diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000000..ca4b143fd4 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,219 @@ +cff-version: 1.2.0 +# CITATION.cff created with https://github.com/monperrus/bibtexbrowser/ +# wget https://www.sciencedirect.com/sdfe/arp/cite?pii=S0168900216306957&format=text%2Fx-bibtex&withabstract=true +# php bibtex-to-cff.php S0168900216306957.bib --id ALLISON2016186 > CITATION.cff +message: "If you use Geant4 toolkit, please cite it using these metadata." +title: "Geant4" +authors: + - family-names: Geant4 + - given-names: Collaboration +preferred-citation: + title: "Recent developments in Geant4" + doi: "https://doi.org/10.1016/j.nima.2016.06.125" + url: "https://www.sciencedirect.com/science/article/pii/S0168900216306957" + year: "2016" + type: article + journal: "Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment" + volume: "835" + start: "186" + end: "225" + issn: "0168-9002" + authors: + - family-names: Allison + given-names: J. + - family-names: Amako + given-names: K. + - family-names: Apostolakis + given-names: J. + - family-names: Arce + given-names: P. + - family-names: Asai + given-names: M. + - family-names: Aso + given-names: T. + - family-names: Bagli + given-names: E. + - family-names: Bagulya + given-names: A. + - family-names: Banerjee + given-names: S. + - family-names: Barrand + given-names: G. + - family-names: Beck + given-names: B.R. + - family-names: Bogdanov + given-names: A.G. + - family-names: Brandt + given-names: D. + - family-names: Brown + given-names: J.M.C. + - family-names: Burkhardt + given-names: H. + - family-names: Canal + given-names: Ph. + - family-names: Cano-Ott + given-names: D. + - family-names: Chauvie + given-names: S. + - family-names: Cho + given-names: K. + - family-names: Cirrone + given-names: G.A.P. + - family-names: Cooperman + given-names: G. + - family-names: Cortés-Giraldo + given-names: M.A. + - family-names: Cosmo + given-names: G. + - family-names: Cuttone + given-names: G. + - family-names: Depaola + given-names: G. + - family-names: Desorgher + given-names: L. + - family-names: Dong + given-names: X. + - family-names: Dotti + given-names: A. + - family-names: Elvira + given-names: V.D. + - family-names: Folger + given-names: G. + - family-names: Francis + given-names: Z. + - family-names: Galoyan + given-names: A. + - family-names: Garnier + given-names: L. + - family-names: Gayer + given-names: M. + - family-names: Genser + given-names: K.L. + - family-names: Grichine + given-names: V.M. + - family-names: Guatelli + given-names: S. + - family-names: Guèye + given-names: P. + - family-names: Gumplinger + given-names: P. + - family-names: Howard + given-names: A.S. + - family-names: Hřivnáčová + given-names: I. + - family-names: Hwang + given-names: S. + - family-names: Incerti + given-names: S. + - family-names: Ivanchenko + given-names: A. + - family-names: Ivanchenko + given-names: V.N. + - family-names: Jones + given-names: F.W. + - family-names: Jun + given-names: S.Y. + - family-names: Kaitaniemi + given-names: P. + - family-names: Karakatsanis + given-names: N. + - family-names: Karamitros + given-names: M. + - family-names: Kelsey + given-names: M. + - family-names: Kimura + given-names: A. + - family-names: Koi + given-names: T. + - family-names: Kurashige + given-names: H. + - family-names: Lechner + given-names: A. + - family-names: Lee + given-names: S.B. + - family-names: Longo + given-names: F. + - family-names: Maire + given-names: M. + - family-names: Mancusi + given-names: D. + - family-names: Mantero + given-names: A. + - family-names: Mendoza + given-names: E. + - family-names: Morgan + given-names: B. + - family-names: Murakami + given-names: K. + - family-names: Nikitina + given-names: T. + - family-names: Pandola + given-names: L. + - family-names: Paprocki + given-names: P. + - family-names: Perl + given-names: J. + - family-names: Petrović + given-names: I. + - family-names: Pia + given-names: M.G. + - family-names: Pokorski + given-names: W. + - family-names: Quesada + given-names: J.M. + - family-names: Raine + given-names: M. + - family-names: Reis + given-names: M.A. + - family-names: Ribon + given-names: A. + - family-names: Fira + given-names: A. Ristić + - family-names: Romano + given-names: F. + - family-names: Russo + given-names: G. + - family-names: Santin + given-names: G. + - family-names: Sasaki + given-names: T. + - family-names: Sawkey + given-names: D. + - family-names: Shin + given-names: J.I. + - family-names: Strakovsky + given-names: I.I. + - family-names: Taborda + given-names: A. + - family-names: Tanaka + given-names: S. + - family-names: Tomé + given-names: B. + - family-names: Toshito + given-names: T. + - family-names: Tran + given-names: H.N. + - family-names: Truscott + given-names: P.R. + - family-names: Urban + given-names: L. + - family-names: Uzhinsky + given-names: V. + - family-names: Verbeke + given-names: J.M. + - family-names: Verderi + given-names: M. + - family-names: Wendt + given-names: B.L. + - family-names: Wenzel + given-names: H. + - family-names: Wright + given-names: D.H. + - family-names: Wright + given-names: D.M. + - family-names: Yamashita + given-names: T. + - family-names: Yarba + given-names: J. + - family-names: Yoshida + given-names: H. diff --git a/CMakeLists.txt b/CMakeLists.txt index 26cabb15e2..fbad792297 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,7 @@ endif() #----------------------------------------------------------------------- # - Define CMake requirements and override make rules as needed # -cmake_minimum_required(VERSION 3.16...3.21) +cmake_minimum_required(VERSION 3.16...3.24) # - Make overrides for default flags, so they appear in interfaces set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX diff --git a/ReleaseNotes/Patch.11.0-2.txt b/ReleaseNotes/Patch.11.0-2.txt index f085176343..82c076694e 100644 --- a/ReleaseNotes/Patch.11.0-2.txt +++ b/ReleaseNotes/Patch.11.0-2.txt @@ -66,7 +66,7 @@ List of fixes included in this public patch since the public release 11.0.1: o Persistency: ----------- + GDML: - o In G4GDMLReadMaterials, fixed default temperature to 20C + o In G4GDMLReadMaterials, fixed default temperature to 20°C (NTP_Temperature). o Addressing to the case of solid/volume name duplication when reading more than one GDML files. diff --git a/ReleaseNotes/Patch.11.0-3.txt b/ReleaseNotes/Patch.11.0-3.txt new file mode 100644 index 0000000000..85ea9a3de7 --- /dev/null +++ b/ReleaseNotes/Patch.11.0-3.txt @@ -0,0 +1,107 @@ + + Geant4 11.0 - patch-03 Release Notes + ------------------------------------ + + 16 September 2022 + +List of fixes included in this public patch since the public release 11.0.2: + + o Configuration + ------------- + + CMake: + o Update extraction of include paths from VecGeom to use imported target + property. Addressing problem report #2485. + + o Geometry: + -------- + + management: + o Added protection in G4GeometryManager for Open/CloseGeometry() to + be executed only by master thread. Addressing problem report #2502. + + o Global: + ------ + + Commented out debug printout in G4ThreadLocalSingleton method. + + Updated date and version for 11.0.3. + + o Parameterisations: + ----------------- + + gflash: + o GFlashHitMaker: fix to make it compatible with command-based scorer. + + o Particles: + --------- + + Fixes for transportation of hypernuclei and anti-hypernuclei: in G4Ion, + set (forgotten) 'isGeneralIon' to false for hypernuclei and + anti-hypernuclei, to avoid they get assigned same processes as + 'GenericIon'. + In G4DoubleHyperDoubleNeutron and G4AntiDoubleHyperDoubleNeutron, added + (forgotten) call to SetDecayTable(), to have the decay table defined for + these particles. + In G4ParticleDefinition, protect methods GetNumberOfLambdasInHypernucleus() + and GetNumberOfAntiLambdasInAntiHypernucleus() against baryonic resonances + with high spins (such as N(2220), N(2250) and their anti-particles) which + have 8-digits PDG codes, but which are not hypernuclei or anti-hypernuclei. + + o Physics Lists: + ------------- + + constructors/electromagnetic + o G4GammaGeneralProcess: fixed problem of Compton scattering selection + in the low energy interval < 150 keV. + + o Processes - Electromagnetic: + --------------------------- + + utils + o G4EmExtraParametersMessenger: fixed typo. + Addressing problem report #2492. + + o Processes - Generic: + ------------------- + + cuts + o G4VRangeToEnergyConverter: fixed static methods to provide correct + initialisation of energy limits. + + o Processes - Hadronic: + -------------------- + + models/particle_hp + o G4ParticleHPInelastic, G4ParticleHPCapture, G4ParticleHPFission, + G4ParticleHPElastic, G4ParticleHPThermalScattering: replaced the + threshold used for checking the absolute energy non-conservation from + DLB_MAX (implying no checking at all) to 350 GeV (this value allows for + cases where the residual nucleus is not produced, even when super-heavy + nuclides are involved). + o G4ParticleHPContAngularPar: added protections against evaluations of + arrays at negative index (-1), fixing rare reproducibility problems. + + models/parton_string + o Fixes to get isotropic distributions in annihilations at rest: in + G4DiffractiveSplitableHadron, set proper parton index. + In G4DiffractiveExcitation, in the CreateStrings() method, take into + account that strings are created in G4FTFAnnihilation; by default, the + method CreateStrings() creates a string from a wounded nucleon/hadron, + but this is not needed in the case of annihilation. + In G4FTFAnnihilation, removed splitting of hadron; fixed bugs in the + calculations of kinematical properties; set quark momenta at string + ends, to properly account for string order on rapidity. + o G4VSplitableHadron: changed the method Splitting() from "protected" to + "public" (needed to change the status of SplitableHadron in + G4FTFAnnihilation, to get isotropic distributions in annihilations + at rest). + + o Track: + ----- + + G4Step: added ResetPre/PostStepPoint() methods to replace a StepPoint + without deleting the previous object. + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + + o This patch should be applied on top of release 11.0 series. + o Technical notes distributed for release 11.0 are also applicable and + valid for this patch. + +The code and rebuilt binary libraries for release 11.0.3 are available +through the Geant4 "Download" Web page. + +Please refer to the Geant4 User Documentation for further information about +using Geant4. diff --git a/ReleaseNotes/Patch4.10.7-4.txt b/ReleaseNotes/Patch4.10.7-4.txt new file mode 100644 index 0000000000..a9657eb7a9 --- /dev/null +++ b/ReleaseNotes/Patch4.10.7-4.txt @@ -0,0 +1,76 @@ + + Geant4 10.7 - patch-04 Release Notes + ------------------------------------ + + 9 September 2022 + +List of fixes included in this public patch since the public release 10.7.p03: + + o Configuration + ------------- + + CMake: + o Update extraction of include paths from VecGeom to use imported target + property. Addressing problem report #2485. + + o Global: + ------ + + Updated date and version for 10.7.p04. + + o Physics Lists: + ------------- + + constructors/electromagnetic + o G4GammaGeneralProcess: fixed problem of Compton scattering selection + in the low energy interval < 150 keV. + + o Processes - Electromagnetic: + --------------------------- + + utils + o G4EmExtraParameters: safe definition of StepFuction for G4GenericIon. + Addressing problem report #2495. + o G4EmExtraParametersMessenger: fixed typo. + Addressing problem report #2492. + + o Processes - Hadronic: + -------------------- + + cross_sections + o G4ComponentAntiNuclNuclearXS: correct treatment of the cross-sections + of light anti-nuclei on hydrogen target. This relies on the isospin + symmetry assumption, according to which the properties of the reactions + between anti-proton and light nuclei are equivalent to those between + light anti-nuclei and hydrogen. + + models/coherent_elastic + o G4AntiNuclElastic: correction in SampleInvariantT() method of the + highest momentum transfer (which was causing the cosine of the polar + angle in the center-of-mass system to be larger than 1 in some cases). + Addressing problem report #2204. + + models/inclxx + o G4INCLXXInterface: fixed treatment of kaon0, anti_kaon0, kaon0L, and + kaon0S. In current reference physics lists, INCLXX is never used for + handling kaons, although it is capable of doing so, but at process- + level or in custom physics lists one could observe crashes when trying + to use INCLXX for neutral kaon projectiles. The change fixes this + misbehavior. + + models/particle_hp + o Fixed issue for photons too high in energy generated from + G4NDL/Capture/FSMF6 data. Addressing problem report #2468. + o G4ParticleHPContAngularPar: added protections against evaluations of + arrays at negative index (-1), fixing rare reproducibility problems + and rare crashes observed. + o Code cleanup in G4ParticleHPContEnergyAngular and + G4ParticleHPContAngularPar: removed debug and commented out code, + indentation of loops and if branches. + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + + o This patch should be applied on top of release 10.7 series. + o Technical notes distributed for release 10.7 are also applicable and + valid for this patch. + +The code and rebuilt binary libraries for release 10.7.p04 are available +through the Geant4 "Download" Web page. + +Please refer to the Geant4 User Documentation for further information about +using Geant4. diff --git a/ReleaseNotes/ReleaseNotes.11.1.html b/ReleaseNotes/ReleaseNotes.11.1.html new file mode 100644 index 0000000000..4a1f14a156 --- /dev/null +++ b/ReleaseNotes/ReleaseNotes.11.1.html @@ -0,0 +1,2773 @@ + + +Geant4 11.1 Release Notes + + + +

+
+

+ +

+ +Geant4 11.1 Release Notes + + + + +
+ +December 9th, 2022 + +
+ +

+


+

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

+

+We are grateful for the efforts of Geant4 users who have provided + detailed feedback or comprehensive reports of issues. + We thank in particular those who have contributed corrections, + improvements or developments included in this release. +

+

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

+ +

Contents

+
    +
  1. Supported and Tested Platforms
  2. +
  3. Supported CLHEP, VecGeom and PTL versions
  4. +
  5. Items for migration of the user code
  6. +
  7. New Developments and Capabilities
  8. +
  9. Expected effects on physics and performance
  10. +
  11. Known Run-Time Problems and Limitations
  12. +
  13. Compilation Warnings
  14. +
  15. Geant4 Software License
  16. +
  17. Detailed list of changes and fixes
  18. +
  19. Appendix
  20. +
+ +

+ +
+ + + +

1. Supported and Tested Platforms

+ +Platforms: + + +More verified and tested configurations (64 bits): + + +

+ +
+ + + +

2. Supported CLHEP, VecGeom and PTL versions

+ +This release of Geant4 has been verified with +CLHEP, release 2.4.6.2. +Use of a different CLHEP version may cause incorrect simulation results.
+NOTE: an internal module of the relevant CLHEP classes is provided and can be +used as alternative to an external CLHEP library installation.
+A configuration option allows a Geant4 installation to use the +VecGeom Library +primitives, to replace the original Geant4 solids.
+VecGeom version 1.2.1 has been tested when using such configuration.
+PTL version 2.3.3 is required for external installation of the +PTL tasking library.
+CMake 3.16 is the minimum version required to build Geant4. + +

+ +
+ + + +

3. Items for migration of the user code

+ +Listed here is some relevant information on developments included in this +release. +Note that for all users a full re-installation of libraries (or a full +re-compilation) and a re-compilation of user applications is required. + +

+General +

+ + +

+Geometry, Fields and Transportation +

+ + +

+Electromagnetic and optical physics +

+ + +

+Visualization and Modeling +

+ + +

+Data Sets +

+ + + +
+ + + +

4. New Developments and Capabilities

+ +General + + +Analysis + + +Geometry & Field + + +Materials + + +Electromagnetic physics + + +Hadronic physics + + +Processes - General + + +Physics Lists + + +Visualization and Interfaces + + +Examples + + + +
+ + + +

5. Expected effects on physics and computing performance

+ +Geometry & Field + + +Electromagnetic physics + + +Hadronic physics + + +

+ +
+ + + +

6. Known Run-Time Problems and Limitations

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

+ +
+ + + +

7. Compilation Warnings

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

+ +
+ + + +

8. Geant4 Software License

+ +A Software License applies to the Geant4 code. +Users must accept this license in order to use it.
+The details and the list of copyright holders is available at +http://cern.ch/geant4/license +and also in the text file LICENSE distributed with the source code. + +

+ +
+ + + +

9. Detailed list of changes and fixes

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

+ + +

Configuration

+ + + +

Analysis

+ + + +

Digitization & Hits

+ + + +

Electromagnetic Processes

+ + + +

Error Propagation

+ + + +

Event

+ + + +

Externals

+ + + +

G3toG4

+ + + +

General Processes

+ + + +

Geometry

+ + + +

Global

+ + + +

Graphical Representations

+ + + +

Hadronic Processes

+ + + +

Intercoms

+ + + +

Interfaces

+ + + +

Materials

+ + + +

Parameterisations

+ + + +

Particles

+ + + +

Persistency

+ + + +

Physics lists

+ + + +

Readout

+ + + +

Run

+ + + +

Tasking

+ + + +

Track & Tracking

+ + + +

Visualization

+ + + +

Environments

+ + + +

Data sets

+ + + +

Examples

+ + +

+ +
+ + + +

10. Appendix

+ + +

A1 - Location of Geant4's datasets

+

+Use of environment variables to locate Geant4's datasets at application +runtime is now optional, the following fallback-based search is being used +for backward compatibility with existing setups: + + +
+ + + diff --git a/cmake/History b/cmake/History index ec867deeb0..4704b9ce3f 100644 --- a/cmake/History +++ b/cmake/History @@ -6,6 +6,78 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-12-05 Ben Morgan (cmake-V11-00-50) +- Revert VecGeom minimum version to 1.2.0 due to issues with 1.2.1 reported by + CMS but not yet triaged in VecGeom itself. + +## 2022-11-29 Ben Morgan (cmake-V11-00-49) +- Stamp minimum versions of CLHEP and VecGeom required for 11.1 release + +## 2022-11-21 Ben Morgan (cmake-V11-00-48) +- Only support Qt5. Code updates to support Qt6 did not make release deadline, so + remove find of Qt6, retaining other support structures to enable quick updates + later. + +## 2022-11-15 Ben Morgan (cmake-V11-00-47) +- Remove Geant4Py from toolkit build, pointing users to upstream repo if they + set GEANT4_USE_PYTHON in the CMake arguments. + +## 2022-11-07 Ben Morgan (cmake-V11-00-46) +- Keep file timestamps from unpacked data libraries in CMake 3.24 and newer. + +## 2022-10-27 Ben Morgan (cmake-V11-00-45) +- Fix bug in Qt3D activation as [reported on the Forum](https://geant4-forum.web.cern.ch/t/compiling-geant4-11-1-0-beta-failed-on-built-target-g4physicslist-s/9064/8) + +## 2022-10-20 Guy Barrand (cmake-V11-00-44) +- Modules/G4InterfaceOptions.cmake: remove usage of GEANT4_USE_TOOLSSG since ToolsSG + is now "always on" on all platforms. +- Templates/Geant4Config.cmake.in: remove usage of _geant4_use_toolssg_library, and + setup of -DG4VIS_USE_TOOLSSG for compilation. + +## 2022-10-13 Ben Morgan (cmake-V11-00-43) +- Find, use and re-find Qt OpenGLWidgets component when Qt6 is in use. + +## 2022-10-12 Gunter Folger (cmake-V11-00-42) +- add new dataset G4EMLOW 8.2 as provided by Vladimir: + This modification include additions for atomic de-excitation for Z=101-104 + and N2 DNA data. No change for existing tests is expected. + +## 2022-10-07 Gabriele Cosmo (cmake-V11-00-41) +- Added "-diag-disable=10441" CXX option to Intel compilers, to disable + icc compiler deprecation message. + +## 2022-09-27 Ben Morgan (cmake-V11-00-40) +- Promote INTERFACE module properties to PUBLIC when merging them into a non-INTERFACE + final target. + +## 2022-09-25 Ben Morgan (cmake-V11-00-39) +- Fix bug causing failure in `do_provides` function of geant4_module_check.py + +## 2022-09-10 Ben Morgan (cmake-V11-00-38) +- Implement mechanism to filter out headers in geant4_module_check with linting comment + +## 2022-09-09 Ben Morgan (cmake-V11-00-37) +- Fix geant4_module_check returning 1 on successful run +- Filter out C++ filesystem library from checks + +## 2022-09-03 Ben Morgan (cmake-V11-00-36) +- Filter out Vis driver modules from consistency check for G4vis_management + - G4VisExecutive is a user level compile time interface to "plugin" drivers. + - Driver headers need filtering out as they are not linked to in Geant4 itself + to avoid circular dependencies. + +## 2022-08-31 Ben Morgan (cmake-V11-00-35) +- New geant4_module_check.py script to provide convenient interface for developers + and testing to check module/library cycles and dependency inconsistencies. + +## 2022-07-14 Ben Morgan (cmake-V11-00-34) +- Remove obsolete and now longer built G4gl2ps target + +## 2022-07-14 Ben Morgan (cmake-V11-00-33) +- Address [Bugzilla 2485](https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2485) + - Update extraction of include paths from VecGeom to use imported target + property. + ## 2022-06-09 Igor Semeniouk (cmake-V11-00-32) - G4ConfigureGNUMakeHelpers.cmake (geant4.[c]sh, geant4.bat generation ) - use the environment variable GEANT4_DATA_DIR as top data dir diff --git a/cmake/Modules/G4CMakeMain.cmake b/cmake/Modules/G4CMakeMain.cmake index 0aa2afd610..82262a892f 100644 --- a/cmake/Modules/G4CMakeMain.cmake +++ b/cmake/Modules/G4CMakeMain.cmake @@ -72,19 +72,12 @@ include(G4CTest) #----------------------------------------------------------------------- # Add the source and environments subdirectories # source : Process all the Geant4 core targets -# environments : Process optional wrappings of Geant4 (NOTYETIMPLEMENTED) add_subdirectory(source) -option(GEANT4_USE_PYTHON "Build Python bindings for Geant4" OFF) if(GEANT4_USE_PYTHON) - # We can only build g4py with MT geant4 if TLS is global-dynamic (or auto?) - if(GEANT4_BUILD_MULTITHREADED AND (NOT GEANT4_BUILD_TLS_MODEL MATCHES "global-dynamic")) - message(FATAL_ERROR "Geant4Py only supports 'global-dynamic' thread local storage, but -'${GEANT4_BUILD_TLS_MODEL}' selected by GEANT4_BUILD_TLS_MODEL option -") - endif() - - add_subdirectory(environments/g4py) + message(WARNING "Geant4Py is no longer distributed with the Geant4 toolkit." + " It can be downloaded from:\n https://github.com/koichi-murakami/g4python \n" + "and requests for support on installation and use should be directed there.\n") endif() #----------------------------------------------------------------------- diff --git a/cmake/Modules/G4CMakeSettings.cmake b/cmake/Modules/G4CMakeSettings.cmake index 9c25b37783..b3243dea36 100644 --- a/cmake/Modules/G4CMakeSettings.cmake +++ b/cmake/Modules/G4CMakeSettings.cmake @@ -113,18 +113,26 @@ add_custom_target(validate_sources ) #.rst: -# A custom ``validate_no_module_cycles`` is declared if Python3.9 is available. -# This runs the geant4_check_module_cycles Python script to check that the -# source module dependency graph has no cycles. It will fail if any cycles -# are found, listing the first found to stderr. +# Custom ``validate_no_module_cycles`` and ``validate_module_consistency`` targets +# are declared if Python3.9 is available. +# These runs the geant4_module_check.py Python script to check for cycles or +# inconsistencies in the module dependency graph and declarations. find_package(Python3 3.9 QUIET COMPONENTS Interpreter) if(Python3_FOUND) + set(G4MODULE_VALIDATION_CMD Python3::Interpreter + ${PROJECT_SOURCE_DIR}/cmake/Modules/geant4_module_check.py + -db ${PROJECT_BINARY_DIR}/G4ModuleInterfaceMap.csv) + add_custom_target(validate_no_module_cycles - COMMAND Python3::Interpreter - ${PROJECT_SOURCE_DIR}/cmake/Modules/geant4_check_module_cycles.py - -f ${PROJECT_BINARY_DIR}/G4ModuleAdjacencyList.txt + COMMAND ${G4MODULE_VALIDATION_CMD} --find-cycles COMMENT "Checking for cycles in declared source module dependencies" ) + + add_custom_target(validate_module_consistency + COMMAND ${G4MODULE_VALIDATION_CMD} --find-inconsistencies + COMMENT "Checking for inconsistencies in declared source module dependencies" + USES_TERMINAL + ) endif() #----------------------------------------------------------------------- diff --git a/cmake/Modules/G4ConfigurePkgConfigHelpers.cmake b/cmake/Modules/G4ConfigurePkgConfigHelpers.cmake index 71fab3ce45..4b83a60b99 100644 --- a/cmake/Modules/G4ConfigurePkgConfigHelpers.cmake +++ b/cmake/Modules/G4ConfigurePkgConfigHelpers.cmake @@ -214,16 +214,13 @@ if(NOT GEANT4_BUILD_GRANULAR_LIBS) # - USolids if(GEANT4_USE_USOLIDS OR GEANT4_USE_PARTIAL_USOLIDS) set(G4_BUILTWITH_USOLIDS "yes") - set(G4_USOLIDS_INCLUDE_DIRS "${USOLIDS_INCLUDE_DIRS} ${VECGEOM_EXTERNAL_INCLUDES}") + get_target_property(G4_USOLIDS_INCLUDE_DIRS VecGeom::vecgeom INTERFACE_INCLUDE_DIRECTORIES) list(REMOVE_DUPLICATES G4_USOLIDS_INCLUDE_DIRS) - if(_cxx_compiler_dirs) - list(REMOVE_ITEM G4_USOLIDS_INCLUDE_DIRS ${_cxx_compiler_dirs}) - endif() - - string(REPLACE ";" " " G4_USOLIDS_CFLAGS "${VECGEOM_DEFINITIONS}") foreach(_dir ${G4_USOLIDS_INCLUDE_DIRS}) set(G4_USOLIDS_CFLAGS "${G4_USOLIDS_CFLAGS} -I${_dir}") endforeach() + # NB: should ALSO account for VecGeom having compile_options, but + # this is better handled through proper pkg-config support else() set(G4_BUILTWITH_USOLIDS "no") endif() @@ -245,7 +242,15 @@ if(NOT GEANT4_BUILD_GRANULAR_LIBS) # - Qt if(GEANT4_USE_QT) set(G4_BUILTWITH_QT "yes") - set(G4_QT_INCLUDE_DIRS ${Qt5Core_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5OpenGL_INCLUDE_DIRS} ${Qt5PrintSupport_INCLUDE_DIRS} ${Qt53DCore_INCLUDE_DIRS} ${Qt53DExtras_INCLUDE_DIRS} ${Qt53DRender_INCLUDE_DIRS}) + set(_qtcomps Core Gui Widgets OpenGL PrintSupport) + if(QT_VERSION_MAJOR VERSION_GREATER_EQUAL 5.15) + list(APPEND _qtcomp 3DCore 3DExtras 3DRender) + endif() + + set(G4_QT_INCLUDE_DIRS ) + foreach(_qtc ${_qtcomps}) + list(APPEND G4_QT_INCLUDE_DIRS ${Qt${QT_VERSION_MAJOR}${_qtc}_INCLUDE_DIRS}) + endforeach() list(REMOVE_DUPLICATES G4_QT_INCLUDE_DIRS) if(_cxx_compiler_dirs) diff --git a/cmake/Modules/G4DatasetDefinitions.cmake b/cmake/Modules/G4DatasetDefinitions.cmake index 75bc69015b..bee223acf8 100644 --- a/cmake/Modules/G4DatasetDefinitions.cmake +++ b/cmake/Modules/G4DatasetDefinitions.cmake @@ -18,11 +18,11 @@ geant4_add_dataset( # - Low energy electromagnetics geant4_add_dataset( NAME G4EMLOW - VERSION 8.1 + VERSION 8.2 FILENAME G4EMLOW EXTENSION tar.gz ENVVAR G4LEDATA - MD5SUM e4abc7d2cd73a2f6d19837e9bcce984a + MD5SUM 07773e57be3f6f2ebb744da5ed574f6d ) # - Photon evaporation diff --git a/cmake/Modules/G4DeveloperAPI.cmake b/cmake/Modules/G4DeveloperAPI.cmake index bea4eaf301..5ae6243591 100644 --- a/cmake/Modules/G4DeveloperAPI.cmake +++ b/cmake/Modules/G4DeveloperAPI.cmake @@ -873,6 +873,14 @@ function(geant4_compose_targets) # and sources (what it uses internally) # Probaly just needs module : location # - Checking of files is runtime operation, so will refind/check each time + # - Store set of build settings relevant to filtering headers in dependency checks + # - "Dumb" as simply reproduced as CMake list in last column of every row (de-dupped in script) + # - Settings are designed to overcome limitation of ifdef in parsing, so map + # to symbols in code + set(__gmc_build_settings ) + if(GEANT4_BUILD_MULTITHREADED) + list(APPEND __gmc_build_settings "G4MULTITHREADED") + endif() file(WRITE "${PROJECT_BINARY_DIR}/G4ModuleInterfaceMap.csv" "") configure_file("${PROJECT_SOURCE_DIR}/cmake/Modules/geant4_module_check.py" "${PROJECT_BINARY_DIR}/geant4_module_check.py" COPYONLY) @@ -888,9 +896,10 @@ function(geant4_compose_targets) # 2. Module interfaces, needs CMAKE, PUBLIC_HEADER geant4_get_module_property(__listfile ${__module} CMAKE_LIST_FILE) geant4_get_module_property(__publichdrs ${__module} PUBLIC_HEADERS) + geant4_get_module_property(__parent_target ${__module} PARENT_TARGET) get_filename_component(__listdir "${__listfile}" DIRECTORY) list(TRANSFORM __publichdrs REPLACE "^/.*/" "") - file(APPEND "${PROJECT_BINARY_DIR}/G4ModuleInterfaceMap.csv" "${__module},${__listdir},${__publichdrs},${__publicdeps},${__privatedeps},${__interfacedeps}\n") + file(APPEND "${PROJECT_BINARY_DIR}/G4ModuleInterfaceMap.csv" "${__module},${__listdir},${__publichdrs},${__publicdeps},${__privatedeps},${__interfacedeps},${__parent_target},${__gmc_build_settings}\n") endforeach() # Process all defined libraries @@ -1183,6 +1192,7 @@ function(__geant4_add_library _name _type) else() target_compile_features(${_target_name} PUBLIC ${GEANT4_TARGET_COMPILE_FEATURES}) set(_props_to_process "PUBLIC" "PRIVATE" "INTERFACE") + set(_promote_interface_to_public TRUE) endif() if(_lib_cmake_type STREQUAL "SHARED") @@ -1249,11 +1259,21 @@ function(__geant4_add_library _name _type) # sets of rules should apply (i.e. can't specify inc dirs # at source level). foreach(_prop ${_props_to_process}) + # Further gotcha with INTERFACE modules here + # - If an interface module is composed into a non-interface module + # its headers are exposed correctly to *clients* of the library, but + # *not* the internals of the library! This being the case, we promote + # these properties to PUBLIC + set(_target_prop ${_prop}) + if(_promote_interface_to_public AND (_prop STREQUAL "INTERFACE")) + set(_target_prop "PUBLIC") + endif() + geant4_get_module_property(_incdirs ${__g4mod} ${_prop}_INCLUDE_DIRECTORIES) - target_include_directories(${_target_name} ${_prop} ${_incdirs}) + target_include_directories(${_target_name} ${_target_prop} ${_incdirs}) geant4_get_module_property(_defs ${__g4mod} ${_prop}_COMPILE_DEFINITIONS) - target_compile_definitions(${_target_name} ${_prop} ${_defs}) + target_compile_definitions(${_target_name} ${_target_prop} ${_defs}) # Target linking requires additional processing to resolve geant4_get_module_property(_linklibs ${__g4mod} ${_prop}_LINK_LIBRARIES) @@ -1277,7 +1297,7 @@ function(__geant4_add_library _name _type) set(_linklibs ${_g4linklibs}) endif() - target_link_libraries(${_target_name} ${_prop} ${_linklibs}) + target_link_libraries(${_target_name} ${_target_prop} ${_linklibs}) endif() endforeach() diff --git a/cmake/Modules/G4InstallData.cmake b/cmake/Modules/G4InstallData.cmake index 263225bf2c..10110f542a 100644 --- a/cmake/Modules/G4InstallData.cmake +++ b/cmake/Modules/G4InstallData.cmake @@ -402,19 +402,28 @@ function(geant4_install_dataset _name _destination _timeout) message(STATUS "Configuring download of missing dataset ${_name} (${_ds_version})") - # - Dispatch to ExternalProject or our own implementation. - # Use of URL_MD5 *and* TIMEOUT require CMake 2.8.2 or higher. + # - Dispatch to ExternalProject include(ExternalProject) - ExternalProject_Add(${_name} + + # - We want to retain timestamps in extracted archives as the data files + # are "constants". CMake >= 3.24 changed this behaviour, so we setup + # ExternalProject based on running version + set(__ep_extract_timestamp_arg ) + if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.24) + set(__ep_extract_timestamp_arg DOWNLOAD_EXTRACT_TIMESTAMP TRUE) + endif() + + ExternalProject_add(${_name} PREFIX Externals/${_name}-${_ds_version} SOURCE_DIR ${GEANT4_BUILD_FULL_DATADIR}/${_ds_dir} URL ${_ds_url} URL_MD5 ${_ds_md5sum} TIMEOUT ${_timeout} + ${__ep_extract_timestamp_arg} CONFIGURE_COMMAND "" BUILD_COMMAND "" - INSTALL_COMMAND "" - ) + INSTALL_COMMAND "") + # - Configure the dataset's build and install locations geant4_set_dataset_property(${_name} BUILD_DIR "${PROJECT_BINARY_DIR}/data/${_ds_dir}") geant4_set_dataset_property(${_name} INSTALL_DIR "${_destination}/${_ds_dir}") diff --git a/cmake/Modules/G4InterfaceOptions.cmake b/cmake/Modules/G4InterfaceOptions.cmake index d60220bb22..5a2643e0bf 100644 --- a/cmake/Modules/G4InterfaceOptions.cmake +++ b/cmake/Modules/G4InterfaceOptions.cmake @@ -106,15 +106,6 @@ if(WIN32) geant4_add_feature(GEANT4_USE_OPENGL_WIN32 "Build OpenGL driver with Win32 support") endif() -# Overall ToolsSG enable flag -set(GEANT4_USE_TOOLSSG OFF) -if(GEANT4_USE_TOOLSSG_QT_GLES - OR GEANT4_USE_TOOLSSG_XT_GLES - OR GEANT4_USE_TOOLSSG_X11_GLES - OR GEANT4_USE_TOOLSSG_WINDOWS_GLES) - set(GEANT4_USE_TOOLSSG ON) -endif() - #----------------------------------------------------------------------- # Find dependencies # @@ -147,14 +138,9 @@ if(GEANT4_USE_QT) # Use versioned targets to support Qt5 < 5.15 # Once 5.15 is the minimum version, the "Qt${QT_VERSION_MAJOR}_..." variables can be dropped # - https://doc.qt.io/qt-6/cmake-manual.html - find_package(QT NAMES Qt5 Qt6 COMPONENTS Core REQUIRED) + find_package(QT NAMES Qt5 COMPONENTS Core REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets OpenGL PrintSupport REQUIRED) - if(QT_VERSION_MAJOR VERSION_LESS 6) - get_target_property(QT_QMAKE_EXECUTABLE ${Qt${QT_VERSION_MAJOR}Core_QMAKE_EXECUTABLE} IMPORTED_LOCATION) - else() - get_target_property(QT_QMAKE_EXECUTABLE Qt6::qmake IMPORTED_LOCATION) - endif() geant4_save_package_variables(Qt${QT_VERSION_MAJOR} Qt${QT_VERSION_MAJOR}Core_DIR Qt${QT_VERSION_MAJOR}Gui_DIR @@ -162,14 +148,14 @@ if(GEANT4_USE_QT) Qt${QT_VERSION_MAJOR}OpenGL_DIR Qt${QT_VERSION_MAJOR}PrintSupport_DIR) - + get_target_property(QT_QMAKE_EXECUTABLE ${Qt${QT_VERSION_MAJOR}Core_QMAKE_EXECUTABLE} IMPORTED_LOCATION) geant4_add_feature(GEANT4_USE_QT "Build Geant4 with Qt${QT_VERSION_MAJOR} support") # Qt3D is only supported on 5.15 and above, but always on if available set(QT3D_MINIMUM_VERSION 5.15.0) set(GEANT4_USE_QT3D OFF) - if(QT_VERSION GREATER_EQUAL QT3D_MINIMUM_VERSION) + if(QT_VERSION VERSION_GREATER_EQUAL QT3D_MINIMUM_VERSION) find_package(Qt${QT_VERSION_MAJOR}3DCore ${QT_VERSION} EXACT QUIET) find_package(Qt${QT_VERSION_MAJOR}3DExtras ${QT_VERSION} EXACT QUIET) find_package(Qt${QT_VERSION_MAJOR}3DRender ${QT_VERSION} EXACT QUIET) diff --git a/cmake/Modules/G4MakeRules_cxx.cmake b/cmake/Modules/G4MakeRules_cxx.cmake index 8b5067928a..54e56b5c94 100644 --- a/cmake/Modules/G4MakeRules_cxx.cmake +++ b/cmake/Modules/G4MakeRules_cxx.cmake @@ -81,7 +81,7 @@ endif() # Sufficient id on all platforms? if(CMAKE_CXX_COMPILER_ID MATCHES "Intel") # Warnings - set(CMAKE_CXX_FLAGS_INIT "-W -Wall -pedantic -Wno-non-virtual-dtor -Wno-long-long -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -Wno-variadic-macros -Wshadow -fp-model precise") + set(CMAKE_CXX_FLAGS_INIT "-W -Wall -pedantic -Wno-non-virtual-dtor -Wno-long-long -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -Wno-variadic-macros -Wshadow -fp-model precise -diag-disable=10441") # Use pipes rather than temp files set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} -pipe") diff --git a/cmake/Modules/G4OptionalComponents.cmake b/cmake/Modules/G4OptionalComponents.cmake index 4c55adf24b..cd07b3a9b4 100644 --- a/cmake/Modules/G4OptionalComponents.cmake +++ b/cmake/Modules/G4OptionalComponents.cmake @@ -39,7 +39,7 @@ endif() option(GEANT4_USE_SYSTEM_CLHEP "Use system CLHEP library" ${_default_use_system_clhep}) if(GEANT4_USE_SYSTEM_CLHEP) - find_package(CLHEP 2.4.5.1 REQUIRED CONFIG) + find_package(CLHEP 2.4.6.0 REQUIRED CONFIG) geant4_save_package_variables(CLHEP CLHEP_DIR) else() set(CLHEP_FOUND TRUE) @@ -295,7 +295,7 @@ endif() # - Geant4 USolids/VecGom setup if(GEANT4_USE_ALL_USOLIDS OR GEANT4_USE_PARTIAL_USOLIDS) - find_package(VecGeom 1.1.18 REQUIRED) + find_package(VecGeom 1.2.0 REQUIRED) # Shim until VecGeom supports config mode properly include("${CMAKE_CURRENT_LIST_DIR}/G4VecGeomShim.cmake") # Backward Compatibility diff --git a/cmake/Modules/geant4_check_module_cycles.py b/cmake/Modules/geant4_check_module_cycles.py old mode 100644 new mode 100755 diff --git a/cmake/Modules/geant4_module_check.py b/cmake/Modules/geant4_module_check.py index f2ea5b90a5..f04a70985f 100755 --- a/cmake/Modules/geant4_module_check.py +++ b/cmake/Modules/geant4_module_check.py @@ -24,38 +24,95 @@ import sys import re import json import graphlib +from collections import defaultdict, OrderedDict def initdb(filename): - db = {} + db = {'modules': {}, 'build_settings': set()} with open(filename, 'r') as csvfile: reader = csv.reader(csvfile) for row in reader: - db[row[0]] = {'location': row[1], - 'headers': set(row[2].split(';')) - set(['']), - 'public_deps': set(row[3].split(';')) - set(['']), - 'private_deps': set(row[4].split(';')) - set(['']), - 'interface_deps': set(row[5].split(';')) - set([''])} + db['modules'][row[0]] = {'location': row[1], + 'headers': set(row[2].split(';')) - set(['']), + 'public_deps': set(row[3].split(';')) - set(['']), + 'private_deps': set(row[4].split(';')) - set(['']), + 'interface_deps': set(row[5].split(';')) - set(['']), + 'parent_target': row[6]} + db['build_settings'].add(row[7]) return db -def scan_includes(input_file): +def get_modules(db): + return db['modules'].keys() + + +def get_module(name, db): + return db['modules'][name] + + +def get_location(name, db): + return get_module(name, db)['location'] + + +def get_headers(name, db): + return get_module(name, db)['headers'] + + +def get_public_deps(name, db): + return get_module(name, db)['public_deps'] + + +def get_private_deps(name, db): + return get_module(name, db)['private_deps'] + + +def get_interface_deps(name, db): + return get_module(name, db)['interface_deps'] + + +def get_parent_target(name, db): + return get_module(name, db)['parent_target'] + + +def what_provides(h, db): + return set([m for m in get_modules(db) if h in get_headers(m, db)]) + + +def has_setting(setting, build_settings): + if setting.startswith('!'): + return setting[1:] not in build_settings + else: + return setting in build_settings + + +def scan_includes(input_file, settings): result = set() lines = open(input_file).readlines() for line in lines: - m = re.search("^ *# *include *\"(.*)\"", line) + m = re.search("^ *# *include *\"(.*)\"(.*)$", line) if m: + c = re.search( + "\s*//\s*no_geant4_module_check\s*(\((.*)\))?.*$", m.group(2)) + if c: + conds = set() + if c.group(2): + conds = set( + filter(None, [''.join(c.split(' ')) for c in c.group(2).strip().split(',')])) + + if not conds or any(has_setting(s, settings) for s in conds): + continue + result.add(m.group(1)) return result -def scan_files(input_path): +def scan_files(input_path, settings): used_headers = set() with os.scandir(input_path) as hdr_it: for entry in hdr_it: - used_headers |= scan_includes(entry.path) + used_headers |= scan_includes(entry.path, settings) return used_headers @@ -64,8 +121,8 @@ def find_modules(list_of_headers, module_db): found_modules = set() orphan_hdrs = set() for h in list_of_headers: - ms = [k for k, v in module_db.items() if h in v['headers']] - found_modules |= set(ms) + ms = what_provides(h, module_db) + found_modules |= ms if not ms: orphan_hdrs.add(h) @@ -75,21 +132,28 @@ def find_modules(list_of_headers, module_db): def usage_requirements(module_name, module_db): """ Find modules needed publically and privately by input module """ - module_path = module_db[module_name]['location'] - module_headers = module_db[module_name]['headers'] + try: + module_path = get_location(module_name, module_db) + module_headers = get_headers(module_name, module_db) + except KeyError as err: + print(f'No module named \'{module_name}\'', file=sys.stderr) + sys.exit(1) # Determine public usage reqs - includes_from_headers = scan_files(os.path.join(module_path, "include")) + includes_from_headers = scan_files(os.path.join(module_path, "include"), module_db['build_settings']) includes_from_headers -= module_headers public_deps = find_modules(includes_from_headers, module_db) - # The same for private - includes_from_srcs = scan_files(os.path.join(module_path, "src")) - includes_from_srcs -= module_headers - private_deps = find_modules(includes_from_srcs, module_db) - # Public deps are higher priority - private_deps['modules'] -= public_deps['modules'] - private_deps['headers'] -= public_deps['headers'] + # The same for private, if module has srcs + try: + includes_from_srcs = scan_files(os.path.join(module_path, "src"), module_db['build_settings']) + includes_from_srcs -= module_headers + private_deps = find_modules(includes_from_srcs, module_db) + # Public deps are higher priority + private_deps['modules'] -= public_deps['modules'] + private_deps['headers'] -= public_deps['headers'] + except FileNotFoundError: + private_deps = {'modules': set(), 'headers': set()} # Transform results to output dict d = {'module': module_name, @@ -108,18 +172,22 @@ def usage_requirements(module_name, module_db): def check_consistency(module_name, module_db): """ Check module declared/apparent dependencies for consistency """ - # NB: Can have false positives from externals G4expat, G4clhep, G4zlib, G4tools (plus imported :: targets) - def filter_dependencies(dep_list): - return set([x for x in dep_list if not re.match("^.+::.+", x)]) - set(['G4expat', 'G4clhep', 'G4zlib', 'G4tools', 'G4ptl']) + # NB: Can have false positives from externals G4expat, G4clhep, G4zlib, G4tools (plus imported :: targets and stdlib) + def filter_dependencies(dep_list, module_name): + return set([x for x in dep_list if not re.match("^.+::.+", x)]) - set(['G4expat', 'G4clhep', 'G4zlib', 'G4tools', 'G4ptl', 'stdc++fs']) ur = usage_requirements(module_name, module_db) - apparent_public_deps = filter_dependencies(ur['dependencies']['public']) - apparent_private_deps = filter_dependencies(ur['dependencies']['private']) + apparent_public_deps = filter_dependencies( + ur['dependencies']['public'], module_name) + apparent_private_deps = filter_dependencies( + ur['dependencies']['private'], module_name) declared_public_deps = filter_dependencies( - module_db[module_name]['public_deps']) + get_public_deps(module_name, module_db), module_name) + declared_interface_deps = filter_dependencies( + get_interface_deps(module_name, module_db), module_name) declared_private_deps = filter_dependencies( - module_db[module_name]['private_deps']) + get_private_deps(module_name, module_db), module_name) # Collate any consistency errors report = [] @@ -128,41 +196,72 @@ def check_consistency(module_name, module_db): duplicated_deps = declared_public_deps & declared_private_deps if duplicated_deps: report.append( - f'- has duplicated PUBLIC/PRIVATE dependencies: {duplicated_deps}') + f' - has duplicated PUBLIC/PRIVATE dependencies: {duplicated_deps}') # - Apparent dep not declared - missing_public_deps = apparent_public_deps - declared_public_deps + missing_public_deps = apparent_public_deps - \ + declared_public_deps - declared_interface_deps if missing_public_deps: report.append( - f'- may require PUBLIC dependencies: {missing_public_deps}') + f' + may require PUBLIC or INTERFACE dependencies: {missing_public_deps}') missing_private_deps = apparent_private_deps - declared_private_deps if missing_private_deps: report.append( - f'- may require PRIVATE dependencies: {missing_private_deps}') + f' + may require PRIVATE dependencies: {missing_private_deps}') # - Declared dep not in apparent (overdeclared) overdeclared_public_deps = declared_public_deps - apparent_public_deps if overdeclared_public_deps: report.append( - f'- may not require PUBLIC dependencies: {overdeclared_public_deps}') + f' - may not require PUBLIC dependencies: {overdeclared_public_deps}') overdeclared_private_deps = declared_private_deps - apparent_private_deps if overdeclared_private_deps: report.append( - f'- may not require PRIVATE dependencies: {overdeclared_private_deps}') + f' - may not require PRIVATE dependencies: {overdeclared_private_deps}') return report -def find_cycles(module_db, verbose): +def do_provides(header_name, module_db, verbose): + # find the header, there should not be duplicates! + mods = what_provides(header_name, module_db) + if len(mods) == 0: + print(f"No module provides header '{header_name}'", file=sys.stderr) + sys.exit(1) + if len(mods) > 1: + print( + f"Header '{args.provides}' is provided by multiple modules: {mods}", file=sys.stderr) + sys.exit(1) + + print(mods.pop()) + + +def do_check_consistency(module_name, module_db): + try: + cc = check_consistency(module_name, module_db) + if cc: + print(f'{module_name} has inconsistent dependencies:', file=sys.stderr) + print("\n".join(cc), file=sys.stderr) + sys.exit(1) + else: + print(f'Module {module_name} appears consistent') + except KeyError as err: + print(f'No module named \'{module_name}\'', file=sys.stderr) + sys.exit(1) + + +def do_find_cycles(module_db, verbose): """ Check for any cycles in the complete module dependency graph """ # Build adjacency list adjlist = {} - for k, v in module_db.items(): - adjlist[k] = list(v['public_deps'] | v['private_deps'] - | v['interface_deps']) + + for m in get_modules(module_db): + adjlist[m] = list(get_public_deps(m, module_db) + | get_private_deps(m, module_db) + | get_interface_deps(m, module_db)) try: # Topo sort throws cycle error if one occurs during prepare @@ -182,19 +281,45 @@ def find_cycles(module_db, verbose): ts.done(*nodes) generation += 1 - print(f"pass: No cycles detected in module dependency graph") + print(f"No cycles detected in module dependency graph") except graphlib.CycleError as err: print( - f"error: cycles detected in module dependency graph", + f"Cycles detected in module dependency graph:", file=sys.stderr, ) - cycle = " <- ".join(err.args[1]) - print(f"cycle: {cycle}", file=sys.stderr) + cycle = " -> ".join(reversed(err.args[1])) + print(f"{cycle}", file=sys.stderr) sys.exit(1) +def do_find_inconsistencies(db, verbose): + inconsistent = {} + for m in get_modules(db): + cc = check_consistency(m, db) + if cc: + inconsistent[m] = "\n".join(cc) + + if len(inconsistent) > 0: + for k, v in inconsistent.items(): + print(f'{k}:\n{v}', file=sys.stderr) + + sys.exit(1) + else: + print( + "No inconsistencies detected in declared/apparent module dependencies") + + +def do_libraries(db, verbose): + libmap = defaultdict(set) + + for m in get_modules(db): + libmap[get_parent_target(m, db)].add(m) + + for k, v in sorted(libmap.items()): + print(f'{k}: {v}') + + if __name__ == "__main__": - # Parse command line to get command to run parser = argparse.ArgumentParser( description=str(__doc__), formatter_class=argparse.RawDescriptionHelpFormatter ) @@ -210,6 +335,11 @@ if __name__ == "__main__": action='store_true', help="list declared source code modules" ) + query_group.add_argument( + "-s", "--source", + metavar="", + help="print directory holding CMake file where module is defined" + ) query_group.add_argument( "-i", "--interface", metavar="", @@ -240,6 +370,16 @@ if __name__ == "__main__": action="store_true", help="find inconsistencies in apparent/declared dependencies of all modules" ) + query_group.add_argument( + "--library", + metavar="", + help="print final library (.so/.dll) that module is compiled into" + ) + query_group.add_argument( + "--libraries", + action="store_true", + help="print final libraries and their module compositions" + ) args = parser.parse_args() # Initialize the module/header "database" @@ -251,52 +391,36 @@ if __name__ == "__main__": # Implementations if args.list: - print("\n".join(db.keys())) + print("\n".join(get_modules(db))) + elif args.source: + try: + print(get_location(args.source, db)) + except KeyError as err: + print(f"No module named {err}", file=sys.stderr) + sys.exit(1) elif args.interface: try: - print("\n".join(db[args.interface]['headers'])) + print( + "\n".join(sorted(get_headers(args.interface, db)))) except KeyError as err: print(f"No module named {err}", file=sys.stderr) sys.exit(1) elif args.provides: - # find the header, there should not be duplicates! - mods = [k for k, v in db.items() if args.provides in v['headers']] - if len(mods) == 0: - print( - f"No module provides header '{args.provides}'", - file=sys.stderr) - sys.exit(1) - if len(mods) > 1: - print( - f"Header '{args.provides}' is provided by multiple modules: {mods}", - file=sys.stderr) - sys.exit(1) - - print(mods[0]) + do_provides(args.provides, db, args.verbose) elif args.usage_requirements: ur = usage_requirements(args.usage_requirements, db) print(json.dumps(ur, indent=2)) elif args.check_consistency: - cc = check_consistency(args.check_consistency, db) - if cc: - print(f'{args.check_consistency}:', file=sys.stderr) - print("\n".join(cc), file=sys.stderr) - sys.exit(1) - else: - print( - f'{args.check_consistency} appears consistent') + do_check_consistency(args.check_consistency, db) elif args.find_cycles: - find_cycles(db, args.verbose) + do_find_cycles(db, args.verbose) elif args.find_inconsistencies: - inconsistent = {} - for m in db.keys(): - cc = check_consistency(m, db) - if cc: - inconsistent[m] = "\n".join(cc) - - if len(inconsistent) > 0: - print(f'Inconsistent dependencies in modules:', file=sys.stderr) - for k, v in inconsistent.items(): - print(f'{k}:\n{v}', file=sys.stderr) - + do_find_inconsistencies(db, args.verbose) + elif args.library: + try: + print(get_parent_target(args.library, db)) + except KeyError as err: + print(f"No module named {err}", file=sys.stderr) sys.exit(1) + elif args.libraries: + do_libraries(db, args.verbose) diff --git a/cmake/Templates/Geant4Config.cmake.in b/cmake/Templates/Geant4Config.cmake.in index 6a751f8484..cf277ffa83 100644 --- a/cmake/Templates/Geant4Config.cmake.in +++ b/cmake/Templates/Geant4Config.cmake.in @@ -527,7 +527,6 @@ if(Geant4_vis_toolssg_x11_gles_FOUND) if(("vis_toolssg_x11_gles" IN_LIST Geant4_FIND_COMPONENTS) OR Geant4_vis_all_FOUND) list(APPEND Geant4_DEFINITIONS -DG4VIS_USE_TOOLSSG_X11_GLES) - set(_geant4_use_toolssg_library ON) endif() endif() @@ -537,7 +536,6 @@ if(Geant4_vis_toolssg_windows_gles_FOUND) find_dependency(OpenGL) if(("vis_toolssg_windows_gles" IN_LIST Geant4_FIND_COMPONENTS) OR Geant4_vis_all_FOUND) list(APPEND Geant4_DEFINITIONS -DG4VIS_USE_TOOLSSG_WINDOWS_GLES) - set(_geant4_use_toolssg_library ON) endif() endif() @@ -554,7 +552,6 @@ if(Geant4_vis_toolssg_xt_gles_FOUND) if(("vis_toolssg_xt_gles" IN_LIST Geant4_FIND_COMPONENTS) OR Geant4_vis_all_FOUND) list(APPEND Geant4_DEFINITIONS -DG4VIS_USE_TOOLSSG_XT_GLES) - set(_geant4_use_toolssg_library ON) endif() endif() @@ -564,7 +561,6 @@ if(Geant4_vis_toolssg_qt_gles_FOUND) find_dependency(OpenGL) if(("vis_toolssg_qt_gles" IN_LIST Geant4_FIND_COMPONENTS) OR Geant4_vis_all_FOUND) list(APPEND Geant4_DEFINITIONS -DG4VIS_USE_TOOLSSG_QT_GLES) - set(_geant4_use_toolssg_library ON) endif() endif() @@ -627,13 +623,12 @@ set(_geant4_internal_libraries Geant4::G4GMocren${_geant4_lib_use_suffix} Geant4::G4visHepRep${_geant4_lib_use_suffix} Geant4::G4RayTracer${_geant4_lib_use_suffix} - Geant4::G4VRML${_geant4_lib_use_suffix}) + Geant4::G4VRML${_geant4_lib_use_suffix} + Geant4::G4ToolsSG${_geant4_lib_use_suffix}) # - G4OpenGL if it's requested. if(_geant4_use_opengl_library) - list(APPEND _geant4_internal_libraries - Geant4::G4OpenGL${_geant4_lib_use_suffix} - Geant4::G4gl2ps${_geant4_lib_use_suffix}) + list(APPEND _geant4_internal_libraries Geant4::G4OpenGL${_geant4_lib_use_suffix}) list(APPEND Geant4_DEFINITIONS -DG4VIS_USE_OPENGL) endif() @@ -648,12 +643,6 @@ if(_geant4_use_inventor_library) list(APPEND _geant4_internal_libraries Geant4::G4OpenInventor${_geant4_lib_use_suffix}) endif() -# - G4ToolsSG if it's requested. -if(_geant4_use_toolssg_library) - list(APPEND _geant4_internal_libraries Geant4::G4ToolsSG${_geant4_lib_use_suffix}) - list(APPEND Geant4_DEFINITIONS -DG4VIS_USE_TOOLSSG) -endif() - if(_geant4_use_vtk_library) list(APPEND _geant4_internal_libraries Geant4::G4visVtk${_geant4_lib_use_suffix}) endif() diff --git a/cmake/Templates/geant4-config.in b/cmake/Templates/geant4-config.in index d64d21cc70..5c32d7af2d 100644 --- a/cmake/Templates/geant4-config.in +++ b/cmake/Templates/geant4-config.in @@ -215,13 +215,6 @@ feature_list="${feature_list} qt[${have_qt}]" if test "x${have_qt}" = "xyes" ; then vis_cflags="${vis_cflags} \ -DG4UI_USE_QT -DG4VIS_USE_OPENGLQT @G4_QT_CFLAGS@" - -if test "x${qt_version}" \< "5.15.0" ; then - vis_libs="-lG4visQt3D ${vis_libs}" - libs="-lG4visQt3D ${libs}" - vis_cflags="${vis_cflags} -DG4UI_USE_QT3D" -fi - geant4_uses_opengl="yes" fi @@ -229,6 +222,10 @@ fi have_qt3d="@G4_BUILTWITH_QT3D@" feature_list="${feature_list} qt3d[${have_qt3d}]" +if test "x${have_qt3d}" = "xyes" ; then + vis_libs="-lG4visQt3D ${vis_libs}" + vis_cflags="${vis_cflags} -DG4UI_USE_QT3D" +fi # - Motif have_motif="@G4_BUILTWITH_MOTIF@" @@ -276,10 +273,10 @@ feature_list="${feature_list} vtk[${have_vtk}]" # - If we have any OpenGL based feature, then we need to add in the -# OpenGL global define and the G4OpenGL/G4gl2ps libraries. +# OpenGL global define and the G4OpenGL libraries. if test "x${geant4_uses_opengl}" = "xyes" ; then vis_cflags="-DG4VIS_USE_OPENGL ${vis_cflags}" - vis_libs="-lG4OpenGL -lG4gl2ps ${vis_libs}" + vis_libs="-lG4OpenGL ${vis_libs}" fi # - If we have any X11 based feature, then we *may* need the X11 includes diff --git a/config/G4VIS_BUILD.gmk b/config/G4VIS_BUILD.gmk index 8ebcd03e91..306eae6e3b 100644 --- a/config/G4VIS_BUILD.gmk +++ b/config/G4VIS_BUILD.gmk @@ -16,6 +16,7 @@ ifndef G4VIS_NONE # G4VIS_BUILD_HEPREPFILE_DRIVER # G4VIS_BUILD_RAYTRACER_DRIVER # G4VIS_BUILD_VRMLFILE_DRIVER +# G4VIS_BUILD_TOOLSSG_OFFSCREEN_DRIVER ifdef G4VIS_BUILD_OPENGLXM_DRIVER # OPENGLXM requires OPENGLX... diff --git a/config/G4VIS_USE.gmk b/config/G4VIS_USE.gmk index 486eb8a5b8..abb050e73b 100644 --- a/config/G4VIS_USE.gmk +++ b/config/G4VIS_USE.gmk @@ -32,6 +32,9 @@ VISLIBS += -lG4RayTracer CPPFLAGS += -DG4VIS_USE_VRMLFILE VISLIBS += -lG4VRML +CPPFLAGS += -DG4VIS_USE_TOOLSSG_OFFSCREEN +VISLIBS += -lG4ToolsSG + ifneq ($(G4INCLUDE_EXEC),1) CPPFLAGS += -I$(G4BASE)/visualization/FukuiRenderer/include CPPFLAGS += -I$(G4BASE)/visualization/gMocren/include @@ -39,6 +42,7 @@ ifneq ($(G4INCLUDE_EXEC),1) CPPFLAGS += -I$(G4BASE)/visualization/RayTracer/include CPPFLAGS += -I$(G4BASE)/visualization/Tree/include CPPFLAGS += -I$(G4BASE)/visualization/VRML/include + CPPFLAGS += -I$(G4BASE)/visualization/ToolsSG/include endif ifdef G4VIS_USE_OPENGLX @@ -135,13 +139,6 @@ ifdef G4VIS_USE_VRML # CPPFLAGS += -I... and VISLIBS += set above. endif -ifdef G4LIB_USE_GL2PS - ifneq ($(G4INCLUDE_EXEC),1) - CPPFLAGS += -I$(G4BASE)/visualization/externals/gl2ps/include - endif - VISLIBS += -lG4gl2ps -endif - ########################### and finally... ####################### G4VIS_USE = 1 diff --git a/config/History b/config/History index 868f35f348..e8f9789f0d 100644 --- a/config/History +++ b/config/History @@ -6,6 +6,35 @@ It must **not** be used as a substitute for writing good git commit messages! -------------------------------------------------------------------------------- +## 2022-11-02 Gabriele Cosmo (config-V11-00-12) +- Silence ld warnings in Darwin setups. + +## 2022-10-31 Gabriele Cosmo (config-V11-00-11) +- Corrected buffer size in liblist.c tool. + +## 2022-10-25 Guy Barrand (config-V11-00-10) +- G4VIS_BUILD.gmk, G4VIS_USE.gmk: handle vis/ToolsSG by default. + +## 2022-10-21 Gunter Folger (config-V11-00-09) +- Add --gcc-toolchain option for CXX and CC in Linux-clang. +- Removed protecton in definition of CXX and CC + +## 2022-10-19 Gabriele Cosmo (config-V11-00-08) +- Protected definition of CXX and CC in Linux-clang. + +## 2022-10-12 Gabriele Cosmo (config-V11-00-07) +- Replaced use of deprecated sprintf() with snprintf() in liblist.c tool. + +## 2022-10-07 Gabriele Cosmo (config-V11-00-06) +- Added "-diag-disable=10441" option to Linux-icc, to disable Intel/icc + compiler deprecation message. + +## 2022-08-30 Gabriele Cosmo (config-V11-00-05) +- Fixed gcc compilation warnings on liblist.c tool. + +## 2022-07-14 Ben Morgan (config-V11-00-04) +- Remove obsolete G4gl2ps category and library from build + ## 2022-03-25 Ben Morgan (config-V11-00-03) - Retire G4tasking category and library from build diff --git a/config/liblist.c b/config/liblist.c index 5850bcf061..6933594d5f 100644 --- a/config/liblist.c +++ b/config/liblist.c @@ -70,7 +70,7 @@ char** parsedir(char *directory,int *argc) buffer=(char*) malloc((strlen(directory)+ strlen(entry->d_name)+2)*sizeof(char)); strcpy(buffer,directory); - strncat(buffer,"/",1); + strcat(buffer,"/"); strcat(buffer,entry->d_name); s=stat(buffer,&status); if(s==0) @@ -294,7 +294,7 @@ int main (int argc, char** argv) { ptr=strtok(NULL,"/"); while(ptr&&strcmp(ptr,"GNUmakefile")) { - strncat(libmapPtr->trigger,"/",1); + strcat(libmapPtr->trigger,"/"); strcat(libmapPtr->trigger,ptr); ptr=strtok(NULL,"/"); } @@ -349,7 +349,7 @@ int main (int argc, char** argv) { } strcpy(workbuf,libmapPtr->lib); /* Add trailing "/" to distinguish track/ and tracking/, etc. */ - strncat(workbuf,"/",1); + strcat(workbuf,"/"); if(strstr(ptr,workbuf)) break; } if(libmapPtr) @@ -381,7 +381,7 @@ int main (int argc, char** argv) { exit(1); } strcpy(workbuf,libmapPtr->trigger); - strncat(workbuf,"/include",8); + strcat(workbuf,"/include"); ptr=strstr(bufferPtr,workbuf); if(ptr && (userLibmapPtr != libmapPtr)) { @@ -407,7 +407,7 @@ int main (int argc, char** argv) { exit(1); } strcpy(workbuf,libmapPtr->lib); - strncat(workbuf,"/",1); + strcat(workbuf,"/"); ptr=strstr(bufferPtr,workbuf); if(ptr && (userLibmapPtr != libmapPtr)) { @@ -590,17 +590,17 @@ int main (int argc, char** argv) { /* Check existance of libraries and print out only installed ones */ - sprintf(libname, "%s/lib%s.a", libpath, libmapPtr->lib); + snprintf(libname, libname_usable_size+16, "%s/lib%s.a", libpath, libmapPtr->lib); if (access(libname,R_OK)) { - sprintf(libname, "%s/lib%s.so", libpath, libmapPtr->lib); + snprintf(libname, libname_usable_size+16, "%s/lib%s.so", libpath, libmapPtr->lib); if (!access(libname,R_OK)) { printf("-l%s ",libmapPtr->lib); } else /* case MacOS .dylib */ { - sprintf(libname, "%s/lib%s.dylib", libpath, libmapPtr->lib); + snprintf(libname, libname_usable_size+16, "%s/lib%s.dylib", libpath, libmapPtr->lib); if (!access(libname,R_OK)) { printf("-l%s ",libmapPtr->lib); diff --git a/config/sys/Darwin-clang.gmk b/config/sys/Darwin-clang.gmk index c535bba9c8..9a6b438ae2 100644 --- a/config/sys/Darwin-clang.gmk +++ b/config/sys/Darwin-clang.gmk @@ -179,13 +179,13 @@ ifeq ($(G4SYSTEM),Darwin-clang) define build-granular-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ cd $(G4TMPDIR); \ - $(CXX) -dynamiclib -single_module -undefined dynamic_lookup \ + $(CXX) -Wl,-w -dynamiclib -single_module -undefined dynamic_lookup \ -o $$libdir/$(@F) $(INTYLIBS) *.o endef define build-global-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ cd $(G4TMP)/$(G4SYSTEM); \ - $(CXX) -dynamiclib -single_module -undefined dynamic_lookup \ + $(CXX) -Wl,-w -dynamiclib -single_module -undefined dynamic_lookup \ -o $$libdir/$(@F) $(INTYLIBS) $(foreach dir,$(SUBLIBS),$(dir)/*.o); endef diff --git a/config/sys/Darwin-g++.gmk b/config/sys/Darwin-g++.gmk index 1ea2d07bef..ad48cd01c6 100644 --- a/config/sys/Darwin-g++.gmk +++ b/config/sys/Darwin-g++.gmk @@ -208,13 +208,13 @@ ifeq ($(G4SYSTEM),Darwin-g++) define build-granular-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ cd $(G4TMPDIR); \ - $(CXX) -dynamiclib -single_module -undefined dynamic_lookup \ + $(CXX) -Wl,-w -dynamiclib -single_module -undefined dynamic_lookup \ -o $$libdir/$(@F) $(INTYLIBS) *.o endef define build-global-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ cd $(G4TMP)/$(G4SYSTEM); \ - $(CXX) -dynamiclib -single_module -undefined dynamic_lookup \ + $(CXX) -Wl,-w -dynamiclib -single_module -undefined dynamic_lookup \ -o $$libdir/$(@F) $(INTYLIBS) $(foreach dir,$(SUBLIBS),$(dir)/*.o); endef diff --git a/config/sys/Linux-clang.gmk b/config/sys/Linux-clang.gmk index 5c2195d585..f7c5b4cc76 100644 --- a/config/sys/Linux-clang.gmk +++ b/config/sys/Linux-clang.gmk @@ -4,7 +4,8 @@ # Original author: Gabriele Cosmo - CERN # ifeq ($(G4SYSTEM),Linux-clang) - CXX := clang++ + GCCBASE := $(shell which g++ | sed -e "s=/bin/g++==") + CXX := clang++ --gcc-toolchain=$(GCCBASE) CXXFLAGS := -Wall -Wno-non-virtual-dtor -Wno-long-long CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual CXXFLAGS += -Wno-variadic-macros -Wshadow -pipe @@ -45,7 +46,7 @@ ifeq ($(G4SYSTEM),Linux-clang) G4RUNPATHOPTION := -Wl,-rpath, G4STATIC_MODE += -Wl,--whole-archive G4NOSTATIC_MODE += -Wl,--no-whole-archive - CC := clang + CC := clang --gcc-toolchain=$(GCCBASE) FC := gfortran FCFLAGS += -fno-automatic -fno-backslash -fno-second-underscore FCLIBS := -lg2c -lnsl diff --git a/config/sys/Linux-icc.gmk b/config/sys/Linux-icc.gmk index d415097327..1bca1c3a98 100644 --- a/config/sys/Linux-icc.gmk +++ b/config/sys/Linux-icc.gmk @@ -6,7 +6,7 @@ ifeq ($(G4SYSTEM),Linux-icc) CXXFLAGS := -W -Wall -ansi -pedantic -Wno-non-virtual-dtor -Wno-long-long CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual CXXFLAGS += -Wno-variadic-macros -Wshadow -pipe - CXXFLAGS += -fp-model precise + CXXFLAGS += -fp-model precise -diag-disable=10441 CPPFLAGS += -std=c++17 CXXFLAGS += -std=c++17 G4USE_STD17 := 1 @@ -138,12 +138,12 @@ ifeq ($(G4SYSTEM),Linux-icc) define build-granular-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ cd $(G4TMPDIR); \ - $(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) $(INTYLIBS) *.o + $(CXX) -diag-disable=10441 -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) $(INTYLIBS) *.o endef define build-global-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ cd $(G4TMP)/$(G4SYSTEM); \ - $(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) $(INTYLIBS) \ + $(CXX) -diag-disable=10441 -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) $(INTYLIBS) \ $(foreach dir,$(SUBLIBS),$(dir)/*.o); endef diff --git a/environments/History b/environments/History index 150d107b1d..8a91119723 100644 --- a/environments/History +++ b/environments/History @@ -4,6 +4,12 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-15 Ben Morgan (envs-V11-00-01) +- Remove g4py and zmq environments from toolkit. The source and support for these + envs has moved to GitHub under: + - [Geant4Py](https://github.com/koichi-murakami/g4python) + - [ZMQ](https://github.com/koichi-murakami/zmq-geant4) + ## 2021-12-10 Ben Morgan (envs-V11-00-00) - Change to new Markdown History format diff --git a/environments/README.md b/environments/README.md new file mode 100644 index 0000000000..64e17d0c61 --- /dev/null +++ b/environments/README.md @@ -0,0 +1,14 @@ +# Getting Geant4Py and ZMQ Environments + +To enable better support and development of the Geant4Py and ZMQ environments for +end users, the distribution and build of these as part of the Geant4 toolkit has +been removed in Geant4 11.1. + +Both codes are still available from the original and ongoing upstream development +repositories on GitHub: + +- [Geant4Py](https://github.com/koichi-murakami/g4python) +- [ZMQ](https://github.com/koichi-murakami/zmq-geant4) + +All support enquiries and questions should be directed to the Issues boards on +those projects. diff --git a/environments/g4py/CMakeLists.txt b/environments/g4py/CMakeLists.txt deleted file mode 100644 index 715a437050..0000000000 --- a/environments/g4py/CMakeLists.txt +++ /dev/null @@ -1,24 +0,0 @@ -# - Top-level CMakeLists.txt for Geant4Py -# Note that we are assuming it is always part of Geant4, never separately -# released. That's for later, if required at all. -# In particular, Geant4Py must be matched exactly to a given Geant4 release - -# Require Python 3 or newer, calling Interp before Libs to help find a consistent set -# Boost python requirement is reliant on correct user config (not yet known how to check -# which Python an install of Boost Python uses)... -find_package(PythonInterp 3.0 REQUIRED) -find_package(PythonLibs REQUIRED) -find_package(Boost 1.65 REQUIRED python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}) - -# Variables and Functions to help build, organise, and install modules -include(${CMAKE_CURRENT_SOURCE_DIR}/G4PythonHelpers.cmake) - -# - Build package/modules, tests if required -add_subdirectory(source) -if(GEANT4_ENABLE_TESTING) - add_subdirectory(tests) -endif() - -# Add the feature recording here so we can note the Python version -geant4_add_feature(GEANT4_USE_PYTHON "Building bindings for Python ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}") - diff --git a/environments/g4py/G4PythonHelpers.cmake b/environments/g4py/G4PythonHelpers.cmake deleted file mode 100644 index 648ece11c6..0000000000 --- a/environments/g4py/G4PythonHelpers.cmake +++ /dev/null @@ -1,80 +0,0 @@ -# Try and get modules output to config dependent site-packages -# Can put all Python outputs under GEANT4_PYTHON_OUTPUT_DIR (and conf variants) -# That's the baseline, packages however need to then adjust output path for -# any substructure -set(GEANT4_PYTHON_OUTPUT_DIR "$/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages") - -set(CMAKE_INSTALL_PYTHONDIR "${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages" CACHE PATH "Python modules/packages") -mark_as_advanced(CMAKE_INSTALL_PYTHONDIR) -if(NOT IS_ABSOLUTE "${CMAKE_INSTALL_PYTHONDIR}") - set(CMAKE_INSTALL_FULL_PYTHONDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_PYTHONDIR}") -else() - set(CMAKE_INSTALL_FULL_PYTHONDIR "${CMAKE_INSTALL_PYTHONDIR}") -endif() - -# Extension modules link to libraries so relative RPATH modules to libraries -file(RELATIVE_PATH GEANT4_PYMODULE_RPATH - "${CMAKE_INSTALL_FULL_PYTHONDIR}/Geant4" - "${CMAKE_INSTALL_FULL_LIBDIR}") - -# Basic "add module" command to wrap common functionality -# Should also help when migrating to pybind11 or FindPython builtins -function(g4py_add_module target_name) - add_library(${target_name} MODULE ${ARGN}) - - # Python extension module naming - set_property(TARGET ${target_name} PROPERTY PREFIX "") - if(CMAKE_SYSTEM_NAME STREQUAL "Windows") - set_property(TARGET ${target_name} PROPERTY SUFFIX ".pyd") - set_property(TARGET ${target_name} PROPERTY DEBUG_SUFFIX "_d") - endif() - - # Adjust output location (may need adjustment on Windows) - set_property(TARGET ${target_name} PROPERTY LIBRARY_OUTPUT_DIRECTORY "${GEANT4_PYTHON_OUTPUT_DIR}") - foreach(_conftype ${CMAKE_CONFIGURATION_TYPES}) - string(TOUPPER ${_conftype} _conftype_uppercase) - set_property(TARGET ${target_name} PROPERTY LIBRARY_OUTPUT_DIRECTORY_${_conftype_uppercase} "${GEANT4_PYTHON_OUTPUT_DIR}") - endforeach() - - # Force linkage to extension system, other deps to be linked by client - # Use dynamic_lookup on Darwin to avoid direct linking to libpython (Linux has this as default, - # to be checked for Windows) - target_include_directories(${target_name} PRIVATE ${PYTHON_INCLUDE_DIRS}) - target_link_libraries(${target_name} PRIVATE Boost::python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR} "$<$:-undefined dynamic_lookup>") - - # Workaround to suppress pragma message spam in Boost >= 1.73 - # - See https://github.com/boostorg/python/pull/315 - target_compile_definitions(${target_name} PRIVATE BOOST_BIND_GLOBAL_PLACEHOLDERS) -endfunction() - - -# Handle core Geant4 modules -# Wraps g4py_add_module, because we have to avoid duplicate target names -# (e.g. "G4global" for libG4global.dylib vs G4global.so) -# It just manages the naming and output name/directory -function(geant4_add_pymodule _name) - if(NOT (_name MATCHES "^pyG4[a-zA-Z0-9_]+")) - message(FATAL_ERROR "Invalid Geant4 Python module name '${_name}'. Names must begin with 'pyG4'") - endif() - - set(_module_target "${_name}") - string(REGEX REPLACE "^py" "" _module_lib "${_module_target}") - - g4py_add_module(${_module_target} ${ARGN}) - - set_property(TARGET ${_module_target} PROPERTY OUTPUT_NAME "${_module_lib}") - - set_property(TARGET ${_module_target} APPEND_STRING PROPERTY LIBRARY_OUTPUT_DIRECTORY "/Geant4") - foreach(_conftype ${CMAKE_CONFIGURATION_TYPES}) - string(TOUPPER ${_conftype} _conftype_uppercase) - set_property(TARGET ${_module_target} APPEND_STRING PROPERTY LIBRARY_OUTPUT_DIRECTORY_${_conftype_uppercase} "/Geant4") - endforeach() - - if(UNIX AND NOT APPLE) - set_property(TARGET ${_module_target} PROPERTY - INSTALL_RPATH "\$ORIGIN/${GEANT4_PYMODULE_RPATH}") - elseif(APPLE) - set_property(TARGET ${_module_target} PROPERTY - INSTALL_RPATH "@loader_path/${GEANT4_PYMODULE_RPATH}") - endif() -endfunction() diff --git a/environments/g4py/History b/environments/g4py/History deleted file mode 100644 index 66b3ff30df..0000000000 --- a/environments/g4py/History +++ /dev/null @@ -1,323 +0,0 @@ -# Category geant4py History - -See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! - - -## 2021-12-10 Ben Morgan (geant4py-V11-00-00) -- Change to new Markdown History format - ---- - -# History entries prior to 11.0 - -2 Nov. 2021 B.Morgan (geant4py-V10-07-05) -- Apply GitHub PR #31 from andriish -- Use exact version of python for boost.python module - -31 Aug. 2021 B.Morgan (geant4py-V10-07-04) -- Remove binding to obsolete member functions of G4Sphere and G4Tubs - - Either no longer used or cause issues when using Vecgeom - -27 August 2021 Ben Morgan (geant4py-V10-07-03) -- Remove obsolete HepRep(WIRED) driver - -26 Aug. 2021 B. Morgan (geant4py-V10-07-02) -- Remove obsolete VRML1 driver - -17 Aug. 2021 J. Hahnfeld (geant4py-V10-07-01) -- Export binding for G4ElementVector, now that it's different from G4ElementTable - -12 Nov. 2021 V. Ivanchenko (geant4py-V10-07-00) -- TestEm0 - use default Geant4 EM physics, do not use obsolete class - G4EmProcessOptions - -16 Nov. 2020 B. Morgan (geant4py-V10-06-04) -- Boost 1.73 modified use of its bind and placeholder functionality, resulting - in Boost.Python spamming pragma messages about deprecation of this. - See https://github.com/boostorg/python/pull/315. Add BOOST_BIND_GLOBAL_PLACEHOLDERS - as a private compile definition to geant4py targets to suppress these. - -11 Nov. 2020 B. Morgan (geant4py-V10-06-03) -- Address Bugzilla 2283 -- Make CMAKE_INSTALL_PYTHONDIR a user-configurable cache variable -- RPATH issue is addressed by use of CMAKE_SKIP_INSTALL_RPATH variable by client - -6 Oct. 2020 B. Morgan (geant4py-V10-06-02) -- Add binding to G4PhysListFactory (GitHub PR #14, contributed by Daniel Hellfeld) -- Add simple test case of binding. - -25 Aug. 2020 B. Morgan (geant4py-V10-06-01) -- Remove obsolete boost.python indexing suite. Only required on - very old Boost versions <= 1.33 - -19 Mar. 2020 B. Morgan (geant4py-V10-06-00) -- Integrate build, test, and install of geant4py with core Geant4 - CMake buildsystem. - -1 Dec. 2019 K. Murakami -- update for 10.6 release -- update for Python3 support -- boost_python library name can be specified in cmake (BZ-2059) - -31 Jan. 2019, I.Hrivnacova -- Merged GitHub PR #4: all Boolean operators now return G4bool. - -30 Nov. 2017 K. Murakami - - update for 10.5 release - - fix CMAKE_INSTALL_PREFIX does not work (id 1924) - -24 Nov. 2017 K. Murakami - - update for 10.4 release - -7 Dec. 2016 K. Murakami - - remove G4VisAttributes::Invisible as deprecated - -21 Nov. 2016 K. Murakami - - fix version strings in __init__.py - -18 Nov. 2016 K. Murakami - - update for 10.3 release - - CMake modified for unit/integration tests with CTest - - remove ExN03 physics list - -19 Nov. 2015 K. Murakami - - update CMakeLists.txt, change minimum version requirement to 3.3 - - add exported methods requested by enhansment-id 1613 - -13 Nov. 2015 K. Murakami - - update CMakeLists.txt for C++11 migration - - update for 10.2 release, following changes of class interface. - -15 Nov. 2014 K. Murakami - - complete migration to cmake for building library. (GNUmakefiles removed) - - update for 10.1 release, following changes of class interface. - - linker problem of OSX was fixed. (OSX Yosemite tested) - -May 25 2014 Koichi Murakami - - remove IsGeneric() method in pyG4Polyone.cc because that method is removed. - (bug-id 1544) - - configure script, physics list is changed to be always turned on. - (bug-id 1546) - - pyG4EllipticalCone.cc, add missing return in CreateEllipticalCone() method. - (bug-id 1586) - -15 November 2013 K.Murakami - - add support for CMake build - - updated for 10.0 release - - suppress warnings - -8 November 2012 K.Murakami - - configure script is updated for CMake build - - updated Geant4 interface for the latest - - G4SystemOfUnits.hh and G4PhysicalConstants.hh are explictly added. - - Documentations are updated in Markdown format. - - some minor updated for examples - -23 July 2012 K.Murakami - - configure script: fixed logics for specifying python include path (bug.1316) - - pyG4VisManager: (bug.1318)) - added static statement for GetVerbosity. - fixed GetConcreteInstance returns an insufficient class pointer. - -21 July 2012 K.Murakami - - configure script is updated for internal G4clhep - - pyG4Run.cc, pyG4Event.cc are updated as non-copyable (9.5.p01) (bug.1317) - - g4autobuild, g4package scripts are apdated for internal clhep use. - -10 Nomvembter 2011 K.Murakami - - fixes on OSX Lion matters - - some minor fixes for 9.5 release - -8 November 2011 K.Murakami - - update for 9.5 release - - eliminate obsolete G4Exception. - -1 December 2010 K.Murakami - - update for chages of G4 classes (G4GDMLParser, physics list) - - add a new example using GTK (examples/emplot/emcalc_gui.py) - - experimentally support for Python3 - -21 June 2010 K.Murakami (tagged as envs-V09-03-01) - - updates for changes of G4 classes (G4RunManager, physics list) - - use G4xMultipleScattering for EMLowEpl site-pacakage module - -4 June 2010 K.Murakami (tagged as envs-V09-03-00) - - update for the 9.4 beta release - - use G4xMultipleScattering instead if G4MultipleScattering class. - - bug fix in pyG4GDMLParser.cc - -27 November 2009 K.Murakami - - config/g4py.gmk: add -lz as linker options - -19 November 2009 K.Murakami - - add checking gl2ps library in configure script. - - gl2ps is added in config/g4vis.gmk. - - update pyPhysicsList.cc for 9.3 release - -14 May 2009 K. Murakami (tagged) - - fixes on configure script and config/module.gmk - - change default search paths for G4/CLHEP include and lib - -3 December 2008 K.Murakami (tagged) - - modified for the 9.2 releaase. - * G4Material, G4Isotope, G4Element - -30 November 2008 K.Murakami - - GDML is merged to G4GDML package (g4gdml->gdml) - add write functionality - -30 June 2008 K. Murakami - - brushup python scripts (accroding with PEP-8) - - emcalculator.py : move to site-modules - - add G4CrossSectionHandler - - EZgeom package is moved to geometry/ezgeom - -25 June 2008 K. Murakami - - configure : fix a wrong incdir variable. - - config/sys/linux.gmk, linuxx8664gcc : - add -fpermissive compile option for gcc 4.3 - -12 June 2008 K. Murakami (1.6.1) - - configure : fix echo -n problem, add --with-extra-dir flag - - tools/g4autobuild : add treatment of XERCESCROOT - - tools/g4pack : fix echo -n problem - -4 June 2008 K. Murakami - - add G4AtomicShells - - update configure script (compatible with Debian/Ubuntsu sh) - - cleanup config/*.gmk - - configire: improve search for python include path - -27 May 2008 K.Murakami - - add some random engines - -22 May 2008 K.Murakami - - fix typo in G4VModularPhysicsList - -13 March 2008 K.Murakami (1.6.0) - - use G4Version.hh directly, instead pyG4Version.hh - - configure script updated - -28 February 2008 K.Murakami - - fix pyPhysicsList.cc compilation error - - fix pyG4GDMLParser.cc compilation error - - G4GDML is automatically detected by configure script - -26 November 2007 K.Murakami - - add G4 GDML module support - - update PL for 9.1 - -12 November 2007 K.Murakami (1.5.0) - - add FTFP_BERT in PL for 9.1 - - add GDML (external lib.) support (experimental) - - add exposure of G4Navigator - -07 November 2007 K.Murakami - - update for 9.1 - * G4ParticleGun - * G4NistManager - -07 August 2007 K.Murakami (1.4.1) - - add boolean sold classes - - add G4PVPlacement constructors for geometry overlap check - - add gtest06/07 for geometry test - -12 July 2007 K.Murakami (1.4.0) - - add version contorol in pyG4UIterminal.cc - - bug fix in pyG4VUserDetectorConstruction - - Construct() method should return PV - - update G4VSolid - - add specific CSG solid classes - - add gtest05 as an example constructing CSG solid geometry in Python - - a new example of TestEm0 is contributed by Jean - -07 June 2007 K.Murakami - - modified for 9.0 - - pyG4LossTableManager.cc : updated - - physics lists : removed some staffs - -24 May 2007 K.Murakami (1.3.0) - - implement software abort by Ctrl-C. - - modified for 8.3/9.0 - - pyG4EmCalculator.cc : updated - - pyG4LossTableManager.cc : updated - - pyG4ProductionCutsTable.cc : updated - - pyG4TwoVector.cc : added - - physics lists : new staffs are added - -01 Dec 2006 K.Murakami (1.2.0) - - pyG4Material.cc : fix namespace problem - - pyG4VisManager.cc : replace SetVerboisity with SetVerboseLevel for G4.8.2 - - add messenger for ExN03geom - -21 November 2006 K.Murakami (1.1.0) - - implement G4ExceptionHandler as translation to Python exceptions - - remove obsolete method; G4VPhysicalVolume::GetObjectRotation() - -20 November 2006 K.Murakami - - modification for G4.8.2 - - add G4Exception and G4ExceptionSeverity - - modify configure for supporting physics lists - - add physics list modules - -15 November 2006 H. Yoshida - - add 00README_MACOSX - -23 August 2006 K.Murakami - - add G4Version - - G4LossTableManager, modify for version evolution - -06 August 2006 K.Murakami (1.0.2) - - modify config tools for building on MacOSX (some side-effects) - - add tools dir for support tools for building user environment - - add intercoms dir (move pyG4UImanager.cc from interfacr to intercoms) - - new exposed staffs; - G4UImanager, G4UIcommandTree, G4UIcommand, G4UIparameter - - __init__.py is updeted - (gUImanager as global, and some modifications) - -12 July 2006 K.Murakami (1.0.1) - - add exposures of G4LossTableManager, G4ProductionCutsTable - - add site-modules/utls/MCScore - - add site-modules/physics_lists/EMLowEpl - -29 June 2006 K.Murakami - - "site-modules/primaries/MedicalBeam/MedicalMeam.cc" - fix a bug in calculation of cos from a sin value - - remove duplicated DISCLAIMER (ExN03PhysicsList.cc/hh in site-modules) - -27 June 2006 K.Murakami - - fix rpath of boost_python (config/sys/linux.gmk, linuxx8664gcc.gmk) - -21 June 2006 K.Murakami - - sh version of configure script - - G4UserStackingAction: fixed for not being called - -14 June 2006 K.Murakami - - update 00README - - update expose of G4Track - - change python calls pass-by-reference - (XXXUserAction::XXXAction()) - - change install path of site-modules (lib/site-modules -> lib/) - - remove COPYING - - update examples/education/lesson2 - -07 June 2006 K.Murakami - - fix segmentation fault at termination - (XXUserAction-s, GraphicSystem-s) - -05 June 2006 K.Murakami - - add disclaimer for .cc/.hh files - - some modifications for 08-00-ref-05 - (G4FieldManager/G4EmCalculator/G4VPhysicalVolume/G4ParticleDefinition) - -25 April 2006 K.Murakami - - update to a revised version (local tag: g4py-weekly-23-Apr-06) - - Directory structure is slightly modified. - - some classes are newly exposed. - - some new examples are added. - -27 February 2006 K.Murakami - - commit the first version (local tag: g4py-27-feb-06) diff --git a/environments/g4py/README.md b/environments/g4py/README.md deleted file mode 100644 index 76ec00d0c3..0000000000 --- a/environments/g4py/README.md +++ /dev/null @@ -1,78 +0,0 @@ -Geant4Py -======== - -_A set of python modules for using Geant4_ - - -System Requirements -------------------- - -### CMake -Building system is migrated to CMake system. - -### Python - -Python2.x and Python 3.x (experimental) - -### Boost - -Boost_Python is needed. - -### (Optional) - -ROOT for histogramming/analysis - -### Tested Platforms - -* CentOS7 (Python2) -* Ubuntu 18.04 LTS (Python3) - -How to Install --------------- -Before building library, *GEANT4_INSTALL* environment variable should be set. - - # export GEANT4_INSTALL= (zsh, bash) - # setenv GEANT4_INSTALL (csh) - (G4 install path is the path specified by "CMAKE_INSTALL_PREFIX" when building Geant4) - -then - - # mkdir build - # cd build - # cmake .. - # make - # make install - -By default, g4py is installed in \/lib(64) directory. - -Before doing tests with CTest, you have to set environment variables -for Geant4 data. - - # make - # make install - # ctest - -performs automatic unit/integration tests with CTest. - -How to Use: ------------ -Some environment variables are required at run time. - -### *PYTHONPATH* - -Python module search directories, given by a colon-separated list of directories, like - - - # export PYTHONPATH=/lib64:/lib64/examples:/lib64/tests (zsh, bash) - # setenv PYTHONPATH /lib64:/lib64/examples:/lib64/tests (csh) - -### *LD_LIBRARY_PATH* - -You might need define LD_LIBRARY_PATH for Geant4 libraries. - # export LD_LIBRARY_PATH=/lib (zsh, bash) - # setenv LD_LIBRARY_PATH=/lib (csh) - -### Getting started -You can import Geant4Py modules in Python just like - - >>> import Geant4 diff --git a/environments/g4py/examples/CMakeLists.txt b/environments/g4py/examples/CMakeLists.txt deleted file mode 100644 index 97a391d1f1..0000000000 --- a/environments/g4py/examples/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -# - add examples - -set(TEST_MODULES_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/examples) - -# demos -add_subdirectory(demos/TestEm0/module) -add_subdirectory(demos/water_phantom/module) diff --git a/environments/g4py/examples/History b/environments/g4py/examples/History deleted file mode 100644 index 29fd60653b..0000000000 --- a/environments/g4py/examples/History +++ /dev/null @@ -1,33 +0,0 @@ -# Category g4py-examples History - -See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! - - -## 2021-12-10 Ben Morgan (g4py-examples-V11-00-00) -- Change to new Markdown History format - ---- - -# History entries prior to 11.0 - -12 November 2007 K.Murakami -- add GDML I/O examples - -14 June 2006 K.Murakami -- Summary - [demos/water_phantom] - an example of dose calculation in water phantom with - on-line histogramming with ROOT - - [education/lesson1, lesson2] - educational examples with TKinter GUI - - [emplot] - examples of plotting photon cross section and stopping power - - -24 June 2005 K.Murakami -- just created. - diff --git a/environments/g4py/examples/README b/environments/g4py/examples/README deleted file mode 100644 index c445d98866..0000000000 --- a/environments/g4py/examples/README +++ /dev/null @@ -1,33 +0,0 @@ -------------------------------------------------------------------- - -This directory contains a set of examples for Geant4Py. - -[demos/water_phantom] -An example of "water phantom dosimetry" - -This demo program shows that a Geant4 application well coworks with ROOT -on Python front end. VisManager, PrimaryGeneratorAction, UserAction-s, -histogramming with ROOT are implemented in Python; - + dose calculation in a water phantom - + Python overloading of user actions - + on-line histogramming with ROOT - + visualization - - -[education] -Educational examples with Graphical User Interface using TKinter - -* lesson1 -The first version of the courseware of the mass attenuation coefficient. - -* lesson2 -GUI interface of ExN03, which can control geometry configuration, -intial particle condition, physics processes, cut value, -magnetic field and visualization outputs. - -[emplot] -Examples of plotting photon cross sections and stopping powers with ROOT - -[gdml] -Examples of writing/reading user's geometry to/from a GDML file - diff --git a/environments/g4py/examples/demos/TestEm0/demo.py b/environments/g4py/examples/demos/TestEm0/demo.py deleted file mode 100755 index a82fa0e7e1..0000000000 --- a/environments/g4py/examples/demos/TestEm0/demo.py +++ /dev/null @@ -1,191 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# python script for testem0 python version -# -# ================================================================== -import Geant4 as g4 -import testem0 - -# ================================================================== -# user actions in python -# ================================================================== - - -# ================================================================== -# main -# ================================================================== - -myDC= testem0.DetectorConstruction() -g4.gRunManager.SetUserInitialization(myDC) - -myPL= testem0.PhysicsList() -g4.gRunManager.SetUserInitialization(myPL) - -# set user actions... -myPGA= testem0.PrimaryGeneratorAction(myDC) -g4.gRunManager.SetUserAction(myPGA) - -myRA= testem0.RunAction(myDC,myPGA) - -# set user action classes -g4.gRunManager.SetUserAction(myRA) - - - -g4.gRunManager.Initialize() - -pg = g4.G4ParticleGun() - -materialList = testem0.getMaterialTable(); - -particleList = testem0.getParticleTable() - -enrgyList = ["eV","keV","MeV","GeV","TeV","PeV"] - -cutsList = ["um", "mm" , "cm", "m", "km"] - - - - -# GUI - -from Tkinter import * -class App(Frame): - - - def init(self): - -# title and header - title = Label(self, text="testem0 empowered by Geant4Py\n\n\n") - title.grid(row=0, column=1, columnspan = 4) - -# particle list box - particle_title = Label(self, text="Particle") - particle_title.grid(row=2, column=0) - - particleFrame = Frame(self) - scrollbar2 = Scrollbar(particleFrame) - scrollbar2.pack(side = RIGHT, fill = Y) - self.particleListBox = Listbox(particleFrame, yscrollcommand=scrollbar2.set, exportselection=FALSE,height = 6) - self.particleListBox.pack(side = LEFT) - for item in particleList: - self.particleListBox.insert(END, item) - scrollbar2.config(command=self.particleListBox.yview) - particleFrame.grid(row=3, column=0) - self.particleListBox.select_set(0) - -# separator frame - fblank = Frame(self,width = 40) - fblank.grid(row=3,column=1) - -# material list box - detmaterial_title = Label(self, text="Material") - detmaterial_title.grid(row=2, column=2) - - materialFrame = Frame(self) - scrollbar = Scrollbar(materialFrame) - scrollbar.pack(side = RIGHT, fill = Y) - self.materialListBox = Listbox(materialFrame, yscrollcommand=scrollbar.set, exportselection=FALSE, height = 6) - self.materialListBox.pack(side = LEFT, fill = Y) - for item in materialList: - self.materialListBox.insert(END, item) - scrollbar.config(command=self.materialListBox.yview) - materialFrame.grid(row=3, column=2) - self.materialListBox.select_set(0) - -# separator frame - fblank = Frame(self,width = 40) - fblank.grid(row=3,column=3) - -# energy - fEnergy = Frame(self) - energyLabel = Label(self, text="Energy") - energyLabel.grid(row = 2, column = 4) - - scrollbarEnergy = Scrollbar(fEnergy) - scrollbarEnergy.pack(side = RIGHT, fill = Y) - self.energyEntry = Entry(fEnergy, width= 8 ); - self.energyEntry.pack(side = TOP) - self.energyEntry.insert(0, "1.0") - - self.energyListBox = Listbox(fEnergy, yscrollcommand=scrollbarEnergy.set,exportselection=FALSE,width=8,height = 5) - self.energyListBox.pack(side = BOTTOM ) - for item in enrgyList: - self.energyListBox.insert(END, item) - scrollbarEnergy.config(command=self.energyListBox.yview) - fEnergy.grid(row = 3, column = 4 ) - self.energyListBox.select_set(0) - -# separator frame - fblank = Frame(self,width = 40) - fblank.grid(row=3,column=5) - -# cuts - fCuts = Frame(self) - cutsLabel = Label(self, text="Cuts", width= 8) - cutsLabel.grid(row = 2, column = 6) - - scrollbarCuts = Scrollbar(fCuts) - scrollbarCuts.pack(side = RIGHT, fill = Y) - self.cutsEntry = Entry(fCuts, width= 8); - self.cutsEntry.pack(side = TOP) - self.cutsEntry.insert(0, "1.0") - - self.cutsListBox = Listbox(fCuts, width= 8 ,yscrollcommand=scrollbarCuts.set,exportselection=FALSE,height = 5) - self.cutsListBox.pack(side = BOTTOM ) - for item in cutsList: - self.cutsListBox.insert(END, item) - scrollbarCuts.config(command=self.cutsListBox.yview) - fCuts.grid(row = 3, column = 6 ) - self.cutsListBox.select_set(0) - -# separator frame - fblank = Frame(self,height = 40) - fblank.grid(row=4,column=0) - -# start a run button - startBut = Button(self, bg="green", text="Start a run", command=self.cmd_beamOn) - startBut.grid(row=5, column=2, sticky=W) - -# exit button - exitBut = Button(self, bg="grey", text="Exit", command=self.quit) - exitBut.grid(row=5, column=6, sticky=E) - - def __init__(self, master=None): - Frame.__init__(self, master) - self.init() - self.grid() - - def cmd_beamOn(self): - - # get and set particle - if self.particleListBox.curselection(): - index =int(self.particleListBox.curselection()[0]) - g4.gApplyUICommand("/gun/particle " + particleList[index]) - - # get and set detector Material - if self.materialListBox.curselection(): - index =int(self.materialListBox.curselection()[0]) - g4.gApplyUICommand("/testem/det/setMat " + materialList[index]) - - # get and set energy - energy = self.energyEntry.get() - if self.energyListBox.curselection(): - index = int(self.energyListBox.curselection()[0]) - unity = enrgyList[index] - g4.gApplyUICommand("/gun/energy " + energy + " " + unity) - - # get and set cuts - cuts = self.cutsEntry.get() - if self.cutsListBox.curselection(): - index = int(self.cutsListBox.curselection()[0]) - unity = cutsList[index] - g4.gApplyUICommand("/testem/phys/setCuts " + cuts + " " + unity) - - # run beamOn - g4.gRunManager.BeamOn(1) - - -app = App() -app.mainloop() - diff --git a/environments/g4py/examples/demos/TestEm0/module/CMakeLists.txt b/environments/g4py/examples/demos/TestEm0/module/CMakeLists.txt deleted file mode 100644 index bbc747c642..0000000000 --- a/environments/g4py/examples/demos/TestEm0/module/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -# - build test library - -include_directories( - ${PYTHON_INCLUDE_PATH} - ${Boost_INCLUDE_DIRS} - ${GEANT4_INCLUDE_DIR} -) - -link_directories (${GEANT4_LIBRARY_DIR} ${Boost_LIBRARY_DIRS}) - -# library -set(_TARGET testem0) -add_library( - ${_TARGET} SHARED - DetectorConstruction.cc - DetectorMessenger.cc - PhysListEmStandard.cc - PhysicsList.cc - PhysicsListMessenger.cc - PrimaryGeneratorAction.cc - RunAction.cc - pytestem0.cc -) - -set_target_properties(${_TARGET} PROPERTIES PREFIX "") -set_target_properties(${_TARGET} PROPERTIES OUTPUT_NAME "testem0") -set_target_properties(${_TARGET} PROPERTIES SUFFIX ".so") - -target_link_libraries (${_TARGET} - ${GEANT4_LIBRARIES_WITH_VIS} boost_python - ${PYTHON_LIBRARIES}) - -# install -install(TARGETS ${_TARGET} LIBRARY DESTINATION ${TEST_MODULES_INSTALL_DIR}) diff --git a/environments/g4py/examples/demos/TestEm0/module/DetectorConstruction.cc b/environments/g4py/examples/demos/TestEm0/module/DetectorConstruction.cc deleted file mode 100644 index e06fbb09c8..0000000000 --- a/environments/g4py/examples/demos/TestEm0/module/DetectorConstruction.cc +++ /dev/null @@ -1,198 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "DetectorConstruction.hh" -#include "DetectorMessenger.hh" - -#include "G4Material.hh" -#include "G4NistManager.hh" -#include "G4Box.hh" -#include "G4LogicalVolume.hh" -#include "G4PVPlacement.hh" - -#include "G4GeometryManager.hh" -#include "G4PhysicalVolumeStore.hh" -#include "G4LogicalVolumeStore.hh" -#include "G4SolidStore.hh" - -#include "G4UnitsTable.hh" -#include "G4SystemOfUnits.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -DetectorConstruction::DetectorConstruction() -:pBox(0), aMaterial(0) -{ - BoxSize = 1*mm; - DefineMaterials(); - SetMaterial("Germanium"); - detectorMessenger = new DetectorMessenger(this); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -DetectorConstruction::~DetectorConstruction() -{ delete detectorMessenger;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4VPhysicalVolume* DetectorConstruction::Construct() -{ - return ConstructVolumes(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::DefineMaterials() -{ - // - // 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* Air = - new G4Material("Air", density= 1.290*mg/cm3, ncomponents=2); - Air->AddElement(N, fractionmass=70.*perCent); - Air->AddElement(O, fractionmass=30.*perCent); - - G4Material* H2l = - new G4Material("H2liquid", density= 70.8*mg/cm3, ncomponents=1); - H2l->AddElement(H, fractionmass=1.); - - 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); - - G4Material* steam = - new G4Material("WaterSteam", density= 1.0*mg/cm3, ncomponents=1); - steam->AddMaterial(H2O, fractionmass=1.); - steam->GetIonisation()->SetMeanExcitationEnergy(71.6*eV); - - 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); - - 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); - new G4Material("liquidArgon", z=18., a= 39.95*g/mole, density= 1.390*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("Germanium" , z=32., a= 72.61*g/mole, density= 5.323*g/cm3); - new G4Material("Silver" , z=47., a=107.87*g/mole, density= 10.50*g/cm3); - new G4Material("Tungsten" , z=74., a=183.85*g/mole, density= 19.30*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); - - - G4cout << *(G4Material::GetMaterialTable()) << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() -{ - // Cleanup old geometry - G4GeometryManager::GetInstance()->OpenGeometry(); - G4PhysicalVolumeStore::GetInstance()->Clean(); - G4LogicalVolumeStore::GetInstance()->Clean(); - G4SolidStore::GetInstance()->Clean(); - - G4Box* - sBox = new G4Box("Container", //its name - BoxSize/2,BoxSize/2,BoxSize/2); //its dimensions - - G4LogicalVolume* - lBox = new G4LogicalVolume(sBox, //its shape - aMaterial, //its material - aMaterial->GetName()); //its name - - pBox = new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - lBox, //its logical volume - aMaterial->GetName(), //its name - 0, //its mother volume - false, //no boolean operation - 0); //copy number - - //always return the root volume - // - return pBox; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::PrintParameters() -{ - G4cout << "\n The Box is " << G4BestUnit(BoxSize,"Length") - << " of " << aMaterial->GetName() << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "G4RunManager.hh" - -void DetectorConstruction::SetMaterial(G4String materialChoice) -{ - // search the material by its name, or build it from nist data base - G4Material* pttoMaterial = - G4NistManager::Instance()->FindOrBuildMaterial(materialChoice); - - if (pttoMaterial) { - aMaterial = pttoMaterial; - if (pBox) G4RunManager::GetRunManager() - ->DefineWorldVolume(ConstructVolumes()); - } else { - G4cout << "\n--> warning from DetectorConstruction::SetMaterial : " - << materialChoice << " not found" << G4endl; - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/environments/g4py/examples/demos/TestEm0/module/PhysListEmStandard.cc b/environments/g4py/examples/demos/TestEm0/module/PhysListEmStandard.cc deleted file mode 100644 index ea5c6f9e8e..0000000000 --- a/environments/g4py/examples/demos/TestEm0/module/PhysListEmStandard.cc +++ /dev/null @@ -1,125 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "PhysListEmStandard.hh" -#include "G4ParticleDefinition.hh" -#include "G4ProcessManager.hh" - -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" - -#include "G4eMultipleScattering.hh" -#include "G4MuMultipleScattering.hh" -#include "G4hMultipleScattering.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" - -#ifdef theParticleIterator -#undef theParticleIterator -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -PhysListEmStandard::PhysListEmStandard(const G4String& name) - : G4VPhysicsConstructor(name) -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -PhysListEmStandard::~PhysListEmStandard() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void PhysListEmStandard::ConstructProcess() -{ - G4ParticleTable::G4PTblDicIterator* - theParticleIterator = theParticleTable-> GetIterator(); - - // 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 G4eMultipleScattering, -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 G4eMultipleScattering, -1, 1,1); - pmanager->AddProcess(new G4eIonisation, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung, -1,-3,3); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); - - } else if( particleName == "mu+" || - particleName == "mu-" ) { - //muon - pmanager->AddProcess(new G4MuMultipleScattering,-1, 1,1); - pmanager->AddProcess(new G4MuIonisation, -1, 2,2); - pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); - pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); - - } else if( particleName == "alpha" || particleName == "GenericIon" ) { - pmanager->AddProcess(new G4hMultipleScattering,-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 G4hMultipleScattering,-1,1,1); - pmanager->AddProcess(new G4hIonisation, -1,2,2); - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/environments/g4py/examples/demos/TestEm0/module/PhysicsList.cc b/environments/g4py/examples/demos/TestEm0/module/PhysicsList.cc deleted file mode 100644 index 184fd75114..0000000000 --- a/environments/g4py/examples/demos/TestEm0/module/PhysicsList.cc +++ /dev/null @@ -1,249 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "PhysicsList.hh" -#include "PhysicsListMessenger.hh" - -#include "PhysListEmStandard.hh" -#include "G4EmStandardPhysics.hh" - -#include "G4LossTableManager.hh" -#include "G4UnitsTable.hh" -#include "G4SystemOfUnits.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -PhysicsList::PhysicsList() -: G4VModularPhysicsList() -{ - G4LossTableManager::Instance(); - - currentDefaultCut = 1.0*mm; - cutForGamma = currentDefaultCut; - cutForElectron = currentDefaultCut; - cutForPositron = currentDefaultCut; - - pMessenger = new PhysicsListMessenger(this); - - SetVerboseLevel(1); - - // EM physics - emName = G4String("standard"); - emPhysicsList = new G4EmStandardPhysics(1); - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -PhysicsList::~PhysicsList() -{ - delete pMessenger; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Bosons -#include "G4ChargedGeantino.hh" -#include "G4Geantino.hh" -#include "G4Gamma.hh" -#include "G4OpticalPhoton.hh" - -// leptons -#include "G4MuonPlus.hh" -#include "G4MuonMinus.hh" -#include "G4NeutrinoMu.hh" -#include "G4AntiNeutrinoMu.hh" - -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "G4NeutrinoE.hh" -#include "G4AntiNeutrinoE.hh" - -// Mesons -#include "G4PionPlus.hh" -#include "G4PionMinus.hh" -#include "G4PionZero.hh" -#include "G4Eta.hh" -#include "G4EtaPrime.hh" - -#include "G4KaonPlus.hh" -#include "G4KaonMinus.hh" -#include "G4KaonZero.hh" -#include "G4AntiKaonZero.hh" -#include "G4KaonZeroLong.hh" -#include "G4KaonZeroShort.hh" - -// Baryons -#include "G4Proton.hh" -#include "G4AntiProton.hh" -#include "G4Neutron.hh" -#include "G4AntiNeutron.hh" - -// Nuclei -#include "G4Deuteron.hh" -#include "G4Triton.hh" -#include "G4Alpha.hh" -#include "G4GenericIon.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void PhysicsList::ConstructParticle() -{ -// pseudo-particles - G4Geantino::GeantinoDefinition(); - G4ChargedGeantino::ChargedGeantinoDefinition(); - -// gamma - G4Gamma::GammaDefinition(); - -// optical photon - G4OpticalPhoton::OpticalPhotonDefinition(); - -// leptons - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - G4MuonPlus::MuonPlusDefinition(); - G4MuonMinus::MuonMinusDefinition(); - - G4NeutrinoE::NeutrinoEDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); - G4NeutrinoMu::NeutrinoMuDefinition(); - G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); - -// mesons - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); - G4Eta::EtaDefinition(); - G4EtaPrime::EtaPrimeDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); - G4KaonZero::KaonZeroDefinition(); - G4AntiKaonZero::AntiKaonZeroDefinition(); - G4KaonZeroLong::KaonZeroLongDefinition(); - G4KaonZeroShort::KaonZeroShortDefinition(); - -// barions - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); - G4Neutron::NeutronDefinition(); - G4AntiNeutron::AntiNeutronDefinition(); - -// ions - G4Deuteron::DeuteronDefinition(); - G4Triton::TritonDefinition(); - G4Alpha::AlphaDefinition(); - G4GenericIon::GenericIonDefinition(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void PhysicsList::ConstructProcess() -{ - // Transportation - // - AddTransportation(); - - // Electromagnetic physics list - // - emPhysicsList->ConstructProcess(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void PhysicsList::AddPhysicsList(const G4String& name) -{ - if (verboseLevel>0) { - G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; - } - - if (name == emName) return; - - if (name == "local") { - - emName = name; - delete emPhysicsList; - emPhysicsList = new PhysListEmStandard(name); - - } else if (name == "standard") { - - emName = name; - delete emPhysicsList; - emPhysicsList = new G4EmStandardPhysics(verboseLevel); - - } else { - - G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" - << " is not defined" - << G4endl; - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" - -void PhysicsList::SetCuts() -{ - // 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+"); - 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/environments/g4py/examples/demos/TestEm0/module/PhysicsListMessenger.cc b/environments/g4py/examples/demos/TestEm0/module/PhysicsListMessenger.cc deleted file mode 100644 index ddcc00d274..0000000000 --- a/environments/g4py/examples/demos/TestEm0/module/PhysicsListMessenger.cc +++ /dev/null @@ -1,117 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "PhysicsListMessenger.hh" - -#include "PhysicsList.hh" -#include "G4UIdirectory.hh" -#include "G4UIcmdWithADoubleAndUnit.hh" -#include "G4UIcmdWithAString.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys) -:pPhysicsList(pPhys) -{ - physDir = new G4UIdirectory("/testem/phys/"); - physDir->SetGuidance("physics list commands"); - - gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setGCut",this); - gammaCutCmd->SetGuidance("Set gamma cut."); - gammaCutCmd->SetParameterName("Gcut",false); - gammaCutCmd->SetUnitCategory("Length"); - gammaCutCmd->SetRange("Gcut>0.0"); - gammaCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - electCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setECut",this); - electCutCmd->SetGuidance("Set electron cut."); - electCutCmd->SetParameterName("Ecut",false); - electCutCmd->SetUnitCategory("Length"); - electCutCmd->SetRange("Ecut>0.0"); - electCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - protoCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setPCut",this); - protoCutCmd->SetGuidance("Set positron cut."); - protoCutCmd->SetParameterName("Pcut",false); - protoCutCmd->SetUnitCategory("Length"); - protoCutCmd->SetRange("Pcut>0.0"); - protoCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - allCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setCuts",this); - allCutCmd->SetGuidance("Set cut for all."); - allCutCmd->SetParameterName("cut",false); - allCutCmd->SetUnitCategory("Length"); - allCutCmd->SetRange("cut>0.0"); - allCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - pListCmd = new G4UIcmdWithAString("/testem/phys/addPhysics",this); - pListCmd->SetGuidance("Add modula physics list."); - pListCmd->SetParameterName("PList",false); - pListCmd->AvailableForStates(G4State_PreInit); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -PhysicsListMessenger::~PhysicsListMessenger() -{ - delete gammaCutCmd; - delete electCutCmd; - delete protoCutCmd; - delete allCutCmd; - delete pListCmd; - delete physDir; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void PhysicsListMessenger::SetNewValue(G4UIcommand* command, - G4String newValue) -{ - if( command == gammaCutCmd ) - { pPhysicsList->SetCutForGamma(gammaCutCmd->GetNewDoubleValue(newValue));} - - if( command == electCutCmd ) - { pPhysicsList->SetCutForElectron(electCutCmd->GetNewDoubleValue(newValue));} - - if( command == protoCutCmd ) - { pPhysicsList->SetCutForPositron(protoCutCmd->GetNewDoubleValue(newValue));} - - if( command == allCutCmd ) - { - G4double cut = allCutCmd->GetNewDoubleValue(newValue); - pPhysicsList->SetCutForGamma(cut); - pPhysicsList->SetCutForElectron(cut); - pPhysicsList->SetCutForPositron(cut); - } - - if( command == pListCmd ) - { pPhysicsList->AddPhysicsList(newValue);} -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/environments/g4py/examples/demos/TestEm0/module/RunAction.cc b/environments/g4py/examples/demos/TestEm0/module/RunAction.cc deleted file mode 100644 index de2bb14883..0000000000 --- a/environments/g4py/examples/demos/TestEm0/module/RunAction.cc +++ /dev/null @@ -1,349 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "RunAction.hh" -#include "DetectorConstruction.hh" -#include "PrimaryGeneratorAction.hh" - -#include "G4Run.hh" -#include "G4ProcessManager.hh" -#include "G4UnitsTable.hh" -#include "G4EmCalculator.hh" -#include "G4Electron.hh" -#include "G4SystemOfUnits.hh" - -#include - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -RunAction::RunAction(DetectorConstruction* det, PrimaryGeneratorAction* kin) -:detector(det), primary(kin) -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -RunAction::~RunAction() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void RunAction::BeginOfRunAction(const G4Run*) -{ - //set precision for printing - G4int prec = G4cout.precision(6); - - // get particle - G4ParticleDefinition* particle = primary->GetParticleGun() - ->GetParticleDefinition(); - G4String partName = particle->GetParticleName(); - G4double charge = particle->GetPDGCharge(); - G4double energy = primary->GetParticleGun()->GetParticleEnergy(); - - // get material - G4Material* material = detector->GetMaterial(); - G4String matName = material->GetName(); - G4double density = material->GetDensity(); - G4double radl = material->GetRadlen(); - - G4cout << "\n " << partName << " (" - << G4BestUnit(energy,"Energy") << ") in " - << material->GetName() << " (density: " - << G4BestUnit(density,"Volumic Mass") << "; radiation length: " - << G4BestUnit(radl, "Length") << ")" << G4endl; - - // get cuts - GetCuts(); - if (charge != 0.) { - G4cout << "\n Range cuts : \t gamma " - << std::setw(8) << G4BestUnit(rangeCut[0],"Length") - << "\t e- " << std::setw(8) << G4BestUnit(rangeCut[1],"Length"); - G4cout << "\n Energy cuts : \t gamma " - << std::setw(8) << G4BestUnit(energyCut[0],"Energy") - << "\t e- " << std::setw(8) << G4BestUnit(energyCut[1],"Energy") - << G4endl; - } - - // get processList and extract EM processes (but not MultipleScattering) - G4ProcessVector* plist = particle->GetProcessManager()->GetProcessList(); - G4String procName; - G4double cut; - std::vector emName; - std::vector enerCut; - size_t length = plist->size(); - for (size_t j=0; jGetProcessName(); - cut = energyCut[1]; - if ((procName == "eBrem")||(procName == "muBrems")) cut = energyCut[0]; - if (((*plist)[j]->GetProcessType() == fElectromagnetic) && - (procName != "msc")) { - emName.push_back(procName); - enerCut.push_back(cut); - } - } - - // print list of processes - G4cout << "\n processes : "; - for (size_t j=0; jGetNumberOfElements() == 1) { - G4double Z = material->GetZ(); - G4double A = material->GetA(); - - std::vector sigma0; - G4double sig, sigtot = 0.; - - for (size_t j=0; j sigma1; - std::vector sigma2; - G4double Sig, Sigtot = 0.; - - for (size_t j=0; j 0.) lambda = 1/sigma1[j]; - G4cout << "\t" << std::setw(13) << G4BestUnit( lambda, "Length"); - } - - //mean free path (g/cm2) - G4cout << "\n (g/cm2) : "; - for (size_t j=0; j 0.) lambda = 1/sigma2[j]; - G4cout << "\t" << std::setw(13) << G4BestUnit( lambda, "Mass/Surface"); - } - G4cout << G4endl; - - if (charge == 0.) { - G4cout.precision(prec); - G4cout << "\n-------------------------------------------------------------\n" - << G4endl; - return; - } - - //get stopping power - std::vector dedx1; - std::vector dedx2; - G4double dedx, dedxtot = 0.; - - for (size_t j=0; jGetTableSize(); - const G4MaterialCutsCouple* couple = 0; - G4int index = 0; - for (size_t i=0; iGetMaterialCutsCouple(i); - if (couple->GetMaterial() == detector->GetMaterial()) {index = i; break;} - } - - rangeCut[0] = - (*(theCoupleTable->GetRangeCutsVector(idxG4GammaCut)))[index]; - rangeCut[1] = - (*(theCoupleTable->GetRangeCutsVector(idxG4ElectronCut)))[index]; - rangeCut[2] = - (*(theCoupleTable->GetRangeCutsVector(idxG4PositronCut)))[index]; - - energyCut[0] = - (*(theCoupleTable->GetEnergyCutsVector(idxG4GammaCut)))[index]; - energyCut[1] = - (*(theCoupleTable->GetEnergyCutsVector(idxG4ElectronCut)))[index]; - energyCut[2] = - (*(theCoupleTable->GetEnergyCutsVector(idxG4PositronCut)))[index]; - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void RunAction::CriticalEnergy() -{ - // compute e- critical energy (Rossi definition) and Moliere radius. - // Review of Particle Physics - Eur. Phys. J. C3 (1998) page 147 - // - G4EmCalculator emCal; - - const G4Material* material = detector->GetMaterial(); - const G4double radl = material->GetRadlen(); - G4double ekin = 5*MeV; - G4double deioni; - G4double err = 1., errmax = 0.001; - G4int iter = 0 , itermax = 10; - while (err > errmax && iter < itermax) { - iter++; - deioni = radl* - emCal.ComputeDEDX(ekin,G4Electron::Electron(),"eIoni",material); - err = std::abs(deioni - ekin)/ekin; - ekin = deioni; - } - G4cout << "\n \n critical energy (Rossi) : " - << "\t" << std::setw(8) << G4BestUnit(ekin,"Energy"); - - //Pdg formula (only for single material) - G4double pdga[2] = { 610*MeV, 710*MeV }; - G4double pdgb[2] = { 1.24, 0.92 }; - G4double EcPdg = 0.; - - if (material->GetNumberOfElements() == 1) { - G4int istat = 0; - if (material->GetState() == kStateGas) istat = 1; - G4double Zeff = material->GetZ() + pdgb[istat]; - EcPdg = pdga[istat]/Zeff; - G4cout << "\t\t\t (from Pdg formula : " - << std::setw(8) << G4BestUnit(EcPdg,"Energy") << ")"; - } - - const G4double Es = 21.2052*MeV; - G4double rMolier1 = Es/ekin, rMolier2 = rMolier1*radl; - G4cout << "\n Moliere radius : " - << "\t" << std::setw(8) << rMolier1 << " X0 " - << "= " << std::setw(8) << G4BestUnit(rMolier2,"Length"); - - if (material->GetNumberOfElements() == 1) { - G4double rMPdg = radl*Es/EcPdg; - G4cout << "\t (from Pdg formula : " - << std::setw(8) << G4BestUnit(rMPdg,"Length") << ")"; - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/environments/g4py/examples/demos/TestEm0/module/pytestem0.cc b/environments/g4py/examples/demos/TestEm0/module/pytestem0.cc deleted file mode 100644 index c38298aa3d..0000000000 --- a/environments/g4py/examples/demos/TestEm0/module/pytestem0.cc +++ /dev/null @@ -1,113 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyTestEm0.cc -// -// python wrapper for user application -// 2007 Q -// ==================================================================== -#include "DetectorConstruction.hh" -#include "RunAction.hh" -#include "PhysicsList.hh" -#include "PrimaryGeneratorAction.hh" -#include "G4Material.hh" -#include "G4MaterialTable.hh" -#include "G4ParticleTable.hh" - -#include -#include - -#include -#include - -using namespace boost::python; -// ======================================================================================== -// Wrap Gean4 methods which are not accessible from python because they return a pointer. -// ======================================================================================== -boost::python::list getParticleTable() -{ - // Create a list on heap which will be return to python - boost::python::list *particleList = new boost::python::list(); - - // Get particle list fron G4ParticleTable - G4ParticleTable *g4ParticleList = G4ParticleTable::GetParticleTable(); - - // Fill python list from g4ParticleList - for ( int index = 0 ; index <= g4ParticleList->size() ; index++ ) { - particleList->append ( (std::string) g4ParticleList->GetParticleName(index) ); - } - - return *particleList; -} -// ==================================================================== -boost::python::list getMaterialTable() - { - // Create a list on heap which will be return to python - boost::python::list *materialTableList = new boost::python::list(); - - // Get material list fron G4Material - G4MaterialTable materialList = *G4Material::GetMaterialTable(); - - std::vector::iterator itVectorData; - for(itVectorData = materialList.begin(); itVectorData != materialList.end(); itVectorData++) { - materialTableList->append ( (std::string)(*(itVectorData))->GetName()) ; - - } - return *materialTableList; -} - - -// ==================================================================== -// Expose to Python -// ==================================================================== - -BOOST_PYTHON_MODULE(testem0) { - - def ("getMaterialTable", getMaterialTable); - - def ("getParticleTable", getParticleTable); - - class_ > - ("DetectorConstruction", "testEm0 detector") - .def("SetMaterial",&DetectorConstruction::SetMaterial) - ; - - class_ > - ("PrimaryGeneratorAction", init()) - ; - - class_ > - ("RunAction", init()) - ; - - class_ > - ("PhysicsList", "testEm0 physics list") - ; -} diff --git a/environments/g4py/examples/demos/TestEm0/python3/testem0.py b/environments/g4py/examples/demos/TestEm0/python3/testem0.py deleted file mode 100755 index 81fba79927..0000000000 --- a/environments/g4py/examples/demos/TestEm0/python3/testem0.py +++ /dev/null @@ -1,191 +0,0 @@ -#!/usr/bin/python3 -# ================================================================== -# python script for TestEm0 python version -# -# ================================================================== -import Geant4 as g4 -import TestEm0 - -# ================================================================== -# user actions in python -# ================================================================== - - -# ================================================================== -# main -# ================================================================== - -myDC= TestEm0.DetectorConstruction() -g4.gRunManager.SetUserInitialization(myDC) - -myPL= TestEm0.PhysicsList() -g4.gRunManager.SetUserInitialization(myPL) - -# set user actions... -myPGA= TestEm0.PrimaryGeneratorAction(myDC) -g4.gRunManager.SetUserAction(myPGA) - -myRA= TestEm0.RunAction(myDC,myPGA) - -# set user action classes -g4.gRunManager.SetUserAction(myRA) - - - -g4.gRunManager.Initialize() - -pg = g4.G4ParticleGun() - -materialList = TestEm0.getMaterialTable(); - -particleList = TestEm0.getParticleTable() - -enrgyList = ["eV","keV","MeV","GeV","TeV","PeV"] - -cutsList = ["um", "mm" , "cm", "m", "km"] - - - - -# GUI - -from tkinter import * -class App(Frame): - - - def init(self): - -# title and header - title = Label(self, text="TestEm0 empowered by Geant4Py\n\n\n") - title.grid(row=0, column=1, columnspan = 4) - -# particle list box - particle_title = Label(self, text="Particle") - particle_title.grid(row=2, column=0) - - particleFrame = Frame(self) - scrollbar2 = Scrollbar(particleFrame) - scrollbar2.pack(side = RIGHT, fill = Y) - self.particleListBox = Listbox(particleFrame, yscrollcommand=scrollbar2.set, exportselection=FALSE,height = 6) - self.particleListBox.pack(side = LEFT) - for item in particleList: - self.particleListBox.insert(END, item) - scrollbar2.config(command=self.particleListBox.yview) - particleFrame.grid(row=3, column=0) - self.particleListBox.select_set(0) - -# separator frame - fblank = Frame(self,width = 40) - fblank.grid(row=3,column=1) - -# material list box - detmaterial_title = Label(self, text="Material") - detmaterial_title.grid(row=2, column=2) - - materialFrame = Frame(self) - scrollbar = Scrollbar(materialFrame) - scrollbar.pack(side = RIGHT, fill = Y) - self.materialListBox = Listbox(materialFrame, yscrollcommand=scrollbar.set, exportselection=FALSE, height = 6) - self.materialListBox.pack(side = LEFT, fill = Y) - for item in materialList: - self.materialListBox.insert(END, item) - scrollbar.config(command=self.materialListBox.yview) - materialFrame.grid(row=3, column=2) - self.materialListBox.select_set(0) - -# separator frame - fblank = Frame(self,width = 40) - fblank.grid(row=3,column=3) - -# energy - fEnergy = Frame(self) - energyLabel = Label(self, text="Energy") - energyLabel.grid(row = 2, column = 4) - - scrollbarEnergy = Scrollbar(fEnergy) - scrollbarEnergy.pack(side = RIGHT, fill = Y) - self.energyEntry = Entry(fEnergy, width= 8 ); - self.energyEntry.pack(side = TOP) - self.energyEntry.insert(0, "1.0") - - self.energyListBox = Listbox(fEnergy, yscrollcommand=scrollbarEnergy.set,exportselection=FALSE,width=8,height = 5) - self.energyListBox.pack(side = BOTTOM ) - for item in enrgyList: - self.energyListBox.insert(END, item) - scrollbarEnergy.config(command=self.energyListBox.yview) - fEnergy.grid(row = 3, column = 4 ) - self.energyListBox.select_set(0) - -# separator frame - fblank = Frame(self,width = 40) - fblank.grid(row=3,column=5) - -# cuts - fCuts = Frame(self) - cutsLabel = Label(self, text="Cuts", width= 8) - cutsLabel.grid(row = 2, column = 6) - - scrollbarCuts = Scrollbar(fCuts) - scrollbarCuts.pack(side = RIGHT, fill = Y) - self.cutsEntry = Entry(fCuts, width= 8); - self.cutsEntry.pack(side = TOP) - self.cutsEntry.insert(0, "1.0") - - self.cutsListBox = Listbox(fCuts, width= 8 ,yscrollcommand=scrollbarCuts.set,exportselection=FALSE,height = 5) - self.cutsListBox.pack(side = BOTTOM ) - for item in cutsList: - self.cutsListBox.insert(END, item) - scrollbarCuts.config(command=self.cutsListBox.yview) - fCuts.grid(row = 3, column = 6 ) - self.cutsListBox.select_set(0) - -# separator frame - fblank = Frame(self,height = 40) - fblank.grid(row=4,column=0) - -# start a run button - startBut = Button(self, bg="green", text="Start a run", command=self.cmd_beamOn) - startBut.grid(row=5, column=2, sticky=W) - -# exit button - exitBut = Button(self, bg="grey", text="Exit", command=self.quit) - exitBut.grid(row=5, column=6, sticky=E) - - def __init__(self, master=None): - Frame.__init__(self, master) - self.init() - self.grid() - - def cmd_beamOn(self): - - # get and set particle - if self.particleListBox.curselection(): - index =int(self.particleListBox.curselection()[0]) - g4.gApplyUICommand("/gun/particle " + particleList[index]) - - # get and set detector Material - if self.materialListBox.curselection(): - index =int(self.materialListBox.curselection()[0]) - g4.gApplyUICommand("/testem/det/setMat " + materialList[index]) - - # get and set energy - energy = self.energyEntry.get() - if self.energyListBox.curselection(): - index = int(self.energyListBox.curselection()[0]) - unity = enrgyList[index] - g4.gApplyUICommand("/gun/energy " + energy + " " + unity) - - # get and set cuts - cuts = self.cutsEntry.get() - if self.cutsListBox.curselection(): - index = int(self.cutsListBox.curselection()[0]) - unity = cutsList[index] - g4.gApplyUICommand("/testem/phys/setCuts " + cuts + " " + unity) - - # run beamOn - g4.gRunManager.BeamOn(1) - - -app = App() -app.mainloop() - diff --git a/environments/g4py/examples/demos/water_phantom/demo.py b/environments/g4py/examples/demos/water_phantom/demo.py deleted file mode 100755 index 1fceca5ca9..0000000000 --- a/environments/g4py/examples/demos/water_phantom/demo.py +++ /dev/null @@ -1,216 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# python script for Geant4Py test -# -# gtest01 -# - check basic control flow -# ================================================================== -from Geant4 import * -import demo_wp -import g4py.MedicalBeam -import ROOT - -# ================================================================== -# ROOT PART # -# ================================================================== - -# ------------------------------------------------------------------ -def init_root(): -# ------------------------------------------------------------------ - ROOT.gROOT.Reset() - - # plot style - ROOT.gStyle.SetTextFont(42) - ROOT.gStyle.SetTitleFont(42, "X") - ROOT.gStyle.SetLabelFont(42, "X") - ROOT.gStyle.SetTitleFont(42, "Y") - ROOT.gStyle.SetLabelFont(42, "Y") - - global gCanvas - gCanvas= ROOT.TCanvas("water_phantom_plots", - "Water Phantom Demo Plots", - 620, 30, 800, 800) - -# ------------------------------------------------------------------ -def hini(): -# ------------------------------------------------------------------ - global gPad1 - gPad1= ROOT.TPad("2D", "2D", 0.02, 0.5, 0.98, 1.) - gPad1.Draw() - gPad1.cd() - - ROOT.gStyle.SetPalette(1); - - global hist_dose2d - hist_dose2d= ROOT.TH2D("2D Dose", "Dose Distribution", - 200, 0., 400., - 81, -81., 81.) - hist_dose2d.SetXTitle("Z (mm)") - hist_dose2d.SetYTitle("X (mm)") - hist_dose2d.SetStats(0) - hist_dose2d.Draw("colz") - - gCanvas.cd() - global gPad2 - gPad2= ROOT.TPad("Z", "Z", 0.02, 0., 0.98, 0.5) - gPad2.Draw() - gPad2.cd() - - global hist_dosez - hist_dosez= ROOT.TH1D("Z Dose", "Depth Dose", 200, 0., 400.) - hist_dosez.SetXTitle("(mm)") - hist_dosez.SetYTitle("Accumulated Dose (MeV)") - hist_dosez.Draw() - -# ------------------------------------------------------------------ -def hshow(): -# ------------------------------------------------------------------ - gPad1.cd() - hist_dose2d.Draw("colz") - gPad2.cd() - hist_dosez.Draw() - - -# ================================================================== -# Geant4 PART # -# ================================================================== - -# ================================================================== -# user actions in python -# ================================================================== -class MyPrimaryGeneratorAction(G4VUserPrimaryGeneratorAction): - "My Primary Generator Action" - - def __init__(self): - G4VUserPrimaryGeneratorAction.__init__(self) - self.particleGun= G4ParticleGun(1) - - def GeneratePrimaries(self, event): - self.particleGun.GeneratePrimaryVertex(event) - -# ------------------------------------------------------------------ -class MyRunAction(G4UserRunAction): - "My Run Action" - - def EndOfRunAction(self, run): - print "*** End of Run" - print "- Run sammary : (id= %d, #events= %d)" \ - % (run.GetRunID(), run.GetNumberOfEventToBeProcessed()) - -# ------------------------------------------------------------------ -class MyEventAction(G4UserEventAction): - "My Event Action" - - def EndOfEventAction(self, event): - gPad1.Modified() - gPad1.Update() - gPad2.Modified() - gPad2.Update() - ROOT.gSystem.ProcessEvents() - -# ------------------------------------------------------------------ -class MySteppingAction(G4UserSteppingAction): - "My Stepping Action" - - def UserSteppingAction(self, step): - pass - -# ------------------------------------------------------------------ -class ScoreSD(G4VSensitiveDetector): - "SD for score voxels" - - def __init__(self): - G4VSensitiveDetector.__init__(self, "ScoreVoxel") - - def ProcessHits(self, step, rohist): - preStepPoint= step.GetPreStepPoint() - if(preStepPoint.GetCharge() == 0): - return - - track= step.GetTrack() - touchable= track.GetTouchable() - voxel_id= touchable.GetReplicaNumber() - dedx= step.GetTotalEnergyDeposit() - xz= posXZ(voxel_id) - hist_dose2d.Fill(xz[1], xz[0], dedx/MeV) - if( abs(xz[0]) <= 100 ): - hist_dosez.Fill(xz[1], dedx/MeV) - -# ------------------------------------------------------------------ -def posXZ(copyN): - dd= 2.*mm - nx= 81 - - iz= copyN/nx - ix= copyN-iz*nx-nx/2 - - x0= ix*dd - z0= (iz+0.5)*dd - return (x0,z0) - - -# ================================================================== -# main -# ================================================================== -# init ROOT... -init_root() -hini() - -# configure application -#app= demo_wp.MyApplication() -#app.Configure() - -myMaterials= demo_wp.MyMaterials() -myMaterials.Construct() - -myDC= demo_wp.MyDetectorConstruction() -gRunManager.SetUserInitialization(myDC) - -myPL= FTFP_BERT() -gRunManager.SetUserInitialization(myPL) - -# set user actions... -myPGA= MyPrimaryGeneratorAction() -gRunManager.SetUserAction(myPGA) - -myRA= MyRunAction() -gRunManager.SetUserAction(myRA) - -myEA= MyEventAction() -gRunManager.SetUserAction(myEA) - -#mySA= MySteppingAction() -#gRunManager.SetUserAction(mySA) - -# set particle gun -#pg= myPGA.particleGun -#pg.SetParticleByName("proton") -#pg.SetParticleEnergy(230.*MeV) -#pg.SetParticleMomentumDirection(G4ThreeVector(0., 0., 1.)) -#pg.SetParticlePosition(G4ThreeVector(0.,0.,-50.)*cm) - -# medical beam -beam= g4py.MedicalBeam.Construct() -beam.particle= "proton" -beam.kineticE= 230.*MeV -#beam.particle= "gamma" -#beam.kineticE= 1.77*MeV -beam.sourcePosition= G4ThreeVector(0.,0.,-100.*cm) -beam.SSD= 100.*cm -beam.fieldXY= [5.*cm, 5.*cm] - -# initialize -gRunManager.Initialize() - -# set SD (A SD should be set after geometry construction) -scoreSD= ScoreSD() -myDC.SetSDtoScoreVoxel(scoreSD) - -# visualization -gApplyUICommand("/control/execute vis.mac") - -# beamOn -gRunManager.BeamOn(100) - -#ROOT.gSystem.Run() - diff --git a/environments/g4py/examples/demos/water_phantom/module/CMakeLists.txt b/environments/g4py/examples/demos/water_phantom/module/CMakeLists.txt deleted file mode 100644 index e82d4bdc87..0000000000 --- a/environments/g4py/examples/demos/water_phantom/module/CMakeLists.txt +++ /dev/null @@ -1,29 +0,0 @@ -# - build test library - -include_directories( - ${PYTHON_INCLUDE_PATH} - ${Boost_INCLUDE_DIRS} - ${GEANT4_INCLUDE_DIR} -) - -link_directories (${GEANT4_LIBRARY_DIR} ${Boost_LIBRARY_DIRS}) - -# library -set(_TARGET demo_wp) -add_library( - ${_TARGET} SHARED - MyDetectorConstruction.cc - MyMaterials.cc - pydemo_wp.cc -) - -set_target_properties(${_TARGET} PROPERTIES PREFIX "") -set_target_properties(${_TARGET} PROPERTIES OUTPUT_NAME "demo_wp") -set_target_properties(${_TARGET} PROPERTIES SUFFIX ".so") - -target_link_libraries (${_TARGET} - ${GEANT4_LIBRARIES_WITH_VIS} boost_python - ${PYTHON_LIBRARIES}) - -# install -install(TARGETS ${_TARGET} LIBRARY DESTINATION ${TEST_MODULES_INSTALL_DIR}) diff --git a/environments/g4py/examples/demos/water_phantom/module/MyDetectorConstruction.cc b/environments/g4py/examples/demos/water_phantom/module/MyDetectorConstruction.cc deleted file mode 100644 index 748ab150a7..0000000000 --- a/environments/g4py/examples/demos/water_phantom/module/MyDetectorConstruction.cc +++ /dev/null @@ -1,136 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// MyDetectorConstruction.cc -// -// 2005 Q -// ==================================================================== -#include "MyDetectorConstruction.hh" - -#include "G4Material.hh" -#include "G4Box.hh" -#include "G4LogicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4VisAttributes.hh" -#include "G4SystemOfUnits.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== - - -//////////////////////////////////////////////// -MyDetectorConstruction::MyDetectorConstruction() - : scoreVoxel(0) -//////////////////////////////////////////////// -{ -} - -///////////////////////////////////////////////// -MyDetectorConstruction::~MyDetectorConstruction() -///////////////////////////////////////////////// -{ -} - -////////////////////////////////////////////////////// -G4VPhysicalVolume* MyDetectorConstruction::Construct() -////////////////////////////////////////////////////// -{ - G4Material* mate; - G4VisAttributes* va; - - // ============================================================== - // world volume - // ============================================================== - G4Box* areaSolid= new G4Box("area", 25.*cm, 25.*cm, 1.1*m); - G4Material* vacuum= G4Material::GetMaterial("Vacuum"); - G4LogicalVolume* areaLV= new G4LogicalVolume(areaSolid, vacuum, "area"); - G4PVPlacement* area= new G4PVPlacement(0, G4ThreeVector(), "area", - areaLV, 0, false, 0); - // vis. attributes - va= new G4VisAttributes(G4Color(1.,1.,1.)); - va-> SetVisibility(false); - areaLV-> SetVisAttributes(va); - - // ============================================================== - // phantom - // ============================================================== - // water phantom - const double dxyphantom= 40.*cm; - const double dzphantom= 50.*cm; - - G4Box* sphantom= new G4Box("phantom", - dxyphantom/2., dxyphantom/2., dzphantom/2.); - G4Material* water= G4Material::GetMaterial("Water"); - G4LogicalVolume* lphantom= new G4LogicalVolume(sphantom, - water, "phantom"); - G4PVPlacement* phantom= new G4PVPlacement(0, - G4ThreeVector(0.,0., dzphantom/2.), - lphantom, "phantom", - areaLV, false, 0); - - va= new G4VisAttributes(G4Color(0.,0.1,0.8)); - lphantom-> SetVisAttributes(va); - - // score voxels - const G4double dvoxel= 2.*mm; - const G4double dvoxel_y= 20.*mm; - - G4Box* svoxel= new G4Box("voxel", dvoxel/2., dvoxel_y/2., dvoxel/2.); - scoreVoxel= new G4LogicalVolume(svoxel, water, "voxel"); - va= new G4VisAttributes(G4Color(0.,0.8,0.8)); - va-> SetVisibility(false); - scoreVoxel-> SetVisAttributes(va); - - G4int ix, iz; - G4int index=0; - for (iz=0; iz<200; iz++) { - for (ix=-40; ix<=40; ix++) { - G4double x0= ix*dvoxel; - G4double z0= -dzphantom/2.+(iz+0.5)*dvoxel; - G4PVPlacement* pvoxel= new - G4PVPlacement(0, G4ThreeVector(x0, 0., z0), - scoreVoxel, "voxel", lphantom, - false, index); - index++; - } - } - - return area; -} - - -///////////////////////////////////////////////////////////////////////// -void MyDetectorConstruction::SetSDtoScoreVoxel(G4VSensitiveDetector* asd) -///////////////////////////////////////////////////////////////////////// -{ - if(scoreVoxel) { - scoreVoxel-> SetSensitiveDetector(asd); - } -} - diff --git a/environments/g4py/examples/demos/water_phantom/module/MyDetectorConstruction.hh b/environments/g4py/examples/demos/water_phantom/module/MyDetectorConstruction.hh deleted file mode 100644 index d2039aa759..0000000000 --- a/environments/g4py/examples/demos/water_phantom/module/MyDetectorConstruction.hh +++ /dev/null @@ -1,58 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// MyDetectorConstruction.hh -// -// 2005 Q -// ==================================================================== -#ifndef MY_DETECTOR_CONSTRUCTION_H -#define MY_DETECTOR_CONSTRUCTION_H - -#include "G4VUserDetectorConstruction.hh" - -// ==================================================================== -// -// class definition -// -// ==================================================================== -class G4LogicalVolume; -class G4VSensitiveDetector; - -class MyDetectorConstruction : public G4VUserDetectorConstruction { -private: - G4LogicalVolume* scoreVoxel; - -public: - MyDetectorConstruction(); - ~MyDetectorConstruction(); - - virtual G4VPhysicalVolume* Construct(); - - void SetSDtoScoreVoxel(G4VSensitiveDetector* asd); - -}; - -#endif diff --git a/environments/g4py/examples/demos/water_phantom/module/MyMaterials.cc b/environments/g4py/examples/demos/water_phantom/module/MyMaterials.cc deleted file mode 100644 index fe159e7c9c..0000000000 --- a/environments/g4py/examples/demos/water_phantom/module/MyMaterials.cc +++ /dev/null @@ -1,121 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// MyMaterials.cc -// -// 2005 Q -// ==================================================================== -#include "MyMaterials.hh" -#include "G4Material.hh" -#include "G4SystemOfUnits.hh" -#include "G4PhysicalConstants.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== - -////////////////////////// -MyMaterials::MyMaterials() -////////////////////////// -{ -} - - -/////////////////////////// -MyMaterials::~MyMaterials() -/////////////////////////// -{ -} - - -///////////////////////////// -void MyMaterials::Construct() -///////////////////////////// -{ - G4double A, Z; - - // ------------------------------------------------------------------------ - // Elements - // ------------------------------------------------------------------------ - G4Element* elH = new G4Element("Hydrogen","H", Z=1., A=1.00794*g/mole); - G4Element* elC = new G4Element("Carbon", "C", Z=6., A= 12.011 *g/mole); - G4Element* elN = new G4Element("Nitrogen","N", Z=7., A= 14.00674*g/mole); - G4Element* elO = new G4Element("Oxygen", "O", Z=8., A= 15.9994*g/mole); - - // ------------------------------------------------------------------------ - // Materials - // ------------------------------------------------------------------------ - G4double density, massfraction; - G4int natoms, nel; - - // temperature of experimental hall is controlled at 20 degree. - const G4double expTemp= STP_Temperature+20.*kelvin; - - // vacuum - density= universe_mean_density; - G4Material* Vacuum= new G4Material("Vacuum", density, nel=2); - Vacuum-> AddElement(elN, .7); - Vacuum-> AddElement(elO, .3); - - // air - density= 1.2929e-03 *g/cm3; // at 20 degree - G4Material* Air= new G4Material("Air", density, nel=2, - kStateGas, expTemp); - G4double ttt= 75.47+23.20; - Air-> AddElement(elN, massfraction= 75.47/ttt); - Air-> AddElement(elO, massfraction= 23.20/ttt); - - // water - density= 1.000*g/cm3; - G4Material* H2O= new G4Material("Water", density, nel=2); - H2O-> AddElement(elH, natoms=2); - H2O-> AddElement(elO, natoms=1); - - // alminium - A= 26.98 *g/mole; - density= 2.70 *g/cm3; - G4Material* Al= new G4Material("Al", Z=13., A, density); - - // iron - A= 55.847 *g/mole; - density= 7.87 *g/cm3; - G4Material* Fe= new G4Material("Iron", Z=26., A, density); - - // lead - A= 207.2 *g/mole; - density= 11.35 *g/cm3; - G4Material* Pb= new G4Material("Lead", Z=82., A, density); - - // scintillator (Polystyene(C6H5CH=CH2)) - density= 1.032 *g/cm3; - G4Material* Scinti= new G4Material("Scinti", density, nel=2); - Scinti-> AddElement(elC, natoms=8); - Scinti-> AddElement(elH, natoms=8); - -} - diff --git a/environments/g4py/examples/demos/water_phantom/module/pydemo_wp.cc b/environments/g4py/examples/demos/water_phantom/module/pydemo_wp.cc deleted file mode 100644 index ac557d4065..0000000000 --- a/environments/g4py/examples/demos/water_phantom/module/pydemo_wp.cc +++ /dev/null @@ -1,54 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pydemo_wp.cc -// -// python wrapper for user application -// 2005 Q -// ==================================================================== -#include -#include "MyMaterials.hh" -#include "MyDetectorConstruction.hh" -#include "G4VSensitiveDetector.hh" - -using namespace boost::python; - -// ==================================================================== -// Expose to Python -// ==================================================================== - -BOOST_PYTHON_MODULE(demo_wp) { - class_("MyMaterials", "my material") - .def("Construct", &MyMaterials::Construct) - ; - - class_ > - ("MyDetectorConstruction", "my detector") - .def("SetSDtoScoreVoxel", &MyDetectorConstruction::SetSDtoScoreVoxel) - ; -} - diff --git a/environments/g4py/examples/demos/water_phantom/test.py b/environments/g4py/examples/demos/water_phantom/test.py deleted file mode 100755 index f1597f8799..0000000000 --- a/environments/g4py/examples/demos/water_phantom/test.py +++ /dev/null @@ -1,92 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# python script for Geant4Py test -# -# ================================================================== -from Geant4 import * -import demo_wp - -# ================================================================== -# user actions in python -# ================================================================== -class MyPrimaryGeneratorAction(G4VUserPrimaryGeneratorAction): - "My Primary Generator Action" - - def __init__(self): - G4VUserPrimaryGeneratorAction.__init__(self) - self.particleGun= G4ParticleGun(1) - - def GeneratePrimaries(self, event): - self.particleGun.GeneratePrimaryVertex(event) - -# ------------------------------------------------------------------ -class MyRunAction(G4UserRunAction): - "My Run Action" - - def EndOfRunAction(self, run): - print "*** End of Run" - print "- Run sammary : (id= %d, #events= %d)" \ - % (run.GetRunID(), run.GetNumberOfEventToBeProcessed()) - -# ------------------------------------------------------------------ -class MyEventAction(G4UserEventAction): - "My Event Action" - - def EndOfEventAction(self, event): - pass - -# ------------------------------------------------------------------ -class MySteppingAction(G4UserSteppingAction): - "My Stepping Action" - - def UserSteppingAction(self, step): - pass - #print "*** dE/dx in current step=", step.GetTotalEnergyDeposit() - preStepPoint= step.GetPreStepPoint() - track= step.GetTrack() - touchable= track.GetTouchable() - #print "*** vid= ", touchable.GetReplicaNumber() - - -# ================================================================== -# main -# ================================================================== -myMaterials= demo_wp.MyMaterials() -myMaterials.Construct() - -myDC= demo_wp.MyDetectorConstruction() -gRunManager.SetUserInitialization(myDC) - -myPL= FTFP_BERT() -gRunManager.SetUserInitialization(myPL) - -# set user actions... -myPGA= MyPrimaryGeneratorAction() -gRunManager.SetUserAction(myPGA) - -myRA= MyRunAction() -gRunManager.SetUserAction(myRA) - -myEA= MyEventAction() -gRunManager.SetUserAction(myEA) - -mySA= MySteppingAction() -gRunManager.SetUserAction(mySA) - - -# set particle gun -pg= myPGA.particleGun -pg.SetParticleByName("proton") -pg.SetParticleEnergy(230.*MeV) -pg.SetParticleMomentumDirection(G4ThreeVector(0., 0., 1.)) -pg.SetParticlePosition(G4ThreeVector(0.,0.,-20.)*cm) - -gRunManager.Initialize() - -# visualization -gApplyUICommand("/control/execute vis.mac") - -# beamOn -#gRunManager.BeamOn(3) - - diff --git a/environments/g4py/examples/demos/water_phantom/vis.mac b/environments/g4py/examples/demos/water_phantom/vis.mac deleted file mode 100644 index ee558624f7..0000000000 --- a/environments/g4py/examples/demos/water_phantom/vis.mac +++ /dev/null @@ -1,16 +0,0 @@ -# vis.mac - -/vis/open OGLSX - -/vis/scene/create -/vis/scene/add/volume - -/vis/sceneHandler/attach - -/vis/viewer/set/viewpointThetaPhi 90. 0. - -/tracking/storeTrajectory 1 -/vis/scene/add/trajectories -/vis/scene/endOfEventAction accumulate -#/vis/scene/endOfEventAction refresh - diff --git a/environments/g4py/examples/education/lesson1/History b/environments/g4py/examples/education/lesson1/History deleted file mode 100644 index 9dd4350935..0000000000 --- a/environments/g4py/examples/education/lesson1/History +++ /dev/null @@ -1,43 +0,0 @@ -# Category g4py-examples-education History - -See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! - - -## 2021-12-10 Ben Morgan (g4py-examples-education-V11-00-00) -- Change to new Markdown History format - ---- - -# History entries prior to 11.0 - -27 Sep. 2006 Hajime Yoshida - - Lesson1.py as before - - Lesson1withN03.py with the physics list of N03 - - Lesson2Wx.py N03 physics list AND wxPython GUI - -09 March 2006 - -Hajime Yoshida - -The first version of mass attenuation coefficient - - - Lesson1.py - select absorber material - set its thickness upto 500 mm - select beam particle - set its energy upto 100 MeV - set nu of events up to 100 - run - - and then - zoom in (x1.1) or zoom out (x0.9) - - execute any G4 command but /gun/particle or /gun/energy which are - defined by the above - - -oglx.mac - OGLSX => important to make zooming effective after showing trajectories - -gun.mac - diff --git a/environments/g4py/examples/education/lesson1/README b/environments/g4py/examples/education/lesson1/README deleted file mode 100644 index 3d8a1fb187..0000000000 --- a/environments/g4py/examples/education/lesson1/README +++ /dev/null @@ -1,54 +0,0 @@ -Hajime Yoshida - -******* README of lesson1 ****** - -26 September 2006 - - Lesson1.py as before - - Lesson1withN03.py - - physics is list is taken from examples/novice/N03 - - process on/off - - Leson1Wx.py - - same as Lesson1withN03 but - - New GUI toolkit is used and the default Python isn't enough - - wxPython is necessary - - -26 May 2006 Geant4.8.1 - - - -The first version of the courseware of the mass attenuation coefficient - - - Lesson1.py - select absorber material - set its thickness upto 500 mm - select beam particle - set its energy upto 100 MeV - set nu of events up to 100 - run - - and then - zoom in (x1.1) or zoom out (x0.9) - pan in up/down and/or right/left in the unit of mm (type in two - numbers separated by a space) - - execute any G4 command but /gun/particle or /gun/energy which are - defined by the above - - -oglx.mac - OGLSX => important to make zooming effective after showing trajectories. - - if you want to use VRML, you have to specify the directory where *.wrl - file is stored and the VRML viewer to which the path is set: - G4VRMLFILE_DEST_DIR=/home/yoshidah/tmp/ - G4VRMLFILE_VIEWER=vrmlview - - And you have VRML drivers built. - G4VIS_BUILD_VRML_DRIVER=1 - G4VIS_USE_VRMLFILE=1 - G4VIS_BUILD_VRMLFILE_DRIVER=1 - G4VIS_USE_VRML=1 - - - -gun.mac - This is used only at the initialization time. \ No newline at end of file diff --git a/environments/g4py/examples/education/lesson1/demo.py b/environments/g4py/examples/education/lesson1/demo.py deleted file mode 100755 index fd79fdbf15..0000000000 --- a/environments/g4py/examples/education/lesson1/demo.py +++ /dev/null @@ -1,294 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# python script for "measurement" of mass attenuation coefficient -# -# -# - using site-module packages -# ================================================================== -from Geant4 import * -import g4py.NISTmaterials -import g4py.ezgeom -from g4py.ezgeom import G4EzVolume -import g4py.EMSTDpl -import g4py.ParticleGun -from time import * -import sys - -# ================================================================== -# intialize -# ================================================================== -def Configure(): - # ------------------------------------------------------------------ - # setup for materials - # ------------------------------------------------------------------ - # simple materials for Qgeom - g4py.NISTmaterials.Construct() - - # ------------------------------------------------------------------ - # setup for geometry - # ------------------------------------------------------------------ - #g4py.Qgeom.Construct() - g4py.ezgeom.Construct() # initialize - - # ------------------------------------------------------------------ - # setup for physics list - # ------------------------------------------------------------------ - g4py.EMSTDpl.Construct() - - # ------------------------------------------------------------------ - # setup for primary generator action - # ------------------------------------------------------------------ - g4py.ParticleGun.Construct() - gControlExecute("gun.mac") - -# ================================================================== -# constructing geometry -# ================================================================== -def ConstructGeom(): - print "* Constructing geometry..." - # reset world material - global absorber - air= G4Material.GetMaterial("G4_AIR", 1) - galactic = G4Material.GetMaterial("G4_Galactic", 1) - absorber = {} # material's dictionary to be used by a radiobutton - aluminum = G4Material.GetMaterial("G4_Al", 1) - iron = G4Material.GetMaterial("G4_Fe", 1) - silver = G4Material.GetMaterial("G4_Ag", 1) - gold = G4Material.GetMaterial("G4_Au", 1) - lead = G4Material.GetMaterial("G4_Pb", 1) - water = G4Material.GetMaterial("G4_WATER", 1) - absorber = {"air":air, "aluminum":aluminum, "iron":iron, "lead":lead, "water":water, "gold":gold} - g4py.ezgeom.SetWorldMaterial(galactic) - g4py.ezgeom.ResizeWorld(120.*cm, 120.*cm, 100.*cm) - # water phantom - global water_phantom, water_phantom_pv - - water_phantom= G4EzVolume("WaterPhantom") - water_phantom.CreateBoxVolume(water, 110.*cm, 110.*cm, 10.*cm) - - water_phantom_pv = water_phantom.PlaceIt(G4ThreeVector(0.,0.,0.*cm)) - -# ================================================================== -# main -# ================================================================== -# ------------------------------------------------------------------ -# randum number -# ------------------------------------------------------------------ -print "Random numbers..." -rand_engine= Ranlux64Engine() -HepRandom.setTheEngine(rand_engine) -HepRandom.setTheSeed(20050830L) - -# setup... - -Configure() -ConstructGeom() - -# ------------------------------------------------------------------ -# go... -# ------------------------------------------------------------------ -gRunManager.Initialize() - -# visualization not here but after "Start a run" button -gControlExecute("oglx.mac") -#gControlExecute("vrml.mac") - -# creating widgets using grid layout - -from Tkinter import * - -class App(Frame): - - - def init(self): - -#title and header row=0, 1 - title = Label(self, text="Geant4Py for Education @ H. Yoshida Naruto Univ. of Education") - title.grid(row=0, column=1, columnspan=5) - header = Label(self, text="Measurement of Mass Attenuation Coefficient") - header.grid(row=1, column=1, columnspan=5) - -#material selection row=2 - materialLabel = Label(self, bg="green", text="Material") - materialLabel.grid(row=2, column=0, sticky=W) - self.materialVar = StringVar() - self.materialVar.set("water") - ra1 = { } - pos=1 - for i in absorber.keys(): - ra1[i] = Radiobutton(self, text=i, variable=self.materialVar, value=i) - ra1[i].grid(row=2, column=pos, sticky=W) - pos=pos+1 - -#absorber thickness row=3 - thickLabel = Label(self, bg="green", text="Thickness (mm)") - self.thickVar = DoubleVar() - self.thickVar.set(100.0) - thick = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=100., resolution=0.05, tickinterval=10.0, digits=4, variable=self.thickVar) - thickLabel.grid(row=3, column=0, sticky=W) - thick.grid(row=3, column=1, columnspan=5, sticky=W) - -#get logical volume and set its half length - self.solid = g4py.ezgeom.G4EzVolume.GetSold(water_phantom) - -#particle row=4 - particleLabel = Label(self, bg="green", text="Particle") - particleLabel.grid(row=4, column=0, sticky=W) - self.particleVar = StringVar() - self.particleVar.set("gamma") - ra1 = { } - pos1=1 - for i in ("gamma", "e-"): - ra1[i] = Radiobutton(self, text=i, variable=self.particleVar, value=i) - ra1[i].grid(row=4, column=pos1, sticky=W) - pos1=pos1+1 - -#energy row=5 - energyLabel = Label(self, bg="green", text="Energy (MeV)") - - self.energyVar=StringVar() - self.energyVar.set(1) - energy = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=100., tickinterval=10.0, resolution=0.1, variable=self.energyVar, digits=4 ) - energyLabel.grid(row=5, column=0, sticky=W) - energy.grid(row=5, column=1, columnspan=5, sticky=W) - -#number of event row=6 - eventLabel = Label(self, bg="green", text="Events") - self.eventVar=IntVar() - event = Scale(self, orient=HORIZONTAL, length=400, from_=1, to=100, tickinterval=10, resolution=1, variable=self.eventVar ) - eventLabel.grid(row=6, column=0, sticky=W) - event.grid(row=6, column=1, columnspan=5, sticky=W) - -#start a run button row=7 - startBut = Button(self, bg="orange", text="Start a run", command=self.cmd_beamOn) - startBut.grid(row=0, column=0, sticky=W) - -#Zoom in/out Pan X Y row=8 - visLabel = Label(self, text="viewer", bg="orange") - expandBut = Button(self, text="Zoom in", command=self.cmd_expand) - shrinkBut = Button(self, text="Zoom out", command=self.cmd_shrink) - visLabel.grid(row=8, column=0, sticky=W) - expandBut.grid(row=8, column=1, sticky=W) - shrinkBut.grid(row=8, column=2, sticky=W) - - upBut = Button(self, text="Up", command=self.cmd_up) - downBut = Button(self, text="Down", command=self.cmd_down) - upBut.grid(row=8, column=3, sticky=W) - downBut.grid(row=8, column=4, sticky=W) - - leftBut = Button(self, text="Left", command=self.cmd_left) - rightBut = Button(self, text="Right", command=self.cmd_right) - leftBut.grid(row=8, column=5, sticky=W) - rightBut.grid(row=8, column=6, sticky=W) -# later -# resetBut = Button(self, text="Reset", command=self.cmd_reset) -# resetBut.grid(row=8, column=7, sticky=W) - - -# panLabel = Label(self, text="Pan X Y (mm)") -# self.panXYVar = StringVar() -# panXYEnt = Entry(self, textvariable=self.panXYVar) -# panBut = Button(self, bg="orange", text="OK", command=self.cmd_pan) -# panLabel.grid(row=8, column=3, sticky=W) -# panXYEnt.grid(row=8, column=4) -# panBut.grid(row=8, column=5) -#Geant4 command entry row = 9 -# g4comLabel = Label(self, text="Geant4 command") -# self.g4commandVar = StringVar() -# commandEntry = Entry(self, textvariable=self.g4commandVar) -# comBut = Button(self, bg="orange", text="Execute", command=self.cmd_g4command) -# g4comLabel.grid(row=9, column=0, sticky=W) -# commandEntry.grid(row=9, column=1, columnspan=4, sticky=E+W) -# comBut.grid(row=9, column=5) - -#exit row = 10 - exitBut = Button(self, bg="red", text="End all", command=sys.exit) - exitBut.grid(row=0, column=6, sticky=W) - -#on Run butto do... - def cmd_beamOn(self): - materialChosen = self.materialVar.get() - water_phantom.SetMaterial(absorber[materialChosen]) - - if materialChosen == "water": - water_phantom.SetColor(0., 0.9, 1.0) - - if materialChosen == "air": - water_phantom.SetColor(0.9, 0.9, 1.0) - - if materialChosen == "lead": - water_phantom.SetColor(0.2, 0.2, 0.2) - - if materialChosen == "iron": - water_phantom.SetColor(0.7, 0.5, 0.7) - - if materialChosen == "aluminum": - water_phantom.SetColor(.7, 0.9, 1.0) - - if materialChosen == "gold": - water_phantom.SetColor(1., 0.9, .0) - - self.solid.SetZHalfLength(self.thickVar.get() * mm/2.0) -# gControlExecute("oglx.mac") #draw for each run - gApplyUICommand("/vis/viewer/flush") - - self.cmd_particle(self.particleVar.get()) - self.cmd_energy(self.energyVar.get()) -# TODO later to reflesh text - gApplyUICommand("/vis/scene/add/text 0 610 610 mm 20 0 0 " + " ") - gApplyUICommand("/vis/scene/add/text 0 610 610 mm 20 0 0 " + self.materialVar.get() + " = " + str(self.thickVar.get()) + "mm " + self.particleVar.get() + " = "+self.energyVar.get() + "MeV") - - eventNum = self.eventVar.get() - for i in range(eventNum): - gunYZpos = str(i-eventNum/2) + ". -20. cm" - gApplyUICommand("/gun/position 0. " + gunYZpos) - gRunManager.BeamOn(1) - sleep(0.01) -# self.cmd_expand() #Zoom in to the last diaplayed OGLSX -# self.cmd_shrink() - - - - def cmd_g4command(self): - gApplyUICommand(self.g4commandVar.get()) - - def cmd_particle(self, particle): - gApplyUICommand("/gun/particle " + particle) - - - def cmd_energy(self, penergy): - gApplyUICommand("/gun/energy " + penergy + " MeV") - - - def cmd_expand(self): - gApplyUICommand("/vis/viewer/zoom 1.2") - - def cmd_up(self): - gApplyUICommand("/vis/viewer/pan " + " 0. 10. mm") - - def cmd_down(self): - gApplyUICommand("/vis/viewer/pan " + " 0. -10. mm") - - def cmd_right(self): - gApplyUICommand("/vis/viewer/pan " + " -1. 0. mm") - - def cmd_left(self): - gApplyUICommand("/vis/viewer/pan " + " 1. 0. mm") - - - def cmd_shrink(self): - gApplyUICommand("/vis/viewer/zoom 0.8") - - -# def cmd_reset(self): -# gApplyUICommand("/vis/viewer/pan " + " 0. 0. mm") - - - def __init__(self, master=None): - Frame.__init__(self, master) - self.init() - self.grid() - - -app = App() -app.mainloop() diff --git a/environments/g4py/examples/education/lesson1/gun.mac b/environments/g4py/examples/education/lesson1/gun.mac deleted file mode 100644 index 16c20471ba..0000000000 --- a/environments/g4py/examples/education/lesson1/gun.mac +++ /dev/null @@ -1,8 +0,0 @@ -# gun.mac - -/gun/number 1 -/gun/particle e- -/gun/energy 0.2 MeV -/gun/direction 0. 0. 1. -/gun/position 0. -5. -30. cm - diff --git a/environments/g4py/examples/education/lesson1/oglx.mac b/environments/g4py/examples/education/lesson1/oglx.mac deleted file mode 100644 index bb8f46afda..0000000000 --- a/environments/g4py/examples/education/lesson1/oglx.mac +++ /dev/null @@ -1,29 +0,0 @@ -# vis.mac - -#OpenGL Stored mode to accumulate trajectories - -/vis/open OGLSX - -#VRML viewer is usable if you defined env variables -#/vis/open VRML2FILE - -/vis/viewer/refresh - -/vis/scene/create -/vis/scene/add/volume -#/vis/scene/add/axes 0 0 0 2 m -#/vis/drawVolume -/vis/viewer/set/style s - - -/vis/sceneHandler/attach - -/vis/viewer/set/viewpointThetaPhi 90. 0. -/vis/viewer/zoom 1.5 - -#/vis/scene/add/text 0 610 610 mm 20 -0 -0 Geant4Py -/tracking/storeTrajectory 1 -/vis/scene/add/trajectories -/vis/scene/endOfEventAction accumulate -/vis/scene/endOfRunAction accumulate - diff --git a/environments/g4py/examples/education/lesson1/python3/Lesson1.py b/environments/g4py/examples/education/lesson1/python3/Lesson1.py deleted file mode 100755 index 97269b8146..0000000000 --- a/environments/g4py/examples/education/lesson1/python3/Lesson1.py +++ /dev/null @@ -1,294 +0,0 @@ -#!/usr/bin/python3 -# ================================================================== -# python script for "measurement" of mass attenuation coefficient -# -# -# - using site-module packages -# ================================================================== -from Geant4 import * -import g4py.NISTmaterials -import g4py.ezgeom -from g4py.ezgeom import G4EzVolume -import g4py.EMSTDpl -import g4py.ParticleGun -from time import * -import sys - -# ================================================================== -# intialize -# ================================================================== -def Configure(): - # ------------------------------------------------------------------ - # setup for materials - # ------------------------------------------------------------------ - # simple materials for Qgeom - g4py.NISTmaterials.Construct() - - # ------------------------------------------------------------------ - # setup for geometry - # ------------------------------------------------------------------ - #g4py.Qgeom.Construct() - g4py.ezgeom.Construct() # initialize - - # ------------------------------------------------------------------ - # setup for physics list - # ------------------------------------------------------------------ - g4py.EMSTDpl.Construct() - - # ------------------------------------------------------------------ - # setup for primary generator action - # ------------------------------------------------------------------ - g4py.ParticleGun.Construct() - gControlExecute("gun.mac") - -# ================================================================== -# constructing geometry -# ================================================================== -def ConstructGeom(): - print("* Constructing geometry...") - # reset world material - global absorber - air= G4Material.GetMaterial("G4_AIR", 1) - galactic = G4Material.GetMaterial("G4_Galactic", 1) - absorber = {} # material's dictionary to be used by a radiobutton - aluminum = G4Material.GetMaterial("G4_Al", 1) - iron = G4Material.GetMaterial("G4_Fe", 1) - silver = G4Material.GetMaterial("G4_Ag", 1) - gold = G4Material.GetMaterial("G4_Au", 1) - lead = G4Material.GetMaterial("G4_Pb", 1) - water = G4Material.GetMaterial("G4_WATER", 1) - absorber = {"air":air, "aluminum":aluminum, "iron":iron, "lead":lead, "water":water, "gold":gold} - g4py.ezgeom.SetWorldMaterial(galactic) - g4py.ezgeom.ResizeWorld(120.*cm, 120.*cm, 100.*cm) - # water phantom - global water_phantom, water_phantom_pv - - water_phantom= G4EzVolume("WaterPhantom") - water_phantom.CreateBoxVolume(water, 110.*cm, 110.*cm, 10.*cm) - - water_phantom_pv = water_phantom.PlaceIt(G4ThreeVector(0.,0.,0.*cm)) - -# ================================================================== -# main -# ================================================================== -# ------------------------------------------------------------------ -# randum number -# ------------------------------------------------------------------ -print("Random numbers...") -rand_engine= Ranlux64Engine() -HepRandom.setTheEngine(rand_engine) -HepRandom.setTheSeed(20050830) - -# setup... - -Configure() -ConstructGeom() - -# ------------------------------------------------------------------ -# go... -# ------------------------------------------------------------------ -gRunManager.Initialize() - -# visualization not here but after "Start a run" button -gControlExecute("oglx.mac") -#gControlExecute("vrml.mac") - -# creating widgets using grid layout - -from tkinter import * - -class App(Frame): - - - def init(self): - -#title and header row=0, 1 - title = Label(self, text="Geant4Py for Education @ H. Yoshida Naruto Univ. of Education") - title.grid(row=0, column=1, columnspan=5) - header = Label(self, text="Measurement of Mass Attenuation Coefficient") - header.grid(row=1, column=1, columnspan=5) - -#material selection row=2 - materialLabel = Label(self, bg="green", text="Material") - materialLabel.grid(row=2, column=0, sticky=W) - self.materialVar = StringVar() - self.materialVar.set("water") - ra1 = { } - pos=1 - for i in absorber.keys(): - ra1[i] = Radiobutton(self, text=i, variable=self.materialVar, value=i) - ra1[i].grid(row=2, column=pos, sticky=W) - pos=pos+1 - -#absorber thickness row=3 - thickLabel = Label(self, bg="green", text="Thickness (mm)") - self.thickVar = DoubleVar() - self.thickVar.set(100.0) - thick = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=100., resolution=0.05, tickinterval=10.0, digits=4, variable=self.thickVar) - thickLabel.grid(row=3, column=0, sticky=W) - thick.grid(row=3, column=1, columnspan=5, sticky=W) - -#get logical volume and set its half length - self.solid = g4py.ezgeom.G4EzVolume.GetSold(water_phantom) - -#particle row=4 - particleLabel = Label(self, bg="green", text="Particle") - particleLabel.grid(row=4, column=0, sticky=W) - self.particleVar = StringVar() - self.particleVar.set("gamma") - ra1 = { } - pos1=1 - for i in ("gamma", "e-"): - ra1[i] = Radiobutton(self, text=i, variable=self.particleVar, value=i) - ra1[i].grid(row=4, column=pos1, sticky=W) - pos1=pos1+1 - -#energy row=5 - energyLabel = Label(self, bg="green", text="Energy (MeV)") - - self.energyVar=StringVar() - self.energyVar.set(1) - energy = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=100., tickinterval=10.0, resolution=0.1, variable=self.energyVar, digits=4 ) - energyLabel.grid(row=5, column=0, sticky=W) - energy.grid(row=5, column=1, columnspan=5, sticky=W) - -#number of event row=6 - eventLabel = Label(self, bg="green", text="Events") - self.eventVar=IntVar() - event = Scale(self, orient=HORIZONTAL, length=400, from_=1, to=100, tickinterval=10, resolution=1, variable=self.eventVar ) - eventLabel.grid(row=6, column=0, sticky=W) - event.grid(row=6, column=1, columnspan=5, sticky=W) - -#start a run button row=7 - startBut = Button(self, bg="orange", text="Start a run", command=self.cmd_beamOn) - startBut.grid(row=0, column=0, sticky=W) - -#Zoom in/out Pan X Y row=8 - visLabel = Label(self, text="viewer", bg="orange") - expandBut = Button(self, text="Zoom in", command=self.cmd_expand) - shrinkBut = Button(self, text="Zoom out", command=self.cmd_shrink) - visLabel.grid(row=8, column=0, sticky=W) - expandBut.grid(row=8, column=1, sticky=W) - shrinkBut.grid(row=8, column=2, sticky=W) - - upBut = Button(self, text="Up", command=self.cmd_up) - downBut = Button(self, text="Down", command=self.cmd_down) - upBut.grid(row=8, column=3, sticky=W) - downBut.grid(row=8, column=4, sticky=W) - - leftBut = Button(self, text="Left", command=self.cmd_left) - rightBut = Button(self, text="Right", command=self.cmd_right) - leftBut.grid(row=8, column=5, sticky=W) - rightBut.grid(row=8, column=6, sticky=W) -# later -# resetBut = Button(self, text="Reset", command=self.cmd_reset) -# resetBut.grid(row=8, column=7, sticky=W) - - -# panLabel = Label(self, text="Pan X Y (mm)") -# self.panXYVar = StringVar() -# panXYEnt = Entry(self, textvariable=self.panXYVar) -# panBut = Button(self, bg="orange", text="OK", command=self.cmd_pan) -# panLabel.grid(row=8, column=3, sticky=W) -# panXYEnt.grid(row=8, column=4) -# panBut.grid(row=8, column=5) -#Geant4 command entry row = 9 -# g4comLabel = Label(self, text="Geant4 command") -# self.g4commandVar = StringVar() -# commandEntry = Entry(self, textvariable=self.g4commandVar) -# comBut = Button(self, bg="orange", text="Execute", command=self.cmd_g4command) -# g4comLabel.grid(row=9, column=0, sticky=W) -# commandEntry.grid(row=9, column=1, columnspan=4, sticky=E+W) -# comBut.grid(row=9, column=5) - -#exit row = 10 - exitBut = Button(self, bg="red", text="End all", command=sys.exit) - exitBut.grid(row=0, column=6, sticky=W) - -#on Run butto do... - def cmd_beamOn(self): - materialChosen = self.materialVar.get() - water_phantom.SetMaterial(absorber[materialChosen]) - - if materialChosen == "water": - water_phantom.SetColor(0., 0.9, 1.0) - - if materialChosen == "air": - water_phantom.SetColor(0.9, 0.9, 1.0) - - if materialChosen == "lead": - water_phantom.SetColor(0.2, 0.2, 0.2) - - if materialChosen == "iron": - water_phantom.SetColor(0.7, 0.5, 0.7) - - if materialChosen == "aluminum": - water_phantom.SetColor(.7, 0.9, 1.0) - - if materialChosen == "gold": - water_phantom.SetColor(1., 0.9, .0) - - self.solid.SetZHalfLength(self.thickVar.get() * mm/2.0) -# gControlExecute("oglx.mac") #draw for each run - gApplyUICommand("/vis/viewer/flush") - - self.cmd_particle(self.particleVar.get()) - self.cmd_energy(self.energyVar.get()) -# TODO later to reflesh text - gApplyUICommand("/vis/scene/add/text 0 610 610 mm 20 0 0 " + " ") - gApplyUICommand("/vis/scene/add/text 0 610 610 mm 20 0 0 " + self.materialVar.get() + " = " + str(self.thickVar.get()) + "mm " + self.particleVar.get() + " = "+self.energyVar.get() + "MeV") - - eventNum = self.eventVar.get() - for i in range(eventNum): - gunYZpos = str(i-eventNum/2) + ". -20. cm" - gApplyUICommand("/gun/position 0. " + gunYZpos) - gRunManager.BeamOn(1) - sleep(0.01) -# self.cmd_expand() #Zoom in to the last diaplayed OGLSX -# self.cmd_shrink() - - - - def cmd_g4command(self): - gApplyUICommand(self.g4commandVar.get()) - - def cmd_particle(self, particle): - gApplyUICommand("/gun/particle " + particle) - - - def cmd_energy(self, penergy): - gApplyUICommand("/gun/energy " + penergy + " MeV") - - - def cmd_expand(self): - gApplyUICommand("/vis/viewer/zoom 1.2") - - def cmd_up(self): - gApplyUICommand("/vis/viewer/pan " + " 0. 10. mm") - - def cmd_down(self): - gApplyUICommand("/vis/viewer/pan " + " 0. -10. mm") - - def cmd_right(self): - gApplyUICommand("/vis/viewer/pan " + " -1. 0. mm") - - def cmd_left(self): - gApplyUICommand("/vis/viewer/pan " + " 1. 0. mm") - - - def cmd_shrink(self): - gApplyUICommand("/vis/viewer/zoom 0.8") - - -# def cmd_reset(self): -# gApplyUICommand("/vis/viewer/pan " + " 0. 0. mm") - - - def __init__(self, master=None): - Frame.__init__(self, master) - self.init() - self.grid() - - -app = App() -app.mainloop() diff --git a/environments/g4py/examples/education/lesson2/README b/environments/g4py/examples/education/lesson2/README deleted file mode 100644 index 7bc5adc31a..0000000000 --- a/environments/g4py/examples/education/lesson2/README +++ /dev/null @@ -1,82 +0,0 @@ -26 Sep 2006 - - added Lesson2Wx.py - New version using wxPython - functionas are identical with ExN03.py - -26 May 2006 -revised 02 July 2006 -Geant4.8.1 release -=============================================== -Prerequisites for G4 environment variables. -============================================== - -This scripts offers the choice of visualization systems; -one among OGLSX (OpenGL stored mode), or VRML2FILE or Wired3. - -OGLSX is the default viewer and you need no environment variables. - -To use VRML2FILE you have to specify its viewer which is found in your -search path and the destination directory where *.wrl file is stored. -If you don't specify the name of the viewer, you can't choose it on the panel. -For example, - setenv G4VRMLFILE_VIEWER $HOME/bin/vrmlview - setenv G4VRMLFILE_DEST_DIR $HOME/tmp/ <= terminate with / - -To use Wired, download it and install under your directory. Java Runtime -Environment is necessary. -Then set, for example; - setenv G4HEPREPFILE_VIEWER $HOME/Wired/bin/wired <= any path you use - setenv G4HEPREPFILE_DIR $HOME/tmp/ - setenv G4HEPREPFILE_NAME lesson2_00 <= any name you choose. - setenv G4HEPREPFILE_OVERWRITE 1 <= to reuse the file for "next event" -G4HEPREPFILE_VIEWER isn't an official Geant4 environment variable but is employed -here to control the vissssualization viewers. -The name of the HepRepFile is ${G4HEPREPFILE_NAME}.heprep which will be -stored in ${G4HEPREPFILE_DIR}. - -ExN03.py script don't use VRML or Wired if their *_VIEWER isn't set. -But other env variables are also used in the script to look for the -file and to activate the viewer, you have to set all of the above variables -in the shell where you activate ExN03.py script. - - -NOTICE) VRML viewer blocks the window (modal), so that you have to exit it to -display another run. - -********* ExN03.py script *********** - -This example id derived from examples/novice/N03. -You can - - choose the materials of absorber and gap - - set the thickness of the absorber and gap - - set the lateral (in YZ plane) size of the sandwitch cal. - - choose an incedent particle - - set its energy - - set the number of events to run - - toggle on/off of the electromagnetic processes - - set cut length - - set magnetic field - - typein any Geant4 command (except related with the above functions) and execute it - -How to run it? - %python ExN03.py - -You can visualize with OpenGL stored mode or VRML or Wired3 -You can choose either of the active viewers by pushing the -radio buttons. -========================= -NOTICE) - -VRML viewer runs in the modal action, and you have to exit it -to have a new diaplay for the new run, or you want to switch to -another viewer. - -Wired has the "next"/"previous" event button. So to see the next -event, first run and then "next" event. Wired doesn't block G4 -and you can have Wired and OGLSX both open. - - - -ExN03-Wired.py is OBSOLETE. Please use ExN03.py - - diff --git a/environments/g4py/examples/education/lesson2/demo.py b/environments/g4py/examples/education/lesson2/demo.py deleted file mode 100755 index 2fa4fcb513..0000000000 --- a/environments/g4py/examples/education/lesson2/demo.py +++ /dev/null @@ -1,426 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# python script for Geant4Py -# -# ExN03 : geant4/examples/novice/N03 -# using site-module packages -# ================================================================== -from Geant4 import * -import g4py.Qmaterials, g4py.NISTmaterials -import g4py.ExN03geom -#import g4py.ExN03pl -import g4py.EMSTDpl -import g4py.ParticleGun, g4py.MedicalBeam -import sys -from time import * -from subprocess import * -import os - -# ================================================================== -# main -# ================================================================== -# ------------------------------------------------------------------ -# randum number -# ------------------------------------------------------------------ -rand_engine= Ranlux64Engine() -HepRandom.setTheEngine(rand_engine) -HepRandom.setTheSeed(20050830L) - -# ------------------------------------------------------------------ -# setup for materials -# ------------------------------------------------------------------ - -# NIST materials -#g4py.NISTmaterials.Construct() - -# ------------------------------------------------------------------ -# setup for geometry -# ------------------------------------------------------------------ -# normal way for constructing user geometry - -exN03geom= g4py.ExN03geom.ExN03DetectorConstruction() -gRunManager.SetUserInitialization(exN03geom) - -# 2nd way, short-cut way - -#g4py.ExN01geom.Construct() -#g4py.ExN03geom.Construct() - -# magnetic field -#exN03geom.SetMagField(0.1 * tesla) - -# ------------------------------------------------------------------ -# setup for physics list -# ------------------------------------------------------------------ -# normal way for constructing user physics list -exN03PL= g4py.EMSTDpl.PhysicsListEMstd() -gRunManager.SetUserInitialization(exN03PL) - -# 2nd way, short-cut way -#g4py.ExN01pl.Construct() -#g4py.EMSTDpl.Construct() - -# ------------------------------------------------------------------ -# setup for primary generator action -# ------------------------------------------------------------------ -# normal way for constructing user physics list -#pgPGA= g4py.ParticleGun.ParticleGunAction() -#gRunManager.SetUserAction(pgPGA) -#pg= pgPGA.GetParticleGun() - -# 2nd way, short-cut way -pg= g4py.ParticleGun.Construct() - -# set parameters of particle gun -pg.SetParticleByName("e-") -pg.SetParticleEnergy(50.*MeV) -pg.SetParticlePosition(G4ThreeVector(-40.,0.,0.)*cm) -pg.SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)) - -# medical beam -#beam= MedicalBeam.Construct() - -# ------------------------------------------------------------------ -# go... -# ------------------------------------------------------------------ -gRunManager.Initialize() - -# beamOn -#gRunManager.BeamOn(3) - - -#TEST -#gProcessTable.SetProcessActivation("msc", 0) -#gProcessTable.SetProcessActivation("conv", 0) -#gProcessTable.SetProcessActivation("eBrem", 0) -#gProcessTable.SetProcessActivation("eIoni", 0) -#gProcessTable.SetProcessActivation("annihil", 0) - - -# visualization -# OGLSX, VRML and HEPREP sceneHandlers are all created with names -gApplyUICommand("/vis/sceneHandler/create OGLSX OGLSX") -gApplyUICommand("/vis/sceneHandler/create VRML2FILE VRML") -gApplyUICommand("/vis/sceneHandler/create HepRepFile HEPREP") - -# OGLSX is the default so, viewer is created and volume is drawn -gApplyUICommand("/vis/viewer/create OGLSX oglsxviewer") -gApplyUICommand("/vis/drawVolume") -gApplyUICommand("/vis/scene/add/trajectories") - -gApplyUICommand("/tracking/storeTrajectory 1") -gApplyUICommand("/vis/scene/endOfEventAction accumulate") -gApplyUICommand("/vis/scene/endOfRunAction accumulate") -gApplyUICommand("/vis/viewer/select oglsxviewer") - -# viewers VRML and Wired are tested by their envs vars -# if their envs var are set, then viewers are created and drawVolume - -global heprepViewer, heprepDir, heprepName -heprepViewer = os.environ.get("G4HEPREPFILE_VIEWER") -heprepDir = os.environ.get("G4HEPREPFILE_DIR") -heprepName = os.environ.get("G4HEPREPFILE_NAME") -if heprepViewer is not None: - gApplyUICommand("/vis/viewer/create HEPREP wired") - gApplyUICommand("/vis/drawVolume") - -# VRML viewers name is user defined -vrmlDir = os.environ.get("G4VRML_DEST_DIR") -vrmlViewer = os.environ.get("G4VRMLFILE_VIEWER") - -if vrmlViewer is not None: - gApplyUICommand("/vis/viewer/create VRML vrmlviewer") - gApplyUICommand("/vis/drawVolume") - - - -# creating widgets using grid layout - -from Tkinter import * - -class App(Frame): - - g4pipe = 0 - - def init(self): - -#title and header row=0, 1 - title = Label(self, text="exampleN03") - title.grid(row=0, column=1, columnspan=3) - header = Label(self, text="empowered by \n Geant4Py") - header.grid(row=1, column=1, columnspan=3) -# number of layers - layerLabel = Label(self, bg="green", text="No of layers") - self.layerVar=IntVar() - self.layerVar.set(10) - layer = Scale(self, orient=HORIZONTAL, length=400, from_=0, to=10, tickinterval=1, resolution=1, variable=self.layerVar ) - layerLabel.grid(row=2, column=0, sticky=W) - layer.grid(row=2, column=1, columnspan=5, sticky=W) - -#absorber material selection row=3 - absorbermaterialLabel = Label(self, bg="green", text="Absorber Material") - absorbermaterialLabel.grid(row=3, column=0, sticky=W) - self.absorbermaterialVar = StringVar() - self.absorbermaterialVar.set("Lead") - ra1 = { } - pos=1 - for i in ("Aluminium", "Lead"): - ra1[i] = Radiobutton(self, text=i, variable=self.absorbermaterialVar, value=i) - ra1[i].grid(row=3, column=pos, sticky=W) - pos=pos+1 - -#absorber thickness row=4 - absorberthickLabel = Label(self, bg="green", text="Thickness (mm)") - self.absorberthickVar = DoubleVar() - self.absorberthickVar.set(10.0) - absorberthick = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=100., resolution=0.05, tickinterval=10.0, digits=4, variable=self.absorberthickVar) - absorberthickLabel.grid(row=4, column=0, sticky=W) - absorberthick.grid(row=4, column=1, columnspan=5, sticky=W) - - -#gap material selection row=5 - gapmaterialLabel = Label(self, bg="green", text="Gap Material") - gapmaterialLabel.grid(row=5, column=0, sticky=W) - self.gapmaterialVar = StringVar() - self.gapmaterialVar.set("liquidArgon") - ra2 = { } - pos=1 - for i in ("liquidArgon","Scintillator", "Air", "Aerogel", "Galactic" ): - ra2[i] = Radiobutton(self, text=i, variable=self.gapmaterialVar, value=i) - ra2[i].grid(row=5, column=pos, sticky=W) - pos=pos+1 - -#gap thickness row=6 - gapthickLabel = Label(self, bg="green", text="Thickness (mm)") - self.gapthickVar = DoubleVar() - self.gapthickVar.set(5.0) - gapthick = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=100., resolution=0.05, tickinterval=10.0, digits=4, variable=self.gapthickVar) - gapthickLabel.grid(row=6, column=0, sticky=W) - gapthick.grid(row=6, column=1, columnspan=5, sticky=W) - -#calorSizeYZ row=7 - calorsizeYZLabel = Label(self, bg="green", text="SizeYZ (mm)") - self.calorsizeYZVar = DoubleVar() - self.calorsizeYZVar.set(100.0) - calorsizeYZ = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=200., resolution=0.05, tickinterval=20.0, digits=4, variable=self.calorsizeYZVar) - calorsizeYZLabel.grid(row=7, column=0, sticky=W) - calorsizeYZ.grid(row=7, column=1, columnspan=5, sticky=W) - - -#particle row=8 - particleLabel = Label(self, bg="green", text="Particle") - particleLabel.grid(row=8, column=0, sticky=W) - self.particleVar = StringVar() - self.particleVar.set("e-") - ra1 = { } - pos1=1 - for i in ("proton", "gamma", "e-", "e+", "mu-", "mu+"): - ra1[i] = Radiobutton(self, text=i, variable=self.particleVar, value=i) - ra1[i].grid(row=8, column=pos1, sticky=W) - pos1=pos1+1 - -#energy row=9 - energyLabel = Label(self, bg="green", text="Energy (MeV)") - - self.energyVar=StringVar() - self.energyVar.set(50) - energy = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=1000., tickinterval=100.0, resolution=0.1, variable=self.energyVar, digits=5 ) - energyLabel.grid(row=9, column=0, sticky=W) - energy.grid(row=9, column=1, columnspan=5, sticky=W) - -#number of event row=10 - eventLabel = Label(self, bg="green", text="Events") - self.eventVar=IntVar() - self.eventVar.set(3) - event = Scale(self, orient=HORIZONTAL, length=400, from_=0, to=100, tickinterval=10, resolution=1, variable=self.eventVar ) - eventLabel.grid(row=10, column=0, sticky=W) - event.grid(row=10, column=1, columnspan=5, sticky=W) - -#start a run button row=0 - startBut = Button(self, bg="orange", text="Start a run", command=self.cmd_beamOn) - startBut.grid(row=0, column=0, sticky=W) - -#Zoom in/out Pan X Y row=13 -# visLabel = Label(self, text="viewer", bg="orange") -# expandBut = Button(self, text="Zoom in", command=self.cmd_expand) -# shrinkBut = Button(self, text="Zoom out", command=self.cmd_shrink) -# visLabel.grid(row=13, column=0, sticky=W) -# expandBut.grid(row=13, column=1, sticky=W) -# shrinkBut.grid(row=13, column=2, sticky=W) -# panLabel = Label(self, text="Pan X Y(mm)") -# self.panXYVar = StringVar() -# panXYEnt = Entry(self, textvariable=self.panXYVar, width=6) -# panBut = Button(self, bg="orange", text="OK", command=self.cmd_pan) -# panLabel.grid(row=13, column=3, sticky=W) -# panXYEnt.grid(row=13, column=4) -# panBut.grid(row=13, column=5) - -# process activate row 11 - 13 - processLabel=Label(self, text="Process on/off", bg="green") - processLabel.grid(row=11, column=0, sticky=W) - procTab = {} - - self.processList = ["phot", "compt", "conv", "msc", "eIoni", "eBrem", "annihil","muIoni", "muBrems", "hIoni"] - pos=1 - self.processVar = {} - for i in self.processList: - self.processVar[i] = IntVar() - procTab[i] = Checkbutton(self, text=i, variable=self.processVar[i], command=self.cmd_setProcess) - if pos <= 3: - procTab[i].grid(row=11, column=pos, sticky=W) - if 4<= pos <= 7: - procTab[i].grid(row=12, column=pos-3, sticky=W) - if pos >= 8: - procTab[i].grid(row=13, column=pos-7, sticky=W) - pos=pos+1 - procTab[i].select() -# set cuts row 14 - cutLabel = Label(self, bg="green", text="Cut (mm)") - - self.cutVar=DoubleVar() - self.cutVar.set(1.) - cut = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=10., tickinterval=1., resolution=0.005, variable=self.cutVar, digits=5 ) - cutLabel.grid(row=14, column=0, sticky=W) - cut.grid(row=14, column=1, columnspan=5, sticky=W) - -# set mag field row 15 - magLabel = Label(self, bg="green", text="Magnetic (T)") - - self.magVar=DoubleVar() - self.magVar.set(0.) - mag = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=5., tickinterval=1., resolution=0.1, variable=self.magVar, digits=3 ) - magLabel.grid(row=15, column=0, sticky=W) - mag.grid(row=15, column=1, columnspan=5, sticky=W) - - -# viewer selection row=16 - viewerLabel = Label(self, bg="green", text="Viewer") - viewerLabel.grid(row=16, column=0, sticky=W) - self.viewerVar = StringVar() - self.viewerVar.set("") - stateOfViewer = {"OpenGL":"normal", "VRML":"normal", "Wired":"normal"} - if vrmlViewer is None: stateOfViewer["VRML"] = "disabled" - if heprepViewer is None: stateOfViewer["Wired"] = "disabled" - viewers = { } - pos=1 - for i in ("OpenGL", "VRML", "Wired"): - viewers[i] = Radiobutton(self, text=i, variable=self.viewerVar, value=i, command=self.cmd_viewer, state=stateOfViewer[i]) - viewers[i].grid(row=16, column=pos, sticky=W) - pos=pos+1 - - -#Geant4 command entry row = 17 - g4comLabel = Label(self, text="Geant4 command", bg="orange") - self.g4commandVar = StringVar() - commandEntry = Entry(self, textvariable=self.g4commandVar, width=15) - self.g4commandVar.set("/vis/viewer/zoom 1.2") - comBut = Button(self, bg="orange", text="Execute", command=self.cmd_g4command) - g4comLabel.grid(row=17, column=0, sticky=W) - commandEntry.grid(row=17, column=1, columnspan=3, sticky=E+W) - comBut.grid(row=17, column=5) - -#exit row = 0 - exitBut = Button(self, bg="red", text="End all", command=sys.exit) - exitBut.grid(row=0, column=5, sticky=W) - -#on Run butto do... - def cmd_beamOn(self): - exN03geom.SetNbOfLayers(self.layerVar.get()) - exN03geom.SetAbsorberMaterial(self.absorbermaterialVar.get()) - exN03geom.SetAbsorberThickness(self.absorberthickVar.get() * mm/2.0) - exN03geom.SetGapMaterial(self.gapmaterialVar.get()) - exN03geom.SetGapThickness(self.gapthickVar.get() * mm/2.0) - exN03geom.SetCalorSizeYZ(self.calorsizeYZVar.get() * mm) - position = -self.layerVar.get()*(self.absorberthickVar.get() + self.gapthickVar.get())*1.2 - - exN03geom.UpdateGeometry() - exN03PL.SetDefaultCutValue(self.cutVar.get() * mm) - exN03PL.SetCutsWithDefault() - exN03geom.SetMagField(self.magVar.get() * tesla) - - print "Now geometry updated" - - - self.cmd_particle(self.particleVar.get()) - self.cmd_energy(self.energyVar.get()) - - print position - - eventNum = self.eventVar.get() - for i in range(eventNum): - - pg.SetParticlePosition(G4ThreeVector(position*mm, (i-eventNum/2)*5.*mm, 0.*cm)) - gRunManager.BeamOn(1) - sleep(0.01) - gApplyUICommand("/vis/viewer/update") - - def cmd_setProcess(self): - for i in self.processList: - if self.processVar[i].get() == 0: - gProcessTable.SetProcessActivation(i, 0) - print "Process " + i + " inactivated" - else: - gProcessTable.SetProcessActivation(i, 1) - print "Process " + i + " activated" - - def cmd_g4command(self): - gApplyUICommand(self.g4commandVar.get()) - - def cmd_particle(self, particle): - gApplyUICommand("/gun/particle " + particle) - - - def cmd_energy(self, penergy): - gApplyUICommand("/gun/energy " + penergy + " MeV") - - - def cmd_viewer(self): - if self.viewerVar.get() == "OpenGL": - gApplyUICommand("/vis/viewer/select oglsxviewer") - gApplyUICommand("/vis/scene/add/trajectories") - - gApplyUICommand("/tracking/storeTrajectory 1") - gApplyUICommand("/vis/scene/endOfEventAction accumulate") - gApplyUICommand("/vis/scene/endOfRunAction accumulate") - - if self.viewerVar.get() == "VRML": - gApplyUICommand("/vis/viewer/select vrmlviewer") - gApplyUICommand("/vis/scene/add/trajectories") - - gApplyUICommand("/tracking/storeTrajectory 1") - gApplyUICommand("/vis/scene/endOfEventAction accumulate") - gApplyUICommand("/vis/scene/endOfRunAction accumulate") - - if self.viewerVar.get() == "Wired": - gApplyUICommand("/vis/viewer/select wired") - gApplyUICommand("/vis/scene/add/trajectories") - - gApplyUICommand("/tracking/storeTrajectory 1") - gApplyUICommand("/vis/scene/endOfEventAction accumulate") - gApplyUICommand("/vis/scene/endOfRunAction accumulate") - - if self.g4pipe == 0: - Popen(heprepViewer + " -file " + heprepDir + "/" + heprepName +".heprep", shell=True) - self.g4pipe = 1 - - - def cmd_expand(self): - gApplyUICommand("/vis/viewer/zoom 1.2") - - def cmd_pan(self): - gApplyUICommand("/vis/viewer/pan " + self.panXYVar.get() + " " + " mm") - - - def cmd_shrink(self): - gApplyUICommand("/vis/viewer/zoom 0.8") - - - - def __init__(self, master=None): - Frame.__init__(self, master) - self.init() - self.grid() - - -app = App() -app.mainloop() diff --git a/environments/g4py/examples/education/lesson2/python3/ExN03.py b/environments/g4py/examples/education/lesson2/python3/ExN03.py deleted file mode 100755 index b747960adc..0000000000 --- a/environments/g4py/examples/education/lesson2/python3/ExN03.py +++ /dev/null @@ -1,426 +0,0 @@ -#!/usr/bin/python3 -# ================================================================== -# python script for Geant4Py -# -# ExN03 : geant4/examples/novice/N03 -# using site-module packages -# ================================================================== -from Geant4 import * -import g4py.Qmaterials, g4py.NISTmaterials -import g4py.ExN03geom -import g4py.ExN03pl -import g4py.ParticleGun, g4py.MedicalBeam -import sys -from time import * -from subprocess import * -import os - -# ================================================================== -# main -# ================================================================== -# ------------------------------------------------------------------ -# randum number -# ------------------------------------------------------------------ -rand_engine= Ranlux64Engine() -HepRandom.setTheEngine(rand_engine) -HepRandom.setTheSeed(20050830) - -# ------------------------------------------------------------------ -# setup for materials -# ------------------------------------------------------------------ - -# NIST materials -#g4py.NISTmaterials.Construct() - -# ------------------------------------------------------------------ -# setup for geometry -# ------------------------------------------------------------------ -# normal way for constructing user geometry - - -exN03geom= g4py.ExN03geom.ExN03DetectorConstruction() -gRunManager.SetUserInitialization(exN03geom) - -# 2nd way, short-cut way - -#g4py.ExN01geom.Construct() -#g4py.ExN03geom.Construct() - -# magnetic field -#exN03geom.SetMagField(0.1 * tesla) - -# ------------------------------------------------------------------ -# setup for physics list -# ------------------------------------------------------------------ -# normal way for constructing user physics list -exN03PL= g4py.EMSTDpl.PhysicsListEMstd() -gRunManager.SetUserInitialization(exN03PL) - -# 2nd way, short-cut way -#g4py.ExN01pl.Construct() -#g4py.EMSTDpl.Construct() - -# ------------------------------------------------------------------ -# setup for primary generator action -# ------------------------------------------------------------------ -# normal way for constructing user physics list -#pgPGA= g4py.ParticleGun.ParticleGunAction() -#gRunManager.SetUserAction(pgPGA) -#pg= pgPGA.GetParticleGun() - -# 2nd way, short-cut way -pg= g4py.ParticleGun.Construct() - -# set parameters of particle gun -pg.SetParticleByName("e-") -pg.SetParticleEnergy(50.*MeV) -pg.SetParticlePosition(G4ThreeVector(-40.,0.,0.)*cm) -pg.SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)) - -# medical beam -#beam= MedicalBeam.Construct() - -# ------------------------------------------------------------------ -# go... -# ------------------------------------------------------------------ -gRunManager.Initialize() - -# beamOn -#gRunManager.BeamOn(3) - - -#TEST -#gProcessTable.SetProcessActivation("msc", 0) -#gProcessTable.SetProcessActivation("conv", 0) -#gProcessTable.SetProcessActivation("eBrem", 0) -#gProcessTable.SetProcessActivation("eIoni", 0) -#gProcessTable.SetProcessActivation("annihil", 0) - - -# visualization -# OGLSX, VRML and HEPREP sceneHandlers are all created with names -gApplyUICommand("/vis/sceneHandler/create OGLSX OGLSX") -gApplyUICommand("/vis/sceneHandler/create VRML2FILE VRML") -gApplyUICommand("/vis/sceneHandler/create HepRepFile HEPREP") - -# OGLSX is the default so, viewer is created and volume is drawn -gApplyUICommand("/vis/viewer/create OGLSX oglsxviewer") -gApplyUICommand("/vis/drawVolume") -gApplyUICommand("/vis/scene/add/trajectories") - -gApplyUICommand("/tracking/storeTrajectory 1") -gApplyUICommand("/vis/scene/endOfEventAction accumulate") -gApplyUICommand("/vis/scene/endOfRunAction accumulate") -gApplyUICommand("/vis/viewer/select oglsxviewer") - -# viewers VRML and Wired are tested by their envs vars -# if their envs var are set, then viewers are created and drawVolume - -global heprepViewer, heprepDir, heprepName -heprepViewer = os.environ.get("G4HEPREPFILE_VIEWER") -heprepDir = os.environ.get("G4HEPREPFILE_DIR") -heprepName = os.environ.get("G4HEPREPFILE_NAME") -if heprepViewer is not None: - gApplyUICommand("/vis/viewer/create HEPREP wired") - gApplyUICommand("/vis/drawVolume") - -# VRML viewers name is user defined -vrmlDir = os.environ.get("G4VRML_DEST_DIR") -vrmlViewer = os.environ.get("G4VRMLFILE_VIEWER") - -if vrmlViewer is not None: - gApplyUICommand("/vis/viewer/create VRML vrmlviewer") - gApplyUICommand("/vis/drawVolume") - - - -# creating widgets using grid layout - -from tkinter import * - -class App(Frame): - - g4pipe = 0 - - def init(self): - -#title and header row=0, 1 - title = Label(self, text="exampleN03") - title.grid(row=0, column=1, columnspan=3) - header = Label(self, text="empowered by \n Geant4Py") - header.grid(row=1, column=1, columnspan=3) -# number of layers - layerLabel = Label(self, bg="green", text="No of layers") - self.layerVar=IntVar() - self.layerVar.set(10) - layer = Scale(self, orient=HORIZONTAL, length=400, from_=0, to=10, tickinterval=1, resolution=1, variable=self.layerVar ) - layerLabel.grid(row=2, column=0, sticky=W) - layer.grid(row=2, column=1, columnspan=5, sticky=W) - -#absorber material selection row=3 - absorbermaterialLabel = Label(self, bg="green", text="Absorber Material") - absorbermaterialLabel.grid(row=3, column=0, sticky=W) - self.absorbermaterialVar = StringVar() - self.absorbermaterialVar.set("Lead") - ra1 = { } - pos=1 - for i in ("Aluminium", "Lead"): - ra1[i] = Radiobutton(self, text=i, variable=self.absorbermaterialVar, value=i) - ra1[i].grid(row=3, column=pos, sticky=W) - pos=pos+1 - -#absorber thickness row=4 - absorberthickLabel = Label(self, bg="green", text="Thickness (mm)") - self.absorberthickVar = DoubleVar() - self.absorberthickVar.set(10.0) - absorberthick = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=100., resolution=0.05, tickinterval=10.0, digits=4, variable=self.absorberthickVar) - absorberthickLabel.grid(row=4, column=0, sticky=W) - absorberthick.grid(row=4, column=1, columnspan=5, sticky=W) - - -#gap material selection row=5 - gapmaterialLabel = Label(self, bg="green", text="Gap Material") - gapmaterialLabel.grid(row=5, column=0, sticky=W) - self.gapmaterialVar = StringVar() - self.gapmaterialVar.set("liquidArgon") - ra2 = { } - pos=1 - for i in ("liquidArgon","Scintillator", "Air", "Aerogel", "Galactic" ): - ra2[i] = Radiobutton(self, text=i, variable=self.gapmaterialVar, value=i) - ra2[i].grid(row=5, column=pos, sticky=W) - pos=pos+1 - -#gap thickness row=6 - gapthickLabel = Label(self, bg="green", text="Thickness (mm)") - self.gapthickVar = DoubleVar() - self.gapthickVar.set(5.0) - gapthick = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=100., resolution=0.05, tickinterval=10.0, digits=4, variable=self.gapthickVar) - gapthickLabel.grid(row=6, column=0, sticky=W) - gapthick.grid(row=6, column=1, columnspan=5, sticky=W) - -#calorSizeYZ row=7 - calorsizeYZLabel = Label(self, bg="green", text="SizeYZ (mm)") - self.calorsizeYZVar = DoubleVar() - self.calorsizeYZVar.set(100.0) - calorsizeYZ = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=200., resolution=0.05, tickinterval=20.0, digits=4, variable=self.calorsizeYZVar) - calorsizeYZLabel.grid(row=7, column=0, sticky=W) - calorsizeYZ.grid(row=7, column=1, columnspan=5, sticky=W) - - -#particle row=8 - particleLabel = Label(self, bg="green", text="Particle") - particleLabel.grid(row=8, column=0, sticky=W) - self.particleVar = StringVar() - self.particleVar.set("e-") - ra1 = { } - pos1=1 - for i in ("proton", "gamma", "e-", "e+", "mu-", "mu+"): - ra1[i] = Radiobutton(self, text=i, variable=self.particleVar, value=i) - ra1[i].grid(row=8, column=pos1, sticky=W) - pos1=pos1+1 - -#energy row=9 - energyLabel = Label(self, bg="green", text="Energy (MeV)") - - self.energyVar=StringVar() - self.energyVar.set(50) - energy = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=1000., tickinterval=100.0, resolution=0.1, variable=self.energyVar, digits=5 ) - energyLabel.grid(row=9, column=0, sticky=W) - energy.grid(row=9, column=1, columnspan=5, sticky=W) - -#number of event row=10 - eventLabel = Label(self, bg="green", text="Events") - self.eventVar=IntVar() - self.eventVar.set(3) - event = Scale(self, orient=HORIZONTAL, length=400, from_=0, to=100, tickinterval=10, resolution=1, variable=self.eventVar ) - eventLabel.grid(row=10, column=0, sticky=W) - event.grid(row=10, column=1, columnspan=5, sticky=W) - -#start a run button row=0 - startBut = Button(self, bg="orange", text="Start a run", command=self.cmd_beamOn) - startBut.grid(row=0, column=0, sticky=W) - -#Zoom in/out Pan X Y row=13 -# visLabel = Label(self, text="viewer", bg="orange") -# expandBut = Button(self, text="Zoom in", command=self.cmd_expand) -# shrinkBut = Button(self, text="Zoom out", command=self.cmd_shrink) -# visLabel.grid(row=13, column=0, sticky=W) -# expandBut.grid(row=13, column=1, sticky=W) -# shrinkBut.grid(row=13, column=2, sticky=W) -# panLabel = Label(self, text="Pan X Y(mm)") -# self.panXYVar = StringVar() -# panXYEnt = Entry(self, textvariable=self.panXYVar, width=6) -# panBut = Button(self, bg="orange", text="OK", command=self.cmd_pan) -# panLabel.grid(row=13, column=3, sticky=W) -# panXYEnt.grid(row=13, column=4) -# panBut.grid(row=13, column=5) - -# process activate row 11 - 13 - processLabel=Label(self, text="Process on/off", bg="green") - processLabel.grid(row=11, column=0, sticky=W) - procTab = {} - - self.processList = ["phot", "compt", "conv", "msc", "eIoni", "eBrem", "annihil","muIoni", "muBrems", "hIoni"] - pos=1 - self.processVar = {} - for i in self.processList: - self.processVar[i] = IntVar() - procTab[i] = Checkbutton(self, text=i, variable=self.processVar[i], command=self.cmd_setProcess) - if pos <= 3: - procTab[i].grid(row=11, column=pos, sticky=W) - if 4<= pos <= 7: - procTab[i].grid(row=12, column=pos-3, sticky=W) - if pos >= 8: - procTab[i].grid(row=13, column=pos-7, sticky=W) - pos=pos+1 - procTab[i].select() -# set cuts row 14 - cutLabel = Label(self, bg="green", text="Cut (mm)") - - self.cutVar=DoubleVar() - self.cutVar.set(1.) - cut = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=10., tickinterval=1., resolution=0.005, variable=self.cutVar, digits=5 ) - cutLabel.grid(row=14, column=0, sticky=W) - cut.grid(row=14, column=1, columnspan=5, sticky=W) - -# set mag field row 15 - magLabel = Label(self, bg="green", text="Magnetic (T)") - - self.magVar=DoubleVar() - self.magVar.set(0.) - mag = Scale(self, orient=HORIZONTAL, length=400, from_=0., to=5., tickinterval=1., resolution=0.1, variable=self.magVar, digits=3 ) - magLabel.grid(row=15, column=0, sticky=W) - mag.grid(row=15, column=1, columnspan=5, sticky=W) - - -# viewer selection row=16 - viewerLabel = Label(self, bg="green", text="Viewer") - viewerLabel.grid(row=16, column=0, sticky=W) - self.viewerVar = StringVar() - self.viewerVar.set("") - stateOfViewer = {"OpenGL":"normal", "VRML":"normal", "Wired":"normal"} - if vrmlViewer is None: stateOfViewer["VRML"] = "disabled" - if heprepViewer is None: stateOfViewer["Wired"] = "disabled" - viewers = { } - pos=1 - for i in ("OpenGL", "VRML", "Wired"): - viewers[i] = Radiobutton(self, text=i, variable=self.viewerVar, value=i, command=self.cmd_viewer, state=stateOfViewer[i]) - viewers[i].grid(row=16, column=pos, sticky=W) - pos=pos+1 - - -#Geant4 command entry row = 17 - g4comLabel = Label(self, text="Geant4 command", bg="orange") - self.g4commandVar = StringVar() - commandEntry = Entry(self, textvariable=self.g4commandVar, width=15) - self.g4commandVar.set("/vis/viewer/zoom 1.2") - comBut = Button(self, bg="orange", text="Execute", command=self.cmd_g4command) - g4comLabel.grid(row=17, column=0, sticky=W) - commandEntry.grid(row=17, column=1, columnspan=3, sticky=E+W) - comBut.grid(row=17, column=5) - -#exit row = 0 - exitBut = Button(self, bg="red", text="End all", command=sys.exit) - exitBut.grid(row=0, column=5, sticky=W) - -#on Run butto do... - def cmd_beamOn(self): - exN03geom.SetNbOfLayers(self.layerVar.get()) - exN03geom.SetAbsorberMaterial(self.absorbermaterialVar.get()) - exN03geom.SetAbsorberThickness(self.absorberthickVar.get() * mm/2.0) - exN03geom.SetGapMaterial(self.gapmaterialVar.get()) - exN03geom.SetGapThickness(self.gapthickVar.get() * mm/2.0) - exN03geom.SetCalorSizeYZ(self.calorsizeYZVar.get() * mm) - position = -self.layerVar.get()*(self.absorberthickVar.get() + self.gapthickVar.get())*1.2 - - exN03geom.UpdateGeometry() - exN03PL.SetDefaultCutValue(self.cutVar.get() * mm) - exN03PL.SetCutsWithDefault() - exN03geom.SetMagField(self.magVar.get() * tesla) - - print("Now geometry updated") - - - self.cmd_particle(self.particleVar.get()) - self.cmd_energy(self.energyVar.get()) - - print(position) - - eventNum = self.eventVar.get() - for i in range(eventNum): - - pg.SetParticlePosition(G4ThreeVector(position*mm, (i-eventNum/2)*5.*mm, 0.*cm)) - gRunManager.BeamOn(1) - sleep(0.01) - gApplyUICommand("/vis/viewer/update") - - def cmd_setProcess(self): - for i in self.processList: - if self.processVar[i].get() == 0: - gProcessTable.SetProcessActivation(i, 0) - print("Process " + i + " inactivated") - else: - gProcessTable.SetProcessActivation(i, 1) - print("Process " + i + " activated") - - def cmd_g4command(self): - gApplyUICommand(self.g4commandVar.get()) - - def cmd_particle(self, particle): - gApplyUICommand("/gun/particle " + particle) - - - def cmd_energy(self, penergy): - gApplyUICommand("/gun/energy " + penergy + " MeV") - - - def cmd_viewer(self): - if self.viewerVar.get() == "OpenGL": - gApplyUICommand("/vis/viewer/select oglsxviewer") - gApplyUICommand("/vis/scene/add/trajectories") - - gApplyUICommand("/tracking/storeTrajectory 1") - gApplyUICommand("/vis/scene/endOfEventAction accumulate") - gApplyUICommand("/vis/scene/endOfRunAction accumulate") - - if self.viewerVar.get() == "VRML": - gApplyUICommand("/vis/viewer/select vrmlviewer") - gApplyUICommand("/vis/scene/add/trajectories") - - gApplyUICommand("/tracking/storeTrajectory 1") - gApplyUICommand("/vis/scene/endOfEventAction accumulate") - gApplyUICommand("/vis/scene/endOfRunAction accumulate") - - if self.viewerVar.get() == "Wired": - gApplyUICommand("/vis/viewer/select wired") - gApplyUICommand("/vis/scene/add/trajectories") - - gApplyUICommand("/tracking/storeTrajectory 1") - gApplyUICommand("/vis/scene/endOfEventAction accumulate") - gApplyUICommand("/vis/scene/endOfRunAction accumulate") - - if self.g4pipe == 0: - Popen(heprepViewer + " -file " + heprepDir + "/" + heprepName +".heprep", shell=True) - self.g4pipe = 1 - - - def cmd_expand(self): - gApplyUICommand("/vis/viewer/zoom 1.2") - - def cmd_pan(self): - gApplyUICommand("/vis/viewer/pan " + self.panXYVar.get() + " " + " mm") - - - def cmd_shrink(self): - gApplyUICommand("/vis/viewer/zoom 0.8") - - - - def __init__(self, master=None): - Frame.__init__(self, master) - self.init() - self.grid() - - -app = App() -app.mainloop() diff --git a/environments/g4py/examples/emplot/EmPlot.py b/environments/g4py/examples/emplot/EmPlot.py deleted file mode 100755 index 2c5ba5e1df..0000000000 --- a/environments/g4py/examples/emplot/EmPlot.py +++ /dev/null @@ -1,121 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# An example of ploting by EmCalculator -# -# Plotting photon cross sections and stopping power with ROOT -# ================================================================== -from Geant4 import * -import g4py.NISTmaterials -import g4py.ezgeom - -# ================================================================== -# geometry setup -# ================================================================== - -# ------------------------------------------------------------------ -# setup -# ------------------------------------------------------------------ -def Configure(): - g4py.NISTmaterials.Construct() - g4py.ezgeom.Construct() - -# ------------------------------------------------------------------ -# constructing geometry -# ------------------------------------------------------------------ -def SetMaterial(material_name): - material= gNistManager.FindOrBuildMaterial(material_name) - g4py.ezgeom.SetWorldMaterial(material) - - -# ================================================================== -# plot by ROOT -# ================================================================== -import ROOT -from math import log, log10, sqrt, ceil, floor -from array import array - -# ------------------------------------------------------------------ -# caclculate plot range -# ------------------------------------------------------------------ -def plot_range(xmin, xmax, xmargin=0.): - xmaxlog= 10 - xminlog= -10 - - if(xmax!=0.): - xmaxlog= log10(xmax) - - if(xmin!=0): - xminlog= log10(xmin) - - ixmaxlog= xmaxlog+0.5 - ixminlog= xminlog-0.5-xmargin - - return [10**ixminlog, 10**ixmaxlog] - -# ------------------------------------------------------------------ -# ROOT init -# ------------------------------------------------------------------ -def init_root(): - ROOT.gROOT.Reset() - - # plot style - ROOT.gStyle.SetTextFont(82) - - ROOT.gStyle.SetTitleFont(82, "X") - ROOT.gStyle.SetTitleFontSize(0.04) - ROOT.gStyle.SetLabelFont(82, "X") - ROOT.gStyle.SetTitleFont(82, "Y") - ROOT.gStyle.SetLabelFont(82, "Y") - - #ROOT.gStyle.SetOptTitle(0) - ROOT.gStyle.SetErrorX(0) - - canvas= ROOT.TCanvas("g4plot", "g4plot", 620, 30, 600, 600) - - canvas.SetLogy() - canvas.SetLogx() - canvas.SetGrid() - - return canvas - -# ------------------------------------------------------------------ -# do a plot -# ------------------------------------------------------------------ -def make_plot(xlist, user_title, axis_titile, q_super_impose=0): - - ekin_array, y_array = array('d'), array('d') - - for x in xlist: - ekin_array.append(x[0]) - y_array.append(x[1]) - - # plot range - xmin= min(ekin_array) - xmax= max(ekin_array) - xrange= plot_range(xmin, xmax) - - ymin= min(y_array) - ymax= max(y_array) - yrange= plot_range(ymin, ymax, 2) - - if(q_super_impose==0): - htit= user_title - global frame - frame= ROOT.TH1F("dumy", htit, 1, xrange[0], xrange[1]); - frame.SetMinimum(yrange[0]); - frame.SetMaximum(yrange[1]); - frame.SetXTitle("Kinetic Energy (MeV)") - frame.GetXaxis().SetLabelSize(0.025) - frame.GetXaxis().SetTitleSize(0.03) - frame.SetYTitle(axis_titile) - frame.GetYaxis().SetLabelSize(0.025) - frame.GetYaxis().SetTitleSize(0.03) - frame.SetStats(0) - frame.Draw() - - plot= ROOT.TGraph(len(ekin_array), ekin_array, y_array) - plot.Draw("L") - plot.SetLineColor(q_super_impose+1) - - return plot - diff --git a/environments/g4py/examples/emplot/emcalc_gui.py b/environments/g4py/examples/emplot/emcalc_gui.py deleted file mode 100755 index f843c2d2f1..0000000000 --- a/environments/g4py/examples/emplot/emcalc_gui.py +++ /dev/null @@ -1,364 +0,0 @@ -#!/usr/bin/env python -# -*- coding:utf-8 -*- - -# ================================================================== -# EM Calculator (GTK) -# -# Koichi Murakami (KEK/CRC) -# ================================================================== -from Geant4 import * -import g4py.EMSTDpl -import g4py.emcalculator -import EmPlot -import ROOT -import sys -from cStringIO import StringIO - -# ================================================================== -# Geant4 -# ================================================================== -def g4_configure() : - EmPlot.Configure() - g4py.EMSTDpl.Construct() - -# ------------------------------------------------------------------- -# plot for chaged particles -# ------------------------------------------------------------------- -def plot_charged(material, pname) : - EmPlot.SetMaterial(material) - - # initialize G4 kernel - gRunManager.Initialize() - gRunManagerKernel.RunInitialization() - - # energy - elist= [] - for n in range(-3, 3): - for i in range(10,99): - elist.append(i/10.*10.**n *MeV) - - # calculate stopping power - global mycout - mycout.close() - sys.stdout = mycout = StringIO() - dedx_list= g4py.emcalculator.CalculateDEDX(pname, material, elist, 1) - xlist_tot=[] - xlist_ioni=[] - xlist_brems=[] - - for x in dedx_list: - xlist_tot.append((x[0], x[1]["tot"]/(MeV*cm2/g))) - xlist_ioni.append((x[0], x[1]["ioni"]/(MeV*cm2/g))) - xlist_brems.append((x[0], x[1]["brems"]/(MeV*cm2/g))) - - # make plot - global myCanvas, aplot, bplot, cplot - myCanvas = EmPlot.init_root() - aplot = EmPlot.make_plot(xlist_tot, pname+" Stopping Power ("+material+")", - "dE/dX (MeV cm^{2}/g)") - bplot = EmPlot.make_plot(xlist_ioni, "Stopping Power ("+material+")", - "dE/dX (MeV cm^{2}/g)", 1) - cplot = EmPlot.make_plot(xlist_brems, "Stopping Power ("+material+")", - "dE/dX (MeV cm^{2}/g)", 3) - myCanvas.SaveAs("/tmp/sp.png") - - -# ------------------------------------------------------------------- -# plot for gamma -# ------------------------------------------------------------------- -def plot_gamma(material) : - EmPlot.SetMaterial(material) - - # initialize G4 kernel - gRunManager.Initialize() - gRunManagerKernel.RunInitialization() - - # energy - elist= [] - for n in range(-3, 4): - for i in range(10,99): - elist.append(i/10.*10.**n *MeV) - - # calculate cross sections - global mycout - mycout.close() - sys.stdout = mycout = StringIO() - xsection_list= g4py.emcalculator.CalculatePhotonCrossSection(material, - elist, 1) - xlist_tot=[] - xlist_comp=[] - xlist_pe=[] - xlist_conv=[] - for x in xsection_list: - xlist_tot.append((x[0]/MeV, x[1]["tot"]/(cm2/g))) - xlist_comp.append((x[0]/MeV, x[1]["compt"]/(cm2/g))) - xlist_pe.append((x[0]/MeV, x[1]["phot"]/(cm2/g))) - xlist_conv.append((x[0]/MeV, x[1]["conv"]/(cm2/g))) - - # make plots - global myCanvas, aplot, bplot, cplot, dplot - myCanvas = EmPlot.init_root() - aplot = EmPlot.make_plot(xlist_tot, "Photon Cross Section ("+material+")", - "Cross Section (cm^{2}/g)") - bplo = EmPlot.make_plot(xlist_comp, "Photon Cross Section ("+material+")", - "Cross Section (cm^{2}/g)", 1) - cplot = EmPlot.make_plot(xlist_pe, "Photon Cross Section ("+material+")", - "Cross Section (cm^{2}/g)", 7) - dplot = EmPlot.make_plot(xlist_conv, "Photon Cross Section ("+material+")", - "Cross Section (cm^{2}/g)", 3) - myCanvas.SaveAs("/tmp/cs.png") - - -# ================================================================== -# GUI -# ================================================================== -import pygtk -pygtk.require20() -import gtk - -# ------------------------------------------------------------------- -# main window -# ------------------------------------------------------------------- -class MainWindow : - def __init__(self) : - self.__margin = 8 - - # main window - self.mainwindow = gtk.Window(gtk.WINDOW_TOPLEVEL) - self.mainwindow.set_title('Em Calculator') - self.mainwindow.set_position(gtk.WIN_POS_MOUSE) - self.mainwindow.set_default_size(500, 300) - self.mainwindow.connect('delete-event', lambda w,d: gtk.main_quit()) - self.mainwindow.connect('destroy-event',lambda w,d: gtk.main_quit()) - - # components - header = self.create_header() - - particle_frame = self.create_particle_frame() - particle_frame.set_border_width(self.__margin) - - material_frame = self.create_material_frame() - material_frame.set_border_width(self.__margin) - - separator = gtk.HSeparator() - - action_box = self.create_action_box() - action_box.set_border_width(self.__margin) - - # layout - vbox = gtk.VBox() - vbox.pack_start(header) - vbox.pack_start(particle_frame) - vbox.pack_start(material_frame) - vbox.pack_start(separator) - vbox.pack_start(action_box) - - self.mainwindow.add(vbox) - self.mainwindow.show_all() - - # text view - self.textview = TextView() - - # error dialog - self.error_dialog = gtk.MessageDialog(parent=self.mainwindow, - buttons=gtk.BUTTONS_CLOSE, type=gtk.MESSAGE_ERROR, - message_format="Material is not defined in G4Nist materials") - self.error_dialog.connect("response", self.cb_close_dialog) - - def create_header(self) : - hbox = gtk.HBox() - - label = gtk.Label() - label.set_markup("EM Calculator") - hbox.pack_start(label) - - label = gtk.Label() - text = """ - -Shows - - stopping power for e/mu/proton - - cross sections for gamma -""" - label.set_markup(text) - hbox.pack_start(label) - - return hbox - - def create_particle_frame(self) : - frame = gtk.Frame("Particle") - - hbox = gtk.HBox() - frame.add(hbox) - hbox.set_border_width(self.__margin) - - button = gtk.RadioButton(None, "electron") - button.connect("toggled", self.cb_select_particle, "e-") - hbox.pack_start(button, True, True, 0) - button.show() - self.particle = "e-" - - button = gtk.RadioButton(button, "positron") - button.connect("toggled", self.cb_select_particle, "e+") - hbox.pack_start(button, True, True, 0) - button.show() - - button = gtk.RadioButton(button, "mu-") - button.connect("toggled", self.cb_select_particle, "mu-") - hbox.pack_start(button, True, True, 0) - button.show() - - button = gtk.RadioButton(button, "mu+") - button.connect("toggled", self.cb_select_particle, "mu+") - hbox.pack_start(button, True, True, 0) - button.show() - - button = gtk.RadioButton(button, "proton") - button.connect("toggled", self.cb_select_particle, "proton") - hbox.pack_start(button, True, True, 0) - button.show() - - button = gtk.RadioButton(button, "gamma") - button.connect("toggled", self.cb_select_particle, "gamma") - hbox.pack_start(button, True, True, 0) - button.show() - - return frame - - def create_material_frame(self) : - frame = gtk.Frame("Material (G4Nist)") - - hbox = gtk.HBox() - frame.add(hbox) - hbox.set_border_width(self.__margin) - - self.material_list = [ "G4_Al", "G4_Si", "G4_Ar", "G4_Cu", "G4_Fe", - "G4_Ge", "G4_Ag", "G4_W", "G4_Au", "G4_Pb", - "G4_AIR", "G4_Galactic", "G4_WATER", "G4_CESIUM_IODIDE", - "G4_SODIUM_IODIDE", "G4_PLASTIC_SC_VINYLTOLUENE", - "G4_MYLAR" ] - - self.material_combo = gtk.combo_box_entry_new_text() - hbox.pack_start(self.material_combo) - for name in self.material_list : - self.material_combo.append_text(name) - self.material_combo.set_active(0) - self.material = self.material_list[0] - self.material_combo.connect("changed", self.cb_select_material) - - return frame - - def create_action_box(self) : - box = gtk.HButtonBox() - box.set_layout(gtk.BUTTONBOX_END) - box.set_spacing(self.__margin) - - exec_button = gtk.Button(stock = gtk.STOCK_EXECUTE) - text_button = gtk.Button("Text View") - quit_button = gtk.Button(stock = gtk.STOCK_QUIT) - box.add(exec_button) - box.add(text_button) - box.add(quit_button) - - exec_button.connect("clicked", self.cb_show_plot) - text_button.connect("clicked", self.cb_show_textview) - quit_button.connect("clicked", lambda w: gtk.main_quit()) - - return box - - # callbacks - def cb_show_textview(self, widget, data=None) : - window = self.textview.get_window() - window.show_all() - - def cb_select_particle(self, widget, data=None) : - self.particle = data - - def cb_select_material(self, widget, data=None) : - entry = widget.get_child() - self.material = entry.get_text() - - def cb_show_plot(self, widget, data=None) : - g4mate = gNistManager.FindOrBuildMaterial(self.material) - if (g4mate == None) : - self.error_dialog.show_all() - return - - if (self.material_list.count(self.material) == 0) : - self.material_combo.append_text(self.material) - - if (self.particle == "gamma" ) : - plot_gamma(self.material) - else : - plot_charged(self.material, self.particle) - self.textview.textbuffer.set_text(mycout.getvalue()) - - def cb_close_dialog(self, widget, data=None) : - widget.hide_all() - - -# ------------------------------------------------------------------- -# text view -# ------------------------------------------------------------------- -class TextView : - def __init__(self) : - self.__margin = 8 - self.text_window = gtk.Window(gtk.WINDOW_TOPLEVEL) - self.text_window.set_title('Value with Text') - self.text_window.set_position(gtk.WIN_POS_MOUSE) - self.text_window.set_default_size(500, 300) - - vbox = gtk.VBox() - self.text_window.add(vbox) - - sw = gtk.ScrolledWindow() - sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) - sw.set_border_width(self.__margin) - vbox.pack_start(sw) - - textview = gtk.TextView() - self.textbuffer = textview.get_buffer() - sw.add(textview) - - hbox = gtk.HButtonBox() - hbox.set_layout(gtk.BUTTONBOX_END) - hbox.set_border_width(self.__margin) - vbox.pack_start(hbox, expand=False) - - close_button = gtk.Button(stock = gtk.STOCK_CLOSE) - close_button.connect("clicked", self.cb_hide_window) - hbox.add(close_button) - - def get_window(self) : - return self.text_window - - def cb_hide_window(self, widget, data=None) : - self.text_window.hide_all() - return False - - -# ================================================================== -# main -# ================================================================== -def main() : - SetG4PyCoutDestination() - - default_stdout = sys.stdout - global mycout - sys.stdout = mycout = StringIO() - - # G4 setup - g4_configure() - - # start GUI - application = MainWindow() - gtk.main() - - gTerminate() - sys.stdout = default_stdout - - -if __name__ == "__main__": - try : - main() - except KeyboardInterrupt : - pass diff --git a/environments/g4py/examples/emplot/eplot.py b/environments/g4py/examples/emplot/eplot.py deleted file mode 100755 index 14fda70c4c..0000000000 --- a/environments/g4py/examples/emplot/eplot.py +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# An example of ploting by EmCalculator -# -# Plotting photon cross sections and stopping power -# ================================================================== -from Geant4 import * -import g4py.ExN03pl -import g4py.emcalculator -import EmPlot - -# initialize -EmPlot.Configure() - -# user physics list -g4py.ExN03pl.Construct() - -# target material -material= "G4_Cu" -EmPlot.SetMaterial(material) - -# initialize G4 kernel -gRunManager.Initialize() -gRunManagerKernel.RunInitialization() - -# energy -elist= [] -for n in range(-3, 3): - for i in range(10,99): - elist.append(i/10.*10.**n *MeV) - -# calculate stopping power -pname= "e-" -dedx_list= g4py.emcalculator.CalculateDEDX(pname, material, elist, 1) -xlist_tot=[] -xlist_ioni=[] -xlist_brems=[] - -for x in dedx_list: - xlist_tot.append((x[0], x[1]["tot"]/(MeV*cm2/g))) - xlist_ioni.append((x[0], x[1]["ioni"]/(MeV*cm2/g))) - xlist_brems.append((x[0], x[1]["brems"]/(MeV*cm2/g))) - -# make plot -myCanvas= EmPlot.init_root() -aplot= EmPlot.make_plot(xlist_tot, pname+" Stopping Power ("+material+")", - "dE/dX (MeV cm^{2}/g)") -bplot= EmPlot.make_plot(xlist_ioni, "Stopping Power ("+material+")", - "dE/dX (MeV cm^{2}/g)", 1) -cplot= EmPlot.make_plot(xlist_brems, "Stopping Power ("+material+")", - "dE/dX (MeV cm^{2}/g)", 3) - diff --git a/environments/g4py/examples/emplot/pplot.py b/environments/g4py/examples/emplot/pplot.py deleted file mode 100755 index 7a458348ad..0000000000 --- a/environments/g4py/examples/emplot/pplot.py +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# An example of ploting by EmCalculator -# -# Plotting photon cross sections and stopping power -# ================================================================== -from Geant4 import * -import g4py.ExN03pl -import g4py.emcalculator -import EmPlot - -# initialize -EmPlot.Configure() - -# user physics list -g4py.ExN03pl.Construct() - -# target material -material= "G4_Pb" -EmPlot.SetMaterial(material) - -# initialize G4 kernel -gRunManager.Initialize() -gRunManagerKernel.RunInitialization() - -# energy -elist= [] -for n in range(-3, 4): - for i in range(10,99): - elist.append(i/10.*10.**n *MeV) - - -# calculate cross sections -xsection_list= g4py.emcalculator.CalculatePhotonCrossSection(material, elist, 1) -xlist_tot=[] -xlist_comp=[] -xlist_pe=[] -xlist_conv=[] -for x in xsection_list: - xlist_tot.append((x[0]/MeV, x[1]["tot"]/(cm2/g))) - xlist_comp.append((x[0]/MeV, x[1]["compt"]/(cm2/g))) - xlist_pe.append((x[0]/MeV, x[1]["phot"]/(cm2/g))) - xlist_conv.append((x[0]/MeV, x[1]["conv"]/(cm2/g))) - -# make a plot -myCanvas= EmPlot.init_root() -aplot= EmPlot.make_plot(xlist_tot, "Photon Cross Section ("+material+")", - "Cross Section (cm^{2}/g)") -bplot= EmPlot.make_plot(xlist_comp, "Photon Cross Section ("+material+")", - "Cross Section (cm^{2}/g)", 1) -cplot= EmPlot.make_plot(xlist_pe, "Photon Cross Section ("+material+")", - "Cross Section (cm^{2}/g)", 7) -dplot= EmPlot.make_plot(xlist_conv, "Photon Cross Section ("+material+")", - "Cross Section (cm^{2}/g)", 3) - diff --git a/environments/g4py/examples/gdml/GDMLSchema/gdml.xsd b/environments/g4py/examples/gdml/GDMLSchema/gdml.xsd deleted file mode 100644 index 07b4b1a8c6..0000000000 --- a/environments/g4py/examples/gdml/GDMLSchema/gdml.xsd +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - - - - - - - - - - - Represents a single unique copy a of an associated logical volume - in geometrical hierarchy - - - - - - - - - - - - - - - - - - - - - - - - - Represents a division of the associated logical volume - in geometrical hierarchy - - - - - - - - - - - - - - Represents a top of a geometrical sub-hierarchy not placed in space - None of its children can coincide with its boundary defined by an associated solid - Two different placements of the same logical volume represent two different geometrical - hierarchies in space - - - - - - - - - - - - - - - - - - - - - - Allows to create a group of volumes bound together without a boundary - All the volumes exits inside the same virtual reference system of the assmebly volume - they belong to - When assembly volume is placed all its children follow the global transformation applied - to their assembly volume - After the assembly volume is placed its children exist as standalone placements in space - independent of each other - - - - - - - - - - - - - - - Base type for logical surfaces (for the moment only optical) - - - - - - - - - Abstract element for all solids substitution group - - - - - - Surface between two physical volumes - - - - - - - - - - - - - - - - Surface between two physical volumes - - - - - - - - - - - - - - - Definitions of a geometrical hierarchy of a set of volumes - - - - - - - - - - - - - - - - - - - - - - - - Geometry setup representing the particular geometry hierarchy by refferring to - a given volume which becomes the top level volume - - - - - - A reference to the previously defined volume - in the structure block chosen by this setup - World volumme can't be an assembly volume - - - - - - - - - - - The GDML Schema version consists of 3 digits X.Y.Z - where these mean: - X - major number, increased when major new - features or backward incompatible bug fixes - are added and means the GDML Processor is - allowed to refuse processing of such a - document if this is using the more recent - version of the GDML Schema then GDML Processor - understands - Y - minor number, increased when incremental and - backward compatible changes or improvements - are made into the GDML Schema. GDML Processor - should be able to process such a document - using higher minor version number then that of - the GDML Processor - Z - bugfix revision number, increased when fully - backward compatible changes which resolve a - problem in GDML Schema are applied - - - - - diff --git a/environments/g4py/examples/gdml/GDMLSchema/gdml_core.xsd b/environments/g4py/examples/gdml/GDMLSchema/gdml_core.xsd deleted file mode 100644 index 811e4d78f7..0000000000 --- a/environments/g4py/examples/gdml/GDMLSchema/gdml_core.xsd +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - An anonymous, local scope, value - - - - - - - An anonymous, local scope, value - - - - - - - Named (referenced), global scope, constant value - - - - - - - - - - - Named (referenced), local scope, variable value - - - - - - - - - - - An anonymous quantity, local scope, with a unit, - (possibly of a given type) quantity - - - - - - - - - - - - - Named (referenced), global scope,(possibly of a given type) quantity - - - - - - - - - - - An anonymous, 3 dimensional, local scope, vector of doubles - - - - - - - - - A bi-dimensional matrix of doubles - - - - - - - - - Named (referenced), 3 dimensional, global scope, vector of doubles - - - - - - - - - - - An anonymous, 3 dimensional, local scope, with a unit, - (possibly of a given type) quantity vector - - - - - - - - - - - - - Named (referenced), 3 dimensional, global scope, with a unit, - (possibly of a given type) quantity vector - - - - - - - - - - - Local reference to an element of a named type - - - - - - - Reference to an external file containing sub-volume information - - - - - - - - List of local references to a set of element of a named type - - - - - - - Auxiliary information like sensitive detector declaration, etc. - - - - - - diff --git a/environments/g4py/examples/gdml/GDMLSchema/gdml_define.xsd b/environments/g4py/examples/gdml/GDMLSchema/gdml_define.xsd deleted file mode 100644 index 9a72fe6715..0000000000 --- a/environments/g4py/examples/gdml/GDMLSchema/gdml_define.xsd +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - Definition block of global named constants, quantitties, expressions, - positions and rotations which may be used by name or - by a reference in scope of the current document - - - - - - - The global complex type is defined in order to reuse this defintion - in derived schemas - - - - - - - - - - - - Named constant - - - - - - - Named variable - - - - - - - Named matrix - - - - - - - Named quantity - - - - - - - Named expression, may contain other named constants, - quantities and expressions - - - - - - - Named cartesian position, default unit mm - - - - - - - Named cartesian rotation, default unit radian - - - - - - - Named cartesian rotation, default unit radian - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/environments/g4py/examples/gdml/GDMLSchema/gdml_extensions.xsd b/environments/g4py/examples/gdml/GDMLSchema/gdml_extensions.xsd deleted file mode 100644 index 4c537de559..0000000000 --- a/environments/g4py/examples/gdml/GDMLSchema/gdml_extensions.xsd +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/environments/g4py/examples/gdml/GDMLSchema/gdml_materials.xsd b/environments/g4py/examples/gdml/GDMLSchema/gdml_materials.xsd deleted file mode 100644 index bb43e6cb3f..0000000000 --- a/environments/g4py/examples/gdml/GDMLSchema/gdml_materials.xsd +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - - - - - - - Atomic mass, quantity type A, default unit g/mole - - - - - - - - - - - - Density - - - - - - - - - - - - General material properties - - - - - - General material property (const or vector) - - - - - - - - - - - - - - Radiation length - - - - - - - - - - - - - A reference to a previsouly defined named radiation length quantity value - - - - - - - Absorption length - - - - - - - - - - - - - A reference to a previsouly defined named absorption length quantity value - - - - - - - Temperature - - - - - - - - - - - - - A reference to previously defined named temperature quantity value - - - - - - - Pressure - - - - - - - - - - - - - A reference to previously defined named pressure quantity value - - - - - - - - - General material attributes - - - - Material name - - - - - Material chemical formula - - - - - Material physical state - - - - - - - - - - - - - - - Base type for materials - - - - - - - - - - - - - Materials description - - - - - - - Material related definitons of constants and quantities - In this version of schema these become visible in global scope - - - - - An isotope - - - - - A simple element or an element composed of isotopes - - - - - A composite or a mixture complex material - - - - - - - - - Exported isotope type - - - - - - - - Density quantity value - - - - - A reference to a previsouly defined named density quantity value - - - - - - - - Number of nucleons - - - - - Atomic number - - - - - - - - - Exported material element type - - - - - - - - Density quantity value - - - - - A reference to a previsouly defined named density quantity value - - - - - - An element can be defined either as a simple element or by a set - of isotopes fractions - - - - - An isotope fraction of an element where n is the actual amount - of the isotope in the element - - - - - - - - - - - - - - Number of nucleons - - - - - Atomic number - - - - - - - - - Exported material composite or mixture type - - - - - - - - - Density quantity value - - - - - A reference to a previsouly defined named density quantity value - - - - - - A complex material can be defined as a simple mixture when - its material properties are known or as a composite material - or a mixture. A composite material is defined by a set of elements - by specifying the number of atoms. - The second way is by a set of material fractions where the fractions - can be either simple elements or other complex materials. - The restriction is that one can't mix composition by atoms and fractions - at the same time. - - - - - Elements of this composite material specified as a set of local references - to already defined simple elements where value of n in each means the number of atoms - - - - - - - - - - - - Fractions of this mixture specified as a set of local references to already defined - elements or other mixtures where value of n in each means the fraction of the whole - material in the range 0.0 < n < 1.0 - - - - - - - - - - - - - - Atomic number - - - - - - - diff --git a/environments/g4py/examples/gdml/GDMLSchema/gdml_parameterised.xsd b/environments/g4py/examples/gdml/GDMLSchema/gdml_parameterised.xsd deleted file mode 100644 index 3ba4bb009a..0000000000 --- a/environments/g4py/examples/gdml/GDMLSchema/gdml_parameterised.xsd +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - - - Abstract base for parametrised dimensions - - - - - - Abstract element for substitution group - - - - - - Dimensions for parametrised Boxes. - - - - - - - - - - - - - - - - Dimensions for parametrised Trd. - - - - - - - - - - - - - - - - - - Dimensions for parametrised Trap. - - - - - - - - - - - - - - - - - - - - - - - - - Dimensions for parametrised Tubes. - - - - - - - - - - - - - - - - - - - Dimensions for parametrised Cones. - - - - - - - - - - - - - - - - - - - - - Dimensions for parametrised Spheres. - - - - - - - - - - - - - - - - - - - - Dimensions for parametrised Orbs. - - - - - - - - - - - - - - Dimensions for parametrised Torus. - - - - - - - - - - - - - - - - - - - Dimensions for parametrised Paras. - - - - - - - - - - - - - - - - - - - - Dimensions for parametrised Hypes. - - - - - - - - - - - - - - - - - - - Abstract base for parameterised placement strategies - - - - - - Abstract element for substitution group - - - - - - Parameterised volumes get created using - the tabularized position and sizes. - - - - - - - - - - - - - - - - Base type for parameterised volumes - - - - - - - - - - - - - - Holds parameteres for parameterised volumes. - - - - - - - - - diff --git a/environments/g4py/examples/gdml/GDMLSchema/gdml_replicas.xsd b/environments/g4py/examples/gdml/GDMLSchema/gdml_replicas.xsd deleted file mode 100644 index 5e45b8b11e..0000000000 --- a/environments/g4py/examples/gdml/GDMLSchema/gdml_replicas.xsd +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - Abstract base for replication placement strategies - - - - - - Abstract element for substitution group - - - - - - - - Replica volumes get created along the specified direction - starting with the first replica placed at the given position and rotated - according to the given rotation and others placed using the given distance; - If position and/or rotation is omitted the defaults will be applied, e.g. - position at the mother volume center and identity rotation; - NOTE: THE ROTATION IS APPLIED TO ALL REPLICATED VOLUMES! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Base type for replicated volumes - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/environments/g4py/examples/gdml/GDMLSchema/gdml_solids.xsd b/environments/g4py/examples/gdml/GDMLSchema/gdml_solids.xsd deleted file mode 100644 index 410744a7cd..0000000000 --- a/environments/g4py/examples/gdml/GDMLSchema/gdml_solids.xsd +++ /dev/null @@ -1,855 +0,0 @@ - - - - - - - - - - - Base solid type - - - - Length unit of all dimensions used for this instance of solid - - - - - Angle unit of angles used in definition of this solid - - - - - - - - - Base type for boolean solids - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Reflected solid: - sx, sy, sz are scale components (containing reflection), - rx, ry, rz are rotation angles around given axes and - dx, dy, dz is the translation. - - - - - - - - - - - - - - - - - - - - - - - - Base surface type - - - - - - - - - Abstract element for all solids substitution group - - - - - - - Abstract element for surfaces substitution - - - - - - - Solids definitions block - - - - - - Definitions of constants and expressions to be used for solids' - dimensions and transformations - In this version these become part of the global scope. - - - - - - - - - - - - - Exported boolean union of two solids - - - - - - - Exported boolean subtraction of two solids - - - - - - - Exported boolean intersectioin of two solids - - - - - - - CSG box solid described by 3 dimensions of x, y, and z - - - - - - - - - - - - - - - - CSG twisted box solid described by 4 dimensions of - x length along x axis - y length along y axis - z length along z axis - PhiTwist twist angle - - - - - - - - - - - - - - - - - general twisted trapezoid. faces perpendicular to the z planes are trapezia, and their centres are - not necessarily on a line paralell to the z axis. - PhiTwist Twist Angle - z length along the z-axis - Theta Polar angle of the line joining the centres of the faces at -/+z - Phi Azimuthal angle of the line joing the centre of the face at -z to the centre of the face at +z - y1 length along y of the face at -z - x1 length along x of the side at y=-y1 of the face at -z - x2 length along x of the side at y=+y1 of the face at -z - y2 length along y of the face at +z - x3 length along x of the side at y=-y2 of the face at +z - x4 length along x of the side at y=+y2 of the face at +z - Alph Angle with respect to the y axis from the centre of the side - - - - - - - - - - - - - - - - - - - - - - - - different length axis twistable trapezoid. faces perpendicular to the z planes are trapezia, and their centres are - not necessarily on a line paralell to the z axis. - PhiTwist Twist Angle - z length along the z-axis - y1 length along y of the face at -z - x1 length along x of the side at y=-y1 of the face at -z - x2 length along x of the side at y=+y1 of the face at -z - y2 length along y of the face at +z - - - - - - - - - - - - - - - - - - - CSG paraboloid defined by - rlo radius at -dz - rhi radius at +dz - dz half z length - - - - - - - - - - - - - - - - - CSG sphere or spherical shell segment solid described by - rmin inner radius - rmax outer radius - startphi starting angle of the segment in radians(0 <= phi <= 2*PI) - deltaphi delta angle of the segment in radians - starttheta starting angle of the segment in radians(0 <= theta <= PI) - deltatheta delta angle of the segment in radians - - - - - - - - - - - - - - - - - - - - CSG ellispoid or ellipsoidal shell segment solid described by - ax x semiaxis - by y semiaxis - cz z semiaxis - zcut1 bottom plane cutting ellipsoid - zcut2 top plane cutting ellispoid - - - - - - - - - - - - - - - - - - - CSG tube or tube segement solid described by - rmin Inner radius - rmax Outer radius - z length in z - startphi The starting phi angle in radians, adjusted such that - (startphi+deltaphi <= 2PI, startphi > -2PI) - deltaphi Delta angle of the segment in radians - - - - - - - - - - - - - - - - - - CSG twisted tube segement solid described by - twistedangle twist angle - endinnerrad inside radius at end of segment - endouterrad outside radius at end of segment - zlen z length of segment - phi phi angle of a segment - - - - - - - - - - - - - - - - - - CSG cut tube or cut tube segment solid described by - rmin Inner radius - rmax Outer radius - z length in z - startphi The starting phi angle in radians, adjusted such that (startphi+deltaphi <= 2PI, startphi > -2PI) - deltaphi Delta angle of the segment in radians - lowX, lowY, lowZ Normal at lower Z plane - highX, highY, highZ Normal at higher Z plane - - - - - - - - - - - - - - - - - - - - - - - - - CSG cone or cone segment described by - rmin1 inside radius at z/2 - rmin2 inside radius at z/2 - rmax1 outside radius at z/2 - rmax2 outside radius at z/2 - z length in z - startphi starting angle of the segment in radians - deltaphi delta angle of the segment in radians - - - - - - - - - - - - - - - - - - - - CSG cone with elliptical cross section - dx semiaxis in X - dy semiaxis in Y - zmax height of elliptical cone - zcut upper cut plane level - - - - - - - - - - - - - - - - - - CSG polycone or polycone segment described by - startphi starting angle of the segment in radians - deltaphi delta angle of the segment in radians - - and a set of z-planes each described by - rmin inside radius at z/2 - rmax outside radius at z/2 - z length in z - - - - - - - - - - - - - - - - - - - - - - - - - CSG parallelepiped solid is described by - x, y, z length in x,y,z - alpha Angle formed by the y axis and by the plane joining the centre of the faces - G4Parallel to the z-x plane at -y and +y - theta Polar angle of the line joining the centres of the faces at -z and +z in z - phi Azimuthal angle of the line joining the centres of the faces at -z and +z in z - - - - - - - - - - - - - - - - - - - CSG trapezoid solid with varying x and y dimensions along z axis - x1 Length along x at the surface positioned at -z - x2 Length along x at the surface positioned at +z - y1 Length along y at the surface positioned at -z - y2 Length along y at the surface positioned at +z - z Length along z axis - - - - - - - - - - - - - - - - - - CSG general trapezoid solid is described by - z Length along the z-axis - theta Polar angle of the line joining the centres of the faces at -/+z - phi Azimuthal angle of the line joing the centre of the face at -z to the centre of the face at +z - y1 Length along y of the face at -z - x1 Length along x of the side at y = -y1 of the face at -z - x2 Length along x of the side at y = +y1 of the face at -z - alp1 Angle with respect to the y axis from the centre of the side at y =- y1 to the centre at y = +y1 of the face at -z - y2 Length along y of the face at +z - x3 Length along x of the side at y = -y2 of the face at +z - x4 Length along x of the side at y = +y2 of the face at +z - alp2 Angle with respect to the y axis from the centre of the side at y = -y2 to the centre at y = +y2 of the face at +z - - - - - - - - - - - - - - - - - - - - - - - - CSG torus solid is described by - rmin Inside radius - rmax Outside radius - rtor swept radius of torus - startphi The starting phi angle in radians adjusted such that sphi+dphi lt 2PI, sphi gt -2PI - deltaphi Delta angle of the segment in radians - - - - - - - - - - - - - - - - - - - CSG orb solid (simplified sphere with only rmax) is described by - r Outside radius - - - - - - - - - - - - - - Polyhedra is described by - startphi initial phi starting angle - totalphi total phi angle - numsides number sides - and a set of zplanes. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Poligonal extrusion is described by - an unbounded (min. 3) number of vertices of the blueprint polygon - and an unbounded number of Z sections. - - - - - - - - - - - - - - - - - - - - - - Tube with hyperbolic profile described by - rmin innerRadius - rmax outerRadius - inst innerStereo - outst outerStereo - z z length - - - - - - - - - - - - - - - - - - - - Volume representing a tube with elliptical - cross section. - - - - - - - - - - - - - - - - - - Volume representing a tetrahedron. - - - - - - - - - - - - - - - - - - - Volume representing an (almost)arbitrary 8 vertices solid. - The solid is defined by two quadrilaterals sitting on parallel planes, - the distance between these two planes is dz*2. - The base quadrilateral contained within the plane located at -dz is defined by - the first 4 vertices (v1,v2,v3,v4 each one with the x and y coordinates). - The other parallel quadrilateral contained within the plane at +dz is defined by - the other 4 vertices (v5,v6,v7,v8 each one with the x and y coordinates). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Base facet type - - - - - - - Abstract element for all facets substitution group - - - - - - - - Triangular facet. - - - - - - - - - - - - - - - - - - - - Quadrangular facet. - - - - - - - - - - - - - - - - - - - Tessellated solid - - - - - - - - - - - - - - - - - Optical surface used by Geant4 optical processes - - - - - - - - - - - - - - diff --git a/environments/g4py/examples/gdml/python3/read_gdml.py b/environments/g4py/examples/gdml/python3/read_gdml.py deleted file mode 100755 index df13f7c24f..0000000000 --- a/environments/g4py/examples/gdml/python3/read_gdml.py +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/python3 -# ================================================================== -# An example for reading a GDML file -# -# ================================================================== -from Geant4 import * -import g4py.ExN01pl, g4py.ParticleGun - -# ================================================================== -# user actions in python -# ================================================================== -class MyDetectorConstruction(G4VUserDetectorConstruction): - "My Detector Construction" - - def __init__(self): - G4VUserDetectorConstruction.__init__(self) - self.world= None - self.gdml_parser= G4GDMLParser() - - # ----------------------------------------------------------------- - def __del__(self): - pass - - # ----------------------------------------------------------------- - def Construct(self): - self.gdml_parser.Read("qgeom.gdml") - self.world= self.gdml_parser.GetWorldVolume() - - return self.world - - -# ================================================================== -# main -# ================================================================== -# set geometry -myDC= MyDetectorConstruction() -gRunManager.SetUserInitialization(myDC) - -# minimal physics list -g4py.ExN01pl.Construct() - -# set primary generator action -g4py.ParticleGun.Construct() - -# initialize -gRunManager.Initialize() - -# visualization -gApplyUICommand("/vis/open OGLIX") -gApplyUICommand("/vis/scene/create") -gApplyUICommand("/vis/scene/add/volume") -gApplyUICommand("/vis/sceneHandler/attach") -gApplyUICommand("/vis/viewer/set/viewpointThetaPhi 90. -90.") - diff --git a/environments/g4py/examples/gdml/python3/write_gdml.py b/environments/g4py/examples/gdml/python3/write_gdml.py deleted file mode 100755 index 0e2bcb74e2..0000000000 --- a/environments/g4py/examples/gdml/python3/write_gdml.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/python3 -# ================================================================== -# An example of writing a GDML file -# -# ================================================================== -from Geant4 import * -import g4py.Qmaterials, g4py.Qgeom -import g4py.ExN01pl, g4py.ParticleGun - -# ================================================================== -# main -# ================================================================== -# set geometry -g4py.Qmaterials.Construct() -g4py.Qgeom.Construct() - -# minimal physics list -g4py.ExN01pl.Construct() - -# set primary generator action -g4py.ParticleGun.Construct() - -# initialize -gRunManager.Initialize() - -# visualization -gApplyUICommand("/vis/open OGLIX") -gApplyUICommand("/vis/scene/create") -gApplyUICommand("/vis/scene/add/volume") -gApplyUICommand("/vis/sceneHandler/attach") -gApplyUICommand("/vis/viewer/set/viewpointThetaPhi 90. -90.") - -# write to a GDML file -print("\n*** write to a GDML file...") -navigator= gTransportationManager.GetNavigatorForTracking() -world_volume= navigator.GetWorldVolume() - -gdml_parser = G4GDMLParser() -gdml_parser.Write("qgeom.gdml", world_volume) - - diff --git a/environments/g4py/examples/gdml/qgeom.gdml b/environments/g4py/examples/gdml/qgeom.gdml deleted file mode 100644 index a3141e8d27..0000000000 --- a/environments/g4py/examples/gdml/qgeom.gdml +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/environments/g4py/examples/gdml/read_gdml.py b/environments/g4py/examples/gdml/read_gdml.py deleted file mode 100755 index 37a107e48c..0000000000 --- a/environments/g4py/examples/gdml/read_gdml.py +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# An example for reading a GDML file -# -# ================================================================== -from Geant4 import * -import g4py.ExN01pl, g4py.ParticleGun - -# ================================================================== -# user actions in python -# ================================================================== -class MyDetectorConstruction(G4VUserDetectorConstruction): - "My Detector Construction" - - def __init__(self): - G4VUserDetectorConstruction.__init__(self) - self.world= None - self.gdml_parser= G4GDMLParser() - - # ----------------------------------------------------------------- - def __del__(self): - pass - - # ----------------------------------------------------------------- - def Construct(self): - self.gdml_parser.Read("qgeom.gdml") - self.world= self.gdml_parser.GetWorldVolume() - - return self.world - - -# ================================================================== -# main -# ================================================================== -# set geometry -myDC= MyDetectorConstruction() -gRunManager.SetUserInitialization(myDC) - -# minimal physics list -g4py.ExN01pl.Construct() - -# set primary generator action -g4py.ParticleGun.Construct() - -# initialize -gRunManager.Initialize() - -# visualization -gApplyUICommand("/vis/open OGLSX") -gApplyUICommand("/vis/scene/create") -gApplyUICommand("/vis/scene/add/volume") -gApplyUICommand("/vis/sceneHandler/attach") -gApplyUICommand("/vis/viewer/set/viewpointThetaPhi 90. -90.") - diff --git a/environments/g4py/examples/gdml/write_gdml.py b/environments/g4py/examples/gdml/write_gdml.py deleted file mode 100755 index 9ff3f9aad4..0000000000 --- a/environments/g4py/examples/gdml/write_gdml.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# An example of writing a GDML file -# -# ================================================================== -from Geant4 import * -import g4py.Qmaterials, g4py.Qgeom -import g4py.ExN01pl, g4py.ParticleGun - -# ================================================================== -# main -# ================================================================== -# set geometry -g4py.Qmaterials.Construct() -g4py.Qgeom.Construct() - -# minimal physics list -g4py.ExN01pl.Construct() - -# set primary generator action -g4py.ParticleGun.Construct() - -# initialize -gRunManager.Initialize() - -# visualization -gApplyUICommand("/vis/open OGLSX") -gApplyUICommand("/vis/scene/create") -gApplyUICommand("/vis/scene/add/volume") -gApplyUICommand("/vis/sceneHandler/attach") -gApplyUICommand("/vis/viewer/set/viewpointThetaPhi 90. -90.") - -# write to a GDML file -print "\n*** write to a GDML file..." -navigator= gTransportationManager.GetNavigatorForTracking() -world_volume= navigator.GetWorldVolume() - -gdml_parser = G4GDMLParser() -gdml_parser.Write("qgeom_out.gdml", world_volume) - - diff --git a/environments/g4py/source/CMakeLists.txt b/environments/g4py/source/CMakeLists.txt deleted file mode 100644 index 03480a5a50..0000000000 --- a/environments/g4py/source/CMakeLists.txt +++ /dev/null @@ -1,57 +0,0 @@ -# - add libs components -# Core Geant4 bindings -add_subdirectory(global) -add_subdirectory(interface) -add_subdirectory(intercoms) -add_subdirectory(run) -add_subdirectory(event) -add_subdirectory(tracking) -add_subdirectory(track) -add_subdirectory(geometry) -add_subdirectory(materials) -add_subdirectory(particles) -add_subdirectory(processes) -add_subdirectory(digits_hits) -add_subdirectory(visualization) -add_subdirectory(graphics_reps) -add_subdirectory(physics_lists) - -# Only if GDML -if(GEANT4_USE_GDML) - add_subdirectory(gdml) -endif() - -# Pure Python Geant4 extensions -set(GEANT4_PYTHON_MODULES - __init__.py - colortable.py - g4thread.py - g4viscp.py - hepunit.py) -set(GEANT4_PYTHON_BYTECOMPILE_INPUT) -set(GEANT4_PYTHON_BYTECOMPILE_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/__pycache__") - -foreach(_pymod ${GEANT4_PYTHON_MODULES}) - # Generate used to support testing and multimode so .py/pyc files are in the - # same place as the output extensions - file(GENERATE - OUTPUT ${GEANT4_PYTHON_OUTPUT_DIR}/Geant4/${_pymod} - INPUT ${CMAKE_CURRENT_SOURCE_DIR}/${_pymod}) - # Configure module for byte-compilation at install time - # We do this locally because add_custom_command cannot use genexes in - # its OUTPUT command - configure_file(${_pymod} ${CMAKE_CURRENT_BINARY_DIR}/${_pymod} COPYONLY) - list(APPEND GEANT4_PYTHON_BYTECOMPILE_INPUT ${CMAKE_CURRENT_BINARY_DIR}/${_pymod}) -endforeach() - -add_custom_command( - OUTPUT "${GEANT4_PYTHON_BYTECOMPILE_OUTPUT}" - COMMAND ${PYTHON_EXECUTABLE} -m compileall -q ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS ${GEANT4_PYTHON_BYTECOMPILE_INPUT} - COMMENT "Byte-compiling Geant4 .py modules") - -add_custom_target(pyG4ByteCompile ALL DEPENDS "${GEANT4_PYTHON_BYTECOMPILE_OUTPUT}") - -install(FILES ${GEANT4_PYTHON_BYTECOMPILE_INPUT} DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") -install(DIRECTORY ${GEANT4_PYTHON_BYTECOMPILE_OUTPUT} DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") - diff --git a/environments/g4py/source/__init__.py b/environments/g4py/source/__init__.py deleted file mode 100644 index 94dbe0e40e..0000000000 --- a/environments/g4py/source/__init__.py +++ /dev/null @@ -1,235 +0,0 @@ -""" -# ================================================================== -# [Geant4] module package -# -# Welcome to Geant4Py. -# -# This package contains a set of Python interface with Geant4. -# ================================================================== -""" -__version__ ='10.6' -__date__ = 'December/2019' -__author__ = 'K.Murakami (Koichi.Murakami@kek.jp)' - -# import submodules -from .G4interfaces import * -from .G4intercoms import * -from .G4global import * -from .G4run import * -from .G4event import * -from .G4tracking import * -from .G4track import * -from .G4particles import * -from .G4processes import * -from .G4geometry import * -from .G4materials import * -from .G4physicslists import * -from .G4digits_hits import * -from .G4visualization import * -from .G4graphics_reps import * -from .hepunit import * -from .colortable import * - -def print_version(): - print("""============================================================= - Welcome to Geant4Py (A Geant4-Python Bridge) - - Version : %s - Date : %s -============================================================= -""" % ( __version__, __date__) ) - -# ================================================================== -# initialize -# ================================================================== -# set G4cout/G4cerr to Python stdout -SetG4PyCoutDestination() - -# ================================================================== -# globals, which start with "g" -# ================================================================== -# gRunManager -if G4RunManager.GetRunManager() == None: - gRunManager = G4RunManager() -else: - gRunManager = G4RunManager.GetRunManager() -gRunManagerKernel = G4RunManagerKernel.GetRunManagerKernel() - -# gUImanager -gUImanager = G4UImanager.GetUIpointer() - -# gEventManager -gEventManager = G4EventManager.GetEventManager() - -# gStackManager -gStackManager = gEventManager.GetStackManager() - -# gTrackingManager -gTrackingManager = gEventManager.GetTrackingManager() - -# gStateManager -gStateManager = G4StateManager.GetStateManager() -gExceptionHandler = G4ExceptionHandler() # automatically registered - -# gGeometryManager -gGeometryManager = G4GeometryManager.GetInstance() - -# gTransportationManager -gTransportationManager = G4TransportationManager.GetTransportationManager() - -# gParticleTable -gParticleTable = G4ParticleTable.GetParticleTable() -gParticleIterator = PyG4ParticleList() - -# gProcessTable -gProcessTable = G4ProcessTable.GetProcessTable() - -# gProductionCutsTable -gProductionCutsTable = G4ProductionCutsTable.GetProductionCutsTable() - -# gEmCalculator -gEmCalculator = G4EmCalculator() - -# gMaterial/ElementTable -gMaterialTable = G4Material.GetMaterialTable() -gElementTable = G4Element.GetElementTable() - -# gNistManager (since 7.1) -_material_class_list = dir(G4materials) -_qfind = _material_class_list.count("G4NistManager") > 0 -if _qfind: - gNistManager = G4NistManager.Instance() - -# gVisManager -_visdriver_list = dir(G4visualization) -_q_opengl_ix = "G4OpenGLImmediateX" in _visdriver_list -_q_opengl_sx = "G4OpenGLStoredX" in _visdriver_list -_q_opengl_ixm = "G4OpenGLImmediateXm" in _visdriver_list -_q_opengl_sxm = "G4OpenGLStoredXm" in _visdriver_list -_q_raytracer_x = "G4RayTracerX" in _visdriver_list - -if G4VisManager.GetConcreteInstance() == None: - gVisManager = G4VisManager() - if _q_opengl_ix: - _opengl_ix = G4OpenGLImmediateX() - if _q_opengl_sx: - _opengl_sx = G4OpenGLStoredX() - if _q_opengl_ixm: - _opengl_ixm = G4OpenGLImmediateXm() - if _q_opengl_sxm: - _opengl_sxm = G4OpenGLStoredXm() - if _q_raytracer_x: - _raytracer_x = G4RayTracerX() - - _vrml2 = G4VRML2File() - _dawn = G4DAWNFILE() - _heprep_file = G4HepRepFile() - _atree = G4ASCIITree() - _raytracer = G4RayTracer() - - if _q_opengl_ix: - gVisManager.RegisterGraphicsSystem(_opengl_ix) - if _q_opengl_sx: - gVisManager.RegisterGraphicsSystem(_opengl_sx) - if _q_opengl_ixm: - gVisManager.RegisterGraphicsSystem(_opengl_ixm) - if _q_opengl_sxm: - gVisManager.RegisterGraphicsSystem(_opengl_sxm) - if _q_raytracer_x: - gVisManager.RegisterGraphicsSystem(_raytracer_x) - - gVisManager.RegisterGraphicsSystem(_vrml2) - gVisManager.RegisterGraphicsSystem(_dawn) - gVisManager.RegisterGraphicsSystem(_heprep_file) - gVisManager.RegisterGraphicsSystem(_atree) - gVisManager.RegisterGraphicsSystem(_raytracer) - - gVisManager.Initialize() - -# version information -gG4Version = G4Version -gG4Date = G4Date -gG4VERSION_NUMBER = G4VERSION_NUMBER - -# ------------------------------------------------------------------ -# functions -# ------------------------------------------------------------------ -gControlExecute = gUImanager.ExecuteMacroFile -gApplyUICommand = G4intercoms.ApplyUICommand -gGetCurrentValues = gUImanager.GetCurrentValues -gStartUISession = G4interfaces.StartUISession - - -# ================================================================== -# extentions -# ================================================================== - -# ------------------------------------------------------------------ -# generate one event -# ------------------------------------------------------------------ -def _one_event(self): - "generate one event." - self.BeamOn(1) - -G4RunManager.OneEvent = _one_event - -# ------------------------------------------------------------------ -# list material information -# ------------------------------------------------------------------ -def _list_material(self): - "list materials." - n_materials = len(gMaterialTable) - print(" +------------------------------------------------------------------") - print(" | Table of G4Material-s (%d materails defined)" % (n_materials)) - for i in range(0, n_materials) : - material = gMaterialTable[i] - print(" |--------------------------------------------------------"\ - "----------") - print(" | %s: %s" % (material.GetName(), - G4BestUnit(material.GetDensity(),"Volumic Mass"))) - - elementVec = material.GetElementVector() - fractionVec = material.GetFractionVector() - abundanceVec = material.GetVecNbOfAtomsPerVolume() - totNAtoms = material.GetTotNbOfAtomsPerVolume() - - n_elements = len(elementVec) - for j in range(0, n_elements): - print(" | + (%1d) %s(%s): A=%4.1f, N=%5.1f, " \ - "Frac.=(%4.1f%%m,%4.1f%%a)" % \ - (j+1, elementVec[j].GetName(), elementVec[j].GetSymbol(), - elementVec[j].GetZ(), - elementVec[j].GetN(), - fractionVec[j]/hepunit.perCent, - abundanceVec[j]/totNAtoms/hepunit.perCent)) - - print(" +------------------------------------------------------------------") - -G4MaterialTable.ListMaterial = _list_material - - -# ------------------------------------------------------------------ -# termination -# ------------------------------------------------------------------ -def gTerminate(): - gGeometryManager.OpenGeometry() - - -# ------------------------------------------------------------------ -# signal handler -# ------------------------------------------------------------------ -import signal -import threading - -def _run_abort(signum, frame): - state = gStateManager.GetCurrentState() - - if(state == G4ApplicationState.G4State_GeomClosed or - state == G4ApplicationState.G4State_EventProc): - print("aborting Run ...") - gRunManager.AbortRun(True) - else: - raise KeyboardInterrupt - -if (threading.activeCount() == 1): - signal.signal(signal.SIGINT, _run_abort) diff --git a/environments/g4py/source/colortable.py b/environments/g4py/source/colortable.py deleted file mode 100644 index fc9b687000..0000000000 --- a/environments/g4py/source/colortable.py +++ /dev/null @@ -1,777 +0,0 @@ -""" -# ================================================================== -# Python module -# -# color table -# -# Q, 2005 -# ================================================================== -""" - - -def int_rgb(name): - return _colortable[name] - - -def float_rgb(name): - rgb = _colortable[name] - return (rgb[0]/255., rgb[1]/255., rgb[2]/255.) - - -# ================================================================== -# RGB color table (/usr/lib/X11/rgb.txt) -# ================================================================== -_colortable = { } -_colortable["snow"] = (255, 250, 250) -_colortable["ghost"] = (248, 248, 255) -_colortable["GhostWhite"] = (248, 248, 255) -_colortable["white"] = (245, 245, 245) -_colortable["WhiteSmoke"] = (245, 245, 245) -_colortable["gainsboro"] = (220, 220, 220) -_colortable["floral"] = (255, 250, 240) -_colortable["FloralWhite"] = (255, 250, 240) -_colortable["old"] = (253, 245, 230) -_colortable["OldLace"] = (253, 245, 230) -_colortable["linen"] = (250, 240, 230) -_colortable["antique"] = (250, 235, 215) -_colortable["AntiqueWhite"] = (250, 235, 215) -_colortable["papaya"] = (255, 239, 213) -_colortable["PapayaWhip"] = (255, 239, 213) -_colortable["blanched"] = (255, 235, 205) -_colortable["BlanchedAlmond"] = (255, 235, 205) -_colortable["bisque"] = (255, 228, 196) -_colortable["peach"] = (255, 218, 185) -_colortable["PeachPuff"] = (255, 218, 185) -_colortable["navajo"] = (255, 222, 173) -_colortable["NavajoWhite"] = (255, 222, 173) -_colortable["moccasin"] = (255, 228, 181) -_colortable["cornsilk"] = (255, 248, 220) -_colortable["ivory"] = (255, 255, 240) -_colortable["lemon"] = (255, 250, 205) -_colortable["LemonChiffon"] = (255, 250, 205) -_colortable["seashell"] = (255, 245, 238) -_colortable["honeydew"] = (240, 255, 240) -_colortable["mint"] = (245, 255, 250) -_colortable["MintCream"] = (245, 255, 250) -_colortable["azure"] = (240, 255, 255) -_colortable["alice"] = (240, 248, 255) -_colortable["AliceBlue"] = (240, 248, 255) -_colortable["lavender"] = (230, 230, 250) -_colortable["lavender"] = (255, 240, 245) -_colortable["LavenderBlush"] = (255, 240, 245) -_colortable["misty"] = (255, 228, 225) -_colortable["MistyRose"] = (255, 228, 225) -_colortable["white"] = (255, 255, 255) -_colortable["black"] = (0, 0, 0) -_colortable["dark"] = (47, 79, 79) -_colortable["DarkSlateGray"] = (47, 79, 79) -_colortable["dark"] = (47, 79, 79) -_colortable["DarkSlateGrey"] = (47, 79, 79) -_colortable["dim"] = (105, 105, 105) -_colortable["DimGray"] = (105, 105, 105) -_colortable["dim"] = (105, 105, 105) -_colortable["DimGrey"] = (105, 105, 105) -_colortable["slate"] = (112, 128, 144) -_colortable["SlateGray"] = (112, 128, 144) -_colortable["slate"] = (112, 128, 144) -_colortable["SlateGrey"] = (112, 128, 144) -_colortable["light"] = (119, 136, 153) -_colortable["LightSlateGray"] = (119, 136, 153) -_colortable["light"] = (119, 136, 153) -_colortable["LightSlateGrey"] = (119, 136, 153) -_colortable["gray"] = (190, 190, 190) -_colortable["grey"] = (190, 190, 190) -_colortable["light"] = (211, 211, 211) -_colortable["LightGrey"] = (211, 211, 211) -_colortable["light"] = (211, 211, 211) -_colortable["LightGray"] = (211, 211, 211) -_colortable["midnight"] = (25, 25, 112) -_colortable["MidnightBlue"] = (25, 25, 112) -_colortable["navy"] = (0, 0, 128) -_colortable["navy"] = (0, 0, 128) -_colortable["NavyBlue"] = (0, 0, 128) -_colortable["cornflower"] = (100, 149, 237) -_colortable["CornflowerBlue"] = (100, 149, 237) -_colortable["dark"] = (72, 61, 139) -_colortable["DarkSlateBlue"] = (72, 61, 139) -_colortable["slate"] = (106, 90, 205) -_colortable["SlateBlue"] = (106, 90, 205) -_colortable["medium"] = (123, 104, 238) -_colortable["MediumSlateBlue"] = (123, 104, 238) -_colortable["light"] = (132, 112, 255) -_colortable["LightSlateBlue"] = (132, 112, 255) -_colortable["medium"] = (0, 0, 205) -_colortable["MediumBlue"] = (0, 0, 205) -_colortable["royal"] = (65, 105, 225) -_colortable["RoyalBlue"] = (65, 105, 225) -_colortable["blue"] = (0, 0, 255) -_colortable["dodger"] = (30, 144, 255) -_colortable["DodgerBlue"] = (30, 144, 255) -_colortable["deep"] = (0, 191, 255) -_colortable["DeepSkyBlue"] = (0, 191, 255) -_colortable["sky"] = (135, 206, 235) -_colortable["SkyBlue"] = (135, 206, 235) -_colortable["light"] = (135, 206, 250) -_colortable["LightSkyBlue"] = (135, 206, 250) -_colortable["steel"] = (70, 130, 180) -_colortable["SteelBlue"] = (70, 130, 180) -_colortable["light"] = (176, 196, 222) -_colortable["LightSteelBlue"] = (176, 196, 222) -_colortable["light"] = (173, 216, 230) -_colortable["LightBlue"] = (173, 216, 230) -_colortable["powder"] = (176, 224, 230) -_colortable["PowderBlue"] = (176, 224, 230) -_colortable["pale"] = (175, 238, 238) -_colortable["PaleTurquoise"] = (175, 238, 238) -_colortable["dark"] = (0, 206, 209) -_colortable["DarkTurquoise"] = (0, 206, 209) -_colortable["medium"] = (72, 209, 204) -_colortable["MediumTurquoise"] = (72, 209, 204) -_colortable["turquoise"] = (64, 224, 208) -_colortable["cyan"] = (0, 255, 255) -_colortable["light"] = (224, 255, 255) -_colortable["LightCyan"] = (224, 255, 255) -_colortable["cadet"] = (95, 158, 160) -_colortable["CadetBlue"] = (95, 158, 160) -_colortable["medium"] = (102, 205, 170) -_colortable["MediumAquamarine"] = (102, 205, 170) -_colortable["aquamarine"] = (127, 255, 212) -_colortable["dark"] = (0, 100, 0) -_colortable["DarkGreen"] = (0, 100, 0) -_colortable["dark"] = (85, 107, 47) -_colortable["DarkOliveGreen"] = (85, 107, 47) -_colortable["dark"] = (143, 188, 143) -_colortable["DarkSeaGreen"] = (143, 188, 143) -_colortable["sea"] = (46, 139, 87) -_colortable["SeaGreen"] = (46, 139, 87) -_colortable["medium"] = (60, 179, 113) -_colortable["MediumSeaGreen"] = (60, 179, 113) -_colortable["light"] = (32, 178, 170) -_colortable["LightSeaGreen"] = (32, 178, 170) -_colortable["pale"] = (152, 251, 152) -_colortable["PaleGreen"] = (152, 251, 152) -_colortable["spring"] = (0, 255, 127) -_colortable["SpringGreen"] = (0, 255, 127) -_colortable["lawn"] = (124, 252, 0) -_colortable["LawnGreen"] = (124, 252, 0) -_colortable["green"] = (0, 255, 0) -_colortable["chartreuse"] = (127, 255, 0) -_colortable["medium"] = (0, 250, 154) -_colortable["MediumSpringGreen"] = (0, 250, 154) -_colortable["green"] = (173, 255, 47) -_colortable["GreenYellow"] = (173, 255, 47) -_colortable["lime"] = (50, 205, 50) -_colortable["LimeGreen"] = (50, 205, 50) -_colortable["yellow"] = (154, 205, 50) -_colortable["YellowGreen"] = (154, 205, 50) -_colortable["forest"] = (34, 139, 34) -_colortable["ForestGreen"] = (34, 139, 34) -_colortable["olive"] = (107, 142, 35) -_colortable["OliveDrab"] = (107, 142, 35) -_colortable["dark"] = (189, 183, 107) -_colortable["DarkKhaki"] = (189, 183, 107) -_colortable["khaki"] = (240, 230, 140) -_colortable["pale"] = (238, 232, 170) -_colortable["PaleGoldenrod"] = (238, 232, 170) -_colortable["light"] = (250, 250, 210) -_colortable["LightGoldenrodYellow"] = (250, 250, 210) -_colortable["light"] = (255, 255, 224) -_colortable["LightYellow"] = (255, 255, 224) -_colortable["yellow"] = (255, 255, 0) -_colortable["gold"] = (255, 215, 0) -_colortable["light"] = (238, 221, 130) -_colortable["LightGoldenrod"] = (238, 221, 130) -_colortable["goldenrod"] = (218, 165, 32) -_colortable["dark"] = (184, 134, 11) -_colortable["DarkGoldenrod"] = (184, 134, 11) -_colortable["rosy"] = (188, 143, 143) -_colortable["RosyBrown"] = (188, 143, 143) -_colortable["indian"] = (205, 92, 92) -_colortable["IndianRed"] = (205, 92, 92) -_colortable["saddle"] = (139, 69, 19) -_colortable["SaddleBrown"] = (139, 69, 19) -_colortable["sienna"] = (160, 82, 45) -_colortable["peru"] = (205, 133, 63) -_colortable["burlywood"] = (222, 184, 135) -_colortable["beige"] = (245, 245, 220) -_colortable["wheat"] = (245, 222, 179) -_colortable["sandy"] = (244, 164, 96) -_colortable["SandyBrown"] = (244, 164, 96) -_colortable["tan"] = (210, 180, 140) -_colortable["chocolate"] = (210, 105, 30) -_colortable["firebrick"] = (178, 34, 34) -_colortable["brown"] = (165, 42, 42) -_colortable["dark"] = (233, 150, 122) -_colortable["DarkSalmon"] = (233, 150, 122) -_colortable["salmon"] = (250, 128, 114) -_colortable["light"] = (255, 160, 122) -_colortable["LightSalmon"] = (255, 160, 122) -_colortable["orange"] = (255, 165, 0) -_colortable["dark"] = (255, 140, 0) -_colortable["DarkOrange"] = (255, 140, 0) -_colortable["coral"] = (255, 127, 80) -_colortable["light"] = (240, 128, 128) -_colortable["LightCoral"] = (240, 128, 128) -_colortable["tomato"] = (255, 99, 71) -_colortable["orange"] = (255, 69, 0) -_colortable["OrangeRed"] = (255, 69, 0) -_colortable["red"] = (255, 0, 0) -_colortable["hot"] = (255, 105, 180) -_colortable["HotPink"] = (255, 105, 180) -_colortable["deep"] = (255, 20, 147) -_colortable["DeepPink"] = (255, 20, 147) -_colortable["pink"] = (255, 192, 203) -_colortable["light"] = (255, 182, 193) -_colortable["LightPink"] = (255, 182, 193) -_colortable["pale"] = (219, 112, 147) -_colortable["PaleVioletRed"] = (219, 112, 147) -_colortable["maroon"] = (176, 48, 96) -_colortable["medium"] = (199, 21, 133) -_colortable["MediumVioletRed"] = (199, 21, 133) -_colortable["violet"] = (208, 32, 144) -_colortable["VioletRed"] = (208, 32, 144) -_colortable["magenta"] = (255, 0, 255) -_colortable["violet"] = (238, 130, 238) -_colortable["plum"] = (221, 160, 221) -_colortable["orchid"] = (218, 112, 214) -_colortable["medium"] = (186, 85, 211) -_colortable["MediumOrchid"] = (186, 85, 211) -_colortable["dark"] = (153, 50, 204) -_colortable["DarkOrchid"] = (153, 50, 204) -_colortable["dark"] = (148, 0, 211) -_colortable["DarkViolet"] = (148, 0, 211) -_colortable["blue"] = (138, 43, 226) -_colortable["BlueViolet"] = (138, 43, 226) -_colortable["purple"] = (160, 32, 240) -_colortable["medium"] = (147, 112, 219) -_colortable["MediumPurple"] = (147, 112, 219) -_colortable["thistle"] = (216, 191, 216) -_colortable["snow1"] = (255, 250, 250) -_colortable["snow2"] = (238, 233, 233) -_colortable["snow3"] = (205, 201, 201) -_colortable["snow4"] = (139, 137, 137) -_colortable["seashell1"] = (255, 245, 238) -_colortable["seashell2"] = (238, 229, 222) -_colortable["seashell3"] = (205, 197, 191) -_colortable["seashell4"] = (139, 134, 130) -_colortable["AntiqueWhite1"] = (255, 239, 219) -_colortable["AntiqueWhite2"] = (238, 223, 204) -_colortable["AntiqueWhite3"] = (205, 192, 176) -_colortable["AntiqueWhite4"] = (139, 131, 120) -_colortable["bisque1"] = (255, 228, 196) -_colortable["bisque2"] = (238, 213, 183) -_colortable["bisque3"] = (205, 183, 158) -_colortable["bisque4"] = (139, 125, 107) -_colortable["PeachPuff1"] = (255, 218, 185) -_colortable["PeachPuff2"] = (238, 203, 173) -_colortable["PeachPuff3"] = (205, 175, 149) -_colortable["PeachPuff4"] = (139, 119, 101) -_colortable["NavajoWhite1"] = (255, 222, 173) -_colortable["NavajoWhite2"] = (238, 207, 161) -_colortable["NavajoWhite3"] = (205, 179, 139) -_colortable["NavajoWhite4"] = (139, 121, 94) -_colortable["LemonChiffon1"] = (255, 250, 205) -_colortable["LemonChiffon2"] = (238, 233, 191) -_colortable["LemonChiffon3"] = (205, 201, 165) -_colortable["LemonChiffon4"] = (139, 137, 112) -_colortable["cornsilk1"] = (255, 248, 220) -_colortable["cornsilk2"] = (238, 232, 205) -_colortable["cornsilk3"] = (205, 200, 177) -_colortable["cornsilk4"] = (139, 136, 120) -_colortable["ivory1"] = (255, 255, 240) -_colortable["ivory2"] = (238, 238, 224) -_colortable["ivory3"] = (205, 205, 193) -_colortable["ivory4"] = (139, 139, 131) -_colortable["honeydew1"] = (240, 255, 240) -_colortable["honeydew2"] = (224, 238, 224) -_colortable["honeydew3"] = (193, 205, 193) -_colortable["honeydew4"] = (131, 139, 131) -_colortable["LavenderBlush1"] = (255, 240, 245) -_colortable["LavenderBlush2"] = (238, 224, 229) -_colortable["LavenderBlush3"] = (205, 193, 197) -_colortable["LavenderBlush4"] = (139, 131, 134) -_colortable["MistyRose1"] = (255, 228, 225) -_colortable["MistyRose2"] = (238, 213, 210) -_colortable["MistyRose3"] = (205, 183, 181) -_colortable["MistyRose4"] = (139, 125, 123) -_colortable["azure1"] = (240, 255, 255) -_colortable["azure2"] = (224, 238, 238) -_colortable["azure3"] = (193, 205, 205) -_colortable["azure4"] = (131, 139, 139) -_colortable["SlateBlue1"] = (131, 111, 255) -_colortable["SlateBlue2"] = (122, 103, 238) -_colortable["SlateBlue3"] = (105, 89, 205) -_colortable["SlateBlue4"] = (71, 60, 139) -_colortable["RoyalBlue1"] = (72, 118, 255) -_colortable["RoyalBlue2"] = (67, 110, 238) -_colortable["RoyalBlue3"] = (58, 95, 205) -_colortable["RoyalBlue4"] = (39, 64, 139) -_colortable["blue1"] = (0, 0, 255) -_colortable["blue2"] = (0, 0, 238) -_colortable["blue3"] = (0, 0, 205) -_colortable["blue4"] = (0, 0, 139) -_colortable["DodgerBlue1"] = (30, 144, 255) -_colortable["DodgerBlue2"] = (28, 134, 238) -_colortable["DodgerBlue3"] = (24, 116, 205) -_colortable["DodgerBlue4"] = (16, 78, 139) -_colortable["SteelBlue1"] = (99, 184, 255) -_colortable["SteelBlue2"] = (92, 172, 238) -_colortable["SteelBlue3"] = (79, 148, 205) -_colortable["SteelBlue4"] = (54, 100, 139) -_colortable["DeepSkyBlue1"] = (0, 191, 255) -_colortable["DeepSkyBlue2"] = (0, 178, 238) -_colortable["DeepSkyBlue3"] = (0, 154, 205) -_colortable["DeepSkyBlue4"] = (0, 104, 139) -_colortable["SkyBlue1"] = (135, 206, 255) -_colortable["SkyBlue2"] = (126, 192, 238) -_colortable["SkyBlue3"] = (108, 166, 205) -_colortable["SkyBlue4"] = (74, 112, 139) -_colortable["LightSkyBlue1"] = (176, 226, 255) -_colortable["LightSkyBlue2"] = (164, 211, 238) -_colortable["LightSkyBlue3"] = (141, 182, 205) -_colortable["LightSkyBlue4"] = (96, 123, 139) -_colortable["SlateGray1"] = (198, 226, 255) -_colortable["SlateGray2"] = (185, 211, 238) -_colortable["SlateGray3"] = (159, 182, 205) -_colortable["SlateGray4"] = (108, 123, 139) -_colortable["LightSteelBlue1"] = (202, 225, 255) -_colortable["LightSteelBlue2"] = (188, 210, 238) -_colortable["LightSteelBlue3"] = (162, 181, 205) -_colortable["LightSteelBlue4"] = (110, 123, 139) -_colortable["LightBlue1"] = (191, 239, 255) -_colortable["LightBlue2"] = (178, 223, 238) -_colortable["LightBlue3"] = (154, 192, 205) -_colortable["LightBlue4"] = (104, 131, 139) -_colortable["LightCyan1"] = (224, 255, 255) -_colortable["LightCyan2"] = (209, 238, 238) -_colortable["LightCyan3"] = (180, 205, 205) -_colortable["LightCyan4"] = (122, 139, 139) -_colortable["PaleTurquoise1"] = (187, 255, 255) -_colortable["PaleTurquoise2"] = (174, 238, 238) -_colortable["PaleTurquoise3"] = (150, 205, 205) -_colortable["PaleTurquoise4"] = (102, 139, 139) -_colortable["CadetBlue1"] = (152, 245, 255) -_colortable["CadetBlue2"] = (142, 229, 238) -_colortable["CadetBlue3"] = (122, 197, 205) -_colortable["CadetBlue4"] = (83, 134, 139) -_colortable["turquoise1"] = (0, 245, 255) -_colortable["turquoise2"] = (0, 229, 238) -_colortable["turquoise3"] = (0, 197, 205) -_colortable["turquoise4"] = (0, 134, 139) -_colortable["cyan1"] = (0, 255, 255) -_colortable["cyan2"] = (0, 238, 238) -_colortable["cyan3"] = (0, 205, 205) -_colortable["cyan4"] = (0, 139, 139) -_colortable["DarkSlateGray1"] = (151, 255, 255) -_colortable["DarkSlateGray2"] = (141, 238, 238) -_colortable["DarkSlateGray3"] = (121, 205, 205) -_colortable["DarkSlateGray4"] = (82, 139, 139) -_colortable["aquamarine1"] = (127, 255, 212) -_colortable["aquamarine2"] = (118, 238, 198) -_colortable["aquamarine3"] = (102, 205, 170) -_colortable["aquamarine4"] = (69, 139, 116) -_colortable["DarkSeaGreen1"] = (193, 255, 193) -_colortable["DarkSeaGreen2"] = (180, 238, 180) -_colortable["DarkSeaGreen3"] = (155, 205, 155) -_colortable["DarkSeaGreen4"] = (105, 139, 105) -_colortable["SeaGreen1"] = (84, 255, 159) -_colortable["SeaGreen2"] = (78, 238, 148) -_colortable["SeaGreen3"] = (67, 205, 128) -_colortable["SeaGreen4"] = (46, 139, 87) -_colortable["PaleGreen1"] = (154, 255, 154) -_colortable["PaleGreen2"] = (144, 238, 144) -_colortable["PaleGreen3"] = (124, 205, 124) -_colortable["PaleGreen4"] = (84, 139, 84) -_colortable["SpringGreen1"] = (0, 255, 127) -_colortable["SpringGreen2"] = (0, 238, 118) -_colortable["SpringGreen3"] = (0, 205, 102) -_colortable["SpringGreen4"] = (0, 139, 69) -_colortable["green1"] = (0, 255, 0) -_colortable["green2"] = (0, 238, 0) -_colortable["green3"] = (0, 205, 0) -_colortable["green4"] = (0, 139, 0) -_colortable["chartreuse1"] = (127, 255, 0) -_colortable["chartreuse2"] = (118, 238, 0) -_colortable["chartreuse3"] = (102, 205, 0) -_colortable["chartreuse4"] = (69, 139, 0) -_colortable["OliveDrab1"] = (192, 255, 62) -_colortable["OliveDrab2"] = (179, 238, 58) -_colortable["OliveDrab3"] = (154, 205, 50) -_colortable["OliveDrab4"] = (105, 139, 34) -_colortable["DarkOliveGreen1"] = (202, 255, 112) -_colortable["DarkOliveGreen2"] = (188, 238, 104) -_colortable["DarkOliveGreen3"] = (162, 205, 90) -_colortable["DarkOliveGreen4"] = (110, 139, 61) -_colortable["khaki1"] = (255, 246, 143) -_colortable["khaki2"] = (238, 230, 133) -_colortable["khaki3"] = (205, 198, 115) -_colortable["khaki4"] = (139, 134, 78) -_colortable["LightGoldenrod1"] = (255, 236, 139) -_colortable["LightGoldenrod2"] = (238, 220, 130) -_colortable["LightGoldenrod3"] = (205, 190, 112) -_colortable["LightGoldenrod4"] = (139, 129, 76) -_colortable["LightYellow1"] = (255, 255, 224) -_colortable["LightYellow2"] = (238, 238, 209) -_colortable["LightYellow3"] = (205, 205, 180) -_colortable["LightYellow4"] = (139, 139, 122) -_colortable["yellow1"] = (255, 255, 0) -_colortable["yellow2"] = (238, 238, 0) -_colortable["yellow3"] = (205, 205, 0) -_colortable["yellow4"] = (139, 139, 0) -_colortable["gold1"] = (255, 215, 0) -_colortable["gold2"] = (238, 201, 0) -_colortable["gold3"] = (205, 173, 0) -_colortable["gold4"] = (139, 117, 0) -_colortable["goldenrod1"] = (255, 193, 37) -_colortable["goldenrod2"] = (238, 180, 34) -_colortable["goldenrod3"] = (205, 155, 29) -_colortable["goldenrod4"] = (139, 105, 20) -_colortable["DarkGoldenrod1"] = (255, 185, 15) -_colortable["DarkGoldenrod2"] = (238, 173, 14) -_colortable["DarkGoldenrod3"] = (205, 149, 12) -_colortable["DarkGoldenrod4"] = (139, 101, 8) -_colortable["RosyBrown1"] = (255, 193, 193) -_colortable["RosyBrown2"] = (238, 180, 180) -_colortable["RosyBrown3"] = (205, 155, 155) -_colortable["RosyBrown4"] = (139, 105, 105) -_colortable["IndianRed1"] = (255, 106, 106) -_colortable["IndianRed2"] = (238, 99, 99) -_colortable["IndianRed3"] = (205, 85, 85) -_colortable["IndianRed4"] = (139, 58, 58) -_colortable["sienna1"] = (255, 130, 71) -_colortable["sienna2"] = (238, 121, 66) -_colortable["sienna3"] = (205, 104, 57) -_colortable["sienna4"] = (139, 71, 38) -_colortable["burlywood1"] = (255, 211, 155) -_colortable["burlywood2"] = (238, 197, 145) -_colortable["burlywood3"] = (205, 170, 125) -_colortable["burlywood4"] = (139, 115, 85) -_colortable["wheat1"] = (255, 231, 186) -_colortable["wheat2"] = (238, 216, 174) -_colortable["wheat3"] = (205, 186, 150) -_colortable["wheat4"] = (139, 126, 102) -_colortable["tan1"] = (255, 165, 79) -_colortable["tan2"] = (238, 154, 73) -_colortable["tan3"] = (205, 133, 63) -_colortable["tan4"] = (139, 90, 43) -_colortable["chocolate1"] = (255, 127, 36) -_colortable["chocolate2"] = (238, 118, 33) -_colortable["chocolate3"] = (205, 102, 29) -_colortable["chocolate4"] = (139, 69, 19) -_colortable["firebrick1"] = (255, 48, 48) -_colortable["firebrick2"] = (238, 44, 44) -_colortable["firebrick3"] = (205, 38, 38) -_colortable["firebrick4"] = (139, 26, 26) -_colortable["brown1"] = (255, 64, 64) -_colortable["brown2"] = (238, 59, 59) -_colortable["brown3"] = (205, 51, 51) -_colortable["brown4"] = (139, 35, 35) -_colortable["salmon1"] = (255, 140, 105) -_colortable["salmon2"] = (238, 130, 98) -_colortable["salmon3"] = (205, 112, 84) -_colortable["salmon4"] = (139, 76, 57) -_colortable["LightSalmon1"] = (255, 160, 122) -_colortable["LightSalmon2"] = (238, 149, 114) -_colortable["LightSalmon3"] = (205, 129, 98) -_colortable["LightSalmon4"] = (139, 87, 66) -_colortable["orange1"] = (255, 165, 0) -_colortable["orange2"] = (238, 154, 0) -_colortable["orange3"] = (205, 133, 0) -_colortable["orange4"] = (139, 90, 0) -_colortable["DarkOrange1"] = (255, 127, 0) -_colortable["DarkOrange2"] = (238, 118, 0) -_colortable["DarkOrange3"] = (205, 102, 0) -_colortable["DarkOrange4"] = (139, 69, 0) -_colortable["coral1"] = (255, 114, 86) -_colortable["coral2"] = (238, 106, 80) -_colortable["coral3"] = (205, 91, 69) -_colortable["coral4"] = (139, 62, 47) -_colortable["tomato1"] = (255, 99, 71) -_colortable["tomato2"] = (238, 92, 66) -_colortable["tomato3"] = (205, 79, 57) -_colortable["tomato4"] = (139, 54, 38) -_colortable["OrangeRed1"] = (255, 69, 0) -_colortable["OrangeRed2"] = (238, 64, 0) -_colortable["OrangeRed3"] = (205, 55, 0) -_colortable["OrangeRed4"] = (139, 37, 0) -_colortable["red1"] = (255, 0, 0) -_colortable["red2"] = (238, 0, 0) -_colortable["red3"] = (205, 0, 0) -_colortable["red4"] = (139, 0, 0) -_colortable["DeepPink1"] = (255, 20, 147) -_colortable["DeepPink2"] = (238, 18, 137) -_colortable["DeepPink3"] = (205, 16, 118) -_colortable["DeepPink4"] = (139, 10, 80) -_colortable["HotPink1"] = (255, 110, 180) -_colortable["HotPink2"] = (238, 106, 167) -_colortable["HotPink3"] = (205, 96, 144) -_colortable["HotPink4"] = (139, 58, 98) -_colortable["pink1"] = (255, 181, 197) -_colortable["pink2"] = (238, 169, 184) -_colortable["pink3"] = (205, 145, 158) -_colortable["pink4"] = (139, 99, 108) -_colortable["LightPink1"] = (255, 174, 185) -_colortable["LightPink2"] = (238, 162, 173) -_colortable["LightPink3"] = (205, 140, 149) -_colortable["LightPink4"] = (139, 95, 101) -_colortable["PaleVioletRed1"] = (255, 130, 171) -_colortable["PaleVioletRed2"] = (238, 121, 159) -_colortable["PaleVioletRed3"] = (205, 104, 137) -_colortable["PaleVioletRed4"] = (139, 71, 93) -_colortable["maroon1"] = (255, 52, 179) -_colortable["maroon2"] = (238, 48, 167) -_colortable["maroon3"] = (205, 41, 144) -_colortable["maroon4"] = (139, 28, 98) -_colortable["VioletRed1"] = (255, 62, 150) -_colortable["VioletRed2"] = (238, 58, 140) -_colortable["VioletRed3"] = (205, 50, 120) -_colortable["VioletRed4"] = (139, 34, 82) -_colortable["magenta1"] = (255, 0, 255) -_colortable["magenta2"] = (238, 0, 238) -_colortable["magenta3"] = (205, 0, 205) -_colortable["magenta4"] = (139, 0, 139) -_colortable["orchid1"] = (255, 131, 250) -_colortable["orchid2"] = (238, 122, 233) -_colortable["orchid3"] = (205, 105, 201) -_colortable["orchid4"] = (139, 71, 137) -_colortable["plum1"] = (255, 187, 255) -_colortable["plum2"] = (238, 174, 238) -_colortable["plum3"] = (205, 150, 205) -_colortable["plum4"] = (139, 102, 139) -_colortable["MediumOrchid1"] = (224, 102, 255) -_colortable["MediumOrchid2"] = (209, 95, 238) -_colortable["MediumOrchid3"] = (180, 82, 205) -_colortable["MediumOrchid4"] = (122, 55, 139) -_colortable["DarkOrchid1"] = (191, 62, 255) -_colortable["DarkOrchid2"] = (178, 58, 238) -_colortable["DarkOrchid3"] = (154, 50, 205) -_colortable["DarkOrchid4"] = (104, 34, 139) -_colortable["purple1"] = (155, 48, 255) -_colortable["purple2"] = (145, 44, 238) -_colortable["purple3"] = (125, 38, 205) -_colortable["purple4"] = (85, 26, 139) -_colortable["MediumPurple1"] = (171, 130, 255) -_colortable["MediumPurple2"] = (159, 121, 238) -_colortable["MediumPurple3"] = (137, 104, 205) -_colortable["MediumPurple4"] = (93, 71, 139) -_colortable["thistle1"] = (255, 225, 255) -_colortable["thistle2"] = (238, 210, 238) -_colortable["thistle3"] = (205, 181, 205) -_colortable["thistle4"] = (139, 123, 139) -_colortable["gray0"] = (0, 0, 0) -_colortable["grey0"] = (0, 0, 0) -_colortable["gray1"] = (3, 3, 3) -_colortable["grey1"] = (3, 3, 3) -_colortable["gray2"] = (5, 5, 5) -_colortable["grey2"] = (5, 5, 5) -_colortable["gray3"] = (8, 8, 8) -_colortable["grey3"] = (8, 8, 8) -_colortable["gray4"] = (10, 10, 10) -_colortable["grey4"] = (10, 10, 10) -_colortable["gray5"] = (13, 13, 13) -_colortable["grey5"] = (13, 13, 13) -_colortable["gray6"] = (15, 15, 15) -_colortable["grey6"] = (15, 15, 15) -_colortable["gray7"] = (18, 18, 18) -_colortable["grey7"] = (18, 18, 18) -_colortable["gray8"] = (20, 20, 20) -_colortable["grey8"] = (20, 20, 20) -_colortable["gray9"] = (23, 23, 23) -_colortable["grey9"] = (23, 23, 23) -_colortable["gray10"] = (26, 26, 26) -_colortable["grey10"] = (26, 26, 26) -_colortable["gray11"] = (28, 28, 28) -_colortable["grey11"] = (28, 28, 28) -_colortable["gray12"] = (31, 31, 31) -_colortable["grey12"] = (31, 31, 31) -_colortable["gray13"] = (33, 33, 33) -_colortable["grey13"] = (33, 33, 33) -_colortable["gray14"] = (36, 36, 36) -_colortable["grey14"] = (36, 36, 36) -_colortable["gray15"] = (38, 38, 38) -_colortable["grey15"] = (38, 38, 38) -_colortable["gray16"] = (41, 41, 41) -_colortable["grey16"] = (41, 41, 41) -_colortable["gray17"] = (43, 43, 43) -_colortable["grey17"] = (43, 43, 43) -_colortable["gray18"] = (46, 46, 46) -_colortable["grey18"] = (46, 46, 46) -_colortable["gray19"] = (48, 48, 48) -_colortable["grey19"] = (48, 48, 48) -_colortable["gray20"] = (51, 51, 51) -_colortable["grey20"] = (51, 51, 51) -_colortable["gray21"] = (54, 54, 54) -_colortable["grey21"] = (54, 54, 54) -_colortable["gray22"] = (56, 56, 56) -_colortable["grey22"] = (56, 56, 56) -_colortable["gray23"] = (59, 59, 59) -_colortable["grey23"] = (59, 59, 59) -_colortable["gray24"] = (61, 61, 61) -_colortable["grey24"] = (61, 61, 61) -_colortable["gray25"] = (64, 64, 64) -_colortable["grey25"] = (64, 64, 64) -_colortable["gray26"] = (66, 66, 66) -_colortable["grey26"] = (66, 66, 66) -_colortable["gray27"] = (69, 69, 69) -_colortable["grey27"] = (69, 69, 69) -_colortable["gray28"] = (71, 71, 71) -_colortable["grey28"] = (71, 71, 71) -_colortable["gray29"] = (74, 74, 74) -_colortable["grey29"] = (74, 74, 74) -_colortable["gray30"] = (77, 77, 77) -_colortable["grey30"] = (77, 77, 77) -_colortable["gray31"] = (79, 79, 79) -_colortable["grey31"] = (79, 79, 79) -_colortable["gray32"] = (82, 82, 82) -_colortable["grey32"] = (82, 82, 82) -_colortable["gray33"] = (84, 84, 84) -_colortable["grey33"] = (84, 84, 84) -_colortable["gray34"] = (87, 87, 87) -_colortable["grey34"] = (87, 87, 87) -_colortable["gray35"] = (89, 89, 89) -_colortable["grey35"] = (89, 89, 89) -_colortable["gray36"] = (92, 92, 92) -_colortable["grey36"] = (92, 92, 92) -_colortable["gray37"] = (94, 94, 94) -_colortable["grey37"] = (94, 94, 94) -_colortable["gray38"] = (97, 97, 97) -_colortable["grey38"] = (97, 97, 97) -_colortable["gray39"] = (99, 99, 99) -_colortable["grey39"] = (99, 99, 99) -_colortable["gray40"] = (102, 102, 102) -_colortable["grey40"] = (102, 102, 102) -_colortable["gray41"] = (105, 105, 105) -_colortable["grey41"] = (105, 105, 105) -_colortable["gray42"] = (107, 107, 107) -_colortable["grey42"] = (107, 107, 107) -_colortable["gray43"] = (110, 110, 110) -_colortable["grey43"] = (110, 110, 110) -_colortable["gray44"] = (112, 112, 112) -_colortable["grey44"] = (112, 112, 112) -_colortable["gray45"] = (115, 115, 115) -_colortable["grey45"] = (115, 115, 115) -_colortable["gray46"] = (117, 117, 117) -_colortable["grey46"] = (117, 117, 117) -_colortable["gray47"] = (120, 120, 120) -_colortable["grey47"] = (120, 120, 120) -_colortable["gray48"] = (122, 122, 122) -_colortable["grey48"] = (122, 122, 122) -_colortable["gray49"] = (125, 125, 125) -_colortable["grey49"] = (125, 125, 125) -_colortable["gray50"] = (127, 127, 127) -_colortable["grey50"] = (127, 127, 127) -_colortable["gray51"] = (130, 130, 130) -_colortable["grey51"] = (130, 130, 130) -_colortable["gray52"] = (133, 133, 133) -_colortable["grey52"] = (133, 133, 133) -_colortable["gray53"] = (135, 135, 135) -_colortable["grey53"] = (135, 135, 135) -_colortable["gray54"] = (138, 138, 138) -_colortable["grey54"] = (138, 138, 138) -_colortable["gray55"] = (140, 140, 140) -_colortable["grey55"] = (140, 140, 140) -_colortable["gray56"] = (143, 143, 143) -_colortable["grey56"] = (143, 143, 143) -_colortable["gray57"] = (145, 145, 145) -_colortable["grey57"] = (145, 145, 145) -_colortable["gray58"] = (148, 148, 148) -_colortable["grey58"] = (148, 148, 148) -_colortable["gray59"] = (150, 150, 150) -_colortable["grey59"] = (150, 150, 150) -_colortable["gray60"] = (153, 153, 153) -_colortable["grey60"] = (153, 153, 153) -_colortable["gray61"] = (156, 156, 156) -_colortable["grey61"] = (156, 156, 156) -_colortable["gray62"] = (158, 158, 158) -_colortable["grey62"] = (158, 158, 158) -_colortable["gray63"] = (161, 161, 161) -_colortable["grey63"] = (161, 161, 161) -_colortable["gray64"] = (163, 163, 163) -_colortable["grey64"] = (163, 163, 163) -_colortable["gray65"] = (166, 166, 166) -_colortable["grey65"] = (166, 166, 166) -_colortable["gray66"] = (168, 168, 168) -_colortable["grey66"] = (168, 168, 168) -_colortable["gray67"] = (171, 171, 171) -_colortable["grey67"] = (171, 171, 171) -_colortable["gray68"] = (173, 173, 173) -_colortable["grey68"] = (173, 173, 173) -_colortable["gray69"] = (176, 176, 176) -_colortable["grey69"] = (176, 176, 176) -_colortable["gray70"] = (179, 179, 179) -_colortable["grey70"] = (179, 179, 179) -_colortable["gray71"] = (181, 181, 181) -_colortable["grey71"] = (181, 181, 181) -_colortable["gray72"] = (184, 184, 184) -_colortable["grey72"] = (184, 184, 184) -_colortable["gray73"] = (186, 186, 186) -_colortable["grey73"] = (186, 186, 186) -_colortable["gray74"] = (189, 189, 189) -_colortable["grey74"] = (189, 189, 189) -_colortable["gray75"] = (191, 191, 191) -_colortable["grey75"] = (191, 191, 191) -_colortable["gray76"] = (194, 194, 194) -_colortable["grey76"] = (194, 194, 194) -_colortable["gray77"] = (196, 196, 196) -_colortable["grey77"] = (196, 196, 196) -_colortable["gray78"] = (199, 199, 199) -_colortable["grey78"] = (199, 199, 199) -_colortable["gray79"] = (201, 201, 201) -_colortable["grey79"] = (201, 201, 201) -_colortable["gray80"] = (204, 204, 204) -_colortable["grey80"] = (204, 204, 204) -_colortable["gray81"] = (207, 207, 207) -_colortable["grey81"] = (207, 207, 207) -_colortable["gray82"] = (209, 209, 209) -_colortable["grey82"] = (209, 209, 209) -_colortable["gray83"] = (212, 212, 212) -_colortable["grey83"] = (212, 212, 212) -_colortable["gray84"] = (214, 214, 214) -_colortable["grey84"] = (214, 214, 214) -_colortable["gray85"] = (217, 217, 217) -_colortable["grey85"] = (217, 217, 217) -_colortable["gray86"] = (219, 219, 219) -_colortable["grey86"] = (219, 219, 219) -_colortable["gray87"] = (222, 222, 222) -_colortable["grey87"] = (222, 222, 222) -_colortable["gray88"] = (224, 224, 224) -_colortable["grey88"] = (224, 224, 224) -_colortable["gray89"] = (227, 227, 227) -_colortable["grey89"] = (227, 227, 227) -_colortable["gray90"] = (229, 229, 229) -_colortable["grey90"] = (229, 229, 229) -_colortable["gray91"] = (232, 232, 232) -_colortable["grey91"] = (232, 232, 232) -_colortable["gray92"] = (235, 235, 235) -_colortable["grey92"] = (235, 235, 235) -_colortable["gray93"] = (237, 237, 237) -_colortable["grey93"] = (237, 237, 237) -_colortable["gray94"] = (240, 240, 240) -_colortable["grey94"] = (240, 240, 240) -_colortable["gray95"] = (242, 242, 242) -_colortable["grey95"] = (242, 242, 242) -_colortable["gray96"] = (245, 245, 245) -_colortable["grey96"] = (245, 245, 245) -_colortable["gray97"] = (247, 247, 247) -_colortable["grey97"] = (247, 247, 247) -_colortable["gray98"] = (250, 250, 250) -_colortable["grey98"] = (250, 250, 250) -_colortable["gray99"] = (252, 252, 252) -_colortable["grey99"] = (252, 252, 252) -_colortable["gray100"] = (255, 255, 255) -_colortable["grey100"] = (255, 255, 255) -_colortable["dark"] = (169, 169, 169) -_colortable["DarkGrey"] = (169, 169, 169) -_colortable["dark"] = (169, 169, 169) -_colortable["DarkGray"] = (169, 169, 169) -_colortable["dark"] = (0, 0, 139) -_colortable["DarkBlue"] = (0, 0, 139) -_colortable["dark"] = (0, 139, 139) -_colortable["DarkCyan"] = (0, 139, 139) -_colortable["dark"] = (139, 0, 139) -_colortable["DarkMagenta"] = (139, 0, 139) -_colortable["dark"] = (139, 0, 0) -_colortable["DarkRed"] = (139, 0, 0) -_colortable["light"] = (144, 238, 144) -_colortable["LightGreen"] = (144, 238, 144) - diff --git a/environments/g4py/source/digits_hits/CMakeLists.txt b/environments/g4py/source/digits_hits/CMakeLists.txt deleted file mode 100644 index 71a7ea2625..0000000000 --- a/environments/g4py/source/digits_hits/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -# - build library - -# library -geant4_add_pymodule(pyG4digits_hits - pyG4VSensitiveDetector.cc - pymodG4digits_hits.cc -) - -target_link_libraries(pyG4digits_hits PRIVATE G4digits_hits) -install(TARGETS pyG4digits_hits DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/digits_hits/pyG4VSensitiveDetector.cc b/environments/g4py/source/digits_hits/pyG4VSensitiveDetector.cc deleted file mode 100644 index 78f9301617..0000000000 --- a/environments/g4py/source/digits_hits/pyG4VSensitiveDetector.cc +++ /dev/null @@ -1,91 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VSensitiveDetector.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4VSensitiveDetector.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4VSensitiveDetector { - -class CB_G4VSensitiveDetector : - public G4VSensitiveDetector, - public wrapper { - -public: - CB_G4VSensitiveDetector() : G4VSensitiveDetector("") { } - CB_G4VSensitiveDetector(const G4String& name) - : G4VSensitiveDetector(name) { } - ~CB_G4VSensitiveDetector() { } - - G4bool ProcessHits(G4Step* aStep, G4TouchableHistory* ROhist) { - return get_override("ProcessHits")(&aStep, &ROhist); - } -}; - -} - -using namespace pyG4VSensitiveDetector; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VSensitiveDetector() -{ - class_ - ("G4VSensitiveDetector", "base class of senstive detector") - // --- - .def(init()) - // --- - .def("Initialize", &G4VSensitiveDetector::Initialize) - .def("EndOfEvent", &G4VSensitiveDetector::EndOfEvent) - .def("clear", &G4VSensitiveDetector::clear) - .def("DrawAll", &G4VSensitiveDetector::DrawAll) - .def("PrintAll", &G4VSensitiveDetector::PrintAll) - .def("Hit", &G4VSensitiveDetector::Hit) - .def("ProcessHits", pure_virtual(&CB_G4VSensitiveDetector::ProcessHits)) - // --- - .def("SetROgeometry", &G4VSensitiveDetector::SetROgeometry) - .def("GetNumberOfCollections", - &G4VSensitiveDetector::GetNumberOfCollections) - .def("GetCollectionName", &G4VSensitiveDetector::GetCollectionName) - .def("SetVerboseLevel", &G4VSensitiveDetector::SetVerboseLevel) - .def("Activate", &G4VSensitiveDetector::Activate) - .def("isActive", &G4VSensitiveDetector::isActive) - .def("GetName", &G4VSensitiveDetector::GetName) - .def("GetPathName", &G4VSensitiveDetector::GetPathName) - .def("GetFullPathName", &G4VSensitiveDetector::GetFullPathName) - .def("GetROgeometry", &G4VSensitiveDetector::GetROgeometry, - return_internal_reference<>()) - ; -} diff --git a/environments/g4py/source/digits_hits/pymodG4digits_hits.cc b/environments/g4py/source/digits_hits/pymodG4digits_hits.cc deleted file mode 100644 index 1ebf0a0ae0..0000000000 --- a/environments/g4py/source/digits_hits/pymodG4digits_hits.cc +++ /dev/null @@ -1,45 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pymodG4digits_hits.cc [Geant4Py module] -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== - -void export_G4VSensitiveDetector(); - -BOOST_PYTHON_MODULE(G4digits_hits) -{ - export_G4VSensitiveDetector(); -} - diff --git a/environments/g4py/source/event/CMakeLists.txt b/environments/g4py/source/event/CMakeLists.txt deleted file mode 100644 index 3608faf5d6..0000000000 --- a/environments/g4py/source/event/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -# - build library - -# library -geant4_add_pymodule(pyG4event - pyG4ClassificationOfNewTrack.cc - pyG4Event.cc - pyG4EventManager.cc - pyG4ParticleGun.cc - pyG4StackManager.cc - pyG4UserEventAction.cc - pyG4UserStackingAction.cc - pymodG4event.cc -) - -target_link_libraries(pyG4event PRIVATE G4event) -install(TARGETS pyG4event DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/event/pyG4ClassificationOfNewTrack.cc b/environments/g4py/source/event/pyG4ClassificationOfNewTrack.cc deleted file mode 100644 index 39166dab7c..0000000000 --- a/environments/g4py/source/event/pyG4ClassificationOfNewTrack.cc +++ /dev/null @@ -1,58 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ClassificationOfNewTrack.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4ClassificationOfNewTrack.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ClassificationOfNewTrack() -{ - enum_("G4ClassificationOfNewTrack") - .value("fUrgent", fUrgent) - .value("fWaiting", fWaiting) - .value("fPostpone", fPostpone) - .value("fKill", fKill) - .value("fWaiting_1", fWaiting_1) - .value("fWaiting_2", fWaiting_2) - .value("fWaiting_3", fWaiting_3) - .value("fWaiting_4", fWaiting_4) - .value("fWaiting_5", fWaiting_5) - .value("fWaiting_6", fWaiting_6) - .value("fWaiting_7", fWaiting_7) - .value("fWaiting_8", fWaiting_8) - .value("fWaiting_9", fWaiting_9) - .value("fWaiting_19", fWaiting_10) - ; -} - diff --git a/environments/g4py/source/event/pyG4Event.cc b/environments/g4py/source/event/pyG4Event.cc deleted file mode 100644 index 5b9ae3d054..0000000000 --- a/environments/g4py/source/event/pyG4Event.cc +++ /dev/null @@ -1,82 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Event.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Event.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4Event { - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetPrimaryVertex, - GetPrimaryVertex, 0, 1) -} - -using namespace pyG4Event; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Event() -{ - class_("G4Event", "event class") - .def(init()) - // --- - .def("Print", &G4Event::Print) - .def("Draw", &G4Event::Draw) - .def("SetEventID", &G4Event::SetEventID) - .def("GetEventID", &G4Event::GetEventID) - .def("SetEventAborted", &G4Event::SetEventAborted) - .def("IsAborted", &G4Event::IsAborted) - // --- - .def("AddPrimaryVertex", &G4Event::AddPrimaryVertex) - .def("GetNumberOfPrimaryVertex", &G4Event::GetNumberOfPrimaryVertex) - .def("GetPrimaryVertex", &G4Event::GetPrimaryVertex, - f_GetPrimaryVertex()[return_internal_reference<>()]) - // --- - .def("GetTrajectoryContainer", &G4Event::GetTrajectoryContainer, - return_internal_reference<>()) - .def("SetUserInformation", &G4Event::SetUserInformation) - .def("GetUserInformation", &G4Event::GetUserInformation, - return_internal_reference<>()) - ; - - // reduced functionality... - //.def("SetHCofThisEvent", &G4Event::SetHCofThisEvent) - //.def("GetHCofThisEvent", &G4Event::SetHCofThisEvent, - // return_internal_reference<>()) - //.def("SetDCofThisEvent", &G4Event::SetHCofThisEvent) - //.def("GetDCofThisEvent", &G4Event::SetHCofThisEvent, - // return_internal_reference<>()) - -} diff --git a/environments/g4py/source/event/pyG4EventManager.cc b/environments/g4py/source/event/pyG4EventManager.cc deleted file mode 100644 index ce24144dfc..0000000000 --- a/environments/g4py/source/event/pyG4EventManager.cc +++ /dev/null @@ -1,75 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4EventManager.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4EventManager.hh" -#include "G4Event.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4EventManager() -{ - class_ - ("G4EventManager", "event manager class") - .def("GetEventManager", &G4EventManager::GetEventManager, - return_value_policy()) - .staticmethod("GetEventManager") - // --- - .def("GetConstCurrentEvent", &G4EventManager::GetConstCurrentEvent, - return_internal_reference<>()) - .def("GetNonconstCurrentEvent", - &G4EventManager::GetNonconstCurrentEvent, - return_internal_reference<>()) - .def("AbortCurrentEvent", &G4EventManager::AbortCurrentEvent) - .def("SetNumberOfAdditionalWaitingStacks", - &G4EventManager::SetNumberOfAdditionalWaitingStacks) - .def("GetStackManager", &G4EventManager::GetStackManager, - return_value_policy()) - .def("GetTrackingManager", &G4EventManager::GetTrackingManager, - return_value_policy()) - .def("GetVerboseLevel", &G4EventManager::GetVerboseLevel) - .def("SetVerboseLevel", &G4EventManager::SetVerboseLevel) - .def("SetUserInformation", &G4EventManager::SetUserInformation) - .def("GetUserInformation", &G4EventManager::GetUserInformation, - return_value_policy()) - ; - - // Note that exposed items are limited, - // because this class object is mainly for internal uses. - // ProcessOneEvent - // SetUserAction - // GetUserXXXAction - // GetPrimaryTransformer - // SetPrimaryTransformer - -} diff --git a/environments/g4py/source/event/pyG4ParticleGun.cc b/environments/g4py/source/event/pyG4ParticleGun.cc deleted file mode 100644 index 58c27891d5..0000000000 --- a/environments/g4py/source/event/pyG4ParticleGun.cc +++ /dev/null @@ -1,168 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ParticleGun.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4ParticleGun.hh" -#include "G4ParticleTable.hh" -#include "G4Event.hh" - -using namespace boost::python; - -#if G4VERSION_NUMBER < 910 -// ==================================================================== -// miscs -// ==================================================================== -// What a hell! - -//////////////////////////////////////////////////////// -G4ParticleGun::G4ParticleGun(const G4ParticleGun &right) -//////////////////////////////////////////////////////// -{ - *this= right; -} - -///////////////////////////////////////////////////////////////////////// -const G4ParticleGun& G4ParticleGun::operator=(const G4ParticleGun &right) -///////////////////////////////////////////////////////////////////////// -{ - NumberOfParticlesToBeGenerated= right.NumberOfParticlesToBeGenerated; - particle_definition= right.particle_definition; - particle_momentum_direction= right.particle_momentum_direction; - particle_energy= right.particle_energy; - particle_charge= right.particle_charge; - particle_polarization= right.particle_polarization; - - return *this; -} - -///////////////////////////////////////////////////////////////// -G4bool G4ParticleGun::operator==(const G4ParticleGun &right) const -///////////////////////////////////////////////////////////////// -{ - return false; -} - -///////////////////////////////////////////////////////////////// -G4bool G4ParticleGun::operator!=(const G4ParticleGun &right) const -///////////////////////////////////////////////////////////////// -{ - return false; -} - -#endif - - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4ParticleGun { - -#if G4VERSION_NUMBER >= 910 -// SetParticleMomentum -void (G4ParticleGun::*f1_SetParticleMomentum)(G4double) - = &G4ParticleGun::SetParticleMomentum; -void (G4ParticleGun::*f2_SetParticleMomentum)(G4ParticleMomentum) - = &G4ParticleGun::SetParticleMomentum; -#endif - - -//////////////////////////////////////////////////////////////////// -void SetParticleByName(G4ParticleGun* gun, const std::string& pname) -//////////////////////////////////////////////////////////////////// -{ - G4ParticleTable* particleTable= G4ParticleTable::GetParticleTable(); - G4ParticleDefinition* pd= particleTable-> FindParticle(pname); - if (pd != 0) { - gun-> SetParticleDefinition(pd); - } else { - G4cout << "*** \"" << pname << "\" is not registered " - << "in available particle list" << G4endl; - } -} - -///////////////////////////////////////////////// -std::string GetParticleByName(G4ParticleGun* gun) -///////////////////////////////////////////////// -{ - const G4ParticleDefinition* pd= gun-> GetParticleDefinition(); - return (pd-> GetParticleName()).c_str(); -} - -} - -using namespace pyG4ParticleGun; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ParticleGun() -{ -#if G4VERSION_NUMBER < 910 - class_ -#else - class_ -#endif - ("G4ParticleGun", "particle gun") - // constructor - .def(init()) - .def(init()) - .def(init()) - // --- - .def("GeneratePrimaryVertex", &G4ParticleGun::GeneratePrimaryVertex) - .def("SetParticleDefinition", &G4ParticleGun::SetParticleDefinition) - .def("GetParticleDefinition", &G4ParticleGun::GetParticleDefinition, - return_value_policy()) -#if G4VERSION_NUMBER >= 910 - .def("SetParticleMomentum", f1_SetParticleMomentum) - .def("SetParticleMomentum", f2_SetParticleMomentum) -#else - .def("SetParticleMomentum", &G4ParticleGun::SetParticleMomentum) -#endif - .def("SetParticleMomentumDirection", - &G4ParticleGun::SetParticleMomentumDirection) - .def("GetParticleMomentumDirection", - &G4ParticleGun::GetParticleMomentumDirection) - .def("SetParticleEnergy", &G4ParticleGun::SetParticleEnergy) - .def("GetParticleEnergy", &G4ParticleGun::GetParticleEnergy) - .def("SetParticleCharge", &G4ParticleGun::SetParticleCharge) - .def("GetParticleCharge", &G4ParticleGun::GetParticleCharge) - .def("SetParticlePolarization", &G4ParticleGun::SetParticlePolarization) - .def("GetParticlePolarization", &G4ParticleGun::GetParticlePolarization) - .def("SetNumberOfParticles", &G4ParticleGun::SetNumberOfParticles) - .def("GetNumberOfParticles", &G4ParticleGun::GetNumberOfParticles) - .def("SetParticlePosition", &G4ParticleGun::SetParticlePosition) - .def("GetParticlePosition", &G4ParticleGun::GetParticlePosition) - .def("SetParticleTime", &G4ParticleGun::SetParticleTime) - .def("GetParticleTime", &G4ParticleGun::GetParticleTime) - .def("SetParticleByName", SetParticleByName) - .def("GetParticleByName", GetParticleByName) - ; -} diff --git a/environments/g4py/source/event/pyG4StackManager.cc b/environments/g4py/source/event/pyG4StackManager.cc deleted file mode 100644 index 918a58cd66..0000000000 --- a/environments/g4py/source/event/pyG4StackManager.cc +++ /dev/null @@ -1,73 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// ==================================================================== -// pyG4StackManager.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4StackManager.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4StackManager { - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ClearWaitingStack, - ClearWaitingStack, 0, 1) - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetNWaitingTrack, - GetNWaitingTrack, 0, 1) -} - -using namespace pyG4StackManager; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4StackManager() -{ - class_ - ("G4StackManager", "stack management class") - // --- - // Note that exposed items are limited, because this class object - // is mainly for internal uses. - .def("ReClassify", &G4StackManager::ReClassify) - .def("clear", &G4StackManager::clear) - .def("ClearUrgentStack", &G4StackManager::ClearUrgentStack) - .def("ClearWaitingStack", &G4StackManager::ClearWaitingStack, - f_ClearWaitingStack()) - .def("ClearPostponeStack", &G4StackManager::ClearPostponeStack) - .def("GetNTotalTrack", &G4StackManager::GetNTotalTrack) - .def("GetNUrgentTrack", &G4StackManager::GetNUrgentTrack) - .def("GetNWaitingTrack", &G4StackManager::GetNWaitingTrack, - f_GetNWaitingTrack()) - .def("SetVerboseLevel", &G4StackManager::SetVerboseLevel) - ; -} diff --git a/environments/g4py/source/event/pyG4UserEventAction.cc b/environments/g4py/source/event/pyG4UserEventAction.cc deleted file mode 100644 index c29b91272d..0000000000 --- a/environments/g4py/source/event/pyG4UserEventAction.cc +++ /dev/null @@ -1,75 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4UserEventAction.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4UserEventAction.hh" -#include "G4Event.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -struct CB_G4UserEventAction : G4UserEventAction, - wrapper { - // BeginOfEventAction - void BeginOfEventAction(const G4Event* anEvent) { - if(const override& f= get_override("BeginOfEventAction")) { - f(boost::ref(anEvent)); - } else - G4UserEventAction::BeginOfEventAction(anEvent); - } - - // EndOfEventAction - void EndOfEventAction(const G4Event* anEvent) { - if(const override& f= get_override("EndOfEventAction")) { - f(boost::ref(anEvent)); - } else { - G4UserEventAction::EndOfEventAction(anEvent); - } - } -}; - - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4UserEventAction() -{ - class_ - ( "G4UserEventAction", "event action class") - - .def("BeginOfEventAction", &G4UserEventAction::BeginOfEventAction, - &CB_G4UserEventAction::BeginOfEventAction) - .def("EndOfEventAction", &G4UserEventAction::EndOfEventAction, - &CB_G4UserEventAction::EndOfEventAction) - ; -} - diff --git a/environments/g4py/source/event/pyG4UserStackingAction.cc b/environments/g4py/source/event/pyG4UserStackingAction.cc deleted file mode 100644 index f80c37501f..0000000000 --- a/environments/g4py/source/event/pyG4UserStackingAction.cc +++ /dev/null @@ -1,91 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4UserStackingAction.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4UserStackingAction.hh" -#include "G4Track.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4UserStackingAction { - -struct CB_G4UserStackingAction : G4UserStackingAction, - wrapper { - - // ClassifyNewTrack - G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack) { - if(const override& f= get_override("ClassifyNewTrack")) { - return f(boost::ref(aTrack)); - } else - return G4UserStackingAction::ClassifyNewTrack(aTrack); - } - - // NewState - void NewStage() { - if(const override& f= get_override("NewStage")) { - f(); - } else - G4UserStackingAction::NewStage(); - } - - // PrepareNewEvent - void PrepareNewEvent() { - if(const override& f= get_override("PrepareNewEvent")) { - f(); - } else - G4UserStackingAction::PrepareNewEvent(); - } - -}; - -} - -using namespace pyG4UserStackingAction; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4UserStackingAction() -{ - class_ - ("G4UserStackingAction", "stacking action class") - // --- - .def("ClassifyNewTrack", &G4UserStackingAction::ClassifyNewTrack, - &CB_G4UserStackingAction::ClassifyNewTrack) - .def("NewStage", &G4UserStackingAction::NewStage, - &CB_G4UserStackingAction::NewStage) - .def("PrepareNewEvent", &G4UserStackingAction::PrepareNewEvent, - &CB_G4UserStackingAction::PrepareNewEvent) - ; -} - diff --git a/environments/g4py/source/event/pymodG4event.cc b/environments/g4py/source/event/pymodG4event.cc deleted file mode 100644 index e5cc73327b..0000000000 --- a/environments/g4py/source/event/pymodG4event.cc +++ /dev/null @@ -1,56 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pymodG4event.cc [Geant4Py module] -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4EventManager(); -void export_G4StackManager(); -void export_G4Event(); -void export_G4UserEventAction(); -void export_G4UserStackingAction(); -void export_G4ClassificationOfNewTrack(); -void export_G4ParticleGun(); - -BOOST_PYTHON_MODULE(G4event) -{ - export_G4EventManager(); - export_G4StackManager(); - export_G4Event(); - export_G4UserEventAction(); - export_G4UserStackingAction(); - export_G4ClassificationOfNewTrack(); - export_G4ParticleGun(); -} - diff --git a/environments/g4py/source/g4thread.py b/environments/g4py/source/g4thread.py deleted file mode 100644 index 5568be1a8c..0000000000 --- a/environments/g4py/source/g4thread.py +++ /dev/null @@ -1,23 +0,0 @@ -""" -# ================================================================== -# Python module -# -# Geant4 threading module -# -# Q, 2005 -# ================================================================== -""" - -import thread -from G4run import * - -# ------------------------------------------------------------------ -# BeamOn in a new thread -# ------------------------------------------------------------------ -def _TBeamOn(self, nevent): - "generate events in a thread" - args = (nevent,) - thread.start_new_thread(self.BeamOn, args) - -G4RunManager.TBeamOn= _TBeamOn - diff --git a/environments/g4py/source/g4viscp.py b/environments/g4py/source/g4viscp.py deleted file mode 100644 index ad632b8e37..0000000000 --- a/environments/g4py/source/g4viscp.py +++ /dev/null @@ -1,68 +0,0 @@ -""" -# ================================================================== -# Python module -# -# Visualization Control Panel -# -# Q, 2005 -# ================================================================== -""" -from G4interface import * - -# ------------------------------------------------------------------ -# Scene -# ------------------------------------------------------------------ -class G4Scene : - "Scene" - def __init__(self, aname, vol= "world", acopyno=0, - amode=0, bmode=1): - self.name= aname - self.volume= vol - self.copyno= acopyno - self.mode_eventaction= amode # 0: accumulate / 1: refresh - self.mode_runaction= bmode # 0: accumulate / 1: refresh - self.mode= ("accumulate", "refresh") - - def create_scene(self): - ApplyUICommand("/vis/scene/create " + self.name) - ApplyUICommand("/vis/scene/add/volume %s %d" % - (self.volume, self.copyno)) - ApplyUICommand("/vis/scene/add/trajectories") - self.update_scene() - - def update_scene(self): - ApplyUICommand("/vis/scene/select " + self.name) - ApplyUICommand("/vis/sceneHandler/attach") - ApplyUICommand("/vis/scene/endOfEventAction %s" % - (self.mode[self.mode_eventaction]) ) - ApplyUICommand("/vis/scene/endOfRunAction %s" % - (self.mode[self.mode_runaction]) ) - -# ------------------------------------------------------------------ -# Visualization Control Panel -# ------------------------------------------------------------------ -class G4VisCP : - "G4 Visualization Control Panel" - - def __init__(self, gsys="OGLIX"): - self.gsystem= gsys - self.scenelist= [G4Scene("default")] - self.viewpoint= [270., 90.] - - rc= ApplyUICommand("/vis/open " + gsys) - if (rc != 0): - return - - self.scenelist[0].create_scene() - ApplyUICommand("/vis/viewer/set/viewpointThetaPhi %f %f" - % (self.viewpoint[0], self.viewpoint[1]) ) - ApplyUICommand("/tracking/storeTrajectory 1") - - def add_scene(self, ascene): - self.scenelist.append(ascene) - - def select_scene(self, iscene): - self.scenelist[iscene].update_scene() - ApplyUICommand("/vis/viewer/set/viewpointThetaPhi %f %f" - % (self.viewpoint[0], self.viewpoint[1]) ) - diff --git a/environments/g4py/source/gdml/CMakeLists.txt b/environments/g4py/source/gdml/CMakeLists.txt deleted file mode 100644 index 47747110a3..0000000000 --- a/environments/g4py/source/gdml/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -# library -geant4_add_pymodule(pyG4gdml - pyG4GDMLParser.cc - pymodG4g4gdml.cc -) - -target_link_libraries(pyG4gdml PRIVATE G4persistency) -install(TARGETS pyG4gdml DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/gdml/pyG4GDMLParser.cc b/environments/g4py/source/gdml/pyG4GDMLParser.cc deleted file mode 100644 index 3cd3cd1814..0000000000 --- a/environments/g4py/source/gdml/pyG4GDMLParser.cc +++ /dev/null @@ -1,84 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4GDMLParser.cc -// -// 2007 Q -// ==================================================================== - -#include -#include "G4GDMLParser.hh" -#include "G4LogicalVolume.hh" -#include "G4Material.hh" -#include "G4Version.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4GDMLParser { - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetWorldVolume, - GetWorldVolume, 0, 1) - -void (G4GDMLParser::*f1_Write) - (const G4String&, const G4VPhysicalVolume*, G4bool, - const G4String&) = &G4GDMLParser::Write; - -void (G4GDMLParser::*f2_Write) - (const G4String&, const G4LogicalVolume*, G4bool, - const G4String&) = &G4GDMLParser::Write; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(g_Write, Write, 2, 4) -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_Read, Read, 1, 2) -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ReadModule, ReadModule, 1, 2) -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_Write, Write, 1, 4) - -} - -using namespace pyG4GDMLParser; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4GDMLParser() -{ - class_ - ("G4GDMLParser", "GDML parser") - // --- - .def("Read", &G4GDMLParser::Read, f_Read()) - .def("ReadModule", &G4GDMLParser::ReadModule, f_ReadModule()) - .def("ParseST", &G4GDMLParser::ParseST, - return_value_policy()) - .def("Write", f1_Write, f_Write()) - .def("Write", f2_Write, g_Write()) - .def("GetWorldVolume", &G4GDMLParser::GetWorldVolume, - f_GetWorldVolume() - [return_value_policy()]) - ; -} - diff --git a/environments/g4py/source/geometry/CMakeLists.txt b/environments/g4py/source/geometry/CMakeLists.txt deleted file mode 100644 index e3afd57df5..0000000000 --- a/environments/g4py/source/geometry/CMakeLists.txt +++ /dev/null @@ -1,49 +0,0 @@ -# - build library - -# library -geant4_add_pymodule(pyG4geometry - pyG4BooleanSolid.cc - pyG4Box.cc - pyG4ChordFinder.cc - pyG4Cons.cc - pyG4Ellipsoid.cc - pyG4EllipticalCone.cc - pyG4EllipticalTube.cc - pyG4Field.cc - pyG4FieldManager.cc - pyG4GeometryManager.cc - pyG4Hype.cc - pyG4IntersctionSolid.cc - pyG4LogicalVolume.cc - pyG4MagneticField.cc - pyG4Navigator.cc - pyG4Orb.cc - pyG4PVPlacement.cc - pyG4PVReplica.cc - pyG4Para.cc - pyG4Polycone.cc - pyG4Polyhedra.cc - pyG4Region.cc - pyG4Sphere.cc - pyG4SubtractionSolid.cc - pyG4Tet.cc - pyG4Torus.cc - pyG4TouchableHistory.cc - pyG4TransportationManager.cc - pyG4Trap.cc - pyG4Trd.cc - pyG4Tubs.cc - pyG4TwistedBox.cc - pyG4TwistedTrap.cc - pyG4TwistedTrd.cc - pyG4TwistedTubs.cc - pyG4UniformMagField.cc - pyG4UnionSolid.cc - pyG4VPhysicalVolume.cc - pyG4VSolid.cc - pyG4VTouchable.cc - pymodG4geometry.cc -) - -target_link_libraries(pyG4geometry PRIVATE G4geometry G4track G4processes) -install(TARGETS pyG4geometry DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/geometry/pyG4BooleanSolid.cc b/environments/g4py/source/geometry/pyG4BooleanSolid.cc deleted file mode 100644 index 537d9eeff2..0000000000 --- a/environments/g4py/source/geometry/pyG4BooleanSolid.cc +++ /dev/null @@ -1,56 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4BooleanSolid.cc -// -// 2007 Q -// ==================================================================== -#include -#include "G4BooleanSolid.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4BooleanSolid() -{ - class_, boost::noncopyable> - ("G4BooleanSolid", "boolean solid class", no_init) - // --- - .def("GetCubVolStatistics", &G4BooleanSolid::GetCubVolStatistics) - .def("GetCubVolEpsilon", &G4BooleanSolid::GetCubVolEpsilon) - .def("SetCubVolStatistics", &G4BooleanSolid::SetCubVolStatistics) - .def("SetCubVolEpsilon", &G4BooleanSolid::SetCubVolEpsilon) - .def("GetAreaStatistics", &G4BooleanSolid::GetAreaStatistics) - .def("GetAreaAccuracy", &G4BooleanSolid::GetAreaAccuracy) - .def("SetAreaStatistics", &G4BooleanSolid::SetAreaStatistics) - .def("SetAreaAccuracy", &G4BooleanSolid::SetAreaAccuracy) - .def("GetPointOnSurface", &G4BooleanSolid::GetPointOnSurface) - ; - -} - diff --git a/environments/g4py/source/geometry/pyG4Box.cc b/environments/g4py/source/geometry/pyG4Box.cc deleted file mode 100644 index a72f4716a5..0000000000 --- a/environments/g4py/source/geometry/pyG4Box.cc +++ /dev/null @@ -1,75 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Box.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Box.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4Box { - -G4Box* CreateBox(const G4String& name, G4double pX, G4double pY, - G4double pZ) -{ - return new G4Box(name, pX, pY, pZ); -} - -} - -using namespace pyG4Box; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Box() -{ - class_ > - ("G4Box", "box solid class", no_init) - // constructors - .def(init()) - // --- - .def("GetXHalfLength", &G4Box::GetXHalfLength) - .def("GetYHalfLength", &G4Box::GetYHalfLength) - .def("GetZHalfLength", &G4Box::GetZHalfLength) - .def("SetXHalfLength", &G4Box::SetXHalfLength) - .def("SetYHalfLength", &G4Box::SetYHalfLength) - .def("SetZHalfLength", &G4Box::SetZHalfLength) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateBox", CreateBox, return_value_policy()); - -} - diff --git a/environments/g4py/source/geometry/pyG4ChordFinder.cc b/environments/g4py/source/geometry/pyG4ChordFinder.cc deleted file mode 100644 index 1c64091df2..0000000000 --- a/environments/g4py/source/geometry/pyG4ChordFinder.cc +++ /dev/null @@ -1,65 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ChordFinder.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4ChordFinder.hh" -#include "G4MagneticField.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4ChordFinder { - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_SetVerbose, SetVerbose, 0, 1) - -} - -using namespace pyG4ChordFinder; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ChordFinder() -{ - class_ - ("G4ChordFinder", "chord finder class", no_init) - // constructor - .def(init()) - .def(init()) - .def(init()) - // --- - .def("GetDeltaChord", &G4ChordFinder::GetDeltaChord) - .def("SetDeltaChord", &G4ChordFinder::SetDeltaChord) - // --- - .def("SetVerbose", &G4ChordFinder::SetVerbose, f_SetVerbose()) - ; -} diff --git a/environments/g4py/source/geometry/pyG4Cons.cc b/environments/g4py/source/geometry/pyG4Cons.cc deleted file mode 100644 index f3c370e4d9..0000000000 --- a/environments/g4py/source/geometry/pyG4Cons.cc +++ /dev/null @@ -1,85 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Cons.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Cons.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4Cons { - -G4Cons* CreateCons(const G4String& name, G4double pRmin1, G4double pRmax1, - G4double pRmin2, G4double pRmax2, G4double pDz, - G4double pSPhi, G4double pDPhi) -{ - return new G4Cons(name, pRmin1, pRmax1, pRmin2, pRmax2, pDz, pSPhi, pDPhi); -} - -} - -using namespace pyG4Cons; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Cons() -{ - class_ > - ("G4Cons", "Cone solid class", no_init) - // constructors - .def(init()) - // --- - .def("GetInnerRadiusMinusZ", &G4Cons::GetInnerRadiusMinusZ) - .def("GetOuterRadiusMinusZ", &G4Cons::GetOuterRadiusMinusZ) - .def("GetInnerRadiusPlusZ", &G4Cons::GetInnerRadiusPlusZ) - .def("GetOuterRadiusPlusZ", &G4Cons::GetOuterRadiusPlusZ) - .def("GetZHalfLength", &G4Cons::GetZHalfLength) - .def("GetStartPhiAngle", &G4Cons::GetStartPhiAngle) - .def("GetDeltaPhiAngle", &G4Cons::GetDeltaPhiAngle) - .def("SetInnerRadiusMinusZ", &G4Cons::SetInnerRadiusMinusZ) - .def("SetOuterRadiusMinusZ", &G4Cons::SetOuterRadiusMinusZ) - .def("SetInnerRadiusPlusZ", &G4Cons::SetInnerRadiusPlusZ) - .def("SetOuterRadiusPlusZ", &G4Cons::SetOuterRadiusPlusZ) - .def("SetZHalfLength", &G4Cons::SetZHalfLength) - .def("SetStartPhiAngle", &G4Cons::SetStartPhiAngle) - .def("SetDeltaPhiAngle", &G4Cons::SetDeltaPhiAngle) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateCons", CreateCons, return_value_policy()); - -} - diff --git a/environments/g4py/source/geometry/pyG4Ellipsoid.cc b/environments/g4py/source/geometry/pyG4Ellipsoid.cc deleted file mode 100644 index abdd3e30ad..0000000000 --- a/environments/g4py/source/geometry/pyG4Ellipsoid.cc +++ /dev/null @@ -1,84 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Ellipsoid.cc -// -// 2007 Q -// ==================================================================== -#include -#include "G4Ellipsoid.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4Ellipsoid { - -G4Ellipsoid* CreateEllipsoid(const G4String& name, - G4double pxSemiAxis, - G4double pySemiAxis, - G4double pzSemiAxis, - G4double pzBottomCut=0, - G4double pzTopCut=0) -{ - return new G4Ellipsoid(name, pxSemiAxis, pySemiAxis, pzSemiAxis, - pzBottomCut, pzTopCut); -} - -BOOST_PYTHON_FUNCTION_OVERLOADS(f_CreateEllipsoid, CreateEllipsoid, 4,6) - -} - -using namespace pyG4Ellipsoid; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Ellipsoid() -{ - class_ > - ("G4Ellipsoid", "ellipsoid class", no_init) - // constructors - .def(init()) - .def(init()) - .def(init()) - // --- - .def("GetSemiAxisMax", &G4Ellipsoid::GetSemiAxisMax) - .def("GetZBottomCut", &G4Ellipsoid::GetZBottomCut) - .def("GetZTopCut", &G4Ellipsoid::GetZTopCut) - .def("SetSemiAxis", &G4Ellipsoid::SetSemiAxis) - .def("SetZCuts", &G4Ellipsoid::SetZCuts) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateEllipsoid", CreateEllipsoid, - f_CreateEllipsoid()[return_value_policy()]); -} - diff --git a/environments/g4py/source/geometry/pyG4EllipticalCone.cc b/environments/g4py/source/geometry/pyG4EllipticalCone.cc deleted file mode 100644 index 8df8b8d463..0000000000 --- a/environments/g4py/source/geometry/pyG4EllipticalCone.cc +++ /dev/null @@ -1,77 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4EllipticalCone.cc -// -// 2007 Q -// ==================================================================== -#include -#include "G4EllipticalCone.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4EllipticalCone { - -G4EllipticalCone* CreateEllipticalCone(const G4String& name, - G4double pxSemiAxis, - G4double pySemiAxis, - G4double zMax, - G4double pzTopCut) -{ - return new G4EllipticalCone(name, pxSemiAxis,pySemiAxis, zMax, pzTopCut); -} - -} - -using namespace pyG4EllipticalCone; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4EllipticalCone() -{ - class_ > - ("G4EllipticalCone", "elliptical cone solid class", no_init) - // constructors - .def(init()) - // --- - .def("GetSimiAxisMax", &G4EllipticalCone::GetSemiAxisMax) - .def("GetZTopCut", &G4EllipticalCone::GetZTopCut) - .def("SetSemiAxis", &G4EllipticalCone::SetSemiAxis) - .def("SetZCut", &G4EllipticalCone::SetZCut) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateEllipticalCone", CreateEllipticalCone, - return_value_policy()); - -} - diff --git a/environments/g4py/source/geometry/pyG4EllipticalTube.cc b/environments/g4py/source/geometry/pyG4EllipticalTube.cc deleted file mode 100644 index ba79d3f5e1..0000000000 --- a/environments/g4py/source/geometry/pyG4EllipticalTube.cc +++ /dev/null @@ -1,79 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4EllipticalTube.cc -// -// 2007 Q -// ==================================================================== -#include -#include "G4EllipticalTube.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4EllipticalTube { - -G4EllipticalTube* CreateEllipticalTube(const G4String& name, - G4double theDx, - G4double theDy, - G4double theDz) -{ - return new G4EllipticalTube(name, theDx, theDy, theDz); -} - -} - -using namespace pyG4EllipticalTube; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4EllipticalTube() -{ - class_ > - ("G4EllipticalTube", "elliptical tube solid class", no_init) - // constructors - .def(init()) - // --- - .def("GetDx", &G4EllipticalTube::GetDx) - .def("GetDy", &G4EllipticalTube::GetDy) - .def("GetDz", &G4EllipticalTube::GetDz) - .def("SetDx", &G4EllipticalTube::SetDx) - .def("SetDy", &G4EllipticalTube::SetDy) - .def("SetDz", &G4EllipticalTube::SetDz) - - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateEllipticalTube", CreateEllipticalTube, - return_value_policy()); - -} - diff --git a/environments/g4py/source/geometry/pyG4Field.cc b/environments/g4py/source/geometry/pyG4Field.cc deleted file mode 100644 index 581da0ebff..0000000000 --- a/environments/g4py/source/geometry/pyG4Field.cc +++ /dev/null @@ -1,45 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Field.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Field.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Field() -{ - class_ - ("G4Field", "base class of field", no_init) - ; -} - diff --git a/environments/g4py/source/geometry/pyG4FieldManager.cc b/environments/g4py/source/geometry/pyG4FieldManager.cc deleted file mode 100644 index 3b77588533..0000000000 --- a/environments/g4py/source/geometry/pyG4FieldManager.cc +++ /dev/null @@ -1,98 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4FieldManager.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4FieldManager.hh" -#include "G4Field.hh" -#include "G4ChordFinder.hh" -#include "G4MagneticField.hh" -#include "G4Track.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4FieldManager { - -G4ChordFinder*(G4FieldManager::*f1_GetChordFinder)() - = &G4FieldManager::GetChordFinder; - -const G4ChordFinder*(G4FieldManager::*f2_GetChordFinder)() const - = &G4FieldManager::GetChordFinder; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_SetDetectorField, - SetDetectorField, 1, 2) - -} - -using namespace pyG4FieldManager; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4FieldManager() -{ - class_ - ("G4FieldManager", "field manager class") - // constructors - .def(init<>()) - .def(init()) - .def(init()) - .def(init()) - .def(init()) - // --- - .def("SetDetectorField", &G4FieldManager::SetDetectorField, - f_SetDetectorField()) - .def("GetDetectorField", &G4FieldManager::GetDetectorField, - return_internal_reference<>()) - .def("DoesFieldExist", &G4FieldManager::DoesFieldExist) - .def("CreateChordFinder", &G4FieldManager::CreateChordFinder) - .def("SetChordFinder", &G4FieldManager::SetChordFinder) - .def("GetChordFinder", f1_GetChordFinder, - return_internal_reference<>()) - .def("GetChordFinder", f2_GetChordFinder, - return_internal_reference<>()) - .def("ConfigureForTrack", &G4FieldManager::ConfigureForTrack) - .def("GetDeltaIntersection", &G4FieldManager::GetDeltaIntersection) - .def("GetDeltaOneStep", &G4FieldManager::GetDeltaOneStep) - .def("SetAccuraciesWithDeltaOneStep", - &G4FieldManager::SetAccuraciesWithDeltaOneStep) - .def("SetDeltaOneStep", &G4FieldManager::SetDeltaOneStep) - .def("SetDeltaIntersection", &G4FieldManager::SetDeltaIntersection) - .def("GetMinimumEpsilonStep", &G4FieldManager::GetMinimumEpsilonStep) - .def("SetMinimumEpsilonStep", &G4FieldManager::SetMinimumEpsilonStep) - .def("GetMaximumEpsilonStep", &G4FieldManager::GetMaximumEpsilonStep) - .def("SetMaximumEpsilonStep", &G4FieldManager::SetMaximumEpsilonStep) - .def("DoesFieldChangeEnergy", &G4FieldManager::DoesFieldChangeEnergy) - .def("SetFieldChangesEnergy", &G4FieldManager::SetFieldChangesEnergy) - ; -} diff --git a/environments/g4py/source/geometry/pyG4GeometryManager.cc b/environments/g4py/source/geometry/pyG4GeometryManager.cc deleted file mode 100644 index 92037cafc8..0000000000 --- a/environments/g4py/source/geometry/pyG4GeometryManager.cc +++ /dev/null @@ -1,68 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4GeometryManager.cc -// -// 2008 Q -// ==================================================================== -#include -#include "G4GeometryManager.hh" -#include "G4VPhysicalVolume.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4GeometryManager { - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_CloseGeometry, CloseGeometry, 0, 3) -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_OpenGeometry, OpenGeometry, 0, 1) - -} - -using namespace pyG4GeometryManager; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4GeometryManager() -{ - class_ - ("G4GeometryManager", "geometry manager", no_init) - .def("GetInstance", &G4GeometryManager::GetInstance, - return_value_policy()) - .staticmethod("GetInstance") - // --- - .def("CloseGeometry", &G4GeometryManager::CloseGeometry, - f_CloseGeometry()) - .def("OpenGeometry", &G4GeometryManager::OpenGeometry, - f_OpenGeometry()) - .def("IsGeometryClosed", &G4GeometryManager::IsGeometryClosed) - .def("SetWorldMaximumExtent", &G4GeometryManager::SetWorldMaximumExtent) - ; -} - diff --git a/environments/g4py/source/geometry/pyG4Hype.cc b/environments/g4py/source/geometry/pyG4Hype.cc deleted file mode 100644 index 86c4a5c1e1..0000000000 --- a/environments/g4py/source/geometry/pyG4Hype.cc +++ /dev/null @@ -1,87 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Hype.cc -// -// 2007 Q -// ==================================================================== -#include -#include "G4Hype.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4Hype { - -G4Hype* CreateHype(const G4String& name, - G4double newInnerRadius, - G4double newOuterRadius, - G4double newInnerStereo, - G4double newOuterStereo, - G4double newHalfLenZ) -{ - - return new G4Hype(name, newInnerRadius, newOuterRadius, - newInnerStereo, newOuterStereo, - newHalfLenZ); -} - -} - -using namespace pyG4Hype; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Hype() -{ - class_ > - ("G4Hype", "hyperbolic solid class", no_init) - // constructors - .def(init()) - // --- - .def("GetInnerRadius", &G4Hype::GetInnerRadius) - .def("GetOuterRadius", &G4Hype::GetOuterRadius) - .def("GetZHalfLength", &G4Hype::GetZHalfLength) - .def("GetInnerStereo", &G4Hype::GetInnerStereo) - .def("GetOuterStereo", &G4Hype::GetOuterStereo) - .def("SetInnerRadius", &G4Hype::SetInnerRadius) - .def("SetOuterRadius", &G4Hype::SetOuterRadius) - .def("SetZHalfLength", &G4Hype::SetZHalfLength) - .def("SetInnerStereo", &G4Hype::SetInnerStereo) - .def("SetOuterStereo", &G4Hype::SetOuterStereo) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateHype", CreateHype, return_value_policy()); - -} - diff --git a/environments/g4py/source/geometry/pyG4IntersctionSolid.cc b/environments/g4py/source/geometry/pyG4IntersctionSolid.cc deleted file mode 100644 index f58539215d..0000000000 --- a/environments/g4py/source/geometry/pyG4IntersctionSolid.cc +++ /dev/null @@ -1,52 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4IntersectionSolid.cc -// -// 2007 Q -// ==================================================================== -#include -#include "G4IntersectionSolid.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4IntersectionSolid() -{ - class_,boost::noncopyable> - ("G4IntersectionSolid", "intersection solid class", no_init) - // --- - .def(init()) - .def(init()) - .def(init()) - ; -} - diff --git a/environments/g4py/source/geometry/pyG4LogicalVolume.cc b/environments/g4py/source/geometry/pyG4LogicalVolume.cc deleted file mode 100644 index 2810d3a029..0000000000 --- a/environments/g4py/source/geometry/pyG4LogicalVolume.cc +++ /dev/null @@ -1,152 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4LogicalVolume.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4LogicalVolume.hh" -#include "G4Material.hh" -#include "G4VSolid.hh" -#include "G4FieldManager.hh" -#include "G4VSensitiveDetector.hh" -#include "G4UserLimits.hh" -#include "G4SmartVoxelHeader.hh" -#include "G4MaterialCutsCouple.hh" -#include "G4FastSimulationManager.hh" -#include "G4VisAttributes.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4LogicalVolume { - -void(G4LogicalVolume::*f1_SetVisAttributes)(const G4VisAttributes*) - = &G4LogicalVolume::SetVisAttributes; - -void(G4LogicalVolume::*f2_SetVisAttributes)(const G4VisAttributes&) - = &G4LogicalVolume::SetVisAttributes; - -G4VSolid*(G4LogicalVolume::*f1_GetSolid)() const = &G4LogicalVolume::GetSolid; - -void(G4LogicalVolume::*f1_SetSolid)(G4VSolid*) - = &G4LogicalVolume::SetSolid; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetMass, GetMass, 0, 3) - -} - -using namespace pyG4LogicalVolume; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4LogicalVolume() -{ - class_ - ("G4LogicalVolume", "logical volume class", no_init) - // constructors - .def(init()) - .def(init()) - .def(init()) - .def(init()) - .def(init()) - // --- - .def("GetName", &G4LogicalVolume::GetName, - return_value_policy()) - .def("SetName", &G4LogicalVolume::SetName) - // --- - .def("GetNoDaughters", &G4LogicalVolume::GetNoDaughters) - .def("GetDaughter", &G4LogicalVolume::GetDaughter, - return_internal_reference<>()) - .def("AddDaughter", &G4LogicalVolume::AddDaughter) - .def("IsDaughter", &G4LogicalVolume::IsDaughter) - .def("IsAncestor", &G4LogicalVolume::IsAncestor) - .def("RemoveDaughter", &G4LogicalVolume::RemoveDaughter) - .def("ClearDaughters", &G4LogicalVolume::ClearDaughters) - .def("TotalVolumeEntities", &G4LogicalVolume::TotalVolumeEntities) - // ---- - .def("GetSolid", f1_GetSolid, - return_internal_reference<>()) - .def("SetSolid", f1_SetSolid) - .def("GetMaterial", &G4LogicalVolume::GetMaterial, - return_internal_reference<>()) - .def("SetMaterial", &G4LogicalVolume::SetMaterial) - .def("UpdateMaterial", &G4LogicalVolume::UpdateMaterial) - // --- - .def("GetMass", &G4LogicalVolume::GetMass, f_GetMass()) - .def("GetFieldManager", &G4LogicalVolume::GetFieldManager, - return_internal_reference<>()) - .def("SetFieldManager", &G4LogicalVolume::SetFieldManager) - .def("GetSensitiveDetector", &G4LogicalVolume::GetSensitiveDetector, - return_internal_reference<>()) - .def("SetSensitiveDetector", &G4LogicalVolume::SetSensitiveDetector) - .def("GetUserLimits", &G4LogicalVolume::GetUserLimits, - return_internal_reference<>()) - .def("SetUserLimits", &G4LogicalVolume::SetUserLimits) - // --- - .def("GetVoxelHeader", &G4LogicalVolume::GetVoxelHeader, - return_internal_reference<>()) - .def("SetVoxelHeader", &G4LogicalVolume::SetVoxelHeader) - .def("GetSmartless", &G4LogicalVolume::GetSmartless) - .def("SetSmartless", &G4LogicalVolume::SetSmartless) - .def("IsToOptimise", &G4LogicalVolume::IsToOptimise) - .def("SetOptimisation", &G4LogicalVolume::SetOptimisation) - // --- - .def("IsRootRegion", &G4LogicalVolume::IsRootRegion) - .def("SetRegionRootFlag", &G4LogicalVolume::SetRegionRootFlag) - .def("IsRegion", &G4LogicalVolume::IsRegion) - .def("SetRegion", &G4LogicalVolume::SetRegion) - .def("GetRegion", &G4LogicalVolume::GetRegion, - return_internal_reference<>()) - .def("PropagateRegion", &G4LogicalVolume::PropagateRegion) - .def("GetMaterialCutsCouple", &G4LogicalVolume::GetMaterialCutsCouple, - return_internal_reference<>()) - .def("SetMaterialCutsCouple", &G4LogicalVolume::SetMaterialCutsCouple) - // --- - .def("GetVisAttributes", &G4LogicalVolume::GetVisAttributes, - return_internal_reference<>()) - .def("SetVisAttributes", f1_SetVisAttributes) - .def("SetVisAttributes", f2_SetVisAttributes) - // --- - .def("GetFastSimulationManager", - &G4LogicalVolume::GetFastSimulationManager, - return_internal_reference<>()) - // --- - .def("SetBiasWeight", &G4LogicalVolume::SetBiasWeight) - .def("GetBiasWeight", &G4LogicalVolume::GetBiasWeight) - ; -} diff --git a/environments/g4py/source/geometry/pyG4MagneticField.cc b/environments/g4py/source/geometry/pyG4MagneticField.cc deleted file mode 100644 index 9c75b1104e..0000000000 --- a/environments/g4py/source/geometry/pyG4MagneticField.cc +++ /dev/null @@ -1,104 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4MagneticField.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4MagneticField.hh" -#include "G4ThreeVector.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== - -class PyG4MagneticField : public G4MagneticField { -public: - PyG4MagneticField() { } - ~PyG4MagneticField() { } - - virtual G4ThreeVector GetFieldValue(const G4ThreeVector& pos, - const G4double time) const = 0; - - virtual void GetFieldValue(const G4double Point[4], - G4double* Bfield) const { - - const G4ThreeVector& bfield= - GetFieldValue(G4ThreeVector(Point[0], Point[1], Point[2]), Point[3]); - - Bfield[0]= bfield.x(); - Bfield[1]= bfield.y(); - Bfield[2]= bfield.z(); - } - -}; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4MagneticField { - -struct CB_PyG4MagneticField : - PyG4MagneticField, wrapper { - - using PyG4MagneticField::GetFieldValue; - - G4ThreeVector GetFieldValue(const G4ThreeVector& pos, - const G4double time) const { - return get_override("GetFieldValue")(pos, time); - } - -}; - -G4ThreeVector(PyG4MagneticField::*f1_GetFieldValue) - (const G4ThreeVector&, const G4double) const - = &PyG4MagneticField::GetFieldValue; - -} - -using namespace pyG4MagneticField; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4MagneticField() -{ - class_ - ("__G4MagneticField", "dummy class of magnetic field", no_init) - ; - - class_ > - ("G4MagneticField", "base class of magnetic field") - // --- - .def("DoesFieldChangeEnergy", &G4MagneticField::DoesFieldChangeEnergy) - .def("GetFieldValue", pure_virtual(f1_GetFieldValue)) - ; -} - diff --git a/environments/g4py/source/geometry/pyG4Navigator.cc b/environments/g4py/source/geometry/pyG4Navigator.cc deleted file mode 100644 index 1558341fee..0000000000 --- a/environments/g4py/source/geometry/pyG4Navigator.cc +++ /dev/null @@ -1,54 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Navigator.cc -// -// Only limitted functionalities are exposed. -// -// 2007 Q -// ==================================================================== -#include -#include "G4Navigator.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Navigator() -{ - class_ - ("G4Navigator", "navigator") - // --- - .def("GetWorldVolume", &G4Navigator::GetWorldVolume, - return_value_policy()) - .def("GetVerboseLevel", &G4Navigator::GetVerboseLevel) - .def("SetVerboseLevel", &G4Navigator::SetVerboseLevel) - .def("IsActive", &G4Navigator::IsActive) - .def("PrintState", &G4Navigator::PrintState) - ; -} - diff --git a/environments/g4py/source/geometry/pyG4Orb.cc b/environments/g4py/source/geometry/pyG4Orb.cc deleted file mode 100644 index b95247edae..0000000000 --- a/environments/g4py/source/geometry/pyG4Orb.cc +++ /dev/null @@ -1,69 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Orb.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Orb.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4Orb { - -G4Orb* CreateOrb(const G4String& name, G4double pRmax) -{ - return new G4Orb(name, pRmax); -} - -} - -using namespace pyG4Orb; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Orb() -{ - class_ > - ("G4Orb", "Orb solid class", no_init) - // constructors - .def(init()) - // --- - .def("GetRadius", &G4Orb::GetRadius) - .def("SetRadius", &G4Orb::SetRadius) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateOrb", CreateOrb, return_value_policy()); - -} diff --git a/environments/g4py/source/geometry/pyG4PVPlacement.cc b/environments/g4py/source/geometry/pyG4PVPlacement.cc deleted file mode 100644 index 9c837cc113..0000000000 --- a/environments/g4py/source/geometry/pyG4PVPlacement.cc +++ /dev/null @@ -1,87 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4PVPlacement.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4PVPlacement.hh" -#include "G4LogicalVolume.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4PVPlacement { - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_CheckOverlaps, - CheckOverlaps, 0, 3) - -} - -using namespace pyG4PVPlacement; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4PVPlacement() -{ - class_, - boost::noncopyable > - ("G4PVPlacement", "physical volume placement", no_init) - // --- - .def(init()) - .def(init()) - .def(init()) - .def(init()) -#if G4VERSION_NUMBER >=800 - .def(init()) - .def(init()) - .def(init()) - .def(init()) -#endif - // --- -#if G4VERSION_NUMBER >=800 - .def("CheckOverlaps", &G4PVPlacement::CheckOverlaps, f_CheckOverlaps()) -#endif - ; -} - diff --git a/environments/g4py/source/geometry/pyG4PVReplica.cc b/environments/g4py/source/geometry/pyG4PVReplica.cc deleted file mode 100644 index 04228608ad..0000000000 --- a/environments/g4py/source/geometry/pyG4PVReplica.cc +++ /dev/null @@ -1,57 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4PVReplica.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4PVReplica.hh" -#include "G4LogicalVolume.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4PVReplica() -{ - class_, - boost::noncopyable > - ("G4PVReplica", "physical volume placement with replication", no_init) - // constructors - .def(init()) - .def(init()) - .def(init()) - .def(init()) - // --- - .def("GetMultiplicity", &G4PVReplica::GetMultiplicity) - ; -} diff --git a/environments/g4py/source/geometry/pyG4Para.cc b/environments/g4py/source/geometry/pyG4Para.cc deleted file mode 100644 index d3e4a3dde7..0000000000 --- a/environments/g4py/source/geometry/pyG4Para.cc +++ /dev/null @@ -1,82 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Para.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Para.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4Para { - -G4Para* CreatePara(const G4String& name, - G4double pDx, G4double pDy, G4double pDz, - G4double pAlpha, G4double pTheta, G4double pPhi) -{ - return new G4Para(name, pDx, pDy, pDz, pAlpha, pTheta, pPhi); -} - -} - -using namespace pyG4Para; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Para() -{ - class_ > - ("G4Para", "Skewed box sold class", no_init) - // constructors - .def(init()) - // --- - .def("GetZHalfLength", &G4Para::GetZHalfLength) - .def("GetSymAxis", &G4Para::GetSymAxis) - .def("GetYHalfLength", &G4Para::GetYHalfLength) - .def("GetXHalfLength", &G4Para::GetXHalfLength) - .def("GetTanAlpha", &G4Para::GetTanAlpha) - .def("SetXHalfLength", &G4Para::SetXHalfLength) - .def("SetYHalfLength", &G4Para::SetYHalfLength) - .def("SetZHalfLength", &G4Para::SetZHalfLength) - .def("SetAlpha", &G4Para::SetAlpha) - .def("SetTanAlpha", &G4Para::SetTanAlpha) - .def("SetThetaAndPhi", &G4Para::SetThetaAndPhi) - .def("SetAllParameters", &G4Para::SetAllParameters) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreatePara", CreatePara, return_value_policy()); -} - diff --git a/environments/g4py/source/geometry/pyG4Polycone.cc b/environments/g4py/source/geometry/pyG4Polycone.cc deleted file mode 100644 index 94aafadf6b..0000000000 --- a/environments/g4py/source/geometry/pyG4Polycone.cc +++ /dev/null @@ -1,112 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Polycone.cc -// -// 2007 Q -// ==================================================================== -#include -#include -#include "G4Polycone.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4Polycone { - -// create solid methods - -G4Polycone* f1_CreatePolycone(const G4String& name, G4double phiStart, - G4double phiTotal, G4int numZPlanes, - const std::vector& zPlane, - const std::vector& rInner, - const std::vector& rOuter) -{ - std::unique_ptr zlist(new G4double[numZPlanes]); - std::unique_ptr r0list(new G4double[numZPlanes]); - std::unique_ptr r1list(new G4double[numZPlanes]); - - for (G4int i=0; i< numZPlanes; i++) { - zlist[i]= zPlane[i]; - r0list[i]= rInner[i]; - r1list[i]= rOuter[i]; - } - - return new G4Polycone(name, phiStart, phiTotal, numZPlanes, - zlist.get(), r0list.get(), r1list.get()); -} - - -G4Polycone* f2_CreatePolycone(const G4String& name, G4double phiStart, - G4double phiTotal, G4int numRZ, - const std::vector& r, - const std::vector& z) -{ - std::unique_ptr zlist(new G4double[numRZ]); - std::unique_ptr rlist(new G4double[numRZ]); - - for (G4int i=0; i< numRZ; i++) { - rlist[i]= r[i]; - zlist[i]= z[i]; - } - - return new G4Polycone(name, phiStart, phiTotal, numRZ, - rlist.get(), zlist.get()); - -} - -} - -using namespace pyG4Polycone; - - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Polycone() -{ - class_ > - ("G4Polycone", "Polycone solid class", no_init) - // --- - .def("GetStartPhi", &G4Polycone::GetStartPhi) - .def("GetEndPhi", &G4Polycone::GetEndPhi) - .def("IsOpen", &G4Polycone::IsOpen) - .def("GetNumRZCorner", &G4Polycone::GetNumRZCorner) - - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreatePolycone", f1_CreatePolycone, - return_value_policy()); - def("CreatePolycone", f2_CreatePolycone, - return_value_policy()); - -} - diff --git a/environments/g4py/source/geometry/pyG4Polyhedra.cc b/environments/g4py/source/geometry/pyG4Polyhedra.cc deleted file mode 100644 index 5c51484b8d..0000000000 --- a/environments/g4py/source/geometry/pyG4Polyhedra.cc +++ /dev/null @@ -1,114 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Polyhedra.cc -// -// 2007 Q -// ==================================================================== -#include -#include -#include "G4Polyhedra.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4Polyhedra { - -// create solid methods - -G4Polyhedra* f1_CreatePolyhedra(const G4String& name, - G4double phiStart, G4double phiTotal, - G4int numSide, G4int numZPlanes, - const std::vector& zPlane, - const std::vector& rInner, - const std::vector& rOuter) -{ - std::unique_ptr zlist(new G4double[numZPlanes]); - std::unique_ptr r0list(new G4double[numZPlanes]); - std::unique_ptr r1list(new G4double[numZPlanes]); - - for (G4int i=0; i< numZPlanes; i++) { - zlist[i]= zPlane[i]; - r0list[i]= rInner[i]; - r1list[i]= rOuter[i]; - } - - return new G4Polyhedra(name, phiStart, phiTotal, numSide, numZPlanes, - zlist.get(), r0list.get(), r1list.get()); -} - - -G4Polyhedra* f2_CreatePolyhedra(const G4String& name, - G4double phiStart, G4double phiTotal, - G4int numSide, G4int numRZ, - const std::vector& r, - const std::vector& z) -{ - std::unique_ptr zlist(new G4double[numRZ]); - std::unique_ptr rlist(new G4double[numRZ]); - - for (G4int i=0; i< numRZ; i++) { - zlist[i]= z[i]; - rlist[i]= r[i]; - } - - return new G4Polyhedra(name, phiStart, phiTotal, numSide, numRZ, - rlist.get(), zlist.get()); - -} - -} - -using namespace pyG4Polyhedra; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Polyhedra() -{ - class_ > - ("G4Polyhedra", "Polyhedra solid class", no_init) - // --- - .def("GetStartPhi", &G4Polyhedra::GetStartPhi) - .def("GetEndPhi", &G4Polyhedra::GetEndPhi) - .def("GetNumSide", &G4Polyhedra::GetNumSide) - .def("GetNumRZCorner", &G4Polyhedra::GetNumRZCorner) - .def("IsOpen", &G4Polyhedra::IsOpen) - .def("IsGeneric", &G4Polyhedra::IsGeneric) - - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreatePolyhedra", f1_CreatePolyhedra, - return_value_policy()); - def("CreatePolyhedra", f2_CreatePolyhedra, - return_value_policy()); -} - diff --git a/environments/g4py/source/geometry/pyG4Region.cc b/environments/g4py/source/geometry/pyG4Region.cc deleted file mode 100644 index bc7cf8c225..0000000000 --- a/environments/g4py/source/geometry/pyG4Region.cc +++ /dev/null @@ -1,93 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Region.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4Region.hh" -#include "G4LogicalVolume.hh" -#include "G4ProductionCuts.hh" -#include "G4VUserRegionInformation.hh" -#include "G4UserLimits.hh" -#include "G4MaterialCutsCouple.hh" -#include "G4FastSimulationManager.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Region() -{ - class_ - ("G4Region", "region class", no_init) - // constructors - .def(init()) - // --- - .def("AddRootLogicalVolume", &G4Region::AddRootLogicalVolume) - .def("RemoveRootLogicalVolume", &G4Region::RemoveRootLogicalVolume) - .def("SetName", &G4Region::SetName) - .def("GetName", &G4Region::GetName, - return_value_policy()) - .def("RegionModified", &G4Region::RegionModified) - .def("IsModified", &G4Region::IsModified) - .def("SetProductionCuts", &G4Region::SetProductionCuts) - .def("GetProductionCuts", &G4Region::GetProductionCuts, - return_internal_reference<>()) - .def("GetNumberOfMaterials", &G4Region::GetNumberOfMaterials) - .def("GetNumberOfRootVolumes", &G4Region::GetNumberOfRootVolumes) - .def("UpdateMaterialList", &G4Region::UpdateMaterialList) - .def("ClearMaterialList", &G4Region::ClearMaterialList) - .def("ScanVolumeTree", &G4Region::ScanVolumeTree) - .def("SetUserInformation", &G4Region::SetUserInformation) - .def("GetUserInformation", &G4Region::GetUserInformation, - return_internal_reference<>()) -#if G4VERSION_NUMBER >= 710 - .def("SetUserLimits", &G4Region::SetUserLimits) - .def("GetUserLimits", &G4Region::GetUserLimits, - return_internal_reference<>()) -#endif - .def("ClearMap", &G4Region::ClearMap) - .def("RegisterMaterialCouplePair", &G4Region::RegisterMaterialCouplePair) - .def("FindCouple", &G4Region::FindCouple, - return_value_policy()) -#if G4VERSION_NUMBER >= 800 - .def("SetFastSimulationManager", &G4Region::SetFastSimulationManager) - .def("GetFastSimulationManager", &G4Region::GetFastSimulationManager, - return_internal_reference<>()) - .def("ClearFastSimulationManager", &G4Region::ClearFastSimulationManager) - .def("GetWorldPhysical", &G4Region::GetWorldPhysical, - return_internal_reference<>()) - .def("SetWorld", &G4Region::SetWorld) - .def("BelongsTo", &G4Region::BelongsTo) - .def("GetParentRegion", &G4Region::GetParentRegion, - return_value_policy()) -#endif - ; - } diff --git a/environments/g4py/source/geometry/pyG4Sphere.cc b/environments/g4py/source/geometry/pyG4Sphere.cc deleted file mode 100644 index 6537590fd7..0000000000 --- a/environments/g4py/source/geometry/pyG4Sphere.cc +++ /dev/null @@ -1,81 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Sphere.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Sphere.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4Sphere { - -G4Sphere* CreateSphere(const G4String& name, - G4double pRmin, G4double pRmax, - G4double pSPhi, G4double pDPhi, - G4double pSTheta, G4double pDTheta) -{ - return new G4Sphere(name, pRmin, pRmax, pSPhi, pDPhi, pSTheta, pDTheta); -} - -} - -using namespace pyG4Sphere; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Sphere() -{ - class_ > - ("G4Sphere", "Sphere solid class", no_init) - // constructors - .def(init()) - // --- - .def("GetOuterRadius", &G4Sphere::GetOuterRadius) - .def("GetStartPhiAngle", &G4Sphere::GetStartPhiAngle) - .def("GetDeltaPhiAngle", &G4Sphere::GetDeltaPhiAngle) - .def("GetStartThetaAngle", &G4Sphere::GetStartThetaAngle) - .def("GetDeltaThetaAngle", &G4Sphere::GetDeltaThetaAngle) - .def("SetOuterRadius", &G4Sphere::SetOuterRadius) - .def("SetStartPhiAngle", &G4Sphere::SetStartPhiAngle) - .def("SetDeltaPhiAngle", &G4Sphere::SetDeltaPhiAngle) - .def("SetStartThetaAngle", &G4Sphere::SetStartThetaAngle) - .def("SetDeltaThetaAngle", &G4Sphere::SetDeltaThetaAngle) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateSphere", CreateSphere, return_value_policy()); - -} diff --git a/environments/g4py/source/geometry/pyG4SubtractionSolid.cc b/environments/g4py/source/geometry/pyG4SubtractionSolid.cc deleted file mode 100644 index a4d5aeb563..0000000000 --- a/environments/g4py/source/geometry/pyG4SubtractionSolid.cc +++ /dev/null @@ -1,53 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4SubtractionSolid.cc -// -// 2007 Q -// ==================================================================== -#include -#include "G4SubtractionSolid.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4SubtractionSolid() -{ - class_,boost::noncopyable> - ("G4SubtractionSolid", "subtraction solid class", no_init) - // --- - .def(init()) - .def(init()) - .def(init()) - ; - -} - diff --git a/environments/g4py/source/geometry/pyG4Tet.cc b/environments/g4py/source/geometry/pyG4Tet.cc deleted file mode 100644 index 90935b1553..0000000000 --- a/environments/g4py/source/geometry/pyG4Tet.cc +++ /dev/null @@ -1,68 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Tet.cc -// -// 2007 Q -// ==================================================================== -#include -#include "G4Tet.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4Tet { - -G4Tet* CreateTet(const G4String& name, G4ThreeVector anchor, G4ThreeVector p2, - G4ThreeVector p3, G4ThreeVector p4) -{ - return new G4Tet(name, anchor, p2, p3, p4); -} - -} - -using namespace pyG4Tet; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Tet() -{ - class_ > - ("G4Tet", "tetrahedra solid class", no_init) - // constructors - .def(init()) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateTet", CreateTet, return_value_policy()); - -} diff --git a/environments/g4py/source/geometry/pyG4Torus.cc b/environments/g4py/source/geometry/pyG4Torus.cc deleted file mode 100644 index 20bacf62f8..0000000000 --- a/environments/g4py/source/geometry/pyG4Torus.cc +++ /dev/null @@ -1,73 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Torus.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Torus.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4Torus { - -G4Torus* CreateTorus(const G4String& name, G4double pRmin, G4double pRmax, - G4double pRtor, G4double pSPhi, G4double pDPhi) -{ - return new G4Torus(name, pRmin, pRmax, pRtor, pSPhi, pDPhi); -} - -} - -using namespace pyG4Torus; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Torus() -{ - class_ > - ("G4Torus", "Torus solid class", no_init) - // constructors - .def(init()) - // --- - .def("GetRmin", &G4Torus::GetRmin) - .def("GetRmax", &G4Torus::GetRmax) - .def("GetRtor", &G4Torus::GetRtor) - .def("GetSPhi", &G4Torus::GetSPhi) - .def("GetDPhi", &G4Torus::GetDPhi) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateTorus", CreateTorus, return_value_policy()); -} diff --git a/environments/g4py/source/geometry/pyG4TouchableHistory.cc b/environments/g4py/source/geometry/pyG4TouchableHistory.cc deleted file mode 100644 index eecc8e6514..0000000000 --- a/environments/g4py/source/geometry/pyG4TouchableHistory.cc +++ /dev/null @@ -1,45 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VTouchable.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4TouchableHistory.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4TouchableHistory() -{ - class_ > - ("G4TouchableHistory", "touchable history class") - ; -} - diff --git a/environments/g4py/source/geometry/pyG4TransportationManager.cc b/environments/g4py/source/geometry/pyG4TransportationManager.cc deleted file mode 100644 index cb4f3bb015..0000000000 --- a/environments/g4py/source/geometry/pyG4TransportationManager.cc +++ /dev/null @@ -1,67 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4TransportationManager.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4TransportationManager.hh" -#include "G4PropagatorInField.hh" -#include "G4FieldManager.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4TransportationManager() -{ - class_ - ("G4TransportationManager", "manager class for transportation", no_init) - // --- - .def("GetTransportationManager", - &G4TransportationManager::GetTransportationManager, - return_value_policy()) - .staticmethod("GetTransportationManager") - .def("GetNavigatorForTracking", - &G4TransportationManager::GetNavigatorForTracking, - return_internal_reference<>()) - .def("GetPropagatorInField", - &G4TransportationManager::GetPropagatorInField, - return_internal_reference<>()) - .def("GetFieldManager", - &G4TransportationManager::GetFieldManager, - return_internal_reference<>()) - .def("SetNavigatorForTracking", - &G4TransportationManager::SetNavigatorForTracking) - .def("SetPropagatorInField", - &G4TransportationManager::SetPropagatorInField) - .def("SetFieldManager", - &G4TransportationManager::SetFieldManager) - ; -} - diff --git a/environments/g4py/source/geometry/pyG4Trap.cc b/environments/g4py/source/geometry/pyG4Trap.cc deleted file mode 100644 index 8c9c7eded2..0000000000 --- a/environments/g4py/source/geometry/pyG4Trap.cc +++ /dev/null @@ -1,141 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Trap.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Trap.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4Trap { - -G4Trap* f1_CreateTrap(const G4String& name) -{ - return new G4Trap(name); -} - - -G4Trap* f2_CreateTrap(const G4String& name, G4double pDz, - G4double pTheta, G4double pPhi, - G4double pDy1, G4double pDx1, G4double pDx2, - G4double pAlp1, - G4double pDy2, G4double pDx3, G4double pDx4, - G4double pAlp2) -{ - return new G4Trap(name, pDz, pTheta, pPhi, - pDy1, pDx1, pDx2, pAlp1, - pDy2, pDx3, pDx4, pAlp2); - -} - - -G4Trap* f3_CreateTrap(const G4String& name, - const std::vector& pt) -{ - G4ThreeVector ptlist[8]; - for (G4int i=0; i<8; i++) { - ptlist[i]= pt[i]; - } - - return new G4Trap(name, ptlist); -} - - -G4Trap* f4_CreateTrap(const G4String& name, G4double pZ, - G4double pY, G4double pX, G4double pLTX) -{ - return new G4Trap(name, pZ, pY, pX, pLTX); -} - - -G4Trap* f5_CreateTrap(const G4String& name, G4double pDx1, G4double pDx2, - G4double pDy1, G4double pDy2, G4double pDz) -{ - return new G4Trap(name, pDx1, pDx2, pDy1, pDy2, pDz); -} - - -G4Trap* f6_CreateTrap(const G4String& name, G4double pDx, G4double pDy, - G4double pDz, - G4double pAlpha, G4double pTheta, G4double pPhi ) -{ - return new G4Trap(name, pDx, pDy, pDz, pAlpha, pTheta, pPhi); -} - -} - -using namespace pyG4Trap; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Trap() -{ - class_ > - ("G4Trap", "Generic trapezoild soild class", no_init) - // constructors - .def(init()) - .def(init()) - .def(init()) - .def(init()) - .def(init()) - // --- - .def("GetZHalfLength", &G4Trap::GetZHalfLength) - .def("GetYHalfLength1", &G4Trap::GetYHalfLength1) - .def("GetXHalfLength1", &G4Trap::GetXHalfLength1) - .def("GetXHalfLength2", &G4Trap::GetXHalfLength2) - .def("GetTanAlpha1", &G4Trap::GetTanAlpha1) - .def("GetYHalfLength2", &G4Trap::GetYHalfLength2) - .def("GetXHalfLength3", &G4Trap::GetXHalfLength3) - .def("GetXHalfLength4", &G4Trap::GetXHalfLength4) - .def("GetTanAlpha2", &G4Trap::GetTanAlpha2) - .def("GetSidePlane", &G4Trap::GetSidePlane) - .def("GetSymAxis", &G4Trap::GetSymAxis) - .def("SetAllParameters", &G4Trap::SetAllParameters) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateTrap", f1_CreateTrap, return_value_policy()); - def("CreateTrap", f2_CreateTrap, return_value_policy()); - def("CreateTrap", f3_CreateTrap, return_value_policy()); - def("CreateTrap", f4_CreateTrap, return_value_policy()); - def("CreateTrap", f5_CreateTrap, return_value_policy()); - def("CreateTrap", f6_CreateTrap, return_value_policy()); - -} - diff --git a/environments/g4py/source/geometry/pyG4Trd.cc b/environments/g4py/source/geometry/pyG4Trd.cc deleted file mode 100644 index bc3c4a42d3..0000000000 --- a/environments/g4py/source/geometry/pyG4Trd.cc +++ /dev/null @@ -1,80 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Trd.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Trd.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4Trd { - -G4Trd* CreateTrd(const G4String& name, G4double pdx1, G4double pdx2, - G4double pdy1, G4double pdy2, G4double pdz ) -{ - return new G4Trd(name, pdx1, pdx2, pdy1, pdy2, pdz); -} - -} - -using namespace pyG4Trd; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Trd() -{ - class_ > - ("G4Trd", "Trapezoild solid class", no_init) - // constructors - .def(init()) - // --- - .def("GetXHalfLength1", &G4Trd::GetXHalfLength1) - .def("GetXHalfLength2", &G4Trd::GetXHalfLength2) - .def("GetYHalfLength1", &G4Trd::GetYHalfLength1) - .def("GetYHalfLength2", &G4Trd::GetYHalfLength2) - .def("GetZHalfLength", &G4Trd::GetZHalfLength) - .def("SetXHalfLength1", &G4Trd::SetXHalfLength1) - .def("SetXHalfLength2", &G4Trd::SetXHalfLength2) - .def("SetYHalfLength1", &G4Trd::SetYHalfLength1) - .def("SetYHalfLength2", &G4Trd::SetYHalfLength2) - .def("SetZHalfLength", &G4Trd::SetZHalfLength) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateTrd", CreateTrd, return_value_policy()); - -} - diff --git a/environments/g4py/source/geometry/pyG4Tubs.cc b/environments/g4py/source/geometry/pyG4Tubs.cc deleted file mode 100644 index c4edc7c2e1..0000000000 --- a/environments/g4py/source/geometry/pyG4Tubs.cc +++ /dev/null @@ -1,80 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Tubs.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Tubs.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4Tubs { - -G4Tubs* CreateTubs(const G4String& name, G4double pRMin, G4double pRMax, - G4double pDz, G4double pSPhi, G4double pDPhi ) -{ - return new G4Tubs(name, pRMin, pRMax, pDz, pSPhi, pDPhi); -} - -} - -using namespace pyG4Tubs; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Tubs() -{ - class_ > - ("G4Tubs", "Tube solid class", no_init) - // constructors - .def(init()) - // --- - .def("GetInnerRadius", &G4Tubs::GetInnerRadius) - .def("GetOuterRadius", &G4Tubs::GetOuterRadius) - .def("GetZHalfLength", &G4Tubs::GetZHalfLength) - .def("GetStartPhiAngle", &G4Tubs::GetStartPhiAngle) - .def("GetDeltaPhiAngle", &G4Tubs::GetDeltaPhiAngle) - .def("SetInnerRadius", &G4Tubs::SetInnerRadius) - .def("SetOuterRadius", &G4Tubs::SetOuterRadius) - .def("SetZHalfLength", &G4Tubs::SetZHalfLength) - .def("SetStartPhiAngle", &G4Tubs::SetStartPhiAngle) - .def("SetDeltaPhiAngle", &G4Tubs::SetDeltaPhiAngle) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateTubs", CreateTubs, return_value_policy()); - -} - diff --git a/environments/g4py/source/geometry/pyG4TwistedBox.cc b/environments/g4py/source/geometry/pyG4TwistedBox.cc deleted file mode 100644 index 8bdf25121e..0000000000 --- a/environments/g4py/source/geometry/pyG4TwistedBox.cc +++ /dev/null @@ -1,77 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4TwistedBox.cc -// -// 2007 Q -// ==================================================================== -#include -#include "G4TwistedBox.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4TwistedBox { - -G4TwistedBox* CreateTwistedBox(const G4String& name, - G4double pPhiTwist, - G4double pDx, G4double pDy, G4double pDz) -{ - - return new G4TwistedBox(name, pPhiTwist, pDx, pDy, pDz ); - -} - -} - -using namespace pyG4TwistedBox; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4TwistedBox() -{ - class_ > - ("G4TwistedBox", "twisted box solid class", no_init) - // constructors - .def(init()) - // --- - .def("GetXHalfLength", &G4TwistedBox::GetXHalfLength) - .def("GetYHalfLength", &G4TwistedBox::GetYHalfLength) - .def("GetZHalfLength", &G4TwistedBox::GetZHalfLength) - .def("GetPhiTwist", &G4TwistedBox::GetPhiTwist) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateTwistedBox", CreateTwistedBox, - return_value_policy()); - -} - diff --git a/environments/g4py/source/geometry/pyG4TwistedTrap.cc b/environments/g4py/source/geometry/pyG4TwistedTrap.cc deleted file mode 100644 index 9694a3d345..0000000000 --- a/environments/g4py/source/geometry/pyG4TwistedTrap.cc +++ /dev/null @@ -1,91 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4TwistedTrap.cc -// -// 2007 Q -// ==================================================================== -#include -#include "G4TwistedTrap.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4TwistedTrap { - -G4TwistedTrap* f1_CreateTwistedTrap(const G4String& name, - G4double pPhiTwist, - G4double pDx1, G4double pDx2, - G4double pDy, G4double pDz) -{ - return new G4TwistedTrap(name, pPhiTwist, pDx1, pDx2, pDy, pDz); -} - - -G4TwistedTrap* f2_CreateTwistedTrap(const G4String& name, - G4double pPhiTwist, - G4double pDz, G4double pTheta, - G4double pPhi, G4double pDy1, - G4double pDx1, G4double pDx2, - G4double pDy2, G4double pDx3, - G4double pDx4, G4double pAlph) -{ - return new G4TwistedTrap(name, pPhiTwist, pDz, pTheta, pPhi, - pDy1, pDx1, pDx2, pDy2, pDx3, pDx4, pAlph); -} - -} - -using namespace pyG4TwistedTrap; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4TwistedTrap() -{ - class_ > - ("G4TwistedTrap", "twisted trapezoid solid class", no_init) - // constructors - .def(init()) - .def(init()) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateTwistedTap", f1_CreateTwistedTrap, - return_value_policy()); - def("CreateTwistedTap", f2_CreateTwistedTrap, - return_value_policy()); - -} - diff --git a/environments/g4py/source/geometry/pyG4TwistedTrd.cc b/environments/g4py/source/geometry/pyG4TwistedTrd.cc deleted file mode 100644 index f9d8d54960..0000000000 --- a/environments/g4py/source/geometry/pyG4TwistedTrd.cc +++ /dev/null @@ -1,79 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4TwistedTrap.cc -// -// 2007 Q -// ==================================================================== -#include -#include "G4TwistedTrd.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4TwistedTrd { - -G4TwistedTrd* CreateTwistedTrd(const G4String& name, - G4double pDx1, G4double pDx2, - G4double pDy1, G4double pDy2, - G4double pDz, G4double pPhiTwist) -{ - return new G4TwistedTrd(name, pDx1, pDx2, pDy1, pDy2, pDz, pPhiTwist); -} - -} - -using namespace pyG4TwistedTrd; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4TwistedTrd() -{ - class_ > - ("G4TwistedTrd", "twisted trapezoid solid class", no_init) - // constructors - .def(init()) - // --- - .def("GetX1HalfLength", &G4TwistedTrd::GetX1HalfLength) - .def("GetX2HalfLength", &G4TwistedTrd::GetX2HalfLength) - .def("GetY1HalfLength", &G4TwistedTrd::GetY1HalfLength) - .def("GetY2HalfLength", &G4TwistedTrd::GetY2HalfLength) - .def("GetZHalfLength", &G4TwistedTrd::GetZHalfLength) - .def("GetPhiTwist", &G4TwistedTrd::GetPhiTwist) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateTwistedTrd", CreateTwistedTrd, - return_value_policy()); - -} - diff --git a/environments/g4py/source/geometry/pyG4TwistedTubs.cc b/environments/g4py/source/geometry/pyG4TwistedTubs.cc deleted file mode 100644 index 50f7ed7a06..0000000000 --- a/environments/g4py/source/geometry/pyG4TwistedTubs.cc +++ /dev/null @@ -1,159 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4TwistedTubs.cc -// -// 2007 Q -// ==================================================================== -#include -#include "G4TwistedTubs.hh" - -using namespace boost::python; - - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4TwistedTubs { - -// GetEndInnerRadius -G4double (G4TwistedTubs::*f1_GetEndInnerRadius)(G4int) const - = &G4TwistedTubs::GetEndInnerRadius; -G4double (G4TwistedTubs::*f2_GetEndInnerRadius)(G4int) const - = &G4TwistedTubs::GetEndInnerRadius; - -// GetOuterRadius -G4double (G4TwistedTubs::*f1_GetEndOuterRadius)(G4int) const - = &G4TwistedTubs::GetEndOuterRadius; -G4double (G4TwistedTubs::*f2_GetEndOuterRadius)() const - = &G4TwistedTubs::GetEndOuterRadius; - - -// Create Solid -G4TwistedTubs* f1_CreateTwistedTubs(const G4String& name, - G4double twistedangle, - G4double endinnerrad, - G4double endouterrad, - G4double halfzlen, - G4double dphi) -{ - return new G4TwistedTubs(name, twistedangle, endinnerrad, - endouterrad, halfzlen, dphi); -} - -G4TwistedTubs* f2_CreateTwistedTubs(const G4String& name, - G4double twistedangle, - G4double endinnerrad, - G4double endouterrad, - G4double halfzlen, - G4int nseg, - G4double totphi) -{ - return new G4TwistedTubs(name, twistedangle, endinnerrad, - endouterrad, halfzlen, nseg, totphi); -} - -G4TwistedTubs* f3_CreateTwistedTubs(const G4String& name, - G4double twistedangle, - G4double innerrad, - G4double outerrad, - G4double negativeEndz, - G4double positiveEndz, - G4double dphi) -{ - return new G4TwistedTubs(name, twistedangle, innerrad, outerrad, - negativeEndz, positiveEndz, dphi); -} - -G4TwistedTubs* f4_CreateTwistedTubs(const G4String& name, - G4double twistedangle, - G4double innerrad, - G4double outerrad, - G4double negativeEndz, - G4double positiveEndz, - G4int nseg, - G4double totphi) -{ - return new G4TwistedTubs(name, twistedangle, innerrad, outerrad, - negativeEndz, positiveEndz, nseg, totphi); -} - - -} - -using namespace pyG4TwistedTubs; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4TwistedTubs() -{ - class_ > - ("G4TwistedTubs", "twisted tube solid class", no_init) - // constructors - .def(init()) - .def(init()) - .def(init()) - .def(init()) - // --- - .def("GetDPhi", &G4TwistedTubs::GetDPhi) - .def("GetPhiTwist", &G4TwistedTubs::GetPhiTwist) - .def("GetInnerRadius", &G4TwistedTubs::GetInnerRadius) - .def("GetOuterRadius", &G4TwistedTubs::GetOuterRadius) - .def("GetInnerStereo", &G4TwistedTubs::GetInnerStereo) - .def("GetOuterStereo", &G4TwistedTubs::GetOuterStereo) - .def("GetZHalfLength", &G4TwistedTubs::GetZHalfLength) - .def("GetKappa", &G4TwistedTubs::GetKappa) - .def("GetTanInnerStereo", &G4TwistedTubs::GetTanInnerStereo) - .def("GetTanInnerStereo2", &G4TwistedTubs::GetTanInnerStereo2) - .def("GetTanOuterStereo", &G4TwistedTubs::GetTanOuterStereo) - .def("GetTanOuterStereo2", &G4TwistedTubs::GetTanOuterStereo2) - .def("GetEndZ", &G4TwistedTubs::GetEndZ) - .def("GetEndPhi", &G4TwistedTubs::GetEndPhi) - .def("GetEndInnerRadius", f1_GetEndInnerRadius) - .def("GetEndInnerRadius", f2_GetEndInnerRadius) - .def("GetEndOuterRadius", f1_GetEndOuterRadius) - .def("GetEndOuterRadius", f2_GetEndOuterRadius) - // operators - .def(self_ns::str(self)) - ; - - // Create solid - def("CreateTwistedTubs", f1_CreateTwistedTubs, - return_value_policy()); - def("CreateTwistedTubs", f2_CreateTwistedTubs, - return_value_policy()); - def("CreateTwistedTubs", f3_CreateTwistedTubs, - return_value_policy()); - def("CreateTwistedTubs", f4_CreateTwistedTubs, - return_value_policy()); - -} - diff --git a/environments/g4py/source/geometry/pyG4UniformMagField.cc b/environments/g4py/source/geometry/pyG4UniformMagField.cc deleted file mode 100644 index 0dfb10ddf1..0000000000 --- a/environments/g4py/source/geometry/pyG4UniformMagField.cc +++ /dev/null @@ -1,51 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4UniformMagField.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4UniformMagField.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4UniformMagField() -{ - class_ > - ("G4UniformMagField", "uniform magnetic field", no_init) - // constructors - .def(init()) - .def(init()) - // --- - .def("SetFieldValue", &G4UniformMagField::SetFieldValue) - .def("GetConstantFieldValue", &G4UniformMagField::GetConstantFieldValue) - ; -} diff --git a/environments/g4py/source/geometry/pyG4UnionSolid.cc b/environments/g4py/source/geometry/pyG4UnionSolid.cc deleted file mode 100644 index 30c4c65c55..0000000000 --- a/environments/g4py/source/geometry/pyG4UnionSolid.cc +++ /dev/null @@ -1,53 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4UnionSolid.cc -// -// 2007 Q -// ==================================================================== -#include -#include "G4UnionSolid.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4UnionSolid() -{ - class_,boost::noncopyable> - ("G4UnionSolid", "union solid class", no_init) - // --- - .def(init()) - .def(init()) - .def(init()) - ; - -} - diff --git a/environments/g4py/source/geometry/pyG4VPhysicalVolume.cc b/environments/g4py/source/geometry/pyG4VPhysicalVolume.cc deleted file mode 100644 index 8e50becad1..0000000000 --- a/environments/g4py/source/geometry/pyG4VPhysicalVolume.cc +++ /dev/null @@ -1,97 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VPhysicalVolume.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4VPhysicalVolume.hh" -#include "G4LogicalVolume.hh" -#include "G4VPVParameterisation.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4VPhysicalVolume { - -const G4RotationMatrix*(G4VPhysicalVolume::*f1_GetRotation)() const - = &G4VPhysicalVolume::GetRotation; - -G4RotationMatrix*(G4VPhysicalVolume::*f2_GetRotation)() - = &G4VPhysicalVolume::GetRotation; - -} - -using namespace pyG4VPhysicalVolume; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VPhysicalVolume() -{ - class_ - ("G4VPhysicalVolume", "physical volume class", no_init) - // --- - .def("SetTranslation", &G4VPhysicalVolume::SetTranslation) - .def("GetTranslation", &G4VPhysicalVolume::GetTranslation, - return_value_policy()) - .def("GetObjectTranslation", &G4VPhysicalVolume::GetObjectTranslation) - .def("GetFrameTranslation", &G4VPhysicalVolume::GetObjectTranslation) - // --- - .def("SetRotation", &G4VPhysicalVolume::SetRotation) - .def("GetRotation", f1_GetRotation, - return_internal_reference<>()) - .def("GetRotation", f2_GetRotation, - return_internal_reference<>()) - .def("GetObjectRotationValue", &G4VPhysicalVolume::GetObjectRotationValue) - .def("GetFrameRotation", &G4VPhysicalVolume::GetFrameRotation, - return_internal_reference<>()) - // --- - .def("SetLogicalVolume", &G4VPhysicalVolume::SetLogicalVolume) - .def("SetMotherLogical", &G4VPhysicalVolume::SetMotherLogical) - .def("GetLogicalVolume", &G4VPhysicalVolume::GetLogicalVolume, - return_internal_reference<>()) - .def("GetMotherLogical", &G4VPhysicalVolume::GetMotherLogical, - return_internal_reference<>()) - // --- - .def("SetName", &G4VPhysicalVolume::SetName) - .def("GetName", &G4VPhysicalVolume::GetName, - return_value_policy()) - .def("SetCopyNo", &G4VPhysicalVolume::SetCopyNo) - .def("GetCopyNo", &G4VPhysicalVolume::GetCopyNo) - // --- - .def("IsMany", &G4VPhysicalVolume::IsMany) - .def("IsReplicated", &G4VPhysicalVolume::IsReplicated) - .def("IsParameterised", &G4VPhysicalVolume::IsParameterised) - .def("GetMultiplicity", &G4VPhysicalVolume::GetMultiplicity) - .def("GetParameterisation", &G4VPhysicalVolume::GetParameterisation, - return_value_policy()) - ; -} diff --git a/environments/g4py/source/geometry/pyG4VSolid.cc b/environments/g4py/source/geometry/pyG4VSolid.cc deleted file mode 100644 index 0393a876cc..0000000000 --- a/environments/g4py/source/geometry/pyG4VSolid.cc +++ /dev/null @@ -1,60 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VSolid.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4VSolid.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VSolid() -{ - class_ - ("G4VSolid", "solid class", no_init) - // --- - .def("GetName", &G4VSolid::GetName) - .def("SetName", &G4VSolid::SetName) - .def("DumpInfo", &G4VSolid::DumpInfo) - - .def("GetCubicVolume", &G4VSolid::GetCubicVolume) -#if G4VERSION_NUMBER >=820 - .def("GetSurfaceArea", &G4VSolid::GetSurfaceArea) -#endif -#if G4VERSION_NUMBER >=800 - .def("GetPointOnSurface", &G4VSolid::GetPointOnSurface) -#endif - // operators - .def(self == self) - ; -} - diff --git a/environments/g4py/source/geometry/pyG4VTouchable.cc b/environments/g4py/source/geometry/pyG4VTouchable.cc deleted file mode 100644 index 557382c306..0000000000 --- a/environments/g4py/source/geometry/pyG4VTouchable.cc +++ /dev/null @@ -1,88 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VTouchable.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4VTouchable.hh" -#include "G4VPhysicalVolume.hh" -#include "G4VSolid.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4VTouchable { - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetTranslation, - GetTranslation, 0, 1) - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetRotation, - GetRotation, 0, 1) - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetVolume, GetVolume, 0, 1) - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetSolid, GetSolid, 0, 1) - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetReplicaNumber, - GetReplicaNumber, 0, 1) - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_MoveUpHistory, MoveUpHistory, 0, 1) - -} - -using namespace pyG4VTouchable; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VTouchable() -{ - class_ - ("G4VTouchable", "touchable class", no_init) - .def("GetTranslation", &G4VTouchable::GetTranslation, - f_GetTranslation() - [return_value_policy()]) - .def("GetRotation", &G4VTouchable::GetRotation, - f_GetRotation() - [return_value_policy()]) - .def("GetVolume", &G4VTouchable::GetVolume, - f_GetVolume() - [return_value_policy()]) - .def("GetSolid", &G4VTouchable::GetSolid, - f_GetSolid() - [return_value_policy()]) - .def("GetReplicaNumber", &G4VTouchable::GetReplicaNumber, - f_GetReplicaNumber()) - .def("GetHistoryDepth", &G4VTouchable::GetHistoryDepth) - .def("MoveUpHistory", &G4VTouchable::MoveUpHistory, - f_MoveUpHistory()) - ; -} - diff --git a/environments/g4py/source/geometry/pymodG4geometry.cc b/environments/g4py/source/geometry/pymodG4geometry.cc deleted file mode 100644 index 1d643b6ce3..0000000000 --- a/environments/g4py/source/geometry/pymodG4geometry.cc +++ /dev/null @@ -1,122 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pymodG4geometry.cc [Geant4Py module] -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4GeometryManager(); -void export_G4VTouchable(); -void export_G4TouchableHistory(); -void export_G4VPhysicalVolume(); -void export_G4PVPlacement(); -void export_G4PVReplica(); -void export_G4LogicalVolume(); -void export_G4Region(); -void export_G4VSolid(); -void export_G4Box(); -void export_G4Cons(); -void export_G4Para(); -void export_G4Torus(); -void export_G4Trd(); -void export_G4Orb(); -void export_G4Sphere(); -void export_G4Trap(); -void export_G4Tubs(); -void export_G4Polycone(); -void export_G4Polyhedra(); -void export_G4EllipticalTube(); -void export_G4Ellipsoid(); -void export_G4EllipticalCone(); -void export_G4Hype(); -void export_G4Tet(); -void export_G4TwistedBox(); -void export_G4TwistedTrap(); -void export_G4TwistedTrd(); -void export_G4TwistedTubs(); -void export_G4BooleanSolid(); -void export_G4UnionSolid(); -void export_G4IntersectionSolid(); -void export_G4SubtractionSolid(); -void export_G4TransportationManager(); -void export_G4Navigator(); -void export_G4FieldManager(); -void export_G4Field(); -void export_G4MagneticField(); -void export_G4UniformMagField(); -void export_G4ChordFinder(); - -BOOST_PYTHON_MODULE(G4geometry) -{ - export_G4GeometryManager(); - export_G4VTouchable(); - export_G4TouchableHistory(); - export_G4VPhysicalVolume(); - export_G4PVPlacement(); - export_G4PVReplica(); - export_G4LogicalVolume(); - export_G4Region(); - export_G4VSolid(); - export_G4Box(); - export_G4Cons(); - export_G4Para(); - export_G4Torus(); - export_G4Trd(); - export_G4Orb(); - export_G4Sphere(); - export_G4Trap(); - export_G4Tubs(); - export_G4Polycone(); - export_G4Polyhedra(); - export_G4EllipticalTube(); - export_G4Ellipsoid(); - export_G4EllipticalCone(); - export_G4Hype(); - export_G4Tet(); - export_G4TwistedBox(); - export_G4TwistedTrap(); - export_G4TwistedTrd(); - export_G4TwistedTubs(); - export_G4BooleanSolid(); - export_G4UnionSolid(); - export_G4IntersectionSolid(); - export_G4SubtractionSolid(); - export_G4TransportationManager(); - export_G4Navigator(); - export_G4FieldManager(); - export_G4Field(); - export_G4MagneticField(); - export_G4UniformMagField(); - export_G4ChordFinder(); -} - diff --git a/environments/g4py/source/global/CMakeLists.txt b/environments/g4py/source/global/CMakeLists.txt deleted file mode 100644 index 65f151a24f..0000000000 --- a/environments/g4py/source/global/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ -# - Module -geant4_add_pymodule(pyG4global - G4PyCoutDestination.cc - pyG4ApplicationState.cc - pyG4Exception.cc - pyG4ExceptionHandler.cc - pyG4ExceptionSeverity.cc - pyG4RandomDirection.cc - pyG4RotationMatrix.cc - pyG4StateManager.cc - pyG4String.cc - pyG4ThreeVector.cc - pyG4Timer.cc - pyG4Transform3D.cc - pyG4TwoVector.cc - pyG4UnitsTable.cc - pyG4UserLimits.cc - pyG4Version.cc - pyRandomEngines.cc - pyRandomize.cc - pygeomdefs.cc - pyglobals.cc - pymodG4global.cc -) - -target_link_libraries(pyG4global PRIVATE G4global G4track) -install(TARGETS pyG4global DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/global/G4PyCoutDestination.cc b/environments/g4py/source/global/G4PyCoutDestination.cc deleted file mode 100644 index 46f8c4e54d..0000000000 --- a/environments/g4py/source/global/G4PyCoutDestination.cc +++ /dev/null @@ -1,69 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// G4PyCoutDistination.cc -// -// 2006 Q -// ==================================================================== -#include -#include "G4PyCoutDestination.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== - -////////////////////////////////////////// -G4PyCoutDestination::G4PyCoutDestination() -////////////////////////////////////////// -{ -} - -/////////////////////////////////////////// -G4PyCoutDestination::~G4PyCoutDestination() -/////////////////////////////////////////// -{ -} - - -//////////////////////////////////////////////////////////////////// -G4int G4PyCoutDestination::ReceiveG4cout(const G4String& coutString) -//////////////////////////////////////////////////////////////////// -{ - PySys_WriteStdout("%s", coutString.c_str()); - return 0; -} - - -//////////////////////////////////////////////////////////////////// -G4int G4PyCoutDestination::ReceiveG4cerr(const G4String& cerrString) -//////////////////////////////////////////////////////////////////// -{ - PySys_WriteStderr("%s", cerrString.c_str()); - return 0; -} - diff --git a/environments/g4py/source/global/G4PyCoutDestination.hh b/environments/g4py/source/global/G4PyCoutDestination.hh deleted file mode 100644 index 93794eaaaa..0000000000 --- a/environments/g4py/source/global/G4PyCoutDestination.hh +++ /dev/null @@ -1,52 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// G4PyCoutDestination.hh -// -// 2006 Q -// ==================================================================== -#ifndef G4PY_COUT_DESTINATION_H -#define G4PY_COUT_DESTINATION_H - -#include "G4coutDestination.hh" - -// ==================================================================== -// -// class definition -// -// ==================================================================== -class G4PyCoutDestination : public G4coutDestination { - -public: - G4PyCoutDestination(); - ~G4PyCoutDestination(); - - virtual G4int ReceiveG4cout(const G4String& coutString); - virtual G4int ReceiveG4cerr(const G4String& cerrString); - -}; - -#endif diff --git a/environments/g4py/source/global/pyG4ApplicationState.cc b/environments/g4py/source/global/pyG4ApplicationState.cc deleted file mode 100644 index c93fd7ff9c..0000000000 --- a/environments/g4py/source/global/pyG4ApplicationState.cc +++ /dev/null @@ -1,52 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ApplicationState.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4ApplicationState.hh" - -using namespace boost::python; - -// ==================================================================== -// -// class description -// -// ==================================================================== -void export_G4ApplicationState() -{ - enum_("G4ApplicationState") - .value("G4State_PreInit", G4State_PreInit) - .value("G4State_Init", G4State_Init) - .value("G4State_Idle", G4State_Idle) - .value("G4State_GeomClosed", G4State_GeomClosed) - .value("G4State_EventProc", G4State_EventProc) - .value("G4State_Quit", G4State_Quit) - .value("G4State_Abort", G4State_Abort) - ; -} diff --git a/environments/g4py/source/global/pyG4Exception.cc b/environments/g4py/source/global/pyG4Exception.cc deleted file mode 100644 index d90026d3e7..0000000000 --- a/environments/g4py/source/global/pyG4Exception.cc +++ /dev/null @@ -1,113 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Exception.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4ios.hh" -#include "G4StateManager.hh" -#include "G4ExceptionSeverity.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4Exception { - -////////////////////////////////////////////////// -void f2_G4Exception(const char* originOfException, - const char* exceptionCode, - G4ExceptionSeverity severity, - const char* description) -////////////////////////////////////////////////// -{ - G4VExceptionHandler* exceptionHandler - = G4StateManager::GetStateManager()-> GetExceptionHandler(); - G4bool toBeAborted = true; - if(exceptionHandler) { - toBeAborted = exceptionHandler - -> Notify(originOfException,exceptionCode,severity,description); - } else { - G4String e_banner = "\n!!!!! - !!!!! - !!!!! - !!!!! - !!!!! - !!!!!\n"; - G4String w_banner = "\nwwwww - wwwww - wwwww - wwwww - wwwww - wwwww\n"; - std::ostringstream message; - message << "\n*** ExceptionHandler is not defined ***\n" - << "*** G4Exception : " << exceptionCode << G4endl - << " issued by : " << originOfException << G4endl - << description << G4endl; - switch(severity) { - case FatalException: - G4cerr << e_banner << message.str() << "*** Fatal Exception ***" - << e_banner; - break; - case FatalErrorInArgument: - G4cerr << e_banner << message.str() << "*** Fatal Error In Argument ***" - << e_banner; - break; - case RunMustBeAborted: - G4cerr << e_banner << message.str() << "*** Run Must Be Aborted ***" - << e_banner; - break; - case EventMustBeAborted: - G4cerr << e_banner << message.str() << "*** Event Must Be Aborted ***" - << e_banner; - break; - default: - G4cout << w_banner << message.str() - << "*** This is just a warning message. ***" - << w_banner; - toBeAborted = false; - break; - } - } - - if(toBeAborted) { - if(G4StateManager::GetStateManager()->SetNewState(G4State_Abort)) { - G4cerr << G4endl << "*** G4Exception: Aborting execution ***" << G4endl; - PyErr_SetString(PyExc_RuntimeError, description); - PyErr_Print(); - } else { - G4cerr << G4endl << "*** G4Exception: Abortion suppressed ***" - << G4endl << "*** No guarantee for further execution ***" - << G4endl; - } - } -} - -} - -using namespace pyG4Exception; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Exception() -{ - def("G4Exception", f2_G4Exception); -} diff --git a/environments/g4py/source/global/pyG4ExceptionHandler.cc b/environments/g4py/source/global/pyG4ExceptionHandler.cc deleted file mode 100644 index 191bfe8289..0000000000 --- a/environments/g4py/source/global/pyG4ExceptionHandler.cc +++ /dev/null @@ -1,109 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ExceptionHandler.cc -// -// 2005 Q -// ==================================================================== -#include -#include -#include "G4ios.hh" -#include "G4VExceptionHandler.hh" -#include "G4StateManager.hh" - -using namespace boost::python; - -// ==================================================================== -// Python Exception Handler -// ==================================================================== -class PyG4ExceptionHandler : public G4VExceptionHandler { -public: - PyG4ExceptionHandler():G4VExceptionHandler() { - G4StateManager* sm= G4StateManager::GetStateManager(); - sm-> SetExceptionHandler(this); - } - ~PyG4ExceptionHandler() { } - - G4bool Notify(const char* originOfException, - const char* exceptionCode, - G4ExceptionSeverity severity, - const char* description) { - - std::ostringstream message; - message << "*** G4Exception : " << exceptionCode << G4endl - << " issued by : " << originOfException << G4endl - << description << G4endl; - - switch(severity) { - case FatalException: - PyErr_SetString(PyExc_AssertionError, - "*** Fatal Exception ***"); - PyErr_Print(); - G4cerr << message.str() << G4endl; - break; - - case FatalErrorInArgument: - PyErr_SetString(PyExc_ValueError, - "*** Fatal Error In Argument ***"); - PyErr_Print(); - G4cerr << message.str() << G4endl; - break; - - case RunMustBeAborted: - PyErr_SetString(PyExc_RuntimeError, - "*** Run Must Be Aborted ***"); - PyErr_Print(); - G4cerr << message.str() << G4endl; - break; - - case EventMustBeAborted: - PyErr_SetString(PyExc_RuntimeError, - "*** Event Must Be Aborted ***"); - PyErr_Print(); - G4cerr << message.str() << G4endl; - break; - - default: - PyErr_Warn(PyExc_RuntimeWarning, - "*** This is just a warning message. ***"); - G4cerr << message.str() << G4endl; - break; - } - - // anyway, no abort. - return false; - } -}; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ExceptionHandler() -{ - class_ - ("G4ExceptionHandler", "exception handler") - ; -} diff --git a/environments/g4py/source/global/pyG4RandomDirection.cc b/environments/g4py/source/global/pyG4RandomDirection.cc deleted file mode 100644 index 32c7a382fc..0000000000 --- a/environments/g4py/source/global/pyG4RandomDirection.cc +++ /dev/null @@ -1,55 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4RandomDirection.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4RandomDirection.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4RandomDirection { - -G4ThreeVector(*G4RandomDirection_1)() = G4RandomDirection; -G4ThreeVector(*G4RandomDirection_2)(double) = G4RandomDirection; - -} - -using namespace pyG4RandomDirection; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4RandomDirection() -{ - def("G4RandomDirection", G4RandomDirection_1); - def("G4RandomDirection", G4RandomDirection_2); -} diff --git a/environments/g4py/source/global/pyG4RotationMatrix.cc b/environments/g4py/source/global/pyG4RotationMatrix.cc deleted file mode 100644 index e71d10cde3..0000000000 --- a/environments/g4py/source/global/pyG4RotationMatrix.cc +++ /dev/null @@ -1,129 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4RotationMatrix.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4RotationMatrix.hh" - -using namespace boost::python; - -typedef G4RotationMatrix XXX; // ... - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4RotationMatrix { - -XXX&(XXX::*f1_rotate)(G4double, const G4ThreeVector&)= &XXX::rotate; -XXX&(XXX::*f2_rotate)(G4double, const G4ThreeVector*)= &XXX::rotate; - -} - -using namespace pyG4RotationMatrix; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4RotationMatrix() -{ - class_("G4RotationMatrix", "rotation matrix") - // constructors - .def(init()) - - // property - .add_property("xx", &XXX::xx) - .add_property("xy", &XXX::xy) - .add_property("xz", &XXX::xz) - .add_property("yx", &XXX::yx) - .add_property("yy", &XXX::yy) - .add_property("yz", &XXX::yz) - .add_property("zx", &XXX::zx) - .add_property("zy", &XXX::zy) - .add_property("zz", &XXX::zz) - .def_readonly("IDENTITY", &XXX::IDENTITY) - - // methods - .def("colX", &XXX::colX) - .def("colY", &XXX::colY) - .def("colZ", &XXX::colZ) - .def("rowX", &XXX::rowX) - .def("rowY", &XXX::rowY) - .def("rowZ", &XXX::rowZ) - .def("getPhi", &XXX::getPhi) - .def("getTheta", &XXX::getTheta) - .def("getPsi", &XXX::getPsi) - .def("phi", &XXX::phi) - .def("theta", &XXX::theta) - .def("psi", &XXX::psi) - .def("getDelta", &XXX::getDelta) - .def("getAxis", &XXX::getAxis) - .def("delta", &XXX::axis) - .def("axis", &XXX::delta) - .def("phiX", &XXX::phiX) - .def("phiY", &XXX::phiY) - .def("phiZ", &XXX::phiZ) - .def("thetaX", &XXX::thetaX) - .def("thetaY", &XXX::thetaY) - .def("thetaZ", &XXX::thetaZ) - .def("setPhi", &XXX::setPhi) - .def("setTheta", &XXX::setTheta) - .def("setPsi", &XXX::setPsi) - .def("setAxis", &XXX::setAxis) - .def("setDelta", &XXX::setDelta) - .def("isIdentity", &XXX::isIdentity) - .def("rotateX", &XXX::rotateX, - return_value_policy()) - .def("rotateY", &XXX::rotateY, - return_value_policy()) - .def("rotateZ", &XXX::rotateZ, - return_value_policy()) - .def("rotate", f1_rotate, - return_value_policy()) - .def("rotate", f2_rotate, - return_value_policy()) - .def("rotateAxes", &XXX::rotateAxes, - return_value_policy()) - .def("inverse", &XXX::inverse) - .def("invert", &XXX::invert, - return_value_policy()) - - // operators - .def(self_ns::str(self)) - .def(self == self) - .def(self != self) - .def(self > self) - .def(self < self) - .def(self >= self) - .def(self <= self) - .def(self * self) - .def(self * G4ThreeVector()) - .def(self *= self) - ; -} - diff --git a/environments/g4py/source/global/pyG4StateManager.cc b/environments/g4py/source/global/pyG4StateManager.cc deleted file mode 100644 index 72a8e325b2..0000000000 --- a/environments/g4py/source/global/pyG4StateManager.cc +++ /dev/null @@ -1,54 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4StateManager.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4StateManager.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4StateManager() -{ - class_ - ("G4StateManager", "state manager", no_init) - .def("GetStateManager", &G4StateManager::GetStateManager, - "Get an instance of G4StateManager", - return_value_policy()) - .staticmethod("GetStateManager") - // --- - .def("GetCurrentState", &G4StateManager::GetCurrentState, - return_value_policy()) - .def("GetPreviousState", &G4StateManager::GetPreviousState, - return_value_policy()) - .def("GetStateString", &G4StateManager::GetStateString) - ; -} diff --git a/environments/g4py/source/global/pyG4ThreeVector.cc b/environments/g4py/source/global/pyG4ThreeVector.cc deleted file mode 100644 index 0f42496a86..0000000000 --- a/environments/g4py/source/global/pyG4ThreeVector.cc +++ /dev/null @@ -1,221 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ThreeVector.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4ThreeVector.hh" -#include "G4RotationMatrix.hh" - -using namespace boost::python; -using namespace CLHEP; - -typedef G4ThreeVector XXX; // ... - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4ThreeVector { - -G4double(XXX::*f1_theta)() const= &XXX::theta; -G4double(XXX::*f2_theta)(const XXX&) const = &XXX::theta; - -G4double(XXX::*f1_cosTheta)() const= &XXX::cosTheta; -G4double(XXX::*f2_cosTheta)(const XXX&) const = &XXX::cosTheta; - -G4double(XXX::*f1_cos2Theta)() const= &XXX::cos2Theta; -G4double(XXX::*f2_cos2Theta)(const XXX&) const = &XXX::cos2Theta; - -G4double(XXX::*f1_perp2)() const= &XXX::perp2; -G4double(XXX::*f2_perp2)(const XXX&) const = &XXX::perp2; - -G4double(XXX::*f1_perp)() const= &XXX::perp; -G4double(XXX::*f2_perp)(const XXX&) const = &XXX::perp; - -G4double(XXX::*f1_angle)() const= &XXX::angle; -G4double(XXX::*f2_angle)(const XXX&) const = &XXX::angle; - -G4double(XXX::*f1_eta)() const= &XXX::eta; -G4double(XXX::*f2_eta)(const XXX&) const = &XXX::eta; - -XXX(XXX::*f1_project)() const= &XXX::project; -XXX(XXX::*f2_project)(const XXX&) const = &XXX::project; - -XXX(XXX::*f1_perpPart)() const= &XXX::perpPart; -XXX(XXX::*f2_perpPart)(const XXX&) const = &XXX::perpPart; - -G4double(XXX::*f1_rapidity)() const= &XXX::rapidity; -G4double(XXX::*f2_rapidity)(const XXX&) const = &XXX::rapidity; - -G4double(XXX::*f1_polarAngle)(const XXX&) const= &XXX::polarAngle; -G4double(XXX::*f2_polarAngle)(const XXX&, const XXX&) const = &XXX::polarAngle; - -G4double(XXX::*f1_azimAngle)(const XXX&) const= &XXX::azimAngle; -G4double(XXX::*f2_azimAngle)(const XXX&, const XXX&) const = &XXX::azimAngle; - -XXX&(XXX::*f1_rotate)(G4double, const XXX&)= &XXX::rotate; -XXX&(XXX::*f2_rotate)(const XXX&, G4double)= &XXX::rotate; -XXX&(XXX::*f3_rotate)(const HepAxisAngle&)= &XXX::rotate; -XXX&(XXX::*f4_rotate)(const HepEulerAngles&)= &XXX::rotate; -XXX&(XXX::*f5_rotate)(G4double, G4double, G4double)= &XXX::rotate; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_isNear, isNear, 1, 2) -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_isParallel, isParallel, 1, 2) -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_isOrthogonal, isOrthogonal, 1, 2) - -} - -using namespace pyG4ThreeVector; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ThreeVector() -{ - class_("G4ThreeVector", "general 3-vector") - // constructors - .def(init()) - .def(init()) - .def(init()) - .def(init()) - - // property - .add_property("x", &XXX::x, &XXX::setX) - .add_property("y", &XXX::y, &XXX::setY) - .add_property("z", &XXX::z, &XXX::setZ) - - // methods - .def("set", &XXX::set) - .def("phi", &XXX::phi) - .def("mag", &XXX::mag) - .def("mag2", &XXX::mag2) - .def("setPhi", &XXX::setPhi) - .def("setTheta", &XXX::setTheta) - .def("setMag", &XXX::setMag) - .def("setPerp", &XXX::setPerp) - .def("setCylTheta", &XXX::setCylTheta) - .def("howNear", &XXX::howNear) - .def("deltaR", &XXX::deltaR) - .def("unit", &XXX::unit) - .def("orthogonal", &XXX::orthogonal) - .def("dot", &XXX::dot) - .def("cross", &XXX::cross) - .def("pseudoRapidity", &XXX::pseudoRapidity) - .def("setEta", &XXX::setEta) - .def("setCylEta",&XXX::setCylEta) - .def("setRThetaPhi", &XXX::setRThetaPhi) - .def("setREtaPhi", &XXX::setREtaPhi) - .def("setRhoPhiZ", &XXX::setRhoPhiZ) - .def("setRhoPhiEta", &XXX::setRhoPhiEta) - .def("getX", &XXX::getX) - .def("getY", &XXX::getY) - .def("getZ", &XXX::getZ) - .def("getR", &XXX::getR) - .def("getTheta", &XXX::getTheta) - .def("getPhi", &XXX::getPhi) - .def("r", &XXX::r) - .def("rho", &XXX::rho) - .def("getRho", &XXX::getRho) - .def("getEta", &XXX::getEta) - .def("setR", &XXX::setR) - .def("setRho", &XXX::setRho) - .def("compare", &XXX::compare) - .def("diff2", &XXX::diff2) - .def("setTolerance", &XXX::setTolerance) - .staticmethod("setTolerance") - .def("getTolerance", &XXX::getTolerance) - .staticmethod("getTolerance") - .def("isNear", &XXX::isNear, f_isNear()) - .def("isParallel", &XXX::isParallel, f_isParallel()) - .def("isOrthogonal", &XXX::isOrthogonal, f_isOrthogonal()) - .def("howParallel", &XXX::howParallel) - .def("howOrthogonal", &XXX::howOrthogonal) - .def("beta", &XXX::beta) - .def("gamma", &XXX::gamma) - .def("deltaPhi", &XXX::deltaPhi) - .def("coLinearRapidity", &XXX::coLinearRapidity) - .def("theta", f1_theta) - .def("theta", f2_theta) - .def("cosTheta", f1_cosTheta) - .def("cosTheta", f2_cosTheta) - .def("cos2Theta", f1_cos2Theta) - .def("cos2Theta", f2_cos2Theta) - .def("perp2", f1_perp2) - .def("perp2", f2_perp2) - .def("angle", f1_angle) - .def("angle", f2_angle) - .def("eta", f1_eta) - .def("eta", f2_eta) - .def("project", f1_project) - .def("project", f2_project) - .def("perpPart", f1_perpPart) - .def("perpPart", f2_perpPart) - .def("rapidity", f1_rapidity) - .def("rapidity", f2_rapidity) - .def("polarAngle",f1_polarAngle) - .def("polarAngle",f2_polarAngle) - .def("azimAngle", f1_azimAngle) - .def("azimAngle", f2_azimAngle) - .def("rotateX", &XXX::rotateX, - return_value_policy()) - .def("rotateY", &XXX::rotateY, - return_value_policy()) - .def("rotateZ", &XXX::rotateZ, - return_value_policy()) - .def("rotateUz", &XXX::rotateUz, - return_value_policy()) - .def("transform",&XXX::transform, - return_value_policy()) - .def("rotate", f1_rotate, - return_value_policy()) - .def("rotate", f2_rotate, - return_value_policy()) - .def("rotate", f5_rotate, - return_value_policy()) - - // operators - .def(self_ns::str(self)) - .def(self == self) - .def(self != self) - .def(self += self) - .def(self -= self) - .def(self - self) - .def(self + self) - .def(self * self) - .def(self * G4double()) - .def(self / G4double()) - .def(G4double() * self) - .def(self *= G4double()) - .def(self /= G4double()) - .def(self > self) - .def(self < self) - .def(self >= self) - .def(self <= self) - ; -} - diff --git a/environments/g4py/source/global/pyG4Timer.cc b/environments/g4py/source/global/pyG4Timer.cc deleted file mode 100644 index 278bb4d355..0000000000 --- a/environments/g4py/source/global/pyG4Timer.cc +++ /dev/null @@ -1,50 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Timer.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Timer.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Timer() -{ - class_("G4Timer", "Timer") - // --- - .def("Start", &G4Timer::Start) - .def("Stop", &G4Timer::Stop) - .def("IsValid", &G4Timer::IsValid) - .def("GetRealElapsed", &G4Timer::GetRealElapsed) - .def("GetSystemElapsed", &G4Timer::GetSystemElapsed) - .def("GetUserElapsed", &G4Timer::GetUserElapsed) - ; -} diff --git a/environments/g4py/source/global/pyG4Transform3D.cc b/environments/g4py/source/global/pyG4Transform3D.cc deleted file mode 100644 index 72fb200046..0000000000 --- a/environments/g4py/source/global/pyG4Transform3D.cc +++ /dev/null @@ -1,76 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Transform3D.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Transform3D.hh" -#include "G4ThreeVector.hh" -#include "G4RotationMatrix.hh" - -using namespace boost::python; - -typedef G4Transform3D XXX; // ... - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Transform3D() -{ - class_("G4Transform3D", "geometrical 3D transformation") - // constructors - .def(init()) - .def(init()) - - // property - .add_property("xx", &XXX::xx) - .add_property("xy", &XXX::xy) - .add_property("xz", &XXX::xz) - .add_property("yx", &XXX::yx) - .add_property("yy", &XXX::yy) - .add_property("yz", &XXX::yz) - .add_property("zx", &XXX::zx) - .add_property("zy", &XXX::zy) - .add_property("zz", &XXX::zz) - .add_property("dx", &XXX::dx) - .add_property("dy", &XXX::dy) - .add_property("dz", &XXX::dz) - .def_readonly("Identity", &XXX::Identity) - - // methods - .def("inverse", &XXX::inverse) - .def("getRotation" , &XXX::getRotation) - .def("getTranslation", &XXX::getTranslation) - - // operators - .def(self == self) - .def(self != self) - .def(self * self) - ; -} - diff --git a/environments/g4py/source/global/pyG4TwoVector.cc b/environments/g4py/source/global/pyG4TwoVector.cc deleted file mode 100644 index 5846f27f55..0000000000 --- a/environments/g4py/source/global/pyG4TwoVector.cc +++ /dev/null @@ -1,108 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4TwoVector.cc -// -// 2007 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4TwoVector.hh" - -using namespace boost::python; -using namespace CLHEP; - -typedef G4TwoVector XXX; // ... - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4TwoVector { - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_isNear, isNear, 1, 2) -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_isParallel, isParallel, 1, 2) -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_isOrthogonal, isOrthogonal, 1, 2) - -} - -using namespace pyG4TwoVector; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4TwoVector() -{ - class_("G4TwoVector", "general 2-vector") - // constructors - .def(init()) - .def(init()) - .def(init()) - - // property - .add_property("x", &XXX::x, &XXX::setX) - .add_property("y", &XXX::y, &XXX::setY) - - // methods - .def("set", &XXX::set) - .def("phi", &XXX::phi) - .def("mag", &XXX::mag) - .def("mag2", &XXX::mag2) - .def("r", &XXX::r) - .def("setPhi", &XXX::setPhi) - .def("setMag", &XXX::setMag) - .def("setR", &XXX::setR) - .def("setPolar", &XXX::setPolar) - .def("howNear", &XXX::howNear) - .def("isNear", &XXX::isNear, f_isNear()) - .def("howParallel", &XXX::howParallel) - .def("isParallel", &XXX::isParallel, f_isParallel()) - .def("howOrthogonal", &XXX::howOrthogonal) - .def("isOrthogonal", &XXX::isOrthogonal, f_isOrthogonal()) - .def("unit", &XXX::unit) - .def("orthogonal", &XXX::orthogonal) - .def("dot", &XXX::dot) - .def("angle", &XXX::angle) - .def("rotate", &XXX::rotate) - - // operators - .def(self_ns::str(self)) - .def(self == self) - .def(self != self) - .def(self += self) - .def(self -= self) - .def(self - self) - .def(self + self) - .def(self * self) - .def(self * G4double()) - .def(self / G4double()) - .def(G4double() * self) - .def(self *= G4double()) - .def(self > self) - .def(self < self) - .def(self >= self) - .def(self <= self) - ; -} diff --git a/environments/g4py/source/global/pyG4UnitsTable.cc b/environments/g4py/source/global/pyG4UnitsTable.cc deleted file mode 100644 index 7adab84f48..0000000000 --- a/environments/g4py/source/global/pyG4UnitsTable.cc +++ /dev/null @@ -1,101 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4UnitsTable.cc -// -// 2005 Q -// ==================================================================== -#include -#include -#include "G4UnitsTable.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4UnitsTable() -{ - class_("G4UnitsTable", "Units Table") - .def(vector_indexing_suite()) - ; - - class_("G4UnitsContainer", "Units Container") - .def(vector_indexing_suite()) - ; - - class_ - ("G4UnitDefinition", "Unit Definition", no_init) - .def(init()) - // --- - .def("GetName", &G4UnitDefinition::GetName, - return_value_policy()) - .def("GetSymbol", &G4UnitDefinition::GetSymbol, - return_value_policy()) - .def("GetValue", &G4UnitDefinition::GetValue) - .def("PrintDefinition", &G4UnitDefinition::PrintDefinition) - // --- - .def("BuildUnitsTable", &G4UnitDefinition::BuildUnitsTable) - .staticmethod("BuildUnitsTable") - .def("PrintUnitsTable", &G4UnitDefinition::PrintUnitsTable) - .staticmethod("PrintUnitsTable") - .def("GetUnitsTable", &G4UnitDefinition::GetUnitsTable, - return_value_policy()) - .staticmethod("GetUnitsTable") - // --- - .def("GetValueOf", &G4UnitDefinition::GetValueOf) - .staticmethod("GetValueOf") - .def("GetCategory", &G4UnitDefinition::GetCategory) - .staticmethod("GetCategory") - ; - - class_ - ("G4UnitsCategory", "Units Category", no_init) - .def(init()) - // --- - .def("GetName", &G4UnitsCategory::GetName, - return_value_policy()) - .def("GetUnitsList", &G4UnitsCategory::GetUnitsList, - return_value_policy()) - .def("GetNameMxLen", &G4UnitsCategory::GetNameMxLen) - .def("GetSymbMxLen", &G4UnitsCategory::GetSymbMxLen) - .def("UpdateNameMxLen", &G4UnitsCategory::UpdateNameMxLen) - .def("UpdateSymbMxLen", &G4UnitsCategory::UpdateSymbMxLen) - .def("PrintCategory", &G4UnitsCategory::PrintCategory) - ; - - class_("G4BestUnit", "present best unit", no_init) - .def(init()) - .def(init()) - // --- - .def("GetCategory", &G4BestUnit::GetCategory, - return_value_policy()) - .def("GetIndexOfCategory", &G4BestUnit::GetIndexOfCategory) - .def(self_ns::str(self)) - ; - -} - diff --git a/environments/g4py/source/global/pyG4UserLimits.cc b/environments/g4py/source/global/pyG4UserLimits.cc deleted file mode 100644 index da36e149d0..0000000000 --- a/environments/g4py/source/global/pyG4UserLimits.cc +++ /dev/null @@ -1,76 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4UserLimits.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4UserLimits.hh" - -// Needed to avoid "incomplete type" error on G4Track -#include "G4Track.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4UserLimits() -{ - class_ - ("G4UserLimits", "user step limitations") - // --- - .def(init()) - .def(init()) - .def(init()) - .def(init()) - .def(init()) - // --- - .def(init()) - .def(init()) - .def(init()) - .def(init()) - .def(init()) - .def(init()) - // --- - .def("GetUserMaxTrackLength", &G4UserLimits::GetUserMaxTrackLength) - .def("GetUserMaxTime", &G4UserLimits::GetUserMaxTime) - .def("GetUserMinEkine", &G4UserLimits::GetUserMinEkine) - .def("GetUserMinRange", &G4UserLimits::GetUserMinRange) - // --- - .def("SetMaxAllowedStep", &G4UserLimits::SetMaxAllowedStep) - .def("SetUserMaxTrackLength", &G4UserLimits::SetUserMaxTrackLength) - .def("SetUserMaxTime", &G4UserLimits::SetUserMaxTime) - .def("SetUserMinEkine", &G4UserLimits::SetUserMinEkine) - .def("SetUserMinRange", &G4UserLimits::SetUserMinRange) - // --- - .def("GetType", &G4UserLimits::GetType, - return_internal_reference<>()) - .def("SetType", &G4UserLimits::SetType) - ; -} diff --git a/environments/g4py/source/global/pyG4Version.cc b/environments/g4py/source/global/pyG4Version.cc deleted file mode 100644 index 23e240c2fa..0000000000 --- a/environments/g4py/source/global/pyG4Version.cc +++ /dev/null @@ -1,45 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Version.cc -// -// 2006 Q -// ==================================================================== -#include -#include "G4Version.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Version() -{ - scope current; - current.attr("G4VERSION_NUMBER")= G4VERSION_NUMBER; - current.attr("G4Version")= G4Version.c_str(); - current.attr("G4Date")= G4Date.c_str(); -} diff --git a/environments/g4py/source/global/pyRandomEngines.cc b/environments/g4py/source/global/pyRandomEngines.cc deleted file mode 100644 index f28bb2444b..0000000000 --- a/environments/g4py/source/global/pyRandomEngines.cc +++ /dev/null @@ -1,66 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyRandomEngines.cc -// -// 2005 Q -// ==================================================================== -#include -#include "CLHEP/Random/RandomEngine.h" -#include "CLHEP/Random/JamesRandom.h" -#include "CLHEP/Random/RanecuEngine.h" -#include "CLHEP/Random/Ranlux64Engine.h" -#include "CLHEP/Random/RanluxEngine.h" - -using namespace boost::python; -using namespace CLHEP; - -// ==================================================================== -// module definition -// ==================================================================== -void export_RandomEngines() -{ - class_ - ("HepRandomEngine", "base class of random engine", no_init) - ; - - class_ > - ("HepJamesRandom", "HepJames random engine") - ; - - class_ > - ("RanecuEngine", "Ranecu random engine") - ; - - class_ > - ("RanluxEngine", "Ranlux random engine") - ; - - class_ > - ("Ranlux64Engine", "Ranlux64 random engine") - ; - -} diff --git a/environments/g4py/source/global/pyRandomize.cc b/environments/g4py/source/global/pyRandomize.cc deleted file mode 100644 index a364c741cf..0000000000 --- a/environments/g4py/source/global/pyRandomize.cc +++ /dev/null @@ -1,236 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyRandomize.cc -// -// 2005 Q -// ==================================================================== -#include -#include "Randomize.hh" -#include - -using namespace boost::python; -using namespace CLHEP; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyRandomize { - -// problem with BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS for static method -// setTheSeed -void f1_setTheSeed(long seed) -{ - HepRandom::setTheSeed(seed); -} - -void f2_setTheSeed(long seed, int lux) -{ - HepRandom::setTheSeed(seed, lux); -} - -// setTheSeeds -void f1_setTheSeeds(const list& seedList) -{ - // check size... - int idx=0; - while(1) { - long val= extract(seedList[idx]); - if(val==0) break; - idx++; - } - int nsize= idx+1; - - long* seedArray= new long[nsize]; // should not be deleted!! - // (this is a problem with CLHEP.) - for (int i=0; i< nsize; i++) { - seedArray[i]= extract(seedList[i]); - } - - HepRandom::setTheSeeds(seedArray); -} - -void f2_setTheSeeds(const list& seedList, int aux) -{ - // check size... - int idx=0; - while(1) { - long val= extract(seedList[idx]); - if(val==0) break; - idx++; - } - int nsize= idx+1; - - long* seedArray= new long[nsize]; - for (int i=0; i< nsize; i++) { - seedArray[i]= extract(seedList[i]); - } - - HepRandom::setTheSeeds(seedArray, aux); -} - -// getTheSeeds -list f_getTheSeeds() -{ - list seedList; - const long* seeds= HepRandom::getTheSeeds(); - int idx=0; - while(1) { - if( seeds[idx]==0) break; - seedList.append(seeds[idx]); - idx++; - } - return seedList; -} - -// getTheTableSeeds -list f_getTheTableSeeds(int index) -{ - long seedPair[2]; - HepRandom::getTheTableSeeds(seedPair, index); - - list seedList; - seedList.append(seedPair[0]); - seedList.append(seedPair[1]); - - return seedList; -} - - -// saveEngineStatus -void f1_saveEngineStatus() -{ - HepRandom::saveEngineStatus(); -} - -void f2_saveEngineStatus(const char* filename) -{ - HepRandom::saveEngineStatus(filename); -} - -// restoreEngineStatus -void f1_restoreEngineStatus() -{ - HepRandom::restoreEngineStatus(); -} - -void f2_restoreEngineStatus(const char* filename) -{ - HepRandom::restoreEngineStatus(filename); -} - -// RandBit::shootBit -int f1_RandBit_shootBit() -{ - return RandBit::shootBit(); -} - -// RandGaussQ::shoot -double f1_RandGaussQ_shoot() -{ - return RandGaussQ::shoot(); -} - -double f2_RandGaussQ_shoot(double mean, double stdDev) -{ - return RandGaussQ::shoot(mean, stdDev); -} - - -// G4UniformRand -double f_G4UniformRand() -{ - return G4UniformRand(); -} - -} - -using namespace pyRandomize; - -// ==================================================================== -// module definition -// ==================================================================== -void export_Randomize() -{ - class_("HepRandom", "generate random number") - // --- - .def(init()) - .def(init()) - .def(init()) - // --- - .def("setTheSeed", f1_setTheSeed) - .def("setTheSeed", f2_setTheSeed) - .staticmethod("setTheSeed") - .def("getTheSeed", &HepRandom::getTheSeed) - .staticmethod("getTheSeed") - .def("setTheSeeds", f1_setTheSeeds) - .def("setTheSeeds", f2_setTheSeeds) - .staticmethod("setTheSeeds") - .def("getTheSeeds", f_getTheSeeds) - .staticmethod("getTheSeeds") - .def("getTheTableSeeds", f_getTheTableSeeds) - .staticmethod("getTheTableSeeds") - // --- - .def("getTheGenerator", &HepRandom::getTheGenerator, - return_value_policy()) - .staticmethod("getTheGenerator") - .def("setTheEngine", &HepRandom::setTheEngine) - .staticmethod("setTheEngine") - .def("getTheEngine", &HepRandom::getTheEngine, - return_value_policy()) - .staticmethod("getTheEngine") - .def("saveEngineStatus", f1_saveEngineStatus) - .def("saveEngineStatus", f2_saveEngineStatus) - .staticmethod("saveEngineStatus") - .def("restoreEngineStatus", f1_restoreEngineStatus) - .def("restoreEngineStatus", f2_restoreEngineStatus) - .staticmethod("restoreEngineStatus") - .def("showEngineStatus", &HepRandom::showEngineStatus) - .staticmethod("showEngineStatus") - .def("createInstance", &HepRandom::createInstance) - .staticmethod("createInstance") - ; - - // --- - class_ - ("RandBit", "generate bit random number", no_init) - .def("shootBit", f1_RandBit_shootBit) - .staticmethod("shootBit") - ; - - // --- - class_ - ("G4RandGauss", "generate gaussian random number", no_init) - .def("shoot", f1_RandGaussQ_shoot) - .def("shoot", f2_RandGaussQ_shoot) - .staticmethod("shoot") - ; - - // --- - def("G4UniformRand", f_G4UniformRand); - -} - diff --git a/environments/g4py/source/global/pygeomdefs.cc b/environments/g4py/source/global/pygeomdefs.cc deleted file mode 100644 index 57175f16e5..0000000000 --- a/environments/g4py/source/global/pygeomdefs.cc +++ /dev/null @@ -1,63 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pygeomdefs.cc -// -// 2005 Q -// ==================================================================== -#include -#include "geomdefs.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_geomdefs() -{ - enum_("EAxis") - .value("kXAxis", kXAxis) - .value("kYAxis", kYAxis) - .value("kZAxis", kZAxis) - .value("kRho", kRho) - .value("kRadial3D", kRadial3D) - .value("kPhi", kPhi) - .value("kUndefined", kUndefined) - ; - - enum_("EInside") - .value("kOutside", kOutside) - .value("kSurface", kSurface) - .value("kInside", kInside) - ; - - enum_("EVolume") - .value("kNormal", kNormal) - .value("kReplica", kReplica) - .value("kParameterised", kParameterised) - ; -} - diff --git a/environments/g4py/source/global/pyglobals.cc b/environments/g4py/source/global/pyglobals.cc deleted file mode 100644 index 0a440b5e3b..0000000000 --- a/environments/g4py/source/global/pyglobals.cc +++ /dev/null @@ -1,101 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyglobals.cc -// -// 2005 Q -// ==================================================================== -#include -#include -#include "G4Version.hh" -#include "G4strstreambuf.hh" -#include "G4UImanager.hh" -#include "G4PyCoutDestination.hh" -#include "G4ThreeVector.hh" -#include "G4TwoVector.hh" -#include - -using namespace boost::python; - -//extern G4strstreambuf G4coutbuf; -//extern G4strstreambuf G4cerrbuf; - -namespace pyglobals { - -// G4cout/cerr are set to Python stdout -void SetG4PyCoutDestination() -{ - G4UImanager::GetUIpointer(); - G4PyCoutDestination* pycout= new G4PyCoutDestination(); - G4coutbuf.SetDestination(pycout); - G4cerrbuf.SetDestination(pycout); -} - -void ResetG4PyCoutDestination() -{ - G4UImanager* UImgr= G4UImanager::GetUIpointer(); - UImgr-> SetCoutDestination(0); -} - -typedef std::vector G4intVector; -typedef std::vector G4doubleVector; -typedef std::vector G4StringVector; -typedef std::vector G4ThreeVectorVector; -typedef std::vector G4TwoVectorVector; - -} - -using namespace pyglobals; - -// ==================================================================== -// module definition -// ==================================================================== -void export_globals() -{ - def("SetG4PyCoutDestination", SetG4PyCoutDestination); - def("ResetG4PyCoutDestination", ResetG4PyCoutDestination); - - class_ ("G4intVector", "int vector") - .def(vector_indexing_suite()) - ; - - class_ ("G4doubleVector", "double vector") - .def(vector_indexing_suite()) - ; - - class_ ("G4StringVector", "string vector") - .def(vector_indexing_suite()) - ; - - class_ ("G4ThreeVectorVector", "3-vector vector") - .def(vector_indexing_suite()) - ; - - class_ ("G4StringVector", "2-vector vector") - .def(vector_indexing_suite()) - ; - -} diff --git a/environments/g4py/source/global/pymodG4global.cc b/environments/g4py/source/global/pymodG4global.cc deleted file mode 100644 index 2afff65a93..0000000000 --- a/environments/g4py/source/global/pymodG4global.cc +++ /dev/null @@ -1,81 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pymodG4global.cc [Geant4Py module] -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== - -void export_globals(); -void export_geomdefs(); -void export_G4StateManager(); -void export_G4ApplicationState(); -void export_G4String(); -void export_G4ThreeVector(); -void export_G4RotationMatrix(); -void export_G4Transform3D(); -void export_G4UnitsTable(); -void export_Randomize(); -void export_RandomEngines(); -void export_G4RandomDirection(); -void export_G4UserLimits(); -void export_G4Timer(); -void export_G4Version(); -void export_G4Exception(); -void export_G4ExceptionHandler(); -void export_G4ExceptionSeverity(); -void export_G4TwoVector(); - -BOOST_PYTHON_MODULE(G4global) -{ - export_globals(); - export_geomdefs(); - export_G4StateManager(); - export_G4ApplicationState(); - export_G4String(); - export_G4ThreeVector(); - export_G4TwoVector(); - export_G4RotationMatrix(); - export_G4Transform3D(); - export_G4UnitsTable(); - export_Randomize(); - export_RandomEngines(); - export_G4RandomDirection(); - export_G4UserLimits(); - export_G4Timer(); - export_G4Version(); - export_G4Exception(); - export_G4ExceptionHandler(); - export_G4ExceptionSeverity(); -} - diff --git a/environments/g4py/source/graphics_reps/CMakeLists.txt b/environments/g4py/source/graphics_reps/CMakeLists.txt deleted file mode 100644 index 9c38f0b83f..0000000000 --- a/environments/g4py/source/graphics_reps/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -# - build library - -# library -geant4_add_pymodule(pyG4graphics_reps - pyG4Colour.cc - pyG4VisAttributes.cc - pymodG4graphics_reps.cc -) - -target_link_libraries(pyG4graphics_reps PRIVATE G4graphics_reps) -install(TARGETS pyG4graphics_reps DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/graphics_reps/pyG4Colour.cc b/environments/g4py/source/graphics_reps/pyG4Colour.cc deleted file mode 100644 index 58ccd95554..0000000000 --- a/environments/g4py/source/graphics_reps/pyG4Colour.cc +++ /dev/null @@ -1,78 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Colour.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Colour.hh" -#include "G4Color.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Colour() -{ - class_ ("G4Color", "color class", no_init) - // constructors - .def(init<>()) - .def(init()) - .def(init()) - .def(init()) - .def(init()) - .def(init()) - // --- - .def("GetRed", &G4Colour::GetRed) - .def("GetGreen", &G4Colour::GetGreen) - .def("GetBlue", &G4Colour::GetBlue) - .def("GetAlpha", &G4Colour::GetAlpha) - // operators - .def(self_ns::str(self)) - .def(self != self) - ; - - //class_ ("G4Color", "color class", no_init) - // // constructors - // .def(init<>()) - // .def(init()) - // .def(init()) - // .def(init()) - // .def(init()) - // .def(init()) - // // --- - // .def("GetRed", &G4Colour::GetRed) - // .def("GetGreen", &G4Colour::GetGreen) - // .def("GetBlue", &G4Colour::GetBlue) - // .def("GetAlpha", &G4Colour::GetAlpha) - // // operators - // .def(self_ns::str(self)) - // .def(self != self) - // ; -} - diff --git a/environments/g4py/source/graphics_reps/pyG4VisAttributes.cc b/environments/g4py/source/graphics_reps/pyG4VisAttributes.cc deleted file mode 100644 index 6a61d9460e..0000000000 --- a/environments/g4py/source/graphics_reps/pyG4VisAttributes.cc +++ /dev/null @@ -1,125 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VisAttributes.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4AttDef.hh" -#include "G4VisAttributes.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4VisAttributes { - -// SetColor() -void(G4VisAttributes::*f1_SetColor)(const G4Color&)= - &G4VisAttributes::SetColor; - -void(G4VisAttributes::*f2_SetColor)(G4double, G4double, G4double, G4double)= - &G4VisAttributes::SetColor; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_SetColor, SetColor, 3, 4) - -// SetColour() -void(G4VisAttributes::*f1_SetColour)(const G4Colour&)= - &G4VisAttributes::SetColour; - -void(G4VisAttributes::*f2_SetColour)(G4double, G4double, G4double, G4double)= - &G4VisAttributes::SetColour; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_SetColour, SetColour, 3, 4) - -} - -using namespace pyG4VisAttributes; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VisAttributes() -{ - scope in_G4VisAttributes= - class_ - ("G4VisAttributes", "visualization attributes") - // constructors - .def(init()) - .def(init()) - .def(init()) - // --- - .def("GetInvisible", &G4VisAttributes::GetInvisible, - return_value_policy()) - .staticmethod("GetInvisible") - .def("IsVisible", &G4VisAttributes::IsVisible) - .def("IsDaughtersInvisible", &G4VisAttributes::IsDaughtersInvisible) - // --- - .def("GetColour", &G4VisAttributes::GetColour, - return_internal_reference<>()) - .def("GetColor", &G4VisAttributes::GetColor, - return_internal_reference<>()) - // --- - .def("GetLineStyle", &G4VisAttributes::GetLineStyle) - .def("GetLineWidth", &G4VisAttributes::GetLineWidth) - .def("IsForceDrawingStyle", &G4VisAttributes::IsForceDrawingStyle) - .def("GetForcedDrawingStyle", &G4VisAttributes::GetForcedDrawingStyle) - .def("IsForceAuxEdgeVisible", &G4VisAttributes::IsForceAuxEdgeVisible) - .def("SetVisibility", &G4VisAttributes::SetVisibility) - .def("SetDaughtersInvisible", &G4VisAttributes::SetDaughtersInvisible) - .def("SetColor", f1_SetColor) - .def("SetColour", f1_SetColour) - .def("SetColor", f2_SetColor, f_SetColor()) - .def("SetColour", f2_SetColour, f_SetColour()) - .def("SetLineStyle", &G4VisAttributes::SetLineStyle) - .def("SetLineWidth", &G4VisAttributes::SetLineWidth) - .def("SetForceWireframe", &G4VisAttributes::SetForceWireframe) - .def("SetForceSolid", &G4VisAttributes::SetForceSolid) - .def("SetForceAuxEdgeVisible", &G4VisAttributes::SetForceAuxEdgeVisible) - .def("SetAttValues", &G4VisAttributes::SetAttValues) - .def("SetAttDefs", &G4VisAttributes::SetAttDefs) - // operators - .def(self_ns::str(self)) - .def(self == self) - .def(self != self) - ; - - // enum LineStyle - enum_("LineStyle") - .value("unbroken", G4VisAttributes::unbroken) - .value("dashed", G4VisAttributes::dashed) - .value("dotted", G4VisAttributes::dotted) - ; - - // enum ForcedDrawingStyle - enum_("ForcedDrawingStyle") - .value("wireframe", G4VisAttributes::wireframe) - .value("solid", G4VisAttributes::solid) - ; - -} diff --git a/environments/g4py/source/hepunit.py b/environments/g4py/source/hepunit.py deleted file mode 100644 index 1a2719f4c6..0000000000 --- a/environments/g4py/source/hepunit.py +++ /dev/null @@ -1,307 +0,0 @@ -""" -# ================================================================== -# Python module -# -# This module defines physical units and constants used in HEP, -# which are imported from CLHEP library. -# -# Q, 2005 -# ================================================================== -""" - -# ================================================================== -# imported from "SystemOfUnits.h" -# ================================================================== -millimeter = 1. -millimeter2 = millimeter*millimeter -millimeter3 = millimeter*millimeter*millimeter - -centimeter = 10.*millimeter -centimeter2 = centimeter*centimeter -centimeter3 = centimeter*centimeter*centimeter - -meter = 1000.*millimeter -meter2 = meter*meter -meter3 = meter*meter*meter - -kilometer = 1000.*meter -kilometer2 = kilometer*kilometer -kilometer3 = kilometer*kilometer*kilometer - -parsec = 3.0856775807e+16*meter - -micrometer = 1.e-6 *meter -nanometer = 1.e-9 *meter -angstrom = 1.e-10*meter -fermi = 1.e-15*meter - -barn = 1.e-28*meter2 -millibarn = 1.e-3 *barn -microbarn = 1.e-6 *barn -nanobarn = 1.e-9 *barn -picobarn = 1.e-12*barn - -# symbols -mm = millimeter -mm2 = millimeter2 -mm3 = millimeter3 - -cm = centimeter -cm2 = centimeter2 -cm3 = centimeter3 - -m = meter -m2 = meter2 -m3 = meter3 - -km = kilometer -km2 = kilometer2 -km3 = kilometer3 - -pc = parsec - -# -# Angle -# -radian = 1. -milliradian = 1.e-3*radian -degree = (3.14159265358979323846/180.0)*radian - -steradian = 1. - -# symbols -rad = radian -mrad = milliradian -sr = steradian -deg = degree - -# -# Time [T] -# -nanosecond = 1. -second = 1.e+9 *nanosecond -millisecond = 1.e-3 *second -microsecond = 1.e-6 *second -picosecond = 1.e-12*second - -hertz = 1./second -kilohertz = 1.e+3*hertz -megahertz = 1.e+6*hertz - -# symbols -ns = nanosecond -s = second -ms = millisecond - -# -# Electric charge [Q] -# -eplus = 1. # positron charge -e_SI = 1.60217733e-19 # positron charge in coulomb -coulomb = eplus/e_SI # coulomb = 6.24150 e+18 * eplus - -# -# Energy [E] -# -megaelectronvolt = 1. -electronvolt = 1.e-6*megaelectronvolt -kiloelectronvolt = 1.e-3*megaelectronvolt -gigaelectronvolt = 1.e+3*megaelectronvolt -teraelectronvolt = 1.e+6*megaelectronvolt -petaelectronvolt = 1.e+9*megaelectronvolt - -joule = electronvolt/e_SI # joule = 6.24150 e+12 * MeV - -# symbols -MeV = megaelectronvolt -eV = electronvolt -keV = kiloelectronvolt -GeV = gigaelectronvolt -TeV = teraelectronvolt -PeV = petaelectronvolt - -# -# Mass [E][T^2][L^-2] -# -kilogram = joule*second*second/(meter*meter) -gram = 1.e-3*kilogram -milligram = 1.e-3*gram - -# symbols -kg = kilogram -g = gram -mg = milligram - -# -# Power [E][T^-1] -# -watt = joule/second # watt = 6.24150 e+3 * MeV/ns - -# -# Force [E][L^-1] -# -newton = joule/meter # newton = 6.24150 e+9 * MeV/mm - -# -# Pressure [E][L^-3] -# -pascal = newton/m2 # pascal = 6.24150 e+3 * MeV/mm3 -bar = 100000*pascal # bar = 6.24150 e+8 * MeV/mm3 -atmosphere = 101325*pascal # atm = 6.32420 e+8 * MeV/mm3 - -# -# Electric current [Q][T^-1] -# -ampere = coulomb/second # ampere = 6.24150 e+9 * eplus/ns -milliampere = 1.e-3*ampere -microampere = 1.e-6*ampere -nanoampere = 1.e-9*ampere - -# -# Electric potential [E][Q^-1] -# -megavolt = megaelectronvolt/eplus -kilovolt = 1.e-3*megavolt -volt = 1.e-6*megavolt - -# -# Electric resistance [E][T][Q^-2] -# -ohm = volt/ampere # ohm = 1.60217e-16*(MeV/eplus)/(eplus/ns) - -# -# Electric capacitance [Q^2][E^-1] -# -farad = coulomb/volt # farad = 6.24150e+24 * eplus/Megavolt -millifarad = 1.e-3*farad -microfarad = 1.e-6*farad -nanofarad = 1.e-9*farad -picofarad = 1.e-12*farad - -# -# Magnetic Flux [T][E][Q^-1] -# -weber = volt*second # weber = 1000*megavolt*ns - -# -# Magnetic Field [T][E][Q^-1][L^-2] -# -tesla = volt*second/meter2 # tesla =0.001*megavolt*ns/mm2 - -gauss = 1.e-4*tesla -kilogauss = 1.e-1*tesla - -# -# Inductance [T^2][E][Q^-2] -# -henry = weber/ampere # henry = 1.60217e-7*MeV*(ns/eplus)**2 - -# -# Temperature -# -kelvin = 1. - -# -# Amount of substance -# -mole = 1. - -# -# Activity [T^-1] -# -becquerel = 1./second -curie = 3.7e+10 * becquerel - -# -# Absorbed dose [L^2][T^-2] -# -gray = joule/kilogram - -# -# Luminous intensity [I] -# -candela = 1. - -# -# Luminous flux [I] -# -lumen = candela*steradian - -# -# Illuminance [I][L^-2] -# -lux = lumen/meter2 - -# -# Miscellaneous -# -perCent = 0.01 -perThousand = 0.001 -perMillion = 0.000001 - - -# ================================================================== -# imported from "PhysicalConstants.h" -# ================================================================== -pi = 3.14159265358979323846 -twopi = 2.*pi -halfpi = pi/2. -pi2 = pi*pi - -# -Avogadro = 6.0221367e+23/mole - -# c = 299.792458 mm/ns -# c^2 = 898.7404 (mm/ns)^2 -c_light = 2.99792458e+8 * m/s -c_squared = c_light * c_light - -# h = 4.13566e-12 MeV*ns -# hbar = 6.58212e-13 MeV*ns -# hbarc = 197.32705e-12 MeV*mm -h_Planck = 6.6260755e-34 * joule*s -hbar_Planck = h_Planck/twopi -hbarc = hbar_Planck * c_light -hbarc_squared = hbarc * hbarc - -# -electron_charge = - eplus # see SystemOfUnits.h -e_squared = eplus * eplus - -# amu_c2 - atomic equivalent mass unit -# amu - atomic mass unit -electron_mass_c2 = 0.51099906 * MeV -proton_mass_c2 = 938.27231 * MeV -neutron_mass_c2 = 939.56563 * MeV -amu_c2 = 931.49432 * MeV -amu = amu_c2/c_squared - -# permeability of free space mu0 = 2.01334e-16 Mev*(ns*eplus)^2/mm -# permittivity of free space epsil0 = 5.52636e+10 eplus^2/(MeV*mm) -mu0 = 4*pi*1.e-7 * henry/m -epsilon0 = 1./(c_squared*mu0) - -# electromagnetic coupling = 1.43996e-12 MeV*mm/(eplus^2) -elm_coupling = e_squared/(4*pi*epsilon0) -fine_structure_const = elm_coupling/hbarc -classic_electr_radius = elm_coupling/electron_mass_c2 -electron_Compton_length = hbarc/electron_mass_c2 -Bohr_radius = electron_Compton_length/fine_structure_const - -alpha_rcl2 = fine_structure_const * classic_electr_radius \ - * classic_electr_radius -twopi_mc2_rcl2 = twopi * electron_mass_c2 \ - * classic_electr_radius \ - * classic_electr_radius - -# -k_Boltzmann = 8.617385e-11 * MeV/kelvin - -# -STP_Temperature = 273.15*kelvin -STP_Pressure = 1.*atmosphere -kGasThreshold = 10.*mg/cm3 - -# -universe_mean_density = 1.e-25*g/cm3 - diff --git a/environments/g4py/source/intercoms/CMakeLists.txt b/environments/g4py/source/intercoms/CMakeLists.txt deleted file mode 100644 index 374885e40a..0000000000 --- a/environments/g4py/source/intercoms/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -# - build library - -# library -geant4_add_pymodule(pyG4intercoms - pyG4UIcommand.cc - pyG4UIcommandTree.cc - pyG4UImanager.cc - pyG4UIparameter.cc - pymodG4intercoms.cc -) - -target_link_libraries(pyG4intercoms PRIVATE G4intercoms) -install(TARGETS pyG4intercoms DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/intercoms/pyG4UIcommand.cc b/environments/g4py/source/intercoms/pyG4UIcommand.cc deleted file mode 100644 index 6848d21cae..0000000000 --- a/environments/g4py/source/intercoms/pyG4UIcommand.cc +++ /dev/null @@ -1,86 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4UIcommand.cc -// -// 2006 Q -// ==================================================================== -#include -#include "G4UIcommand.hh" -#include "G4UImessenger.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4UIcommand { - -// GetStateList (returning python list) -list f_GetStateList(G4UIcommand* acommand) -{ - list pyStateList; - std::vector* stateList= acommand->GetStateList(); - - for( size_t i=0; i< stateList->size(); i++) { - pyStateList.append(&(*stateList)[i]); - } - - return pyStateList; -} - -} - -using namespace pyG4UIcommand; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4UIcommand() -{ - class_ - ("G4UIcommand", "UI command") - .def(init()) - // --- - .def("GetCurrentValue", &G4UIcommand::GetCurrentValue) - .def("IsAvailable", &G4UIcommand::IsAvailable) - .def("List", &G4UIcommand::List) - .def("GetRange", &G4UIcommand::GetRange, - return_value_policy()) - .def("GetGuidanceEntries", &G4UIcommand::GetGuidanceEntries) - .def("GetGuidanceLine", &G4UIcommand::GetGuidanceLine, - return_value_policy()) - .def("GetCommandPath", &G4UIcommand::GetCommandPath, - return_value_policy()) - .def("GetCommandName", &G4UIcommand::GetCommandName, - return_value_policy()) - .def("GetParameterEntries", &G4UIcommand::GetParameterEntries) - .def("GetParameter", &G4UIcommand::GetParameter, - return_value_policy()) - .def("GetStateList", f_GetStateList) - .def("GetTitle", &G4UIcommand::GetTitle) - ; -} diff --git a/environments/g4py/source/intercoms/pyG4UIcommandTree.cc b/environments/g4py/source/intercoms/pyG4UIcommandTree.cc deleted file mode 100644 index 7a92ada318..0000000000 --- a/environments/g4py/source/intercoms/pyG4UIcommandTree.cc +++ /dev/null @@ -1,83 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4UIcommandTree.cc -// -// 2006 Q -// ==================================================================== -#include -#include "G4UIcommandTree.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4UIcommandTree { - -// GetTree -G4UIcommandTree*(G4UIcommandTree::*f1_GetTree)(G4int)= - &G4UIcommandTree::GetTree; -G4UIcommandTree*(G4UIcommandTree::*f2_GetTree)(const char*)= - &G4UIcommandTree::GetTree; - -} - -using namespace pyG4UIcommandTree; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4UIcommandTree() -{ - class_ - ("G4UIcommandTree", "UI command tree") - // constructors - .def(init()) - // --- - .def("FindPath", &G4UIcommandTree::FindPath, - return_value_policy()) - .def("List", &G4UIcommandTree::List) - .def("ListCurrent", &G4UIcommandTree::ListCurrent) - .def("ListCurrentWithNum", &G4UIcommandTree::ListCurrentWithNum) - .def("CreateHTML", &G4UIcommandTree::CreateHTML) - .def("GetGuidance", &G4UIcommandTree::GetGuidance, - return_value_policy()) - .def("GetPathName", &G4UIcommandTree::GetPathName, - return_value_policy()) - // --- - .def("GetTreeEntry", &G4UIcommandTree::GetTreeEntry) - .def("GetCommandEntry", &G4UIcommandTree::GetCommandEntry) - .def("GetTree", f1_GetTree, - return_value_policy()) - .def("GetTree", f2_GetTree, - return_value_policy()) - .def("GetCommand", &G4UIcommandTree::GetCommand, - return_value_policy()) - // --- - .def("GetTitle", &G4UIcommandTree::GetTitle) - ; -} diff --git a/environments/g4py/source/intercoms/pyG4UImanager.cc b/environments/g4py/source/intercoms/pyG4UImanager.cc deleted file mode 100644 index 4f50e3ff44..0000000000 --- a/environments/g4py/source/intercoms/pyG4UImanager.cc +++ /dev/null @@ -1,150 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4UImanager.cc -// -// G4UImanager class is pure singleton, so it cannnot be exposed -// from BPL. Functionality of G4UImanager is exposed in global -// name space via wrappers. -// 2006 Q -// ==================================================================== -#include -#include "G4UImanager.hh" -#include "G4UIcommandTree.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4UImanager { - -// ApplyCommand -G4int(G4UImanager::*f1_ApplyCommand)(const char*) = &G4UImanager::ApplyCommand; -G4int(G4UImanager::*f2_ApplyCommand)(const G4String&) = - &G4UImanager::ApplyCommand; - -// CreateHTML -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_CreateHTML, CreateHTML, 0, 1) - - -////////////////////////////////////////////// -G4int ApplyUICommand_1(const G4String& cmdstr) -////////////////////////////////////////////// -{ - G4UImanager* UImgr= G4UImanager::GetUIpointer(); - G4int returnVal= UImgr-> ApplyCommand(cmdstr); - if( returnVal == fCommandSucceeded ) return returnVal; - - G4int paramIndex= returnVal % 100; - G4int commandStatus= returnVal - paramIndex; - - switch(commandStatus) { - case fCommandSucceeded: - break; - - case fCommandNotFound: - G4cout << "command <" << UImgr-> SolveAlias(cmdstr) - << "> not found" << G4endl; - break; - - case fIllegalApplicationState: - G4cout << "illegal application state -- command refused" - << G4endl; - break; - - case fParameterOutOfRange: - break; - - case fParameterOutOfCandidates: - G4cout << "Parameter is out of candidate list (index " - << paramIndex << ")" - << G4endl; - break; - - case fParameterUnreadable: - G4cout << "Parameter is wrong type and/or is not omittable (index " - << paramIndex << ")" << G4endl; - break; - - case fAliasNotFound: - break; - - default: - G4cout << "command refused (" << commandStatus << ")" << G4endl; - break; - } - - return returnVal; -} - -///////////////////////////////////////////////// -G4int ApplyUICommand_2(const std::string& cmdstr) -///////////////////////////////////////////////// -{ - return ApplyUICommand_1(cmdstr); -} - -} - -using namespace pyG4UImanager; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4UImanager() -{ - class_ - ("G4UImanager", "UI manager class", no_init) - .def("GetUIpointer", &G4UImanager::GetUIpointer, - return_value_policy()) - .staticmethod("GetUIpointer") - // --- - .def("GetCurrentValues", &G4UImanager::GetCurrentValues) - .def("ExecuteMacroFile", &G4UImanager::ExecuteMacroFile) - .def("ApplyCommand", f1_ApplyCommand) - .def("ApplyCommand", f2_ApplyCommand) - .def("CreateHTML", &G4UImanager::CreateHTML, f_CreateHTML()) - .def("SetMacroSearchPath", &G4UImanager::SetMacroSearchPath) - .def("GetMacroSearchPath", &G4UImanager::GetMacroSearchPath, - return_value_policy()) - // --- - .def("SetPauseAtBeginOfEvent", &G4UImanager::SetPauseAtBeginOfEvent) - .def("GetPauseAtBeginOfEvent", &G4UImanager::GetPauseAtBeginOfEvent) - .def("SetPauseAtEndOfEvent", &G4UImanager::SetPauseAtEndOfEvent) - .def("GetPauseAtEndOfEvent", &G4UImanager::GetPauseAtEndOfEvent) - .def("SetVerboseLevel", &G4UImanager::SetVerboseLevel) - .def("GetVerboseLevel", &G4UImanager::GetVerboseLevel) - // --- - .def("GetTree", &G4UImanager::GetTree, - return_value_policy()) - ; - - // --- - def("ApplyUICommand", ApplyUICommand_1); - def("ApplyUICommand", ApplyUICommand_2); - -} diff --git a/environments/g4py/source/intercoms/pyG4UIparameter.cc b/environments/g4py/source/intercoms/pyG4UIparameter.cc deleted file mode 100644 index 78e8e4d5ba..0000000000 --- a/environments/g4py/source/intercoms/pyG4UIparameter.cc +++ /dev/null @@ -1,62 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4UIparameter.cc -// -// 2006 Q -// ==================================================================== -#include -#include "G4UIparameter.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4UIparameter() -{ - class_ - ("G4UIparameter", "UI parameter") - // constructors - .def(init()) - .def(init()) - // --- - .def("List", &G4UIparameter::List) - .def("GetDefaultValue", &G4UIparameter::GetDefaultValue, - return_value_policy()) - .def("GetParameterType", &G4UIparameter::GetParameterType) - .def("GetParameterRange", &G4UIparameter::GetParameterRange, - return_value_policy()) - .def("GetParameterName", &G4UIparameter::GetParameterName, - return_value_policy()) - .def("GetParameterCandidates", &G4UIparameter::GetParameterCandidates, - return_value_policy()) - .def("IsOmittable", &G4UIparameter::IsOmittable) - .def("GetCurrentAsDefault", &G4UIparameter::GetCurrentAsDefault) - .def("GetParameterGuidance", &G4UIparameter::GetParameterGuidance, - return_value_policy()) - ; -} diff --git a/environments/g4py/source/intercoms/pymodG4intercoms.cc b/environments/g4py/source/intercoms/pymodG4intercoms.cc deleted file mode 100644 index ee7482ef6c..0000000000 --- a/environments/g4py/source/intercoms/pymodG4intercoms.cc +++ /dev/null @@ -1,51 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pymodG4intercoms.cc [Geant4Py module] -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== - -void export_G4UImanager(); -void export_G4UIcommandTree(); -void export_G4UIcommand(); -void export_G4UIparameter(); - -BOOST_PYTHON_MODULE(G4intercoms) -{ - export_G4UImanager(); - export_G4UIcommandTree(); - export_G4UIcommand(); - export_G4UIparameter(); -} - diff --git a/environments/g4py/source/interface/CMakeLists.txt b/environments/g4py/source/interface/CMakeLists.txt deleted file mode 100644 index 097a858625..0000000000 --- a/environments/g4py/source/interface/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -# - build library - -# library -geant4_add_pymodule(pyG4interfaces - pyG4UIterminal.cc - pymodG4interface.cc -) - -target_link_libraries(pyG4interfaces PRIVATE G4interfaces) -install(TARGETS pyG4interfaces DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/materials/CMakeLists.txt b/environments/g4py/source/materials/CMakeLists.txt deleted file mode 100644 index f50cc6c792..0000000000 --- a/environments/g4py/source/materials/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -# - build library - -# library -geant4_add_pymodule(pyG4materials - pyG4AtomicShells.cc - pyG4Element.cc - pyG4ElementTable.cc - pyG4ElementVector.cc - pyG4Isotope.cc - pyG4Material.cc - pyG4MaterialTable.cc - pyG4NistManager.cc - pymodG4materials.cc -) - -target_link_libraries(pyG4materials PRIVATE G4materials) -install(TARGETS pyG4materials DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/materials/pyG4AtomicShells.cc b/environments/g4py/source/materials/pyG4AtomicShells.cc deleted file mode 100644 index 1d06b580de..0000000000 --- a/environments/g4py/source/materials/pyG4AtomicShells.cc +++ /dev/null @@ -1,55 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4AtomicShells.cc -// -// 2008 Q -// ==================================================================== -#include -#include "G4AtomicShells.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4AtomicShells() -{ - class_ - ("G4AtomicShells", "Atomic subshell binding energy table", no_init) - - .def("GetNumberOfShells", &G4AtomicShells::GetNumberOfShells) - .staticmethod("GetNumberOfShells") - - .def("GetNumberOfElectrons", &G4AtomicShells::GetNumberOfElectrons) - .staticmethod("GetNumberOfElectrons") - - .def("GetBindingEnergy", &G4AtomicShells::GetBindingEnergy) - .staticmethod("GetBindingEnergy") - - .def("GetTotalBindingEnergy", &G4AtomicShells::GetTotalBindingEnergy) - ; -} diff --git a/environments/g4py/source/materials/pyG4Element.cc b/environments/g4py/source/materials/pyG4Element.cc deleted file mode 100644 index fa8586727d..0000000000 --- a/environments/g4py/source/materials/pyG4Element.cc +++ /dev/null @@ -1,108 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Element.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4Element.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4Element { - -// raw pointer -> Python list conversion -list f_GetRelativeAbundanceVector(const G4Element* element) -{ - list aList; - const G4double* aVec= element-> GetRelativeAbundanceVector(); - G4int niso= element-> GetNumberOfIsotopes(); - for(G4int i=0; i - ("G4Element", "element class", no_init) - // constructors - .def(init()) - .def(init()) - // --- - .def("AddIsotope", &G4Element::AddIsotope) - .def("GetName", &G4Element::GetName, - return_value_policy()) - .def("GetSymbol", &G4Element::GetSymbol, - return_value_policy()) - .def("SetName", &G4Element::SetName) - .def("GetZ", &G4Element::GetZ) - .def("GetN", &G4Element::GetN) - .def("GetA", &G4Element::GetA) - .def("GetNbOfAtomicShells", &G4Element::GetNbOfAtomicShells) - .def("GetAtomicShell", &G4Element::GetAtomicShell) - .def("GetNumberOfIsotopes", &G4Element::GetNumberOfIsotopes) - .def("GetIsotopeVector", &G4Element::GetIsotopeVector, - return_internal_reference<>()) - .def("GetRelativeAbundanceVector", f_GetRelativeAbundanceVector) - .def("GetIsotope", &G4Element::GetIsotope, - return_value_policy()) - .def("GetElementTable", &G4Element::GetElementTable, - return_value_policy()) - .staticmethod("GetElementTable") - .def("GetNumberOfElements", &G4Element::GetNumberOfElements) - .staticmethod("GetNumberOfElements") - .def("GetIndex", &G4Element::GetIndex) - .def("GetElement", &G4Element::GetElement, - return_value_policy()) - .staticmethod("GetElement") - .def("GetfCoulomb", &G4Element::GetfCoulomb) - .def("GetfRadTsai", &G4Element::GetfRadTsai) - .def("GetIonisation", &G4Element::GetIonisation, - return_internal_reference<>()) - // --- - .def("Print", Print) - ; -} diff --git a/environments/g4py/source/materials/pyG4ElementTable.cc b/environments/g4py/source/materials/pyG4ElementTable.cc deleted file mode 100644 index 9784807e29..0000000000 --- a/environments/g4py/source/materials/pyG4ElementTable.cc +++ /dev/null @@ -1,48 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ElementTable.cc -// -// 2005 Q -// ==================================================================== -#include -#include -#include "G4Element.hh" -#include "G4ElementTable.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ElementTable() -{ - class_ ("G4ElementTable", "element table") - .def(vector_indexing_suite()) - .def(self_ns::str(self)) - ; -} - diff --git a/environments/g4py/source/materials/pyG4ElementVector.cc b/environments/g4py/source/materials/pyG4ElementVector.cc deleted file mode 100644 index a49f5b5a2b..0000000000 --- a/environments/g4py/source/materials/pyG4ElementVector.cc +++ /dev/null @@ -1,48 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ElementVector.cc -// -// 2005 Q -// ==================================================================== -#include -#include -#include "G4Element.hh" -#include "G4ElementVector.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ElementVector() -{ - class_ ("G4ElementVector", "element vector") - .def(vector_indexing_suite()) - .def(self_ns::str(self)) - ; -} - diff --git a/environments/g4py/source/materials/pyG4Isotope.cc b/environments/g4py/source/materials/pyG4Isotope.cc deleted file mode 100644 index cafe8a05f5..0000000000 --- a/environments/g4py/source/materials/pyG4Isotope.cc +++ /dev/null @@ -1,94 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Isotope.cc -// -// 2005 Q -// ==================================================================== -#include -#include -#include "G4Version.hh" -#include "G4Isotope.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4Isotope { - -BOOST_PYTHON_FUNCTION_OVERLOADS(f_GetIsotope, G4Isotope::GetIsotope, 1, 2) - -// copy constructor is private, so ... -void Print(G4Isotope& iso) -{ - G4cout << iso; -} - -} - -using namespace pyG4Isotope; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Isotope() -{ - class_ - ("G4Isotope", "isotope class", no_init) - // constructors - .def(init()) - .def(init()) - // --- - .def("GetName", &G4Isotope::GetName, - return_value_policy()) - .def("SetName", &G4Isotope::SetName) - .def("GetZ", &G4Isotope::GetZ) - .def("GetN", &G4Isotope::GetN) - .def("GetA", &G4Isotope::GetA) - .def("GetIsotope", &G4Isotope::GetIsotope, - f_GetIsotope() - [return_value_policy()]) - .staticmethod("GetIsotope") - .def("GetIsotopeTable", &G4Isotope::GetIsotopeTable, - return_value_policy()) - .staticmethod("GetIsotopeTable") - .def("GetNumberOfIsotopes", &G4Isotope::GetNumberOfIsotopes) - .staticmethod("GetNumberOfIsotopes") - - .def("GetIndex", &G4Isotope::GetIndex) - // --- - .def("Print", Print) - .def(self == self) - .def(self != self) - ; - - // G4IsotopeTable - class_ ("G4IsotopeTable", "isotope table") - .def(vector_indexing_suite()) - .def(self_ns::str(self)) - ; -} diff --git a/environments/g4py/source/materials/pyG4Material.cc b/environments/g4py/source/materials/pyG4Material.cc deleted file mode 100644 index 27fc9c13e8..0000000000 --- a/environments/g4py/source/materials/pyG4Material.cc +++ /dev/null @@ -1,185 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Material.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Material.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4Material { - -// AddElement -void (G4Material::*f1_AddElement)(G4Element*, G4int) - = &G4Material::AddElement; -void (G4Material::*f2_AddElement)(G4Element*, G4double) - = &G4Material::AddElement; - -// GetMaterial -G4Material* (*f1_GetMaterial)(const G4String&, G4bool) - = &G4Material::GetMaterial; -G4Material* (*f2_GetMaterial)(G4double, G4double, G4double) - = &G4Material::GetMaterial; -G4Material* (*f3_GetMaterial)(size_t, G4double) - = &G4Material::GetMaterial; - -BOOST_PYTHON_FUNCTION_OVERLOADS(f_GetMaterial, G4Material::GetMaterial, 1, 2) - -// raw pointer -> Python list conversion -list f_GetFractionVector(const G4Material* material) -{ - list fracList; - const G4double* fracVec= material-> GetFractionVector(); - G4int nele= material-> GetNumberOfElements(); - for(G4int i=0; i GetAtomsVector(); - G4int nele= material-> GetNumberOfElements(); - for(G4int i=0; i GetVecNbOfAtomsPerVolume(); - G4int nele= material-> GetNumberOfElements(); - for(G4int i=0; i GetAtomicNumDensityVector(); - G4int nele= material-> GetNumberOfElements(); - for(G4int i=0; i - ("G4Material", "material class", no_init) - .def(init()) - .def(init()) - // --- - .def("AddElement", f1_AddElement) - .def("AddElement", f2_AddElement) - .def("AddMaterial", &G4Material::AddMaterial) - .def("GetName", &G4Material::GetName, - return_value_policy()) - .def("GetChemicalFormula", &G4Material::GetChemicalFormula, - return_value_policy()) - .def("SetName", &G4Material::SetName) - .def("SetChemicalFormula", &G4Material::SetChemicalFormula) - .def("GetDensity", &G4Material::GetDensity) - .def("GetState", &G4Material::GetState) - .def("GetTemperature", &G4Material::GetTemperature) - .def("GetPressure", &G4Material::GetPressure) - // --- - .def("GetElementVector", &G4Material::GetElementVector, - return_internal_reference<>()) - .def("GetElement", &G4Material::GetElement, - return_value_policy()) - .def("GetTotNbOfAtomsPerVolume", &G4Material::GetTotNbOfAtomsPerVolume) - .def("GetTotNbOfElectPerVolume", &G4Material::GetTotNbOfElectPerVolume) - .def("GetFractionVector", f_GetFractionVector) - .def("GetAtomsVector", f_GetAtomsVector) - .def("GetVecNbOfAtomsPerVolume", f_GetVecNbOfAtomsPerVolume) - .def("GetAtomicNumDensityVector", f_GetAtomicNumDensityVector) - // ---- - .def("GetElectronDensity", &G4Material::GetElectronDensity) - .def("GetRadlen", &G4Material::GetRadlen) - .def("GetNuclearInterLength", &G4Material::GetNuclearInterLength) - .def("GetIonisation", &G4Material::GetIonisation, - return_internal_reference<>()) - .def("GetSandiaTable", &G4Material::GetSandiaTable, - return_internal_reference<>()) - // --- - .def("GetZ", &G4Material::GetZ) - .def("GetA", &G4Material::GetA) - .def("SetMaterialPropertiesTable", &G4Material::SetMaterialPropertiesTable) - .def("GetMaterialPropertiesTable", &G4Material::GetMaterialPropertiesTable, - return_internal_reference<>()) - .def("GetMaterialTable", &G4Material::GetMaterialTable, - return_value_policy()) - .staticmethod("GetMaterialTable") - .def("GetNumberOfMaterials", &G4Material::GetNumberOfMaterials) - .staticmethod("GetNumberOfMaterials") - .def("GetIndex", &G4Material::GetIndex) - .def("GetMaterial", f1_GetMaterial, f_GetMaterial() - [return_value_policy()]) - .def("GetMaterial", f2_GetMaterial, - return_value_policy()) - .def("GetMaterial", f3_GetMaterial, - return_value_policy()) - .staticmethod("GetMaterial") - // --- - //.def(self_ns::str(self)) - .def("Print", Print) - ; - - // --- - enum_("G4State") - .value("kStateUndefined", kStateUndefined) - .value("kStateSolid", kStateSolid) - .value("kStateLiquid", kStateLiquid) - .value("kStateGas", kStateGas) - ; -} diff --git a/environments/g4py/source/materials/pyG4MaterialTable.cc b/environments/g4py/source/materials/pyG4MaterialTable.cc deleted file mode 100644 index b9a5f3b664..0000000000 --- a/environments/g4py/source/materials/pyG4MaterialTable.cc +++ /dev/null @@ -1,48 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4MaterialTable.cc -// -// 2005 Q -// ==================================================================== -#include -#include -#include "G4Material.hh" -#include "G4MaterialTable.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4MaterialTable() -{ - class_ ("G4MaterialTable", "material table") - .def(vector_indexing_suite()) - .def(self_ns::str(self)) - ; -} - diff --git a/environments/g4py/source/materials/pyG4NistManager.cc b/environments/g4py/source/materials/pyG4NistManager.cc deleted file mode 100644 index 155b083edb..0000000000 --- a/environments/g4py/source/materials/pyG4NistManager.cc +++ /dev/null @@ -1,149 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4NistManager.cc -// -// 2005 Q -// =================================================================== -#include -#include "G4Version.hh" -#if G4VERSION_NUMBER >= 710 -#include "G4NistManager.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4NistManager { - -// FindOrBuildElement -G4Element*(G4NistManager::*f1_FindOrBuildElement)(G4int, G4bool) - = &G4NistManager::FindOrBuildElement; - -G4Element*(G4NistManager::*f2_FindOrBuildElement)(const G4String&, G4bool) - = &G4NistManager::FindOrBuildElement; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_FindOrBuildElement, - FindOrBuildElement, 1, 2) - -// PrintElement -void(G4NistManager::*f1_PrintElement)(const G4String&) const - = &G4NistManager::PrintElement; -void(G4NistManager::*f2_PrintElement)(G4int) const - = &G4NistManager::PrintElement; - -// FindOrBuildMaterial -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_FindOrBuildMaterial, - FindOrBuildMaterial, 1, 2) - -// ConstructNewMaterial -G4Material*(G4NistManager::*f1_ConstructNewMaterial) - (const G4String&, const std::vector&, - const std::vector&, G4double, G4bool, - G4State, G4double, G4double) - = &G4NistManager::ConstructNewMaterial; - -G4Material*(G4NistManager::*f2_ConstructNewMaterial) - (const G4String&, const std::vector&, - const std::vector&, G4double, G4bool, - G4State, G4double, G4double) - = &G4NistManager::ConstructNewMaterial; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ConstructNewMaterial, - ConstructNewMaterial, 4, 8) - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ConstructNewGasMaterial, - ConstructNewGasMaterial, 4, 5) - -} - -using namespace pyG4NistManager; - -#endif - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4NistManager() -{ -#if G4VERSION_NUMBER >= 710 - - class_ - ("G4NistManager", "manager class for NIST materials", no_init) - // --- - .def("Instance", &G4NistManager::Instance, - return_value_policy()) - .staticmethod("Instance") - // --- - .def("SetVerbose", &G4NistManager::SetVerbose) - .def("GetVerbose", &G4NistManager::GetVerbose) - // --- -#if G4VERSION_NUMBER < 910 - .def("RegisterElement", &G4NistManager::RegisterElement) - .def("DeRegisterElement", &G4NistManager::DeRegisterElement) -#endif - .def("GetElement", &G4NistManager::GetElement, - return_internal_reference<>()) - .def("FindOrBuildElement", f1_FindOrBuildElement, - f_FindOrBuildElement() - [return_value_policy()]) - .def("FindOrBuildElement", f2_FindOrBuildElement, - f_FindOrBuildElement() - [return_value_policy()]) - .def("GetNumberOfElements", &G4NistManager::GetNumberOfElements) - .def("GetZ", &G4NistManager::GetZ) - .def("GetIsotopeMass", &G4NistManager::GetIsotopeMass) - .def("PrintElement", f1_PrintElement) - .def("PrintElement", f2_PrintElement) - .def("PrintG4Element", &G4NistManager::PrintG4Element) - // --- -#if G4VERSION_NUMBER < 910 - .def("RegisterMaterial", &G4NistManager::RegisterMaterial) - .def("DeRegisterMaterial", &G4NistManager::DeRegisterMaterial) -#endif - .def("GetMaterial", &G4NistManager::GetMaterial, - return_value_policy()) - .def("FindOrBuildMaterial", &G4NistManager::FindOrBuildMaterial, - f_FindOrBuildMaterial() - [return_value_policy()]) - .def("ConstructNewMaterial", f1_ConstructNewMaterial, - f_ConstructNewMaterial() - [return_value_policy()]) - .def("ConstructNewMaterial", f2_ConstructNewMaterial, - f_ConstructNewMaterial() - [return_value_policy()]) -#if G4VERSION_NUMBER >= 910 - .def("ConstructNewGasMaterial", &G4NistManager::ConstructNewGasMaterial, - f_ConstructNewGasMaterial() - [return_value_policy()]) -#endif - .def("GetNumberOfMaterials", &G4NistManager::GetNumberOfMaterials) - .def("ListMaterials", &G4NistManager::ListMaterials) - .def("PrintG4Material", &G4NistManager::PrintG4Material) - ; -#endif -} diff --git a/environments/g4py/source/materials/pymodG4materials.cc b/environments/g4py/source/materials/pymodG4materials.cc deleted file mode 100644 index 0990224deb..0000000000 --- a/environments/g4py/source/materials/pymodG4materials.cc +++ /dev/null @@ -1,58 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pymodG4materials.cc [Geant4Py module] -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Material(); -void export_G4MaterialTable(); -void export_G4Element(); -void export_G4ElementTable(); -void export_G4ElementVector(); -void export_G4Isotope(); -void export_G4NistManager(); -void export_G4AtomicShells(); - -BOOST_PYTHON_MODULE(G4materials) -{ - export_G4Material(); - export_G4MaterialTable(); - export_G4Element(); - export_G4ElementTable(); - export_G4ElementVector(); - export_G4Isotope(); - export_G4NistManager(); - export_G4AtomicShells(); -} - diff --git a/environments/g4py/source/particles/CMakeLists.txt b/environments/g4py/source/particles/CMakeLists.txt deleted file mode 100644 index ad539e0017..0000000000 --- a/environments/g4py/source/particles/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -# - build library - -# library -geant4_add_pymodule(pyG4particles - pyG4DecayTable.cc - pyG4DynamicParticle.cc - pyG4ParticleDefinition.cc - pyG4ParticleList.cc - pyG4ParticleTable.cc - pyG4PrimaryParticle.cc - pyG4PrimaryVertex.cc - pymodG4particles.cc -) - -target_link_libraries(pyG4particles PRIVATE G4particles G4processes) -install(TARGETS pyG4particles DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/particles/pyG4DecayTable.cc b/environments/g4py/source/particles/pyG4DecayTable.cc deleted file mode 100644 index 964c2773c8..0000000000 --- a/environments/g4py/source/particles/pyG4DecayTable.cc +++ /dev/null @@ -1,51 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4DecayTable.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4DecayTable.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4DecayTable() -{ - class_ - ("G4DecayTable", "decay table") - // --- - .def("DumpInfo", &G4DecayTable::DumpInfo) - ; - - // reduced functionality... - // ... - -} - diff --git a/environments/g4py/source/particles/pyG4DynamicParticle.cc b/environments/g4py/source/particles/pyG4DynamicParticle.cc deleted file mode 100644 index 4cb01b18a1..0000000000 --- a/environments/g4py/source/particles/pyG4DynamicParticle.cc +++ /dev/null @@ -1,76 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4DynamicParticle.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4DynamicParticle.hh" -#include "G4PrimaryParticle.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4DynamicParticle() -{ - class_ - ("G4DynamicParticle", "dynamic particle") - // --- - .def("GetMomentumDirection", &G4DynamicParticle::GetMomentumDirection, - return_value_policy()) - .def("GetMomentum", &G4DynamicParticle::GetMomentum, - return_value_policy()) - //.def("Get4Momentum", &G4DynamicParticle::Get4Momentum, - //return_value_policy()) - .def("GetTotalMomentum", &G4DynamicParticle::GetTotalMomentum) - .def("GetTotalEnergy", &G4DynamicParticle::GetTotalEnergy) - .def("GetKineticEnergy", &G4DynamicParticle::GetKineticEnergy) - .def("GetProperTime", &G4DynamicParticle::GetProperTime) - .def("GetPolarization", &G4DynamicParticle::GetPolarization, - return_value_policy()) - .def("GetMass", &G4DynamicParticle::GetMass) - .def("GetCharge", &G4DynamicParticle::GetCharge) - //.def("GetElectronOccupancy", &G4DynamicParticle::GetElectronOccupancy, - //return_internal_reference<>()) - .def("GetTotalOccupancy", &G4DynamicParticle::GetTotalOccupancy) - .def("GetOccupancy", &G4DynamicParticle::GetOccupancy) - .def("GetDefinition", &G4DynamicParticle::GetDefinition, - return_internal_reference<>()) - .def("GetPreAssignedDecayProperTime", - &G4DynamicParticle::GetPreAssignedDecayProperTime) - .def("DumpInfo", &G4DynamicParticle::DumpInfo) - .def("SetVerboseLevel", &G4DynamicParticle::SetVerboseLevel) - .def("GetVerboseLevel", &G4DynamicParticle::GetVerboseLevel) - .def("GetPrimaryParticle", &G4DynamicParticle::GetPrimaryParticle, - return_internal_reference<>()) - .def("GetPDGcode", &G4DynamicParticle::GetPDGcode) - ; -} - diff --git a/environments/g4py/source/particles/pyG4ParticleDefinition.cc b/environments/g4py/source/particles/pyG4ParticleDefinition.cc deleted file mode 100644 index 63ba893f3e..0000000000 --- a/environments/g4py/source/particles/pyG4ParticleDefinition.cc +++ /dev/null @@ -1,97 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ParticleDefinition.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4DecayTable.hh" -#include "G4ProcessManager.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ParticleDefinition() -{ - class_ - ("G4ParticleDefinition", "particle definition", no_init) - // --- - .def("GetParticleName", &G4ParticleDefinition::GetParticleName, - return_value_policy()) - .def("GetPDGMass", &G4ParticleDefinition::GetPDGMass) - .def("GetPDGWidth", &G4ParticleDefinition::GetPDGWidth) - .def("GetPDGCharge", &G4ParticleDefinition::GetPDGCharge) - .def("GetPDGSpin", &G4ParticleDefinition::GetPDGSpin) - .def("GetPDGiSpin", &G4ParticleDefinition::GetPDGiSpin) - .def("GetPDGiParity", &G4ParticleDefinition::GetPDGiParity) - .def("GetPDGiConjugation", &G4ParticleDefinition::GetPDGiConjugation) - .def("GetPDGIsospin", &G4ParticleDefinition::GetPDGIsospin) - .def("GetPDGIsospin3", &G4ParticleDefinition::GetPDGIsospin3) - .def("GetPDGiIsospin", &G4ParticleDefinition::GetPDGiIsospin) - .def("GetPDGiIsospin3", &G4ParticleDefinition::GetPDGiIsospin3) - .def("GetPDGiGParity", &G4ParticleDefinition::GetPDGiGParity) - .def("GetParticleType", &G4ParticleDefinition::GetParticleType, - return_value_policy()) - .def("GetParticleSubType", &G4ParticleDefinition::GetParticleSubType, - return_value_policy()) - .def("GetLeptonNumber", &G4ParticleDefinition::GetLeptonNumber) - .def("GetBaryonNumber", &G4ParticleDefinition::GetBaryonNumber) - .def("GetPDGEncoding", &G4ParticleDefinition::GetPDGEncoding) - .def("GetAntiPDGEncoding", &G4ParticleDefinition::GetAntiPDGEncoding) - .def("GetQuarkContent", &G4ParticleDefinition::GetQuarkContent) - .def("GetAntiQuarkContent",&G4ParticleDefinition::GetAntiQuarkContent) - .def("IsShortLived", &G4ParticleDefinition::IsShortLived) - .def("GetPDGStable", &G4ParticleDefinition::GetPDGStable) - .def("SetPDGStable", &G4ParticleDefinition::SetPDGStable) - .def("GetPDGLifeTime", &G4ParticleDefinition::GetPDGLifeTime) - .def("SetPDGLifeTime", &G4ParticleDefinition::SetPDGLifeTime) - .def("GetDecayTable", &G4ParticleDefinition::GetDecayTable, - return_internal_reference<>()) - .def("SetDecayTable", &G4ParticleDefinition::SetDecayTable) - .def("GetProcessManager", &G4ParticleDefinition::GetProcessManager, - return_internal_reference<>()) - .def("SetProcessManager", &G4ParticleDefinition::SetProcessManager) - // cludge!! (G4ParticleTable object is sigleton!!) - .def("GetParticleTable", &G4ParticleDefinition::GetParticleTable, - return_value_policy()) - .def("DumpTable", &G4ParticleDefinition::DumpTable) -#if G4VERSION_NUMBER >= 701 - .def("GetAtomicNumber", &G4ParticleDefinition::GetAtomicNumber) - .def("GetAtomicMass", &G4ParticleDefinition::GetAtomicMass) -#endif - .def("SetVerboseLevel", &G4ParticleDefinition::SetVerboseLevel) - .def("GetVerboseLevel", &G4ParticleDefinition::GetVerboseLevel) - .def("SetApplyCutsFlag", &G4ParticleDefinition::SetApplyCutsFlag) - .def("GetApplyCutsFlag", &G4ParticleDefinition::GetApplyCutsFlag) - ; -} - diff --git a/environments/g4py/source/particles/pyG4ParticleList.cc b/environments/g4py/source/particles/pyG4ParticleList.cc deleted file mode 100644 index 5b70d2f8c7..0000000000 --- a/environments/g4py/source/particles/pyG4ParticleList.cc +++ /dev/null @@ -1,90 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ParticleList.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4ParticleTable.hh" - -using namespace boost::python; - -// ==================================================================== -// internal class -// ==================================================================== - -class PyG4ParticleList { -public: - typedef std::vector ParticleList; - typedef ParticleList::iterator p_iterator; - - static ParticleList particleTableCache; - - p_iterator p_begin() { - G4ParticleTable* particleTable= G4ParticleTable::GetParticleTable(); - if(particleTableCache.size() != static_cast(particleTable-> size()) ) { - particleTableCache.clear(); - G4ParticleTable::G4PTblDicIterator* theParticleIterator= particleTable-> GetIterator(); - theParticleIterator-> reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle= theParticleIterator-> value(); - particleTableCache.push_back(particle); - } - } - return particleTableCache.begin(); - } - - p_iterator p_end() { - G4ParticleTable* particleTable= G4ParticleTable::GetParticleTable(); - if(particleTableCache.size() != static_cast(particleTable-> size()) ) { - particleTableCache.clear(); - G4ParticleTable::G4PTblDicIterator* theParticleIterator= particleTable-> GetIterator(); - theParticleIterator-> reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle= theParticleIterator-> value(); - particleTableCache.push_back(particle); - } - } - return particleTableCache.end(); - } -}; - -PyG4ParticleList::ParticleList PyG4ParticleList::particleTableCache; - - -// ==================================================================== -// module definition -// ==================================================================== -void export_PyG4ParticleList() -{ - class_("PyG4ParticleList", "particle list") - .def("__iter__", iterator()) - .add_property("particles", range(&PyG4ParticleList::p_begin, - &PyG4ParticleList::p_end)) - ; -} - diff --git a/environments/g4py/source/particles/pyG4ParticleTable.cc b/environments/g4py/source/particles/pyG4ParticleTable.cc deleted file mode 100644 index 86e91645e8..0000000000 --- a/environments/g4py/source/particles/pyG4ParticleTable.cc +++ /dev/null @@ -1,139 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ParticleTable.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4ParticleTable.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4ParticleTable { - -// contains... -G4bool(G4ParticleTable::*f1_contains)(const G4ParticleDefinition*) const - = &G4ParticleTable::contains; - -G4bool(G4ParticleTable::*f2_contains)(const G4String&) const - = &G4ParticleTable::contains; - -// FindParticle... -G4ParticleDefinition*(G4ParticleTable::*f1_FindParticle)(G4int) - = &G4ParticleTable::FindParticle; - -G4ParticleDefinition*(G4ParticleTable::*f2_FindParticle)(const G4String&) - = &G4ParticleTable::FindParticle; - -G4ParticleDefinition*(G4ParticleTable::*f3_FindParticle)( - const G4ParticleDefinition*)= &G4ParticleTable::FindParticle; - -// FindAntiParticle... -G4ParticleDefinition*(G4ParticleTable::*f1_FindAntiParticle)(G4int) - = &G4ParticleTable::FindAntiParticle; - -G4ParticleDefinition*(G4ParticleTable::*f2_FindAntiParticle)(const G4String&) - = &G4ParticleTable::FindAntiParticle; - -G4ParticleDefinition*(G4ParticleTable::*f3_FindAntiParticle)( - const G4ParticleDefinition*)= &G4ParticleTable::FindAntiParticle; - -// DumpTable -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_DumpTable, DumpTable, 0, 1) - - -// -------------------------------------------------------------------- -// GetParticleList (returning python list) - -list GetParticleList(G4ParticleTable* particleTable) -{ - list particleList; - G4ParticleTable::G4PTblDicIterator* - theParticleIterator= particleTable-> GetIterator(); - theParticleIterator-> reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle= theParticleIterator-> value(); - particleList.append(&particle); - } - - return particleList; -} - -} - -using namespace pyG4ParticleTable; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ParticleTable() -{ - class_ - ("G4ParticleTable", "particle table", no_init) - // --- - .def("GetParticleTable", &G4ParticleTable::GetParticleTable, - return_value_policy()) - .staticmethod("GetParticleTable") - .def("contains", f1_contains) - .def("contains", f2_contains) - .def("entries", &G4ParticleTable::entries) - .def("size", &G4ParticleTable::size) - // --- - .def("GetParticle", &G4ParticleTable::GetParticle, - return_value_policy()) - .def("GetParticleName", &G4ParticleTable::GetParticleName, - return_value_policy()) - .def("FindParticle", f1_FindParticle, - return_value_policy()) - .def("FindParticle", f2_FindParticle, - return_value_policy()) - .def("FindParticle", f3_FindParticle, - return_value_policy()) - .def("FindAntiParticle", f1_FindAntiParticle, - return_value_policy()) - .def("FindAntiParticle", f2_FindAntiParticle, - return_value_policy()) - .def("FindAntiParticle", f3_FindAntiParticle, - return_value_policy()) - .def("DumpTable", &G4ParticleTable::DumpTable, f_DumpTable()) - //.def("GetIonTable", &G4ParticleTable::GetIonTable, - //...) - //.def("GetShortLivedTable", &G4ParticleTable::GetShortLivedTable, - //...) - .def("SetVerboseLevel", &G4ParticleTable::SetVerboseLevel) - .def("GetVerboseLevel", &G4ParticleTable::GetVerboseLevel) - .def("SetReadiness", &G4ParticleTable::SetReadiness) - .def("GetReadiness", &G4ParticleTable::GetReadiness) - // --- - // additionals - .def("GetParticleList", GetParticleList) - ; -} diff --git a/environments/g4py/source/particles/pyG4PrimaryParticle.cc b/environments/g4py/source/particles/pyG4PrimaryParticle.cc deleted file mode 100644 index de0b126735..0000000000 --- a/environments/g4py/source/particles/pyG4PrimaryParticle.cc +++ /dev/null @@ -1,80 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4PrimaryParticle.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4PrimaryParticle.hh" -#include "G4ParticleDefinition.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4PrimaryParticle() -{ - class_ - ("G4PrimaryParticle", "primary particle") - .def(init()) - // --- - .add_property("Px", &G4PrimaryParticle::GetPx) - .add_property("Py", &G4PrimaryParticle::GetPy) - .add_property("Pz", &G4PrimaryParticle::GetPz) - // --- - .def("Print", &G4PrimaryParticle::Print) - .def("GetPDGcode", &G4PrimaryParticle::GetPDGcode) - .def("GetG4code", &G4PrimaryParticle::GetG4code, - return_internal_reference<>()) - .def("GetMomentun", &G4PrimaryParticle::GetMomentum, - return_value_policy()) - .def("GetPx", &G4PrimaryParticle::GetPx) - .def("GetPy", &G4PrimaryParticle::GetPy) - .def("GetPz", &G4PrimaryParticle::GetPz) - .def("Set4Momentum", &G4PrimaryParticle::Set4Momentum) - .def("SetMomentumDirection", &G4PrimaryParticle::SetMomentumDirection) - - .def("GetNext", &G4PrimaryParticle::GetNext, - return_internal_reference<>()) - .def("GetDaughter", &G4PrimaryParticle::GetNext, - return_internal_reference<>()) - .def("GetTrackID", &G4PrimaryParticle::GetTrackID) - .def("GetMass", &G4PrimaryParticle::GetMass) - .def("SetMass", &G4PrimaryParticle::SetMass) - .def("GetCharge", &G4PrimaryParticle::GetCharge) - .def("SetCharge", &G4PrimaryParticle::SetCharge) - .def("GetPolarization", &G4PrimaryParticle::GetPolarization, - return_value_policy()) - .def("GetPolX", &G4PrimaryParticle::GetPolX) - .def("GetPolY", &G4PrimaryParticle::GetPolY) - .def("GetPolZ", &G4PrimaryParticle::GetPolZ) - .def("GetWeight", &G4PrimaryParticle::GetWeight) - .def("SetWeight", &G4PrimaryParticle::SetWeight) - .def("GetProperTime", &G4PrimaryParticle::GetProperTime) - ; -} diff --git a/environments/g4py/source/particles/pyG4PrimaryVertex.cc b/environments/g4py/source/particles/pyG4PrimaryVertex.cc deleted file mode 100644 index d6af5e93bb..0000000000 --- a/environments/g4py/source/particles/pyG4PrimaryVertex.cc +++ /dev/null @@ -1,77 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4PrimaryVertex.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4PrimaryVertex.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4PrimaryVertex { - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetPrimary, GetPrimary, 0, 1) - -} - -using namespace pyG4PrimaryVertex; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4PrimaryVertex() -{ - class_ - ("G4PrimaryVertex", "primary vertex") - .def(init<>()) - .def(init()) - .def(init()) - // --- - .add_property("X0", &G4PrimaryVertex::GetX0) - .add_property("Y0", &G4PrimaryVertex::GetY0) - .add_property("Z0", &G4PrimaryVertex::GetZ0) - .add_property("T0", &G4PrimaryVertex::GetT0) - // --- - .def("GetPosition", &G4PrimaryVertex::GetPosition, - return_value_policy()) - .def("GetX0", &G4PrimaryVertex::GetX0) - .def("GetY0", &G4PrimaryVertex::GetY0) - .def("GetZ0", &G4PrimaryVertex::GetZ0) - .def("GetT0", &G4PrimaryVertex::GetT0) - .def("GetNumberOfParticle", &G4PrimaryVertex::GetNumberOfParticle) - .def("GetPrimary", &G4PrimaryVertex::GetPrimary, - return_internal_reference<>(), f_GetPrimary()) - .def("SetPrimary", &G4PrimaryVertex::SetPrimary) - .def("GetWeight", &G4PrimaryVertex::GetWeight) - .def("SetWeight", &G4PrimaryVertex::SetWeight) - .def("Print", &G4PrimaryVertex::Print) - ; -} diff --git a/environments/g4py/source/particles/pymodG4particles.cc b/environments/g4py/source/particles/pymodG4particles.cc deleted file mode 100644 index 6a58bee47e..0000000000 --- a/environments/g4py/source/particles/pymodG4particles.cc +++ /dev/null @@ -1,57 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pymodG4particles.cc -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ParticleDefinition(); -void export_G4DynamicParticle(); -void export_G4ParticleTable(); -void export_G4DecayTable(); -void export_G4PrimaryParticle(); -void export_G4PrimaryVertex(); -void export_PyG4ParticleList(); - - -BOOST_PYTHON_MODULE(G4particles) -{ - export_G4ParticleDefinition(); - export_G4DynamicParticle(); - export_G4ParticleTable(); - export_G4DecayTable(); - export_G4PrimaryParticle(); - export_G4PrimaryVertex(); - export_PyG4ParticleList(); -} - diff --git a/environments/g4py/source/physics_lists/CMakeLists.txt b/environments/g4py/source/physics_lists/CMakeLists.txt deleted file mode 100644 index be76a935c7..0000000000 --- a/environments/g4py/source/physics_lists/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -# - build library - -# library -geant4_add_pymodule(pyG4physicslists - pyPhysicsLists.cc - pyPhysListFactory.cc - pymodG4physicslists.cc -) -target_link_libraries(pyG4physicslists PRIVATE G4physicslists) -install(TARGETS pyG4physicslists DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/physics_lists/pyPhysListFactory.cc b/environments/g4py/source/physics_lists/pyPhysListFactory.cc deleted file mode 100644 index 5a1f2112dc..0000000000 --- a/environments/g4py/source/physics_lists/pyPhysListFactory.cc +++ /dev/null @@ -1,53 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyPhysListFactory.cc -// -// 2020 Q -// ==================================================================== -#include -#include "G4PhysListFactory.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_PhysListFactory() -{ - class_ - ("G4PhysListFactory", "phys list factory") - .def("GetReferencePhysList", &G4PhysListFactory::GetReferencePhysList, - return_internal_reference<>()) - .def("ReferencePhysList", &G4PhysListFactory::ReferencePhysList, - return_internal_reference<>()) - .def("IsReferencePhysList", &G4PhysListFactory::IsReferencePhysList) - .def("AvailablePhysLists", &G4PhysListFactory::AvailablePhysLists, - return_value_policy()) - .def("AvailablePhysListsEM", &G4PhysListFactory::AvailablePhysListsEM, - return_value_policy()) - ; -} diff --git a/environments/g4py/source/physics_lists/pyPhysicsLists.cc b/environments/g4py/source/physics_lists/pyPhysicsLists.cc deleted file mode 100644 index b522ae6513..0000000000 --- a/environments/g4py/source/physics_lists/pyPhysicsLists.cc +++ /dev/null @@ -1,116 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyPhysicsLists.cc -// -// 2007 Q -// ==================================================================== -#include -#include -#include -#include "FTFP_BERT.hh" -#include "FTFP_BERT_ATL.hh" -#include "FTFP_BERT_HP.hh" -#include "FTFP_BERT_TRV.hh" -#include "FTFP_INCLXX.hh" -#include "FTFP_INCLXX_HP.hh" -#include "FTF_BIC.hh" -#include "LBE.hh" -#include "NuBeam.hh" -#include "QBBC.hh" -#include "QGSP_BERT.hh" -#include "QGSP_BERT_HP.hh" -#include "QGSP_BIC.hh" -#include "QGSP_BIC_AllHP.hh" -#include "QGSP_BIC_HP.hh" -#include "QGSP_FTFP_BERT.hh" -#include "QGSP_INCLXX.hh" -#include "QGSP_INCLXX_HP.hh" -#include "QGS_BIC.hh" -#include "Shielding.hh" - - -// macro for adding physics lists -#define ADD_PHYSICS_LIST(plname) \ - class_, boost::noncopyable> \ - (#plname, #plname " physics list") \ - ; \ - AddPhysicsList(#plname); - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyPhysicsLists { - - static std::vector plList; - -void AddPhysicsList(const G4String& plname) { - plList.push_back(plname); -} - -void ListPhysicsList() { - for (const auto& p : plList) { - G4cout << p << G4endl; - } -} - -} - -using namespace pyPhysicsLists; - -// ==================================================================== -// module definition -// ==================================================================== -void export_PhysicsLists() -{ - def("ListPhysicsList", ListPhysicsList); - - ADD_PHYSICS_LIST(FTFP_BERT); - ADD_PHYSICS_LIST(FTFP_BERT_ATL); - ADD_PHYSICS_LIST(FTFP_BERT_HP); - ADD_PHYSICS_LIST(FTFP_BERT_TRV); - ADD_PHYSICS_LIST(FTFP_INCLXX); - ADD_PHYSICS_LIST(FTFP_INCLXX_HP); - ADD_PHYSICS_LIST(FTF_BIC); - ADD_PHYSICS_LIST(LBE); - ADD_PHYSICS_LIST(NuBeam); - ADD_PHYSICS_LIST(QBBC); - ADD_PHYSICS_LIST(QGSP_BERT); - ADD_PHYSICS_LIST(QGSP_BERT_HP); - ADD_PHYSICS_LIST(QGSP_BIC); - ADD_PHYSICS_LIST(QGSP_BIC_AllHP); - ADD_PHYSICS_LIST(QGSP_BIC_HP); - ADD_PHYSICS_LIST(QGSP_FTFP_BERT); - ADD_PHYSICS_LIST(QGSP_INCLXX); - ADD_PHYSICS_LIST(QGSP_INCLXX_HP); - ADD_PHYSICS_LIST(QGS_BIC); - ADD_PHYSICS_LIST(Shielding); - - // sort PL vector - std::sort(plList.begin(), plList.end()); -} diff --git a/environments/g4py/source/physics_lists/pymodG4physicslists.cc b/environments/g4py/source/physics_lists/pymodG4physicslists.cc deleted file mode 100644 index ba23846b42..0000000000 --- a/environments/g4py/source/physics_lists/pymodG4physicslists.cc +++ /dev/null @@ -1,45 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pymodG4physicslists.cc [Geant4Py module] -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_PhysicsLists(); -void export_PhysListFactory(); - -BOOST_PYTHON_MODULE(G4physicslists) -{ - export_PhysicsLists(); - export_PhysListFactory(); -} diff --git a/environments/g4py/source/processes/CMakeLists.txt b/environments/g4py/source/processes/CMakeLists.txt deleted file mode 100644 index 39c3f3450b..0000000000 --- a/environments/g4py/source/processes/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ -# - build library - -# library -geant4_add_pymodule(pyG4processes - pyG4CrossSectionHandler.cc - pyG4EmCalculator.cc - pyG4ProcVector.cc - pyG4ProcessManager.cc - pyG4ProcessTable.cc - pyG4ProcessType.cc - pyG4ProductionCutsTable.cc - pyG4VCrossSectionHandler.cc - pyG4VProcess.cc - pymodG4processes.cc -) - -target_link_libraries(pyG4processes PRIVATE G4processes) -install(TARGETS pyG4processes DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/processes/pyG4CrossSectionHandler.cc b/environments/g4py/source/processes/pyG4CrossSectionHandler.cc deleted file mode 100644 index c7852cf209..0000000000 --- a/environments/g4py/source/processes/pyG4CrossSectionHandler.cc +++ /dev/null @@ -1,46 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4CrossSectionHandler.cc -// -// 2008 Q -// ==================================================================== -#include -#include "G4CrossSectionHandler.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4CrossSectionHandler() -{ - class_, - boost::noncopyable> - ("G4CrossSectionHandler", "cross section handler") - .def(init<>()) - ; -} diff --git a/environments/g4py/source/processes/pyG4EmCalculator.cc b/environments/g4py/source/processes/pyG4EmCalculator.cc deleted file mode 100644 index 7742c10194..0000000000 --- a/environments/g4py/source/processes/pyG4EmCalculator.cc +++ /dev/null @@ -1,273 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4EmCalculator.cc -// -// 2006 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4EmCalculator.hh" -#include "G4Region.hh" -#include "G4Material.hh" -#include "G4Element.hh" -#include "G4ParticleDefinition.hh" -#include "G4MaterialCutsCouple.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4EmCalculator { - -// GetDEDX -G4double (G4EmCalculator::*f1_GetDEDX) - (G4double, const G4ParticleDefinition*, const G4Material*, const G4Region*) - = &G4EmCalculator::GetDEDX; - -G4double (G4EmCalculator::*f2_GetDEDX) - (G4double, const G4String&, const G4String&, const G4String&) - = &G4EmCalculator::GetDEDX; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetDEDX, GetDEDX, 3, 4) - -// GetRange -G4double (G4EmCalculator::*f1_GetRange) - (G4double, const G4ParticleDefinition*, const G4Material*, const G4Region*) - = &G4EmCalculator::GetRange; - -G4double (G4EmCalculator::*f2_GetRange) - (G4double, const G4String&, const G4String&, const G4String&) - = &G4EmCalculator::GetRange; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetRange, GetRange, 3, 4) - -// GetKinEnergy -G4double (G4EmCalculator::*f1_GetKinEnergy) - (G4double, const G4ParticleDefinition*, const G4Material*, const G4Region*) - = &G4EmCalculator::GetKinEnergy; - -G4double (G4EmCalculator::*f2_GetKinEnergy) - (G4double, const G4String&, const G4String&, const G4String&) - = &G4EmCalculator::GetKinEnergy; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetKinEnergy, GetKinEnergy, 3, 4) - -// GetCrossSectionPerVolume -G4double (G4EmCalculator::*f1_GetCrossSectionPerVolume) - (G4double, const G4ParticleDefinition*, - const G4String&, const G4Material*, const G4Region*) - = &G4EmCalculator::GetCrossSectionPerVolume; - -G4double (G4EmCalculator::*f2_GetCrossSectionPerVolume) - (G4double, const G4String&, const G4String&, - const G4String&, const G4String&) - = &G4EmCalculator::GetCrossSectionPerVolume; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetCrossSectionPerVolume, - GetCrossSectionPerVolume, 4, 5) - -// GetMeanFreePath -G4double (G4EmCalculator::*f1_GetMeanFreePath) - (G4double, const G4ParticleDefinition*, - const G4String&, const G4Material*, const G4Region*) - = &G4EmCalculator::GetMeanFreePath; - -G4double (G4EmCalculator::*f2_GetMeanFreePath) - (G4double, const G4String&, const G4String&, - const G4String&, const G4String&) - = &G4EmCalculator::GetMeanFreePath; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetMeanFreePath, - GetMeanFreePath, 4, 5) - -// ComputeDEDX -G4double (G4EmCalculator::*f1_ComputeDEDX) - (G4double, const G4ParticleDefinition*, - const G4String&, const G4Material*, G4double) - = &G4EmCalculator::ComputeDEDX; - -G4double (G4EmCalculator::*f2_ComputeDEDX) - (G4double, const G4String&, const G4String&, const G4String&, G4double) - = &G4EmCalculator::ComputeDEDX; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ComputeDEDX, ComputeDEDX, 4, 5) - -// ComputeNuclearDEDX -G4double (G4EmCalculator::*f1_ComputeNuclearDEDX) - (G4double, const G4ParticleDefinition*, const G4Material*) - = &G4EmCalculator::ComputeNuclearDEDX; - -G4double (G4EmCalculator::*f2_ComputeNuclearDEDX) - (G4double, const G4String&, const G4String&) - = &G4EmCalculator::ComputeNuclearDEDX; - -// ComputeElectronicDEDX -G4double (G4EmCalculator::*f1_ComputeElectronicDEDX) - (G4double, const G4ParticleDefinition*, const G4Material*, G4double) - = &G4EmCalculator::ComputeElectronicDEDX; - -G4double (G4EmCalculator::*f2_ComputeElectronicDEDX) - (G4double, const G4String&, const G4String&, G4double) - = &G4EmCalculator::ComputeElectronicDEDX; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ComputeElectronicDEDX, - ComputeElectronicDEDX, 3, 4) - -// ComputeTotalDEDX -G4double (G4EmCalculator::*f1_ComputeTotalDEDX) - (G4double, const G4ParticleDefinition*, const G4Material*, G4double) - = &G4EmCalculator::ComputeTotalDEDX; - -G4double (G4EmCalculator::*f2_ComputeTotalDEDX) - (G4double, const G4String&, const G4String&, G4double) - = &G4EmCalculator::ComputeTotalDEDX; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ComputeTotalDEDX, ComputeTotalDEDX, - 3, 4) -// ComputeCrossSectionPerVolume -G4double (G4EmCalculator::*f1_ComputeCrossSectionPerVolume) - (G4double, const G4ParticleDefinition*, - const G4String&, const G4Material*, G4double) - = &G4EmCalculator::ComputeCrossSectionPerVolume; - -G4double (G4EmCalculator::*f2_ComputeCrossSectionPerVolume) - (G4double, const G4String&, const G4String&, const G4String&, G4double) - = &G4EmCalculator::ComputeCrossSectionPerVolume; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ComputeCrossSectionPerVolume, - ComputeCrossSectionPerVolume, 4, 5) - -// ComputeCrossSectionPerAtom -G4double (G4EmCalculator::*f1_ComputeCrossSectionPerAtom) - (G4double, const G4ParticleDefinition*, const G4String&, - G4double, G4double, G4double) - = &G4EmCalculator::ComputeCrossSectionPerAtom; - -G4double (G4EmCalculator::*f2_ComputeCrossSectionPerAtom) - (G4double, const G4String&, const G4String&, const G4Element*, G4double) - = &G4EmCalculator::ComputeCrossSectionPerAtom; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ComputeCrossSectionPerAtom, - ComputeCrossSectionPerAtom, 5, 6) - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(g_ComputeCrossSectionPerAtom, - ComputeCrossSectionPerAtom, 4, 5) - -// ComputeEnergyCutFromRangeCut -G4double (G4EmCalculator::*f1_ComputeEnergyCutFromRangeCut) - (G4double, const G4ParticleDefinition*, const G4Material*) - = &G4EmCalculator::ComputeEnergyCutFromRangeCut; - -G4double (G4EmCalculator::*f2_ComputeEnergyCutFromRangeCut) - (G4double range, const G4String&, const G4String&) - = &G4EmCalculator::ComputeEnergyCutFromRangeCut; - -// ComputeMeanFreePath -G4double (G4EmCalculator::*f1_ComputeMeanFreePath) - (G4double, const G4ParticleDefinition*, - const G4String&, const G4Material*, G4double) - = &G4EmCalculator::ComputeMeanFreePath; - -G4double (G4EmCalculator::*f2_ComputeMeanFreePath) - (G4double, const G4String&, const G4String&, const G4String&, G4double) - = &G4EmCalculator::ComputeMeanFreePath; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ComputeMeanFreePath, - ComputeMeanFreePath, 4, 5) - -// FindCouple -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_FindCouple, FindCouple, 1, 2) - -} - -using namespace pyG4EmCalculator; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4EmCalculator() -{ - class_ - ("G4EmCalculator", "Provide access to dE/dx and cross section") - // --- - .def("GetDEDX", f1_GetDEDX, f_GetDEDX()) - .def("GetDEDX", f2_GetDEDX, f_GetDEDX()) - .def("GetRange", f1_GetRange, f_GetRange()) - .def("GetRange", f2_GetDEDX, f_GetRange()) - .def("GetKinEnergy", f1_GetKinEnergy, f_GetKinEnergy()) - .def("GetKinEnergy", f2_GetKinEnergy, f_GetKinEnergy()) - .def("GetCrossSectionPerVolume", - f1_GetCrossSectionPerVolume, f_GetCrossSectionPerVolume()) - .def("GetCrossSectionPerVolume", - f2_GetCrossSectionPerVolume, f_GetCrossSectionPerVolume()) - .def("GetMeanFreePath", f1_GetMeanFreePath, f_GetMeanFreePath()) - .def("GetMeanFreePath", f2_GetMeanFreePath, f_GetMeanFreePath()) - // --- - .def("PrintDEDXTable", &G4EmCalculator::PrintDEDXTable) - .def("PrintRangeTable", &G4EmCalculator::PrintRangeTable) - .def("PrintInverseRangeTable", &G4EmCalculator::PrintInverseRangeTable) - // --- - .def("ComputeDEDX", f1_ComputeDEDX, f_ComputeDEDX()) - .def("ComputeDEDX", f2_ComputeDEDX, f_ComputeDEDX()) - .def("ComputeNuclearDEDX", f1_ComputeNuclearDEDX) - .def("ComputeNuclearDEDX", f2_ComputeNuclearDEDX) - .def("ComputeElectronicDEDX", f1_ComputeElectronicDEDX, - f_ComputeElectronicDEDX()) - .def("ComputeDEDX", f2_ComputeElectronicDEDX, - f_ComputeElectronicDEDX()) - .def("ComputeTotalDEDX", f1_ComputeTotalDEDX, f_ComputeTotalDEDX()) - .def("ComputeTotalDEDX", f2_ComputeTotalDEDX, f_ComputeTotalDEDX()) - // --- - .def("ComputeCrossSectionPerVolume", - f1_ComputeCrossSectionPerVolume, f_ComputeCrossSectionPerVolume()) - .def("ComputeCrossSectionPerVolume", - f2_ComputeCrossSectionPerVolume, f_ComputeCrossSectionPerVolume()) - .def("ComputeCrossSectionPerAtom", - f1_ComputeCrossSectionPerAtom, f_ComputeCrossSectionPerAtom()) - .def("ComputeCrossSectionPerAtom", - f2_ComputeCrossSectionPerAtom, g_ComputeCrossSectionPerAtom()) - .def("ComputeEnergyCutFromRangeCut", f1_ComputeEnergyCutFromRangeCut) - .def("ComputeEnergyCutFromRangeCut", f2_ComputeEnergyCutFromRangeCut) - // --- - .def("ComputeMeanFreePath", - f1_ComputeMeanFreePath, f_ComputeMeanFreePath()) - .def("ComputeMeanFreePath", - f2_ComputeMeanFreePath, f_ComputeMeanFreePath()) - // --- - .def("FindParticle", &G4EmCalculator::FindParticle, - return_value_policy()) - .def("FindMaterial", &G4EmCalculator::FindMaterial, - return_value_policy()) - .def("FindRegion", &G4EmCalculator::FindRegion, - return_value_policy()) - .def("FindCouple", &G4EmCalculator::FindCouple, - f_FindCouple()[return_value_policy()]) - // --- - .def("SetVerbose", &G4EmCalculator::SetVerbose) - ; -} diff --git a/environments/g4py/source/processes/pyG4ProcessManager.cc b/environments/g4py/source/processes/pyG4ProcessManager.cc deleted file mode 100644 index 12af5ea8e5..0000000000 --- a/environments/g4py/source/processes/pyG4ProcessManager.cc +++ /dev/null @@ -1,251 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ProcessManager.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4ProcessManager.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4ProcessManager { - -// GetProcessList() -// raw vector pointer -> Python list conversion -list f_GetProcessList(const G4ProcessManager* procMgr) -{ - list procList; - G4ProcessVector* procVec= procMgr-> GetProcessList(); - G4int nproc= procVec-> size(); - for(G4int i=0; i< nproc; i++) { - procList.append(&(*procVec)[i]); - } - return procList; -} - -// GetProcessVector() -list f_GetProcessVector(const G4ProcessManager* procMgr, - G4ProcessVectorDoItIndex idx, - G4ProcessVectorTypeIndex typ= typeGPIL ) -{ - list procList; - G4ProcessVector* procVec= procMgr-> GetProcessVector(idx, typ); - G4int nproc= procVec-> size(); - for(G4int i=0; i< nproc; i++) { - procList.append(&(*procVec)[i]); - } - return procList; -} - -BOOST_PYTHON_FUNCTION_OVERLOADS(g_GetProcessVector, - f_GetProcessVector, 2, 3) - -// GetAtRestProcessVector() -list f_GetAtRestProcessVector(const G4ProcessManager* procMgr, - G4ProcessVectorTypeIndex typ= typeGPIL ) -{ - list procList; - G4ProcessVector* procVec= procMgr-> GetAtRestProcessVector(typ); - G4int nproc= procVec-> size(); - for(G4int i=0; i< nproc; i++) { - procList.append(&(*procVec)[i]); - } - return procList; -} - -BOOST_PYTHON_FUNCTION_OVERLOADS(g_GetAtRestProcessVector, - f_GetAtRestProcessVector, 1, 2) - -// GetAlongStepProcessVector() -list f_GetAlongStepProcessVector(const G4ProcessManager* procMgr, - G4ProcessVectorTypeIndex typ= typeGPIL ) -{ - list procList; - G4ProcessVector* procVec= procMgr-> GetAlongStepProcessVector(typ); - G4int nproc= procVec-> size(); - for(G4int i=0; i< nproc; i++) { - procList.append(&(*procVec)[i]); - } - return procList; -} - -BOOST_PYTHON_FUNCTION_OVERLOADS(g_GetAlongStepProcessVector, - f_GetAlongStepProcessVector, 1, 2) - -// GetPostStepProcessVector() -list f_GetPostStepProcessVector(const G4ProcessManager* procMgr, - G4ProcessVectorTypeIndex typ= typeGPIL ) -{ - list procList; - G4ProcessVector* procVec= procMgr-> GetPostStepProcessVector(typ); - G4int nproc= procVec-> size(); - for(G4int i=0; i< nproc; i++) { - procList.append(&(*procVec)[i]); - } - return procList; -} - -BOOST_PYTHON_FUNCTION_OVERLOADS(g_GetPostStepProcessVector, - f_GetPostStepProcessVector, 1, 2) - -// GetProcessVectorIndex... -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetProcessVectorIndex, - GetProcessVectorIndex, 2, 3) - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetAtRestIndex, - GetAtRestIndex, 1, 2) - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetAlongStepIndex, - GetAlongStepIndex, 1, 2) - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetPostStepIndex, - GetPostStepIndex, 1, 2) -// AddProcess... -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_AddProcess, AddProcess, 1, 4) -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_AddRestProcess, - AddRestProcess, 1, 2) -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_AddDiscreteProcess, - AddDiscreteProcess, 1, 2) -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_AddContinuousProcess, - AddContinuousProcess, 1, 2) -// SetProcessOrdering -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_SetProcessOrdering, - SetProcessOrdering, 2, 3) - -// RemoveProcess... -G4VProcess*(G4ProcessManager::*f1_RemoveProcess)(G4VProcess*) - = &G4ProcessManager::RemoveProcess; - -G4VProcess*(G4ProcessManager::*f2_RemoveProcess)(G4int) - = &G4ProcessManager::RemoveProcess; - -// Set/GetProcessActivation... -G4VProcess*(G4ProcessManager::*f1_SetProcessActivation)(G4VProcess*, G4bool) - = &G4ProcessManager::SetProcessActivation; - -G4VProcess*(G4ProcessManager::*f2_SetProcessActivation)(G4int, G4bool) - = &G4ProcessManager::SetProcessActivation; - -G4bool(G4ProcessManager::*f1_GetProcessActivation)(G4VProcess*) const - = &G4ProcessManager::GetProcessActivation; - -G4bool(G4ProcessManager::*f2_GetProcessActivation)(G4int) const - = &G4ProcessManager::GetProcessActivation; - -} - -using namespace pyG4ProcessManager; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ProcessManager() -{ - class_ - ("G4ProcessManager", "process manager class", no_init) - // --- - .def("GetProcessList", f_GetProcessList) - .def("GetProcessListLength", &G4ProcessManager::GetProcessListLength) - .def("GetProcessIndex", &G4ProcessManager::GetProcessIndex) - .def("GetProcessVector", f_GetProcessVector, - g_GetProcessVector()) - .def("GetAtRestProcessVector", f_GetAtRestProcessVector, - g_GetAtRestProcessVector()) - .def("GetAlongStepProcessVector", f_GetAlongStepProcessVector, - g_GetAlongStepProcessVector()) - .def("GetPostStepProcessVector", f_GetPostStepProcessVector, - g_GetPostStepProcessVector()) - .def("GetProcessVectorIndex", - &G4ProcessManager::GetProcessVectorIndex, - f_GetProcessVectorIndex()) - .def("GetAtRestIndex", &G4ProcessManager::GetAtRestIndex, - f_GetAtRestIndex()) - .def("GetAlongStepIndex", &G4ProcessManager::GetAlongStepIndex, - f_GetAlongStepIndex()) - .def("GetPostStepIndex", &G4ProcessManager::GetPostStepIndex, - f_GetPostStepIndex()) - // ---- - .def("AddProcess", &G4ProcessManager::AddProcess, - f_AddProcess()) - .def("AddRestProcess", &G4ProcessManager::AddRestProcess, - f_AddRestProcess()) - .def("AddDiscreteProcess", &G4ProcessManager::AddDiscreteProcess, - f_AddDiscreteProcess()) - .def("AddContinuousProcess", &G4ProcessManager::AddContinuousProcess, - f_AddContinuousProcess()) - // --- - .def("GetProcessOrdering", &G4ProcessManager::GetProcessOrdering) - .def("SetProcessOrdering", &G4ProcessManager::SetProcessOrdering, - f_SetProcessOrdering()) - .def("SetProcessOrderingToFirst", - &G4ProcessManager::SetProcessOrderingToFirst) - .def("SetProcessOrderingToLast", - &G4ProcessManager::SetProcessOrderingToLast) - // --- - .def("RemoveProcess", f1_RemoveProcess, - return_value_policy()) - .def("RemoveProcess", f2_RemoveProcess, - return_value_policy()) - // --- - .def("SetProcessActivation", f1_SetProcessActivation, - return_value_policy()) - .def("SetProcessActivation", f2_SetProcessActivation, - return_value_policy()) - .def("GetProcessActivation", f1_GetProcessActivation) - .def("GetProcessActivation", f2_GetProcessActivation) - // --- - .def("GetParticleType", &G4ProcessManager::GetParticleType, - return_internal_reference<>()) - .def("SetParticleType", &G4ProcessManager::SetParticleType) - .def("DumpInfo", &G4ProcessManager::DumpInfo) - .def("SetVerboseLevel", &G4ProcessManager::SetVerboseLevel) - .def("GetVerboseLevel", &G4ProcessManager::GetVerboseLevel) - ; - - // enums... - enum_("G4ProcessVectorTypeIndex") - .value("typeGPIL", typeGPIL) - .value("typeGPIL", typeDoIt) - ; - - enum_("G4ProcessVectorDoItIndex") - .value("idxAll", idxAll) - .value("idxAtRest", idxAtRest) - .value("idxAlongStep", idxAlongStep) - .value("idxPostStep", idxPostStep) - ; - - enum_("G4ProcessVectorOrdering") - .value("ordInActive", ordInActive) - .value("ordDefault", ordDefault) - .value("ordLast", ordLast) - ; -} diff --git a/environments/g4py/source/processes/pyG4ProcessTable.cc b/environments/g4py/source/processes/pyG4ProcessTable.cc deleted file mode 100644 index c664ca32f9..0000000000 --- a/environments/g4py/source/processes/pyG4ProcessTable.cc +++ /dev/null @@ -1,185 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ProcessTable.cc -// -// 2005 Q -// ==================================================================== -#include -class G4UImessenger; -#include "G4ProcessTable.hh" - -using namespace boost::python; - - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4ProcessTable { - -// FindProcess -G4VProcess*(G4ProcessTable::*f1_FindProcess) - (const G4String&, const G4String&) const = &G4ProcessTable::FindProcess; - -G4VProcess*(G4ProcessTable::*f2_FindProcess) - (const G4String&, const G4ParticleDefinition*) const - = &G4ProcessTable::FindProcess; - -G4VProcess*(G4ProcessTable::*f3_FindProcess) - (const G4String&, const G4ProcessManager*) const - = &G4ProcessTable::FindProcess; - -// FindProcesses -// raw vector pointer -> Python list conversion -list f1_FindProcesses(G4ProcessTable* procTable) -{ - list procList; - G4ProcessVector* procVec= procTable-> FindProcesses(); - G4int nproc= procVec-> size(); - for(G4int i=0; i< nproc; i++) { - procList.append(&(*procVec)[i]); - } - return procList; -} - -list f2_FindProcesses(G4ProcessTable* procTable, - const G4ProcessManager* procManager) -{ - list procList; - G4ProcessVector* procVec= procTable-> FindProcesses(procManager); - G4int nproc= procVec-> size(); - for(G4int i=0; i< nproc; i++) { - procList.append(&(*procVec)[i]); - } - return procList; -} - -list f3_FindProcesses(G4ProcessTable* procTable, - const G4String& pname) -{ - list procList; - G4ProcessVector* procVec= procTable-> FindProcesses(pname); - G4int nproc= procVec-> size(); - for(G4int i=0; i< nproc; i++) { - procList.append(&(*procVec)[i]); - } - return procList; -} - -list f4_FindProcesses(G4ProcessTable* procTable, - G4ProcessType ptype) -{ - list procList; - G4ProcessVector* procVec= procTable-> FindProcesses(ptype); - G4int nproc= procVec-> size(); - for(G4int i=0; i< nproc; i++) { - procList.append(&(*procVec)[i]); - } - return procList; -} - -// SetProcessActivation -void(G4ProcessTable::*f1_SetProcessActivation) - (const G4String&, G4bool)= &G4ProcessTable::SetProcessActivation; - -void(G4ProcessTable::*f2_SetProcessActivation) - (const G4String&, const G4String&, G4bool) - = &G4ProcessTable::SetProcessActivation; - -void(G4ProcessTable::*f3_SetProcessActivation) - (const G4String&, const G4ParticleDefinition*, G4bool) - = &G4ProcessTable::SetProcessActivation; - -void(G4ProcessTable::*f4_SetProcessActivation) - (const G4String&, G4ProcessManager*, G4bool) - = &G4ProcessTable::SetProcessActivation; - -void(G4ProcessTable::*f5_SetProcessActivation) - (G4ProcessType, G4bool)= &G4ProcessTable::SetProcessActivation; - -void(G4ProcessTable::*f6_SetProcessActivation) - (G4ProcessType, const G4String&, G4bool) - = &G4ProcessTable::SetProcessActivation; - -void(G4ProcessTable::*f7_SetProcessActivation) - (G4ProcessType, const G4ParticleDefinition*, G4bool) - = &G4ProcessTable::SetProcessActivation; - -void(G4ProcessTable::*f8_SetProcessActivation) - (G4ProcessType, G4ProcessManager*, G4bool) - = &G4ProcessTable::SetProcessActivation; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_DumpInfo, DumpInfo, 1, 2) - -} - -using namespace pyG4ProcessTable; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ProcessTable() -{ - class_ - ("G4ProcessTable", "process table", no_init) - // --- - .def("GetProcessTable", &G4ProcessTable::GetProcessTable, - return_value_policy()) - .staticmethod("GetProcessTable") - .def("Length", &G4ProcessTable::Length) - //.def("Insert", &G4ProcessTable::Insert) // protected - //.def("Remove", &G4ProcessTable::Remove) // protected - // --- - .def("FindProcess", f1_FindProcess, - return_value_policy()) - .def("FindProcess", f2_FindProcess, - return_value_policy()) - .def("FindProcess", f3_FindProcess, - return_value_policy()) - .def("FindProcess", f3_FindProcess, - return_value_policy()) - // --- - .def("FindProcesses", f1_FindProcesses) - .def("FindProcesses", f2_FindProcesses) - .def("FindProcesses", f3_FindProcesses) - .def("FindProcesses", f4_FindProcesses) - // --- - .def("SetProcessActivation", f1_SetProcessActivation) - .def("SetProcessActivation", f2_SetProcessActivation) - .def("SetProcessActivation", f3_SetProcessActivation) - .def("SetProcessActivation", f4_SetProcessActivation) - .def("SetProcessActivation", f5_SetProcessActivation) - .def("SetProcessActivation", f6_SetProcessActivation) - .def("SetProcessActivation", f7_SetProcessActivation) - .def("SetProcessActivation", f8_SetProcessActivation) - // --- - .def("GetNameList", &G4ProcessTable::GetNameList, - return_internal_reference<>()) - .def("DumpInfo", &G4ProcessTable::DumpInfo, f_DumpInfo()) - .def("SetVerboseLevel", &G4ProcessTable::SetVerboseLevel) - .def("GetVerboseLevel", &G4ProcessTable::GetVerboseLevel) - ; -} diff --git a/environments/g4py/source/processes/pyG4ProcessType.cc b/environments/g4py/source/processes/pyG4ProcessType.cc deleted file mode 100644 index 446c943375..0000000000 --- a/environments/g4py/source/processes/pyG4ProcessType.cc +++ /dev/null @@ -1,54 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ProcessTyoe.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4ProcessType.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ProcessType() -{ - enum_("G4ProcessType") - .value("fNotDefined", fNotDefined) - .value("fTransportation", fTransportation) - .value("fElectromagnetic", fElectromagnetic) - .value("fOptical", fOptical) - .value("fHadronic", fHadronic) - .value("fPhotolepton_hadron", fPhotolepton_hadron) - .value("fDecay", fDecay) - .value("fGeneral", fGeneral) - .value("fParameterisation", fParameterisation) - .value("fUserDefined", fUserDefined) - ; -} - diff --git a/environments/g4py/source/processes/pyG4ProductionCutsTable.cc b/environments/g4py/source/processes/pyG4ProductionCutsTable.cc deleted file mode 100644 index b7770ef344..0000000000 --- a/environments/g4py/source/processes/pyG4ProductionCutsTable.cc +++ /dev/null @@ -1,67 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ProductionCutsTable.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4ProductionCutsTable.hh" -#include "G4Material.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ProductionCutsTable() -{ - class_ - ("G4ProductionCutsTable", "production cuts table", no_init) - .def("GetProductionCutsTable", - &G4ProductionCutsTable::GetProductionCutsTable, - return_value_policy()) - .staticmethod("GetProductionCutsTable") - - // internally used methods are limmitted to be exposed... - - // --- - .def("GetLowEdgeEnergy", &G4ProductionCutsTable::GetLowEdgeEnergy) - .def("GetHighEdgeEnergy", &G4ProductionCutsTable::GetHighEdgeEnergy) - .def("SetEnergyRange", &G4ProductionCutsTable::SetEnergyRange) - .def("DumpCouples", &G4ProductionCutsTable::DumpCouples) - .def("IsModified", &G4ProductionCutsTable::IsModified) - // --- -#if G4VERSION_NUMBER >= 830 - .def("ConvertRangeToEnergy", &G4ProductionCutsTable::ConvertRangeToEnergy) -#endif - // --- - .def("SetVerboseLevel", &G4ProductionCutsTable::SetVerboseLevel) - .def("GetVerboseLevel", &G4ProductionCutsTable::GetVerboseLevel) - ; -} - diff --git a/environments/g4py/source/processes/pyG4VCrossSectionHandler.cc b/environments/g4py/source/processes/pyG4VCrossSectionHandler.cc deleted file mode 100644 index 3d7994bc60..0000000000 --- a/environments/g4py/source/processes/pyG4VCrossSectionHandler.cc +++ /dev/null @@ -1,79 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VCrossSectionHandler.cc -// -// 2008 Q -// ==================================================================== -#include -#include "G4VCrossSectionHandler.hh" -#include "G4VDataSetAlgorithm.hh" -#include "G4Material.hh" -#include "G4Element.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4VCrossSectionHandler { - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_Initialise, Initialise, 0, 8) - -// FindValue -G4double (G4VCrossSectionHandler::*f1_FindValue)(G4int, G4double) const - = &G4VCrossSectionHandler::FindValue; - -G4double (G4VCrossSectionHandler::*f2_FindValue)(G4int, G4double, G4int) const - = &G4VCrossSectionHandler::FindValue; - -} - -using namespace pyG4VCrossSectionHandler; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VCrossSectionHandler() -{ - class_ - ("G4VCrossSectionHandler", "cross section handler", no_init) - // --- - .def("Initialise", &G4VCrossSectionHandler::Initialise, - f_Initialise()) - .def("SelectRandomElement", &G4VCrossSectionHandler::SelectRandomElement, - return_value_policy()) - .def("SelectRandomShell", &G4VCrossSectionHandler::SelectRandomShell) - .def("FindValue", f1_FindValue) - .def("FindValue", f2_FindValue) - .def("ValueForMaterial", &G4VCrossSectionHandler::ValueForMaterial) - .def("LoadData", &G4VCrossSectionHandler::LoadData) - .def("LoadShellData", &G4VCrossSectionHandler::LoadShellData) - .def("PrintData", &G4VCrossSectionHandler::PrintData) - .def("Clear", &G4VCrossSectionHandler::Clear) - ; -} - diff --git a/environments/g4py/source/processes/pyG4VProcess.cc b/environments/g4py/source/processes/pyG4VProcess.cc deleted file mode 100644 index 811fb697bf..0000000000 --- a/environments/g4py/source/processes/pyG4VProcess.cc +++ /dev/null @@ -1,73 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VProcess.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4VProcess.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4VProcess { - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetPhysicsTableFileName, - GetPhysicsTableFileName, 3, 4) -} - -using namespace pyG4VProcess; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VProcess() -{ - class_ - ("G4VProcess", "base class for process", no_init) - // --- - // Note that only limited methods are exposed. - .def("SetPILfactor", &G4VProcess::SetPILfactor) - .def("GetPILfactor", &G4VProcess::GetPILfactor) - .def("IsApplicable", &G4VProcess::IsApplicable) - .def("BuildPhysicsTable", &G4VProcess::BuildPhysicsTable) - .def("PreparePhysicsTable", &G4VProcess::PreparePhysicsTable) - .def("StorePhysicsTable", &G4VProcess::StorePhysicsTable) - .def("RetrievePhysicsTable", &G4VProcess::RetrievePhysicsTable) - .def("GetPhysicsTableFileName", &G4VProcess::GetPhysicsTableFileName, - f_GetPhysicsTableFileName() - [return_value_policy()]) - .def("GetProcessName", &G4VProcess::GetProcessName, - return_value_policy()) - .def("GetProcessType", &G4VProcess::GetProcessType) - .def("DumpInfo", &G4VProcess::DumpInfo) - .def("SetVerboseLevel", &G4VProcess::SetVerboseLevel) - .def("GetVerboseLevel", &G4VProcess::GetVerboseLevel) - ; -} diff --git a/environments/g4py/source/processes/pymodG4processes.cc b/environments/g4py/source/processes/pymodG4processes.cc deleted file mode 100644 index 53de695610..0000000000 --- a/environments/g4py/source/processes/pymodG4processes.cc +++ /dev/null @@ -1,59 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pymodG4processes.cc -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ProcessManager(); -void export_G4ProcessTable(); -void export_G4VProcess(); -void export_G4ProcVector(); -void export_G4ProcessType(); -void export_G4EmCalculator(); -void export_G4ProductionCutsTable(); -void export_G4VCrossSectionHandler(); -void export_G4CrossSectionHandler(); - -BOOST_PYTHON_MODULE(G4processes) -{ - export_G4ProcessManager(); - export_G4ProcessTable(); - export_G4VProcess(); - export_G4ProcVector(); - export_G4ProcessType(); - export_G4EmCalculator(); - export_G4ProductionCutsTable(); - export_G4VCrossSectionHandler(); - export_G4CrossSectionHandler(); -} diff --git a/environments/g4py/source/run/CMakeLists.txt b/environments/g4py/source/run/CMakeLists.txt deleted file mode 100644 index 77a12ebb9a..0000000000 --- a/environments/g4py/source/run/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ -# - build library - -# library -geant4_add_pymodule(pyG4run - pyG4Run.cc - pyG4RunManager.cc - pyG4RunManagerKernel.cc - pyG4UserRunAction.cc - pyG4VModularPhysicsList.cc - pyG4VPhysicsConstructor.cc - pyG4VUserDetectorConstruction.cc - pyG4VUserPhysicsList.cc - pyG4VUserPrimaryGeneratorAction.cc - pymodG4run.cc -) - -target_link_libraries(pyG4run PRIVATE G4run G4readout) -install(TARGETS pyG4run DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/run/pyG4Run.cc b/environments/g4py/source/run/pyG4Run.cc deleted file mode 100644 index ac7067f7f5..0000000000 --- a/environments/g4py/source/run/pyG4Run.cc +++ /dev/null @@ -1,63 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Run.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Run.hh" -#include "G4HCtable.hh" -#include "G4DCtable.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Run() -{ - class_("G4Run", "run class") - // --- - .def("GetRunID", &G4Run::GetRunID) - .def("SetRunID", &G4Run::SetRunID) - .def("GetNumberOfEvent", &G4Run::GetNumberOfEvent) - .def("GetNumberOfEventToBeProcessed", - &G4Run::GetNumberOfEventToBeProcessed) - .def("SetNumberOfEventToBeProcessed", - &G4Run::SetNumberOfEventToBeProcessed) - ; - - // reduced functionality... - //.def("RecordEvent", &G4Run::RecordEvent) // virtual - //.def("GetHCtable", &G4Run::GetHCtable, - //return_internal_reference<>()) - //.def("SetHCtable", &G4Run::SetHCtable) - //.def("GetDCtable", &G4Run::GetDCtable, - //return_internal_reference<>()) - //.def("SetDCtable", &G4Run::SetDCtable) - -} diff --git a/environments/g4py/source/run/pyG4RunManager.cc b/environments/g4py/source/run/pyG4RunManager.cc deleted file mode 100644 index f0fa0eee99..0000000000 --- a/environments/g4py/source/run/pyG4RunManager.cc +++ /dev/null @@ -1,189 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4RunManager.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Version.hh" -#include "G4RunManager.hh" -#include "G4VUserDetectorConstruction.hh" -#include "G4VUserPhysicsList.hh" -#include "G4UserRunAction.hh" -#include "G4VUserPrimaryGeneratorAction.hh" -#include "G4UserEventAction.hh" -#include "G4UserStackingAction.hh" -#include "G4UserTrackingAction.hh" -#include "G4UserSteppingAction.hh" -#include "G4Region.hh" -#include "G4Run.hh" -#include "G4Event.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4RunManager { - -// SetUserInitialization() -void (G4RunManager::*f1_SetUserInitialization)(G4VUserDetectorConstruction*) - = &G4RunManager::SetUserInitialization; -void (G4RunManager::*f2_SetUserInitialization)(G4VUserPhysicsList*) - = &G4RunManager::SetUserInitialization; - -// SetUserAction() -void (G4RunManager::*f1_SetUserAction)(G4UserRunAction*) - = &G4RunManager::SetUserAction; -void (G4RunManager::*f2_SetUserAction)(G4VUserPrimaryGeneratorAction*) - = &G4RunManager::SetUserAction; -void (G4RunManager::*f3_SetUserAction)(G4UserEventAction*) - = &G4RunManager::SetUserAction; -void (G4RunManager::*f4_SetUserAction)(G4UserStackingAction*) - = &G4RunManager::SetUserAction; -void (G4RunManager::*f5_SetUserAction)(G4UserTrackingAction*) - = &G4RunManager::SetUserAction; -void (G4RunManager::*f6_SetUserAction)(G4UserSteppingAction*) - = &G4RunManager::SetUserAction; - -// DumpRegion -void (G4RunManager::*f1_DumpRegion)(const G4String&) const - = &G4RunManager::DumpRegion; -void (G4RunManager::*f2_DumpRegion)(G4Region*) const - = &G4RunManager::DumpRegion; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_DumpRegion, DumpRegion, 0, 1) - -// BeamOn() -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_BeamOn, BeamOn, 1, 3) - -// AbortRun() -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_AbortRun, AbortRun, 0, 1) - -// DefineWorldVolume() -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_DefineWorldVolume, - DefineWorldVolume, 1, 2) - -// GeometryHasBeenModified() -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GeometryHasBeenModified, - GeometryHasBeenModified, 0, 1) - -} - -using namespace pyG4RunManager; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4RunManager() -{ - class_ - ("G4RunManager", "run manager class") - // --- - .def("GetRunManager", &G4RunManager::GetRunManager, - "Get an instance of G4RunManager", - return_value_policy()) - .staticmethod("GetRunManager") - // --- - .def("SetVerboseLevel", &G4RunManager::SetVerboseLevel) - .def("GetVerboseLevel", &G4RunManager::GetVerboseLevel) - // --- - .def("Initialize", &G4RunManager::Initialize) - .def("BeamOn", &G4RunManager::BeamOn, - f_BeamOn((arg("n_event"), arg("macroFile")=0, - arg("n_select")=-1), - "Starts event loop.")) - // --- - .def("SetUserInitialization", f1_SetUserInitialization) - .def("SetUserInitialization", f2_SetUserInitialization) - .def("SetUserAction", f1_SetUserAction) - .def("SetUserAction", f2_SetUserAction) - .def("SetUserAction", f3_SetUserAction) - .def("SetUserAction", f4_SetUserAction) - .def("SetUserAction", f5_SetUserAction) - .def("SetUserAction", f6_SetUserAction) - // --- - .def("GetUserDetectorConstruction", - &G4RunManager::GetUserDetectorConstruction, - return_internal_reference<>()) - .def("GetUserPhysicsList", - &G4RunManager::GetUserPhysicsList, - return_internal_reference<>()) - .def("GetUserPrimaryGeneratorAction", - &G4RunManager::GetUserPrimaryGeneratorAction, - return_internal_reference<>()) - .def("GetUserRunAction", &G4RunManager::GetUserRunAction, - return_internal_reference<>()) - .def("GetUserEventAction", &G4RunManager::GetUserEventAction, - return_internal_reference<>()) - .def("GetUserStackingAction", &G4RunManager::GetUserStackingAction, - return_internal_reference<>()) - .def("GetUserTrackingAction", &G4RunManager::GetUserTrackingAction, - return_internal_reference<>()) - .def("GetUserSteppingAction", &G4RunManager::GetUserSteppingAction, - return_internal_reference<>()) - // --- - .def("AbortRun", &G4RunManager::AbortRun, - f_AbortRun((arg("soft_abort")=false), - "Abort run (event loop).")) - .def("AbortEvent", &G4RunManager::AbortEvent) - .def("DefineWorldVolume", &G4RunManager::DefineWorldVolume, - f_DefineWorldVolume()) - .def("DumpRegion", f1_DumpRegion) - .def("DumpRegion", f2_DumpRegion, f_DumpRegion()) - .def("rndmSaveThisRun", &G4RunManager::rndmSaveThisRun) - .def("rndmSaveThisEvent", &G4RunManager::rndmSaveThisEvent) - .def("RestoreRandomNumberStatus", - &G4RunManager::RestoreRandomNumberStatus) - .def("SetRandomNumberStore", &G4RunManager::SetRandomNumberStore) - .def("GetRandomNumberStore", &G4RunManager::GetRandomNumberStore) - .def("SetRandomNumberStoreDir", &G4RunManager::SetRandomNumberStoreDir) - .def("GeometryHasBeenModified", &G4RunManager::GeometryHasBeenModified, - f_GeometryHasBeenModified()) - .def("PhysicsHasBeenModified", &G4RunManager::PhysicsHasBeenModified) - .def("GetGeometryToBeOptimized",&G4RunManager::GetGeometryToBeOptimized) - .def("GetCurrentRun", &G4RunManager::GetCurrentRun, - return_value_policy()) - .def("GetCurrentEvent", &G4RunManager::GetCurrentEvent, - return_value_policy()) - .def("SetRunIDCounter", &G4RunManager::SetRunIDCounter) - .def("GetVersionString", &G4RunManager::GetVersionString, - return_value_policy()) - .def("GetRandomNumberStoreDir", &G4RunManager::GetRandomNumberStoreDir, - return_internal_reference<>()) - ; - - // reduced functionality... - // void SetPrimaryTransformer(G4PrimaryTransformer* pt) - // void SetNumberOfAdditionalWaitingStacks(G4int iAdd) - // void CutOffHasBeenModified() - // void SetGeometryToBeOptimized(G4bool vl) - // const G4Event* GetPreviousEvent(G4int i) const - // void SetNumberOfEventsToBeStored(G4int val) - // void SetDCtable(G4DCtable* DCtbl) - -} diff --git a/environments/g4py/source/run/pyG4RunManagerKernel.cc b/environments/g4py/source/run/pyG4RunManagerKernel.cc deleted file mode 100644 index 61d04c8014..0000000000 --- a/environments/g4py/source/run/pyG4RunManagerKernel.cc +++ /dev/null @@ -1,87 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4RunManagerKernel.cc -// -// 2006 Q -// ==================================================================== -#include -#include "G4RunManagerKernel.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4RunManagerKernel { - -// RunInitialization() -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_RunInitialization, - RunInitialization, 0, 1) - -} - -using namespace pyG4RunManagerKernel; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4RunManagerKernel() -{ - class_("G4RunManagerKernel", "run manager kernel") - .def("GetRunManagerKernel", &G4RunManagerKernel::GetRunManagerKernel, - "Get an instance of G4RunManagerKernel", - return_value_policy()) - .staticmethod("GetRunManagerKernel") - // --- - //.def("DefineWorldVolume", &G4RunManagerKernel::DefineWorldVolume) - //.def("SetPhysics", &G4RunManagerKernel::SetPhysics) - //.def("InitializePhysics", &G4RunManagerKernel::InitializePhysics) - .def("RunInitialization", &G4RunManagerKernel::RunInitialization, - f_RunInitialization()) - //.def("RunTermination", &G4RunManagerKernel::RunTermination) - //.def("UpdateRegion", &G4RunManagerKernel::UpdateRegion) - //.def("DumpRegion", &G4RunManagerKernel::DumpRegion) - //.def("DumpRegion", &G4RunManagerKernel::DumpRegion) - //.def("GeometryHasBeenModified", - //&G4RunManagerKernel::GeometryHasBeenModified) - //.def("PhysicsHasBeenModified", - //&G4RunManagerKernel::PhysicsHasBeenModified) - //.def("GetEventManager", &G4RunManagerKernel::GetEventManager, - //...) - //.def("GetStackManager", &G4RunManagerKernel::GetStackManager, - //...) - //.def("GetTrackingManager", &G4RunManagerKernel::GetTrackingManager, - //...) - //.def("SetPrimaryTransformer", &G4RunManagerKernel::SetPrimaryTransformer) - //.def("GetPrimaryTransformer", &G4RunManagerKernel::GetPrimaryTransformer, - //...) - //.def("GetVersionString", &G4RunManagerKernel::GetVersionString) - //.def("SetVerboseLevel", &G4RunManagerKernel::SetVerboseLevel) - //.def("SetGeometryToBeOptimized", - //&G4RunManagerKernel::SetGeometryToBeOptimized) - ; -} diff --git a/environments/g4py/source/run/pyG4UserRunAction.cc b/environments/g4py/source/run/pyG4UserRunAction.cc deleted file mode 100644 index 9a62df4854..0000000000 --- a/environments/g4py/source/run/pyG4UserRunAction.cc +++ /dev/null @@ -1,77 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4UserRunAction.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4UserRunAction.hh" -#include "G4Run.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -struct CB_G4UserRunAction : G4UserRunAction, wrapper { - // BeginOfRunAction - void BeginOfRunAction(const G4Run* aRun) { - if(const override& f= get_override("BeginOfRunAction")) { - f(boost::ref(aRun)); - } else - G4UserRunAction::BeginOfRunAction(aRun); - } - - // EndOfRunAction - void EndOfRunAction(const G4Run* aRun) { - if(const override& f= get_override("EndOfRunAction")) { - f(boost::ref(aRun)); - } else { - G4UserRunAction::EndOfRunAction(aRun); - } - } -}; - - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4UserRunAction() -{ - class_ - ( "G4UserRunAction", "run action class") - // --- - .def("BeginOfRunAction", &G4UserRunAction::BeginOfRunAction, - &CB_G4UserRunAction::BeginOfRunAction) - .def("EndOfRunAction", &G4UserRunAction::EndOfRunAction, - &CB_G4UserRunAction::EndOfRunAction) - - // reduced functionality... - //.def("GenerateRun", &G4UserRunAction::GenerateRun) // virtual - ; -} - diff --git a/environments/g4py/source/run/pyG4VModularPhysicsList.cc b/environments/g4py/source/run/pyG4VModularPhysicsList.cc deleted file mode 100644 index cf54dfc21a..0000000000 --- a/environments/g4py/source/run/pyG4VModularPhysicsList.cc +++ /dev/null @@ -1,82 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VModularPhysicsList.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4VModularPhysicsList.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4VModularPhysicsList { - -struct CB_G4VModularPhysicsList : - G4VModularPhysicsList, wrapper { - - void SetCuts() { - get_override("SetCuts")(); - } - -}; - -// GetPhysics() -const G4VPhysicsConstructor* - (G4VModularPhysicsList::*f1_GetPhysics)(G4int) const - = &G4VModularPhysicsList::GetPhysics; -const G4VPhysicsConstructor* - (G4VModularPhysicsList::*f2_GetPhysics)(const G4String&) const - = &G4VModularPhysicsList::GetPhysics; - -} - -using namespace pyG4VModularPhysicsList; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VModularPhysicsList() -{ - class_, - boost::noncopyable> - ("G4VModularPhysicsList", "base class of modular physics list") - // --- - .def("SetCuts", pure_virtual(&G4VModularPhysicsList::SetCuts)) - .def("ConstructParticle", &G4VModularPhysicsList::ConstructParticle) - .def("ConstructProcess", &G4VModularPhysicsList::ConstructProcess) - // --- - .def("RegisterPhysics", &G4VModularPhysicsList::RegisterPhysics) - .def("GetPhysics", f1_GetPhysics, - return_value_policy()) - .def("GetPhysics", f2_GetPhysics, - return_value_policy()) - ; -} - diff --git a/environments/g4py/source/run/pyG4VPhysicsConstructor.cc b/environments/g4py/source/run/pyG4VPhysicsConstructor.cc deleted file mode 100644 index 3cf2b365b0..0000000000 --- a/environments/g4py/source/run/pyG4VPhysicsConstructor.cc +++ /dev/null @@ -1,92 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VPhysicsConstructor.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4VPhysicsConstructor.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4VPhysicsConstructor { - -class CB_G4VPhysicsConstructor : - public G4VPhysicsConstructor, - public wrapper { - -public: - CB_G4VPhysicsConstructor(): G4VPhysicsConstructor() { } - CB_G4VPhysicsConstructor(const G4String& name) - : G4VPhysicsConstructor(name) { } - - void ConstructParticle() { - get_override("ConstructParticle")(); - } - - void ConstructProcess() { - get_override("ConstructProcess")(); - } - -}; - -// SetPhysicsName() -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_SetPhysicsName, - SetPhysicsName, 0, 1) - -} - -using namespace pyG4VPhysicsConstructor; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VPhysicsConstructor() -{ - class_ - ("G4VPhysicsConstructor", - "base class of user physics constructor") - // ---- - .def(init()) - // --- - .def("ConstructParticle", - pure_virtual(&G4VPhysicsConstructor::ConstructParticle)) - .def("ConstructProcess", - pure_virtual(&G4VPhysicsConstructor::ConstructProcess)) - // --- - .def("SetPhysicsName", &G4VPhysicsConstructor::SetPhysicsName, - f_SetPhysicsName()) - .def("GetPhysicsName", &G4VPhysicsConstructor::GetPhysicsName, - return_value_policy()) - .def("SetVerboseLevel", &G4VPhysicsConstructor::SetVerboseLevel) - .def("GetVerboseLevel", &G4VPhysicsConstructor::GetVerboseLevel) - ; -} - diff --git a/environments/g4py/source/run/pyG4VUserDetectorConstruction.cc b/environments/g4py/source/run/pyG4VUserDetectorConstruction.cc deleted file mode 100644 index c5fb7cd518..0000000000 --- a/environments/g4py/source/run/pyG4VUserDetectorConstruction.cc +++ /dev/null @@ -1,69 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VUserDetectorConstruction.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4VUserDetectorConstruction.hh" -#include "G4VPhysicalVolume.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4VUserDetectorConstruction { - -struct CB_G4VUserDetectorConstruction : - G4VUserDetectorConstruction, wrapper { - - G4VPhysicalVolume* Construct() { - return get_override("Construct")(); - } -}; - -} - -using namespace pyG4VUserDetectorConstruction; - - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VUserDetectorConstruction() -{ - class_ - ("G4VUserDetectorConstruction", - "base class of user detector construction") - - .def("Construct", - pure_virtual(&G4VUserDetectorConstruction::Construct), - return_value_policy()) - ; -} diff --git a/environments/g4py/source/run/pyG4VUserPhysicsList.cc b/environments/g4py/source/run/pyG4VUserPhysicsList.cc deleted file mode 100644 index 34a32cd7b4..0000000000 --- a/environments/g4py/source/run/pyG4VUserPhysicsList.cc +++ /dev/null @@ -1,141 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VUserPhysicsList.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4VUserPhysicsList.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4VUserPhysicsList { - -struct CB_G4VUserPhysicsList : - G4VUserPhysicsList, wrapper { - - void ConstructParticle() { - get_override("ConstructParticle")(); - } - - void ConstructProcess() { - get_override("ConstructProcess")(); - } - - void SetCuts() { - get_override("SetCuts")(); - } -}; - -// SetCutValue -void (G4VUserPhysicsList::*f1_SetCutValue)(G4double, const G4String&) - = &G4VUserPhysicsList::SetCutValue; -void (G4VUserPhysicsList::*f2_SetCutValue)(G4double, const G4String&, - const G4String&) - = &G4VUserPhysicsList::SetCutValue; - -// SetParticleCuts -void (G4VUserPhysicsList::*f1_SetParticleCuts)(G4double, - G4ParticleDefinition*, - G4Region*) - = &G4VUserPhysicsList::SetParticleCuts; -void (G4VUserPhysicsList::*f2_SetParticleCuts)(G4double, - G4ParticleDefinition*, - G4Region*) - = &G4VUserPhysicsList::SetParticleCuts; - -// StorePhysicsTable -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_StorePhysicsTable, - StorePhysicsTable, 0, 1) -// SetParticleCuts -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_SetParticleCuts, - SetParticleCuts, 2, 3) - -} - -using namespace pyG4VUserPhysicsList; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VUserPhysicsList() -{ - class_ - ("G4VUserPhysicsList", "base class of user physics list") - // --- - .def("ConstructParticle", - pure_virtual(&G4VUserPhysicsList::ConstructParticle)) - .def("ConstructProcess", - pure_virtual(&G4VUserPhysicsList::ConstructProcess)) - .def("SetCuts", - pure_virtual(&G4VUserPhysicsList::SetCuts)) - // --- - .def("SetDefaultCutValue", &G4VUserPhysicsList::SetDefaultCutValue) - .def("GetDefaultCutValue", &G4VUserPhysicsList::GetDefaultCutValue) - // --- - .def("StorePhysicsTable", &G4VUserPhysicsList::StorePhysicsTable, - f_StorePhysicsTable()) - .def("IsPhysicsTableRetrieved", - &G4VUserPhysicsList::IsPhysicsTableRetrieved) - .def("IsStoredInAscii", &G4VUserPhysicsList::IsStoredInAscii) - .def("GetPhysicsTableDirectory", - &G4VUserPhysicsList::GetPhysicsTableDirectory, - return_value_policy()) - .def("SetStoredInAscii", &G4VUserPhysicsList::SetStoredInAscii) - .def("ResetStoredInAscii", &G4VUserPhysicsList::ResetStoredInAscii) - // --- - .def("DumpList", &G4VUserPhysicsList::DumpList) - - .def("DumpCutValuesTable", &G4VUserPhysicsList::DumpCutValuesTable) - .def("DumpCutValuesTableIfRequested", - &G4VUserPhysicsList::DumpCutValuesTableIfRequested) - .def("SetCutValue", f1_SetCutValue) - .def("SetCutValue", f2_SetCutValue) - .def("SetParticleCuts", f1_SetParticleCuts, f_SetParticleCuts()) - .def("SetParticleCuts", f2_SetParticleCuts, f_SetParticleCuts()) - // --- - .def("SetVerboseLevel", &G4VUserPhysicsList::SetVerboseLevel) - .def("GetVerboseLevel", &G4VUserPhysicsList::GetVerboseLevel) - .def("SetCutsWithDefault", &G4VUserPhysicsList::SetCutsWithDefault) - .def("SetCutsForRegion", &G4VUserPhysicsList::SetCutsForRegion) - .def("GetApplyCuts", &G4VUserPhysicsList::GetApplyCuts) - ; - - // Note that exposed items are limited, - // because this class object is mainly for internal uses or obsolete. - // Construct - // BuildPhysicsTable - // PreparePhysicsTable - // SetPhysicsTableRetrieved - // ReSetPhysicsTableRetrieved - // SetApplyCuts - // DumpCutValues (obsolete) - // ResetCuts; -} diff --git a/environments/g4py/source/run/pyG4VUserPrimaryGeneratorAction.cc b/environments/g4py/source/run/pyG4VUserPrimaryGeneratorAction.cc deleted file mode 100644 index 5b2554bf32..0000000000 --- a/environments/g4py/source/run/pyG4VUserPrimaryGeneratorAction.cc +++ /dev/null @@ -1,68 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VUserPrimaryGeneratorAction.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4VUserPrimaryGeneratorAction.hh" -#include "G4Event.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4VUserPrimaryGeneratorAction { - -struct CB_G4VUserPrimaryGeneratorAction : - G4VUserPrimaryGeneratorAction, wrapper { - - void GeneratePrimaries(G4Event* anEvent) { - get_override("GeneratePrimaries")(boost::ref(anEvent)); - } -}; - -} - -using namespace pyG4VUserPrimaryGeneratorAction; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VUserPrimaryGeneratorAction() -{ - class_ - ("G4VUserPrimaryGeneratorAction", - "base class of user primary generator action") - - .def("GeneratePrimaries", - pure_virtual(&G4VUserPrimaryGeneratorAction::GeneratePrimaries)) - ; -} - diff --git a/environments/g4py/source/run/pymodG4run.cc b/environments/g4py/source/run/pymodG4run.cc deleted file mode 100644 index 1356861856..0000000000 --- a/environments/g4py/source/run/pymodG4run.cc +++ /dev/null @@ -1,60 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pymodG4run.cc [Geant4Py module] -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== - -void export_G4RunManager(); -void export_G4RunManagerKernel(); -void export_G4Run(); -void export_G4UserRunAction(); -void export_G4VUserPrimaryGeneratorAction(); -void export_G4VUserDetectorConstruction(); -void export_G4VUserPhysicsList(); -void export_G4VModularPhysicsList(); -void export_G4VPhysicsConstructor(); - -BOOST_PYTHON_MODULE(G4run) -{ - export_G4RunManager(); - export_G4RunManagerKernel(); - export_G4Run(); - export_G4UserRunAction(); - export_G4VUserPrimaryGeneratorAction(); - export_G4VUserDetectorConstruction(); - export_G4VUserPhysicsList(); - export_G4VModularPhysicsList(); - export_G4VPhysicsConstructor(); -} diff --git a/environments/g4py/source/track/CMakeLists.txt b/environments/g4py/source/track/CMakeLists.txt deleted file mode 100644 index e040de777b..0000000000 --- a/environments/g4py/source/track/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -# - build library - -# library -geant4_add_pymodule(pyG4track - pyG4Step.cc - pyG4StepPoint.cc - pyG4StepStatus.cc - pyG4Track.cc - pyG4TrackStatus.cc - pymodG4track.cc -) - -target_link_libraries(pyG4track PRIVATE G4track G4processes) -install(TARGETS pyG4track DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/track/pyG4StepPoint.cc b/environments/g4py/source/track/pyG4StepPoint.cc deleted file mode 100644 index 4b32eb4248..0000000000 --- a/environments/g4py/source/track/pyG4StepPoint.cc +++ /dev/null @@ -1,71 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4StepPoint.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4VProcess.hh" -#include "G4StepPoint.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4StepPoint() -{ - class_("G4StepPoint", "step point class") - // --- - .def("GetPosition", &G4StepPoint::GetPosition, - return_value_policy()) - .def("GetLocalTime", &G4StepPoint::GetLocalTime) - .def("GetGlobalTime", &G4StepPoint::GetGlobalTime) - .def("GetProperTime", &G4StepPoint::GetProperTime) - .def("GetMomentumDirection", &G4StepPoint::GetMomentumDirection, - return_value_policy()) - .def("GetMomentum", &G4StepPoint::GetMomentum, - return_value_policy()) - .def("GetTotalEnergy", &G4StepPoint::GetTotalEnergy) - .def("GetKineticEnergy", &G4StepPoint::GetKineticEnergy) - .def("GetVelocity", &G4StepPoint::GetVelocity) - .def("GetBeta", &G4StepPoint::GetBeta) - .def("GetGamma", &G4StepPoint::GetGamma) - .def("GetTouchable", &G4StepPoint::GetTouchable, - return_value_policy()) - .def("GetMaterial", &G4StepPoint::GetMaterial, - return_value_policy()) - .def("GetPolarization", &G4StepPoint::GetPolarization, - return_value_policy()) - .def("GetStepStatus", &G4StepPoint::GetStepStatus) - .def("GetProcessDefinedStep", &G4StepPoint::GetProcessDefinedStep, - return_value_policy()) - .def("GetMass", &G4StepPoint::GetMass) - .def("GetCharge", &G4StepPoint::GetCharge) - .def("GetWeight", &G4StepPoint::GetWeight) - ; -} diff --git a/environments/g4py/source/track/pyG4StepStatus.cc b/environments/g4py/source/track/pyG4StepStatus.cc deleted file mode 100644 index e7e78d88e9..0000000000 --- a/environments/g4py/source/track/pyG4StepStatus.cc +++ /dev/null @@ -1,52 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4StepStatus.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4StepStatus.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4StepStatus() -{ - enum_("G4StepStatus") - .value("fWorldBoundary", fWorldBoundary) - .value("fGeomBoundary", fGeomBoundary) - .value("fAtRestDoItProc", fAtRestDoItProc) - .value("fAlongStepDoItProc", fAlongStepDoItProc) - .value("fPostStepDoItProc", fPostStepDoItProc) - .value("fUserDefinedLimit", fUserDefinedLimit) - .value("fExclusivelyForcedProc", fExclusivelyForcedProc) - .value("fUndefined", fUndefined) - ; -} - diff --git a/environments/g4py/source/track/pyG4Track.cc b/environments/g4py/source/track/pyG4Track.cc deleted file mode 100644 index cfb6df3c03..0000000000 --- a/environments/g4py/source/track/pyG4Track.cc +++ /dev/null @@ -1,88 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4Track.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4Track.hh" -#include "G4VProcess.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Track() -{ - class_("G4Track", "track class") - // --- - .def("GetTrackID", &G4Track::GetTrackID) - .def("GetParentID", &G4Track::GetParentID) - .def("GetDynamicParticle", &G4Track::GetDynamicParticle, - return_internal_reference<>()) - .def("GetDefinition", &G4Track::GetDefinition, - return_internal_reference<>()) - .def("GetPosition", &G4Track::GetPosition, - return_value_policy()) - .def("GetGlobalTime", &G4Track::GetGlobalTime) - .def("GetLocalTime", &G4Track::GetLocalTime) - .def("GetProperTime", &G4Track::GetProperTime) - .def("GetVolume", &G4Track::GetVolume, - return_value_policy()) - .def("GetMaterial", &G4Track::GetMaterial, - return_value_policy()) - .def("GetTouchable", &G4Track::GetTouchable, - return_value_policy()) - .def("GetKineticEnergy", &G4Track::GetKineticEnergy) - .def("GetTotalEnergy", &G4Track::GetTotalEnergy) - .def("GetMomentumDirection", &G4Track::GetMomentumDirection, - return_value_policy()) - .def("GetMomentum", &G4Track::GetMomentum, - return_value_policy()) - .def("GetVelocity", &G4Track::GetVelocity) - .def("GetPolarization", &G4Track::GetPolarization, - return_value_policy()) - .def("GetTrackStatus", &G4Track::GetTrackStatus) - .def("GetTrackLength", &G4Track::GetTrackLength) - .def("GetStep", &G4Track::GetStep, - return_value_policy()) - .def("GetCurrentStepNumber", &G4Track::GetCurrentStepNumber) - .def("GetStepLength", &G4Track::GetStepLength) - .def("GetVertexPosition", &G4Track::GetVertexPosition, - return_value_policy()) - .def("GetVertexMomentumDirection", &G4Track::GetVertexMomentumDirection, - return_value_policy()) - .def("GetVertexKineticEnergy", &G4Track::GetVertexKineticEnergy) - .def("GetLogicalVolumeAtVertex", &G4Track::GetLogicalVolumeAtVertex, - return_value_policy()) - .def("GetCreatorProcess", &G4Track::GetCreatorProcess, - return_value_policy()) - .def("GetWeight", &G4Track::GetWeight) - .def("SetWeight", &G4Track::SetWeight) - ; -} diff --git a/environments/g4py/source/track/pyG4TrackStatus.cc b/environments/g4py/source/track/pyG4TrackStatus.cc deleted file mode 100644 index 324e466bfa..0000000000 --- a/environments/g4py/source/track/pyG4TrackStatus.cc +++ /dev/null @@ -1,49 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4TrackStatus.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4TrackStatus.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4TrackStatus() -{ - enum_("G4TrackStatus") - .value("fAlive", fAlive) - .value("fStopButAlive", fStopButAlive) - .value("fStopAndKill", fStopAndKill) - .value("fKillTrackAndSecondaries", fKillTrackAndSecondaries) - .value("fSuspend", fSuspend) - .value("fPostponeToNextEvent", fPostponeToNextEvent) - ; -} diff --git a/environments/g4py/source/track/pymodG4track.cc b/environments/g4py/source/track/pymodG4track.cc deleted file mode 100644 index 6ff51c20e1..0000000000 --- a/environments/g4py/source/track/pymodG4track.cc +++ /dev/null @@ -1,52 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pymodG4track.cc [Geant4Py module] -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Track(); -void export_G4TrackStatus(); -void export_G4Step(); -void export_G4StepPoint(); -void export_G4StepStatus(); - -BOOST_PYTHON_MODULE(G4track) -{ - export_G4Track(); - export_G4TrackStatus(); - export_G4Step(); - export_G4StepPoint(); - export_G4StepStatus(); -} - diff --git a/environments/g4py/source/tracking/CMakeLists.txt b/environments/g4py/source/tracking/CMakeLists.txt deleted file mode 100644 index 44594c2c8e..0000000000 --- a/environments/g4py/source/tracking/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -# - build library - -# library -geant4_add_pymodule(pyG4tracking - pyG4TrackingManager.cc - pyG4UserSteppingAction.cc - pyG4UserTrackingAction.cc - pymodG4tracking.cc -) - -target_link_libraries(pyG4tracking PRIVATE G4tracking) -install(TARGETS pyG4tracking DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/tracking/pyG4TrackingManager.cc b/environments/g4py/source/tracking/pyG4TrackingManager.cc deleted file mode 100644 index 017991bc87..0000000000 --- a/environments/g4py/source/tracking/pyG4TrackingManager.cc +++ /dev/null @@ -1,54 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4TrackingManager.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4TrackingManager.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4TrackingManager() -{ - class_ - ("G4TrackingManager", "tracking manager class") - // --- - // Note that exposed items are limited, because this class object - // is mainly for internal uses. - .def("GetStoreTrajectory", &G4TrackingManager::GetStoreTrajectory) - .def("SetStoreTrajectory", &G4TrackingManager::SetStoreTrajectory) - .def("SetVerboseLevel", &G4TrackingManager::SetVerboseLevel) - .def("GetVerboseLevel", &G4TrackingManager::GetVerboseLevel) - .def("SetUserTrackInformation", - &G4TrackingManager::SetUserTrackInformation) - ; -} - diff --git a/environments/g4py/source/tracking/pyG4UserSteppingAction.cc b/environments/g4py/source/tracking/pyG4UserSteppingAction.cc deleted file mode 100644 index ad7e6fd4ba..0000000000 --- a/environments/g4py/source/tracking/pyG4UserSteppingAction.cc +++ /dev/null @@ -1,65 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4UserSteppingAction.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4UserSteppingAction.hh" -#include "G4Step.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -struct CB_G4UserSteppingAction : G4UserSteppingAction, - wrapper { - // UserSteppingAction - void UserSteppingAction(const G4Step* astep) { - if(const override& f= get_override("UserSteppingAction")) { - f(boost::ref(astep)); - } else { - G4UserSteppingAction::UserSteppingAction(astep); - } - } -}; - - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4UserSteppingAction() -{ - class_ - ("G4UserSteppingAction", "stepping action class") - - .def("UserSteppingAction", &G4UserSteppingAction::UserSteppingAction, - &CB_G4UserSteppingAction::UserSteppingAction) - ; -} - diff --git a/environments/g4py/source/tracking/pyG4UserTrackingAction.cc b/environments/g4py/source/tracking/pyG4UserTrackingAction.cc deleted file mode 100644 index 5128849341..0000000000 --- a/environments/g4py/source/tracking/pyG4UserTrackingAction.cc +++ /dev/null @@ -1,80 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4UserTrackingAction.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4UserTrackingAction.hh" -#include "G4Track.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -struct CB_G4UserTrackingAction : G4UserTrackingAction, - wrapper { - - // PreUserTrackingAction - void PreUserTrackingAction(const G4Track* atrack) { - if(const override& f= get_override("PreUserTrackingAction")) { - f(boost::ref(atrack)); - } else { - G4UserTrackingAction::PreUserTrackingAction(atrack); - } - } - - // PostUserTrackingAction - void PostUserTrackingAction(const G4Track* atrack) { - if(const override& f= get_override("PostUserTrackingAction")) { - f(boost::ref(atrack)); - } else { - G4UserTrackingAction::PostUserTrackingAction(atrack); - } - } - -}; - - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4UserTrackingAction() -{ - class_ - ("G4UserTrackingAction", "tracking action class") - // --- - .def("PreUserTrackingAction", - &G4UserTrackingAction::PreUserTrackingAction, - &CB_G4UserTrackingAction::PreUserTrackingAction) - .def("PostUserTrackingAction", - &G4UserTrackingAction::PostUserTrackingAction, - &CB_G4UserTrackingAction::PostUserTrackingAction) - ; -} - diff --git a/environments/g4py/source/tracking/pymodG4tracking.cc b/environments/g4py/source/tracking/pymodG4tracking.cc deleted file mode 100644 index ba15ecc497..0000000000 --- a/environments/g4py/source/tracking/pymodG4tracking.cc +++ /dev/null @@ -1,48 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pymodG4tracking.cc [Geant4Py module] -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4TrackingManager(); -void export_G4UserSteppingAction(); -void export_G4UserTrackingAction(); - -BOOST_PYTHON_MODULE(G4tracking) -{ - export_G4TrackingManager(); - export_G4UserSteppingAction(); - export_G4UserTrackingAction(); -} - diff --git a/environments/g4py/source/visualization/CMakeLists.txt b/environments/g4py/source/visualization/CMakeLists.txt deleted file mode 100644 index 72a7829081..0000000000 --- a/environments/g4py/source/visualization/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ -# - build library - -if(GEANT4_USE_OPENGL_X11) - add_definitions(-DG4VIS_USE_OPENGLX) -endif() - -if(GEANT4_USE_RAYTRACER_X11) - add_definitions(-DG4VIS_USE_RAYTRACERX) -endif() - -if(GEANT4_USE_XM) - add_definitions(-DG4VIS_USE_OPENGLXM) -endif() - -# library -geant4_add_pymodule(pyG4visualization - pyG4ASCIITree.cc - pyG4DAWNFILE.cc - pyG4HepRepFile.cc - pyG4OpenGLImmediateX.cc - pyG4OpenGLImmediateXm.cc - pyG4OpenGLStoredX.cc - pyG4OpenGLStoredXm.cc - pyG4RayTracer.cc - pyG4RayTracerX.cc - pyG4VGraphicsSystem.cc - pyG4VRML2File.cc - pyG4VisManager.cc - pymodG4visualization.cc -) - -target_link_libraries(pyG4visualization PRIVATE - G4FR - G4Tree - G4RayTracer - G4VRML - G4visHepRep - G4vis_management -) - -if(GEANT4_USE_OPENGL_X11 OR GEANT4_USE_XM) - target_link_libraries(pyG4visualization PRIVATE G4OpenGL) -endif() - -install(TARGETS pyG4visualization DESTINATION "${CMAKE_INSTALL_PYTHONDIR}/Geant4") diff --git a/environments/g4py/source/visualization/pyG4ASCIITree.cc b/environments/g4py/source/visualization/pyG4ASCIITree.cc deleted file mode 100644 index 52787990e0..0000000000 --- a/environments/g4py/source/visualization/pyG4ASCIITree.cc +++ /dev/null @@ -1,45 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4ASCIITree.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4ASCIITree.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ASCIITree() -{ - class_ > - ("G4ASCIITree", "ASCII tree visualization module") - ; -} - diff --git a/environments/g4py/source/visualization/pyG4DAWNFILE.cc b/environments/g4py/source/visualization/pyG4DAWNFILE.cc deleted file mode 100644 index c74fe28f7d..0000000000 --- a/environments/g4py/source/visualization/pyG4DAWNFILE.cc +++ /dev/null @@ -1,45 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4DAWNFILE.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4DAWNFILE.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4DAWNFILE() -{ - class_ > - ("G4DAWNFILE", "DAWN(file) visualization module") - ; -} - diff --git a/environments/g4py/source/visualization/pyG4HepRepFile.cc b/environments/g4py/source/visualization/pyG4HepRepFile.cc deleted file mode 100644 index 9ef49ba7ee..0000000000 --- a/environments/g4py/source/visualization/pyG4HepRepFile.cc +++ /dev/null @@ -1,45 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4HepRepFile.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4HepRepFile.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4HepRepFile() -{ - class_ > - ("G4HepRepFile", "HepRep(File) visualization module") - ; -} - diff --git a/environments/g4py/source/visualization/pyG4OpenGLImmediateX.cc b/environments/g4py/source/visualization/pyG4OpenGLImmediateX.cc deleted file mode 100644 index 4b01fe7854..0000000000 --- a/environments/g4py/source/visualization/pyG4OpenGLImmediateX.cc +++ /dev/null @@ -1,49 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4OpenGLImmediateX.cc -// -// 2005 Q -// ==================================================================== -#ifdef G4VIS_USE_OPENGLX - -#include -#include "G4OpenGLImmediateX.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4OpenGLImmediateX() -{ - class_ > - ("G4OpenGLImmediateX", "OpenGL(Immediate X) visualization module") - ; -} - -#endif - diff --git a/environments/g4py/source/visualization/pyG4OpenGLImmediateXm.cc b/environments/g4py/source/visualization/pyG4OpenGLImmediateXm.cc deleted file mode 100644 index 9457a616ee..0000000000 --- a/environments/g4py/source/visualization/pyG4OpenGLImmediateXm.cc +++ /dev/null @@ -1,49 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4OpenGLImmediateXm.cc -// -// 2005 Q -// ==================================================================== -#ifdef G4VIS_USE_OPENGLXM - -#include -#include "G4OpenGLImmediateXm.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4OpenGLImmediateXm() -{ - class_ > - ("G4OpenGLImmediateXm", "OpenGL(Immediate XM) visualization module") - ; -} - -#endif - diff --git a/environments/g4py/source/visualization/pyG4OpenGLStoredX.cc b/environments/g4py/source/visualization/pyG4OpenGLStoredX.cc deleted file mode 100644 index 31e7300ab8..0000000000 --- a/environments/g4py/source/visualization/pyG4OpenGLStoredX.cc +++ /dev/null @@ -1,48 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4OpenGLStoredX.cc -// -// 2005 Q -// ==================================================================== -#ifdef G4VIS_USE_OPENGLX - -#include -#include "G4OpenGLStoredX.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4OpenGLStoredX() -{ - class_ > - ("G4OpenGLStoredX", "OpenGL(Stored X) visualization module") - ; -} - -#endif diff --git a/environments/g4py/source/visualization/pyG4OpenGLStoredXm.cc b/environments/g4py/source/visualization/pyG4OpenGLStoredXm.cc deleted file mode 100644 index 28bb883675..0000000000 --- a/environments/g4py/source/visualization/pyG4OpenGLStoredXm.cc +++ /dev/null @@ -1,48 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4OpenGLStoredXm.cc -// -// 2005 Q -// ==================================================================== -#ifdef G4VIS_USE_OPENGLXM - -#include -#include "G4OpenGLStoredXm.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4OpenGLStoredXm() -{ - class_ > - ("G4OpenGLStoredXm", "OpenGL(Stored XM) visualization module") - ; -} - -#endif diff --git a/environments/g4py/source/visualization/pyG4RayTracer.cc b/environments/g4py/source/visualization/pyG4RayTracer.cc deleted file mode 100644 index cf9084f0b0..0000000000 --- a/environments/g4py/source/visualization/pyG4RayTracer.cc +++ /dev/null @@ -1,45 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4RayTracer.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4RayTracer.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4RayTracer() -{ - class_ > - ("G4RayTracer", "RayTracer visualization module") - ; -} - diff --git a/environments/g4py/source/visualization/pyG4RayTracerX.cc b/environments/g4py/source/visualization/pyG4RayTracerX.cc deleted file mode 100644 index 89521cead5..0000000000 --- a/environments/g4py/source/visualization/pyG4RayTracerX.cc +++ /dev/null @@ -1,48 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4RayTracerX.cc -// -// 2005 Q -// ==================================================================== -#ifdef G4VIS_USE_RAYTRACERX - -#include -#include "G4RayTracerX.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4RayTracerX() -{ - class_ > - ("G4RayTracerX", "RayTracerX visualization module") - ; -} - -#endif diff --git a/environments/g4py/source/visualization/pyG4VRML2File.cc b/environments/g4py/source/visualization/pyG4VRML2File.cc deleted file mode 100644 index 5098114c9f..0000000000 --- a/environments/g4py/source/visualization/pyG4VRML2File.cc +++ /dev/null @@ -1,45 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VRML2File.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4VRML2File.hh" - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VRML2File() -{ - class_ > - ("G4VRML2File", "VRML-2(file) visualization module") - ; -} - diff --git a/environments/g4py/source/visualization/pyG4VisManager.cc b/environments/g4py/source/visualization/pyG4VisManager.cc deleted file mode 100644 index c9695339f4..0000000000 --- a/environments/g4py/source/visualization/pyG4VisManager.cc +++ /dev/null @@ -1,107 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyG4VisManager.cc -// -// 2005 Q -// ==================================================================== -#include -#include "G4VisManager.hh" -#include "G4TrajectoryModelFactories.hh" - -using namespace boost::python; - -// ==================================================================== -// wrappers -// ==================================================================== -class PyG4VisManager : public G4VisManager { -public: - PyG4VisManager() { SetVerboseLevel(quiet); } - ~PyG4VisManager() { } - - static PyG4VisManager* _get_concrete_instance() { - return dynamic_cast(fpConcreteInstance); - } - - virtual void RegisterGraphicsSystems() { } - - virtual void RegisterModelFactories() { - RegisterModelFactory(new G4TrajectoryDrawByChargeFactory()); - RegisterModelFactory(new G4TrajectoryDrawByParticleIDFactory()); - } -}; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyG4VisManager { - -void (PyG4VisManager::*f1_SetVerboseLevel)(G4int) - = &PyG4VisManager::SetVerboseLevel; -void (PyG4VisManager::*f2_SetVerboseLevel)(const G4String&) - = &PyG4VisManager::SetVerboseLevel; -void (PyG4VisManager::*f3_SetVerboseLevel)(G4VisManager::Verbosity) - = &PyG4VisManager::SetVerboseLevel; - -} - -using namespace pyG4VisManager; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VisManager() -{ - scope in_PyG4VisManager = - class_ - ("G4VisManager", "visualization manager") - // --- - .def("GetConcreteInstance", &PyG4VisManager::_get_concrete_instance, - "Get an instance of G4VisManager", - return_value_policy()) - .staticmethod("GetConcreteInstance") - // --- - .def("SetVerboseLevel", f1_SetVerboseLevel) - .def("SetVerboseLevel", f2_SetVerboseLevel) - .def("SetVerboseLevel", f3_SetVerboseLevel) - .def("GetVerbosity", &PyG4VisManager::GetVerbosity) - .staticmethod("GetVerbosity") - .def("Initialize", &PyG4VisManager::Initialize) - .def("RegisterGraphicsSystem", &PyG4VisManager::RegisterGraphicsSystem) - ; - - // enum LineStyle - enum_("Verbosity") - .value("quiet", G4VisManager::quiet) - .value("startup", G4VisManager::startup) - .value("errors", G4VisManager::errors) - .value("warnings", G4VisManager::warnings) - .value("confirmations", G4VisManager::confirmations) - .value("parameters", G4VisManager::parameters) - .value("all", G4VisManager::all) - ; -} - diff --git a/environments/g4py/source/visualization/pymodG4visualization.cc b/environments/g4py/source/visualization/pymodG4visualization.cc deleted file mode 100644 index 867dd2479d..0000000000 --- a/environments/g4py/source/visualization/pymodG4visualization.cc +++ /dev/null @@ -1,86 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pymodG4visualization.cc [Geant4Py module] -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -// ==================================================================== -// module definition -// ==================================================================== - -void export_G4VisManager(); -void export_G4VGraphicsSystem(); -void export_G4VRML2File(); -void export_G4DAWNFILE(); -void export_G4HepRepFile(); -void export_G4ASCIITree(); -void export_G4RayTracer(); - -#ifdef G4VIS_USE_OPENGLX -void export_G4OpenGLStoredX(); -void export_G4OpenGLImmediateX(); -#endif - -#ifdef G4VIS_USE_OPENGLXM -void export_G4OpenGLStoredXm(); -void export_G4OpenGLImmediateXm(); -#endif - -#ifdef G4VIS_USE_RAYTRACERX -void export_G4RayTracerX(); -#endif - -BOOST_PYTHON_MODULE(G4visualization) -{ - export_G4VisManager(); - export_G4VGraphicsSystem(); - export_G4VRML2File(); - export_G4DAWNFILE(); - export_G4HepRepFile(); - export_G4ASCIITree(); - export_G4RayTracer(); - -#ifdef G4VIS_USE_OPENGLX - export_G4OpenGLStoredX(); - export_G4OpenGLImmediateX(); -#endif - -#ifdef G4VIS_USE_OPENGLXM - export_G4OpenGLStoredXm(); - export_G4OpenGLImmediateXm(); -#endif - -#ifdef G4VIS_USE_RAYTRACERX - export_G4RayTracerX(); -#endif - -} - diff --git a/environments/g4py/tests/CMakeLists.txt b/environments/g4py/tests/CMakeLists.txt deleted file mode 100644 index 172298ade7..0000000000 --- a/environments/g4py/tests/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -# - add tests components -add_subdirectory(g4pytest) -add_subdirectory(gtest01) -add_subdirectory(gtest02) -add_subdirectory(gtest03) -add_subdirectory(gtest04) -add_subdirectory(gtest05) -add_subdirectory(gtest06) -add_subdirectory(gtest07) -add_subdirectory(gtest08) diff --git a/environments/g4py/tests/History b/environments/g4py/tests/History deleted file mode 100644 index 639582f40b..0000000000 --- a/environments/g4py/tests/History +++ /dev/null @@ -1,56 +0,0 @@ -# Category g4py-tests History - -See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! - - -## 2021-12-10 Ben Morgan (g4py-tests-V11-00-00) -- Change to new Markdown History format - ---- - -# History entries prior to 11.0 - -Nov.30, 2008 K.Murakami -- gtest01-07: modified with g4py namespace - -Aug.07, 2007 K.Murakami -- gtest06 is added. -- gtest07 is added. - -Jul.10, 2007 K.Murakami -- gtest05 is added. - -Aug.07, 2006 K.Murakami -- gtest04 is added. - -Oct.05, 2005 K.Murakami -- test13 is added. - -Aug.31, 2005 K.Murakami -- gtest03 is added. - -Aug.28, 2005 K.Murakami -- gtest02 is added. - -Aug.24, 2005 K.Murakami -- test12 is added. - -Aug.09, 2005 K.Murakami -- test11 is added. - -Jun.22, 2005 K.Murakami -- gtest00 is removed - -Jun.15, 2005 K.Murakami -- test10 is added. - -Jun.14, 2005 K.Murakami -- test00- test09 are finished. -- gtest00 is closed. -- gtest01 is launched for Geant4Py basic tests - -May 18, 2005 K.Murakami -- just created. - diff --git a/environments/g4py/tests/README.md b/environments/g4py/tests/README.md deleted file mode 100644 index 56ce126653..0000000000 --- a/environments/g4py/tests/README.md +++ /dev/null @@ -1,45 +0,0 @@ -Test Modules -============ - -This module collects a set of tests for python wrapping of C++ elements. - ->**Notes:**
-"*testXX*" directories contain tests without Geant4 package.
-"*gtestXX*" directories contain tests with Geant4 package. - - -Basic tests ------------ - -| Test | Description | -|:------:|------------- -|test00 | hallo world -|test01 | simple class wrapping -|test02 | simple inheritance -|test03 | singleton w/o public constructor
can NOT be compiled. -|test04 | call policies -|test05 | function overloading & default arguments -|test06 | python inheritance from base class -|test07 | enums -|test08 | static member function -|test09 | operators -|test10 | call by-reference -|test11 | no_init -|test12 | indexing a STL vector -|test13 | test for a list argument/return - - -Function tests --------------- - -| Test | Description | -|:------:|------------- -|gtest01 | user application -|gtest02 | test for using site-module packages -|gtest03 | test for EZsim package -|gtest04 | test for getting command tree and command information -|gtest05 | test for constructing CSG geometries in Python -|gtest06 | test for constructing/visualizing boolean geoemtries -|gtest07 | test for checking overlapped geometries - - diff --git a/environments/g4py/tests/g4pytest/CMakeLists.txt b/environments/g4py/tests/g4pytest/CMakeLists.txt deleted file mode 100644 index 75306d0972..0000000000 --- a/environments/g4py/tests/g4pytest/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ -# - Function to build the C++ modules -function(g4pytest_add_module _TARGET) - g4py_add_module(${_TARGET} ${ARGN}) - - # Filthy temp hack for submodule paths.... - string(REGEX REPLACE "^_" "" _SUBMODULE "${_TARGET}") - set_property(TARGET ${_TARGET} APPEND_STRING PROPERTY LIBRARY_OUTPUT_DIRECTORY "/g4pytest/${_SUBMODULE}") - foreach(_conftype ${CMAKE_CONFIGURATION_TYPES}) - string(TOUPPER ${_conftype} _conftype_uppercase) - set_property(TARGET ${_TARGET} APPEND_STRING PROPERTY LIBRARY_OUTPUT_DIRECTORY_${_conftype_uppercase} "/g4pytest/${_SUBMODULE}") - endforeach() -endfunction() - - -# - add libs components -add_subdirectory(ExN01geom) -add_subdirectory(ExN03geom) -add_subdirectory(Qgeom) -add_subdirectory(ezgeom) -add_subdirectory(NISTmaterials) -add_subdirectory(Qmaterials) -add_subdirectory(EMSTDpl) -add_subdirectory(ExN01pl) -add_subdirectory(MedicalBeam) -add_subdirectory(ParticleGun) -# Remainder are pure python - -# Copy/configure pure python components -file(GLOB_RECURSE PY_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.py) -foreach(_pyfile ${PY_FILES}) - file(GENERATE - OUTPUT ${GEANT4_PYTHON_OUTPUT_DIR}/g4pytest/${_pyfile} - INPUT ${CMAKE_CURRENT_SOURCE_DIR}/${_pyfile} - ) -endforeach() diff --git a/environments/g4py/tests/g4pytest/EMSTDpl/CMakeLists.txt b/environments/g4py/tests/g4pytest/EMSTDpl/CMakeLists.txt deleted file mode 100644 index 82112c5a98..0000000000 --- a/environments/g4py/tests/g4pytest/EMSTDpl/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -# - build library -set(_TARGET _EMSTDpl) -g4pytest_add_module(${_TARGET} PhysicsListEMstd.cc pyEMSTDpl.cc) -target_link_libraries(${_TARGET} PRIVATE G4particles G4processes G4run) diff --git a/environments/g4py/tests/g4pytest/EMSTDpl/PhysicsListEMstd.cc b/environments/g4py/tests/g4pytest/EMSTDpl/PhysicsListEMstd.cc deleted file mode 100644 index 89d33286a9..0000000000 --- a/environments/g4py/tests/g4pytest/EMSTDpl/PhysicsListEMstd.cc +++ /dev/null @@ -1,133 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// PhysicsListEMstd.cc -// -// 2006 Q -// ==================================================================== -#include "PhysicsListEMstd.hh" -#include "G4SystemOfUnits.hh" - -#include "G4ProcessManager.hh" -#include "G4ParticleDefinition.hh" - -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" - -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" -#include "G4eMultipleScattering.hh" -#include "G4eIonisation.hh" -#include "G4eBremsstrahlung.hh" -#include "G4eplusAnnihilation.hh" - - -// ==================================================================== -// -// class description -// -// ==================================================================== - -//////////////////////////////////// -PhysicsListEMstd::PhysicsListEMstd() -//////////////////////////////////// -{ - SetVerboseLevel(1); - defaultCutValue = 1.*mm; // default cut value (1.0mm) -} - - -///////////////////////////////////// -PhysicsListEMstd::~PhysicsListEMstd() -///////////////////////////////////// -{ -} - - -////////////////////////////////////////// -void PhysicsListEMstd::ConstructParticle() -////////////////////////////////////////// -{ - G4Gamma::GammaDefinition(); - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); -} - - -///////////////////////////////////////// -void PhysicsListEMstd::ConstructProcess() -///////////////////////////////////////// -{ - AddTransportation(); - - G4ProcessManager* pm; - - // ---------------------------------------------------------- - // gamma physics - // ---------------------------------------------------------- - pm= G4Gamma::Gamma()-> GetProcessManager(); - pm-> AddDiscreteProcess(new G4PhotoElectricEffect); - pm-> AddDiscreteProcess(new G4ComptonScattering); - pm-> AddDiscreteProcess(new G4GammaConversion); - - // ---------------------------------------------------------- - // electron physics - // ---------------------------------------------------------- - G4eMultipleScattering* msc= new G4eMultipleScattering; - G4eIonisation* eion= new G4eIonisation; - G4eBremsstrahlung* ebrems= new G4eBremsstrahlung; - - pm= G4Electron::Electron()->GetProcessManager(); - pm-> AddProcess(msc, ordInActive, 1, 1); - pm-> AddProcess(eion, ordInActive, 2, 2); - pm-> AddProcess(ebrems, ordInActive, ordInActive, 3); - - // ---------------------------------------------------------- - // positron physics - // ---------------------------------------------------------- - msc= new G4eMultipleScattering; - eion= new G4eIonisation; - ebrems= new G4eBremsstrahlung; - G4eplusAnnihilation* annihilation= new G4eplusAnnihilation; - - pm= G4Positron::Positron()-> GetProcessManager(); - pm-> AddProcess(msc, ordInActive, 1, 1); - pm-> AddProcess(eion, ordInActive, 2, 2); - pm-> AddProcess(ebrems, ordInActive, ordInActive, 3); - pm-> AddProcess(annihilation, 0, ordInActive, 4); - -} - - -//////////////////////////////// -void PhysicsListEMstd::SetCuts() -//////////////////////////////// -{ - SetCutsWithDefault(); -} - diff --git a/environments/g4py/tests/g4pytest/EMSTDpl/PhysicsListEMstd.hh b/environments/g4py/tests/g4pytest/EMSTDpl/PhysicsListEMstd.hh deleted file mode 100644 index a53d62ce96..0000000000 --- a/environments/g4py/tests/g4pytest/EMSTDpl/PhysicsListEMstd.hh +++ /dev/null @@ -1,56 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// PhysicsListEMstd.hh -// -// Physics list for electron/positron/gamma -// EM-standard package -// -// 2006 Q -// ==================================================================== -#ifndef PHYSICS_LIST_EMSTD_H -#define PHYSICS_LIST_EMSTD_H - -#include "G4VUserPhysicsList.hh" - -// ==================================================================== -// -// class definition -// -// ==================================================================== - -class PhysicsListEMstd: public G4VUserPhysicsList { -public: - PhysicsListEMstd(); - ~PhysicsListEMstd(); - - virtual void ConstructParticle(); - virtual void ConstructProcess(); - virtual void SetCuts(); - -}; - -#endif diff --git a/environments/g4py/tests/g4pytest/EMSTDpl/__init__.py b/environments/g4py/tests/g4pytest/EMSTDpl/__init__.py deleted file mode 100644 index 30c93286ec..0000000000 --- a/environments/g4py/tests/g4pytest/EMSTDpl/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from ._EMSTDpl import * \ No newline at end of file diff --git a/environments/g4py/tests/g4pytest/ExN01geom/CMakeLists.txt b/environments/g4py/tests/g4pytest/ExN01geom/CMakeLists.txt deleted file mode 100644 index c92f18b2ee..0000000000 --- a/environments/g4py/tests/g4pytest/ExN01geom/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -# - build library -set(_TARGET _ExN01geom) -g4pytest_add_module(${_TARGET} ExN01DetectorConstruction.cc pyExN01geom.cc) -target_link_libraries(${_TARGET} PRIVATE G4materials G4geometry G4run) diff --git a/environments/g4py/tests/g4pytest/ExN01geom/ExN01DetectorConstruction.cc b/environments/g4py/tests/g4pytest/ExN01geom/ExN01DetectorConstruction.cc deleted file mode 100644 index f5fbce61a2..0000000000 --- a/environments/g4py/tests/g4pytest/ExN01geom/ExN01DetectorConstruction.cc +++ /dev/null @@ -1,155 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// ExN01DetectorConstruction.cc -// -// 2005 Q -// ==================================================================== -#include "ExN01DetectorConstruction.hh" - -#include "G4Material.hh" -#include "G4Box.hh" -#include "G4Tubs.hh" -#include "G4LogicalVolume.hh" -#include "G4ThreeVector.hh" -#include "G4PVPlacement.hh" -#include "G4SystemOfUnits.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== - -////////////////////////////////////////////////////// -ExN01DetectorConstruction::ExN01DetectorConstruction() - : experimentalHall_log(0), tracker_log(0), - calorimeterBlock_log(0), calorimeterLayer_log(0), - experimentalHall_phys(0), calorimeterLayer_phys(0), - calorimeterBlock_phys(0), tracker_phys(0) -////////////////////////////////////////////////////// -{ -} - -/////////////////////////////////////////////////////// -ExN01DetectorConstruction::~ExN01DetectorConstruction() -/////////////////////////////////////////////////////// -{ -} - -///////////////////////////////////////////////////////// -G4VPhysicalVolume* ExN01DetectorConstruction::Construct() -///////////////////////////////////////////////////////// -{ - //------------------------------------------------------ materials - G4double a; // atomic mass - G4double z; // atomic number - G4double density; - - G4Material* Ar = - new G4Material("ArgonGas", z= 18., a= 39.95*g/mole, density= 1.782*mg/cm3); - - G4Material* Al = - new G4Material("Aluminum", z= 13., a= 26.98*g/mole, density= 2.7*g/cm3); - - G4Material* Pb = - new G4Material("Lead", z= 82., a= 207.19*g/mole, density= 11.35*g/cm3); - - //------------------------------------------------------ volumes - - //------------------------------ experimental hall (world volume) - //------------------------------ beam line along x axis - - G4double expHall_x = 3.0*m; - G4double expHall_y = 1.0*m; - G4double expHall_z = 1.0*m; - G4Box* experimentalHall_box - = new G4Box("expHall_box",expHall_x,expHall_y,expHall_z); - experimentalHall_log = new G4LogicalVolume(experimentalHall_box, - Ar,"expHall_log",0,0,0); - experimentalHall_phys = new G4PVPlacement(0,G4ThreeVector(), - experimentalHall_log, - "expHall",0,false,0); - - //------------------------------ a tracker tube - - G4double innerRadiusOfTheTube = 0.*cm; - G4double outerRadiusOfTheTube = 60.*cm; - G4double hightOfTheTube = 50.*cm; - G4double startAngleOfTheTube = 0.*deg; - G4double spanningAngleOfTheTube = 360.*deg; - G4Tubs* tracker_tube = new G4Tubs("tracker_tube",innerRadiusOfTheTube, - outerRadiusOfTheTube,hightOfTheTube, - startAngleOfTheTube, - spanningAngleOfTheTube); - tracker_log = new G4LogicalVolume(tracker_tube,Al,"tracker_log",0,0,0); - G4double trackerPos_x = -1.0*m; - G4double trackerPos_y = 0.*m; - G4double trackerPos_z = 0.*m; - tracker_phys = new G4PVPlacement(0, - G4ThreeVector(trackerPos_x,trackerPos_y,trackerPos_z), - tracker_log,"tracker",experimentalHall_log,false,0); - - //------------------------------ a calorimeter block - - G4double block_x = 1.0*m; - G4double block_y = 50.0*cm; - G4double block_z = 50.0*cm; - G4Box* calorimeterBlock_box = new G4Box("calBlock_box",block_x, - block_y,block_z); - calorimeterBlock_log = new G4LogicalVolume(calorimeterBlock_box, - Pb,"caloBlock_log",0,0,0); - G4double blockPos_x = 1.0*m; - G4double blockPos_y = 0.0*m; - G4double blockPos_z = 0.0*m; - calorimeterBlock_phys = new G4PVPlacement(0, - G4ThreeVector(blockPos_x,blockPos_y,blockPos_z), - calorimeterBlock_log,"caloBlock",experimentalHall_log,false,0); - - //------------------------------ calorimeter layers - - G4double calo_x = 1.*cm; - G4double calo_y = 40.*cm; - G4double calo_z = 40.*cm; - G4Box* calorimeterLayer_box = new G4Box("caloLayer_box", - calo_x,calo_y,calo_z); - calorimeterLayer_log = new G4LogicalVolume(calorimeterLayer_box, - Al,"caloLayer_log",0,0,0); - for(G4int i=0;i<19;i++) // loop for 19 layers - { - G4double caloPos_x = (i-9)*10.*cm; - G4double caloPos_y = 0.0*m; - G4double caloPos_z = 0.0*m; - calorimeterLayer_phys = new G4PVPlacement(0, - G4ThreeVector(caloPos_x,caloPos_y,caloPos_z), - calorimeterLayer_log,"caloLayer",calorimeterBlock_log,false,i); - } - - //------------------------------------------------------------------ - - return experimentalHall_phys; -} - diff --git a/environments/g4py/tests/g4pytest/ExN01geom/__init__.py b/environments/g4py/tests/g4pytest/ExN01geom/__init__.py deleted file mode 100644 index b6ad7e2ac7..0000000000 --- a/environments/g4py/tests/g4pytest/ExN01geom/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from ._ExN01geom import * \ No newline at end of file diff --git a/environments/g4py/tests/g4pytest/ExN01pl/CMakeLists.txt b/environments/g4py/tests/g4pytest/ExN01pl/CMakeLists.txt deleted file mode 100644 index 7f519ce7b8..0000000000 --- a/environments/g4py/tests/g4pytest/ExN01pl/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -# - build library -set(_TARGET _ExN01pl) -g4pytest_add_module(${_TARGET} ExN01PhysicsList.cc pyExN01pl.cc) -target_link_libraries(${_TARGET} PRIVATE G4particles G4processes G4run) diff --git a/environments/g4py/tests/g4pytest/ExN01pl/ExN01PhysicsList.cc b/environments/g4py/tests/g4pytest/ExN01pl/ExN01PhysicsList.cc deleted file mode 100644 index f270c88385..0000000000 --- a/environments/g4py/tests/g4pytest/ExN01pl/ExN01PhysicsList.cc +++ /dev/null @@ -1,77 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// ExN01PhysicsList.cc -// -// 2005 Q -// ==================================================================== -#include "ExN01PhysicsList.hh" -#include "G4ParticleTypes.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== - -//////////////////////////////////// -ExN01PhysicsList::ExN01PhysicsList() -//////////////////////////////////// -{ -} - -///////////////////////////////////// -ExN01PhysicsList::~ExN01PhysicsList() -///////////////////////////////////// -{ -} - -////////////////////////////////////////// -void ExN01PhysicsList::ConstructParticle() -////////////////////////////////////////// -{ - G4Geantino::GeantinoDefinition(); -} - -///////////////////////////////////////// -void ExN01PhysicsList::ConstructProcess() -///////////////////////////////////////// -{ - AddTransportation(); -} - -//////////////////////////////// -void ExN01PhysicsList::SetCuts() -//////////////////////////////// -{ - G4int temp = GetVerboseLevel(); - SetVerboseLevel(0); - - SetCutsWithDefault(); - - SetVerboseLevel(temp); -} - diff --git a/environments/g4py/tests/g4pytest/ExN01pl/ExN01PhysicsList.hh b/environments/g4py/tests/g4pytest/ExN01pl/ExN01PhysicsList.hh deleted file mode 100644 index 69e9ca06d1..0000000000 --- a/environments/g4py/tests/g4pytest/ExN01pl/ExN01PhysicsList.hh +++ /dev/null @@ -1,56 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// ExN01PhysicsList.hh -// -// 2005 Q -// ==================================================================== -#ifndef EXN01_PHYSICS_LIST_H -#define EXN01_PHYSICS_LIST_H - -#include "G4VUserPhysicsList.hh" -#include "globals.hh" - -// ==================================================================== -// -// class definition -// -// ==================================================================== - -class ExN01PhysicsList: public G4VUserPhysicsList { -public: - ExN01PhysicsList(); - ~ExN01PhysicsList(); - -protected: - // Construct particle and physics process - void ConstructParticle(); - void ConstructProcess(); - void SetCuts(); - -}; - -#endif diff --git a/environments/g4py/tests/g4pytest/ExN01pl/__init__.py b/environments/g4py/tests/g4pytest/ExN01pl/__init__.py deleted file mode 100644 index a0371b4b0d..0000000000 --- a/environments/g4py/tests/g4pytest/ExN01pl/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from ._ExN01pl import * diff --git a/environments/g4py/tests/g4pytest/ExN03geom/CMakeLists.txt b/environments/g4py/tests/g4pytest/ExN03geom/CMakeLists.txt deleted file mode 100644 index 836ecd73d5..0000000000 --- a/environments/g4py/tests/g4pytest/ExN03geom/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -# - build library -set(_TARGET _ExN03geom) -g4pytest_add_module(${_TARGET} ExN03DetectorConstruction.cc ExN03DetectorMessenger.cc pyExN03geom.cc) -target_link_libraries(${_TARGET} PRIVATE G4materials G4geometry G4run) diff --git a/environments/g4py/tests/g4pytest/ExN03geom/ExN03DetectorConstruction.cc b/environments/g4py/tests/g4pytest/ExN03geom/ExN03DetectorConstruction.cc deleted file mode 100644 index b32ae99172..0000000000 --- a/environments/g4py/tests/g4pytest/ExN03geom/ExN03DetectorConstruction.cc +++ /dev/null @@ -1,473 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "ExN03DetectorConstruction.hh" -#include "ExN03DetectorMessenger.hh" - -#include "G4Material.hh" -#include "G4Box.hh" -#include "G4LogicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4PVReplica.hh" -#include "G4UniformMagField.hh" - -#include "G4GeometryManager.hh" -#include "G4PhysicalVolumeStore.hh" -#include "G4LogicalVolumeStore.hh" -#include "G4SolidStore.hh" - -#include "G4VisAttributes.hh" -#include "G4Colour.hh" -#include "G4SystemOfUnits.hh" -#include "G4PhysicalConstants.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ExN03DetectorConstruction::ExN03DetectorConstruction() -:AbsorberMaterial(0),GapMaterial(0),defaultMaterial(0), - solidWorld(0),logicWorld(0),physiWorld(0), - solidCalor(0),logicCalor(0),physiCalor(0), - solidLayer(0),logicLayer(0),physiLayer(0), - solidAbsorber(0),logicAbsorber(0),physiAbsorber(0), - solidGap (0),logicGap (0),physiGap (0), - magField(0) -{ - // default parameter values of the calorimeter - AbsorberThickness = 10.*mm; - GapThickness = 5.*mm; - NbOfLayers = 10; - CalorSizeYZ = 10.*cm; - ComputeCalorParameters(); - - // materials - DefineMaterials(); - SetAbsorberMaterial("Lead"); - SetGapMaterial("liquidArgon"); - - // create commands for interactive definition of the calorimeter - detectorMessenger = new ExN03DetectorMessenger(this); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ExN03DetectorConstruction::~ExN03DetectorConstruction() -{ delete detectorMessenger;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4VPhysicalVolume* ExN03DetectorConstruction::Construct() -{ - return ConstructCalorimeter(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03DetectorConstruction::DefineMaterials() -{ - //This function illustrates the possible ways to define materials - -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; - -// -// define Elements -// - -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("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("enriched Uranium",symbol="U",ncomponents=2); -U->AddIsotope(U5, abundance= 90.*perCent); -U->AddIsotope(U8, abundance= 10.*perCent); - -// -// define simple materials -// - -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 -// - -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); - -G4Material* Sci = -new G4Material("Scintillator", density= 1.032*g/cm3, ncomponents=2); -Sci->AddElement(C, natoms=9); -Sci->AddElement(H, natoms=10); - -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); - -G4Material* SiO2 = -new G4Material("quartz",density= 2.200*g/cm3, ncomponents=2); -SiO2->AddElement(Si, natoms=1); -SiO2->AddElement(O , natoms=2); - -// -// define a material from elements. case 2: mixture by fractional mass -// - -G4Material* Air = -new G4Material("Air" , density= 1.290*mg/cm3, ncomponents=2); -Air->AddElement(N, fractionmass=0.7); -Air->AddElement(O, fractionmass=0.3); - -// -// define a material from elements and/or others materials (mixture of mixtures) -// - -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); - -// -// examples of gas in non STP conditions -// - -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); - -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 -// - -G4Material* Vacuum = -new G4Material("Galactic", z=1., a=1.01*g/mole,density= universe_mean_density, - kStateGas, 2.73*kelvin, 3.e-18*pascal); - -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 World -defaultMaterial = Vacuum; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4VPhysicalVolume* ExN03DetectorConstruction::ConstructCalorimeter() -{ - - // Clean old geometry, if any - // - 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 - WorldSizeX/2,WorldSizeYZ/2,WorldSizeYZ/2); //its size - - logicWorld = new G4LogicalVolume(solidWorld, //its solid - defaultMaterial, //its material - "World"); //its name - - physiWorld = new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - logicWorld, //its logical volume - "World", //its name - 0, //its mother volume - false, //no boolean operation - 0); //copy number - - // - // Calorimeter - // - solidCalor=0; logicCalor=0; physiCalor=0; - solidLayer=0; logicLayer=0; physiLayer=0; - - if (CalorThickness > 0.) - { solidCalor = new G4Box("Calorimeter", //its name - CalorThickness/2,CalorSizeYZ/2,CalorSizeYZ/2);//size - - logicCalor = new G4LogicalVolume(solidCalor, //its solid - defaultMaterial, //its material - "Calorimeter"); //its name - - physiCalor = new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - logicCalor, //its logical volume - "Calorimeter", //its name - logicWorld, //its mother volume - false, //no boolean operation - 0); //copy number - - // - // Layer - // - solidLayer = new G4Box("Layer", //its name - LayerThickness/2,CalorSizeYZ/2,CalorSizeYZ/2); //size - - logicLayer = new G4LogicalVolume(solidLayer, //its solid - defaultMaterial, //its material - "Layer"); //its name - if (NbOfLayers > 1) - physiLayer = new G4PVReplica("Layer", //its name - logicLayer, //its logical volume - logicCalor, //its mother - kXAxis, //axis of replication - NbOfLayers, //number of replica - LayerThickness); //witdth of replica - else - physiLayer = new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - logicLayer, //its logical volume - "Layer", //its name - logicCalor, //its mother volume - false, //no boolean operation - 0); //copy number - } - - // - // Absorber - // - solidAbsorber=0; logicAbsorber=0; physiAbsorber=0; - - if (AbsorberThickness > 0.) - { solidAbsorber = new G4Box("Absorber", //its name - AbsorberThickness/2,CalorSizeYZ/2,CalorSizeYZ/2); - - logicAbsorber = new G4LogicalVolume(solidAbsorber, //its solid - AbsorberMaterial, //its material - AbsorberMaterial->GetName()); //name - - physiAbsorber = new G4PVPlacement(0, //no rotation - G4ThreeVector(-GapThickness/2,0.,0.), //its position - logicAbsorber, //its logical volume - AbsorberMaterial->GetName(), //its name - logicLayer, //its mother - false, //no boulean operat - 0); //copy number - - } - - // - // Gap - // - solidGap=0; logicGap=0; physiGap=0; - - if (GapThickness > 0.) - { solidGap = new G4Box("Gap", - GapThickness/2,CalorSizeYZ/2,CalorSizeYZ/2); - - logicGap = new G4LogicalVolume(solidGap, - GapMaterial, - GapMaterial->GetName()); - - physiGap = new G4PVPlacement(0, //no rotation - G4ThreeVector(AbsorberThickness/2,0.,0.), //its position - logicGap, //its logical volume - GapMaterial->GetName(), //its name - logicLayer, //its mother - false, //no boulean operat - 0); //copy number - } - - PrintCalorParameters(); - - // - // Visualization attributes - // - logicWorld->SetVisAttributes (G4VisAttributes::GetInvisible()); - - G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); - simpleBoxVisAtt->SetVisibility(true); - logicCalor->SetVisAttributes(simpleBoxVisAtt); - - /* - // Below are vis attributes that permits someone to test / play - // with the interactive expansion / contraction geometry system of the - // vis/OpenInventor driver : - {G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,0.0)); - simpleBoxVisAtt->SetVisibility(true); - delete logicCalor->GetVisAttributes(); - logicCalor->SetVisAttributes(simpleBoxVisAtt);} - - {G4VisAttributes* atb= new G4VisAttributes(G4Colour(1.0,0.0,0.0)); - logicLayer->SetVisAttributes(atb);} - - {G4VisAttributes* atb= new G4VisAttributes(G4Colour(0.0,1.0,0.0)); - atb->SetForceSolid(true); - logicAbsorber->SetVisAttributes(atb);} - - {//Set opacity = 0.2 then transparency = 1 - 0.2 = 0.8 - G4VisAttributes* atb= new G4VisAttributes(G4Colour(0.0,0.0,1.0,0.2)); - atb->SetForceSolid(true); - logicGap->SetVisAttributes(atb);} - */ - - // - //always return the physical World - // - return physiWorld; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03DetectorConstruction::PrintCalorParameters() -{ - G4cout << "\n------------------------------------------------------------" - << "\n---> The calorimeter is " << NbOfLayers << " layers of: [ " - << AbsorberThickness/mm << "mm of " << AbsorberMaterial->GetName() - << " + " - << GapThickness/mm << "mm of " << GapMaterial->GetName() << " ] " - << "\n------------------------------------------------------------\n"; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03DetectorConstruction::SetAbsorberMaterial(G4String materialChoice) -{ - // search the material by its name - G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); - if (pttoMaterial) AbsorberMaterial = pttoMaterial; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03DetectorConstruction::SetGapMaterial(G4String materialChoice) -{ - // search the material by its name - G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); - if (pttoMaterial) GapMaterial = pttoMaterial; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03DetectorConstruction::SetAbsorberThickness(G4double val) -{ - // change Absorber thickness and recompute the calorimeter parameters - AbsorberThickness = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03DetectorConstruction::SetGapThickness(G4double val) -{ - // change Gap thickness and recompute the calorimeter parameters - GapThickness = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03DetectorConstruction::SetCalorSizeYZ(G4double val) -{ - // change the transverse size and recompute the calorimeter parameters - CalorSizeYZ = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03DetectorConstruction::SetNbOfLayers(G4int val) -{ - NbOfLayers = 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 - G4FieldManager* fieldMgr - = G4TransportationManager::GetTransportationManager()->GetFieldManager(); - - if(magField) delete magField; //delete the existing magn field - - if(fieldValue!=0.) // create a new one if non nul - { magField = new G4UniformMagField(G4ThreeVector(0.,0.,fieldValue)); - fieldMgr->SetDetectorField(magField); - fieldMgr->CreateChordFinder(magField); - } else { - magField = 0; - fieldMgr->SetDetectorField(magField); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "G4RunManager.hh" - -void ExN03DetectorConstruction::UpdateGeometry() -{ - G4RunManager::GetRunManager()->DefineWorldVolume(ConstructCalorimeter()); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/environments/g4py/tests/g4pytest/ExN03geom/ExN03DetectorConstruction.hh b/environments/g4py/tests/g4pytest/ExN03geom/ExN03DetectorConstruction.hh deleted file mode 100644 index f72027d868..0000000000 --- a/environments/g4py/tests/g4pytest/ExN03geom/ExN03DetectorConstruction.hh +++ /dev/null @@ -1,157 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef ExN03DetectorConstruction_h -#define ExN03DetectorConstruction_h 1 - -#include "G4VUserDetectorConstruction.hh" -#include "globals.hh" - -class G4Box; -class G4LogicalVolume; -class G4VPhysicalVolume; -class G4Material; -class G4UniformMagField; -class ExN03DetectorMessenger; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class ExN03DetectorConstruction : public G4VUserDetectorConstruction -{ - public: - - ExN03DetectorConstruction(); - ~ExN03DetectorConstruction(); - - public: - - void SetAbsorberMaterial (G4String); - void SetAbsorberThickness(G4double); - - void SetGapMaterial (G4String); - void SetGapThickness(G4double); - - void SetCalorSizeYZ(G4double); - void SetNbOfLayers (G4int); - - void SetMagField(G4double); - - G4VPhysicalVolume* Construct(); - - void UpdateGeometry(); - - public: - - void PrintCalorParameters(); - - G4double GetWorldSizeX() {return WorldSizeX;}; - G4double GetWorldSizeYZ() {return WorldSizeYZ;}; - - G4double GetCalorThickness() {return CalorThickness;}; - G4double GetCalorSizeYZ() {return CalorSizeYZ;}; - - G4int GetNbOfLayers() {return NbOfLayers;}; - - G4Material* GetAbsorberMaterial() {return AbsorberMaterial;}; - G4double GetAbsorberThickness() {return AbsorberThickness;}; - - G4Material* GetGapMaterial() {return GapMaterial;}; - G4double GetGapThickness() {return GapThickness;}; - - const G4VPhysicalVolume* GetphysiWorld() {return physiWorld;}; - const G4VPhysicalVolume* GetAbsorber() {return physiAbsorber;}; - const G4VPhysicalVolume* GetGap() {return physiGap;}; - - private: - - G4Material* AbsorberMaterial; - G4double AbsorberThickness; - - G4Material* GapMaterial; - G4double GapThickness; - - G4int NbOfLayers; - G4double LayerThickness; - - G4double CalorSizeYZ; - G4double CalorThickness; - - G4Material* defaultMaterial; - 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* solidCalor; //pointer to the solid Calor - G4LogicalVolume* logicCalor; //pointer to the logical Calor - G4VPhysicalVolume* physiCalor; //pointer to the physical Calor - - G4Box* solidLayer; //pointer to the solid Layer - G4LogicalVolume* logicLayer; //pointer to the logical Layer - G4VPhysicalVolume* physiLayer; //pointer to the physical Layer - - G4Box* solidAbsorber; //pointer to the solid Absorber - G4LogicalVolume* logicAbsorber; //pointer to the logical Absorber - G4VPhysicalVolume* physiAbsorber; //pointer to the physical Absorber - - G4Box* solidGap; //pointer to the solid Gap - G4LogicalVolume* logicGap; //pointer to the logical Gap - G4VPhysicalVolume* physiGap; //pointer to the physical Gap - - G4UniformMagField* magField; //pointer to the magnetic field - - ExN03DetectorMessenger* detectorMessenger; //pointer to the Messenger - - private: - - void DefineMaterials(); - void ComputeCalorParameters(); - G4VPhysicalVolume* ConstructCalorimeter(); -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -inline void ExN03DetectorConstruction::ComputeCalorParameters() -{ - // Compute derived parameters of the calorimeter - LayerThickness = AbsorberThickness + GapThickness; - CalorThickness = NbOfLayers*LayerThickness; - - WorldSizeX = 1.2*CalorThickness; WorldSizeYZ = 1.2*CalorSizeYZ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - diff --git a/environments/g4py/tests/g4pytest/ExN03geom/ExN03DetectorMessenger.cc b/environments/g4py/tests/g4pytest/ExN03geom/ExN03DetectorMessenger.cc deleted file mode 100644 index 6759778215..0000000000 --- a/environments/g4py/tests/g4pytest/ExN03geom/ExN03DetectorMessenger.cc +++ /dev/null @@ -1,148 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "ExN03DetectorMessenger.hh" - -#include "ExN03DetectorConstruction.hh" -#include "G4UIdirectory.hh" -#include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithAnInteger.hh" -#include "G4UIcmdWithADoubleAndUnit.hh" -#include "G4UIcmdWithoutParameter.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ExN03DetectorMessenger::ExN03DetectorMessenger( - ExN03DetectorConstruction* ExN03Det) -:ExN03Detector(ExN03Det) -{ - N03Dir = new G4UIdirectory("/N03/"); - N03Dir->SetGuidance("UI commands of this example"); - - detDir = new G4UIdirectory("/N03/det/"); - detDir->SetGuidance("detector control"); - - AbsMaterCmd = new G4UIcmdWithAString("/N03/det/setAbsMat",this); - AbsMaterCmd->SetGuidance("Select Material of the Absorber."); - AbsMaterCmd->SetParameterName("choice",false); - 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_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_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_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_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_PreInit,G4State_Idle); - - UpdateCmd = new G4UIcmdWithoutParameter("/N03/det/update",this); - UpdateCmd->SetGuidance("Update calorimeter geometry."); - UpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" "); - UpdateCmd->SetGuidance("if you changed geometrical value(s)."); - UpdateCmd->AvailableForStates(G4State_Idle); - - MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/N03/det/setField",this); - MagFieldCmd->SetGuidance("Define magnetic field."); - MagFieldCmd->SetGuidance("Magnetic field will be in Z direction."); - MagFieldCmd->SetParameterName("Bz",false); - MagFieldCmd->SetUnitCategory("Magnetic flux density"); - MagFieldCmd->AvailableForStates(G4State_PreInit,G4State_Idle); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ExN03DetectorMessenger::~ExN03DetectorMessenger() -{ - delete NbLayersCmd; - delete AbsMaterCmd; delete GapMaterCmd; - delete AbsThickCmd; delete GapThickCmd; - delete SizeYZCmd; delete UpdateCmd; - delete MagFieldCmd; - delete detDir; - delete N03Dir; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - if( command == AbsMaterCmd ) - { ExN03Detector->SetAbsorberMaterial(newValue);} - - if( command == GapMaterCmd ) - { ExN03Detector->SetGapMaterial(newValue);} - - if( command == AbsThickCmd ) - { ExN03Detector->SetAbsorberThickness(AbsThickCmd - ->GetNewDoubleValue(newValue));} - - if( command == GapThickCmd ) - { ExN03Detector->SetGapThickness(GapThickCmd->GetNewDoubleValue(newValue));} - - if( command == SizeYZCmd ) - { ExN03Detector->SetCalorSizeYZ(SizeYZCmd->GetNewDoubleValue(newValue));} - - if( command == NbLayersCmd ) - { ExN03Detector->SetNbOfLayers(NbLayersCmd->GetNewIntValue(newValue));} - - if( command == UpdateCmd ) - { ExN03Detector->UpdateGeometry(); } - - if( command == MagFieldCmd ) - { ExN03Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/environments/g4py/tests/g4pytest/ExN03geom/__init__.py b/environments/g4py/tests/g4pytest/ExN03geom/__init__.py deleted file mode 100644 index ae5f5fd590..0000000000 --- a/environments/g4py/tests/g4pytest/ExN03geom/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from ._ExN03geom import * \ No newline at end of file diff --git a/environments/g4py/tests/g4pytest/ExN03geom/pyExN03geom.cc b/environments/g4py/tests/g4pytest/ExN03geom/pyExN03geom.cc deleted file mode 100644 index c2d10ffb5e..0000000000 --- a/environments/g4py/tests/g4pytest/ExN03geom/pyExN03geom.cc +++ /dev/null @@ -1,101 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyExN03geom.cc -// -// [ExN03geom] -// a site-module of Geant4Py -// -// geometry presented in ExN03 of Geant4 example -// -// 2005 Q -// ==================================================================== -#include -#include "G4RunManager.hh" -#include "ExN03DetectorConstruction.hh" - -using namespace boost::python; - -typedef ExN03DetectorConstruction XXX; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyExN03geom { - -void Construct() -{ - G4RunManager* runMgr= G4RunManager::GetRunManager(); - runMgr-> SetUserInitialization(new ExN03DetectorConstruction); -} - -} - -using namespace pyExN03geom; - -// ==================================================================== -// Expose to Python -// ==================================================================== - -BOOST_PYTHON_MODULE(_ExN03geom) { - class_ > - ("ExN03DetectorConstruction", "ExN03 detector") - // --- - .def("SetAbsorberMaterial", &XXX::SetAbsorberMaterial) - .def("SetAbsorberThickness", &XXX::SetAbsorberThickness) - .def("SetGapMaterial", &XXX::SetGapMaterial) - .def("SetGapThickness", &XXX::SetGapThickness) - .def("SetCalorSizeYZ", &XXX::SetCalorSizeYZ) - .def("SetNbOfLayers", &XXX::SetNbOfLayers) - .def("SetMagField", &XXX::SetMagField) - // --- - .def("GetWorldSizeX", &XXX::GetWorldSizeX) - .def("GetWorldSizeYZ", &XXX::GetWorldSizeYZ) - .def("GetCalorThickness", &XXX::GetCalorThickness) - .def("GetCalorSizeYZ", &XXX::GetCalorSizeYZ) - .def("GetNbOfLayers", &XXX::GetNbOfLayers) - .def("GetAbsorberMaterial", &XXX::GetAbsorberMaterial, - return_value_policy()) - .def("GetAbsorberThickness", &XXX::GetAbsorberThickness) - .def("GetGapMaterial", &XXX::GetGapMaterial, - return_value_policy()) - .def("GetGapThickness", &XXX::GetGapThickness) - .def("GetphysiWorld", &XXX::GetphysiWorld, - return_value_policy()) - .def("GetAbsorber", &XXX::GetAbsorber, - return_value_policy()) - .def("GetGap", &XXX::GetGap, - return_value_policy()) - // --- - .def("UpdateGeometry", &XXX::UpdateGeometry) - .def("PrintCalorParameters", &XXX::PrintCalorParameters) - ; - - // --- - def("Construct", Construct); -} - diff --git a/environments/g4py/tests/g4pytest/MCScore/mcscore.py b/environments/g4py/tests/g4pytest/MCScore/mcscore.py deleted file mode 100644 index eb9321cb64..0000000000 --- a/environments/g4py/tests/g4pytest/MCScore/mcscore.py +++ /dev/null @@ -1,136 +0,0 @@ -""" -Python module (Python3) - -This module provides classes and functions for scoring reactions - - [C] MCVertex: - [C] MCParticle: - [f] read_next_vertex(stream): - - Q, 2006 -""" -import string -from Geant4.hepunit import * - -# ================================================================== -# public symbols -# ================================================================== -__all__ = [ 'MCParticle', 'MCVertex', 'read_next_vertex' ] - - -# ================================================================== -# class definition -# ================================================================== - -# ------------------------------------------------------------------ -# MCParticle -# ------------------------------------------------------------------ -class MCParticle: - "MC particle" - def __init__(self, aname, aZ, aA, akE, apx, apy, apz): - self.name = aname - self.Z = aZ - self.A = aA - self.kineticE = akE - self.px = apx - self.py = apy - self.pz = apz - - def printout(self): - print("--- particle: %s, Z=%2d, A=%2d, kE=%g" % \ - (self.name, self.Z, self.A, self.kineticE/MeV)) - -# ------------------------------------------------------------------ -# MCVertex -# ------------------------------------------------------------------ -class MCVertex : - "MC vertex" - def __init__(self, ax, ay, az): - self.x = ax - self.y = ay - self.z = az - self.nparticle = 0 - self.particle_list = [] - - def append_particle(self, aparticle): - self.particle_list.append(aparticle) - self.nparticle= self.nparticle+1 - - def printout(self): - print("@@@ vertex: x=(%g,%g,%g) Nsec=%3d" % \ - (self.x/cm, self.y/cm, self.z/cm, self.nparticle)) - for p in self.particle_list: - p.printout() - - def dump_vertex(self, stream): - aline = "%g %g %g %d\n" % \ - (self.x/m, self.y/m, self.z/m, self.nparticle) - stream.write(aline) - for p in self.particle_list: - aline = " %s %d %d %g %g %g %g\n" % \ - (p.name, p.Z, p.A, p.kineticE/MeV, p.px/MeV, p.py/MeV, p.pz/MeV) - stream.write(aline) - - def __del__(self): - np = len(self.particle_list) - del self.particle_list[0:np] - - -# ================================================================== -# I/O interface -# ================================================================== -def read_next_vertex(stream): - "read next vertex from a file stream" - line= stream.readline() - if line == "": # EOF - return 0 - - # reading vertex - data = line.split() - x = string.atof(data[0]) * m - y = string.atof(data[1]) * m - z = string.atof(data[2]) * m - nsec = string.atoi(data[3]) - - vertex = MCVertex(x,y,z) - - # reading particles - for p in range(0, nsec): - data = stream.readline().split() - pname = data[0] - Z = string.atoi(data[1]) - A = string.atoi(data[2]) - kE = string.atof(data[3]) * MeV - px = string.atof(data[4]) * MeV - py = string.atof(data[5]) * MeV - pz = string.atof(data[6]) * MeV - - particle = MCParticle(pname, Z, A, kE, px, py, pz) - vertex.append_particle(particle) - - return vertex - - -# ================================================================== -# test -# ================================================================== -def test(): - f = open("reaction.dat") - f.seek(0) - - while(1): - vertex = read_next_vertex(f) - if vertex == 0: - break - vertex.printout() - del vertex - f.close() - print(">>> EOF") - - -# ================================================================== -# main -# ================================================================== -if __name__ == "__main__": - test() - diff --git a/environments/g4py/tests/g4pytest/MCScore/mcscorerootio.py b/environments/g4py/tests/g4pytest/MCScore/mcscorerootio.py deleted file mode 100644 index d3f1130356..0000000000 --- a/environments/g4py/tests/g4pytest/MCScore/mcscorerootio.py +++ /dev/null @@ -1,189 +0,0 @@ -""" -Python module - -This module provides ROOT IO interface for MCScore data - - [C] MCScoreROOTIO - [f] loop_tree(tfile, analyze_vertex): - - Q, 2006 -""" -from array import array -import string -from Geant4.hepunit import * -import mcscore -import ROOT - -# ================================================================== -# public symbols -# ================================================================== -__all__ = [ 'MCScoreROOTIO', 'loop_tree' ] - - -# ================================================================== -# class definition -# ================================================================== -# ------------------------------------------------------------------ -# MCScoreROOTIO -# ------------------------------------------------------------------ -class MCScoreROOTIO: - "ROOT IO interface for MCScore" - def __init__(self, bsize=250): - self.maxparticle = bsize # buffer size for #particles/vertex - - # ------------------------------------------------------------------ - def define_tree(self): - "define ROOT tree" - # defining tree header... - self.vtree = ROOT.TTree('vertex', 'mc vertex') - self.ptree = ROOT.TTree('particle', 'mc particle') - - # vertex... - self.a_x = array('d', [0.]); self.vtree.Branch('x', self.a_x, 'x/d') - self.a_y = array('d', [0.]); self.vtree.Branch('y', self.a_y, 'y/d') - self.a_z = array('d', [0.]); self.vtree.Branch('z', self.a_z, 'z/d') - - #global a_np, a_namelist, a_Z, a_A, a_ke, a_px, a_py, a_pz - self.a_np = array('i', [0]); self.ptree.Branch('np', self.a_np, 'np/i') - - self.a_namelist = array('c', self.maxparticle*10*['\0']) - # 10 characters/particle - self.ptree.Branch('namelist', self.a_namelist, 'namelist/C') - - self.a_Z = array('i', self.maxparticle*[0]) - self.ptree.Branch('Z', self.a_Z, 'Z[np]/I') - - self.a_A = array('i', self.maxparticle*[0]) - self.ptree.Branch('A', self.a_A, 'A[np]/i') - - self.a_ke = array('d', self.maxparticle*[0.]) - self.ptree.Branch('kE', self.a_ke, 'kE[np]/d') - - self.a_px = array('d', self.maxparticle*[0.]) - self.ptree.Branch('px', self.a_px, 'px[np]/d') - - self.a_py = array('d', self.maxparticle*[0.]) - self.ptree.Branch('py', self.a_py, 'py[np]/d') - - self.a_pz = array('d', self.maxparticle*[0.]) - self.ptree.Branch('pz', self.a_pz, 'pz[np]/d') - - # ------------------------------------------------------------------ - def fill_tree(self, vertex): - "fill vertex information to ROOT tree" - # ------------------------------------------------------------------ - def push_pname(i0, pname): # local function - n = len(pname) - for i in xrange(n): - self.a_namelist[i0+i] = pname[i] - self.a_namelist[i0+n] = ' ' - - self.a_x[0] = vertex.x - self.a_y[0] = vertex.y - self.a_z[0] = vertex.z - self.vtree.Fill() - - if vertex.nparticle > self.maxparticle: - raise """ - *** buffer overflow in #particles/vertex. - *** please increment buffersize in MCScoreROOTIO(bsize). - """, self.maxparticle - - idx_namelist = 0 - self.a_np[0] = vertex.nparticle - for ip in range(vertex.nparticle): - particle = vertex.particle_list[ip] - push_pname(idx_namelist, particle.name) - idx_namelist += (len(particle.name)+1) - self.a_Z[ip] = particle.Z - self.a_A[ip] = particle.A - self.a_ke[ip] = particle.kineticE - self.a_px[ip] = particle.px - self.a_py[ip] = particle.py - self.a_pz[ip] = particle.pz - - self.a_namelist[idx_namelist] = '\0' - self.ptree.Fill() - - -# ================================================================== -# functions -# ================================================================== -def loop_tree(tfile, analyze_vertex): - """ - loop ROOT tree in a ROOT file. - * analyze_vertex: user function : analyze_vertex(MCVertex) - """ - avtree = tfile.Get("vertex") - aptree = tfile.Get("particle") - - # reading vertex... - n_vertex = avtree.GetEntries() - for ivtx in xrange(n_vertex): - avtree.GetEntry(ivtx) - aptree.GetEntry(ivtx) - - # vertex - vertex = MCScore.MCVertex(avtree.x, avtree.y, avtree.z) - - # reading secondary particles... - nsec = aptree.np - namelist = aptree.namelist - pname = namelist.split() - for ip in xrange(nsec): - particle = MCScore.MCParticle(pname[ip], aptree.Z[ip], aptree.A[ip], - aptree.kE[ip], aptree.px[ip], - aptree.py[ip], aptree.pz[ip]) - vertex.append_particle(particle) - - analyze_vertex(vertex) - - return n_vertex - - -# ================================================================== -# test -# ================================================================== -def test_t2root(): - g = ROOT.TFile("reaction.root", 'recreate') - - rootio = MCScoreROOTIO() - rootio.define_tree() - - f = open("reaction.dat") - f.seek(0) - - while(1): - vertex = MCScore.read_next_vertex(f) - if vertex == 0: - break - - # filling ... - rootio.fill_tree(vertex) - - del vertex - - print ">>> EOF" - f.close() - - # closing ROOT file - g.Write() - g.Close() - -# ------------------------------------------------------------------ -def test_loop(): - def my_analysis(vertex): - vertex.printout() - - f = ROOT.TFile("reaction.root", 'read') - nv = loop_tree(f, my_analysis) - print "*** # of vertex= ", nv - - -# ================================================================== -# main -# ================================================================== -if __name__ == "__main__": - test_t2root() - test_loop() - diff --git a/environments/g4py/tests/g4pytest/MCScore/reaction.dat b/environments/g4py/tests/g4pytest/MCScore/reaction.dat deleted file mode 100644 index edc6e64f25..0000000000 --- a/environments/g4py/tests/g4pytest/MCScore/reaction.dat +++ /dev/null @@ -1,1842 +0,0 @@ -0 0 -0.0305023 38 - proton 1 1 1000 0 0 1696.04 - proton 1 1 129.268 63.2281 -276.735 -422.739 - proton 1 1 111.814 34.3858 -242.184 403.102 - proton 1 1 82.1695 -236.712 94.2294 309.895 - neutron 0 1 74.3269 110.42 -247.06 268.26 - proton 1 1 44.7926 -124.531 251.567 85.2512 - neutron 0 1 44.511 -167.561 97.6229 -219.126 - proton 1 1 21.6735 -109.453 -139.936 -97.8724 - neutron 0 1 20.6685 124.985 -151.837 -24.2931 - neutron 0 1 19.8292 180.072 41.4736 -59.2368 - neutron 0 1 17.1647 144.898 77.0015 74.9989 - proton 1 1 14.2603 86.8485 138.55 14.9869 - neutron 0 1 8.81332 -66.3887 39.6594 103.241 - neutron 0 1 8.72505 -120.6 -36.3695 24.586 - neutron 0 1 5.00497 5.93651 16.3492 -95.538 - pi0 0 0 4.70288 -5.35245 -35.4667 2.26739 - neutron 0 1 4.62225 49.0102 -63.7755 47.3061 - neutron 0 1 4.48452 -4.04534 56.6136 -72.2886 - neutron 0 1 4.4182 -8.41472 51.6727 74.7063 - neutron 0 1 4.33618 -29.8664 -13.4453 -84.2275 - neutron 0 1 4.26413 70.3882 -46.7754 29.8092 - neutron 0 1 3.93701 27.6721 76.9943 -26.8286 - neutron 0 1 2.90508 -32.7165 4.86698 66.1318 - neutron 0 1 2.7312 -27.372 -57.9427 32.1429 - neutron 0 1 1.93394 21.5104 56.0088 -6.17988 - neutron 0 1 1.14687 -7.1144 -43.8711 13.4591 - gamma 0 0 0.917356 0.279188 -0.173667 0.856409 - neutron 0 1 0.833069 -32.0686 -18.5144 -13.9629 - gamma 0 0 0.643895 -0.382244 0.169259 0.489736 - neutron 0 1 0.562189 11.9617 -20.913 21.8244 - neutron 0 1 0.48924 7.09163 1.57869 -29.4415 - neutron 0 1 0.300866 15.105 6.83708 -17.0455 - neutron 0 1 0.182086 11.2883 -13.1121 -6.54553 - neutron 0 1 0.176325 5.08395 15.104 8.79729 - gamma 0 0 0.157846 0.150406 0.0125644 -0.0462096 - alpha 2 4 3.8739 -114.48 112.613 55.7415 - alpha 2 4 2.39579 40.929 73.5402 103.84 - Yb160[0.0] 70 160 4.43207 75.8139 195.65 1129.72 -0 0 -0.0414305 27 - proton 1 1 1000 0 0 1696.04 - proton 1 1 430.313 460.692 127.735 874.137 - proton 1 1 222.668 -51.8758 -28.1707 681.134 - proton 1 1 96.9347 370.567 -210.029 -99.3302 - neutron 0 1 28.701 -189.926 7.78062 136.472 - proton 1 1 27.176 -181.127 -106.335 87.3004 - proton 1 1 11.5799 -64.529 132.284 -14.1802 - neutron 0 1 11.2564 50.4159 -33.6421 132.685 - neutron 0 1 10.3315 3.34717 139.549 5.99554 - neutron 0 1 6.91773 -5.99949 2.85351 -114.031 - neutron 0 1 3.31254 73.404 -26.0186 13.0595 - gamma 0 0 2.45819 0.13254 -2.02832 1.3824 - gamma 0 0 1.72781 -0.317077 1.03555 1.34626 - neutron 0 1 1.67011 -39.988 21.2127 -33.0475 - neutron 0 1 1.66598 40.8877 13.3526 35.8228 - gamma 0 0 1.49572 -0.70336 -0.474581 1.23176 - gamma 0 0 1.2594 -1.17736 0.313256 0.319032 - neutron 0 1 1.12877 -41.43 19.7894 3.78324 - neutron 0 1 0.825729 14.8311 -9.15606 -35.3347 - neutron 0 1 0.800743 -22.8961 18.2172 -25.4803 - neutron 0 1 0.795167 -30.7879 -20.4541 -11.3397 - gamma 0 0 0.62935 -0.107782 0.619122 -0.033952 - neutron 0 1 0.539156 20.9258 -3.69161 23.7048 - neutron 0 1 0.487198 -26.3143 7.93839 -12.6605 - neutron 0 1 0.344635 -13.1302 -8.77096 -19.96 - neutron 0 1 0.0888052 12.6351 2.12594 -1.64934 - Re178[0.0] 75 178 0.449053 -377.531 -46.0358 64.7126 -0 0 0.0137304 29 - proton 1 1 1000 0 0 1696.04 - pi0 0 0 375.32 16.1036 94.8819 482.619 - proton 1 1 237.972 299.56 272.31 582.5 - proton 1 1 27.2745 -206.634 -43.5755 85.6114 - proton 1 1 15.4573 21.7815 -111.35 -127.953 - neutron 0 1 10.7386 49.8314 1.65693 133.449 - proton 1 1 7.99409 -41.4639 -107.006 43.5384 - neutron 0 1 7.33562 -46.6519 -106.987 -14.6882 - neutron 0 1 5.37089 20.6709 0.372525 -98.4583 - neutron 0 1 5.24916 91.9101 28.0406 25.6452 - neutron 0 1 4.29006 -89.1402 -11.5712 0.347478 - neutron 0 1 4.20598 49.9591 17.5451 71.537 - neutron 0 1 4.10522 74.2517 39.7345 25.2775 - neutron 0 1 2.97932 -47.9919 40.1956 41.0915 - neutron 0 1 2.58721 -12.0844 66.3424 -17.9179 - neutron 0 1 2.4495 13.944 -34.9591 56.5009 - gamma 0 0 2.21931 -1.3602 -0.114166 -1.7499 - neutron 0 1 2.00405 -28.3684 53.9038 7.71419 - neutron 0 1 1.83414 39.9355 -33.4969 27.0754 - neutron 0 1 1.68767 29.4276 -10.1823 -46.9525 - gamma 0 0 1.66925 0.865172 1.27067 0.650592 - gamma 0 0 1.21644 0.985299 -0.121476 -0.702957 - neutron 0 1 1.14211 -38.6415 7.7864 24.3656 - gamma 0 0 0.80498 -0.352971 -0.694617 0.202266 - neutron 0 1 0.648926 15.3145 -23.766 -20.5056 - gamma 0 0 0.185356 0.170901 0.0612552 -0.0373822 - gamma 0 0 0.111191 0.0991238 -0.00678745 -0.0499174 - neutron 0 1 0.080779 9.87314 -1.11166 7.28603 - Os178[0.0] 76 178 0.713393 -221.995 -139.16 409.641 -0.00135391 -0.00702061 0.0354987 40 - proton 1 1 999.963 31.6597 -164.169 1687.73 - neutron 0 1 128.463 -326.916 -105.999 373.888 - neutron 0 1 78.283 98.6729 -378.353 18.5776 - neutron 0 1 62.8393 -339.742 -15.262 -79.8399 - neutron 0 1 48.5852 297.396 -4.14148 72.088 - pi0 0 0 46.1365 -79.9301 -23.0658 -87.5352 - proton 1 1 36.6064 -26.147 79.5878 251.029 - proton 1 1 28.0541 -122.356 -13.514 195.648 - neutron 0 1 27.9402 -229.321 -1.54266 -26.3318 - neutron 0 1 18.1933 26.3762 58.2524 -174.441 - neutron 0 1 17.5209 -178.907 25.7852 -23.6327 - neutron 0 1 15.8987 172.951 -14.5004 -2.47505 - proton 1 1 13.8158 107.516 79.6217 90.651 - proton 1 1 11.0929 134.547 -51.8965 -11.9696 - neutron 0 1 8.87635 -29.8733 76.7107 99.9083 - neutron 0 1 6.8636 -33.7157 -61.1989 89.7923 - neutron 0 1 6.52619 -70.7113 53.0923 66.9871 - neutron 0 1 6.30204 -15.2451 -45.3499 -97.9442 - neutron 0 1 5.47428 -65.487 -75.3991 -18.5277 - neutron 0 1 5.06741 8.46403 59.0701 77.3764 - neutron 0 1 4.38308 -48.7097 -55.8302 52.5922 - neutron 0 1 3.30057 39.8806 64.5173 -21.4509 - neutron 0 1 2.89532 0.187221 70.9393 -20.4117 - neutron 0 1 2.87371 -68.9515 16.6387 19.4209 - neutron 0 1 2.33978 -38.8737 -0.641931 -53.7648 - neutron 0 1 2.25958 -45.5363 44.1507 15.1103 - proton 1 1 2.15462 41.007 -33.7247 35.0564 - neutron 0 1 1.71017 8.57055 -26.6898 49.3027 - gamma 0 0 1.47882 -0.935624 -0.8663 0.749033 - neutron 0 1 1.35078 27.2873 -9.59266 41.2735 - gamma 0 0 1.30673 1.30569 0.041371 -0.0314311 - neutron 0 1 1.1184 42.8773 7.62906 -14.3601 - gamma 0 0 0.835305 0.308833 0.417564 0.654215 - neutron 0 1 0.65755 -30.6393 14.6345 9.11689 - neutron 0 1 0.467727 -6.32551 -7.57318 -27.9602 - gamma 0 0 0.379497 -0.315466 0.167079 -0.12878 - neutron 0 1 0.191734 8.99574 14.0381 -9.07407 - deuteron 1 2 0.507704 -23.2628 -28.2547 -23.7756 - alpha 2 4 16.7499 -11.4916 46.4755 -350.508 - Hf161[0.0] 72 161 6.78888 808.714 77.4594 1172.68 --0.00163755 -0.000756256 0.0334764 33 - proton 1 1 999.997 -34.1538 -19.0016 1695.58 - pi+ 1 0 486.487 -259.173 273.918 479.861 - neutron 0 1 72.0535 249.897 -82.284 267.152 - proton 1 1 16.0872 -56.2283 98.1551 132.857 - neutron 0 1 15.2527 135.61 -102.345 -5.46558 - neutron 0 1 10.5771 137.254 30.3542 -15.0849 - neutron 0 1 9.13129 1.06112 -84.1648 100.784 - neutron 0 1 7.37985 -85.1761 69.5671 -42.7507 - neutron 0 1 6.90285 9.7081 0.305195 -113.687 - neutron 0 1 6.30553 -27.6887 95.097 45.5913 - neutron 0 1 6.15617 -20.3296 -18.8435 104.105 - neutron 0 1 5.94086 -18.5245 -25.1564 101.109 - neutron 0 1 5.67959 8.89711 -100.769 21.7112 - neutron 0 1 5.66523 -25.9014 18.5439 98.3008 - neutron 0 1 5.60256 46.2258 -9.90915 -91.2377 - neutron 0 1 5.04722 -10.4482 -64.8291 -72.0964 - neutron 0 1 4.46668 65.1524 45.4704 45.8369 - neutron 0 1 4.14363 -56.5061 -67.1912 9.79842 - neutron 0 1 3.77434 51.2354 -49.6569 -44.8982 - neutron 0 1 3.38761 -21.2226 68.0027 -36.0897 - neutron 0 1 2.47239 40.9204 -52.2691 15.6696 - gamma 0 0 2.11587 -0.74022 0.349491 1.95111 - neutron 0 1 1.97753 31.8607 36.0281 -37.5076 - gamma 0 0 1.25071 0.608326 0.497684 0.972896 - gamma 0 0 0.831477 0.436272 -0.094289 0.70152 - gamma 0 0 0.756609 -0.50435 0.50359 0.253941 - gamma 0 0 0.420739 -0.412424 0.0741764 -0.0377647 - gamma 0 0 0.37844 -0.192928 -0.307849 0.105944 - neutron 0 1 0.327118 11.2105 -8.49943 20.4179 - gamma 0 0 0.239672 0.14148 0.107635 0.16075 - neutron 0 1 0.10021 3.41853 2.85435 12.9802 - alpha 2 4 2.1136 -29.6467 38.1687 -115.867 - Os172[0.0] 76 172 2.2462 -215.099 -130.679 809.988 -0 0 -0.0203515 32 - proton 1 1 1000 0 0 1696.04 - proton 1 1 268.845 449.941 -465.101 397.505 - proton 1 1 95.5122 -414.665 -121.41 40.8388 - neutron 0 1 81.122 -107.543 -217.131 316.715 - proton 1 1 71.6025 166.49 -38.048 332.153 - proton 1 1 64.3589 -107.31 216.925 257.57 - proton 1 1 60.4916 223.35 61.2405 252.069 - neutron 0 1 45.3978 -140.421 109.132 -236.097 - neutron 0 1 25.3327 45.7169 -214.611 -9.8537 - proton 1 1 22.4741 2.24056 -194.684 69.0802 - neutron 0 1 10.3341 33.5682 -124.812 53.1137 - neutron 0 1 8.65003 85.2646 -95.0151 5.60621 - neutron 0 1 8.31007 -12.7549 -36.5648 119.101 - neutron 0 1 8.07827 -106.441 0.620053 62.5723 - neutron 0 1 6.56177 -96.8161 -54.239 -7.63306 - neutron 0 1 6.10938 4.35927 91.5879 55.7702 - neutron 0 1 4.94328 66.868 9.27546 68.9647 - neutron 0 1 4.21448 -31.1466 -76.4044 33.6093 - neutron 0 1 3.54667 -35.621 64.1783 -35.91 - gamma 0 0 3.14129 -2.2987 0.576096 -2.062 - neutron 0 1 2.22437 6.49008 -63.0128 13.1183 - neutron 0 1 1.86527 -3.03393 58.0744 -11.2572 - neutron 0 1 0.799211 -11.0824 36.8501 4.65939 - neutron 0 1 0.767088 19.8639 -28.3916 -15.5366 - gamma 0 0 0.756483 -0.322803 -0.669528 -0.140698 - neutron 0 1 0.674893 -32.5124 -0.661824 14.5317 - neutron 0 1 0.51384 -15.3158 3.25853 26.8448 - neutron 0 1 0.458241 -19.6158 -16.5522 14.232 - neutron 0 1 0.222935 12.3447 13.733 -8.83102 - neutron 0 1 0.16529 -13.8712 -8.62285 -6.62313 - gamma 0 0 0.111394 0.0579524 0.0882334 -0.0355656 - W171[0.0] 74 171 3.77446 34.2175 1090.4 -108.037 -0 0 0.0121258 40 - proton 1 1 1000 0 0 1696.04 - proton 1 1 247.878 -345.406 356.486 529.349 - neutron 0 1 82.0244 72.8112 -222.938 325.361 - proton 1 1 78.9377 133.896 -39.2953 -367.272 - neutron 0 1 70.3247 -302.676 111.57 181.754 - proton 1 1 54.332 -311.883 -72.5492 48.7229 - neutron 0 1 40.2193 -194.501 -192.378 -48.531 - neutron 0 1 23.4728 206.703 34.142 -27.7056 - neutron 0 1 22.6246 -45.4347 150.357 135.48 - neutron 0 1 18.3625 34.2388 166.628 -76.847 - neutron 0 1 18.305 108.134 -121.708 -90.7018 - proton 1 1 16.1053 112.977 102.117 85.3824 - proton 1 1 13.7549 -21.376 -34.7101 156.01 - neutron 0 1 12.7379 -63.0411 92.4069 107.635 - neutron 0 1 10.8797 59.7578 -104.964 77.293 - neutron 0 1 9.05671 -89.85 -1.21229 95.0067 - neutron 0 1 6.22837 82.7297 26.0846 64.9469 - neutron 0 1 5.59348 64.2011 62.4248 50.2348 - neutron 0 1 5.45178 65.8184 33.5883 69.3837 - neutron 0 1 4.79177 -54.6573 60.2782 -49.0556 - neutron 0 1 4.51501 -49.1752 65.407 42.5253 - neutron 0 1 4.38322 37.8995 5.29383 82.4104 - neutron 0 1 3.62314 12.7078 80.7525 -11.7907 - proton 1 1 3.32888 -31.2236 -8.79364 -72.1501 - neutron 0 1 2.66629 33.5545 -50.5271 36.5859 - neutron 0 1 2.43237 -53.0857 -19.5891 37.0788 - gamma 0 0 2.10076 1.75116 -0.490854 -1.05152 - gamma 0 0 1.6264 -0.710273 -0.227909 -1.44525 - gamma 0 0 1.56994 0.512778 -0.810091 -1.24319 - gamma 0 0 1.33113 -0.316479 -1.28587 -0.135248 - neutron 0 1 0.968281 18.2085 -36.2716 -13.164 - neutron 0 1 0.79996 26.9992 -14.117 23.9922 - neutron 0 1 0.594598 -3.67941 29.3798 15.5232 - gamma 0 0 0.444307 0.351399 -0.0834007 -0.258789 - gamma 0 0 0.39268 0.25319 -0.299968 0.0105509 - neutron 0 1 0.0488556 2.95668 -7.93859 4.47721 - alpha 2 4 0.589452 -7.65497 -53.6039 -38.2444 - deuteron 1 2 1.97403 6.21242 77.0241 -37.9161 - deuteron 1 2 0.0734221 -15.1024 -6.49413 -2.27441 - Yb161[0.0] 70 161 2.02352 507.099 -463.654 366.66 -0 0 0.0326312 6 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 614.196 -667.103 88.8057 1038.5 - proton 1 1 369.711 676.64 -187.141 581.035 - gamma 0 0 0.99598 0.226343 0.564437 0.788769 - neutron 0 1 0.208848 -7.62567 -6.55389 17.0702 - Au195[0.0] 79 195 0.0394541 -2.13538 104.324 58.6443 -0 0 -0.0496447 23 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 501.696 -633.095 52.7984 889.3 - neutron 0 1 131.814 137.561 409.46 280.161 - neutron 0 1 98.3359 -17.7252 -415.387 -146.954 - proton 1 1 48.8339 242.233 -117.686 146.618 - neutron 0 1 37.3357 214.734 11.0134 159.124 - neutron 0 1 6.67105 70.8053 -85.4504 -16.2821 - neutron 0 1 5.23053 18.9688 8.76373 -97.0546 - neutron 0 1 4.11501 -49.6551 -72.6474 -2.51009 - neutron 0 1 3.11687 17.5502 -19.4726 -71.969 - neutron 0 1 2.59323 -61.1317 33.8013 0.352055 - proton 1 1 2.31383 34.2741 -25.6483 50.1478 - neutron 0 1 1.76351 52.4441 15.6818 -17.9071 - neutron 0 1 1.35406 43.6426 18.0308 -17.7906 - neutron 0 1 1.15083 -1.34473 24.3595 39.6066 - neutron 0 1 0.782915 -23.7162 -13.0148 27.2024 - neutron 0 1 0.767871 31.6893 11.422 17.5739 - neutron 0 1 0.72959 -36.9167 -2.02643 -2.14002 - gamma 0 0 0.681846 -0.339163 -0.481692 -0.343302 - gamma 0 0 0.572155 0.248476 0.231396 0.460518 - neutron 0 1 0.457795 -8.40569 -3.32 -27.9068 - deuteron 1 2 6.47685 -62.4645 -101.112 101.058 - Ir178[0.0] 77 178 0.671751 30.6426 270.686 385.292 -0 0 -0.0443798 20 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 380.748 -384.838 -442.484 718.716 - neutron 0 1 175.673 475.417 -97.1996 354.266 - proton 1 1 139.475 -164.127 76.7665 498.351 - neutron 0 1 28.9198 -59.75 211.721 82.3689 - neutron 0 1 14.7796 133.273 -91.2448 43.6339 - pi0 0 0 12.7887 4.24767 -39.2528 -45.355 - gamma 0 0 2.86286 -0.916605 1.80947 -2.0203 - neutron 0 1 2.66593 45.6257 -8.17381 -53.5558 - gamma 0 0 2.26418 -2.26198 0.00871487 0.0993462 - neutron 0 1 2.10388 53.636 2.63942 32.7736 - gamma 0 0 1.95145 -0.339457 -1.76596 -0.757828 - neutron 0 1 1.17094 40.7089 -20.0195 11.9884 - neutron 0 1 1.15343 -43.2954 3.70576 16.7496 - gamma 0 0 0.946093 0.0748376 0.139229 -0.932795 - neutron 0 1 0.768556 28.192 25.4834 -0.783382 - neutron 0 1 0.660616 20.149 -25.8237 12.9991 - neutron 0 1 0.492457 -9.94975 17.5447 22.7776 - neutron 0 1 0.297173 6.47431 4.88728 22.1971 - Au185[0.0] 79 185 0.481616 -142.321 381.262 -17.4798 -0 0 -0.0368631 36 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 167.212 -324.339 -17.6075 486.484 - proton 1 1 155.718 -74.1016 -173.07 530.108 - neutron 0 1 83.5892 192.247 -86.1371 345.953 - neutron 0 1 52.1651 -226.414 165.249 148.914 - proton 1 1 51.745 192.436 -107.869 226.079 - proton 1 1 43.0557 -77.5507 260.712 -93.0848 - neutron 0 1 26.3037 125.977 76.8098 168.375 - proton 1 1 25.4415 216.731 34.6916 -14.6077 - proton 1 1 23.2238 -150.59 -144.491 23.7683 - neutron 0 1 21.2637 152.591 13.8609 -130.128 - neutron 0 1 18.5346 -140.355 -120.712 30.022 - neutron 0 1 16.5786 -76.3541 -136.804 82.9634 - neutron 0 1 16.2944 112.433 126.841 46.4214 - neutron 0 1 14.9044 -6.28885 105.397 -130.695 - proton 1 1 13.5456 -142.402 -72.2578 10.1437 - neutron 0 1 11.0073 121.958 -74.0681 -21.1079 - neutron 0 1 10.6465 131.778 -17.13 49.6056 - neutron 0 1 5.55535 -33.9925 -29.7092 91.8258 - neutron 0 1 4.99786 -73.6637 13.3286 61.7465 - neutron 0 1 4.5916 64.7392 17.7728 -64.3605 - proton 1 1 4.36809 -3.02326 -18.6826 88.6443 - neutron 0 1 4.09599 65.1471 -38.6807 -44.4222 - neutron 0 1 3.54628 72.8602 9.08733 35.8513 - neutron 0 1 2.97438 24.7329 -8.51819 70.0987 - neutron 0 1 2.87897 11.3788 54.2681 -48.4122 - neutron 0 1 2.02636 44.4185 -23.3538 35.9653 - neutron 0 1 0.861151 1.89424 26.1997 -30.4786 - gamma 0 0 0.750641 0.0245751 -0.0376836 -0.749291 - gamma 0 0 0.284971 -0.0713801 -0.0311435 0.274123 - neutron 0 1 0.183149 -9.26623 11.8143 10.8975 - gamma 0 0 0.179586 0.00361654 -0.151333 0.0966238 - neutron 0 1 0.121478 -12.787 -1.78605 -7.84805 - gamma 0 0 0.0956871 0.0751168 -0.0310095 0.0505163 - neutron 0 1 0.0807492 -6.28183 0.903879 -10.5578 - Ta168[0.0] 73 168 0.37542 -173.945 154.192 -251.801 -0 0 -0.0437085 31 - proton 1 1 1000 0 0 1696.04 - proton 1 1 198.425 -338.856 165.488 519.15 - neutron 0 1 162.289 -70.8761 45.8032 569.367 - proton 1 1 154.519 351.789 335.903 277.941 - neutron 0 1 97.3337 56.4374 298.943 315.951 - proton 1 1 60.8447 10.8578 -312.932 140.838 - neutron 0 1 48.7806 -213.841 127.506 -179.05 - proton 1 1 42.6702 -134.595 -149.482 203.551 - neutron 0 1 7.94864 -78.1525 80.4564 49.1799 - neutron 0 1 5.68805 54.8408 -60.5116 63.6536 - neutron 0 1 5.43137 -88.6395 18.4129 -45.1636 - neutron 0 1 5.37632 -36.3907 69.1716 -63.4249 - neutron 0 1 5.20933 -50.2579 -83.7889 -16.4227 - proton 1 1 3.69581 -69.3681 -44.7267 11.6879 - neutron 0 1 3.69326 39.4531 30.4228 -66.8705 - neutron 0 1 2.91473 -71.411 19.406 -3.08962 - neutron 0 1 2.69104 67.1819 -9.43717 -21.4846 - neutron 0 1 2.58243 -44.8661 52.851 7.29349 - gamma 0 0 2.0054 -1.02152 0.942247 1.44579 - neutron 0 1 1.89477 19.477 -48.1094 29.5 - neutron 0 1 1.40956 -24.9502 -41.8471 -16.6442 - neutron 0 1 1.31738 -34.125 -0.933494 36.22 - neutron 0 1 1.30512 -35.6927 -12.875 -31.8506 - neutron 0 1 1.02288 1.48376 -5.59093 -43.4709 - gamma 0 0 0.774287 -0.621982 -0.404922 0.220675 - gamma 0 0 0.701166 -0.353058 -0.257974 -0.548118 - gamma 0 0 0.344291 -0.268497 -0.0034541 0.215485 - neutron 0 1 0.166452 10.9655 -9.4963 -10.1188 - neutron 0 1 0.0927631 8.83138 -6.26341 7.55639 - neutron 0 1 0.041252 8.63055 -0.229227 1.72651 - Re173[0.0] 75 173 2.02773 664.341 -458.42 -41.3202 --2.77519e-05 0.000305943 -0.0311234 24 - proton 1 1 999.994 -5.83293 64.3035 1694.8 - pi0 0 0 376.177 268.195 -76.9212 406.465 - proton 1 1 186.956 -430.961 125.221 429.389 - neutron 0 1 105.862 -368.386 -150.956 227.242 - proton 1 1 29.9689 66.0746 67.3479 -219.624 - proton 1 1 13.5651 -0.11873 77.2821 -140.239 - neutron 0 1 4.98436 -48.8882 -55.9655 -62.2005 - neutron 0 1 4.41978 -37.0878 -31.7721 -77.0707 - gamma 0 0 3.76735 -3.24109 -1.67531 0.938936 - neutron 0 1 3.35204 -56.2718 -56.0673 0.300571 - neutron 0 1 2.45489 38.1581 47.4682 30.1629 - gamma 0 0 2.39148 -0.225075 2.23395 0.823379 - neutron 0 1 2.13739 -47.3442 -41.7233 6.22113 - neutron 0 1 1.94074 -58.7208 12.3363 -7.09651 - neutron 0 1 1.74815 45.4693 23.6586 25.7074 - neutron 0 1 0.753432 23.8939 23.6438 16.9239 - gamma 0 0 0.704592 -0.494891 0.0599755 0.497932 - neutron 0 1 0.496559 -8.57311 -2.4747 29.2185 - neutron 0 1 0.42369 15.6739 4.85999 22.9578 - neutron 0 1 0.371686 -0.302659 -24.871 8.9401 - gamma 0 0 0.308685 -0.240306 0.0864206 -0.17341 - neutron 0 1 0.148709 15.8089 0.425494 5.41869 - neutron 0 1 0.129239 8.42193 -12.4759 4.03693 - Ir181[0.0] 77 181 3.91321 573.328 134.583 985.962 --0.00110813 -0.000140969 0.0169009 37 - proton 1 1 999.996 -52.7477 -6.71022 1695.2 - neutron 0 1 201.376 158.87 -134.116 612.974 - neutron 0 1 88.0073 -93.8074 386.855 -121.102 - pi0 0 0 86.7384 73.9872 -108.732 116.799 - neutron 0 1 41.2707 -126.17 -244.225 60.7598 - proton 1 1 40.947 -53.4807 83.9894 261.918 - proton 1 1 22.7592 103.771 91.1056 155.428 - neutron 0 1 18.1833 -1.80291 -178.089 52.7317 - neutron 0 1 15.6817 8.18895 50.4707 164.619 - neutron 0 1 13.4706 48.7156 96.6262 117.408 - neutron 0 1 12.515 -92.0716 -100.221 71.7808 - neutron 0 1 11.069 103.889 74.1752 68.0282 - proton 1 1 10.3926 57.1226 -127.421 10.5379 - neutron 0 1 9.4002 72.5204 108.45 -27.0548 - neutron 0 1 7.79437 92.6717 77.0608 -13.4534 - neutron 0 1 5.66001 -53.0261 86.0196 21.3728 - proton 1 1 5.26062 7.61965 -38.9595 91.2336 - neutron 0 1 5.18717 67.1992 63.9453 34.1984 - neutron 0 1 3.75774 1.08246 -74.2755 -39.4636 - neutron 0 1 3.47035 23.8339 41.203 65.3264 - neutron 0 1 3.01985 65.1156 -30.8164 -22.2289 - neutron 0 1 2.68308 20.0122 -17.2049 65.974 - neutron 0 1 2.43132 -41.2 0.202518 -53.6396 - proton 1 1 2.26682 -59.0215 -21.3955 17.8219 - neutron 0 1 1.57312 52.3954 -12.0678 8.22569 - neutron 0 1 1.37143 18.1549 -14.9155 -45.0211 - neutron 0 1 1.05826 21.7819 22.6523 -31.6568 - neutron 0 1 1.04507 35.2098 3.85233 -26.6521 - neutron 0 1 1.00273 -29.1913 -13.2861 -29.2682 - neutron 0 1 0.681787 -0.837777 -28.3836 21.8014 - gamma 0 0 0.245054 -0.0486103 -0.197172 -0.137157 - neutron 0 1 0.229053 -16.7395 -6.80746 10.1942 - neutron 0 1 0.160768 10.1905 -13.461 -4.13361 - alpha 2 4 3.0034 20.87 119.892 87.1165 - alpha 2 4 5.93333 -29.5652 -133.069 160.268 - deuteron 1 2 10.874 -77.2701 164.382 -88.979 - Yb158[0.0] 70 158 0.794316 -441.719 -179.949 -78.5301 -0 0 -0.0412204 37 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 201.802 -50.9944 132.156 632.354 - proton 1 1 141.977 353.518 114.079 385.479 - proton 1 1 96.5286 -319.291 -97.1344 -281.205 - neutron 0 1 91.9858 -45.8618 -346.489 243.221 - proton 1 1 44.3286 169.764 29.697 235.474 - proton 1 1 29.6873 111.643 -168.941 -124.842 - neutron 0 1 24.4702 -72.6475 195.361 -56.0162 - neutron 0 1 19.6147 -81.4422 163.668 61.8324 - neutron 0 1 12.6568 120.297 -63.6385 -73.6386 - proton 1 1 11.6994 40.7513 129.782 59.8953 - neutron 0 1 11.409 105.383 -94.3401 -39.5413 - neutron 0 1 9.92673 126.33 -50.0223 17.0477 - neutron 0 1 9.80127 -24.5911 28.1831 -130.824 - neutron 0 1 6.96757 88.4137 -56.0768 46.6897 - neutron 0 1 5.3538 -39.9604 -86.4103 32.0248 - neutron 0 1 2.4535 -25.388 61.4098 -14.1686 - neutron 0 1 2.16569 55.2227 29.4424 12.5664 - neutron 0 1 1.93892 -35.0022 43.2835 -23.4227 - neutron 0 1 1.91645 6.3227 -57.9031 -14.5666 - neutron 0 1 1.87941 47.3163 -9.44006 -34.7454 - neutron 0 1 1.76413 -53.1241 20.482 8.74468 - gamma 0 0 1.54232 1.19168 0.413206 -0.887644 - neutron 0 1 1.53609 35.6211 32.93 23.1436 - neutron 0 1 1.17776 -1.49529 -46.9615 -2.63281 - proton 1 1 1.16222 22.8004 40.5238 -4.50207 - neutron 0 1 1.15222 30.9007 5.23745 34.4125 - neutron 0 1 0.895703 -5.55801 -38.8901 11.8581 - neutron 0 1 0.570148 7.7613 30.222 -9.90473 - neutron 0 1 0.423501 -27.3851 4.48066 5.09635 - neutron 0 1 0.395704 25.871 -1.1757 8.54669 - neutron 0 1 0.26885 1.17686 19.0363 -11.8959 - gamma 0 0 0.16558 -0.164198 0.0211886 -0.00260392 - neutron 0 1 0.0925129 1.60908 13.0783 -0.46998 - deuteron 1 2 7.30129 17.8425 80.4085 143.73 - deuteron 1 2 5.28051 22.3732 -131.259 45.8991 - Hf163[0.0] 72 163 2.10262 -609.206 74.7887 511.288 -0 0 0.0346371 31 - proton 1 1 1000 0 0 1696.04 - proton 1 1 169.941 356.047 -216.935 417.075 - neutron 0 1 165.626 -289.941 450.58 227.105 - neutron 0 1 95.8639 41.0174 152.748 405.36 - proton 1 1 62.223 -157.669 87.0597 296.98 - neutron 0 1 45.8574 -89.83 47.1957 -279.246 - pi+ 1 0 43.1584 57.1888 -101.172 20.0904 - neutron 0 1 30.424 -188.113 68.3499 134.306 - proton 1 1 14.8187 -56.3786 -148.954 -51.5909 - neutron 0 1 5.73917 -33.2674 11.7251 97.8437 - neutron 0 1 5.36648 6.91662 100.173 5.53984 - neutron 0 1 4.54705 17.8838 -71.0103 56.594 - neutron 0 1 4.12983 -47.066 31.774 -67.4741 - neutron 0 1 3.40259 -61.7575 50.899 -0.887969 - neutron 0 1 3.37329 -26.7338 27.7521 -69.7521 - neutron 0 1 2.87309 51.8533 -51.0948 -10.3789 - neutron 0 1 2.79856 -39.8925 -17.3253 58.0957 - gamma 0 0 2.74698 1.63515 1.78386 1.3 - neutron 0 1 2.38065 -11.5451 64.0188 -15.7329 - neutron 0 1 2.31504 -49.1682 39.1113 -20.2093 - neutron 0 1 1.01988 -28.1844 -14.2559 30.3305 - neutron 0 1 0.995722 -12.7493 35.6096 -21.0119 - neutron 0 1 0.845014 -24.2326 9.9018 30.0556 - neutron 0 1 0.751326 17.1785 8.00043 32.4546 - gamma 0 0 0.619064 -0.387055 0.0272165 -0.482377 - neutron 0 1 0.533251 1.53984 -5.5114 -31.1382 - neutron 0 1 0.479384 25.6014 -12.3233 -9.68299 - neutron 0 1 0.294771 -9.18503 -17.8262 -12.3232 - gamma 0 0 0.120834 -0.0864513 0.0560964 -0.0630886 - neutron 0 1 0.0488459 2.29152 -2.15492 9.04961 - Os173[0.0] 76 173 2.46283 547.039 -528.207 463.834 -0.000252546 0.000401177 -0.00447463 48 - proton 1 1 999.997 24.9339 39.6083 1695.39 - proton 1 1 135.827 -505.988 -23.8645 -129.389 - neutron 0 1 102.136 280.055 210.652 282.053 - neutron 0 1 55.2627 180.988 -47.9951 268.029 - neutron 0 1 53.2529 169.537 -261.875 -74.7225 - neutron 0 1 51.2843 263.138 -91.7253 146.1 - proton 1 1 37.9851 -202.168 -23.1408 176.964 - proton 1 1 30.172 -86.3329 -217.518 52.5533 - neutron 0 1 19.7998 -180.546 3.29283 70.6467 - neutron 0 1 16.5053 54.8546 138.388 95.5395 - neutron 0 1 16.1691 100.68 117.565 -81.7749 - neutron 0 1 14.8976 -37.0504 -131.631 -97.556 - proton 1 1 13.2451 -43.6368 151.153 16.7096 - neutron 0 1 12.5253 51.9541 69.8133 126.966 - neutron 0 1 11.3844 24.0987 130.076 -63.4187 - neutron 0 1 8.16412 110.586 -49.1864 -27.5595 - proton 1 1 7.7937 -31.2677 -22.1617 -114.966 - proton 1 1 7.27366 -7.69796 32.4398 -112.208 - neutron 0 1 6.56131 71.929 75.7952 -38.1303 - neutron 0 1 6.34574 71.8212 16.3915 -80.8566 - neutron 0 1 5.94172 -25.2184 88.1224 52.9061 - neutron 0 1 5.80637 4.70485 104.51 -0.389702 - neutron 0 1 5.73374 -36.4166 -28.4565 93.1203 - neutron 0 1 5.53046 -9.37639 -88.4225 -50.1657 - neutron 0 1 5.22839 21.6799 3.85769 96.7846 - neutron 0 1 4.30841 -63.8047 -25.6493 58.1869 - neutron 0 1 3.95636 -11.4137 -61.8011 -59.1652 - proton 1 1 3.4614 5.62365 47.9215 64.6479 - gamma 0 0 3.45505 -2.44251 -2.44224 0.0832732 - neutron 0 1 3.27045 -64.5869 8.58041 43.7175 - neutron 0 1 2.8303 16.3092 -52.0021 48.5418 - neutron 0 1 2.14588 -36.3436 43.2877 29.0227 - gamma 0 0 1.83862 1.59217 0.426592 0.814588 - neutron 0 1 1.60956 47.1863 -12.0738 25.59 - gamma 0 0 1.45483 -1.16383 -0.858746 -0.156765 - neutron 0 1 1.21875 44.4695 4.59652 17.1176 - neutron 0 1 1.02136 -17.4697 -29.7755 -26.9914 - neutron 0 1 0.945017 28.6711 -20.7135 -22.9264 - gamma 0 0 0.371024 -0.280903 -0.122064 0.209411 - neutron 0 1 0.239261 -9.32373 9.853 16.2987 - gamma 0 0 0.118366 -0.0736628 0.0423379 -0.0824121 - neutron 0 1 0.0638138 6.99408 -7.95153 2.78829 - neutron 0 1 0.0331735 0.498623 -4.11124 6.72217 - alpha 2 4 2.65311 10.9303 74.5957 -118.75 - triton 1 3 15.4248 -270.501 55.98 102.944 - He3 2 3 3.20395 52.9019 -73.3538 -99.1571 - alpha 2 4 20.9291 -187.701 316.326 145.49 - Dy147[0.0] 66 147 3.40887 234.523 -387.232 853.198 -0 0 -0.0476242 15 - proton 1 1 1000 0 0 1696.04 - proton 1 1 713.946 357.566 -150.345 1303.46 - neutron 0 1 169 -26.4757 440.351 389.261 - neutron 0 1 41.0582 -254 84.2138 -85.0383 - neutron 0 1 5.38567 -74.7964 67.4483 -2.36788 - neutron 0 1 3.94753 -37.9407 -9.55971 76.8285 - gamma 0 0 1.87704 1.81415 0.240256 -0.417613 - gamma 0 0 1.22448 -0.747418 -0.40017 -0.883512 - neutron 0 1 0.487567 -15.3857 -3.86069 -25.784 - neutron 0 1 0.335593 14.4446 19.9854 -4.76172 - neutron 0 1 0.26718 -7.68413 -4.99212 20.4492 - gamma 0 0 0.209232 -0.100997 0.168607 -0.0717573 - gamma 0 0 0.0873146 -0.003785 0.0169188 -0.0855761 - neutron 0 1 0.0293857 5.42541 -5.00873 0.835437 - Au189[0.0] 79 189 0.551522 37.8862 -438.26 24.6123 -0 0 -0.0317025 20 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 260.558 43.2663 -527.592 526.58 - pi0 0 0 253.506 -184.212 235.233 208.402 - proton 1 1 196.96 -63.1527 -34.3957 635.001 - proton 1 1 28.8785 -60.1655 -153.185 167.153 - neutron 0 1 5.8167 -5.53544 101.843 23.6973 - neutron 0 1 4.71979 -62.3723 0.361671 70.7174 - neutron 0 1 4.0151 -19.1691 29.3354 -79.5802 - neutron 0 1 2.79158 26.8323 6.86109 -66.9813 - gamma 0 0 2.50272 -0.973648 2.21766 -0.630556 - gamma 0 0 2.17967 0.653551 1.33137 1.59728 - neutron 0 1 2.0815 -3.39914 -43.5973 44.76 - neutron 0 1 1.35194 -12.9766 -17.7383 45.379 - neutron 0 1 0.73657 -11.4798 -5.07904 -35.0296 - neutron 0 1 0.509472 6.53565 -10.4887 -28.3707 - neutron 0 1 0.267383 -5.37885 -4.98335 21.1838 - gamma 0 0 0.184739 -0.0944509 0.106261 0.117967 - neutron 0 1 0.0742412 0.999984 7.89365 -8.72953 - neutron 0 1 0.044622 7.64152 -3.00157 4.0559 - Pt184[0.0] 78 184 0.926794 342.982 414.878 166.713 -0 0 0.00269011 16 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 339.902 -69.3022 -19.4106 865.491 - proton 1 1 308.532 -84.3337 -208.541 789.661 - neutron 0 1 106.936 164.997 411.465 125.912 - proton 1 1 65.9581 47.2276 5.41116 354.773 - proton 1 1 44.6071 -45.1182 122.576 -261.986 - neutron 0 1 17.3158 -85.6533 86.6516 -134.14 - proton 1 1 14.4829 -154.512 -57.6487 13.7906 - neutron 0 1 11.8917 85.9194 -122.757 6.01301 - proton 1 1 10.9894 135.499 40.0468 -27.9113 - neutron 0 1 1.8661 31.7599 47.7081 15.0129 - neutron 0 1 0.844506 -2.26688 -6.6745 39.2169 - gamma 0 0 0.65654 -0.478346 -0.353859 -0.277513 - neutron 0 1 0.354081 17.8887 10.634 15.2447 - gamma 0 0 0.192957 -0.182744 0.055204 -0.0281006 - Re186[0.0] 75 186 0.312594 -41.4448 -309.163 -104.735 -0 0 0.00247784 8 - proton 1 1 1000 0 0 1696.04 - proton 1 1 820.319 496.627 466.11 1322.27 - neutron 0 1 169.302 -404.829 -305.077 299.741 - gamma 0 0 0.718764 0.196566 0.106531 -0.683106 - gamma 0 0 0.651187 0.399552 0.0263312 -0.513526 - gamma 0 0 0.521136 0.506481 -0.0994891 -0.0718451 - gamma 0 0 0.181355 0.025827 0.0183782 0.178564 - Au196[0.0] 79 196 0.110207 -92.9253 -161.083 75.1203 -0 0 -0.0348524 35 - proton 1 1 1000 0 0 1696.04 - proton 1 1 274.999 199.932 285.558 685.68 - proton 1 1 157.982 -378.089 -292.351 -304.956 - neutron 0 1 42.3118 -116.184 259.015 26.6915 - proton 1 1 39.8791 -50.5824 -271.191 -17.9416 - proton 1 1 26.539 -4.33551 -60.3032 216.45 - pi- -1 0 17.0072 -7.80245 32.2012 -62.7602 - neutron 0 1 14.7612 158.147 -51.1572 18.1301 - neutron 0 1 13.6796 65.5665 77.1457 -125.069 - neutron 0 1 13.5004 -76.7313 108.862 -88.3893 - neutron 0 1 12.7911 13.386 -121.479 96.2465 - proton 1 1 12.3118 32.2918 -135.53 62.0016 - neutron 0 1 10.9819 -35.7318 -60.7307 125.667 - neutron 0 1 6.45457 -47.0395 -48.1877 -87.3834 - neutron 0 1 5.81287 -75.5367 -72.2979 -4.91435 - neutron 0 1 2.56832 1.24211 -46.8024 51.3888 - gamma 0 0 2.55674 -0.473685 -2.3848 0.79074 - neutron 0 1 2.36112 45.8553 47.1471 -10.8108 - gamma 0 0 1.87357 -0.226288 -0.911662 -1.62109 - neutron 0 1 1.73283 -0.193021 51.335 -24.9782 - gamma 0 0 1.6915 0.322679 -1.27561 1.06295 - neutron 0 1 1.59531 22.9717 -22.1777 -44.5062 - gamma 0 0 1.31435 1.05374 -0.78317 -0.0616173 - neutron 0 1 1.20353 31.0943 11.8393 34.0001 - neutron 0 1 0.85938 -34.2251 0.387282 -21.0741 - neutron 0 1 0.749642 -17.8662 -24.2894 -22.362 - neutron 0 1 0.382571 7.43482 -23.4592 -10.6507 - neutron 0 1 0.309556 -15.5561 -7.86498 16.6716 - neutron 0 1 0.246908 -16.4571 9.19348 10.4248 - neutron 0 1 0.155372 8.99377 13.2434 -5.9761 - neutron 0 1 0.107391 0.626226 11.1849 -8.73612 - gamma 0 0 0.0963916 0.0144924 0.0240692 -0.0922063 - neutron 0 1 0.0144331 2.05263 -1.63366 4.49887 - alpha 2 4 0.42224 -53.1114 12.5426 13.0297 - W168[0.0] 74 168 5.12352 339.158 325.132 1175.59 -0 0 -0.0396177 30 - proton 1 1 1000 0 0 1696.04 - proton 1 1 374.274 576.797 -128.643 702.266 - proton 1 1 146.145 -35.7216 523.054 144.031 - neutron 0 1 100.512 -405.23 -171.058 74.208 - proton 1 1 50.2151 57.5754 -164.931 257.362 - proton 1 1 35.5228 -80.4978 22.1024 246.888 - neutron 0 1 22.9198 7.37518 -205.804 34.4213 - neutron 0 1 19.9793 125.153 94.243 -115.75 - proton 1 1 11.1096 123.718 -19.7427 72.6308 - neutron 0 1 10.4945 27.586 -101.667 93.4534 - neutron 0 1 9.4769 84.1952 -75.6791 71.2881 - proton 1 1 7.82555 -59.0713 100.865 -32.9106 - neutron 0 1 7.37483 99.8275 7.87543 62.3308 - neutron 0 1 7.25246 -88.0083 26.2466 -72.4333 - neutron 0 1 6.0962 4.22579 -53.9697 -92.5319 - neutron 0 1 2.63656 -60.4246 33.0538 -14.7549 - neutron 0 1 2.51449 -12.9268 -8.72943 -66.9931 - neutron 0 1 2.39517 48.4474 13.0033 44.6133 - neutron 0 1 2.14056 61.4752 -13.1893 -8.59199 - neutron 0 1 1.93202 32.5024 50.362 -6.44318 - neutron 0 1 1.45958 -10.3497 -43.8878 -26.676 - neutron 0 1 1.40814 -31.7593 -10.3766 -39.1375 - neutron 0 1 0.956485 -6.69461 41.7933 -2.60341 - neutron 0 1 0.92684 4.36924 37.3063 -18.2116 - gamma 0 0 0.828924 0.293898 0.154085 0.759603 - neutron 0 1 0.637538 -10.9649 11.9302 30.5919 - neutron 0 1 0.489794 -3.96997 -4.34686 29.7653 - gamma 0 0 0.478071 -0.16137 -0.439979 -0.0944981 - gamma 0 0 0.104689 0.0301614 0.0859369 -0.0516222 - W173[0.0] 74 173 0.96278 -447.792 40.391 328.615 -0 0 -0.0407712 10 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 582.456 13.7092 66.1013 1195.5 - pi0 0 0 144.154 -140.423 -190.11 61.9256 - proton 1 1 115.771 248.202 140.129 386.539 - gamma 0 0 2.88543 -0.807229 2.75847 0.254776 - gamma 0 0 2.27332 -1.03734 1.34207 1.51353 - gamma 0 0 1.94936 0.211747 -1.18969 1.52964 - gamma 0 0 0.484548 -0.0683908 0.19039 0.440297 - neutron 0 1 0.157305 -13.6437 -9.35714 -4.68123 - Au195[0.0] 79 195 0.0390323 -106.141 -9.86309 53.0178 -0.000606011 -0.000421807 0.00181001 12 - proton 1 1 999.996 45.455 -31.6385 1695.13 - pi+ 1 0 268.821 42.024 -254.762 283.962 - proton 1 1 266.398 -48.0187 307.707 688.395 - proton 1 1 142.089 422.549 18.8784 328.513 - neutron 0 1 121.547 -193.079 -346.195 293.335 - neutron 0 1 5.62642 -26.6352 -26.1717 -95.969 - neutron 0 1 1.90746 44.165 0.388457 40.4637 - neutron 0 1 1.39603 -33.5676 35.3637 15.7445 - gamma 0 0 1.02809 0.696127 -0.51146 -0.557488 - neutron 0 1 0.588855 -0.41263 -4.22819 -32.9975 - neutron 0 1 0.0844421 0.701113 12.0474 3.61299 - Ir190[0.0] 77 190 0.301506 -162.966 225.846 170.627 -0 0 -0.0414863 45 - proton 1 1 1000 0 0 1696.04 - pi+ 1 0 126.778 209.789 -14.6046 -85.0671 - proton 1 1 105.246 -240.16 -18.2035 388.031 - proton 1 1 80.5551 296.782 59.2146 257.038 - neutron 0 1 70.6397 -100.891 57.7224 352.449 - proton 1 1 29.1649 -180.779 1.39505 -151.317 - proton 1 1 14.4291 129.452 38.0205 -95.2976 - neutron 0 1 12.9941 -88.9446 -13.2054 128.456 - neutron 0 1 12.1036 -98.7125 105.203 45.5961 - proton 1 1 9.26012 -11.9501 122.765 47.4197 - neutron 0 1 8.80582 4.12042 -127.571 -18.263 - neutron 0 1 8.24049 -109.423 54.5034 -24.673 - neutron 0 1 7.77623 -92.7499 73.3979 -26.1391 - neutron 0 1 7.75632 33.9153 15.7964 115.046 - proton 1 1 6.69397 17.9749 -108.051 24.6612 - neutron 0 1 6.2801 15.2413 87.6528 -62.652 - neutron 0 1 6.25545 18.682 81.4145 -69.4017 - neutron 0 1 4.14589 -26.8945 -36.1603 76.0064 - proton 1 1 4.00596 50.3321 -35.2792 -61.2819 - neutron 0 1 3.95547 42.4683 62.7329 41.3463 - neutron 0 1 3.40328 31.5521 -73.031 -8.81596 - gamma 0 0 3.40078 -0.861605 2.40546 2.24426 - neutron 0 1 2.90227 -54.1007 -43.9121 24.6377 - proton 1 1 2.90202 -35.246 22.3573 60.9267 - neutron 0 1 2.7158 -28.3285 49.6217 42.9639 - neutron 0 1 2.63678 34.9742 44.8618 41.5456 - neutron 0 1 2.45087 41.9512 0.0460011 53.4004 - neutron 0 1 2.43755 12.2602 43.3311 -50.5818 - neutron 0 1 1.75246 24.2516 50.7835 -11.3606 - neutron 0 1 1.73394 -7.17525 -55.8582 9.47074 - neutron 0 1 1.48458 12.0942 14.0802 49.4713 - neutron 0 1 1.38379 30.9852 -32.0309 24.8229 - gamma 0 0 1.34905 -0.169627 1.33231 0.126941 - neutron 0 1 1.3076 -22.3321 20.2758 -39.3577 - neutron 0 1 1.2728 35.0907 -22.7741 25.3645 - proton 1 1 0.936433 -36.4634 -13.7056 -15.5149 - neutron 0 1 0.863906 -29.9646 -18.8493 19.2605 - gamma 0 0 0.509071 0.318728 -0.00548473 -0.396907 - neutron 0 1 0.492376 12.8012 -1.82515 -27.5369 - neutron 0 1 0.416007 -4.29697 -26.3122 -8.43244 - neutron 0 1 0.382983 24.7707 -1.09149 10.249 - neutron 0 1 0.269373 -19.5813 -2.41554 10.8166 - deuteron 1 2 13.8304 -188.153 60.6285 113.995 - deuteron 1 2 5.07415 -45.8058 -77.191 104.897 - Er157[0.0] 68 157 1.3149 343.178 -347.467 381.883 -0 0 -0.0422503 18 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 596.413 301.758 -982.139 648.685 - proton 1 1 124.66 12.5802 219.268 448.591 - proton 1 1 61.2432 -162.637 303.615 6.58371 - proton 1 1 57.6063 287.623 169.38 -1.70786 - proton 1 1 29.5065 -187.441 39.7518 -139.737 - neutron 0 1 13.7478 -78.2277 -23.044 -139.185 - neutron 0 1 8.00788 -90.6956 -69.5225 45.309 - proton 1 1 7.73996 -92.1095 42.62 65.4497 - neutron 0 1 3.36952 -45.7035 52.4348 38.793 - neutron 0 1 2.58859 -7.90935 -67.5402 -15.7087 - gamma 0 0 1.6874 -1.67505 -0.129125 -0.157688 - neutron 0 1 1.30829 -37.7749 -32.0929 1.80608 - neutron 0 1 0.656028 -34.7083 2.4905 4.72504 - gamma 0 0 0.327895 0.0158196 0.210962 -0.25052 - neutron 0 1 0.157203 -0.651781 2.30964 17.0197 - neutron 0 1 0.120321 -6.08025 5.88631 12.4296 - Re184[0.0] 75 184 1.83472 143.637 336.503 703.391 -0 0 -0.0476869 7 - proton 1 1 1000 0 0 1696.04 - proton 1 1 979.222 33.7645 -316.452 1641.69 - proton 1 1 4.54186 -18.0119 77.1781 47.5683 - gamma 0 0 1.76484 -1.0796 0.493266 1.30606 - neutron 0 1 0.376162 8.37797 22.3221 11.7699 - gamma 0 0 0.236234 0.062544 0.149938 0.171503 - Pt195[0.0] 78 195 0.130434 -23.1136 216.309 -6.46712 -0 0 -0.0341388 10 - proton 1 1 1000 0 0 1696.04 - pi0 0 0 330.958 119.404 31.3346 428.529 - neutron 0 1 289.849 298.405 389.677 622.723 - proton 1 1 223.147 -460.634 -90.364 498.187 - gamma 0 0 3.14904 0.474497 1.21991 -2.86411 - gamma 0 0 1.64039 1.49713 -0.518536 0.424971 - gamma 0 0 0.760468 0.751174 -0.116342 -0.0226801 - neutron 0 1 0.165874 -2.75207 10.676 13.7904 - gamma 0 0 0.118891 0.025969 0.0912787 -0.0716167 - Au195[0.0] 79 195 0.377584 42.8262 -342.001 135.338 -0 0 0.0193621 33 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 216.956 252.285 400.274 480.513 - neutron 0 1 114.163 -244.782 177.688 368.876 - neutron 0 1 102.304 -375.457 147.236 200.153 - neutron 0 1 91.5373 233.985 255.097 246.103 - proton 1 1 81.1121 -228.871 -293.931 -141.466 - neutron 0 1 49.3574 -18.329 -299.109 73.3701 - proton 1 1 27.8861 -29.4482 -43.6103 224.362 - neutron 0 1 11.9275 -12.2047 78.8922 127.211 - neutron 0 1 9.507 -84.9456 -101.787 19.4652 - neutron 0 1 8.63062 -58.0773 -81.9105 78.8051 - neutron 0 1 8.5278 115.756 51.5078 -6.71821 - neutron 0 1 8.51064 35.0656 48.4097 111.767 - neutron 0 1 6.36581 15.481 -88.2272 -63.0794 - neutron 0 1 5.86293 21.0658 84.2148 59.2934 - neutron 0 1 4.62007 5.797 32.6783 87.1871 - neutron 0 1 4.52257 -6.58508 -77.7795 49.2539 - proton 1 1 4.32316 39.1326 -73.6456 -34.2966 - neutron 0 1 4.10721 82.0971 27.1532 16.0504 - neutron 0 1 2.89203 -44.8468 -9.11985 57.8658 - neutron 0 1 2.65645 -56.5549 31.8235 -28.0659 - neutron 0 1 2.55456 -31.4667 41.1 -46.1249 - proton 1 1 1.91562 26.1119 -28.2354 -46.0364 - neutron 0 1 1.88463 21.6781 -48.7673 26.3974 - neutron 0 1 1.37473 7.43484 -20.6819 -45.8494 - gamma 0 0 1.31988 -0.610696 1.16684 0.0872912 - neutron 0 1 1.2053 37.7293 -11.5622 26.6304 - neutron 0 1 0.5955 11.3989 14.2337 28.0508 - neutron 0 1 0.0724742 -4.25628 -10.3128 3.42408 - triton 1 3 1.67064 22.8994 -31.5961 -88.6937 - alpha 2 4 0.832298 -54.2052 35.8823 -44.4927 - deuteron 1 2 0.908966 53.7674 3.21248 -22.568 - Hf162[0.0] 72 162 0.387966 268.958 -210.298 -21.4472 --0.000621136 0.000169369 -0.00421895 30 - proton 1 1 999.992 -74.395 20.2857 1694.28 - proton 1 1 220.055 27.7659 -361.275 574.522 - neutron 0 1 167.433 -419.539 293.163 284.087 - pi- -1 0 87.9421 -173.672 44.4745 -11.9206 - neutron 0 1 54.8 -189.278 -172.285 201.174 - neutron 0 1 39.4695 197.217 -76.8721 175.847 - proton 1 1 24.3027 -53.0366 167.847 123.329 - proton 1 1 11.9388 -89.8335 -90.336 79.4703 - neutron 0 1 11.4304 -45.7433 -131.188 -48.0333 - neutron 0 1 6.256 48.3707 32.8759 91.512 - neutron 0 1 5.52432 73.3768 44.8134 -54.9459 - neutron 0 1 4.43845 1.97197 67.1698 -62.0037 - proton 1 1 4.42958 -77.8602 -6.88522 47.1414 - proton 1 1 3.98083 22.6705 -80.6858 21.492 - neutron 0 1 3.85632 71.1587 -34.6412 31.5885 - neutron 0 1 3.41773 31.3966 32.306 66.3673 - neutron 0 1 3.24265 62.8697 -40.8343 -21.9967 - neutron 0 1 3.23903 -41.6954 -59.4768 -28.6539 - neutron 0 1 3.01241 -17.1979 57.1745 -45.8814 - neutron 0 1 2.97775 58.6692 -24.3848 -39.5949 - neutron 0 1 1.74955 -46.9686 -31.1853 -10.589 - neutron 0 1 1.47757 -38.1982 -9.22401 35.136 - neutron 0 1 1.46973 0.224827 -52.1956 -6.28824 - neutron 0 1 1.37487 39.3205 4.53232 -31.9188 - neutron 0 1 0.799144 11.5566 24.6559 27.5838 - neutron 0 1 0.779305 12.346 -23.1601 27.8605 - neutron 0 1 0.664935 -9.92457 -17.9488 28.7973 - neutron 0 1 0.636537 -12.6793 3.62067 31.9792 - alpha 2 4 1.79601 13.0185 -56.3875 -100.215 - W168[0.0] 74 168 1.86134 469.299 516.619 308.429 -0 0 -0.0302484 44 - proton 1 1 1000 0 0 1696.04 - proton 1 1 103.586 269.968 87.5356 352.942 - proton 1 1 99.407 -26.5336 -114.544 427.316 - proton 1 1 69.9025 -82.8923 -65.3129 -353.447 - proton 1 1 65.0253 -233.487 -65.863 259.609 - neutron 0 1 60.1423 132.081 247.289 195.026 - neutron 0 1 46.3473 286.195 -69.0485 50.6501 - neutron 0 1 45.2173 -209.911 195.03 70.1034 - proton 1 1 26.876 -205.227 18.0596 -93.3386 - neutron 0 1 19.5151 100.537 154.226 56.2055 - neutron 0 1 15.9121 -7.1424 -154.544 78.8615 - neutron 0 1 14.6476 -18.7103 147.876 74.3101 - neutron 0 1 14.508 160.971 -16.6513 35.8343 - proton 1 1 13.3227 -54.7663 -46.9561 -141.329 - neutron 0 1 11.4609 120.777 30.3215 -78.4951 - proton 1 1 10.5856 -53.1486 79.9331 103.742 - neutron 0 1 10.3179 90.2765 55.8503 -90.6972 - proton 1 1 9.76942 -105.704 -85.1708 -0.882739 - neutron 0 1 9.29702 -35.0206 -60.4658 112.58 - proton 1 1 9.06729 24.2198 -41.231 121.7 - proton 1 1 8.15115 73.2641 -32.0142 -94.7096 - neutron 0 1 7.62735 -81.6626 0.943429 87.8708 - neutron 0 1 6.33592 -78.9886 -33.306 -67.8063 - neutron 0 1 5.7406 -62.0171 -74.0488 -38.6128 - neutron 0 1 5.4728 91.156 44.0889 -7.79865 - neutron 0 1 5.44835 -1.69876 62.6907 -79.5918 - neutron 0 1 4.36389 12.5013 -79.1647 42.3796 - neutron 0 1 3.65669 36.2517 9.83606 73.9854 - neutron 0 1 2.10827 -3.17401 4.97246 -62.7006 - neutron 0 1 1.91129 -44.9211 33.1978 -21.7997 - proton 1 1 1.764 -32.3204 44.3396 17.3991 - gamma 0 0 1.73391 0.999042 0.392896 -1.36161 - neutron 0 1 1.35586 -7.31465 -9.99411 -48.952 - neutron 0 1 1.1161 24.4151 4.57235 38.4908 - proton 1 1 1.03003 30.6906 -10.8518 -29.5683 - neutron 0 1 0.867879 -6.24563 -7.00473 -39.2879 - gamma 0 0 0.796323 -0.622478 0.294615 -0.399816 - neutron 0 1 0.790231 -18.0621 31.2153 13.5991 - neutron 0 1 0.477298 -6.77452 21.9792 -19.1874 - neutron 0 1 0.442115 8.6015 -23.6307 14.0923 - neutron 0 1 0.438893 -6.82757 24.2781 13.7437 - neutron 0 1 0.257563 14.2322 16.5403 2.81481 - deuteron 1 2 6.87051 -7.50258 -78.7272 139.878 - Ho157[0.0] 67 157 1.39654 -86.4618 -246.935 582.872 --0.000219484 0.00185551 0.0153427 28 - proton 1 1 999.995 -7.01752 59.3258 1694.98 - neutron 0 1 291.143 504.535 549.403 274.699 - neutron 0 1 223.772 -349.824 -304.061 505.708 - neutron 0 1 184.332 46.9306 174.068 589.797 - proton 1 1 66.6069 -302.397 -193.516 -23.1308 - proton 1 1 18.971 156.337 -106.382 -14.1921 - neutron 0 1 13.6836 111.114 115.999 9.92011 - neutron 0 1 11.6899 138.819 24.3788 -47.3148 - neutron 0 1 9.32855 -74.1859 -73.8906 81.5672 - neutron 0 1 5.52122 -37.0035 -24.6205 91.8158 - neutron 0 1 4.83819 -47.6868 73.996 -36.9535 - proton 1 1 4.12553 65.9168 -39.5342 43.0207 - neutron 0 1 2.68732 -67.7369 20.2161 -7.75067 - proton 1 1 2.48166 5.42693 -11.7527 67.0487 - neutron 0 1 2.45295 10.5088 -34.1872 -57.7601 - neutron 0 1 2.43995 24.2358 -35.412 -52.4362 - gamma 0 0 1.98153 -1.20182 -0.458392 1.5073 - neutron 0 1 1.82833 38.6696 -40.2766 17.9294 - gamma 0 0 1.3294 0.849902 1.01327 0.13517 - neutron 0 1 0.855873 -17.351 -35.3328 -7.71774 - neutron 0 1 0.76029 7.59924 24.4692 -27.7988 - neutron 0 1 0.587878 6.87661 -11.5924 30.3871 - neutron 0 1 0.50187 9.59213 -17.9929 22.969 - gamma 0 0 0.400591 -0.155365 -0.357197 0.093513 - neutron 0 1 0.387287 23.7594 -12.4475 2.90964 - gamma 0 0 0.0587857 -0.0415206 -0.00924991 -0.0405739 - gamma 0 0 0.041512 0.0380733 -0.00356763 0.0161535 - Os177[0.0] 76 177 0.368334 -260.645 17.6083 230.55 --0.00113077 0.000300594 0.0210945 16 - proton 1 1 999.995 -58.6493 15.5908 1694.95 - neutron 0 1 353.608 697.36 -462.01 299.584 - proton 1 1 296.636 -555.849 301.619 494.673 - proton 1 1 120.01 -257.934 -163.059 382.736 - proton 1 1 95.2565 246.081 191.005 301.311 - neutron 0 1 37.1155 139.924 -53.5532 220.626 - neutron 0 1 11.4645 -90.3067 85.0667 79.2658 - neutron 0 1 1.88186 -49.7597 -15.4946 28.7001 - gamma 0 0 1.42543 0.204566 -0.63755 -1.25838 - neutron 0 1 1.29334 25.3798 -6.39938 -41.7965 - neutron 0 1 0.952939 23.8091 -31.1292 -15.9908 - neutron 0 1 0.897723 -20.9829 -15.3454 -31.8117 - gamma 0 0 0.28801 0.157295 -0.221653 0.0952789 - neutron 0 1 0.224495 2.24016 12.6773 16.0054 - neutron 0 1 0.0120356 0.00268767 1.05741 4.63665 - Ir186[0.0] 77 186 0.228926 -218.977 172.017 -41.8299 -0 0 -0.041257 23 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 236.479 383.336 295.749 515.639 - pi0 0 0 178.339 144.088 82.2491 228.958 - proton 1 1 157.601 -267.592 73.3777 493.553 - neutron 0 1 96.5987 -245.934 -344.881 106.893 - proton 1 1 20.4458 196.818 4.79959 5.02697 - neutron 0 1 10.6937 -137.965 0.943875 -34.2622 - neutron 0 1 10.2438 105.487 -3.10901 -90.6496 - neutron 0 1 5.40551 42.5508 79.4485 -45.434 - neutron 0 1 3.70856 14.6647 -52.5813 63.2675 - neutron 0 1 2.66775 -11.4107 -49.2554 49.6374 - neutron 0 1 2.60666 48.2081 50.7919 1.10213 - neutron 0 1 2.40891 14.3843 -43.7945 -49.0672 - neutron 0 1 1.59174 -0.835615 21.5855 50.2691 - neutron 0 1 1.40131 12.7088 -49.1891 7.35768 - neutron 0 1 1.00894 -3.4648 -0.941776 43.4058 - gamma 0 0 0.520491 -0.169496 0.157646 0.466187 - gamma 0 0 0.463193 0.095267 -0.147963 -0.428461 - neutron 0 1 0.381701 4.80314 25.8533 5.09424 - neutron 0 1 0.188205 -18.0537 5.20213 -0.836303 - neutron 0 1 0.0500438 -2.2579 -7.77647 5.33571 - neutron 0 1 0.0296208 0.475408 -0.696268 7.41293 - Pt180[0.0] 78 180 0.588194 -279.937 -87.7857 333.296 -0 0 0.0339516 40 - proton 1 1 1000 0 0 1696.04 - proton 1 1 261.682 428.366 -26.4035 612.65 - proton 1 1 132.478 -163.793 443.138 207.247 - neutron 0 1 44.5716 -106.949 49.8172 267.997 - proton 1 1 44.1902 128.792 261.193 -8.27047 - proton 1 1 38.26 -263.756 -9.21724 60.0708 - proton 1 1 32.9993 -120.677 143.716 -166.722 - proton 1 1 27.4951 -191.181 120.901 34.4147 - neutron 0 1 25.834 -148.946 -155.44 53.5384 - neutron 0 1 19.9443 79.8794 168.348 56.1596 - proton 1 1 18.5738 -7.19846 -108.259 153.061 - neutron 0 1 16.7257 71.9121 149.51 64.692 - proton 1 1 15.2904 -8.2077 156.288 -66.586 - neutron 0 1 12.8184 149.115 -7.86549 -44.2096 - neutron 0 1 9.38015 -111.959 -67.0375 -26.1835 - neutron 0 1 7.7989 79.8418 -58.6526 -70.0083 - neutron 0 1 5.40217 44.6477 -80.5054 -41.3041 - neutron 0 1 5.07924 74.4152 -8.35629 -62.9516 - neutron 0 1 5.0577 -1.61403 -45.487 -86.3596 - neutron 0 1 4.68954 -15.8441 -73.936 -55.8273 - neutron 0 1 4.68922 14.053 60.2542 70.7502 - neutron 0 1 3.06255 72.1573 17.2272 16.1508 - neutron 0 1 2.74239 -35.3496 -59.7573 18.4469 - neutron 0 1 2.51903 -27.2787 53.6929 33.36 - neutron 0 1 2.18976 -59.5622 22.8075 7.19796 - neutron 0 1 2.15392 61.5723 -11.222 11.622 - neutron 0 1 1.96235 31.7033 -9.48832 50.9532 - neutron 0 1 1.80421 -4.30039 -33.9191 47.1657 - neutron 0 1 1.7571 20.435 -53.712 -1.52862 - neutron 0 1 1.65709 -4.06993 47.7748 28.5946 - neutron 0 1 1.53122 -44.3197 -23.3357 -19.2594 - gamma 0 0 1.5075 -0.853091 -0.809732 -0.94293 - gamma 0 0 1.33123 -0.728021 -0.205964 -1.09532 - neutron 0 1 0.960462 17.3845 38.0291 7.57118 - neutron 0 1 0.865187 -35.7397 -18.6682 0.849968 - proton 1 1 0.674929 14.4978 0.881423 -32.4966 - gamma 0 0 0.507936 -0.0176976 0.26508 -0.432918 - gamma 0 0 0.274053 0.251467 0.0837132 -0.0697248 - neutron 0 1 0.210451 18.3174 1.62916 -7.57148 - Lu164[0.0] 71 164 3.68381 45.003 -883.279 585.366 -0 0 0.00710382 22 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 407.493 545.526 -89.89 791.268 - neutron 0 1 142.015 -318.049 -186.874 388.532 - pi+ 1 0 88.368 149.283 -27.579 97.1078 - neutron 0 1 48.824 -211.182 35.7032 219.677 - neutron 0 1 11.1522 61.5288 111.287 70.0734 - proton 1 1 10.9515 -106.305 55.2932 -79.4536 - proton 1 1 7.03977 6.15625 114.898 4.52068 - neutron 0 1 5.60765 -34.9472 83.6371 48.5023 - neutron 0 1 5.45731 -71.058 -38.7741 -61.0909 - neutron 0 1 2.34117 11.2007 -4.09005 65.2891 - neutron 0 1 1.90875 -58.182 -13.3134 5.29595 - neutron 0 1 1.73956 23.181 31.4211 -41.7999 - neutron 0 1 1.73767 -45.0147 34.8254 -5.40373 - gamma 0 0 1.68529 -1.42082 -0.330134 0.844099 - neutron 0 1 0.881373 -3.93618 6.85662 39.931 - proton 1 1 0.602925 22.6277 17.7563 -17.4494 - neutron 0 1 0.219783 0.295113 13.2938 -15.37 - neutron 0 1 0.137378 -8.15622 -13.3331 3.72483 - neutron 0 1 0.0946799 -12.7795 1.64985 -3.44777 - neutron 0 1 0.0390478 -6.03063 -1.3592 5.92971 - Os180[0.0] 76 180 0.157022 57.2644 -131.079 179.356 --0.00668242 0.00439657 0.0439361 20 - proton 1 1 999.961 -143.625 94.4955 1687.26 - proton 1 1 332.802 -635.824 -363.379 446.048 - proton 1 1 225.594 580.004 240.398 282.902 - pi0 0 0 114.164 56.3029 127.049 156.654 - proton 1 1 45.0085 -125.433 141.426 225.281 - proton 1 1 22.2064 -198.216 -43.0043 32.0215 - neutron 0 1 9.49273 104.796 -51.587 65.4588 - neutron 0 1 8.63635 82.5884 -97.3168 3.46555 - neutron 0 1 5.77261 27.7028 -73.2907 -68.861 - neutron 0 1 5.11775 3.5027 65.3881 -73.1796 - neutron 0 1 2.83381 36.1551 34.4508 53.283 - neutron 0 1 2.80691 24.4905 -14.5213 66.8714 - neutron 0 1 1.61472 29.2967 12.5109 44.9674 - gamma 0 0 1.24717 -1.14774 0.271676 0.405355 - neutron 0 1 1.17794 21.367 -41.7681 -3.70888 - gamma 0 0 1.15364 0.208842 -0.804499 0.800029 - neutron 0 1 0.797122 9.12023 -32.9929 18.0782 - gamma 0 0 0.737785 0.220237 0.550712 0.438792 - gamma 0 0 0.271 0.212352 0.162713 0.0432726 - Os185[0.0] 76 185 0.731751 -158.973 190.952 436.287 -0.000619809 0.000175288 0.0236265 10 - proton 1 1 1000 14.7618 4.17475 1695.97 - proton 1 1 938.157 -364.046 -61.9284 1582.49 - neutron 0 1 10.2467 -52.0122 58.2416 115.163 - neutron 0 1 7.15611 110.902 -25.6148 23.3056 - neutron 0 1 2.13954 58.3637 9.45069 -23.0088 - gamma 0 0 1.39156 -1.30282 -0.34376 0.347743 - gamma 0 0 0.738247 0.265107 0.675236 0.137054 - neutron 0 1 0.644526 -22.631 21.1596 15.8642 - neutron 0 1 0.59959 -5.635 -21.7582 24.9379 - Au192[0.0] 79 192 0.243492 290.858 24.2926 -43.2649 -0 0 -0.0443479 18 - proton 1 1 1000 0 0 1696.04 - proton 1 1 628.85 -645.799 -182.617 1060.71 - neutron 0 1 92.2842 318.96 -149.119 240.746 - neutron 0 1 70.0904 309.879 190.251 66.3419 - neutron 0 1 47.3664 -235.284 98.3312 161.937 - neutron 0 1 42.0981 234.818 157.643 29.8215 - proton 1 1 9.36833 -33.6416 27.3894 125.642 - neutron 0 1 4.57069 -40.1749 -16.2372 82.0496 - neutron 0 1 3.11738 45.7903 -53.1387 30.7767 - gamma 0 0 2.77163 2.46488 -1.26483 -0.0806126 - neutron 0 1 0.833636 -19.3506 27.001 21.5338 - gamma 0 0 0.682985 -0.4162 -0.524613 -0.134267 - neutron 0 1 0.423423 22.7798 -3.75905 -16.211 - neutron 0 1 0.293205 -10.7549 0.983358 20.8428 - neutron 0 1 0.0915328 8.09562 9.8123 3.1922 - neutron 0 1 0.0720192 10.6102 -2.56595 4.02223 - neutron 0 1 0.0446427 -3.40797 -8.29471 1.86415 - Pt184[0.0] 78 184 0.0841858 35.4291 -93.8904 -137.02 -0 0 -0.0268678 36 - proton 1 1 1000 0 0 1696.04 - pi0 0 0 291.83 -180.099 271.343 240.586 - proton 1 1 88.3379 -14.3499 123.081 397.767 - neutron 0 1 48.4048 142.929 -159.399 217.865 - proton 1 1 37.484 -138.215 228.192 23.8845 - neutron 0 1 22.4563 199.115 -55.1859 -3.2057 - neutron 0 1 22.2426 -145.124 -45.0073 -138.582 - neutron 0 1 19.1461 37.1285 -138.44 125.699 - neutron 0 1 17.5506 -118.699 118.727 -71.4304 - neutron 0 1 14.9951 57.822 -12.369 -157.817 - neutron 0 1 13.2132 -39.3317 -151.958 -19.1212 - neutron 0 1 12.4475 89.2704 121.676 27.7718 - neutron 0 1 10.4537 73.445 -45.0661 -111.032 - neutron 0 1 9.96907 -19.4791 131.82 -32.8129 - neutron 0 1 7.07992 -31.8242 -103.865 -39.4156 - neutron 0 1 6.03653 -77.2933 37.4217 63.2868 - proton 1 1 4.71914 -55.0176 -19.1516 -74.0556 - neutron 0 1 4.41397 -65.8505 60.8079 -16.7337 - neutron 0 1 4.26065 -34.2025 -76.8143 30.8903 - neutron 0 1 3.57999 47.1631 56.1508 36.9163 - gamma 0 0 2.99504 2.42733 -1.6405 0.622147 - gamma 0 0 2.46139 1.57499 -1.69408 -0.841389 - neutron 0 1 2.39725 21.9809 27.6405 -57.1255 - neutron 0 1 2.35556 64.7935 15.2868 -0.275461 - neutron 0 1 2.06963 -39.4539 42.2501 -23.4887 - gamma 0 0 1.73765 -1.48564 0.081812 0.897568 - gamma 0 0 1.41363 0.48991 0.260033 -1.30028 - neutron 0 1 1.35791 -39.9563 -14.341 -27.4111 - gamma 0 0 1.10255 -0.123264 -0.0266675 -1.09531 - gamma 0 0 1.05137 -0.239197 -0.494419 -0.896503 - neutron 0 1 0.891276 37.512 14.6473 -7.34361 - neutron 0 1 0.643685 -23.741 14.1309 -21.1345 - neutron 0 1 0.357958 -12.4039 14.1176 17.8777 - alpha 2 4 0.890463 20.3267 66.7378 42.0944 - triton 1 3 0.65084 27.0511 -38.2965 38.1941 - W166[0.0] 74 166 5.84409 213.863 -480.625 1236.81 -0 0 0.0151999 43 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 374.768 -331.993 -335.788 788.49 - proton 1 1 60.8703 131.621 -315.96 27.8609 - proton 1 1 59.2736 -264.664 -210.895 -14.8057 - neutron 0 1 43.4794 101.274 254.001 93.9207 - proton 1 1 25.1318 -15.9696 87.5615 199.676 - proton 1 1 24.3254 -134.422 3.05209 167.812 - neutron 0 1 15.376 72.3746 43.8491 -148.22 - proton 1 1 13.0865 -123.155 82.2481 52.8856 - proton 1 1 10.9138 47.2205 2.60223 135.509 - neutron 0 1 10.6386 73.1739 113.744 42.5723 - neutron 0 1 10.6307 58.2399 26.9471 -126.378 - neutron 0 1 9.64264 2.21444 -134.861 4.51882 - proton 1 1 7.72284 54.73 -76.9865 75.0307 - neutron 0 1 7.61703 -40.7585 112.554 -6.46612 - neutron 0 1 6.8017 -36.3657 100.249 -38.1472 - neutron 0 1 6.26743 2.84481 83.6536 69.3584 - gamma 0 0 6.02718 -0.503253 1.24567 5.87554 - proton 1 1 5.98736 27.7387 -99.7958 -23.2973 - neutron 0 1 4.26315 -88.7736 10.2819 6.5355 - neutron 0 1 4.23877 16.0593 -36.3681 80.0164 - neutron 0 1 3.24989 -8.59319 -8.48297 77.277 - proton 1 1 3.1385 -6.67725 -63.3802 42.869 - gamma 0 0 2.01872 -1.95985 -0.413334 0.251788 - neutron 0 1 2.00773 -7.66486 -50.3294 34.4242 - neutron 0 1 1.96219 -42.6126 -7.99918 42.5587 - neutron 0 1 1.87457 15.9947 -55.62 -13.2915 - gamma 0 0 1.84874 -1.77443 0.490157 -0.170279 - neutron 0 1 1.36963 39.8832 6.90526 -30.6142 - neutron 0 1 1.26137 -27.0499 -14.0885 -37.9695 - neutron 0 1 1.02547 -16.374 36.9664 -17.1297 - neutron 0 1 0.86971 21.913 30.5993 -14.7837 - neutron 0 1 0.786368 26.9579 -25.5246 10.0037 - neutron 0 1 0.736704 -24.4304 13.9947 -24.3354 - neutron 0 1 0.414518 23.1725 15.5454 0.694505 - neutron 0 1 0.4057 -27.3109 3.69587 -1.72727 - neutron 0 1 0.374944 -18.672 18.7021 2.50911 - neutron 0 1 0.328818 -20.5108 6.24137 -12.5838 - gamma 0 0 0.103308 -0.0954208 0.0307985 0.0248772 - neutron 0 1 0.0812819 5.92991 -10.5875 -2.34248 - neutron 0 1 0.0496072 1.42741 -2.99958 9.06565 - deuteron 1 2 5.83204 27.5205 143.283 -24.9771 - Yb160[0.0] 70 160 1.25184 490.041 251.635 263.537 --0.00150879 0.00167725 0.0212584 33 - proton 1 1 999.994 -46.0604 51.2031 1694.63 - neutron 0 1 276.75 333.888 58.1783 694.1 - proton 1 1 123.037 -140.007 290.333 -376.997 - neutron 0 1 109.052 148.982 440.334 -26.9492 - neutron 0 1 94.2297 161.733 -130.406 377.87 - neutron 0 1 31.4362 34.9313 -180.387 -162.177 - neutron 0 1 24.6114 -104.583 -189.514 -0.749061 - neutron 0 1 19.149 181.615 -57.986 1.941 - neutron 0 1 10.4232 106.045 -91.6208 -7.4447 - neutron 0 1 9.42656 -30.8533 8.47043 129.534 - neutron 0 1 7.61566 -104.242 50.4056 -31.0124 - proton 1 1 6.13253 24.4822 38.662 -97.2185 - neutron 0 1 5.79676 -89.7393 52.5117 10.7631 - neutron 0 1 5.34175 15.2318 -6.6714 98.9438 - proton 1 1 5.18752 -77.935 55.8886 -23.7513 - neutron 0 1 3.93509 37.1859 68.4672 36.5991 - proton 1 1 3.4278 -4.98531 78.7576 -14.7159 - proton 1 1 3.13629 39.0392 -61.8593 -23.3361 - neutron 0 1 2.61865 -42.5403 -54.6764 -11.3342 - neutron 0 1 2.14793 -17.8963 -58.8872 -15.9024 - neutron 0 1 1.94088 44.24 -36.1758 19.6233 - neutron 0 1 1.78136 25.5064 -34.0718 39.2315 - neutron 0 1 1.30005 14.0297 21.3893 42.3122 - neutron 0 1 1.11585 9.42208 -35.5765 -27.2693 - neutron 0 1 1.08683 36.3932 3.32177 -26.6078 - neutron 0 1 0.506452 -30.2087 -5.97077 -1.93086 - neutron 0 1 0.246848 18.1953 -10.587 4.55691 - neutron 0 1 0.237655 2.4924 -9.16351 18.8801 - gamma 0 0 0.144984 0.0776904 -0.122063 -0.00922407 - neutron 0 1 0.0528968 -5.58854 -3.26552 7.58337 - alpha 2 4 7.4742 -65.9598 217.961 -62.5872 - deuteron 1 2 24.8918 273.991 110.857 81.4496 - Hf164[0.0] 72 164 6.60204 -839.006 -477.392 1041.23 -0 0 -0.0245185 27 - proton 1 1 1000 0 0 1696.04 - proton 1 1 370.78 477.4 -152.549 762.942 - proton 1 1 123.232 432.31 191.202 -151.609 - neutron 0 1 92.6613 -357.331 -193.927 -131.969 - proton 1 1 81.0195 96.8039 176.725 343.508 - neutron 0 1 56.596 183.642 -119.036 -248.315 - proton 1 1 35.3849 154.649 16.3923 208.49 - neutron 0 1 31.7302 34.6025 -228.42 85.2012 - neutron 0 1 17.931 -98.5961 145.746 -55.2559 - proton 1 1 10.4642 10.6562 -137.83 25.2033 - gamma 0 0 2.74946 0.0137597 0.75164 2.64469 - neutron 0 1 2.26951 7.62153 -39.0464 -51.8377 - neutron 0 1 2.17652 -63.08 -2.57269 10.44 - neutron 0 1 2.00714 52.8813 31.2847 0.738825 - neutron 0 1 1.2541 -32.0399 36.4782 0.992409 - neutron 0 1 0.91332 -30.1576 -10.5374 -26.3925 - neutron 0 1 0.791504 24.5458 18.1186 23.6048 - neutron 0 1 0.768878 -32.1876 -20.2329 0.0276634 - neutron 0 1 0.68903 7.71267 29.6908 -18.8208 - neutron 0 1 0.614803 4.15274 32.3932 9.43986 - gamma 0 0 0.582766 -0.149402 0.061499 0.559922 - neutron 0 1 0.533829 -1.52082 28.5944 13.5449 - neutron 0 1 0.381075 15.3656 21.5539 -3.94492 - neutron 0 1 0.231676 9.27014 1.0707 -18.6634 - neutron 0 1 0.0793129 -11.4858 2.41042 3.36348 - neutron 0 1 0.0147245 1.3552 -4.89647 -1.3629 - Re175[0.0] 75 175 5.06797 -886.437 176.576 913.513 -0 0 -0.0260088 32 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 203.496 -410.129 451.02 228.43 - proton 1 1 147.484 534.672 -54.7889 98.1668 - proton 1 1 105.655 -196.457 -408.913 60.1923 - neutron 0 1 65.3759 177.677 -295.889 -89.4677 - neutron 0 1 59.7242 105.834 -216.144 240.578 - neutron 0 1 54.8313 307.742 52.8908 -92.4071 - neutron 0 1 53.8396 223.784 41.9549 228.54 - neutron 0 1 21.0691 3.08139 73.8992 185.916 - neutron 0 1 11.8725 -86.783 82.8828 -89.7224 - neutron 0 1 10.3648 -79.5789 79.383 83.3651 - neutron 0 1 9.27135 -1.99885 129.323 27.9229 - neutron 0 1 7.40821 46.8126 41.2823 -100.4 - neutron 0 1 7.12203 85.1038 -70.5162 34.9106 - neutron 0 1 5.49397 -50.4888 88.3289 -1.72008 - neutron 0 1 5.04433 13.9654 2.39006 96.4555 - gamma 0 0 4.61501 0.348159 -4.28498 -1.67811 - neutron 0 1 4.37781 65.1989 37.263 51.051 - proton 1 1 2.27427 -41.6878 41.5199 -28.481 - neutron 0 1 2.1462 -38.6433 -35.0292 -36.2937 - proton 1 1 2.09106 35.6354 -51.5143 2.17576 - neutron 0 1 2.06512 41.7858 33.8298 31.534 - neutron 0 1 0.912959 -23.0285 24.5975 24.105 - neutron 0 1 0.662101 -10.3759 -30.1618 -15.0738 - neutron 0 1 0.518271 8.2136 -5.52139 29.601 - neutron 0 1 0.380056 -8.59498 14.3491 20.8459 - gamma 0 0 0.252124 0.127577 0.0908151 -0.197594 - gamma 0 0 0.158927 -0.140246 -0.0661582 0.0348127 - alpha 2 4 4.00071 166.675 35.2578 28.5845 - triton 1 3 12.414 -215.42 -17.5155 152.281 - deuteron 1 2 0.420041 22.4184 -6.75547 32.0566 - Hf165[0.0] 72 165 2.28672 -675.762 -33.1652 494.741 -0 0 -0.034343 30 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 318.999 481.545 -157.996 666.598 - neutron 0 1 148.514 93.9058 -220.971 -493.445 - neutron 0 1 91.0897 -11.523 -368.271 -209.071 - neutron 0 1 82.2267 225.198 293.458 -156.346 - proton 1 1 79.4967 -136.596 311.318 199.803 - neutron 0 1 19.8994 -79.6692 155.978 -84.3394 - neutron 0 1 12.8888 23.1755 81.6053 131.108 - neutron 0 1 9.10173 -58.0041 90.862 -74.6043 - neutron 0 1 8.12453 -80.8828 48.57 80.1998 - proton 1 1 6.29907 23.2943 51.4448 93.1181 - neutron 0 1 5.014 21.2529 93.4035 -16.4683 - neutron 0 1 3.98959 -38.8604 -64.8391 42.4105 - neutron 0 1 3.64662 -44.1087 -22.8624 -66.3138 - neutron 0 1 3.12728 34.2921 50.6324 46.3331 - neutron 0 1 2.82029 -17.7991 17.6319 68.4103 - neutron 0 1 2.47971 26.4061 59.0222 22.0214 - neutron 0 1 2.11609 10.2315 -42.8706 -45.1478 - neutron 0 1 2.07831 -50.246 2.3779 -37.1406 - gamma 0 0 1.94905 -0.131047 1.70386 -0.937271 - proton 1 1 1.79916 5.0356 55.3514 17.0382 - neutron 0 1 1.21685 -43.3415 -16.4284 -11.8208 - neutron 0 1 0.864418 17.4008 -34.0685 12.7142 - gamma 0 0 0.761128 0.238575 -0.249003 0.678524 - gamma 0 0 0.672759 0.133738 -0.514013 0.412927 - neutron 0 1 0.366038 -1.63358 -23.8244 10.8489 - neutron 0 1 0.25925 6.11883 6.12009 20.3061 - neutron 0 1 0.232115 8.20221 -1.21121 19.1699 - gamma 0 0 0.119324 0.105953 -0.0375088 -0.0400632 - Ir174[0.0] 77 174 7.52363 -413.745 -365.34 1460.55 -0 0 -0.0424028 28 - proton 1 1 1000 0 0 1696.04 - proton 1 1 361.467 65.3551 416.86 794.306 - proton 1 1 127.991 -470.538 -161.421 95.3928 - neutron 0 1 75.208 196.8 -266.889 -192.411 - proton 1 1 68.3426 -340.489 130.316 -1.89457 - neutron 0 1 39.9054 270.168 -19.4268 -56.6722 - neutron 0 1 26.1061 11.5585 -179.765 131.488 - neutron 0 1 25.4144 -43.8798 -63.9171 205.893 - neutron 0 1 22.9047 -55.8715 -154.069 129.254 - neutron 0 1 15.2426 109.285 -126.652 -29.854 - neutron 0 1 9.10091 -101.402 -82.8605 -6.03749 - neutron 0 1 7.93276 -92.9704 -76.6678 -21.1704 - neutron 0 1 7.78053 -57.8825 53.5037 92.0224 - neutron 0 1 7.66901 42.1609 -111.364 -17.043 - neutron 0 1 4.79021 66.2718 13.9582 -66.6152 - neutron 0 1 2.86558 55.2376 47.4053 9.7241 - neutron 0 1 2.7727 71.7448 7.21277 4.31447 - gamma 0 0 2.28801 -1.05725 -1.85726 0.817181 - neutron 0 1 1.94192 34.1094 49.6452 4.97873 - neutron 0 1 1.79707 53.4832 -21.4309 7.77276 - neutron 0 1 1.66568 -43.6305 32.5049 13.1382 - gamma 0 0 1.60811 -1.09041 -0.875842 -0.793677 - gamma 0 0 1.15084 -0.903048 0.318022 0.638596 - neutron 0 1 0.801943 28.7637 -7.88676 -24.8606 - neutron 0 1 0.300005 4.82153 1.15875 23.2217 - neutron 0 1 0.229505 -5.39711 -11.2955 16.5712 - triton 1 3 5.70875 -67.8121 142.162 -85.4327 - Os173[0.0] 76 173 2.09754 273.159 391.347 669.289 -0 0 0.0375754 12 - proton 1 1 1000 0 0 1696.04 - proton 1 1 568.495 431.754 -417.45 1014.55 - proton 1 1 402.414 -318.326 464.336 774.691 - gamma 0 0 2.02903 -0.0800697 -1.18501 -1.64509 - neutron 0 1 1.61851 35.8294 -41.7759 -3.87955 - gamma 0 0 1.14165 -0.853488 -0.562287 -0.508685 - neutron 0 1 1.10831 -24.1095 26.8544 27.9547 - gamma 0 0 1.03671 -0.619002 -0.540284 0.63222 - gamma 0 0 0.975895 -0.435356 0.389106 -0.781942 - gamma 0 0 0.96257 0.330035 0.64596 0.632734 - gamma 0 0 0.189612 -0.0124063 -0.033389 -0.186237 - Pt194[0.0] 78 194 0.0816841 -123.478 -30.6785 -115.422 -0 0 -0.0241656 42 - proton 1 1 1000 0 0 1696.04 - proton 1 1 205.682 -323.602 245.684 513.028 - neutron 0 1 205.528 -460.093 -121.7 -449.399 - proton 1 1 112.35 68.6716 244.192 398.883 - proton 1 1 86.3141 105.563 -19.6822 397.356 - proton 1 1 25.6845 -60.6915 -186.877 101.248 - proton 1 1 24.7708 56.9021 15.312 208.866 - neutron 0 1 22.8759 36.0793 156.939 132.584 - neutron 0 1 21.6207 -89.2319 -170.056 64.9152 - proton 1 1 10.1707 117.938 27.0282 67.4493 - neutron 0 1 8.08188 -69.0974 -46.4995 -91.1897 - neutron 0 1 6.68616 4.66719 72.2409 85.8391 - neutron 0 1 6.40228 -92.0495 56.5719 -19.9561 - neutron 0 1 4.94512 25.6564 -90.6617 -20.9568 - neutron 0 1 3.82492 10.7636 7.92996 83.8058 - gamma 0 0 3.67128 3.04776 2.04109 0.152976 - neutron 0 1 3.59303 76.1658 -3.78344 30.8081 - neutron 0 1 3.48654 0.000436851 -80.889 4.56098 - neutron 0 1 2.71109 -64.7001 -25.9055 -15.6411 - neutron 0 1 2.62064 -38.16 -44.9268 -38.1679 - neutron 0 1 2.51975 16.7399 19.894 -63.7596 - neutron 0 1 2.28967 -44.6132 -24.8941 -41.204 - gamma 0 0 1.46692 0.132048 -0.674066 -1.29617 - neutron 0 1 1.22351 14.8516 36.3999 -27.4793 - neutron 0 1 1.20969 15.5616 41.8482 16.769 - neutron 0 1 0.979603 -26.0991 9.56932 -32.696 - gamma 0 0 0.815514 0.031978 -0.170253 -0.796903 - gamma 0 0 0.805653 -0.225648 -0.244291 0.733813 - gamma 0 0 0.788566 -0.0488781 0.167046 -0.769118 - neutron 0 1 0.67718 -9.54208 -11.3761 32.4423 - proton 1 1 0.663891 30.7228 -17.1065 3.12117 - neutron 0 1 0.614697 18.9376 -28.2281 -0.128743 - neutron 0 1 0.519572 -18.1179 -20.0228 15.7304 - neutron 0 1 0.432435 20.2671 19.4533 -4.85836 - gamma 0 0 0.415529 -0.243576 0.286203 0.177267 - neutron 0 1 0.111741 -14.275 0.717289 -2.38722 - neutron 0 1 0.0985224 7.04205 -7.89879 8.55364 - neutron 0 1 0.00781862 1.92129 -3.31541 -0.0946903 - alpha 2 4 5.43159 161.132 26.9797 117.6 - alpha 2 4 5.61963 156.609 104.807 80.089 - alpha 2 4 2.26586 -25.1415 60.7842 -112.116 - Ho155[0.0] 67 155 0.947936 386.532 -243.931 254.226 -0 0 0.0172698 26 - proton 1 1 1000 0 0 1696.04 - proton 1 1 365.705 -671.642 -19.5973 607.053 - neutron 0 1 145.098 104.79 57.5602 528.599 - neutron 0 1 112.903 200.376 -358.646 -236.918 - neutron 0 1 104.797 -89.2479 177.372 410.466 - proton 1 1 38.5143 9.88655 83.4425 258.257 - neutron 0 1 26.2758 137.605 -71.3456 -161.372 - neutron 0 1 11.9843 -32.1061 -1.06014 147.078 - neutron 0 1 9.02972 -58.0892 94.6063 68.7376 - neutron 0 1 7.82982 -59.4816 61.6194 -86.2529 - neutron 0 1 7.0216 94.7119 43.2546 -49.0155 - gamma 0 0 3.34972 0.217454 2.29814 -2.42733 - neutron 0 1 2.43013 49.6038 6.19177 45.5365 - neutron 0 1 2.40774 11.0613 -25.261 -61.3985 - gamma 0 0 2.11089 1.01574 -1.3272 -1.28944 - gamma 0 0 1.94887 -1.61243 0.984057 0.479374 - neutron 0 1 1.93607 48.4491 -19.5032 -30.2357 - neutron 0 1 1.79545 -38.0019 34.3127 27.4883 - neutron 0 1 1.54162 -28.7355 40.9721 19.8707 - neutron 0 1 0.963324 -15.9767 25.0775 30.4467 - neutron 0 1 0.884703 -20.0975 -34.6879 -7.48957 - neutron 0 1 0.71139 10.2531 12.5242 32.792 - gamma 0 0 0.124852 -8.77343e-05 -0.00753198 -0.124625 - neutron 0 1 0.0731471 0.841546 -7.86283 -8.65599 - neutron 0 1 0.011888 -2.5944 2.12732 3.32908 - Pt178[0.0] 78 178 0.477299 348.775 -103.046 161.084 -0 0 0.031297 27 - proton 1 1 1000 0 0 1696.04 - proton 1 1 140.971 178.453 -277.119 419.25 - proton 1 1 133.961 -147.879 362.677 -340.481 - neutron 0 1 133.815 473.724 -82.8891 -195.134 - neutron 0 1 132.645 -285.734 -2.53862 430.352 - proton 1 1 105.367 336.02 170.614 258.477 - neutron 0 1 69.3741 29.8241 -66.9198 360.289 - proton 1 1 47.3076 -88.1721 -120.299 262.234 - proton 1 1 26.4819 91.7179 -93.39 182.378 - neutron 0 1 11.5316 135.678 -45.324 36.6001 - neutron 0 1 10.142 -64.8243 107.781 -57.8115 - neutron 0 1 9.65135 -111.801 -67.4188 34.4182 - neutron 0 1 7.01511 -59.8289 -94.5471 26.6997 - neutron 0 1 5.79911 56.2579 -29.6029 83.0039 - neutron 0 1 5.65012 3.24421 14.0342 102.185 - neutron 0 1 3.94102 -82.5898 -18.6087 -15.9335 - gamma 0 0 3.44662 -0.822866 0.865727 3.23305 - neutron 0 1 2.28498 -18.9718 46.4731 42.1821 - gamma 0 0 1.90783 0.651463 -1.08472 -1.42786 - gamma 0 0 1.82515 -0.0910014 1.17551 -1.39322 - neutron 0 1 1.52095 48.7824 21.9238 -0.0146152 - neutron 0 1 1.34697 35.6809 35.1826 -4.69047 - neutron 0 1 0.671927 -7.9795 24.259 -24.7168 - gamma 0 0 0.179345 0.052531 0.0621588 0.159817 - neutron 0 1 0.155487 8.49028 14.4267 -3.46261 - neutron 0 1 0.029671 -0.429553 -3.5615 6.54888 - Re177[0.0] 75 177 0.909543 -529.454 103.83 93.0928 -0.000142025 -0.0011493 0.0268 29 - proton 1 1 999.992 25.4807 -17.7094 1695.75 - neutron 0 1 263.199 393.653 257.056 585.507 - proton 1 1 135.251 28.1535 293.306 430.438 - neutron 0 1 105.597 -375.574 -189.088 181.027 - proton 1 1 85.0642 -251.747 -96.2459 306.958 - proton 1 1 63.6042 -142.621 -296.678 -122.651 - proton 1 1 61.3587 298.121 112.018 132.223 - neutron 0 1 24.4968 -142.509 -76.7945 142.922 - proton 1 1 13.4961 85.4757 -80.3652 108.368 - proton 1 1 12.0957 12.8511 -125.429 83.3477 - neutron 0 1 11.8677 -102.567 -101.995 -38.9735 - proton 1 1 11.559 -78.9034 -87.6922 88.9326 - neutron 0 1 10.157 125.518 -41.6673 41.2133 - neutron 0 1 9.0762 32.4442 49.0368 116.964 - neutron 0 1 4.02274 59.1988 0.82755 63.7986 - neutron 0 1 3.76527 -79.8256 -20.8197 16.8534 - neutron 0 1 3.39591 -51.6593 49.3624 35.8828 - neutron 0 1 2.92498 47.2842 50.5371 -26.743 - neutron 0 1 2.51735 -53.6834 -21.1048 -37.5426 - neutron 0 1 1.83681 -14.9872 -53.5135 19.1485 - gamma 0 0 1.8079 -0.979861 1.3378 0.720195 - neutron 0 1 1.50706 -7.11647 35.1099 39.3813 - neutron 0 1 1.26703 0.635486 -30.6098 -38.0152 - neutron 0 1 0.829978 -28.3481 22.6055 15.6748 - neutron 0 1 0.481703 -5.95145 28.7007 -6.8018 - gamma 0 0 0.47674 0.429392 -0.191408 -0.0791657 - neutron 0 1 0.44937 15.9308 11.8133 -21.2434 - neutron 0 1 0.0873812 6.6832 -7.0915 -8.32188 - Ta173[0.0] 73 173 1.01208 255.575 299.865 -413.245 -0 0 -0.0489119 8 - proton 1 1 1000 0 0 1696.04 - pi0 0 0 467.139 260.574 -63.566 521.905 - proton 1 1 270.823 37.1376 30.5996 761.079 - neutron 0 1 110.511 -224.912 25.8399 410.639 - gamma 0 0 1.01642 -0.330701 0.931723 -0.235863 - gamma 0 0 0.409352 -0.0616194 -0.331692 0.231847 - neutron 0 1 0.256063 9.37775 8.42898 -17.9514 - Au195[0.0] 79 195 0.019572 -81.7855 -1.90233 20.3677 --0.00154522 0.000579003 0.0180445 15 - proton 1 1 999.988 -87.493 32.7841 1693.45 - pi0 0 0 484.393 -208.382 129.042 552.562 - neutron 0 1 141.507 -85.566 -88.9422 520.29 - pi- -1 0 16.7475 12.1902 66.7308 18.8085 - neutron 0 1 6.87185 -4.27784 -75.145 -85.4123 - neutron 0 1 2.60028 -62.9752 25.8807 -16.0417 - neutron 0 1 2.20957 -26.2472 20.9331 55.044 - gamma 0 0 1.79055 1.52795 -0.451272 -0.8172 - neutron 0 1 1.75574 30.2565 9.90907 -47.8405 - neutron 0 1 1.38158 13.629 -32.4953 -36.829 - neutron 0 1 0.816302 -25.8553 22.2149 19.303 - neutron 0 1 0.58177 -13.2976 25.2155 -16.7605 - gamma 0 0 0.412918 -0.266554 0.302786 0.0881526 - gamma 0 0 0.168416 -0.0766106 0.0886412 -0.120985 - Tl190[0.0] 81 190 1.74946 281.85 -70.5004 731.174 --0.000470108 -0.000395645 0.0290492 24 - proton 1 1 999.996 -29.5816 -27.6474 1695.55 - proton 1 1 213.847 -202.175 260.969 581.416 - proton 1 1 153.177 432.988 -302.049 -179.428 - proton 1 1 149.001 42.2728 150.907 -526.543 - proton 1 1 96.0254 -293.885 -308.592 88.4268 - proton 1 1 78.5851 266.874 155.544 241.306 - proton 1 1 54.9273 -98.1712 -290.532 -109.747 - neutron 0 1 48.67 193.998 -179.647 154.654 - proton 1 1 13.6749 126.949 -3.50406 -98.591 - neutron 0 1 13.3463 -34.9908 47.9996 -147.408 - neutron 0 1 12.8204 -34.4771 25.7844 149.673 - neutron 0 1 5.64054 26.7068 -21.9917 -97.13 - neutron 0 1 5.12456 -73.78 -30.1199 -57.4916 - neutron 0 1 5.04705 -68.8806 57.5201 38.1634 - neutron 0 1 4.42306 -46.9498 -77.9449 -7.16791 - neutron 0 1 2.45151 38.2635 -55.5625 7.83725 - neutron 0 1 1.6931 26.9592 33.8569 -36.2123 - gamma 0 0 1.16717 0.414747 -1.08421 -0.121527 - neutron 0 1 0.870743 30.4268 12.1541 -23.7379 - gamma 0 0 0.307657 -0.110496 0.287106 0.00375806 - neutron 0 1 0.267538 16.0047 13.0253 8.77509 - neutron 0 1 0.258569 9.02 19.8184 3.43824 - neutron 0 1 0.0848137 3.77072 -0.692918 12.0285 - Ta178[0.0] 73 178 9.76843 -390.809 466.207 1693.41 -0 0 -0.0119843 36 - proton 1 1 1000 0 0 1696.04 - proton 1 1 228.216 -233.884 347.547 552.132 - neutron 0 1 181.334 335.295 -498.412 113.116 - proton 1 1 99.026 -13.6667 401.786 -184.428 - neutron 0 1 82.4216 216.427 -337.403 -31.5137 - proton 1 1 67.9246 59.7768 -298.171 198.993 - neutron 0 1 18.1502 -7.81074 79.3618 167.561 - proton 1 1 15.917 -93.1855 -45.6677 139.116 - neutron 0 1 12.8441 139.873 9.5358 68.156 - neutron 0 1 9.45156 8.6071 58.0623 120.02 - neutron 0 1 9.14737 -112.722 -62.2903 -26.2006 - neutron 0 1 9.11023 55.8232 -90.1092 77.2426 - neutron 0 1 7.62114 93.1068 37.7156 65.4818 - proton 1 1 4.57831 -22.6117 -32.7462 83.8378 - proton 1 1 4.2015 -40.5655 78.715 -7.76768 - neutron 0 1 4.0743 -4.77773 79.998 35.3587 - gamma 0 0 3.35223 2.95899 0.32206 -1.54212 - neutron 0 1 2.7974 14.1688 37.0505 60.7536 - neutron 0 1 2.48792 -40.6455 -3.73727 54.9116 - neutron 0 1 2.26812 -41.3401 46.2814 20.4024 - neutron 0 1 1.89871 55.2967 22.1276 -4.91699 - neutron 0 1 1.70687 20.1711 -51.2414 -13.3337 - neutron 0 1 1.4346 -33.015 -2.96369 39.9886 - neutron 0 1 1.36778 31.8323 19.8025 -34.1567 - neutron 0 1 1.11727 24.7718 30.6935 23.3456 - neutron 0 1 0.86923 1.03452 -18.174 36.0941 - neutron 0 1 0.828217 -8.84424 28.3314 -26.0024 - gamma 0 0 0.791958 -0.158103 -0.529615 0.567194 - neutron 0 1 0.451291 -15.3612 -24.4034 -4.09196 - gamma 0 0 0.430298 0.0534224 0.0942639 0.416433 - neutron 0 1 0.136202 15.2407 0.545778 -4.83559 - neutron 0 1 0.0861392 -10.2373 7.2638 2.07609 - neutron 0 1 0.046095 -0.929142 0.671017 9.23618 - deuteron 1 2 8.15658 -86.3567 36.1062 -147.995 - alpha 2 4 1.94699 24.1972 34.3416 112.931 - Lu163[0.0] 71 163 0.537087 -332.526 109.497 201.085 -2.65355e-05 -3.76888e-06 0.0322844 37 - proton 1 1 999.998 37.6067 -5.34134 1695.61 - pi+ 1 0 237.515 181.085 -199.633 223.76 - neutron 0 1 185.841 207.003 14.3693 583.695 - neutron 0 1 31.9628 -139.883 199.565 41.1137 - neutron 0 1 19.5252 179.85 26.2662 63.5274 - neutron 0 1 19.1356 -159.334 -16.3211 -103.299 - neutron 0 1 16.8256 -1.27361 -156.539 85.9921 - proton 1 1 14.3118 -19.7911 -21.4026 161.901 - neutron 0 1 12.7294 -33.5098 -28.6934 -148.782 - neutron 0 1 12.0282 -81.4142 126.744 -7.40599 - neutron 0 1 10.5185 -91.3888 74.5638 -77.2306 - proton 1 1 10.5161 58.3416 128.11 5.33907 - neutron 0 1 8.98334 -105.821 -63.312 -41.8938 - neutron 0 1 7.97358 12.4805 70.3499 -99.7102 - neutron 0 1 7.88735 78.0221 -10.8349 93.1597 - neutron 0 1 4.85613 62.2204 -70.1569 -18.8555 - neutron 0 1 4.66851 -71.7439 38.7587 46.3155 - proton 1 1 4.37827 -39.7329 73.7864 -34.8147 - neutron 0 1 3.72032 75.8858 35.0293 -4.37013 - neutron 0 1 3.46243 -9.03056 24.9625 76.2475 - neutron 0 1 2.917 -2.83063 -27.0961 -68.9038 - neutron 0 1 2.77287 34.6373 57.2149 27.2945 - neutron 0 1 2.42 -2.29212 41.3137 -53.3037 - proton 1 1 1.97755 21.1922 -16.1528 54.8166 - neutron 0 1 1.95359 -0.695163 48.6388 -36.1754 - proton 1 1 1.34597 6.88321 -49.5475 -5.02549 - neutron 0 1 1.18361 -17.7943 -25.3477 -35.5868 - neutron 0 1 1.13717 -14.1454 -14.3091 41.6335 - neutron 0 1 0.540587 -11.4588 -27.5884 11.1222 - neutron 0 1 0.474873 21.9075 18.0253 9.36608 - neutron 0 1 0.112139 -4.45042 12.2041 6.48012 - neutron 0 1 0.0994244 9.24451 -9.93207 -1.65361 - neutron 0 1 0.0936509 6.68644 6.25972 9.5968 - gamma 0 0 0.0778019 0.0457064 0.0480301 0.0407085 - alpha 2 4 0.931055 -67.6165 20.3745 44.211 - alpha 2 4 4.2917 -145.557 -79.8076 66.7543 - Yb159[0.0] 70 159 2.23389 101.885 -205.254 780.257 -0 0 -0.0317042 20 - proton 1 1 1000 0 0 1696.04 - proton 1 1 516.93 615.417 145.543 915.061 - proton 1 1 91.6815 175.673 -366.411 -123.821 - neutron 0 1 73.3962 230.316 -187.154 -235.023 - pi0 0 0 40.7772 -99.8853 -48.0221 -19.6856 - neutron 0 1 15.6083 -154.366 8.11358 -75.3589 - neutron 0 1 10.882 -44.7109 72.489 -115.384 - neutron 0 1 3.81142 58.8578 52.2437 31.3535 - gamma 0 0 3.17307 -2.44521 -1.10491 -1.69367 - neutron 0 1 2.22552 -54.9565 23.254 25.0205 - neutron 0 1 2.17566 -16.9263 -9.41302 60.9752 - gamma 0 0 2.01846 0.26359 1.26091 -1.55396 - neutron 0 1 1.79177 12.8124 -36.2829 43.4692 - neutron 0 1 1.27899 15.5317 -17.6186 -43.0509 - neutron 0 1 1.11401 -13.3771 1.69394 43.7355 - neutron 0 1 0.809199 -16.4431 2.33183 -35.2907 - neutron 0 1 0.617901 -2.52277 -21.0727 -26.666 - gamma 0 0 0.501526 -0.0686055 -0.341818 0.360531 - gamma 0 0 0.292774 -0.0522798 -0.192647 -0.214174 - Pt185[0.0] 78 185 6.41884 -703.119 380.686 1253.81 -0 0 -0.0118597 34 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 163.521 531.777 -200.472 105.072 - proton 1 1 127.844 25.1402 -57.2132 -502.338 - neutron 0 1 110.422 -201.726 330.782 263.78 - proton 1 1 89.2349 -24.4888 72.1824 411.833 - neutron 0 1 86.5181 208.999 -351.822 -51.0352 - proton 1 1 67.1559 169.899 15.5013 318.473 - proton 1 1 47.7434 215.034 50.9056 207.464 - neutron 0 1 18.3792 -163.621 0.60485 -90.0145 - neutron 0 1 10.9969 -4.0089 81.1939 119.067 - neutron 0 1 8.14286 -62.4714 -99.5561 39.4172 - neutron 0 1 7.60821 45.7991 81.1176 -75.3464 - proton 1 1 7.43393 112.058 31.1251 21.9014 - neutron 0 1 5.7377 22.8278 -76.7065 -66.4065 - neutron 0 1 4.83151 48.8095 -8.79455 81.5026 - neutron 0 1 3.68866 -81.2889 -11.065 14.6545 - neutron 0 1 3.08614 -38.8572 -24.1741 60.9469 - neutron 0 1 2.95166 2.72972 73.8815 -9.45166 - gamma 0 0 2.27003 -2.14852 -0.0554348 0.730631 - neutron 0 1 2.16399 -57.8841 25.9843 6.73419 - neutron 0 1 2.07063 11.1682 -18.8523 58.4392 - gamma 0 0 0.905248 0.703879 0.464288 0.32934 - neutron 0 1 0.657767 -11.1605 32.7682 6.1766 - neutron 0 1 0.538617 -4.52409 0.201536 31.4947 - gamma 0 0 0.47496 0.166478 0.0518592 0.441795 - gamma 0 0 0.234072 -0.189247 -0.101997 -0.092583 - neutron 0 1 0.150952 -3.51866 3.96686 -15.9864 - neutron 0 1 0.0944737 1.89085 -0.255027 -13.187 - neutron 0 1 0.0790516 11.4125 -3.66184 -2.21365 - alpha 2 4 11.2632 91.9608 -110.529 251.831 - alpha 2 4 9.20651 103.089 230.752 -69.5992 - deuteron 1 2 17.8623 74.8655 68.7717 238.726 - deuteron 1 2 0.0805064 11.7665 0.630918 12.7732 - Tm162[0.0] 69 162 3.9921 -1034.21 -137.626 339.921 -1.78988e-05 -9.4892e-05 -0.0121485 33 - proton 1 1 999.999 4.5966 -24.3693 1695.86 - neutron 0 1 365.273 -248.93 415.762 764.851 - neutron 0 1 120.889 -174.419 67.0935 454.815 - neutron 0 1 47.6945 -74.6097 -275.046 103.356 - pi- -1 0 26.373 -71.2192 -54.6117 1.63605 - proton 1 1 19.0359 51.6039 69.2949 169.172 - neutron 0 1 16.7543 174.697 31.4761 -15.9498 - proton 1 1 10.3834 91.7367 -105.502 6.81437 - neutron 0 1 8.92901 39.5804 31.1057 -119.684 - neutron 0 1 8.12406 -81.7901 -31.8006 87.3572 - proton 1 1 8.12385 -44.5069 -41.2628 107.83 - neutron 0 1 6.76456 -66.8579 66.6792 -61.9773 - neutron 0 1 6.02069 71.2133 -29.6492 -73.4813 - neutron 0 1 4.51727 39.5911 34.896 -75.6556 - neutron 0 1 4.18527 34.5608 64.4852 50.2932 - proton 1 1 3.74449 30.6424 70.327 -33.9984 - neutron 0 1 3.52451 12.9741 78.8562 -15.7737 - neutron 0 1 3.16352 71.5788 26.2453 -11.9303 - neutron 0 1 2.81456 -36.9322 37.0591 50.5913 - gamma 0 0 2.58851 2.39063 0.826269 0.550051 - neutron 0 1 2.50494 55.98 36.4062 15.9443 - gamma 0 0 1.25049 -1.24398 -0.125916 -0.0196296 - neutron 0 1 0.918028 1.65758 -41.0994 5.83321 - gamma 0 0 0.810011 -0.164765 -0.724711 0.322124 - neutron 0 1 0.802585 -2.37438 30.765 -23.5941 - gamma 0 0 0.75222 -0.509368 -0.433318 -0.344405 - neutron 0 1 0.69738 29.7944 13.2437 -15.7434 - neutron 0 1 0.634209 -23.9758 -5.96859 -24.1185 - gamma 0 0 0.350274 -0.0100621 0.349502 -0.0209456 - neutron 0 1 0.318955 -15.1959 -4.3758 18.6922 - neutron 0 1 0.13225 8.28777 12.0005 5.98623 - gamma 0 0 0.0624654 -0.0279216 -0.00913505 -0.0551259 - Ir174[0.0] 77 174 1.21388 131.077 -520.637 324.159 -0 0 -0.031459 40 - proton 1 1 1000 0 0 1696.04 - neutron 0 1 129.716 464.699 -47.2408 205.921 - proton 1 1 106.693 1.12815 -195.718 -416.282 - proton 1 1 95.6383 270.043 -71.9327 332.443 - proton 1 1 89.0055 -281.616 296.046 89.4092 - neutron 0 1 48.2201 273.817 44.0767 -126.565 - proton 1 1 27.8683 -112.885 195.003 -47.9964 - proton 1 1 26.6507 220.545 -45.5759 2.0791 - proton 1 1 21.8832 -44.1094 -187.149 67.6266 - neutron 0 1 15.5105 135.753 30.5583 100.122 - neutron 0 1 14.2444 157.28 39.6595 -25.6933 - neutron 0 1 13.7882 -138.377 -9.21456 82.8671 - neutron 0 1 13.3956 23.996 -155.885 -21.8053 - neutron 0 1 11.7937 -41.0722 -5.07578 -143.486 - proton 1 1 11.5507 -9.79291 -146.186 18.5129 - neutron 0 1 9.43153 121.355 33.281 44.4666 - neutron 0 1 9.32746 35.9666 -38.4197 121.839 - neutron 0 1 8.87966 -33.9687 120.963 -31.2893 - neutron 0 1 7.14418 -46.4063 -57.0532 -89.818 - neutron 0 1 6.71152 -105.559 37.0971 11.7496 - neutron 0 1 6.44417 47.5671 64.433 75.7412 - neutron 0 1 5.76391 65.938 -78.6867 18.0266 - neutron 0 1 5.72945 56.4622 -87.2314 1.38045 - neutron 0 1 3.60119 4.66457 -40.9293 71.2959 - proton 1 1 3.54876 34.6311 65.8312 33.7482 - neutron 0 1 3.03856 -38.2148 -62.1205 19.9941 - neutron 0 1 2.64606 59.4671 37.7262 4.43724 - neutron 0 1 1.87277 -36.9929 -36.2667 -28.9645 - neutron 0 1 1.80762 -28.1324 18.5916 -47.5705 - neutron 0 1 1.14329 22.1366 33.8912 22.6068 - neutron 0 1 1.10271 9.37945 -23.7452 -37.7033 - neutron 0 1 0.675933 7.66698 5.84368 -34.3175 - neutron 0 1 0.391543 -19.4319 -12.8737 13.8774 - neutron 0 1 0.252492 -19.2381 4.19738 9.31696 - neutron 0 1 0.159154 17.075 2.68295 0.586118 - gamma 0 0 0.13845 0.00052307 -0.0143693 -0.137701 - neutron 0 1 0.0982305 -4.65744 -8.34814 9.65476 - deuteron 1 2 8.38135 -135.453 -102.587 51.3718 - triton 1 3 3.20876 71.2046 -104.172 -46.0097 - Yb158[0.0] 70 158 10.754 -1004.87 486.538 1384.6 --5.99576e-05 0.000269894 -0.0242535 34 - proton 1 1 1000 -4.22127 19.0017 1695.93 - neutron 0 1 184.998 -395.332 73.6779 469.195 - proton 1 1 147.35 235.264 4.21866 492.802 - proton 1 1 140.017 80.3826 -450.916 269.379 - proton 1 1 103.063 -196.912 -368.776 171.038 - proton 1 1 89.1053 -82.1308 328.233 246.308 - neutron 0 1 51.6317 -246.774 170.157 -99.1863 - neutron 0 1 15.097 122.192 13.8707 -116.077 - neutron 0 1 10.2763 -113.862 55.9392 -57.6398 - neutron 0 1 9.40034 3.80316 48.3621 -124.095 - proton 1 1 3.33847 16.1935 -37.2926 -67.9924 - neutron 0 1 3.19537 25.2823 72.8437 8.32656 - neutron 0 1 2.73224 0.926659 67.5156 -24.1349 - neutron 0 1 2.51884 -21.5555 -44.1017 -48.2699 - proton 1 1 2.17733 -38.2342 47.3511 19.6629 - neutron 0 1 2.08427 45.1456 41.8 11.6449 - neutron 0 1 1.7004 -32.8737 9.71357 -44.9793 - neutron 0 1 1.51248 -36.5736 16.1728 -35.2882 - neutron 0 1 1.48113 49.0311 -13.5911 -14.0239 - neutron 0 1 1.47778 0.807009 40.2695 34.0125 - neutron 0 1 1.13842 40.9915 14.7274 -15.5993 - neutron 0 1 1.00194 -15.443 -25.139 31.8327 - gamma 0 0 0.901714 0.29811 -0.102801 -0.844779 - neutron 0 1 0.841211 16.0585 -33.7857 13.4947 - neutron 0 1 0.820586 -20.1927 25.3569 -22.1798 - neutron 0 1 0.704775 -3.20733 36.2274 1.46577 - neutron 0 1 0.660701 -18.399 -28.6763 -9.00706 - neutron 0 1 0.542271 -6.85843 16.8479 26.2374 - neutron 0 1 0.431081 21.1164 11.0666 -15.5522 - gamma 0 0 0.0889546 -0.0706365 -0.00551115 -0.0537869 - deuteron 1 2 5.50301 -55.667 -60.7463 117.832 - alpha 2 4 3.39718 154.476 -36.3224 -12.4395 - triton 1 3 2.01323 51.8891 85.876 -35.3301 - Yb162[0.0] 70 162 1.50162 416.012 -61.7661 525.387 --3.32223e-05 -1.92545e-07 0.0336057 47 - proton 1 1 999.999 -23.1851 -0.134372 1695.88 - proton 1 1 105.213 272.781 298.66 211.897 - proton 1 1 54.4049 47.6401 45.8238 317.307 - proton 1 1 41.9823 32.7747 -265.614 94.4404 - proton 1 1 40.5914 227.615 152.58 52.2475 - pi0 0 0 39.6415 -36.7791 -52.7743 -90.1941 - proton 1 1 30.8289 -232.871 -16.923 65.4746 - neutron 0 1 30.7884 -183.065 51.8613 150.336 - proton 1 1 26.955 -146.216 156.461 -73.8231 - proton 1 1 21.3528 -38.221 -69.7185 184.943 - neutron 0 1 15.0844 90.9779 -34.5749 -138.205 - neutron 0 1 13.6569 131.722 -92.0304 -5.42294 - neutron 0 1 12.2577 -113.423 77.1678 66.0633 - neutron 0 1 11.9641 15.6076 49.8286 141.063 - neutron 0 1 10.7812 -52.2332 -96.4919 -91.3046 - neutron 0 1 10.1541 -50.2471 -94.3764 88.0474 - neutron 0 1 9.29535 -37.6871 -101.136 -76.8425 - neutron 0 1 9.21702 24.8418 -116.784 56.1185 - neutron 0 1 8.8905 -96.6583 71.8128 47.8075 - proton 1 1 8.5111 71.093 42.9262 95.6401 - neutron 0 1 8.32198 -15.4303 -10.8659 123.9 - neutron 0 1 7.16955 -78.4318 -85.067 11.6614 - proton 1 1 6.52567 88.4879 -39.5915 53.7651 - neutron 0 1 5.21378 42.6898 58.0376 68.0718 - neutron 0 1 4.83621 24.0475 -89.2951 -23.6508 - neutron 0 1 4.46688 67.5534 2.8869 61.984 - neutron 0 1 4.35818 -60.8412 1.66046 67.1132 - neutron 0 1 4.05408 42.0873 -31.9155 69.6035 - neutron 0 1 3.82318 -41.6779 -11.1722 73.0549 - neutron 0 1 3.78594 54.3441 64.0573 8.48452 - neutron 0 1 3.29303 24.4827 -27.4691 -69.6056 - gamma 0 0 2.5727 1.15332 -2.2111 0.632217 - gamma 0 0 2.53147 -0.370082 -1.61793 -1.91146 - neutron 0 1 2.04874 24.047 0.522712 -57.2321 - gamma 0 0 1.87016 1.32871 0.0958413 1.31257 - neutron 0 1 1.78282 -1.15789 17.3143 55.2468 - proton 1 1 1.56368 39.699 4.76317 36.5796 - neutron 0 1 0.918865 -40.5417 8.69169 -2.88692 - neutron 0 1 0.837855 -17.4537 24.1203 26.2434 - neutron 0 1 0.626183 1.48557 25.5668 -22.8299 - neutron 0 1 0.44598 8.61721 -22.0008 -16.7321 - neutron 0 1 0.432131 -14.9878 -23.7848 -4.67613 - proton 1 1 0.414701 26.7498 -4.96923 -6.17488 - neutron 0 1 0.161618 -13.1569 -7.32411 8.77385 - neutron 0 1 0.149446 -11.5816 -4.59585 -11.2069 - deuteron 1 2 4.38429 18.9666 73.2411 103.642 - Er156[0.0] 68 156 0.0769138 -120.945 74.0923 47.1243 -0.000665826 -0.00088273 0.0234175 43 - proton 1 1 999.998 23.1386 -30.6764 1695.6 - proton 1 1 159.588 329.18 -362.547 -291.793 - proton 1 1 145.078 -52.7705 306.51 443.351 - neutron 0 1 97.6551 319.372 -269.855 -134.993 - neutron 0 1 45.4769 -97.5552 -271.874 -63.9766 - proton 1 1 39.1304 10.8346 151.735 227.641 - neutron 0 1 27.9844 -42.8713 -53.578 -220.592 - neutron 0 1 20.2663 -138.665 -67.3661 121.357 - proton 1 1 20.1589 -97.5755 -148.565 -81.5036 - proton 1 1 19.2354 -72.4011 154.056 86.5509 - neutron 0 1 18.9081 -118.192 145.15 29.1624 - neutron 0 1 18.1531 128.428 93.1983 -96.2382 - neutron 0 1 17.9521 -140.747 11.5472 118.801 - proton 1 1 17.1995 -55.2587 -85.1829 149.204 - neutron 0 1 15.0488 158.51 -14.5704 56.28 - proton 1 1 14.5097 -162.962 -24.9304 16.1394 - proton 1 1 10.9093 -0.050094 1.59619 143.486 - neutron 0 1 8.38531 119.094 -25.5963 -31.4447 - neutron 0 1 6.87777 -109.071 -31.0847 10.4313 - neutron 0 1 6.33105 -35.307 -83.3994 -61.1139 - neutron 0 1 5.97593 60.3089 -68.4084 54.2991 - neutron 0 1 5.032 7.93021 73.9599 -62.8343 - neutron 0 1 4.349 40.0258 -43.7503 -68.3746 - neutron 0 1 4.22924 44.3233 13.8085 -76.223 - neutron 0 1 4.10485 81.6794 -13.2613 29.7156 - neutron 0 1 2.65331 36.7572 37.7266 47.1018 - neutron 0 1 2.09295 53.8578 20.0353 -25.2038 - neutron 0 1 1.97739 -58.086 -12.2808 -13.9604 - gamma 0 0 1.90957 -1.37118 0.888317 -0.988546 - gamma 0 0 1.8484 1.76421 -0.515165 0.196832 - gamma 0 0 1.70917 0.368536 0.626659 1.54685 - gamma 0 0 1.47817 -0.871968 -1.19356 0.00757468 - neutron 0 1 1.37517 -25.8769 20.8093 38.5145 - neutron 0 1 1.34458 6.55217 19.7002 -45.7977 - proton 1 1 1.32815 19.3911 -39.4593 -23.6864 - proton 1 1 1.16174 -3.79997 40.7574 -22.4901 - neutron 0 1 0.824673 30.3847 -24.9973 -1.5003 - gamma 0 0 0.709095 -0.231434 0.113063 -0.660659 - neutron 0 1 0.49927 26.2311 14.4818 6.37576 - neutron 0 1 0.423526 25.7905 -0.830103 11.4106 - gamma 0 0 0.12532 0.118398 0.0036029 0.0409154 - alpha 2 4 9.0928 68.1002 -203.188 -148.138 - Er160[0.0] 68 160 10.3909 -332.202 709.054 1575.5 diff --git a/environments/g4py/tests/g4pytest/MedicalBeam/CMakeLists.txt b/environments/g4py/tests/g4pytest/MedicalBeam/CMakeLists.txt deleted file mode 100644 index beea193829..0000000000 --- a/environments/g4py/tests/g4pytest/MedicalBeam/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -# - build library -set(_TARGET _MedicalBeam) -g4pytest_add_module(${_TARGET} MedicalBeam.cc pyMedicalBeam.cc) -target_link_libraries(${_TARGET} PRIVATE G4run G4particles) \ No newline at end of file diff --git a/environments/g4py/tests/g4pytest/MedicalBeam/MedicalBeam.cc b/environments/g4py/tests/g4pytest/MedicalBeam/MedicalBeam.cc deleted file mode 100644 index d8627a1a06..0000000000 --- a/environments/g4py/tests/g4pytest/MedicalBeam/MedicalBeam.cc +++ /dev/null @@ -1,136 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// MedicalBeam.cc -// -// 2005 Q -// ==================================================================== -#include "MedicalBeam.hh" -#include "Randomize.hh" -#include "G4Event.hh" -#include "G4ParticleTable.hh" -#include "G4PrimaryVertex.hh" - -using namespace CLHEP; - -#include - -// ==================================================================== -// -// class description -// -// ==================================================================== - -/////////////////////////////////// -MedicalBeam::MedicalBeam() - : particle(0), - kineticE(1.*MeV), - sourcePosition(G4ThreeVector()), - SSD(1.*m), - fieldShape(MedicalBeam::SQUARE), - fieldR(10.*cm) -/////////////////////////////////// -{ - fieldXY[0]= fieldXY[1]= 10.*cm; -} - - -/////////////////////////// -MedicalBeam::~MedicalBeam() -/////////////////////////// -{ -} - - -//////////////////////////////////////////////////////// -G4ThreeVector MedicalBeam::GenerateBeamDirection() const -//////////////////////////////////////////////////////// -{ - // uniform distribution in a limitted solid angle - G4double dr; - if(fieldShape == MedicalBeam::SQUARE) { - dr= std::sqrt(sqr(fieldXY[0]/2.)+sqr(fieldXY[1]/2.)); - } else { - dr= fieldR; - } - - G4double sin0= dr/SSD; - G4double cos0= std::sqrt(1.-sqr(sin0)); - - G4double x= DBL_MAX; - G4double y= DBL_MAX; - - G4double xmax, ymax; - if(fieldShape == MedicalBeam::SQUARE) { - xmax= fieldXY[0]/2./SSD; - ymax= fieldXY[1]/2./SSD; - } else { - xmax= ymax= DBL_MAX-1.; - } - - G4double dcos{0.0}; - G4double dsin{0.0}; - G4double dphi{0.0}; - - while(! (std::abs(x)< xmax && std::abs(y)< ymax) ) { - dcos= RandFlat::shoot(cos0, 1.); - dsin= std::sqrt(1.-sqr(dcos)); - dphi= RandFlat::shoot(0., twopi); - - x= std::cos(dphi)*dsin*dcos; - y= std::sin(dphi)*dsin*dcos; - } - - G4double z= dcos; - - return G4ThreeVector(x,y,z); -} - - -///////////////////////////////////////////////////// -void MedicalBeam::GeneratePrimaries(G4Event* anEvent) -///////////////////////////////////////////////////// -{ - if(particle==0) return; - - // create a new vertex - G4PrimaryVertex* vertex= new G4PrimaryVertex(sourcePosition, 0.*ns); - - // momentum - G4double mass= particle-> GetPDGMass(); - G4double p= std::sqrt(sqr(mass+kineticE)-sqr(mass)); - G4ThreeVector pmon= p*GenerateBeamDirection(); - G4PrimaryParticle* primary= new G4PrimaryParticle(particle, - pmon.x(), - pmon.y(), - pmon.z()); - // set primary to vertex - vertex-> SetPrimary(primary); - - // set vertex to event - anEvent-> AddPrimaryVertex(vertex); -} - diff --git a/environments/g4py/tests/g4pytest/MedicalBeam/MedicalBeam.hh b/environments/g4py/tests/g4pytest/MedicalBeam/MedicalBeam.hh deleted file mode 100644 index 04778fa41a..0000000000 --- a/environments/g4py/tests/g4pytest/MedicalBeam/MedicalBeam.hh +++ /dev/null @@ -1,143 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// MedicalBeam.hh -// -// 2005 Q -// ==================================================================== -#ifndef MEDICAL_BEAM_H -#define MEDICAL_BEAM_H - -#include "globals.hh" -#include "G4ThreeVector.hh" -#include "G4VUserPrimaryGeneratorAction.hh" - -class G4ParticleDefinition; - -// ==================================================================== -// -// class definition -// -// ==================================================================== -class MedicalBeam : public G4VUserPrimaryGeneratorAction { -public: - enum FieldShape{ SQUARE=0, CIRCLE }; - -protected: - G4ParticleDefinition* particle; - G4double kineticE; - G4ThreeVector sourcePosition; - - G4double SSD; // (SSD= Source Skin Depth) - FieldShape fieldShape; - G4double fieldXY[2]; - G4double fieldR; - - // local methods... - G4ThreeVector GenerateBeamDirection() const; - -public: - MedicalBeam(); - ~MedicalBeam(); - - // set/get functions... - void SetParticleDefinition(G4ParticleDefinition* pd); - const G4ParticleDefinition* GetParticleDefinition() const; - - void SetKineticE(G4double e); - G4double GetKineticE() const; - - void SetSourcePosition(const G4ThreeVector& pos); - G4ThreeVector GetSourcePosition() const; - - void SetFieldShape(FieldShape shape); - FieldShape GetFieldShape() const; - - void SetSSD(G4double ssd); - G4double GetSSD() const; - - void SetFieldXY(G4double fx, G4double fy); - G4double GetFieldX() const; - G4double GetFieldY() const; - - void SetFieldR(G4double r); - G4double GetFieldR() const; - - // methods... - virtual void GeneratePrimaries(G4Event* anEvent); - -}; - -// ==================================================================== -// inline functions -// ==================================================================== -inline void MedicalBeam::SetParticleDefinition(G4ParticleDefinition* pd) -{ particle= pd; } - -inline const G4ParticleDefinition* MedicalBeam::GetParticleDefinition() const -{ return particle; } - -inline void MedicalBeam::SetKineticE(G4double e) -{ kineticE= e; } - -inline G4double MedicalBeam::GetKineticE() const -{ return kineticE; } - -inline void MedicalBeam::SetSourcePosition(const G4ThreeVector& pos) -{ sourcePosition= pos; } - -inline G4ThreeVector MedicalBeam::GetSourcePosition() const -{ return sourcePosition; } - -inline void MedicalBeam::SetFieldShape(MedicalBeam::FieldShape shape) -{ fieldShape= shape; } - -inline MedicalBeam::FieldShape MedicalBeam::GetFieldShape() const -{ return fieldShape; } - -inline void MedicalBeam::SetSSD(G4double ssd) -{ SSD= ssd; } - -inline G4double MedicalBeam::GetSSD() const -{ return SSD; } - -inline void MedicalBeam::SetFieldXY(G4double fx, G4double fy) -{ fieldXY[0]= fx; fieldXY[1]= fy; } - -inline G4double MedicalBeam::GetFieldX() const -{ return fieldXY[0]; } - -inline G4double MedicalBeam::GetFieldY() const -{ return fieldXY[1]; } - -inline void MedicalBeam::SetFieldR(G4double r) -{ fieldR= r; } - -inline G4double MedicalBeam::GetFieldR() const -{ return fieldR; } - -#endif - diff --git a/environments/g4py/tests/g4pytest/MedicalBeam/__init__.py b/environments/g4py/tests/g4pytest/MedicalBeam/__init__.py deleted file mode 100644 index 5a0139ea8f..0000000000 --- a/environments/g4py/tests/g4pytest/MedicalBeam/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from ._MedicalBeam import * \ No newline at end of file diff --git a/environments/g4py/tests/g4pytest/MedicalBeam/pyMedicalBeam.cc b/environments/g4py/tests/g4pytest/MedicalBeam/pyMedicalBeam.cc deleted file mode 100644 index 4a9eec21e5..0000000000 --- a/environments/g4py/tests/g4pytest/MedicalBeam/pyMedicalBeam.cc +++ /dev/null @@ -1,162 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyMedicalBeam.cc -// -// [MedicalBeam] -// a site-module of Geant4Py -// -// primary generator action for medical beam -// -// 2005 Q -// ==================================================================== -#include -#include "MedicalBeam.hh" -#include "G4ParticleTable.hh" -#include "G4RunManager.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyMedicalBeam { - -MedicalBeam* Construct() -{ - G4RunManager* runMgr= G4RunManager::GetRunManager(); - - MedicalBeam* medicalbeam= new MedicalBeam(); - runMgr-> SetUserAction(medicalbeam); - - return medicalbeam; -} - - -/////////////////////////////////////////////////////////////////// -void SetParticleByName(MedicalBeam* beam, const std::string& pname) -/////////////////////////////////////////////////////////////////// -{ - G4ParticleTable* particleTable= G4ParticleTable::GetParticleTable(); - G4ParticleDefinition* pd= particleTable-> FindParticle(pname); - if (pd != 0) { - beam-> SetParticleDefinition(pd); - } else { - G4cout << "*** \"" << pname << "\" is not registered " - << "in available particle list" << G4endl; - } -} - -//////////////////////////////////////////////// -std::string GetParticleByName(MedicalBeam* beam) -//////////////////////////////////////////////// -{ - const G4ParticleDefinition* pd= beam-> GetParticleDefinition(); - - if(pd==0) return std::string("None"); - else return (pd-> GetParticleName()).c_str(); -} - -//////////////////////////////////////////////////////// -void f_SetFieldXY(MedicalBeam* beam, const list& listXY) -//////////////////////////////////////////////////////// -{ - G4double fx= extract(listXY[0]); - G4double fy= extract(listXY[1]); - beam-> SetFieldXY(fx, fy); -} - - -//////////////////////////////////// -list f_GetFieldXY(MedicalBeam* beam) -//////////////////////////////////// -{ - list listFieldXY; - - listFieldXY.append(beam-> GetFieldX()); - listFieldXY.append(beam-> GetFieldY()); - - return listFieldXY; -} - -} - -using namespace pyMedicalBeam; - -// ==================================================================== -// Expose to Python -// ==================================================================== - -BOOST_PYTHON_MODULE(_MedicalBeam) { - class_ > - ("MedicalBeam", "primary generator action with medical beam") - // --- - .add_property("particle", GetParticleByName, SetParticleByName) - .def("SetParticleByName", SetParticleByName) - .def("GetParticleByName", GetParticleByName) - // --- - .add_property("kineticE", &MedicalBeam::GetKineticE, - &MedicalBeam::SetKineticE) - .def("SetKineticE", &MedicalBeam::SetKineticE) - .def("GetKineticE", &MedicalBeam::GetKineticE) - // --- - .add_property("sourcePosition", &MedicalBeam::GetSourcePosition, - &MedicalBeam::SetSourcePosition) - .def("SetSourcePosition", &MedicalBeam::SetSourcePosition) - .def("GetSourcePosition", &MedicalBeam::GetSourcePosition) - // --- - .add_property("fieldShape", &MedicalBeam::GetFieldShape, - &MedicalBeam::SetFieldShape) - .def("SetFieldShape", &MedicalBeam::SetFieldShape) - .def("GetFieldShape", &MedicalBeam::GetFieldShape) - // --- - .add_property("SSD", &MedicalBeam::GetSSD, &MedicalBeam::SetSSD) - .def("SetSSD", &MedicalBeam::SetSSD) - .def("GetSSD", &MedicalBeam::GetSSD) - // ---- - .add_property("fieldXY", f_GetFieldXY, f_SetFieldXY) - .def("SetFieldXY", f_SetFieldXY) - .def("GetFieldXY", f_GetFieldXY) - .def("GetFieldX", &MedicalBeam::GetFieldX) - .def("GetFieldY", &MedicalBeam::GetFieldY) - // --- - .add_property("fieldR", &MedicalBeam::GetFieldR, &MedicalBeam::SetFieldR) - .def("SetFieldR", &MedicalBeam::SetFieldR) - .def("GetFieldR", &MedicalBeam::GetFieldR) - ; - - // enums... - enum_("FieldShape") - .value("SQUARE", MedicalBeam::SQUARE) - .value("CIRCLE", MedicalBeam::CIRCLE) - ; - - // --- - def("Construct", Construct, - return_value_policy()); -} - diff --git a/environments/g4py/tests/g4pytest/NISTmaterials/CMakeLists.txt b/environments/g4py/tests/g4pytest/NISTmaterials/CMakeLists.txt deleted file mode 100644 index e524a64c4c..0000000000 --- a/environments/g4py/tests/g4pytest/NISTmaterials/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -# - build library -set(_TARGET _NISTmaterials) -g4pytest_add_module(${_TARGET} NISTmaterials.cc pyNISTmaterials.cc) -target_link_libraries(${_TARGET} PRIVATE G4materials) diff --git a/environments/g4py/tests/g4pytest/NISTmaterials/NISTmaterials.cc b/environments/g4py/tests/g4pytest/NISTmaterials/NISTmaterials.cc deleted file mode 100644 index 56bf0c3a4c..0000000000 --- a/environments/g4py/tests/g4pytest/NISTmaterials/NISTmaterials.cc +++ /dev/null @@ -1,61 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// NISTmaterials.cc -// -// 2005 Q -// ==================================================================== -#include "G4NistManager.hh" - -//////////////// -void Construct() -//////////////// -{ - G4NistManager* NistMgr = G4NistManager::Instance(); - - // define typically used materials - NistMgr-> FindOrBuildMaterial("G4_Al"); - NistMgr-> FindOrBuildMaterial("G4_Si"); - NistMgr-> FindOrBuildMaterial("G4_Ar"); - NistMgr-> FindOrBuildMaterial("G4_Cu"); - NistMgr-> FindOrBuildMaterial("G4_Fe"); - NistMgr-> FindOrBuildMaterial("G4_Ge"); - NistMgr-> FindOrBuildMaterial("G4_Ag"); - NistMgr-> FindOrBuildMaterial("G4_W"); - NistMgr-> FindOrBuildMaterial("G4_Au"); - NistMgr-> FindOrBuildMaterial("G4_Pb"); - - NistMgr-> FindOrBuildMaterial("G4_AIR"); - NistMgr-> FindOrBuildMaterial("G4_Galactic"); - NistMgr-> FindOrBuildMaterial("G4_WATER"); - NistMgr-> FindOrBuildMaterial("G4_CESIUM_IODIDE"); - NistMgr-> FindOrBuildMaterial("G4_SODIUM_IODIDE"); - NistMgr-> FindOrBuildMaterial("G4_PLASTIC_SC_VINYLTOLUENE"); - NistMgr-> FindOrBuildMaterial("G4_MYLAR"); - //NistMgr-> FindOrBuildMaterial("G4_GRAPHITE"); - // bug in G4 (element isnot defined. should be fixed.) - -} diff --git a/environments/g4py/tests/g4pytest/NISTmaterials/__init__.py b/environments/g4py/tests/g4pytest/NISTmaterials/__init__.py deleted file mode 100644 index 5849439450..0000000000 --- a/environments/g4py/tests/g4pytest/NISTmaterials/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from ._NISTmaterials import * \ No newline at end of file diff --git a/environments/g4py/tests/g4pytest/NISTmaterials/pyNISTmaterials.cc b/environments/g4py/tests/g4pytest/NISTmaterials/pyNISTmaterials.cc deleted file mode 100644 index e77b5a2afe..0000000000 --- a/environments/g4py/tests/g4pytest/NISTmaterials/pyNISTmaterials.cc +++ /dev/null @@ -1,49 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyNISTmaterials.cc -// -// [NISTmaterials] -// a site-module of Geant4Py -// -// NIST materials -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -void Construct(); - -// ==================================================================== -// Expose to Python -// ==================================================================== - -BOOST_PYTHON_MODULE(_NISTmaterials) { - def("Construct", Construct); -} - diff --git a/environments/g4py/tests/g4pytest/ParticleGun/CMakeLists.txt b/environments/g4py/tests/g4pytest/ParticleGun/CMakeLists.txt deleted file mode 100644 index 45ac505cd3..0000000000 --- a/environments/g4py/tests/g4pytest/ParticleGun/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -# - build library -set(_TARGET _ParticleGun) -g4pytest_add_module(${_TARGET} ParticleGunAction.cc pyParticleGun.cc) -target_link_libraries(${_TARGET} PRIVATE G4run G4particles) diff --git a/environments/g4py/tests/g4pytest/ParticleGun/__init__.py b/environments/g4py/tests/g4pytest/ParticleGun/__init__.py deleted file mode 100644 index e80e543000..0000000000 --- a/environments/g4py/tests/g4pytest/ParticleGun/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from ._ParticleGun import * \ No newline at end of file diff --git a/environments/g4py/tests/g4pytest/ParticleGun/pyParticleGun.cc b/environments/g4py/tests/g4pytest/ParticleGun/pyParticleGun.cc deleted file mode 100644 index 4e04ce8497..0000000000 --- a/environments/g4py/tests/g4pytest/ParticleGun/pyParticleGun.cc +++ /dev/null @@ -1,79 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyParticleGun.cc -// -// [ParticleGun] -// a site-module of Geant4Py -// -// primary generator action with particle gun -// -// 2005 Q -// ==================================================================== -#include -#include "ParticleGunAction.hh" -#include "G4ParticleGun.hh" -#include "G4RunManager.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyParticleGun { - -G4ParticleGun* Construct() -{ - G4RunManager* runMgr= G4RunManager::GetRunManager(); - - ParticleGunAction* pga= new ParticleGunAction; - runMgr-> SetUserAction(pga); - - return pga-> GetParticleGun(); -} - -} - -using namespace pyParticleGun; - -// ==================================================================== -// Expose to Python -// ==================================================================== - -BOOST_PYTHON_MODULE(_ParticleGun) { - class_ > - ("ParticleGunAction", "primary generator action with particle gun") - .def("GetParticleGun", &ParticleGunAction::GetParticleGun, - return_internal_reference<>()) - ; - - // --- - def("Construct", Construct, - return_value_policy()); - -} - diff --git a/environments/g4py/tests/g4pytest/Qgeom/CMakeLists.txt b/environments/g4py/tests/g4pytest/Qgeom/CMakeLists.txt deleted file mode 100644 index 11bbe5c67f..0000000000 --- a/environments/g4py/tests/g4pytest/Qgeom/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -# - build library -set(_TARGET _Qgeom) -g4pytest_add_module(${_TARGET} QDetectorConstruction.cc pyQgeom.cc) -target_link_libraries(${_TARGET} PRIVATE G4materials G4geometry G4run) diff --git a/environments/g4py/tests/g4pytest/Qgeom/QDetectorConstruction.cc b/environments/g4py/tests/g4pytest/Qgeom/QDetectorConstruction.cc deleted file mode 100644 index 3863c82ecf..0000000000 --- a/environments/g4py/tests/g4pytest/Qgeom/QDetectorConstruction.cc +++ /dev/null @@ -1,144 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// QDetectorConstruction.cc -// -// 2005 Q -// ==================================================================== -#include "QDetectorConstruction.hh" - -#include "G4Material.hh" -#include "G4Tubs.hh" -#include "G4Box.hh" -#include "G4LogicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4VisAttributes.hh" -#include "G4SystemOfUnits.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== - -// constants (detector parameters) -static const G4double DXYZ_AREA= 30.*cm; - -////////////////////////////////////////////// -QDetectorConstruction::QDetectorConstruction() -////////////////////////////////////////////// -{ -} - -/////////////////////////////////////////////// -QDetectorConstruction::~QDetectorConstruction() -/////////////////////////////////////////////// -{ -} - -///////////////////////////////////////////////////// -G4VPhysicalVolume* QDetectorConstruction::Construct() -///////////////////////////////////////////////////// -{ - G4Material* mate; - G4VisAttributes* va; - - // ============================================================== - // world volume - // ============================================================== - G4Box* areaSolid= new G4Box("AREA", - DXYZ_AREA/2., DXYZ_AREA/2., DXYZ_AREA/2.); - - G4Material* vacuum= G4Material::GetMaterial("Vacuum"); - G4LogicalVolume* areaLV= new G4LogicalVolume(areaSolid, vacuum, "AREA_LV"); - G4PVPlacement* area= new G4PVPlacement(0, G4ThreeVector(), "AREA_PV", - areaLV, 0, false, 0); - // vis. attributes - va= new G4VisAttributes(G4Color(1.,1.,1.)); - va-> SetForceWireframe(true); - areaLV-> SetVisAttributes(va); - - // ============================================================== - // detectors - // ============================================================== - // voxel - const G4double dvoxel= 10.*mm; - const G4double dl= 10.*cm; - - G4Box* svoxel= new G4Box("voxel", dvoxel, dl, dvoxel); - mate= G4Material::GetMaterial("Vacuum"); - G4LogicalVolume* lvoxel= new G4LogicalVolume(svoxel, mate, "voxel"); - va= new G4VisAttributes(G4Color(0.,0.8,0.8)); - va-> SetVisibility(false); - lvoxel-> SetVisAttributes(va); - - G4int ix, iz; - G4int index=0; - for (iz=0; iz<5; iz++) { - for (ix=-7; ix<=7; ix++) { - G4double x0= (2.*ix)*cm; - G4double z0= (-13.+2.*iz)*cm; - /*G4PVPlacement* pvoxel=*/ new G4PVPlacement(0, G4ThreeVector(x0, 0., z0), - lvoxel, "voxel", areaLV, false, index); - index++; - } - } - - // tube - //G4Tubs* stube= new G4Tubs("tube", 15./2.*mm, 19./2.*mm, dl, - G4Tubs* stube= new G4Tubs("tube", 0.*mm, 19./2.*mm, dl, - 0., 360.*deg); - mate= G4Material::GetMaterial("Al"); - G4LogicalVolume* ltube= new G4LogicalVolume(stube, mate, "tube"); - va= new G4VisAttributes(G4Color(0.,0.8,0.8)); - ltube-> SetVisAttributes(va); - - G4RotationMatrix* rmtube= new G4RotationMatrix; - rmtube-> rotateX(-90.*deg); - /*G4PVPlacement* ptube=*/ new G4PVPlacement(rmtube, G4ThreeVector(), - ltube, "tube", lvoxel, false, 0); - - // cal - const G4double dxycal= 25.*mm; - const G4double dzcal= 3.*cm; - - G4Box* scal= new G4Box("cal", dxycal, dxycal, dzcal); - mate= G4Material::GetMaterial("CsI"); - G4LogicalVolume* lcal= new G4LogicalVolume(scal, mate, "cal"); - va= new G4VisAttributes(G4Color(0.5,0.5,0.)); - lcal-> SetVisAttributes(va); - - index= 0; - for (ix=-2; ix<=2; ix++) { - G4double x0= (5.*ix)*cm; - /*G4PVPlacement* pcal=*/ new G4PVPlacement(0, G4ThreeVector(x0, 0., 2.*cm), - lcal, "cal", areaLV, false, index); - index++; - } - - return area; -} - diff --git a/environments/g4py/tests/g4pytest/Qgeom/QDetectorConstruction.hh b/environments/g4py/tests/g4pytest/Qgeom/QDetectorConstruction.hh deleted file mode 100644 index 5b392c7da9..0000000000 --- a/environments/g4py/tests/g4pytest/Qgeom/QDetectorConstruction.hh +++ /dev/null @@ -1,52 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// QDetectorConstruction.hh -// -// 2005 Q -// ==================================================================== -#ifndef Q_DETECTOR_CONSTRUCTION_H -#define Q_DETECTOR_CONSTRUCTION_H - -#include "G4VUserDetectorConstruction.hh" - -// ==================================================================== -// -// class definition -// -// ==================================================================== - -class QDetectorConstruction : public G4VUserDetectorConstruction { - -public: - QDetectorConstruction(); - ~QDetectorConstruction(); - - virtual G4VPhysicalVolume* Construct(); - -}; - -#endif diff --git a/environments/g4py/tests/g4pytest/Qgeom/__init__.py b/environments/g4py/tests/g4pytest/Qgeom/__init__.py deleted file mode 100644 index 85ffff076a..0000000000 --- a/environments/g4py/tests/g4pytest/Qgeom/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from ._Qgeom import * \ No newline at end of file diff --git a/environments/g4py/tests/g4pytest/Qgeom/pyQgeom.cc b/environments/g4py/tests/g4pytest/Qgeom/pyQgeom.cc deleted file mode 100644 index 6f83400311..0000000000 --- a/environments/g4py/tests/g4pytest/Qgeom/pyQgeom.cc +++ /dev/null @@ -1,71 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyQgeom.cc -// -// [Qgeom] -// a site-module of Geant4Py -// -// A sample geometry -// -// 2005 Q -// ==================================================================== -#include -#include "G4RunManager.hh" -#include "QDetectorConstruction.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyQgeom { - -void Construct() -{ - G4RunManager* runMgr= G4RunManager::GetRunManager(); - runMgr-> SetUserInitialization(new QDetectorConstruction); -} - -} - -using namespace pyQgeom; - -// ==================================================================== -// Expose to Python -// ==================================================================== - -BOOST_PYTHON_MODULE(_Qgeom) { - - class_ > - ("QDetectorConstruction", "my detector") - ; - - // --- - def("Construct", Construct); -} - diff --git a/environments/g4py/tests/g4pytest/Qmaterials/CMakeLists.txt b/environments/g4py/tests/g4pytest/Qmaterials/CMakeLists.txt deleted file mode 100644 index 723d52444c..0000000000 --- a/environments/g4py/tests/g4pytest/Qmaterials/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -# - build library -set(_TARGET _Qmaterials) -g4pytest_add_module(${_TARGET} Qmaterials.cc pyQmaterials.cc) -target_link_libraries(${_TARGET} PRIVATE G4materials) \ No newline at end of file diff --git a/environments/g4py/tests/g4pytest/Qmaterials/Qmaterials.cc b/environments/g4py/tests/g4pytest/Qmaterials/Qmaterials.cc deleted file mode 100644 index b9ace7959f..0000000000 --- a/environments/g4py/tests/g4pytest/Qmaterials/Qmaterials.cc +++ /dev/null @@ -1,142 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// Qmaterials.cc -// -// 2005 Q -// ==================================================================== -#include "G4Material.hh" -#include "G4SystemOfUnits.hh" -#include "G4PhysicalConstants.hh" - -//////////////// -void Construct() -//////////////// -{ - G4double A, Z; - - // ------------------------------------------------------------------------ - // Elements - // ------------------------------------------------------------------------ - G4Element* elH = new G4Element("Hydrogen","H", Z=1., A=1.00794*g/mole); - G4Element* elC = new G4Element("Carbon", "C", Z=6., A= 12.011 *g/mole); - G4Element* elN = new G4Element("Nitrogen","N", Z=7., A= 14.00674*g/mole); - G4Element* elO = new G4Element("Oxygen", "O", Z=8., A= 15.9994*g/mole); - G4Element* elNa = new G4Element("Sodium", "Na", Z=11., A= 22.989768*g/mole); - G4Element* elSi = new G4Element("Silicon", "Si", Z=14., A= 28.0855*g/mole); - G4Element* elAr = new G4Element("Argon", "Ar", Z=18., A= 39.948*g/mole); - G4Element* elI = new G4Element("Iodine", "I", Z=53., A= 126.90447*g/mole); - G4Element* elCs = new G4Element("Cesium", "Cs", Z=55., A= 132.90543*g/mole); - - // ------------------------------------------------------------------------ - // Materials - // ------------------------------------------------------------------------ - G4double density, massfraction; - G4int natoms, nel; - - // temperature of experimental hall is controlled at 20 degree. - const G4double expTemp= STP_Temperature+20.*kelvin; - - // vacuum - density= universe_mean_density; - G4Material* Vacuum= new G4Material("Vacuum", density, nel=2); - Vacuum-> AddElement(elN, .7); - Vacuum-> AddElement(elO, .3); - - // air - density= 1.2929e-03 *g/cm3; // at 20 degree - G4Material* Air= new G4Material("Air", density, nel=3, - kStateGas, expTemp); - G4double ttt= 75.47+23.20+1.28; - Air-> AddElement(elN, massfraction= 75.47/ttt); - Air-> AddElement(elO, massfraction= 23.20/ttt); - Air-> AddElement(elAr, massfraction= 1.28/ttt); - - // Ar gas - A= 39.948 *g/mole; - const G4double denAr= 1.782e-03 *g/cm3 * STP_Temperature/expTemp; - G4Material* Ar= new G4Material("ArgonGas", Z=18., A, denAr, - kStateGas, expTemp); - - // ethane (C2H6) - const G4double denEthane= 1.356e-3 *g/cm3 * STP_Temperature/expTemp; - G4Material* Ethane= new G4Material("Ethane", denEthane, nel=2, - kStateGas, expTemp); - Ethane-> AddElement(elC, natoms=2); - Ethane-> AddElement(elH, natoms=6); - - // Ar(50%) + ethane(50%) mixture - density= (denAr+denEthane)/2.; - G4Material* ArEthane= new G4Material("ArEthane", density, nel=2, - kStateGas, expTemp); - ArEthane-> AddMaterial(Ar, massfraction= denAr/density/2.); - ArEthane-> AddMaterial(Ethane, massfraction= denEthane/density/2.); - - // silicon - A= 28.0855 *g/mole; - density= 2.33 *g/cm3; - /*G4Material* Si=*/ new G4Material("SiliconWafer", Z=14., A, density); - - // alminium - A= 26.98 *g/mole; - density= 2.70 *g/cm3; - /*G4Material* Al=*/ new G4Material("Al", Z=13., A, density); - - // iron - A= 55.847 *g/mole; - density= 7.87 *g/cm3; - /*G4Material* Fe=*/ new G4Material("Iron", Z=26., A, density); - - // lead - A= 207.2 *g/mole; - density= 11.35 *g/cm3; - /*G4Material* Pb=*/ new G4Material("Lead", Z=82., A, density); - - // scintillator (Polystyene(C6H5CH=CH2)) - density= 1.032 *g/cm3; - G4Material* Scinti= new G4Material("Scinti", density, nel=2); - Scinti-> AddElement(elC, natoms=8); - Scinti-> AddElement(elH, natoms=8); - - // quartz (SiO2, crystalline) - density= 2.64 *g/cm3; - G4Material* Quartz= new G4Material("Quartz", density, nel= 2); - Quartz-> AddElement(elSi, natoms=1); - Quartz-> AddElement(elO, natoms=2); - - // NaI crystal - density= 3.67 *g/cm3; - G4Material* NaI= new G4Material("NaI", density, nel= 2); - NaI-> AddElement(elNa, natoms=1); - NaI-> AddElement(elI, natoms=1); - - // CsI crystal - density= 4.51 *g/cm3; - G4Material* CsI= new G4Material("CsI", density, nel= 2); - CsI-> AddElement(elCs, natoms=1); - CsI-> AddElement(elI, natoms=1); - -} diff --git a/environments/g4py/tests/g4pytest/Qmaterials/__init__.py b/environments/g4py/tests/g4pytest/Qmaterials/__init__.py deleted file mode 100644 index 02c5a31c43..0000000000 --- a/environments/g4py/tests/g4pytest/Qmaterials/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from ._Qmaterials import * \ No newline at end of file diff --git a/environments/g4py/tests/g4pytest/Qmaterials/pyQmaterials.cc b/environments/g4py/tests/g4pytest/Qmaterials/pyQmaterials.cc deleted file mode 100644 index 5355fd8660..0000000000 --- a/environments/g4py/tests/g4pytest/Qmaterials/pyQmaterials.cc +++ /dev/null @@ -1,49 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyQmaterials.cc -// -// [Qmaterials] -// a site-module of Geant4Py -// -// A sample set of materials -// -// 2005 Q -// ==================================================================== -#include - -using namespace boost::python; - -void Construct(); - -// ==================================================================== -// Expose to Python -// ==================================================================== - -BOOST_PYTHON_MODULE(_Qmaterials) { - def("Construct", Construct); -} - diff --git a/environments/g4py/tests/g4pytest/__init__.py b/environments/g4py/tests/g4pytest/__init__.py deleted file mode 100644 index b58d11dea5..0000000000 --- a/environments/g4py/tests/g4pytest/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ - -# Geant4Py site-modules - diff --git a/environments/g4py/tests/g4pytest/emcalculator/emcalculator.py b/environments/g4py/tests/g4pytest/emcalculator/emcalculator.py deleted file mode 100644 index e63d1a2952..0000000000 --- a/environments/g4py/tests/g4pytest/emcalculator/emcalculator.py +++ /dev/null @@ -1,149 +0,0 @@ -""" -# ================================================================== -# Python module (Python3) -# -# Calculation of photon cross section and stopping power for -# chared particles -# -# Q, 2005 -# ================================================================== -""" -from Geant4 import * - -# ================================================================== -# public symbols -# ================================================================== -__all__ = [ 'CalculatePhotonCrossSection', 'CalculateDEDX' ] - -# ================================================================== -# Photon Cross Section -# ================================================================== -def CalculatePhotonCrossSection(mat, elist, verbose=0, - plist=["compt", "", "phot", "conv"]): - """ - Calculate photon cross section for a given material and - a list of energy, returing a list of cross sections for - the components of "Copmton scattering", "rayleigh scattering", - "photoelectric effect", "pair creation" and total one. - - Arguments: - mat: material name - elist: list of energy - verbose: verbose level [0] - plist: list of process name - (compton/rayleigh/photoelectic/conversion) [StandardEM set] - - Keys of index: - "compt": Compton Scattering - "rayleigh": Rayleigh Scattering - "phot" : photoelectric effect - "conv" : pair Creation - "tot" : total - - Example: - xsec_list= CalculatePhotonCrossSection(...) - value= xsec_list[energy_index]["compt"] - """ - if(verbose>0): - print("-------------------------------------------------------------------") - print(" Photon Cross Section (", mat, ")") - print("Energy Compton Raleigh Photo- Pair Total") - print(" Scattering Scattering electric Creation") - print("(MeV) (cm2/g) (cm2/g) (cm2/g) (cm2/g) (cm2/g)") - print("-------------------------------------------------------------------") - - xsection_list= [] - for ekin in elist: - xsec= {} - xsec["compt"] \ - = gEmCalculator.ComputeCrossSectionPerVolume(ekin, "gamma", plist[0], - mat) * cm2/g - xsec["rayleigh"] \ - = gEmCalculator.ComputeCrossSectionPerVolume(ekin, "gamma", plist[1], - mat) * cm2/g - - xsec["phot"] \ - = gEmCalculator.ComputeCrossSectionPerVolume(ekin, "gamma", plist[2], - mat) * cm2/g - xsec["conv"] \ - = gEmCalculator.ComputeCrossSectionPerVolume(ekin, "gamma", plist[3], - mat) * cm2/g - - xsec["tot"]= xsec["compt"] + xsec["rayleigh"] + xsec["phot"] + xsec["conv"] - - xsection_list.append((ekin, xsec)) - - if(verbose>0): - print(" %8.3e %8.3e %8.3e %8.3e %8.3e %8.3e" \ - % (ekin/MeV, xsec["compt"]/(cm2/g), xsec["rayleigh"]/(cm2/g), - xsec["phot"]/(cm2/g), xsec["conv"]/(cm2/g), xsec["tot"]/(cm2/g))) - - return xsection_list - - -# ================================================================== -# Stopping Power -# ================================================================== -def CalculateDEDX(part, mat, elist, verbose=0, - plist=["eIoni", "eBrem", "muIoni", "muBrems", "hIoni"]): - """ - Calculate stopping powers for a give particle, material and - a list of energy, returing stopping power for the components of - "Ionization", "Radiation" and total one. - - Arguments: - part: particle name - mat: material name - elist: list of energy - verbose: verbose level [0] - plist: list of process name - (electron ionization/electron brems/ - muon ionization/muon brems/hadron ionization) [StandardEM set] - - Keys of index: - "ioni": ionization - "brems": Bremsstrahlung - "tot": total - - Example: - dedx_list= CalculateDEDX(...) - value= dedx_list[energy_index]["ioni"] - """ - if(verbose>0): - print("------------------------------------------------------") - print(" Stopping Power (", part, ",", mat, ")") - print(" Energy Ionization Radiation Total") - print(" (MeV) (MeVcm2/g) (MeVcm2/g) (MeVcm2/g)") - print("------------------------------------------------------") - - procname_brems= "" - procname_ioni= "" - if ( part=="e+" or part=="e-" ): - procname_ioni= plist[0] - procname_brems= plist[1] - elif ( part=="mu+" or part=="mu-"): - procname_ioni= plist[2] - procname_brems= plist[3] - else: - procname_ioni= plist[4] - procname_brems= "" - - dedx_list= [] - for ekin in elist: - dedx= {} - dedx["ioni"] \ - = gEmCalculator.ComputeDEDX(ekin, part, procname_ioni, mat) * MeV*cm2/g - dedx["brems"] \ - = gEmCalculator.ComputeDEDX(ekin, part, procname_brems, mat) * MeV*cm2/g - dedx["tot"]= dedx["ioni"]+ dedx["brems"] - - if(verbose>0): - print(" %8.3e %8.3e %8.3e %8.3e" \ - % (ekin/MeV, dedx["ioni"]/(MeV*cm2/g), - dedx["brems"]/(MeV*cm2/g), dedx["tot"]/(MeV*cm2/g) )) - - - dedx_list.append((ekin, dedx)) - - return dedx_list - diff --git a/environments/g4py/tests/g4pytest/ezgeom/CMakeLists.txt b/environments/g4py/tests/g4pytest/ezgeom/CMakeLists.txt deleted file mode 100644 index 1ba9a56b08..0000000000 --- a/environments/g4py/tests/g4pytest/ezgeom/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -# - build library -set(_TARGET _ezgeom) -g4pytest_add_module(${_TARGET} - EzDetectorConstruction.cc - G4EzVolume.cc - G4EzVoxelParameterization.cc - G4EzWorld.cc - pyEzgeom.cc -) -target_link_libraries(${_TARGET} PRIVATE G4materials G4geometry G4run) diff --git a/environments/g4py/tests/g4pytest/ezgeom/EzDetectorConstruction.cc b/environments/g4py/tests/g4pytest/ezgeom/EzDetectorConstruction.cc deleted file mode 100644 index 90ae9a1f44..0000000000 --- a/environments/g4py/tests/g4pytest/ezgeom/EzDetectorConstruction.cc +++ /dev/null @@ -1,58 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// EzDetectorConstruction.cc -// -// 2005 Q -// ==================================================================== -#include "EzDetectorConstruction.hh" -#include "G4EzWorld.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== - -//////////////////////////////////////////////// -EzDetectorConstruction::EzDetectorConstruction() -//////////////////////////////////////////////// -{ -} - -///////////////////////////////////////////////// -EzDetectorConstruction::~EzDetectorConstruction() -///////////////////////////////////////////////// -{ -} - -////////////////////////////////////////////////////// -G4VPhysicalVolume* EzDetectorConstruction::Construct() -////////////////////////////////////////////////////// -{ - return G4EzWorld::GetWorldVolume(); -} - diff --git a/environments/g4py/tests/g4pytest/ezgeom/G4EzVolume.cc b/environments/g4py/tests/g4pytest/ezgeom/G4EzVolume.cc deleted file mode 100644 index 26733fff46..0000000000 --- a/environments/g4py/tests/g4pytest/ezgeom/G4EzVolume.cc +++ /dev/null @@ -1,311 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// G4EzVolume.cc -// -// 2005 Q -// ==================================================================== -#include "G4Material.hh" -#include "G4Box.hh" -#include "G4Tubs.hh" -#include "G4Cons.hh" -#include "G4Sphere.hh" -#include "G4Orb.hh" -#include "G4PVPlacement.hh" -#include "G4PVReplica.hh" -#include "G4PVParameterised.hh" -#include "G4VisAttributes.hh" - -#include "G4EzWorld.hh" -#include "G4EzVolume.hh" -#include "G4EzVoxelParameterization.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== - -//////////////////////// -G4EzVolume::G4EzVolume() - : name("MyVolume"), - solid(0), - lv(0), lvsub(0), - nplacement(0) -//////////////////////// -{ -} - - -///////////////////////////////////////////// -G4EzVolume::G4EzVolume(const G4String& aname) - : name(aname), solid(0), lv(0), lvsub(0), - nplacement(0) -///////////////////////////////////////////// -{ -} - - -///////////////////////// -G4EzVolume::~G4EzVolume() -///////////////////////// -{ -} - - -/////////////////////////////////////////////////////////////////////// -void G4EzVolume::CreateBoxVolume(G4Material* amaterial, - G4double dx, G4double dy, G4double dz) -/////////////////////////////////////////////////////////////////////// -{ - if(lv !=0 ) { - G4cout << "%%% Warning (G4EzVolume): volume is already created." - << G4endl; - return; - } - - solid= new G4Box(name, dx/2., dy/2., dz/2.); - lv= new G4LogicalVolume(solid, amaterial, name); - - // vis. attributes - va= new G4VisAttributes(); - lv-> SetVisAttributes(va); -} - - -//////////////////////////////////////////////////////////////////////////// -void G4EzVolume::CreateTubeVolume(G4Material* amaterial, - G4double rmin, G4double rmax, G4double dz, - G4double phi0, G4double dphi) -//////////////////////////////////////////////////////////////////////////// -{ - if(lv !=0 ) { - G4cout << "%%% Warning (G4EzVolume): volume is already created." - << G4endl; - return; - } - - solid= new G4Tubs(name, rmin, rmax, dz, phi0, dphi); - lv= new G4LogicalVolume(solid, amaterial, name); - - // vis. attributes - va= new G4VisAttributes(); - lv-> SetVisAttributes(va); -} - - -///////////////////////////////////////////////////////////////// -void G4EzVolume::CreateConeVolume(G4Material* amaterial, - G4double rmin1, G4double rmax1, - G4double rmin2, G4double rmax2, - G4double dz, - G4double phi0, G4double dphi) -///////////////////////////////////////////////////////////////// -{ - if(lv !=0 ) { - G4cout << "%%% Warning (G4EzVolume): volume is already created." - << G4endl; - return; - } - - solid= new G4Cons(name, rmin1, rmax1, rmin2, rmax2, - dz, phi0, dphi); - lv= new G4LogicalVolume(solid, amaterial, name); - - // vis. attributes - va= new G4VisAttributes(); - lv-> SetVisAttributes(va); -} - - -///////////////////////////////////////////////////////////////////// -void G4EzVolume::CreateSphereVolume(G4Material* amaterial, - G4double rmin, G4double rmax, - G4double phi0, G4double dphi, - G4double theta0, G4double dtheta) -///////////////////////////////////////////////////////////////////// -{ - if(lv !=0 ) { - G4cout << "%%% Warning (G4EzVolume): volume is already created." - << G4endl; - return; - } - - solid= new G4Sphere(name, rmin, rmax, phi0, dphi, theta0, dtheta); - lv= new G4LogicalVolume(solid, amaterial, name); - - // vis. attributes - va= new G4VisAttributes(); - lv-> SetVisAttributes(va); -} - - -////////////////////////////////////////////////////////////////////// -void G4EzVolume::CreateOrbVolume(G4Material* amaterial, G4double rmax) -////////////////////////////////////////////////////////////////////// -{ - if(lv !=0 ) { - G4cout << "%%% Warning (G4EzVolume): volume is already created." - << G4endl; - return; - } - - solid= new G4Orb(name, rmax); - lv= new G4LogicalVolume(solid, amaterial, name); - - // vis. attributes - va= new G4VisAttributes(); - lv-> SetVisAttributes(va); -} - - -//////////////////////////////////////////////////////////////// -G4VPhysicalVolume* G4EzVolume::PlaceIt(const G4ThreeVector& pos, - G4int ncopy, - G4EzVolume* parent) -//////////////////////////////////////////////////////////////// -{ - if(lv==0) { - G4cout << "%%% Warning (G4EzVolume): volume is not yet created." - << G4endl; - return 0; - } - - G4PVPlacement* pv; - if(parent==0) { // place it in the world - G4VPhysicalVolume* world= G4EzWorld::GetWorldVolume(); - pv= new G4PVPlacement(0, pos, name, lv, world, false, ncopy); - } else { - pv= new G4PVPlacement(0, pos, lv, name, parent->lv, false, ncopy); - } - - nplacement++; - return pv; -} - - -////////////////////////////////////////////////////////////////////// -G4VPhysicalVolume* G4EzVolume::PlaceIt(const G4Transform3D& transform, - G4int ncopy, - G4EzVolume* parent) -////////////////////////////////////////////////////////////////////// -{ - if(lv==0) { - G4cout << "%%% Warning (G4EzVolume): volume is not yet created." - << G4endl; - return 0; - } - - G4PVPlacement* pv; - if(parent==0) { // place it in the world - G4VPhysicalVolume* world= G4EzWorld::GetWorldVolume(); - pv= new G4PVPlacement(transform, name, lv, world, false, ncopy); - } else { - pv= new G4PVPlacement(transform, lv, name, parent->lv, false, ncopy); - } - - nplacement++; - return pv; -} - - -/////////////////////////////////////////////////////////////////////////// -G4VPhysicalVolume* G4EzVolume::ReplicateIt(G4EzVolume* parent, - EAxis pAxis, G4int nReplicas, - G4double width, G4double offset) -/////////////////////////////////////////////////////////////////////////// -{ - if(lv==0) { - G4cout << "%%% Warning (G4EzVolume): volume is not yet created." - << G4endl; - return 0; - } - - G4PVReplica* pv= - new G4PVReplica(name, lv, parent->lv, pAxis, nReplicas, width, offset); - - nplacement += nReplicas; - return pv; -} - - -////////////////////////////////////////////////////////////////// -G4ThreeVector G4EzVolume::VoxelizeIt(G4int nx, G4int ny, G4int nz) -////////////////////////////////////////////////////////////////// -{ - // creating voxel volume... - G4Box* avolume= dynamic_cast(solid); - if(avolume ==0 ) { - G4cout << "%%% Error (G4EzVolume): voxelization is valid " - << "only for Box geometry." << G4endl; - return G4ThreeVector(); - } - - if(lvsub !=0) { - G4cout << "%%% Error (G4EzVolume): already voxelized." << G4endl; - return G4ThreeVector(); - } - - G4double dx= (avolume-> GetXHalfLength())*2.; - G4double dy= (avolume-> GetYHalfLength())*2.; - G4double dz= (avolume-> GetZHalfLength())*2.; - - // voxel size - G4double ddx= dx/nx; - G4double ddy= dy/ny; - G4double ddz= dz/nz; - - G4Box* voxel= new G4Box("voxel", ddx/2., ddy/2., ddz/2.); - G4Material* voxelMaterial= lv-> GetMaterial(); - lvsub= new G4LogicalVolume(voxel, voxelMaterial, "voxel"); - - G4VisAttributes* vavoxel= new G4VisAttributes(G4Color(1.,0.,0.)); - lvsub-> SetVisAttributes(vavoxel); - - G4EzVoxelParameterization* voxelParam= - new G4EzVoxelParameterization(ddx, ddy, ddz, nx, ny, nz); - G4int nvoxel= nx*ny*nz; - new G4PVParameterised(name+"_voxel", lvsub, lv, kXAxis, - nvoxel, voxelParam); - - return G4ThreeVector(ddx, ddy, ddz); -} - - - -//////////////////////////////////////////////////////////////// -void G4EzVolume::SetSensitiveDetector(G4VSensitiveDetector* asd) -//////////////////////////////////////////////////////////////// -{ - if(lvsub!=0) { - lvsub-> SetSensitiveDetector(asd); - return; - } - - if(lv!=0) lv-> SetSensitiveDetector(asd); - -} - diff --git a/environments/g4py/tests/g4pytest/ezgeom/G4EzVolume.hh b/environments/g4py/tests/g4pytest/ezgeom/G4EzVolume.hh deleted file mode 100644 index d67fd956b0..0000000000 --- a/environments/g4py/tests/g4pytest/ezgeom/G4EzVolume.hh +++ /dev/null @@ -1,165 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// G4EzVolume.hh -// -// Utility class for supporting creating user geometry -// -// * wrapper of logical volume -// -// 2005 Q -// ==================================================================== -#ifndef G4_EZ_VOLUME_H -#define G4_EZ_VOLUME_H - -#include "G4LogicalVolume.hh" -#include "G4VisAttributes.hh" -#include "G4Transform3D.hh" - -// ==================================================================== -// -// class definition -// -// ==================================================================== -class G4Material; -class G4VSolid; -class G4VPhysicalVolume; - -class G4EzVolume { -protected: - // volume information - G4String name; - G4VSolid* solid; - G4LogicalVolume* lv; - G4LogicalVolume* lvsub; // logical volume for voxels - G4VisAttributes* va; - G4int nplacement; // # of placements - -public: - G4EzVolume(); - G4EzVolume(const G4String& aname); - ~G4EzVolume(); - - // createing volume - void CreateBoxVolume(G4Material* amaterial, - G4double dx, G4double dy, G4double dz); - - void CreateTubeVolume(G4Material* amaterial, - G4double rmin, G4double rmax, - G4double dz, - G4double phi0=0., G4double dphi=360*deg); - - void CreateConeVolume(G4Material* amaterial, - G4double rmin1, G4double rmax1, - G4double rmin2, G4double rmax2, - G4double dz, - G4double phi0=0., G4double dphi=360.*deg); - - void CreateSphereVolume(G4Material* amaterial, - G4double rmin, G4double rmax, - G4double phi0=0., G4double dphi=360.*deg, - G4double theta0=0., G4double dtheta=180.*deg); - - void CreateOrbVolume(G4Material* amaterial, G4double rmax); - - - // placement - G4VPhysicalVolume* PlaceIt(const G4ThreeVector& pos, G4int ncopy=0, - G4EzVolume* parent=0); - - G4VPhysicalVolume* PlaceIt(const G4Transform3D& transform, G4int ncopy=0, - G4EzVolume* parent=0); - // replica - // parent volume should be exactly filled with replicated volumes. - G4VPhysicalVolume* ReplicateIt(G4EzVolume* parent, - EAxis pAxis, G4int nReplicas, - G4double width, G4double offset=0); - // voxelize - // volume should be "BOX". otherwise, error. - // returning voxel size in each dimension - G4ThreeVector VoxelizeIt(G4int nx, G4int ny, G4int nz); - - // sensitivity - // in the case of voxelized, SD will be set to a voxel. - void SetSensitiveDetector(G4VSensitiveDetector* asd); - - // direct access to properties - const G4String& GetName() const; - - void SetSolid(G4VSolid* asolid); - const G4VSolid* GetSolid() const; - - void SetMaterial(G4Material* amaterial); - G4Material* GetMaterial() const; - - G4int GetNofPlacements() const; - - void SetVisibility(G4bool qvisible); - void SetColor(const G4Color& color); - void SetColor(G4double red, G4double green, G4double blue); - -}; - -// ==================================================================== -// inline functions -// ==================================================================== - -inline const G4String& G4EzVolume::GetName() const { return name; } - -inline void G4EzVolume::SetSolid(G4VSolid* asolid) { solid= asolid; } - -inline const G4VSolid* G4EzVolume::GetSolid() const { return solid; } - -inline void G4EzVolume::SetMaterial(G4Material* amaterial) -{ - if(lv!= 0) lv-> SetMaterial(amaterial); - if(lvsub!= 0) lvsub-> SetMaterial(amaterial); -} - -inline G4Material* G4EzVolume::GetMaterial() const -{ - if(lv!=0) return lv-> GetMaterial(); - else return 0; -} - -inline G4int G4EzVolume::GetNofPlacements() const { return nplacement; } - -inline void G4EzVolume::SetVisibility(G4bool qvisible) -{ - if(va!=0) va-> SetVisibility(qvisible); -} - -inline void G4EzVolume::SetColor(const G4Color& color) -{ - if(va!=0) va-> SetColor(color); -} - -inline void G4EzVolume::SetColor(G4double red, G4double green, G4double blue) -{ - if(va!=0) va-> SetColor(red, green, blue); -} - -#endif diff --git a/environments/g4py/tests/g4pytest/ezgeom/G4EzVoxelParameterization.cc b/environments/g4py/tests/g4pytest/ezgeom/G4EzVoxelParameterization.cc deleted file mode 100644 index 14d1bcc40e..0000000000 --- a/environments/g4py/tests/g4pytest/ezgeom/G4EzVoxelParameterization.cc +++ /dev/null @@ -1,89 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// G4EzVoxelParameterization.cc -// -// 2005 Q -// ==================================================================== -#include "G4EzVoxelParameterization.hh" -#include "G4Box.hh" -#include "G4VPhysicalVolume.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== - -////////////////////////////////////////////////////////////////////////// -G4EzVoxelParameterization::G4EzVoxelParameterization - (G4double ddx, G4double ddy, G4double ddz, G4int nx, G4int ny, G4int nz) - : voxelSize(ddx, ddy, ddz), motherSize(ddx*nx, ddy*ny, ddz*nz) -////////////////////////////////////////////////////////////////////////// -{ - nvoxels[0]= nx; - nvoxels[1]= ny; - nvoxels[2]= nz; -} - - -/////////////////////////////////////////////////////// -G4EzVoxelParameterization::~G4EzVoxelParameterization() -/////////////////////////////////////////////////////// -{ -} - - -/////////////////////////////////////////////////////////// -void G4EzVoxelParameterization::ComputeTransformation - (const G4int copyNo, G4VPhysicalVolume* physVol) const -/////////////////////////////////////////////////////////// -{ - // copyNo-> index - G4int nxy= nvoxels[0]*nvoxels[1]; - G4int iz= copyNo/nxy; - G4int ixy= copyNo - iz*nxy; - G4int iy= ixy/nvoxels[0]; - G4int ix= ixy-iy*nvoxels[0]; - - // voxel position - G4double px= voxelSize[0]*(ix+0.5) - motherSize[0]/2.; - G4double py= voxelSize[1]*(iy+0.5) - motherSize[1]/2.; - G4double pz= voxelSize[2]*(iz+0.5) - motherSize[2]/2.; - - physVol-> SetTranslation(G4ThreeVector(px, py, pz)); - -} - - -////////////////////////////////////////////////////////////////////////////// -void G4EzVoxelParameterization::ComputeDimensions - (G4Box& /*aBox*/, const G4int /*copyNo*/, const G4VPhysicalVolume* /*physVol*/) const -////////////////////////////////////////////////////////////////////////////// -{ - return; -} - diff --git a/environments/g4py/tests/g4pytest/ezgeom/G4EzVoxelParameterization.hh b/environments/g4py/tests/g4pytest/ezgeom/G4EzVoxelParameterization.hh deleted file mode 100644 index dd8d97632e..0000000000 --- a/environments/g4py/tests/g4pytest/ezgeom/G4EzVoxelParameterization.hh +++ /dev/null @@ -1,63 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// G4EzVoxelParameterization.hh -// -// 2005 Q -// ==================================================================== -#ifndef G4EZ_VOXEL_PARAMETERIZATION_H -#define G4EZ_VOXEL_PARAMETERIZATION_H - -#include "G4VPVParameterisation.hh" -#include "G4ThreeVector.hh" - -// ==================================================================== -// -// class definition -// -// ==================================================================== - -class G4EzVoxelParameterization : public G4VPVParameterisation { -protected: - G4ThreeVector voxelSize; - G4ThreeVector motherSize; - G4int nvoxels[3]; - -public: - G4EzVoxelParameterization(G4double ddx, G4double ddy, G4double ddz, - G4int nx, G4int ny, G4int nz); - - ~G4EzVoxelParameterization(); - - virtual void ComputeTransformation(const G4int copyNo, - G4VPhysicalVolume* physVol) const; - - using G4VPVParameterisation::ComputeDimensions; - virtual void ComputeDimensions(G4Box& aBox, const G4int copyNo, - const G4VPhysicalVolume* physVol) const; -}; - -#endif diff --git a/environments/g4py/tests/g4pytest/ezgeom/G4EzWorld.cc b/environments/g4py/tests/g4pytest/ezgeom/G4EzWorld.cc deleted file mode 100644 index 0c317efa4c..0000000000 --- a/environments/g4py/tests/g4pytest/ezgeom/G4EzWorld.cc +++ /dev/null @@ -1,137 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// G4EzWorld.cc -// -// 2005 Q -// ==================================================================== -#include "G4EzWorld.hh" -#include "G4Element.hh" -#include "G4Material.hh" -#include "G4Box.hh" -#include "G4LogicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4VisAttributes.hh" -#include "G4RunManager.hh" -#include "G4PhysicalConstants.hh" - -G4VPhysicalVolume* G4EzWorld::world= G4EzWorld::CreateWorld(); - -// ==================================================================== -// -// class description -// -// ==================================================================== - -////////////////////// -G4EzWorld::G4EzWorld() -////////////////////// -{ -} - -/////////////////////// -G4EzWorld::~G4EzWorld() -/////////////////////// -{ - world= 0; -} - - -////////////////////////////////////////////////////////// -G4VPhysicalVolume* G4EzWorld::CreateWorld - (G4double dx, G4double dy, G4double dz) -////////////////////////////////////////////////////////// -{ - // default matetial is "vacuum" - G4Material* vacuum= G4Material::GetMaterial("_Vacuum", false); - - if(vacuum==0) { - G4Element* elN= new G4Element("_N", "", 7., 14.00674*g/mole); - G4Element* elO= new G4Element("_O", "", 8., 15.9994*g/mole); - - vacuum= new G4Material("_Vacuum", universe_mean_density, 2); - vacuum-> AddElement(elN, 0.7); - vacuum-> AddElement(elO, 0.3); - } - - G4Box* sdworld= new G4Box("world", dx/2., dy/2., dz/2.); - G4LogicalVolume* lvworld= new G4LogicalVolume(sdworld, vacuum, "word"); - G4PVPlacement* aworld= new G4PVPlacement(0, G4ThreeVector(), "world", - lvworld, 0, false, 0); - - // vis. attributes - G4VisAttributes* vaworld= new G4VisAttributes(G4Color(1.,1.,1.)); - vaworld-> SetForceWireframe(true); - lvworld-> SetVisAttributes(vaworld); - - return aworld; - -} - - -//////////////////////////////////////////////////////////// -void G4EzWorld::Reset(G4double dx, G4double dy, G4double dz) -//////////////////////////////////////////////////////////// -{ - delete world; - world= CreateWorld(dx, dy, dz); - - G4RunManager* runManager= G4RunManager::GetRunManager(); - runManager-> DefineWorldVolume(world); -} - - -///////////////////////////////////////////////////////////// -void G4EzWorld::Resize(G4double dx, G4double dy, G4double dz) -///////////////////////////////////////////////////////////// -{ - G4Box* box= dynamic_cast(world-> GetLogicalVolume()-> GetSolid()); - box-> SetXHalfLength(dx/2.); - box-> SetYHalfLength(dy/2.); - box-> SetZHalfLength(dz/2.); - - G4RunManager* runManager= G4RunManager::GetRunManager(); - runManager-> GeometryHasBeenModified(); -} - - -////////////////////////////////////////////////// -void G4EzWorld::SetMaterial(G4Material* amaterial) -////////////////////////////////////////////////// -{ - world-> GetLogicalVolume()-> SetMaterial(amaterial); -} - - -////////////////////////////////////////// -void G4EzWorld::SetVisibility(G4bool qvis) -////////////////////////////////////////// -{ - G4VisAttributes* vaworld= const_cast( - world-> GetLogicalVolume()-> GetVisAttributes()); - vaworld-> SetVisibility(qvis); -} - diff --git a/environments/g4py/tests/g4pytest/ezgeom/__init__.py b/environments/g4py/tests/g4pytest/ezgeom/__init__.py deleted file mode 100644 index e74f584ed2..0000000000 --- a/environments/g4py/tests/g4pytest/ezgeom/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from ._ezgeom import * \ No newline at end of file diff --git a/environments/g4py/tests/g4pytest/ezgeom/pyEzgeom.cc b/environments/g4py/tests/g4pytest/ezgeom/pyEzgeom.cc deleted file mode 100644 index e7f72716e3..0000000000 --- a/environments/g4py/tests/g4pytest/ezgeom/pyEzgeom.cc +++ /dev/null @@ -1,158 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// pyEZgeom.cc -// -// [ezgeom] -// a site-module of Geant4Py -// -// An easy way to build geometry -// -// 2005 Q -// ==================================================================== -#include -#include "EzDetectorConstruction.hh" -#include "G4EzWorld.hh" -#include "G4EzVolume.hh" -#include "G4RunManager.hh" -#include "G4VSensitiveDetector.hh" - -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyEZgeom { - -// methods in global namespace -void Construct() -{ - G4RunManager* runMgr= G4RunManager::GetRunManager(); - runMgr-> SetUserInitialization(new EzDetectorConstruction); -} - -void ResetWorld(G4double dx, G4double dy, G4double dz) -{ - G4EzWorld::Reset(dx, dy, dz); -} - -void ResizeWorld(G4double dx, G4double dy, G4double dz) -{ - G4EzWorld::Resize(dx, dy, dz); -} - - -void SetWorldMaterial(G4Material* amaterial) -{ - G4EzWorld::SetMaterial(amaterial); -} - - -void SetWorldVisibility(G4bool qvis) -{ - G4EzWorld::SetVisibility(qvis); -} - - -// CreateTubeVolume -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_CreateTubeVolume, - CreateTubeVolume, 4, 6) - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_CreateConeVolume, - CreateConeVolume, 6, 8) - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_CreateSphereVolume, - CreateSphereVolume, 3, 7) - -// PlaceIt -G4VPhysicalVolume*(G4EzVolume::*f1_PlaceIt) - (const G4ThreeVector&, G4int, G4EzVolume*) = &G4EzVolume::PlaceIt; - -G4VPhysicalVolume*(G4EzVolume::*f2_PlaceIt) - (const G4Transform3D&, G4int, G4EzVolume*) = &G4EzVolume::PlaceIt; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_PlaceIt, PlaceIt, 1, 3) - -// ReplicateIt -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ReplicateIt, ReplicateIt, 4, 5) - -// SetColor -void (G4EzVolume::*f1_SetColor)(const G4Color&) = &G4EzVolume::SetColor; -void (G4EzVolume::*f2_SetColor)(G4double, G4double, G4double) - = &G4EzVolume::SetColor; - -} - -using namespace pyEZgeom; - -// ==================================================================== -// Expose to Python -// ==================================================================== - -BOOST_PYTHON_MODULE(_ezgeom) { - - class_("G4EzVolume", "an easy way of geometry configuration") - .def(init()) - // --- - .def("CreateBoxVolume", &G4EzVolume::CreateBoxVolume) - .def("CreateTubeVolume", &G4EzVolume::CreateTubeVolume, - f_CreateTubeVolume()) - .def("CreateConeVolume", &G4EzVolume::CreateConeVolume, - f_CreateConeVolume()) - .def("CreateShpereVolume", &G4EzVolume::CreateSphereVolume, - f_CreateSphereVolume()) - .def("CreateOrbVolume", &G4EzVolume::CreateOrbVolume) - // --- - .def("SetSold", &G4EzVolume::SetSolid) - .def("GetSold", &G4EzVolume::GetSolid, - return_value_policy()) - .def("SetMaterial", &G4EzVolume::SetMaterial) - .def("GetMaterial", &G4EzVolume::GetMaterial, - return_value_policy()) - // --- - .def("PlaceIt", f1_PlaceIt, - f_PlaceIt()[return_value_policy()]) - .def("PlaceIt", f2_PlaceIt, - f_PlaceIt()[return_value_policy()]) - .def("ReplicateIt", &G4EzVolume::ReplicateIt, - f_ReplicateIt()[return_value_policy()]) - .def("VoxelizeIt", &G4EzVolume::VoxelizeIt) - // --- - .def("SetSensitiveDetector", &G4EzVolume::SetSensitiveDetector) - // --- - .def("SetColor", f1_SetColor) - .def("SetColor", f2_SetColor) - .def("SetVisibility", &G4EzVolume::SetVisibility) - ; - - // ------------------------------------------------------------------- - def("Construct", Construct); - def("ResetWorld", ResetWorld); - def("ResizeWorld", ResizeWorld); - def("SetWorldMaterial", SetWorldMaterial); - def("SetWorldVisibility", SetWorldVisibility); - -} diff --git a/environments/g4py/tests/gtest01/CMakeLists.txt b/environments/g4py/tests/gtest01/CMakeLists.txt deleted file mode 100644 index d8d4d387d1..0000000000 --- a/environments/g4py/tests/gtest01/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -add_subdirectory(module) -configure_file(test.py test.py) -add_test(NAME geant4py-test01 COMMAND ${PYTHON_EXECUTABLE} test.py) -set_tests_properties(geant4py-test01 PROPERTIES ENVIRONMENT "PYTHONPATH=${GEANT4_PYTHON_OUTPUT_DIR};${GEANT4_TEST_ENVIRONMENT}") diff --git a/environments/g4py/tests/gtest01/gun.mac b/environments/g4py/tests/gtest01/gun.mac deleted file mode 100644 index 035f4c4c59..0000000000 --- a/environments/g4py/tests/gtest01/gun.mac +++ /dev/null @@ -1,8 +0,0 @@ -# gun.mac - -/gun/number 1 -/gun/particle e- -/gun/energy 200 MeV -/gun/direction 0.2 0. 1. -/gun/position 0. 0. -14.9 cm - diff --git a/environments/g4py/tests/gtest01/module/CMakeLists.txt b/environments/g4py/tests/gtest01/module/CMakeLists.txt deleted file mode 100644 index 9e6c0d446c..0000000000 --- a/environments/g4py/tests/gtest01/module/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -# - build test library - -# library -set(_TARGET gtest01) -g4py_add_module(${_TARGET} - Particles.cc - PhysicsListEMstd.cc - QDetectorConstruction.cc - QEventAction.cc - QMaterials.cc - QPhysicsList.cc - QPrimaryGeneratorAction.cc - gtest01.cc -) -target_link_libraries(${_TARGET} PRIVATE G4particles G4processes G4run) - diff --git a/environments/g4py/tests/gtest01/module/Particles.cc b/environments/g4py/tests/gtest01/module/Particles.cc deleted file mode 100644 index be72d0f596..0000000000 --- a/environments/g4py/tests/gtest01/module/Particles.cc +++ /dev/null @@ -1,80 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// Particles.cc -// -// Physics list for defining particles -// -// ==================================================================== -#include "Particles.hh" - -#include "G4LeptonConstructor.hh" -#include "G4BosonConstructor.hh" -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4ShortLivedConstructor.hh" -#include "G4IonConstructor.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== - -////////////////////////////////////// -Particles::Particles() - : G4VPhysicsConstructor("Particles") -////////////////////////////////////// -{ -} - - -/////////////////////// -Particles::~Particles() -/////////////////////// -{ -} - - -/////////////////////////////////// -void Particles::ConstructParticle() -/////////////////////////////////// -{ - G4LeptonConstructor::ConstructParticle(); - G4BosonConstructor::ConstructParticle(); - G4MesonConstructor::ConstructParticle(); - G4BaryonConstructor::ConstructParticle(); - G4ShortLivedConstructor::ConstructParticle(); - G4IonConstructor::ConstructParticle(); -} - - -////////////////////////////////// -void Particles::ConstructProcess() -////////////////////////////////// -{ -} - diff --git a/environments/g4py/tests/gtest01/module/Particles.hh b/environments/g4py/tests/gtest01/module/Particles.hh deleted file mode 100644 index 23546113c8..0000000000 --- a/environments/g4py/tests/gtest01/module/Particles.hh +++ /dev/null @@ -1,53 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// Particles.hh -// -// 2004 Q -// ==================================================================== -#ifndef PARTICLES_H -#define PARTICLES_H - -#include "G4VPhysicsConstructor.hh" - -// ==================================================================== -// -// class definition -// -// ==================================================================== - -class Particles : public G4VPhysicsConstructor { - -public: - Particles(); - ~Particles(); - - virtual void ConstructParticle(); - virtual void ConstructProcess(); -}; - -#endif - diff --git a/environments/g4py/tests/gtest01/module/PhysicsListEMstd.cc b/environments/g4py/tests/gtest01/module/PhysicsListEMstd.cc deleted file mode 100644 index d1a2ac434b..0000000000 --- a/environments/g4py/tests/gtest01/module/PhysicsListEMstd.cc +++ /dev/null @@ -1,121 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// PhysicsListEMstd.cc -// -// Physics list for electron/positron/gamma -// EM-standard package w/ default parameters -// -// ==================================================================== -#include "PhysicsListEMstd.hh" - -#include "G4ProcessManager.hh" -#include "G4ParticleDefinition.hh" - -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "G4NeutrinoE.hh" -#include "G4AntiNeutrinoE.hh" - -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" -#include "G4eMultipleScattering.hh" -#include "G4eIonisation.hh" -#include "G4eBremsstrahlung.hh" -#include "G4eplusAnnihilation.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== - -//////////////////////////////////// -PhysicsListEMstd::PhysicsListEMstd() - : G4VPhysicsConstructor("EM-std") -//////////////////////////////////// -{ -} - - -///////////////////////////////////// -PhysicsListEMstd::~PhysicsListEMstd() -///////////////////////////////////// -{ -} - - -////////////////////////////////////////// -void PhysicsListEMstd::ConstructParticle() -////////////////////////////////////////// -{ -} - - -///////////////////////////////////////// -void PhysicsListEMstd::ConstructProcess() -///////////////////////////////////////// -{ - G4ProcessManager* pm; - - // ---------------------------------------------------------- - // gamma physics - // ---------------------------------------------------------- - pm= G4Gamma::Gamma()-> GetProcessManager(); - pm-> AddDiscreteProcess(new G4PhotoElectricEffect); - pm-> AddDiscreteProcess(new G4ComptonScattering); - pm-> AddDiscreteProcess(new G4GammaConversion); - - // ---------------------------------------------------------- - // electron physics - // ---------------------------------------------------------- - G4eMultipleScattering* msc= new G4eMultipleScattering; - G4eIonisation* eion= new G4eIonisation; - G4eBremsstrahlung* ebrems= new G4eBremsstrahlung; - - pm= G4Electron::Electron()->GetProcessManager(); - pm-> AddProcess(msc, ordInActive, 1, 1); - pm-> AddProcess(eion, ordInActive, 2, 2); - pm-> AddProcess(ebrems, ordInActive, ordInActive, 3); - - // ---------------------------------------------------------- - // positron physics - // ---------------------------------------------------------- - msc= new G4eMultipleScattering; - eion= new G4eIonisation; - ebrems= new G4eBremsstrahlung; - G4eplusAnnihilation* annihilation= new G4eplusAnnihilation; - - pm= G4Positron::Positron()-> GetProcessManager(); - pm-> AddProcess(msc, ordInActive, 1, 1); - pm-> AddProcess(eion, ordInActive, 2, 2); - pm-> AddProcess(ebrems, ordInActive, ordInActive, 3); - pm-> AddProcess(annihilation, 0, ordInActive, 4); - -} - diff --git a/environments/g4py/tests/gtest01/module/PhysicsListEMstd.hh b/environments/g4py/tests/gtest01/module/PhysicsListEMstd.hh deleted file mode 100644 index deacfb9997..0000000000 --- a/environments/g4py/tests/gtest01/module/PhysicsListEMstd.hh +++ /dev/null @@ -1,53 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// PhysicsListEMstd.hh -// -// 2004 Q -// ==================================================================== -#ifndef PHYSICS_LIST_EM_STD_H -#define PHYSICS_LIST_EM_STD_H - -#include "G4VPhysicsConstructor.hh" - -// ==================================================================== -// -// class definition -// -// ==================================================================== - -class PhysicsListEMstd : public G4VPhysicsConstructor { - -public: - PhysicsListEMstd(); - ~PhysicsListEMstd(); - - virtual void ConstructParticle(); - virtual void ConstructProcess(); -}; - -#endif - diff --git a/environments/g4py/tests/gtest01/module/QDetectorConstruction.cc b/environments/g4py/tests/gtest01/module/QDetectorConstruction.cc deleted file mode 100644 index 3863c82ecf..0000000000 --- a/environments/g4py/tests/gtest01/module/QDetectorConstruction.cc +++ /dev/null @@ -1,144 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// QDetectorConstruction.cc -// -// 2005 Q -// ==================================================================== -#include "QDetectorConstruction.hh" - -#include "G4Material.hh" -#include "G4Tubs.hh" -#include "G4Box.hh" -#include "G4LogicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4VisAttributes.hh" -#include "G4SystemOfUnits.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== - -// constants (detector parameters) -static const G4double DXYZ_AREA= 30.*cm; - -////////////////////////////////////////////// -QDetectorConstruction::QDetectorConstruction() -////////////////////////////////////////////// -{ -} - -/////////////////////////////////////////////// -QDetectorConstruction::~QDetectorConstruction() -/////////////////////////////////////////////// -{ -} - -///////////////////////////////////////////////////// -G4VPhysicalVolume* QDetectorConstruction::Construct() -///////////////////////////////////////////////////// -{ - G4Material* mate; - G4VisAttributes* va; - - // ============================================================== - // world volume - // ============================================================== - G4Box* areaSolid= new G4Box("AREA", - DXYZ_AREA/2., DXYZ_AREA/2., DXYZ_AREA/2.); - - G4Material* vacuum= G4Material::GetMaterial("Vacuum"); - G4LogicalVolume* areaLV= new G4LogicalVolume(areaSolid, vacuum, "AREA_LV"); - G4PVPlacement* area= new G4PVPlacement(0, G4ThreeVector(), "AREA_PV", - areaLV, 0, false, 0); - // vis. attributes - va= new G4VisAttributes(G4Color(1.,1.,1.)); - va-> SetForceWireframe(true); - areaLV-> SetVisAttributes(va); - - // ============================================================== - // detectors - // ============================================================== - // voxel - const G4double dvoxel= 10.*mm; - const G4double dl= 10.*cm; - - G4Box* svoxel= new G4Box("voxel", dvoxel, dl, dvoxel); - mate= G4Material::GetMaterial("Vacuum"); - G4LogicalVolume* lvoxel= new G4LogicalVolume(svoxel, mate, "voxel"); - va= new G4VisAttributes(G4Color(0.,0.8,0.8)); - va-> SetVisibility(false); - lvoxel-> SetVisAttributes(va); - - G4int ix, iz; - G4int index=0; - for (iz=0; iz<5; iz++) { - for (ix=-7; ix<=7; ix++) { - G4double x0= (2.*ix)*cm; - G4double z0= (-13.+2.*iz)*cm; - /*G4PVPlacement* pvoxel=*/ new G4PVPlacement(0, G4ThreeVector(x0, 0., z0), - lvoxel, "voxel", areaLV, false, index); - index++; - } - } - - // tube - //G4Tubs* stube= new G4Tubs("tube", 15./2.*mm, 19./2.*mm, dl, - G4Tubs* stube= new G4Tubs("tube", 0.*mm, 19./2.*mm, dl, - 0., 360.*deg); - mate= G4Material::GetMaterial("Al"); - G4LogicalVolume* ltube= new G4LogicalVolume(stube, mate, "tube"); - va= new G4VisAttributes(G4Color(0.,0.8,0.8)); - ltube-> SetVisAttributes(va); - - G4RotationMatrix* rmtube= new G4RotationMatrix; - rmtube-> rotateX(-90.*deg); - /*G4PVPlacement* ptube=*/ new G4PVPlacement(rmtube, G4ThreeVector(), - ltube, "tube", lvoxel, false, 0); - - // cal - const G4double dxycal= 25.*mm; - const G4double dzcal= 3.*cm; - - G4Box* scal= new G4Box("cal", dxycal, dxycal, dzcal); - mate= G4Material::GetMaterial("CsI"); - G4LogicalVolume* lcal= new G4LogicalVolume(scal, mate, "cal"); - va= new G4VisAttributes(G4Color(0.5,0.5,0.)); - lcal-> SetVisAttributes(va); - - index= 0; - for (ix=-2; ix<=2; ix++) { - G4double x0= (5.*ix)*cm; - /*G4PVPlacement* pcal=*/ new G4PVPlacement(0, G4ThreeVector(x0, 0., 2.*cm), - lcal, "cal", areaLV, false, index); - index++; - } - - return area; -} - diff --git a/environments/g4py/tests/gtest01/module/QDetectorConstruction.hh b/environments/g4py/tests/gtest01/module/QDetectorConstruction.hh deleted file mode 100644 index 5b392c7da9..0000000000 --- a/environments/g4py/tests/gtest01/module/QDetectorConstruction.hh +++ /dev/null @@ -1,52 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// QDetectorConstruction.hh -// -// 2005 Q -// ==================================================================== -#ifndef Q_DETECTOR_CONSTRUCTION_H -#define Q_DETECTOR_CONSTRUCTION_H - -#include "G4VUserDetectorConstruction.hh" - -// ==================================================================== -// -// class definition -// -// ==================================================================== - -class QDetectorConstruction : public G4VUserDetectorConstruction { - -public: - QDetectorConstruction(); - ~QDetectorConstruction(); - - virtual G4VPhysicalVolume* Construct(); - -}; - -#endif diff --git a/environments/g4py/tests/gtest01/module/QEventAction.hh b/environments/g4py/tests/gtest01/module/QEventAction.hh deleted file mode 100644 index 51359111c9..0000000000 --- a/environments/g4py/tests/gtest01/module/QEventAction.hh +++ /dev/null @@ -1,52 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// QEventAction.hh -// -// 2005 Q -// ==================================================================== -#ifndef Q_EVENT_ACTION_H -#define Q_EVENT_ACTION_H - -#include "G4UserEventAction.hh" - -// ==================================================================== -// -// class definition -// -// ==================================================================== - -class QEventAction : public G4UserEventAction { -public: - QEventAction(); - ~QEventAction(); - - virtual void BeginOfEventAction(const G4Event* aevent); - virtual void EndOfEventAction(const G4Event* aevent); - -}; - -#endif diff --git a/environments/g4py/tests/gtest01/module/QMaterials.cc b/environments/g4py/tests/gtest01/module/QMaterials.cc deleted file mode 100644 index a62e45314c..0000000000 --- a/environments/g4py/tests/gtest01/module/QMaterials.cc +++ /dev/null @@ -1,163 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// QMaterials.cc -// -// 2005 Q -// ==================================================================== -#include "QMaterials.hh" -#include "G4Material.hh" -#include "G4SystemOfUnits.hh" -#include "G4PhysicalConstants.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== - -//////////////////////// -QMaterials::QMaterials() -//////////////////////// -{ -} - - -///////////////////////// -QMaterials::~QMaterials() -///////////////////////// -{ -} - - -//////////////////////////// -void QMaterials::Construct() -//////////////////////////// -{ - G4double A, Z; - - // ------------------------------------------------------------------------ - // Elements - // ------------------------------------------------------------------------ - G4Element* elH = new G4Element("Hydrogen","H", Z=1., A=1.00794*g/mole); - G4Element* elC = new G4Element("Carbon", "C", Z=6., A= 12.011 *g/mole); - G4Element* elN = new G4Element("Nitrogen","N", Z=7., A= 14.00674*g/mole); - G4Element* elO = new G4Element("Oxygen", "O", Z=8., A= 15.9994*g/mole); - G4Element* elNa = new G4Element("Sodium", "Na", Z=11., A= 22.989768*g/mole); - G4Element* elSi = new G4Element("Silicon", "Si", Z=14., A= 28.0855*g/mole); - G4Element* elAr = new G4Element("Argon", "Ar", Z=18., A= 39.948*g/mole); - G4Element* elI = new G4Element("Iodine", "I", Z=53., A= 126.90447*g/mole); - G4Element* elCs = new G4Element("Cesium", "Cs", Z=55., A= 132.90543*g/mole); - - // ------------------------------------------------------------------------ - // Materials - // ------------------------------------------------------------------------ - G4double density, massfraction; - G4int natoms, nel; - - // temperature of experimental hall is controlled at 20 degree. - const G4double expTemp= STP_Temperature+20.*kelvin; - - // vacuum - density= universe_mean_density; - G4Material* Vacuum= new G4Material("Vacuum", density, nel=2); - Vacuum-> AddElement(elN, .7); - Vacuum-> AddElement(elO, .3); - - // air - density= 1.2929e-03 *g/cm3; // at 20 degree - G4Material* Air= new G4Material("Air", density, nel=3, - kStateGas, expTemp); - G4double ttt= 75.47+23.20+1.28; - Air-> AddElement(elN, massfraction= 75.47/ttt); - Air-> AddElement(elO, massfraction= 23.20/ttt); - Air-> AddElement(elAr, massfraction= 1.28/ttt); - - // Ar gas - A= 39.948 *g/mole; - const G4double denAr= 1.782e-03 *g/cm3 * STP_Temperature/expTemp; - G4Material* Ar= new G4Material("ArgonGas", Z=18., A, denAr, - kStateGas, expTemp); - - // ethane (C2H6) - const G4double denEthane= 1.356e-3 *g/cm3 * STP_Temperature/expTemp; - G4Material* Ethane= new G4Material("Ethane", denEthane, nel=2, - kStateGas, expTemp); - Ethane-> AddElement(elC, natoms=2); - Ethane-> AddElement(elH, natoms=6); - - // Ar(50%) + ethane(50%) mixture - density= (denAr+denEthane)/2.; - G4Material* ArEthane= new G4Material("ArEthane", density, nel=2, - kStateGas, expTemp); - ArEthane-> AddMaterial(Ar, massfraction= denAr/density/2.); - ArEthane-> AddMaterial(Ethane, massfraction= denEthane/density/2.); - - // silicon - A= 28.0855 *g/mole; - density= 2.33 *g/cm3; - /*G4Material* Si=*/ new G4Material("SiliconWafer", Z=14., A, density); - - // alminium - A= 26.98 *g/mole; - density= 2.70 *g/cm3; - /*G4Material* Al=*/ new G4Material("Al", Z=13., A, density); - - // iron - A= 55.847 *g/mole; - density= 7.87 *g/cm3; - /*G4Material* Fe=*/ new G4Material("Iron", Z=26., A, density); - - // lead - A= 207.2 *g/mole; - density= 11.35 *g/cm3; - /*G4Material* Pb=*/ new G4Material("Lead", Z=82., A, density); - - // scintillator (Polystyene(C6H5CH=CH2)) - density= 1.032 *g/cm3; - G4Material* Scinti= new G4Material("Scinti", density, nel=2); - Scinti-> AddElement(elC, natoms=8); - Scinti-> AddElement(elH, natoms=8); - - // quartz (SiO2, crystalline) - density= 2.64 *g/cm3; - G4Material* Quartz= new G4Material("Quartz", density, nel= 2); - Quartz-> AddElement(elSi, natoms=1); - Quartz-> AddElement(elO, natoms=2); - - // NaI crystal - density= 3.67 *g/cm3; - G4Material* NaI= new G4Material("NaI", density, nel= 2); - NaI-> AddElement(elNa, natoms=1); - NaI-> AddElement(elI, natoms=1); - - // CsI crystal - density= 4.51 *g/cm3; - G4Material* CsI= new G4Material("CsI", density, nel= 2); - CsI-> AddElement(elCs, natoms=1); - CsI-> AddElement(elI, natoms=1); - -} diff --git a/environments/g4py/tests/gtest01/module/QPrimaryGeneratorAction.cc b/environments/g4py/tests/gtest01/module/QPrimaryGeneratorAction.cc deleted file mode 100644 index fb7702db82..0000000000 --- a/environments/g4py/tests/gtest01/module/QPrimaryGeneratorAction.cc +++ /dev/null @@ -1,60 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// QPrimaryGeneratorAction.cc -// -// 2005 Q -// ==================================================================== -#include "QPrimaryGeneratorAction.hh" -#include "G4ParticleGun.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== - -////////////////////////////////////////////////// -QPrimaryGeneratorAction::QPrimaryGeneratorAction() -////////////////////////////////////////////////// -{ - particleGun= new G4ParticleGun; -} - -/////////////////////////////////////////////////// -QPrimaryGeneratorAction::~QPrimaryGeneratorAction() -/////////////////////////////////////////////////// -{ - delete particleGun; -} - -///////////////////////////////////////////////////////////////// -void QPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) -///////////////////////////////////////////////////////////////// -{ - particleGun-> GeneratePrimaryVertex(anEvent); -} - diff --git a/environments/g4py/tests/gtest01/module/QPrimaryGeneratorAction.hh b/environments/g4py/tests/gtest01/module/QPrimaryGeneratorAction.hh deleted file mode 100644 index cefc3d33aa..0000000000 --- a/environments/g4py/tests/gtest01/module/QPrimaryGeneratorAction.hh +++ /dev/null @@ -1,63 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// QPrimaryGeneratorAction.hh -// -// 2005 Q -// ==================================================================== -#ifndef Q_PRIMARY_GENERATOR_ACTION_H -#define Q_PRIMARY_GENERATOR_ACTION_H - -#include "G4VUserPrimaryGeneratorAction.hh" - -class G4ParticleGun; - -// ==================================================================== -// -// class definition -// -// ==================================================================== -class QPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { -private: - // use G4 particle gun - G4ParticleGun* particleGun; - -public: - QPrimaryGeneratorAction(); - ~QPrimaryGeneratorAction(); - - G4ParticleGun* GetParticleGun() const; - - virtual void GeneratePrimaries(G4Event* anEvent); -}; - -// ==================================================================== -// inline functions -// ==================================================================== -inline G4ParticleGun* QPrimaryGeneratorAction::GetParticleGun() const -{ return particleGun; } - -#endif diff --git a/environments/g4py/tests/gtest01/module/gtest01.cc b/environments/g4py/tests/gtest01/module/gtest01.cc deleted file mode 100644 index 44dc1347e4..0000000000 --- a/environments/g4py/tests/gtest01/module/gtest01.cc +++ /dev/null @@ -1,73 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// ==================================================================== -// gtest01.cc -// -// python wrapper for user application -// 2005 Q -// ==================================================================== -#include -#include "QMaterials.hh" -#include "QDetectorConstruction.hh" -#include "QPhysicsList.hh" -#include "QPrimaryGeneratorAction.hh" -#include "G4ParticleGun.hh" -#include "QEventAction.hh" - -using namespace boost::python; - -// ==================================================================== -// Expose to Python -// ==================================================================== - -BOOST_PYTHON_MODULE(gtest01) { - class_("QMaterials", "my material") - .def("Construct", &QMaterials::Construct) - ; - - class_ > - ("QDetectorConstruction", "my detector") - ; - - class_ > - ("QPhysicsList", "my physics list") - ; - - class_ > - ("QPrimaryGeneratorAction", "my primary generator action") - .def("GetParticleGun", &QPrimaryGeneratorAction::GetParticleGun, - return_internal_reference<>()) - ; - - class_ > - ("QEventAction", "my event action") - ; -} - diff --git a/environments/g4py/tests/gtest01/root_test.py b/environments/g4py/tests/gtest01/root_test.py deleted file mode 100755 index 091ca04fa6..0000000000 --- a/environments/g4py/tests/gtest01/root_test.py +++ /dev/null @@ -1,143 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# python script for Geant4Py test -# -# gtest01 -# - check basic control flow -# ================================================================== -from Geant4 import * -import gtest01 -import ROOT - -# ================================================================== -# ROOT PART # -# ================================================================== - -# ------------------------------------------------------------------ -def init_root(): -# ------------------------------------------------------------------ - ROOT.gROOT.Reset() - - # plot style - ROOT.gStyle.SetTextFont(82) - ROOT.gStyle.SetTitleFont(82, "X") - ROOT.gStyle.SetLabelFont(82, "X") - ROOT.gStyle.SetTitleFont(82, "Y") - ROOT.gStyle.SetLabelFont(82, "Y") - - #ROOT.gStyle.SetOptTitle(0) - ROOT.gStyle.SetErrorX(0) - - canvas= ROOT.TCanvas("g4py_plots", - "Geant4Py Sample Plots", - 620, 30, 600, 400) - - #canvas.Divide(2,2); - #canvas.SetFillColor(29) - - canvas.SetGrid() - - return canvas - -# ------------------------------------------------------------------ -def hini(): -# ------------------------------------------------------------------ - global hist1 - hist1= ROOT.TH1D("dE/dx/step", "dE/dx", 100, 0., 2000.) - hist1.SetXTitle("(keV)") - - -# ------------------------------------------------------------------ -def hshow(): -# ------------------------------------------------------------------ - hist1.Draw() - -# ================================================================== -# Geant4 PART # -# ================================================================== - -# ================================================================== -# user actions in python -# ================================================================== -class MyPrimaryGeneratorAction(G4VUserPrimaryGeneratorAction): - "My Primary Generator Action" - - def __init__(self): - G4VUserPrimaryGeneratorAction.__init__(self) - self.particleGun= G4ParticleGun(1) - - def GeneratePrimaries(self, event): - self.particleGun.GeneratePrimaryVertex(event) - -# ------------------------------------------------------------------ -class MyRunAction(G4UserRunAction): - "My Run Action" - - def BeginOfRunAction(self, run): - print "*** #event to be processed (BRA)=", - run.numberOfEventToBeProcessed - - def EndOfRunAction(self, run): - print "*** run end run(ERA)=", run.runID - -# ------------------------------------------------------------------ -class MyEventAction(G4UserEventAction): - "My Event Action" - - def BeginOfEventAction(self, event): - print "*** current event (BEA)=", event.eventID - - def EndOfEventAction(self, event): - print "*** current event (EEA)=", event.eventID - -# ------------------------------------------------------------------ -class MySteppingAction(G4UserSteppingAction): - "My Stepping Action" - - def UserSteppingAction(self, step): - #print "*** dE/dx in current step=", step.GetTotalEnergyDeposit() - dedx= step.GetTotalEnergyDeposit() - if(dedx>0): - hist1.Fill(dedx/HEPUnit.keV) - -# ================================================================== -# main -# ================================================================== -g4pyCanvas= init_root() -hini() - -app= gtest01.MyApplication() -app.Configure() - -# set user actions... -myPGA= MyPrimaryGeneratorAction() -gRunManager.SetUserAction(myPGA) - -myRA= MyRunAction() -gRunManager.SetUserAction(myRA) - -#myEA= MyEventAction() -#gRunManager.SetUserAction(myEA) - -mySA= MySteppingAction() -gRunManager.SetUserAction(mySA) - - -# set particle gun -#ApplyUICommand("/control/execute gun.mac") -pg= myPGA.particleGun -pg.SetParticleByName("e-") -pg.SetParticleEnergy(200.*HEPUnit.MeV) -pg.SetParticleMomentumDirection(G4ThreeVector(0.2, 0., 1.)) -pg.SetParticlePosition(G4ThreeVector(0.,0.,-14.9)*HEPUnit.cm) - -# visualization -ApplyUICommand("/control/execute vis.mac") - -# beamOn -gRunManager.BeamOn(1000) - -# -hshow() - - diff --git a/environments/g4py/tests/gtest01/run.py b/environments/g4py/tests/gtest01/run.py deleted file mode 100755 index c254071d6f..0000000000 --- a/environments/g4py/tests/gtest01/run.py +++ /dev/null @@ -1,123 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# python script for Geant4Py test -# -# gtest01 -# - check basic control flow -# ================================================================== -from Geant4 import * -import gtest01 -import random -#import thread - -# ================================================================== -# user actions in python -# ================================================================== -class MyPrimaryGeneratorAction(G4VUserPrimaryGeneratorAction): - "My Primary Generator Action" - - def __init__(self): - G4VUserPrimaryGeneratorAction.__init__(self) - self.particleGun= G4ParticleGun(1) - - def GeneratePrimaries(self, event): - #dx= random.gauss(0., 0.1) - dx=0. - self.particleGun.SetParticleMomentumDirection(G4ThreeVector(dx, 0., 1.)) - self.particleGun.GeneratePrimaryVertex(event) - -# ------------------------------------------------------------------ -class MyRunAction(G4UserRunAction): - "My Run Action" - - def BeginOfRunAction(self, run): - print "*** #event to be processed (BRA)=", - run.GetNumberOfEventToBeProcessed() - - def EndOfRunAction(self, run): - print "*** run end run(ERA)=", run.GetRunID() - -# ------------------------------------------------------------------ -class MyEventAction(G4UserEventAction): - "My Event Action" - - #def BeginOfEventAction(self, event): - #print "*** current event (BEA)=", event.GetEventID() - # pass - - #def EndOfEventAction(self, event): - # print "*** current event (EEA)=", event.GetEventID() - -# ------------------------------------------------------------------ -class MySteppingAction(G4UserSteppingAction): - "My Stepping Action" - - def UserSteppingAction(self, step): - #print "*** dE/dx in current step=", step.GetTotalEnergyDeposit() - track= step.GetTrack() - touchable= track.GetTouchable() - pv= touchable.GetVolume() - #print pv.GetCopyNo() - #print touchable.GetReplicaNumber(0) - -# ------------------------------------------------------------------ -class MyField(G4MagneticField): - "My Magnetic Field" - - def GetFieldValue(self, pos, time): - bfield= G4ThreeVector() - bfield.x= 0. - bfield.y= 5.*tesla - bfield.z= 0. - return bfield - -# ================================================================== -# main -# ================================================================== -qMaterials= gtest01.QMaterials() -qMaterials.Construct() - -qDC= gtest01.QDetectorConstruction() -gRunManager.SetUserInitialization(qDC) - -qPL= gtest01.QPhysicsList() -gRunManager.SetUserInitialization(qPL) - -# set user actions... -#qPGA= gtest01.QPrimaryGeneratorAction() -myPGA= MyPrimaryGeneratorAction() -gRunManager.SetUserAction(myPGA) - -#myRA= MyRunAction() -#gRunManager.SetUserAction(myRA) - -myEA= MyEventAction() -gRunManager.SetUserAction(myEA) - -mySA= MySteppingAction() -gRunManager.SetUserAction(mySA) - -# set particle gun -#ApplyUICommand("/control/execute gun.mac") -#pg= qPGA.GetParticleGun() -pg= myPGA.particleGun -pg.SetParticleByName("e-") -pg.SetParticleEnergy(200.*MeV) -pg.SetParticlePosition(G4ThreeVector(0.,0.,-14.9)*cm) - -# magnetic field -fieldMgr= gTransportationManager.GetFieldManager() -myField= G4UniformMagField(G4ThreeVector(0.,10.*tesla,0.)) -#myField= MyField() -fieldMgr.SetDetectorField(myField) -fieldMgr.CreateChordFinder(myField) - -gRunManager.Initialize() - -# visualization -gControlExecute("vis.mac") - -# beamOn -gRunManager.BeamOn(10) -#thread.start_new_thread(gRunManager.BeamOn, (100000)) - diff --git a/environments/g4py/tests/gtest01/test.py b/environments/g4py/tests/gtest01/test.py deleted file mode 100755 index 5ce0964dd8..0000000000 --- a/environments/g4py/tests/gtest01/test.py +++ /dev/null @@ -1,118 +0,0 @@ -#!/usr/bin/python3 -# ================================================================== -# python script for Geant4Py test -# -# gtest01 -# - check basic control flow -# ================================================================== -from Geant4 import * -import gtest01 -import random - -# ================================================================== -# user actions in python -# ================================================================== -class MyPrimaryGeneratorAction(G4VUserPrimaryGeneratorAction): - "My Primary Generator Action" - - def __init__(self): - G4VUserPrimaryGeneratorAction.__init__(self) - self.particleGun= G4ParticleGun(1) - - def GeneratePrimaries(self, event): - #dx= random.gauss(0., 0.1) - dx=0. - self.particleGun.SetParticleMomentumDirection(G4ThreeVector(dx, 0., 1.)) - self.particleGun.GeneratePrimaryVertex(event) - -# ------------------------------------------------------------------ -class MyRunAction(G4UserRunAction): - "My Run Action" - - def BeginOfRunAction(self, run): - print("*** #event to be processed (BRA)=", - run.GetNumberOfEventToBeProcessed()) - - def EndOfRunAction(self, run): - print("*** run end run(ERA)=", run.GetRunID()) - -# ------------------------------------------------------------------ -class MyEventAction(G4UserEventAction): - "My Event Action" - - #def BeginOfEventAction(self, event): - #print("*** current event (BEA)=", event.GetEventID()) - # pass - - #def EndOfEventAction(self, event): - #print("*** current event (EEA)=", event.GetEventID()) - -# ------------------------------------------------------------------ -class MySteppingAction(G4UserSteppingAction): - "My Stepping Action" - - def UserSteppingAction(self, step): - #print("*** dE/dx in current step=", step.GetTotalEnergyDeposit()) - track= step.GetTrack() - touchable= track.GetTouchable() - pv= touchable.GetVolume() - #print(pv.GetCopyNo()) - #print(touchable.GetReplicaNumber(0)) - -# ------------------------------------------------------------------ -class MyField(G4MagneticField): - "My Magnetic Field" - - def GetFieldValue(self, pos, time): - bfield= G4ThreeVector() - bfield.x= 0. - bfield.y= 5.*tesla - bfield.z= 0. - return bfield - -# ================================================================== -# main -# ================================================================== -qMaterials= gtest01.QMaterials() -qMaterials.Construct() - -qDC= gtest01.QDetectorConstruction() -gRunManager.SetUserInitialization(qDC) - -qPL= gtest01.QPhysicsList() -gRunManager.SetUserInitialization(qPL) - -# set user actions... -#qPGA= gtest01.QPrimaryGeneratorAction() -myPGA= MyPrimaryGeneratorAction() -gRunManager.SetUserAction(myPGA) - -#myRA= MyRunAction() -#gRunManager.SetUserAction(myRA) - -myEA= MyEventAction() -gRunManager.SetUserAction(myEA) - -mySA= MySteppingAction() -gRunManager.SetUserAction(mySA) - -# set particle gun -#ApplyUICommand("/control/execute gun.mac") -#pg= qPGA.GetParticleGun() -pg= myPGA.particleGun -pg.SetParticleByName("e-") -pg.SetParticleEnergy(200.*MeV) -pg.SetParticlePosition(G4ThreeVector(0.,0.,-14.9)*cm) - -# magnetic field -fieldMgr= gTransportationManager.GetFieldManager() -myField= G4UniformMagField(G4ThreeVector(0.,10.*tesla,0.)) -#myField= MyField() -fieldMgr.SetDetectorField(myField) -fieldMgr.CreateChordFinder(myField) - -gRunManager.Initialize() - -# beamOn -gRunManager.BeamOn(10) -gTerminate() diff --git a/environments/g4py/tests/gtest01/vis.mac b/environments/g4py/tests/gtest01/vis.mac deleted file mode 100644 index 4563dbe1f4..0000000000 --- a/environments/g4py/tests/gtest01/vis.mac +++ /dev/null @@ -1,16 +0,0 @@ -# vis.mac - -/vis/open OGLSX - -/vis/scene/create -/vis/scene/add/volume -#/vis/scene/add/volume cal 3 - -/vis/sceneHandler/attach - -/vis/viewer/set/viewpointThetaPhi 90. -90. - -/tracking/storeTrajectory 1 -/vis/scene/add/trajectories -/vis/scene/endOfEventAction accumulate - diff --git a/environments/g4py/tests/gtest01/vrml.mac b/environments/g4py/tests/gtest01/vrml.mac deleted file mode 100644 index 8494e3fe6d..0000000000 --- a/environments/g4py/tests/gtest01/vrml.mac +++ /dev/null @@ -1,11 +0,0 @@ -/vis/scene/create -/vis/scene/add/volume - -/vis/sceneHandler/create VRML2FILE - -/vis/viewer/create - -/tracking/storeTrajectory 1 -/vis/scene/add/trajectories -/vis/scene/endOfEventAction accumulate - diff --git a/environments/g4py/tests/gtest02/CMakeLists.txt b/environments/g4py/tests/gtest02/CMakeLists.txt deleted file mode 100644 index 364712d62c..0000000000 --- a/environments/g4py/tests/gtest02/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -configure_file(test.py test.py) -add_test(NAME geant4py-test02 COMMAND ${PYTHON_EXECUTABLE} test.py) -set_tests_properties(geant4py-test02 PROPERTIES ENVIRONMENT "PYTHONPATH=${GEANT4_PYTHON_OUTPUT_DIR};${GEANT4_TEST_ENVIRONMENT}") diff --git a/environments/g4py/tests/gtest02/gun.mac b/environments/g4py/tests/gtest02/gun.mac deleted file mode 100644 index 035f4c4c59..0000000000 --- a/environments/g4py/tests/gtest02/gun.mac +++ /dev/null @@ -1,8 +0,0 @@ -# gun.mac - -/gun/number 1 -/gun/particle e- -/gun/energy 200 MeV -/gun/direction 0.2 0. 1. -/gun/position 0. 0. -14.9 cm - diff --git a/environments/g4py/tests/gtest02/run.py b/environments/g4py/tests/gtest02/run.py deleted file mode 100755 index 0e9b0eef36..0000000000 --- a/environments/g4py/tests/gtest02/run.py +++ /dev/null @@ -1,133 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# python script for Geant4Py test -# -# gtest02 -# - test for using site-module packages -# ================================================================== -from Geant4 import * -import g4py.Qmaterials, g4py.NISTmaterials -import g4py.Qgeom, g4py.ExN01geom, g4py.ExN03geom -import g4py.ExN01pl, g4py.EMSTDpl -import g4py.ParticleGun, g4py.MedicalBeam - -# ================================================================== -# user setup -# ================================================================== - -# ------------------------------------------------------------------ -# Setup-0 (Q) -# ------------------------------------------------------------------ -def Setup0(): - # simple materials for Qgeom - g4py.Qmaterials.Construct() - - # NIST materials - #g4py.NISTmaterials.Construct() - - # normal way for constructing user geometry - #qDC= g4py.Qgeom.QDetectorConstruction() - #gRunManager.SetUserInitialization(qDC) - - # 2nd way, short-cut way - g4py.Qgeom.Construct() - - # primary - global primary_position, primary_direction - primary_position= G4ThreeVector(0.,0., -14.9*cm) - primary_direction= G4ThreeVector(0.2, 0., 1.) - - -# ------------------------------------------------------------------ -# Setup-1 (ExampleN01) -# ------------------------------------------------------------------ -def Setup1(): - g4py.ExN01geom.Construct() - - global primary_position, primary_direction - primary_position= G4ThreeVector(-2.5*m, 0., 0.) - primary_direction= G4ThreeVector(1., 0., 0.) - - -# ------------------------------------------------------------------ -# Setup-3 (ExampleN03) -# ------------------------------------------------------------------ -def Setup3(): - #exN03geom= g4py.ExN03geom.ExN03DetectorConstruction() - #gRunManager.SetUserInitialization(exN03geom) - - g4py.ExN03geom.Construct() - - global primary_position, primary_direction - primary_position= G4ThreeVector(-1.*m, 0., 0.) - primary_direction= G4ThreeVector(1., 0., 0.) - - -# ================================================================== -# main -# ================================================================== -# ------------------------------------------------------------------ -# randum number -# ------------------------------------------------------------------ -rand_engine= Ranlux64Engine() -HepRandom.setTheEngine(rand_engine) -HepRandom.setTheSeed(20050830L) - -# ------------------------------------------------------------------ -# user setup -# ------------------------------------------------------------------ -Setup0() -#Setup1() -#Setup3() - - -# ------------------------------------------------------------------ -# setup for physics list -# ------------------------------------------------------------------ -# normal way for constructing user physics list -#exN01PL= ExN01PhysicsList.ExN01PhysicsList() -#gRunManager.SetUserInitialization(exN01PL) - -# 2nd way, short-cut way -# geantino + transportation -#g4py.ExN01pl.Construct() - -# electron/gamma standard EM -g4py.EMSTDpl.Construct() - -# ------------------------------------------------------------------ -# setup for primary generator action -# ------------------------------------------------------------------ -# ------------ -# Particle Gun -# ------------ -# normal way for constructing user physics list -#pgPGA= g4py.ParticleGun.ParticleGunAction() -#gRunManager.SetUserAction(pgPGA) -#pg= pgPGA.GetParticleGun() - -# 2nd way, short-cut way -pg= g4py.ParticleGun.Construct() - -# set parameters of particle gun -pg.SetParticleByName("e-") -pg.SetParticleEnergy(300.*MeV) -pg.SetParticlePosition(primary_position) -pg.SetParticleMomentumDirection(primary_direction) - -# ------------ -# Medical Beam -# ------------ -#beam= g4py.MedicalBeam.Construct() - -# ------------------------------------------------------------------ -# go... -# ------------------------------------------------------------------ -gRunManager.Initialize() - -# visualization -gApplyUICommand("/control/execute vis.mac") - -# beamOn -#gRunManager.BeamOn(3) - diff --git a/environments/g4py/tests/gtest02/test.py b/environments/g4py/tests/gtest02/test.py deleted file mode 100755 index 3010c10bdc..0000000000 --- a/environments/g4py/tests/gtest02/test.py +++ /dev/null @@ -1,133 +0,0 @@ -#!/usr/bin/python3 -# ================================================================== -# python script for Geant4Py test -# -# gtest02 -# - test for using site-module packages -# ================================================================== -from Geant4 import * -import g4pytest.Qmaterials, g4pytest.NISTmaterials -import g4pytest.Qgeom, g4pytest.ExN01geom, g4pytest.ExN03geom -import g4pytest.ExN01pl, g4pytest.EMSTDpl -import g4pytest.ParticleGun, g4pytest.MedicalBeam - -# ================================================================== -# user setup -# ================================================================== - -# ------------------------------------------------------------------ -# Setup-0 (Q) -# ------------------------------------------------------------------ -def Setup0(): - # simple materials for Qgeom - g4pytest.Qmaterials.Construct() - - # NIST materials - #g4pytest.NISTmaterials.Construct() - - # normal way for constructing user geometry - #qDC= g4pytest.Qgeom.QDetectorConstruction() - #gRunManager.SetUserInitialization(qDC) - - # 2nd way, short-cut way - g4pytest.Qgeom.Construct() - - # primary - global primary_position, primary_direction - primary_position= G4ThreeVector(0.,0., -14.9*cm) - primary_direction= G4ThreeVector(0.2, 0., 1.) - - -# ------------------------------------------------------------------ -# Setup-1 (ExampleN01) -# ------------------------------------------------------------------ -def Setup1(): - g4pytest.ExN01geom.Construct() - - global primary_position, primary_direction - primary_position= G4ThreeVector(-2.5*m, 0., 0.) - primary_direction= G4ThreeVector(1., 0., 0.) - - -# ------------------------------------------------------------------ -# Setup-3 (ExampleN03) -# ------------------------------------------------------------------ -def Setup3(): - #exN03geom= g4pytest.ExN03geom.ExN03DetectorConstruction() - #gRunManager.SetUserInitialization(exN03geom) - - g4pytest.ExN03geom.Construct() - - global primary_position, primary_direction - primary_position= G4ThreeVector(-1.*m, 0., 0.) - primary_direction= G4ThreeVector(1., 0., 0.) - - -# ================================================================== -# main -# ================================================================== -# ------------------------------------------------------------------ -# randum number -# ------------------------------------------------------------------ -rand_engine= Ranlux64Engine() -HepRandom.setTheEngine(rand_engine) -HepRandom.setTheSeed(20050830) - -# ------------------------------------------------------------------ -# user setup -# ------------------------------------------------------------------ -Setup0() -#Setup1() -#Setup3() - - -# ------------------------------------------------------------------ -# setup for physics list -# ------------------------------------------------------------------ -# normal way for constructing user physics list -#exN01PL= ExN01PhysicsList.ExN01PhysicsList() -#gRunManager.SetUserInitialization(exN01PL) - -# 2nd way, short-cut way -# geantino + transportation -#g4pytest.ExN01pl.Construct() - -# electron/gamma standard EM -g4pytest.EMSTDpl.Construct() - -# ------------------------------------------------------------------ -# setup for primary generator action -# ------------------------------------------------------------------ -# ------------ -# Particle Gun -# ------------ -# normal way for constructing user physics list -#pgPGA= g4pytest.ParticleGun.ParticleGunAction() -#gRunManager.SetUserAction(pgPGA) -#pg= pgPGA.GetParticleGun() - -# 2nd way, short-cut way -pg= g4pytest.ParticleGun.Construct() - -# set parameters of particle gun -pg.SetParticleByName("e-") -pg.SetParticleEnergy(300.*MeV) -pg.SetParticlePosition(primary_position) -pg.SetParticleMomentumDirection(primary_direction) - -# ------------ -# Medical Beam -# ------------ -#beam= g4pytest.MedicalBeam.Construct() - -# ------------------------------------------------------------------ -# go... -# ------------------------------------------------------------------ -gRunManager.Initialize() - -# visualization -gApplyUICommand("/control/execute vis.mac") - -# beamOn -#gRunManager.BeamOn(3) - diff --git a/environments/g4py/tests/gtest02/vis.mac b/environments/g4py/tests/gtest02/vis.mac deleted file mode 100644 index ab6ad39430..0000000000 --- a/environments/g4py/tests/gtest02/vis.mac +++ /dev/null @@ -1,16 +0,0 @@ -# vis.mac - -/vis/open OGLSX - -/vis/scene/create -/vis/scene/add/volume - -/vis/sceneHandler/attach - -#/vis/viewer/set/viewpointThetaPhi 180. 0. -/vis/viewer/set/viewpointThetaPhi 90. -90. - -/tracking/storeTrajectory 1 -/vis/scene/add/trajectories -/vis/scene/endOfEventAction accumulate - diff --git a/environments/g4py/tests/gtest03/CMakeLists.txt b/environments/g4py/tests/gtest03/CMakeLists.txt deleted file mode 100644 index 12591040b2..0000000000 --- a/environments/g4py/tests/gtest03/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -configure_file(test.py test.py) -add_test(NAME geant4py-test03 COMMAND ${PYTHON_EXECUTABLE} test.py) -set_tests_properties(geant4py-test03 PROPERTIES ENVIRONMENT "PYTHONPATH=${GEANT4_PYTHON_OUTPUT_DIR};${GEANT4_TEST_ENVIRONMENT}") diff --git a/environments/g4py/tests/gtest03/gun.mac b/environments/g4py/tests/gtest03/gun.mac deleted file mode 100644 index fd853d6fff..0000000000 --- a/environments/g4py/tests/gtest03/gun.mac +++ /dev/null @@ -1,8 +0,0 @@ -# gun.mac - -/gun/number 1 -/gun/particle gamma -/gun/energy 1 MeV -/gun/direction 0. 0. 1. -/gun/position 0. 0. -20. cm - diff --git a/environments/g4py/tests/gtest03/run.py b/environments/g4py/tests/gtest03/run.py deleted file mode 100755 index ee2f7a4203..0000000000 --- a/environments/g4py/tests/gtest03/run.py +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# python script for Geant4Py test -# -# gtest02 -# - test for using site-module packages -# ================================================================== -from Geant4 import * -import g4py.NISTmaterials -import g4py.ezgeom -from g4py.ezgeom import G4EzVolume -import g4py.EMSTDpl -import g4py.ParticleGun - -# ================================================================== -# intialize -# ================================================================== -def Configure(): - # ------------------------------------------------------------------ - # setup for materials - # ------------------------------------------------------------------ - # simple materials for Qgeom - g4py.NISTmaterials.Construct() - - # ------------------------------------------------------------------ - # setup for geometry - # ------------------------------------------------------------------ - #g4py.Qgeom.Construct() - g4py.ezgeom.Construct() # initialize - - # ------------------------------------------------------------------ - # setup for physics list - # ------------------------------------------------------------------ - g4py.EMSTDpl.Construct() - - # ------------------------------------------------------------------ - # setup for primary generator action - # ------------------------------------------------------------------ - g4py.ParticleGun.Construct() - gControlExecute("gun.mac") - -# ================================================================== -# constructing geometry -# ================================================================== -def ConstructGeom(): - print "* Constructing geometry..." - # reset world material - air= G4Material.GetMaterial("G4_AIR") - g4py.ezgeom.SetWorldMaterial(air) - - # target - global target - target= G4EzVolume("Target") - au= G4Material.GetMaterial("G4_Au") - target.CreateTubeVolume(au, 0., 1.*cm, 1.*mm) - target.PlaceIt(G4ThreeVector(0.,0.,-10.*cm)) - - # dummy box - global detector_box, detector_box_pv - detector_box= G4EzVolume("DetectorBox") - detector_box.CreateBoxVolume(air, 20.*cm, 20.*cm, 40.*cm) - detector_box_pv= detector_box.PlaceIt(G4ThreeVector(0.,0.,20.*cm)) - - # calorimeter - global cal - cal= G4EzVolume("Calorimeter") - nai= G4Material.GetMaterial("G4_SODIUM_IODIDE") - cal.CreateBoxVolume(nai, 5.*cm, 5.*cm, 30.*cm) - dd= 5.*cm - for ical in range(-1, 2): - calPos= G4ThreeVector(dd*ical, 0., 0.) - print calPos - cal.PlaceIt(calPos, ical+1, detector_box) - - -# ================================================================== -# main -# ================================================================== -# ------------------------------------------------------------------ -# randum number -# ------------------------------------------------------------------ -rand_engine= Ranlux64Engine() -HepRandom.setTheEngine(rand_engine) -HepRandom.setTheSeed(20050830L) - -# setup... -Configure() -ConstructGeom() - -# ------------------------------------------------------------------ -# go... -# ------------------------------------------------------------------ -gRunManager.Initialize() - -# visualization -gControlExecute("vis.mac") - -# beamOn -#gRunManager.BeamOn(3) - diff --git a/environments/g4py/tests/gtest03/test.py b/environments/g4py/tests/gtest03/test.py deleted file mode 100755 index e5afa1cf1d..0000000000 --- a/environments/g4py/tests/gtest03/test.py +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/python3 -# ================================================================== -# python script for Geant4Py test -# -# gtest02 -# - test for using site-module packages -# ================================================================== -from Geant4 import * -import g4pytest.NISTmaterials -import g4pytest.ezgeom -from g4pytest.ezgeom import G4EzVolume -import g4pytest.EMSTDpl -import g4pytest.ParticleGun - -# ================================================================== -# intialize -# ================================================================== -def Configure(): - # ------------------------------------------------------------------ - # setup for materials - # ------------------------------------------------------------------ - # simple materials for Qgeom - g4pytest.NISTmaterials.Construct() - - # ------------------------------------------------------------------ - # setup for geometry - # ------------------------------------------------------------------ - #g4pytest.Qgeom.Construct() - g4pytest.ezgeom.Construct() # initialize - - # ------------------------------------------------------------------ - # setup for physics list - # ------------------------------------------------------------------ - g4pytest.EMSTDpl.Construct() - - # ------------------------------------------------------------------ - # setup for primary generator action - # ------------------------------------------------------------------ - g4pytest.ParticleGun.Construct() - gControlExecute("gun.mac") - -# ================================================================== -# constructing geometry -# ================================================================== -def ConstructGeom(): - print("* Constructing geometry...") - # reset world material - air= G4Material.GetMaterial("G4_AIR") - g4pytest.ezgeom.SetWorldMaterial(air) - - # target - global target - target= G4EzVolume("Target") - au= G4Material.GetMaterial("G4_Au") - target.CreateTubeVolume(au, 0., 1.*cm, 1.*mm) - target.PlaceIt(G4ThreeVector(0.,0.,-10.*cm)) - - # dummy box - global detector_box, detector_box_pv - detector_box= G4EzVolume("DetectorBox") - detector_box.CreateBoxVolume(air, 20.*cm, 20.*cm, 40.*cm) - detector_box_pv= detector_box.PlaceIt(G4ThreeVector(0.,0.,20.*cm)) - - # calorimeter - global cal - cal= G4EzVolume("Calorimeter") - nai= G4Material.GetMaterial("G4_SODIUM_IODIDE") - cal.CreateBoxVolume(nai, 5.*cm, 5.*cm, 30.*cm) - dd= 5.*cm - for ical in range(-1, 2): - calPos= G4ThreeVector(dd*ical, 0., 0.) - print(calPos) - cal.PlaceIt(calPos, ical+1, detector_box) - - -# ================================================================== -# main -# ================================================================== -# ------------------------------------------------------------------ -# randum number -# ------------------------------------------------------------------ -rand_engine= Ranlux64Engine() -HepRandom.setTheEngine(rand_engine) -HepRandom.setTheSeed(20050830) - -# setup... -Configure() -ConstructGeom() - -# ------------------------------------------------------------------ -# go... -# ------------------------------------------------------------------ -gRunManager.Initialize() - -# visualization -gControlExecute("vis.mac") - -# beamOn -#gRunManager.BeamOn(3) - diff --git a/environments/g4py/tests/gtest03/test_voxel.py b/environments/g4py/tests/gtest03/test_voxel.py deleted file mode 100755 index 82e5df3413..0000000000 --- a/environments/g4py/tests/gtest03/test_voxel.py +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/python -# ================================================================== -# python script for Geant4Py test -# -# gtest02 -# - test for using site-module packages -# ================================================================== -from Geant4 import * -import g4py.NISTmaterials -import g4py.ezgeom -from g4py.ezgeom import G4EzVolume -import g4py.EMSTDpl -import g4py.ParticleGun - -# ================================================================== -# intialize -# ================================================================== -def Configure(): - # ------------------------------------------------------------------ - # setup for materials - # ------------------------------------------------------------------ - # simple materials for Qgeom - g4py.NISTmaterials.Construct() - - # ------------------------------------------------------------------ - # setup for geometry - # ------------------------------------------------------------------ - #g4py.Qgeom.Construct() - g4py.ezgeom.Construct() # initialize - - # ------------------------------------------------------------------ - # setup for physics list - # ------------------------------------------------------------------ - g4py.EMSTDpl.Construct() - - # ------------------------------------------------------------------ - # setup for primary generator action - # ------------------------------------------------------------------ - g4py.ParticleGun.Construct() - gControlExecute("gun.mac") - - -# ================================================================== -# constructing geometry -# ================================================================== -def ConstructGeom(): - print "* Constructing geometry..." - # reset world material - air= G4Material.GetMaterial("G4_AIR") - g4py.ezgeom.SetWorldMaterial(air) - - # phantom - global phantom - phantom= G4EzVolume("DetectorBox") - water= G4Material.GetMaterial("G4_WATER") - phantom.CreateBoxVolume(water, 40.*cm, 40.*cm, 50.*cm) - phantom.PlaceIt(G4ThreeVector(0.,0.,20.*cm)) - vsize=phantom.VoxelizeIt(100, 100, 100) - print "voxel size=", vsize - -# ================================================================== -# main -# ================================================================== -# ------------------------------------------------------------------ -# randum number -# ------------------------------------------------------------------ -rand_engine= Ranlux64Engine() -HepRandom.setTheEngine(rand_engine) -HepRandom.setTheSeed(20050830L) - -# setup... -Configure() -ConstructGeom() - -# ------------------------------------------------------------------ -# go... -# ------------------------------------------------------------------ -gRunManager.Initialize() - -# visualization -gControlExecute("vis.mac") - -# beamOn -#gRunManager.BeamOn(3) - diff --git a/environments/g4py/tests/gtest03/vis.mac b/environments/g4py/tests/gtest03/vis.mac deleted file mode 100644 index 85e83c6c27..0000000000 --- a/environments/g4py/tests/gtest03/vis.mac +++ /dev/null @@ -1,15 +0,0 @@ -# vis.mac - -/vis/open OGLSX - -/vis/scene/create -/vis/scene/add/volume - -/vis/sceneHandler/attach - -/vis/viewer/set/viewpointThetaPhi 270. 90. - -/tracking/storeTrajectory 1 -/vis/scene/add/trajectories -/vis/scene/endOfEventAction accumulate - diff --git a/environments/g4py/tests/gtest04/CMakeLists.txt b/environments/g4py/tests/gtest04/CMakeLists.txt deleted file mode 100644 index 03db192990..0000000000 --- a/environments/g4py/tests/gtest04/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -configure_file(test.py test.py) -add_test(NAME geant4py-test04 COMMAND ${PYTHON_EXECUTABLE} test.py) -set_tests_properties(geant4py-test04 PROPERTIES ENVIRONMENT "PYTHONPATH=${GEANT4_PYTHON_OUTPUT_DIR};${GEANT4_TEST_ENVIRONMENT}") diff --git a/environments/g4py/tests/gtest04/test.py b/environments/g4py/tests/gtest04/test.py deleted file mode 100755 index 62913aa409..0000000000 --- a/environments/g4py/tests/gtest04/test.py +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env python -# ================================================================== -# python script for Geant4Py test -# -# gtest04 -# - test for command tree and command information -# ================================================================== -from Geant4 import * - -def DumpTree(atree): - print("@@", atree.GetPathName(), "::", atree.GetTitle()) - ntree= atree.GetTreeEntry() - ncommand= atree.GetCommandEntry() - - for i in range(1, ncommand+1): - icommand= atree.GetCommand(i) - print(" **", icommand.GetCommandPath()) - print(" ", icommand.GetTitle()) - x= icommand.GetStateList() - - nparameter= icommand.GetParameterEntries() - for j in range(0, nparameter): - iparam= icommand.GetParameter(j) - print(" +", iparam.GetParameterName(), iparam.GetParameterType()) - - for i in range(1, ntree+1): - itree= atree.GetTree(i) - DumpTree(itree) - -# ================================================================== -# main -# ================================================================== -root_tree= gUImanager.GetTree() - -DumpTree(root_tree) - diff --git a/environments/g4py/tests/gtest05/CMakeLists.txt b/environments/g4py/tests/gtest05/CMakeLists.txt deleted file mode 100644 index 23b597fdb4..0000000000 --- a/environments/g4py/tests/gtest05/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -configure_file(test.py test.py) -add_test(NAME geant4py-test05 COMMAND ${PYTHON_EXECUTABLE} test.py) -set_tests_properties(geant4py-test05 PROPERTIES ENVIRONMENT "PYTHONPATH=${GEANT4_PYTHON_OUTPUT_DIR};${GEANT4_TEST_ENVIRONMENT}") diff --git a/environments/g4py/tests/gtest05/test.py b/environments/g4py/tests/gtest05/test.py deleted file mode 100755 index e17d01269a..0000000000 --- a/environments/g4py/tests/gtest05/test.py +++ /dev/null @@ -1,311 +0,0 @@ -#!/usr/bin/python3 -# ================================================================== -# python script for Geant4Py test -# -# gtest05 -# - test for CSG geometry construction in Python -# ================================================================== -from Geant4 import * -import g4pytest.ExN01pl, g4pytest.ParticleGun -import os, math - -# ================================================================== -# user actions in python -# ================================================================== -class MyDetectorConstruction(G4VUserDetectorConstruction): - "My Detector Construction" - - def __init__(self): - G4VUserDetectorConstruction.__init__(self) - self.air= gNistManager.FindOrBuildMaterial("G4_AIR") - self.lv_object= None - self.world= self.ConstructWorld() - - self.va_red= G4VisAttributes(G4Color(1.,0.,0.)) - self.va_cyan= G4VisAttributes(G4Color(0.,1.,1.)) - self.va_green= G4VisAttributes(G4Color(0.,1.,0.)) - self.va_blue= G4VisAttributes(G4Color(0.,0.,1.)) - self.va_magenta= G4VisAttributes(G4Color(1.,0.,1.)) - - # ----------------------------------------------------------------- - def ConstructWorld(self): - # Python has automatic garbage collection system. - # Geometry objects must be defined as GLOBAL not to be deleted. - global sld_world, lv_world, pv_world, va_world - - sld_world= G4Box("world", 1.*m, 1.*m, 1.*m) - lv_world= G4LogicalVolume(sld_world, self.air, "world") - pv_world= G4PVPlacement(G4Transform3D(), lv_world, "world", - None, False, 0) - - va_world= G4VisAttributes() - va_world.SetVisibility(False) - lv_world.SetVisAttributes(va_world) - - # solid object (dummy) - global sld_sld, lv_sld, pv_sld - sld_sld= G4Box("dummy", 10.*cm, 10.*cm, 10.*cm) - self.lv_object= lv_sld= G4LogicalVolume(sld_sld, self.air, "dummy") - pv_sld= G4PVPlacement(None, G4ThreeVector(), "dummy", lv_sld, - pv_world, False, 0) - - return pv_world - - # ----------------------------------------------------------------- - def ConstructBox(self): - global sld_box - sld_box= G4Box("box", 30.*cm, 40.*cm, 60.*cm) - self.lv_object.SetSolid(sld_box) - self.lv_object.SetVisAttributes(self.va_red) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructTubs(self): - global sld_tubs - sld_tubs= G4Tubs("tubs", 10.*cm, 15.*cm, 20.*cm, 0., pi) - self.lv_object.SetSolid(sld_tubs) - self.lv_object.SetVisAttributes(self.va_cyan) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructCons(self): - global sld_cons - sld_cons= G4Cons("cons", 5.*cm, 10.*cm, 20.*cm, 25.*cm, - 40.*cm, 0., 4./3.*pi) - self.lv_object.SetSolid(sld_cons) - self.lv_object.SetVisAttributes(self.va_green) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructPara(self): - global sld_para - sld_para= G4Para("para", 30.*cm, 40.*cm, 60.*cm, pi/4., pi/8., 0.) - self.lv_object.SetSolid(sld_para) - self.lv_object.SetVisAttributes(self.va_blue) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructTrd(self): - global sld_trd - sld_trd= G4Trd("trd", 30.*cm, 10.*cm, 40.*cm, 15.*cm, 60.*cm) - self.lv_object.SetSolid(sld_trd) - self.lv_object.SetVisAttributes(self.va_blue) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructTrap(self): - global sld_trap - sld_trap= G4Trap("trap", 60.*cm, 20.*degree, 5.*degree, - 40.*cm, 30.*cm, 40.*cm, 10.*degree, - 16.*cm, 10*cm, 14.*cm, 10.*deg) - self.lv_object.SetSolid(sld_trap) - self.lv_object.SetVisAttributes(self.va_green) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructSphere(self): - global sld_sphere - sld_sphere= G4Sphere("sphere", 100.*cm, 120.*cm, 0., 180.*deg, - 0., 180.*deg) - self.lv_object.SetSolid(sld_sphere) - self.lv_object.SetVisAttributes(self.va_cyan) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructOrb(self): - global sld_orb - sld_orb= G4Orb("orb", 100.*cm) - self.lv_object.SetSolid(sld_orb) - self.lv_object.SetVisAttributes(self.va_red) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructTorus(self): - global sld_torus - sld_torus= G4Torus("torus", 40.*cm, 60.*cm, 200.*cm, 0., 90.*deg) - self.lv_object.SetSolid(sld_torus) - self.lv_object.SetVisAttributes(self.va_magenta) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructPolycone(self): - zvec= G4doubleVector() - rinvec= G4doubleVector() - routvec= G4doubleVector() - - zvec[:]= [ 5.*cm, 7.*cm, 9.*cm, 11.*cm, 25.*cm, 27.*cm, 29.*cm, - 31.*cm, 35.*cm ] - rinvec[:]= [0.,0.,0.,0.,0.,0.,0.,0.,0.] - routvec[:]= [ 0., 10.*cm, 10.*cm, 5.*cm, 5.*cm, 10.*cm, - 10.*cm, 2.*cm, 2.*cm ] - - global sld_pcon - sld_pcon= CreatePolycone("pcon", 0., twopi, 9, zvec, rinvec,routvec) - self.lv_object.SetSolid(sld_pcon) - self.lv_object.SetVisAttributes(self.va_cyan) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructPolyhedra(self): - zvec= G4doubleVector() - rinvec= G4doubleVector() - routvec= G4doubleVector() - - zvec[:]= [ 0., 5.*cm, 8.*cm, 13.*cm, 30.*cm, 32.*cm, 35.*cm ] - rinvec[:]= [0.,0.,0.,0.,0.,0.,0. ] - routvec[:]= [ 0., 15.*cm, 15.*cm, 4.*cm, 4.*cm, 10.*cm, 10.*cm ] - - global sld_pgon - sld_pgon= CreatePolyhedra("pgon", 0., twopi, 5, 7, zvec, rinvec,routvec) - self.lv_object.SetSolid(sld_pgon) - self.lv_object.SetVisAttributes(self.va_green) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructEllipticalTube(self): - global sld_et - sld_et= G4EllipticalTube("ellipticaltube", 5.*cm, 10.*cm, 20.*cm) - self.lv_object.SetSolid(sld_et) - self.lv_object.SetVisAttributes(self.va_cyan) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructEllipsoid(self): - global sld_es - sld_es= G4Ellipsoid("ellipsoid", 10.*cm, 20.*cm, 50.*cm, - -10.*cm, 40.*cm) - self.lv_object.SetSolid(sld_es) - self.lv_object.SetVisAttributes(self.va_red) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructEllipticalCone(self): - global sld_ec - sld_ec= G4EllipticalCone("ellipticalcone", 30.*cm, 60.*cm, - 50.*cm, 25.*cm) - self.lv_object.SetSolid(sld_ec) - self.lv_object.SetVisAttributes(self.va_magenta) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructHype(self): - global sld_hype - sld_hype= G4Hype("hype", 20.*cm, 30.*cm, 0.7, 0.7, 50.*cm) - self.lv_object.SetSolid(sld_hype) - self.lv_object.SetVisAttributes(self.va_blue) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructTet(self): - global sld_tet - p1= G4ThreeVector(0., 0., math.sqrt(3.)*cm) - p2= G4ThreeVector(0., 2*math.sqrt(2./3.)*cm, -1./math.sqrt(3)*cm) - p3= G4ThreeVector(-math.sqrt(2.)*cm, -math.sqrt(2./3.)*cm, - -1./math.sqrt(3)*cm) - p4= G4ThreeVector(math.sqrt(2)*cm, -math.sqrt(2./3.)*cm, - -1./math.sqrt(3)*cm) - - sld_tet= G4Tet("tet", 20.*p1, 20.*p2, 20.*p3, 20.*p4) - self.lv_object.SetSolid(sld_tet) - self.lv_object.SetVisAttributes(self.va_green) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructTwistedBox(self): - global sld_twb - sld_twb= G4TwistedBox("twistedbox", 30.*deg, 30.*cm, 40.*cm, 60.*cm) - self.lv_object.SetSolid(sld_twb) - self.lv_object.SetVisAttributes(self.va_cyan) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructTwistedTrap(self): - global sld_twtrp - sld_twtrp= G4TwistedTrap("twistedtrap", 30.*deg, - 60.*cm, 20.*deg, 5.*deg, - 40.*cm, 30.*cm, 40.*cm, - 16.*cm, 10.*cm, 14.*cm, 10.*deg) - self.lv_object.SetSolid(sld_twtrp) - self.lv_object.SetVisAttributes(self.va_blue) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructTwistedTrd(self): - global sld_twtrd - sld_twtrd= G4TwistedTrd("twistedtrd", 30.*cm, 10.*cm, - 40.*cm, 15.*cm, 60.*cm, 30.*deg) - self.lv_object.SetSolid(sld_twtrd) - self.lv_object.SetVisAttributes(self.va_green) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructTwistedTubs(self): - global sld_twt - sld_twt= G4TwistedTubs("twistedtube", 60.*deg, - 10.*cm, 15.*cm, 20.*cm, 90.*deg) - self.lv_object.SetSolid(sld_twt) - self.lv_object.SetVisAttributes(self.va_magenta) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def Construct(self): # return the world volume - return self.world - -# ================================================================== -# main -# ================================================================== -os.environ["G4VRML_DEST_DIR"]= "." -os.environ["G4VRMLFILE_MAX_FILE_NUM"]= "1" -os.environ["G4VRMLFILE_VIEWER"]= "echo" - -# set geometry -myDC= MyDetectorConstruction() -gRunManager.SetUserInitialization(myDC) - -# minimal physics list -g4pytest.ExN01pl.Construct() - -# set primary generator action -g4pytest.ParticleGun.Construct() - -# initialize -gRunManager.Initialize() - -# visualization -gApplyUICommand("/vis/open VRML2FILE") -gApplyUICommand("/vis/scene/create") -gApplyUICommand("/vis/scene/add/volume") -gApplyUICommand("/vis/sceneHandler/attach") -gApplyUICommand("/vis/scene/add/axes 0. 0. 0. 10. cm") - -# create a vrml file for each solid type -f_list= ( - ("g4box", myDC.ConstructBox), - ("g4tubs", myDC.ConstructTubs), - ("g4cons", myDC.ConstructCons), - ("g4para", myDC.ConstructPara), - ("g4trd", myDC.ConstructTrd), - ("g4trap", myDC.ConstructTrap), - ("g4sphere", myDC.ConstructSphere), - ("g4orb", myDC.ConstructOrb), - ("g4torus", myDC.ConstructTorus), - ("g4polycone", myDC.ConstructPolycone), - ("g4polyhedra", myDC.ConstructPolyhedra), - ("g4ellipticaltube", myDC.ConstructEllipticalTube), - ("g4ellipsoid", myDC.ConstructEllipsoid), - ("g4ellipticalcone", myDC.ConstructEllipticalCone), - ("g4hype", myDC.ConstructHype), - ("g4tet", myDC.ConstructTet), - ("g4twistedbox", myDC.ConstructTwistedBox), - ("g4twistedtrap", myDC.ConstructTwistedTrap), - ("g4twistedtrd", myDC.ConstructTwistedTrd), - ("g4twistedtubs", myDC.ConstructTwistedTubs) - ) - -for s,f in f_list: - f.__call__() - gRunManager.BeamOn(1) - fname= "%s.wrl" % (s) - os.rename("g4_00.wrl", fname) - -gTerminate() diff --git a/environments/g4py/tests/gtest05/vrml/g4box.wrl b/environments/g4py/tests/gtest05/vrml/g4box.wrl deleted file mode 100644 index 83932f5902..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4box.wrl +++ /dev/null @@ -1,102 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - -300 -400 -600, - 300 -400 -600, - 300 400 -600, - -300 400 -600, - -300 -400 600, - 300 -400 600, - 300 400 600, - -300 400 600, - ] - } - coordIndex [ - 0, 3, 2, 1, -1, - 4, 7, 3, 0, -1, - 7, 6, 2, 3, -1, - 6, 5, 1, 2, -1, - 5, 4, 0, 1, -1, - 4, 5, 6, 7, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4cons.wrl b/environments/g4py/tests/gtest05/vrml/g4cons.wrl deleted file mode 100644 index 3ea90815a5..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4cons.wrl +++ /dev/null @@ -1,222 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - 250 0 400, - 241.481 64.7048 400, - 216.506 125 400, - 176.777 176.777 400, - 125 216.506 400, - 64.7048 241.481 400, - 1.53081e-14 250 400, - -64.7048 241.481 400, - -125 216.506 400, - -176.777 176.777 400, - -216.506 125 400, - -241.481 64.7048 400, - -250 3.06162e-14 400, - -241.481 -64.7048 400, - -216.506 -125 400, - -176.777 -176.777 400, - -125 -216.506 400, - 100 0 -400, - 96.5926 25.8819 -400, - 86.6025 50 -400, - 70.7107 70.7107 -400, - 50 86.6025 -400, - 25.8819 96.5926 -400, - 6.12323e-15 100 -400, - -25.8819 96.5926 -400, - -50 86.6025 -400, - -70.7107 70.7107 -400, - -86.6025 50 -400, - -96.5926 25.8819 -400, - -100 1.22465e-14 -400, - -96.5926 -25.8819 -400, - -86.6025 -50 -400, - -70.7107 -70.7107 -400, - -50 -86.6025 -400, - 200 0 400, - 193.185 51.7638 400, - 173.205 100 400, - 141.421 141.421 400, - 100 173.205 400, - 51.7638 193.185 400, - 1.22465e-14 200 400, - -51.7638 193.185 400, - -100 173.205 400, - -141.421 141.421 400, - -173.205 100 400, - -193.185 51.7638 400, - -200 2.44929e-14 400, - -193.185 -51.7638 400, - -173.205 -100 400, - -141.421 -141.421 400, - -100 -173.205 400, - 50 0 -400, - 48.2963 12.941 -400, - 43.3013 25 -400, - 35.3553 35.3553 -400, - 25 43.3013 -400, - 12.941 48.2963 -400, - 3.06162e-15 50 -400, - -12.941 48.2963 -400, - -25 43.3013 -400, - -35.3553 35.3553 -400, - -43.3013 25 -400, - -48.2963 12.941 -400, - -50 6.12323e-15 -400, - -48.2963 -12.941 -400, - -43.3013 -25 -400, - -35.3553 -35.3553 -400, - -25 -43.3013 -400, - ] - } - coordIndex [ - 0, 17, 18, 1, -1, - 1, 18, 19, 2, -1, - 2, 19, 20, 3, -1, - 3, 20, 21, 4, -1, - 4, 21, 22, 5, -1, - 5, 22, 23, 6, -1, - 6, 23, 24, 7, -1, - 7, 24, 25, 8, -1, - 8, 25, 26, 9, -1, - 9, 26, 27, 10, -1, - 10, 27, 28, 11, -1, - 11, 28, 29, 12, -1, - 12, 29, 30, 13, -1, - 13, 30, 31, 14, -1, - 14, 31, 32, 15, -1, - 15, 32, 33, 16, -1, - 51, 34, 35, 52, -1, - 52, 35, 36, 53, -1, - 53, 36, 37, 54, -1, - 54, 37, 38, 55, -1, - 55, 38, 39, 56, -1, - 56, 39, 40, 57, -1, - 57, 40, 41, 58, -1, - 58, 41, 42, 59, -1, - 59, 42, 43, 60, -1, - 60, 43, 44, 61, -1, - 61, 44, 45, 62, -1, - 62, 45, 46, 63, -1, - 63, 46, 47, 64, -1, - 64, 47, 48, 65, -1, - 65, 48, 49, 66, -1, - 66, 49, 50, 67, -1, - 34, 0, 1, 35, -1, - 35, 1, 2, 36, -1, - 36, 2, 3, 37, -1, - 37, 3, 4, 38, -1, - 38, 4, 5, 39, -1, - 39, 5, 6, 40, -1, - 40, 6, 7, 41, -1, - 41, 7, 8, 42, -1, - 42, 8, 9, 43, -1, - 43, 9, 10, 44, -1, - 44, 10, 11, 45, -1, - 45, 11, 12, 46, -1, - 46, 12, 13, 47, -1, - 47, 13, 14, 48, -1, - 48, 14, 15, 49, -1, - 49, 15, 16, 50, -1, - 17, 51, 52, 18, -1, - 18, 52, 53, 19, -1, - 19, 53, 54, 20, -1, - 20, 54, 55, 21, -1, - 21, 55, 56, 22, -1, - 22, 56, 57, 23, -1, - 23, 57, 58, 24, -1, - 24, 58, 59, 25, -1, - 25, 59, 60, 26, -1, - 26, 60, 61, 27, -1, - 27, 61, 62, 28, -1, - 28, 62, 63, 29, -1, - 29, 63, 64, 30, -1, - 30, 64, 65, 31, -1, - 31, 65, 66, 32, -1, - 32, 66, 67, 33, -1, - 0, 34, 51, 17, -1, - 33, 67, 50, 16, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4ellipsoid.wrl b/environments/g4py/tests/gtest05/vrml/g4ellipsoid.wrl deleted file mode 100644 index 6deeebdf85..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4ellipsoid.wrl +++ /dev/null @@ -1,403 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - 0 0 400, - 60 0 400, - 57.9555 31.0583 400, - 51.9615 60 400, - 42.4264 84.8528 400, - 30 103.923 400, - 15.5291 115.911 400, - 3.67394e-15 120 400, - -15.5291 115.911 400, - -30 103.923 400, - -42.4264 84.8528 400, - -51.9615 60 400, - -57.9555 31.0583 400, - -60 1.46958e-14 400, - -57.9555 -31.0583 400, - -51.9615 -60 400, - -42.4264 -84.8528 400, - -30 -103.923 400, - -15.5291 -115.911 400, - -1.10218e-14 -120 400, - 15.5291 -115.911 400, - 30 -103.923 400, - 42.4264 -84.8528 400, - 51.9615 -60 400, - 57.9555 -31.0583 400, - 76.3833 0 322.707, - 73.7806 39.5389 322.707, - 66.1499 76.3833 322.707, - 54.0112 108.022 322.707, - 38.1917 132.3 322.707, - 19.7695 147.561 322.707, - 4.67713e-15 152.767 322.707, - -19.7695 147.561 322.707, - -38.1917 132.3 322.707, - -54.0112 108.022 322.707, - -66.1499 76.3833 322.707, - -73.7806 39.5389 322.707, - -76.3833 1.87085e-14 322.707, - -73.7806 -39.5389 322.707, - -66.1499 -76.3833 322.707, - -54.0112 -108.022 322.707, - -38.1917 -132.3 322.707, - -19.7695 -147.561 322.707, - -1.40314e-14 -152.767 322.707, - 19.7695 -147.561 322.707, - 38.1917 -132.3 322.707, - 54.0112 -108.022 322.707, - 66.1499 -76.3833 322.707, - 73.7806 -39.5389 322.707, - 88.8911 0 229.04, - 85.8622 46.0134 229.04, - 76.982 88.8911 229.04, - 62.8555 125.711 229.04, - 44.4456 153.964 229.04, - 23.0067 171.724 229.04, - 5.44301e-15 177.782 229.04, - -23.0067 171.724 229.04, - -44.4456 153.964 229.04, - -62.8555 125.711 229.04, - -76.982 88.8911 229.04, - -85.8622 46.0134 229.04, - -88.8911 2.1772e-14 229.04, - -85.8622 -46.0134 229.04, - -76.982 -88.8911 229.04, - -62.8555 -125.711 229.04, - -44.4456 -153.964 229.04, - -23.0067 -171.724 229.04, - -1.6329e-14 -177.782 229.04, - 23.0067 -171.724 229.04, - 44.4456 -153.964 229.04, - 62.8555 -125.711 229.04, - 76.982 -88.8911 229.04, - 85.8622 -46.0134 229.04, - 96.8887 0 123.752, - 93.5873 50.1533 123.752, - 83.9081 96.8887 123.752, - 68.5106 137.021 123.752, - 48.4443 167.816 123.752, - 25.0766 187.175 123.752, - 5.93272e-15 193.777 123.752, - -25.0766 187.175 123.752, - -48.4443 167.816 123.752, - -68.5106 137.021 123.752, - -83.9081 96.8887 123.752, - -93.5873 50.1533 123.752, - -96.8887 2.37309e-14 123.752, - -93.5873 -50.1533 123.752, - -83.9081 -96.8887 123.752, - -68.5106 -137.021 123.752, - -48.4443 -167.816 123.752, - -25.0766 -187.175 123.752, - -1.77982e-14 -193.777 123.752, - 25.0766 -187.175 123.752, - 48.4443 -167.816 123.752, - 68.5106 -137.021 123.752, - 83.9081 -96.8887 123.752, - 93.5873 -50.1533 123.752, - 99.9703 0 12.1851, - 96.5639 51.7484 12.1851, - 86.5768 99.9703 12.1851, - 70.6897 141.379 12.1851, - 49.9852 173.154 12.1851, - 25.8742 193.128 12.1851, - 6.12142e-15 199.941 12.1851, - -25.8742 193.128 12.1851, - -49.9852 173.154 12.1851, - -70.6897 141.379 12.1851, - -86.5768 99.9703 12.1851, - -96.5639 51.7484 12.1851, - -99.9703 2.44857e-14 12.1851, - -96.5639 -51.7484 12.1851, - -86.5768 -99.9703 12.1851, - -70.6897 -141.379 12.1851, - -49.9852 -173.154 12.1851, - -25.8742 -193.128 12.1851, - -1.83642e-14 -199.941 12.1851, - 25.8742 -193.128 12.1851, - 49.9852 -173.154 12.1851, - 70.6897 -141.379 12.1851, - 86.5768 -99.9703 12.1851, - 96.5639 -51.7484 12.1851, - 97.9796 0 -100, - 94.641 50.718 -100, - 84.8528 97.9796 -100, - 69.282 138.564 -100, - 48.9898 169.706 -100, - 25.359 189.282 -100, - 5.99952e-15 195.959 -100, - -25.359 189.282 -100, - -48.9898 169.706 -100, - -69.282 138.564 -100, - -84.8528 97.9796 -100, - -94.641 50.718 -100, - -97.9796 2.39981e-14 -100, - -94.641 -50.718 -100, - -84.8528 -97.9796 -100, - -69.282 -138.564 -100, - -48.9898 -169.706 -100, - -25.359 -189.282 -100, - -1.79986e-14 -195.959 -100, - 25.359 -189.282 -100, - 48.9898 -169.706 -100, - 69.282 -138.564 -100, - 84.8528 -97.9796 -100, - 94.641 -50.718 -100, - 0 0 -100, - 0 0 0, - ] - } - coordIndex [ - 0, 1, 2, -1, - 0, 2, 3, -1, - 0, 3, 4, -1, - 0, 4, 5, -1, - 0, 5, 6, -1, - 0, 6, 7, -1, - 0, 7, 8, -1, - 0, 8, 9, -1, - 0, 9, 10, -1, - 0, 10, 11, -1, - 0, 11, 12, -1, - 0, 12, 13, -1, - 0, 13, 14, -1, - 0, 14, 15, -1, - 0, 15, 16, -1, - 0, 16, 17, -1, - 0, 17, 18, -1, - 0, 18, 19, -1, - 0, 19, 20, -1, - 0, 20, 21, -1, - 0, 21, 22, -1, - 0, 22, 23, -1, - 0, 23, 24, -1, - 0, 24, 1, -1, - 1, 25, 26, 2, -1, - 2, 26, 27, 3, -1, - 3, 27, 28, 4, -1, - 4, 28, 29, 5, -1, - 5, 29, 30, 6, -1, - 6, 30, 31, 7, -1, - 7, 31, 32, 8, -1, - 8, 32, 33, 9, -1, - 9, 33, 34, 10, -1, - 10, 34, 35, 11, -1, - 11, 35, 36, 12, -1, - 12, 36, 37, 13, -1, - 13, 37, 38, 14, -1, - 14, 38, 39, 15, -1, - 15, 39, 40, 16, -1, - 16, 40, 41, 17, -1, - 17, 41, 42, 18, -1, - 18, 42, 43, 19, -1, - 19, 43, 44, 20, -1, - 20, 44, 45, 21, -1, - 21, 45, 46, 22, -1, - 22, 46, 47, 23, -1, - 23, 47, 48, 24, -1, - 24, 48, 25, 1, -1, - 25, 49, 50, 26, -1, - 26, 50, 51, 27, -1, - 27, 51, 52, 28, -1, - 28, 52, 53, 29, -1, - 29, 53, 54, 30, -1, - 30, 54, 55, 31, -1, - 31, 55, 56, 32, -1, - 32, 56, 57, 33, -1, - 33, 57, 58, 34, -1, - 34, 58, 59, 35, -1, - 35, 59, 60, 36, -1, - 36, 60, 61, 37, -1, - 37, 61, 62, 38, -1, - 38, 62, 63, 39, -1, - 39, 63, 64, 40, -1, - 40, 64, 65, 41, -1, - 41, 65, 66, 42, -1, - 42, 66, 67, 43, -1, - 43, 67, 68, 44, -1, - 44, 68, 69, 45, -1, - 45, 69, 70, 46, -1, - 46, 70, 71, 47, -1, - 47, 71, 72, 48, -1, - 48, 72, 49, 25, -1, - 49, 73, 74, 50, -1, - 50, 74, 75, 51, -1, - 51, 75, 76, 52, -1, - 52, 76, 77, 53, -1, - 53, 77, 78, 54, -1, - 54, 78, 79, 55, -1, - 55, 79, 80, 56, -1, - 56, 80, 81, 57, -1, - 57, 81, 82, 58, -1, - 58, 82, 83, 59, -1, - 59, 83, 84, 60, -1, - 60, 84, 85, 61, -1, - 61, 85, 86, 62, -1, - 62, 86, 87, 63, -1, - 63, 87, 88, 64, -1, - 64, 88, 89, 65, -1, - 65, 89, 90, 66, -1, - 66, 90, 91, 67, -1, - 67, 91, 92, 68, -1, - 68, 92, 93, 69, -1, - 69, 93, 94, 70, -1, - 70, 94, 95, 71, -1, - 71, 95, 96, 72, -1, - 72, 96, 73, 49, -1, - 73, 97, 98, 74, -1, - 74, 98, 99, 75, -1, - 75, 99, 100, 76, -1, - 76, 100, 101, 77, -1, - 77, 101, 102, 78, -1, - 78, 102, 103, 79, -1, - 79, 103, 104, 80, -1, - 80, 104, 105, 81, -1, - 81, 105, 106, 82, -1, - 82, 106, 107, 83, -1, - 83, 107, 108, 84, -1, - 84, 108, 109, 85, -1, - 85, 109, 110, 86, -1, - 86, 110, 111, 87, -1, - 87, 111, 112, 88, -1, - 88, 112, 113, 89, -1, - 89, 113, 114, 90, -1, - 90, 114, 115, 91, -1, - 91, 115, 116, 92, -1, - 92, 116, 117, 93, -1, - 93, 117, 118, 94, -1, - 94, 118, 119, 95, -1, - 95, 119, 120, 96, -1, - 96, 120, 97, 73, -1, - 97, 121, 122, 98, -1, - 98, 122, 123, 99, -1, - 99, 123, 124, 100, -1, - 100, 124, 125, 101, -1, - 101, 125, 126, 102, -1, - 102, 126, 127, 103, -1, - 103, 127, 128, 104, -1, - 104, 128, 129, 105, -1, - 105, 129, 130, 106, -1, - 106, 130, 131, 107, -1, - 107, 131, 132, 108, -1, - 108, 132, 133, 109, -1, - 109, 133, 134, 110, -1, - 110, 134, 135, 111, -1, - 111, 135, 136, 112, -1, - 112, 136, 137, 113, -1, - 113, 137, 138, 114, -1, - 114, 138, 139, 115, -1, - 115, 139, 140, 116, -1, - 116, 140, 141, 117, -1, - 117, 141, 142, 118, -1, - 118, 142, 143, 119, -1, - 119, 143, 144, 120, -1, - 120, 144, 121, 97, -1, - 121, 145, 122, -1, - 122, 145, 123, -1, - 123, 145, 124, -1, - 124, 145, 125, -1, - 125, 145, 126, -1, - 126, 145, 127, -1, - 127, 145, 128, -1, - 128, 145, 129, -1, - 129, 145, 130, -1, - 130, 145, 131, -1, - 131, 145, 132, -1, - 132, 145, 133, -1, - 133, 145, 134, -1, - 134, 145, 135, -1, - 135, 145, 136, -1, - 136, 145, 137, -1, - 137, 145, 138, -1, - 138, 145, 139, -1, - 139, 145, 140, -1, - 140, 145, 141, -1, - 141, 145, 142, -1, - 142, 145, 143, -1, - 143, 145, 144, -1, - 144, 145, 121, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4ellipticalcone.wrl b/environments/g4py/tests/gtest05/vrml/g4ellipticalcone.wrl deleted file mode 100644 index eaadbd0c71..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4ellipticalcone.wrl +++ /dev/null @@ -1,210 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 1 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - 75000 0 250, - 72444.4 38822.9 250, - 64951.9 75000 250, - 53033 106066 250, - 37500 129904 250, - 19411.4 144889 250, - 4.59243e-12 150000 250, - -19411.4 144889 250, - -37500 129904 250, - -53033 106066 250, - -64951.9 75000 250, - -72444.4 38822.9 250, - -75000 1.83697e-11 250, - -72444.4 -38822.9 250, - -64951.9 -75000 250, - -53033 -106066 250, - -37500 -129904 250, - -19411.4 -144889 250, - -1.37773e-11 -150000 250, - 19411.4 -144889 250, - 37500 -129904 250, - 53033 -106066 250, - 64951.9 -75000 250, - 72444.4 -38822.9 250, - 225000 0 -250, - 217333 116469 -250, - 194856 225000 -250, - 159099 318198 -250, - 112500 389711 -250, - 58234.3 434667 -250, - 1.37773e-11 450000 -250, - -58234.3 434667 -250, - -112500 389711 -250, - -159099 318198 -250, - -194856 225000 -250, - -217333 116469 -250, - -225000 5.51091e-11 -250, - -217333 -116469 -250, - -194856 -225000 -250, - -159099 -318198 -250, - -112500 -389711 -250, - -58234.3 -434667 -250, - -4.13318e-11 -450000 -250, - 58234.3 -434667 -250, - 112500 -389711 -250, - 159099 -318198 -250, - 194856 -225000 -250, - 217333 -116469 -250, - 0 0 250, - 0 0 -250, - ] - } - coordIndex [ - 0, 24, 25, 1, -1, - 1, 25, 26, 2, -1, - 2, 26, 27, 3, -1, - 3, 27, 28, 4, -1, - 4, 28, 29, 5, -1, - 5, 29, 30, 6, -1, - 6, 30, 31, 7, -1, - 7, 31, 32, 8, -1, - 8, 32, 33, 9, -1, - 9, 33, 34, 10, -1, - 10, 34, 35, 11, -1, - 11, 35, 36, 12, -1, - 12, 36, 37, 13, -1, - 13, 37, 38, 14, -1, - 14, 38, 39, 15, -1, - 15, 39, 40, 16, -1, - 16, 40, 41, 17, -1, - 17, 41, 42, 18, -1, - 18, 42, 43, 19, -1, - 19, 43, 44, 20, -1, - 20, 44, 45, 21, -1, - 21, 45, 46, 22, -1, - 22, 46, 47, 23, -1, - 23, 47, 24, 0, -1, - 48, 0, 1, -1, - 48, 1, 2, -1, - 48, 2, 3, -1, - 48, 3, 4, -1, - 48, 4, 5, -1, - 48, 5, 6, -1, - 48, 6, 7, -1, - 48, 7, 8, -1, - 48, 8, 9, -1, - 48, 9, 10, -1, - 48, 10, 11, -1, - 48, 11, 12, -1, - 48, 12, 13, -1, - 48, 13, 14, -1, - 48, 14, 15, -1, - 48, 15, 16, -1, - 48, 16, 17, -1, - 48, 17, 18, -1, - 48, 18, 19, -1, - 48, 19, 20, -1, - 48, 20, 21, -1, - 48, 21, 22, -1, - 48, 22, 23, -1, - 48, 23, 0, -1, - 24, 49, 25, -1, - 25, 49, 26, -1, - 26, 49, 27, -1, - 27, 49, 28, -1, - 28, 49, 29, -1, - 29, 49, 30, -1, - 30, 49, 31, -1, - 31, 49, 32, -1, - 32, 49, 33, -1, - 33, 49, 34, -1, - 34, 49, 35, -1, - 35, 49, 36, -1, - 36, 49, 37, -1, - 37, 49, 38, -1, - 38, 49, 39, -1, - 39, 49, 40, -1, - 40, 49, 41, -1, - 41, 49, 42, -1, - 42, 49, 43, -1, - 43, 49, 44, -1, - 44, 49, 45, -1, - 45, 49, 46, -1, - 46, 49, 47, -1, - 47, 49, 24, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4ellipticaltube.wrl b/environments/g4py/tests/gtest05/vrml/g4ellipticaltube.wrl deleted file mode 100644 index 3efae86d7b..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4ellipticaltube.wrl +++ /dev/null @@ -1,210 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 1 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - 50 0 200, - 48.2963 25.8819 200, - 43.3013 50 200, - 35.3553 70.7107 200, - 25 86.6025 200, - 12.941 96.5926 200, - 3.06162e-15 100 200, - -12.941 96.5926 200, - -25 86.6025 200, - -35.3553 70.7107 200, - -43.3013 50 200, - -48.2963 25.8819 200, - -50 1.22465e-14 200, - -48.2963 -25.8819 200, - -43.3013 -50 200, - -35.3553 -70.7107 200, - -25 -86.6025 200, - -12.941 -96.5926 200, - -9.18485e-15 -100 200, - 12.941 -96.5926 200, - 25 -86.6025 200, - 35.3553 -70.7107 200, - 43.3013 -50 200, - 48.2963 -25.8819 200, - 50 0 -200, - 48.2963 25.8819 -200, - 43.3013 50 -200, - 35.3553 70.7107 -200, - 25 86.6025 -200, - 12.941 96.5926 -200, - 3.06162e-15 100 -200, - -12.941 96.5926 -200, - -25 86.6025 -200, - -35.3553 70.7107 -200, - -43.3013 50 -200, - -48.2963 25.8819 -200, - -50 1.22465e-14 -200, - -48.2963 -25.8819 -200, - -43.3013 -50 -200, - -35.3553 -70.7107 -200, - -25 -86.6025 -200, - -12.941 -96.5926 -200, - -9.18485e-15 -100 -200, - 12.941 -96.5926 -200, - 25 -86.6025 -200, - 35.3553 -70.7107 -200, - 43.3013 -50 -200, - 48.2963 -25.8819 -200, - 0 0 200, - 0 0 -200, - ] - } - coordIndex [ - 0, 24, 25, 1, -1, - 1, 25, 26, 2, -1, - 2, 26, 27, 3, -1, - 3, 27, 28, 4, -1, - 4, 28, 29, 5, -1, - 5, 29, 30, 6, -1, - 6, 30, 31, 7, -1, - 7, 31, 32, 8, -1, - 8, 32, 33, 9, -1, - 9, 33, 34, 10, -1, - 10, 34, 35, 11, -1, - 11, 35, 36, 12, -1, - 12, 36, 37, 13, -1, - 13, 37, 38, 14, -1, - 14, 38, 39, 15, -1, - 15, 39, 40, 16, -1, - 16, 40, 41, 17, -1, - 17, 41, 42, 18, -1, - 18, 42, 43, 19, -1, - 19, 43, 44, 20, -1, - 20, 44, 45, 21, -1, - 21, 45, 46, 22, -1, - 22, 46, 47, 23, -1, - 23, 47, 24, 0, -1, - 48, 0, 1, -1, - 48, 1, 2, -1, - 48, 2, 3, -1, - 48, 3, 4, -1, - 48, 4, 5, -1, - 48, 5, 6, -1, - 48, 6, 7, -1, - 48, 7, 8, -1, - 48, 8, 9, -1, - 48, 9, 10, -1, - 48, 10, 11, -1, - 48, 11, 12, -1, - 48, 12, 13, -1, - 48, 13, 14, -1, - 48, 14, 15, -1, - 48, 15, 16, -1, - 48, 16, 17, -1, - 48, 17, 18, -1, - 48, 18, 19, -1, - 48, 19, 20, -1, - 48, 20, 21, -1, - 48, 21, 22, -1, - 48, 22, 23, -1, - 48, 23, 0, -1, - 24, 49, 25, -1, - 25, 49, 26, -1, - 26, 49, 27, -1, - 27, 49, 28, -1, - 28, 49, 29, -1, - 29, 49, 30, -1, - 30, 49, 31, -1, - 31, 49, 32, -1, - 32, 49, 33, -1, - 33, 49, 34, -1, - 34, 49, 35, -1, - 35, 49, 36, -1, - 36, 49, 37, -1, - 37, 49, 38, -1, - 38, 49, 39, -1, - 39, 49, 40, -1, - 40, 49, 41, -1, - 41, 49, 42, -1, - 42, 49, 43, -1, - 43, 49, 44, -1, - 44, 49, 45, -1, - 45, 49, 46, -1, - 46, 49, 47, -1, - 47, 49, 24, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4hype.wrl b/environments/g4py/tests/gtest05/vrml/g4hype.wrl deleted file mode 100644 index 540feb7e63..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4hype.wrl +++ /dev/null @@ -1,2392 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - 517.071 0 500, - 499.452 133.828 500, - 447.797 258.536 500, - 365.624 365.624 500, - 258.536 447.797 500, - 133.828 499.452 500, - 3.16615e-14 517.071 500, - -133.828 499.452 500, - -258.536 447.797 500, - -365.624 365.624 500, - -447.797 258.536 500, - -499.452 133.828 500, - -517.071 6.33229e-14 500, - -499.452 -133.828 500, - -447.797 -258.536 500, - -365.624 -365.624 500, - -258.536 -447.797 500, - -133.828 -499.452 500, - -9.49844e-14 -517.071 500, - 133.828 -499.452 500, - 258.536 -447.797 500, - 365.624 -365.624 500, - 447.797 -258.536 500, - 499.452 -133.828 500, - 488.911 0 458.333, - 472.252 126.539 458.333, - 423.409 244.455 458.333, - 345.712 345.712 458.333, - 244.455 423.409 458.333, - 126.539 472.252 458.333, - 2.99371e-14 488.911 458.333, - -126.539 472.252 458.333, - -244.455 423.409 458.333, - -345.712 345.712 458.333, - -423.409 244.455 458.333, - -472.252 126.539 458.333, - -488.911 5.98743e-14 458.333, - -472.252 -126.539 458.333, - -423.409 -244.455 458.333, - -345.712 -345.712 458.333, - -244.455 -423.409 458.333, - -126.539 -472.252 458.333, - -8.98114e-14 -488.911 458.333, - 126.539 -472.252 458.333, - 244.455 -423.409 458.333, - 345.712 -345.712 458.333, - 423.409 -244.455 458.333, - 472.252 -126.539 458.333, - 461.702 0 416.667, - 445.969 119.497 416.667, - 399.845 230.851 416.667, - 326.472 326.472 416.667, - 230.851 399.845 416.667, - 119.497 445.969 416.667, - 2.82711e-14 461.702 416.667, - -119.497 445.969 416.667, - -230.851 399.845 416.667, - -326.472 326.472 416.667, - -399.845 230.851 416.667, - -445.969 119.497 416.667, - -461.702 5.65421e-14 416.667, - -445.969 -119.497 416.667, - -399.845 -230.851 416.667, - -326.472 -326.472 416.667, - -230.851 -399.845 416.667, - -119.497 -445.969 416.667, - -8.48132e-14 -461.702 416.667, - 119.497 -445.969 416.667, - 230.851 -399.845 416.667, - 326.472 -326.472 416.667, - 399.845 -230.851 416.667, - 445.969 -119.497 416.667, - 435.622 0 375, - 420.778 112.747 375, - 377.26 217.811 375, - 308.031 308.031 375, - 217.811 377.26 375, - 112.747 420.778 375, - 2.66741e-14 435.622 375, - -112.747 420.778 375, - -217.811 377.26 375, - -308.031 308.031 375, - -377.26 217.811 375, - -420.778 112.747 375, - -435.622 5.33483e-14 375, - -420.778 -112.747 375, - -377.26 -217.811 375, - -308.031 -308.031 375, - -217.811 -377.26 375, - -112.747 -420.778 375, - -8.00224e-14 -435.622 375, - 112.747 -420.778 375, - 217.811 -377.26 375, - 308.031 -308.031 375, - 377.26 -217.811 375, - 420.778 -112.747 375, - 410.887 0 333.333, - 396.886 106.345 333.333, - 355.838 205.443 333.333, - 290.541 290.541 333.333, - 205.443 355.838 333.333, - 106.345 396.886 333.333, - 2.51595e-14 410.887 333.333, - -106.345 396.886 333.333, - -205.443 355.838 333.333, - -290.541 290.541 333.333, - -355.838 205.443 333.333, - -396.886 106.345 333.333, - -410.887 5.03191e-14 333.333, - -396.886 -106.345 333.333, - -355.838 -205.443 333.333, - -290.541 -290.541 333.333, - -205.443 -355.838 333.333, - -106.345 -396.886 333.333, - -7.54786e-14 -410.887 333.333, - 106.345 -396.886 333.333, - 205.443 -355.838 333.333, - 290.541 -290.541 333.333, - 355.838 -205.443 333.333, - 396.886 -106.345 333.333, - 387.753 0 291.667, - 374.541 100.358 291.667, - 335.804 193.877 291.667, - 274.183 274.183 291.667, - 193.877 335.804 291.667, - 100.358 374.541 291.667, - 2.3743e-14 387.753 291.667, - -100.358 374.541 291.667, - -193.877 335.804 291.667, - -274.183 274.183 291.667, - -335.804 193.877 291.667, - -374.541 100.358 291.667, - -387.753 4.74861e-14 291.667, - -374.541 -100.358 291.667, - -335.804 -193.877 291.667, - -274.183 -274.183 291.667, - -193.877 -335.804 291.667, - -100.358 -374.541 291.667, - -7.12291e-14 -387.753 291.667, - 100.358 -374.541 291.667, - 193.877 -335.804 291.667, - 274.183 -274.183 291.667, - 335.804 -193.877 291.667, - 374.541 -100.358 291.667, - 366.525 0 250, - 354.036 94.8637 250, - 317.42 183.263 250, - 259.172 259.172 250, - 183.263 317.42 250, - 94.8637 354.036 250, - 2.24432e-14 366.525 250, - -94.8637 354.036 250, - -183.263 317.42 250, - -259.172 259.172 250, - -317.42 183.263 250, - -354.036 94.8637 250, - -366.525 4.48864e-14 250, - -354.036 -94.8637 250, - -317.42 -183.263 250, - -259.172 -259.172 250, - -183.263 -317.42 250, - -94.8637 -354.036 250, - -6.73296e-14 -366.525 250, - 94.8637 -354.036 250, - 183.263 -317.42 250, - 259.172 -259.172 250, - 317.42 -183.263 250, - 354.036 -94.8637 250, - 347.552 0 208.333, - 335.709 89.953 208.333, - 300.988 173.776 208.333, - 245.756 245.756 208.333, - 173.776 300.988 208.333, - 89.953 335.709 208.333, - 2.12814e-14 347.552 208.333, - -89.953 335.709 208.333, - -173.776 300.988 208.333, - -245.756 245.756 208.333, - -300.988 173.776 208.333, - -335.709 89.953 208.333, - -347.552 4.25628e-14 208.333, - -335.709 -89.953 208.333, - -300.988 -173.776 208.333, - -245.756 -245.756 208.333, - -173.776 -300.988 208.333, - -89.953 -335.709 208.333, - -6.38442e-14 -347.552 208.333, - 89.953 -335.709 208.333, - 173.776 -300.988 208.333, - 245.756 -245.756 208.333, - 300.988 -173.776 208.333, - 335.709 -89.953 208.333, - 331.22 0 166.667, - 319.934 85.7261 166.667, - 286.845 165.61 166.667, - 234.208 234.208 166.667, - 165.61 286.845 166.667, - 85.7261 319.934 166.667, - 2.02814e-14 331.22 166.667, - -85.7261 319.934 166.667, - -165.61 286.845 166.667, - -234.208 234.208 166.667, - -286.845 165.61 166.667, - -319.934 85.7261 166.667, - -331.22 4.05628e-14 166.667, - -319.934 -85.7261 166.667, - -286.845 -165.61 166.667, - -234.208 -234.208 166.667, - -165.61 -286.845 166.667, - -85.7261 -319.934 166.667, - -6.08442e-14 -331.22 166.667, - 85.7261 -319.934 166.667, - 165.61 -286.845 166.667, - 234.208 -234.208 166.667, - 286.845 -165.61 166.667, - 319.934 -85.7261 166.667, - 317.939 0 125, - 307.105 82.2886 125, - 275.343 158.969 125, - 224.817 224.817 125, - 158.969 275.343 125, - 82.2886 307.105 125, - 1.94681e-14 317.939 125, - -82.2886 307.105 125, - -158.969 275.343 125, - -224.817 224.817 125, - -275.343 158.969 125, - -307.105 82.2886 125, - -317.939 3.89363e-14 125, - -307.105 -82.2886 125, - -275.343 -158.969 125, - -224.817 -224.817 125, - -158.969 -275.343 125, - -82.2886 -307.105 125, - -5.84044e-14 -317.939 125, - 82.2886 -307.105 125, - 158.969 -275.343 125, - 224.817 -224.817 125, - 275.343 -158.969 125, - 307.105 -82.2886 125, - 308.102 0 83.3333, - 297.604 79.7426 83.3333, - 266.824 154.051 83.3333, - 217.861 217.861 83.3333, - 154.051 266.824 83.3333, - 79.7426 297.604 83.3333, - 1.88658e-14 308.102 83.3333, - -79.7426 297.604 83.3333, - -154.051 266.824 83.3333, - -217.861 217.861 83.3333, - -266.824 154.051 83.3333, - -297.604 79.7426 83.3333, - -308.102 3.77316e-14 83.3333, - -297.604 -79.7426 83.3333, - -266.824 -154.051 83.3333, - -217.861 -217.861 83.3333, - -154.051 -266.824 83.3333, - -79.7426 -297.604 83.3333, - -5.65974e-14 -308.102 83.3333, - 79.7426 -297.604 83.3333, - 154.051 -266.824 83.3333, - 217.861 -217.861 83.3333, - 266.824 -154.051 83.3333, - 297.604 -79.7426 83.3333, - 302.046 0 41.6667, - 291.754 78.1752 41.6667, - 261.579 151.023 41.6667, - 213.579 213.579 41.6667, - 151.023 261.579 41.6667, - 78.1752 291.754 41.6667, - 1.8495e-14 302.046 41.6667, - -78.1752 291.754 41.6667, - -151.023 261.579 41.6667, - -213.579 213.579 41.6667, - -261.579 151.023 41.6667, - -291.754 78.1752 41.6667, - -302.046 3.69899e-14 41.6667, - -291.754 -78.1752 41.6667, - -261.579 -151.023 41.6667, - -213.579 -213.579 41.6667, - -151.023 -261.579 41.6667, - -78.1752 -291.754 41.6667, - -5.54849e-14 -302.046 41.6667, - 78.1752 -291.754 41.6667, - 151.023 -261.579 41.6667, - 213.579 -213.579 41.6667, - 261.579 -151.023 41.6667, - 291.754 -78.1752 41.6667, - 300 0 -4.26326e-14, - 289.778 77.6457 -4.26326e-14, - 259.808 150 -4.26326e-14, - 212.132 212.132 -4.26326e-14, - 150 259.808 -4.26326e-14, - 77.6457 289.778 -4.26326e-14, - 1.83697e-14 300 -4.26326e-14, - -77.6457 289.778 -4.26326e-14, - -150 259.808 -4.26326e-14, - -212.132 212.132 -4.26326e-14, - -259.808 150 -4.26326e-14, - -289.778 77.6457 -4.26326e-14, - -300 3.67394e-14 -4.26326e-14, - -289.778 -77.6457 -4.26326e-14, - -259.808 -150 -4.26326e-14, - -212.132 -212.132 -4.26326e-14, - -150 -259.808 -4.26326e-14, - -77.6457 -289.778 -4.26326e-14, - -5.51091e-14 -300 -4.26326e-14, - 77.6457 -289.778 -4.26326e-14, - 150 -259.808 -4.26326e-14, - 212.132 -212.132 -4.26326e-14, - 259.808 -150 -4.26326e-14, - 289.778 -77.6457 -4.26326e-14, - 302.046 0 -41.6667, - 291.754 78.1752 -41.6667, - 261.579 151.023 -41.6667, - 213.579 213.579 -41.6667, - 151.023 261.579 -41.6667, - 78.1752 291.754 -41.6667, - 1.8495e-14 302.046 -41.6667, - -78.1752 291.754 -41.6667, - -151.023 261.579 -41.6667, - -213.579 213.579 -41.6667, - -261.579 151.023 -41.6667, - -291.754 78.1752 -41.6667, - -302.046 3.69899e-14 -41.6667, - -291.754 -78.1752 -41.6667, - -261.579 -151.023 -41.6667, - -213.579 -213.579 -41.6667, - -151.023 -261.579 -41.6667, - -78.1752 -291.754 -41.6667, - -5.54849e-14 -302.046 -41.6667, - 78.1752 -291.754 -41.6667, - 151.023 -261.579 -41.6667, - 213.579 -213.579 -41.6667, - 261.579 -151.023 -41.6667, - 291.754 -78.1752 -41.6667, - 308.102 0 -83.3333, - 297.604 79.7426 -83.3333, - 266.824 154.051 -83.3333, - 217.861 217.861 -83.3333, - 154.051 266.824 -83.3333, - 79.7426 297.604 -83.3333, - 1.88658e-14 308.102 -83.3333, - -79.7426 297.604 -83.3333, - -154.051 266.824 -83.3333, - -217.861 217.861 -83.3333, - -266.824 154.051 -83.3333, - -297.604 79.7426 -83.3333, - -308.102 3.77316e-14 -83.3333, - -297.604 -79.7426 -83.3333, - -266.824 -154.051 -83.3333, - -217.861 -217.861 -83.3333, - -154.051 -266.824 -83.3333, - -79.7426 -297.604 -83.3333, - -5.65974e-14 -308.102 -83.3333, - 79.7426 -297.604 -83.3333, - 154.051 -266.824 -83.3333, - 217.861 -217.861 -83.3333, - 266.824 -154.051 -83.3333, - 297.604 -79.7426 -83.3333, - 317.939 0 -125, - 307.105 82.2886 -125, - 275.343 158.969 -125, - 224.817 224.817 -125, - 158.969 275.343 -125, - 82.2886 307.105 -125, - 1.94681e-14 317.939 -125, - -82.2886 307.105 -125, - -158.969 275.343 -125, - -224.817 224.817 -125, - -275.343 158.969 -125, - -307.105 82.2886 -125, - -317.939 3.89363e-14 -125, - -307.105 -82.2886 -125, - -275.343 -158.969 -125, - -224.817 -224.817 -125, - -158.969 -275.343 -125, - -82.2886 -307.105 -125, - -5.84044e-14 -317.939 -125, - 82.2886 -307.105 -125, - 158.969 -275.343 -125, - 224.817 -224.817 -125, - 275.343 -158.969 -125, - 307.105 -82.2886 -125, - 331.22 0 -166.667, - 319.934 85.7261 -166.667, - 286.845 165.61 -166.667, - 234.208 234.208 -166.667, - 165.61 286.845 -166.667, - 85.7261 319.934 -166.667, - 2.02814e-14 331.22 -166.667, - -85.7261 319.934 -166.667, - -165.61 286.845 -166.667, - -234.208 234.208 -166.667, - -286.845 165.61 -166.667, - -319.934 85.7261 -166.667, - -331.22 4.05628e-14 -166.667, - -319.934 -85.7261 -166.667, - -286.845 -165.61 -166.667, - -234.208 -234.208 -166.667, - -165.61 -286.845 -166.667, - -85.7261 -319.934 -166.667, - -6.08442e-14 -331.22 -166.667, - 85.7261 -319.934 -166.667, - 165.61 -286.845 -166.667, - 234.208 -234.208 -166.667, - 286.845 -165.61 -166.667, - 319.934 -85.7261 -166.667, - 347.552 0 -208.333, - 335.709 89.953 -208.333, - 300.988 173.776 -208.333, - 245.756 245.756 -208.333, - 173.776 300.988 -208.333, - 89.953 335.709 -208.333, - 2.12814e-14 347.552 -208.333, - -89.953 335.709 -208.333, - -173.776 300.988 -208.333, - -245.756 245.756 -208.333, - -300.988 173.776 -208.333, - -335.709 89.953 -208.333, - -347.552 4.25628e-14 -208.333, - -335.709 -89.953 -208.333, - -300.988 -173.776 -208.333, - -245.756 -245.756 -208.333, - -173.776 -300.988 -208.333, - -89.953 -335.709 -208.333, - -6.38442e-14 -347.552 -208.333, - 89.953 -335.709 -208.333, - 173.776 -300.988 -208.333, - 245.756 -245.756 -208.333, - 300.988 -173.776 -208.333, - 335.709 -89.953 -208.333, - 366.525 0 -250, - 354.036 94.8637 -250, - 317.42 183.263 -250, - 259.172 259.172 -250, - 183.263 317.42 -250, - 94.8637 354.036 -250, - 2.24432e-14 366.525 -250, - -94.8637 354.036 -250, - -183.263 317.42 -250, - -259.172 259.172 -250, - -317.42 183.263 -250, - -354.036 94.8637 -250, - -366.525 4.48864e-14 -250, - -354.036 -94.8637 -250, - -317.42 -183.263 -250, - -259.172 -259.172 -250, - -183.263 -317.42 -250, - -94.8637 -354.036 -250, - -6.73296e-14 -366.525 -250, - 94.8637 -354.036 -250, - 183.263 -317.42 -250, - 259.172 -259.172 -250, - 317.42 -183.263 -250, - 354.036 -94.8637 -250, - 387.753 0 -291.667, - 374.541 100.358 -291.667, - 335.804 193.877 -291.667, - 274.183 274.183 -291.667, - 193.877 335.804 -291.667, - 100.358 374.541 -291.667, - 2.3743e-14 387.753 -291.667, - -100.358 374.541 -291.667, - -193.877 335.804 -291.667, - -274.183 274.183 -291.667, - -335.804 193.877 -291.667, - -374.541 100.358 -291.667, - -387.753 4.74861e-14 -291.667, - -374.541 -100.358 -291.667, - -335.804 -193.877 -291.667, - -274.183 -274.183 -291.667, - -193.877 -335.804 -291.667, - -100.358 -374.541 -291.667, - -7.12291e-14 -387.753 -291.667, - 100.358 -374.541 -291.667, - 193.877 -335.804 -291.667, - 274.183 -274.183 -291.667, - 335.804 -193.877 -291.667, - 374.541 -100.358 -291.667, - 410.887 0 -333.333, - 396.886 106.345 -333.333, - 355.838 205.443 -333.333, - 290.541 290.541 -333.333, - 205.443 355.838 -333.333, - 106.345 396.886 -333.333, - 2.51595e-14 410.887 -333.333, - -106.345 396.886 -333.333, - -205.443 355.838 -333.333, - -290.541 290.541 -333.333, - -355.838 205.443 -333.333, - -396.886 106.345 -333.333, - -410.887 5.03191e-14 -333.333, - -396.886 -106.345 -333.333, - -355.838 -205.443 -333.333, - -290.541 -290.541 -333.333, - -205.443 -355.838 -333.333, - -106.345 -396.886 -333.333, - -7.54786e-14 -410.887 -333.333, - 106.345 -396.886 -333.333, - 205.443 -355.838 -333.333, - 290.541 -290.541 -333.333, - 355.838 -205.443 -333.333, - 396.886 -106.345 -333.333, - 435.622 0 -375, - 420.778 112.747 -375, - 377.26 217.811 -375, - 308.031 308.031 -375, - 217.811 377.26 -375, - 112.747 420.778 -375, - 2.66741e-14 435.622 -375, - -112.747 420.778 -375, - -217.811 377.26 -375, - -308.031 308.031 -375, - -377.26 217.811 -375, - -420.778 112.747 -375, - -435.622 5.33483e-14 -375, - -420.778 -112.747 -375, - -377.26 -217.811 -375, - -308.031 -308.031 -375, - -217.811 -377.26 -375, - -112.747 -420.778 -375, - -8.00224e-14 -435.622 -375, - 112.747 -420.778 -375, - 217.811 -377.26 -375, - 308.031 -308.031 -375, - 377.26 -217.811 -375, - 420.778 -112.747 -375, - 461.702 0 -416.667, - 445.969 119.497 -416.667, - 399.845 230.851 -416.667, - 326.472 326.472 -416.667, - 230.851 399.845 -416.667, - 119.497 445.969 -416.667, - 2.82711e-14 461.702 -416.667, - -119.497 445.969 -416.667, - -230.851 399.845 -416.667, - -326.472 326.472 -416.667, - -399.845 230.851 -416.667, - -445.969 119.497 -416.667, - -461.702 5.65421e-14 -416.667, - -445.969 -119.497 -416.667, - -399.845 -230.851 -416.667, - -326.472 -326.472 -416.667, - -230.851 -399.845 -416.667, - -119.497 -445.969 -416.667, - -8.48132e-14 -461.702 -416.667, - 119.497 -445.969 -416.667, - 230.851 -399.845 -416.667, - 326.472 -326.472 -416.667, - 399.845 -230.851 -416.667, - 445.969 -119.497 -416.667, - 517.071 0 -500, - 499.452 133.828 -500, - 447.797 258.536 -500, - 365.624 365.624 -500, - 258.536 447.797 -500, - 133.828 499.452 -500, - 3.16615e-14 517.071 -500, - -133.828 499.452 -500, - -258.536 447.797 -500, - -365.624 365.624 -500, - -447.797 258.536 -500, - -499.452 133.828 -500, - -517.071 6.33229e-14 -500, - -499.452 -133.828 -500, - -447.797 -258.536 -500, - -365.624 -365.624 -500, - -258.536 -447.797 -500, - -133.828 -499.452 -500, - -9.49844e-14 -517.071 -500, - 133.828 -499.452 -500, - 258.536 -447.797 -500, - 365.624 -365.624 -500, - 447.797 -258.536 -500, - 499.452 -133.828 -500, - 466.221 0 500, - 450.335 120.667 500, - 403.76 233.111 500, - 329.668 329.668 500, - 233.111 403.76 500, - 120.667 450.335 500, - 2.85478e-14 466.221 500, - -120.667 450.335 500, - -233.111 403.76 500, - -329.668 329.668 500, - -403.76 233.111 500, - -450.335 120.667 500, - -466.221 5.70957e-14 500, - -450.335 -120.667 500, - -403.76 -233.111 500, - -329.668 -329.668 500, - -233.111 -403.76 500, - -120.667 -450.335 500, - -8.56435e-14 -466.221 500, - 120.667 -450.335 500, - 233.111 -403.76 500, - 329.668 -329.668 500, - 403.76 -233.111 500, - 450.335 -120.667 500, - 434.78 0 458.333, - 419.965 112.529 458.333, - 376.531 217.39 458.333, - 307.436 307.436 458.333, - 217.39 376.531 458.333, - 112.529 419.965 458.333, - 2.66226e-14 434.78 458.333, - -112.529 419.965 458.333, - -217.39 376.531 458.333, - -307.436 307.436 458.333, - -376.531 217.39 458.333, - -419.965 112.529 458.333, - -434.78 5.32452e-14 458.333, - -419.965 -112.529 458.333, - -376.531 -217.39 458.333, - -307.436 -307.436 458.333, - -217.39 -376.531 458.333, - -112.529 -419.965 458.333, - -7.98678e-14 -434.78 458.333, - 112.529 -419.965 458.333, - 217.39 -376.531 458.333, - 307.436 -307.436 458.333, - 376.531 -217.39 458.333, - 419.965 -112.529 458.333, - 403.941 0 416.667, - 390.177 104.548 416.667, - 349.823 201.971 416.667, - 285.629 285.629 416.667, - 201.971 349.823 416.667, - 104.548 390.177 416.667, - 2.47343e-14 403.941 416.667, - -104.548 390.177 416.667, - -201.971 349.823 416.667, - -285.629 285.629 416.667, - -349.823 201.971 416.667, - -390.177 104.548 416.667, - -403.941 4.94685e-14 416.667, - -390.177 -104.548 416.667, - -349.823 -201.971 416.667, - -285.629 -285.629 416.667, - -201.971 -349.823 416.667, - -104.548 -390.177 416.667, - -7.42028e-14 -403.941 416.667, - 104.548 -390.177 416.667, - 201.971 -349.823 416.667, - 285.629 -285.629 416.667, - 349.823 -201.971 416.667, - 390.177 -104.548 416.667, - 373.853 0 375, - 361.115 96.7604 375, - 323.767 186.927 375, - 264.354 264.354 375, - 186.927 323.767 375, - 96.7604 361.115 375, - 2.28919e-14 373.853 375, - -96.7604 361.115 375, - -186.927 323.767 375, - -264.354 264.354 375, - -323.767 186.927 375, - -361.115 96.7604 375, - -373.853 4.57838e-14 375, - -361.115 -96.7604 375, - -323.767 -186.927 375, - -264.354 -264.354 375, - -186.927 -323.767 375, - -96.7604 -361.115 375, - -6.86758e-14 -373.853 375, - 96.7604 -361.115 375, - 186.927 -323.767 375, - 264.354 -264.354 375, - 323.767 -186.927 375, - 361.115 -96.7604 375, - 344.714 0 333.333, - 332.968 89.2185 333.333, - 298.531 172.357 333.333, - 243.75 243.75 333.333, - 172.357 298.531 333.333, - 89.2185 332.968 333.333, - 2.11076e-14 344.714 333.333, - -89.2185 332.968 333.333, - -172.357 298.531 333.333, - -243.75 243.75 333.333, - -298.531 172.357 333.333, - -332.968 89.2185 333.333, - -344.714 4.22153e-14 333.333, - -332.968 -89.2185 333.333, - -298.531 -172.357 333.333, - -243.75 -243.75 333.333, - -172.357 -298.531 333.333, - -89.2185 -332.968 333.333, - -6.33229e-14 -344.714 333.333, - 89.2185 -332.968 333.333, - 172.357 -298.531 333.333, - 243.75 -243.75 333.333, - 298.531 -172.357 333.333, - 332.968 -89.2185 333.333, - 316.785 0 291.667, - 305.99 81.9899 291.667, - 274.344 158.392 291.667, - 224.001 224.001 291.667, - 158.392 274.344 291.667, - 81.9899 305.99 291.667, - 1.93975e-14 316.785 291.667, - -81.9899 305.99 291.667, - -158.392 274.344 291.667, - -224.001 224.001 291.667, - -274.344 158.392 291.667, - -305.99 81.9899 291.667, - -316.785 3.87949e-14 291.667, - -305.99 -81.9899 291.667, - -274.344 -158.392 291.667, - -224.001 -224.001 291.667, - -158.392 -274.344 291.667, - -81.9899 -305.99 291.667, - -5.81924e-14 -316.785 291.667, - 81.9899 -305.99 291.667, - 158.392 -274.344 291.667, - 224.001 -224.001 291.667, - 274.344 -158.392 291.667, - 305.99 -81.9899 291.667, - 290.415 0 250, - 280.519 75.1648 250, - 251.506 145.207 250, - 205.354 205.354 250, - 145.207 251.506 250, - 75.1648 280.519 250, - 1.77828e-14 290.415 250, - -75.1648 280.519 250, - -145.207 251.506 250, - -205.354 205.354 250, - -251.506 145.207 250, - -280.519 75.1648 250, - -290.415 3.55655e-14 250, - -280.519 -75.1648 250, - -251.506 -145.207 250, - -205.354 -205.354 250, - -145.207 -251.506 250, - -75.1648 -280.519 250, - -5.33483e-14 -290.415 250, - 75.1648 -280.519 250, - 145.207 -251.506 250, - 205.354 -205.354 250, - 251.506 -145.207 250, - 280.519 -75.1648 250, - 266.068 0 208.333, - 257.002 68.8634 208.333, - 230.421 133.034 208.333, - 188.138 188.138 208.333, - 133.034 230.421 208.333, - 68.8634 257.002 208.333, - 1.6292e-14 266.068 208.333, - -68.8634 257.002 208.333, - -133.034 230.421 208.333, - -188.138 188.138 208.333, - -230.421 133.034 208.333, - -257.002 68.8634 208.333, - -266.068 3.25839e-14 208.333, - -257.002 -68.8634 208.333, - -230.421 -133.034 208.333, - -188.138 -188.138 208.333, - -133.034 -230.421 208.333, - -68.8634 -257.002 208.333, - -4.88759e-14 -266.068 208.333, - 68.8634 -257.002 208.333, - 133.034 -230.421 208.333, - 188.138 -188.138 208.333, - 230.421 -133.034 208.333, - 257.002 -68.8634 208.333, - 244.35 0 166.667, - 236.024 63.2424 166.667, - 211.613 122.175 166.667, - 172.782 172.782 166.667, - 122.175 211.613 166.667, - 63.2424 236.024 166.667, - 1.49621e-14 244.35 166.667, - -63.2424 236.024 166.667, - -122.175 211.613 166.667, - -172.782 172.782 166.667, - -211.613 122.175 166.667, - -236.024 63.2424 166.667, - -244.35 2.99242e-14 166.667, - -236.024 -63.2424 166.667, - -211.613 -122.175 166.667, - -172.782 -172.782 166.667, - -122.175 -211.613 166.667, - -63.2424 -236.024 166.667, - -4.48864e-14 -244.35 166.667, - 63.2424 -236.024 166.667, - 122.175 -211.613 166.667, - 172.782 -172.782 166.667, - 211.613 -122.175 166.667, - 236.024 -63.2424 166.667, - 226.02 0 125, - 218.319 58.4983 125, - 195.739 113.01 125, - 159.82 159.82 125, - 113.01 195.739 125, - 58.4983 218.319 125, - 1.38397e-14 226.02 125, - -58.4983 218.319 125, - -113.01 195.739 125, - -159.82 159.82 125, - -195.739 113.01 125, - -218.319 58.4983 125, - -226.02 2.76795e-14 125, - -218.319 -58.4983 125, - -195.739 -113.01 125, - -159.82 -159.82 125, - -113.01 -195.739 125, - -58.4983 -218.319 125, - -4.15192e-14 -226.02 125, - 58.4983 -218.319 125, - 113.01 -195.739 125, - 159.82 -159.82 125, - 195.739 -113.01 125, - 218.319 -58.4983 125, - 211.959 0 83.3333, - 204.737 54.8591 83.3333, - 183.562 105.98 83.3333, - 149.878 149.878 83.3333, - 105.98 183.562 83.3333, - 54.8591 204.737 83.3333, - 1.29788e-14 211.959 83.3333, - -54.8591 204.737 83.3333, - -105.98 183.562 83.3333, - -149.878 149.878 83.3333, - -183.562 105.98 83.3333, - -204.737 54.8591 83.3333, - -211.959 2.59575e-14 83.3333, - -204.737 -54.8591 83.3333, - -183.562 -105.98 83.3333, - -149.878 -149.878 83.3333, - -105.98 -183.562 83.3333, - -54.8591 -204.737 83.3333, - -3.89363e-14 -211.959 83.3333, - 54.8591 -204.737 83.3333, - 105.98 -183.562 83.3333, - 149.878 -149.878 83.3333, - 183.562 -105.98 83.3333, - 204.737 -54.8591 83.3333, - 203.056 0 41.6667, - 196.137 52.5547 41.6667, - 175.852 101.528 41.6667, - 143.582 143.582 41.6667, - 101.528 175.852 41.6667, - 52.5547 196.137 41.6667, - 1.24336e-14 203.056 41.6667, - -52.5547 196.137 41.6667, - -101.528 175.852 41.6667, - -143.582 143.582 41.6667, - -175.852 101.528 41.6667, - -196.137 52.5547 41.6667, - -203.056 2.48672e-14 41.6667, - -196.137 -52.5547 41.6667, - -175.852 -101.528 41.6667, - -143.582 -143.582 41.6667, - -101.528 -175.852 41.6667, - -52.5547 -196.137 41.6667, - -3.73008e-14 -203.056 41.6667, - 52.5547 -196.137 41.6667, - 101.528 -175.852 41.6667, - 143.582 -143.582 41.6667, - 175.852 -101.528 41.6667, - 196.137 -52.5547 41.6667, - 200 0 -4.26326e-14, - 193.185 51.7638 -4.26326e-14, - 173.205 100 -4.26326e-14, - 141.421 141.421 -4.26326e-14, - 100 173.205 -4.26326e-14, - 51.7638 193.185 -4.26326e-14, - 1.22465e-14 200 -4.26326e-14, - -51.7638 193.185 -4.26326e-14, - -100 173.205 -4.26326e-14, - -141.421 141.421 -4.26326e-14, - -173.205 100 -4.26326e-14, - -193.185 51.7638 -4.26326e-14, - -200 2.44929e-14 -4.26326e-14, - -193.185 -51.7638 -4.26326e-14, - -173.205 -100 -4.26326e-14, - -141.421 -141.421 -4.26326e-14, - -100 -173.205 -4.26326e-14, - -51.7638 -193.185 -4.26326e-14, - -3.67394e-14 -200 -4.26326e-14, - 51.7638 -193.185 -4.26326e-14, - 100 -173.205 -4.26326e-14, - 141.421 -141.421 -4.26326e-14, - 173.205 -100 -4.26326e-14, - 193.185 -51.7638 -4.26326e-14, - 203.056 0 -41.6667, - 196.137 52.5547 -41.6667, - 175.852 101.528 -41.6667, - 143.582 143.582 -41.6667, - 101.528 175.852 -41.6667, - 52.5547 196.137 -41.6667, - 1.24336e-14 203.056 -41.6667, - -52.5547 196.137 -41.6667, - -101.528 175.852 -41.6667, - -143.582 143.582 -41.6667, - -175.852 101.528 -41.6667, - -196.137 52.5547 -41.6667, - -203.056 2.48672e-14 -41.6667, - -196.137 -52.5547 -41.6667, - -175.852 -101.528 -41.6667, - -143.582 -143.582 -41.6667, - -101.528 -175.852 -41.6667, - -52.5547 -196.137 -41.6667, - -3.73008e-14 -203.056 -41.6667, - 52.5547 -196.137 -41.6667, - 101.528 -175.852 -41.6667, - 143.582 -143.582 -41.6667, - 175.852 -101.528 -41.6667, - 196.137 -52.5547 -41.6667, - 211.959 0 -83.3333, - 204.737 54.8591 -83.3333, - 183.562 105.98 -83.3333, - 149.878 149.878 -83.3333, - 105.98 183.562 -83.3333, - 54.8591 204.737 -83.3333, - 1.29788e-14 211.959 -83.3333, - -54.8591 204.737 -83.3333, - -105.98 183.562 -83.3333, - -149.878 149.878 -83.3333, - -183.562 105.98 -83.3333, - -204.737 54.8591 -83.3333, - -211.959 2.59575e-14 -83.3333, - -204.737 -54.8591 -83.3333, - -183.562 -105.98 -83.3333, - -149.878 -149.878 -83.3333, - -105.98 -183.562 -83.3333, - -54.8591 -204.737 -83.3333, - -3.89363e-14 -211.959 -83.3333, - 54.8591 -204.737 -83.3333, - 105.98 -183.562 -83.3333, - 149.878 -149.878 -83.3333, - 183.562 -105.98 -83.3333, - 204.737 -54.8591 -83.3333, - 226.02 0 -125, - 218.319 58.4983 -125, - 195.739 113.01 -125, - 159.82 159.82 -125, - 113.01 195.739 -125, - 58.4983 218.319 -125, - 1.38397e-14 226.02 -125, - -58.4983 218.319 -125, - -113.01 195.739 -125, - -159.82 159.82 -125, - -195.739 113.01 -125, - -218.319 58.4983 -125, - -226.02 2.76795e-14 -125, - -218.319 -58.4983 -125, - -195.739 -113.01 -125, - -159.82 -159.82 -125, - -113.01 -195.739 -125, - -58.4983 -218.319 -125, - -4.15192e-14 -226.02 -125, - 58.4983 -218.319 -125, - 113.01 -195.739 -125, - 159.82 -159.82 -125, - 195.739 -113.01 -125, - 218.319 -58.4983 -125, - 244.35 0 -166.667, - 236.024 63.2424 -166.667, - 211.613 122.175 -166.667, - 172.782 172.782 -166.667, - 122.175 211.613 -166.667, - 63.2424 236.024 -166.667, - 1.49621e-14 244.35 -166.667, - -63.2424 236.024 -166.667, - -122.175 211.613 -166.667, - -172.782 172.782 -166.667, - -211.613 122.175 -166.667, - -236.024 63.2424 -166.667, - -244.35 2.99242e-14 -166.667, - -236.024 -63.2424 -166.667, - -211.613 -122.175 -166.667, - -172.782 -172.782 -166.667, - -122.175 -211.613 -166.667, - -63.2424 -236.024 -166.667, - -4.48864e-14 -244.35 -166.667, - 63.2424 -236.024 -166.667, - 122.175 -211.613 -166.667, - 172.782 -172.782 -166.667, - 211.613 -122.175 -166.667, - 236.024 -63.2424 -166.667, - 266.068 0 -208.333, - 257.002 68.8634 -208.333, - 230.421 133.034 -208.333, - 188.138 188.138 -208.333, - 133.034 230.421 -208.333, - 68.8634 257.002 -208.333, - 1.6292e-14 266.068 -208.333, - -68.8634 257.002 -208.333, - -133.034 230.421 -208.333, - -188.138 188.138 -208.333, - -230.421 133.034 -208.333, - -257.002 68.8634 -208.333, - -266.068 3.25839e-14 -208.333, - -257.002 -68.8634 -208.333, - -230.421 -133.034 -208.333, - -188.138 -188.138 -208.333, - -133.034 -230.421 -208.333, - -68.8634 -257.002 -208.333, - -4.88759e-14 -266.068 -208.333, - 68.8634 -257.002 -208.333, - 133.034 -230.421 -208.333, - 188.138 -188.138 -208.333, - 230.421 -133.034 -208.333, - 257.002 -68.8634 -208.333, - 290.415 0 -250, - 280.519 75.1648 -250, - 251.506 145.207 -250, - 205.354 205.354 -250, - 145.207 251.506 -250, - 75.1648 280.519 -250, - 1.77828e-14 290.415 -250, - -75.1648 280.519 -250, - -145.207 251.506 -250, - -205.354 205.354 -250, - -251.506 145.207 -250, - -280.519 75.1648 -250, - -290.415 3.55655e-14 -250, - -280.519 -75.1648 -250, - -251.506 -145.207 -250, - -205.354 -205.354 -250, - -145.207 -251.506 -250, - -75.1648 -280.519 -250, - -5.33483e-14 -290.415 -250, - 75.1648 -280.519 -250, - 145.207 -251.506 -250, - 205.354 -205.354 -250, - 251.506 -145.207 -250, - 280.519 -75.1648 -250, - 316.785 0 -291.667, - 305.99 81.9899 -291.667, - 274.344 158.392 -291.667, - 224.001 224.001 -291.667, - 158.392 274.344 -291.667, - 81.9899 305.99 -291.667, - 1.93975e-14 316.785 -291.667, - -81.9899 305.99 -291.667, - -158.392 274.344 -291.667, - -224.001 224.001 -291.667, - -274.344 158.392 -291.667, - -305.99 81.9899 -291.667, - -316.785 3.87949e-14 -291.667, - -305.99 -81.9899 -291.667, - -274.344 -158.392 -291.667, - -224.001 -224.001 -291.667, - -158.392 -274.344 -291.667, - -81.9899 -305.99 -291.667, - -5.81924e-14 -316.785 -291.667, - 81.9899 -305.99 -291.667, - 158.392 -274.344 -291.667, - 224.001 -224.001 -291.667, - 274.344 -158.392 -291.667, - 305.99 -81.9899 -291.667, - 344.714 0 -333.333, - 332.968 89.2185 -333.333, - 298.531 172.357 -333.333, - 243.75 243.75 -333.333, - 172.357 298.531 -333.333, - 89.2185 332.968 -333.333, - 2.11076e-14 344.714 -333.333, - -89.2185 332.968 -333.333, - -172.357 298.531 -333.333, - -243.75 243.75 -333.333, - -298.531 172.357 -333.333, - -332.968 89.2185 -333.333, - -344.714 4.22153e-14 -333.333, - -332.968 -89.2185 -333.333, - -298.531 -172.357 -333.333, - -243.75 -243.75 -333.333, - -172.357 -298.531 -333.333, - -89.2185 -332.968 -333.333, - -6.33229e-14 -344.714 -333.333, - 89.2185 -332.968 -333.333, - 172.357 -298.531 -333.333, - 243.75 -243.75 -333.333, - 298.531 -172.357 -333.333, - 332.968 -89.2185 -333.333, - 373.853 0 -375, - 361.115 96.7604 -375, - 323.767 186.927 -375, - 264.354 264.354 -375, - 186.927 323.767 -375, - 96.7604 361.115 -375, - 2.28919e-14 373.853 -375, - -96.7604 361.115 -375, - -186.927 323.767 -375, - -264.354 264.354 -375, - -323.767 186.927 -375, - -361.115 96.7604 -375, - -373.853 4.57838e-14 -375, - -361.115 -96.7604 -375, - -323.767 -186.927 -375, - -264.354 -264.354 -375, - -186.927 -323.767 -375, - -96.7604 -361.115 -375, - -6.86758e-14 -373.853 -375, - 96.7604 -361.115 -375, - 186.927 -323.767 -375, - 264.354 -264.354 -375, - 323.767 -186.927 -375, - 361.115 -96.7604 -375, - 403.941 0 -416.667, - 390.177 104.548 -416.667, - 349.823 201.971 -416.667, - 285.629 285.629 -416.667, - 201.971 349.823 -416.667, - 104.548 390.177 -416.667, - 2.47343e-14 403.941 -416.667, - -104.548 390.177 -416.667, - -201.971 349.823 -416.667, - -285.629 285.629 -416.667, - -349.823 201.971 -416.667, - -390.177 104.548 -416.667, - -403.941 4.94685e-14 -416.667, - -390.177 -104.548 -416.667, - -349.823 -201.971 -416.667, - -285.629 -285.629 -416.667, - -201.971 -349.823 -416.667, - -104.548 -390.177 -416.667, - -7.42028e-14 -403.941 -416.667, - 104.548 -390.177 -416.667, - 201.971 -349.823 -416.667, - 285.629 -285.629 -416.667, - 349.823 -201.971 -416.667, - 390.177 -104.548 -416.667, - 434.78 0 -458.333, - 419.965 112.529 -458.333, - 376.531 217.39 -458.333, - 307.436 307.436 -458.333, - 217.39 376.531 -458.333, - 112.529 419.965 -458.333, - 2.66226e-14 434.78 -458.333, - -112.529 419.965 -458.333, - -217.39 376.531 -458.333, - -307.436 307.436 -458.333, - -376.531 217.39 -458.333, - -419.965 112.529 -458.333, - -434.78 5.32452e-14 -458.333, - -419.965 -112.529 -458.333, - -376.531 -217.39 -458.333, - -307.436 -307.436 -458.333, - -217.39 -376.531 -458.333, - -112.529 -419.965 -458.333, - -7.98678e-14 -434.78 -458.333, - 112.529 -419.965 -458.333, - 217.39 -376.531 -458.333, - 307.436 -307.436 -458.333, - 376.531 -217.39 -458.333, - 419.965 -112.529 -458.333, - ] - } - coordIndex [ - 0, 24, 25, 1, -1, - 1, 25, 26, 2, -1, - 2, 26, 27, 3, -1, - 3, 27, 28, 4, -1, - 4, 28, 29, 5, -1, - 5, 29, 30, 6, -1, - 6, 30, 31, 7, -1, - 7, 31, 32, 8, -1, - 8, 32, 33, 9, -1, - 9, 33, 34, 10, -1, - 10, 34, 35, 11, -1, - 11, 35, 36, 12, -1, - 12, 36, 37, 13, -1, - 13, 37, 38, 14, -1, - 14, 38, 39, 15, -1, - 15, 39, 40, 16, -1, - 16, 40, 41, 17, -1, - 17, 41, 42, 18, -1, - 18, 42, 43, 19, -1, - 19, 43, 44, 20, -1, - 20, 44, 45, 21, -1, - 21, 45, 46, 22, -1, - 22, 46, 47, 23, -1, - 23, 47, 24, 0, -1, - 24, 48, 49, 25, -1, - 25, 49, 50, 26, -1, - 26, 50, 51, 27, -1, - 27, 51, 52, 28, -1, - 28, 52, 53, 29, -1, - 29, 53, 54, 30, -1, - 30, 54, 55, 31, -1, - 31, 55, 56, 32, -1, - 32, 56, 57, 33, -1, - 33, 57, 58, 34, -1, - 34, 58, 59, 35, -1, - 35, 59, 60, 36, -1, - 36, 60, 61, 37, -1, - 37, 61, 62, 38, -1, - 38, 62, 63, 39, -1, - 39, 63, 64, 40, -1, - 40, 64, 65, 41, -1, - 41, 65, 66, 42, -1, - 42, 66, 67, 43, -1, - 43, 67, 68, 44, -1, - 44, 68, 69, 45, -1, - 45, 69, 70, 46, -1, - 46, 70, 71, 47, -1, - 47, 71, 48, 24, -1, - 48, 72, 73, 49, -1, - 49, 73, 74, 50, -1, - 50, 74, 75, 51, -1, - 51, 75, 76, 52, -1, - 52, 76, 77, 53, -1, - 53, 77, 78, 54, -1, - 54, 78, 79, 55, -1, - 55, 79, 80, 56, -1, - 56, 80, 81, 57, -1, - 57, 81, 82, 58, -1, - 58, 82, 83, 59, -1, - 59, 83, 84, 60, -1, - 60, 84, 85, 61, -1, - 61, 85, 86, 62, -1, - 62, 86, 87, 63, -1, - 63, 87, 88, 64, -1, - 64, 88, 89, 65, -1, - 65, 89, 90, 66, -1, - 66, 90, 91, 67, -1, - 67, 91, 92, 68, -1, - 68, 92, 93, 69, -1, - 69, 93, 94, 70, -1, - 70, 94, 95, 71, -1, - 71, 95, 72, 48, -1, - 72, 96, 97, 73, -1, - 73, 97, 98, 74, -1, - 74, 98, 99, 75, -1, - 75, 99, 100, 76, -1, - 76, 100, 101, 77, -1, - 77, 101, 102, 78, -1, - 78, 102, 103, 79, -1, - 79, 103, 104, 80, -1, - 80, 104, 105, 81, -1, - 81, 105, 106, 82, -1, - 82, 106, 107, 83, -1, - 83, 107, 108, 84, -1, - 84, 108, 109, 85, -1, - 85, 109, 110, 86, -1, - 86, 110, 111, 87, -1, - 87, 111, 112, 88, -1, - 88, 112, 113, 89, -1, - 89, 113, 114, 90, -1, - 90, 114, 115, 91, -1, - 91, 115, 116, 92, -1, - 92, 116, 117, 93, -1, - 93, 117, 118, 94, -1, - 94, 118, 119, 95, -1, - 95, 119, 96, 72, -1, - 96, 120, 121, 97, -1, - 97, 121, 122, 98, -1, - 98, 122, 123, 99, -1, - 99, 123, 124, 100, -1, - 100, 124, 125, 101, -1, - 101, 125, 126, 102, -1, - 102, 126, 127, 103, -1, - 103, 127, 128, 104, -1, - 104, 128, 129, 105, -1, - 105, 129, 130, 106, -1, - 106, 130, 131, 107, -1, - 107, 131, 132, 108, -1, - 108, 132, 133, 109, -1, - 109, 133, 134, 110, -1, - 110, 134, 135, 111, -1, - 111, 135, 136, 112, -1, - 112, 136, 137, 113, -1, - 113, 137, 138, 114, -1, - 114, 138, 139, 115, -1, - 115, 139, 140, 116, -1, - 116, 140, 141, 117, -1, - 117, 141, 142, 118, -1, - 118, 142, 143, 119, -1, - 119, 143, 120, 96, -1, - 120, 144, 145, 121, -1, - 121, 145, 146, 122, -1, - 122, 146, 147, 123, -1, - 123, 147, 148, 124, -1, - 124, 148, 149, 125, -1, - 125, 149, 150, 126, -1, - 126, 150, 151, 127, -1, - 127, 151, 152, 128, -1, - 128, 152, 153, 129, -1, - 129, 153, 154, 130, -1, - 130, 154, 155, 131, -1, - 131, 155, 156, 132, -1, - 132, 156, 157, 133, -1, - 133, 157, 158, 134, -1, - 134, 158, 159, 135, -1, - 135, 159, 160, 136, -1, - 136, 160, 161, 137, -1, - 137, 161, 162, 138, -1, - 138, 162, 163, 139, -1, - 139, 163, 164, 140, -1, - 140, 164, 165, 141, -1, - 141, 165, 166, 142, -1, - 142, 166, 167, 143, -1, - 143, 167, 144, 120, -1, - 144, 168, 169, 145, -1, - 145, 169, 170, 146, -1, - 146, 170, 171, 147, -1, - 147, 171, 172, 148, -1, - 148, 172, 173, 149, -1, - 149, 173, 174, 150, -1, - 150, 174, 175, 151, -1, - 151, 175, 176, 152, -1, - 152, 176, 177, 153, -1, - 153, 177, 178, 154, -1, - 154, 178, 179, 155, -1, - 155, 179, 180, 156, -1, - 156, 180, 181, 157, -1, - 157, 181, 182, 158, -1, - 158, 182, 183, 159, -1, - 159, 183, 184, 160, -1, - 160, 184, 185, 161, -1, - 161, 185, 186, 162, -1, - 162, 186, 187, 163, -1, - 163, 187, 188, 164, -1, - 164, 188, 189, 165, -1, - 165, 189, 190, 166, -1, - 166, 190, 191, 167, -1, - 167, 191, 168, 144, -1, - 168, 192, 193, 169, -1, - 169, 193, 194, 170, -1, - 170, 194, 195, 171, -1, - 171, 195, 196, 172, -1, - 172, 196, 197, 173, -1, - 173, 197, 198, 174, -1, - 174, 198, 199, 175, -1, - 175, 199, 200, 176, -1, - 176, 200, 201, 177, -1, - 177, 201, 202, 178, -1, - 178, 202, 203, 179, -1, - 179, 203, 204, 180, -1, - 180, 204, 205, 181, -1, - 181, 205, 206, 182, -1, - 182, 206, 207, 183, -1, - 183, 207, 208, 184, -1, - 184, 208, 209, 185, -1, - 185, 209, 210, 186, -1, - 186, 210, 211, 187, -1, - 187, 211, 212, 188, -1, - 188, 212, 213, 189, -1, - 189, 213, 214, 190, -1, - 190, 214, 215, 191, -1, - 191, 215, 192, 168, -1, - 192, 216, 217, 193, -1, - 193, 217, 218, 194, -1, - 194, 218, 219, 195, -1, - 195, 219, 220, 196, -1, - 196, 220, 221, 197, -1, - 197, 221, 222, 198, -1, - 198, 222, 223, 199, -1, - 199, 223, 224, 200, -1, - 200, 224, 225, 201, -1, - 201, 225, 226, 202, -1, - 202, 226, 227, 203, -1, - 203, 227, 228, 204, -1, - 204, 228, 229, 205, -1, - 205, 229, 230, 206, -1, - 206, 230, 231, 207, -1, - 207, 231, 232, 208, -1, - 208, 232, 233, 209, -1, - 209, 233, 234, 210, -1, - 210, 234, 235, 211, -1, - 211, 235, 236, 212, -1, - 212, 236, 237, 213, -1, - 213, 237, 238, 214, -1, - 214, 238, 239, 215, -1, - 215, 239, 216, 192, -1, - 216, 240, 241, 217, -1, - 217, 241, 242, 218, -1, - 218, 242, 243, 219, -1, - 219, 243, 244, 220, -1, - 220, 244, 245, 221, -1, - 221, 245, 246, 222, -1, - 222, 246, 247, 223, -1, - 223, 247, 248, 224, -1, - 224, 248, 249, 225, -1, - 225, 249, 250, 226, -1, - 226, 250, 251, 227, -1, - 227, 251, 252, 228, -1, - 228, 252, 253, 229, -1, - 229, 253, 254, 230, -1, - 230, 254, 255, 231, -1, - 231, 255, 256, 232, -1, - 232, 256, 257, 233, -1, - 233, 257, 258, 234, -1, - 234, 258, 259, 235, -1, - 235, 259, 260, 236, -1, - 236, 260, 261, 237, -1, - 237, 261, 262, 238, -1, - 238, 262, 263, 239, -1, - 239, 263, 240, 216, -1, - 240, 264, 265, 241, -1, - 241, 265, 266, 242, -1, - 242, 266, 267, 243, -1, - 243, 267, 268, 244, -1, - 244, 268, 269, 245, -1, - 245, 269, 270, 246, -1, - 246, 270, 271, 247, -1, - 247, 271, 272, 248, -1, - 248, 272, 273, 249, -1, - 249, 273, 274, 250, -1, - 250, 274, 275, 251, -1, - 251, 275, 276, 252, -1, - 252, 276, 277, 253, -1, - 253, 277, 278, 254, -1, - 254, 278, 279, 255, -1, - 255, 279, 280, 256, -1, - 256, 280, 281, 257, -1, - 257, 281, 282, 258, -1, - 258, 282, 283, 259, -1, - 259, 283, 284, 260, -1, - 260, 284, 285, 261, -1, - 261, 285, 286, 262, -1, - 262, 286, 287, 263, -1, - 263, 287, 264, 240, -1, - 264, 288, 289, 265, -1, - 265, 289, 290, 266, -1, - 266, 290, 291, 267, -1, - 267, 291, 292, 268, -1, - 268, 292, 293, 269, -1, - 269, 293, 294, 270, -1, - 270, 294, 295, 271, -1, - 271, 295, 296, 272, -1, - 272, 296, 297, 273, -1, - 273, 297, 298, 274, -1, - 274, 298, 299, 275, -1, - 275, 299, 300, 276, -1, - 276, 300, 301, 277, -1, - 277, 301, 302, 278, -1, - 278, 302, 303, 279, -1, - 279, 303, 304, 280, -1, - 280, 304, 305, 281, -1, - 281, 305, 306, 282, -1, - 282, 306, 307, 283, -1, - 283, 307, 308, 284, -1, - 284, 308, 309, 285, -1, - 285, 309, 310, 286, -1, - 286, 310, 311, 287, -1, - 287, 311, 288, 264, -1, - 288, 312, 313, 289, -1, - 289, 313, 314, 290, -1, - 290, 314, 315, 291, -1, - 291, 315, 316, 292, -1, - 292, 316, 317, 293, -1, - 293, 317, 318, 294, -1, - 294, 318, 319, 295, -1, - 295, 319, 320, 296, -1, - 296, 320, 321, 297, -1, - 297, 321, 322, 298, -1, - 298, 322, 323, 299, -1, - 299, 323, 324, 300, -1, - 300, 324, 325, 301, -1, - 301, 325, 326, 302, -1, - 302, 326, 327, 303, -1, - 303, 327, 328, 304, -1, - 304, 328, 329, 305, -1, - 305, 329, 330, 306, -1, - 306, 330, 331, 307, -1, - 307, 331, 332, 308, -1, - 308, 332, 333, 309, -1, - 309, 333, 334, 310, -1, - 310, 334, 335, 311, -1, - 311, 335, 312, 288, -1, - 312, 336, 337, 313, -1, - 313, 337, 338, 314, -1, - 314, 338, 339, 315, -1, - 315, 339, 340, 316, -1, - 316, 340, 341, 317, -1, - 317, 341, 342, 318, -1, - 318, 342, 343, 319, -1, - 319, 343, 344, 320, -1, - 320, 344, 345, 321, -1, - 321, 345, 346, 322, -1, - 322, 346, 347, 323, -1, - 323, 347, 348, 324, -1, - 324, 348, 349, 325, -1, - 325, 349, 350, 326, -1, - 326, 350, 351, 327, -1, - 327, 351, 352, 328, -1, - 328, 352, 353, 329, -1, - 329, 353, 354, 330, -1, - 330, 354, 355, 331, -1, - 331, 355, 356, 332, -1, - 332, 356, 357, 333, -1, - 333, 357, 358, 334, -1, - 334, 358, 359, 335, -1, - 335, 359, 336, 312, -1, - 336, 360, 361, 337, -1, - 337, 361, 362, 338, -1, - 338, 362, 363, 339, -1, - 339, 363, 364, 340, -1, - 340, 364, 365, 341, -1, - 341, 365, 366, 342, -1, - 342, 366, 367, 343, -1, - 343, 367, 368, 344, -1, - 344, 368, 369, 345, -1, - 345, 369, 370, 346, -1, - 346, 370, 371, 347, -1, - 347, 371, 372, 348, -1, - 348, 372, 373, 349, -1, - 349, 373, 374, 350, -1, - 350, 374, 375, 351, -1, - 351, 375, 376, 352, -1, - 352, 376, 377, 353, -1, - 353, 377, 378, 354, -1, - 354, 378, 379, 355, -1, - 355, 379, 380, 356, -1, - 356, 380, 381, 357, -1, - 357, 381, 382, 358, -1, - 358, 382, 383, 359, -1, - 359, 383, 360, 336, -1, - 360, 384, 385, 361, -1, - 361, 385, 386, 362, -1, - 362, 386, 387, 363, -1, - 363, 387, 388, 364, -1, - 364, 388, 389, 365, -1, - 365, 389, 390, 366, -1, - 366, 390, 391, 367, -1, - 367, 391, 392, 368, -1, - 368, 392, 393, 369, -1, - 369, 393, 394, 370, -1, - 370, 394, 395, 371, -1, - 371, 395, 396, 372, -1, - 372, 396, 397, 373, -1, - 373, 397, 398, 374, -1, - 374, 398, 399, 375, -1, - 375, 399, 400, 376, -1, - 376, 400, 401, 377, -1, - 377, 401, 402, 378, -1, - 378, 402, 403, 379, -1, - 379, 403, 404, 380, -1, - 380, 404, 405, 381, -1, - 381, 405, 406, 382, -1, - 382, 406, 407, 383, -1, - 383, 407, 384, 360, -1, - 384, 408, 409, 385, -1, - 385, 409, 410, 386, -1, - 386, 410, 411, 387, -1, - 387, 411, 412, 388, -1, - 388, 412, 413, 389, -1, - 389, 413, 414, 390, -1, - 390, 414, 415, 391, -1, - 391, 415, 416, 392, -1, - 392, 416, 417, 393, -1, - 393, 417, 418, 394, -1, - 394, 418, 419, 395, -1, - 395, 419, 420, 396, -1, - 396, 420, 421, 397, -1, - 397, 421, 422, 398, -1, - 398, 422, 423, 399, -1, - 399, 423, 424, 400, -1, - 400, 424, 425, 401, -1, - 401, 425, 426, 402, -1, - 402, 426, 427, 403, -1, - 403, 427, 428, 404, -1, - 404, 428, 429, 405, -1, - 405, 429, 430, 406, -1, - 406, 430, 431, 407, -1, - 407, 431, 408, 384, -1, - 408, 432, 433, 409, -1, - 409, 433, 434, 410, -1, - 410, 434, 435, 411, -1, - 411, 435, 436, 412, -1, - 412, 436, 437, 413, -1, - 413, 437, 438, 414, -1, - 414, 438, 439, 415, -1, - 415, 439, 440, 416, -1, - 416, 440, 441, 417, -1, - 417, 441, 442, 418, -1, - 418, 442, 443, 419, -1, - 419, 443, 444, 420, -1, - 420, 444, 445, 421, -1, - 421, 445, 446, 422, -1, - 422, 446, 447, 423, -1, - 423, 447, 448, 424, -1, - 424, 448, 449, 425, -1, - 425, 449, 450, 426, -1, - 426, 450, 451, 427, -1, - 427, 451, 452, 428, -1, - 428, 452, 453, 429, -1, - 429, 453, 454, 430, -1, - 430, 454, 455, 431, -1, - 431, 455, 432, 408, -1, - 432, 456, 457, 433, -1, - 433, 457, 458, 434, -1, - 434, 458, 459, 435, -1, - 435, 459, 460, 436, -1, - 436, 460, 461, 437, -1, - 437, 461, 462, 438, -1, - 438, 462, 463, 439, -1, - 439, 463, 464, 440, -1, - 440, 464, 465, 441, -1, - 441, 465, 466, 442, -1, - 442, 466, 467, 443, -1, - 443, 467, 468, 444, -1, - 444, 468, 469, 445, -1, - 445, 469, 470, 446, -1, - 446, 470, 471, 447, -1, - 447, 471, 472, 448, -1, - 448, 472, 473, 449, -1, - 449, 473, 474, 450, -1, - 450, 474, 475, 451, -1, - 451, 475, 476, 452, -1, - 452, 476, 477, 453, -1, - 453, 477, 478, 454, -1, - 454, 478, 479, 455, -1, - 455, 479, 456, 432, -1, - 456, 480, 481, 457, -1, - 457, 481, 482, 458, -1, - 458, 482, 483, 459, -1, - 459, 483, 484, 460, -1, - 460, 484, 485, 461, -1, - 461, 485, 486, 462, -1, - 462, 486, 487, 463, -1, - 463, 487, 488, 464, -1, - 464, 488, 489, 465, -1, - 465, 489, 490, 466, -1, - 466, 490, 491, 467, -1, - 467, 491, 492, 468, -1, - 468, 492, 493, 469, -1, - 469, 493, 494, 470, -1, - 470, 494, 495, 471, -1, - 471, 495, 496, 472, -1, - 472, 496, 497, 473, -1, - 473, 497, 498, 474, -1, - 474, 498, 499, 475, -1, - 475, 499, 500, 476, -1, - 476, 500, 501, 477, -1, - 477, 501, 502, 478, -1, - 478, 502, 503, 479, -1, - 479, 503, 480, 456, -1, - 480, 504, 505, 481, -1, - 481, 505, 506, 482, -1, - 482, 506, 507, 483, -1, - 483, 507, 508, 484, -1, - 484, 508, 509, 485, -1, - 485, 509, 510, 486, -1, - 486, 510, 511, 487, -1, - 487, 511, 512, 488, -1, - 488, 512, 513, 489, -1, - 489, 513, 514, 490, -1, - 490, 514, 515, 491, -1, - 491, 515, 516, 492, -1, - 492, 516, 517, 493, -1, - 493, 517, 518, 494, -1, - 494, 518, 519, 495, -1, - 495, 519, 520, 496, -1, - 496, 520, 521, 497, -1, - 497, 521, 522, 498, -1, - 498, 522, 523, 499, -1, - 499, 523, 524, 500, -1, - 500, 524, 525, 501, -1, - 501, 525, 526, 502, -1, - 502, 526, 527, 503, -1, - 503, 527, 504, 480, -1, - 504, 528, 529, 505, -1, - 505, 529, 530, 506, -1, - 506, 530, 531, 507, -1, - 507, 531, 532, 508, -1, - 508, 532, 533, 509, -1, - 509, 533, 534, 510, -1, - 510, 534, 535, 511, -1, - 511, 535, 536, 512, -1, - 512, 536, 537, 513, -1, - 513, 537, 538, 514, -1, - 514, 538, 539, 515, -1, - 515, 539, 540, 516, -1, - 516, 540, 541, 517, -1, - 517, 541, 542, 518, -1, - 518, 542, 543, 519, -1, - 519, 543, 544, 520, -1, - 520, 544, 545, 521, -1, - 521, 545, 546, 522, -1, - 522, 546, 547, 523, -1, - 523, 547, 548, 524, -1, - 524, 548, 549, 525, -1, - 525, 549, 550, 526, -1, - 526, 550, 551, 527, -1, - 527, 551, 528, 504, -1, - 528, 552, 553, 529, -1, - 529, 553, 554, 530, -1, - 530, 554, 555, 531, -1, - 531, 555, 556, 532, -1, - 532, 556, 557, 533, -1, - 533, 557, 558, 534, -1, - 534, 558, 559, 535, -1, - 535, 559, 560, 536, -1, - 536, 560, 561, 537, -1, - 537, 561, 562, 538, -1, - 538, 562, 563, 539, -1, - 539, 563, 564, 540, -1, - 540, 564, 565, 541, -1, - 541, 565, 566, 542, -1, - 542, 566, 567, 543, -1, - 543, 567, 568, 544, -1, - 544, 568, 569, 545, -1, - 545, 569, 570, 546, -1, - 546, 570, 571, 547, -1, - 547, 571, 572, 548, -1, - 548, 572, 573, 549, -1, - 549, 573, 574, 550, -1, - 550, 574, 575, 551, -1, - 551, 575, 552, 528, -1, - 600, 576, 577, 601, -1, - 601, 577, 578, 602, -1, - 602, 578, 579, 603, -1, - 603, 579, 580, 604, -1, - 604, 580, 581, 605, -1, - 605, 581, 582, 606, -1, - 606, 582, 583, 607, -1, - 607, 583, 584, 608, -1, - 608, 584, 585, 609, -1, - 609, 585, 586, 610, -1, - 610, 586, 587, 611, -1, - 611, 587, 588, 612, -1, - 612, 588, 589, 613, -1, - 613, 589, 590, 614, -1, - 614, 590, 591, 615, -1, - 615, 591, 592, 616, -1, - 616, 592, 593, 617, -1, - 617, 593, 594, 618, -1, - 618, 594, 595, 619, -1, - 619, 595, 596, 620, -1, - 620, 596, 597, 621, -1, - 621, 597, 598, 622, -1, - 622, 598, 599, 623, -1, - 623, 599, 576, 600, -1, - 624, 600, 601, 625, -1, - 625, 601, 602, 626, -1, - 626, 602, 603, 627, -1, - 627, 603, 604, 628, -1, - 628, 604, 605, 629, -1, - 629, 605, 606, 630, -1, - 630, 606, 607, 631, -1, - 631, 607, 608, 632, -1, - 632, 608, 609, 633, -1, - 633, 609, 610, 634, -1, - 634, 610, 611, 635, -1, - 635, 611, 612, 636, -1, - 636, 612, 613, 637, -1, - 637, 613, 614, 638, -1, - 638, 614, 615, 639, -1, - 639, 615, 616, 640, -1, - 640, 616, 617, 641, -1, - 641, 617, 618, 642, -1, - 642, 618, 619, 643, -1, - 643, 619, 620, 644, -1, - 644, 620, 621, 645, -1, - 645, 621, 622, 646, -1, - 646, 622, 623, 647, -1, - 647, 623, 600, 624, -1, - 648, 624, 625, 649, -1, - 649, 625, 626, 650, -1, - 650, 626, 627, 651, -1, - 651, 627, 628, 652, -1, - 652, 628, 629, 653, -1, - 653, 629, 630, 654, -1, - 654, 630, 631, 655, -1, - 655, 631, 632, 656, -1, - 656, 632, 633, 657, -1, - 657, 633, 634, 658, -1, - 658, 634, 635, 659, -1, - 659, 635, 636, 660, -1, - 660, 636, 637, 661, -1, - 661, 637, 638, 662, -1, - 662, 638, 639, 663, -1, - 663, 639, 640, 664, -1, - 664, 640, 641, 665, -1, - 665, 641, 642, 666, -1, - 666, 642, 643, 667, -1, - 667, 643, 644, 668, -1, - 668, 644, 645, 669, -1, - 669, 645, 646, 670, -1, - 670, 646, 647, 671, -1, - 671, 647, 624, 648, -1, - 672, 648, 649, 673, -1, - 673, 649, 650, 674, -1, - 674, 650, 651, 675, -1, - 675, 651, 652, 676, -1, - 676, 652, 653, 677, -1, - 677, 653, 654, 678, -1, - 678, 654, 655, 679, -1, - 679, 655, 656, 680, -1, - 680, 656, 657, 681, -1, - 681, 657, 658, 682, -1, - 682, 658, 659, 683, -1, - 683, 659, 660, 684, -1, - 684, 660, 661, 685, -1, - 685, 661, 662, 686, -1, - 686, 662, 663, 687, -1, - 687, 663, 664, 688, -1, - 688, 664, 665, 689, -1, - 689, 665, 666, 690, -1, - 690, 666, 667, 691, -1, - 691, 667, 668, 692, -1, - 692, 668, 669, 693, -1, - 693, 669, 670, 694, -1, - 694, 670, 671, 695, -1, - 695, 671, 648, 672, -1, - 696, 672, 673, 697, -1, - 697, 673, 674, 698, -1, - 698, 674, 675, 699, -1, - 699, 675, 676, 700, -1, - 700, 676, 677, 701, -1, - 701, 677, 678, 702, -1, - 702, 678, 679, 703, -1, - 703, 679, 680, 704, -1, - 704, 680, 681, 705, -1, - 705, 681, 682, 706, -1, - 706, 682, 683, 707, -1, - 707, 683, 684, 708, -1, - 708, 684, 685, 709, -1, - 709, 685, 686, 710, -1, - 710, 686, 687, 711, -1, - 711, 687, 688, 712, -1, - 712, 688, 689, 713, -1, - 713, 689, 690, 714, -1, - 714, 690, 691, 715, -1, - 715, 691, 692, 716, -1, - 716, 692, 693, 717, -1, - 717, 693, 694, 718, -1, - 718, 694, 695, 719, -1, - 719, 695, 672, 696, -1, - 720, 696, 697, 721, -1, - 721, 697, 698, 722, -1, - 722, 698, 699, 723, -1, - 723, 699, 700, 724, -1, - 724, 700, 701, 725, -1, - 725, 701, 702, 726, -1, - 726, 702, 703, 727, -1, - 727, 703, 704, 728, -1, - 728, 704, 705, 729, -1, - 729, 705, 706, 730, -1, - 730, 706, 707, 731, -1, - 731, 707, 708, 732, -1, - 732, 708, 709, 733, -1, - 733, 709, 710, 734, -1, - 734, 710, 711, 735, -1, - 735, 711, 712, 736, -1, - 736, 712, 713, 737, -1, - 737, 713, 714, 738, -1, - 738, 714, 715, 739, -1, - 739, 715, 716, 740, -1, - 740, 716, 717, 741, -1, - 741, 717, 718, 742, -1, - 742, 718, 719, 743, -1, - 743, 719, 696, 720, -1, - 744, 720, 721, 745, -1, - 745, 721, 722, 746, -1, - 746, 722, 723, 747, -1, - 747, 723, 724, 748, -1, - 748, 724, 725, 749, -1, - 749, 725, 726, 750, -1, - 750, 726, 727, 751, -1, - 751, 727, 728, 752, -1, - 752, 728, 729, 753, -1, - 753, 729, 730, 754, -1, - 754, 730, 731, 755, -1, - 755, 731, 732, 756, -1, - 756, 732, 733, 757, -1, - 757, 733, 734, 758, -1, - 758, 734, 735, 759, -1, - 759, 735, 736, 760, -1, - 760, 736, 737, 761, -1, - 761, 737, 738, 762, -1, - 762, 738, 739, 763, -1, - 763, 739, 740, 764, -1, - 764, 740, 741, 765, -1, - 765, 741, 742, 766, -1, - 766, 742, 743, 767, -1, - 767, 743, 720, 744, -1, - 768, 744, 745, 769, -1, - 769, 745, 746, 770, -1, - 770, 746, 747, 771, -1, - 771, 747, 748, 772, -1, - 772, 748, 749, 773, -1, - 773, 749, 750, 774, -1, - 774, 750, 751, 775, -1, - 775, 751, 752, 776, -1, - 776, 752, 753, 777, -1, - 777, 753, 754, 778, -1, - 778, 754, 755, 779, -1, - 779, 755, 756, 780, -1, - 780, 756, 757, 781, -1, - 781, 757, 758, 782, -1, - 782, 758, 759, 783, -1, - 783, 759, 760, 784, -1, - 784, 760, 761, 785, -1, - 785, 761, 762, 786, -1, - 786, 762, 763, 787, -1, - 787, 763, 764, 788, -1, - 788, 764, 765, 789, -1, - 789, 765, 766, 790, -1, - 790, 766, 767, 791, -1, - 791, 767, 744, 768, -1, - 792, 768, 769, 793, -1, - 793, 769, 770, 794, -1, - 794, 770, 771, 795, -1, - 795, 771, 772, 796, -1, - 796, 772, 773, 797, -1, - 797, 773, 774, 798, -1, - 798, 774, 775, 799, -1, - 799, 775, 776, 800, -1, - 800, 776, 777, 801, -1, - 801, 777, 778, 802, -1, - 802, 778, 779, 803, -1, - 803, 779, 780, 804, -1, - 804, 780, 781, 805, -1, - 805, 781, 782, 806, -1, - 806, 782, 783, 807, -1, - 807, 783, 784, 808, -1, - 808, 784, 785, 809, -1, - 809, 785, 786, 810, -1, - 810, 786, 787, 811, -1, - 811, 787, 788, 812, -1, - 812, 788, 789, 813, -1, - 813, 789, 790, 814, -1, - 814, 790, 791, 815, -1, - 815, 791, 768, 792, -1, - 816, 792, 793, 817, -1, - 817, 793, 794, 818, -1, - 818, 794, 795, 819, -1, - 819, 795, 796, 820, -1, - 820, 796, 797, 821, -1, - 821, 797, 798, 822, -1, - 822, 798, 799, 823, -1, - 823, 799, 800, 824, -1, - 824, 800, 801, 825, -1, - 825, 801, 802, 826, -1, - 826, 802, 803, 827, -1, - 827, 803, 804, 828, -1, - 828, 804, 805, 829, -1, - 829, 805, 806, 830, -1, - 830, 806, 807, 831, -1, - 831, 807, 808, 832, -1, - 832, 808, 809, 833, -1, - 833, 809, 810, 834, -1, - 834, 810, 811, 835, -1, - 835, 811, 812, 836, -1, - 836, 812, 813, 837, -1, - 837, 813, 814, 838, -1, - 838, 814, 815, 839, -1, - 839, 815, 792, 816, -1, - 840, 816, 817, 841, -1, - 841, 817, 818, 842, -1, - 842, 818, 819, 843, -1, - 843, 819, 820, 844, -1, - 844, 820, 821, 845, -1, - 845, 821, 822, 846, -1, - 846, 822, 823, 847, -1, - 847, 823, 824, 848, -1, - 848, 824, 825, 849, -1, - 849, 825, 826, 850, -1, - 850, 826, 827, 851, -1, - 851, 827, 828, 852, -1, - 852, 828, 829, 853, -1, - 853, 829, 830, 854, -1, - 854, 830, 831, 855, -1, - 855, 831, 832, 856, -1, - 856, 832, 833, 857, -1, - 857, 833, 834, 858, -1, - 858, 834, 835, 859, -1, - 859, 835, 836, 860, -1, - 860, 836, 837, 861, -1, - 861, 837, 838, 862, -1, - 862, 838, 839, 863, -1, - 863, 839, 816, 840, -1, - 864, 840, 841, 865, -1, - 865, 841, 842, 866, -1, - 866, 842, 843, 867, -1, - 867, 843, 844, 868, -1, - 868, 844, 845, 869, -1, - 869, 845, 846, 870, -1, - 870, 846, 847, 871, -1, - 871, 847, 848, 872, -1, - 872, 848, 849, 873, -1, - 873, 849, 850, 874, -1, - 874, 850, 851, 875, -1, - 875, 851, 852, 876, -1, - 876, 852, 853, 877, -1, - 877, 853, 854, 878, -1, - 878, 854, 855, 879, -1, - 879, 855, 856, 880, -1, - 880, 856, 857, 881, -1, - 881, 857, 858, 882, -1, - 882, 858, 859, 883, -1, - 883, 859, 860, 884, -1, - 884, 860, 861, 885, -1, - 885, 861, 862, 886, -1, - 886, 862, 863, 887, -1, - 887, 863, 840, 864, -1, - 888, 864, 865, 889, -1, - 889, 865, 866, 890, -1, - 890, 866, 867, 891, -1, - 891, 867, 868, 892, -1, - 892, 868, 869, 893, -1, - 893, 869, 870, 894, -1, - 894, 870, 871, 895, -1, - 895, 871, 872, 896, -1, - 896, 872, 873, 897, -1, - 897, 873, 874, 898, -1, - 898, 874, 875, 899, -1, - 899, 875, 876, 900, -1, - 900, 876, 877, 901, -1, - 901, 877, 878, 902, -1, - 902, 878, 879, 903, -1, - 903, 879, 880, 904, -1, - 904, 880, 881, 905, -1, - 905, 881, 882, 906, -1, - 906, 882, 883, 907, -1, - 907, 883, 884, 908, -1, - 908, 884, 885, 909, -1, - 909, 885, 886, 910, -1, - 910, 886, 887, 911, -1, - 911, 887, 864, 888, -1, - 912, 888, 889, 913, -1, - 913, 889, 890, 914, -1, - 914, 890, 891, 915, -1, - 915, 891, 892, 916, -1, - 916, 892, 893, 917, -1, - 917, 893, 894, 918, -1, - 918, 894, 895, 919, -1, - 919, 895, 896, 920, -1, - 920, 896, 897, 921, -1, - 921, 897, 898, 922, -1, - 922, 898, 899, 923, -1, - 923, 899, 900, 924, -1, - 924, 900, 901, 925, -1, - 925, 901, 902, 926, -1, - 926, 902, 903, 927, -1, - 927, 903, 904, 928, -1, - 928, 904, 905, 929, -1, - 929, 905, 906, 930, -1, - 930, 906, 907, 931, -1, - 931, 907, 908, 932, -1, - 932, 908, 909, 933, -1, - 933, 909, 910, 934, -1, - 934, 910, 911, 935, -1, - 935, 911, 888, 912, -1, - 936, 912, 913, 937, -1, - 937, 913, 914, 938, -1, - 938, 914, 915, 939, -1, - 939, 915, 916, 940, -1, - 940, 916, 917, 941, -1, - 941, 917, 918, 942, -1, - 942, 918, 919, 943, -1, - 943, 919, 920, 944, -1, - 944, 920, 921, 945, -1, - 945, 921, 922, 946, -1, - 946, 922, 923, 947, -1, - 947, 923, 924, 948, -1, - 948, 924, 925, 949, -1, - 949, 925, 926, 950, -1, - 950, 926, 927, 951, -1, - 951, 927, 928, 952, -1, - 952, 928, 929, 953, -1, - 953, 929, 930, 954, -1, - 954, 930, 931, 955, -1, - 955, 931, 932, 956, -1, - 956, 932, 933, 957, -1, - 957, 933, 934, 958, -1, - 958, 934, 935, 959, -1, - 959, 935, 912, 936, -1, - 960, 936, 937, 961, -1, - 961, 937, 938, 962, -1, - 962, 938, 939, 963, -1, - 963, 939, 940, 964, -1, - 964, 940, 941, 965, -1, - 965, 941, 942, 966, -1, - 966, 942, 943, 967, -1, - 967, 943, 944, 968, -1, - 968, 944, 945, 969, -1, - 969, 945, 946, 970, -1, - 970, 946, 947, 971, -1, - 971, 947, 948, 972, -1, - 972, 948, 949, 973, -1, - 973, 949, 950, 974, -1, - 974, 950, 951, 975, -1, - 975, 951, 952, 976, -1, - 976, 952, 953, 977, -1, - 977, 953, 954, 978, -1, - 978, 954, 955, 979, -1, - 979, 955, 956, 980, -1, - 980, 956, 957, 981, -1, - 981, 957, 958, 982, -1, - 982, 958, 959, 983, -1, - 983, 959, 936, 960, -1, - 984, 960, 961, 985, -1, - 985, 961, 962, 986, -1, - 986, 962, 963, 987, -1, - 987, 963, 964, 988, -1, - 988, 964, 965, 989, -1, - 989, 965, 966, 990, -1, - 990, 966, 967, 991, -1, - 991, 967, 968, 992, -1, - 992, 968, 969, 993, -1, - 993, 969, 970, 994, -1, - 994, 970, 971, 995, -1, - 995, 971, 972, 996, -1, - 996, 972, 973, 997, -1, - 997, 973, 974, 998, -1, - 998, 974, 975, 999, -1, - 999, 975, 976, 1000, -1, - 1000, 976, 977, 1001, -1, - 1001, 977, 978, 1002, -1, - 1002, 978, 979, 1003, -1, - 1003, 979, 980, 1004, -1, - 1004, 980, 981, 1005, -1, - 1005, 981, 982, 1006, -1, - 1006, 982, 983, 1007, -1, - 1007, 983, 960, 984, -1, - 1008, 984, 985, 1009, -1, - 1009, 985, 986, 1010, -1, - 1010, 986, 987, 1011, -1, - 1011, 987, 988, 1012, -1, - 1012, 988, 989, 1013, -1, - 1013, 989, 990, 1014, -1, - 1014, 990, 991, 1015, -1, - 1015, 991, 992, 1016, -1, - 1016, 992, 993, 1017, -1, - 1017, 993, 994, 1018, -1, - 1018, 994, 995, 1019, -1, - 1019, 995, 996, 1020, -1, - 1020, 996, 997, 1021, -1, - 1021, 997, 998, 1022, -1, - 1022, 998, 999, 1023, -1, - 1023, 999, 1000, 1024, -1, - 1024, 1000, 1001, 1025, -1, - 1025, 1001, 1002, 1026, -1, - 1026, 1002, 1003, 1027, -1, - 1027, 1003, 1004, 1028, -1, - 1028, 1004, 1005, 1029, -1, - 1029, 1005, 1006, 1030, -1, - 1030, 1006, 1007, 1031, -1, - 1031, 1007, 984, 1008, -1, - 1032, 1008, 1009, 1033, -1, - 1033, 1009, 1010, 1034, -1, - 1034, 1010, 1011, 1035, -1, - 1035, 1011, 1012, 1036, -1, - 1036, 1012, 1013, 1037, -1, - 1037, 1013, 1014, 1038, -1, - 1038, 1014, 1015, 1039, -1, - 1039, 1015, 1016, 1040, -1, - 1040, 1016, 1017, 1041, -1, - 1041, 1017, 1018, 1042, -1, - 1042, 1018, 1019, 1043, -1, - 1043, 1019, 1020, 1044, -1, - 1044, 1020, 1021, 1045, -1, - 1045, 1021, 1022, 1046, -1, - 1046, 1022, 1023, 1047, -1, - 1047, 1023, 1024, 1048, -1, - 1048, 1024, 1025, 1049, -1, - 1049, 1025, 1026, 1050, -1, - 1050, 1026, 1027, 1051, -1, - 1051, 1027, 1028, 1052, -1, - 1052, 1028, 1029, 1053, -1, - 1053, 1029, 1030, 1054, -1, - 1054, 1030, 1031, 1055, -1, - 1055, 1031, 1008, 1032, -1, - 1056, 1032, 1033, 1057, -1, - 1057, 1033, 1034, 1058, -1, - 1058, 1034, 1035, 1059, -1, - 1059, 1035, 1036, 1060, -1, - 1060, 1036, 1037, 1061, -1, - 1061, 1037, 1038, 1062, -1, - 1062, 1038, 1039, 1063, -1, - 1063, 1039, 1040, 1064, -1, - 1064, 1040, 1041, 1065, -1, - 1065, 1041, 1042, 1066, -1, - 1066, 1042, 1043, 1067, -1, - 1067, 1043, 1044, 1068, -1, - 1068, 1044, 1045, 1069, -1, - 1069, 1045, 1046, 1070, -1, - 1070, 1046, 1047, 1071, -1, - 1071, 1047, 1048, 1072, -1, - 1072, 1048, 1049, 1073, -1, - 1073, 1049, 1050, 1074, -1, - 1074, 1050, 1051, 1075, -1, - 1075, 1051, 1052, 1076, -1, - 1076, 1052, 1053, 1077, -1, - 1077, 1053, 1054, 1078, -1, - 1078, 1054, 1055, 1079, -1, - 1079, 1055, 1032, 1056, -1, - 1080, 1056, 1057, 1081, -1, - 1081, 1057, 1058, 1082, -1, - 1082, 1058, 1059, 1083, -1, - 1083, 1059, 1060, 1084, -1, - 1084, 1060, 1061, 1085, -1, - 1085, 1061, 1062, 1086, -1, - 1086, 1062, 1063, 1087, -1, - 1087, 1063, 1064, 1088, -1, - 1088, 1064, 1065, 1089, -1, - 1089, 1065, 1066, 1090, -1, - 1090, 1066, 1067, 1091, -1, - 1091, 1067, 1068, 1092, -1, - 1092, 1068, 1069, 1093, -1, - 1093, 1069, 1070, 1094, -1, - 1094, 1070, 1071, 1095, -1, - 1095, 1071, 1072, 1096, -1, - 1096, 1072, 1073, 1097, -1, - 1097, 1073, 1074, 1098, -1, - 1098, 1074, 1075, 1099, -1, - 1099, 1075, 1076, 1100, -1, - 1100, 1076, 1077, 1101, -1, - 1101, 1077, 1078, 1102, -1, - 1102, 1078, 1079, 1103, -1, - 1103, 1079, 1056, 1080, -1, - 1104, 1080, 1081, 1105, -1, - 1105, 1081, 1082, 1106, -1, - 1106, 1082, 1083, 1107, -1, - 1107, 1083, 1084, 1108, -1, - 1108, 1084, 1085, 1109, -1, - 1109, 1085, 1086, 1110, -1, - 1110, 1086, 1087, 1111, -1, - 1111, 1087, 1088, 1112, -1, - 1112, 1088, 1089, 1113, -1, - 1113, 1089, 1090, 1114, -1, - 1114, 1090, 1091, 1115, -1, - 1115, 1091, 1092, 1116, -1, - 1116, 1092, 1093, 1117, -1, - 1117, 1093, 1094, 1118, -1, - 1118, 1094, 1095, 1119, -1, - 1119, 1095, 1096, 1120, -1, - 1120, 1096, 1097, 1121, -1, - 1121, 1097, 1098, 1122, -1, - 1122, 1098, 1099, 1123, -1, - 1123, 1099, 1100, 1124, -1, - 1124, 1100, 1101, 1125, -1, - 1125, 1101, 1102, 1126, -1, - 1126, 1102, 1103, 1127, -1, - 1127, 1103, 1080, 1104, -1, - 1128, 1104, 1105, 1129, -1, - 1129, 1105, 1106, 1130, -1, - 1130, 1106, 1107, 1131, -1, - 1131, 1107, 1108, 1132, -1, - 1132, 1108, 1109, 1133, -1, - 1133, 1109, 1110, 1134, -1, - 1134, 1110, 1111, 1135, -1, - 1135, 1111, 1112, 1136, -1, - 1136, 1112, 1113, 1137, -1, - 1137, 1113, 1114, 1138, -1, - 1138, 1114, 1115, 1139, -1, - 1139, 1115, 1116, 1140, -1, - 1140, 1116, 1117, 1141, -1, - 1141, 1117, 1118, 1142, -1, - 1142, 1118, 1119, 1143, -1, - 1143, 1119, 1120, 1144, -1, - 1144, 1120, 1121, 1145, -1, - 1145, 1121, 1122, 1146, -1, - 1146, 1122, 1123, 1147, -1, - 1147, 1123, 1124, 1148, -1, - 1148, 1124, 1125, 1149, -1, - 1149, 1125, 1126, 1150, -1, - 1150, 1126, 1127, 1151, -1, - 1151, 1127, 1104, 1128, -1, - 576, 0, 1, 577, -1, - 577, 1, 2, 578, -1, - 578, 2, 3, 579, -1, - 579, 3, 4, 580, -1, - 580, 4, 5, 581, -1, - 581, 5, 6, 582, -1, - 582, 6, 7, 583, -1, - 583, 7, 8, 584, -1, - 584, 8, 9, 585, -1, - 585, 9, 10, 586, -1, - 586, 10, 11, 587, -1, - 587, 11, 12, 588, -1, - 588, 12, 13, 589, -1, - 589, 13, 14, 590, -1, - 590, 14, 15, 591, -1, - 591, 15, 16, 592, -1, - 592, 16, 17, 593, -1, - 593, 17, 18, 594, -1, - 594, 18, 19, 595, -1, - 595, 19, 20, 596, -1, - 596, 20, 21, 597, -1, - 597, 21, 22, 598, -1, - 598, 22, 23, 599, -1, - 599, 23, 0, 576, -1, - 552, 1128, 1129, 553, -1, - 553, 1129, 1130, 554, -1, - 554, 1130, 1131, 555, -1, - 555, 1131, 1132, 556, -1, - 556, 1132, 1133, 557, -1, - 557, 1133, 1134, 558, -1, - 558, 1134, 1135, 559, -1, - 559, 1135, 1136, 560, -1, - 560, 1136, 1137, 561, -1, - 561, 1137, 1138, 562, -1, - 562, 1138, 1139, 563, -1, - 563, 1139, 1140, 564, -1, - 564, 1140, 1141, 565, -1, - 565, 1141, 1142, 566, -1, - 566, 1142, 1143, 567, -1, - 567, 1143, 1144, 568, -1, - 568, 1144, 1145, 569, -1, - 569, 1145, 1146, 570, -1, - 570, 1146, 1147, 571, -1, - 571, 1147, 1148, 572, -1, - 572, 1148, 1149, 573, -1, - 573, 1149, 1150, 574, -1, - 574, 1150, 1151, 575, -1, - 575, 1151, 1128, 552, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4orb.wrl b/environments/g4py/tests/gtest05/vrml/g4orb.wrl deleted file mode 100644 index b4961d1be8..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4orb.wrl +++ /dev/null @@ -1,643 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - 0 0 1000, - 258.819 0 965.926, - 250 66.9873 965.926, - 224.144 129.41 965.926, - 183.013 183.013 965.926, - 129.41 224.144 965.926, - 66.9873 250 965.926, - 1.58481e-14 258.819 965.926, - -66.9873 250 965.926, - -129.41 224.144 965.926, - -183.013 183.013 965.926, - -224.144 129.41 965.926, - -250 66.9873 965.926, - -258.819 3.16962e-14 965.926, - -250 -66.9873 965.926, - -224.144 -129.41 965.926, - -183.013 -183.013 965.926, - -129.41 -224.144 965.926, - -66.9873 -250 965.926, - -4.75443e-14 -258.819 965.926, - 66.9873 -250 965.926, - 129.41 -224.144 965.926, - 183.013 -183.013 965.926, - 224.144 -129.41 965.926, - 250 -66.9873 965.926, - 500 0 866.025, - 482.963 129.41 866.025, - 433.013 250 866.025, - 353.553 353.553 866.025, - 250 433.013 866.025, - 129.41 482.963 866.025, - 3.06162e-14 500 866.025, - -129.41 482.963 866.025, - -250 433.013 866.025, - -353.553 353.553 866.025, - -433.013 250 866.025, - -482.963 129.41 866.025, - -500 6.12323e-14 866.025, - -482.963 -129.41 866.025, - -433.013 -250 866.025, - -353.553 -353.553 866.025, - -250 -433.013 866.025, - -129.41 -482.963 866.025, - -9.18485e-14 -500 866.025, - 129.41 -482.963 866.025, - 250 -433.013 866.025, - 353.553 -353.553 866.025, - 433.013 -250 866.025, - 482.963 -129.41 866.025, - 707.107 0 707.107, - 683.013 183.013 707.107, - 612.372 353.553 707.107, - 500 500 707.107, - 353.553 612.372 707.107, - 183.013 683.013 707.107, - 4.32978e-14 707.107 707.107, - -183.013 683.013 707.107, - -353.553 612.372 707.107, - -500 500 707.107, - -612.372 353.553 707.107, - -683.013 183.013 707.107, - -707.107 8.65956e-14 707.107, - -683.013 -183.013 707.107, - -612.372 -353.553 707.107, - -500 -500 707.107, - -353.553 -612.372 707.107, - -183.013 -683.013 707.107, - -1.29893e-13 -707.107 707.107, - 183.013 -683.013 707.107, - 353.553 -612.372 707.107, - 500 -500 707.107, - 612.372 -353.553 707.107, - 683.013 -183.013 707.107, - 866.025 0 500, - 836.516 224.144 500, - 750 433.013 500, - 612.372 612.372 500, - 433.013 750 500, - 224.144 836.516 500, - 5.30288e-14 866.025 500, - -224.144 836.516 500, - -433.013 750 500, - -612.372 612.372 500, - -750 433.013 500, - -836.516 224.144 500, - -866.025 1.06058e-13 500, - -836.516 -224.144 500, - -750 -433.013 500, - -612.372 -612.372 500, - -433.013 -750 500, - -224.144 -836.516 500, - -1.59086e-13 -866.025 500, - 224.144 -836.516 500, - 433.013 -750 500, - 612.372 -612.372 500, - 750 -433.013 500, - 836.516 -224.144 500, - 965.926 0 258.819, - 933.013 250 258.819, - 836.516 482.963 258.819, - 683.013 683.013 258.819, - 482.963 836.516 258.819, - 250 933.013 258.819, - 5.91459e-14 965.926 258.819, - -250 933.013 258.819, - -482.963 836.516 258.819, - -683.013 683.013 258.819, - -836.516 482.963 258.819, - -933.013 250 258.819, - -965.926 1.18292e-13 258.819, - -933.013 -250 258.819, - -836.516 -482.963 258.819, - -683.013 -683.013 258.819, - -482.963 -836.516 258.819, - -250 -933.013 258.819, - -1.77438e-13 -965.926 258.819, - 250 -933.013 258.819, - 482.963 -836.516 258.819, - 683.013 -683.013 258.819, - 836.516 -482.963 258.819, - 933.013 -250 258.819, - 1000 0 6.12323e-14, - 965.926 258.819 6.12323e-14, - 866.025 500 6.12323e-14, - 707.107 707.107 6.12323e-14, - 500 866.025 6.12323e-14, - 258.819 965.926 6.12323e-14, - 6.12323e-14 1000 6.12323e-14, - -258.819 965.926 6.12323e-14, - -500 866.025 6.12323e-14, - -707.107 707.107 6.12323e-14, - -866.025 500 6.12323e-14, - -965.926 258.819 6.12323e-14, - -1000 1.22465e-13 6.12323e-14, - -965.926 -258.819 6.12323e-14, - -866.025 -500 6.12323e-14, - -707.107 -707.107 6.12323e-14, - -500 -866.025 6.12323e-14, - -258.819 -965.926 6.12323e-14, - -1.83697e-13 -1000 6.12323e-14, - 258.819 -965.926 6.12323e-14, - 500 -866.025 6.12323e-14, - 707.107 -707.107 6.12323e-14, - 866.025 -500 6.12323e-14, - 965.926 -258.819 6.12323e-14, - 965.926 0 -258.819, - 933.013 250 -258.819, - 836.516 482.963 -258.819, - 683.013 683.013 -258.819, - 482.963 836.516 -258.819, - 250 933.013 -258.819, - 5.91459e-14 965.926 -258.819, - -250 933.013 -258.819, - -482.963 836.516 -258.819, - -683.013 683.013 -258.819, - -836.516 482.963 -258.819, - -933.013 250 -258.819, - -965.926 1.18292e-13 -258.819, - -933.013 -250 -258.819, - -836.516 -482.963 -258.819, - -683.013 -683.013 -258.819, - -482.963 -836.516 -258.819, - -250 -933.013 -258.819, - -1.77438e-13 -965.926 -258.819, - 250 -933.013 -258.819, - 482.963 -836.516 -258.819, - 683.013 -683.013 -258.819, - 836.516 -482.963 -258.819, - 933.013 -250 -258.819, - 866.025 0 -500, - 836.516 224.144 -500, - 750 433.013 -500, - 612.372 612.372 -500, - 433.013 750 -500, - 224.144 836.516 -500, - 5.30288e-14 866.025 -500, - -224.144 836.516 -500, - -433.013 750 -500, - -612.372 612.372 -500, - -750 433.013 -500, - -836.516 224.144 -500, - -866.025 1.06058e-13 -500, - -836.516 -224.144 -500, - -750 -433.013 -500, - -612.372 -612.372 -500, - -433.013 -750 -500, - -224.144 -836.516 -500, - -1.59086e-13 -866.025 -500, - 224.144 -836.516 -500, - 433.013 -750 -500, - 612.372 -612.372 -500, - 750 -433.013 -500, - 836.516 -224.144 -500, - 707.107 0 -707.107, - 683.013 183.013 -707.107, - 612.372 353.553 -707.107, - 500 500 -707.107, - 353.553 612.372 -707.107, - 183.013 683.013 -707.107, - 4.32978e-14 707.107 -707.107, - -183.013 683.013 -707.107, - -353.553 612.372 -707.107, - -500 500 -707.107, - -612.372 353.553 -707.107, - -683.013 183.013 -707.107, - -707.107 8.65956e-14 -707.107, - -683.013 -183.013 -707.107, - -612.372 -353.553 -707.107, - -500 -500 -707.107, - -353.553 -612.372 -707.107, - -183.013 -683.013 -707.107, - -1.29893e-13 -707.107 -707.107, - 183.013 -683.013 -707.107, - 353.553 -612.372 -707.107, - 500 -500 -707.107, - 612.372 -353.553 -707.107, - 683.013 -183.013 -707.107, - 500 0 -866.025, - 482.963 129.41 -866.025, - 433.013 250 -866.025, - 353.553 353.553 -866.025, - 250 433.013 -866.025, - 129.41 482.963 -866.025, - 3.06162e-14 500 -866.025, - -129.41 482.963 -866.025, - -250 433.013 -866.025, - -353.553 353.553 -866.025, - -433.013 250 -866.025, - -482.963 129.41 -866.025, - -500 6.12323e-14 -866.025, - -482.963 -129.41 -866.025, - -433.013 -250 -866.025, - -353.553 -353.553 -866.025, - -250 -433.013 -866.025, - -129.41 -482.963 -866.025, - -9.18485e-14 -500 -866.025, - 129.41 -482.963 -866.025, - 250 -433.013 -866.025, - 353.553 -353.553 -866.025, - 433.013 -250 -866.025, - 482.963 -129.41 -866.025, - 258.819 0 -965.926, - 250 66.9873 -965.926, - 224.144 129.41 -965.926, - 183.013 183.013 -965.926, - 129.41 224.144 -965.926, - 66.9873 250 -965.926, - 1.58481e-14 258.819 -965.926, - -66.9873 250 -965.926, - -129.41 224.144 -965.926, - -183.013 183.013 -965.926, - -224.144 129.41 -965.926, - -250 66.9873 -965.926, - -258.819 3.16962e-14 -965.926, - -250 -66.9873 -965.926, - -224.144 -129.41 -965.926, - -183.013 -183.013 -965.926, - -129.41 -224.144 -965.926, - -66.9873 -250 -965.926, - -4.75443e-14 -258.819 -965.926, - 66.9873 -250 -965.926, - 129.41 -224.144 -965.926, - 183.013 -183.013 -965.926, - 224.144 -129.41 -965.926, - 250 -66.9873 -965.926, - 0 0 -1000, - 0 0 0, - ] - } - coordIndex [ - 0, 1, 2, -1, - 0, 2, 3, -1, - 0, 3, 4, -1, - 0, 4, 5, -1, - 0, 5, 6, -1, - 0, 6, 7, -1, - 0, 7, 8, -1, - 0, 8, 9, -1, - 0, 9, 10, -1, - 0, 10, 11, -1, - 0, 11, 12, -1, - 0, 12, 13, -1, - 0, 13, 14, -1, - 0, 14, 15, -1, - 0, 15, 16, -1, - 0, 16, 17, -1, - 0, 17, 18, -1, - 0, 18, 19, -1, - 0, 19, 20, -1, - 0, 20, 21, -1, - 0, 21, 22, -1, - 0, 22, 23, -1, - 0, 23, 24, -1, - 0, 24, 1, -1, - 1, 25, 26, 2, -1, - 2, 26, 27, 3, -1, - 3, 27, 28, 4, -1, - 4, 28, 29, 5, -1, - 5, 29, 30, 6, -1, - 6, 30, 31, 7, -1, - 7, 31, 32, 8, -1, - 8, 32, 33, 9, -1, - 9, 33, 34, 10, -1, - 10, 34, 35, 11, -1, - 11, 35, 36, 12, -1, - 12, 36, 37, 13, -1, - 13, 37, 38, 14, -1, - 14, 38, 39, 15, -1, - 15, 39, 40, 16, -1, - 16, 40, 41, 17, -1, - 17, 41, 42, 18, -1, - 18, 42, 43, 19, -1, - 19, 43, 44, 20, -1, - 20, 44, 45, 21, -1, - 21, 45, 46, 22, -1, - 22, 46, 47, 23, -1, - 23, 47, 48, 24, -1, - 24, 48, 25, 1, -1, - 25, 49, 50, 26, -1, - 26, 50, 51, 27, -1, - 27, 51, 52, 28, -1, - 28, 52, 53, 29, -1, - 29, 53, 54, 30, -1, - 30, 54, 55, 31, -1, - 31, 55, 56, 32, -1, - 32, 56, 57, 33, -1, - 33, 57, 58, 34, -1, - 34, 58, 59, 35, -1, - 35, 59, 60, 36, -1, - 36, 60, 61, 37, -1, - 37, 61, 62, 38, -1, - 38, 62, 63, 39, -1, - 39, 63, 64, 40, -1, - 40, 64, 65, 41, -1, - 41, 65, 66, 42, -1, - 42, 66, 67, 43, -1, - 43, 67, 68, 44, -1, - 44, 68, 69, 45, -1, - 45, 69, 70, 46, -1, - 46, 70, 71, 47, -1, - 47, 71, 72, 48, -1, - 48, 72, 49, 25, -1, - 49, 73, 74, 50, -1, - 50, 74, 75, 51, -1, - 51, 75, 76, 52, -1, - 52, 76, 77, 53, -1, - 53, 77, 78, 54, -1, - 54, 78, 79, 55, -1, - 55, 79, 80, 56, -1, - 56, 80, 81, 57, -1, - 57, 81, 82, 58, -1, - 58, 82, 83, 59, -1, - 59, 83, 84, 60, -1, - 60, 84, 85, 61, -1, - 61, 85, 86, 62, -1, - 62, 86, 87, 63, -1, - 63, 87, 88, 64, -1, - 64, 88, 89, 65, -1, - 65, 89, 90, 66, -1, - 66, 90, 91, 67, -1, - 67, 91, 92, 68, -1, - 68, 92, 93, 69, -1, - 69, 93, 94, 70, -1, - 70, 94, 95, 71, -1, - 71, 95, 96, 72, -1, - 72, 96, 73, 49, -1, - 73, 97, 98, 74, -1, - 74, 98, 99, 75, -1, - 75, 99, 100, 76, -1, - 76, 100, 101, 77, -1, - 77, 101, 102, 78, -1, - 78, 102, 103, 79, -1, - 79, 103, 104, 80, -1, - 80, 104, 105, 81, -1, - 81, 105, 106, 82, -1, - 82, 106, 107, 83, -1, - 83, 107, 108, 84, -1, - 84, 108, 109, 85, -1, - 85, 109, 110, 86, -1, - 86, 110, 111, 87, -1, - 87, 111, 112, 88, -1, - 88, 112, 113, 89, -1, - 89, 113, 114, 90, -1, - 90, 114, 115, 91, -1, - 91, 115, 116, 92, -1, - 92, 116, 117, 93, -1, - 93, 117, 118, 94, -1, - 94, 118, 119, 95, -1, - 95, 119, 120, 96, -1, - 96, 120, 97, 73, -1, - 97, 121, 122, 98, -1, - 98, 122, 123, 99, -1, - 99, 123, 124, 100, -1, - 100, 124, 125, 101, -1, - 101, 125, 126, 102, -1, - 102, 126, 127, 103, -1, - 103, 127, 128, 104, -1, - 104, 128, 129, 105, -1, - 105, 129, 130, 106, -1, - 106, 130, 131, 107, -1, - 107, 131, 132, 108, -1, - 108, 132, 133, 109, -1, - 109, 133, 134, 110, -1, - 110, 134, 135, 111, -1, - 111, 135, 136, 112, -1, - 112, 136, 137, 113, -1, - 113, 137, 138, 114, -1, - 114, 138, 139, 115, -1, - 115, 139, 140, 116, -1, - 116, 140, 141, 117, -1, - 117, 141, 142, 118, -1, - 118, 142, 143, 119, -1, - 119, 143, 144, 120, -1, - 120, 144, 121, 97, -1, - 121, 145, 146, 122, -1, - 122, 146, 147, 123, -1, - 123, 147, 148, 124, -1, - 124, 148, 149, 125, -1, - 125, 149, 150, 126, -1, - 126, 150, 151, 127, -1, - 127, 151, 152, 128, -1, - 128, 152, 153, 129, -1, - 129, 153, 154, 130, -1, - 130, 154, 155, 131, -1, - 131, 155, 156, 132, -1, - 132, 156, 157, 133, -1, - 133, 157, 158, 134, -1, - 134, 158, 159, 135, -1, - 135, 159, 160, 136, -1, - 136, 160, 161, 137, -1, - 137, 161, 162, 138, -1, - 138, 162, 163, 139, -1, - 139, 163, 164, 140, -1, - 140, 164, 165, 141, -1, - 141, 165, 166, 142, -1, - 142, 166, 167, 143, -1, - 143, 167, 168, 144, -1, - 144, 168, 145, 121, -1, - 145, 169, 170, 146, -1, - 146, 170, 171, 147, -1, - 147, 171, 172, 148, -1, - 148, 172, 173, 149, -1, - 149, 173, 174, 150, -1, - 150, 174, 175, 151, -1, - 151, 175, 176, 152, -1, - 152, 176, 177, 153, -1, - 153, 177, 178, 154, -1, - 154, 178, 179, 155, -1, - 155, 179, 180, 156, -1, - 156, 180, 181, 157, -1, - 157, 181, 182, 158, -1, - 158, 182, 183, 159, -1, - 159, 183, 184, 160, -1, - 160, 184, 185, 161, -1, - 161, 185, 186, 162, -1, - 162, 186, 187, 163, -1, - 163, 187, 188, 164, -1, - 164, 188, 189, 165, -1, - 165, 189, 190, 166, -1, - 166, 190, 191, 167, -1, - 167, 191, 192, 168, -1, - 168, 192, 169, 145, -1, - 169, 193, 194, 170, -1, - 170, 194, 195, 171, -1, - 171, 195, 196, 172, -1, - 172, 196, 197, 173, -1, - 173, 197, 198, 174, -1, - 174, 198, 199, 175, -1, - 175, 199, 200, 176, -1, - 176, 200, 201, 177, -1, - 177, 201, 202, 178, -1, - 178, 202, 203, 179, -1, - 179, 203, 204, 180, -1, - 180, 204, 205, 181, -1, - 181, 205, 206, 182, -1, - 182, 206, 207, 183, -1, - 183, 207, 208, 184, -1, - 184, 208, 209, 185, -1, - 185, 209, 210, 186, -1, - 186, 210, 211, 187, -1, - 187, 211, 212, 188, -1, - 188, 212, 213, 189, -1, - 189, 213, 214, 190, -1, - 190, 214, 215, 191, -1, - 191, 215, 216, 192, -1, - 192, 216, 193, 169, -1, - 193, 217, 218, 194, -1, - 194, 218, 219, 195, -1, - 195, 219, 220, 196, -1, - 196, 220, 221, 197, -1, - 197, 221, 222, 198, -1, - 198, 222, 223, 199, -1, - 199, 223, 224, 200, -1, - 200, 224, 225, 201, -1, - 201, 225, 226, 202, -1, - 202, 226, 227, 203, -1, - 203, 227, 228, 204, -1, - 204, 228, 229, 205, -1, - 205, 229, 230, 206, -1, - 206, 230, 231, 207, -1, - 207, 231, 232, 208, -1, - 208, 232, 233, 209, -1, - 209, 233, 234, 210, -1, - 210, 234, 235, 211, -1, - 211, 235, 236, 212, -1, - 212, 236, 237, 213, -1, - 213, 237, 238, 214, -1, - 214, 238, 239, 215, -1, - 215, 239, 240, 216, -1, - 216, 240, 217, 193, -1, - 217, 241, 242, 218, -1, - 218, 242, 243, 219, -1, - 219, 243, 244, 220, -1, - 220, 244, 245, 221, -1, - 221, 245, 246, 222, -1, - 222, 246, 247, 223, -1, - 223, 247, 248, 224, -1, - 224, 248, 249, 225, -1, - 225, 249, 250, 226, -1, - 226, 250, 251, 227, -1, - 227, 251, 252, 228, -1, - 228, 252, 253, 229, -1, - 229, 253, 254, 230, -1, - 230, 254, 255, 231, -1, - 231, 255, 256, 232, -1, - 232, 256, 257, 233, -1, - 233, 257, 258, 234, -1, - 234, 258, 259, 235, -1, - 235, 259, 260, 236, -1, - 236, 260, 261, 237, -1, - 237, 261, 262, 238, -1, - 238, 262, 263, 239, -1, - 239, 263, 264, 240, -1, - 240, 264, 241, 217, -1, - 241, 265, 242, -1, - 242, 265, 243, -1, - 243, 265, 244, -1, - 244, 265, 245, -1, - 245, 265, 246, -1, - 246, 265, 247, -1, - 247, 265, 248, -1, - 248, 265, 249, -1, - 249, 265, 250, -1, - 250, 265, 251, -1, - 251, 265, 252, -1, - 252, 265, 253, -1, - 253, 265, 254, -1, - 254, 265, 255, -1, - 255, 265, 256, -1, - 256, 265, 257, -1, - 257, 265, 258, -1, - 258, 265, 259, -1, - 259, 265, 260, -1, - 260, 265, 261, -1, - 261, 265, 262, -1, - 262, 265, 263, -1, - 263, 265, 264, -1, - 264, 265, 241, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4para.wrl b/environments/g4py/tests/gtest05/vrml/g4para.wrl deleted file mode 100644 index 1fcf6d556e..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4para.wrl +++ /dev/null @@ -1,102 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - -948.528 -400 -600, - -348.528 -400 -600, - 451.472 400 -600, - -148.528 400 -600, - -451.472 -400 600, - 148.528 -400 600, - 948.528 400 600, - 348.528 400 600, - ] - } - coordIndex [ - 0, 3, 2, 1, -1, - 4, 7, 3, 0, -1, - 7, 6, 2, 3, -1, - 6, 5, 1, 2, -1, - 5, 4, 0, 1, -1, - 4, 5, 6, 7, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4polycone.wrl b/environments/g4py/tests/gtest05/vrml/g4polycone.wrl deleted file mode 100644 index 494fe6e448..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4polycone.wrl +++ /dev/null @@ -1,505 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 1 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - 20 0 350, - 19.3185 5.17638 350, - 17.3205 10 350, - 14.1421 14.1421 350, - 10 17.3205 350, - 5.17638 19.3185 350, - 1.22465e-15 20 350, - -5.17638 19.3185 350, - -10 17.3205 350, - -14.1421 14.1421 350, - -17.3205 10 350, - -19.3185 5.17638 350, - -20 2.44929e-15 350, - -19.3185 -5.17638 350, - -17.3205 -10 350, - -14.1421 -14.1421 350, - -10 -17.3205 350, - -5.17638 -19.3185 350, - -3.67394e-15 -20 350, - 5.17638 -19.3185 350, - 10 -17.3205 350, - 14.1421 -14.1421 350, - 17.3205 -10 350, - 19.3185 -5.17638 350, - 20 0 310, - 19.3185 5.17638 310, - 17.3205 10 310, - 14.1421 14.1421 310, - 10 17.3205 310, - 5.17638 19.3185 310, - 1.22465e-15 20 310, - -5.17638 19.3185 310, - -10 17.3205 310, - -14.1421 14.1421 310, - -17.3205 10 310, - -19.3185 5.17638 310, - -20 2.44929e-15 310, - -19.3185 -5.17638 310, - -17.3205 -10 310, - -14.1421 -14.1421 310, - -10 -17.3205 310, - -5.17638 -19.3185 310, - -3.67394e-15 -20 310, - 5.17638 -19.3185 310, - 10 -17.3205 310, - 14.1421 -14.1421 310, - 17.3205 -10 310, - 19.3185 -5.17638 310, - 100 0 290, - 96.5926 25.8819 290, - 86.6025 50 290, - 70.7107 70.7107 290, - 50 86.6025 290, - 25.8819 96.5926 290, - 6.12323e-15 100 290, - -25.8819 96.5926 290, - -50 86.6025 290, - -70.7107 70.7107 290, - -86.6025 50 290, - -96.5926 25.8819 290, - -100 1.22465e-14 290, - -96.5926 -25.8819 290, - -86.6025 -50 290, - -70.7107 -70.7107 290, - -50 -86.6025 290, - -25.8819 -96.5926 290, - -1.83697e-14 -100 290, - 25.8819 -96.5926 290, - 50 -86.6025 290, - 70.7107 -70.7107 290, - 86.6025 -50 290, - 96.5926 -25.8819 290, - 100 0 270, - 96.5926 25.8819 270, - 86.6025 50 270, - 70.7107 70.7107 270, - 50 86.6025 270, - 25.8819 96.5926 270, - 6.12323e-15 100 270, - -25.8819 96.5926 270, - -50 86.6025 270, - -70.7107 70.7107 270, - -86.6025 50 270, - -96.5926 25.8819 270, - -100 1.22465e-14 270, - -96.5926 -25.8819 270, - -86.6025 -50 270, - -70.7107 -70.7107 270, - -50 -86.6025 270, - -25.8819 -96.5926 270, - -1.83697e-14 -100 270, - 25.8819 -96.5926 270, - 50 -86.6025 270, - 70.7107 -70.7107 270, - 86.6025 -50 270, - 96.5926 -25.8819 270, - 50 0 250, - 48.2963 12.941 250, - 43.3013 25 250, - 35.3553 35.3553 250, - 25 43.3013 250, - 12.941 48.2963 250, - 3.06162e-15 50 250, - -12.941 48.2963 250, - -25 43.3013 250, - -35.3553 35.3553 250, - -43.3013 25 250, - -48.2963 12.941 250, - -50 6.12323e-15 250, - -48.2963 -12.941 250, - -43.3013 -25 250, - -35.3553 -35.3553 250, - -25 -43.3013 250, - -12.941 -48.2963 250, - -9.18485e-15 -50 250, - 12.941 -48.2963 250, - 25 -43.3013 250, - 35.3553 -35.3553 250, - 43.3013 -25 250, - 48.2963 -12.941 250, - 50 0 110, - 48.2963 12.941 110, - 43.3013 25 110, - 35.3553 35.3553 110, - 25 43.3013 110, - 12.941 48.2963 110, - 3.06162e-15 50 110, - -12.941 48.2963 110, - -25 43.3013 110, - -35.3553 35.3553 110, - -43.3013 25 110, - -48.2963 12.941 110, - -50 6.12323e-15 110, - -48.2963 -12.941 110, - -43.3013 -25 110, - -35.3553 -35.3553 110, - -25 -43.3013 110, - -12.941 -48.2963 110, - -9.18485e-15 -50 110, - 12.941 -48.2963 110, - 25 -43.3013 110, - 35.3553 -35.3553 110, - 43.3013 -25 110, - 48.2963 -12.941 110, - 100 0 90, - 96.5926 25.8819 90, - 86.6025 50 90, - 70.7107 70.7107 90, - 50 86.6025 90, - 25.8819 96.5926 90, - 6.12323e-15 100 90, - -25.8819 96.5926 90, - -50 86.6025 90, - -70.7107 70.7107 90, - -86.6025 50 90, - -96.5926 25.8819 90, - -100 1.22465e-14 90, - -96.5926 -25.8819 90, - -86.6025 -50 90, - -70.7107 -70.7107 90, - -50 -86.6025 90, - -25.8819 -96.5926 90, - -1.83697e-14 -100 90, - 25.8819 -96.5926 90, - 50 -86.6025 90, - 70.7107 -70.7107 90, - 86.6025 -50 90, - 96.5926 -25.8819 90, - 100 0 70, - 96.5926 25.8819 70, - 86.6025 50 70, - 70.7107 70.7107 70, - 50 86.6025 70, - 25.8819 96.5926 70, - 6.12323e-15 100 70, - -25.8819 96.5926 70, - -50 86.6025 70, - -70.7107 70.7107 70, - -86.6025 50 70, - -96.5926 25.8819 70, - -100 1.22465e-14 70, - -96.5926 -25.8819 70, - -86.6025 -50 70, - -70.7107 -70.7107 70, - -50 -86.6025 70, - -25.8819 -96.5926 70, - -1.83697e-14 -100 70, - 25.8819 -96.5926 70, - 50 -86.6025 70, - 70.7107 -70.7107 70, - 86.6025 -50 70, - 96.5926 -25.8819 70, - 0 0 50, - 0 0 350, - 0 0 310, - 0 0 290, - 0 0 270, - 0 0 250, - 0 0 110, - 0 0 90, - 0 0 70, - ] - } - coordIndex [ - 0, 24, 25, 1, -1, - 1, 25, 26, 2, -1, - 2, 26, 27, 3, -1, - 3, 27, 28, 4, -1, - 4, 28, 29, 5, -1, - 5, 29, 30, 6, -1, - 6, 30, 31, 7, -1, - 7, 31, 32, 8, -1, - 8, 32, 33, 9, -1, - 9, 33, 34, 10, -1, - 10, 34, 35, 11, -1, - 11, 35, 36, 12, -1, - 12, 36, 37, 13, -1, - 13, 37, 38, 14, -1, - 14, 38, 39, 15, -1, - 15, 39, 40, 16, -1, - 16, 40, 41, 17, -1, - 17, 41, 42, 18, -1, - 18, 42, 43, 19, -1, - 19, 43, 44, 20, -1, - 20, 44, 45, 21, -1, - 21, 45, 46, 22, -1, - 22, 46, 47, 23, -1, - 23, 47, 24, 0, -1, - 24, 48, 49, 25, -1, - 25, 49, 50, 26, -1, - 26, 50, 51, 27, -1, - 27, 51, 52, 28, -1, - 28, 52, 53, 29, -1, - 29, 53, 54, 30, -1, - 30, 54, 55, 31, -1, - 31, 55, 56, 32, -1, - 32, 56, 57, 33, -1, - 33, 57, 58, 34, -1, - 34, 58, 59, 35, -1, - 35, 59, 60, 36, -1, - 36, 60, 61, 37, -1, - 37, 61, 62, 38, -1, - 38, 62, 63, 39, -1, - 39, 63, 64, 40, -1, - 40, 64, 65, 41, -1, - 41, 65, 66, 42, -1, - 42, 66, 67, 43, -1, - 43, 67, 68, 44, -1, - 44, 68, 69, 45, -1, - 45, 69, 70, 46, -1, - 46, 70, 71, 47, -1, - 47, 71, 48, 24, -1, - 48, 72, 73, 49, -1, - 49, 73, 74, 50, -1, - 50, 74, 75, 51, -1, - 51, 75, 76, 52, -1, - 52, 76, 77, 53, -1, - 53, 77, 78, 54, -1, - 54, 78, 79, 55, -1, - 55, 79, 80, 56, -1, - 56, 80, 81, 57, -1, - 57, 81, 82, 58, -1, - 58, 82, 83, 59, -1, - 59, 83, 84, 60, -1, - 60, 84, 85, 61, -1, - 61, 85, 86, 62, -1, - 62, 86, 87, 63, -1, - 63, 87, 88, 64, -1, - 64, 88, 89, 65, -1, - 65, 89, 90, 66, -1, - 66, 90, 91, 67, -1, - 67, 91, 92, 68, -1, - 68, 92, 93, 69, -1, - 69, 93, 94, 70, -1, - 70, 94, 95, 71, -1, - 71, 95, 72, 48, -1, - 72, 96, 97, 73, -1, - 73, 97, 98, 74, -1, - 74, 98, 99, 75, -1, - 75, 99, 100, 76, -1, - 76, 100, 101, 77, -1, - 77, 101, 102, 78, -1, - 78, 102, 103, 79, -1, - 79, 103, 104, 80, -1, - 80, 104, 105, 81, -1, - 81, 105, 106, 82, -1, - 82, 106, 107, 83, -1, - 83, 107, 108, 84, -1, - 84, 108, 109, 85, -1, - 85, 109, 110, 86, -1, - 86, 110, 111, 87, -1, - 87, 111, 112, 88, -1, - 88, 112, 113, 89, -1, - 89, 113, 114, 90, -1, - 90, 114, 115, 91, -1, - 91, 115, 116, 92, -1, - 92, 116, 117, 93, -1, - 93, 117, 118, 94, -1, - 94, 118, 119, 95, -1, - 95, 119, 96, 72, -1, - 96, 120, 121, 97, -1, - 97, 121, 122, 98, -1, - 98, 122, 123, 99, -1, - 99, 123, 124, 100, -1, - 100, 124, 125, 101, -1, - 101, 125, 126, 102, -1, - 102, 126, 127, 103, -1, - 103, 127, 128, 104, -1, - 104, 128, 129, 105, -1, - 105, 129, 130, 106, -1, - 106, 130, 131, 107, -1, - 107, 131, 132, 108, -1, - 108, 132, 133, 109, -1, - 109, 133, 134, 110, -1, - 110, 134, 135, 111, -1, - 111, 135, 136, 112, -1, - 112, 136, 137, 113, -1, - 113, 137, 138, 114, -1, - 114, 138, 139, 115, -1, - 115, 139, 140, 116, -1, - 116, 140, 141, 117, -1, - 117, 141, 142, 118, -1, - 118, 142, 143, 119, -1, - 119, 143, 120, 96, -1, - 120, 144, 145, 121, -1, - 121, 145, 146, 122, -1, - 122, 146, 147, 123, -1, - 123, 147, 148, 124, -1, - 124, 148, 149, 125, -1, - 125, 149, 150, 126, -1, - 126, 150, 151, 127, -1, - 127, 151, 152, 128, -1, - 128, 152, 153, 129, -1, - 129, 153, 154, 130, -1, - 130, 154, 155, 131, -1, - 131, 155, 156, 132, -1, - 132, 156, 157, 133, -1, - 133, 157, 158, 134, -1, - 134, 158, 159, 135, -1, - 135, 159, 160, 136, -1, - 136, 160, 161, 137, -1, - 137, 161, 162, 138, -1, - 138, 162, 163, 139, -1, - 139, 163, 164, 140, -1, - 140, 164, 165, 141, -1, - 141, 165, 166, 142, -1, - 142, 166, 167, 143, -1, - 143, 167, 144, 120, -1, - 144, 168, 169, 145, -1, - 145, 169, 170, 146, -1, - 146, 170, 171, 147, -1, - 147, 171, 172, 148, -1, - 148, 172, 173, 149, -1, - 149, 173, 174, 150, -1, - 150, 174, 175, 151, -1, - 151, 175, 176, 152, -1, - 152, 176, 177, 153, -1, - 153, 177, 178, 154, -1, - 154, 178, 179, 155, -1, - 155, 179, 180, 156, -1, - 156, 180, 181, 157, -1, - 157, 181, 182, 158, -1, - 158, 182, 183, 159, -1, - 159, 183, 184, 160, -1, - 160, 184, 185, 161, -1, - 161, 185, 186, 162, -1, - 162, 186, 187, 163, -1, - 163, 187, 188, 164, -1, - 164, 188, 189, 165, -1, - 165, 189, 190, 166, -1, - 166, 190, 191, 167, -1, - 167, 191, 168, 144, -1, - 168, 192, 169, -1, - 169, 192, 170, -1, - 170, 192, 171, -1, - 171, 192, 172, -1, - 172, 192, 173, -1, - 173, 192, 174, -1, - 174, 192, 175, -1, - 175, 192, 176, -1, - 176, 192, 177, -1, - 177, 192, 178, -1, - 178, 192, 179, -1, - 179, 192, 180, -1, - 180, 192, 181, -1, - 181, 192, 182, -1, - 182, 192, 183, -1, - 183, 192, 184, -1, - 184, 192, 185, -1, - 185, 192, 186, -1, - 186, 192, 187, -1, - 187, 192, 188, -1, - 188, 192, 189, -1, - 189, 192, 190, -1, - 190, 192, 191, -1, - 191, 192, 168, -1, - 193, 0, 1, -1, - 193, 1, 2, -1, - 193, 2, 3, -1, - 193, 3, 4, -1, - 193, 4, 5, -1, - 193, 5, 6, -1, - 193, 6, 7, -1, - 193, 7, 8, -1, - 193, 8, 9, -1, - 193, 9, 10, -1, - 193, 10, 11, -1, - 193, 11, 12, -1, - 193, 12, 13, -1, - 193, 13, 14, -1, - 193, 14, 15, -1, - 193, 15, 16, -1, - 193, 16, 17, -1, - 193, 17, 18, -1, - 193, 18, 19, -1, - 193, 19, 20, -1, - 193, 20, 21, -1, - 193, 21, 22, -1, - 193, 22, 23, -1, - 193, 23, 0, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4polyhedra.wrl b/environments/g4py/tests/gtest05/vrml/g4polyhedra.wrl deleted file mode 100644 index 4fb6508105..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4polyhedra.wrl +++ /dev/null @@ -1,160 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - 123.607 0 350, - 38.1966 117.557 350, - -100 72.6543 350, - -100 -72.6543 350, - 38.1966 -117.557 350, - 123.607 0 320, - 38.1966 117.557 320, - -100 72.6543 320, - -100 -72.6543 320, - 38.1966 -117.557 320, - 49.4427 0 300, - 15.2786 47.0228 300, - -40 29.0617 300, - -40 -29.0617 300, - 15.2786 -47.0228 300, - 49.4427 0 130, - 15.2786 47.0228 130, - -40 29.0617 130, - -40 -29.0617 130, - 15.2786 -47.0228 130, - 185.41 0 80, - 57.2949 176.336 80, - -150 108.981 80, - -150 -108.981 80, - 57.2949 -176.336 80, - 185.41 0 50, - 57.2949 176.336 50, - -150 108.981 50, - -150 -108.981 50, - 57.2949 -176.336 50, - 0 0 0, - 0 0 350, - 0 0 320, - 0 0 300, - 0 0 130, - 0 0 80, - 0 0 50, - ] - } - coordIndex [ - 0, 5, 6, 1, -1, - 1, 6, 7, 2, -1, - 2, 7, 8, 3, -1, - 3, 8, 9, 4, -1, - 4, 9, 5, 0, -1, - 5, 10, 11, 6, -1, - 6, 11, 12, 7, -1, - 7, 12, 13, 8, -1, - 8, 13, 14, 9, -1, - 9, 14, 10, 5, -1, - 10, 15, 16, 11, -1, - 11, 16, 17, 12, -1, - 12, 17, 18, 13, -1, - 13, 18, 19, 14, -1, - 14, 19, 15, 10, -1, - 15, 20, 21, 16, -1, - 16, 21, 22, 17, -1, - 17, 22, 23, 18, -1, - 18, 23, 24, 19, -1, - 19, 24, 20, 15, -1, - 20, 25, 26, 21, -1, - 21, 26, 27, 22, -1, - 22, 27, 28, 23, -1, - 23, 28, 29, 24, -1, - 24, 29, 25, 20, -1, - 25, 30, 26, -1, - 26, 30, 27, -1, - 27, 30, 28, -1, - 28, 30, 29, -1, - 29, 30, 25, -1, - 31, 0, 1, -1, - 31, 1, 2, -1, - 31, 2, 3, -1, - 31, 3, 4, -1, - 31, 4, 0, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4sphere.wrl b/environments/g4py/tests/gtest05/vrml/g4sphere.wrl deleted file mode 100644 index e3bfafdc9b..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4sphere.wrl +++ /dev/null @@ -1,690 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 1 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - 0 0 1200, - 310.583 2.1464e-307 1159.11, - 300 80.3848 1159.11, - 268.973 155.291 1159.11, - 219.615 219.615 1159.11, - 155.291 268.973 1159.11, - 80.3848 300 1159.11, - 1.90177e-14 310.583 1159.11, - -80.3848 300 1159.11, - -155.291 268.973 1159.11, - -219.615 219.615 1159.11, - -268.973 155.291 1159.11, - -300 80.3848 1159.11, - -310.583 3.80354e-14 1159.11, - 600 4.14653e-307 1039.23, - 579.555 155.291 1039.23, - 519.615 300 1039.23, - 424.264 424.264 1039.23, - 300 519.615 1039.23, - 155.291 579.555 1039.23, - 3.67394e-14 600 1039.23, - -155.291 579.555 1039.23, - -300 519.615 1039.23, - -424.264 424.264 1039.23, - -519.615 300 1039.23, - -579.555 155.291 1039.23, - -600 7.34788e-14 1039.23, - 848.528 5.86408e-307 848.528, - 819.615 219.615 848.528, - 734.847 424.264 848.528, - 600 600 848.528, - 424.264 734.847 848.528, - 219.615 819.615 848.528, - 5.19574e-14 848.528 848.528, - -219.615 819.615 848.528, - -424.264 734.847 848.528, - -600 600 848.528, - -734.847 424.264 848.528, - -819.615 219.615 848.528, - -848.528 1.03915e-13 848.528, - 1039.23 7.182e-307 600, - 1003.82 268.973 600, - 900 519.615 600, - 734.847 734.847 600, - 519.615 900 600, - 268.973 1003.82 600, - 6.36345e-14 1039.23 600, - -268.973 1003.82 600, - -519.615 900 600, - -734.847 734.847 600, - -900 519.615 600, - -1003.82 268.973 600, - -1039.23 1.27269e-13 600, - 1159.11 8.01048e-307 310.583, - 1119.62 300 310.583, - 1003.82 579.555 310.583, - 819.615 819.615 310.583, - 579.555 1003.82 310.583, - 300 1119.62 310.583, - 7.09751e-14 1159.11 310.583, - -300 1119.62 310.583, - -579.555 1003.82 310.583, - -819.615 819.615 310.583, - -1003.82 579.555 310.583, - -1119.62 300 310.583, - -1159.11 1.4195e-13 310.583, - 1200 8.29306e-307 7.34788e-14, - 1159.11 310.583 7.34788e-14, - 1039.23 600 7.34788e-14, - 848.528 848.528 7.34788e-14, - 600 1039.23 7.34788e-14, - 310.583 1159.11 7.34788e-14, - 7.34788e-14 1200 7.34788e-14, - -310.583 1159.11 7.34788e-14, - -600 1039.23 7.34788e-14, - -848.528 848.528 7.34788e-14, - -1039.23 600 7.34788e-14, - -1159.11 310.583 7.34788e-14, - -1200 1.46958e-13 7.34788e-14, - 1159.11 8.01048e-307 -310.583, - 1119.62 300 -310.583, - 1003.82 579.555 -310.583, - 819.615 819.615 -310.583, - 579.555 1003.82 -310.583, - 300 1119.62 -310.583, - 7.09751e-14 1159.11 -310.583, - -300 1119.62 -310.583, - -579.555 1003.82 -310.583, - -819.615 819.615 -310.583, - -1003.82 579.555 -310.583, - -1119.62 300 -310.583, - -1159.11 1.4195e-13 -310.583, - 1039.23 7.182e-307 -600, - 1003.82 268.973 -600, - 900 519.615 -600, - 734.847 734.847 -600, - 519.615 900 -600, - 268.973 1003.82 -600, - 6.36345e-14 1039.23 -600, - -268.973 1003.82 -600, - -519.615 900 -600, - -734.847 734.847 -600, - -900 519.615 -600, - -1003.82 268.973 -600, - -1039.23 1.27269e-13 -600, - 848.528 5.86408e-307 -848.528, - 819.615 219.615 -848.528, - 734.847 424.264 -848.528, - 600 600 -848.528, - 424.264 734.847 -848.528, - 219.615 819.615 -848.528, - 5.19574e-14 848.528 -848.528, - -219.615 819.615 -848.528, - -424.264 734.847 -848.528, - -600 600 -848.528, - -734.847 424.264 -848.528, - -819.615 219.615 -848.528, - -848.528 1.03915e-13 -848.528, - 600 4.14653e-307 -1039.23, - 579.555 155.291 -1039.23, - 519.615 300 -1039.23, - 424.264 424.264 -1039.23, - 300 519.615 -1039.23, - 155.291 579.555 -1039.23, - 3.67394e-14 600 -1039.23, - -155.291 579.555 -1039.23, - -300 519.615 -1039.23, - -424.264 424.264 -1039.23, - -519.615 300 -1039.23, - -579.555 155.291 -1039.23, - -600 7.34788e-14 -1039.23, - 310.583 2.1464e-307 -1159.11, - 300 80.3848 -1159.11, - 268.973 155.291 -1159.11, - 219.615 219.615 -1159.11, - 155.291 268.973 -1159.11, - 80.3848 300 -1159.11, - 1.90177e-14 310.583 -1159.11, - -80.3848 300 -1159.11, - -155.291 268.973 -1159.11, - -219.615 219.615 -1159.11, - -268.973 155.291 -1159.11, - -300 80.3848 -1159.11, - -310.583 3.80354e-14 -1159.11, - 0 0 -1200, - 0 0 1000, - 258.819 1.78867e-307 965.926, - 250 66.9873 965.926, - 224.144 129.41 965.926, - 183.013 183.013 965.926, - 129.41 224.144 965.926, - 66.9873 250 965.926, - 1.58481e-14 258.819 965.926, - -66.9873 250 965.926, - -129.41 224.144 965.926, - -183.013 183.013 965.926, - -224.144 129.41 965.926, - -250 66.9873 965.926, - -258.819 3.16962e-14 965.926, - 500 3.45544e-307 866.025, - 482.963 129.41 866.025, - 433.013 250 866.025, - 353.553 353.553 866.025, - 250 433.013 866.025, - 129.41 482.963 866.025, - 3.06162e-14 500 866.025, - -129.41 482.963 866.025, - -250 433.013 866.025, - -353.553 353.553 866.025, - -433.013 250 866.025, - -482.963 129.41 866.025, - -500 6.12323e-14 866.025, - 707.107 4.88673e-307 707.107, - 683.013 183.013 707.107, - 612.372 353.553 707.107, - 500 500 707.107, - 353.553 612.372 707.107, - 183.013 683.013 707.107, - 4.32978e-14 707.107 707.107, - -183.013 683.013 707.107, - -353.553 612.372 707.107, - -500 500 707.107, - -612.372 353.553 707.107, - -683.013 183.013 707.107, - -707.107 8.65956e-14 707.107, - 866.025 5.985e-307 500, - 836.516 224.144 500, - 750 433.013 500, - 612.372 612.372 500, - 433.013 750 500, - 224.144 836.516 500, - 5.30288e-14 866.025 500, - -224.144 836.516 500, - -433.013 750 500, - -612.372 612.372 500, - -750 433.013 500, - -836.516 224.144 500, - -866.025 1.06058e-13 500, - 965.926 6.6754e-307 258.819, - 933.013 250 258.819, - 836.516 482.963 258.819, - 683.013 683.013 258.819, - 482.963 836.516 258.819, - 250 933.013 258.819, - 5.91459e-14 965.926 258.819, - -250 933.013 258.819, - -482.963 836.516 258.819, - -683.013 683.013 258.819, - -836.516 482.963 258.819, - -933.013 250 258.819, - -965.926 1.18292e-13 258.819, - 1000 6.91088e-307 6.12323e-14, - 965.926 258.819 6.12323e-14, - 866.025 500 6.12323e-14, - 707.107 707.107 6.12323e-14, - 500 866.025 6.12323e-14, - 258.819 965.926 6.12323e-14, - 6.12323e-14 1000 6.12323e-14, - -258.819 965.926 6.12323e-14, - -500 866.025 6.12323e-14, - -707.107 707.107 6.12323e-14, - -866.025 500 6.12323e-14, - -965.926 258.819 6.12323e-14, - -1000 1.22465e-13 6.12323e-14, - 965.926 6.6754e-307 -258.819, - 933.013 250 -258.819, - 836.516 482.963 -258.819, - 683.013 683.013 -258.819, - 482.963 836.516 -258.819, - 250 933.013 -258.819, - 5.91459e-14 965.926 -258.819, - -250 933.013 -258.819, - -482.963 836.516 -258.819, - -683.013 683.013 -258.819, - -836.516 482.963 -258.819, - -933.013 250 -258.819, - -965.926 1.18292e-13 -258.819, - 866.025 5.985e-307 -500, - 836.516 224.144 -500, - 750 433.013 -500, - 612.372 612.372 -500, - 433.013 750 -500, - 224.144 836.516 -500, - 5.30288e-14 866.025 -500, - -224.144 836.516 -500, - -433.013 750 -500, - -612.372 612.372 -500, - -750 433.013 -500, - -836.516 224.144 -500, - -866.025 1.06058e-13 -500, - 707.107 4.88673e-307 -707.107, - 683.013 183.013 -707.107, - 612.372 353.553 -707.107, - 500 500 -707.107, - 353.553 612.372 -707.107, - 183.013 683.013 -707.107, - 4.32978e-14 707.107 -707.107, - -183.013 683.013 -707.107, - -353.553 612.372 -707.107, - -500 500 -707.107, - -612.372 353.553 -707.107, - -683.013 183.013 -707.107, - -707.107 8.65956e-14 -707.107, - 500 3.45544e-307 -866.025, - 482.963 129.41 -866.025, - 433.013 250 -866.025, - 353.553 353.553 -866.025, - 250 433.013 -866.025, - 129.41 482.963 -866.025, - 3.06162e-14 500 -866.025, - -129.41 482.963 -866.025, - -250 433.013 -866.025, - -353.553 353.553 -866.025, - -433.013 250 -866.025, - -482.963 129.41 -866.025, - -500 6.12323e-14 -866.025, - 258.819 1.78867e-307 -965.926, - 250 66.9873 -965.926, - 224.144 129.41 -965.926, - 183.013 183.013 -965.926, - 129.41 224.144 -965.926, - 66.9873 250 -965.926, - 1.58481e-14 258.819 -965.926, - -66.9873 250 -965.926, - -129.41 224.144 -965.926, - -183.013 183.013 -965.926, - -224.144 129.41 -965.926, - -250 66.9873 -965.926, - -258.819 3.16962e-14 -965.926, - 0 0 -1000, - ] - } - coordIndex [ - 0, 1, 2, -1, - 0, 2, 3, -1, - 0, 3, 4, -1, - 0, 4, 5, -1, - 0, 5, 6, -1, - 0, 6, 7, -1, - 0, 7, 8, -1, - 0, 8, 9, -1, - 0, 9, 10, -1, - 0, 10, 11, -1, - 0, 11, 12, -1, - 0, 12, 13, -1, - 1, 14, 15, 2, -1, - 2, 15, 16, 3, -1, - 3, 16, 17, 4, -1, - 4, 17, 18, 5, -1, - 5, 18, 19, 6, -1, - 6, 19, 20, 7, -1, - 7, 20, 21, 8, -1, - 8, 21, 22, 9, -1, - 9, 22, 23, 10, -1, - 10, 23, 24, 11, -1, - 11, 24, 25, 12, -1, - 12, 25, 26, 13, -1, - 14, 27, 28, 15, -1, - 15, 28, 29, 16, -1, - 16, 29, 30, 17, -1, - 17, 30, 31, 18, -1, - 18, 31, 32, 19, -1, - 19, 32, 33, 20, -1, - 20, 33, 34, 21, -1, - 21, 34, 35, 22, -1, - 22, 35, 36, 23, -1, - 23, 36, 37, 24, -1, - 24, 37, 38, 25, -1, - 25, 38, 39, 26, -1, - 27, 40, 41, 28, -1, - 28, 41, 42, 29, -1, - 29, 42, 43, 30, -1, - 30, 43, 44, 31, -1, - 31, 44, 45, 32, -1, - 32, 45, 46, 33, -1, - 33, 46, 47, 34, -1, - 34, 47, 48, 35, -1, - 35, 48, 49, 36, -1, - 36, 49, 50, 37, -1, - 37, 50, 51, 38, -1, - 38, 51, 52, 39, -1, - 40, 53, 54, 41, -1, - 41, 54, 55, 42, -1, - 42, 55, 56, 43, -1, - 43, 56, 57, 44, -1, - 44, 57, 58, 45, -1, - 45, 58, 59, 46, -1, - 46, 59, 60, 47, -1, - 47, 60, 61, 48, -1, - 48, 61, 62, 49, -1, - 49, 62, 63, 50, -1, - 50, 63, 64, 51, -1, - 51, 64, 65, 52, -1, - 53, 66, 67, 54, -1, - 54, 67, 68, 55, -1, - 55, 68, 69, 56, -1, - 56, 69, 70, 57, -1, - 57, 70, 71, 58, -1, - 58, 71, 72, 59, -1, - 59, 72, 73, 60, -1, - 60, 73, 74, 61, -1, - 61, 74, 75, 62, -1, - 62, 75, 76, 63, -1, - 63, 76, 77, 64, -1, - 64, 77, 78, 65, -1, - 66, 79, 80, 67, -1, - 67, 80, 81, 68, -1, - 68, 81, 82, 69, -1, - 69, 82, 83, 70, -1, - 70, 83, 84, 71, -1, - 71, 84, 85, 72, -1, - 72, 85, 86, 73, -1, - 73, 86, 87, 74, -1, - 74, 87, 88, 75, -1, - 75, 88, 89, 76, -1, - 76, 89, 90, 77, -1, - 77, 90, 91, 78, -1, - 79, 92, 93, 80, -1, - 80, 93, 94, 81, -1, - 81, 94, 95, 82, -1, - 82, 95, 96, 83, -1, - 83, 96, 97, 84, -1, - 84, 97, 98, 85, -1, - 85, 98, 99, 86, -1, - 86, 99, 100, 87, -1, - 87, 100, 101, 88, -1, - 88, 101, 102, 89, -1, - 89, 102, 103, 90, -1, - 90, 103, 104, 91, -1, - 92, 105, 106, 93, -1, - 93, 106, 107, 94, -1, - 94, 107, 108, 95, -1, - 95, 108, 109, 96, -1, - 96, 109, 110, 97, -1, - 97, 110, 111, 98, -1, - 98, 111, 112, 99, -1, - 99, 112, 113, 100, -1, - 100, 113, 114, 101, -1, - 101, 114, 115, 102, -1, - 102, 115, 116, 103, -1, - 103, 116, 117, 104, -1, - 105, 118, 119, 106, -1, - 106, 119, 120, 107, -1, - 107, 120, 121, 108, -1, - 108, 121, 122, 109, -1, - 109, 122, 123, 110, -1, - 110, 123, 124, 111, -1, - 111, 124, 125, 112, -1, - 112, 125, 126, 113, -1, - 113, 126, 127, 114, -1, - 114, 127, 128, 115, -1, - 115, 128, 129, 116, -1, - 116, 129, 130, 117, -1, - 118, 131, 132, 119, -1, - 119, 132, 133, 120, -1, - 120, 133, 134, 121, -1, - 121, 134, 135, 122, -1, - 122, 135, 136, 123, -1, - 123, 136, 137, 124, -1, - 124, 137, 138, 125, -1, - 125, 138, 139, 126, -1, - 126, 139, 140, 127, -1, - 127, 140, 141, 128, -1, - 128, 141, 142, 129, -1, - 129, 142, 143, 130, -1, - 131, 144, 132, -1, - 132, 144, 133, -1, - 133, 144, 134, -1, - 134, 144, 135, -1, - 135, 144, 136, -1, - 136, 144, 137, -1, - 137, 144, 138, -1, - 138, 144, 139, -1, - 139, 144, 140, -1, - 140, 144, 141, -1, - 141, 144, 142, -1, - 142, 144, 143, -1, - 146, 145, 147, -1, - 147, 145, 148, -1, - 148, 145, 149, -1, - 149, 145, 150, -1, - 150, 145, 151, -1, - 151, 145, 152, -1, - 152, 145, 153, -1, - 153, 145, 154, -1, - 154, 145, 155, -1, - 155, 145, 156, -1, - 156, 145, 157, -1, - 157, 145, 158, -1, - 159, 146, 147, 160, -1, - 160, 147, 148, 161, -1, - 161, 148, 149, 162, -1, - 162, 149, 150, 163, -1, - 163, 150, 151, 164, -1, - 164, 151, 152, 165, -1, - 165, 152, 153, 166, -1, - 166, 153, 154, 167, -1, - 167, 154, 155, 168, -1, - 168, 155, 156, 169, -1, - 169, 156, 157, 170, -1, - 170, 157, 158, 171, -1, - 172, 159, 160, 173, -1, - 173, 160, 161, 174, -1, - 174, 161, 162, 175, -1, - 175, 162, 163, 176, -1, - 176, 163, 164, 177, -1, - 177, 164, 165, 178, -1, - 178, 165, 166, 179, -1, - 179, 166, 167, 180, -1, - 180, 167, 168, 181, -1, - 181, 168, 169, 182, -1, - 182, 169, 170, 183, -1, - 183, 170, 171, 184, -1, - 185, 172, 173, 186, -1, - 186, 173, 174, 187, -1, - 187, 174, 175, 188, -1, - 188, 175, 176, 189, -1, - 189, 176, 177, 190, -1, - 190, 177, 178, 191, -1, - 191, 178, 179, 192, -1, - 192, 179, 180, 193, -1, - 193, 180, 181, 194, -1, - 194, 181, 182, 195, -1, - 195, 182, 183, 196, -1, - 196, 183, 184, 197, -1, - 198, 185, 186, 199, -1, - 199, 186, 187, 200, -1, - 200, 187, 188, 201, -1, - 201, 188, 189, 202, -1, - 202, 189, 190, 203, -1, - 203, 190, 191, 204, -1, - 204, 191, 192, 205, -1, - 205, 192, 193, 206, -1, - 206, 193, 194, 207, -1, - 207, 194, 195, 208, -1, - 208, 195, 196, 209, -1, - 209, 196, 197, 210, -1, - 211, 198, 199, 212, -1, - 212, 199, 200, 213, -1, - 213, 200, 201, 214, -1, - 214, 201, 202, 215, -1, - 215, 202, 203, 216, -1, - 216, 203, 204, 217, -1, - 217, 204, 205, 218, -1, - 218, 205, 206, 219, -1, - 219, 206, 207, 220, -1, - 220, 207, 208, 221, -1, - 221, 208, 209, 222, -1, - 222, 209, 210, 223, -1, - 224, 211, 212, 225, -1, - 225, 212, 213, 226, -1, - 226, 213, 214, 227, -1, - 227, 214, 215, 228, -1, - 228, 215, 216, 229, -1, - 229, 216, 217, 230, -1, - 230, 217, 218, 231, -1, - 231, 218, 219, 232, -1, - 232, 219, 220, 233, -1, - 233, 220, 221, 234, -1, - 234, 221, 222, 235, -1, - 235, 222, 223, 236, -1, - 237, 224, 225, 238, -1, - 238, 225, 226, 239, -1, - 239, 226, 227, 240, -1, - 240, 227, 228, 241, -1, - 241, 228, 229, 242, -1, - 242, 229, 230, 243, -1, - 243, 230, 231, 244, -1, - 244, 231, 232, 245, -1, - 245, 232, 233, 246, -1, - 246, 233, 234, 247, -1, - 247, 234, 235, 248, -1, - 248, 235, 236, 249, -1, - 250, 237, 238, 251, -1, - 251, 238, 239, 252, -1, - 252, 239, 240, 253, -1, - 253, 240, 241, 254, -1, - 254, 241, 242, 255, -1, - 255, 242, 243, 256, -1, - 256, 243, 244, 257, -1, - 257, 244, 245, 258, -1, - 258, 245, 246, 259, -1, - 259, 246, 247, 260, -1, - 260, 247, 248, 261, -1, - 261, 248, 249, 262, -1, - 263, 250, 251, 264, -1, - 264, 251, 252, 265, -1, - 265, 252, 253, 266, -1, - 266, 253, 254, 267, -1, - 267, 254, 255, 268, -1, - 268, 255, 256, 269, -1, - 269, 256, 257, 270, -1, - 270, 257, 258, 271, -1, - 271, 258, 259, 272, -1, - 272, 259, 260, 273, -1, - 273, 260, 261, 274, -1, - 274, 261, 262, 275, -1, - 276, 263, 264, 277, -1, - 277, 264, 265, 278, -1, - 278, 265, 266, 279, -1, - 279, 266, 267, 280, -1, - 280, 267, 268, 281, -1, - 281, 268, 269, 282, -1, - 282, 269, 270, 283, -1, - 283, 270, 271, 284, -1, - 284, 271, 272, 285, -1, - 285, 272, 273, 286, -1, - 286, 273, 274, 287, -1, - 287, 274, 275, 288, -1, - 289, 276, 277, -1, - 289, 277, 278, -1, - 289, 278, 279, -1, - 289, 279, 280, -1, - 289, 280, 281, -1, - 289, 281, 282, -1, - 289, 282, 283, -1, - 289, 283, 284, -1, - 289, 284, 285, -1, - 289, 285, 286, -1, - 289, 286, 287, -1, - 289, 287, 288, -1, - 0, 145, 146, 1, -1, - 13, 158, 145, 0, -1, - 1, 146, 159, 14, -1, - 26, 171, 158, 13, -1, - 14, 159, 172, 27, -1, - 39, 184, 171, 26, -1, - 27, 172, 185, 40, -1, - 52, 197, 184, 39, -1, - 40, 185, 198, 53, -1, - 65, 210, 197, 52, -1, - 53, 198, 211, 66, -1, - 78, 223, 210, 65, -1, - 66, 211, 224, 79, -1, - 91, 236, 223, 78, -1, - 79, 224, 237, 92, -1, - 104, 249, 236, 91, -1, - 92, 237, 250, 105, -1, - 117, 262, 249, 104, -1, - 105, 250, 263, 118, -1, - 130, 275, 262, 117, -1, - 118, 263, 276, 131, -1, - 143, 288, 275, 130, -1, - 131, 276, 289, 144, -1, - 144, 289, 288, 143, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4tet.wrl b/environments/g4py/tests/gtest05/vrml/g4tet.wrl deleted file mode 100644 index 1259f8f3b9..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4tet.wrl +++ /dev/null @@ -1,96 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - 0 0 346.41, - 0 326.599 -115.47, - 282.843 -163.299 -115.47, - -282.843 -163.299 -115.47, - ] - } - coordIndex [ - 0, 2, 1, -1, - 0, 3, 2, -1, - 0, 1, 3, -1, - 1, 2, 3, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4torus.wrl b/environments/g4py/tests/gtest05/vrml/g4torus.wrl deleted file mode 100644 index 3d3edcce0f..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4torus.wrl +++ /dev/null @@ -1,760 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 1 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - 2000 0 600, - 1931.85 517.638 600, - 1732.05 1000 600, - 1414.21 1414.21 600, - 1000 1732.05 600, - 517.638 1931.85 600, - 1.22465e-13 2000 600, - 2155.29 0 579.555, - 2081.85 557.83 579.555, - 1866.54 1077.65 579.555, - 1524.02 1524.02 579.555, - 1077.65 1866.54 579.555, - 557.83 2081.85 579.555, - 1.31974e-13 2155.29 579.555, - 2300 0 519.615, - 2221.63 595.284 519.615, - 1991.86 1150 519.615, - 1626.35 1626.35 519.615, - 1150 1991.86 519.615, - 595.284 2221.63 519.615, - 1.40834e-13 2300 519.615, - 2424.26 0 424.264, - 2341.66 627.446 424.264, - 2099.47 1212.13 424.264, - 1714.21 1714.21 424.264, - 1212.13 2099.47 424.264, - 627.446 2341.66 424.264, - 1.48443e-13 2424.26 424.264, - 2519.62 0 300, - 2433.76 652.124 300, - 2182.05 1259.81 300, - 1781.64 1781.64 300, - 1259.81 2182.05 300, - 652.124 2433.76 300, - 1.54282e-13 2519.62 300, - 2579.56 0 155.291, - 2491.66 667.638 155.291, - 2233.96 1289.78 155.291, - 1824.02 1824.02 155.291, - 1289.78 2233.96 155.291, - 667.638 2491.66 155.291, - 1.57952e-13 2579.56 155.291, - 2600 0 3.67394e-14, - 2511.41 672.93 3.67394e-14, - 2251.67 1300 3.67394e-14, - 1838.48 1838.48 3.67394e-14, - 1300 2251.67 3.67394e-14, - 672.93 2511.41 3.67394e-14, - 1.59204e-13 2600 3.67394e-14, - 2579.56 0 -155.291, - 2491.66 667.638 -155.291, - 2233.96 1289.78 -155.291, - 1824.02 1824.02 -155.291, - 1289.78 2233.96 -155.291, - 667.638 2491.66 -155.291, - 1.57952e-13 2579.56 -155.291, - 2519.62 0 -300, - 2433.76 652.124 -300, - 2182.05 1259.81 -300, - 1781.64 1781.64 -300, - 1259.81 2182.05 -300, - 652.124 2433.76 -300, - 1.54282e-13 2519.62 -300, - 2424.26 0 -424.264, - 2341.66 627.446 -424.264, - 2099.47 1212.13 -424.264, - 1714.21 1714.21 -424.264, - 1212.13 2099.47 -424.264, - 627.446 2341.66 -424.264, - 1.48443e-13 2424.26 -424.264, - 2300 0 -519.615, - 2221.63 595.284 -519.615, - 1991.86 1150 -519.615, - 1626.35 1626.35 -519.615, - 1150 1991.86 -519.615, - 595.284 2221.63 -519.615, - 1.40834e-13 2300 -519.615, - 2155.29 0 -579.555, - 2081.85 557.83 -579.555, - 1866.54 1077.65 -579.555, - 1524.02 1524.02 -579.555, - 1077.65 1866.54 -579.555, - 557.83 2081.85 -579.555, - 1.31974e-13 2155.29 -579.555, - 2000 0 -600, - 1931.85 517.638 -600, - 1732.05 1000 -600, - 1414.21 1414.21 -600, - 1000 1732.05 -600, - 517.638 1931.85 -600, - 1.22465e-13 2000 -600, - 1844.71 0 -579.555, - 1781.85 477.446 -579.555, - 1597.56 922.354 -579.555, - 1304.41 1304.41 -579.555, - 922.354 1597.56 -579.555, - 477.446 1781.85 -579.555, - 1.12956e-13 1844.71 -579.555, - 1700 0 -519.615, - 1642.07 439.992 -519.615, - 1472.24 850 -519.615, - 1202.08 1202.08 -519.615, - 850 1472.24 -519.615, - 439.992 1642.07 -519.615, - 1.04095e-13 1700 -519.615, - 1575.74 0 -424.264, - 1522.04 407.83 -424.264, - 1364.63 787.868 -424.264, - 1114.21 1114.21 -424.264, - 787.868 1364.63 -424.264, - 407.83 1522.04 -424.264, - 9.6486e-14 1575.74 -424.264, - 1480.38 0 -300, - 1429.94 383.152 -300, - 1282.05 740.192 -300, - 1046.79 1046.79 -300, - 740.192 1282.05 -300, - 383.152 1429.94 -300, - 9.06474e-14 1480.38 -300, - 1420.44 0 -155.291, - 1372.04 367.638 -155.291, - 1230.14 710.222 -155.291, - 1004.41 1004.41 -155.291, - 710.222 1230.14 -155.291, - 367.638 1372.04 -155.291, - 8.69771e-14 1420.44 -155.291, - 1400 0 -1.10218e-13, - 1352.3 362.347 -1.10218e-13, - 1212.44 700 -1.10218e-13, - 989.949 989.949 -1.10218e-13, - 700 1212.44 -1.10218e-13, - 362.347 1352.3 -1.10218e-13, - 8.57253e-14 1400 -1.10218e-13, - 1420.44 0 155.291, - 1372.04 367.638 155.291, - 1230.14 710.222 155.291, - 1004.41 1004.41 155.291, - 710.222 1230.14 155.291, - 367.638 1372.04 155.291, - 8.69771e-14 1420.44 155.291, - 1480.38 0 300, - 1429.94 383.152 300, - 1282.05 740.192 300, - 1046.79 1046.79 300, - 740.192 1282.05 300, - 383.152 1429.94 300, - 9.06474e-14 1480.38 300, - 1575.74 0 424.264, - 1522.04 407.83 424.264, - 1364.63 787.868 424.264, - 1114.21 1114.21 424.264, - 787.868 1364.63 424.264, - 407.83 1522.04 424.264, - 9.6486e-14 1575.74 424.264, - 1700 0 519.615, - 1642.07 439.992 519.615, - 1472.24 850 519.615, - 1202.08 1202.08 519.615, - 850 1472.24 519.615, - 439.992 1642.07 519.615, - 1.04095e-13 1700 519.615, - 1844.71 0 579.555, - 1781.85 477.446 579.555, - 1597.56 922.354 579.555, - 1304.41 1304.41 579.555, - 922.354 1597.56 579.555, - 477.446 1781.85 579.555, - 1.12956e-13 1844.71 579.555, - 2000 0 400, - 1931.85 517.638 400, - 1732.05 1000 400, - 1414.21 1414.21 400, - 1000 1732.05 400, - 517.638 1931.85 400, - 1.22465e-13 2000 400, - 2103.53 0 386.37, - 2031.85 544.433 386.37, - 1821.71 1051.76 386.37, - 1487.42 1487.42 386.37, - 1051.76 1821.71 386.37, - 544.433 2031.85 386.37, - 1.28804e-13 2103.53 386.37, - 2200 0 346.41, - 2125.04 569.402 346.41, - 1905.26 1100 346.41, - 1555.63 1555.63 346.41, - 1100 1905.26 346.41, - 569.402 2125.04 346.41, - 1.34711e-13 2200 346.41, - 2282.84 0 282.843, - 2205.06 590.843 282.843, - 1977 1141.42 282.843, - 1614.21 1614.21 282.843, - 1141.42 1977 282.843, - 590.843 2205.06 282.843, - 1.39784e-13 2282.84 282.843, - 2346.41 0 200, - 2266.46 607.296 200, - 2032.05 1173.21 200, - 1659.16 1659.16 200, - 1173.21 2032.05 200, - 607.296 2266.46 200, - 1.43676e-13 2346.41 200, - 2386.37 0 103.528, - 2305.06 617.638 103.528, - 2066.66 1193.19 103.528, - 1687.42 1687.42 103.528, - 1193.19 2066.66 103.528, - 617.638 2305.06 103.528, - 1.46123e-13 2386.37 103.528, - 2400 0 2.44929e-14, - 2318.22 621.166 2.44929e-14, - 2078.46 1200 2.44929e-14, - 1697.06 1697.06 2.44929e-14, - 1200 2078.46 2.44929e-14, - 621.166 2318.22 2.44929e-14, - 1.46958e-13 2400 2.44929e-14, - 2386.37 0 -103.528, - 2305.06 617.638 -103.528, - 2066.66 1193.19 -103.528, - 1687.42 1687.42 -103.528, - 1193.19 2066.66 -103.528, - 617.638 2305.06 -103.528, - 1.46123e-13 2386.37 -103.528, - 2346.41 0 -200, - 2266.46 607.296 -200, - 2032.05 1173.21 -200, - 1659.16 1659.16 -200, - 1173.21 2032.05 -200, - 607.296 2266.46 -200, - 1.43676e-13 2346.41 -200, - 2282.84 0 -282.843, - 2205.06 590.843 -282.843, - 1977 1141.42 -282.843, - 1614.21 1614.21 -282.843, - 1141.42 1977 -282.843, - 590.843 2205.06 -282.843, - 1.39784e-13 2282.84 -282.843, - 2200 0 -346.41, - 2125.04 569.402 -346.41, - 1905.26 1100 -346.41, - 1555.63 1555.63 -346.41, - 1100 1905.26 -346.41, - 569.402 2125.04 -346.41, - 1.34711e-13 2200 -346.41, - 2103.53 0 -386.37, - 2031.85 544.433 -386.37, - 1821.71 1051.76 -386.37, - 1487.42 1487.42 -386.37, - 1051.76 1821.71 -386.37, - 544.433 2031.85 -386.37, - 1.28804e-13 2103.53 -386.37, - 2000 0 -400, - 1931.85 517.638 -400, - 1732.05 1000 -400, - 1414.21 1414.21 -400, - 1000 1732.05 -400, - 517.638 1931.85 -400, - 1.22465e-13 2000 -400, - 1896.47 0 -386.37, - 1831.85 490.843 -386.37, - 1642.39 948.236 -386.37, - 1341.01 1341.01 -386.37, - 948.236 1642.39 -386.37, - 490.843 1831.85 -386.37, - 1.16125e-13 1896.47 -386.37, - 1800 0 -346.41, - 1738.67 465.874 -346.41, - 1558.85 900 -346.41, - 1272.79 1272.79 -346.41, - 900 1558.85 -346.41, - 465.874 1738.67 -346.41, - 1.10218e-13 1800 -346.41, - 1717.16 0 -282.843, - 1658.65 444.433 -282.843, - 1487.1 858.579 -282.843, - 1214.21 1214.21 -282.843, - 858.579 1487.1 -282.843, - 444.433 1658.65 -282.843, - 1.05146e-13 1717.16 -282.843, - 1653.59 0 -200, - 1597.25 427.981 -200, - 1432.05 826.795 -200, - 1169.26 1169.26 -200, - 826.795 1432.05 -200, - 427.981 1597.25 -200, - 1.01253e-13 1653.59 -200, - 1613.63 0 -103.528, - 1558.65 417.638 -103.528, - 1397.44 806.815 -103.528, - 1141.01 1141.01 -103.528, - 806.815 1397.44 -103.528, - 417.638 1558.65 -103.528, - 9.88063e-14 1613.63 -103.528, - 1600 0 -7.34788e-14, - 1545.48 414.11 -7.34788e-14, - 1385.64 800 -7.34788e-14, - 1131.37 1131.37 -7.34788e-14, - 800 1385.64 -7.34788e-14, - 414.11 1545.48 -7.34788e-14, - 9.79717e-14 1600 -7.34788e-14, - 1613.63 0 103.528, - 1558.65 417.638 103.528, - 1397.44 806.815 103.528, - 1141.01 1141.01 103.528, - 806.815 1397.44 103.528, - 417.638 1558.65 103.528, - 9.88063e-14 1613.63 103.528, - 1653.59 0 200, - 1597.25 427.981 200, - 1432.05 826.795 200, - 1169.26 1169.26 200, - 826.795 1432.05 200, - 427.981 1597.25 200, - 1.01253e-13 1653.59 200, - 1717.16 0 282.843, - 1658.65 444.433 282.843, - 1487.1 858.579 282.843, - 1214.21 1214.21 282.843, - 858.579 1487.1 282.843, - 444.433 1658.65 282.843, - 1.05146e-13 1717.16 282.843, - 1800 0 346.41, - 1738.67 465.874 346.41, - 1558.85 900 346.41, - 1272.79 1272.79 346.41, - 900 1558.85 346.41, - 465.874 1738.67 346.41, - 1.10218e-13 1800 346.41, - 1896.47 0 386.37, - 1831.85 490.843 386.37, - 1642.39 948.236 386.37, - 1341.01 1341.01 386.37, - 948.236 1642.39 386.37, - 490.843 1831.85 386.37, - 1.16125e-13 1896.47 386.37, - ] - } - coordIndex [ - 0, 7, 8, 1, -1, - 1, 8, 9, 2, -1, - 2, 9, 10, 3, -1, - 3, 10, 11, 4, -1, - 4, 11, 12, 5, -1, - 5, 12, 13, 6, -1, - 7, 14, 15, 8, -1, - 8, 15, 16, 9, -1, - 9, 16, 17, 10, -1, - 10, 17, 18, 11, -1, - 11, 18, 19, 12, -1, - 12, 19, 20, 13, -1, - 14, 21, 22, 15, -1, - 15, 22, 23, 16, -1, - 16, 23, 24, 17, -1, - 17, 24, 25, 18, -1, - 18, 25, 26, 19, -1, - 19, 26, 27, 20, -1, - 21, 28, 29, 22, -1, - 22, 29, 30, 23, -1, - 23, 30, 31, 24, -1, - 24, 31, 32, 25, -1, - 25, 32, 33, 26, -1, - 26, 33, 34, 27, -1, - 28, 35, 36, 29, -1, - 29, 36, 37, 30, -1, - 30, 37, 38, 31, -1, - 31, 38, 39, 32, -1, - 32, 39, 40, 33, -1, - 33, 40, 41, 34, -1, - 35, 42, 43, 36, -1, - 36, 43, 44, 37, -1, - 37, 44, 45, 38, -1, - 38, 45, 46, 39, -1, - 39, 46, 47, 40, -1, - 40, 47, 48, 41, -1, - 42, 49, 50, 43, -1, - 43, 50, 51, 44, -1, - 44, 51, 52, 45, -1, - 45, 52, 53, 46, -1, - 46, 53, 54, 47, -1, - 47, 54, 55, 48, -1, - 49, 56, 57, 50, -1, - 50, 57, 58, 51, -1, - 51, 58, 59, 52, -1, - 52, 59, 60, 53, -1, - 53, 60, 61, 54, -1, - 54, 61, 62, 55, -1, - 56, 63, 64, 57, -1, - 57, 64, 65, 58, -1, - 58, 65, 66, 59, -1, - 59, 66, 67, 60, -1, - 60, 67, 68, 61, -1, - 61, 68, 69, 62, -1, - 63, 70, 71, 64, -1, - 64, 71, 72, 65, -1, - 65, 72, 73, 66, -1, - 66, 73, 74, 67, -1, - 67, 74, 75, 68, -1, - 68, 75, 76, 69, -1, - 70, 77, 78, 71, -1, - 71, 78, 79, 72, -1, - 72, 79, 80, 73, -1, - 73, 80, 81, 74, -1, - 74, 81, 82, 75, -1, - 75, 82, 83, 76, -1, - 77, 84, 85, 78, -1, - 78, 85, 86, 79, -1, - 79, 86, 87, 80, -1, - 80, 87, 88, 81, -1, - 81, 88, 89, 82, -1, - 82, 89, 90, 83, -1, - 84, 91, 92, 85, -1, - 85, 92, 93, 86, -1, - 86, 93, 94, 87, -1, - 87, 94, 95, 88, -1, - 88, 95, 96, 89, -1, - 89, 96, 97, 90, -1, - 91, 98, 99, 92, -1, - 92, 99, 100, 93, -1, - 93, 100, 101, 94, -1, - 94, 101, 102, 95, -1, - 95, 102, 103, 96, -1, - 96, 103, 104, 97, -1, - 98, 105, 106, 99, -1, - 99, 106, 107, 100, -1, - 100, 107, 108, 101, -1, - 101, 108, 109, 102, -1, - 102, 109, 110, 103, -1, - 103, 110, 111, 104, -1, - 105, 112, 113, 106, -1, - 106, 113, 114, 107, -1, - 107, 114, 115, 108, -1, - 108, 115, 116, 109, -1, - 109, 116, 117, 110, -1, - 110, 117, 118, 111, -1, - 112, 119, 120, 113, -1, - 113, 120, 121, 114, -1, - 114, 121, 122, 115, -1, - 115, 122, 123, 116, -1, - 116, 123, 124, 117, -1, - 117, 124, 125, 118, -1, - 119, 126, 127, 120, -1, - 120, 127, 128, 121, -1, - 121, 128, 129, 122, -1, - 122, 129, 130, 123, -1, - 123, 130, 131, 124, -1, - 124, 131, 132, 125, -1, - 126, 133, 134, 127, -1, - 127, 134, 135, 128, -1, - 128, 135, 136, 129, -1, - 129, 136, 137, 130, -1, - 130, 137, 138, 131, -1, - 131, 138, 139, 132, -1, - 133, 140, 141, 134, -1, - 134, 141, 142, 135, -1, - 135, 142, 143, 136, -1, - 136, 143, 144, 137, -1, - 137, 144, 145, 138, -1, - 138, 145, 146, 139, -1, - 140, 147, 148, 141, -1, - 141, 148, 149, 142, -1, - 142, 149, 150, 143, -1, - 143, 150, 151, 144, -1, - 144, 151, 152, 145, -1, - 145, 152, 153, 146, -1, - 147, 154, 155, 148, -1, - 148, 155, 156, 149, -1, - 149, 156, 157, 150, -1, - 150, 157, 158, 151, -1, - 151, 158, 159, 152, -1, - 152, 159, 160, 153, -1, - 154, 161, 162, 155, -1, - 155, 162, 163, 156, -1, - 156, 163, 164, 157, -1, - 157, 164, 165, 158, -1, - 158, 165, 166, 159, -1, - 159, 166, 167, 160, -1, - 161, 0, 1, 162, -1, - 162, 1, 2, 163, -1, - 163, 2, 3, 164, -1, - 164, 3, 4, 165, -1, - 165, 4, 5, 166, -1, - 166, 5, 6, 167, -1, - 175, 168, 169, 176, -1, - 176, 169, 170, 177, -1, - 177, 170, 171, 178, -1, - 178, 171, 172, 179, -1, - 179, 172, 173, 180, -1, - 180, 173, 174, 181, -1, - 182, 175, 176, 183, -1, - 183, 176, 177, 184, -1, - 184, 177, 178, 185, -1, - 185, 178, 179, 186, -1, - 186, 179, 180, 187, -1, - 187, 180, 181, 188, -1, - 189, 182, 183, 190, -1, - 190, 183, 184, 191, -1, - 191, 184, 185, 192, -1, - 192, 185, 186, 193, -1, - 193, 186, 187, 194, -1, - 194, 187, 188, 195, -1, - 196, 189, 190, 197, -1, - 197, 190, 191, 198, -1, - 198, 191, 192, 199, -1, - 199, 192, 193, 200, -1, - 200, 193, 194, 201, -1, - 201, 194, 195, 202, -1, - 203, 196, 197, 204, -1, - 204, 197, 198, 205, -1, - 205, 198, 199, 206, -1, - 206, 199, 200, 207, -1, - 207, 200, 201, 208, -1, - 208, 201, 202, 209, -1, - 210, 203, 204, 211, -1, - 211, 204, 205, 212, -1, - 212, 205, 206, 213, -1, - 213, 206, 207, 214, -1, - 214, 207, 208, 215, -1, - 215, 208, 209, 216, -1, - 217, 210, 211, 218, -1, - 218, 211, 212, 219, -1, - 219, 212, 213, 220, -1, - 220, 213, 214, 221, -1, - 221, 214, 215, 222, -1, - 222, 215, 216, 223, -1, - 224, 217, 218, 225, -1, - 225, 218, 219, 226, -1, - 226, 219, 220, 227, -1, - 227, 220, 221, 228, -1, - 228, 221, 222, 229, -1, - 229, 222, 223, 230, -1, - 231, 224, 225, 232, -1, - 232, 225, 226, 233, -1, - 233, 226, 227, 234, -1, - 234, 227, 228, 235, -1, - 235, 228, 229, 236, -1, - 236, 229, 230, 237, -1, - 238, 231, 232, 239, -1, - 239, 232, 233, 240, -1, - 240, 233, 234, 241, -1, - 241, 234, 235, 242, -1, - 242, 235, 236, 243, -1, - 243, 236, 237, 244, -1, - 245, 238, 239, 246, -1, - 246, 239, 240, 247, -1, - 247, 240, 241, 248, -1, - 248, 241, 242, 249, -1, - 249, 242, 243, 250, -1, - 250, 243, 244, 251, -1, - 252, 245, 246, 253, -1, - 253, 246, 247, 254, -1, - 254, 247, 248, 255, -1, - 255, 248, 249, 256, -1, - 256, 249, 250, 257, -1, - 257, 250, 251, 258, -1, - 259, 252, 253, 260, -1, - 260, 253, 254, 261, -1, - 261, 254, 255, 262, -1, - 262, 255, 256, 263, -1, - 263, 256, 257, 264, -1, - 264, 257, 258, 265, -1, - 266, 259, 260, 267, -1, - 267, 260, 261, 268, -1, - 268, 261, 262, 269, -1, - 269, 262, 263, 270, -1, - 270, 263, 264, 271, -1, - 271, 264, 265, 272, -1, - 273, 266, 267, 274, -1, - 274, 267, 268, 275, -1, - 275, 268, 269, 276, -1, - 276, 269, 270, 277, -1, - 277, 270, 271, 278, -1, - 278, 271, 272, 279, -1, - 280, 273, 274, 281, -1, - 281, 274, 275, 282, -1, - 282, 275, 276, 283, -1, - 283, 276, 277, 284, -1, - 284, 277, 278, 285, -1, - 285, 278, 279, 286, -1, - 287, 280, 281, 288, -1, - 288, 281, 282, 289, -1, - 289, 282, 283, 290, -1, - 290, 283, 284, 291, -1, - 291, 284, 285, 292, -1, - 292, 285, 286, 293, -1, - 294, 287, 288, 295, -1, - 295, 288, 289, 296, -1, - 296, 289, 290, 297, -1, - 297, 290, 291, 298, -1, - 298, 291, 292, 299, -1, - 299, 292, 293, 300, -1, - 301, 294, 295, 302, -1, - 302, 295, 296, 303, -1, - 303, 296, 297, 304, -1, - 304, 297, 298, 305, -1, - 305, 298, 299, 306, -1, - 306, 299, 300, 307, -1, - 308, 301, 302, 309, -1, - 309, 302, 303, 310, -1, - 310, 303, 304, 311, -1, - 311, 304, 305, 312, -1, - 312, 305, 306, 313, -1, - 313, 306, 307, 314, -1, - 315, 308, 309, 316, -1, - 316, 309, 310, 317, -1, - 317, 310, 311, 318, -1, - 318, 311, 312, 319, -1, - 319, 312, 313, 320, -1, - 320, 313, 314, 321, -1, - 322, 315, 316, 323, -1, - 323, 316, 317, 324, -1, - 324, 317, 318, 325, -1, - 325, 318, 319, 326, -1, - 326, 319, 320, 327, -1, - 327, 320, 321, 328, -1, - 329, 322, 323, 330, -1, - 330, 323, 324, 331, -1, - 331, 324, 325, 332, -1, - 332, 325, 326, 333, -1, - 333, 326, 327, 334, -1, - 334, 327, 328, 335, -1, - 168, 329, 330, 169, -1, - 169, 330, 331, 170, -1, - 170, 331, 332, 171, -1, - 171, 332, 333, 172, -1, - 172, 333, 334, 173, -1, - 173, 334, 335, 174, -1, - 0, 168, 175, 7, -1, - 13, 181, 174, 6, -1, - 7, 175, 182, 14, -1, - 20, 188, 181, 13, -1, - 14, 182, 189, 21, -1, - 27, 195, 188, 20, -1, - 21, 189, 196, 28, -1, - 34, 202, 195, 27, -1, - 28, 196, 203, 35, -1, - 41, 209, 202, 34, -1, - 35, 203, 210, 42, -1, - 48, 216, 209, 41, -1, - 42, 210, 217, 49, -1, - 55, 223, 216, 48, -1, - 49, 217, 224, 56, -1, - 62, 230, 223, 55, -1, - 56, 224, 231, 63, -1, - 69, 237, 230, 62, -1, - 63, 231, 238, 70, -1, - 76, 244, 237, 69, -1, - 70, 238, 245, 77, -1, - 83, 251, 244, 76, -1, - 77, 245, 252, 84, -1, - 90, 258, 251, 83, -1, - 84, 252, 259, 91, -1, - 97, 265, 258, 90, -1, - 91, 259, 266, 98, -1, - 104, 272, 265, 97, -1, - 98, 266, 273, 105, -1, - 111, 279, 272, 104, -1, - 105, 273, 280, 112, -1, - 118, 286, 279, 111, -1, - 112, 280, 287, 119, -1, - 125, 293, 286, 118, -1, - 119, 287, 294, 126, -1, - 132, 300, 293, 125, -1, - 126, 294, 301, 133, -1, - 139, 307, 300, 132, -1, - 133, 301, 308, 140, -1, - 146, 314, 307, 139, -1, - 140, 308, 315, 147, -1, - 153, 321, 314, 146, -1, - 147, 315, 322, 154, -1, - 160, 328, 321, 153, -1, - 154, 322, 329, 161, -1, - 167, 335, 328, 160, -1, - 161, 329, 168, 0, -1, - 6, 174, 335, 167, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4trap.wrl b/environments/g4py/tests/gtest05/vrml/g4trap.wrl deleted file mode 100644 index f382e3a649..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4trap.wrl +++ /dev/null @@ -1,102 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - -588.082 -419.033 -600, - 11.9181 -419.033 -600, - 252.98 380.967 -600, - -547.02 380.967 -600, - 89.3388 -140.967 600, - 289.339 -140.967 600, - 385.763 179.033 600, - 105.763 179.033 600, - ] - } - coordIndex [ - 0, 3, 2, 1, -1, - 4, 7, 3, 0, -1, - 7, 6, 2, 3, -1, - 6, 5, 1, 2, -1, - 5, 4, 0, 1, -1, - 4, 5, 6, 7, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4trd.wrl b/environments/g4py/tests/gtest05/vrml/g4trd.wrl deleted file mode 100644 index c21a8e1a6f..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4trd.wrl +++ /dev/null @@ -1,102 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - -300 -400 -600, - 300 -400 -600, - 300 400 -600, - -300 400 -600, - -100 -150 600, - 100 -150 600, - 100 150 600, - -100 150 600, - ] - } - coordIndex [ - 0, 3, 2, 1, -1, - 4, 7, 3, 0, -1, - 7, 6, 2, 3, -1, - 6, 5, 1, 2, -1, - 5, 4, 0, 1, -1, - 4, 5, 6, 7, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4tubs.wrl b/environments/g4py/tests/gtest05/vrml/g4tubs.wrl deleted file mode 100644 index 5e574c1088..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4tubs.wrl +++ /dev/null @@ -1,190 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 1 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - 150 0 200, - 144.889 38.8229 200, - 129.904 75 200, - 106.066 106.066 200, - 75 129.904 200, - 38.8229 144.889 200, - 9.18485e-15 150 200, - -38.8229 144.889 200, - -75 129.904 200, - -106.066 106.066 200, - -129.904 75 200, - -144.889 38.8229 200, - -150 1.83697e-14 200, - 150 0 -200, - 144.889 38.8229 -200, - 129.904 75 -200, - 106.066 106.066 -200, - 75 129.904 -200, - 38.8229 144.889 -200, - 9.18485e-15 150 -200, - -38.8229 144.889 -200, - -75 129.904 -200, - -106.066 106.066 -200, - -129.904 75 -200, - -144.889 38.8229 -200, - -150 1.83697e-14 -200, - 100 0 200, - 96.5926 25.8819 200, - 86.6025 50 200, - 70.7107 70.7107 200, - 50 86.6025 200, - 25.8819 96.5926 200, - 6.12323e-15 100 200, - -25.8819 96.5926 200, - -50 86.6025 200, - -70.7107 70.7107 200, - -86.6025 50 200, - -96.5926 25.8819 200, - -100 1.22465e-14 200, - 100 0 -200, - 96.5926 25.8819 -200, - 86.6025 50 -200, - 70.7107 70.7107 -200, - 50 86.6025 -200, - 25.8819 96.5926 -200, - 6.12323e-15 100 -200, - -25.8819 96.5926 -200, - -50 86.6025 -200, - -70.7107 70.7107 -200, - -86.6025 50 -200, - -96.5926 25.8819 -200, - -100 1.22465e-14 -200, - ] - } - coordIndex [ - 0, 13, 14, 1, -1, - 1, 14, 15, 2, -1, - 2, 15, 16, 3, -1, - 3, 16, 17, 4, -1, - 4, 17, 18, 5, -1, - 5, 18, 19, 6, -1, - 6, 19, 20, 7, -1, - 7, 20, 21, 8, -1, - 8, 21, 22, 9, -1, - 9, 22, 23, 10, -1, - 10, 23, 24, 11, -1, - 11, 24, 25, 12, -1, - 39, 26, 27, 40, -1, - 40, 27, 28, 41, -1, - 41, 28, 29, 42, -1, - 42, 29, 30, 43, -1, - 43, 30, 31, 44, -1, - 44, 31, 32, 45, -1, - 45, 32, 33, 46, -1, - 46, 33, 34, 47, -1, - 47, 34, 35, 48, -1, - 48, 35, 36, 49, -1, - 49, 36, 37, 50, -1, - 50, 37, 38, 51, -1, - 26, 0, 1, 27, -1, - 27, 1, 2, 28, -1, - 28, 2, 3, 29, -1, - 29, 3, 4, 30, -1, - 30, 4, 5, 31, -1, - 31, 5, 6, 32, -1, - 32, 6, 7, 33, -1, - 33, 7, 8, 34, -1, - 34, 8, 9, 35, -1, - 35, 9, 10, 36, -1, - 36, 10, 11, 37, -1, - 37, 11, 12, 38, -1, - 13, 39, 40, 14, -1, - 14, 40, 41, 15, -1, - 15, 41, 42, 16, -1, - 16, 42, 43, 17, -1, - 17, 43, 44, 18, -1, - 18, 44, 45, 19, -1, - 19, 45, 46, 20, -1, - 20, 46, 47, 21, -1, - 21, 47, 48, 22, -1, - 22, 48, 49, 23, -1, - 23, 49, 50, 24, -1, - 24, 50, 51, 25, -1, - 0, 26, 39, 13, -1, - 25, 51, 38, 12, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4twistedbox.wrl b/environments/g4py/tests/gtest05/vrml/g4twistedbox.wrl deleted file mode 100644 index 085b2c147e..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4twistedbox.wrl +++ /dev/null @@ -1,198 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 1 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - -393.305 -308.725 -600, - -200.12 -360.488 -600, - -6.93504 -412.252 -600, - 186.25 -464.016 -600, - -324.287 -51.1444 -600, - -131.102 -102.908 -600, - 62.0834 -154.672 -600, - 255.269 -206.436 -600, - -255.269 206.436 -600, - -62.0834 154.672 -600, - 131.102 102.908 -600, - 324.287 51.1444 -600, - -186.25 464.016 -600, - 6.93504 412.252 -600, - 200.12 360.488 -600, - 393.305 308.725 -600, - -186.25 -464.016 600, - 6.93504 -412.252 600, - 200.12 -360.488 600, - 393.305 -308.725 600, - -255.269 -206.436 600, - -62.0834 -154.672 600, - 131.102 -102.908 600, - 324.287 -51.1444 600, - -324.287 51.1444 600, - -131.102 102.908 600, - 62.0834 154.672 600, - 255.269 206.436 600, - -393.305 308.725 600, - -200.12 360.488 600, - -6.93504 412.252 600, - 186.25 464.016 600, - -333.721 -372.331 -200, - -134.482 -389.762 -200, - 64.7572 -407.193 -200, - 263.996 -424.625 -200, - 287.238 -158.973 -200, - 310.479 106.679 -200, - 333.721 372.331 -200, - 134.482 389.762 -200, - -64.7572 407.193 -200, - -263.996 424.625 -200, - -287.238 158.973 -200, - -310.479 -106.679 -200, - -263.996 -424.625 200, - -64.7572 -407.193 200, - 134.482 -389.762 200, - 333.721 -372.331 200, - 310.479 -106.679 200, - 287.238 158.973 200, - 263.996 424.625 200, - 64.7572 407.193 200, - -134.482 389.762 200, - -333.721 372.331 200, - -310.479 106.679 200, - -287.238 -158.973 200, - ] - } - coordIndex [ - 0, 4, 5, 1, -1, - 1, 5, 6, 2, -1, - 2, 6, 7, 3, -1, - 4, 8, 9, 5, -1, - 5, 9, 10, 6, -1, - 6, 10, 11, 7, -1, - 8, 12, 13, 9, -1, - 9, 13, 14, 10, -1, - 10, 14, 15, 11, -1, - 16, 17, 21, 20, -1, - 17, 18, 22, 21, -1, - 18, 19, 23, 22, -1, - 20, 21, 25, 24, -1, - 21, 22, 26, 25, -1, - 22, 23, 27, 26, -1, - 24, 25, 29, 28, -1, - 25, 26, 30, 29, -1, - 26, 27, 31, 30, -1, - 0, 1, 33, 32, -1, - 1, 2, 34, 33, -1, - 2, 3, 35, 34, -1, - 32, 33, 45, 44, -1, - 33, 34, 46, 45, -1, - 34, 35, 47, 46, -1, - 44, 45, 17, 16, -1, - 45, 46, 18, 17, -1, - 46, 47, 19, 18, -1, - 3, 7, 36, 35, -1, - 7, 11, 37, 36, -1, - 11, 15, 38, 37, -1, - 35, 36, 48, 47, -1, - 36, 37, 49, 48, -1, - 37, 38, 50, 49, -1, - 47, 48, 23, 19, -1, - 48, 49, 27, 23, -1, - 49, 50, 31, 27, -1, - 15, 14, 39, 38, -1, - 14, 13, 40, 39, -1, - 13, 12, 41, 40, -1, - 38, 39, 51, 50, -1, - 39, 40, 52, 51, -1, - 40, 41, 53, 52, -1, - 50, 51, 30, 31, -1, - 51, 52, 29, 30, -1, - 52, 53, 28, 29, -1, - 12, 8, 42, 41, -1, - 8, 4, 43, 42, -1, - 4, 0, 32, 43, -1, - 41, 42, 54, 53, -1, - 42, 43, 55, 54, -1, - 43, 32, 44, 55, -1, - 53, 54, 24, 28, -1, - 54, 55, 20, 24, -1, - 55, 44, 16, 20, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4twistedtrap.wrl b/environments/g4py/tests/gtest05/vrml/g4twistedtrap.wrl deleted file mode 100644 index 65b84140fa..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4twistedtrap.wrl +++ /dev/null @@ -1,198 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - -678.984 -309.503 -600, - -485.799 -361.267 -600, - -292.614 -413.031 -600, - -99.4285 -464.795 -600, - -596.745 -55.4654 -600, - -382.095 -112.981 -600, - -167.444 -170.496 -600, - 47.2058 -228.011 -600, - -514.506 198.572 -600, - -278.39 135.305 -600, - -42.2752 72.0385 -600, - 193.84 8.77163 -600, - -432.266 452.61 -600, - -174.686 383.592 -600, - 82.8941 314.573 -600, - 340.474 245.555 -600, - 135.119 -168.699 600, - 199.514 -151.444 600, - 263.909 -134.189 600, - 328.304 -116.935 600, - 112.8 -64.2496 600, - 185.781 -44.6944 600, - 258.762 -25.1391 600, - 331.743 -5.58392 600, - 90.4805 40.1995 600, - 172.048 62.0553 600, - 253.615 83.9112 600, - 335.182 105.767 600, - 68.1615 144.649 600, - 158.315 168.805 600, - 248.468 192.961 600, - 338.621 217.118 600, - -389.062 -299.873 -200, - -234.099 -313.43 -200, - -79.135 -326.988 -200, - 75.8286 -340.545 -200, - 158.46 -133.626 -200, - 241.092 73.2925 -200, - 323.724 280.211 -200, - 115.63 298.417 -200, - -92.4643 316.623 -200, - -300.558 334.829 -200, - -330.06 123.262 -200, - -359.561 -88.3055 -200, - -114.755 -250.957 200, - -4.06717 -241.273 200, - 106.621 -231.589 200, - 217.309 -221.905 200, - 251.393 -58.3115 200, - 285.477 105.282 200, - 319.561 268.875 200, - 169.025 255.705 200, - 18.4891 242.534 200, - -132.047 229.364 200, - -126.283 69.2572 200, - -120.519 -90.8497 200, - ] - } - coordIndex [ - 0, 4, 5, 1, -1, - 1, 5, 6, 2, -1, - 2, 6, 7, 3, -1, - 4, 8, 9, 5, -1, - 5, 9, 10, 6, -1, - 6, 10, 11, 7, -1, - 8, 12, 13, 9, -1, - 9, 13, 14, 10, -1, - 10, 14, 15, 11, -1, - 16, 17, 21, 20, -1, - 17, 18, 22, 21, -1, - 18, 19, 23, 22, -1, - 20, 21, 25, 24, -1, - 21, 22, 26, 25, -1, - 22, 23, 27, 26, -1, - 24, 25, 29, 28, -1, - 25, 26, 30, 29, -1, - 26, 27, 31, 30, -1, - 0, 1, 33, 32, -1, - 1, 2, 34, 33, -1, - 2, 3, 35, 34, -1, - 32, 33, 45, 44, -1, - 33, 34, 46, 45, -1, - 34, 35, 47, 46, -1, - 44, 45, 17, 16, -1, - 45, 46, 18, 17, -1, - 46, 47, 19, 18, -1, - 3, 7, 36, 35, -1, - 7, 11, 37, 36, -1, - 11, 15, 38, 37, -1, - 35, 36, 48, 47, -1, - 36, 37, 49, 48, -1, - 37, 38, 50, 49, -1, - 47, 48, 23, 19, -1, - 48, 49, 27, 23, -1, - 49, 50, 31, 27, -1, - 15, 14, 39, 38, -1, - 14, 13, 40, 39, -1, - 13, 12, 41, 40, -1, - 38, 39, 51, 50, -1, - 39, 40, 52, 51, -1, - 40, 41, 53, 52, -1, - 50, 51, 30, 31, -1, - 51, 52, 29, 30, -1, - 52, 53, 28, 29, -1, - 12, 8, 42, 41, -1, - 8, 4, 43, 42, -1, - 4, 0, 32, 43, -1, - 41, 42, 54, 53, -1, - 42, 43, 55, 54, -1, - 43, 32, 44, 55, -1, - 53, 54, 24, 28, -1, - 54, 55, 20, 24, -1, - 55, 44, 16, 20, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4twistedtrd.wrl b/environments/g4py/tests/gtest05/vrml/g4twistedtrd.wrl deleted file mode 100644 index 2920326f90..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4twistedtrd.wrl +++ /dev/null @@ -1,198 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - -393.305 -308.725 -600, - -200.12 -360.488 -600, - -6.93504 -412.252 -600, - 186.25 -464.016 -600, - -324.287 -51.1444 -600, - -131.102 -102.908 -600, - 62.0834 -154.672 -600, - 255.269 -206.436 -600, - -255.269 206.436 -600, - -62.0834 154.672 -600, - 131.102 102.908 -600, - 324.287 51.1444 -600, - -186.25 464.016 -600, - 6.93504 412.252 -600, - 200.12 360.488 -600, - 393.305 308.725 -600, - -57.7697 -170.771 600, - 6.62533 -153.516 600, - 71.0204 -136.262 600, - 135.415 -119.007 600, - -83.6516 -74.1782 600, - -19.2566 -56.9236 600, - 45.1385 -39.669 600, - 109.534 -22.4144 600, - -109.534 22.4144 600, - -45.1385 39.669 600, - 19.2566 56.9236 600, - 83.6516 74.1782 600, - -135.415 119.007 600, - -71.0204 136.262 600, - -6.62533 153.516 600, - 57.7697 170.771 600, - -260.045 -295.125 -200, - -105.081 -308.683 -200, - 49.8825 -322.24 -200, - 204.846 -335.798 -200, - 223.246 -125.49 -200, - 241.645 84.8175 -200, - 260.045 295.125 -200, - 105.081 308.683 -200, - -49.8825 322.24 -200, - -204.846 335.798 -200, - -223.246 125.49 -200, - -241.645 -84.8175 -200, - -145.696 -246.971 200, - -35.0078 -237.287 200, - 75.6805 -227.603 200, - 186.369 -217.919 200, - 172.811 -62.9559 200, - 159.254 92.0078 200, - 145.696 246.971 200, - 35.0078 237.287 200, - -75.6805 227.603 200, - -186.369 217.919 200, - -172.811 62.9559 200, - -159.254 -92.0078 200, - ] - } - coordIndex [ - 0, 4, 5, 1, -1, - 1, 5, 6, 2, -1, - 2, 6, 7, 3, -1, - 4, 8, 9, 5, -1, - 5, 9, 10, 6, -1, - 6, 10, 11, 7, -1, - 8, 12, 13, 9, -1, - 9, 13, 14, 10, -1, - 10, 14, 15, 11, -1, - 16, 17, 21, 20, -1, - 17, 18, 22, 21, -1, - 18, 19, 23, 22, -1, - 20, 21, 25, 24, -1, - 21, 22, 26, 25, -1, - 22, 23, 27, 26, -1, - 24, 25, 29, 28, -1, - 25, 26, 30, 29, -1, - 26, 27, 31, 30, -1, - 0, 1, 33, 32, -1, - 1, 2, 34, 33, -1, - 2, 3, 35, 34, -1, - 32, 33, 45, 44, -1, - 33, 34, 46, 45, -1, - 34, 35, 47, 46, -1, - 44, 45, 17, 16, -1, - 45, 46, 18, 17, -1, - 46, 47, 19, 18, -1, - 3, 7, 36, 35, -1, - 7, 11, 37, 36, -1, - 11, 15, 38, 37, -1, - 35, 36, 48, 47, -1, - 36, 37, 49, 48, -1, - 37, 38, 50, 49, -1, - 47, 48, 23, 19, -1, - 48, 49, 27, 23, -1, - 49, 50, 31, 27, -1, - 15, 14, 39, 38, -1, - 14, 13, 40, 39, -1, - 13, 12, 41, 40, -1, - 38, 39, 51, 50, -1, - 39, 40, 52, 51, -1, - 40, 41, 53, 52, -1, - 50, 51, 30, 31, -1, - 51, 52, 29, 30, -1, - 52, 53, 28, 29, -1, - 12, 8, 42, 41, -1, - 8, 4, 43, 42, -1, - 4, 0, 32, 43, -1, - 41, 42, 54, 53, -1, - 42, 43, 55, 54, -1, - 43, 32, 44, 55, -1, - 53, 54, 24, 28, -1, - 54, 55, 20, 24, -1, - 55, 44, 16, 20, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest05/vrml/g4twistedtubs.wrl b/environments/g4py/tests/gtest05/vrml/g4twistedtubs.wrl deleted file mode 100644 index 017efc4bef..0000000000 --- a/environments/g4py/tests/gtest05/vrml/g4twistedtubs.wrl +++ /dev/null @@ -1,566 +0,0 @@ -#VRML V2.0 utf8 -# Generated by VRML 2.0 driver of GEANT4 - - -#---------- CAMERA -Viewpoint { - position 0 0 452.607 -} - -#---------- SOLID: dummy.0 - Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 1 - transparency 0.7 - } - } - geometry IndexedFaceSet { - coord Coordinate { - point [ - 25.8819 -96.5926 -200, - 46.7269 -88.4115 -200, - 65.2287 -75.7972 -200, - 80.4598 -59.382 -200, - 91.6562 -39.9892 -200, - 98.2566 -18.5912 -200, - 99.9301 3.73912 -200, - 96.5926 25.8819 -200, - 27.7306 -103.492 -200, - 50.0645 -94.7266 -200, - 69.8879 -81.2113 -200, - 86.2069 -63.6236 -200, - 98.2031 -42.8456 -200, - 105.275 -19.9191 -200, - 107.068 4.0062 -200, - 103.492 27.7306 -200, - 29.5793 -110.392 -200, - 53.4021 -101.042 -200, - 74.5471 -86.6253 -200, - 91.954 -67.8652 -200, - 104.75 -45.7019 -200, - 112.293 -21.247 -200, - 114.206 4.27328 -200, - 110.392 29.5793 -200, - 31.428 -117.291 -200, - 56.7398 -107.357 -200, - 79.2063 -92.0394 -200, - 97.7012 -72.1067 -200, - 111.297 -48.5583 -200, - 119.312 -22.575 -200, - 121.344 4.54036 -200, - 117.291 31.428 -200, - 33.2767 -124.19 -200, - 60.0774 -113.672 -200, - 83.8655 -97.4535 -200, - 103.448 -76.3483 -200, - 117.844 -51.4147 -200, - 126.33 -23.9029 -200, - 128.482 4.80744 -200, - 124.19 33.2767 -200, - 35.1254 -131.09 -200, - 63.415 -119.987 -200, - 88.5247 -102.868 -200, - 109.195 -80.5899 -200, - 124.391 -54.2711 -200, - 133.348 -25.2309 -200, - 135.619 5.07452 -200, - 131.09 35.1254 -200, - 36.9741 -137.989 -200, - 66.7527 -126.302 -200, - 93.1839 -108.282 -200, - 114.943 -84.8315 -200, - 130.937 -57.1274 -200, - 140.367 -26.5588 -200, - 142.757 5.3416 -200, - 137.989 36.9741 -200, - 38.8229 -144.889 -200, - 70.0903 -132.617 -200, - 97.8431 -113.696 -200, - 120.69 -89.073 -200, - 137.484 -59.9838 -200, - 147.385 -27.8867 -200, - 149.895 5.60868 -200, - 144.889 38.8229 -200, - 96.5926 -25.8819 200, - 99.9301 -3.73912 200, - 98.2566 18.5912 200, - 91.6562 39.9892 200, - 80.4598 59.382 200, - 65.2287 75.7972 200, - 46.7269 88.4115 200, - 25.8819 96.5926 200, - 103.492 -27.7306 200, - 107.068 -4.0062 200, - 105.275 19.9191 200, - 98.2031 42.8456 200, - 86.2069 63.6236 200, - 69.8879 81.2113 200, - 50.0645 94.7266 200, - 27.7306 103.492 200, - 110.392 -29.5793 200, - 114.206 -4.27328 200, - 112.293 21.247 200, - 104.75 45.7019 200, - 91.954 67.8652 200, - 74.5471 86.6253 200, - 53.4021 101.042 200, - 29.5793 110.392 200, - 117.291 -31.428 200, - 121.344 -4.54036 200, - 119.312 22.575 200, - 111.297 48.5583 200, - 97.7012 72.1067 200, - 79.2063 92.0394 200, - 56.7398 107.357 200, - 31.428 117.291 200, - 124.19 -33.2767 200, - 128.482 -4.80744 200, - 126.33 23.9029 200, - 117.844 51.4147 200, - 103.448 76.3483 200, - 83.8655 97.4535 200, - 60.0774 113.672 200, - 33.2767 124.19 200, - 131.09 -35.1254 200, - 135.619 -5.07452 200, - 133.348 25.2309 200, - 124.391 54.2711 200, - 109.195 80.5899 200, - 88.5247 102.868 200, - 63.415 119.987 200, - 35.1254 131.09 200, - 137.989 -36.9741 200, - 142.757 -5.3416 200, - 140.367 26.5588 200, - 130.937 57.1274 200, - 114.943 84.8315 200, - 93.1839 108.282 200, - 66.7527 126.302 200, - 36.9741 137.989 200, - 144.889 -38.8229 200, - 149.895 -5.60868 200, - 147.385 27.8867 200, - 137.484 59.9838 200, - 120.69 89.073 200, - 97.8431 113.696 200, - 70.0903 132.617 200, - 38.8229 144.889 200, - 40.024 -82.4504 -120, - 57.3675 -71.4771 -120, - 71.8343 -56.9195 -120, - 82.6991 -39.5078 -120, - 89.4169 -20.115 -120, - 91.6511 0.286506 -120, - 89.2894 20.6736 -120, - 82.4504 40.024 -120, - 88.3398 42.8829 -120, - 94.2291 45.7418 -120, - 100.118 48.6006 -120, - 106.008 51.4595 -120, - 111.897 54.3183 -120, - 117.786 57.1772 -120, - 123.676 60.0361 -120, - 133.934 31.0104 -120, - 137.477 0.429759 -120, - 134.125 -30.1724 -120, - 124.049 -59.2617 -120, - 107.751 -85.3793 -120, - 86.0513 -107.216 -120, - 60.0361 -123.676 -120, - 57.1772 -117.786 -120, - 54.3183 -111.897 -120, - 51.4595 -106.008 -120, - 48.6006 -100.118 -120, - 45.7418 -94.2291 -120, - 42.8829 -88.3398 -120, - 54.1662 -68.3083 -40, - 68.0081 -54.5426 -40, - 78.4399 -38.0418 -40, - 84.9384 -19.6335 -40, - 87.1776 -0.240714 -40, - 85.0455 19.1642 -40, - 78.6488 37.6081 -40, - 68.3083 54.1662 -40, - 73.1875 58.0352 -40, - 78.0666 61.9042 -40, - 82.9458 65.7732 -40, - 87.825 69.6422 -40, - 92.7041 73.5112 -40, - 97.5833 77.3803 -40, - 102.462 81.2493 -40, - 117.973 56.4121 -40, - 127.568 28.7463 -40, - 130.766 -0.361071 -40, - 127.408 -29.4503 -40, - 117.66 -57.0628 -40, - 102.012 -81.8139 -40, - 81.2493 -102.462 -40, - 77.3803 -97.5833 -40, - 73.5112 -92.7041 -40, - 69.6422 -87.825 -40, - 65.7732 -82.9458 -40, - 61.9042 -78.0666 -40, - 58.0352 -73.1875 -40, - 68.3083 -54.1662 40, - 78.6488 -37.6081 40, - 85.0455 -19.1642 40, - 87.1776 0.240714 40, - 84.9384 19.6335 40, - 78.4399 38.0418 40, - 68.0081 54.5426 40, - 54.1662 68.3083 40, - 58.0352 73.1875 40, - 61.9042 78.0666 40, - 65.7732 82.9458 40, - 69.6422 87.825 40, - 73.5112 92.7041 40, - 77.3803 97.5833 40, - 81.2493 102.462 40, - 102.012 81.8139 40, - 117.66 57.0628 40, - 127.408 29.4503 40, - 130.766 0.361071 40, - 127.568 -28.7463 40, - 117.973 -56.4121 40, - 102.462 -81.2493 40, - 97.5833 -77.3803 40, - 92.7041 -73.5112 40, - 87.825 -69.6422 40, - 82.9458 -65.7732 40, - 78.0666 -61.9042 40, - 73.1875 -58.0352 40, - 82.4504 -40.024 120, - 89.2894 -20.6736 120, - 91.6511 -0.286506 120, - 89.4169 20.115 120, - 82.6991 39.5078 120, - 71.8343 56.9195 120, - 57.3675 71.4771 120, - 40.024 82.4504 120, - 42.8829 88.3398 120, - 45.7418 94.2291 120, - 48.6006 100.118 120, - 51.4595 106.008 120, - 54.3183 111.897 120, - 57.1772 117.786 120, - 60.0361 123.676 120, - 86.0513 107.216 120, - 107.751 85.3793 120, - 124.049 59.2617 120, - 134.125 30.1724 120, - 137.477 -0.429759 120, - 133.934 -31.0104 120, - 123.676 -60.0361 120, - 117.786 -57.1772 120, - 111.897 -54.3183 120, - 106.008 -51.4595 120, - 100.118 -48.6006 120, - 94.2291 -45.7418 120, - 88.3398 -42.8829 120, - ] - } - coordIndex [ - 0, 1, 9, 8, -1, - 1, 2, 10, 9, -1, - 2, 3, 11, 10, -1, - 3, 4, 12, 11, -1, - 4, 5, 13, 12, -1, - 5, 6, 14, 13, -1, - 6, 7, 15, 14, -1, - 8, 9, 17, 16, -1, - 9, 10, 18, 17, -1, - 10, 11, 19, 18, -1, - 11, 12, 20, 19, -1, - 12, 13, 21, 20, -1, - 13, 14, 22, 21, -1, - 14, 15, 23, 22, -1, - 16, 17, 25, 24, -1, - 17, 18, 26, 25, -1, - 18, 19, 27, 26, -1, - 19, 20, 28, 27, -1, - 20, 21, 29, 28, -1, - 21, 22, 30, 29, -1, - 22, 23, 31, 30, -1, - 24, 25, 33, 32, -1, - 25, 26, 34, 33, -1, - 26, 27, 35, 34, -1, - 27, 28, 36, 35, -1, - 28, 29, 37, 36, -1, - 29, 30, 38, 37, -1, - 30, 31, 39, 38, -1, - 32, 33, 41, 40, -1, - 33, 34, 42, 41, -1, - 34, 35, 43, 42, -1, - 35, 36, 44, 43, -1, - 36, 37, 45, 44, -1, - 37, 38, 46, 45, -1, - 38, 39, 47, 46, -1, - 40, 41, 49, 48, -1, - 41, 42, 50, 49, -1, - 42, 43, 51, 50, -1, - 43, 44, 52, 51, -1, - 44, 45, 53, 52, -1, - 45, 46, 54, 53, -1, - 46, 47, 55, 54, -1, - 48, 49, 57, 56, -1, - 49, 50, 58, 57, -1, - 50, 51, 59, 58, -1, - 51, 52, 60, 59, -1, - 52, 53, 61, 60, -1, - 53, 54, 62, 61, -1, - 54, 55, 63, 62, -1, - 64, 72, 73, 65, -1, - 65, 73, 74, 66, -1, - 66, 74, 75, 67, -1, - 67, 75, 76, 68, -1, - 68, 76, 77, 69, -1, - 69, 77, 78, 70, -1, - 70, 78, 79, 71, -1, - 72, 80, 81, 73, -1, - 73, 81, 82, 74, -1, - 74, 82, 83, 75, -1, - 75, 83, 84, 76, -1, - 76, 84, 85, 77, -1, - 77, 85, 86, 78, -1, - 78, 86, 87, 79, -1, - 80, 88, 89, 81, -1, - 81, 89, 90, 82, -1, - 82, 90, 91, 83, -1, - 83, 91, 92, 84, -1, - 84, 92, 93, 85, -1, - 85, 93, 94, 86, -1, - 86, 94, 95, 87, -1, - 88, 96, 97, 89, -1, - 89, 97, 98, 90, -1, - 90, 98, 99, 91, -1, - 91, 99, 100, 92, -1, - 92, 100, 101, 93, -1, - 93, 101, 102, 94, -1, - 94, 102, 103, 95, -1, - 96, 104, 105, 97, -1, - 97, 105, 106, 98, -1, - 98, 106, 107, 99, -1, - 99, 107, 108, 100, -1, - 100, 108, 109, 101, -1, - 101, 109, 110, 102, -1, - 102, 110, 111, 103, -1, - 104, 112, 113, 105, -1, - 105, 113, 114, 106, -1, - 106, 114, 115, 107, -1, - 107, 115, 116, 108, -1, - 108, 116, 117, 109, -1, - 109, 117, 118, 110, -1, - 110, 118, 119, 111, -1, - 112, 120, 121, 113, -1, - 113, 121, 122, 114, -1, - 114, 122, 123, 115, -1, - 115, 123, 124, 116, -1, - 116, 124, 125, 117, -1, - 117, 125, 126, 118, -1, - 118, 126, 127, 119, -1, - 0, 128, 129, 1, -1, - 1, 129, 130, 2, -1, - 2, 130, 131, 3, -1, - 3, 131, 132, 4, -1, - 4, 132, 133, 5, -1, - 5, 133, 134, 6, -1, - 6, 134, 135, 7, -1, - 128, 156, 157, 129, -1, - 129, 157, 158, 130, -1, - 130, 158, 159, 131, -1, - 131, 159, 160, 132, -1, - 132, 160, 161, 133, -1, - 133, 161, 162, 134, -1, - 134, 162, 163, 135, -1, - 156, 184, 185, 157, -1, - 157, 185, 186, 158, -1, - 158, 186, 187, 159, -1, - 159, 187, 188, 160, -1, - 160, 188, 189, 161, -1, - 161, 189, 190, 162, -1, - 162, 190, 191, 163, -1, - 184, 212, 213, 185, -1, - 185, 213, 214, 186, -1, - 186, 214, 215, 187, -1, - 187, 215, 216, 188, -1, - 188, 216, 217, 189, -1, - 189, 217, 218, 190, -1, - 190, 218, 219, 191, -1, - 212, 64, 65, 213, -1, - 213, 65, 66, 214, -1, - 214, 66, 67, 215, -1, - 215, 67, 68, 216, -1, - 216, 68, 69, 217, -1, - 217, 69, 70, 218, -1, - 218, 70, 71, 219, -1, - 7, 135, 136, 15, -1, - 15, 136, 137, 23, -1, - 23, 137, 138, 31, -1, - 31, 138, 139, 39, -1, - 39, 139, 140, 47, -1, - 47, 140, 141, 55, -1, - 55, 141, 142, 63, -1, - 135, 163, 164, 136, -1, - 136, 164, 165, 137, -1, - 137, 165, 166, 138, -1, - 138, 166, 167, 139, -1, - 139, 167, 168, 140, -1, - 140, 168, 169, 141, -1, - 141, 169, 170, 142, -1, - 163, 191, 192, 164, -1, - 164, 192, 193, 165, -1, - 165, 193, 194, 166, -1, - 166, 194, 195, 167, -1, - 167, 195, 196, 168, -1, - 168, 196, 197, 169, -1, - 169, 197, 198, 170, -1, - 191, 219, 220, 192, -1, - 192, 220, 221, 193, -1, - 193, 221, 222, 194, -1, - 194, 222, 223, 195, -1, - 195, 223, 224, 196, -1, - 196, 224, 225, 197, -1, - 197, 225, 226, 198, -1, - 219, 71, 79, 220, -1, - 220, 79, 87, 221, -1, - 221, 87, 95, 222, -1, - 222, 95, 103, 223, -1, - 223, 103, 111, 224, -1, - 224, 111, 119, 225, -1, - 225, 119, 127, 226, -1, - 63, 142, 143, 62, -1, - 62, 143, 144, 61, -1, - 61, 144, 145, 60, -1, - 60, 145, 146, 59, -1, - 59, 146, 147, 58, -1, - 58, 147, 148, 57, -1, - 57, 148, 149, 56, -1, - 142, 170, 171, 143, -1, - 143, 171, 172, 144, -1, - 144, 172, 173, 145, -1, - 145, 173, 174, 146, -1, - 146, 174, 175, 147, -1, - 147, 175, 176, 148, -1, - 148, 176, 177, 149, -1, - 170, 198, 199, 171, -1, - 171, 199, 200, 172, -1, - 172, 200, 201, 173, -1, - 173, 201, 202, 174, -1, - 174, 202, 203, 175, -1, - 175, 203, 204, 176, -1, - 176, 204, 205, 177, -1, - 198, 226, 227, 199, -1, - 199, 227, 228, 200, -1, - 200, 228, 229, 201, -1, - 201, 229, 230, 202, -1, - 202, 230, 231, 203, -1, - 203, 231, 232, 204, -1, - 204, 232, 233, 205, -1, - 226, 127, 126, 227, -1, - 227, 126, 125, 228, -1, - 228, 125, 124, 229, -1, - 229, 124, 123, 230, -1, - 230, 123, 122, 231, -1, - 231, 122, 121, 232, -1, - 232, 121, 120, 233, -1, - 56, 149, 150, 48, -1, - 48, 150, 151, 40, -1, - 40, 151, 152, 32, -1, - 32, 152, 153, 24, -1, - 24, 153, 154, 16, -1, - 16, 154, 155, 8, -1, - 8, 155, 128, 0, -1, - 149, 177, 178, 150, -1, - 150, 178, 179, 151, -1, - 151, 179, 180, 152, -1, - 152, 180, 181, 153, -1, - 153, 181, 182, 154, -1, - 154, 182, 183, 155, -1, - 155, 183, 156, 128, -1, - 177, 205, 206, 178, -1, - 178, 206, 207, 179, -1, - 179, 207, 208, 180, -1, - 180, 208, 209, 181, -1, - 181, 209, 210, 182, -1, - 182, 210, 211, 183, -1, - 183, 211, 184, 156, -1, - 205, 233, 234, 206, -1, - 206, 234, 235, 207, -1, - 207, 235, 236, 208, -1, - 208, 236, 237, 209, -1, - 209, 237, 238, 210, -1, - 210, 238, 239, 211, -1, - 211, 239, 212, 184, -1, - 233, 120, 112, 234, -1, - 234, 112, 104, 235, -1, - 235, 104, 96, 236, -1, - 236, 96, 88, 237, -1, - 237, 88, 80, 238, -1, - 238, 80, 72, 239, -1, - 239, 72, 64, 212, -1, - ] - solid FALSE - } - } -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 1 0 0 - emissiveColor 1 0 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 100 0 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 1 0 - emissiveColor 0 1 0 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 100 0, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#---------- POLYLINE -Shape { - appearance Appearance { - material Material { - diffuseColor 0 0 1 - emissiveColor 0 0 1 - } - } - geometry IndexedLineSet { - coord Coordinate { - point [ - 0 0 0, - 0 0 100, - ] - } - coordIndex [ - 0, 1, -1 - ] - } -} -#End of file. diff --git a/environments/g4py/tests/gtest06/CMakeLists.txt b/environments/g4py/tests/gtest06/CMakeLists.txt deleted file mode 100644 index 79daaa6852..0000000000 --- a/environments/g4py/tests/gtest06/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -configure_file(test.py test.py) -add_test(NAME geant4py-test06 COMMAND ${PYTHON_EXECUTABLE} test.py) -set_tests_properties(geant4py-test06 PROPERTIES ENVIRONMENT "PYTHONPATH=${GEANT4_PYTHON_OUTPUT_DIR};${GEANT4_TEST_ENVIRONMENT}") diff --git a/environments/g4py/tests/gtest06/jpg/intersection.jpg b/environments/g4py/tests/gtest06/jpg/intersection.jpg deleted file mode 100644 index 4d63759d67..0000000000 Binary files a/environments/g4py/tests/gtest06/jpg/intersection.jpg and /dev/null differ diff --git a/environments/g4py/tests/gtest06/jpg/subtraction.jpg b/environments/g4py/tests/gtest06/jpg/subtraction.jpg deleted file mode 100644 index 6e06dbd282..0000000000 Binary files a/environments/g4py/tests/gtest06/jpg/subtraction.jpg and /dev/null differ diff --git a/environments/g4py/tests/gtest06/jpg/union.jpg b/environments/g4py/tests/gtest06/jpg/union.jpg deleted file mode 100644 index 4ff0a7272c..0000000000 Binary files a/environments/g4py/tests/gtest06/jpg/union.jpg and /dev/null differ diff --git a/environments/g4py/tests/gtest06/test.py b/environments/g4py/tests/gtest06/test.py deleted file mode 100755 index aece738511..0000000000 --- a/environments/g4py/tests/gtest06/test.py +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/python3 -# ================================================================== -# python script for Geant4Py test -# -# gtest06 -# - test for constructing/visualizing boolean geoemtries -# ================================================================== -from Geant4 import * -import g4pytest.ExN01pl, g4pytest.ParticleGun - -# ================================================================== -# user actions in python -# ================================================================== -class MyDetectorConstruction(G4VUserDetectorConstruction): - "My Detector Construction" - - def __init__(self): - G4VUserDetectorConstruction.__init__(self) - self.air= gNistManager.FindOrBuildMaterial("G4_AIR") - self.lv_object= None - self.world= self.ConstructWorld() - - self.va_red= G4VisAttributes(G4Color(1.,0.,0.)) - self.va_cyan= G4VisAttributes(G4Color(0.,1.,1.)) - self.va_green= G4VisAttributes(G4Color(0.,1.,0.)) - self.va_blue= G4VisAttributes(G4Color(0.,0.,1.)) - self.va_magenta= G4VisAttributes(G4Color(1.,0.,1.)) - - self.sld_box= G4Box("box",20.*cm, 20.*cm, 20.*cm); - self.sld_cyl= G4Tubs("cylinder",0., 10.*cm, 30.*cm, 0., twopi) - - # ----------------------------------------------------------------- - def ConstructWorld(self): - # Python has automatic garbage collection system. - # Geometry objects must be defined as GLOBAL not to be deleted. - global sld_world, lv_world, pv_world, va_world - - sld_world= G4Box("world", 1.*m, 1.*m, 1.*m) - lv_world= G4LogicalVolume(sld_world, self.air, "world") - pv_world= G4PVPlacement(G4Transform3D(), lv_world, "world", - None, False, 0) - - va_world= G4VisAttributes() - va_world.SetVisibility(False) - lv_world.SetVisAttributes(va_world) - - # solid object (dummy) - global sld_sld, lv_sld, pv_sld - sld_sld= G4Box("dummy", 10.*cm, 10.*cm, 10.*cm) - self.lv_object= lv_sld= G4LogicalVolume(sld_sld, self.air, "dummy") - pv_sld= G4PVPlacement(None, G4ThreeVector(), "dummy", lv_sld, - pv_world, False, 0) - - return pv_world - - # ----------------------------------------------------------------- - def ConstructUnion(self): - global sld_union - sld_union= G4UnionSolid("box+cylinder", self.sld_box, self.sld_cyl); - - self.lv_object.SetSolid(sld_union) - self.lv_object.SetVisAttributes(self.va_blue) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructIntersection(self): - offset= G4ThreeVector(20.*cm, 20.*cm, 0.) - global sld_intersection - sld_intersection= G4IntersectionSolid("box*cylinder", - self.sld_box, self.sld_cyl, - None, offset) - - self.lv_object.SetSolid(sld_intersection) - self.lv_object.SetVisAttributes(self.va_magenta) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def ConstructSubtraction(self): - global sld_subtraction - sld_subtraction= G4SubtractionSolid("box-cylinder", - self.sld_box, self.sld_cyl) - - self.lv_object.SetSolid(sld_subtraction) - self.lv_object.SetVisAttributes(self.va_red) - gRunManager.GeometryHasBeenModified() - - # ----------------------------------------------------------------- - def Construct(self): # return the world volume - return self.world - -# ================================================================== -# main -# ================================================================== -# set geometry -myDC= MyDetectorConstruction() -gRunManager.SetUserInitialization(myDC) - -# minimal physics list -g4pytest.ExN01pl.Construct() - -# set primary generator action -g4pytest.ParticleGun.Construct() - -# initialize -gRunManager.Initialize() - -# visualization -gApplyUICommand("/vis/open RayTracer") -gApplyUICommand("/vis/rayTracer/headAngle 40.") -gApplyUICommand("/vis/rayTracer/eyePosition 100 100 150 cm") - -# create a vrml file for each solid type -f_list= ( - ("union", myDC.ConstructUnion), - ("intersection", myDC.ConstructIntersection), - ("subtraction", myDC.ConstructSubtraction) - ) - -for s,f in f_list: - f.__call__() - fname= "%s.jpg" % (s) - cmdstr= "/vis/rayTracer/trace " + fname - # This causes a segfault in MT mode... - gApplyUICommand(cmdstr) - -gTerminate() diff --git a/environments/g4py/tests/gtest07/CMakeLists.txt b/environments/g4py/tests/gtest07/CMakeLists.txt deleted file mode 100644 index 9c2ab0ab05..0000000000 --- a/environments/g4py/tests/gtest07/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -configure_file(test.py test.py) -add_test(NAME geant4py-test07 COMMAND ${PYTHON_EXECUTABLE} test.py) -set_tests_properties(geant4py-test07 PROPERTIES ENVIRONMENT "PYTHONPATH=${GEANT4_PYTHON_OUTPUT_DIR};${GEANT4_TEST_ENVIRONMENT}") diff --git a/environments/g4py/tests/gtest07/test.py b/environments/g4py/tests/gtest07/test.py deleted file mode 100755 index de63a7dd87..0000000000 --- a/environments/g4py/tests/gtest07/test.py +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/python3 -# ================================================================== -# python script for Geant4Py test -# -# gtest07 -# - test for checking overlapped geometries -# ================================================================== -from Geant4 import * -import g4pytest.ExN01pl, g4pytest.ParticleGun - -# ================================================================== -# user actions in python -# ================================================================== -class MyDetectorConstruction(G4VUserDetectorConstruction): - "My Detector Construction" - - def __init__(self): - G4VUserDetectorConstruction.__init__(self) - - # ----------------------------------------------------------------- - def Construct(self): - # Python has automatic garbage collection system. - # Geometry objects must be defined as GLOBAL not to be deleted. - air= gNistManager.FindOrBuildMaterial("G4_AIR") - - # world volume - global sld_world, lv_world, pv_world - sld_world= G4Box("world", 1.*m, 1.*m, 1.*m) - lv_world= G4LogicalVolume(sld_world, air, "world") - pv_world= G4PVPlacement(G4Transform3D(), lv_world, "world", - None, False, 0) - - # box - global sld_box, lv_box, pv_box - sld_box= G4Box("box", 10.*cm, 10.*cm, 10.*cm); - lv_box= G4LogicalVolume(sld_box, air, "box") - pv_box= G4PVPlacement(None, G4ThreeVector(), "box", lv_box, - pv_world, False, 0, True) - - # cylinder - global sld_cyl, lv_cyl, pv_cyl1, pv_cyl2, pv_cyl3 - sld_cyl= G4Tubs("cylinder",0., 2.*cm, 2.*cm, 0., twopi) - lv_cyl= G4LogicalVolume(sld_cyl, air, "cylinder") - - # - # the following placements are !! overlapped !! - # - # doubly placed - pv_cyl1= G4PVPlacement(None, G4ThreeVector(), "cylinder", lv_cyl, - pv_world, False, 0, True) - - # overlaped - pv_cyl2= G4PVPlacement(None, G4ThreeVector(10.*cm,0.,0.), - "cylinder", lv_cyl, - pv_world, False, 1, True) - - # sticked out - pv_cyl3= G4PVPlacement(None, G4ThreeVector(10.*cm,0.,0.), - "cylinder", lv_cyl, - pv_box, False, 0, True) - - return pv_world - -# ================================================================== -# main -# ================================================================== -# set geometry -myDC= MyDetectorConstruction() -gRunManager.SetUserInitialization(myDC) - -# minimal physics list -g4pytest.ExN01pl.Construct() - -# set primary generator action -g4pytest.ParticleGun.Construct() - -# initialize -gRunManager.Initialize() # overlap should be detected !! - - diff --git a/environments/g4py/tests/gtest08/CMakeLists.txt b/environments/g4py/tests/gtest08/CMakeLists.txt deleted file mode 100644 index aa44ddeaa5..0000000000 --- a/environments/g4py/tests/gtest08/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -configure_file(test.py test.py) -add_test(NAME geant4py-test08 COMMAND ${PYTHON_EXECUTABLE} test.py) -set_tests_properties(geant4py-test08 PROPERTIES ENVIRONMENT "PYTHONPATH=${GEANT4_PYTHON_OUTPUT_DIR};${GEANT4_TEST_ENVIRONMENT}") \ No newline at end of file diff --git a/environments/g4py/tests/gtest08/test.py b/environments/g4py/tests/gtest08/test.py deleted file mode 100755 index 5b03e6a769..0000000000 --- a/environments/g4py/tests/gtest08/test.py +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/python3 -# ================================================================== -# python script for Geant4Py test -# -# gtest09 -# - test for checking use of G4PhysListFactory -# ================================================================== - -from Geant4 import * - -# ================================================================== -# user actions in python -# ================================================================== -class MyDetectorConstruction(G4VUserDetectorConstruction): - "My Detector Construction" - - def __init__(self): - G4VUserDetectorConstruction.__init__(self) - - # ----------------------------------------------------------------- - def Construct(self): - # Python has automatic garbage collection system. - # Geometry objects must be defined as GLOBAL not to be deleted. - air= gNistManager.FindOrBuildMaterial("G4_AIR") - - # world volume - global sld_world, lv_world, pv_world - sld_world= G4Box("world", 1.*m, 1.*m, 1.*m) - lv_world= G4LogicalVolume(sld_world, air, "world") - pv_world= G4PVPlacement(G4Transform3D(), lv_world, "world", - None, False, 0) - - return pv_world - -class MyPrimaryGeneratorAction(G4VUserPrimaryGeneratorAction): - "My Primary Generator Action" - - def __init__(self): - G4VUserPrimaryGeneratorAction.__init__(self) - self.particleGun= G4ParticleGun(1) - - def GeneratePrimaries(self, event): - dx=0. - self.particleGun.SetParticleMomentumDirection(G4ThreeVector(dx, 0., 1.)) - self.particleGun.GeneratePrimaryVertex(event) - -# ================================================================== -# main -# ================================================================== -# set geometry -myDC = MyDetectorConstruction() -gRunManager.SetUserInitialization(myDC) - -# Create physics list -factory = G4PhysListFactory() -myPhysList = factory.GetReferencePhysList("FTFP_BERT") - -if myPhysList is None: - raise RuntimeError("No physics list named FTFP_BERT found") - -gRunManager.SetUserInitialization(myPhysList) - -# Event generator -myGenAction = MyPrimaryGeneratorAction() -myGenAction.particleGun.SetParticleByName("e-") -myGenAction.particleGun.SetParticleEnergy(200.*MeV) -myGenAction.particleGun.SetParticlePosition(G4ThreeVector(0.,0.,-14.9)*cm) - -gRunManager.SetUserAction(myGenAction) - -# Init, run terminate -gRunManager.Initialize() -gRunManager.BeamOn(10) -gTerminate() diff --git a/environments/zmq/CMakeLists.txt b/environments/zmq/CMakeLists.txt deleted file mode 100644 index 6da2ec897e..0000000000 --- a/environments/zmq/CMakeLists.txt +++ /dev/null @@ -1,99 +0,0 @@ -# -# CMakeLists.txt for buidlig zmq-geant4 -# -# Copyright 2017 Koichi Murakami -# -# *************************** -# !! DONOT EDIT THIS FILE !! -# *************************** -# -cmake_minimum_required(VERSION 3.3) -include(config.cmake) -#============================================================================== -project(ZMQ-GEANT4) -#============================================================================== - -# version.h generation (true for release) -if(DEVMODE) - set(SKIP_VERSION FALSE) -else() - set(SKIP_VERSION TRUE) -endif() - -# static / shared library -#set (LIBRARY_TYPE "STATIC") - -# cmake modules -set(CMAKE_MODULE_PATH - ${PROJECT_SOURCE_DIR}/cmake/Modules - ${CMAKE_MODULE_PATH}) - -# library path (lib or lib64) -if(NOT DEFINED CMAKE_INSTALL_LIBDIR) - set(_LIBDIR_DEFAULT "lib") - if(CMAKE_SYSTEM_NAME MATCHES "Linux" - AND NOT EXISTS "/etc/debian_version") - if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - set(_LIBDIR_DEFAULT "lib64") - endif() - endif() - set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}") -endif() - -# find packages -find_package(Geant4 REQUIRED) -find_package(ZMQ REQUIRED) - -# c++11 -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -# build options -if(NOT CMAKE_BUILD_TYPE) - if(DEBUG) - set(CMAKE_BUILD_TYPE "Debug") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDEBUG") - elseif(OPTIMIZE) - set(CMAKE_BUILD_TYPE "Release") - else() - set(CMAKE_BUILD_TYPE "RelWithDebInfo") - endif() -endif() - -#------------------------------------------------------------------------------ -# parameters for building -message(STATUS "--------------------------------------------------------") -message(STATUS "Parameters for building") -message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") -message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}") -message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") -message(STATUS "GEANT4_LIBRARY_DIR: ${GEANT4_LIBRARY_DIR}") - -message(STATUS "--------------------------------------------------------") - -#------------------------------------------------------------------------------ -# version.h (#.##d# + rev# / dev flag d/a/b/rc) -#if(NOT SKIP_VERSION) -#set(G4ZMQ_VERSION_MAJOR 1) -#set(G4ZMQ_VERSION_MINOR 0.1) -#execute_process (COMMAND git rev-parse --short HEAD OUTPUT_VARIABLE -# G4ZMQ_VERSION_BUILD OUTPUT_STRIP_TRAILING_WHITESPACE) -#configure_file( -# "${PROJECT_SOURCE_DIR}/cmake/version.h.in" -# "${PROJECT_SOURCE_DIR}/zmq/version.h" -#) -#endif() - -#------------------------------------------------------------------------------ -# adding sub directories to the project -add_subdirectory(zmq) - -# unit tests -if(DEVMODE) -include(CTest) -enable_testing() -#add_subdirectory(tests/ut) -endif() - -# integration tests -#add_subdirectory(tests/it EXCLUDE_FROM_ALL) diff --git a/environments/zmq/History b/environments/zmq/History deleted file mode 100644 index 3768895a99..0000000000 --- a/environments/zmq/History +++ /dev/null @@ -1,19 +0,0 @@ -# Category zmq History - -See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! - - -## 2021-12-10 Ben Morgan (zmq-V11-00-00) -- Change to new Markdown History format - ---- - -# History entries prior to 11.0 - -25 Oct. 2021 B. Morgan - zmq-V10-07-00 -- Use G4StrUtil functions replacing deprecated G4String member functions - -24 Nov. 2017 K. Murakami - - First release for ZeroMQ interface (experimental) diff --git a/environments/zmq/README.md b/environments/zmq/README.md deleted file mode 100644 index 69bfa90e24..0000000000 --- a/environments/zmq/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# ZeroMQ Interface for Geant4 - -Copyright (c) 2017, Koichi Murakami - -zmq-geant4 is a [ZeroMQ](http://zeromq.org/) interface with Geant4, -that is an alternative implementation of Geant4 UI session. -The interface is designed for the purpose of Geant4 kernel -for [Jupyter](http://jupyter.org/). -A Jupyter kernel is provided in -[igeant4](https://github.com/koichi-murakami/igeant4) repository. - -* [Releases](https://github.com/koichi-murakami/zmq-geant4/releases) -* [Install Instructions](https://github.com/koichi-murakami/zmq-geant4/wiki/Installation) -* [Issues](https://github.com/koichi-murakami/zmq-geant4/issues) diff --git a/environments/zmq/cmake/Modules/FindGeant4.cmake b/environments/zmq/cmake/Modules/FindGeant4.cmake deleted file mode 100644 index 1a0a178925..0000000000 --- a/environments/zmq/cmake/Modules/FindGeant4.cmake +++ /dev/null @@ -1,54 +0,0 @@ -# - Find Geant4 library -# This module sets up Geant4 information -# It defines: -# GEANT4_FOUND If the Geant4 is found -# GEANT4_INCLUDE_DIR PATH to the include directory -# GEANT4_LIBRARY_DIR PATH to the library directory -# GEANT4_LIBRARIES Most common libraries -# GEANT4_LIBRARIES_WITH_VIS Most common libraries with visualization - -find_program(GEANT4_CONFIG NAMES geant4-config - PATHS $ENV{GEANT4_INSTALL}/bin - ${GEANT4_INSTALL}/bin - /usr/local/bin /opt/local/bin) - -if(GEANT4_CONFIG) - set(GEANT4_FOUND TRUE) - - execute_process(COMMAND ${GEANT4_CONFIG} --prefix - OUTPUT_VARIABLE GEANT4_PREFIX - OUTPUT_STRIP_TRAILING_WHITESPACE) - execute_process(COMMAND ${GEANT4_CONFIG} --version - OUTPUT_VARIABLE GEANT4_VERSION - OUTPUT_STRIP_TRAILING_WHITESPACE) - - message(STATUS "Found Geant4: ${GEANT4_PREFIX} (${GEANT4_VERSION})") - -else() - set(GEANT4_FOUND FALSE) - if (Geant4_FIND_REQUIRED) - message(FATAL_ERROR "NOT Found Geant4: set GEANT4_INSTALL.") - else() - message(WARNING "NOT Found Geant4: set GEANT4_INSTALL.") - endif() - -endif() - -set(GEANT4_INCLUDE_DIR ${GEANT4_PREFIX}/include/Geant4) -set(GEANT4_LIBRARY_DIR ${GEANT4_PREFIX}/${_LIBDIR_DEFAULT}) -set(GEANT4_LIBRARIES G4interfaces G4persistency G4analysis - G4error_propagation G4readout G4physicslists - G4run G4event G4tracking G4parmodels G4processes - G4digits_hits G4track G4particles G4geometry - G4materials G4graphics_reps G4intercoms - G4global G4clhep G4zlib) - -set(GEANT4_LIBRARIES_WITH_VIS - G4OpenGL G4gl2ps G4Tree G4FR G4GMocren G4visHepRep - G4RayTracer G4VRML G4vis_management G4modeling - G4interfaces G4persistency G4analysis - G4error_propagation G4readout G4physicslists - G4run G4event G4tracking G4parmodels G4processes - G4digits_hits G4track G4particles G4geometry - G4materials G4graphics_reps G4intercoms - G4global G4clhep G4zlib) diff --git a/environments/zmq/cmake/Modules/FindZMQ.cmake b/environments/zmq/cmake/Modules/FindZMQ.cmake deleted file mode 100644 index ac10d10bf7..0000000000 --- a/environments/zmq/cmake/Modules/FindZMQ.cmake +++ /dev/null @@ -1,45 +0,0 @@ -# - Find ZMQ library -# -# It defines: -# ZMQ_FOUND If the ZeroMQ is found -# ZMQ_INCLUDE_DIRS PATH to the include directory -# ZMQ_LIBRARIES libraries -# -# ZMQ_DIR is used for guessing the installed path. -# - -message("-- Detecting ZeroMQ package") - -find_package(PkgConfig QUIET) -pkg_check_modules(ZMQ QUIET zmq) - -if(PC_ZMQ_FOUND) - set(ZMQ_FOUND 1) -else() - set(ZMQ_FOUND 0) -endif() - -# find include path -find_path(ZMQ_INCLUDE_DIRS zmq.hpp - HINTS /usr/include ${ZMQ_DIR}/include ${PC_ZMQ_INCLUDE_DIRS}) -if(ZMQ_INCLUDE_DIRS MATCHES "^.*-NOTFOUND") - set(ZMQ_FOUND 0) -endif() - -# find library -find_library(ZMQ_LIBRARIES NAMES zmq - PATHS /usr/lib64 /usr/lib - ${ZMQ_DIR}/lib64 ${ZMQ_DIR}/lib ${PC_ZMQ_LIBRARY_DIRS}) - -if(ZMQ_LIBRARIES MATCHES "^.*-NOTFOUND") - set(ZMQ_FOUND 0) -endif() -# -include(FindPackageHandleStandardArgs) - -find_package_handle_standard_args(ZMQ DEFAULT_MSG - ZMQ_INCLUDE_DIRS ZMQ_LIBRARIES) - -mark_as_advanced(ZMQ_INCLUDE_DIRS ZMQ_LIBRARY_DIRS ZMQ_LIBRARIES) - -message("-- Detecting ZMQ package - done") diff --git a/environments/zmq/config.cmake b/environments/zmq/config.cmake deleted file mode 100644 index 0a66743988..0000000000 --- a/environments/zmq/config.cmake +++ /dev/null @@ -1,28 +0,0 @@ -#============================================================================== -# CMake configuration -# -# NOTE: -# CACHE variables can be changed in CMake CLI with -D option. -#============================================================================== - -set(CMAKE_INSTALL_PREFIX /zzz - CACHE STRING "Install prefix") - -# Geant4 installation path -set(GEANT4_INSTALL /zzz - CACHE STRING "Geant4 installation path") - -# visualization flag -set(ENABLE_VIS FALSE CACHE BOOL "Enable visualization flag") - -# Optimizaton / Debug flags -set(OPTIMIZE TRUE CACHE BOOL "Optimizaton flag (O3)") -set(DEBUG FALSE CACHE BOOL "Debug mode") - -# Development flag (set false for release) -set(DEVMODE FALSE CACHE BOOL "Development mode") - -# Optional configurations -# Compiler -#set(CMAKE_C_COMPILER /opt/gcc-4.8.5/bin/gcc) -#set(CMAKE_CXX_COMPILER /opt/gcc-4.8.5/bin/g++) diff --git a/environments/zmq/configure b/environments/zmq/configure deleted file mode 100755 index 170cda2f2a..0000000000 --- a/environments/zmq/configure +++ /dev/null @@ -1,169 +0,0 @@ -#!/bin/sh - -# ====================================================================== -# Configure script for G4Bench -# -# Note: -# This script is an alternative cmake wrapper. -# The script generates a cmake build directory in "build" directory. -# You can do the same things with cmake command using -DXXX=VVV options. -# ====================================================================== -export LANG=C - -# ====================================================================== -# help message -# ====================================================================== -show_help() { -cat < -#include -#include -#include "G4UItcsh.hh" -#include "G4UImanager.hh" -#include "G4UIcommandTree.hh" -#include "G4ZMQServer.hh" - -// -------------------------------------------------------------------------- -namespace { - -G4UImanager* ui_manager = nullptr; -G4bool qexit = false; -std::stringstream cout_stream; -std::string black_str = "\033[30m"; -std::string command_list = ""; - -void ThrowException(const std::string& message) -{ - std::stringstream ss; - ss << "[ERROR] " << message << std::endl; - throw std::runtime_error(ss.str()); -} - -// -------------------------------------------------------------------------- -void GetCommandTree(G4UIcommandTree* ctree) -{ - command_list += (ctree-> GetPathName() + " "); - - auto n_cmd = ctree-> GetCommandEntry(); - for ( auto icmd = 1; icmd <= n_cmd; icmd++ ) { - auto cmd_path = ctree-> GetCommand(icmd)-> GetCommandPath(); - command_list += (cmd_path + " "); - } - - auto n_tree = ctree-> GetTreeEntry(); - for ( auto itr = 1; itr <= n_tree ; itr++ ) { - G4UIcommandTree* atree = ctree-> GetTree(itr); - ::GetCommandTree(atree); - } -} - -} // end of namespace - -// -------------------------------------------------------------------------- -G4ZMQServer::G4ZMQServer() -{ - endpoint_ = "tcp://127.0.0.1:5555"; - qdebug_ = false; - shell_= new G4UItcsh(); - shell_-> SetLsColor(BLUE, RED); - - ::ui_manager = G4UImanager::GetUIpointer(); - ::ui_manager-> SetSession(this); - ::ui_manager-> SetCoutDestination(this); - - ::qexit = false; -} - -// -------------------------------------------------------------------------- -G4ZMQServer::~G4ZMQServer() -{ - delete shell_; -} - -// -------------------------------------------------------------------------- -G4UIsession* G4ZMQServer::SessionStart() -{ - zmq::context_t context(1); - zmq::socket_t socket( context, ZMQ_REP ); - socket.bind(endpoint_); - - enum { kBufferSize = 4096 }; - char buffer[kBufferSize]; - - while ( ! ::qexit ) { - if ( qdebug_ ) { - std::cout << "@@ Waiting..." << std::endl; - } - - // waiting command - zmq::message_t request; - G4bool qok = socket.recv(&request); - if ( qok == false ) ::ThrowException("G4ZMQSever: socket recv error"); - auto end_pos = request.size(); - if ( end_pos >= kBufferSize ) end_pos = kBufferSize - 1; - std::memcpy(buffer, request.data(), end_pos); - buffer[end_pos] = '\0'; - std::string cmd_str = buffer; - - if ( qdebug_ ) { - std::cout << "@@ Recv=" << cmd_str << "<<" << std::endl; - } - - // store output & send back response - ::cout_stream.str(""); - - if ( cmd_str == "@@ping" ) { - G4cout << "pong" << G4endl; - - } else if ( cmd_str == "@@debug") { - qdebug_ = true; - G4cout << "G4ZMQ debug activated" << G4endl; - - } else if ( cmd_str == "@@nodebug") { - qdebug_ = false; - G4cout << "G4ZMQ debug deactivated" << G4endl; - - } else if ( cmd_str == "@@get_command_tree" ) { - auto cwd_name = GetCurrentWorkingDirectory(); - auto cwd_tree = FindDirectory(cwd_name.c_str()); - ::command_list = ""; - ::GetCommandTree(cwd_tree); - G4cout << ::command_list << std::flush; - - } else if ( cmd_str == "@@get_fullcommand_tree" ) { - auto root = ::ui_manager-> GetTree(); - ::command_list = ""; - ::GetCommandTree(root); - G4cout << ::command_list << std::flush; - - } else if ( cmd_str == "help" ) { - G4cout << "help " << G4endl; - - } else { - G4String new_command = GetCommand(cmd_str); - if ( qdebug_ ) { - std::cout << ::black_str << "@@ Cmd=" - << new_command << "<<" << std::endl; - } - ExecuteCommand(new_command); - } - - std::string reply = ::cout_stream.str(); - size_t cout_size = reply.size(); - zmq::message_t message(cout_size); - std::strncpy((char*)message.data(), reply.c_str(), cout_size); - qok = socket.send(message); - if ( qok == false ) ::ThrowException("G4ZMQServer: socket send error"); - } - - return nullptr; -} - -// -------------------------------------------------------------------------- -void G4ZMQServer::PauseSessionStart(const G4String& msg) -{ -} - -// -------------------------------------------------------------------------- -G4int G4ZMQServer::ReceiveG4cout(const G4String& coutString) -{ - if ( qdebug_ ) { - std::cout << coutString << std::flush; - } - - ::cout_stream << coutString << std::flush; - - return 0; -} - -// -------------------------------------------------------------------------- -G4int G4ZMQServer::ReceiveG4cerr(const G4String& cerrString) -{ - if ( qdebug_ ) { - std::cerr << cerrString << std::flush; - } - - ::cout_stream << cerrString << std::flush; - - return 0; -} - -// -------------------------------------------------------------------------- -G4String G4ZMQServer::GetCommand(const G4String& input) -{ - const std::string nullstr = ""; - G4String cmdstr = input; - - G4String cstr = G4StrUtil::lstrip_copy(cmdstr); - if ( cstr.length() == 0 ) { - cmdstr = nullstr; - - // define built-in shell commands... - } else if ( cstr[0] == '#' ) { - G4cout << cstr << G4endl; - cmdstr = nullstr; - - } else if ( cstr == "ls" || cstr.substr(0,3) == "ls " ) { - ListDirectory(cstr); - cmdstr = nullstr; - - } else if ( cstr == "lc" || cstr.substr(0,3) == "lc " ) { - shell_-> ListCommand(cstr.erase(0,2)); - cmdstr = nullstr; - - } else if (cstr == "pwd" ) { - G4cout << "Current Command Directory : " - << GetCurrentWorkingDirectory() << G4endl; - cmdstr = nullstr; - - } else if ( cstr == "cwd" ) { - shell_-> ShowCurrentDirectory(); - cmdstr = nullstr; - - } else if (cstr == "cd" || cstr.substr(0,3) == "cd " ) { - ChangeDirectoryCommand(cstr); - shell_-> SetCurrentDirectory(GetCurrentWorkingDirectory()); - cmdstr = nullstr; - - } else if ( cstr == "help" || cstr.substr(0,5) == "help " ) { - TerminalHelp(cstr); - cmdstr = nullstr; - - } else if ( cstr(0) == '?' ) { - ShowCurrent(cstr); - cmdstr = nullstr; - - } else if ( cstr == "history" ) { - auto nh= ::ui_manager-> GetNumberOfHistory(); - for (auto i = 0; i < nh; i++) { - G4cout << i << ": " << ::ui_manager->GetPreviousCommand(i) << G4endl; - } - cmdstr = nullstr; - - } else if ( cstr == "exit" ) { - ::qexit = true; - cmdstr = nullstr; - } - - return ModifyToFullPathCommand(cmdstr); -} - -// -------------------------------------------------------------------------- -void G4ZMQServer::ExecuteCommand(const G4String& command) -{ - auto rc = ::ui_manager-> ApplyCommand(command); - auto pcode = rc % 100; - auto status = rc - pcode; - - G4UIcommand* cmd = nullptr; - if( status != fCommandSucceeded ) cmd = FindCommand(command); - - switch ( status ) { - case fCommandSucceeded: - break; - case fCommandNotFound: - G4cerr << "command <" << ::ui_manager-> SolveAlias(command) - << "> not found" << G4endl; - break; - case fIllegalApplicationState: - G4cerr << "illegal application state -- command refused" << G4endl; - break; - case fParameterOutOfRange: - G4cerr << "Parameter is out of range" << G4endl; - break; - case fParameterOutOfCandidates: - G4cerr << "Parameter is out of candidate list (index " - << pcode << ")" << G4endl; - G4cerr << "Candidates : " - << cmd-> GetParameter(pcode)-> GetParameterCandidates() - << G4endl; - break; - case fParameterUnreadable: - G4cerr << "Parameter is wrong type and/or is not omittable (index " - << pcode << ")" << G4endl; - break; - case fAliasNotFound: - break; - default: - G4cerr << "command refused (" << status << ")" << G4endl; - break; - } -} - -// -------------------------------------------------------------------------- -G4bool G4ZMQServer::GetHelpChoice(G4int&) -{ - return true; -} - -// -------------------------------------------------------------------------- -void G4ZMQServer::ExitHelp() const -{ -} diff --git a/examples/.doxygen/Doxyfile b/examples/.doxygen/Doxyfile index d2440ef091..60789f5e43 100644 --- a/examples/.doxygen/Doxyfile +++ b/examples/.doxygen/Doxyfile @@ -714,7 +714,7 @@ WARNINGS = YES # will automatically be disabled. # The default value is: YES. -WARN_IF_UNDOCUMENTED = YES +WARN_IF_UNDOCUMENTED = NO # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters @@ -795,6 +795,7 @@ INPUT = Doxymain.h \ ../extended/analysis/.README.txt \ ../extended/analysis/AnaEx01/.README.txt \ ../extended/analysis/AnaEx02/.README.txt \ + ../extended/analysis/AnaEx03/.README.txt \ ../extended/analysis/B1Con \ ../extended/biasing \ ../extended/electromagnetic/.README.txt \ @@ -855,6 +856,11 @@ INPUT = Doxymain.h \ ../extended/hadronic/Hadr10/.README.txt \ ../extended/hadronic/FissionFragment \ ../extended/hadronic/NeutronSource/.README.txt \ + ../extended/hadronic/ParticleFluence/.README.txt \ + ../extended/hadronic/ParticleFluence/Calo/.README.txt \ + ../extended/hadronic/ParticleFluence/ConcentricSpheres/.README.txt \ + ../extended/hadronic/ParticleFluence/Layer/.README.txt \ + ../extended/hadronic/ParticleFluence/Sphere/.README.txt \ ../extended/medical/.README.txt \ ../extended/medical/DICOM \ ../extended/medical/DICOM2 \ @@ -875,10 +881,12 @@ INPUT = Doxymain.h \ ../extended/medical/dna/dnadamage1/.README.txt \ ../extended/medical/dna/dnaphysics/.README.txt \ ../extended/medical/dna/icsd/.README.txt \ + ../extended/medical/dna/jetcounter/.README.txt \ ../extended/medical/dna/mfp/.README.txt \ ../extended/medical/dna/microdosimetry/.README.txt \ ../extended/medical/dna/microprox/.README.txt \ ../extended/medical/dna/microyz/.README.txt \ + ../extended/medical/dna/moleculardna/.README.txt \ ../extended/medical/dna/neuron/.README.txt \ ../extended/medical/dna/pdb4dna/.README.txt \ ../extended/medical/dna/range/.README.txt \ @@ -952,7 +960,8 @@ FILE_PATTERNS = *.hh \ *.icc \ *.cc \ .README*.txt \ - *.mac + *.mac \ + *.g4 # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. @@ -1009,18 +1018,6 @@ EXCLUDE = ../basic/B2/B2b/include/ActionInitialization.hh \ ../basic/B4/B4d/include/RunAction.hh \ ../basic/B4/B4c/src/RunAction.cc \ ../basic/B4/B4d/src/RunAction.cc \ - ../extended/analysis/B1Con/include/B1DetectorConstruction.hh \ - ../extended/analysis/B1Con/include/B1EventAction.hh \ - ../extended/analysis/B1Con/include/B1EventInformation.hh \ - ../extended/analysis/B1Con/include/B1PrimaryGeneratorAction.hh \ - ../extended/analysis/B1Con/include/B1SteppingAction.hh \ - ../extended/analysis/B1Con/include/B1Run.hh \ - ../extended/analysis/B1Con/src/B1DetectorConstruction.cc \ - ../extended/analysis/B1Con/src/B1EventAction.cc \ - ../extended/analysis/B1Con/src/B1EventInformation.cc \ - ../extended/analysis/B1Con/src/B1PrimaryGeneratorAction.cc \ - ../extended/analysis/B1Con/src/B1SteppingAction.cc \ - ../extended/analysis/B1Con/src/B1Run.cc \ ../extended/g3tog4/clGeometry/common \ ../extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReader.hh \ ../extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReaderMessenger.hh \ @@ -1040,24 +1037,6 @@ EXCLUDE = ../basic/B2/B2b/include/ActionInitialization.hh \ ../extended/eventgenerator/HepMC/MCTruth/src/PrimaryGeneratorAction.cc \ ../extended/eventgenerator/pythia/decayer6/common \ ../extended/parallel/TBB/B2b/exampleB2b.cc \ - ../extended/parallel/TBB/B2b/include/B2ActionInitialization.hh \ - ../extended/parallel/TBB/B2b/include/B2bChamberParameterisation.hh \ - ../extended/parallel/TBB/B2b/include/B2bDetectorConstruction.hh \ - ../extended/parallel/TBB/B2b/include/B2bDetectorMessenger.hh \ - ../extended/parallel/TBB/B2b/include/B2EventAction.hh \ - ../extended/parallel/TBB/B2b/include/B2PrimaryGeneratorAction.hh \ - ../extended/parallel/TBB/B2b/include/B2RunAction.hh \ - ../extended/parallel/TBB/B2b/include/B2TrackerHit.hh \ - ../extended/parallel/TBB/B2b/include/B2TrackerSD.hh \ - ../extended/parallel/TBB/B2b/src/B2ActionInitialization.cc \ - ../extended/parallel/TBB/B2b/src/B2bChamberParameterisation.cc \ - ../extended/parallel/TBB/B2b/src/B2bDetectorConstruction.cc \ - ../extended/parallel/TBB/B2b/src/B2bDetectorMessenger.cc \ - ../extended/parallel/TBB/B2b/src/B2EventAction.cc \ - ../extended/parallel/TBB/B2b/src/B2PrimaryGeneratorAction.cc \ - ../extended/parallel/TBB/B2b/src/B2RunAction.cc \ - ../extended/parallel/TBB/B2b/src/B2TrackerHit.cc \ - ../extended/parallel/TBB/B2b/src/B2TrackerSD.cc \ ../extended/parameterisations/gflash/gflasha \ ../extended/parameterisations/gflash/gflash2/include/ExGflashActionInitialization.hh \ ../extended/parameterisations/gflash/gflash2/include/ExGflashEventAction.hh \ diff --git a/examples/.doxygen/Doxyfile_standalone b/examples/.doxygen/Doxyfile_standalone index 05dd637ee9..3f5d39cd8e 100644 --- a/examples/.doxygen/Doxyfile_standalone +++ b/examples/.doxygen/Doxyfile_standalone @@ -714,7 +714,7 @@ WARNINGS = YES # will automatically be disabled. # The default value is: YES. -WARN_IF_UNDOCUMENTED = YES +WARN_IF_UNDOCUMENTED = NO # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters @@ -782,7 +782,8 @@ FILE_PATTERNS = *.hh \ *.icc \ *.cc \ .README*.txt \ - *.mac + *.mac \ + *.g4 # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. diff --git a/examples/.doxygen/Doxymodules_analysis.h b/examples/.doxygen/Doxymodules_analysis.h index 3a13646413..b8ef909e0b 100644 --- a/examples/.doxygen/Doxymodules_analysis.h +++ b/examples/.doxygen/Doxymodules_analysis.h @@ -27,6 +27,15 @@ /** @} */ +/** @defgroup extended_analysis_AnaEx03 AnaEx03 + * Analysis AnaEx03 example has its + * standalone documentation + * @ingroup extended_analysis + * @{ + */ + +/** @} */ + /** @defgroup extended_analysis_B1Con B1Con * Analysis example B1Con * @ingroup extended_analysis diff --git a/examples/.doxygen/Doxymodules_basic.h b/examples/.doxygen/Doxymodules_basic.h index 0194dc6c55..bc5f4f6c6e 100644 --- a/examples/.doxygen/Doxymodules_basic.h +++ b/examples/.doxygen/Doxymodules_basic.h @@ -101,9 +101,9 @@ class B3::PrimaryGeneratorAction{}; class B3::StackingAction{}; class B3b::ActionInitialization{}; + class B3b::DetectorConstruction{}; class B3b::Run{}; class B3b::RunAction{}; - class B3D::etectorConstruction{}; /** @} */ diff --git a/examples/.doxygen/Doxymodules_common.h b/examples/.doxygen/Doxymodules_common.h index e7fea26cde..7a4b31a099 100644 --- a/examples/.doxygen/Doxymodules_common.h +++ b/examples/.doxygen/Doxymodules_common.h @@ -9,16 +9,10 @@ * @{ */ - class ExG4DetectorConstruction01{}; - class ExG4DetectorConstruction01Messenger{}; - class ExG4DetectorConstruction02{}; - class ExG4DetectorConstruction02Messenger{}; - class ExG4EventAction01{}; - class ExG4EventAction01Messenger{}; - class ExG4PhysicsList00{}; - class ExG4PrimaryGeneratorAction01{}; - class ExG4PrimaryGeneratorAction02{}; - class ExG4RunAction01{}; - class ExG4RunAction01Messenger{}; + class Common::DetectorConstruction{}; + class Common::DetectorConstruction0{}; + class Common::GeantinoPhysicsList{}; + class Common::GpsPrimaryGeneratorAction{}; + class Common::GunPrimaryGeneratorAction{}; /** @} */ diff --git a/examples/.doxygen/Doxymodules_errorpropagation.h b/examples/.doxygen/Doxymodules_errorpropagation.h index f3ce815881..da8681c851 100644 --- a/examples/.doxygen/Doxymodules_errorpropagation.h +++ b/examples/.doxygen/Doxymodules_errorpropagation.h @@ -5,13 +5,21 @@ /** @defgroup extended_errorpropagation errorpropagation - * Errorpropagation example + * Extended errorpropagation examples classes * @ingroup extended * @{ */ +/** @defgroup extended_errorpropagation_errProp errProp + * errorpropagation example errProp + * @ingroup extended_errorpropagation + * @{ + */ + class ExErrorDetectorConstruction {}; class ExErrorDetectorMessenger {}; class ExErrorMagneticField {}; /** @} */ + +/** @} */ diff --git a/examples/.doxygen/Doxymodules_g3tog4.h b/examples/.doxygen/Doxymodules_g3tog4.h index ac266fa3e8..9b392dcc61 100644 --- a/examples/.doxygen/Doxymodules_g3tog4.h +++ b/examples/.doxygen/Doxymodules_g3tog4.h @@ -16,6 +16,11 @@ class G3toG4ActionInitialization {}; class G3toG4DetectorConstruction {}; + class Common::DetectorConstruction{}; + class Common::DetectorConstruction0{}; + class Common::GeantinoPhysicsList{}; + class Common::GpsPrimaryGeneratorAction{}; + class Common::GunPrimaryGeneratorAction{}; /** @} */ diff --git a/examples/.doxygen/Doxymodules_hadronic.h b/examples/.doxygen/Doxymodules_hadronic.h index 74a83b1066..53cab3f224 100644 --- a/examples/.doxygen/Doxymodules_hadronic.h +++ b/examples/.doxygen/Doxymodules_hadronic.h @@ -90,8 +90,6 @@ /** @} */ -/** @} */ - /** @defgroup extended_hadronic_Hadr09 Hadr09 * The Hadr09 hadronic classes have their * standalone documentation @@ -132,4 +130,47 @@ /** @} */ +/** @defgroup extended_hadronic_ParticleFluence ParticleFluence + * Extended examples hadronic ParticleFluence classes + * @{ + */ + +/** @defgroup extended_hadronic_ParticleFluence_Calo Calo + * The Calo classes have their + * standalone documentation + * @ingroup extended_hadronic_ParticleFluence + * @{ + */ + +/** @} */ + +/** @defgroup extended_hadronic_ParticleFluence_ConcentricSpheres ConcentricSpheres + * The ConcentricSpheres classes have their + * standalone documentation + * @ingroup extended_hadronic_ParticleFluence + * @{ + */ + +/** @} */ + +/** @defgroup extended_hadronic_ParticleFluence_Layer Layer + * The Layer classes have their + * standalone documentation + * @ingroup extended_hadronic_ParticleFluence + * @{ + */ + +/** @} */ + +/** @defgroup extended_hadronic_ParticleFluence_Sphere Sphere + * The Sphere classes have their + * standalone documentation + * @ingroup extended_hadronic_ParticleFluence + * @{ + */ + +/** @} */ + + +/** @} */ /** @} */ diff --git a/examples/.doxygen/Doxymodules_medical.h b/examples/.doxygen/Doxymodules_medical.h index 98ee18e57f..19f8ea7483 100644 --- a/examples/.doxygen/Doxymodules_medical.h +++ b/examples/.doxygen/Doxymodules_medical.h @@ -212,6 +212,15 @@ /** @} */ +/** @defgroup extended_medical_dna_jetcounter jetcounter + * Medical dna jetcounter example has its + * standalone documentation + * @ingroup extended_medical_dna + * @{ + */ + +/** @} */ + /** @defgroup extended_medical_dna_mfp mfp * Medical dna mfp example has its * standalone documentation @@ -248,6 +257,15 @@ /** @} */ +/** @defgroup extended_medical_dna_moleculardna moleculardna + * Medical dna moleculardna example has its + * standalone documentation + * @ingroup extended_medical_dna + * @{ + */ + +/** @} */ + /** @defgroup extended_medical_dna_neuron neuron * Medical dna neuron example has its * standalone documentation diff --git a/examples/.doxygen/Doxymodules_parameterisations.h b/examples/.doxygen/Doxymodules_parameterisations.h index 21d2a78106..e8844d11fd 100644 --- a/examples/.doxygen/Doxymodules_parameterisations.h +++ b/examples/.doxygen/Doxymodules_parameterisations.h @@ -69,6 +69,30 @@ class Par03SensitiveDetector {}; /** @} */ +/** @defgroup extended_parameterisations_Par04 Par04 + * parameterisations example Par04 + * @{ + */ + +class Par04ActionInitialisation {}; +class Par04DefineMeshModel {}; +class Par04DetectorConstruction {}; +class Par04DetectorMessenger {}; +class Par04EventAction {}; +class Par04EventInformation {}; +class Par04Hit {}; +class Par04InferenceInterface {}; +class Par04InferenceMessenger {}; +class Par04InferenceSetup {}; +class Par04LwtnnInference {}; +class Par04MLFastSimModel {}; +class Par04OnnxInference {}; +class Par04PrimaryGeneratorAction {}; +class Par04RunAction {}; +class Par04SensitiveDetector {}; + +/** @} */ + /** @defgroup extended_parameterisations_gflash gflash * Extended examples parameterisations gflash classes * @{ diff --git a/examples/.doxygen/History b/examples/.doxygen/History index e21b910278..4b542cdfd3 100644 --- a/examples/.doxygen/History +++ b/examples/.doxygen/History @@ -5,6 +5,19 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-09 I. Hrivnacova (doxygen-V11-00-03) +- Updated configuration files and generate_standalone.sh script +- Added new extended example analysis/AnaEx03 + +## 2022-10-25 I.Hrivnacova (doxygen-V11-00-02) +- Added new extended examples in documentation: + - hadronic/ParticleFluence + - medical/dna/jetcounter and moleculardna + - parameterisations/Par04 + +## 2022-09-13 I.Hrivnacova (doxygen-V11-00-01) +- Updated for modifications in errorpropagation example + ## 2021-12-10 Ben Morgan (doxygen-V11-00-00) - Change to new Markdown History format diff --git a/examples/.doxygen/generate_standalone.sh b/examples/.doxygen/generate_standalone.sh index 7dc8951f25..cb63798823 100755 --- a/examples/.doxygen/generate_standalone.sh +++ b/examples/.doxygen/generate_standalone.sh @@ -13,30 +13,9 @@ BACK_PATH4="../../../../../.doxygen/doc" # {1} example directory # {2} relative path from the example to the doc directory generate() { - echo "processing ${1}" + #echo "processing ${1}" cd ../extended/${1} EXAMPLE_NAME=${PWD##*/} - # add directory if shared - if [ "${EXAMPLE_NAME}" = "shared" ]; then - cd .. - DIR_NAME=${PWD##*/} - EXAMPLE_NAME=${DIR_NAME}"_shared" - cd shared - fi - # detect use of classes from shared - ADD_SHARED="" - if [ -f SharedFilesList.txt ]; then - if [ "`grep SHARED_CLASSES_LIST SharedFilesList.txt`" = "SHARED_CLASSES_LIST" ]; then - ADD_SHARED="../shared" - fi - fi - # detect use of classes from common - ADD_COMMON="" - if [ -f SharedFilesList.txt ]; then - if [ "`grep COMMON_CLASSES_LIST SharedFilesList.txt`" = "COMMON_CLASSES_LIST" ]; then - ADD_COMMON="../../common ../../../common" - fi - fi #echo "Generating Doxyfile for example: ${EXAMPLE_NAME}" cat $CURDIR/Doxyfile_standalone | sed s/"EXAMPLE_NAME"/"${EXAMPLE_NAME}"/g | sed sY"BACK_PATH"Y"${2}"Yg | sed sY"ADD_SHARED"Y"${ADD_SHARED}"Yg | sed sY"ADD_COMMON"Y"${ADD_COMMON}"Yg > Doxyfile ln -s $CURDIR/geant4.tag geant4.tag @@ -47,12 +26,12 @@ generate() { } # process examples in second level directory in extended -for DIR in analysis/shared analysis/AnaEx01 analysis/AnaEx02 electromagnetic/TestEm0 electromagnetic/TestEm1 electromagnetic/TestEm2 electromagnetic/TestEm3 electromagnetic/TestEm4 electromagnetic/TestEm5 electromagnetic/TestEm6 electromagnetic/TestEm7 electromagnetic/TestEm8 electromagnetic/TestEm9 electromagnetic/TestEm10 electromagnetic/TestEm11 electromagnetic/TestEm12 electromagnetic/TestEm13 electromagnetic/TestEm14 electromagnetic/TestEm15 electromagnetic/TestEm16 electromagnetic/TestEm17 electromagnetic/TestEm18 eventgenerator/particleGun eventgenerator/exgps eventgenerator/userPrimaryGenerator exoticphysics/channeling exoticphysics/dmparticle exoticphysics/monopole geometry/transforms hadronic/Hadr00 hadronic/Hadr01 hadronic/Hadr02 hadronic/Hadr03 hadronic/Hadr04 hadronic/Hadr05 hadronic/Hadr06 hadronic/Hadr07 hadronic/Hadr08 hadronic/Hadr09 hadronic/Hadr10 hadronic/NeutronSource medical/electronScattering medical/electronScattering2 medical/fanoCavity medical/fanoCavity2 medical/GammaTherapy optical/OpNovice2 physicslists/extensibleFactory physicslists/factory physicslists/genericPL polarisation/Pol01 radioactivedecay/Activation radioactivedecay/rdecay01 radioactivedecay/rdecay02 runAndEvent/RE07; do +for DIR in analysis/AnaEx01 analysis/AnaEx02 analysis/AnaEx03 electromagnetic/TestEm0 electromagnetic/TestEm1 electromagnetic/TestEm2 electromagnetic/TestEm3 electromagnetic/TestEm4 electromagnetic/TestEm5 electromagnetic/TestEm6 electromagnetic/TestEm7 electromagnetic/TestEm8 electromagnetic/TestEm9 electromagnetic/TestEm10 electromagnetic/TestEm11 electromagnetic/TestEm12 electromagnetic/TestEm13 electromagnetic/TestEm14 electromagnetic/TestEm15 electromagnetic/TestEm16 electromagnetic/TestEm17 electromagnetic/TestEm18 eventgenerator/particleGun eventgenerator/exgps eventgenerator/userPrimaryGenerator exoticphysics/channeling exoticphysics/dmparticle exoticphysics/monopole geometry/transforms hadronic/Hadr00 hadronic/Hadr01 hadronic/Hadr02 hadronic/Hadr03 hadronic/Hadr04 hadronic/Hadr05 hadronic/Hadr06 hadronic/Hadr07 hadronic/Hadr08 hadronic/Hadr09 hadronic/Hadr10 hadronic/NeutronSource medical/electronScattering medical/electronScattering2 medical/fanoCavity medical/fanoCavity2 medical/GammaTherapy optical/OpNovice2 physicslists/extensibleFactory physicslists/factory physicslists/genericPL polarisation/Pol01 radioactivedecay/Activation radioactivedecay/rdecay01 radioactivedecay/rdecay02 runAndEvent/RE07; do generate ${DIR} ${BACK_PATH2} done # process examples in third level directory in extended -for DIR in eventgenerator/HepMC/MCTruth eventgenerator/pythia/py8decayer medical/dna/chem1 medical/dna/chem2 medical/dna/chem3 medical/dna/chem4 medical/dna/chem5 medical/dna/chem6 medical/dna/clustering medical/dna/dnadamage1 medical/dna/dnaphysics medical/dna/icsd medical/dna/mfp medical/dna/microdosimetry medical/dna/microprox medical/dna/microyz medical/dna/neuron medical/dna/pdb4dna medical/dna/range medical/dna/slowing medical/dna/splitting medical/dna/spower medical/dna/svalue medical/dna/wholeNuclearDNA medical/dna/wvalue parameterisations/gflash/gflasha parallel/TopC/ParN02 parallel/TopC/ParN04; do +for DIR in eventgenerator/HepMC/MCTruth eventgenerator/pythia/py8decayer hadronic/ParticleFluence/Calo hadronic/ParticleFluence/ConcentricSpheres hadronic/ParticleFluence/Layer hadronic/ParticleFluence/Sphere medical/dna/chem1 medical/dna/chem2 medical/dna/chem3 medical/dna/chem4 medical/dna/chem5 medical/dna/chem6 medical/dna/clustering medical/dna/dnadamage1 medical/dna/dnaphysics medical/dna/icsd medical/dna/jetcounter medical/dna/mfp medical/dna/microdosimetry medical/dna/microprox medical/dna/microyz medical/dna/moleculardna medical/dna/neuron medical/dna/pdb4dna medical/dna/range medical/dna/slowing medical/dna/scavenger medical/dna/splitting medical/dna/spower medical/dna/svalue medical/dna/wholeNuclearDNA medical/dna/wvalue parameterisations/gflash/gflasha parallel/TopC/ParN02 parallel/TopC/ParN04; do generate ${DIR} ${BACK_PATH3} done diff --git a/examples/History b/examples/History index 74ab1f0b12..9b35d2f91a 100644 --- a/examples/History +++ b/examples/History @@ -6,6 +6,65 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-10-31 Gabriele Cosmo (examples-V11-01-00) +- Updated reference outputs according to reference tag geant4-11-01-ref-00. +- Included tags: doxygen-V11-00-03, CaTS-V11-00-02, eRosita-V11-00-03, + eFLASH_radiotherapy-V11-00-00, radioprotection-V11-00-02, + gammaraytel-V11-00-01, exbasic-V11-00-02, exampleB3-V11-00-02, + exampleB4-V11-00-02, analysisExample-V11-00-04, + excommon-V11-00-02, testem1-V11-00-04, exerrprop-V11-00-02, + p6decayer-V11-00-02, channelingExample-V11-00-01, + ExUCN-V11-00-02, fieldex01-V11-00-03, fieldex04-V11-00-03, + fieldex05-V11-00-01, g3tog4Tests-V11-00-02, exhadr01-V11-00-01, + VecGeomNavigation-V11-00-03, exhadr03-V11-00-02, + exhadr09-V11-00-01, dnaphysics-V11-00-03, exicsd-V11-00-01, + jetcounter-V11-00-01, molecularDNA-V11-00-11, MPI-V11-00-03, + scavenger-V11-00-05, OpNovice-V11-00-02, OpNovice2-V11-00-06 + ThreadsafeScorers-V11-00-01, exam-ext-vis-movies-V11-00-01, + exgflash-V11-00-01, expar02-V11-00-01, expar04-V11-00-05, + rdecay01-V11-00-05, exam-ext-vis-standalone-V11-00-01. + +## 2022-10-31 Gabriele Cosmo (examples-V11-00-09) +- Updated reference outputs according to reference tag geant4-11-00-ref-09. +- Included tags: doxygen-V11-00-02, ccal-V11-00-02, ICRP145Phantoms-V11-00-03, + medical_linac-V11-00-03, exampleB1-V11-00-01, DICOM-V11-00-03, + analysisExample-V11-00-03, AnaEx03-V11-00-00, exdna-V11-00-02, + testem1-V11-00-03, testem7-V11-00-01, testem8-V11-00-01,, + p6decayer-V11-00-01, p8decayer-V11-00-04, monopole-V11-00-03, + fieldex01-V11-00-01, fieldex04-V11-00-02, exHadronic-V11-00-02, + exExtHadFissFrag-V11-00-01, exhadrParticleFluence-V11-00-01, + exhadr02-V11-00-01, clustering-V11-00-01, jetcounter-V11-00-00, + neuron-V11-00-01, pdb4dna-V11-00-01, OpNovice2-V11-00-05, + expar04-V11-00-03, rdecay01-V11-00-04, exampleRE02-V11-00-01. + +## 2022-09-30 Gabriele Cosmo (examples-V11-00-08) +- Updated reference outputs according to reference tag geant4-11-00-ref-08. +- Added .clang-format for examples, adapting toolkit file for examples + guidelines (B.Morgan). +- Includes tags: amsEcal-V11-00-02, doiPET-V11-00-01, fastAerosol-V11-00-01, + ICRP145Phantoms-V11-00-02, iort_therapy-V11-00-02, + lar_calorimeter-V11-00-01, medical_linac-V11-00-01, + nanobeam-V11-00-01, purgmag-V11-00-01, STCyclotron-V11-00-02, + DMX-V11-00-01, XRayFluo-V11-00-02, exbiasing-V11-00-01, + exErrorpropagation-V11-00-00,exerrprop-V11-00-01, + exhadr08-V11-00-02, exhadrParticleFluenceCalo-V11-00-02, + exhadrParticleFluenceConcentricSpheres-V11-00-02, + exhadrParticleFluenceLayer-V11-00-02, chem4-V11-00-05, + exhadrParticleFluenceSphere-V11-00-02, chem5-V11-00-02, + chem6-V11-00-07, molecularDNA-V11-00-09, scavenger-V11-00-03, + LXe-V11-00-02, expar03-V11-00-01, exampleRE07-V11-00-01. + +## 2022-08-31 Gabriele Cosmo (examples-V11-00-07) +- Updated reference outputs according to reference tag geant4-11-00-ref-07. +- Includes tags: ICRP145Phantoms-V11-00-00, human_phantom-V11-00-02, + exbasic-V11-00-01, testem1-V11-00-01, testem5-V11-00-02, + testem16-V11-00-01, testem17-V11-00-01, p8decayer-V11-00-02, + fieldex04-V11-00-01, exhadrParticleFluenceCalo-V11-00-01, + exhadrParticleFluenceConcentricSpheres-V11-00-01, + exhadrParticleFluenceLayer-V11-00-01, molecularDNA-V11-00-07, + exhadrParticleFluenceSphere-V11-00-01, LXe-V11-00-01, + WLS-V11-00-01, rdecay01-V11-00-02. + ## 2022-06-30 Gabriele Cosmo (examples-V11-00-06) - Updated reference outputs according to reference tag geant4-11-00-ref-06. - Includes tags: brachy-V11-00-01, ICRP110Phantoms-V11-00-01, diff --git a/examples/advanced/CMakeLists.txt b/examples/advanced/CMakeLists.txt index 797cc82754..4197d8d11a 100644 --- a/examples/advanced/CMakeLists.txt +++ b/examples/advanced/CMakeLists.txt @@ -48,3 +48,4 @@ add_subdirectory(xray_fluorescence) add_subdirectory(STCyclotron) add_subdirectory(HGCal_testbeam) add_subdirectory(ICRP110_HumanPhantoms) +add_subdirectory(ICRP145_HumanPhantoms) diff --git a/examples/advanced/CaTS/CaTS.out b/examples/advanced/CaTS/CaTS.out index 0cc4c69641..cfc13ab141 100644 --- a/examples/advanced/CaTS/CaTS.out +++ b/examples/advanced/CaTS/CaTS.out @@ -38,7 +38,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -80,6 +80,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -107,7 +108,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -158,8 +159,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -641,6 +642,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -905,4 +911,4 @@ Correlated gamma emission flag 0 Max 2J for sampling of angular correlations 10 ======================================================================= writing Event: 0 -TimeTotal> 6.953 2.960 +TimeTotal> 4.795 3.010 diff --git a/examples/advanced/CaTS/History b/examples/advanced/CaTS/History index d98f9c0012..adac66d8f5 100644 --- a/examples/advanced/CaTS/History +++ b/examples/advanced/CaTS/History @@ -6,6 +6,9 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-10-31 Gabriele Cosmo (CaTS-V11-00-02) +- Fixed compilation warnings on latest gcc compilers. + ## 2022-03-26 Gabriele Cosmo (CaTS-V11-00-01) - Fixed compilation warnings for unused arguments. diff --git a/examples/advanced/CaTS/include/DetectorConstruction.hh b/examples/advanced/CaTS/include/DetectorConstruction.hh index 776a876014..b5ba0ff587 100644 --- a/examples/advanced/CaTS/include/DetectorConstruction.hh +++ b/examples/advanced/CaTS/include/DetectorConstruction.hh @@ -49,7 +49,7 @@ class G4VPhysicalVolume; class ColorReader; class G4GDMLParser; -class DetectorConstruction : public G4VUserDetectorConstruction +class DetectorConstruction final : public G4VUserDetectorConstruction { public: DetectorConstruction(G4String fname); diff --git a/examples/advanced/CaTS/scripts/hit.py b/examples/advanced/CaTS/scripts/hit.py old mode 100644 new mode 100755 diff --git a/examples/advanced/CaTS/src/EventAction.cc b/examples/advanced/CaTS/src/EventAction.cc index 87fdcff36c..8c8d8ebae1 100644 --- a/examples/advanced/CaTS/src/EventAction.cc +++ b/examples/advanced/CaTS/src/EventAction.cc @@ -76,10 +76,12 @@ #include "G4OpticksHit.hh" #endif +#ifdef WITH_ROOT namespace { // Mutex to lock updating the global ion map G4Mutex ionIdMapMutex = G4MUTEX_INITIALIZER; } // namespace +#endif EventAction::EventAction() : G4UserEventAction() { diff --git a/examples/advanced/ChargeExchangeMC/ChargeExchangeMC.out b/examples/advanced/ChargeExchangeMC/ChargeExchangeMC.out index 401730413b..3a9c1857f7 100644 --- a/examples/advanced/ChargeExchangeMC/ChargeExchangeMC.out +++ b/examples/advanced/ChargeExchangeMC/ChargeExchangeMC.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -135,6 +135,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -162,7 +163,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -213,8 +214,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -696,6 +697,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1040,512 +1046,416 @@ Index : 9 used in the geometry : Yes ================================================================== ### Run 0 starts. -Event 1964 +Event 798 --- Reconstructed data: -- entry points: - left: -1.57322 5.5805 -15 cm - right: 10.8189 -2.60702 -15 cm + left: -10.1679 1.25646 -15 cm + right: -8.613 -4.64206 -15 cm target: 0 0 0 fm - -- the angle: 118.374 deg - -- mass of the output particle: 226.099 MeV - -- mass of the nucleus output particle: 1.26732 GeV + -- the angle: 128.523 deg + -- mass of the output particle: 529.12 MeV + -- mass of the nucleus output particle: 972.086 MeV -- production model data: Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV - Output particle (LAB) : eta 89.5172 13.2228 136.2951 MeV -- 279.0793 MeV - (SCM) : eta 89.5172 13.2228 16.8022 MeV -- 244.1131 MeV - Nucleus output particle (LAB) : neutron -89.5172 -13.2228 593.7049 MeV -- 1.4024 GeV - (SCM) : neutron -89.5172 -13.2228 -16.8022 MeV -- 1.2707 GeV - -- triggered angular ranges: - 5 [ 0.2000, 0.0000) - --- Energy Deposit - monitor : 835.116 keV - vc (l) : 0 eV - vc (r) : 0 eV - cal (l) : 185.852 MeV - 0 0.2953 24.76 30.63 2.687 0.2585 - 0 1.545 5.505 118.3 1.531 0 - 0 0 0 0.2895 0 0 - 0 0 0 0 0 0 - cal (r) : 93.2276 MeV - 0.7108 0 0 0 0 0 - 1.058 0.6241 0 0 0 0 - 3.827 83.99 0 0 0 0 - 1.19 1.825 0 0 0 0 -Event 2871 - --- Track Points - monitor : pi- [1,bp] 733 MeV : -1.788 -1.823 -0.125 cm [0.00708, 0.00496, 1] - target : pi- [1,bp] 732.5 MeV : 1.865 4.639 -1.615 cm [-0.6362, -0.7715, 0.006543] - : eta [5,op] 325.1 MeV : -0.6393 1.603 -1.589 cm [-0.8271, -0.4906, -0.2741] - : neutron [6,np] 459.6 MeV : -0.6393 1.603 -1.589 cm [-0.4286, -0.8801, 0.2042] - : pi0 [9,opdp] 119.1 MeV : -0.6393 1.603 -1.589 cm [-0.1827, -0.174, 0.9676] - : pi0 [7,opdp] 165.9 MeV : -0.6393 1.603 -1.589 cm [-0.6311, -0.6754, -0.3814] - vc (l) : tp is not valid - vc (r) : tp is not valid - cal (l) : tp is not valid - cal (r) : tp is not valid - --- - angle between the eta decay products : 97.8314 deg - --- Triggered angular ranges: - 5 [ 0.2000, 0.0000) - --- Production model data: - Incident particle (LAB) : pi- 5.6203 4.7380 731.4809 MeV -- 744.7134 MeV - (SCM) : pi- 3.4792 2.9330 452.8150 MeV -- 473.8586 MeV - Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV - (SCM) : proton -3.4792 -2.9330 -452.8150 MeV -- 1.0418 GeV - Output particle (LAB) : eta -103.4579 -89.0922 295.0327 MeV -- 637.0542 MeV - (SCM) : eta -105.5711 -90.8737 19.9964 MeV -- 565.6465 MeV - Nucleus output particle (LAB) : neutron 109.0782 93.8302 436.4481 MeV -- 1.0459 GeV - (SCM) : neutron 105.5711 90.8737 -19.9964 MeV -- 950.0454 MeV - --- Reconstructed data: - -- entry points: - left: -4.61383 -5.45322 -15 cm - right: 0.739048 -2.8521 -15 cm - target: 0 0 0 fm - -- the angle: 124.391 deg - -- mass of the output particle: 125.363 MeV - -- mass of the nucleus output particle: 1.38788 GeV - -- production model data: - Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV - (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV - Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV - (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV - Output particle (LAB) : eta -15.7700 -9.4902 65.2971 MeV -- 142.5428 MeV - (SCM) : eta -15.7700 -9.4902 3.7897 MeV -- 126.7640 MeV - Nucleus output particle (LAB) : neutron 15.7700 9.4902 664.7029 MeV -- 1.5390 GeV - (SCM) : neutron 15.7700 9.4902 -3.7897 MeV -- 1.3880 GeV + Output particle (LAB) : eta 94.2321 -9.5743 280.8637 MeV -- 606.4845 MeV + (SCM) : eta 94.2321 -9.5743 19.4994 MeV -- 537.8841 MeV + Nucleus output particle (LAB) : neutron -94.2321 9.5743 449.1363 MeV -- 1.0750 GeV + (SCM) : neutron -94.2321 9.5743 -19.4994 MeV -- 976.8846 MeV -- triggered angular ranges: 4 [ 0.4000, 0.2000) --- Energy Deposit - monitor : 365.646 keV + monitor : 361.13 keV vc (l) : 0 eV vc (r) : 0 eV - cal (l) : 63.654 MeV - 0 0 0 0 0 0 - 0 0 0 0.5362 0 0 - 0 0 0.2253 39.46 0.0827 0 - 0 0 0.2199 2.628 20.5 0 - cal (r) : 78.8889 MeV - 0 0 0 0 0 0 - 0 0 0.6833 3.802 0 0 - 0.4163 0 12.97 59.05 0 0 - 0.2542 0.8194 0.896 0 0 0 -Event 4099 - --- Track Points - monitor : pi- [1,bp] 726.4 MeV : -0.2907 -1.332 -0.125 cm [-0.006092, -0.003585, 1] - target : pi- [1,bp] 725.8 MeV : 2.803 4.14 -1.429 cm [-0.6486, -0.7612, -0.004111] - : eta [3,op] 234.1 MeV : -0.7014 0.02674 -1.451 cm [-0.2089, -0.9666, 0.1486] - : neutron [4,np] 533.2 MeV : -0.7014 0.02674 -1.451 cm [-0.7891, -0.6102, -0.07029] - : gamma [6,opdp] 253 MeV : -0.7014 0.02674 -1.451 cm [-0.98, 0.1991, -0.004589] - : gamma [5,opdp] 342.7 MeV : -0.7014 0.02674 -1.451 cm [0.5808, -0.8072, 0.1049] - vc (l) : gamma [5,opdp] 342.7 MeV : 10.58 4.892 -0.25 cm [0.1853, 0.1049, 0.9771] - vc (r) : gamma [6,opdp] 253 MeV : 3.723 -1.718 -0.25 cm [0.06131, -0.004589, 0.9981] - cal (l) : gamma [5,opdp] 342.7 MeV : 10.81 5.026 -15 cm [0.1853, 0.1049, 0.9771] - cal (r) : gamma [6,opdp] 253 MeV : 3.799 -1.724 -15 cm [0.06131, -0.004589, 0.9981] - --- - angle between the eta decay products : 136.921 deg - --- Triggered angular ranges: - 8 [-0.4000, -0.6000) - --- Production model data: - Incident particle (LAB) : pi- -5.2157 -2.6831 724.4986 MeV -- 737.8431 MeV - (SCM) : pi- -3.2378 -1.6656 449.7565 MeV -- 470.9289 MeV - Nucleus particle (LAB) : proton 0.0000 -0.0000 0.0000 eV -- 938.2720 MeV - (SCM) : proton 3.2378 1.6656 -449.7565 MeV -- 1.0405 GeV - Output particle (LAB) : eta 107.9905 34.7983 204.7772 MeV -- 595.7847 MeV - (SCM) : eta 109.8866 35.7737 -58.5977 MeV -- 562.9754 MeV - Nucleus output particle (LAB) : neutron -113.2063 -37.4814 519.7214 MeV -- 1.0803 GeV - (SCM) : neutron -109.8866 -35.7737 58.5977 MeV -- 948.4575 MeV + cal (l) : 378.72 MeV + 0 0 0 0.2582 1.315 0.1687 + 0 0 0.1643 2.079 269.7 66.6 + 0 0 0.7908 0.3713 8.649 26.3 + 0 0 0 0.5435 1.808 0 + cal (r) : 227.765 MeV + 0 0 0 0 0.7467 0 + 0 0 0 0.4516 2.803 0.3002 + 0 0 0 2.316 96.68 2.01 + 0 0 0 2.723 119.7 0 +Event 2429 --- Reconstructed data: -- entry points: - left: 9.59559 5.46319 -15 cm - right: 3.9186 -2.12833 -15 cm + left: 2.53077 -2.92951 -15 cm + right: 9.17663 5.14441 -15 cm target: 0 0 0 fm - -- the angle: 135.339 deg - -- mass of the output particle: 437.54 MeV - -- mass of the nucleus output particle: 1.0438 GeV + -- the angle: 123.821 deg + -- mass of the output particle: 487.995 MeV + -- mass of the nucleus output particle: 1.00378 GeV -- production model data: Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV - Output particle (LAB) : eta 135.9726 21.1650 171.3709 MeV -- 489.6387 MeV - (SCM) : eta 135.9726 21.1650 -45.7344 MeV -- 460.9444 MeV - Nucleus output particle (LAB) : neutron -135.9726 -21.1650 558.6291 MeV -- 1.1919 GeV - (SCM) : neutron -135.9726 -21.1650 45.7344 MeV -- 1.0538 GeV + Output particle (LAB) : eta 123.0979 2.7146 254.7507 MeV -- 564.0903 MeV + (SCM) : eta 123.0979 2.7146 10.9430 MeV -- 503.4081 MeV + Nucleus output particle (LAB) : neutron -123.0979 -2.7146 475.2493 MeV -- 1.1174 GeV + (SCM) : neutron -123.0979 -2.7146 -10.9430 MeV -- 1.0114 GeV -- triggered angular ranges: - 7 [-0.2000, -0.4000) + 5 [ 0.2000, 0.0000) --- Energy Deposit - monitor : 471.691 keV + monitor : 412.538 keV vc (l) : 0 eV - vc (r) : 0 eV - cal (l) : 308.073 MeV - 84.74 39.69 0 2.75 0 0 - 12.56 157.3 3.127 6.389 0 0 - 1.539 0 0 0 0 0 + vc (r) : 200.984 keV + cal (l) : 337.328 MeV + 0 0 1.664 0 0 0 + 0 0 1.335 5.006 0 0 + 0.3258 17.37 293.3 7.904 0.6692 0 + 0 1.216 6.709 1.437 0.4377 0 + cal (r) : 226.762 MeV + 1.773 110.5 0.409 0 0 0 + 1.751 107.5 2.816 0 0 0 + 1.18 0.5061 0.3509 0 0 0 0 0 0 0 0 0 - cal (r) : 181.565 MeV - 0 0.299 0 0 0 0 - 0 3.149 10.09 0 0 0 - 0 1.345 160.6 3.428 0 0 - 0.5994 0.2131 1.836 0 0 0 -Event 4985 - --- Track Points - monitor : pi- [1,bp] 737.5 MeV : -0.516 1.314 -0.125 cm [0.005385, -0.004072, 1] - target : pi- [1,bp] 736.9 MeV : 2.949 4.037 1.186 cm [-0.638, -0.77, -0.004918] - : eta [4,op] 386 MeV : 1.469 2.255 1.178 cm [-0.4049, -0.9068, -0.1171] - : neutron [5,np] 380.2 MeV : 1.469 2.255 1.178 cm [-0.8205, -0.5603, 0.1128] - : pi0 [8,opdp] 313 MeV : 1.469 2.255 1.178 cm [-0.4377, -0.8638, -0.2495] - : pi0 [6,opdp] 105.2 MeV : 1.469 2.255 1.178 cm [-0.2294, -0.2808, 0.932] - vc (l) : tp is not valid - vc (r) : tp is not valid - cal (l) : tp is not valid - cal (r) : tp is not valid - --- - angle between the eta decay products : 83.6596 deg - --- Triggered angular ranges: - 2 [ 0.8000, 0.6000) - --- Production model data: - Incident particle (LAB) : pi- 3.2494 -2.3177 732.2618 MeV -- 745.4550 MeV - (SCM) : pi- 2.0109 -1.4343 453.1612 MeV -- 474.1740 MeV - Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV - (SCM) : proton -2.0109 1.4343 -453.1612 MeV -- 1.0420 GeV - Output particle (LAB) : eta 105.2797 -45.2116 368.5646 MeV -- 670.1646 MeV - (SCM) : eta 104.0245 -44.3163 85.6951 MeV -- 565.9341 MeV - Nucleus output particle (LAB) : neutron -102.0303 42.8939 363.6972 MeV -- 1.0136 GeV - (SCM) : neutron -104.0245 44.3163 -85.6951 MeV -- 950.2167 MeV +Event 2989 --- Reconstructed data: -- entry points: - left: -8.78078 0.00727173 -15 cm - right: 6.47002 3.83656 -15 cm + left: 4.73237 -5.79626 -15 cm + right: 3.95309 -1.39881 -15 cm target: 0 0 0 fm - -- the angle: 115.464 deg - -- mass of the output particle: 101.425 MeV - -- mass of the nucleus output particle: 1.4118 GeV + -- the angle: 130.332 deg + -- mass of the output particle: 549.034 MeV + -- mass of the nucleus output particle: 933.965 MeV -- production model data: Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV - Output particle (LAB) : eta -10.3874 4.1759 64.0013 MeV -- 120.4513 MeV - (SCM) : eta -10.3874 4.1759 12.9976 MeV -- 102.8653 MeV - Nucleus output particle (LAB) : neutron 10.3874 -4.1759 665.9987 MeV -- 1.5610 GeV - (SCM) : neutron 10.3874 -4.1759 -12.9976 MeV -- 1.4119 GeV + Output particle (LAB) : eta -145.9732 -31.0394 273.9420 MeV -- 631.4701 MeV + (SCM) : eta -145.9732 -31.0394 -0.2252 MeV -- 568.9554 MeV + Nucleus output particle (LAB) : neutron 145.9732 31.0394 456.0580 MeV -- 1.0500 GeV + (SCM) : neutron 145.9732 31.0394 0.2252 MeV -- 945.8133 MeV -- triggered angular ranges: - 2 [ 0.8000, 0.6000) - --- Energy Deposit - monitor : 430.401 keV - vc (l) : 0 eV - vc (r) : 8.70591 keV - cal (l) : 54.7369 MeV - 0 0 0 0.3699 0 0 - 0 0 0 0 23.1 0 - 0 0 0 0.1989 30.69 0.3785 - 0 0 0 0 0 0 - cal (r) : 65.7143 MeV - 0 0.5921 0 1.235 0 0 - 0.4446 53.18 10.03 0.233 0 0 - 0 0 0 0 0 0 - 0 0 0 0 0 0 -Event 5401 - --- Reconstructed data: - -- entry points: - left: -4.50053 -3.09697 -15 cm - right: 4.87479 2.25238 -15 cm - target: 0 0 0 fm - -- the angle: 121.124 deg - -- mass of the output particle: 458.335 MeV - -- mass of the nucleus output particle: 1.02694 GeV - -- production model data: - Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV - (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV - Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV - (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV - Output particle (LAB) : eta 133.0925 -10.5974 268.7994 MeV -- 547.8594 MeV - (SCM) : eta 133.0925 -10.5974 34.3600 MeV -- 478.6203 MeV - Nucleus output particle (LAB) : neutron -133.0925 10.5974 461.2006 MeV -- 1.1336 GeV - (SCM) : neutron -133.0925 10.5974 -34.3600 MeV -- 1.0361 GeV - -- triggered angular ranges: - 4 [ 0.4000, 0.2000) - --- Energy Deposit - monitor : 397.906 keV - vc (l) : 0 eV - vc (r) : 0 eV - cal (l) : 350.047 MeV - 0 0 0.003596 0 0.7426 0 - 1.025 0.5138 0.02048 2.51 3.115 0 - 0 0 8.521 234.4 75.15 0.627 - 0 0 0 15.73 5.907 1.796 - cal (r) : 197.812 MeV - 1.262 2.335 6.757 0 0 0 - 1.247 40.95 124.1 0.7473 0 0 - 0 8.069 5.078 6.46 0.4416 0 - 0 0 0.3265 0 0 0 -Event 8211 - --- Track Points - monitor : pi- [1,bp] 733.9 MeV : 1.007 -0.359 -0.125 cm [-0.003232, 0.002126, 1] - target : pi- [1,bp] 733.4 MeV : 3.854 3.186 -0.2667 cm [-0.6452, -0.764, 0.00428] - : eta [7,op] 284.9 MeV : 1.443 0.3314 -0.2507 cm [-0.19, -0.9803, 0.05339] - : neutron [8,np] 504.5 MeV : 1.443 0.3314 -0.2507 cm [-0.833, -0.5527, -0.02455] - : gamma [10,opdp] 366.6 MeV : 1.443 0.3314 -0.2507 cm [0.5312, -0.8471, 0.01753] - : gamma [9,opdp] 251 MeV : 1.443 0.3314 -0.2507 cm [-0.9916, 0.1243, 0.03502] - vc (l) : gamma [10,opdp] 366.6 MeV : 8.718 0.7815 -0.25 cm [0.1234, 0.01753, 0.9922] - vc (r) : gamma [9,opdp] 251 MeV : 7.593 1.874 -0.25 cm [0.1366, 0.03502, 0.99] - cal (l) : gamma [10,opdp] 366.6 MeV : 8.874 0.8036 -15 cm [0.1234, 0.01753, 0.9922] - cal (r) : gamma [9,opdp] 251 MeV : 7.765 1.918 -15 cm [0.1366, 0.03502, 0.99] - --- - angle between the eta decay products : 129.155 deg - --- Triggered angular ranges: 6 [ 0.0000, -0.2000) + --- Energy Deposit + monitor : 435.726 keV + vc (l) : 0 eV + vc (r) : 0 eV + cal (l) : 225.239 MeV + 0 0 0 0 0 0 + 0.04669 3.147 0 0 0 0 + 2.868 5.926 28.13 11.22 0 0 + 0.2522 11.43 162.2 0 0 0 + cal (r) : 406.231 MeV + 0 0.7268 2.331 0.9906 0 0 + 0 5.883 28.76 2.167 0.5668 0 + 0 13.39 338 0.4482 0 0 + 0.5153 8.4 4.043 0 0 0 +Event 3993 + --- Track Points + monitor : pi- [1,bp] 750.8 MeV : -3.399 -2.658 -1.25 mm [-0.006491, 0.002246, 1] + target : pi- [1,bp] 750.3 MeV : 2.816 4.132 -0.2097 cm [-0.6465, -0.7629, 0.001647] + : eta [5,op] 361.7 MeV : -8.795 -2.324 -2.001 mm [-0.9151, -0.4004, -0.04796] + : neutron [6,np] 453.4 MeV : -8.795 -2.324 -2.001 mm [-0.3365, -0.9409, 0.03861] + : pi0 [9,opdp] 140.6 MeV : -8.795 -2.324 -2.001 mm [-0.5583, -0.5776, -0.5956] + : pi0 [7,opdp] 271.4 MeV : -8.795 -2.324 -2.001 mm [-0.792, -0.4427, 0.4204] + vc (l) : tp is not valid + vc (r) : tp is not valid + cal (l) : tp is not valid + cal (r) : tp is not valid + --- + angle between the eta decay products : 63.4167 deg + --- Triggered angular ranges: + 4 [ 0.4000, 0.2000) --- Production model data: - Incident particle (LAB) : pi- -4.6299 2.8270 732.4850 MeV -- 745.6832 MeV - (SCM) : pi- -2.8650 1.7493 453.2571 MeV -- 474.2711 MeV + Incident particle (LAB) : pi- -3.1081 0.1627 748.5312 MeV -- 761.4385 MeV + (SCM) : pi- -1.9110 0.1000 460.2367 MeV -- 480.9380 MeV Nucleus particle (LAB) : proton -0.0000 0.0000 0.0000 eV -- 938.2720 MeV - (SCM) : proton 2.8650 -1.7493 -453.2571 MeV -- 1.0420 GeV - Output particle (LAB) : eta 138.0683 15.2119 248.7675 MeV -- 617.5211 MeV - (SCM) : eta 139.7806 14.1664 -22.1266 MeV -- 566.0227 MeV - Nucleus output particle (LAB) : neutron -142.6982 -12.3849 483.7175 MeV -- 1.0664 GeV - (SCM) : neutron -139.7806 -14.1664 22.1266 MeV -- 950.2694 MeV + (SCM) : proton 1.9110 -0.1000 -460.2367 MeV -- 1.0451 GeV + Output particle (LAB) : eta -160.4322 -17.3442 323.6746 MeV -- 656.4734 MeV + (SCM) : eta -159.2484 -17.4062 38.5819 MeV -- 572.1052 MeV + Nucleus output particle (LAB) : neutron 157.3241 17.5070 424.8566 MeV -- 1.0432 GeV + (SCM) : neutron 159.2484 17.4062 -38.5819 MeV -- 953.9049 MeV --- Reconstructed data: -- entry points: - left: 8.83701 0.736842 -15 cm - right: 8.13441 3.63147 -15 cm + left: 9 -3 -15 cm + right: 1.83444 2.71963 -15 cm target: 0 0 0 fm - -- the angle: 130.511 deg - -- mass of the output particle: 526.961 MeV - -- mass of the nucleus output particle: 965.999 MeV + -- the angle: 136.83 deg + -- mass of the output particle: 114.438 MeV + -- mass of the nucleus output particle: 1.39368 GeV -- production model data: Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV - Output particle (LAB) : eta 118.0497 18.9477 230.8113 MeV -- 587.5855 MeV - (SCM) : eta 118.0497 18.9477 -26.9542 MeV -- 541.0262 MeV - Nucleus output particle (LAB) : neutron -118.0497 -18.9477 499.1887 MeV -- 1.0939 GeV - (SCM) : neutron -118.0497 -18.9477 26.9542 MeV -- 973.7425 MeV - -- triggered angular ranges: - 7 [-0.2000, -0.4000) - --- Energy Deposit - monitor : 417.235 keV - vc (l) : 0 eV - vc (r) : 0 eV - cal (l) : 340.114 MeV - 0.6373 0.3785 0.2727 0 0 0 - 18.64 288.9 3.189 0.4507 0 0 - 11.96 7.629 1.994 2.622 0 0 - 0.759 1.644 0.5401 0.531 0 0 - cal (r) : 247.472 MeV - 6.263 1.077 1.393 0.879 0 0 - 6.255 214.2 12.94 0.8579 0 0 - 0 2.943 0.6439 0 0 0 - 0 0 0 0 0 0 -Event 10143 - --- Track Points - monitor : pi- [1,bp] 732.5 MeV : 2.955 -8.17 -1.25 mm [0.002571, 0.001897, 1] - target : pi- [1,bp] 732 MeV : 3.479 3.591 -0.7962 cm [-0.6421, -0.7667, 0.0006772] - : eta [7,op] 286.5 MeV : 2.307 2.191 -0.795 cm [-0.2022, -0.9703, -0.1331] - : neutron [8,np] 501.1 MeV : 2.307 2.191 -0.795 cm [-0.8218, -0.5646, 0.07677] - : gamma [10,opdp] 388.4 MeV : 2.307 2.191 -0.795 cm [0.409, -0.9102, -0.06536] - : gamma [9,opdp] 229.9 MeV : 2.307 2.191 -0.795 cm [-0.9429, 0.3283, -0.05545] - vc (l) : gamma [10,opdp] 388.4 MeV : 2.182 -4.71 -0.25 cm [-0.01394, -0.06536, 0.9978] - vc (r) : gamma [9,opdp] 229.9 MeV : -7.146 -4.159 -0.25 cm [-0.07307, -0.05545, 0.9958] - cal (l) : gamma [10,opdp] 388.4 MeV : 2.164 -4.791 -15 cm [-0.01394, -0.06536, 0.9978] - cal (r) : gamma [9,opdp] 229.9 MeV : -7.238 -4.229 -15 cm [-0.07307, -0.05545, 0.9958] - --- - angle between the eta decay products : 132.914 deg - --- Triggered angular ranges: - 6 [ 0.0000, -0.2000) - --- Production model data: - Incident particle (LAB) : pi- 0.7016 0.3417 731.6423 MeV -- 744.8361 MeV - (SCM) : pi- 0.4343 0.2115 452.8922 MeV -- 473.9108 MeV - Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV - (SCM) : proton -0.4343 -0.2115 -452.8922 MeV -- 1.0419 GeV - Output particle (LAB) : eta 134.3078 -38.1310 250.1884 MeV -- 618.2553 MeV - (SCM) : eta 134.0481 -38.2575 -20.6027 MeV -- 565.6941 MeV - Nucleus output particle (LAB) : neutron -133.6061 38.4727 481.4538 MeV -- 1.0649 GeV - (SCM) : neutron -134.0481 38.2575 20.6027 MeV -- 950.0737 MeV - --- Reconstructed data: - -- entry points: - left: 2.65987 -4.6878 -15 cm - right: -6.51834 -4.54077 -15 cm - target: 0 0 0 fm - -- the angle: 137.858 deg - -- mass of the output particle: 504.871 MeV - -- mass of the nucleus output particle: 969.595 MeV - -- production model data: - Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV - (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV - Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV - (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV - Output particle (LAB) : eta 152.3448 -43.5833 204.2290 MeV -- 567.1973 MeV - (SCM) : eta 152.3448 -43.5833 -46.6369 MeV -- 531.2045 MeV - Nucleus output particle (LAB) : neutron -152.3448 43.5833 525.7710 MeV -- 1.1143 GeV - (SCM) : neutron -152.3448 43.5833 46.6369 MeV -- 983.5641 MeV - -- triggered angular ranges: - 7 [-0.2000, -0.4000) - --- Energy Deposit - monitor : 384.251 keV - vc (l) : 0 eV - vc (r) : 0 eV - cal (l) : 368.715 MeV - 0 0 0 0 0 0 - 0 0 0.659 0.4322 0 0 - 0 1.838 311 4.817 0.3078 0 - 1.853 0.4907 39.73 7.636 0 0 - cal (r) : 198.483 MeV - 0 0 0 0 0 0 - 0.3653 0 0 0 0.2415 0 - 0 0.3544 0.006736 32.17 137.6 0.7949 - 0 0 0.1463 8.018 17.87 0.935 -Event 11161 - --- Reconstructed data: - -- entry points: - left: 4.41054 5.31558 -15 cm - right: -5.96566 4.1712 -15 cm - target: 0 0 0 fm - -- the angle: 138.926 deg - -- mass of the output particle: 188.699 MeV - -- mass of the nucleus output particle: 1.29029 GeV - -- production model data: - Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV - (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV - Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV - (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV - Output particle (LAB) : eta 108.3611 19.4056 81.0386 MeV -- 233.0088 MeV - (SCM) : eta 108.3611 19.4056 -22.3337 MeV -- 219.6011 MeV - Nucleus output particle (LAB) : neutron -108.3611 -19.4056 648.9614 MeV -- 1.4485 GeV - (SCM) : neutron -108.3611 -19.4056 22.3337 MeV -- 1.2952 GeV + Output particle (LAB) : eta -37.4803 1.8676 51.7973 MeV -- 131.1003 MeV + (SCM) : eta -37.4803 1.8676 -5.6816 MeV -- 120.5679 MeV + Nucleus output particle (LAB) : neutron 37.4803 -1.8676 678.2027 MeV -- 1.5504 GeV + (SCM) : neutron 37.4803 -1.8676 5.6816 MeV -- 1.3942 GeV -- triggered angular ranges: 6 [ 0.0000, -0.2000) --- Energy Deposit - monitor : 413.242 keV + monitor : 435.025 keV vc (l) : 0 eV vc (r) : 0 eV - cal (l) : 175.004 MeV - 0.3272 3.792 94.16 2.27 0 0 - 2.485 8.466 60.16 1.452 0 0 - 0.3809 0 0.9685 0.5439 0 0 - 0 0 0 0 0 0 - cal (r) : 58.0046 MeV - 0 0 0.09569 2.023 1.062 0 - 0 0.4829 0 13.59 40.32 0.4313 + cal (l) : 42.9592 MeV 0 0 0 0 0 0 0 0 0 0 0 0 -Event 11930 + 0 42.96 0 0 0 0 + 0 0 0 0 0 0 + cal (r) : 88.1411 MeV + 1.664 0 0 0 0 0 + 0.2828 0.5689 14.71 67.87 0.12 0 + 0 2.727 0 0.1908 0 0 + 0 0 0 0 0 0 +Event 5924 --- Reconstructed data: -- entry points: - left: -0.575875 -3.12133 -15 cm - right: -5.92683 -0.642717 -15 cm + left: 9.56489 -1.39421 -15 cm + right: 9.19168 5.19126 -15 cm target: 0 0 0 fm - -- the angle: 134.966 deg - -- mass of the output particle: 517.577 MeV - -- mass of the nucleus output particle: 969.607 MeV + -- the angle: 130.305 deg + -- mass of the output particle: 135.243 MeV + -- mass of the nucleus output particle: 1.36168 GeV -- production model data: Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV - Output particle (LAB) : eta 133.1996 -21.4805 229.6613 MeV -- 582.0945 MeV - (SCM) : eta 133.1996 -21.4805 -25.5846 MeV -- 535.4850 MeV - Nucleus output particle (LAB) : neutron -133.1996 21.4805 500.3387 MeV -- 1.0994 GeV - (SCM) : neutron -133.1996 21.4805 25.5846 MeV -- 979.2836 MeV + Output particle (LAB) : eta 66.6886 1.6501 58.1750 MeV -- 161.6325 MeV + (SCM) : eta 66.6886 1.6501 -13.3160 MeV -- 151.3871 MeV + Nucleus output particle (LAB) : neutron -66.6886 -1.6501 671.8250 MeV -- 1.5199 GeV + (SCM) : neutron -66.6886 -1.6501 13.3160 MeV -- 1.3634 GeV -- triggered angular ranges: 6 [ 0.0000, -0.2000) --- Energy Deposit - monitor : 509.962 keV + monitor : 408.157 keV vc (l) : 0 eV vc (r) : 0 eV - cal (l) : 369.959 MeV - 0 0 0.4955 0 0 0 - 0 0 1.848 7.552 0 0 - 0 1.234 56.78 280.8 0.483 0 - 0 0 15.17 5.628 0 0 - cal (r) : 212.135 MeV - 0 0 0 0.2151 0 0 - 0 0 0 20.13 72.03 0 - 0 0 0 95.75 21.36 0 - 0 0 0 0.3787 2.283 0 -Event 12093 - --- Track Points - monitor : pi- [1,bp] 728.9 MeV : 0.7398 -1.295 -0.125 cm [0.01106, -0.01176, 0.9999] - target : pi- [1,bp] 728 MeV : 3.973 3.036 -1.624 cm [-0.6335, -0.7737, -0.01143] - : eta [4,op] 382 MeV : 0.4636 -1.25 -1.687 cm [-0.5724, -0.7827, 0.2445] - : neutron [5,np] 371.3 MeV : 0.4636 -1.25 -1.687 cm [-0.6523, -0.7075, -0.2718] - : pi0 [30,opdp] 209.7 MeV : 0.4636 -1.25 -1.687 cm [0.2412, -0.9704, 0.008518] - : pi0 [28,opdp] 156.2 MeV : 0.4636 -1.25 -1.687 cm [-0.6849, -0.4908, 0.5385] - vc (l) : tp is not valid - vc (r) : tp is not valid - cal (l) : tp is not valid - cal (r) : tp is not valid - --- - angle between the eta decay products : 71.5974 deg - --- Triggered angular ranges: - 2 [ 0.8000, 0.6000) - --- Production model data: - Incident particle (LAB) : pi- 7.9868 -7.5267 726.5379 MeV -- 739.9038 MeV - (SCM) : pi- 4.9539 -4.6685 450.6412 MeV -- 471.8089 MeV - Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV - (SCM) : proton -4.9539 4.6685 -450.6412 MeV -- 1.0409 GeV - Output particle (LAB) : eta 24.6675 93.3992 369.6187 MeV -- 667.9092 MeV - (SCM) : eta 21.5846 96.3045 89.1741 MeV -- 563.7776 MeV - Nucleus output particle (LAB) : neutron -16.6808 -100.9258 356.9192 MeV -- 1.0103 GeV - (SCM) : neutron -21.5846 -96.3045 -89.1741 MeV -- 948.9339 MeV + cal (l) : 112.09 MeV + 0 0 0 0 0 0 + 9.786 11.22 2.156 0 0 0 + 4.78 80.36 1.809 0 0 0 + 0.608 0 1.375 0 0 0 + cal (r) : 49.5421 MeV + 1.146 4.007 0.5435 0 0 0 + 0 43.85 0 0 0 0 + 0 0 0 0 0 0 + 0 0 0 0 0 0 +Event 5956 --- Reconstructed data: -- entry points: - left: 3.12996 -3.39986 -15 cm - right: -9.29647 1.14106 -15 cm + left: 9.70422 -3.5218 -15 cm + right: -11.4703 1.74504 -15 cm target: 0 0 0 fm - -- the angle: 141.763 deg - -- mass of the output particle: 378.736 MeV - -- mass of the nucleus output particle: 1.13197 GeV + -- the angle: 149.993 deg + -- mass of the output particle: 529.794 MeV + -- mass of the nucleus output particle: 962.425 MeV -- production model data: Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV - Output particle (LAB) : eta 2.9327 -7.9535 131.4291 MeV -- 400.9817 MeV - (SCM) : eta 2.9327 -7.9535 -47.3467 MeV -- 381.7780 MeV - Nucleus output particle (LAB) : neutron -2.9327 7.9535 598.5709 MeV -- 1.2805 GeV - (SCM) : neutron -2.9327 7.9535 47.3467 MeV -- 1.1330 GeV + Output particle (LAB) : eta 63.6017 -11.0495 143.7746 MeV -- 552.7388 MeV + (SCM) : eta 63.6017 -11.0495 -106.7774 MeV -- 544.2889 MeV + Nucleus output particle (LAB) : neutron -63.6017 11.0495 586.2254 MeV -- 1.1288 GeV + (SCM) : neutron -63.6017 11.0495 106.7774 MeV -- 970.4797 MeV -- triggered angular ranges: 10 [-0.8000, -1.0000) --- Energy Deposit - monitor : 353.171 keV - vc (l) : 113.489 keV + monitor : 394.652 keV + vc (l) : 0 eV vc (r) : 0 eV - cal (l) : 205.719 MeV + cal (l) : 310.561 MeV + 0 6.519 0 0 0 0 + 9.283 1.784 0.7205 0 0 0 + 2.568 212.9 1.043 0 0 0 + 16.48 53.98 5.275 0 0 0 + cal (r) : 242.178 MeV + 0 0 0 0 1.178 1.03 + 0 0 0 0 144.3 79.75 + 0 0 0 0.1925 6.587 8.343 + 0 0 0 0.374 0 0.4226 +Event 7017 + --- Track Points + monitor : pi- [1,bp] 733.2 MeV : 1.523 0.2231 -0.125 cm [-0.006194, 0.01865, 0.9998] + target : pi- [1,bp] 732.6 MeV : 4.127 2.823 0.7481 cm [-0.6475, -0.7618, 0.01883] + : eta [4,op] 273.8 MeV : 0.3046 -1.675 0.8593 cm [-0.9414, -0.3357, 0.0318] + : neutron [5,np] 512.3 MeV : 0.3046 -1.675 0.8593 cm [-0.4228, -0.9061, 0.01331] + : gamma [7,opdp] 227.9 MeV : 0.3046 -1.675 0.8593 cm [0.4907, -0.8675, 0.08189] + : gamma [6,opdp] 384.6 MeV : 0.3046 -1.675 0.8593 cm [-0.9611, 0.275, -0.02589] + vc (l) : gamma [7,opdp] 227.9 MeV : 4.059 5.566 -0.25 cm [0.07814, 0.08189, 0.9936] + vc (r) : gamma [6,opdp] 384.6 MeV : 5.329 -6.812 -2.5 mm [-0.01691, -0.02589, 0.9995] + cal (l) : gamma [7,opdp] 227.9 MeV : 4.158 5.669 -15 cm [0.07814, 0.08189, 0.9936] + cal (r) : gamma [6,opdp] 384.6 MeV : 0.5117 -0.7136 -15 cm [-0.01691, -0.02589, 0.9995] + --- + angle between the eta decay products : 135.424 deg + --- Triggered angular ranges: + 7 [-0.2000, -0.4000) + --- Production model data: + Incident particle (LAB) : pi- -5.9206 15.5259 730.9847 MeV -- 744.3753 MeV + (SCM) : pi- -3.6656 9.6124 452.5704 MeV -- 473.7147 MeV + Nucleus particle (LAB) : proton -0.0000 0.0000 0.0000 eV -- 938.2720 MeV + (SCM) : proton 3.6656 -9.6124 -452.5704 MeV -- 1.0418 GeV + Output particle (LAB) : eta -138.3710 8.7070 236.1125 MeV -- 612.4738 MeV + (SCM) : eta -136.1902 2.9882 -33.1361 MeV -- 565.5152 MeV + Nucleus output particle (LAB) : neutron 132.4504 6.8189 494.8722 MeV -- 1.0702 GeV + (SCM) : neutron 136.1902 -2.9882 33.1361 MeV -- 949.9672 MeV + --- Reconstructed data: + -- entry points: + left: 4.71103 6.54986 -15 cm + right: -0.329119 -0.306664 -15 cm + target: 0 0 0 fm + -- the angle: 134.514 deg + -- mass of the output particle: 507.72 MeV + -- mass of the nucleus output particle: 962.224 MeV + -- production model data: + Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV + (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV + Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV + (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV + Output particle (LAB) : eta -171.4950 19.1106 230.2017 MeV -- 583.5650 MeV + (SCM) : eta -171.4950 19.1106 -25.6934 MeV -- 536.8570 MeV + Nucleus output particle (LAB) : neutron 171.4950 -19.1106 499.7983 MeV -- 1.0979 GeV + (SCM) : neutron 171.4950 -19.1106 25.6934 MeV -- 977.9117 MeV + -- triggered angular ranges: + 6 [ 0.0000, -0.2000) + --- Energy Deposit + monitor : 439.85 keV + vc (l) : 0 eV + vc (r) : 0 eV + cal (l) : 194.994 MeV + 0.3838 21.27 117.5 0 0 0 + 0 4.991 50.42 0 0 0 + 0 0 0 0.4269 0 0 0 0 0 0 0 0 - 0 1.717 1.85 0 0 0.4758 - 0.1962 12.69 169.8 8.324 0.3718 0 - 0 6.354 1.724 2.168 0 0 - cal (r) : 195.263 MeV - 0 0 0 0.3299 6.177 1.111 - 0 0 0 0 145.4 4.81 - 0 0 0 3.856 22.04 9.515 - 0 0 0.2432 1.766 0 0 + cal (r) : 388.571 MeV + 1.124 0.6301 0 1.817 2.379 0 + 0 0 9.691 34.91 2.508 0.2849 + 0 0.4146 243.6 90.07 0.2577 0.3332 + 0 0 0.2893 0.2172 0 0 +Event 11869 + --- Reconstructed data: + -- entry points: + left: -11.3368 0.949074 -15 cm + right: 9.65803 -3.2602 -15 cm + target: 0 0 0 fm + -- the angle: 110.174 deg + -- mass of the output particle: 205.313 MeV + -- mass of the nucleus output particle: 1.27494 GeV + -- production model data: + Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV + (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV + Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV + (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV + Output particle (LAB) : eta 104.6313 -0.8665 162.9122 MeV -- 282.2094 MeV + (SCM) : eta 104.6313 -0.8665 44.8406 MeV -- 234.7603 MeV + Nucleus output particle (LAB) : neutron -104.6313 0.8665 567.0878 MeV -- 1.3993 GeV + (SCM) : neutron -104.6313 0.8665 -44.8406 MeV -- 1.2800 GeV + -- triggered angular ranges: + 4 [ 0.4000, 0.2000) + --- Energy Deposit + monitor : 382.425 keV + vc (l) : 0 eV + vc (r) : 0 eV + cal (l) : 206.21 MeV + 0 0 0 0 0 0.2006 + 0 0 0.1975 0 123.7 60.78 + 0 0 0 0.7977 9.268 8.649 + 0 0 0 0 0 2.636 + cal (r) : 75.9994 MeV + 0 0 0 0 0 0 + 0.6584 0.3541 0 0.9066 0 0 + 2.061 65.84 0.6499 0 0 0 + 4.803 0.7233 0 0 0 0 +Event 12029 + --- Reconstructed data: + -- entry points: + left: 5.88138 3.28708 -15 cm + right: -9.39562 -1.46741 -15 cm + target: 0 0 0 fm + -- the angle: 144.486 deg + -- mass of the output particle: 560.64 MeV + -- mass of the nucleus output particle: 919.188 MeV + -- production model data: + Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV + (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV + Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV + (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV + Output particle (LAB) : eta 132.6654 14.8982 188.5831 MeV -- 606.3848 MeV + (SCM) : eta 132.6654 14.8982 -82.8902 MeV -- 582.2454 MeV + Nucleus output particle (LAB) : neutron -132.6654 -14.8982 541.4169 MeV -- 1.0751 GeV + (SCM) : neutron -132.6654 -14.8982 82.8902 MeV -- 932.5233 MeV + -- triggered angular ranges: + 8 [-0.4000, -0.6000) + --- Energy Deposit + monitor : 394.343 keV + vc (l) : 0 eV + vc (r) : 0 eV + cal (l) : 375.909 MeV + 1.195 46.67 5.232 0 0.4769 0 + 1.174 146.9 162.1 0.3446 0 0 + 0 6.088 2.901 1.315 0 0 + 0.6038 0 0 0 0 0.9061 + cal (r) : 230.476 MeV + 0 0 0 0 1.701 3.459 + 0 0 0 1.772 3.452 1.629 + 0 0 0 4.701 206.1 3.071 + 0 0 0 0.2394 3.274 1.056 +Event 14081 + --- Reconstructed data: + -- entry points: + left: 1.76674 -4.72587 -15 cm + right: 1.7346 -3.91783 -15 cm + target: 0 0 0 fm + -- the angle: 129.401 deg + -- mass of the output particle: 155.598 MeV + -- mass of the nucleus output particle: 1.35839 GeV + -- production model data: + Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV + (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV + Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV + (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV + Output particle (LAB) : eta 7.6278 -12.4081 72.3577 MeV -- 172.2165 MeV + (SCM) : eta 7.6278 -12.4081 -2.6730 MeV -- 156.3011 MeV + Nucleus output particle (LAB) : neutron -7.6278 12.4081 657.6423 MeV -- 1.5093 GeV + (SCM) : neutron -7.6278 12.4081 2.6730 MeV -- 1.3585 GeV + -- triggered angular ranges: + 6 [ 0.0000, -0.2000) + --- Energy Deposit + monitor : 708.214 keV + vc (l) : 0 eV + vc (r) : 0 eV + cal (l) : 89.1994 MeV + 0 0 0 0 0 0 + 0 0.2924 0 0 0 0 + 0 0 73.42 2.438 0 0 + 0 0 8.142 4.904 0 0 + cal (r) : 83.0171 MeV + 0 0 0 0 0 0 + 0 0 0 0 0 0 + 0 0.2615 79.28 1.154 0.3255 0 + 0 0 0.8978 1.102 0 0 Run terminated. Run Summary - Number of events processed : 12094, effectively: 10 - User=8.820000s Real=8.897691s Sys=0.000000s + Number of events processed : 14082, effectively: 10 + User=11.770000s Real=11.900029s Sys=0.010000s --- Setup acceptances (range | real (trg / mon) | rec (trg / mon / all)): - 1 [ 1.0000, 0.8000) | 0.00000000 ( 0 / 322 ) | 0.00000000 ( 0 / 322 / 410 ) - 2 [ 0.8000, 0.6000) | 0.00552486 ( 2 / 362 ) | 0.00276243 ( 1 / 362 / 427 ) - 3 [ 0.6000, 0.4000) | 0.00000000 ( 0 / 331 ) | 0.00000000 ( 0 / 331 / 413 ) - 4 [ 0.4000, 0.2000) | 0.00000000 ( 0 / 336 ) | 0.00297619 ( 1 / 336 / 410 ) - 5 [ 0.2000, 0.0000) | 0.00309598 ( 1 / 323 ) | 0.00000000 ( 0 / 323 / 399 ) - 6 [ 0.0000, -0.2000) | 0.00576369 ( 2 / 347 ) | 0.00000000 ( 0 / 347 / 426 ) - 7 [-0.2000, -0.4000) | 0.00000000 ( 0 / 350 ) | 0.00857143 ( 3 / 350 / 438 ) - 8 [-0.4000, -0.6000) | 0.00289017 ( 1 / 346 ) | 0.00000000 ( 0 / 346 / 414 ) - 9 [-0.6000, -0.8000) | 0.00000000 ( 0 / 334 ) | 0.00000000 ( 0 / 334 / 425 ) - 10 [-0.8000, -1.0000) | 0.00000000 ( 0 / 343 ) | 0.00291545 ( 1 / 343 / 417 ) + 1 [ 1.0000, 0.8000) | 0.00000000 ( 0 / 402 ) | 0.00000000 ( 0 / 402 / 509 ) + 2 [ 0.8000, 0.6000) | 0.00000000 ( 0 / 361 ) | 0.00000000 ( 0 / 361 / 440 ) + 3 [ 0.6000, 0.4000) | 0.00000000 ( 0 / 392 ) | 0.00000000 ( 0 / 392 / 487 ) + 4 [ 0.4000, 0.2000) | 0.00261097 ( 1 / 383 ) | 0.00000000 ( 0 / 383 / 481 ) + 5 [ 0.2000, 0.0000) | 0.00000000 ( 0 / 423 ) | 0.00000000 ( 0 / 423 / 520 ) + 6 [ 0.0000, -0.2000) | 0.00000000 ( 0 / 401 ) | 0.00498753 ( 2 / 401 / 497 ) + 7 [-0.2000, -0.4000) | 0.00257732 ( 1 / 388 ) | 0.00000000 ( 0 / 388 / 481 ) + 8 [-0.4000, -0.6000) | 0.00000000 ( 0 / 369 ) | 0.00000000 ( 0 / 369 / 475 ) + 9 [-0.6000, -0.8000) | 0.00000000 ( 0 / 424 ) | 0.00000000 ( 0 / 424 / 524 ) + 10 [-0.8000, -1.0000) | 0.00000000 ( 0 / 387 ) | 0.00000000 ( 0 / 387 / 483 ) --- - False hits (edt | rec): 4 | 4 + False hits (edt | rec): 8 | 8 G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 17; of which, static: 3 -Dynamic pools deleted: 14 / Total memory freed: 0.62 MB +Dynamic pools deleted: 14 / Total memory freed: 0.86 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/advanced/HGCal_testbeam/testbeam_electron.out b/examples/advanced/HGCal_testbeam/testbeam_electron.out index e55a74c373..ca5505ebf9 100644 --- a/examples/advanced/HGCal_testbeam/testbeam_electron.out +++ b/examples/advanced/HGCal_testbeam/testbeam_electron.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -1638,6 +1638,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -1665,7 +1666,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -1716,8 +1717,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -2199,6 +2200,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda diff --git a/examples/advanced/ICRP110_HumanPhantoms/ICRP110Phantoms.out b/examples/advanced/ICRP110_HumanPhantoms/ICRP110Phantoms.out index 406b3ec082..d1163873b5 100644 --- a/examples/advanced/ICRP110_HumanPhantoms/ICRP110Phantoms.out +++ b/examples/advanced/ICRP110_HumanPhantoms/ICRP110Phantoms.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -166,6 +168,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -193,7 +196,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -229,8 +232,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -261,8 +263,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -386,7 +388,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -396,10 +398,11 @@ nuclearStopping: for GenericIon SubType=8 BuildTable=0 ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 1.4427 us -Max life time (from G4DeexPrecoParameters) 1.4427 us +min MeanLife (from G4NuclideTable) 1 ns +Max life time (from G4DeexPrecoParameters) 1000 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -765,6 +768,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1066,7 +1074,7 @@ Limit excitation energy for Fermi BreakUp 20 MeV Level density (1/MeV) 0.075 Use simple level density model 1 Use discrete excitation energy of the residual 1 -Time limit for long lived isomeres 1.4427 us +Time limit for long lived isomeres 1000 ps Isomer production flag 1 Internal e- conversion flag 1 Store e- internal conversion data 1 @@ -1119,7 +1127,7 @@ Reading AM_organs.dat Reading OrganMasses.dat NOrganIDs: 142 Writing output to ICRP110.out -Total energy deposited over all Organs within the Phantom is 1.42028e-09 J -Total absorbed dose over all phantom organs is 3.57929e-09 Gy +Total energy deposited over all Organs within the Phantom is 1.44781e-09 J +Total absorbed dose over all phantom organs is 3.23137e-09 Gy Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/advanced/ICRP110_HumanPhantoms/OrganDoses.out b/examples/advanced/ICRP110_HumanPhantoms/OrganDoses.out index 55de65e423..14d2aa5668 100644 --- a/examples/advanced/ICRP110_HumanPhantoms/OrganDoses.out +++ b/examples/advanced/ICRP110_HumanPhantoms/OrganDoses.out @@ -2,38 +2,44 @@ -------------------------------- OrganID Edep (J) Dose (Gy) -------------------------------- - 26 | 3.45941e-10 6.14624e-10 - 27 | 2.7459e-10 6.08767e-10 - 39 | 2.68101e-14 3.52208e-13 - 47 | 1.88424e-12 1.83078e-11 - 48 | 1.47002e-12 1.99867e-11 - 61 | 5.10152e-10 3.51829e-10 - 106 | 5.5413e-11 4.55022e-11 - 114 | 3.31986e-13 5.5331e-10 - 116 | 1.46924e-10 1.40127e-10 - 120 | 1.65667e-11 3.89897e-10 - 121 | 3.01801e-11 7.10288e-10 - 122 | 3.67953e-11 1.26297e-10 + 6 | 1.20078e-14 2.35446e-12 + 26 | 3.28199e-10 5.83102e-10 + 27 | 2.78845e-10 6.182e-10 + 39 | 1.85489e-12 2.4368e-11 + 40 | 1.45248e-13 1.96547e-12 + 47 | 1.76321e-12 1.71318e-11 + 48 | 3.82399e-12 5.19917e-11 + 61 | 5.16747e-10 3.56377e-10 + 106 | 6.89064e-11 5.65822e-11 + 116 | 1.53542e-10 1.46438e-10 + 120 | 2.54787e-11 5.9964e-10 + 121 | 2.67672e-11 6.29965e-10 + 122 | 4.17127e-11 1.43175e-10 + 126 | 1.35803e-20 3.70845e-19 + 141 | 1.25856e-14 8.15657e-14 ---------------------------------------------------------------------------- -------------------------------ORGAN INFO----------------------------------- -----------------(of organs where edep/dose was recorded)------------------- ---------------------------------------------------------------------------- ID Organ Name Material ID Density (g/cm^3) +6 Oral mucosa, lips and cheeks 29 1.050 26 Cranium, cortical 2 1.920 27 Cranium, spongiosa 8 1.157 39 Mandible, cortical 2 1.920 +40 Mandible, spongiosa 13 1.228 47 Cervical spine, cortical 2 1.920 48 Cervical spine, spongiosa 17 1.050 61 Brain 32 1.050 106 Muscle, head 29 1.050 -114 Pituitary gland 45 1.030 116 Residual tissue, head 49 0.950 120 Salivary glands, left 45 1.030 121 Salivary glands, right 45 1.030 122 Skin, head 27 1.090 +126 Spinal cord 45 1.030 +141 Phantom Top/Bottom Skin Layer -Total Edep over all organs = 1.42028e-09 J -Total dose absorbed over all organs = 3.57929e-09 Gy +Total Edep over all organs = 1.44781e-09 J +Total dose absorbed over all organs = 3.23137e-09 Gy ---------------------------------------------------------------------------- ----------------ORGAN ENERGY DEPOSITIONS AND ABSORBED DOSE------------------ @@ -42,13 +48,13 @@ Total dose absorbed over all organs = 3.57929e-09 Gy ---------------------------------------------------------------------------- OrganID Edep (J) Dose (Gy) ------------------------------- -0 | 4.63708e-11 0 +0 | 9.95132e-11 0 1 | 0 0 2 | 0 0 3 | 0 0 4 | 0 0 5 | 0 0 -6 | 0 0 +6 | 1.20078e-14 2.35446e-12 7 | 0 0 8 | 0 0 9 | 0 0 @@ -68,8 +74,8 @@ OrganID Edep (J) Dose (Gy) 23 | 0 0 24 | 0 0 25 | 0 0 -26 | 3.45941e-10 6.14624e-10 -27 | 2.7459e-10 6.08767e-10 +26 | 3.28199e-10 5.83102e-10 +27 | 2.78845e-10 6.182e-10 28 | 0 0 29 | 0 0 30 | 0 0 @@ -81,16 +87,16 @@ OrganID Edep (J) Dose (Gy) 36 | 0 0 37 | 0 0 38 | 0 0 -39 | 2.68101e-14 3.52208e-13 -40 | 0 0 +39 | 1.85489e-12 2.4368e-11 +40 | 1.45248e-13 1.96547e-12 41 | 0 0 42 | 0 0 43 | 0 0 44 | 0 0 45 | 0 0 46 | 0 0 -47 | 1.88424e-12 1.83078e-11 -48 | 1.47002e-12 1.99867e-11 +47 | 1.76321e-12 1.71318e-11 +48 | 3.82399e-12 5.19917e-11 49 | 0 0 50 | 0 0 51 | 0 0 @@ -103,7 +109,7 @@ OrganID Edep (J) Dose (Gy) 58 | 0 0 59 | 0 0 60 | 0 0 -61 | 5.10152e-10 3.51829e-10 +61 | 5.16747e-10 3.56377e-10 62 | 0 0 63 | 0 0 64 | 0 0 @@ -148,7 +154,7 @@ OrganID Edep (J) Dose (Gy) 103 | 0 0 104 | 0 0 105 | 0 0 -106 | 5.5413e-11 4.55022e-11 +106 | 6.89064e-11 5.65822e-11 107 | 0 0 108 | 0 0 109 | 0 0 @@ -156,19 +162,19 @@ OrganID Edep (J) Dose (Gy) 111 | 0 0 112 | 0 0 113 | 0 0 -114 | 3.31986e-13 5.5331e-10 +114 | 0 0 115 | 0 0 -116 | 1.46924e-10 1.40127e-10 +116 | 1.53542e-10 1.46438e-10 117 | 0 0 118 | 0 0 119 | 0 0 -120 | 1.65667e-11 3.89897e-10 -121 | 3.01801e-11 7.10288e-10 -122 | 3.67953e-11 1.26297e-10 +120 | 2.54787e-11 5.9964e-10 +121 | 2.67672e-11 6.29965e-10 +122 | 4.17127e-11 1.43175e-10 123 | 0 0 124 | 0 0 125 | 0 0 -126 | 0 0 +126 | 1.35803e-20 3.70845e-19 127 | 0 0 128 | 0 0 129 | 0 0 @@ -182,7 +188,7 @@ OrganID Edep (J) Dose (Gy) 137 | 0 0 138 | 0 0 139 | 0 0 -140 | 2.95648e-14 1.47824e-10 -141 | 0 0 -Total energy depositied over all organs = 1.42028e-09 J -Total absorbed dose over all organs = 3.57929e-09 Gy +140 | 2.95924e-14 1.47962e-10 +141 | 1.25856e-14 8.15657e-14 +Total energy depositied over all organs = 1.44781e-09 J +Total absorbed dose over all organs = 3.23137e-09 Gy diff --git a/examples/advanced/ICRP145_HumanPhantoms/CMakeLists.txt b/examples/advanced/ICRP145_HumanPhantoms/CMakeLists.txt new file mode 100644 index 0000000000..e78e93feeb --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/CMakeLists.txt @@ -0,0 +1,75 @@ +#---------------------------------------------------------------------------- +# Setup the project +# +cmake_minimum_required(VERSION 3.16...3.21) +project(ICRP145phantoms) + +#---------------------------------------------------------------------------- +# Find Geant4 package, activating all available UI and Vis drivers by default +# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui +# to build a batch mode only executable +# +option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON) +if(WITH_GEANT4_UIVIS) + find_package(Geant4 REQUIRED ui_all vis_all) +else() + find_package(Geant4 REQUIRED) +endif() + +#---------------------------------------------------------------------------- +# Setup Geant4 include directories and compile definitions +# Setup include directory for this project +# +include(${Geant4_USE_FILE}) +include_directories(${PROJECT_SOURCE_DIR}/include) + +#---------------------------------------------------------------------------- +# Locate sources and headers for this project +# NB: headers are included so they will show up in IDEs +# +file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) +file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) + +#---------------------------------------------------------------------------- +# Add the executable, and link it to the Geant4 libraries +# +add_executable(ICRP145phantoms ICRP145phantoms.cc ${sources} ${headers}) +target_link_libraries(ICRP145phantoms ${Geant4_LIBRARIES}) + +# Depend on data for runtime +add_dependencies(ICRP145phantoms ICRP145data) + +#---------------------------------------------------------------------------- +# Copy all scripts to the build directory. This is so that we can run the +# executable directly because it relies on these scripts being in the current +# working directory. +# +set(EXTERNAL_SCRIPTS + example.in + init_vis.mac + source.mac + vis.mac + ) + +foreach(_script ${EXTERNAL_SCRIPTS}) + configure_file( + ${PROJECT_SOURCE_DIR}/${_script} + ${PROJECT_BINARY_DIR}/${_script} + COPYONLY + ) +endforeach() + +include(ExternalProject) +ExternalProject_Add(ICRP145data + SOURCE_DIR ${PROJECT_BINARY_DIR}/ICRP145data + URL https://cern.ch/geant4-data/datasets/examples/advanced/ICRP145Phantoms/ICRP145data.tar.gz + URL_MD5 5d2a46eaa416349ff7d0f3415345f886 + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + ) + +#---------------------------------------------------------------------------- +# Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX +# +install(TARGETS ICRP145phantoms DESTINATION bin) diff --git a/examples/advanced/ICRP145_HumanPhantoms/History b/examples/advanced/ICRP145_HumanPhantoms/History new file mode 100644 index 0000000000..957a797e56 --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/History @@ -0,0 +1,26 @@ +# Example ICRP145_HumanPhantoms History + +See `CONTRIBUTING.rst` for details of **required** info/format for each entry, +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-10-04 Gabriele Cosmo (ICRP145Phantoms-V11-00-03) +- Fixed compilation warnings on Intel-icx compiler for set but unused variable + in TETModelImport source; code formatting. + +## 2022-09-20 Susanna Guatelli (ICRP145Phantoms-V11-00-02) +- README file updated +- RunManagerFactory implemented +- QGSP_BIC_HP physics list adopted +- general code review +- Migration to c++11/14/17 features + +## 2022-09-09 Susanna Guatelli (ICRP145Phantoms-V11-00-01) +- Ranecu Engine removed. Default one now used + +## 2022-07-24 John Allison (ICRP145Phantoms-V11-00-00) +- First version. + - New human phantom example, based on + https://www.icrp.org/publication.asp?id=ICRP%20Publication%20145. diff --git a/examples/advanced/ICRP145_HumanPhantoms/ICRP145Phantoms.out b/examples/advanced/ICRP145_HumanPhantoms/ICRP145Phantoms.out new file mode 100644 index 0000000000..c4faadf55f --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/ICRP145Phantoms.out @@ -0,0 +1,1427 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : + issued by : TETModelImport::TETModelImport +PHANTOM_PATH environment variable was not set. Using ./ICRP145data. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + +================================================================================ + MRCP_AM was implemented in this CODE!! +================================================================================ + Opening TETGEN node (vertex points: x y z) file 'MRCP_AM.node' + Opening TETGEN elements (tetrahedron with node No.) file 'MRCP_AM.ele' + Opening material file 'MRCP_AM.material' + + Organ ID # of Tet vol [cm3] d [g/cm3] mass [g] organ/tissue +-------------------------------------------------------------------------------- + 100 2679 8.381 1.036 8.683 Adrenal_left + 200 2663 8.381 1.036 8.683 Adrenal_right + 300 4678 0.022 1.031 0.022 ET1(0-8) + 301 4668 0.087 1.031 0.090 ET1(8-40) + 302 4672 0.027 1.031 0.028 ET1(40-50) + 303 5908 10.952 1.031 11.291 ET1(50-Surface) + 400 8615 0.141 1.000 0.141 ET2(-15-0) + 401 8613 0.378 1.031 0.390 ET2(0-40) + 402 8614 0.095 1.031 0.098 ET2(40-50) + 403 8614 0.048 1.031 0.049 ET2(50-55) + 404 8613 0.095 1.031 0.098 ET2(55-65) + 405 11326 27.942 1.031 28.808 ET2(65-Surface) + 500 6495 0.082 1.050 0.086 Oral_mucosa_tongue + 501 769 0.022 1.050 0.024 Oral_mucosa_mouth_floor + 600 5892 0.022 1.050 0.023 Oral_mucosa_lips_and_cheeks + 700 2836 10.052 1.031 10.364 Trachea + 800 7422 0.025 1.000 0.025 BB(-11--6) + 801 7418 0.030 1.031 0.031 BB(-6-0) + 802 7426 0.050 1.031 0.052 BB(0-10) + 803 7423 0.126 1.031 0.130 BB(10-35) + 804 7425 0.025 1.031 0.026 BB(35-40) + 805 7419 0.051 1.031 0.052 BB(40-50) + 806 7421 0.051 1.031 0.052 BB(50-60) + 807 7425 0.051 1.031 0.053 BB(60-70) + 808 7466 2.693 1.031 2.777 BB(70-surface) + 900 8205 1.419 1.060 1.504 Blood_in_large_arteries_head + 910 6686 6.551 1.060 6.944 Blood_in_large_veins_head + 1000 199191 182.261 1.060 193.197 Blood_in_large_arteries_trunk + 1010 194214 418.901 1.060 444.035 Blood_in_large_veins_trunk + 1100 79908 30.626 1.060 32.463 Blood_in_large_arteries_arms + 1110 64710 157.801 1.060 167.269 Blood_in_large_veins_arms + 1200 143952 102.671 1.060 108.832 Blood_in_large_arteries_legs + 1210 130064 367.680 1.060 389.741 Blood_in_large_veins_legs + 1300 4516 83.612 1.904 159.196 Humeri_upper_cortical + 1400 1590 118.158 1.233 145.689 Humeri_upper_spogiosa + 1500 1038 34.907 0.981 34.244 Humeri_upper_medullary_cavity + 1600 4205 56.050 1.904 106.720 Humeri_lower_cortical + 1700 1605 45.888 1.109 50.890 Humeri_lower_spongiosa + 1800 793 38.121 0.981 37.397 Humeri_lower_medullary_cavity + 1900 13286 143.597 1.904 273.409 Ulnae_and_radii_cotical + 2000 4191 139.748 1.109 154.981 Ulnae_and_radii_spongiosa + 2100 3976 23.442 0.981 22.996 Ulnae_and_radii_medullary_cavity + 2200 55513 95.341 1.904 181.529 Wrists_and_hand_bones_cortical + 2300 26624 107.238 1.109 118.927 Wrists_and_hand_bones_spongiosa + 2400 6916 25.342 1.904 48.252 Clavicles_cortical + 2500 3515 38.943 1.157 45.057 Clavicles_spongiosa + 2600 182327 298.566 1.904 568.469 Cranium_cortical + 2700 94860 327.960 1.165 382.073 Cranium_spongiosa + 2800 9091 133.166 1.904 253.548 Femora_upper_cortical + 2900 4288 367.318 1.125 413.232 Femora_upper_spongiosa + 3000 1039 26.550 0.981 26.045 Femora_upper_medullary_cavity + 3100 7648 161.639 1.904 307.761 Femora_lower_cortical + 3200 2934 336.927 1.109 373.652 Femora_lower_spongiosa + 3300 1540 83.771 0.981 82.179 Femora_lower_medullary_cavity + 3400 24140 281.855 1.904 536.651 Tibiae_fibulae_and_patellae_cortical + 3500 11021 560.332 1.109 621.408 Tibiae_fibulae_and_patellae_spongiosa + 3600 1803 81.361 0.981 79.815 Tibiae_fibulae_and_patellae_medullary_cavity + 3700 34421 123.363 1.904 234.882 Ankles_and_foot_cortical + 3800 15056 390.095 1.109 432.615 Ankles_and_foot_spongiosa + 3900 10794 40.377 1.904 76.877 Mandible_cortical + 4000 4792 44.286 1.271 56.287 Mandible_spongiosa + 4100 20905 211.447 1.904 402.595 Pelvis_cortical + 4200 11670 552.785 1.121 619.672 Pelvis_spongiosa + 4300 163255 193.696 1.904 368.797 Ribs_cortical + 4400 84986 390.898 1.170 457.351 Ribs_spongiosa + 4500 43878 117.297 1.904 223.333 Scapulae_cortical + 4600 29041 130.450 1.201 156.670 Scapulae_spongiosa + 4700 113618 54.592 1.904 103.943 Cervical_spine_cortical + 4800 52162 75.229 1.049 78.915 Cervical_spine_spongiosa + 4900 188758 152.017 1.904 289.440 Thoracic_spine_cortical + 5000 83312 322.637 1.070 345.222 Thoracic_spine_spongiosa + 5100 78115 98.764 1.904 188.047 Lumbar_spine_cortical + 5200 35095 263.163 1.108 291.584 Lumbar_spine_spongiosa + 5300 52256 57.941 1.904 110.320 Sacrum_cortical + 5400 24993 186.083 1.033 192.224 Sacrum_spongiosa + 5500 19002 5.247 1.904 9.991 Sternum_cortical + 5600 9933 59.001 1.041 61.420 Sternum_spongiosa + 5700 30694 51.257 1.099 56.331 Cartilage_costal + 5800 41577 74.671 1.099 82.063 Cartilage_discs + 6100 16690 1457.627 1.041 1517.390 Brain + 6200 1176 8.152 0.953 7.769 Breast_left_adipose_tissue + 6300 767 5.074 1.021 5.180 Breast_left_glandular_tissue + 6400 1312 8.152 0.953 7.769 Breast_right_adipose_tissue + 6500 781 5.074 1.021 5.180 Breast_right_glandular_tissue + 6600 2162 0.037 1.060 0.039 Eye_lens_sensitive_left + 6601 3213 0.179 1.060 0.189 Eye_lens_insensitive_left + 6700 24543 1.012 1.100 1.113 Cornea_left + 6701 3230 0.300 1.025 0.308 Aqueous_left + 6702 6392 5.938 1.031 6.122 Vitreous_left + 6800 2161 0.037 1.060 0.039 Eye_lens_sensitive_right + 6801 3209 0.179 1.060 0.189 Eye_lens_insensitive_right + 6900 24497 1.012 1.100 1.113 Cornea_right + 6901 3226 0.300 1.025 0.308 Aqueous_right + 6902 6400 5.938 1.031 6.122 Vitreous_right + 7000 3706 10.052 1.031 10.364 Gall_bladder_wall + 7100 1733 56.311 1.030 58.000 Gall_bladder_contents + 7200 13462 1.720 1.037 1.784 Stomach_wall(0-60) + 7201 13462 1.150 1.037 1.193 Stomach_wall(60-100) + 7202 13442 5.794 1.037 6.008 Stomach_wall(100-300) + 7203 14008 178.675 1.037 185.286 Stomach_wall(300-surface) + 7300 6779 240.385 1.040 250.000 Stomach_contents + 7400 107604 14.028 1.037 14.547 Small_intestine_wall(0-130) + 7401 108179 2.184 1.037 2.264 Small_intestine_wall(130-150) + 7402 107946 5.489 1.037 5.692 Small_intestine_wall(150-200) + 7403 102255 810.122 1.037 840.096 Small_intestine_wall(200-surface) + 7500 105754 51.286 1.040 53.337 Small_intestine_contents(-500-0) + 7501 68926 285.253 1.040 296.663 Small_intestine_contents(centre--500) + 7600 5035 2.962 1.037 3.071 Ascending_colon_wall(0-280) + 7601 5040 0.215 1.037 0.223 Ascending_colon_wall(280-300) + 7602 5756 112.473 1.037 116.634 Ascending_colon_wall(300-surface) + 7700 2558 52.885 1.040 55.000 Ascending_colon_content + 7800 4207 3.850 1.037 3.993 Transverse_colon_wall_right(0-280) + 7801 4193 0.278 1.037 0.289 Transverse_colon_wall_right(280-300) + 7802 5672 72.971 1.037 75.671 Transverse_colon_wall_right(300-surface) + 7900 2078 91.346 1.040 95.000 Transverse_colon_contents_right + 8000 3262 2.723 1.037 2.824 Transverse_colon_wall_left(0-280) + 8001 3236 0.198 1.037 0.205 Transverse_colon_wall_left(280-300) + 8002 4068 74.179 1.037 76.924 Transverse_colon_wall_left(300-surface) + 8100 1609 38.462 1.040 40.000 Transverse_colon_content_left + 8200 5849 2.680 1.037 2.779 Descending_colon_wall(0-280) + 8201 5889 0.196 1.037 0.203 Descending_colon_wall(280-300) + 8202 6279 112.774 1.037 116.946 Descending_colon_wall(300-surface) + 8300 2867 33.654 1.040 35.000 Descending_colon_content + 8400 6070 4.292 1.037 4.451 Sigmoid_colon_wall(0-280) + 8401 6074 0.312 1.037 0.324 Sigmoid_colon_wall(280-300) + 8402 6003 46.793 1.037 48.524 Sigmoid_colon_wall(300-surface) + 8500 3044 72.115 1.040 75.000 Sigmoid_colon_contents + 8600 851 38.550 1.037 39.976 Rectum_wall + 8700 15525 367.116 1.051 385.839 Heart_wall + 8800 8952 481.132 1.060 510.000 Blood_in_heart_chamber + 8900 9948 154.168 1.053 162.338 Kidney_left_cortex + 9000 5835 36.429 1.053 38.359 Kidney_left_medulla + 9100 1080 7.267 1.053 7.652 Kidney_left_pelvis + 9200 7385 158.159 1.053 166.542 Kidney_right_cortex + 9300 3176 37.381 1.053 39.362 Kidney_right_medulla + 9400 786 7.495 1.053 7.892 Kidney_right_pelvis + 9500 12572 2226.415 1.060 2360.000 Liver + 9700 8585 1315.366 0.415 545.877 Lung(AI)_left + 9900 9942 1573.160 0.415 652.861 Lung(AI)_right + 10000 6820 15.455 1.032 15.949 Lymphatic_nodes_ET + 10100 6847 15.455 1.032 15.949 Lymphatic_nodes_thoracic + 10200 2356 5.339 1.032 5.510 Lymphatic_nodes_head + 10300 55778 126.166 1.032 130.204 Lymphatic_nodes_trunk + 10400 4773 10.678 1.032 11.019 Lymphatic_nodes_arms + 10500 4712 10.678 1.032 11.019 Lymphatic_nodes_legs + 10600 131456 1143.646 1.050 1200.828 Muscle_head + 10700 396779 14137.838 1.050 14844.730 Muscle_trunk + 10800 168215 2708.102 1.050 2843.507 Muscle_arms + 10900 254592 10369.266 1.050 10887.729 Muscle_legs + 11000 10089 1.851 1.037 1.919 Oesophagus_wall(0-190) + 11001 10343 0.099 1.037 0.103 Oesophagus_wall(190-200) + 11002 8293 48.007 1.037 49.783 Oesophagus_wall(200-surface) + 11003 5948 21.990 1.040 22.870 Oesophagus_contents + 11300 3149 166.314 1.044 173.631 Pancreas + 11400 2834 0.603 1.031 0.622 Pituitary_gland + 11500 1727 17.088 1.031 17.618 Prostate + 11600 384599 1039.002 0.939 975.622 RST_head + 11700 1427980 11902.982 0.939 11176.900 RST_trunk + 11800 313691 1650.523 0.939 1549.842 RST_arms + 11900 537482 4803.124 0.939 4510.134 RST_legs + 12000 5950 42.721 1.031 44.045 Salivary_glands_left + 12100 6720 42.721 1.031 44.045 Salivary_glandss_right + 12200 86263 238.044 1.089 259.230 Skin_head_insensitive + 12201 43173 7.778 1.089 8.470 Skin_head_sensitive(50-100) + 12300 110950 1167.132 1.089 1271.006 Skin_trunk_insensitive + 12301 55548 35.278 1.089 38.418 Skin_trunk_sensitive(50-100) + 12400 149406 528.658 1.089 575.709 Skin_arms_insensitive + 12401 75152 17.303 1.089 18.843 Skin_arms_sensitive(50-100) + 12500 209121 1157.008 1.089 1259.982 Skin_legs_insensitive + 12501 105078 34.701 1.089 37.790 Skin_legs_sensitive(50-100) + 12600 6128 36.811 1.031 37.952 Spinal_cord + 12700 2516 215.472 1.060 228.400 Spleen + 12800 7296 18.872 2.688 50.727 Teeth + 12801 11929 0.041 1.040 0.043 Teeth_retention_region + 12900 2595 17.884 1.041 18.617 Testis_left + 13000 2422 17.884 1.041 18.617 Testis_right + 13100 5110 25.130 1.031 25.909 Thymus + 13200 9199 22.217 1.051 23.351 Thyroid + 13300 1760 19.993 1.050 20.993 Tongue_upper(food) + 13301 9472 51.954 1.050 54.552 Tongue_lower + 13400 2132 3.016 1.031 3.109 Tonsils + 13500 2851 8.544 1.031 8.809 Ureter_left + 13600 6072 7.539 1.031 7.773 Ureter_right + 13700 6150 47.866 1.040 49.781 Urinary_bladder_wall_insensitive + 13701 2968 1.267 1.040 1.318 Urinary_bladder_wall_sensitive(75-118) + 13800 1437 192.308 1.040 200.000 Urinary_bladder_content + 14000 20909 140.165 0.001 0.140 Air_inside_body +<<< Geant4 Physics List simulation engine: QGSP_BIC_HP + +Visualization Manager instantiating with verbosity "warnings (3)"... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully registered the following graphics systems. +Registered graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML2FILE (VRML2FILE) + gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) + OpenGLImmediateQt (OGLIQt, OGLI) + OpenGLStoredQt (OGLSQt, OGL, OGLS) + OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) + OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK) + OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK) + OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK) + RayTracerX (RayTracerX) + Qt3D (Qt3D) + TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK) + TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK) + TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG) + +Registering model factories... + +You have successfully registered the following model factories. +Registered model factories: + generic + drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByEncounteredVolume + +Registered models: + None + +Registered filter factories: + attributeFilter + chargeFilter + originVolumeFilter + particleFilter + encounteredVolumeFilter + +Registered filters: + None + +You have successfully registered the following user vis actions. +Run Duration User Vis Actions: none +End of Event User Vis Actions: none +End of Run User Vis Actions: none + +Some /vis commands (optionally) take a string to specify colour. +"/vis/list" to see available colours. + + Phantom name MRCP_AM TET phantom + Phantom size 557.708 * 291.260 * 1760.047 mm3 + Phantom box position (min) -286.958 mm, -136.028 mm, -878.602 mm + Phantom box position (max) 270.750 mm, 155.232 mm, 881.445 mm + Number of tetrahedrons 8233413 + +/cvmfs/geant4.cern.ch/share/data/G4NDL4.7 +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic +@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.7 +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic/CrossSection/6_nat_Carbon +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.80000 +Min kinetic energy for tables 100.00000 eV +Max kinetic energy for tables 100.00000 TeV +Number of bins per decade of a table 20 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100.00000 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100.00000 TeV +Lowest triplet kinetic energy 1.00000 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.20000, 0.01000 mm) +Step function for muons/hadrons (0.10000, 0.05000 mm) +Step function for light ions (0.10000, 0.02000 mm) +Step function for general ions (0.10000, 0.00100 mm) +Lowest e+e- kinetic energy 100.00000 eV +Lowest muon/hadron kinetic energy 1.00000 keV +Use ICRU90 data 1 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 1 +Max kinetic energy for CSDA tables 1.00000 GeV +Max kinetic energy for NIEL computation 1.00000 MeV +Linear loss limit 0.01000 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 2 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 1 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.08000 +Range factor for msc step limit for muons/hadrons 0.20000 +Geometry factor for msc step limitation of e+- 2.50000 +Safety factor for msc step limit for e+- 0.60000 +Skin parameter for msc step limitation of e+- 3.00000 +Lambda limit for msc step limit for e+- 1.00000 mm +Use Mott correction for e- scattering 1 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1.00000 +Fixed angular limit between single + and multiple scattering 3.14159 rad +Upper energy limit for e+- multiple scattering 100.00000 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1.00000 +======================================================================= +====== Atomic Deexcitation Parameters ======== +======================================================================= +Fluorescence enabled 1 +Directory in G4LEDATA for fluorescence data files fluor +Auger electron cascade enabled 1 +PIXE atomic de-excitation enabled 0 +De-excitation module ignores cuts 1 +Type of PIXE cross section for hadrons Empirical +Type of PIXE cross section for e+- Livermore +======================================================================= + +### === Deexcitation model UAtomDeexcitation is activated for 1 region: + DefaultRegionForTheWorld 1 1 0 +### === Auger flag: 1 +### === Ignore cuts flag: 1 + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200.000000 keV to 100.000000 TeV in 174 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin=0.000000 eV Emax=100.000000 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100.000000 eV to 1.000000 MeV, 20 bins/decade, spline: 1 + LambdaPrime table from 1.000000 MeV to 100.000000 TeV in 160 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LowEPComptonModel : Emin=0.000000 eV Emax=20.000000 MeV Fluo + KleinNishina : Emin=20.000000 MeV Emax=100.000000 TeV Fluo + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.021998 MeV to 100.000000 TeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitler5D : Emin=0.000000 eV Emax=100.000000 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100.000000 eV to 150.000000 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150.000000 keV to 100.000000 TeV in 176 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin=0.000000 eV Emax=100.000000 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin=0.000000 eV Emax=100.000000 MeV Nbins=120 100.000000 eV - 100.000000 MeV + StepLim=SafetyPlus Rfact=0.080000 Gfact=2.500000 Sfact=0.600000 DispFlag:1 Skin=3.000000 Llim=1.000000 mm + WentzelVIUni : Emin=100.000000 MeV Emax=100.000000 TeV Nbins=120 100.000000 MeV - 100.000000 TeV + StepLim=SafetyPlus Rfact=0.080000 Gfact=2.500000 Sfact=0.600000 DispFlag:1 Skin=3.000000 Llim=1.000000 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.200000, 0.010000 mm), integ: 3, fluct: 1, linLossLim= 0.010000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + PenIoni : Emin=0.000000 eV Emax=100.000000 keV + MollerBhabha : Emin=100.000000 keV Emax=100.000000 TeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 1.000000 GeV, VertexHighEnergyTh(GeV)= 100000.000000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin=0.000000 eV Emax=1.000000 GeV AngularGen2BS + eBremLPM : Emin=1.000000 GeV Emax=100.000000 TeV AngularGen2BS + +ePairProd: for e- XStype:1 SubType=4 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + Sampling table 25x1001 from 0.100000 GeV to 100.000000 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ePairProd : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100.000000 MeV to 100.000000 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin=100.000000 MeV Emax=100.000000 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin=0.000000 eV Emax=100.000000 MeV Nbins=120 100.000000 eV - 100.000000 MeV + StepLim=SafetyPlus Rfact=0.080000 Gfact=2.500000 Sfact=0.600000 DispFlag:1 Skin=3.000000 Llim=1.000000 mm + WentzelVIUni : Emin=100.000000 MeV Emax=100.000000 TeV Nbins=120 100.000000 MeV - 100.000000 TeV + StepLim=SafetyPlus Rfact=0.080000 Gfact=2.500000 Sfact=0.600000 DispFlag:1 Skin=3.000000 Llim=1.000000 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.200000, 0.010000 mm), integ: 3, fluct: 1, linLossLim= 0.010000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + PenIoni : Emin=0.000000 eV Emax=100.000000 keV + MollerBhabha : Emin=100.000000 keV Emax=100.000000 TeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 1.000000 GeV, VertexHighEnergyTh(GeV)= 100000.000000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin=0.000000 eV Emax=1.000000 GeV AngularGen2BS + eBremLPM : Emin=1.000000 GeV Emax=100.000000 TeV AngularGen2BS + +ePairProd: for e+ XStype:1 SubType=4 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + Sampling table 25x1001 from 0.100000 GeV to 100.000000 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ePairProd : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin=0.000000 eV Emax=100.000000 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100.000000 MeV to 100.000000 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin=100.000000 MeV Emax=100.000000 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin=0.000000 eV Emax=100.000000 TeV Nbins=240 100.000000 eV - 100.000000 TeV + StepLim=Minimal Rfact=0.200000 Gfact=2.500000 Sfact=0.600000 DispFlag:1 Skin=3.000000 Llim=1.000000 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.100000, 0.050000 mm), integ: 3, fluct: 1, linLossLim= 0.010000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin=0.000000 eV Emax=2.000000 MeV deltaVI + BetheBloch : Emin=2.000000 MeV Emax=100.000000 TeV deltaVI + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + Sampling table 17x1001 from 7.506176 GeV to 100.000000 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin=0.000000 eV Emax=100.000000 TeV + +nuclearStopping: for proton SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin=0.000000 eV Emax=1.000000 MeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin=0.000000 eV Emax=100.000000 TeV + StepLim=Minimal Rfact=0.200000 Gfact=2.500000 Sfact=0.600000 DispFlag:1 Skin=3.000000 Llim=1.000000 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.100000, 0.001000 mm), integ: 3, fluct: 1, linLossLim= 0.020000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LindhardSorensen : Emin=0.000000 eV Emax=100.000000 TeV deltaVI + +nuclearStopping: for GenericIon SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin=0.000000 eV Emax=1.000000 MeV +====================================================================== +====== Radioactive Decay Physics Parameters ======= +====================================================================== +min MeanLife (from G4NuclideTable) 1.00000 ns +Max life time (from G4DeexPrecoParameters) 1000.00000 ps +Internal e- conversion flag 1 +Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 +Enable correlated gamma emission 0 +Max 2J for sampling of angular correlations 10 +Atomic de-excitation enabled 1 +Auger electron emission enabled 1 +Check EM cuts disabled for atomic de-excitation 1 +Use Bearden atomic level energies 0 +Use ANSTO fluorescence model 0 +Threshold for very long decay time at rest 31709791983.76459 y +====================================================================== + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin=0.000000 eV Emax=100.000000 TeV + StepLim=Minimal Rfact=0.200000 Gfact=2.500000 Sfact=0.600000 DispFlag:1 Skin=3.000000 Llim=1.000000 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.100000, 0.020000 mm), integ: 3, fluct: 1, linLossLim= 0.020000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin=0.000000 eV Emax=7.945199 MeV deltaVI + BetheBloch : Emin=7.945199 MeV Emax=100.000000 TeV deltaVI + +nuclearStopping: for alpha SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin=0.000000 eV Emax=1.000000 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin=0.000000 eV Emax=100.000000 TeV Nbins=240 100.000000 eV - 100.000000 TeV + StepLim=Minimal Rfact=0.200000 Gfact=2.500000 Sfact=0.600000 DispFlag:1 Skin=3.000000 Llim=1.000000 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.100000, 0.050000 mm), integ: 3, fluct: 1, linLossLim= 0.010000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin=0.000000 eV Emax=2.000000 MeV deltaVI + BetheBloch : Emin=2.000000 MeV Emax=100.000000 TeV deltaVI + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + Sampling table 17x1001 from 7.506176 GeV to 100.000000 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin=0.000000 eV Emax=100.000000 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin=0.000000 eV Emax=100.000000 TeV Nbins=240 100.000000 eV - 100.000000 TeV + StepLim=Minimal Rfact=0.200000 Gfact=2.500000 Sfact=0.600000 DispFlag:1 Skin=3.000000 Llim=1.000000 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.100000, 0.050000 mm), integ: 3, fluct: 1, linLossLim= 0.010000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin=0.000000 eV Emax=1.052311 MeV deltaVI + BetheBloch : Emin=1.052311 MeV Emax=100.000000 TeV deltaVI + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + Sampling table 18x1001 from 3.949416 GeV to 100.000000 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin=0.000000 eV Emax=100.000000 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin=0.000000 eV Emax=100.000000 TeV Nbins=240 100.000000 eV - 100.000000 TeV + StepLim=Minimal Rfact=0.200000 Gfact=2.500000 Sfact=0.600000 DispFlag:1 Skin=3.000000 Llim=1.000000 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.100000, 0.050000 mm), integ: 3, fluct: 1, linLossLim= 0.010000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin=0.000000 eV Emax=1.052311 MeV deltaVI + BetheBloch : Emin=1.052311 MeV Emax=100.000000 TeV deltaVI + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + Sampling table 18x1001 from 3.949416 GeV to 100.000000 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin=0.000000 eV Emax=100.000000 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin=0.000000 eV Emax=100.000000 TeV Nbins=240 100.000000 eV - 100.000000 TeV + StepLim=Minimal Rfact=0.200000 Gfact=2.500000 Sfact=0.600000 DispFlag:1 Skin=3.000000 Llim=1.000000 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.100000, 0.050000 mm), integ: 3, fluct: 1, linLossLim= 0.010000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin=0.000000 eV Emax=200.000000 keV deltaVI + MuBetheBloch : Emin=200.000000 keV Emax=100.000000 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + Sampling table 21x1001 from 0.850000 GeV to 100.000000 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin=0.000000 eV Emax=100.000000 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin=0.000000 eV Emax=100.000000 TeV Nbins=240 100.000000 eV - 100.000000 TeV + StepLim=Minimal Rfact=0.200000 Gfact=2.500000 Sfact=0.600000 DispFlag:1 Skin=3.000000 Llim=1.000000 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.100000, 0.050000 mm), integ: 3, fluct: 1, linLossLim= 0.010000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin=0.000000 eV Emax=200.000000 keV deltaVI + MuBetheBloch : Emin=200.000000 keV Emax=100.000000 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + Sampling table 21x1001 from 0.850000 GeV to 100.000000 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin=0.000000 eV Emax=100.000000 TeV +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon + +======================================================= +====== ParticleHP Physics Parameters ======== +======================================================= + UseOnlyPhotoEvaporation ? 0 + SkipMissingIsotopes ? 0 + NeglectDoppler ? 0 + DoNotAdjustFinalState ? 0 + ProduceFissionFragments ? 0 + UseWendtFissionModel ? 0 + UseNRESP71Model ? 0 +======================================================= + +@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin=0.000000 eV Emax=100.000000 TeV Nbins=240 100.000000 eV - 100.000000 TeV + StepLim=Minimal Rfact=0.200000 Gfact=2.500000 Sfact=0.600000 DispFlag:1 Skin=3.000000 Llim=1.000000 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.100000, 0.050000 mm), integ: 3, fluct: 1, linLossLim= 0.010000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin=0.000000 eV Emax=297.504557 keV deltaVI + BetheBloch : Emin=297.504557 keV Emax=100.000000 TeV deltaVI + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + Sampling table 20x1001 from 1.116561 GeV to 100.000000 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin=0.000000 eV Emax=100.000000 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin=0.000000 eV Emax=100.000000 TeV Nbins=240 100.000000 eV - 100.000000 TeV + StepLim=Minimal Rfact=0.200000 Gfact=2.500000 Sfact=0.600000 DispFlag:1 Skin=3.000000 Llim=1.000000 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.100000, 0.050000 mm), integ: 3, fluct: 1, linLossLim= 0.010000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin=0.000000 eV Emax=297.504557 keV deltaVI + BetheBloch : Emin=297.504557 keV Emax=100.000000 TeV deltaVI + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100.000000 eV to 100.000000 TeV in 240 bins + Lambda tables from threshold to 100.000000 TeV, 20 bins/decade, spline: 0 + Sampling table 20x1001 from 1.116561 GeV to 100.000000 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin=0.000000 eV Emax=100.000000 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin=0.000000 eV Emax=100.000000 TeV + +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionElastic + Model: NNDiffuseElastic: 0.000000 eV /n ---> 100.000000 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0.000000 eV ---> 25.600000 PeV + + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0.000000 eV /n ---> 6.000000 GeV/n + Model: FTFP: 3.000000 GeV/n ---> 100.000000 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0.000000 eV ---> 25.600000 PeV + + + Process: RadioactiveDecay + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV /n ---> 100.000000 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0.000000 eV ---> 25.600000 PeV + + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0.000000 eV /n ---> 6.000000 GeV/n + Model: FTFP: 3.000000 GeV/n ---> 100.000000 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0.000000 eV ---> 25.600000 PeV + + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV /n ---> 100.000000 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0.000000 eV ---> 25.600000 PeV + + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0.000000 eV /n ---> 6.000000 GeV/n + Model: FTFP: 3.000000 GeV/n ---> 100.000000 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0.000000 eV ---> 25.600000 PeV + + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV /n ---> 100.100000 MeV/n + Model: AntiAElastic: 100.000000 MeV/n ---> 100.000000 TeV/n + Cr_sctns: AntiAGlauber: 0.000000 eV ---> 25.600000 PeV + + + Process: anti_He3Inelastic + Model: FTFP: 0.000000 eV /n ---> 100.000000 TeV/n + Cr_sctns: AntiAGlauber: 0.000000 eV ---> 25.600000 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV /n ---> 100.100000 MeV/n + Model: AntiAElastic: 100.000000 MeV/n ---> 100.000000 TeV/n + Cr_sctns: AntiAGlauber: 0.000000 eV ---> 25.600000 PeV + + + Process: anti_alphaInelastic + Model: FTFP: 0.000000 eV /n ---> 100.000000 TeV/n + Cr_sctns: AntiAGlauber: 0.000000 eV ---> 25.600000 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV /n ---> 100.100000 MeV/n + Model: AntiAElastic: 100.000000 MeV/n ---> 100.000000 TeV/n + Cr_sctns: AntiAGlauber: 0.000000 eV ---> 25.600000 PeV + + + Process: anti_deuteronInelastic + Model: FTFP: 0.000000 eV /n ---> 100.000000 TeV/n + Cr_sctns: AntiAGlauber: 0.000000 eV ---> 25.600000 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_lambda + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV ---> 100.000000 TeV + Cr_sctns: Glauber-Gribov: 0.000000 eV ---> 100.000000 TeV + + + Process: anti_lambdaInelastic + Model: QGSP: 12.000000 GeV ---> 100.000000 TeV + Model: FTFP: 0.000000 eV ---> 25.000000 GeV + Cr_sctns: Glauber-Gribov: 0.000000 eV ---> 100.000000 TeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV ---> 100.100000 MeV + Model: AntiAElastic: 100.000000 MeV ---> 100.000000 TeV + Cr_sctns: AntiAGlauber: 0.000000 eV ---> 25.600000 PeV + + + Process: anti_neutronInelastic + Model: FTFP: 0.000000 eV ---> 100.000000 TeV + Cr_sctns: AntiAGlauber: 0.000000 eV ---> 25.600000 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV ---> 100.100000 MeV + Model: AntiAElastic: 100.000000 MeV ---> 100.000000 TeV + Cr_sctns: AntiAGlauber: 0.000000 eV ---> 25.600000 PeV + + + Process: anti_protonInelastic + Model: FTFP: 0.000000 eV ---> 100.000000 TeV + Cr_sctns: AntiAGlauber: 0.000000 eV ---> 25.600000 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV /n ---> 100.100000 MeV/n + Model: AntiAElastic: 100.000000 MeV/n ---> 100.000000 TeV/n + Cr_sctns: AntiAGlauber: 0.000000 eV ---> 25.600000 PeV + + + Process: anti_tritonInelastic + Model: FTFP: 0.000000 eV /n ---> 100.000000 TeV/n + Cr_sctns: AntiAGlauber: 0.000000 eV ---> 25.600000 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV /n ---> 100.000000 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0.000000 eV ---> 25.600000 PeV + + + Process: dInelastic + Model: Binary Light Ion Cascade: 0.000000 eV /n ---> 6.000000 GeV/n + Model: FTFP: 3.000000 GeV/n ---> 100.000000 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0.000000 eV ---> 25.600000 PeV + + +--------------------------------------------------- + Hadronic Processes for e+ + + Process: positronNuclear + Model: G4ElectroVDNuclearModel: 0.000000 eV ---> 1.000000 PeV + Cr_sctns: ElectroNuclearXS: 0.000000 eV ---> 100.000000 TeV + + +--------------------------------------------------- + Hadronic Processes for e- + + Process: electronNuclear + Model: G4ElectroVDNuclearModel: 0.000000 eV ---> 1.000000 PeV + Cr_sctns: ElectroNuclearXS: 0.000000 eV ---> 100.000000 TeV + + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: GammaNPreco: 0.000000 eV ---> 200.000000 MeV + Model: BertiniCascade: 199.000000 MeV ---> 6.000000 GeV + Model: TheoFSGenerator: 3.000000 GeV ---> 100.000000 TeV + Cr_sctns: GammaNuclearXS: 0.000000 eV ---> 100.000000 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV ---> 100.000000 TeV + Cr_sctns: Glauber-Gribov: 0.000000 eV ---> 100.000000 TeV + + + Process: kaon+Inelastic + Model: QGSP: 12.000000 GeV ---> 100.000000 TeV + Model: FTFP: 3.000000 GeV ---> 25.000000 GeV + Model: BertiniCascade: 0.000000 eV ---> 6.000000 GeV + Cr_sctns: Glauber-Gribov: 0.000000 eV ---> 100.000000 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV ---> 100.000000 TeV + Cr_sctns: Glauber-Gribov: 0.000000 eV ---> 100.000000 TeV + + + Process: kaon-Inelastic + Model: QGSP: 12.000000 GeV ---> 100.000000 TeV + Model: FTFP: 3.000000 GeV ---> 25.000000 GeV + Model: BertiniCascade: 0.000000 eV ---> 6.000000 GeV + Cr_sctns: Glauber-Gribov: 0.000000 eV ---> 100.000000 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV ---> 100.000000 TeV + Cr_sctns: Glauber-Gribov: 0.000000 eV ---> 100.000000 TeV + + + Process: lambdaInelastic + Model: QGSP: 12.000000 GeV ---> 100.000000 TeV + Model: FTFP: 3.000000 GeV ---> 25.000000 GeV + Model: BertiniCascade: 0.000000 eV ---> 6.000000 GeV + Cr_sctns: Glauber-Gribov: 0.000000 eV ---> 100.000000 TeV + + +--------------------------------------------------- + Hadronic Processes for mu+ + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0.000000 eV ---> 1.000000 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0.000000 eV ---> 100.000000 TeV + + +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0.000000 eV ---> 1.000000 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0.000000 eV ---> 100.000000 TeV + + + Process: muMinusCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 19.500000 MeV ---> 100.000000 TeV + Model: NeutronHPElastic: 0.000000 eV ---> 20.000000 MeV + Cr_sctns: NeutronHPElasticXS: 0.000000 eV ---> 20.000000 MeV + + Cr_sctns: G4NeutronElasticXS: 0.000000 eV ---> 100.000000 TeV + + + Process: neutronInelastic + Model: QGSP: 12.000000 GeV ---> 100.000000 TeV + Model: FTFP: 3.000000 GeV ---> 25.000000 GeV + Model: Binary Cascade: 19.900000 MeV ---> 6.000000 GeV + Model: NeutronHPInelastic: 0.000000 eV ---> 20.000000 MeV + Cr_sctns: NeutronHPInelasticXS: 0.000000 eV ---> 20.000000 MeV + + Cr_sctns: G4NeutronInelasticXS: 0.000000 eV ---> 100.000000 TeV + + + Process: nCapture + Model: NeutronHPCapture: 0.000000 eV ---> 20.000000 MeV + Model: nRadCapture: 19.900000 MeV ---> 100.000000 TeV + Cr_sctns: NeutronHPCaptureXS: 0.000000 eV ---> 20.000000 MeV + + Cr_sctns: G4NeutronCaptureXS: 0.000000 eV ---> 100.000000 TeV + + + Process: nFission + Model: NeutronHPFission: 0.000000 eV ---> 20.000000 MeV + Model: G4LFission: 19.900000 MeV ---> 100.000000 TeV + Cr_sctns: NeutronHPFissionXS: 0.000000 eV ---> 20.000000 MeV + + Cr_sctns: ZeroXS: 0.000000 eV ---> 100.000000 TeV + + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticGlauber: 0.000000 eV ---> 100.000000 TeV + Cr_sctns: BarashenkovGlauberGribov: 0.000000 eV ---> 100.000000 TeV + + + Process: pi+Inelastic + Model: QGSP: 12.000000 GeV ---> 100.000000 TeV + Model: FTFP: 3.000000 GeV ---> 25.000000 GeV + Model: BertiniCascade: 0.000000 eV ---> 6.000000 GeV + Cr_sctns: BarashenkovGlauberGribov: 0.000000 eV ---> 100.000000 TeV + + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticGlauber: 0.000000 eV ---> 100.000000 TeV + Cr_sctns: BarashenkovGlauberGribov: 0.000000 eV ---> 100.000000 TeV + + + Process: pi-Inelastic + Model: QGSP: 12.000000 GeV ---> 100.000000 TeV + Model: FTFP: 3.000000 GeV ---> 25.000000 GeV + Model: BertiniCascade: 0.000000 eV ---> 6.000000 GeV + Cr_sctns: BarashenkovGlauberGribov: 0.000000 eV ---> 100.000000 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0.000000 eV ---> 100.000000 TeV + Cr_sctns: BarashenkovGlauberGribov: 0.000000 eV ---> 100.000000 TeV + + + Process: protonInelastic + Model: QGSP: 12.000000 GeV ---> 100.000000 TeV + Model: FTFP: 3.000000 GeV ---> 25.000000 GeV + Model: Binary Cascade: 0.000000 eV ---> 6.000000 GeV + Cr_sctns: BarashenkovGlauberGribov: 0.000000 eV ---> 100.000000 TeV + + +--------------------------------------------------- + Hadronic Processes for sigma- + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV ---> 100.000000 TeV + Cr_sctns: Glauber-Gribov: 0.000000 eV ---> 100.000000 TeV + + + Process: sigma-Inelastic + Model: QGSP: 12.000000 GeV ---> 100.000000 TeV + Model: FTFP: 3.000000 GeV ---> 25.000000 GeV + Model: BertiniCascade: 0.000000 eV ---> 6.000000 GeV + Cr_sctns: Glauber-Gribov: 0.000000 eV ---> 100.000000 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0.000000 eV /n ---> 100.000000 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0.000000 eV ---> 25.600000 PeV + + + Process: tInelastic + Model: Binary Light Ion Cascade: 0.000000 eV /n ---> 6.000000 GeV/n + Model: FTFP: 3.000000 GeV/n ---> 100.000000 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0.000000 eV ---> 25.600000 PeV + + +================================================================ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Pre-compound model active 1 +Pre-compound excitation low energy 100.00000 keV +Pre-compound excitation high energy 30.00000 MeV +Type of de-excitation inverse x-section 3 +Type of de-excitation factory Evaporation+GEM +Number of de-excitation channels 68 +Min excitation energy 10.00000 eV +Min energy per nucleon for multifragmentation 200.00000 GeV +Limit excitation energy for Fermi BreakUp 20.00000 MeV +Level density (1/MeV) 0.07500 +Use simple level density model 1 +Use discrete excitation energy of the residual 1 +Time limit for long lived isomeres 1000.00000 ps +Isomer production flag 1 +Internal e- conversion flag 1 +Store e- internal conversion data 1 +Correlated gamma emission flag 0 +Max 2J for sampling of angular correlations 10 +======================================================================= +G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. +See commands in /vis/modeling/trajectories/ for other options. +--> Event 0 starts. +--> Event 100000 starts. +--> Event 200000 starts. +--> Event 300000 starts. +--> Event 400000 starts. +--> Event 500000 starts. +--> Event 600000 starts. +--> Event 700000 starts. +--> Event 800000 starts. +--> Event 900000 starts. + +===================================================================== + Run #0 / Number of event processed : 1000000 +===================================================================== +organ ID| Organ Mass (g) Dose (Gy/source) Relative Error + 100| 8.683 5.087e-17 0.426 + 200| 8.683 3.443e-17 0.445 + 300| 0.022 4.113e-17 0.710 + 301| 0.090 5.589e-17 0.721 + 302| 0.028 6.791e-17 0.711 + 303| 11.291 5.730e-17 0.383 + 400| 0.141 5.214e-17 1.000 + 401| 0.390 4.388e-17 0.985 + 402| 0.098 1.744e-17 1.000 + 403| 0.049 2.332e-17 1.000 + 404| 0.098 1.965e-17 1.000 + 405| 28.808 1.485e-17 0.360 + 500| 0.086 1.503e-17 1.000 + 501| 0.024 0.000e+00 1.000 + 600| 0.023 9.872e-18 1.000 + 700| 10.364 3.217e-17 0.391 + 800| 0.025 0.000e+00 1.000 + 801| 0.031 0.000e+00 1.000 + 802| 0.052 0.000e+00 1.000 + 803| 0.130 8.369e-17 1.000 + 804| 0.026 1.023e-16 1.000 + 805| 0.052 1.694e-17 0.853 + 806| 0.052 6.597e-18 1.000 + 807| 0.053 8.078e-18 1.000 + 808| 2.777 6.374e-18 1.000 + 900| 1.504 1.043e-17 1.000 + 910| 6.944 5.231e-17 0.515 + 1000| 193.197 3.110e-17 0.111 + 1010| 444.035 3.370e-17 0.071 + 1100| 32.463 3.490e-17 0.273 + 1110| 167.269 3.270e-17 0.116 + 1200| 108.832 2.882e-17 0.153 + 1210| 389.741 2.651e-17 0.085 + 1300| 159.196 2.707e-17 0.136 + 1400| 145.689 3.073e-17 0.138 + 1500| 34.244 3.552e-17 0.261 + 1600| 106.720 3.175e-17 0.154 + 1700| 50.890 3.444e-17 0.214 + 1800| 37.397 3.710e-17 0.247 + 1900| 273.409 2.610e-17 0.107 + 2000| 154.981 1.846e-17 0.155 + 2100| 22.996 1.765e-17 0.414 + 2200| 181.529 2.771e-17 0.123 + 2300| 118.927 3.254e-17 0.137 + 2400| 48.252 3.191e-17 0.225 + 2500| 45.057 3.614e-17 0.220 + 2600| 568.469 1.617e-17 0.091 + 2700| 382.073 1.634e-17 0.110 + 2800| 253.548 3.295e-17 0.099 + 2900| 413.232 3.024e-17 0.082 + 3000| 26.045 2.219e-17 0.299 + 3100| 307.761 3.308e-17 0.088 + 3200| 373.652 2.824e-17 0.092 + 3300| 82.179 2.818e-17 0.185 + 3400| 536.651 2.275e-17 0.080 + 3500| 621.408 2.734e-17 0.074 + 3600| 79.815 2.115e-17 0.228 + 3700| 234.882 1.968e-17 0.126 + 3800| 432.615 1.546e-17 0.112 + 3900| 76.877 2.852e-17 0.197 + 4000| 56.287 3.557e-17 0.207 + 4100| 402.595 3.187e-17 0.075 + 4200| 619.672 3.093e-17 0.065 + 4300| 368.797 2.279e-17 0.085 + 4400| 457.351 2.267e-17 0.085 + 4500| 223.333 1.734e-17 0.128 + 4600| 156.670 2.685e-17 0.136 + 4700| 103.943 1.917e-17 0.178 + 4800| 78.915 1.633e-17 0.240 + 4900| 289.440 1.521e-17 0.126 + 5000| 345.222 1.527e-17 0.111 + 5100| 188.047 2.216e-17 0.127 + 5200| 291.584 2.350e-17 0.105 + 5300| 110.320 2.062e-17 0.155 + 5400| 192.224 2.574e-17 0.122 + 5500| 9.991 6.223e-17 0.301 + 5600| 61.420 4.137e-17 0.181 + 5700| 56.331 3.668e-17 0.190 + 5800| 82.063 2.343e-17 0.190 + 6100| 1517.390 1.243e-17 0.071 + 6200| 7.769 5.465e-17 0.436 + 6300| 5.180 5.837e-17 0.578 + 6400| 7.769 1.133e-17 0.542 + 6500| 5.180 4.383e-17 0.625 + 6600| 0.039 0.000e+00 1.000 + 6601| 0.189 0.000e+00 1.000 + 6700| 1.113 2.725e-17 1.000 + 6701| 0.308 0.000e+00 1.000 + 6702| 6.122 1.828e-17 1.000 + 6800| 0.039 0.000e+00 1.000 + 6801| 0.189 0.000e+00 1.000 + 6900| 1.113 0.000e+00 1.000 + 6901| 0.308 0.000e+00 1.000 + 6902| 6.122 6.690e-19 0.806 + 7000| 10.364 5.476e-17 0.296 + 7100| 58.000 4.325e-17 0.194 + 7200| 1.784 6.287e-17 0.440 + 7201| 1.193 3.283e-17 0.464 + 7202| 6.008 4.832e-17 0.289 + 7203| 185.286 3.330e-17 0.114 + 7300| 250.000 3.153e-17 0.103 + 7400| 14.547 3.000e-17 0.197 + 7401| 2.264 4.163e-17 0.228 + 7402| 5.692 2.949e-17 0.224 + 7403| 840.096 4.126e-17 0.049 + 7500| 53.337 3.163e-17 0.152 + 7501| 296.663 3.541e-17 0.084 + 7600| 3.071 1.221e-17 0.643 + 7601| 0.223 1.015e-17 0.596 + 7602| 116.634 4.053e-17 0.137 + 7700| 55.000 3.554e-17 0.201 + 7800| 3.993 2.849e-17 0.546 + 7801| 0.289 4.005e-17 0.746 + 7802| 75.671 3.538e-17 0.174 + 7900| 95.000 3.714e-17 0.151 + 8000| 2.824 4.294e-17 0.415 + 8001| 0.205 1.092e-17 0.582 + 8002| 76.924 3.346e-17 0.158 + 8100| 40.000 5.038e-17 0.215 + 8200| 2.779 5.119e-17 0.500 + 8201| 0.203 3.138e-17 0.585 + 8202| 116.946 3.058e-17 0.142 + 8300| 35.000 3.132e-17 0.276 + 8400| 4.451 1.810e-17 0.474 + 8401| 0.324 2.485e-17 0.726 + 8402| 48.524 3.403e-17 0.226 + 8500| 75.000 4.092e-17 0.162 + 8600| 39.976 2.293e-17 0.286 + 8700| 385.839 3.305e-17 0.081 + 8800| 510.000 2.533e-17 0.082 + 8900| 162.338 2.957e-17 0.128 + 9000| 38.359 1.078e-17 0.381 + 9100| 7.652 5.535e-17 0.422 + 9200| 166.542 2.055e-17 0.143 + 9300| 39.362 1.469e-17 0.324 + 9400| 7.892 5.248e-17 0.452 + 9500| 2360.000 2.901e-17 0.038 + 9700| 545.877 2.244e-17 0.081 + 9900| 652.861 2.819e-17 0.068 + 10000| 15.949 1.779e-17 0.519 + 10100| 15.949 1.619e-17 0.463 + 10200| 5.510 3.959e-18 0.996 + 10300| 130.204 3.739e-17 0.126 + 10400| 11.019 6.558e-19 0.834 + 10500| 11.019 4.223e-17 0.448 + 10600| 1200.828 2.390e-17 0.057 + 10700| 14844.730 2.623e-17 0.016 + 10800| 2843.507 3.164e-17 0.032 + 10900| 10887.729 2.667e-17 0.019 + 11000| 1.919 3.722e-17 0.569 + 11001| 0.103 1.629e-17 0.655 + 11002| 49.783 2.537e-17 0.235 + 11003| 22.870 2.977e-17 0.291 + 11300| 173.631 2.747e-17 0.129 + 11400| 0.622 0.000e+00 1.000 + 11500| 17.618 2.754e-17 0.387 + 11600| 975.622 2.128e-17 0.064 + 11700| 11176.900 2.950e-17 0.016 + 11800| 1549.842 2.850e-17 0.044 + 11900| 4510.134 2.761e-17 0.027 + 12000| 44.045 2.533e-17 0.277 + 12100| 44.045 3.644e-17 0.233 + 12200| 259.230 2.009e-17 0.118 + 12201| 8.470 1.162e-17 0.336 + 12300| 1271.006 2.610e-17 0.046 + 12301| 38.418 1.558e-17 0.154 + 12400| 575.709 2.505e-17 0.069 + 12401| 18.843 1.507e-17 0.176 + 12500| 1259.982 2.308e-17 0.049 + 12501| 37.790 1.127e-17 0.144 + 12600| 37.952 1.367e-17 0.363 + 12700| 228.400 2.113e-17 0.128 + 12800| 50.727 2.511e-17 0.274 + 12801| 0.043 1.726e-17 1.000 + 12900| 18.617 5.549e-17 0.306 + 13000| 18.617 5.407e-17 0.305 + 13100| 25.909 1.894e-17 0.441 + 13200| 23.351 1.933e-17 0.425 + 13300| 20.993 2.558e-17 0.438 + 13301| 54.552 1.337e-17 0.308 + 13400| 3.109 6.587e-17 0.590 + 13500| 8.809 3.261e-17 0.513 + 13600| 7.773 3.282e-17 0.422 + 13700| 49.781 4.563e-17 0.176 + 13701| 1.318 3.889e-17 0.366 + 13800| 200.000 3.992e-17 0.101 + 14000| 0.140 3.014e-17 0.425 +===================================================================== + +Graphics systems deleted. +Visualization Manager deleting... diff --git a/examples/advanced/ICRP145_HumanPhantoms/ICRP145phantoms.cc b/examples/advanced/ICRP145_HumanPhantoms/ICRP145phantoms.cc new file mode 100644 index 0000000000..a776a3c297 --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/ICRP145phantoms.cc @@ -0,0 +1,142 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// Author: Haegin Han +// Contributor: Min Cheol Han, Bangho Shin, Chansoo Choi, Yeon Soo Yeom, +// Jonghwi Jeong, Chan Hyeong Kim +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli +// +#include "TETDetectorConstruction.hh" +#include "TETModelImport.hh" +#include "TETActionInitialization.hh" +#include "G4RunManagerFactory.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" +#include "G4VisExecutive.hh" +#include "G4UIExecutive.hh" +#include "Randomize.hh" +#include "QGSP_BIC_HP.hh" + +void PrintUsage(){ + G4cerr<< "Usage: ./External -m [MACRO] -o [OUTPUT] -f (option for MRCP-AF phantom)" <6 ){ + PrintUsage(); + return 1; + } + + // Detect interactive mode (if no macro file name) and define UI session + // + if ( !macro.size() ) { + ui = new G4UIExecutive(argc, argv); + } + // default output file name + else if ( !output.size() ) output = macro + ".out"; + + // Choose the Random engine + // + //G4Random::setTheSeed(time(0)); + + // Construct the default run manager + // + auto* runManager = G4RunManagerFactory::CreateRunManager(); + G4int nThreads = 4; + runManager->SetNumberOfThreads(nThreads); + + // Set a class to import phantom data + // + auto* tetData = new TETModelImport(isAF, ui); + + // Set mandatory initialisation classes + // + // detector construction + runManager->SetUserInitialization(new TETDetectorConstruction(tetData)); + // physics list + //runManager->SetUserInitialization(new TETPhysicsList()); + runManager->SetUserInitialization(new QGSP_BIC_HP()); + // user action initialisation + runManager->SetUserInitialization(new TETActionInitialization(tetData, output)); + + // Visualization manager + // + G4VisManager* visManager = new G4VisExecutive; + visManager->Initialise(); + + // Process macro or start UI session + // + G4UImanager* UImanager = G4UImanager::GetUIpointer(); + + if ( ! ui ){ + // batch mode + G4String command = "/control/execute "; + UImanager->ApplyCommand(command+macro); + } + else { + // interactive mode + UImanager->ApplyCommand("/control/execute init_vis.mac"); + ui->SessionStart(); + + delete ui; + } + + delete visManager; + delete runManager; +} + + diff --git a/examples/advanced/ICRP145_HumanPhantoms/README b/examples/advanced/ICRP145_HumanPhantoms/README new file mode 100644 index 0000000000..329666e1c5 --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/README @@ -0,0 +1,116 @@ + + ========================================================= + Geant4 - ICRP145_HumanPhantoms example + ========================================================= + + README + --------------------- + + +******************************************************************** +* The ICRP145 Phantoms are used in Geant4 with permission from the * +* International Commission on Radiological Protection * * +******************************************************************** + +Authors' list: +• Haeginh Han / Hanyang University, Republic of Korea +• Min Cheol Han / Yonsei University Health System, Republic of Korea +• Banho Shin / Hanyang University, Republic of Korea +• Chansoo Choi / University of Florida, USA +• Yeon Soo Yeom / Yonsei University, Republic of Korea +• Jonghwi Jeong / National Cancer Center, Republic of Korea +• Chan Hyeong Kim / Hanyang University, Republic of Korea + +Bibliographic references - please refer to this reference when using the Advanced Example +• ICRP, 2020. Adult mesh-type reference computational phantoms. ICRP Publication 145. Ann. ICRP 49(3). + +Geant4 Contributors: J. Allison and S. Guatelli + +e-mail inquiries to: haeginh@hanyang.ac.kr, susanna@uow.edu.au, MRCP.ICRP@gmail.com + +1- HOW TO BUILD AND RUN THE EXAMPLES + + Please note that the guides below are based on Linux/MacOSX, which are the + recommended platforms for Geant4. + +1) Compile and link to generate an executable (with CMake) + + % cd path_to_example + % mkdir example_build + % cd example_build + % cmake .. + % make + +2) How to run + + a) For the irradiation with external beams: + + % ./ICRP145phantoms [options] + + Options: + -m [input file name] optional provided->batch mode + not provided->interactive mode + -o [output file name] optional (default: [macro file name].out) + -f optional switch to change the phantom to MRCP-AF + (default: MRCP-AM) + + ex) MRCP-AM: % ./External -m example.in -o example.out + ex) MRCP-AF: % ./External -m example.in -o example.out -f + + *** The radiation source can be specified in source.mac file by using + macro commands for G4GeneralParticleSource (/gps/) + + b) For the case of internal radiation sources: + + % ./ICRP145phantoms [options] + + Options: + -i [ID of source organ] mandatory (ID of each organ can be found in Appendix A) + -m [input file name] optional provided->batch mode + not provided->interactive mode + -o [output file name] optional (default: [macro file name].out) + -f optional switch to change the phantom to MRCP-AF + (default: MRCP-AM) + + ex) MRCP-AM: % ./Internal -i 9500 -m example.in -o example.out + ex) MRCP-AF: % ./Internal -i 9500 -m example.in -o example.out -f + + *** source organ can be defined by using -i option. + *** source particle and the particle energy can be specified + in source.mac file by using macro commands for G4ParticlGun (/gun/) + c) Notes + + - Regarding the interactive mode with visualisation: + + * you can run the codes in interactive mode with visualisation by + omitting -m option. + * the memory required for the visualisation is ~35 GB when the code is + run on a single thread. (it is less than 10 GB in batch mode) + * in interactive mode, user should start a run by using + /run/beamOn command. (Idle> /run/beamOn [number of events]) + + + - Regarding the multi-threaded mode: + + * these examples can be run in multi-threaded mode when Geant4 was + compiled in multi-threaded mode. + * the number of threads can be set in input file (see example.in) + + - Regarding the path to phantom data: + + * the default path to phantom data is "(build_directory)/../../phantoms". + * to specify the path please change a PHANTOM_PATH environment variable. + (export PHANTOM_PATH="path_to_phantom_data") + +2- RESULT FILE + + example_male.out and example_female.out files in each folder is the result file + for example.in. The result file provides absorbed doses for all organ IDs for TM + model listed in Appendix A. + +3- LICENSE + + This code is based on Geant4 toolkit, and therefore follows the 'The Geant4 + Software License' (http://geant4.web.cern.ch/license/LICENSE.html). + + diff --git a/examples/advanced/ICRP145_HumanPhantoms/README_general b/examples/advanced/ICRP145_HumanPhantoms/README_general new file mode 100644 index 0000000000..f0d2b5dc01 --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/README_general @@ -0,0 +1,49 @@ +The compressed package of electronic files contains the detailed data on the adult mesh-type reference computational phantoms (MRCPs). The package is organised in two folders: 'Phantom_data' and 'MC_examples'. + +1. Data files in Phantom_data + +This folder is subdivided into two folders, one for each of the two reference phantoms (AM: adult male, AF: adult female). Each folder contains the following files: + +* Data files for tetrahedral mesh (TM) version of the adult MRCPs; the file names are: + MRCP_AM.node + MRCP_AM.ele + MRCP_AF.node + MRCP_AF.ele + The data files consist of NODE- and ELE-format files. The NODE-format files contain a list of node coordinates composing the TM-version phantoms, with the following format: + - First line: <# of nodes> + - Remaining lines list # of points: + The ELE-format files contain a list of tetrahedrons composing the TM-version phantoms and each tetrahedron is represented as four node IDs listed in the corresponding NODE-format files and an organ ID number with respect to the tetrahedron, and the format is as follows: + - First line: <# of tetrahedrons> <# of attributes (= 1, for organ ID)> + - Remaining lines list # of tetrahedrons: + +* Data files for polygon mesh (PM) version of the adult MRCPs; the file names are: + MRCP_AM.obj + MRCP_AM.mtl + MRCP_AF.obj + MRCP_AF.mtl + These files consist of OBJ- and MTL-format files, which contain data on PM and colours, respectively. They can be imported in various 3D commercial programs such as 3ds Max (Autodesk, USA), MAYA (Autodesk, USA), Rapidform (INUS Technology Inc., Korea) and Rhinoceros (Robert McNeel, USA). + +* Lists of the media, elemental compositions and densities; the file names are: + MRCP_AM_media.dat + MRCP_AF_media.dat + +* The mass ratios of bone constituents (trabecular bone, red and yellow bone marrow) in the spongiosa regions; the file names are: + MRCP_AM_spongiosa.dat + MRCP_AF_spongiosa.dat + +* The mass ratios of blood in various body tissues; the file names are: + MRCP_AM_blood.dat + MRCP_AF_blood.dat + +* PDF files for phantom visualisation; the file names are: + MRCP_AM.pdf + MRCP_AF.pdf + The PDF files visualise the MRCPs in a 3D view. The PDF files can be opened in Acrobat program (Adobe Systems, San Jose, CA, USA) where one can navigate the phantoms in detail, e.g. by rotating or enlarging each of the organ/tissue models. Detailed instruction on these 3D PDF files can be found elsewhere (https://helpx.adobe.com/acrobat/using/displaying-3d-models-pdfs.html). + +2. Data files in MC_examples + +This folder contains the following three compressed files: + MRCP_GEANT4.zip + MRCP_MCNP6.zip + MRCP_PHITS.zip +The data files contain input examples for implementation of the TM-version phantoms in the three Monte Carlo codes, i.e. Geant4, MCNP6 and PHITS. Each of the compressed files include examples for internal and external exposures, where the source is defined as homogeneous liver source and a point source located at 1 m in front of the phantom, respectively, both emitting 1-MeV photons. Detailed information on the implementation is described in the 'README.txt' file included in each compressed file. Please note that neither the ICRP nor Task Group 103 shall not be liable for any result produced by any of these input examples. diff --git a/examples/advanced/ICRP145_HumanPhantoms/example.in b/examples/advanced/ICRP145_HumanPhantoms/example.in new file mode 100644 index 0000000000..86095e26f4 --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/example.in @@ -0,0 +1,16 @@ +# Example macro file to run in the batch mode + +# Set the verbose +/run/verbose 0 + +# Set the number of threads for multi-threading mode +#/run/numberOfThreads 1 + +# Initialize +/run/initialize + +# Source setting +/control/execute source.mac + +# Set the nps +/run/beamOn 1000000 diff --git a/examples/advanced/ICRP145_HumanPhantoms/example_female.out b/examples/advanced/ICRP145_HumanPhantoms/example_female.out new file mode 100644 index 0000000000..6917dc7715 --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/example_female.out @@ -0,0 +1,194 @@ + +===================================================================== + Run #0 / Number of event processed : 10000000 +===================================================================== +organ ID| Organ Mass (g) Dose (Gy/source) Relative Error + 100| 6.817 3.661e-17 0.177 + 200| 8.649 3.553e-17 0.163 + 300| 0.009 0.000e+00 -nan + 301| 0.035 0.000e+00 -nan + 302| 0.011 0.000e+00 -nan + 303| 4.375 2.195e-17 0.295 + 400| 0.104 8.471e-18 0.474 + 401| 0.288 2.200e-17 0.428 + 402| 0.072 1.423e-17 0.531 + 403| 0.036 1.818e-17 0.539 + 404| 0.072 1.736e-17 0.617 + 405| 14.180 2.113e-17 0.140 + 500| 0.066 1.696e-17 0.568 + 501| 0.016 5.218e-17 0.438 + 600| 0.019 3.313e-17 0.664 + 700| 8.201 3.299e-17 0.171 + 800| 0.010 1.636e-17 0.763 + 801| 0.013 3.724e-17 0.746 + 802| 0.021 1.788e-17 0.707 + 803| 0.053 5.330e-17 0.619 + 804| 0.011 7.979e-17 0.629 + 805| 0.021 8.679e-17 0.541 + 806| 0.021 5.924e-17 0.590 + 807| 0.021 4.706e-17 0.586 + 808| 1.179 2.803e-17 0.331 + 900| 1.906 4.858e-17 0.280 + 910| 3.007 3.201e-17 0.287 + 1000| 117.872 2.683e-17 0.048 + 1010| 239.851 3.472e-17 0.031 + 1100| 46.312 2.998e-17 0.070 + 1110| 139.528 3.247e-17 0.041 + 1200| 79.906 2.190e-17 0.061 + 1210| 355.612 2.840e-17 0.028 + 1300| 113.681 2.881e-17 0.049 + 1400| 107.717 2.900e-17 0.053 + 1500| 20.516 3.116e-17 0.111 + 1600| 103.296 2.759e-17 0.052 + 1700| 50.264 2.727e-17 0.078 + 1800| 20.493 2.615e-17 0.120 + 1900| 156.708 2.912e-17 0.042 + 2000| 86.883 3.035e-17 0.057 + 2100| 34.068 3.756e-17 0.080 + 2200| 105.132 2.732e-17 0.050 + 2300| 69.360 2.901e-17 0.063 + 2400| 32.825 2.474e-17 0.097 + 2500| 38.798 3.013e-17 0.086 + 2600| 407.670 1.712e-17 0.033 + 2700| 391.311 1.939e-17 0.033 + 2800| 244.126 3.243e-17 0.031 + 2900| 232.804 3.174e-17 0.033 + 3000| 39.516 3.219e-17 0.075 + 3100| 240.929 3.114e-17 0.032 + 3200| 166.334 3.124e-17 0.040 + 3300| 56.762 3.502e-17 0.064 + 3400| 544.845 2.666e-17 0.024 + 3500| 558.529 2.779e-17 0.024 + 3600| 88.883 3.037e-17 0.056 + 3700| 173.476 2.354e-17 0.044 + 3800| 257.451 2.095e-17 0.040 + 3900| 45.394 3.019e-17 0.075 + 4000| 33.479 2.554e-17 0.094 + 4100| 262.458 3.231e-17 0.028 + 4200| 455.599 3.195e-17 0.023 + 4300| 164.504 2.327e-17 0.038 + 4400| 277.325 2.412e-17 0.033 + 4500| 121.664 1.797e-17 0.056 + 4600| 96.730 2.254e-17 0.059 + 4700| 71.596 1.743e-17 0.072 + 4800| 75.601 2.179e-17 0.068 + 4900| 205.828 1.881e-17 0.041 + 5000| 271.915 1.896e-17 0.038 + 5100| 156.175 2.475e-17 0.040 + 5200| 264.976 2.869e-17 0.032 + 5300| 80.240 2.597e-17 0.055 + 5400| 154.840 2.696e-17 0.042 + 5500| 1.685 2.989e-17 0.184 + 5600| 51.347 3.725e-17 0.066 + 5700| 41.959 3.329e-17 0.073 + 5800| 69.351 2.491e-17 0.064 + 6100| 1349.568 1.785e-17 0.020 + 6200| 153.663 3.706e-17 0.039 + 6300| 102.491 3.359e-17 0.051 + 6400| 153.663 3.774e-17 0.039 + 6500| 102.491 3.625e-17 0.049 + 6600| 0.039 1.398e-17 1.000 + 6601| 0.189 1.056e-16 0.707 + 6700| 1.100 3.190e-17 0.350 + 6701| 0.304 1.107e-17 0.722 + 6702| 6.051 3.426e-17 0.207 + 6800| 0.039 0.000e+00 -nan + 6801| 0.189 8.345e-17 0.783 + 6900| 1.100 3.462e-17 0.375 + 6901| 0.304 2.449e-17 0.883 + 6902| 6.051 2.698e-17 0.227 + 7000| 8.201 2.460e-17 0.154 + 7100| 48.000 2.802e-17 0.077 + 7200| 1.561 2.585e-17 0.158 + 7201| 1.044 3.252e-17 0.171 + 7202| 5.256 3.406e-17 0.126 + 7203| 165.012 3.183e-17 0.039 + 7300| 230.000 3.138e-17 0.035 + 7400| 12.341 3.739e-17 0.068 + 7401| 1.922 3.398e-17 0.114 + 7402| 4.831 3.822e-17 0.092 + 7403| 736.662 3.466e-17 0.018 + 7500| 45.227 3.828e-17 0.051 + 7501| 234.773 3.493e-17 0.030 + 7600| 4.451 4.124e-17 0.133 + 7601| 0.322 5.838e-17 0.199 + 7602| 107.784 4.089e-17 0.042 + 7700| 100.007 3.822e-17 0.047 + 7800| 3.680 5.143e-17 0.134 + 7801| 0.266 3.130e-17 0.238 + 7802| 64.847 3.883e-17 0.056 + 7900| 59.995 3.972e-17 0.059 + 8000| 2.196 4.388e-17 0.182 + 8001| 0.160 3.557e-17 0.241 + 8002| 66.428 4.333e-17 0.053 + 8100| 30.005 3.809e-17 0.086 + 8200| 3.021 4.131e-17 0.162 + 8201| 0.220 3.550e-17 0.247 + 8202| 109.320 3.943e-17 0.044 + 8300| 50.003 3.608e-17 0.067 + 8400| 4.222 2.886e-17 0.159 + 8401| 0.306 1.761e-17 0.289 + 8402| 51.761 2.873e-17 0.069 + 8500| 79.993 2.896e-17 0.058 + 8600| 31.268 2.678e-17 0.097 + 8700| 290.890 2.987e-17 0.031 + 8800| 370.000 2.927e-17 0.029 + 8900| 149.091 2.257e-17 0.048 + 9000| 37.441 2.704e-17 0.088 + 9100| 7.494 2.666e-17 0.175 + 9200| 125.147 2.778e-17 0.048 + 9300| 31.440 2.492e-17 0.094 + 9400| 6.292 3.461e-17 0.193 + 9500| 1810.000 3.009e-17 0.013 + 9700| 427.256 2.280e-17 0.029 + 9900| 522.518 2.539e-17 0.025 + 10000| 12.695 2.402e-17 0.155 + 10100| 12.695 2.307e-17 0.144 + 10200| 4.386 2.635e-17 0.245 + 10300| 103.641 3.413e-17 0.045 + 10400| 8.771 2.455e-17 0.174 + 10500| 8.771 2.680e-17 0.180 + 10600| 445.022 2.369e-17 0.028 + 10700| 8324.973 2.733e-17 0.006 + 10800| 1479.724 3.040e-17 0.014 + 10900| 7676.720 2.828e-17 0.007 + 11000| 1.871 2.790e-17 0.210 + 11001| 0.101 1.953e-17 0.534 + 11002| 41.247 2.604e-17 0.081 + 11003| 21.240 2.420e-17 0.119 + 11100| 6.318 3.542e-17 0.189 + 11200| 6.318 3.227e-17 0.184 + 11300| 144.552 3.378e-17 0.041 + 11400| 0.615 2.289e-17 0.919 + 11600| 844.543 2.412e-17 0.021 + 11700| 11513.363 2.846e-17 0.005 + 11800| 2171.588 3.008e-17 0.012 + 11900| 7795.948 2.936e-17 0.006 + 12000| 35.880 2.795e-17 0.091 + 12100| 35.880 2.102e-17 0.102 + 12200| 155.582 2.013e-17 0.046 + 12201| 6.324 9.397e-18 0.126 + 12300| 871.603 2.414e-17 0.018 + 12301| 32.368 1.388e-17 0.052 + 12400| 380.905 2.587e-17 0.025 + 12401| 15.598 2.087e-17 0.065 + 12500| 924.584 2.411e-17 0.017 + 12501| 35.025 1.617e-17 0.046 + 12600| 19.098 2.224e-17 0.124 + 12700| 187.400 2.248e-17 0.044 + 12800| 40.562 2.876e-17 0.086 + 12801| 0.036 1.515e-17 0.494 + 13100| 20.503 2.574e-17 0.117 + 13200| 19.455 3.070e-17 0.114 + 13300| 20.995 2.516e-17 0.123 + 13301| 40.415 2.651e-17 0.090 + 13400| 3.075 2.472e-17 0.339 + 13500| 7.689 3.842e-17 0.161 + 13600| 7.689 2.561e-17 0.176 + 13700| 39.459 3.936e-17 0.066 + 13701| 1.345 3.968e-17 0.151 + 13800| 200.000 3.900e-17 0.033 + 13900| 81.993 3.570e-17 0.053 + 14000| 0.036 1.561e-17 0.281 +===================================================================== + diff --git a/examples/advanced/ICRP145_HumanPhantoms/example_male.out b/examples/advanced/ICRP145_HumanPhantoms/example_male.out new file mode 100644 index 0000000000..9c3bc9cfcd --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/example_male.out @@ -0,0 +1,194 @@ + +===================================================================== + Run #0 / Number of event processed : 10000000 +===================================================================== +organ ID| Organ Mass (g) Dose (Gy/source) Relative Error + 100| 8.683 1.823e-17 0.214 + 200| 8.683 2.226e-17 0.184 + 300| 0.022 1.212e-17 0.623 + 301| 0.090 1.298e-17 0.594 + 302| 0.028 1.613e-17 0.553 + 303| 11.291 2.867e-17 0.163 + 400| 0.141 3.189e-17 0.582 + 401| 0.390 1.916e-17 0.400 + 402| 0.098 1.795e-17 0.367 + 403| 0.049 2.251e-17 0.450 + 404| 0.098 2.337e-17 0.340 + 405| 28.808 2.232e-17 0.105 + 500| 0.086 9.438e-18 0.511 + 501| 0.024 4.264e-17 0.521 + 600| 0.023 3.064e-17 0.470 + 700| 10.364 2.425e-17 0.165 + 800| 0.025 7.156e-18 0.530 + 801| 0.031 7.956e-18 0.529 + 802| 0.052 1.636e-17 0.735 + 803| 0.130 1.912e-17 0.470 + 804| 0.026 4.134e-17 0.673 + 805| 0.052 4.320e-17 0.589 + 806| 0.052 3.789e-17 0.545 + 807| 0.053 8.085e-18 0.471 + 808| 2.777 2.550e-17 0.274 + 900| 1.504 1.589e-17 0.370 + 910| 6.943 2.947e-17 0.199 + 1000| 193.192 2.974e-17 0.036 + 1010| 444.080 3.310e-17 0.023 + 1100| 32.452 3.293e-17 0.081 + 1110| 167.270 2.816e-17 0.040 + 1200| 108.840 2.682e-17 0.049 + 1210| 389.680 2.765e-17 0.027 + 1300| 159.385 2.784e-17 0.043 + 1400| 145.689 2.683e-17 0.047 + 1500| 34.244 2.605e-17 0.094 + 1600| 106.532 2.887e-17 0.050 + 1700| 50.890 2.682e-17 0.077 + 1800| 37.397 2.629e-17 0.089 + 1900| 273.382 2.768e-17 0.032 + 2000| 154.981 3.102e-17 0.042 + 2100| 22.996 2.805e-17 0.105 + 2200| 181.529 2.680e-17 0.040 + 2300| 118.927 2.983e-17 0.048 + 2400| 48.252 2.747e-17 0.074 + 2500| 45.057 2.974e-17 0.079 + 2600| 568.469 1.559e-17 0.030 + 2700| 382.073 1.664e-17 0.036 + 2800| 253.548 2.869e-17 0.032 + 2900| 413.232 3.193e-17 0.025 + 3000| 26.045 3.241e-17 0.092 + 3100| 307.761 3.012e-17 0.029 + 3200| 373.652 2.908e-17 0.028 + 3300| 82.179 3.533e-17 0.053 + 3400| 536.651 2.492e-17 0.024 + 3500| 621.408 2.462e-17 0.024 + 3600| 79.815 2.637e-17 0.063 + 3700| 234.882 1.969e-17 0.040 + 3800| 432.615 1.879e-17 0.033 + 3900| 76.877 2.229e-17 0.065 + 4000| 56.287 2.643e-17 0.073 + 4100| 402.595 3.179e-17 0.023 + 4200| 619.672 3.311e-17 0.020 + 4300| 368.797 2.307e-17 0.027 + 4400| 457.351 2.278e-17 0.027 + 4500| 223.331 1.773e-17 0.042 + 4600| 156.670 1.881e-17 0.051 + 4700| 103.943 2.262e-17 0.056 + 4800| 78.915 2.485e-17 0.062 + 4900| 289.440 1.549e-17 0.037 + 5000| 345.222 1.808e-17 0.034 + 5100| 188.047 2.124e-17 0.039 + 5200| 291.584 2.428e-17 0.033 + 5300| 110.320 2.166e-17 0.050 + 5400| 192.224 2.543e-17 0.040 + 5500| 9.991 3.676e-17 0.119 + 5600| 61.420 3.450e-17 0.063 + 5700| 56.331 4.012e-17 0.059 + 5800| 82.063 2.293e-17 0.061 + 6100| 1517.390 1.453e-17 0.021 + 6200| 7.769 4.372e-17 0.158 + 6300| 5.180 2.710e-17 0.245 + 6400| 7.769 2.613e-17 0.196 + 6500| 5.180 3.579e-17 0.214 + 6600| 0.039 0.000e+00 -nan + 6601| 0.189 0.000e+00 -nan + 6700| 1.113 3.214e-17 0.311 + 6701| 0.308 3.653e-17 0.742 + 6702| 6.122 4.699e-17 0.184 + 6800| 0.039 2.559e-16 0.713 + 6801| 0.189 0.000e+00 -nan + 6900| 1.113 2.181e-17 0.400 + 6901| 0.308 3.218e-17 0.721 + 6902| 6.122 1.765e-17 0.264 + 7000| 10.364 3.104e-17 0.135 + 7100| 58.000 3.021e-17 0.067 + 7200| 1.784 4.074e-17 0.140 + 7201| 1.193 3.888e-17 0.156 + 7202| 6.008 3.330e-17 0.116 + 7203| 185.286 3.166e-17 0.036 + 7300| 250.000 3.214e-17 0.032 + 7400| 14.547 3.389e-17 0.063 + 7401| 2.264 3.102e-17 0.091 + 7402| 5.692 3.270e-17 0.084 + 7403| 840.096 3.388e-17 0.017 + 7500| 53.337 3.403e-17 0.048 + 7501| 296.663 3.355e-17 0.028 + 7600| 3.071 3.152e-17 0.173 + 7601| 0.223 2.846e-17 0.224 + 7602| 116.634 3.191e-17 0.046 + 7700| 55.000 2.906e-17 0.069 + 7800| 3.993 4.460e-17 0.132 + 7801| 0.289 3.202e-17 0.206 + 7802| 75.671 4.022e-17 0.051 + 7900| 95.000 3.594e-17 0.050 + 8000| 2.824 4.490e-17 0.155 + 8001| 0.205 4.407e-17 0.268 + 8002| 76.924 3.867e-17 0.052 + 8100| 40.000 3.815e-17 0.072 + 8200| 2.779 2.246e-17 0.215 + 8201| 0.203 2.315e-17 0.315 + 8202| 116.946 3.091e-17 0.047 + 8300| 35.000 2.803e-17 0.088 + 8400| 4.451 4.011e-17 0.130 + 8401| 0.324 5.102e-17 0.220 + 8402| 48.527 3.979e-17 0.061 + 8500| 75.000 3.336e-17 0.055 + 8600| 39.976 2.388e-17 0.087 + 8700| 385.839 2.760e-17 0.027 + 8800| 510.000 2.717e-17 0.025 + 8900| 162.338 2.038e-17 0.048 + 9000| 38.359 2.171e-17 0.091 + 9100| 7.652 2.161e-17 0.195 + 9200| 166.542 2.284e-17 0.044 + 9300| 39.362 2.416e-17 0.089 + 9400| 7.892 2.481e-17 0.196 + 9500| 2360.000 2.788e-17 0.012 + 9700| 545.877 2.398e-17 0.025 + 9900| 652.861 2.439e-17 0.023 + 10000| 15.949 2.046e-17 0.140 + 10100| 15.949 1.623e-17 0.140 + 10200| 5.510 3.312e-17 0.200 + 10300| 130.204 3.919e-17 0.038 + 10400| 11.019 3.940e-17 0.135 + 10500| 11.019 2.322e-17 0.157 + 10600| 1200.825 2.321e-17 0.018 + 10700| 14841.881 2.653e-17 0.005 + 10800| 2843.509 2.919e-17 0.010 + 10900| 10890.496 2.739e-17 0.006 + 11000| 1.919 1.863e-17 0.216 + 11001| 0.103 2.351e-17 0.388 + 11002| 49.783 2.261e-17 0.079 + 11003| 22.870 2.323e-17 0.114 + 11300| 173.631 3.088e-17 0.040 + 11400| 0.622 2.296e-18 0.871 + 11500| 17.618 3.209e-17 0.115 + 11600| 975.623 2.161e-17 0.020 + 11700| 11176.842 2.926e-17 0.005 + 11800| 1549.839 2.970e-17 0.013 + 11900| 4510.195 2.754e-17 0.008 + 12000| 44.045 2.608e-17 0.085 + 12100| 44.045 2.497e-17 0.086 + 12200| 259.230 1.885e-17 0.038 + 12201| 8.470 1.245e-17 0.105 + 12300| 1271.189 2.333e-17 0.015 + 12301| 38.418 1.457e-17 0.046 + 12400| 575.701 2.584e-17 0.021 + 12401| 18.843 1.880e-17 0.055 + 12500| 1259.927 2.413e-17 0.015 + 12501| 37.790 1.473e-17 0.046 + 12600| 37.952 2.169e-17 0.091 + 12700| 228.400 1.819e-17 0.044 + 12800| 50.727 2.446e-17 0.085 + 12801| 0.043 3.306e-17 0.495 + 12900| 18.617 3.979e-17 0.109 + 13000| 18.617 3.581e-17 0.114 + 13100| 25.909 3.163e-17 0.103 + 13200| 23.351 2.401e-17 0.120 + 13300| 20.993 2.192e-17 0.134 + 13301| 54.552 2.771e-17 0.078 + 13400| 3.109 1.949e-17 0.363 + 13500| 8.809 2.832e-17 0.154 + 13600| 7.773 3.769e-17 0.157 + 13700| 49.781 3.589e-17 0.063 + 13701| 1.318 3.523e-17 0.171 + 13800| 200.000 3.575e-17 0.035 + 14000| 0.140 2.153e-17 0.249 +===================================================================== + diff --git a/examples/advanced/ICRP145_HumanPhantoms/include/TETActionInitialization.hh b/examples/advanced/ICRP145_HumanPhantoms/include/TETActionInitialization.hh new file mode 100644 index 0000000000..7a3876ab08 --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/include/TETActionInitialization.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// TETActionInitialization.hh +// +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli +// +#ifndef TETActionInitialization_h +#define TETActionInitialization_h 1 + +#include "G4VUserActionInitialization.hh" +#include "G4String.hh" +#include "TETRunAction.hh" +#include "TETSteppingAction.hh" +#include "TETPrimaryGeneratorAction.hh" + +class TETModelImport; + +// ********************************************************************* +// This UserActionInitialization class initializes UserAction classes +// -- BuildForMaster: instantiate UserRunAction class to be used by +// G4MTRunManager. This method is not invoked in +// the sequential mode. +// -- Build: instantiate UserPrimaryGeneratorAction, UserRunAction, and +// UserSteppingAction classes. +// ********************************************************************* + +class TETActionInitialization : public G4VUserActionInitialization +{ +public: + explicit TETActionInitialization(TETModelImport* tetData, + G4String outputFileName); + + virtual ~TETActionInitialization() = default; + + virtual void BuildForMaster() const; + virtual void Build() const; + +private: + TETModelImport* fTetData; + G4String fOutput; +}; +#endif + + diff --git a/examples/advanced/ICRP145_HumanPhantoms/include/TETDetectorConstruction.hh b/examples/advanced/ICRP145_HumanPhantoms/include/TETDetectorConstruction.hh new file mode 100644 index 0000000000..396e7ca94e --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/include/TETDetectorConstruction.hh @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// TETDetectorConstruction.hh +// +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli +// + +#ifndef TETDetectorConstruction_h +#define TETDetectorConstruction_h 1 + +#include "G4VUserDetectorConstruction.hh" + +#include + +#include "globals.hh" + +#include "G4Material.hh" +#include "G4NistManager.hh" + +#include "G4Box.hh" +#include "G4Tet.hh" +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVParameterised.hh" + +#include "G4SDManager.hh" +#include "G4MultiFunctionalDetector.hh" +#include "TETPSEnergyDeposit.hh" + +#include "G4SystemOfUnits.hh" + +#include "TETModelImport.hh" +#include "TETParameterisation.hh" + +// ********************************************************************* +// This is UserDetectorConstruction class that defines the geometry +// -- Construct: construct Geometry by three methods listed below. +// └-- SetupWorldGeometry: Defines the world box (10*10*10 m3) and, +// phantom container which has 10 cm-margins from +// the bounding box of phantom +// └-- ConstructPhantom: Define the phantom geometry by using +// G4PVParameterised class +// └-- PrintPhantomInformation: Print overall phantom information +// +// -- ConstructSDandField: Setup the MultiFunctionalDetector with energy +// deposition scorer, and attach it to phantom +// geometry +// ********************************************************************* + +class TETDetectorConstruction : public G4VUserDetectorConstruction +{ +public: + TETDetectorConstruction(TETModelImport* tetData); + virtual ~TETDetectorConstruction(); + + virtual G4VPhysicalVolume* Construct() override; + virtual void ConstructSDandField() override; + +private: + void SetupWorldGeometry(); + void ConstructPhantom(); + void PrintPhantomInformation(); + + G4VPhysicalVolume* fWorldPhysical; + G4LogicalVolume* fContainer_logic; + + TETModelImport* fTetData; + G4ThreeVector fPhantomSize; + G4ThreeVector fPhantomBoxMin, fPhantomBoxMax; + G4int fNOfTetrahedrons; + + G4LogicalVolume* fTetLogic; +}; +#endif diff --git a/examples/advanced/ICRP145_HumanPhantoms/include/TETModelImport.hh b/examples/advanced/ICRP145_HumanPhantoms/include/TETModelImport.hh new file mode 100644 index 0000000000..baec7b2187 --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/include/TETModelImport.hh @@ -0,0 +1,114 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli +// +#ifndef TETModelImport_h +#define TETModelImport_h 1 + +#include +#include +#include +#include +#include +#include + +#include "G4UIExecutive.hh" +#include "G4SystemOfUnits.hh" +#include "G4PhysicalConstants.hh" +#include "G4ThreeVector.hh" +#include "G4String.hh" +#include "G4Tet.hh" +#include "G4NistManager.hh" +#include "G4Material.hh" +#include "G4Colour.hh" + +// ********************************************************************* +// This class imports the phantom data from *.ele, *.node, and +// *.material files. +// -- DataRead: Construct G4Tet by reading data from *.ele and *.node +// files +// -- MaterialRead: Construct G4Material by reading material data from +// *.material file +// -- ColourRead: Construct std::map that contains G4Colour data +// according to data in colour.dat file +// -- PrintMaterialInformation: Print a table that contains organ ID, +// number of tetrahedrons, volume, density, +// mass, and name for each organ +// ********************************************************************* + +class TETModelImport +{ +public: + TETModelImport(G4bool isAF, G4UIExecutive* ui); + virtual ~TETModelImport() {}; + + // get methods + G4String GetPhantomName() { return fPhantomName; }; + G4Material* GetMaterial(G4int idx) { return fMaterialMap[idx];} + G4int GetNumTetrahedron() { return fTetVector.size();} + G4int GetMaterialIndex(G4int idx){ return fMaterialVector[idx]; } + G4Tet* GetTetrahedron(G4int idx) { return fTetVector[idx]; } + G4double GetVolume(G4int idx) { return fVolumeMap[idx]; } + std::map GetMassMap() { return fMassMap; } + std::map GetColourMap() { return fColourMap; } + G4ThreeVector GetPhantomSize() { return fPhantomSize; } + G4ThreeVector GetPhantomBoxMin() { return fBoundingBox_Min; } + G4ThreeVector GetPhantomBoxMax() { return fBoundingBox_Max; } + +private: + // private methods + void DataRead(G4String, G4String); + void MaterialRead(G4String); + void ColourRead(); + void PrintMaterialInfomation(); + + G4String fPhantomDataPath; + G4String fPhantomName; + + G4ThreeVector fBoundingBox_Min; + G4ThreeVector fBoundingBox_Max; + G4ThreeVector fPhantomSize; + + std::vector fVertexVector; + std::vector fTetVector; + std::vector fEleVector; + std::vector fMaterialVector; + std::map fNumTetMap; + std::map fVolumeMap; + std::map fMassMap; + std::map fColourMap; + + std::map>> fMaterialIndexMap; + std::vector fMaterialIndex; + std::map fMaterialMap; + std::map fDensityMap; + std::map fOrganNameMap; +}; + +#endif diff --git a/environments/g4py/tests/g4pytest/ezgeom/EzDetectorConstruction.hh b/examples/advanced/ICRP145_HumanPhantoms/include/TETPSEnergyDeposit.hh similarity index 66% rename from environments/g4py/tests/g4pytest/ezgeom/EzDetectorConstruction.hh rename to examples/advanced/ICRP145_HumanPhantoms/include/TETPSEnergyDeposit.hh index 19a717dc2c..c6a034c995 100644 --- a/environments/g4py/tests/g4pytest/ezgeom/EzDetectorConstruction.hh +++ b/examples/advanced/ICRP145_HumanPhantoms/include/TETPSEnergyDeposit.hh @@ -23,30 +23,37 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// EzDetectorConstruction.hh +// TETPSEnergyDeposit.hh // -// 2005 Q -// ==================================================================== -#ifndef EZ_DETECTOR_CONSTRUCTION_H -#define EZ_DETECTOR_CONSTRUCTION_H - -#include "G4VUserDetectorConstruction.hh" - -// ==================================================================== +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli // -// class definition -// -// ==================================================================== -class EzDetectorConstruction : public G4VUserDetectorConstruction { +#ifndef TETPSEnergyDeposit_h +#define TETPSEnergyDeposit_h 1 -public: - EzDetectorConstruction(); - ~EzDetectorConstruction(); +#include "G4PSEnergyDeposit.hh" +#include "TETModelImport.hh" - virtual G4VPhysicalVolume* Construct(); +// ********************************************************************* +// This is the scorer based on G4PSEnergyDeposit class. +// -- GetIndex: Return the organ ID instead of copy number automatically +// given by Parameterisation geometry. +// ********************************************************************* +class TETPSEnergyDeposit : public G4PSEnergyDeposit +{ + public: + explicit TETPSEnergyDeposit(G4String name,TETModelImport* _tetData); + virtual ~TETPSEnergyDeposit() = default; + + protected: + virtual G4int GetIndex(G4Step*); + + private: + TETModelImport* fTetData; }; #endif + diff --git a/environments/g4py/tests/g4pytest/ExN03geom/ExN03DetectorMessenger.hh b/examples/advanced/ICRP145_HumanPhantoms/include/TETParameterisation.hh similarity index 52% rename from environments/g4py/tests/g4pytest/ExN03geom/ExN03DetectorMessenger.hh rename to examples/advanced/ICRP145_HumanPhantoms/include/TETParameterisation.hh index 40ec817aaf..5c53117967 100644 --- a/environments/g4py/tests/g4pytest/ExN03geom/ExN03DetectorMessenger.hh +++ b/examples/advanced/ICRP145_HumanPhantoms/include/TETParameterisation.hh @@ -23,52 +23,56 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// +// TETParameterisation.hh // +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli +// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#ifndef TETParameterisation_h +#define TETParameterisation_h 1 -#ifndef ExN03DetectorMessenger_h -#define ExN03DetectorMessenger_h 1 +#include "TETModelImport.hh" #include "globals.hh" -#include "G4UImessenger.hh" +#include "G4VPVParameterisation.hh" +#include "G4VSolid.hh" +#include "G4Material.hh" +#include "G4VisAttributes.hh" -class ExN03DetectorConstruction; -class G4UIdirectory; -class G4UIcmdWithAString; -class G4UIcmdWithAnInteger; -class G4UIcmdWithADoubleAndUnit; -class G4UIcmdWithoutParameter; +#include -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +class G4VPhysicalVolume; -class ExN03DetectorMessenger: public G4UImessenger +// ********************************************************************* +// This class defines the phantom geometry by using G4PVParameterisation +// class. +// -- ComputeSolid: return the G4Tet* for each element +// -- ComputeMaterial: return the G4Material* corresponding to each organ, +// and set the colours for visualization purposes +// ********************************************************************* + +class TETParameterisation : public G4VPVParameterisation { public: - ExN03DetectorMessenger(ExN03DetectorConstruction* ); - ~ExN03DetectorMessenger(); + explicit TETParameterisation(TETModelImport* tetData); + virtual ~TETParameterisation() = default; - void SetNewValue(G4UIcommand*, G4String); + virtual G4VSolid* ComputeSolid( + const G4int copyNo, G4VPhysicalVolume* ) override; + virtual void ComputeTransformation( + const G4int,G4VPhysicalVolume*) const override; + + virtual G4Material* ComputeMaterial(const G4int copyNo, + G4VPhysicalVolume* phy, + const G4VTouchable*) override; + private: - ExN03DetectorConstruction* ExN03Detector; - - G4UIdirectory* N03Dir; - G4UIdirectory* detDir; - G4UIcmdWithAString* AbsMaterCmd; - G4UIcmdWithAString* GapMaterCmd; - G4UIcmdWithADoubleAndUnit* AbsThickCmd; - G4UIcmdWithADoubleAndUnit* GapThickCmd; - G4UIcmdWithADoubleAndUnit* SizeYZCmd; - G4UIcmdWithAnInteger* NbLayersCmd; - G4UIcmdWithADoubleAndUnit* MagFieldCmd; - G4UIcmdWithoutParameter* UpdateCmd; + TETModelImport* fTetData; + std::map fVisAttMap; + G4bool fIsforVis; }; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - #endif - diff --git a/environments/g4py/tests/g4pytest/ParticleGun/ParticleGunAction.hh b/examples/advanced/ICRP145_HumanPhantoms/include/TETPrimaryGeneratorAction.hh similarity index 63% rename from environments/g4py/tests/g4pytest/ParticleGun/ParticleGunAction.hh rename to examples/advanced/ICRP145_HumanPhantoms/include/TETPrimaryGeneratorAction.hh index 2b78f2d401..33c38f0faf 100644 --- a/environments/g4py/tests/g4pytest/ParticleGun/ParticleGunAction.hh +++ b/examples/advanced/ICRP145_HumanPhantoms/include/TETPrimaryGeneratorAction.hh @@ -23,41 +23,39 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// ParticleGunAction.hh +// TETPrimaryGeneratorAction.hh +// +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli // -// 2005 Q -// ==================================================================== -#ifndef PARTICLE_GUN_ACTION_H -#define PARTICLE_GUN_ACTION_H +#ifndef TETPrimaryGeneratorAction_h +#define TETPrimaryGeneratorAction_h 1 #include "G4VUserPrimaryGeneratorAction.hh" +#include "globals.hh" +#include "G4Event.hh" +#include "G4GeneralParticleSource.hh" +#include "G4SystemOfUnits.hh" -class G4ParticleGun; +// ********************************************************************* +// This is UserPrimaryGeneratorAction, and the source was defined by +// G4GeneralParticleSource class. +// -- GeneratePrimaries: Generate primaries by G4GeneralParticleSource +// class. +// ********************************************************************* -// ==================================================================== -// -// class definition -// -// ==================================================================== -class ParticleGunAction : public G4VUserPrimaryGeneratorAction { -private: - // use G4 particle gun - G4ParticleGun* particleGun; +class TETPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ +public: + explicit TETPrimaryGeneratorAction(); + virtual ~TETPrimaryGeneratorAction(); public: - ParticleGunAction(); - ~ParticleGunAction(); + virtual void GeneratePrimaries(G4Event* anEvent) override; - G4ParticleGun* GetParticleGun() const; - - virtual void GeneratePrimaries(G4Event* anEvent); +private: + G4GeneralParticleSource* fGeneralParticleSource; }; - -// ==================================================================== -// inline functions -// ==================================================================== -inline G4ParticleGun* ParticleGunAction::GetParticleGun() const -{ return particleGun; } - #endif + diff --git a/examples/advanced/ICRP145_HumanPhantoms/include/TETRun.hh b/examples/advanced/ICRP145_HumanPhantoms/include/TETRun.hh new file mode 100644 index 0000000000..380a8135f8 --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/include/TETRun.hh @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// TETRun.hh +// +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli +// + +#ifndef TETRun_h +#define TETRun_h 1 + +#include "G4Run.hh" +#include "G4Event.hh" +#include "G4THitsMap.hh" +#include "G4SDManager.hh" + +typedef std::map> EDEPMAP; + +// ********************************************************************* +// This is G4Run class that sums up energy deposition from each event. +// The sum of the square of energy deposition was also calculated to +// produce the relative error of the dose. +// -- RecordEvent: Sum up the energy deposition and the square of it. +// The sums for each organ were saved as the form of +// std::map. +// -- Merge: Merge the data calculated in each thread. +// ********************************************************************* + +class TETRun : public G4Run +{ +public: + explicit TETRun(); + virtual ~TETRun(); + + virtual void RecordEvent(const G4Event*); + void ConstructMFD(const G4String& mfdName); + virtual void Merge(const G4Run*); + + EDEPMAP* GetEdepMap() {return &fEdepMap;}; + +private: + EDEPMAP fEdepMap; +}; +#endif diff --git a/environments/g4py/tests/g4pytest/ezgeom/G4EzWorld.hh b/examples/advanced/ICRP145_HumanPhantoms/include/TETRunAction.hh similarity index 53% rename from environments/g4py/tests/g4pytest/ezgeom/G4EzWorld.hh rename to examples/advanced/ICRP145_HumanPhantoms/include/TETRunAction.hh index 79991b2365..ec3bc42ced 100644 --- a/environments/g4py/tests/g4pytest/ezgeom/G4EzWorld.hh +++ b/examples/advanced/ICRP145_HumanPhantoms/include/TETRunAction.hh @@ -23,53 +23,63 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// G4EzWorld.hh +// TETRunAction.hh // -// Utility class for supporting creating user geometry +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli // -// management of a world volume -// -// 2005 Q -// ==================================================================== -#ifndef G4_EZ_WORLD_H -#define G4_EZ_WORLD_H -#include "globals.hh" +#ifndef TETRunAction_h +#define TETRunAction_h 1 + +#include +#include +#include + +#include "G4RunManager.hh" +#include "G4UnitsTable.hh" +#include "G4UserRunAction.hh" #include "G4SystemOfUnits.hh" -// ==================================================================== -// -// class definition -// -// ==================================================================== -class G4Material; -class G4VPhysicalVolume; +#include "TETRun.hh" +#include "TETPrimaryGeneratorAction.hh" +#include "TETModelImport.hh" -class G4EzWorld { -protected: - // world volume is automatically presented. - static G4VPhysicalVolume* world; - static G4VPhysicalVolume* CreateWorld(G4double dx=1.*m, - G4double dy=1.*m, - G4double dz=1.*m); +// ********************************************************************* +// The main function of this UserRunAction class is to produce the result +// data and print them. +// -- GenerateRun: Generate TETRun class which will calculate the sum of +// energy deposition. +// -- BeginOfRunAction: Set the RunManager to print the progress at the +// interval of 10%. +// -- EndOfRunAction: Print the run result by G4cout and std::ofstream. +// └-- PrintResult: Method to print the result. +// ********************************************************************* + +class TETRunAction : public G4UserRunAction +{ public: - G4EzWorld(); - ~G4EzWorld(); + explicit TETRunAction(TETModelImport* tetData, G4String output); + virtual ~TETRunAction() = default; + +public: + virtual G4Run* GenerateRun() override; + virtual void BeginOfRunAction(const G4Run*) override; + virtual void EndOfRunAction(const G4Run*) override; + + void PrintResult(std::ostream &out); - static G4VPhysicalVolume* GetWorldVolume(); - - static void Reset(G4double dx, G4double dy, G4double dz); - static void Resize(G4double dx, G4double dy, G4double dz); - static void SetMaterial(G4Material* amaterial); - static void SetVisibility(G4bool qvis); - +private: + TETModelImport* fTetData; + TETRun* fRun; + G4int fNumOfEvent; + G4int fRunID; + G4String fOutputFile; }; - -// ==================================================================== -// inline functions -// ==================================================================== - -inline G4VPhysicalVolume* G4EzWorld::GetWorldVolume() { return world; } - #endif + + + + + diff --git a/examples/advanced/ICRP145_HumanPhantoms/include/TETSteppingAction.hh b/examples/advanced/ICRP145_HumanPhantoms/include/TETSteppingAction.hh new file mode 100644 index 0000000000..07b1001932 --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/include/TETSteppingAction.hh @@ -0,0 +1,67 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// TETSteppingAction.hh +// +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli +// + +#ifndef TETSteppingAction_h +#define TETSteppingAction_h 1 + +#include "G4UserSteppingAction.hh" +#include "globals.hh" +#include "G4ThreeVector.hh" +#include "G4Step.hh" +#include "G4RunManager.hh" +#include "G4UnitsTable.hh" + +class G4LogicalVolume; + +// ********************************************************************* +// With very low probability, because of the internal bug of G4TET, the +// particles can be stuck in the vertices of tetrahedrons. This +// UserSteppingAction class was written to slightly move these stuck +// particles. +// -- UserSteppingAction: Slightly move the stuck particles. +// ********************************************************************* + +class TETSteppingAction : public G4UserSteppingAction +{ + public: + explicit TETSteppingAction(); + virtual ~TETSteppingAction() = default; + + virtual void UserSteppingAction(const G4Step*) override; + + private: + G4double fKCarTolerance; + G4int fStepCounter; + G4bool fCheckFlag; +}; + +#endif diff --git a/examples/advanced/ICRP145_HumanPhantoms/init_vis.mac b/examples/advanced/ICRP145_HumanPhantoms/init_vis.mac new file mode 100644 index 0000000000..57f14ce184 --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/init_vis.mac @@ -0,0 +1,19 @@ +# Macro file for the initialisation +# in interactive session + +# Set some default verbose +/control/verbose 2 +/control/saveHistory +/run/verbose 0 + +# Change the default number of threads (in multi-threaded mode) +#/run/numberOfThreads 1 + +# Initialize kernel +/run/initialize + +# Source setting +/control/execute source.mac + +# Visualization setting +/control/execute vis.mac diff --git a/examples/advanced/ICRP145_HumanPhantoms/source.mac b/examples/advanced/ICRP145_HumanPhantoms/source.mac new file mode 100644 index 0000000000..e9b6eceb0e --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/source.mac @@ -0,0 +1,8 @@ +# GeneralParticleSource : +# isotropic 1 MeV-gamma point source at (0, -1 m, 0) +/gps/ang/type iso +/gps/energy 1 MeV +/gps/particle gamma +/gps/pos/type Point +/gps/pos/centre 0 -1. 0 m + diff --git a/environments/g4py/source/graphics_reps/pymodG4graphics_reps.cc b/examples/advanced/ICRP145_HumanPhantoms/src/TETActionInitialization.cc similarity index 70% rename from environments/g4py/source/graphics_reps/pymodG4graphics_reps.cc rename to examples/advanced/ICRP145_HumanPhantoms/src/TETActionInitialization.cc index 64a333f811..bc960a8101 100644 --- a/environments/g4py/source/graphics_reps/pymodG4graphics_reps.cc +++ b/examples/advanced/ICRP145_HumanPhantoms/src/TETActionInitialization.cc @@ -23,25 +23,29 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// pymodG4graphics_reps.cc [Geant4Py module] +// TETActionInitialization.cc +// +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli // -// 2005 Q -// ==================================================================== -#include -using namespace boost::python; +#include "TETActionInitialization.hh" -// ==================================================================== -// module definition -// ==================================================================== +TETActionInitialization::TETActionInitialization(TETModelImport* _tetData, G4String _output) + : G4VUserActionInitialization(), fTetData(_tetData), fOutput(_output) +{} -void export_G4VisAttributes(); -void export_G4Colour(); - -BOOST_PYTHON_MODULE(G4graphics_reps) +void TETActionInitialization::BuildForMaster() const { - export_G4VisAttributes(); - export_G4Colour(); + SetUserAction(new TETRunAction(fTetData, fOutput)); } +void TETActionInitialization::Build() const +{ + // initialise UserAction classes + SetUserAction(new TETPrimaryGeneratorAction()); + SetUserAction(new TETRunAction(fTetData, fOutput)); + SetUserAction(new TETSteppingAction()); +} + diff --git a/examples/advanced/ICRP145_HumanPhantoms/src/TETDetectorConstruction.cc b/examples/advanced/ICRP145_HumanPhantoms/src/TETDetectorConstruction.cc new file mode 100644 index 0000000000..3113b684b7 --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/src/TETDetectorConstruction.cc @@ -0,0 +1,134 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli +// + +#include "TETDetectorConstruction.hh" + +#include "G4VisAttributes.hh" + +TETDetectorConstruction::TETDetectorConstruction(TETModelImport* _tetData) +:fWorldPhysical(nullptr), fContainer_logic(nullptr), fTetData(_tetData), fTetLogic(nullptr) +{ + // initialisation of the variables for phantom information + fPhantomSize = fTetData -> GetPhantomSize(); + fPhantomBoxMin = fTetData -> GetPhantomBoxMin(); + fPhantomBoxMax = fTetData -> GetPhantomBoxMax(); + fNOfTetrahedrons = fTetData -> GetNumTetrahedron(); +} + +TETDetectorConstruction::~TETDetectorConstruction() +{ + delete fTetData; +} + +G4VPhysicalVolume* TETDetectorConstruction::Construct() +{ + SetupWorldGeometry(); + ConstructPhantom(); + PrintPhantomInformation(); + return fWorldPhysical; +} + +void TETDetectorConstruction::SetupWorldGeometry() +{ + // Define the world box (size: 10*10*10 m3) + // + G4double worldXYZ = 10. * m; + G4Material* vacuum = G4NistManager::Instance()->FindOrBuildMaterial("G4_Galactic"); + + G4VSolid* worldSolid = new G4Box("worldSolid", worldXYZ/2, worldXYZ/2, worldXYZ/2); + + auto* worldLogical = new G4LogicalVolume(worldSolid,vacuum,"worldLogical"); + + fWorldPhysical = new G4PVPlacement(nullptr,G4ThreeVector(), worldLogical,"worldPhysical", nullptr, false,0,false); + + // Define the phantom container (10-cm margins from the bounding box of phantom) + // + auto* containerSolid = new G4Box("phantomBox", fPhantomSize.x()/2 + 10.*cm, + fPhantomSize.y()/2 + 10.*cm, + fPhantomSize.z()/2 + 10.*cm); + + fContainer_logic = new G4LogicalVolume(containerSolid, vacuum, "phantomLogical"); + + new G4PVPlacement(nullptr, G4ThreeVector(), fContainer_logic, "PhantomPhysical", + worldLogical, false, 0); + + fContainer_logic->SetOptimisation(TRUE); + fContainer_logic->SetSmartless( 0.5 ); // for optimization (default=2) +} + +void TETDetectorConstruction::ConstructPhantom() +{ + // Define the tetrahedral mesh phantom as a parameterised geometry + // + // solid and logical volume to be used for parameterised geometry + G4VSolid* tetraSolid = new G4Tet("TetSolid", G4ThreeVector(), + G4ThreeVector(1.*cm,0,0), + G4ThreeVector(0,1.*cm,0), + G4ThreeVector(0,0,1.*cm)); + + G4Material* vacuum = G4NistManager::Instance()->FindOrBuildMaterial("G4_Galactic"); + fTetLogic = new G4LogicalVolume(tetraSolid, vacuum, "TetLogic"); + + // physical volume (phantom) constructed as parameterised geometry + new G4PVParameterised("wholePhantom",fTetLogic,fContainer_logic, + kUndefined, fTetData->GetNumTetrahedron(), + new TETParameterisation(fTetData)); +} + +void TETDetectorConstruction::ConstructSDandField() +{ + // Define detector (Phantom SD) and scorer (eDep) + // + G4SDManager* pSDman = G4SDManager::GetSDMpointer(); + G4String phantomSDname = "PhantomSD"; + + // MultiFunctional detector + auto* MFDet = new G4MultiFunctionalDetector(phantomSDname); + pSDman->AddNewDetector( MFDet ); + + // scorer for energy depositon in each organ + MFDet->RegisterPrimitive(new TETPSEnergyDeposit("eDep", fTetData)); + + // attach the detector to logical volume for parameterised geometry (phantom geometry) + SetSensitiveDetector(fTetLogic, MFDet); +} + +void TETDetectorConstruction::PrintPhantomInformation() +{ + // print brief information on the imported phantom + G4cout<< G4endl; + G4cout.precision(3); + G4cout<<" Phantom name "<GetPhantomName() << " TET phantom"<> numVertex >> tempInt >> tempInt >> tempInt; + + for(G4int i=0; i> tempInt >> xPos >> yPos >> zPos; + + // set the unit + xPos*=cm; + yPos*=cm; + zPos*=cm; + + // save the node data as the form of std::vector + fVertexVector.push_back(G4ThreeVector(xPos, yPos, zPos)); + + // to get the information of the bounding box of phantom + if (xPos < xMin) xMin = xPos; + if (xPos > xMax) xMax = xPos; + if (yPos < yMin) yMin = yPos; + if (yPos > yMax) yMax = yPos; + if (zPos < zMin) zMin = zPos; + if (zPos > zMax) zMax = zPos; + } + + // set the variables for the bounding box and phantom size + fBoundingBox_Min = G4ThreeVector(xMin,yMin,zMin); + fBoundingBox_Max = G4ThreeVector(xMax,yMax,zMax); + fPhantomSize = G4ThreeVector(xMax-xMin,yMax-yMin,zMax-zMin); + + ifpNode.close(); + + // Read *.ele file + // + std::ifstream ifpEle; + + ifpEle.open((fPhantomDataPath + "/" + eleFile).c_str()); + if(!ifpEle.is_open()) + { + // exception for the case when there is no *.ele file + G4Exception("TETModelImport::DataRead","",FatalErrorInArgument, + G4String(" There is no " + eleFile ).c_str()); + } + G4cout << " Opening TETGEN elements (tetrahedron with node No.) file '" + << eleFile << "'" <> numEle >> tempInt >> tempInt; + + for(G4int i=0; i> tempInt; + auto* ele = new G4int[4]; + for(G4int j=0;j<4;j++) + { + ifpEle >> tempInt; + ele[j]=tempInt; + } + fEleVector.push_back(ele); + ifpEle >> tempInt; + fMaterialVector.push_back(tempInt); + + // save the element (tetrahedron) data as the form of std::vector + fTetVector.push_back(new G4Tet("Tet_Solid", + fVertexVector[ele[0]], + fVertexVector[ele[1]], + fVertexVector[ele[2]], + fVertexVector[ele[3]])); + + // calculate the total volume and the number of tetrahedrons for each organ + //std::map::iterator FindIter = fVolumeMap.find(fMaterialVector[i]); + auto FindIter = fVolumeMap.find(fMaterialVector[i]); + + if(FindIter!=fVolumeMap.end()) + { + FindIter->second += fTetVector[i]->GetCubicVolume(); + fNumTetMap[fMaterialVector[i]]++; + } + else + { + fVolumeMap[fMaterialVector[i]] = fTetVector[i]->GetCubicVolume(); + fNumTetMap[fMaterialVector[i]] = 1; + } + } + ifpEle.close(); +} + +void TETModelImport::MaterialRead(G4String materialFile) +{ + // Read material file (*.material) + // + std::ifstream ifpMat; + + ifpMat.open((fPhantomDataPath + "/" + materialFile).c_str()); + if(!ifpMat.is_open()) + { + // exception for the case when there is no *.material file + G4Exception("TETModelImport::DataRead","",FatalErrorInArgument, + G4String(" There is no " + materialFile ).c_str()); + } + + G4cout << " Opening material file '" << materialFile << "'" <> read_data; //ex) 'C' RBM + ifpMat >> MaterialName; //ex) C 'RBM' + ifpMat >> read_data; + density = std::atof(read_data); //ex) 1.30 + ifpMat >> read_data; //ex) g/cm3 + ifpMat >> read_data; + token = std::strtok(read_data,"m"); + G4int matID = std::atoi(token); //ex) m'10' + fMaterialIndex.push_back(matID); + fOrganNameMap[matID]= MaterialName; + fDensityMap[matID] = density*g/cm3; + + for(i=0 ; ; ++i) + { + ifpMat >> read_data; + if(std::strcmp(read_data, "C")==0 || ifpMat.eof()) break; + + zaid = (G4int)(std::atoi(read_data)/1000); + ifpMat >> read_data; + fraction = -1.0 * std::atof(read_data); + fMaterialIndexMap[matID].push_back(std::make_pair(G4int(zaid), fraction)); + } + } + ifpMat.close(); + + // Construct materials for each organ + // + G4NistManager* nistManager = G4NistManager::Instance(); + + for(i=0;i<(G4int)fMaterialIndex.size();++i) + { + G4int idx = fMaterialIndex[i]; + auto* mat = new G4Material(fOrganNameMap[idx], fDensityMap[idx], + G4int(fMaterialIndexMap[idx].size()), + kStateSolid, NTP_Temperature, STP_Pressure); + for(G4int j=0;jAddElement(nistManager->FindOrBuildElement(fMaterialIndexMap[idx][j].first), + fMaterialIndexMap[idx][j].second); + } + fMaterialMap[idx]=mat; + fMassMap[idx]=fDensityMap[idx]*fVolumeMap[idx]; + } +} + +void TETModelImport::ColourRead() +{ + // Read colour data file (colour.dat) + // + std::ifstream ifpColour; + + ifpColour.open((fPhantomDataPath + "/" + "colour.dat").c_str()); + if(!ifpColour.is_open()) + { + // exception for the case when there is no colour.dat file + G4Exception("TETModelImport::DataRead","",FatalErrorInArgument, + G4String("Colour data file was not found ").c_str()); + } + + G4cout << " Opening colour data file 'colour.dat'" <> organID >> red >> green >> blue >> alpha ) + { + fColourMap[organID] = G4Colour(red, green, blue, alpha); + } + + ifpColour.close(); +} + +void TETModelImport::PrintMaterialInfomation() +{ + // Print the overall information for each organ + // + G4cout << G4endl + << std::setw(9) << "Organ ID" + << std::setw(11) << "# of Tet" + << std::setw(11) << "vol [cm3]" + << std::setw(11) << "d [g/cm3]" + << std::setw(11) << "mass [g]" + << "\t" << "organ/tissue"<< G4endl ; + + G4cout << "--------------------------------------------------------------------------------"<::const_iterator matIter; + G4cout<first; + G4cout << std::setw(9) << idx // organ ID + << std::setw(11) << fNumTetMap[idx] // # of tetrahedrons + << std::setw(11) << fVolumeMap[idx]/cm3 // organ volume + << std::setw(11) << fMaterialMap[idx] ->GetDensity()/(g/cm3) // organ density + << std::setw(11) << fMassMap[idx]/g // organ mass + << "\t"<GetName() << G4endl; // organ name + } +} diff --git a/environments/g4py/source/gdml/pymodG4g4gdml.cc b/examples/advanced/ICRP145_HumanPhantoms/src/TETPSEnergyDeposit.cc similarity index 75% rename from environments/g4py/source/gdml/pymodG4g4gdml.cc rename to examples/advanced/ICRP145_HumanPhantoms/src/TETPSEnergyDeposit.cc index 9168072a5d..fafddda015 100644 --- a/environments/g4py/source/gdml/pymodG4g4gdml.cc +++ b/examples/advanced/ICRP145_HumanPhantoms/src/TETPSEnergyDeposit.cc @@ -23,23 +23,22 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// pymodG4g4gdml.cc [Geant4Py module] +// TETPSEnergyDeposit.cc +// +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli // -// 2007 Q -// ==================================================================== -#include -using namespace boost::python; +#include "TETPSEnergyDeposit.hh" -// ==================================================================== -// module definition -// ==================================================================== +TETPSEnergyDeposit::TETPSEnergyDeposit(G4String name, TETModelImport* _tetData) + :G4PSEnergyDeposit(name), fTetData(_tetData) +{} -void export_G4GDMLParser(); - -BOOST_PYTHON_MODULE(G4gdml) +G4int TETPSEnergyDeposit::GetIndex(G4Step* aStep) { - export_G4GDMLParser(); + // return the organ ID (= material index) + G4int copyNo = aStep->GetPreStepPoint()->GetTouchable()->GetCopyNumber(); + return fTetData->GetMaterialIndex(copyNo); } - diff --git a/environments/g4py/tests/g4pytest/EMSTDpl/pyEMSTDpl.cc b/examples/advanced/ICRP145_HumanPhantoms/src/TETParameterisation.cc similarity index 52% rename from environments/g4py/tests/g4pytest/EMSTDpl/pyEMSTDpl.cc rename to examples/advanced/ICRP145_HumanPhantoms/src/TETParameterisation.cc index c21c4ef42d..ea211cdf34 100644 --- a/environments/g4py/tests/g4pytest/EMSTDpl/pyEMSTDpl.cc +++ b/examples/advanced/ICRP145_HumanPhantoms/src/TETParameterisation.cc @@ -23,53 +23,54 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// pyEMSTDpl.cc +// TETParameterisation.cc +// +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli // -// [Qgeom] -// a site-module of Geant4Py -// -// Electron/Gamma EM-standard physics list -// -// 2005 Q -// ==================================================================== -#include +#include "TETParameterisation.hh" +#include "G4LogicalVolume.hh" +#include "G4VisExecutive.hh" #include "G4RunManager.hh" -#include "PhysicsListEMstd.hh" -using namespace boost::python; - -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyEMSTDpl { - -PhysicsListEMstd* Construct() +TETParameterisation::TETParameterisation(TETModelImport* _tetData) +: G4VPVParameterisation(), fTetData(_tetData) { - PhysicsListEMstd* pl= new PhysicsListEMstd; + // initialise visAttMap which contains G4VisAttributes* for each organ + auto colourMap = fTetData->GetColourMap(); + for(auto colour : colourMap){ + fVisAttMap[colour.first] = new G4VisAttributes(colour.second); + } - G4RunManager* runMgr= G4RunManager::GetRunManager(); - runMgr-> SetUserInitialization(pl); - - return pl; + if(colourMap.size()) fIsforVis = true; + else fIsforVis = false; } +G4VSolid* TETParameterisation::ComputeSolid( + const G4int copyNo, G4VPhysicalVolume* ) +{ + return fTetData->GetTetrahedron(copyNo); +} + +void TETParameterisation::ComputeTransformation( + const G4int,G4VPhysicalVolume*) const +{} + +G4Material* TETParameterisation::ComputeMaterial(const G4int copyNo, + G4VPhysicalVolume* phy, + const G4VTouchable* ) +{ + // set the colour for each organ if visualization is required + if(fIsforVis){ + G4int idx = fTetData->GetMaterialIndex(copyNo); + phy->GetLogicalVolume()->SetVisAttributes(fVisAttMap[idx]); + phy->GetLogicalVolume()->SetMaterial(fTetData->GetMaterial(fTetData->GetMaterialIndex(copyNo))); + } + +// return the material data for each material index +return fTetData->GetMaterial(fTetData->GetMaterialIndex(copyNo)); + } -using namespace pyEMSTDpl; -// ==================================================================== -// Expose to Python -// ==================================================================== - -BOOST_PYTHON_MODULE(_EMSTDpl) { - - class_ > - ("PhysicsListEMstd", "Electron/Gamma EM-standard physics list") - ; - - // --- - def("Construct", Construct, - return_value_policy()); - -} diff --git a/environments/g4py/source/interface/pymodG4interface.cc b/examples/advanced/ICRP145_HumanPhantoms/src/TETPrimaryGeneratorAction.cc similarity index 73% rename from environments/g4py/source/interface/pymodG4interface.cc rename to examples/advanced/ICRP145_HumanPhantoms/src/TETPrimaryGeneratorAction.cc index d82bc4e16f..2cc77c81bf 100644 --- a/environments/g4py/source/interface/pymodG4interface.cc +++ b/examples/advanced/ICRP145_HumanPhantoms/src/TETPrimaryGeneratorAction.cc @@ -23,23 +23,28 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// pymodG4interface.cc [Geant4Py module] +// TETPrimaryGeneratorAction.cc +// +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli // -// 2005 Q -// ==================================================================== -#include -using namespace boost::python; +#include "TETPrimaryGeneratorAction.hh" -// ==================================================================== -// module definition -// ==================================================================== - -void export_G4UIterminal(); - -BOOST_PYTHON_MODULE(G4interfaces) +TETPrimaryGeneratorAction::TETPrimaryGeneratorAction() +:G4VUserPrimaryGeneratorAction(), fGeneralParticleSource(nullptr) { - export_G4UIterminal(); + fGeneralParticleSource = new G4GeneralParticleSource(); +} + +TETPrimaryGeneratorAction::~TETPrimaryGeneratorAction() +{ + delete fGeneralParticleSource; +} + +void TETPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + fGeneralParticleSource->GeneratePrimaryVertex(anEvent); } diff --git a/environments/g4py/tests/gtest01/module/QEventAction.cc b/examples/advanced/ICRP145_HumanPhantoms/src/TETRun.cc similarity index 59% rename from environments/g4py/tests/gtest01/module/QEventAction.cc rename to examples/advanced/ICRP145_HumanPhantoms/src/TETRun.cc index b26aa86379..6866b94dd9 100644 --- a/environments/g4py/tests/gtest01/module/QEventAction.cc +++ b/examples/advanced/ICRP145_HumanPhantoms/src/TETRun.cc @@ -23,46 +23,58 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// QEventAction.cc +// TETRun.cc // -// 2005 Q -// ==================================================================== -#include "QEventAction.hh" -#include "globals.hh" - -// ==================================================================== +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli // -// class description + +#include "TETRun.hh" + +TETRun::TETRun() +:G4Run() +{} + +TETRun::~TETRun() +{ + fEdepMap.clear(); +} + +void TETRun::RecordEvent(const G4Event* event) +{ + auto fCollID + = G4SDManager::GetSDMpointer()->GetCollectionID("PhantomSD/eDep"); + +// Hits collections // -// ==================================================================== +G4HCofThisEvent* HCE = event->GetHCofThisEvent(); +if(!HCE) return; -//////////////////////////// -QEventAction::QEventAction() -//////////////////////////// +//G4THitsMap* evtMap = +// static_cast*>(HCE->GetHC(fCollID)); +auto* evtMap = static_cast*>(HCE->GetHC(fCollID)); +// sum up the energy deposition and the square of it +for (auto itr : *evtMap->GetMap()) { + fEdepMap[itr.first].first += *itr.second; //sum + fEdepMap[itr.first].second += (*itr.second) * (*itr.second); //sum square + } +} + +void TETRun::Merge(const G4Run* run) { + // merge the data from each thread + EDEPMAP localMap = static_cast(run)->fEdepMap; + + for(auto itr : localMap){ + fEdepMap[itr.first].first += itr.second.first; + fEdepMap[itr.first].second += itr.second.second; + } + +G4Run::Merge(run); } -///////////////////////////// -QEventAction::~QEventAction() -///////////////////////////// -{ -} -//////////////////////////////////////////////////////////// -void QEventAction::BeginOfEventAction(const G4Event* /*aevent*/) -//////////////////////////////////////////////////////////// -{ - G4cout << "QEventAction::BofEA is called." << G4endl; -} - - -////////////////////////////////////////////////////////// -void QEventAction::EndOfEventAction(const G4Event* /*aevent*/) -////////////////////////////////////////////////////////// -{ - G4cout << "QEventAction::EofEA is called." << G4endl; -} diff --git a/examples/advanced/ICRP145_HumanPhantoms/src/TETRunAction.cc b/examples/advanced/ICRP145_HumanPhantoms/src/TETRunAction.cc new file mode 100644 index 0000000000..7007dc4d3e --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/src/TETRunAction.cc @@ -0,0 +1,103 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// TETRunAction.cc +// +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli +// + +#include "TETRunAction.hh" + +TETRunAction::TETRunAction(TETModelImport* _tetData, G4String _output) +:fTetData(_tetData), fRun(nullptr), fNumOfEvent(0), fRunID(0), fOutputFile(_output) +{} + +G4Run* TETRunAction::GenerateRun() +{ + // generate run + fRun = new TETRun(); + return fRun; +} + +void TETRunAction::BeginOfRunAction(const G4Run* aRun) +{ + // print the progress at the interval of 10% + fNumOfEvent=aRun->GetNumberOfEventToBeProcessed(); + G4RunManager::GetRunManager()->SetPrintProgress(int(fNumOfEvent*0.1)); +} + +void TETRunAction::EndOfRunAction(const G4Run* aRun) +{ + // print the result only in the Master + if(!isMaster) return; + + // get the run ID + fRunID = aRun->GetRunID(); + + // Print the run result by G4cout and std::ofstream + // + // print by G4cout + PrintResult(G4cout); + + // print by std::ofstream + std::ofstream ofs(fOutputFile.c_str()); + PrintResult(ofs); + ofs.close(); +} + +void TETRunAction::PrintResult(std::ostream &out) +{ + // Print run result + // + using namespace std; + EDEPMAP edepMap = *fRun->GetEdepMap(); + + out << G4endl + << "=====================================================================" << G4endl + << " Run #" << fRunID << " / Number of event processed : "<< fNumOfEvent << G4endl + << "=====================================================================" << G4endl + << "organ ID| " + << setw(19) << "Organ Mass (g)" + << setw(19) << "Dose (Gy/source)" + << setw(19) << "Relative Error" << G4endl; + + out.precision(3); + auto massMap = fTetData->GetMassMap(); + for(auto itr : massMap){ + G4double meanDose = edepMap[itr.first].first / itr.second / fNumOfEvent; + G4double squareDose = edepMap[itr.first].second / (itr.second*itr.second); + G4double variance = ((squareDose/fNumOfEvent) - (meanDose*meanDose))/fNumOfEvent; + G4double relativeE(1); + if(meanDose > 0) relativeE = sqrt(variance)/meanDose; + + out << setw(8) << itr.first << "| " + << setw(19) << fixed << itr.second/g; + out << setw(19) << scientific << meanDose/(joule/kg); + out << setw(19) << fixed << relativeE << G4endl; + } + out << "=====================================================================" << G4endl << G4endl; +} diff --git a/environments/g4py/source/interface/pyG4UIterminal.cc b/examples/advanced/ICRP145_HumanPhantoms/src/TETSteppingAction.cc similarity index 57% rename from environments/g4py/source/interface/pyG4UIterminal.cc rename to examples/advanced/ICRP145_HumanPhantoms/src/TETSteppingAction.cc index b1c0bc728c..eed935e935 100644 --- a/environments/g4py/source/interface/pyG4UIterminal.cc +++ b/examples/advanced/ICRP145_HumanPhantoms/src/TETSteppingAction.cc @@ -23,52 +23,45 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// pyG4UIterminal.cc +// TETSteppingAction.cc +// +// Author: Haegin Han +// Reference: ICRP Publication 145. Ann. ICRP 49(3), 2020. +// Geant4 Contributors: J. Allison and S. Guatelli // -// 2005 Q -// ==================================================================== -#include -#include "G4UIterminal.hh" -#include "G4UItcsh.hh" -using namespace boost::python; +#include "TETSteppingAction.hh" -static G4UIterminal* session= 0; +TETSteppingAction::TETSteppingAction() +: G4UserSteppingAction(), fKCarTolerance(1.0000000000000002e-07), fStepCounter(0), + fCheckFlag(0) +{} -// ==================================================================== -// wrappers -// ==================================================================== -namespace pyG4UIterminal { - -///////////////////// -void StartUISession() -///////////////////// +void TETSteppingAction::UserSteppingAction(const G4Step* step) { - if (session == 0 ) { - G4UItcsh* tcsh= new - G4UItcsh("g4py(%s)[%/]:"); - -#if G4VERSION_NUMBER >= 900 - session= new G4UIterminal(tcsh, false); -#else - session= new G4UIterminal(tcsh); -#endif - tcsh-> SetLsColor(BLUE,RED); + // Slightly move the particle when the step length of five continuous steps is + // shorter than the tolerance (0.1 nm) + // + G4Track* theTrack = step->GetTrack(); + G4bool CheckingLength = (step->GetStepLength() < fKCarTolerance); + if(CheckingLength) + { + ++fStepCounter; + if( fCheckFlag && fStepCounter>=5 ) + { + // kill the track if the particle is stuck even after the slight move + // (this hardly occurs) + theTrack->SetTrackStatus(fStopAndKill); + fStepCounter=0; + fCheckFlag=0; +} + else if(fStepCounter>=5 ) + { + // if a particle is at the same position (step length < 0.1 nm) for five consecutive steps, + // slightly move (0.1 nm) the stuck particle in the direction of momentum + theTrack->SetPosition(theTrack->GetPosition() + theTrack->GetMomentumDirection()*fKCarTolerance); + fCheckFlag=1; } - - session-> SessionStart(); + } +else fStepCounter=0; } - -} - -using namespace pyG4UIterminal; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4UIterminal() -{ - def("StartUISession", StartUISession); -} - diff --git a/examples/advanced/ICRP145_HumanPhantoms/vis.mac b/examples/advanced/ICRP145_HumanPhantoms/vis.mac new file mode 100644 index 0000000000..e78de92134 --- /dev/null +++ b/examples/advanced/ICRP145_HumanPhantoms/vis.mac @@ -0,0 +1,106 @@ +# Macro file for the visualisation setting in the initialization phase +# when running in interactive mode +# + +# Use these open statements to open selected visualization +# +# Use this open statement to create an OpenGL view: +/vis/open OGL 800x800-0+0 +# +# Use this open statement to create an OpenInventor view: +#/vis/open OI +# +# Use this open statement to create a .prim file suitable for +# viewing in DAWN: +#/vis/open DAWNFILE +# +# Use this open statement to create a .heprep file suitable for +# viewing in HepRApp: +#/vis/open HepRepFile +# +# Use this open statement to create a .wrl file suitable for +# viewing in a VRML viewer: +#/vis/open VRML2FILE +# +# Disable auto refresh and quieten vis messages whilst scene and +# trajectories are established: +/vis/viewer/set/autoRefresh false +/vis/verbose errors +# +# Draw geometry: +/vis/viewer/set/specialMeshRendering +/vis/viewer/set/specialMeshRenderingOption surfaces +/vis/drawVolume +# +# +# Specify style (surface, wireframe, auxiliary edges,...) +#/vis/viewer/set/style wireframe +/vis/viewer/set/auxiliaryEdge true +/vis/viewer/set/lineSegmentsPerCircle 100 +# +# Draw smooth trajectories at end of event, showing trajectory points +# as markers 2 pixels wide: +/vis/scene/add/trajectories smooth +/vis/modeling/trajectories/create/drawByCharge +/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true +/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2 +# (if too many tracks cause core dump => /tracking/storeTrajectory 0) +# +# Draw hits at end of event: +#/vis/scene/add/hits +# +# To draw only gammas: +#/vis/filtering/trajectories/create/particleFilter +#/vis/filtering/trajectories/particleFilter-0/add gamma +# +# To invert the above, drawing all particles except gammas, +# keep the above two lines but also add: +#/vis/filtering/trajectories/particleFilter-0/invert true +# +# Many other options are available with /vis/modeling and /vis/filtering. +# For example, to select colour by particle ID: +#/vis/modeling/trajectories/create/drawByParticleID +#/vis/modeling/trajectories/drawByParticleID-0/default/setDrawStepPts true +# To select or override default colours (note: e+ is blue by default): +#/vis/modeling/trajectories/list +#/vis/modeling/trajectories/drawByParticleID-0/set e+ yellow +# +# To superimpose all of the events from a given run: +/vis/scene/endOfEventAction accumulate +# +# Decorations +# +# Axes, scale, etc. +/vis/scene/add/scale # Simple scale line +/vis/scene/add/axes 50 0 -60 20 cm # Simple axes: x=red, y=green, z=blue. +/vis/scene/add/eventID # Drawn at end of event +/vis/scene/add/date # Date stamp +# +# Frame +/vis/set/colour red +/vis/set/lineWidth 2 +/vis/scene/add/frame # Simple frame around the view +#/vis/set/colour # Revert to default colour (white) +/vis/set/lineWidth # Revert to default line width (1.) +# +# To get nice view +# Make the "World" box invisible +/vis/geometry/set/visibility worldLogical 0 false +/vis/geometry/set/visibility phantomLogical 0 false +/vis/viewer/set/style surface +/vis/viewer/set/hiddenMarker true +/vis/viewer/set/background 1 1 1 1 +# +# Specify view angle: +/vis/viewer/set/upVector 0 0 1 +/vis/viewer/set/lightsVector -1 0 0 +/vis/viewer/zoomTo 5 +#/vis/viewer/set/viewpointVector -0.5 -1 0.3 +/vis/viewer/set/viewpointVector 0 -1 0 +/vis/viewer/set/targetPoint 0 0 0 mm +# +# Re-establish auto refreshing and verbosity: +/vis/viewer/set/autoRefresh true +/vis/verbose warnings +# + diff --git a/examples/advanced/STCyclotron/History b/examples/advanced/STCyclotron/History index 196710f421..9e4723c63c 100644 --- a/examples/advanced/STCyclotron/History +++ b/examples/advanced/STCyclotron/History @@ -4,6 +4,9 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-09-09 Susanna Guatelli (STCyclotron-V11-00-02) +- Ranecu Engine removed. Default one now used + ## 2022-06-20 Sergio Losilla (STCyclotron-V11-00-01) - Removed no-op lines, simplified calls to SetProductionCut. diff --git a/examples/advanced/STCyclotron/STCyclotron.cc b/examples/advanced/STCyclotron/STCyclotron.cc index 84f96ccfee..da5872c697 100644 --- a/examples/advanced/STCyclotron/STCyclotron.cc +++ b/examples/advanced/STCyclotron/STCyclotron.cc @@ -65,7 +65,6 @@ int main(int argc, char** argv) //Set the random number seed /* - CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); G4long seed=time(0); CLHEP::HepRandom::setTheSeed(seed); G4cout << "***********************" << G4endl; diff --git a/examples/advanced/STCyclotron/STCyclotron.out b/examples/advanced/STCyclotron/STCyclotron.out index 0f2cd79c25..406fc95e26 100644 --- a/examples/advanced/STCyclotron/STCyclotron.out +++ b/examples/advanced/STCyclotron/STCyclotron.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -46,11 +46,393 @@ Position 1 = 185.82 -- Position 2 = 186.42 ... Geometry is notified .... The new thickness of the foil is 0.32 mm. ... Geometry is notified .... -Set file name: STCyclotron + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of x bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of x (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of y bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of y (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of x bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of x (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of y bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of y (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of x bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of x (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of y bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of y (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of x bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of x (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of y bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of y (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of x bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of x (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of y bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of y (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of x bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of x (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of y bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of y (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + ... Geometry is notified .... ... Geometry is notified .... ... Geometry is notified .... -Set file name: STCyclotron + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of x bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of x (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of y bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of y (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of x bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of x (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of y bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of y (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of x bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of x (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of y bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of y (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of x bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of x (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of y bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of y (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of x bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of x (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of y bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of y (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of x bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of x (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of y bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of y (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + /run/verbose 2 /event/verbose 0 /tracking/verbose 0 @@ -141,26 +523,50 @@ Start closing geometry. G4GeometryManager::ReportVoxelStats -- Voxel Statistics Total memory consumed for geometry optimisation: 1 kByte - Total CPU time elapsed for geometry optimisation: 0 seconds + Total CPU time elapsed for geometry optimisation: 0.01 seconds Voxelisation: top CPU users: Percent Total CPU System CPU Memory Volume ------- ---------- ---------- -------- ---------- - 0.00 0.00 0.00 2k World + 100.00 0.01 0.00 2k World Voxelisation: top memory users: Percent Memory Heads Nodes Pointers Total CPU Volume ------- -------- ------ ------ -------- ---------- ---------- - 100.00 1k 5 13 86 0.00 World + 100.00 1k 5 13 86 0.01 World ### Run 0 starts. ... set ntuple merging row mode : row-wise - done ... create file : SolidTargetCyclotron.root - done ... open analysis file : SolidTargetCyclotron.root - done ... open analysis file : SolidTargetCyclotron.root - done + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : had012 + issued by : G4HadronicProcess:CheckResult() +Warning: Bad energy non-conservation detected, will re-sample the interaction + Process / Model: protonInelastic / ParticleHPInelastic + Primary: proton (2212), E= 952.47, target nucleus (78, 195) + E(initial - final) = -359393 MeV. + +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : had012 + issued by : G4HadronicProcess:CheckResult() +Warning: Bad energy non-conservation detected, will re-sample the interaction + Process / Model: protonInelastic / ParticleHPInelastic + Primary: proton (2212), E= 952.47, target nucleus (78, 195) + E(initial - final) = -360335 MeV. + +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + Run terminated. Run Summary Number of events processed : 10 - User=21.240000s Real=21.718533s Sys=0.000000s + User=25.030000s Real=25.298618s Sys=0.020000s ... write file : SolidTargetCyclotron.root - done ... close file : SolidTargetCyclotron.root - done G4 kernel has come to Quit state. @@ -176,24 +582,24 @@ G4SDManager deleted. EventManager deleted. Units table cleared. TransportationManager deleted. -Total navigation history collections cleaned: 10 +Total navigation history collections cleaned: 12 G4RNGHelper object is deleted. ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.0135 MB +Pool ID '20G4NavigationLevelRep', size : 0.0163 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.522 MB +Pool ID '17G4DynamicParticle', size : 0.396 MB Pool ID '16G4SmartVoxelNode', size : 0.00192 MB Pool ID '17G4SmartVoxelProxy', size : 0.000961 MB Pool ID '7G4Event', size : 0.000961 MB Pool ID '15G4PrimaryVertex', size : 0.000961 MB Pool ID '17G4PrimaryParticle', size : 0.258 MB -Pool ID '7G4Track', size : 1.04 MB -Pool ID '18G4TouchableHistory', size : 0.000961 MB +Pool ID '7G4Track', size : 0.792 MB +Pool ID '18G4TouchableHistory', size : 0.00192 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB Pool ID '17G4ReactionProduct', size : 0.00192 MB Pool ID '10G4Fragment', size : 0.000961 MB Number of memory pools allocated: 13 of which, static: 0 -Dynamic pools deleted: 13 / Total memory freed: 1.8 MB +Dynamic pools deleted: 13 / Total memory freed: 1.5 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/advanced/air_shower/air_shower.out b/examples/advanced/air_shower/air_shower.out index 2af18998e1..f899b6c84a 100644 --- a/examples/advanced/air_shower/air_shower.out +++ b/examples/advanced/air_shower/air_shower.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -94,6 +94,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -201,6 +203,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -228,7 +231,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -279,8 +282,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -695,8 +698,8 @@ See commands in /vis/modeling/trajectories/ for other options. ooo Run 0 starts (global). --------- Ranlux engine status --------- - Initial seed = 1656510677 - float_seed_table[] = 0.67537 0.397105 0.895521 0.443124 0.308485 0.864686 0.60293 0.830782 0.0268728 0.345021 0.858085 0.551476 0.960402 0.53388 0.865799 0.105157 0.867925 0.220778 0.235352 0.524966 0.135397 0.857166 0.832263 0.318347 + Initial seed = 1670383125 + float_seed_table[] = 0.746163 0.00748038 0.41983 0.219389 0.81318 0.764368 0.497432 0.317486 0.882405 0.753217 0.405238 0.26732 0.606928 0.709374 0.95846 0.954352 0.470991 0.422925 0.0195919 0.0804862 0.716612 0.517728 0.385332 0.689845 i_lag = 23, j_lag = 9 carry = 0, count24 = 0 luxury = 3 nskip = 199 @@ -707,7 +710,7 @@ mu- Mono Plane Run terminated. Run Summary Number of events processed : 100 - User=2.080000s Real=2.089093s Sys=0.000000s + User=2.370000s Real=2.397843s Sys=0.000000s ### Run 0 (global) ended. Graphics systems deleted. Visualization Manager deleting... @@ -740,7 +743,7 @@ Pool ID '16G4HitsCollection', size : 0.000961 MB Pool ID '7G4Track', size : 0.049 MB Pool ID '18G4TouchableHistory', size : 0.000961 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB -Pool ID '15UltraOpticalHit', size : 0.00577 MB +Pool ID '15UltraOpticalHit', size : 0.00673 MB Number of memory pools allocated: 14 of which, static: 0 Dynamic pools deleted: 14 / Total memory freed: 0.1 MB ============================================================ diff --git a/examples/advanced/amsEcal/History b/examples/advanced/amsEcal/History index 9ce9c77588..48aba3b5c4 100644 --- a/examples/advanced/amsEcal/History +++ b/examples/advanced/amsEcal/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-09-09 Susanna Guatelli (amsEcal-V11-00-02) +- Ranecu engine removed. Default engine used now + ## 2022-01-18 Jonas Hahnfeld (amsEcal-V11-00-01) - Prefer pointer to `const G4Material` if possible diff --git a/examples/advanced/amsEcal/amsEcal.cc b/examples/advanced/amsEcal/amsEcal.cc index ca9d85a7d0..4b57dd65f1 100644 --- a/examples/advanced/amsEcal/amsEcal.cc +++ b/examples/advanced/amsEcal/amsEcal.cc @@ -53,9 +53,6 @@ int main(int argc,char** argv) { G4UIExecutive* ui = nullptr; if (argc == 1) ui = new G4UIExecutive(argc,argv); - //choose the Random engine - G4Random::setTheEngine(new CLHEP::RanecuEngine); - //Use SteppingVerbose with Unit G4int precision = 4; G4SteppingVerbose::UseBestUnit(precision); diff --git a/examples/advanced/amsEcal/run1.out b/examples/advanced/amsEcal/run1.out index 4f2f681034..0ac0847b04 100644 --- a/examples/advanced/amsEcal/run1.out +++ b/examples/advanced/amsEcal/run1.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -169,10 +169,11 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics 2.10 0k 1 10 18 0.00 calorimeter ### Run 0 starts. ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 9876, 54321 ----------------------------------------- +------- MixMaxRng engine status ------- + Current state vector is: +mixmax state, file version 1.0 +N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008233404568, 2262190991329242458, 2266470399991071809, 1976726662926872232, 245458862506414172, 1955974201201518530, 2155248512522080758, 604170912935414061, 1116171330120743511, 1861018313684488333, 1296715403254578286, 1549011045957234151, 370819759640195970, 2230139271784837643} counter= 17sumtot= 1977567618660788324 +--------------------------------------- --> Event 0 starts. --> Event 1000 starts. --> Event 2000 starts. @@ -186,7 +187,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 10000 - User=6.160000s Real=6.248297s Sys=0.000000s + User=7.520000s Real=7.589100s Sys=0.000000s ------------------------------------------------------------- ---> The calorimeter is 9 Modules @@ -209,107 +210,108 @@ Run Summary total Energy (rms/mean) visible Energy (rms/mean) - layer 1: 1.5863 MeV +- 3.074 MeV (1.9e+02 %) 164.82 keV +- 1.129 MeV (6.9e+02 %) - layer 2: 1.5596 MeV +- 2.499 MeV (1.6e+02 %) 151.77 keV +- 495.4 keV (3.3e+02 %) - layer 3: 1.5195 MeV +- 2.178 MeV (1.4e+02 %) 161.87 keV +- 648.9 keV (4e+02 %) - layer 4: 1.5254 MeV +- 2.204 MeV (1.4e+02 %) 168.06 keV +- 901.7 keV (5.4e+02 %) - layer 5: 1.5383 MeV +- 2.478 MeV (1.6e+02 %) 169.56 keV +- 1.004 MeV (5.9e+02 %) - layer 6: 1.5433 MeV +- 2.264 MeV (1.5e+02 %) 167.06 keV +- 1.007 MeV (6e+02 %) - layer 7: 1.5073 MeV +- 2.445 MeV (1.6e+02 %) 159.39 keV +- 595 keV (3.7e+02 %) - layer 8: 1.5125 MeV +- 2.227 MeV (1.5e+02 %) 155.04 keV +- 683.9 keV (4.4e+02 %) - layer 9: 1.5523 MeV +- 2.679 MeV (1.7e+02 %) 177.31 keV +- 1.14 MeV (6.4e+02 %) - layer 10: 1.5289 MeV +- 2.243 MeV (1.5e+02 %) 155.57 keV +- 581.1 keV (3.7e+02 %) - layer 11: 1.5873 MeV +- 2.917 MeV (1.8e+02 %) 158.89 keV +- 751.5 keV (4.7e+02 %) - layer 12: 1.553 MeV +- 2.423 MeV (1.6e+02 %) 160.96 keV +- 502.9 keV (3.1e+02 %) - layer 13: 1.5199 MeV +- 2.19 MeV (1.4e+02 %) 157.8 keV +- 828.9 keV (5.3e+02 %) - layer 14: 1.5448 MeV +- 2.593 MeV (1.7e+02 %) 158.88 keV +- 509 keV (3.2e+02 %) - layer 15: 1.5587 MeV +- 2.632 MeV (1.7e+02 %) 162.9 keV +- 1.032 MeV (6.3e+02 %) - layer 16: 1.4985 MeV +- 2.019 MeV (1.3e+02 %) 144.08 keV +- 286 keV (2e+02 %) - layer 17: 1.5221 MeV +- 2.21 MeV (1.5e+02 %) 156.61 keV +- 631.8 keV (4e+02 %) - layer 18: 1.5181 MeV +- 2.301 MeV (1.5e+02 %) 150.23 keV +- 330.2 keV (2.2e+02 %) - layer 19: 1.4889 MeV +- 2.015 MeV (1.4e+02 %) 151.8 keV +- 428.6 keV (2.8e+02 %) - layer 20: 1.534 MeV +- 2.157 MeV (1.4e+02 %) 157.92 keV +- 420.3 keV (2.7e+02 %) - layer 21: 1.5643 MeV +- 2.566 MeV (1.6e+02 %) 167.41 keV +- 1.122 MeV (6.7e+02 %) - layer 22: 1.5119 MeV +- 2.048 MeV (1.4e+02 %) 160.78 keV +- 944.9 keV (5.9e+02 %) - layer 23: 1.5166 MeV +- 2.039 MeV (1.3e+02 %) 151.43 keV +- 412.4 keV (2.7e+02 %) - layer 24: 1.5151 MeV +- 1.953 MeV (1.3e+02 %) 153.58 keV +- 622.2 keV (4.1e+02 %) - layer 25: 1.5095 MeV +- 2.175 MeV (1.4e+02 %) 154.65 keV +- 531.5 keV (3.4e+02 %) - layer 26: 1.495 MeV +- 2.05 MeV (1.4e+02 %) 160.13 keV +- 696.3 keV (4.3e+02 %) - layer 27: 1.5732 MeV +- 2.744 MeV (1.7e+02 %) 171.47 keV +- 1.177 MeV (6.9e+02 %) - layer 28: 1.533 MeV +- 2.285 MeV (1.5e+02 %) 157.02 keV +- 564.9 keV (3.6e+02 %) - layer 29: 1.5386 MeV +- 2.278 MeV (1.5e+02 %) 157.14 keV +- 635.3 keV (4e+02 %) - layer 30: 1.5372 MeV +- 2.518 MeV (1.6e+02 %) 157.16 keV +- 436.1 keV (2.8e+02 %) - layer 31: 1.5471 MeV +- 2.493 MeV (1.6e+02 %) 164.82 keV +- 1.045 MeV (6.3e+02 %) - layer 32: 1.4968 MeV +- 1.763 MeV (1.2e+02 %) 171.11 keV +- 961.5 keV (5.6e+02 %) - layer 33: 1.5266 MeV +- 2.165 MeV (1.4e+02 %) 161.95 keV +- 745.2 keV (4.6e+02 %) - layer 34: 1.5132 MeV +- 2.107 MeV (1.4e+02 %) 166.25 keV +- 1.024 MeV (6.2e+02 %) - layer 35: 1.4895 MeV +- 1.756 MeV (1.2e+02 %) 167.36 keV +- 1.068 MeV (6.4e+02 %) - layer 36: 1.5094 MeV +- 1.903 MeV (1.3e+02 %) 158.72 keV +- 561.1 keV (3.5e+02 %) - layer 37: 1.562 MeV +- 2.524 MeV (1.6e+02 %) 165.23 keV +- 919.4 keV (5.6e+02 %) - layer 38: 1.5108 MeV +- 2.138 MeV (1.4e+02 %) 153.62 keV +- 625.6 keV (4.1e+02 %) - layer 39: 1.5184 MeV +- 2.147 MeV (1.4e+02 %) 161.04 keV +- 910.1 keV (5.7e+02 %) - layer 40: 1.5718 MeV +- 2.785 MeV (1.8e+02 %) 168.4 keV +- 973 keV (5.8e+02 %) - layer 41: 1.5246 MeV +- 2.343 MeV (1.5e+02 %) 153.97 keV +- 407.8 keV (2.6e+02 %) - layer 42: 1.5272 MeV +- 2.188 MeV (1.4e+02 %) 164.79 keV +- 951.7 keV (5.8e+02 %) - layer 43: 1.5407 MeV +- 2.618 MeV (1.7e+02 %) 160.51 keV +- 625.1 keV (3.9e+02 %) - layer 44: 1.5215 MeV +- 2.236 MeV (1.5e+02 %) 158.39 keV +- 666.4 keV (4.2e+02 %) - layer 45: 1.5432 MeV +- 2.264 MeV (1.5e+02 %) 157.11 keV +- 576.3 keV (3.7e+02 %) - layer 46: 1.5033 MeV +- 2.067 MeV (1.4e+02 %) 150.38 keV +- 312.9 keV (2.1e+02 %) - layer 47: 1.4749 MeV +- 1.737 MeV (1.2e+02 %) 157.35 keV +- 516.6 keV (3.3e+02 %) - layer 48: 1.5441 MeV +- 2.467 MeV (1.6e+02 %) 174.41 keV +- 902.7 keV (5.2e+02 %) - layer 49: 1.5401 MeV +- 2.339 MeV (1.5e+02 %) 153.42 keV +- 516.7 keV (3.4e+02 %) - layer 50: 1.5045 MeV +- 2.154 MeV (1.4e+02 %) 149.99 keV +- 340.4 keV (2.3e+02 %) - layer 51: 1.5345 MeV +- 2.187 MeV (1.4e+02 %) 162.47 keV +- 873 keV (5.4e+02 %) - layer 52: 1.5163 MeV +- 2.036 MeV (1.3e+02 %) 165.41 keV +- 834.4 keV (5e+02 %) - layer 53: 1.5159 MeV +- 2.107 MeV (1.4e+02 %) 157.26 keV +- 630.8 keV (4e+02 %) - layer 54: 1.5311 MeV +- 2.162 MeV (1.4e+02 %) 155.52 keV +- 573.3 keV (3.7e+02 %) - layer 55: 1.5228 MeV +- 2.16 MeV (1.4e+02 %) 156.19 keV +- 581.6 keV (3.7e+02 %) - layer 56: 1.532 MeV +- 2.192 MeV (1.4e+02 %) 157.56 keV +- 505.1 keV (3.2e+02 %) - layer 57: 1.5365 MeV +- 2.254 MeV (1.5e+02 %) 164.29 keV +- 788.4 keV (4.8e+02 %) - layer 58: 1.5162 MeV +- 2.189 MeV (1.4e+02 %) 163.68 keV +- 686.6 keV (4.2e+02 %) - layer 59: 1.5219 MeV +- 2.056 MeV (1.4e+02 %) 163.47 keV +- 862.5 keV (5.3e+02 %) - layer 60: 1.467 MeV +- 1.708 MeV (1.2e+02 %) 158.27 keV +- 734 keV (4.6e+02 %) - layer 61: 1.5124 MeV +- 2.083 MeV (1.4e+02 %) 163.26 keV +- 635.7 keV (3.9e+02 %) - layer 62: 1.5096 MeV +- 2.12 MeV (1.4e+02 %) 163.55 keV +- 833.3 keV (5.1e+02 %) - layer 63: 1.4956 MeV +- 1.745 MeV (1.2e+02 %) 155.59 keV +- 458 keV (2.9e+02 %) - layer 64: 1.4978 MeV +- 1.96 MeV (1.3e+02 %) 155.54 keV +- 680.7 keV (4.4e+02 %) - layer 65: 1.4971 MeV +- 1.758 MeV (1.2e+02 %) 154.93 keV +- 468.1 keV (3e+02 %) - layer 66: 1.5236 MeV +- 1.989 MeV (1.3e+02 %) 161.81 keV +- 772.2 keV (4.8e+02 %) - layer 67: 1.5035 MeV +- 2.026 MeV (1.3e+02 %) 161.19 keV +- 960.7 keV (6e+02 %) - layer 68: 1.5429 MeV +- 2.453 MeV (1.6e+02 %) 160.36 keV +- 532.5 keV (3.3e+02 %) - layer 69: 1.5305 MeV +- 2.105 MeV (1.4e+02 %) 154.75 keV +- 672.1 keV (4.3e+02 %) - layer 70: 1.4951 MeV +- 1.865 MeV (1.2e+02 %) 150.4 keV +- 484.5 keV (3.2e+02 %) - layer 71: 1.5377 MeV +- 2.392 MeV (1.6e+02 %) 160.08 keV +- 616.9 keV (3.9e+02 %) - layer 72: 1.5049 MeV +- 2.101 MeV (1.4e+02 %) 148.15 keV +- 430.5 keV (2.9e+02 %) - layer 73: 1.5231 MeV +- 2.14 MeV (1.4e+02 %) 149.51 keV +- 416.4 keV (2.8e+02 %) - layer 74: 1.5324 MeV +- 2.313 MeV (1.5e+02 %) 152.98 keV +- 426.6 keV (2.8e+02 %) - layer 75: 1.5608 MeV +- 2.33 MeV (1.5e+02 %) 163.99 keV +- 797 keV (4.9e+02 %) - layer 76: 1.5359 MeV +- 2.343 MeV (1.5e+02 %) 162.78 keV +- 535.5 keV (3.3e+02 %) - layer 77: 1.4973 MeV +- 2.025 MeV (1.4e+02 %) 158.43 keV +- 807.4 keV (5.1e+02 %) - layer 78: 1.4759 MeV +- 1.572 MeV (1.1e+02 %) 146.14 keV +- 254.3 keV (1.7e+02 %) - layer 79: 1.5384 MeV +- 2.385 MeV (1.6e+02 %) 162.86 keV +- 771.1 keV (4.7e+02 %) - layer 80: 1.5079 MeV +- 2.163 MeV (1.4e+02 %) 153.33 keV +- 566.6 keV (3.7e+02 %) - layer 81: 1.5174 MeV +- 2.076 MeV (1.4e+02 %) 151.6 keV +- 478.9 keV (3.2e+02 %) - layer 82: 1.48 MeV +- 1.611 MeV (1.1e+02 %) 152.35 keV +- 322.6 keV (2.1e+02 %) - layer 83: 1.5351 MeV +- 2.243 MeV (1.5e+02 %) 153.91 keV +- 700.2 keV (4.5e+02 %) - layer 84: 1.5436 MeV +- 2.35 MeV (1.5e+02 %) 150.05 keV +- 516.2 keV (3.4e+02 %) - layer 85: 1.4804 MeV +- 1.733 MeV (1.2e+02 %) 156.73 keV +- 577.2 keV (3.7e+02 %) - layer 86: 1.5107 MeV +- 2.002 MeV (1.3e+02 %) 153.42 keV +- 521.3 keV (3.4e+02 %) - layer 87: 1.5117 MeV +- 2.039 MeV (1.3e+02 %) 155.55 keV +- 438.4 keV (2.8e+02 %) - layer 88: 1.5299 MeV +- 2.245 MeV (1.5e+02 %) 174.7 keV +- 1.018 MeV (5.8e+02 %) - layer 89: 1.5103 MeV +- 1.881 MeV (1.2e+02 %) 162.68 keV +- 759.7 keV (4.7e+02 %) - layer 90: 1.5124 MeV +- 2.075 MeV (1.4e+02 %) 152.15 keV +- 547 keV (3.6e+02 %) + layer 1: 1.5386 MeV +- 2.425 MeV (1.6e+02 %) 163.89 keV +- 924 keV (5.6e+02 %) + layer 2: 1.5388 MeV +- 2.498 MeV (1.6e+02 %) 149.71 keV +- 380.1 keV (2.5e+02 %) + layer 3: 1.533 MeV +- 2.418 MeV (1.6e+02 %) 169.49 keV +- 1.113 MeV (6.6e+02 %) + layer 4: 1.5627 MeV +- 2.633 MeV (1.7e+02 %) 160.87 keV +- 652 keV (4.1e+02 %) + layer 5: 1.5383 MeV +- 2.425 MeV (1.6e+02 %) 155.45 keV +- 543.3 keV (3.5e+02 %) + layer 6: 1.5163 MeV +- 2.035 MeV (1.3e+02 %) 157.65 keV +- 678.1 keV (4.3e+02 %) + layer 7: 1.5337 MeV +- 2.311 MeV (1.5e+02 %) 158.32 keV +- 845.1 keV (5.3e+02 %) + layer 8: 1.5101 MeV +- 2.381 MeV (1.6e+02 %) 158 keV +- 964.1 keV (6.1e+02 %) + layer 9: 1.4988 MeV +- 1.838 MeV (1.2e+02 %) 155.81 keV +- 393.3 keV (2.5e+02 %) + layer 10: 1.5506 MeV +- 2.725 MeV (1.8e+02 %) 153.94 keV +- 521.6 keV (3.4e+02 %) + layer 11: 1.5293 MeV +- 2.258 MeV (1.5e+02 %) 166.47 keV +- 766.2 keV (4.6e+02 %) + layer 12: 1.5054 MeV +- 2.11 MeV (1.4e+02 %) 151.91 keV +- 542.2 keV (3.6e+02 %) + layer 13: 1.5072 MeV +- 2.428 MeV (1.6e+02 %) 159.41 keV +- 953.7 keV (6e+02 %) + layer 14: 1.5472 MeV +- 2.878 MeV (1.9e+02 %) 147.51 keV +- 398.3 keV (2.7e+02 %) + layer 15: 1.5635 MeV +- 2.664 MeV (1.7e+02 %) 190.42 keV +- 1.344 MeV (7.1e+02 %) + layer 16: 1.5194 MeV +- 2.224 MeV (1.5e+02 %) 155.02 keV +- 580.4 keV (3.7e+02 %) + layer 17: 1.5258 MeV +- 2.253 MeV (1.5e+02 %) 172.58 keV +- 1.119 MeV (6.5e+02 %) + layer 18: 1.5555 MeV +- 2.743 MeV (1.8e+02 %) 152.53 keV +- 576.5 keV (3.8e+02 %) + layer 19: 1.5429 MeV +- 2.608 MeV (1.7e+02 %) 160.42 keV +- 570.4 keV (3.6e+02 %) + layer 20: 1.5183 MeV +- 2.109 MeV (1.4e+02 %) 149.55 keV +- 289.7 keV (1.9e+02 %) + layer 21: 1.5314 MeV +- 1.982 MeV (1.3e+02 %) 165.21 keV +- 819.2 keV (5e+02 %) + layer 22: 1.5307 MeV +- 2.17 MeV (1.4e+02 %) 160.96 keV +- 708.5 keV (4.4e+02 %) + layer 23: 1.5429 MeV +- 2.24 MeV (1.5e+02 %) 155.03 keV +- 483.5 keV (3.1e+02 %) + layer 24: 1.5556 MeV +- 2.484 MeV (1.6e+02 %) 175.37 keV +- 940.8 keV (5.4e+02 %) + layer 25: 1.5541 MeV +- 2.771 MeV (1.8e+02 %) 155.19 keV +- 929.4 keV (6e+02 %) + layer 26: 1.52 MeV +- 1.991 MeV (1.3e+02 %) 151.9 keV +- 438.9 keV (2.9e+02 %) + layer 27: 1.4936 MeV +- 1.953 MeV (1.3e+02 %) 160.97 keV +- 646.4 keV (4e+02 %) + layer 28: 1.54 MeV +- 2.489 MeV (1.6e+02 %) 162.98 keV +- 1.122 MeV (6.9e+02 %) + layer 29: 1.5327 MeV +- 2.102 MeV (1.4e+02 %) 164.27 keV +- 808.3 keV (4.9e+02 %) + layer 30: 1.5196 MeV +- 2.166 MeV (1.4e+02 %) 159.31 keV +- 595.3 keV (3.7e+02 %) + layer 31: 1.5132 MeV +- 2.12 MeV (1.4e+02 %) 154.17 keV +- 559.4 keV (3.6e+02 %) + layer 32: 1.5359 MeV +- 2.163 MeV (1.4e+02 %) 156.92 keV +- 625.2 keV (4e+02 %) + layer 33: 1.5554 MeV +- 2.879 MeV (1.9e+02 %) 151.1 keV +- 567.2 keV (3.8e+02 %) + layer 34: 1.4905 MeV +- 2.014 MeV (1.4e+02 %) 158.7 keV +- 514.4 keV (3.2e+02 %) + layer 35: 1.5505 MeV +- 2.363 MeV (1.5e+02 %) 158.98 keV +- 745.2 keV (4.7e+02 %) + layer 36: 1.512 MeV +- 2.168 MeV (1.4e+02 %) 153.41 keV +- 799.9 keV (5.2e+02 %) + layer 37: 1.5127 MeV +- 1.986 MeV (1.3e+02 %) 160.91 keV +- 773.4 keV (4.8e+02 %) + layer 38: 1.5198 MeV +- 2.137 MeV (1.4e+02 %) 155.91 keV +- 384.6 keV (2.5e+02 %) + layer 39: 1.5144 MeV +- 2.024 MeV (1.3e+02 %) 159.16 keV +- 803.6 keV (5e+02 %) + layer 40: 1.507 MeV +- 1.983 MeV (1.3e+02 %) 160.04 keV +- 504.3 keV (3.2e+02 %) + layer 41: 1.548 MeV +- 2.547 MeV (1.6e+02 %) 156.64 keV +- 709.2 keV (4.5e+02 %) + layer 42: 1.5304 MeV +- 2.323 MeV (1.5e+02 %) 155.54 keV +- 692.4 keV (4.5e+02 %) + layer 43: 1.546 MeV +- 2.36 MeV (1.5e+02 %) 159.33 keV +- 692.8 keV (4.3e+02 %) + layer 44: 1.5293 MeV +- 2.318 MeV (1.5e+02 %) 156.77 keV +- 534.3 keV (3.4e+02 %) + layer 45: 1.536 MeV +- 2.394 MeV (1.6e+02 %) 156.87 keV +- 652.3 keV (4.2e+02 %) + layer 46: 1.5268 MeV +- 2.291 MeV (1.5e+02 %) 157.28 keV +- 634.6 keV (4e+02 %) + layer 47: 1.525 MeV +- 2.399 MeV (1.6e+02 %) 159.36 keV +- 986.9 keV (6.2e+02 %) + layer 48: 1.5502 MeV +- 2.54 MeV (1.6e+02 %) 154.22 keV +- 521.3 keV (3.4e+02 %) + layer 49: 1.5152 MeV +- 2.13 MeV (1.4e+02 %) 171.52 keV +- 1.085 MeV (6.3e+02 %) + layer 50: 1.515 MeV +- 2.043 MeV (1.3e+02 %) 162.14 keV +- 928.1 keV (5.7e+02 %) + layer 51: 1.5503 MeV +- 2.477 MeV (1.6e+02 %) 164.36 keV +- 855.2 keV (5.2e+02 %) + layer 52: 1.5315 MeV +- 2.365 MeV (1.5e+02 %) 163.31 keV +- 885.2 keV (5.4e+02 %) + layer 53: 1.4863 MeV +- 1.822 MeV (1.2e+02 %) 156.84 keV +- 455.3 keV (2.9e+02 %) + layer 54: 1.5383 MeV +- 2.65 MeV (1.7e+02 %) 157.28 keV +- 652.4 keV (4.1e+02 %) + layer 55: 1.5017 MeV +- 2.048 MeV (1.4e+02 %) 159.53 keV +- 876.4 keV (5.5e+02 %) + layer 56: 1.5507 MeV +- 2.345 MeV (1.5e+02 %) 147.02 keV +- 304.1 keV (2.1e+02 %) + layer 57: 1.5189 MeV +- 2.152 MeV (1.4e+02 %) 150.35 keV +- 566.3 keV (3.8e+02 %) + layer 58: 1.5213 MeV +- 2.002 MeV (1.3e+02 %) 154.44 keV +- 434.3 keV (2.8e+02 %) + layer 59: 1.5384 MeV +- 2.412 MeV (1.6e+02 %) 152.59 keV +- 617.9 keV (4e+02 %) + layer 60: 1.4874 MeV +- 1.737 MeV (1.2e+02 %) 148.41 keV +- 342.2 keV (2.3e+02 %) + layer 61: 1.5576 MeV +- 2.602 MeV (1.7e+02 %) 169.01 keV +- 984.9 keV (5.8e+02 %) + layer 62: 1.5516 MeV +- 2.342 MeV (1.5e+02 %) 175.14 keV +- 1.023 MeV (5.8e+02 %) + layer 63: 1.5224 MeV +- 1.872 MeV (1.2e+02 %) 153.04 keV +- 496.8 keV (3.2e+02 %) + layer 64: 1.5257 MeV +- 2.528 MeV (1.7e+02 %) 169.49 keV +- 970 keV (5.7e+02 %) + layer 65: 1.5492 MeV +- 2.439 MeV (1.6e+02 %) 156.66 keV +- 860.9 keV (5.5e+02 %) + layer 66: 1.508 MeV +- 1.968 MeV (1.3e+02 %) 173.97 keV +- 895 keV (5.1e+02 %) + layer 67: 1.511 MeV +- 1.884 MeV (1.2e+02 %) 159.8 keV +- 634.4 keV (4e+02 %) + layer 68: 1.5033 MeV +- 2.047 MeV (1.4e+02 %) 165.92 keV +- 947.1 keV (5.7e+02 %) + layer 69: 1.559 MeV +- 2.691 MeV (1.7e+02 %) 150.91 keV +- 470.6 keV (3.1e+02 %) + layer 70: 1.5047 MeV +- 2.208 MeV (1.5e+02 %) 167.81 keV +- 858.4 keV (5.1e+02 %) + layer 71: 1.5242 MeV +- 2.236 MeV (1.5e+02 %) 160.42 keV +- 745.2 keV (4.6e+02 %) + layer 72: 1.5242 MeV +- 2.036 MeV (1.3e+02 %) 166.61 keV +- 894.7 keV (5.4e+02 %) + layer 73: 1.518 MeV +- 2.189 MeV (1.4e+02 %) 166.79 keV +- 889.1 keV (5.3e+02 %) + layer 74: 1.4742 MeV +- 1.757 MeV (1.2e+02 %) 152.92 keV +- 507 keV (3.3e+02 %) + layer 75: 1.5192 MeV +- 2.319 MeV (1.5e+02 %) 150.52 keV +- 497.9 keV (3.3e+02 %) + layer 76: 1.5287 MeV +- 2.121 MeV (1.4e+02 %) 159.93 keV +- 633.8 keV (4e+02 %) + layer 77: 1.4751 MeV +- 1.77 MeV (1.2e+02 %) 157.96 keV +- 709 keV (4.5e+02 %) + layer 78: 1.518 MeV +- 2.19 MeV (1.4e+02 %) 157.57 keV +- 769.8 keV (4.9e+02 %) + layer 79: 1.5345 MeV +- 2.186 MeV (1.4e+02 %) 158.19 keV +- 618 keV (3.9e+02 %) + layer 80: 1.5095 MeV +- 2.141 MeV (1.4e+02 %) 148.96 keV +- 469.3 keV (3.2e+02 %) + layer 81: 1.5318 MeV +- 2.204 MeV (1.4e+02 %) 165.25 keV +- 712.3 keV (4.3e+02 %) + layer 82: 1.5066 MeV +- 1.946 MeV (1.3e+02 %) 155.61 keV +- 538.5 keV (3.5e+02 %) + layer 83: 1.4948 MeV +- 2.071 MeV (1.4e+02 %) 158.54 keV +- 618.4 keV (3.9e+02 %) + layer 84: 1.4945 MeV +- 1.896 MeV (1.3e+02 %) 155 keV +- 596.4 keV (3.8e+02 %) + layer 85: 1.5235 MeV +- 2.172 MeV (1.4e+02 %) 169.61 keV +- 1.073 MeV (6.3e+02 %) + layer 86: 1.4913 MeV +- 1.855 MeV (1.2e+02 %) 156.85 keV +- 753.7 keV (4.8e+02 %) + layer 87: 1.5127 MeV +- 1.772 MeV (1.2e+02 %) 164.97 keV +- 801.4 keV (4.9e+02 %) + layer 88: 1.4829 MeV +- 1.718 MeV (1.2e+02 %) 173.25 keV +- 939.3 keV (5.4e+02 %) + layer 89: 1.4951 MeV +- 1.687 MeV (1.1e+02 %) 157.29 keV +- 662.9 keV (4.2e+02 %) + layer 90: 1.5451 MeV +- 2.37 MeV (1.5e+02 %) 169.28 keV +- 1.046 MeV (6.2e+02 %) - total calor : 149.6 MeV +- 21.42 MeV ( 14 %) 14.307 MeV +- 6.755 MeV ( 47 %) + total calor : 149.66 MeV +- 21.97 MeV ( 15 %) 14.361 MeV +- 7.053 MeV ( 49 %) ------------------------------------------------------------ - Leakage : 850.4 MeV +- 21.42 MeV - Eleak/Ebeam = 85 % ( forward = 85 % backward = 0 % lateral = 0 %) + Leakage : 850.34 MeV +- 21.97 MeV + Eleak/Ebeam = 85 % ( forward = 85 % backward = 0 % lateral =0.0057 %) ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 1013644840, 1220674325 ----------------------------------------- +------- MixMaxRng engine status ------- + Current state vector is: +mixmax state, file version 1.0 +N=17 V[N]={688842632812770893, 493744256964668609, 2014998788919770078, 555486352909931968, 527426544983729244, 1626671489998783318, 256016924732933596, 1122832362623961, 92813431543576012, 782427591811683370, 499713687443503297, 87179051965860853, 795185337074364343, 1991060270564532244, 1246127010838719190, 1117806037430592056, 830205479497239372} counter= 14sumtot= 2077612675786812649 +--------------------------------------- G4 kernel has come to Quit state. UserDetectorConstruction deleted. UserPhysicsList deleted. @@ -334,11 +336,11 @@ Pool ID '7G4Event', size : 0.000961 MB Pool ID '15G4PrimaryVertex', size : 0.000961 MB Pool ID '17G4PrimaryParticle', size : 0.000961 MB Pool ID '17G4DynamicParticle', size : 0.000961 MB -Pool ID '7G4Track', size : 0.000961 MB +Pool ID '7G4Track', size : 0.00192 MB Pool ID '18G4TouchableHistory', size : 0.000961 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB Number of memory pools allocated: 11 of which, static: 0 -Dynamic pools deleted: 11 / Total memory freed: 0.062 MB +Dynamic pools deleted: 11 / Total memory freed: 0.063 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/advanced/brachytherapy/brachytherapy.out b/examples/advanced/brachytherapy/brachytherapy.out index a9d0f11ab7..587efbec10 100644 --- a/examples/advanced/brachytherapy/brachytherapy.out +++ b/examples/advanced/brachytherapy/brachytherapy.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -253,6 +255,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -280,7 +283,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -316,8 +319,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -348,8 +350,8 @@ conv: for gamma SubType=14 BuildTable=1 Livermore5DConversion : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -473,7 +475,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -483,10 +485,11 @@ nuclearStopping: for GenericIon SubType=8 BuildTable=0 ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 1.4427 us -Max life time (from G4DeexPrecoParameters) 1.4427 us +min MeanLife (from G4NuclideTable) 1 ns +Max life time (from G4DeexPrecoParameters) 1000 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -757,21 +760,21 @@ Index : 0 used in the geometry : Yes Index : 1 used in the geometry : Yes Material : G4_WATER Range cuts : gamma 50 um e- 50 um e+ 50 um proton 50 um - Energy thresholds : gamma 250 eV e- 57.1127 keV e+ 56.4729 keV proton 5 keV + Energy thresholds : gamma 250 eV e- 57.1154 keV e+ 56.4647 keV proton 5 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes Material : Stainless steel 304 Range cuts : gamma 50 um e- 50 um e+ 50 um proton 50 um - Energy thresholds : gamma 4.35412 keV e- 154.671 keV e+ 151.2 keV proton 5 keV + Energy thresholds : gamma 4.35474 keV e- 154.675 keV e+ 151.197 keV proton 5 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 3 used in the geometry : Yes Material : G4_Ir Range cuts : gamma 50 um e- 50 um e+ 50 um proton 50 um - Energy thresholds : gamma 26.6603 keV e- 242.289 keV e+ 234.254 keV proton 5 keV + Energy thresholds : gamma 26.6594 keV e- 242.284 keV e+ 234.224 keV proton 5 keV Region(s) which use this couple : DefaultRegionForTheWorld diff --git a/examples/advanced/composite_calorimeter/History b/examples/advanced/composite_calorimeter/History index 7a9395bfcd..867f652a1c 100644 --- a/examples/advanced/composite_calorimeter/History +++ b/examples/advanced/composite_calorimeter/History @@ -6,6 +6,9 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-10-04 Gabriele Cosmo (ccal-V11-00-02) +- Fixed compilation warning on Intel-icx compiler for set but unused variable. + ## 2022-02-14 Gabriele Cosmo (ccal-V11-00-01) - Fixed compilation warnings on Intel-icx compiler for unused variables. diff --git a/examples/advanced/composite_calorimeter/composite_calorimeter.out b/examples/advanced/composite_calorimeter/composite_calorimeter.out index 3458c8ea94..192f694352 100644 --- a/examples/advanced/composite_calorimeter/composite_calorimeter.out +++ b/examples/advanced/composite_calorimeter/composite_calorimeter.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -78,6 +78,8 @@ HcalTB96 is registered to the default region. * Magnetic Field is off * * * *************************** +G4FieldManager/SetEpsMin : eps_min = 1e-05 +G4FieldManager/SetEpsMax : eps_max = 0.01 ( Note: unchanged eps_min= 1e-05 ) ******************************************************* * * * Constructing a CCaloSD with name HadronCalorimeter @@ -108,6 +110,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -135,7 +138,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -186,8 +189,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -669,6 +672,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -997,20 +1005,20 @@ Start closing geometry. G4GeometryManager::ReportVoxelStats -- Voxel Statistics Total memory consumed for geometry optimisation: 15 kByte - Total CPU time elapsed for geometry optimisation: 0 seconds + 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.00 8k CrystalMatrix 0.00 0.00 0.00 0k HcalTB96 0.00 0.00 0.00 0k HadronCalorimeter - 0.00 0.00 0.00 3k HadronCalorimeterBox0 0.00 0.00 0.00 2k HadronCalorimeterBox1 0.00 0.00 0.00 1k HadronCalorimeterScntLayer2 0.00 0.00 0.00 0k HadronCalorimeterScntLayer1 0.00 0.00 0.00 0k HadronCalorimeterScntLayer0 0.00 0.00 0.00 8k CrystalMatrix - 0.00 0.00 0.00 1k CrystalMatrixLayer + 0.00 0.00 0.00 3k HadronCalorimeterBox0 0.00 0.00 0.00 2k HadronCalorimeterBox1 0.00 0.00 0.00 1k HadronCalorimeterScntLayer2 0.00 0.00 0.00 0k HadronCalorimeterScntLayer1 0.00 0.00 0.00 0k HadronCalorimeterScntLayer0 0.00 0.00 0.00 1k CrystalMatrixLayer Voxelisation: top memory users: Percent Memory Heads Nodes Pointers Total CPU Volume ------- -------- ------ ------ -------- ---------- ---------- - 49.44 7k 12 112 196 0.00 CrystalMatrix + 49.44 7k 12 112 196 0.01 CrystalMatrix 20.31 3k 6 44 83 0.00 HadronCalorimeterBox0 14.44 2k 5 30 60 0.00 HadronCalorimeterBox1 4.81 0k 1 12 14 0.00 CrystalMatrixLayer 3.70 0k 2 7 13 0.00 HadronCalorimeterScntLayer2 2.08 0k 1 4 8 0.00 HadronCalorimeter 1.98 0k 1 4 6 0.00 HadronCalorimeterScntLayer0 1.67 0k 1 3 6 0.00 HadronCalorimeterScntLayer1 1.57 0k 1 3 4 0.00 HcalTB96 @@ -1078,7 +1086,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 20 - User=15.890000s Real=16.088186s Sys=0.010000s + User=17.640000s Real=17.826814s Sys=0.000000s ### Run 0 end. ... write file : ccal.root - done ... close file : ccal.root - done @@ -1096,12 +1104,12 @@ G4SDManager deleted. EventManager deleted. Units table cleared. TransportationManager deleted. -Total navigation history collections cleaned: 52 +Total navigation history collections cleaned: 49 G4RNGHelper object is deleted. ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.0779 MB +Pool ID '20G4NavigationLevelRep', size : 0.0731 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.0461 MB +Pool ID '17G4DynamicParticle', size : 0.0385 MB Pool ID '16G4SmartVoxelNode', size : 0.00769 MB Pool ID '17G4SmartVoxelProxy', size : 0.00385 MB Pool ID '7G4Event', size : 0.000961 MB @@ -1109,13 +1117,13 @@ Pool ID '15G4PrimaryVertex', size : 0.000961 MB Pool ID '17G4PrimaryParticle', size : 0.000961 MB Pool ID '15G4HCofThisEvent', size : 0.000961 MB Pool ID '16G4HitsCollection', size : 0.000961 MB -Pool ID '7G4Track', size : 0.0913 MB -Pool ID '18G4TouchableHistory', size : 0.00673 MB +Pool ID '7G4Track', size : 0.0759 MB +Pool ID '18G4TouchableHistory', size : 0.00577 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB Pool ID '17G4ReactionProduct', size : 0.0144 MB Pool ID '10G4Fragment', size : 0.00673 MB Number of memory pools allocated: 15 of which, static: 0 -Dynamic pools deleted: 15 / Total memory freed: 0.26 MB +Dynamic pools deleted: 15 / Total memory freed: 0.23 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/advanced/composite_calorimeter/src/CCalEventAction.cc b/examples/advanced/composite_calorimeter/src/CCalEventAction.cc index 82f69ed95e..2164dbe6f1 100644 --- a/examples/advanced/composite_calorimeter/src/CCalEventAction.cc +++ b/examples/advanced/composite_calorimeter/src/CCalEventAction.cc @@ -132,7 +132,6 @@ void CCalEventAction::EndOfEventAction(const G4Event* evt){ for (i = 0; i < 49; i++) {ecalE[i]=0.;} G4float* edep = new G4float[numberOfSD]; - G4int nhit=0; for (i = 0; i < numberOfSD; ++i){ // @@ -182,7 +181,6 @@ void CCalEventAction::EndOfEventAction(const G4Event* evt){ #endif fullE += En/GeV; edep[i] += En/GeV; - nhit++; } #ifdef ddebug G4cout << " ===> Total Energy Deposit in this Calorimeter = " diff --git a/examples/advanced/doiPET/History b/examples/advanced/doiPET/History index 949f7a15d9..698479cf03 100644 --- a/examples/advanced/doiPET/History +++ b/examples/advanced/doiPET/History @@ -4,6 +4,8 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-09-08 Susanna Guatelli (doiPET-V11-00-01) +- Ranecu engine removed, default engine used now ## 2021-12-10 Ben Morgan (doiPET-V11-00-00) - Change to new Markdown History format diff --git a/examples/advanced/doiPET/doiPET.cc b/examples/advanced/doiPET/doiPET.cc index 7179540736..9d7583bdb2 100644 --- a/examples/advanced/doiPET/doiPET.cc +++ b/examples/advanced/doiPET/doiPET.cc @@ -60,10 +60,6 @@ int main(int argc,char** argv) ui = new G4UIExecutive(argc, argv); } - // Choose the Random engine - - G4Random::setTheEngine(new CLHEP::RanecuEngine); - //Initialize analysis doiPETAnalysis* ptrAnalysis = doiPETAnalysis::GetInstance(); diff --git a/examples/advanced/doiPET/doiPET.out b/examples/advanced/doiPET/doiPET.out index cd9ab8b50e..478ed12ac6 100644 --- a/examples/advanced/doiPET/doiPET.out +++ b/examples/advanced/doiPET/doiPET.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -243,6 +243,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -270,7 +271,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -306,8 +307,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -327,6 +327,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -354,7 +355,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -390,8 +391,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -421,8 +421,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 10 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -516,10 +516,11 @@ nuclearStopping: for proton SubType=8 BuildTable=0 ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 1.4427 us -Max life time (from G4DeexPrecoParameters) 1.4427 us +min MeanLife (from G4NuclideTable) 1 ns +Max life time (from G4DeexPrecoParameters) 1000 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -538,7 +539,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 10 eV to 100 TeV in 260 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -799,21 +800,22 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Voxelisation: top CPU users: Percent Total CPU System CPU Memory Volume ------- ---------- ---------- -------- ---------- - 100.00 0.01 0.00 406k airBox_logicalV - 0.00 0.00 0.00 69k world_logicalV + 100.00 0.01 0.00 69k world_logicalV + 0.00 0.00 0.00 406k airBox_logicalV Voxelisation: top memory users: Percent Memory Heads Nodes Pointers Total CPU Volume ------- -------- ------ ------ -------- ---------- ---------- - 85.51 406k 931 5788 8898 0.01 airBox_logicalV - 14.49 68k 182 683 3080 0.00 world_logicalV + 85.51 406k 931 5788 8898 0.00 airBox_logicalV + 14.49 68k 182 683 3080 0.01 world_logicalV ### Run 0 starts. ### Begin of Run 0 start. ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 1140500198, 1822882361 ----------------------------------------- +------- MixMaxRng engine status ------- + Current state vector is: +mixmax state, file version 1.0 +N=17 V[N]={87900885656017340, 2136126672992718976, 110623987125446578, 1760017631922168480, 1347869657133772530, 36358300597538435, 1998927673699779117, 560338803140155100, 1930287293955600580, 60278032823922274, 875424340407838772, 225908128063227162, 2130837885561505834, 1885404585657500750, 90905619095982505, 1311860937671179900, 334872487292441351} counter= 17sumtot= 743041858300938027 +--------------------------------------- ---> Begin of event: 0 ---> End of event: 0 @@ -847,7 +849,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 1000000 - User=127.800000s Real=132.225331s Sys=1.910000s + User=129.500000s Real=132.656662s Sys=1.910000s ### End of Run (1000000 events) G4 kernel has come to Quit state. @@ -863,23 +865,23 @@ G4SDManager deleted. EventManager deleted. Units table cleared. TransportationManager deleted. -Total navigation history collections cleaned: 13 +Total navigation history collections cleaned: 14 G4RNGHelper object is deleted. ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.0183 MB +Pool ID '20G4NavigationLevelRep', size : 0.0202 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.0106 MB +Pool ID '17G4DynamicParticle', size : 0.0125 MB Pool ID '16G4SmartVoxelNode', size : 0.201 MB Pool ID '17G4SmartVoxelProxy', size : 0.116 MB Pool ID '7G4Event', size : 0.000961 MB Pool ID '15G4PrimaryVertex', size : 0.000961 MB Pool ID '17G4PrimaryParticle', size : 0.000961 MB Pool ID '19G4ElectronOccupancy', size : 0.000961 MB -Pool ID '7G4Track', size : 0.0211 MB +Pool ID '7G4Track', size : 0.024 MB Pool ID '18G4TouchableHistory', size : 0.00192 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB Number of memory pools allocated: 12 of which, static: 0 -Dynamic pools deleted: 12 / Total memory freed: 0.37 MB +Dynamic pools deleted: 12 / Total memory freed: 0.38 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/advanced/eFLASH_radiotherapy/7MeVEF.mac b/examples/advanced/eFLASH_radiotherapy/7MeVEF.mac new file mode 100644 index 0000000000..6b97ed886a --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/7MeVEF.mac @@ -0,0 +1,22 @@ +/gps/ene/type User +/gps/hist/type energy +/gps/hist/point 4.0 0.006361072 +/gps/hist/point 4.142105 0.006361072 +/gps/hist/point 4.2842107 0.006361072 +/gps/hist/point 4.426316 0.006361072 +/gps/hist/point 4.568421 0.006361072 +/gps/hist/point 4.7105265 0.006361072 +/gps/hist/point 4.8526316 0.006361072 +/gps/hist/point 4.9947367 0.006361072 +/gps/hist/point 5.1368423 0.006361072 +/gps/hist/point 5.2789474 0.006361072 +/gps/hist/point 5.4210525 0.006361072 +/gps/hist/point 5.563158 0.006361072 +/gps/hist/point 5.705263 0.006361072 +/gps/hist/point 5.8473682 0.006361072 +/gps/hist/point 5.989474 0.006361072 +/gps/hist/point 6.131579 0.006361133 +/gps/hist/point 6.273684 0.0064330143 +/gps/hist/point 6.4157896 0.017568603 +/gps/hist/point 6.5578947 0.23811398 +/gps/hist/point 6.7 0.6361072 diff --git a/examples/advanced/eFLASH_radiotherapy/9MeVEF.mac b/examples/advanced/eFLASH_radiotherapy/9MeVEF.mac new file mode 100644 index 0000000000..eade9bfb62 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/9MeVEF.mac @@ -0,0 +1,22 @@ +/gps/ene/type User +/gps/hist/type energy +/gps/hist/point 4.0 0.012509298 +/gps/hist/point 4.2421055 0.012509298 +/gps/hist/point 4.4842105 0.012509298 +/gps/hist/point 4.726316 0.012509298 +/gps/hist/point 4.968421 0.012509298 +/gps/hist/point 5.2105265 0.012509298 +/gps/hist/point 5.4526315 0.012509298 +/gps/hist/point 5.694737 0.012509298 +/gps/hist/point 5.936842 0.012509298 +/gps/hist/point 6.1789474 0.012509298 +/gps/hist/point 6.4210525 0.012509298 +/gps/hist/point 6.663158 0.012509298 +/gps/hist/point 6.905263 0.012509298 +/gps/hist/point 7.1473684 0.012509298 +/gps/hist/point 7.389474 0.012509298 +/gps/hist/point 7.631579 0.012509298 +/gps/hist/point 7.8736844 0.012509298 +/gps/hist/point 8.115789 0.012509346 +/gps/hist/point 8.357895 0.016105369 +/gps/hist/point 8.6 0.75872725 diff --git a/examples/advanced/eFLASH_radiotherapy/CMakeLists.txt b/examples/advanced/eFLASH_radiotherapy/CMakeLists.txt new file mode 100644 index 0000000000..7b4b52e47c --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/CMakeLists.txt @@ -0,0 +1,74 @@ + +#---------------------------------------------------------------------------- +# Setup the project +cmake_minimum_required(VERSION 2.6 FATAL_ERROR) +project(flash) + +#---------------------------------------------------------------------------- +# Find Geant4 package, activating all available UI and Vis drivers by default +# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui +# to build a batch mode only executable +# +option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON) +if(WITH_GEANT4_UIVIS) + find_package(Geant4 REQUIRED ui_all vis_all) +else() + find_package(Geant4 REQUIRED) +endif() + +#---------------------------------------------------------------------------- +# Setup Geant4 include directories and compile definitions +# Setup include directory for this project +# +include(${Geant4_USE_FILE}) +include_directories(${PROJECT_SOURCE_DIR}/include + ${Geant4_INCLUDE_DIR}) + + +#---------------------------------------------------------------------------- +# Locate sources and headers for this project +# NB: headers are included so they will show up in IDEs +# +file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) +file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) + +#---------------------------------------------------------------------------- +# Add the executable, and link it to the Geant4 libraries +# +add_executable(flash flash.cc ${sources} ${headers}) +target_link_libraries(flash ${Geant4_LIBRARIES}) + +#---------------------------------------------------------------------------- +# Copy all scripts to the build directory, i.e. the directory in which we +# build flash. This is so that we can run the executable directly because it +# relies on these scripts being in the current working directory. +# +set(flash_SCRIPTS + debug.mac + init_vis.mac + run.mac + vis.mac + 9MeVEF.mac + 7MeVEF.mac + ) + +foreach(_script ${flash_SCRIPTS}) + configure_file( + ${PROJECT_SOURCE_DIR}/${_script} + ${PROJECT_BINARY_DIR}/${_script} + COPYONLY + ) +endforeach() + +#---------------------------------------------------------------------------- +# For internal Geant4 use - but has no effect if you build this +# example standalone +# + + +#---------------------------------------------------------------------------- +# Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX +# +install(TARGETS flash DESTINATION bin) + + diff --git a/examples/advanced/eFLASH_radiotherapy/GNUmakefile b/examples/advanced/eFLASH_radiotherapy/GNUmakefile new file mode 100644 index 0000000000..16c3b996e1 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/GNUmakefile @@ -0,0 +1,21 @@ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := flash +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../.. +endif + +.PHONY: all +all: lib bin + +include $(G4INSTALL)/config/binmake.gmk + +visclean: + rm -f g4*.prim g4*.eps g4*.wrl + rm -f .DAWN_* + diff --git a/examples/advanced/eFLASH_radiotherapy/History b/examples/advanced/eFLASH_radiotherapy/History new file mode 100644 index 0000000000..4cda35ce30 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/History @@ -0,0 +1,11 @@ +# Example eFLASH_radiotherapy History + +See `CONTRIBUTING.rst` for details of **required** info/format for each entry, +which **must** added in reverse chronological order (newest at the top). It must **not** +be used as a substitute for writing good git commit messages! + +## 2022-11-18 F. Romano (eFLASH_radiotherapy-V11-00-00) +- Added the new advanced example eFLASH_radiotherapy + + + diff --git a/examples/advanced/eFLASH_radiotherapy/README.txt b/examples/advanced/eFLASH_radiotherapy/README.txt new file mode 100644 index 0000000000..623e0487e1 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/README.txt @@ -0,0 +1,92 @@ + + ========================================================= + Text version of the eFLASH_radiotherapy README file + ========================================================= + +Authors: +Jake Harold Pensavalle (1,2), Giuliana Milluzzo (3) and Francesco Romano (3) + + + (1) Fisica Sanitaria, Azienda Ospedaliero Universitaria Pisa AOUP, ed.18 via Roma 67 Pisa, Italy + + (2) Istituto Nazionale di Fisica Nucleare, Sezione di Pisa, Largo B. Pontecorvo 3 I Pisa, Italy + + (3) Istituto Nazionale di Fisica Nucleare, Sezione di Catania, Via Santa Sofia 64 Catania, Italy + + +---Contacts: + +Jake Pensavalle: jake.pensavalle@pi.infn.it + +Giuliana Milluzzo: giuliana.milluzzo@ct.infn.it + +Francesco Romano: francesco.romano@ct.infn.it + + +WHAT IT IS, WHAT IT DOES AND WHAT IT WILL PROVIDE + +This Example "FLASH" simulates the beamline and energy spectra based on the Triode Electron Gun Equipped ElectronFlash Manufactured by Sordina Iort Technologies S.p.A. available at the Centro Pisano Flash Radiotherapy (CPFR) at Pisa. The linac is able to provide low-energy electron flash beams and is currently the first machine installed in Italy capable of reaching FLASH dose-rate (MGy/s) and extremely high dose per pulse DPP). + + +=====================BEAMLINE=============================== +The beamline (set along the x-axis) is modelled in the Applicator class, starting from the titanium windows (which is after the RF cavities not modelled in this simulation) ending at the PMMA applicator which acts as a passive collimation of the electron beam. +The applicator has 5mm thick walls and the user can set the inner and outer radius and the total length of the applicatior in the Applicator.cc class by modifying the appropriate parameters (OuterRadiusFirstApplicatorFlash and hightFinalApplicatorFlash) by means of the SetApplicatorLength and SetOuterRadius functions. The default is the 100mm diameter applicator (inner diameter), but one can +simulate the others as follows: + +1) Applicator (internal diameter) 30mm : OuterRadiusFirstApplicatorFlash = 17.5 mm, hightFinalApplicatorFlash = 175 mm + +2) Applicator (internal diameter) 40mm : OuterRadiusFirstApplicatorFlash = 22.5 mm, hightFinalApplicatorFlash = 200 mm + +2) Applicator (internal diameter) 50mm : OuterRadiusFirstApplicatorFlash = 27.5 mm, hightFinalApplicatorFlash = 225 mm + +Optionally one can set the length of the applicator to 0 and simulate the beam at the exit window, an additional 3cm of air are between the phantom to account for the applicator inserter hooks on the machine. + +=====================DETECTOR CONSTRUCTOR=============================== + +The FlashDetectorConstruction Class creates a cubic water phantom (default dimension 30x30x30 cm3) and a detector volume. +The phantom is placed in contact with the applicator as a typical experimental setup as default. The Phantom sizes can be easily modified by using the SetPhantomSize function at the beginning of the class. +The user can also add an air gap between the end of the final applicator and the entrance of the water phantom by modifying the parameter (AirGap) and the function SetAirGap (default AirGap=0 cm). +The defaul material of the phantom is water (G4_WATER) but the material can be easily changed by using the following macro commands: +Es: +/changePhantom/material G4_AIR +/chagePhantom/update + +The user may also select the maximum step length in this class by changing the "maxStep" parameter. + +A silicon carbide (SiC) detector (default thickness=10 um, default substrate=370 um, default width=5 mm) is also implemented outside the water phantom and attacched to the exit surface of the water phantom. The width and the thickness of the active layer and of the substrate can be easily modified by means of the SetDetectorThickness, SetDetector_subThickness, SetDetectorWidth functions at the beginnign of the class. +An air gap between the phantom exit and the entrance of the detector can be also added through the SetAirGap_water_detector function. +The user may also change the material of the detector trough macro commands: + +/changeDetector/material G4_C +/chageDetector/update + + +=====================PRIMARY GENERATOR===================== + +The source is modelled in the FlashPrimaryGeneratorAction class and fully uses the General Particle Source class (both in .mac commands and directly in c++ code). +The beam spot is gaussian with a slight angular divergence (1.5 deg) and the electron energy spectrum can be loaded from macro commands chosing the 9MeV mode (using "/control/execute 9MeVEF.mac") +or the 7MeV mode (using "/control/execute 7MeVEF.mac). The geometry of the beam can be set by the user by changing the position, sigma and theta values in +FlashPrimaryGeneratorAction.cc. + + + +=====================SCORING MESH===================== + +A scoring mesh is implemented in .mac file commands. +A default 120x4x4 mm3 scorer with 120x1x1 number nbin simulating a similar volume as the Advanced Markus Chamber is created in the position of the water phantom to register the dose in Gy delivered in each voxel. Results are printed in the file dose.out at the end of the simulation. User may change the dimensions and bin number (voxel size) to appropiately score the volume of interest and optimize the simulation (a very finely voxellized volume may increase the simulation time significantly). + +=====================ENERGY SPECTRUM===================== +The primary particle energy spectrum at the entrance of the phantom (downstream the beamline) is also registered using the FlashSteppingAction class. An ASCII file is automatically written with the following information: + +parentid eventid kineticEnergy pos_x pos_y pos_z momentum cos_x cos_y cos_z + +If user is not interested on the retrieval of the energy spectrum can easily comment the line in the SteppinAction class. + + +=====================PHYSICS PROCESSES AND PHYSICS LIST ===================== + +EM Standard option 4 is activated. The user can change the physics list in the physics list class. A production cut for gammas e+ and e- can be applied provided the specification of the Region name defined +in the FlashDetectorConstruction Class (Default region is the water phantom). + + + diff --git a/examples/advanced/eFLASH_radiotherapy/debug.mac b/examples/advanced/eFLASH_radiotherapy/debug.mac new file mode 100644 index 0000000000..d98d3c824a --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/debug.mac @@ -0,0 +1,147 @@ +######################### +# Set of the verboses +# +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 1 +/event/verbose 0 + +########################## +# Initialisation procedure +# +/run/initialize + + + + + +######################### + + +/gps/pos/centre -1000 0 0 mm +/gps/ene/type User +/gps/hist/type energy +/gps/hist/point 1.5 0.0040 +/gps/hist/point 1.6 0.0040 +/gps/hist/point 1.7 0.0040 +/gps/hist/point 1.8 0.0040 +/gps/hist/point 1.9 0.0040 +/gps/hist/point 2.0 0.0040 +/gps/hist/point 2.1 0.0040 +/gps/hist/point 2.2 0.0040 +/gps/hist/point 2.3 0.0040 +/gps/hist/point 2.4 0.0040 +/gps/hist/point 2.5 0.0040 +/gps/hist/point 2.6 0.0040 +/gps/hist/point 2.7 0.0040 +/gps/hist/point 2.8 0.0040 +/gps/hist/point 2.9 0.0040 +/gps/hist/point 3.0 0.0040 +/gps/hist/point 3.1 0.0040 +/gps/hist/point 3.2 0.0040 +/gps/hist/point 3.3 0.0040 +/gps/hist/point 3.4 0.0040 +/gps/hist/point 3.5 0.0040 +/gps/hist/point 3.6 0.0040 +/gps/hist/point 3.7 0.0040 +/gps/hist/point 3.8 0.0040 +/gps/hist/point 3.9 0.0040 +/gps/hist/point 4.0 0.0040 +/gps/hist/point 4.1 0.0040 +/gps/hist/point 4.2 0.0040 +/gps/hist/point 4.3 0.0040 +/gps/hist/point 4.4 0.0040 +/gps/hist/point 4.5 0.0040 +/gps/hist/point 4.6 0.0040 +/gps/hist/point 4.7 0.0040 +/gps/hist/point 4.8 0.0040 +/gps/hist/point 4.9 0.0040 +/gps/hist/point 5.0 0.0040 +/gps/hist/point 5.1 0.0040 +/gps/hist/point 5.2 0.0040 +/gps/hist/point 5.3 0.0040 +/gps/hist/point 5.4 0.0040 +/gps/hist/point 5.5 0.0040 +/gps/hist/point 5.6 0.0040 +/gps/hist/point 5.7 0.0040 +/gps/hist/point 5.8 0.0040 +/gps/hist/point 5.9 0.0040 +/gps/hist/point 6.0 0.0040 +/gps/hist/point 6.1 0.0040 +/gps/hist/point 6.2 0.0040 +/gps/hist/point 6.3 0.0040 +/gps/hist/point 6.4 0.0040 +/gps/hist/point 6.5 0.0040 +/gps/hist/point 6.6 0.0040 +/gps/hist/point 6.7 0.0040 +/gps/hist/point 6.8 0.0040 +/gps/hist/point 6.9 0.0040 +/gps/hist/point 7.0 0.0040 +/gps/hist/point 7.1 0.0040 +/gps/hist/point 7.2 0.0040 +/gps/hist/point 7.3 0.0040 +/gps/hist/point 7.4 0.0061 +/gps/hist/point 7.5 0.0082 +/gps/hist/point 7.6 0.0082 +/gps/hist/point 7.7 0.0083 +/gps/hist/point 7.8 0.0085 +/gps/hist/point 7.9 0.0086 +/gps/hist/point 8.0 0.0087 +/gps/hist/point 8.1 0.0089 +/gps/hist/point 8.2 0.0090 +/gps/hist/point 8.3 0.0091 +/gps/hist/point 8.4 0.0092 +/gps/hist/point 8.5 0.0094 +/gps/hist/point 8.6 0.0095 +/gps/hist/point 8.7 0.0096 +/gps/hist/point 8.8 0.0099 +/gps/hist/point 8.9 0.0098 +/gps/hist/point 9.0 0.0100 +/gps/hist/point 9.1 0.0101 +/gps/hist/point 9.2 0.0100 +/gps/hist/point 9.3 0.0139 +/gps/hist/point 9.4 0.0240 +/gps/hist/point 9.5 0.0289 +/gps/hist/point 9.6 0.0410 +/gps/hist/point 9.7 0.0610 +/gps/hist/point 9.8 0.3427 +/gps/hist/point 9.9 0.0640 +/gps/hist/point 10.0 0.0150 +/gps/hist/point 10.1 0.0001 +/gps/hist/point 10.2 0.0001 +/gps/hist/point 10.3 0.0001 +/gps/hist/point 10.4 0.0001 +/gps/hist/point 10.5 0.0001 + + + +######################### +# Display the event number +# during the run +# + + +######################### +# Start of the run +# +# +# Scoring mesh is used to calculate +# the dose in the phantom +/score/create/boxMesh boxMesh_1 +# +/score/mesh/boxSize 4. 8. 8. cm +/score/mesh/nBin 40 40 40 +/score/mesh/translate/xyz -164.4 0 0 mm +/score/quantity/doseDeposit dose Gy + +# +/score/close +# +/score/list + +#/run/beamOn 1000000 +#/run/beamOn 211950 +/run/beamOn 5 + +#/score/dumpQuantityToFile boxMesh_1 dose dose.out + diff --git a/examples/advanced/eFLASH_radiotherapy/dose.out b/examples/advanced/eFLASH_radiotherapy/dose.out new file mode 100644 index 0000000000..3280132f70 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/dose.out @@ -0,0 +1,123 @@ +# mesh name: boxMesh_1 +# primitive scorer name: dose +# iX, iY, iZ, total(value) [Gy], total(val^2), entry +0,0,0,1.163672350549033e-06,2.407177322223707e-15,680 +1,0,0,1.2396293580843e-06,2.915955373139052e-15,681 +2,0,0,1.256555097744699e-06,2.943707770023248e-15,690 +3,0,0,1.285730461343703e-06,3.039179288949185e-15,695 +4,0,0,1.306221125059636e-06,3.190986666093618e-15,711 +5,0,0,1.288735885503361e-06,3.14670017558607e-15,701 +6,0,0,1.279226917600304e-06,3.186397954934492e-15,708 +7,0,0,1.2827304951867e-06,3.539402520558711e-15,690 +8,0,0,1.250726523504168e-06,3.132055254407439e-15,685 +9,0,0,1.296807374963336e-06,3.295475569716626e-15,698 +10,0,0,1.197043470507227e-06,2.779000224003801e-15,665 +11,0,0,1.198549812469519e-06,2.945346608506435e-15,653 +12,0,0,1.275225063943301e-06,3.507134390261332e-15,672 +13,0,0,1.246092495674925e-06,3.289034036924375e-15,661 +14,0,0,1.310648142006445e-06,3.427430169399629e-15,688 +15,0,0,1.386019072917563e-06,3.888762448280143e-15,708 +16,0,0,1.351071741648223e-06,3.826091804411297e-15,698 +17,0,0,1.362902440157893e-06,3.864931072028544e-15,687 +18,0,0,1.393148365591078e-06,4.038452669773308e-15,706 +19,0,0,1.330975272515035e-06,3.741588977480804e-15,674 +20,0,0,1.312720001315883e-06,3.749221388823273e-15,660 +21,0,0,1.320420973096318e-06,3.982757939375999e-15,659 +22,0,0,1.334345372804586e-06,4.213032484829289e-15,648 +23,0,0,1.286057004792948e-06,3.973461152727476e-15,625 +24,0,0,1.305913905467335e-06,4.169675186462224e-15,608 +25,0,0,1.253235294965251e-06,4.251071230435422e-15,563 +26,0,0,1.148465780028676e-06,4.030742088051107e-15,516 +27,0,0,1.107754235866358e-06,3.913758557796556e-15,491 +28,0,0,9.889910030535889e-07,3.418225435830894e-15,451 +29,0,0,9.850343420909821e-07,3.399254572722506e-15,432 +30,0,0,9.040803850463952e-07,3.036886915724137e-15,402 +31,0,0,8.222327382556686e-07,2.768794135511163e-15,359 +32,0,0,7.748425884142878e-07,2.948735095952022e-15,327 +33,0,0,5.962191027831183e-07,2.036220992222223e-15,274 +34,0,0,5.444139488572161e-07,2.227936660689665e-15,228 +35,0,0,4.228873679216219e-07,1.443044078742837e-15,184 +36,0,0,3.677994928699477e-07,1.370909927129837e-15,156 +37,0,0,2.921150916640535e-07,1.132767839688752e-15,113 +38,0,0,1.984201703509044e-07,6.808688636582236e-16,82 +39,0,0,1.810801038483279e-07,8.294780819077554e-16,62 +40,0,0,6.347877113169636e-08,1.84391057627594e-16,39 +41,0,0,6.155102425480019e-08,2.264234444916204e-16,30 +42,0,0,3.521440970429795e-08,1.146734635284308e-16,21 +43,0,0,1.776146693248101e-08,6.157741788625857e-17,11 +44,0,0,8.79497467392432e-09,2.2821966588756e-17,7 +45,0,0,1.598964178246415e-09,1.174058653358157e-18,8 +46,0,0,2.081866684263335e-09,1.211360540911445e-18,8 +47,0,0,3.978103213309994e-09,6.64653936320055e-18,8 +48,0,0,4.161613417411835e-09,7.796274779708517e-18,4 +49,0,0,1.641215307446394e-09,4.821077485613469e-19,8 +50,0,0,5.576763840159501e-10,1.693750720004785e-19,5 +51,0,0,3.806685912307705e-09,4.496599221278829e-18,7 +52,0,0,8.962223104497511e-10,3.17571521998637e-19,5 +53,0,0,1.039257582501954e-09,3.441558800358621e-19,6 +54,0,0,2.640345366374128e-10,6.936907213110102e-20,2 +55,0,0,3.24766241439631e-10,6.548833680898391e-20,3 +56,0,0,1.214732621943233e-09,6.271918953218681e-19,4 +57,0,0,7.789153468098293e-09,1.954572241715625e-17,7 +58,0,0,1.613271162673364e-09,1.515478582991306e-18,4 +59,0,0,5.182224849131037e-10,2.488457017107511e-19,2 +60,0,0,1.234975938708137e-10,1.069704015096241e-20,3 +61,0,0,2.748276252736397e-09,4.286962241014459e-18,5 +62,0,0,3.650495841633403e-09,5.890800302666554e-18,3 +63,0,0,1.06554977099466e-09,9.01852833692708e-19,2 +64,0,0,8.256956211048014e-10,3.496959184536347e-19,2 +65,0,0,7.051528946089705e-10,4.079386966630106e-19,3 +66,0,0,1.41175118957766e-10,1.455092118865024e-20,3 +67,0,0,3.15086690372471e-11,9.92796224498774e-22,1 +68,0,0,4.578413784451911e-11,1.266318453571202e-21,2 +69,0,0,1.774307860808196e-09,6.961525411915705e-19,7 +70,0,0,3.995409914364619e-10,1.596330038380309e-19,1 +71,0,0,4.402655956064896e-10,1.854676532084236e-19,2 +72,0,0,8.373104963792742e-10,3.151913578512354e-19,4 +73,0,0,7.004829118834108e-09,2.266167676524759e-17,4 +74,0,0,1.353883496403014e-10,1.83300052183245e-20,1 +75,0,0,2.473086086304305e-09,2.370945598903742e-18,3 +76,0,0,4.768911479406845e-11,2.274251669841838e-21,1 +77,0,0,9.769433394465627e-11,5.734570016749316e-21,3 +78,0,0,0,0,0 +79,0,0,4.343094900478439e-10,1.265336863718904e-19,3 +80,0,0,2.217730140252978e-10,3.193686677148206e-20,2 +81,0,0,1.394345611762743e-09,1.944199685042018e-18,1 +82,0,0,2.93945467402391e-09,6.404432116554176e-18,3 +83,0,0,0,0,0 +84,0,0,0,0,0 +85,0,0,1.128365410663265e-09,1.273208499981278e-18,1 +86,0,0,3.744011140350964e-10,1.401761941907213e-19,1 +87,0,0,0,0,0 +88,0,0,8.880334829810647e-10,7.886034668954809e-19,1 +89,0,0,1.802909206833755e-09,2.620603705358338e-18,6 +90,0,0,5.343123765996355e-10,7.93038096670107e-20,5 +91,0,0,1.78205478158253e-10,1.429098966144912e-20,3 +92,0,0,1.389888613515347e-10,1.931790357979613e-20,1 +93,0,0,8.737988839713691e-11,5.435383706594846e-21,2 +94,0,0,1.277187348230681e-09,9.897636845567881e-19,2 +95,0,0,3.811091651350001e-09,1.306569896037635e-17,2 +96,0,0,1.602461572457346e-09,2.565764853834315e-18,2 +97,0,0,9.320794794666201e-09,4.066327448422222e-17,4 +98,0,0,2.810119319641954e-09,7.578379364397468e-18,2 +99,0,0,0,0,0 +100,0,0,2.739802577528365e-10,7.506518163831075e-20,1 +101,0,0,3.953323698251497e-09,1.56287682631569e-17,1 +102,0,0,3.678025435645562e-10,1.291344735234476e-19,3 +103,0,0,9.822949633029739e-10,7.424837570811266e-19,5 +104,0,0,2.171521963565157e-09,3.936694216567958e-18,2 +105,0,0,2.137128083041875e-09,4.567316443326237e-18,1 +106,0,0,2.873332608860463e-09,4.171249821752482e-18,2 +107,0,0,4.165878878680239e-09,6.683655095261423e-18,4 +108,0,0,3.047972664704715e-09,4.522291655043247e-18,4 +109,0,0,3.728331929597183e-09,8.030982213093065e-18,2 +110,0,0,7.516951517389391e-10,5.650456011478266e-19,1 +111,0,0,2.424338304937327e-09,3.348106123185604e-18,2 +112,0,0,1.152193399802306e-10,1.327549630547997e-20,1 +113,0,0,1.575379660828222e-09,1.293976969770274e-18,3 +114,0,0,3.080090177172974e-09,6.81724549311101e-18,3 +115,0,0,5.338651557850695e-10,2.801143451697981e-19,2 +116,0,0,4.674906205476586e-10,1.930891711085058e-19,2 +117,0,0,1.493437258388569e-09,2.230354844743166e-18,1 +118,0,0,6.144632766426092e-10,3.561591096418516e-19,2 +119,0,0,9.222339748701955e-12,8.505155044048803e-23,1 diff --git a/examples/advanced/eFLASH_radiotherapy/eFLASH_radiotherapy.out b/examples/advanced/eFLASH_radiotherapy/eFLASH_radiotherapy.out new file mode 100644 index 0000000000..ec53277c16 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/eFLASH_radiotherapy.out @@ -0,0 +1,813 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + +Visualization Manager instantiating with verbosity "warnings (3)"... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully registered the following graphics systems. +Registered graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML2FILE (VRML2FILE) + gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) + OpenGLImmediateQt (OGLIQt, OGLI) + OpenGLStoredQt (OGLSQt, OGL, OGLS) + OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) + OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK) + OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK) + OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK) + RayTracerX (RayTracerX) + Qt3D (Qt3D) + TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK) + TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK) + TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG) + +Registering model factories... + +You have successfully registered the following model factories. +Registered model factories: + generic + drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByEncounteredVolume + +Registered models: + None + +Registered filter factories: + attributeFilter + chargeFilter + originVolumeFilter + particleFilter + encounteredVolumeFilter + +Registered filters: + None + +You have successfully registered the following user vis actions. +Run Duration User Vis Actions: none +End of Event User Vis Actions: none +End of Run User Vis Actions: none + +Some /vis commands (optionally) take a string to specify colour. +"/vis/list" to see available colours. +/tracking/verbose 0 +/run/verbose 1 +/event/verbose 0 +/run/initialize +Checking overlaps for volume DetPhys:0 (G4Box) ... OK! +Checking overlaps for volume Det_sub_Phys:0 (G4Box) ... OK! +--- G4CoupledTransportation is used +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 20 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 0.01 mm) +Step function for muons/hadrons (0.1, 0.05 mm) +Step function for light ions (0.1, 0.02 mm) +Step function for general ions (0.1, 0.001 mm) +Lowest e+e- kinetic energy 100 eV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 1 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 1 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 1 MeV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 2 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 1 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.08 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 3 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 1 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= +====== Atomic Deexcitation Parameters ======== +======================================================================= +Fluorescence enabled 1 +Directory in G4LEDATA for fluorescence data files fluor +Auger electron cascade enabled 1 +PIXE atomic de-excitation enabled 0 +De-excitation module ignores cuts 1 +Type of PIXE cross section for hadrons Empirical +Type of PIXE cross section for e+- Livermore +======================================================================= + +### === Deexcitation model UAtomDeexcitation is activated for 2 regions: +### === Auger flag: 1 +### === Ignore cuts flag: 1 +/control/execute 9MeVEF.mac +/gps/ene/type User +/gps/hist/type energy +/gps/hist/point 4.0 0.012509298 +/gps/hist/point 4.2421055 0.012509298 +/gps/hist/point 4.4842105 0.012509298 +/gps/hist/point 4.726316 0.012509298 +/gps/hist/point 4.968421 0.012509298 +/gps/hist/point 5.2105265 0.012509298 +/gps/hist/point 5.4526315 0.012509298 +/gps/hist/point 5.694737 0.012509298 +/gps/hist/point 5.936842 0.012509298 +/gps/hist/point 6.1789474 0.012509298 +/gps/hist/point 6.4210525 0.012509298 +/gps/hist/point 6.663158 0.012509298 +/gps/hist/point 6.905263 0.012509298 +/gps/hist/point 7.1473684 0.012509298 +/gps/hist/point 7.389474 0.012509298 +/gps/hist/point 7.631579 0.012509298 +/gps/hist/point 7.8736844 0.012509298 +/gps/hist/point 8.115789 0.012509346 +/gps/hist/point 8.357895 0.016105369 +/gps/hist/point 8.6 0.75872725 +/score/create/boxMesh boxMesh_1 +/score/mesh/boxSize 60 2 2 mm +/score/mesh/nBin 120 1 1 +.... G4ScoringMessenger::MeshBinCommand - G4ScoringBox +/score/mesh/translate/xyz 60 0 0 mm +/score/quantity/doseDeposit dose Gy +/score/close +/score/list +G4ScoringManager has 1 scoring meshes. +G4ScoringBox : boxMesh_1 --- Shape: Box mesh + Size (x, y, z): (6, 0.2, 0.2) [cm] + # of segments: (120, 1, 1) + displacement: (6, 0, 0) [cm] + registered primitve scorers : + 0 dose +/run/beamOn 500000 +/run/geometryModified +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 20 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 0.01 mm) +Step function for muons/hadrons (0.1, 0.05 mm) +Step function for light ions (0.1, 0.02 mm) +Step function for general ions (0.1, 0.001 mm) +Lowest e+e- kinetic energy 100 eV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 1 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 1 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 1 MeV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 2 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 1 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.08 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 3 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 1 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= +====== Atomic Deexcitation Parameters ======== +======================================================================= +Fluorescence enabled 1 +Directory in G4LEDATA for fluorescence data files fluor +Auger electron cascade enabled 1 +PIXE atomic de-excitation enabled 0 +De-excitation module ignores cuts 1 +Type of PIXE cross section for hadrons Empirical +Type of PIXE cross section for e+- Livermore +======================================================================= + +### === Deexcitation model UAtomDeexcitation is activated for 2 regions: + DefaultRegionForTheWorld 1 1 0 + Phantom_reg 1 1 0 +### === Auger flag: 1 +### === Ignore cuts flag: 1 + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 174 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 20 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 160 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 100 TeV Fluo + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + PenIoni : Emin= 0 eV Emax= 100 keV + MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS + eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS + +ePairProd: for e- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 25x1001 from 0.1 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ePairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + PenIoni : Emin= 0 eV Emax= 100 keV + MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS + eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS + +ePairProd: for e+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 25x1001 from 0.1 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ePairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +nuclearStopping: for proton SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV +====================================================================== +====== Radioactive Decay Physics Parameters ======= +====================================================================== +min MeanLife (from G4NuclideTable) 1 ns +Max life time (from G4DeexPrecoParameters) 1000 ps +Internal e- conversion flag 1 +Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 +Enable correlated gamma emission 0 +Max 2J for sampling of angular correlations 10 +Atomic de-excitation enabled 1 +Auger electron emission enabled 1 +Check EM cuts disabled for atomic de-excitation 1 +Use Bearden atomic level energies 0 +Use ANSTO fluorescence model 0 +Threshold for very long decay time at rest 3.171e+10 y +====================================================================== + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI + +nuclearStopping: for GenericIon SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV deltaVI + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV deltaVI + +nuclearStopping: for alpha SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV deltaVI + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_AIR + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 100 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 100 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 2 used in the geometry : Yes + Material : G4_Ti + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm + Energy thresholds : gamma 13.2345 keV e- 820.548 keV e+ 782.043 keV proton 100 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 3 used in the geometry : Yes + Material : G4_Al + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm + Energy thresholds : gamma 6.91572 keV e- 597.438 keV e+ 574.135 keV proton 100 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 4 used in the geometry : Yes + Material : G4_Fe + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm + Energy thresholds : gamma 20.7572 keV e- 1.28885 MeV e+ 1.21776 MeV proton 100 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 5 used in the geometry : Yes + Material : PVDF + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm + Energy thresholds : gamma 3.10685 keV e- 620.272 keV e+ 599.554 keV proton 100 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 6 used in the geometry : Yes + Material : FILM + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm + Energy thresholds : gamma 2.97731 keV e- 422.934 keV e+ 410.033 keV proton 100 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 7 used in the geometry : Yes + Material : G4_PLEXIGLASS + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm + Energy thresholds : gamma 2.77786 keV e- 389.158 keV e+ 377.95 keV proton 100 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 8 used in the geometry : Yes + Material : SiC + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm + Energy thresholds : gamma 7.0291 keV e- 711.152 keV e+ 682.032 keV proton 100 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 9 used in the geometry : Yes + Material : G4_WATER + Range cuts : gamma 100 um e- 100 um e+ 100 um proton 0 fm + Energy thresholds : gamma 1.11075 keV e- 85.0445 keV e+ 83.9021 keV proton 0 eV + Region(s) which use this couple : + Phantom_reg + +================================================================== + +G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. +See commands in /vis/modeling/trajectories/ for other options. +### Run 0 starts. +### Run 0 start. + +---> Begin of event: 0 +---> End of event: 0 + +---> Begin of event: 100000 +---> End of event: 100000 + +---> Begin of event: 200000 +---> End of event: 200000 + +---> Begin of event: 300000 +---> End of event: 300000 + +---> Begin of event: 400000 +---> End of event: 400000 + Run terminated. +Run Summary + Number of events processed : 500000 + User=1142.920000s Real=1160.667092s Sys=6.720000s + +--------------------End of Global Run----------------------- + The run was 500000 events /score/dumpQuantityToFile boxMesh_1 dose dose.out +Graphics systems deleted. +Visualization Manager deleting... +G4 kernel has come to Quit state. +================== Deleting memory pools =================== +Number of memory pools allocated: 12 of which, static: 0 +Dynamic pools deleted: 12 / Total memory freed: 0.13 MB +============================================================ +RunManagerKernel is deleted. Good bye :) diff --git a/environments/g4py/examples/demos/TestEm0/module/DetectorConstruction.hh b/examples/advanced/eFLASH_radiotherapy/flash.cc similarity index 53% rename from environments/g4py/examples/demos/TestEm0/module/DetectorConstruction.hh rename to examples/advanced/eFLASH_radiotherapy/flash.cc index acdea9210c..54b51e7adf 100644 --- a/environments/g4py/examples/demos/TestEm0/module/DetectorConstruction.hh +++ b/examples/advanced/eFLASH_radiotherapy/flash.cc @@ -24,64 +24,70 @@ // ******************************************************************** // // -// -// +// flash.cc +// Authors: J.Pensavalle, G.Milluzzo, F. Romano +// jake.pensavalle@pi.infn.it, giuliana.milluzzo@ct.infn.it, francesco.romano@ct.infn.it -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#include "G4Types.hh" -#ifndef DetectorConstruction_h -#define DetectorConstruction_h 1 +#include "G4RunManagerFactory.hh" -#include "G4VUserDetectorConstruction.hh" -#include "globals.hh" +#include "G4UIExecutive.hh" +#include "G4UImanager.hh" +#include "G4VisExecutive.hh" -class G4LogicalVolume; -class G4Material; -class DetectorMessenger; +#include "Applicator.hh" +#include "FlashActionInitialization.hh" +#include "FlashDetectorConstruction.hh" +#include "FlashPhysicsList.hh" +#include "G4ScoringManager.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#include "Randomize.hh" -class DetectorConstruction : public G4VUserDetectorConstruction -{ - public: +int main(int argc, char **argv) { + + G4UIExecutive *ui = 0; + if (argc == 1) { + ui = new G4UIExecutive(argc, argv); + } + + // G4Random::setTheEngine(new CLHEP::MTwistEngine); + + auto *runManager=G4RunManagerFactory::CreateRunManager(); + G4int nThreads = 4; + runManager->SetNumberOfThreads(nThreads); + + G4Random::setTheSeed(45698); + + runManager->SetUserInitialization(new FlashDetectorConstruction); + + runManager->SetUserInitialization(new FlashPhysicsList); + + runManager->SetUserInitialization(new FlashActionInitialization); + + G4VisManager *visManager = new G4VisExecutive; + + visManager->Initialize(); + + G4UImanager *UImanager = G4UImanager::GetUIpointer(); + G4ScoringManager::GetScoringManager(); - DetectorConstruction(); - ~DetectorConstruction(); - public: - - G4VPhysicalVolume* Construct(); - - void SetMaterial (G4String); - - public: - - const - G4VPhysicalVolume* GetWorld() {return pBox;}; - - G4double GetSize() {return BoxSize;}; - G4Material* GetMaterial() {return aMaterial;}; - - void PrintParameters(); - - private: - - G4VPhysicalVolume* pBox; - - G4double BoxSize; - G4Material* aMaterial; - - DetectorMessenger* detectorMessenger; + if (!ui) { - private: - - void DefineMaterials(); - G4VPhysicalVolume* ConstructVolumes(); -}; + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UImanager->ApplyCommand(command + fileName); + } else { -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + UImanager->ApplyCommand("/control/execute init_vis.mac"); + ui->SessionStart(); + delete ui; + } + delete visManager; + delete runManager; + return 0; +} -#endif - +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/examples/advanced/eFLASH_radiotherapy/include/Applicator.hh b/examples/advanced/eFLASH_radiotherapy/include/Applicator.hh new file mode 100644 index 0000000000..a91479d81d --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/include/Applicator.hh @@ -0,0 +1,132 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// + +#ifndef Applicator_H +#define Applicator_H 1 + +#include "FlashDetectorConstruction.hh" +#include "G4Box.hh" +#include "G4Cons.hh" +#include "G4LogicalVolume.hh" +#include "G4SubtractionSolid.hh" +#include "G4Tubs.hh" +#include "G4VUserDetectorConstruction.hh" +#include "G4VisAttributes.hh" +#include "globals.hh" + +class G4VPhysicalVolume; + +class Applicator { +public: + Applicator(G4VPhysicalVolume *); + ~Applicator(); + + G4double fFinalApplicatorXPositionFlash; + G4double fHightFinalApplicatorFlash; + + void SetOuterRadius(G4double radius); + void SetApplicatorLength(G4double length); + +private: +void ConstructCollimator(G4VPhysicalVolume *); + + void FlashBeamLineVacuumSource(); + + void FlashBeamLineTitaniumWindows(); + void FlashVWAlcover(); + void FlashAlCover2(); + void FlashExitBit(); + void FlashToroid(); + void OverCover(); + void OverCover2(); + void MonitorChamber(); + void Flash_connector(); + void Bigconnector(); + void Bigconnector2(); + void Bigconnector3(); + void FlashBeamLineApplicator(); + + + G4double fInitial_pos; + + G4double fInnerRadiusFirstApplicatorFlash; + G4VPhysicalVolume *fMotherPhys; + + G4Material* Fe; + G4Material* PVDF; + G4Material* FILM; + G4Material* aluminumNist; + G4Material* PMMA; + + G4double fOutRadiusVSFlash; + G4double fHightVSFlash; + G4double fXPositionVSFlash; + G4double fHightFTFlash; + + G4double fOutRadiusFTFlash; + G4double fOutRadius; + G4double fToroid_outRadius; + G4double fToroid_hight; + G4double fToroid_XPosition; + G4double fBigcover_hight; + G4double fBigcover_XPosition; + G4double fChamberpos; + + + void SetDefaultDimensions(); + + void ConstructApplicator(); + + G4VisAttributes *blue; + G4VisAttributes *gray; + G4VisAttributes *white; + G4VisAttributes *red; + G4VisAttributes *yellow; + G4VisAttributes *green; + G4VisAttributes *darkGreen; + G4VisAttributes *darkOrange3; + G4VisAttributes *skyBlue; + G4VisAttributes *magenta; + + G4double fOuterRadiusFirstApplicatorFlash; + G4Tubs *fSolidFirstApplicatorFlash; + G4VPhysicalVolume *fPhysiFirstApplicatorFlash; + G4Material *fFirstApplicatorMaterialFlash; + + + // Titanium Window + G4Tubs *solidFTFlash; + G4VPhysicalVolume *physiFTFlash; + G4Material *FTFlashMaterialFlash; + + // Vacuum Source + G4Tubs *solidVSFlash; + G4VPhysicalVolume *physiVSFlash; + G4Material *VSFlashMaterialFlash; +}; +#endif diff --git a/examples/advanced/eFLASH_radiotherapy/include/FlashActionInitialization.hh b/examples/advanced/eFLASH_radiotherapy/include/FlashActionInitialization.hh new file mode 100644 index 0000000000..58b5eca713 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/include/FlashActionInitialization.hh @@ -0,0 +1,44 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +/// \file FlashActionInitialization.hh +/// \brief Definition of the FlashActionInitialization class + +#ifndef FlashActionInitialization_h +#define FlashActionInitialization_h 1 + +#include "G4VUserActionInitialization.hh" + +class FlashActionInitialization : public G4VUserActionInitialization { +public: + FlashActionInitialization(); + virtual ~FlashActionInitialization(); + + virtual void BuildForMaster() const; + virtual void Build() const; +}; + +#endif diff --git a/examples/advanced/eFLASH_radiotherapy/include/FlashDetectorConstruction.hh b/examples/advanced/eFLASH_radiotherapy/include/FlashDetectorConstruction.hh new file mode 100644 index 0000000000..357060b4c1 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/include/FlashDetectorConstruction.hh @@ -0,0 +1,130 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +/// \file FlashDetectorConstruction.hh + +#ifndef FlashDetectorConstruction_h +#define FlashDetectorConstruction_h 1 + +#include "G4VUserDetectorConstruction.hh" +#include "globals.hh" + +#include "G4Material.hh" +#include "tls.hh" +#include "G4ThreeVector.hh" +#include "G4UserLimits.hh" + +class G4VPhysicalVolume; +class G4LogicalVolume; +class Applicator; +class G4VSensitiveDetector; +class G4NistManager; +class G4Tubs; +class G4Box; +class G4Element; +class G4VisAttributes; + + +class FlashDetectorMessenger; + + +class FlashDetectorConstruction : public G4VUserDetectorConstruction { +public: + G4VPhysicalVolume *physicalTreatmentRoom; + G4LogicalVolume *logicTreatmentRoom; + G4VPhysicalVolume *ConstructPhantom(G4double CollPos); + G4VPhysicalVolume *ConstructDetector(); + + FlashDetectorConstruction(); + virtual ~FlashDetectorConstruction(); + + virtual G4VPhysicalVolume *Construct(); + virtual void ConstructSDandField(); + + G4bool SetPhantomMaterial(G4String material); + G4bool SetDetectorMaterial(G4String material); + void SetAirGap(G4double position); + void SetPhantomSize(G4double sizeX, G4double sizeY, G4double sizeZ); + + void SetDetectorThickness(G4double thickness); + void SetDetector_subThickness(G4double thickness_sub); + void SetDetectorWidth(G4double width); + void SetDetectorPosition(G4double position); + void SetAirGap_water_detector(G4double spost); + + G4VisAttributes *skyBlue; + G4VisAttributes *red; + G4VisAttributes *blue; + G4VisAttributes *green; + + +private: + + FlashDetectorMessenger* fDetectorMessenger; + + G4Material *airNist; + G4Material *fPhantomMaterial; + Applicator *Collimator; + + G4double fAirGap; + G4double fPhantomSizeX, fPhantomSizeY, fPhantomSizeZ, fPhantom_coordinateX,fPosition_coefficient; + G4ThreeVector fPhantomPosition; + G4double fDet_thickness,fDet_width,fDet_sub_thickness,fDetectorPosition,fAirGap_phantom_det; + G4Element *Si; + G4Element *C; + G4Material *SiC; + G4Material *fDetectorMaterial; + + G4Box *fPhantom; + + + G4Box *fDet_box; + G4LogicalVolume *fDetLogicalVolume; + G4VPhysicalVolume *fDet_phys; + + G4Box *fDet_sub; + G4LogicalVolume *fDet_sub_LogicalVolume; + G4VPhysicalVolume *fDet_sub_phys; + + + void DefineMaterials(); + + + G4LogicalVolume *fPhantomLogicalVolume; + G4VPhysicalVolume *fPhant_phys; + G4VPhysicalVolume *fPhantom_physical; + + G4UserLimits *fStepLimit; + G4bool fCheckOverlaps; + + G4NistManager *nist; + + + + +}; + +#endif diff --git a/examples/advanced/eFLASH_radiotherapy/include/FlashDetectorMessenger.hh b/examples/advanced/eFLASH_radiotherapy/include/FlashDetectorMessenger.hh new file mode 100644 index 0000000000..f40a689c36 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/include/FlashDetectorMessenger.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +////////////////////////////////////////////////////////////////////////////////////////////// + +#ifndef FLASHDetectorMessenger_h +#define FLASHDetectorMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class FlashDetectorConstruction; +class G4UIdirectory; +class G4UIcmdWith3VectorAndUnit; +class G4UIcmdWithoutParameter; +class G4UIcmdWithAString; +class G4UIcmdWithADoubleAndUnit; + +class FlashDetectorMessenger: public G4UImessenger +{ +public: + FlashDetectorMessenger(FlashDetectorConstruction* ); + ~FlashDetectorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + +private: + + // Pointer to the phantom/detector + FlashDetectorConstruction* flashDetector; + + G4UIdirectory *fChangeThePhantomDir, *fChangeTheDetectorDir; + + G4UIcmdWithoutParameter *fUpdateCmd, *fUpdateCmd_d; + G4UIcmdWithAString *fChangeThePhantomMaterialCmd, *fChangeTheDetectorMaterialCmd; + + + +}; +#endif + diff --git a/environments/g4py/tests/gtest01/module/QMaterials.hh b/examples/advanced/eFLASH_radiotherapy/include/FlashEventAction.hh similarity index 77% rename from environments/g4py/tests/gtest01/module/QMaterials.hh rename to examples/advanced/eFLASH_radiotherapy/include/FlashEventAction.hh index 8d9dab8996..9f3bb6b917 100644 --- a/environments/g4py/tests/gtest01/module/QMaterials.hh +++ b/examples/advanced/eFLASH_radiotherapy/include/FlashEventAction.hh @@ -23,28 +23,32 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// QMaterials.hh // -// 2005 Q -// ==================================================================== -#ifndef Q_MATERIALS_H -#define Q_MATERIALS_H +/// \file FlashEventAction.hh +/// \brief Definition of the FlashEventAction class +#ifndef FlashEventAction_h +#define FlashEventAction_h 1 + +#include "G4UserEventAction.hh" #include "globals.hh" -// ==================================================================== -// -// class definition -// -// ==================================================================== -class QMaterials { -public: - QMaterials(); - ~QMaterials(); +class FlashRunAction; - void Construct(); +class FlashEventAction : public G4UserEventAction + +{ +public: + FlashEventAction(); + + virtual ~FlashEventAction(); + + virtual void BeginOfEventAction(const G4Event *evt); + + virtual void EndOfEventAction(const G4Event *evt); + +private: + G4int printModulo; }; #endif - diff --git a/examples/advanced/eFLASH_radiotherapy/include/FlashPhysicsList.hh b/examples/advanced/eFLASH_radiotherapy/include/FlashPhysicsList.hh new file mode 100644 index 0000000000..86c8933aec --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/include/FlashPhysicsList.hh @@ -0,0 +1,41 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// + +#ifndef FlashPhysicsList_h +#define FlashPhysicsList_h 1 + +#include "G4VModularPhysicsList.hh" + +class FlashPhysicsList : public G4VModularPhysicsList { +public: + FlashPhysicsList(); + virtual ~FlashPhysicsList(); + + virtual void SetCuts(); +}; + +#endif diff --git a/examples/advanced/eFLASH_radiotherapy/include/FlashPrimaryGeneratorAction.hh b/examples/advanced/eFLASH_radiotherapy/include/FlashPrimaryGeneratorAction.hh new file mode 100644 index 0000000000..8f455779c9 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/include/FlashPrimaryGeneratorAction.hh @@ -0,0 +1,61 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// + +#ifndef FlashPrimaryGeneratorAction_h +#define FlashPrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "globals.hh" + +class G4GeneralParticleSource; +class G4Event; + +class FlashPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { +public: + FlashPrimaryGeneratorAction(); + ~FlashPrimaryGeneratorAction(); + +public: + void GeneratePrimaries(G4Event *); + +private: + void SetDefaultPrimaryParticle(); + + G4double X0; + G4double Y0; + G4double Z0; + G4double sigmaY; + G4double sigmaZ; + + G4double Theta; + +private: + G4GeneralParticleSource *particleGun; +}; + +#endif diff --git a/environments/g4py/examples/demos/water_phantom/module/MyMaterials.hh b/examples/advanced/eFLASH_radiotherapy/include/FlashRunAction.hh similarity index 77% rename from environments/g4py/examples/demos/water_phantom/module/MyMaterials.hh rename to examples/advanced/eFLASH_radiotherapy/include/FlashRunAction.hh index ead3e27311..12a402e066 100644 --- a/environments/g4py/examples/demos/water_phantom/module/MyMaterials.hh +++ b/examples/advanced/eFLASH_radiotherapy/include/FlashRunAction.hh @@ -23,28 +23,31 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// MyMaterials.hh // -// 2005 Q -// ==================================================================== -#ifndef MY_MATERIALS_H -#define MY_MATERIALS_H +/// \file FlashRunAction.hh +/// \brief Definition of the FlashRunAction class +#ifndef FlashRunAction_h +#define FlashRunAction_h 1 + +#include "G4Accumulable.hh" +#include "G4RunManager.hh" +#include "G4UserRunAction.hh" #include "globals.hh" +class G4Run; -// ==================================================================== -// -// class definition -// -// ==================================================================== -class MyMaterials { +class FlashRunAction : public G4UserRunAction { public: - MyMaterials(); - ~MyMaterials(); + FlashRunAction(); + virtual ~FlashRunAction(); - void Construct(); + virtual void BeginOfRunAction(const G4Run *); + virtual void EndOfRunAction(const G4Run *); + + + +private: + }; #endif - diff --git a/examples/advanced/eFLASH_radiotherapy/include/FlashStackingAction.hh b/examples/advanced/eFLASH_radiotherapy/include/FlashStackingAction.hh new file mode 100644 index 0000000000..351a4b77a0 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/include/FlashStackingAction.hh @@ -0,0 +1,58 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +/// \file FlashStackingAction.hh +/// \brief Definition of the FlashStackingAction class + +#ifndef FlashStackingAction_h +#define FlashStackingAction_h 1 + +#include "G4UserStackingAction.hh" +#include "globals.hh" +#include + +class FlashStackingAction : public G4UserStackingAction { +public: + FlashStackingAction(); + virtual ~FlashStackingAction(); + +public: + virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track *aTrack); + virtual void NewStage(); + virtual void PrepareNewEvent(); + +private: + std::ofstream OpticFile; + G4int fScintillationCounter; + G4int fCerenkovCounter; + G4int fBremstralung; + G4int fFluo; + G4double Annihil_x; + G4double Annihil_y; + G4double Annihil_z; +}; + +#endif diff --git a/examples/advanced/human_phantom/include/G4HumanPhantomSteppingAction.hh b/examples/advanced/eFLASH_radiotherapy/include/FlashSteppingAction.hh similarity index 78% rename from examples/advanced/human_phantom/include/G4HumanPhantomSteppingAction.hh rename to examples/advanced/eFLASH_radiotherapy/include/FlashSteppingAction.hh index d6d3574b8a..f396de1d94 100644 --- a/examples/advanced/human_phantom/include/G4HumanPhantomSteppingAction.hh +++ b/examples/advanced/eFLASH_radiotherapy/include/FlashSteppingAction.hh @@ -23,22 +23,29 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// Previous authors: G. Guerrieri, S. Guatelli and M. G. Pia, INFN Genova, Italy -// Authors (since 2007): S. Guatelli,University of Wollongong, Australia -// Contributions by F. Ambroglini INFN Perugia, Italy // +/// \file FlashSteppingAction.hh +/// \brief Definition of the FlashSteppingAction class -#ifndef G4HumanPhantomSteppingAction_h -#define G4HumanPhantomSteppingAction_h 1 +#ifndef FlashSteppingAction_h +#define FlashSteppingAction_h 1 #include "G4UserSteppingAction.hh" #include "globals.hh" +#include +class FlashEventAction; -class G4HumanPhantomSteppingAction : public G4UserSteppingAction -{ - public: - G4HumanPhantomSteppingAction(); - ~G4HumanPhantomSteppingAction(); - void UserSteppingAction(const G4Step*); +class G4LogicalVolume; + +class FlashSteppingAction : public G4UserSteppingAction { +public: + FlashSteppingAction(FlashEventAction *); + virtual ~FlashSteppingAction(); + + virtual void UserSteppingAction(const G4Step *); + +private: + // FlashEventAction *fEventAction; }; + #endif diff --git a/examples/advanced/human_phantom/include/G4VoxelBreastFactory.hh b/examples/advanced/eFLASH_radiotherapy/include/FlashTrackingAction.hh similarity index 69% rename from examples/advanced/human_phantom/include/G4VoxelBreastFactory.hh rename to examples/advanced/eFLASH_radiotherapy/include/FlashTrackingAction.hh index ce3fc39f2b..d2b4ce7df9 100644 --- a/examples/advanced/human_phantom/include/G4VoxelBreastFactory.hh +++ b/examples/advanced/eFLASH_radiotherapy/include/FlashTrackingAction.hh @@ -23,31 +23,34 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// Previous authors: G. Guerrieri, S. Guatelli and M. G. Pia, INFN Genova, Italy -// Authors (since 2007): S. Guatelli,University of Wollongong, Australia -// Contributions by F. Ambroglini INFN Perugia, Italy +/// \file runAndEvent/Flash/include/FlashTrackingAction.hh +/// \brief Definition of the FlashTrackingAction class // // -#ifndef G4VoxelBreastFactory_h -#define G4VoxelBreastFactory_h 1 +#ifndef FlashTrackingAction_h +#define FlashTrackingAction_h 1 -#include "G4VBodyFactory.hh" -#include "G4VOrgan.hh" -#include -class G4VBodyFactory; -class G4VPhysicalVolume; -class G4VOrgan; +#include "G4UserTrackingAction.hh" +#include +// +/// User tracking action class +/// +/// - void PreUserTrackingAction(const G4Track*) +/// sets a concrete user trajectory class object, FlashTrajectory +/// +/// - void PostUserTrackingAction(const G4Track*) +/// does nothing +// +class FlashTrackingAction : public G4UserTrackingAction { -class G4VoxelBreastFactory: public G4VBodyFactory -{ -public: - G4VoxelBreastFactory(); - ~G4VoxelBreastFactory(); - G4VPhysicalVolume* CreateOrgan(const G4String&, G4VPhysicalVolume*, - const G4String&,G4bool,G4bool); - + public: + FlashTrackingAction() ; + virtual ~FlashTrackingAction(); + + virtual void PreUserTrackingAction(const G4Track*); + virtual void PostUserTrackingAction(const G4Track*); private: - std::map organ; + std::ofstream EndFile; }; + #endif diff --git a/examples/advanced/eFLASH_radiotherapy/init_vis.mac b/examples/advanced/eFLASH_radiotherapy/init_vis.mac new file mode 100644 index 0000000000..ba01bb141c --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/init_vis.mac @@ -0,0 +1,14 @@ +# Macro file for the initialization +# in interactive session +# +# Set some default verbose +/control/verbose 1 +/run/verbose 1 +# +# +# Initialize kernel +# +# Visualization setting +/run/initialize +/control/execute vis.mac + diff --git a/examples/advanced/eFLASH_radiotherapy/run.mac b/examples/advanced/eFLASH_radiotherapy/run.mac new file mode 100644 index 0000000000..da256adff8 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/run.mac @@ -0,0 +1,40 @@ +######################### +# Set of the verboses +# +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 1 +/event/verbose 0 + +########################## +# Initialisation procedure +# +/run/initialize + +###########BEAM############## + +##Custom Histogram (ElectronFlash)######################## +/control/execute 9MeVEF.mac +#/control/execute 7MeVEF.mac +######################### + +# Scoring mesh is used to calculate +# the dose in the phantom + +/score/create/boxMesh boxMesh_1 + +# scorer for dose in water phantom + +/score/mesh/boxSize 60 2 2 mm +/score/mesh/nBin 120 1 1 +/score/mesh/translate/xyz 60 0 0 mm +/score/quantity/doseDeposit dose Gy + +/score/close + +/score/list + +/run/beamOn 500000 + +/score/dumpQuantityToFile boxMesh_1 dose dose.out + diff --git a/examples/advanced/eFLASH_radiotherapy/src/Applicator.cc b/examples/advanced/eFLASH_radiotherapy/src/Applicator.cc new file mode 100644 index 0000000000..157a8eb2e7 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/src/Applicator.cc @@ -0,0 +1,735 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// This is the first version of Flash, a Geant4-based application +// +// +////////////////////////////////////////////////////////////////////////////////////////////// + +#include "Applicator.hh" +#include "FlashDetectorConstruction.hh" +#include "G4Box.hh" +#include "G4Colour.hh" +#include "G4Cons.hh" +#include "G4LogicalVolume.hh" +#include "G4NistElementBuilder.hh" +#include "G4NistManager.hh" +#include "G4PVPlacement.hh" +#include "G4RotationMatrix.hh" +#include "G4RunManager.hh" +#include "G4SubtractionSolid.hh" +#include "G4SystemOfUnits.hh" +#include "G4Tubs.hh" +#include "G4VisAttributes.hh" +#include "globals.hh" + +Applicator::Applicator(G4VPhysicalVolume *physicalTreatmentRoom) + : fMotherPhys(physicalTreatmentRoom), + + + solidFTFlash(0), physiFTFlash(0) { + ConstructCollimator(fMotherPhys); + + + +} + +Applicator::~Applicator() {} + +void Applicator::ConstructCollimator(G4VPhysicalVolume *) { + // Sets default geometry and materials + SetDefaultDimensions(); + SetOuterRadius(55*mm); + SetApplicatorLength(300*mm); + // Construct the whole Applicator Beam Line + ConstructApplicator(); +} + +void Applicator::SetDefaultDimensions() { + + white = new G4VisAttributes(G4Colour()); + white->SetVisibility(true); + + blue = new G4VisAttributes(G4Colour(0., 0., 1.)); + blue->SetVisibility(true); + + gray = new G4VisAttributes(G4Colour(0.5, 0.5, 0.5)); + gray->SetVisibility(true); + + red = new G4VisAttributes(G4Colour(1., 0., 0.)); + red->SetVisibility(true); + + yellow = new G4VisAttributes(G4Colour(1., 1., 0.)); + yellow->SetVisibility(true); + + green = new G4VisAttributes(G4Colour(25 / 255., 255 / 255., 25 / 255.)); + green->SetVisibility(true); + + darkGreen = new G4VisAttributes(G4Colour(0 / 255., 100 / 255., 0 / 255.)); + darkGreen->SetVisibility(true); + + darkOrange3 = + new G4VisAttributes(G4Colour(205 / 255., 102 / 255., 000 / 255.)); + darkOrange3->SetVisibility(true); + + skyBlue = new G4VisAttributes(G4Colour(135 / 255., 206 / 255., 235 / 255.)); + skyBlue->SetVisibility(true); + + magenta = new G4VisAttributes(G4Colour(255 / 255., 0 / 255., 255 / 255.)); + magenta->SetVisibility(true); + + + fInitial_pos = -100*cm; //set the same position in FlashPrimaryGeneratorAction.cc + // Geometry APPLICATOR DEFAULTS + + + + G4double defaultinnerRadiusFirstApplicatorFlash = + fOuterRadiusFirstApplicatorFlash - 5. * mm; + fInnerRadiusFirstApplicatorFlash = defaultinnerRadiusFirstApplicatorFlash; + + // DEFAULT DEFINITION OF THE MATERIALS + + // ELEMENTS + G4double density; + G4int ncomponents; + G4bool isotopes = false; + aluminumNist = + G4NistManager::Instance()->FindOrBuildMaterial("G4_Al", isotopes); + + + Fe = G4NistManager::Instance()->FindOrBuildMaterial("G4_Fe"); + + PVDF = new G4Material("PVDF", density=1780 *kg/m3, ncomponents=3); + + + + PVDF->AddElement(G4NistManager::Instance()->FindOrBuildElement("C"), 34 * perCent); + PVDF->AddElement(G4NistManager::Instance()->FindOrBuildElement("H"), 33 * perCent); + PVDF->AddElement(G4NistManager::Instance()->FindOrBuildElement("F"), 33 * perCent); + + + + FILM= new G4Material("FILM", density=1430 *kg/m3, ncomponents = 4); + + FILM->AddElement(G4NistManager::Instance()->FindOrBuildElement("C"), 69 * perCent); + FILM->AddElement(G4NistManager::Instance()->FindOrBuildElement("H"), 3 * perCent); + FILM->AddElement(G4NistManager::Instance()->FindOrBuildElement("N"), 7 * perCent); + FILM->AddElement(G4NistManager::Instance()->FindOrBuildElement("O"), 21 * perCent); + + + + + G4Material *galacticNist = + G4NistManager::Instance()->FindOrBuildMaterial("G4_Galactic", isotopes); + PMMA = + G4NistManager::Instance()->FindOrBuildMaterial("G4_PLEXIGLASS", isotopes); + + G4Material *titanioNist = + G4NistManager::Instance()->FindOrBuildMaterial("G4_Ti", isotopes); + + + // MATERIAL ASSIGNMENT + + // Material of the APPLICATOR Flash + fFirstApplicatorMaterialFlash = PMMA; + + // Titanium window + FTFlashMaterialFlash = titanioNist; + + // Vacuum Source + VSFlashMaterialFlash = galacticNist; +} + +void Applicator::ConstructApplicator() { + + // Components of the Applicator + + FlashBeamLineVacuumSource(); + FlashBeamLineTitaniumWindows(); + FlashVWAlcover(); + FlashAlCover2(); + FlashExitBit(); + FlashToroid(); + OverCover(); + + MonitorChamber(); + Flash_connector(); + Bigconnector(); + Bigconnector2(); + FlashBeamLineApplicator();//modify this function for applicator lenght + + + +} + +void Applicator::FlashBeamLineVacuumSource() { + // ---------------------------------------------------------------// + // Vacuum Source // + // ---------------------------------------------------------------// + + G4double phi1 = 90. * deg; + + G4RotationMatrix rm1; + rm1.rotateY(phi1); + + fOutRadiusVSFlash = 20 * mm; + const G4double innRadiusVSFlash = 0. * mm; + fHightVSFlash = 8 * mm; + const G4double startAngleVSFlash = 0. * deg; + const G4double spanningAngleVSFlash = 360. * deg; + fXPositionVSFlash = fInitial_pos-fHightVSFlash-0.055/2*mm; //0.055 is titanium window + + solidVSFlash = + new G4Tubs("VSFlash", innRadiusVSFlash, fOutRadiusVSFlash, fHightVSFlash, + startAngleVSFlash, spanningAngleVSFlash); + + G4LogicalVolume *logVSFlash = new G4LogicalVolume( + solidVSFlash, VSFlashMaterialFlash, "VSFlash", 0, 0, 0); + + physiVSFlash = new G4PVPlacement( + G4Transform3D(rm1, G4ThreeVector((fXPositionVSFlash), 0., 0.)), "VSFlash", + logVSFlash, fMotherPhys, false, 0); + + logVSFlash->SetVisAttributes(green); +} + +void Applicator::FlashBeamLineTitaniumWindows() { + // ---------------------------------------------------------------// + // Titanium Window // + // ---------------------------------------------------------------// + // with just this piece ssd=1.6cm + G4double phi2 = 90. * deg; + + G4RotationMatrix rm2; + rm2.rotateY(phi2); + + fOutRadiusFTFlash = fOutRadiusVSFlash; + const G4double innRadiusFTFlash = 19 * mm; + fHightFTFlash = 0.055/2 * mm; + const G4double startAngleFTFlash = 0. * deg; + const G4double spanningAngleFTFlash = 360. * deg; + const G4double XPositionFTFlash = fInitial_pos ; + + solidFTFlash = + new G4Tubs("FTFlash", innRadiusFTFlash, fOutRadiusFTFlash, fHightFTFlash, + startAngleFTFlash, spanningAngleFTFlash); + + G4LogicalVolume *logFTFlash = new G4LogicalVolume( + solidFTFlash, FTFlashMaterialFlash, "FTFlash", 0, 0, 0); + + physiFTFlash = new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((XPositionFTFlash), 0., 0.)), "FTFlash", + logFTFlash, fMotherPhys, false, 0); + + logFTFlash->SetVisAttributes(yellow); +} +void Applicator::FlashVWAlcover(){ + + G4double phi2 = 90. * deg; + + G4RotationMatrix rm2; + rm2.rotateY(phi2); + + + const G4double innRadius = fOutRadiusVSFlash; + fOutRadius = innRadius+8*mm; + const G4double hight = fHightVSFlash; + const G4double startAngle = 0. * deg; + const G4double spanningAngle = 360. * deg; + const G4double XPosition = fXPositionVSFlash ; + + G4VSolid * solid = + new G4Tubs("cover1", innRadius, fOutRadius, hight, + startAngle, spanningAngle); + + G4LogicalVolume *log = new G4LogicalVolume( + solid, aluminumNist, "cover1log", 0, 0, 0); + + new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((XPosition), 0., 0.)), "cover1phys", + log, fMotherPhys, false, 0); + + log->SetVisAttributes(white); + + +} +void Applicator::FlashAlCover2(){ + +G4double phi2 = 90. * deg; + + G4RotationMatrix rm2; + rm2.rotateY(phi2); + + + const G4double innRadius = fOutRadiusVSFlash; + + const G4double hight = fHightVSFlash+fHightFTFlash; + const G4double startAngle = 0. * deg; + const G4double spanningAngle = 360. * deg; + const G4double XPosition = fInitial_pos+hight+fHightFTFlash; + + G4VSolid * solid = + new G4Tubs("cover1", innRadius, fOutRadius, hight, + startAngle, spanningAngle); + + G4LogicalVolume *log = new G4LogicalVolume( + solid, aluminumNist, "cover1log", 0, 0, 0); + +new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((XPosition), 0., 0.)), "cover1phys", + log, fMotherPhys, false, 0); + + log->SetVisAttributes(red); + + fInitial_pos=fInitial_pos + fHightFTFlash; +} +void Applicator::FlashExitBit(){ + +G4double phi2 = 90. * deg; + + G4RotationMatrix rm2; + rm2.rotateY(phi2); + + + const G4double innRadius = 0*mm; + fOutRadius = fOutRadiusVSFlash; + const G4double hight = 16/2*mm; + const G4double startAngle = 0. * deg; + const G4double spanningAngle = 360. * deg; + const G4double XPosition = fInitial_pos+hight; + + + G4VSolid *t1 = new G4Tubs("t1", innRadius, fOutRadius, hight, + startAngle, spanningAngle); + + G4VSolid *t2 = new G4Cons("t2", 0*mm,13/2*mm, 0*mm,38/2*mm,16.1/2*mm, startAngle,spanningAngle); + + G4RotationMatrix rotm_t2 = G4RotationMatrix(); + rotm_t2.rotateX(0 * deg); + G4ThreeVector zTrans(0, 0, 0); + + G4SubtractionSolid *hollowcover = + new G4SubtractionSolid("hollowcover_log", t1, t2, 0, zTrans); + + + G4LogicalVolume *logic = + new G4LogicalVolume(hollowcover, aluminumNist, "hollowcover", 0, 0, 0); + + new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((XPosition), 0., 0.)), "cover1phys", + logic, fMotherPhys, false, 0); + + logic->SetVisAttributes(darkOrange3); +fInitial_pos=XPosition+hight; +} +void Applicator::FlashToroid(){ + +G4double phi2 = 90. * deg; + + G4RotationMatrix rm2; + rm2.rotateY(phi2); + + + const G4double innRadius = 50.8/2*mm; + fToroid_outRadius = innRadius + 45*mm; + fToroid_hight = 50.8/2*mm; + const G4double startAngle = 0. * deg; + const G4double spanningAngle = 360. * deg; + fToroid_XPosition = fInitial_pos+fToroid_hight + 8*mm; + + G4VSolid * solid = + new G4Tubs("toroid", innRadius, fToroid_outRadius, fToroid_hight, + startAngle, spanningAngle); + + G4LogicalVolume *log = new G4LogicalVolume( + solid, Fe, "toroidlog", 0, 0, 0); + + new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((fToroid_XPosition), 0., 0.)), "toroidphys", + log, fMotherPhys, false, 0); + + log->SetVisAttributes(blue); + +fInitial_pos=fToroid_XPosition+fToroid_hight; +} +void Applicator::OverCover(){ + +G4double phi2 = 90. * deg; + + G4RotationMatrix rm2; + rm2.rotateY(phi2); + + + const G4double innRadius = fOutRadius; + const G4double out_Radius = 5*fOutRadius ; + fBigcover_hight = 7.5*mm; + const G4double startAngle = 0. * deg; + const G4double spanningAngle = 360. * deg; + fBigcover_XPosition = fXPositionVSFlash - fHightVSFlash+fBigcover_hight; + + G4VSolid * solid = + new G4Tubs("coverbig", innRadius, out_Radius, fBigcover_hight, + startAngle, spanningAngle); + + G4LogicalVolume *log = new G4LogicalVolume( + solid, aluminumNist, "coverbig_log", 0, 0, 0); + + new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((fBigcover_XPosition), 0., 0.)), "coverbig_phys", + log, fMotherPhys, false, 0); + + log->SetVisAttributes(skyBlue); + + + const G4double innRadius_2 = fToroid_outRadius; + const G4double out_Radius_2 = innRadius_2 + 1.2*cm ; + const G4double fBigcover_hight_2 = 30*mm; + const G4double startAngle_2 = 0. * deg; + const G4double spanningAngle_2 = 360. * deg; + const double fBigcover_XPosition_2 = fBigcover_XPosition+fBigcover_hight_2+fBigcover_hight; + + G4VSolid * solid_2 = + new G4Tubs("coverbig_2", innRadius_2, out_Radius_2, fBigcover_hight_2, + startAngle_2, spanningAngle_2); + + G4LogicalVolume *log_2 = new G4LogicalVolume( + solid_2, aluminumNist, "coverbig_log", 0, 0, 0); + + new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((fBigcover_XPosition_2), 0., 0.)), "coverbig_phys", + log_2, fMotherPhys, false, 0); + + log_2->SetVisAttributes(green); + + +} + +void Applicator::OverCover2() { + +G4double phi2 = 90. * deg; + + G4RotationMatrix rm2; + rm2.rotateY(phi2); + + + const G4double innRadius = fToroid_outRadius; + const G4double out_Radius = innRadius+40*mm ; + const G4double hight = 34*mm; + const G4double startAngle = 0. * deg; + const G4double spanningAngle = 360. * deg; + const G4double XPosition = fBigcover_XPosition+fBigcover_hight+hight; + + G4VSolid * solid = + new G4Tubs("coverbig", innRadius, out_Radius, hight, + startAngle, spanningAngle); + + G4LogicalVolume *log = new G4LogicalVolume( + solid, aluminumNist, "coverbig_log", 0, 0, 0); + +new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((XPosition), 0., 0.)), "coverbig_phys", + log, fMotherPhys, false, 0); + + log->SetVisAttributes(yellow); + +} + +void Applicator::MonitorChamber(){ + +G4double phi2 = 90. * deg; + + G4RotationMatrix rm2; + rm2.rotateY(phi2); + + + const G4double innRadius = 20*mm; + const G4double out_Radius = innRadius+1.7*mm ; + const G4double hight = 3*mm; + const G4double startAngle = 0. * deg; + const G4double spanningAngle = 360. * deg; + G4double XPosition = fInitial_pos+hight; + + G4VSolid * solid = + new G4Tubs("first", innRadius, out_Radius, hight, + startAngle, spanningAngle); + + + +G4LogicalVolume *log = new G4LogicalVolume( + solid, PVDF, "chamberfirst_log", 0, 0, 0); + + new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((XPosition), 0., 0.)), "coverbig_phys", + log, fMotherPhys, false, 0); + + log->SetVisAttributes(red); + + G4VSolid * solid_pvdf= + new G4Tubs("s_pvdf", innRadius, out_Radius, 0.5*mm, + startAngle, spanningAngle); + + + G4LogicalVolume *log_pvdf= new G4LogicalVolume( + solid_pvdf, PVDF, "pvdf_log", 0, 0, 0); + + G4VSolid * solid_film = + new G4Tubs("s_film", innRadius, out_Radius, 0.05/2*mm, + startAngle, spanningAngle); + G4LogicalVolume *log_film = new G4LogicalVolume( + solid_film, FILM, "ka_log", 0, 0, 0); + + G4VSolid * solid_al = + new G4Tubs("s_al", innRadius, out_Radius, 0.005/2*mm, + startAngle, spanningAngle); + + G4LogicalVolume *log_al = new G4LogicalVolume( + solid_al, aluminumNist, "al_log", 0, 0, 0); + XPosition=XPosition+hight; + + G4int j=0; + for(G4int i = 0;i<3;i++){ + XPosition=XPosition+(i+1)*0.05/2*mm; + new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((XPosition), 0., 0.)), "ka_phys", + log_film, fMotherPhys, false, j); + XPosition=XPosition+(i+1)*0.005/2*mm; + new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((XPosition), 0., 0.)), "al_phys", + log_al, fMotherPhys, false, j); + + XPosition=XPosition+(i+1)*1/2*mm; + new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((XPosition), 0., 0.)), "pvdf_phys", + log_pvdf, fMotherPhys, false, j); + + + + } + fChamberpos = XPosition +1/2*mm; + log_film->SetVisAttributes(green); + log_al->SetVisAttributes(blue); + log_pvdf->SetVisAttributes(yellow); + + +} + +void Applicator::Flash_connector(){ + +G4double phi2 = 90. * deg; + + G4RotationMatrix rm2; + rm2.rotateY(phi2); + + + const G4double innRadius = 10*cm; + const G4double out_Radius = innRadius+2.5*cm ; + const G4double hight = 15*mm; + const G4double startAngle = 0. * deg; + const G4double spanningAngle = 360. * deg; + const G4double XPosition = fChamberpos+hight; + + G4VSolid * solid = + new G4Tubs("cover", innRadius, out_Radius, hight, + startAngle, spanningAngle); + + G4LogicalVolume *log = new G4LogicalVolume( + solid, aluminumNist, "coverbig_log", 0, 0, 0); + + new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((XPosition), 0., 0.)), "coverbig_phys", + log, fMotherPhys, false, 0); + + log->SetVisAttributes(magenta); + + + G4VSolid * solid_ = + new G4Tubs("littlecover", 22*mm, innRadius, 0.2*mm, + startAngle, spanningAngle); + G4LogicalVolume *log_ = new G4LogicalVolume( + solid_, aluminumNist, "covers_log", 0, 0, 0); + + new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((fChamberpos+0.2*mm), 0., 0.)), "coverl_phys", + log_, fMotherPhys, false, 0); +log_->SetVisAttributes(green); + +fInitial_pos=XPosition+hight; +} + +void Applicator::Bigconnector() { + +G4double phi2 = 90. * deg; + + G4RotationMatrix rm2; + rm2.rotateY(phi2); + + + const G4double innRadius = 10*cm; + const G4double out_Radius = innRadius+30*mm ; + const G4double hight = 7.05*cm + 0.0075/2*mm; + const G4double startAngle = 0. * deg; + const G4double spanningAngle = 360. * deg; + const G4double XPosition = fInitial_pos+hight; + + G4VSolid * solid = + new G4Tubs("coverbig", innRadius, out_Radius, hight, + startAngle, spanningAngle); + + G4LogicalVolume *log = new G4LogicalVolume( + solid, aluminumNist, "coverbig_log", 0, 0, 0); + + new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((XPosition), 0., 0.)), "coverbig_phys", + log, fMotherPhys, false, 0); + + log->SetVisAttributes(red); +fInitial_pos=XPosition+hight; +} +void Applicator::Bigconnector2() { + +G4double phi2 = 90. * deg; + + G4RotationMatrix rm2; + rm2.rotateY(phi2); + + + const G4double innRadius = 6*cm; + const G4double out_Radius = innRadius+70*mm ; + const G4double hight = 4.4*cm-12/4*mm; + const G4double startAngle = 0. * deg; + const G4double spanningAngle = 360. * deg; + const G4double XPosition = fInitial_pos+hight; + + G4VSolid * solid = + new G4Tubs("coverbig", innRadius, out_Radius, hight, + startAngle, spanningAngle); + + + + + G4LogicalVolume *log = new G4LogicalVolume( + solid, PVDF, "coverbig_log", 0, 0, 0); + + new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((XPosition), 0., 0.)), "coverbig_phys", + log, fMotherPhys, false, 0); + + log->SetVisAttributes(blue); +fInitial_pos=XPosition+hight; +} + +void Applicator::Bigconnector3() {//this is a piece of the applicator that connects the tube to the optics + +G4double phi2 = 90. * deg; + + G4RotationMatrix rm2; + rm2.rotateY(phi2); + + + const G4double innRadius = 6*cm; + const G4double out_Radius = innRadius+60*mm ; + const G4double hight = 3.4*cm-11/4*mm; + const G4double startAngle = 0. * deg; + const G4double spanningAngle = 360. * deg; + const G4double XPosition = fInitial_pos+hight; + + + + G4VSolid *t1 = new G4Tubs("t1_", 0*mm, out_Radius, hight, + startAngle, spanningAngle); + + G4VSolid *t2 = new G4Cons("t2_", 0*mm,60*mm, 0*mm,fInnerRadiusFirstApplicatorFlash,hight +0.1*mm, startAngle,spanningAngle); + + + G4ThreeVector zTrans(0, 0, 0); + + G4SubtractionSolid *hollowcover = + new G4SubtractionSolid("hollowcover_log_", t1, t2, 0, zTrans); + + G4LogicalVolume *log = new G4LogicalVolume( + hollowcover, PMMA, "coverbig_log_", 0, 0, 0); + + new G4PVPlacement( + G4Transform3D(rm2, G4ThreeVector((XPosition), 0., 0.)), "coverbig_phys_", + log, fMotherPhys, false, 0); + + log->SetVisAttributes(yellow); +fInitial_pos=XPosition+hight; +} + +void Applicator::FlashBeamLineApplicator() { + + + + + // hightFinalApplicatorFlash = 300 * mm;//modify this for length of applicator + if (fHightFinalApplicatorFlash != 0*mm){//set to zero if you do not want the applicator + Bigconnector3(); //comment this line to remove the applicator piece + const G4double startAngleFirstApplicatorFlash = 0. * deg; + const G4double spanningAngleFirstApplicatorFlash = 360. * deg; + fFinalApplicatorXPositionFlash = fInitial_pos+fHightFinalApplicatorFlash; + + G4double phi6 = 90. * deg; + + G4RotationMatrix rm6; + rm6.rotateY(phi6); + + fSolidFirstApplicatorFlash = new G4Tubs( + "FirstApplicatorFlash", fInnerRadiusFirstApplicatorFlash, + fOuterRadiusFirstApplicatorFlash, fHightFinalApplicatorFlash, + startAngleFirstApplicatorFlash, spanningAngleFirstApplicatorFlash); + + G4LogicalVolume *logFirstApplicatorFlash = new G4LogicalVolume( + fSolidFirstApplicatorFlash, fFirstApplicatorMaterialFlash, + "FirstApplicatorFlash", 0, 0, 0); + + fPhysiFirstApplicatorFlash = new G4PVPlacement( + G4Transform3D(rm6, + G4ThreeVector((fFinalApplicatorXPositionFlash), 0., 0.)), + "FirstApplicatorFlash", logFirstApplicatorFlash, fMotherPhys, false, 0); + + logFirstApplicatorFlash->SetVisAttributes(magenta); } else{fFinalApplicatorXPositionFlash = fInitial_pos+3*cm;} +} + + +void Applicator::SetOuterRadius(G4double radius) +{ + + fOuterRadiusFirstApplicatorFlash=radius; + fInnerRadiusFirstApplicatorFlash= fOuterRadiusFirstApplicatorFlash-5*mm; + +} + +void Applicator::SetApplicatorLength(G4double length) +{ + fHightFinalApplicatorFlash=length; + +} + + + + + diff --git a/environments/g4py/examples/demos/TestEm0/module/RunAction.hh b/examples/advanced/eFLASH_radiotherapy/src/FlashActionInitialization.cc similarity index 69% rename from environments/g4py/examples/demos/TestEm0/module/RunAction.hh rename to examples/advanced/eFLASH_radiotherapy/src/FlashActionInitialization.cc index 1818b9be26..47a54a66ad 100644 --- a/environments/g4py/examples/demos/TestEm0/module/RunAction.hh +++ b/examples/advanced/eFLASH_radiotherapy/src/FlashActionInitialization.cc @@ -24,44 +24,55 @@ // ******************************************************************** // // -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +/// \file FlashActionInitialization.cc +/// \brief Implementation of the FlashActionInitialization class + +#include "FlashActionInitialization.hh" +#include "FlashEventAction.hh" +#include "FlashPrimaryGeneratorAction.hh" +#include "FlashSteppingAction.hh" +#include "FlashRunAction.hh" + -#ifndef RunAction_h -#define RunAction_h 1 -#include "G4UserRunAction.hh" -#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class G4Run; -class DetectorConstruction; -class PrimaryGeneratorAction; +FlashActionInitialization::FlashActionInitialization() + : G4VUserActionInitialization() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class RunAction : public G4UserRunAction -{ - public: - RunAction(DetectorConstruction*, PrimaryGeneratorAction*); - ~RunAction(); +FlashActionInitialization::~FlashActionInitialization() - public: - void BeginOfRunAction(const G4Run*); - void EndOfRunAction(const G4Run*); +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void FlashActionInitialization::BuildForMaster() const { + FlashRunAction *runAction = new FlashRunAction; + SetUserAction(runAction); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void FlashActionInitialization::Build() const { + SetUserAction(new FlashPrimaryGeneratorAction); + + FlashRunAction *runAction = new FlashRunAction; + SetUserAction(runAction); + + FlashEventAction *eventAction = new FlashEventAction(); + + SetUserAction(eventAction); + + + SetUserAction(new FlashSteppingAction(eventAction)); - void GetCuts(); - void CriticalEnergy(); - - private: - DetectorConstruction* detector; - PrimaryGeneratorAction* primary; - G4double rangeCut[3]; - G4double energyCut[3]; -}; + + + + +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - diff --git a/examples/advanced/eFLASH_radiotherapy/src/FlashDetectorConstruction.cc b/examples/advanced/eFLASH_radiotherapy/src/FlashDetectorConstruction.cc new file mode 100644 index 0000000000..334b2f87a3 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/src/FlashDetectorConstruction.cc @@ -0,0 +1,352 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +/// \file FlashDetectorConstruction.cc +/// \brief Implementation of the FlashDetectorConstruction class + + +#include "FlashDetectorConstruction.hh" + +#include "G4RunManager.hh" + +#include "G4Material.hh" +#include "G4NistManager.hh" +#include "G4Region.hh" +#include "G4SDManager.hh" + +#include "G4AutoDelete.hh" +#include "G4Box.hh" +#include "G4GlobalMagFieldMessenger.hh" +#include "G4LogicalVolume.hh" +#include "G4PVParameterised.hh" +#include "G4PVPlacement.hh" +#include "G4Tubs.hh" + +#include "G4GeometryManager.hh" +#include "G4GeometryTolerance.hh" + +#include "G4UserLimits.hh" + +#include "G4Colour.hh" +#include "G4VisAttributes.hh" + +#include "G4SystemOfUnits.hh" + +#include "Applicator.hh" + + +#include "G4MaterialPropertiesTable.hh" + +#include "G4PSEnergyDeposit.hh" +#include "G4PhysicalConstants.hh" +#include "G4SystemOfUnits.hh" +#include "G4VPrimitiveScorer.hh" +#include "G4VisAttributes.hh" +#include "FlashDetectorMessenger.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +FlashDetectorConstruction::FlashDetectorConstruction() + : G4VUserDetectorConstruction(), physicalTreatmentRoom(0),logicTreatmentRoom(0), Collimator(0), fPhantom(0), +fPhantomLogicalVolume(0),fPhant_phys(0), + fCheckOverlaps(true) { + + DefineMaterials(); + fDetectorMessenger = new FlashDetectorMessenger(this); + + SetPhantomSize(30. *cm, 30. *cm, 30. *cm); + SetAirGap(0*cm); // Set the air gap between the water phantom and the end of the applicator + SetDetectorThickness(10*um); + SetDetector_subThickness(370*um); + SetDetectorWidth(5*mm); + SetAirGap_water_detector(0*cm); // Set the air gap between the end of the water phantom and the entrance of the detector + + + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +FlashDetectorConstruction::~FlashDetectorConstruction() { + + delete fDetectorMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void FlashDetectorConstruction::DefineMaterials() { + nist = G4NistManager::Instance(); +//write here a function to define custom materials +G4bool isotopes = false; + Si = nist->FindOrBuildElement("Si", isotopes); + C = nist->FindOrBuildElement("C", isotopes); + + } + + +// +G4VPhysicalVolume * +FlashDetectorConstruction::ConstructPhantom(G4double CollPos) { +//This function creates a cubic phantom with the point Collpos on the surface of the cube. + + fPhantomMaterial = nist->FindOrBuildMaterial("G4_WATER"); + + fPosition_coefficient = CollPos; + + fPhantom_coordinateX = (fPosition_coefficient * mm + fPhantomSizeX / 2); + + fPhantomPosition = G4ThreeVector(fPhantom_coordinateX, 0. * mm, 0. * mm); //phantom is constructed with the entrance surface attached to the applicator + + + // Definition of the solid volume of the Phantom + fPhantom = new G4Box("Phantom", fPhantomSizeX / 2, fPhantomSizeY / 2, + fPhantomSizeZ / 2); + + // Definition of the logical volume of the Phantom + fPhantomLogicalVolume = + new G4LogicalVolume(fPhantom, fPhantomMaterial, "phantomLog", 0, 0, 0); + + // Definition of the physical volume of the Phantom + fPhant_phys = + new G4PVPlacement(0, fPhantomPosition, "phantomPhys", fPhantomLogicalVolume, + physicalTreatmentRoom, false, 0); +//define the region to set cuts in FlashPhysicsList.cc and step limit + G4Region *PhantomRegion = new G4Region("Phantom_reg"); + fPhantomLogicalVolume->SetRegion(PhantomRegion); + PhantomRegion->AddRootLogicalVolume(fPhantomLogicalVolume); + + // Visualisation attributes of the phantom + red = new G4VisAttributes(G4Colour(0 / 255., 255 / 255., 0 / 255.)); + red->SetVisibility(true); + + blue = new G4VisAttributes(G4Colour(0 / 255., 0. / 255., 255. / 255.)); + blue->SetVisibility(true); + + fPhantomLogicalVolume->SetVisAttributes(red); +//set step limit in phantom + G4double maxStep = 0.1 * mm; + fStepLimit = new G4UserLimits(maxStep); + fPhantomLogicalVolume->SetUserLimits(fStepLimit); + + return fPhant_phys; +} + +G4VPhysicalVolume * +FlashDetectorConstruction::ConstructDetector(){ + //Detector + + + G4double fDensity_SiC=3.22*g/cm3; + + SiC=new G4Material("SiC", fDensity_SiC,2); + SiC->AddElement(Si,1); + SiC->AddElement(C,1); + + fDetectorMaterial=SiC; + + + fDetectorPosition=fPhantom_coordinateX+fAirGap+fPhantomSizeX/2+fDet_thickness/2+fAirGap_phantom_det; + + fDet_box = new G4Box("Detector",fDet_thickness/2,fDet_width/2,fDet_width/2); + + // Definition of the logical volume of the Detector + fDetLogicalVolume = + new G4LogicalVolume(fDet_box, fDetectorMaterial, "DetectorLog", 0, 0, 0); + fDet_phys = new G4PVPlacement(0,G4ThreeVector(fDetectorPosition, 0. * mm, 0. * mm), "DetPhys",fDetLogicalVolume,physicalTreatmentRoom,false, 0, fCheckOverlaps); + + + fDet_sub = new G4Box("Det_sub",fDet_sub_thickness/2,fDet_width/2,fDet_width/2); + + // Definition of the logical volume of the Detector + fDet_sub_LogicalVolume = + new G4LogicalVolume(fDet_sub, fDetectorMaterial, "Det_sub_Log", 0, 0, 0); + fDet_sub_phys = new G4PVPlacement(0,G4ThreeVector(fDetectorPosition+fDet_thickness+fDet_sub_thickness/2, 0. * mm, 0. * mm), "Det_sub_Phys",fDet_sub_LogicalVolume,physicalTreatmentRoom,false, 0, fCheckOverlaps); + + + return fDet_phys; + +} + +G4VPhysicalVolume *FlashDetectorConstruction::Construct() { + // ----------------------------- + // Treatment room - World volume + //------------------------------ + // Treatment room sizes + const G4double worldX = 400.0 * cm; + const G4double worldY = 400.0 * cm; + const G4double worldZ = 400.0 * cm; + G4bool isotopes = false; + + airNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_AIR", isotopes); + // Air + // + + G4Box *treatmentRoom = new G4Box("TreatmentRoom", worldX, worldY, worldZ); + logicTreatmentRoom = new G4LogicalVolume(treatmentRoom, airNist, + "logicTreatmentRoom", 0, 0, 0); + physicalTreatmentRoom = + new G4PVPlacement(0, G4ThreeVector(), "physicalTreatmentRoom", + logicTreatmentRoom, 0, false, 0); + + // The treatment room is invisible in the Visualisation + logicTreatmentRoom->SetVisAttributes(G4VisAttributes::GetInvisible()); + + // ----------------------------- + // Applicator + phantom +Default dimensions + //------------------------------ + + + + + Collimator = new Applicator(physicalTreatmentRoom); + + + + fPhantom_physical = + ConstructPhantom(Collimator->fFinalApplicatorXPositionFlash + + Collimator->fHightFinalApplicatorFlash+fAirGap); + ConstructDetector(); + + + return physicalTreatmentRoom; +} + + + +void FlashDetectorConstruction::ConstructSDandField() { +//modify this function if you want to insert a sensitive detector +} + + +/////MESSANGER /// + +G4bool FlashDetectorConstruction::SetPhantomMaterial(G4String material) +{ + + if (G4Material* pMat = G4NistManager::Instance()->FindOrBuildMaterial(material, false) ) + { + fPhantomMaterial = pMat; + + if (fPhantomLogicalVolume) + { + + fPhantomLogicalVolume -> SetMaterial(pMat); + + G4RunManager::GetRunManager() -> PhysicsHasBeenModified(); + G4RunManager::GetRunManager() -> GeometryHasBeenModified(); + G4cout << "The material of Phantom/Detector has been changed to " << material << G4endl; + } + } + else + { + G4cout << "WARNING: material \"" << material << "\" doesn't exist in NIST elements/materials" + " table [located in $G4INSTALL/source/materials/src/G4NistMaterialBuilder.cc]" << G4endl; + G4cout << "Use command \"/parameter/nist\" to see full materials list!" << G4endl; + return false; + } + + return true; +} + + +void FlashDetectorConstruction::SetPhantomSize(G4double sizeX, G4double sizeY, G4double sizeZ) +{ + if (sizeX > 0.) fPhantomSizeX = sizeX; + if (sizeY > 0.) fPhantomSizeY = sizeY; + if (sizeZ > 0.) fPhantomSizeZ = sizeZ; +} + +void FlashDetectorConstruction::SetAirGap(G4double displ) +{ + + fAirGap=displ; +} + +G4bool FlashDetectorConstruction::SetDetectorMaterial(G4String material) +{ + + if (G4Material* pMat = G4NistManager::Instance()->FindOrBuildMaterial(material, false) ) + { + fDetectorMaterial = pMat; + + if (fDetLogicalVolume) + { + + fDetLogicalVolume -> SetMaterial(pMat); + + G4RunManager::GetRunManager() -> PhysicsHasBeenModified(); + G4RunManager::GetRunManager() -> GeometryHasBeenModified(); + G4cout << "The material of Phantom/Detector has been changed to " << material << G4endl; + } + } + else + { + G4cout << "WARNING: material \"" << material << "\" doesn't exist in NIST elements/materials" + " table [located in $G4INSTALL/source/materials/src/G4NistMaterialBuilder.cc]" << G4endl; + G4cout << "Use command \"/parameter/nist\" to see full materials list!" << G4endl; + return false; + } + + return true; +} + + + + +void FlashDetectorConstruction::SetDetectorThickness(G4double thickness) +{ + + fDet_thickness=thickness; +} + +void FlashDetectorConstruction::SetDetectorWidth(G4double width) +{ + + fDet_width=width; +} + +void FlashDetectorConstruction::SetDetector_subThickness(G4double thickness_sub) +{ + + fDet_sub_thickness= thickness_sub; +} + + + + + + void FlashDetectorConstruction::SetAirGap_water_detector(G4double spost) +{ + + fAirGap_phantom_det=spost; +} + + +void FlashDetectorConstruction::SetDetectorPosition(G4double position) +{ + + fDetectorPosition=position; +} diff --git a/examples/advanced/eFLASH_radiotherapy/src/FlashDetectorMessenger.cc b/examples/advanced/eFLASH_radiotherapy/src/FlashDetectorMessenger.cc new file mode 100644 index 0000000000..998fe9301a --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/src/FlashDetectorMessenger.cc @@ -0,0 +1,113 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +////////////////////////////////////////////////////////////////////////////////////////////// + +#include "FlashDetectorMessenger.hh" +#include "FlashDetectorConstruction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWith3VectorAndUnit.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" + +///////////////////////////////////////////////////////////////////////////// +FlashDetectorMessenger::FlashDetectorMessenger(FlashDetectorConstruction* detector) + :flashDetector(detector) +{ + // fChange Phantom size + fChangeThePhantomDir = new G4UIdirectory("/fChangePhantom/"); + fChangeThePhantomDir -> SetGuidance("Command to fChange the Phantom Size/position"); + + // fChange Phantom material + fChangeThePhantomMaterialCmd = new G4UIcmdWithAString("/changePhantom/material", this); + fChangeThePhantomMaterialCmd -> SetGuidance("fChange the Phantom and the detector material"); + fChangeThePhantomMaterialCmd -> SetParameterName("PhantomMaterial", false); + fChangeThePhantomMaterialCmd -> SetDefaultValue("G4_WATER"); + fChangeThePhantomMaterialCmd -> AvailableForStates(G4State_Idle); + + + + // fChange Detector size + fChangeTheDetectorDir = new G4UIdirectory("/changeDetector/"); + fChangeTheDetectorDir -> SetGuidance("Command to fChange the Detector Size"); + +// fChange Detector material + fChangeTheDetectorMaterialCmd = new G4UIcmdWithAString("/changeDetector/material", this); + fChangeTheDetectorMaterialCmd -> SetGuidance("fChange the Phantom and the detector material"); + fChangeTheDetectorMaterialCmd -> SetParameterName("PhantomMaterial", false); + + fChangeTheDetectorMaterialCmd -> AvailableForStates(G4State_Idle); + + + + fUpdateCmd = new G4UIcmdWithoutParameter("/changePhantom/update",this); + fUpdateCmd->SetGuidance("Update Phantom/Detector geometry."); + fUpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" "); + fUpdateCmd->SetGuidance("if you fChanged geometrical value(s)."); + fUpdateCmd->AvailableForStates(G4State_Idle); + + fUpdateCmd_d = new G4UIcmdWithoutParameter("/changeDetector/update",this); + fUpdateCmd_d->SetGuidance("Update Detector geometry."); + fUpdateCmd_d->SetGuidance("This command MUST be applied before \"beamOn\" "); + fUpdateCmd_d->SetGuidance("if you fChanged geometrical value(s)."); + fUpdateCmd_d->AvailableForStates(G4State_Idle); + + + + } + +///////////////////////////////////////////////////////////////////////////// +FlashDetectorMessenger::~FlashDetectorMessenger() +{ + + + delete fChangeThePhantomDir; + delete fChangeTheDetectorDir; + + delete fChangeThePhantomMaterialCmd; + delete fChangeTheDetectorMaterialCmd; + +} + +///////////////////////////////////////////////////////////////////////////// +void FlashDetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + + + if (command == fChangeThePhantomMaterialCmd) + { + flashDetector -> SetPhantomMaterial(newValue); + } + + else if (command == fChangeTheDetectorMaterialCmd) + { + flashDetector -> SetDetectorMaterial(newValue); + } + + + +} diff --git a/environments/g4py/source/processes/pyG4ProcVector.cc b/examples/advanced/eFLASH_radiotherapy/src/FlashEventAction.cc similarity index 64% rename from environments/g4py/source/processes/pyG4ProcVector.cc rename to examples/advanced/eFLASH_radiotherapy/src/FlashEventAction.cc index 7cd8507337..6bdf0274d5 100644 --- a/environments/g4py/source/processes/pyG4ProcVector.cc +++ b/examples/advanced/eFLASH_radiotherapy/src/FlashEventAction.cc @@ -23,32 +23,40 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// pyG4ProcVector.cc // -// 2005 Q -// ==================================================================== -#include -#include -#include "G4VProcess.hh" +/// \file FlashEventAction.cc +/// \brief Implementation of the FlashEventAction class -using namespace boost::python; +#include "FlashEventAction.hh" +#include "FlashRunAction.hh" -namespace pyG4ProcVector { +#include "G4Event.hh" +#include "G4RunManager.hh" -typedef std::vector G4ProcVector; +#include "G4HCofThisEvent.hh" +#include "G4SDManager.hh" +#include "G4SystemOfUnits.hh" +#include "G4THitsMap.hh" +#include "G4UnitsTable.hh" +FlashEventAction::FlashEventAction() + : G4UserEventAction() { + + printModulo = 100000; + + } + +FlashEventAction::~FlashEventAction() {} + +void FlashEventAction::BeginOfEventAction(const G4Event * evt) { + G4int evtNb = evt->GetEventID(); + if (evtNb%printModulo == 0) { //this prints every 100000 events + G4cout << "\n---> Begin of event: " << evtNb << G4endl; +}} + +void FlashEventAction::EndOfEventAction(const G4Event *evt) { + G4int evtNb = evt->GetEventID(); + if (evtNb%printModulo == 0) {//this prints every 100000 events + G4cout << "---> End of event: " << evtNb << G4endl; } - -using namespace pyG4ProcVector; - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4ProcVector() -{ - class_ ("G4ProcVector", "process vector") - .def(vector_indexing_suite()) - ; } - diff --git a/environments/g4py/source/track/pyG4Step.cc b/examples/advanced/eFLASH_radiotherapy/src/FlashPhysicsList.cc similarity index 56% rename from environments/g4py/source/track/pyG4Step.cc rename to examples/advanced/eFLASH_radiotherapy/src/FlashPhysicsList.cc index 406f28f55c..75365ffcb6 100644 --- a/environments/g4py/source/track/pyG4Step.cc +++ b/examples/advanced/eFLASH_radiotherapy/src/FlashPhysicsList.cc @@ -23,36 +23,57 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// pyG4Step.cc // -// 2005 Q -// ==================================================================== -#include -#include "G4Step.hh" +/// \file FlashPhysicsList.cc +/// \brief Implementation of the FlashPhysicsList class -using namespace boost::python; +#include "FlashPhysicsList.hh" +#include "G4DecayPhysics.hh" +#include "G4EmLivermorePhysics.hh" +#include "G4EmPenelopePhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmStandardPhysics_option4.hh" +#include "G4ProductionCuts.hh" +#include "G4RadioactiveDecayPhysics.hh" +#include "G4Region.hh" +#include "G4RegionStore.hh" +#include "G4SystemOfUnits.hh" +FlashPhysicsList::FlashPhysicsList() : G4VModularPhysicsList() { + SetVerboseLevel(1); -// ==================================================================== -// module definition -// ==================================================================== -void export_G4Step() -{ - class_("G4Step", "step class") - // --- - .def("GetTrack", &G4Step::GetTrack, - return_value_policy()) - .def("GetPreStepPoint", &G4Step::GetPreStepPoint, - return_internal_reference<>()) - .def("GetPostStepPoint", &G4Step::GetPostStepPoint, - return_internal_reference<>()) - .def("GetTotalEnergyDeposit", &G4Step::GetTotalEnergyDeposit) - .def("GetStepLength", &G4Step::GetStepLength) - .def("GetDeltaPosition", &G4Step::GetDeltaPosition) - .def("GetDeltaTime", &G4Step::GetDeltaTime) - .def("GetDeltaMomentum", &G4Step::GetDeltaMomentum) - .def("GetDeltaEnergy", &G4Step::GetDeltaEnergy) - ; + // Default physics + RegisterPhysics(new G4DecayPhysics()); + + // Radioactive decay + RegisterPhysics(new G4RadioactiveDecayPhysics()); + + + + // EM physics + //RegisterPhysics(new G4EmPenelopePhysics()); + RegisterPhysics(new G4EmStandardPhysics_option4()); +} + +FlashPhysicsList::~FlashPhysicsList() {} + +void FlashPhysicsList::SetCuts() {//set cuts based on region name defined in detector construction + + SetCutsWithDefault(); + G4Region *region; + G4String regName; + G4ProductionCuts *cuts; + + + + regName = "Phantom_reg"; + region = G4RegionStore::GetInstance()->GetRegion(regName); + cuts = new G4ProductionCuts; + cuts->SetProductionCut(0.1 * mm, G4ProductionCuts::GetIndex("gamma")); + cuts->SetProductionCut(0.1 * mm, G4ProductionCuts::GetIndex("e-")); + cuts->SetProductionCut(0.1 * mm, G4ProductionCuts::GetIndex("e+")); + region->SetProductionCuts(cuts); + + } diff --git a/examples/advanced/eFLASH_radiotherapy/src/FlashPrimaryGeneratorAction.cc b/examples/advanced/eFLASH_radiotherapy/src/FlashPrimaryGeneratorAction.cc new file mode 100644 index 0000000000..f1a51c1e2c --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/src/FlashPrimaryGeneratorAction.cc @@ -0,0 +1,107 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// + +#include "FlashPrimaryGeneratorAction.hh" +#include "G4SystemOfUnits.hh" + +#include "G4Event.hh" +#include "G4GeneralParticleSource.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "Randomize.hh" +#include "globals.hh" + +FlashPrimaryGeneratorAction::FlashPrimaryGeneratorAction() { + + particleGun = new G4GeneralParticleSource(); + + SetDefaultPrimaryParticle(); +} + +FlashPrimaryGeneratorAction::~FlashPrimaryGeneratorAction() { + delete particleGun; +} + +void FlashPrimaryGeneratorAction::SetDefaultPrimaryParticle() { + + G4ParticleTable *particleTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition *particle = particleTable->FindParticle("e-"); + particleGun->SetParticleDefinition(particle); + + + G4double defaultX0 = -100 * cm; //the beam propagates in the x direction from x=-100cm + + X0 = defaultX0; + + G4double defaultY0 = 0.0 * mm; + Y0 = defaultY0; + + G4double defaultZ0 = 0.0 * mm; + Z0 = defaultZ0; + + G4double defaultsigmaY = 2.5*mm; + + sigmaY = defaultsigmaY; + + G4double defaultsigmaZ = 2.5*mm; + + sigmaZ = defaultsigmaZ; + + G4double defaultTheta = 1.5 * deg; + + Theta = defaultTheta; +} + +void FlashPrimaryGeneratorAction::GeneratePrimaries(G4Event *anEvent) { + + //Energy is defined in 9MeVEF.mac and 7MeVEF.mac for the 9 MeV and 7 MeV spectrum respectively + + G4double x = X0;//the beam has a gaussian shape + G4double y = Y0; + G4double z = Z0; + + if (sigmaY > 0.0) { + y += G4RandGauss::shoot(Y0, sigmaY); + } + + if (sigmaZ > 0.0) { + z += G4RandGauss::shoot(Z0, sigmaZ); + } + + particleGun->GetCurrentSource()->GetPosDist()->SetCentreCoords(G4ThreeVector(x, y, z)); + + particleGun->GetCurrentSource()->GetAngDist()->SetAngDistType("beam2d"); //define angular divergence + particleGun->GetCurrentSource()->GetAngDist()->DefineAngRefAxes("angref1", G4ThreeVector( 0, 0,1.));//define reference axis for divergence + + particleGun->GetCurrentSource()->GetAngDist()->SetBeamSigmaInAngX(Theta);//set planar divergence + particleGun->GetCurrentSource()->GetAngDist()->SetBeamSigmaInAngY(Theta);//set planar divergence + particleGun->GetCurrentSource()->GetAngDist()->SetParticleMomentumDirection(G4ThreeVector(1,0,0));//beam propagates in the x direction + + particleGun->GeneratePrimaryVertex(anEvent); +} diff --git a/environments/g4py/tests/gtest01/module/QPhysicsList.cc b/examples/advanced/eFLASH_radiotherapy/src/FlashRunAction.cc similarity index 60% rename from environments/g4py/tests/gtest01/module/QPhysicsList.cc rename to examples/advanced/eFLASH_radiotherapy/src/FlashRunAction.cc index 4988eb5dfd..83fef2a7b1 100644 --- a/environments/g4py/tests/gtest01/module/QPhysicsList.cc +++ b/examples/advanced/eFLASH_radiotherapy/src/FlashRunAction.cc @@ -23,50 +23,54 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// QPhysicsList.cc // -// 2005 Q -// ==================================================================== -#include "QPhysicsList.hh" -#include "Particles.hh" -#include "PhysicsListEMstd.hh" +/// \file FlashRunAction.cc +/// \brief Implementation of the FlashRunAction class + +#include "FlashRunAction.hh" + +#include "FlashPrimaryGeneratorAction.hh" +#include "G4Accumulable.hh" +#include "G4AccumulableManager.hh" +#include "G4LogicalVolume.hh" +#include "G4Run.hh" +#include "G4RunManager.hh" #include "G4SystemOfUnits.hh" +#include "G4UnitsTable.hh" -// ==================================================================== -// -// class description -// -// ==================================================================== - -//////////////////////////// -QPhysicsList::QPhysicsList() - : G4VModularPhysicsList() -//////////////////////////// +FlashRunAction::FlashRunAction() : G4UserRunAction() { - // default cut value (1.0mm) - defaultCutValue = 1.*mm; - SetVerboseLevel(1); - // particles - RegisterPhysics(new Particles); - // EM Physics - RegisterPhysics(new PhysicsListEMstd); + } -///////////////////////////// -QPhysicsList::~QPhysicsList() -///////////////////////////// -{ +FlashRunAction::~FlashRunAction() {} + +void FlashRunAction::BeginOfRunAction(const G4Run *run) { + G4cout << "### Run " << run->GetRunID() << " start." << G4endl; + + + + G4RunManager::GetRunManager()->SetRandomNumberStore(false); } -//////////////////////////// -void QPhysicsList::SetCuts() -//////////////////////////// -{ - // " G4VUserPhysicsList::SetCutsWithDefault" method sets - // the default cut value for all particle types - SetCutsWithDefault(); -} +void FlashRunAction::EndOfRunAction(const G4Run *run) { + G4int nofEvents = run->GetNumberOfEvent(); + if (nofEvents == 0) + return; + + + + if (IsMaster()) { + G4cout << G4endl + << "--------------------End of Global Run-----------------------" + << G4endl << " The run was " << nofEvents << " events "; + } else { + G4cout << G4endl + << "--------------------End of Local Run------------------------" + << G4endl << " The run was " << nofEvents << " events "; + } + +} diff --git a/examples/advanced/eFLASH_radiotherapy/src/FlashSteppingAction.cc b/examples/advanced/eFLASH_radiotherapy/src/FlashSteppingAction.cc new file mode 100644 index 0000000000..cd6d67f733 --- /dev/null +++ b/examples/advanced/eFLASH_radiotherapy/src/FlashSteppingAction.cc @@ -0,0 +1,105 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +/// \file FlashSteppingAction.cc +/// \brief Implementation of the FlashSteppingAction class + +#include "FlashSteppingAction.hh" +#include "FlashDetectorConstruction.hh" +#include "FlashEventAction.hh" +#include "FlashRunAction.hh" +#include "G4Electron.hh" +#include "G4Event.hh" +#include "G4Gamma.hh" +#include "G4LogicalVolume.hh" +#include "G4RunManager.hh" +#include "G4Step.hh" +#include "G4Threading.hh" +#include "G4Track.hh" +#include +#include + +FlashSteppingAction::FlashSteppingAction(FlashEventAction *) + : G4UserSteppingAction() + +{ + + +} + +FlashSteppingAction::~FlashSteppingAction() { +} + +void FlashSteppingAction::UserSteppingAction(const G4Step *aStep) +{ + + G4int eventid = + G4RunManager::GetRunManager()->GetCurrentEvent()->GetEventID(); + G4StepPoint *postStep = aStep->GetPostStepPoint(); + G4StepPoint *preStep = aStep->GetPreStepPoint(); + // G4int trackID = aStep->GetTrack()->GetTrackID(); + + //===========================INCIDENT + //PARTICLES=============================================== + + //==============================PRIMARIES ENERGY + //SPECTRUM======================================= + if (postStep->GetStepStatus() == fGeomBoundary) + { + + G4String volumeName = + postStep->GetPhysicalVolume()->GetLogicalVolume()->GetName(); + G4String prevolumeName = + preStep->GetPhysicalVolume()->GetLogicalVolume()->GetName(); + + G4int parentid = aStep->GetTrack()->GetParentID(); + //G4Track* theTrack = aStep->GetTrack(); + G4double kineticEnergy = aStep->GetTrack()->GetKineticEnergy(); + G4double pos_x = aStep->GetTrack()->GetPosition().x(); + G4double pos_y = aStep->GetTrack()->GetPosition().y(); + G4double pos_z = aStep->GetTrack()->GetPosition().z(); + G4double cos_x = aStep->GetTrack()->GetMomentum().x(); + G4double cos_y = aStep->GetTrack()->GetMomentum().y(); + G4double cos_z = aStep->GetTrack()->GetMomentum().z(); + + G4double momentum = std::sqrt(cos_x*cos_x+cos_y*cos_y+cos_z*cos_z); + + + + if (aStep->GetTrack()->GetDefinition()==G4Electron::ElectronDefinition() && prevolumeName == "logicTreatmentRoom" && volumeName == "phantomLog") + + { + + std::ofstream WriteDataIn("PhantomEntrance.txt", std::ios::app); + WriteDataIn + + << parentid << "\t"<< eventid << "\t" << kineticEnergy << "\t" < - - class AnalysisManager { - public: - // The analysis class is designed to be a singleton (i.e. only one instance - // can exist). A member function called Instance is defined, which allows - // the user to get a pointer to the existing instance or to create it if - // it does not yet exist - // - static AnalysisManager* Instance(); +public: + // The analysis class is designed to be a singleton (i.e. only one instance can exist). + // A member function called Instance is defined, which allows the user to get + // a pointer to the existing instance or to create it, if it does not yet exist. + static auto Instance() -> AnalysisManager*; - // The analysis class instance can be deleted by calling the Destroy - // method (NOTE: The class destructor is protected, and can thus not be - // called directly): - static void Destroy(); + // The analysis class instance can be deleted by calling the Destroy method. + // (NOTE: The class destructor is protected, and can thus not be called directly) + static void Destroy(); -// // Member function used to score the total energy deposit -// void ScoreTot(G4double eTot); + // Member function used to score the total energy deposit + void ScoreTotalEnergy(G4double totalDepositedEnergy); - // Member function used to dump hits - void Score(G4double eDep); + // Member function used to dump hits + void Score(G4double depositedEnergy); - protected: - // Constructor (protected): - AnalysisManager(); +protected: + // Constructor (protected) + explicit AnalysisManager(); - // Destructor (protected): - virtual ~AnalysisManager(); + // Destructor (protected) + virtual ~AnalysisManager(); - // Prevent copying - AnalysisManager(const AnalysisManager& only); - const AnalysisManager& operator=(const AnalysisManager& only); + // Prevent copying + AnalysisManager(const AnalysisManager& only); + + auto operator=(const AnalysisManager& only) -> const AnalysisManager&; -private: - // The static instance of the AnalysisManager class: - static AnalysisManager* instance; - std::ofstream outFile; - std::ofstream outFileT; +private: + static AnalysisManager* instance; // The static instance of the AnalysisManager class + + std::ofstream dataFile1; + + std::ofstream dataFile2; }; - - #endif // ANALYSISMANAGER_HH diff --git a/examples/advanced/eRosita/application/include/eRositaActionInitialization.hh b/examples/advanced/eRosita/application/include/eRositaActionInitialization.hh old mode 100755 new mode 100644 index 019504b051..ab4e1040c6 --- a/examples/advanced/eRosita/application/include/eRositaActionInitialization.hh +++ b/examples/advanced/eRosita/application/include/eRositaActionInitialization.hh @@ -23,23 +23,22 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // + #ifndef eRositaActionInitialization_h #define eRositaActionInitialization_h 1 #include "globals.hh" - -#include "G4VUserActionInitialization.hh" #include "G4VSteppingVerbose.hh" +#include "G4VUserActionInitialization.hh" -class eRositaActionInitialization : public G4VUserActionInitialization -{ +class eRositaActionInitialization : public G4VUserActionInitialization { public: - eRositaActionInitialization(); + explicit eRositaActionInitialization(); - virtual ~eRositaActionInitialization(); + ~eRositaActionInitialization() override; - virtual void BuildForMaster() const; + void Build() const override; - virtual void Build() const; + void BuildForMaster() const override; }; #endif diff --git a/examples/advanced/eRosita/application/include/eRositaDetectorConstruction.hh b/examples/advanced/eRosita/application/include/eRositaDetectorConstruction.hh index a84f122b26..e974e70010 100644 --- a/examples/advanced/eRosita/application/include/eRositaDetectorConstruction.hh +++ b/examples/advanced/eRosita/application/include/eRositaDetectorConstruction.hh @@ -23,88 +23,86 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #ifndef eRositaDetectorConstruction_h #define eRositaDetectorConstruction_h 1 #include "globals.hh" #include "G4VUserDetectorConstruction.hh" +#include "G4SystemOfUnits.hh" #include "G4VisAttributes.hh" - class G4Box; class G4LogicalVolume; -class G4VPhysicalVolume; class G4Material; +class G4VPhysicalVolume; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class eRositaDetectorConstruction : public G4VUserDetectorConstruction -{ +class eRositaDetectorConstruction : public G4VUserDetectorConstruction { public: - - eRositaDetectorConstruction(); - ~eRositaDetectorConstruction(); + explicit eRositaDetectorConstruction(); + + ~eRositaDetectorConstruction() override; + + auto Construct() -> G4VPhysicalVolume* override; + + auto GetTracker() -> const G4VPhysicalVolume* { + return trackerPhysicalVolume; + }; + + // auto GetTrackerFullLength() -> G4double { return trackerFullLength; }; + + // auto GetTargetFullLength() -> G4double { return targetFullLength; }; + + // auto GetWorldFullLength() -> G4double { return worldFullLength; }; + + void ConstructSDandField() override; + + void SetTargetMaterial(G4String materialName); + + void SetTrackerMaterial(G4String materialName); + + void SetWorldMaterial(G4String materialName); -public: - - G4VPhysicalVolume* Construct(); - - const - G4VPhysicalVolume* GetTracker() {return physiTracker;}; - // G4double GetTrackerFullLength() {return fTrackerLength;}; - // G4double GetTargetFullLength() {return fTargetLength;}; - // G4double GetWorldFullLength() {return fWorldLength;}; - - virtual void ConstructSDandField(); - - void setTargetMaterial (G4String); - void setTrackerMaterial(G4String); - void setWorldMaterial(G4String); - private: + // world + G4Box* worldSolid; // solid envelope + G4LogicalVolume* worldLogicalVolume; // logical volume + G4VPhysicalVolume* worldPhysicalVolume; // physical volume + G4VisAttributes* worldVisualizationStyle; // visualization style - G4Box* solidWorld; // pointer to the solid envelope - G4LogicalVolume* logicWorld; // pointer to the logical envelope - G4VPhysicalVolume* physiWorld; // pointer to the physical envelope - G4VisAttributes* visWorld; // pointer to visualization attributes - - G4Box* solidTarget; // pointer to the solid Target - G4LogicalVolume* logicTarget; // pointer to the logical Target - G4VPhysicalVolume* physiTarget; // pointer to the physical Target - G4VisAttributes* visTarget; // pointer to visualization attributes - - G4Box* solidTracker; // pointer to the solid Tracker - G4LogicalVolume* logicTracker; // pointer to the logical Tracker - G4VPhysicalVolume* physiTracker; // pointer to the physical Tracker - G4VisAttributes* visTracker; // pointer to visualization attributes - - G4Material* TargetMater; // pointer to the target material - G4Material* TrackerMater; // pointer to the tracker material - G4Material* WorldMater; // pointer to the tracker material - - G4Material* vacuum; - - G4double hWorldLength; // half length of the world volume - G4double hTargetLength; // half length of target - G4double hTargetDepth; // half depth of target - G4double hTrackerLength; // half length of tracker - G4double hTrackerDepth; // half depth of tracker + // target + G4Box* targetSolid; // solid + G4LogicalVolume* targetLogicalVolume; // logical volume + G4VPhysicalVolume* targetPhysicalVolume; // physical volume + G4VisAttributes* targetVisualizationStyle; // visualization style - G4double xPosTarget; // x coordinate of target position - G4double yPosTarget; // y -"- - G4double zPosTarget; // z -"- - G4double xPosTracker; // x coordinate of tracker position - G4double yPosTracker; // y -"- - G4double zPosTracker; // z -"- - + // tracker + G4Box* trackerSolid; // solid + G4LogicalVolume* trackerLogicalVolume; // logical volume + G4VPhysicalVolume* trackerPhysicalVolume; // physical volume + G4VisAttributes* trackerVisualizationStyle; // visualization style + // material + G4Material* vacuum; + G4Material* targetMaterial; // target material + G4Material* trackerMaterial; // tracker material + G4Material* worldMaterial; // tracker material + + // size + G4double worldHalfLength; // half length of the world volume + G4double targetHalfLength; // half length of target + G4double targetHalfDepth; // half depth of target + G4double trackerHalfLength; // half length of tracker + G4double trackerHalfDepth; // half depth of tracker + + // spatial position of the target + G4double targetPositionX; // x coordinate + G4double targetPositionY; // y coordinate + G4double targetPositionZ; // z coordinate + + // spatial position of the tracker + G4double trackerPositionX; // x coordinate + G4double trackerPositionY; // y coordinate + G4double trackerPositionZ; // z coordinate }; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - #endif diff --git a/examples/advanced/eRosita/application/include/eRositaEventAction.hh b/examples/advanced/eRosita/application/include/eRositaEventAction.hh index 2f57212069..cea9c9b964 100644 --- a/examples/advanced/eRosita/application/include/eRositaEventAction.hh +++ b/examples/advanced/eRosita/application/include/eRositaEventAction.hh @@ -23,27 +23,23 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// - + #ifndef eRositaEventAction_h #define eRositaEventAction_h 1 -#include "G4UserEventAction.hh" #include "G4Timer.hh" +#include "G4UserEventAction.hh" class G4Event; +class eRositaEventAction : public G4UserEventAction { +public: + explicit eRositaEventAction(); -class eRositaEventAction : public G4UserEventAction -{ - public: - eRositaEventAction(); - ~eRositaEventAction(); + ~eRositaEventAction() override; - public: - void BeginOfEventAction(const G4Event*); - void EndOfEventAction(const G4Event*); - + void BeginOfEventAction(const G4Event* event) override; + + void EndOfEventAction(const G4Event* event) override; }; #endif diff --git a/examples/advanced/eRosita/application/include/eRositaPhysicsList.hh b/examples/advanced/eRosita/application/include/eRositaPhysicsList.hh index 652c727334..341e9e63e9 100644 --- a/examples/advanced/eRosita/application/include/eRositaPhysicsList.hh +++ b/examples/advanced/eRosita/application/include/eRositaPhysicsList.hh @@ -23,39 +23,48 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// #ifndef EROSITAPHYSICSLIST_HH #define EROSITAPHYSICSLIST_HH 1 +#include "G4EmConfigurator.hh" #include "G4VUserPhysicsList.hh" #include "globals.hh" -class eRositaPhysicsList: public G4VUserPhysicsList -{ - public: - eRositaPhysicsList(); - ~eRositaPhysicsList(); +class eRositaPhysicsList : public G4VUserPhysicsList { +public: + explicit eRositaPhysicsList(); - protected: - // Construct particle and physics - void ConstructParticle(); - void ConstructProcess(); - - void SetCuts(); - // These methods Construct particles + ~eRositaPhysicsList() override; + +protected: + // Construct particles + void ConstructParticle() override; + + // Construct processes + void ConstructProcess() override; + + // Construct bosons void ConstructBosons(); + + // Construct leptons void ConstructLeptons(); + + // Construct mesons void ConstructMesons(); + + // Construct baryons void ConstructBaryons(); - // These methods Construct physics processes and register them - void ConstructGeneral(); + // Construct electromagnetic processes and register them void ConstructEM(); - // void AddStepMax(); - - private: - + + // Construct other physical processes and register them + void ConstructGeneral(); + + // void AddStepMax(); + + // Set cuts + void SetCuts() override; }; #endif diff --git a/examples/advanced/eRosita/application/include/eRositaPrimaryGeneratorAction.hh b/examples/advanced/eRosita/application/include/eRositaPrimaryGeneratorAction.hh index d299c3e028..e09661ae54 100644 --- a/examples/advanced/eRosita/application/include/eRositaPrimaryGeneratorAction.hh +++ b/examples/advanced/eRosita/application/include/eRositaPrimaryGeneratorAction.hh @@ -23,44 +23,40 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + #ifndef eRositaPrimaryGeneratorAction_h #define eRositaPrimaryGeneratorAction_h 1 #include "globals.hh" #include "G4VUserPrimaryGeneratorAction.hh" -class G4ParticleGun; class G4Event; +class G4ParticleGun; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class eRositaPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction -{ +class eRositaPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: - eRositaPrimaryGeneratorAction(); - - virtual ~eRositaPrimaryGeneratorAction(); + explicit eRositaPrimaryGeneratorAction(); - void GeneratePrimaries(G4Event*); + ~eRositaPrimaryGeneratorAction() override; + + void GeneratePrimaries(G4Event* event) override; private: - G4ParticleGun* particleGun; + G4ParticleGun* particleGun; - G4double xposition; // x position of vertex - G4double yposition; // y -"- - G4double zposition; // z + G4double positionX; // x position of a vertex - G4double xdirection; // x component of initial momentum vector - G4double ydirection; // y -"- - G4double zdirection; // z -"- - + G4double positionY; // y position of a vertex + + G4double positionZ; // z position of a vertex + + static constexpr auto INITIAL_MOMENTUM_DIRECTION_X{0.0}; + G4double momentumDirectionX{INITIAL_MOMENTUM_DIRECTION_X}; // x component of initial momentum vector + + static constexpr auto INITIAL_MOMENTUM_DIRECTION_Y{-0.5}; + G4double momentumDirectionY{INITIAL_MOMENTUM_DIRECTION_Y}; // y component of initial momentum vector + + static constexpr auto INITIAL_MOMENTUM_DIRECTION_Z{-1.0}; + G4double momentumDirectionZ{INITIAL_MOMENTUM_DIRECTION_Z}; // z component of initial momentum vector }; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - #endif diff --git a/examples/advanced/eRosita/application/include/eRositaRunAction.hh b/examples/advanced/eRosita/application/include/eRositaRunAction.hh index ed9175c46a..bc5c706c9a 100644 --- a/examples/advanced/eRosita/application/include/eRositaRunAction.hh +++ b/examples/advanced/eRosita/application/include/eRositaRunAction.hh @@ -23,32 +23,27 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// - #ifndef eRositaRunAction_h #define eRositaRunAction_h 1 -#include "G4UserRunAction.hh" #include "globals.hh" #include "G4Timer.hh" - +#include "G4UserRunAction.hh" class G4Run; -class eRositaRunAction : public G4UserRunAction -{ +class eRositaRunAction : public G4UserRunAction { public: - eRositaRunAction(); - ~eRositaRunAction(); + explicit eRositaRunAction(); + + ~eRositaRunAction() override; -public: - void BeginOfRunAction(const G4Run*); - void EndOfRunAction(const G4Run*); - -private: - G4Timer timerRun; + void BeginOfRunAction(const G4Run* run) override; + + void EndOfRunAction(const G4Run* run) override; +private: + G4Timer timerRun; }; #endif diff --git a/examples/advanced/eRosita/application/include/eRositaSteppingAction.hh b/examples/advanced/eRosita/application/include/eRositaSteppingAction.hh index 6e85a8f2c6..362f8e2cb1 100644 --- a/examples/advanced/eRosita/application/include/eRositaSteppingAction.hh +++ b/examples/advanced/eRosita/application/include/eRositaSteppingAction.hh @@ -23,27 +23,16 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #ifndef eRositaSteppingAction_h #define eRositaSteppingAction_h 1 #include "G4UserSteppingAction.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class eRositaSteppingAction : public G4UserSteppingAction -{ - public: - eRositaSteppingAction(); - ~eRositaSteppingAction(){}; - - //void UserSteppingAction(const G4Step*); +class eRositaSteppingAction : public G4UserSteppingAction { +public: + explicit eRositaSteppingAction(); + + ~eRositaSteppingAction() override; }; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - #endif diff --git a/examples/advanced/eRosita/application/include/eRositaSteppingVerbose.hh b/examples/advanced/eRosita/application/include/eRositaSteppingVerbose.hh index 0e20fb1c24..1a27b4b7d0 100644 --- a/examples/advanced/eRosita/application/include/eRositaSteppingVerbose.hh +++ b/examples/advanced/eRosita/application/include/eRositaSteppingVerbose.hh @@ -23,36 +23,25 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// -// 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 eRositaSteppingVerbose; +// This class manages the verbose outputs in G4SteppingManager. +// It shows how to extract informations during the tracking of a particle. #ifndef eRositaSteppingVerbose_h #define eRositaSteppingVerbose_h 1 #include "G4SteppingVerbose.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +class eRositaSteppingVerbose; -class eRositaSteppingVerbose : public G4SteppingVerbose -{ - public: - - eRositaSteppingVerbose(); - ~eRositaSteppingVerbose(); +class eRositaSteppingVerbose : public G4SteppingVerbose { +public: + eRositaSteppingVerbose(); - void StepInfo(); - void TrackingStarted(); + ~eRositaSteppingVerbose() override; + void StepInfo() override; + + void TrackingStarted() override; }; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - #endif diff --git a/examples/advanced/eRosita/application/include/eRositaTrackerHit.hh b/examples/advanced/eRosita/application/include/eRositaTrackerHit.hh index 85c70503c4..9d808537c4 100644 --- a/examples/advanced/eRosita/application/include/eRositaTrackerHit.hh +++ b/examples/advanced/eRosita/application/include/eRositaTrackerHit.hh @@ -23,70 +23,99 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// #ifndef eRositaTrackerHit_h #define eRositaTrackerHit_h 1 -#include "G4VHit.hh" -#include "G4THitsCollection.hh" -#include "G4Allocator.hh" -#include "G4ThreeVector.hh" - -#include #include +#include -class eRositaTrackerHit : public G4VHit -{ +#include "G4Allocator.hh" +#include "G4THitsCollection.hh" +#include "G4ThreeVector.hh" +#include "G4VHit.hh" + +class eRositaTrackerHit : public G4VHit { public: - eRositaTrackerHit(); - - ~eRositaTrackerHit(); - - eRositaTrackerHit(const eRositaTrackerHit&); - - const eRositaTrackerHit& operator=(const eRositaTrackerHit&); - - G4bool operator==(const eRositaTrackerHit&) const; + explicit eRositaTrackerHit(); - inline void* operator new(size_t); - inline void operator delete(void*); + ~eRositaTrackerHit() override; - void Draw(); - void Print(); - void PrintToFile(); + explicit eRositaTrackerHit(const eRositaTrackerHit& right); + + auto operator=(const eRositaTrackerHit& right) -> const eRositaTrackerHit&; + + auto operator==(const eRositaTrackerHit& right) const -> G4bool; + + inline auto operator new(size_t) -> void*; + + inline auto operator delete(void* hit) -> void; + + void Draw() override; + + void Print() override; + + void PrintToFile() const; + + void SetTrackIdentifier(const G4int &value) { + trackIdentifier = value; + }; + + void SetChamberNumber(const G4int &value) { + chamberNumber = value; + }; + + void SetDepositedEnergy(const G4double &value) { + depositedEnergy = value; + }; + + void SetPosition(const G4ThreeVector &value) { + position = value; + }; + + [[nodiscard]] + auto GetTrackIdentifier() const -> G4int { + return trackIdentifier; + }; + + [[nodiscard]] + auto GetChamberNumber() const -> G4int { + return chamberNumber; + }; + + [[nodiscard]] + auto GetDepositedEnergy() const -> G4double { + return depositedEnergy; + }; + + [[nodiscard]] + auto GetPosition() const -> G4ThreeVector { + return position; + }; -public: - void SetTrackID (G4int track) { trackID = track; }; - void SetChamberNb(G4int chamb) { chamberNb = chamb; }; - void SetEdep (G4double de) { edep = de; }; - void SetPos (G4ThreeVector xyz){ pos = xyz; }; - - G4int GetTrackID() { return trackID; }; - G4int GetChamberNb() { return chamberNb; }; - G4double GetEdep() { return edep; }; - G4ThreeVector GetPos(){ return pos; }; - private: - G4int trackID; - G4int chamberNb; - G4double edep; - G4ThreeVector pos; + G4int trackIdentifier; // track identifier + + G4int chamberNumber; // chamber number + + G4double depositedEnergy; // deposited energy + + G4ThreeVector position; // spatial position }; -typedef G4THitsCollection eRositaTrackerHitsCollection; -extern G4ThreadLocal G4Allocator* eRositaTrackerHitAllocator; +using eRositaTrackerHitsCollection = G4THitsCollection; +extern G4ThreadLocal G4Allocator* trackerHitAllocator; -inline void* eRositaTrackerHit::operator new(size_t) +inline auto eRositaTrackerHit::operator new(size_t) -> void* { - if(!eRositaTrackerHitAllocator) eRositaTrackerHitAllocator = new G4Allocator; - - return (void*) eRositaTrackerHitAllocator->MallocSingle(); + if (trackerHitAllocator == nullptr) { + trackerHitAllocator = new G4Allocator; + } + return (void*) trackerHitAllocator->MallocSingle(); } -inline void eRositaTrackerHit::operator delete(void *aHit) +inline auto eRositaTrackerHit::operator delete(void* hit) -> void { - eRositaTrackerHitAllocator->FreeSingle((eRositaTrackerHit*) aHit); + trackerHitAllocator->FreeSingle((eRositaTrackerHit*) hit); } #endif diff --git a/examples/advanced/eRosita/application/include/eRositaTrackerSD.hh b/examples/advanced/eRosita/application/include/eRositaTrackerSD.hh index c7b23f15d8..b7a0e29599 100644 --- a/examples/advanced/eRosita/application/include/eRositaTrackerSD.hh +++ b/examples/advanced/eRosita/application/include/eRositaTrackerSD.hh @@ -23,38 +23,30 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #ifndef eRositaTrackerSD_h #define eRositaTrackerSD_h 1 -#include "G4VSensitiveDetector.hh" #include "eRositaTrackerHit.hh" -class G4Step; +#include "G4VSensitiveDetector.hh" + class G4HCofThisEvent; +class G4Step; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +class eRositaTrackerSD : public G4VSensitiveDetector { +public: + explicit eRositaTrackerSD(G4String name); + + ~eRositaTrackerSD() override; -class eRositaTrackerSD : public G4VSensitiveDetector -{ - public: - eRositaTrackerSD(G4String); - ~eRositaTrackerSD(); - - void Initialize(G4HCofThisEvent*); - G4bool ProcessHits(G4Step*, G4TouchableHistory*); - void EndOfEvent(G4HCofThisEvent*); - - private: - eRositaTrackerHitsCollection* trackerCollection; + void EndOfEvent(G4HCofThisEvent* collection) override; + + void Initialize(G4HCofThisEvent* collection) override; + + auto ProcessHits(G4Step* step, G4TouchableHistory* history) -> G4bool override; +private: + eRositaTrackerHitsCollection* trackerCollection; }; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - #endif - diff --git a/examples/advanced/eRosita/application/src/AnalysisManager.cc b/examples/advanced/eRosita/application/src/AnalysisManager.cc index 6e9b9e52b7..f5054caf8d 100644 --- a/examples/advanced/eRosita/application/src/AnalysisManager.cc +++ b/examples/advanced/eRosita/application/src/AnalysisManager.cc @@ -23,64 +23,64 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + #include "AnalysisManager.hh" #include -AnalysisManager* AnalysisManager::instance = 0; +AnalysisManager *AnalysisManager::instance{nullptr}; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -AnalysisManager* AnalysisManager::Instance() +AnalysisManager::AnalysisManager() { - - // A new instance of AnalysisManager is created if it does not exist: - if (instance == 0) - { - instance = new AnalysisManager(); - } - - // The instance of AnalysisManager is returned: - return instance; + dataFile1.open("TrackerPhotonEnergy.out"); // open the file +// dataFile2.open("TotalEnergy.out"); // open the file } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void AnalysisManager::Destroy() +AnalysisManager::~AnalysisManager() { + dataFile1.close(); // close the file +// dataFile2.close(); // close the file +} - // The AnalysisManager instance is deleted if it exists: - if (instance != 0) - { - delete instance; - instance = 0; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +auto AnalysisManager::Instance() -> AnalysisManager* +{ + // A new instance of AnalysisManager is created, if it does not exist: + if (instance == nullptr) { + instance = new AnalysisManager(); + } + + // The instance of AnalysisManager is returned: + return instance; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void AnalysisManager::Destroy() +{ + // The AnalysisManager instance is deleted, if it exists: + if (instance != nullptr) { + delete instance; + instance = nullptr; } } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -AnalysisManager::AnalysisManager() +void AnalysisManager::Score(G4double depositedEnergy) { - outFile.open("TrackerPhotonEnergy.out"); -// outFileT.open("eTot.out"); + dataFile1 << depositedEnergy << std::endl; } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -AnalysisManager::~AnalysisManager() +void AnalysisManager::ScoreTotalEnergy(G4double totalDepositedEnergy) { - outFile.close(); - outFileT.close(); + dataFile2 << totalDepositedEnergy << std::endl; } - - -void AnalysisManager::Score(G4double eDep) -{ -// outFile << id << " " -// << eDep << " " -// << x << " " -// << y << " " -// << z << " " -// << std::endl; - outFile << eDep << std::endl; -} - -// void AnalysisManager::ScoreTot(G4double eTot) -// { -// outFileT << eTot << std::endl; -// } diff --git a/examples/advanced/eRosita/application/src/eRositaActionInitialization.cc b/examples/advanced/eRosita/application/src/eRositaActionInitialization.cc old mode 100755 new mode 100644 index 4863f75a0e..d92bfb3a44 --- a/examples/advanced/eRosita/application/src/eRositaActionInitialization.cc +++ b/examples/advanced/eRosita/application/src/eRositaActionInitialization.cc @@ -23,6 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // + #include "eRositaActionInitialization.hh" #include "eRositaPrimaryGeneratorAction.hh" #include "eRositaEventAction.hh" @@ -31,30 +32,35 @@ #include "G4GeneralParticleSource.hh" -eRositaActionInitialization::eRositaActionInitialization() : G4VUserActionInitialization() +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +eRositaActionInitialization::eRositaActionInitialization() { } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + eRositaActionInitialization::~eRositaActionInitialization() { } -void eRositaActionInitialization::BuildForMaster() const -{ - eRositaRunAction* runAction = new eRositaRunAction(); - SetUserAction(runAction); -} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void eRositaActionInitialization::Build() const { - eRositaPrimaryGeneratorAction* primaryGeneratorAction = new eRositaPrimaryGeneratorAction(); + auto *primaryGeneratorAction = new eRositaPrimaryGeneratorAction(); SetUserAction(primaryGeneratorAction); - eRositaRunAction* runAction = new eRositaRunAction(); - SetUserAction(runAction); - - //SetUserAction(new eRositaPrimaryGeneratorAction); - //SetUserAction(new eRositaRunAction); + auto *runAction = new eRositaRunAction(); + SetUserAction(runAction); SetUserAction(new eRositaEventAction); SetUserAction(new eRositaSteppingAction); } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void eRositaActionInitialization::BuildForMaster() const +{ + auto *runAction = new eRositaRunAction(); + SetUserAction(runAction); +} diff --git a/examples/advanced/eRosita/application/src/eRositaDetectorConstruction.cc b/examples/advanced/eRosita/application/src/eRositaDetectorConstruction.cc index 4751cd66cc..d9a47a9dd0 100644 --- a/examples/advanced/eRosita/application/src/eRositaDetectorConstruction.cc +++ b/examples/advanced/eRosita/application/src/eRositaDetectorConstruction.cc @@ -23,238 +23,260 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + #include "eRositaDetectorConstruction.hh" #include "eRositaTrackerSD.hh" -#include "G4PhysicalConstants.hh" -#include "G4SystemOfUnits.hh" -#include "G4Material.hh" #include "G4Box.hh" -#include "G4LogicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4PVParameterised.hh" -#include "G4SDManager.hh" -#include "G4GeometryTolerance.hh" -#include "G4GeometryManager.hh" - -#include "G4UserLimits.hh" - -#include "G4VisAttributes.hh" #include "G4Colour.hh" - +#include "G4GeometryManager.hh" +#include "G4GeometryTolerance.hh" #include "G4ios.hh" +#include "G4LogicalVolume.hh" +#include "G4Material.hh" +#include "G4PhysicalConstants.hh" +#include "G4PVParameterised.hh" +#include "G4PVPlacement.hh" +#include "G4SDManager.hh" +#include "G4SystemOfUnits.hh" +#include "G4UserLimits.hh" +#include "G4VisAttributes.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - eRositaDetectorConstruction::eRositaDetectorConstruction() { } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + eRositaDetectorConstruction::~eRositaDetectorConstruction() { } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4VPhysicalVolume* eRositaDetectorConstruction::Construct() +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +auto eRositaDetectorConstruction::Construct() -> G4VPhysicalVolume* { -//--------- Material definition --------- + // ----------------------- + // - Material definition - + // ----------------------- - G4double a, z; - G4double density; -// G4int nel; +/* + // Nitrogen + constexpr auto NITROGEN_ATOMIC_NUMBER{7.}; + constexpr auto NITROGEN_MOLAR_MASS{14.01 * g / mole}; -// //Air -// G4Element* N = new G4Element("Nitrogen", "N", z=7., a= 14.01*g/mole); -// G4Element* O = new G4Element("Oxygen" , "O", z=8., a= 16.00*g/mole); + auto *nitrogen = new G4Element("Nitrogen", "N", NITROGEN_ATOMIC_NUMBER, NITROGEN_MOLAR_MASS); + + // Oxygen + constexpr auto OXYGEN_ATOMIC_NUMBER{8.}; + constexpr auto OXYGEN_MOLAR_MASS{16.00 * g / mole}; + + auto *oxygen = new G4Element("Oxygen", "O", OXYGEN_ATOMIC_NUMBER, OXYGEN_MOLAR_MASS); + + // Air + constexpr auto AIR_DENSITY{1.29 * mg / cm3}; + constexpr auto AIR_NUMBER_OF_ELEMENTS{2}; + constexpr auto NITROGEN_PERCENTAGE{70}; + constexpr auto OXYGEN_PERCENTAGE{30}; + + auto *air = new G4Material("Air", AIR_DENSITY, AIR_NUMBER_OF_ELEMENTS); + air->AddElement(nitrogen, NITROGEN_PERCENTAGE * perCent); + air->AddElement(oxygen, OXYGEN_PERCENTAGE * perCent); +*/ + + // Copper + constexpr auto COPPER_ATOMIC_NUMBER{29.}; + constexpr auto COPPER_DENSITY{8.92 * g / cm3}; + constexpr auto COPPER_MOLAR_MASS{63.55 * g / mole}; + + auto *copper = new G4Material("Copper", COPPER_ATOMIC_NUMBER, COPPER_MOLAR_MASS, COPPER_DENSITY); + + // // Aluminium (for testing) + // constexpr auto COPPER_ATOMIC_NUMBER{13.}; + // constexpr auto COPPER_DENSITY{2.7 * g / cm3}; + // constexpr auto COPPER_MOLAR_MASS{26.98 * g / mole}; + + // auto *copper = new G4Material("Aluminium", COPPER_ATOMIC_NUMBER, COPPER_MOLAR_MASS, COPPER_DENSITY); + + // Silicon + constexpr auto SILICON_ATOMIC_NUMBER{14.}; + constexpr auto SILICON_DENSITY{2.33 * g / cm3}; + constexpr auto SILICON_MOLAR_MASS{28.09 * g / mole}; + + auto *silicon = new G4Material("Silicon", SILICON_ATOMIC_NUMBER, SILICON_MOLAR_MASS, SILICON_DENSITY); + + // Vacuum + + constexpr auto VACUUM_ATOMIC_NUMBER{1}; + constexpr auto VACUUM_DENSITY{universe_mean_density}; // from PhysicalConstants.h + constexpr auto VACUUM_MOLAR_MASS{1.01 * g / mole}; + constexpr auto VACUUM_PRESSURE{3.e-18 * pascal}; + constexpr auto VACUUM_TEMPERATURE{2.73 * kelvin}; + + vacuum = new G4Material("Galactic", VACUUM_ATOMIC_NUMBER, VACUUM_MOLAR_MASS, VACUUM_DENSITY, kStateGas, VACUUM_TEMPERATURE, VACUUM_PRESSURE); + + // Print all the materials defined. + G4cout << G4endl << "The materials defined are : " << G4endl << G4endl; + G4cout << *(G4Material::GetMaterialTable()) << G4endl; + + // --------- Sizes of the principal geometrical components (solids) --------- + + // world volume + constexpr auto WORLD_HALF_LENGTH{50.0 * mm}; + + worldHalfLength = WORLD_HALF_LENGTH; + + // target: 0.5 cm * 0.5 cm * 3 cm + constexpr auto TARGET_HALF_LENGTH{2.5 * mm}; + constexpr auto TARGET_HALF_DEPTH{15.0 * mm}; + + targetHalfLength = TARGET_HALF_LENGTH; + targetHalfDepth = TARGET_HALF_DEPTH; + + // tracker (CCD): 4 cm * 450 mu_m * 4 cm + constexpr auto TRACKER_HALF_LENGTH{20.0 * mm}; + constexpr auto TRACKER_HALF_DEPTH{0.225 * mm}; + + trackerHalfLength = TRACKER_HALF_LENGTH; + trackerHalfDepth = TRACKER_HALF_DEPTH; + + //--------- positions of the principal geometrical components -------- + + // target position: (0 cm, 0 cm, 0 cm) + constexpr auto TARGET_INITIAL_POSITION_X{0.0 * cm}; + constexpr auto TARGET_INITIAL_POSITION_Y{0.0 * cm}; + constexpr auto TARGET_INITIAL_POSITION_Z{0.0 * cm}; + + targetPositionX = TARGET_INITIAL_POSITION_X; + targetPositionY = TARGET_INITIAL_POSITION_Y; + targetPositionZ = TARGET_INITIAL_POSITION_Z; + + // tracker position: (0 cm, 2 cm, 0 cm) + constexpr auto TRACKER_INITIAL_POSITION_X{0.0 * cm}; + constexpr auto TRACKER_INITIAL_POSITION_Y{2.0 * cm}; + constexpr auto TRACKER_INITIAL_POSITION_Z{0.0 * cm}; + + trackerPositionX = TRACKER_INITIAL_POSITION_X; + trackerPositionY = TRACKER_INITIAL_POSITION_Y; + trackerPositionZ = TRACKER_INITIAL_POSITION_Z; -// G4Material* Air = new G4Material("Air", density= 1.29*mg/cm3, nel=2); -// Air->AddElement(N, 70*perCent); -// Air->AddElement(O, 30*perCent); - - //Copper - G4Material* Cu = - new G4Material("Copper", z=29., a= 63.55*g/mole, density= 8.92*g/cm3); + // ------------ + // - Material - + // ------------ -// //Aluminium for testing -// G4Material* Cu = -// new G4Material("Aluminium", z=13., a= 26.98*g/mole, density= 2.7*g/cm3); - - //Silicon - G4Material* Si = - new G4Material("Silicon", z=14., a= 28.09*g/mole, density= 2.33*g/cm3); + // worldMaterial = air; + worldMaterial = vacuum; + targetMaterial = copper; + trackerMaterial = silicon; - // Vacuum - density = universe_mean_density; //from PhysicalConstants.h - G4double pressure = 3.e-18*pascal; - G4double temperature = 2.73*kelvin; - a = 1.01*g/mole; - z = 1; - vacuum = new G4Material("Galactic", z, a, - density, kStateGas, temperature, pressure); + //--------- Definitions of Solids, Logical Volumes, Physical Volumes --------- - // Print all the materials defined. - // - G4cout << G4endl << "The materials defined are : " << G4endl << G4endl; - G4cout << *(G4Material::GetMaterialTable()) << G4endl; + // --------- + // - World - + // --------- -//--------- Sizes of the principal geometrical components (solids) --------- - - // world volume - hWorldLength = 50.0*mm; + worldSolid = new G4Box("world", worldHalfLength, worldHalfLength, worldHalfLength); // cube + worldLogicalVolume = new G4LogicalVolume(worldSolid, worldMaterial, "World", nullptr, nullptr, nullptr); - // target - hTargetLength = 2.5*mm; - hTargetDepth = 15.0*mm; + // Place the world physical volume unrotated at (0, 0, 0). + worldPhysicalVolume = new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0, 0, 0) + worldLogicalVolume, // its logical volume + "World", // its name + nullptr, // its mother volume + false, // no boolean operations + 0); // copy number - // CCD - hTrackerLength = 20.0*mm; - hTrackerDepth = 0.225*mm; + // ---------- + // - Target - + // ---------- -//--------- positions of the principal geometrical components -------- + auto targetPosition = G4ThreeVector(targetPositionX, targetPositionY, targetPositionZ); - // target - xPosTarget = 0.0*cm; - yPosTarget = 0.0*cm; - zPosTarget = 0.0*cm; + targetSolid = new G4Box("target", targetHalfLength, targetHalfLength, targetHalfDepth); + targetLogicalVolume = new G4LogicalVolume(targetSolid, targetMaterial, "Target", nullptr, nullptr, nullptr); + targetPhysicalVolume = new G4PVPlacement(nullptr, // no rotation + targetPosition, // at (x, y, z) + targetLogicalVolume, // its logical volume + "Target", // its name + worldLogicalVolume, // its mother volume + false, // no boolean operations + 0); // copy number - // tracker - xPosTracker = 0.0*cm; - yPosTracker = 2.0*cm; - zPosTracker = 0.0*cm; + // ----------- + // - Tracker - + // ----------- -//--------- material names of the principal geometrical components -------- - -// WorldMater = Air; - WorldMater = vacuum; - TargetMater = Cu; - TrackerMater = Si; - -//--------- Definitions of Solids, Logical Volumes, Physical Volumes --------- - + auto trackerPosition = G4ThreeVector(trackerPositionX, trackerPositionY, trackerPositionZ); - //------------------------------ - // World - //------------------------------ + trackerSolid = new G4Box("tracker", trackerHalfLength, trackerHalfDepth, trackerHalfLength); + trackerLogicalVolume = new G4LogicalVolume(trackerSolid, trackerMaterial, "Tracker", nullptr, nullptr, nullptr); + trackerPhysicalVolume = new G4PVPlacement(nullptr, // no rotation + trackerPosition, // at (x, y, z) + trackerLogicalVolume, // its logical volume + "Tracker", // its name + worldLogicalVolume, // its mother volume + false, // no boolean operations + 0); // copy number - solidWorld= new G4Box("world",hWorldLength,hWorldLength,hWorldLength); - logicWorld= new G4LogicalVolume(solidWorld,WorldMater,"World",0,0,0); - - // Must place the World Physical volume unrotated at (0,0,0). - // - physiWorld = new G4PVPlacement(0, // no rotation - G4ThreeVector(), // at (0,0,0) - logicWorld, // its logical volume - "World", // its name - 0, // its mother volume - false, // no boolean operations - 0); // copy number + //----------------------- + // - Sensitive detector - + //----------------------- - - //------------------------------ - // Target - //------------------------------ - - G4ThreeVector positionTarget = - G4ThreeVector(xPosTarget,yPosTarget,zPosTarget); - - solidTarget = new G4Box("target",hTargetLength,hTargetLength,hTargetDepth); - logicTarget = new G4LogicalVolume(solidTarget,TargetMater,"Target",0,0,0); - physiTarget = new G4PVPlacement(0, // no rotation - positionTarget, // at (x,y,z) - logicTarget, // its logical volume - "Target", // its name - logicWorld, // its mother volume - false, // no boolean operations - 0); // copy number + constexpr auto TRACKER_SENSITIVE_DETECTOR_NAME{"eRosita/TrackerChamberSD"}; + auto *trackerSensitiveDetector = new eRositaTrackerSD(TRACKER_SENSITIVE_DETECTOR_NAME); + trackerLogicalVolume->SetSensitiveDetector(trackerSensitiveDetector); + //------------------ + // - Visualization - + //------------------ - //------------------------------ - // Tracker - //------------------------------ - - G4ThreeVector positionTracker = - G4ThreeVector(xPosTracker,yPosTracker,zPosTracker); - - solidTracker = - new G4Box("tracker",hTrackerLength,hTrackerDepth,hTrackerLength); - logicTracker = - new G4LogicalVolume(solidTracker,TrackerMater,"Tracker",0,0,0); - physiTracker = new G4PVPlacement(0, // no rotation - positionTracker, // at (x,y,z) - logicTracker, // its logical volume - "Tracker", // its name - logicWorld, // its mother volume - false, // no boolean operations - 0); // copy number + // make world volume invisible + worldVisualizationStyle = new G4VisAttributes(); + worldVisualizationStyle->SetVisibility(false); + worldLogicalVolume->SetVisAttributes(worldVisualizationStyle); + // render the target in reddish color + targetVisualizationStyle = new G4VisAttributes(); + // targetVisualizationStyle->SetColor(G4Color(1.0, 0.3, 0.3)); // reddish + targetVisualizationStyle->SetColor(G4Color(1.0, 1.0, 1.0)); // black + targetLogicalVolume->SetVisAttributes(targetVisualizationStyle); - //------------------------------------------------ - // Sensitive detectors - //------------------------------------------------ + // render the tracker in blueish color + trackerVisualizationStyle = new G4VisAttributes(); + // trackerVisualizationStyle->SetColor(G4Color(0.3, 0.3, 1.0)); // blueish + trackerVisualizationStyle->SetColor(G4Color(1.0, 1.0, 1.0)); // black + trackerLogicalVolume->SetVisAttributes(trackerVisualizationStyle); - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - - G4String trackerChamberSDname = "eRosita/TrackerChamberSD"; - eRositaTrackerSD* aTrackerSD = new eRositaTrackerSD(trackerChamberSDname); - SDman->AddNewDetector(aTrackerSD); - logicTracker->SetSensitiveDetector(aTrackerSD); - -//--------- Visualization attributes ------------------------------- - - // use this to make world volume invisible - visWorld = new G4VisAttributes(); - visWorld->SetVisibility(false); - logicWorld->SetVisAttributes(visWorld); - - // render target in redish color - visTarget = new G4VisAttributes(); -// visTarget->SetColor(G4Color(1.0,0.3,0.3)); // redish - visTarget->SetColor(G4Color(1.0,1.0,1.0)); // black - logicTarget->SetVisAttributes(visTarget); - - // render tracker in blueish color - visTracker = new G4VisAttributes(); -// visTracker->SetColor(G4Color(0.3,0.3,1.0)); // blueish - visTracker->SetColor(G4Color(1.0,1.0,1.0)); // black - logicTracker->SetVisAttributes(visTracker); - - - - return physiWorld; + return worldPhysicalVolume; } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + void eRositaDetectorConstruction::ConstructSDandField() { G4SDManager::GetSDMpointer()->SetVerboseLevel(1); + auto *sensitiveDetectorManager = G4SDManager::GetSDMpointer(); - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - - G4String trackerChamberSDname = "eRosita/TrackerChamberSD"; - eRositaTrackerSD* aTrackerSD = new eRositaTrackerSD(trackerChamberSDname); - SDman->AddNewDetector(aTrackerSD); - logicTracker->SetSensitiveDetector(aTrackerSD); + constexpr auto TRACKER_SENSITIVE_DETECTOR_NAME{"eRosita/TrackerChamberSD"}; + auto *trackerSensitiveDetector = new eRositaTrackerSD(TRACKER_SENSITIVE_DETECTOR_NAME); + sensitiveDetectorManager->AddNewDetector(trackerSensitiveDetector); + trackerLogicalVolume->SetSensitiveDetector(trackerSensitiveDetector); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + /* -void eRositaDetectorConstruction::setTargetMaterial(G4String materialName) +void eRositaDetectorConstruction::SetTargetMaterial(G4String materialName) { - // search the material by its name - G4Material* pttoMaterial = G4Material::GetMaterial(materialName); - if (pttoMaterial) - {TargetMater = pttoMaterial; - logicTarget->SetMaterial(pttoMaterial); - G4cout << "\n----> The target is " << fTargetLength/cm << " cm of " - << materialName << G4endl; - } + // search the material by name + auto *material = G4Material::GetMaterial(materialName); + if (material != nullptr) { + targetMaterial = material; + targetLogicalVolume->SetMaterial(material); + G4cout << "\n----> The target is " << targetFullLength / cm << " cm long and made of " << materialName << G4endl; + } } -*/ - +*/ diff --git a/examples/advanced/eRosita/application/src/eRositaEventAction.cc b/examples/advanced/eRosita/application/src/eRositaEventAction.cc index 80fb7ac5da..e01c6a52af 100644 --- a/examples/advanced/eRosita/application/src/eRositaEventAction.cc +++ b/examples/advanced/eRosita/application/src/eRositaEventAction.cc @@ -23,18 +23,14 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// #include "eRositaEventAction.hh" #include "G4Event.hh" -//#include "G4EventManager.hh" #include "G4TrajectoryContainer.hh" #include "G4Trajectory.hh" #include "G4ios.hh" - eRositaEventAction::eRositaEventAction() { } @@ -43,38 +39,54 @@ eRositaEventAction::~eRositaEventAction() { } -void eRositaEventAction::BeginOfEventAction(const G4Event* evt) +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void eRositaEventAction::BeginOfEventAction(const G4Event* event) { - G4int nEvent = evt->GetEventID() + 1; - - G4int frequency = 100; - if (nEvent > 1000 ) frequency = 1000; - if (nEvent > 10000) frequency = 10000; - if (nEvent > 100000) frequency = 100000; - - G4int remainder = nEvent % frequency; - if (remainder == 0) G4cout << "---- eRosita event counter: " << nEvent - << std::endl; + auto numberOfEvents = event->GetEventID() + 1; + + constexpr auto INITIAL_FREQUENCY{100}; + constexpr auto FIRST_FREQUENCY_THRESHOLD{1000}; + constexpr auto SECOND_FREQUENCY_THRESHOLD{10000}; + constexpr auto THIRD_FREQUENCY_THRESHOLD{100000}; + + auto frequency = INITIAL_FREQUENCY; + if (numberOfEvents > FIRST_FREQUENCY_THRESHOLD) { + frequency = FIRST_FREQUENCY_THRESHOLD; + } + if (numberOfEvents > SECOND_FREQUENCY_THRESHOLD) { + frequency = SECOND_FREQUENCY_THRESHOLD; + } + if (numberOfEvents > THIRD_FREQUENCY_THRESHOLD) { + frequency = THIRD_FREQUENCY_THRESHOLD; + } + + auto remainder = numberOfEvents % frequency; + if (remainder == 0) { + G4cout << "---- eRosita number of events: " << numberOfEvents << G4endl; + } } -void eRositaEventAction::EndOfEventAction(const G4Event*) // evt) -{ -/* - G4int event_id = evt->GetEventID(); - - // get number of stored trajectories - // - G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); - G4int n_trajectories = 0; - if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); - - // periodic printing - // - if (event_id < 100 || event_id%100 == 0) { - //G4cout << ">>> Event " << evt->GetEventID() << G4endl; - //G4cout << " " << n_trajectories - // << " trajectories stored in this event." << G4endl; - } -*/ -} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +void eRositaEventAction::EndOfEventAction(const G4Event* event) +{ + auto eventIdentifier = event->GetEventID(); + + // get the number of stored trajectories + + auto *trajectoryContainer = event->GetTrajectoryContainer(); + auto numberOfTrajectories = 0; + if (trajectoryContainer != nullptr) { + numberOfTrajectories = trajectoryContainer->entries(); + } + + // periodic printing + + constexpr auto THRESHOLD{100}; + + if (eventIdentifier < THRESHOLD || eventIdentifier % THRESHOLD == 0) { + G4cout << ">>> Event: " << event->GetEventID() << G4endl; + G4cout << " " << numberOfTrajectories << " trajectories stored in this event." << G4endl; + } +} diff --git a/examples/advanced/eRosita/application/src/eRositaPhysicsList.cc b/examples/advanced/eRosita/application/src/eRositaPhysicsList.cc index 7a4b4ba017..02237ad998 100644 --- a/examples/advanced/eRosita/application/src/eRositaPhysicsList.cc +++ b/examples/advanced/eRosita/application/src/eRositaPhysicsList.cc @@ -23,272 +23,336 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// - -#include "globals.hh" #include "eRositaPhysicsList.hh" -#include "G4SystemOfUnits.hh" -#include "G4ProcessManager.hh" +#include "globals.hh" +#include "G4ios.hh" +#include "G4ParticleDefinition.hh" #include "G4ParticleTypes.hh" +#include "G4PhysicsListHelper.hh" +#include "G4ProductionCutsTable.hh" +#include "G4StepLimiter.hh" +#include "G4SystemOfUnits.hh" +#include "G4VPhysicsConstructor.hh" -#include "G4PhotoElectricEffect.hh" +// Physics List +#include "G4DecayPhysics.hh" +#include "G4EmLivermorePhysics.hh" +#include "G4EmPenelopePhysics.hh" +#include "G4EmStandardPhysics.hh" + +// Process #include "G4ComptonScattering.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eIonisation.hh" +#include "G4eMultipleScattering.hh" +#include "G4eplusAnnihilation.hh" #include "G4GammaConversion.hh" +#include "G4hImpactIonisation.hh" +#include "G4hIonisation.hh" +#include "G4hMultipleScattering.hh" +#include "G4ionIonisation.hh" +#include "G4PhotoElectricEffect.hh" #include "G4RayleighScattering.hh" -#include "G4eIonisation.hh" -#include "G4eBremsstrahlung.hh" +// Model +#include "G4LivermoreBremsstrahlungModel.hh" +#include "G4LivermoreComptonModel.hh" +#include "G4LivermoreGammaConversionModel.hh" +#include "G4LivermoreIonisationModel.hh" +#include "G4LivermorePhotoElectricModel.hh" +#include "G4LivermoreRayleighModel.hh" +#include "G4PenelopeAnnihilationModel.hh" +#include "G4UniversalFluctuation.hh" -#include "G4eMultipleScattering.hh" -#include "G4hMultipleScattering.hh" +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#include "G4eIonisation.hh" -#include "G4eBremsstrahlung.hh" -#include "G4eplusAnnihilation.hh" -#include "G4hIonisation.hh" -#include "G4ionIonisation.hh" - -#include "G4hImpactIonisation.hh" - -#include "G4ProductionCutsTable.hh" - - -eRositaPhysicsList::eRositaPhysicsList(): G4VUserPhysicsList() +eRositaPhysicsList::eRositaPhysicsList() { - defaultCutValue = 0.001*mm; - SetVerboseLevel(1); + SetVerboseLevel(1); - std::cout << "===============================================================================" - << std::endl - << "Geant4 eRosita example - based on a simplified version of eROSITA simulation" - << std::endl - << "Further details can be found in:" - << std::endl - << "M.G. Pia et al., 'PIXE Simulation With Geant4', " - << "IEEE Trans. Nucl. Sci., vol. 56, no. 6, pp. 3614-3649, 2009" - << std::endl - << "N. Meidinger et al., 'Development of the focal plane PNCCD camera system for the X-ray space telescope eROSITA', " - << std::endl - <<"NIM A 624, 321-329, 2010" - << std::endl - << "===============================================================================" - << std::endl; + constexpr auto DEFAULT_CUT_VALUE{0.001 * mm}; + SetDefaultCutValue(DEFAULT_CUT_VALUE); - std::cout<< std::endl; - - std::cout << "===============================================================================" - << std::endl - << " The use of G4LowEnergyIonisation, G4LowEnergyBremsstrahlung, " - << std::endl - << "G4LowEnergyPhotoElectric, G4LowEnergyCompton, G4LowEnergyGammaConversion" - << std::endl - << "in this example is intentional. These classes will be replaced by other classes" - << std::endl - << "appropriate to the problem domain in a forthcoming Geant4 version" - << std::endl - << "===============================================================================" - << std::endl; + G4cout << "=============================================================================================" + << G4endl + << "Geant4 eRosita example, based on a simplified version of eROSITA simulation." + << G4endl + << "Further details can be found in:" + << G4endl + << " M. G. Pia et al.," + << G4endl + << " 'PIXE Simulation With Geant4'," + << G4endl + << " IEEE Trans. Nucl. Sci., vol. 56, no. 6, pp. 3614-3649, 2009" + << G4endl + << " N. Meidinger et al.," + << G4endl + << " 'Development of the focal plane PNCCD camera system for the X-ray space telescope eROSITA'," + << G4endl + << " NIM A 624, 321-329, 2010" + << G4endl + << "=============================================================================================" + << G4endl; + + G4cout << G4endl; } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... eRositaPhysicsList::~eRositaPhysicsList() -{} - - -void eRositaPhysicsList::ConstructParticle() { - ConstructBosons(); - ConstructLeptons(); - ConstructMesons(); - ConstructBaryons(); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void eRositaPhysicsList::ConstructBosons() { - // pseudo-particles - //G4Geantino::GeantinoDefinition(); - //G4ChargedGeantino::ChargedGeantinoDefinition(); + // geantino (pseudo-particle) + // G4Geantino::GeantinoDefinition(); - // gamma - G4Gamma::GammaDefinition(); + // charged geantino (pseudo-particle) + // G4ChargedGeantino::ChargedGeantinoDefinition(); + + // photon (gamma) + G4Gamma::GammaDefinition(); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void eRositaPhysicsList::ConstructLeptons() { - // leptons - // e+/- - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - // mu+/- - //G4MuonPlus::MuonPlusDefinition(); - //G4MuonMinus::MuonMinusDefinition(); - // nu_e - //G4NeutrinoE::NeutrinoEDefinition(); - //G4AntiNeutrinoE::AntiNeutrinoEDefinition(); - // nu_mu - //G4NeutrinoMu::NeutrinoMuDefinition(); - //G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); + // leptons + + // e+ / e- + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + + // mu+ / mu- + // G4MuonPlus::MuonPlusDefinition(); + // G4MuonMinus::MuonMinusDefinition(); + + // nu_e + // G4NeutrinoE::NeutrinoEDefinition(); + // G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + + // nu_mu + // G4NeutrinoMu::NeutrinoMuDefinition(); + // G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void eRositaPhysicsList::ConstructMesons() { - // mesons - // light mesons - //G4PionPlus::PionPlusDefinition(); - //G4PionMinus::PionMinusDefinition(); - //G4PionZero::PionZeroDefinition(); - //G4Eta::EtaDefinition(); - //G4EtaPrime::EtaPrimeDefinition(); - //G4KaonPlus::KaonPlusDefinition(); - //G4KaonMinus::KaonMinusDefinition(); - //G4KaonZero::KaonZeroDefinition(); - //G4AntiKaonZero::AntiKaonZeroDefinition(); - //G4KaonZeroLong::KaonZeroLongDefinition(); - //G4KaonZeroShort::KaonZeroShortDefinition(); + // light mesons + + // pion + // G4PionPlus::PionPlusDefinition(); + // G4PionMinus::PionMinusDefinition(); + // G4PionZero::PionZeroDefinition(); + + // eta + // G4Eta::EtaDefinition(); + // G4EtaPrime::EtaPrimeDefinition(); + + // kaon + // G4KaonPlus::KaonPlusDefinition(); + // G4KaonMinus::KaonMinusDefinition(); + // G4KaonZero::KaonZeroDefinition(); + // G4AntiKaonZero::AntiKaonZeroDefinition(); + // G4KaonZeroLong::KaonZeroLongDefinition(); + // G4KaonZeroShort::KaonZeroShortDefinition(); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void eRositaPhysicsList::ConstructBaryons() { - // baryons - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); + // baryons - //G4Neutron::NeutronDefinition(); - //G4AntiNeutron::AntiNeutronDefinition(); + // proton + G4Proton::ProtonDefinition(); + G4AntiProton::AntiProtonDefinition(); + + // neutron + // G4Neutron::NeutronDefinition(); + // G4AntiNeutron::AntiNeutronDefinition(); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void eRositaPhysicsList::ConstructProcess() +void eRositaPhysicsList::ConstructParticle() { - AddTransportation(); - ConstructEM(); - ConstructGeneral(); - //AddStepMax(); + ConstructBosons(); + ConstructLeptons(); + ConstructMesons(); + ConstructBaryons(); } - +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void eRositaPhysicsList::ConstructEM() { - auto theParticleIterator=GetParticleIterator(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* processManager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "gamma") { + auto *helper = G4PhysicsListHelper::GetPhysicsListHelper(); - // photon + auto particleIterator = GetParticleIterator(); + particleIterator->reset(); - G4PhotoElectricEffect* photoelectric = new G4PhotoElectricEffect; - //photoelectric->ActivateAuger(true); - //photoelectric->SetCutForLowEnSecPhotons(0.250 * keV); - //photoelectric->SetCutForLowEnSecElectrons(0.250 * keV); - G4ComptonScattering* compton = new G4ComptonScattering; - G4GammaConversion* gammaConversion = new G4GammaConversion; - G4RayleighScattering* rayleigh = new G4RayleighScattering; + while ((*particleIterator)()) { + auto *particle = particleIterator->value(); + auto particleName = particle->GetParticleName(); - processManager -> AddDiscreteProcess(photoelectric); - processManager -> AddDiscreteProcess(compton); - processManager -> AddDiscreteProcess(gammaConversion); - processManager -> AddDiscreteProcess(rayleigh); - - } else if (particleName == "e-") { + if (particleName == "gamma") { // photon + // photoelectric effect + auto *photoelectricEffect = new G4PhotoElectricEffect(); + // photoelectricEffect->ActivateAuger(true); + // photoelectricEffect->SetCutForLowEnSecElectrons(0.250 * keV); + // photoelectricEffect->SetCutForLowEnSecPhotons(0.250 * keV); + photoelectricEffect->SetEmModel(new G4LivermorePhotoElectricModel()); // Set the model (Livermore) + helper->RegisterProcess(photoelectricEffect, particle); - // electron + // Compton scattering + auto *comptonScattering = new G4ComptonScattering(); + comptonScattering->SetEmModel(new G4LivermoreComptonModel()); // Set the model (Livermore) + helper->RegisterProcess(comptonScattering, particle); - G4eMultipleScattering* eMultipleScattering = new G4eMultipleScattering(); - G4eIonisation* eIonisation = new G4eIonisation(); - G4eBremsstrahlung* eBremsstrahlung = new G4eBremsstrahlung(); + // gamma conversion + auto *gammaConversion = new G4GammaConversion(); + gammaConversion->SetEmModel(new G4LivermoreGammaConversionModel()); // Set the model (Livermore) + helper->RegisterProcess(gammaConversion, particle); - processManager -> AddProcess(eMultipleScattering, -1, 1, 1); - processManager -> AddProcess(eIonisation, -1, 2, 2); - processManager -> AddProcess(eBremsstrahlung, -1, -1, 3); + // Rayleigh scattering + auto *rayleighScattering = new G4RayleighScattering(); + rayleighScattering->SetEmModel(new G4LivermoreRayleighModel()); // Set the model (Livermore) + helper->RegisterProcess(rayleighScattering, particle); + } else if (particleName == "e-") { // electron + // multiple scattering + helper->RegisterProcess(new G4eMultipleScattering(), particle); - } else if (particleName == "e+") { - // positron - processManager->AddProcess(new G4eMultipleScattering, -1, 1, 1); - processManager->AddProcess(new G4eIonisation, -1, 2, 2); - processManager->AddProcess(new G4eBremsstrahlung, -1, 3, 3); - processManager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); + // ionization + auto *ionization = new G4eIonisation(); + ionization->SetEmModel(new G4LivermoreIonisationModel()); // Set the model (Livermore) + ionization->SetFluctModel(new G4UniversalFluctuation()); + helper->RegisterProcess(ionization, particle); - //} else if( particleName == "mu+" || - // particleName == "mu-" ) { - //muon - //processManager->AddProcess(new G4MuMultipleScattering, -1, 1, 1); - //processManager->AddProcess(new G4MuIonisation, -1, 2, 2); - //processManager->AddProcess(new G4MuBremsstrahlung, -1, 3, 3); - //processManager->AddProcess(new G4MuPairProduction, -1, 4, 4); - - } else if( particleName == "proton" || - particleName == "pi-" || - particleName == "pi+" ) { - //proton - /* - G4hImpactIonisation* hIonisation = new G4hImpactIonisation(); - hIonisation->SetPixeCrossSectionK("ecpssr"); - hIonisation->SetPixeCrossSectionL("ecpssr"); - hIonisation->SetPixeCrossSectionM("ecpssr"); - hIonisation->SetPixeProjectileMinEnergy(1.* keV); - hIonisation->SetPixeProjectileMaxEnergy(200. * MeV); - hIonisation->SetCutForSecondaryPhotons(250. * eV); - hIonisation->SetCutForAugerElectrons(250. * eV); - */ - G4hIonisation* hIonisation = new G4hIonisation(); + // Bremsstrahlung + auto *bremsstrahlung = new G4eBremsstrahlung(); + bremsstrahlung->SetEmModel(new G4LivermoreBremsstrahlungModel()); // Set the model (Livermore) + helper->RegisterProcess(bremsstrahlung, particle); + } else if (particleName == "e+") { // positron + // multiple scattering + helper->RegisterProcess(new G4eMultipleScattering(), particle); - G4hMultipleScattering* hMultipleScattering = new G4hMultipleScattering(); + // ionization + helper->RegisterProcess(new G4eIonisation(), particle); - processManager -> AddProcess(hMultipleScattering, -1, 1, 1); - processManager -> AddProcess(hIonisation, -1, 2, 2); - - } else if( particleName == "alpha" || - particleName == "He3" || - particleName == "pi-" || - particleName == "pi+" || - particleName == "GenericIon" ) { + // Bremsstrahlung + auto *bremsstrahlung = new G4eBremsstrahlung(); + bremsstrahlung->SetEmModel(new G4LivermoreBremsstrahlungModel()); // Set the model (Livermore) + helper->RegisterProcess(bremsstrahlung, particle); - // pions, alpha, ions (should never occur in the current example) - processManager->AddProcess(new G4hMultipleScattering, -1, 1, 1); - processManager->AddProcess(new G4ionIonisation, -1, 2, 2); - - } else if ((!particle->IsShortLived()) && - (particle->GetPDGCharge() != 0.0) && - (particle->GetParticleName() != "chargedgeantino")) { - //all others charged particles except geantino - processManager->AddProcess(new G4hMultipleScattering, -1, 1, 1); - processManager->AddProcess(new G4hIonisation, -1, 2, 2); + // annihilation + auto *annihilation = new G4eplusAnnihilation(); + annihilation->SetEmModel(new G4PenelopeAnnihilationModel()); // Set the model (Penelope) + helper->RegisterProcess(annihilation, particle); + // } else if( particleName == "mu+" || particleName == "mu-") { + // // muon + // helper->RegisterProcess(new G4MuMultipleScattering, particle); + // helper->RegisterProcess(new G4MuIonisation, particle); + // helper->RegisterProcess(new G4MuBremsstrahlung, particle); + // helper->RegisterProcess(new G4MuPairProduction, particle); + } else if (particleName == "proton" || particleName == "pi-" || particleName == "pi+") { + helper->RegisterProcess(new G4hMultipleScattering(), particle); + helper->RegisterProcess(new G4hIonisation(), particle); +/* + // proton + // auto *ionization = new G4hImpactIonisation(); + // ionization->SetPixeCrossSectionK("ecpssr"); + // ionization->SetPixeCrossSectionL("ecpssr"); + // ionization->SetPixeCrossSectionM("ecpssr"); + // ionization->SetPixeProjectileMinEnergy(1.* keV); + // ionization->SetPixeProjectileMaxEnergy(200. * MeV); + // ionization->SetCutForSecondaryPhotons(250. * eV); + // ionization->SetCutForAugerElectrons(250. * eV); + + auto *ionization = new G4hIonisation(); + auto *multipleScattering = new G4hMultipleScattering(); + + processManager->AddProcess(multipleScattering, -1, 1, 1); + processManager->AddProcess(ionization, -1, 2, 2); +*/ + } else if (particleName == "alpha" || particleName == "He3" || particleName == "pi-" || particleName == "pi+" || particleName == "GenericIon") { + // pion, alpha, ion (should never occur in the current example) + helper->RegisterProcess(new G4hMultipleScattering, particle); + helper->RegisterProcess(new G4ionIonisation, particle); + } else if ((!particle->IsShortLived()) && (particle->GetPDGCharge() != 0.0) && (particle->GetParticleName() != "chargedgeantino")) { + // every other charged particle, except geantino + helper->RegisterProcess(new G4hMultipleScattering, particle); + helper->RegisterProcess(new G4hIonisation, particle); + } } - } } -#include "G4Decay.hh" +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void eRositaPhysicsList::ConstructGeneral() { - // Add Decay Process - G4Decay* theDecayProcess = new G4Decay(); - auto theParticleIterator=GetParticleIterator(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* processManager = particle->GetProcessManager(); - if (theDecayProcess->IsApplicable(*particle)) { - processManager ->AddProcess(theDecayProcess); - // set ordering for PostStepDoIt and AtRestDoIt - processManager ->SetProcessOrdering(theDecayProcess, idxPostStep); - processManager ->SetProcessOrdering(theDecayProcess, idxAtRest); + auto *helper = G4PhysicsListHelper::GetPhysicsListHelper(); + + // Add decay process + auto *decay = new G4Decay(); + + auto particleIterator = GetParticleIterator(); + particleIterator->reset(); + + while ((*particleIterator)()) { + auto *particle = particleIterator->value(); + + if (decay->IsApplicable(*particle)) { + if (verboseLevel > 1) { + G4cout << "### Decays for " << particle->GetParticleName() << G4endl; + } + helper->RegisterProcess(decay, particle); +/* + // Set ordering for PostStepDoIt and AtRestDoIt + processManager->SetProcessOrdering(decay, idxPostStep); + processManager->SetProcessOrdering(decay, idxAtRest); +*/ + } } - } } - + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void eRositaPhysicsList::ConstructProcess() +{ + AddTransportation(); + ConstructEM(); + ConstructGeneral(); + // AddStepMax(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void eRositaPhysicsList::SetCuts() +{ + // Set the default cut value for all particle types + SetCutsWithDefault(); + + // Set the secondary production cut lower than 990. eV. Very important for processes at low energies. + constexpr auto ENERGY_LOW_LIMIT{250. * eV}; + constexpr auto ENERGY_HIGH_LIMIT{100. * GeV}; + + G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(ENERGY_LOW_LIMIT, ENERGY_HIGH_LIMIT); + + if (verboseLevel > 0) { + DumpCutValuesTable(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... /* #include "G4StepLimiter.hh" @@ -296,39 +360,22 @@ void eRositaPhysicsList::ConstructGeneral() void eRositaPhysicsList::AddStepMax() { - // Step limitation seen as a process - G4StepLimiter* stepLimiter = new G4StepLimiter(); - ////G4UserSpecialCuts* userCuts = new G4UserSpecialCuts(); - - theParticleIterator->reset(); - while ((*theParticleIterator)()){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* processManager = particle->GetProcessManager(); + auto *helper = G4PhysicsListHelper::GetPhysicsListHelper(); - if (particle->GetPDGCharge() != 0.0) - { - processManager ->AddDiscreteProcess(stepLimiter); - ////processManager ->AddDiscreteProcess(userCuts); + // Step limitation seen as a process + // auto *stepLimiter = new G4StepLimiter(); + // // auto *userCuts = new G4UserSpecialCuts(); + + particleIterator->reset(); + + while ((*particleIterator)()){ + auto *particle = particleIterator->value(); + // auto *processManager = particle->GetProcessManager(); + + if (particle->GetPDGCharge() != 0.0) { + helper->RegisterProcess(stepLimiter, particle); + // helper->RegisterProcess(userCuts, particle); } - } + } } */ - -void eRositaPhysicsList::SetCuts() -{ - //G4VUserPhysicsList::SetCutsWithDefault method sets - //the default cut value for all particle types - // - SetCutsWithDefault(); - - // Set the secondary production cut lower than 990. eV - // Very important for processes at low energies - - G4double lowLimit = 250. * eV; - G4double highLimit = 100. * GeV; - G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(lowLimit, highLimit); - - if (verboseLevel>0) DumpCutValuesTable(); -} - - diff --git a/examples/advanced/eRosita/application/src/eRositaPrimaryGeneratorAction.cc b/examples/advanced/eRosita/application/src/eRositaPrimaryGeneratorAction.cc index 9e75b722f2..725e1b2b95 100644 --- a/examples/advanced/eRosita/application/src/eRositaPrimaryGeneratorAction.cc +++ b/examples/advanced/eRosita/application/src/eRositaPrimaryGeneratorAction.cc @@ -23,10 +23,6 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "eRositaActionInitialization.hh" #include "eRositaDetectorConstruction.hh" @@ -39,50 +35,42 @@ #include "G4ParticleTable.hh" #include "G4ParticleDefinition.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -eRositaPrimaryGeneratorAction::eRositaPrimaryGeneratorAction() - : G4VUserPrimaryGeneratorAction() -{ - G4int n_particle = 1; -// G4int n_particle = 1000; - particleGun = new G4ParticleGun(n_particle); +eRositaPrimaryGeneratorAction::eRositaPrimaryGeneratorAction() +{ + constexpr auto NUMBER_OF_PARTICLES{1}; + particleGun = new G4ParticleGun(NUMBER_OF_PARTICLES); -// default particle + // default particle + auto *particleTable = G4ParticleTable::GetParticleTable(); + auto *particle = particleTable->FindParticle("proton"); - G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); - G4ParticleDefinition* particle = particleTable->FindParticle("proton"); - - particleGun->SetParticleDefinition(particle); - xdirection = 0.0; // x component of initial momentum vector - ydirection = -0.5; // y -"- - zdirection = -1.0; // z -"- - particleGun->SetParticleMomentumDirection( - G4ThreeVector(xdirection,ydirection,zdirection)); - particleGun->SetParticleEnergy(100.0*MeV); + constexpr auto PARTICLE_ENERGY{100.0 * MeV}; + particleGun->SetParticleDefinition(particle); + particleGun->SetParticleMomentumDirection(G4ThreeVector(momentumDirectionX, momentumDirectionY, momentumDirectionZ)); + particleGun->SetParticleEnergy(PARTICLE_ENERGY); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... eRositaPrimaryGeneratorAction::~eRositaPrimaryGeneratorAction() { - delete particleGun; + delete particleGun; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void eRositaPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) -{ +void eRositaPrimaryGeneratorAction::GeneratePrimaries(G4Event* event) +{ + constexpr auto INITIAL_POSITION_X{0.0 * cm}; + constexpr auto INITIAL_POSITION_Y{2.25 * cm}; + constexpr auto INITIAL_POSITION_Z{4.0 * cm}; + + positionX = INITIAL_POSITION_X; + positionY = INITIAL_POSITION_Y; + positionZ = INITIAL_POSITION_Z; - xposition = 0.0*cm; - yposition = 2.25*cm; - zposition = 4.0*cm; - - particleGun->SetParticlePosition( - G4ThreeVector(xposition,yposition,zposition)); - - particleGun->GeneratePrimaryVertex(anEvent); + particleGun->SetParticlePosition(G4ThreeVector(positionX, positionY, positionZ)); + particleGun->GeneratePrimaryVertex(event); } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/examples/advanced/eRosita/application/src/eRositaRunAction.cc b/examples/advanced/eRosita/application/src/eRositaRunAction.cc index b8b776a390..a06a3b5bd7 100644 --- a/examples/advanced/eRosita/application/src/eRositaRunAction.cc +++ b/examples/advanced/eRosita/application/src/eRositaRunAction.cc @@ -23,50 +23,51 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// -#include "eRositaRunAction.hh" #include "AnalysisManager.hh" +#include "eRositaRunAction.hh" #include "G4Run.hh" +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... eRositaRunAction::eRositaRunAction() { } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + eRositaRunAction::~eRositaRunAction() { } -void eRositaRunAction::BeginOfRunAction(const G4Run* run) +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void eRositaRunAction::BeginOfRunAction(const G4Run *run) { timerRun.Start(); if (IsMaster()) { G4cout << "--- Run " << run->GetRunID() << " (master) start." << G4endl; AnalysisManager::Instance(); - } - else - { + } else { G4cout << "--- Run " << run->GetRunID() << " (worker) start." << G4endl; } } -void eRositaRunAction::EndOfRunAction(const G4Run* run) +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void eRositaRunAction::EndOfRunAction(const G4Run *run) { if (IsMaster()) { G4cout << "--- Run " << run->GetRunID() << " (master) end." - << "Event total count = " << run->GetNumberOfEvent() << "." + << " Total number of events: " << run->GetNumberOfEvent() << "." << G4endl; AnalysisManager::Instance()->Destroy(); - } - else - { + } else { G4cout << "--- Run " << run->GetRunID() << " (worker) end." << G4endl; } timerRun.Stop(); - std::cout << " " << timerRun << std::endl; + G4cout << " " << timerRun << G4endl; } diff --git a/examples/advanced/eRosita/application/src/eRositaSteppingAction.cc b/examples/advanced/eRosita/application/src/eRositaSteppingAction.cc index 3dfc825cb2..c92506e89a 100644 --- a/examples/advanced/eRosita/application/src/eRositaSteppingAction.cc +++ b/examples/advanced/eRosita/application/src/eRositaSteppingAction.cc @@ -23,25 +23,18 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "eRositaSteppingAction.hh" #include "G4SteppingManager.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... eRositaSteppingAction::eRositaSteppingAction() { } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -//void eRositaSteppingAction::UserSteppingAction(const G4Step*) -//{ -//} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +eRositaSteppingAction::~eRositaSteppingAction() +{ +} diff --git a/examples/advanced/eRosita/application/src/eRositaSteppingVerbose.cc b/examples/advanced/eRosita/application/src/eRositaSteppingVerbose.cc index e697e9233f..c7e5c94af7 100644 --- a/examples/advanced/eRosita/application/src/eRositaSteppingVerbose.cc +++ b/examples/advanced/eRosita/application/src/eRositaSteppingVerbose.cc @@ -23,159 +23,164 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "eRositaSteppingVerbose.hh" #include "G4SteppingManager.hh" #include "G4UnitsTable.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... eRositaSteppingVerbose::eRositaSteppingVerbose() { } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... eRositaSteppingVerbose::~eRositaSteppingVerbose() { } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void eRositaSteppingVerbose::StepInfo() { - CopyState(); - - G4int prec = G4cout.precision(3); + CopyState(); - 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; + G4int precision = 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) << "KineticEnergy" + << " " + << std::setw(9) << "dEStep" + << " " + << std::setw(10) << "StepLength" + << std::setw(10) << "TrackLength" + << 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() != nullptr) { + G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << std::setw(10) << "OutOfWorld"; + } + + if (fStep->GetPostStepPoint()->GetProcessDefinedStep() != nullptr) { + 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 secondaries - " + << "#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 << " :-----------------------------" + << "----------------------------------" + << "-- EndOfSecondaries Info ---------------" + << 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); + G4cout.precision(precision); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void eRositaSteppingVerbose::TrackingStarted() { + CopyState(); - CopyState(); -G4int prec = G4cout.precision(3); - if( verboseLevel > 0 ){ + G4int precision = G4cout.precision(3); - 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; + if (verboseLevel > 0) { + G4cout << std::setw(5) << "Step#" + << " " + << std::setw(6) << "X" + << " " + << std::setw(6) << "Y" + << " " + << std::setw(6) << "Z" + << " " + << std::setw(9) << "KineticEnergy" + << " " + << std::setw(9) << "dEStep" + << " " + << std::setw(10) << "StepLength" + << std::setw(10) << "TrackLength" + << 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") - << " "; + 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"; + if (fTrack->GetNextVolume() != nullptr) { + G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << std::setw(10) << "OutOfWorld"; + } + G4cout << " initStep" << G4endl; } - G4cout << " initStep" << G4endl; - } - G4cout.precision(prec); + G4cout.precision(precision); } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/advanced/eRosita/application/src/eRositaTrackerHit.cc b/examples/advanced/eRosita/application/src/eRositaTrackerHit.cc index 858929eed4..432efe6b5e 100644 --- a/examples/advanced/eRosita/application/src/eRositaTrackerHit.cc +++ b/examples/advanced/eRosita/application/src/eRositaTrackerHit.cc @@ -23,79 +23,98 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// - -#include "eRositaTrackerHit.hh" - -#include "G4UnitsTable.hh" -#include "G4VVisManager.hh" -#include "G4Circle.hh" -#include "G4Colour.hh" -#include "G4VisAttributes.hh" -#include "G4ios.hh" #include "AnalysisManager.hh" +#include "eRositaTrackerHit.hh" -G4ThreadLocal G4Allocator* eRositaTrackerHitAllocator=0; +#include "G4Circle.hh" +#include "G4Colour.hh" +#include "G4ios.hh" +#include "G4UnitsTable.hh" +#include "G4VisAttributes.hh" +#include "G4VVisManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4ThreadLocal G4Allocator *trackerHitAllocator{nullptr}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... eRositaTrackerHit::eRositaTrackerHit() -{} +{ +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... eRositaTrackerHit::~eRositaTrackerHit() -{} - -eRositaTrackerHit::eRositaTrackerHit(const eRositaTrackerHit& right) : G4VHit() { - trackID = right.trackID; - chamberNb = right.chamberNb; - edep = right.edep; - pos = right.pos; } -const eRositaTrackerHit& eRositaTrackerHit::operator=(const eRositaTrackerHit& right) +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +eRositaTrackerHit::eRositaTrackerHit(const eRositaTrackerHit& right) : + trackIdentifier(right.trackIdentifier), + chamberNumber(right.chamberNumber), + depositedEnergy(right.depositedEnergy), + position(right.position) { - trackID = right.trackID; - chamberNb = right.chamberNb; - edep = right.edep; - pos = right.pos; - return *this; } -G4bool eRositaTrackerHit::operator==(const eRositaTrackerHit& right) const +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +auto eRositaTrackerHit::operator=(const eRositaTrackerHit& right) -> const eRositaTrackerHit& { - return (this==&right) ? true : false; + trackIdentifier = right.trackIdentifier; + chamberNumber = right.chamberNumber; + depositedEnergy = right.depositedEnergy; + position = right.position; + + return *this; } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +auto eRositaTrackerHit::operator==(const eRositaTrackerHit& right) const -> G4bool +{ + return this == &right; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + void eRositaTrackerHit::Draw() { - G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); - if(pVVisManager) - { - G4Circle circle(pos); - circle.SetScreenSize(2.); - circle.SetFillStyle(G4Circle::filled); - G4Colour colour(1., 0., 0.); - G4VisAttributes attribs(colour); - circle.SetVisAttributes(attribs); - pVVisManager->Draw(circle); - } + auto *visualizationManager = G4VVisManager::GetConcreteInstance(); + if (visualizationManager != nullptr) { + constexpr auto CIRCLE_SCREEN_SIZE = 2.; + + G4Circle circle(position); + circle.SetScreenSize(CIRCLE_SCREEN_SIZE); + circle.SetFillStyle(G4Circle::filled); + G4Colour colour(1., 0., 0.); + G4VisAttributes attributes(colour); + circle.SetVisAttributes(attributes); + visualizationManager->Draw(circle); + } } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + void eRositaTrackerHit::Print() { - G4cout << " trackID: " << trackID - << " energy deposit: " << G4BestUnit(edep, "Energy") - << " position: " << G4BestUnit(pos, "Length") << G4endl; + G4cout << " track identifier: " << trackIdentifier + << " deposited energy: " << G4BestUnit(depositedEnergy, "Energy") + << " position: " << G4BestUnit(position, "Length") << G4endl; } -void eRositaTrackerHit::PrintToFile() +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void eRositaTrackerHit::PrintToFile() const { - //out << trackID - // << " " << edep - // << " " << pos.x() - // << " " << pos.y() - // << " " << pos.z() - // << std::endl; - AnalysisManager::Instance()->Score(edep); + // dataFile << trackIdentifier + // << " " << depositedEnergy + // << " " << position.x() + // << " " << position.y() + // << " " << position.z() + // << std::endl; + AnalysisManager::Instance()->Score(depositedEnergy); } diff --git a/examples/advanced/eRosita/application/src/eRositaTrackerSD.cc b/examples/advanced/eRosita/application/src/eRositaTrackerSD.cc index c125e4d6ff..83b9777c79 100644 --- a/examples/advanced/eRosita/application/src/eRositaTrackerSD.cc +++ b/examples/advanced/eRosita/application/src/eRositaTrackerSD.cc @@ -23,90 +23,96 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// - +#include "AnalysisManager.hh" #include "eRositaTrackerSD.hh" #include "eRositaTrackerHit.hh" +#include +#include + #include "G4HCofThisEvent.hh" -#include "G4Step.hh" -#include "G4ThreeVector.hh" -#include "G4SDManager.hh" #include "G4ios.hh" #include "G4ParticleTypes.hh" +#include "G4SDManager.hh" +#include "G4Step.hh" +#include "G4ThreeVector.hh" -#include -#include - -#include "AnalysisManager.hh" - +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... eRositaTrackerSD::eRositaTrackerSD(G4String name) : G4VSensitiveDetector(name) { - G4String HCname; - collectionName.insert(HCname="trackerCollection"); + constexpr auto TRACKER_COLLECTION_NAME = "TrackerCollection"; + collectionName.insert(TRACKER_COLLECTION_NAME); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + eRositaTrackerSD::~eRositaTrackerSD() { } -void eRositaTrackerSD::Initialize(G4HCofThisEvent* HCE) +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void eRositaTrackerSD::Initialize(G4HCofThisEvent* collection) { - trackerCollection = - new eRositaTrackerHitsCollection(SensitiveDetectorName, collectionName[0]); - static G4int HCID = -1; - if (HCID < 0) - { - HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); - } - HCE->AddHitsCollection( HCID, trackerCollection); + trackerCollection = new eRositaTrackerHitsCollection(SensitiveDetectorName, collectionName[0]); + static G4int collectionIdentifier = -1; + + if (collectionIdentifier < 0) { + collectionIdentifier = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); + } + collection->AddHitsCollection(collectionIdentifier, trackerCollection); } -G4bool eRositaTrackerSD::ProcessHits(G4Step* aStep, G4TouchableHistory*) +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +auto eRositaTrackerSD::ProcessHits(G4Step* step, G4TouchableHistory*) -> G4bool { - if(aStep->GetTrack()->GetDefinition() != G4Gamma::GammaDefinition()) return false; + if (step->GetTrack()->GetDefinition() != G4Gamma::GammaDefinition()) { + return false; + } -// G4double edep = aStep->GetTotalEnergyDeposit(); - G4double edep = aStep->GetPreStepPoint()->GetKineticEnergy(); - if (edep == 0.) return false; + // auto depositedEnergy = step->GetTotalEnergyDeposit(); + auto depositedEnergy = step->GetPreStepPoint()->GetKineticEnergy(); + if (depositedEnergy == 0.) { + return false; + } - eRositaTrackerHit* newHit = new eRositaTrackerHit(); - newHit->SetTrackID(aStep->GetTrack()->GetTrackID()); - //newHit->SetChamberNb(aStep->GetPreStepPoint()->GetTouchableHandle() - // ->GetCopyNumber()); - newHit->SetEdep(edep); - newHit->SetPos(aStep->GetPostStepPoint()->GetPosition()); - trackerCollection->insert(newHit); - - //newHit->Print(); - //newHit->Draw(); + auto *newHit = new eRositaTrackerHit(); + newHit->SetTrackIdentifier(step->GetTrack()->GetTrackID()); + // newHit->SetChamberNumber(step->GetPreStepPoint()->GetTouchableHandle()->GetCopyNumber()); + newHit->SetDepositedEnergy(depositedEnergy); + newHit->SetPosition(step->GetPostStepPoint()->GetPosition()); + trackerCollection->insert(newHit); - //ofstream out("ASCII"); - //newHit->PrintToFile(out); - //out.close(); + // newHit->Print(); + // newHit->Draw(); - return true; + // std::ofstream dataFile("ASCII"); + // newHit->PrintToFile(dataFile); + // dataFile.close(); + + return true; } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + void eRositaTrackerSD::EndOfEvent(G4HCofThisEvent*) { - G4int NbHits = trackerCollection->entries(); - - if (verboseLevel > 0) - { - - G4cout << std::endl - << "Hits Collection: in this event they are " << NbHits - << " hits in the tracker chambers: " << G4endl; - for (G4int i=0;iPrint(); - - } + G4int numberOfHits = trackerCollection->entries(); - for (G4int i=0; iPrintToFile(); + if (verboseLevel > 0) { + G4cout << G4endl + << "Hits collection: in this event there are " << numberOfHits + << " hits in the tracker chambers: " << G4endl; + + for (G4int i = 0; i < numberOfHits; i++) { + (*trackerCollection)[i]->Print(); + } } + + for (G4int i = 0; i < numberOfHits; i++) { + (*trackerCollection)[i]->PrintToFile(); + }; } diff --git a/examples/advanced/eRosita/eRosita.cc b/examples/advanced/eRosita/eRosita.cc index 5a21c26594..a2864c2df8 100644 --- a/examples/advanced/eRosita/eRosita.cc +++ b/examples/advanced/eRosita/eRosita.cc @@ -23,77 +23,74 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// -// + #include "eRositaActionInitialization.hh" #include "eRositaDetectorConstruction.hh" +#include "eRositaEventAction.hh" #include "eRositaPhysicsList.hh" #include "eRositaPrimaryGeneratorAction.hh" #include "eRositaRunAction.hh" -#include "eRositaEventAction.hh" #include "eRositaSteppingAction.hh" #include "eRositaSteppingVerbose.hh" + #include "G4RunManagerFactory.hh" +#include "G4UIExecutive.hh" #include "G4UImanager.hh" #include "G4VisExecutive.hh" -#include "G4UIExecutive.hh" - -int main(int argc,char** argv) +auto main(int argumentCount, char** argumentVector) -> int { - // User Verbose output class - // - G4VSteppingVerbose* verbosity = new eRositaSteppingVerbose; - G4VSteppingVerbose::SetInstance(verbosity); - - // Run manager - // - auto* runManager = G4RunManagerFactory::CreateRunManager(); - G4int nThreads = 4; - runManager->SetNumberOfThreads(nThreads); - - G4cout << "***********************" << G4endl; - G4cout << "*** Seed: " << G4Random::getTheSeed() << " ***" << G4endl; - G4cout << "***********************" << G4endl; + // User verbose output class + // + auto *verbosity = new eRositaSteppingVerbose(); + G4VSteppingVerbose::SetInstance(verbosity); - runManager->SetUserInitialization(new eRositaDetectorConstruction); - runManager->SetUserInitialization(new eRositaPhysicsList); - runManager->SetUserInitialization(new eRositaActionInitialization()); + // Run manager + // + auto *runManager = G4RunManagerFactory::CreateRunManager(); - // Initialize G4 kernel - // - runManager->Initialize(); - - // Get the pointer to the User Interface manager - // - G4UImanager * UImanager = G4UImanager::GetUIpointer(); + constexpr auto NUMBER_OF_THREADS{4}; + runManager->SetNumberOfThreads(NUMBER_OF_THREADS); - if (argc != 1) // batch mode - { - G4String command = "/control/execute "; - G4String fileName = argv[1]; - UImanager->ApplyCommand(command+fileName); - } - else // interactive mode : define visualization and UI terminal - { - G4VisManager* visManager = new G4VisExecutive; - visManager->Initialize(); + G4cout << "***********************" << G4endl; + G4cout << "** Seed: " << G4Random::getTheSeed() << " **" << G4endl; + G4cout << "***********************" << G4endl; - G4UIExecutive* ui = new G4UIExecutive(argc, argv); - UImanager->ApplyCommand("/control/execute vis.mac"); - ui->SessionStart(); - delete ui; + runManager->SetUserInitialization(new eRositaDetectorConstruction); + runManager->SetUserInitialization(new eRositaPhysicsList); + runManager->SetUserInitialization(new eRositaActionInitialization()); - delete visManager; + // Initialize GEANT4 kernel + // + runManager->Initialize(); + + // Get the pointer to the User Interface (UI) manager + // + auto *userInterfaceManager = G4UImanager::GetUIpointer(); + + if (argumentCount != 1) { // batch mode + G4String command = "/control/execute "; + G4String fileName = argumentVector[1]; + userInterfaceManager->ApplyCommand(command + fileName); + } else { // interactive mode : define visualization and UI terminal + auto *visualizationManager = new G4VisExecutive; + visualizationManager->Initialize(); + + auto *userInterface = new G4UIExecutive(argumentCount, argumentVector); + userInterfaceManager->ApplyCommand("/control/execute vis.mac"); + userInterface->SessionStart(); + + delete userInterface; + delete visualizationManager; } - // Free the store: user actions, physics_list and detector_description are - // owned and deleted by the run manager, so they should not - // be deleted in the main() program ! + // Free the store: + // user actions, physics list and detector description are + // owned and deleted by the run manager, + // so they should not be deleted in the main() program! - delete runManager; - delete verbosity; + delete runManager; + delete verbosity; - return 0; + return 0; } diff --git a/examples/advanced/eRosita/eRosita.in b/examples/advanced/eRosita/eRosita.in index 81b274b31c..2bb04125ea 100644 --- a/examples/advanced/eRosita/eRosita.in +++ b/examples/advanced/eRosita/eRosita.in @@ -1,17 +1,19 @@ -#------------------------------------------------- +# ---------------------------------------------- # # example input file for running eRosita # -# 10000 protons with energy 100 MeV are simulated +# 1000 protons with energy 100 MeV are simulated # -#------------------------------------------------- +# ---------------------------------------------- /control/verbose 2 -/run/verbose 2 -#/tracking/verbose 2 /gun/energy 100 MeV /gun/particle proton -/run/beamOn 10000 + +/run/verbose 2 +/tracking/verbose 0 + +/run/beamOn 1000 exit diff --git a/examples/advanced/eRosita/eRosita.out b/examples/advanced/eRosita/eRosita.out index 1945de22d9..6d3207cd9f 100644 --- a/examples/advanced/eRosita/eRosita.out +++ b/examples/advanced/eRosita/eRosita.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -20,22 +20,19 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** *********************** -*** Seed: 1 *** +** Seed: 1 ** *********************** -=============================================================================== -Geant4 eRosita example - based on a simplified version of eROSITA simulation +============================================================================================= +Geant4 eRosita example, based on a simplified version of eROSITA simulation. Further details can be found in: -M.G. Pia et al., 'PIXE Simulation With Geant4', IEEE Trans. Nucl. Sci., vol. 56, no. 6, pp. 3614-3649, 2009 -N. Meidinger et al., 'Development of the focal plane PNCCD camera system for the X-ray space telescope eROSITA', -NIM A 624, 321-329, 2010 -=============================================================================== + M. G. Pia et al., + 'PIXE Simulation With Geant4', + IEEE Trans. Nucl. Sci., vol. 56, no. 6, pp. 3614-3649, 2009 + N. Meidinger et al., + 'Development of the focal plane PNCCD camera system for the X-ray space telescope eROSITA', + NIM A 624, 321-329, 2010 +============================================================================================= -=============================================================================== - The use of G4LowEnergyIonisation, G4LowEnergyBremsstrahlung, -G4LowEnergyPhotoElectric, G4LowEnergyCompton, G4LowEnergyGammaConversion -in this example is intentional. These classes will be replaced by other classes -appropriate to the problem domain in a forthcoming Geant4 version -=============================================================================== The materials defined are : @@ -71,21 +68,13 @@ The materials defined are : - --------- WWWW ------- G4Exception-START -------- WWWW ------- -*** G4Exception : DET1010 - issued by : G4SDStructure::AddNewDetector() -TrackerChamberSD had already been stored in /eRosita/. Object pointer is overwritten. -It's users' responsibility to delete the old sensitive detector object. -*** This is just a warning message. *** --------- WWWW -------- G4Exception-END --------- WWWW ------- - +G4SDManager::AddNewCollection : the collection is registered at 1 New sensitive detector is registered at /eRosita/ -/run/verbose 2 -#/tracking/verbose 2 /gun/energy 100 MeV /gun/particle proton -/run/beamOn 10000 +/run/verbose 2 +/tracking/verbose 0 +/run/beamOn 1000 ======================================================================= ====== Electromagnetic Physics Parameters ======== ======================================================================= @@ -95,6 +84,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -122,7 +112,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -159,22 +149,22 @@ Screening factor 1 phot: for gamma SubType=12 BuildTable=0 LambdaPrime table from 200 keV to 100 TeV in 61 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - PhotoElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila compt: for gamma SubType=13 BuildTable=1 Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1 LambdaPrime table from 1 MeV to 100 TeV in 56 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Klein-Nishina : Emin= 0 eV Emax= 100 TeV + LivermoreCompton : Emin= 0 eV Emax= 100 TeV conv: for gamma SubType=14 BuildTable=1 Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai + LivermoreConversion : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -188,14 +178,14 @@ eIoni: for e- XStype:3 SubType=2 Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 TeV + LowEnergyIoni : Emin= 0 eV Emax= 100 TeV deltaVI eBrem: for e- XStype:4 SubType=3 dE/dx and range tables from 100 eV to 100 TeV in 84 bins Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + LowEnBrem : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai msc: for e+ SubType= 10 @@ -215,12 +205,12 @@ eBrem: for e+ XStype:4 SubType=3 Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + LowEnBrem : Emin= 0 eV Emax= 1 GeV AngularGen2BS eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai annihil: for e+ XStype:2 SubType=5 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eplus2gg : Emin= 0 eV Emax= 100 TeV + PenAnnih : Emin= 0 eV Emax= 100 TeV msc: for proton SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -273,14 +263,14 @@ Index : 0 used in the geometry : Yes Index : 1 used in the geometry : Yes Material : Copper Range cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um - Energy thresholds : gamma 250 eV e- 6.73228 keV e+ 6.59805 keV proton 100 eV + Energy thresholds : gamma 250 eV e- 6.73163 keV e+ 6.59835 keV proton 100 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes Material : Silicon Range cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um - Energy thresholds : gamma 250 eV e- 847.163 eV e+ 834.725 eV proton 100 eV + Energy thresholds : gamma 250 eV e- 847.233 eV e+ 834.691 eV proton 100 eV Region(s) which use this couple : DefaultRegionForTheWorld @@ -303,31 +293,240 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics 100.00 0k 1 4 4 0.00 World ### Run 0 starts. --- Run 0 (master) start. ----- eRosita event counter: 100 ----- eRosita event counter: 200 ----- eRosita event counter: 300 ----- eRosita event counter: 400 ----- eRosita event counter: 500 ----- eRosita event counter: 600 ----- eRosita event counter: 700 ----- eRosita event counter: 800 ----- eRosita event counter: 900 ----- eRosita event counter: 1000 ----- eRosita event counter: 2000 ----- eRosita event counter: 3000 ----- eRosita event counter: 4000 ----- eRosita event counter: 5000 ----- eRosita event counter: 6000 ----- eRosita event counter: 7000 ----- eRosita event counter: 8000 ----- eRosita event counter: 9000 ----- eRosita event counter: 10000 +>>> Event: 0 + 0 trajectories stored in this event. +>>> Event: 1 + 0 trajectories stored in this event. +>>> Event: 2 + 0 trajectories stored in this event. +>>> Event: 3 + 0 trajectories stored in this event. +>>> Event: 4 + 0 trajectories stored in this event. +>>> Event: 5 + 0 trajectories stored in this event. +>>> Event: 6 + 0 trajectories stored in this event. +>>> Event: 7 + 0 trajectories stored in this event. +>>> Event: 8 + 0 trajectories stored in this event. +>>> Event: 9 + 0 trajectories stored in this event. +>>> Event: 10 + 0 trajectories stored in this event. +>>> Event: 11 + 0 trajectories stored in this event. +>>> Event: 12 + 0 trajectories stored in this event. +>>> Event: 13 + 0 trajectories stored in this event. +>>> Event: 14 + 0 trajectories stored in this event. +>>> Event: 15 + 0 trajectories stored in this event. +>>> Event: 16 + 0 trajectories stored in this event. +>>> Event: 17 + 0 trajectories stored in this event. +>>> Event: 18 + 0 trajectories stored in this event. +>>> Event: 19 + 0 trajectories stored in this event. +>>> Event: 20 + 0 trajectories stored in this event. +>>> Event: 21 + 0 trajectories stored in this event. +>>> Event: 22 + 0 trajectories stored in this event. +>>> Event: 23 + 0 trajectories stored in this event. +>>> Event: 24 + 0 trajectories stored in this event. +>>> Event: 25 + 0 trajectories stored in this event. +>>> Event: 26 + 0 trajectories stored in this event. +>>> Event: 27 + 0 trajectories stored in this event. +>>> Event: 28 + 0 trajectories stored in this event. +>>> Event: 29 + 0 trajectories stored in this event. +>>> Event: 30 + 0 trajectories stored in this event. +>>> Event: 31 + 0 trajectories stored in this event. +>>> Event: 32 + 0 trajectories stored in this event. +>>> Event: 33 + 0 trajectories stored in this event. +>>> Event: 34 + 0 trajectories stored in this event. +>>> Event: 35 + 0 trajectories stored in this event. +>>> Event: 36 + 0 trajectories stored in this event. +>>> Event: 37 + 0 trajectories stored in this event. +>>> Event: 38 + 0 trajectories stored in this event. +>>> Event: 39 + 0 trajectories stored in this event. +>>> Event: 40 + 0 trajectories stored in this event. +>>> Event: 41 + 0 trajectories stored in this event. +>>> Event: 42 + 0 trajectories stored in this event. +>>> Event: 43 + 0 trajectories stored in this event. +>>> Event: 44 + 0 trajectories stored in this event. +>>> Event: 45 + 0 trajectories stored in this event. +>>> Event: 46 + 0 trajectories stored in this event. +>>> Event: 47 + 0 trajectories stored in this event. +>>> Event: 48 + 0 trajectories stored in this event. +>>> Event: 49 + 0 trajectories stored in this event. +>>> Event: 50 + 0 trajectories stored in this event. +>>> Event: 51 + 0 trajectories stored in this event. +>>> Event: 52 + 0 trajectories stored in this event. +>>> Event: 53 + 0 trajectories stored in this event. +>>> Event: 54 + 0 trajectories stored in this event. +>>> Event: 55 + 0 trajectories stored in this event. +>>> Event: 56 + 0 trajectories stored in this event. +>>> Event: 57 + 0 trajectories stored in this event. +>>> Event: 58 + 0 trajectories stored in this event. +>>> Event: 59 + 0 trajectories stored in this event. +>>> Event: 60 + 0 trajectories stored in this event. +>>> Event: 61 + 0 trajectories stored in this event. +>>> Event: 62 + 0 trajectories stored in this event. +>>> Event: 63 + 0 trajectories stored in this event. +>>> Event: 64 + 0 trajectories stored in this event. +>>> Event: 65 + 0 trajectories stored in this event. +>>> Event: 66 + 0 trajectories stored in this event. +>>> Event: 67 + 0 trajectories stored in this event. +>>> Event: 68 + 0 trajectories stored in this event. +>>> Event: 69 + 0 trajectories stored in this event. +>>> Event: 70 + 0 trajectories stored in this event. +>>> Event: 71 + 0 trajectories stored in this event. +>>> Event: 72 + 0 trajectories stored in this event. +>>> Event: 73 + 0 trajectories stored in this event. +>>> Event: 74 + 0 trajectories stored in this event. +>>> Event: 75 + 0 trajectories stored in this event. +>>> Event: 76 + 0 trajectories stored in this event. +>>> Event: 77 + 0 trajectories stored in this event. +>>> Event: 78 + 0 trajectories stored in this event. +>>> Event: 79 + 0 trajectories stored in this event. +>>> Event: 80 + 0 trajectories stored in this event. +>>> Event: 81 + 0 trajectories stored in this event. +>>> Event: 82 + 0 trajectories stored in this event. +>>> Event: 83 + 0 trajectories stored in this event. +>>> Event: 84 + 0 trajectories stored in this event. +>>> Event: 85 + 0 trajectories stored in this event. +>>> Event: 86 + 0 trajectories stored in this event. +>>> Event: 87 + 0 trajectories stored in this event. +>>> Event: 88 + 0 trajectories stored in this event. +>>> Event: 89 + 0 trajectories stored in this event. +>>> Event: 90 + 0 trajectories stored in this event. +>>> Event: 91 + 0 trajectories stored in this event. +>>> Event: 92 + 0 trajectories stored in this event. +>>> Event: 93 + 0 trajectories stored in this event. +>>> Event: 94 + 0 trajectories stored in this event. +>>> Event: 95 + 0 trajectories stored in this event. +>>> Event: 96 + 0 trajectories stored in this event. +>>> Event: 97 + 0 trajectories stored in this event. +>>> Event: 98 + 0 trajectories stored in this event. +---- eRosita number of events: 100 +>>> Event: 99 + 0 trajectories stored in this event. +>>> Event: 100 + 0 trajectories stored in this event. +---- eRosita number of events: 200 +>>> Event: 200 + 0 trajectories stored in this event. +---- eRosita number of events: 300 +>>> Event: 300 + 0 trajectories stored in this event. +---- eRosita number of events: 400 +>>> Event: 400 + 0 trajectories stored in this event. +---- eRosita number of events: 500 +>>> Event: 500 + 0 trajectories stored in this event. +---- eRosita number of events: 600 +>>> Event: 600 + 0 trajectories stored in this event. +---- eRosita number of events: 700 +>>> Event: 700 + 0 trajectories stored in this event. +---- eRosita number of events: 800 +>>> Event: 800 + 0 trajectories stored in this event. +---- eRosita number of events: 900 +>>> Event: 900 + 0 trajectories stored in this event. +---- eRosita number of events: 1000 Run terminated. Run Summary - Number of events processed : 10000 - User=32.920000s Real=33.790705s Sys=0.230000s ---- Run 0 (master) end.Event total count = 10000. - User=32.920000s Real=33.791288s Sys=0.230000s + Number of events processed : 1000 + User=4.110000s Real=4.134929s Sys=0.010000s +--- Run 0 (master) end. Total number of events: 1000. + User=4.110000s Real=4.135287s Sys=0.010000s G4 kernel has come to Quit state. UserDetectorConstruction deleted. UserPhysicsList deleted. @@ -353,13 +552,13 @@ Pool ID '15G4PrimaryVertex', size : 0.000961 MB Pool ID '17G4PrimaryParticle', size : 0.000961 MB Pool ID '15G4HCofThisEvent', size : 0.000961 MB Pool ID '16G4HitsCollection', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.203 MB -Pool ID '7G4Track', size : 0.405 MB +Pool ID '17G4DynamicParticle', size : 0.195 MB +Pool ID '7G4Track', size : 0.39 MB Pool ID '18G4TouchableHistory', size : 0.000961 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB Pool ID '17eRositaTrackerHit', size : 0.000961 MB Number of memory pools allocated: 14 of which, static: 0 -Dynamic pools deleted: 14 / Total memory freed: 0.63 MB +Dynamic pools deleted: 14 / Total memory freed: 0.6 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/advanced/eRosita/eRositaLong.in b/examples/advanced/eRosita/eRositaLong.in index 2caa8f5d4f..414aa1e287 100644 --- a/examples/advanced/eRosita/eRositaLong.in +++ b/examples/advanced/eRosita/eRositaLong.in @@ -1,17 +1,20 @@ -#------------------------------------------------- +# ----------------------------------------------- # # example input file for running eRosita # -# 1000 protons with energy 100 MeV are simulated +# 10000 protons with energy 100 MeV are simulated # -#------------------------------------------------- +# ----------------------------------------------- -#/control/verbose 2 -#/run/verbose 2 -#/tracking/verbose 2 +/control/verbose 2 -/gun/energy 100 MeV +/gun/energy 100 MeV /gun/particle proton -/run/beamOn 1000 + +/run/verbose 2 +/tracking/verbose 0 +/tracking/storeTrajectory 1 + +/run/beamOn 10000 exit diff --git a/examples/advanced/eRosita/vis.mac b/examples/advanced/eRosita/vis.mac index 57a9c990d0..b3689f95aa 100644 --- a/examples/advanced/eRosita/vis.mac +++ b/examples/advanced/eRosita/vis.mac @@ -1,38 +1,41 @@ # -# Macro file for the initialization phase of "exampleN02.cc" -# when runing in interactive mode -# -# Sets some default verbose +# Verbosity settings # + /control/verbose 2 /run/verbose 2 -#/tracking/verbose 2 +/tracking/verbose 0 + # # Create a scene handler for a specific graphics system # (Edit the next line(s) to choose another graphics system) # -#/vis/open OGL 600x600-0+0 -/vis/open OGL -/vis/ogl/set/displayListLimit 100000 -# -####/vis/open OGLSXm -####/vis/open HepRepFile -# + #/vis/open DAWNFILE +#/vis/open HepRepFile +#/vis/open OGL +/vis/open OGL 600x600-0+0 +#/vis/open OGLSXm +#/vis/ogl/set/displayListLimit 10000 + # -#draw scene +# Draw the scene # + /vis/drawVolume -# -/vis/viewer/set/viewpointThetaPhi 90 180 deg +/vis/viewer/set/viewpointThetaPhi 45 180 deg /vis/viewer/zoom 1.4 -# -# for drawing the tracks + +# for drawing tracks, uncomment the next line /vis/scene/add/trajectories smooth -# (if too many tracks cause core dump => /tracking/storeTrajectory 0) -# for drawing the hits, uncomment next line -# /vis/scene/add/hits -# (if you prefer refreshing each event, comment out next line) + +# if too many tracks cause core dump, then set /tracking/storeTrajectory 0 +/tracking/storeTrajectory 1 + +# for drawing hits, uncomment the next line +/vis/scene/add/hits + +# for refreshing each event, comment out the next line /vis/scene/endOfEventAction accumulate -# + /run/beamOn 100 diff --git a/examples/advanced/fastAerosol/History b/examples/advanced/fastAerosol/History index 2f07014cca..f05c4d6c85 100644 --- a/examples/advanced/fastAerosol/History +++ b/examples/advanced/fastAerosol/History @@ -4,6 +4,8 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-09-09 Susanna Guatelli (fastAerosol-V11-00-01) +- Ranecu engine removed, default engine used now ## 2021-12-10 Ben Morgan (fastAerosol-V11-00-00) - Change to new Markdown History format diff --git a/examples/advanced/fastAerosol/fastAerosol.cc b/examples/advanced/fastAerosol/fastAerosol.cc index 58832b1bca..5ad13ad2e6 100644 --- a/examples/advanced/fastAerosol/fastAerosol.cc +++ b/examples/advanced/fastAerosol/fastAerosol.cc @@ -58,11 +58,6 @@ int main(int argc,char** argv) ui = new G4UIExecutive(argc, argv); } - // Choose the random engine - // - CLHEP::RanecuEngine* randomEngine = new CLHEP::RanecuEngine; - G4Random::setTheEngine(randomEngine); - // Set mandatory initialization classes // //G4ScoringManager* scoringManager = @@ -116,7 +111,6 @@ int main(int argc,char** argv) // owned and deleted by the run manager, so they should not be deleted // in the main() program ! - delete randomEngine; delete visManager; delete runManager; //delete scoringManager; diff --git a/examples/advanced/fastAerosol/fastAerosol.out b/examples/advanced/fastAerosol/fastAerosol.out index 9c9aeb5ab4..b84f50fcea 100644 --- a/examples/advanced/fastAerosol/fastAerosol.out +++ b/examples/advanced/fastAerosol/fastAerosol.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -112,6 +114,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -139,7 +142,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -190,8 +193,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -653,6 +656,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -998,12873 +1006,12868 @@ See commands in /vis/modeling/trajectories/ for other options. ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.6 -49.9 -2.61e+03 50 0 0 0 World initStep - 1 -12.6 -49.9 -2.52e+03 50 0.0164 92.5 92.5 World hIoni - 2 -12.6 -49.9 -2.51e+03 50 0.00114 6.53 99 World hIoni - 3 -12.6 -50 -2.5e+03 50 0.00338 17.7 117 World hIoni - 4 -12.6 -50 -2.45e+03 50 0.00887 47.4 164 World hIoni - 5 -12.7 -50.1 -2.43e+03 49.9 0.00257 21.9 186 World hIoni - 6 -12.7 -50.2 -2.39e+03 49.9 0.00626 35.3 221 World hIoni - 7 -12.6 -50.4 -2.31e+03 49.9 0.0127 77.2 298 World hIoni - 8 -12.7 -50.7 -2.23e+03 49.9 0.0164 83.7 382 World hIoni - 9 -12.7 -50.7 -2.23e+03 49.9 3.46e-05 1.98 384 World hIoni - 10 -12.7 -50.7 -2.21e+03 49.9 0.00181 18.4 402 World hIoni - 11 -12.7 -50.8 -2.2e+03 49.9 0.00127 8.8 411 World hIoni - 12 -12.7 -50.8 -2.2e+03 49.9 0.00108 1.79 413 World hIoni - 13 -12.6 -51.2 -2.1e+03 49.9 0.0145 99.7 513 World hIoni - 14 -12.6 -51.3 -2.08e+03 49.9 0.00279 19.4 532 World hIoni - 15 -12.6 -51.3 -2.08e+03 49.9 0.00064 2.12 534 World hIoni - 16 -12.6 -51.5 -2.04e+03 49.9 0.00897 41.8 576 World hIoni - 17 -12.6 -51.6 -2.01e+03 49.8 0.00705 30.5 607 World hIoni - 18 -12.6 -51.8 -1.98e+03 49.8 0.00875 29.4 636 World hIoni - 19 -12.6 -52 -1.94e+03 49.8 0.00666 36.1 672 World hIoni - 20 -12.6 -52 -1.93e+03 49.8 0.000925 7.01 679 World hIoni - 21 -12.6 -52.4 -1.84e+03 49.8 0.0177 95.9 775 World hIoni - 22 -12.6 -52.6 -1.78e+03 49.8 0.014 59.8 835 cloudPV CoupledTransportation - 23 -12.6 -52.6 -1.78e+03 47.8 2 1.64 836 World CoupledTransportation - 24 -11.6 -52 -1.66e+03 47.7 0.0236 118 955 World hIoni - 25 -11.6 -52 -1.66e+03 47.7 0.000194 1.68 956 World hIoni - 26 -11.4 -51.9 -1.64e+03 47.7 0.00201 13.1 969 World hIoni - 27 -11 -51.8 -1.61e+03 47.7 0.00407 32.4 1e+03 World hIoni - 28 -9.72 -51.1 -1.5e+03 47.7 0.0187 109 1.11e+03 World hIoni - 29 -9.64 -51 -1.5e+03 47.7 0.000461 5.9 1.12e+03 World hIoni - 30 -9.6 -51 -1.49e+03 47.7 0.000333 3.7 1.12e+03 World hIoni - 31 -9.32 -50.9 -1.47e+03 47.7 0.00475 21.8 1.14e+03 World hIoni - 32 -8.94 -50.8 -1.44e+03 47.7 0.00565 30 1.17e+03 cloudPV CoupledTransportation - 33 -8.92 -50.8 -1.44e+03 45.4 2.31 1.81 1.17e+03 World CoupledTransportation - 34 -8.35 -50.2 -1.41e+03 45.4 0.00685 32.2 1.21e+03 World hIoni - 35 -8.35 -50.2 -1.41e+03 45.4 0 0.14 1.21e+03 World hIoni - 36 -8.12 -50 -1.39e+03 45.4 0.00236 13.3 1.22e+03 World hIoni - 37 -8.08 -49.9 -1.39e+03 45.4 0.000118 2.08 1.22e+03 World hIoni - 38 -7.99 -49.8 -1.39e+03 45.4 0.001 5.14 1.23e+03 World hIoni - 39 -7.99 -49.8 -1.38e+03 45.4 0 0.304 1.23e+03 World hIoni - 40 -7.67 -49.5 -1.37e+03 45.4 0.00426 18.1 1.25e+03 World hIoni - 41 -7.55 -49.4 -1.36e+03 45.3 0.00242 7.32 1.25e+03 World hIoni - 42 -7.44 -49.3 -1.35e+03 45.3 0.00114 6 1.26e+03 World hIoni - 43 -6.44 -48.2 -1.29e+03 45.3 0.0119 58.8 1.32e+03 World hIoni - 44 -6.21 -48 -1.28e+03 45.3 0.00474 14.1 1.33e+03 World hIoni - 45 -6.06 -47.8 -1.27e+03 45.3 0.00169 9.08 1.34e+03 World hIoni - 46 -5.73 -47.5 -1.25e+03 45.3 0.00465 19.1 1.36e+03 World hIoni - 47 -5.3 -47 -1.23e+03 45.3 0.00459 25.6 1.39e+03 World hIoni - 48 -4.96 -46.6 -1.21e+03 45.3 0.00253 20.4 1.41e+03 World hIoni - 49 -4.92 -46.6 -1.2e+03 45.3 0.000823 2.46 1.41e+03 World hIoni - 50 -4.27 -45.9 -1.17e+03 45.2 0.00939 37.6 1.45e+03 World hIoni - 51 -3.73 -45.4 -1.14e+03 45.2 0.00501 30.6 1.48e+03 World hIoni - 52 -3.3 -44.9 -1.11e+03 45.2 0.00416 24.7 1.5e+03 World hIoni - 53 -1.02 -43 -997 45.2 0.0218 114 1.62e+03 World hIoni - 54 -0.299 -42.5 -962 45.2 0.00777 34.9 1.65e+03 World hIoni - 55 4.59 -38.7 -723 45.1 0.0428 239 1.89e+03 World hIoni - 56 4.81 -38.6 -713 45.1 0.0012 10.3 1.9e+03 World hIoni - 57 6.32 -37.4 -640 45.1 0.0132 73.3 1.97e+03 World hIoni - 58 6.79 -37.1 -617 45.1 0.00351 22.2 2e+03 World hIoni - 59 7.3 -36.7 -595 45.1 0.00569 22.9 2.02e+03 World hIoni - 60 9.51 -35.3 -497 45.1 0.0187 97.5 2.12e+03 World hIoni - 61 12.1 -33.4 -378 45.1 0.0234 119 2.23e+03 World hIoni - 62 12.8 -32.9 -347 45 0.00783 31.1 2.27e+03 World hIoni - 63 13.8 -32.3 -306 45 0.00842 40.5 2.31e+03 cloudPV CoupledTransportation - 64 13.8 -32.3 -306 44.5 0.549 0.466 2.31e+03 World CoupledTransportation - 65 13.9 -32.2 -300 44.5 0.00113 6.02 2.31e+03 World hIoni - 66 14.7 -31.5 -263 44.5 0.00829 37.2 2.35e+03 World hIoni - 67 16.9 -29.8 -164 44.5 0.0201 98.9 2.45e+03 World hIoni - 68 17.5 -29.5 -141 44.4 0.00375 22.7 2.47e+03 World hIoni - 69 18.5 -28.7 -94.8 44.4 0.00855 46.5 2.52e+03 World hIoni - 70 19.3 -28.1 -60 44.4 0.00562 34.9 2.55e+03 World hIoni - 71 19.8 -27.7 -39.6 44.4 0.00256 20.4 2.57e+03 World hIoni - 72 19.8 -27.7 -38.6 44.4 8.89e-05 0.993 2.57e+03 World hIoni - 73 20.4 -27.3 -13.9 44.4 0.00791 24.7 2.6e+03 World hIoni - 74 20.7 -27 0.455 44.4 0.00425 14.3 2.61e+03 World hIoni - 75 20.8 -26.9 4.71 44.4 0.000374 4.26 2.62e+03 cloudPV CoupledTransportation - 76 20.9 -26.9 6.57 41.8 2.62 1.85 2.62e+03 World CoupledTransportation - 77 21.5 -26.4 26.8 41.8 0.00538 20.3 2.64e+03 World hIoni - 78 21.8 -26.2 36 41.8 0.00103 9.24 2.65e+03 World hIoni - 79 22.7 -25.4 63.9 41.8 0.00557 27.9 2.68e+03 World hIoni - 80 22.9 -25.2 71.7 41.8 0.00132 7.81 2.68e+03 World hIoni - 81 23.1 -25.1 78 41.7 0.00181 6.28 2.69e+03 World hIoni - 82 23.6 -24.6 94.8 41.7 0.00485 16.8 2.71e+03 World hIoni - 83 23.8 -24.5 99.5 41.7 0.000928 4.65 2.71e+03 World hIoni - 84 25.7 -22.8 162 41.7 0.0125 62.7 2.78e+03 World hIoni - 85 26.5 -22.1 189 41.7 0.00524 26.5 2.8e+03 World hIoni - 86 27.9 -20.8 237 41.7 0.00812 47.9 2.85e+03 World hIoni - 87 28 -20.6 242 41.7 0.00137 5.63 2.86e+03 World hIoni - 88 28.3 -20.4 251 41.7 0.00152 8.89 2.86e+03 World hIoni - 89 30.4 -18.4 323 41.7 0.0143 72.3 2.94e+03 World hIoni - 90 30.7 -18.1 335 41.7 0.00218 11.3 2.95e+03 World hIoni - 91 30.7 -18.1 335 41.7 1.92e-05 0.82 2.95e+03 World hIoni - 92 30.8 -18 337 41.7 5.22e-05 1.24 2.95e+03 World hIoni - 93 31.6 -17.3 364 41.7 0.00543 27.3 2.98e+03 World hIoni - 94 32.3 -16.6 389 41.7 0.00563 25 3e+03 World hIoni - 95 32.7 -16.1 404 41.6 0.00402 15.1 3.02e+03 World hIoni - 96 35.5 -13.4 499 41.6 0.0162 95.2 3.11e+03 World hIoni - 97 35.7 -13.2 507 41.6 0.000898 7.81 3.12e+03 World hIoni - 98 38.8 -10.3 608 41.6 0.0233 101 3.22e+03 World hIoni - 99 40.4 -8.67 660 41.6 0.0111 52.4 3.27e+03 World hIoni - 100 41.2 -7.86 687 41.6 0.00549 26.9 3.3e+03 World hIoni - 101 42.2 -6.83 721 41.6 0.00549 34 3.33e+03 World hIoni - 102 42.3 -6.72 724 41.6 0.000344 3.4 3.34e+03 World hIoni - 103 43 -6.03 747 41.6 0.00499 23.1 3.36e+03 World hIoni - 104 43.4 -5.56 763 41.6 0.00294 15.5 3.38e+03 World hIoni - 105 44.9 -4.14 810 41.5 0.00755 47.5 3.42e+03 World hIoni - 106 45.3 -3.71 825 41.5 0.00125 14.7 3.44e+03 World hIoni - 107 46 -2.99 849 41.5 0.00431 23.9 3.46e+03 World hIoni - 108 46.2 -2.74 857 41.5 0.00287 8.18 3.47e+03 World hIoni - 109 46.9 -2.06 880 41.5 0.00527 22.8 3.49e+03 World hIoni - 110 47 -1.97 883 41.5 0.000263 3.19 3.5e+03 World hIoni - 111 48 -0.944 917 41.5 0.007 33.9 3.53e+03 World hIoni - 112 48.7 -0.11 944 41.5 0.00493 27.7 3.56e+03 World hIoni - 113 49.1 0.285 957 41.5 0.00178 12.9 3.57e+03 World hIoni - 114 49.6 0.85 976 41.5 0.00497 18.3 3.59e+03 World hIoni - 115 49.8 1 980 41.5 0.00193 4.85 3.59e+03 World hIoni - 116 49.9 1.16 985 41.4 0.000975 5 3.6e+03 World hIoni - 117 50.9 2.18 1.02e+03 41.4 0.00501 33.3 3.63e+03 World hIoni - 118 52.8 4.23 1.09e+03 41.4 0.0139 66.7 3.7e+03 World hIoni - 119 54.8 6.39 1.16e+03 41.4 0.0144 70.9 3.77e+03 World hIoni - 120 55.8 7.48 1.19e+03 41.4 0.0073 35.1 3.81e+03 World hIoni - 121 58 9.92 1.27e+03 41.4 0.0135 76.8 3.88e+03 World hIoni - 122 58.6 10.6 1.29e+03 41.4 0.00535 22.7 3.9e+03 World hIoni - 123 61.4 13.7 1.39e+03 41.3 0.0202 99.5 4e+03 World hIoni - 124 62.6 15 1.43e+03 41.3 0.00955 42.3 4.05e+03 World hIoni - 125 64.5 17.1 1.5e+03 41.3 0.0138 65.2 4.11e+03 World hIoni - 126 64.7 17.3 1.5e+03 41.3 0.00132 6.53 4.12e+03 World hIoni - 127 64.9 17.6 1.51e+03 41.3 0.00271 7.95 4.13e+03 World hIoni - 128 71.9 26.1 1.76e+03 41.2 0.0573 252 4.38e+03 World hIoni - 129 72.1 26.5 1.77e+03 41.2 0.00169 10.2 4.39e+03 World hIoni - 130 72.3 26.7 1.78e+03 41.2 0.00107 6.06 4.39e+03 cloudPV CoupledTransportation - 131 72.3 26.7 1.78e+03 39.5 1.71 1.22 4.4e+03 World CoupledTransportation - 132 73.1 27.9 1.81e+03 39.5 0.00448 25.4 4.42e+03 World hIoni - 133 73.8 28.8 1.83e+03 39.5 0.00251 19.4 4.44e+03 World hIoni - 134 74.3 29.4 1.84e+03 39.5 0.00455 14 4.45e+03 World hIoni - 135 76.2 32.1 1.9e+03 39.5 0.0124 57.1 4.51e+03 World hIoni - 136 79.8 37.2 2e+03 39.5 0.0255 108 4.62e+03 World hIoni - 137 81.4 39.5 2.05e+03 39.4 0.0129 48.8 4.67e+03 World hIoni - 138 85 44.5 2.16e+03 39.4 0.0217 107 4.78e+03 World hIoni - 139 85.5 45.3 2.18e+03 39.4 0.00544 15.2 4.79e+03 World hIoni - 140 85.7 45.6 2.18e+03 39.4 0.0012 7.09 4.8e+03 World hIoni - 141 87 47.5 2.22e+03 39.4 0.00955 40.4 4.84e+03 World hIoni - 142 87.9 48.8 2.25e+03 39.4 0.00655 27.1 4.87e+03 World hIoni - 143 88 48.9 2.25e+03 39.4 0.000611 2.78 4.87e+03 World hIoni - 144 88.2 49.3 2.26e+03 39.4 0.00118 8.11 4.88e+03 World hIoni - 145 88.9 50.3 2.28e+03 39.4 0.00471 21 4.9e+03 World hIoni - 146 91.5 53.9 2.36e+03 39.3 0.0168 79.3 4.98e+03 World hIoni - 147 91.7 54.2 2.37e+03 39.3 0.000475 5.27 4.98e+03 World hIoni - 148 92.2 54.9 2.38e+03 39.3 0.00324 16.4 5e+03 World hIoni - 149 92.6 55.5 2.4e+03 39.3 0.00714 13.2 5.01e+03 World hIoni - 150 93.9 57.2 2.43e+03 39.3 0.00797 35.7 5.05e+03 World hIoni - 151 94.5 58.1 2.45e+03 39.3 0.00363 19.4 5.07e+03 World hIoni - 152 95.9 59.9 2.49e+03 39.3 0.00852 39 5.11e+03 World hIoni - 153 97.7 62.2 2.54e+03 39.3 0.0103 50.1 5.16e+03 World hIoni - 154 98.2 62.9 2.55e+03 39.3 0.00162 15.3 5.17e+03 World hIoni - 155 98.5 63.1 2.56e+03 39.3 0.00248 5.55 5.18e+03 World hIoni - 156 99.9 64.9 2.6e+03 39.3 0.00896 39.7 5.22e+03 detectorPV CoupledTransportation - 157 100 65 2.6e+03 34.6 4.71 1.49 5.22e+03 detectorPV detectorMesh - 158 100 65.1 2.6e+03 29.5 5.04 1.29 5.22e+03 detectorPV hIoni - 159 100 65.2 2.6e+03 25.3 4.19 1.01 5.22e+03 detectorPV hIoni - 160 100 65.2 2.6e+03 21.4 3.96 0.809 5.22e+03 detectorPV hIoni - 161 100 65.3 2.61e+03 18.1 3.24 0.64 5.22e+03 detectorPV hIoni - 162 100 65.3 2.61e+03 15.1 3.07 0.517 5.22e+03 detectorPV hIoni - 163 100 65.4 2.61e+03 12 3.09 0.414 5.22e+03 detectorPV hIoni - 164 100 65.4 2.61e+03 8.99 2.99 0.324 5.22e+03 detectorPV hIoni - 165 100 65.4 2.61e+03 6.24 2.75 0.25 5.22e+03 detectorPV hIoni - 166 100 65.4 2.61e+03 3.19 3.06 0.188 5.22e+03 detectorPV hIoni - 167 100 65.4 2.61e+03 0 3.19 0.0905 5.22e+03 detectorPV hIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 98.5 63.1 2.56e+03 0.00255 0 0 0 World initStep - 1 98.2 63.6 2.56e+03 0.00128 0.00127 1.16 1.16 World eIoni - 2 98.2 63.7 2.56e+03 0 0.00128 0.404 1.57 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 98.2 62.9 2.55e+03 0.00246 0 0 0 World initStep - 1 98.5 62.5 2.55e+03 0 0.00246 1.11 1.11 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 95.9 59.9 2.49e+03 0.00206 0 0 0 World initStep - 1 96.1 60.2 2.49e+03 0 0.00206 0.841 0.841 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 94.5 58.1 2.45e+03 0.00337 0 0 0 World initStep - 1 94.8 58.8 2.45e+03 0.00111 0.00226 1.56 1.56 World eIoni - 2 94.9 58.8 2.45e+03 0 0.00111 0.328 1.89 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 93.9 57.2 2.43e+03 0.00317 0 0 0 World initStep - 1 94.1 56.5 2.43e+03 0.00177 0.0014 1.47 1.47 World eIoni - 2 93.8 56.5 2.43e+03 0 0.00177 0.661 2.14 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 92.6 55.5 2.4e+03 0.00924 0 0 0 World initStep - 1 90.2 54.3 2.4e+03 0.00669 0.00255 3.82 3.82 World eIoni - 2 89.9 55.5 2.4e+03 0.0034 0.00329 2.75 6.57 World eIoni - 3 89.5 56.1 2.4e+03 0 0.0034 1.51 8.08 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 92.2 54.9 2.38e+03 0.00299 0 0 0 World initStep - 1 91.9 54.4 2.38e+03 0 0.00299 1.39 1.39 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 91.5 53.9 2.36e+03 0.002 0 0 0 World initStep - 1 91.8 53.8 2.36e+03 0 0.002 0.8 0.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 88.9 50.3 2.28e+03 0.00116 0 0 0 World initStep - 1 89 50.1 2.28e+03 0 0.00116 0.35 0.35 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 88 48.9 2.25e+03 0.00208 0 0 0 World initStep - 1 88.3 49 2.25e+03 0 0.00208 0.85 0.85 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 87 47.5 2.22e+03 0.00239 0 0 0 World initStep - 1 86.7 47.8 2.22e+03 0 0.00239 1.06 1.06 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 85.7 45.6 2.18e+03 0.00339 0 0 0 World initStep - 1 85.7 46.4 2.18e+03 0 0.00339 1.57 1.57 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 85.5 45.3 2.18e+03 0.00973 0 0 0 World initStep - 1 83.3 46.3 2.18e+03 0.00703 0.00121 3.74 3.74 World eIoni - 2 82 47.3 2.18e+03 0.00523 0.0018 1.93 5.67 World msc - 3 81.1 48.3 2.18e+03 0.00344 0.00179 1.57 7.24 World msc - 4 80.7 49 2.18e+03 0.0021 0.00133 1.59 8.83 World eIoni - 5 80.9 49.2 2.18e+03 0 0.0021 0.866 9.7 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 108 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 83.3 46.3 2.18e+03 0.00148 0 0 0 World initStep - 1 83.1 46.3 2.18e+03 0 0.00148 0.503 0.503 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 85 44.5 2.16e+03 0.00358 0 0 0 World initStep - 1 85.4 43.8 2.16e+03 0.00152 0.00206 1.64 1.64 World eIoni - 2 85.4 44 2.16e+03 0 0.00152 0.523 2.17 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 81.4 39.5 2.05e+03 0.00179 0 0 0 World initStep - 1 81.2 39.3 2.05e+03 0 0.00179 0.672 0.672 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 79.8 37.2 2e+03 0.00118 0 0 0 World initStep - 1 79.7 37.1 2e+03 0 0.00118 0.36 0.36 World eIoni + 0 27.7 -8.76 -2.61e+03 50 0 0 0 World initStep + 1 27.7 -8.76 -2.56e+03 50 0.0102 52.8 52.8 World hIoni + 2 27.7 -8.75 -2.55e+03 50 0.00204 12 64.8 World hIoni + 3 27.7 -8.75 -2.53e+03 50 0.00271 17 81.7 World hIoni + 4 27.7 -8.74 -2.52e+03 50 0.00279 12.3 94.1 World hIoni + 5 27.7 -8.74 -2.49e+03 50 0.00418 31.3 125 cloudPV CoupledTransportation + 6 27.7 -8.74 -2.49e+03 48.7 1.26 1.11 127 World CoupledTransportation + 7 27.7 -8.61 -2.46e+03 48.7 0.00569 25.8 152 World hIoni + 8 27.7 -8.46 -2.43e+03 48.7 0.00599 29.3 182 World hIoni + 9 27.8 -8.32 -2.4e+03 48.7 0.00587 30.9 212 World hIoni + 10 27.8 -8.31 -2.4e+03 48.7 0.000358 1.25 214 World hIoni + 11 27.8 -8.22 -2.38e+03 48.7 0.00532 16.6 230 World hIoni + 12 27.8 -7.87 -2.31e+03 48.7 0.0131 70.7 301 World hIoni + 13 28 -7.34 -2.21e+03 48.6 0.022 105 406 World hIoni + 14 28.2 -6.81 -2.09e+03 48.6 0.0255 119 525 World hIoni + 15 28.2 -6.75 -2.07e+03 48.6 0.00243 13.5 538 World hIoni + 16 28.3 -6.54 -2.03e+03 48.6 0.00827 42.5 580 World hIoni + 17 28.4 -6.27 -1.97e+03 48.6 0.00795 59.6 640 World hIoni + 18 28.4 -6.1 -1.94e+03 48.6 0.00513 30.3 670 World hIoni + 19 28.4 -5.73 -1.87e+03 48.6 0.0142 69.4 740 World hIoni + 20 28.5 -5.51 -1.83e+03 48.5 0.00642 38.8 779 World hIoni + 21 28.5 -5.46 -1.82e+03 48.5 0.00106 9.26 788 World hIoni + 22 28.5 -5.42 -1.82e+03 48.5 0.00053 5.58 793 cloudPV CoupledTransportation + 23 28.5 -5.41 -1.82e+03 46.9 1.64 1.24 795 World CoupledTransportation + 24 28.5 -5.4 -1.81e+03 46.9 0.00219 9 804 World hIoni + 25 28.3 -5.34 -1.66e+03 46.9 0.0312 152 956 World hIoni + 26 28.3 -5.36 -1.5e+03 46.8 0.0303 160 1.12e+03 World hIoni + 27 28.3 -5.37 -1.47e+03 46.8 0.00372 25.5 1.14e+03 World hIoni + 28 28.2 -5.37 -1.45e+03 46.8 0.00691 26.2 1.17e+03 World hIoni + 29 28.2 -5.37 -1.44e+03 46.8 0.00154 6.38 1.17e+03 World hIoni + 30 28.2 -5.35 -1.4e+03 46.8 0.00699 38.1 1.21e+03 World hIoni + 31 28.2 -5.33 -1.28e+03 46.8 0.027 121 1.33e+03 World hIoni + 32 28.2 -5.34 -1.25e+03 46.8 0.00297 25.5 1.36e+03 World hIoni + 33 28.2 -5.38 -1.21e+03 46.8 0.00871 48.8 1.41e+03 World hIoni + 34 28.2 -5.41 -1.16e+03 46.8 0.0113 50.4 1.46e+03 World hIoni + 35 28.2 -5.57 -1.04e+03 46.7 0.0183 115 1.57e+03 World hIoni + 36 28.1 -5.62 -981 46.7 0.0106 59.3 1.63e+03 World hIoni + 37 28.1 -5.63 -959 46.7 0.00347 21.3 1.65e+03 World hIoni + 38 28 -5.62 -906 46.7 0.00926 53.4 1.71e+03 World hIoni + 39 27.9 -5.54 -808 46.7 0.0176 98.2 1.8e+03 World hIoni + 40 27.9 -5.53 -799 46.7 0.00148 9.09 1.81e+03 World hIoni + 41 27.9 -5.5 -754 46.7 0.00723 45 1.86e+03 World hIoni + 42 27.5 -5.36 -596 46.6 0.0292 157 2.02e+03 World hIoni + 43 27.4 -5.3 -559 46.6 0.00904 37.4 2.05e+03 World hIoni + 44 27.3 -5.16 -495 46.6 0.014 64.1 2.12e+03 cloudPV CoupledTransportation + 45 27.3 -5.16 -494 45.1 1.49 1.12 2.12e+03 World CoupledTransportation + 46 27.4 -4.9 -417 45.1 0.0157 76.9 2.2e+03 cloudPV CoupledTransportation + 47 27.4 -4.89 -415 42.4 2.65 1.85 2.2e+03 World CoupledTransportation + 48 26.7 -5.11 -400 42.4 0.0032 14.9 2.21e+03 World hIoni + 49 23.3 -6.27 -320 42.4 0.0168 80.7 2.29e+03 World hIoni + 50 20.8 -7.02 -263 42.4 0.011 57 2.35e+03 World hIoni + 51 18.7 -7.56 -215 42.4 0.0124 47.6 2.4e+03 World hIoni + 52 18.6 -7.59 -212 42.4 0.000492 2.63 2.4e+03 World hIoni + 53 15.7 -8.36 -145 42.4 0.0139 67.8 2.47e+03 World hIoni + 54 8.88 -10.1 5.9 42.3 0.0324 151 2.62e+03 World hIoni + 55 7.61 -10.4 33.5 42.3 0.00726 27.6 2.65e+03 World hIoni + 56 6.78 -10.6 51.2 42.3 0.003 17.8 2.66e+03 World hIoni + 57 5.34 -11 82.4 42.3 0.0068 31.2 2.7e+03 World hIoni + 58 3.79 -11.4 116 42.3 0.00753 33.4 2.73e+03 World hIoni + 59 1.44 -12 167 42.3 0.0107 51.3 2.78e+03 World hIoni + 60 -1.13 -12.7 223 42.3 0.0129 56.3 2.84e+03 World hIoni + 61 -2.71 -13 258 42.3 0.00615 35.1 2.87e+03 World hIoni + 62 -6.17 -13.9 335 42.3 0.0147 76.9 2.95e+03 World hIoni + 63 -10.8 -15.2 436 42.2 0.0235 101 3.05e+03 World hIoni + 64 -12.1 -15.5 463 42.2 0.00658 27.4 3.08e+03 World hIoni + 65 -13.5 -15.8 493 42.2 0.00421 29.5 3.11e+03 World hIoni + 66 -13.8 -15.9 500 42.2 0.0025 7.21 3.11e+03 World hIoni + 67 -14 -16 504 42.2 0.000404 3.63 3.12e+03 World hIoni + 68 -14.6 -16.1 518 42.2 0.00367 14.1 3.13e+03 World hIoni + 69 -17.2 -16.8 574 42.2 0.0128 56 3.19e+03 World hIoni + 70 -18.1 -17 592 42.2 0.00386 18.4 3.21e+03 World hIoni + 71 -18.1 -17 593 42.2 6.34e-05 0.965 3.21e+03 World hIoni + 72 -18.6 -17.1 604 42.2 0.00241 10.9 3.22e+03 World hIoni + 73 -18.6 -17.1 604 42.2 0 0.289 3.22e+03 World hIoni + 74 -19.1 -17.3 615 42.2 0.00256 10.9 3.23e+03 World hIoni + 75 -21.1 -17.8 661 42.1 0.0115 45.3 3.27e+03 World hIoni + 76 -21.6 -17.9 672 42.1 0.00164 11.6 3.29e+03 World hIoni + 77 -22.2 -18 688 42.1 0.00482 15.6 3.3e+03 World hIoni + 78 -23.3 -18.3 713 42.1 0.00492 25.2 3.33e+03 World hIoni + 79 -23.3 -18.3 715 42.1 0.000922 1.91 3.33e+03 World hIoni + 80 -23.4 -18.3 716 42.1 0.000361 1.42 3.33e+03 World hIoni + 81 -25.7 -18.8 772 42.1 0.0114 55.8 3.39e+03 World hIoni + 82 -26.3 -19 788 42.1 0.00357 15.6 3.4e+03 World hIoni + 83 -26.8 -19.1 801 42.1 0.00284 13.8 3.42e+03 World hIoni + 84 -27.5 -19.3 819 42.1 0.00327 17.5 3.43e+03 World hIoni + 85 -28.3 -19.4 838 42 0.00361 19.5 3.45e+03 World hIoni + 86 -29 -19.6 856 42 0.00168 17.3 3.47e+03 World hIoni + 87 -31.6 -20.1 922 42 0.0127 66.6 3.54e+03 World hIoni + 88 -31.6 -20.1 924 42 3.79e-05 1.48 3.54e+03 World hIoni + 89 -32 -20.2 934 42 0.00205 9.78 3.55e+03 World hIoni + 90 -32.1 -20.2 936 42 0.000241 2.98 3.55e+03 World hIoni + 91 -34.9 -20.9 1.01e+03 41.9 0.0153 72.5 3.62e+03 World hIoni + 92 -36 -21.1 1.04e+03 41.9 0.00403 28.1 3.65e+03 World hIoni + 93 -36.9 -21.4 1.06e+03 41.9 0.00475 24.2 3.68e+03 World hIoni + 94 -38.9 -21.8 1.11e+03 41.9 0.0126 53.8 3.73e+03 World hIoni + 95 -41.7 -22.5 1.19e+03 41.9 0.0141 73.1 3.8e+03 World hIoni + 96 -41.7 -22.5 1.19e+03 41.9 0 0.216 3.8e+03 World hIoni + 97 -44.3 -22.9 1.26e+03 41.9 0.0133 69.3 3.87e+03 World hIoni + 98 -46.7 -23.4 1.32e+03 41.9 0.0147 63 3.93e+03 World hIoni + 99 -48.3 -23.6 1.36e+03 41.8 0.00853 42.2 3.98e+03 World hIoni + 100 -50.1 -23.9 1.41e+03 41.8 0.00746 47.7 4.02e+03 World hIoni + 101 -52.4 -24.3 1.47e+03 41.8 0.0133 61.3 4.09e+03 World hIoni + 102 -52.7 -24.3 1.48e+03 41.8 0.0014 9.2 4.09e+03 World hIoni + 103 -53.3 -24.4 1.49e+03 41.8 0.00398 13.7 4.11e+03 World hIoni + 104 -53.6 -24.4 1.5e+03 41.8 0.00336 9.22 4.12e+03 World hIoni + 105 -54.1 -24.5 1.52e+03 41.8 0.0027 12.7 4.13e+03 World hIoni + 106 -56 -24.8 1.57e+03 41.8 0.0116 51.9 4.18e+03 World hIoni + 107 -56.6 -24.9 1.59e+03 41.8 0.00348 17.5 4.2e+03 World hIoni + 108 -57.6 -25.1 1.61e+03 41.8 0.0058 26.4 4.23e+03 World hIoni + 109 -58 -25.2 1.62e+03 41.7 0.0014 10 4.24e+03 World hIoni + 110 -58.6 -25.3 1.64e+03 41.7 0.0026 14.7 4.25e+03 World hIoni + 111 -59.1 -25.4 1.65e+03 41.7 0.00337 13.3 4.26e+03 World hIoni + 112 -59.2 -25.4 1.65e+03 41.7 0.000304 3.95 4.27e+03 World hIoni + 113 -62.3 -26.1 1.74e+03 41.7 0.0151 82.1 4.35e+03 World hIoni + 114 -62.6 -26.1 1.75e+03 41.7 0.00089 9.74 4.36e+03 World hIoni + 115 -63.2 -26.2 1.76e+03 41.7 0.0025 14 4.37e+03 World hIoni + 116 -64.7 -26.5 1.8e+03 41.7 0.00764 40.9 4.41e+03 World hIoni + 117 -66.6 -26.9 1.85e+03 41.7 0.0114 51.9 4.47e+03 World hIoni + 118 -67.4 -27.1 1.87e+03 41.7 0.00417 21.9 4.49e+03 World hIoni + 119 -68.1 -27.2 1.89e+03 41.7 0.00247 16.3 4.51e+03 World hIoni + 120 -72.1 -28 1.99e+03 41.6 0.0231 104 4.61e+03 World hIoni + 121 -73.8 -28.4 2.04e+03 41.6 0.00939 44.7 4.65e+03 World hIoni + 122 -73.9 -28.4 2.04e+03 41.6 0.000206 1.95 4.66e+03 World hIoni + 123 -78.8 -29.5 2.17e+03 41.6 0.0274 129 4.78e+03 World hIoni + 124 -81 -30 2.23e+03 41.6 0.0138 56.9 4.84e+03 World hIoni + 125 -85.6 -31 2.34e+03 41.6 0.0213 117 4.96e+03 World hIoni + 126 -87.2 -31.2 2.38e+03 41.5 0.00792 40.6 5e+03 World hIoni + 127 -89.2 -31.5 2.43e+03 41.5 0.0136 51.4 5.05e+03 World hIoni + 128 -89.3 -31.5 2.44e+03 41.5 0.00094 4.77 5.05e+03 World hIoni + 129 -89.8 -31.6 2.45e+03 41.5 0.00279 11.9 5.07e+03 World hIoni + 130 -90.6 -31.7 2.47e+03 41.5 0.00254 19.2 5.09e+03 World hIoni + 131 -91.2 -31.8 2.49e+03 41.5 0.00342 17.9 5.1e+03 World hIoni + 132 -91.6 -31.8 2.5e+03 41.5 0.00142 8.18 5.11e+03 World hIoni + 133 -92.8 -32 2.53e+03 41.5 0.00617 32.2 5.14e+03 World hIoni + 134 -93.1 -32.1 2.54e+03 41.5 0.00132 6.88 5.15e+03 World hIoni + 135 -95.6 -32.5 2.6e+03 41.5 0.012 64.7 5.22e+03 detectorPV CoupledTransportation + 136 -95.6 -32.5 2.6e+03 36.3 5.16 1.72 5.22e+03 detectorPV hIoni + 137 -95.7 -32.4 2.6e+03 31.3 4.99 1.39 5.22e+03 detectorPV hIoni + 138 -95.8 -32.4 2.6e+03 26.9 4.39 1.11 5.22e+03 detectorPV hIoni + 139 -95.8 -32.4 2.61e+03 23 3.92 0.884 5.22e+03 detectorPV hIoni + 140 -95.8 -32.4 2.61e+03 19.4 3.6 0.707 5.22e+03 detectorPV hIoni + 141 -95.9 -32.4 2.61e+03 16.2 3.19 0.563 5.22e+03 detectorPV hIoni + 142 -95.9 -32.4 2.61e+03 13.3 2.9 0.451 5.22e+03 detectorPV hIoni + 143 -95.9 -32.4 2.61e+03 10.6 2.72 0.361 5.22e+03 detectorPV hIoni + 144 -95.9 -32.4 2.61e+03 7.63 2.96 0.288 5.22e+03 detectorPV hIoni + 145 -95.9 -32.3 2.61e+03 4.73 2.9 0.219 5.22e+03 detectorPV hIoni + 146 -95.9 -32.3 2.61e+03 1.36 3.37 0.149 5.22e+03 detectorPV hIoni + 147 -95.9 -32.3 2.61e+03 0.0424 1.31 0.0231 5.22e+03 detectorPV hIoni + 148 -95.9 -32.3 2.61e+03 0 0.0424 0.000537 5.22e+03 detectorPV hIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 104, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 76.2 32.1 1.9e+03 0.00295 0 0 0 World initStep - 1 75.7 31.7 1.9e+03 0.00129 0.00166 1.38 1.38 World eIoni - 2 75.6 31.6 1.9e+03 0 0.00129 0.41 1.78 World eIoni + 0 -93.1 -32.1 2.54e+03 0.00181 0 0 0 World initStep + 1 -92.9 -32.3 2.54e+03 0 0.00181 0.682 0.682 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 103, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 74.3 29.4 1.84e+03 0.0047 0 0 0 World initStep - 1 73.1 29.7 1.84e+03 0.00293 0.00176 2.04 2.04 World eIoni - 2 72.6 29.6 1.84e+03 0 0.00293 1.37 3.41 World eIoni + 0 -92.8 -32 2.53e+03 0.00146 0 0 0 World initStep + 1 -92.8 -32.2 2.53e+03 0 0.00146 0.494 0.494 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 102, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 73.8 28.8 1.83e+03 0.00407 0 0 0 World initStep - 1 74.6 29.4 1.83e+03 0.00223 0.00184 1.82 1.82 World eIoni - 2 74.8 29.7 1.83e+03 0 0.00223 0.952 2.78 World eIoni + 0 -91.6 -31.8 2.5e+03 0.00146 0 0 0 World initStep + 1 -91.6 -31.7 2.5e+03 0 0.00146 0.49 0.49 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 101, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 73.1 27.9 1.81e+03 0.00177 0 0 0 World initStep - 1 73 28.1 1.81e+03 0 0.00177 0.658 0.658 World eIoni + 0 -91.2 -31.8 2.49e+03 0.0095 0 0 0 World initStep + 1 -92.8 -32.5 2.49e+03 0.0082 0.0013 2.3 2.3 World msc + 2 -93.5 -33.5 2.49e+03 0.00722 0.000983 2.4 4.7 World msc + 3 -92.9 -33.6 2.49e+03 0.00336 0.00386 2.73 7.43 World msc + 4 -92.9 -33.1 2.49e+03 0.00136 0.00199 1.55 8.99 World eIoni + 5 -93 -33.2 2.49e+03 0 0.00136 0.444 9.43 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 100, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 72.1 26.5 1.77e+03 0.00123 0 0 0 World initStep - 1 72.1 26.3 1.77e+03 0 0.00123 0.382 0.382 World eIoni + 0 -90.6 -31.7 2.47e+03 0.00134 0 0 0 World initStep + 1 -90.7 -31.7 2.47e+03 0 0.00134 0.43 0.43 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 99, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 71.9 26.1 1.76e+03 0.0134 0 0 0 World initStep - 1 69.4 30.2 1.77e+03 0.0122 0.00116 6.05 6.05 World eIoni - 2 69.4 30.4 1.77e+03 0.011 0.000113 0.241 6.29 World eIoni - 3 68.6 34.1 1.77e+03 0.00974 0.00131 4.71 11 World eIoni - 4 68.1 37.2 1.77e+03 0.00749 0.00224 4.05 15.1 World eIoni - 5 67.9 39.2 1.77e+03 0.00603 0.00146 3.06 18.1 World eIoni - 6 68.3 38.9 1.76e+03 0.00454 0.00149 2.51 20.6 World eIoni - 7 68.7 38.3 1.76e+03 0.00187 0.00268 1.99 22.6 World eIoni - 8 68.8 38.1 1.76e+03 0 0.00187 0.718 23.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 99 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 69.4 30.4 1.77e+03 0.00105 0 0 0 World initStep - 1 69.3 30.4 1.77e+03 0 0.00105 0.302 0.302 World eIoni + 0 -89.8 -31.6 2.45e+03 0.00124 0 0 0 World initStep + 1 -89.9 -31.7 2.45e+03 0 0.00124 0.387 0.387 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 98, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 64.9 17.6 1.51e+03 0.00259 0 0 0 World initStep - 1 65.4 17.5 1.51e+03 0 0.00259 1.18 1.18 World eIoni + 0 -89.3 -31.5 2.44e+03 0.00163 0 0 0 World initStep + 1 -89.2 -31.7 2.44e+03 0 0.00163 0.58 0.58 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 97, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 64.7 17.3 1.5e+03 0.00128 0 0 0 World initStep - 1 64.8 17.2 1.5e+03 0 0.00128 0.403 0.403 World eIoni + 0 -89.2 -31.5 2.43e+03 0.0131 0 0 0 World initStep + 1 -88.9 -35.3 2.43e+03 0.00986 0.00165 4.03 4.03 World eIoni + 2 -89.5 -37.3 2.44e+03 0.00642 0.0015 3.66 7.69 World eIoni + 3 -89.2 -37.4 2.44e+03 0.00514 0.000283 0.351 8.04 World eIoni + 4 -88.9 -37.3 2.44e+03 0.00283 0.000324 0.354 8.4 World eIoni + 5 -88.9 -37 2.44e+03 0 0.00283 1.31 9.71 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 97 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -88.9 -37.3 2.44e+03 0.00199 0 0 0 World initStep + 1 -88.9 -37 2.44e+03 0 0.00199 0.796 0.796 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 97 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89.2 -37.4 2.44e+03 0.001 0 0 0 World initStep + 1 -89.1 -37.4 2.44e+03 0 0.001 0.282 0.282 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 97 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89.5 -37.3 2.44e+03 0.00194 0 0 0 World initStep + 1 -89.6 -37.2 2.44e+03 0 0.00194 0.764 0.764 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 97 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -88.9 -35.3 2.43e+03 0.00154 0 0 0 World initStep + 1 -88.8 -35.4 2.43e+03 0 0.00154 0.531 0.531 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 64.5 17.1 1.5e+03 0.00327 0 0 0 World initStep - 1 64.2 17.7 1.5e+03 0.00214 0.00113 1.52 1.52 World eIoni - 2 64.1 17.9 1.5e+03 0 0.00214 0.894 2.41 World eIoni + 0 -87.2 -31.2 2.38e+03 0.00218 0 0 0 World initStep + 1 -87.5 -31.4 2.38e+03 0 0.00218 0.918 0.918 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 62.6 15 1.43e+03 0.00107 0 0 0 World initStep - 1 62.5 15.1 1.43e+03 0 0.00107 0.311 0.311 World eIoni + 0 -85.6 -31 2.34e+03 0.00161 0 0 0 World initStep + 1 -85.4 -31 2.34e+03 0 0.00161 0.57 0.57 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 58.6 10.6 1.29e+03 0.00636 0 0 0 World initStep - 1 60.4 10.5 1.29e+03 0.00347 0.00289 2.63 2.63 World eIoni - 2 60.7 11.3 1.29e+03 0.00174 0.00173 1.6 4.23 World eIoni - 3 60.6 11.5 1.29e+03 0 0.00174 0.643 4.87 World eIoni + 0 -81 -30 2.23e+03 0.00375 0 0 0 World initStep + 1 -81.4 -30.9 2.23e+03 0.00137 0.00238 1.71 1.71 World eIoni + 2 -81.5 -31 2.23e+03 0 0.00137 0.447 2.16 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 58 9.92 1.27e+03 0.00236 0 0 0 World initStep - 1 58.4 10.1 1.27e+03 0 0.00236 1.04 1.04 World eIoni + 0 -73.9 -28.4 2.04e+03 0.00354 0 0 0 World initStep + 1 -73.5 -29.1 2.04e+03 0.00154 0.002 1.63 1.63 World eIoni + 2 -73.6 -29.2 2.04e+03 0 0.00154 0.533 2.16 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 55.8 7.48 1.19e+03 0.00626 0 0 0 World initStep - 1 57 8.82 1.19e+03 0.00325 0.00302 2.37 2.37 World msc - 2 57.6 9.16 1.19e+03 0.0011 0.00214 1.51 3.87 World eIoni - 3 57.5 9.09 1.19e+03 0 0.0011 0.324 4.2 World eIoni + 0 -73.8 -28.4 2.04e+03 0.00141 0 0 0 World initStep + 1 -73.6 -28.4 2.04e+03 0 0.00141 0.468 0.468 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 54.8 6.39 1.16e+03 0.00184 0 0 0 World initStep - 1 54.8 6.12 1.16e+03 0 0.00184 0.703 0.703 World eIoni + 0 -68.1 -27.2 1.89e+03 0.00356 0 0 0 World initStep + 1 -67.3 -26.8 1.89e+03 0.0014 0.00215 1.63 1.63 World eIoni + 2 -67.2 -26.7 1.89e+03 0 0.0014 0.463 2.1 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 52.8 4.23 1.09e+03 0.00123 0 0 0 World initStep - 1 52.7 4.36 1.09e+03 0 0.00123 0.38 0.38 World eIoni + 0 -67.4 -27.1 1.87e+03 0.00103 0 0 0 World initStep + 1 -67.5 -27.2 1.87e+03 0 0.00103 0.296 0.296 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 50.9 2.18 1.02e+03 0.00667 0 0 0 World initStep - 1 52.1 0.711 1.02e+03 0.00332 0.00335 2.74 2.74 World eIoni - 2 52 0.0625 1.02e+03 0.00209 0.00123 1.54 4.28 World eIoni - 3 52.2 -0.0773 1.02e+03 0 0.00209 0.861 5.14 World eIoni + 0 -66.6 -26.9 1.85e+03 0.00125 0 0 0 World initStep + 1 -66.5 -26.8 1.85e+03 0 0.00125 0.392 0.392 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 49.9 1.16 985 0.00447 0 0 0 World initStep - 1 49.1 2.02 986 0.00194 0.00253 1.96 1.96 World eIoni - 2 49.4 1.96 985 0 0.00194 0.764 2.73 World eIoni + 0 -64.7 -26.5 1.8e+03 0.0016 0 0 0 World initStep + 1 -64.8 -26.3 1.8e+03 0 0.0016 0.565 0.565 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 49.8 1 980 0.00555 0 0 0 World initStep - 1 48.6 0.0865 981 0.00426 0.00128 2.34 2.34 World eIoni - 2 47.7 -0.551 981 0.00138 0.00288 1.72 4.06 World eIoni - 3 47.8 -0.436 981 0 0.00138 0.454 4.51 World eIoni + 0 -62.6 -26.1 1.75e+03 0.00804 0 0 0 World initStep + 1 -61.3 -23.7 1.75e+03 0.00716 0.000878 3.08 3.08 World msc + 2 -62.2 -21.6 1.75e+03 0.00524 0.00192 2.61 5.69 World msc + 3 -62.5 -20.9 1.75e+03 0.00371 0.00153 2.23 7.92 World eIoni + 4 -62.9 -20 1.75e+03 0.00246 0.00125 1.69 9.61 World eIoni + 5 -63.2 -20.3 1.75e+03 0 0.00246 1.11 10.7 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 49.6 0.85 976 0.0233 0 0 0 World initStep - 1 56.2 12.1 977 0.021 0.00223 14 14 World eIoni - 2 59.6 22 973 0.0185 0.00251 11.9 25.9 World eIoni - 3 61.3 30.4 970 0.017 0.00155 9.75 35.6 World eIoni - 4 60.8 32.4 970 0.0153 0.000479 2.15 37.8 World eIoni - 5 62.2 37 975 0.0122 0.00309 7.34 45.1 World eIoni - 6 62.3 38.2 976 0.0106 8.27e-05 1.56 46.7 World eIoni - 7 62.6 40.6 979 0.00833 0.00226 4.47 51.2 World eIoni - 8 61.4 41.3 981 0.00643 0.0019 3.41 54.6 World eIoni - 9 59.9 42.4 982 0.00369 0.00275 2.65 57.2 World eIoni - 10 59.2 42.6 981 0.00232 0.00137 1.68 58.9 World eIoni - 11 58.9 42.5 981 0.00134 0.000975 1.01 59.9 World eIoni - 12 58.8 42.4 982 0 0.00134 0.433 60.4 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 86 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 62.3 38.2 976 0.00157 0 0 0 World initStep - 1 62.1 38.3 976 0 0.00157 0.551 0.551 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 86 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 60.8 32.4 970 0.00117 0 0 0 World initStep - 1 60.7 32.4 970 0 0.00117 0.354 0.354 World eIoni + 0 -62.3 -26.1 1.74e+03 0.00218 0 0 0 World initStep + 1 -62.4 -26.4 1.74e+03 0 0.00218 0.915 0.915 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 49.1 0.285 957 0.0058 0 0 0 World initStep - 1 50.5 -0.559 958 0.00384 0.00197 2.43 2.43 World eIoni - 2 51 -1.05 957 0.00242 0.00141 1.74 4.17 World eIoni - 3 50.6 -1.02 957 0 0.00242 1.09 5.25 World eIoni + 0 -59.2 -25.4 1.65e+03 0.00425 0 0 0 World initStep + 1 -60.1 -26.1 1.65e+03 0.00237 0.00188 1.89 1.89 World eIoni + 2 -60.3 -26.3 1.65e+03 0 0.00237 1.05 2.94 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 48.7 -0.11 944 0.0075 0 0 0 World initStep - 1 49.2 -2.23 945 0.00652 0.000978 3.07 3.07 World eIoni - 2 48.9 -4.07 945 0.00569 0.000833 2.69 5.75 World eIoni - 3 48.1 -5.41 945 0.00396 0.00172 2.39 8.14 World eIoni - 4 48 -6.33 946 0.00126 0.00271 1.79 9.92 World eIoni - 5 48 -6.33 945 0 0.00126 0.393 10.3 World eIoni + 0 -59.1 -25.4 1.65e+03 0.00833 0 0 0 World initStep + 1 -60.5 -23.1 1.65e+03 0.00593 0.00241 3.41 3.41 World eIoni + 2 -61.9 -22.2 1.65e+03 0.00468 0.00125 2.47 5.88 World eIoni + 3 -62.9 -22.5 1.65e+03 0.00314 0.00154 2.04 7.92 World eIoni + 4 -63.6 -22.7 1.65e+03 0.00117 0.00197 1.46 9.38 World eIoni + 5 -63.6 -22.7 1.65e+03 0 0.00117 0.354 9.73 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 47 -1.97 883 0.0077 0 0 0 World initStep - 1 45.6 -3.7 884 0.00541 0.00229 3.14 3.14 World eIoni - 2 44.9 -3.44 885 0.00394 0.00147 2.29 5.43 World eIoni - 3 44.5 -4.39 885 0.00279 0.00115 1.78 7.21 World eIoni - 4 45 -4.56 885 0 0.00279 1.3 8.51 World eIoni + 0 -58.6 -25.3 1.64e+03 0.00493 0 0 0 World initStep + 1 -58.7 -25.2 1.64e+03 0.00316 0.000177 0.178 0.178 World eIoni + 2 -59.3 -25.3 1.64e+03 0 0.00316 1.47 1.65 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 83 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -58.7 -25.2 1.64e+03 0.00159 0 0 0 World initStep + 1 -58.8 -25 1.64e+03 0 0.00159 0.561 0.561 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 46.9 -2.06 880 0.00368 0 0 0 World initStep - 1 46.3 -2.67 880 0.00204 0.00164 1.68 1.68 World eIoni - 2 46.1 -2.43 880 0 0.00204 0.824 2.51 World eIoni + 0 -58 -25.2 1.62e+03 0.00791 0 0 0 World initStep + 1 -55.8 -25.9 1.62e+03 0.00488 0.00303 3.23 3.23 World eIoni + 2 -55 -26.9 1.62e+03 0.00293 0.00195 2.1 5.34 World eIoni + 3 -54.6 -27.4 1.62e+03 0 0.00293 1.36 6.7 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 46.2 -2.74 857 0.00275 0 0 0 World initStep - 1 45.8 -2.39 857 0 0.00275 1.28 1.28 World eIoni + 0 -57.6 -25.1 1.61e+03 0.0011 0 0 0 World initStep + 1 -57.5 -25.1 1.61e+03 0 0.0011 0.323 0.323 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 45.3 -3.71 825 0.0041 0 0 0 World initStep - 1 44.3 -3.4 825 0.00242 0.00167 1.83 1.83 World eIoni - 2 44 -3.15 825 0 0.00242 1.08 2.92 World eIoni + 0 -56 -24.8 1.57e+03 0.00168 0 0 0 World initStep + 1 -56 -25.1 1.57e+03 0 0.00168 0.608 0.608 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 44.9 -4.14 810 0.00168 0 0 0 World initStep - 1 44.8 -3.93 810 0 0.00168 0.609 0.609 World eIoni + 0 -54.1 -24.5 1.52e+03 0.0012 0 0 0 World initStep + 1 -54 -24.4 1.52e+03 0 0.0012 0.367 0.367 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 43.4 -5.56 763 0.00154 0 0 0 World initStep - 1 43.4 -5.35 763 0 0.00154 0.534 0.534 World eIoni + 0 -53.6 -24.4 1.5e+03 0.0025 0 0 0 World initStep + 1 -53.4 -24.8 1.5e+03 0 0.0025 1.13 1.13 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 43 -6.03 747 0.00214 0 0 0 World initStep - 1 42.8 -6.31 747 0 0.00214 0.892 0.892 World eIoni + 0 -52.4 -24.3 1.47e+03 0.00127 0 0 0 World initStep + 1 -52.5 -24.4 1.47e+03 0 0.00127 0.397 0.397 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.3 -6.72 724 0.0031 0 0 0 World initStep - 1 41.8 -7.19 724 0 0.0031 1.44 1.44 World eIoni + 0 -50.1 -23.9 1.41e+03 0.0349 0 0 0 World initStep + 1 -52 -32.6 1.42e+03 0.033 0.00191 13.4 13.4 World eIoni + 2 -58.7 -45.6 1.44e+03 0.0285 0.00442 25.1 38.4 World eIoni + 3 -73.4 -54.6 1.44e+03 0.0237 0.00484 19.6 58.1 World eIoni + 4 -83.3 -62.6 1.45e+03 0.0212 0.00253 14.4 72.5 World eIoni + 5 -86.8 -66 1.45e+03 0.0193 0.000752 5.01 77.5 World eIoni + 6 -92 -72.7 1.44e+03 0.0165 0.00277 10.4 87.9 World eIoni + 7 -93.9 -80 1.44e+03 0.0149 0.00165 8.19 96 World eIoni + 8 -93.6 -78.7 1.45e+03 0.013 0.00182 7.02 103 World eIoni + 9 -90.2 -77.4 1.45e+03 0.0121 0.000938 5.85 109 World eIoni + 10 -85.9 -75.2 1.45e+03 0.00916 0.00294 5.3 114 World eIoni + 11 -86.5 -76.8 1.45e+03 0.00834 0.000822 3.78 118 World eIoni + 12 -88.1 -76.3 1.45e+03 0.0075 0.00084 3.41 121 World eIoni + 13 -89.3 -76.5 1.44e+03 0.0064 0.00109 3.06 124 World eIoni + 14 -90.7 -76.9 1.44e+03 0.00511 0.00129 2.64 127 World eIoni + 15 -91.3 -76.3 1.44e+03 0.00347 0.00164 2.19 129 World eIoni + 16 -91.9 -76.4 1.44e+03 0 0.00347 1.6 131 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 76 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -86.8 -66 1.45e+03 0.00115 0 0 0 World initStep + 1 -86.9 -65.9 1.45e+03 0 0.00115 0.345 0.345 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.2 -6.83 721 0.0012 0 0 0 World initStep - 1 42.3 -6.88 721 0 0.0012 0.369 0.369 World eIoni + 0 -48.3 -23.6 1.36e+03 0.00144 0 0 0 World initStep + 1 -48.2 -23.8 1.36e+03 0 0.00144 0.481 0.481 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 41.2 -7.86 687 0.00348 0 0 0 World initStep - 1 41 -8.65 687 0 0.00348 1.6 1.6 World eIoni + 0 -46.7 -23.4 1.32e+03 0.016 0 0 0 World initStep + 1 -39.7 -21.6 1.32e+03 0.0137 0.00234 7.82 7.82 World eIoni + 2 -39.7 -21.6 1.32e+03 0.0124 4.36e-06 0.0137 7.83 World eIoni + 3 -36.3 -21.3 1.32e+03 0.0105 0.00197 5.49 13.3 World eIoni + 4 -33.3 -20.7 1.33e+03 0.00867 0.00179 4.41 17.7 World eIoni + 5 -32.7 -19 1.33e+03 0.00699 0.00168 3.56 21.3 World eIoni + 6 -32.2 -17 1.33e+03 0.00491 0.00207 2.86 24.1 World eIoni + 7 -31.5 -16.4 1.33e+03 0.00316 0.00175 2.12 26.3 World eIoni + 8 -31.5 -16.8 1.33e+03 0 0.00316 1.47 27.7 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 74 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -39.7 -21.6 1.32e+03 0.00123 0 0 0 World initStep + 1 -39.6 -21.7 1.32e+03 0 0.00123 0.383 0.383 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 40.4 -8.67 660 0.00125 0 0 0 World initStep - 1 40.2 -8.61 660 0 0.00125 0.388 0.388 World eIoni + 0 -44.3 -22.9 1.26e+03 0.00247 0 0 0 World initStep + 1 -44.6 -22.7 1.26e+03 0 0.00247 1.11 1.11 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 38.8 -10.3 608 0.00137 0 0 0 World initStep - 1 38.6 -10.3 608 0 0.00137 0.449 0.449 World eIoni + 0 -41.7 -22.5 1.19e+03 0.00284 0 0 0 World initStep + 1 -41.2 -22.2 1.19e+03 0 0.00284 1.32 1.32 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 35.7 -13.2 507 0.00349 0 0 0 World initStep - 1 35.2 -13.7 507 0 0.00349 1.61 1.61 World eIoni + 0 -41.7 -22.5 1.19e+03 0.00201 0 0 0 World initStep + 1 -42 -22.5 1.19e+03 0 0.00201 0.806 0.806 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 32.7 -16.1 404 0.000993 0 0 0 World initStep - 1 32.8 -16.1 404 0 0.000993 0.279 0.279 World eIoni + 0 -38.9 -21.8 1.11e+03 0.00106 0 0 0 World initStep + 1 -39 -21.8 1.11e+03 0 0.00106 0.305 0.305 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 32.3 -16.6 389 0.00121 0 0 0 World initStep - 1 32.2 -16.7 389 0 0.00121 0.37 0.37 World eIoni + 0 -36.9 -21.4 1.06e+03 0.00107 0 0 0 World initStep + 1 -36.8 -21.4 1.06e+03 0 0.00107 0.309 0.309 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 30.8 -18 337 0.00545 0 0 0 World initStep - 1 30.6 -19.5 337 0.00337 0.00208 2.3 2.3 World eIoni - 2 30.5 -20.3 337 0.00202 0.00135 1.56 3.86 World eIoni - 3 30.6 -20.4 337 0 0.00202 0.816 4.68 World eIoni + 0 -36 -21.1 1.04e+03 0.00257 0 0 0 World initStep + 1 -36.1 -20.6 1.04e+03 0 0.00257 1.18 1.18 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 30.7 -18.1 335 0.00738 0 0 0 World initStep - 1 31.6 -20 335 0.00505 0.00233 3.02 3.02 World eIoni - 2 32.4 -20.8 334 0.00388 0.00117 2.16 5.18 World eIoni - 3 31.8 -21.3 334 0.00261 0.00127 1.76 6.94 World eIoni - 4 31.4 -20.9 334 0 0.00261 1.2 8.13 World eIoni + 0 -34.9 -20.9 1.01e+03 0.00221 0 0 0 World initStep + 1 -35.1 -20.5 1.01e+03 0 0.00221 0.94 0.94 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 30.4 -18.4 323 0.00118 0 0 0 World initStep - 1 30.5 -18.5 323 0 0.00118 0.36 0.36 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 28.3 -20.4 251 0.00165 0 0 0 World initStep - 1 28.1 -20.5 251 0 0.00165 0.594 0.594 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 28 -20.6 242 0.00209 0 0 0 World initStep - 1 28.4 -20.8 242 0 0.00209 0.856 0.856 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 27.9 -20.8 237 0.00174 0 0 0 World initStep - 1 27.9 -20.5 237 0 0.00174 0.644 0.644 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 26.5 -22.1 189 0.00108 0 0 0 World initStep - 1 26.4 -22.2 189 0 0.00108 0.314 0.314 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 25.7 -22.8 162 0.00108 0 0 0 World initStep - 1 25.6 -22.8 162 0 0.00108 0.314 0.314 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 23.8 -24.5 99.5 0.00865 0 0 0 World initStep - 1 23.1 -24.1 99.6 0.00738 0.000163 0.784 0.784 World eIoni - 2 21.1 -23.2 100 0.0064 0.000981 3.02 3.8 World eIoni - 3 20.6 -23.7 98.3 0.00444 0.00197 2.64 6.45 World eIoni - 4 19.7 -23.2 97.7 0.00263 0.00181 1.95 8.4 World eIoni - 5 20.1 -23.1 97.8 0 0.00263 1.21 9.6 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 23.1 -24.1 99.6 0.00111 0 0 0 World initStep - 1 23.2 -24 99.5 0 0.00111 0.326 0.326 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 23.6 -24.6 94.8 0.00375 0 0 0 World initStep - 1 24.5 -24.4 95 0.00124 0.00251 1.71 1.71 World eIoni - 2 24.6 -24.4 95.1 0 0.00124 0.388 2.1 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 23.1 -25.1 78 0.00293 0 0 0 World initStep - 1 22.7 -25.4 78.1 0.0019 0.00104 0.975 0.975 World eIoni - 2 22.5 -25.7 78.2 0 0.0019 0.736 1.71 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 22.7 -25.4 63.9 0.00225 0 0 0 World initStep - 1 22.3 -25.4 64 0 0.00225 0.969 0.969 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 21.8 -26.2 36 0.00176 0 0 0 World initStep - 1 21.9 -26.4 36.1 0 0.00176 0.655 0.655 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 21.5 -26.4 26.8 0.00142 0 0 0 World initStep - 1 21.3 -26.4 26.8 0 0.00142 0.473 0.473 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 20.7 -27 0.455 0.00141 0 0 0 World initStep - 1 20.6 -27.1 0.483 0 0.00141 0.467 0.467 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 20.4 -27.3 -13.9 0.00115 0 0 0 World initStep - 1 20.5 -27.2 -13.9 0 0.00115 0.344 0.344 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 19.8 -27.7 -39.6 0.0117 0 0 0 World initStep - 1 18 -24 -39.2 0.0109 0.000785 4.49 4.49 World msc - 2 15.4 -21.1 -40.8 0.00884 0.00208 4.64 9.14 World eIoni - 3 13.9 -18.7 -40.4 0.00694 0.00189 3.63 12.8 World eIoni - 4 13.1 -17.1 -39.3 0.00574 0.0012 2.85 15.6 World eIoni - 5 11.6 -16.5 -38.9 0.00455 0.0012 2.4 18 World eIoni - 6 11.6 -15.6 -38.2 0.00225 0.00229 1.99 20 World eIoni - 7 11.8 -15.3 -38.4 0 0.00225 0.967 21 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 19.3 -28.1 -60 0.00143 0 0 0 World initStep - 1 19.1 -28.1 -59.9 0 0.00143 0.478 0.478 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 18.5 -28.7 -94.8 0.00375 0 0 0 World initStep - 1 18.6 -27.8 -94.7 0.0022 0.00155 1.56 1.56 World eIoni - 2 18.8 -27.6 -94.9 0 0.0022 0.929 2.49 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 17.5 -29.5 -141 0.00183 0 0 0 World initStep - 1 17.6 -29.7 -141 0 0.00183 0.695 0.695 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 14.7 -31.5 -263 0.00155 0 0 0 World initStep - 1 14.5 -31.5 -263 0 0.00155 0.537 0.537 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 13.9 -32.2 -300 0.00213 0 0 0 World initStep - 1 13.6 -32.4 -300 0 0.00213 0.882 0.882 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 12.8 -32.9 -347 0.00102 0 0 0 World initStep - 1 12.9 -32.9 -347 0 0.00102 0.29 0.29 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 12.1 -33.4 -378 0.00208 0 0 0 World initStep - 1 11.9 -33.7 -378 0 0.00208 0.854 0.854 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 9.51 -35.3 -497 0.0119 0 0 0 World initStep - 1 12.4 -31.7 -496 0.0103 0.00163 5.2 5.2 World eIoni - 2 12.2 -28.1 -494 0.00849 0.00181 4.33 9.54 World eIoni - 3 13 -29 -494 0.00416 0.000986 1.39 10.9 World eIoni - 4 13.2 -30 -494 0.00216 0.002 1.86 12.8 World eIoni - 5 13.2 -30.2 -493 0 0.00216 0.907 13.7 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 44 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 13 -29 -494 0.00335 0 0 0 World initStep - 1 13.4 -28.8 -493 0.00277 0.000578 1.55 1.55 World eIoni - 2 12.9 -28.6 -493 0 0.00277 1.29 2.84 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.79 -37.1 -617 0.00538 0 0 0 World initStep - 1 5.33 -37 -617 0.00372 0.00167 2.28 2.28 World eIoni - 2 4.9 -36.8 -616 0.00208 0.00164 1.69 3.97 World eIoni - 3 5.12 -36.6 -616 0 0.00208 0.85 4.82 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.32 -37.4 -640 0.00173 0 0 0 World initStep - 1 6.16 -37.6 -640 0 0.00173 0.64 0.64 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.81 -38.6 -713 0.0011 0 0 0 World initStep - 1 4.86 -38.5 -713 0 0.0011 0.322 0.322 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.59 -38.7 -723 0.0143 0 0 0 World initStep - 1 5.73 -33.9 -720 0.0125 0.00185 6.54 6.54 World msc - 2 6.05 -29 -719 0.00963 0.00286 5.52 12.1 World eIoni - 3 6.32 -29.8 -715 0.00701 0.00262 4 16.1 World eIoni - 4 5.85 -30.7 -713 0.00478 0.00223 2.87 18.9 World eIoni - 5 5.86 -31.9 -713 0.00369 0.00109 2.07 21 World eIoni - 6 5.68 -32.6 -712 0 0.00369 1.69 22.7 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.299 -42.5 -962 0.00595 0 0 0 World initStep - 1 -1.5 -43.6 -962 0.00413 0.00182 2.48 2.48 World eIoni - 2 -1.78 -44.1 -961 0.00313 0.000991 1.84 4.32 World eIoni - 3 -1.86 -44 -960 0.0022 0.000938 0.543 4.87 World eIoni - 4 -1.73 -44.2 -960 0 0.0022 0.93 5.79 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.02 -43 -997 0.00143 0 0 0 World initStep - 1 -0.832 -43 -997 0 0.00143 0.479 0.479 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.3 -44.9 -1.11e+03 0.00251 0 0 0 World initStep - 1 -3.51 -45.3 -1.11e+03 0.00117 0.00134 1.14 1.14 World eIoni - 2 -3.38 -45.3 -1.11e+03 0 0.00117 0.353 1.49 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.73 -45.4 -1.14e+03 0.00313 0 0 0 World initStep - 1 -4.22 -45.8 -1.14e+03 0 0.00313 1.46 1.46 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.27 -45.9 -1.17e+03 0.00109 0 0 0 World initStep - 1 -4.38 -46 -1.17e+03 0 0.00109 0.32 0.32 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.96 -46.6 -1.21e+03 0.00604 0 0 0 World initStep - 1 -4.04 -48.1 -1.21e+03 0.00422 0.00182 2.51 2.51 World eIoni - 2 -3.65 -49 -1.21e+03 0.00273 0.00149 1.88 4.39 World eIoni - 3 -3.38 -49.2 -1.21e+03 0 0.00273 1.26 5.65 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.06 -47.8 -1.27e+03 0.0486 0 0 0 World initStep - 1 -4.12 -22.9 -1.24e+03 0.0398 0.00877 49.2 49.2 World eIoni - 2 -1.68 0.401 -1.22e+03 0.0336 0.00624 34.8 84 World eIoni - 3 5.95 8.45 -1.21e+03 0.029 0.00273 12.4 96.4 World eIoni - 4 17.8 20.7 -1.2e+03 0.025 0.00395 20.1 117 World eIoni - 5 14.4 34.2 -1.2e+03 0.021 0.00405 15.8 132 World eIoni - 6 8.45 43.5 -1.2e+03 0.0187 0.00225 11.8 144 World eIoni - 7 4.41 49.9 -1.2e+03 0.0166 0.00218 9.92 154 World eIoni - 8 3.28 46.1 -1.21e+03 0.0148 0.00174 8.22 162 World eIoni - 9 -0.248 43.6 -1.22e+03 0.0111 0.00368 6.99 169 World eIoni - 10 -4.47 42.6 -1.22e+03 0.00949 0.00164 4.76 174 World eIoni - 11 -6.59 41.2 -1.21e+03 0.00687 0.00262 3.94 178 World eIoni - 12 -8.58 41 -1.21e+03 0.00614 0.000738 2.82 181 World eIoni - 13 -9.22 40.1 -1.21e+03 0.0043 0.00183 2.55 183 World eIoni - 14 -9.15 40.8 -1.22e+03 0.00302 0.00128 1.91 185 World eIoni - 15 -8.71 40.3 -1.22e+03 0.00132 0.0017 1.41 187 World eIoni - 16 -8.55 40.4 -1.22e+03 0 0.00132 0.423 187 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.95 8.45 -1.21e+03 0.00189 0 0 0 World initStep - 1 5.83 8.72 -1.21e+03 0 0.00189 0.732 0.732 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.21 -48 -1.28e+03 0.00134 0 0 0 World initStep - 1 -6.37 -47.9 -1.28e+03 0 0.00134 0.434 0.434 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.44 -48.2 -1.29e+03 0.00122 0 0 0 World initStep - 1 -6.51 -48.4 -1.29e+03 0 0.00122 0.374 0.374 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.55 -49.4 -1.36e+03 0.00428 0 0 0 World initStep - 1 -7.12 -50.4 -1.36e+03 0 0.00428 1.9 1.9 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.99 -49.8 -1.38e+03 0.0034 0 0 0 World initStep - 1 -7.62 -50.5 -1.38e+03 0.00192 0.00149 1.57 1.57 World eIoni - 2 -7.51 -50.4 -1.39e+03 0 0.00192 0.748 2.32 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.99 -49.8 -1.39e+03 0.00214 0 0 0 World initStep - 1 -7.71 -49.6 -1.39e+03 0 0.00214 0.893 0.893 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.08 -49.9 -1.39e+03 0.000998 0 0 0 World initStep - 1 -8.17 -50 -1.39e+03 0 0.000998 0.281 0.281 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.35 -50.2 -1.41e+03 0.00112 0 0 0 World initStep - 1 -8.32 -50.3 -1.41e+03 0 0.00112 0.333 0.333 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.35 -50.2 -1.41e+03 0.00143 0 0 0 World initStep - 1 -8.51 -50.3 -1.41e+03 0 0.00143 0.475 0.475 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.32 -50.9 -1.47e+03 0.004 0 0 0 World initStep - 1 -8.84 -51.8 -1.47e+03 0.00182 0.00219 1.8 1.8 World eIoni - 2 -8.64 -51.8 -1.47e+03 0 0.00182 0.688 2.49 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.6 -51 -1.49e+03 0.00174 0 0 0 World initStep - 1 -9.75 -51.2 -1.49e+03 0 0.00174 0.643 0.643 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.64 -51 -1.5e+03 0.00134 0 0 0 World initStep - 1 -9.7 -50.9 -1.5e+03 0 0.00134 0.432 0.432 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11 -51.8 -1.61e+03 0.00107 0 0 0 World initStep - 1 -11.2 -51.8 -1.61e+03 0 0.00107 0.311 0.311 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.4 -51.9 -1.64e+03 0.00188 0 0 0 World initStep - 1 -11.1 -51.8 -1.64e+03 0 0.00188 0.728 0.728 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.6 -52 -1.66e+03 0.00196 0 0 0 World initStep - 1 -11.7 -52 -1.66e+03 0.00191 5.85e-05 0.108 0.108 World msc - 2 -11.7 -52 -1.66e+03 0.0018 0.000105 0.0559 0.164 World msc - 3 -11.8 -52 -1.66e+03 0.0017 0.000101 0.0501 0.214 World msc - 4 -11.8 -52 -1.66e+03 0.0017 0 0.0501 0.264 World msc - 5 -11.8 -52 -1.66e+03 0.00157 0.000126 0.0482 0.312 cloudPV CoupledTransportation - 6 -11.8 -52 -1.66e+03 0.00157 0 4.66e-06 0.312 cloudPV msc - 7 -11.8 -52 -1.66e+03 0.00157 0 4.69e-06 0.312 cloudPV msc - 8 -11.8 -52 -1.66e+03 0.00147 0.000107 4.59e-06 0.312 cloudPV msc - 9 -11.8 -52 -1.66e+03 0.00147 0 4.6e-06 0.312 cloudPV msc - 10 -11.8 -52 -1.66e+03 0.00144 2.56e-05 4.56e-06 0.312 cloudPV msc - 11 -11.8 -52 -1.66e+03 0.00144 0 4.64e-06 0.312 cloudPV msc - 12 -11.8 -52 -1.66e+03 0.00144 0 4.7e-06 0.312 cloudPV msc - 13 -11.8 -52 -1.66e+03 0.00142 1.73e-05 4.61e-06 0.312 cloudPV msc - 14 -11.8 -52 -1.66e+03 0.00142 0 4.55e-06 0.312 cloudPV msc - 15 -11.8 -52 -1.66e+03 0.00142 0 4.57e-06 0.312 cloudPV msc - 16 -11.8 -52 -1.66e+03 0.00142 0 4.65e-06 0.312 cloudPV msc - 17 -11.8 -52 -1.66e+03 0.00142 9.5e-06 4.6e-06 0.312 cloudPV msc - 18 -11.8 -52 -1.66e+03 0.00142 0 4.64e-06 0.312 cloudPV msc - 19 -11.8 -52 -1.66e+03 0.00133 8.29e-05 4.65e-06 0.312 cloudPV msc - 20 -11.8 -52 -1.66e+03 0.00133 0 4.56e-06 0.312 cloudPV msc - 21 -11.8 -52 -1.66e+03 0.00132 8.84e-06 4.64e-06 0.312 cloudPV msc - 22 -11.8 -52 -1.66e+03 0.00132 7.95e-06 8.07e-07 0.312 World CoupledTransportation - 23 -11.8 -52 -1.66e+03 0.0012 0.000115 0.0328 0.345 World msc - 24 -11.8 -52 -1.66e+03 0.00111 8.69e-05 0.0328 0.378 World msc - 25 -11.8 -52 -1.66e+03 0 0.00111 0.0328 0.411 World msc - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.6 -52.4 -1.84e+03 0.00185 0 0 0 World initStep - 1 -12.7 -52.1 -1.84e+03 0 0.00185 0.71 0.71 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.6 -52 -1.93e+03 0.0306 0 0 0 World initStep - 1 -18.2 -55.2 -1.93e+03 0.0281 0.00135 7.03 7.03 World eIoni - 2 -26.3 -65.4 -1.92e+03 0.0251 0.00301 19.1 26.1 World eIoni - 3 -33.4 -72.4 -1.91e+03 0.0232 0.00184 15.8 41.9 World eIoni - 4 -37.8 -73 -1.9e+03 0.0199 0.00223 12 53.9 World eIoni - 5 -40.7 -72.1 -1.89e+03 0.0155 0.00445 10.9 64.8 World eIoni - 6 -43.1 -71.6 -1.89e+03 0.0148 0.00068 3.99 68.8 World eIoni - 7 -47 -68.6 -1.88e+03 0.0126 0.00213 6.96 75.8 World eIoni - 8 -47.1 -65.8 -1.88e+03 0.0113 0.00136 5.61 81.4 World eIoni - 9 -46.7 -62.3 -1.87e+03 0.00977 0.00151 4.84 86.3 World eIoni - 10 -44.1 -60.5 -1.88e+03 0.00688 0.0029 4.07 90.3 World eIoni - 11 -43.7 -58.9 -1.87e+03 0.006 0.000873 2.82 93.1 World eIoni - 12 -43.2 -59.8 -1.87e+03 0.00434 0.00166 2.5 95.6 World eIoni - 13 -42.7 -58.8 -1.87e+03 0.00264 0.0017 1.92 97.6 World eIoni - 14 -42.5 -58.8 -1.87e+03 0 0.00264 1.22 98.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -37.8 -73 -1.9e+03 0.0011 0 0 0 World initStep - 1 -37.8 -73.1 -1.9e+03 0 0.0011 0.321 0.321 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.2 -55.2 -1.93e+03 0.00116 0 0 0 World initStep - 1 -18.3 -55.1 -1.93e+03 0 0.00116 0.349 0.349 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.6 -51.6 -2.01e+03 0.00105 0 0 0 World initStep - 1 -12.7 -51.7 -2.01e+03 0 0.00105 0.303 0.303 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.6 -51.5 -2.04e+03 0.00115 0 0 0 World initStep - 1 -12.5 -51.6 -2.04e+03 0 0.00115 0.347 0.347 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.6 -51.3 -2.08e+03 0.00105 0 0 0 World initStep - 1 -12.6 -51.2 -2.08e+03 0 0.00105 0.301 0.301 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.6 -51.3 -2.08e+03 0.00118 0 0 0 World initStep - 1 -12.7 -51.4 -2.08e+03 0 0.00118 0.36 0.36 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.6 -51.2 -2.1e+03 0.0175 0 0 0 World initStep - 1 -13.6 -45.8 -2.09e+03 0.0143 0.00316 8.92 8.92 World eIoni - 2 -14.9 -40.3 -2.09e+03 0.0124 0.0019 6.66 15.6 World eIoni - 3 -18.2 -37.1 -2.09e+03 0.0103 0.0021 5.48 21.1 World eIoni - 4 -18.8 -34.7 -2.09e+03 0.00841 0.0019 4.34 25.4 World eIoni - 5 -17.1 -33.7 -2.08e+03 0.00721 0.0012 3.45 28.8 World eIoni - 6 -15.6 -33.4 -2.08e+03 0.00502 0.0022 2.95 31.8 World eIoni - 7 -15.6 -34.4 -2.08e+03 0.00337 0.00165 2.15 33.9 World eIoni - 8 -15.1 -34.5 -2.08e+03 0 0.00337 1.56 35.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.7 -50.8 -2.2e+03 0.00115 0 0 0 World initStep - 1 -12.6 -50.9 -2.2e+03 0 0.00115 0.344 0.344 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.7 -50.8 -2.2e+03 0.00178 0 0 0 World initStep - 1 -12.7 -50.5 -2.2e+03 0 0.00178 0.667 0.667 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.7 -50.7 -2.21e+03 0.001 0 0 0 World initStep - 1 -12.7 -50.8 -2.21e+03 0 0.001 0.284 0.284 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.7 -50.7 -2.23e+03 0.00204 0 0 0 World initStep - 1 -12.6 -50.4 -2.23e+03 0 0.00204 0.824 0.824 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.6 -50.4 -2.31e+03 0.00259 0 0 0 World initStep - 1 -12.4 -50 -2.31e+03 0 0.00259 1.18 1.18 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.7 -50.2 -2.39e+03 0.00144 0 0 0 World initStep - 1 -12.6 -50.4 -2.39e+03 0 0.00144 0.482 0.482 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.6 -50 -2.45e+03 0.00203 0 0 0 World initStep - 1 -12.5 -49.8 -2.45e+03 0 0.00203 0.817 0.817 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.6 -50 -2.5e+03 0.00116 0 0 0 World initStep - 1 -12.7 -49.8 -2.5e+03 0 0.00116 0.348 0.348 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.6 -49.9 -2.51e+03 0.0027 0 0 0 World initStep - 1 -13 -50.2 -2.51e+03 0 0.0027 1.25 1.25 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.6 -49.9 -2.52e+03 0.0138 0 0 0 World initStep - 1 -8.54 -47.2 -2.52e+03 0.0124 0.00135 6.31 6.31 World eIoni - 2 -5.93 -46.8 -2.52e+03 0.0107 0.000659 3.5 9.81 World eIoni - 3 -4.68 -46.2 -2.52e+03 0.00631 0.000785 1.88 11.7 World eIoni - 4 -3.95 -46 -2.52e+03 0.00477 0.000425 0.844 12.5 World eIoni - 5 -3.51 -47.3 -2.52e+03 0.00295 0.00183 2.07 14.6 World eIoni - 6 -3.73 -47.8 -2.52e+03 0 0.00295 1.37 16 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.95 -46 -2.52e+03 0.00111 0 0 0 World initStep - 1 -4.04 -46.1 -2.52e+03 0 0.00111 0.327 0.327 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.68 -46.2 -2.52e+03 0.00358 0 0 0 World initStep - 1 -4.76 -46 -2.51e+03 0.00104 0.00254 1.65 1.65 World eIoni - 2 -4.74 -46.1 -2.51e+03 0 0.00104 0.299 1.94 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.93 -46.8 -2.52e+03 0.0011 0 0 0 World initStep - 1 -5.86 -46.8 -2.52e+03 0 0.0011 0.322 0.322 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.8 -129 -2.61e+03 50 0 0 0 World initStep - 1 -36.8 -129 -2.58e+03 50 0.00481 35.8 35.8 World hIoni - 2 -36.8 -129 -2.56e+03 50 0.00308 19.1 54.9 World hIoni - 3 -36.8 -129 -2.51e+03 49.9 0.0088 42.9 97.8 World hIoni - 4 -36.8 -129 -2.51e+03 49.9 0.00142 8.67 107 World hIoni - 5 -36.7 -129 -2.48e+03 49.9 0.00399 30.6 137 World hIoni - 6 -36.6 -129 -2.37e+03 49.9 0.0206 104 241 World hIoni - 7 -36.6 -129 -2.32e+03 49.8 0.00755 48.3 290 World hIoni - 8 -36.6 -129 -2.32e+03 49.8 0.000118 0.503 290 World hIoni - 9 -36.4 -129 -2.22e+03 49.8 0.0183 98.9 389 World hIoni - 10 -36.2 -129 -2.1e+03 49.8 0.0265 125 514 World hIoni - 11 -36.2 -129 -2.09e+03 49.8 0.00109 6.14 520 World hIoni - 12 -36.1 -129 -2.08e+03 49.8 0.00443 16.9 537 World hIoni - 13 -36.1 -129 -2.07e+03 49.8 0.00129 10.3 547 World hIoni - 14 -36 -129 -2.03e+03 49.8 0.00686 37.4 585 World hIoni - 15 -35.8 -129 -1.96e+03 49.7 0.012 67.2 652 World hIoni - 16 -35.7 -129 -1.92e+03 49.7 0.0164 44 696 World hIoni - 17 -35.3 -130 -1.75e+03 49.7 0.0332 170 865 World hIoni - 18 -35.2 -130 -1.74e+03 49.7 0.000893 11.1 877 World hIoni - 19 -35.2 -130 -1.71e+03 49.7 0.00506 24.6 901 World hIoni - 20 -35.1 -130 -1.68e+03 49.7 0.00504 31.3 932 World hIoni - 21 -35.1 -130 -1.67e+03 49.7 0.00172 9.29 942 World hIoni - 22 -35.1 -130 -1.67e+03 49.7 0.000107 0.582 942 World hIoni - 23 -34.9 -130 -1.62e+03 49.7 0.00971 47.1 989 World hIoni - 24 -34.8 -130 -1.6e+03 49.7 0.00308 18.7 1.01e+03 World hIoni - 25 -34.8 -130 -1.6e+03 49.6 0.00167 8.2 1.02e+03 World hIoni - 26 -34.5 -130 -1.53e+03 49.6 0.0132 69.2 1.09e+03 World hIoni - 27 -34.4 -130 -1.52e+03 49.6 0.00126 7.28 1.09e+03 World hIoni - 28 -34.4 -130 -1.52e+03 49.6 0.000432 1.78 1.09e+03 World hIoni - 29 -34.2 -130 -1.45e+03 49.6 0.0133 67 1.16e+03 World hIoni - 30 -34.2 -130 -1.43e+03 49.6 0.00379 21.5 1.18e+03 World hIoni - 31 -34.1 -130 -1.41e+03 49.6 0.00527 19.6 1.2e+03 World hIoni - 32 -34 -130 -1.35e+03 49.6 0.0103 55.2 1.26e+03 World hIoni - 33 -34 -130 -1.35e+03 49.6 0.000448 3.13 1.26e+03 World hIoni - 34 -33.8 -130 -1.26e+03 49.5 0.0144 94.1 1.35e+03 World hIoni - 35 -33.7 -130 -1.22e+03 49.5 0.0047 33.9 1.39e+03 World hIoni - 36 -33.6 -130 -1.19e+03 49.5 0.00474 34.8 1.42e+03 World hIoni - 37 -33.6 -130 -1.19e+03 49.5 0.000223 1.1 1.42e+03 World hIoni - 38 -33.6 -130 -1.16e+03 49.5 0.00345 23.6 1.45e+03 World hIoni - 39 -33.6 -130 -1.16e+03 49.5 0.000429 3.1 1.45e+03 World hIoni - 40 -33.6 -130 -1.15e+03 49.5 0.00184 11 1.46e+03 World hIoni - 41 -33.6 -130 -1.13e+03 49.5 0.00303 15.4 1.48e+03 World hIoni - 42 -33.5 -130 -1.08e+03 49.5 0.00955 55.8 1.53e+03 World hIoni - 43 -33.5 -130 -1.07e+03 49.5 0.000974 7.37 1.54e+03 World hIoni - 44 -33.4 -131 -1.01e+03 49.5 0.0115 58.8 1.6e+03 World hIoni - 45 -33.1 -131 -899 49.5 0.0158 114 1.71e+03 World hIoni - 46 -33.1 -131 -860 49.5 0.00606 38.7 1.75e+03 World hIoni - 47 -33.1 -131 -785 49.4 0.0124 75.5 1.83e+03 World hIoni - 48 -33 -131 -745 49.4 0.00647 40.3 1.87e+03 World hIoni - 49 -33 -131 -683 49.4 0.00902 61.4 1.93e+03 World hIoni - 50 -32.9 -131 -628 49.3 0.00813 54.9 1.98e+03 World hIoni - 51 -32.8 -132 -559 49.3 0.013 69.3 2.05e+03 World hIoni - 52 -32.5 -132 -458 49.3 0.0164 101 2.15e+03 World hIoni - 53 -32.5 -132 -451 49.3 0.00214 6.8 2.16e+03 World hIoni - 54 -32.5 -132 -451 49.3 6.45e-05 0.169 2.16e+03 World hIoni - 55 -32.5 -132 -428 49.3 0.00457 23.5 2.18e+03 World hIoni - 56 -32.4 -132 -409 49.3 0.00329 19.2 2.2e+03 World hIoni - 57 -32.4 -132 -390 49.2 0.00533 18.5 2.22e+03 World hIoni - 58 -32.3 -132 -355 49.2 0.00898 35 2.26e+03 World hIoni - 59 -32.3 -132 -351 49.2 0.000654 4.01 2.26e+03 World hIoni - 60 -32.2 -132 -287 49.2 0.00946 64.4 2.33e+03 World hIoni - 61 -32.2 -132 -256 49.2 0.00435 31.1 2.36e+03 World hIoni - 62 -32.1 -133 -216 49.2 0.00991 39.5 2.4e+03 World hIoni - 63 -32.1 -133 -198 49.2 0.00221 18.4 2.41e+03 World hIoni - 64 -32.1 -133 -195 49.2 0.000181 2.33 2.42e+03 World hIoni - 65 -32.1 -133 -144 49.2 0.00651 50.9 2.47e+03 World hIoni - 66 -32.1 -133 -120 49.2 0.00446 24.4 2.49e+03 World hIoni - 67 -32.1 -133 -10.6 49.2 0.0196 109 2.6e+03 World hIoni - 68 -32.1 -134 24.2 49.1 0.00587 34.8 2.64e+03 World hIoni - 69 -32.1 -134 37.6 49.1 0.0025 13.4 2.65e+03 World hIoni - 70 -32.1 -134 41.3 49.1 0.000309 3.69 2.65e+03 World hIoni - 71 -32.1 -134 46.3 49.1 0.000833 5.02 2.66e+03 World hIoni - 72 -32.1 -134 84.4 49.1 0.00631 38.1 2.7e+03 World hIoni - 73 -32.1 -134 93.1 49.1 0.00178 8.72 2.71e+03 World hIoni - 74 -32.1 -134 114 49.1 0.00583 21.2 2.73e+03 World hIoni - 75 -32.1 -134 169 49 0.0122 54.2 2.78e+03 World hIoni - 76 -32.1 -134 199 49 0.0055 30.9 2.81e+03 World hIoni - 77 -32.1 -134 206 49 0.000574 6.38 2.82e+03 World hIoni - 78 -32.1 -134 209 49 0.000382 2.76 2.82e+03 World hIoni - 79 -32.1 -134 256 49 0.00856 47.1 2.87e+03 World hIoni - 80 -32.1 -134 269 49 0.0026 13.6 2.88e+03 World hIoni - 81 -32.1 -134 287 49 0.00333 17.9 2.9e+03 World hIoni - 82 -32.1 -134 306 49 0.00368 18.9 2.92e+03 World hIoni - 83 -32.2 -134 380 49 0.0149 73.9 2.99e+03 World hIoni - 84 -32.2 -134 388 49 0.00153 8.05 3e+03 World hIoni - 85 -32.2 -135 523 49 0.0232 135 3.14e+03 World hIoni - 86 -32.2 -135 560 49 0.00724 37 3.17e+03 cloudPV CoupledTransportation - 87 -32.2 -135 560 48.1 0.852 0.649 3.17e+03 World CoupledTransportation - 88 -32.3 -135 568 48.1 0.000975 7.87 3.18e+03 World hIoni - 89 -32.4 -135 592 48.1 0.00474 23.7 3.2e+03 World hIoni - 90 -32.4 -135 597 48.1 0.00052 5.11 3.21e+03 World hIoni - 91 -32.9 -135 722 48.1 0.0235 125 3.33e+03 World hIoni - 92 -33 -136 749 48.1 0.00579 27.2 3.36e+03 World hIoni - 93 -33.1 -136 770 48.1 0.00369 21 3.38e+03 World hIoni - 94 -33.3 -136 809 48 0.00712 39.1 3.42e+03 World hIoni - 95 -33.5 -136 841 48 0.00551 32.3 3.45e+03 World hIoni - 96 -33.6 -136 858 48 0.0026 16.7 3.47e+03 World hIoni - 97 -33.6 -136 864 48 0.00185 6.51 3.48e+03 World hIoni - 98 -34.6 -136 1.09e+03 48 0.0404 223 3.7e+03 cloudPV CoupledTransportation - 99 -34.6 -136 1.09e+03 46.4 1.64 1.33 3.7e+03 World CoupledTransportation - 100 -34.9 -136 1.15e+03 46.3 0.00844 60.4 3.76e+03 World hIoni - 101 -35.4 -137 1.24e+03 46.3 0.019 92.9 3.85e+03 World hIoni - 102 -35.7 -137 1.29e+03 46.3 0.0111 52.1 3.91e+03 World hIoni - 103 -36 -137 1.33e+03 46.3 0.00723 38.2 3.95e+03 World hIoni - 104 -36.2 -137 1.37e+03 46.3 0.0075 34.6 3.98e+03 World hIoni - 105 -36.3 -137 1.38e+03 46.3 0.00303 17.7 4e+03 World hIoni - 106 -36.3 -137 1.39e+03 46.3 0.00241 9.75 4.01e+03 World hIoni - 107 -36.5 -137 1.43e+03 46.3 0.00539 31.8 4.04e+03 World hIoni - 108 -36.6 -137 1.44e+03 46.3 0.00242 14.6 4.05e+03 World hIoni - 109 -36.9 -137 1.48e+03 46.3 0.00649 42 4.1e+03 World hIoni - 110 -37.1 -137 1.51e+03 46.3 0.00382 23.7 4.12e+03 World hIoni - 111 -37.2 -137 1.53e+03 46.2 0.00332 19.3 4.14e+03 World hIoni - 112 -37.2 -137 1.53e+03 46.2 0.000848 3.35 4.14e+03 World hIoni - 113 -37.2 -137 1.53e+03 46.2 0.000114 2.01 4.14e+03 World hIoni - 114 -37.3 -137 1.54e+03 46.2 0.00173 12.5 4.16e+03 World hIoni - 115 -37.3 -137 1.54e+03 46.2 0.00128 0.689 4.16e+03 World hIoni - 116 -37.7 -137 1.6e+03 46.2 0.00903 52.9 4.21e+03 World hIoni - 117 -37.9 -137 1.64e+03 46.2 0.00796 42.3 4.25e+03 World hIoni - 118 -38.1 -137 1.66e+03 46.2 0.00582 20.5 4.27e+03 World hIoni - 119 -38.2 -137 1.68e+03 46.1 0.00324 19.6 4.29e+03 World hIoni - 120 -39.3 -137 1.83e+03 46.1 0.0292 149 4.44e+03 World hIoni - 121 -39.6 -137 1.87e+03 46.1 0.0094 43.1 4.48e+03 World hIoni - 122 -39.6 -137 1.87e+03 46.1 0.000176 0.161 4.48e+03 World hIoni - 123 -39.8 -137 1.9e+03 46.1 0.00316 24 4.51e+03 World hIoni - 124 -40.2 -137 1.95e+03 46.1 0.0125 55 4.56e+03 World hIoni - 125 -41 -137 2.06e+03 46.1 0.0204 104 4.67e+03 World hIoni - 126 -41 -137 2.06e+03 46.1 0.000318 4.6 4.67e+03 World hIoni - 127 -41.2 -137 2.08e+03 46 0.00262 22.1 4.69e+03 World hIoni - 128 -41.2 -137 2.09e+03 46 0.00082 4.2 4.7e+03 World hIoni - 129 -41.2 -137 2.09e+03 46 0.000111 0.216 4.7e+03 World hIoni - 130 -41.5 -137 2.12e+03 46 0.00628 31.7 4.73e+03 World hIoni - 131 -41.6 -137 2.13e+03 46 0.00231 14.6 4.75e+03 World hIoni - 132 -42.3 -137 2.22e+03 46 0.0185 90.5 4.84e+03 World hIoni - 133 -42.6 -137 2.25e+03 46 0.00235 26 4.86e+03 World hIoni - 134 -42.9 -137 2.29e+03 46 0.00729 42.8 4.9e+03 World hIoni - 135 -43.4 -137 2.34e+03 46 0.0114 47 4.95e+03 World hIoni - 136 -43.4 -137 2.34e+03 46 0.00169 5.48 4.96e+03 World hIoni - 137 -43.4 -137 2.35e+03 46 0.000317 4.42 4.96e+03 cloudPV CoupledTransportation - 138 -43.5 -137 2.35e+03 43.4 2.53 1.81 4.96e+03 World CoupledTransportation - 139 -43.6 -137 2.38e+03 43.4 0.0066 28.3 4.99e+03 World hIoni - 140 -43.8 -137 2.41e+03 43.4 0.00604 28.4 5.02e+03 World hIoni - 141 -43.9 -137 2.42e+03 43.4 0.00154 10.6 5.03e+03 World hIoni - 142 -44.2 -137 2.46e+03 43.4 0.00758 41.9 5.07e+03 World hIoni - 143 -44.2 -137 2.46e+03 43.4 0.000208 3.88 5.08e+03 cloudPV CoupledTransportation - 144 -44.2 -137 2.47e+03 41 2.39 1.81 5.08e+03 World CoupledTransportation - 145 -44.3 -137 2.47e+03 41 0.00227 9.26 5.09e+03 World hIoni - 146 -44.8 -136 2.51e+03 41 0.00694 34.7 5.12e+03 World hIoni - 147 -45 -136 2.52e+03 41 0.00355 12.5 5.13e+03 World hIoni - 148 -45.6 -136 2.57e+03 41 0.0108 44.7 5.18e+03 World hIoni - 149 -46.1 -136 2.6e+03 41 0.00679 33.1 5.21e+03 detectorPV CoupledTransportation - 150 -46.1 -136 2.6e+03 35.5 5.45 1.69 5.21e+03 detectorPV hIoni - 151 -46.2 -136 2.6e+03 30.7 4.81 1.35 5.22e+03 detectorPV hIoni - 152 -46.3 -136 2.6e+03 26.7 3.97 1.08 5.22e+03 detectorPV hIoni - 153 -46.3 -136 2.6e+03 23.1 3.68 0.875 5.22e+03 detectorPV hIoni - 154 -46.4 -136 2.61e+03 19.5 3.6 0.709 5.22e+03 detectorPV hIoni - 155 -46.5 -136 2.61e+03 16.1 3.37 0.565 5.22e+03 detectorPV hIoni - 156 -46.5 -136 2.61e+03 13.1 2.94 0.447 5.22e+03 detectorPV hIoni - 157 -46.6 -136 2.61e+03 10.2 2.96 0.357 5.22e+03 detectorPV hIoni - 158 -46.6 -136 2.61e+03 7.32 2.87 0.278 5.22e+03 detectorPV hIoni - 159 -46.6 -136 2.61e+03 4.44 2.88 0.212 5.22e+03 detectorPV hIoni - 160 -46.7 -136 2.61e+03 1.07 3.37 0.141 5.22e+03 detectorPV hIoni - 161 -46.7 -136 2.61e+03 0.00178 1.06 0.0161 5.22e+03 detectorPV hIoni - 162 -46.7 -136 2.61e+03 0 0.00178 0.000107 5.22e+03 detectorPV hIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -44.8 -136 2.51e+03 0.0122 0 0 0 World initStep - 1 -45.4 -140 2.51e+03 0.0112 0.000976 5.36 5.36 World eIoni - 2 -48.9 -142 2.51e+03 0.0085 0.00273 4.82 10.2 World eIoni - 3 -51.3 -143 2.51e+03 0.00656 0.00194 3.48 13.7 World eIoni - 4 -52.3 -141 2.51e+03 0.0042 0.00236 2.7 16.4 World eIoni - 5 -51.9 -142 2.51e+03 0.00243 0.00177 1.87 18.2 World eIoni - 6 -52.2 -142 2.51e+03 0 0.00243 1.09 19.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -44.2 -137 2.46e+03 0.00113 0 0 0 World initStep - 1 -44 -137 2.46e+03 0 0.00113 0.335 0.335 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.9 -137 2.42e+03 0.0011 0 0 0 World initStep - 1 -44 -137 2.42e+03 0 0.0011 0.322 0.322 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.4 -137 2.34e+03 0.00328 0 0 0 World initStep - 1 -43.8 -137 2.34e+03 0 0.00328 1.52 1.52 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.9 -137 2.29e+03 0.00163 0 0 0 World initStep - 1 -42.7 -137 2.29e+03 0 0.00163 0.584 0.584 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.6 -137 2.25e+03 0.0252 0 0 0 World initStep - 1 -41 -144 2.25e+03 0.0172 0.00265 7.88 7.88 World eIoni - 2 -36 -150 2.25e+03 0.0154 0.0018 8.73 16.6 World eIoni - 3 -32.4 -151 2.26e+03 0.0131 0.00229 7.41 24 World eIoni - 4 -31.4 -145 2.26e+03 0.0115 0.00165 5.91 29.9 World eIoni - 5 -28.6 -144 2.26e+03 0.00778 0.0037 4.95 34.9 World eIoni - 6 -27.3 -143 2.26e+03 0.00437 0.00205 2.4 37.3 World eIoni - 7 -26.8 -142 2.26e+03 0.00256 0.00181 1.93 39.2 World eIoni - 8 -26.4 -141 2.26e+03 0.00103 0.00153 1.17 40.4 World eIoni - 9 -26.3 -141 2.26e+03 0 0.00103 0.295 40.7 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 96 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -27.3 -143 2.26e+03 0.00136 0 0 0 World initStep - 1 -27.4 -143 2.26e+03 0 0.00136 0.441 0.441 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 96 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41 -144 2.25e+03 0.00536 0 0 0 World initStep - 1 -40.7 -144 2.25e+03 0.00336 0.002 2.27 2.27 World eIoni - 2 -40.1 -143 2.25e+03 0.00205 0.00131 1.56 3.82 World eIoni - 3 -40.4 -143 2.25e+03 0 0.00205 0.833 4.66 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.3 -137 2.22e+03 0.00786 0 0 0 World initStep - 1 -42.9 -135 2.22e+03 0.00547 0.00239 3.21 3.21 World eIoni - 2 -42.3 -134 2.22e+03 0.00421 0.00127 2.31 5.52 World eIoni - 3 -42.4 -134 2.22e+03 0.00143 0.00278 1.87 7.4 World eIoni - 4 -42.4 -133 2.22e+03 0 0.00143 0.475 7.87 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41.6 -137 2.13e+03 0.00198 0 0 0 World initStep - 1 -41.4 -138 2.13e+03 0 0.00198 0.788 0.788 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41.5 -137 2.12e+03 0.00125 0 0 0 World initStep - 1 -41.4 -137 2.12e+03 0 0.00125 0.392 0.392 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41.2 -137 2.09e+03 0.00128 0 0 0 World initStep - 1 -41.1 -137 2.09e+03 0 0.00128 0.405 0.405 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41.2 -137 2.09e+03 0.00154 0 0 0 World initStep - 1 -41.4 -137 2.09e+03 0 0.00154 0.531 0.531 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41.2 -137 2.08e+03 0.00101 0 0 0 World initStep - 1 -41.3 -138 2.08e+03 0 0.00101 0.284 0.284 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41 -137 2.06e+03 0.00217 0 0 0 World initStep - 1 -41.3 -138 2.06e+03 0 0.00217 0.912 0.912 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -40.2 -137 1.95e+03 0.00335 0 0 0 World initStep - 1 -39.4 -137 1.95e+03 0.0017 0.00165 1.55 1.55 World eIoni - 2 -39.4 -138 1.95e+03 0 0.0017 0.622 2.17 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -39.8 -137 1.9e+03 0.0124 0 0 0 World initStep - 1 -38.4 -139 1.9e+03 0.00685 0.000304 1.87 1.87 World eIoni - 2 -39.1 -139 1.9e+03 0.00398 0.000288 1.61 3.47 World eIoni - 3 -39.6 -138 1.9e+03 0 0.00398 1.79 5.27 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -39.1 -139 1.9e+03 0.00258 0 0 0 World initStep - 1 -38.7 -138 1.9e+03 0 0.00258 1.18 1.18 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38.4 -139 1.9e+03 0.00524 0 0 0 World initStep - 1 -37.9 -137 1.9e+03 0.00407 0.00118 2.23 2.23 World eIoni - 2 -37.6 -138 1.9e+03 0.0016 0.00246 1.82 4.05 World eIoni - 3 -37.4 -138 1.9e+03 0 0.0016 0.568 4.62 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -39.6 -137 1.87e+03 0.00105 0 0 0 World initStep - 1 -39.5 -137 1.87e+03 0 0.00105 0.303 0.303 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -39.3 -137 1.83e+03 0.00122 0 0 0 World initStep - 1 -39.1 -137 1.83e+03 0 0.00122 0.376 0.376 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38.2 -137 1.68e+03 0.0615 0 0 0 World initStep - 1 -3.07 -150 1.73e+03 0.0557 0.00579 74.3 74.3 World eIoni - 2 24 -127 1.77e+03 0.0517 0.00395 62.5 137 World eIoni - 3 33.9 -115 1.8e+03 0.047 0.00257 27.4 164 World eIoni - 4 56 -99.5 1.81e+03 0.0393 0.00588 31.8 196 World eIoni - 5 68.3 -110 1.78e+03 0.035 0.00431 34 230 World eIoni - 6 78.1 -119 1.76e+03 0.0312 0.00376 27.8 258 World eIoni - 7 78.2 -118 1.75e+03 0.0307 0.0005 5.31 263 cloudPV CoupledTransportation - 8 78.2 -118 1.75e+03 0.0304 0.000286 0.000719 263 cloudPV msc - 9 78.2 -118 1.75e+03 0.0299 0.000539 0.000767 263 cloudPV msc - 10 78.2 -118 1.75e+03 0.0291 0.00078 0.000767 263 cloudPV msc - 11 78.2 -118 1.75e+03 0.0287 0.000409 0.00103 263 cloudPV msc - 12 78.2 -118 1.75e+03 0.0274 0.0013 0.00186 263 cloudPV msc - 13 78.2 -118 1.75e+03 0.0258 0.00157 0.0025 263 cloudPV msc - 14 78.2 -118 1.75e+03 0.0231 0.00269 0.00383 263 cloudPV msc - 15 78.2 -118 1.75e+03 0.0157 0.00748 0.0052 263 cloudPV msc - 16 78.2 -118 1.75e+03 0 0.0157 0.00562 263 cloudPV eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 84 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 56 -99.5 1.81e+03 0.00182 0 0 0 World initStep - 1 55.8 -99.4 1.81e+03 0 0.00182 0.69 0.69 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 84 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 33.9 -115 1.8e+03 0.00218 0 0 0 World initStep - 1 33.6 -114 1.8e+03 0 0.00218 0.917 0.917 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38.1 -137 1.66e+03 0.00596 0 0 0 World initStep - 1 -37.9 -136 1.66e+03 0.00437 0.00159 2.48 2.48 World eIoni - 2 -38.8 -135 1.66e+03 0.00255 0.00182 1.93 4.41 World eIoni - 3 -38.9 -135 1.66e+03 0.00119 0.00136 1.16 5.58 World eIoni - 4 -39 -135 1.66e+03 0 0.00119 0.364 5.94 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -37.9 -137 1.64e+03 0.00117 0 0 0 World initStep - 1 -38 -137 1.64e+03 0 0.00117 0.352 0.352 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -37.3 -137 1.54e+03 0.00125 0 0 0 World initStep - 1 -37.2 -137 1.54e+03 0 0.00125 0.392 0.392 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -37.2 -137 1.53e+03 0.00199 0 0 0 World initStep - 1 -37.5 -137 1.53e+03 0 0.00199 0.797 0.797 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -37.2 -137 1.53e+03 0.00209 0 0 0 World initStep - 1 -37.5 -137 1.53e+03 0 0.00209 0.856 0.856 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -37.1 -137 1.51e+03 0.00588 0 0 0 World initStep - 1 -36.7 -139 1.51e+03 0.00489 0.00099 2.45 2.45 World eIoni - 2 -36.6 -140 1.51e+03 0.00333 0.00157 2.11 4.56 World eIoni - 3 -36.6 -140 1.51e+03 0.00168 0.00164 1.54 6.1 World eIoni - 4 -36.9 -140 1.51e+03 0 0.00168 0.612 6.72 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.6 -137 1.44e+03 0.00107 0 0 0 World initStep - 1 -36.7 -137 1.44e+03 0 0.00107 0.309 0.309 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.5 -137 1.43e+03 0.00102 0 0 0 World initStep - 1 -36.6 -137 1.43e+03 0 0.00102 0.288 0.288 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.3 -137 1.39e+03 0.00117 0 0 0 World initStep - 1 -36.2 -137 1.39e+03 0 0.00117 0.355 0.355 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.3 -137 1.38e+03 0.00285 0 0 0 World initStep - 1 -36.3 -138 1.38e+03 0 0.00285 1.33 1.33 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.2 -137 1.37e+03 0.00185 0 0 0 World initStep - 1 -36.4 -137 1.37e+03 0 0.00185 0.711 0.711 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36 -137 1.33e+03 0.00281 0 0 0 World initStep - 1 -35.6 -138 1.33e+03 0 0.00281 1.3 1.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.7 -137 1.29e+03 0.00306 0 0 0 World initStep - 1 -35.1 -137 1.29e+03 0.00107 0.002 1.43 1.43 World eIoni - 2 -35.2 -137 1.29e+03 0 0.00107 0.31 1.74 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.4 -137 1.24e+03 0.0023 0 0 0 World initStep - 1 -35.8 -137 1.24e+03 0 0.0023 1 1 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.9 -136 1.15e+03 0.00177 0 0 0 World initStep - 1 -35.1 -136 1.15e+03 0 0.00177 0.662 0.662 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.6 -136 864 0.00365 0 0 0 World initStep - 1 -34.5 -136 865 0.00224 0.00141 1.67 1.67 World eIoni - 2 -34.7 -136 864 0 0.00224 0.962 2.63 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 -136 770 0.00138 0 0 0 World initStep - 1 -33.3 -135 770 0 0.00138 0.454 0.454 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33 -136 749 0.00149 0 0 0 World initStep - 1 -33.2 -135 749 0 0.00149 0.506 0.506 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.9 -135 722 0.00101 0 0 0 World initStep - 1 -33 -136 722 0 0.00101 0.285 0.285 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.4 -135 592 0.0024 0 0 0 World initStep - 1 -32.1 -135 592 0 0.0024 1.07 1.07 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.2 -135 523 0.00114 0 0 0 World initStep - 1 -32.2 -135 523 0 0.00114 0.342 0.342 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.2 -134 380 0.00106 0 0 0 World initStep - 1 -32.2 -135 380 0 0.00106 0.305 0.305 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -134 287 0.00216 0 0 0 World initStep - 1 -32.1 -135 287 0 0.00216 0.902 0.902 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -134 269 0.00139 0 0 0 World initStep - 1 -31.9 -134 269 0 0.00139 0.456 0.456 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -134 256 0.00492 0 0 0 World initStep - 1 -31.7 -135 256 0.0041 0.000813 2.12 2.12 World eIoni - 2 -31.1 -136 256 0.00286 0.00125 1.84 3.95 World eIoni - 3 -31.7 -136 256 0 0.00286 1.33 5.28 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -134 209 0.00843 0 0 0 World initStep - 1 -29.5 -134 209 0.00585 0.00258 3.45 3.45 World eIoni - 2 -28.2 -134 210 0.00424 0.00161 2.44 5.9 World eIoni - 3 -27.1 -134 210 0.0018 0.00245 1.89 7.78 World eIoni - 4 -27.2 -134 210 0 0.0018 0.676 8.46 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -134 199 0.00139 0 0 0 World initStep - 1 -31.9 -134 200 0 0.00139 0.459 0.459 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -134 93.1 0.0114 0 0 0 World initStep - 1 -29.9 -136 96.1 0.0102 0.0012 4.91 4.91 World eIoni - 2 -30.2 -135 99.8 0.00762 0.00258 4.28 9.19 World eIoni - 3 -29.4 -136 102 0.00454 0.00308 3.11 12.3 World eIoni - 4 -29.5 -136 103 0 0.00454 1.99 14.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -134 84.4 0.0035 0 0 0 World initStep - 1 -32.3 -133 84.5 0 0.0035 1.61 1.61 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -134 46.3 0.00269 0 0 0 World initStep - 1 -32.2 -134 46.4 0 0.00269 1.24 1.24 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -134 41.3 0.00124 0 0 0 World initStep - 1 -32.2 -134 41.3 0 0.00124 0.383 0.383 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -134 37.6 0.0209 0 0 0 World initStep - 1 -25.9 -137 46 0.0163 0.00454 11.7 11.7 World eIoni - 2 -20 -140 49 0.0143 0.00199 8.05 19.8 World eIoni - 3 -14.9 -141 51.1 0.0113 0.003 6.67 26.5 World eIoni - 4 -13.9 -141 51.7 0.00658 0.00169 1.2 27.7 World eIoni - 5 -12.6 -142 53.4 0.0061 0.000477 2.71 30.4 World eIoni - 6 -10.5 -143 53.4 0.0054 0.000698 2.53 32.9 World eIoni - 7 -8.98 -144 54 0.00346 0.00194 2.29 35.2 World eIoni - 8 -8.72 -144 54.5 0.00186 0.00161 1.6 36.8 World eIoni - 9 -8.93 -144 54.4 0 0.00186 0.712 37.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 52 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13.9 -141 51.7 0.00308 0 0 0 World initStep - 1 -13.7 -141 51.7 0.00273 0.000349 0.26 0.26 World msc - 2 -13.4 -141 51.5 0.00252 0.000212 0.32 0.58 World msc - 3 -13.3 -141 51.1 0.00172 0.000791 0.465 1.04 World msc - 4 -13.2 -141 50.9 0 0.00172 0.635 1.68 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -134 24.2 0.0382 0 0 0 World initStep - 1 -34.2 -161 34.2 0.0326 0.00552 32.3 32.3 World eIoni - 2 -35.9 -183 32.3 0.0276 0.00503 24.7 57 World eIoni - 3 -45.8 -197 36.7 0.0212 0.00643 18.6 75.5 World eIoni - 4 -51.8 -202 36.8 0.018 0.00213 8.88 84.4 World eIoni - 5 -55.3 -210 35.1 0.0161 0.00188 9.34 93.7 World eIoni - 6 -55.2 -217 36.9 0.0136 0.00251 7.91 102 World eIoni - 7 -52.1 -222 38.6 0.0115 0.00213 6.21 108 World eIoni - 8 -52.2 -217 39.8 0.0107 0.00078 4.96 113 World eIoni - 9 -51.5 -213 39.6 0.00838 0.00233 4.54 117 World eIoni - 10 -51.1 -210 39.3 0.00567 0.00271 3.43 121 World eIoni - 11 -52.1 -209 39.2 0.00449 0.00118 2.38 123 World eIoni - 12 -53.1 -209 38.6 0.0028 0.00169 1.97 125 World eIoni - 13 -53.3 -209 38.1 0 0.0028 1.3 126 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51.8 -202 36.8 0.00105 0 0 0 World initStep - 1 -51.8 -202 36.7 0 0.00105 0.301 0.301 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -133 -10.6 0.00144 0 0 0 World initStep - 1 -31.9 -133 -10.5 0 0.00144 0.484 0.484 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -133 -144 0.00227 0 0 0 World initStep - 1 -32.2 -133 -144 0 0.00227 0.982 0.982 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -133 -195 0.00246 0 0 0 World initStep - 1 -32.1 -133 -195 0 0.00246 1.1 1.1 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.1 -133 -198 0.00141 0 0 0 World initStep - 1 -32.2 -132 -198 0 0.00141 0.467 0.467 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.2 -132 -287 0.0021 0 0 0 World initStep - 1 -32.2 -133 -287 0 0.0021 0.865 0.865 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.3 -132 -351 0.0105 0 0 0 World initStep - 1 -33.4 -136 -350 0.00747 0.00304 4.44 4.44 World eIoni - 2 -33.4 -137 -349 0.00426 0.00107 1.37 5.81 World eIoni - 3 -34.1 -136 -350 0.00334 0.000921 1.89 7.7 World eIoni - 4 -33.6 -136 -350 0.00171 0.00163 1.55 9.25 World eIoni - 5 -33.5 -136 -350 0 0.00171 0.627 9.87 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 45 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.4 -137 -349 0.00214 0 0 0 World initStep - 1 -33.6 -137 -349 0 0.00214 0.895 0.895 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.3 -132 -355 0.00145 0 0 0 World initStep - 1 -32.2 -132 -355 0 0.00145 0.485 0.485 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.4 -132 -390 0.00279 0 0 0 World initStep - 1 -31.9 -132 -390 0 0.00279 1.3 1.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.4 -132 -409 0.00127 0 0 0 World initStep - 1 -32.6 -132 -409 0 0.00127 0.397 0.397 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.5 -132 -451 0.0313 0 0 0 World initStep - 1 -15.9 -119 -447 0.0267 0.00462 23 23 World eIoni - 2 -0.738 -118 -443 0.023 0.00254 16.7 39.7 World eIoni - 3 9.98 -122 -437 0.021 0.00202 13.7 53.5 World eIoni - 4 17.8 -130 -438 0.018 0.00297 11.9 65.3 World eIoni - 5 24.6 -132 -433 0.0162 0.00183 9.35 74.7 World eIoni - 6 24.9 -125 -432 0.0136 0.00142 7.37 82 World eIoni - 7 23 -121 -436 0.00791 0.00195 6.04 88.1 World eIoni - 8 22.7 -119 -438 0.00652 0.00139 3.23 91.3 World eIoni - 9 24.4 -119 -437 0.00431 0.00221 2.69 94 World eIoni - 10 24.4 -120 -437 0.00329 0.00102 1.91 95.9 World eIoni - 11 23.7 -120 -436 0.0015 0.00179 1.53 97.4 World eIoni - 12 23.6 -120 -436 0 0.0015 0.514 97.9 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 41 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 23 -121 -436 0.00378 0 0 0 World initStep - 1 23.4 -120 -435 0.00179 0.00199 1.72 1.72 World eIoni - 2 23.7 -120 -435 0 0.00179 0.671 2.39 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 41 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24.9 -125 -432 0.00115 0 0 0 World initStep - 1 24.8 -125 -432 0 0.00115 0.343 0.343 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 41 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.738 -118 -443 0.00114 0 0 0 World initStep - 1 -0.659 -118 -443 0 0.00114 0.343 0.343 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.5 -132 -451 0.00144 0 0 0 World initStep - 1 -32.6 -132 -451 0 0.00144 0.483 0.483 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.9 -131 -628 0.0268 0 0 0 World initStep - 1 -28.2 -117 -621 0.0226 0.0042 17.6 17.6 World eIoni - 2 -28.7 -106 -626 0.01 0.00368 12.8 30.4 World eIoni - 3 -32.1 -105 -627 0.0066 0.00342 4.19 34.6 World eIoni - 4 -33.9 -104 -628 0.00581 0.000784 2.71 37.3 World eIoni - 5 -34.3 -104 -630 0.00485 0.000966 2.43 39.8 World eIoni - 6 -33.1 -104 -630 0.00202 0.00283 2.09 41.9 World eIoni - 7 -32.8 -104 -630 0 0.00202 0.814 42.7 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 39 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -28.7 -106 -626 0.00888 0 0 0 World initStep - 1 -26.2 -105 -628 0.00626 0.00262 3.65 3.65 World eIoni - 2 -24.8 -104 -628 0.00451 0.00175 2.59 6.24 World eIoni - 3 -24.2 -103 -629 0.00313 0.00137 1.98 8.22 World eIoni - 4 -23.6 -103 -629 0.00104 0.00209 1.46 9.67 World eIoni - 5 -23.6 -103 -629 0 0.00104 0.297 9.97 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33 -131 -683 0.0373 0 0 0 World initStep - 1 -42.3 -115 -663 0.0334 0.00388 31 31 World eIoni - 2 -38 -123 -662 0.0298 0.00207 9.44 40.4 World eIoni - 3 -23 -116 -652 0.0264 0.00335 21.1 61.5 World eIoni - 4 -18.8 -116 -652 0.0248 0.000384 4.28 65.8 World eIoni - 5 -6.49 -124 -652 0.0218 0.00301 15.5 81.3 World eIoni - 6 4.09 -125 -657 0.0182 0.00357 12.6 93.9 World eIoni - 7 -2.61 -127 -662 0.0167 0.00154 9.49 103 World eIoni - 8 -2.9 -134 -665 0.0155 0.0012 8.3 112 World eIoni - 9 -4.81 -141 -665 0.0128 0.00268 7.43 119 World eIoni - 10 -6.07 -145 -662 0.00972 0.00307 5.7 125 World eIoni - 11 -5.86 -147 -660 0.00872 0.000996 4.04 129 World eIoni - 12 -3.48 -148 -659 0.0048 0.00392 3.58 132 World eIoni - 13 -3.13 -148 -659 0.00218 0.00121 0.768 133 World eIoni - 14 -3.04 -149 -659 0 0.00218 0.919 134 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 38 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.13 -148 -659 0.00141 0 0 0 World initStep - 1 -3.15 -148 -659 0 0.00141 0.467 0.467 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 38 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.8 -116 -652 0.00125 0 0 0 World initStep - 1 -18.7 -116 -652 0 0.00125 0.39 0.39 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 38 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38 -123 -662 0.00155 0 0 0 World initStep - 1 -37.9 -123 -663 0 0.00155 0.541 0.541 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33 -131 -745 0.019 0 0 0 World initStep - 1 -33.5 -126 -740 0.0155 0.0009 7.35 7.35 World eIoni - 2 -33.3 -122 -734 0.014 0.00148 7.48 14.8 World eIoni - 3 -37.9 -119 -733 0.00895 0.003 6.12 21 World eIoni - 4 -40.7 -119 -733 0.00774 0.00121 3.68 24.6 World eIoni - 5 -42.9 -118 -734 0.00602 0.00172 3.16 27.8 World eIoni - 6 -42.9 -118 -736 0.00465 0.00136 2.5 30.3 World eIoni - 7 -43.5 -117 -735 0.00331 0.00134 2.03 32.3 World eIoni - 8 -43.6 -118 -735 0.00134 0.00196 1.53 33.9 World eIoni - 9 -43.6 -118 -735 0 0.00134 0.434 34.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -37.9 -119 -733 0.0021 0 0 0 World initStep - 1 -37.8 -119 -733 0 0.0021 0.868 0.868 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.5 -126 -740 0.00253 0 0 0 World initStep - 1 -33 -125 -740 0 0.00253 1.15 1.15 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 -131 -785 0.0104 0 0 0 World initStep - 1 -30.5 -133 -784 0.00695 0.00344 4.38 4.38 World eIoni - 2 -30.2 -135 -782 0.00633 0.000622 2.85 7.23 World eIoni - 3 -31.5 -136 -782 0.00292 0.00341 2.62 9.84 World eIoni - 4 -31.3 -136 -783 0.00112 0.0018 1.36 11.2 World eIoni - 5 -31.3 -136 -783 0 0.00112 0.333 11.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 -131 -860 0.00219 0 0 0 World initStep - 1 -32.7 -131 -860 0 0.00219 0.924 0.924 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 -131 -899 0.0152 0 0 0 World initStep - 1 -31.2 -131 -898 0.0127 0.000779 2.44 2.44 World eIoni - 2 -26.9 -129 -895 0.0112 0.00153 5.64 8.08 World eIoni - 3 -24.5 -130 -894 0.00705 0.00104 2.8 10.9 World eIoni - 4 -24.4 -131 -892 0.00466 0.00239 2.89 13.8 World eIoni - 5 -24.6 -132 -891 0.00228 0.00237 2.03 15.8 World eIoni - 6 -25 -131 -891 0 0.00228 0.991 16.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -24.5 -130 -894 0.00307 0 0 0 World initStep - 1 -23.9 -130 -894 0 0.00307 1.43 1.43 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -31.2 -131 -898 0.00178 0 0 0 World initStep - 1 -31.3 -131 -897 0 0.00178 0.664 0.664 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.5 -130 -1.07e+03 0.00375 0 0 0 World initStep - 1 -33.6 -130 -1.07e+03 0.0025 5.3e-05 0.341 0.341 World eIoni - 2 -33.3 -130 -1.07e+03 0 0.0025 1.13 1.48 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.6 -130 -1.07e+03 0.00119 0 0 0 World initStep - 1 -33.7 -130 -1.07e+03 0 0.00119 0.365 0.365 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.5 -130 -1.08e+03 0.0014 0 0 0 World initStep - 1 -33.7 -130 -1.08e+03 0 0.0014 0.463 0.463 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.6 -130 -1.13e+03 0.00278 0 0 0 World initStep - 1 -33.8 -130 -1.13e+03 0.0012 0.00158 1.29 1.29 World eIoni - 2 -33.7 -130 -1.13e+03 0 0.0012 0.368 1.66 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.6 -130 -1.16e+03 0.00101 0 0 0 World initStep - 1 -33.6 -130 -1.16e+03 0 0.00101 0.286 0.286 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.7 -130 -1.22e+03 0.00222 0 0 0 World initStep - 1 -33.7 -130 -1.22e+03 0 0.00222 0.944 0.944 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.8 -130 -1.26e+03 0.00443 0 0 0 World initStep - 1 -33.2 -129 -1.26e+03 0.0032 0.00123 1.95 1.95 World eIoni - 2 -32.8 -129 -1.26e+03 0.00124 0.00197 1.49 3.44 World eIoni - 3 -32.9 -129 -1.26e+03 0 0.00124 0.383 3.82 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34 -130 -1.35e+03 0.00393 0 0 0 World initStep - 1 -33.3 -131 -1.35e+03 0 0.00393 1.77 1.77 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34 -130 -1.35e+03 0.00142 0 0 0 World initStep - 1 -34.2 -130 -1.35e+03 0 0.00142 0.472 0.472 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.1 -130 -1.41e+03 0.00121 0 0 0 World initStep - 1 -34 -130 -1.41e+03 0 0.00121 0.374 0.374 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.2 -130 -1.43e+03 0.00146 0 0 0 World initStep - 1 -34.3 -130 -1.43e+03 0 0.00146 0.492 0.492 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.2 -130 -1.45e+03 0.0203 0 0 0 World initStep - 1 -25.2 -126 -1.45e+03 0.016 0.00421 11.2 11.2 World eIoni - 2 -22.2 -132 -1.45e+03 0.0131 0.00292 7.85 19.1 World eIoni - 3 -19.7 -136 -1.44e+03 0.0118 0.00131 5.91 25 World eIoni - 4 -19.1 -140 -1.44e+03 0.00699 0.00484 5.14 30.1 World eIoni - 5 -19.3 -143 -1.44e+03 0.00605 0.000934 2.86 33 World eIoni - 6 -19 -145 -1.44e+03 0.00401 0.00204 2.51 35.5 World eIoni - 7 -19 -145 -1.44e+03 0.00162 0.00239 1.8 37.3 World eIoni - 8 -18.8 -145 -1.44e+03 0 0.00162 0.578 37.9 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.4 -130 -1.52e+03 0.0016 0 0 0 World initStep - 1 -34.2 -130 -1.52e+03 0 0.0016 0.563 0.563 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.4 -130 -1.52e+03 0.00198 0 0 0 World initStep - 1 -34.6 -130 -1.52e+03 0 0.00198 0.789 0.789 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.8 -130 -1.6e+03 0.00198 0 0 0 World initStep - 1 -34.8 -130 -1.6e+03 0 0.00198 0.786 0.786 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.8 -130 -1.6e+03 0.00108 0 0 0 World initStep - 1 -34.7 -130 -1.6e+03 0 0.00108 0.313 0.313 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.9 -130 -1.62e+03 0.00219 0 0 0 World initStep - 1 -34.9 -130 -1.62e+03 0 0.00219 0.924 0.924 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.1 -130 -1.67e+03 0.00663 0 0 0 World initStep - 1 -35.9 -131 -1.67e+03 0.00482 0.000526 1.37 1.37 World eIoni - 2 -36.6 -131 -1.67e+03 0.00377 0.00105 2.09 3.45 World eIoni - 3 -37.2 -131 -1.67e+03 0.0019 0.00187 1.72 5.17 World eIoni - 4 -36.9 -131 -1.67e+03 0 0.0019 0.736 5.91 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.9 -131 -1.67e+03 0.00128 0 0 0 World initStep - 1 -35.8 -131 -1.67e+03 0 0.00128 0.403 0.403 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.1 -130 -1.68e+03 0.00114 0 0 0 World initStep - 1 -35.1 -130 -1.68e+03 0 0.00114 0.341 0.341 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.2 -130 -1.71e+03 0.00138 0 0 0 World initStep - 1 -35 -130 -1.71e+03 0 0.00138 0.453 0.453 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.2 -130 -1.74e+03 0.00153 0 0 0 World initStep - 1 -35.4 -130 -1.74e+03 0 0.00153 0.53 0.53 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.3 -130 -1.75e+03 0.00143 0 0 0 World initStep - 1 -35.4 -130 -1.75e+03 0 0.00143 0.479 0.479 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.7 -129 -1.92e+03 0.00186 0 0 0 World initStep - 1 -35.5 -129 -1.92e+03 0 0.00186 0.711 0.711 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36 -129 -2.03e+03 0.00242 0 0 0 World initStep - 1 -36.3 -129 -2.03e+03 0 0.00242 1.08 1.08 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.1 -129 -2.07e+03 0.00468 0 0 0 World initStep - 1 -35.5 -130 -2.07e+03 0.00328 0.0014 2.04 2.04 World eIoni - 2 -34.9 -131 -2.06e+03 0.00109 0.00219 1.52 3.56 World eIoni - 3 -34.9 -130 -2.06e+03 0 0.00109 0.318 3.87 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.2 -129 -2.09e+03 0.00414 0 0 0 World initStep - 1 -36.7 -130 -2.09e+03 0.00222 0.00192 1.85 1.85 World eIoni - 2 -36.9 -130 -2.09e+03 0 0.00222 0.945 2.79 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.2 -129 -2.1e+03 0.00379 0 0 0 World initStep - 1 -36.7 -130 -2.1e+03 0.00147 0.00232 1.72 1.72 World eIoni - 2 -36.7 -130 -2.1e+03 0 0.00147 0.498 2.22 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.4 -129 -2.22e+03 0.00136 0 0 0 World initStep - 1 -36.3 -129 -2.22e+03 0 0.00136 0.441 0.441 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.6 -129 -2.32e+03 0.0767 0 0 0 World initStep - 1 -72.7 -108 -2.24e+03 0.0707 0.00595 110 110 World eIoni - 2 -88.8 -118 -2.16e+03 0.059 0.0117 95 205 World eIoni - 3 -92.4 -118 -2.15e+03 0.0582 0.000783 11 216 World eIoni - 4 -99.3 -122 -2.11e+03 0.0488 0.00506 41.9 257 World eIoni - 5 -101 -125 -2.07e+03 0.0443 0.00343 42.7 300 World eIoni - 6 -122 -140 -2.04e+03 0.0385 0.00576 41.8 342 World eIoni - 7 -127 -142 -2.01e+03 0.0318 0.00671 32.8 375 World eIoni - 8 -123 -132 -1.99e+03 0.0278 0.00405 23.6 398 World eIoni - 9 -118 -128 -1.97e+03 0.0247 0.00308 18.7 417 World eIoni - 10 -123 -129 -1.96e+03 0.0212 0.00351 15.4 432 World eIoni - 11 -131 -134 -1.95e+03 0.0187 0.00244 12 444 World eIoni - 12 -133 -142 -1.95e+03 0.0174 0.00134 9.9 454 World eIoni - 13 -133 -144 -1.95e+03 0.0144 0.000895 2.34 457 World eIoni - 14 -136 -148 -1.95e+03 0.0125 0.00191 6.7 463 World eIoni - 15 -135 -153 -1.94e+03 0.011 0.00144 5.51 469 World eIoni - 16 -133 -156 -1.94e+03 0.00965 0.00139 4.71 474 World eIoni - 17 -130 -158 -1.94e+03 0.0063 0.00335 4.01 478 World eIoni - 18 -129 -159 -1.94e+03 0.00527 0.00103 2.61 480 World eIoni - 19 -129 -160 -1.94e+03 0.00267 0.0026 2.24 482 World eIoni - 20 -129 -161 -1.94e+03 0 0.00267 1.23 484 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -133 -144 -1.95e+03 0.0021 0 0 0 World initStep - 1 -134 -144 -1.95e+03 0 0.0021 0.862 0.862 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -101 -125 -2.07e+03 0.00105 0 0 0 World initStep - 1 -101 -125 -2.07e+03 0 0.00105 0.303 0.303 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -99.3 -122 -2.11e+03 0.00442 0 0 0 World initStep - 1 -99.5 -123 -2.11e+03 0.00323 0.00119 1.95 1.95 World eIoni - 2 -99.4 -122 -2.11e+03 0 0.00323 1.5 3.45 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.6 -129 -2.37e+03 0.00125 0 0 0 World initStep - 1 -36.5 -129 -2.37e+03 0 0.00125 0.389 0.389 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.7 -129 -2.48e+03 0.00155 0 0 0 World initStep - 1 -36.8 -129 -2.48e+03 0 0.00155 0.54 0.54 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.8 -129 -2.51e+03 0.00463 0 0 0 World initStep - 1 -36.6 -130 -2.51e+03 0.00247 0.00216 2.02 2.02 World eIoni - 2 -36.8 -130 -2.51e+03 0 0.00247 1.11 3.13 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.8 -129 -2.58e+03 0.0356 0 0 0 World initStep - 1 -31.3 -143 -2.55e+03 0.0329 0.00267 28.6 28.6 World eIoni - 2 -19.8 -150 -2.54e+03 0.0197 0.00456 22.9 51.6 World eIoni - 3 -19.7 -153 -2.53e+03 0.0163 0.00342 10.8 62.3 World eIoni - 4 -17.3 -158 -2.52e+03 0.0142 0.0021 8.05 70.4 World eIoni - 5 -17.2 -162 -2.52e+03 0.0108 0.00174 5.81 76.2 World eIoni - 6 -14.4 -162 -2.52e+03 0.00923 0.00161 4.61 80.8 World eIoni - 7 -13.3 -162 -2.52e+03 0.0081 0.00112 3.81 84.6 World eIoni - 8 -14.6 -162 -2.51e+03 0.00537 0.00274 3.31 87.9 World eIoni - 9 -14.9 -162 -2.51e+03 0.00417 0.000181 0.55 88.5 World eIoni - 10 -15.5 -162 -2.51e+03 0.00249 0.00168 1.86 90.3 World eIoni - 11 -15.2 -162 -2.51e+03 0 0.00249 1.13 91.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -14.9 -162 -2.51e+03 0.00101 0 0 0 World initStep - 1 -14.9 -162 -2.51e+03 0 0.00101 0.288 0.288 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.2 -162 -2.52e+03 0.00164 0 0 0 World initStep - 1 -17.2 -162 -2.52e+03 0 0.00164 0.589 0.589 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.8 -150 -2.54e+03 0.00865 0 0 0 World initStep - 1 -18.1 -153 -2.54e+03 0.00681 0.00185 3.55 3.55 World eIoni - 2 -17.2 -153 -2.54e+03 0.00308 0.00372 2.79 6.35 World eIoni - 3 -17.3 -152 -2.54e+03 0.0011 0.00198 1.44 7.78 World eIoni - 4 -17.4 -153 -2.54e+03 0 0.0011 0.324 8.11 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.4 3.93 -2.61e+03 50 0 0 0 World initStep - 1 -42.4 3.93 -2.58e+03 50 0.00688 34.2 34.2 World hIoni - 2 -42.4 3.93 -2.57e+03 50 0.00323 11.9 46.1 World hIoni - 3 -42.4 3.91 -2.53e+03 50 0.00491 38 84.1 World hIoni - 4 -42.4 3.9 -2.52e+03 50 0.00203 11.5 95.6 World hIoni - 5 -42.4 3.87 -2.48e+03 49.9 0.00704 39 135 World hIoni - 6 -42.4 3.85 -2.44e+03 49.9 0.00585 38.4 173 World hIoni - 7 -42.4 3.84 -2.42e+03 49.9 0.00249 15.3 188 World hIoni - 8 -42.4 3.83 -2.37e+03 49.9 0.00783 56.7 245 World hIoni - 9 -42.4 3.83 -2.36e+03 49.9 0.000432 3.42 248 World hIoni - 10 -42.4 3.8 -2.33e+03 49.9 0.00561 32.5 281 World hIoni - 11 -42.4 3.79 -2.24e+03 49.9 0.0125 88.8 370 World hIoni - 12 -42.5 3.79 -2.2e+03 49.9 0.00589 39.4 409 World hIoni - 13 -42.5 3.79 -2.19e+03 49.9 0.0027 17.7 427 World hIoni - 14 -42.6 3.82 -2.09e+03 49.9 0.0138 99.5 526 World hIoni - 15 -42.7 3.84 -2.07e+03 49.9 0.00253 19.9 546 World hIoni - 16 -42.7 3.88 -2.03e+03 49.9 0.00616 31.8 578 World hIoni - 17 -42.7 3.89 -2.03e+03 49.8 0.0021 4.78 583 World hIoni - 18 -42.7 3.93 -1.99e+03 49.8 0.00577 37.9 620 World hIoni - 19 -42.7 4.12 -1.89e+03 49.8 0.024 103 724 World hIoni - 20 -42.7 4.21 -1.85e+03 49.8 0.00648 39.1 763 World hIoni - 21 -42.8 4.34 -1.81e+03 49.8 0.00619 44 807 World hIoni - 22 -42.8 4.36 -1.8e+03 49.8 0.0015 5.16 812 World hIoni - 23 -42.9 4.45 -1.77e+03 49.8 0.0044 30.1 842 World hIoni - 24 -42.9 4.49 -1.76e+03 49.7 0.00138 14.3 856 World hIoni - 25 -43 4.89 -1.63e+03 49.7 0.0204 125 981 World hIoni - 26 -43 4.97 -1.61e+03 49.7 0.00297 18.9 1e+03 World hIoni - 27 -43.1 5.07 -1.59e+03 49.7 0.00444 23.3 1.02e+03 World hIoni - 28 -43.3 5.65 -1.46e+03 49.7 0.0187 126 1.15e+03 World hIoni - 29 -43.4 5.77 -1.43e+03 49.7 0.00338 28.9 1.18e+03 World hIoni - 30 -43.4 5.92 -1.4e+03 49.7 0.00536 35 1.21e+03 World hIoni - 31 -43.4 5.93 -1.4e+03 49.7 0.000476 3.67 1.22e+03 World hIoni - 32 -43.5 5.97 -1.38e+03 49.7 0.00144 11.1 1.23e+03 World hIoni - 33 -43.5 6.02 -1.37e+03 49.7 0.00232 12.7 1.24e+03 World hIoni - 34 -43.5 6.15 -1.34e+03 49.7 0.00672 31.2 1.27e+03 World hIoni - 35 -43.6 6.27 -1.31e+03 49.7 0.00435 28.6 1.3e+03 World hIoni - 36 -43.6 6.36 -1.29e+03 49.7 0.00297 23.1 1.32e+03 World hIoni - 37 -43.7 6.45 -1.27e+03 49.6 0.00521 21.5 1.34e+03 World hIoni - 38 -43.7 6.46 -1.27e+03 49.6 0 0.341 1.35e+03 World hIoni - 39 -43.8 6.62 -1.24e+03 49.6 0.00564 28.6 1.37e+03 World hIoni - 40 -43.8 6.7 -1.22e+03 49.6 0.00314 14.8 1.39e+03 World hIoni - 41 -43.8 6.76 -1.21e+03 49.6 0.000471 9.01 1.4e+03 World hIoni - 42 -44.1 7.31 -1.12e+03 49.6 0.0185 93.7 1.49e+03 World hIoni - 43 -44.1 7.31 -1.12e+03 49.6 3.37e-06 0.0186 1.49e+03 World hIoni - 44 -44.2 7.5 -1.09e+03 49.6 0.00586 34.9 1.53e+03 World hIoni - 45 -44.3 7.67 -1.05e+03 49.6 0.00839 32.4 1.56e+03 World hIoni - 46 -44.3 7.67 -1.05e+03 49.6 0 0.186 1.56e+03 World hIoni - 47 -44.3 7.69 -1.05e+03 49.5 0.000653 2.79 1.56e+03 World hIoni - 48 -44.4 7.82 -1.02e+03 49.5 0.00334 26.1 1.59e+03 World hIoni - 49 -44.5 7.95 -1e+03 49.5 0.00406 23.9 1.61e+03 World hIoni - 50 -44.8 8.37 -919 49.5 0.0131 81.5 1.69e+03 World hIoni - 51 -45.1 8.78 -851 49.5 0.0158 68.9 1.76e+03 World hIoni - 52 -45.3 9.15 -789 49.5 0.0116 62 1.82e+03 World hIoni - 53 -45.5 9.78 -680 49.5 0.0216 109 1.93e+03 World hIoni - 54 -45.7 10 -630 49.4 0.00815 50 1.98e+03 World hIoni - 55 -45.7 10.1 -616 49.4 0.00518 14 2e+03 World hIoni - 56 -45.8 10.1 -607 49.4 0.00133 8.68 2.01e+03 World hIoni - 57 -45.9 10.3 -577 49.4 0.00613 29.7 2.04e+03 World hIoni - 58 -45.9 10.3 -574 49.4 0.00079 3.79 2.04e+03 World hIoni - 59 -46.5 10.8 -477 49.4 0.0207 97 2.14e+03 World hIoni - 60 -46.8 11 -420 49.4 0.00875 56.3 2.19e+03 cloudPV CoupledTransportation - 61 -46.8 11 -419 48 1.42 1.1 2.19e+03 World CoupledTransportation - 62 -46.7 11.4 -381 48 0.00738 38.3 2.23e+03 World hIoni - 63 -46.5 11.8 -342 48 0.00508 39.3 2.27e+03 World hIoni - 64 -46.5 12 -320 47.9 0.0044 21.7 2.29e+03 World hIoni - 65 -46.5 12.1 -313 47.9 0.00101 7.32 2.3e+03 World hIoni - 66 -46.4 13 -221 47.9 0.0165 91.7 2.39e+03 World hIoni - 67 -46.3 13.4 -184 47.9 0.00646 36.6 2.43e+03 World hIoni - 68 -46.2 13.9 -134 47.9 0.00661 50.6 2.48e+03 World hIoni - 69 -46 14.7 -51.7 47.9 0.0171 81.9 2.56e+03 World hIoni - 70 -45.8 15.2 4.67 47.9 0.009 56.4 2.62e+03 World hIoni - 71 -45.7 15.6 41.1 47.8 0.0112 36.5 2.65e+03 World hIoni - 72 -45.6 16.1 94.6 47.8 0.00995 53.5 2.71e+03 World hIoni - 73 -45.4 16.6 141 47.8 0.0066 46.6 2.75e+03 World hIoni - 74 -45.4 16.6 145 47.8 0.000616 3.76 2.76e+03 World hIoni - 75 -45.3 16.7 154 47.8 0.000786 9.36 2.77e+03 World hIoni - 76 -45.3 16.9 175 47.8 0.00301 20.7 2.79e+03 cloudPV CoupledTransportation - 77 -45.3 16.9 177 45.7 2.11 1.55 2.79e+03 World CoupledTransportation - 78 -45.3 16.9 179 45.7 0.000409 2.65 2.79e+03 World hIoni - 79 -45.5 17.1 207 45.7 0.00578 27.5 2.82e+03 World hIoni - 80 -46 17.7 301 45.7 0.0183 94 2.91e+03 World hIoni - 81 -46 17.7 315 45.7 0.00247 13.7 2.93e+03 World hIoni - 82 -46.1 17.8 322 45.7 0.00129 7.76 2.93e+03 World hIoni - 83 -46.2 17.9 350 45.6 0.0047 28.2 2.96e+03 World hIoni - 84 -46.4 18.1 386 45.6 0.00475 35.5 3e+03 World hIoni - 85 -46.4 18.1 393 45.6 0.00105 6.88 3.01e+03 World hIoni - 86 -46.5 18.2 410 45.6 0.00423 17.1 3.02e+03 World hIoni - 87 -47 18.6 489 45.6 0.0108 78.8 3.1e+03 World hIoni - 88 -47.1 18.7 504 45.6 0.00283 15 3.12e+03 World hIoni - 89 -47.3 18.8 528 45.6 0.00498 24.1 3.14e+03 World hIoni - 90 -47.3 18.8 537 45.6 0.000894 9.53 3.15e+03 World hIoni - 91 -47.5 19 569 45.6 0.00728 31.3 3.18e+03 World hIoni - 92 -47.7 19.1 595 45.6 0.00801 26.8 3.21e+03 World hIoni - 93 -48.2 19.6 688 45.6 0.018 92.7 3.3e+03 World hIoni - 94 -49.2 20.3 818 45.5 0.0249 130 3.43e+03 World hIoni - 95 -49.5 20.5 862 45.5 0.01 44.4 3.47e+03 World hIoni - 96 -49.6 20.6 875 45.5 0.00136 12.2 3.49e+03 World hIoni - 97 -49.8 20.8 916 45.5 0.00931 41.2 3.53e+03 World hIoni - 98 -49.9 20.8 931 45.5 0.00211 15.6 3.54e+03 World hIoni - 99 -50 20.9 939 45.5 0.00185 7.71 3.55e+03 World hIoni - 100 -50.2 21 972 45.5 0.00695 33.3 3.59e+03 World hIoni - 101 -50.3 21.1 988 45.5 0.00256 16 3.6e+03 World hIoni - 102 -50.3 21.1 995 45.5 0.000333 6.11 3.61e+03 World hIoni - 103 -50.4 21.2 1e+03 45.5 0.00256 9.73 3.62e+03 World hIoni - 104 -50.7 21.5 1.05e+03 45.5 0.009 48.4 3.67e+03 World hIoni - 105 -50.7 21.5 1.05e+03 45.5 0.000156 1.56 3.67e+03 World hIoni - 106 -50.9 21.7 1.09e+03 45.5 0.00839 31.1 3.7e+03 World hIoni - 107 -51 21.8 1.1e+03 45.5 0.00252 17 3.71e+03 World hIoni - 108 -51.1 21.9 1.12e+03 45.5 0.00362 16.7 3.73e+03 World hIoni - 109 -51.3 22.1 1.16e+03 45.4 0.0073 40.6 3.77e+03 World hIoni - 110 -51.4 22.1 1.17e+03 45.4 0.00336 10.9 3.78e+03 World hIoni - 111 -51.5 22.2 1.18e+03 45.4 0.00112 6.21 3.79e+03 World hIoni - 112 -51.6 22.3 1.19e+03 45.4 0.00374 17.2 3.81e+03 World hIoni - 113 -52.7 23.2 1.35e+03 45.4 0.0254 158 3.96e+03 World hIoni - 114 -52.8 23.2 1.36e+03 45.4 0.00117 5.3 3.97e+03 World hIoni - 115 -53.1 23.4 1.4e+03 45.4 0.0107 39.8 4.01e+03 World hIoni - 116 -53.2 23.5 1.41e+03 45.4 0.00308 16.8 4.03e+03 World hIoni - 117 -53.6 23.8 1.48e+03 45.4 0.0115 62.3 4.09e+03 World hIoni - 118 -53.9 24 1.51e+03 45.4 0.00576 29.6 4.12e+03 World hIoni - 119 -54.2 24.3 1.56e+03 45.3 0.00895 57 4.18e+03 World hIoni - 120 -54.3 24.4 1.57e+03 45.3 0.00179 10.1 4.19e+03 World hIoni - 121 -54.3 24.4 1.57e+03 45.3 6.02e-05 0.246 4.19e+03 World hIoni - 122 -54.5 24.5 1.6e+03 45.3 0.00304 27.3 4.21e+03 World hIoni - 123 -55.4 25 1.7e+03 45.3 0.0168 99.3 4.31e+03 World hIoni - 124 -57.4 24.9 1.82e+03 45.3 0.0226 116 4.43e+03 World hIoni - 125 -57.7 24.9 1.84e+03 45.3 0.00337 20.2 4.45e+03 World hIoni - 126 -59.9 25.1 1.95e+03 45.3 0.0228 118 4.57e+03 World hIoni - 127 -60.8 25.2 2e+03 45.2 0.0112 49.4 4.62e+03 World hIoni - 128 -61.1 25.2 2.02e+03 45.2 0.00256 15.9 4.63e+03 World hIoni - 129 -61.5 25.2 2.04e+03 45.2 0.00402 24.9 4.66e+03 World hIoni - 130 -64.6 25.5 2.23e+03 45.2 0.0317 181 4.84e+03 World hIoni - 131 -65 25.6 2.24e+03 45.2 0.00318 19.3 4.86e+03 World hIoni - 132 -65.1 25.6 2.25e+03 45.2 0.000989 4.33 4.86e+03 World hIoni - 133 -65.4 25.7 2.26e+03 45.2 0.00368 15.9 4.88e+03 World hIoni - 134 -65.6 25.7 2.28e+03 45.1 0.00263 13.1 4.89e+03 World hIoni - 135 -66 25.7 2.3e+03 45.1 0.00252 17.4 4.91e+03 World hIoni - 136 -66.1 25.8 2.3e+03 45.1 0.000439 5.02 4.91e+03 World hIoni - 137 -66.8 25.9 2.34e+03 45.1 0.0108 40.9 4.95e+03 World hIoni - 138 -67.3 25.9 2.37e+03 45.1 0.0041 24.1 4.98e+03 World hIoni - 139 -67.6 26 2.39e+03 45.1 0.00305 19.8 5e+03 World hIoni - 140 -67.8 26 2.39e+03 45.1 0.00427 8.44 5.01e+03 World hIoni - 141 -70.1 26.4 2.52e+03 45 0.0297 127 5.13e+03 World hIoni - 142 -71.5 26.6 2.59e+03 45 0.0165 69.1 5.2e+03 World hIoni - 143 -71.7 26.6 2.6e+03 45 0.00103 10.3 5.21e+03 detectorPV CoupledTransportation - 144 -71.8 26.6 2.6e+03 39 5.97 1.97 5.21e+03 detectorPV hIoni - 145 -71.8 26.6 2.6e+03 33.9 5.16 1.56 5.22e+03 detectorPV hIoni - 146 -71.8 26.6 2.6e+03 29.3 4.6 1.25 5.22e+03 detectorPV hIoni - 147 -71.8 26.6 2.61e+03 25.2 4.13 1 5.22e+03 detectorPV hIoni - 148 -71.9 26.7 2.61e+03 21.3 3.83 0.801 5.22e+03 detectorPV hIoni - 149 -71.9 26.7 2.61e+03 18 3.35 0.638 5.22e+03 detectorPV hIoni - 150 -71.9 26.7 2.61e+03 14.9 3.05 0.511 5.22e+03 detectorPV hIoni - 151 -71.9 26.8 2.61e+03 12 2.94 0.409 5.22e+03 detectorPV hIoni - 152 -71.9 26.8 2.61e+03 9.27 2.71 0.324 5.22e+03 detectorPV hIoni - 153 -71.9 26.8 2.61e+03 6.41 2.87 0.257 5.22e+03 detectorPV hIoni - 154 -71.9 26.8 2.61e+03 3.41 2.99 0.191 5.22e+03 detectorPV hIoni - 155 -72 26.8 2.61e+03 0 3.41 0.101 5.22e+03 detectorPV hIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -71.5 26.6 2.59e+03 0.00104 0 0 0 World initStep - 1 -71.5 26.7 2.59e+03 0 0.00104 0.298 0.298 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -70.1 26.4 2.52e+03 0.002 0 0 0 World initStep - 1 -70.1 26.7 2.52e+03 0 0.002 0.8 0.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -67.8 26 2.39e+03 0.0023 0 0 0 World initStep - 1 -67.5 26.3 2.39e+03 0 0.0023 1 1 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -67.6 26 2.39e+03 0.00138 0 0 0 World initStep - 1 -67.6 26.1 2.39e+03 0 0.00138 0.45 0.45 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -67.3 25.9 2.37e+03 0.00141 0 0 0 World initStep - 1 -67.1 25.9 2.37e+03 0 0.00141 0.466 0.466 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -66.8 25.9 2.34e+03 0.00145 0 0 0 World initStep - 1 -66.6 25.9 2.34e+03 0 0.00145 0.489 0.489 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -66.1 25.8 2.3e+03 0.00314 0 0 0 World initStep - 1 -65.6 25.2 2.3e+03 0 0.00314 1.46 1.46 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -65.6 25.7 2.28e+03 0.0784 0 0 0 World initStep - 1 -99.5 29.5 2.34e+03 0.0712 0.00494 75.8 75.8 World eIoni - 2 -145 32.5 2.35e+03 0.0622 0.00768 51.1 127 World eIoni - 3 -203 55.2 2.37e+03 0.0549 0.00734 76 203 World eIoni - 4 -256 58.9 2.39e+03 0.0463 0.00858 60.9 264 World eIoni - 5 -275 52.9 2.39e+03 0.0447 0.00158 21.6 286 OutOfWorld CoupledTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 113 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -145 32.5 2.35e+03 0.00133 0 0 0 World initStep - 1 -145 32.6 2.35e+03 0 0.00133 0.426 0.426 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 113 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -99.5 29.5 2.34e+03 0.00219 0 0 0 World initStep - 1 -99.4 29.6 2.34e+03 0 0.00219 0.926 0.926 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -65.4 25.7 2.26e+03 0.00276 0 0 0 World initStep - 1 -65.7 26.1 2.26e+03 0.00168 0.00109 1.28 1.28 World eIoni - 2 -65.6 26.1 2.27e+03 0 0.00168 0.607 1.89 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -65.1 25.6 2.25e+03 0.00108 0 0 0 World initStep - 1 -65.1 25.5 2.25e+03 0 0.00108 0.316 0.316 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -65 25.6 2.24e+03 0.00361 0 0 0 World initStep - 1 -64.7 24.8 2.24e+03 0.00181 0.0018 1.65 1.65 World eIoni - 2 -64.4 24.7 2.24e+03 0 0.00181 0.684 2.34 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -64.6 25.5 2.23e+03 0.00104 0 0 0 World initStep - 1 -64.8 25.5 2.23e+03 0 0.00104 0.298 0.298 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -61.5 25.2 2.04e+03 0.00436 0 0 0 World initStep - 1 -61.2 26.3 2.04e+03 0.00194 0.00242 1.93 1.93 World eIoni - 2 -60.9 26.5 2.04e+03 0 0.00194 0.761 2.69 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -61.1 25.2 2.02e+03 0.00302 0 0 0 World initStep - 1 -61.1 24.6 2.02e+03 0 0.00302 1.41 1.41 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -60.8 25.2 2e+03 0.00143 0 0 0 World initStep - 1 -60.8 25.4 2e+03 0 0.00143 0.476 0.476 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -59.9 25.1 1.95e+03 0.00807 0 0 0 World initStep - 1 -57.5 24.9 1.95e+03 0.00668 0.0014 3.3 3.3 World eIoni - 2 -57.4 26.3 1.95e+03 0.00512 0.00156 2.74 6.04 World eIoni - 3 -57.3 26.6 1.95e+03 0.00352 0.00159 2.19 8.23 World eIoni - 4 -58 26.8 1.95e+03 0.00171 0.00182 1.62 9.85 World eIoni - 5 -58.2 26.8 1.95e+03 0 0.00171 0.624 10.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -57.7 24.9 1.84e+03 0.00117 0 0 0 World initStep - 1 -57.6 25 1.84e+03 0 0.00117 0.352 0.352 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -57.4 24.9 1.82e+03 0.00355 0 0 0 World initStep - 1 -56.9 25.6 1.82e+03 0.00145 0.0021 1.63 1.63 World eIoni - 2 -56.8 25.7 1.82e+03 0 0.00145 0.486 2.12 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -55.4 25 1.7e+03 0.00113 0 0 0 World initStep - 1 -55.3 25 1.7e+03 0 0.00113 0.337 0.337 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -54.5 24.5 1.6e+03 0.00114 0 0 0 World initStep - 1 -54.4 24.6 1.6e+03 0 0.00114 0.339 0.339 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -54.3 24.4 1.57e+03 0.0035 0 0 0 World initStep - 1 -53.9 25.1 1.57e+03 0.0016 0.0019 1.61 1.61 World eIoni - 2 -53.7 25.1 1.57e+03 0 0.0016 0.567 2.18 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -54.3 24.4 1.57e+03 0.00178 0 0 0 World initStep - 1 -54.4 24.1 1.57e+03 0 0.00178 0.669 0.669 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -54.2 24.3 1.56e+03 0.00126 0 0 0 World initStep - 1 -54.4 24.3 1.56e+03 0 0.00126 0.395 0.395 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -53.9 24 1.51e+03 0.00684 0 0 0 World initStep - 1 -54.4 25.9 1.51e+03 0.00499 0.00184 2.8 2.8 World eIoni - 2 -54.4 26.9 1.51e+03 0.00313 0.00187 2.14 4.95 World eIoni - 3 -54.9 27.3 1.51e+03 0.0021 0.00103 1.46 6.41 World eIoni - 4 -54.7 27.4 1.51e+03 0 0.0021 0.863 7.27 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -53.6 23.8 1.48e+03 0.00107 0 0 0 World initStep - 1 -53.7 23.9 1.48e+03 0 0.00107 0.309 0.309 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -52.8 23.2 1.36e+03 0.00333 0 0 0 World initStep - 1 -53 23.9 1.36e+03 0.00219 0.00114 1.54 1.54 World eIoni - 2 -52.8 23.9 1.36e+03 0 0.00219 0.924 2.47 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -52.7 23.2 1.35e+03 0.00112 0 0 0 World initStep - 1 -52.8 23.2 1.35e+03 0 0.00112 0.332 0.332 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51.6 22.3 1.19e+03 0.00312 0 0 0 World initStep - 1 -51.1 21.8 1.19e+03 0 0.00312 1.45 1.45 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51.5 22.2 1.18e+03 0.00259 0 0 0 World initStep - 1 -51.6 21.7 1.18e+03 0 0.00259 1.19 1.19 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51.4 22.1 1.17e+03 0.00376 0 0 0 World initStep - 1 -51.4 23 1.17e+03 0.00213 0.00163 1.71 1.71 World eIoni - 2 -51.2 23 1.17e+03 0 0.00213 0.883 2.59 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51.3 22.1 1.16e+03 0.00115 0 0 0 World initStep - 1 -51.5 22 1.16e+03 0 0.00115 0.347 0.347 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51.1 21.9 1.12e+03 0.00217 0 0 0 World initStep - 1 -50.9 22.2 1.12e+03 0 0.00217 0.909 0.909 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51 21.8 1.1e+03 0.00114 0 0 0 World initStep - 1 -51 21.6 1.1e+03 0 0.00114 0.342 0.342 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -50.9 21.7 1.09e+03 0.0014 0 0 0 World initStep - 1 -50.8 21.5 1.09e+03 0 0.0014 0.461 0.461 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -50.7 21.5 1.05e+03 0.002 0 0 0 World initStep - 1 -50.8 21.2 1.05e+03 0 0.002 0.797 0.797 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -50.7 21.5 1.05e+03 0.00138 0 0 0 World initStep - 1 -50.8 21.4 1.05e+03 0 0.00138 0.454 0.454 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -50.4 21.2 1e+03 0.00198 0 0 0 World initStep - 1 -50.5 20.9 1e+03 0 0.00198 0.785 0.785 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -50.3 21.1 995 0.00148 0 0 0 World initStep - 1 -50.1 21.2 995 0 0.00148 0.5 0.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -50.3 21.1 988 0.00405 0 0 0 World initStep - 1 -51.3 21.2 989 0.00223 0.00182 1.82 1.82 World eIoni - 2 -51.6 21.1 988 0 0.00223 0.953 2.77 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -50.2 21 972 0.00171 0 0 0 World initStep - 1 -49.9 21.1 972 0 0.00171 0.625 0.625 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -50 20.9 939 0.00224 0 0 0 World initStep - 1 -50.3 20.7 939 0 0.00224 0.962 0.962 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -49.9 20.8 931 0.00111 0 0 0 World initStep - 1 -49.9 20.7 931 0 0.00111 0.329 0.329 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -49.8 20.8 916 0.00566 0 0 0 World initStep - 1 -50.4 22.2 916 0.00426 0.0014 2.38 2.38 World eIoni - 2 -51.5 22.2 916 0.00289 0.00137 1.89 4.27 World eIoni - 3 -51.6 22.7 916 0.00119 0.0017 1.35 5.62 World eIoni - 4 -51.6 22.7 916 0 0.00119 0.363 5.98 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -49.6 20.6 875 0.00201 0 0 0 World initStep - 1 -49.3 20.8 875 0 0.00201 0.808 0.808 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -49.5 20.5 862 0.00107 0 0 0 World initStep - 1 -49.6 20.6 862 0 0.00107 0.313 0.313 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -49.2 20.3 818 0.0015 0 0 0 World initStep - 1 -49 20.2 818 0 0.0015 0.51 0.51 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -48.2 19.6 688 0.00123 0 0 0 World initStep - 1 -48.2 19.7 688 0 0.00123 0.38 0.38 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -47.7 19.1 595 0.00166 0 0 0 World initStep - 1 -47.9 19 595 0 0.00166 0.598 0.598 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -47.5 19 569 0.00142 0 0 0 World initStep - 1 -47.6 18.8 569 0 0.00142 0.473 0.473 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -47.3 18.8 537 0.00157 0 0 0 World initStep - 1 -47.1 18.7 537 0 0.00157 0.551 0.551 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -47 18.6 489 0.00425 0 0 0 World initStep - 1 -46.3 19.5 489 0.00242 0.00183 1.89 1.89 World eIoni - 2 -46.5 19.7 489 0 0.00242 1.08 2.97 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46.5 18.2 410 0.00181 0 0 0 World initStep - 1 -46.3 18 410 0 0.00181 0.684 0.684 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46.4 18.1 386 0.00103 0 0 0 World initStep - 1 -46.4 18.2 386 0 0.00103 0.294 0.294 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46.2 17.9 350 0.0311 0 0 0 World initStep - 1 -43.4 10.5 358 0.0298 0.00126 11 11 World eIoni - 2 -43.3 10.3 358 0.0298 0 0.255 11.2 World eIoni - 3 -38.1 -1.44 373 0.0273 0.00252 21.2 32.4 World eIoni - 4 -30.7 -5.64 381 0.0242 0.00162 12.5 44.9 World eIoni - 5 -26.6 -9.55 393 0.0217 0.00254 14.9 59.8 World eIoni - 6 -27.6 -10.9 404 0.0193 0.00235 12.5 72.3 World eIoni - 7 -30.9 -15.8 409 0.0159 0.00221 8.42 80.7 World eIoni - 8 -32.2 -19.2 415 0.0128 0.00317 7.77 88.5 World eIoni - 9 -34 -21.2 420 0.0106 0.00217 5.69 94.2 World eIoni - 10 -34.6 -24 423 0.00906 0.00153 4.48 98.6 World eIoni - 11 -36.2 -27 423 0.00766 0.0014 3.74 102 World eIoni - 12 -36.6 -29.3 423 0.00607 0.00159 3.13 106 World eIoni - 13 -36.5 -30.7 424 0.00514 0.000938 2.52 108 World eIoni - 14 -35.5 -29.7 424 0.00315 0.00198 2.19 110 World eIoni - 15 -34.8 -29.7 424 0 0.00315 1.47 112 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 67 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.9 -15.8 409 0.00119 0 0 0 World initStep - 1 -30.8 -15.8 409 0 0.00119 0.362 0.362 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 67 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.7 -5.64 381 0.00147 0 0 0 World initStep - 1 -30.8 -5.78 381 0 0.00147 0.495 0.495 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46 17.7 315 0.00133 0 0 0 World initStep - 1 -46 17.9 315 0 0.00133 0.429 0.429 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45.5 17.1 207 0.00118 0 0 0 World initStep - 1 -45.5 17 207 0 0.00118 0.359 0.359 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45.3 16.9 179 0.00174 0 0 0 World initStep - 1 -45.5 16.7 179 0 0.00174 0.644 0.644 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45.3 16.7 154 0.00238 0 0 0 World initStep - 1 -45.1 17 154 0 0.00238 1.05 1.05 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45.4 16.6 145 0.00332 0 0 0 World initStep - 1 -44.8 16.1 145 0 0.00332 1.54 1.54 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45.6 16.1 94.6 0.00145 0 0 0 World initStep - 1 -45.5 16.3 94.7 0 0.00145 0.485 0.485 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45.8 15.2 4.67 0.00608 0 0 0 World initStep - 1 -44 14.1 4.73 0.00357 0.00251 2.47 2.47 World msc - 2 -43.1 14.1 4.71 0.00123 0.00234 1.64 4.11 World eIoni - 3 -43 14 4.61 0 0.00123 0.383 4.49 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46 14.7 -51.7 0.0011 0 0 0 World initStep - 1 -46.1 14.6 -51.7 0 0.0011 0.324 0.324 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46.2 13.9 -134 0.012 0 0 0 World initStep - 1 -50.1 11.5 -132 0.00945 0.0025 5.21 5.21 World eIoni - 2 -50.2 10.8 -132 0.00615 0.000538 0.749 5.96 World eIoni - 3 -50.8 10.1 -131 0.00417 0.00197 2.55 8.51 World eIoni - 4 -50.3 9.82 -130 0.0023 0.000598 0.795 9.31 World eIoni - 5 -50.1 9.73 -130 0 0.0023 0.998 10.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -50.3 9.82 -130 0.00128 0 0 0 World initStep - 1 -50.2 9.69 -130 0 0.00128 0.404 0.404 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -50.2 10.8 -132 0.00276 0 0 0 World initStep - 1 -50.3 10.3 -132 0 0.00276 1.28 1.28 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46.3 13.4 -184 0.00402 0 0 0 World initStep - 1 -46.2 12.4 -184 0.00158 0.00244 1.81 1.81 World eIoni - 2 -46.4 12.3 -184 0 0.00158 0.557 2.36 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46.4 13 -221 0.00669 0 0 0 World initStep - 1 -44.6 12.2 -220 0.00592 0.000769 2.75 2.75 World eIoni - 2 -43.9 11.2 -222 0.00464 0.00128 2.47 5.22 World eIoni - 3 -43.3 11.7 -223 0.00321 0.00143 2.02 7.24 World eIoni - 4 -42.7 11.7 -222 0.00161 0.0016 1.49 8.73 World eIoni - 5 -42.7 12 -222 0 0.00161 0.571 9.31 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46.5 12.1 -313 0.00125 0 0 0 World initStep - 1 -46.3 12.1 -313 0 0.00125 0.391 0.391 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46.5 12 -320 0.00121 0 0 0 World initStep - 1 -46.4 12.1 -320 0 0.00121 0.373 0.373 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46.5 11.8 -342 0.00125 0 0 0 World initStep - 1 -46.7 11.7 -342 0 0.00125 0.391 0.391 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46.7 11.4 -381 0.00159 0 0 0 World initStep - 1 -46.4 11.4 -381 0 0.00159 0.561 0.561 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46.5 10.8 -477 0.00406 0 0 0 World initStep - 1 -46 9.85 -476 0.0018 0.00226 1.82 1.82 World eIoni - 2 -46 9.66 -476 0 0.0018 0.681 2.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45.9 10.3 -574 0.00304 0 0 0 World initStep - 1 -45.3 10 -574 0.0012 0.00184 1.42 1.42 World eIoni - 2 -45.4 9.9 -574 0 0.0012 0.369 1.79 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45.9 10.3 -577 0.00197 0 0 0 World initStep - 1 -45.6 10.3 -577 0 0.00197 0.784 0.784 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45.8 10.1 -607 0.00208 0 0 0 World initStep - 1 -45.7 9.8 -607 0 0.00208 0.85 0.85 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45.7 10.1 -616 0.00137 0 0 0 World initStep - 1 -45.8 9.96 -616 0 0.00137 0.45 0.45 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45.7 10 -630 0.00296 0 0 0 World initStep - 1 -45.2 9.68 -630 0 0.00296 1.38 1.38 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45.5 9.78 -680 0.0246 0 0 0 World initStep - 1 -37.3 5.73 -669 0.0205 0.00407 15.3 15.3 World eIoni - 2 -28.7 1.38 -664 0.0167 0.00379 11.4 26.7 World eIoni - 3 -21.4 1.35 -662 0.0148 0.00186 8.33 35 World eIoni - 4 -15.1 0.504 -663 0.0131 0.00173 7.01 42.1 World eIoni - 5 -10.2 0.142 -666 0.012 0.00113 5.9 48 World eIoni - 6 -8.93 1.48 -670 0.0106 0.00143 5.23 53.2 World eIoni - 7 -9.11 1.01 -674 0.00696 0.0036 4.46 57.7 World eIoni - 8 -9.27 0.498 -676 0.00374 0.00322 2.85 60.5 World eIoni - 9 -10 0.874 -677 0.00124 0.0025 1.71 62.2 World eIoni - 10 -10.1 1.02 -677 0 0.00124 0.387 62.6 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45.1 8.78 -851 0.00296 0 0 0 World initStep - 1 -45.2 8.17 -850 0.00114 0.00183 1.38 1.38 World eIoni - 2 -45.1 8.23 -850 0 0.00114 0.339 1.72 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -44.8 8.37 -919 0.000998 0 0 0 World initStep - 1 -44.7 8.33 -919 0 0.000998 0.282 0.282 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -44.5 7.95 -1e+03 0.0013 0 0 0 World initStep - 1 -44.3 8.04 -1e+03 0 0.0013 0.415 0.415 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -44.3 7.69 -1.05e+03 0.0265 0 0 0 World initStep - 1 -32.4 3.17 -1.04e+03 0.0227 0.00373 17.3 17.3 World eIoni - 2 -36.1 5.41 -1.03e+03 0.0189 0.00379 13.5 30.8 World eIoni - 3 -37.4 9.09 -1.02e+03 0.0158 0.00313 10.1 40.8 World eIoni - 4 -40.6 15.3 -1.02e+03 0.0123 0.00349 7.68 48.5 World eIoni - 5 -38.6 19.9 -1.02e+03 0.0104 0.00188 5.42 53.9 World eIoni - 6 -36.3 22.6 -1.02e+03 0.00902 0.00142 4.4 58.3 World eIoni - 7 -33.5 23 -1.02e+03 0.00754 0.00148 3.71 62 World eIoni - 8 -31.5 22 -1.02e+03 0.00591 0.00163 3.08 65.1 World eIoni - 9 -30.2 21.7 -1.02e+03 0.00426 0.00165 2.46 67.6 World eIoni - 10 -30.1 20.7 -1.02e+03 0.00221 0.00205 1.89 69.5 World eIoni - 11 -29.9 20.8 -1.02e+03 0 0.00221 0.937 70.4 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -44.3 7.67 -1.05e+03 0.00116 0 0 0 World initStep - 1 -44.2 7.77 -1.05e+03 0 0.00116 0.349 0.349 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -44.3 7.67 -1.05e+03 0.00432 0 0 0 World initStep - 1 -44 8.74 -1.05e+03 0.00341 0.000914 1.91 1.91 World eIoni - 2 -43.7 8.36 -1.05e+03 0.0014 0.00201 1.48 3.39 World eIoni - 3 -43.5 8.33 -1.05e+03 0 0.0014 0.462 3.86 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -44.2 7.5 -1.09e+03 0.00151 0 0 0 World initStep - 1 -44.1 7.3 -1.09e+03 0 0.00151 0.519 0.519 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -44.1 7.31 -1.12e+03 0.00387 0 0 0 World initStep - 1 -43.3 7.24 -1.12e+03 0.00174 0.00107 1.08 1.08 World eIoni - 2 -43.2 7.12 -1.12e+03 0 0.00174 0.643 1.73 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.3 7.24 -1.12e+03 0.00106 0 0 0 World initStep - 1 -43.3 7.26 -1.12e+03 0 0.00106 0.306 0.306 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -44.1 7.31 -1.12e+03 0.00116 0 0 0 World initStep - 1 -44 7.43 -1.12e+03 0 0.00116 0.348 0.348 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.8 6.76 -1.21e+03 0.00109 0 0 0 World initStep - 1 -43.9 6.74 -1.21e+03 0 0.00109 0.32 0.32 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.8 6.7 -1.22e+03 0.00146 0 0 0 World initStep - 1 -43.6 6.68 -1.22e+03 0 0.00146 0.493 0.493 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.7 6.45 -1.27e+03 0.0128 0 0 0 World initStep - 1 -42.7 2.76 -1.27e+03 0.0114 0.00138 4.57 4.57 World eIoni - 2 -42.5 2.09 -1.27e+03 0.0112 0.00023 0.766 5.34 World eIoni - 3 -42.5 0.547 -1.26e+03 0.0109 0.000269 2.1 7.43 World eIoni - 4 -40.9 -1.8 -1.26e+03 0.00783 0.00306 4.63 12.1 World eIoni - 5 -38.6 -1.64 -1.26e+03 0.00631 0.00152 3.2 15.3 World eIoni - 6 -37 -0.829 -1.26e+03 0.00499 0.00132 2.61 17.9 World eIoni - 7 -36 -0.0141 -1.26e+03 0.00351 0.00148 2.14 20 World eIoni - 8 -35.9 -0.158 -1.26e+03 0.00178 0.00173 1.62 21.6 World eIoni - 9 -36.2 -0.182 -1.26e+03 0 0.00178 0.668 22.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.6 6.27 -1.31e+03 0.00132 0 0 0 World initStep - 1 -43.5 6.39 -1.31e+03 0 0.00132 0.421 0.421 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.5 6.15 -1.34e+03 0.00128 0 0 0 World initStep - 1 -43.7 6.06 -1.34e+03 0 0.00128 0.405 0.405 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.5 6.02 -1.37e+03 0.00382 0 0 0 World initStep - 1 -43.4 5.83 -1.37e+03 0.00228 0.00155 0.244 0.244 World eIoni - 2 -43.4 5.44 -1.37e+03 0 0.00228 0.985 1.23 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.4 5.93 -1.4e+03 0.00203 0 0 0 World initStep - 1 -43.3 5.64 -1.4e+03 0 0.00203 0.82 0.82 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.4 5.92 -1.4e+03 0.00194 0 0 0 World initStep - 1 -43.5 5.62 -1.4e+03 0 0.00194 0.761 0.761 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.4 5.77 -1.43e+03 0.00252 0 0 0 World initStep - 1 -43 6.02 -1.43e+03 0 0.00252 1.14 1.14 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.1 5.07 -1.59e+03 0.00319 0 0 0 World initStep - 1 -43.7 4.71 -1.59e+03 0.00161 0.00158 1.49 1.49 World eIoni - 2 -43.8 4.83 -1.59e+03 0 0.00161 0.572 2.06 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43 4.97 -1.61e+03 0.00307 0 0 0 World initStep - 1 -42.6 4.49 -1.61e+03 0.00105 0.00202 1.43 1.43 World eIoni - 2 -42.6 4.45 -1.61e+03 0 0.00105 0.305 1.74 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43 4.89 -1.63e+03 0.00226 0 0 0 World initStep - 1 -42.9 4.51 -1.63e+03 0 0.00226 0.973 0.973 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.9 4.49 -1.76e+03 0.00302 0 0 0 World initStep - 1 -43.4 4.14 -1.76e+03 0.0013 0.00172 1.41 1.41 World eIoni - 2 -43.4 4.3 -1.76e+03 0 0.0013 0.414 1.82 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.9 4.45 -1.77e+03 0.00149 0 0 0 World initStep - 1 -42.7 4.35 -1.77e+03 0 0.00149 0.509 0.509 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.8 4.36 -1.8e+03 0.00138 0 0 0 World initStep - 1 -43 4.39 -1.8e+03 0 0.00138 0.451 0.451 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.8 4.34 -1.81e+03 0.00228 0 0 0 World initStep - 1 -43.2 4.19 -1.81e+03 0 0.00228 0.988 0.988 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.7 4.21 -1.85e+03 0.00429 0 0 0 World initStep - 1 -41.8 3.6 -1.85e+03 0.00174 0.00255 1.9 1.9 World eIoni - 2 -41.9 3.83 -1.85e+03 0 0.00174 0.645 2.55 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.7 4.12 -1.89e+03 0.0359 0 0 0 World initStep - 1 -50.1 3.62 -1.88e+03 0.0328 0.0019 11.9 11.9 World eIoni - 2 -53.2 2.57 -1.88e+03 0.0305 0.000742 4.37 16.3 World eIoni - 3 -71.8 -3.34 -1.87e+03 0.026 0.00457 22 38.2 World eIoni - 4 -69 -10.2 -1.86e+03 0.0242 0.000723 10.3 48.5 World eIoni - 5 -58.6 -13.6 -1.86e+03 0.0225 0.00175 15 63.5 World eIoni - 6 -47.9 -17.7 -1.85e+03 0.0181 0.00435 13.2 76.7 World eIoni - 7 -43.2 -16.5 -1.85e+03 0.0114 0.00191 5.6 82.3 World eIoni - 8 -39.6 -13.8 -1.85e+03 0.0104 0.000997 4.91 87.2 World eIoni - 9 -38.7 -12.9 -1.85e+03 0.00806 0.000712 1.76 89 World eIoni - 10 -36.5 -12.4 -1.86e+03 0.00696 0.0011 3.29 92.3 World eIoni - 11 -36 -12.3 -1.86e+03 0.00512 0.000646 0.941 93.2 World eIoni - 12 -36.7 -13.4 -1.86e+03 0.00235 0.00277 2.19 95.4 World eIoni - 13 -36.8 -13.7 -1.86e+03 0 0.00235 1.04 96.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36 -12.3 -1.86e+03 0.00119 0 0 0 World initStep - 1 -36.1 -12.3 -1.86e+03 0 0.00119 0.363 0.363 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38.7 -12.9 -1.85e+03 0.00164 0 0 0 World initStep - 1 -38.6 -13.1 -1.85e+03 0 0.00164 0.588 0.588 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.2 -16.5 -1.85e+03 0.00482 0 0 0 World initStep - 1 -43 -16.1 -1.85e+03 0.00207 0.00275 2.08 2.08 World eIoni - 2 -43.1 -16.2 -1.85e+03 0 0.00207 0.844 2.93 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -69 -10.2 -1.86e+03 0.000996 0 0 0 World initStep - 1 -68.9 -10.1 -1.86e+03 0 0.000996 0.281 0.281 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -53.2 2.57 -1.88e+03 0.00153 0 0 0 World initStep - 1 -53.3 2.74 -1.88e+03 0 0.00153 0.526 0.526 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -50.1 3.62 -1.88e+03 0.00122 0 0 0 World initStep - 1 -50.1 3.75 -1.88e+03 0 0.00122 0.378 0.378 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.7 3.89 -2.03e+03 0.00684 0 0 0 World initStep - 1 -44 5.37 -2.03e+03 0.00402 0.00282 2.81 2.81 World eIoni - 2 -43.2 5.37 -2.03e+03 0 0.00402 1.81 4.62 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.7 3.88 -2.03e+03 0.0011 0 0 0 World initStep - 1 -42.8 3.94 -2.03e+03 0 0.0011 0.325 0.325 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.7 3.84 -2.07e+03 0.00116 0 0 0 World initStep - 1 -42.5 3.9 -2.07e+03 0 0.00116 0.348 0.348 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.6 3.82 -2.09e+03 0.000993 0 0 0 World initStep - 1 -42.6 3.75 -2.09e+03 0 0.000993 0.279 0.279 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.5 3.79 -2.19e+03 0.00252 0 0 0 World initStep - 1 -42.3 3.37 -2.19e+03 0 0.00252 1.15 1.15 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.5 3.79 -2.2e+03 0.00161 0 0 0 World initStep - 1 -42.3 3.69 -2.2e+03 0 0.00161 0.57 0.57 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.4 3.79 -2.24e+03 0.0111 0 0 0 World initStep - 1 -39.2 5.5 -2.24e+03 0.00917 0.00195 4.76 4.76 World eIoni - 2 -37.3 7.2 -2.24e+03 0.00792 0.00126 3.79 8.55 World eIoni - 3 -35.1 7.97 -2.24e+03 0.00703 0.000886 3.24 11.8 World eIoni - 4 -35.3 7.17 -2.24e+03 0.00464 0.0024 2.88 14.7 World eIoni - 5 -34.1 7.47 -2.24e+03 0.00353 0.00111 2.02 16.7 World eIoni - 6 -34.7 8.06 -2.24e+03 0.00121 0.00231 1.62 18.3 World eIoni - 7 -34.7 8.13 -2.24e+03 0 0.00121 0.374 18.7 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.4 3.83 -2.36e+03 0.00352 0 0 0 World initStep - 1 -41.6 4.05 -2.36e+03 0.00225 0.00127 1.62 1.62 World eIoni - 2 -41.5 4.35 -2.36e+03 0 0.00225 0.967 2.59 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.4 3.83 -2.37e+03 0.00299 0 0 0 World initStep - 1 -42.1 4.41 -2.37e+03 0 0.00299 1.39 1.39 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.4 3.84 -2.42e+03 0.00203 0 0 0 World initStep - 1 -42.5 4.16 -2.42e+03 0 0.00203 0.819 0.819 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.4 3.85 -2.44e+03 0.000996 0 0 0 World initStep - 1 -42.4 3.74 -2.44e+03 0 0.000996 0.281 0.281 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.4 3.87 -2.48e+03 0.0013 0 0 0 World initStep - 1 -42.5 4.01 -2.48e+03 0 0.0013 0.412 0.412 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.4 3.9 -2.52e+03 0.00129 0 0 0 World initStep - 1 -42.6 3.88 -2.52e+03 0 0.00129 0.406 0.406 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.4 3.91 -2.53e+03 0.00132 0 0 0 World initStep - 1 -42.5 4.07 -2.53e+03 0 0.00132 0.423 0.423 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.4 3.93 -2.57e+03 0.0047 0 0 0 World initStep - 1 -43.4 3.19 -2.57e+03 0.00352 0.00118 2.04 2.04 World eIoni - 2 -43.7 2.4 -2.57e+03 0 0.00352 1.62 3.67 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.4 3.93 -2.58e+03 0.0199 0 0 0 World initStep - 1 -37 10.2 -2.57e+03 0.0174 0.00253 10.9 10.9 World eIoni - 2 -33.4 9.85 -2.57e+03 0.0155 0.0019 8.86 19.8 World eIoni - 3 -28.4 7.07 -2.57e+03 0.0141 0.00137 7.46 27.3 World eIoni - 4 -23.6 4.86 -2.57e+03 0.012 0.00215 6.54 33.8 World eIoni - 5 -21.2 4.12 -2.57e+03 0.00988 0.000811 3.18 37 World eIoni - 6 -20.3 5.07 -2.57e+03 0.00764 0.00224 4.12 41.1 World eIoni - 7 -19.6 4.59 -2.57e+03 0.00448 0.00163 2.18 43.3 World eIoni - 8 -19.1 3.88 -2.57e+03 0.00282 0.00166 1.97 45.2 World eIoni - 9 -18.5 3.69 -2.57e+03 0 0.00282 1.31 46.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.6 4.59 -2.57e+03 0.00154 0 0 0 World initStep - 1 -19.6 4.75 -2.57e+03 0 0.00154 0.531 0.531 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -21.2 4.12 -2.57e+03 0.0013 0 0 0 World initStep - 1 -21.2 4.27 -2.57e+03 0 0.0013 0.412 0.412 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.05 -38.3 -2.61e+03 50 0 0 0 World initStep - 1 -9.05 -38.3 -2.59e+03 50 0.00446 23.5 23.5 World hIoni - 2 -9.03 -38.4 -2.49e+03 50 0.0171 94.4 118 World hIoni - 3 -9.02 -38.4 -2.46e+03 50 0.00502 31.6 150 World hIoni - 4 -9.02 -38.4 -2.46e+03 50 0.000663 3.57 153 World hIoni - 5 -8.99 -38.4 -2.42e+03 50 0.00635 42.5 196 World hIoni - 6 -8.97 -38.4 -2.39e+03 50 0.0018 22.7 218 World hIoni - 7 -8.87 -38.5 -2.18e+03 49.9 0.0411 216 435 World hIoni - 8 -8.86 -38.5 -2.17e+03 49.9 0.000106 3.82 439 World hIoni - 9 -8.86 -38.5 -2.17e+03 49.9 0.00127 1.35 440 World hIoni - 10 -8.83 -38.6 -2.12e+03 49.9 0.00945 51.6 492 World hIoni - 11 -8.83 -38.6 -2.12e+03 49.9 0.000919 3.97 495 World hIoni - 12 -8.79 -38.6 -2.09e+03 49.9 0.00478 31.8 527 World hIoni - 13 -8.69 -38.7 -2.03e+03 49.9 0.00891 54.5 582 World hIoni - 14 -8.59 -38.8 -1.96e+03 49.9 0.0147 66.5 648 World hIoni - 15 -8.58 -38.9 -1.95e+03 49.9 0.00258 14.2 662 World hIoni - 16 -8.57 -38.9 -1.94e+03 49.9 0.0012 5.15 668 World hIoni - 17 -8.49 -39 -1.86e+03 49.8 0.0189 87.6 755 World hIoni - 18 -8.45 -39 -1.82e+03 49.8 0.00584 41.2 796 World hIoni - 19 -8.35 -39.1 -1.76e+03 49.8 0.00591 55.9 852 World hIoni - 20 -8.31 -39.1 -1.75e+03 49.8 0.00312 14.7 867 World hIoni - 21 -8.16 -39.2 -1.69e+03 49.8 0.0113 56.5 923 World hIoni - 22 -8.14 -39.2 -1.68e+03 49.8 0.00355 9.45 933 World hIoni - 23 -8.06 -39.3 -1.64e+03 49.8 0.00701 40.2 973 World hIoni - 24 -8 -39.4 -1.58e+03 49.8 0.00916 62 1.04e+03 World hIoni - 25 -8 -39.4 -1.57e+03 49.7 0.00206 9.64 1.04e+03 World hIoni - 26 -7.97 -39.5 -1.52e+03 49.7 0.011 52.4 1.1e+03 World hIoni - 27 -7.97 -39.5 -1.51e+03 49.7 0.000188 2.69 1.1e+03 World hIoni - 28 -7.97 -39.5 -1.51e+03 49.7 0.000708 4.41 1.1e+03 World hIoni - 29 -7.97 -39.5 -1.5e+03 49.7 0.000802 4.76 1.11e+03 World hIoni - 30 -7.96 -39.5 -1.49e+03 49.7 0.00507 18.1 1.13e+03 World hIoni - 31 -7.96 -39.5 -1.48e+03 49.6 0.00118 7.38 1.13e+03 World hIoni - 32 -7.96 -39.6 -1.46e+03 49.6 0.00211 16 1.15e+03 World hIoni - 33 -7.96 -39.6 -1.46e+03 49.6 0.000154 1.69 1.15e+03 World hIoni - 34 -7.94 -39.7 -1.41e+03 49.6 0.0121 54.1 1.21e+03 World hIoni - 35 -7.94 -39.7 -1.39e+03 49.6 0.00352 13.9 1.22e+03 World hIoni - 36 -7.94 -39.7 -1.39e+03 49.6 0 0.135 1.22e+03 World hIoni - 37 -7.94 -39.7 -1.37e+03 49.6 0.00481 20.4 1.24e+03 World hIoni - 38 -7.95 -39.7 -1.33e+03 49.6 0.0111 39.1 1.28e+03 World hIoni - 39 -7.95 -39.7 -1.33e+03 49.5 0.000556 3.82 1.28e+03 World hIoni - 40 -7.95 -39.7 -1.33e+03 49.5 0.000368 1.75 1.29e+03 World hIoni - 41 -7.95 -39.9 -1.23e+03 49.5 0.0162 95.7 1.38e+03 World hIoni - 42 -7.95 -39.9 -1.23e+03 49.5 0.000242 1.73 1.38e+03 World hIoni - 43 -7.95 -39.9 -1.23e+03 49.5 0.000256 2.95 1.39e+03 World hIoni - 44 -7.96 -40 -1.22e+03 49.5 0.00132 11.1 1.4e+03 World hIoni - 45 -7.97 -40 -1.2e+03 49.5 0.00256 11.3 1.41e+03 World hIoni - 46 -7.99 -40.1 -1.16e+03 49.5 0.00903 41 1.45e+03 World hIoni - 47 -8.01 -40.2 -1.12e+03 49.5 0.00477 48.3 1.5e+03 World hIoni - 48 -8.03 -40.2 -1.09e+03 49.5 0.00423 29.3 1.53e+03 World hIoni - 49 -8.07 -40.3 -1.01e+03 49.4 0.0158 74.9 1.6e+03 World hIoni - 50 -8.09 -40.3 -988 49.4 0.0058 22.8 1.62e+03 World hIoni - 51 -8.17 -40.5 -900 49.4 0.0113 88 1.71e+03 World hIoni - 52 -8.2 -40.5 -855 49.4 0.0102 45.1 1.76e+03 World hIoni - 53 -8.21 -40.6 -843 49.4 0.00278 11.9 1.77e+03 World hIoni - 54 -8.22 -40.6 -832 49.4 0.00152 11.3 1.78e+03 World hIoni - 55 -8.24 -40.7 -768 49.4 0.0109 63.5 1.84e+03 World hIoni - 56 -8.25 -40.7 -754 49.4 0.00151 14.7 1.86e+03 World hIoni - 57 -8.27 -40.7 -730 49.4 0.00308 23.4 1.88e+03 World hIoni - 58 -8.27 -40.7 -730 49.4 5.33e-05 0.12 1.88e+03 World hIoni - 59 -8.28 -40.8 -710 49.4 0.00546 19.8 1.9e+03 World hIoni - 60 -8.29 -40.8 -695 49.4 0.0017 15.4 1.92e+03 World hIoni - 61 -8.33 -40.9 -625 49.3 0.011 69.8 1.99e+03 World hIoni - 62 -8.35 -40.9 -607 49.3 0.00367 18.6 2.01e+03 World hIoni - 63 -8.35 -40.9 -604 49.3 0.000488 2.96 2.01e+03 World hIoni - 64 -8.38 -40.9 -579 49.3 0.00451 24.3 2.03e+03 World hIoni - 65 -8.45 -41 -536 49.3 0.00744 43.6 2.08e+03 World hIoni - 66 -8.6 -41.1 -444 49.3 0.0182 91.2 2.17e+03 World hIoni - 67 -8.67 -41.1 -412 49.3 0.00635 32 2.2e+03 World hIoni - 68 -8.81 -41.3 -337 49.3 0.0148 75.9 2.28e+03 World hIoni - 69 -8.87 -41.3 -310 49.3 0.00776 26.3 2.3e+03 World hIoni - 70 -8.94 -41.3 -280 49.3 0.00554 30.5 2.33e+03 World hIoni - 71 -9.15 -41.4 -193 49.2 0.0152 86.7 2.42e+03 World hIoni - 72 -9.17 -41.4 -184 49.2 0.00162 9.41 2.43e+03 World hIoni - 73 -9.2 -41.4 -169 49.2 0.004 14.9 2.44e+03 World hIoni - 74 -9.22 -41.4 -160 49.2 0.00227 9.26 2.45e+03 World hIoni - 75 -9.31 -41.4 -107 49.2 0.00973 52.4 2.51e+03 cloudPV CoupledTransportation - 76 -9.32 -41.4 -106 47.7 1.48 1.09 2.51e+03 World CoupledTransportation - 77 -10.3 -40.8 -29.1 47.7 0.0215 77 2.58e+03 World hIoni - 78 -11.8 -40.1 86 47.7 0.018 115 2.7e+03 World hIoni - 79 -12 -39.9 104 47.7 0.00234 18.3 2.72e+03 World hIoni - 80 -12.7 -39.5 163 47.7 0.0125 59 2.78e+03 World hIoni - 81 -12.8 -39.5 166 47.7 0.00104 2.43 2.78e+03 World hIoni - 82 -13.3 -39.2 215 47.7 0.0111 49.2 2.83e+03 World hIoni - 83 -13.8 -39 253 47.7 0.00728 38.1 2.87e+03 World hIoni - 84 -14.3 -38.7 295 47.6 0.00854 41.6 2.91e+03 World hIoni - 85 -14.4 -38.7 304 47.6 0.0018 9.34 2.92e+03 World hIoni - 86 -14.9 -38.4 344 47.6 0.00523 39.5 2.96e+03 World hIoni - 87 -15.3 -38.2 373 47.6 0.00462 29.2 2.99e+03 World hIoni - 88 -16.2 -37.7 454 47.6 0.0168 81.1 3.07e+03 World hIoni - 89 -16.3 -37.7 455 47.6 0.00013 0.861 3.07e+03 World hIoni - 90 -17.3 -37.1 537 47.6 0.0132 82.5 3.15e+03 World hIoni - 91 -17.6 -36.9 562 47.6 0.00728 24.6 3.17e+03 World hIoni - 92 -17.7 -36.8 571 47.6 0.00208 8.87 3.18e+03 cloudPV CoupledTransportation - 93 -17.7 -36.8 571 46.7 0.875 0.572 3.18e+03 World CoupledTransportation - 94 -18.1 -36.3 601 46.7 0.00362 29.7 3.21e+03 World hIoni - 95 -18.5 -35.8 632 46.7 0.00353 30.9 3.24e+03 World hIoni - 96 -20.9 -32.2 833 46.7 0.0355 201 3.45e+03 World hIoni - 97 -21 -32 844 46.6 0.00164 11.6 3.46e+03 World hIoni - 98 -21 -31.9 849 46.6 0.000975 4.08 3.46e+03 World hIoni - 99 -21.1 -31.8 851 46.6 0.000128 2.78 3.46e+03 World hIoni - 100 -21.2 -31.6 862 46.6 0.00193 10.6 3.47e+03 World hIoni - 101 -21.4 -31.3 880 46.6 0.00275 18.1 3.49e+03 World hIoni - 102 -22.3 -29.9 953 46.6 0.0135 72.7 3.57e+03 World hIoni - 103 -22.5 -29.6 971 46.6 0.00653 18.2 3.58e+03 World hIoni - 104 -22.7 -29.4 983 46.6 0.00283 12 3.6e+03 cloudPV CoupledTransportation - 105 -22.7 -29.3 985 44.1 2.46 1.78 3.6e+03 World CoupledTransportation - 106 -22.7 -29.3 985 44.1 0.00043 0.802 3.6e+03 World hIoni - 107 -23.9 -29 1.04e+03 44.1 0.0105 57.3 3.66e+03 World hIoni - 108 -24 -28.9 1.05e+03 44.1 0.000727 7.87 3.66e+03 World hIoni - 109 -24.7 -28.7 1.09e+03 44.1 0.00497 35.7 3.7e+03 World hIoni - 110 -25.1 -28.5 1.1e+03 44.1 0.00358 17.7 3.72e+03 World hIoni - 111 -25.2 -28.5 1.11e+03 44.1 0.00206 4.56 3.72e+03 World hIoni - 112 -25.7 -28.3 1.14e+03 44.1 0.00517 27.2 3.75e+03 World hIoni - 113 -27.7 -27.6 1.24e+03 44.1 0.0237 101 3.85e+03 World hIoni - 114 -28.2 -27.4 1.26e+03 44.1 0.00298 23.9 3.87e+03 World hIoni - 115 -29.1 -27.1 1.31e+03 44.1 0.00821 47 3.92e+03 World hIoni - 116 -29.4 -27 1.32e+03 44.1 0.00387 13.3 3.93e+03 World hIoni - 117 -30.9 -26.5 1.4e+03 44 0.0147 78.1 4.01e+03 cloudPV CoupledTransportation - 118 -30.9 -26.5 1.4e+03 41.7 2.38 1.79 4.01e+03 World CoupledTransportation - 119 -31.3 -26.6 1.42e+03 41.7 0.00271 16.5 4.03e+03 World hIoni - 120 -31.3 -26.6 1.42e+03 41.6 0.00119 4.01 4.03e+03 World hIoni - 121 -31.7 -26.7 1.44e+03 41.6 0.00406 19.2 4.05e+03 World hIoni - 122 -32.2 -26.8 1.46e+03 41.6 0.00412 22.3 4.08e+03 World hIoni - 123 -33.7 -27.2 1.54e+03 41.6 0.0165 79 4.15e+03 World hIoni - 124 -33.8 -27.2 1.55e+03 41.6 0.000667 5.73 4.16e+03 World hIoni - 125 -34.1 -27.3 1.56e+03 41.6 0.0018 12.1 4.17e+03 World hIoni - 126 -36.1 -27.8 1.66e+03 41.6 0.0246 104 4.28e+03 World hIoni - 127 -38.2 -28.4 1.77e+03 41.5 0.0231 106 4.38e+03 World hIoni - 128 -38.8 -28.6 1.8e+03 41.5 0.00797 34 4.42e+03 World hIoni - 129 -38.8 -28.6 1.8e+03 41.5 0 0.0627 4.42e+03 World hIoni - 130 -39.2 -28.8 1.83e+03 41.5 0.00592 22.2 4.44e+03 World hIoni - 131 -39.4 -28.8 1.83e+03 41.5 0.000663 7 4.45e+03 World hIoni - 132 -41 -29.2 1.92e+03 41.5 0.0162 83.3 4.53e+03 World hIoni - 133 -41.4 -29.3 1.94e+03 41.5 0.0042 20 4.55e+03 World hIoni - 134 -41.9 -29.5 1.96e+03 41.5 0.00501 28.7 4.58e+03 World hIoni - 135 -42.4 -29.6 1.99e+03 41.5 0.00512 25.6 4.6e+03 World hIoni - 136 -42.8 -29.7 2.01e+03 41.5 0.00513 19.9 4.62e+03 World hIoni - 137 -42.9 -29.7 2.01e+03 41.5 0.00018 2.76 4.63e+03 World hIoni - 138 -43.5 -29.8 2.05e+03 41.5 0.00864 34.5 4.66e+03 World hIoni - 139 -44.2 -30 2.09e+03 41.4 0.0103 39.4 4.7e+03 World hIoni - 140 -46.6 -30.5 2.22e+03 41.4 0.0257 137 4.84e+03 World hIoni - 141 -46.7 -30.5 2.23e+03 41.4 0.000632 4.32 4.84e+03 World hIoni - 142 -46.7 -30.5 2.23e+03 41.4 0.00015 0.639 4.84e+03 World hIoni - 143 -47.5 -30.6 2.27e+03 41.4 0.0108 42.8 4.89e+03 World hIoni - 144 -48.1 -30.6 2.31e+03 41.4 0.00648 34.6 4.92e+03 World hIoni - 145 -49.9 -30.7 2.41e+03 41.4 0.0187 102 5.02e+03 World hIoni - 146 -51 -30.7 2.47e+03 41.4 0.0119 60.8 5.08e+03 World hIoni - 147 -51.4 -30.7 2.49e+03 41.4 0.00437 22.7 5.11e+03 World hIoni - 148 -51.5 -30.7 2.5e+03 41.4 0.00188 7.58 5.11e+03 World hIoni - 149 -51.6 -30.7 2.51e+03 41.4 0.00238 6.43 5.12e+03 World hIoni - 150 -53.1 -30.6 2.59e+03 41.3 0.0229 87.4 5.21e+03 World hIoni - 151 -53.1 -30.6 2.59e+03 41.3 5.07e-05 0.319 5.21e+03 World hIoni - 152 -53.2 -30.6 2.6e+03 41.3 0.00121 6.04 5.21e+03 detectorPV CoupledTransportation - 153 -53.2 -30.6 2.6e+03 35.9 5.38 1.71 5.21e+03 detectorPV hIoni - 154 -53.2 -30.6 2.6e+03 31.2 4.74 1.37 5.22e+03 detectorPV hIoni - 155 -53.2 -30.6 2.6e+03 26.8 4.37 1.1 5.22e+03 detectorPV hIoni - 156 -53.2 -30.6 2.61e+03 22.8 3.99 0.879 5.22e+03 detectorPV hIoni - 157 -53.3 -30.5 2.61e+03 19.4 3.43 0.7 5.22e+03 detectorPV hIoni - 158 -53.2 -30.5 2.61e+03 16.1 3.27 0.564 5.22e+03 detectorPV hIoni - 159 -53.2 -30.5 2.61e+03 13 3.12 0.448 5.22e+03 detectorPV hIoni - 160 -53.2 -30.4 2.61e+03 10.2 2.84 0.353 5.22e+03 detectorPV hIoni - 161 -53.2 -30.4 2.61e+03 7.46 2.71 0.278 5.22e+03 detectorPV hIoni - 162 -53.2 -30.4 2.61e+03 4.58 2.89 0.215 5.22e+03 detectorPV hIoni - 163 -53.2 -30.4 2.61e+03 1.21 3.37 0.145 5.22e+03 detectorPV hIoni - 164 -53.2 -30.4 2.61e+03 0 1.21 0.0194 5.22e+03 detectorPV hIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -53.1 -30.6 2.59e+03 0.00171 0 0 0 World initStep - 1 -53.3 -30.5 2.59e+03 0 0.00171 0.628 0.628 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -53.1 -30.6 2.59e+03 0.001 0 0 0 World initStep - 1 -53.1 -30.7 2.59e+03 0 0.001 0.283 0.283 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51.6 -30.7 2.51e+03 0.00371 0 0 0 World initStep - 1 -51 -31.3 2.51e+03 0.00152 0.00219 1.69 1.69 World eIoni - 2 -50.9 -31.4 2.51e+03 0 0.00152 0.524 2.22 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51.5 -30.7 2.5e+03 0.00224 0 0 0 World initStep - 1 -51.2 -31 2.5e+03 0 0.00224 0.96 0.96 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51.4 -30.7 2.49e+03 0.00161 0 0 0 World initStep - 1 -51.6 -30.8 2.49e+03 0 0.00161 0.569 0.569 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -49.9 -30.7 2.41e+03 0.00115 0 0 0 World initStep - 1 -50 -30.7 2.41e+03 0 0.00115 0.346 0.346 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -47.5 -30.6 2.27e+03 0.00303 0 0 0 World initStep - 1 -47.1 -30 2.27e+03 0 0.00303 1.41 1.41 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46.7 -30.5 2.23e+03 0.00196 0 0 0 World initStep - 1 -47 -30.4 2.23e+03 0 0.00196 0.777 0.777 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46.7 -30.5 2.23e+03 0.00171 0 0 0 World initStep - 1 -46.6 -30.8 2.23e+03 0 0.00171 0.624 0.624 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -46.6 -30.5 2.22e+03 0.00116 0 0 0 World initStep - 1 -46.7 -30.6 2.22e+03 0 0.00116 0.348 0.348 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -44.2 -30 2.09e+03 0.00139 0 0 0 World initStep - 1 -44.1 -30.1 2.09e+03 0 0.00139 0.457 0.457 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.5 -29.8 2.05e+03 0.000992 0 0 0 World initStep - 1 -43.4 -29.8 2.05e+03 0 0.000992 0.279 0.279 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.9 -29.7 2.01e+03 0.0013 0 0 0 World initStep - 1 -43 -29.6 2.01e+03 0 0.0013 0.415 0.415 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.8 -29.7 2.01e+03 0.00634 0 0 0 World initStep - 1 -44.5 -30.2 2.01e+03 0.0044 0.00194 2.62 2.62 World eIoni - 2 -45.5 -30.1 2.01e+03 0.00216 0.00224 1.94 4.56 World eIoni - 3 -45.4 -29.9 2.01e+03 0 0.00216 0.906 5.47 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.4 -29.6 1.99e+03 0.00247 0 0 0 World initStep - 1 -42.6 -29.2 1.99e+03 0 0.00247 1.11 1.11 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41.9 -29.5 1.96e+03 0.0023 0 0 0 World initStep - 1 -41.5 -29.4 1.97e+03 0 0.0023 1 1 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41.4 -29.3 1.94e+03 0.00146 0 0 0 World initStep - 1 -41.2 -29.4 1.94e+03 0 0.00146 0.491 0.491 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41 -29.2 1.92e+03 0.00128 0 0 0 World initStep - 1 -40.8 -29.2 1.92e+03 0 0.00128 0.406 0.406 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -39.4 -28.8 1.83e+03 0.00139 0 0 0 World initStep - 1 -39.5 -28.8 1.83e+03 0 0.00139 0.456 0.456 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -39.2 -28.8 1.83e+03 0.0033 0 0 0 World initStep - 1 -38.5 -28.9 1.83e+03 0 0.0033 1.53 1.53 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38.8 -28.6 1.8e+03 0.00232 0 0 0 World initStep - 1 -39.2 -28.4 1.8e+03 0 0.00232 1.02 1.02 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38.8 -28.6 1.8e+03 0.00201 0 0 0 World initStep - 1 -38.6 -28.9 1.8e+03 0 0.00201 0.804 0.804 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38.2 -28.4 1.77e+03 0.00225 0 0 0 World initStep - 1 -37.8 -28.3 1.77e+03 0 0.00225 0.968 0.968 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.1 -27.8 1.66e+03 0.00306 0 0 0 World initStep - 1 -36.8 -27.6 1.66e+03 0.00112 0.00194 1.42 1.42 World eIoni - 2 -36.7 -27.4 1.66e+03 0 0.00112 0.331 1.75 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.1 -27.3 1.56e+03 0.000999 0 0 0 World initStep - 1 -34 -27.2 1.56e+03 0 0.000999 0.282 0.282 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.8 -27.2 1.55e+03 0.00229 0 0 0 World initStep - 1 -34.2 -27.2 1.55e+03 0 0.00229 0.991 0.991 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.2 -26.8 1.46e+03 0.0169 0 0 0 World initStep - 1 -31.8 -21.1 1.47e+03 0.0148 0.0021 8.47 8.47 World eIoni - 2 -34.9 -15.5 1.47e+03 0.0125 0.00228 6.98 15.4 World eIoni - 3 -35.5 -14.1 1.47e+03 0.00968 0.000411 1.71 17.2 World eIoni - 4 -37.3 -11.9 1.47e+03 0.00719 0.00249 4.03 21.2 World eIoni - 5 -39.1 -12.7 1.47e+03 0.00517 0.00202 2.94 24.1 World eIoni - 6 -39.8 -13.8 1.47e+03 0.00256 0.00261 2.2 26.3 World eIoni - 7 -40.2 -14.2 1.47e+03 0 0.00256 1.17 27.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 96 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.5 -14.1 1.47e+03 0.00242 0 0 0 World initStep - 1 -35.3 -13.7 1.47e+03 0 0.00242 1.08 1.08 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -31.7 -26.7 1.44e+03 0.00343 0 0 0 World initStep - 1 -31.2 -26.1 1.44e+03 0.00254 0.000895 1.59 1.59 World eIoni - 2 -30.7 -26.1 1.44e+03 0 0.00254 1.16 2.74 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -31.3 -26.6 1.42e+03 0.00322 0 0 0 World initStep - 1 -31.8 -27.1 1.42e+03 0 0.00322 1.5 1.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -29.4 -27 1.32e+03 0.00189 0 0 0 World initStep - 1 -29.5 -27.3 1.32e+03 0 0.00189 0.731 0.731 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -28.2 -27.4 1.26e+03 0.00342 0 0 0 World initStep - 1 -27.5 -27.1 1.26e+03 0.002 0.00142 1.58 1.58 World eIoni - 2 -27.4 -27 1.26e+03 0 0.002 0.803 2.38 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -27.7 -27.6 1.24e+03 0.00664 0 0 0 World initStep - 1 -28.6 -25.9 1.24e+03 0.00561 0.00103 2.73 2.73 World eIoni - 2 -29.6 -25.5 1.24e+03 0.00345 0.00217 2.36 5.09 World eIoni - 3 -28.8 -25.5 1.24e+03 0.00109 0.00236 1.59 6.68 World eIoni - 4 -28.7 -25.4 1.24e+03 0 0.00109 0.318 7 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -25.7 -28.3 1.14e+03 0.00376 0 0 0 World initStep - 1 -24.8 -28.4 1.14e+03 0.00115 0.00261 1.71 1.71 World eIoni - 2 -24.7 -28.3 1.14e+03 0 0.00115 0.344 2.05 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -25.2 -28.5 1.11e+03 0.00117 0 0 0 World initStep - 1 -25.2 -28.4 1.11e+03 0 0.00117 0.355 0.355 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -25.1 -28.5 1.1e+03 0.00499 0 0 0 World initStep - 1 -24.6 -29.8 1.1e+03 0.00373 0.00126 1.6 1.6 World msc - 2 -24 -30 1.1e+03 0.00212 0.00161 1.7 3.31 World eIoni - 3 -23.7 -29.8 1.1e+03 0 0.00212 0.877 4.18 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -24.7 -28.7 1.09e+03 0.00103 0 0 0 World initStep - 1 -24.7 -28.7 1.09e+03 0 0.00103 0.295 0.295 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -24 -28.9 1.05e+03 0.00219 0 0 0 World initStep - 1 -23.9 -29.3 1.05e+03 0 0.00219 0.928 0.928 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -23.9 -29 1.04e+03 0.00126 0 0 0 World initStep - 1 -23.9 -29.1 1.04e+03 0 0.00126 0.395 0.395 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -22.7 -29.3 985 0.00285 0 0 0 World initStep - 1 -22.5 -29 985 0.00102 0.00183 0.466 0.466 World msc - 2 -22.5 -28.9 985 0 0.00102 0.291 0.756 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -22.5 -29.6 971 0.00111 0 0 0 World initStep - 1 -22.5 -29.5 971 0 0.00111 0.328 0.328 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -22.3 -29.9 953 0.002 0 0 0 World initStep - 1 -22 -29.9 953 0 0.002 0.802 0.802 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -21.4 -31.3 880 0.0015 0 0 0 World initStep - 1 -21.2 -31.3 880 0 0.0015 0.51 0.51 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -21.2 -31.6 862 0.0032 0 0 0 World initStep - 1 -21.9 -31.5 862 0.00103 0.00218 1.49 1.49 World eIoni - 2 -22 -31.5 862 0 0.00103 0.293 1.78 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -21.1 -31.8 851 0.00147 0 0 0 World initStep - 1 -20.9 -32 851 0 0.00147 0.496 0.496 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -21 -31.9 849 0.00149 0 0 0 World initStep - 1 -21 -31.7 849 0 0.00149 0.509 0.509 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -21 -32 844 0.00362 0 0 0 World initStep - 1 -20.3 -31.4 845 0.00128 0.00234 1.66 1.66 World eIoni - 2 -20.2 -31.3 845 0 0.00128 0.404 2.06 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.9 -32.2 833 0.00155 0 0 0 World initStep - 1 -20.9 -32 833 0 0.00155 0.539 0.539 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.5 -35.8 632 0.00173 0 0 0 World initStep - 1 -18.7 -36 632 0 0.00173 0.637 0.637 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.1 -36.3 601 0.00158 0 0 0 World initStep - 1 -18.3 -36.4 601 0 0.00158 0.554 0.554 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.6 -36.9 562 0.00252 0 0 0 World initStep - 1 -17.2 -37.1 562 0 0.00252 1.15 1.15 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.3 -37.1 537 0.0011 0 0 0 World initStep - 1 -17.2 -37.2 537 0 0.0011 0.323 0.323 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.3 -37.7 455 0.00548 0 0 0 World initStep - 1 -17.6 -37.1 455 0.00272 0.00276 2.31 2.31 World eIoni - 2 -17.7 -37.4 455 0 0.00272 1.26 3.57 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.2 -37.7 454 0.00104 0 0 0 World initStep - 1 -16.2 -37.8 454 0 0.00104 0.3 0.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -15.3 -38.2 373 0.00222 0 0 0 World initStep - 1 -15.7 -38.2 373 0 0.00222 0.944 0.944 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -14.9 -38.4 344 0.0024 0 0 0 World initStep - 1 -15.3 -38.7 344 0 0.0024 1.07 1.07 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -14.4 -38.7 304 0.00277 0 0 0 World initStep - 1 -14.8 -38.3 304 0.00111 0.00166 1.28 1.28 World eIoni - 2 -14.8 -38.2 304 0 0.00111 0.326 1.61 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -14.3 -38.7 295 0.00119 0 0 0 World initStep - 1 -14.3 -38.9 295 0 0.00119 0.362 0.362 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13.8 -39 253 0.00404 0 0 0 World initStep - 1 -12.8 -38.8 253 0.0026 0.00144 1.81 1.81 World eIoni - 2 -12.3 -39 253 0 0.0026 1.19 3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13.3 -39.2 215 0.00398 0 0 0 World initStep - 1 -13.7 -38.3 215 0.00125 0.00273 1.79 1.79 World eIoni - 2 -13.8 -38.3 215 0 0.00125 0.391 2.18 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.8 -39.5 166 0.00113 0 0 0 World initStep - 1 -12.7 -39.6 166 0 0.00113 0.334 0.334 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12 -39.9 104 0.00167 0 0 0 World initStep - 1 -12.3 -40 104 0 0.00167 0.602 0.602 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -10.3 -40.8 -29.1 0.00108 0 0 0 World initStep - 1 -10.3 -40.7 -29.1 0 0.00108 0.313 0.313 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.2 -41.4 -169 0.00244 0 0 0 World initStep - 1 -9.35 -41 -169 0.00104 0.0014 1.1 1.1 World eIoni - 2 -9.28 -41 -169 0 0.00104 0.298 1.39 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.15 -41.4 -193 0.00592 0 0 0 World initStep - 1 -10.5 -42.4 -193 0.00411 0.0018 2.47 2.47 World eIoni - 2 -11.5 -42.1 -193 0.00248 0.00163 1.84 4.31 World eIoni - 3 -12 -42 -193 0 0.00248 1.12 5.42 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.94 -41.3 -280 0.00109 0 0 0 World initStep - 1 -9.06 -41.3 -280 0 0.00109 0.319 0.319 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.87 -41.3 -310 0.00187 0 0 0 World initStep - 1 -8.59 -41.4 -310 0 0.00187 0.722 0.722 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.81 -41.3 -337 0.00111 0 0 0 World initStep - 1 -8.72 -41.2 -337 0 0.00111 0.328 0.328 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.67 -41.1 -412 0.00339 0 0 0 World initStep - 1 -9.13 -40.5 -412 0.00133 0.00207 1.57 1.57 World eIoni - 2 -8.99 -40.6 -412 0 0.00133 0.427 2 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.6 -41.1 -444 0.00155 0 0 0 World initStep - 1 -8.65 -41.3 -444 0 0.00155 0.537 0.537 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.45 -41 -536 0.00371 0 0 0 World initStep - 1 -7.62 -40.6 -536 0.00227 0.00144 1.69 1.69 World eIoni - 2 -7.43 -40.9 -536 0 0.00227 0.982 2.67 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.38 -40.9 -579 0.00104 0 0 0 World initStep - 1 -8.36 -41 -579 0 0.00104 0.299 0.299 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.35 -40.9 -604 0.00225 0 0 0 World initStep - 1 -8.61 -41.2 -604 0 0.00225 0.964 0.964 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.35 -40.9 -607 0.00359 0 0 0 World initStep - 1 -7.63 -40.4 -606 0.00232 0.00127 1.65 1.65 World eIoni - 2 -7.71 -40.1 -606 0 0.00232 1.01 2.66 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.33 -40.9 -625 0.00485 0 0 0 World initStep - 1 -9.58 -40.5 -625 0.00389 0.000953 2.09 2.09 World eIoni - 2 -9.64 -39.6 -625 0.00188 0.00202 1.76 3.86 World eIoni - 3 -9.37 -39.6 -625 0 0.00188 0.724 4.58 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.29 -40.8 -695 0.00163 0 0 0 World initStep - 1 -8.2 -40.6 -695 0 0.00163 0.584 0.584 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.28 -40.8 -710 0.00143 0 0 0 World initStep - 1 -8.1 -40.7 -710 0 0.00143 0.476 0.476 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.27 -40.7 -730 0.00499 0 0 0 World initStep - 1 -9.46 -40.1 -730 0.00255 0.00244 2.14 2.14 World eIoni - 2 -9.39 -40.6 -730 0 0.00255 1.16 3.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.27 -40.7 -730 0.00252 0 0 0 World initStep - 1 -8.62 -41.1 -730 0 0.00252 1.14 1.14 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.25 -40.7 -754 0.0011 0 0 0 World initStep - 1 -8.26 -40.6 -754 0 0.0011 0.322 0.322 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.24 -40.7 -768 0.00175 0 0 0 World initStep - 1 -8.01 -40.8 -768 0 0.00175 0.651 0.651 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.21 -40.6 -843 0.00197 0 0 0 World initStep - 1 -8.4 -40.3 -843 0 0.00197 0.782 0.782 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.2 -40.5 -855 0.00271 0 0 0 World initStep - 1 -8.36 -40 -855 0 0.00271 1.25 1.25 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.07 -40.3 -1.01e+03 0.00186 0 0 0 World initStep - 1 -8.25 -40.1 -1.01e+03 0 0.00186 0.711 0.711 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.03 -40.2 -1.09e+03 0.00135 0 0 0 World initStep - 1 -8.08 -40.4 -1.09e+03 0 0.00135 0.438 0.438 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.99 -40.1 -1.16e+03 0.0032 0 0 0 World initStep - 1 -7.84 -40.3 -1.16e+03 0.00308 0.000119 0.287 0.287 World msc - 2 -7.83 -40.4 -1.16e+03 0.00261 0.000469 0.333 0.62 World msc - 3 -7.71 -40.7 -1.16e+03 0.00155 0.00106 0.405 1.02 World msc - 4 -7.69 -40.9 -1.16e+03 0 0.00155 0.541 1.57 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.97 -40 -1.2e+03 0.00919 0 0 0 World initStep - 1 -9.7 -42.2 -1.2e+03 0.00816 0.00103 3.8 3.8 World eIoni - 2 -11.6 -43.5 -1.2e+03 0.00576 0.0024 3.34 7.13 World eIoni - 3 -11.7 -42.7 -1.2e+03 0.00299 0.00276 2.41 9.54 World eIoni - 4 -12.2 -43 -1.2e+03 0 0.00299 1.39 10.9 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.96 -40 -1.22e+03 0.00767 0 0 0 World initStep - 1 -7.21 -37.8 -1.22e+03 0.00587 0.0018 3.13 3.13 World eIoni - 2 -7.48 -36.4 -1.21e+03 0.00349 0.00238 2.45 5.58 World eIoni - 3 -7.09 -36.9 -1.21e+03 0.00123 0.00226 1.61 7.19 World eIoni - 4 -7.17 -36.9 -1.21e+03 0 0.00123 0.379 7.57 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.95 -39.9 -1.23e+03 0.00125 0 0 0 World initStep - 1 -7.93 -39.8 -1.23e+03 0 0.00125 0.392 0.392 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.95 -39.9 -1.23e+03 0.00312 0 0 0 World initStep - 1 -7.82 -40.5 -1.23e+03 0.00212 0.000999 0.945 0.945 World eIoni - 2 -8.1 -40.4 -1.23e+03 0 0.00212 0.88 1.82 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.95 -39.9 -1.23e+03 0.00121 0 0 0 World initStep - 1 -7.85 -40 -1.23e+03 0 0.00121 0.374 0.374 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.95 -39.7 -1.33e+03 0.00272 0 0 0 World initStep - 1 -7.8 -39.2 -1.33e+03 0 0.00272 1.26 1.26 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.95 -39.7 -1.33e+03 0.0728 0 0 0 World initStep - 1 -13.7 -73.9 -1.28e+03 0.0669 0.00592 67.3 67.3 cloudPV CoupledTransportation - 2 -13.7 -73.9 -1.28e+03 0.0661 0.000808 0.00255 67.3 cloudPV msc - 3 -13.7 -73.9 -1.28e+03 0.0643 0.00182 0.0033 67.3 cloudPV msc - 4 -13.7 -73.9 -1.28e+03 0.0625 0.00176 0.00312 67.3 cloudPV msc - 5 -13.7 -73.9 -1.28e+03 0.0619 0.000575 0.00366 67.3 cloudPV msc - 6 -13.7 -73.9 -1.28e+03 0.0604 0.00153 0.00544 67.3 cloudPV msc - 7 -13.7 -73.9 -1.28e+03 0.057 0.0034 0.00736 67.3 cloudPV msc - 8 -13.7 -73.9 -1.28e+03 0.0524 0.00458 0.00926 67.3 cloudPV msc - 9 -13.7 -74 -1.28e+03 0.0464 0.00601 0.0117 67.3 cloudPV msc - 10 -13.7 -74 -1.28e+03 0.0376 0.00879 0.0135 67.3 cloudPV msc - 11 -13.7 -74 -1.28e+03 0 0.0376 0.0264 67.4 cloudPV eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.95 -39.7 -1.33e+03 0.00611 0 0 0 World initStep - 1 -7.92 -38 -1.33e+03 0.00525 0.000862 2.54 2.54 World eIoni - 2 -8.64 -37.2 -1.33e+03 0.00404 0.00121 2.23 4.77 World eIoni - 3 -8.92 -36.5 -1.33e+03 0.00187 0.00217 1.81 6.58 World eIoni - 4 -9.21 -36.5 -1.33e+03 0 0.00187 0.72 7.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.94 -39.7 -1.37e+03 0.00522 0 0 0 World initStep - 1 -7.3 -41 -1.37e+03 0.00365 0.00157 2.22 2.22 World eIoni - 2 -7.68 -41.4 -1.37e+03 0.0016 0.00205 1.67 3.89 World eIoni - 3 -7.57 -41.5 -1.37e+03 0 0.0016 0.566 4.46 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.94 -39.7 -1.39e+03 0.00146 0 0 0 World initStep - 1 -7.84 -39.8 -1.39e+03 0 0.00146 0.494 0.494 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.94 -39.7 -1.39e+03 0.00296 0 0 0 World initStep - 1 -7.94 -40.3 -1.39e+03 0.00164 0.00132 1.38 1.38 World eIoni - 2 -7.86 -40.1 -1.39e+03 0 0.00164 0.588 1.97 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.96 -39.6 -1.46e+03 0.00227 0 0 0 World initStep - 1 -7.65 -39.3 -1.46e+03 0 0.00227 0.983 0.983 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.96 -39.5 -1.48e+03 0.0394 0 0 0 World initStep - 1 0.46 -14.5 -1.46e+03 0.0344 0.00495 34.1 34.1 World eIoni - 2 18.6 3.13 -1.46e+03 0.0291 0.00531 27 61.1 World eIoni - 3 33.2 -5.13 -1.47e+03 0.025 0.00406 20.3 81.3 World eIoni - 4 35.3 -6.41 -1.47e+03 0.0225 0.000476 2.9 84.2 World eIoni - 5 44.8 -7.39 -1.48e+03 0.0208 0.00169 13.2 97.5 World eIoni - 6 50.4 -1.87 -1.49e+03 0.0189 0.0019 11.7 109 World eIoni - 7 55.4 -1.81 -1.5e+03 0.0141 0.00482 10 119 World eIoni - 8 59.9 -2.33 -1.5e+03 0.0125 0.00151 6.49 126 World eIoni - 9 60.7 -2.64 -1.5e+03 0.0109 0.000363 1.07 127 World eIoni - 10 64.2 -1.07 -1.5e+03 0.00989 0.00102 4.64 131 World eIoni - 11 66.1 -0.0451 -1.49e+03 0.00766 0.00223 4.13 135 World eIoni - 12 67.9 1.03 -1.49e+03 0.00668 0.000989 3.13 139 World eIoni - 13 69.6 2.75 -1.49e+03 0.00627 0.000405 2.74 141 World eIoni - 14 69.9 2.26 -1.49e+03 0.00344 0.00284 2.59 144 World eIoni - 15 69.2 2.72 -1.49e+03 0.00242 0.00101 1.59 146 World eIoni - 16 68.9 2.43 -1.49e+03 0 0.00242 1.08 147 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 25 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 60.7 -2.64 -1.5e+03 0.00127 0 0 0 World initStep - 1 60.6 -2.7 -1.5e+03 0 0.00127 0.401 0.401 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 25 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 35.3 -6.41 -1.47e+03 0.00209 0 0 0 World initStep - 1 35.6 -6.3 -1.47e+03 0 0.00209 0.861 0.861 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.97 -39.5 -1.5e+03 0.00175 0 0 0 World initStep - 1 -7.71 -39.5 -1.5e+03 0 0.00175 0.648 0.648 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.97 -39.5 -1.51e+03 0.0031 0 0 0 World initStep - 1 -7.6 -38.9 -1.51e+03 0 0.0031 1.44 1.44 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.97 -39.5 -1.51e+03 0.0144 0 0 0 World initStep - 1 -8.77 -35.4 -1.51e+03 0.0125 0.00191 5.97 5.97 World msc - 2 -7.28 -33 -1.5e+03 0.0116 0.000908 5.54 11.5 World eIoni - 3 -9.19 -29.8 -1.5e+03 0.00957 0.00204 5.03 16.5 World eIoni - 4 -9.17 -26.2 -1.5e+03 0.00861 0.000966 3.97 20.5 World eIoni - 5 -9.03 -23.9 -1.5e+03 0.00667 0.00194 3.53 24 World eIoni - 6 -9.1 -22.6 -1.51e+03 0.00267 0.004 2.74 26.8 World eIoni - 7 -9.15 -22.3 -1.51e+03 0 0.00267 1.23 28 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.97 -39.5 -1.52e+03 0.0024 0 0 0 World initStep - 1 -7.96 -39.9 -1.52e+03 0 0.0024 1.07 1.07 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8 -39.4 -1.57e+03 0.0289 0 0 0 World initStep - 1 -10.6 -31.8 -1.56e+03 0.0234 0.00229 11.8 11.8 World eIoni - 2 -15.6 -28.6 -1.55e+03 0.0151 0.00825 14.1 25.9 World eIoni - 3 -15.7 -28.6 -1.55e+03 0.0151 2.72e-05 0.299 26.2 cloudPV CoupledTransportation - 4 -15.7 -28.6 -1.55e+03 0.0149 0.000195 0.000185 26.2 cloudPV msc - 5 -15.7 -28.6 -1.55e+03 0.0146 0.000292 0.000214 26.2 cloudPV msc - 6 -15.7 -28.6 -1.55e+03 0.0145 8.85e-05 0.000209 26.2 cloudPV msc - 7 -15.7 -28.6 -1.55e+03 0.0141 0.000428 0.000355 26.2 cloudPV msc - 8 -15.7 -28.6 -1.55e+03 0.0132 0.000906 0.000446 26.2 cloudPV msc - 9 -15.7 -28.6 -1.55e+03 0.0115 0.0017 0.000772 26.2 cloudPV msc - 10 -15.7 -28.6 -1.55e+03 0.01 0.00148 0.000928 26.2 cloudPV msc - 11 -15.7 -28.6 -1.55e+03 0.007 0.003 0.0013 26.2 cloudPV msc - 12 -15.7 -28.6 -1.55e+03 0 0.007 0.00137 26.2 cloudPV eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 20 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -10.6 -31.8 -1.56e+03 0.00326 0 0 0 World initStep - 1 -10.8 -32.5 -1.56e+03 0.00222 0.00104 1.52 1.52 World eIoni - 2 -11 -32.2 -1.56e+03 0 0.00222 0.946 2.46 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8 -39.4 -1.58e+03 0.00323 0 0 0 World initStep - 1 -8.23 -38.7 -1.58e+03 0.00126 0.00197 1.5 1.5 World eIoni - 2 -8.31 -38.6 -1.58e+03 0 0.00126 0.393 1.89 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.14 -39.2 -1.68e+03 0.00227 0 0 0 World initStep - 1 -8.53 -39.1 -1.68e+03 0 0.00227 0.98 0.98 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.16 -39.2 -1.69e+03 0.0138 0 0 0 World initStep - 1 -4.94 -34.3 -1.69e+03 0.0106 0.00319 6.33 6.33 World eIoni - 2 -4.6 -30.7 -1.69e+03 0.00898 0.00164 4.49 10.8 World eIoni - 3 -5.74 -28.3 -1.69e+03 0.008 0.000978 3.7 14.5 World eIoni - 4 -3.27 -28.5 -1.69e+03 0.00683 0.00117 3.27 17.8 World eIoni - 5 -2.25 -30.3 -1.69e+03 0.00486 0.00198 2.8 20.6 World eIoni - 6 -1.88 -31.5 -1.69e+03 0.00235 0.0025 2.1 22.7 World eIoni - 7 -2.2 -31.4 -1.69e+03 0 0.00235 1.04 23.7 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.31 -39.1 -1.75e+03 0.00264 0 0 0 World initStep - 1 -8.6 -38.7 -1.75e+03 0 0.00264 1.21 1.21 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.49 -39 -1.86e+03 0.00593 0 0 0 World initStep - 1 -9.26 -38.3 -1.86e+03 0.00386 0.000452 1.21 1.21 World eIoni - 2 -8.98 -37.4 -1.86e+03 0.00128 0.00258 1.75 2.96 World eIoni - 3 -8.98 -37.5 -1.86e+03 0 0.00128 0.404 3.36 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.26 -38.3 -1.86e+03 0.00162 0 0 0 World initStep - 1 -9.46 -38.3 -1.86e+03 0 0.00162 0.577 0.577 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.57 -38.9 -1.94e+03 0.00382 0 0 0 World initStep - 1 -8.33 -39 -1.94e+03 0.00241 0.00036 0.303 0.303 World eIoni - 2 -7.9 -39.1 -1.94e+03 0 0.00241 1.08 1.38 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.33 -39 -1.94e+03 0.00105 0 0 0 World initStep - 1 -8.32 -38.9 -1.94e+03 0 0.00105 0.303 0.303 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.59 -38.8 -1.96e+03 0.00171 0 0 0 World initStep - 1 -8.83 -38.8 -1.96e+03 0 0.00171 0.627 0.627 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.69 -38.7 -2.03e+03 0.00159 0 0 0 World initStep - 1 -8.8 -38.9 -2.03e+03 0 0.00159 0.562 0.562 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.79 -38.6 -2.09e+03 0.00128 0 0 0 World initStep - 1 -8.84 -38.5 -2.09e+03 0 0.00128 0.405 0.405 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.83 -38.6 -2.12e+03 0.00527 0 0 0 World initStep - 1 -8.75 -40 -2.12e+03 0.00379 0.00148 1.62 1.62 World msc - 2 -8.72 -40.6 -2.12e+03 0.00187 0.00193 1.72 3.35 World eIoni - 3 -8.76 -40.5 -2.12e+03 0 0.00187 0.719 4.06 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.83 -38.6 -2.12e+03 0.00274 0 0 0 World initStep - 1 -9.13 -38.1 -2.12e+03 0 0.00274 1.27 1.27 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.86 -38.5 -2.17e+03 0.00146 0 0 0 World initStep - 1 -8.69 -38.4 -2.17e+03 0 0.00146 0.492 0.492 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.86 -38.5 -2.17e+03 0.0013 0 0 0 World initStep - 1 -8.93 -38.4 -2.17e+03 0 0.0013 0.411 0.411 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.87 -38.5 -2.18e+03 0.00319 0 0 0 World initStep - 1 -8.52 -39.1 -2.18e+03 0.00115 0.00204 1.48 1.48 World eIoni - 2 -8.6 -39 -2.18e+03 0 0.00115 0.346 1.83 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.02 -38.4 -2.46e+03 0.00141 0 0 0 World initStep - 1 -9.18 -38.5 -2.46e+03 0 0.00141 0.465 0.465 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.02 -38.4 -2.46e+03 0.00119 0 0 0 World initStep - 1 -8.89 -38.3 -2.46e+03 0 0.00119 0.362 0.362 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.03 -38.4 -2.49e+03 0.00153 0 0 0 World initStep - 1 -9.02 -38.1 -2.49e+03 0 0.00153 0.529 0.529 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.05 -38.3 -2.59e+03 0.00102 0 0 0 World initStep - 1 -9.13 -38.2 -2.59e+03 0 0.00102 0.291 0.291 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.81 161 -2.61e+03 50 0 0 0 World initStep - 1 -4.81 161 -2.54e+03 50 0.0149 69.9 69.9 World hIoni - 2 -4.81 161 -2.51e+03 50 0.00873 34.1 104 World hIoni - 3 -4.83 161 -2.48e+03 49.9 0.00511 30.3 134 World hIoni - 4 -4.89 161 -2.41e+03 49.9 0.0091 67.9 202 World hIoni - 5 -4.89 161 -2.41e+03 49.9 0.000596 5.27 207 World hIoni - 6 -4.9 161 -2.39e+03 49.9 0.00228 12.5 220 World hIoni - 7 -4.93 161 -2.34e+03 49.9 0.0116 49 269 World hIoni - 8 -4.94 161 -2.3e+03 49.9 0.00722 39.7 309 World hIoni - 9 -4.94 161 -2.29e+03 49.8 0.00396 15.7 324 World hIoni - 10 -4.94 161 -2.27e+03 49.8 0.00215 18 342 World hIoni - 11 -4.94 161 -2.25e+03 49.8 0.00327 22.3 365 World hIoni - 12 -4.93 161 -2.16e+03 49.8 0.0154 92.1 457 World hIoni - 13 -4.96 161 -2.09e+03 49.8 0.00965 69.3 526 World hIoni - 14 -4.96 161 -2.09e+03 49.8 8.93e-05 0.397 526 World hIoni - 15 -4.96 161 -2.08e+03 49.8 0.0004 4.51 531 World hIoni - 16 -5.02 162 -1.97e+03 49.7 0.0223 110 641 World hIoni - 17 -5.03 162 -1.94e+03 49.7 0.00554 32.1 673 World hIoni - 18 -5.03 162 -1.93e+03 49.7 0.00042 4.75 678 World hIoni - 19 -5.03 162 -1.91e+03 49.7 0.00427 26.2 704 World hIoni - 20 -5.04 162 -1.89e+03 49.7 0.00488 21.7 726 World hIoni - 21 -5.14 162 -1.7e+03 49.7 0.0378 184 910 World hIoni - 22 -5.17 162 -1.67e+03 49.7 0.00611 33.3 943 World hIoni - 23 -5.21 162 -1.63e+03 49.7 0.0047 37.8 981 World hIoni - 24 -5.24 162 -1.6e+03 49.6 0.00627 33.5 1.01e+03 World hIoni - 25 -5.37 162 -1.51e+03 49.6 0.0153 90 1.1e+03 World hIoni - 26 -5.55 163 -1.4e+03 49.6 0.0215 111 1.22e+03 World hIoni - 27 -5.63 163 -1.31e+03 49.6 0.0144 88.6 1.3e+03 World hIoni - 28 -5.64 163 -1.31e+03 49.6 2.58e-05 1.38 1.31e+03 World hIoni - 29 -5.68 163 -1.28e+03 49.6 0.00483 25.8 1.33e+03 World hIoni - 30 -5.71 163 -1.27e+03 49.6 0.000944 15.1 1.35e+03 World hIoni - 31 -5.72 163 -1.26e+03 49.6 0.000185 1.47 1.35e+03 World hIoni - 32 -5.78 163 -1.24e+03 49.6 0.0046 27.1 1.37e+03 World hIoni - 33 -5.8 163 -1.23e+03 49.6 0.00105 8.72 1.38e+03 World hIoni - 34 -5.86 163 -1.2e+03 49.6 0.00451 24.1 1.41e+03 World hIoni - 35 -5.89 163 -1.19e+03 49.5 0.00268 12.9 1.42e+03 World hIoni - 36 -5.98 163 -1.16e+03 49.5 0.00632 32.2 1.45e+03 World hIoni - 37 -6 163 -1.15e+03 49.5 0.00198 8.5 1.46e+03 World hIoni - 38 -6.04 164 -1.13e+03 49.5 0.00449 17.5 1.48e+03 World hIoni - 39 -6.14 164 -1.09e+03 49.5 0.00587 40.9 1.52e+03 World hIoni - 40 -6.35 164 -1.02e+03 49.5 0.0134 77.4 1.6e+03 World hIoni - 41 -6.4 164 -997 49.5 0.00349 18.7 1.62e+03 World hIoni - 42 -6.46 164 -975 49.5 0.0041 22 1.64e+03 World hIoni - 43 -6.49 164 -966 49.5 0.000688 8.93 1.65e+03 World hIoni - 44 -6.49 164 -964 49.5 0.000316 2.01 1.65e+03 World hIoni - 45 -6.63 164 -923 49.5 0.00912 41.2 1.69e+03 World hIoni - 46 -6.73 165 -897 49.4 0.00605 25.3 1.72e+03 World hIoni - 47 -6.97 165 -831 49.4 0.0124 66.2 1.78e+03 World hIoni - 48 -7.32 165 -738 49.4 0.0181 92.9 1.87e+03 World hIoni - 49 -7.45 166 -712 49.4 0.00435 25.9 1.9e+03 World hIoni - 50 -7.51 166 -700 49.4 0.00179 12.6 1.91e+03 World hIoni - 51 -7.59 166 -684 49.4 0.00211 15.7 1.93e+03 World hIoni - 52 -8.02 166 -598 49.4 0.0134 86.1 2.01e+03 World hIoni - 53 -8.15 166 -571 49.4 0.00506 26.9 2.04e+03 World hIoni - 54 -8.42 167 -516 49.4 0.0128 54.7 2.1e+03 World hIoni - 55 -8.46 167 -508 49.3 0.00074 8.75 2.1e+03 World hIoni - 56 -9.04 167 -397 49.3 0.0258 110 2.22e+03 World hIoni - 57 -9.06 167 -393 49.3 0.000444 3.77 2.22e+03 World hIoni - 58 -9.31 168 -333 49.3 0.0121 60.6 2.28e+03 World hIoni - 59 -9.45 168 -298 49.3 0.00658 35 2.31e+03 World hIoni - 60 -9.46 168 -295 49.3 0.000334 2.44 2.32e+03 World hIoni - 61 -9.47 168 -295 49.3 2.83e-05 0.758 2.32e+03 World hIoni - 62 -9.57 168 -271 49.3 0.0036 24 2.34e+03 World hIoni - 63 -9.64 168 -253 49.3 0.00523 18.1 2.36e+03 World hIoni - 64 -9.75 169 -229 49.3 0.00471 24 2.38e+03 World hIoni - 65 -9.91 169 -193 49.2 0.00774 35.1 2.42e+03 cloudPV CoupledTransportation - 66 -9.91 169 -193 48.6 0.618 0.46 2.42e+03 World CoupledTransportation - 67 -9.91 169 -193 48.6 0 0.168 2.42e+03 World hIoni - 68 -9.85 169 -173 48.6 0.00549 20.3 2.44e+03 World hIoni - 69 -9.69 170 -113 48.6 0.0121 59.9 2.5e+03 World hIoni - 70 -9.52 170 -49.9 48.6 0.0101 62.8 2.56e+03 World hIoni - 71 -9.5 170 -42.7 48.6 0.000909 7.18 2.57e+03 World hIoni - 72 -9.47 170 -31.2 48.6 0.00267 11.6 2.58e+03 World hIoni - 73 -9.2 171 62.4 48.6 0.0219 93.6 2.67e+03 World hIoni - 74 -8.86 172 184 48.5 0.0234 122 2.8e+03 World hIoni - 75 -8.78 172 216 48.5 0.0074 31.7 2.83e+03 World hIoni - 76 -8.61 173 291 48.5 0.0155 75.3 2.9e+03 cloudPV CoupledTransportation - 77 -8.61 173 293 46.6 1.94 1.53 2.91e+03 World CoupledTransportation - 78 -8.54 173 303 46.6 0.0021 10.4 2.92e+03 World hIoni - 79 -8.32 173 339 46.6 0.00757 35.4 2.95e+03 World hIoni - 80 -8.01 173 393 46.6 0.00946 54.1 3.01e+03 World hIoni - 81 -7.95 173 405 46.5 0.00176 12.5 3.02e+03 World hIoni - 82 -7.82 173 429 46.5 0.00382 23.4 3.04e+03 World hIoni - 83 -7.4 174 502 46.5 0.0127 73.8 3.11e+03 World hIoni - 84 -6.99 174 568 46.5 0.0127 65.5 3.18e+03 World hIoni - 85 -6.88 174 586 46.5 0.00291 18 3.2e+03 World hIoni - 86 -6.77 174 605 46.5 0.00517 19.2 3.22e+03 World hIoni - 87 -6.33 175 684 46.5 0.0179 78.5 3.3e+03 World hIoni - 88 -5.88 175 789 46.4 0.0182 106 3.4e+03 World hIoni - 89 -5.71 175 822 46.4 0.0077 33 3.43e+03 World hIoni - 90 -5.1 176 934 46.4 0.0196 112 3.55e+03 World hIoni - 91 -5.01 176 948 46.4 0.00188 14.4 3.56e+03 World hIoni - 92 -4.92 176 960 46.4 0.00331 11.8 3.57e+03 World hIoni - 93 -4.9 176 963 46.4 0.000734 3.2 3.58e+03 World hIoni - 94 -4.61 176 1e+03 46.4 0.0109 41 3.62e+03 World hIoni - 95 -4.58 176 1.01e+03 46.4 0.000542 4.8 3.62e+03 World hIoni - 96 -4.33 176 1.04e+03 46.4 0.00606 34.8 3.66e+03 World hIoni - 97 -3.86 177 1.11e+03 46.4 0.0162 70.9 3.73e+03 World hIoni - 98 -2.82 178 1.27e+03 46.3 0.0309 151 3.88e+03 World hIoni - 99 -2.76 178 1.27e+03 46.3 0.00135 8.01 3.89e+03 World hIoni - 100 -2.54 178 1.3e+03 46.3 0.00506 30.5 3.92e+03 World hIoni - 101 -2.52 178 1.31e+03 46.3 0.000303 2.39 3.92e+03 World hIoni - 102 -2.33 178 1.33e+03 46.3 0.00379 27.3 3.95e+03 World hIoni - 103 -2.33 178 1.33e+03 46.3 0 0.193 3.95e+03 World hIoni - 104 -2.21 178 1.35e+03 46.3 0.00324 17.6 3.96e+03 World hIoni - 105 -2.02 178 1.38e+03 46.3 0.00618 29.7 3.99e+03 World hIoni - 106 -1.76 179 1.42e+03 46.3 0.00966 41 4.03e+03 World hIoni - 107 -1.7 179 1.43e+03 46.3 0.00122 8.28 4.04e+03 World hIoni - 108 -0.751 180 1.56e+03 46.3 0.0248 135 4.18e+03 World hIoni - 109 -0.746 180 1.57e+03 46.2 0.00025 0.673 4.18e+03 World hIoni - 110 -0.708 180 1.57e+03 46.2 0.00102 5.19 4.18e+03 World hIoni - 111 -0.529 180 1.59e+03 46.2 0.00666 23.8 4.21e+03 World hIoni - 112 0.0788 181 1.67e+03 46.2 0.0148 79.9 4.29e+03 World hIoni - 113 0.0889 181 1.68e+03 46.2 0.000158 1.18 4.29e+03 World hIoni - 114 0.544 181 1.73e+03 46.2 0.00991 53.3 4.34e+03 World hIoni - 115 0.956 182 1.78e+03 46.2 0.00878 51.7 4.39e+03 World hIoni - 116 0.995 182 1.79e+03 46.2 0.00201 5.73 4.4e+03 World hIoni - 117 1.35 182 1.84e+03 46.2 0.00938 51.4 4.45e+03 World hIoni - 118 1.38 182 1.84e+03 46.2 0.00132 5.32 4.46e+03 World hIoni - 119 2.37 183 1.99e+03 46.1 0.0291 148 4.6e+03 World hIoni - 120 2.58 183 2.02e+03 46.1 0.00646 29.5 4.63e+03 World hIoni - 121 2.61 184 2.03e+03 46.1 0.00152 5.02 4.64e+03 World hIoni - 122 2.62 184 2.03e+03 46.1 0.000308 0.716 4.64e+03 World hIoni - 123 3.26 184 2.11e+03 46.1 0.014 85.6 4.72e+03 World hIoni - 124 3.26 184 2.11e+03 46.1 0.000252 0.802 4.73e+03 World hIoni - 125 3.43 184 2.14e+03 46.1 0.00351 25.5 4.75e+03 World hIoni - 126 3.72 185 2.19e+03 46.1 0.00936 49 4.8e+03 World hIoni - 127 3.75 185 2.19e+03 46.1 0.000501 4.88 4.81e+03 cloudPV CoupledTransportation - 128 3.76 185 2.19e+03 44.5 1.53 1.21 4.81e+03 World CoupledTransportation - 129 3.89 185 2.22e+03 44.5 0.00456 28.4 4.83e+03 World hIoni - 130 4.54 186 2.31e+03 44.5 0.0161 87.3 4.92e+03 World hIoni - 131 5.23 187 2.39e+03 44.5 0.0133 77.1 5e+03 World hIoni - 132 5.38 188 2.41e+03 44.5 0.00466 18.6 5.02e+03 World hIoni - 133 5.7 188 2.44e+03 44.5 0.0108 37.9 5.06e+03 World hIoni - 134 6.14 189 2.49e+03 44.5 0.00785 47.5 5.1e+03 World hIoni - 135 6.54 189 2.54e+03 44.5 0.00815 44.6 5.15e+03 World hIoni - 136 6.76 189 2.56e+03 44.4 0.00436 24.3 5.17e+03 World hIoni - 137 7.06 190 2.59e+03 44.4 0.00416 32.3 5.2e+03 World hIoni - 138 7.14 190 2.6e+03 44.4 0.0034 8.37 5.21e+03 detectorPV CoupledTransportation - 139 7.16 190 2.6e+03 38.7 5.75 1.92 5.21e+03 detectorPV hIoni - 140 7.24 190 2.6e+03 33.6 5.09 1.54 5.22e+03 detectorPV hIoni - 141 7.33 190 2.6e+03 29.3 4.29 1.23 5.22e+03 detectorPV hIoni - 142 7.4 190 2.61e+03 25 4.26 1 5.22e+03 detectorPV hIoni - 143 7.43 190 2.61e+03 21.4 3.6 0.796 5.22e+03 detectorPV hIoni - 144 7.49 190 2.61e+03 18 3.42 0.643 5.22e+03 detectorPV hIoni - 145 7.55 190 2.61e+03 14.9 3.17 0.513 5.22e+03 detectorPV hIoni - 146 7.6 190 2.61e+03 11.9 2.95 0.407 5.22e+03 detectorPV hIoni - 147 7.63 190 2.61e+03 9.07 2.83 0.322 5.22e+03 detectorPV hIoni - 148 7.65 190 2.61e+03 6.35 2.72 0.252 5.22e+03 detectorPV hIoni - 149 7.66 190 2.61e+03 3.44 2.91 0.19 5.22e+03 detectorPV hIoni - 150 7.66 190 2.61e+03 0 3.44 0.103 5.22e+03 detectorPV hIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.06 190 2.59e+03 0.00104 0 0 0 World initStep - 1 7.17 190 2.59e+03 0 0.00104 0.299 0.299 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.76 189 2.56e+03 0.0169 0 0 0 World initStep - 1 6.14 189 2.56e+03 0.0145 7.13e-05 0.704 0.704 World eIoni - 2 1.22 190 2.56e+03 0.0125 0.00195 6.77 7.47 World eIoni - 3 -1.43 191 2.57e+03 0.0104 0.00215 5.55 13 World eIoni - 4 -2.93 192 2.57e+03 0.00895 0.00143 4.37 17.4 World eIoni - 5 -4.39 192 2.57e+03 0.00693 0.00203 3.69 21.1 World eIoni - 6 -4.61 193 2.57e+03 0.00531 0.00161 2.84 23.9 World eIoni - 7 -3.52 192 2.57e+03 0.00329 0.00202 2.25 26.2 World eIoni - 8 -3.69 191 2.57e+03 0.00233 0.000958 0.59 26.8 World eIoni - 9 -4.07 191 2.57e+03 0 0.00233 1.02 27.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 109 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.14 189 2.56e+03 0.00239 0 0 0 World initStep - 1 6.05 189 2.56e+03 0.00113 0.00126 1.06 1.06 World eIoni - 2 6.16 189 2.56e+03 0 0.00113 0.335 1.4 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.54 189 2.54e+03 0.00189 0 0 0 World initStep - 1 6.79 189 2.54e+03 0 0.00189 0.729 0.729 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.14 189 2.49e+03 0.00118 0 0 0 World initStep - 1 6.19 189 2.49e+03 0 0.00118 0.358 0.358 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.7 188 2.44e+03 0.0024 0 0 0 World initStep - 1 5.33 188 2.44e+03 0 0.0024 1.07 1.07 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.38 188 2.41e+03 0.0015 0 0 0 World initStep - 1 5.56 187 2.41e+03 0 0.0015 0.513 0.513 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.23 187 2.39e+03 0.0021 0 0 0 World initStep - 1 5.19 187 2.39e+03 0 0.0021 0.867 0.867 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.89 185 2.22e+03 0.00128 0 0 0 World initStep - 1 3.93 185 2.22e+03 0 0.00128 0.404 0.404 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.72 185 2.19e+03 0.00429 0 0 0 World initStep - 1 3.31 184 2.19e+03 0.00316 0.00113 1.9 1.9 World eIoni - 2 3.28 183 2.19e+03 0 0.00316 1.47 3.37 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.43 184 2.14e+03 0.00637 0 0 0 World initStep - 1 4.42 183 2.14e+03 0.00381 0.00256 2.63 2.63 World eIoni - 2 4.67 183 2.14e+03 0 0.00381 1.73 4.36 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.26 184 2.11e+03 0.00163 0 0 0 World initStep - 1 3.14 184 2.11e+03 0 0.00163 0.582 0.582 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.61 184 2.03e+03 0.00219 0 0 0 World initStep - 1 2.78 183 2.03e+03 0 0.00219 0.925 0.925 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.58 183 2.02e+03 0.00439 0 0 0 World initStep - 1 1.46 184 2.02e+03 0.00231 0.00209 1.94 1.94 World eIoni - 2 1.12 184 2.02e+03 0 0.00231 1.01 2.94 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.37 183 1.99e+03 0.00257 0 0 0 World initStep - 1 2.55 184 1.99e+03 0 0.00257 1.17 1.17 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.38 182 1.84e+03 0.00838 0 0 0 World initStep - 1 -1.07 180 1.84e+03 0.00739 0.000995 3.43 3.43 World eIoni - 2 -2.82 179 1.84e+03 0.00547 0.00192 3.02 6.45 World eIoni - 3 -4.14 178 1.84e+03 0.00183 0.00364 2.31 8.76 World eIoni - 4 -4.3 178 1.84e+03 0 0.00183 0.696 9.46 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.35 182 1.84e+03 0.00143 0 0 0 World initStep - 1 1.52 182 1.84e+03 0 0.00143 0.479 0.479 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.995 182 1.79e+03 0.00229 0 0 0 World initStep - 1 0.817 182 1.79e+03 0 0.00229 0.992 0.992 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.956 182 1.78e+03 0.00154 0 0 0 World initStep - 1 0.886 181 1.78e+03 0 0.00154 0.536 0.536 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.544 181 1.73e+03 0.00209 0 0 0 World initStep - 1 0.36 181 1.73e+03 0 0.00209 0.862 0.862 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0889 181 1.68e+03 0.0027 0 0 0 World initStep - 1 0.398 180 1.68e+03 0 0.0027 1.25 1.25 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0788 181 1.67e+03 0.00105 0 0 0 World initStep - 1 0.131 181 1.67e+03 0 0.00105 0.301 0.301 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.529 180 1.59e+03 0.0201 0 0 0 World initStep - 1 1.64 170 1.6e+03 0.0173 0.00283 11.1 11.1 World eIoni - 2 4.38 166 1.6e+03 0.00862 0.00122 5.77 16.8 World eIoni - 3 4.53 163 1.6e+03 0.00485 0.00377 3.54 20.4 World eIoni - 4 4.66 162 1.6e+03 0.00322 0.00163 2.1 22.5 World eIoni - 5 5.19 162 1.6e+03 0 0.00322 1.5 24 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 89 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.38 166 1.6e+03 0.00743 0 0 0 World initStep - 1 6.43 166 1.6e+03 0.00597 0.00146 3.04 3.04 World eIoni - 2 7.69 165 1.6e+03 0.00415 0.00183 2.49 5.52 World eIoni - 3 8.27 166 1.6e+03 0.00252 0.00162 1.85 7.37 World eIoni - 4 7.96 166 1.6e+03 0 0.00252 1.15 8.52 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.708 180 1.57e+03 0.00261 0 0 0 World initStep - 1 -1.13 180 1.57e+03 0.00195 0.000657 0.76 0.76 World eIoni - 2 -1.44 180 1.57e+03 0 0.00195 0.77 1.53 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.746 180 1.57e+03 0.00125 0 0 0 World initStep - 1 -0.707 180 1.57e+03 0 0.00125 0.389 0.389 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.7 179 1.43e+03 0.00159 0 0 0 World initStep - 1 -1.76 179 1.43e+03 0 0.00159 0.559 0.559 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.02 178 1.38e+03 0.0136 0 0 0 World initStep - 1 1.33 179 1.38e+03 0.0128 0.000831 4.44 4.44 World msc - 2 3.41 178 1.39e+03 0.0109 0.00181 4.6 9.04 World msc - 3 2.89 176 1.39e+03 0.0101 0.000882 3.82 12.9 World msc - 4 3.14 173 1.39e+03 0.0089 0.00117 4.21 17.1 World eIoni - 5 1.9 170 1.39e+03 0.00828 0.000621 3.66 20.7 World eIoni - 6 -0.535 169 1.39e+03 0.00721 0.00106 3.39 24.1 World eIoni - 7 -0.805 170 1.39e+03 0.00456 0.000374 0.868 25 World eIoni - 8 -0.808 171 1.39e+03 0.00309 0.00147 2 27 World eIoni - 9 -1.18 172 1.39e+03 0 0.00309 1.44 28.4 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 85 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.805 170 1.39e+03 0.00227 0 0 0 World initStep - 1 -1.08 170 1.39e+03 0 0.00227 0.983 0.983 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.21 178 1.35e+03 0.00112 0 0 0 World initStep - 1 -2.25 178 1.35e+03 0 0.00112 0.334 0.334 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.33 178 1.33e+03 0.00134 0 0 0 World initStep - 1 -2.48 178 1.33e+03 0 0.00134 0.434 0.434 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.52 178 1.31e+03 0.00245 0 0 0 World initStep - 1 -2.78 178 1.31e+03 0 0.00245 1.1 1.1 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.82 178 1.27e+03 0.00337 0 0 0 World initStep - 1 -2.94 179 1.27e+03 0.00109 0.00227 1.56 1.56 World eIoni - 2 -3.06 179 1.27e+03 0 0.00109 0.321 1.88 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.86 177 1.11e+03 0.00112 0 0 0 World initStep - 1 -3.81 177 1.11e+03 0 0.00112 0.334 0.334 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.33 176 1.04e+03 0.00405 0 0 0 World initStep - 1 -3.39 176 1.04e+03 0.00189 0.00216 1.82 1.82 World eIoni - 2 -3.12 176 1.04e+03 0 0.00189 0.734 2.55 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.58 176 1.01e+03 0.00178 0 0 0 World initStep - 1 -4.77 176 1.01e+03 0 0.00178 0.666 0.666 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.61 176 1e+03 0.00206 0 0 0 World initStep - 1 -4.73 176 1e+03 0 0.00206 0.841 0.841 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.92 176 960 0.00146 0 0 0 World initStep - 1 -5.1 176 960 0 0.00146 0.492 0.492 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.01 176 948 0.00258 0 0 0 World initStep - 1 -5.22 176 948 0 0.00258 1.18 1.18 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.1 176 934 0.0012 0 0 0 World initStep - 1 -5.01 176 934 0 0.0012 0.369 0.369 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.71 175 822 0.00608 0 0 0 World initStep - 1 -4.89 177 823 0.00373 0.00235 2.52 2.52 World eIoni - 2 -5.35 177 823 0 0.00373 1.7 4.22 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.88 175 789 0.00155 0 0 0 World initStep - 1 -5.69 175 789 0 0.00155 0.541 0.541 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.33 175 684 0.00876 0 0 0 World initStep - 1 -4.25 173 684 0.00701 0.00174 3.6 3.6 World eIoni - 2 -3.05 171 685 0.00572 0.00129 2.87 6.47 World eIoni - 3 -1.64 170 685 0.00429 0.00144 2.4 8.87 World eIoni - 4 -1.17 170 684 0.00302 0.00127 1.9 10.8 World eIoni - 5 -1.5 170 684 0.00128 0.00174 1.41 12.2 World eIoni - 6 -1.62 170 684 0 0.00128 0.402 12.6 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.77 174 605 0.00175 0 0 0 World initStep - 1 -6.87 174 605 0 0.00175 0.651 0.651 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.88 174 586 0.0012 0 0 0 World initStep - 1 -7.01 174 586 0 0.0012 0.367 0.367 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.99 174 568 0.00145 0 0 0 World initStep - 1 -6.86 174 568 0 0.00145 0.488 0.488 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.4 174 502 0.00102 0 0 0 World initStep - 1 -7.41 174 502 0 0.00102 0.289 0.289 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.82 173 429 0.0118 0 0 0 World initStep - 1 -6.39 173 430 0.00942 0.000752 1.89 1.89 World eIoni - 2 -5.25 170 430 0.00837 0.00105 3.67 5.55 World msc - 3 -3.89 168 429 0.00684 0.00154 3.43 8.98 World eIoni - 4 -2.59 167 430 0.00503 0.0018 2.8 11.8 World eIoni - 5 -3.86 167 430 0.00412 0.000913 2.16 13.9 World eIoni - 6 -4.61 166 430 0.00206 0.00206 1.84 15.8 World eIoni - 7 -4.33 166 429 0 0.00206 0.841 16.6 World eIoni + 0 -32.1 -20.2 936 0.0588 0 0 0 World initStep + 1 -61.6 2.05 983 0.0527 0.00618 68.8 68.8 World eIoni + 2 -80.3 9.89 1.01e+03 0.049 0.00366 38.7 108 cloudPV CoupledTransportation + 3 -80.3 9.89 1.01e+03 0.049 0 0 108 World CoupledTransportation + 4 -80.8 12.7 1.03e+03 0.0469 0.00214 18.9 126 World eIoni + 5 -96.3 -1.88 1.07e+03 0.043 0.00387 46.2 173 World eIoni + 6 -115 -30.2 1.07e+03 0.0384 0.00464 39.7 212 World eIoni + 7 -133 -47.6 1.09e+03 0.0348 0.00355 32.6 245 World eIoni + 8 -147 -55.7 1.11e+03 0.0302 0.00458 27.5 272 World eIoni + 9 -153 -62.7 1.12e+03 0.0267 0.00348 21.6 294 World eIoni + 10 -154 -59.8 1.14e+03 0.0242 0.00259 17.6 312 World eIoni + 11 -146 -50.1 1.15e+03 0.0215 0.00263 14.9 327 World eIoni + 12 -139 -45.6 1.15e+03 0.0188 0.00276 12.3 339 World eIoni + 13 -134 -38.5 1.16e+03 0.0173 0.00151 9.94 349 World eIoni + 14 -135 -30.5 1.16e+03 0.0157 0.00152 8.75 358 World eIoni + 15 -138 -24 1.16e+03 0.0126 0.00318 7.63 365 World eIoni + 16 -138 -19.1 1.16e+03 0.011 0.00159 5.57 371 World eIoni + 17 -138 -18.6 1.16e+03 0.00925 0.000265 0.53 371 World eIoni + 18 -139 -16 1.16e+03 0.00736 0.00189 3.82 375 World eIoni + 19 -140 -15.1 1.16e+03 0.0048 0.000255 1.29 376 World eIoni + 20 -141 -14.5 1.16e+03 0.00365 0.00115 2.08 379 World eIoni + 21 -141 -14.5 1.16e+03 0.00256 0 0.0295 379 World eIoni + 22 -142 -14.5 1.16e+03 0 0.00256 1.17 380 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 114, Parent ID = 66 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.39 173 430 0.00159 0 0 0 World initStep - 1 -6.34 173 430 0 0.00159 0.559 0.559 World eIoni + 0 -141 -14.5 1.16e+03 0.00109 0 0 0 World initStep + 1 -141 -14.5 1.16e+03 0 0.00109 0.317 0.317 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 66 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -140 -15.1 1.16e+03 0.0023 0 0 0 World initStep + 1 -140 -14.9 1.16e+03 0 0.0023 1 1 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 66 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -138 -18.6 1.16e+03 0.00146 0 0 0 World initStep + 1 -138 -18.5 1.16e+03 0 0.00146 0.494 0.494 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.95 173 405 0.00138 0 0 0 World initStep - 1 -7.9 173 405 0 0.00138 0.453 0.453 World eIoni + 0 -31.6 -20.1 924 0.00192 0 0 0 World initStep + 1 -31.3 -20.1 924 0 0.00192 0.75 0.75 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.01 173 393 0.00192 0 0 0 World initStep - 1 -7.87 173 393 0 0.00192 0.749 0.749 World eIoni + 0 -31.6 -20.1 922 0.00224 0 0 0 World initStep + 1 -32 -20.2 922 0 0.00224 0.957 0.957 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.32 173 339 0.00233 0 0 0 World initStep - 1 -8.16 173 339 0 0.00233 1.02 1.02 World eIoni + 0 -29 -19.6 856 0.00244 0 0 0 World initStep + 1 -29.4 -19.4 856 0 0.00244 1.09 1.09 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.54 173 303 0.00229 0 0 0 World initStep - 1 -8.55 172 303 0 0.00229 0.995 0.995 World eIoni + 0 -28.3 -19.4 838 0.00112 0 0 0 World initStep + 1 -28.2 -19.5 838 0 0.00112 0.333 0.333 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.78 172 216 0.00185 0 0 0 World initStep - 1 -8.59 172 216 0 0.00185 0.705 0.705 World eIoni + 0 -27.5 -19.3 819 0.00113 0 0 0 World initStep + 1 -27.6 -19.2 819 0 0.00113 0.336 0.336 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.86 172 184 0.00134 0 0 0 World initStep - 1 -8.94 172 184 0 0.00134 0.434 0.434 World eIoni + 0 -26.3 -19 788 0.00113 0 0 0 World initStep + 1 -26.2 -19 788 0 0.00113 0.335 0.335 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.2 171 62.4 0.00236 0 0 0 World initStep - 1 -9.61 171 62.5 0 0.00236 1.04 1.04 World eIoni + 0 -25.7 -18.8 772 0.00173 0 0 0 World initStep + 1 -25.9 -18.8 772 0 0.00173 0.638 0.638 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.47 170 -31.2 0.00181 0 0 0 World initStep - 1 -9.42 170 -31.1 0 0.00181 0.682 0.682 World eIoni + 0 -23.4 -18.3 716 0.0453 0 0 0 World initStep + 1 -44.1 -14 749 0.0393 0.00603 43.5 43.5 World eIoni + 2 -38.7 -7.73 778 0.0367 0.00259 33.9 77.4 World eIoni + 3 -27.1 7.5 799 0.0321 0.00459 30.1 108 World eIoni + 4 -18.3 14.3 819 0.0267 0.00541 24 132 World eIoni + 5 -22.3 17.3 833 0.0211 0.00554 17.5 149 World eIoni + 6 -25.7 19.3 841 0.0183 0.00116 9.5 159 World eIoni + 7 -30.1 22.9 848 0.0169 0.00142 9.59 168 World eIoni + 8 -30.6 25.2 856 0.0141 0.00282 8.49 177 World eIoni + 9 -28.8 25.8 862 0.01 0.00405 6.51 183 World eIoni + 10 -29.3 25.6 865 0.00876 0.00128 4.2 187 World eIoni + 11 -30.3 24.8 866 0.0068 0.000953 1.59 189 World eIoni + 12 -30.3 24.7 869 0.00498 0.00182 2.79 192 World eIoni + 13 -29.2 25.4 868 0.00295 0.00204 2.14 194 World eIoni + 14 -29.2 25.8 869 0 0.00295 1.37 195 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 58 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30.3 24.8 866 0.00101 0 0 0 World initStep + 1 -30.4 24.7 866 0 0.00101 0.286 0.286 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 58 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -25.7 19.3 841 0.00165 0 0 0 World initStep + 1 -25.6 19.5 842 0 0.00165 0.595 0.595 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.52 170 -49.9 0.0015 0 0 0 World initStep - 1 -9.58 170 -49.9 0 0.0015 0.514 0.514 World eIoni + 0 -23.3 -18.3 715 0.00366 0 0 0 World initStep + 1 -24.2 -18.4 715 0.00233 0.00133 1.67 1.67 World eIoni + 2 -24.5 -18.2 715 0 0.00233 1.02 2.7 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.69 170 -113 0.00157 0 0 0 World initStep - 1 -9.9 170 -113 0 0.00157 0.552 0.552 World eIoni + 0 -23.3 -18.3 713 0.0017 0 0 0 World initStep + 1 -23.4 -18.1 713 0 0.0017 0.622 0.622 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.85 169 -173 0.0021 0 0 0 World initStep - 1 -9.55 169 -173 0 0.0021 0.867 0.867 World eIoni + 0 -22.2 -18 688 0.00107 0 0 0 World initStep + 1 -22.1 -18 688 0 0.00107 0.312 0.312 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.91 169 -193 0.00112 0 0 0 World initStep - 1 -9.89 169 -193 0.00111 1.5e-05 0.0308 0.0308 World msc - 2 -9.87 169 -193 0.00111 0 0.0278 0.0586 World msc - 3 -9.86 169 -193 0.00111 0 0.0149 0.0736 cloudPV CoupledTransportation - 4 -9.86 169 -193 0.00105 5.61e-05 2.88e-06 0.0736 cloudPV msc - 5 -9.86 169 -193 0 0.00105 2.88e-06 0.0736 cloudPV msc + 0 -21.6 -17.9 672 0.00167 0 0 0 World initStep + 1 -21.6 -17.6 672 0 0.00167 0.601 0.601 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.75 169 -229 0.000994 0 0 0 World initStep - 1 -9.78 169 -229 0 0.000994 0.28 0.28 World eIoni + 0 -19.1 -17.3 615 0.00116 0 0 0 World initStep + 1 -19.2 -17.2 615 0 0.00116 0.352 0.352 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.64 168 -253 0.00487 0 0 0 World initStep - 1 -9.04 167 -252 0.00222 0.00265 2.1 2.1 World eIoni - 2 -8.67 167 -252 0 0.00222 0.945 3.05 World eIoni + 0 -18.6 -17.1 604 0.00202 0 0 0 World initStep + 1 -18.9 -17.3 604 0 0.00202 0.812 0.812 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.57 168 -271 0.007 0 0 0 World initStep - 1 -11.3 167 -270 0.00582 0.00118 2.87 2.87 World eIoni - 2 -13 167 -270 0.00408 0.00173 2.43 5.3 World eIoni - 3 -13.2 167 -270 0.00264 4.42e-05 0.265 5.56 World eIoni - 4 -13.2 168 -270 0 0.00264 1.22 6.78 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13.2 167 -270 0.0014 0 0 0 World initStep - 1 -13.2 167 -270 0 0.0014 0.46 0.46 World eIoni + 0 -18.6 -17.1 604 0.00924 0 0 0 World initStep + 1 -20.9 -18.9 605 0.00804 0.00121 3.82 3.82 World eIoni + 2 -21 -21.2 606 0.00642 0.00162 3.29 7.1 World eIoni + 3 -22.1 -20.7 604 0.00393 0.00249 2.65 9.75 World eIoni + 4 -22.8 -20.5 604 0 0.00393 1.77 11.5 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.46 168 -295 0.00132 0 0 0 World initStep - 1 -9.49 168 -295 0 0.00132 0.421 0.421 World eIoni + 0 -18.1 -17 592 0.00142 0 0 0 World initStep + 1 -18.2 -17 592 0 0.00142 0.472 0.472 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.45 168 -298 0.000994 0 0 0 World initStep - 1 -9.52 168 -298 0 0.000994 0.28 0.28 World eIoni + 0 -17.2 -16.8 574 0.00559 0 0 0 World initStep + 1 -17.7 -18.3 574 0.00434 0.00125 2.35 2.35 World eIoni + 2 -18.8 -18.4 574 0.00171 0.00263 1.92 4.27 World eIoni + 3 -19 -18.3 574 0 0.00171 0.628 4.9 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.31 168 -333 0.0104 0 0 0 World initStep - 1 -9.6 167 -332 0.00886 0.000547 0.797 0.797 World eIoni - 2 -9.73 165 -331 0.00651 0.00235 3.64 4.44 World eIoni - 3 -9.3 163 -330 0.00466 0.00185 2.68 7.12 World eIoni - 4 -9.33 163 -330 0.00258 0 0.0318 7.15 World eIoni - 5 -9.53 164 -330 0.00103 0.00155 1.18 8.33 World eIoni - 6 -9.53 164 -330 0 0.00103 0.295 8.63 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.33 163 -330 0.00207 0 0 0 World initStep - 1 -9.64 163 -330 0 0.00207 0.847 0.847 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.6 167 -332 0.00103 0 0 0 World initStep - 1 -9.71 167 -332 0 0.00103 0.294 0.294 World eIoni + 0 -14.6 -16.1 518 0.00882 0 0 0 World initStep + 1 -11.8 -16.5 518 0.00713 0.00169 3.09 3.09 World msc + 2 -10.2 -17.5 517 0.00558 0.00155 2.92 6 World eIoni + 3 -10.6 -18.4 518 0.00441 0.00116 2.35 8.35 World eIoni + 4 -10.8 -19.2 519 0.00214 0.00227 1.94 10.3 World eIoni + 5 -10.7 -19 519 0 0.00214 0.892 11.2 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.06 167 -393 0.00244 0 0 0 World initStep - 1 -9.46 168 -393 0 0.00244 1.09 1.09 World eIoni + 0 -13.8 -15.9 500 0.00142 0 0 0 World initStep + 1 -13.9 -15.8 500 0 0.00142 0.471 0.471 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.04 167 -397 0.0016 0 0 0 World initStep - 1 -8.83 167 -397 0 0.0016 0.563 0.563 World eIoni + 0 -13.5 -15.8 493 0.00495 0 0 0 World initStep + 1 -14.4 -16.7 493 0.0033 0.00165 2.13 2.13 World eIoni + 2 -14.4 -16.3 493 0.00155 0.00175 1.53 3.66 World eIoni + 3 -14.5 -16.2 493 0 0.00155 0.54 4.2 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.46 167 -508 0.0127 0 0 0 World initStep - 1 -5.3 169 -506 0.0104 0.00226 4.79 4.79 World msc - 2 -2.13 171 -505 0.00692 0.00348 4.38 9.17 World eIoni - 3 -0.501 173 -505 0.00434 0.00258 2.84 12 World eIoni - 4 -1.08 173 -504 0.00335 0.000991 1.92 13.9 World eIoni - 5 -0.508 174 -505 0 0.00335 1.55 15.5 World eIoni + 0 -12.1 -15.5 463 0.00101 0 0 0 World initStep + 1 -12.1 -15.4 464 0 0.00101 0.285 0.285 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.42 167 -516 0.00292 0 0 0 World initStep - 1 -8.69 167 -516 0 0.00292 1.36 1.36 World eIoni + 0 -6.17 -13.9 335 0.00201 0 0 0 World initStep + 1 -6.45 -13.8 335 0 0.00201 0.804 0.804 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.15 166 -571 0.00255 0 0 0 World initStep - 1 -8.09 166 -571 0.00169 0.000868 1.16 1.16 World eIoni - 2 -7.85 166 -571 0 0.00169 0.613 1.78 World eIoni + 0 -2.71 -13 258 0.00588 0 0 0 World initStep + 1 -3.16 -11.5 259 0.00395 0.00193 2.45 2.45 World eIoni + 2 -3.17 -11 258 0.00134 0.00261 0.73 3.18 World eIoni + 3 -3.13 -10.8 258 0 0.00134 0.434 3.62 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.02 166 -598 0.00261 0 0 0 World initStep - 1 -7.85 166 -598 0 0.00261 1.2 1.2 World eIoni + 0 -1.13 -12.7 223 0.00384 0 0 0 World initStep + 1 -2.03 -12.4 223 0 0.00384 1.74 1.74 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.51 166 -700 0.00524 0 0 0 World initStep - 1 -7.03 164 -699 0.0033 0.00193 2.23 2.23 World eIoni - 2 -6.88 164 -699 0 0.0033 1.53 3.76 World eIoni + 0 1.44 -12 167 0.00177 0 0 0 World initStep + 1 1.23 -11.9 167 0 0.00177 0.662 0.662 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.45 166 -712 0.00107 0 0 0 World initStep - 1 -7.37 166 -712 0 0.00107 0.312 0.312 World eIoni + 0 3.79 -11.4 116 0.00111 0 0 0 World initStep + 1 3.66 -11.5 116 0 0.00111 0.329 0.329 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.97 165 -831 0.00135 0 0 0 World initStep - 1 -7.1 165 -831 0 0.00135 0.435 0.435 World eIoni + 0 5.34 -11 82.4 0.00165 0 0 0 World initStep + 1 5.34 -10.8 82.4 0 0.00165 0.592 0.592 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.73 165 -897 0.00261 0 0 0 World initStep - 1 -7.2 164 -897 0 0.00261 1.2 1.2 World eIoni + 0 6.78 -10.6 51.2 0.00174 0 0 0 World initStep + 1 6.71 -10.4 51.2 0 0.00174 0.645 0.645 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.63 164 -923 0.008 0 0 0 World initStep - 1 -5.79 167 -922 0.00681 0.0012 3.27 3.27 World eIoni - 2 -4.37 168 -922 0.00564 0.00117 2.79 6.06 World eIoni - 3 -3.73 168 -921 0.00378 0.00185 2.37 8.43 World eIoni - 4 -3.9 169 -920 0.00226 0.000375 1.07 9.5 World eIoni - 5 -3.69 169 -920 0 0.00226 0.975 10.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.9 169 -920 0.00115 0 0 0 World initStep - 1 -3.85 168 -920 0 0.00115 0.344 0.344 World eIoni + 0 7.61 -10.4 33.5 0.00156 0 0 0 World initStep + 1 7.8 -10.5 33.5 0 0.00156 0.547 0.547 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.49 164 -964 0.0185 0 0 0 World initStep - 1 -4.19 158 -962 0.0115 0.00192 6.96 6.96 World eIoni - 2 -1.04 157 -961 0.00832 0.00314 4.94 11.9 World eIoni - 3 0.503 154 -960 0.00689 0.00143 3.41 15.3 World eIoni - 4 -0.0221 153 -959 0.00581 0.00108 2.83 18.1 World eIoni - 5 -1.1 153 -958 0.00449 0.00132 2.43 20.6 World eIoni - 6 -2.27 153 -958 0.0021 0.0024 1.97 22.5 World eIoni - 7 -2.52 153 -958 0 0.0021 0.862 23.4 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 36 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.19 158 -962 0.00516 0 0 0 World initStep - 1 -4.8 157 -962 0.00266 0.0025 2.2 2.2 World eIoni - 2 -5.16 157 -962 0 0.00266 1.22 3.42 World eIoni + 0 15.7 -8.36 -145 0.00189 0 0 0 World initStep + 1 16 -8.39 -145 0 0.00189 0.732 0.732 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.49 164 -966 0.00106 0 0 0 World initStep - 1 -6.53 164 -966 0 0.00106 0.305 0.305 World eIoni + 0 18.6 -7.59 -212 0.00145 0 0 0 World initStep + 1 18.7 -7.74 -212 0 0.00145 0.487 0.487 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.46 164 -975 0.00677 0 0 0 World initStep - 1 -5.48 164 -975 0.00526 0.000467 1.17 1.17 World eIoni - 2 -4.62 165 -974 0.00196 0.00136 2.12 3.29 World eIoni - 3 -4.31 165 -974 0 0.00196 0.777 4.06 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.62 165 -974 0.00194 0 0 0 World initStep - 1 -4.67 165 -974 0 0.00194 0.763 0.763 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.48 164 -975 0.00104 0 0 0 World initStep - 1 -5.4 164 -975 0 0.00104 0.298 0.298 World eIoni + 0 18.7 -7.56 -215 0.00112 0 0 0 World initStep + 1 18.8 -7.45 -215 0 0.00112 0.331 0.331 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.14 164 -1.09e+03 0.00157 0 0 0 World initStep - 1 -5.93 164 -1.09e+03 0 0.00157 0.552 0.552 World eIoni + 0 20.8 -7.02 -263 0.00719 0 0 0 World initStep + 1 20.9 -9.09 -262 0.00501 0.00118 2.9 2.9 World eIoni + 2 20.5 -8.48 -261 0.00319 0.00182 2.15 5.04 World eIoni + 3 19.8 -8.54 -261 0 0.00319 1.48 6.53 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 33 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 20.9 -9.09 -262 0.001 0 0 0 World initStep + 1 20.8 -9.17 -262 0 0.001 0.283 0.283 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.04 164 -1.13e+03 0.00149 0 0 0 World initStep - 1 -5.84 164 -1.13e+03 0 0.00149 0.507 0.507 World eIoni + 0 26.7 -5.11 -400 0.0029 0 0 0 World initStep + 1 26.7 -5.71 -400 0.00126 0.00164 1.35 1.35 World eIoni + 2 26.8 -5.83 -400 0 0.00126 0.393 1.74 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6 163 -1.15e+03 0.00484 0 0 0 World initStep - 1 -7.28 163 -1.15e+03 0.00373 0.0011 2.09 2.09 World eIoni - 2 -6.61 164 -1.15e+03 0 0.00373 1.7 3.79 World eIoni + 0 27.9 -5.5 -754 0.0213 0 0 0 World initStep + 1 34.1 -2.59 -745 0.0159 0.00532 12.1 12.1 World eIoni + 2 36.5 -2.25 -742 0.0136 0.000978 3.77 15.9 World eIoni + 3 38.3 1.08 -738 0.0113 0.00228 6.2 22.1 World eIoni + 4 38.2 1.69 -737 0.00986 0.000292 0.671 22.7 World eIoni + 5 37.4 4.76 -737 0.00865 0.00121 4.11 26.9 World eIoni + 6 38.4 6.02 -739 0.00589 0.00276 3.55 30.4 World eIoni + 7 38.9 7.64 -739 0.00366 0.00223 2.46 32.9 World eIoni + 8 38.2 7.68 -739 0 0.00366 1.67 34.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.2 1.69 -737 0.00116 0 0 0 World initStep + 1 38.1 1.67 -737 0 0.00116 0.348 0.348 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 36.5 -2.25 -742 0.00137 0 0 0 World initStep + 1 36.7 -2.35 -742 0 0.00137 0.449 0.449 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.98 163 -1.16e+03 0.00138 0 0 0 World initStep - 1 -6.13 163 -1.16e+03 0 0.00138 0.45 0.45 World eIoni + 0 27.9 -5.54 -808 0.00163 0 0 0 World initStep + 1 27.7 -5.65 -808 0 0.00163 0.58 0.58 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.89 163 -1.19e+03 0.00709 0 0 0 World initStep - 1 -4.31 163 -1.19e+03 0.00609 0.001 2.11 2.11 World msc - 2 -2.64 162 -1.19e+03 0.00464 0.00145 2.53 4.64 World eIoni - 3 -3.15 163 -1.19e+03 0 0.00464 2.02 6.67 World eIoni + 0 28 -5.62 -906 0.00238 0 0 0 World initStep + 1 27.6 -5.47 -906 0 0.00238 1.05 1.05 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.86 163 -1.2e+03 0.00305 0 0 0 World initStep - 1 -5.51 163 -1.2e+03 0 0.00305 1.42 1.42 World eIoni + 0 28.1 -5.63 -959 0.00137 0 0 0 World initStep + 1 28.2 -5.49 -959 0 0.00137 0.445 0.445 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.78 163 -1.24e+03 0.000994 0 0 0 World initStep - 1 -5.68 163 -1.24e+03 0 0.000994 0.28 0.28 World eIoni + 0 28.2 -5.57 -1.04e+03 0.00134 0 0 0 World initStep + 1 28.1 -5.49 -1.04e+03 0 0.00134 0.431 0.431 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.68 163 -1.28e+03 0.0127 0 0 0 World initStep - 1 -6.53 159 -1.28e+03 0.0109 0.00174 5.64 5.64 World eIoni - 2 -8.22 157 -1.28e+03 0.00853 0.00107 3.14 8.79 World eIoni - 3 -7.33 154 -1.28e+03 0.00688 0.00165 3.5 12.3 World eIoni - 4 -7.85 152 -1.28e+03 0.00575 0.00113 2.82 15.1 World eIoni - 5 -8.4 151 -1.28e+03 0.00437 0.00138 2.41 17.5 World eIoni - 6 -8.53 151 -1.28e+03 0.00194 0.00243 1.93 19.4 World eIoni - 7 -8.47 151 -1.28e+03 0 0.00194 0.764 20.2 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.22 157 -1.28e+03 0.00134 0 0 0 World initStep - 1 -8.33 157 -1.28e+03 0 0.00134 0.434 0.434 World eIoni + 0 28.2 -5.41 -1.16e+03 0.00149 0 0 0 World initStep + 1 28 -5.38 -1.16e+03 0 0.00149 0.508 0.508 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.63 163 -1.31e+03 0.00185 0 0 0 World initStep - 1 -5.86 163 -1.31e+03 0 0.00185 0.71 0.71 World eIoni + 0 28.2 -5.38 -1.21e+03 0.00154 0 0 0 World initStep + 1 28.3 -5.53 -1.21e+03 0 0.00154 0.535 0.535 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.55 163 -1.4e+03 0.0046 0 0 0 World initStep - 1 -6.31 162 -1.4e+03 0.00245 0.00215 2.01 2.01 World eIoni - 2 -6.21 161 -1.4e+03 0 0.00245 1.1 3.11 World eIoni + 0 28.2 -5.34 -1.25e+03 0.00188 0 0 0 World initStep + 1 28.5 -5.22 -1.25e+03 0 0.00188 0.725 0.725 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.37 162 -1.51e+03 0.00101 0 0 0 World initStep - 1 -5.32 163 -1.51e+03 0 0.00101 0.287 0.287 World eIoni + 0 28.2 -5.33 -1.28e+03 0.00128 0 0 0 World initStep + 1 28.1 -5.28 -1.28e+03 0 0.00128 0.402 0.402 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.24 162 -1.6e+03 0.001 0 0 0 World initStep - 1 -5.28 162 -1.6e+03 0 0.001 0.283 0.283 World eIoni + 0 28.2 -5.35 -1.4e+03 0.00597 0 0 0 World initStep + 1 27.6 -3.78 -1.4e+03 0.00334 0.00263 2.49 2.49 World eIoni + 2 27.2 -3.29 -1.4e+03 0.00136 0.00197 1.55 4.03 World eIoni + 3 27.1 -3.23 -1.4e+03 0 0.00136 0.444 4.48 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.21 162 -1.63e+03 0.00113 0 0 0 World initStep - 1 -5.28 162 -1.63e+03 0 0.00113 0.336 0.336 World eIoni + 0 28.2 -5.37 -1.44e+03 0.00121 0 0 0 World initStep + 1 28.1 -5.3 -1.44e+03 0 0.00121 0.371 0.371 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.14 162 -1.7e+03 0.002 0 0 0 World initStep - 1 -5.45 162 -1.7e+03 0 0.002 0.802 0.802 World eIoni + 0 28.2 -5.37 -1.45e+03 0.00173 0 0 0 World initStep + 1 28 -5.48 -1.45e+03 0 0.00173 0.638 0.638 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.04 162 -1.89e+03 0.00107 0 0 0 World initStep - 1 -4.93 162 -1.89e+03 0 0.00107 0.312 0.312 World eIoni + 0 28.3 -5.37 -1.47e+03 0.00112 0 0 0 World initStep + 1 28.2 -5.48 -1.47e+03 0 0.00112 0.334 0.334 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.03 162 -1.91e+03 0.00316 0 0 0 World initStep - 1 -5.15 161 -1.91e+03 0.00124 0.00192 1.47 1.47 World eIoni - 2 -5.05 161 -1.91e+03 0 0.00124 0.385 1.86 World eIoni + 0 28.3 -5.36 -1.5e+03 0.00132 0 0 0 World initStep + 1 28.4 -5.48 -1.5e+03 0 0.00132 0.421 0.421 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.03 162 -1.93e+03 0.00138 0 0 0 World initStep - 1 -4.87 162 -1.93e+03 0 0.00138 0.45 0.45 World eIoni + 0 28.3 -5.34 -1.66e+03 0.00241 0 0 0 World initStep + 1 27.9 -5.49 -1.66e+03 0 0.00241 1.08 1.08 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.03 162 -1.94e+03 0.00314 0 0 0 World initStep - 1 -5.13 161 -1.94e+03 0.00198 7.26e-05 0.118 0.118 World eIoni - 2 -5.26 161 -1.94e+03 0 0.00198 0.789 0.907 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 16 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.13 161 -1.94e+03 0.00109 0 0 0 World initStep - 1 -5.23 162 -1.94e+03 0 0.00109 0.317 0.317 World eIoni + 0 28.5 -5.46 -1.82e+03 0.00135 0 0 0 World initStep + 1 28.5 -5.29 -1.82e+03 0 0.00135 0.44 0.44 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.02 162 -1.97e+03 0.0512 0 0 0 World initStep - 1 -9.32 166 -1.97e+03 0.0505 0.000696 8.04 8.04 World eIoni - 2 -17.9 175 -1.96e+03 0.0384 0.00133 13.1 21.2 World eIoni - 3 -33.4 188 -1.94e+03 0.0323 0.00612 32.6 53.8 World eIoni - 4 -44.7 203 -1.93e+03 0.0299 0.00234 24.2 77.9 World eIoni - 5 -45.9 204 -1.93e+03 0.0284 0.000409 2.11 80 World eIoni - 6 -51.7 221 -1.92e+03 0.0259 0.00248 19.5 99.5 World eIoni - 7 -50.6 223 -1.91e+03 0.0237 0.00217 16.7 116 World eIoni - 8 -47.1 230 -1.9e+03 0.0218 0.00197 14.4 131 World eIoni - 9 -51.5 236 -1.89e+03 0.0176 0.00306 12.4 143 World eIoni - 10 -53.3 243 -1.88e+03 0.0162 0.00146 9.03 152 World eIoni - 11 -56.4 249 -1.88e+03 0.0133 0.00284 7.93 160 World eIoni - 12 -58.3 250 -1.89e+03 0.0121 0.00123 6.03 166 World eIoni - 13 -58.4 250 -1.89e+03 0.00957 0.00253 5.3 171 World eIoni - 14 -58.5 250 -1.89e+03 0.0075 0.000224 0.324 172 World eIoni - 15 -59.9 249 -1.89e+03 0.00645 0.00104 3.06 175 World eIoni - 16 -59.5 250 -1.9e+03 0.00473 0.00173 2.66 177 World eIoni - 17 -59 251 -1.9e+03 0.00245 0.00228 2.05 179 World eIoni - 18 -59.3 251 -1.9e+03 0 0.00245 1.1 181 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -58.5 250 -1.89e+03 0.00185 0 0 0 World initStep - 1 -58.3 250 -1.89e+03 0 0.00185 0.707 0.707 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51.5 236 -1.89e+03 0.00108 0 0 0 World initStep - 1 -51.5 236 -1.89e+03 0 0.00108 0.313 0.313 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -45.9 204 -1.93e+03 0.00112 0 0 0 World initStep - 1 -45.9 204 -1.93e+03 0 0.00112 0.333 0.333 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.9 175 -1.96e+03 0.0108 0 0 0 World initStep - 1 -18.3 178 -1.97e+03 0.00934 0.00143 4.57 4.57 World eIoni - 2 -16.7 178 -1.96e+03 0.00701 0.00233 3.86 8.44 World eIoni - 3 -16.9 180 -1.96e+03 0.00586 0.00116 2.87 11.3 World eIoni - 4 -16.9 180 -1.96e+03 0.00411 7.49e-05 0.601 11.9 World eIoni - 5 -17 180 -1.96e+03 0.00251 0.00161 1.84 13.8 World eIoni - 6 -16.6 180 -1.96e+03 0 0.00251 1.14 14.9 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 124 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.9 180 -1.96e+03 0.00167 0 0 0 World initStep - 1 -16.8 180 -1.96e+03 0 0.00167 0.602 0.602 World eIoni + 0 28.5 -5.51 -1.83e+03 0.00157 0 0 0 World initStep + 1 28.6 -5.62 -1.83e+03 0 0.00157 0.547 0.547 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.96 161 -2.08e+03 0.00919 0 0 0 World initStep - 1 -2.15 162 -2.08e+03 0.00806 0.00112 3.79 3.79 World eIoni - 2 0.169 162 -2.08e+03 0.00673 0.00134 3.3 7.09 World eIoni - 3 1.65 162 -2.08e+03 0.00573 0.001 2.76 9.85 World eIoni - 4 2.82 162 -2.08e+03 0.00319 0.000796 2.11 12 World eIoni - 5 2.98 163 -2.08e+03 0.00144 0.00175 1.48 13.4 World eIoni - 6 3.09 163 -2.08e+03 0 0.00144 0.482 13.9 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.82 162 -2.08e+03 0.00174 0 0 0 World initStep - 1 2.96 163 -2.08e+03 0 0.00174 0.645 0.645 World eIoni + 0 28.4 -5.73 -1.87e+03 0.00257 0 0 0 World initStep + 1 28 -5.42 -1.87e+03 0 0.00257 1.17 1.17 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.96 161 -2.09e+03 0.00101 0 0 0 World initStep - 1 -4.86 161 -2.09e+03 0 0.00101 0.286 0.286 World eIoni + 0 28.4 -6.1 -1.94e+03 0.00311 0 0 0 World initStep + 1 27.8 -6.38 -1.94e+03 0 0.00311 1.45 1.45 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.93 161 -2.16e+03 0.00121 0 0 0 World initStep - 1 -5.01 161 -2.16e+03 0 0.00121 0.374 0.374 World eIoni + 0 28.4 -6.27 -1.97e+03 0.00255 0 0 0 World initStep + 1 28.8 -6.07 -1.97e+03 0 0.00255 1.16 1.16 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.94 161 -2.25e+03 0.00171 0 0 0 World initStep - 1 -5.08 161 -2.25e+03 0 0.00171 0.624 0.624 World eIoni + 0 28.3 -6.54 -2.03e+03 0.00542 0 0 0 World initStep + 1 27.9 -5.1 -2.03e+03 0.00411 0.00131 2.29 2.29 World eIoni + 2 28.3 -4.44 -2.03e+03 0.00202 0.00208 1.84 4.13 World eIoni + 3 28.6 -4.36 -2.03e+03 0 0.00202 0.816 4.94 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.94 161 -2.27e+03 0.00234 0 0 0 World initStep - 1 -5.01 162 -2.27e+03 0 0.00234 1.03 1.03 World eIoni + 0 28.2 -6.75 -2.07e+03 0.00305 0 0 0 World initStep + 1 28.6 -7.28 -2.07e+03 0.00168 0.00137 1.42 1.42 World eIoni + 2 28.8 -7.44 -2.07e+03 0 0.00168 0.611 2.03 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.94 161 -2.29e+03 0.00105 0 0 0 World initStep - 1 -4.85 161 -2.29e+03 0 0.00105 0.301 0.301 World eIoni + 0 28.2 -6.81 -2.09e+03 0.0022 0 0 0 World initStep + 1 28.5 -6.67 -2.09e+03 0 0.0022 0.929 0.929 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.94 161 -2.3e+03 0.00159 0 0 0 World initStep - 1 -4.79 161 -2.3e+03 0 0.00159 0.562 0.562 World eIoni + 0 28 -7.34 -2.21e+03 0.00148 0 0 0 World initStep + 1 27.9 -7.2 -2.21e+03 0 0.00148 0.504 0.504 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.93 161 -2.34e+03 0.0556 0 0 0 World initStep - 1 25.5 174 -2.3e+03 0.0491 0.00654 62.3 62.3 World eIoni - 2 58 180 -2.27e+03 0.0445 0.00457 50 112 World eIoni - 3 93.6 185 -2.27e+03 0.0396 0.00492 42.2 155 World eIoni - 4 97.7 185 -2.27e+03 0.0377 0.000453 4.19 159 World eIoni - 5 125 190 -2.26e+03 0.033 0.00468 31.6 190 World eIoni - 6 141 204 -2.27e+03 0.0305 0.00253 25.1 215 World eIoni - 7 154 213 -2.28e+03 0.0264 0.00402 21.9 237 World eIoni - 8 164 214 -2.29e+03 0.0228 0.00368 17.3 255 World eIoni - 9 174 211 -2.3e+03 0.0191 0.0037 13.5 268 World eIoni - 10 180 211 -2.31e+03 0.0169 0.00214 10.2 278 World eIoni - 11 184 211 -2.31e+03 0.0158 0.00114 8.5 287 World eIoni - 12 190 209 -2.32e+03 0.0142 0.00163 7.66 294 World eIoni - 13 190 209 -2.32e+03 0.0104 0.000887 0.623 295 World eIoni - 14 193 209 -2.32e+03 0.00888 0.00157 4.4 300 World eIoni - 15 196 211 -2.32e+03 0.00709 0.00179 3.65 303 World eIoni - 16 197 210 -2.32e+03 0.00563 0.00146 2.9 306 World eIoni - 17 196 211 -2.32e+03 0.00382 0.00181 2.37 308 World eIoni - 18 195 211 -2.32e+03 0.00179 0.00204 1.74 310 World eIoni - 19 195 211 -2.32e+03 0 0.00179 0.67 311 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 190 209 -2.32e+03 0.00282 0 0 0 World initStep - 1 190 209 -2.32e+03 0 0.00282 1.31 1.31 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 97.7 185 -2.27e+03 0.00144 0 0 0 World initStep - 1 97.7 185 -2.27e+03 0 0.00144 0.481 0.481 World eIoni + 0 27.8 -8.31 -2.4e+03 0.00225 0 0 0 World initStep + 1 27.7 -8.69 -2.4e+03 0 0.00225 0.966 0.966 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.9 161 -2.39e+03 0.00217 0 0 0 World initStep - 1 -5.25 161 -2.39e+03 0 0.00217 0.909 0.909 World eIoni + 0 27.7 -8.46 -2.43e+03 0.0119 0 0 0 World initStep + 1 28.6 -10.3 -2.43e+03 0.0109 0.00102 2.73 2.73 World msc + 2 29.5 -10.7 -2.43e+03 0.00781 0.000364 1.45 4.18 World eIoni + 3 30.7 -12.3 -2.43e+03 0.00585 0.00196 3.19 7.37 World eIoni + 4 31.2 -13.5 -2.43e+03 0.00329 0.00256 2.44 9.81 World eIoni + 5 31.7 -14.1 -2.43e+03 0.00107 0.00222 1.53 11.3 World eIoni + 6 31.7 -14.1 -2.43e+03 0 0.00107 0.312 11.7 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 29.5 -10.7 -2.43e+03 0.00268 0 0 0 World initStep + 1 29.6 -10.3 -2.43e+03 0.00197 0.000708 1.24 1.24 World eIoni + 2 29.6 -10.6 -2.43e+03 0 0.00197 0.783 2.02 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.89 161 -2.41e+03 0.00121 0 0 0 World initStep - 1 -4.75 161 -2.41e+03 0 0.00121 0.374 0.374 World eIoni + 0 27.7 -8.61 -2.46e+03 0.00142 0 0 0 World initStep + 1 27.6 -8.73 -2.46e+03 0 0.00142 0.471 0.471 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.89 161 -2.41e+03 0.00145 0 0 0 World initStep - 1 -4.95 161 -2.41e+03 0 0.00145 0.485 0.485 World eIoni + 0 27.7 -8.74 -2.52e+03 0.00112 0 0 0 World initStep + 1 27.8 -8.66 -2.52e+03 0 0.00112 0.332 0.332 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.81 161 -2.51e+03 0.0175 0 0 0 World initStep - 1 -1.08 166 -2.5e+03 0.0149 0.00267 8.96 8.96 World eIoni - 2 2.31 168 -2.5e+03 0.00998 0.00489 7.02 16 World eIoni - 3 4.62 169 -2.5e+03 0.00929 0.000687 4.17 20.2 World eIoni - 4 5.88 171 -2.49e+03 0.00816 0.00113 3.84 24 World eIoni - 5 7.08 172 -2.5e+03 0.00664 0.00152 3.34 27.3 World eIoni - 6 7.48 174 -2.5e+03 0.00337 0.00327 2.73 30.1 World eIoni - 7 6.83 173 -2.5e+03 0.00101 0.00236 1.56 31.6 World eIoni - 8 6.9 173 -2.5e+03 0 0.00101 0.286 31.9 World eIoni + 0 27.7 -8.75 -2.55e+03 0.00106 0 0 0 World initStep + 1 27.6 -8.66 -2.55e+03 0 0.00106 0.305 0.305 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.81 161 -2.54e+03 0.00741 0 0 0 World initStep - 1 -4.71 159 -2.54e+03 0.00437 0.00303 3.03 3.03 World eIoni - 2 -4.34 158 -2.54e+03 0.00236 0.00202 1.93 4.96 World eIoni - 3 -4.68 158 -2.54e+03 0 0.00236 1.04 6 World eIoni + 0 27.7 -8.76 -2.56e+03 0.00219 0 0 0 World initStep + 1 28 -8.6 -2.56e+03 0 0.00219 0.924 0.924 World eIoni ********************************************************************************************************* * G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 112 -40.2 -2.61e+03 50 0 0 0 World initStep - 1 112 -40.2 -2.57e+03 50 0.00549 37.6 37.6 World hIoni - 2 112 -40.2 -2.56e+03 50 0.00115 11.1 48.7 World hIoni - 3 112 -40.2 -2.56e+03 50 9.86e-05 1.7 50.4 World hIoni - 4 112 -40.2 -2.54e+03 50 0.00252 24.3 74.7 World hIoni - 5 112 -40.2 -2.51e+03 50 0.0038 27 102 World hIoni - 6 113 -40.2 -2.46e+03 50 0.00617 47.9 150 World hIoni - 7 113 -40.2 -2.46e+03 50 0.000596 7.02 157 World hIoni - 8 113 -40.2 -2.45e+03 50 0.000746 7.99 165 World hIoni - 9 113 -40.1 -2.37e+03 49.9 0.0127 76.2 241 World hIoni - 10 113 -40.1 -2.35e+03 49.9 0.00384 25.8 267 World hIoni - 11 113 -40.1 -2.34e+03 49.9 0.00116 5.01 272 World hIoni - 12 113 -40.1 -2.31e+03 49.9 0.00691 33 305 World hIoni - 13 113 -40.1 -2.28e+03 49.9 0.00524 29.6 334 World hIoni - 14 113 -40.1 -2.26e+03 49.9 0.00237 19.4 354 World hIoni - 15 113 -40 -2.2e+03 49.9 0.00985 63.7 417 World hIoni - 16 113 -40 -2.15e+03 49.9 0.00905 49.9 467 World hIoni - 17 113 -40 -2.06e+03 49.9 0.0147 88.2 555 World hIoni - 18 113 -40.1 -2.01e+03 49.8 0.00696 46.5 602 World hIoni - 19 113 -40.2 -1.94e+03 49.8 0.0112 75.5 677 World hIoni - 20 113 -40.2 -1.87e+03 49.8 0.0101 66.8 744 World hIoni - 21 113 -40.2 -1.86e+03 49.8 0.000817 12.2 756 World hIoni - 22 113 -40.4 -1.75e+03 49.8 0.0201 106 863 World hIoni - 23 113 -40.4 -1.75e+03 49.8 0.00014 0.538 863 World hIoni - 24 114 -40.5 -1.7e+03 49.8 0.00605 48.7 912 World hIoni - 25 114 -40.6 -1.68e+03 49.8 0.00389 21.3 933 World hIoni - 26 114 -40.7 -1.61e+03 49.8 0.0108 71.6 1e+03 World hIoni - 27 114 -40.8 -1.56e+03 49.7 0.0109 43.2 1.05e+03 World hIoni - 28 114 -40.9 -1.53e+03 49.7 0.00563 31.4 1.08e+03 World hIoni - 29 114 -40.9 -1.51e+03 49.7 0.00585 27.9 1.11e+03 World hIoni - 30 114 -41 -1.49e+03 49.7 0.00299 16 1.12e+03 World hIoni - 31 114 -41 -1.48e+03 49.7 0.00207 11.7 1.13e+03 World hIoni - 32 114 -41.1 -1.44e+03 49.7 0.00657 41.5 1.18e+03 World hIoni - 33 114 -41.3 -1.34e+03 49.7 0.0125 99.9 1.28e+03 World hIoni - 34 114 -41.3 -1.33e+03 49.7 0.000241 2.57 1.28e+03 World hIoni - 35 114 -41.3 -1.32e+03 49.7 0.00342 13.3 1.29e+03 World hIoni - 36 114 -41.3 -1.32e+03 49.7 0.000886 4.02 1.3e+03 World hIoni - 37 115 -41.4 -1.22e+03 49.7 0.0194 95.2 1.39e+03 World hIoni - 38 115 -41.4 -1.21e+03 49.6 0.000808 8.26 1.4e+03 World hIoni - 39 115 -41.4 -1.2e+03 49.6 0.000436 8.64 1.41e+03 World hIoni - 40 115 -41.4 -1.15e+03 49.6 0.0135 57.1 1.47e+03 World hIoni - 41 115 -41.4 -1.14e+03 49.6 0.000853 4.29 1.47e+03 World hIoni - 42 115 -41.5 -1.13e+03 49.6 0.00171 9.63 1.48e+03 World hIoni - 43 115 -41.5 -1.11e+03 49.6 0.0029 19 1.5e+03 World hIoni - 44 115 -41.5 -1.11e+03 49.6 3.79e-05 2.75 1.5e+03 World hIoni - 45 115 -41.5 -1.07e+03 49.6 0.00881 37.8 1.54e+03 World hIoni - 46 115 -41.5 -1.07e+03 49.6 0.000295 1.3 1.54e+03 World hIoni - 47 115 -41.6 -1.06e+03 49.6 0.00162 14.6 1.55e+03 World hIoni - 48 115 -41.6 -1.04e+03 49.6 0.0025 12.7 1.57e+03 World hIoni - 49 115 -41.6 -1.04e+03 49.6 0.000538 3.09 1.57e+03 World hIoni - 50 116 -41.6 -1e+03 49.5 0.00616 40 1.61e+03 World hIoni - 51 116 -41.6 -983 49.5 0.00235 19.1 1.63e+03 World hIoni - 52 116 -41.5 -960 49.5 0.00376 23.1 1.65e+03 World hIoni - 53 116 -41.5 -909 49.5 0.00811 50.4 1.7e+03 World hIoni - 54 116 -41.4 -871 49.5 0.00978 38 1.74e+03 World hIoni - 55 117 -41.1 -706 49.4 0.026 165 1.91e+03 World hIoni - 56 117 -41.1 -698 49.4 0.00213 8.02 1.91e+03 World hIoni - 57 118 -41.1 -690 49.4 0.00238 7.97 1.92e+03 World hIoni - 58 118 -41 -651 49.4 0.00686 38.7 1.96e+03 World hIoni - 59 118 -40.9 -599 49.4 0.0121 52.9 2.01e+03 World hIoni - 60 118 -40.9 -583 49.4 0.0026 15.1 2.03e+03 World hIoni - 61 118 -40.9 -558 49.4 0.00285 25.8 2.05e+03 cloudPV CoupledTransportation - 62 118 -40.9 -556 47.3 2.1 1.7 2.06e+03 World CoupledTransportation - 63 118 -40.9 -550 47.3 0.00158 5.58 2.06e+03 World hIoni - 64 119 -41 -501 47.3 0.00879 49.3 2.11e+03 World hIoni - 65 119 -41.2 -471 47.3 0.00747 30.1 2.14e+03 World hIoni - 66 119 -41.6 -371 47.2 0.0163 100 2.24e+03 World hIoni - 67 119 -41.7 -346 47.2 0.00411 24.2 2.27e+03 World hIoni - 68 120 -42 -278 47.2 0.0167 68.2 2.33e+03 World hIoni - 69 120 -42 -262 47.2 0.00502 16.3 2.35e+03 World hIoni - 70 120 -42.1 -255 47.2 0.00103 7.27 2.36e+03 World hIoni - 71 120 -42.2 -235 47.2 0.00251 19.6 2.38e+03 World hIoni - 72 120 -42.2 -233 47.2 0.000343 1.84 2.38e+03 World hIoni - 73 120 -42.3 -194 47.2 0.00413 39.5 2.42e+03 World hIoni - 74 120 -42.4 -176 47.2 0.00391 17.4 2.44e+03 World hIoni - 75 121 -42.9 -74 47.2 0.0181 102 2.54e+03 World hIoni - 76 121 -43 -49.7 47.2 0.00483 24.3 2.56e+03 World hIoni - 77 121 -43.2 -24.1 47.2 0.00264 25.6 2.59e+03 World hIoni - 78 121 -43.2 -16 47.1 0.00147 8.09 2.6e+03 World hIoni - 79 121 -43.2 -11.3 47.1 0.000582 4.71 2.6e+03 World hIoni - 80 121 -43.4 10.1 47.1 0.00383 21.5 2.62e+03 cloudPV CoupledTransportation - 81 121 -43.4 11.8 45 2.12 1.67 2.62e+03 World CoupledTransportation - 82 121 -43.4 20.6 45 0.00303 8.76 2.63e+03 World hIoni - 83 121 -43.4 42.7 45 0.003 22.1 2.66e+03 World hIoni - 84 122 -43.5 77.5 45 0.00615 34.8 2.69e+03 World hIoni - 85 122 -43.5 80.7 45 0.000483 3.15 2.69e+03 World hIoni - 86 122 -43.5 87.6 45 0.00268 6.9 2.7e+03 World hIoni - 87 122 -43.6 117 45 0.00676 29.7 2.73e+03 World hIoni - 88 122 -43.6 136 45 0.00277 18.3 2.75e+03 World hIoni - 89 122 -43.7 191 44.9 0.0144 55.2 2.8e+03 World hIoni - 90 122 -43.8 216 44.9 0.00432 25.7 2.83e+03 World hIoni - 91 123 -43.8 253 44.9 0.00813 36.6 2.87e+03 World hIoni - 92 123 -43.8 253 44.9 0.000259 0.335 2.87e+03 World hIoni - 93 123 -43.9 273 44.9 0.00404 19.1 2.89e+03 World hIoni - 94 123 -43.9 282 44.9 0.00168 9.3 2.89e+03 World hIoni - 95 123 -43.9 299 44.9 0.00258 17.5 2.91e+03 World hIoni - 96 123 -44 341 44.9 0.00754 42 2.95e+03 World hIoni - 97 123 -44 361 44.9 0.00284 20 2.97e+03 World hIoni - 98 123 -44.1 407 44.9 0.0117 45.7 3.02e+03 World hIoni - 99 124 -44.2 446 44.9 0.00722 39.4 3.06e+03 World hIoni - 100 124 -44.2 468 44.9 0.00255 21.2 3.08e+03 World hIoni - 101 124 -44.6 634 44.8 0.0342 167 3.25e+03 World hIoni - 102 124 -44.7 659 44.8 0.00465 24.4 3.27e+03 World hIoni - 103 124 -44.7 659 44.8 0.000112 0.65 3.27e+03 World hIoni - 104 125 -44.9 724 44.8 0.01 64.9 3.34e+03 World hIoni - 105 125 -45.2 802 44.8 0.0148 78 3.41e+03 World hIoni - 106 125 -45.2 818 44.8 0.00178 15.8 3.43e+03 World hIoni - 107 125 -45.2 823 44.8 0.00176 5.42 3.44e+03 World hIoni - 108 125 -45.3 827 44.8 0.00044 3.59 3.44e+03 World hIoni - 109 125 -45.4 876 44.8 0.00883 48.9 3.49e+03 World hIoni - 110 125 -45.4 889 44.8 0.00239 13.4 3.5e+03 World hIoni - 111 125 -45.5 912 44.8 0.00465 22.6 3.52e+03 World hIoni - 112 125 -45.5 927 44.7 0.00203 14.9 3.54e+03 World hIoni - 113 125 -45.7 989 44.7 0.0199 62.5 3.6e+03 World hIoni - 114 125 -45.7 1e+03 44.7 0.00161 14.2 3.62e+03 World hIoni - 115 125 -45.8 1.04e+03 44.7 0.00693 35.7 3.65e+03 World hIoni - 116 126 -45.8 1.09e+03 44.7 0.012 49.9 3.7e+03 World hIoni - 117 126 -45.8 1.11e+03 44.7 0.00417 21.9 3.72e+03 World hIoni - 118 126 -45.8 1.15e+03 44.7 0.00755 36.3 3.76e+03 World hIoni - 119 126 -45.8 1.19e+03 44.7 0.0112 41.4 3.8e+03 World hIoni - 120 126 -45.8 1.31e+03 44.6 0.0293 124 3.92e+03 World hIoni - 121 127 -45.8 1.39e+03 44.6 0.0153 77 4e+03 World hIoni - 122 127 -45.8 1.45e+03 44.6 0.0176 62.6 4.06e+03 World hIoni - 123 127 -45.8 1.46e+03 44.6 0.00164 6.82 4.07e+03 World hIoni - 124 127 -46 1.58e+03 44.6 0.0241 126 4.2e+03 World hIoni - 125 128 -46 1.67e+03 44.5 0.0159 83 4.28e+03 World hIoni - 126 128 -46 1.72e+03 44.5 0.0119 53 4.33e+03 World hIoni - 127 128 -46 1.75e+03 44.5 0.00487 25.1 4.36e+03 World hIoni - 128 128 -46.1 1.79e+03 44.5 0.00986 43.6 4.4e+03 World hIoni - 129 128 -46.1 1.79e+03 44.5 0.000673 2.73 4.4e+03 World hIoni - 130 128 -46.1 1.81e+03 44.5 0.00446 20.1 4.42e+03 World hIoni - 131 128 -46.1 1.83e+03 44.5 0.00533 18.3 4.44e+03 World hIoni - 132 128 -46.1 1.84e+03 44.5 0.00109 6.79 4.45e+03 World hIoni - 133 128 -46.1 1.87e+03 44.5 0.0068 35.1 4.48e+03 World hIoni - 134 128 -46.1 1.91e+03 44.5 0.00947 34.6 4.52e+03 World hIoni - 135 128 -46.1 1.96e+03 44.5 0.00653 48.5 4.57e+03 World hIoni - 136 128 -46.1 1.99e+03 44.4 0.00582 30.3 4.6e+03 World hIoni - 137 128 -46.1 2e+03 44.4 0.00154 11 4.61e+03 World hIoni - 138 128 -46.1 2e+03 44.4 0.00179 8.06 4.62e+03 World hIoni - 139 128 -46.1 2.01e+03 44.4 0.00234 5.01 4.62e+03 World hIoni - 140 128 -46.1 2.02e+03 44.4 0.00452 14.4 4.64e+03 World hIoni - 141 128 -46.1 2.06e+03 44.4 0.00569 39.5 4.68e+03 World hIoni - 142 128 -46.1 2.07e+03 44.4 0.00186 11.2 4.69e+03 World hIoni - 143 128 -46.1 2.08e+03 44.4 0.000745 2.22 4.69e+03 World hIoni - 144 128 -46.1 2.09e+03 44.4 0.00188 11.4 4.7e+03 World hIoni - 145 128 -46.1 2.12e+03 44.4 0.00728 32.4 4.73e+03 World hIoni - 146 128 -46.1 2.13e+03 44.4 0.00226 11 4.74e+03 World hIoni - 147 127 -46.2 2.17e+03 44.4 0.00879 39.4 4.78e+03 World hIoni - 148 127 -46.1 2.27e+03 44.4 0.015 104 4.89e+03 World hIoni - 149 127 -46.1 2.29e+03 44.4 0.00189 12.8 4.9e+03 World hIoni - 150 127 -46.1 2.33e+03 44.3 0.00618 39.3 4.94e+03 World hIoni - 151 127 -46.1 2.35e+03 44.3 0.00355 19.6 4.96e+03 World hIoni - 152 127 -46 2.36e+03 44.3 0.00177 15.1 4.97e+03 World hIoni - 153 127 -46 2.36e+03 44.3 7.6e-05 0.616 4.97e+03 World hIoni - 154 127 -46 2.38e+03 44.3 0.00391 14.9 4.99e+03 World hIoni - 155 127 -46 2.41e+03 44.3 0.00662 33.3 5.02e+03 World hIoni - 156 126 -45.9 2.47e+03 44.3 0.0103 63 5.09e+03 World hIoni - 157 126 -45.9 2.48e+03 44.3 0.000671 5.48 5.09e+03 World hIoni - 158 126 -45.9 2.5e+03 44.3 0.00171 17.4 5.11e+03 World hIoni - 159 126 -45.9 2.58e+03 44.3 0.0188 80.1 5.19e+03 World hIoni - 160 126 -45.9 2.6e+03 44.3 0.00526 23.8 5.21e+03 detectorPV CoupledTransportation - 161 126 -45.9 2.6e+03 38.3 5.92 1.91 5.21e+03 detectorPV hIoni - 162 126 -46 2.6e+03 33.4 5 1.52 5.22e+03 detectorPV hIoni - 163 126 -46 2.6e+03 28.9 4.46 1.22 5.22e+03 detectorPV hIoni - 164 126 -46 2.61e+03 24.7 4.21 0.98 5.22e+03 detectorPV hIoni - 165 126 -46 2.61e+03 21.1 3.59 0.78 5.22e+03 detectorPV hIoni - 166 126 -46 2.61e+03 17.9 3.2 0.628 5.22e+03 detectorPV hIoni - 167 126 -46 2.61e+03 14.7 3.15 0.508 5.22e+03 detectorPV hIoni - 168 126 -46 2.61e+03 11.8 2.91 0.404 5.22e+03 detectorPV hIoni - 169 126 -46.1 2.61e+03 9.13 2.69 0.32 5.22e+03 detectorPV hIoni - 170 126 -46.1 2.61e+03 6.38 2.76 0.253 5.22e+03 detectorPV hIoni - 171 126 -46.1 2.61e+03 3.4 2.98 0.191 5.22e+03 detectorPV hIoni - 172 126 -46.1 2.61e+03 0 3.4 0.101 5.22e+03 detectorPV hIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 126 -45.9 2.5e+03 0.00107 0 0 0 World initStep - 1 126 -45.9 2.5e+03 0 0.00107 0.31 0.31 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 126 -45.9 2.48e+03 0.00112 0 0 0 World initStep - 1 126 -46 2.48e+03 0 0.00112 0.334 0.334 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 126 -45.9 2.47e+03 0.00111 0 0 0 World initStep - 1 126 -46.1 2.47e+03 0 0.00111 0.327 0.327 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 127 -46 2.41e+03 0.00102 0 0 0 World initStep - 1 127 -46 2.41e+03 0 0.00102 0.29 0.29 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 127 -46 2.38e+03 0.0067 0 0 0 World initStep - 1 127 -44.2 2.38e+03 0.00332 0.000966 2.56 2.56 World eIoni - 2 128 -44.5 2.38e+03 0.0016 0.00171 1.54 4.1 World eIoni - 3 128 -44.6 2.38e+03 0 0.0016 0.567 4.67 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 125 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 127 -44.2 2.38e+03 0.00242 0 0 0 World initStep - 1 127 -43.8 2.38e+03 0 0.00242 1.08 1.08 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 127 -46 2.36e+03 0.0112 0 0 0 World initStep - 1 124 -48.1 2.36e+03 0.00955 0.00169 4.82 4.82 World eIoni - 2 125 -51.1 2.37e+03 0.00574 0.00101 3.78 8.6 World eIoni - 3 124 -52.5 2.37e+03 0.00351 0.00122 2.17 10.8 World eIoni - 4 125 -53.2 2.37e+03 0.00134 0.00217 1.62 12.4 World eIoni - 5 125 -53.1 2.37e+03 0 0.00134 0.433 12.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 124 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 124 -52.5 2.37e+03 0.00101 0 0 0 World initStep - 1 124 -52.5 2.37e+03 0 0.00101 0.286 0.286 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 124 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 125 -51.1 2.37e+03 0.0028 0 0 0 World initStep - 1 125 -50.9 2.37e+03 0 0.0028 1.3 1.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 127 -46.1 2.35e+03 0.00103 0 0 0 World initStep - 1 127 -46.2 2.35e+03 0 0.00103 0.294 0.294 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 127 -46.1 2.33e+03 0.00261 0 0 0 World initStep - 1 127 -46 2.33e+03 0 0.00261 1.2 1.2 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 127 -46.1 2.29e+03 0.0077 0 0 0 World initStep - 1 125 -45.5 2.29e+03 0.0057 0.002 3.15 3.15 World eIoni - 2 124 -45.4 2.29e+03 0.00381 0.00188 2.39 5.53 World eIoni - 3 125 -45 2.29e+03 0.00174 0.00207 1.73 7.27 World eIoni - 4 125 -45.2 2.29e+03 0 0.00174 0.643 7.91 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 127 -46.1 2.27e+03 0.0151 0 0 0 World initStep - 1 126 -52 2.28e+03 0.0131 0.00203 6.41 6.41 World msc - 2 126 -56 2.27e+03 0.0106 0.00248 5.88 12.3 World eIoni - 3 128 -59.6 2.27e+03 0.00892 0.00169 4.49 16.8 World eIoni - 4 130 -61.2 2.27e+03 0.0065 0.00242 3.67 20.5 World eIoni - 5 128 -60.5 2.27e+03 0.00381 0.00269 2.68 23.1 World eIoni - 6 129 -59.6 2.27e+03 0 0.00381 1.73 24.9 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 127 -46.2 2.17e+03 0.00145 0 0 0 World initStep - 1 128 -46 2.17e+03 0 0.00145 0.486 0.486 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 2.13e+03 0.00169 0 0 0 World initStep - 1 128 -46.1 2.13e+03 0 0.00169 0.613 0.613 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 2.12e+03 0.0014 0 0 0 World initStep - 1 127 -46.1 2.12e+03 0 0.0014 0.464 0.464 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 2.09e+03 0.00111 0 0 0 World initStep - 1 128 -46 2.09e+03 0 0.00111 0.329 0.329 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 2.08e+03 0.00319 0 0 0 World initStep - 1 127 -46.8 2.08e+03 0 0.00319 1.48 1.48 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 2.07e+03 0.0022 0 0 0 World initStep - 1 128 -45.9 2.07e+03 0 0.0022 0.93 0.93 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 2.06e+03 0.00123 0 0 0 World initStep - 1 128 -46.2 2.06e+03 0 0.00123 0.379 0.379 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 2.02e+03 0.00187 0 0 0 World initStep - 1 128 -46.4 2.02e+03 0 0.00187 0.723 0.723 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 2.01e+03 0.0023 0 0 0 World initStep - 1 127 -46.2 2.01e+03 0 0.0023 0.999 0.999 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 2e+03 0.00147 0 0 0 World initStep - 1 128 -46.1 2e+03 0 0.00147 0.499 0.499 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 2e+03 0.00162 0 0 0 World initStep - 1 128 -46.1 2e+03 0 0.00162 0.574 0.574 World eIoni + 0 -38.8 124 -2.61e+03 50 0 0 0 World initStep + 1 -38.8 124 -2.6e+03 50 0.00216 13.6 13.6 World hIoni + 2 -38.8 124 -2.59e+03 50 0.000769 4.01 17.6 World hIoni + 3 -38.8 124 -2.55e+03 50 0.00473 40.2 57.8 World hIoni + 4 -38.8 124 -2.51e+03 49.9 0.0102 45.5 103 World hIoni + 5 -38.8 124 -2.5e+03 49.9 0.00107 6.74 110 World hIoni + 6 -38.6 124 -2.4e+03 49.9 0.0176 101 211 World hIoni + 7 -38.6 124 -2.38e+03 49.9 0.00725 24.9 236 World hIoni + 8 -38.6 124 -2.32e+03 49.9 0.00822 51.8 288 World hIoni + 9 -38.5 124 -2.21e+03 49.8 0.0198 110 398 World hIoni + 10 -38.5 124 -2.19e+03 49.8 0.00525 24.9 423 World hIoni + 11 -38.5 124 -2.16e+03 49.8 0.00408 33.8 456 World hIoni + 12 -38.5 124 -2.15e+03 49.8 0.000417 2.14 458 World hIoni + 13 -38.6 124 -2.08e+03 49.8 0.012 76.5 535 World hIoni + 14 -38.8 124 -2e+03 49.8 0.0214 80.5 615 World hIoni + 15 -39.1 124 -1.88e+03 49.7 0.0211 118 733 World hIoni + 16 -39.2 124 -1.85e+03 49.7 0.00656 31.8 765 World hIoni + 17 -39.4 124 -1.79e+03 49.7 0.00783 52.6 818 World hIoni + 18 -39.5 124 -1.76e+03 49.7 0.00501 36.8 854 World hIoni + 19 -39.5 123 -1.73e+03 49.7 0.00703 25.7 880 World hIoni + 20 -39.6 123 -1.73e+03 49.7 0.00154 6.09 886 cloudPV CoupledTransportation + 21 -39.6 123 -1.72e+03 48.1 1.66 1.26 888 World CoupledTransportation + 22 -39.6 124 -1.68e+03 48 0.00553 41.5 929 World hIoni + 23 -39.7 124 -1.67e+03 48 0.00191 18.1 947 World hIoni + 24 -39.8 124 -1.63e+03 48 0.00642 32.6 980 World hIoni + 25 -39.9 124 -1.58e+03 48 0.0113 54.3 1.03e+03 World hIoni + 26 -40 124 -1.5e+03 48 0.012 76.5 1.11e+03 World hIoni + 27 -40.2 124 -1.45e+03 48 0.00789 54.8 1.17e+03 World hIoni + 28 -40.3 124 -1.4e+03 48 0.00717 44.7 1.21e+03 World hIoni + 29 -40.3 124 -1.39e+03 48 0.00246 14.5 1.22e+03 World hIoni + 30 -40.4 124 -1.34e+03 48 0.00799 44.6 1.27e+03 World hIoni + 31 -40.5 124 -1.32e+03 47.9 0.00398 26 1.3e+03 World hIoni + 32 -40.9 124 -1.17e+03 47.9 0.0223 144 1.44e+03 World hIoni + 33 -41 124 -1.15e+03 47.9 0.00368 28.3 1.47e+03 World hIoni + 34 -41 124 -1.11e+03 47.9 0.0065 33 1.5e+03 World hIoni + 35 -41.2 124 -1.04e+03 47.9 0.0136 68.4 1.57e+03 World hIoni + 36 -41.3 124 -1.02e+03 47.9 0.00449 25.7 1.59e+03 World hIoni + 37 -41.3 124 -1.01e+03 47.9 0.000278 3.81 1.6e+03 World hIoni + 38 -41.4 124 -1.01e+03 47.9 0.00106 6.99 1.61e+03 World hIoni + 39 -41.4 124 -989 47.9 0.00364 18.5 1.62e+03 World hIoni + 40 -41.9 124 -894 47.9 0.0187 94.6 1.72e+03 World hIoni + 41 -41.9 124 -887 47.9 0.000516 7.14 1.73e+03 World hIoni + 42 -42.5 124 -757 47.8 0.0218 130 1.86e+03 World hIoni + 43 -42.6 124 -729 47.8 0.00528 28 1.88e+03 World hIoni + 44 -42.8 124 -708 47.8 0.00473 21.3 1.9e+03 World hIoni + 45 -43 124 -667 47.8 0.00914 40.8 1.95e+03 World hIoni + 46 -43 124 -658 47.8 0.0012 8.86 1.95e+03 cloudPV CoupledTransportation + 47 -43 124 -656 45.3 2.47 1.79 1.96e+03 World CoupledTransportation + 48 -43.8 124 -568 45.3 0.0147 88 2.04e+03 World hIoni + 49 -45.7 125 -380 45.3 0.0444 189 2.23e+03 World hIoni + 50 -45.8 125 -366 45.3 0.000702 13.3 2.25e+03 World hIoni + 51 -45.9 125 -358 45.3 0.0019 8.07 2.25e+03 World hIoni + 52 -46.3 125 -325 45.3 0.00637 33.4 2.29e+03 World hIoni + 53 -47.3 125 -232 45.2 0.0171 93.2 2.38e+03 World hIoni + 54 -47.8 125 -194 45.2 0.00799 37.7 2.42e+03 World hIoni + 55 -48 125 -171 45.2 0.00489 23.1 2.44e+03 World hIoni + 56 -48.3 125 -146 45.2 0.00484 25 2.47e+03 World hIoni + 57 -48.3 125 -144 45.2 0.000289 1.67 2.47e+03 World hIoni + 58 -49 126 -74 45.2 0.0142 70.1 2.54e+03 World hIoni + 59 -49.2 126 -58.1 45.2 0.004 15.9 2.55e+03 World hIoni + 60 -49.4 126 -40.9 45.2 0.00263 17.2 2.57e+03 World hIoni + 61 -49.4 126 -36.3 45.2 0.000723 4.56 2.58e+03 World hIoni + 62 -49.4 126 -35 45.2 0.000209 1.29 2.58e+03 World hIoni + 63 -49.6 126 -22.1 45.2 0.00211 13 2.59e+03 World hIoni + 64 -49.9 126 8.52 45.2 0.00473 30.6 2.62e+03 World hIoni + 65 -50.8 126 101 45.2 0.0152 92.8 2.71e+03 World hIoni + 66 -51.6 127 168 45.1 0.0173 66.6 2.78e+03 World hIoni + 67 -51.7 127 178 45.1 0.00105 9.74 2.79e+03 World hIoni + 68 -52.1 127 216 45.1 0.00767 38.6 2.83e+03 World hIoni + 69 -52.6 127 267 45.1 0.0101 50.8 2.88e+03 World hIoni + 70 -52.8 127 291 45.1 0.00401 24.2 2.9e+03 World hIoni + 71 -53.4 127 355 45.1 0.0103 64.1 2.97e+03 World hIoni + 72 -53.6 127 374 45.1 0.00263 18.9 2.99e+03 World hIoni + 73 -53.7 127 381 45.1 0.00116 6.37 2.99e+03 World hIoni + 74 -54 127 409 45.1 0.00311 28.4 3.02e+03 World hIoni + 75 -54.3 128 448 45.1 0.00995 38.6 3.06e+03 World hIoni + 76 -54.5 128 467 45.1 0.00302 19.3 3.08e+03 World hIoni + 77 -54.6 128 479 45.1 0.0023 12.1 3.09e+03 World hIoni + 78 -57 129 735 45 0.0492 256 3.35e+03 World hIoni + 79 -57.4 129 771 45 0.00726 36.4 3.38e+03 World hIoni + 80 -57.7 129 797 45 0.0077 26 3.41e+03 cloudPV CoupledTransportation + 81 -57.7 129 799 42.5 2.52 1.94 3.41e+03 World CoupledTransportation + 82 -57.8 129 803 42.5 0.000269 4.08 3.42e+03 World hIoni + 83 -61.5 130 973 42.4 0.0327 170 3.59e+03 World hIoni + 84 -62.4 131 1.01e+03 42.4 0.00868 37.1 3.62e+03 World hIoni + 85 -64.1 131 1.08e+03 42.4 0.0148 66.6 3.69e+03 World hIoni + 86 -65.3 131 1.13e+03 42.4 0.00851 48.8 3.74e+03 World hIoni + 87 -66.2 132 1.16e+03 42.4 0.00573 34 3.77e+03 World hIoni + 88 -67.5 132 1.21e+03 42.4 0.00862 50.6 3.82e+03 World hIoni + 89 -68.3 133 1.24e+03 42.4 0.00482 32.5 3.86e+03 World hIoni + 90 -68.8 133 1.26e+03 42.4 0.00226 19.7 3.88e+03 World hIoni + 91 -69.7 133 1.3e+03 42.4 0.0108 35.7 3.91e+03 World hIoni + 92 -69.7 133 1.3e+03 42.4 0.000332 2.07 3.91e+03 World hIoni + 93 -70.3 133 1.32e+03 42.4 0.00413 24 3.94e+03 World hIoni + 94 -70.6 133 1.34e+03 42.4 0.00326 11.6 3.95e+03 World hIoni + 95 -71.1 134 1.36e+03 42.3 0.00315 19.9 3.97e+03 World hIoni + 96 -72.6 134 1.42e+03 42.3 0.0142 60.7 4.03e+03 World hIoni + 97 -74.6 136 1.5e+03 42.3 0.0198 79.5 4.11e+03 World hIoni + 98 -77.4 137 1.61e+03 42.3 0.0237 111 4.22e+03 World hIoni + 99 -78.3 138 1.65e+03 42.3 0.00749 38.6 4.26e+03 World hIoni + 100 -79.8 139 1.7e+03 42.3 0.0114 56.1 4.31e+03 World hIoni + 101 -80.1 139 1.72e+03 42.2 0.00147 14.8 4.33e+03 World hIoni + 102 -81 139 1.75e+03 42.2 0.00403 34.2 4.36e+03 World hIoni + 103 -81.8 140 1.78e+03 42.2 0.0101 31.7 4.4e+03 World hIoni + 104 -83.4 141 1.84e+03 42.2 0.0114 62.8 4.46e+03 World hIoni + 105 -83.5 141 1.85e+03 42.2 0.000272 4.21 4.46e+03 World hIoni + 106 -84.1 141 1.87e+03 42.2 0.00282 21 4.48e+03 World hIoni + 107 -86.5 143 1.96e+03 42.2 0.0189 91 4.57e+03 World hIoni + 108 -86.5 143 1.96e+03 42.2 0.000367 2.53 4.58e+03 World hIoni + 109 -87.2 143 1.99e+03 42.2 0.00516 26 4.6e+03 World hIoni + 110 -87.6 144 2e+03 42.2 0.00389 13.5 4.62e+03 World hIoni + 111 -87.7 144 2.01e+03 42.1 0.000409 3.31 4.62e+03 World hIoni + 112 -88 144 2.02e+03 42.1 0.00196 10.4 4.63e+03 World hIoni + 113 -88.7 144 2.04e+03 42.1 0.0047 26.4 4.66e+03 World hIoni + 114 -89 145 2.05e+03 42.1 0.00105 10.2 4.67e+03 World hIoni + 115 -89.3 145 2.07e+03 42.1 0.00355 14.6 4.68e+03 World hIoni + 116 -90.9 146 2.12e+03 42.1 0.011 55.6 4.74e+03 World hIoni + 117 -94.4 148 2.25e+03 42.1 0.0253 131 4.87e+03 World hIoni + 118 -94.7 148 2.27e+03 42.1 0.00194 11.3 4.88e+03 World hIoni + 119 -95.2 149 2.28e+03 42.1 0.0079 18.7 4.9e+03 World hIoni + 120 -97.6 150 2.38e+03 42 0.0196 95.3 4.99e+03 World hIoni + 121 -98 151 2.4e+03 42 0.00281 15.7 5.01e+03 World hIoni + 122 -98.1 151 2.4e+03 42 0.000145 3.54 5.01e+03 World hIoni + 123 -98.3 151 2.4e+03 42 0.000782 5.25 5.02e+03 World hIoni + 124 -98.7 151 2.42e+03 42 0.00284 17.4 5.03e+03 World hIoni + 125 -98.8 151 2.42e+03 42 0.000217 1.86 5.04e+03 World hIoni + 126 -99.1 151 2.43e+03 42 0.00285 11 5.05e+03 World hIoni + 127 -99.5 152 2.45e+03 42 0.00361 16.9 5.06e+03 World hIoni + 128 -100 152 2.48e+03 42 0.00422 23.9 5.09e+03 World hIoni + 129 -100 152 2.49e+03 42 0.00172 12.9 5.1e+03 World hIoni + 130 -102 153 2.55e+03 42 0.0128 59.6 5.16e+03 World hIoni + 131 -102 154 2.56e+03 42 0.00133 8.96 5.17e+03 World hIoni + 132 -103 154 2.58e+03 42 0.00305 19 5.19e+03 World hIoni + 133 -103 154 2.58e+03 42 0.000458 2.31 5.19e+03 World hIoni + 134 -103 154 2.6e+03 42 0.00294 22.2 5.21e+03 detectorPV CoupledTransportation + 135 -103 154 2.6e+03 36.6 5.42 1.76 5.22e+03 detectorPV hIoni + 136 -103 154 2.6e+03 31.4 5.12 1.41 5.22e+03 detectorPV hIoni + 137 -103 154 2.6e+03 27.2 4.22 1.11 5.22e+03 detectorPV hIoni + 138 -103 154 2.61e+03 23.1 4.1 0.898 5.22e+03 detectorPV hIoni + 139 -103 155 2.61e+03 19.6 3.48 0.712 5.22e+03 detectorPV hIoni + 140 -103 155 2.61e+03 16.4 3.28 0.573 5.22e+03 detectorPV hIoni + 141 -103 155 2.61e+03 13.2 3.14 0.456 5.22e+03 detectorPV hIoni + 142 -103 155 2.61e+03 10.4 2.78 0.358 5.22e+03 detectorPV hIoni + 143 -103 155 2.61e+03 7.5 2.93 0.284 5.22e+03 detectorPV hIoni + 144 -103 155 2.61e+03 4.55 2.95 0.216 5.22e+03 detectorPV hIoni + 145 -103 155 2.61e+03 1.24 3.31 0.144 5.22e+03 detectorPV hIoni + 146 -103 155 2.61e+03 0 1.24 0.0201 5.22e+03 detectorPV hIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 108, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 1.99e+03 0.00372 0 0 0 World initStep - 1 128 -45.2 1.99e+03 0.00188 0.00184 1.7 1.7 World eIoni - 2 128 -45.2 1.99e+03 0 0.00188 0.726 2.42 World eIoni + 0 -103 154 2.58e+03 0.0012 0 0 0 World initStep + 1 -103 154 2.58e+03 0 0.0012 0.368 0.368 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 107, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 1.96e+03 0.00225 0 0 0 World initStep - 1 128 -45.7 1.96e+03 0 0.00225 0.966 0.966 World eIoni + 0 -103 154 2.58e+03 0.00401 0 0 0 World initStep + 1 -104 153 2.58e+03 0.00166 0.00235 1.8 1.8 World eIoni + 2 -104 153 2.58e+03 0 0.00166 0.598 2.4 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 106, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 1.91e+03 0.0016 0 0 0 World initStep - 1 128 -46.2 1.91e+03 0 0.0016 0.565 0.565 World eIoni + 0 -102 154 2.56e+03 0.00241 0 0 0 World initStep + 1 -102 154 2.56e+03 0 0.00241 1.07 1.07 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 105, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 1.87e+03 0.0136 0 0 0 World initStep - 1 132 -43.7 1.87e+03 0.0125 0.00107 4.8 4.8 World msc - 2 134 -42.4 1.88e+03 0.0102 0.00225 4.59 9.39 World msc - 3 136 -41.7 1.88e+03 0.00968 0.000561 1.63 11 World eIoni - 4 139 -40.5 1.88e+03 0.00874 0.000943 3.59 14.6 World eIoni - 5 141 -39.2 1.88e+03 0.00743 0.00131 3.59 18.2 World eIoni - 6 141 -38.1 1.88e+03 0.00577 0.00166 3.04 21.2 World eIoni - 7 140 -36.6 1.88e+03 0.00343 0.00234 2.41 23.6 World eIoni - 8 140 -35.9 1.88e+03 0.0015 0.00193 1.58 25.2 World eIoni - 9 140 -35.8 1.88e+03 0 0.0015 0.513 25.7 World eIoni + 0 -102 153 2.55e+03 0.00131 0 0 0 World initStep + 1 -102 153 2.55e+03 0 0.00131 0.42 0.42 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 104, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 1.84e+03 0.00132 0 0 0 World initStep - 1 128 -46.1 1.84e+03 0 0.00132 0.423 0.423 World eIoni + 0 -100 152 2.48e+03 0.00153 0 0 0 World initStep + 1 -99.9 152 2.48e+03 0 0.00153 0.527 0.527 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 103, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 1.83e+03 0.00129 0 0 0 World initStep - 1 128 -46 1.83e+03 0 0.00129 0.407 0.407 World eIoni + 0 -99.5 152 2.45e+03 0.00341 0 0 0 World initStep + 1 -100 151 2.45e+03 0.0022 0.00121 1.57 1.57 World eIoni + 2 -100 152 2.45e+03 0 0.0022 0.931 2.51 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 102, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.1 1.79e+03 0.00119 0 0 0 World initStep - 1 128 -46.2 1.79e+03 0 0.00119 0.365 0.365 World eIoni + 0 -99.1 151 2.43e+03 0.00157 0 0 0 World initStep + 1 -99.3 151 2.43e+03 0 0.00157 0.548 0.548 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 101, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46 1.75e+03 0.00679 0 0 0 World initStep - 1 129 -44.3 1.75e+03 0.00535 0.00143 2.79 2.79 World eIoni - 2 128 -43 1.75e+03 0.00402 0.00134 2.27 5.05 World eIoni - 3 128 -42.8 1.75e+03 0.00322 0.000794 1.81 6.86 World eIoni - 4 128 -42.1 1.75e+03 0.0013 0.00192 1.5 8.36 World eIoni - 5 128 -42 1.75e+03 0 0.0013 0.412 8.77 World eIoni + 0 -98.8 151 2.42e+03 0.0024 0 0 0 World initStep + 1 -99 151 2.42e+03 0 0.0024 1.07 1.07 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 100, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46 1.72e+03 0.0012 0 0 0 World initStep - 1 128 -46 1.72e+03 0 0.0012 0.368 0.368 World eIoni + 0 -98.3 151 2.4e+03 0.00308 0 0 0 World initStep + 1 -97.6 151 2.4e+03 0.00167 0.00141 1.43 1.43 World eIoni + 2 -97.7 150 2.4e+03 0 0.00167 0.603 2.04 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 99, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 127 -46 1.58e+03 0.00106 0 0 0 World initStep - 1 127 -45.9 1.58e+03 0 0.00106 0.308 0.308 World eIoni + 0 -98.1 151 2.4e+03 0.00155 0 0 0 World initStep + 1 -98.3 151 2.4e+03 0 0.00155 0.537 0.537 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 98, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 127 -45.8 1.46e+03 0.00148 0 0 0 World initStep - 1 127 -45.7 1.46e+03 0 0.00148 0.5 0.5 World eIoni + 0 -98 151 2.4e+03 0.00115 0 0 0 World initStep + 1 -98 151 2.4e+03 0 0.00115 0.345 0.345 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 97, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 127 -45.8 1.45e+03 0.00879 0 0 0 World initStep - 1 130 -46.3 1.45e+03 0.00643 0.00236 3.61 3.61 World eIoni - 2 131 -45.9 1.45e+03 0.00464 0.00179 2.65 6.26 World eIoni - 3 132 -44.8 1.45e+03 0.00333 0.00131 2.02 8.29 World eIoni - 4 131 -44.8 1.45e+03 0.00148 0.00185 1.54 9.83 World eIoni - 5 131 -44.6 1.45e+03 0 0.00148 0.501 10.3 World eIoni + 0 -97.6 150 2.38e+03 0.011 0 0 0 World initStep + 1 -98.9 149 2.38e+03 0.00996 0.00106 2.24 2.24 World msc + 2 -100 150 2.38e+03 0.00943 0.00053 2.54 4.77 World msc + 3 -101 151 2.38e+03 0.00809 0.00134 2.28 7.06 World msc + 4 -103 151 2.39e+03 0.00643 0.00167 2.85 9.91 World msc + 5 -104 153 2.39e+03 0.00436 0.00207 2.65 12.6 World eIoni + 6 -105 154 2.39e+03 0.00339 0.00097 1.93 14.5 World eIoni + 7 -105 154 2.39e+03 0.00166 0.00173 1.57 16.1 World eIoni + 8 -105 154 2.39e+03 0 0.00166 0.6 16.7 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 126 -45.8 1.19e+03 0.00328 0 0 0 World initStep - 1 127 -46 1.19e+03 0.0017 0.00158 1.52 1.52 World eIoni - 2 127 -45.9 1.19e+03 0 0.0017 0.618 2.14 World eIoni + 0 -94.7 148 2.27e+03 0.00274 0 0 0 World initStep + 1 -94.9 149 2.27e+03 0.00121 0.00153 1.27 1.27 World eIoni + 2 -94.8 149 2.27e+03 0 0.00121 0.37 1.64 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 126 -45.8 1.15e+03 0.00416 0 0 0 World initStep - 1 125 -45.8 1.15e+03 0.00304 0.00112 1.86 1.86 World eIoni - 2 124 -46.1 1.15e+03 0 0.00304 1.42 3.28 World eIoni + 0 -94.4 148 2.25e+03 0.00326 0 0 0 World initStep + 1 -95.1 148 2.25e+03 0.00138 0.00187 1.51 1.51 World eIoni + 2 -95.2 148 2.25e+03 0 0.00138 0.454 1.97 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 126 -45.8 1.11e+03 0.00119 0 0 0 World initStep - 1 126 -45.7 1.11e+03 0 0.00119 0.364 0.364 World eIoni + 0 -90.9 146 2.12e+03 0.00172 0 0 0 World initStep + 1 -90.6 146 2.12e+03 0 0.00172 0.63 0.63 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 126 -45.8 1.09e+03 0.00243 0 0 0 World initStep - 1 125 -46.2 1.09e+03 0 0.00243 1.09 1.09 World eIoni + 0 -89.3 145 2.07e+03 0.00355 0 0 0 World initStep + 1 -88.9 144 2.07e+03 0 0.00355 1.63 1.63 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 125 -45.7 989 0.00136 0 0 0 World initStep - 1 125 -45.9 989 0 0.00136 0.44 0.44 World eIoni + 0 -89 145 2.05e+03 0.00147 0 0 0 World initStep + 1 -89.1 144 2.05e+03 0 0.00147 0.497 0.497 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 125 -45.5 927 0.0173 0 0 0 World initStep - 1 118 -41.9 927 0.0155 0.00174 8.77 8.77 World eIoni - 2 111 -41.6 929 0.0143 0.00124 7.49 16.3 World eIoni - 3 105 -42.9 930 0.0128 0.00153 6.65 22.9 World eIoni - 4 100 -43 929 0.0107 0.00204 5.69 28.6 World eIoni - 5 97.7 -45.6 927 0.00866 0.00207 4.55 33.1 World eIoni - 6 97.6 -48.3 927 0.00616 0.0025 3.56 36.7 World eIoni - 7 97.7 -49.9 926 0.00456 0.0016 2.55 39.3 World eIoni - 8 97.7 -49.6 926 0.00308 0.000346 0.774 40 World eIoni - 9 97.7 -49.4 925 0 0.00308 1.44 41.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 91 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 97.7 -49.6 926 0.00113 0 0 0 World initStep - 1 97.6 -49.7 925 0 0.00113 0.338 0.338 World eIoni + 0 -88.7 144 2.04e+03 0.00251 0 0 0 World initStep + 1 -88.3 144 2.04e+03 0 0.00251 1.14 1.14 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 125 -45.5 912 0.00115 0 0 0 World initStep - 1 125 -45.6 912 0 0.00115 0.345 0.345 World eIoni + 0 -88 144 2.02e+03 0.00123 0 0 0 World initStep + 1 -88 144 2.02e+03 0 0.00123 0.381 0.381 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 125 -45.4 889 0.00099 0 0 0 World initStep - 1 125 -45.5 889 0 0.00099 0.278 0.278 World eIoni + 0 -87.7 144 2.01e+03 0.00504 0 0 0 World initStep + 1 -88 145 2.01e+03 0.00385 0.0012 2.16 2.16 World eIoni + 2 -88.8 146 2.01e+03 0.00157 0.00227 1.74 3.9 World eIoni + 3 -88.7 146 2.01e+03 0 0.00157 0.551 4.45 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 125 -45.3 827 0.00376 0 0 0 World initStep - 1 125 -46.1 827 0.00178 0.00199 1.71 1.71 World eIoni - 2 125 -46.3 827 0 0.00178 0.664 2.38 World eIoni + 0 -87.6 144 2e+03 0.00383 0 0 0 World initStep + 1 -88.4 143 2e+03 0.00288 0.000953 1.74 1.74 World eIoni + 2 -87.8 143 2e+03 0 0.00288 1.34 3.08 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 125 -45.2 823 0.00965 0 0 0 World initStep - 1 128 -46.4 825 0.00715 0.00249 4.01 4.01 World eIoni - 2 128 -46.7 825 0.00547 7.25e-05 0.788 4.8 World eIoni - 3 130 -47.3 825 0.00273 0.00274 2.31 7.11 World eIoni - 4 130 -46.9 825 0.00108 0.00165 1.26 8.37 World eIoni - 5 130 -47 825 0 0.00108 0.316 8.68 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 -46.7 825 0.00161 0 0 0 World initStep - 1 128 -46.9 825 0 0.00161 0.571 0.571 World eIoni + 0 -87.2 143 1.99e+03 0.0019 0 0 0 World initStep + 1 -87.3 144 1.99e+03 0 0.0019 0.74 0.74 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 125 -45.2 802 0.00494 0 0 0 World initStep - 1 126 -46 803 0.00409 0.00085 2.13 2.13 World eIoni - 2 127 -45.7 803 0 0.00409 1.83 3.96 World eIoni + 0 -86.5 143 1.96e+03 0.00125 0 0 0 World initStep + 1 -86.4 143 1.96e+03 0 0.00125 0.392 0.392 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 125 -44.9 724 0.00251 0 0 0 World initStep - 1 125 -45.3 724 0 0.00251 1.14 1.14 World eIoni + 0 -86.5 143 1.96e+03 0.00753 0 0 0 World initStep + 1 -85.5 143 1.96e+03 0.00545 0.000711 1.09 1.09 World eIoni + 2 -86.8 142 1.96e+03 0.00331 0.00214 2.3 3.39 World eIoni + 3 -87.6 142 1.96e+03 0.00174 0.00157 1.53 4.92 World eIoni + 4 -87.5 142 1.96e+03 0 0.00174 0.643 5.56 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -85.5 143 1.96e+03 0.00137 0 0 0 World initStep + 1 -85.5 143 1.96e+03 0 0.00137 0.446 0.446 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 124 -44.7 659 0.00696 0 0 0 World initStep - 1 123 -43.2 660 0.00396 0.003 2.85 2.85 World eIoni - 2 123 -43.6 659 0.00215 0.00181 1.78 4.63 World eIoni - 3 123 -43.9 659 0 0.00215 0.895 5.53 World eIoni + 0 -84.1 141 1.87e+03 0.00175 0 0 0 World initStep + 1 -84.3 141 1.87e+03 0 0.00175 0.651 0.651 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 124 -44.6 634 0.00193 0 0 0 World initStep - 1 124 -44.3 634 0 0.00193 0.757 0.757 World eIoni + 0 -83.5 141 1.85e+03 0.0113 0 0 0 World initStep + 1 -84 144 1.85e+03 0.00937 0.00191 3.44 3.44 World msc + 2 -85.1 147 1.85e+03 0.00818 0.00119 3.61 7.05 World msc + 3 -85.1 147 1.85e+03 0.00638 0.000163 0.66 7.71 World eIoni + 4 -85 146 1.85e+03 0.0034 0.00299 2.64 10.3 World eIoni + 5 -85.6 145 1.85e+03 0 0.0034 1.57 11.9 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 83 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -85.1 147 1.85e+03 0.00163 0 0 0 World initStep + 1 -85 147 1.85e+03 0 0.00163 0.582 0.582 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 124 -44.2 468 0.0011 0 0 0 World initStep - 1 124 -44.1 468 0 0.0011 0.323 0.323 World eIoni + 0 -83.4 141 1.84e+03 0.00131 0 0 0 World initStep + 1 -83.3 141 1.84e+03 0 0.00131 0.418 0.418 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 124 -44.2 446 0.00181 0 0 0 World initStep - 1 124 -44.4 446 0 0.00181 0.686 0.686 World eIoni + 0 -81.8 140 1.78e+03 0.00599 0 0 0 World initStep + 1 -81 141 1.78e+03 0.0033 0.000729 1.39 1.39 World eIoni + 2 -80.8 141 1.78e+03 0.00148 0.00182 1.53 2.92 World eIoni + 3 -80.7 141 1.78e+03 0 0.00148 0.503 3.43 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 81 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -81 141 1.78e+03 0.00196 0 0 0 World initStep + 1 -80.7 141 1.78e+03 0 0.00196 0.774 0.774 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 123 -44.1 407 0.00252 0 0 0 World initStep - 1 124 -44.4 407 0 0.00252 1.15 1.15 World eIoni + 0 -81 139 1.75e+03 0.00161 0 0 0 World initStep + 1 -80.8 140 1.75e+03 0 0.00161 0.573 0.573 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 123 -44 361 0.00166 0 0 0 World initStep - 1 123 -44.3 361 0 0.00166 0.597 0.597 World eIoni + 0 -80.1 139 1.72e+03 0.00212 0 0 0 World initStep + 1 -80.3 139 1.72e+03 0 0.00212 0.876 0.876 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 123 -44 341 0.00105 0 0 0 World initStep - 1 123 -43.9 341 0 0.00105 0.303 0.303 World eIoni + 0 -79.8 139 1.7e+03 0.00503 0 0 0 World initStep + 1 -79.3 137 1.7e+03 0.00398 0.00105 2.16 2.16 World eIoni + 2 -78.5 137 1.7e+03 0.0015 0.00248 1.79 3.95 World eIoni + 3 -78.5 138 1.7e+03 0 0.0015 0.513 4.46 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 123 -43.9 299 0.00189 0 0 0 World initStep - 1 123 -44.2 299 0 0.00189 0.732 0.732 World eIoni + 0 -78.3 138 1.65e+03 0.00112 0 0 0 World initStep + 1 -78.2 138 1.65e+03 0 0.00112 0.33 0.33 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 123 -43.9 273 0.0012 0 0 0 World initStep - 1 123 -43.7 273 0 0.0012 0.367 0.367 World eIoni + 0 -77.4 137 1.61e+03 0.00708 0 0 0 World initStep + 1 -79.3 136 1.61e+03 0.00612 0.000962 2.9 2.9 World eIoni + 2 -79.2 136 1.61e+03 0.00444 0.00168 2.54 5.44 World eIoni + 3 -79.6 137 1.61e+03 0.00158 0.00286 1.62 7.06 World eIoni + 4 -79.6 137 1.61e+03 0 0.00158 0.553 7.62 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 123 -43.8 253 0.00122 0 0 0 World initStep - 1 123 -43.9 253 0 0.00122 0.377 0.377 World eIoni + 0 -72.6 134 1.42e+03 0.0011 0 0 0 World initStep + 1 -72.7 134 1.42e+03 0 0.0011 0.322 0.322 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 122 -43.8 216 0.00132 0 0 0 World initStep - 1 122 -43.7 217 0 0.00132 0.424 0.424 World eIoni + 0 -71.1 134 1.36e+03 0.00472 0 0 0 World initStep + 1 -71.4 132 1.36e+03 0.00324 0.00148 2.05 2.05 World eIoni + 2 -71.6 132 1.36e+03 0 0.00324 1.5 3.56 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 122 -43.7 191 0.0206 0 0 0 World initStep - 1 114 -50 193 0.0178 0.00286 11.5 11.5 World eIoni - 2 109 -56.4 196 0.0155 0.00222 9.13 20.6 World eIoni - 3 105 -58.7 196 0.0109 0.00254 4.68 25.3 World eIoni - 4 104 -61.3 199 0.0104 0.000528 4.65 30 World eIoni - 5 104 -62.1 202 0.00829 0.00211 4.38 34.4 World eIoni - 6 103 -61.9 204 0.00711 0.00118 3.39 37.7 World eIoni - 7 101 -62.5 206 0.00547 0.00164 2.91 40.7 World eIoni - 8 99.9 -62.2 207 0.00265 0.00282 2.31 43 World eIoni - 9 100 -61.8 206 0 0.00265 1.22 44.2 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 73 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 105 -58.7 196 0.00207 0 0 0 World initStep - 1 105 -58.6 196 0 0.00207 0.843 0.843 World eIoni + 0 -70.6 133 1.34e+03 0.00134 0 0 0 World initStep + 1 -70.5 133 1.34e+03 0 0.00134 0.432 0.432 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 122 -43.6 136 0.0138 0 0 0 World initStep - 1 126 -42 136 0.0126 0.00118 4.82 4.82 World msc - 2 131 -42.5 136 0.0111 0.00147 5.59 10.4 World eIoni - 3 134 -43.6 135 0.00642 0.00161 3.35 13.8 World eIoni - 4 134 -45 133 0.00418 0.00225 2.65 16.4 World eIoni - 5 134 -45.7 134 0.00184 0.00234 1.86 18.3 World eIoni - 6 134 -45.9 134 0 0.00184 0.699 19 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 136, Parent ID = 72 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 134 -43.6 135 0.00309 0 0 0 World initStep - 1 135 -43.5 135 0 0.00309 1.44 1.44 World eIoni + 0 -70.3 133 1.32e+03 0.00207 0 0 0 World initStep + 1 -70.5 134 1.32e+03 0 0.00207 0.844 0.844 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 122 -43.6 117 0.00323 0 0 0 World initStep - 1 121 -44.1 117 0.00151 0.00172 1.5 1.5 World eIoni - 2 121 -44 118 0 0.00151 0.517 2.02 World eIoni + 0 -69.7 133 1.3e+03 0.00331 0 0 0 World initStep + 1 -69.5 132 1.3e+03 0 0.00331 1.54 1.54 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 122 -43.5 87.6 0.00134 0 0 0 World initStep - 1 122 -43.4 87.6 0 0.00134 0.434 0.434 World eIoni + 0 -69.7 133 1.3e+03 0.000997 0 0 0 World initStep + 1 -69.8 133 1.3e+03 0 0.000997 0.281 0.281 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 122 -43.5 80.7 0.0027 0 0 0 World initStep - 1 122 -43.8 80.8 0 0.0027 1.25 1.25 World eIoni + 0 -68.8 133 1.26e+03 0.00102 0 0 0 World initStep + 1 -68.8 133 1.26e+03 0 0.00102 0.29 0.29 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 122 -43.5 77.5 0.00107 0 0 0 World initStep - 1 122 -43.5 77.5 0 0.00107 0.31 0.31 World eIoni + 0 -68.3 133 1.24e+03 0.00259 0 0 0 World initStep + 1 -68.4 132 1.24e+03 0 0.00259 1.18 1.18 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 121 -43.4 42.7 0.00173 0 0 0 World initStep - 1 122 -43.4 42.7 0 0.00173 0.64 0.64 World eIoni + 0 -66.2 132 1.16e+03 0.00245 0 0 0 World initStep + 1 -65.9 132 1.16e+03 0 0.00245 1.1 1.1 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 121 -43.4 20.6 0.00103 0 0 0 World initStep - 1 121 -43.4 20.6 0 0.00103 0.295 0.295 World eIoni + 0 -65.3 131 1.13e+03 0.00262 0 0 0 World initStep + 1 -65.8 132 1.13e+03 0 0.00262 1.2 1.2 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 121 -43.2 -16 0.00118 0 0 0 World initStep - 1 121 -43.2 -16 0 0.00118 0.357 0.357 World eIoni + 0 -64.1 131 1.08e+03 0.0021 0 0 0 World initStep + 1 -64.2 131 1.08e+03 0 0.0021 0.868 0.868 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 121 -43.2 -24.1 0.00127 0 0 0 World initStep - 1 121 -43.3 -24.1 0 0.00127 0.398 0.398 World eIoni + 0 -62.4 131 1.01e+03 0.00113 0 0 0 World initStep + 1 -62.5 130 1.01e+03 0 0.00113 0.338 0.338 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 121 -43 -49.7 0.0032 0 0 0 World initStep - 1 120 -43.2 -49.6 0.00118 0.00202 1.49 1.49 World eIoni - 2 120 -43.2 -49.5 0 0.00118 0.359 1.85 World eIoni + 0 -61.5 130 973 0.00185 0 0 0 World initStep + 1 -61.8 130 973 0 0.00185 0.707 0.707 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 121 -42.9 -74 0.00317 0 0 0 World initStep - 1 121 -43.5 -73.9 0 0.00317 1.47 1.47 World eIoni + 0 -57.8 129 803 0.00229 0 0 0 World initStep + 1 -57.7 129 803 0 0.00229 0.997 0.997 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 120 -42.4 -176 0.00124 0 0 0 World initStep - 1 120 -42.3 -176 0 0.00124 0.386 0.386 World eIoni + 0 -57.4 129 771 0.00175 0 0 0 World initStep + 1 -57.3 129 771 0 0.00175 0.647 0.647 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 120 -42.3 -194 0.00237 0 0 0 World initStep - 1 120 -42 -194 0 0.00237 1.05 1.05 World eIoni + 0 -57 129 735 0.00113 0 0 0 World initStep + 1 -57.1 129 735 0 0.00113 0.335 0.335 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 120 -42.2 -233 0.00113 0 0 0 World initStep - 1 120 -42.2 -233 0 0.00113 0.337 0.337 World eIoni + 0 -54.6 128 479 0.00115 0 0 0 World initStep + 1 -54.5 128 479 0 0.00115 0.346 0.346 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 120 -42.1 -255 0.00143 0 0 0 World initStep - 1 120 -42.2 -255 0 0.00143 0.478 0.478 World eIoni + 0 -54.5 128 467 0.00163 0 0 0 World initStep + 1 -54.8 128 467 0 0.00163 0.58 0.58 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 120 -42 -262 0.00307 0 0 0 World initStep - 1 119 -42.2 -262 0 0.00307 1.43 1.43 World eIoni + 0 -54.3 128 448 0.00181 0 0 0 World initStep + 1 -54.5 127 448 0 0.00181 0.686 0.686 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 119 -41.7 -346 0.00516 0 0 0 World initStep - 1 118 -42.4 -346 0.00256 0.0026 2.2 2.2 World eIoni - 2 118 -42.6 -346 0 0.00256 1.17 3.37 World eIoni + 0 -54 127 409 0.00418 0 0 0 World initStep + 1 -53.1 128 409 0.00278 0.0014 1.86 1.86 World eIoni + 2 -52.7 128 410 0.0014 0.00138 1.29 3.16 World eIoni + 3 -52.6 128 409 0 0.0014 0.462 3.62 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 119 -41.2 -471 0.0185 0 0 0 World initStep - 1 118 -42.3 -471 0.0152 0.00013 1.31 1.31 World eIoni - 2 116 -48.3 -469 0.0131 0.00211 7.25 8.57 World eIoni - 3 120 -52.1 -468 0.0111 0.00196 5.89 14.5 World eIoni - 4 123 -54 -465 0.00862 0.00251 4.76 19.2 World eIoni - 5 126 -53 -464 0.00709 0.00153 3.54 22.8 World eIoni - 6 127 -51.6 -464 0.00551 0.00158 2.9 25.7 World eIoni - 7 128 -50.5 -464 0.00436 0.00115 2.32 28 World eIoni - 8 127 -51.2 -464 0.00214 0.00223 1.93 29.9 World eIoni - 9 127 -51.1 -465 0 0.00214 0.889 30.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 137, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 118 -42.3 -471 0.00314 0 0 0 World initStep - 1 118 -42.8 -471 0 0.00314 1.46 1.46 World eIoni + 0 -53.7 127 381 0.00321 0 0 0 World initStep + 1 -54.4 127 381 0.00107 0.00214 1.49 1.49 World eIoni + 2 -54.3 127 381 0 0.00107 0.31 1.8 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 119 -41 -501 0.0026 0 0 0 World initStep - 1 119 -41.5 -501 0 0.0026 1.19 1.19 World eIoni + 0 -53.6 127 374 0.0011 0 0 0 World initStep + 1 -53.7 127 374 0 0.0011 0.325 0.325 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 118 -40.9 -550 0.00668 0 0 0 World initStep - 1 120 -41.8 -550 0.00556 0.00112 2.75 2.75 World eIoni - 2 121 -42.4 -549 0.00465 0.000913 2.34 5.09 World eIoni - 3 122 -42.5 -550 0.00291 0.00174 2.03 7.11 World eIoni - 4 123 -42.3 -550 0 0.00291 1.36 8.47 World eIoni + 0 -52.8 127 291 0.00149 0 0 0 World initStep + 1 -52.7 127 291 0 0.00149 0.507 0.507 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 118 -40.9 -599 0.00181 0 0 0 World initStep - 1 118 -40.9 -598 0 0.00181 0.682 0.682 World eIoni + 0 -51.7 127 178 0.00247 0 0 0 World initStep + 1 -51.6 127 178 0.00101 0.00146 1.11 1.11 World eIoni + 2 -51.6 127 178 0 0.00101 0.285 1.4 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 118 -41 -651 0.0031 0 0 0 World initStep - 1 117 -41.3 -651 0 0.0031 1.44 1.44 World eIoni + 0 -49.9 126 8.52 0.00497 0 0 0 World initStep + 1 -49 125 8.85 0.00224 0.00273 2.14 2.14 World eIoni + 2 -48.8 125 9.19 0 0.00224 0.957 3.09 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 118 -41.1 -690 0.00138 0 0 0 World initStep - 1 117 -41.2 -690 0 0.00138 0.452 0.452 World eIoni + 0 -49.6 126 -22.1 0.00102 0 0 0 World initStep + 1 -49.7 126 -22.1 0 0.00102 0.292 0.292 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 117 -41.1 -698 0.00656 0 0 0 World initStep - 1 118 -39.5 -698 0.00569 0.000868 2.7 2.7 World eIoni - 2 118 -39 -697 0.00337 0.000723 1 3.7 World eIoni - 3 117 -38.6 -697 0.00238 0.000992 1.56 5.26 World eIoni - 4 117 -38.2 -696 0 0.00238 1.05 6.32 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 49 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 118 -39 -697 0.0016 0 0 0 World initStep - 1 118 -38.9 -697 0 0.0016 0.566 0.566 World eIoni + 0 -49.4 126 -36.3 0.00183 0 0 0 World initStep + 1 -49.4 126 -36.3 0 0.00183 0.694 0.694 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 117 -41.1 -706 0.00184 0 0 0 World initStep - 1 117 -41 -706 0 0.00184 0.702 0.702 World eIoni + 0 -49.4 126 -40.9 0.00147 0 0 0 World initStep + 1 -49.5 126 -40.9 0 0.00147 0.496 0.496 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 116 -41.4 -871 0.00105 0 0 0 World initStep - 1 117 -41.5 -871 0 0.00105 0.302 0.302 World eIoni + 0 -49 126 -74 0.00212 0 0 0 World initStep + 1 -49.3 126 -73.9 0 0.00212 0.878 0.878 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 116 -41.5 -909 0.0141 0 0 0 World initStep - 1 122 -41.7 -909 0.0127 0.0014 6.52 6.52 World eIoni - 2 127 -39.2 -908 0.0101 0.0026 5.65 12.2 World eIoni - 3 129 -36.7 -908 0.00767 0.00243 4.23 16.4 World eIoni - 4 131 -35.8 -908 0.00637 0.0013 3.13 19.5 World eIoni - 5 132 -35.8 -906 0.00381 0.00131 1.86 21.4 World eIoni - 6 131 -35.9 -906 0 0.00381 1.73 23.1 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 132 -35.8 -906 0.00125 0 0 0 World initStep - 1 132 -35.6 -906 0 0.00125 0.39 0.39 World eIoni + 0 -48.3 125 -144 0.00125 0 0 0 World initStep + 1 -48.3 125 -144 0 0.00125 0.39 0.39 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 116 -41.5 -960 0.00174 0 0 0 World initStep - 1 116 -41.8 -959 0 0.00174 0.644 0.644 World eIoni + 0 -48.3 125 -146 0.00451 0 0 0 World initStep + 1 -49.3 125 -146 0.00256 0.00195 1.98 1.98 World eIoni + 2 -49.4 124 -145 0 0.00256 1.17 3.15 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 116 -41.6 -983 0.00175 0 0 0 World initStep - 1 116 -41.3 -983 0 0.00175 0.65 0.65 World eIoni + 0 -48 125 -171 0.00114 0 0 0 World initStep + 1 -47.9 125 -171 0 0.00114 0.339 0.339 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 116 -41.6 -1e+03 0.0572 0 0 0 World initStep - 1 114 -70.6 -972 0.0476 0.00424 43.9 43.9 World eIoni - 2 118 -97.1 -940 0.0409 0.00669 47.5 91.4 World eIoni - 3 118 -98 -938 0.0392 0.000309 2.17 93.6 World eIoni - 4 126 -105 -930 0.0314 0.00589 14.1 108 World eIoni - 5 138 -124 -929 0.027 0.00444 23.1 131 World eIoni - 6 137 -134 -917 0.0238 0.00318 17.9 149 World eIoni - 7 136 -137 -918 0.0213 0.000783 3.33 152 World eIoni - 8 135 -146 -925 0.0197 0.00157 12.1 164 World eIoni - 9 132 -152 -931 0.0172 0.00248 10.7 175 World eIoni - 10 133 -159 -936 0.0154 0.00184 8.7 183 World eIoni - 11 137 -161 -939 0.0128 0.00259 7.36 191 World eIoni - 12 141 -162 -943 0.0119 0.000823 5.69 197 World eIoni - 13 146 -162 -945 0.0105 0.00148 5.21 202 World eIoni - 14 147 -163 -949 0.00741 0.00306 4.41 206 World eIoni - 15 147 -165 -950 0.00605 0.00136 3.03 209 World eIoni - 16 148 -167 -950 0.00456 0.00149 2.51 212 World eIoni - 17 148 -168 -949 0.00322 0.00134 2 214 World eIoni - 18 149 -168 -949 0.00179 0.00143 1.49 215 World eIoni - 19 149 -167 -949 0 0.00179 0.672 216 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 43 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 136 -137 -918 0.00178 0 0 0 World initStep - 1 136 -137 -918 0 0.00178 0.667 0.667 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 142, Parent ID = 43 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 126 -105 -930 0.00189 0 0 0 World initStep - 1 127 -105 -930 0 0.00189 0.733 0.733 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 43 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 118 -98 -938 0.00142 0 0 0 World initStep - 1 118 -98 -938 0 0.00142 0.47 0.47 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 43 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 114 -70.6 -972 0.00535 0 0 0 World initStep - 1 115 -70.8 -972 0.00401 0.00134 2.27 2.27 World eIoni - 2 115 -70 -972 0.00338 0.000632 1.8 4.07 World eIoni - 3 114 -69.8 -972 0.00214 0.00124 1.56 5.63 World eIoni - 4 114 -69.7 -972 0 0.00214 0.891 6.53 World eIoni + 0 -47.8 125 -194 0.00104 0 0 0 World initStep + 1 -47.7 125 -194 0 0.00104 0.298 0.298 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 115 -41.6 -1.04e+03 0.00121 0 0 0 World initStep - 1 115 -41.4 -1.04e+03 0 0.00121 0.371 0.371 World eIoni + 0 -47.3 125 -232 0.00129 0 0 0 World initStep + 1 -47.4 125 -232 0 0.00129 0.407 0.407 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 115 -41.6 -1.04e+03 0.00114 0 0 0 World initStep - 1 115 -41.7 -1.04e+03 0 0.00114 0.341 0.341 World eIoni + 0 -45.9 125 -358 0.00278 0 0 0 World initStep + 1 -46.3 125 -358 0 0.00278 1.29 1.29 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 115 -41.6 -1.06e+03 0.00146 0 0 0 World initStep - 1 115 -41.7 -1.06e+03 0 0.00146 0.494 0.494 World eIoni + 0 -45.8 125 -366 0.00675 0 0 0 World initStep + 1 -46.8 123 -365 0.0057 0.00104 2.77 2.77 World eIoni + 2 -47.1 121 -365 0.00181 0.00266 1.66 4.43 World eIoni + 3 -47.2 121 -365 0 0.00181 0.686 5.12 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 40 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -47.1 121 -365 0.00123 0 0 0 World initStep + 1 -47.2 121 -365 0 0.00123 0.382 0.382 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 115 -41.5 -1.07e+03 0.018 0 0 0 World initStep - 1 116 -47.3 -1.07e+03 0.0159 0.00206 9.29 9.29 World eIoni - 2 115 -50.4 -1.06e+03 0.0147 0.00123 7.74 17 World eIoni - 3 115 -44.1 -1.06e+03 0.0134 0.00129 6.89 23.9 World eIoni - 4 113 -39.2 -1.06e+03 0.012 0.00137 6.06 30 World eIoni - 5 110 -36.2 -1.06e+03 0.00892 0.00205 4.33 34.3 World eIoni - 6 108 -36.8 -1.06e+03 0.00658 0.00234 3.67 38 World eIoni - 7 110 -37.2 -1.06e+03 0.00471 0.00187 2.71 40.7 World eIoni - 8 110 -38.3 -1.06e+03 0.00214 0.00257 2.05 42.7 World eIoni - 9 110 -38.2 -1.06e+03 0 0.00214 0.892 43.6 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 39 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 110 -36.2 -1.06e+03 0.00103 0 0 0 World initStep - 1 110 -36.1 -1.06e+03 0 0.00103 0.293 0.293 World eIoni + 0 -45.7 125 -380 0.0016 0 0 0 World initStep + 1 -45.4 125 -379 0 0.0016 0.565 0.565 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 115 -41.5 -1.11e+03 0.00298 0 0 0 World initStep - 1 115 -41 -1.11e+03 0 0.00298 1.39 1.39 World eIoni + 0 -43.8 124 -568 0.0012 0 0 0 World initStep + 1 -44 124 -568 0 0.0012 0.367 0.367 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 115 -41.5 -1.11e+03 0.00213 0 0 0 World initStep - 1 115 -41.1 -1.11e+03 0 0.00213 0.883 0.883 World eIoni + 0 -43 124 -667 0.00203 0 0 0 World initStep + 1 -42.7 124 -667 0 0.00203 0.818 0.818 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 115 -41.5 -1.13e+03 0.00145 0 0 0 World initStep - 1 115 -41.5 -1.13e+03 0 0.00145 0.487 0.487 World eIoni + 0 -42.8 124 -708 0.00184 0 0 0 World initStep + 1 -43 124 -708 0 0.00184 0.702 0.702 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 115 -41.4 -1.14e+03 0.00476 0 0 0 World initStep - 1 115 -40.2 -1.14e+03 0.0033 0.00146 2.06 2.06 World eIoni - 2 115 -39.7 -1.14e+03 0 0.0033 1.53 3.6 World eIoni + 0 -42.6 124 -729 0.000993 0 0 0 World initStep + 1 -42.6 124 -729 0 0.000993 0.279 0.279 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 115 -41.4 -1.2e+03 0.0102 0 0 0 World initStep - 1 112 -43.6 -1.2e+03 0.00766 0.00254 4.28 4.28 World eIoni - 2 110 -44.2 -1.2e+03 0.00595 0.00172 3.13 7.41 World eIoni - 3 109 -43.4 -1.2e+03 0.0039 0.00204 2.48 9.89 World eIoni - 4 109 -43.8 -1.2e+03 0.00157 0.00234 1.76 11.7 World eIoni - 5 109 -44 -1.2e+03 0 0.00157 0.548 12.2 World eIoni + 0 -41.9 124 -887 0.0015 0 0 0 World initStep + 1 -41.8 124 -887 0 0.0015 0.515 0.515 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 115 -41.4 -1.21e+03 0.00189 0 0 0 World initStep - 1 115 -41.7 -1.21e+03 0 0.00189 0.731 0.731 World eIoni + 0 -41.9 124 -894 0.0014 0 0 0 World initStep + 1 -42 124 -894 0 0.0014 0.462 0.462 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 115 -41.4 -1.22e+03 0.00174 0 0 0 World initStep - 1 115 -41.2 -1.22e+03 0 0.00174 0.641 0.641 World eIoni + 0 -41.4 124 -989 0.00482 0 0 0 World initStep + 1 -42.1 123 -988 0.00249 0.00233 2.08 2.08 World eIoni + 2 -42.2 123 -988 0.00113 0.00136 0.0935 2.18 World eIoni + 3 -42.3 123 -988 0 0.00113 0.337 2.51 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 114 -41.3 -1.32e+03 0.00606 0 0 0 World initStep - 1 113 -40.7 -1.32e+03 0.00295 0.00311 2.52 2.52 World eIoni - 2 113 -40.5 -1.32e+03 0 0.00295 1.37 3.89 World eIoni + 0 -41.4 124 -1.01e+03 0.00102 0 0 0 World initStep + 1 -41.3 124 -1.01e+03 0 0.00102 0.29 0.29 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 114 -41.3 -1.33e+03 0.00155 0 0 0 World initStep - 1 114 -41.5 -1.33e+03 0 0.00155 0.539 0.539 World eIoni + 0 -41.3 124 -1.01e+03 0.00156 0 0 0 World initStep + 1 -41.5 124 -1.01e+03 0 0.00156 0.545 0.545 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 114 -41.3 -1.34e+03 0.00534 0 0 0 World initStep - 1 113 -40.6 -1.34e+03 0.00429 0.00105 2.26 2.26 World eIoni - 2 112 -40.4 -1.34e+03 0.00364 0.000652 1.9 4.17 World eIoni - 3 112 -41.1 -1.34e+03 0 0.00364 1.67 5.83 World eIoni + 0 -41.2 124 -1.04e+03 0.00182 0 0 0 World initStep + 1 -41.2 124 -1.04e+03 0 0.00182 0.687 0.687 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 114 -41.1 -1.44e+03 0.00117 0 0 0 World initStep - 1 114 -41 -1.44e+03 0 0.00117 0.353 0.353 World eIoni + 0 -41 124 -1.11e+03 0.00184 0 0 0 World initStep + 1 -40.9 124 -1.11e+03 0 0.00184 0.701 0.701 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 114 -41 -1.48e+03 0.00708 0 0 0 World initStep - 1 114 -43.1 -1.48e+03 0.0043 0.00278 2.9 2.9 World eIoni - 2 114 -43.6 -1.48e+03 0.00198 0.00232 1.9 4.8 World eIoni - 3 113 -43.6 -1.48e+03 0 0.00198 0.786 5.59 World eIoni + 0 -41 124 -1.15e+03 0.00176 0 0 0 World initStep + 1 -40.9 124 -1.15e+03 0 0.00176 0.654 0.654 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 114 -40.9 -1.51e+03 0.00243 0 0 0 World initStep - 1 114 -41.3 -1.51e+03 0 0.00243 1.09 1.09 World eIoni + 0 -40.9 124 -1.17e+03 0.00123 0 0 0 World initStep + 1 -41 124 -1.17e+03 0 0.00123 0.379 0.379 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 114 -40.9 -1.53e+03 0.00111 0 0 0 World initStep - 1 114 -41 -1.53e+03 0 0.00111 0.328 0.328 World eIoni + 0 -40.5 124 -1.32e+03 0.00256 0 0 0 World initStep + 1 -40.6 124 -1.32e+03 0 0.00256 1.17 1.17 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 114 -40.8 -1.56e+03 0.00128 0 0 0 World initStep - 1 114 -40.7 -1.56e+03 0 0.00128 0.403 0.403 World eIoni + 0 -40.4 124 -1.34e+03 0.00124 0 0 0 World initStep + 1 -40.5 124 -1.34e+03 0 0.00124 0.386 0.386 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 114 -40.7 -1.61e+03 0.00114 0 0 0 World initStep - 1 114 -40.7 -1.61e+03 0 0.00114 0.342 0.342 World eIoni + 0 -40.3 124 -1.39e+03 0.00119 0 0 0 World initStep + 1 -40.2 124 -1.39e+03 0 0.00119 0.361 0.361 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 114 -40.5 -1.7e+03 0.00136 0 0 0 World initStep - 1 114 -40.6 -1.7e+03 0 0.00136 0.443 0.443 World eIoni + 0 -40.3 124 -1.4e+03 0.0012 0 0 0 World initStep + 1 -40.2 124 -1.4e+03 0 0.0012 0.368 0.368 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.4 -1.75e+03 0.00333 0 0 0 World initStep - 1 113 -41.2 -1.75e+03 0 0.00333 1.54 1.54 World eIoni + 0 -40 124 -1.5e+03 0.00372 0 0 0 World initStep + 1 -40.2 123 -1.5e+03 0.00258 0.00114 1.7 1.7 World eIoni + 2 -40.5 123 -1.5e+03 0 0.00258 1.18 2.87 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.4 -1.75e+03 0.00165 0 0 0 World initStep - 1 113 -40.4 -1.75e+03 0 0.00165 0.595 0.595 World eIoni + 0 -39.9 124 -1.58e+03 0.00253 0 0 0 World initStep + 1 -40.4 124 -1.58e+03 0 0.00253 1.15 1.15 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.2 -1.86e+03 0.00393 0 0 0 World initStep - 1 113 -41.2 -1.86e+03 0 0.00393 1.77 1.77 World eIoni + 0 -39.7 124 -1.67e+03 0.00823 0 0 0 World initStep + 1 -40.1 126 -1.66e+03 0.00693 0.00131 3.37 3.37 World eIoni + 2 -39.7 126 -1.66e+03 0.00556 0.00136 2.84 6.21 World eIoni + 3 -40.1 127 -1.66e+03 0.0033 0.00227 2.34 8.55 World eIoni + 4 -39.4 127 -1.66e+03 0.00167 0.00162 1.53 10.1 World eIoni + 5 -39.4 127 -1.66e+03 0 0.00167 0.606 10.7 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.2 -1.87e+03 0.00173 0 0 0 World initStep - 1 113 -40.4 -1.87e+03 0 0.00173 0.639 0.639 World eIoni + 0 -39.6 124 -1.68e+03 0.015 0 0 0 World initStep + 1 -37.1 120 -1.68e+03 0.014 0.000967 5.88 5.88 World msc + 2 -36.2 116 -1.68e+03 0.0131 0.000962 6.48 12.4 World eIoni + 3 -38 111 -1.68e+03 0.0101 0.00295 5.88 18.2 World eIoni + 4 -38 111 -1.68e+03 0.00883 1.85e-05 0.137 18.4 World eIoni + 5 -39.7 109 -1.67e+03 0.00636 0.00246 3.63 22 World eIoni + 6 -41.1 109 -1.67e+03 0.00236 0.00401 2.63 24.6 World eIoni + 7 -41.1 109 -1.67e+03 0 0.00236 1.04 25.7 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -38 111 -1.68e+03 0.0013 0 0 0 World initStep + 1 -37.9 110 -1.68e+03 0 0.0013 0.413 0.413 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.2 -1.94e+03 0.00277 0 0 0 World initStep - 1 113 -40.7 -1.94e+03 0 0.00277 1.29 1.29 World eIoni + 0 -39.5 124 -1.76e+03 0.00119 0 0 0 World initStep + 1 -39.4 123 -1.76e+03 0 0.00119 0.363 0.363 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.1 -2.01e+03 0.0203 0 0 0 World initStep - 1 110 -42.4 -2.01e+03 0.0162 0.00252 3.99 3.99 World eIoni - 2 106 -48.1 -2.01e+03 0.0141 0.00215 7.96 11.9 World eIoni - 3 104 -53.5 -2.01e+03 0.0124 0.00166 6.49 18.4 World eIoni - 4 100 -56.4 -2.01e+03 0.0109 0.0015 5.47 23.9 World eIoni - 5 98.3 -59.2 -2.01e+03 0.00889 0.00201 4.64 28.5 World eIoni - 6 96.4 -59 -2e+03 0.00459 0.0043 3.66 32.2 World eIoni - 7 95.8 -58.1 -2e+03 0.00192 0.00267 2.01 34.2 World eIoni - 8 95.6 -57.9 -2e+03 0 0.00192 0.749 35 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 145, Parent ID = 16 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 110 -42.4 -2.01e+03 0.00155 0 0 0 World initStep - 1 110 -42.3 -2.01e+03 0 0.00155 0.54 0.54 World eIoni + 0 -39.4 124 -1.79e+03 0.00226 0 0 0 World initStep + 1 -39 124 -1.79e+03 0 0.00226 0.974 0.974 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40 -2.15e+03 0.00543 0 0 0 World initStep - 1 111 -39.9 -2.15e+03 0.00494 0.000483 2.29 2.29 World eIoni - 2 111 -41.1 -2.14e+03 0.00297 0.00197 2.13 4.42 World eIoni - 3 111 -41.2 -2.14e+03 0 0.00297 1.38 5.8 World eIoni + 0 -39.2 124 -1.85e+03 0.00113 0 0 0 World initStep + 1 -39.2 123 -1.85e+03 0 0.00113 0.335 0.335 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40 -2.2e+03 0.00593 0 0 0 World initStep - 1 111 -39.9 -2.19e+03 0.00243 0.0035 2.47 2.47 World eIoni - 2 111 -40.3 -2.19e+03 0 0.00243 1.09 3.56 World eIoni + 0 -39.1 124 -1.88e+03 0.00116 0 0 0 World initStep + 1 -39.2 124 -1.88e+03 0 0.00116 0.351 0.351 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.1 -2.26e+03 0.00155 0 0 0 World initStep - 1 113 -39.9 -2.26e+03 0 0.00155 0.537 0.537 World eIoni + 0 -38.6 124 -2.08e+03 0.00472 0 0 0 World initStep + 1 -37.4 124 -2.08e+03 0.00214 0.00258 2.05 2.05 World eIoni + 2 -37.6 124 -2.08e+03 0 0.00214 0.894 2.95 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.1 -2.28e+03 0.0069 0 0 0 World initStep - 1 113 -42.1 -2.28e+03 0.00544 0.00146 2.83 2.83 World eIoni - 2 113 -43.2 -2.28e+03 0.00182 0.00363 2.3 5.13 World eIoni - 3 113 -43.4 -2.28e+03 0 0.00182 0.688 5.82 World eIoni + 0 -38.5 124 -2.15e+03 0.0179 0 0 0 World initStep + 1 -42 130 -2.15e+03 0.0162 0.00168 9.23 9.23 World eIoni + 2 -47.9 126 -2.15e+03 0.0126 0.00361 7.96 17.2 World eIoni + 3 -48.4 124 -2.15e+03 0.00967 0.000808 2.32 19.5 World eIoni + 4 -48.2 120 -2.15e+03 0.00799 0.00168 4.02 23.5 World eIoni + 5 -49.9 121 -2.15e+03 0.00689 0.0011 3.27 26.8 World eIoni + 6 -50.5 121 -2.14e+03 0.00519 0.0017 2.83 29.6 World eIoni + 7 -49.5 121 -2.14e+03 0.00323 0.00196 2.21 31.8 World eIoni + 8 -48.9 121 -2.14e+03 0.00169 0.00154 1.5 33.3 World eIoni + 9 -48.7 121 -2.14e+03 0 0.00169 0.614 33.9 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -48.4 124 -2.15e+03 0.00212 0 0 0 World initStep + 1 -48.2 123 -2.15e+03 0 0.00212 0.876 0.876 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.1 -2.31e+03 0.0011 0 0 0 World initStep - 1 113 -40.2 -2.31e+03 0 0.0011 0.324 0.324 World eIoni + 0 -38.5 124 -2.19e+03 0.0025 0 0 0 World initStep + 1 -38.6 124 -2.19e+03 0 0.0025 1.13 1.13 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.1 -2.34e+03 0.00166 0 0 0 World initStep - 1 112 -40.3 -2.34e+03 0 0.00166 0.6 0.6 World eIoni + 0 -38.5 124 -2.21e+03 0.00109 0 0 0 World initStep + 1 -38.5 124 -2.21e+03 0 0.00109 0.317 0.317 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.1 -2.35e+03 0.00141 0 0 0 World initStep - 1 113 -40.3 -2.35e+03 0 0.00141 0.469 0.469 World eIoni + 0 -38.6 124 -2.32e+03 0.0397 0 0 0 World initStep + 1 -33.2 109 -2.3e+03 0.0363 0.00332 34.5 34.5 World eIoni + 2 -33.2 109 -2.3e+03 0.035 6.76e-05 0.753 35.3 World eIoni + 3 -33.9 94.9 -2.27e+03 0.0323 0.00274 27.8 63 World eIoni + 4 -22.9 87.5 -2.26e+03 0.0293 0.00299 24.2 87.2 World eIoni + 5 -14.2 77 -2.24e+03 0.0269 0.00233 20.5 108 World eIoni + 6 -18.4 79.2 -2.23e+03 0.0248 0.00211 17.8 126 World eIoni + 7 -18.8 82.9 -2.21e+03 0.0213 0.00356 15.6 141 World eIoni + 8 -17.4 86.7 -2.2e+03 0.0187 0.00252 12.1 153 World eIoni + 9 -14.1 92.2 -2.2e+03 0.0151 0.0036 9.92 163 World eIoni + 10 -11.1 94.9 -2.19e+03 0.0126 0.0025 7.21 170 World eIoni + 11 -11.6 94.9 -2.19e+03 0.0101 0.00257 5.61 176 World eIoni + 12 -12.8 95.2 -2.18e+03 0.00908 0.00099 4.21 180 World eIoni + 13 -16 95.2 -2.18e+03 0.00701 0.00206 3.74 184 World eIoni + 14 -17.5 95.1 -2.18e+03 0.00444 0.00258 2.87 187 World eIoni + 15 -18.5 94.9 -2.18e+03 0.00222 0.00222 1.95 189 World eIoni + 16 -18.6 94.6 -2.18e+03 0 0.00222 0.944 190 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 9 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.2 109 -2.3e+03 0.00128 0 0 0 World initStep + 1 -33.2 110 -2.3e+03 0 0.00128 0.402 0.402 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.1 -2.37e+03 0.0121 0 0 0 World initStep - 1 108 -40 -2.37e+03 0.0101 0.00206 5.31 5.31 World eIoni - 2 104 -41.5 -2.37e+03 0.00909 0.000963 4.21 9.51 World eIoni - 3 103 -44.1 -2.37e+03 0.00562 0.00347 3.75 13.3 World eIoni - 4 102 -45.2 -2.37e+03 0.00334 0.00228 2.36 15.6 World eIoni - 5 101 -45.7 -2.37e+03 0 0.00334 1.55 17.2 World eIoni + 0 -38.6 124 -2.38e+03 0.00221 0 0 0 World initStep + 1 -38.4 124 -2.38e+03 0 0.00221 0.938 0.938 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.2 -2.45e+03 0.001 0 0 0 World initStep - 1 112 -40.2 -2.45e+03 0 0.001 0.283 0.283 World eIoni + 0 -38.6 124 -2.4e+03 0.00101 0 0 0 World initStep + 1 -38.7 124 -2.4e+03 0 0.00101 0.286 0.286 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.2 -2.46e+03 0.0104 0 0 0 World initStep - 1 113 -38.6 -2.46e+03 0.00877 0.000561 2.04 2.04 World eIoni - 2 114 -35.8 -2.45e+03 0.0078 0.00097 3.19 5.23 World msc - 3 115 -34.5 -2.45e+03 0.00364 0.0015 1.59 6.82 World eIoni - 4 114 -34.1 -2.46e+03 0 0.00364 1.67 8.49 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 147, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 115 -34.5 -2.45e+03 0.00265 0 0 0 World initStep - 1 115 -34.1 -2.45e+03 0 0.00265 1.22 1.22 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -38.6 -2.46e+03 0.00106 0 0 0 World initStep - 1 114 -38.5 -2.46e+03 0 0.00106 0.308 0.308 World eIoni + 0 -38.8 124 -2.5e+03 0.00172 0 0 0 World initStep + 1 -39 124 -2.5e+03 0 0.00172 0.633 0.633 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -40.2 -2.46e+03 0.00161 0 0 0 World initStep - 1 113 -40.4 -2.46e+03 0 0.00161 0.57 0.57 World eIoni + 0 -38.8 124 -2.51e+03 0.0368 0 0 0 World initStep + 1 -40.8 121 -2.51e+03 0.0349 0.000251 4.05 4.05 World eIoni + 2 -48.2 109 -2.5e+03 0.0332 0.00171 21 25 cloudPV CoupledTransportation + 3 -48.2 109 -2.5e+03 0.0327 0.00049 0.000866 25 cloudPV msc + 4 -48.2 109 -2.5e+03 0.0317 0.000983 0.000915 25 cloudPV msc + 5 -48.2 109 -2.5e+03 0.0315 0.000158 0.00085 25 cloudPV msc + 6 -48.2 109 -2.5e+03 0.0308 0.000731 0.000888 25 cloudPV msc + 7 -48.2 109 -2.5e+03 0.0278 0.00295 0.00127 25 cloudPV msc + 8 -48.2 109 -2.5e+03 0.026 0.00185 0.00129 25 cloudPV msc + 9 -48.2 109 -2.5e+03 0.0252 0.000782 0.00136 25 cloudPV msc + 10 -48.2 109 -2.5e+03 0.0248 0.000366 0.00116 25 cloudPV msc + 11 -48.2 109 -2.5e+03 0.0241 0.00072 0.000771 25 cloudPV msc + 12 -48.2 109 -2.5e+03 0.0224 0.00177 0.000779 25 cloudPV msc + 13 -48.2 109 -2.5e+03 0.0218 0.000534 0.000787 25 cloudPV msc + 14 -48.2 109 -2.5e+03 0.0211 0.00074 0.000925 25 cloudPV msc + 15 -48.2 109 -2.5e+03 0.0195 0.00158 0.000832 25 cloudPV msc + 16 -48.2 109 -2.5e+03 0.0186 0.000942 0.000831 25 cloudPV msc + 17 -48.2 109 -2.5e+03 0.0185 5.05e-05 0.000122 25 World CoupledTransportation + 18 -50.1 116 -2.5e+03 0.0153 0.0032 9.73 34.8 World eIoni + 19 -53.1 121 -2.5e+03 0.0117 0.00356 7.32 42.1 World eIoni + 20 -56.8 121 -2.51e+03 0.0107 0.00107 5.1 47.2 World eIoni + 21 -59.7 122 -2.51e+03 0.00789 0.00279 4.52 51.7 World eIoni + 22 -61.2 122 -2.51e+03 0.00688 0.001 3.22 54.9 World eIoni + 23 -62.8 121 -2.51e+03 0.00387 0.00301 2.82 57.7 World eIoni + 24 -63.3 120 -2.51e+03 0.00236 0.00151 1.75 59.5 World eIoni + 25 -63.5 120 -2.51e+03 0 0.00236 1.04 60.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -40.8 121 -2.51e+03 0.00169 0 0 0 World initStep + 1 -41 121 -2.51e+03 0 0.00169 0.615 0.615 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 112 -40.2 -2.51e+03 0.00167 0 0 0 World initStep - 1 113 -40 -2.51e+03 0 0.00167 0.605 0.605 World eIoni + 0 -38.8 124 -2.55e+03 0.00198 0 0 0 World initStep + 1 -38.9 124 -2.55e+03 0 0.00198 0.79 0.79 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 112 -40.2 -2.56e+03 0.00147 0 0 0 World initStep - 1 112 -40 -2.56e+03 0 0.00147 0.497 0.497 World eIoni + 0 -38.8 124 -2.59e+03 0.00238 0 0 0 World initStep + 1 -38.7 123 -2.59e+03 0 0.00238 1.06 1.06 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 112 -40.2 -2.57e+03 0.00488 0 0 0 World initStep - 1 112 -40.7 -2.57e+03 0.00341 0.000439 0.612 0.612 World eIoni - 2 112 -41.4 -2.57e+03 0.00183 0.00157 1.58 2.19 World eIoni - 3 112 -41.5 -2.57e+03 0 0.00183 0.698 2.89 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 148, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 112 -40.7 -2.57e+03 0.00103 0 0 0 World initStep - 1 112 -40.7 -2.57e+03 0 0.00103 0.296 0.296 World eIoni + 0 -38.8 124 -2.6e+03 0.00236 0 0 0 World initStep + 1 -38.6 123 -2.6e+03 0 0.00236 1.04 1.04 World eIoni ********************************************************************************************************* * G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 73.6 -60.3 -2.61e+03 50 0 0 0 World initStep - 1 74 -60.3 -2.56e+03 50 0.00822 50.7 50.7 World hIoni - 2 74.8 -60.5 -2.49e+03 50 0.0151 70.3 121 World hIoni - 3 75 -60.5 -2.48e+03 50 0.00198 15.6 137 World hIoni - 4 75.7 -60.8 -2.4e+03 49.9 0.0108 72.6 209 World hIoni - 5 75.9 -60.9 -2.39e+03 49.9 0.00276 14.1 223 World hIoni - 6 75.9 -60.9 -2.39e+03 49.9 0.000264 1.73 225 World hIoni - 7 76.4 -61.1 -2.34e+03 49.9 0.00596 44.6 270 World hIoni - 8 76.5 -61.1 -2.34e+03 49.9 0.000167 4.39 274 World hIoni - 9 78.3 -61.8 -2.18e+03 49.9 0.0308 156 431 World hIoni - 10 78.6 -61.9 -2.16e+03 49.9 0.00304 21.7 452 World hIoni - 11 78.8 -62 -2.14e+03 49.9 0.00264 19.7 472 World hIoni - 12 78.9 -62 -2.14e+03 49.9 0.000144 2.48 475 World hIoni - 13 78.9 -62.1 -2.13e+03 49.9 0.000384 5.16 480 World hIoni - 14 80.3 -62.5 -2.03e+03 49.9 0.0184 106 586 World hIoni - 15 80.4 -62.6 -2.02e+03 49.9 0.00246 8.98 595 World hIoni - 16 80.4 -62.6 -2.01e+03 49.9 0.000358 3.81 599 World hIoni - 17 80.9 -62.8 -1.98e+03 49.8 0.00496 35.5 634 World hIoni - 18 81.3 -63 -1.95e+03 49.8 0.00341 31.5 666 World hIoni - 19 81.6 -63.1 -1.92e+03 49.8 0.00441 22.8 688 World hIoni - 20 83 -63.8 -1.81e+03 49.8 0.0219 110 799 World hIoni - 21 83 -63.8 -1.81e+03 49.8 0.000464 2.87 801 World hIoni - 22 83.4 -64 -1.78e+03 49.8 0.00855 32 833 World hIoni - 23 83.9 -64.3 -1.74e+03 49.8 0.00629 38.8 872 World hIoni - 24 84.6 -64.6 -1.68e+03 49.8 0.0116 57.8 930 World hIoni - 25 85 -64.9 -1.65e+03 49.8 0.00658 31.7 962 World hIoni - 26 86.9 -65.8 -1.5e+03 49.8 0.0197 151 1.11e+03 World hIoni - 27 87.6 -66.1 -1.45e+03 49.7 0.00893 46.8 1.16e+03 World hIoni - 28 88.1 -66.3 -1.42e+03 49.7 0.00633 33.9 1.19e+03 World hIoni - 29 89 -66.7 -1.36e+03 49.7 0.0153 64.2 1.26e+03 World hIoni - 30 90 -67.1 -1.29e+03 49.7 0.0128 69.4 1.33e+03 World hIoni - 31 90.1 -67.1 -1.28e+03 49.7 0.002 10 1.34e+03 World hIoni - 32 90.6 -67.3 -1.24e+03 49.7 0.00777 34.2 1.37e+03 World hIoni - 33 91.5 -67.6 -1.18e+03 49.7 0.00974 56.6 1.43e+03 World hIoni - 34 92.8 -68 -1.1e+03 49.7 0.0154 84.9 1.51e+03 World hIoni - 35 93 -68.1 -1.09e+03 49.7 0.00461 12.5 1.53e+03 World hIoni - 36 93.2 -68.1 -1.08e+03 49.7 0.00196 11.5 1.54e+03 World hIoni - 37 93.7 -68.2 -1.05e+03 49.6 0.00292 25.9 1.56e+03 World hIoni - 38 94.7 -68.6 -986 49.6 0.00897 64.4 1.63e+03 World hIoni - 39 94.8 -68.6 -981 49.6 0.000377 4.96 1.63e+03 World hIoni - 40 95 -68.6 -968 49.6 0.00261 12.6 1.64e+03 World hIoni - 41 95.2 -68.7 -953 49.6 0.00164 14.7 1.66e+03 World hIoni - 42 95.4 -68.8 -943 49.6 0.00255 10.7 1.67e+03 World hIoni - 43 95.4 -68.8 -941 49.6 0.000235 2.03 1.67e+03 World hIoni - 44 95.8 -68.9 -917 49.6 0.00391 23.3 1.7e+03 World hIoni - 45 95.9 -68.9 -914 49.6 0.000354 3.9 1.7e+03 World hIoni - 46 96.9 -69.3 -847 49.6 0.00904 66.4 1.77e+03 World hIoni - 47 97.6 -69.4 -805 49.6 0.00807 41.9 1.81e+03 World hIoni - 48 98.1 -69.6 -774 49.6 0.00493 31.5 1.84e+03 World hIoni - 49 98.1 -69.6 -773 49.6 0 0.515 1.84e+03 World hIoni - 50 98.4 -69.7 -755 49.6 0.00359 18.4 1.86e+03 World hIoni - 51 98.6 -69.7 -744 49.6 0.00154 10.6 1.87e+03 World hIoni - 52 99.6 -70 -682 49.5 0.0118 62 1.93e+03 World hIoni - 53 99.6 -70 -682 49.5 0 0.222 1.93e+03 World hIoni - 54 100 -70.1 -659 49.5 0.00542 22.6 1.95e+03 World hIoni - 55 101 -70.3 -617 49.5 0.00632 42.2 2e+03 World hIoni - 56 101 -70.3 -613 49.5 0.00119 4.4 2e+03 World hIoni - 57 103 -70.8 -489 49.5 0.0238 124 2.12e+03 World hIoni - 58 103 -70.9 -464 49.5 0.00343 25 2.15e+03 World hIoni - 59 105 -71 -416 49.5 0.00907 48 2.2e+03 World hIoni - 60 107 -71.3 -320 49.5 0.018 96.5 2.29e+03 World hIoni - 61 108 -71.4 -296 49.4 0.00418 24 2.32e+03 World hIoni - 62 109 -71.6 -266 49.4 0.0062 29.7 2.35e+03 World hIoni - 63 109 -71.6 -260 49.4 0.000748 6.13 2.35e+03 World hIoni - 64 110 -71.8 -212 49.4 0.00711 47.9 2.4e+03 World hIoni - 65 111 -72 -190 49.4 0.00356 22 2.42e+03 World hIoni - 66 113 -72.3 -125 49.4 0.00923 65.2 2.49e+03 World hIoni - 67 114 -72.5 -88.9 49.4 0.00625 35.8 2.52e+03 World hIoni - 68 114 -72.5 -82.6 49.4 0.000859 6.27 2.53e+03 World hIoni - 69 114 -72.6 -59.7 49.4 0.00368 22.9 2.55e+03 World hIoni - 70 115 -72.8 -24.6 49.4 0.00477 35.2 2.59e+03 World hIoni - 71 119 -73.5 94.4 49.3 0.0227 119 2.71e+03 World hIoni - 72 119 -73.5 103 49.3 0.00127 8.12 2.72e+03 World hIoni - 73 120 -73.6 122 49.3 0.00297 19.3 2.73e+03 World hIoni - 74 120 -73.6 123 49.3 0.000402 1.68 2.74e+03 World hIoni - 75 121 -73.9 174 49.3 0.00983 50.7 2.79e+03 World hIoni - 76 121 -74 177 49.3 0.000213 3.21 2.79e+03 World hIoni - 77 122 -74.1 206 49.3 0.00448 29 2.82e+03 World hIoni - 78 125 -74.9 334 49.3 0.0253 128 2.95e+03 World hIoni - 79 126 -75 355 49.3 0.00319 21 2.97e+03 World hIoni - 80 126 -75.1 366 49.3 0.00283 10.9 2.98e+03 World hIoni - 81 126 -75.1 370 49.3 0.000558 3.77 2.98e+03 World hIoni - 82 129 -75.6 446 49.2 0.0135 75.7 3.06e+03 World hIoni - 83 129 -75.8 468 49.2 0.00504 22 3.08e+03 World hIoni - 84 130 -75.9 481 49.2 0.00185 12.9 3.09e+03 World hIoni - 85 130 -75.9 497 49.2 0.00185 16.3 3.11e+03 World hIoni - 86 130 -76 506 49.2 0.00072 8.98 3.12e+03 World hIoni - 87 131 -76.1 522 49.2 0.00259 15.8 3.13e+03 World hIoni - 88 133 -76.5 587 49.2 0.0111 65.8 3.2e+03 World hIoni - 89 137 -77.1 734 49.2 0.0272 147 3.35e+03 World hIoni - 90 138 -77.2 761 49.2 0.00835 27.5 3.37e+03 World hIoni - 91 138 -77.2 766 49.1 0.000789 5.06 3.38e+03 World hIoni - 92 139 -77.2 777 49.1 0.00134 10.5 3.39e+03 World hIoni - 93 141 -77.2 834 49.1 0.00788 57.4 3.45e+03 World hIoni - 94 143 -77.3 898 49.1 0.0118 64 3.51e+03 World hIoni - 95 143 -77.3 920 49.1 0.00546 21.8 3.53e+03 World hIoni - 96 146 -77.3 990 49.1 0.0135 69.6 3.6e+03 World hIoni - 97 147 -77.2 1.04e+03 49.1 0.0126 51.4 3.65e+03 World hIoni - 98 149 -77 1.09e+03 49.1 0.0136 53.7 3.71e+03 World hIoni - 99 150 -77 1.12e+03 49 0.00328 22.3 3.73e+03 World hIoni - 100 151 -76.9 1.15e+03 49 0.00659 31.1 3.76e+03 World hIoni - 101 152 -76.7 1.2e+03 49 0.0082 48.3 3.81e+03 World hIoni - 102 153 -76.7 1.22e+03 49 0.00349 22.2 3.83e+03 World hIoni - 103 155 -76.4 1.31e+03 49 0.0135 90.4 3.92e+03 World hIoni - 104 158 -76.1 1.4e+03 49 0.0138 88.1 4.01e+03 World hIoni - 105 158 -76 1.41e+03 49 0.00104 11.2 4.02e+03 World hIoni - 106 158 -76 1.41e+03 49 0.000246 0.217 4.02e+03 World hIoni - 107 165 -75.6 1.63e+03 48.9 0.0389 221 4.24e+03 World hIoni - 108 165 -75.6 1.63e+03 48.9 0.00065 4.08 4.25e+03 World hIoni - 109 165 -75.6 1.64e+03 48.9 0.00179 6.8 4.25e+03 World hIoni - 110 165 -75.6 1.65e+03 48.9 0.00176 6.17 4.26e+03 World hIoni - 111 166 -75.6 1.67e+03 48.9 0.0034 21.5 4.28e+03 World hIoni - 112 167 -75.6 1.71e+03 48.9 0.00723 45.6 4.33e+03 World hIoni - 113 169 -75.5 1.82e+03 48.9 0.0159 105 4.43e+03 World hIoni - 114 169 -75.5 1.83e+03 48.9 0.00109 10.1 4.44e+03 World hIoni - 115 170 -75.5 1.84e+03 48.9 0.00404 7.24 4.45e+03 World hIoni - 116 172 -75.4 1.94e+03 48.8 0.0202 103 4.55e+03 World hIoni - 117 172 -75.4 1.95e+03 48.8 0.00138 8.19 4.56e+03 World hIoni - 118 173 -75.4 1.97e+03 48.8 0.00386 20.8 4.58e+03 World hIoni - 119 174 -75.3 2.02e+03 48.8 0.009 49.6 4.63e+03 World hIoni - 120 174 -75.3 2.03e+03 48.8 0.00386 12.1 4.64e+03 World hIoni - 121 175 -75.3 2.04e+03 48.8 0.0017 13.2 4.66e+03 World hIoni - 122 175 -75.3 2.04e+03 48.8 0 0.849 4.66e+03 World hIoni - 123 175 -75.3 2.06e+03 48.8 0.00259 19.6 4.68e+03 World hIoni - 124 177 -75.2 2.11e+03 48.8 0.00773 47.8 4.72e+03 World hIoni - 125 177 -75.2 2.14e+03 48.8 0.00667 34.5 4.76e+03 World hIoni - 126 181 -75 2.28e+03 48.8 0.0243 134 4.89e+03 World hIoni - 127 182 -75 2.32e+03 48.7 0.00978 41 4.93e+03 World hIoni - 128 182 -75 2.32e+03 48.7 0.000791 4.07 4.94e+03 World hIoni - 129 182 -75 2.34e+03 48.7 0.00254 13.6 4.95e+03 World hIoni - 130 183 -75 2.37e+03 48.7 0.00572 29.9 4.98e+03 World hIoni - 131 184 -75 2.38e+03 48.7 0.00158 14.3 5e+03 World hIoni - 132 185 -74.9 2.43e+03 48.7 0.00777 52.4 5.05e+03 World hIoni - 133 185 -74.9 2.44e+03 48.7 0.00189 10.1 5.06e+03 World hIoni - 134 186 -74.9 2.49e+03 48.6 0.00954 46.6 5.1e+03 World hIoni - 135 189 -74.8 2.6e+03 48.6 0.02 109 5.21e+03 detectorPV CoupledTransportation - 136 189 -74.8 2.6e+03 42.4 6.25 2.23 5.22e+03 detectorPV hIoni - 137 189 -74.8 2.6e+03 36.9 5.51 1.78 5.22e+03 detectorPV hIoni - 138 189 -74.8 2.61e+03 32.1 4.8 1.43 5.22e+03 detectorPV hIoni - 139 189 -74.8 2.61e+03 27.7 4.4 1.15 5.22e+03 detectorPV hIoni - 140 189 -74.8 2.61e+03 23.8 3.87 0.92 5.22e+03 detectorPV hIoni - 141 189 -74.8 2.61e+03 20.2 3.56 0.741 5.22e+03 detectorPV hIoni - 142 189 -74.8 2.61e+03 17.1 3.13 0.595 5.22e+03 detectorPV hIoni - 143 189 -74.7 2.61e+03 13.9 3.2 0.481 5.22e+03 detectorPV hIoni - 144 189 -74.7 2.61e+03 10.9 3 0.379 5.22e+03 detectorPV hIoni - 145 189 -74.7 2.61e+03 8.11 2.8 0.296 5.22e+03 detectorPV hIoni - 146 189 -74.7 2.61e+03 5.33 2.78 0.23 5.22e+03 detectorPV hIoni - 147 189 -74.7 2.61e+03 2.21 3.12 0.165 5.22e+03 detectorPV hIoni - 148 189 -74.7 2.61e+03 0 2.21 0.05 5.22e+03 detectorPV hIoni + 0 34.3 27.3 -2.61e+03 50 0 0 0 World initStep + 1 34.3 27.3 -2.59e+03 50 0.00348 22.5 22.5 World hIoni + 2 34.3 27.3 -2.5e+03 50 0.0175 90.9 113 World hIoni + 3 34.3 27.2 -2.48e+03 50 0.00256 24 137 World hIoni + 4 34.3 27.2 -2.41e+03 50 0.0107 65.1 202 World hIoni + 5 34.3 27.2 -2.37e+03 50 0.00636 37 239 World hIoni + 6 34.3 27.2 -2.36e+03 50 0.0013 15.4 255 World hIoni + 7 34.3 27.2 -2.34e+03 49.9 0.00331 16 271 World hIoni + 8 34.3 27.2 -2.33e+03 49.9 0.0018 7.51 278 World hIoni + 9 34.3 27.2 -2.33e+03 49.9 0.000252 2.6 281 World hIoni + 10 34.3 27.2 -2.25e+03 49.9 0.0154 78.6 360 World hIoni + 11 34.2 27.2 -2.17e+03 49.9 0.015 83.1 443 cloudPV CoupledTransportation + 12 34.2 27.2 -2.17e+03 49.3 0.621 0.555 443 World CoupledTransportation + 13 34.3 27.2 -2.15e+03 49.3 0.0027 15.3 458 World hIoni + 14 34.3 27.3 -2.11e+03 49.3 0.00508 41.9 500 World hIoni + 15 34.5 27.7 -2e+03 49.3 0.0211 114 614 World hIoni + 16 34.7 27.8 -1.93e+03 49.2 0.0124 63.5 678 World hIoni + 17 34.8 27.9 -1.9e+03 49.2 0.00725 31.4 709 World hIoni + 18 34.8 27.9 -1.9e+03 49.2 0.00026 2.48 712 World hIoni + 19 34.8 27.9 -1.89e+03 49.2 0.00153 11.5 723 World hIoni + 20 35.1 28 -1.82e+03 49.2 0.0126 66.6 790 World hIoni + 21 35.1 28 -1.82e+03 49.2 0.000228 2.05 792 World hIoni + 22 35.4 28.1 -1.77e+03 49.2 0.011 49.1 841 World hIoni + 23 35.5 28.1 -1.76e+03 49.2 0.00571 15 856 World hIoni + 24 35.5 28.2 -1.74e+03 49.2 0.00151 13 869 World hIoni + 25 35.9 28.3 -1.67e+03 49.2 0.0158 74.5 943 World hIoni + 26 36 28.3 -1.65e+03 49.2 0.00201 17.9 961 World hIoni + 27 36 28.3 -1.65e+03 49.2 0.000388 3.05 964 World hIoni + 28 36.5 28.4 -1.53e+03 49.1 0.0244 117 1.08e+03 World hIoni + 29 36.7 28.4 -1.5e+03 49.1 0.00806 29.7 1.11e+03 World hIoni + 30 37.2 28.6 -1.42e+03 49.1 0.0121 82.2 1.19e+03 World hIoni + 31 37.7 28.7 -1.32e+03 49.1 0.018 97.6 1.29e+03 World hIoni + 32 37.9 28.7 -1.28e+03 49.1 0.00875 44.3 1.34e+03 World hIoni + 33 38.1 28.9 -1.21e+03 49.1 0.012 69.4 1.4e+03 World hIoni + 34 38.3 29.1 -1.15e+03 49.1 0.0126 56.6 1.46e+03 World hIoni + 35 38.6 29.2 -1.08e+03 49 0.0101 67.6 1.53e+03 World hIoni + 36 38.6 29.2 -1.08e+03 49 0.000834 4.05 1.53e+03 World hIoni + 37 38.6 29.2 -1.08e+03 49 0 0.107 1.53e+03 World hIoni + 38 39 29.4 -976 49 0.0182 104 1.64e+03 World hIoni + 39 39.1 29.4 -905 49 0.0125 70.6 1.71e+03 World hIoni + 40 39.3 29.4 -802 49 0.0218 103 1.81e+03 World hIoni + 41 39.5 29.3 -740 49 0.0129 61.9 1.87e+03 World hIoni + 42 39.5 29.3 -717 48.9 0.00341 22.7 1.9e+03 World hIoni + 43 39.5 29.3 -711 48.9 0.00124 6.57 1.9e+03 World hIoni + 44 39.7 29.1 -643 48.9 0.0119 67.6 1.97e+03 World hIoni + 45 39.7 29.1 -625 48.9 0.00143 17.9 1.99e+03 World hIoni + 46 39.9 28.8 -522 48.9 0.0159 104 2.09e+03 World hIoni + 47 40 28.6 -473 48.9 0.00711 48.7 2.14e+03 World hIoni + 48 40.2 28.4 -402 48.8 0.0102 71 2.21e+03 World hIoni + 49 40.5 28.1 -324 48.8 0.0124 77.6 2.29e+03 World hIoni + 50 41 27.4 -189 48.8 0.0241 135 2.42e+03 World hIoni + 51 41.5 26.6 -105 48.8 0.0194 84.2 2.51e+03 World hIoni + 52 41.8 26.2 -61.1 48.7 0.00826 44.1 2.55e+03 World hIoni + 53 42.3 25.5 11.8 48.7 0.0125 72.9 2.62e+03 World hIoni + 54 42.6 25 69.5 48.7 0.00826 57.7 2.68e+03 World hIoni + 55 42.8 24.8 99.8 48.7 0.00623 30.3 2.71e+03 World hIoni + 56 43.7 23.6 246 48.7 0.0282 146 2.86e+03 World hIoni + 57 43.9 23.2 292 48.7 0.00945 45.6 2.9e+03 World hIoni + 58 43.9 23.2 297 48.7 0.00149 5.48 2.91e+03 World hIoni + 59 44 23.1 311 48.7 0.00206 14 2.92e+03 World hIoni + 60 44 23 315 48.7 0.00165 4.44 2.93e+03 World hIoni + 61 44.2 22.6 359 48.7 0.00643 43.5 2.97e+03 World hIoni + 62 44.2 22.6 361 48.7 0.000217 1.76 2.97e+03 World hIoni + 63 44.2 22.6 365 48.6 0.000916 4.76 2.98e+03 World hIoni + 64 44.4 22.2 410 48.6 0.0107 45 3.02e+03 World hIoni + 65 44.8 21.3 498 48.6 0.0148 88 3.11e+03 World hIoni + 66 45.2 20.5 582 48.6 0.0158 83.8 3.19e+03 World hIoni + 67 45.6 19.5 682 48.6 0.0183 99.6 3.29e+03 World hIoni + 68 45.8 18.6 757 48.6 0.0108 75 3.37e+03 World hIoni + 69 45.9 18.5 776 48.6 0.00338 19.7 3.39e+03 World hIoni + 70 45.9 18.4 780 48.6 0.000255 3.37 3.39e+03 World hIoni + 71 45.9 18.4 781 48.5 0.000133 1.24 3.39e+03 World hIoni + 72 45.9 18.3 793 48.5 0.00109 11.4 3.41e+03 World hIoni + 73 46 17.8 842 48.5 0.00856 49.4 3.45e+03 World hIoni + 74 46.1 17.3 883 48.5 0.00767 40.6 3.5e+03 World hIoni + 75 46.1 16.9 923 48.5 0.00988 40.5 3.54e+03 World hIoni + 76 46.3 16.3 978 48.5 0.00985 55 3.59e+03 World hIoni + 77 46.3 16.3 978 48.5 0 0.11 3.59e+03 World hIoni + 78 46.3 16.2 983 48.5 0.00059 4.35 3.6e+03 World hIoni + 79 46.3 16 998 48.5 0.00219 15.8 3.61e+03 World hIoni + 80 46.4 15.6 1.03e+03 48.5 0.00705 35.9 3.65e+03 World hIoni + 81 46.5 15.4 1.05e+03 48.5 0.00375 17.2 3.66e+03 World hIoni + 82 46.5 15.4 1.06e+03 48.5 0.000333 3.8 3.67e+03 World hIoni + 83 47 13.9 1.18e+03 48.4 0.0223 126 3.79e+03 World hIoni + 84 47 13.8 1.18e+03 48.4 0.000518 2.03 3.8e+03 World hIoni + 85 47 13.8 1.19e+03 48.4 0.00109 6.81 3.8e+03 World hIoni + 86 47 13.5 1.21e+03 48.4 0.00483 19 3.82e+03 World hIoni + 87 47.3 12.3 1.31e+03 48.4 0.0228 96 3.92e+03 World hIoni + 88 47.3 12.3 1.31e+03 48.4 0.000547 2.95 3.92e+03 World hIoni + 89 47.4 12 1.34e+03 48.4 0.0031 29.3 3.95e+03 World hIoni + 90 47.5 11.5 1.38e+03 48.4 0.00475 44.6 4e+03 World hIoni + 91 47.5 11.1 1.42e+03 48.4 0.00493 35 4.03e+03 World hIoni + 92 47.6 10.9 1.44e+03 48.4 0.00271 18.5 4.05e+03 World hIoni + 93 47.6 10.7 1.46e+03 48.4 0.00396 27.8 4.08e+03 World hIoni + 94 47.8 9.85 1.55e+03 48.4 0.0152 82.7 4.16e+03 World hIoni + 95 47.8 9.39 1.6e+03 48.3 0.00827 48.7 4.21e+03 World hIoni + 96 47.9 9.16 1.62e+03 48.3 0.00532 26.2 4.23e+03 World hIoni + 97 48 8.59 1.69e+03 48.3 0.00853 65.7 4.3e+03 World hIoni + 98 48 8.58 1.69e+03 48.3 8.84e-05 0.198 4.3e+03 cloudPV CoupledTransportation + 99 48 8.58 1.69e+03 47.8 0.54 0.348 4.3e+03 World CoupledTransportation + 100 48 8.53 1.7e+03 47.8 0.00222 9.8 4.31e+03 World hIoni + 101 48.1 8.36 1.73e+03 47.8 0.00542 29.6 4.34e+03 World hIoni + 102 48.1 8.31 1.73e+03 47.8 0.00109 7.65 4.35e+03 World hIoni + 103 48.2 8.28 1.74e+03 47.8 0.00184 6.22 4.35e+03 World hIoni + 104 48.2 8.27 1.74e+03 47.8 0.000172 1.44 4.35e+03 World hIoni + 105 48.4 7.96 1.8e+03 47.8 0.0132 55.2 4.41e+03 cloudPV CoupledTransportation + 106 48.4 7.96 1.8e+03 47.4 0.371 0.315 4.41e+03 World CoupledTransportation + 107 48.4 7.94 1.8e+03 47.4 0.000869 6.43 4.42e+03 World hIoni + 108 48.4 7.93 1.81e+03 47.4 0.000374 2.2 4.42e+03 World hIoni + 109 48.4 7.89 1.82e+03 47.4 0.00324 13 4.43e+03 World hIoni + 110 48.4 7.77 1.86e+03 47.4 0.00772 36.1 4.47e+03 World hIoni + 111 48.4 7.76 1.86e+03 47.4 0.000859 2.22 4.47e+03 World hIoni + 112 48.4 7.64 1.89e+03 47.4 0.00795 35.3 4.51e+03 World hIoni + 113 48.4 7.6 1.91e+03 47.3 0.00417 14.5 4.52e+03 World hIoni + 114 48.5 7.22 2.03e+03 47.3 0.0194 126 4.65e+03 World hIoni + 115 48.5 7.18 2.05e+03 47.3 0.00316 17.7 4.66e+03 World hIoni + 116 48.5 7.12 2.09e+03 47.3 0.00795 37.3 4.7e+03 World hIoni + 117 48.5 7.12 2.09e+03 47.3 0.000818 2.58 4.7e+03 World hIoni + 118 48.6 7.1 2.11e+03 47.3 0.0038 14.3 4.72e+03 World hIoni + 119 48.6 7.09 2.11e+03 47.3 0.000312 3.65 4.72e+03 World hIoni + 120 48.6 7.08 2.11e+03 47.3 0.000588 4.94 4.73e+03 World hIoni + 121 48.6 6.96 2.18e+03 47.3 0.0102 65.6 4.79e+03 World hIoni + 122 48.6 6.95 2.18e+03 47.3 0.000242 2.43 4.79e+03 World hIoni + 123 48.6 6.75 2.28e+03 47.3 0.0172 100 4.9e+03 World hIoni + 124 48.7 6.69 2.32e+03 47.3 0.00411 35.1 4.93e+03 World hIoni + 125 48.7 6.67 2.33e+03 47.2 0.00164 8.54 4.94e+03 World hIoni + 126 48.7 6.66 2.33e+03 47.2 0.0014 8.51 4.95e+03 World hIoni + 127 48.7 6.63 2.36e+03 47.2 0.00422 21.2 4.97e+03 World hIoni + 128 48.7 6.63 2.36e+03 47.2 0.000265 2.23 4.97e+03 World hIoni + 129 48.6 6.6 2.38e+03 47.2 0.00329 19.9 4.99e+03 World hIoni + 130 48.6 6.54 2.42e+03 47.2 0.00825 38.3 5.03e+03 World hIoni + 131 48.6 6.38 2.5e+03 47.2 0.0132 83.7 5.11e+03 World hIoni + 132 48.7 6.36 2.51e+03 47.2 0.00174 10 5.12e+03 World hIoni + 133 48.7 6.31 2.55e+03 47.2 0.0074 41.2 5.16e+03 World hIoni + 134 48.7 6.28 2.58e+03 47.2 0.00436 27.1 5.19e+03 World hIoni + 135 48.7 6.27 2.59e+03 47.2 0.00221 14.6 5.21e+03 World hIoni + 136 48.7 6.26 2.6e+03 47.2 0.00083 7.21 5.21e+03 detectorPV CoupledTransportation + 137 48.7 6.26 2.6e+03 40.8 6.37 2.12 5.21e+03 detectorPV hIoni + 138 48.7 6.21 2.6e+03 35.5 5.34 1.68 5.22e+03 detectorPV hIoni + 139 48.7 6.18 2.61e+03 30.7 4.8 1.34 5.22e+03 detectorPV hIoni + 140 48.7 6.18 2.61e+03 26.3 4.4 1.07 5.22e+03 detectorPV hIoni + 141 48.7 6.13 2.61e+03 22.4 3.83 0.853 5.22e+03 detectorPV hIoni + 142 48.7 6.07 2.61e+03 18.9 3.58 0.684 5.22e+03 detectorPV hIoni + 143 48.7 6.02 2.61e+03 15.6 3.25 0.543 5.22e+03 detectorPV hIoni + 144 48.7 5.99 2.61e+03 12.6 3.06 0.431 5.22e+03 detectorPV hIoni + 145 48.7 5.96 2.61e+03 9.79 2.76 0.34 5.22e+03 detectorPV hIoni + 146 48.7 5.94 2.61e+03 7 2.79 0.269 5.22e+03 detectorPV hIoni + 147 48.7 5.92 2.61e+03 4.03 2.98 0.205 5.22e+03 detectorPV hIoni + 148 48.7 5.91 2.61e+03 0.574 3.45 0.127 5.22e+03 detectorPV hIoni + 149 48.7 5.91 2.61e+03 0.00471 0.57 0.00672 5.22e+03 detectorPV hIoni + 150 48.7 5.91 2.61e+03 0 0.00471 0.000174 5.22e+03 detectorPV hIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 186 -74.9 2.49e+03 0.0125 0 0 0 World initStep - 1 188 -78.7 2.49e+03 0.0107 0.0018 5.34 5.34 World msc - 2 186 -82 2.49e+03 0.0086 0.0021 4.53 9.87 World eIoni - 3 185 -84.5 2.5e+03 0.00779 0.00081 3.53 13.4 World eIoni - 4 184 -86.4 2.5e+03 0.00688 0.000912 3.18 16.6 World eIoni - 5 183 -88 2.5e+03 0.00282 0.00406 2.82 19.4 World eIoni - 6 183 -88.3 2.5e+03 0.00222 0.000605 0.815 20.2 World eIoni - 7 184 -88.1 2.5e+03 0 0.00222 0.943 21.2 World eIoni + 0 48.7 6.28 2.58e+03 0.00245 0 0 0 World initStep + 1 48.2 6.33 2.58e+03 0 0.00245 1.1 1.1 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 185 -74.9 2.44e+03 0.00238 0 0 0 World initStep - 1 185 -74.6 2.44e+03 0 0.00238 0.793 0.793 World eIoni + 0 48.7 6.31 2.55e+03 0.00223 0 0 0 World initStep + 1 48.5 5.95 2.55e+03 0 0.00223 0.953 0.953 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 185 -74.9 2.43e+03 0.00243 0 0 0 World initStep - 1 185 -74.7 2.43e+03 0 0.00243 1.09 1.09 World eIoni + 0 48.7 6.36 2.51e+03 0.0134 0 0 0 World initStep + 1 52.2 3.43 2.51e+03 0.0108 0.00255 6.05 6.05 World eIoni + 2 54.9 2.3 2.51e+03 0.0103 0.000533 4.6 10.6 World eIoni + 3 51.9 1.16 2.51e+03 0.00954 0.000747 4.32 15 World eIoni + 4 49.8 -0.325 2.51e+03 0.00717 0.00237 3.96 18.9 World eIoni + 5 48.2 -0.741 2.5e+03 0.00377 0.0034 2.93 21.9 World eIoni + 6 48.4 -0.735 2.5e+03 0.00181 0.00196 1.72 23.6 World eIoni + 7 48.6 -0.925 2.5e+03 0 0.00181 0.684 24.3 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 184 -75 2.38e+03 0.00181 0 0 0 World initStep - 1 183 -75.2 2.38e+03 0 0.00181 0.686 0.686 World eIoni + 0 48.6 6.38 2.5e+03 0.00108 0 0 0 World initStep + 1 48.7 6.49 2.5e+03 0 0.00108 0.314 0.314 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 183 -75 2.37e+03 0.0108 0 0 0 World initStep - 1 181 -76.8 2.37e+03 0.0101 0.000646 3.62 3.62 World msc - 2 179 -77.7 2.37e+03 0.00642 0.00183 1.47 5.1 World eIoni - 3 178 -78.3 2.37e+03 0.00515 0.00127 2.65 7.74 World eIoni - 4 176 -78 2.37e+03 0.00426 0.000894 2.2 9.94 World eIoni - 5 177 -77.4 2.37e+03 0.00266 0.0016 1.89 11.8 World eIoni - 6 177 -77.4 2.37e+03 0 0.00266 1.23 13.1 World eIoni + 0 48.6 6.54 2.42e+03 0.00188 0 0 0 World initStep + 1 48.4 6.48 2.42e+03 0 0.00188 0.727 0.727 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 107 +* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 179 -77.7 2.37e+03 0.00186 0 0 0 World initStep - 1 179 -77.8 2.37e+03 0 0.00186 0.714 0.714 World eIoni + 0 48.6 6.6 2.38e+03 0.00142 0 0 0 World initStep + 1 48.8 6.47 2.38e+03 0 0.00142 0.474 0.474 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 182 -75 2.34e+03 0.0301 0 0 0 World initStep - 1 171 -72.4 2.35e+03 0.0249 0.00522 21.5 21.5 World eIoni - 2 164 -65.7 2.36e+03 0.0231 0.0018 15.6 37.1 World eIoni - 3 160 -60.9 2.38e+03 0.0206 0.0025 13.8 51 World eIoni - 4 156 -58.4 2.38e+03 0.015 0.00448 9.75 60.7 World eIoni - 5 156 -51.8 2.38e+03 0.0128 0.00215 7.1 67.8 World eIoni - 6 156 -47 2.38e+03 0.0112 0.00158 5.72 73.5 World eIoni - 7 154 -44.1 2.38e+03 0.00883 0.00241 4.82 78.4 World eIoni - 8 155 -41 2.38e+03 0.00645 0.00239 3.63 82 World eIoni - 9 156 -39.2 2.38e+03 0.0043 0.00215 2.66 84.7 World eIoni - 10 155 -38.9 2.38e+03 0.00145 0.00285 1.9 86.6 World eIoni - 11 155 -39 2.38e+03 0 0.00145 0.486 87 World eIoni + 0 48.7 6.63 2.36e+03 0.00171 0 0 0 World initStep + 1 48.6 6.39 2.36e+03 0 0.00171 0.624 0.624 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 106 +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 156 -58.4 2.38e+03 0.00115 0 0 0 World initStep - 1 156 -58.3 2.38e+03 0 0.00115 0.343 0.343 World eIoni + 0 48.7 6.63 2.36e+03 0.00263 0 0 0 World initStep + 1 48.7 7.14 2.36e+03 0 0.00263 1.21 1.21 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 182 -75 2.32e+03 0.00243 0 0 0 World initStep - 1 182 -74.6 2.32e+03 0 0.00243 1.09 1.09 World eIoni + 0 48.7 6.66 2.33e+03 0.00194 0 0 0 World initStep + 1 48.4 6.73 2.33e+03 0 0.00194 0.762 0.762 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 181 -75 2.28e+03 0.00109 0 0 0 World initStep - 1 181 -75 2.28e+03 0 0.00109 0.318 0.318 World eIoni + 0 48.7 6.67 2.33e+03 0.0016 0 0 0 World initStep + 1 48.5 6.51 2.33e+03 0 0.0016 0.568 0.568 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 177 -75.2 2.14e+03 0.00564 0 0 0 World initStep - 1 177 -73.7 2.15e+03 0.00407 0.00157 2.37 2.37 World eIoni - 2 176 -74 2.15e+03 0.00235 0.00171 1.82 4.19 World eIoni - 3 176 -73.6 2.15e+03 0 0.00235 1.04 5.23 World eIoni + 0 48.7 6.69 2.32e+03 0.00385 0 0 0 World initStep + 1 49.2 5.93 2.32e+03 0.00146 0.00238 1.74 1.74 World eIoni + 2 49.2 5.9 2.32e+03 0 0.00146 0.494 2.24 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 175 -75.3 2.06e+03 0.000992 0 0 0 World initStep - 1 175 -75.4 2.06e+03 0 0.000992 0.279 0.279 World eIoni + 0 48.6 6.75 2.28e+03 0.00657 0 0 0 World initStep + 1 47.8 6.36 2.28e+03 0.0041 0.000353 1.06 1.06 World eIoni + 2 46.9 6.74 2.28e+03 0.00259 0.00151 1.84 2.9 World eIoni + 3 46.7 6.32 2.28e+03 0 0.00259 1.19 4.09 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 87 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 175 -75.3 2.04e+03 0.00115 0 0 0 World initStep - 1 175 -75.4 2.04e+03 0 0.00115 0.347 0.347 World eIoni + 0 47.8 6.36 2.28e+03 0.00212 0 0 0 World initStep + 1 47.7 6.05 2.28e+03 0 0.00212 0.875 0.875 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.6 6.96 2.18e+03 0.00294 0 0 0 World initStep + 1 48.2 7.46 2.18e+03 0.00114 0.0018 1.37 1.37 World eIoni + 2 48.1 7.43 2.18e+03 0 0.00114 0.341 1.71 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.6 7.08 2.11e+03 0.00192 0 0 0 World initStep + 1 48.5 7.37 2.11e+03 0 0.00192 0.749 0.749 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.6 7.09 2.11e+03 0.0025 0 0 0 World initStep + 1 48.5 7.55 2.11e+03 0 0.0025 1.13 1.13 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.5 7.12 2.09e+03 0.00329 0 0 0 World initStep + 1 49.3 7.02 2.09e+03 0 0.00329 1.46 1.46 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.5 7.12 2.09e+03 0.00224 0 0 0 World initStep + 1 48.6 6.73 2.09e+03 0 0.00224 0.963 0.963 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.5 7.18 2.05e+03 0.00301 0 0 0 World initStep + 1 48.3 6.56 2.05e+03 0 0.00301 1.4 1.4 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.4 7.6 1.91e+03 0.0022 0 0 0 World initStep + 1 48.4 7.22 1.91e+03 0 0.0022 0.93 0.93 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.4 7.76 1.86e+03 0.00285 0 0 0 World initStep + 1 48.9 7.39 1.86e+03 0 0.00285 1.32 1.32 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.4 7.77 1.86e+03 0.00109 0 0 0 World initStep + 1 48.5 7.67 1.86e+03 0 0.00109 0.319 0.319 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.4 7.93 1.81e+03 0.0012 0 0 0 World initStep + 1 48.5 8.05 1.81e+03 0 0.0012 0.367 0.367 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.4 7.94 1.8e+03 0.00293 0 0 0 World initStep + 1 47.9 7.68 1.8e+03 0 0.00293 1.36 1.36 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.2 8.28 1.74e+03 0.00158 0 0 0 World initStep + 1 48.1 8.1 1.74e+03 0 0.00158 0.557 0.557 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.1 8.31 1.73e+03 0.00171 0 0 0 World initStep + 1 47.9 8.21 1.73e+03 0 0.00171 0.628 0.628 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.1 8.36 1.73e+03 0.00677 0 0 0 World initStep + 1 47.1 8.32 1.73e+03 0.0062 0.000564 1.39 1.39 World msc + 2 46.4 8.34 1.73e+03 0.00578 0.000425 0.945 2.33 World msc + 3 45.7 8.37 1.73e+03 0.00543 0.000353 0.697 3.03 World msc + 4 45.3 8.65 1.73e+03 0.00537 5.97e-05 0.583 3.61 World msc + 5 45 9.06 1.73e+03 0.00505 0.000314 0.535 4.15 World msc + 6 44.9 9.5 1.73e+03 0.00462 0.000426 0.505 4.65 World msc + 7 44.9 9.53 1.73e+03 0.00462 0 0.0307 4.68 cloudPV CoupledTransportation + 8 44.9 9.53 1.73e+03 0.00455 7.57e-05 2.82e-05 4.68 cloudPV msc + 9 44.9 9.53 1.73e+03 0.00441 0.000137 2.49e-05 4.68 cloudPV msc + 10 44.9 9.53 1.73e+03 0.00425 0.000157 2.7e-05 4.68 cloudPV msc + 11 44.9 9.53 1.73e+03 0.00425 0 2.64e-05 4.68 cloudPV msc + 12 44.9 9.53 1.73e+03 0.0042 5.08e-05 2.5e-05 4.68 cloudPV msc + 13 44.9 9.53 1.73e+03 0.00417 3.6e-05 3.27e-05 4.68 cloudPV msc + 14 44.9 9.53 1.73e+03 0.00403 0.000135 3.93e-05 4.68 cloudPV msc + 15 44.9 9.53 1.73e+03 0.00305 0.000981 3.74e-05 4.68 cloudPV msc + 16 44.9 9.53 1.73e+03 0.00295 0.000104 3.76e-05 4.68 cloudPV msc + 17 44.9 9.53 1.73e+03 0.00286 8.7e-05 3.25e-05 4.68 cloudPV msc + 18 44.9 9.53 1.73e+03 0.00272 0.000139 3.52e-05 4.68 cloudPV msc + 19 44.9 9.53 1.73e+03 0.0027 2.4e-05 4.28e-05 4.68 cloudPV msc + 20 44.9 9.53 1.73e+03 0.00241 0.000289 6.65e-05 4.68 cloudPV msc + 21 44.9 9.53 1.73e+03 0.00152 0.000893 0.000108 4.68 cloudPV msc + 22 44.9 9.53 1.73e+03 0 0.00152 0.000109 4.68 cloudPV eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48 8.59 1.69e+03 0.00102 0 0 0 World initStep + 1 48 8.58 1.69e+03 0.00102 0 0.0319 0.0319 World msc + 2 48 8.58 1.69e+03 0 0.00102 0.0255 0.0575 World msc + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47.9 9.16 1.62e+03 0.00219 0 0 0 World initStep + 1 48.1 8.85 1.62e+03 0 0.00219 0.927 0.927 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47.8 9.39 1.6e+03 0.00106 0 0 0 World initStep + 1 47.9 9.51 1.6e+03 0 0.00106 0.307 0.307 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47.6 10.7 1.46e+03 0.00402 0 0 0 World initStep + 1 46.7 10.3 1.46e+03 0.00104 0.00298 1.63 1.63 World eIoni + 2 46.7 10.4 1.46e+03 0 0.00104 0.297 1.92 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47.6 10.9 1.44e+03 0.00108 0 0 0 World initStep + 1 47.5 10.8 1.44e+03 0 0.00108 0.317 0.317 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47.5 11.1 1.42e+03 0.00111 0 0 0 World initStep + 1 47.4 11 1.42e+03 0 0.00111 0.327 0.327 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47.5 11.5 1.38e+03 0.00279 0 0 0 World initStep + 1 46.9 11.3 1.38e+03 0.00119 0.0016 1.3 1.3 World eIoni + 2 46.8 11.4 1.38e+03 0 0.00119 0.363 1.66 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47.4 12 1.34e+03 0.00231 0 0 0 World initStep + 1 47.8 11.8 1.34e+03 0 0.00231 1.01 1.01 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47.3 12.3 1.31e+03 0.00103 0 0 0 World initStep + 1 47.4 12.4 1.31e+03 0 0.00103 0.293 0.293 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47 13.5 1.21e+03 0.00572 0 0 0 World initStep + 1 46.5 12 1.21e+03 0.00463 0.00109 2.4 2.4 World eIoni + 2 45.3 12.4 1.21e+03 0.00248 0.00214 2.02 4.42 World eIoni + 3 45.1 12.2 1.21e+03 0 0.00248 1.12 5.54 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47 13.8 1.19e+03 0.00554 0 0 0 World initStep + 1 48.4 14.4 1.19e+03 0.0038 0.00174 2.33 2.33 World eIoni + 2 48.2 15.2 1.19e+03 0.00256 0.00124 1.73 4.06 World eIoni + 3 48.6 14.9 1.19e+03 0 0.00256 1.17 5.23 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47 13.8 1.18e+03 0.00205 0 0 0 World initStep + 1 47.3 13.7 1.18e+03 0 0.00205 0.835 0.835 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47 13.9 1.18e+03 0.00118 0 0 0 World initStep + 1 47 13.7 1.18e+03 0 0.00118 0.357 0.357 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 46.5 15.4 1.06e+03 0.00131 0 0 0 World initStep + 1 46.4 15.4 1.06e+03 0 0.00131 0.416 0.416 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 46.5 15.4 1.05e+03 0.00112 0 0 0 World initStep + 1 46.5 15.3 1.05e+03 0 0.00112 0.334 0.334 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 46.4 15.6 1.03e+03 0.00994 0 0 0 World initStep + 1 49.5 16 1.04e+03 0.00792 0.00202 4.15 4.15 World eIoni + 2 50.6 18.1 1.04e+03 0.00614 0.00178 3.24 7.39 World eIoni + 3 51.6 19.3 1.03e+03 0.00483 0.00131 2.55 9.93 World eIoni + 4 52.7 18.9 1.03e+03 0.00135 0.00347 2.09 12 World eIoni + 5 52.9 18.9 1.03e+03 0 0.00135 0.439 12.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 46.3 16.2 983 0.00244 0 0 0 World initStep + 1 45.9 16 983 0.00126 0.00118 1.1 1.1 World eIoni + 2 45.8 16 983 0 0.00126 0.396 1.49 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 46.3 16.3 978 0.00211 0 0 0 World initStep + 1 46 16.5 978 0 0.00211 0.874 0.874 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 46.3 16.3 978 0.00674 0 0 0 World initStep + 1 47.4 17.8 979 0.00568 0.00106 2.77 2.77 World eIoni + 2 47.2 19.3 979 0.00295 0.00273 2.38 5.15 World eIoni + 3 47.5 19.5 980 0 0.00295 1.38 6.53 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 46.1 17.3 883 0.00379 0 0 0 World initStep + 1 46.9 17.6 883 0.00194 0.00185 1.72 1.72 World eIoni + 2 47.2 17.7 883 0 0.00194 0.762 2.49 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 46 17.8 842 0.00169 0 0 0 World initStep + 1 45.9 17.5 842 0 0.00169 0.615 0.615 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 45.9 18.3 793 0.00254 0 0 0 World initStep + 1 45.4 18.1 793 0 0.00254 1.16 1.16 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 45.9 18.4 781 0.00183 0 0 0 World initStep + 1 45.8 18.7 781 0 0.00183 0.695 0.695 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 45.8 18.6 757 0.00517 0 0 0 World initStep + 1 46.6 17.5 757 0.00224 0.00293 2.2 2.2 World eIoni + 2 46.9 17.2 757 0 0.00224 0.959 3.16 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 45.6 19.5 682 0.00159 0 0 0 World initStep + 1 45.4 19.5 682 0 0.00159 0.559 0.559 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 45.2 20.5 582 0.00271 0 0 0 World initStep + 1 45.7 20.6 582 0 0.00271 1.25 1.25 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 44.4 22.2 410 0.00353 0 0 0 World initStep + 1 45.3 22.1 411 0.00118 0.00235 1.63 1.63 World eIoni + 2 45.4 22.1 411 0 0.00118 0.36 1.99 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 44.2 22.6 365 0.014 0 0 0 World initStep + 1 42.3 28.2 365 0.012 0.00193 6.42 6.42 World eIoni + 2 40.5 31.2 368 0.0108 0.00128 5.26 11.7 World eIoni + 3 37.5 30.8 371 0.0084 0.00235 4.56 16.2 World eIoni + 4 34.8 29.7 372 0.00571 0.00269 3.44 19.7 World eIoni + 5 33.5 28.8 372 0.00386 0.00185 2.39 22.1 World eIoni + 6 34.1 28 372 0.00142 0.00244 1.75 23.8 World eIoni + 7 34.1 27.9 372 0 0.00142 0.471 24.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 44.2 22.6 361 0.00204 0 0 0 World initStep + 1 43.9 22.7 361 0 0.00204 0.824 0.824 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 44.2 22.6 359 0.00228 0 0 0 World initStep + 1 43.8 22.5 359 0 0.00228 0.987 0.987 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 44 23.1 311 0.00341 0 0 0 World initStep + 1 43.4 22.5 311 0 0.00341 1.58 1.58 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 43.9 23.2 292 0.00707 0 0 0 World initStep + 1 44 24.2 292 0.0066 0.000471 0.96 0.96 World msc + 2 44.4 25.2 292 0.0054 0.00121 1.46 2.42 World msc + 3 45.3 26.1 293 0.00335 0.00204 2.28 4.7 World eIoni + 4 45.9 25.6 293 0.00211 0.00124 1.55 6.26 World eIoni + 5 46.1 25.5 294 0 0.00211 0.873 7.13 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 42.8 24.8 99.8 0.00323 0 0 0 World initStep + 1 42.6 24.1 100 0 0.00323 1.5 1.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 42.6 25 69.5 0.00178 0 0 0 World initStep + 1 42.4 25.2 69.5 0 0.00178 0.665 0.665 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 42.3 25.5 11.8 0.000992 0 0 0 World initStep + 1 42.2 25.4 11.8 0 0.000992 0.279 0.279 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 41.8 26.2 -61.1 0.00156 0 0 0 World initStep + 1 42 26.3 -61 0 0.00156 0.542 0.542 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 41.5 26.6 -105 0.00991 0 0 0 World initStep + 1 39.7 29.8 -105 0.00871 0.0012 4.13 4.13 World eIoni + 2 38.6 29.7 -107 0.00758 0.00113 2.38 6.51 World msc + 3 37.6 29.8 -108 0.00667 0.000912 1.59 8.1 World msc + 4 35.9 29.3 -108 0.00555 0.00112 2.04 10.1 World msc + 5 35.3 28.1 -109 0.00373 0.00183 1.78 11.9 World msc + 6 36 27.6 -110 0.00167 0.00206 1.7 13.6 World eIoni + 7 36.1 27.4 -110 0 0.00167 0.603 14.2 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 41 27.4 -189 0.0077 0 0 0 World initStep + 1 39.3 28.5 -189 0.00672 0.000981 2.2 2.2 World msc + 2 38.2 30.7 -190 0.00537 0.00135 2.76 4.96 World eIoni + 3 38.6 32.1 -189 0.00365 0.00172 2.27 7.24 World eIoni + 4 38.3 32.4 -188 0 0.00365 1.67 8.91 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 40.5 28.1 -324 0.00585 0 0 0 World initStep + 1 38.9 27.7 -324 0.00423 0.00162 2.44 2.44 World eIoni + 2 37.9 27.5 -323 0.00286 0.00138 1.88 4.32 World eIoni + 3 37.6 28 -323 0 0.00286 1.33 5.65 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 40.2 28.4 -402 0.00567 0 0 0 World initStep + 1 40.3 30 -401 0.00296 0.00271 2.38 2.38 World eIoni + 2 40.9 30 -401 0.00156 0.00139 1.38 3.75 World eIoni + 3 40.9 29.9 -401 0 0.00156 0.545 4.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.9 28.8 -522 0.041 0 0 0 World initStep + 1 58.2 19.7 -513 0.0349 0.00503 22.9 22.9 World eIoni + 2 80.2 10.5 -521 0.03 0.0049 27.7 50.7 World eIoni + 3 95.9 15.6 -532 0.0258 0.00419 21.4 72.1 World eIoni + 4 106 19.8 -521 0.0223 0.00355 16.6 88.7 World eIoni + 5 113 18.6 -511 0.0184 0.00391 13.1 102 World eIoni + 6 120 15.3 -507 0.0159 0.00247 9.63 111 World eIoni + 7 122 11 -502 0.014 0.00197 7.76 119 World eIoni + 8 126 9.38 -497 0.0116 0.00237 6.42 126 World eIoni + 9 128 13.5 -497 0.00972 0.00186 5 131 World eIoni + 10 130 15.9 -497 0.00754 0.00218 4.04 135 World eIoni + 11 131 15.9 -495 0.00564 0.0019 3.08 138 World eIoni + 12 132 16.4 -494 0.00339 0.00225 2.37 140 World eIoni + 13 133 16.5 -493 0 0.00339 1.57 142 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 58.2 19.7 -513 0.00101 0 0 0 World initStep + 1 58.3 19.8 -513 0 0.00101 0.287 0.287 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.7 29.1 -625 0.00118 0 0 0 World initStep + 1 39.6 29.1 -625 0 0.00118 0.356 0.356 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.7 29.1 -643 0.00698 0 0 0 World initStep + 1 41.5 30 -643 0.00566 0.00132 2.86 2.86 World eIoni + 2 42.9 30.1 -642 0.00441 0.00125 2.38 5.24 World eIoni + 3 42.2 29.9 -641 0.00312 0.00128 1.94 7.18 World eIoni + 4 41.6 29.6 -641 0 0.00312 1.45 8.63 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.5 29.3 -711 0.0063 0 0 0 World initStep + 1 37.7 29.3 -710 0.00545 0.000857 2.61 2.61 World eIoni + 2 37.5 28.9 -710 0.00275 0.000375 0.837 3.44 World eIoni + 3 37.4 28.4 -710 0 0.00275 1.27 4.72 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.5 28.9 -710 0.00233 0 0 0 World initStep + 1 37.5 29 -709 0.00133 0.000993 1.02 1.02 World eIoni + 2 37.5 29.1 -709 0 0.00133 0.43 1.45 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.5 29.3 -717 0.00116 0 0 0 World initStep + 1 39.6 29.2 -717 0 0.00116 0.348 0.348 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.1 29.4 -905 0.00214 0 0 0 World initStep + 1 38.7 29.4 -905 0 0.00214 0.894 0.894 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39 29.4 -976 0.00123 0 0 0 World initStep + 1 39 29.5 -976 0 0.00123 0.383 0.383 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.6 29.2 -1.08e+03 0.00112 0 0 0 World initStep + 1 38.7 29.4 -1.08e+03 0 0.00112 0.331 0.331 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.6 29.2 -1.08e+03 0.0173 0 0 0 World initStep + 1 37.8 36.8 -1.08e+03 0.0141 0.00328 8.81 8.81 World eIoni + 2 36.6 38.7 -1.08e+03 0.0126 0.000477 2.37 11.2 World eIoni + 3 38.3 43.2 -1.07e+03 0.00708 0.0055 5.58 16.8 World eIoni + 4 38.6 43.6 -1.07e+03 0.00537 0.000363 0.565 17.3 World eIoni + 5 39.6 43.7 -1.07e+03 0.00279 0.00258 2.27 19.6 World eIoni + 6 39.7 42.9 -1.07e+03 0 0.00279 1.3 20.9 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.6 43.6 -1.07e+03 0.00134 0 0 0 World initStep + 1 38.6 43.7 -1.07e+03 0 0.00134 0.434 0.434 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 36.6 38.7 -1.08e+03 0.00101 0 0 0 World initStep + 1 36.5 38.7 -1.08e+03 0 0.00101 0.286 0.286 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.6 29.2 -1.08e+03 0.0105 0 0 0 World initStep + 1 42.1 28.6 -1.08e+03 0.00903 0.00146 4.42 4.42 World eIoni + 2 44.4 26.9 -1.08e+03 0.00784 0.00119 3.72 8.15 World eIoni + 3 46 25 -1.08e+03 0.00584 0.00199 3.2 11.3 World eIoni + 4 47.2 23.9 -1.08e+03 0.00352 0.00233 2.44 13.8 World eIoni + 5 47.8 23.6 -1.08e+03 0 0.00352 1.62 15.4 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.3 29.1 -1.15e+03 0.00264 0 0 0 World initStep + 1 38.3 29.6 -1.15e+03 0.00135 0.00129 1.21 1.21 World eIoni + 2 38.2 29.5 -1.15e+03 0 0.00135 0.438 1.65 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.1 28.9 -1.21e+03 0.00348 0 0 0 World initStep + 1 37.7 28.9 -1.21e+03 0.00166 0.000803 0.536 0.536 World eIoni + 2 37.6 29.1 -1.21e+03 0 0.00166 0.6 1.14 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 21 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.7 28.9 -1.21e+03 0.00101 0 0 0 World initStep + 1 37.6 28.9 -1.21e+03 0 0.00101 0.287 0.287 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.7 28.7 -1.32e+03 0.00232 0 0 0 World initStep + 1 38.1 28.4 -1.32e+03 0 0.00232 1.01 1.01 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 36 28.3 -1.65e+03 0.00155 0 0 0 World initStep + 1 36 28.5 -1.65e+03 0 0.00155 0.54 0.54 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.9 28.3 -1.67e+03 0.00371 0 0 0 World initStep + 1 35.9 29.2 -1.67e+03 0 0.00371 1.69 1.69 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.5 28.2 -1.74e+03 0.00172 0 0 0 World initStep + 1 35.6 27.9 -1.74e+03 0 0.00172 0.634 0.634 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.5 28.1 -1.76e+03 0.00504 0 0 0 World initStep + 1 34.1 28.4 -1.76e+03 0.00376 0.00128 2.16 2.16 World eIoni + 2 35 28.2 -1.76e+03 0 0.00376 1.71 3.87 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.4 28.1 -1.77e+03 0.00261 0 0 0 World initStep + 1 35.8 28.4 -1.77e+03 0.00125 0.00136 1.2 1.2 World eIoni + 2 35.9 28.5 -1.77e+03 0 0.00125 0.392 1.59 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.1 28 -1.82e+03 0.0012 0 0 0 World initStep + 1 35.1 28.2 -1.82e+03 0 0.0012 0.367 0.367 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.1 28 -1.82e+03 0.00185 0 0 0 World initStep + 1 34.9 27.8 -1.82e+03 0 0.00185 0.708 0.708 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.8 27.9 -1.89e+03 0.00469 0 0 0 World initStep + 1 33.8 27.3 -1.89e+03 0.00175 0.00294 2.04 2.04 World eIoni + 2 33.7 27.6 -1.89e+03 0 0.00175 0.647 2.69 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.8 27.9 -1.9e+03 0.00124 0 0 0 World initStep + 1 34.6 27.9 -1.9e+03 0 0.00124 0.384 0.384 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.7 27.8 -1.93e+03 0.00109 0 0 0 World initStep + 1 34.8 27.8 -1.93e+03 0 0.00109 0.321 0.321 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.5 27.7 -2e+03 0.00306 0 0 0 World initStep + 1 34.7 27.8 -2e+03 0.00129 0.000661 0.295 0.295 World eIoni + 2 34.8 27.9 -2e+03 0 0.00129 0.409 0.704 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 9 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.7 27.8 -2e+03 0.00111 0 0 0 World initStep + 1 34.7 27.9 -2e+03 0 0.00111 0.326 0.326 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.3 27.3 -2.11e+03 0.00111 0 0 0 World initStep + 1 34.2 27.2 -2.11e+03 0 0.00111 0.328 0.328 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.3 27.2 -2.15e+03 0.00135 0 0 0 World initStep + 1 34.1 27.3 -2.15e+03 0 0.00135 0.436 0.436 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.3 27.2 -2.33e+03 0.00104 0 0 0 World initStep + 1 34.2 27.2 -2.33e+03 0 0.00104 0.298 0.298 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.3 27.2 -2.36e+03 0.00121 0 0 0 World initStep + 1 34.4 27.3 -2.36e+03 0 0.00121 0.37 0.37 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.3 27.2 -2.41e+03 0.00112 0 0 0 World initStep + 1 34.4 27.2 -2.41e+03 0 0.00112 0.33 0.33 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.3 27.2 -2.48e+03 0.00225 0 0 0 World initStep + 1 33.9 27.3 -2.48e+03 0 0.00225 0.966 0.966 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.3 27.3 -2.5e+03 0.00102 0 0 0 World initStep + 1 34.4 27.3 -2.5e+03 0 0.00102 0.291 0.291 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.1 -114 -2.61e+03 50 0 0 0 World initStep + 1 -32.1 -114 -2.6e+03 50 0.00154 10.8 10.8 World hIoni + 2 -32.1 -114 -2.42e+03 50 0.0329 178 188 World hIoni + 3 -32.1 -114 -2.39e+03 50 0.00565 37.2 226 World hIoni + 4 -32.1 -114 -2.35e+03 49.9 0.0071 38.8 264 World hIoni + 5 -32.1 -113 -2.28e+03 49.9 0.0156 70.6 335 World hIoni + 6 -32.2 -113 -2.19e+03 49.9 0.0144 86.2 421 World hIoni + 7 -32.2 -113 -2.19e+03 49.9 0.000298 1.17 422 World hIoni + 8 -32.2 -113 -2.07e+03 49.9 0.0215 124 547 World hIoni + 9 -32.2 -113 -2.04e+03 49.9 0.00594 26.2 573 World hIoni + 10 -32.2 -113 -2e+03 49.9 0.007 34.9 608 World hIoni + 11 -32.2 -113 -2e+03 49.9 0.00022 3.68 611 World hIoni + 12 -32.2 -113 -1.99e+03 49.9 0.00226 13.3 625 World hIoni + 13 -32.2 -113 -1.95e+03 49.8 0.00867 36.3 661 World hIoni + 14 -32.2 -113 -1.95e+03 49.8 0.000483 5.07 666 World hIoni + 15 -32.1 -112 -1.84e+03 49.8 0.0187 102 768 World hIoni + 16 -32.1 -112 -1.82e+03 49.8 0.0052 24.5 793 World hIoni + 17 -32.1 -112 -1.75e+03 49.8 0.0118 69 862 World hIoni + 18 -32.1 -112 -1.74e+03 49.8 0.00146 10.9 872 cloudPV CoupledTransportation + 19 -32.1 -112 -1.74e+03 47.9 1.89 1.44 874 World CoupledTransportation + 20 -32.2 -112 -1.72e+03 47.9 0.00318 18.7 893 World hIoni + 21 -32.3 -111 -1.65e+03 47.9 0.013 70.8 963 World hIoni + 22 -32.3 -111 -1.64e+03 47.9 0.00213 8.04 971 World hIoni + 23 -32.5 -109 -1.53e+03 47.9 0.0215 108 1.08e+03 World hIoni + 24 -32.5 -109 -1.51e+03 47.8 0.00188 20.6 1.1e+03 World hIoni + 25 -32.5 -109 -1.46e+03 47.8 0.00954 53 1.15e+03 World hIoni + 26 -32.7 -107 -1.33e+03 47.8 0.0243 132 1.29e+03 World hIoni + 27 -33.1 -106 -1.19e+03 47.8 0.0247 134 1.42e+03 World hIoni + 28 -33.1 -105 -1.17e+03 47.8 0.00253 20.5 1.44e+03 World hIoni + 29 -33.3 -105 -1.09e+03 47.8 0.0169 79.8 1.52e+03 World hIoni + 30 -33.3 -104 -1.08e+03 47.8 0.000794 8.38 1.53e+03 World hIoni + 31 -33.4 -104 -1.02e+03 47.7 0.0111 63 1.59e+03 World hIoni + 32 -33.5 -104 -1.01e+03 47.7 0.00161 9.16 1.6e+03 World hIoni + 33 -33.5 -103 -968 47.7 0.00697 44.2 1.64e+03 World hIoni + 34 -33.6 -103 -957 47.7 0.00244 11.4 1.66e+03 World hIoni + 35 -33.6 -103 -939 47.7 0.0054 17.6 1.67e+03 World hIoni + 36 -33.7 -102 -873 47.7 0.014 66.2 1.74e+03 World hIoni + 37 -33.7 -102 -864 47.7 0.00188 9.14 1.75e+03 World hIoni + 38 -33.8 -102 -833 47.7 0.00844 30.8 1.78e+03 World hIoni + 39 -33.9 -102 -801 47.7 0.00586 32.4 1.81e+03 World hIoni + 40 -34 -101 -739 47.7 0.00879 62.2 1.87e+03 World hIoni + 41 -34.1 -100 -669 47.7 0.0117 70.1 1.94e+03 World hIoni + 42 -34.1 -100 -653 47.7 0.00257 15.4 1.96e+03 World hIoni + 43 -34.1 -100 -643 47.6 0.00106 10.4 1.97e+03 World hIoni + 44 -34 -98.8 -555 47.6 0.0147 87.9 2.06e+03 World hIoni + 45 -33.4 -96.3 -421 47.6 0.033 134 2.19e+03 World hIoni + 46 -33.1 -95.7 -385 47.6 0.0066 36.1 2.23e+03 World hIoni + 47 -33.1 -95.5 -376 47.5 0.0027 8.76 2.24e+03 World hIoni + 48 -32.1 -92.7 -230 47.5 0.019 146 2.38e+03 World hIoni + 49 -31.4 -90.9 -135 47.5 0.0167 94.9 2.48e+03 World hIoni + 50 -31.1 -90.3 -107 47.5 0.00298 28.6 2.51e+03 World hIoni + 51 -30.8 -89.5 -62.6 47.5 0.00705 43.9 2.55e+03 World hIoni + 52 -30.3 -88.4 1.58 47.4 0.0133 64.2 2.61e+03 World hIoni + 53 -30.2 -88.1 17 47.4 0.00214 15.4 2.63e+03 World hIoni + 54 -30.1 -88.1 20 47.4 0.000534 3.03 2.63e+03 World hIoni + 55 -29.6 -87 81.5 47.4 0.0119 61.4 2.69e+03 World hIoni + 56 -29.1 -85.9 143 47.4 0.0113 61.9 2.76e+03 World hIoni + 57 -29 -85.8 149 47.4 0.000108 5.23 2.76e+03 World hIoni + 58 -28.4 -84.5 215 47.4 0.0136 66.7 2.83e+03 World hIoni + 59 -28.3 -84.4 223 47.4 0.00107 7.45 2.84e+03 World hIoni + 60 -28.1 -83.9 248 47.4 0.0058 25.3 2.86e+03 World hIoni + 61 -27.9 -83.6 265 47.4 0.00301 17.5 2.88e+03 World hIoni + 62 -27.7 -83.2 285 47.4 0.0017 19.7 2.9e+03 World hIoni + 63 -27.3 -82.4 330 47.4 0.00763 44.8 2.94e+03 World hIoni + 64 -26.4 -80.7 424 47.4 0.0157 93.6 3.04e+03 World hIoni + 65 -26.2 -80.4 438 47.3 0.00182 14.9 3.05e+03 World hIoni + 66 -26.1 -80.3 446 47.3 0.00449 7.89 3.06e+03 World hIoni + 67 -25.3 -78.8 527 47.3 0.0154 80.9 3.14e+03 World hIoni + 68 -25.2 -78.6 539 47.3 0.00377 11.6 3.15e+03 World hIoni + 69 -25 -78.2 563 47.3 0.00587 24.2 3.18e+03 World hIoni + 70 -24.2 -76.7 646 47.3 0.0175 83.5 3.26e+03 World hIoni + 71 -23.8 -76 684 47.3 0.00612 37.1 3.3e+03 World hIoni + 72 -23.8 -75.9 690 47.3 0.00144 6.84 3.3e+03 World hIoni + 73 -23.2 -74.7 757 47.3 0.0106 66.3 3.37e+03 World hIoni + 74 -21.6 -71.8 920 47.2 0.0355 163 3.53e+03 World hIoni + 75 -20.9 -70.6 991 47.2 0.0122 70.5 3.6e+03 World hIoni + 76 -20.8 -70.5 997 47.2 0.000981 6.68 3.61e+03 World hIoni + 77 -20.1 -69.2 1.07e+03 47.2 0.0143 73.7 3.68e+03 World hIoni + 78 -19.9 -68.9 1.09e+03 47.2 0.00434 20 3.7e+03 World hIoni + 79 -18.6 -66.4 1.23e+03 47.1 0.027 135 3.84e+03 World hIoni + 80 -18.5 -66.1 1.24e+03 47.1 0.00186 16 3.85e+03 World hIoni + 81 -18.4 -65.9 1.25e+03 47.1 0.00166 11.7 3.87e+03 World hIoni + 82 -18.1 -65.1 1.3e+03 47.1 0.00664 43.7 3.91e+03 World hIoni + 83 -18 -64.9 1.31e+03 47.1 0.00339 10.2 3.92e+03 World hIoni + 84 -17.8 -64.4 1.34e+03 47.1 0.00535 31 3.95e+03 World hIoni + 85 -17.7 -64.1 1.36e+03 47.1 0.00498 17.2 3.97e+03 World hIoni + 86 -17.4 -63.4 1.39e+03 47.1 0.00635 35.6 4e+03 World hIoni + 87 -17.3 -63 1.42e+03 47.1 0.00279 24.4 4.03e+03 World hIoni + 88 -17.2 -62.8 1.43e+03 47.1 0.00176 10.7 4.04e+03 World hIoni + 89 -17.1 -62.5 1.44e+03 47.1 0.00312 11.6 4.05e+03 World hIoni + 90 -16.8 -61.8 1.48e+03 47.1 0.00813 37.4 4.09e+03 World hIoni + 91 -16.5 -61.1 1.51e+03 47 0.00898 37.1 4.13e+03 World hIoni + 92 -16.3 -60.8 1.53e+03 47 0.00294 19.5 4.14e+03 World hIoni + 93 -16.2 -60.5 1.55e+03 47 0.002 14 4.16e+03 World hIoni + 94 -16.2 -60.3 1.55e+03 47 0.00142 9.16 4.17e+03 World hIoni + 95 -16.1 -60.1 1.57e+03 47 0.00175 11.4 4.18e+03 World hIoni + 96 -16 -60 1.57e+03 47 0.000986 5.63 4.19e+03 World hIoni + 97 -15.8 -59.6 1.6e+03 47 0.00355 24.7 4.21e+03 World hIoni + 98 -15.8 -59.6 1.6e+03 47 0 0.831 4.21e+03 World hIoni + 99 -15.7 -59.4 1.61e+03 47 0.00107 9.68 4.22e+03 World hIoni + 100 -15.3 -58.4 1.66e+03 47 0.00969 54.2 4.27e+03 World hIoni + 101 -15.2 -58.1 1.68e+03 47 0.00608 20.9 4.3e+03 World hIoni + 102 -15 -57.7 1.71e+03 47 0.00448 22.9 4.32e+03 World hIoni + 103 -14.9 -57.5 1.72e+03 47 0.0016 10.9 4.33e+03 World hIoni + 104 -14.5 -56.6 1.76e+03 46.9 0.0109 47.2 4.38e+03 World hIoni + 105 -14.2 -56 1.8e+03 46.9 0.00742 37.4 4.41e+03 World hIoni + 106 -14 -55.6 1.82e+03 46.9 0.00411 21.8 4.44e+03 World hIoni + 107 -13.9 -55.4 1.84e+03 46.9 0.00379 13.8 4.45e+03 World hIoni + 108 -13.5 -54.5 1.89e+03 46.9 0.0107 52.6 4.5e+03 World hIoni + 109 -13.5 -54.4 1.89e+03 46.9 0.00029 1.49 4.5e+03 cloudPV CoupledTransportation + 110 -13.5 -54.4 1.89e+03 45.8 1.09 0.987 4.5e+03 World CoupledTransportation + 111 -13.1 -53.6 1.96e+03 45.8 0.0159 72.8 4.58e+03 World hIoni + 112 -12.8 -53.1 2.01e+03 45.8 0.00886 44.8 4.62e+03 World hIoni + 113 -12.7 -53 2.02e+03 45.8 0.0012 10.3 4.63e+03 World hIoni + 114 -12.6 -52.9 2.03e+03 45.8 0.0028 13.7 4.65e+03 World hIoni + 115 -12.6 -52.8 2.04e+03 45.8 0.000716 6.36 4.65e+03 World hIoni + 116 -12.6 -52.8 2.04e+03 45.8 0.00102 5.13 4.66e+03 World hIoni + 117 -12.1 -52.1 2.12e+03 45.8 0.0152 75.3 4.73e+03 World hIoni + 118 -11.9 -51.8 2.15e+03 45.8 0.00593 32.5 4.77e+03 World hIoni + 119 -11.9 -51.6 2.17e+03 45.7 0.00318 13.8 4.78e+03 World hIoni + 120 -11.8 -51.5 2.18e+03 45.7 0.0021 12.3 4.79e+03 World hIoni + 121 -11.2 -50.5 2.28e+03 45.7 0.0227 102 4.89e+03 World hIoni + 122 -11.1 -50.4 2.29e+03 45.7 0.00161 12.5 4.91e+03 World hIoni + 123 -10.2 -49.3 2.41e+03 45.7 0.0247 120 5.03e+03 World hIoni + 124 -9.98 -49.1 2.43e+03 45.7 0.0037 22.1 5.05e+03 World hIoni + 125 -9.71 -48.7 2.47e+03 45.7 0.00713 33 5.08e+03 World hIoni + 126 -8.53 -47.2 2.6e+03 45.6 0.0267 132 5.21e+03 detectorPV CoupledTransportation + 127 -8.52 -47.2 2.6e+03 39.9 5.71 2.01 5.22e+03 detectorPV hIoni + 128 -8.48 -47.2 2.6e+03 34.7 5.28 1.62 5.22e+03 detectorPV hIoni + 129 -8.47 -47.2 2.6e+03 29.9 4.72 1.29 5.22e+03 detectorPV hIoni + 130 -8.49 -47.2 2.61e+03 25.8 4.13 1.03 5.22e+03 detectorPV hIoni + 131 -8.5 -47.2 2.61e+03 22 3.77 0.832 5.22e+03 detectorPV hIoni + 132 -8.51 -47.2 2.61e+03 18.7 3.39 0.667 5.22e+03 detectorPV hIoni + 133 -8.52 -47.2 2.61e+03 15.5 3.11 0.536 5.22e+03 detectorPV hIoni + 134 -8.53 -47.2 2.61e+03 12.5 3.02 0.429 5.22e+03 detectorPV hIoni + 135 -8.53 -47.2 2.61e+03 9.78 2.74 0.339 5.22e+03 detectorPV hIoni + 136 -8.54 -47.1 2.61e+03 6.94 2.84 0.268 5.22e+03 detectorPV hIoni + 137 -8.52 -47.1 2.61e+03 4.1 2.83 0.203 5.22e+03 detectorPV hIoni + 138 -8.52 -47.1 2.61e+03 0.743 3.36 0.129 5.22e+03 detectorPV hIoni + 139 -8.52 -47.1 2.61e+03 0.0122 0.731 0.00956 5.22e+03 detectorPV hIoni + 140 -8.52 -47.1 2.61e+03 0 0.0122 0.00028 5.22e+03 detectorPV hIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -9.71 -48.7 2.47e+03 0.00356 0 0 0 World initStep + 1 -9.86 -47.9 2.47e+03 0.00184 0.00171 1.63 1.63 World eIoni + 2 -9.95 -48.1 2.47e+03 0 0.00184 0.705 2.34 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -9.98 -49.1 2.43e+03 0.00139 0 0 0 World initStep + 1 -9.81 -49.1 2.43e+03 0 0.00139 0.456 0.456 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.2 -50.5 2.28e+03 0.00163 0 0 0 World initStep + 1 -11.4 -50.7 2.28e+03 0 0.00163 0.582 0.582 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.8 -51.5 2.18e+03 0.00365 0 0 0 World initStep + 1 -12.3 -50.8 2.18e+03 0.00144 0.00221 1.67 1.67 World eIoni + 2 -12.4 -51 2.18e+03 0 0.00144 0.483 2.15 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.9 -51.6 2.17e+03 0.00135 0 0 0 World initStep + 1 -12 -51.5 2.17e+03 0 0.00135 0.436 0.436 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.9 -51.8 2.15e+03 0.0026 0 0 0 World initStep + 1 -12.1 -51.3 2.15e+03 0 0.0026 1.19 1.19 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.1 -52.1 2.12e+03 0.00183 0 0 0 World initStep + 1 -11.9 -51.9 2.12e+03 0 0.00183 0.698 0.698 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.6 -52.8 2.04e+03 0.00192 0 0 0 World initStep + 1 -12.9 -52.7 2.04e+03 0 0.00192 0.751 0.751 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.6 -52.8 2.04e+03 0.0014 0 0 0 World initStep + 1 -12.6 -52.6 2.04e+03 0 0.0014 0.464 0.464 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.6 -52.9 2.03e+03 0.00104 0 0 0 World initStep + 1 -12.5 -52.8 2.03e+03 0 0.00104 0.3 0.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.7 -53 2.02e+03 0.00273 0 0 0 World initStep + 1 -12.2 -53.3 2.02e+03 0 0.00273 1.26 1.26 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -13.1 -53.6 1.96e+03 0.00142 0 0 0 World initStep + 1 -13 -53.8 1.96e+03 0 0.00142 0.473 0.473 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -13.5 -54.5 1.89e+03 0.00114 0 0 0 World initStep + 1 -13.4 -54.5 1.89e+03 0 0.00114 0.339 0.339 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -13.9 -55.4 1.84e+03 0.00115 0 0 0 World initStep + 1 -13.8 -55.4 1.84e+03 0 0.00115 0.344 0.344 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -14 -55.6 1.82e+03 0.00655 0 0 0 World initStep + 1 -12.3 -56.4 1.82e+03 0.00416 0.0024 2.7 2.7 World eIoni + 2 -11.8 -56.4 1.82e+03 0.00233 0.00182 1.85 4.55 World eIoni + 3 -11.4 -56.3 1.82e+03 0 0.00233 1.02 5.58 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -14.5 -56.6 1.76e+03 0.00108 0 0 0 World initStep + 1 -14.4 -56.6 1.76e+03 0 0.00108 0.315 0.315 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -14.9 -57.5 1.72e+03 0.00152 0 0 0 World initStep + 1 -15.1 -57.4 1.72e+03 0 0.00152 0.523 0.523 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -15.2 -58.1 1.68e+03 0.00225 0 0 0 World initStep + 1 -15.3 -58.4 1.68e+03 0 0.00225 0.965 0.965 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -15.3 -58.4 1.66e+03 0.00242 0 0 0 World initStep + 1 -15.4 -58 1.66e+03 0 0.00242 1.08 1.08 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -15.8 -59.6 1.6e+03 0.00103 0 0 0 World initStep + 1 -15.8 -59.5 1.6e+03 0 0.00103 0.293 0.293 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -15.8 -59.6 1.6e+03 0.0102 0 0 0 World initStep + 1 -17.9 -59.1 1.6e+03 0.00947 0.000782 2.29 2.29 World msc + 2 -19.8 -59.9 1.6e+03 0.00847 0.001 2.07 4.36 World msc + 3 -22.5 -59.7 1.6e+03 0.00745 0.00102 3.03 7.39 World msc + 4 -23.9 -58.8 1.6e+03 0.00487 0.00257 3.04 10.4 World eIoni + 5 -25 -58.7 1.6e+03 0.00253 0.00234 2.1 12.5 World eIoni + 6 -24.9 -59.1 1.6e+03 0 0.00253 1.14 13.7 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -16.1 -60.1 1.57e+03 0.00301 0 0 0 World initStep + 1 -16.7 -60 1.57e+03 0.0021 0.000906 1.4 1.4 World eIoni + 2 -17 -60.1 1.57e+03 0 0.0021 0.865 2.27 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -16.2 -60.3 1.55e+03 0.00404 0 0 0 World initStep + 1 -17 -59.7 1.56e+03 0.00149 0.00255 1.81 1.81 World eIoni + 2 -16.8 -59.8 1.56e+03 0 0.00149 0.509 2.32 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -16.2 -60.5 1.55e+03 0.00727 0 0 0 World initStep + 1 -14.9 -59.7 1.55e+03 0.00568 0.00159 2.1 2.1 World msc + 2 -13.9 -59 1.55e+03 0.00216 0.00352 2.38 4.48 World eIoni + 3 -13.9 -59.3 1.55e+03 0 0.00216 0.906 5.39 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -16.3 -60.8 1.53e+03 0.0126 0 0 0 World initStep + 1 -18.4 -64.7 1.53e+03 0.00912 0.00344 4.93 4.93 World msc + 2 -19.4 -67.4 1.53e+03 0.00809 0.00103 3.76 8.69 World eIoni + 3 -19.6 -69.6 1.54e+03 0.00505 0.00304 3.31 12 World eIoni + 4 -19.4 -71 1.54e+03 0.00366 0.00139 2.16 14.2 World eIoni + 5 -19.5 -70.5 1.54e+03 0.00138 0.00228 1.67 15.8 World eIoni + 6 -19.4 -70.6 1.54e+03 0 0.00138 0.453 16.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -16.5 -61.1 1.51e+03 0.0172 0 0 0 World initStep + 1 -11.9 -57.2 1.52e+03 0.0133 0.00394 8.71 8.71 World eIoni + 2 -10.1 -53.7 1.52e+03 0.0113 0.00197 5.99 14.7 World eIoni + 3 -12.4 -50 1.52e+03 0.00986 0.00144 4.85 19.6 World eIoni + 4 -12.6 -46.5 1.52e+03 0.0066 0.00327 4.11 23.7 World eIoni + 5 -12.3 -46 1.52e+03 0.00537 0.000231 0.884 24.6 World eIoni + 6 -11.9 -44.6 1.52e+03 0.00383 0.00154 2.27 26.8 World eIoni + 7 -11.6 -43.8 1.52e+03 0.00297 0.000853 1.74 28.6 World eIoni + 8 -11.7 -44.2 1.52e+03 0 0.00297 1.39 29.9 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 71 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.3 -46 1.52e+03 0.000998 0 0 0 World initStep + 1 -12.4 -45.9 1.52e+03 0 0.000998 0.281 0.281 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -16.8 -61.8 1.48e+03 0.000995 0 0 0 World initStep + 1 -16.9 -61.9 1.48e+03 0 0.000995 0.28 0.28 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -17.1 -62.5 1.44e+03 0.00146 0 0 0 World initStep + 1 -17.3 -62.6 1.44e+03 0 0.00146 0.491 0.491 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -17.2 -62.8 1.43e+03 0.00102 0 0 0 World initStep + 1 -17.3 -62.8 1.43e+03 0 0.00102 0.289 0.289 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -17.3 -63 1.42e+03 0.0127 0 0 0 World initStep + 1 -20.4 -61.2 1.42e+03 0.0112 0.0015 5.64 5.64 World eIoni + 2 -24 -60.9 1.42e+03 0.00938 0.00181 4.79 10.4 World eIoni + 3 -25.9 -59.2 1.42e+03 0.00719 0.00218 3.88 14.3 World eIoni + 4 -24.9 -58.1 1.43e+03 0.00262 0.00457 2.94 17.2 World eIoni + 5 -24.8 -57.8 1.43e+03 0 0.00262 1.2 18.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -17.4 -63.4 1.39e+03 0.0104 0 0 0 World initStep + 1 -21.3 -64.5 1.39e+03 0.00602 0.00439 4.39 4.39 World eIoni + 2 -19.8 -64.5 1.39e+03 0.00516 0.000865 2.5 6.89 World eIoni + 3 -20.2 -64.5 1.39e+03 0.00387 0.00129 2.2 9.09 World eIoni + 4 -20.9 -64.8 1.39e+03 0.0023 0.00158 1.75 10.8 World eIoni + 5 -20.9 -64.5 1.39e+03 0 0.0023 0.998 11.8 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -17.8 -64.4 1.34e+03 0.0039 0 0 0 World initStep + 1 -17.7 -65.4 1.34e+03 0.00203 0.00187 1.76 1.76 World eIoni + 2 -17.8 -65.1 1.34e+03 0 0.00203 0.821 2.59 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -18 -64.9 1.31e+03 0.00102 0 0 0 World initStep + 1 -18 -65 1.31e+03 0 0.00102 0.29 0.29 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -18.1 -65.1 1.3e+03 0.00112 0 0 0 World initStep + 1 -18.2 -65 1.3e+03 0 0.00112 0.334 0.334 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -18.4 -65.9 1.25e+03 0.00219 0 0 0 World initStep + 1 -18.1 -66.1 1.25e+03 0 0.00219 0.925 0.925 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -18.5 -66.1 1.24e+03 0.0017 0 0 0 World initStep + 1 -18.3 -66.1 1.24e+03 0 0.0017 0.622 0.622 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -18.6 -66.4 1.23e+03 0.00276 0 0 0 World initStep + 1 -18.1 -66.2 1.23e+03 0 0.00276 1.28 1.28 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -19.9 -68.9 1.09e+03 0.00121 0 0 0 World initStep + 1 -20 -69 1.09e+03 0 0.00121 0.371 0.371 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -20.1 -69.2 1.07e+03 0.00313 0 0 0 World initStep + 1 -19.5 -69.6 1.07e+03 0 0.00313 1.46 1.46 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -20.8 -70.5 997 0.00122 0 0 0 World initStep + 1 -20.9 -70.6 997 0 0.00122 0.375 0.375 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -20.9 -70.6 991 0.00374 0 0 0 World initStep + 1 -21 -71.5 991 0 0.00374 1.7 1.7 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.8 -75.9 690 0.00162 0 0 0 World initStep + 1 -23.8 -76.1 690 0 0.00162 0.579 0.579 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.8 -76 684 0.00332 0 0 0 World initStep + 1 -23.5 -75.3 684 0.00146 0.00187 1.54 1.54 World eIoni + 2 -23.4 -75.3 684 0 0.00146 0.491 2.03 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -25 -78.2 563 0.00745 0 0 0 World initStep + 1 -25.8 -79.2 564 0.00661 0.000841 1.7 1.7 World msc + 2 -28 -80 564 0.00544 0.00117 2.65 4.36 World msc + 3 -29.3 -80.8 564 0.0044 0.00104 2.3 6.65 World eIoni + 4 -29 -80.8 563 0.00276 0.00164 1.94 8.59 World eIoni + 5 -28.6 -80.4 563 0 0.00276 1.28 9.87 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -25.2 -78.6 539 0.00165 0 0 0 World initStep + 1 -25.4 -78.8 539 0 0.00165 0.591 0.591 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -25.3 -78.8 527 0.0181 0 0 0 World initStep + 1 -22.3 -79.5 528 0.0161 0.000472 3.38 3.38 World eIoni + 2 -20.4 -79.3 528 0.0111 0.000495 1.9 5.29 World eIoni + 3 -16.9 -80.5 526 0.00944 0.00166 4.74 10 World eIoni + 4 -14.4 -81.2 525 0.00694 0.0025 3.91 13.9 World eIoni + 5 -13.6 -81.2 524 0.00508 0.000346 0.912 14.9 World eIoni + 6 -12.2 -80.9 525 0.00272 0.00236 2.17 17 World eIoni + 7 -12 -80.5 524 0 0.00272 1.26 18.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 51 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -13.6 -81.2 524 0.00152 0 0 0 World initStep + 1 -13.5 -81.2 524 0 0.00152 0.521 0.521 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 51 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -20.4 -79.3 528 0.0045 0 0 0 World initStep + 1 -19.7 -78.3 528 0.00247 0.00204 1.98 1.98 World eIoni + 2 -19.3 -78.3 529 0 0.00247 1.11 3.09 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 51 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.3 -79.5 528 0.00153 0 0 0 World initStep + 1 -22.3 -79.6 529 0 0.00153 0.53 0.53 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -26.2 -80.4 438 0.00155 0 0 0 World initStep + 1 -26.4 -80.3 439 0 0.00155 0.538 0.538 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -27.7 -83.2 285 0.00151 0 0 0 World initStep + 1 -27.6 -83 285 0 0.00151 0.519 0.519 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -27.9 -83.6 265 0.00546 0 0 0 World initStep + 1 -29.3 -83 266 0.00279 0.00267 2.3 2.3 World eIoni + 2 -29.8 -82.8 266 0 0.00279 1.3 3.6 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -28.1 -83.9 248 0.00188 0 0 0 World initStep + 1 -28.2 -84.2 248 0 0.00188 0.723 0.723 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -28.3 -84.4 223 0.00373 0 0 0 World initStep + 1 -28.1 -83.5 223 0 0.00373 1.7 1.7 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -28.4 -84.5 215 0.00103 0 0 0 World initStep + 1 -28.4 -84.6 215 0 0.00103 0.293 0.293 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -29 -85.8 149 0.00202 0 0 0 World initStep + 1 -28.7 -85.7 149 0 0.00202 0.815 0.815 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -29.6 -87 81.5 0.00324 0 0 0 World initStep + 1 -30.3 -86.8 81.6 0.00145 0.00179 1.5 1.5 World eIoni + 2 -30.5 -86.8 81.6 0 0.00145 0.486 1.99 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30.1 -88.1 20 0.00239 0 0 0 World initStep + 1 -29.9 -88.4 20.1 0 0.00239 1.06 1.06 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30.3 -88.4 1.58 0.00202 0 0 0 World initStep + 1 -30.6 -88.4 1.64 0 0.00202 0.814 0.814 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30.8 -89.5 -62.6 0.0331 0 0 0 World initStep + 1 -27.8 -78.8 -58.5 0.0301 0.00178 12.2 12.2 World eIoni + 2 -29.9 -59.7 -52.7 0.0258 0.0043 21.5 33.7 World eIoni + 3 -36.9 -47.3 -51.7 0.0234 0.0024 16.6 50.3 World eIoni + 4 -36.7 -41.9 -54.1 0.0215 0.000885 6.08 56.4 World eIoni + 5 -39.4 -31 -54.9 0.0177 0.00382 12.3 68.7 World eIoni + 6 -44.6 -25.1 -58.1 0.0159 0.00174 9.08 77.8 World eIoni + 7 -49.2 -25.4 -63.6 0.015 0.00093 7.78 85.5 World eIoni + 8 -49.8 -27.3 -69.8 0.0133 0.0017 7.13 92.7 World eIoni + 9 -48.5 -28 -75.2 0.0124 0.000876 6.02 98.7 World eIoni + 10 -46.4 -30.1 -79.3 0.0105 0.00197 5.49 104 World eIoni + 11 -45.2 -33.9 -79.9 0.00843 0.00204 4.42 109 World eIoni + 12 -46.8 -36 -80.2 0.00657 0.00187 3.45 112 World eIoni + 13 -47.5 -36.1 -80 0.00511 0.000281 0.833 113 World eIoni + 14 -48.9 -36.1 -80.3 0 0.00511 2.18 115 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 40 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -47.5 -36.1 -80 0.00117 0 0 0 World initStep + 1 -47.5 -36.1 -79.9 0 0.00117 0.356 0.356 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 40 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -36.7 -41.9 -54.1 0.00102 0 0 0 World initStep + 1 -36.6 -41.9 -54.2 0 0.00102 0.289 0.289 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 40 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -27.8 -78.8 -58.5 0.00117 0 0 0 World initStep + 1 -27.7 -78.8 -58.7 0 0.00117 0.356 0.356 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -31.4 -90.9 -135 0.00456 0 0 0 World initStep + 1 -31.1 -92.1 -135 0.00343 0.00112 1.99 1.99 World eIoni + 2 -31.8 -92.3 -134 0 0.00343 1.58 3.58 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.1 -92.7 -230 0.00103 0 0 0 World initStep + 1 -32.2 -92.7 -230 0 0.00103 0.296 0.296 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.1 -95.5 -376 0.00139 0 0 0 World initStep + 1 -33.2 -95.5 -376 0 0.00139 0.456 0.456 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.1 -95.7 -385 0.0351 0 0 0 World initStep + 1 -16.1 -102 -366 0.0288 0.00631 28 28 World eIoni + 2 -3.39 -113 -358 0.0251 0.00372 20 48 World eIoni + 3 4.79 -119 -349 0.0233 0.00177 15.1 63.1 World eIoni + 4 5.06 -107 -346 0.0205 0.00287 14.1 77.1 World eIoni + 5 5.28 -101 -348 0.017 0.00244 6.87 84 World eIoni + 6 7.09 -95.6 -351 0.0109 0.00286 6.47 90.5 World eIoni + 7 7.05 -95.4 -351 0.0086 8.7e-05 0.225 90.7 World eIoni + 8 5.38 -92.9 -352 0.00618 0.00243 3.53 94.2 World eIoni + 9 4.94 -91.9 -351 0.00312 0.00305 2.56 96.8 World eIoni + 10 4.73 -91.2 -351 0.0016 0.00153 1.45 98.2 World eIoni + 11 4.59 -91.3 -351 0 0.0016 0.564 98.8 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 36 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 7.05 -95.4 -351 0.00225 0 0 0 World initStep + 1 6.97 -95.1 -351 0 0.00225 0.969 0.969 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 36 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 7.09 -95.6 -351 0.00318 0 0 0 World initStep + 1 7.78 -95.5 -351 0 0.00318 1.48 1.48 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 36 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 5.28 -101 -348 0.00105 0 0 0 World initStep + 1 5.18 -101 -348 0 0.00105 0.302 0.302 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.4 -96.3 -421 0.00164 0 0 0 World initStep + 1 -33.6 -96.3 -421 0 0.00164 0.588 0.588 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -34 -98.8 -555 0.005 0 0 0 World initStep + 1 -33.1 -99 -555 0.00464 0.000359 0.95 0.95 World msc + 2 -33.4 -99.7 -555 0.0044 0.000247 0.798 1.75 World msc + 3 -33.2 -101 -555 0.00247 0.00192 1.18 2.93 World msc + 4 -33.4 -101 -556 0 0.00247 1.12 4.05 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -34.1 -100 -643 0.00367 0 0 0 World initStep + 1 -33.3 -100 -643 0.00138 0.00229 1.68 1.68 World eIoni + 2 -33.4 -99.9 -642 0 0.00138 0.452 2.13 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -34.1 -100 -653 0.00147 0 0 0 World initStep + 1 -34.1 -100 -653 0 0.00147 0.496 0.496 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -34 -101 -739 0.00187 0 0 0 World initStep + 1 -33.9 -101 -739 0 0.00187 0.722 0.722 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.9 -102 -801 0.00156 0 0 0 World initStep + 1 -33.9 -101 -801 0 0.00156 0.542 0.542 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.7 -102 -864 0.00672 0 0 0 World initStep + 1 -34.8 -101 -863 0.00418 0.00254 2.22 2.22 World msc + 2 -35.5 -99.9 -863 0.00211 0.00207 1.86 4.08 World eIoni + 3 -35.6 -99.7 -863 0 0.00211 0.875 4.95 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.6 -103 -939 0.00259 0 0 0 World initStep + 1 -33.6 -103 -939 0 0.00259 1.19 1.19 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.6 -103 -957 0.0019 0 0 0 World initStep + 1 -33.4 -103 -957 0 0.0019 0.741 0.741 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.5 -103 -968 0.00123 0 0 0 World initStep + 1 -33.6 -103 -968 0 0.00123 0.382 0.382 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.5 -104 -1.01e+03 0.00316 0 0 0 World initStep + 1 -33.8 -103 -1.01e+03 0 0.00316 1.47 1.47 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.4 -104 -1.02e+03 0.00189 0 0 0 World initStep + 1 -33.5 -104 -1.02e+03 0 0.00189 0.732 0.732 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.3 -104 -1.08e+03 0.00397 0 0 0 World initStep + 1 -33 -105 -1.08e+03 0.00199 0.00198 1.79 1.79 World eIoni + 2 -32.8 -106 -1.08e+03 0 0.00199 0.791 2.58 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.3 -105 -1.09e+03 0.00361 0 0 0 World initStep + 1 -34.1 -105 -1.09e+03 0.00169 0.00192 1.65 1.65 World eIoni + 2 -34.3 -105 -1.09e+03 0 0.00169 0.615 2.27 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.1 -105 -1.17e+03 0.00143 0 0 0 World initStep + 1 -33.2 -105 -1.17e+03 0 0.00143 0.478 0.478 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.1 -106 -1.19e+03 0.00101 0 0 0 World initStep + 1 -33 -106 -1.19e+03 0 0.00101 0.287 0.287 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.7 -107 -1.33e+03 0.00149 0 0 0 World initStep + 1 -32.6 -107 -1.33e+03 0 0.00149 0.506 0.506 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.5 -109 -1.46e+03 0.00213 0 0 0 World initStep + 1 -32.2 -109 -1.46e+03 0 0.00213 0.888 0.888 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.5 -109 -1.53e+03 0.00201 0 0 0 World initStep + 1 -32.4 -109 -1.53e+03 0 0.00201 0.806 0.806 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.3 -111 -1.64e+03 0.00119 0 0 0 World initStep + 1 -32.4 -111 -1.64e+03 0 0.00119 0.364 0.364 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.2 -112 -1.72e+03 0.00243 0 0 0 World initStep + 1 -31.8 -112 -1.72e+03 0 0.00243 1.09 1.09 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.1 -112 -1.75e+03 0.00697 0 0 0 World initStep + 1 -33.4 -110 -1.75e+03 0.0045 0.00247 2.86 2.86 World eIoni + 2 -34.5 -110 -1.75e+03 0.00288 0.00162 1.97 4.83 World eIoni + 3 -34.9 -110 -1.75e+03 0 0.00288 1.34 6.17 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.2 -113 -1.95e+03 0.00192 0 0 0 World initStep + 1 -32.4 -113 -1.95e+03 0 0.00192 0.748 0.748 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.2 -113 -1.95e+03 0.0207 0 0 0 World initStep + 1 -42.8 -111 -1.95e+03 0.0184 0.0023 11.6 11.6 World eIoni + 2 -51.1 -114 -1.95e+03 0.0164 0.00204 9.65 21.3 World eIoni + 3 -52.9 -115 -1.95e+03 0.0109 7.6e-05 1.95 23.2 World eIoni + 4 -56.1 -116 -1.95e+03 0.00866 0.00222 4.63 27.8 World eIoni + 5 -58 -116 -1.95e+03 0.00755 0.00111 3.56 31.4 World eIoni + 6 -59.8 -117 -1.95e+03 0.00535 0.0022 3.09 34.5 World eIoni + 7 -61 -116 -1.96e+03 0.00218 0.00316 2.27 36.7 World eIoni + 8 -61.2 -116 -1.96e+03 0 0.00218 0.921 37.7 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -52.9 -115 -1.95e+03 0.00541 0 0 0 World initStep + 1 -53.3 -115 -1.95e+03 0.0037 0.00171 2.29 2.29 World eIoni + 2 -53.9 -114 -1.95e+03 0.00207 0.00163 1.69 3.97 World eIoni + 3 -53.7 -114 -1.95e+03 0 0.00207 0.843 4.82 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.2 -113 -1.99e+03 0.00104 0 0 0 World initStep + 1 -32.3 -113 -1.99e+03 0 0.00104 0.298 0.298 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.2 -113 -2e+03 0.00293 0 0 0 World initStep + 1 -32.3 -112 -2e+03 0 0.00293 1.36 1.36 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.2 -113 -2e+03 0.00102 0 0 0 World initStep + 1 -32.2 -113 -2e+03 0 0.00102 0.291 0.291 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.2 -113 -2.04e+03 0.00214 0 0 0 World initStep + 1 -31.9 -113 -2.04e+03 0 0.00214 0.889 0.889 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.2 -113 -2.07e+03 0.00256 0 0 0 World initStep + 1 -32.5 -113 -2.07e+03 0 0.00256 1.17 1.17 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.2 -113 -2.19e+03 0.00104 0 0 0 World initStep + 1 -32.1 -113 -2.19e+03 0 0.00104 0.296 0.296 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.2 -113 -2.19e+03 0.00219 0 0 0 World initStep + 1 -32.5 -113 -2.19e+03 0 0.00219 0.926 0.926 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.1 -113 -2.28e+03 0.00166 0 0 0 World initStep + 1 -32 -114 -2.28e+03 0 0.00166 0.597 0.597 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.1 -114 -2.42e+03 0.00258 0 0 0 World initStep + 1 -31.9 -114 -2.42e+03 0 0.00258 1.18 1.18 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.1 -114 -2.6e+03 0.00281 0 0 0 World initStep + 1 -31.5 -114 -2.6e+03 0 0.00281 1.3 1.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.4 83 -2.61e+03 50 0 0 0 World initStep + 1 2.4 83 -2.59e+03 50 0.00427 20.5 20.5 World hIoni + 2 2.42 83 -2.51e+03 50 0.016 85.8 106 World hIoni + 3 2.45 83 -2.45e+03 50 0.00926 55.9 162 World hIoni + 4 2.47 83 -2.4e+03 50 0.011 54.6 217 World hIoni + 5 2.47 83 -2.39e+03 50 0.000239 4.16 221 World hIoni + 6 2.51 82.9 -2.3e+03 49.9 0.0185 94.1 315 World hIoni + 7 2.51 82.9 -2.3e+03 49.9 0.000275 1.89 317 World hIoni + 8 2.59 83 -2.17e+03 49.8 0.021 125 442 World hIoni + 9 2.6 83 -2.14e+03 49.8 0.00382 31.3 473 World hIoni + 10 2.65 83 -2e+03 49.8 0.0265 143 616 World hIoni + 11 2.69 83 -1.96e+03 49.8 0.00464 37.9 654 World hIoni + 12 2.69 83 -1.96e+03 49.8 0.000389 3.62 657 World hIoni + 13 2.7 83 -1.94e+03 49.8 0.0022 12.9 670 World hIoni + 14 2.71 83 -1.92e+03 49.8 0.00568 22.1 692 World hIoni + 15 2.79 83 -1.85e+03 49.8 0.0114 69.9 762 World hIoni + 16 2.82 83.1 -1.83e+03 49.8 0.00259 15.6 778 World hIoni + 17 2.99 83.3 -1.74e+03 49.8 0.0188 92.5 870 World hIoni + 18 3.01 83.3 -1.73e+03 49.7 0.0012 11.8 882 World hIoni + 19 3.09 83.4 -1.68e+03 49.7 0.0113 48 930 World hIoni + 20 3.09 83.4 -1.68e+03 49.7 0.000857 4.61 935 World hIoni + 21 3.14 83.5 -1.65e+03 49.7 0.00386 32.1 967 World hIoni + 22 3.23 83.6 -1.6e+03 49.7 0.00626 43.6 1.01e+03 World hIoni + 23 3.28 83.6 -1.58e+03 49.7 0.00235 18.6 1.03e+03 World hIoni + 24 3.28 83.6 -1.58e+03 49.7 0.000308 0.686 1.03e+03 World hIoni + 25 3.47 83.8 -1.51e+03 49.7 0.0144 74.5 1.1e+03 World hIoni + 26 3.47 83.8 -1.51e+03 49.7 2.36e-05 0.777 1.1e+03 World hIoni + 27 3.61 83.8 -1.46e+03 49.7 0.00687 43.1 1.15e+03 World hIoni + 28 3.68 83.8 -1.45e+03 49.7 0.00163 13.7 1.16e+03 World hIoni + 29 3.69 83.8 -1.45e+03 49.6 0.000224 3.07 1.16e+03 World hIoni + 30 3.91 83.9 -1.41e+03 49.6 0.00771 39.6 1.2e+03 World hIoni + 31 5.09 84.3 -1.2e+03 49.6 0.0384 204 1.41e+03 World hIoni + 32 5.63 84.5 -1.12e+03 49.6 0.0165 87.3 1.5e+03 World hIoni + 33 5.79 84.5 -1.09e+03 49.6 0.0048 25.8 1.52e+03 World hIoni + 34 5.85 84.5 -1.08e+03 49.6 0.00198 8.4 1.53e+03 World hIoni + 35 5.96 84.6 -1.07e+03 49.5 0.00207 15.4 1.55e+03 World hIoni + 36 6.14 84.6 -1.04e+03 49.5 0.00384 25.7 1.57e+03 World hIoni + 37 6.66 84.8 -968 49.5 0.0106 73.3 1.64e+03 World hIoni + 38 8.32 85.3 -711 49.5 0.0545 258 1.9e+03 World hIoni + 39 8.46 85.4 -690 49.5 0.0037 21.1 1.92e+03 World hIoni + 40 9.36 85.7 -550 49.4 0.0249 139 2.06e+03 World hIoni + 41 9.4 85.7 -545 49.4 0.000955 5.77 2.07e+03 World hIoni + 42 9.73 85.9 -489 49.4 0.011 55.6 2.12e+03 World hIoni + 43 10.8 86.2 -332 49.4 0.0265 156 2.28e+03 World hIoni + 44 10.9 86.3 -308 49.4 0.00406 24.8 2.3e+03 World hIoni + 45 11.2 86.5 -244 49.4 0.0128 63.5 2.37e+03 World hIoni + 46 11.3 86.7 -213 49.4 0.00592 31.2 2.4e+03 World hIoni + 47 11.3 86.7 -210 49.4 0.000124 3.16 2.4e+03 World hIoni + 48 11.5 86.9 -157 49.3 0.0144 53.1 2.46e+03 World hIoni + 49 11.6 87 -127 49.3 0.00794 29.3 2.49e+03 World hIoni + 50 11.8 87.1 -78.9 49.3 0.00741 48.5 2.53e+03 World hIoni + 51 11.9 87.2 -59.9 49.3 0.00575 19 2.55e+03 World hIoni + 52 12.1 87.3 -29.1 49.3 0.00737 30.8 2.58e+03 World hIoni + 53 12.1 87.5 3.79 49.3 0.00307 32.9 2.62e+03 World hIoni + 54 12.1 87.5 8.23 49.3 0.00101 4.43 2.62e+03 World hIoni + 55 12.2 87.6 32.2 49.3 0.00489 24 2.64e+03 World hIoni + 56 12.3 87.7 46.8 49.3 0.0025 14.6 2.66e+03 World hIoni + 57 12.3 87.8 60.8 49.3 0.00341 14 2.67e+03 World hIoni + 58 12.5 88.3 147 49.3 0.0136 85.9 2.76e+03 World hIoni + 59 12.6 88.4 161 49.2 0.00365 14.3 2.77e+03 World hIoni + 60 12.6 88.5 178 49.2 0.00367 17.2 2.79e+03 World hIoni + 61 12.7 88.6 211 49.2 0.00763 33.3 2.82e+03 World hIoni + 62 12.8 88.8 236 49.2 0.00496 25 2.85e+03 World hIoni + 63 12.9 88.8 253 49.2 0.00176 16.5 2.87e+03 World hIoni + 64 13 89 280 49.2 0.00651 26.7 2.89e+03 World hIoni + 65 13.2 89.2 340 49.2 0.0129 60.8 2.95e+03 World hIoni + 66 13.2 89.4 364 49.2 0.0036 23.4 2.98e+03 World hIoni + 67 13.3 89.4 376 49.2 0.00217 12.6 2.99e+03 World hIoni + 68 13.5 90 462 49.2 0.0182 85.6 3.07e+03 World hIoni + 69 13.6 90.6 530 49.1 0.0119 67.8 3.14e+03 World hIoni + 70 13.7 90.7 547 49.1 0.00321 17.3 3.16e+03 World hIoni + 71 13.7 90.9 562 49.1 0.00403 14.7 3.17e+03 World hIoni + 72 13.8 91.2 601 49.1 0.00869 38.9 3.21e+03 World hIoni + 73 13.9 91.5 627 49.1 0.00405 26.3 3.24e+03 cloudPV CoupledTransportation + 74 13.9 91.5 629 46.7 2.4 1.98 3.24e+03 World CoupledTransportation + 75 13.8 91.7 648 46.7 0.004 18.6 3.26e+03 World hIoni + 76 13.6 91.9 676 46.7 0.00262 28 3.29e+03 World hIoni + 77 13.5 92.1 702 46.7 0.0038 26.2 3.31e+03 World hIoni + 78 13.4 92.4 729 46.7 0.00385 26.8 3.34e+03 cloudPV CoupledTransportation + 79 13.4 92.4 730 44.8 1.94 1.43 3.34e+03 World CoupledTransportation + 80 13.7 92.8 769 44.8 0.00733 39 3.38e+03 World hIoni + 81 13.7 92.8 771 44.8 0.000447 2.28 3.38e+03 World hIoni + 82 14 93.2 808 44.7 0.00621 37.2 3.42e+03 World hIoni + 83 14.2 93.5 849 44.7 0.00787 40.1 3.46e+03 World hIoni + 84 14.4 93.8 881 44.7 0.00693 32.2 3.49e+03 World hIoni + 85 14.5 93.9 892 44.7 0.00266 11.5 3.5e+03 World hIoni + 86 14.6 94.1 904 44.7 0.00135 11.6 3.52e+03 World hIoni + 87 14.7 94.2 916 44.7 0.00268 12.2 3.53e+03 World hIoni + 88 14.9 94.5 949 44.7 0.00953 32.7 3.56e+03 World hIoni + 89 15 94.7 969 44.7 0.00577 20.5 3.58e+03 World hIoni + 90 15.1 94.7 973 44.7 0.00143 3.47 3.59e+03 World hIoni + 91 15.4 95.2 1.02e+03 44.7 0.0122 49.9 3.64e+03 World hIoni + 92 15.9 95.8 1.09e+03 44.7 0.0142 63 3.7e+03 World hIoni + 93 16 96 1.1e+03 44.7 0.00254 14.2 3.71e+03 World hIoni + 94 17.3 97.5 1.26e+03 44.6 0.0287 163 3.88e+03 World hIoni + 95 17.3 97.6 1.27e+03 44.6 0.000933 2.72 3.88e+03 World hIoni + 96 17.9 98.3 1.34e+03 44.6 0.0139 76.2 3.95e+03 World hIoni + 97 18.2 98.7 1.38e+03 44.6 0.00743 41.8 4e+03 World hIoni + 98 18.7 99.4 1.45e+03 44.6 0.0134 63.9 4.06e+03 World hIoni + 99 18.9 99.7 1.47e+03 44.6 0.00601 23.3 4.08e+03 World hIoni + 100 19.1 99.9 1.5e+03 44.6 0.00546 25.2 4.11e+03 World hIoni + 101 19.5 100 1.55e+03 44.6 0.0103 51.8 4.16e+03 World hIoni + 102 19.6 101 1.55e+03 44.6 0.00156 7.39 4.17e+03 World hIoni + 103 20.8 102 1.69e+03 44.5 0.0285 139 4.31e+03 World hIoni + 104 20.9 103 1.71e+03 44.5 0.00388 17.7 4.32e+03 World hIoni + 105 21.1 103 1.73e+03 44.5 0.00318 22.9 4.35e+03 World hIoni + 106 21.5 104 1.79e+03 44.5 0.00721 50.6 4.4e+03 World hIoni + 107 22.2 105 1.9e+03 44.5 0.0211 113 4.51e+03 World hIoni + 108 22.4 105 1.92e+03 44.4 0.00209 17.7 4.53e+03 World hIoni + 109 22.8 106 1.97e+03 44.4 0.0108 53.3 4.58e+03 World hIoni + 110 23.2 107 2.04e+03 44.4 0.0141 72.9 4.65e+03 World hIoni + 111 23.7 108 2.12e+03 44.4 0.0134 78.3 4.73e+03 World hIoni + 112 23.8 108 2.13e+03 44.4 0.0014 10 4.74e+03 World hIoni + 113 23.8 108 2.13e+03 44.4 0.000431 2.63 4.75e+03 World hIoni + 114 23.8 108 2.13e+03 44.4 0.000428 2.17 4.75e+03 World hIoni + 115 23.9 108 2.16e+03 44.4 0.00434 22 4.77e+03 World hIoni + 116 23.9 108 2.17e+03 44.4 0.00194 10.2 4.78e+03 World hIoni + 117 24.1 109 2.2e+03 44.4 0.00625 31.8 4.81e+03 World hIoni + 118 24.3 109 2.23e+03 44.4 0.00605 34.3 4.85e+03 World hIoni + 119 24.3 109 2.24e+03 44.4 0.000483 1.9 4.85e+03 World hIoni + 120 24.4 109 2.25e+03 44.3 0.0041 12.4 4.86e+03 World hIoni + 121 24.7 110 2.29e+03 44.3 0.006 40.7 4.9e+03 World hIoni + 122 25.1 110 2.35e+03 44.3 0.0141 65.4 4.97e+03 World hIoni + 123 25.2 111 2.37e+03 44.3 0.00198 14.6 4.98e+03 World hIoni + 124 25.3 111 2.37e+03 44.3 0.000987 4.62 4.99e+03 World hIoni + 125 25.5 111 2.4e+03 44.3 0.00505 30.2 5.02e+03 World hIoni + 126 25.7 111 2.43e+03 44.3 0.00434 23.1 5.04e+03 World hIoni + 127 27.1 113 2.58e+03 44.3 0.0339 155 5.19e+03 World hIoni + 128 27.3 113 2.6e+03 44.3 0.00563 19.2 5.21e+03 detectorPV CoupledTransportation + 129 27.4 113 2.6e+03 38.3 5.9 1.91 5.21e+03 detectorPV hIoni + 130 27.4 113 2.6e+03 33 5.36 1.52 5.22e+03 detectorPV hIoni + 131 27.3 113 2.6e+03 28.3 4.65 1.2 5.22e+03 detectorPV hIoni + 132 27.3 113 2.61e+03 24.1 4.23 0.953 5.22e+03 detectorPV hIoni + 133 27.2 113 2.61e+03 20.6 3.54 0.755 5.22e+03 detectorPV hIoni + 134 27.2 113 2.61e+03 17.1 3.43 0.608 5.22e+03 detectorPV hIoni + 135 27.1 113 2.61e+03 13.8 3.3 0.482 5.22e+03 detectorPV hIoni + 136 27.1 113 2.61e+03 11 2.83 0.377 5.22e+03 detectorPV hIoni + 137 27.1 113 2.61e+03 8.36 2.66 0.299 5.22e+03 detectorPV hIoni + 138 27 113 2.61e+03 5.59 2.76 0.235 5.22e+03 detectorPV hIoni + 139 27 113 2.61e+03 2.48 3.12 0.172 5.22e+03 detectorPV hIoni + 140 27 113 2.61e+03 0 2.48 0.06 5.22e+03 detectorPV hIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 100, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 175 -75.3 2.04e+03 0.00369 0 0 0 World initStep - 1 175 -75.9 2.04e+03 0.0017 0.00199 1.69 1.69 World eIoni - 2 175 -76.1 2.04e+03 0 0.0017 0.621 2.31 World eIoni + 0 27.1 113 2.58e+03 0.00131 0 0 0 World initStep + 1 26.9 113 2.58e+03 0 0.00131 0.42 0.42 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 99, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 174 -75.3 2.03e+03 0.00128 0 0 0 World initStep - 1 174 -75.4 2.03e+03 0 0.00128 0.405 0.405 World eIoni + 0 25.7 111 2.43e+03 0.00168 0 0 0 World initStep + 1 25.6 111 2.43e+03 0 0.00168 0.607 0.607 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 98, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 174 -75.3 2.02e+03 0.00228 0 0 0 World initStep - 1 174 -75.1 2.02e+03 0 0.00228 0.985 0.985 World eIoni + 0 25.5 111 2.4e+03 0.00754 0 0 0 World initStep + 1 26.1 112 2.4e+03 0.0054 0.00081 1.86 1.86 World eIoni + 2 27.4 112 2.4e+03 0.00415 0.00125 2.28 4.14 World eIoni + 3 26.8 113 2.4e+03 0.00225 0.0019 1.85 6 World eIoni + 4 26.5 113 2.4e+03 0 0.00225 0.967 6.96 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 98 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 26.1 112 2.4e+03 0.00133 0 0 0 World initStep + 1 26.2 112 2.4e+03 0 0.00133 0.426 0.426 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 97, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 173 -75.4 1.97e+03 0.00909 0 0 0 World initStep - 1 176 -75.1 1.97e+03 0.00705 0.00204 3.46 3.46 World msc - 2 178 -75.1 1.97e+03 0.00541 0.00164 2.89 6.35 World eIoni - 3 179 -74.9 1.97e+03 0.0039 0.0015 2.29 8.64 World eIoni - 4 179 -74.2 1.97e+03 0.00154 0.00237 1.76 10.4 World eIoni - 5 179 -74.2 1.97e+03 0 0.00154 0.532 10.9 World eIoni + 0 25.2 111 2.37e+03 0.00122 0 0 0 World initStep + 1 25.1 111 2.37e+03 0 0.00122 0.377 0.377 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 172 -75.4 1.95e+03 0.00117 0 0 0 World initStep - 1 172 -75.3 1.95e+03 0 0.00117 0.352 0.352 World eIoni + 0 25.1 110 2.35e+03 0.0118 0 0 0 World initStep + 1 27.3 109 2.36e+03 0.0109 0.000931 4.23 4.23 World msc + 2 29.3 106 2.36e+03 0.00995 0.000934 3.67 7.9 World msc + 3 31.1 107 2.35e+03 0.0059 0.00405 4.16 12.1 World eIoni + 4 32.1 108 2.35e+03 0.00327 0.00263 2.46 14.5 World eIoni + 5 32.1 109 2.35e+03 0.00208 0.00119 1.52 16 World eIoni + 6 31.8 109 2.35e+03 0 0.00208 0.85 16.9 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 172 -75.4 1.94e+03 0.00104 0 0 0 World initStep - 1 172 -75.3 1.94e+03 0 0.00104 0.298 0.298 World eIoni + 0 24.7 110 2.29e+03 0.00427 0 0 0 World initStep + 1 23.9 110 2.29e+03 0.00265 0.00162 1.9 1.9 World eIoni + 2 23.5 111 2.29e+03 0 0.00265 1.22 3.12 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 170 -75.5 1.84e+03 0.00985 0 0 0 World initStep - 1 167 -76.2 1.84e+03 0.00842 0.00143 4.1 4.1 World eIoni - 2 166 -76.4 1.84e+03 0.00692 2.35e-05 0.317 4.42 World eIoni - 3 166 -78.3 1.84e+03 0.00548 0.00143 2.84 7.26 World eIoni - 4 166 -79.4 1.84e+03 0.00452 0.00096 2.31 9.57 World eIoni - 5 167 -80.2 1.84e+03 0.0032 0.00132 1.98 11.6 World eIoni - 6 167 -80.5 1.84e+03 0.00113 0.00207 1.49 13 World eIoni - 7 167 -80.6 1.84e+03 0 0.00113 0.338 13.4 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 94 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 166 -76.4 1.84e+03 0.00148 0 0 0 World initStep - 1 166 -76.3 1.84e+03 0 0.00148 0.502 0.502 World eIoni + 0 24.4 109 2.25e+03 0.00108 0 0 0 World initStep + 1 24.3 109 2.25e+03 0 0.00108 0.314 0.314 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 169 -75.5 1.83e+03 0.00305 0 0 0 World initStep - 1 169 -76.1 1.83e+03 0.00157 0.00148 1.42 1.42 World eIoni - 2 169 -76 1.83e+03 0 0.00157 0.551 1.97 World eIoni + 0 24.3 109 2.24e+03 0.00171 0 0 0 World initStep + 1 24.1 109 2.24e+03 0 0.00171 0.628 0.628 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 169 -75.5 1.82e+03 0.00219 0 0 0 World initStep - 1 169 -75.6 1.82e+03 0 0.00219 0.925 0.925 World eIoni + 0 23.9 108 2.17e+03 0.00164 0 0 0 World initStep + 1 23.9 108 2.17e+03 0 0.00164 0.59 0.59 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 167 -75.6 1.71e+03 0.00842 0 0 0 World initStep - 1 164 -76 1.71e+03 0.00693 0.00149 3.45 3.45 World eIoni - 2 162 -75.8 1.71e+03 0.00621 0.000721 2.84 6.29 World eIoni - 3 162 -76.2 1.72e+03 0.00412 0.000651 1.05 7.34 World eIoni - 4 162 -76.5 1.72e+03 0.00224 0.000262 0.49 7.83 World eIoni - 5 162 -76.8 1.72e+03 0 0.00224 0.96 8.79 World eIoni + 0 23.9 108 2.16e+03 0.0181 0 0 0 World initStep + 1 22.4 102 2.16e+03 0.0162 0.00195 9.42 9.42 World eIoni + 2 22.8 102 2.16e+03 0.0147 0.000353 1.52 10.9 World eIoni + 3 23.7 107 2.17e+03 0.0128 0.00193 6.9 17.8 World eIoni + 4 26.2 111 2.17e+03 0.01 0.00273 5.68 23.5 World eIoni + 5 28.5 113 2.17e+03 0.00851 0.00151 4.19 27.7 World eIoni + 6 29 113 2.17e+03 0.0069 0.000418 0.851 28.6 World eIoni + 7 29.7 115 2.17e+03 0.00579 0.00111 2.83 31.4 World eIoni + 8 30 113 2.18e+03 0.00351 0.00228 2.42 33.8 World eIoni + 9 29.5 113 2.18e+03 0.00174 0.00177 1.61 35.4 World eIoni + 10 29.3 113 2.18e+03 0 0.00174 0.643 36.1 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 91 +* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 91 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 162 -76.5 1.72e+03 0.00161 0 0 0 World initStep - 1 162 -76.6 1.72e+03 0 0.00161 0.573 0.573 World eIoni + 0 29 113 2.17e+03 0.00119 0 0 0 World initStep + 1 29.1 113 2.17e+03 0 0.00119 0.363 0.363 World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 91 +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 91 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 162 -76.2 1.72e+03 0.00144 0 0 0 World initStep - 1 162 -76.1 1.72e+03 0 0.00144 0.484 0.484 World eIoni + 0 22.8 102 2.16e+03 0.00113 0 0 0 World initStep + 1 22.8 102 2.16e+03 0 0.00113 0.337 0.337 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 166 -75.6 1.67e+03 0.00162 0 0 0 World initStep - 1 166 -75.4 1.67e+03 0 0.00162 0.578 0.578 World eIoni + 0 23.8 108 2.13e+03 0.00168 0 0 0 World initStep + 1 23.8 108 2.13e+03 0 0.00168 0.61 0.61 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 165 -75.6 1.65e+03 0.0117 0 0 0 World initStep - 1 167 -74.4 1.65e+03 0.0109 0.000767 2.7 2.7 World msc - 2 169 -73.5 1.65e+03 0.0105 0.000435 2.8 5.5 World msc - 3 172 -73.1 1.65e+03 0.00881 0.00167 3.57 9.08 World msc - 4 175 -72.7 1.65e+03 0.0073 0.00151 3.62 12.7 World eIoni - 5 176 -71 1.65e+03 0.00629 0.00102 2.99 15.7 World eIoni - 6 178 -70.5 1.65e+03 0.00472 0.00157 2.6 18.3 World eIoni - 7 179 -70.8 1.64e+03 0.00277 0.00195 2.05 20.3 World eIoni - 8 180 -70.4 1.65e+03 0 0.00277 1.29 21.6 World eIoni + 0 23.8 108 2.13e+03 0.00298 0 0 0 World initStep + 1 24.4 108 2.13e+03 0 0.00298 1.39 1.39 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 165 -75.6 1.64e+03 0.00277 0 0 0 World initStep - 1 165 -76.1 1.64e+03 0.00101 0.00175 1.28 1.28 World eIoni - 2 165 -76.2 1.64e+03 0 0.00101 0.288 1.57 World eIoni + 0 23.7 108 2.12e+03 0.00147 0 0 0 World initStep + 1 23.9 108 2.12e+03 0 0.00147 0.498 0.498 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 165 -75.6 1.63e+03 0.00104 0 0 0 World initStep - 1 165 -75.5 1.63e+03 0 0.00104 0.299 0.299 World eIoni + 0 23.2 107 2.04e+03 0.00172 0 0 0 World initStep + 1 23 107 2.04e+03 0 0.00172 0.631 0.631 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 165 -75.6 1.63e+03 0.00138 0 0 0 World initStep - 1 165 -75.6 1.63e+03 0 0.00138 0.451 0.451 World eIoni + 0 22.8 106 1.97e+03 0.00579 0 0 0 World initStep + 1 22.7 104 1.97e+03 0.00374 0.00205 2.42 2.42 World eIoni + 2 23.2 105 1.97e+03 0 0.00374 1.7 4.12 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 158 -76 1.41e+03 0.00153 0 0 0 World initStep - 1 159 -76.1 1.41e+03 0 0.00153 0.529 0.529 World eIoni + 0 22.4 105 1.92e+03 0.00191 0 0 0 World initStep + 1 22.6 106 1.92e+03 0 0.00191 0.743 0.743 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 158 -76 1.41e+03 0.00154 0 0 0 World initStep - 1 159 -76 1.41e+03 0 0.00154 0.536 0.536 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 158 -76.1 1.4e+03 0.00297 0 0 0 World initStep - 1 158 -75.6 1.4e+03 0 0.00297 1.38 1.38 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 155 -76.4 1.31e+03 0.00142 0 0 0 World initStep - 1 156 -76.4 1.31e+03 0 0.00142 0.473 0.473 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 153 -76.7 1.22e+03 0.00963 0 0 0 World initStep - 1 151 -74.4 1.22e+03 0.00862 0.00101 4 4 World eIoni - 2 150 -71.8 1.22e+03 0.00606 0.00256 3.54 7.53 World eIoni - 3 150 -71.4 1.22e+03 0.00419 0.000499 0.678 8.21 World eIoni - 4 150 -71 1.22e+03 0.00222 0.00197 1.87 10.1 World eIoni - 5 150 -70.6 1.22e+03 0 0.00222 0.944 11 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 81 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 150 -71.4 1.22e+03 0.00137 0 0 0 World initStep - 1 151 -71.3 1.22e+03 0 0.00137 0.449 0.449 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 152 -76.7 1.2e+03 0.00241 0 0 0 World initStep - 1 152 -76.3 1.2e+03 0 0.00241 1.08 1.08 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 151 -76.9 1.15e+03 0.00106 0 0 0 World initStep - 1 150 -76.8 1.15e+03 0 0.00106 0.308 0.308 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 150 -77 1.12e+03 0.00277 0 0 0 World initStep - 1 149 -76.9 1.12e+03 0.00162 0.000124 0.164 0.164 World eIoni - 2 149 -76.9 1.12e+03 0 0.00162 0.576 0.739 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 78 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 149 -76.9 1.12e+03 0.00103 0 0 0 World initStep - 1 150 -77 1.12e+03 0 0.00103 0.293 0.293 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 149 -77 1.09e+03 0.00299 0 0 0 World initStep - 1 149 -77.5 1.09e+03 0.00151 0.00148 1.39 1.39 World eIoni - 2 149 -77.4 1.09e+03 0 0.00151 0.519 1.91 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 147 -77.2 1.04e+03 0.00434 0 0 0 World initStep - 1 148 -77.6 1.04e+03 0.00316 0.00118 1.45 1.45 World eIoni - 2 149 -78.2 1.04e+03 0 0.00316 1.47 2.92 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 146 -77.3 990 0.00147 0 0 0 World initStep - 1 146 -77.1 990 0 0.00147 0.498 0.498 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 143 -77.3 920 0.00344 0 0 0 World initStep - 1 144 -78 920 0.0019 0.00154 1.59 1.59 World eIoni - 2 144 -77.8 920 0 0.0019 0.739 2.33 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 143 -77.3 898 0.00179 0 0 0 World initStep - 1 143 -77.4 898 0 0.00179 0.674 0.674 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 141 -77.2 834 0.00116 0 0 0 World initStep - 1 141 -77.1 834 0 0.00116 0.35 0.35 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 139 -77.2 777 0.00137 0 0 0 World initStep - 1 139 -77.2 777 0 0.00137 0.447 0.447 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 138 -77.2 766 0.0281 0 0 0 World initStep - 1 126 -77.7 777 0.0251 0.00297 19.1 19.1 World eIoni - 2 124 -77.7 780 0.0233 0.000553 3.61 22.7 World eIoni - 3 119 -75.2 792 0.0216 0.00174 14 36.7 World eIoni - 4 115 -76.5 803 0.0176 0.00396 12.4 49.1 World eIoni - 5 112 -77.5 805 0.00937 0.000594 4.18 53.3 World eIoni - 6 109 -75.9 806 0.00829 0.00108 3.88 57.2 World eIoni - 7 107 -75.2 805 0.00596 0.00232 3.39 60.5 World eIoni - 8 105 -74.1 805 0.00466 0.0013 2.48 63 World eIoni - 9 104 -74 805 0.00184 0.00282 2.03 65.1 World eIoni - 10 104 -74 805 0 0.00184 0.703 65.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 70 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 112 -77.5 805 0.00765 0 0 0 World initStep - 1 110 -79.5 805 0.00598 0.00167 3.13 3.13 World eIoni - 2 109 -80.5 805 0.00485 0.00114 2.49 5.62 World eIoni - 3 109 -79.4 805 0.00307 0.00178 2.09 7.71 World eIoni - 4 108 -79.5 806 0.00137 0.0017 1.43 9.14 World eIoni - 5 108 -79.4 806 0 0.00137 0.447 9.59 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 70 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 124 -77.7 780 0.00123 0 0 0 World initStep - 1 124 -77.8 780 0 0.00123 0.382 0.382 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 137 -77.1 734 0.0104 0 0 0 World initStep - 1 138 -73.4 735 0.00707 0.00332 4.37 4.37 World eIoni - 2 138 -71.3 735 0.00615 0.000922 2.9 7.27 World eIoni - 3 138 -70.6 737 0.0052 0.000948 2.55 9.82 World eIoni - 4 139 -70.4 737 0.00317 0.00204 2.22 12 World eIoni - 5 139 -70.7 737 0 0.00317 1.47 13.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 133 -76.5 587 0.001 0 0 0 World initStep - 1 133 -76.6 587 0 0.001 0.284 0.284 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 131 -76.1 522 0.00208 0 0 0 World initStep - 1 131 -76.3 522 0 0.00208 0.853 0.853 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 130 -76 506 0.00148 0 0 0 World initStep - 1 130 -75.8 506 0 0.00148 0.503 0.503 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 130 -75.9 481 0.00927 0 0 0 World initStep - 1 131 -78.1 483 0.00837 0.000899 3.83 3.83 World eIoni - 2 133 -78.5 485 0.00652 0.00186 3.26 7.1 World msc - 3 134 -78.5 486 0.00488 0.00164 2.69 9.78 World eIoni - 4 134 -78 487 0.00266 0.00222 2.1 11.9 World eIoni - 5 134 -77.8 488 0 0.00266 1.22 13.1 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 129 -75.8 468 0.00163 0 0 0 World initStep - 1 129 -75.7 468 0 0.00163 0.58 0.58 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 129 -75.6 446 0.00177 0 0 0 World initStep - 1 128 -75.8 446 0 0.00177 0.66 0.66 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 126 -75.1 370 0.0041 0 0 0 World initStep - 1 126 -74.3 370 0.00237 0.00173 1.83 1.83 World eIoni - 2 126 -74.5 370 0 0.00237 1.05 2.88 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 126 -75.1 366 0.00103 0 0 0 World initStep - 1 126 -75.2 366 0 0.00103 0.294 0.294 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 126 -75 355 0.00207 0 0 0 World initStep - 1 126 -75.3 355 0 0.00207 0.842 0.842 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 125 -74.9 334 0.00408 0 0 0 World initStep - 1 125 -75.9 335 0.00285 0.00123 1.83 1.83 World eIoni - 2 125 -76.1 334 0 0.00285 1.32 3.15 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 121 -73.9 174 0.00497 0 0 0 World initStep - 1 121 -75.2 174 0.00268 0.00229 2.14 2.14 World eIoni - 2 121 -75.6 175 0 0.00268 1.24 3.37 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 120 -73.6 123 0.00296 0 0 0 World initStep - 1 120 -73.8 124 0.00185 0.00111 1.38 1.38 World eIoni - 2 120 -73.7 124 0 0.00185 0.707 2.09 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 120 -73.6 122 0.00177 0 0 0 World initStep - 1 119 -73.5 122 0 0.00177 0.662 0.662 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 119 -73.5 103 0.00423 0 0 0 World initStep - 1 119 -73.4 103 0.00234 0.000201 0.496 0.496 World eIoni - 2 120 -73 103 0 0.00234 1.03 1.52 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 119 -73.4 103 0.00169 0 0 0 World initStep - 1 120 -73.4 103 0 0.00169 0.614 0.614 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 119 -73.5 94.4 0.00188 0 0 0 World initStep - 1 119 -73.2 94.5 0 0.00188 0.726 0.726 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 115 -72.8 -24.6 0.0174 0 0 0 World initStep - 1 111 -77.1 -19.4 0.0148 0.00261 8.82 8.82 World eIoni - 2 108 -82.8 -20.6 0.0135 0.00125 6.95 15.8 World eIoni - 3 108 -88.4 -19.5 0.0121 0.00144 6.13 21.9 World eIoni - 4 106 -92.5 -17.6 0.0111 0.00096 5.28 27.2 World eIoni - 5 105 -95.8 -16.2 0.00824 0.00286 4.74 31.9 World eIoni - 6 105 -98.3 -15.9 0.00705 0.00119 3.37 35.3 World eIoni - 7 107 -99.5 -15.6 0.00633 0.000723 2.89 38.2 World eIoni - 8 107 -99.5 -15.8 0.00502 8.31e-05 0.376 38.6 World eIoni - 9 105 -98.8 -16.1 0.00237 0.00265 2.15 40.7 World eIoni - 10 105 -98.4 -16.1 0 0.00237 1.05 41.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 53 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 107 -99.5 -15.8 0.00122 0 0 0 World initStep - 1 107 -99.5 -16 0 0.00122 0.376 0.376 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 114 -72.6 -59.7 0.0143 0 0 0 World initStep - 1 114 -66.5 -59.8 0.0118 0.00248 6.64 6.64 World eIoni - 2 113 -63.5 -56.3 0.00892 0.00289 5.14 11.8 World eIoni - 3 112 -65.2 -54.6 0.00719 0.00174 3.67 15.5 World eIoni - 4 111 -67.1 -53.7 0.00578 0.00141 2.94 18.4 World eIoni - 5 112 -68 -54.3 0.00405 0.00173 2.42 20.8 World eIoni - 6 112 -68.1 -55.3 0.00245 0.0016 1.82 22.6 World eIoni - 7 112 -67.7 -55.4 0 0.00245 1.1 23.7 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 114 -72.5 -82.6 0.00118 0 0 0 World initStep - 1 114 -72.6 -82.6 0 0.00118 0.36 0.36 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -72.3 -125 0.00111 0 0 0 World initStep - 1 113 -72.4 -125 0 0.00111 0.327 0.327 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 110 -71.8 -212 0.00278 0 0 0 World initStep - 1 110 -72.4 -212 0 0.00278 1.29 1.29 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 -71.6 -260 0.00117 0 0 0 World initStep - 1 109 -71.6 -260 0 0.00117 0.352 0.352 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 -71.6 -266 0.00421 0 0 0 World initStep - 1 109 -70.5 -266 0 0.00421 1.87 1.87 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 108 -71.4 -296 0.00127 0 0 0 World initStep - 1 108 -71.4 -296 0 0.00127 0.401 0.401 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 107 -71.3 -320 0.00192 0 0 0 World initStep - 1 107 -71.6 -319 0 0.00192 0.75 0.75 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 105 -71 -416 0.001 0 0 0 World initStep - 1 105 -70.9 -416 0 0.001 0.282 0.282 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 103 -70.9 -464 0.00247 0 0 0 World initStep - 1 103 -71.4 -464 0 0.00247 1.11 1.11 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 103 -70.8 -489 0.00145 0 0 0 World initStep - 1 103 -70.6 -489 0 0.00145 0.487 0.487 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 101 -70.3 -613 0.0011 0 0 0 World initStep - 1 101 -70.4 -613 0 0.0011 0.325 0.325 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 100 -70.1 -659 0.00411 0 0 0 World initStep - 1 99.7 -69.1 -659 0.00351 0.000598 1.84 1.84 World eIoni - 2 99.6 -68.3 -659 0 0.00351 1.61 3.45 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 99.6 -70 -682 0.00313 0 0 0 World initStep - 1 99.9 -70.6 -682 0.00191 0.00122 1.46 1.46 World eIoni - 2 100 -70.5 -682 0 0.00191 0.744 2.2 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 99.6 -70 -682 0.00299 0 0 0 World initStep - 1 99.1 -70.3 -682 0 0.00299 1.39 1.39 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 98.4 -69.7 -755 0.0028 0 0 0 World initStep - 1 98.6 -69.1 -755 0 0.0028 1.3 1.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 98.1 -69.6 -773 0.00125 0 0 0 World initStep - 1 98 -69.6 -773 0 0.00125 0.392 0.392 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 97.6 -69.4 -805 0.00155 0 0 0 World initStep - 1 97.8 -69.6 -805 0 0.00155 0.541 0.541 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 96.9 -69.3 -847 0.0218 0 0 0 World initStep - 1 100 -79.6 -846 0.0177 0.00282 11.7 11.7 World eIoni - 2 101 -80.9 -848 0.0151 0.000476 2.73 14.4 World eIoni - 3 107 -81.4 -851 0.0129 0.00224 7.18 21.6 World eIoni - 4 112 -83.3 -851 0.0102 0.00262 5.74 27.3 World eIoni - 5 115 -84.2 -849 0.00834 0.00189 4.29 31.6 World eIoni - 6 116 -85.3 -847 0.00728 0.00106 3.42 35 World eIoni - 7 117 -86.4 -844 0.0054 0.00188 2.98 38 World eIoni - 8 117 -87.1 -843 0.00399 0.0014 2.28 40.3 World eIoni - 9 117 -87.1 -842 0.00116 0.00283 1.8 42.1 World eIoni - 10 117 -87.2 -842 0 0.00116 0.35 42.4 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 101 -80.9 -848 0.00216 0 0 0 World initStep - 1 101 -81 -848 0.00194 0.000217 0.041 0.041 World eIoni - 2 101 -81.3 -848 0 0.00194 0.762 0.803 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 100 -79.6 -846 0.00122 0 0 0 World initStep - 1 100 -79.7 -846 0 0.00122 0.377 0.377 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 95.9 -68.9 -914 0.00112 0 0 0 World initStep - 1 96 -68.8 -914 0 0.00112 0.334 0.334 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 95.8 -68.9 -917 0.00351 0 0 0 World initStep - 1 96.2 -69.6 -917 0 0.00351 1.61 1.61 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 95.4 -68.8 -941 0.00166 0 0 0 World initStep - 1 95.4 -68.5 -941 0 0.00166 0.596 0.596 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 95.4 -68.8 -943 0.012 0 0 0 World initStep - 1 92.4 -65.2 -942 0.0105 0.00153 5.25 5.25 World eIoni - 2 89 -64 -940 0.0086 0.00189 4.43 9.68 World eIoni - 3 87 -65.8 -939 0.00681 0.00179 3.53 13.2 World eIoni - 4 86.1 -66 -937 0.00392 0.00289 2.8 16 World eIoni - 5 86.4 -65.1 -937 0 0.00392 1.77 17.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 95.2 -68.7 -953 0.00155 0 0 0 World initStep - 1 95.4 -68.9 -953 0 0.00155 0.54 0.54 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 95 -68.6 -968 0.00131 0 0 0 World initStep - 1 95 -68.8 -968 0 0.00131 0.416 0.416 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 94.7 -68.6 -986 0.00112 0 0 0 World initStep - 1 94.8 -68.6 -986 0 0.00112 0.333 0.333 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 93.7 -68.2 -1.05e+03 0.00121 0 0 0 World initStep - 1 93.7 -68.4 -1.05e+03 0 0.00121 0.371 0.371 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 93.2 -68.1 -1.08e+03 0.00128 0 0 0 World initStep - 1 93.4 -68.1 -1.08e+03 0 0.00128 0.403 0.403 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 93 -68.1 -1.09e+03 0.00171 0 0 0 World initStep - 1 92.8 -68.1 -1.09e+03 0 0.00171 0.625 0.625 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 92.8 -68 -1.1e+03 0.00161 0 0 0 World initStep - 1 92.8 -67.8 -1.1e+03 0 0.00161 0.57 0.57 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 90.6 -67.3 -1.24e+03 0.001 0 0 0 World initStep - 1 90.6 -67.4 -1.24e+03 0 0.001 0.282 0.282 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 88.1 -66.3 -1.42e+03 0.00119 0 0 0 World initStep - 1 88.1 -66.4 -1.42e+03 0 0.00119 0.362 0.362 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 87.6 -66.1 -1.45e+03 0.0071 0 0 0 World initStep - 1 85.8 -67.1 -1.45e+03 0.00407 0.00303 2.91 2.91 World eIoni - 2 85.3 -67.9 -1.45e+03 0.00218 0.00188 1.82 4.73 World eIoni - 3 85.5 -67.8 -1.45e+03 0 0.00218 0.92 5.65 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 86.9 -65.8 -1.5e+03 0.00319 0 0 0 World initStep - 1 86.5 -66.4 -1.5e+03 0 0.00319 1.48 1.48 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 83.9 -64.3 -1.74e+03 0.00117 0 0 0 World initStep - 1 84 -64.2 -1.74e+03 0 0.00117 0.355 0.355 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 83.4 -64 -1.78e+03 0.00146 0 0 0 World initStep - 1 83.4 -64.2 -1.78e+03 0 0.00146 0.49 0.49 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 83 -63.8 -1.81e+03 0.00104 0 0 0 World initStep - 1 82.9 -63.9 -1.81e+03 0 0.00104 0.297 0.297 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 83 -63.8 -1.81e+03 0.00398 0 0 0 World initStep - 1 82.1 -63.5 -1.81e+03 0.00176 0.00221 1.79 1.79 World eIoni - 2 82.2 -63.4 -1.81e+03 0 0.00176 0.657 2.45 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 81.6 -63.1 -1.92e+03 0.001 0 0 0 World initStep - 1 81.7 -63.1 -1.92e+03 0 0.001 0.283 0.283 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 81.3 -63 -1.95e+03 0.00233 0 0 0 World initStep - 1 81.4 -62.6 -1.95e+03 0 0.00233 1.02 1.02 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 80.4 -62.6 -2.02e+03 0.00108 0 0 0 World initStep - 1 80.5 -62.7 -2.02e+03 0 0.00108 0.316 0.316 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 80.3 -62.5 -2.03e+03 0.0024 0 0 0 World initStep - 1 80.4 -62.1 -2.03e+03 0 0.0024 1.07 1.07 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 78.9 -62.1 -2.13e+03 0.001 0 0 0 World initStep - 1 79 -62 -2.13e+03 0 0.001 0.283 0.283 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 78.8 -62 -2.14e+03 0.00118 0 0 0 World initStep - 1 78.7 -61.9 -2.14e+03 0 0.00118 0.358 0.358 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 78.6 -61.9 -2.16e+03 0.00865 0 0 0 World initStep - 1 77.3 -63.5 -2.16e+03 0.00762 0.00103 3.03 3.03 World msc - 2 77.5 -63.8 -2.16e+03 0.00588 0 0.711 3.74 World eIoni - 3 77 -64 -2.16e+03 0.00499 0.000889 2.45 6.19 World eIoni - 4 77.9 -64 -2.16e+03 0.00371 0.00128 2.14 8.34 World eIoni - 5 78.2 -63.7 -2.15e+03 0.00152 0.00218 1.69 10 World eIoni - 6 78.1 -63.5 -2.15e+03 0 0.00152 0.524 10.6 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 77.5 -63.8 -2.16e+03 0.00174 0 0 0 World initStep - 1 77.7 -64 -2.16e+03 0 0.00174 0.645 0.645 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 78.3 -61.8 -2.18e+03 0.00189 0 0 0 World initStep - 1 78 -61.9 -2.18e+03 0 0.00189 0.729 0.729 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 76.5 -61.1 -2.34e+03 0.00116 0 0 0 World initStep - 1 76.6 -61 -2.34e+03 0 0.00116 0.35 0.35 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 76.4 -61.1 -2.34e+03 0.00134 0 0 0 World initStep - 1 76.6 -61 -2.34e+03 0 0.00134 0.433 0.433 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 75.9 -60.9 -2.39e+03 0.00148 0 0 0 World initStep - 1 75.7 -60.8 -2.39e+03 0 0.00148 0.5 0.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 74.8 -60.5 -2.49e+03 0.0222 0 0 0 World initStep - 1 64.6 -54.1 -2.49e+03 0.02 0.00212 12.9 12.9 World eIoni - 2 59.3 -46 -2.49e+03 0.017 0.00305 11 23.9 World eIoni - 3 60.9 -38.8 -2.5e+03 0.0137 0.00331 8.54 32.5 World eIoni - 4 60.5 -33.3 -2.5e+03 0.0115 0.0022 6.24 38.7 World eIoni - 5 61.3 -28.9 -2.5e+03 0.0101 0.00135 4.95 43.7 World eIoni - 6 63.8 -28.8 -2.5e+03 0.00868 0.00144 4.24 47.9 World eIoni - 7 62.5 -26.3 -2.5e+03 0.0056 0.00308 3.56 51.5 World eIoni - 8 61.7 -25.4 -2.5e+03 0.00323 0.000713 1.56 53 World eIoni - 9 62.1 -24.9 -2.5e+03 0 0.00323 1.5 54.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 61.7 -25.4 -2.5e+03 0.00165 0 0 0 World initStep - 1 61.6 -25.2 -2.5e+03 0 0.00165 0.594 0.594 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 74 -60.3 -2.56e+03 0.00142 0 0 0 World initStep - 1 73.9 -60.4 -2.56e+03 0 0.00142 0.47 0.47 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 23.9 7.85 -2.61e+03 50 0 0 0 World initStep - 1 23.9 7.85 -2.58e+03 50 0.00804 33.6 33.6 World hIoni - 2 23.9 7.9 -2.44e+03 50 0.0241 135 169 World hIoni - 3 24 7.9 -2.42e+03 50 0.00507 28 197 World hIoni - 4 24 7.91 -2.4e+03 50 0.00289 18.5 216 World hIoni - 5 24 7.91 -2.39e+03 50 0.00265 11.8 227 World hIoni - 6 24 7.91 -2.37e+03 49.9 0.000788 10.6 238 World hIoni - 7 24.1 7.94 -2.25e+03 49.9 0.0205 123 360 World hIoni - 8 24.1 8.05 -2.15e+03 49.9 0.0178 102 462 World hIoni - 9 24.2 8.04 -2.13e+03 49.9 0.00424 23.4 486 World hIoni - 10 24.2 8.03 -2.1e+03 49.9 0.00608 26.9 513 World hIoni - 11 24.3 8.02 -2.06e+03 49.9 0.00542 35.8 549 World hIoni - 12 24.3 8.01 -2.03e+03 49.9 0.00568 31.4 580 World hIoni - 13 24.3 8.01 -2.03e+03 49.9 0.000207 1.33 581 World hIoni - 14 24.4 8.01 -1.99e+03 49.9 0.0115 44.5 626 World hIoni - 15 24.8 8.07 -1.81e+03 49.8 0.0324 178 803 World hIoni - 16 25.1 8.13 -1.69e+03 49.8 0.0201 123 926 World hIoni - 17 25.2 8.16 -1.65e+03 49.8 0.00701 37.1 964 World hIoni - 18 25.2 8.17 -1.63e+03 49.8 0.00404 15.1 979 World hIoni - 19 25.6 8.27 -1.51e+03 49.7 0.0272 123 1.1e+03 World hIoni - 20 25.7 8.33 -1.46e+03 49.7 0.00875 47.2 1.15e+03 World hIoni - 21 25.8 8.41 -1.4e+03 49.7 0.0115 65.8 1.21e+03 World hIoni - 22 25.9 8.45 -1.37e+03 49.7 0.00391 29.8 1.24e+03 World hIoni - 23 26.1 8.56 -1.3e+03 49.7 0.00987 71.5 1.32e+03 World hIoni - 24 26.6 8.78 -1.15e+03 49.6 0.0307 149 1.46e+03 World hIoni - 25 26.8 8.87 -1.08e+03 49.6 0.012 66.2 1.53e+03 World hIoni - 26 26.8 8.87 -1.08e+03 49.6 0.000457 2.64 1.53e+03 World hIoni - 27 26.9 8.87 -1.06e+03 49.6 0.003 16.8 1.55e+03 World hIoni - 28 27.5 8.91 -795 49.6 0.0442 267 1.82e+03 World hIoni - 29 27.5 8.9 -773 49.6 0.00462 21.8 1.84e+03 World hIoni - 30 27.8 8.88 -695 49.5 0.0161 77.9 1.92e+03 World hIoni - 31 28.2 8.84 -594 49.5 0.0233 101 2.02e+03 World hIoni - 32 28.5 8.88 -542 49.5 0.0103 52 2.07e+03 World hIoni - 33 28.7 8.91 -501 49.5 0.00781 41.8 2.11e+03 World hIoni - 34 29.3 9.21 -362 49.5 0.0234 139 2.25e+03 World hIoni - 35 29.4 9.24 -356 49.5 0.000717 6.3 2.26e+03 World hIoni - 36 29.8 9.62 -279 49.4 0.0149 76.8 2.33e+03 World hIoni - 37 29.8 9.64 -276 49.4 0.000766 2.96 2.34e+03 World hIoni - 38 30.1 9.9 -227 49.4 0.00959 48.7 2.39e+03 World hIoni - 39 30.1 9.91 -226 49.4 0.000158 1.6 2.39e+03 World hIoni - 40 30.3 10.1 -194 49.4 0.00523 32 2.42e+03 World hIoni - 41 30.4 10.2 -183 49.4 0.00219 10.9 2.43e+03 World hIoni - 42 30.4 10.2 -179 49.4 0.000524 3.14 2.43e+03 World hIoni - 43 30.6 10.4 -152 49.4 0.00516 27.6 2.46e+03 World hIoni - 44 31.1 10.8 -71.4 49.4 0.0136 80.4 2.54e+03 World hIoni - 45 31.3 11 -36.2 49.4 0.00552 35.2 2.58e+03 World hIoni - 46 31.6 11.3 15.9 49.3 0.0105 52.2 2.63e+03 World hIoni - 47 31.7 11.4 33.4 49.3 0.00373 17.4 2.65e+03 World hIoni - 48 31.9 11.6 72.9 49.3 0.00554 39.6 2.69e+03 World hIoni - 49 32.5 12.3 216 49.3 0.0258 143 2.83e+03 World hIoni - 50 32.5 12.4 229 49.3 0.00333 13.5 2.84e+03 World hIoni - 51 32.6 12.5 246 49.3 0.00296 16.8 2.86e+03 World hIoni - 52 32.8 12.7 287 49.3 0.005 40.8 2.9e+03 World hIoni - 53 32.8 12.7 293 49.3 0.0017 6.3 2.91e+03 World hIoni - 54 32.8 12.7 294 49.3 0.000136 0.94 2.91e+03 World hIoni - 55 32.9 12.8 325 49.2 0.00826 31 2.94e+03 World hIoni - 56 33.9 13.9 538 49.2 0.0441 212 3.15e+03 World hIoni - 57 35.5 15.4 815 49.1 0.0516 277 3.43e+03 World hIoni - 58 35.7 15.5 850 49.1 0.00482 34.7 3.46e+03 World hIoni - 59 35.7 15.5 864 49.1 0.00139 14 3.48e+03 World hIoni - 60 35.9 15.6 913 49.1 0.00784 49.3 3.53e+03 World hIoni - 61 36.1 15.8 989 49.1 0.0154 76.4 3.6e+03 World hIoni - 62 36.2 15.8 1.01e+03 49.1 0.0057 19.7 3.62e+03 World hIoni - 63 36.3 15.8 1.04e+03 49.1 0.00346 32.6 3.65e+03 cloudPV CoupledTransportation - 64 36.3 15.9 1.04e+03 46.3 2.75 1.99 3.66e+03 World CoupledTransportation - 65 36.5 16 1.06e+03 46.3 0.00228 13.4 3.67e+03 cloudPV CoupledTransportation - 66 36.6 16 1.06e+03 43.8 2.53 1.92 3.67e+03 World CoupledTransportation - 67 37.1 16.8 1.09e+03 43.8 0.00538 29.5 3.7e+03 World hIoni - 68 37.5 17.4 1.11e+03 43.8 0.00504 25.8 3.73e+03 World hIoni - 69 37.5 17.5 1.12e+03 43.8 0.000108 1.85 3.73e+03 cloudPV CoupledTransportation - 70 37.6 17.5 1.12e+03 41.8 2 1.57 3.73e+03 World CoupledTransportation - 71 37.6 18.1 1.15e+03 41.8 0.00692 29.5 3.76e+03 World hIoni - 72 37.6 18.2 1.16e+03 41.8 0.00201 8.96 3.77e+03 World hIoni - 73 37.7 18.3 1.16e+03 41.8 0.000541 3.74 3.77e+03 World hIoni - 74 37.9 19.5 1.23e+03 41.8 0.0144 68.1 3.84e+03 World hIoni - 75 37.9 19.8 1.24e+03 41.7 0.00201 15.7 3.86e+03 cloudPV CoupledTransportation - 76 37.9 19.8 1.24e+03 41.4 0.365 0.279 3.86e+03 World CoupledTransportation - 77 38 20.5 1.27e+03 41.4 0.0055 28.9 3.89e+03 World hIoni - 78 38 20.6 1.28e+03 41.4 0.00146 6.2 3.89e+03 World hIoni - 79 38.1 21 1.29e+03 41.4 0.00268 14.6 3.91e+03 World hIoni - 80 38.3 22.6 1.36e+03 41.4 0.0125 67.5 3.97e+03 World hIoni - 81 38.3 22.9 1.38e+03 41.3 0.00202 14.7 3.99e+03 World hIoni - 82 38.6 24.9 1.46e+03 41.3 0.0163 84.4 4.07e+03 World hIoni - 83 38.7 25.4 1.48e+03 41.3 0.0038 21.1 4.09e+03 World hIoni - 84 39 27.4 1.56e+03 41.3 0.016 79.4 4.17e+03 World hIoni - 85 39.5 30 1.67e+03 41.3 0.0232 112 4.29e+03 World hIoni - 86 39.6 30.5 1.69e+03 41.3 0.00373 21.4 4.31e+03 World hIoni - 87 39.7 31 1.71e+03 41.3 0.00336 16.8 4.32e+03 World hIoni - 88 40.1 32.9 1.79e+03 41.2 0.0207 77.1 4.4e+03 World hIoni - 89 40.2 33.3 1.8e+03 41.2 0.00459 15.8 4.42e+03 World hIoni - 90 40.4 34 1.83e+03 41.2 0.00724 29.8 4.45e+03 World hIoni - 91 40.6 35 1.87e+03 41.2 0.00705 40.4 4.49e+03 World hIoni - 92 40.7 35.5 1.89e+03 41.2 0.00655 16.9 4.5e+03 World hIoni - 93 41 36.8 1.94e+03 41.2 0.00998 50.6 4.55e+03 World hIoni - 94 41.1 37.4 1.97e+03 41.2 0.00443 24.4 4.58e+03 World hIoni - 95 41.6 39.5 2.05e+03 41.2 0.0136 81.1 4.66e+03 World hIoni - 96 41.6 39.8 2.06e+03 41.2 0.00382 12.3 4.67e+03 World hIoni - 97 42.2 42.2 2.15e+03 41.1 0.021 91.8 4.76e+03 World hIoni - 98 42.2 42.5 2.16e+03 41.1 0.00202 11.8 4.78e+03 World hIoni - 99 42.9 45.5 2.28e+03 41.1 0.029 122 4.9e+03 World hIoni - 100 43.3 47 2.34e+03 41.1 0.00929 56.9 4.95e+03 World hIoni - 101 43.3 47.3 2.36e+03 41.1 0.00233 14 4.97e+03 World hIoni - 102 44 51.1 2.5e+03 41.1 0.0226 145 5.11e+03 World hIoni - 103 44.2 52.2 2.54e+03 41 0.00675 39.9 5.15e+03 World hIoni - 104 44.5 53.8 2.6e+03 41 0.014 60.3 5.21e+03 detectorPV CoupledTransportation - 105 44.5 53.8 2.6e+03 35.6 5.48 1.69 5.21e+03 detectorPV hIoni - 106 44.6 53.9 2.6e+03 31.2 4.32 1.35 5.22e+03 detectorPV hIoni - 107 44.6 54 2.6e+03 27 4.28 1.1 5.22e+03 detectorPV hIoni - 108 44.6 54 2.61e+03 22.8 4.13 0.885 5.22e+03 detectorPV hIoni - 109 44.6 54 2.61e+03 19.2 3.66 0.7 5.22e+03 detectorPV hIoni - 110 44.7 54.1 2.61e+03 15.9 3.31 0.555 5.22e+03 detectorPV hIoni - 111 44.7 54.1 2.61e+03 12.8 3.01 0.439 5.22e+03 detectorPV hIoni - 112 44.8 54.2 2.61e+03 10.1 2.77 0.348 5.22e+03 detectorPV hIoni - 113 44.8 54.2 2.61e+03 7.21 2.87 0.276 5.22e+03 detectorPV hIoni - 114 44.8 54.2 2.61e+03 4.3 2.91 0.21 5.22e+03 detectorPV hIoni - 115 44.8 54.2 2.61e+03 0.907 3.39 0.136 5.22e+03 detectorPV hIoni - 116 44.8 54.2 2.61e+03 0 0.907 0.0127 5.22e+03 detectorPV hIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 43.3 47.3 2.36e+03 0.00101 0 0 0 World initStep - 1 43.4 47.3 2.36e+03 0 0.00101 0.287 0.287 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 43.3 47 2.34e+03 0.00736 0 0 0 World initStep - 1 42.8 46.9 2.34e+03 0.00522 0.000224 0.529 0.529 World eIoni - 2 41.7 46.1 2.34e+03 0.00221 0.00194 1.96 2.49 World eIoni - 3 41.6 45.8 2.34e+03 0 0.00221 0.94 3.43 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 79 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 41.7 46.1 2.34e+03 0.00107 0 0 0 World initStep - 1 41.7 46 2.34e+03 0 0.00107 0.311 0.311 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 79 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.8 46.9 2.34e+03 0.00191 0 0 0 World initStep - 1 42.6 47.1 2.34e+03 0 0.00191 0.746 0.746 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.9 45.5 2.28e+03 0.00118 0 0 0 World initStep - 1 42.8 45.6 2.28e+03 0 0.00118 0.359 0.359 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.2 42.5 2.16e+03 0.00205 0 0 0 World initStep - 1 42.2 42.1 2.16e+03 0 0.00205 0.831 0.831 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.2 42.2 2.15e+03 0.00404 0 0 0 World initStep - 1 42.7 42.6 2.15e+03 0.00211 0.000904 0.955 0.955 World eIoni - 2 42.9 42.9 2.15e+03 0 0.00211 0.873 1.83 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 76 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.7 42.6 2.15e+03 0.00103 0 0 0 World initStep - 1 42.7 42.7 2.15e+03 0 0.00103 0.294 0.294 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 41.6 39.8 2.06e+03 0.00331 0 0 0 World initStep - 1 41.8 39.1 2.06e+03 0 0.00331 1.53 1.53 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 41.6 39.5 2.05e+03 0.00421 0 0 0 World initStep - 1 42.5 40.1 2.05e+03 0.00219 0.00202 1.87 1.87 World eIoni - 2 42.6 39.8 2.05e+03 0 0.00219 0.925 2.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 40.6 35 1.87e+03 0.00143 0 0 0 World initStep - 1 40.4 35 1.87e+03 0 0.00143 0.478 0.478 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 40.4 34 1.83e+03 0.00112 0 0 0 World initStep - 1 40.3 33.9 1.83e+03 0 0.00112 0.331 0.331 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 40.2 33.3 1.8e+03 0.00143 0 0 0 World initStep - 1 40.1 33.1 1.8e+03 0 0.00143 0.477 0.477 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 40.1 32.9 1.79e+03 0.0189 0 0 0 World initStep - 1 41.9 27.7 1.8e+03 0.0176 0.00132 10 10 World eIoni - 2 39.5 24 1.8e+03 0.016 0.00156 8.99 19 World eIoni - 3 38.7 23.2 1.81e+03 0.0102 0.00579 7.82 26.9 World eIoni - 4 38.2 25.4 1.81e+03 0.00877 0.00145 4.29 31.1 World eIoni - 5 38.6 28.2 1.81e+03 0.00683 0.00194 3.6 34.7 World eIoni - 6 38.1 26.2 1.81e+03 0.00565 0.00118 2.8 37.6 World eIoni - 7 36.9 25.8 1.81e+03 0.00303 0.00261 2.37 39.9 World eIoni - 8 36.9 25.3 1.81e+03 0.00187 0.00117 1.41 41.3 World eIoni - 9 36.8 25.1 1.81e+03 0 0.00187 0.718 42.1 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 39.7 31 1.71e+03 0.00211 0 0 0 World initStep - 1 39.8 30.6 1.71e+03 0 0.00211 0.87 0.87 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 39.6 30.5 1.69e+03 0.00383 0 0 0 World initStep - 1 38.8 30.1 1.69e+03 0.00135 0.00248 1.74 1.74 World eIoni - 2 38.7 29.9 1.69e+03 0 0.00135 0.439 2.18 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 39.5 30 1.67e+03 0.00464 0 0 0 World initStep - 1 38.5 29.3 1.67e+03 0.00107 0.00358 2.02 2.02 World eIoni - 2 38.5 29.4 1.67e+03 0 0.00107 0.309 2.33 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 39 27.4 1.56e+03 0.00148 0 0 0 World initStep - 1 39.1 27.5 1.56e+03 0 0.00148 0.504 0.504 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 38.7 25.4 1.48e+03 0.00352 0 0 0 World initStep - 1 39.4 25.8 1.48e+03 0.00141 0.00211 1.62 1.62 World eIoni - 2 39.4 26 1.48e+03 0 0.00141 0.467 2.09 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 38.3 22.9 1.38e+03 0.00471 0 0 0 World initStep - 1 37.5 23.8 1.38e+03 0.00146 0.00326 2.05 2.05 World eIoni - 2 37.4 23.9 1.38e+03 0 0.00146 0.49 2.54 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 38.3 22.6 1.36e+03 0.0025 0 0 0 World initStep - 1 38.6 23 1.36e+03 0 0.0025 1.13 1.13 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 38.1 21 1.29e+03 0.00124 0 0 0 World initStep - 1 38 20.9 1.29e+03 0 0.00124 0.385 0.385 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 38 20.6 1.28e+03 0.0019 0 0 0 World initStep - 1 38.2 20.9 1.28e+03 0 0.0019 0.739 0.739 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 38 20.5 1.27e+03 0.00161 0 0 0 World initStep - 1 38.2 20.5 1.27e+03 0 0.00161 0.569 0.569 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 37.9 19.5 1.23e+03 0.00152 0 0 0 World initStep - 1 38.1 19.6 1.23e+03 0 0.00152 0.525 0.525 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 37.7 18.3 1.16e+03 0.00149 0 0 0 World initStep - 1 37.5 18.2 1.16e+03 0 0.00149 0.507 0.507 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 37.6 18.2 1.16e+03 0.00382 0 0 0 World initStep - 1 36.8 18.7 1.16e+03 0.00136 0.00246 1.73 1.73 World eIoni - 2 36.9 18.6 1.16e+03 0 0.00136 0.443 2.18 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 37.6 18.1 1.15e+03 0.00161 0 0 0 World initStep - 1 37.4 18 1.15e+03 0 0.00161 0.574 0.574 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 37.5 17.4 1.11e+03 0.00104 0 0 0 World initStep - 1 37.6 17.4 1.11e+03 0 0.00104 0.298 0.298 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 36.2 15.8 1.01e+03 0.00251 0 0 0 World initStep - 1 35.9 16.2 1.01e+03 0 0.00251 1.14 1.14 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 36.1 15.8 989 0.00104 0 0 0 World initStep - 1 36.1 15.8 989 0 0.00104 0.297 0.297 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 35.9 15.6 913 0.00438 0 0 0 World initStep - 1 36.6 16.5 913 0.00157 0.00281 1.93 1.93 World eIoni - 2 36.8 16.4 913 0 0.00157 0.548 2.48 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 35.7 15.5 864 0.0117 0 0 0 World initStep - 1 35.9 15.6 864 0.009 9.17e-05 0.273 0.273 World eIoni - 2 37.3 17 863 0.00693 0.000948 2.47 2.74 World eIoni - 3 38.1 17.3 863 0.0051 0.00064 0.939 3.68 World eIoni - 4 38.3 18.4 863 0.00379 0.00132 2.18 5.86 World eIoni - 5 38.3 18.9 863 0.00196 0.00183 1.72 7.58 World eIoni - 6 38.3 19.1 862 0 0.00196 0.775 8.36 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 38.1 17.3 863 0.00119 0 0 0 World initStep - 1 38.2 17.2 863 0 0.00119 0.361 0.361 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 37.3 17 863 0.00112 0 0 0 World initStep - 1 37.3 17.1 863 0 0.00112 0.333 0.333 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 35.9 15.6 864 0.00265 0 0 0 World initStep - 1 36.2 15.6 864 0 0.00265 0.885 0.885 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 35.7 15.5 850 0.0131 0 0 0 World initStep - 1 38.4 13.6 853 0.0111 0.00193 4.75 4.75 World msc - 2 39.9 16.1 856 0.00939 0.00174 4.76 9.52 World eIoni - 3 38.5 18.1 858 0.00778 0.00161 3.89 13.4 World eIoni - 4 36.8 19.4 860 0.00567 0.00211 3.18 16.6 World eIoni - 5 36.8 19.4 860 0.00382 8.94e-05 0.122 16.7 World eIoni - 6 36.9 19.3 861 0.00298 0.000847 1.74 18.4 World eIoni - 7 36.5 18.9 861 0 0.00298 1.39 19.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 50 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 36.8 19.4 860 0.00176 0 0 0 World initStep - 1 36.6 19.6 860 0 0.00176 0.655 0.655 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 35.5 15.4 815 0.00106 0 0 0 World initStep - 1 35.5 15.3 815 0 0.00106 0.306 0.306 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 33.9 13.9 538 0.0015 0 0 0 World initStep - 1 33.7 13.9 538 0 0.0015 0.514 0.514 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 32.9 12.8 325 0.0019 0 0 0 World initStep - 1 32.8 12.6 325 0 0.0019 0.739 0.739 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 32.8 12.7 294 0.00156 0 0 0 World initStep - 1 32.6 12.7 294 0 0.00156 0.544 0.544 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 32.8 12.7 293 0.0014 0 0 0 World initStep - 1 32.9 12.8 293 0 0.0014 0.463 0.463 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 32.8 12.7 287 0.0047 0 0 0 World initStep - 1 33.6 11.7 287 0.00356 0.00114 2.04 2.04 World eIoni - 2 33.6 11.4 286 0 0.00356 1.63 3.68 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 32.6 12.5 246 0.00112 0 0 0 World initStep - 1 32.7 12.3 246 0 0.00112 0.331 0.331 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 32.5 12.4 229 0.00115 0 0 0 World initStep - 1 32.5 12.5 229 0 0.00115 0.345 0.345 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 32.5 12.3 216 0.00172 0 0 0 World initStep - 1 32.7 12.5 216 0 0.00172 0.631 0.631 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.9 11.6 72.9 0.00271 0 0 0 World initStep - 1 32.4 11.8 73 0 0.00271 1.25 1.25 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.7 11.4 33.4 0.0299 0 0 0 World initStep - 1 17.2 2.8 40.8 0.0266 0.00337 21.3 21.3 World eIoni - 2 1.03 1.71 38.8 0.0222 0.00434 17.4 38.7 World eIoni - 3 -8.97 -3.35 34.2 0.0199 0.00232 13 51.7 World eIoni - 4 -11.6 -8.76 26 0.018 0.00194 10.9 62.6 World eIoni - 5 -5.43 -12.6 21.2 0.0161 0.00183 9.3 71.9 World eIoni - 6 -3.15 -11.3 14.4 0.0136 0.00256 7.92 79.8 World eIoni - 7 -4.58 -12.7 9.69 0.00834 0.00167 5.45 85.3 World eIoni - 8 -5.76 -12.6 7.35 0.00715 0.00119 3.41 88.7 World eIoni - 9 -6.63 -14.3 6.47 0.00656 0.000591 2.93 91.6 World eIoni - 10 -5.15 -13.1 6.11 0.00486 0.0017 2.7 94.3 World eIoni - 11 -4.86 -12.3 7.1 0.00252 0.00234 2.1 96.4 World eIoni - 12 -4.87 -12.5 6.65 0 0.00252 1.14 97.6 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 39 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.58 -12.7 9.69 0.00357 0 0 0 World initStep - 1 -4.35 -13.5 9.54 0.00249 0.00108 1.64 1.64 World eIoni - 2 -4.3 -13.9 9.75 0 0.00249 1.13 2.77 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.3 11 -36.2 0.00137 0 0 0 World initStep - 1 31.4 10.9 -36.2 0 0.00137 0.445 0.445 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.1 10.8 -71.4 0.0228 0 0 0 World initStep - 1 32.8 15.5 -67.5 0.0205 0.00117 6.61 6.61 World eIoni - 2 36.9 24.8 -64.2 0.0171 0.00348 11.5 18.1 World eIoni - 3 37.8 28.4 -59.3 0.0129 0.0028 6.49 24.6 World eIoni - 4 38.1 26.3 -55 0.0107 0.00219 5.13 29.7 World eIoni - 5 39.1 25.3 -51.6 0.00878 0.00195 4.55 34.2 World eIoni - 6 41.3 25.3 -49.8 0.00834 0.000447 3.61 37.8 World eIoni - 7 40.9 26.9 -51.8 0.00769 0.000642 3.41 41.3 World eIoni - 8 40.1 28.7 -53.2 0.00669 0.001 3.14 44.4 World eIoni - 9 40.8 26.9 -54 0.00506 0.00163 2.75 47.2 World eIoni - 10 39.9 25.9 -53.5 0.00381 0.00124 2.17 49.3 World eIoni - 11 39.5 26.4 -52.8 0 0.00381 1.73 51.1 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 37.8 28.4 -59.3 0.00134 0 0 0 World initStep - 1 37.8 28.2 -59.3 0 0.00134 0.43 0.43 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 32.8 15.5 -67.5 0.00109 0 0 0 World initStep - 1 32.9 15.5 -67.4 0 0.00109 0.318 0.318 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 30.6 10.4 -152 0.00499 0 0 0 World initStep - 1 31.8 10.9 -152 0.00352 0.00147 2.14 2.14 World eIoni - 2 31.5 10.6 -152 0.00183 0.000208 0.437 2.58 World eIoni - 3 31.3 10.6 -151 0 0.00183 0.695 3.28 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 36 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.5 10.6 -152 0.00149 0 0 0 World initStep - 1 31.5 10.8 -152 0 0.00149 0.506 0.506 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 30.4 10.2 -179 0.00283 0 0 0 World initStep - 1 30.7 10.7 -179 0 0.00283 1.32 1.32 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 30.3 10.1 -194 0.00863 0 0 0 World initStep - 1 27.9 10.5 -191 0.00747 0.00116 3.54 3.54 World eIoni - 2 26.2 10.4 -193 0.00627 0.0012 3.05 6.59 World eIoni - 3 26.1 11.9 -194 0.00198 0.0043 2.6 9.19 World eIoni - 4 26 12.2 -194 0 0.00198 0.786 9.98 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 29.8 9.64 -276 0.00234 0 0 0 World initStep - 1 29.7 10 -276 0 0.00234 1.03 1.03 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 29.8 9.62 -279 0.00356 0 0 0 World initStep - 1 29.8 10.5 -279 0.00175 0.00181 1.63 1.63 World eIoni - 2 29.6 10.7 -279 0 0.00175 0.649 2.28 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 29.4 9.24 -356 0.00106 0 0 0 World initStep - 1 29.3 9.29 -356 0 0.00106 0.306 0.306 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 29.3 9.21 -362 0.0016 0 0 0 World initStep - 1 29.5 9.36 -362 0 0.0016 0.566 0.566 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 28.7 8.91 -501 0.00113 0 0 0 World initStep - 1 28.7 8.79 -501 0 0.00113 0.338 0.338 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 28.5 8.88 -542 0.00437 0 0 0 World initStep - 1 28.5 8.89 -542 0.00296 0 0.0326 0.0326 World eIoni - 2 28.1 9.38 -542 0 0.00296 1.38 1.41 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 28.5 8.89 -542 0.00141 0 0 0 World initStep - 1 28.3 8.78 -542 0 0.00141 0.469 0.469 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 27.8 8.88 -695 0.00176 0 0 0 World initStep - 1 27.7 8.66 -695 0 0.00176 0.654 0.654 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 27.5 8.9 -773 0.0022 0 0 0 World initStep - 1 27.9 8.75 -773 0 0.0022 0.93 0.93 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 27.5 8.91 -795 0.00293 0 0 0 World initStep - 1 27.8 9.41 -795 0.00139 0.00154 1.36 1.36 World eIoni - 2 27.7 9.49 -795 0 0.00139 0.457 1.82 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 26.9 8.87 -1.06e+03 0.0122 0 0 0 World initStep - 1 31.6 8.03 -1.06e+03 0.0109 0.0013 5.22 5.22 World msc - 2 35.2 7.69 -1.06e+03 0.00907 0.0018 4.62 9.84 World eIoni - 3 35.9 7.19 -1.06e+03 0.00525 0.00019 0.989 10.8 World eIoni - 4 36.6 6.36 -1.06e+03 0.00305 0.0022 2.23 13.1 World eIoni - 5 37 6.71 -1.06e+03 0.00144 0.00161 1.33 14.4 World eIoni - 6 37.1 6.55 -1.06e+03 0 0.00144 0.484 14.9 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 24 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 35.9 7.19 -1.06e+03 0.00363 0 0 0 World initStep - 1 36.6 6.99 -1.06e+03 0.0022 0.00143 1.66 1.66 World eIoni - 2 36.6 6.9 -1.06e+03 0 0.0022 0.929 2.59 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 26.8 8.87 -1.08e+03 0.00437 0 0 0 World initStep - 1 26.9 9.55 -1.08e+03 0.00162 0.00275 0.871 0.871 World eIoni - 2 26.9 9.78 -1.08e+03 0 0.00162 0.574 1.45 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 26.8 8.87 -1.08e+03 0.00114 0 0 0 World initStep - 1 26.8 8.74 -1.08e+03 0 0.00114 0.341 0.341 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 26.6 8.78 -1.15e+03 0.00181 0 0 0 World initStep - 1 26.9 8.77 -1.15e+03 0 0.00181 0.686 0.686 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 26.1 8.56 -1.3e+03 0.00144 0 0 0 World initStep - 1 26.3 8.5 -1.3e+03 0 0.00144 0.482 0.482 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 25.9 8.45 -1.37e+03 0.00241 0 0 0 World initStep - 1 25.5 8.17 -1.37e+03 0 0.00241 1.08 1.08 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 25.8 8.41 -1.4e+03 0.0202 0 0 0 World initStep - 1 23.6 10.5 -1.4e+03 0.0119 0.000475 4.18 4.18 World eIoni - 2 25.7 13.3 -1.39e+03 0.0102 0.00178 5.21 9.39 World eIoni - 3 26.8 17 -1.39e+03 0.00851 0.00165 4.26 13.7 World eIoni - 4 25.4 18.5 -1.39e+03 0.00693 0.00158 3.49 17.1 World eIoni - 5 25.5 19.3 -1.39e+03 0.00356 0.000434 1.06 18.2 World eIoni - 6 26.1 19.8 -1.4e+03 0 0.00356 1.64 19.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 25.5 19.3 -1.39e+03 0.00294 0 0 0 World initStep - 1 25.1 19.8 -1.39e+03 0 0.00294 1.37 1.37 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 23.6 10.5 -1.4e+03 0.00783 0 0 0 World initStep - 1 22.3 10.2 -1.4e+03 0.00586 0.000744 1.44 1.44 World eIoni - 2 20.7 10.2 -1.39e+03 0.00231 0.00355 2.44 3.89 World eIoni - 3 20.8 10.5 -1.39e+03 0 0.00231 1.01 4.9 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 94 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 22.3 10.2 -1.4e+03 0.00123 0 0 0 World initStep - 1 22.4 10.1 -1.4e+03 0 0.00123 0.38 0.38 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 25.7 8.33 -1.46e+03 0.0011 0 0 0 World initStep - 1 25.6 8.26 -1.46e+03 0 0.0011 0.324 0.324 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 25.6 8.27 -1.51e+03 0.00584 0 0 0 World initStep - 1 25.3 9.07 -1.51e+03 0.00358 0.00117 1.15 1.15 World eIoni - 2 25.3 9.12 -1.51e+03 0 0.00358 1.64 2.79 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 16 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 25.3 9.07 -1.51e+03 0.00108 0 0 0 World initStep - 1 25.2 9.15 -1.51e+03 0 0.00108 0.316 0.316 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 25.2 8.17 -1.63e+03 0.00283 0 0 0 World initStep - 1 25.1 8.72 -1.63e+03 0.00113 0.0017 1.32 1.32 World eIoni - 2 25 8.66 -1.63e+03 0 0.00113 0.336 1.65 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 25.1 8.13 -1.69e+03 0.00845 0 0 0 World initStep - 1 23.9 10.3 -1.69e+03 0.00741 0.00104 2.93 2.93 World msc - 2 22.2 11 -1.69e+03 0.0063 0.0011 2.8 5.73 World msc - 3 21.4 10.9 -1.69e+03 0.00362 0.00268 2.61 8.34 World eIoni - 4 21.6 11 -1.69e+03 0.00202 0.0016 1.66 10 World eIoni - 5 21.5 10.9 -1.69e+03 0 0.00202 0.813 10.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24.8 8.07 -1.81e+03 0.0223 0 0 0 World initStep - 1 13.2 9.47 -1.81e+03 0.0202 0.00204 13 13 World eIoni - 2 3.47 6.88 -1.81e+03 0.0179 0.00234 11.2 24.2 World eIoni - 3 -5.04 6.76 -1.81e+03 0.0162 0.00166 9.23 33.4 World eIoni - 4 -8 9.25 -1.81e+03 0.0136 0.0015 4.41 37.8 World eIoni - 5 -12.5 10.8 -1.81e+03 0.0116 0.00197 6.2 44 World eIoni - 6 -15.9 11.4 -1.81e+03 0.00797 0.00173 3.66 47.7 World eIoni - 7 -18.3 11.4 -1.81e+03 0.00659 0.00138 3.26 51 World eIoni - 8 -18 12.8 -1.81e+03 0.00499 0.00159 2.71 53.7 World eIoni - 9 -18.2 13 -1.81e+03 0.00368 0.000172 0.251 53.9 World eIoni - 10 -18.1 13.6 -1.81e+03 0.00199 0.00169 1.68 55.6 World eIoni - 11 -18.4 13.6 -1.81e+03 0 0.00199 0.792 56.4 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 13 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.2 13 -1.81e+03 0.00115 0 0 0 World initStep - 1 -18.3 13 -1.81e+03 0 0.00115 0.343 0.343 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 13 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -15.9 11.4 -1.81e+03 0.00194 0 0 0 World initStep - 1 -16 11.6 -1.81e+03 0 0.00194 0.762 0.762 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 13 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8 9.25 -1.81e+03 0.00111 0 0 0 World initStep - 1 -7.93 9.35 -1.81e+03 0 0.00111 0.328 0.328 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24.4 8.01 -1.99e+03 0.00276 0 0 0 World initStep - 1 24.3 8.55 -1.99e+03 0.00107 0.00169 1.28 1.28 World eIoni - 2 24.4 8.55 -1.99e+03 0 0.00107 0.312 1.59 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24.3 8.02 -2.06e+03 0.00205 0 0 0 World initStep - 1 24.1 7.74 -2.06e+03 0 0.00205 0.83 0.83 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24.2 8.03 -2.1e+03 0.00193 0 0 0 World initStep - 1 23.9 8.04 -2.1e+03 0 0.00193 0.757 0.757 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24.2 8.04 -2.13e+03 0.00188 0 0 0 World initStep - 1 23.9 7.99 -2.13e+03 0 0.00188 0.727 0.727 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24.1 7.94 -2.25e+03 0.00519 0 0 0 World initStep - 1 25.4 7.53 -2.25e+03 0.00239 0.0028 2.21 2.21 World eIoni - 2 25.4 7.21 -2.25e+03 0 0.00239 1.06 3.28 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24 7.91 -2.37e+03 0.00106 0 0 0 World initStep - 1 24.1 7.91 -2.37e+03 0 0.00106 0.306 0.306 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24 7.91 -2.39e+03 0.0013 0 0 0 World initStep - 1 24 7.76 -2.39e+03 0 0.0013 0.412 0.412 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24 7.91 -2.4e+03 0.00245 0 0 0 World initStep - 1 23.9 8.35 -2.4e+03 0 0.00245 1.1 1.1 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24 7.9 -2.42e+03 0.00121 0 0 0 World initStep - 1 23.9 8 -2.42e+03 0 0.00121 0.373 0.373 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 23.9 7.9 -2.44e+03 0.00121 0 0 0 World initStep - 1 24 8.04 -2.44e+03 0 0.00121 0.371 0.371 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 23.9 7.85 -2.58e+03 0.00107 0 0 0 World initStep - 1 23.8 7.77 -2.58e+03 0 0.00107 0.309 0.309 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.1 64 -2.61e+03 50 0 0 0 World initStep - 1 -18.1 64 -2.55e+03 50 0.0106 62.4 62.4 World hIoni - 2 -18.1 64 -2.54e+03 50 0.000769 7.31 69.7 World hIoni - 3 -18.1 64 -2.54e+03 50 0.000869 4.37 74.1 World hIoni - 4 -18 64 -2.5e+03 50 0.00871 42.9 117 World hIoni - 5 -18 64 -2.49e+03 50 0.00115 4.52 121 World hIoni - 6 -18 63.9 -2.45e+03 50 0.00813 45.2 167 World hIoni - 7 -18 63.9 -2.41e+03 49.9 0.00617 37.9 205 World hIoni - 8 -17.9 63.8 -2.36e+03 49.9 0.0073 50.7 255 World hIoni - 9 -17.9 63.8 -2.35e+03 49.9 7.15e-05 3.06 258 World hIoni - 10 -17.9 63.8 -2.31e+03 49.9 0.00688 47.9 306 World hIoni - 11 -17.8 63.7 -2.29e+03 49.9 0.0044 20.2 326 World hIoni - 12 -17.8 63.7 -2.28e+03 49.9 0.000254 3.17 330 World hIoni - 13 -17.8 63.6 -2.24e+03 49.9 0.00568 45.2 375 World hIoni - 14 -17.8 63.5 -2.23e+03 49.9 0.00145 8.91 384 World hIoni - 15 -17.7 63.5 -2.19e+03 49.9 0.0092 42.1 426 World hIoni - 16 -17.7 63.4 -2.15e+03 49.9 0.00471 34.8 461 World hIoni - 17 -17.7 63.1 -2.09e+03 49.9 0.0126 61.6 522 World hIoni - 18 -17.8 63 -2.05e+03 49.9 0.0058 36.7 559 World hIoni - 19 -17.8 62.8 -2.02e+03 49.9 0.0068 35.5 594 World hIoni - 20 -17.8 62.7 -1.99e+03 49.8 0.00488 29.5 624 World hIoni - 21 -17.9 62.2 -1.82e+03 49.8 0.0325 166 790 World hIoni - 22 -18 62.1 -1.79e+03 49.8 0.00467 35.4 825 World hIoni - 23 -18.1 61.6 -1.65e+03 49.8 0.0229 134 959 World hIoni - 24 -18.2 61.4 -1.58e+03 49.8 0.0128 74 1.03e+03 World hIoni - 25 -18.6 61 -1.38e+03 49.7 0.0374 203 1.24e+03 World hIoni - 26 -18.6 60.9 -1.35e+03 49.7 0.00429 29.9 1.27e+03 World hIoni - 27 -18.7 60.9 -1.31e+03 49.7 0.00446 32.5 1.3e+03 World hIoni - 28 -18.9 60.8 -1.24e+03 49.6 0.0167 75.3 1.37e+03 World hIoni - 29 -19 60.8 -1.21e+03 49.6 0.00697 32.8 1.41e+03 World hIoni - 30 -19 60.7 -1.19e+03 49.6 0.00271 11.9 1.42e+03 World hIoni - 31 -19.1 60.7 -1.18e+03 49.6 0.00246 16.7 1.44e+03 World hIoni - 32 -19.1 60.7 -1.17e+03 49.6 0.00153 9.97 1.45e+03 World hIoni - 33 -19.3 60.7 -1.08e+03 49.6 0.0184 89.2 1.53e+03 World hIoni - 34 -19.4 60.7 -1.07e+03 49.6 0.00133 12.3 1.55e+03 World hIoni - 35 -19.4 60.6 -1.02e+03 49.6 0.00384 41.3 1.59e+03 World hIoni - 36 -19.6 60.5 -932 49.6 0.0182 92.7 1.68e+03 World hIoni - 37 -19.6 60.5 -925 49.5 0.00184 7.14 1.69e+03 World hIoni - 38 -19.8 60.5 -832 49.5 0.0158 93 1.78e+03 World hIoni - 39 -19.8 60.4 -798 49.5 0.00824 33.2 1.81e+03 World hIoni - 40 -19.8 60.4 -795 49.5 0.000533 3.65 1.82e+03 World hIoni - 41 -20 60.4 -728 49.5 0.0101 67.3 1.89e+03 World hIoni - 42 -20.1 60.3 -612 49.5 0.0209 116 2e+03 World hIoni - 43 -20.1 60.2 -542 49.5 0.0148 70.3 2.07e+03 World hIoni - 44 -20.1 60.2 -520 49.5 0.00277 22.2 2.09e+03 World hIoni - 45 -20.1 60.2 -495 49.5 0.00473 24.2 2.12e+03 World hIoni - 46 -20 60.2 -356 49.4 0.0264 139 2.26e+03 World hIoni - 47 -20 60.2 -354 49.4 0.000192 2.56 2.26e+03 World hIoni - 48 -20 60.2 -285 49.4 0.0127 69.2 2.33e+03 World hIoni - 49 -20 60.2 -281 49.4 0.000211 3.44 2.33e+03 World hIoni - 50 -20 60.2 -250 49.4 0.00763 31.3 2.36e+03 World hIoni - 51 -20 60.2 -230 49.4 0.00327 19.7 2.38e+03 World hIoni - 52 -20 60.1 -198 49.4 0.00396 32 2.41e+03 World hIoni - 53 -20 60.1 -176 49.4 0.0029 22.3 2.44e+03 World hIoni - 54 -19.9 60 -67.4 49.4 0.0224 108 2.55e+03 World hIoni - 55 -19.9 60 -66.8 49.4 8.36e-05 0.596 2.55e+03 World hIoni - 56 -19.9 60 -33.1 49.4 0.00582 33.7 2.58e+03 World hIoni - 57 -19.9 59.9 17 49.3 0.00791 50.1 2.63e+03 World hIoni - 58 -19.9 59.9 27.6 49.3 0.00108 10.6 2.64e+03 World hIoni - 59 -19.9 59.9 43.8 49.3 0.00486 16.2 2.66e+03 World hIoni - 60 -20 59.9 102 49.3 0.0134 58.2 2.71e+03 World hIoni - 61 -20 59.9 110 49.3 0.00242 8.36 2.72e+03 World hIoni - 62 -20 59.9 146 49.3 0.00385 35.4 2.76e+03 cloudPV CoupledTransportation - 63 -20 59.9 147 47.5 1.8 1.44 2.76e+03 World CoupledTransportation - 64 -19.5 59.6 207 47.5 0.00973 59.4 2.82e+03 World hIoni - 65 -19 59.3 267 47.5 0.0105 60.2 2.88e+03 World hIoni - 66 -18.6 59.1 306 47.5 0.00862 39.4 2.92e+03 World hIoni - 67 -18.5 59.1 321 47.5 0.00232 14.8 2.93e+03 World hIoni - 68 -18.4 59 333 47.4 0.00161 11.7 2.95e+03 World hIoni - 69 -18.4 59 333 47.4 2.93e-07 0.00156 2.95e+03 World hIoni - 70 -18.3 59 341 47.4 0.00112 8.75 2.95e+03 World hIoni - 71 -16.9 58.5 494 47.4 0.0253 153 3.11e+03 World hIoni - 72 -16.5 58.3 539 47.4 0.00708 44.7 3.15e+03 World hIoni - 73 -16.1 58 589 47.4 0.00508 49.6 3.2e+03 World hIoni - 74 -16.1 58 593 47.4 0.000433 4.11 3.21e+03 World hIoni - 75 -16 58 599 47.4 0.0011 6.7 3.21e+03 World hIoni - 76 -14.9 57.5 726 47.4 0.021 127 3.34e+03 World hIoni - 77 -14.8 57.5 730 47.4 0.000549 3.05 3.34e+03 World hIoni - 78 -13.3 56.9 860 47.3 0.0269 130 3.47e+03 World hIoni - 79 -13 56.8 891 47.3 0.00491 31.1 3.5e+03 World hIoni - 80 -12.8 56.7 910 47.3 0.00237 19.2 3.52e+03 World hIoni - 81 -12.6 56.7 921 47.3 0.00267 10.9 3.53e+03 World hIoni - 82 -11.9 56.4 980 47.3 0.00963 59 3.59e+03 World hIoni - 83 -11.8 56.4 984 47.3 0.000649 4.24 3.6e+03 World hIoni - 84 -11.4 56.3 1.01e+03 47.3 0.00723 30.6 3.63e+03 World hIoni - 85 -11 56.1 1.05e+03 47.3 0.00433 32.3 3.66e+03 World hIoni - 86 -10.9 56.1 1.05e+03 47.3 0.00229 7.91 3.67e+03 World hIoni - 87 -9.34 55.5 1.17e+03 47.3 0.0195 112 3.78e+03 World hIoni - 88 -9.12 55.4 1.18e+03 47.3 0.00371 16.9 3.8e+03 World hIoni - 89 -8.08 55.1 1.26e+03 47.3 0.0136 75.7 3.87e+03 World hIoni - 90 -7.12 54.7 1.33e+03 47.2 0.0163 70.2 3.94e+03 World hIoni - 91 -6.49 54.5 1.38e+03 47.2 0.00975 49.7 3.99e+03 World hIoni - 92 -6.33 54.5 1.39e+03 47.2 0.00149 11.3 4e+03 World hIoni - 93 -6 54.4 1.42e+03 47.2 0.00375 24.4 4.03e+03 World hIoni - 94 -4.73 54 1.5e+03 47.2 0.0188 89.6 4.12e+03 World hIoni - 95 -4.3 53.9 1.53e+03 47.2 0.00602 30.1 4.15e+03 World hIoni - 96 -3.96 53.8 1.56e+03 47.2 0.00405 24.2 4.17e+03 World hIoni - 97 -3.55 53.6 1.59e+03 47.1 0.00561 28.2 4.2e+03 World hIoni - 98 -2.4 53.2 1.67e+03 47.1 0.0143 85.6 4.29e+03 World hIoni - 99 -1.11 52.6 1.77e+03 47.1 0.0217 93.8 4.38e+03 World hIoni - 100 0.834 51.9 1.91e+03 47.1 0.0338 145 4.52e+03 World hIoni - 101 1.37 51.6 1.95e+03 47.1 0.00479 41.7 4.57e+03 cloudPV CoupledTransportation - 102 1.38 51.6 1.95e+03 45.9 1.15 0.962 4.57e+03 World CoupledTransportation - 103 1.52 51.5 1.99e+03 45.9 0.00664 33.7 4.6e+03 World hIoni - 104 1.9 51.3 2.07e+03 45.9 0.0173 85.4 4.69e+03 World hIoni - 105 2.12 51.2 2.12e+03 45.9 0.00888 46.3 4.73e+03 World hIoni - 106 2.13 51.2 2.12e+03 45.9 0.000376 3.3 4.74e+03 World hIoni - 107 2.25 51.2 2.15e+03 45.8 0.00367 23.9 4.76e+03 World hIoni - 108 2.44 51.2 2.18e+03 45.8 0.00814 36.3 4.8e+03 World hIoni - 109 2.58 51.2 2.22e+03 45.8 0.00564 32.5 4.83e+03 World hIoni - 110 2.84 51.1 2.27e+03 45.8 0.0105 56.9 4.89e+03 World hIoni - 111 3.37 51.1 2.39e+03 45.8 0.0224 121 5.01e+03 World hIoni - 112 3.55 51 2.43e+03 45.8 0.00958 39.6 5.05e+03 World hIoni - 113 3.96 50.9 2.53e+03 45.8 0.0207 95 5.14e+03 World hIoni - 114 4.07 50.9 2.55e+03 45.8 0.00435 18.9 5.16e+03 World hIoni - 115 4.37 50.9 2.6e+03 45.7 0.00807 52.2 5.21e+03 detectorPV CoupledTransportation - 116 4.39 50.9 2.6e+03 40 5.77 2.02 5.21e+03 detectorPV hIoni - 117 4.38 50.9 2.6e+03 35 4.97 1.62 5.22e+03 detectorPV hIoni - 118 4.38 50.9 2.6e+03 30.1 4.87 1.32 5.22e+03 detectorPV hIoni - 119 4.35 50.9 2.61e+03 25.8 4.3 1.04 5.22e+03 detectorPV hIoni - 120 4.3 50.9 2.61e+03 22.1 3.7 0.833 5.22e+03 detectorPV hIoni - 121 4.26 50.9 2.61e+03 0 2.75 0.549 5.22e+03 detectorPV protonInelastic - -********************************************************************************************************* -* G4Track Information: Particle = Al26, Track ID = 90, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.26 50.9 2.61e+03 0.841 0 0 0 detectorPV initStep - 1 4.26 50.9 2.61e+03 0 0.841 0.000725 0.000725 detectorPV ionIoni - 2 4.26 50.9 2.61e+03 0 0 0 0.000725 detectorPV NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 89, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.26 50.9 2.61e+03 0.0721 0 0 0 detectorPV initStep - 1 7.64 57 2.62e+03 0.0663 0 10.6 10.6 detectorPV compt - 2 4.23 75 2.61e+03 0.0663 0 18.5 29.1 detectorPV detectorMesh - 3 1.88 87.4 2.61e+03 0 0.00156 12.8 41.9 detectorPV phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 89 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.88 87.4 2.61e+03 0.0648 0 0 0 detectorPV initStep - 1 1.88 87.4 2.61e+03 0.0618 0.00298 0.0015 0.0015 detectorPV msc - 2 1.88 87.4 2.61e+03 0 0.0618 0.0307 0.0322 detectorPV eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 89 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.64 57 2.62e+03 0.00574 0 0 0 detectorPV initStep - 1 7.64 57 2.62e+03 0 0.00574 0.000522 0.000522 detectorPV eIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 88, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.26 50.9 2.61e+03 0.218 0 0 0 detectorPV initStep - 1 0 50.1 2.61e+03 0.218 0 4.36 4.36 detectorPV detectorMesh - 2 -0.863 50 2.61e+03 0.218 0 0.883 5.25 detectorPV detectorMesh - 3 -13.7 47.8 2.61e+03 0.207 0.0103 13.2 18.4 detectorPV hadElastic - 4 -15.5 50 2.61e+03 0.207 0 3.19 21.6 detectorPV detectorMesh - 5 -25 62.2 2.6e+03 0.207 0 17.5 39.1 detectorPV detectorMesh - 6 -25.2 62.4 2.6e+03 0.207 0 0.356 39.4 World CoupledTransportation - 7 -192 275 2.46e+03 0.207 0 306 345 OutOfWorld CoupledTransportation - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 87, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.26 50.9 2.61e+03 5.2 0 0 0 detectorPV initStep - 1 4.1 50.9 2.61e+03 1.94 3.25 0.162 0.162 detectorPV hIoni - 2 4.06 50.8 2.61e+03 0 1.94 0.0406 0.203 detectorPV hIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.07 50.9 2.55e+03 0.00131 0 0 0 World initStep - 1 4.11 50.8 2.55e+03 0 0.00131 0.418 0.418 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.55 51 2.43e+03 0.00155 0 0 0 World initStep - 1 3.7 50.9 2.43e+03 0 0.00155 0.538 0.538 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.37 51.1 2.39e+03 0.00207 0 0 0 World initStep - 1 3.62 51.3 2.39e+03 0 0.00207 0.846 0.846 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.84 51.1 2.27e+03 0.00223 0 0 0 World initStep - 1 2.92 51.5 2.27e+03 0 0.00223 0.955 0.955 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.44 51.2 2.18e+03 0.00158 0 0 0 World initStep - 1 2.25 51.1 2.18e+03 0 0.00158 0.555 0.555 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.25 51.2 2.15e+03 0.00817 0 0 0 World initStep - 1 2.06 50.2 2.15e+03 0.00651 0.00166 1.3 1.3 World msc - 2 1.93 49.7 2.15e+03 0.00586 0.00065 0.999 2.3 World msc - 3 2.05 49.4 2.15e+03 0.00437 0.000257 0.744 3.05 World eIoni - 4 2.11 49.4 2.15e+03 0.00425 0.000123 0.168 3.22 cloudPV CoupledTransportation - 5 2.11 49.4 2.15e+03 0.00425 0 2.61e-05 3.22 cloudPV msc - 6 2.11 49.4 2.15e+03 0.00418 6.36e-05 2.35e-05 3.22 cloudPV msc - 7 2.11 49.4 2.15e+03 0.00411 7.55e-05 2.31e-05 3.22 cloudPV msc - 8 2.11 49.4 2.15e+03 0.00408 2.45e-05 2.98e-05 3.22 cloudPV msc - 9 2.11 49.4 2.15e+03 0.00408 3.95e-07 3.83e-05 3.22 cloudPV msc - 10 2.11 49.4 2.15e+03 0.0027 0.00138 5.25e-05 3.22 cloudPV msc - 11 2.11 49.4 2.15e+03 0.00245 0.000254 9.37e-05 3.22 cloudPV msc - 12 2.11 49.4 2.15e+03 0.0017 0.000747 0.000103 3.22 cloudPV msc - 13 2.11 49.4 2.15e+03 0 0.0017 0.00013 3.22 cloudPV eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 81 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.05 49.4 2.15e+03 0.00123 0 0 0 World initStep - 1 2.06 49.4 2.15e+03 0.00116 6.67e-05 0.0626 0.0626 World msc - 2 2.1 49.4 2.15e+03 0.00103 0.000132 0.0768 0.139 World msc - 3 2.12 49.4 2.15e+03 0 0.00103 0.0812 0.221 World msc - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.12 51.2 2.12e+03 0.0042 0 0 0 World initStep - 1 1.13 50.8 2.12e+03 0.00254 0.00166 1.87 1.87 World eIoni - 2 1.33 50.5 2.12e+03 0 0.00254 1.16 3.03 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.9 51.3 2.07e+03 0.00419 0 0 0 World initStep - 1 2.08 50.9 2.07e+03 0.00202 0.000353 0.467 0.467 World eIoni - 2 2.27 50.8 2.07e+03 0 0.00202 0.816 1.28 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 79 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.08 50.9 2.07e+03 0.00181 0 0 0 World initStep - 1 2.07 50.7 2.07e+03 0 0.00181 0.686 0.686 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.52 51.5 1.99e+03 0.00171 0 0 0 World initStep - 1 1.67 51.7 1.99e+03 0 0.00171 0.627 0.627 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.11 52.6 1.77e+03 0.00161 0 0 0 World initStep - 1 -1.17 52.9 1.77e+03 0 0.00161 0.572 0.572 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.4 53.2 1.67e+03 0.00571 0 0 0 World initStep - 1 -3.92 52.7 1.67e+03 0.00469 0.00102 2.39 2.39 World eIoni - 2 -4.31 51.6 1.67e+03 0.00292 0.00177 2.04 4.44 World eIoni - 3 -4.3 51 1.67e+03 0.00123 0.00169 1.36 5.8 World eIoni - 4 -4.36 51.1 1.67e+03 0 0.00123 0.383 6.18 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.55 53.6 1.59e+03 0.0398 0 0 0 World initStep - 1 4.43 59.4 1.6e+03 0.0344 0.00299 14 14 World eIoni - 2 10.7 68.7 1.6e+03 0.0299 0.00264 11.7 25.8 World eIoni - 3 11.7 73.2 1.6e+03 0.0278 0.000405 4.72 30.5 World eIoni - 4 10.4 90.7 1.6e+03 0.0253 0.00245 18.7 49.2 World eIoni - 5 -0.00862 90.4 1.61e+03 0.022 0.00331 16.1 65.3 World eIoni - 6 -7.49 81.2 1.61e+03 0.0203 0.00168 12.8 78 World eIoni - 7 -7.74 72.4 1.61e+03 0.014 0.00115 9.3 87.3 World eIoni - 8 -9.35 68.1 1.6e+03 0.0116 0.0024 6.47 93.8 World eIoni - 9 -12.7 65.4 1.6e+03 0.00939 0.00224 5.03 98.8 World eIoni - 10 -14.3 63.8 1.6e+03 0.00829 0.0011 3.89 103 World eIoni - 11 -14.3 63.1 1.6e+03 0.0074 0.000891 3.39 106 World eIoni - 12 -14.4 62.8 1.6e+03 0.00594 0.00146 3.02 109 World eIoni - 13 -14.5 61.9 1.6e+03 0.00347 0.00247 2.47 112 World eIoni - 14 -14.1 61.8 1.6e+03 0.00199 0.00148 1.05 113 World eIoni - 15 -14.4 61.9 1.6e+03 0 0.00199 0.793 113 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -7.74 72.4 1.61e+03 0.00514 0 0 0 World initStep - 1 -7.83 72.3 1.61e+03 0.00497 0.000176 0.261 0.261 World msc - 2 -7.87 72.2 1.61e+03 0.00481 0.000151 0.238 0.499 World msc - 3 -7.94 72.1 1.61e+03 0.00472 9.65e-05 0.239 0.738 World msc - 4 -7.99 72 1.61e+03 0.00457 0.000152 0.243 0.98 World msc - 5 -8.01 72 1.61e+03 0.00454 2.78e-05 0.231 1.21 World msc - 6 -8.04 71.9 1.61e+03 0.00387 0.000667 0.229 1.44 World msc - 7 -8.1 71.8 1.61e+03 0.00386 1.15e-05 0.284 1.73 World msc - 8 -8.1 71.6 1.61e+03 0.00364 0.000219 0.357 2.08 World msc - 9 -8.18 71.5 1.61e+03 0.00335 0.000287 0.45 2.53 World msc - 10 -8.67 71.1 1.61e+03 0.00261 0.000741 0.768 3.3 World msc - 11 -9.1 70.9 1.61e+03 0 0.00261 1.2 4.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 11.7 73.2 1.6e+03 0.00171 0 0 0 World initStep - 1 11.7 73.2 1.6e+03 0 0.00171 0.627 0.627 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 10.7 68.7 1.6e+03 0.00187 0 0 0 World initStep - 1 10.9 68.6 1.6e+03 0 0.00187 0.721 0.721 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.43 59.4 1.6e+03 0.00239 0 0 0 World initStep - 1 4.42 59.2 1.6e+03 0 0.00239 1.07 1.07 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.96 53.8 1.56e+03 0.00228 0 0 0 World initStep - 1 -3.72 54.1 1.56e+03 0 0.00228 0.989 0.989 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.3 53.9 1.53e+03 0.00567 0 0 0 World initStep - 1 -3.74 52.4 1.54e+03 0.00404 0.00163 2.38 2.38 World eIoni - 2 -3.68 51.4 1.54e+03 0.00191 0.00213 1.81 4.19 World eIoni - 3 -3.47 51.5 1.54e+03 0 0.00191 0.743 4.94 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.33 54.5 1.39e+03 0.00117 0 0 0 World initStep - 1 -6.38 54.6 1.39e+03 0 0.00117 0.355 0.355 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.49 54.5 1.38e+03 0.00318 0 0 0 World initStep - 1 -6.47 53.8 1.38e+03 0 0.00318 1.48 1.48 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.34 55.5 1.17e+03 0.00111 0 0 0 World initStep - 1 -9.23 55.5 1.17e+03 0 0.00111 0.33 0.33 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -10.9 56.1 1.05e+03 0.00197 0 0 0 World initStep - 1 -10.9 56.4 1.05e+03 0 0.00197 0.78 0.78 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.8 56.4 984 0.00188 0 0 0 World initStep - 1 -11.6 56.2 984 0 0.00188 0.726 0.726 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.9 56.4 980 0.00176 0 0 0 World initStep - 1 -11.8 56.7 980 0 0.00176 0.654 0.654 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.6 56.7 921 0.00148 0 0 0 World initStep - 1 -12.7 56.5 921 0 0.00148 0.5 0.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.8 56.7 910 0.0081 0 0 0 World initStep - 1 -13.7 58.9 911 0.00617 0.00194 3.31 3.31 World eIoni - 2 -15.4 58.5 911 0.00499 0.00117 2.56 5.87 World eIoni - 3 -16.1 59.3 910 0.00344 0.00156 2.14 8.01 World eIoni - 4 -15.5 59.5 910 0.00122 0.00222 1.59 9.6 World eIoni - 5 -15.5 59.6 909 0 0.00122 0.375 9.98 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -13 56.8 891 0.00182 0 0 0 World initStep - 1 -13.3 56.9 891 0 0.00182 0.692 0.692 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -14.8 57.5 730 0.00109 0 0 0 World initStep - 1 -14.7 57.5 730 0 0.00109 0.319 0.319 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -14.9 57.5 726 0.00103 0 0 0 World initStep - 1 -14.8 57.6 726 0 0.00103 0.294 0.294 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16 58 599 0.011 0 0 0 World initStep - 1 -16.5 58 600 0.00818 6.28e-05 0.56 0.56 World eIoni - 2 -17.6 57.9 601 0.00615 0.000533 1.97 2.53 World eIoni - 3 -18.4 58.3 602 0.00516 0.00099 2.55 5.08 World eIoni - 4 -19.3 58.3 603 0.00326 0.000379 1.24 6.31 World eIoni - 5 -19.8 58.8 603 0 0.00326 1.51 7.82 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 61 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.3 58.3 603 0.00152 0 0 0 World initStep - 1 -19.4 58.2 603 0 0.00152 0.525 0.525 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 61 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.6 57.9 601 0.0015 0 0 0 World initStep - 1 -17.6 57.7 601 0 0.0015 0.513 0.513 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 61 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.5 58 600 0.00274 0 0 0 World initStep - 1 -16.9 57.9 599 0 0.00274 1.27 1.27 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.1 58 593 0.00102 0 0 0 World initStep - 1 -16.1 58.1 593 0 0.00102 0.292 0.292 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.1 58 589 0.00176 0 0 0 World initStep - 1 -16.1 58.3 589 0 0.00176 0.652 0.652 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.5 58.3 539 0.00114 0 0 0 World initStep - 1 -16.4 58.4 539 0 0.00114 0.339 0.339 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.3 59 341 0.00216 0 0 0 World initStep - 1 -18.5 58.7 342 0 0.00216 0.902 0.902 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.4 59 333 0.00106 0 0 0 World initStep - 1 -18.4 59.1 333 0 0.00106 0.305 0.305 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.4 59 333 0.0207 0 0 0 World initStep - 1 -15.2 48.8 334 0.019 0.00171 11.6 11.6 World eIoni - 2 -18.4 41.9 339 0.0173 0.00164 10.1 21.7 World eIoni - 3 -19 39.6 341 0.0141 0.00214 2.88 24.6 World eIoni - 4 -17 34.5 343 0.0107 0.00345 6.54 31.1 World eIoni - 5 -16.9 31.1 345 0.00778 0.00291 4.53 35.6 World eIoni - 6 -18.6 29 345 0.00484 0.00121 3.03 38.7 World eIoni - 7 -18.7 27.6 345 0.00274 0.0021 2.09 40.7 World eIoni - 8 -18.6 27.6 345 0 0.00274 1.27 42 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.6 29 345 0.00173 0 0 0 World initStep - 1 -18.6 28.9 344 0 0.00173 0.639 0.639 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19 39.6 341 0.00105 0 0 0 World initStep - 1 -19.2 39.6 341 0 0.00105 0.304 0.304 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.5 59.1 321 0.00177 0 0 0 World initStep - 1 -18.2 59 321 0 0.00177 0.662 0.662 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.6 59.1 306 0.00235 0 0 0 World initStep - 1 -19 58.9 306 0 0.00235 1.03 1.03 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.5 59.6 207 0.001 0 0 0 World initStep - 1 -19.6 59.7 207 0 0.001 0.283 0.283 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20 59.9 110 0.00159 0 0 0 World initStep - 1 -19.9 59.7 110 0 0.00159 0.558 0.558 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20 59.9 102 0.00151 0 0 0 World initStep - 1 -19.8 59.7 102 0 0.00151 0.518 0.518 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.9 59.9 43.8 0.00134 0 0 0 World initStep - 1 -20.1 59.9 43.8 0 0.00134 0.431 0.431 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.9 59.9 27.6 0.00101 0 0 0 World initStep - 1 -19.8 60 27.6 0 0.00101 0.287 0.287 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.9 59.9 17 0.001 0 0 0 World initStep - 1 -20 59.9 17 0 0.001 0.283 0.283 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.9 60 -33.1 0.00256 0 0 0 World initStep - 1 -19.5 60.3 -33 0 0.00256 1.17 1.17 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.9 60 -66.8 0.00303 0 0 0 World initStep - 1 -19.9 60.7 -66.7 0 0.00303 1.41 1.41 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.9 60 -67.4 0.00213 0 0 0 World initStep - 1 -19.7 60.3 -67.3 0 0.00213 0.882 0.882 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20 60.1 -176 0.00112 0 0 0 World initStep - 1 -19.9 60.2 -176 0 0.00112 0.331 0.331 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20 60.1 -198 0.00244 0 0 0 World initStep - 1 -20.2 59.8 -198 0 0.00244 1.1 1.1 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20 60.2 -230 0.00207 0 0 0 World initStep - 1 -20.1 60.5 -230 0 0.00207 0.842 0.842 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20 60.2 -250 0.0015 0 0 0 World initStep - 1 -20 60 -250 0 0.0015 0.512 0.512 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20 60.2 -285 0.00243 0 0 0 World initStep - 1 -20.4 60.1 -285 0 0.00243 1.09 1.09 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20 60.2 -354 0.00268 0 0 0 World initStep - 1 -19.5 60.3 -354 0 0.00268 1.23 1.23 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20 60.2 -356 0.00129 0 0 0 World initStep - 1 -19.9 60.3 -356 0 0.00129 0.408 0.408 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.1 60.2 -495 0.00132 0 0 0 World initStep - 1 -20 60.2 -495 0 0.00132 0.422 0.422 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.1 60.2 -520 0.00233 0 0 0 World initStep - 1 -19.9 60.5 -519 0 0.00233 1.02 1.02 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.1 60.2 -542 0.00107 0 0 0 World initStep - 1 -20.2 60.2 -542 0 0.00107 0.31 0.31 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.1 60.3 -612 0.00286 0 0 0 World initStep - 1 -19.5 60.2 -612 0 0.00286 1.33 1.33 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20 60.4 -728 0.00163 0 0 0 World initStep - 1 -20 60.6 -727 0 0.00163 0.584 0.584 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.8 60.4 -798 0.00111 0 0 0 World initStep - 1 -19.8 60.3 -798 0 0.00111 0.328 0.328 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.6 60.5 -925 0.0141 0 0 0 World initStep - 1 -21.5 56.8 -922 0.013 0.00103 5.21 5.21 World msc - 2 -22.8 51.9 -923 0.00975 0.00328 5.58 10.8 World msc - 3 -22.7 49.3 -920 0.00742 0.00233 4.06 14.8 World eIoni - 4 -24 50.3 -919 0.00509 0.00233 3.03 17.9 World eIoni - 5 -24.4 51.2 -918 0.00317 0.000737 1.98 19.9 World eIoni - 6 -24.5 51.5 -917 0.00131 0.00186 1.48 21.3 World eIoni - 7 -24.6 51.6 -917 0 0.00131 0.419 21.8 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 30 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -24.4 51.2 -918 0.00118 0 0 0 World initStep - 1 -24.4 51.1 -918 0 0.00118 0.357 0.357 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.6 60.5 -932 0.00582 0 0 0 World initStep - 1 -19.8 62.2 -931 0.00439 0.00143 2.43 2.43 World eIoni - 2 -20.5 61.4 -932 0.00277 0.00162 1.94 4.37 World eIoni - 3 -20.7 61.4 -932 0 0.00277 1.28 5.65 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.4 60.6 -1.02e+03 0.00276 0 0 0 World initStep - 1 -19.6 61.2 -1.02e+03 0.00133 0.00143 1.28 1.28 World eIoni - 2 -19.6 61.3 -1.02e+03 0 0.00133 0.43 1.71 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.4 60.7 -1.07e+03 0.00101 0 0 0 World initStep - 1 -19.3 60.6 -1.07e+03 0 0.00101 0.287 0.287 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.3 60.7 -1.08e+03 0.0011 0 0 0 World initStep - 1 -19.4 60.7 -1.08e+03 0 0.0011 0.322 0.322 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.1 60.7 -1.18e+03 0.00635 0 0 0 World initStep - 1 -18.1 59.5 -1.18e+03 0.0048 0.00154 1.74 1.74 World msc - 2 -17.4 58.4 -1.18e+03 0.0014 0.0034 2.08 3.82 World eIoni - 3 -17.5 58.3 -1.18e+03 0 0.0014 0.462 4.28 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19 60.8 -1.21e+03 0.00378 0 0 0 World initStep - 1 -18.6 61.6 -1.21e+03 0.00179 0.00199 1.67 1.67 World eIoni - 2 -18.5 61.4 -1.21e+03 0 0.00179 0.674 2.34 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.7 60.9 -1.31e+03 0.0342 0 0 0 World initStep - 1 2.38 69.4 -1.3e+03 0.03 0.00415 26.7 26.7 World eIoni - 2 18.6 79.4 -1.3e+03 0.0269 0.00307 21.4 48 World eIoni - 3 35.2 79.9 -1.3e+03 0.0241 0.00281 17.8 65.9 World eIoni - 4 48.8 76.8 -1.3e+03 0.0207 0.00339 14.9 80.7 World eIoni - 5 48.8 76.9 -1.3e+03 0.0207 5.98e-05 0.195 80.9 World eIoni - 6 47.1 80.9 -1.31e+03 0.0181 0.00264 11.6 92.5 World eIoni - 7 46.6 86.6 -1.31e+03 0.0161 0.00198 9.36 102 World eIoni - 8 47.9 89.7 -1.32e+03 0.0133 0.00136 4.99 107 World eIoni - 9 47.8 94.3 -1.32e+03 0.0123 0.00101 6.02 113 World eIoni - 10 47 95.8 -1.32e+03 0.0104 0.00189 5.42 118 World eIoni - 11 47.3 97.1 -1.33e+03 0.00784 0.00258 4.39 123 World eIoni - 12 49.4 97.2 -1.33e+03 0.00327 0.00457 3.2 126 World eIoni - 13 49.8 97.1 -1.33e+03 0 0.00327 1.52 127 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 23 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 47.9 89.7 -1.32e+03 0.00138 0 0 0 World initStep - 1 47.9 89.7 -1.32e+03 0 0.00138 0.454 0.454 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.6 60.9 -1.35e+03 0.025 0 0 0 World initStep - 1 -23.9 51.9 -1.34e+03 0.0222 0.00278 15.7 15.7 World eIoni - 2 -22.9 42.5 -1.33e+03 0.0179 0.00435 13 28.7 World eIoni - 3 -21.9 35 -1.33e+03 0.0146 0.00329 9.23 38 World eIoni - 4 -25.2 30.4 -1.32e+03 0.0124 0.00216 6.84 44.8 World eIoni - 5 -26.3 26.2 -1.32e+03 0.00946 0.00296 5.48 50.3 World eIoni - 6 -26 23.6 -1.32e+03 0.00739 0.00207 3.92 54.2 World eIoni - 7 -26.8 21.7 -1.32e+03 0.00512 0.00227 3.02 57.2 World eIoni - 8 -27.6 21.7 -1.32e+03 0.00339 0.00172 2.19 59.4 World eIoni - 9 -28.4 21.4 -1.32e+03 0 0.00339 1.57 61 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.6 61 -1.38e+03 0.00128 0 0 0 World initStep - 1 -18.5 60.8 -1.38e+03 0 0.00128 0.403 0.403 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18 62.1 -1.79e+03 0.00977 0 0 0 World initStep - 1 -19.6 64.6 -1.79e+03 0.00783 0.00194 4.07 4.07 World eIoni - 2 -20.1 64.8 -1.79e+03 0.00532 0.000969 0.82 4.89 World eIoni - 3 -20.2 64.7 -1.79e+03 0.00396 8.42e-05 0.17 5.06 World eIoni - 4 -20.8 64.8 -1.78e+03 0.0023 0.00167 1.79 6.84 World eIoni - 5 -20.4 64.9 -1.78e+03 0 0.0023 1 7.84 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 20 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.2 64.7 -1.79e+03 0.00127 0 0 0 World initStep - 1 -20.2 64.6 -1.79e+03 0 0.00127 0.399 0.399 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 20 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.1 64.8 -1.79e+03 0.00154 0 0 0 World initStep - 1 -20.1 65 -1.79e+03 0 0.00154 0.536 0.536 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.9 62.2 -1.82e+03 0.00138 0 0 0 World initStep - 1 -17.8 62 -1.82e+03 0 0.00138 0.454 0.454 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.8 62.7 -1.99e+03 0.00197 0 0 0 World initStep - 1 -18.1 62.7 -1.99e+03 0 0.00197 0.783 0.783 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.8 62.8 -2.02e+03 0.0012 0 0 0 World initStep - 1 -17.9 62.7 -2.02e+03 0 0.0012 0.367 0.367 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.8 63 -2.05e+03 0.00362 0 0 0 World initStep - 1 -18.3 62.3 -2.05e+03 0.00114 0.00248 1.66 1.66 World eIoni - 2 -18.3 62.4 -2.05e+03 0 0.00114 0.34 2 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.7 63.1 -2.09e+03 0.00104 0 0 0 World initStep - 1 -17.7 63.2 -2.09e+03 0 0.00104 0.299 0.299 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.7 63.5 -2.19e+03 0.00356 0 0 0 World initStep - 1 -16.9 63.6 -2.19e+03 0 0.00356 1.64 1.64 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.8 63.5 -2.23e+03 0.00139 0 0 0 World initStep - 1 -17.7 63.4 -2.23e+03 0 0.00139 0.455 0.455 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.8 63.6 -2.24e+03 0.00328 0 0 0 World initStep - 1 -17.3 63 -2.24e+03 0.00138 0.0019 1.52 1.52 World eIoni - 2 -17.1 63.1 -2.24e+03 0 0.00138 0.452 1.97 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.8 63.7 -2.28e+03 0.00447 0 0 0 World initStep - 1 -18 64.8 -2.28e+03 0.0014 0.00307 1.96 1.96 World eIoni - 2 -18.1 64.7 -2.28e+03 0 0.0014 0.462 2.43 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.8 63.7 -2.29e+03 0.00162 0 0 0 World initStep - 1 -18 63.5 -2.29e+03 0 0.00162 0.576 0.576 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.9 63.8 -2.31e+03 0.00753 0 0 0 World initStep - 1 -19.2 65.5 -2.31e+03 0.00589 0.00165 3.08 3.08 World eIoni - 2 -19.8 66.5 -2.3e+03 0.00418 0.0017 2.46 5.53 World eIoni - 3 -19.6 66.9 -2.3e+03 0.00208 0.000474 0.931 6.46 World eIoni - 4 -19.5 67 -2.31e+03 0 0.00208 0.853 7.32 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 9 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19.6 66.9 -2.3e+03 0.00163 0 0 0 World initStep - 1 -19.4 66.9 -2.3e+03 0 0.00163 0.579 0.579 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.9 63.8 -2.35e+03 0.00187 0 0 0 World initStep - 1 -17.7 63.7 -2.35e+03 0 0.00187 0.718 0.718 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18 63.9 -2.41e+03 0.00103 0 0 0 World initStep - 1 -17.9 64 -2.41e+03 0 0.00103 0.296 0.296 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18 63.9 -2.45e+03 0.00112 0 0 0 World initStep - 1 -18 64 -2.45e+03 0 0.00112 0.333 0.333 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18 64 -2.5e+03 0.00104 0 0 0 World initStep - 1 -18.1 63.9 -2.5e+03 0 0.00104 0.299 0.299 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.1 64 -2.54e+03 0.00309 0 0 0 World initStep - 1 -18.4 64.6 -2.54e+03 0.00129 0.00181 1.44 1.44 World eIoni - 2 -18.5 64.5 -2.54e+03 0 0.00129 0.407 1.85 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.1 64 -2.54e+03 0.00887 0 0 0 World initStep - 1 -20.1 62.2 -2.54e+03 0.00679 0.00208 3.65 3.65 World eIoni - 2 -20.2 61.3 -2.54e+03 0.00517 0.00162 2.79 6.44 World eIoni - 3 -21 62.2 -2.54e+03 0.00417 0.000999 2.2 8.64 World eIoni - 4 -21.9 62.9 -2.54e+03 0.00326 0.000907 1.86 10.5 World eIoni - 5 -21.9 63.7 -2.54e+03 0 0.00326 1.51 12 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.1 64 -2.55e+03 0.00136 0 0 0 World initStep - 1 -17.9 64.1 -2.55e+03 0 0.00136 0.444 0.444 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.1 -27.4 -2.61e+03 50 0 0 0 World initStep - 1 -30.1 -27.4 -2.6e+03 50 0.00155 12.3 12.3 World hIoni - 2 -30.1 -27.4 -2.57e+03 50 0.00533 31.2 43.5 World hIoni - 3 -30.1 -27.4 -2.56e+03 50 0.000816 4.95 48.4 World hIoni - 4 -30.5 -27.4 -2.4e+03 49.9 0.0312 162 210 World hIoni - 5 -30.6 -27.4 -2.35e+03 49.9 0.00632 47.6 258 World hIoni - 6 -30.6 -27.3 -2.34e+03 49.9 0.00179 17.9 275 World hIoni - 7 -31 -27.1 -2.18e+03 49.9 0.028 158 433 World hIoni - 8 -31.1 -27 -2.14e+03 49.9 0.00824 34.9 468 World hIoni - 9 -31.1 -27 -2.12e+03 49.9 0.00462 21.5 489 World hIoni - 10 -31.1 -27 -2.12e+03 49.9 0.000388 3.98 493 World hIoni - 11 -31.4 -26.9 -2.03e+03 49.8 0.0134 86.6 580 World hIoni - 12 -31.6 -27 -1.98e+03 49.8 0.011 54.4 634 World hIoni - 13 -31.9 -27.2 -1.91e+03 49.8 0.00869 68.2 703 World hIoni - 14 -32.2 -27.4 -1.79e+03 49.8 0.0241 120 822 World hIoni - 15 -32.2 -27.4 -1.78e+03 49.8 0.00148 7.77 830 World hIoni - 16 -32.3 -27.5 -1.77e+03 49.8 0.00262 9.36 839 World hIoni - 17 -32.3 -27.5 -1.76e+03 49.8 0.0029 16.7 856 World hIoni - 18 -32.4 -27.6 -1.72e+03 49.8 0.00805 37.7 894 World hIoni - 19 -32.5 -27.7 -1.67e+03 49.8 0.0101 48.7 942 World hIoni - 20 -32.6 -27.7 -1.62e+03 49.7 0.00967 51.9 994 World hIoni - 21 -32.6 -27.7 -1.61e+03 49.7 0.000661 4.8 999 World hIoni - 22 -32.8 -27.8 -1.53e+03 49.7 0.0155 80.5 1.08e+03 World hIoni - 23 -32.9 -27.9 -1.48e+03 49.7 0.0128 58 1.14e+03 World hIoni - 24 -32.9 -28 -1.46e+03 49.7 0.00184 11.6 1.15e+03 World hIoni - 25 -33 -28 -1.45e+03 49.7 0.00526 18.2 1.17e+03 World hIoni - 26 -33 -28.1 -1.41e+03 49.7 0.00659 37.9 1.21e+03 World hIoni - 27 -33 -28.2 -1.37e+03 49.7 0.00777 40.1 1.25e+03 World hIoni - 28 -33.1 -28.3 -1.29e+03 49.7 0.0142 77.5 1.32e+03 World hIoni - 29 -33.1 -28.4 -1.26e+03 49.7 0.00433 32.1 1.35e+03 World hIoni - 30 -33.1 -28.6 -1.17e+03 49.6 0.0198 85.8 1.44e+03 World hIoni - 31 -33 -28.7 -1.08e+03 49.6 0.0146 93.1 1.53e+03 World hIoni - 32 -33 -28.7 -1.07e+03 49.6 0.00254 12.6 1.55e+03 World hIoni - 33 -33 -28.7 -1.03e+03 49.6 0.00658 34.2 1.58e+03 World hIoni - 34 -33 -28.7 -1.02e+03 49.6 0.0024 16.3 1.6e+03 World hIoni - 35 -33.1 -28.6 -943 49.6 0.0159 73.2 1.67e+03 World hIoni - 36 -33.1 -28.6 -925 49.6 0.00232 17.5 1.69e+03 World hIoni - 37 -33.1 -28.6 -910 49.6 0.00434 14.8 1.7e+03 World hIoni - 38 -33.1 -28.6 -788 49.6 0.0214 122 1.82e+03 World hIoni - 39 -33.1 -28.6 -777 49.6 0.00131 11.7 1.84e+03 World hIoni - 40 -33.1 -28.6 -776 49.6 0 0.115 1.84e+03 cloudPV CoupledTransportation - 41 -33.1 -28.6 -775 47.6 1.97 1.53 1.84e+03 World CoupledTransportation - 42 -33.2 -28.7 -755 47.6 0.00487 19.4 1.86e+03 World hIoni - 43 -33.2 -28.8 -729 47.6 0.00709 26.8 1.88e+03 World hIoni - 44 -33.3 -28.8 -728 47.6 9.06e-05 0.963 1.88e+03 World hIoni - 45 -33.3 -28.9 -709 47.6 0.0032 18.9 1.9e+03 World hIoni - 46 -33.4 -29.1 -662 47.6 0.00886 47.1 1.95e+03 World hIoni - 47 -33.4 -29.1 -662 47.6 0 0.103 1.95e+03 World hIoni - 48 -34.1 -30.2 -460 47.5 0.0425 202 2.15e+03 World hIoni - 49 -34.2 -30.3 -437 47.5 0.00386 23.3 2.18e+03 World hIoni - 50 -34.2 -30.4 -420 47.5 0.00469 16.9 2.19e+03 World hIoni - 51 -34.3 -30.5 -400 47.5 0.00339 19.8 2.21e+03 World hIoni - 52 -34.4 -30.6 -371 47.5 0.00413 28.5 2.24e+03 cloudPV CoupledTransportation - 53 -34.4 -30.6 -371 46.6 0.924 0.64 2.24e+03 World CoupledTransportation - 54 -34.3 -30.8 -324 46.6 0.00725 47.2 2.29e+03 World hIoni - 55 -34.2 -31 -279 46.5 0.00742 44.2 2.33e+03 World hIoni - 56 -34.2 -31.1 -253 46.5 0.00494 26.2 2.36e+03 World hIoni - 57 -34.1 -31.2 -227 46.5 0.00703 26.4 2.39e+03 World hIoni - 58 -34 -31.5 -156 46.5 0.0126 71.1 2.46e+03 World hIoni - 59 -34 -31.6 -144 46.5 0.00225 11.3 2.47e+03 World hIoni - 60 -34 -31.7 -125 46.5 0.00336 19.1 2.49e+03 World hIoni - 61 -33.9 -31.7 -119 46.5 0.000987 6.37 2.49e+03 World hIoni - 62 -33.8 -32.2 -25.6 46.5 0.0188 93.2 2.59e+03 World hIoni - 63 -33.6 -32.7 85.2 46.5 0.0212 111 2.7e+03 World hIoni - 64 -33.5 -33 130 46.4 0.0119 44.8 2.74e+03 World hIoni - 65 -33.5 -33 135 46.4 0.00179 5.19 2.75e+03 World hIoni - 66 -33.4 -33.2 165 46.4 0.00502 29.5 2.78e+03 World hIoni - 67 -33.2 -33.6 239 46.4 0.0123 74.5 2.85e+03 World hIoni - 68 -33.2 -33.8 262 46.4 0.00465 23.2 2.87e+03 World hIoni - 69 -33.2 -33.8 263 46.4 4.56e-05 0.536 2.88e+03 World hIoni - 70 -33.1 -34.7 409 46.3 0.0289 147 3.02e+03 World hIoni - 71 -33.1 -35 453 46.3 0.00768 43.1 3.07e+03 World hIoni - 72 -33.1 -35.2 471 46.3 0.00259 18.4 3.08e+03 World hIoni - 73 -33.1 -35.2 473 46.3 0.000331 2.54 3.09e+03 World hIoni - 74 -33.2 -35.9 548 46.3 0.0124 74.1 3.16e+03 World hIoni - 75 -33.2 -35.9 548 46.3 5.04e-05 0.757 3.16e+03 World hIoni - 76 -33.4 -36.6 639 46.3 0.0175 90.3 3.25e+03 World hIoni - 77 -33.5 -37 675 46.3 0.00875 36 3.29e+03 World hIoni - 78 -33.5 -37 686 46.3 0.00227 11.1 3.3e+03 World hIoni - 79 -33.5 -37 686 46.2 0 0.0585 3.3e+03 World hIoni - 80 -33.5 -37.1 692 46.2 0.00157 6.47 3.3e+03 World hIoni - 81 -33.5 -37.1 693 46.2 0 0.289 3.31e+03 World hIoni - 82 -33.6 -37.5 749 46.2 0.0132 56.9 3.36e+03 World hIoni - 83 -33.8 -38 851 46.2 0.0245 102 3.46e+03 World hIoni - 84 -33.9 -38.2 874 46.2 0.00492 22.9 3.49e+03 World hIoni - 85 -33.9 -38.2 881 46.2 0.000948 6.52 3.49e+03 World hIoni - 86 -33.9 -38.3 892 46.2 0.00114 10.9 3.5e+03 World hIoni - 87 -34 -38.4 906 46.2 0.00373 14.7 3.52e+03 World hIoni - 88 -34.2 -38.8 976 46.1 0.0141 70 3.59e+03 World hIoni - 89 -34.2 -39 1.01e+03 46.1 0.00637 32.8 3.62e+03 World hIoni - 90 -34.4 -39.3 1.06e+03 46.1 0.00872 48.7 3.67e+03 World hIoni - 91 -34.6 -39.8 1.15e+03 46.1 0.0185 93.5 3.76e+03 World hIoni - 92 -34.7 -40 1.18e+03 46.1 0.00913 32 3.8e+03 World hIoni - 93 -34.7 -40 1.19e+03 46.1 0.000464 3.62 3.8e+03 World hIoni - 94 -34.8 -40.5 1.26e+03 46 0.0142 74.3 3.87e+03 World hIoni - 95 -34.9 -40.7 1.29e+03 46 0.00517 32.3 3.91e+03 World hIoni - 96 -35 -41.1 1.35e+03 46 0.00812 52.7 3.96e+03 World hIoni - 97 -35.1 -41.4 1.38e+03 46 0.00466 31.1 3.99e+03 World hIoni - 98 -35.1 -41.6 1.41e+03 46 0.00638 30.2 4.02e+03 World hIoni - 99 -35.2 -41.7 1.43e+03 45.9 0.00292 20 4.04e+03 World hIoni - 100 -35.3 -41.9 1.44e+03 45.9 0.00356 17.1 4.06e+03 World hIoni - 101 -35.6 -42.4 1.52e+03 45.9 0.015 70.5 4.13e+03 World hIoni - 102 -35.6 -42.4 1.52e+03 45.9 0.000272 1.91 4.13e+03 World hIoni - 103 -36.1 -43.3 1.63e+03 45.9 0.018 114 4.24e+03 cloudPV CoupledTransportation - 104 -36.1 -43.3 1.63e+03 44 1.86 1.49 4.25e+03 World CoupledTransportation - 105 -36.8 -43.3 1.72e+03 44 0.0185 88.5 4.33e+03 World hIoni - 106 -37 -43.3 1.75e+03 44 0.00905 27.5 4.36e+03 World hIoni - 107 -37.6 -43.2 1.83e+03 44 0.0168 83.9 4.45e+03 World hIoni - 108 -37.8 -43.2 1.86e+03 44 0.00422 24.2 4.47e+03 World hIoni - 109 -37.9 -43.2 1.88e+03 44 0.00404 18 4.49e+03 World hIoni - 110 -38 -43.3 1.89e+03 44 0.00286 11.6 4.5e+03 World hIoni - 111 -38 -43.3 1.89e+03 44 0.000295 1.2 4.5e+03 World hIoni - 112 -38.3 -43.3 1.93e+03 43.9 0.00826 41.7 4.54e+03 World hIoni - 113 -38.7 -43.4 1.98e+03 43.9 0.0122 54.6 4.6e+03 World hIoni - 114 -38.9 -43.4 2.01e+03 43.9 0.00628 28.3 4.62e+03 World hIoni - 115 -38.9 -43.4 2.01e+03 43.9 0.000486 2.36 4.63e+03 World hIoni - 116 -39.4 -43.4 2.09e+03 43.9 0.0106 73.3 4.7e+03 World hIoni - 117 -39.6 -43.4 2.11e+03 43.9 0.00265 17.8 4.72e+03 World hIoni - 118 -39.8 -43.4 2.13e+03 43.9 0.00566 28.5 4.75e+03 World hIoni - 119 -39.8 -43.4 2.14e+03 43.9 0.00049 2.94 4.75e+03 World hIoni - 120 -40 -43.3 2.17e+03 43.9 0.00792 27.7 4.78e+03 World hIoni - 121 -40.2 -43.2 2.2e+03 43.9 0.00751 38.3 4.82e+03 World hIoni - 122 -40.9 -43.1 2.29e+03 43.9 0.0135 90.8 4.91e+03 World hIoni - 123 -41 -43.1 2.3e+03 43.9 0.00277 10.8 4.92e+03 World hIoni - 124 -41 -43.1 2.31e+03 43.9 0.000529 3.91 4.92e+03 World hIoni - 125 -41.4 -43.1 2.38e+03 43.8 0.013 68.9 4.99e+03 World hIoni - 126 -41.4 -43.1 2.38e+03 43.8 0.000897 7 5e+03 World hIoni - 127 -41.4 -43.1 2.39e+03 43.8 0.000171 2.09 5e+03 World hIoni - 128 -41.5 -43.1 2.39e+03 43.8 0.000257 3.24 5e+03 World hIoni - 129 -42.2 -43 2.52e+03 43.8 0.0246 129 5.13e+03 World hIoni - 130 -42.2 -43 2.52e+03 43.8 0.00037 1.61 5.13e+03 World hIoni - 131 -42.3 -43 2.53e+03 43.8 0.00187 12 5.15e+03 World hIoni - 132 -42.5 -43 2.58e+03 43.8 0.0119 49.2 5.19e+03 World hIoni - 133 -42.7 -43 2.6e+03 43.8 0.00318 18.3 5.21e+03 detectorPV CoupledTransportation - 134 -42.7 -43 2.6e+03 38.3 5.44 1.88 5.21e+03 detectorPV hIoni - 135 -42.7 -43 2.6e+03 33.5 4.85 1.52 5.22e+03 detectorPV hIoni - 136 -42.7 -42.9 2.6e+03 28.8 4.68 1.23 5.22e+03 detectorPV hIoni - 137 -42.8 -42.9 2.61e+03 24.9 3.95 0.977 5.22e+03 detectorPV hIoni - 138 -42.8 -42.9 2.61e+03 21.3 3.56 0.789 5.22e+03 detectorPV hIoni - 139 -42.9 -42.9 2.61e+03 18 3.29 0.637 5.22e+03 detectorPV hIoni - 140 -42.9 -42.9 2.61e+03 14.9 3.1 0.513 5.22e+03 detectorPV hIoni - 141 -43 -42.9 2.61e+03 12 2.9 0.409 5.22e+03 detectorPV hIoni - 142 -43 -42.8 2.61e+03 9.22 2.79 0.325 5.22e+03 detectorPV hIoni - 143 -43 -42.8 2.61e+03 6.29 2.94 0.255 5.22e+03 detectorPV hIoni - 144 -43.1 -42.8 2.61e+03 3.13 3.15 0.189 5.22e+03 detectorPV hIoni - 145 -43.1 -42.8 2.61e+03 0 3.13 0.088 5.22e+03 detectorPV hIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.5 -43 2.58e+03 0.00226 0 0 0 World initStep - 1 -42.3 -43.2 2.58e+03 0 0.00226 0.976 0.976 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.3 -43 2.53e+03 0.00101 0 0 0 World initStep - 1 -42.4 -43 2.53e+03 0 0.00101 0.286 0.286 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.2 -43 2.52e+03 0.00104 0 0 0 World initStep - 1 -42.1 -42.9 2.52e+03 0 0.00104 0.298 0.298 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41.5 -43.1 2.39e+03 0.00105 0 0 0 World initStep - 1 -41.3 -43.1 2.39e+03 0 0.00105 0.302 0.302 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41.4 -43.1 2.39e+03 0.00137 0 0 0 World initStep - 1 -41.4 -42.9 2.39e+03 0 0.00137 0.445 0.445 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41.4 -43.1 2.38e+03 0.00318 0 0 0 World initStep - 1 -42 -42.7 2.38e+03 0 0.00318 1.48 1.48 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41.4 -43.1 2.38e+03 0.00133 0 0 0 World initStep - 1 -41.4 -43.2 2.38e+03 0 0.00133 0.429 0.429 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -41 -43.1 2.3e+03 0.00213 0 0 0 World initStep - 1 -40.9 -43.5 2.31e+03 0 0.00213 0.883 0.883 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -40.9 -43.1 2.29e+03 0.00101 0 0 0 World initStep - 1 -40.9 -43.2 2.29e+03 0 0.00101 0.284 0.284 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -40.2 -43.2 2.2e+03 0.00192 0 0 0 World initStep - 1 -39.9 -43.2 2.2e+03 0 0.00192 0.753 0.753 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -40 -43.3 2.17e+03 0.0012 0 0 0 World initStep - 1 -39.8 -43.3 2.17e+03 0 0.0012 0.365 0.365 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -39.8 -43.4 2.13e+03 0.00329 0 0 0 World initStep - 1 -40.5 -43.6 2.13e+03 0.00163 0.00166 1.53 1.53 World eIoni - 2 -40.5 -43.4 2.13e+03 0 0.00163 0.584 2.11 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -39.6 -43.4 2.11e+03 0.00123 0 0 0 World initStep - 1 -39.7 -43.3 2.11e+03 0 0.00123 0.381 0.381 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -39.4 -43.4 2.09e+03 0.00407 0 0 0 World initStep - 1 -38.4 -43.5 2.09e+03 0.00103 0.00305 1.83 1.83 World eIoni - 2 -38.5 -43.5 2.09e+03 0 0.00103 0.293 2.12 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38.9 -43.4 2.01e+03 0.00137 0 0 0 World initStep - 1 -38.9 -43.5 2.01e+03 0 0.00137 0.446 0.446 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38.7 -43.4 1.98e+03 0.00159 0 0 0 World initStep - 1 -38.8 -43.2 1.98e+03 0 0.00159 0.562 0.562 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38.3 -43.3 1.93e+03 0.00298 0 0 0 World initStep - 1 -38.8 -43.7 1.93e+03 0.00111 0.00188 1.39 1.39 World eIoni - 2 -38.8 -43.7 1.93e+03 0 0.00111 0.327 1.72 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38 -43.3 1.89e+03 0.00289 0 0 0 World initStep - 1 -38.5 -43.6 1.89e+03 0.00168 0.00121 1.15 1.15 World eIoni - 2 -38.4 -43.8 1.89e+03 0 0.00168 0.609 1.76 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38 -43.3 1.89e+03 0.00155 0 0 0 World initStep - 1 -37.8 -43.2 1.89e+03 0 0.00155 0.536 0.536 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -37.9 -43.2 1.88e+03 0.00243 0 0 0 World initStep - 1 -37.8 -42.8 1.88e+03 0.00111 0.00132 1.09 1.09 World eIoni - 2 -37.9 -42.9 1.88e+03 0 0.00111 0.326 1.41 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -37.6 -43.2 1.83e+03 0.0149 0 0 0 World initStep - 1 -38.2 -47.7 1.84e+03 0.0135 0.00139 6.75 6.75 World msc - 2 -40.4 -52.1 1.84e+03 0.0105 0.003 6.17 12.9 World eIoni - 3 -41.2 -56 1.84e+03 0.00874 0.00181 4.46 17.4 World eIoni - 4 -40.8 -57 1.84e+03 0.0072 0.000269 2.16 19.5 World eIoni - 5 -40.7 -56.4 1.84e+03 0.00522 0.00198 2.95 22.5 World eIoni - 6 -40.6 -56.1 1.85e+03 0.00226 0.00296 2.22 24.7 World eIoni - 7 -40.3 -55.9 1.85e+03 0 0.00226 0.975 25.7 World eIoni + 0 22.2 105 1.9e+03 0.0106 0 0 0 World initStep + 1 24.2 102 1.9e+03 0.0087 0.00193 4.5 4.5 World eIoni + 2 23.8 104 1.9e+03 0.00632 0.00239 3.57 8.07 World eIoni + 3 23.6 104 1.9e+03 0.00505 0.000108 0.524 8.6 World eIoni + 4 23 103 1.9e+03 0.00162 0.00232 1.86 10.5 World eIoni + 5 22.9 103 1.9e+03 0 0.00162 0.578 11 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 105, Parent ID = 84 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -40.8 -57 1.84e+03 0.00127 0 0 0 World initStep - 1 -40.7 -57.2 1.84e+03 0 0.00127 0.399 0.399 World eIoni + 0 23 103 1.9e+03 0.00111 0 0 0 World initStep + 1 23.1 103 1.9e+03 0 0.00111 0.329 0.329 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 84 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 23.6 104 1.9e+03 0.00115 0 0 0 World initStep + 1 23.5 104 1.9e+03 0 0.00115 0.347 0.347 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -37 -43.3 1.75e+03 0.00589 0 0 0 World initStep - 1 -35.9 -42 1.75e+03 0.00502 0.000873 2.46 2.46 World eIoni - 2 -35.4 -41.1 1.75e+03 0.0027 0.000734 1.34 3.8 World eIoni - 3 -35.2 -40.7 1.75e+03 0 0.0027 1.25 5.05 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 83 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.4 -41.1 1.75e+03 0.00159 0 0 0 World initStep - 1 -35.6 -41 1.75e+03 0 0.00159 0.558 0.558 World eIoni + 0 21.5 104 1.79e+03 0.00151 0 0 0 World initStep + 1 21.7 104 1.79e+03 0 0.00151 0.52 0.52 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.8 -43.3 1.72e+03 0.00617 0 0 0 World initStep - 1 -36 -41.7 1.72e+03 0.00455 0.00162 2.56 2.56 World eIoni - 2 -35.9 -40.5 1.72e+03 0.00334 0.00121 1.99 4.55 World eIoni - 3 -36.4 -40.1 1.72e+03 0.00149 0.00185 1.55 6.1 World eIoni - 4 -36.6 -40.3 1.72e+03 0 0.00149 0.508 6.6 World eIoni + 0 21.1 103 1.73e+03 0.0221 0 0 0 World initStep + 1 26.2 97.2 1.74e+03 0.0181 0.00303 8.79 8.79 World eIoni + 2 32.2 93.6 1.73e+03 0.0131 0.00491 9.37 18.2 World eIoni + 3 37 91.6 1.73e+03 0.0121 0.000997 5.91 24.1 World eIoni + 4 41.7 92.7 1.73e+03 0.00999 0.00215 5.32 29.4 World eIoni + 5 44.9 94.6 1.73e+03 0.0072 0.00279 4.18 33.6 World eIoni + 6 45.6 95.7 1.73e+03 0.00562 0.000468 1.48 35.1 World eIoni + 7 46.3 97.1 1.73e+03 0.00318 0.00243 2.36 37.4 World eIoni + 8 45.8 97.2 1.73e+03 0 0.00318 1.48 38.9 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 82 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 45.6 95.7 1.73e+03 0.00111 0 0 0 World initStep + 1 45.7 95.6 1.73e+03 0 0.00111 0.33 0.33 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 82 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 26.2 97.2 1.74e+03 0.00107 0 0 0 World initStep + 1 26.3 97.3 1.74e+03 0 0.00107 0.31 0.31 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.6 -42.4 1.52e+03 0.00299 0 0 0 World initStep - 1 -35.3 -41.8 1.52e+03 0 0.00299 1.39 1.39 World eIoni + 0 20.8 102 1.69e+03 0.00525 0 0 0 World initStep + 1 21 101 1.69e+03 0.0034 0.00185 2.23 2.23 World eIoni + 2 20.9 100 1.69e+03 0.00265 0.00075 1.57 3.8 World eIoni + 3 20.5 99.9 1.69e+03 0 0.00265 1.22 5.02 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.6 -42.4 1.52e+03 0.00139 0 0 0 World initStep - 1 -35.6 -42.5 1.52e+03 0 0.00139 0.459 0.459 World eIoni + 0 19.6 101 1.55e+03 0.00131 0 0 0 World initStep + 1 19.5 100 1.55e+03 0 0.00131 0.42 0.42 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.3 -41.9 1.44e+03 0.00219 0 0 0 World initStep - 1 -35.1 -42.2 1.44e+03 0 0.00219 0.922 0.922 World eIoni + 0 19.5 100 1.55e+03 0.00243 0 0 0 World initStep + 1 19.1 100 1.55e+03 0 0.00243 1.09 1.09 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.2 -41.7 1.43e+03 0.00129 0 0 0 World initStep - 1 -35.2 -41.9 1.43e+03 0 0.00129 0.41 0.41 World eIoni + 0 19.1 99.9 1.5e+03 0.00101 0 0 0 World initStep + 1 19.1 100 1.5e+03 0 0.00101 0.287 0.287 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.1 -41.6 1.41e+03 0.00313 0 0 0 World initStep - 1 -34.5 -41.8 1.41e+03 0 0.00313 1.46 1.46 World eIoni + 0 18.7 99.4 1.45e+03 0.00124 0 0 0 World initStep + 1 18.6 99.5 1.45e+03 0 0.00124 0.387 0.387 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35.1 -41.4 1.38e+03 0.00438 0 0 0 World initStep - 1 -34 -41.7 1.38e+03 0.00361 0.000767 1.93 1.93 World eIoni - 2 -33.2 -41.3 1.38e+03 0.00172 0.00189 1.66 3.59 World eIoni - 3 -33 -41.4 1.38e+03 0 0.00172 0.634 4.22 World eIoni + 0 18.2 98.7 1.38e+03 0.00191 0 0 0 World initStep + 1 18.4 99 1.38e+03 0 0.00191 0.742 0.742 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -35 -41.1 1.35e+03 0.0512 0 0 0 World initStep - 1 -30.9 -46.6 1.36e+03 0.0496 0.000473 11.3 11.3 World eIoni - 2 -27.5 -48.7 1.36e+03 0.0472 0.00139 8.81 20.1 World eIoni - 3 -9.8 -42.3 1.4e+03 0.0416 0.00558 46.8 66.9 World eIoni - 4 -4.19 -41.1 1.4e+03 0.0392 0.000404 7.73 74.6 World eIoni - 5 7.63 -40.1 1.42e+03 0.0351 0.00301 24.6 99.2 World eIoni - 6 12.2 -33.9 1.45e+03 0.0311 0.00397 27.9 127 World eIoni - 7 13.1 -21.5 1.47e+03 0.0267 0.00435 22.7 150 World eIoni - 8 25.4 -13.6 1.47e+03 0.0239 0.00285 17.6 167 World eIoni - 9 26.1 -13.5 1.47e+03 0.0225 0 1.01 168 World eIoni - 10 38.1 -10.6 1.48e+03 0.0183 0.00411 13.2 182 World eIoni - 11 46.4 -10.7 1.47e+03 0.0149 0.00341 9.6 191 World eIoni - 12 51.6 -8.03 1.47e+03 0.0118 0.00317 7.07 198 World eIoni - 13 56.2 -8.29 1.47e+03 0.0106 0.00114 5.11 203 World eIoni - 14 59 -8.93 1.47e+03 0.00865 0.00197 4.49 208 World eIoni - 15 59.9 -9.76 1.46e+03 0.00554 0.00168 2.23 210 World eIoni - 16 60.3 -10.2 1.46e+03 0.00369 0.00184 2.33 212 World eIoni - 17 59.9 -10 1.46e+03 0.00234 0.00135 0.583 213 World eIoni - 18 59.5 -9.84 1.46e+03 0 0.00234 1.03 214 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 59.9 -9.76 1.46e+03 0.00143 0 0 0 World initStep - 1 59.8 -9.91 1.46e+03 0 0.00143 0.478 0.478 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 26.1 -13.5 1.47e+03 0.00141 0 0 0 World initStep - 1 26.1 -13.4 1.47e+03 0 0.00141 0.469 0.469 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.63 -40.1 1.42e+03 0.00109 0 0 0 World initStep - 1 7.73 -40.1 1.42e+03 0 0.00109 0.321 0.321 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.19 -41.1 1.4e+03 0.00207 0 0 0 World initStep - 1 -4.12 -40.8 1.4e+03 0 0.00207 0.846 0.846 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -27.5 -48.7 1.36e+03 0.00104 0 0 0 World initStep - 1 -27.4 -48.7 1.36e+03 0 0.00104 0.3 0.3 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.9 -46.6 1.36e+03 0.00104 0 0 0 World initStep - 1 -30.8 -46.7 1.36e+03 0 0.00104 0.299 0.299 World eIoni + 0 17.9 98.3 1.34e+03 0.00146 0 0 0 World initStep + 1 17.8 98.1 1.34e+03 0 0.00146 0.492 0.492 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.9 -40.7 1.29e+03 0.00713 0 0 0 World initStep - 1 -36.1 -39.1 1.29e+03 0.00452 0.0026 2.92 2.92 World eIoni - 2 -35.9 -39.6 1.3e+03 0.00114 0.00338 1.98 4.9 World eIoni - 3 -35.9 -39.5 1.3e+03 0 0.00114 0.341 5.24 World eIoni + 0 17.3 97.6 1.27e+03 0.00424 0 0 0 World initStep + 1 16.8 96.7 1.27e+03 0.00353 0.000718 1.89 1.89 World eIoni + 2 17.1 97.2 1.27e+03 0.00227 0.00125 1.62 3.51 World eIoni + 3 17.2 97.1 1.26e+03 0 0.00227 0.983 4.49 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.8 -40.5 1.26e+03 0.00214 0 0 0 World initStep - 1 -34.5 -40.7 1.26e+03 0 0.00214 0.89 0.89 World eIoni + 0 16 96 1.1e+03 0.00236 0 0 0 World initStep + 1 15.6 96 1.1e+03 0 0.00236 1.04 1.04 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.7 -40 1.19e+03 0.00271 0 0 0 World initStep - 1 -35.1 -39.7 1.19e+03 0 0.00271 1.25 1.25 World eIoni + 0 15.9 95.8 1.09e+03 0.00184 0 0 0 World initStep + 1 15.7 95.6 1.09e+03 0 0.00184 0.703 0.703 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.7 -40 1.18e+03 0.00549 0 0 0 World initStep - 1 -34.5 -38.5 1.18e+03 0.00385 0.00164 2.31 2.31 World eIoni - 2 -35.3 -38.9 1.18e+03 0.0026 0.00125 1.75 4.06 World eIoni - 3 -34.8 -39 1.18e+03 0 0.0026 1.19 5.25 World eIoni + 0 15 94.7 969 0.0033 0 0 0 World initStep + 1 14.3 94.9 969 0.00108 0.00222 1.53 1.53 World eIoni + 2 14.4 94.9 969 0 0.00108 0.314 1.84 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.6 -39.8 1.15e+03 0.00103 0 0 0 World initStep - 1 -34.6 -39.9 1.15e+03 0 0.00103 0.294 0.294 World eIoni + 0 14.9 94.5 949 0.00166 0 0 0 World initStep + 1 15.1 94.5 949 0 0.00166 0.597 0.597 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.4 -39.3 1.06e+03 0.00131 0 0 0 World initStep - 1 -34.4 -39.1 1.06e+03 0 0.00131 0.419 0.419 World eIoni + 0 14.6 94.1 904 0.00134 0 0 0 World initStep + 1 14.7 94 904 0 0.00134 0.43 0.43 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.2 -39 1.01e+03 0.0335 0 0 0 World initStep - 1 -43.6 -57.4 1.02e+03 0.029 0.00453 25.8 25.8 World eIoni - 2 -44.8 -60.2 1.02e+03 0.0271 0.000651 3.23 29.1 World eIoni - 3 -43.7 -65.8 1.02e+03 0.0251 0.000857 5.89 35 World eIoni - 4 -42.5 -80.4 1.02e+03 0.0223 0.00273 15.8 50.8 World eIoni - 5 -43.2 -90.9 1.03e+03 0.0199 0.00243 13.1 63.9 World eIoni - 6 -42.6 -101 1.03e+03 0.0174 0.00251 10.9 74.8 World eIoni - 7 -46 -106 1.02e+03 0.0129 0.00446 8.86 83.6 World eIoni - 8 -46.3 -107 1.02e+03 0.0111 0.00186 5.8 89.4 World eIoni - 9 -49.8 -105 1.02e+03 0.00943 0.00166 4.74 94.2 World eIoni - 10 -53.2 -104 1.02e+03 0.00854 0.000896 3.91 98.1 World eIoni - 11 -53.5 -104 1.02e+03 0.00555 0.00299 3.5 102 World eIoni - 12 -54.6 -104 1.02e+03 0.00301 0.000895 1.51 103 World eIoni - 13 -55.1 -105 1.02e+03 0.0017 0.00131 1.4 104 World eIoni - 14 -54.9 -105 1.02e+03 0 0.0017 0.621 105 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 68 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -54.6 -104 1.02e+03 0.00164 0 0 0 World initStep - 1 -54.7 -105 1.02e+03 0 0.00164 0.589 0.589 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 68 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.7 -65.8 1.02e+03 0.00118 0 0 0 World initStep - 1 -43.8 -65.9 1.02e+03 0 0.00118 0.36 0.36 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 68 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -44.8 -60.2 1.02e+03 0.00124 0 0 0 World initStep - 1 -44.8 -60.2 1.02e+03 0 0.00124 0.386 0.386 World eIoni + 0 14.5 93.9 892 0.00798 0 0 0 World initStep + 1 16.9 93.5 893 0.00452 0.00346 3.26 3.26 World eIoni + 2 17.8 94.3 893 0.00366 0.000853 1.98 5.24 World eIoni + 3 18.4 93.8 894 0.00218 0.00148 1.68 6.92 World eIoni + 4 18.3 93.7 894 0 0.00218 0.919 7.83 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.2 -38.8 976 0.00103 0 0 0 World initStep - 1 -34.2 -38.9 976 0 0.00103 0.295 0.295 World eIoni + 0 14.4 93.8 881 0.00357 0 0 0 World initStep + 1 13.6 93.8 881 0.00174 0.00183 1.64 1.64 World eIoni + 2 13.8 93.8 881 0 0.00174 0.643 2.28 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34 -38.4 906 0.00587 0 0 0 World initStep - 1 -33 -37 907 0.00457 0.0013 2.45 2.45 World eIoni - 2 -32.3 -36.3 906 0.00139 0.00318 2 4.45 World eIoni - 3 -32.2 -36.5 906 0 0.00139 0.456 4.9 World eIoni + 0 14.2 93.5 849 0.00228 0 0 0 World initStep + 1 14.3 93.1 849 0 0.00228 0.99 0.99 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.9 -38.2 881 0.0173 0 0 0 World initStep - 1 -40.1 -43.4 881 0.0139 0.00342 8.79 8.79 World eIoni - 2 -44.6 -42.3 885 0.0128 0.00108 6.39 15.2 World eIoni - 3 -47.6 -43.6 889 0.0112 0.0016 5.72 20.9 World eIoni - 4 -48.6 -46 892 0.00932 0.0019 4.81 25.7 World eIoni - 5 -49.2 -49.5 893 0.00831 0.00101 3.85 29.6 World eIoni - 6 -50.8 -51.4 892 0.00597 0.00233 3.4 33 World eIoni - 7 -51.5 -52.4 891 0.00376 0.00221 2.49 35.4 World eIoni - 8 -50.9 -52.9 891 0 0.00376 1.71 37.2 World eIoni + 0 14 93.2 808 0.00111 0 0 0 World initStep + 1 13.9 93.1 808 0 0.00111 0.328 0.328 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.9 -38.2 874 0.00256 0 0 0 World initStep - 1 -33.5 -37.9 874 0 0.00256 1.17 1.17 World eIoni + 0 13.5 92.1 702 0.00265 0 0 0 World initStep + 1 13 92 702 0 0.00265 1.22 1.22 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.8 -38 851 0.00144 0 0 0 World initStep - 1 -33.8 -37.8 851 0 0.00144 0.48 0.48 World eIoni + 0 13.6 91.9 676 0.00916 0 0 0 World initStep + 1 10.9 91.3 676 0.0066 0.00256 3.78 3.78 World eIoni + 2 10 93 677 0.00335 0.00325 2.72 6.5 World eIoni + 3 9.61 93.6 677 0.0019 0.00145 1.48 7.98 World eIoni + 4 9.43 93.4 677 0 0.0019 0.739 8.72 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.6 -37.5 749 0.00297 0 0 0 World initStep - 1 -33.2 -37.8 750 0.00233 0.000642 1.02 1.02 World eIoni - 2 -32.8 -37.7 750 0.00115 0.00118 1.02 2.05 World eIoni - 3 -32.7 -37.6 750 0 0.00115 0.345 2.39 World eIoni + 0 13.8 91.2 601 0.00104 0 0 0 World initStep + 1 13.7 91.2 601 0 0.00104 0.298 0.298 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.5 -37.1 693 0.00717 0 0 0 World initStep - 1 -31.5 -37.8 693 0.00598 0.00119 2.93 2.93 World eIoni - 2 -30.3 -37.4 692 0.00449 0.00149 2.49 5.42 World eIoni - 3 -30.4 -37.7 691 0.00316 0.00134 1.97 7.39 World eIoni - 4 -30.8 -37.3 690 0 0.00316 1.47 8.86 World eIoni + 0 13.5 90 462 0.00645 0 0 0 World initStep + 1 14.8 88.8 463 0.00403 0.00243 2.66 2.66 World eIoni + 2 15.8 88.5 463 0.00233 0.00169 1.81 4.47 World eIoni + 3 15.6 88.2 463 0 0.00233 1.03 5.49 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.5 -37 686 0.00169 0 0 0 World initStep - 1 -33.5 -37.3 686 0 0.00169 0.614 0.614 World eIoni + 0 13.3 89.4 376 0.001 0 0 0 World initStep + 1 13.3 89.3 376 0 0.001 0.284 0.284 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.5 -37 686 0.00105 0 0 0 World initStep - 1 -33.6 -37 686 0 0.00105 0.303 0.303 World eIoni + 0 13.2 89.4 364 0.00447 0 0 0 World initStep + 1 14.2 88.8 364 0.00154 0.00293 1.97 1.97 World eIoni + 2 14.3 88.8 364 0 0.00154 0.533 2.5 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.2 -35.9 548 0.00107 0 0 0 World initStep - 1 -33.3 -36 548 0 0.00107 0.31 0.31 World eIoni + 0 13.2 89.2 340 0.0023 0 0 0 World initStep + 1 13.1 89.6 340 0 0.0023 1 1 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 -35.2 473 0.00133 0 0 0 World initStep - 1 -33.2 -35.4 474 0 0.00133 0.428 0.428 World eIoni + 0 12.9 88.8 253 0.00175 0 0 0 World initStep + 1 12.7 88.7 253 0 0.00175 0.649 0.649 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 -35.2 471 0.00253 0 0 0 World initStep - 1 -33.3 -34.7 471 0 0.00253 1.15 1.15 World eIoni + 0 12.8 88.8 236 0.00352 0 0 0 World initStep + 1 13 88.4 236 0.0015 0.000918 0.482 0.482 World eIoni + 2 12.9 88.2 236 0 0.0015 0.51 0.992 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 56 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 13 88.4 236 0.00111 0 0 0 World initStep + 1 13.1 88.4 236 0 0.00111 0.327 0.327 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 -35 453 0.00184 0 0 0 World initStep - 1 -32.8 -35.1 453 0 0.00184 0.703 0.703 World eIoni + 0 12.7 88.6 211 0.00104 0 0 0 World initStep + 1 12.7 88.7 211 0 0.00104 0.3 0.3 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 -34.7 409 0.0638 0 0 0 World initStep - 1 -12.1 8.7 459 0.0594 0.00434 79.3 79.3 World eIoni - 2 34.2 36.9 487 0.0503 0.0091 70 149 World eIoni - 3 63.8 38.7 506 0.0443 0.00378 38.8 188 World eIoni - 4 68.8 39.1 523 0.0429 0.00147 18.4 207 World eIoni - 5 54.3 16.3 546 0.0371 0.00577 39.5 246 World eIoni - 6 41.4 22.3 561 0.0243 0.00514 22.9 269 World eIoni - 7 34.2 32.5 567 0.0201 0.00415 15 284 World eIoni - 8 28.2 40.5 570 0.0161 0.00404 11.1 295 World eIoni - 9 24.5 36.5 565 0.0152 0.000858 7.88 303 World eIoni - 10 25.9 29.9 564 0.0138 0.00138 7.27 310 World eIoni - 11 27.1 24.3 566 0.0118 0.00203 6.35 317 World eIoni - 12 29 24.6 567 0.0093 0.00127 2.52 319 World eIoni - 13 31.5 25.7 568 0.00791 0.00138 3.84 323 World eIoni - 14 29.2 26.5 569 0.00681 0.00111 3.23 326 World eIoni - 15 27.3 27.1 569 0.00515 0.00166 2.79 329 World eIoni - 16 27.7 26.9 567 0.00357 0.00157 2.2 331 World eIoni - 17 28.3 26.7 567 0.0022 0.00137 1.64 333 World eIoni - 18 28.2 26.9 566 0 0.0022 0.932 334 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 54 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 29 24.6 567 0.00125 0 0 0 World initStep - 1 29.1 24.5 567 0 0.00125 0.39 0.39 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 54 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 41.4 22.3 561 0.00766 0 0 0 World initStep - 1 39.9 21.6 562 0.00672 0.000941 2.13 2.13 World msc - 2 38.3 20.1 562 0.00547 0.00125 2.47 4.6 World msc - 3 37 19.4 561 0.00346 0.00201 2.31 6.91 World eIoni - 4 37.2 19 562 0 0.00346 1.59 8.5 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 54 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 63.8 38.7 506 0.00223 0 0 0 World initStep - 1 64.1 39 506 0 0.00223 0.953 0.953 World eIoni + 0 12.6 88.4 161 0.00326 0 0 0 World initStep + 1 12 87.9 161 0.00122 0.00204 1.51 1.51 World eIoni + 2 12 87.8 161 0 0.00122 0.376 1.89 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.2 -33.8 263 0.00153 0 0 0 World initStep - 1 -33.2 -34 263 0 0.00153 0.53 0.53 World eIoni + 0 12.5 88.3 147 0.00545 0 0 0 World initStep + 1 13.1 87.8 147 0.00391 0.000548 0.962 0.962 World eIoni + 2 13.6 87.3 148 0 0.00391 1.77 2.73 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 53 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 13.1 87.8 147 0.000993 0 0 0 World initStep + 1 13.2 87.7 147 0 0.000993 0.28 0.28 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.2 -33.8 262 0.00185 0 0 0 World initStep - 1 -33.3 -34.1 262 0 0.00185 0.708 0.708 World eIoni + 0 12.3 87.8 60.8 0.00136 0 0 0 World initStep + 1 12.2 88 60.8 0 0.00136 0.441 0.441 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.2 -33.6 239 0.00391 0 0 0 World initStep - 1 -33.5 -34.6 239 0.0023 0.00161 1.77 1.77 World eIoni - 2 -33.1 -34.6 239 0 0.0023 1 2.77 World eIoni + 0 12.3 87.7 46.8 0.00576 0 0 0 World initStep + 1 13.7 87 47.2 0.00429 0.00147 2.41 2.41 World eIoni + 2 13.9 87.1 48.3 0.00185 0.00245 1.9 4.32 World eIoni + 3 14.1 86.8 48.4 0 0.00185 0.707 5.02 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.4 -33.2 165 0.00226 0 0 0 World initStep - 1 -33.7 -33.5 165 0 0.00226 0.976 0.976 World eIoni + 0 12.2 87.6 32.2 0.00369 0 0 0 World initStep + 1 13.1 87.9 32.4 0.00237 0.00132 1.69 1.69 World eIoni + 2 13.2 88.3 32.6 0 0.00237 1.05 2.74 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.5 -33 135 0.00234 0 0 0 World initStep - 1 -33.8 -33.3 135 0 0.00234 1.03 1.03 World eIoni + 0 12.1 87.5 8.23 0.00101 0 0 0 World initStep + 1 12.1 87.4 8.24 0 0.00101 0.285 0.285 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.5 -33 130 0.00213 0 0 0 World initStep - 1 -33.8 -33.2 130 0 0.00213 0.883 0.883 World eIoni + 0 12.1 87.5 3.79 0.00148 0 0 0 World initStep + 1 12 87.6 3.81 0 0.00148 0.505 0.505 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.6 -32.7 85.2 0.00547 0 0 0 World initStep - 1 -32.1 -32.7 85.6 0.00465 0.000814 2.31 2.31 World eIoni - 2 -31.3 -32 86.4 0.00377 0.000881 2.03 4.34 World eIoni - 3 -31.8 -31.2 86.7 0 0.00377 1.72 6.05 World eIoni + 0 12.1 87.3 -29.1 0.00313 0 0 0 World initStep + 1 11.9 86.6 -29 0.00154 0.00159 1.46 1.46 World eIoni + 2 12.1 86.5 -28.9 0 0.00154 0.531 1.99 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.9 -31.7 -119 0.00585 0 0 0 World initStep - 1 -35.2 -32.8 -118 0.0027 0.00315 2.44 2.44 World eIoni - 2 -34.7 -32.9 -118 0 0.0027 1.25 3.69 World eIoni + 0 11.9 87.2 -59.9 0.00134 0 0 0 World initStep + 1 12 87.3 -59.9 0 0.00134 0.431 0.431 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34 -31.7 -125 0.00167 0 0 0 World initStep - 1 -34.2 -31.7 -125 0 0.00167 0.604 0.604 World eIoni + 0 11.8 87.1 -78.9 0.0103 0 0 0 World initStep + 1 12.5 88.5 -77.9 0.00994 0.000382 1.9 1.9 World msc + 2 13.2 89.5 -76.3 0.00921 0.000725 2.17 4.07 World msc + 3 11.1 90 -75.8 0.00729 0.00193 2.37 6.44 World msc + 4 8.9 90.2 -75.5 0.00574 0.00155 2.98 9.42 World eIoni + 5 7.55 89.5 -76.1 0.00424 0.0015 2.4 11.8 World eIoni + 6 6.87 90.2 -75.5 0.00306 0.00118 1.89 13.7 World eIoni + 7 6.28 89.9 -75.4 0.00151 0.00156 1.43 15.1 World eIoni + 8 6.15 90.1 -75.5 0 0.00151 0.516 15.7 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34 -31.6 -144 0.00129 0 0 0 World initStep - 1 -34 -31.4 -144 0 0.00129 0.407 0.407 World eIoni + 0 11.5 86.9 -157 0.00127 0 0 0 World initStep + 1 11.7 87 -157 0 0.00127 0.398 0.398 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34 -31.5 -156 0.0015 0 0 0 World initStep - 1 -33.8 -31.6 -156 0 0.0015 0.515 0.515 World eIoni + 0 11.3 86.7 -210 0.000998 0 0 0 World initStep + 1 11.2 86.7 -210 0 0.000998 0.281 0.281 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.1 -31.2 -227 0.00221 0 0 0 World initStep - 1 -34.3 -31.5 -227 0 0.00221 0.941 0.941 World eIoni + 0 11.2 86.5 -244 0.00204 0 0 0 World initStep + 1 11.2 86.9 -244 0 0.00204 0.826 0.826 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.2 -31.1 -253 0.00334 0 0 0 World initStep - 1 -34.9 -31.4 -253 0.00214 0.0012 1.55 1.55 World eIoni - 2 -34.7 -31.7 -253 0 0.00214 0.894 2.44 World eIoni + 0 10.9 86.3 -308 0.00114 0 0 0 World initStep + 1 10.9 86.2 -308 0 0.00114 0.34 0.34 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.3 -30.8 -324 0.00181 0 0 0 World initStep - 1 -34.2 -31 -323 0 0.00181 0.684 0.684 World eIoni + 0 10.8 86.2 -332 0.00101 0 0 0 World initStep + 1 10.8 86.3 -332 0 0.00101 0.286 0.286 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.3 -30.5 -400 0.00106 0 0 0 World initStep - 1 -34.2 -30.4 -400 0 0.00106 0.305 0.305 World eIoni + 0 9.73 85.9 -489 0.00114 0 0 0 World initStep + 1 9.63 85.9 -489 0 0.00114 0.34 0.34 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.2 -30.3 -437 0.00309 0 0 0 World initStep - 1 -34.5 -29.9 -436 0.00203 0.00106 0.687 0.687 World eIoni - 2 -34.6 -29.9 -436 0 0.00203 0.821 1.51 World eIoni + 0 9.4 85.7 -545 0.0011 0 0 0 World initStep + 1 9.38 85.6 -545 0 0.0011 0.324 0.324 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.1 -30.2 -460 0.0131 0 0 0 World initStep - 1 -37.8 -34.1 -460 0.011 0.00206 5.86 5.86 World eIoni - 2 -38.3 -36.9 -459 0.00967 0.00133 3.04 8.91 World msc - 3 -40.4 -38.9 -457 0.00663 0.00304 4.02 12.9 World eIoni - 4 -41.6 -40.7 -456 0.00553 0.0011 2.73 15.7 World eIoni - 5 -42.2 -42.1 -457 0.00366 0.00188 2.33 18 World eIoni - 6 -42.9 -42.4 -456 0.00199 0.00167 1.67 19.7 World eIoni - 7 -43 -42.2 -457 0 0.00199 0.794 20.5 World eIoni + 0 9.36 85.7 -550 0.00182 0 0 0 World initStep + 1 9.61 85.8 -550 0 0.00182 0.692 0.692 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.4 -29.1 -662 0.00201 0 0 0 World initStep - 1 -33.2 -28.9 -662 0 0.00201 0.806 0.806 World eIoni + 0 8.46 85.4 -690 0.00224 0 0 0 World initStep + 1 8.45 85 -690 0 0.00224 0.958 0.958 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.3 -28.9 -709 0.00128 0 0 0 World initStep - 1 -33.2 -28.8 -709 0 0.00128 0.404 0.404 World eIoni + 0 8.32 85.3 -711 0.00424 0 0 0 World initStep + 1 7.7 86.2 -711 0.00333 0.000912 1.89 1.89 World eIoni + 2 7.1 86.2 -710 0.00138 0.000864 0.995 2.88 World eIoni + 3 7.12 86.2 -710 0 0.00138 0.452 3.33 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 35 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 7.1 86.2 -710 0.00109 0 0 0 World initStep + 1 6.98 86.1 -710 0 0.00109 0.318 0.318 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.2 -28.8 -729 0.00165 0 0 0 World initStep - 1 -33 -28.9 -729 0 0.00165 0.594 0.594 World eIoni + 0 6.66 84.8 -968 0.00126 0 0 0 World initStep + 1 6.77 84.9 -968 0 0.00126 0.394 0.394 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.2 -28.7 -755 0.00106 0 0 0 World initStep - 1 -33.1 -28.7 -755 0 0.00106 0.308 0.308 World eIoni + 0 6.14 84.6 -1.04e+03 0.00488 0 0 0 World initStep + 1 5.85 85.9 -1.04e+03 0.00343 0.00146 2.11 2.11 World eIoni + 2 5.67 86.7 -1.04e+03 0 0.00343 1.58 3.69 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 -28.6 -777 0.00297 0 0 0 World initStep - 1 -33.1 -28.6 -776 0.00294 2.51e-05 0.081 0.081 World msc - 2 -33.2 -28.5 -776 0.00294 0 0.081 0.162 World msc - 3 -33.3 -28.5 -776 0.00277 0.000169 0.081 0.243 World msc - 4 -33.3 -28.4 -776 0.00251 0.00026 0.081 0.324 World msc - 5 -33.4 -28.4 -776 0.00236 0.000153 0.081 0.405 World msc - 6 -33.4 -28.3 -776 0.00235 1.63e-05 0.081 0.486 World msc - 7 -33.4 -28.3 -776 0.00219 0.00016 0.081 0.567 World msc - 8 -33.4 -28.3 -776 0.00218 1.7e-06 0.00115 0.568 cloudPV CoupledTransportation - 9 -33.4 -28.3 -776 0.00218 0 7.46e-06 0.568 cloudPV msc - 10 -33.4 -28.3 -776 0.00216 1.9e-05 7.73e-06 0.568 cloudPV msc - 11 -33.4 -28.3 -776 0.00208 8.26e-05 7.37e-06 0.568 cloudPV msc - 12 -33.4 -28.3 -776 0.00202 5.93e-05 7.77e-06 0.568 cloudPV msc - 13 -33.4 -28.3 -776 0.00202 0 8.26e-06 0.568 cloudPV msc - 14 -33.4 -28.3 -776 0.00197 5.73e-05 7.79e-06 0.568 cloudPV msc - 15 -33.4 -28.3 -776 0.00197 0 7.88e-06 0.568 cloudPV msc - 16 -33.4 -28.3 -776 0.00191 5.7e-05 7.69e-06 0.568 cloudPV msc - 17 -33.4 -28.3 -776 0.00183 8.03e-05 8.02e-06 0.568 cloudPV msc - 18 -33.4 -28.3 -776 0.00183 0 1.11e-05 0.568 cloudPV msc - 19 -33.4 -28.3 -776 0.00181 1.7e-05 1.68e-05 0.568 cloudPV msc - 20 -33.4 -28.3 -776 0.00165 0.000165 2.32e-05 0.568 cloudPV msc - 21 -33.4 -28.3 -776 0 0.00165 3.56e-05 0.568 cloudPV msc + 0 5.96 84.6 -1.07e+03 0.0166 0 0 0 World initStep + 1 6.81 79.3 -1.06e+03 0.0138 0.00274 8.22 8.22 World eIoni + 2 5.86 77.5 -1.06e+03 0.0122 0.000643 2.32 10.5 World eIoni + 3 7.18 72.9 -1.06e+03 0.00979 0.00238 5.34 15.9 World eIoni + 4 10.6 71.7 -1.06e+03 0.0068 0.00299 4.08 20 World eIoni + 5 12.1 70.4 -1.06e+03 0.00446 0.00234 2.79 22.7 World eIoni + 6 12.7 69.4 -1.06e+03 0.00268 0.00177 1.96 24.7 World eIoni + 7 13 69 -1.06e+03 0.00109 0.00159 1.24 25.9 World eIoni + 8 13 69.1 -1.06e+03 0 0.00109 0.32 26.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 5.86 77.5 -1.06e+03 0.00101 0 0 0 World initStep + 1 5.92 77.5 -1.06e+03 0 0.00101 0.285 0.285 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 -28.6 -910 0.00122 0 0 0 World initStep - 1 -32.9 -28.6 -910 0 0.00122 0.374 0.374 World eIoni + 0 5.85 84.5 -1.08e+03 0.00148 0 0 0 World initStep + 1 5.91 84.4 -1.08e+03 0 0.00148 0.501 0.501 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 -28.6 -925 0.00396 0 0 0 World initStep - 1 -32.2 -28.3 -925 0.00153 0.00242 1.78 1.78 World eIoni - 2 -32.1 -28.2 -925 0 0.00153 0.531 2.32 World eIoni + 0 5.79 84.5 -1.09e+03 0.0114 0 0 0 World initStep + 1 4.19 83 -1.09e+03 0.00936 0.00053 2.34 2.34 World eIoni + 2 4.07 81.8 -1.09e+03 0.00769 0.000664 1.29 3.63 World eIoni + 3 3.14 79.6 -1.09e+03 0.00663 0.00106 3.14 6.77 World eIoni + 4 2.36 78.1 -1.09e+03 0.00582 0.000815 2.73 9.5 World eIoni + 5 2.14 78.2 -1.09e+03 0.00432 0.0015 2.43 11.9 World eIoni + 6 2.02 77.3 -1.09e+03 0.00264 0.00168 1.91 13.8 World eIoni + 7 2.1 77.4 -1.09e+03 0 0.00264 1.22 15.1 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 4.07 81.8 -1.09e+03 0.00101 0 0 0 World initStep + 1 4.16 81.7 -1.09e+03 0 0.00101 0.286 0.286 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 4.19 83 -1.09e+03 0.00155 0 0 0 World initStep + 1 4.01 83 -1.09e+03 0 0.00155 0.538 0.538 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33 -28.7 -1.02e+03 0.00129 0 0 0 World initStep - 1 -33.2 -28.7 -1.02e+03 0 0.00129 0.407 0.407 World eIoni + 0 5.63 84.5 -1.12e+03 0.00175 0 0 0 World initStep + 1 5.87 84.4 -1.12e+03 0 0.00175 0.647 0.647 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33 -28.7 -1.03e+03 0.0015 0 0 0 World initStep - 1 -32.8 -28.6 -1.03e+03 0 0.0015 0.511 0.511 World eIoni + 0 3.69 83.8 -1.45e+03 0.0381 0 0 0 World initStep + 1 -16.6 76.2 -1.43e+03 0.033 0.00511 32.2 32.2 World eIoni + 2 -26.8 78.4 -1.41e+03 0.0267 0.00625 25.1 57.3 World eIoni + 3 -35 74.1 -1.39e+03 0.0247 0.00201 17.6 74.9 World eIoni + 4 -38.3 74.7 -1.39e+03 0.0167 0.000593 4.26 79.1 World eIoni + 5 -39.8 79 -1.4e+03 0.0148 0.00194 8.34 87.5 World eIoni + 6 -38 84 -1.4e+03 0.012 0.00273 6.96 94.5 World eIoni + 7 -41 87.6 -1.4e+03 0.0106 0.00141 5.27 99.7 World eIoni + 8 -43.2 90.7 -1.4e+03 0.00817 0.00246 4.5 104 World eIoni + 9 -44.6 92.4 -1.4e+03 0.00694 0.00123 3.34 108 World eIoni + 10 -43.5 92 -1.4e+03 0.00532 0.00162 2.85 110 World eIoni + 11 -42.8 90.8 -1.4e+03 0.00202 0.00217 2.01 112 World eIoni + 12 -43 90.7 -1.4e+03 0 0.00202 0.814 113 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 28 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -42.8 90.8 -1.4e+03 0.00113 0 0 0 World initStep + 1 -42.7 90.8 -1.4e+03 0 0.00113 0.336 0.336 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 28 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -38.3 74.7 -1.39e+03 0.00741 0 0 0 World initStep + 1 -36.6 74.7 -1.39e+03 0.00591 0.0015 3.03 3.03 World eIoni + 2 -37.1 73.6 -1.39e+03 0.00433 0.00159 2.46 5.49 World eIoni + 3 -36.6 74.4 -1.39e+03 0.00164 0.00269 1.91 7.41 World eIoni + 4 -36.6 74.6 -1.39e+03 0 0.00164 0.587 8 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33 -28.7 -1.07e+03 0.00256 0 0 0 World initStep - 1 -32.6 -28.6 -1.07e+03 0 0.00256 1.17 1.17 World eIoni + 0 3.68 83.8 -1.45e+03 0.00111 0 0 0 World initStep + 1 3.66 84 -1.45e+03 0 0.00111 0.329 0.329 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 -28.6 -1.17e+03 0.00156 0 0 0 World initStep - 1 -33.1 -28.8 -1.17e+03 0 0.00156 0.544 0.544 World eIoni + 0 3.61 83.8 -1.46e+03 0.0025 0 0 0 World initStep + 1 3.26 84.1 -1.46e+03 0 0.0025 1.14 1.14 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 -28.4 -1.26e+03 0.00218 0 0 0 World initStep - 1 -32.9 -28 -1.26e+03 0 0.00218 0.918 0.918 World eIoni + 0 3.47 83.8 -1.51e+03 0.00115 0 0 0 World initStep + 1 3.36 83.7 -1.51e+03 0 0.00115 0.345 0.345 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33 -28.1 -1.41e+03 0.00133 0 0 0 World initStep - 1 -32.8 -28.1 -1.41e+03 0 0.00133 0.427 0.427 World eIoni + 0 3.47 83.8 -1.51e+03 0.00215 0 0 0 World initStep + 1 3.18 84 -1.51e+03 0 0.00215 0.901 0.901 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33 -28 -1.45e+03 0.00132 0 0 0 World initStep - 1 -33.1 -28 -1.45e+03 0 0.00132 0.424 0.424 World eIoni + 0 3.28 83.6 -1.58e+03 0.00305 0 0 0 World initStep + 1 3.78 84 -1.58e+03 0.00161 0.00144 1.42 1.42 World eIoni + 2 3.74 84.2 -1.58e+03 0 0.00161 0.57 1.99 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.9 -28 -1.46e+03 0.00105 0 0 0 World initStep - 1 -33 -28 -1.46e+03 0 0.00105 0.301 0.301 World eIoni + 0 3.28 83.6 -1.58e+03 0.00163 0 0 0 World initStep + 1 3.21 83.8 -1.58e+03 0 0.00163 0.582 0.582 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.9 -27.9 -1.48e+03 0.00228 0 0 0 World initStep - 1 -33.2 -28.2 -1.48e+03 0 0.00228 0.988 0.988 World eIoni + 0 3.23 83.6 -1.6e+03 0.002 0 0 0 World initStep + 1 3.11 83.9 -1.6e+03 0 0.002 0.798 0.798 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.8 -27.8 -1.53e+03 0.00152 0 0 0 World initStep - 1 -32.6 -27.7 -1.53e+03 0 0.00152 0.524 0.524 World eIoni + 0 3.14 83.5 -1.65e+03 0.00134 0 0 0 World initStep + 1 2.97 83.5 -1.65e+03 0 0.00134 0.433 0.433 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.6 -27.7 -1.61e+03 0.00119 0 0 0 World initStep - 1 -32.8 -27.8 -1.61e+03 0 0.00119 0.363 0.363 World eIoni + 0 3.09 83.4 -1.68e+03 0.0018 0 0 0 World initStep + 1 2.92 83.2 -1.68e+03 0 0.0018 0.676 0.676 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.6 -27.7 -1.62e+03 0.00137 0 0 0 World initStep - 1 -32.5 -27.7 -1.62e+03 0 0.00137 0.449 0.449 World eIoni + 0 3.09 83.4 -1.68e+03 0.00675 0 0 0 World initStep + 1 4.86 84.2 -1.68e+03 0.00532 0.00142 2.77 2.77 World eIoni + 2 5.25 82.8 -1.68e+03 0.00248 0.00284 2.26 5.03 World eIoni + 3 5.11 82.4 -1.68e+03 0 0.00248 1.12 6.15 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.5 -27.7 -1.67e+03 0.0012 0 0 0 World initStep - 1 -32.5 -27.8 -1.67e+03 0 0.0012 0.366 0.366 World eIoni + 0 3.01 83.3 -1.73e+03 0.00402 0 0 0 World initStep + 1 2.24 82.6 -1.73e+03 0.0014 0.00262 1.81 1.81 World eIoni + 2 2.22 82.5 -1.73e+03 0 0.0014 0.46 2.27 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.3 -27.5 -1.76e+03 0.00987 0 0 0 World initStep - 1 -32.7 -29 -1.76e+03 0.00942 0.000447 1.92 1.92 World msc - 2 -32.5 -30.6 -1.76e+03 0.00842 0.000997 1.82 3.74 World msc - 3 -33 -32.5 -1.76e+03 0.00737 0.00105 2.12 5.85 World msc - 4 -33.6 -34 -1.76e+03 0.0054 0.00198 1.85 7.7 World msc - 5 -33.7 -35.3 -1.76e+03 0.00498 0.000414 1.52 9.22 World msc - 6 -33.6 -36.4 -1.76e+03 0.00227 0.00272 2.14 11.4 World eIoni - 7 -33.7 -36.8 -1.76e+03 0 0.00227 0.978 12.3 World eIoni + 0 2.99 83.3 -1.74e+03 0.00104 0 0 0 World initStep + 1 3.07 83.2 -1.74e+03 0 0.00104 0.296 0.296 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.3 -27.5 -1.77e+03 0.00123 0 0 0 World initStep - 1 -32.1 -27.5 -1.77e+03 0 0.00123 0.382 0.382 World eIoni + 0 2.82 83.1 -1.83e+03 0.00268 0 0 0 World initStep + 1 2.97 82.6 -1.83e+03 0 0.00268 1.14 1.14 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.2 -27.4 -1.78e+03 0.00203 0 0 0 World initStep - 1 -32.4 -27.2 -1.78e+03 0 0.00203 0.82 0.82 World eIoni + 0 2.79 83 -1.85e+03 0.0013 0 0 0 World initStep + 1 2.72 83.2 -1.85e+03 0 0.0013 0.412 0.412 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32.2 -27.4 -1.79e+03 0.00125 0 0 0 World initStep - 1 -32.1 -27.6 -1.79e+03 0 0.00125 0.389 0.389 World eIoni + 0 2.71 83 -1.92e+03 0.00488 0 0 0 World initStep + 1 1.67 82.3 -1.92e+03 0.00202 0.00286 1.84 1.84 World eIoni + 2 1.63 82.1 -1.92e+03 0 0.00202 0.813 2.65 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -31.9 -27.2 -1.91e+03 0.0015 0 0 0 World initStep - 1 -31.7 -27.1 -1.91e+03 0 0.0015 0.513 0.513 World eIoni + 0 2.7 83 -1.94e+03 0.00254 0 0 0 World initStep + 1 2.87 82.5 -1.94e+03 0.00118 0.00136 1.16 1.16 World eIoni + 2 2.92 82.5 -1.94e+03 0 0.00118 0.359 1.52 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -31.4 -26.9 -2.03e+03 0.00122 0 0 0 World initStep - 1 -31.5 -27 -2.03e+03 0 0.00122 0.375 0.375 World eIoni + 0 2.69 83 -1.96e+03 0.00161 0 0 0 World initStep + 1 2.71 83.2 -1.96e+03 0 0.00161 0.57 0.57 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -31.1 -27 -2.12e+03 0.00477 0 0 0 World initStep - 1 -30.2 -26 -2.12e+03 0.00305 0.00172 2.07 2.07 World eIoni - 2 -29.7 -25.6 -2.12e+03 0 0.00305 1.42 3.49 World eIoni + 0 2.65 83 -2e+03 0.00148 0 0 0 World initStep + 1 2.56 83.2 -2e+03 0 0.00148 0.503 0.503 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -31.1 -27 -2.12e+03 0.0264 0 0 0 World initStep - 1 -25 -16.2 -2.11e+03 0.0235 0.0029 17.2 17.2 World eIoni - 2 -27.8 -7.03 -2.1e+03 0.0206 0.00294 14.2 31.5 World eIoni - 3 -32.2 -4.37 -2.1e+03 0.0194 0.0012 8.35 39.8 World eIoni - 4 -32 -1.72 -2.09e+03 0.0154 0.00394 10.4 50.3 World eIoni - 5 -31.9 -2.65 -2.08e+03 0.0138 0.00169 7.42 57.7 World eIoni - 6 -34.3 -4.48 -2.08e+03 0.00966 0.00409 6.29 64 World eIoni - 7 -36.8 -4.33 -2.08e+03 0.00801 0.00165 4.01 68 World eIoni - 8 -37.2 -4.2 -2.08e+03 0.00551 0.0025 3.27 71.3 World eIoni - 9 -38.2 -4.28 -2.08e+03 0.00349 0.00203 2.32 73.6 World eIoni - 10 -39 -3.67 -2.08e+03 0 0.00349 1.61 75.2 World eIoni + 0 2.6 83 -2.14e+03 0.00199 0 0 0 World initStep + 1 2.45 82.8 -2.14e+03 0 0.00199 0.796 0.796 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -31.1 -27 -2.14e+03 0.00133 0 0 0 World initStep - 1 -31.1 -27.2 -2.14e+03 0 0.00133 0.428 0.428 World eIoni + 0 2.59 83 -2.17e+03 0.00639 0 0 0 World initStep + 1 1.18 84.2 -2.17e+03 0.00422 0.00217 2.64 2.64 World eIoni + 2 1.01 84.2 -2.17e+03 0.00214 0.000348 0.199 2.84 World eIoni + 3 0.798 83.9 -2.17e+03 0 0.00214 0.889 3.73 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.01 84.2 -2.17e+03 0.00174 0 0 0 World initStep + 1 0.856 84.3 -2.17e+03 0 0.00174 0.644 0.644 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -31 -27.1 -2.18e+03 0.00162 0 0 0 World initStep - 1 -31.2 -26.9 -2.18e+03 0 0.00162 0.575 0.575 World eIoni + 0 2.51 82.9 -2.3e+03 0.00267 0 0 0 World initStep + 1 2.07 82.6 -2.3e+03 0 0.00267 1.23 1.23 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.6 -27.4 -2.35e+03 0.00235 0 0 0 World initStep - 1 -31 -27.4 -2.35e+03 0 0.00235 1.03 1.03 World eIoni + 0 2.51 82.9 -2.3e+03 0.0552 0 0 0 World initStep + 1 -9.07 78.1 -2.29e+03 0.0516 0.00198 15.8 15.8 World eIoni + 2 -42.1 65.3 -2.25e+03 0.0453 0.00634 54.7 70.5 World eIoni + 3 -45.6 64.6 -2.25e+03 0.0354 0.000471 4.14 74.6 World eIoni + 4 -50.9 60.6 -2.23e+03 0.0299 0.00288 25.1 99.7 World eIoni + 5 -51.7 58.6 -2.22e+03 0.0276 0.000638 5.81 106 World eIoni + 6 -50.9 52.8 -2.21e+03 0.0192 0.00204 13.5 119 World eIoni + 7 -48.5 60.7 -2.21e+03 0.0173 0.0019 10.3 129 World eIoni + 8 -49 53.5 -2.2e+03 0.0157 0.00167 8.8 138 World eIoni + 9 -45.6 47.8 -2.2e+03 0.0135 0.00218 7.57 146 World eIoni + 10 -45.3 43.7 -2.2e+03 0.0103 0.00174 4.44 150 World eIoni + 11 -41.9 41.8 -2.2e+03 0.00842 0.00185 4.31 155 World eIoni + 12 -40.2 40.2 -2.2e+03 0.00622 0.0022 3.45 158 World eIoni + 13 -39.4 39.1 -2.2e+03 0.00387 0.00235 2.58 161 World eIoni + 14 -38.9 38.5 -2.2e+03 0.00307 0.000791 1.04 162 World eIoni + 15 -38.3 38.5 -2.2e+03 0 0.00307 1.43 163 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -45.3 43.7 -2.2e+03 0.00146 0 0 0 World initStep + 1 -45.3 43.6 -2.2e+03 0 0.00146 0.494 0.494 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -50.9 52.8 -2.21e+03 0.00639 0 0 0 World initStep + 1 -51.1 52.3 -2.21e+03 0.00508 0.000277 1.22 1.22 World eIoni + 2 -51.6 51.4 -2.21e+03 0.00311 0.00197 2.17 3.39 World eIoni + 3 -51.2 51.2 -2.21e+03 0 0.00311 1.45 4.84 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 121 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -51.1 52.3 -2.21e+03 0.00103 0 0 0 World initStep + 1 -51.2 52.3 -2.21e+03 0 0.00103 0.296 0.296 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -51.7 58.6 -2.22e+03 0.00163 0 0 0 World initStep + 1 -51.5 58.6 -2.22e+03 0 0.00163 0.58 0.58 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -50.9 60.6 -2.23e+03 0.00258 0 0 0 World initStep + 1 -51 61 -2.23e+03 0.0011 0.00148 1.18 1.18 World eIoni + 2 -51 60.9 -2.23e+03 0 0.0011 0.326 1.51 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -45.6 64.6 -2.25e+03 0.00944 0 0 0 World initStep + 1 -47.3 67.1 -2.25e+03 0.00786 0.00158 3.91 3.91 World eIoni + 2 -49.2 67.7 -2.25e+03 0.00473 0.000624 2.18 6.09 World eIoni + 3 -50.5 67.5 -2.25e+03 0.00237 0.00236 2.06 8.15 World eIoni + 4 -50.6 67.7 -2.25e+03 0 0.00237 1.05 9.2 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 118 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -49.2 67.7 -2.25e+03 0.0025 0 0 0 World initStep + 1 -49.3 68.1 -2.25e+03 0 0.0025 1.13 1.13 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -9.07 78.1 -2.29e+03 0.00164 0 0 0 World initStep + 1 -9.24 78.2 -2.29e+03 0 0.00164 0.589 0.589 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.5 -27.4 -2.4e+03 0.00259 0 0 0 World initStep - 1 -30.8 -27 -2.4e+03 0 0.00259 1.19 1.19 World eIoni + 0 2.47 83 -2.39e+03 0.00111 0 0 0 World initStep + 1 2.4 82.9 -2.39e+03 0 0.00111 0.326 0.326 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.1 -27.4 -2.56e+03 0.00344 0 0 0 World initStep - 1 -30.2 -27.4 -2.56e+03 0.00221 0 0.106 0.106 World eIoni - 2 -30.6 -27.3 -2.56e+03 0 0.00221 0.941 1.05 World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.2 -27.4 -2.56e+03 0.00123 0 0 0 World initStep - 1 -30.2 -27.2 -2.56e+03 0 0.00123 0.38 0.38 World eIoni + 0 2.47 83 -2.4e+03 0.00124 0 0 0 World initStep + 1 2.59 83.1 -2.4e+03 0 0.00124 0.388 0.388 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.1 -27.4 -2.57e+03 0.00422 0 0 0 World initStep - 1 -29.2 -28 -2.57e+03 0 0.00422 1.88 1.88 World eIoni + 0 2.45 83 -2.45e+03 0.00186 0 0 0 World initStep + 1 2.66 83.2 -2.45e+03 0 0.00186 0.711 0.711 World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.1 -27.4 -2.6e+03 0.00696 0 0 0 World initStep - 1 -29.3 -27.4 -2.6e+03 0.00671 0.000244 0.875 0.875 World eIoni - 2 -27.5 -28.2 -2.6e+03 0.00543 0.00128 2.76 3.63 World eIoni - 3 -26.9 -29.5 -2.6e+03 0.00247 0.00296 2.3 5.93 World eIoni - 4 -26.6 -29.6 -2.6e+03 0.00101 0.00146 1.12 7.04 World eIoni - 5 -26.5 -29.7 -2.6e+03 0 0.00101 0.287 7.33 World eIoni + 0 2.4 83 -2.59e+03 0.00211 0 0 0 World initStep + 1 2.17 83.3 -2.59e+03 0 0.00211 0.87 0.87 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.45 -49 -2.61e+03 50 0 0 0 World initStep + 1 -2.45 -49 -2.6e+03 50 0.00175 8.94 8.94 World hIoni + 2 -2.45 -49 -2.6e+03 50 0.000559 4.34 13.3 World hIoni + 3 -2.46 -49 -2.57e+03 50 0.00647 33.6 46.9 World hIoni + 4 -2.47 -49 -2.55e+03 50 0.00199 13.2 60 World hIoni + 5 -2.51 -49 -2.48e+03 50 0.0111 74.7 135 World hIoni + 6 -2.51 -49 -2.47e+03 50 0.00132 5.14 140 World hIoni + 7 -2.52 -49 -2.43e+03 50 0.0114 47 187 World hIoni + 8 -2.51 -49 -2.41e+03 50 0.00318 16.3 203 World hIoni + 9 -2.5 -49 -2.38e+03 49.9 0.00364 26.2 229 World hIoni + 10 -2.5 -49 -2.37e+03 49.9 0.00346 10.7 240 World hIoni + 11 -2.48 -49 -2.32e+03 49.9 0.00933 52.9 293 World hIoni + 12 -2.48 -48.9 -2.29e+03 49.9 0.00578 29.7 323 World hIoni + 13 -2.46 -48.9 -2.23e+03 49.9 0.00919 57.3 380 World hIoni + 14 -2.46 -48.8 -2.22e+03 49.9 0.00242 17.4 397 World hIoni + 15 -2.43 -48.8 -2.15e+03 49.9 0.012 64.1 461 World hIoni + 16 -2.42 -48.8 -2.14e+03 49.9 0.00159 10.1 472 World hIoni + 17 -2.34 -48.8 -2.06e+03 49.9 0.0195 83.3 555 World hIoni + 18 -2.3 -48.8 -2.01e+03 49.8 0.0087 47.5 602 cloudPV CoupledTransportation + 19 -2.3 -48.8 -2.01e+03 49 0.806 0.7 603 World CoupledTransportation + 20 -2.38 -53.5 -1.72e+03 49 0.0537 288 891 World hIoni + 21 -2.38 -53.6 -1.72e+03 49 0.000439 3.04 894 cloudPV CoupledTransportation + 22 -2.39 -53.6 -1.72e+03 46.5 2.43 1.89 896 World CoupledTransportation + 23 -2.57 -53.7 -1.7e+03 46.5 0.00225 20.5 916 World hIoni + 24 -2.88 -54 -1.66e+03 46.5 0.00469 34.9 951 World hIoni + 25 -3.12 -54.2 -1.63e+03 46.5 0.00653 27.3 978 World hIoni + 26 -3.83 -54.7 -1.55e+03 46.5 0.0177 80.8 1.06e+03 World hIoni + 27 -4 -54.8 -1.53e+03 46.5 0.00248 20.4 1.08e+03 World hIoni + 28 -4.08 -54.9 -1.52e+03 46.5 0.00293 10.1 1.09e+03 World hIoni + 29 -4.18 -55 -1.51e+03 46.5 0.00142 11 1.1e+03 World hIoni + 30 -4.41 -55.2 -1.48e+03 46.5 0.00511 27.4 1.13e+03 World hIoni + 31 -4.6 -55.4 -1.46e+03 46.5 0.00256 22 1.15e+03 World hIoni + 32 -5.14 -55.9 -1.4e+03 46.4 0.0125 62.2 1.21e+03 World hIoni + 33 -5.75 -56.4 -1.34e+03 46.4 0.00937 64 1.28e+03 World hIoni + 34 -5.99 -56.6 -1.31e+03 46.4 0.00407 24 1.3e+03 World hIoni + 35 -6.25 -56.8 -1.28e+03 46.4 0.00555 28.2 1.33e+03 World hIoni + 36 -7.47 -57.8 -1.16e+03 46.4 0.0285 124 1.45e+03 World hIoni + 37 -7.48 -57.8 -1.16e+03 46.4 0 0.354 1.45e+03 World hIoni + 38 -7.54 -57.8 -1.15e+03 46.4 0.000514 5.78 1.46e+03 World hIoni + 39 -8.42 -58.4 -1.07e+03 46.4 0.0135 79.3 1.54e+03 World hIoni + 40 -9.12 -58.9 -1.01e+03 46.4 0.0107 66.2 1.6e+03 World hIoni + 41 -9.28 -59 -993 46.3 0.00408 15.1 1.62e+03 World hIoni + 42 -9.84 -59.4 -942 46.3 0.00999 51.6 1.67e+03 World hIoni + 43 -10.3 -59.7 -900 46.3 0.00647 41.9 1.71e+03 World hIoni + 44 -10.5 -59.8 -879 46.3 0.00375 20.9 1.73e+03 World hIoni + 45 -11.3 -60.4 -807 46.3 0.0108 71.4 1.81e+03 cloudPV CoupledTransportation + 46 -11.3 -60.4 -806 43.9 2.37 1.8 1.81e+03 World CoupledTransportation + 47 -11.4 -60.6 -801 43.9 0.000742 4.52 1.81e+03 World hIoni + 48 -11.4 -60.8 -791 43.9 0.00268 9.65 1.82e+03 World hIoni + 49 -11.6 -61.1 -777 43.9 0.00302 14.5 1.84e+03 World hIoni + 50 -11.6 -61.2 -774 43.9 0.000518 3.45 1.84e+03 World hIoni + 51 -11.6 -61.3 -770 43.9 0.00108 3.81 1.84e+03 World hIoni + 52 -11.7 -61.6 -756 43.9 0.00332 13.6 1.86e+03 World hIoni + 53 -12.2 -63.1 -690 43.9 0.0152 66.3 1.92e+03 World hIoni + 54 -13.4 -66.6 -535 43.8 0.0299 155 2.08e+03 World hIoni + 55 -13.4 -66.9 -524 43.8 0.00213 11 2.09e+03 World hIoni + 56 -13.5 -67.1 -516 43.8 0.00136 7.8 2.1e+03 World hIoni + 57 -13.6 -67.5 -498 43.8 0.00278 18.8 2.12e+03 World hIoni + 58 -14.2 -69.3 -413 43.8 0.0208 85 2.2e+03 World hIoni + 59 -14.7 -70.8 -348 43.8 0.012 65.1 2.27e+03 World hIoni + 60 -14.8 -71.1 -335 43.8 0.00183 12.1 2.28e+03 World hIoni + 61 -15.2 -72.2 -291 43.8 0.00877 44.2 2.32e+03 World hIoni + 62 -15.4 -72.7 -268 43.8 0.00515 23.5 2.34e+03 World hIoni + 63 -15.8 -74 -212 43.7 0.0089 56.1 2.4e+03 World hIoni + 64 -16.9 -77.2 -75.3 43.7 0.0241 137 2.54e+03 World hIoni + 65 -18 -80.4 60 43.7 0.0286 135 2.67e+03 World hIoni + 66 -18.1 -80.6 66.9 43.7 0.00141 6.96 2.68e+03 World hIoni + 67 -18.2 -81 82.7 43.7 0.00445 15.8 2.7e+03 World hIoni + 68 -18.3 -81.2 91.1 43.7 0.00164 8.36 2.7e+03 World hIoni + 69 -18.4 -81.4 101 43.7 0.00175 9.47 2.71e+03 World hIoni + 70 -18.7 -82.4 141 43.7 0.00896 40.6 2.75e+03 World hIoni + 71 -19.2 -83.7 194 43.6 0.0117 52.6 2.81e+03 World hIoni + 72 -20.4 -87.1 326 43.6 0.0263 133 2.94e+03 World hIoni + 73 -20.8 -88.3 377 43.6 0.0127 50.8 2.99e+03 World hIoni + 74 -20.9 -88.5 387 43.6 0.00168 10.2 3e+03 World hIoni + 75 -21.3 -89.8 439 43.6 0.00792 52.1 3.05e+03 World hIoni + 76 -21.3 -89.9 444 43.6 0.000532 4.8 3.06e+03 World hIoni + 77 -21.4 -90.2 459 43.6 0.00238 14.5 3.07e+03 World hIoni + 78 -21.5 -90.6 474 43.6 0.0044 15.1 3.09e+03 World hIoni + 79 -21.6 -91.1 496 43.6 0.00698 22.1 3.11e+03 World hIoni + 80 -21.9 -92 535 43.6 0.00708 38.7 3.15e+03 World hIoni + 81 -21.9 -92.1 536 43.6 0.000223 1.3 3.15e+03 World hIoni + 82 -22.2 -93.1 580 43.5 0.0109 43.7 3.19e+03 World hIoni + 83 -22.3 -93.6 598 43.5 0.00311 18.7 3.21e+03 World hIoni + 84 -22.4 -94 617 43.5 0.00373 18.5 3.23e+03 World hIoni + 85 -22.5 -94.6 639 43.5 0.00294 22.4 3.25e+03 World hIoni + 86 -22.5 -94.7 643 43.5 0.000852 3.49 3.26e+03 World hIoni + 87 -22.5 -94.7 645 43.5 0.000186 2.22 3.26e+03 World hIoni + 88 -22.6 -95.1 657 43.5 0.00367 12.7 3.27e+03 World hIoni + 89 -22.6 -95.2 665 43.5 0.000627 7.05 3.28e+03 World hIoni + 90 -22.6 -95.5 673 43.5 0.00178 8.8 3.29e+03 World hIoni + 91 -22.8 -96.5 716 43.5 0.00893 42.9 3.33e+03 World hIoni + 92 -23 -97.8 766 43.5 0.00697 49.4 3.38e+03 World hIoni + 93 -23.1 -98.5 793 43.5 0.00477 27.2 3.41e+03 World hIoni + 94 -23.2 -98.5 796 43.4 0.000538 3.44 3.41e+03 World hIoni + 95 -23.6 -101 891 43.4 0.0191 95.1 3.5e+03 World hIoni + 96 -23.6 -101 898 43.4 0.00266 7.08 3.51e+03 cloudPV CoupledTransportation + 97 -23.6 -101 900 41.2 2.19 1.5 3.51e+03 World CoupledTransportation + 98 -23.6 -102 920 41.2 0.0047 20 3.53e+03 World hIoni + 99 -23.6 -102 924 41.2 0.00111 4.22 3.54e+03 World hIoni + 100 -23.5 -105 998 41.1 0.0171 74.3 3.61e+03 World hIoni + 101 -23.5 -105 1e+03 41.1 0.000476 4.46 3.62e+03 World hIoni + 102 -23.5 -106 1.03e+03 41.1 0.00653 28.6 3.64e+03 World hIoni + 103 -23.5 -106 1.04e+03 41.1 0.00481 12 3.66e+03 World hIoni + 104 -23.5 -107 1.07e+03 41.1 0.00568 27.9 3.68e+03 World hIoni + 105 -23.5 -107 1.08e+03 41.1 0.00151 4.55 3.69e+03 World hIoni + 106 -23.4 -109 1.12e+03 41.1 0.00875 48.8 3.74e+03 World hIoni + 107 -23.4 -111 1.18e+03 41 0.0103 53.9 3.79e+03 World hIoni + 108 -23.3 -114 1.26e+03 41 0.0187 84.6 3.88e+03 World hIoni + 109 -23.2 -115 1.29e+03 41 0.00691 26.6 3.9e+03 World hIoni + 110 -23.3 -115 1.31e+03 41 0.00353 23.2 3.93e+03 World hIoni + 111 -23.3 -116 1.32e+03 41 0.00144 4.58 3.93e+03 World hIoni + 112 -23.3 -116 1.34e+03 41 0.00959 24.9 3.96e+03 World hIoni + 113 -23.4 -117 1.37e+03 41 0.00547 24.3 3.98e+03 World hIoni + 114 -23.5 -118 1.4e+03 41 0.0053 36.5 4.02e+03 World hIoni + 115 -23.5 -118 1.41e+03 41 0.000353 3.56 4.02e+03 World hIoni + 116 -23.6 -120 1.46e+03 41 0.0129 53.8 4.07e+03 World hIoni + 117 -23.6 -121 1.48e+03 41 0.00453 22.5 4.1e+03 cloudPV CoupledTransportation + 118 -23.6 -121 1.48e+03 38.5 2.47 1.68 4.1e+03 World CoupledTransportation + 119 -23.6 -121 1.49e+03 38.5 0.00337 10.2 4.11e+03 World hIoni + 120 -23.5 -123 1.57e+03 38.5 0.0133 70.5 4.18e+03 World hIoni + 121 -23.4 -123 1.59e+03 38.5 0.00574 20.2 4.2e+03 World hIoni + 122 -23.4 -124 1.59e+03 38.5 0.000251 3.42 4.2e+03 World hIoni + 123 -23.3 -125 1.63e+03 38.4 0.0107 41 4.24e+03 World hIoni + 124 -23.1 -126 1.69e+03 38.4 0.0135 61.2 4.3e+03 World hIoni + 125 -23.1 -126 1.7e+03 38.4 0.000952 6.63 4.31e+03 World hIoni + 126 -23.1 -127 1.73e+03 38.4 0.00751 30.8 4.34e+03 World hIoni + 127 -23 -128 1.77e+03 38.4 0.00919 39.4 4.38e+03 World hIoni + 128 -22.9 -130 1.86e+03 38.4 0.0185 96.9 4.48e+03 World hIoni + 129 -22.9 -132 1.93e+03 38.4 0.0138 64.6 4.54e+03 World hIoni + 130 -22.9 -132 1.94e+03 38.4 0.00171 6.04 4.55e+03 World hIoni + 131 -22.9 -133 1.95e+03 38.4 0.00287 10.9 4.56e+03 World hIoni + 132 -22.8 -134 1.98e+03 38.3 0.00653 38.7 4.6e+03 World hIoni + 133 -22.7 -135 2.03e+03 38.3 0.0101 45.4 4.64e+03 World hIoni + 134 -22.7 -138 2.14e+03 38.3 0.0257 107 4.75e+03 World hIoni + 135 -22.7 -138 2.14e+03 38.3 0.00139 6.17 4.76e+03 World hIoni + 136 -22.6 -138 2.15e+03 38.3 0.000445 5.73 4.76e+03 World hIoni + 137 -22.6 -139 2.2e+03 38.3 0.0136 45.9 4.81e+03 World hIoni + 138 -22.5 -139 2.21e+03 38.3 0.00381 13.2 4.82e+03 World hIoni + 139 -22.5 -140 2.22e+03 38.3 0.00258 16.2 4.84e+03 World hIoni + 140 -22.5 -140 2.24e+03 38.3 0.00314 13.8 4.85e+03 World hIoni + 141 -22.3 -142 2.32e+03 38.2 0.0219 86.5 4.94e+03 World hIoni + 142 -22.2 -143 2.35e+03 38.2 0.00501 25.2 4.96e+03 World hIoni + 143 -22.1 -144 2.37e+03 38.2 0.00263 22.5 4.99e+03 World hIoni + 144 -22.1 -144 2.38e+03 38.2 0.003 7.31 4.99e+03 World hIoni + 145 -21.9 -144 2.41e+03 38.2 0.00499 27.1 5.02e+03 World hIoni + 146 -21.9 -144 2.41e+03 38.2 0.000844 5.24 5.03e+03 World hIoni + 147 -21.8 -145 2.45e+03 38.2 0.00927 36.1 5.06e+03 World hIoni + 148 -21.8 -145 2.45e+03 38.2 0.000418 0.649 5.06e+03 World hIoni + 149 -21.5 -147 2.51e+03 38.1 0.0136 57.1 5.12e+03 World hIoni + 150 -21.5 -147 2.53e+03 38.1 0.00779 20.2 5.14e+03 World hIoni + 151 -21.2 -148 2.57e+03 38.1 0.0109 46.5 5.19e+03 World hIoni + 152 -21.2 -148 2.57e+03 38.1 0.000157 1.6 5.19e+03 World hIoni + 153 -21.1 -149 2.6e+03 38.1 0.00536 24.1 5.21e+03 World hIoni + 154 -21.1 -149 2.6e+03 38.1 0.00159 1.73 5.21e+03 detectorPV CoupledTransportation + 155 -21.1 -149 2.6e+03 33.1 5.01 1.5 5.22e+03 detectorPV hIoni + 156 -21.1 -149 2.6e+03 29 4.13 1.21 5.22e+03 detectorPV hIoni + 157 -21 -149 2.6e+03 24.6 4.39 0.985 5.22e+03 detectorPV hIoni + 158 -21 -149 2.6e+03 20.9 3.72 0.776 5.22e+03 detectorPV hIoni + 159 -21 -149 2.61e+03 17.6 3.25 0.619 5.22e+03 detectorPV hIoni + 160 -21 -149 2.61e+03 14.5 3.11 0.498 5.22e+03 detectorPV hIoni + 161 -21 -149 2.61e+03 11.6 2.93 0.396 5.22e+03 detectorPV hIoni + 162 -21 -149 2.61e+03 8.65 2.92 0.313 5.22e+03 detectorPV hIoni + 163 -21 -149 2.61e+03 5.89 2.76 0.242 5.22e+03 detectorPV hIoni + 164 -21 -149 2.61e+03 2.88 3.01 0.179 5.22e+03 detectorPV hIoni + 165 -21 -149 2.61e+03 0 2.88 0.0767 5.22e+03 detectorPV hIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -21.1 -149 2.6e+03 0.000999 0 0 0 World initStep + 1 -21 -149 2.6e+03 0 0.000999 0.282 0.282 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -21.2 -148 2.57e+03 0.00326 0 0 0 World initStep + 1 -20.8 -148 2.57e+03 0.00168 0.000296 0.638 0.638 World eIoni + 2 -20.8 -148 2.57e+03 0 0.00168 0.611 1.25 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 121 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -20.8 -148 2.57e+03 0.00128 0 0 0 World initStep + 1 -20.7 -148 2.57e+03 0 0.00128 0.404 0.404 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -21.5 -147 2.53e+03 0.00324 0 0 0 World initStep + 1 -21.7 -148 2.53e+03 0.00149 0.00175 1.5 1.5 World eIoni + 2 -21.9 -148 2.53e+03 0 0.00149 0.507 2.01 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -21.5 -147 2.51e+03 0.00116 0 0 0 World initStep + 1 -21.7 -147 2.51e+03 0 0.00116 0.347 0.347 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -21.8 -145 2.45e+03 0.0122 0 0 0 World initStep + 1 -22.7 -143 2.45e+03 0.0116 0.000613 3.33 3.33 World msc + 2 -24.1 -140 2.45e+03 0.0106 0.001 3.5 6.83 World msc + 3 -24.8 -137 2.45e+03 0.00961 0.000981 3.55 10.4 World msc + 4 -25.4 -137 2.45e+03 0.00736 0.000445 1.29 11.7 World eIoni + 5 -26 -137 2.45e+03 0.00408 0.000715 1.04 12.7 World eIoni + 6 -26.5 -137 2.45e+03 0.00261 0.00147 1.83 14.5 World eIoni + 7 -27 -137 2.45e+03 0 0.00261 1.2 15.7 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 118 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -26 -137 2.45e+03 0.00256 0 0 0 World initStep + 1 -26.4 -136 2.45e+03 0 0.00256 1.17 1.17 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 118 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -25.4 -137 2.45e+03 0.00181 0 0 0 World initStep + 1 -25.4 -136 2.45e+03 0 0.00181 0.686 0.686 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -21.8 -145 2.45e+03 0.00217 0 0 0 World initStep + 1 -21.8 -145 2.45e+03 0 0.00217 0.91 0.91 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -21.9 -144 2.41e+03 0.012 0 0 0 World initStep + 1 -22 -145 2.41e+03 0.00818 2.96e-05 0.269 0.269 World eIoni + 2 -22.2 -146 2.41e+03 0.00546 0.00111 1.12 1.39 World eIoni + 3 -22.9 -147 2.41e+03 0.0026 0.00286 2.3 3.69 World eIoni + 4 -23.4 -147 2.41e+03 0 0.0026 1.19 4.88 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 116 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.2 -146 2.41e+03 0.00162 0 0 0 World initStep + 1 -22.1 -146 2.41e+03 0 0.00162 0.575 0.575 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 116 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22 -145 2.41e+03 0.00383 0 0 0 World initStep + 1 -22.5 -145 2.41e+03 0.00253 0.00131 1.74 1.74 World eIoni + 2 -22.6 -145 2.41e+03 0 0.00253 1.15 2.89 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -21.9 -144 2.41e+03 0.00213 0 0 0 World initStep + 1 -21.9 -145 2.41e+03 0 0.00213 0.885 0.885 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.1 -144 2.38e+03 0.00119 0 0 0 World initStep + 1 -21.9 -144 2.38e+03 0 0.00119 0.365 0.365 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.1 -144 2.37e+03 0.00111 0 0 0 World initStep + 1 -22 -144 2.37e+03 0 0.00111 0.326 0.326 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.2 -143 2.35e+03 0.00162 0 0 0 World initStep + 1 -21.9 -143 2.35e+03 0 0.00162 0.578 0.578 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.3 -142 2.32e+03 0.0107 0 0 0 World initStep + 1 -18.9 -142 2.33e+03 0.00964 0.00103 4.52 4.52 World eIoni + 2 -17.1 -142 2.32e+03 0.00739 0.00225 4.01 8.53 World eIoni + 3 -17.9 -141 2.32e+03 0.00553 0.00185 3.02 11.5 World eIoni + 4 -18.8 -141 2.32e+03 0.00382 0.00171 2.33 13.9 World eIoni + 5 -19.5 -140 2.32e+03 0.00293 0.000886 1.73 15.6 World eIoni + 6 -19.6 -141 2.32e+03 0 0.00293 1.37 17 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.5 -140 2.24e+03 0.00185 0 0 0 World initStep + 1 -22.8 -140 2.24e+03 0 0.00185 0.708 0.708 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.5 -140 2.22e+03 0.00146 0 0 0 World initStep + 1 -22.6 -140 2.22e+03 0 0.00146 0.493 0.493 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.5 -139 2.21e+03 0.00107 0 0 0 World initStep + 1 -22.5 -140 2.21e+03 0 0.00107 0.31 0.31 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.6 -139 2.2e+03 0.0105 0 0 0 World initStep + 1 -23 -138 2.2e+03 0.0097 0.000755 1.6 1.6 World msc + 2 -24.6 -136 2.2e+03 0.00844 0.00126 2.68 4.28 World msc + 3 -26.3 -134 2.2e+03 0.00693 0.0015 3.46 7.74 World eIoni + 4 -26.9 -133 2.2e+03 0.00462 0.00232 2.84 10.6 World eIoni + 5 -26.5 -132 2.2e+03 0 0.00462 2.02 12.6 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.7 -138 2.14e+03 0.00169 0 0 0 World initStep + 1 -22.4 -138 2.14e+03 0 0.00169 0.613 0.613 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.7 -138 2.14e+03 0.00107 0 0 0 World initStep + 1 -22.8 -138 2.14e+03 0 0.00107 0.312 0.312 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.7 -135 2.03e+03 0.00118 0 0 0 World initStep + 1 -22.6 -135 2.03e+03 0 0.00118 0.358 0.358 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.8 -134 1.98e+03 0.0171 0 0 0 World initStep + 1 -21.4 -127 1.99e+03 0.0153 0.00179 8.65 8.65 World eIoni + 2 -23 -124 2e+03 0.0137 0.00167 7.35 16 World eIoni + 3 -27.6 -123 2e+03 0.0115 0.0022 6.24 22.2 World eIoni + 4 -30.3 -124 2e+03 0.00928 0.00218 4.94 27.2 World eIoni + 5 -32.5 -125 2e+03 0.00801 0.00127 3.84 31 World eIoni + 6 -33.9 -124 2.01e+03 0.00656 0.00144 3.27 34.3 World eIoni + 7 -35.2 -124 2.01e+03 0.00409 0.00248 2.7 37 World eIoni + 8 -36.1 -124 2.01e+03 0.00264 0.00145 1.83 38.8 World eIoni + 9 -35.7 -124 2.01e+03 0 0.00264 1.21 40 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.9 -132 1.94e+03 0.00102 0 0 0 World initStep + 1 -22.9 -132 1.94e+03 0 0.00102 0.29 0.29 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.9 -130 1.86e+03 0.00154 0 0 0 World initStep + 1 -22.8 -131 1.86e+03 0 0.00154 0.532 0.532 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23 -128 1.77e+03 0.00898 0 0 0 World initStep + 1 -21.5 -130 1.77e+03 0.00603 0.00295 3.7 3.7 World eIoni + 2 -20.5 -130 1.77e+03 0.00457 0.00145 2.51 6.2 World eIoni + 3 -20.5 -129 1.77e+03 0.00291 0.00166 2 8.2 World eIoni + 4 -20.4 -130 1.77e+03 0.00135 0.00156 1.36 9.56 World eIoni + 5 -20.2 -130 1.77e+03 0 0.00135 0.437 10 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.1 -127 1.73e+03 0.00372 0 0 0 World initStep + 1 -22.5 -128 1.73e+03 0.00207 0.00165 1.7 1.7 World eIoni + 2 -22.5 -128 1.73e+03 0 0.00207 0.844 2.54 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.1 -126 1.7e+03 0.00132 0 0 0 World initStep + 1 -23 -126 1.7e+03 0 0.00132 0.425 0.425 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.1 -126 1.69e+03 0.00189 0 0 0 World initStep + 1 -23.4 -126 1.69e+03 0 0.00189 0.733 0.733 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.4 -123 1.59e+03 0.00208 0 0 0 World initStep + 1 -23.2 -123 1.59e+03 0 0.00208 0.849 0.849 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.6 -121 1.49e+03 0.00618 0 0 0 World initStep + 1 -23.3 -120 1.5e+03 0.00507 0.0011 2.56 2.56 World eIoni + 2 -22.1 -120 1.49e+03 0.00296 0.00212 2.17 4.73 World eIoni + 3 -22 -121 1.49e+03 0.00155 0.0014 1.38 6.11 World eIoni + 4 -22.1 -121 1.49e+03 0 0.00155 0.54 6.65 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.6 -120 1.46e+03 0.0011 0 0 0 World initStep + 1 -23.6 -120 1.46e+03 0 0.0011 0.322 0.322 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.5 -118 1.41e+03 0.00145 0 0 0 World initStep + 1 -23.6 -119 1.41e+03 0 0.00145 0.485 0.485 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.4 -117 1.37e+03 0.00187 0 0 0 World initStep + 1 -23.4 -117 1.37e+03 0 0.00187 0.719 0.719 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.3 -116 1.34e+03 0.00187 0 0 0 World initStep + 1 -23 -116 1.34e+03 0 0.00187 0.723 0.723 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.3 -116 1.32e+03 0.00132 0 0 0 World initStep + 1 -23.2 -116 1.32e+03 0 0.00132 0.423 0.423 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.3 -115 1.31e+03 0.00184 0 0 0 World initStep + 1 -23 -116 1.31e+03 0 0.00184 0.704 0.704 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.2 -115 1.29e+03 0.00132 0 0 0 World initStep + 1 -23.3 -115 1.29e+03 0 0.00132 0.424 0.424 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.3 -114 1.26e+03 0.00126 0 0 0 World initStep + 1 -23.2 -114 1.26e+03 0 0.00126 0.396 0.396 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.4 -111 1.18e+03 0.0206 0 0 0 World initStep + 1 -28.1 -112 1.18e+03 0.0185 0.000682 7.51 7.51 World eIoni + 2 -35.5 -108 1.19e+03 0.0161 0.00244 9.75 17.3 World eIoni + 3 -39.5 -103 1.18e+03 0.0128 0.00331 7.88 25.1 World eIoni + 4 -39.3 -99.2 1.18e+03 0.0111 0.00171 5.7 30.8 World eIoni + 5 -37.9 -95.6 1.18e+03 0.00946 0.00161 4.73 35.6 World eIoni + 6 -38.1 -93.7 1.18e+03 0.00855 0.000902 3.92 39.5 World eIoni + 7 -38.8 -93.2 1.17e+03 0.00668 0.00187 3.51 43 World eIoni + 8 -38.9 -91.7 1.17e+03 0.00438 0.0023 2.75 45.7 World eIoni + 9 -38.1 -90.8 1.17e+03 0.00283 0.00155 1.93 47.7 World eIoni + 10 -38 -90.5 1.17e+03 0.00104 0.00178 1.31 49 World eIoni + 11 -38 -90.6 1.17e+03 0 0.00104 0.3 49.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 86 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -28.1 -112 1.18e+03 0.00134 0 0 0 World initStep + 1 -28.1 -112 1.18e+03 0 0.00134 0.431 0.431 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.4 -109 1.12e+03 0.00153 0 0 0 World initStep + 1 -23.4 -109 1.12e+03 0 0.00153 0.526 0.526 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.5 -107 1.08e+03 0.00636 0 0 0 World initStep + 1 -23.5 -109 1.08e+03 0.00566 0.000703 2.63 2.63 World eIoni + 2 -23.1 -111 1.08e+03 0.00456 0.0011 2.37 5 World eIoni + 3 -22.3 -111 1.07e+03 0.00302 0.00154 1.99 7 World eIoni + 4 -22.2 -111 1.07e+03 0.00173 0.0003 0.159 7.15 World eIoni + 5 -22 -111 1.07e+03 0 0.00173 0.637 7.79 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 84 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.2 -111 1.07e+03 0.000992 0 0 0 World initStep + 1 -22.2 -111 1.07e+03 0 0.000992 0.279 0.279 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.5 -107 1.07e+03 0.00507 0 0 0 World initStep + 1 -22.8 -108 1.07e+03 0.00194 0.00312 2.17 2.17 World eIoni + 2 -22.9 -109 1.07e+03 0 0.00194 0.765 2.93 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.5 -106 1.03e+03 0.00493 0 0 0 World initStep + 1 -23.5 -106 1.03e+03 0.00392 0 0.0408 0.0408 World eIoni + 2 -22.6 -106 1.03e+03 0.00281 0.00111 1.77 1.81 World eIoni + 3 -22.5 -107 1.03e+03 0.00115 0.00166 0.906 2.72 World eIoni + 4 -22.5 -107 1.03e+03 0 0.00115 0.346 3.06 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 82 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.5 -106 1.03e+03 0.00101 0 0 0 World initStep + 1 -23.5 -106 1.03e+03 0 0.00101 0.287 0.287 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.5 -105 1e+03 0.0117 0 0 0 World initStep + 1 -25 -101 1.01e+03 0.00988 0.00186 5.09 5.09 World eIoni + 2 -27.9 -99 1.01e+03 0.00782 0.00206 4.12 9.21 World eIoni + 3 -28.4 -99 1.01e+03 0.00603 0.000586 0.518 9.73 World eIoni + 4 -29 -98.8 1.01e+03 0.00436 0.000156 0.763 10.5 World eIoni + 5 -29.9 -98.6 1.01e+03 0.0029 0.00146 1.93 12.4 World eIoni + 6 -30 -98.4 1.01e+03 0 0.0029 1.35 13.8 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 81 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -29 -98.8 1.01e+03 0.00151 0 0 0 World initStep + 1 -29.1 -98.7 1.01e+03 0 0.00151 0.519 0.519 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 81 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -28.4 -99 1.01e+03 0.00121 0 0 0 World initStep + 1 -28.5 -99.1 1.01e+03 0 0.00121 0.371 0.371 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.5 -105 998 0.0495 0 0 0 World initStep + 1 -15 -104 1e+03 0.0477 0.000443 11 11 World eIoni + 2 -10.4 -104 1.01e+03 0.0462 0.000316 4.98 16 World eIoni + 3 18.4 -124 1.03e+03 0.0403 0.00589 45 61 World eIoni + 4 20.2 -125 1.03e+03 0.04 0.000291 2.6 63.6 World eIoni + 5 50.9 -137 1.03e+03 0.0311 0.00887 35 98.7 World eIoni + 6 53.2 -137 1.03e+03 0.031 0.000114 2.44 101 World eIoni + 7 72.2 -140 1.02e+03 0.0267 0.00432 22.6 124 World eIoni + 8 80.8 -149 1.01e+03 0.0234 0.00327 17.6 141 World eIoni + 9 91.5 -156 1.01e+03 0.0201 0.0033 14.2 155 World eIoni + 10 101 -155 1.01e+03 0.0187 0.00146 11.1 166 World eIoni + 11 107 -148 1.01e+03 0.0157 0.00295 9.86 176 World eIoni + 12 112 -143 1.01e+03 0.0115 0.00422 7.62 184 World eIoni + 13 115 -140 1.01e+03 0.0082 0.00329 4.96 189 World eIoni + 14 114 -139 1.01e+03 0.00624 0.00196 3.36 192 World eIoni + 15 115 -138 1e+03 0.00393 0.00231 2.58 195 World eIoni + 16 115 -137 1e+03 0 0.00393 1.77 197 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 80 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -10.4 -104 1.01e+03 0.0012 0 0 0 World initStep + 1 -10.3 -104 1.01e+03 0 0.0012 0.369 0.369 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 80 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -15 -104 1e+03 0.00139 0 0 0 World initStep + 1 -14.9 -104 1e+03 0 0.00139 0.455 0.455 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.6 -102 920 0.00137 0 0 0 World initStep + 1 -23.7 -102 920 0 0.00137 0.449 0.449 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.6 -101 891 0.0456 0 0 0 World initStep + 1 -33.9 -132 912 0.0391 0.00649 43.9 43.9 World eIoni + 2 -31.3 -150 917 0.0325 0.00367 19.2 63.2 World eIoni + 3 -31.3 -151 918 0.0303 1.98e-05 1.21 64.4 World eIoni + 4 -29.9 -165 925 0.0232 0.00308 17.9 82.3 World eIoni + 5 -27 -178 926 0.0188 0.00446 14 96.2 World eIoni + 6 -21.5 -185 930 0.0157 0.00304 9.96 106 World eIoni + 7 -14.7 -183 930 0.0129 0.00281 7.63 114 World eIoni + 8 -9.41 -184 931 0.0118 0.00109 5.79 120 World eIoni + 9 -4.77 -183 930 0.00944 0.00241 5.15 125 World eIoni + 10 -1.7 -183 930 0.00663 0.00281 3.91 129 World eIoni + 11 -0.172 -185 930 0.00594 0.000691 2.73 131 World eIoni + 12 1.3 -184 930 0.0045 0.00145 2.48 134 World eIoni + 13 2.01 -183 930 0 0.0045 1.97 136 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 137, Parent ID = 78 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -29.9 -165 925 0.00394 0 0 0 World initStep + 1 -30.6 -166 925 0.00161 0.00233 1.78 1.78 World eIoni + 2 -30.8 -166 925 0 0.00161 0.57 2.35 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 136, Parent ID = 78 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -31.3 -151 918 0.00225 0 0 0 World initStep + 1 -31.6 -151 917 0 0.00225 0.965 0.965 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 78 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -31.3 -150 917 0.00286 0 0 0 World initStep + 1 -31.3 -150 916 0 0.00286 1.33 1.33 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.2 -98.5 796 0.00147 0 0 0 World initStep + 1 -23.1 -98.4 796 0 0.00147 0.497 0.497 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23.1 -98.5 793 0.00138 0 0 0 World initStep + 1 -23 -98.5 793 0 0.00138 0.45 0.45 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -23 -97.8 766 0.00222 0 0 0 World initStep + 1 -22.9 -97.4 766 0 0.00222 0.948 0.948 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.8 -96.5 716 0.00403 0 0 0 World initStep + 1 -22.1 -95.8 716 0.00202 0.00201 1.81 1.81 World eIoni + 2 -22.4 -95.5 716 0 0.00202 0.814 2.62 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.6 -95.5 673 0.0114 0 0 0 World initStep + 1 -23.6 -99.3 675 0.00697 0.00447 4.93 4.93 World eIoni + 2 -21.8 -98.4 676 0.0056 0.00137 2.86 7.79 World eIoni + 3 -22.3 -98.5 678 0.00392 0.00168 2.35 10.1 World eIoni + 4 -23 -97.9 678 0.00308 0.000846 1.77 11.9 World eIoni + 5 -22.7 -97.3 677 0.00143 0.00165 1.43 13.3 World eIoni + 6 -22.9 -97.4 677 0 0.00143 0.477 13.8 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.6 -95.1 657 0.0071 0 0 0 World initStep + 1 -20.5 -95.4 658 0.00484 0.00226 2.91 2.91 World eIoni + 2 -19.3 -95.4 658 0.00266 0.00218 2.09 5 World eIoni + 3 -19.6 -95 658 0 0.00266 1.22 6.22 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.5 -94.7 645 0.00166 0 0 0 World initStep + 1 -22.3 -94.8 645 0 0.00166 0.596 0.596 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.5 -94.7 643 0.00457 0 0 0 World initStep + 1 -23.6 -95.3 643 0.00269 0.00188 2 2 World eIoni + 2 -23.8 -95.8 643 0 0.00269 1.24 3.24 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.5 -94.6 639 0.00244 0 0 0 World initStep + 1 -22.7 -94.2 639 0 0.00244 1.1 1.1 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.4 -94 617 0.00175 0 0 0 World initStep + 1 -22.6 -94 617 0 0.00175 0.648 0.648 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.3 -93.6 598 0.0213 0 0 0 World initStep + 1 -32.8 -97 601 0.0198 0.00156 12.2 12.2 World eIoni + 2 -34.2 -98.1 601 0.017 0.000143 1.85 14 World eIoni + 3 -38.3 -101 594 0.0144 0.0026 8.53 22.6 World eIoni + 4 -41.1 -100 589 0.0116 0.00279 6.7 29.3 World eIoni + 5 -41.8 -99.6 588 0.00983 0.000315 1.11 30.4 World eIoni + 6 -42.4 -101 585 0.00814 0.00169 4.09 34.5 World eIoni + 7 -41.9 -103 584 0.00637 0.00176 3.33 37.8 World eIoni + 8 -41.6 -105 583 0.00456 0.00181 2.63 40.4 World eIoni + 9 -42.6 -106 583 0.00199 0.00257 2 42.4 World eIoni + 10 -42.8 -106 582 0 0.00199 0.794 43.2 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -41.8 -99.6 588 0.00145 0 0 0 World initStep + 1 -42 -99.6 588 0 0.00145 0.488 0.488 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -34.2 -98.1 601 0.00266 0 0 0 World initStep + 1 -34.3 -98.4 601 0 0.00266 1.22 1.22 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22.2 -93.1 580 0.0016 0 0 0 World initStep + 1 -22.3 -93.3 580 0 0.0016 0.565 0.565 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -21.9 -92.1 536 0.00199 0 0 0 World initStep + 1 -21.6 -92.1 536 0 0.00199 0.794 0.794 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -21.9 -92 535 0.00102 0 0 0 World initStep + 1 -21.9 -91.9 535 0 0.00102 0.29 0.29 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -21.5 -90.6 474 0.00159 0 0 0 World initStep + 1 -21.5 -90.4 474 0 0.00159 0.559 0.559 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -21.3 -89.9 444 0.00124 0 0 0 World initStep + 1 -21.2 -90 444 0 0.00124 0.384 0.384 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -20.9 -88.5 387 0.00206 0 0 0 World initStep + 1 -21.2 -88.7 387 0 0.00206 0.841 0.841 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -20.8 -88.3 377 0.0012 0 0 0 World initStep + 1 -20.9 -88.2 377 0 0.0012 0.369 0.369 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -20.4 -87.1 326 0.00336 0 0 0 World initStep + 1 -19.7 -87.3 326 0.00161 0.00174 1.55 1.55 World eIoni + 2 -19.8 -87.5 326 0 0.00161 0.573 2.13 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -19.2 -83.7 194 0.0015 0 0 0 World initStep + 1 -19.2 -83.9 194 0 0.0015 0.511 0.511 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -18.7 -82.4 141 0.00259 0 0 0 World initStep + 1 -18.7 -81.9 141 0 0.00259 1.19 1.19 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -18.4 -81.4 101 0.00507 0 0 0 World initStep + 1 -17.8 -82.7 101 0.0039 0.00117 2.17 2.17 World eIoni + 2 -18.1 -81.8 101 0.00275 0.00115 1.76 3.93 World eIoni + 3 -17.8 -81.4 101 0.00127 0.00148 1.27 5.2 World eIoni + 4 -17.9 -81.6 101 0 0.00127 0.399 5.6 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -18.3 -81.2 91.1 0.00172 0 0 0 World initStep + 1 -18.5 -81.2 91.1 0 0.00172 0.632 0.632 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -18.2 -81 82.7 0.00102 0 0 0 World initStep + 1 -18.2 -81.1 82.7 0 0.00102 0.289 0.289 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -18.1 -80.6 66.9 0.00112 0 0 0 World initStep + 1 -18.2 -80.6 66.9 0 0.00112 0.33 0.33 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -18 -80.4 60 0.00254 0 0 0 World initStep + 1 -17.8 -80 60.1 0.0011 0.00144 1.15 1.15 World eIoni + 2 -17.9 -79.9 60.1 0 0.0011 0.323 1.48 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -16.9 -77.2 -75.3 0.00553 0 0 0 World initStep + 1 -15.6 -77.4 -75 0.00483 0.000702 1.49 1.49 World msc + 2 -14.6 -77.6 -75.3 0.00393 0.000893 1.17 2.66 World msc + 3 -13.8 -77.4 -75.8 0.00219 0.00174 1.78 4.43 World eIoni + 4 -14 -77.1 -75.6 0 0.00219 0.928 5.36 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -15.8 -74 -212 0.00336 0 0 0 World initStep + 1 -16 -73.3 -212 0.0021 0.00126 1.56 1.56 World eIoni + 2 -16.1 -73.2 -212 0 0.0021 0.865 2.42 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -15.2 -72.2 -291 0.000998 0 0 0 World initStep + 1 -15.2 -72.1 -291 0 0.000998 0.281 0.281 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -14.8 -71.1 -335 0.00101 0 0 0 World initStep + 1 -14.9 -71.1 -335 0 0.00101 0.285 0.285 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -14.7 -70.8 -348 0.0011 0 0 0 World initStep + 1 -14.6 -70.8 -347 0 0.0011 0.325 0.325 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -14.2 -69.3 -413 0.00207 0 0 0 World initStep + 1 -14.5 -69.1 -413 0 0.00207 0.843 0.843 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -13.6 -67.5 -498 0.00182 0 0 0 World initStep + 1 -13.4 -67.3 -498 0 0.00182 0.692 0.692 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -13.5 -67.1 -516 0.00805 0 0 0 World initStep + 1 -11.9 -68.6 -516 0.00419 0.000685 2.93 2.93 World eIoni + 2 -11 -68.2 -516 0.0029 0.00129 1.87 4.8 World eIoni + 3 -10.5 -68.4 -516 0.00165 0.00125 1.35 6.15 World eIoni + 4 -10.5 -68.5 -516 0 0.00165 0.593 6.74 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 44 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.9 -68.6 -516 0.00318 0 0 0 World initStep + 1 -11.6 -69.2 -516 0 0.00318 1.48 1.48 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -13.4 -66.9 -524 0.00544 0 0 0 World initStep + 1 -14.5 -67.9 -524 0.0031 0.00233 2.3 2.3 World eIoni + 2 -14.1 -67.5 -524 0 0.0031 1.44 3.74 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.2 -63.1 -690 0.00591 0 0 0 World initStep + 1 -12.5 -61.5 -689 0.00432 0.00159 2.46 2.46 World eIoni + 2 -12.6 -61.2 -690 0.00281 0.00151 1.91 4.37 World eIoni + 3 -13.1 -61 -691 0 0.00281 1.3 5.68 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.7 -61.6 -756 0.00153 0 0 0 World initStep + 1 -11.7 -61.8 -756 0 0.00153 0.527 0.527 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.6 -61.3 -770 0.00143 0 0 0 World initStep + 1 -11.5 -61.2 -770 0 0.00143 0.475 0.475 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.6 -61.2 -774 0.0168 0 0 0 World initStep + 1 -16.6 -65.4 -769 0.0139 0.00288 8.37 8.37 World eIoni + 2 -22.1 -67.2 -770 0.0124 0.0015 6.38 14.7 World eIoni + 3 -26.7 -67.3 -772 0.00892 0.00346 5.46 20.2 World eIoni + 4 -29.4 -68.1 -772 0.00782 0.0011 3.67 23.9 World eIoni + 5 -31.4 -68.6 -771 0.0065 0.00132 3.2 27.1 World eIoni + 6 -32.6 -68.7 -770 0.00262 0.0013 1.76 28.8 World eIoni + 7 -33 -68.6 -771 0 0.00262 1.2 30 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.6 -68.7 -770 0.00258 0 0 0 World initStep + 1 -32.7 -69.1 -770 0 0.00258 1.18 1.18 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.6 -61.1 -777 0.00584 0 0 0 World initStep + 1 -10.1 -61.8 -777 0.00443 0.00141 2.44 2.44 World eIoni + 2 -9.14 -61.1 -777 0.0019 0.00253 1.95 4.39 World eIoni + 3 -9.13 -61.1 -777 0 0.0019 0.738 5.13 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.4 -60.8 -791 0.0063 0 0 0 World initStep + 1 -11.3 -62.6 -791 0.0046 0.0017 2.6 2.6 World eIoni + 2 -10.3 -61.9 -791 0.0018 0.0028 2.01 4.61 World eIoni + 3 -10.2 -62.2 -791 0 0.0018 0.676 5.29 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.4 -60.6 -801 0.00153 0 0 0 World initStep + 1 -11.2 -60.5 -801 0 0.00153 0.53 0.53 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -10.5 -59.8 -879 0.0204 0 0 0 World initStep + 1 -10.5 -59.8 -879 0.0192 1.93e-05 0.0924 0.0924 World eIoni + 2 -10.7 -59.2 -878 0.0141 8.85e-05 0.881 0.973 World eIoni + 3 -9.93 -58.9 -876 0.0124 0.000678 2.18 3.15 World eIoni + 4 -6.66 -58.6 -872 0.00996 0.00241 5.45 8.61 World eIoni + 5 -6.73 -59.3 -869 0.008 0.00195 4.16 12.8 World eIoni + 6 -7.17 -59.9 -868 0.00664 8.83e-05 1.28 14 World eIoni + 7 -7.38 -60 -866 0.00454 0.0021 2.73 16.8 World eIoni + 8 -7.58 -60.4 -866 0.00247 0.000536 0.498 17.3 World eIoni + 9 -7.7 -60.8 -866 0.00125 0.00122 1.12 18.4 World eIoni + 10 -7.85 -60.7 -866 0 0.00125 0.392 18.8 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 35 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -7.58 -60.4 -866 0.00153 0 0 0 World initStep + 1 -7.78 -60.3 -866 0 0.00153 0.529 0.529 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 145, Parent ID = 35 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -7.17 -59.9 -868 0.00127 0 0 0 World initStep + 1 -7.23 -60.1 -868 0 0.00127 0.4 0.4 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 35 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -9.93 -58.9 -876 0.00104 0 0 0 World initStep + 1 -9.98 -58.8 -876 0 0.00104 0.299 0.299 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 35 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -10.7 -59.2 -878 0.00502 0 0 0 World initStep + 1 -11.8 -58.5 -878 0.00382 0.0012 2.15 2.15 World eIoni + 2 -12.6 -58.9 -877 0.00184 0.00198 1.74 3.89 World eIoni + 3 -12.7 -58.7 -877 0 0.00184 0.704 4.59 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 142, Parent ID = 35 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -10.5 -59.8 -879 0.00121 0 0 0 World initStep + 1 -10.6 -59.7 -879 0 0.00121 0.373 0.373 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -9.84 -59.4 -942 0.00116 0 0 0 World initStep + 1 -9.97 -59.4 -942 0 0.00116 0.348 0.348 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -9.28 -59 -993 0.00286 0 0 0 World initStep + 1 -9.84 -59.2 -993 0 0.00286 1.33 1.33 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -9.12 -58.9 -1.01e+03 0.00105 0 0 0 World initStep + 1 -9.1 -58.7 -1.01e+03 0 0.00105 0.302 0.302 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -8.42 -58.4 -1.07e+03 0.00179 0 0 0 World initStep + 1 -8.59 -58.2 -1.07e+03 0 0.00179 0.671 0.671 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -7.48 -57.8 -1.16e+03 0.00233 0 0 0 World initStep + 1 -7.11 -58 -1.16e+03 0 0.00233 1.02 1.02 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -7.47 -57.8 -1.16e+03 0.00136 0 0 0 World initStep + 1 -7.45 -57.9 -1.16e+03 0 0.00136 0.443 0.443 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -6.25 -56.8 -1.28e+03 0.00163 0 0 0 World initStep + 1 -6.05 -56.9 -1.28e+03 0 0.00163 0.583 0.583 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -5.99 -56.6 -1.31e+03 0.00112 0 0 0 World initStep + 1 -6.08 -56.7 -1.31e+03 0 0.00112 0.331 0.331 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -5.75 -56.4 -1.34e+03 0.00234 0 0 0 World initStep + 1 -5.36 -56.2 -1.34e+03 0 0.00234 1.03 1.03 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -5.14 -55.9 -1.4e+03 0.00123 0 0 0 World initStep + 1 -5 -55.9 -1.4e+03 0 0.00123 0.382 0.382 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -4.6 -55.4 -1.46e+03 0.0427 0 0 0 World initStep + 1 8.1 -42.2 -1.43e+03 0.0385 0.00423 39.2 39.2 World eIoni + 2 9.25 -29.2 -1.4e+03 0.0338 0.00463 32.7 72 World eIoni + 3 -13.3 -35.2 -1.41e+03 0.0288 0.00503 26.2 98.2 World eIoni + 4 -14.7 -34.8 -1.41e+03 0.0272 2.92e-05 1.65 99.9 World eIoni + 5 -28.9 -35.5 -1.42e+03 0.0239 0.00332 18.1 118 World eIoni + 6 -32.3 -26.4 -1.43e+03 0.0214 0.00245 14.6 133 World eIoni + 7 -35.1 -20.7 -1.43e+03 0.02 0.00145 7.53 140 World eIoni + 8 -42.6 -18.6 -1.44e+03 0.0185 0.00145 11 151 World eIoni + 9 -48.6 -18.4 -1.45e+03 0.0173 0.00119 9.75 161 World eIoni + 10 -51.8 -18.8 -1.45e+03 0.0148 0.00143 3.28 164 World eIoni + 11 -57.3 -21.8 -1.45e+03 0.0128 0.00195 6.96 171 World eIoni + 12 -61.7 -23.7 -1.45e+03 0.0109 0.00193 5.71 177 World eIoni + 13 -63.2 -23.7 -1.45e+03 0.00883 0.000965 2.29 179 World eIoni + 14 -64.2 -21.3 -1.45e+03 0.00716 0.00168 3.63 183 World eIoni + 15 -64 -20.9 -1.45e+03 0.00529 0.000385 0.458 183 World eIoni + 16 -62.8 -20 -1.45e+03 0.0036 0.00169 2.25 185 World eIoni + 17 -62.1 -20.5 -1.45e+03 0.00175 0.00185 1.65 187 World eIoni + 18 -62.3 -20.6 -1.45e+03 0 0.00175 0.652 188 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 150, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -64 -20.9 -1.45e+03 0.00148 0 0 0 World initStep + 1 -64 -20.9 -1.45e+03 0 0.00148 0.502 0.502 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 149, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -63.2 -23.7 -1.45e+03 0.00109 0 0 0 World initStep + 1 -63.3 -23.8 -1.45e+03 0 0.00109 0.317 0.317 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 148, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -51.8 -18.8 -1.45e+03 0.00114 0 0 0 World initStep + 1 -51.8 -18.7 -1.45e+03 0 0.00114 0.34 0.34 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 147, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -14.7 -34.8 -1.41e+03 0.00159 0 0 0 World initStep + 1 -14.6 -34.9 -1.41e+03 0 0.00159 0.561 0.561 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -4.41 -55.2 -1.48e+03 0.0021 0 0 0 World initStep + 1 -4.75 -55.1 -1.48e+03 0 0.0021 0.865 0.865 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -4.18 -55 -1.51e+03 0.00145 0 0 0 World initStep + 1 -4.04 -54.9 -1.51e+03 0 0.00145 0.486 0.486 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -4.08 -54.9 -1.52e+03 0.00106 0 0 0 World initStep + 1 -4.08 -55 -1.52e+03 0 0.00106 0.307 0.307 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -4 -54.8 -1.53e+03 0.00114 0 0 0 World initStep + 1 -4.03 -55 -1.53e+03 0 0.00114 0.339 0.339 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -3.12 -54.2 -1.63e+03 0.000992 0 0 0 World initStep + 1 -3.2 -54.2 -1.63e+03 0 0.000992 0.279 0.279 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.88 -54 -1.66e+03 0.00128 0 0 0 World initStep + 1 -2.85 -53.8 -1.66e+03 0 0.00128 0.402 0.402 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.38 -53.5 -1.72e+03 0.00128 0 0 0 World initStep + 1 -2.28 -53.6 -1.72e+03 0 0.00128 0.403 0.403 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.34 -48.8 -2.06e+03 0.00146 0 0 0 World initStep + 1 -2.53 -48.8 -2.06e+03 0 0.00146 0.494 0.494 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.42 -48.8 -2.14e+03 0.00636 0 0 0 World initStep + 1 -2.95 -47.1 -2.14e+03 0.00535 0.00101 2.63 2.63 World eIoni + 2 -3.95 -46 -2.14e+03 0.00445 0.000899 2.27 4.89 World eIoni + 3 -3.93 -44.8 -2.14e+03 0.0019 0.00255 1.96 6.85 World eIoni + 4 -4.06 -44.8 -2.14e+03 0 0.0019 0.738 7.59 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.46 -48.8 -2.22e+03 0.00313 0 0 0 World initStep + 1 -3.12 -48.6 -2.21e+03 0.00209 0.00104 1.46 1.46 World eIoni + 2 -3.39 -48.6 -2.22e+03 0 0.00209 0.86 2.32 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.46 -48.9 -2.23e+03 0.00248 0 0 0 World initStep + 1 -2.03 -49 -2.23e+03 0.00102 0.00146 1.12 1.12 World eIoni + 2 -1.98 -49.1 -2.23e+03 0 0.00102 0.291 1.41 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.48 -48.9 -2.29e+03 0.0118 0 0 0 World initStep + 1 -3.08 -52.1 -2.29e+03 0.0095 0.00225 5.1 5.1 World eIoni + 2 -1.02 -55 -2.29e+03 0.00801 0.00149 3.94 9.04 World eIoni + 3 0.476 -57 -2.29e+03 0.00542 0.00259 3.28 12.3 World eIoni + 4 0.7 -57.9 -2.29e+03 0.00271 0.00133 1.88 14.2 World eIoni + 5 1.15 -58.1 -2.29e+03 0 0.00271 1.25 15.4 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 151, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.7 -57.9 -2.29e+03 0.00139 0 0 0 World initStep + 1 0.665 -58 -2.29e+03 0 0.00139 0.455 0.455 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.48 -49 -2.32e+03 0.00139 0 0 0 World initStep + 1 -2.33 -48.9 -2.32e+03 0 0.00139 0.455 0.455 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.5 -49 -2.37e+03 0.00171 0 0 0 World initStep + 1 -2.61 -48.8 -2.37e+03 0 0.00171 0.626 0.626 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.5 -49 -2.38e+03 0.00208 0 0 0 World initStep + 1 -2.83 -49.1 -2.38e+03 0 0.00208 0.854 0.854 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.51 -49 -2.41e+03 0.00189 0 0 0 World initStep + 1 -2.73 -49.2 -2.41e+03 0 0.00189 0.735 0.735 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.52 -49 -2.43e+03 0.00306 0 0 0 World initStep + 1 -1.93 -48.7 -2.43e+03 0 0.00306 1.42 1.42 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.51 -49 -2.47e+03 0.00151 0 0 0 World initStep + 1 -2.52 -48.8 -2.47e+03 0 0.00151 0.518 0.518 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.51 -49 -2.48e+03 0.00125 0 0 0 World initStep + 1 -2.48 -48.9 -2.48e+03 0 0.00125 0.391 0.391 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.47 -49 -2.55e+03 0.00105 0 0 0 World initStep + 1 -2.49 -49.1 -2.55e+03 0 0.00105 0.301 0.301 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.45 -49 -2.6e+03 0.00125 0 0 0 World initStep + 1 -2.35 -48.9 -2.6e+03 0 0.00125 0.392 0.392 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.45 -49 -2.6e+03 0.0011 0 0 0 World initStep + 1 -2.5 -48.9 -2.6e+03 0 0.0011 0.324 0.324 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -29.8 18.8 -2.61e+03 50 0 0 0 World initStep + 1 -29.8 18.8 -2.53e+03 50 0.0153 80 80 World hIoni + 2 -29.8 18.8 -2.51e+03 50 0.00523 26 106 World hIoni + 3 -29.9 18.8 -2.45e+03 49.9 0.0104 61.4 167 World hIoni + 4 -29.9 18.8 -2.44e+03 49.9 0.00027 3.27 171 World hIoni + 5 -30 18.8 -2.39e+03 49.9 0.0112 55.2 226 World hIoni + 6 -30 18.8 -2.37e+03 49.9 0.00233 19.4 245 World hIoni + 7 -30 18.7 -2.29e+03 49.9 0.0148 81.3 327 World hIoni + 8 -30 18.7 -2.27e+03 49.9 0.00135 11.8 338 World hIoni + 9 -30.1 18.6 -2.24e+03 49.9 0.00704 38.9 377 World hIoni + 10 -30.2 18.3 -2.07e+03 49.9 0.031 165 542 World hIoni + 11 -30.5 18 -1.96e+03 49.8 0.0174 109 651 World hIoni + 12 -30.5 18 -1.95e+03 49.8 0.00163 8.34 659 World hIoni + 13 -30.5 18 -1.95e+03 49.7 0.00081 5.37 665 World hIoni + 14 -30.5 17.9 -1.95e+03 49.7 0.000531 1.37 666 World hIoni + 15 -30.5 17.9 -1.94e+03 49.7 0.000534 6.94 673 World hIoni + 16 -30.6 17.7 -1.87e+03 49.7 0.0138 70.5 744 World hIoni + 17 -30.9 17.3 -1.78e+03 49.7 0.0168 87 831 cloudPV CoupledTransportation + 18 -30.9 17.3 -1.78e+03 48.9 0.798 0.639 831 World CoupledTransportation + 19 -30.9 17.4 -1.77e+03 48.9 0.00329 9.63 841 World hIoni + 20 -31.1 17.5 -1.74e+03 48.9 0.00603 34.3 875 World hIoni + 21 -31.4 17.6 -1.69e+03 48.9 0.00873 43.6 919 World hIoni + 22 -31.8 17.9 -1.61e+03 48.9 0.0126 82.4 1e+03 World hIoni + 23 -32.3 17.9 -1.55e+03 48.8 0.0118 65.4 1.07e+03 World hIoni + 24 -32.6 17.9 -1.51e+03 48.8 0.00351 31.3 1.1e+03 World hIoni + 25 -35.2 17.7 -1.26e+03 48.8 0.0476 253 1.35e+03 cloudPV CoupledTransportation + 26 -35.3 17.7 -1.26e+03 47.3 1.54 1.26 1.35e+03 World CoupledTransportation + 27 -35.4 17.7 -1.25e+03 47.3 0.00194 12.4 1.36e+03 World hIoni + 28 -36 17.6 -1.2e+03 47.2 0.00615 50.9 1.42e+03 World hIoni + 29 -36.5 17.6 -1.15e+03 47.2 0.00836 46.6 1.46e+03 World hIoni + 30 -36.7 17.6 -1.14e+03 47.2 0.0024 15.4 1.48e+03 World hIoni + 31 -37 17.6 -1.11e+03 47.2 0.00473 22.9 1.5e+03 World hIoni + 32 -37.4 17.6 -1.08e+03 47.2 0.00637 31.3 1.53e+03 World hIoni + 33 -37.7 17.6 -1.06e+03 47.2 0.0051 21.5 1.55e+03 World hIoni + 34 -38.1 17.6 -1.03e+03 47.2 0.0073 30.7 1.58e+03 World hIoni + 35 -40.2 17.7 -865 47.2 0.0292 164 1.75e+03 World hIoni + 36 -40.4 17.8 -851 47.1 0.00251 14.7 1.76e+03 World hIoni + 37 -40.8 17.8 -822 47.1 0.00424 28.8 1.79e+03 World hIoni + 38 -41.3 17.9 -782 47.1 0.00573 39.8 1.83e+03 World hIoni + 39 -41.6 17.9 -765 47.1 0.00418 16.8 1.85e+03 World hIoni + 40 -41.6 17.9 -758 47.1 0.000963 7.08 1.85e+03 World hIoni + 41 -41.8 17.9 -743 47.1 0.000962 15.6 1.87e+03 World hIoni + 42 -41.9 17.9 -740 47.1 0.000231 2.48 1.87e+03 World hIoni + 43 -42.2 17.9 -716 47.1 0.00641 23.6 1.9e+03 World hIoni + 44 -42.8 18 -668 47.1 0.00833 48.1 1.94e+03 World hIoni + 45 -43.6 18 -604 47.1 0.0119 64.2 2.01e+03 World hIoni + 46 -45.5 17.8 -456 47 0.0338 148 2.16e+03 World hIoni + 47 -45.5 17.8 -449 47 0.00118 6.37 2.16e+03 World hIoni + 48 -45.8 17.8 -435 47 0.00245 14.4 2.18e+03 World hIoni + 49 -46.8 17.9 -361 47 0.0115 73.8 2.25e+03 World hIoni + 50 -47.1 17.9 -342 47 0.00244 18.9 2.27e+03 World hIoni + 51 -47.9 18 -292 47 0.00943 50.1 2.32e+03 World hIoni + 52 -48.4 18 -255 46.9 0.00718 37.3 2.36e+03 World hIoni + 53 -48.5 18 -250 46.9 0.000405 5.32 2.36e+03 World hIoni + 54 -50 18 -149 46.9 0.0207 101 2.46e+03 World hIoni + 55 -50 18 -148 46.9 2.45e-05 0.753 2.46e+03 World hIoni + 56 -50 18 -146 46.9 0.000242 2.15 2.47e+03 World hIoni + 57 -50.8 18 -98.2 46.9 0.00917 47.5 2.51e+03 World hIoni + 58 -50.8 18 -97.6 46.9 0.000144 0.643 2.52e+03 World hIoni + 59 -51 18.1 -77.4 46.9 0.00303 20.2 2.54e+03 World hIoni + 60 -51.2 18.1 -65.9 46.9 0.00346 11.5 2.55e+03 World hIoni + 61 -51.2 18.1 -63.9 46.9 0.000404 2 2.55e+03 World hIoni + 62 -52.2 18.1 0.412 46.9 0.015 64.3 2.61e+03 World hIoni + 63 -54.8 18.3 174 46.8 0.0391 174 2.79e+03 World hIoni + 64 -55.2 18.4 195 46.8 0.00249 21 2.81e+03 World hIoni + 65 -55.6 18.4 223 46.8 0.00557 28 2.84e+03 World hIoni + 66 -55.8 18.4 231 46.8 0.000775 7.62 2.84e+03 World hIoni + 67 -56.2 18.5 258 46.8 0.00511 27.4 2.87e+03 World hIoni + 68 -56.3 18.5 260 46.8 0.00012 1.55 2.87e+03 World hIoni + 69 -56.8 18.6 293 46.8 0.00577 33.2 2.91e+03 World hIoni + 70 -57 18.6 303 46.8 0.00147 9.87 2.92e+03 World hIoni + 71 -57.3 18.6 316 46.8 0.00154 13.4 2.93e+03 World hIoni + 72 -57.3 18.6 316 46.8 1.94e-05 0.307 2.93e+03 World hIoni + 73 -57.8 18.7 345 46.8 0.00731 28.8 2.96e+03 World hIoni + 74 -57.8 18.7 349 46.8 0.000402 4 2.96e+03 World hIoni + 75 -57.9 18.7 353 46.8 0.00163 4.08 2.97e+03 World hIoni + 76 -58.6 18.8 393 46.8 0.0077 39.5 3.01e+03 World hIoni + 77 -58.9 18.8 408 46.8 0.00285 15.1 3.02e+03 World hIoni + 78 -59.2 18.9 424 46.7 0.0048 15.7 3.04e+03 World hIoni + 79 -60.8 19.2 512 46.7 0.0179 88 3.12e+03 World hIoni + 80 -61 19.2 521 46.7 0.00424 9.12 3.13e+03 World hIoni + 81 -61.1 19.2 526 46.7 0.000239 5.04 3.14e+03 World hIoni + 82 -61.2 19.2 533 46.7 0.00221 7 3.15e+03 World hIoni + 83 -62 19.4 575 46.7 0.00838 42 3.19e+03 World hIoni + 84 -62.6 19.5 610 46.7 0.0053 35.2 3.22e+03 World hIoni + 85 -65.5 19.9 767 46.7 0.0284 157 3.38e+03 World hIoni + 86 -66 20 794 46.7 0.00449 26.9 3.41e+03 World hIoni + 87 -66.4 20 814 46.7 0.00319 20.5 3.43e+03 World hIoni + 88 -66.7 20.1 831 46.6 0.00231 16.6 3.44e+03 World hIoni + 89 -67.8 20.3 897 46.6 0.0105 66 3.51e+03 World hIoni + 90 -68.3 20.5 929 46.6 0.00625 32.2 3.54e+03 World hIoni + 91 -68.4 20.5 935 46.6 0.00233 5.84 3.55e+03 World hIoni + 92 -68.6 20.6 945 46.6 0.00183 9.78 3.56e+03 World hIoni + 93 -68.9 20.7 965 46.6 0.00393 20.2 3.58e+03 cloudPV CoupledTransportation + 94 -68.9 20.7 966 45.5 1.16 0.856 3.58e+03 World CoupledTransportation + 95 -69.3 20.7 988 45.4 0.00267 22.4 3.6e+03 World hIoni + 96 -70 20.8 1.03e+03 45.4 0.00787 37.7 3.64e+03 World hIoni + 97 -70.1 20.8 1.03e+03 45.4 0.000399 4.83 3.64e+03 World hIoni + 98 -70.6 20.9 1.06e+03 45.4 0.00594 32.5 3.68e+03 World hIoni + 99 -73 21.4 1.19e+03 45.4 0.0289 132 3.81e+03 World hIoni + 100 -73.8 21.6 1.24e+03 45.4 0.00961 42.7 3.85e+03 World hIoni + 101 -74.1 21.6 1.26e+03 45.3 0.003 21 3.87e+03 World hIoni + 102 -74.7 21.7 1.29e+03 45.3 0.00948 35.6 3.91e+03 World hIoni + 103 -76.2 22.1 1.38e+03 45.3 0.0193 86.8 3.99e+03 World hIoni + 104 -76.3 22.1 1.39e+03 45.3 0.000206 4.83 4e+03 World hIoni + 105 -77.1 22.3 1.43e+03 45.2 0.0105 45.9 4.04e+03 World hIoni + 106 -77.3 22.4 1.45e+03 45.2 0.00219 14.2 4.06e+03 World hIoni + 107 -77.7 22.5 1.47e+03 45.2 0.00309 22.7 4.08e+03 World hIoni + 108 -78.7 22.8 1.52e+03 45.2 0.0101 56.2 4.14e+03 World hIoni + 109 -78.8 22.8 1.53e+03 45.2 0.00138 6.11 4.14e+03 World hIoni + 110 -79.4 23 1.56e+03 45.2 0.00513 33 4.18e+03 World hIoni + 111 -79.8 23.1 1.59e+03 45.2 0.00254 23.7 4.2e+03 World hIoni + 112 -79.9 23.2 1.6e+03 45.2 0.00185 9.83 4.21e+03 World hIoni + 113 -80.1 23.3 1.61e+03 45.2 0.00182 12 4.22e+03 World hIoni + 114 -80.7 23.4 1.64e+03 45.2 0.00443 34.1 4.26e+03 World hIoni + 115 -81 23.5 1.66e+03 45.2 0.00281 16 4.27e+03 World hIoni + 116 -81.6 23.6 1.69e+03 45.2 0.00603 34.3 4.31e+03 World hIoni + 117 -81.8 23.7 1.71e+03 45.2 0.00258 11.7 4.32e+03 World hIoni + 118 -81.8 23.7 1.71e+03 45.2 0.000981 2.42 4.32e+03 World hIoni + 119 -83 24 1.77e+03 45.2 0.0116 65.3 4.39e+03 World hIoni + 120 -83 24 1.78e+03 45.2 0.000559 3.08 4.39e+03 World hIoni + 121 -83.1 24 1.78e+03 45.2 0.00123 5.33 4.39e+03 World hIoni + 122 -83.2 24 1.78e+03 45.2 0.00184 3.06 4.4e+03 cloudPV CoupledTransportation + 123 -83.2 24 1.79e+03 42.4 2.76 1.99 4.4e+03 World CoupledTransportation + 124 -84 24 1.82e+03 42.4 0.00724 36.5 4.44e+03 World hIoni + 125 -84.3 24 1.84e+03 42.4 0.00277 17.2 4.45e+03 World hIoni + 126 -87.8 23.9 2e+03 42.4 0.0307 163 4.62e+03 World hIoni + 127 -88.2 23.9 2.02e+03 42.4 0.00307 21.3 4.64e+03 World hIoni + 128 -88.8 23.9 2.06e+03 42.3 0.0072 31.9 4.67e+03 World hIoni + 129 -89 23.9 2.07e+03 42.3 0.00291 9.76 4.68e+03 World hIoni + 130 -89.2 23.9 2.07e+03 42.3 0.000508 5.65 4.69e+03 World hIoni + 131 -90 23.9 2.12e+03 42.3 0.00891 43.4 4.73e+03 World hIoni + 132 -90.3 23.9 2.13e+03 42.3 0.00354 11.6 4.74e+03 World hIoni + 133 -91.1 23.9 2.17e+03 42.3 0.00671 40.5 4.78e+03 World hIoni + 134 -91.7 23.9 2.2e+03 42.3 0.00562 29 4.81e+03 World hIoni + 135 -92 23.9 2.21e+03 42.3 0.00293 15.6 4.83e+03 World hIoni + 136 -94.1 24 2.33e+03 42.3 0.0242 115 4.94e+03 World hIoni + 137 -95.3 24.2 2.39e+03 42.2 0.0144 66 5.01e+03 World hIoni + 138 -95.4 24.2 2.4e+03 42.2 0.000847 5.09 5.01e+03 World hIoni + 139 -95.6 24.2 2.4e+03 42.2 0.00106 6.3 5.02e+03 World hIoni + 140 -95.8 24.2 2.42e+03 42.2 0.00268 14.9 5.03e+03 World hIoni + 141 -96.4 24.2 2.45e+03 42.2 0.00501 31.3 5.06e+03 cloudPV CoupledTransportation + 142 -96.4 24.2 2.45e+03 40.3 1.98 1.42 5.07e+03 World CoupledTransportation + 143 -98.3 24.7 2.51e+03 40.2 0.0107 57.3 5.12e+03 World hIoni + 144 -98.4 24.7 2.51e+03 40.2 0.00041 2.1 5.12e+03 World hIoni + 145 -98.8 24.8 2.52e+03 40.2 0.00229 12.6 5.14e+03 World hIoni + 146 -99 24.9 2.53e+03 40.2 0.000915 5.51 5.14e+03 World hIoni + 147 -99.3 24.9 2.54e+03 40.2 0.00317 12 5.15e+03 World hIoni + 148 -99.9 25 2.56e+03 40.2 0.00325 19.6 5.17e+03 World hIoni + 149 -100 25.1 2.56e+03 40.2 0.000483 2.32 5.18e+03 World hIoni + 150 -100 25.1 2.57e+03 40.2 0.000802 6.32 5.18e+03 World hIoni + 151 -100 25.1 2.58e+03 40.2 0.000573 6.76 5.19e+03 World hIoni + 152 -101 25.2 2.59e+03 40.2 0.00201 10.5 5.2e+03 World hIoni + 153 -101 25.3 2.6e+03 40.2 0.00304 12.7 5.21e+03 detectorPV CoupledTransportation + 154 -101 25.3 2.6e+03 35 5.11 1.64 5.21e+03 detectorPV hIoni + 155 -101 25.3 2.6e+03 30.2 4.87 1.32 5.22e+03 detectorPV hIoni + 156 -101 25.3 2.6e+03 25.9 4.3 1.05 5.22e+03 detectorPV hIoni + 157 -101 25.3 2.6e+03 21.9 3.96 0.834 5.22e+03 detectorPV hIoni + 158 -101 25.3 2.61e+03 18.4 3.53 0.662 5.22e+03 detectorPV hIoni + 159 -101 25.3 2.61e+03 15.2 3.17 0.526 5.22e+03 detectorPV hIoni + 160 -101 25.3 2.61e+03 12.4 2.83 0.419 5.22e+03 detectorPV hIoni + 161 -101 25.2 2.61e+03 9.56 2.83 0.335 5.22e+03 detectorPV hIoni + 162 -101 25.2 2.61e+03 6.76 2.81 0.263 5.22e+03 detectorPV hIoni + 163 -101 25.2 2.61e+03 3.78 2.98 0.199 5.22e+03 detectorPV hIoni + 164 -101 25.2 2.61e+03 0.221 3.56 0.117 5.22e+03 detectorPV hIoni + 165 -101 25.2 2.61e+03 0 0.221 0.00213 5.22e+03 detectorPV hIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -101 25.2 2.59e+03 0.0131 0 0 0 World initStep + 1 -105 22.7 2.59e+03 0.00774 0.00233 5.73 5.73 World eIoni + 2 -108 22.3 2.59e+03 0.00626 0.00148 3.16 8.89 World eIoni + 3 -109 23.1 2.59e+03 0.00454 0.00172 2.59 11.5 World eIoni + 4 -109 23.7 2.59e+03 0.00283 0.00171 1.99 13.5 World eIoni + 5 -110 23.8 2.59e+03 0.00101 0.00182 1.32 14.8 World eIoni + 6 -110 23.8 2.59e+03 0 0.00101 0.288 15.1 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 120 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -105 22.7 2.59e+03 0.00303 0 0 0 World initStep + 1 -105 22.1 2.59e+03 0 0.00303 1.41 1.41 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -100 25.1 2.58e+03 0.00108 0 0 0 World initStep + 1 -100 25 2.58e+03 0 0.00108 0.317 0.317 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -100 25.1 2.57e+03 0.00536 0 0 0 World initStep + 1 -98.8 24.9 2.57e+03 0.00427 0.00109 2.27 2.27 World eIoni + 2 -98.7 24 2.57e+03 0.00314 0.00113 1.89 4.16 World eIoni + 3 -98.4 23.4 2.57e+03 0 0.00314 1.46 5.63 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -100 25.1 2.56e+03 0.0165 0 0 0 World initStep + 1 -104 20.6 2.57e+03 0.0145 0.00204 8.2 8.2 World eIoni + 2 -107 16.4 2.57e+03 0.0122 0.00227 6.77 15 World eIoni + 3 -108 12.4 2.57e+03 0.0111 0.00109 5.37 20.3 World eIoni + 4 -110 10.6 2.57e+03 0.00729 0.000867 2.35 22.7 World eIoni + 5 -110 10.5 2.57e+03 0.00719 0.000102 0.17 22.9 World eIoni + 6 -110 8.42 2.57e+03 0.00526 0.00192 2.94 25.8 World eIoni + 7 -111 7.59 2.57e+03 0.00453 0.000733 2.24 28 World eIoni + 8 -112 6.9 2.57e+03 0.00249 0.00204 1.99 30 World eIoni + 9 -112 6.51 2.57e+03 0 0.00249 1.13 31.2 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 117 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -110 10.6 2.57e+03 0.00297 0 0 0 World initStep + 1 -110 10.7 2.57e+03 0 0.00297 1.38 1.38 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -99.9 25 2.56e+03 0.00129 0 0 0 World initStep + 1 -99.8 24.9 2.56e+03 0 0.00129 0.409 0.409 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -99.3 24.9 2.54e+03 0.00481 0 0 0 World initStep + 1 -98.7 23.8 2.54e+03 0.0027 0.00211 2.08 2.08 World eIoni + 2 -98.5 23.6 2.54e+03 0 0.0027 1.25 3.33 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -99 24.9 2.53e+03 0.00155 0 0 0 World initStep + 1 -99.2 24.9 2.53e+03 0 0.00155 0.541 0.541 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -98.8 24.8 2.52e+03 0.0202 0 0 0 World initStep + 1 -98.4 35 2.53e+03 0.0177 0.00249 11.1 11.1 World eIoni + 2 -95.4 42.2 2.53e+03 0.0155 0.0022 9.09 20.2 World eIoni + 3 -94.7 43.3 2.53e+03 0.0142 0.000127 1.25 21.5 World eIoni + 4 -93.1 48.4 2.53e+03 0.0123 0.00198 6.6 28.1 World eIoni + 5 -90.9 51.7 2.53e+03 0.0112 0.00105 5.38 33.5 World eIoni + 6 -89.9 55.4 2.53e+03 0.0104 0.000841 4.8 38.3 World eIoni + 7 -88.4 58 2.53e+03 0.00907 0.00129 4.36 42.6 World eIoni + 8 -87.4 58.4 2.53e+03 0.00722 0.000644 1.74 44.4 World eIoni + 9 -86.7 59 2.53e+03 0.00536 0.00186 2.95 47.3 World eIoni + 10 -87.7 59.8 2.53e+03 0.00351 0.00185 2.27 49.6 World eIoni + 11 -88.1 59.8 2.53e+03 0 0.00351 1.12 50.7 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 113 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -87.4 58.4 2.53e+03 0.00121 0 0 0 World initStep + 1 -87.5 58.4 2.53e+03 0 0.00121 0.37 0.37 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 113 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -94.7 43.3 2.53e+03 0.00114 0 0 0 World initStep + 1 -94.6 43.2 2.53e+03 0 0.00114 0.342 0.342 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -98.4 24.7 2.51e+03 0.00199 0 0 0 World initStep + 1 -98.1 24.9 2.51e+03 0 0.00199 0.794 0.794 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -98.3 24.7 2.51e+03 0.00118 0 0 0 World initStep + 1 -98.4 24.8 2.51e+03 0 0.00118 0.358 0.358 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -95.6 24.2 2.4e+03 0.00104 0 0 0 World initStep + 1 -95.6 24.1 2.4e+03 0 0.00104 0.297 0.297 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -95.3 24.2 2.39e+03 0.00451 0 0 0 World initStep + 1 -94.5 24.9 2.39e+03 0.00115 0.00336 1.98 1.98 World eIoni + 2 -94.4 25 2.39e+03 0 0.00115 0.344 2.32 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -94.1 24 2.33e+03 0.00121 0 0 0 World initStep + 1 -94 24.1 2.33e+03 0 0.00121 0.372 0.372 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -91.7 23.9 2.2e+03 0.00463 0 0 0 World initStep + 1 -92.9 24.1 2.2e+03 0.0019 0.00273 2.02 2.02 World eIoni + 2 -93.1 23.9 2.2e+03 0 0.0019 0.736 2.75 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -90.3 23.9 2.13e+03 0.0153 0 0 0 World initStep + 1 -93.9 26.9 2.13e+03 0.0124 0.00289 7.3 7.3 World eIoni + 2 -98.4 28.7 2.13e+03 0.0107 0.00163 5.46 12.8 World eIoni + 3 -99 29.1 2.13e+03 0.00878 2.51e-05 0.692 13.5 World eIoni + 4 -102 29.7 2.13e+03 0.00786 0.000923 3.61 17.1 World eIoni + 5 -104 28.9 2.13e+03 0.00647 0.00139 3.21 20.3 World eIoni + 6 -105 27.9 2.13e+03 0.00297 0.000926 2.37 22.6 World eIoni + 7 -106 27.7 2.13e+03 0.00135 0.00163 1.39 24 World eIoni + 8 -106 27.6 2.13e+03 0 0.00135 0.435 24.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 106 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -105 27.9 2.13e+03 0.00257 0 0 0 World initStep + 1 -105 27.6 2.13e+03 0.00113 0.00144 1.17 1.17 World eIoni + 2 -105 27.7 2.13e+03 0 0.00113 0.336 1.51 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 106 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -99 29.1 2.13e+03 0.00194 0 0 0 World initStep + 1 -98.9 29.3 2.13e+03 0 0.00194 0.763 0.763 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -90 23.9 2.12e+03 0.00228 0 0 0 World initStep + 1 -90.4 23.7 2.12e+03 0 0.00228 0.986 0.986 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89.2 23.9 2.07e+03 0.00125 0 0 0 World initStep + 1 -89.3 23.9 2.07e+03 0 0.00125 0.392 0.392 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89 23.9 2.07e+03 0.00195 0 0 0 World initStep + 1 -88.9 23.6 2.07e+03 0 0.00195 0.768 0.768 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -88.8 23.9 2.06e+03 0.00245 0 0 0 World initStep + 1 -88.8 23.4 2.06e+03 0 0.00245 1.1 1.1 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -84.3 24 1.84e+03 0.000992 0 0 0 World initStep + 1 -84.2 24.1 1.84e+03 0 0.000992 0.279 0.279 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -84 24 1.82e+03 0.00148 0 0 0 World initStep + 1 -84.1 24.2 1.82e+03 0 0.00148 0.503 0.503 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83 24 1.78e+03 0.00103 0 0 0 World initStep + 1 -83 23.9 1.78e+03 0 0.00103 0.295 0.295 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83 24 1.77e+03 0.00344 0 0 0 World initStep + 1 -83.8 24 1.77e+03 0.00137 0.00206 1.59 1.59 World eIoni + 2 -83.8 24.1 1.77e+03 0 0.00137 0.449 2.04 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -81.8 23.7 1.71e+03 0.00168 0 0 0 World initStep + 1 -82 23.8 1.71e+03 0 0.00168 0.61 0.61 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -81.8 23.7 1.71e+03 0.00102 0 0 0 World initStep + 1 -81.7 23.8 1.71e+03 0 0.00102 0.292 0.292 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -80.7 23.4 1.64e+03 0.00128 0 0 0 World initStep + 1 -80.9 23.4 1.64e+03 0 0.00128 0.405 0.405 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -80.1 23.3 1.61e+03 0.00116 0 0 0 World initStep + 1 -80.3 23.3 1.61e+03 0 0.00116 0.349 0.349 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -79.9 23.2 1.6e+03 0.00155 0 0 0 World initStep + 1 -80.2 23.2 1.6e+03 0 0.00155 0.538 0.538 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -79.4 23 1.56e+03 0.00172 0 0 0 World initStep + 1 -79.6 23.1 1.56e+03 0 0.00172 0.631 0.631 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -78.8 22.8 1.53e+03 0.00115 0 0 0 World initStep + 1 -78.7 22.8 1.53e+03 0 0.00115 0.347 0.347 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -78.7 22.8 1.52e+03 0.0011 0 0 0 World initStep + 1 -78.7 22.9 1.52e+03 0 0.0011 0.323 0.323 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -77.7 22.5 1.47e+03 0.00172 0 0 0 World initStep + 1 -77.5 22.4 1.47e+03 0 0.00172 0.63 0.63 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -77.3 22.4 1.45e+03 0.0109 0 0 0 World initStep + 1 -81 24.4 1.45e+03 0.00932 0.00154 4.62 4.62 World eIoni + 2 -83.8 25.3 1.45e+03 0.00688 0.00243 3.85 8.47 World eIoni + 3 -84.8 26.9 1.45e+03 0.00542 0.00147 2.82 11.3 World eIoni + 4 -85.5 26.2 1.45e+03 0.00215 0.00327 2.29 13.6 World eIoni + 5 -85.7 26.3 1.45e+03 0 0.00215 0.897 14.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -77.1 22.3 1.43e+03 0.0107 0 0 0 World initStep + 1 -77.8 19.1 1.43e+03 0.00951 0.00118 4.53 4.53 World eIoni + 2 -77.7 18.3 1.43e+03 0.00723 0.000508 0.973 5.5 World eIoni + 3 -78.4 16.3 1.44e+03 0.00534 0.00189 2.96 8.46 World eIoni + 4 -78 15.2 1.43e+03 0.00287 0.00247 2.26 10.7 World eIoni + 5 -78.2 14.6 1.43e+03 0.00101 0.00186 1.34 12.1 World eIoni + 6 -78.2 14.6 1.43e+03 0 0.00101 0.286 12.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 87 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -77.7 18.3 1.43e+03 0.00177 0 0 0 World initStep + 1 -77.5 18.3 1.43e+03 0 0.00177 0.661 0.661 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -76.3 22.1 1.39e+03 0.0468 0 0 0 World initStep + 1 -74.4 29.6 1.4e+03 0.0441 0.00271 12.7 12.7 World eIoni + 2 -67 52 1.42e+03 0.0379 0.00449 38.2 51 World eIoni + 3 -73.2 55 1.45e+03 0.0334 0.00449 31.9 82.9 World eIoni + 4 -71.7 55.3 1.45e+03 0.0319 0.00152 5.63 88.5 World eIoni + 5 -60.1 55.9 1.47e+03 0.0286 0.00331 23.7 112 World eIoni + 6 -61.6 73.5 1.47e+03 0.0266 0.00201 19.7 132 World eIoni + 7 -65.3 84.7 1.48e+03 0.023 0.00194 14.5 146 World eIoni + 8 -64 86.8 1.49e+03 0.0215 0.00149 13.7 160 World eIoni + 9 -68.6 83.2 1.5e+03 0.017 0.0045 12.3 172 World eIoni + 10 -74.3 78.4 1.5e+03 0.0156 0.0014 8.53 181 World eIoni + 11 -80.3 74.8 1.51e+03 0.0124 0.00316 7.51 188 World eIoni + 12 -82.7 70.5 1.5e+03 0.0102 0.0022 5.48 194 World eIoni + 13 -83.8 67.4 1.5e+03 0.00909 0.00113 4.29 198 World eIoni + 14 -83.4 65 1.5e+03 0.0073 0.00178 3.75 202 World eIoni + 15 -84.5 63.5 1.5e+03 0.00608 0.00122 2.99 205 World eIoni + 16 -85.5 62.3 1.5e+03 0.00456 0.00152 2.52 207 World eIoni + 17 -86.2 61.5 1.5e+03 0.00275 0.0018 1.99 209 World eIoni + 18 -86 61.9 1.5e+03 0.00116 0.00159 1.27 211 World eIoni + 19 -85.9 62 1.5e+03 0 0.00116 0.348 211 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 86 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -65.3 84.7 1.48e+03 0.00167 0 0 0 World initStep + 1 -65.6 84.8 1.48e+03 0 0.00167 0.604 0.604 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 86 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -67 52 1.42e+03 0.00173 0 0 0 World initStep + 1 -66.9 51.8 1.42e+03 0 0.00173 0.636 0.636 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -74.7 21.7 1.29e+03 0.00199 0 0 0 World initStep + 1 -75 21.6 1.29e+03 0 0.00199 0.797 0.797 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -74.1 21.6 1.26e+03 0.0025 0 0 0 World initStep + 1 -73.6 21.6 1.26e+03 0 0.0025 1.13 1.13 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -73.8 21.6 1.24e+03 0.00138 0 0 0 World initStep + 1 -73.9 21.6 1.24e+03 0 0.00138 0.454 0.454 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -73 21.4 1.19e+03 0.0297 0 0 0 World initStep + 1 -58.1 10.4 1.2e+03 0.0268 0.00291 21 21 World eIoni + 2 -45 6.6 1.21e+03 0.0232 0.00357 17.7 38.7 World eIoni + 3 -34.9 12.6 1.22e+03 0.0195 0.00372 14 52.6 World eIoni + 4 -26.3 16.7 1.21e+03 0.0185 0.00101 10.6 63.2 World eIoni + 5 -18.7 20.6 1.21e+03 0.0158 0.00269 9.73 72.9 World eIoni + 6 -19 20.9 1.2e+03 0.0133 0.00251 7.68 80.6 World eIoni + 7 -21.7 25.7 1.2e+03 0.012 0.00134 6.01 86.6 World eIoni + 8 -20.9 30.3 1.2e+03 0.0103 0.00168 5.22 91.8 World eIoni + 9 -21.4 33.6 1.2e+03 0.00853 0.00175 4.32 96.2 World eIoni + 10 -20.9 35.7 1.2e+03 0.00596 0.00257 3.5 99.7 World eIoni + 11 -22 36.8 1.2e+03 0.00474 0.00122 2.48 102 World eIoni + 12 -22 37.3 1.2e+03 0.00332 0.000329 0.57 103 World eIoni + 13 -22.2 38.1 1.2e+03 0 0.00332 1.54 104 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 82 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -22 37.3 1.2e+03 0.00109 0 0 0 World initStep + 1 -22 37.3 1.2e+03 0 0.00109 0.319 0.319 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -70.6 20.9 1.06e+03 0.00131 0 0 0 World initStep + 1 -70.5 21 1.06e+03 0 0.00131 0.419 0.419 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -70.1 20.8 1.03e+03 0.0111 0 0 0 World initStep + 1 -69.7 17.5 1.03e+03 0.0091 0.00197 3.9 3.9 World msc + 2 -71.8 15.3 1.03e+03 0.00796 0.00114 3.75 7.66 World eIoni + 3 -73.6 13.6 1.03e+03 0.00364 0.00432 3.25 10.9 World eIoni + 4 -73.9 12.9 1.03e+03 0.00118 0.00246 1.67 12.6 World eIoni + 5 -73.8 12.9 1.03e+03 0 0.00118 0.357 12.9 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -69.3 20.7 988 0.00942 0 0 0 World initStep + 1 -69.8 17.5 988 0.00839 0.00103 3.55 3.55 World msc + 2 -69.7 17.1 988 0.00706 8.78e-05 0.449 4 World eIoni + 3 -69.3 15.2 989 0.00555 0.00152 2.89 6.89 World eIoni + 4 -69.6 13.7 989 0.00409 0.00146 2.34 9.22 World eIoni + 5 -69.9 14.7 989 0.00164 0.00245 1.83 11.1 World eIoni + 6 -69.8 14.9 989 0 0.00164 0.587 11.6 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 79 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -69.7 17.1 988 0.00124 0 0 0 World initStep + 1 -69.6 17 988 0 0.00124 0.385 0.385 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -68.6 20.6 945 0.00102 0 0 0 World initStep + 1 -68.7 20.7 945 0 0.00102 0.291 0.291 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -68.4 20.5 935 0.00307 0 0 0 World initStep + 1 -69 20.3 935 0.00168 0.0014 1.43 1.43 World eIoni + 2 -68.8 20.2 935 0 0.00168 0.608 2.04 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -68.3 20.5 929 0.00226 0 0 0 World initStep + 1 -68.7 20.3 929 0 0.00226 0.976 0.976 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -66.7 20.1 831 0.00637 0 0 0 World initStep + 1 -65.4 18.8 831 0.00491 0.00146 2.63 2.63 World eIoni + 2 -65.6 19.1 830 0.00372 0.00119 2.12 4.75 World eIoni + 3 -65.7 19.8 830 0.00239 0.00133 1.7 6.45 World eIoni + 4 -66 19.5 830 0 0.00239 1.06 7.51 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -66.4 20 814 0.00221 0 0 0 World initStep + 1 -66.4 20.4 814 0 0.00221 0.936 0.936 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -66 20 794 0.00112 0 0 0 World initStep + 1 -65.9 19.9 794 0 0.00112 0.334 0.334 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -65.5 19.9 767 0.00733 0 0 0 World initStep + 1 -66.9 18.2 768 0.00691 0.000419 3 3 World eIoni + 2 -68.1 16.7 767 0.00499 0.00191 2.83 5.83 World eIoni + 3 -67.6 15.5 767 0.00252 0.00247 2.14 7.97 World eIoni + 4 -67.5 15.1 767 0 0.00252 1.15 9.12 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -62.6 19.5 610 0.00159 0 0 0 World initStep + 1 -62.6 19.3 610 0 0.00159 0.562 0.562 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -61.1 19.2 526 0.00149 0 0 0 World initStep + 1 -61.3 19.3 526 0 0.00149 0.506 0.506 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -59.2 18.9 424 0.00128 0 0 0 World initStep + 1 -59.1 19 424 0 0.00128 0.404 0.404 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -58.9 18.8 408 0.00242 0 0 0 World initStep + 1 -58.8 19.3 408 0 0.00242 1.08 1.08 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -58.6 18.8 393 0.00195 0 0 0 World initStep + 1 -58.4 18.7 393 0 0.00195 0.768 0.768 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -57.9 18.7 353 0.00101 0 0 0 World initStep + 1 -57.8 18.7 353 0 0.00101 0.286 0.286 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -57.8 18.7 349 0.00127 0 0 0 World initStep + 1 -57.7 18.7 349 0 0.00127 0.397 0.397 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -57.8 18.7 345 0.0011 0 0 0 World initStep + 1 -57.9 18.7 345 0 0.0011 0.325 0.325 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -57.3 18.6 316 0.00122 0 0 0 World initStep + 1 -57.1 18.7 316 0 0.00122 0.378 0.378 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -57.3 18.6 316 0.00376 0 0 0 World initStep + 1 -56.4 18.7 316 0.00276 0.001 1.71 1.71 World eIoni + 2 -55.9 18.7 317 0 0.00276 1.28 2.99 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -57 18.6 303 0.00124 0 0 0 World initStep + 1 -57.1 18.5 303 0 0.00124 0.383 0.383 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -56.8 18.6 293 0.00109 0 0 0 World initStep + 1 -57 18.6 293 0 0.00109 0.319 0.319 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -56.3 18.5 260 0.0014 0 0 0 World initStep + 1 -56.1 18.6 260 0 0.0014 0.462 0.462 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -56.2 18.5 258 0.00222 0 0 0 World initStep + 1 -55.9 18.7 258 0 0.00222 0.942 0.942 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -55.8 18.4 231 0.00103 0 0 0 World initStep + 1 -55.7 18.5 231 0 0.00103 0.294 0.294 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -55.6 18.4 223 0.00142 0 0 0 World initStep + 1 -55.5 18.5 223 0 0.00142 0.471 0.471 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -55.2 18.4 195 0.0102 0 0 0 World initStep + 1 -52.2 17.2 196 0.00653 0.00366 4.27 4.27 World eIoni + 2 -50.9 15.8 196 0.00491 0.00162 2.69 6.96 World eIoni + 3 -49.7 15.4 197 0.00254 0.00237 2.12 9.08 World eIoni + 4 -49.4 15.3 197 0 0.00254 1.16 10.2 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -54.8 18.3 174 0.00106 0 0 0 World initStep + 1 -54.9 18.4 174 0 0.00106 0.305 0.305 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -52.2 18.1 0.412 0.0026 0 0 0 World initStep + 1 -52.2 17.6 0.495 0 0.0026 1.19 1.19 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -51.2 18.1 -63.9 0.00142 0 0 0 World initStep + 1 -51.4 18.1 -63.8 0 0.00142 0.47 0.47 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -51.2 18.1 -65.9 0.00258 0 0 0 World initStep + 1 -51.1 18.6 -65.8 0 0.00258 1.18 1.18 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -51 18.1 -77.4 0.00127 0 0 0 World initStep + 1 -51.2 18 -77.4 0 0.00127 0.398 0.398 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -50.8 18 -97.6 0.00761 0 0 0 World initStep + 1 -52.4 16.5 -96.9 0.00524 0.00236 3.11 3.11 World eIoni + 2 -52.6 15.4 -97.2 0.00283 0.0011 1.51 4.62 World eIoni + 3 -52.1 15.2 -97.6 0 0.00283 1.31 5.93 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -52.6 15.4 -97.2 0.00131 0 0 0 World initStep + 1 -52.5 15.3 -97.1 0 0.00131 0.421 0.421 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -50.8 18 -98.2 0.00352 0 0 0 World initStep + 1 -51.4 18.5 -98.1 0 0.00352 1.62 1.62 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -50 18 -146 0.00659 0 0 0 World initStep + 1 -51.9 18.2 -145 0.00533 0.00127 2.71 2.71 World eIoni + 2 -52.7 17.2 -145 0.0034 0.00193 2.26 4.97 World eIoni + 3 -52.5 16.4 -145 0.00119 0.00221 1.57 6.54 World eIoni + 4 -52.5 16.5 -145 0 0.00119 0.364 6.91 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -50 18 -149 0.00145 0 0 0 World initStep + 1 -50 17.8 -149 0 0.00145 0.488 0.488 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -48.5 18 -250 0.00153 0 0 0 World initStep + 1 -48.5 18.2 -250 0 0.00153 0.527 0.527 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -48.4 18 -255 0.00445 0 0 0 World initStep + 1 -49.5 18.4 -255 0.00188 0.00257 1.96 1.96 World eIoni + 2 -49.6 18.6 -255 0 0.00188 0.728 2.69 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -47.1 17.9 -342 0.00389 0 0 0 World initStep + 1 -46.1 18.1 -342 0.00155 0.00234 1.76 1.76 World eIoni + 2 -46.2 18 -342 0 0.00155 0.537 2.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -46.8 17.9 -361 0.00209 0 0 0 World initStep + 1 -46.5 18 -361 0 0.00209 0.857 0.857 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -45.8 17.8 -435 0.00238 0 0 0 World initStep + 1 -46.2 17.7 -435 0 0.00238 1.06 1.06 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -45.5 17.8 -449 0.00124 0 0 0 World initStep + 1 -45.4 17.9 -449 0 0.00124 0.385 0.385 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -45.5 17.8 -456 0.0373 0 0 0 World initStep + 1 -48.9 -0.259 -444 0.0328 0.0032 23 23 World eIoni + 2 -54.2 -19.1 -437 0.0287 0.00293 22.8 45.8 World eIoni + 3 -66.9 -31.9 -432 0.0265 0.00221 19.8 65.6 World eIoni + 4 -78.2 -28.9 -440 0.022 0.00449 16 81.6 cloudPV CoupledTransportation + 5 -78.2 -28.9 -440 0.0219 0.000145 0.000379 81.6 cloudPV msc + 6 -78.2 -28.9 -440 0.0218 7.17e-05 6.34e-05 81.6 World CoupledTransportation + 7 -86.5 -26.3 -437 0.0181 0.00175 9.45 91.1 World eIoni + 8 -94.6 -24.7 -435 0.0165 0.00158 9.41 100 World eIoni + 9 -102 -23.8 -432 0.0146 0.00191 8.2 109 World eIoni + 10 -108 -25 -432 0.0121 0.00251 6.86 116 World eIoni + 11 -112 -22.4 -431 0.0108 0.00134 5.3 121 World eIoni + 12 -114 -18.9 -431 0.00877 0.002 4.57 125 World eIoni + 13 -115 -16.9 -432 0.00629 0.00111 2.72 128 World eIoni + 14 -117 -15.9 -431 0.00513 0.00116 2.6 131 World eIoni + 15 -117 -15.2 -430 0.00181 0.00332 2.19 133 World eIoni + 16 -117 -15 -430 0 0.00181 0.687 134 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 136, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -115 -16.9 -432 0.00138 0 0 0 World initStep + 1 -115 -16.8 -432 0 0.00138 0.45 0.45 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -86.5 -26.3 -437 0.00196 0 0 0 World initStep + 1 -86.6 -26.5 -437 0 0.00196 0.774 0.774 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -54.2 -19.1 -437 0.00118 0 0 0 World initStep + 1 -54.2 -19 -436 0 0.00118 0.359 0.359 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -48.9 -0.259 -444 0.00126 0 0 0 World initStep + 1 -48.8 -0.324 -444 0 0.00126 0.396 0.396 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -43.6 18 -604 0.0135 0 0 0 World initStep + 1 -45.7 15.9 -601 0.0108 0.0027 4.38 4.38 World msc + 2 -47.5 13.1 -600 0.00917 0.00165 3.8 8.18 World msc + 3 -47.8 9.86 -599 0.00811 0.00106 3.79 12 World eIoni + 4 -45.5 9.13 -600 0.00696 0.00116 3.32 15.3 World eIoni + 5 -43.8 8.88 -599 0.00525 0.00171 2.85 18.1 World eIoni + 6 -43.1 10.2 -599 0.00379 0.00145 2.23 20.4 World eIoni + 7 -42.3 9.61 -599 0.00105 0.00274 1.72 22.1 World eIoni + 8 -42.3 9.72 -599 0 0.00105 0.302 22.4 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -42.8 18 -668 0.00161 0 0 0 World initStep + 1 -42.5 18 -668 0 0.00161 0.572 0.572 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -42.2 17.9 -716 0.0027 0 0 0 World initStep + 1 -42.6 17.6 -716 0 0.0027 1.24 1.24 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -41.9 17.9 -740 0.00101 0 0 0 World initStep + 1 -41.9 18 -740 0 0.00101 0.285 0.285 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -41.8 17.9 -743 0.00896 0 0 0 World initStep + 1 -44 17.2 -743 0.00644 0.000898 2.42 2.42 World eIoni + 2 -44.9 16.4 -742 0.00336 0.00188 1.87 4.3 World eIoni + 3 -45.5 16.1 -741 0.00136 0.002 1.56 5.85 World eIoni + 4 -45.6 16.2 -741 0 0.00136 0.44 6.29 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 34 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -44.9 16.4 -742 0.0012 0 0 0 World initStep + 1 -44.9 16.5 -742 0 0.0012 0.368 0.368 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 137, Parent ID = 34 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -44 17.2 -743 0.00162 0 0 0 World initStep + 1 -44.1 17.2 -743 0 0.00162 0.578 0.578 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -41.6 17.9 -758 0.00119 0 0 0 World initStep + 1 -41.5 17.8 -758 0 0.00119 0.361 0.361 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -41.6 17.9 -765 0.00621 0 0 0 World initStep + 1 -42.3 17.9 -765 0.00319 0.000395 0.81 0.81 World eIoni + 2 -43 18 -765 0.00103 0.00217 1.49 2.3 World eIoni + 3 -43.1 17.9 -765 0 0.00103 0.293 2.59 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -42.3 17.9 -765 0.00262 0 0 0 World initStep + 1 -42.3 17.8 -765 0 0.00262 1.2 1.2 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -41.3 17.9 -782 0.00144 0 0 0 World initStep + 1 -41.5 17.8 -782 0 0.00144 0.481 0.481 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -40.8 17.8 -822 0.00119 0 0 0 World initStep + 1 -40.7 17.9 -822 0 0.00119 0.364 0.364 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -40.4 17.8 -851 0.00115 0 0 0 World initStep + 1 -40.4 17.9 -851 0 0.00115 0.347 0.347 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -40.2 17.7 -865 0.00136 0 0 0 World initStep + 1 -40.1 17.8 -865 0 0.00136 0.442 0.442 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -37.7 17.6 -1.06e+03 0.0102 0 0 0 World initStep + 1 -35.3 19.7 -1.06e+03 0.00777 0.0024 4.26 4.26 World eIoni + 2 -35 20.5 -1.06e+03 0.00631 0.000437 2.92 7.19 World eIoni + 3 -33.8 21.7 -1.06e+03 0.00507 0.00125 2.61 9.8 World eIoni + 4 -34.7 22.7 -1.06e+03 0.00224 0.00283 2.17 12 World eIoni + 5 -34.8 23 -1.06e+03 0 0.00224 0.957 12.9 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 27 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -35 20.5 -1.06e+03 0.00102 0 0 0 World initStep + 1 -34.9 20.5 -1.06e+03 0 0.00102 0.29 0.29 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -37.4 17.6 -1.08e+03 0.00159 0 0 0 World initStep + 1 -37.6 17.7 -1.08e+03 0 0.00159 0.561 0.561 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -37 17.6 -1.11e+03 0.00186 0 0 0 World initStep + 1 -37.2 17.4 -1.11e+03 0 0.00186 0.712 0.712 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -36.7 17.6 -1.14e+03 0.00601 0 0 0 World initStep + 1 -38.3 18.3 -1.13e+03 0.00433 0.00168 2.5 2.5 World eIoni + 2 -38.9 18.6 -1.13e+03 0.00256 0.00177 1.91 4.41 World eIoni + 3 -39.1 18.2 -1.13e+03 0 0.00256 1.17 5.58 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -36.5 17.6 -1.15e+03 0.0103 0 0 0 World initStep + 1 -33.7 17.2 -1.15e+03 0.00869 0.0016 3.16 3.16 World msc + 2 -32.7 15.1 -1.15e+03 0.00785 0.000849 2.46 5.62 World msc + 3 -31.4 13.9 -1.15e+03 0.00604 0.00181 3.21 8.82 World eIoni + 4 -30.7 15.3 -1.15e+03 0.00488 0.00115 2.51 11.3 World eIoni + 5 -30.5 14.4 -1.15e+03 0.00304 0.00184 2.11 13.4 World eIoni + 6 -30.3 14.2 -1.15e+03 0 0.00304 1.42 14.9 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -36 17.6 -1.2e+03 0.00121 0 0 0 World initStep + 1 -35.8 17.6 -1.2e+03 0 0.00121 0.371 0.371 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.6 17.9 -1.51e+03 0.00146 0 0 0 World initStep + 1 -32.6 17.7 -1.51e+03 0 0.00146 0.49 0.49 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -32.3 17.9 -1.55e+03 0.00367 0 0 0 World initStep + 1 -32.3 18.8 -1.55e+03 0.0023 0.00137 1.68 1.68 World eIoni + 2 -31.9 18.8 -1.55e+03 0 0.0023 1 2.68 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -31.8 17.9 -1.61e+03 0.00104 0 0 0 World initStep + 1 -31.9 17.8 -1.61e+03 0 0.00104 0.297 0.297 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -31.4 17.6 -1.69e+03 0.00132 0 0 0 World initStep + 1 -31.5 17.5 -1.69e+03 0 0.00132 0.422 0.422 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -31.1 17.5 -1.74e+03 0.00864 0 0 0 World initStep + 1 -33.3 18.1 -1.74e+03 0.00578 0.00151 2.86 2.86 World eIoni + 2 -34.9 18 -1.74e+03 0.00341 0.00237 2.42 5.28 World eIoni + 3 -34.8 18.7 -1.74e+03 0 0.00341 1.58 6.85 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 17 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.3 18.1 -1.74e+03 0.00135 0 0 0 World initStep + 1 -33.3 18.2 -1.74e+03 0 0.00135 0.437 0.437 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30.9 17.4 -1.77e+03 0.00245 0 0 0 World initStep + 1 -30.5 17.4 -1.77e+03 0 0.00245 1.1 1.1 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30.6 17.7 -1.87e+03 0.00109 0 0 0 World initStep + 1 -30.6 17.8 -1.87e+03 0 0.00109 0.321 0.321 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30.5 17.9 -1.94e+03 0.00308 0 0 0 World initStep + 1 -31 18.4 -1.94e+03 0.00129 0.0018 1.44 1.44 World eIoni + 2 -31 18.5 -1.94e+03 0 0.00129 0.407 1.84 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30.5 17.9 -1.95e+03 0.00122 0 0 0 World initStep + 1 -30.7 17.9 -1.95e+03 0 0.00122 0.378 0.378 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30.5 18 -1.95e+03 0.0595 0 0 0 World initStep + 1 -2.53 38.6 -1.9e+03 0.0511 0.00842 70.2 70.2 World eIoni + 2 4.29 42.5 -1.87e+03 0.0469 0.0042 34 104 cloudPV CoupledTransportation + 3 4.29 42.5 -1.87e+03 0.0462 0.000702 0.00162 104 cloudPV msc + 4 4.29 42.5 -1.87e+03 0.0455 0.000683 0.00122 104 cloudPV msc + 5 4.29 42.5 -1.87e+03 0.0442 0.00134 0.0018 104 cloudPV msc + 6 4.29 42.5 -1.87e+03 0.0438 0.000394 0.00152 104 cloudPV msc + 7 4.29 42.5 -1.87e+03 0.043 0.000799 0.00182 104 cloudPV msc + 8 4.29 42.5 -1.87e+03 0.0417 0.00132 0.00263 104 cloudPV msc + 9 4.29 42.5 -1.87e+03 0.0307 0.011 0.00381 104 cloudPV msc + 10 4.29 42.5 -1.87e+03 0.0255 0.00522 0.0054 104 cloudPV msc + 11 4.29 42.5 -1.87e+03 0.0181 0.00737 0.00643 104 cloudPV msc + 12 4.29 42.5 -1.87e+03 0 0.0181 0.00725 104 cloudPV eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30.5 18 -1.95e+03 0.00542 0 0 0 World initStep + 1 -30.8 16.5 -1.95e+03 0.0041 0.00132 2.29 2.29 World eIoni + 2 -31.8 16.8 -1.95e+03 0.00268 0.00142 1.84 4.13 World eIoni + 3 -32.2 16.8 -1.95e+03 0 0.00268 1.24 5.37 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30.5 18 -1.96e+03 0.0284 0 0 0 World initStep + 1 -47.8 13.3 -1.96e+03 0.0244 0.004 19.5 19.5 World eIoni + 2 -45 14.5 -1.97e+03 0.0211 0.00326 15.1 34.6 World eIoni + 3 -41.5 13.1 -1.98e+03 0.0181 0.00306 12 46.6 World eIoni + 4 -36.6 12.3 -1.98e+03 0.0139 0.00143 5.42 52 World eIoni + 5 -31.3 10.8 -1.99e+03 0.012 0.00188 6.39 58.4 World eIoni + 6 -27.6 10.4 -1.99e+03 0.0101 0.00192 5.25 63.6 World eIoni + 7 -24.9 10 -1.99e+03 0.0078 0.0023 4.23 67.9 World eIoni + 8 -25.1 9.17 -1.99e+03 0.0068 0.001 3.19 71.1 World eIoni + 9 -25.1 9.12 -2e+03 0.0041 0.0027 2.79 73.9 World eIoni + 10 -24.3 9.23 -2e+03 0.00157 0.00253 1.84 75.7 World eIoni + 11 -24.1 9.19 -2e+03 0 0.00157 0.55 76.2 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 142, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -36.6 12.3 -1.98e+03 0.00274 0 0 0 World initStep + 1 -36.2 12.7 -1.98e+03 0 0.00274 1.27 1.27 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30.2 18.3 -2.07e+03 0.00712 0 0 0 World initStep + 1 -30.1 18.8 -2.07e+03 0.00702 9.4e-05 0.58 0.58 World eIoni + 2 -28.2 19.6 -2.07e+03 0.00502 0.00201 2.88 3.46 World eIoni + 3 -27.6 19 -2.07e+03 0.00259 0.00242 2.15 5.61 World eIoni + 4 -27.2 19 -2.07e+03 0 0.00259 1.19 6.8 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30 18.7 -2.27e+03 0.00362 0 0 0 World initStep + 1 -30.2 17.9 -2.27e+03 0 0.00362 1.66 1.66 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30 18.7 -2.29e+03 0.00107 0 0 0 World initStep + 1 -30.1 18.7 -2.29e+03 0 0.00107 0.309 0.309 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -30 18.8 -2.39e+03 0.00217 0 0 0 World initStep + 1 -30 18.4 -2.39e+03 0 0.00217 0.909 0.909 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -29.9 18.8 -2.44e+03 0.00333 0 0 0 World initStep + 1 -29.8 19.5 -2.44e+03 0.00102 0.00231 1.54 1.54 World eIoni + 2 -29.9 19.5 -2.44e+03 0 0.00102 0.292 1.84 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -29.9 18.8 -2.45e+03 0.0011 0 0 0 World initStep + 1 -29.8 18.8 -2.45e+03 0 0.0011 0.322 0.322 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -29.8 18.8 -2.51e+03 0.00144 0 0 0 World initStep + 1 -30 18.9 -2.51e+03 0 0.00144 0.481 0.481 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -29.8 18.8 -2.53e+03 0.0249 0 0 0 World initStep + 1 -42.8 19.5 -2.53e+03 0.023 0.00184 15.6 15.6 World eIoni + 2 -43.9 19.5 -2.53e+03 0.0161 0.000781 1.2 16.8 World eIoni + 3 -50.2 21.1 -2.53e+03 0.0152 0.000888 7.86 24.7 World eIoni + 4 -53.3 19.6 -2.53e+03 0.0102 0.00499 7.23 31.9 World eIoni + 5 -55.3 21 -2.53e+03 0.00828 0.0019 4.27 36.2 World eIoni + 6 -55.5 23.3 -2.53e+03 0.00542 0.00177 2.79 38.9 World eIoni + 7 -55.6 24.7 -2.53e+03 0.00384 0.00159 2.29 41.2 World eIoni + 8 -55.6 25.4 -2.53e+03 0 0.00384 1.74 43 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -55.5 23.3 -2.53e+03 0.00109 0 0 0 World initStep + 1 -55.5 23.3 -2.53e+03 0 0.00109 0.319 0.319 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -43.9 19.5 -2.53e+03 0.00618 0 0 0 World initStep + 1 -44.4 18.8 -2.52e+03 0.00465 0.00154 2.56 2.56 World eIoni + 2 -43.5 19.6 -2.52e+03 0.0026 0.00204 2.03 4.59 World eIoni + 3 -43.5 19.9 -2.52e+03 0 0.0026 1.19 5.78 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.3 143 -2.61e+03 50 0 0 0 World initStep + 1 -83.3 143 -2.54e+03 50 0.0104 70.7 70.7 World hIoni + 2 -83.4 143 -2.51e+03 50 0.00536 35.3 106 World hIoni + 3 -83.5 143 -2.41e+03 50 0.0188 99.4 205 World hIoni + 4 -83.5 143 -2.3e+03 49.9 0.0253 112 317 World hIoni + 5 -83.5 143 -2.29e+03 49.9 0.000107 0.6 318 World hIoni + 6 -83.6 143 -2.29e+03 49.9 0.0011 7.81 326 World hIoni + 7 -83.8 142 -2.19e+03 49.9 0.0185 95.9 422 World hIoni + 8 -83.9 142 -2.16e+03 49.9 0.00723 32.3 454 World hIoni + 9 -83.9 142 -2.15e+03 49.9 0.00175 7.82 462 World hIoni + 10 -84 142 -2.1e+03 49.9 0.0101 48 510 World hIoni + 11 -84 142 -2.1e+03 49.9 0.000619 5.27 515 World hIoni + 12 -84.1 141 -2.05e+03 49.9 0.00603 51.1 566 World hIoni + 13 -84.4 141 -1.93e+03 49.9 0.02 112 678 World hIoni + 14 -84.5 140 -1.91e+03 49.8 0.00492 23.1 701 World hIoni + 15 -84.6 140 -1.85e+03 49.8 0.0153 59.6 761 World hIoni + 16 -84.7 140 -1.81e+03 49.8 0.00681 40.5 801 World hIoni + 17 -84.7 140 -1.81e+03 49.8 0.000615 2.74 804 World hIoni + 18 -84.8 140 -1.8e+03 49.8 0.00166 11.6 816 World hIoni + 19 -85.1 138 -1.63e+03 49.7 0.0243 168 984 World hIoni + 20 -85.2 138 -1.59e+03 49.7 0.0079 35.7 1.02e+03 World hIoni + 21 -85.4 138 -1.5e+03 49.7 0.0195 90.3 1.11e+03 World hIoni + 22 -85.4 138 -1.5e+03 49.7 0.00133 3.18 1.11e+03 World hIoni + 23 -85.4 137 -1.48e+03 49.7 0.00319 23.5 1.14e+03 World hIoni + 24 -85.5 137 -1.45e+03 49.7 0.00479 29.5 1.17e+03 World hIoni + 25 -85.5 137 -1.42e+03 49.7 0.00503 25.9 1.19e+03 World hIoni + 26 -85.6 137 -1.41e+03 49.7 0.00118 10.6 1.2e+03 World hIoni + 27 -85.7 137 -1.36e+03 49.6 0.00857 53 1.26e+03 World hIoni + 28 -85.7 137 -1.34e+03 49.6 0.00127 15.7 1.27e+03 World hIoni + 29 -85.8 136 -1.28e+03 49.6 0.00954 65.5 1.34e+03 World hIoni + 30 -85.9 136 -1.24e+03 49.6 0.0077 37.2 1.37e+03 World hIoni + 31 -86 136 -1.23e+03 49.6 0.00119 5.67 1.38e+03 World hIoni + 32 -86 136 -1.23e+03 49.6 0.0015 3.89 1.38e+03 World hIoni + 33 -86 136 -1.22e+03 49.5 0.000479 13 1.4e+03 World hIoni + 34 -86 136 -1.19e+03 49.5 0.00288 21 1.42e+03 World hIoni + 35 -86.2 135 -1.14e+03 49.5 0.00805 59.2 1.48e+03 World hIoni + 36 -86.2 135 -1.11e+03 49.5 0.00462 24.5 1.5e+03 World hIoni + 37 -86.2 135 -1.1e+03 49.5 0.00328 10.2 1.51e+03 World hIoni + 38 -86.3 135 -1.1e+03 49.5 0.000686 5.48 1.52e+03 World hIoni + 39 -86.5 134 -1.02e+03 49.5 0.0124 72.3 1.59e+03 World hIoni + 40 -86.6 134 -1.01e+03 49.5 0.00167 17 1.61e+03 World hIoni + 41 -86.6 134 -992 49.5 0.00287 14.4 1.62e+03 World hIoni + 42 -86.6 134 -988 49.5 0.00134 3.55 1.62e+03 cloudPV CoupledTransportation + 43 -86.6 134 -987 48 1.42 1.13 1.63e+03 World CoupledTransportation + 44 -86.8 134 -962 48 0.00369 25.1 1.65e+03 World hIoni + 45 -87 133 -933 48 0.00449 29.5 1.68e+03 World hIoni + 46 -87.4 133 -872 48 0.0109 60.9 1.74e+03 World hIoni + 47 -88.5 131 -712 48 0.0351 159 1.9e+03 World hIoni + 48 -89.4 130 -634 48 0.0145 78.4 1.98e+03 World hIoni + 49 -89.9 130 -573 47.9 0.0125 60.7 2.04e+03 World hIoni + 50 -89.9 130 -572 47.9 0.000494 1.49 2.04e+03 World hIoni + 51 -90.1 130 -555 47.9 0.00169 16.5 2.06e+03 World hIoni + 52 -90.2 130 -541 47.9 0.0028 14.3 2.07e+03 World hIoni + 53 -90.7 129 -488 47.9 0.0105 52.5 2.12e+03 World hIoni + 54 -91.3 129 -424 47.9 0.00994 64.7 2.19e+03 World hIoni + 55 -91.6 129 -394 47.9 0.00743 30.1 2.22e+03 World hIoni + 56 -92.4 128 -316 47.9 0.0132 77.2 2.3e+03 World hIoni + 57 -92.9 127 -270 47.9 0.0112 46.9 2.34e+03 World hIoni + 58 -93.5 127 -207 47.8 0.0115 62.3 2.41e+03 World hIoni + 59 -93.6 127 -194 47.8 0.00285 13.2 2.42e+03 World hIoni + 60 -93.8 127 -166 47.8 0.00582 28.3 2.45e+03 World hIoni + 61 -94.6 126 -80.3 47.8 0.0146 85.4 2.53e+03 World hIoni + 62 -94.7 126 -69.8 47.8 0.00238 10.6 2.54e+03 World hIoni + 63 -95.5 125 5.92 47.8 0.0142 75.7 2.62e+03 World hIoni + 64 -95.5 125 7.93 47.8 1.7e-05 2 2.62e+03 cloudPV CoupledTransportation + 65 -95.5 125 9.34 45.9 1.91 1.42 2.62e+03 World CoupledTransportation + 66 -95.6 125 31.3 45.9 0.00397 22 2.64e+03 World hIoni + 67 -96 123 149 45.8 0.0246 117 2.76e+03 World hIoni + 68 -96 123 155 45.8 0.00171 6.35 2.77e+03 World hIoni + 69 -96.1 123 163 45.8 0.00116 8.33 2.78e+03 World hIoni + 70 -96.2 123 200 45.8 0.00835 36.3 2.81e+03 World hIoni + 71 -96.2 123 216 45.8 0.00324 16.6 2.83e+03 World hIoni + 72 -96.3 123 222 45.8 0.00057 6.25 2.84e+03 World hIoni + 73 -96.4 122 260 45.8 0.00512 37.5 2.87e+03 cloudPV CoupledTransportation + 74 -96.4 122 261 45.1 0.743 0.591 2.87e+03 World CoupledTransportation + 75 -97.5 122 370 45.1 0.0193 109 2.98e+03 World hIoni + 76 -98 122 407 45.1 0.00617 37.4 3.02e+03 World hIoni + 77 -98.8 121 478 45 0.0161 70.7 3.09e+03 World hIoni + 78 -99.2 121 504 45 0.00475 26.2 3.12e+03 World hIoni + 79 -99.3 121 512 45 0.00126 8.16 3.12e+03 World hIoni + 80 -101 121 607 45 0.018 95.2 3.22e+03 World hIoni + 81 -102 120 748 45 0.0294 140 3.36e+03 World hIoni + 82 -102 120 764 45 0.00218 16.5 3.38e+03 World hIoni + 83 -104 120 862 44.9 0.0215 97.4 3.47e+03 World hIoni + 84 -104 120 868 44.9 0.000885 5.89 3.48e+03 World hIoni + 85 -104 120 913 44.9 0.00926 45.1 3.53e+03 World hIoni + 86 -105 120 941 44.9 0.00489 27.9 3.55e+03 World hIoni + 87 -105 120 948 44.9 0.00203 7.73 3.56e+03 World hIoni + 88 -105 120 955 44.9 0.000636 6.66 3.57e+03 World hIoni + 89 -105 119 986 44.9 0.00631 31 3.6e+03 World hIoni + 90 -106 119 1.01e+03 44.9 0.00208 23.4 3.62e+03 World hIoni + 91 -106 119 1.06e+03 44.9 0.00912 51.7 3.67e+03 World hIoni + 92 -107 119 1.12e+03 44.9 0.0148 61.5 3.74e+03 World hIoni + 93 -107 119 1.13e+03 44.9 0.000378 5.69 3.74e+03 World hIoni + 94 -108 119 1.16e+03 44.8 0.0057 32.4 3.77e+03 World hIoni + 95 -108 119 1.16e+03 44.8 0.000111 1.57 3.77e+03 World hIoni + 96 -108 119 1.2e+03 44.8 0.00663 37.3 3.81e+03 World hIoni + 97 -108 119 1.21e+03 44.8 0.00169 8.88 3.82e+03 World hIoni + 98 -109 119 1.25e+03 44.8 0.00952 44.5 3.87e+03 World hIoni + 99 -109 119 1.26e+03 44.8 0.00117 2.96 3.87e+03 World hIoni + 100 -109 119 1.27e+03 44.8 0.00201 15 3.88e+03 World hIoni + 101 -109 118 1.33e+03 44.8 0.0108 60.3 3.94e+03 World hIoni + 102 -110 118 1.4e+03 44.8 0.0133 70.1 4.01e+03 World hIoni + 103 -111 118 1.47e+03 44.8 0.014 71.2 4.09e+03 World hIoni + 104 -111 118 1.49e+03 44.8 0.00292 19.4 4.1e+03 World hIoni + 105 -112 118 1.56e+03 44.7 0.0115 65.5 4.17e+03 World hIoni + 106 -112 118 1.56e+03 44.7 0.000862 5.34 4.18e+03 World hIoni + 107 -112 117 1.59e+03 44.7 0.00609 30.5 4.21e+03 World hIoni + 108 -113 117 1.62e+03 44.7 0.00552 29.7 4.24e+03 World hIoni + 109 -113 117 1.65e+03 44.7 0.0057 23.8 4.26e+03 World hIoni + 110 -113 117 1.65e+03 44.7 5.66e-05 2.19 4.26e+03 World hIoni + 111 -113 117 1.68e+03 44.7 0.00487 27.3 4.29e+03 World hIoni + 112 -113 117 1.68e+03 44.7 0.000318 1.42 4.29e+03 World hIoni + 113 -113 117 1.68e+03 44.7 9.78e-05 0.704 4.29e+03 World hIoni + 114 -114 117 1.75e+03 44.6 0.0168 67.4 4.36e+03 World hIoni + 115 -115 116 1.89e+03 44.6 0.0261 146 4.51e+03 World hIoni + 116 -116 116 1.92e+03 44.6 0.00843 30.3 4.54e+03 World hIoni + 117 -116 116 1.98e+03 44.6 0.0147 61.8 4.6e+03 World hIoni + 118 -116 116 1.98e+03 44.6 8.42e-05 0.14 4.6e+03 World hIoni + 119 -117 115 2.03e+03 44.6 0.00657 42.1 4.64e+03 World hIoni + 120 -117 115 2.09e+03 44.6 0.0123 62.5 4.7e+03 World hIoni + 121 -118 114 2.15e+03 44.5 0.0096 60.6 4.76e+03 World hIoni + 122 -118 114 2.15e+03 44.5 0.000272 0.699 4.76e+03 World hIoni + 123 -119 113 2.25e+03 44.5 0.0137 99.1 4.86e+03 World hIoni + 124 -119 113 2.28e+03 44.5 0.00427 34 4.9e+03 World hIoni + 125 -120 112 2.36e+03 44.5 0.0162 75.6 4.97e+03 World hIoni + 126 -120 112 2.38e+03 44.5 0.00395 24.2 5e+03 World hIoni + 127 -120 112 2.39e+03 44.5 0.000441 4.03 5e+03 World hIoni + 128 -120 112 2.4e+03 44.4 0.00378 15.9 5.02e+03 World hIoni + 129 -121 112 2.44e+03 44.4 0.00961 40.3 5.06e+03 World hIoni + 130 -121 112 2.45e+03 44.4 0.00114 9.26 5.07e+03 World hIoni + 131 -121 111 2.47e+03 44.4 0.00473 18.9 5.08e+03 World hIoni + 132 -121 111 2.52e+03 44.4 0.012 48.7 5.13e+03 World hIoni + 133 -121 111 2.54e+03 44.4 0.00359 20.1 5.15e+03 World hIoni + 134 -122 111 2.58e+03 44.4 0.014 43.3 5.2e+03 World hIoni + 135 -122 110 2.6e+03 44.4 0.00345 16.1 5.21e+03 detectorPV CoupledTransportation + 136 -122 110 2.6e+03 38.5 5.85 1.92 5.21e+03 detectorPV hIoni + 137 -122 110 2.6e+03 33.5 5.04 1.53 5.22e+03 detectorPV hIoni + 138 -122 110 2.6e+03 29.1 4.37 1.23 5.22e+03 detectorPV hIoni + 139 -122 110 2.61e+03 24.7 4.44 0.992 5.22e+03 detectorPV hIoni + 140 -122 110 2.61e+03 20.8 3.91 0.78 5.22e+03 detectorPV hIoni + 141 -122 110 2.61e+03 17.3 3.45 0.616 5.22e+03 detectorPV hIoni + 142 -122 110 2.61e+03 14.2 3.16 0.488 5.22e+03 detectorPV hIoni + 143 -122 110 2.61e+03 11.2 2.93 0.386 5.22e+03 detectorPV hIoni + 144 -122 110 2.61e+03 8.43 2.8 0.304 5.22e+03 detectorPV hIoni + 145 -122 110 2.61e+03 5.54 2.89 0.237 5.22e+03 detectorPV hIoni + 146 -122 110 2.61e+03 2.37 3.16 0.171 5.22e+03 detectorPV hIoni + 147 -122 110 2.61e+03 0.0097 2.36 0.0559 5.22e+03 detectorPV hIoni + 148 -122 110 2.61e+03 0 0.0097 0.00025 5.22e+03 detectorPV hIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -122 111 2.58e+03 0.00347 0 0 0 World initStep + 1 -121 110 2.58e+03 0 0.00347 1.6 1.6 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -121 111 2.54e+03 0.0015 0 0 0 World initStep + 1 -121 111 2.54e+03 0 0.0015 0.51 0.51 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -121 111 2.52e+03 0.00299 0 0 0 World initStep + 1 -122 111 2.52e+03 0.00176 0.00122 1.39 1.39 World eIoni + 2 -122 111 2.52e+03 0 0.00176 0.656 2.05 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -121 112 2.45e+03 0.00109 0 0 0 World initStep + 1 -121 111 2.45e+03 0 0.00109 0.318 0.318 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -121 112 2.44e+03 0.00172 0 0 0 World initStep + 1 -120 112 2.44e+03 0 0.00172 0.631 0.631 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -120 112 2.4e+03 0.0644 0 0 0 World initStep + 1 -140 138 2.44e+03 0.059 0.00431 50.2 50.2 World eIoni + 2 -153 160 2.48e+03 0.0524 0.00562 58.2 108 World eIoni + 3 -201 169 2.5e+03 0.0469 0.0055 56.1 165 World eIoni + 4 -224 171 2.52e+03 0.041 0.00225 29.2 194 World eIoni + 5 -227 171 2.52e+03 0.0391 0.000563 4.21 198 World eIoni + 6 -238 170 2.52e+03 0.0382 0.000915 12.1 210 World eIoni + 7 -249 168 2.53e+03 0.0345 0.00216 14.2 224 World eIoni + 8 -257 166 2.54e+03 0.032 0.00146 9.45 234 World eIoni + 9 -264 170 2.54e+03 0.0292 0.00176 11 245 World eIoni + 10 -273 181 2.55e+03 0.0238 0.00533 20.4 265 World eIoni + 11 -275 186 2.55e+03 0.0229 0.000919 5.17 270 OutOfWorld CoupledTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 99 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -264 170 2.54e+03 0.00109 0 0 0 World initStep + 1 -264 170 2.54e+03 0 0.00109 0.321 0.321 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 99 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -257 166 2.54e+03 0.00104 0 0 0 World initStep + 1 -257 166 2.54e+03 0 0.00104 0.299 0.299 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 99 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -249 168 2.53e+03 0.00155 0 0 0 World initStep + 1 -249 168 2.53e+03 0 0.00155 0.539 0.539 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 99 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -227 171 2.52e+03 0.00129 0 0 0 World initStep + 1 -227 171 2.52e+03 0 0.00129 0.408 0.408 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 99 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -224 171 2.52e+03 0.00363 0 0 0 World initStep + 1 -224 172 2.52e+03 0 0.00363 1.66 1.66 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 99 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -153 160 2.48e+03 0.00101 0 0 0 World initStep + 1 -153 160 2.48e+03 0 0.00101 0.287 0.287 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 99 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -140 138 2.44e+03 0.00109 0 0 0 World initStep + 1 -140 139 2.44e+03 0 0.00109 0.321 0.321 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -120 112 2.39e+03 0.00123 0 0 0 World initStep + 1 -120 112 2.39e+03 0 0.00123 0.381 0.381 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -120 112 2.38e+03 0.00949 0 0 0 World initStep + 1 -120 113 2.38e+03 0.00802 0.00147 1.51 1.51 World msc + 2 -120 115 2.38e+03 0.00748 0.000536 1.56 3.07 World msc + 3 -119 115 2.39e+03 0.00712 0.000366 1.43 4.5 World msc + 4 -118 115 2.39e+03 0.00656 0.00056 1.46 5.96 World msc + 5 -116 116 2.39e+03 0.00505 0.00151 1.87 7.82 World msc + 6 -115 116 2.39e+03 0.00353 0.00152 2.16 9.99 World eIoni + 7 -114 116 2.39e+03 0.00221 0.00132 1.62 11.6 World eIoni + 8 -114 116 2.39e+03 0 0.00221 0.94 12.6 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -120 112 2.36e+03 0.00337 0 0 0 World initStep + 1 -120 113 2.36e+03 0.00212 0.00125 1.56 1.56 World eIoni + 2 -120 113 2.36e+03 0 0.00212 0.875 2.43 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -119 113 2.28e+03 0.00099 0 0 0 World initStep + 1 -119 113 2.28e+03 0 0.00099 0.278 0.278 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -119 113 2.25e+03 0.00139 0 0 0 World initStep + 1 -119 113 2.25e+03 0 0.00139 0.455 0.455 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -118 114 2.15e+03 0.00115 0 0 0 World initStep + 1 -118 114 2.15e+03 0 0.00115 0.343 0.343 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -118 114 2.15e+03 0.00796 0 0 0 World initStep + 1 -116 115 2.15e+03 0.00665 0.00131 3.25 3.25 World eIoni + 2 -114 117 2.15e+03 0.00431 0.00234 2.73 5.99 World eIoni + 3 -114 118 2.15e+03 0.00199 0.00232 1.91 7.89 World eIoni + 4 -114 118 2.15e+03 0 0.00199 0.793 8.69 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -117 115 2.09e+03 0.00304 0 0 0 World initStep + 1 -117 114 2.09e+03 0 0.00304 1.42 1.42 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -117 115 2.03e+03 0.00528 0 0 0 World initStep + 1 -117 117 2.03e+03 0.00377 0.0015 2.24 2.24 World eIoni + 2 -117 116 2.03e+03 0.0025 0.00127 1.72 3.96 World eIoni + 3 -117 116 2.03e+03 0 0.0025 1.13 5.09 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -116 116 1.98e+03 0.00406 0 0 0 World initStep + 1 -117 116 1.98e+03 0.00218 0.00188 1.82 1.82 World eIoni + 2 -117 117 1.99e+03 0 0.00218 0.917 2.74 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -116 116 1.98e+03 0.00119 0 0 0 World initStep + 1 -116 116 1.98e+03 0 0.00119 0.362 0.362 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -116 116 1.92e+03 0.00146 0 0 0 World initStep + 1 -116 116 1.92e+03 0 0.00146 0.493 0.493 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -114 117 1.75e+03 0.00982 0 0 0 World initStep + 1 -118 116 1.75e+03 0.00804 0.00179 4.09 4.09 World eIoni + 2 -120 116 1.75e+03 0.00639 0.00165 3.29 7.38 World eIoni + 3 -119 115 1.75e+03 0.0042 0.00219 2.64 10 World eIoni + 4 -118 115 1.75e+03 0.00268 0.00152 1.87 11.9 World eIoni + 5 -118 115 1.75e+03 0.00108 0.0016 1.24 13.1 World eIoni + 6 -118 115 1.75e+03 0 0.00108 0.316 13.4 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -113 117 1.68e+03 0.0165 0 0 0 World initStep + 1 -113 122 1.68e+03 0.0146 0.00191 8.2 8.2 World eIoni + 2 -111 124 1.69e+03 0.0109 0.00208 4.88 13.1 World eIoni + 3 -109 123 1.69e+03 0.00945 0.00145 4.64 17.7 World eIoni + 4 -108 123 1.7e+03 0.00593 0.00352 3.91 21.6 World eIoni + 5 -108 123 1.7e+03 0.00416 0.00177 2.47 24.1 World eIoni + 6 -107 123 1.7e+03 0.00262 0.00154 1.85 26 World eIoni + 7 -107 123 1.7e+03 0.00151 0 0.03 26 World eIoni + 8 -107 123 1.7e+03 0 0.00151 0.517 26.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -107 123 1.7e+03 0.00111 0 0 0 World initStep + 1 -107 123 1.7e+03 0 0.00111 0.329 0.329 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -111 124 1.69e+03 0.00164 0 0 0 World initStep + 1 -111 124 1.69e+03 0 0.00164 0.587 0.587 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -113 117 1.68e+03 0.00525 0 0 0 World initStep + 1 -112 117 1.68e+03 0.00317 0.00208 2.23 2.23 World eIoni + 2 -112 116 1.68e+03 0 0.00317 1.48 3.71 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -113 117 1.65e+03 0.0011 0 0 0 World initStep + 1 -113 117 1.65e+03 0 0.0011 0.324 0.324 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -113 117 1.65e+03 0.00174 0 0 0 World initStep + 1 -113 117 1.65e+03 0 0.00174 0.644 0.644 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -113 117 1.62e+03 0.0107 0 0 0 World initStep + 1 -109 116 1.62e+03 0.00898 0.0017 4.53 4.53 World eIoni + 2 -110 113 1.63e+03 0.00739 0.00159 3.7 8.22 World eIoni + 3 -112 112 1.63e+03 0.00637 0.00103 3.02 11.2 World eIoni + 4 -113 113 1.63e+03 0.00451 0.00186 2.63 13.9 World eIoni + 5 -114 114 1.63e+03 0.0037 0.000809 1.98 15.9 World eIoni + 6 -113 115 1.63e+03 0 0.0037 1.69 17.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -112 117 1.59e+03 0.00147 0 0 0 World initStep + 1 -112 118 1.59e+03 0 0.00147 0.495 0.495 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -112 118 1.56e+03 0.0138 0 0 0 World initStep + 1 -116 119 1.56e+03 0.0124 0.00138 5.02 5.02 World msc + 2 -120 122 1.56e+03 0.00915 0.00323 4.92 9.94 World msc + 3 -121 125 1.56e+03 0.00589 0.00327 3.78 13.7 World eIoni + 4 -123 124 1.56e+03 0.00365 0.00224 2.46 16.2 World eIoni + 5 -123 125 1.56e+03 0.00259 0.00106 1.67 17.8 World eIoni + 6 -123 125 1.56e+03 0.00115 0.00143 1.18 19 World eIoni + 7 -123 125 1.56e+03 0 0.00115 0.346 19.4 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -112 118 1.56e+03 0.00145 0 0 0 World initStep + 1 -112 118 1.56e+03 0 0.00145 0.489 0.489 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -111 118 1.49e+03 0.00262 0 0 0 World initStep + 1 -111 118 1.49e+03 0 0.00262 1.2 1.2 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -111 118 1.47e+03 0.00115 0 0 0 World initStep + 1 -111 118 1.47e+03 0 0.00115 0.347 0.347 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -110 118 1.4e+03 0.00808 0 0 0 World initStep + 1 -111 119 1.4e+03 0.00751 0.000577 1.39 1.39 World msc + 2 -113 119 1.4e+03 0.00636 0.00115 1.92 3.31 World msc + 3 -115 119 1.4e+03 0.00502 0.00134 2.58 5.89 World msc + 4 -115 119 1.4e+03 0.00333 0.000139 0.279 6.17 World eIoni + 5 -115 119 1.4e+03 0 0.00333 1.54 7.71 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 75 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -115 119 1.4e+03 0.00155 0 0 0 World initStep + 1 -115 119 1.4e+03 0 0.00155 0.537 0.537 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -108 119 1.21e+03 0.00635 0 0 0 World initStep + 1 -106 118 1.21e+03 0.0056 0.000758 2.62 2.62 World eIoni + 2 -106 118 1.21e+03 0.00323 0.000913 0.608 3.23 World eIoni + 3 -106 117 1.21e+03 0 0.00323 1.5 4.73 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 74 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -106 118 1.21e+03 0.00146 0 0 0 World initStep + 1 -106 118 1.21e+03 0 0.00146 0.49 0.49 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -108 119 1.2e+03 0.0011 0 0 0 World initStep + 1 -108 119 1.2e+03 0 0.0011 0.322 0.322 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -108 119 1.16e+03 0.0024 0 0 0 World initStep + 1 -108 119 1.16e+03 0 0.0024 1.07 1.07 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -106 119 1.06e+03 0.00115 0 0 0 World initStep + 1 -107 119 1.06e+03 0 0.00115 0.345 0.345 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -106 119 1.01e+03 0.00434 0 0 0 World initStep + 1 -105 118 1.01e+03 0.002 0.00235 1.92 1.92 World eIoni + 2 -105 118 1.01e+03 0 0.002 0.797 2.72 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -105 119 986 0.0043 0 0 0 World initStep + 1 -106 119 986 0.00313 0.00117 1.91 1.91 World eIoni + 2 -106 119 986 0 0.00313 1.46 3.36 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -105 120 955 0.00122 0 0 0 World initStep + 1 -105 119 955 0 0.00122 0.378 0.378 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -105 120 941 0.00223 0 0 0 World initStep + 1 -104 119 941 0 0.00223 0.954 0.954 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -104 120 913 0.00337 0 0 0 World initStep + 1 -105 120 913 0.0017 0.00167 1.56 1.56 World eIoni + 2 -105 120 913 0 0.0017 0.618 2.18 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -104 120 868 0.0282 0 0 0 World initStep + 1 -86.9 115 871 0.0238 0.00436 19.2 19.2 World eIoni + 2 -73.7 112 869 0.0214 0.00245 14.6 33.8 World eIoni + 3 -65.3 113 862 0.0193 0.00212 12.2 46 World eIoni + 4 -58.2 110 856 0.0155 0.00374 10.4 56.3 World eIoni + 5 -56.1 105 852 0.014 0.00154 7.48 63.8 World eIoni + 6 -55.5 102 849 0.0119 0.00106 4.43 68.3 World eIoni + 7 -56.2 98.4 846 0.0105 0.00142 5.2 73.5 World eIoni + 8 -58.3 96.4 843 0.00964 0.000865 4.43 77.9 World eIoni + 9 -60 93.4 842 0.0064 0.00324 4.01 81.9 World eIoni + 10 -61 91.9 841 0.00571 0.00069 2.64 84.5 World eIoni + 11 -62.2 92.9 841 0.0033 0.0024 2.39 86.9 World eIoni + 12 -62.6 93.5 842 0 0.0033 1.53 88.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 65 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -55.5 102 849 0.00101 0 0 0 World initStep + 1 -55.6 102 849 0 0.00101 0.285 0.285 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -104 120 862 0.00127 0 0 0 World initStep + 1 -104 120 862 0 0.00127 0.4 0.4 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -102 120 764 0.00337 0 0 0 World initStep + 1 -102 120 764 0.00125 0.00212 1.56 1.56 World eIoni + 2 -102 120 764 0 0.00125 0.388 1.95 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -102 120 748 0.00467 0 0 0 World initStep + 1 -101 121 748 0.00268 0.00199 2.03 2.03 World eIoni + 2 -101 121 747 0 0.00268 1.24 3.27 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -101 121 607 0.00122 0 0 0 World initStep + 1 -100 121 607 0 0.00122 0.376 0.376 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -99.3 121 512 0.00176 0 0 0 World initStep + 1 -99 121 512 0 0.00176 0.657 0.657 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -98 122 407 0.0013 0 0 0 World initStep + 1 -97.9 122 407 0 0.0013 0.412 0.412 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -96.2 123 216 0.00255 0 0 0 World initStep + 1 -96.6 123 216 0 0.00255 1.16 1.16 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -96.2 123 200 0.00146 0 0 0 World initStep + 1 -96 123 200 0 0.00146 0.495 0.495 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -96.1 123 163 0.00273 0 0 0 World initStep + 1 -95.6 124 163 0 0.00273 1.26 1.26 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -96 123 155 0.00102 0 0 0 World initStep + 1 -96.1 123 155 0 0.00102 0.29 0.29 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -96 123 149 0.000995 0 0 0 World initStep + 1 -96.1 124 149 0 0.000995 0.28 0.28 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -95.6 125 31.3 0.00111 0 0 0 World initStep + 1 -95.7 125 31.3 0 0.00111 0.327 0.327 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -95.5 125 5.92 0.0037 0 0 0 World initStep + 1 -96.4 125 6.09 0.0024 0.00131 1.69 1.69 World eIoni + 2 -96.7 125 5.75 0.00141 0.000985 1.07 2.76 World eIoni + 3 -96.5 125 5.76 0 0.00141 0.467 3.22 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -94.7 126 -69.8 0.00456 0 0 0 World initStep + 1 -95.9 126 -69.5 0.00267 0.00189 1.99 1.99 World eIoni + 2 -95.6 126 -69.5 0 0.00267 1.23 3.23 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -94.6 126 -80.3 0.00105 0 0 0 World initStep + 1 -94.6 126 -80.3 0 0.00105 0.3 0.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -93.8 127 -166 0.00933 0 0 0 World initStep + 1 -95.5 129 -165 0.00786 0.00147 3.86 3.86 World eIoni + 2 -97.4 130 -166 0.0067 0.00116 3.21 7.07 World eIoni + 3 -99.2 129 -165 0.00543 0.00127 2.75 9.83 World eIoni + 4 -100 130 -166 0.00388 0.00155 2.29 12.1 World eIoni + 5 -100 129 -166 0.00318 0.000697 1.76 13.9 World eIoni + 6 -100 129 -166 0 0.00318 1.48 15.4 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -93.5 127 -207 0.00131 0 0 0 World initStep + 1 -93.3 127 -207 0 0.00131 0.418 0.418 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -92.9 127 -270 0.00394 0 0 0 World initStep + 1 -93.6 128 -269 0.00159 0.00234 1.78 1.78 World eIoni + 2 -93.5 128 -270 0 0.00159 0.562 2.34 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -92.4 128 -316 0.00119 0 0 0 World initStep + 1 -92.4 128 -316 0 0.00119 0.364 0.364 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -91.6 129 -394 0.00201 0 0 0 World initStep + 1 -91.7 129 -394 0 0.00201 0.809 0.809 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -91.3 129 -424 0.00288 0 0 0 World initStep + 1 -91.9 129 -424 0.00141 0.00147 1.34 1.34 World eIoni + 2 -91.7 128 -424 0 0.00141 0.465 1.8 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -90.7 129 -488 0.00395 0 0 0 World initStep + 1 -91.6 129 -488 0.00148 0.00247 1.78 1.78 World eIoni + 2 -91.4 129 -488 0 0.00148 0.503 2.28 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -90.2 130 -541 0.00419 0 0 0 World initStep + 1 -90.8 131 -541 0.00289 0.0013 1.87 1.87 World eIoni + 2 -90.4 131 -540 0.00111 0.00178 1.35 3.21 World eIoni + 3 -90.4 131 -540 0 0.00111 0.328 3.54 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -90.1 130 -555 0.00225 0 0 0 World initStep + 1 -89.9 129 -555 0 0.00225 0.965 0.965 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89.9 130 -573 0.00168 0 0 0 World initStep + 1 -90.1 130 -573 0 0.00168 0.608 0.608 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89.4 130 -634 0.0122 0 0 0 World initStep + 1 -93 127 -634 0.00999 0.00221 5.36 5.36 World eIoni + 2 -95.4 125 -635 0.00826 0.00174 4.18 9.53 World eIoni + 3 -96.3 124 -634 0.00488 0.00141 1.41 10.9 World eIoni + 4 -97.6 125 -634 0.00177 0.00311 2.1 13.1 World eIoni + 5 -97.7 125 -634 0 0.00177 0.659 13.7 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -96.3 124 -634 0.00197 0 0 0 World initStep + 1 -96.4 124 -634 0 0.00197 0.78 0.78 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -87.4 133 -872 0.00141 0 0 0 World initStep + 1 -87.2 133 -872 0 0.00141 0.466 0.466 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -87 133 -933 0.00111 0 0 0 World initStep + 1 -87 134 -933 0 0.00111 0.329 0.329 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -86.8 134 -962 0.0024 0 0 0 World initStep + 1 -86.7 133 -962 0 0.0024 1.07 1.07 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -86.6 134 -992 0.0157 0 0 0 World initStep + 1 -80.9 135 -988 0.0127 0.003 7.63 7.63 World eIoni + 2 -78.7 139 -986 0.0105 0.00219 5.67 13.3 World eIoni + 3 -76 142 -987 0.00826 0.00228 4.45 17.8 World eIoni + 4 -74.1 143 -988 0.00672 0.00154 3.38 21.1 World eIoni + 5 -72.5 144 -990 0.00576 0.000963 2.76 23.9 World eIoni + 6 -71.5 144 -991 0.00367 0.00208 2.41 26.3 World eIoni + 7 -71.1 143 -991 0 0.00367 1.68 28 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -86.6 134 -1.01e+03 0.0019 0 0 0 World initStep + 1 -86.3 134 -1.01e+03 0 0.0019 0.739 0.739 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -86.3 135 -1.1e+03 0.00177 0 0 0 World initStep + 1 -86 135 -1.1e+03 0 0.00177 0.66 0.66 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -86.2 135 -1.1e+03 0.00589 0 0 0 World initStep + 1 -86.9 134 -1.1e+03 0.00527 0.000625 0.875 0.875 World msc + 2 -87.6 134 -1.1e+03 0.00472 0.000546 0.965 1.84 World msc + 3 -88.5 134 -1.1e+03 0.00311 0.00162 1.09 2.93 World msc + 4 -89.2 134 -1.1e+03 0.00111 0.00199 1.45 4.38 World eIoni + 5 -89.1 134 -1.1e+03 0 0.00111 0.329 4.71 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -86.2 135 -1.11e+03 0.00102 0 0 0 World initStep + 1 -86.1 135 -1.11e+03 0 0.00102 0.291 0.291 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -86 136 -1.19e+03 0.00188 0 0 0 World initStep + 1 -86.3 136 -1.19e+03 0 0.00188 0.724 0.724 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -86 136 -1.22e+03 0.0285 0 0 0 World initStep + 1 -99.3 137 -1.21e+03 0.0255 0.003 19.5 19.5 World eIoni + 2 -106 130 -1.19e+03 0.0213 0.00411 16.2 35.8 World eIoni + 3 -115 129 -1.19e+03 0.018 0.00339 12.2 47.9 World eIoni + 4 -119 128 -1.18e+03 0.0149 0.00159 6.38 54.3 World eIoni + 5 -119 126 -1.18e+03 0.0113 0.00358 7.04 61.4 World eIoni + 6 -118 123 -1.17e+03 0.0105 0.000821 4.86 66.2 World eIoni + 7 -117 120 -1.17e+03 0.00964 0.000848 4.43 70.6 World eIoni + 8 -117 120 -1.17e+03 0.00633 0 0.0287 70.7 World eIoni + 9 -117 118 -1.17e+03 0.00515 0.00118 2.62 73.3 World eIoni + 10 -117 117 -1.17e+03 0.00343 0.00172 2.2 75.5 World eIoni + 11 -118 116 -1.17e+03 0.00196 0.00147 1.58 77.1 World eIoni + 12 -117 116 -1.17e+03 0 0.00196 0.777 77.8 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -117 120 -1.17e+03 0.00331 0 0 0 World initStep + 1 -116 120 -1.17e+03 0 0.00331 1.54 1.54 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -119 128 -1.18e+03 0.00148 0 0 0 World initStep + 1 -119 128 -1.18e+03 0 0.00148 0.503 0.503 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -86 136 -1.23e+03 0.006 0 0 0 World initStep + 1 -86.6 137 -1.23e+03 0.00378 0.00223 2.5 2.5 World eIoni + 2 -87.3 138 -1.23e+03 0.00236 0.00141 1.72 4.21 World eIoni + 3 -87.2 138 -1.23e+03 0 0.00236 1.04 5.26 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -86 136 -1.23e+03 0.0129 0 0 0 World initStep + 1 -88.1 131 -1.23e+03 0.0115 0.00142 5.78 5.78 World eIoni + 2 -88.4 131 -1.23e+03 0.00974 0.000338 0.503 6.28 World eIoni + 3 -91.7 130 -1.23e+03 0.00706 0.00268 4.05 10.3 World eIoni + 4 -93.4 128 -1.23e+03 0.00296 0.0041 2.89 13.2 World eIoni + 5 -93.1 128 -1.23e+03 0.00105 0.0019 1.38 14.6 World eIoni + 6 -93.2 128 -1.23e+03 0 0.00105 0.303 14.9 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 27 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -88.4 131 -1.23e+03 0.00142 0 0 0 World initStep + 1 -88.2 131 -1.23e+03 0 0.00142 0.471 0.471 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -85.8 136 -1.28e+03 0.00164 0 0 0 World initStep + 1 -86 136 -1.28e+03 0 0.00164 0.589 0.589 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -85.7 137 -1.34e+03 0.00298 0 0 0 World initStep + 1 -85.4 136 -1.34e+03 0 0.00298 1.39 1.39 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -85.7 137 -1.36e+03 0.0725 0 0 0 World initStep + 1 -85.6 137 -1.36e+03 0.0702 0.000114 1.4 1.4 World eIoni + 2 -83.3 189 -1.29e+03 0.0587 0.0115 93.9 95.3 World eIoni + 3 -51.7 218 -1.25e+03 0.0494 0.00935 68.6 164 World eIoni + 4 -24.9 247 -1.23e+03 0.0439 0.00543 50.6 214 World eIoni + 5 1.25 272 -1.23e+03 0.0364 0.00756 41.2 256 World eIoni + 6 4.94 275 -1.23e+03 0.0356 0.00076 5.19 261 OutOfWorld CoupledTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -85.6 137 -1.36e+03 0.00213 0 0 0 World initStep + 1 -85.4 137 -1.36e+03 0 0.00213 0.887 0.887 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -85.6 137 -1.41e+03 0.00358 0 0 0 World initStep + 1 -86.3 137 -1.41e+03 0.00148 0.0021 1.64 1.64 World eIoni + 2 -86.3 137 -1.41e+03 0 0.00148 0.502 2.15 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -85.5 137 -1.42e+03 0.00154 0 0 0 World initStep + 1 -85.3 137 -1.42e+03 0 0.00154 0.534 0.534 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -85.5 137 -1.45e+03 0.00483 0 0 0 World initStep + 1 -86.7 137 -1.45e+03 0.00317 0.00166 2.09 2.09 World eIoni + 2 -87.2 136 -1.45e+03 0.00147 0.00169 1.47 3.56 World eIoni + 3 -87.2 136 -1.45e+03 0 0.00147 0.499 4.06 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -85.4 137 -1.48e+03 0.00193 0 0 0 World initStep + 1 -85.7 138 -1.48e+03 0 0.00193 0.754 0.754 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -85.4 138 -1.5e+03 0.00185 0 0 0 World initStep + 1 -85.6 138 -1.5e+03 0 0.00185 0.71 0.71 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -85.2 138 -1.59e+03 0.00108 0 0 0 World initStep + 1 -85.2 138 -1.59e+03 0 0.00108 0.315 0.315 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -85.1 138 -1.63e+03 0.00155 0 0 0 World initStep + 1 -85.1 139 -1.63e+03 0 0.00155 0.537 0.537 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -84.8 140 -1.8e+03 0.0402 0 0 0 World initStep + 1 -99.5 116 -1.78e+03 0.0374 0.00273 35.3 35.3 World eIoni + 2 -74.7 103 -1.79e+03 0.0328 0.00467 31.2 66.5 World eIoni + 3 -55.5 99.5 -1.8e+03 0.0295 0.00326 24.8 91.4 World eIoni + 4 -45.4 95.8 -1.82e+03 0.025 0.00451 20.8 112 World eIoni + 5 -41.2 99.5 -1.83e+03 0.0207 0.00431 15.8 128 World eIoni + 6 -43.3 103 -1.83e+03 0.0194 0.00127 4.58 132 World eIoni + 7 -48.1 106 -1.84e+03 0.0154 0.004 10.5 143 World eIoni + 8 -49.2 108 -1.85e+03 0.0133 0.00209 7.41 150 World eIoni + 9 -51.7 107 -1.85e+03 0.0117 0.0016 6.04 156 World eIoni + 10 -53.7 108 -1.85e+03 0.0103 0.00148 5.09 161 World eIoni + 11 -54 106 -1.86e+03 0.00746 0.0028 4.31 166 World eIoni + 12 -54.7 106 -1.86e+03 0.00596 0.000491 2.99 169 World eIoni + 13 -53.3 105 -1.85e+03 0.00424 0.00172 2.48 171 World eIoni + 14 -52.8 104 -1.86e+03 0.0021 0.00213 1.88 173 World eIoni + 15 -52.5 104 -1.86e+03 0 0.0021 0.866 174 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 16 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -54.7 106 -1.86e+03 0.00101 0 0 0 World initStep + 1 -54.8 106 -1.86e+03 0 0.00101 0.285 0.285 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -84.7 140 -1.81e+03 0.00679 0 0 0 World initStep + 1 -84.4 138 -1.81e+03 0.00323 0.00356 2.79 2.79 World eIoni + 2 -84.2 138 -1.81e+03 0 0.00323 1.5 4.29 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -84.6 140 -1.85e+03 0.00624 0 0 0 World initStep + 1 -83.9 139 -1.85e+03 0.00439 0.000841 1.22 1.22 World eIoni + 2 -82.8 139 -1.85e+03 0.00352 0.000878 1.94 3.16 World eIoni + 3 -82.3 140 -1.85e+03 0.00235 0.00117 1.62 4.78 World eIoni + 4 -82.4 140 -1.85e+03 0 0.00235 0.981 5.76 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 14 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.9 139 -1.85e+03 0.001 0 0 0 World initStep + 1 -83.9 139 -1.85e+03 0 0.001 0.283 0.283 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -84.5 140 -1.91e+03 0.00113 0 0 0 World initStep + 1 -84.5 141 -1.91e+03 0 0.00113 0.338 0.338 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -84.4 141 -1.93e+03 0.00427 0 0 0 World initStep + 1 -83.4 140 -1.93e+03 0.00145 0.00171 1.52 1.52 World eIoni + 2 -83.5 140 -1.93e+03 0 0.00145 0.488 2.01 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.4 140 -1.93e+03 0.00111 0 0 0 World initStep + 1 -83.4 141 -1.93e+03 0 0.00111 0.326 0.326 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -84.1 141 -2.05e+03 0.00164 0 0 0 World initStep + 1 -83.9 141 -2.05e+03 0 0.00164 0.587 0.587 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -84 142 -2.1e+03 0.003 0 0 0 World initStep + 1 -83.4 142 -2.1e+03 0 0.003 1.4 1.4 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.9 142 -2.15e+03 0.00154 0 0 0 World initStep + 1 -84 142 -2.15e+03 0 0.00154 0.532 0.532 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.9 142 -2.16e+03 0.00373 0 0 0 World initStep + 1 -83.6 141 -2.16e+03 0.00143 0.0023 1.7 1.7 World eIoni + 2 -83.4 141 -2.16e+03 0 0.00143 0.479 2.18 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.8 142 -2.19e+03 0.00197 0 0 0 World initStep + 1 -83.7 142 -2.19e+03 0 0.00197 0.782 0.782 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.6 143 -2.29e+03 0.00187 0 0 0 World initStep + 1 -83.6 143 -2.29e+03 0 0.00187 0.721 0.721 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.5 143 -2.29e+03 0.00114 0 0 0 World initStep + 1 -83.6 143 -2.29e+03 0 0.00114 0.342 0.342 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.5 143 -2.3e+03 0.00151 0 0 0 World initStep + 1 -83.7 143 -2.3e+03 0 0.00151 0.516 0.516 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.5 143 -2.41e+03 0.00137 0 0 0 World initStep + 1 -83.3 143 -2.41e+03 0 0.00137 0.448 0.448 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.3 143 -2.54e+03 0.00108 0 0 0 World initStep + 1 -83.2 143 -2.54e+03 0 0.00108 0.313 0.313 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.5 4.21 -2.61e+03 50 0 0 0 World initStep + 1 27.5 4.21 -2.35e+03 50 0.0463 266 266 World hIoni + 2 27.8 3.63 -2.12e+03 49.9 0.0354 226 491 World hIoni + 3 28.1 3.38 -1.98e+03 49.9 0.0267 144 636 World hIoni + 4 28 3.33 -1.95e+03 49.9 0.00691 31.2 667 World hIoni + 5 28 3.29 -1.92e+03 49.9 0.00397 22.4 689 World hIoni + 6 28 3.28 -1.91e+03 49.9 0.00213 9.38 699 World hIoni + 7 28 3.26 -1.9e+03 49.9 0.00132 8.71 708 World hIoni + 8 28 3.19 -1.86e+03 49.9 0.00804 44.7 752 World hIoni + 9 28 3.11 -1.82e+03 49.8 0.0104 44.3 797 World hIoni + 10 28 3.11 -1.81e+03 49.8 0.000221 2.2 799 World hIoni + 11 28 3.09 -1.8e+03 49.8 0.00322 14.8 814 World hIoni + 12 28 2.94 -1.71e+03 49.8 0.0177 87.7 901 World hIoni + 13 27.9 2.84 -1.67e+03 49.8 0.00678 39.9 941 World hIoni + 14 27.9 2.75 -1.63e+03 49.8 0.00789 38.6 980 World hIoni + 15 27.9 2.71 -1.61e+03 49.8 0.00316 24.5 1e+03 World hIoni + 16 27.9 2.7 -1.61e+03 49.8 0.000152 2.19 1.01e+03 World hIoni + 17 27.9 2.56 -1.55e+03 49.8 0.00996 58.8 1.07e+03 World hIoni + 18 27.8 2.5 -1.5e+03 49.8 0.00582 42.4 1.11e+03 World hIoni + 19 27.7 2.44 -1.48e+03 49.8 0.00655 26.2 1.13e+03 World hIoni + 20 27.6 2.33 -1.43e+03 49.7 0.00726 45 1.18e+03 World hIoni + 21 27.6 2.24 -1.41e+03 49.7 0.00447 26.5 1.21e+03 World hIoni + 22 27.6 2.22 -1.4e+03 49.7 0.000591 6.6 1.21e+03 World hIoni + 23 27.5 2.17 -1.38e+03 49.7 0.00514 17.4 1.23e+03 World hIoni + 24 27.4 2.09 -1.36e+03 49.7 0.00605 25.8 1.25e+03 World hIoni + 25 27.4 2.07 -1.35e+03 49.7 0.00127 7.42 1.26e+03 World hIoni + 26 27.2 1.85 -1.27e+03 49.7 0.0145 79.2 1.34e+03 World hIoni + 27 27.1 1.75 -1.24e+03 49.7 0.00312 26 1.37e+03 World hIoni + 28 27.1 1.71 -1.23e+03 49.7 0.00274 13 1.38e+03 World hIoni + 29 27.1 1.64 -1.21e+03 49.7 0.0029 17.4 1.4e+03 World hIoni + 30 27 1.51 -1.18e+03 49.6 0.00795 38.5 1.44e+03 cloudPV CoupledTransportation + 31 27 1.5 -1.17e+03 47.9 1.74 1.32 1.44e+03 World CoupledTransportation + 32 27.3 0.384 -1.11e+03 47.9 0.0121 61.1 1.5e+03 World hIoni + 33 27.4 0.0724 -1.1e+03 47.9 0.00433 16.2 1.52e+03 World hIoni + 34 27.5 -0.531 -1.07e+03 47.9 0.00575 32.2 1.55e+03 World hIoni + 35 28.5 -4.68 -843 47.8 0.0381 222 1.77e+03 World hIoni + 36 28.8 -5.72 -788 47.7 0.00921 55 1.82e+03 World hIoni + 37 29.3 -7.33 -697 47.7 0.0185 91.4 1.92e+03 World hIoni + 38 29.5 -7.79 -670 47.7 0.00416 26.6 1.94e+03 World hIoni + 39 29.7 -8.75 -617 47.7 0.00704 53.6 2e+03 World hIoni + 40 29.8 -8.95 -605 47.7 0.000702 11.5 2.01e+03 cloudPV CoupledTransportation + 41 29.8 -8.95 -605 47.4 0.248 0.216 2.01e+03 World CoupledTransportation + 42 29.8 -9.03 -602 47.4 0.000786 3.41 2.01e+03 World hIoni + 43 30.3 -11.7 -477 47.4 0.0224 125 2.14e+03 World hIoni + 44 30.5 -12.7 -431 47.4 0.0095 45.5 2.18e+03 World hIoni + 45 30.8 -14.5 -351 47.4 0.0144 80 2.26e+03 World hIoni + 46 31.4 -17.3 -218 47.3 0.0209 133 2.39e+03 World hIoni + 47 32.3 -20 -80.1 47.3 0.0253 138 2.53e+03 World hIoni + 48 32.3 -20.2 -74.8 47.3 0.000569 5.32 2.54e+03 World hIoni + 49 32.3 -20.2 -73.3 47.2 0.000226 1.46 2.54e+03 World hIoni + 50 32.9 -22.6 35.8 47.2 0.0241 109 2.65e+03 World hIoni + 51 33.6 -25 145 47.2 0.0195 109 2.76e+03 World hIoni + 52 34.2 -27.1 234 47.1 0.0143 89 2.85e+03 World hIoni + 53 34.2 -27.1 238 47.1 0.00161 3.28 2.85e+03 World hIoni + 54 34.6 -28.3 289 47.1 0.00945 51.5 2.9e+03 World hIoni + 55 34.8 -29.1 321 47.1 0.00566 32.3 2.93e+03 World hIoni + 56 35.2 -30.4 377 47.1 0.0117 56.1 2.99e+03 World hIoni + 57 35.4 -31.3 418 47.1 0.0076 40.5 3.03e+03 World hIoni + 58 35.4 -31.3 418 47.1 0 0.392 3.03e+03 World hIoni + 59 35.6 -31.8 441 47.1 0.00528 23.2 3.05e+03 World hIoni + 60 35.6 -31.9 446 47.1 0.000969 4.48 3.06e+03 World hIoni + 61 35.7 -32.3 463 47.1 0.00209 16.7 3.08e+03 World hIoni + 62 35.7 -32.3 463 47.1 0.000122 0.688 3.08e+03 World hIoni + 63 35.7 -32.4 467 47.1 0.000789 3.66 3.08e+03 World hIoni + 64 35.8 -32.7 481 47 0.0047 13.8 3.09e+03 World hIoni + 65 35.8 -32.8 483 47 2.21e-05 1.91 3.1e+03 World hIoni + 66 35.8 -32.8 485 47 0.000659 1.86 3.1e+03 World hIoni + 67 35.8 -32.9 491 46.9 0.00184 6.2 3.1e+03 World hIoni + 68 36.1 -33.8 528 46.9 0.00842 37.5 3.14e+03 World hIoni + 69 36.4 -35 580 46.9 0.0113 51.6 3.19e+03 World hIoni + 70 37.3 -37.9 710 46.9 0.0279 131 3.32e+03 World hIoni + 71 37.5 -38.4 733 46.9 0.00437 22.5 3.35e+03 cloudPV CoupledTransportation + 72 37.5 -38.4 734 45.1 1.74 1.3 3.35e+03 World CoupledTransportation + 73 37.9 -39 778 45.1 0.00669 43.4 3.39e+03 World hIoni + 74 38.2 -39.4 804 45.1 0.00662 26.7 3.42e+03 World hIoni + 75 38.2 -39.5 812 45.1 0.00142 7.5 3.42e+03 World hIoni + 76 38.9 -40.4 880 45.1 0.012 68 3.49e+03 World hIoni + 77 39.2 -40.9 916 45.1 0.00539 36.8 3.53e+03 World hIoni + 78 39.5 -41.2 940 45.1 0.00493 23.1 3.55e+03 cloudPV CoupledTransportation + 79 39.5 -41.2 941 43.1 1.98 1.66 3.55e+03 World CoupledTransportation + 80 39.5 -41.1 953 43.1 0.00127 11.3 3.57e+03 World hIoni + 81 39.4 -40.8 992 43.1 0.00942 39.9 3.61e+03 World hIoni + 82 39.4 -40.8 998 43.1 0.000605 5.87 3.61e+03 World hIoni + 83 39.4 -40.7 1.01e+03 43.1 0.00282 10.8 3.62e+03 World hIoni + 84 39.5 -40.2 1.07e+03 43 0.0139 63.9 3.69e+03 World hIoni + 85 39.5 -40.2 1.07e+03 43 7.34e-05 1.25 3.69e+03 World hIoni + 86 39.5 -40.1 1.08e+03 43 0.0019 6.61 3.69e+03 World hIoni + 87 39.5 -40.1 1.08e+03 43 0.000204 1.28 3.7e+03 World hIoni + 88 39.4 -40 1.11e+03 43 0.00326 24.2 3.72e+03 World hIoni + 89 39.5 -39.7 1.13e+03 43 0.00602 28.5 3.75e+03 World hIoni + 90 39.5 -39.7 1.14e+03 43 0.000261 1.8 3.75e+03 World hIoni + 91 39.5 -39.1 1.22e+03 43 0.0186 78.6 3.83e+03 World hIoni + 92 39.4 -38.6 1.31e+03 43 0.0198 95.1 3.92e+03 World hIoni + 93 39.4 -38.6 1.32e+03 43 0.00113 9.53 3.93e+03 World hIoni + 94 39.3 -37.9 1.44e+03 42.9 0.0275 119 4.05e+03 World hIoni + 95 39.2 -37.7 1.48e+03 42.9 0.0105 43.7 4.1e+03 World hIoni + 96 39.2 -37.6 1.49e+03 42.9 0.000716 5.97 4.1e+03 World hIoni + 97 39.2 -37.5 1.5e+03 42.9 0.00274 16.9 4.12e+03 World hIoni + 98 39.2 -37.5 1.51e+03 42.9 0.00112 4.17 4.12e+03 World hIoni + 99 39.1 -37.2 1.56e+03 42.9 0.0075 46 4.17e+03 World hIoni + 100 39.1 -37.2 1.56e+03 42.9 0.000257 1.63 4.17e+03 World hIoni + 101 39.1 -37.2 1.56e+03 42.9 0.00259 7.03 4.18e+03 World hIoni + 102 38.9 -36.7 1.66e+03 42.9 0.0176 96.7 4.27e+03 World hIoni + 103 38.8 -36.3 1.76e+03 42.8 0.02 102 4.38e+03 World hIoni + 104 38.8 -36.3 1.77e+03 42.8 0.000336 2.78 4.38e+03 World hIoni + 105 38.7 -36.2 1.79e+03 42.8 0.00312 22.6 4.4e+03 World hIoni + 106 38.6 -35.9 1.85e+03 42.8 0.0112 65 4.47e+03 World hIoni + 107 38.5 -35.8 1.87e+03 42.8 0.00273 15.1 4.48e+03 World hIoni + 108 37.9 -34.9 2.03e+03 42.8 0.0362 161 4.64e+03 World hIoni + 109 37.9 -34.9 2.03e+03 42.8 0.000239 3.99 4.65e+03 World hIoni + 110 37.9 -34.8 2.05e+03 42.8 0.00298 13 4.66e+03 World hIoni + 111 37.8 -34.6 2.07e+03 42.8 0.00453 27.5 4.69e+03 World hIoni + 112 37.8 -34.5 2.09e+03 42.8 0.00368 18.1 4.7e+03 World hIoni + 113 37.7 -34.3 2.11e+03 42.7 0.00309 21.1 4.73e+03 World hIoni + 114 37.7 -34.2 2.13e+03 42.7 0.00262 12.6 4.74e+03 World hIoni + 115 37.6 -33.8 2.18e+03 42.7 0.0112 55.4 4.79e+03 World hIoni + 116 37.6 -33.5 2.22e+03 42.7 0.00778 41.8 4.84e+03 World hIoni + 117 37.6 -33.5 2.23e+03 42.7 0.000562 5.02 4.84e+03 World hIoni + 118 37.6 -33.4 2.24e+03 42.7 0.00322 13.4 4.85e+03 World hIoni + 119 37.6 -33.3 2.26e+03 42.6 0.00393 16.1 4.87e+03 World hIoni + 120 37.8 -33 2.31e+03 42.6 0.00883 51.5 4.92e+03 World hIoni + 121 37.9 -32.8 2.35e+03 42.6 0.008 37.4 4.96e+03 World hIoni + 122 38 -32.5 2.4e+03 42.6 0.0141 58.6 5.02e+03 World hIoni + 123 38 -32.5 2.41e+03 42.6 9.21e-05 0.921 5.02e+03 World hIoni + 124 38.1 -32.4 2.43e+03 42.6 0.00306 21.3 5.04e+03 World hIoni + 125 38.4 -31.9 2.5e+03 42.6 0.0202 75 5.11e+03 World hIoni + 126 38.5 -31.7 2.55e+03 42.5 0.00947 44.1 5.16e+03 World hIoni + 127 38.6 -31.5 2.57e+03 42.5 0.0054 28.4 5.19e+03 World hIoni + 128 38.7 -31.4 2.6e+03 42.5 0.00625 25.9 5.21e+03 detectorPV CoupledTransportation + 129 38.7 -31.3 2.6e+03 36.7 5.81 1.79 5.21e+03 detectorPV hIoni + 130 38.7 -31.4 2.6e+03 31.9 4.81 1.42 5.22e+03 detectorPV hIoni + 131 38.7 -31.4 2.6e+03 27.5 4.37 1.14 5.22e+03 detectorPV hIoni + 132 38.7 -31.4 2.61e+03 23.5 4 0.913 5.22e+03 detectorPV hIoni + 133 38.7 -31.5 2.61e+03 19.9 3.66 0.729 5.22e+03 detectorPV hIoni + 134 38.7 -31.5 2.61e+03 16.6 3.29 0.581 5.22e+03 detectorPV hIoni + 135 38.7 -31.6 2.61e+03 13.5 3.04 0.463 5.22e+03 detectorPV hIoni + 136 38.6 -31.6 2.61e+03 10.6 2.89 0.368 5.22e+03 detectorPV hIoni + 137 38.6 -31.6 2.61e+03 7.85 2.8 0.29 5.22e+03 detectorPV hIoni + 138 38.6 -31.6 2.61e+03 4.99 2.85 0.224 5.22e+03 detectorPV hIoni + 139 38.6 -31.6 2.61e+03 1.67 3.32 0.157 5.22e+03 detectorPV hIoni + 140 38.6 -31.6 2.61e+03 0 1.67 0.032 5.22e+03 detectorPV hIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.6 -31.5 2.57e+03 0.0243 0 0 0 World initStep + 1 31 -35.3 2.59e+03 0.0213 0.00301 15 15 World eIoni + 2 27.2 -38.9 2.59e+03 0.0146 0.00319 11.3 26.3 World eIoni + 3 24.2 -39.3 2.6e+03 0.0121 0.00242 6.82 33.1 World eIoni + 4 20.5 -39.2 2.6e+03 0.0108 0.00131 4.42 37.5 detectorPV CoupledTransportation + 5 20.5 -39.2 2.6e+03 0.0107 0.000149 5.98e-05 37.5 detectorPV msc + 6 20.5 -39.2 2.6e+03 0.0105 0.000164 5.91e-05 37.5 detectorPV msc + 7 20.5 -39.2 2.6e+03 0.0104 0.000104 6.18e-05 37.5 detectorPV msc + 8 20.5 -39.2 2.6e+03 0.0103 9.82e-05 5.93e-05 37.5 detectorPV msc + 9 20.5 -39.2 2.6e+03 0.0102 7.59e-05 6.74e-05 37.5 detectorPV msc + 10 20.5 -39.2 2.6e+03 0.00967 0.000576 9.46e-05 37.5 detectorPV msc + 11 20.5 -39.2 2.6e+03 0.00917 0.000502 0.000123 37.5 detectorPV msc + 12 20.5 -39.2 2.6e+03 0.00848 0.000685 0.000141 37.5 detectorPV msc + 13 20.5 -39.2 2.6e+03 0.00661 0.00187 0.000223 37.5 detectorPV msc + 14 20.5 -39.2 2.6e+03 0 0.00661 0.00066 37.5 detectorPV eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 102 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.2 -38.9 2.59e+03 0.00355 0 0 0 World initStep + 1 26.7 -39.5 2.59e+03 0.00218 0.00137 1.63 1.63 World eIoni + 2 26.8 -39.7 2.59e+03 0 0.00218 0.916 2.55 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.5 -31.7 2.55e+03 0.00347 0 0 0 World initStep + 1 37.7 -31.8 2.55e+03 0.0013 0.00217 1.6 1.6 World eIoni + 2 37.6 -31.8 2.55e+03 0 0.0013 0.411 2.01 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.4 -31.9 2.5e+03 0.00163 0 0 0 World initStep + 1 38.2 -31.8 2.5e+03 0 0.00163 0.582 0.582 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.1 -32.4 2.43e+03 0.00144 0 0 0 World initStep + 1 37.9 -32.4 2.43e+03 0 0.00144 0.482 0.482 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38 -32.5 2.4e+03 0.00754 0 0 0 World initStep + 1 37.6 -30.3 2.41e+03 0.00588 0.00166 3.08 3.08 World eIoni + 2 38.4 -29.6 2.4e+03 0.00457 0.00131 2.45 5.53 World eIoni + 3 38.8 -28.7 2.4e+03 0.00331 0.00126 2 7.53 World eIoni + 4 39.1 -28 2.4e+03 0.00157 0.00173 1.53 9.07 World eIoni + 5 39 -27.8 2.4e+03 0 0.00157 0.551 9.62 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.9 -32.8 2.35e+03 0.00401 0 0 0 World initStep + 1 38.1 -33.8 2.35e+03 0.00166 0.00235 1.8 1.8 World eIoni + 2 37.9 -33.8 2.35e+03 0 0.00166 0.599 2.4 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.8 -33 2.31e+03 0.00515 0 0 0 World initStep + 1 38.5 -33.9 2.31e+03 0.0035 0.000392 1.55 1.55 World eIoni + 2 39.1 -34.3 2.31e+03 0.00117 0.00233 1.61 3.17 World eIoni + 3 39 -34.4 2.31e+03 0 0.00117 0.353 3.52 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 96 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.5 -33.9 2.31e+03 0.00126 0 0 0 World initStep + 1 38.5 -33.7 2.31e+03 0 0.00126 0.396 0.396 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.6 -33.3 2.26e+03 0.0186 0 0 0 World initStep + 1 31.8 -33.5 2.26e+03 0.0158 0.00284 9.84 9.84 World eIoni + 2 29.5 -29.8 2.27e+03 0.0137 0.00207 7.67 17.5 World eIoni + 3 30.1 -24.4 2.27e+03 0.0109 0.00281 6.28 23.8 World eIoni + 4 31.5 -20.7 2.27e+03 0.00945 0.00148 4.65 28.4 World eIoni + 5 33.9 -18.2 2.27e+03 0.00743 0.00202 3.92 32.4 World eIoni + 6 35.7 -16.8 2.26e+03 0.00518 0.00225 3.04 35.4 World eIoni + 7 35.5 -15.7 2.26e+03 0.00361 0.00156 2.21 37.6 World eIoni + 8 35.5 -15.5 2.26e+03 0.00268 0.000931 1.66 39.3 World eIoni + 9 35.7 -16 2.26e+03 0 0.00268 1.24 40.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.6 -33.4 2.24e+03 0.0374 0 0 0 World initStep + 1 40.9 -10.9 2.26e+03 0.0334 0.00398 31.1 31.1 World eIoni + 2 42.7 -7.07 2.26e+03 0.029 0.001 4.65 35.8 World eIoni + 3 57.3 -2.49 2.27e+03 0.0247 0.00435 20.2 56 World eIoni + 4 65.5 -1.72 2.27e+03 0.0195 0.00375 9.21 65.2 World eIoni + 5 74.5 -2.73 2.28e+03 0.0167 0.00279 10.6 75.7 World eIoni + 6 75 -2.44 2.28e+03 0.0141 0.000115 0.7 76.4 World eIoni + 7 76.9 1.04 2.28e+03 0.0112 0.00296 6.53 83 World eIoni + 8 77.2 5.22 2.28e+03 0.00972 0.00145 4.78 87.7 World eIoni + 9 76.3 5.6 2.29e+03 0.0086 0.00112 4.04 91.8 World eIoni + 10 75.8 3.59 2.29e+03 0.00676 0.00184 3.53 95.3 World eIoni + 11 75.6 2.35 2.29e+03 0.00316 0.0012 2.04 97.3 World eIoni + 12 75 2.16 2.29e+03 0 0.00316 1.47 98.8 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 94 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 75.6 2.35 2.29e+03 0.0024 0 0 0 World initStep + 1 75.6 2.22 2.29e+03 0 0.0024 1.07 1.07 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 94 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 75 -2.44 2.28e+03 0.00249 0 0 0 World initStep + 1 75.4 -2.29 2.28e+03 0 0.00249 1.13 1.13 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 94 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 65.5 -1.72 2.27e+03 0.00139 0 0 0 World initStep + 1 65.5 -1.77 2.27e+03 0 0.00139 0.457 0.457 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 94 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 42.7 -7.07 2.26e+03 0.00338 0 0 0 World initStep + 1 43 -6.57 2.26e+03 0.00101 0.00237 1.57 1.57 World eIoni + 2 43 -6.5 2.26e+03 0 0.00101 0.288 1.85 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.6 -33.5 2.23e+03 0.00121 0 0 0 World initStep + 1 37.5 -33.4 2.23e+03 0 0.00121 0.373 0.373 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.6 -33.5 2.22e+03 0.00104 0 0 0 World initStep + 1 37.7 -33.6 2.22e+03 0 0.00104 0.297 0.297 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.6 -33.8 2.18e+03 0.03 0 0 0 World initStep + 1 29 -23.4 2.19e+03 0.0263 0.00372 21.4 21.4 World eIoni + 2 21.2 -13.5 2.2e+03 0.0237 0.00256 17.1 38.5 World eIoni + 3 12 -12.3 2.21e+03 0.0205 0.00327 14.5 53 World eIoni + 4 6.88 -6.87 2.22e+03 0.0182 0.00228 11.4 64.4 World eIoni + 5 1.5 -0.24 2.22e+03 0.0164 0.00184 9.48 73.8 World eIoni + 6 -5.43 2.56 2.22e+03 0.0146 0.00175 8.07 81.9 World eIoni + 7 -9.92 6.62 2.22e+03 0.0117 0.00292 6.85 88.8 World eIoni + 8 -12.3 9.24 2.23e+03 0.0107 0.000982 5.06 93.8 World eIoni + 9 -12.7 9.14 2.23e+03 0.00925 0.00145 4.53 98.4 World eIoni + 10 -12 9.26 2.24e+03 0.00815 0.0011 3.82 102 World eIoni + 11 -12.1 7.89 2.24e+03 0.00713 0.00101 3.33 106 World eIoni + 12 -10.7 6.79 2.24e+03 0.00553 0.0016 2.92 108 World eIoni + 13 -10.2 6.9 2.24e+03 0.00191 0.00215 1.01 109 World eIoni + 14 -10.4 7.02 2.24e+03 0 0.00191 0.745 110 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 91 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -10.2 6.9 2.24e+03 0.00147 0 0 0 World initStep + 1 -10.1 6.97 2.24e+03 0 0.00147 0.499 0.499 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.7 -34.3 2.11e+03 0.00166 0 0 0 World initStep + 1 37.7 -34.1 2.11e+03 0 0.00166 0.597 0.597 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.8 -34.5 2.09e+03 0.00331 0 0 0 World initStep + 1 37.6 -35.2 2.09e+03 0.00127 0.00204 1.54 1.54 World eIoni + 2 37.6 -35.1 2.09e+03 0 0.00127 0.4 1.94 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.8 -34.6 2.07e+03 0.00107 0 0 0 World initStep + 1 37.7 -34.5 2.07e+03 0 0.00107 0.309 0.309 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.9 -34.8 2.05e+03 0.00729 0 0 0 World initStep + 1 36.2 -36.1 2.05e+03 0.00465 0.00263 2.98 2.98 World eIoni + 2 35 -36 2.05e+03 0.00255 0.00211 2.03 5.01 World eIoni + 3 34.7 -35.8 2.05e+03 0.00107 0.00147 1.16 6.17 World eIoni + 4 34.8 -35.8 2.05e+03 0 0.00107 0.312 6.48 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.9 -34.9 2.03e+03 0.00172 0 0 0 World initStep + 1 37.8 -34.7 2.03e+03 0 0.00172 0.634 0.634 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.9 -34.9 2.03e+03 0.00212 0 0 0 World initStep + 1 37.7 -34.6 2.03e+03 0 0.00212 0.877 0.877 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.5 -35.8 1.87e+03 0.00125 0 0 0 World initStep + 1 38.6 -35.9 1.87e+03 0 0.00125 0.39 0.39 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.6 -35.9 1.85e+03 0.00293 0 0 0 World initStep + 1 38.2 -36.4 1.85e+03 0 0.00293 1.2 1.2 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.7 -36.2 1.79e+03 0.00259 0 0 0 World initStep + 1 38.9 -36.7 1.79e+03 0 0.00259 1.19 1.19 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.8 -36.3 1.77e+03 0.00134 0 0 0 World initStep + 1 38.8 -36.1 1.77e+03 0 0.00134 0.434 0.434 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.8 -36.3 1.76e+03 0.0152 0 0 0 World initStep + 1 41.8 -33.5 1.76e+03 0.0111 0.00127 4.68 4.68 World eIoni + 2 44.8 -30.3 1.76e+03 0.00935 0.00176 4.74 9.43 World eIoni + 3 45.9 -28.5 1.77e+03 0.00795 0.00139 3.87 13.3 World eIoni + 4 47.1 -27 1.77e+03 0.00713 0.000822 3.25 16.5 World eIoni + 5 47 -25.1 1.77e+03 0.005 0.00213 2.92 19.5 World eIoni + 6 47.3 -26.3 1.77e+03 0.00178 0.00322 2.15 21.6 World eIoni + 7 47.5 -26.3 1.77e+03 0 0.00178 0.669 22.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 80 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 41.8 -33.5 1.76e+03 0.00285 0 0 0 World initStep + 1 42 -33.3 1.76e+03 0.00112 0.00173 1.33 1.33 World eIoni + 2 42.1 -33.4 1.76e+03 0 0.00112 0.331 1.66 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.9 -36.7 1.66e+03 0.00142 0 0 0 World initStep + 1 38.7 -36.8 1.66e+03 0 0.00142 0.473 0.473 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.1 -37.2 1.56e+03 0.00341 0 0 0 World initStep + 1 39.2 -36.4 1.56e+03 0.00177 0.00164 1.58 1.58 World eIoni + 2 38.9 -36.4 1.56e+03 0 0.00177 0.659 2.23 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.1 -37.2 1.56e+03 0.00567 0 0 0 World initStep + 1 38.6 -35.7 1.56e+03 0.00474 0.000929 2.38 2.38 World eIoni + 2 38.8 -35 1.56e+03 0.0033 0.00144 2.06 4.44 World eIoni + 3 38.8 -35.6 1.56e+03 0 0.0033 1.53 5.97 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.1 -37.2 1.56e+03 0.00322 0 0 0 World initStep + 1 39.5 -36.6 1.56e+03 0 0.00322 1.5 1.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.2 -37.5 1.51e+03 0.00178 0 0 0 World initStep + 1 39.5 -37.5 1.51e+03 0 0.00178 0.666 0.666 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.2 -37.5 1.5e+03 0.00124 0 0 0 World initStep + 1 39.3 -37.5 1.51e+03 0 0.00124 0.384 0.384 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.2 -37.6 1.49e+03 0.0106 0 0 0 World initStep + 1 37.5 -39.9 1.49e+03 0.00658 0.00073 3.96 3.96 World eIoni + 2 37.5 -39.9 1.49e+03 0.00438 1.81e-05 0.0525 4.02 World eIoni + 3 37.5 -41.1 1.49e+03 0.00271 0.00167 1.94 5.95 World eIoni + 4 37.2 -41.4 1.49e+03 0 0.00271 1.25 7.21 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 73 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.5 -39.9 1.49e+03 0.00218 0 0 0 World initStep + 1 37.5 -39.9 1.49e+03 0 0.00218 0.917 0.917 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 73 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.5 -39.9 1.49e+03 0.00328 0 0 0 World initStep + 1 37 -40.2 1.49e+03 0 0.00328 1.52 1.52 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.3 -37.9 1.44e+03 0.00126 0 0 0 World initStep + 1 39.5 -37.9 1.44e+03 0 0.00126 0.396 0.396 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.4 -38.6 1.31e+03 0.00137 0 0 0 World initStep + 1 39.6 -38.7 1.31e+03 0 0.00137 0.447 0.447 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.5 -39.7 1.14e+03 0.00179 0 0 0 World initStep + 1 39.7 -39.7 1.14e+03 0 0.00179 0.672 0.672 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.5 -39.7 1.13e+03 0.00108 0 0 0 World initStep + 1 39.4 -39.6 1.13e+03 0 0.00108 0.316 0.316 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.4 -40 1.11e+03 0.00386 0 0 0 World initStep + 1 38.6 -40.4 1.11e+03 0.00301 0.000854 1.75 1.75 World eIoni + 2 38.6 -40.1 1.11e+03 0 0.00301 1.4 3.15 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.5 -40.1 1.08e+03 0.00192 0 0 0 World initStep + 1 39.4 -40.4 1.08e+03 0 0.00192 0.748 0.748 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.5 -40.1 1.08e+03 0.00188 0 0 0 World initStep + 1 39.2 -40.1 1.08e+03 0 0.00188 0.727 0.727 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.5 -40.2 1.07e+03 0.00397 0 0 0 World initStep + 1 40.4 -39.8 1.07e+03 0.00195 0.00202 1.79 1.79 World eIoni + 2 40.6 -39.7 1.07e+03 0 0.00195 0.769 2.56 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.5 -40.2 1.07e+03 0.00114 0 0 0 World initStep + 1 39.4 -40.1 1.07e+03 0 0.00114 0.34 0.34 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.4 -40.8 998 0.0048 0 0 0 World initStep + 1 38.9 -41.9 999 0.00349 0.00131 2.08 2.08 World eIoni + 2 38.4 -42.5 999 0 0.00349 1.61 3.69 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.4 -40.8 992 0.00393 0 0 0 World initStep + 1 39.7 -41.6 993 0.00183 0.000833 1.3 1.3 World eIoni + 2 39.8 -41.9 992 0 0.00183 0.694 1.99 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 62 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.7 -41.6 993 0.00127 0 0 0 World initStep + 1 39.8 -41.6 993 0 0.00127 0.4 0.4 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.5 -41.1 953 0.0197 0 0 0 World initStep + 1 40.3 -45.5 954 0.0151 0.00142 4.98 4.98 World eIoni + 2 39.5 -47.2 955 0.0147 0.000448 2.16 7.14 World eIoni + 3 37.3 -53.2 955 0.0102 0.00449 6.9 14 World eIoni + 4 36 -56.3 954 0.00791 0.00228 4.27 18.3 World eIoni + 5 35.5 -56.5 956 0.00601 0.000823 2.33 20.6 World eIoni + 6 34.6 -55.6 957 0.00423 0.00178 2.5 23.1 World eIoni + 7 33.6 -55.4 958 0.00283 0.0014 1.88 25 World eIoni + 8 33.6 -55.8 957 0 0.00283 1.31 26.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 61 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.5 -56.5 956 0.00108 0 0 0 World initStep + 1 35.4 -56.6 956 0 0.00108 0.313 0.313 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 61 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 40.3 -45.5 954 0.00316 0 0 0 World initStep + 1 40.1 -45.8 954 0 0.00316 1.47 1.47 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.9 -40.4 880 0.00118 0 0 0 World initStep + 1 38.8 -40.5 880 0 0.00118 0.357 0.357 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 38.2 -39.4 804 0.00955 0 0 0 World initStep + 1 35.2 -39.8 805 0.00816 0.00139 3.96 3.96 World eIoni + 2 36.1 -38.1 806 0.00611 0.000817 2.7 6.66 World eIoni + 3 35.6 -37.1 805 0.00474 0.00137 2.54 9.2 World eIoni + 4 34.5 -36.4 805 0.00272 0.00201 2.06 11.3 World eIoni + 5 34.3 -36.9 805 0 0.00272 1.26 12.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 59 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 36.1 -38.1 806 0.00123 0 0 0 World initStep + 1 36 -38 806 0 0.00123 0.381 0.381 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.3 -37.9 710 0.00145 0 0 0 World initStep + 1 37.2 -37.9 710 0 0.00145 0.487 0.487 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 36.4 -35 580 0.00137 0 0 0 World initStep + 1 36.5 -35.1 580 0 0.00137 0.447 0.447 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 36.1 -33.8 528 0.00944 0 0 0 World initStep + 1 38.1 -31.7 529 0.00799 0.00145 3.91 3.91 World eIoni + 2 40.1 -31.1 528 0.00629 0.0017 3.27 7.18 World eIoni + 3 41.1 -32.2 527 0.00388 0.00241 2.6 9.78 World eIoni + 4 41.8 -31.7 527 0.00262 0.00126 1.76 11.5 World eIoni + 5 41.4 -32 527 0 0.00262 1.2 12.7 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.8 -32.9 491 0.102 0 0 0 World initStep + 1 23 -53.6 591 0.0889 0.00612 112 112 World eIoni + 2 1.55 -61.1 617 0.0854 0.00144 36.2 148 World eIoni + 3 -16.6 -75.6 730 0.0753 0.0101 132 280 World eIoni + 4 -19.1 -82.3 772 0.071 0.00431 45.5 326 cloudPV CoupledTransportation + 5 -19.1 -82.3 772 0.0698 0.00113 0.00301 326 cloudPV msc + 6 -19.1 -82.3 772 0.0684 0.00145 0.00334 326 cloudPV msc + 7 -19.1 -82.3 772 0.0678 0.000594 0.00322 326 cloudPV msc + 8 -19.1 -82.3 772 0.0665 0.00126 0.00319 326 cloudPV msc + 9 -19.1 -82.3 772 0.0659 0.000597 0.00431 326 cloudPV msc + 10 -19.1 -82.3 772 0.064 0.00196 0.00691 326 cloudPV msc + 11 -19.1 -82.3 772 0.0599 0.00407 0.00739 326 cloudPV msc + 12 -19.1 -82.3 772 0.0515 0.00837 0.0109 326 cloudPV msc + 13 -19.1 -82.3 772 0.0418 0.0097 0.0153 326 cloudPV msc + 14 -19.1 -82.3 772 0 0.0418 0.0318 326 cloudPV eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.55 -61.1 617 0.00213 0 0 0 World initStep + 1 1.88 -61.2 617 0 0.00213 0.887 0.887 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 23 -53.6 591 0.00656 0 0 0 World initStep + 1 21.8 -54.5 589 0.00471 0.00185 2.7 2.7 World eIoni + 2 21.4 -55.6 590 0.00375 0.000957 2.05 4.75 World eIoni + 3 20.5 -56 590 0.00147 0.00228 1.71 6.46 World eIoni + 4 20.6 -56.2 590 0 0.00147 0.498 6.96 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.8 -32.8 485 0.00137 0 0 0 World initStep + 1 35.7 -32.6 485 0 0.00137 0.447 0.447 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.8 -32.8 483 0.00208 0 0 0 World initStep + 1 36.1 -32.9 483 0 0.00208 0.852 0.852 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.8 -32.7 481 0.00104 0 0 0 World initStep + 1 35.9 -32.7 481 0 0.00104 0.3 0.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.7 -32.3 463 0.00192 0 0 0 World initStep + 1 36 -32.4 463 0 0.00192 0.75 0.75 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.7 -32.3 463 0.00336 0 0 0 World initStep + 1 36.4 -32.5 463 0.00166 0.00171 1.56 1.56 World eIoni + 2 36.4 -32.7 463 0 0.00166 0.598 2.16 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.6 -31.9 446 0.00109 0 0 0 World initStep + 1 35.5 -31.8 446 0 0.00109 0.317 0.317 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.4 -31.3 418 0.00128 0 0 0 World initStep + 1 35.4 -31.1 418 0 0.00128 0.406 0.406 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.4 -31.3 418 0.00738 0 0 0 World initStep + 1 35.3 -32.6 418 0.00539 0.00199 1.36 1.36 World msc + 2 34.4 -33.5 418 0.00515 0.000237 1.46 2.81 World msc + 3 33.1 -34.3 418 0.00328 0.00187 1.73 4.55 World msc + 4 32.4 -34.6 418 0.00105 0.00223 1.52 6.07 World eIoni + 5 32.5 -34.7 418 0 0.00105 0.304 6.38 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.2 -30.4 377 0.0023 0 0 0 World initStep + 1 35.1 -30 377 0 0.0023 1 1 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.8 -29.1 321 0.0174 0 0 0 World initStep + 1 37.1 -21.2 322 0.015 0.00238 8.88 8.88 World eIoni + 2 39.8 -15.2 322 0.0124 0.00261 7.15 16 World eIoni + 3 41.3 -10.5 323 0.0103 0.00216 5.49 21.5 World eIoni + 4 41 -7.15 324 0.00842 0.00186 4.32 25.8 World eIoni + 5 41.3 -6.56 324 0.0083 0.000124 0.779 26.6 World eIoni + 6 42.5 -4.22 324 0.00574 0.00256 3.4 30 World eIoni + 7 42.7 -2.63 325 0.00267 0.00307 2.4 32.4 World eIoni + 8 43 -3.09 325 0 0.00267 1.23 33.7 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.6 -28.3 289 0.00162 0 0 0 World initStep + 1 34.6 -28.6 289 0 0.00162 0.575 0.575 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.2 -27.1 238 0.00287 0 0 0 World initStep + 1 34.1 -26.6 238 0 0.00287 1.33 1.33 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34.2 -27.1 234 0.00169 0 0 0 World initStep + 1 34.5 -27 234 0 0.00169 0.614 0.614 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.6 -25 145 0.0131 0 0 0 World initStep + 1 32.4 -22.1 146 0.0118 0.00131 3.51 3.51 World msc + 2 33.3 -18.3 148 0.0093 0.00252 4.51 8.02 World msc + 3 33.1 -15.7 150 0.00763 0.00167 3.84 11.9 World eIoni + 4 32.5 -13.4 152 0.00586 0.00178 3.12 15 World eIoni + 5 32.1 -12.5 153 0.00256 0.0033 2.44 17.4 World eIoni + 6 32.3 -12.3 153 0.00109 0.00147 1.17 18.6 World eIoni + 7 32.2 -12.3 153 0 0.00109 0.32 18.9 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 32.9 -22.6 35.8 0.00117 0 0 0 World initStep + 1 33 -22.7 35.8 0 0.00117 0.355 0.355 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 32.3 -20.2 -73.3 0.105 0 0 0 World initStep + 1 34.4 -24.9 -10.6 0.101 0.00449 66.1 66.1 cloudPV CoupledTransportation + 2 34.4 -24.9 -10.6 0.101 0 0 66.1 World CoupledTransportation + 3 36.4 4.37 29.5 0.0948 0.00368 50.8 117 World eIoni + 4 26.5 87.1 139 0.0846 0.0102 159 275 World eIoni + 5 7.61 177 205 0.0737 0.0109 130 406 World eIoni + 6 -62.7 179 241 0.056 0.00835 89.1 495 World eIoni + 7 -88 157 286 0.049 0.00695 63.1 558 World eIoni + 8 -107 143 315 0.0424 0.0053 41.7 599 World eIoni + 9 -122 135 345 0.0388 0.00367 38.8 638 World eIoni + 10 -127 127 356 0.0364 0.00105 14.8 653 World eIoni + 11 -134 119 364 0.0285 0.00349 13.8 667 World eIoni + 12 -152 122 369 0.0242 0.00436 19.6 687 World eIoni + 13 -164 124 363 0.0206 0.00361 14.9 701 World eIoni + 14 -174 126 365 0.0176 0.00298 11.5 713 World eIoni + 15 -181 131 364 0.0154 0.00219 9.01 722 World eIoni + 16 -183 137 364 0.013 0.00242 7.4 729 World eIoni + 17 -180 141 368 0.0115 0.00153 5.83 735 World eIoni + 18 -178 139 371 0.00805 0.00342 4.95 740 World eIoni + 19 -177 138 373 0.00622 0.00183 3.29 743 World eIoni + 20 -177 136 374 0.00545 0.000762 2.57 746 World eIoni + 21 -178 136 375 0.00478 0.00067 2.3 748 World eIoni + 22 -178 136 377 0.00231 0.00247 2.07 750 World eIoni + 23 -178 135 377 0 0.00231 1.01 751 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -134 119 364 0.00432 0 0 0 World initStep + 1 -134 118 364 0.00132 0.003 1.91 1.91 World eIoni + 2 -134 118 364 0 0.00132 0.424 2.34 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -127 127 356 0.00136 0 0 0 World initStep + 1 -127 127 356 0 0.00136 0.441 0.441 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -107 143 315 0.00129 0 0 0 World initStep + 1 -107 143 315 0 0.00129 0.407 0.407 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -62.7 179 241 0.00941 0 0 0 World initStep + 1 -62.9 183 242 0.00771 0.0017 3.9 3.9 World eIoni + 2 -63.8 185 242 0.00576 0.000852 3.12 7.02 World eIoni + 3 -64.8 186 242 0.0032 0.00256 2.41 9.43 World eIoni + 4 -65.4 187 242 0.00166 0.00154 1.49 10.9 World eIoni + 5 -65.5 186 242 0 0.00166 0.599 11.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 120 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -63.8 185 242 0.00109 0 0 0 World initStep + 1 -63.8 185 241 0 0.00109 0.321 0.321 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 36.4 4.37 29.5 0.0022 0 0 0 World initStep + 1 36.8 4.5 29.4 0 0.0022 0.931 0.931 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 32.3 -20.2 -74.8 0.00196 0 0 0 World initStep + 1 32.6 -20.1 -74.7 0 0.00196 0.776 0.776 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 32.3 -20 -80.1 0.00132 0 0 0 World initStep + 1 32.1 -20.1 -80.1 0 0.00132 0.423 0.423 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 31.4 -17.3 -218 0.00121 0 0 0 World initStep + 1 31.4 -17.4 -218 0 0.00121 0.37 0.37 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 30.8 -14.5 -351 0.0223 0 0 0 World initStep + 1 19.1 -16.8 -349 0.0205 0.00184 13.1 13.1 World eIoni + 2 15.5 -17.2 -346 0.0185 0.000962 4.74 17.8 World eIoni + 3 8.26 -13.2 -342 0.0152 0.00323 9.7 27.5 World eIoni + 4 2.29 -10.2 -341 0.0138 0.00142 7.28 34.8 World eIoni + 5 -3.15 -9.82 -339 0.0113 0.00251 6.34 41.1 World eIoni + 6 -3.9 -10.3 -336 0.00948 0.00183 4.15 45.3 cloudPV CoupledTransportation + 7 -3.9 -10.3 -336 0.00926 0.000219 0.000101 45.3 cloudPV msc + 8 -3.9 -10.3 -336 0.0091 0.000163 8.89e-05 45.3 cloudPV msc + 9 -3.9 -10.3 -336 0.0089 0.000198 0.000101 45.3 cloudPV msc + 10 -3.9 -10.3 -336 0.00875 0.000152 8.52e-05 45.3 cloudPV msc + 11 -3.9 -10.3 -336 0.00853 0.00022 0.000101 45.3 cloudPV msc + 12 -3.9 -10.3 -336 0.00829 0.000237 0.000133 45.3 cloudPV msc + 13 -3.9 -10.3 -336 0.00797 0.00032 0.00016 45.3 cloudPV msc + 14 -3.9 -10.3 -336 0.00696 0.00101 0.000233 45.3 cloudPV msc + 15 -3.9 -10.3 -336 0.0059 0.00107 0.000346 45.3 cloudPV msc + 16 -3.9 -10.3 -336 0.0042 0.00169 0.00047 45.3 cloudPV msc + 17 -3.9 -10.3 -336 0 0.0042 0.000573 45.3 cloudPV eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 35 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 15.5 -17.2 -346 0.00106 0 0 0 World initStep + 1 15.5 -17.3 -346 0 0.00106 0.309 0.309 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 30.5 -12.7 -431 0.00104 0 0 0 World initStep + 1 30.5 -12.8 -431 0 0.00104 0.298 0.298 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 30.3 -11.7 -477 0.00816 0 0 0 World initStep + 1 32 -12.7 -475 0.00638 0.00178 3.34 3.34 World eIoni + 2 33 -14.7 -475 0.00477 0.00161 2.63 5.97 World eIoni + 3 33.2 -13.6 -476 0.00282 0.00196 2.07 8.04 World eIoni + 4 33.2 -13.6 -476 0.0017 0 0.011 8.05 World eIoni + 5 33.1 -13.4 -476 0 0.0017 0.623 8.67 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 33 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.2 -13.6 -476 0.00111 0 0 0 World initStep + 1 33.3 -13.5 -476 0 0.00111 0.329 0.329 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 29.8 -9.03 -602 0.00257 0 0 0 World initStep + 1 30.1 -9.41 -601 0 0.00257 1.17 1.17 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 29.7 -8.75 -617 0.0136 0 0 0 World initStep + 1 33.6 -7.59 -617 0.0108 0.00158 4.26 4.26 World eIoni + 2 35.8 -5.44 -618 0.00753 0.00231 3.48 7.74 World eIoni + 3 35.9 -3.22 -618 0.00633 0.00119 3.08 10.8 World eIoni + 4 35.9 -1.85 -617 0.00553 0.000797 2.62 13.4 World eIoni + 5 35.9 -1.83 -617 0.00547 6.59e-05 0.109 13.5 World eIoni + 6 35.6 -1.27 -618 0.00383 0.00164 2.31 15.8 World eIoni + 7 34.9 -1.55 -619 0.00273 0.0011 1.74 17.6 World eIoni + 8 35.1 -1.72 -620 0 0.00273 1.26 18.8 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.8 -5.44 -618 0.000997 0 0 0 World initStep + 1 35.9 -5.44 -618 0 0.000997 0.281 0.281 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.6 -7.59 -617 0.00123 0 0 0 World initStep + 1 33.6 -7.63 -616 0 0.00123 0.381 0.381 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 29.5 -7.79 -670 0.00542 0 0 0 World initStep + 1 30.4 -8.97 -670 0.00298 0.00244 2.29 2.29 World eIoni + 2 30 -9.45 -670 0 0.00298 1.39 3.68 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 29.3 -7.33 -697 0.0014 0 0 0 World initStep + 1 29.1 -7.33 -697 0 0.0014 0.464 0.464 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 28.8 -5.72 -788 0.0871 0 0 0 World initStep + 1 34 -6.19 -778 0.0851 0.000962 11.3 11.3 World eIoni + 2 56.2 -17 -706 0.0781 0.00703 83 94.3 World eIoni + 3 82.1 -27.2 -612 0.0716 0.00643 113 207 World eIoni + 4 132 -49.4 -581 0.0633 0.00484 68.9 276 World eIoni + 5 148 -67.8 -577 0.0588 0.00331 25.5 302 World eIoni + 6 139 -126 -586 0.051 0.00779 68.8 371 World eIoni + 7 136 -173 -593 0.0451 0.00592 53.6 424 World eIoni + 8 129 -210 -593 0.0385 0.00655 43.2 467 World eIoni + 9 124 -236 -581 0.0325 0.00601 32.8 500 World eIoni + 10 137 -250 -567 0.0267 0.00581 24.5 525 World eIoni + 11 139 -257 -553 0.0242 0.00253 17.6 542 World eIoni + 12 139 -258 -552 0.0236 0.000639 1.26 543 World eIoni + 13 140 -258 -549 0.0224 0.000122 3.37 547 World eIoni + 14 146 -258 -538 0.0194 0.00301 13.2 560 World eIoni + 15 144 -251 -532 0.0176 0.00179 10.5 570 World eIoni + 16 144 -249 -523 0.0154 0.00222 9.03 579 World eIoni + 17 144 -244 -518 0.0135 0.00194 7.39 587 World eIoni + 18 143 -239 -516 0.0128 0.000615 6.11 593 World eIoni + 19 140 -235 -515 0.00973 0.00311 5.73 599 World eIoni + 20 137 -237 -516 0.00734 0.00239 4.05 603 World eIoni + 21 135 -238 -517 0.00626 0.00108 3 606 World eIoni + 22 134 -238 -519 0.00383 0.00244 2.59 608 World eIoni + 23 134 -238 -518 0.00218 0.00165 1.74 610 World eIoni + 24 134 -238 -517 0 0.00218 0.917 611 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 28 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 140 -258 -549 0.00101 0 0 0 World initStep + 1 140 -258 -549 0 0.00101 0.284 0.284 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 28 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 148 -67.8 -577 0.00115 0 0 0 World initStep + 1 148 -67.8 -577 0 0.00115 0.343 0.343 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 28 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -49.4 -581 0.00352 0 0 0 World initStep + 1 132 -49.6 -580 0.00228 0.00123 1.62 1.62 World eIoni + 2 132 -49.9 -580 0 0.00228 0.99 2.61 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 28 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 34 -6.19 -778 0.00107 0 0 0 World initStep + 1 33.9 -6.08 -778 0 0.00107 0.312 0.312 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.5 -0.531 -1.07e+03 0.00174 0 0 0 World initStep + 1 27.3 -0.374 -1.07e+03 0 0.00174 0.642 0.642 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.3 0.384 -1.11e+03 0.0011 0 0 0 World initStep + 1 27.4 0.315 -1.11e+03 0 0.0011 0.323 0.323 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.1 1.64 -1.21e+03 0.00318 0 0 0 World initStep + 1 26.4 1.52 -1.21e+03 0 0.00318 1.48 1.48 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.1 1.71 -1.23e+03 0.00296 0 0 0 World initStep + 1 26.5 1.49 -1.23e+03 0 0.00296 1.38 1.38 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.1 1.75 -1.24e+03 0.00144 0 0 0 World initStep + 1 26.9 1.73 -1.24e+03 0 0.00144 0.482 0.482 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.2 1.85 -1.27e+03 0.00143 0 0 0 World initStep + 1 27.3 1.95 -1.27e+03 0 0.00143 0.475 0.475 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.4 2.07 -1.35e+03 0.0032 0 0 0 World initStep + 1 27.3 2.77 -1.35e+03 0.00117 0.00203 1.49 1.49 World eIoni + 2 27.2 2.68 -1.35e+03 0 0.00117 0.354 1.84 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.5 2.17 -1.38e+03 0.00717 0 0 0 World initStep + 1 29 3.6 -1.38e+03 0.00614 0.00103 2.93 2.93 World eIoni + 2 29.8 4.67 -1.38e+03 0.00307 0.00307 2.55 5.48 World eIoni + 3 30.1 4.33 -1.38e+03 0.00253 0.00054 1.43 6.91 World eIoni + 4 30.5 4.09 -1.38e+03 0 0.00253 1.15 8.06 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.6 2.22 -1.4e+03 0.0122 0 0 0 World initStep + 1 30 -2.05 -1.4e+03 0.0098 0.00244 5.38 5.38 World eIoni + 2 31.4 -4.94 -1.4e+03 0.00701 0.00279 4.08 9.46 World eIoni + 3 31.6 -6.93 -1.4e+03 0.00369 0.00332 2.87 12.3 World eIoni + 4 31.7 -7.6 -1.4e+03 0.0021 0.00159 1.68 14 World eIoni + 5 31.5 -7.78 -1.4e+03 0 0.0021 0.866 14.9 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.6 2.24 -1.41e+03 0.0156 0 0 0 World initStep + 1 26.8 -4.44 -1.41e+03 0.0128 0.00281 7.23 7.23 World msc + 2 27.6 -5.83 -1.41e+03 0.0113 0.00151 5.71 12.9 World eIoni + 3 30.8 -4.5 -1.41e+03 0.0084 0.0029 4.85 17.8 World eIoni + 4 32.7 -2.84 -1.42e+03 0.00732 0.00107 3.44 21.2 World eIoni + 5 32.7 -2.71 -1.41e+03 0.00464 0 0.269 21.5 World eIoni + 6 32.4 -1.87 -1.41e+03 0.00309 0.00155 2.02 23.5 World eIoni + 7 32.6 -2.43 -1.41e+03 0 0.00309 1.44 25 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 32.7 -2.71 -1.41e+03 0.00268 0 0 0 World initStep + 1 33 -2.99 -1.41e+03 0 0.00268 1.24 1.24 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.6 2.33 -1.43e+03 0.00346 0 0 0 World initStep + 1 26.9 2 -1.43e+03 0.00133 0.00213 1.6 1.6 World eIoni + 2 27 2.14 -1.43e+03 0 0.00133 0.427 2.02 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.7 2.44 -1.48e+03 0.00112 0 0 0 World initStep + 1 27.9 2.46 -1.48e+03 0 0.00112 0.331 0.331 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.8 2.5 -1.5e+03 0.0014 0 0 0 World initStep + 1 27.6 2.44 -1.5e+03 0 0.0014 0.464 0.464 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.9 2.56 -1.55e+03 0.00611 0 0 0 World initStep + 1 28.6 0.983 -1.55e+03 0.00465 0.00145 2.53 2.53 World eIoni + 2 27.8 0.246 -1.55e+03 0.0032 0.00145 2.03 4.56 World eIoni + 3 27.6 0.925 -1.55e+03 0.00114 0.00206 1.49 6.05 World eIoni + 4 27.5 0.909 -1.55e+03 0 0.00114 0.339 6.39 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.9 2.7 -1.61e+03 0.00697 0 0 0 World initStep + 1 25.9 2.67 -1.61e+03 0.00452 0.00246 2.86 2.86 World eIoni + 2 25.3 3.66 -1.61e+03 0.00335 0.00117 1.98 4.84 World eIoni + 3 24.8 4.28 -1.61e+03 0.0013 0.00205 1.55 6.39 World eIoni + 4 24.8 4.12 -1.61e+03 0 0.0013 0.413 6.8 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.9 2.71 -1.61e+03 0.00116 0 0 0 World initStep + 1 28 2.69 -1.61e+03 0 0.00116 0.351 0.351 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.9 2.75 -1.63e+03 0.00123 0 0 0 World initStep + 1 27.9 2.9 -1.63e+03 0 0.00123 0.38 0.38 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 28 2.94 -1.71e+03 0.00142 0 0 0 World initStep + 1 27.8 2.95 -1.71e+03 0 0.00142 0.471 0.471 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 28 3.09 -1.8e+03 0.00554 0 0 0 World initStep + 1 28.2 3.12 -1.8e+03 0.00409 0.00017 0.275 0.275 World eIoni + 2 29.1 3.2 -1.8e+03 0.00174 0.00235 1.83 2.11 World eIoni + 3 29 3.43 -1.8e+03 0 0.00174 0.646 2.75 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 9 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 28.2 3.12 -1.8e+03 0.00128 0 0 0 World initStep + 1 28.3 3.14 -1.8e+03 0 0.00128 0.402 0.402 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 28 3.11 -1.81e+03 0.00148 0 0 0 World initStep + 1 28.2 3.14 -1.81e+03 0 0.00148 0.503 0.503 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 28 3.11 -1.82e+03 0.00142 0 0 0 World initStep + 1 28 2.93 -1.82e+03 0 0.00142 0.473 0.473 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 28 3.19 -1.86e+03 0.00121 0 0 0 World initStep + 1 28 3.06 -1.86e+03 0 0.00121 0.373 0.373 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 28 3.28 -1.91e+03 0.00416 0 0 0 World initStep + 1 28.2 4.32 -1.91e+03 0.00166 0.00251 1.86 1.86 World eIoni + 2 28.3 4.52 -1.91e+03 0 0.00166 0.597 2.45 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 28 3.33 -1.95e+03 0.00429 0 0 0 World initStep + 1 27.8 3.54 -1.95e+03 0.00308 1.32e-05 0.368 0.368 World eIoni + 2 28.4 3.88 -1.95e+03 0.00151 0.00157 1.43 1.8 World eIoni + 3 28.5 3.77 -1.95e+03 0 0.00151 0.517 2.32 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.8 3.54 -1.95e+03 0.0012 0 0 0 World initStep + 1 27.8 3.55 -1.95e+03 0 0.0012 0.366 0.366 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.8 3.63 -2.12e+03 0.00131 0 0 0 World initStep + 1 27.7 3.68 -2.12e+03 0 0.00131 0.418 0.418 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 27.5 4.21 -2.35e+03 0.00316 0 0 0 World initStep + 1 27.1 4.81 -2.35e+03 0.0016 0.00156 1.47 1.47 World eIoni + 2 27.1 4.65 -2.35e+03 0 0.0016 0.564 2.03 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 127 -27.6 -2.61e+03 50 0 0 0 World initStep + 1 127 -27.6 -2.56e+03 50 0.00826 47.9 47.9 World hIoni + 2 127 -27.6 -2.51e+03 50 0.0118 58.8 107 World hIoni + 3 127 -27.6 -2.48e+03 50 0.00566 25.7 132 World hIoni + 4 127 -27.6 -2.47e+03 50 0.000588 6.94 139 World hIoni + 5 127 -27.6 -2.44e+03 50 0.00492 36.2 176 World hIoni + 6 127 -27.6 -2.43e+03 49.9 0.000763 6.9 182 World hIoni + 7 127 -27.6 -2.36e+03 49.9 0.0111 69.9 252 cloudPV CoupledTransportation + 8 127 -27.6 -2.36e+03 48.3 1.58 1.28 254 World CoupledTransportation + 9 127 -27.6 -2.36e+03 48.3 0.000135 1.22 255 World hIoni + 10 127 -27.7 -2.27e+03 48.3 0.0166 91.1 346 World hIoni + 11 127 -27.9 -2.23e+03 48.3 0.00867 41.5 387 World hIoni + 12 128 -28.3 -2.09e+03 48.3 0.0249 137 525 World hIoni + 13 128 -28.6 -1.99e+03 48.3 0.015 96.5 621 World hIoni + 14 129 -28.8 -1.97e+03 48.3 0.00753 24.5 646 World hIoni + 15 129 -28.8 -1.95e+03 48.3 0.00192 15.2 661 World hIoni + 16 129 -29.2 -1.88e+03 48.2 0.0118 75.4 737 World hIoni + 17 129 -29.2 -1.87e+03 48.2 0.000407 6.13 743 World hIoni + 18 129 -29.2 -1.86e+03 48.2 0.000349 6.09 749 World hIoni + 19 129 -29.3 -1.85e+03 48.2 0.00155 9.77 759 World hIoni + 20 129 -29.3 -1.85e+03 48.2 0.00107 7.93 767 World hIoni + 21 129 -29.3 -1.84e+03 48.2 0.00024 1.09 768 World hIoni + 22 129 -29.4 -1.83e+03 48.2 0.00385 17.2 785 World hIoni + 23 130 -30.4 -1.63e+03 48.2 0.0359 202 987 World hIoni + 24 130 -30.5 -1.61e+03 48.2 0.00243 15.8 1e+03 World hIoni + 25 130 -31.2 -1.5e+03 48.2 0.0162 113 1.12e+03 World hIoni + 26 130 -31.3 -1.48e+03 48.1 0.00329 14.5 1.13e+03 World hIoni + 27 131 -31.5 -1.44e+03 48.1 0.00941 45.4 1.18e+03 World hIoni + 28 131 -31.7 -1.41e+03 48.1 0.00795 31.7 1.21e+03 World hIoni + 29 131 -31.9 -1.37e+03 48.1 0.00871 35.1 1.24e+03 World hIoni + 30 131 -32.1 -1.34e+03 48.1 0.0064 30.9 1.27e+03 World hIoni + 31 131 -32.2 -1.32e+03 48.1 0.00326 19.9 1.29e+03 World hIoni + 32 131 -33.1 -1.18e+03 48.1 0.0239 139 1.43e+03 World hIoni + 33 131 -33.2 -1.18e+03 48.1 0.000376 2.46 1.43e+03 World hIoni + 34 131 -33.2 -1.17e+03 48.1 0.00179 8.99 1.44e+03 World hIoni + 35 131 -33.3 -1.16e+03 48 0.00114 12 1.46e+03 World hIoni + 36 132 -33.6 -1.11e+03 48 0.0136 42.5 1.5e+03 World hIoni + 37 132 -33.6 -1.11e+03 47.9 0.000131 1.51 1.5e+03 World hIoni + 38 132 -33.8 -1.1e+03 47.9 0.00323 13.8 1.51e+03 World hIoni + 39 132 -34 -1.07e+03 47.9 0.00361 28.5 1.54e+03 World hIoni + 40 132 -34.4 -1.03e+03 47.9 0.00715 41.7 1.58e+03 World hIoni + 41 132 -35.2 -936 47.9 0.0149 93.2 1.68e+03 World hIoni + 42 132 -35.2 -930 47.9 0.00104 6.04 1.68e+03 World hIoni + 43 132 -35.3 -923 47.9 0.000982 6.91 1.69e+03 World hIoni + 44 132 -35.3 -922 47.9 0.000402 0.925 1.69e+03 World hIoni + 45 132 -35.8 -868 47.8 0.0108 54 1.74e+03 World hIoni + 46 132 -35.8 -862 47.8 0.000904 6.47 1.75e+03 World hIoni + 47 132 -35.9 -860 47.8 0.000179 2.14 1.75e+03 World hIoni + 48 132 -35.9 -855 47.8 0.000484 5.09 1.76e+03 World hIoni + 49 132 -36 -845 47.8 0.00132 9.29 1.77e+03 World hIoni + 50 132 -36.5 -794 47.8 0.0101 51.5 1.82e+03 World hIoni + 51 132 -36.8 -754 47.8 0.00593 39.9 1.86e+03 World hIoni + 52 133 -37.3 -701 47.8 0.00723 52.8 1.91e+03 World hIoni + 53 133 -37.7 -648 47.8 0.013 52.8 1.96e+03 World hIoni + 54 133 -37.8 -633 47.8 0.00405 15.7 1.98e+03 World hIoni + 55 133 -38 -613 47.8 0.00162 20.1 2e+03 World hIoni + 56 133 -38.4 -566 47.7 0.0104 46.6 2.05e+03 World hIoni + 57 133 -38.5 -554 47.7 0.00263 11.9 2.06e+03 World hIoni + 58 133 -39 -492 47.7 0.0132 61.7 2.12e+03 World hIoni + 59 133 -39.2 -458 47.7 0.00634 33.9 2.15e+03 World hIoni + 60 133 -39.3 -446 47.7 0.00185 12.3 2.17e+03 World hIoni + 61 134 -39.7 -397 47.7 0.00667 49 2.22e+03 World hIoni + 62 134 -39.8 -379 47.7 0.0049 17.8 2.23e+03 World hIoni + 63 134 -39.9 -370 47.7 0.0022 9.1 2.24e+03 World hIoni + 64 134 -40.1 -343 47.7 0.00517 27.3 2.27e+03 World hIoni + 65 134 -41 -239 47.7 0.0202 104 2.37e+03 World hIoni + 66 134 -41.2 -211 47.7 0.00447 27.2 2.4e+03 World hIoni + 67 134 -41.8 -139 47.6 0.0114 72.5 2.47e+03 World hIoni + 68 134 -42.4 -70.9 47.6 0.0123 68 2.54e+03 World hIoni + 69 135 -43.8 98.8 47.6 0.0327 170 2.71e+03 World hIoni + 70 135 -44 118 47.6 0.00308 19.4 2.73e+03 World hIoni + 71 135 -44.5 184 47.6 0.0109 65.7 2.8e+03 World hIoni + 72 135 -44.6 197 47.6 0.00419 13.3 2.81e+03 World hIoni + 73 135 -44.9 235 47.5 0.00507 37.6 2.85e+03 World hIoni + 74 135 -45.3 282 47.5 0.0083 47.1 2.89e+03 World hIoni + 75 135 -45.8 355 47.5 0.0121 73.1 2.97e+03 World hIoni + 76 135 -45.8 364 47.5 0.00219 8.72 2.98e+03 World hIoni + 77 135 -46 390 47.5 0.00379 25.9 3e+03 World hIoni + 78 136 -46.3 439 47.4 0.00936 49.6 3.05e+03 World hIoni + 79 136 -46.4 451 47.4 0.00264 11.9 3.06e+03 World hIoni + 80 136 -46.7 491 47.4 0.00647 39.5 3.1e+03 World hIoni + 81 136 -47 530 47.3 0.0082 39.1 3.14e+03 World hIoni + 82 136 -47.2 560 47.3 0.00571 30 3.17e+03 World hIoni + 83 136 -47.4 593 47.3 0.00561 33.3 3.21e+03 World hIoni + 84 136 -48.1 682 47.3 0.0161 88.6 3.29e+03 World hIoni + 85 136 -48.6 774 47.3 0.0161 92.7 3.39e+03 cloudPV CoupledTransportation + 86 136 -48.6 775 46.3 1.01 0.921 3.39e+03 World CoupledTransportation + 87 136 -48.5 787 46.3 0.00359 12 3.4e+03 World hIoni + 88 136 -48.2 860 46.2 0.0184 72.8 3.47e+03 World hIoni + 89 136 -47.9 914 46.2 0.00998 54.1 3.53e+03 World hIoni + 90 136 -47.9 924 46.2 0.00152 9.51 3.54e+03 World hIoni + 91 136 -47.2 1.05e+03 46.2 0.0247 126 3.66e+03 World hIoni + 92 137 -46.5 1.16e+03 46.2 0.019 107 3.77e+03 World hIoni + 93 137 -46.4 1.17e+03 46.2 0.00228 13.3 3.78e+03 World hIoni + 94 137 -45.1 1.32e+03 46.1 0.0366 150 3.93e+03 World hIoni + 95 137 -44.9 1.34e+03 46.1 0.00497 18.5 3.95e+03 World hIoni + 96 137 -43 1.54e+03 46.1 0.0306 196 4.15e+03 World hIoni + 97 138 -42.8 1.56e+03 46.1 0.00426 19.7 4.17e+03 World hIoni + 98 138 -42.8 1.56e+03 46.1 0.000248 1.88 4.17e+03 World hIoni + 99 138 -42.2 1.63e+03 46.1 0.0144 68.5 4.24e+03 World hIoni + 100 138 -42.1 1.64e+03 46 0.00156 9.75 4.25e+03 World hIoni + 101 138 -41.8 1.67e+03 46 0.00836 30.6 4.28e+03 World hIoni + 102 138 -41.6 1.69e+03 46 0.00569 27.8 4.31e+03 World hIoni + 103 138 -41.5 1.71e+03 46 0.0015 12.3 4.32e+03 cloudPV CoupledTransportation + 104 138 -41.5 1.71e+03 45.3 0.699 0.602 4.32e+03 World CoupledTransportation + 105 138 -41.3 1.72e+03 45.3 0.000486 8.36 4.33e+03 World hIoni + 106 138 -41 1.73e+03 45.3 0.00261 18.7 4.35e+03 World hIoni + 107 139 -40.1 1.78e+03 45.3 0.00786 50.3 4.4e+03 World hIoni + 108 139 -39.8 1.8e+03 45.3 0.0026 17.2 4.41e+03 World hIoni + 109 139 -39.5 1.82e+03 45.3 0.00473 14.1 4.43e+03 World hIoni + 110 140 -38.5 1.87e+03 45.3 0.00964 57.4 4.49e+03 World hIoni + 111 141 -37.4 1.93e+03 45.3 0.00821 60.9 4.55e+03 World hIoni + 112 141 -37.2 1.95e+03 45.3 0.0036 11.8 4.56e+03 World hIoni + 113 141 -36.9 1.96e+03 45.3 0.00313 14.8 4.57e+03 World hIoni + 114 141 -36.5 1.99e+03 45.2 0.00454 25.1 4.6e+03 World hIoni + 115 142 -35.6 2.03e+03 45.2 0.00917 47.8 4.65e+03 World hIoni + 116 142 -34.8 2.07e+03 45.2 0.00875 40.5 4.69e+03 World hIoni + 117 142 -34.6 2.09e+03 45.2 0.0021 12.4 4.7e+03 World hIoni + 118 144 -32.1 2.23e+03 45.2 0.025 148 4.85e+03 World hIoni + 119 145 -31.1 2.3e+03 45.2 0.0114 61.6 4.91e+03 World hIoni + 120 146 -29.7 2.39e+03 45.2 0.0147 93.6 5e+03 World hIoni + 121 147 -28.8 2.45e+03 45.1 0.012 64.5 5.07e+03 World hIoni + 122 147 -28.7 2.46e+03 45.1 0.000481 1.2 5.07e+03 World hIoni + 123 147 -27.9 2.51e+03 45.1 0.0131 58.3 5.13e+03 World hIoni + 124 147 -27.7 2.53e+03 45.1 0.00261 12.8 5.14e+03 World hIoni + 125 148 -27.3 2.56e+03 45.1 0.00785 32.4 5.17e+03 World hIoni + 126 148 -26.7 2.6e+03 45.1 0.00738 40.8 5.21e+03 detectorPV CoupledTransportation + 127 148 -26.7 2.6e+03 39.3 5.84 1.97 5.21e+03 detectorPV hIoni + 128 148 -26.7 2.6e+03 33.8 5.44 1.58 5.22e+03 detectorPV hIoni + 129 148 -26.7 2.6e+03 29.2 4.59 1.25 5.22e+03 detectorPV hIoni + 130 148 -26.8 2.61e+03 25 4.27 0.998 5.22e+03 detectorPV hIoni + 131 148 -26.8 2.61e+03 21.4 3.56 0.793 5.22e+03 detectorPV hIoni + 132 148 -26.8 2.61e+03 18 3.44 0.641 5.22e+03 detectorPV hIoni + 133 148 -26.8 2.61e+03 14.9 3.09 0.511 5.22e+03 detectorPV hIoni + 134 148 -26.8 2.61e+03 11.9 2.94 0.408 5.22e+03 detectorPV hIoni + 135 148 -26.8 2.61e+03 8.98 2.95 0.323 5.22e+03 detectorPV hIoni + 136 148 -26.7 2.61e+03 6.09 2.89 0.25 5.22e+03 detectorPV hIoni + 137 148 -26.7 2.61e+03 3.15 2.94 0.184 5.22e+03 detectorPV hIoni + 138 148 -26.7 2.61e+03 0 3.15 0.089 5.22e+03 detectorPV hIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 148 -27.3 2.56e+03 0.00138 0 0 0 World initStep + 1 148 -27.1 2.56e+03 0 0.00138 0.454 0.454 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 147 -27.7 2.53e+03 0.00107 0 0 0 World initStep + 1 147 -27.6 2.53e+03 0 0.00107 0.313 0.313 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 147 -27.9 2.51e+03 0.0011 0 0 0 World initStep + 1 147 -27.8 2.51e+03 0 0.0011 0.322 0.322 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 147 -28.7 2.46e+03 0.00114 0 0 0 World initStep + 1 147 -28.6 2.46e+03 0 0.00114 0.34 0.34 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 146 -29.7 2.39e+03 0.00103 0 0 0 World initStep + 1 146 -29.6 2.39e+03 0 0.00103 0.294 0.294 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 144 -32.1 2.23e+03 0.00112 0 0 0 World initStep + 1 144 -32 2.23e+03 0 0.00112 0.33 0.33 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 -34.8 2.07e+03 0.00106 0 0 0 World initStep + 1 142 -34.9 2.07e+03 0 0.00106 0.305 0.305 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 -35.6 2.03e+03 0.00284 0 0 0 World initStep + 1 141 -35.1 2.03e+03 0 0.00284 1.32 1.32 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 141 -36.5 1.99e+03 0.0313 0 0 0 World initStep + 1 128 -31.3 2e+03 0.0257 0.00561 23 23 World eIoni + 2 125 -35.2 2.01e+03 0.0234 0.00231 16.5 39.5 World eIoni + 3 132 -34.3 2.03e+03 0.0196 0.00378 14.1 53.6 World eIoni + 4 138 -32.8 2.03e+03 0.0153 0.00431 10.7 64.3 World eIoni + 5 142 -34.1 2.04e+03 0.0121 0.00322 7.33 71.6 World eIoni + 6 141 -33.4 2.04e+03 0.0082 0.0039 5.3 76.9 World eIoni + 7 141 -32.3 2.05e+03 0.00676 0.00145 3.36 80.3 World eIoni + 8 142 -32.1 2.05e+03 0.00223 0.00453 2.78 83 World eIoni + 9 142 -32 2.05e+03 0 0.00223 0.949 84 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 141 -36.9 1.96e+03 0.00519 0 0 0 World initStep + 1 140 -35.6 1.96e+03 0.00443 0.000759 1.6 1.6 World msc + 2 141 -36 1.96e+03 0.00257 0.00186 1.95 3.55 World eIoni + 3 141 -36.4 1.96e+03 0.00101 0.00156 1.17 4.72 World eIoni + 4 141 -36.4 1.96e+03 0 0.00101 0.288 5.01 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 141 -37.4 1.93e+03 0.00107 0 0 0 World initStep + 1 141 -37.4 1.93e+03 0 0.00107 0.312 0.312 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 140 -38.5 1.87e+03 0.00135 0 0 0 World initStep + 1 140 -38.5 1.87e+03 0 0.00135 0.438 0.438 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 139 -39.5 1.82e+03 0.00283 0 0 0 World initStep + 1 140 -39.7 1.82e+03 0 0.00283 1.31 1.31 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 139 -39.8 1.8e+03 0.00193 0 0 0 World initStep + 1 139 -40.1 1.8e+03 0 0.00193 0.758 0.758 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 139 -40.1 1.78e+03 0.00152 0 0 0 World initStep + 1 139 -39.9 1.78e+03 0 0.00152 0.524 0.524 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 138 -41 1.73e+03 0.00543 0 0 0 World initStep + 1 138 -39.8 1.73e+03 0.00412 0.00131 2.29 2.29 World eIoni + 2 138 -38.9 1.73e+03 0.00226 0.00186 1.84 4.13 World eIoni + 3 138 -38.7 1.74e+03 0 0.00226 0.971 5.11 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 138 -41.3 1.72e+03 0.00242 0 0 0 World initStep + 1 139 -41.5 1.72e+03 0 0.00242 1.08 1.08 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 138 -41.6 1.69e+03 0.00129 0 0 0 World initStep + 1 138 -41.5 1.69e+03 0 0.00129 0.41 0.41 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 138 -41.8 1.67e+03 0.0015 0 0 0 World initStep + 1 138 -41.8 1.67e+03 0 0.0015 0.514 0.514 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 138 -42.1 1.64e+03 0.0022 0 0 0 World initStep + 1 137 -42.1 1.64e+03 0 0.0022 0.93 0.93 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 138 -42.2 1.63e+03 0.00635 0 0 0 World initStep + 1 140 -41.8 1.63e+03 0.00411 0.00224 2.62 2.62 World eIoni + 2 140 -41.4 1.63e+03 0.00115 0.00296 1.84 4.46 World eIoni + 3 140 -41.2 1.63e+03 0 0.00115 0.345 4.81 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 138 -42.8 1.56e+03 0.00111 0 0 0 World initStep + 1 138 -42.8 1.56e+03 0 0.00111 0.327 0.327 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 138 -42.8 1.56e+03 0.0108 0 0 0 World initStep + 1 137 -41.5 1.56e+03 0.00825 0.00043 1.47 1.47 World eIoni + 2 138 -38.9 1.55e+03 0.00518 0.00307 3.38 4.84 World eIoni + 3 139 -37.7 1.55e+03 0.00438 0.000803 2.21 7.05 World eIoni + 4 140 -38.1 1.55e+03 0.00311 0.00127 1.93 8.98 World eIoni + 5 140 -37.8 1.55e+03 0 0.00311 1.45 10.4 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 80 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 137 -41.5 1.56e+03 0.00216 0 0 0 World initStep + 1 137 -41.6 1.56e+03 0 0.00216 0.907 0.907 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 137 -43 1.54e+03 0.00154 0 0 0 World initStep + 1 137 -43.2 1.54e+03 0 0.00154 0.532 0.532 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 137 -44.9 1.34e+03 0.00178 0 0 0 World initStep + 1 137 -44.7 1.34e+03 0 0.00178 0.666 0.666 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 137 -46.5 1.16e+03 0.0019 0 0 0 World initStep + 1 137 -46.8 1.16e+03 0 0.0019 0.738 0.738 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 136 -47.2 1.05e+03 0.00783 0 0 0 World initStep + 1 136 -46.5 1.05e+03 0.00729 0.000544 0.819 0.819 World msc + 2 136 -45.7 1.05e+03 0.00663 0.000659 0.808 1.63 World msc + 3 136 -45.1 1.05e+03 0.00647 0.000156 0.788 2.41 World msc + 4 136 -45.6 1.05e+03 0.00481 0.00166 0.792 3.21 World msc + 5 136 -46.3 1.05e+03 0.00467 0.000141 0.841 4.05 World msc + 6 136 -46.9 1.05e+03 0.0043 0.000372 0.722 4.77 World msc + 7 136 -47.6 1.05e+03 0.00396 0.000341 0.754 5.52 World msc + 8 136 -48.4 1.05e+03 0.00344 0.000516 1.12 6.65 World msc + 9 136 -48.6 1.05e+03 0 0.00344 1.59 8.24 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 136 -47.9 924 0.00153 0 0 0 World initStep + 1 136 -47.7 924 0 0.00153 0.529 0.529 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 136 -47.9 914 0.0048 0 0 0 World initStep + 1 136 -49.1 915 0.00219 0.00261 2.08 2.08 World eIoni + 2 135 -49.1 915 0 0.00219 0.923 3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 136 -48.2 860 0.00121 0 0 0 World initStep + 1 136 -48.2 860 0 0.00121 0.371 0.371 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 136 -48.5 787 0.00252 0 0 0 World initStep + 1 136 -48.2 787 0 0.00252 1.15 1.15 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 136 -48.1 682 0.00142 0 0 0 World initStep + 1 136 -48.2 682 0 0.00142 0.472 0.472 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 136 -47.4 593 0.0013 0 0 0 World initStep + 1 136 -47.4 593 0 0.0013 0.411 0.411 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 136 -47.2 560 0.00375 0 0 0 World initStep + 1 136 -46.3 560 0 0.00375 1.71 1.71 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 136 -47 530 0.0855 0 0 0 World initStep + 1 110 -39.6 583 0.0752 0.00588 63.9 63.9 World eIoni + 2 69.1 -58.4 663 0.0648 0.0104 106 170 World eIoni + 3 48.4 -13.5 714 0.0587 0.00616 81.6 251 World eIoni + 4 11.7 -13.5 762 0.0518 0.00684 68.4 320 World eIoni + 5 -6.96 -42.8 796 0.0479 0.00389 55.1 375 World eIoni + 6 23.1 -65.1 817 0.0388 0.00907 48 423 World eIoni + 7 35.9 -80.4 841 0.0338 0.00505 33.3 456 World eIoni + 8 56.8 -84 853 0.0287 0.00512 26.2 482 World eIoni + 9 71.8 -85.7 860 0.0191 0.00429 18.9 501 World eIoni + 10 80.1 -88.6 856 0.0174 0.00165 10.2 511 World eIoni + 11 87.4 -89.1 853 0.0141 0.00332 8.86 520 World eIoni + 12 93 -87.2 852 0.0128 0.00131 6.51 527 World eIoni + 13 96.9 -87.1 849 0.0108 0.002 5.69 532 World eIoni + 14 99.3 -85.3 847 0.00964 0.00113 4.57 537 World eIoni + 15 100 -82.2 846 0.00821 0.00143 4.01 541 World eIoni + 16 101 -79.9 847 0.00646 0.00175 3.36 544 World eIoni + 17 101 -79.5 849 0.00228 0.00418 2.66 547 World eIoni + 18 100 -79.4 849 0 0.00228 0.987 548 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 68 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 71.8 -85.7 860 0.00533 0 0 0 World initStep + 1 72.1 -85.4 860 0.00457 0.000751 0.618 0.618 World msc + 2 72.5 -85.4 860 0.00405 0.000525 0.636 1.25 World msc + 3 72.1 -86 860 0.00296 0.00109 0.943 2.2 World msc + 4 71.8 -86.5 859 0 0.00296 1.38 3.58 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 68 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 110 -39.6 583 0.00446 0 0 0 World initStep + 1 109 -39.4 583 0.00261 0.00185 1.96 1.96 World eIoni + 2 109 -39.1 583 0 0.00261 1.2 3.16 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 136 -46.7 491 0.00253 0 0 0 World initStep + 1 135 -46.5 491 0.0016 0.000932 1.15 1.15 World eIoni + 2 135 -46.3 491 0 0.0016 0.564 1.71 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 136 -46.4 451 0.0065 0 0 0 World initStep + 1 136 -44.7 452 0.00417 0.00233 2.68 2.68 World eIoni + 2 137 -44.8 452 0.00311 0.00106 1.86 4.54 World eIoni + 3 138 -44.3 452 0 0.00311 1.45 5.98 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 136 -46.3 439 0.0615 0 0 0 World initStep + 1 150 -6.23 487 0.0552 0.00626 74.3 74.3 World eIoni + 2 160 4.2 488 0.0518 0.00116 14.3 88.6 World eIoni + 3 180 46.7 498 0.0466 0.00523 55 144 World eIoni + 4 209 72.7 507 0.0391 0.0075 45.6 189 World eIoni + 5 229 87 514 0.0335 0.00437 27.5 217 World eIoni + 6 237 90.9 512 0.0298 0.00136 9.29 226 World eIoni + 7 253 98.9 504 0.0256 0.00418 21.1 247 World eIoni + 8 256 102 501 0.0238 0.000785 4.89 252 World eIoni + 9 263 112 505 0.0217 0.00211 14.5 267 World eIoni + 10 273 115 510 0.0196 0.00201 12.5 279 World eIoni + 11 275 117 516 0.0191 0.000583 7.11 286 OutOfWorld CoupledTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 65 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 256 102 501 0.00107 0 0 0 World initStep + 1 255 102 501 0 0.00107 0.311 0.311 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 65 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 237 90.9 512 0.00237 0 0 0 World initStep + 1 237 91.3 512 0 0.00237 1.05 1.05 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 65 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 229 87 514 0.00114 0 0 0 World initStep + 1 229 87.1 514 0 0.00114 0.339 0.339 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 65 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 160 4.2 488 0.00225 0 0 0 World initStep + 1 160 3.99 488 0 0.00225 0.968 0.968 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 135 -46 390 0.00302 0 0 0 World initStep + 1 135 -45.5 390 0 0.00302 1.41 1.41 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 135 -45.8 364 0.00206 0 0 0 World initStep + 1 135 -46.2 364 0 0.00206 0.838 0.838 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 135 -45.8 355 0.00182 0 0 0 World initStep + 1 135 -45.6 355 0 0.00182 0.693 0.693 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 135 -44.9 235 0.0231 0 0 0 World initStep + 1 129 -37.9 244 0.0207 0.00243 13.9 13.9 World eIoni + 2 126 -28.3 248 0.0183 0.0024 11.6 25.5 World eIoni + 3 129 -20 248 0.0167 0.00164 9.57 35 World eIoni + 4 131 -13.7 244 0.0126 0.00129 7.89 42.9 World eIoni + 5 127 -13.2 241 0.0104 0.00219 5.59 48.5 World eIoni + 6 124 -14.6 240 0.00926 0.00115 4.38 52.9 World eIoni + 7 121 -14.8 241 0.00734 0.00192 3.82 56.7 World eIoni + 8 119 -15.8 239 0.00551 0.00183 3 59.7 World eIoni + 9 118 -15.9 237 0.0036 0.00192 2.32 62 World eIoni + 10 118 -16 236 0.00108 0.00252 1.65 63.7 World eIoni + 11 118 -16 237 0 0.00108 0.313 64 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 61 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 131 -13.7 244 0.00277 0 0 0 World initStep + 1 132 -14.1 244 0 0.00277 1.29 1.29 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 135 -44.6 197 0.00305 0 0 0 World initStep + 1 135 -45.2 197 0 0.00305 1.42 1.42 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 135 -44.5 184 0.00211 0 0 0 World initStep + 1 135 -44.2 184 0 0.00211 0.873 0.873 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 135 -44 118 0.00164 0 0 0 World initStep + 1 135 -44.2 118 0 0.00164 0.588 0.588 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 134 -42.4 -70.9 0.00163 0 0 0 World initStep + 1 134 -42.4 -70.8 0 0.00163 0.58 0.58 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 134 -41.8 -139 0.00114 0 0 0 World initStep + 1 134 -41.9 -139 0 0.00114 0.342 0.342 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 134 -41 -239 0.00291 0 0 0 World initStep + 1 134 -41.6 -238 0.00128 0.00163 1.35 1.35 World eIoni + 2 134 -41.5 -238 0 0.00128 0.404 1.76 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 134 -39.9 -370 0.0026 0 0 0 World initStep + 1 134 -40.4 -370 0.00124 0.00136 1.19 1.19 World eIoni + 2 134 -40.5 -370 0 0.00124 0.386 1.58 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 134 -39.8 -379 0.00155 0 0 0 World initStep + 1 134 -39.6 -379 0 0.00155 0.538 0.538 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 134 -39.7 -397 0.00172 0 0 0 World initStep + 1 134 -39.5 -397 0 0.00172 0.633 0.633 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 133 -39.3 -446 0.0022 0 0 0 World initStep + 1 133 -39 -446 0 0.0022 0.931 0.931 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 133 -39.2 -458 0.00503 0 0 0 World initStep + 1 133 -37.9 -458 0.00246 0.00257 2.16 2.16 World eIoni + 2 133 -38 -459 0 0.00246 1.11 3.26 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 133 -39 -492 0.0012 0 0 0 World initStep + 1 133 -39.1 -492 0 0.0012 0.366 0.366 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 133 -38.5 -554 0.00197 0 0 0 World initStep + 1 133 -38.6 -554 0 0.00197 0.781 0.781 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 133 -38.4 -566 0.00177 0 0 0 World initStep + 1 133 -38.7 -566 0 0.00177 0.661 0.661 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 133 -38 -613 0.00147 0 0 0 World initStep + 1 133 -37.9 -613 0 0.00147 0.497 0.497 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 133 -37.8 -633 0.00393 0 0 0 World initStep + 1 133 -36.9 -632 0.00187 0.00206 1.78 1.78 World eIoni + 2 133 -36.9 -633 0 0.00187 0.722 2.5 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 133 -37.7 -648 0.00455 0 0 0 World initStep + 1 133 -38.9 -648 0.00234 0.00221 1.99 1.99 World eIoni + 2 133 -39.3 -648 0 0.00234 1.03 3.03 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 133 -37.3 -701 0.00268 0 0 0 World initStep + 1 133 -37.1 -701 0 0.00268 1.24 1.24 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -36.8 -754 0.00393 0 0 0 World initStep + 1 132 -37.2 -754 0.00183 0.0021 1.77 1.77 World eIoni + 2 132 -37.1 -754 0 0.00183 0.698 2.47 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -36 -845 0.00347 0 0 0 World initStep + 1 133 -36.1 -845 0 0.00347 1.6 1.6 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -35.9 -855 0.00101 0 0 0 World initStep + 1 132 -36 -855 0 0.00101 0.285 0.285 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -35.8 -862 0.00393 0 0 0 World initStep + 1 132 -35.8 -862 0.0023 0 0.0415 0.0415 World eIoni + 2 132 -35.6 -862 0 0.0023 1 1.04 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -35.8 -862 0.00163 0 0 0 World initStep + 1 132 -35.8 -862 0 0.00163 0.583 0.583 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -35.8 -868 0.0491 0 0 0 World initStep + 1 125 -45 -858 0.0433 0.00303 15.8 15.8 World eIoni + 2 110 -73 -844 0.0399 0.00337 40.2 56 World eIoni + 3 98.9 -91.4 -836 0.0348 0.00356 23.9 79.9 World eIoni + 4 92.4 -100 -835 0.0336 0.00128 11.5 91.4 World eIoni + 5 93.8 -103 -855 0.0303 0.00206 21.5 113 World eIoni + 6 86 -100 -873 0.0258 0.00455 21.8 135 World eIoni + 7 86.8 -98.2 -888 0.018 0.00508 15.6 150 World eIoni + 8 92.6 -92.2 -890 0.016 0.00201 9.36 160 World eIoni + 9 91.2 -88.4 -894 0.0118 0.00179 6.29 166 World eIoni + 10 89.5 -89.2 -899 0.0101 0.0017 5.11 171 World eIoni + 11 89.7 -91.2 -901 0.00839 0.00168 4.22 175 World eIoni + 12 88.4 -93.4 -902 0.0076 0.000789 3.44 179 World eIoni + 13 89.6 -94.8 -903 0.00695 0.00065 3.11 182 World eIoni + 14 90.3 -95.7 -903 0.00536 0.000468 1.28 183 World eIoni + 15 90.5 -97.2 -903 0.0039 0.00147 2.27 185 World eIoni + 16 91 -96.4 -903 0.00228 0.00162 1.75 187 World eIoni + 17 91.2 -96.4 -904 0 0.00228 0.984 188 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 90.3 -95.7 -903 0.00112 0 0 0 World initStep + 1 90.2 -95.7 -903 0 0.00112 0.333 0.333 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 91.2 -88.4 -894 0.00248 0 0 0 World initStep + 1 91.6 -88.1 -894 0 0.00248 1.12 1.12 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 86.8 -98.2 -888 0.00265 0 0 0 World initStep + 1 86.4 -98.2 -888 0 0.00265 1.22 1.22 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 93.8 -103 -855 0.00118 0 0 0 World initStep + 1 93.7 -103 -855 0 0.00118 0.359 0.359 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 98.9 -91.4 -836 0.0015 0 0 0 World initStep + 1 98.7 -91.3 -836 0 0.0015 0.513 0.513 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 125 -45 -858 0.0028 0 0 0 World initStep + 1 124 -44.7 -858 0 0.0028 1.3 1.3 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -35.3 -922 0.00374 0 0 0 World initStep + 1 132 -34.4 -922 0.00217 0.00157 1.7 1.7 World eIoni + 2 132 -34.4 -922 0 0.00217 0.909 2.61 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -35.3 -923 0.0011 0 0 0 World initStep + 1 132 -35.2 -923 0 0.0011 0.324 0.324 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -35.2 -930 0.00504 0 0 0 World initStep + 1 132 -36.6 -930 0.00359 0.00145 2.16 2.16 World eIoni + 2 132 -36.6 -929 0.00107 0.00252 1.65 3.81 World eIoni + 3 132 -36.5 -929 0 0.00107 0.31 4.12 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -35.2 -936 0.00209 0 0 0 World initStep + 1 132 -34.8 -936 0 0.00209 0.86 0.86 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -34.4 -1.03e+03 0.00536 0 0 0 World initStep + 1 131 -33.4 -1.03e+03 0.00451 0.000846 2.27 2.27 World eIoni + 2 130 -34.3 -1.03e+03 0.00305 0.00146 1.98 4.25 World eIoni + 3 130 -33.6 -1.03e+03 0.00131 0.00175 1.42 5.67 World eIoni + 4 130 -33.6 -1.03e+03 0 0.00131 0.416 6.09 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -34 -1.07e+03 0.00258 0 0 0 World initStep + 1 131 -34.4 -1.07e+03 0 0.00258 1.18 1.18 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -33.8 -1.1e+03 0.00191 0 0 0 World initStep + 1 132 -34 -1.1e+03 0 0.00191 0.744 0.744 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -33.6 -1.11e+03 0.0186 0 0 0 World initStep + 1 132 -27 -1.11e+03 0.0166 0.00201 9.82 9.82 World eIoni + 2 132 -26.1 -1.11e+03 0.0122 0.00182 1.67 11.5 World eIoni + 3 131 -21.5 -1.1e+03 0.011 0.00127 5.37 16.9 World eIoni + 4 131 -17.4 -1.11e+03 0.0097 0.00126 4.67 21.5 World eIoni + 5 131 -14.3 -1.11e+03 0.00849 0.00121 4.04 25.6 World eIoni + 6 131 -12.3 -1.11e+03 0.00679 0.0017 3.48 29.1 World eIoni + 7 129 -12.9 -1.11e+03 0.00451 0.00228 2.79 31.8 World eIoni + 8 129 -13 -1.11e+03 0.00274 0.00177 1.98 33.8 World eIoni + 9 129 -12.9 -1.11e+03 0.00152 0.00122 1.22 35 World eIoni + 10 129 -12.7 -1.11e+03 0 0.00152 0.524 35.6 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -26.1 -1.11e+03 0.00255 0 0 0 World initStep + 1 132 -26.1 -1.11e+03 0.00219 0.000357 0.396 0.396 World msc + 2 132 -26 -1.11e+03 0.00156 0.000636 0.267 0.664 World msc + 3 132 -25.9 -1.11e+03 0 0.00156 0.543 1.21 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 -33.6 -1.11e+03 0.0019 0 0 0 World initStep + 1 132 -33.4 -1.11e+03 0 0.0019 0.741 0.741 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 131 -33.3 -1.16e+03 0.106 0 0 0 World initStep + 1 131 -33 -1.15e+03 0.104 0.000217 2.65 2.65 World eIoni + 2 130 -32 -1.12e+03 0.101 0.00239 37.8 40.4 cloudPV CoupledTransportation + 3 130 -32 -1.12e+03 0.101 0.000922 0.00613 40.4 cloudPV msc + 4 130 -32 -1.12e+03 0.098 0.00257 0.00604 40.4 cloudPV msc + 5 130 -32 -1.12e+03 0.096 0.00194 0.0058 40.4 cloudPV msc + 6 130 -32 -1.12e+03 0.0939 0.00211 0.00569 40.5 cloudPV msc + 7 130 -32 -1.12e+03 0.0922 0.00169 0.00821 40.5 cloudPV msc + 8 130 -32.1 -1.12e+03 0.0883 0.00389 0.0156 40.5 cloudPV msc + 9 130 -32.1 -1.12e+03 0.0827 0.00562 0.0205 40.5 cloudPV msc + 10 130 -32.1 -1.12e+03 0.068 0.0148 0.0311 40.5 cloudPV msc + 11 130 -32.1 -1.12e+03 0 0.068 0.0743 40.6 cloudPV eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 28 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 131 -33 -1.15e+03 0.00164 0 0 0 World initStep + 1 131 -32.8 -1.15e+03 0 0.00164 0.586 0.586 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 131 -33.2 -1.17e+03 0.00153 0 0 0 World initStep + 1 131 -33.2 -1.17e+03 0 0.00153 0.526 0.526 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 131 -33.2 -1.18e+03 0.00151 0 0 0 World initStep + 1 131 -33 -1.18e+03 0 0.00151 0.516 0.516 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 131 -33.1 -1.18e+03 0.00259 0 0 0 World initStep + 1 131 -33.2 -1.18e+03 0 0.00259 1.19 1.19 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 131 -32.2 -1.32e+03 0.00106 0 0 0 World initStep + 1 131 -32.2 -1.32e+03 0 0.00106 0.307 0.307 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 131 -31.7 -1.41e+03 0.00416 0 0 0 World initStep + 1 130 -32.7 -1.41e+03 0.00277 0.00139 1.86 1.86 World eIoni + 2 131 -32.5 -1.4e+03 0 0.00277 1.29 3.14 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 131 -31.5 -1.44e+03 0.00171 0 0 0 World initStep + 1 131 -31.8 -1.44e+03 0 0.00171 0.628 0.628 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 130 -31.3 -1.48e+03 0.000999 0 0 0 World initStep + 1 130 -31.3 -1.48e+03 0 0.000999 0.282 0.282 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 130 -31.2 -1.5e+03 0.00157 0 0 0 World initStep + 1 131 -31.3 -1.5e+03 0 0.00157 0.549 0.549 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 130 -30.5 -1.61e+03 0.00473 0 0 0 World initStep + 1 131 -30.9 -1.61e+03 0.00299 0.00173 2.05 2.05 World eIoni + 2 131 -30.5 -1.61e+03 0.0012 0.00179 1.39 3.45 World eIoni + 3 131 -30.6 -1.61e+03 0 0.0012 0.369 3.82 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 130 -30.4 -1.63e+03 0.00119 0 0 0 World initStep + 1 130 -30.4 -1.63e+03 0 0.00119 0.362 0.362 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 129 -29.4 -1.83e+03 0.00112 0 0 0 World initStep + 1 129 -29.3 -1.83e+03 0 0.00112 0.333 0.333 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 129 -29.3 -1.85e+03 0.00385 0 0 0 World initStep + 1 130 -29.6 -1.85e+03 0.00223 0.00162 1.75 1.75 World eIoni + 2 130 -29.9 -1.85e+03 0 0.00223 0.953 2.7 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 129 -29.2 -1.86e+03 0.0042 0 0 0 World initStep + 1 129 -28.3 -1.86e+03 0.00332 0.00088 1.87 1.87 World eIoni + 2 130 -28.4 -1.86e+03 0.00131 0.00202 1.54 3.41 World eIoni + 3 130 -28.5 -1.86e+03 0 0.00131 0.416 3.83 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 129 -29.2 -1.87e+03 0.00319 0 0 0 World initStep + 1 129 -29.9 -1.87e+03 0 0.00319 1.48 1.48 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 129 -29.2 -1.88e+03 0.00543 0 0 0 World initStep + 1 128 -28.6 -1.88e+03 0.00265 0.00278 2.3 2.3 World eIoni + 2 128 -28.3 -1.88e+03 0 0.00265 1.22 3.52 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 129 -28.8 -1.97e+03 0.00203 0 0 0 World initStep + 1 129 -28.4 -1.97e+03 0 0.00203 0.818 0.818 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 128 -28.3 -2.09e+03 0.00292 0 0 0 World initStep + 1 128 -28.1 -2.09e+03 0 0.00292 1.36 1.36 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 127 -27.9 -2.23e+03 0.00463 0 0 0 World initStep + 1 126 -27.3 -2.22e+03 0.00196 0.00267 2.02 2.02 World eIoni + 2 126 -27.3 -2.22e+03 0 0.00196 0.772 2.79 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 127 -27.7 -2.27e+03 0.00528 0 0 0 World initStep + 1 127 -26.3 -2.27e+03 0.00348 0.0018 2.24 2.24 World eIoni + 2 127 -25.5 -2.27e+03 0.00192 0.00157 1.61 3.85 World eIoni + 3 127 -25.3 -2.27e+03 0 0.00192 0.75 4.6 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 127 -27.6 -2.36e+03 0.00167 0 0 0 World initStep + 1 127 -27.4 -2.36e+03 0 0.00167 0.603 0.603 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 127 -27.6 -2.43e+03 0.0169 0 0 0 World initStep + 1 121 -22.2 -2.43e+03 0.0133 0.00263 8.42 8.42 World eIoni + 2 120 -21.6 -2.43e+03 0.00762 8.17e-05 1.25 9.67 World eIoni + 3 120 -21 -2.43e+03 0.00579 0.00183 1.11 10.8 cloudPV CoupledTransportation + 4 120 -21 -2.43e+03 0.00575 3.17e-05 4.14e-05 10.8 cloudPV msc + 5 120 -21 -2.43e+03 0.00561 0.000146 3.54e-05 10.8 cloudPV msc + 6 120 -21 -2.43e+03 0.00557 3.52e-05 4.11e-05 10.8 cloudPV msc + 7 120 -21 -2.43e+03 0.00537 0.0002 4.78e-05 10.8 cloudPV msc + 8 120 -21 -2.43e+03 0.0043 0.00107 6.04e-05 10.8 cloudPV msc + 9 120 -21 -2.43e+03 0.00391 0.000391 7.33e-05 10.8 cloudPV msc + 10 120 -21 -2.43e+03 0.00368 0.00023 7.73e-05 10.8 cloudPV msc + 11 120 -21 -2.43e+03 0.0034 0.000282 6.88e-05 10.8 cloudPV msc + 12 120 -21 -2.43e+03 0.00278 0.000618 8.03e-05 10.8 cloudPV msc + 13 120 -21 -2.43e+03 0.00234 0.000435 9.35e-05 10.8 cloudPV msc + 14 120 -21 -2.43e+03 0.00188 0.000459 0.000108 10.8 cloudPV msc + 15 120 -21 -2.43e+03 0 0.00188 0.000153 10.8 cloudPV eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 120 -21.6 -2.43e+03 0.00556 0 0 0 World initStep + 1 120 -21.8 -2.43e+03 0.00526 0.000298 0.549 0.549 World msc + 2 119 -21.9 -2.43e+03 0.00483 0.000433 0.509 1.06 World msc + 3 119 -21.8 -2.43e+03 0.00459 0.000242 0.706 1.76 World msc + 4 119 -21.3 -2.43e+03 0.00407 0.000519 0.723 2.49 World msc + 5 118 -20.6 -2.43e+03 0.00338 0.000685 0.873 3.36 World msc + 6 118 -19.9 -2.43e+03 0 0.00338 1.57 4.93 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 121 -22.2 -2.43e+03 0.00102 0 0 0 World initStep + 1 121 -22.2 -2.43e+03 0 0.00102 0.289 0.289 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 127 -27.6 -2.44e+03 0.00364 0 0 0 World initStep + 1 127 -26.7 -2.44e+03 0.00218 0.00147 1.67 1.67 World eIoni + 2 127 -26.7 -2.44e+03 0 0.00218 0.917 2.58 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 127 -27.6 -2.47e+03 0.00588 0 0 0 World initStep + 1 127 -26.4 -2.47e+03 0.00499 0.000888 1.41 1.41 World msc + 2 128 -26 -2.47e+03 0.00433 0.000659 0.641 2.05 World msc + 3 128 -25.7 -2.47e+03 0.00378 0.000549 0.35 2.4 World msc + 4 128 -25.4 -2.47e+03 0.00345 0.000327 0.359 2.76 World msc + 5 128 -25.3 -2.47e+03 0.00297 0.00048 0.131 2.89 cloudPV CoupledTransportation + 6 128 -25.3 -2.47e+03 0.00296 1.57e-05 1.18e-05 2.89 cloudPV msc + 7 128 -25.3 -2.47e+03 0.00288 7.78e-05 1.28e-05 2.89 cloudPV msc + 8 128 -25.3 -2.47e+03 0.00284 3.93e-05 1.31e-05 2.89 cloudPV msc + 9 128 -25.3 -2.47e+03 0.0028 4.4e-05 2.04e-05 2.89 cloudPV msc + 10 128 -25.3 -2.47e+03 0.00265 0.000147 2.71e-05 2.89 cloudPV msc + 11 128 -25.3 -2.47e+03 0.00243 0.000219 4.16e-05 2.89 cloudPV msc + 12 128 -25.3 -2.47e+03 0.00204 0.000391 6.89e-05 2.89 cloudPV msc + 13 128 -25.3 -2.47e+03 0.0013 0.000741 6.33e-05 2.89 cloudPV msc + 14 128 -25.3 -2.47e+03 0 0.0013 8.59e-05 2.89 cloudPV eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 127 -27.6 -2.48e+03 0.00127 0 0 0 World initStep + 1 127 -27.7 -2.48e+03 0 0.00127 0.398 0.398 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 127 -27.6 -2.51e+03 0.00151 0 0 0 World initStep + 1 127 -27.5 -2.51e+03 0 0.00151 0.516 0.516 World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 127 -27.6 -2.56e+03 0.00141 0 0 0 World initStep + 1 127 -27.4 -2.56e+03 0 0.00141 0.465 0.465 World eIoni Run terminated. Run Summary Number of events processed : 10 - User=1.190000s Real=1.241736s Sys=0.030000s + User=1.380000s Real=1.455372s Sys=0.070000s --------------------End of Global Run----------------------- The run consists of 10 proton of 50 MeV - Cumulated dose per run, in scoring volume : 2.000252527415375 picoGy rms = 0.0614993172855299 picoGy + Cumulated dose per run, in scoring volume : 2.045764634124848 picoGy rms = 0.03909614181804526 picoGy ------------------------------------------------------------ # save @@ -13885,25 +13888,23 @@ G4SDManager deleted. EventManager deleted. Units table cleared. TransportationManager deleted. -Total navigation history collections cleaned: 14 +Total navigation history collections cleaned: 13 G4RNGHelper object is deleted. ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.0183 MB +Pool ID '20G4NavigationLevelRep', size : 0.0173 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.0211 MB +Pool ID '17G4DynamicParticle', size : 0.0202 MB Pool ID '16G4SmartVoxelNode', size : 0.00192 MB Pool ID '17G4SmartVoxelProxy', size : 0.000961 MB Pool ID '7G4Event', size : 0.000961 MB Pool ID '15G4PrimaryVertex', size : 0.000961 MB Pool ID '17G4PrimaryParticle', size : 0.000961 MB Pool ID '15G4HCofThisEvent', size : 0.000961 MB -Pool ID '7G4Track', size : 0.0413 MB +Pool ID '7G4Track', size : 0.0394 MB Pool ID '18G4TouchableHistory', size : 0.00192 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB -Pool ID '10G4Fragment', size : 0.000961 MB -Pool ID '17G4ReactionProduct', size : 0.000961 MB -Number of memory pools allocated: 14 of which, static: 0 -Dynamic pools deleted: 14 / Total memory freed: 0.093 MB +Number of memory pools allocated: 12 of which, static: 0 +Dynamic pools deleted: 12 / Total memory freed: 0.087 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/advanced/gammaknife/README b/examples/advanced/gammaknife/README index 915869c643..e9d681b89d 100644 --- a/examples/advanced/gammaknife/README +++ b/examples/advanced/gammaknife/README @@ -73,7 +73,7 @@ GPS (General Particle Source) class is used to generate the primary events.The G ----> GEOMETRICAL SET-UP. -The Gamma-Knife unit consists of a cast-iron body containing the 60Co sources and the collimation system. Sources are displaced along five parallel rings at the same distance from the isocentre. Depending on the specific ring, sources are located with a different spacing, respectively with an angle of 7.6◦, 8◦, 9◦, 9◦ and 10◦. These angles represent the rotation angles of the scoring mesh (contained in the MachineAngle.in file). Gamma radiation (1.17 and 1.33 MeV), emitted by Co60 sources arranged in a hemispherical shape, focuses on the isocentre, located 401 mm far from the source. The radiation beam is collimated by means of fixed and mobile collimation systems in order to obtain four possible beam diameters at the isocentre: 4, 8, 14 and 18 mm. +The Gamma-Knife unit consists of a cast-iron body containing the 60Co sources and the collimation system. Sources are displaced along five parallel rings at the same distance from the isocentre. Depending on the specific ring, sources are located with a different spacing, respectively with an angle of 7.6°, 8°, 9°, 9° and 10°. These angles represent the rotation angles of the scoring mesh (contained in the MachineAngle.in file). Gamma radiation (1.17 and 1.33 MeV), emitted by Co60 sources arranged in a hemispherical shape, focuses on the isocentre, located 401 mm far from the source. The radiation beam is collimated by means of fixed and mobile collimation systems in order to obtain four possible beam diameters at the isocentre: 4, 8, 14 and 18 mm. The elements simulated are: diff --git a/examples/advanced/gammaknife/gammaknife.out b/examples/advanced/gammaknife/gammaknife.out index 3e255cd446..acdbe1e6a2 100644 --- a/examples/advanced/gammaknife/gammaknife.out +++ b/examples/advanced/gammaknife/gammaknife.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -140,6 +142,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -167,7 +170,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -203,8 +206,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -233,8 +235,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 10 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -334,7 +336,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 10 eV to 100 TeV in 260 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -608,8 +610,8 @@ Run 0 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003982s Sys=0.010000s - User TOT = 0 Real TOT = 0.00440031 + User=0.000000s Real=0.003289s Sys=0.000000s + User TOT = 0 Real TOT = 0.00370706 Summary of Run 0 : /run/geometryModified @@ -678,8 +680,8 @@ Run 1 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002511s Sys=0.000000s - User TOT = 0 Real TOT = 0.00705335 + User=0.000000s Real=0.002601s Sys=0.000000s + User TOT = 0 Real TOT = 0.00646171 Summary of Run 1 : /run/geometryModified @@ -748,8 +750,8 @@ Run 2 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002131s Sys=0.000000s - User TOT = 0 Real TOT = 0.00933855 + User=0.000000s Real=0.002532s Sys=0.000000s + User TOT = 0 Real TOT = 0.00918746 Summary of Run 2 : /run/geometryModified @@ -818,8 +820,8 @@ Run 3 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002594s Sys=0.000000s - User TOT = 0 Real TOT = 0.0120776 + User=0.000000s Real=0.002174s Sys=0.010000s + User TOT = 0 Real TOT = 0.0115107 Summary of Run 3 : /run/geometryModified @@ -888,8 +890,8 @@ Run 4 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002261s Sys=0.000000s - User TOT = 0 Real TOT = 0.0144898 + User=0.000000s Real=0.002794s Sys=0.000000s + User TOT = 0 Real TOT = 0.0144954 Summary of Run 4 : /run/geometryModified @@ -958,8 +960,8 @@ Run 5 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002653s Sys=0.000000s - User TOT = 0 Real TOT = 0.0172858 + User=0.000000s Real=0.002949s Sys=0.000000s + User TOT = 0 Real TOT = 0.0176348 Summary of Run 5 : /run/geometryModified @@ -1028,8 +1030,8 @@ Run 6 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.002863s Sys=0.000000s - User TOT = 0.01 Real TOT = 0.0203017 + User=0.000000s Real=0.002164s Sys=0.000000s + User TOT = 0 Real TOT = 0.0199473 Summary of Run 6 : /run/geometryModified @@ -1098,8 +1100,8 @@ Run 7 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003249s Sys=0.000000s - User TOT = 0.01 Real TOT = 0.0236971 + User=0.000000s Real=0.002771s Sys=0.000000s + User TOT = 0 Real TOT = 0.0229027 Summary of Run 7 : /run/geometryModified @@ -1168,8 +1170,8 @@ Run 8 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002759s Sys=0.000000s - User TOT = 0.01 Real TOT = 0.0266002 + User=0.010000s Real=0.002497s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0256157 Summary of Run 8 : /run/geometryModified @@ -1238,8 +1240,8 @@ Run 9 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.002417s Sys=0.000000s - User TOT = 0.02 Real TOT = 0.0291623 + User=0.000000s Real=0.002138s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0278981 Summary of Run 9 : /run/geometryModified @@ -1308,8 +1310,8 @@ Run 10 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002971s Sys=0.000000s - User TOT = 0.02 Real TOT = 0.0322845 + User=0.000000s Real=0.002297s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.030342 Summary of Run 10 : /run/geometryModified @@ -1378,8 +1380,8 @@ Run 11 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003332s Sys=0.000000s - User TOT = 0.02 Real TOT = 0.0357605 + User=0.000000s Real=0.002578s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0330829 Summary of Run 11 : /run/geometryModified @@ -1448,8 +1450,8 @@ Run 12 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002651s Sys=0.000000s - User TOT = 0.02 Real TOT = 0.0385764 + User=0.000000s Real=0.002356s Sys=0.010000s + User TOT = 0.01 Real TOT = 0.0355849 Summary of Run 12 : /run/geometryModified @@ -1518,8 +1520,8 @@ Run 13 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002696s Sys=0.010000s - User TOT = 0.02 Real TOT = 0.0414172 + User=0.000000s Real=0.002427s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0381741 Summary of Run 13 : /run/geometryModified @@ -1588,8 +1590,8 @@ Run 14 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002881s Sys=0.000000s - User TOT = 0.02 Real TOT = 0.0444614 + User=0.000000s Real=0.003974s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0422958 Summary of Run 14 : /run/geometryModified @@ -1658,8 +1660,8 @@ Run 15 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002657s Sys=0.000000s - User TOT = 0.02 Real TOT = 0.0472676 + User=0.000000s Real=0.002348s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0447918 Summary of Run 15 : /run/geometryModified @@ -1728,8 +1730,8 @@ Run 16 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002427s Sys=0.000000s - User TOT = 0.02 Real TOT = 0.0498395 + User=0.000000s Real=0.002273s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0472326 Summary of Run 16 : /run/geometryModified @@ -1798,8 +1800,8 @@ Run 17 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002646s Sys=0.000000s - User TOT = 0.02 Real TOT = 0.0526276 + User=0.000000s Real=0.003063s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0505187 Summary of Run 17 : /run/geometryModified @@ -1868,8 +1870,8 @@ Run 18 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002466s Sys=0.000000s - User TOT = 0.02 Real TOT = 0.0552512 + User=0.000000s Real=0.002422s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0530905 Summary of Run 18 : /run/geometryModified @@ -1938,8 +1940,8 @@ Run 19 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.003229s Sys=0.000000s - User TOT = 0.03 Real TOT = 0.0586166 + User=0.000000s Real=0.002647s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0559002 Summary of Run 19 : /run/geometryModified @@ -2008,8 +2010,8 @@ Run 20 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002512s Sys=0.000000s - User TOT = 0.03 Real TOT = 0.0612754 + User=0.000000s Real=0.002597s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0586557 Summary of Run 20 : /run/geometryModified @@ -2078,8 +2080,8 @@ Run 21 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003355s Sys=0.000000s - User TOT = 0.03 Real TOT = 0.0647871 + User=0.000000s Real=0.002501s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0613039 Summary of Run 21 : /run/geometryModified @@ -2148,8 +2150,8 @@ Run 22 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.002548s Sys=0.000000s - User TOT = 0.04 Real TOT = 0.0675012 + User=0.000000s Real=0.002788s Sys=0.010000s + User TOT = 0.01 Real TOT = 0.0642398 Summary of Run 22 : /run/geometryModified @@ -2218,8 +2220,8 @@ Run 23 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002896s Sys=0.000000s - User TOT = 0.04 Real TOT = 0.0705461 + User=0.000000s Real=0.002082s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0664811 Summary of Run 23 : /run/geometryModified @@ -2288,8 +2290,8 @@ Run 24 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002327s Sys=0.010000s - User TOT = 0.04 Real TOT = 0.0730193 + User=0.000000s Real=0.002512s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0691411 Summary of Run 24 : /run/geometryModified @@ -2358,8 +2360,8 @@ Run 25 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002380s Sys=0.000000s - User TOT = 0.04 Real TOT = 0.0755591 + User=0.000000s Real=0.002518s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0718152 Summary of Run 25 : /run/geometryModified @@ -2428,8 +2430,8 @@ Run 26 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002349s Sys=0.000000s - User TOT = 0.04 Real TOT = 0.0780523 + User=0.000000s Real=0.002113s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0740874 Summary of Run 26 : /run/geometryModified @@ -2498,8 +2500,8 @@ Run 27 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002182s Sys=0.000000s - User TOT = 0.04 Real TOT = 0.0803785 + User=0.000000s Real=0.002324s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.076607 Summary of Run 27 : /run/geometryModified @@ -2568,8 +2570,8 @@ Run 28 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002064s Sys=0.000000s - User TOT = 0.04 Real TOT = 0.0825843 + User=0.000000s Real=0.002397s Sys=0.000000s + User TOT = 0.01 Real TOT = 0.0791652 Summary of Run 28 : /run/geometryModified @@ -2638,8 +2640,8 @@ Run 29 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002651s Sys=0.000000s - User TOT = 0.04 Real TOT = 0.0853896 + User=0.010000s Real=0.002849s Sys=0.000000s + User TOT = 0.02 Real TOT = 0.0821624 Summary of Run 29 : /run/geometryModified @@ -2708,8 +2710,8 @@ Run 30 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003455s Sys=0.000000s - User TOT = 0.04 Real TOT = 0.0889902 + User=0.000000s Real=0.002147s Sys=0.000000s + User TOT = 0.02 Real TOT = 0.084468 Summary of Run 30 : /run/geometryModified @@ -2778,8 +2780,8 @@ Run 31 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002675s Sys=0.000000s - User TOT = 0.04 Real TOT = 0.0918229 + User=0.000000s Real=0.002263s Sys=0.000000s + User TOT = 0.02 Real TOT = 0.0868873 Summary of Run 31 : /run/geometryModified @@ -2848,8 +2850,8 @@ Run 32 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.003109s Sys=0.010000s - User TOT = 0.05 Real TOT = 0.0950771 + User=0.000000s Real=0.002646s Sys=0.000000s + User TOT = 0.02 Real TOT = 0.0896802 Summary of Run 32 : /run/geometryModified @@ -2918,8 +2920,8 @@ Run 33 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003042s Sys=0.000000s - User TOT = 0.05 Real TOT = 0.0982774 + User=0.000000s Real=0.002488s Sys=0.000000s + User TOT = 0.02 Real TOT = 0.0923342 Summary of Run 33 : /run/geometryModified @@ -2988,8 +2990,8 @@ Run 34 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002827s Sys=0.000000s - User TOT = 0.05 Real TOT = 0.101269 + User=0.000000s Real=0.003048s Sys=0.010000s + User TOT = 0.02 Real TOT = 0.09557 Summary of Run 34 : /run/geometryModified @@ -3058,8 +3060,8 @@ Run 35 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002738s Sys=0.000000s - User TOT = 0.05 Real TOT = 0.104168 + User=0.000000s Real=0.002179s Sys=0.000000s + User TOT = 0.02 Real TOT = 0.0979062 Summary of Run 35 : /run/geometryModified @@ -3128,8 +3130,8 @@ Run 36 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002970s Sys=0.000000s - User TOT = 0.05 Real TOT = 0.107283 + User=0.000000s Real=0.002318s Sys=0.000000s + User TOT = 0.02 Real TOT = 0.100384 Summary of Run 36 : /run/geometryModified @@ -3198,8 +3200,8 @@ Run 37 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.002911s Sys=0.000000s - User TOT = 0.06 Real TOT = 0.110334 + User=0.010000s Real=0.003354s Sys=0.000000s + User TOT = 0.03 Real TOT = 0.103964 Summary of Run 37 : /run/geometryModified @@ -3268,8 +3270,8 @@ Run 38 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002312s Sys=0.000000s - User TOT = 0.06 Real TOT = 0.112803 + User=0.000000s Real=0.002715s Sys=0.000000s + User TOT = 0.03 Real TOT = 0.106851 Summary of Run 38 : /run/geometryModified @@ -3338,8 +3340,8 @@ Run 39 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002451s Sys=0.000000s - User TOT = 0.06 Real TOT = 0.1154 + User=0.000000s Real=0.002727s Sys=0.000000s + User TOT = 0.03 Real TOT = 0.109753 Summary of Run 39 : /run/geometryModified @@ -3408,8 +3410,8 @@ Run 40 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002580s Sys=0.010000s - User TOT = 0.06 Real TOT = 0.118126 + User=0.000000s Real=0.002390s Sys=0.000000s + User TOT = 0.03 Real TOT = 0.112315 Summary of Run 40 : /run/geometryModified @@ -3478,8 +3480,8 @@ Run 41 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002526s Sys=0.000000s - User TOT = 0.06 Real TOT = 0.120797 + User=0.010000s Real=0.003098s Sys=0.000000s + User TOT = 0.04 Real TOT = 0.11562 Summary of Run 41 : /run/geometryModified @@ -3548,8 +3550,8 @@ Run 42 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.002474s Sys=0.000000s - User TOT = 0.07 Real TOT = 0.123418 + User=0.000000s Real=0.002320s Sys=0.000000s + User TOT = 0.04 Real TOT = 0.118121 Summary of Run 42 : /run/geometryModified @@ -3618,8 +3620,8 @@ Run 43 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002583s Sys=0.000000s - User TOT = 0.07 Real TOT = 0.126144 + User=0.000000s Real=0.002549s Sys=0.000000s + User TOT = 0.04 Real TOT = 0.120824 Summary of Run 43 : /run/geometryModified @@ -3688,8 +3690,8 @@ Run 44 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002448s Sys=0.000000s - User TOT = 0.07 Real TOT = 0.128754 + User=0.000000s Real=0.003178s Sys=0.000000s + User TOT = 0.04 Real TOT = 0.124178 Summary of Run 44 : /run/geometryModified @@ -3758,8 +3760,8 @@ Run 45 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002539s Sys=0.000000s - User TOT = 0.07 Real TOT = 0.131439 + User=0.010000s Real=0.002907s Sys=0.010000s + User TOT = 0.05 Real TOT = 0.127247 Summary of Run 45 : /run/geometryModified @@ -3828,8 +3830,8 @@ Run 46 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002647s Sys=0.000000s - User TOT = 0.07 Real TOT = 0.134231 + User=0.000000s Real=0.002694s Sys=0.000000s + User TOT = 0.05 Real TOT = 0.130091 Summary of Run 46 : /run/geometryModified @@ -3898,8 +3900,8 @@ Run 47 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002517s Sys=0.000000s - User TOT = 0.07 Real TOT = 0.136907 + User=0.000000s Real=0.002296s Sys=0.000000s + User TOT = 0.05 Real TOT = 0.132537 Summary of Run 47 : /run/geometryModified @@ -3968,8 +3970,8 @@ Run 48 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.002365s Sys=0.000000s - User TOT = 0.08 Real TOT = 0.139417 + User=0.000000s Real=0.002249s Sys=0.000000s + User TOT = 0.05 Real TOT = 0.134931 Summary of Run 48 : /run/geometryModified @@ -4038,8 +4040,8 @@ Run 49 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002700s Sys=0.000000s - User TOT = 0.08 Real TOT = 0.142261 + User=0.010000s Real=0.002613s Sys=0.000000s + User TOT = 0.06 Real TOT = 0.13771 Summary of Run 49 : /run/geometryModified @@ -4108,8 +4110,8 @@ Run 50 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003252s Sys=0.000000s - User TOT = 0.08 Real TOT = 0.14568 + User=0.000000s Real=0.002461s Sys=0.000000s + User TOT = 0.06 Real TOT = 0.140335 Summary of Run 50 : /run/geometryModified @@ -4178,8 +4180,8 @@ Run 51 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.004443s Sys=0.000000s - User TOT = 0.08 Real TOT = 0.150262 + User=0.000000s Real=0.002400s Sys=0.000000s + User TOT = 0.06 Real TOT = 0.142882 Summary of Run 51 : /run/geometryModified @@ -4248,8 +4250,8 @@ Run 52 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.003401s Sys=0.000000s - User TOT = 0.09 Real TOT = 0.15381 + User=0.000000s Real=0.002158s Sys=0.000000s + User TOT = 0.06 Real TOT = 0.1452 Summary of Run 52 : /run/geometryModified @@ -4318,8 +4320,8 @@ Run 53 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002527s Sys=0.000000s - User TOT = 0.09 Real TOT = 0.156483 + User=0.000000s Real=0.002635s Sys=0.010000s + User TOT = 0.06 Real TOT = 0.147992 Summary of Run 53 : /run/geometryModified @@ -4388,8 +4390,8 @@ Run 54 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002300s Sys=0.000000s - User TOT = 0.09 Real TOT = 0.158928 + User=0.000000s Real=0.002739s Sys=0.000000s + User TOT = 0.06 Real TOT = 0.150879 Summary of Run 54 : /run/geometryModified @@ -4458,8 +4460,8 @@ Run 55 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002663s Sys=0.010000s - User TOT = 0.09 Real TOT = 0.161762 + User=0.010000s Real=0.002577s Sys=0.000000s + User TOT = 0.07 Real TOT = 0.153625 Summary of Run 55 : /run/geometryModified @@ -4528,8 +4530,8 @@ Run 56 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002492s Sys=0.000000s - User TOT = 0.09 Real TOT = 0.164408 + User=0.000000s Real=0.002535s Sys=0.000000s + User TOT = 0.07 Real TOT = 0.156303 Summary of Run 56 : /run/geometryModified @@ -4598,8 +4600,8 @@ Run 57 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002446s Sys=0.000000s - User TOT = 0.09 Real TOT = 0.166997 + User=0.000000s Real=0.002299s Sys=0.000000s + User TOT = 0.07 Real TOT = 0.158748 Summary of Run 57 : /run/geometryModified @@ -4668,8 +4670,8 @@ Run 58 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.002666s Sys=0.000000s - User TOT = 0.1 Real TOT = 0.169806 + User=0.000000s Real=0.002695s Sys=0.000000s + User TOT = 0.07 Real TOT = 0.161589 Summary of Run 58 : /run/geometryModified @@ -4738,8 +4740,8 @@ Run 59 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002315s Sys=0.000000s - User TOT = 0.1 Real TOT = 0.172266 + User=0.010000s Real=0.002370s Sys=0.000000s + User TOT = 0.08 Real TOT = 0.164105 Summary of Run 59 : /run/geometryModified @@ -4808,8 +4810,8 @@ Run 60 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002785s Sys=0.000000s - User TOT = 0.1 Real TOT = 0.175195 + User=0.000000s Real=0.002239s Sys=0.000000s + User TOT = 0.08 Real TOT = 0.166502 Summary of Run 60 : /run/geometryModified @@ -4878,8 +4880,8 @@ Run 61 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002638s Sys=0.000000s - User TOT = 0.1 Real TOT = 0.177977 + User=0.000000s Real=0.002481s Sys=0.000000s + User TOT = 0.08 Real TOT = 0.169127 Summary of Run 61 : /run/geometryModified @@ -4948,8 +4950,8 @@ Run 62 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003974s Sys=0.000000s - User TOT = 0.1 Real TOT = 0.182096 + User=0.000000s Real=0.002261s Sys=0.000000s + User TOT = 0.08 Real TOT = 0.171551 Summary of Run 62 : /run/geometryModified @@ -5018,8 +5020,8 @@ Run 63 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.005005s Sys=0.000000s - User TOT = 0.11 Real TOT = 0.187239 + User=0.000000s Real=0.002525s Sys=0.000000s + User TOT = 0.08 Real TOT = 0.174221 Summary of Run 63 : /run/geometryModified @@ -5088,8 +5090,8 @@ Run 64 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.009986s Sys=0.000000s - User TOT = 0.11 Real TOT = 0.197413 + User=0.000000s Real=0.002603s Sys=0.000000s + User TOT = 0.08 Real TOT = 0.176974 Summary of Run 64 : /run/geometryModified @@ -5158,8 +5160,8 @@ Run 65 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002300s Sys=0.010000s - User TOT = 0.11 Real TOT = 0.199868 + User=0.010000s Real=0.002869s Sys=0.000000s + User TOT = 0.09 Real TOT = 0.179988 Summary of Run 65 : /run/geometryModified @@ -5228,8 +5230,8 @@ Run 66 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002333s Sys=0.000000s - User TOT = 0.11 Real TOT = 0.202346 + User=0.000000s Real=0.002411s Sys=0.000000s + User TOT = 0.09 Real TOT = 0.182605 Summary of Run 66 : /run/geometryModified @@ -5298,8 +5300,8 @@ Run 67 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.002786s Sys=0.000000s - User TOT = 0.12 Real TOT = 0.205278 + User=0.000000s Real=0.002405s Sys=0.000000s + User TOT = 0.09 Real TOT = 0.185155 Summary of Run 67 : /run/geometryModified @@ -5368,8 +5370,8 @@ Run 68 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002279s Sys=0.000000s - User TOT = 0.12 Real TOT = 0.207701 + User=0.000000s Real=0.002349s Sys=0.000000s + User TOT = 0.09 Real TOT = 0.187663 Summary of Run 68 : /run/geometryModified @@ -5438,8 +5440,8 @@ Run 69 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002545s Sys=0.000000s - User TOT = 0.12 Real TOT = 0.210389 + User=0.010000s Real=0.003184s Sys=0.000000s + User TOT = 0.1 Real TOT = 0.191044 Summary of Run 69 : /run/geometryModified @@ -5508,8 +5510,8 @@ Run 70 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002993s Sys=0.000000s - User TOT = 0.12 Real TOT = 0.213527 + User=0.000000s Real=0.002443s Sys=0.000000s + User TOT = 0.1 Real TOT = 0.19367 Summary of Run 70 : /run/geometryModified @@ -5578,8 +5580,8 @@ Run 71 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.019734s Sys=0.000000s - User TOT = 0.13 Real TOT = 0.23345 + User=0.000000s Real=0.002367s Sys=0.010000s + User TOT = 0.1 Real TOT = 0.196219 Summary of Run 71 : /run/geometryModified @@ -5648,8 +5650,8 @@ Run 72 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002297s Sys=0.000000s - User TOT = 0.13 Real TOT = 0.235946 + User=0.000000s Real=0.002272s Sys=0.000000s + User TOT = 0.1 Real TOT = 0.198663 Summary of Run 72 : /run/geometryModified @@ -5718,8 +5720,8 @@ Run 73 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002868s Sys=0.000000s - User TOT = 0.13 Real TOT = 0.238964 + User=0.000000s Real=0.002997s Sys=0.000000s + User TOT = 0.1 Real TOT = 0.201841 Summary of Run 73 : /run/geometryModified @@ -5788,8 +5790,8 @@ Run 74 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002253s Sys=0.000000s - User TOT = 0.13 Real TOT = 0.241363 + User=0.010000s Real=0.003454s Sys=0.000000s + User TOT = 0.11 Real TOT = 0.205489 Summary of Run 74 : /run/geometryModified @@ -5858,8 +5860,8 @@ Run 75 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.002376s Sys=0.000000s - User TOT = 0.14 Real TOT = 0.243884 + User=0.000000s Real=0.002277s Sys=0.000000s + User TOT = 0.11 Real TOT = 0.207914 Summary of Run 75 : /run/geometryModified @@ -5928,8 +5930,8 @@ Run 76 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002518s Sys=0.000000s - User TOT = 0.14 Real TOT = 0.246547 + User=0.000000s Real=0.002570s Sys=0.000000s + User TOT = 0.11 Real TOT = 0.210646 Summary of Run 76 : /run/geometryModified @@ -5998,8 +6000,8 @@ Run 77 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002232s Sys=0.000000s - User TOT = 0.14 Real TOT = 0.248938 + User=0.000000s Real=0.002511s Sys=0.000000s + User TOT = 0.11 Real TOT = 0.213328 Summary of Run 77 : /run/geometryModified @@ -6068,8 +6070,8 @@ Run 78 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.003090s Sys=0.000000s - User TOT = 0.15 Real TOT = 0.252173 + User=0.000000s Real=0.002314s Sys=0.000000s + User TOT = 0.11 Real TOT = 0.215818 Summary of Run 78 : /run/geometryModified @@ -6138,8 +6140,8 @@ Run 79 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002206s Sys=0.010000s - User TOT = 0.15 Real TOT = 0.254545 + User=0.010000s Real=0.002523s Sys=0.000000s + User TOT = 0.12 Real TOT = 0.218486 Summary of Run 79 : /run/geometryModified @@ -6208,8 +6210,8 @@ Run 80 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002212s Sys=0.000000s - User TOT = 0.15 Real TOT = 0.256902 + User=0.000000s Real=0.002194s Sys=0.000000s + User TOT = 0.12 Real TOT = 0.220824 Summary of Run 80 : /run/geometryModified @@ -6278,8 +6280,8 @@ Run 81 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.013650s Sys=0.000000s - User TOT = 0.15 Real TOT = 0.270705 + User=0.000000s Real=0.002409s Sys=0.000000s + User TOT = 0.12 Real TOT = 0.223382 Summary of Run 81 : /run/geometryModified @@ -6348,8 +6350,8 @@ Run 82 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.010010s Sys=0.000000s - User TOT = 0.16 Real TOT = 0.280873 + User=0.000000s Real=0.002836s Sys=0.000000s + User TOT = 0.12 Real TOT = 0.226381 Summary of Run 82 : /run/geometryModified @@ -6418,8 +6420,8 @@ Run 83 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003574s Sys=0.000000s - User TOT = 0.16 Real TOT = 0.284589 + User=0.000000s Real=0.003369s Sys=0.000000s + User TOT = 0.12 Real TOT = 0.229895 Summary of Run 83 : /run/geometryModified @@ -6488,8 +6490,8 @@ Run 84 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002387s Sys=0.000000s - User TOT = 0.16 Real TOT = 0.287123 + User=0.000000s Real=0.006038s Sys=0.000000s + User TOT = 0.12 Real TOT = 0.236082 Summary of Run 84 : /run/geometryModified @@ -6558,8 +6560,8 @@ Run 85 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002468s Sys=0.000000s - User TOT = 0.16 Real TOT = 0.289736 + User=0.000000s Real=0.002222s Sys=0.000000s + User TOT = 0.12 Real TOT = 0.238461 Summary of Run 85 : /run/geometryModified @@ -6628,8 +6630,8 @@ Run 86 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002235s Sys=0.000000s - User TOT = 0.16 Real TOT = 0.292116 + User=0.000000s Real=0.002674s Sys=0.000000s + User TOT = 0.12 Real TOT = 0.241281 Summary of Run 86 : /run/geometryModified @@ -6698,8 +6700,8 @@ Run 87 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.002547s Sys=0.000000s - User TOT = 0.17 Real TOT = 0.295107 + User=0.000000s Real=0.003098s Sys=0.000000s + User TOT = 0.13 Real TOT = 0.244555 Summary of Run 87 : /run/geometryModified @@ -6768,8 +6770,8 @@ Run 88 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003600s Sys=0.000000s - User TOT = 0.17 Real TOT = 0.298894 + User=0.000000s Real=0.002326s Sys=0.000000s + User TOT = 0.13 Real TOT = 0.247029 Summary of Run 88 : /run/geometryModified @@ -6838,8 +6840,8 @@ Run 89 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003322s Sys=0.000000s - User TOT = 0.17 Real TOT = 0.302378 + User=0.000000s Real=0.002501s Sys=0.000000s + User TOT = 0.13 Real TOT = 0.249691 Summary of Run 89 : /run/geometryModified @@ -6908,8 +6910,8 @@ Run 90 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002121s Sys=0.010000s - User TOT = 0.17 Real TOT = 0.304654 + User=0.000000s Real=0.002560s Sys=0.000000s + User TOT = 0.13 Real TOT = 0.252435 Summary of Run 90 : /run/geometryModified @@ -6978,8 +6980,8 @@ Run 91 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002825s Sys=0.000000s - User TOT = 0.17 Real TOT = 0.307628 + User=0.000000s Real=0.002238s Sys=0.000000s + User TOT = 0.13 Real TOT = 0.254863 Summary of Run 91 : /run/geometryModified @@ -7048,8 +7050,8 @@ Run 92 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002493s Sys=0.000000s - User TOT = 0.17 Real TOT = 0.310291 + User=0.000000s Real=0.002615s Sys=0.000000s + User TOT = 0.13 Real TOT = 0.257633 Summary of Run 92 : /run/geometryModified @@ -7118,8 +7120,8 @@ Run 93 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.004591s Sys=0.000000s - User TOT = 0.17 Real TOT = 0.315035 + User=0.000000s Real=0.002540s Sys=0.000000s + User TOT = 0.13 Real TOT = 0.260318 Summary of Run 93 : /run/geometryModified @@ -7188,8 +7190,8 @@ Run 94 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.004152s Sys=0.000000s - User TOT = 0.17 Real TOT = 0.319347 + User=0.000000s Real=0.002325s Sys=0.010000s + User TOT = 0.13 Real TOT = 0.262789 Summary of Run 94 : /run/geometryModified @@ -7258,8 +7260,8 @@ Run 95 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.005474s Sys=0.000000s - User TOT = 0.18 Real TOT = 0.325021 + User=0.000000s Real=0.002760s Sys=0.000000s + User TOT = 0.13 Real TOT = 0.265724 Summary of Run 95 : /run/geometryModified @@ -7328,8 +7330,8 @@ Run 96 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002420s Sys=0.000000s - User TOT = 0.18 Real TOT = 0.327603 + User=0.000000s Real=0.002582s Sys=0.000000s + User TOT = 0.13 Real TOT = 0.268465 Summary of Run 96 : /run/geometryModified @@ -7398,8 +7400,8 @@ Run 97 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002858s Sys=0.000000s - User TOT = 0.18 Real TOT = 0.330631 + User=0.000000s Real=0.002133s Sys=0.000000s + User TOT = 0.13 Real TOT = 0.270783 Summary of Run 97 : /run/geometryModified @@ -7468,8 +7470,8 @@ Run 98 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002685s Sys=0.000000s - User TOT = 0.18 Real TOT = 0.333486 + User=0.010000s Real=0.002693s Sys=0.000000s + User TOT = 0.14 Real TOT = 0.273623 Summary of Run 98 : /run/geometryModified @@ -7538,8 +7540,8 @@ Run 99 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.002456s Sys=0.000000s - User TOT = 0.19 Real TOT = 0.33609 + User=0.000000s Real=0.002229s Sys=0.000000s + User TOT = 0.14 Real TOT = 0.275998 Summary of Run 99 : /run/geometryModified @@ -7608,8 +7610,8 @@ Run 100 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002322s Sys=0.000000s - User TOT = 0.19 Real TOT = 0.338558 + User=0.000000s Real=0.002374s Sys=0.000000s + User TOT = 0.14 Real TOT = 0.278534 Summary of Run 100 : /run/geometryModified @@ -7678,8 +7680,8 @@ Run 101 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003092s Sys=0.000000s - User TOT = 0.19 Real TOT = 0.341837 + User=0.000000s Real=0.002206s Sys=0.010000s + User TOT = 0.14 Real TOT = 0.2809 Summary of Run 101 : /run/geometryModified @@ -7748,8 +7750,8 @@ Run 102 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003000s Sys=0.010000s - User TOT = 0.19 Real TOT = 0.34501 + User=0.000000s Real=0.002690s Sys=0.000000s + User TOT = 0.14 Real TOT = 0.283733 Summary of Run 102 : /run/geometryModified @@ -7818,8 +7820,8 @@ Run 103 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.004056s Sys=0.000000s - User TOT = 0.19 Real TOT = 0.349221 + User=0.000000s Real=0.002499s Sys=0.000000s + User TOT = 0.14 Real TOT = 0.28642 Summary of Run 103 : /run/geometryModified @@ -7888,8 +7890,8 @@ Run 104 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.004241s Sys=0.000000s - User TOT = 0.2 Real TOT = 0.353603 + User=0.000000s Real=0.002641s Sys=0.000000s + User TOT = 0.14 Real TOT = 0.289236 Summary of Run 104 : /run/geometryModified @@ -7958,8 +7960,8 @@ Run 105 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003961s Sys=0.000000s - User TOT = 0.2 Real TOT = 0.357752 + User=0.000000s Real=0.002292s Sys=0.000000s + User TOT = 0.14 Real TOT = 0.291738 Summary of Run 105 : /run/geometryModified @@ -8028,8 +8030,8 @@ Run 106 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002180s Sys=0.000000s - User TOT = 0.2 Real TOT = 0.360097 + User=0.010000s Real=0.002515s Sys=0.000000s + User TOT = 0.15 Real TOT = 0.294401 Summary of Run 106 : /run/geometryModified @@ -8098,8 +8100,8 @@ Run 107 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002954s Sys=0.000000s - User TOT = 0.2 Real TOT = 0.363206 + User=0.000000s Real=0.002223s Sys=0.010000s + User TOT = 0.15 Real TOT = 0.296773 Summary of Run 107 : /run/geometryModified @@ -8168,8 +8170,8 @@ Run 108 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003203s Sys=0.010000s - User TOT = 0.2 Real TOT = 0.366561 + User=0.000000s Real=0.016029s Sys=0.000000s + User TOT = 0.15 Real TOT = 0.312955 Summary of Run 108 : /run/geometryModified @@ -8238,8 +8240,8 @@ Run 109 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003131s Sys=0.000000s - User TOT = 0.2 Real TOT = 0.369856 + User=0.000000s Real=0.020809s Sys=0.000000s + User TOT = 0.15 Real TOT = 0.333973 Summary of Run 109 : /run/geometryModified @@ -8308,8 +8310,8 @@ Run 110 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.002671s Sys=0.000000s - User TOT = 0.2 Real TOT = 0.372682 + User=0.000000s Real=0.019498s Sys=0.000000s + User TOT = 0.15 Real TOT = 0.353669 Summary of Run 110 : /run/geometryModified @@ -8378,8 +8380,8 @@ Run 111 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.007720s Sys=0.000000s - User TOT = 0.2 Real TOT = 0.380591 + User=0.010000s Real=0.020132s Sys=0.000000s + User TOT = 0.16 Real TOT = 0.37398 Summary of Run 111 : /run/geometryModified @@ -8448,8 +8450,8 @@ Run 112 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.014060s Sys=0.000000s - User TOT = 0.2 Real TOT = 0.394826 + User=0.000000s Real=0.021486s Sys=0.010000s + User TOT = 0.16 Real TOT = 0.395657 Summary of Run 112 : /run/geometryModified @@ -8518,8 +8520,8 @@ Run 113 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.002157s Sys=0.000000s - User TOT = 0.21 Real TOT = 0.397132 + User=0.000000s Real=0.021226s Sys=0.000000s + User TOT = 0.16 Real TOT = 0.41705 Summary of Run 113 : /run/geometryModified @@ -8588,8 +8590,8 @@ Run 114 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021779s Sys=0.000000s - User TOT = 0.21 Real TOT = 0.419068 + User=0.000000s Real=0.021356s Sys=0.000000s + User TOT = 0.16 Real TOT = 0.438593 Summary of Run 114 : /run/geometryModified @@ -8658,8 +8660,8 @@ Run 115 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.018694s Sys=0.000000s - User TOT = 0.21 Real TOT = 0.437912 + User=0.000000s Real=0.021001s Sys=0.000000s + User TOT = 0.16 Real TOT = 0.459803 Summary of Run 115 : /run/geometryModified @@ -8728,8 +8730,8 @@ Run 116 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.021230s Sys=0.000000s - User TOT = 0.22 Real TOT = 0.459311 + User=0.000000s Real=0.021291s Sys=0.000000s + User TOT = 0.16 Real TOT = 0.481287 Summary of Run 116 : /run/geometryModified @@ -8798,8 +8800,8 @@ Run 117 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021395s Sys=0.000000s - User TOT = 0.22 Real TOT = 0.480884 + User=0.000000s Real=0.020182s Sys=0.000000s + User TOT = 0.16 Real TOT = 0.501688 Summary of Run 117 : /run/geometryModified @@ -8868,8 +8870,8 @@ Run 118 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.020786s Sys=0.000000s - User TOT = 0.22 Real TOT = 0.501834 + User=0.000000s Real=0.021359s Sys=0.010000s + User TOT = 0.16 Real TOT = 0.523229 Summary of Run 118 : /run/geometryModified @@ -8938,8 +8940,8 @@ Run 119 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021390s Sys=0.010000s - User TOT = 0.22 Real TOT = 0.523381 + User=0.000000s Real=0.021430s Sys=0.000000s + User TOT = 0.16 Real TOT = 0.544822 Summary of Run 119 : /run/geometryModified @@ -9008,8 +9010,8 @@ Run 120 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.020637s Sys=0.000000s - User TOT = 0.23 Real TOT = 0.544178 + User=0.010000s Real=0.020385s Sys=0.000000s + User TOT = 0.17 Real TOT = 0.565449 Summary of Run 120 : /run/geometryModified @@ -9078,8 +9080,8 @@ Run 121 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021374s Sys=0.000000s - User TOT = 0.23 Real TOT = 0.565706 + User=0.000000s Real=0.021412s Sys=0.000000s + User TOT = 0.17 Real TOT = 0.587027 Summary of Run 121 : /run/geometryModified @@ -9148,8 +9150,8 @@ Run 122 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021034s Sys=0.000000s - User TOT = 0.23 Real TOT = 0.586901 + User=0.000000s Real=0.021348s Sys=0.000000s + User TOT = 0.17 Real TOT = 0.608566 Summary of Run 122 : /run/geometryModified @@ -9218,8 +9220,8 @@ Run 123 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.024877s Sys=0.000000s - User TOT = 0.24 Real TOT = 0.611977 + User=0.010000s Real=0.021192s Sys=0.000000s + User TOT = 0.18 Real TOT = 0.629925 Summary of Run 123 : /run/geometryModified @@ -9288,8 +9290,8 @@ Run 124 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.016739s Sys=0.000000s - User TOT = 0.24 Real TOT = 0.628911 + User=0.000000s Real=0.020194s Sys=0.000000s + User TOT = 0.18 Real TOT = 0.650306 Summary of Run 124 : /run/geometryModified @@ -9358,8 +9360,8 @@ Run 125 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021137s Sys=0.000000s - User TOT = 0.24 Real TOT = 0.650225 + User=0.000000s Real=0.021178s Sys=0.000000s + User TOT = 0.18 Real TOT = 0.671649 Summary of Run 125 : /run/geometryModified @@ -9428,8 +9430,8 @@ Run 126 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.020781s Sys=0.000000s - User TOT = 0.25 Real TOT = 0.671191 + User=0.000000s Real=0.021277s Sys=0.000000s + User TOT = 0.18 Real TOT = 0.693113 Summary of Run 126 : /run/geometryModified @@ -9498,8 +9500,8 @@ Run 127 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.022860s Sys=0.000000s - User TOT = 0.25 Real TOT = 0.69424 + User=0.010000s Real=0.021631s Sys=0.010000s + User TOT = 0.19 Real TOT = 0.714921 Summary of Run 127 : /run/geometryModified @@ -9568,8 +9570,8 @@ Run 128 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.019366s Sys=0.000000s - User TOT = 0.25 Real TOT = 0.713779 + User=0.000000s Real=0.020162s Sys=0.000000s + User TOT = 0.19 Real TOT = 0.735252 Summary of Run 128 : /run/geometryModified @@ -9638,8 +9640,8 @@ Run 129 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.018879s Sys=0.000000s - User TOT = 0.25 Real TOT = 0.732803 + User=0.000000s Real=0.021332s Sys=0.000000s + User TOT = 0.19 Real TOT = 0.756765 Summary of Run 129 : /run/geometryModified @@ -9708,8 +9710,8 @@ Run 130 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.018970s Sys=0.000000s - User TOT = 0.26 Real TOT = 0.751922 + User=0.010000s Real=0.021448s Sys=0.000000s + User TOT = 0.2 Real TOT = 0.778393 Summary of Run 130 : /run/geometryModified @@ -9778,8 +9780,8 @@ Run 131 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.025809s Sys=0.000000s - User TOT = 0.26 Real TOT = 0.777894 + User=0.000000s Real=0.020235s Sys=0.000000s + User TOT = 0.2 Real TOT = 0.798801 Summary of Run 131 : /run/geometryModified @@ -9848,8 +9850,8 @@ Run 132 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.013556s Sys=0.010000s - User TOT = 0.26 Real TOT = 0.791638 + User=0.000000s Real=0.021277s Sys=0.000000s + User TOT = 0.2 Real TOT = 0.820236 Summary of Run 132 : /run/geometryModified @@ -9918,8 +9920,8 @@ Run 133 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.021058s Sys=0.000000s - User TOT = 0.27 Real TOT = 0.812853 + User=0.000000s Real=0.021408s Sys=0.000000s + User TOT = 0.2 Real TOT = 0.841851 Summary of Run 133 : /run/geometryModified @@ -9988,8 +9990,8 @@ Run 134 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.020971s Sys=0.000000s - User TOT = 0.27 Real TOT = 0.834011 + User=0.000000s Real=0.021203s Sys=0.000000s + User TOT = 0.2 Real TOT = 0.86323 Summary of Run 134 : /run/geometryModified @@ -10058,8 +10060,8 @@ Run 135 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.018738s Sys=0.000000s - User TOT = 0.27 Real TOT = 0.852928 + User=0.010000s Real=0.021175s Sys=0.010000s + User TOT = 0.21 Real TOT = 0.884554 Summary of Run 135 : /run/geometryModified @@ -10128,8 +10130,8 @@ Run 136 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021832s Sys=0.000000s - User TOT = 0.27 Real TOT = 0.874925 + User=0.000000s Real=0.021168s Sys=0.000000s + User TOT = 0.21 Real TOT = 0.905873 Summary of Run 136 : /run/geometryModified @@ -10198,8 +10200,8 @@ Run 137 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.018369s Sys=0.000000s - User TOT = 0.27 Real TOT = 0.893455 + User=0.000000s Real=0.020112s Sys=0.000000s + User TOT = 0.21 Real TOT = 0.926174 Summary of Run 137 : /run/geometryModified @@ -10268,8 +10270,8 @@ Run 138 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.019790s Sys=0.000000s - User TOT = 0.28 Real TOT = 0.913397 + User=0.000000s Real=0.021476s Sys=0.000000s + User TOT = 0.21 Real TOT = 0.947825 Summary of Run 138 : /run/geometryModified @@ -10338,8 +10340,8 @@ Run 139 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.019515s Sys=0.000000s - User TOT = 0.28 Real TOT = 0.933059 + User=0.000000s Real=0.025297s Sys=0.000000s + User TOT = 0.21 Real TOT = 0.973289 Summary of Run 139 : /run/geometryModified @@ -10408,8 +10410,8 @@ Run 140 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.019900s Sys=0.000000s - User TOT = 0.28 Real TOT = 0.953138 + User=0.000000s Real=0.020883s Sys=0.000000s + User TOT = 0.21 Real TOT = 0.994395 Summary of Run 140 : /run/geometryModified @@ -10478,8 +10480,8 @@ Run 141 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.019306s Sys=0.010000s - User TOT = 0.28 Real TOT = 0.972618 + User=0.010000s Real=0.021238s Sys=0.000000s + User TOT = 0.22 Real TOT = 1.01582 Summary of Run 141 : /run/geometryModified @@ -10548,8 +10550,8 @@ Run 142 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.018916s Sys=0.000000s - User TOT = 0.28 Real TOT = 0.991688 + User=0.000000s Real=0.020157s Sys=0.000000s + User TOT = 0.22 Real TOT = 1.03617 Summary of Run 142 : /run/geometryModified @@ -10618,8 +10620,8 @@ Run 143 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021130s Sys=0.000000s - User TOT = 0.28 Real TOT = 1.01298 + User=0.000000s Real=0.021364s Sys=0.000000s + User TOT = 0.22 Real TOT = 1.05775 Summary of Run 143 : /run/geometryModified @@ -10688,8 +10690,8 @@ Run 144 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.020764s Sys=0.000000s - User TOT = 0.28 Real TOT = 1.0339 + User=0.010000s Real=0.021201s Sys=0.000000s + User TOT = 0.23 Real TOT = 1.07916 Summary of Run 144 : /run/geometryModified @@ -10758,8 +10760,8 @@ Run 145 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.018491s Sys=0.000000s - User TOT = 0.28 Real TOT = 1.05258 + User=0.000000s Real=0.020069s Sys=0.000000s + User TOT = 0.23 Real TOT = 1.0994 Summary of Run 145 : /run/geometryModified @@ -10828,8 +10830,8 @@ Run 146 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021231s Sys=0.000000s - User TOT = 0.28 Real TOT = 1.07397 + User=0.000000s Real=0.021141s Sys=0.010000s + User TOT = 0.23 Real TOT = 1.12071 Summary of Run 146 : /run/geometryModified @@ -10898,8 +10900,8 @@ Run 147 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.020591s Sys=0.000000s - User TOT = 0.28 Real TOT = 1.09473 + User=0.000000s Real=0.021260s Sys=0.000000s + User TOT = 0.23 Real TOT = 1.14216 Summary of Run 147 : /run/geometryModified @@ -10968,8 +10970,8 @@ Run 148 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.020598s Sys=0.010000s - User TOT = 0.28 Real TOT = 1.11563 + User=0.000000s Real=0.021362s Sys=0.000000s + User TOT = 0.23 Real TOT = 1.16368 Summary of Run 148 : /run/geometryModified @@ -11038,8 +11040,8 @@ Run 149 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.019714s Sys=0.000000s - User TOT = 0.29 Real TOT = 1.13552 + User=0.010000s Real=0.020088s Sys=0.000000s + User TOT = 0.24 Real TOT = 1.18402 Summary of Run 149 : /run/geometryModified @@ -11108,8 +11110,8 @@ Run 150 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.020753s Sys=0.000000s - User TOT = 0.29 Real TOT = 1.15646 + User=0.000000s Real=0.021267s Sys=0.000000s + User TOT = 0.24 Real TOT = 1.20548 Summary of Run 150 : /run/geometryModified @@ -11178,8 +11180,8 @@ Run 151 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.019199s Sys=0.000000s - User TOT = 0.29 Real TOT = 1.17581 + User=0.000000s Real=0.021549s Sys=0.000000s + User TOT = 0.24 Real TOT = 1.22718 Summary of Run 151 : /run/geometryModified @@ -11248,8 +11250,8 @@ Run 152 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.029021s Sys=0.000000s - User TOT = 0.29 Real TOT = 1.20501 + User=0.000000s Real=0.020314s Sys=0.000000s + User TOT = 0.24 Real TOT = 1.2477 Summary of Run 152 : /run/geometryModified @@ -11318,8 +11320,8 @@ Run 153 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.010091s Sys=0.000000s - User TOT = 0.29 Real TOT = 1.21528 + User=0.010000s Real=0.021447s Sys=0.000000s + User TOT = 0.25 Real TOT = 1.26932 Summary of Run 153 : /run/geometryModified @@ -11388,8 +11390,8 @@ Run 154 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.019741s Sys=0.000000s - User TOT = 0.29 Real TOT = 1.23516 + User=0.000000s Real=0.021335s Sys=0.000000s + User TOT = 0.25 Real TOT = 1.29085 Summary of Run 154 : /run/geometryModified @@ -11458,8 +11460,8 @@ Run 155 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.020927s Sys=0.000000s - User TOT = 0.29 Real TOT = 1.25628 + User=0.000000s Real=0.020451s Sys=0.000000s + User TOT = 0.25 Real TOT = 1.31148 Summary of Run 155 : /run/geometryModified @@ -11528,8 +11530,8 @@ Run 156 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.023254s Sys=0.000000s - User TOT = 0.29 Real TOT = 1.2797 + User=0.010000s Real=0.021312s Sys=0.000000s + User TOT = 0.26 Real TOT = 1.33296 Summary of Run 156 : /run/geometryModified @@ -11598,8 +11600,8 @@ Run 157 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.041013s Sys=0.010000s - User TOT = 0.29 Real TOT = 1.32091 + User=0.000000s Real=0.021401s Sys=0.000000s + User TOT = 0.26 Real TOT = 1.35455 Summary of Run 157 : /run/geometryModified @@ -11668,8 +11670,8 @@ Run 158 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.019503s Sys=0.000000s - User TOT = 0.29 Real TOT = 1.34065 + User=0.000000s Real=0.021033s Sys=0.000000s + User TOT = 0.26 Real TOT = 1.37578 Summary of Run 158 : /run/geometryModified @@ -11738,8 +11740,8 @@ Run 159 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.006467s Sys=0.000000s - User TOT = 0.29 Real TOT = 1.34728 + User=0.000000s Real=0.021278s Sys=0.000000s + User TOT = 0.26 Real TOT = 1.39725 Summary of Run 159 : /run/geometryModified @@ -11808,8 +11810,8 @@ Run 160 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.021067s Sys=0.000000s - User TOT = 0.3 Real TOT = 1.36851 + User=0.000000s Real=0.021240s Sys=0.000000s + User TOT = 0.26 Real TOT = 1.41866 Summary of Run 160 : /run/geometryModified @@ -11878,8 +11880,8 @@ Run 161 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.007697s Sys=0.000000s - User TOT = 0.3 Real TOT = 1.37638 + User=0.000000s Real=0.021160s Sys=0.000000s + User TOT = 0.26 Real TOT = 1.44005 Summary of Run 161 : /run/geometryModified @@ -11948,8 +11950,8 @@ Run 162 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.019522s Sys=0.000000s - User TOT = 0.3 Real TOT = 1.39606 + User=0.000000s Real=0.019914s Sys=0.010000s + User TOT = 0.26 Real TOT = 1.46014 Summary of Run 162 : /run/geometryModified @@ -12018,8 +12020,8 @@ Run 163 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.018456s Sys=0.000000s - User TOT = 0.3 Real TOT = 1.41468 + User=0.000000s Real=0.021633s Sys=0.000000s + User TOT = 0.26 Real TOT = 1.48195 Summary of Run 163 : /run/geometryModified @@ -12088,8 +12090,8 @@ Run 164 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.020990s Sys=0.010000s - User TOT = 0.3 Real TOT = 1.43583 + User=0.010000s Real=0.021267s Sys=0.000000s + User TOT = 0.27 Real TOT = 1.50343 Summary of Run 164 : /run/geometryModified @@ -12158,8 +12160,8 @@ Run 165 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.023386s Sys=0.000000s - User TOT = 0.31 Real TOT = 1.45937 + User=0.000000s Real=0.021366s Sys=0.000000s + User TOT = 0.27 Real TOT = 1.52494 Summary of Run 165 : /run/geometryModified @@ -12228,8 +12230,8 @@ Run 166 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.018624s Sys=0.000000s - User TOT = 0.32 Real TOT = 1.47816 + User=0.000000s Real=0.020319s Sys=0.000000s + User TOT = 0.27 Real TOT = 1.54545 Summary of Run 166 : /run/geometryModified @@ -12298,8 +12300,8 @@ Run 167 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.027582s Sys=0.000000s - User TOT = 0.32 Real TOT = 1.50589 + User=0.000000s Real=0.021436s Sys=0.000000s + User TOT = 0.27 Real TOT = 1.56707 Summary of Run 167 : /run/geometryModified @@ -12368,8 +12370,8 @@ Run 168 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.011541s Sys=0.000000s - User TOT = 0.32 Real TOT = 1.5176 + User=0.010000s Real=0.020355s Sys=0.000000s + User TOT = 0.28 Real TOT = 1.58767 Summary of Run 168 : /run/geometryModified @@ -12438,8 +12440,8 @@ Run 169 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.022175s Sys=0.000000s - User TOT = 0.32 Real TOT = 1.53994 + User=0.000000s Real=0.021468s Sys=0.000000s + User TOT = 0.28 Real TOT = 1.60932 Summary of Run 169 : /run/geometryModified @@ -12508,8 +12510,8 @@ Run 170 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.020693s Sys=0.000000s - User TOT = 0.33 Real TOT = 1.5608 + User=0.000000s Real=0.021249s Sys=0.000000s + User TOT = 0.28 Real TOT = 1.63074 Summary of Run 170 : /run/geometryModified @@ -12578,8 +12580,8 @@ Run 171 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021332s Sys=0.000000s - User TOT = 0.33 Real TOT = 1.5823 + User=0.000000s Real=0.021286s Sys=0.000000s + User TOT = 0.28 Real TOT = 1.65217 Summary of Run 171 : /run/geometryModified @@ -12648,8 +12650,8 @@ Run 172 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.018353s Sys=0.000000s - User TOT = 0.33 Real TOT = 1.6008 + User=0.000000s Real=0.021243s Sys=0.000000s + User TOT = 0.28 Real TOT = 1.67358 Summary of Run 172 : /run/geometryModified @@ -12718,8 +12720,8 @@ Run 173 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.019446s Sys=0.000000s - User TOT = 0.33 Real TOT = 1.62041 + User=0.010000s Real=0.021192s Sys=0.000000s + User TOT = 0.29 Real TOT = 1.69496 Summary of Run 173 : /run/geometryModified @@ -12788,8 +12790,8 @@ Run 174 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.018643s Sys=0.010000s - User TOT = 0.33 Real TOT = 1.63921 + User=0.000000s Real=0.021060s Sys=0.000000s + User TOT = 0.29 Real TOT = 1.71625 Summary of Run 174 : /run/geometryModified @@ -12858,8 +12860,8 @@ Run 175 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.018877s Sys=0.000000s - User TOT = 0.34 Real TOT = 1.65827 + User=0.000000s Real=0.020235s Sys=0.000000s + User TOT = 0.29 Real TOT = 1.73668 Summary of Run 175 : /run/geometryModified @@ -12928,8 +12930,8 @@ Run 176 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.019838s Sys=0.000000s - User TOT = 0.34 Real TOT = 1.67826 + User=0.000000s Real=0.021169s Sys=0.010000s + User TOT = 0.29 Real TOT = 1.75807 Summary of Run 176 : /run/geometryModified @@ -12998,8 +13000,8 @@ Run 177 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.028574s Sys=0.000000s - User TOT = 0.34 Real TOT = 1.70699 + User=0.000000s Real=0.021355s Sys=0.000000s + User TOT = 0.29 Real TOT = 1.77962 Summary of Run 177 : /run/geometryModified @@ -13068,8 +13070,8 @@ Run 178 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.024421s Sys=0.000000s - User TOT = 0.34 Real TOT = 1.73157 + User=0.000000s Real=0.021094s Sys=0.000000s + User TOT = 0.29 Real TOT = 1.80095 Summary of Run 178 : /run/geometryModified @@ -13138,8 +13140,8 @@ Run 179 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.007416s Sys=0.010000s - User TOT = 0.34 Real TOT = 1.73913 + User=0.000000s Real=0.021291s Sys=0.000000s + User TOT = 0.29 Real TOT = 1.82244 Summary of Run 179 : /run/geometryModified @@ -13208,8 +13210,8 @@ Run 180 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.025681s Sys=0.000000s - User TOT = 0.35 Real TOT = 1.76498 + User=0.000000s Real=0.021193s Sys=0.000000s + User TOT = 0.29 Real TOT = 1.84382 Summary of Run 180 : /run/geometryModified @@ -13278,8 +13280,8 @@ Run 181 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.014348s Sys=0.000000s - User TOT = 0.35 Real TOT = 1.77948 + User=0.010000s Real=0.020157s Sys=0.000000s + User TOT = 0.3 Real TOT = 1.86418 Summary of Run 181 : /run/geometryModified @@ -13348,8 +13350,8 @@ Run 182 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.020931s Sys=0.000000s - User TOT = 0.35 Real TOT = 1.80059 + User=0.000000s Real=0.021446s Sys=0.000000s + User TOT = 0.3 Real TOT = 1.88579 Summary of Run 182 : /run/geometryModified @@ -13418,8 +13420,8 @@ Run 183 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.022124s Sys=0.000000s - User TOT = 0.35 Real TOT = 1.82286 + User=0.000000s Real=0.021282s Sys=0.000000s + User TOT = 0.3 Real TOT = 1.90728 Summary of Run 183 : /run/geometryModified @@ -13488,8 +13490,8 @@ Run 184 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.019700s Sys=0.000000s - User TOT = 0.36 Real TOT = 1.84275 + User=0.000000s Real=0.021168s Sys=0.010000s + User TOT = 0.3 Real TOT = 1.9286 Summary of Run 184 : /run/geometryModified @@ -13558,8 +13560,8 @@ Run 185 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021207s Sys=0.000000s - User TOT = 0.36 Real TOT = 1.86413 + User=0.010000s Real=0.021127s Sys=0.000000s + User TOT = 0.31 Real TOT = 1.94992 Summary of Run 185 : /run/geometryModified @@ -13628,8 +13630,8 @@ Run 186 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.027701s Sys=0.000000s - User TOT = 0.36 Real TOT = 1.89205 + User=0.000000s Real=0.021018s Sys=0.000000s + User TOT = 0.31 Real TOT = 1.97115 Summary of Run 186 : /run/geometryModified @@ -13698,8 +13700,8 @@ Run 187 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.014723s Sys=0.000000s - User TOT = 0.37 Real TOT = 1.90693 + User=0.000000s Real=0.020198s Sys=0.000000s + User TOT = 0.31 Real TOT = 1.9915 Summary of Run 187 : /run/geometryModified @@ -13768,8 +13770,8 @@ Run 188 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.020309s Sys=0.000000s - User TOT = 0.37 Real TOT = 1.9274 + User=0.010000s Real=0.021264s Sys=0.000000s + User TOT = 0.32 Real TOT = 2.01293 Summary of Run 188 : /run/geometryModified @@ -13838,8 +13840,8 @@ Run 189 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021680s Sys=0.000000s - User TOT = 0.37 Real TOT = 1.94924 + User=0.000000s Real=0.021357s Sys=0.000000s + User TOT = 0.32 Real TOT = 2.03446 Summary of Run 189 : /run/geometryModified @@ -13908,8 +13910,8 @@ Run 190 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021637s Sys=0.010000s - User TOT = 0.37 Real TOT = 1.97103 + User=0.000000s Real=0.021209s Sys=0.000000s + User TOT = 0.32 Real TOT = 2.05586 Summary of Run 190 : /run/geometryModified @@ -13978,8 +13980,8 @@ Run 191 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.020090s Sys=0.000000s - User TOT = 0.38 Real TOT = 1.99128 + User=0.000000s Real=0.021389s Sys=0.000000s + User TOT = 0.32 Real TOT = 2.07745 Summary of Run 191 : /run/geometryModified @@ -14048,8 +14050,8 @@ Run 192 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021133s Sys=0.000000s - User TOT = 0.38 Real TOT = 2.01258 + User=0.010000s Real=0.021374s Sys=0.000000s + User TOT = 0.33 Real TOT = 2.09901 Summary of Run 192 : /run/geometryModified @@ -14118,8 +14120,8 @@ Run 193 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.020712s Sys=0.000000s - User TOT = 0.38 Real TOT = 2.03345 + User=0.000000s Real=0.020211s Sys=0.000000s + User TOT = 0.33 Real TOT = 2.11937 Summary of Run 193 : /run/geometryModified @@ -14188,8 +14190,8 @@ Run 194 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.020617s Sys=0.000000s - User TOT = 0.38 Real TOT = 2.05424 + User=0.000000s Real=0.021111s Sys=0.000000s + User TOT = 0.33 Real TOT = 2.14066 Summary of Run 194 : /run/geometryModified @@ -14258,8 +14260,8 @@ Run 195 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021477s Sys=0.000000s - User TOT = 0.38 Real TOT = 2.07587 + User=0.010000s Real=0.021670s Sys=0.000000s + User TOT = 0.34 Real TOT = 2.16251 Summary of Run 195 : /run/geometryModified @@ -14328,8 +14330,8 @@ Run 196 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021372s Sys=0.000000s - User TOT = 0.38 Real TOT = 2.09739 + User=0.000000s Real=0.021217s Sys=0.010000s + User TOT = 0.34 Real TOT = 2.18388 Summary of Run 196 : /run/geometryModified @@ -14398,8 +14400,8 @@ Run 197 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.021081s Sys=0.000000s - User TOT = 0.38 Real TOT = 2.11862 + User=0.000000s Real=0.021026s Sys=0.000000s + User TOT = 0.34 Real TOT = 2.20507 Summary of Run 197 : /run/geometryModified @@ -14468,8 +14470,8 @@ Run 198 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.024309s Sys=0.000000s - User TOT = 0.39 Real TOT = 2.14311 + User=0.000000s Real=0.020320s Sys=0.000000s + User TOT = 0.34 Real TOT = 2.22555 Summary of Run 198 : /run/geometryModified @@ -14538,8 +14540,8 @@ Run 199 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.017751s Sys=0.000000s - User TOT = 0.39 Real TOT = 2.16103 + User=0.000000s Real=0.021146s Sys=0.000000s + User TOT = 0.34 Real TOT = 2.24686 Summary of Run 199 : /run/geometryModified @@ -14608,8 +14610,8 @@ Run 200 starts ... Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.018851s Sys=0.000000s - User TOT = 0.39 Real TOT = 2.18003 + User=0.010000s Real=0.021038s Sys=0.000000s + User TOT = 0.35 Real TOT = 2.26809 Summary of Run 200 : /score/dumpQuantityToFile boxMesh_1 eDep eDep_scorer.out Graphics systems deleted. @@ -14617,6 +14619,6 @@ Visualization Manager deleting... G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 12 of which, static: 0 -Dynamic pools deleted: 12 / Total memory freed: 0.046 MB +Dynamic pools deleted: 12 / Total memory freed: 0.052 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/advanced/gammaray_telescope/CMakeLists.txt b/examples/advanced/gammaray_telescope/CMakeLists.txt index 57ab1a15ec..039bf286df 100644 --- a/examples/advanced/gammaray_telescope/CMakeLists.txt +++ b/examples/advanced/gammaray_telescope/CMakeLists.txt @@ -69,5 +69,3 @@ add_custom_target(gammaray_telescope DEPENDS GammaRayTel) # Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX # install(TARGETS GammaRayTel DESTINATION bin) - - diff --git a/examples/advanced/gammaray_telescope/GammaRayTel.cc b/examples/advanced/gammaray_telescope/GammaRayTel.cc index 5960921b0f..e32259273f 100644 --- a/examples/advanced/gammaray_telescope/GammaRayTel.cc +++ b/examples/advanced/gammaray_telescope/GammaRayTel.cc @@ -24,8 +24,6 @@ // ******************************************************************** // // -// -// // ------------------------------------------------------------ // GEANT 4 main program // CERN Geneva Switzerland @@ -41,72 +39,64 @@ #include "G4Types.hh" #include "G4RunManagerFactory.hh" #include "G4UImanager.hh" - #include "G4VisExecutive.hh" - #include "G4UIExecutive.hh" +#include "GammaRayTelActionInitializer.hh" +#include "GammaRayTelAnalysis.hh" #include "GammaRayTelDetectorConstruction.hh" #include "GammaRayTelPhysicsList.hh" -#include "GammaRayTelActionInitializer.hh" -//#include "QGSP_BIC.hh" +// #include "QGSP_BIC.hh" #include "FTFP_BERT.hh" -#include "GammaRayTelAnalysis.hh" - // This is the main function -int main(int argc, char** argv) -{ - // Construct the default run manager - auto* runManager = G4RunManagerFactory::CreateRunManager(); - G4int nThreads = 4; - runManager->SetNumberOfThreads(nThreads); +auto main(int argc, char **argv) -> int { + // Construct the default run manager + auto *runManager = G4RunManagerFactory::CreateRunManager(); + constexpr auto NUMBER_OF_THREADS{4}; + runManager->SetNumberOfThreads(NUMBER_OF_THREADS); - // Set mandatory user initialization classes - GammaRayTelDetectorConstruction* detector = - new GammaRayTelDetectorConstruction; - runManager->SetUserInitialization(detector); + // Set mandatory user initialization classes + auto *detector = new GammaRayTelDetectorConstruction; + runManager->SetUserInitialization(detector); + runManager->SetUserInitialization(new GammaRayTelPhysicsList); + // runManager->SetUserInitialization(new QGSP_BIC); + // runManager->SetUserInitialization(new FTFP_BERT); - runManager->SetUserInitialization(new GammaRayTelPhysicsList); + // Initialize actions + runManager->SetUserInitialization(new GammaRayTelActionInitializer()); - // runManager->SetUserInitialization(new QGSP_BIC); - //runManager->SetUserInitialization(new FTFP_BERT); + // Creation of the analysis manager + auto *analysis = GammaRayTelAnalysis::getInstance(); - //Initialize actions - runManager->SetUserInitialization(new GammaRayTelActionInitializer()); + // Set visualization and user interface + // Visualization manager + G4VisManager *visManager = new G4VisExecutive; + visManager->Initialize(); - // Creation of the analysis manager - GammaRayTelAnalysis* analysis = GammaRayTelAnalysis::getInstance(); + // Initialize G4 kernel + // runManager->Initialize(); - // Set visualization and user interface - // Visualization manager - G4VisManager* visManager = new G4VisExecutive; - visManager->Initialize(); + // Get the pointer to the UI manager + auto *uiManager = G4UImanager::GetUIpointer(); - // Initialize G4 kernel - // runManager->Initialize(); - - // Get the pointer to the UI manager - G4UImanager* UImanager = G4UImanager::GetUIpointer(); - if (argc == 1) // Define UI session for interactive mode. - { - G4UIExecutive* ui = new G4UIExecutive(argc, argv); - G4cout << " UI session starts ..." << G4endl; - UImanager -> ApplyCommand("/control/execute prerunGammaRayTel.mac"); - ui -> SessionStart(); - delete ui; + if (argc == 1) { // Define UI session for interactive mode. + auto *ui = new G4UIExecutive(argc, argv); + G4cout << " UI session starts ..." << G4endl; + uiManager->ApplyCommand("/control/execute prerunGammaRayTel.mac"); + ui->SessionStart(); + delete ui; + } else { // batch mode + G4String command = "/control/execute "; + G4String fileName = argv[1]; + uiManager->ApplyCommand(command + fileName); } - else // batch mode - { - G4String command = "/control/execute "; - G4String fileName = argv[1]; - UImanager->ApplyCommand(command+fileName); - } - - // Job termination - delete visManager; - delete analysis; - delete runManager; - return 0; + + // Job termination + delete visManager; + delete analysis; + delete runManager; + + return 0; } diff --git a/examples/advanced/gammaray_telescope/History b/examples/advanced/gammaray_telescope/History index da9258e665..acfc1158a7 100644 --- a/examples/advanced/gammaray_telescope/History +++ b/examples/advanced/gammaray_telescope/History @@ -4,6 +4,8 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-11 F. Longo and A. Polsini (gammaraytel-V11-00-01) +- Migration to C++17 standard. General code refactoring. ## 2021-12-10 Ben Morgan (gammaraytel-V11-00-00) - Change to new Markdown History format @@ -27,7 +29,7 @@ be used as a substitute for writing good git commit messages! README file updated. Minor change in the GammaRayTelRunAction::OpenFile() method to allow filenames longer than the hardcoded 25 character limit. - Revision reccomended by N. MacFadden and A. Knaian, nklabs. + Revision recommended by N. MacFadden and A. Knaian, nklabs. 19.07.2021 - I. Hrivnacova (gammaraytel-V10-07-06) Updated for changes in the analysis category: @@ -35,7 +37,7 @@ be used as a substitute for writing good git commit messages! as this is now done by the Geant4 kernel. 24.05.2021 - B. Morgan (gammaraytel-V10-07-05) -- Bump required CMake version range to 3.12...3.20, matching core Geant4 + Bump required CMake version range to 3.12...3.20, matching core Geant4 18.03.2021 - A. Ribon, Tag gammaraytel-V10-07-04 GammaRayTelHadronPhysics : replaced G4HadronCaptureProcess with @@ -44,16 +46,16 @@ be used as a substitute for writing good git commit messages! 11.03.2021 - A. Ribon, Tag gammaraytel-V10-07-03 GammaRayTelHadronPhysics : replaced stopping processes that - have been deleted. + have been deleted. 08.03.2021 - A. Ribon, Tag gammaraytel-V10-07-02 GammaRayTelHadronPhysics : replaced old pion inelastic cross - sections (that have been deleted) with G4BGGPionInelasticXS. + sections (that have been deleted) with G4BGGPionInelasticXS. 04.03.2021 - A. Ribon, Tag gammaraytel-V10-07-01 GammaRayTelHadronPhysics, GammaRayTelIonPhysics : replaced - G4PhotoNuclearProcess (that has been deleted) with - G4HadronInelasticProcess. + G4PhotoNuclearProcess (that has been deleted) with + G4HadronInelasticProcess. 12.02.2021 - S. Guatelli, Tag gammaraytel-V10-07-00 Removed the dependency towards G4EmProcessOptions.hh. @@ -68,14 +70,14 @@ be used as a substitute for writing good git commit messages! select the EM physics processes and models. Added macro gammaray_polarized.in for system testing. -02.11.2020 - B.Morgan, Tag gammaraytel-V10-06-01 +02.11.2020 - B. Morgan, Tag gammaraytel-V10-06-01 Support same CMake version range as core Geant4 -26.02.2020 - V.Ivanchenko, Tag gammaraytel-V10-06-00 +26.02.2020 - V. Ivanchenko, Tag gammaraytel-V10-06-00 GammaRayTelHadronPhysics, GammaRayTelIonPhysics - fixed compilation problems due to incorrect FTFP instantiation -31.01.2019 - I.Hrivnacova, Tag gammaraytel-V10-05-00 +31.01.2019 - I. Hrivnacova, Tag gammaraytel-V10-05-00 Merged GitHub PR #4: all Boolean operators now return G4bool. 21.10.2018 - F. Romano, Tag gammaraytel-V10-04-06 @@ -95,37 +97,37 @@ be used as a substitute for writing good git commit messages! symbols. 13.05.2018 - L. Pandola, Tag gammaraytel-V10-04-02 - Fix more warnings on clang + Fix more warnings on clang 10.05.2018 - L. Pandola, Tag gammaraytel-V10-04-01 Fix warning on clang 08.05.2018 - F. Longo and L. Pandola, Tag gammaraytel-V10-04-00 - Fix problems reported by Valgrind (bug report #1981) + Fix problems reported by Valgrind (bug report #1981) 19.11.2016 - A. Dotti gammaraytel-V10-02-02 - explicit set of SDs to manager + explicit set of SDs to manager 31.10.2016 - F. Longo and L. Pandola, Tag gammaraytel-V10-02-01 - Extended physics list to give the possibility to handle - polarized gamma-rays. + Extended physics list to give the possibility to handle + polarized gamma-rays. 28.10.2016 - G. Folger, Tag gammaraytel-V10-02-00 - Remove direct use of aParticleIterator, use GetParticleTableIterator(). + Remove direct use of aParticleIterator, use GetParticleTableIterator(). fix required by clang39 on Linux and MAC 27.10.2015 - A. Ribon, Tag gammaraytel-V10-01-00 GammaRayTelIonPhysics: replaced old G4GGNuclNuclCrossSection class with the new, recommended one, G4ComponentGGNuclNuclXsc . -30.10.2014 V.Ivanchenko, Tag gammaraytel-V10-00-08 +30.10.2014 - V. Ivanchenko, Tag gammaraytel-V10-00-08 Use correct mu- stopping process -10.09.2014 G.Cosmo, Tag gammaraytel-V10-00-07 +10.09.2014 - G. Cosmo, Tag gammaraytel-V10-00-07 Corrected compilation error in GammaRayTelIonPhysics.cc for missing inclusion of units header. -30.06.2014 L.Pandola, Tag gammaraytel-V10-00-06 +30.06.2014 - L. Pandola, Tag gammaraytel-V10-00-06 Write separate files for each thread/run, if option G4STORE_DATA is active. Move ordering of commands in macro: the generator action @@ -133,130 +135,130 @@ be used as a substitute for writing good git commit messages! MT Migration: use G4MTRunManager if applicable Set some volumes to invisible for faster visualization -14.06.2014 L.Pandola, Tag gammaraytel-V10-00-05 +14.06.2014 - L. Pandola, Tag gammaraytel-V10-00-05 Get rid of additional compiler warning from GammaRayTelEventAction showing up when G4STORE_DATA=OFF -13.06.2014 L.Pandola, Tag gammaraytel-V10-00-04 +13.06.2014 - L. Pandola, Tag gammaraytel-V10-00-04 Get rid of compiler warning in GammaRayTelRunAction showing up when G4STORE_DATA=OFF -12.06.2014 L.Pandola, Tag gammaraytel-V10-00-03 - const access to DetectorConstruction by PrimaryGen - Remove G4ANALYSIS_USE flag (no external dependency!) - Get rid of the extern output file (now member of RunAction) +12.06.2014 - L. Pandola, Tag gammaraytel-V10-00-03 + const access to DetectorConstruction by PrimaryGen + Remove G4ANALYSIS_USE flag (no external dependency!) + Get rid of the extern output file (now member of RunAction) -11.06.2014 L.Pandola, Tag gammaraytel-V10-00-02 - Migrated hit and digi classes, to make them MT-compliant - Added method ConstructSDandField in the geometry class +11.06.2014 - L. Pandola, Tag gammaraytel-V10-00-02 + Migrated hit and digi classes, to make them MT-compliant + Added method ConstructSDandField in the geometry class Use G4GlobalFieldManager instead of local field -19.05.2014 F.Longo, Tag gammaraytel-V10-00-01 +19.05.2014 - F. Longo, Tag gammaraytel-V10-00-01 Removed deprecated RO geometry -07.05.2014 L.Pandola, Tag gammaraytel-V10-00-00 - Start to prepare the MT migration: (1) create ActionInitializer +07.05.2014 - L. Pandola, Tag gammaraytel-V10-00-00 + Start to prepare the MT migration: (1) create ActionInitializer (2) make const Getters in the detector construction; (3) retrieve const pointer to geometry from Analysis class -07.11.2013 L.Pandola, Tag: gammaraytel-V09-06-06 - Edit physics list according to A. Ribon's suggestions. +07.11.2013 - L. Pandola, Tag: gammaraytel-V09-06-06 + Edit physics list according to A. Ribon's suggestions. (1) Remove inelastic models for hyperons and anti-hyperons (only EM and decay left); (2) use FTFP model down to zero energy for anti-p and anti-n (Bertini cascade not available); (3) use FTFP+BERT for d,t and alphas. -07.11.2013 L.Pandola, Tag: gammaraytel-V09-06-05 - Removed dependency from HEP and LEP models +07.11.2013 - L. Pandola, Tag: gammaraytel-V09-06-05 + Removed dependency from HEP and LEP models -04.04.2013 F.Longo and L.Pandola, Tag: gammaraytel-V09-06-04 - Migrated analysis from AIDA-based to the g4tools - README and CMakeLists.txt updated accondingly. No - external dependencies any longer +04.04.2013 - F. Longo and L. Pandola, Tag: gammaraytel-V09-06-04 + Migrated analysis from AIDA-based to the g4tools + README and CMakeLists.txt updated accondingly. No + external dependencies any longer -04.01.2013 A.Dotti, Tag: gammaraytel-V09-06-02,gammaraytel-V09-06-03 +04.01.2013 - A. Dotti, Tag: gammaraytel-V09-06-02,gammaraytel-V09-06-03 New interface for G4VUserPhysicsList needed for MT -12.18.2012 M.Kelsey, Tag: gammaraytel-V09-06-01 - GammaRayTelHadronPhysics: Migrate stopping processes +12.18.2012 - M. Kelsey, Tag: gammaraytel-V09-06-01 + GammaRayTelHadronPhysics: Migrate stopping processes -12.12.2012 V.Ivanchenko, Tag: gammaraytel-V09-06-00 +12.12.2012 - V. Ivanchenko, Tag: gammaraytel-V09-06-00 GammaRayTelEMlowePhysics: substitute SetModel by SetEmModel -07.11.2012 L. Pandola and F. Longo, Tag: gammaraytel-V09-05-05 +07.11.2012 - L. Pandola and F. Longo, Tag: gammaraytel-V09-05-05 Change the logic of the UI/GUI instantiation in the main(), to avoid problems observed in the STT when running in batch mode. Minor change in the CMakeLists.txt -02.11.2012 L. Pandola, Tag: gammaraytel-V09-05-04 - Remove warnings due to two G4Regions without their own +02.11.2012 - L. Pandola, Tag: gammaraytel-V09-05-04 + Remove warnings due to two G4Regions without their own cut. Change physics list from QGSP_BIC to FTFP_BERT, to - avoid warnings due to the deprecated LEP models. + avoid warnings due to the deprecated LEP models. Removed gammaraytel.err file. -31.10.2012 L. Pandola and F. Longo, Tag: gammaraytel-V09-05-03 +31.10.2012 - L. Pandola and F. Longo, Tag: gammaraytel-V09-05-03 Edit the CMakeLists.txt file to fix the AIDA dependency and to properly treat the G4STORE_DATA option -30.10.2012 Luciano Pandola, Tag gammaraytel-V09-05-02 - Comment out /vis/viewer/update at the EndOfRun (avoids a warning) - Comment out in gammaraytel.in a command which is no +30.10.2012 - Luciano Pandola, Tag gammaraytel-V09-05-02 + Comment out /vis/viewer/update at the EndOfRun (avoids a warning) + Comment out in gammaraytel.in a command which is no longer defined -25.10.2012 Luciano Pandola, Tag: gammaraytel-V09-05-01 - Replace CMakeLists.txt to deal with UI/VIS +25.10.2012 - Luciano Pandola, Tag: gammaraytel-V09-05-01 + Replace CMakeLists.txt to deal with UI/VIS -11.10.2012 Gabriele Cosmo, Tag: gammaraytel-V09-05-00 +11.10.2012 - Gabriele Cosmo, Tag: gammaraytel-V09-05-00 Explicit inclusion of units and constants headers. -03.10.2011 Gunter Folger, Tag: gammaraytel-V09-04-03 +03.10.2011 - Gunter Folger, Tag: gammaraytel-V09-04-03 Fix compilation warnings from gcc 4.6 in GammaRayTelEventAction.cc, - GammaRayTelDetectorConstruction.cc and GammaRayTelTrackerROGeometry.cc + GammaRayTelDetectorConstruction.cc and GammaRayTelTrackerROGeometry.cc -16.09.2011 Pere Mato, Tag: gammaraytel-V09-04-02 +16.09.2011 - Pere Mato, Tag: gammaraytel-V09-04-02 Added SVN eol property to file gammaraytel.err to allow proper file comparissons -16.09.2011 Pere Mato, Tag: gammaraytel-V09-04-01 +16.09.2011 - Pere Mato, Tag: gammaraytel-V09-04-01 Fixed the error introduced with G4USE_UI conditional code Added file gammaraytel.err with the expected error output -11.11.2010 Gunter Folger, Tag: gammaraytel-V09-03-03 - Use new G4MultipleScattering classes - Correct initialisation of G4ThreeVector - Use predefined physics list in place of old style - GammaRayPhysics; latter crashes on exit. +11.11.2010 - Gunter Folger, Tag: gammaraytel-V09-03-03 + Use new G4MultipleScattering classes + Correct initialisation of G4ThreeVector + Use predefined physics list in place of old style + GammaRayPhysics; latter crashes on exit. -09.11.2010 Makoto Asai, Tag: gammaraytel-V09-03-02 +09.11.2010 - Makoto Asai, Tag: gammaraytel-V09-03-02 Fix AIDA file option. -09.11.2010 John Allison, Tag: gammaraytel-V09-03-01 +09.11.2010 - John Allison, Tag: gammaraytel-V09-03-01 Introduce G4UIExecutive. -03.06.2010 Joseph Perl, Tag: gammaraytel-V09-03-00 +03.06.2010 - Joseph Perl, Tag: gammaraytel-V09-03-00 Update vis usage -24.11.2008 G.A.P.Cirrone, Tag: gammaraytel-V09-01-02 +24.11.2008 - G. A. P. Cirrone, Tag: gammaraytel-V09-01-02 Updated History file -24.11.2008 G.A.P.Cirrone, Tag: gammaraytel-V09-01-01 +24.11.2008 - G. A. P. Cirrone, Tag: gammaraytel-V09-01-01 Fixed compilation problems -11.06.2008 G.A.P.Cirrone (gammaraytel-V09-01-00) +11.06.2008 - G. A. P. Cirrone (gammaraytel-V09-01-00) Fixed errors in compilation -07-12-2005 Susanna Guatelli (gammaraytel-V07-01-00) +07.12.2005 - Susanna Guatelli (gammaraytel-V07-01-00) GammaRayParticles introduced G4Exception deriving from Hadronic Physics List deleted -3rd May 2005 John Allison (examples-V07-00-03) +03.05.2005 - John Allison (examples-V07-00-03) Replaced vis manager with G4VisExecutive. -10.12.2004 Gabriele Cosmo (gammaraytel-V06-02-01) +10.12.2004 - Gabriele Cosmo (gammaraytel-V06-02-01) Replaced usage of M_PI with CLHEP's pi. -01.12.2004 Francesco Longo (gammaraytel-V06-02-00) +01.12.2004 - Francesco Longo (gammaraytel-V06-02-00) Updates and migration to . -01.06.2004 Susanna Guatelli +01.06.2004 - Susanna Guatelli Migration to AIDA 3.2.1 and PI 1.2.1. diff --git a/examples/advanced/gammaray_telescope/README b/examples/advanced/gammaray_telescope/README index 3b1c1c6e0e..170fdd20e9 100644 --- a/examples/advanced/gammaray_telescope/README +++ b/examples/advanced/gammaray_telescope/README @@ -6,35 +6,35 @@ gammaray_telescope ------------------ - F.Longo, R.Giannitrapani & G.Santin + F. Longo, R. Giannitrapani & G. Santin June 2003 --------------------------------------------------------------- -Acknowledgments to GEANT4 people, in particular to R.Nartallo, -A.Pfeiffer, M.G.Pia and G.Cosmo --------------------------------------------------------------- +--------------------------------------------------------------- +Acknowledgments to GEANT4 people, in particular to R. Nartallo, +A. Pfeiffer, M. G. Pia and G. Cosmo +--------------------------------------------------------------- GammaRayTel is an example of application of Geant4 in a space -envinronment. It simulates a typical telescope for gamma ray analysis; +environment. It simulates a typical telescope for gamma ray analysis; the detector setup is composed by a tracker made with silicon planes, subdivided in ladders and strips, a CsI calorimeter and an anticoincidence system. In this version, the three detectors are made -sensitive but only the hits on the tracker strips are registered and relevant -information (energy deposition, position etc) are dumped to an external -ASCII file for subsequent analysis. +sensitive but only the hits on the tracker strips are registered and relevant +information (energy deposition, position etc.) are dumped to an external +ASCII file for subsequent analysis. Relevant information from the simulation is processed in the GammarayTelAnalysis -class and saved, through the G4AnalysisManager interface, to Histograms and -Tuples. +class and saved, through the G4AnalysisManager interface, to Histograms and +Tuples. - a) Macros for the visualization of geometry and tracks with - OpenGL, VRML and DAWN drivers + a) Macros for the visualization of geometry and tracks with + OpenGL, VRML and DAWN drivers - b) Implementation of messengers to change some parameters of - the detector geometry, the particle generator and the analysis + b) Implementation of messengers to change some parameters of + the detector geometry, the particle generator and the analysis manager (if present) runtime - c) Readout geometry mechanism to describe an high number of + c) Readout geometry mechanism to describe an high number of subdivisions of the planes of the tracker (strips) without affecting in a relevant way the simulation performances @@ -42,55 +42,55 @@ Tuples. e) User interfaces via Xmotif or normal terminal provided - + 1. Setting up the environment variables --------------------------------------- - - Setup for storing ASCII data + - Setup for storing ASCII data If you want to store the output data in an ASCII file 'Tracks_x.dat' - where x stays for the run number. You should specify the environment + where x stays for the run number. You should specify the environment variable: setenv G4STORE_DATA 1 - - Setup for Visualization + - Setup for Visualization - IMPORTANT: be sure that your Geant4 installation has been done - with the proper visualization drivers; for details please see the - file geant4/source/visualization/README. + IMPORTANT: be sure that your Geant4 installation has been done + with the proper visualization drivers; for details please see the + file geant4/source/visualization/README. - To use the visualization drivers set the following variables in - your local environment: + To use the visualization drivers set the following variables in + your local environment: - setenv G4VIS_USE_OPENGLX 1 # OpenGL visualization - setenv G4VIS_USE_DAWNFILE 1 # DAWN file - setenv G4VIS_USE_VRMLFILE 1 # VRML file - setenv G4VRMLFILE_VIEWER vrmlview # If installed + setenv G4VIS_USE_OPENGLX 1 # OpenGL visualization + setenv G4VIS_USE_DAWNFILE 1 # DAWN file + setenv G4VIS_USE_VRMLFILE 1 # VRML file + setenv G4VRMLFILE_VIEWER vrmlview # If installed - Setup for Xmotif user interface - - setenv G4UI_USE_XM 1 - - Set up for analysis + setenv G4UI_USE_XM 1 - To compile the GammaRayTel example with the analysis tools activated, - set the following variables + - Set up for analysis - setenv G4ANALYSIS_USE 1 # Use the analysis tools + To compile the GammaRayTel example with the analysis tools activated, + set the following variables + + setenv G4ANALYSIS_USE 1 # Use the analysis tools 2. Sample run ------------- - To run a sample simulation with gamma tracks interacting with + To run a sample simulation with gamma tracks interacting with the detector in its standard configuration and without any - visualization, execute the following command in the example main + visualization, execute the following command in the example main directory: - $G4WORKDIR/bin/$G4SYSTEM/GammaRayTel + $G4WORKDIR/bin/$G4SYSTEM/GammaRayTel - It is possible also to run three different configuration defined in - macro1.mac, macro2.mac and macro3.mac for visualization (OpenGL, VRML + It is possible also to run three different configuration defined in + macro1.mac, macro2.mac and macro3.mac for visualization (OpenGL, VRML and DAWN respectively) with the following command $G4WORKDIR/bin/$G4SYSTEM/GammaRayTel macroX.mac @@ -100,43 +100,43 @@ Tuples. your local G4 installation (see geant4/source/visualization/README for more information). - + 3. Detector description ----------------------- The detector is defined in GammaRayTelDetectorConstruction.cc It is composed of a Payload with three main detectors, a Tracker (TKR), a - Calorimeter (CAL) and an Anticoincidence system (ACD). + Calorimeter (CAL) and an Anticoincidence system (ACD). The standard configuration is made of a TKR of 15 Layers of 2 views made of - 4*4 Si single sided silicon detectors with Lead converter, and a CAL of + 4 * 4 Si single sided silicon detectors with Lead converter, and a CAL of 5 layers of CsI, each made of 2 views of 12 CsI bars orthogonally posed. - 4 lateral panels and a top layer of plastic scintillator (ACL and ACT) + 4 lateral panels and a top layer of plastic scintillator (ACL and ACT) complete the configuration. The Si detectors are composed of two silicon planes subdivided in strips aligned along the X axis in one plane and along the Y axis for the other. The following baseline configuration is adopted: - - GEOMETRICAL PARAMETER VALUE - Converter thickness 300 microns - Silicon Thickness 400 microns - Silicon Tile Size XY 9 cm - Silicon Pitch 200.micrometer - Views Distance 1. mm - CAL Bar Thickness 1.5 cm - ACD Thickness 1. cm + GEOMETRICAL PARAMETER VALUE - It is possible to modify in some way this configuration using the - commands defined in GammaRayTelDetectorMessenger. - This feature is available in the UI throught the commands subtree + Converter Thickness 300 micron + Silicon Thickness 400 micron + Silicon Tile Size XY 9 cm + Silicon Pitch 200. micrometer + Views Distance 1. mm + CAL Bar Thickness 1.5 cm + ACD Thickness 1. cm + + It is possible to modify in some way this configuration using the + commands defined in GammaRayTelDetectorMessenger. + This feature is available in the UI through the commands subtree "/payload/" (see the help command in the UI for more information). 4. Physics processes -------------------- - This example uses a modular physics list, with a sample of Hadronic processes + This example uses a modular physics list, with a sample of Hadronic processes (see the web page http://cmsdoc.cern.ch/~hpw/GHAD/HomePage/ for more adeguate physics lists), the Standard or the LowEnergy Electromagnetic processes. @@ -144,148 +144,138 @@ Tuples. --------------------- The GammaRayTelParticleGenerationAction and its Messenger let the user define - the incident flux of particles, from a specific direction or from an - isotropic background. In the first case particles are generated on a spherical + the incident flux of particles, from a specific direction or from an + isotropic background. In the first case particles are generated on a spherical surface which diameter is perpendicular to the arrival direction. In the second case the arrival directions are isotropic. The user can define also between two spectral options: monochromatic or with a power-law dependence. The particle - generator parameters are accessible throught the UI tree "/gun/" (use the + generator parameters are accessible through the UI tree "/gun/" (use the UI help for more information). We are planning to include, in the next releases of this example, the General Particle Source module of G4. - + 6. Hit ------ - In this version the hits from the TKR the CAL and the ACD are generated. - Only the hit from the TRK are saved. Each TKR hit contains the following + In this version the hits from the TKR the CAL and the ACD are generated. + Only the hit from the TRK are saved. Each TKR hit contains the following information a) ID of the event (this is important for multiple events run) b) Energy deposition of the particle in the strip (keV) - c) Number of the strip + c) Number of the strip d) Number of the plane e) Type of the plane (1=X 0=Y) - f) Position of the hit (x,y,z) in the reference frame of the payload + f) Position of the hit (x, y, z) in the reference frame of the payload - The hit information are saved on an ASCII file named Tracks_N.dat, where - N is the progressive ID number associated to the run. + The hit information are saved on an ASCII file named Tracks_N.dat, where + N is the progressive ID number associated to the run. 7. Analysis ----------------- - +----------- + Relevant information from the simulation is processed in the GammarayTelAnalysis -class and saved, through the G4AnalysisManager interface, to Histograms and -Tuples. The output file is written in ROOT format, but one can easily switch to +class and saved, through the G4AnalysisManager interface, to Histograms and +Tuples. The output file is written in ROOT format, but one can easily switch to XML (or Hbook) by changing the appropriate #include in GammarayTelAnalysis.hh -No external software is required (apart from the hbook case, in which the CERNLIB +No external software is required (apart from the hbook case, in which the CERNLIB must be installed and a FORTRAN compiler must be present) Keep in mind that the actual implementation of the analysis tools in GammaRayTel - is of a pedagogical nature, so we kept it as simple as possible. + is of a pedagogical nature, so we kept it as simple as possible. - The actual analysis produces some histograms (see next section) and an ntuple. - Both the histograms and the ntuple are saved at the end of the run in the file - "gammaraytel.root". Please note that in a multiple run session, + The actual analysis produces some histograms (see next section) and an ntuple. + Both the histograms and the ntuple are saved at the end of the run in the file + "gammaraytel.root". Please note that in a multiple run session, the last run always override the root file. 8. Histogramming ---------------- - The 1D histograms contain the energy deposition in the last X plane of - the TKR and the hits distribution along the X planes of the TKR - (note again that these histograms have been chosen more for pedagogical + The 1D histograms contain the energy deposition in the last X plane of + the TKR and the hits distribution along the X planes of the TKR + (note again that these histograms have been chosen more for pedagogical motivation than for physical one). - These histograms are filled and updated at every event and are initialized - with each new run; the scale of the histograms is automatically derived from - the detector geometry. + These histograms are filled and updated at every event and are initialized + with each new run; the scale of the histograms is automatically derived from + the detector geometry. - Throught a messenger it is possible to set some options with - the UI subtree "/analysis/" (use the UI help for more info); + Through a messenger it is possible to set some options with + the UI subtree "/analysis/" (use the UI help for more info); - In this example we only show the use of very basic feature of this new + In this example we only show the use of very basic feature of this new simulation/analysis framework. 9. Digi --------- +------- - For the TKR also the digits corresponding to the Hits are generated. - A digi is generated when the hit energy deposit is greater than a threshold - (in this example setted at 120 keV). + For the TKR also the digits corresponding to the Hits are generated. + A digi is generated when the hit energy deposit is greater than a threshold + (in this example setted at 120 keV). The TKR digi information are stored on the same file Tracks_N.dat and contain: a) ID of the event (this is important for multiple events run) - b) Number of the strip + b) Number of the strip c) Number of the plane d) Type of the plane (1=X 0=Y) 10. Classes Overview -------------------- +-------------------- This is the overview of the classes defined in this example - - GammaRayTelPrimaryGeneratorAction - User action for primaries generator + + GammaRayTelPrimaryGeneratorAction + User action for primaries generator GammaRayTelPrimaryGeneratorMessenger - Messenger for interactive particle generator - parameters modification via the User Interface - + Messenger for interactive particle generator + parameters modification via the User Interface + GammaRayTelPhysicsList - Determination of modular physics classes + Determination of modular physics classes GammaRayTelDetectorConstruction - Geometry and material definitions for the detector - + Geometry and material definitions for the detector + GammaRayTelDetectorMessenger - Messenger for interactive geometry parameters - modification via the User Interface - + Messenger for interactive geometry parameters + modification via the User Interface + GammaRayTelAnalysis - Analysis manager class (experimental) + Analysis manager class (experimental) GammaRayTelAnalysisMessenger - Messenger for interactive analysis options modification - via the User Interface + Messenger for interactive analysis options modification + via the User Interface GammaRayTelRunAction - User run action class + User run action class GammaRayTelEventAction - User event action class + User event action class GammaRayTelTrackerHit - Description of the hits on the tracker + Description of the hits on the tracker GammaRayTelDigi - Description of the digi on the tracker + Description of the digi on the tracker GammaRayTelDigitizer - Description of the digitizer for the tracker + Description of the digitizer for the tracker GammaRayTelTrackerSD - Description of the TKR sensitive detector + Description of the TKR sensitive detector GammaRayTelAnticoincidenceHit - Description of the hits on the anticoincidence + Description of the hits on the anticoincidence GammaRayTelAnticoincidenceSD - Description of the ACD sensitive detector + Description of the ACD sensitive detector GammaRayTelCalorimeterHit - Description of the hits on the calorimeter + Description of the hits on the calorimeter GammaRayTelCalorimeterSD - Description of the CAL sensitive detector - - - - - - - - - - + Description of the CAL sensitive detector diff --git a/examples/advanced/gammaray_telescope/gammaraytel.in b/examples/advanced/gammaray_telescope/gammaraytel.in index fb0b3f50e8..fb7a036d13 100644 --- a/examples/advanced/gammaray_telescope/gammaraytel.in +++ b/examples/advanced/gammaray_telescope/gammaraytel.in @@ -1,7 +1,7 @@ -# Macro file for the test of -# GammaRayTel # +# Macro file for the test of GammaRayTel # + /control/verbose 1 /control/saveHistory /run/verbose 1 @@ -9,7 +9,6 @@ /run/initialize -# /gun/sourceGen true /gun/particle proton @@ -26,4 +25,3 @@ /gun/energy 1 GeV /gun/sourceType 2 /run/beamOn 100 - diff --git a/examples/advanced/gammaray_telescope/gammaraytel.out b/examples/advanced/gammaray_telescope/gammaraytel.out index f1121172e7..f0b853997d 100644 --- a/examples/advanced/gammaray_telescope/gammaraytel.out +++ b/examples/advanced/gammaray_telescope/gammaraytel.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -31,6 +31,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -81,11 +83,11 @@ Some /vis commands (optionally) take a string to specify colour. THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmLivermorePhysics /physics/addPhysics HPElastic /physics/addPhysics binary -THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: HadronPhysicsQGSP_BIC_HP() +THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: HadronPhysicsQGSP_BIC_HP /physics/addPhysics binary_ion -THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4IonBinaryCascadePhysics() +THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4IonBinaryCascadePhysics /physics/addPhysics radioactive_decay -THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4RadioactiveDecayPhysics() +THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4RadioactiveDecayPhysics /run/initialize ***** Table : Nb of materials = 10 ***** @@ -209,10 +211,10 @@ THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4RadioactiveD ------------------------------------------------------------- ----> The Tracker is 15 layers of: 0.3mm of Tungsten ------------------------------------------------------------- -2 LAT +--------------------------------------------------------------------------------- +---> The tracker is composed by 15 layers, each made of Tungsten and 0.3 mm long. +--------------------------------------------------------------------------------- +2 LATERAL 1 TOP /cvmfs/geant4.cern.ch/share/data/G4NDL4.7 @@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic @@ -234,6 +236,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -261,7 +264,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -297,8 +300,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -329,8 +331,8 @@ conv: for gamma SubType=14 BuildTable=1 Livermore5DConversion : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -454,7 +456,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -464,10 +466,11 @@ nuclearStopping: for GenericIon SubType=8 BuildTable=0 ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 1.4427 us -Max life time (from G4DeexPrecoParameters) 1.4427 us +min MeanLife (from G4NuclideTable) 1 ns +Max life time (from G4DeexPrecoParameters) 1000 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -1072,7 +1075,7 @@ Limit excitation energy for Fermi BreakUp 20 MeV Level density (1/MeV) 0.075 Use simple level density model 1 Use discrete excitation energy of the residual 1 -Time limit for long lived isomeres 1.4427 us +Time limit for long lived isomeres 1000 ps Isomer production flag 1 Internal e- conversion flag 1 Store e- internal conversion data 1 @@ -1092,28 +1095,28 @@ Index : 0 used in the geometry : Yes Index : 1 used in the geometry : Yes Material : CesiumIodide Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um - Energy thresholds : gamma 9.2865 keV e- 144.614 keV e+ 141.091 keV proton 10 keV + Energy thresholds : gamma 9.28719 keV e- 144.613 keV e+ 141.078 keV proton 10 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes Material : Silicon Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um - Energy thresholds : gamma 2.32237 keV e- 122.002 keV e+ 119.773 keV proton 10 keV + Energy thresholds : gamma 2.32189 keV e- 121.99 keV e+ 119.775 keV proton 10 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 3 used in the geometry : Yes Material : Tungsten Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um - Energy thresholds : gamma 36.2769 keV e- 351.958 keV e+ 338.125 keV proton 10 keV + Energy thresholds : gamma 36.2769 keV e- 351.944 keV e+ 338.136 keV proton 10 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 4 used in the geometry : Yes Material : Scintillator Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um - Energy thresholds : gamma 994.647 eV e- 86.3927 keV e+ 85.2583 keV proton 10 keV + Energy thresholds : gamma 1.00819 keV e- 86.3911 keV e+ 85.2484 keV proton 10 keV Region(s) which use this couple : DefaultRegionForTheWorld @@ -1127,4301 +1130,4563 @@ See commands in /vis/modeling/trajectories/ for other options. WARNING: Scene "none" not found. /vis/scene/list to see scenes. Opening output file gammaraytel ... done -Using G4ParticleGun ... -8.53858 LIN -proton +Using G4ParticleGun... +Particle energy: 8.53858 LIN +Particle: proton Event: 0 -Number of tracker hits in this event = 26 +Number of tracker hits in this event: 28 0 100.889 1245 10 1 69.2404 74.1904 95.55 0 113.308 1270 10 0 69.2398 74.1902 94.15 0 153.177 1245 9 1 69.2269 74.1875 65.55 - 0 143.782 1270 9 0 69.2257 74.1868 64.15 - 0 128.989 1245 8 1 69.1981 74.1714 35.55 + 0 155.916 1270 9 0 69.2257 74.1868 64.15 + 0 128.988 1245 8 1 69.1981 74.1714 35.55 0 109.165 1270 8 0 69.1953 74.1712 34.15 - 0 229.83 1245 7 1 69.1373 74.1648 5.55 + 0 229.824 1245 7 1 69.1373 74.1648 5.55 0 119.409 1270 7 0 69.1346 74.1643 4.15 - 0 134.673 1245 6 1 69.0846 74.1483 -24.45 + 0 134.673 1245 6 1 69.0846 74.1484 -24.45 0 117.861 1270 6 0 69.0819 74.1485 -25.85 - 0 223.152 1244 5 1 69.0244 74.1545 -54.45 - 0 151.333 1270 5 0 69.0208 74.1551 -55.85 - 0 135.776 1244 4 1 68.9498 74.1711 -84.45 + 0 203.488 1244 5 1 69.0244 74.1545 -54.45 + 0 151.332 1270 5 0 69.0209 74.1551 -55.85 + 0 135.776 1244 4 1 68.9498 74.1712 -84.45 0 110.524 1270 4 0 68.9463 74.1713 -85.85 - 0 100.548 1244 3 1 68.8734 74.1724 -114.45 - 0 110.314 1270 3 0 68.8699 74.1726 -115.85 - 0 101.681 1243 2 1 68.8008 74.1773 -144.45 - 0 167.724 1270 2 0 68.7981 74.1778 -145.85 - 0 105.367 1243 1 1 68.7411 74.1898 -174.45 - 0 92.4034 1270 1 0 68.7384 74.1914 -175.85 - 0 107.804 1243 0 1 68.683 74.2248 -204.45 - 0 158.721 1270 0 0 68.6798 74.2267 -205.85 - 0 23.6362 1245 5 1 69.05 74.1817 -54.6788 - 0 6.40709 1439 6 1 107.977 43.0213 -24.85 - 0 96.122 1271 9 0 69.2546 74.25 63.7994 - 0 212.052 1272 9 0 69.3464 74.4506 63.8644 -Number of digits in this event = 12 -Using G4ParticleGun ... -8.80191 LIN -proton + 0 100.548 1244 3 1 68.8735 74.1724 -114.45 + 0 110.314 1270 3 0 68.87 74.1726 -115.85 + 0 101.681 1243 2 1 68.8009 74.1774 -144.45 + 0 167.723 1270 2 0 68.7982 74.1778 -145.85 + 0 105.366 1243 1 1 68.7412 74.1899 -174.45 + 0 92.4033 1270 1 0 68.7385 74.1914 -175.85 + 0 107.804 1243 0 1 68.6832 74.2248 -204.45 + 0 158.72 1270 0 0 68.68 74.2268 -205.85 + 0 43.276 1245 5 1 69.05 74.1817 -54.6782 + 0 61.9953 1568 6 0 93.6015 133.82 -26.25 + 0 86.3096 1569 6 0 93.7249 133.95 -26.1571 + 0 567.01 1570 6 0 93.9456 134.15 -25.9634 + 0 24.5179 1571 6 0 95.2064 134.35 -26.2186 + 0 295.995 1271 9 0 69.2625 74.25 63.7924 +Number of digits in this event: 14 +Using G4ParticleGun... +Particle energy: 4.17035 LIN +Particle: proton Event: 1 -Number of tracker hits in this event = 465 - 1 10.1948 213 11 0 -70.7447 -137.35 123.975 - 1 14.1307 212 11 0 -71.0152 -137.55 124.107 - 1 148.556 542 11 1 -71.4805 -138.183 125.15 - 1 1.18156 976 9 1 15.25 -27.9023 65.5452 - 1 50.2255 278 10 0 127.866 -124.453 94.0718 - 1 33.3204 1114 10 1 43.0394 -121.713 95.2139 - 1 52.7703 449 11 0 -8.86218 -90.1842 123.75 - 1 46.4104 856 11 1 -8.73988 -89.8987 125.15 - 1 1831.31 518 11 0 -25.7133 -76.4401 123.75 - 1 562.679 519 11 0 -25.9308 -76.25 124.058 - 1 931.108 766 11 1 -26.7425 -75.5811 125.15 - 1 1774.28 765 11 1 -26.85 -75.4923 125.295 - 1 2330.72 620 12 0 -46.3351 -56.0277 153.75 - 1 1420.2 868 10 1 -6.38678 -93.9538 95.55 - 1 729.718 427 10 0 -6.55488 -94.6443 94.15 - 1 2722.37 426 10 0 -6.58007 -94.75 93.9385 - 1 528.089 852 9 1 -9.61923 -109.134 65.55 - 1 513.827 851 9 1 -9.65 -109.236 65.3202 - 1 1053.01 351 9 0 -9.7997 -109.769 64.15 - 1 3.42054 350 9 0 -9.85082 -109.95 63.7521 - 1 1088.39 832 8 1 -13.4768 -122.603 35.55 - 1 193.408 284 8 0 -13.7088 -123.314 34.15 - 1 883.933 283 8 0 -13.7208 -123.35 34.0783 - 1 1065.73 808 7 1 -18.364 -137.84 5.55 - 1 199.318 807 7 1 -18.45 -138.013 5.21433 - 1 1157.09 207 7 0 -18.7171 -138.568 4.15 - 1 152.425 206 7 0 -18.8043 -138.75 3.80259 - 1 1360.95 769 6 1 -26.1176 -153.235 -24.45 - 1 1014.47 130 6 0 -26.2756 -153.979 -25.85 - 1 354.551 129 6 0 -26.3128 -154.15 -26.1658 - 1 2048.3 752 5 1 -29.4773 -169.314 -54.45 - 1 853.261 50 5 0 -29.5885 -170.071 -55.85 - 1 1366.26 49 5 0 -29.6017 -170.15 -55.9985 - 1 1113.18 869 10 1 -6.22029 -93.6726 95.55 - 1 1813.87 870 10 1 -6.05 -93.4777 95.3652 - 1 213.143 439 10 0 -4.96298 -92.225 94.15 - 1 572.672 440 10 0 -4.89804 -92.15 94.077 - 1 538.381 441 10 0 -4.72483 -91.95 93.8819 - 1 969.664 1001 9 1 20.2511 -63.1541 65.55 - 1 632.942 1002 9 1 20.45 -62.9517 65.3299 - 1 240.629 590 9 0 21.5176 -61.8861 64.15 - 1 679.44 591 9 0 21.5538 -61.85 64.1099 - 1 362.586 592 9 0 21.7554 -61.65 63.8865 - 1 641.127 1140 8 1 48.0615 -35.9209 35.55 - 1 726.48 1141 8 1 48.25 -35.7009 35.3326 - 1 146.968 727 8 0 49.313 -34.5012 34.15 - 1 937.466 728 8 0 49.3585 -34.45 34.0995 - 1 512.205 729 8 0 49.5387 -34.25 33.9002 - 1 94.1451 1275 7 1 75.2276 -6.27649 5.55 - 1 905.803 1276 7 1 75.25 -6.2516 5.52624 - 1 625.949 1277 7 1 75.45 -6.02866 5.31458 - 1 697.74 876 7 0 76.5714 -4.83332 4.15 - 1 781.649 877 7 0 76.7434 -4.65 3.97103 - 1 106.126 878 7 0 76.9328 -4.45 3.77168 - 1 638.316 1415 6 1 103.228 24.0198 -24.45 - 1 1263.14 1416 6 1 103.35 24.1729 -24.5775 - 1 380.394 1417 6 1 103.55 24.4238 -24.7879 - 1 672.028 1028 6 0 104.578 25.7153 -25.85 - 1 1031.84 1029 6 0 104.685 25.85 -25.9607 - 1 768.843 1030 6 0 104.847 26.05 -26.1253 - 1 218.362 1559 5 1 132.119 60.7478 -54.45 - 1 1643.99 1560 5 1 132.15 60.7789 -54.477 - 1 1679.94 1561 5 1 132.35 60.9676 -54.6563 - 1 103.001 1562 5 1 132.55 61.116 -54.8381 - 1 1225.84 1209 5 0 133.679 61.9471 -55.85 - 1 2836.57 1210 5 0 133.819 62.05 -55.9753 - 1 433.291 1211 5 0 134.09 62.25 -56.2178 - 1 319.534 336 11 0 2.02671 -112.842 123.75 - 1 594.261 335 11 0 2.07448 -112.95 123.91 - 1 27.4828 911 11 1 2.44401 -113.787 125.15 - 1 766.827 912 11 1 2.45 -113.8 125.17 - 1 471.123 237 12 0 10.3799 -132.613 153.75 - 1 397.906 236 12 0 10.4374 -132.75 153.958 - 1 650.506 953 12 1 10.7623 -133.534 155.15 - 1 230.94 954 12 1 10.85 -133.747 155.472 - 1 497.953 140 13 0 18.8382 -151.965 183.75 - 1 201.736 139 13 0 18.9193 -152.15 184.037 - 1 100.703 995 13 1 19.2305 -152.871 185.15 - 1 647.177 996 13 1 19.25 -152.916 185.22 - 1 144.039 48 14 0 28.2461 -170.506 213.75 - 1 725.913 47 14 0 28.2686 -170.55 213.821 - 1 10.0051 46 14 0 28.3699 -170.75 214.142 - 1 805.331 1043 14 1 28.6842 -171.386 215.15 - 1 946.206 871 10 1 -5.85 -93.768 95.5149 - 1 238.215 872 10 1 -5.65 -93.7214 95.4233 - 1 55.9563 873 10 1 -5.45 -93.675 95.3315 - 1 89.7193 874 10 1 -5.25 -93.6292 95.2399 - 1 296.271 435 10 0 -2.83448 -93.0882 94.15 - 1 198.881 436 10 0 -2.21621 -92.95 93.8712 - 1 3.57773 1203 9 1 60.8372 -77.9777 65.55 - 1 73.9777 1204 9 1 60.85 -77.9742 65.5441 - 1 63.1969 1205 9 1 61.05 -77.9206 65.4522 - 1 81.1592 1206 9 1 61.25 -77.867 65.3592 - 1 67.6131 1207 9 1 61.45 -77.813 65.2662 - 1 15.6601 1208 9 1 61.65 -77.7578 65.1741 - 1 117.869 514 9 0 63.8988 -77.1382 64.15 - 1 215.793 515 9 0 64.2188 -77.05 64.0043 - 1 7.05001 1534 8 1 127.123 -59.9048 35.55 - 1 89.6835 1535 8 1 127.15 -59.8962 35.5374 - 1 58.6391 1536 8 1 127.35 -59.8314 35.4431 - 1 113.315 1537 8 1 127.55 -59.7663 35.3497 - 1 91.5691 1538 8 1 127.75 -59.701 35.255 - 1 13.2127 1539 8 1 127.95 -59.6374 35.1596 - 1 185.006 605 8 0 130.039 -58.9799 34.15 - 1 165.963 606 8 0 130.451 -58.85 33.9506 - 1 24.38 430 10 0 -6.875 -94.145 94.15 - 1 224.952 429 10 0 -6.89684 -94.15 94.1487 - 1 311.551 428 10 0 -6.45924 -94.35 93.8349 - 1 87.9093 860 9 1 -7.95391 -101.513 65.55 - 1 363.612 391 9 0 -8.02962 -101.867 64.15 - 1 228.098 390 9 0 -8.04729 -101.95 63.8235 - 1 121.695 852 8 1 -9.59724 -109.12 35.55 - 1 72.9852 353 8 0 -9.67717 -109.481 34.15 - 1 39.5417 352 8 0 -9.69259 -109.55 33.8821 - 1 190.852 843 7 1 -11.3239 -116.897 5.55 - 1 115.536 314 7 0 -11.4063 -117.25 4.15 - 1 1.82293 313 7 0 -11.4296 -117.35 3.75452 - 1 239.096 834 6 1 -13.1027 -124.474 -24.45 - 1 287.201 276 6 0 -13.1816 -124.839 -25.85 - 1 143.457 826 5 1 -14.7781 -132.306 -54.45 - 1 101.675 237 5 0 -14.8576 -132.674 -55.85 - 1 25.701 236 5 0 -14.8741 -132.75 -56.141 - 1 141.226 817 4 1 -16.4556 -140.186 -84.45 - 1 140.534 197 4 0 -16.5304 -140.562 -85.85 - 1 174.715 809 3 1 -18.0634 -148.262 -114.45 - 1 110.232 157 3 0 -18.1371 -148.633 -115.85 - 1 104.931 801 2 1 -19.6515 -156.178 -144.45 - 1 16.0255 118 2 0 -19.7233 -156.543 -145.85 - 1 130.123 117 2 0 -19.7246 -156.55 -145.877 - 1 110.878 794 1 1 -21.2101 -164.01 -174.45 - 1 151.12 78 1 0 -21.2868 -164.371 -175.85 - 1 119.779 785 0 1 -22.8739 -171.747 -204.45 - 1 48.947 40 0 0 -22.9541 -172.104 -205.85 - 1 75.9538 39 0 0 -22.9643 -172.15 -206.029 - 1 1196.61 1065 9 1 33.0637 -109.453 65.55 - 1 1379.49 1066 9 1 33.25 -109.485 65.3701 - 1 143.071 1067 9 1 33.45 -109.527 65.1709 - 1 3211.44 352 9 0 34.5134 -109.689 64.15 - 1 84.222 866 10 1 -6.70512 -93.6784 95.55 - 1 87.2045 865 10 1 -6.85 -93.5944 95.4866 - 1 120.647 864 10 1 -7.05 -93.4766 95.3984 - 1 119.048 863 10 1 -7.25 -93.3568 95.3093 - 1 88.582 862 10 1 -7.45 -93.2364 95.2187 - 1 269.089 442 10 0 -9.9118 -91.75 94.0933 - 1 261.55 443 10 0 -10.2459 -91.55 93.9376 - 1 39.2563 444 10 0 -10.567 -91.35 93.7883 - 1 20.8486 541 9 1 -71.8094 -53.0767 65.55 - 1 154.11 540 9 1 -71.85 -53.0467 65.5252 - 1 122.044 539 9 1 -72.05 -52.8989 65.4027 - 1 120.649 538 9 1 -72.25 -52.7493 65.284 - 1 151.206 537 9 1 -72.45 -52.5986 65.1665 - 1 27.4874 643 9 0 -74.1971 -51.2883 64.15 - 1 200.842 644 9 0 -74.2482 -51.25 64.1203 - 1 272.615 645 9 0 -74.5164 -51.05 63.9654 - 1 61.3704 646 9 0 -74.7883 -50.85 63.8111 - 1 109.505 282 8 1 -123.622 -14.5081 35.55 - 1 181.248 281 8 1 -123.75 -14.4128 35.4671 - 1 216.388 280 8 1 -123.95 -14.2673 35.3383 - 1 78.0816 279 8 1 -124.15 -14.1217 35.2109 - 1 92.5703 835 8 0 -125.817 -12.9254 34.15 - 1 170.76 836 8 0 -125.922 -12.85 34.0831 - 1 146.462 837 8 0 -126.196 -12.65 33.9076 - 1 7.17017 46 7 1 -170.936 19.4994 5.55 - 1 199.894 45 7 1 -170.95 19.5079 5.54154 - 1 165.314 44 7 1 -171.15 19.6289 5.42013 - 1 116.278 43 7 1 -171.35 19.7511 5.29801 - 1 39.5644 42 7 1 -171.55 19.872 5.17429 - 1 12.1222 1003 7 0 -173.204 20.8396 4.15 - 1 293.287 1004 7 0 -173.222 20.85 4.13896 - 1 179.233 1005 7 0 -173.563 21.05 3.92717 - 1 109.789 874 9 1 -5.14569 -78.7164 65.55 - 1 88.0965 510 9 0 -5.09755 -78.0135 64.15 - 1 15.7223 511 9 0 -5.08634 -77.85 63.8244 - 1 173.059 879 8 1 -4.0908 -63.7188 35.55 - 1 120.688 585 8 0 -4.03878 -63.0308 34.15 - 1 9.18758 586 8 0 -4.02511 -62.85 33.7824 - 1 101.283 885 7 1 -3.01208 -48.9987 5.55 - 1 47.9816 658 7 0 -2.95858 -48.3107 4.15 - 1 99.5216 659 7 0 -2.95382 -48.25 4.02647 - 1 158.431 890 6 1 -1.86835 -34.2634 -24.45 - 1 2.01564 891 6 1 -1.85 -34.0741 -24.8371 - 1 90.8362 732 6 0 -1.80246 -33.5782 -25.85 - 1 151.968 733 6 0 -1.79017 -33.45 -26.1118 - 1 169.069 897 5 1 -0.472966 -19.5894 -54.45 - 1 46.4239 805 5 0 -0.404399 -18.909 -55.85 - 1 112.013 806 5 0 -0.398484 -18.85 -55.9712 - 1 130.638 904 4 1 0.990861 -5.02061 -84.45 - 1 72.0324 878 4 0 1.05184 -4.33604 -85.85 - 1 52.4635 879 4 0 1.05947 -4.25 -86.026 - 1 306.445 912 3 1 2.48314 9.64297 -114.45 - 1 1745.1 941 3 0 3.81129 8.32094 -115.85 - 1 98.0341 924 3 1 4.90107 9.59963 -114.85 - 1 78.9311 923 3 1 4.85 9.65551 -114.769 - 1 246.904 1235 8 0 -145.693 67.0536 33.75 - 1 0.0689067 985 3 0 -3.56918 17.05 -116.08 - 1 136.248 873 4 0 57.1073 -5.25 -86.193 - 1 209.773 134 0 0 30.8263 -153.15 -206.167 - 1 2445.64 911 3 1 2.29716 9.65595 -114.45 - 1 135.536 705 4 0 -16.5949 -39.0079 -86.25 - 1 331.299 704 4 0 -16.6112 -39.05 -86.2256 - 1 371.278 703 4 0 -16.6887 -39.25 -86.1093 - 1 490.068 702 4 0 -16.7661 -39.45 -85.9928 - 1 84.1057 701 4 0 -16.8436 -39.65 -85.8764 - 1 720.812 812 4 1 -17.5263 -41.4217 -84.85 - 1 681.744 811 4 1 -17.65 -41.7426 -84.664 - 1 268.851 465 5 0 -35.495 -86.9101 -56.25 - 1 387.103 464 5 0 -35.5503 -87.05 -56.1619 - 1 410.816 463 5 0 -35.6293 -87.25 -56.0359 - 1 180.074 462 5 0 -35.708 -87.45 -55.9097 - 1 467.515 718 5 1 -36.3561 -89.1169 -54.85 - 1 1120.21 717 5 1 -36.45 -89.3585 -54.6964 - 1 37.6347 320 6 0 -42.5467 -116.135 -26.25 - 1 685.026 319 6 0 -42.55 -116.15 -26.2343 - 1 520.994 318 6 0 -42.5942 -116.35 -26.0188 - 1 157.333 686 6 1 -42.8372 -117.432 -24.85 - 1 848.346 685 6 1 -42.85 -117.489 -24.7885 - 1 485.463 175 7 0 -48.2731 -144.971 3.75 - 1 572.15 174 7 0 -48.3083 -145.15 3.93581 - 1 15.7693 173 7 0 -48.3476 -145.35 4.14423 - 1 1137.76 657 7 1 -48.5389 -146.315 5.15 - 1 523.156 29 8 0 -55.0286 -174.201 33.75 - 1 520.375 28 8 0 -55.0635 -174.35 33.9032 - 1 90.9446 27 8 0 -55.1104 -174.55 34.1089 - 1 1360.14 623 8 1 -55.3448 -175.566 35.15 - 1 1.21804 1059 7 0 -61.2576 31.9442 3.75 - 1 1387.8 910 3 1 2.25 9.51818 -114.607 - 1 821.427 942 3 0 1.96325 8.5513 -115.85 - 1 41.9308 940 3 0 1.87581 8.25 -116.242 - 1 3715.18 874 2 1 -5.23047 -13.7725 -144.45 - 1 264.19 944 3 0 2.17635 8.91937 -115.85 - 1 740.492 943 3 0 2.1663 8.85 -115.984 - 1 8.54429 900 2 1 0.0504094 -5.88922 -144.45 - 1 303.086 866 2 0 -0.0823877 -6.76064 -145.85 - 1 539.971 865 2 0 -0.0953875 -6.85 -145.993 - 1 1198.52 885 1 1 -2.88104 -24.7248 -174.45 - 1 688.533 771 1 0 -3.03956 -25.6726 -175.85 - 1 334.625 770 1 0 -3.06792 -25.85 -176.111 - 1 1388.03 872 0 1 -5.60415 -44.9115 -204.45 - 1 13.3637 671 0 0 -5.64734 -45.8466 -205.85 - 1 834.29 670 0 0 -5.6475 -45.85 -205.855 - 1 298.505 669 0 0 -5.657 -46.05 -206.151 - 1 18.686 1090 4 0 -29.6934 38.05 -86.1046 - 1 52.1307 689 4 1 -42.05 39.4948 -84.7149 - 1 10.9431 805 2 1 -18.85 -95.9412 -144.477 - 1 32.6864 804 2 1 -19.05 -96.8956 -144.759 - 1 47.9713 413 2 0 -18.707 -97.4752 -145.85 - 1 73.1588 412 2 0 -18.7049 -97.5507 -145.887 - 1 256.571 806 2 1 -18.783 -98.0523 -144.85 - 1 725.002 951 3 0 2.6875 10.2793 -115.85 - 1 19.1628 952 3 0 2.79619 10.45 -116.231 - 1 568.183 954 2 1 10.8711 22.9569 -144.45 - 1 344.833 1017 2 0 11.2759 23.5771 -145.85 - 1 387.862 1018 2 0 11.3233 23.65 -146.015 - 1 582.557 996 1 1 19.3175 36.1802 -174.45 - 1 81.2237 1083 1 0 19.7156 36.8183 -175.85 - 1 433.398 1084 1 0 19.7352 36.85 -175.919 - 1 543.078 1040 0 1 28.1187 49.6308 -204.45 - 1 529.552 1151 0 0 28.5704 50.2556 -205.85 - 1 133.069 949 3 0 2.63936 9.92008 -115.85 - 1 88.0084 950 3 0 2.6437 10.0501 -115.891 - 1 181.447 380 4 1 -103.982 126.564 -84.45 - 1 5.7623 1101 11 1 40.25 -77.4221 125.179 - 1 87.8421 1367 10 0 25.9127 93.637 93.9519 - 1 109.332 1331 4 0 -122.097 86.3617 -85.9977 - 1 138.466 1351 5 0 -71.3943 90.3662 -56.25 - 1 1461.58 1350 5 0 -71.3796 90.35 -56.2372 - 1 1656.03 1349 5 0 -71.1176 90.05 -56.0103 - 1 26.7456 1348 5 0 -70.9383 89.85 -55.8519 - 1 1252.6 551 5 1 -69.7745 88.5948 -54.85 - 1 2172.66 552 5 1 -69.65 88.4605 -54.7428 - 1 1530.6 553 5 1 -69.45 88.2431 -54.5704 - 1 679.295 440 11 0 -115.254 -91.9562 123.75 - 1 1959.68 441 11 0 -115.61 -91.95 123.842 - 1 27.727 297 11 1 -120.729 -91.8568 125.15 - 1 368.897 296 11 1 -120.75 -91.8565 125.155 - 1 350.473 295 11 1 -120.95 -91.8529 125.206 - 1 363.623 294 11 1 -121.15 -91.8492 125.257 - 1 369.796 293 11 1 -121.35 -91.8446 125.308 - 1 302.273 292 11 1 -121.55 -91.8396 125.358 - 1 313.299 291 11 1 -121.75 -91.8348 125.408 - 1 270.664 290 11 1 -121.95 -91.8299 125.461 - 1 194.599 289 11 1 -122.15 -91.8246 125.513 - 1 202.442 354 11 0 8.47292 -109.306 123.75 - 1 927.409 353 11 0 8.51526 -109.35 123.83 - 1 208.246 945 11 1 9.19777 -110.077 125.15 - 1 611.169 946 11 1 9.25 -110.132 125.252 - 1 594.544 281 12 0 25.1492 -123.821 153.75 - 1 369.991 280 12 0 25.2993 -123.95 154.019 - 1 458.793 1029 12 1 25.9422 -124.511 155.15 - 1 570.798 1030 12 1 26.05 -124.604 155.339 - 1 927.254 207 13 0 41.7143 -138.603 183.75 - 1 388.362 206 13 0 41.8784 -138.75 184.048 - 1 711.537 1113 13 1 42.6885 -139.114 185.15 - 1 481.035 1114 13 1 42.85 -139.183 185.366 - 1 1164.42 155 14 0 63.3174 -149.016 213.75 - 1 77.6439 154 14 0 63.5964 -149.15 214.137 - 1 605.596 1221 14 1 64.3298 -149.509 215.15 - 1 880.524 1222 14 1 64.45 -149.568 215.316 - 1 121.771 867 10 1 -6.45 -93.9583 95.309 - 1 110.742 835 9 1 -12.9372 -100.094 65.55 - 1 154.733 398 9 0 -13.2472 -100.389 64.15 - 1 139.675 802 8 1 -19.6185 -106.404 35.55 - 1 79.0882 801 8 1 -19.65 -106.433 35.41 - 1 91.4252 367 8 0 -19.9329 -106.691 34.15 - 1 32.9286 366 8 0 -19.9977 -106.75 33.8618 - 1 299.175 768 7 1 -26.3429 -112.515 5.55 - 1 127.726 336 7 0 -26.6508 -112.812 4.15 - 1 63.0994 735 6 1 -33.004 -118.928 -24.45 - 1 59.9261 734 6 1 -33.05 -118.972 -24.6647 - 1 161.185 304 6 0 -33.3053 -119.218 -25.85 - 1 89.7219 702 5 1 -39.4606 -125.152 -54.45 - 1 222.254 273 5 0 -39.7642 -125.442 -55.85 - 1 51.0199 670 4 1 -46.0014 -131.418 -84.45 - 1 114.465 669 4 1 -46.05 -131.461 -84.6616 - 1 74.7026 242 4 0 -46.3248 -131.702 -85.85 - 1 43.8875 241 4 0 -46.3791 -131.75 -86.0846 - 1 194.369 635 3 1 -52.9324 -137.514 -114.45 - 1 132.006 211 3 0 -53.2601 -137.797 -115.85 - 1 119.759 600 2 1 -59.9278 -143.593 -144.45 - 1 102.425 181 2 0 -60.2651 -143.876 -145.85 - 1 7.11675 180 2 0 -60.3542 -143.95 -146.219 - 1 167.353 564 1 1 -67.1406 -149.612 -174.45 - 1 89.7638 151 1 0 -67.4813 -149.89 -175.85 - 1 20.4134 150 1 0 -67.5541 -149.95 -176.15 - 1 214.553 527 0 1 -74.4914 -155.578 -204.45 - 1 132.121 121 0 0 -74.8359 -155.859 -205.85 - 1 18.698 769 7 1 -26.25 -112.59 5.48149 - 1 28.3275 834 9 1 -13.1535 -100.168 65.55 - 1 194.091 833 9 1 -13.2504 -100.207 65.4887 - 1 76.0927 832 9 1 -13.45 -100.271 65.39 - 1 52.987 831 9 1 -13.6506 -100.324 65.3094 - 1 60.1344 830 9 1 -13.85 -100.421 65.2425 - 1 108.966 829 9 1 -14.05 -100.524 65.1967 - 1 2.45865 392 9 0 -18.1218 -101.748 64.15 - 1 138.113 389 9 0 -19.0411 -102.15 63.8515 - 1 36.7824 388 9 0 -19.4867 -102.35 63.7602 - 1 147.799 377 9 0 -13.621 -104.624 64.15 - 1 10.1307 376 9 0 -13.7062 -104.75 63.7761 - 1 199.085 799 8 1 -20.1603 -114.259 35.55 - 1 0.548566 798 8 1 -20.25 -114.394 35.1532 - 1 10.7258 327 8 0 -20.4785 -114.734 34.15 - 1 114.411 326 8 0 -20.4893 -114.75 34.1024 - 1 226.566 765 7 1 -27.0214 -124.415 5.55 - 1 173.732 764 7 1 -27.05 -124.457 5.42456 - 1 72.701 276 7 0 -27.3407 -124.89 4.15 - 1 98.8491 275 7 0 -27.3811 -124.95 3.97275 - 1 161.753 730 6 1 -33.877 -134.614 -24.45 - 1 101.675 225 6 0 -34.2029 -135.09 -25.85 - 1 103.346 224 6 0 -34.2444 -135.15 -26.0281 - 1 20.2301 696 5 1 -40.8363 -144.783 -54.45 - 1 125.422 695 5 1 -40.85 -144.803 -54.509 - 1 99.7708 174 5 0 -41.1623 -145.263 -55.85 - 1 68.8068 173 5 0 -41.2211 -145.35 -56.1024 - 1 13.7752 661 4 1 -47.8391 -155.075 -84.45 - 1 115.654 660 4 1 -47.85 -155.091 -84.4967 - 1 165.274 122 4 0 -48.1666 -155.559 -85.85 - 1 196.112 625 3 1 -54.9759 -165.621 -114.45 - 1 28.3422 624 3 1 -55.05 -165.733 -114.764 - 1 37.7083 70 3 0 -55.3067 -166.119 -115.85 - 1 111.829 69 3 0 -55.3274 -166.15 -115.937 - 1 210.221 589 2 1 -62.066 -176.295 -144.45 - 1 197.923 16 2 0 -62.3958 -176.796 -145.85 - 1 90.7237 626 3 1 -54.85 -165.742 -114.574 - 1 135.432 627 3 1 -54.6497 -165.952 -114.666 - 1 54.0567 628 3 1 -54.45 -166.118 -114.726 - 1 193.713 72 3 0 -54.3023 -165.741 -115.85 - 1 50.5643 71 3 0 -54.1843 -165.75 -115.999 - 1 78.2269 800 8 1 -20.05 -114.42 35.3003 - 1 55.5295 325 8 0 -19.7388 -115.074 34.15 - 1 433.651 324 8 0 -19.7473 -115.15 34.0149 - 1 325.084 1442 4 1 108.605 7.83591 -84.45 - 1 243.329 1443 4 1 108.75 7.97608 -84.6959 - 1 97.2163 942 4 0 109.436 8.63474 -85.85 - 1 189.341 943 4 0 109.452 8.65 -85.8767 - 1 32.4486 944 4 0 109.66 8.85 -86.2268 - 1 68.283 1531 3 1 126.472 25.1847 -114.45 - 1 116.881 1532 3 1 126.55 25.2624 -114.586 - 1 66.9437 1029 3 0 127.255 25.9599 -115.85 - 1 99.867 1030 3 0 127.346 26.05 -116.015 - 1 14.0707 1613 2 1 142.928 41.273 -144.45 - 1 115.96 1614 2 1 142.95 41.2969 -144.498 - 1 49.1523 1109 2 0 143.497 41.9713 -145.85 - 1 75.387 1110 2 0 143.564 42.0502 -145.998 - 1 249.542 1684 1 1 156.974 56.3704 -174.45 - 1 112.343 1685 1 1 157.15 56.5541 -174.786 - 1 64.0757 1185 1 0 157.71 57.1514 -175.85 - 1 86.9215 1186 1 0 157.802 57.25 -176.027 - 1 41.6014 1761 0 1 172.487 72.9085 -204.45 - 1 88.0029 1762 0 1 172.55 72.9815 -204.586 - 1 107.856 1268 0 0 173.14 73.677 -205.85 - 1 37.9497 1269 0 0 173.284 73.8501 -206.162 - 1 113.58 1683 1 1 156.95 56.3517 -174.533 - 1 25.3894 1682 1 1 156.75 56.3918 -174.787 - 1 129.186 1179 1 0 155.382 55.9288 -175.85 - 1 377.247 1180 1 0 155.249 56.05 -175.992 - 1 9.43867 1686 1 1 157.35 56.269 -174.837 - 1 114.044 1527 3 1 125.589 22.1466 -114.45 - 1 83.4569 1528 3 1 125.75 22.2789 -114.621 - 1 1.12 1529 3 1 125.95 22.4486 -114.846 - 1 39.4819 1015 3 0 126.846 23.2083 -115.85 - 1 126.179 1016 3 0 126.897 23.25 -115.906 - 1 86.2368 1017 3 0 127.135 23.45 -116.171 - 1 54.9809 1666 2 1 153.461 46.2961 -144.45 - 1 109.051 1667 2 1 153.55 46.3883 -144.579 - 1 64.2361 1136 2 0 154.321 47.3038 -145.85 - 1 70.7159 1137 2 0 154.443 47.45 -146.055 - 1 100.286 1751 1 1 170.415 67.5299 -174.45 - 1 29.8464 1752 1 1 170.55 67.7294 -174.75 - 1 93.8167 1242 1 0 171.062 68.4686 -175.85 - 1 50.0968 1243 1 0 171.192 68.65 -176.105 - 1 101.95 432 10 0 -6.47024 -93.6968 94.15 - 1 117.506 857 9 1 -8.50533 -90.5247 65.55 - 1 42.4096 448 9 0 -8.60639 -90.3667 64.15 - 1 81.7267 449 9 0 -8.61705 -90.35 64.0022 - 1 194.468 846 8 1 -10.6524 -87.1723 35.55 - 1 280.586 465 8 0 -10.7543 -87.0144 34.15 - 1 115.691 835 7 1 -12.8867 -83.807 5.55 - 1 2.9459 481 7 0 -12.9954 -83.6516 4.15 - 1 107.004 482 7 0 -12.9965 -83.65 4.13584 - 1 101.4 824 6 1 -15.2277 -80.4791 -24.45 - 1 30.2933 823 6 1 -15.25 -80.4461 -24.7425 - 1 151.512 498 6 0 -15.335 -80.3219 -25.85 - 1 134.623 812 5 1 -17.5311 -77.1096 -54.45 - 1 112.667 515 5 0 -17.6401 -76.9547 -55.85 - 1 104.834 800 4 1 -19.8751 -73.802 -84.45 - 1 110.858 532 4 0 -19.9837 -73.6481 -85.85 - 1 224.859 789 3 1 -22.2107 -70.5123 -114.45 - 1 313.619 548 3 0 -22.3175 -70.359 -115.85 - 1 120.377 777 2 1 -24.5006 -67.2242 -144.45 - 1 57.4966 564 2 0 -24.6075 -67.0715 -145.85 - 1 114.119 565 2 0 -24.6225 -67.05 -146.047 - 1 133.389 766 1 1 -26.8132 -63.947 -174.45 - 1 1653.74 581 1 0 -26.9217 -63.7948 -175.85 - 1 657.167 580 1 0 -26.8728 -63.85 -176.215 - 1 526.399 579 1 0 -26.7112 -64.05 -176.195 - 1 676.43 578 1 0 -26.553 -64.25 -176.174 - 1 561.596 577 1 0 -26.3923 -64.45 -176.151 - 1 717.477 576 1 0 -26.2358 -64.65 -176.127 - 1 670.828 575 1 0 -26.0779 -64.85 -176.101 - 1 659.815 574 1 0 -25.9217 -65.05 -176.074 - 1 555.205 573 1 0 -25.7669 -65.25 -176.046 - 1 640.485 572 1 0 -25.6128 -65.45 -176.019 - 1 539.632 571 1 0 -25.459 -65.65 -175.988 - 1 543.823 570 1 0 -25.3087 -65.85 -175.958 - 1 522.039 569 1 0 -25.16 -66.05 -175.926 - 1 666.021 568 1 0 -25.0077 -66.25 -175.895 - 1 207.282 567 1 0 -24.8573 -66.45 -175.864 - 1 698.776 799 1 1 -20.2283 -72.6278 -174.85 - 1 863.818 800 1 1 -20.05 -72.8658 -174.811 - 1 850.43 801 1 1 -19.85 -73.1304 -174.768 - 1 825.961 802 1 1 -19.65 -73.3935 -174.721 - 1 823.958 803 1 1 -19.45 -73.6536 -174.671 - 1 862.14 804 1 1 -19.25 -73.9089 -174.623 - 1 878.936 805 1 1 -19.05 -74.1603 -174.572 - 1 987.09 806 1 1 -18.85 -74.4121 -174.521 - 1 386.853 807 1 1 -18.65 -74.6649 -174.469 - 1 1491.29 106 2 0 49.9598 -158.771 -146.25 - 1 1873.34 105 2 0 50.1092 -158.95 -146.191 - 1 2046.95 104 2 0 50.2815 -159.15 -146.126 - 1 2647.71 103 2 0 50.4454 -159.35 -146.056 - 1 3616.14 102 2 0 50.6172 -159.55 -145.986 - 1 3293.71 101 2 0 50.7772 -159.75 -145.918 - 1 139.998 734 0 1 -33.0724 -59.6533 -204.45 - 1 1.73113 602 0 0 -33.3786 -59.4512 -205.85 - 1 133.499 603 0 0 -33.3805 -59.45 -205.859 -Number of digits in this event = 278 -Using G4ParticleGun ... -2.18608 LIN -proton +Number of tracker hits in this event: 29 + 1 140.081 1102 11 1 40.4539 10.7253 125.55 + 1 154.088 953 11 0 40.4544 10.7271 124.15 + 1 109.624 1101 10 1 40.44 10.7493 95.55 + 1 131.588 953 10 0 40.4393 10.7502 94.15 + 1 99.2803 1101 9 1 40.4191 10.7694 65.55 + 1 107.799 953 9 0 40.4166 10.7718 64.15 + 1 178.899 1101 8 1 40.366 10.8279 35.55 + 1 118.577 953 8 0 40.3631 10.8321 34.15 + 1 175.932 1101 7 1 40.3066 10.9259 5.55 + 1 100.785 954 7 0 40.3055 10.9308 4.15 + 1 158.839 1101 6 1 40.2878 11.0321 -24.45 + 1 127.392 954 6 0 40.2876 11.0372 -25.85 + 1 99.7908 1101 5 1 40.2781 11.1446 -54.45 + 1 125.899 955 5 0 40.2763 11.1503 -55.85 + 1 109.579 1100 4 1 40.2364 11.269 -84.45 + 1 101.456 956 4 0 40.2356 11.276 -85.85 + 1 103.729 1100 3 1 40.2115 11.4201 -114.45 + 1 106.401 956 3 0 40.2116 11.4272 -115.85 + 1 132.941 1100 2 1 40.2179 11.5687 -144.45 + 1 158.016 957 2 0 40.217 11.5768 -145.85 + 1 96.4854 1100 1 1 40.1932 11.7506 -174.45 + 1 186.09 958 1 0 40.1916 11.7589 -175.85 + 1 127.415 1100 0 1 40.1632 11.9239 -204.45 + 1 112.749 959 0 0 40.1609 11.932 -205.85 + 1 76.3423 1101 2 1 40.25 11.5644 -144.461 + 1 155.754 1102 2 1 40.45 11.5091 -144.61 + 1 112.91 953 2 0 41.1811 10.793 -145.85 + 1 167.18 952 2 0 41.3277 10.6496 -146.067 + 1 5.69052 951 2 0 41.8386 10.4499 -146.233 +Number of digits in this event: 15 +Using G4ParticleGun... +Particle energy: 4.14512 LIN +Particle: proton Event: 2 -Number of tracker hits in this event = 16 - 2 109.322 308 7 1 -118.454 -88.6427 5.55 - 2 132.847 457 7 0 -118.457 -88.6355 4.15 - 2 111.855 308 6 1 -118.522 -88.4839 -24.45 - 2 110.962 457 6 0 -118.528 -88.4762 -25.85 - 2 150.2 307 5 1 -118.656 -88.3199 -54.45 - 2 219.047 458 5 0 -118.663 -88.3134 -55.85 - 2 115.002 306 4 1 -118.807 -88.168 -84.45 - 2 122.329 459 4 0 -118.813 -88.1595 -85.85 - 2 92.0351 306 3 1 -118.92 -87.986 -114.45 - 2 140.232 460 3 0 -118.927 -87.9774 -115.85 - 2 97.8191 305 2 1 -119.079 -87.8077 -144.45 - 2 106.794 461 2 0 -119.088 -87.7994 -145.85 - 2 113.527 304 1 1 -119.265 -87.6194 -174.45 - 2 102.057 462 1 0 -119.274 -87.609 -175.85 - 2 113.321 303 0 1 -119.468 -87.4009 -204.45 - 2 125.427 463 0 0 -119.474 -87.3895 -205.85 -Number of digits in this event = 7 -Using G4ParticleGun ... -8.35978 LIN -proton +Number of tracker hits in this event: 90 + 2 127.485 1103 11 1 40.8408 22.0162 125.55 + 2 163.651 1009 11 0 40.8395 22.0143 124.15 + 2 235.295 1103 10 1 40.8188 21.9791 95.55 + 2 118.881 1009 10 0 40.8183 21.9747 94.15 + 2 97.7512 1103 9 1 40.8072 21.891 65.55 + 2 126.772 1009 9 0 40.8039 21.8858 64.15 + 2 99.3774 1103 8 1 40.7338 21.7789 35.55 + 2 96.3534 1008 8 0 40.7297 21.773 34.15 + 2 102.982 1102 7 1 40.643 21.6519 5.55 + 2 106.771 1007 7 0 40.6383 21.6457 4.15 + 2 113.714 1102 6 1 40.5437 21.516 -24.45 + 2 236.387 1007 6 0 40.5407 21.5093 -25.85 + 2 104.807 1102 5 1 40.4726 21.3793 -54.45 + 2 102.581 1006 5 0 40.4718 21.3761 -55.85 + 2 128.214 1102 4 1 40.4593 21.3123 -84.45 + 2 95.6129 1006 4 0 40.4575 21.3079 -85.85 + 2 112.369 1101 3 1 40.4267 21.2148 -114.45 + 2 94.0446 1005 3 0 40.4247 21.211 -115.85 + 2 109.479 1101 2 1 40.3799 21.1375 -144.45 + 2 217.92 1005 2 0 40.3811 21.1348 -145.85 + 2 115.842 1101 1 1 40.4072 21.0877 -174.45 + 2 90.4523 1005 1 0 40.4075 21.0868 -175.85 + 2 119.798 1101 0 1 40.4163 21.0598 -204.45 + 2 131.055 1005 0 0 40.4186 21.057 -205.85 + 2 59.6474 619 0 0 65.2015 -56.1867 -206.25 + 2 155.208 618 0 0 65.2364 -56.25 -206.2 + 2 308.845 617 0 0 65.3451 -56.45 -206.041 + 2 31.0842 616 0 0 65.4511 -56.65 -205.882 + 2 152.914 1230 0 1 66.1362 -57.949 -204.85 + 2 249.939 1231 0 1 66.25 -58.1648 -204.679 + 2 136.199 359 1 0 88.2358 -108.224 -176.25 + 2 156.578 358 1 0 88.2912 -108.35 -176.178 + 2 182.601 357 1 0 88.3785 -108.55 -176.067 + 2 102.456 356 1 0 88.4665 -108.75 -175.953 + 2 246.644 1346 1 1 89.2799 -110.634 -174.85 + 2 257.487 1347 1 1 89.45 -111.029 -174.618 + 2 38.1273 118 2 0 110.027 -156.5 -146.25 + 2 219.942 117 2 0 110.05 -156.55 -146.219 + 2 149.095 116 2 0 110.141 -156.75 -146.094 + 2 143.385 115 2 0 110.233 -156.95 -145.97 + 2 119.881 1454 2 1 111.078 -158.722 -144.85 + 2 545.427 1455 2 1 111.15 -158.872 -144.755 + 2 92.4121 1456 2 1 111.35 -159.288 -144.496 + 2 32.5592 1184 0 0 -3.88113 57.0349 -206.25 + 2 237.888 1185 0 0 -3.89532 57.05 -206.237 + 2 258.712 1186 0 0 -4.0863 57.25 -206.061 + 2 78.6068 1187 0 0 -4.26999 57.45 -205.891 + 2 11.7186 873 0 1 -5.44269 58.7316 -204.85 + 2 406.836 872 0 1 -5.45 58.7396 -204.844 + 2 429.605 871 0 1 -5.65 58.9592 -204.667 + 2 214.123 870 0 1 -5.85 59.1767 -204.493 + 2 219.301 1448 1 0 -72.2959 109.848 -176.25 + 2 461.821 1449 1 0 -72.4293 109.95 -176.194 + 2 524.677 1450 1 0 -72.7151 110.15 -176.073 + 2 383.042 1451 1 0 -73.0051 110.35 -175.948 + 2 15.353 524 1 1 -75.2408 112.031 -174.85 + 2 458.945 523 1 1 -75.25 112.038 -174.845 + 2 298.872 522 1 1 -75.45 112.19 -174.747 + 2 385.079 521 1 1 -75.65 112.333 -174.654 + 2 415.323 520 1 1 -75.85 112.481 -174.555 + 2 222.71 1540 2 0 -112.359 128.324 -146.25 + 2 1780.11 1541 2 0 -112.42 128.35 -146.202 + 2 153.697 332 2 1 -113.73 128.793 -144.85 + 2 1510 331 2 1 -113.75 128.799 -144.828 + 2 2309.99 330 2 1 -113.95 128.88 -144.608 + 2 935.72 329 2 1 -114.15 128.991 -144.55 + 2 1205.52 328 2 1 -114.35 129.054 -144.692 + 2 377.16 327 2 1 -114.55 129.095 -144.822 + 2 1464.9 1546 2 0 -116.369 129.465 -145.85 + 2 46.2137 563 1 1 -67.371 121.882 -174.45 + 2 94.7875 564 1 1 -67.25 121.845 -174.571 + 2 23.9267 565 1 1 -67.05 121.789 -174.775 + 2 292.809 1506 1 0 -66.0067 121.471 -175.85 + 2 9.0167 694 0 1 -41.0771 113.824 -204.45 + 2 58.0861 695 0 1 -41.05 113.82 -204.459 + 2 59.5265 696 0 1 -40.85 113.791 -204.528 + 2 60.7041 697 0 1 -40.65 113.772 -204.606 + 2 108.072 698 0 1 -40.45 113.757 -204.683 + 2 59.0639 699 0 1 -40.25 113.736 -204.76 + 2 1.36543 700 0 1 -40.05 113.71 -204.847 + 2 39.3604 1466 0 0 -38.1091 113.376 -205.85 + 2 192.245 1465 0 0 -37.9553 113.35 -205.928 + 2 109.839 1505 1 0 -65.794 121.35 -176.067 + 2 94.2197 1006 6 0 40.5777 21.4499 -26.1273 + 2 150.25 1008 9 0 40.8712 21.85 64.0741 + 2 77.395 1007 9 0 40.9266 21.65 63.8471 + 2 10.9957 1006 9 0 40.9892 21.4498 63.7689 + 2 21.8962 1097 11 1 39.4744 21.2956 125.15 + 2 62.3339 1096 11 1 39.4499 21.2847 125.167 + 2 149.012 1007 11 0 38.662 21.6346 124.15 +Number of digits in this event: 50 +Using G4ParticleGun... +Particle energy: 3.60259 LIN +Particle: proton Event: 3 -Number of tracker hits in this event = 21 - 3 131.444 1564 9 1 133.088 -8.80187 65.55 - 3 108.615 856 9 0 133.088 -8.80194 64.15 - 3 105.716 1564 8 1 133.09 -8.80506 35.55 - 3 126.311 856 8 0 133.089 -8.80392 34.15 - 3 177.789 1564 7 1 133.074 -8.77985 5.55 - 3 93.9809 856 7 0 133.074 -8.77921 4.15 - 3 94.2178 1564 6 1 133.081 -8.76368 -24.45 - 3 103.754 856 6 0 133.082 -8.76349 -25.85 - 3 103.792 1564 5 1 133.093 -8.75956 -54.45 - 3 101.159 856 5 0 133.093 -8.75936 -55.85 - 3 140.597 1564 4 1 133.079 -8.75183 -84.45 - 3 110.829 856 4 0 133.078 -8.75261 -85.85 - 3 334.093 1564 3 1 133.047 -8.77375 -114.45 - 3 108.254 856 3 0 133.046 -8.77469 -115.85 - 3 135.573 1564 2 1 133.008 -8.79515 -144.45 - 3 126.146 856 2 0 133.007 -8.79603 -145.85 - 3 115.17 1564 1 1 132.968 -8.81513 -174.45 - 3 224.156 856 1 0 132.968 -8.8156 -175.85 - 3 145.016 1564 0 1 132.957 -8.82196 -204.45 - 3 90.095 856 0 0 132.957 -8.82227 -205.85 - 3 119.688 847 8 0 132.64 -10.4941 34.1499 -Number of digits in this event = 10 -Using G4ParticleGun ... -5.49751 LIN -proton +Number of tracker hits in this event: 23 + 3 108.561 946 10 1 9.30907 -94.4193 95.55 + 3 102.065 428 10 0 9.30812 -94.4192 94.15 + 3 307.601 946 9 1 9.28964 -94.4248 65.55 + 3 107.324 428 9 0 9.28597 -94.4264 64.15 + 3 137.849 945 8 1 9.20983 -94.4611 35.55 + 3 125.224 428 8 0 9.20562 -94.4606 34.15 + 3 129.642 945 7 1 9.12133 -94.4503 5.55 + 3 115.569 428 7 0 9.11655 -94.4495 4.15 + 3 116.86 944 6 1 9.01909 -94.4363 -24.45 + 3 108.901 428 6 0 9.01297 -94.437 -25.85 + 3 132.164 944 5 1 8.88082 -94.4415 -54.45 + 3 103.539 428 5 0 8.8755 -94.4418 -55.85 + 3 129.116 943 4 1 8.76406 -94.4459 -84.45 + 3 117.856 428 4 0 8.75886 -94.4461 -85.85 + 3 15.4016 943 3 1 8.65013 -94.4466 -114.45 + 3 202.503 942 3 1 8.65 -94.4466 -114.486 + 3 114.285 428 3 0 8.64507 -94.4466 -115.85 + 3 108.666 942 2 1 8.54277 -94.448 -144.45 + 3 91.763 428 2 0 8.53761 -94.4474 -145.85 + 3 128.903 941 1 1 8.43128 -94.4367 -174.45 + 3 103.714 428 1 0 8.4251 -94.4367 -175.85 + 3 111.665 941 0 1 8.29092 -94.4365 -204.45 + 3 104.736 428 0 0 8.28464 -94.4372 -205.85 +Number of digits in this event: 9 +Using G4ParticleGun... +Particle energy: 6.0872 LIN +Particle: proton Event: 4 -Number of tracker hits in this event = 68 - 4 141.232 509 10 1 -78.0805 -45.5661 95.55 - 4 104.823 672 10 0 -78.0803 -45.5669 94.15 - 4 141.875 509 9 1 -78.0917 -45.5776 65.55 - 4 115.057 672 9 0 -78.0918 -45.5783 64.15 - 4 127.563 509 8 1 -78.0835 -45.5897 35.55 - 4 125.642 672 8 0 -78.0821 -45.5895 34.15 - 4 24639.6 510 7 1 -78.046 -45.5828 5.55 - 4 32876 509 7 1 -78.05 -45.5854 5.24619 - 4 6372.04 668 7 0 -78.093 -46.4499 4.15 - 4 16470.5 667 7 0 -78.093 -46.45 4.14985 - 4 2203.75 508 7 1 -78.25 -44.0692 5.31962 - 4 233.237 674 7 0 -79.5294 -45.0752 4.15 - 4 1893.05 675 7 0 -79.6033 -45.05 4.09514 - 4 643.091 316 6 1 -116.834 -31.6164 -24.45 - 4 1042.04 315 6 1 -116.95 -31.5724 -24.5296 - 4 1190.15 314 6 1 -117.15 -31.4967 -24.6635 - 4 388.634 313 6 1 -117.35 -31.4051 -24.8042 - 4 590.471 746 6 0 -118.759 -30.6975 -25.85 - 4 2308.75 747 6 0 -118.853 -30.65 -25.9201 - 4 370.52 748 6 0 -119.229 -30.45 -26.2121 - 4 3860.36 361 6 1 -107.816 -65.1769 -24.45 - 4 7738.13 360 6 1 -107.95 -65.2688 -24.5816 - 4 219.777 679 7 0 -77.8103 -44.1201 4.15 - 4 701.756 680 7 0 -77.799 -44.05 4.09715 - 4 759.652 681 7 0 -77.7667 -43.85 3.94832 - 4 243.315 682 7 0 -77.7356 -43.65 3.80004 - 4 1047.95 540 6 1 -71.8954 -3.19472 -24.45 - 4 1391.45 541 6 1 -71.85 -2.95766 -24.6241 - 4 905.126 894 6 0 -71.4696 -1.2244 -25.85 - 4 1007.2 895 6 0 -71.4307 -1.05 -25.9729 - 4 972.151 896 6 0 -71.3878 -0.85 -26.114 - 4 1440.12 584 5 1 -63.0819 36.9593 -54.45 - 4 6750.11 585 5 1 -63.05 37.0807 -54.5429 - 4 1522.72 1094 5 0 -62.7495 38.9549 -55.85 - 4 4847.79 669 7 0 -76.1586 -46.1488 4.15 - 4 174.994 672 7 0 -78.0353 -45.5872 4.15 - 4 102.644 511 6 1 -77.7743 -45.7069 -24.45 - 4 103.042 671 6 0 -77.7613 -45.7115 -25.85 - 4 95.6569 512 5 1 -77.4983 -45.8084 -54.45 - 4 199.017 671 5 0 -77.4854 -45.8144 -55.85 - 4 136.512 514 4 1 -77.2216 -45.9346 -84.45 - 4 133.993 670 4 0 -77.2114 -45.9407 -85.85 - 4 102.526 515 3 1 -77.0064 -46.0691 -114.45 - 4 113.401 669 3 0 -76.9964 -46.0752 -115.85 - 4 98.6286 516 2 1 -76.7883 -46.2002 -144.45 - 4 125.927 669 2 0 -76.7798 -46.2057 -145.85 - 4 100.787 517 1 1 -76.6049 -46.3144 -174.45 - 4 153.545 668 1 0 -76.5968 -46.32 -175.85 - 4 151.736 518 0 1 -76.4285 -46.4425 -204.45 - 4 137.047 668 0 0 -76.4213 -46.447 -205.85 - 4 122.712 883 0 1 -3.33633 -91.3088 -204.488 - 4 377.227 701 1 0 23.1982 -39.6625 -176.25 - 4 77.498 700 1 0 23.1173 -39.85 -176.084 - 4 121.773 380 1 0 -0.664402 -104.004 -176.25 - 4 132.43 381 1 0 -0.867616 -103.95 -176.113 - 4 105.035 897 1 1 -0.509781 -104.053 -174.85 - 4 173.331 898 1 1 -0.45 -103.982 -174.705 - 4 73.9819 435 3 0 24.7139 -92.9969 -116.25 - 4 103.567 436 3 0 24.5578 -92.95 -116.173 - 4 789.396 437 3 0 24.3559 -92.75 -116.056 - 4 1.54416 438 3 0 25.1407 -92.5499 -116.001 - 4 162.521 362 3 0 156.685 -107.684 -116.25 - 4 93.1908 361 3 0 157.167 -107.75 -116.146 - 4 14.7106 274 3 0 93.6556 -125.323 -116.25 - 4 78.6162 273 3 0 93.6592 -125.35 -116.211 - 4 18.5836 272 3 0 93.5641 -125.55 -116.22 - 4 134.851 175 3 0 103.326 -145.007 -116.25 - 4 301.038 176 3 0 103.596 -144.95 -116.154 -Number of digits in this event = 54 -Using G4ParticleGun ... -2.9132 LIN -proton +Number of tracker hits in this event: 23 + 4 217.194 658 10 1 -48.3253 97.3609 95.55 + 4 105.131 1386 10 0 -48.3263 97.3597 94.15 + 4 191.917 658 9 1 -48.3514 97.3344 65.55 + 4 250.862 1385 9 0 -48.3535 97.3327 64.15 + 4 103.161 658 8 1 -48.3958 97.2951 35.55 + 4 93.6547 1385 8 0 -48.3969 97.2935 34.15 + 4 122.46 658 7 1 -48.424 97.2682 5.55 + 4 103.475 1385 7 0 -48.4251 97.2672 4.15 + 4 107.677 658 6 1 -48.4494 97.2409 -24.45 + 4 130.856 1385 6 0 -48.4497 97.2402 -25.85 + 4 116.307 657 5 1 -48.4548 97.2301 -54.45 + 4 104.252 1385 5 0 -48.4557 97.23 -55.85 + 4 100.692 657 4 1 -48.4796 97.2311 -84.45 + 4 176.242 1385 4 0 -48.4809 97.2308 -85.85 + 4 154.111 657 3 1 -48.5093 97.2247 -114.45 + 4 211.776 1385 3 0 -48.5104 97.226 -115.85 + 4 148.131 657 2 1 -48.5334 97.2607 -144.45 + 4 121.33 1385 2 0 -48.5343 97.2617 -145.85 + 4 122.696 657 1 1 -48.5541 97.2817 -174.45 + 4 100.446 1385 1 0 -48.5537 97.2812 -175.85 + 4 98.817 657 0 1 -48.5439 97.2703 -204.45 + 4 106.966 1385 0 0 -48.5437 97.269 -205.85 + 4 63.0698 1384 3 0 -48.5533 97.15 -115.931 +Number of digits in this event: 14 +Using G4ParticleGun... +Particle energy: 3.05467 LIN +Particle: proton Event: 5 -Number of tracker hits in this event = 34 - 5 413.417 779 11 1 -24.1275 42.5803 125.55 - 5 113.276 1112 11 0 -24.1269 42.5778 124.15 - 5 99.1896 779 10 1 -24.113 42.5171 95.55 - 5 81.8136 1112 10 0 -24.1132 42.5157 94.15 - 5 95.1507 779 9 1 -24.1142 42.4855 65.55 - 5 91.8998 1112 9 0 -24.1165 42.4857 64.15 - 5 207.191 779 8 1 -24.1465 42.494 35.55 - 5 170.752 1112 8 0 -24.1514 42.4954 34.15 - 5 137.419 778 7 1 -24.2558 42.5179 5.55 - 5 90.3116 1112 7 0 -24.2593 42.5171 4.15 - 5 175.047 778 6 1 -24.3293 42.5004 -24.45 - 5 195.848 1112 6 0 -24.3351 42.5014 -25.85 - 5 157.698 777 5 1 -24.4574 42.524 -54.45 - 5 121.71 1112 5 0 -24.4628 42.5253 -55.85 - 5 175.668 777 4 1 -24.5804 42.5461 -84.45 - 5 136.857 1112 4 0 -24.5875 42.5463 -85.85 - 5 124.298 776 3 1 -24.7277 42.5433 -114.45 - 5 151.986 1112 3 0 -24.7344 42.5461 -115.85 - 5 186.794 775 2 1 -24.8608 42.6041 -144.45 - 5 97.4902 1112 2 0 -24.8687 42.6058 -145.85 - 5 122.693 775 1 1 -25.0265 42.6391 -174.45 - 5 127.369 1112 1 0 -25.0308 42.645 -175.85 - 5 105.579 774 0 1 -25.1156 42.7696 -204.45 - 5 90.8888 1113 0 0 -25.1176 42.7768 -205.85 - 5 0.292099 1784 5 1 177.117 -77.1518 -54.85 - 5 28.0233 1080 0 1 36.2352 94.7823 -204.739 - 5 194.436 1113 2 0 -25.0092 42.7986 -145.85 - 5 295.911 1147 2 0 -87.604 49.6083 -146.25 - 5 32.808 1117 8 0 -24.7749 43.5846 34.15 - 5 149.416 1118 8 0 -24.812 43.6505 34.0932 - 5 102.935 1119 8 0 -24.7654 43.85 33.9488 - 5 291.02 1120 8 0 -24.6857 44.05 34.0027 - 5 268.183 780 11 1 -24.05 42.4434 125.443 - 5 81.3802 781 11 1 -23.8498 42.4392 125.394 -Number of digits in this event = 23 -Using G4ParticleGun ... -1.99155 LIN -proton +Number of tracker hits in this event: 18 + 5 118.883 921 8 1 4.42356 140.652 35.55 + 5 118.769 1602 8 0 4.42205 140.651 34.15 + 5 110.243 921 7 1 4.39577 140.621 5.55 + 5 97.6099 1602 7 0 4.39323 140.619 4.15 + 5 105.606 921 6 1 4.34716 140.583 -24.45 + 5 157.022 1602 6 0 4.34442 140.584 -25.85 + 5 110.334 921 5 1 4.29477 140.601 -54.45 + 5 99.3015 1602 5 0 4.29079 140.601 -55.85 + 5 105.923 920 4 1 4.20928 140.601 -84.45 + 5 137.465 1602 4 0 4.20369 140.601 -85.85 + 5 183.074 920 3 1 4.08822 140.605 -114.45 + 5 114.609 1602 3 0 4.08174 140.606 -115.85 + 5 133.816 919 2 1 3.95283 140.62 -144.45 + 5 125.582 1602 2 0 3.94767 140.622 -145.85 + 5 132.918 918 1 1 3.84444 140.657 -174.45 + 5 109.231 1602 1 0 3.83998 140.655 -175.85 + 5 204.076 918 0 1 3.74363 140.613 -204.45 + 5 115.372 1602 0 0 3.74063 140.612 -205.85 +Number of digits in this event: 8 +Using G4ParticleGun... +Particle energy: 5.8965 LIN +Particle: proton Event: 6 -Number of tracker hits in this event = 27 - 6 120.647 1215 11 1 63.1107 -23.9438 125.55 - 6 123.198 780 11 0 63.1098 -23.9437 124.15 - 6 92.918 1215 10 1 63.0763 -23.924 95.55 - 6 274.374 780 10 0 63.078 -23.9227 94.15 - 6 104.066 1215 9 1 63.1022 -23.8941 65.55 - 6 108.715 780 9 0 63.1063 -23.8931 64.15 - 6 110.746 1215 8 1 63.1983 -23.8696 35.55 - 6 99.2352 780 8 0 63.2035 -23.8687 34.15 - 6 118.175 1216 7 1 63.3115 -23.8409 5.55 - 6 110.079 781 7 0 63.3161 -23.8386 4.15 - 6 141.382 1216 6 1 63.4023 -23.7916 -24.45 - 6 160.501 781 6 0 63.407 -23.7897 -25.85 - 6 104.954 1217 5 1 63.5068 -23.7392 -54.45 - 6 118.876 781 5 0 63.5126 -23.7366 -55.85 - 6 242.036 1217 4 1 63.6417 -23.6775 -84.45 - 6 94.6784 781 4 0 63.6486 -23.6717 -85.85 - 6 206.591 1218 3 1 63.7892 -23.5526 -114.45 - 6 94.9296 782 3 0 63.7943 -23.5478 -115.85 - 6 206.723 1219 2 1 63.8909 -23.4502 -144.45 - 6 110.414 783 2 0 63.8962 -23.4432 -145.85 - 6 135.59 1219 1 1 64.0109 -23.2916 -174.45 - 6 100.19 783 1 0 64.0188 -23.282 -175.85 - 6 193.673 1220 0 1 64.1869 -23.082 -204.45 - 6 117.727 784 0 0 64.1967 -23.0717 -205.85 - 6 311.184 774 2 0 64.549 -25.1371 -145.85 - 6 47.9687 773 2 0 64.6867 -25.25 -146.012 - 6 76.2264 1219 3 1 63.85 -23.6256 -114.699 -Number of digits in this event = 12 -Using G4ParticleGun ... -4.04594 LIN -proton +Number of tracker hits in this event: 25 + 6 135.12 805 11 1 -18.9789 5.9893 125.55 + 6 139.258 929 11 0 -18.9791 5.98924 124.15 + 6 96.3387 805 10 1 -18.9882 5.98444 95.55 + 6 99.6335 929 10 0 -18.9898 5.98425 94.15 + 6 129.766 805 9 1 -19.0224 5.97776 65.55 + 6 263.451 929 9 0 -19.0253 5.97623 64.15 + 6 119.135 804 8 1 -19.0811 5.94294 35.55 + 6 116.668 929 8 0 -19.0837 5.94085 34.15 + 6 103.084 804 7 1 -19.1339 5.8974 5.55 + 6 132.278 929 7 0 -19.1363 5.89457 4.15 + 6 107.304 804 6 1 -19.1922 5.83891 -24.45 + 6 98.9403 928 6 0 -19.1954 5.83489 -25.85 + 6 164.125 803 5 1 -19.2635 5.75386 -54.45 + 6 138.066 928 5 0 -19.2661 5.75176 -55.85 + 6 99.686 803 4 1 -19.3169 5.71102 -84.45 + 6 169.309 928 4 0 -19.3195 5.7105 -85.85 + 6 104.091 803 3 1 -19.365 5.70186 -114.45 + 6 91.9195 928 3 0 -19.3661 5.70156 -115.85 + 6 114.488 803 2 1 -19.3862 5.69405 -144.45 + 6 99.884 928 2 0 -19.3869 5.6931 -145.85 + 6 123.816 803 1 1 -19.4017 5.67581 -174.45 + 6 89.7857 928 1 0 -19.4017 5.67502 -175.85 + 6 131.542 803 0 1 -19.4003 5.6625 -204.45 + 6 104.455 928 0 0 -19.3997 5.66289 -205.85 + 6 112.864 928 9 0 -19.1066 5.85 63.8643 +Number of digits in this event: 11 +Using G4ParticleGun... +Particle energy: 9.34789 LIN +Particle: proton Event: 7 -Number of tracker hits in this event = 18 - 7 224.518 326 8 1 -114.785 76.6591 35.55 - 7 124.543 1283 8 0 -114.783 76.6585 34.15 - 7 121.829 326 7 1 -114.755 76.641 5.55 - 7 119.623 1282 7 0 -114.753 76.6411 4.15 - 7 123.896 327 6 1 -114.708 76.6397 -24.45 - 7 117.637 1282 6 0 -114.705 76.6399 -25.85 - 7 105.379 327 5 1 -114.646 76.6387 -54.45 - 7 138.323 1282 5 0 -114.642 76.6382 -55.85 - 7 100.756 327 4 1 -114.571 76.6317 -84.45 - 7 133.262 1282 4 0 -114.566 76.6295 -85.85 - 7 136.993 328 3 1 -114.472 76.5794 -114.45 - 7 93.9084 1282 3 0 -114.469 76.5784 -115.85 - 7 162.693 328 2 1 -114.408 76.5592 -144.45 - 7 136.747 1282 2 0 -114.406 76.5594 -145.85 - 7 116.557 328 1 1 -114.372 76.5618 -174.45 - 7 121.056 1282 1 0 -114.369 76.5627 -175.85 - 7 113.819 329 0 1 -114.302 76.5902 -204.45 - 7 105.481 1282 0 0 -114.299 76.592 -205.85 -Number of digits in this event = 11 -Using G4ParticleGun ... -2.54776 LIN -proton +Number of tracker hits in this event: 25 + 7 107.482 558 10 1 -68.383 -84.7631 95.55 + 7 195.217 476 10 0 -68.3833 -84.7638 94.15 + 7 92.7168 558 9 1 -68.3903 -84.7794 65.55 + 7 229.014 476 9 0 -68.3906 -84.7799 64.15 + 7 89.0419 558 8 1 -68.3961 -84.7891 35.55 + 7 169.084 476 8 0 -68.3971 -84.7897 34.15 + 7 178.715 558 7 1 -68.4172 -84.805 5.55 + 7 184.235 476 7 0 -68.4183 -84.8053 4.15 + 7 107.663 558 6 1 -68.4454 -84.813 -24.45 + 7 116.66 476 6 0 -68.445 -84.8128 -25.85 + 7 100.63 558 5 1 -68.4405 -84.8101 -54.45 + 7 102.063 476 5 0 -68.4409 -84.81 -55.85 + 7 119.93 557 4 1 -68.4518 -84.8083 -84.45 + 7 92.1406 476 4 0 -68.4512 -84.8074 -85.85 + 7 157.023 558 3 1 -68.4415 -84.789 -114.45 + 7 121.977 476 3 0 -68.441 -84.7883 -115.85 + 7 205.231 558 2 1 -68.4315 -84.7706 -144.45 + 7 182.388 476 2 0 -68.432 -84.7701 -145.85 + 7 116.945 558 1 1 -68.4431 -84.7567 -174.45 + 7 101.228 476 1 0 -68.4442 -84.757 -175.85 + 7 269.253 557 0 1 -68.4676 -84.7612 -204.45 + 7 180.926 476 0 0 -68.4683 -84.7611 -205.85 + 7 15.0519 435 2 0 -152.449 -92.9813 -146.25 + 7 102.35 436 2 0 -152.477 -92.95 -146.226 + 7 236.301 437 2 0 -152.477 -92.75 -146.195 +Number of digits in this event: 13 +Using G4ParticleGun... +Particle energy: 6.29643 LIN +Particle: proton Event: 8 -Number of tracker hits in this event = 20 - 8 127.892 585 9 1 -62.8539 115.021 65.55 - 8 141.216 1474 9 0 -62.8531 115.022 64.15 - 8 202.318 586 8 1 -62.8414 115.036 35.55 - 8 112.769 1474 8 0 -62.8392 115.038 34.15 - 8 105.809 586 7 1 -62.7854 115.085 5.55 - 8 143.791 1474 7 0 -62.7848 115.088 4.15 - 8 133.467 586 6 1 -62.7652 115.159 -24.45 - 8 104.372 1475 6 0 -62.7626 115.161 -25.85 - 8 116.912 586 5 1 -62.7175 115.203 -54.45 - 8 289.936 1475 5 0 -62.7153 115.205 -55.85 - 8 118.327 586 4 1 -62.6628 115.244 -84.45 - 8 150.03 1475 4 0 -62.6573 115.249 -85.85 - 8 98.619 587 3 1 -62.5408 115.342 -114.45 - 8 103.944 1475 3 0 -62.5319 115.346 -115.85 - 8 123.979 588 2 1 -62.3585 115.439 -144.45 - 8 126.402 1476 2 0 -62.3496 115.441 -145.85 - 8 94.0686 589 1 1 -62.1667 115.463 -174.45 - 8 119.865 1476 1 0 -62.1574 115.463 -175.85 - 8 159.145 590 0 1 -61.9644 115.448 -204.45 - 8 111.74 1476 0 0 -61.9558 115.446 -205.85 -Number of digits in this event = 11 -Using G4ParticleGun ... -5.14687 LIN -proton +Number of tracker hits in this event: 24 + 8 185.196 997 11 1 19.5951 -11.6906 125.55 + 8 140.059 841 11 0 19.5969 -11.6899 124.15 + 8 105.893 997 10 1 19.6355 -11.6746 95.55 + 8 121.225 841 10 0 19.6372 -11.6738 94.15 + 8 108.138 998 9 1 19.6697 -11.6544 65.55 + 8 188.698 841 9 0 19.6714 -11.6547 64.15 + 8 115.229 998 8 1 19.7098 -11.6642 35.55 + 8 135.212 841 8 0 19.7114 -11.6644 34.15 + 8 98.6146 998 7 1 19.7434 -11.6667 5.55 + 8 107.137 841 7 0 19.7438 -11.6669 4.15 + 8 120.334 998 6 1 19.7561 -11.6699 -24.45 + 8 190.482 841 6 0 19.7568 -11.6707 -25.85 + 8 127.852 998 5 1 19.7653 -11.6798 -54.45 + 8 132.032 841 5 0 19.7656 -11.6809 -55.85 + 8 117.293 998 4 1 19.7719 -11.7073 -84.45 + 8 107.636 841 4 0 19.7724 -11.7088 -85.85 + 8 100.412 998 3 1 19.7774 -11.7356 -114.45 + 8 130.109 841 3 0 19.7772 -11.7367 -115.85 + 8 99.1904 998 2 1 19.7689 -11.7627 -144.45 + 8 127.466 841 2 0 19.7691 -11.7654 -145.85 + 8 125.059 998 1 1 19.7767 -11.8202 -174.45 + 8 131.62 841 1 0 19.7784 -11.823 -175.85 + 8 124.527 998 0 1 19.8162 -11.8822 -204.45 + 8 129.706 840 0 0 19.8183 -11.8851 -205.85 +Number of digits in this event: 18 +Using G4ParticleGun... +Particle energy: 1.17842 LIN +Particle: proton Event: 9 -Number of tracker hits in this event = 23 - 9 111.413 660 10 1 -47.8581 -97.0348 95.55 - 9 106.588 415 10 0 -47.8581 -97.0338 94.15 - 9 110.639 660 9 1 -47.8547 -97.0123 65.55 - 9 117.411 415 9 0 -47.855 -97.0117 64.15 - 9 270.574 660 8 1 -47.8655 -97.005 35.55 - 9 116.636 415 8 0 -47.8658 -97.0045 34.15 - 9 276.304 660 7 1 -47.8713 -96.9977 5.55 - 9 207.967 415 7 0 -47.8724 -96.9966 4.15 - 9 230.849 660 6 1 -47.8951 -96.9717 -24.45 - 9 108.18 415 6 0 -47.8965 -96.9724 -25.85 - 9 151.242 660 5 1 -47.9221 -96.989 -54.45 - 9 159.974 415 5 0 -47.9245 -96.9886 -55.85 - 9 126.608 660 4 1 -47.9737 -96.981 -84.45 - 9 135.128 415 4 0 -47.9782 -96.9793 -85.85 - 9 188.666 659 3 1 -48.0673 -96.9477 -114.45 - 9 102.85 416 3 0 -48.0704 -96.9457 -115.85 - 9 117.551 659 2 1 -48.1335 -96.909 -144.45 - 9 101.941 416 2 0 -48.1369 -96.9083 -145.85 - 9 118.071 659 1 1 -48.1966 -96.8765 -174.45 - 9 125.018 416 1 0 -48.1988 -96.8745 -175.85 - 9 105.407 659 0 1 -48.2365 -96.8349 -204.45 - 9 102.271 416 0 0 -48.2391 -96.8335 -205.85 - 9 129.077 416 7 0 -47.8127 -96.8478 4.15 -Number of digits in this event = 12 -Using G4ParticleGun ... -9.41332 LIN -proton +Number of tracker hits in this event: 23 + 9 112.391 1564 8 1 133.039 -33.5704 35.55 + 9 129.916 732 8 0 133.034 -33.5677 34.15 + 9 118.752 1563 7 1 132.919 -33.5144 5.55 + 9 120.22 732 7 0 132.912 -33.5117 4.15 + 9 309.118 1563 6 1 132.766 -33.4433 -24.45 + 9 107.189 733 6 0 132.757 -33.4347 -25.85 + 9 143.166 1562 5 1 132.566 -33.2475 -54.45 + 9 166.037 734 5 0 132.555 -33.2363 -55.85 + 9 113.637 1560 4 1 132.306 -32.9874 -84.45 + 9 166.19 735 4 0 132.301 -32.9753 -85.85 + 9 142.107 1560 3 1 132.211 -32.7241 -114.45 + 9 139.497 736 3 0 132.202 -32.7086 -115.85 + 9 145.685 1559 2 1 132.014 -32.4056 -144.45 + 9 123.797 738 2 0 132.005 -32.3909 -145.85 + 9 191.501 1558 1 1 131.827 -32.0879 -174.45 + 9 150.456 739 1 0 131.821 -32.0709 -175.85 + 9 199.974 1557 0 1 131.665 -31.7479 -204.45 + 9 131.126 741 0 0 131.656 -31.7275 -205.85 + 9 26.2468 733 5 0 132.521 -33.25 -56.1663 + 9 168.246 585 5 0 123.456 -63.0105 -56.2492 + 9 109.596 584 5 0 123.447 -63.0501 -56.2027 + 9 109 595 5 0 76.246 -60.8758 -56.25 + 9 128.065 594 5 0 76.2714 -61.05 -56.1796 +Number of digits in this event: 17 +Using G4ParticleGun... +Particle energy: 2.91953 LIN +Particle: proton Event: 10 -Number of tracker hits in this event = 28 - 10 109.07 511 10 1 -77.7671 33.9216 95.55 - 10 149.974 1069 10 0 -77.7674 33.9221 94.15 - 10 106.553 511 9 1 -77.7753 33.9331 65.55 - 10 130.919 1069 9 0 -77.7762 33.933 64.15 - 10 113.433 511 8 1 -77.7933 33.934 35.55 - 10 97.3845 1069 8 0 -77.7947 33.9335 34.15 - 10 88.957 511 7 1 -77.8249 33.9246 5.55 - 10 167.555 1069 7 0 -77.8262 33.9239 4.15 - 10 125.728 510 6 1 -77.8521 33.9149 -24.45 - 10 108.887 1069 6 0 -77.8539 33.9142 -25.85 - 10 133.875 510 5 1 -77.8953 33.8996 -54.45 - 10 107.328 1069 5 0 -77.897 33.8999 -55.85 - 10 118.403 510 4 1 -77.9323 33.9015 -84.45 - 10 139.477 1069 4 0 -77.9344 33.9012 -85.85 - 10 153.834 510 3 1 -77.9749 33.8939 -114.45 - 10 234.57 1069 3 0 -77.9774 33.8938 -115.85 - 10 115.301 510 2 1 -78.0305 33.8917 -144.45 - 10 108.458 1069 2 0 -78.0338 33.8922 -145.85 - 10 99.1675 509 1 1 -78.1009 33.9022 -174.45 - 10 122.867 1069 1 0 -78.1033 33.9026 -175.85 - 10 120.346 509 0 1 -78.1515 33.9135 -204.45 - 10 127.853 1069 0 0 -78.1542 33.9149 -205.85 - 10 92.403 509 2 1 -78.05 33.8787 -144.479 - 10 231.353 508 2 1 -78.2503 33.7811 -144.682 - 10 5.00587 507 2 1 -78.45 33.6681 -144.835 - 10 15.9823 1065 2 0 -79.6553 33.0766 -145.85 - 10 149.32 1064 2 0 -79.6988 33.0495 -145.89 - 10 74.6228 1063 2 0 -79.8962 32.85 -146.144 -Number of digits in this event = 14 -Using G4ParticleGun ... -7.27045 LIN -proton +Number of tracker hits in this event: 31 + 10 98.691 1219 11 1 63.9813 4.89935 125.55 + 10 157.599 924 11 0 63.9801 4.90066 124.15 + 10 113.406 1219 10 1 63.9512 4.91937 95.55 + 10 124.731 924 10 0 63.9495 4.92101 94.15 + 10 115.61 1219 9 1 63.9105 4.95912 65.55 + 10 82.8145 924 9 0 63.9093 4.96303 64.15 + 10 109.804 1219 8 1 63.8791 5.0587 35.55 + 10 126.391 925 8 0 63.8774 5.06299 34.15 + 10 149.96 1218 7 1 63.8487 5.15023 5.55 + 10 97.5261 925 7 0 63.8457 5.1526 4.15 + 10 180.321 1218 6 1 63.7803 5.20562 -24.45 + 10 115.198 925 6 0 63.7709 5.20651 -25.85 + 10 125.669 1217 5 1 63.5845 5.21975 -54.45 + 10 104.555 925 5 0 63.5783 5.21934 -55.85 + 10 91.0129 1217 4 1 63.4551 5.20965 -84.45 + 10 102.716 925 4 0 63.4492 5.20845 -85.85 + 10 105.458 1216 3 1 63.3335 5.19144 -114.45 + 10 99.1972 925 3 0 63.3306 5.19939 -115.85 + 10 169.12 1216 2 1 63.2644 5.36575 -144.45 + 10 112.165 926 2 0 63.2608 5.37483 -145.85 + 10 105.35 1215 1 1 63.2093 5.56287 -174.45 + 10 163.133 927 1 0 63.2064 5.56891 -175.85 + 10 105.311 1215 0 1 63.1419 5.69094 -204.45 + 10 125.635 928 0 0 63.139 5.69492 -205.85 + 10 130.891 1217 6 1 63.65 5.12708 -24.5706 + 10 27.4219 1216 6 1 63.45 4.9444 -24.8024 + 10 132.835 922 6 0 62.9609 4.62813 -25.8505 + 10 28.0636 1110 5 1 42.1661 0.681177 -54.4502 + 10 118.439 1111 5 1 42.25 0.651343 -54.5058 + 10 94.782 882 5 0 45.0829 -3.47974 -55.85 + 10 255.458 881 5 0 45.168 -3.65 -55.9244 +Number of digits in this event: 13 +Using G4ParticleGun... +Particle energy: 4.46404 LIN +Particle: proton Event: 11 -Number of tracker hits in this event = 30 - 11 304.591 1425 10 1 105.328 36.4293 95.55 - 11 440.682 1081 10 0 105.328 36.4292 94.15 - 11 150.535 1425 9 1 105.338 36.4264 65.55 - 11 153.953 1081 9 0 105.338 36.4272 64.15 - 11 129.01 1425 8 1 105.337 36.4395 35.55 - 11 108.992 1081 8 0 105.338 36.4399 34.15 - 11 143.792 1426 7 1 105.353 36.4441 5.55 - 11 104.824 1081 7 0 105.354 36.4446 4.15 - 11 169.284 1426 6 1 105.373 36.4585 -24.45 - 11 94.6267 1082 6 0 105.373 36.4602 -25.85 - 11 115.066 1426 5 1 105.387 36.496 -54.45 - 11 151.538 1082 5 0 105.387 36.498 -55.85 - 11 128.134 1426 4 1 105.389 36.5383 -84.45 - 11 130.704 1082 4 0 105.389 36.54 -85.85 - 11 82.3969 1426 3 1 105.379 36.5734 -114.45 - 11 135.239 1082 3 0 105.378 36.5749 -115.85 - 11 167.597 1426 2 1 105.359 36.6047 -144.45 - 11 101.503 1082 2 0 105.358 36.6073 -145.85 - 11 275.899 1425 1 1 105.339 36.6589 -174.45 - 11 147.203 1083 1 0 105.338 36.6613 -175.85 - 11 127.124 1425 0 1 105.329 36.7073 -204.45 - 11 109.198 1083 0 0 105.328 36.7109 -205.85 - 11 109.945 1426 1 1 105.35 36.6789 -174.828 - 11 102.752 1425 7 1 105.349 36.436 5.55 - 11 32.1116 1424 7 1 105.15 36.3256 5.47725 - 11 218.594 1426 10 1 105.35 36.451 95.5093 - 11 76.2308 1424 10 1 105.15 37.3942 95.3303 - 11 184.788 1423 10 1 104.95 37.5501 95.3602 - 11 93.4471 1422 10 1 104.75 37.608 95.3701 - 11 97.9958 1421 10 1 104.55 37.5098 95.2403 -Number of digits in this event = 18 -Using G4ParticleGun ... -3.01857 LIN -proton +Number of tracker hits in this event: 27 + 11 123.403 760 10 1 -28.0421 -110.87 95.55 + 11 147.613 346 10 0 -28.0428 -110.87 94.15 + 11 111.051 759 9 1 -28.0563 -110.867 65.55 + 11 96.7126 346 9 0 -28.0559 -110.867 64.15 + 11 98.2142 760 8 1 -28.043 -110.869 35.55 + 11 118.426 346 8 0 -28.0413 -110.868 34.15 + 11 91.4977 760 7 1 -28.0008 -110.855 5.55 + 11 112.084 346 7 0 -28.0014 -110.849 4.15 + 11 151.414 760 6 1 -28.0159 -110.729 -24.45 + 11 102.787 347 6 0 -28.0163 -110.722 -25.85 + 11 102.729 760 5 1 -28.0282 -110.584 -54.45 + 11 168.505 347 5 0 -28.03 -110.579 -55.85 + 11 108.148 759 4 1 -28.0668 -110.466 -84.45 + 11 146.656 348 4 0 -28.0685 -110.46 -85.85 + 11 117.887 759 3 1 -28.1083 -110.346 -114.45 + 11 111.778 349 3 0 -28.1097 -110.34 -115.85 + 11 217.051 759 2 1 -28.139 -110.199 -144.45 + 11 132.674 349 2 0 -28.1397 -110.19 -145.85 + 11 111.359 759 1 1 -28.1475 -110.018 -174.45 + 11 103.082 350 1 0 -28.1493 -110.008 -175.85 + 11 139.961 759 0 1 -28.1876 -109.82 -204.45 + 11 107.724 351 0 0 -28.19 -109.812 -205.85 + 11 39.3512 760 2 1 -28.0499 -109.998 -144.785 + 11 33.0087 347 2 0 -27.5539 -110.683 -145.85 + 11 1.0885 346 2 0 -27.5308 -110.75 -145.852 + 11 37.9866 765 2 1 -27.0071 -112.691 -144.85 + 11 323.57 323 2 0 -29.8403 -115.353 -145.85 +Number of digits in this event: 10 +Using G4ParticleGun... +Particle energy: 2.34915 LIN +Particle: proton Event: 12 -Number of tracker hits in this event = 25 - 12 107.407 1271 9 1 74.284 -98.2667 65.55 - 12 113.817 409 9 0 74.2829 -98.2657 64.15 - 12 121.437 1271 8 1 74.2522 -98.2403 35.55 - 12 126.851 409 8 0 74.25 -98.2388 34.15 - 12 147.089 1270 7 1 74.2046 -98.2068 5.55 - 12 127.413 409 7 0 74.2012 -98.2031 4.15 - 12 123.64 1270 6 1 74.1396 -98.1297 -24.45 - 12 131.421 410 6 0 74.1373 -98.1225 -25.85 - 12 116.673 1270 5 1 74.0863 -97.9725 -54.45 - 12 119.885 410 5 0 74.0844 -97.9655 -55.85 - 12 194.17 1269 4 1 74.0361 -97.8172 -84.45 - 12 96.7757 411 4 0 74.0388 -97.8057 -85.85 - 12 85.4481 1270 3 1 74.089 -97.5765 -114.45 - 12 91.8162 412 3 0 74.0901 -97.5643 -115.85 - 12 142.191 1270 2 1 74.109 -97.3008 -144.45 - 12 119.419 414 2 0 74.1117 -97.2867 -145.85 - 12 179.436 1270 1 1 74.1673 -96.9991 -174.45 - 12 110.264 415 1 0 74.1699 -96.9884 -175.85 - 12 104.85 1270 0 1 74.2264 -96.7667 -204.45 - 12 131.361 416 0 0 74.2278 -96.7552 -205.85 - 12 34.0477 354 9 0 57.2068 -109.287 63.7501 - 12 74.1828 353 9 0 57.1384 -109.35 63.8463 - 12 56.0655 352 9 0 56.9921 -109.55 64.0032 - 12 150.976 1181 9 1 56.36 -109.945 65.15 - 12 28.4039 1180 9 1 56.2499 -110.17 65.4757 -Number of digits in this event = 12 -Using G4ParticleGun ... -6.39716 LIN -proton +Number of tracker hits in this event: 22 + 12 93.1713 452 10 1 -89.4872 -63.4516 95.55 + 12 106.081 582 10 0 -89.4885 -63.4512 94.15 + 12 104.838 452 9 1 -89.4934 -63.436 65.55 + 12 106.059 583 9 0 -89.4932 -63.4344 64.15 + 12 89.822 452 8 1 -89.4805 -63.4038 35.55 + 12 160.652 583 8 0 -89.4794 -63.4029 34.15 + 12 167.115 452 7 1 -89.4568 -63.3911 5.55 + 12 125.899 583 7 0 -89.4543 -63.3898 4.15 + 12 136.947 453 6 1 -89.4028 -63.3612 -24.45 + 12 104.628 583 6 0 -89.4021 -63.3612 -25.85 + 12 107.569 453 5 1 -89.3877 -63.3587 -54.45 + 12 123.409 583 5 0 -89.3868 -63.356 -55.85 + 12 115.765 453 4 1 -89.3779 -63.3061 -84.45 + 12 118.575 583 4 0 -89.3774 -63.3056 -85.85 + 12 112.991 453 3 1 -89.3646 -63.2906 -114.45 + 12 265.534 583 3 0 -89.3645 -63.288 -115.85 + 12 134.976 453 2 1 -89.3651 -63.2309 -144.45 + 12 122.277 584 2 0 -89.3659 -63.2301 -145.85 + 12 98.1454 453 1 1 -89.3812 -63.2172 -174.45 + 12 220.664 584 1 0 -89.379 -63.219 -175.85 + 12 121.328 453 0 1 -89.3313 -63.2663 -204.45 + 12 99.5636 583 0 0 -89.3269 -63.2685 -205.85 +Number of digits in this event: 12 +Using G4ParticleGun... +Particle energy: 5.14734 LIN +Particle: proton Event: 13 -Number of tracker hits in this event = 21 - 13 124.724 235 9 1 -133.074 15.1556 65.55 - 13 126.521 975 9 0 -133.074 15.1556 64.15 - 13 99.1568 235 8 1 -133.07 15.1515 35.55 - 13 274.921 975 8 0 -133.07 15.1513 34.15 - 13 140.386 235 7 1 -133.062 15.1465 5.55 - 13 109.328 975 7 0 -133.062 15.1469 4.15 - 13 155.179 235 6 1 -133.048 15.1527 -24.45 - 13 125.792 975 6 0 -133.047 15.153 -25.85 - 13 277.596 235 5 1 -133.023 15.1614 -54.45 - 13 109.945 975 5 0 -133.022 15.1617 -55.85 - 13 112.662 235 4 1 -133.013 15.1506 -84.45 - 13 110.699 975 4 0 -133.013 15.1494 -85.85 - 13 234.306 235 3 1 -133.023 15.1254 -114.45 - 13 108.728 975 3 0 -133.023 15.1242 -115.85 - 13 180.444 235 2 1 -133.009 15.0997 -144.45 - 13 107.729 975 2 0 -133.009 15.0984 -145.85 - 13 99.6064 235 1 1 -133.012 15.0696 -174.45 - 13 110.002 975 1 0 -133.012 15.0683 -175.85 - 13 90.5861 235 0 1 -133.012 15.04 -204.45 - 13 111.969 974 0 0 -133.011 15.0382 -205.85 - 13 13.9021 238 5 1 -132.55 15.1872 -54.6255 -Number of digits in this event = 10 -Using G4ParticleGun ... -8.39877 LIN -proton +Number of tracker hits in this event: 34 + 13 88.0263 1239 11 1 67.9818 38.498 125.55 + 13 213.197 1092 11 0 67.9824 38.4977 124.15 + 13 96.6293 1239 10 1 67.9939 38.4912 95.55 + 13 94.5789 1092 10 0 67.9935 38.49 94.15 + 13 163.176 1239 9 1 67.9837 38.4617 65.55 + 13 125.316 1092 9 0 67.9836 38.4598 64.15 + 13 131.172 1239 8 1 67.9815 38.4259 35.55 + 13 122.449 1091 8 0 67.982 38.4249 34.15 + 13 98.3013 1239 7 1 67.9906 38.4064 5.55 + 13 122.486 1091 7 0 67.9907 38.4076 4.15 + 13 110.202 1239 6 1 67.9916 38.4287 -24.45 + 13 191.983 1091 6 0 67.9929 38.4306 -25.85 + 13 109.396 1239 5 1 68.0169 38.4624 -54.45 + 13 120.819 1092 5 0 68.0177 38.4645 -55.85 + 13 111.892 1239 4 1 68.0345 38.5139 -84.45 + 13 148.753 1092 4 0 68.0341 38.5162 -85.85 + 13 117.409 1239 3 1 68.0191 38.5565 -114.45 + 13 119.797 1092 3 0 68.0177 38.5583 -115.85 + 13 95.211 1239 2 1 67.9841 38.5933 -144.45 + 13 112.977 1092 2 0 67.9831 38.5971 -145.85 + 13 103.435 1239 1 1 67.9661 38.6708 -174.45 + 13 120.204 1093 1 0 67.9646 38.6732 -175.85 + 13 88.4139 1239 0 1 67.9315 38.7179 -204.45 + 13 178.186 1093 0 0 67.9302 38.721 -205.85 + 13 144.709 1092 6 0 68.0402 38.45 -26.159 + 13 74.1954 1238 9 1 67.85 38.512 65.3378 + 13 134.317 1090 9 0 66.8856 38.2259 64.15 + 13 23.3289 1089 9 0 66.5455 38.05 63.7935 + 13 36.2243 464 9 0 -15.2999 -87.1927 63.75 + 13 115.835 463 9 0 -15.3694 -87.25 63.8627 + 13 24.336 821 9 1 -15.8066 -87.5646 65.15 + 13 478.373 820 9 1 -15.8502 -87.5813 65.2448 + 13 177.545 819 9 1 -16.0501 -87.687 65.5441 + 13 171.617 818 9 1 -16.25 -87.802 65.2785 +Number of digits in this event: 17 +Using G4ParticleGun... +Particle energy: 4.28201 LIN +Particle: proton Event: 14 -Number of tracker hits in this event = 16 - 14 117.982 217 7 1 -136.605 57.2801 5.55 - 14 101.835 1186 7 0 -136.606 57.2794 4.15 - 14 110.509 217 6 1 -136.616 57.2639 -24.45 - 14 100.439 1186 6 0 -136.616 57.2631 -25.85 - 14 120.543 217 5 1 -136.623 57.2464 -54.45 - 14 106.464 1185 5 0 -136.624 57.2457 -55.85 - 14 102.669 217 4 1 -136.632 57.2292 -84.45 - 14 104.295 1185 4 0 -136.634 57.2274 -85.85 - 14 105.714 217 3 1 -136.677 57.1905 -114.45 - 14 95.4513 1185 3 0 -136.679 57.1886 -115.85 - 14 117.507 217 2 1 -136.732 57.1554 -144.45 - 14 108.444 1185 2 0 -136.734 57.1534 -145.85 - 14 102.542 216 1 1 -136.783 57.1126 -174.45 - 14 86.7655 1185 1 0 -136.785 57.1106 -175.85 - 14 110.589 216 0 1 -136.832 57.0722 -204.45 - 14 107.732 1185 0 0 -136.834 57.0704 -205.85 -Number of digits in this event = 2 -Using G4ParticleGun ... -6.66236 LIN -proton +Number of tracker hits in this event: 22 + 14 134.855 1607 8 1 141.668 -12.5477 35.55 + 14 140.234 837 8 0 141.669 -12.549 34.15 + 14 106.408 1607 7 1 141.681 -12.5782 5.55 + 14 118.168 837 7 0 141.678 -12.5724 4.15 + 14 225.941 1607 6 1 141.621 -12.4554 -24.45 + 14 115.994 838 6 0 141.618 -12.4494 -25.85 + 14 171.112 1607 5 1 141.569 -12.328 -54.45 + 14 116.314 838 5 0 141.567 -12.3226 -55.85 + 14 158.215 1606 4 1 141.52 -12.2223 -84.45 + 14 145.716 839 4 0 141.52 -12.2188 -85.85 + 14 101.352 1606 3 1 141.533 -12.1454 -114.45 + 14 164.791 839 3 0 141.532 -12.1411 -115.85 + 14 392.413 1606 2 1 141.516 -12.047 -144.45 + 14 120.804 840 2 0 141.515 -12.0404 -145.85 + 14 102.779 1606 1 1 141.482 -11.9074 -174.45 + 14 156.047 840 1 0 141.481 -11.9005 -175.85 + 14 121.998 1606 0 1 141.456 -11.7639 -204.45 + 14 101.896 841 0 0 141.454 -11.7553 -205.85 + 14 4.80767 430 4 1 -93.95 -89.0193 -84.599 + 14 3.90527 1415 3 1 103.35 -164.072 -114.771 + 14 81.7292 1416 3 1 103.35 -164.084 -114.755 + 14 58.0735 1607 2 1 141.55 -12.3467 -144.756 +Number of digits in this event: 14 +Using G4ParticleGun... +Particle energy: 2.9703 LIN +Particle: proton Event: 15 -Number of tracker hits in this event = 90 - 15 255.356 861 11 1 -7.79036 67.637 125.55 - 15 185.507 1237 11 0 -7.7912 67.636 124.15 - 15 116.005 861 10 1 -7.81122 67.6156 95.55 - 15 99.8966 1237 10 0 -7.81233 67.6141 94.15 - 15 2140.55 861 9 1 -7.83501 67.5847 65.55 - 15 110.19 1237 9 0 -7.82273 67.6369 64.15 - 15 28.6581 1238 9 0 -7.81965 67.65 63.8239 - 15 117.263 862 8 1 -7.55661 68.7813 35.55 - 15 86.9704 1243 8 0 -7.54381 68.8371 34.15 - 15 21.3502 1244 8 0 -7.54086 68.85 33.8275 - 15 106.768 863 7 1 -7.28183 69.976 5.55 - 15 121.886 1249 7 0 -7.27063 70.031 4.15 - 15 131.99 865 6 1 -7.04873 71.1575 -24.45 - 15 111.542 1255 6 0 -7.03805 71.2124 -25.85 - 15 110.143 866 5 1 -6.81682 72.3318 -54.45 - 15 122.252 1261 5 0 -6.80522 72.3862 -55.85 - 15 120.632 867 4 1 -6.56741 73.4992 -84.45 - 15 107.564 1267 4 0 -6.55628 73.5543 -85.85 - 15 141.776 868 3 1 -6.3295 74.6774 -114.45 - 15 102.631 1273 3 0 -6.31876 74.7325 -115.85 - 15 180.645 869 2 1 -6.0968 75.8638 -144.45 - 15 134.91 1279 2 0 -6.08453 75.9199 -145.85 - 15 115.874 871 1 1 -5.83075 77.068 -174.45 - 15 124.41 1285 1 0 -5.81528 77.125 -175.85 - 15 94.9559 872 0 1 -5.49773 78.2899 -204.45 - 15 113.54 1291 0 0 -5.48236 78.3473 -205.85 - 15 68.9679 868 0 0 -22.7704 -6.25889 -206.25 - 15 88.311 869 0 0 -22.7492 -6.25 -206.159 - 15 120.321 788 0 1 -22.4182 -6.11739 -204.85 - 15 216.384 841 1 0 -43.7086 -11.6978 -176.25 - 15 82.6677 653 1 1 -49.2607 -7.35758 -174.85 - 15 88.2745 652 1 1 -49.45 -7.20581 -174.819 - 15 37.0658 651 1 1 -49.65 -7.06139 -174.826 - 15 6.73823 881 1 0 -54.0529 -3.66845 -175.85 - 15 89.1959 882 1 0 -54.0776 -3.64988 -175.855 - 15 78.7205 883 1 0 -54.358 -3.45 -175.917 - 15 111.535 884 1 0 -54.6639 -3.25 -175.977 - 15 87.1504 885 1 0 -54.9884 -3.05 -175.995 - 15 105.103 886 1 0 -55.2815 -2.84966 -175.999 - 15 95.0251 887 1 0 -55.467 -2.65 -176.034 - 15 54.0015 888 1 0 -55.7276 -2.44996 -176.15 - 15 169.371 1128 1 0 -123.387 45.7213 -176.25 - 15 243.443 1129 1 0 -123.638 45.85 -176.034 - 15 31.2658 276 1 1 -124.873 46.552 -174.85 - 15 86.0656 275 1 1 -124.95 46.5973 -174.775 - 15 85.6765 274 1 1 -125.15 46.704 -174.588 - 15 164.117 273 1 1 -125.529 46.6825 -174.45 - 15 311.008 272 1 1 -125.55 46.659 -174.469 - 15 6.28075 1149 1 0 -123.597 49.879 -175.85 - 15 427.339 296 1 1 -120.879 53.071 -174.85 - 15 120.539 297 1 1 -120.75 53.2407 -174.765 - 15 43.5078 873 0 0 -47.8546 -5.30592 -206.25 - 15 77.5158 874 0 0 -47.9425 -5.25 -206.118 - 15 66.7612 875 0 0 -48.0891 -5.05 -205.996 - 15 178.261 876 0 0 -48.1967 -4.85 -205.967 - 15 42.7882 1264 6 0 -5.43897 72.9276 -25.85 - 15 24.6872 876 6 1 -4.68523 72.4257 -24.85 - 15 4.11491 877 6 1 -4.65 72.4228 -24.8438 - 15 28.6103 1260 6 0 -4.15282 72.0695 -25.85 - 15 67.7958 1259 6 0 -4.1619 72.05 -25.8718 - 15 129.63 1235 11 0 -7.62732 67.2424 124.15 - 15 92.6839 900 10 1 0.173092 63.2254 95.55 - 15 21.4845 901 10 1 0.25 63.3978 95.2229 - 15 34.8149 1218 10 0 0.60412 63.8135 94.15 - 15 148.763 1219 10 0 0.633292 63.85 94.0581 - 15 107.867 941 9 1 8.37906 72.8319 65.55 - 15 127.514 1264 9 0 8.09595 72.9895 64.15 - 15 161.729 918 8 1 3.69859 75.6683 35.55 - 15 36.7926 1270 8 0 3.86726 74.1075 34.15 - 15 72.6087 1269 8 0 3.87608 74.05 34.0959 - 15 76.9412 1268 8 0 3.90871 73.85 33.91 - 15 1.33407 1267 8 0 3.94144 73.65 33.7534 - 15 55.8545 964 7 1 12.9556 27.2598 5.55 - 15 113.441 965 7 1 13.05 27.1981 5.41976 - 15 194.468 1033 7 0 14.0758 26.8278 4.15 - 15 185.949 1126 6 1 45.3324 11.047 -24.45 - 15 138.074 1125 6 1 45.2497 10.9513 -24.5516 - 15 68.9838 1124 6 1 45.05 10.9104 -24.5932 - 15 138.949 1123 6 1 44.85 10.9039 -24.5341 - 15 100.53 1122 6 1 44.65 11.087 -24.5275 - 15 324.27 1121 6 1 44.4499 11.171 -24.6341 - 15 36.1602 1127 6 1 45.4855 11.106 -24.45 - 15 34.228 966 6 0 43.2315 13.3842 -25.85 - 15 13.3396 967 6 0 43.125 13.45 -25.8605 - 15 114.886 1111 6 1 42.3936 15.8008 -24.85 - 15 166.088 1112 6 1 42.4501 16.0209 -24.6572 - 15 227.289 1113 6 1 42.65 16.0788 -24.606 - 15 186.634 332 3 1 -113.55 104.027 -114.568 - 15 10.5848 59 6 1 -168.15 128.559 -24.671 - 15 9.6919 60 6 1 -167.959 128.594 -24.45 -Number of digits in this event = 35 -Using G4ParticleGun ... -4.08714 LIN -proton +Number of tracker hits in this event: 25 + 15 101.812 976 11 1 15.2628 22.6179 125.55 + 15 129.464 1012 11 0 15.2621 22.6166 124.15 + 15 156.176 975 10 1 15.2473 22.5907 95.55 + 15 115.53 1012 10 0 15.2432 22.5907 94.15 + 15 133.481 975 9 1 15.1513 22.5866 65.55 + 15 137.521 1012 9 0 15.1466 22.5858 64.15 + 15 29.5719 975 8 1 15.0503 22.5736 35.55 + 15 87.4034 974 8 1 15.05 22.5736 35.4719 + 15 138.038 1012 8 0 15.0444 22.5724 34.15 + 15 438.723 974 7 1 14.9294 22.5459 5.55 + 15 130.203 1012 7 0 14.9253 22.5463 4.15 + 15 144.524 973 6 1 14.8443 22.5691 -24.45 + 15 113.332 1012 6 0 14.841 22.5721 -25.85 + 15 104.86 973 5 1 14.7789 22.6322 -54.45 + 15 114.581 1012 5 0 14.7752 22.6359 -55.85 + 15 125.633 973 4 1 14.6958 22.7101 -84.45 + 15 146.828 1013 4 0 14.6909 22.7117 -85.85 + 15 127.359 972 3 1 14.5888 22.7425 -114.45 + 15 118.84 1013 3 0 14.5827 22.746 -115.85 + 15 117.058 972 2 1 14.4618 22.8132 -144.45 + 15 208.776 1013 2 0 14.4571 22.8162 -145.85 + 15 139.976 971 1 1 14.3635 22.8681 -174.45 + 15 129.596 1014 1 0 14.3594 22.8702 -175.85 + 15 103.345 971 0 1 14.2787 22.911 -204.45 + 15 106.349 1014 0 0 14.2724 22.9112 -205.85 +Number of digits in this event: 15 +Using G4ParticleGun... +Particle energy: 9.18289 LIN +Particle: proton Event: 16 -Number of tracker hits in this event = 26 - 16 14.7823 537 10 1 -72.4957 -90.4332 95.2167 - 16 94.1071 448 10 0 -72.4957 -90.4331 94.15 - 16 96.599 537 9 1 -72.4939 -90.4378 65.55 - 16 107.271 448 9 0 -72.4956 -90.4383 64.15 - 16 172.127 537 8 1 -72.5307 -90.4458 35.55 - 16 116.902 448 8 0 -72.5317 -90.4463 34.15 - 16 129.235 537 7 1 -72.5475 -90.4496 5.55 - 16 151.74 448 7 0 -72.5473 -90.4503 4.15 - 16 95.2469 537 6 1 -72.5387 -90.4676 -24.45 - 16 135.916 448 6 0 -72.5369 -90.469 -25.85 - 16 240.547 537 5 1 -72.4927 -90.5028 -54.45 - 16 131.702 448 5 0 -72.4906 -90.5061 -55.85 - 16 98.4121 538 4 1 -72.4469 -90.5792 -84.45 - 16 130.398 447 4 0 -72.445 -90.5829 -85.85 - 16 109.732 538 3 1 -72.3915 -90.6561 -114.45 - 16 111.918 447 3 0 -72.3901 -90.6557 -115.85 - 16 120.396 538 2 1 -72.3593 -90.6481 -144.45 - 16 101.575 447 2 0 -72.3578 -90.6473 -145.85 - 16 124.028 538 1 1 -72.3254 -90.6284 -174.45 - 16 100.64 447 1 0 -72.3253 -90.6283 -175.85 - 16 176.379 538 0 1 -72.3268 -90.6287 -204.45 - 16 114.096 447 0 0 -72.3265 -90.626 -205.85 - 16 106.274 1293 4 0 18.8441 78.6855 -86.0816 - 16 2546.2 1467 7 0 -1.86949 113.641 3.92522 - 16 171.361 1017 5 0 -24.6431 23.5919 -55.9013 - 16 317.131 539 0 1 -72.25 -90.5065 -204.573 -Number of digits in this event = 17 -Using G4ParticleGun ... -8.6654 LIN -proton +Number of tracker hits in this event: 26 + 16 117.211 681 11 1 -43.7579 -65.7845 125.55 + 16 165.475 571 11 0 -43.7578 -65.785 124.15 + 16 122.209 681 10 1 -43.7565 -65.7946 95.55 + 16 113.812 571 10 0 -43.7559 -65.795 94.15 + 16 104.707 681 9 1 -43.7457 -65.8004 65.55 + 16 106.953 571 9 0 -43.7447 -65.8004 64.15 + 16 91.8662 681 8 1 -43.7256 -65.8021 35.55 + 16 98.3929 571 8 0 -43.7252 -65.8026 34.15 + 16 247.392 681 7 1 -43.7165 -65.8173 5.55 + 16 96.5183 571 7 0 -43.7169 -65.8177 4.15 + 16 149.361 681 6 1 -43.7232 -65.8257 -24.45 + 16 91.2279 571 6 0 -43.7235 -65.8254 -25.85 + 16 281.721 681 5 1 -43.7251 -65.8132 -54.45 + 16 209.576 571 5 0 -43.7243 -65.8128 -55.85 + 16 124.565 681 4 1 -43.71 -65.8039 -84.45 + 16 134.621 571 4 0 -43.7079 -65.8019 -85.85 + 16 133.012 681 3 1 -43.666 -65.7591 -114.45 + 16 170.983 571 3 0 -43.664 -65.7569 -115.85 + 16 166.89 682 2 1 -43.6213 -65.7118 -144.45 + 16 175.876 571 2 0 -43.6195 -65.7098 -145.85 + 16 104.435 682 1 1 -43.58 -65.6674 -174.45 + 16 134.8 571 1 0 -43.5782 -65.6657 -175.85 + 16 172.799 682 0 1 -43.5395 -65.6294 -204.45 + 16 107.106 572 0 0 -43.5383 -65.6273 -205.85 + 16 3.54413 354 2 0 73.4588 -109.304 -146.25 + 16 91.2728 682 5 1 -43.65 -65.8988 -54.6875 +Number of digits in this event: 17 +Using G4ParticleGun... +Particle energy: 1.81643 LIN +Particle: proton Event: 17 -Number of tracker hits in this event = 21 - 17 179.219 865 10 1 -7.0278 89.9218 95.55 - 17 102.048 1349 10 0 -7.02818 89.9231 94.15 - 17 103.534 865 9 1 -7.03981 89.9471 65.55 - 17 113.502 1349 9 0 -7.03924 89.9474 64.15 - 17 115.55 865 8 1 -7.02718 89.9533 35.55 - 17 116.966 1349 8 0 -7.02667 89.9534 34.15 - 17 114.094 865 7 1 -7.0165 89.959 5.55 - 17 139.56 1349 7 0 -7.01602 89.9596 4.15 - 17 121.17 865 6 1 -7.00844 89.9759 -24.45 - 17 160.42 1349 6 0 -7.00778 89.9774 -25.85 - 17 93.2903 865 5 1 -6.99538 90.0054 -54.45 - 17 247.923 1349 5 0 -6.99427 90.007 -55.85 - 17 118.297 865 4 1 -6.97349 90.0381 -84.45 - 17 112.308 1349 4 0 -6.97186 90.0397 -85.85 - 17 23.4121 1350 0 0 -6.87088 90.15 -206.177 - 17 49.7572 1437 0 0 -35.109 107.597 -206.25 - 17 134.446 1438 0 0 -35.1428 107.75 -206.189 - 17 307.74 1439 0 0 -35.0268 107.951 -205.943 - 17 48.7753 1440 0 0 -35.1492 108.15 -205.974 - 17 43.0333 1109 7 0 -71.7997 41.9216 3.75003 - 17 103.267 994 7 0 -64.2002 18.893 3.75 -Number of digits in this event = 8 -Using G4ParticleGun ... -1.98442 LIN -proton +Number of tracker hits in this event: 27 + 17 183.034 1086 11 1 37.3413 -25.1013 125.55 + 17 214.367 774 11 0 37.3429 -25.0985 124.15 + 17 182.83 1086 10 1 37.3785 -25.0471 95.55 + 17 130.202 775 10 0 37.378 -25.0457 94.15 + 17 145.185 1086 9 1 37.3834 -25.0165 65.55 + 17 104.779 775 9 0 37.3857 -25.017 64.15 + 17 125.729 1086 8 1 37.4334 -25.0339 35.55 + 17 152.597 775 8 0 37.4384 -25.0375 34.15 + 17 127.28 1087 7 1 37.5404 -25.1256 5.55 + 17 124.319 774 7 0 37.5423 -25.1299 4.15 + 17 414.802 1087 6 1 37.5863 -25.2159 -24.45 + 17 111.98 774 6 0 37.5942 -25.2158 -25.85 + 17 121.2 1088 5 1 37.7559 -25.218 -54.45 + 17 97.0022 774 5 0 37.7671 -25.2214 -55.85 + 17 97.614 1089 4 1 38.0056 -25.2865 -84.45 + 17 117.738 773 4 0 38.0142 -25.2922 -85.85 + 17 134.871 1090 3 1 38.1806 -25.3918 -114.45 + 17 115.863 773 3 0 38.1881 -25.3986 -115.85 + 17 137.363 1091 2 1 38.3386 -25.5343 -144.45 + 17 86.3983 772 2 0 38.3455 -25.5396 -145.85 + 17 127.322 1092 1 1 38.4807 -25.637 -174.45 + 17 100.669 772 1 0 38.4837 -25.6408 -175.85 + 17 127.507 1092 0 1 38.5171 -25.714 -204.45 + 17 147.625 771 0 0 38.5125 -25.7187 -205.85 + 17 16.7477 1088 6 1 37.6828 -25.2296 -24.45 + 17 11.1153 1086 6 1 37.45 -25.05 -24.7703 + 17 271.966 1085 11 1 37.25 -25.1533 125.341 +Number of digits in this event: 18 +Using G4ParticleGun... +Particle energy: 8.45169 LIN +Particle: proton Event: 18 -Number of tracker hits in this event = 22 - 18 97.1918 735 10 1 -32.9643 96.0317 95.55 - 18 450.273 1379 10 0 -32.9661 96.0321 94.15 - 18 167.894 735 9 1 -32.9955 96.0186 65.55 - 18 117.157 1379 9 0 -32.9841 96.0056 64.15 - 18 103.085 736 8 1 -32.7432 95.7534 35.55 - 18 130.855 1377 8 0 -32.7344 95.7384 34.15 - 18 104.568 737 7 1 -32.5676 95.4324 5.55 - 18 138.867 1376 7 0 -32.5591 95.4155 4.15 - 18 122.782 738 6 1 -32.3796 95.0721 -24.45 - 18 110.144 1374 6 0 -32.3706 95.0565 -25.85 - 18 128.773 739 5 1 -32.1856 94.731 -54.45 - 18 142.297 1372 5 0 -32.1769 94.7135 -55.85 - 18 90.5654 740 4 1 -31.9974 94.3462 -84.45 - 18 109.119 1370 4 0 -31.9886 94.3264 -85.85 - 18 181.54 741 3 1 -31.8119 93.9149 -114.45 - 18 113.549 1368 3 0 -31.8039 93.8949 -115.85 - 18 104.85 742 2 1 -31.6154 93.4966 -144.45 - 18 106.095 1366 2 0 -31.6042 93.4767 -145.85 - 18 112.452 743 1 1 -31.3663 93.0829 -174.45 - 18 90.2042 1364 1 0 -31.3557 93.0644 -175.85 - 18 117.394 744 0 1 -31.146 92.6796 -204.45 - 18 98.6204 1362 0 0 -31.1355 92.6609 -205.85 -Number of digits in this event = 9 -Using G4ParticleGun ... -9.16194 LIN -proton +Number of tracker hits in this event: 30 + 18 128.263 1100 11 1 40.1314 16.438 125.55 + 18 124.456 981 11 0 40.1315 16.4363 124.15 + 18 136.919 1100 10 1 40.1304 16.4016 95.55 + 18 109.592 981 10 0 40.1307 16.4004 94.15 + 18 97.4382 1100 9 1 40.1406 16.3783 65.55 + 18 107.657 981 9 0 40.1413 16.3774 64.15 + 18 78.705 1100 8 1 40.1559 16.3578 35.55 + 18 137.173 981 8 0 40.157 16.3567 34.15 + 18 113.578 1100 7 1 40.1803 16.3342 5.55 + 18 129.448 981 7 0 40.1817 16.3333 4.15 + 18 105.165 1100 6 1 40.2085 16.3162 -24.45 + 18 103.132 981 6 0 40.2089 16.3156 -25.85 + 18 116.303 1100 5 1 40.2167 16.3047 -54.45 + 18 104.446 981 5 0 40.2172 16.3041 -55.85 + 18 110.35 1100 4 1 40.2326 16.2897 -84.45 + 18 101.579 981 4 0 40.2326 16.2895 -85.85 + 18 138.504 1100 3 1 40.2298 16.2869 -114.45 + 18 178.043 981 3 0 40.2304 16.2875 -115.85 + 18 109.503 1100 2 1 40.2411 16.2988 -144.45 + 18 136.104 981 2 0 40.2421 16.2996 -145.85 + 18 102.061 1101 1 1 40.2581 16.3167 -174.45 + 18 179.651 981 1 0 40.2587 16.3169 -175.85 + 18 125.691 1101 0 1 40.274 16.3189 -204.45 + 18 103.207 981 0 0 40.2752 16.3189 -205.85 + 18 191.809 980 3 0 40.1708 16.2497 -116.186 + 18 144.834 975 10 0 40.6774 15.1934 94.15 + 18 1.00305 1097 10 1 39.4521 17.0035 95.15 + 18 9.09281 1096 10 1 39.45 17.006 95.1512 + 18 6.35044 1043 10 0 37.528 28.6531 94.15 + 18 179.095 1084 10 1 36.9303 38.4062 95.15 +Number of digits in this event: 17 +Using G4ParticleGun... +Particle energy: 6.96864 LIN +Particle: proton Event: 19 -Number of tracker hits in this event = 152 - 19 134.959 811 11 1 -17.6977 58.6846 125.55 - 19 210.418 1193 11 0 -17.6977 58.6843 124.15 - 19 116.634 811 10 1 -17.7005 58.6801 95.55 - 19 252.882 1193 10 0 -17.7009 58.6804 94.15 - 19 378.978 811 9 1 -17.7115 58.6866 65.55 - 19 129.771 1193 9 0 -17.7111 58.6869 64.15 - 19 134.442 811 8 1 -17.7064 58.6928 35.55 - 19 143.489 1193 8 0 -17.7064 58.6927 34.15 - 19 175.66 811 7 1 -17.7038 58.6896 5.55 - 19 114.454 1193 7 0 -17.7046 58.6899 4.15 - 19 109.198 811 6 1 -17.7175 58.6955 -24.45 - 19 116.867 1193 6 0 -17.718 58.6959 -25.85 - 19 95.8346 811 5 1 -17.7287 58.7028 -54.45 - 19 117.885 1193 5 0 -17.7287 58.7038 -55.85 - 19 212.17 811 4 1 -17.7289 58.7239 -84.45 - 19 99.6568 1193 4 0 -17.7289 58.7245 -85.85 - 19 14238 811 3 1 -17.7303 58.7374 -114.45 - 19 166.338 1722 7 1 164.575 -140.517 5.55 - 19 13.3396 201 7 0 164.441 -139.76 4.14974 - 19 164.335 202 7 0 164.426 -139.75 4.1074 - 19 153.825 41 7 0 129.952 -171.915 3.75 - 19 29.2822 40 7 0 129.937 -171.95 3.88278 - 19 9795 1193 3 0 -17.3037 58.7154 -115.85 - 19 4045.74 810 3 1 -17.85 58.662 -114.82 - 19 5248.33 809 3 1 -18.05 58.5352 -114.792 - 19 5575.68 808 3 1 -18.25 58.4032 -114.766 - 19 5156.09 1187 3 0 -17.9276 57.5546 -115.85 - 19 13480.5 1186 3 0 -17.9448 57.45 -115.939 - 19 20748.1 1185 3 0 -17.977 57.25 -116.109 - 19 228.567 1201 3 0 -14.5045 60.4278 -115.85 - 19 2007.94 1202 3 0 -14.4621 60.45 -115.863 - 19 2028.35 1203 3 0 -14.0807 60.65 -115.983 - 19 2051.88 1204 3 0 -13.7076 60.85 -116.091 - 19 941.74 1205 3 0 -13.3285 61.05 -116.202 - 19 3255.82 1320 2 1 84.1299 109.719 -144.45 - 19 4643.14 1321 2 1 84.25 109.813 -144.526 - 19 148.722 1182 3 0 -19.0584 56.4588 -115.85 - 19 4054.69 1181 3 0 -19.0635 56.45 -115.854 - 19 1794.35 1180 3 0 -19.1709 56.25 -115.945 - 19 1705.63 807 3 1 -18.45 58.8099 -114.75 - 19 1850.88 806 3 1 -18.65 58.8254 -114.724 - 19 2418.2 805 3 1 -18.85 58.8341 -114.705 - 19 4372.36 804 3 1 -19.05 58.8433 -114.689 - 19 555.27 803 3 1 -19.25 58.8564 -114.651 - 19 6761.24 1194 3 0 -18.3309 58.8868 -115.85 - 19 2568.69 1184 3 0 -18.9081 57.05 -116.065 - 19 616.624 1183 3 0 -19.0446 56.85 -116.215 - 19 961.585 812 3 1 -17.65 58.5119 -114.545 - 19 584.513 1081 4 0 -14.1281 36.2728 -86.25 - 19 6137.78 1080 4 0 -14.1246 36.25 -86.2209 - 19 5811.25 1079 4 0 -14.0969 36.05 -85.9724 - 19 809.833 830 4 1 -13.88 35.0221 -84.85 - 19 188.607 856 2 1 -8.80531 38.2246 -144.45 - 19 40.4549 1086 2 0 -8.42039 37.3089 -145.85 - 19 335.09 1085 2 0 -8.39544 37.25 -145.941 - 19 1.11455 1084 2 0 -8.30601 37.05 -146.249 - 19 96.0082 900 1 1 0.05 18.4457 -174.71 - 19 49.1581 988 1 0 0.362205 17.7205 -175.85 - 19 143.15 987 1 0 0.39255 17.65 -175.961 - 19 46.0148 940 0 1 8.21919 -0.368088 -204.45 - 19 148.636 941 0 1 8.25 -0.43821 -204.553 - 19 102.21 893 0 0 8.63216 -1.31349 -205.85 - 19 105.007 892 0 0 8.69158 -1.45 -206.052 - 19 143.61 651 0 0 46.9604 -49.85 -206.168 - 19 127.787 826 2 1 -14.8309 58.7466 -144.45 - 19 101.325 1193 2 0 -14.6939 58.7518 -145.85 - 19 175.034 840 1 1 -11.9295 58.8496 -174.45 - 19 488.809 1193 1 0 -11.7927 58.8474 -175.85 - 19 11.6572 854 0 1 -9.05413 58.8043 -204.45 - 19 105.605 855 0 1 -9.05 58.8039 -204.491 - 19 102.321 1193 0 0 -8.91475 58.7903 -205.85 - 19 237.432 1194 1 0 -11.182 58.85 -176.197 - 19 56.1163 841 1 1 -11.85 58.8671 -174.543 - 19 74.7794 842 1 1 -11.6496 58.8724 -174.555 - 19 205.043 843 1 1 -11.45 58.9484 -174.638 - 19 182.603 844 1 1 -11.2499 59.2259 -174.782 - 19 71.8355 722 2 1 -35.5413 64.339 -144.45 - 19 53.5353 721 2 1 -35.65 64.3745 -144.639 - 19 74.5731 1222 2 0 -36.3479 64.6058 -145.85 - 19 51.9927 1223 2 0 -36.4811 64.65 -146.081 - 19 86.0142 635 1 1 -52.8691 70.0607 -174.45 - 19 56.9535 634 1 1 -53.05 70.1194 -174.76 - 19 137.043 1251 1 0 -53.6909 70.3243 -175.85 - 19 71.9613 547 0 1 -70.5567 75.6908 -204.45 - 19 85.8324 546 0 1 -70.65 75.7233 -204.61 - 19 148.59 1279 0 0 -71.3749 75.976 -205.85 - 19 6.79495 1280 0 0 -71.5872 76.05 -206.213 - 19 113.33 1197 3 0 -19.3346 59.6218 -115.85 - 19 643.42 1198 3 0 -19.3858 59.65 -115.882 - 19 433.597 1199 3 0 -19.7493 59.85 -116.112 - 19 189.314 578 2 1 -64.3554 84.0641 -144.45 - 19 428.682 577 2 1 -64.45 84.1161 -144.509 - 19 398.393 576 2 1 -64.65 84.2269 -144.633 - 19 406.073 575 2 1 -64.85 84.3381 -144.758 - 19 627.296 1326 2 0 -66.5834 85.3091 -145.85 - 19 761.269 1327 2 0 -66.8386 85.45 -146.01 - 19 46.3006 1328 2 0 -67.202 85.65 -146.238 - 19 6.75346 336 1 1 -112.945 110.913 -174.45 - 19 445.9 335 1 1 -112.95 110.916 -174.453 - 19 412.894 334 1 1 -113.15 111.036 -174.579 - 19 394.727 333 1 1 -113.35 111.156 -174.704 - 19 86.0742 332 1 1 -113.55 111.276 -174.826 - 19 304.211 1460 1 0 -115.209 112.301 -175.85 - 19 745.147 1461 1 0 -115.289 112.35 -175.899 - 19 692.462 1462 1 0 -115.614 112.55 -176.099 - 19 61.072 90 0 1 -162.14 141.755 -204.45 - 19 794.219 89 0 1 -162.15 141.762 -204.457 - 19 502.432 88 0 1 -162.35 141.894 -204.589 - 19 515.796 87 0 1 -162.55 142.026 -204.719 - 19 4.33196 86 0 1 -162.75 142.161 -204.849 - 19 675.152 1615 0 0 -164.28 143.206 -205.85 - 19 809.585 1616 0 0 -164.491 143.35 -205.988 - 19 316.174 1617 0 0 -164.781 143.55 -206.181 - 19 167.166 1492 4 0 -50.1481 118.659 -86.25 - 19 375.65 1493 4 0 -50.1973 118.75 -86.2064 - 19 298.384 1494 4 0 -50.3063 118.95 -86.1104 - 19 384.229 1495 4 0 -50.4142 119.15 -86.0142 - 19 269.449 1496 4 0 -50.5215 119.35 -85.9186 - 19 466.688 641 4 1 -51.7343 121.609 -84.85 - 19 420.109 640 4 1 -51.85 121.732 -84.7875 - 19 421.443 639 4 1 -52.05 121.934 -84.6863 - 19 404.816 638 4 1 -52.25 122.137 -84.5832 - 19 118.742 637 4 1 -52.45 122.341 -84.4816 - 19 96.2153 822 2 1 -15.502 57.898 -144.45 - 19 44.029 1189 2 0 -15.3986 57.854 -145.85 - 19 86.7858 1188 2 0 -15.3893 57.85 -145.975 - 19 123.242 833 1 1 -13.2884 56.9591 -174.45 - 19 107.838 1184 1 0 -13.1993 56.9293 -175.85 - 19 105.746 843 0 1 -11.371 56.3265 -204.45 - 19 127.986 1181 0 0 -11.2596 56.3112 -205.85 - 19 2.20858 676 0 1 -44.85 -28.36 -204.608 - 19 38.7462 1009 4 0 60.5412 21.8643 -86.25 - 19 110.547 1008 4 0 60.5854 21.85 -86.2063 - 19 62.3022 384 8 0 32.0634 -103.15 33.8507 - 19 127.568 383 8 0 32.0466 -103.35 34.0456 - 19 33.9109 1422 3 0 32.5609 104.748 -116.053 - 19 62.1429 420 8 1 -96.1288 54.4629 35.15 - 19 67.4638 419 8 1 -96.15 54.4595 35.5195 - 19 547.724 1192 3 0 -16.7679 58.6322 -115.85 - 19 139.33 950 2 1 10.1018 55.6626 -144.45 - 19 154.497 951 2 1 10.25 55.6471 -144.608 - 19 20.8789 952 2 1 10.45 55.6259 -144.82 - 19 310.482 1177 2 0 11.4204 55.5275 -145.85 - 19 22.0777 1091 1 1 38.4241 52.7256 -174.45 - 19 367.47 1092 1 1 38.45 52.7227 -174.478 - 19 146.997 1093 1 1 38.65 52.7007 -174.69 - 19 299.123 1162 1 0 39.7383 52.5822 -175.85 - 19 21.4425 1232 0 1 66.6214 49.7899 -204.45 - 19 193.824 1233 0 1 66.65 49.7873 -204.481 - 19 108.942 1234 0 1 66.85 49.7685 -204.7 - 19 296.779 1148 0 0 67.8957 49.6743 -205.85 - 19 116.247 1147 0 0 68.1656 49.65 -206.147 -Number of digits in this event = 101 -Using G4ParticleGun ... -6.7079 LIN -proton +Number of tracker hits in this event: 22 + 19 119.61 1434 10 1 106.994 31.726 95.55 + 19 101.378 1058 10 0 106.99 31.7277 94.15 + 19 147.334 1433 9 1 106.907 31.7636 65.55 + 19 113.772 1058 9 0 106.901 31.7657 64.15 + 19 110.848 1433 8 1 106.788 31.8089 35.55 + 19 214.072 1058 8 0 106.784 31.811 34.15 + 19 113.916 1432 7 1 106.691 31.8525 5.55 + 19 116.933 1059 7 0 106.687 31.855 4.15 + 19 132.802 1432 6 1 106.599 31.9058 -24.45 + 19 133.298 1059 6 0 106.594 31.9088 -25.85 + 19 109.177 1431 5 1 106.496 31.9715 -54.45 + 19 138.994 1059 5 0 106.491 31.974 -55.85 + 19 152.799 1431 4 1 106.396 32.0244 -84.45 + 19 106.654 1059 4 0 106.392 32.0277 -85.85 + 19 120.495 1430 3 1 106.296 32.0933 -114.45 + 19 155.779 1060 3 0 106.291 32.0966 -115.85 + 19 100.589 1430 2 1 106.185 32.164 -144.45 + 19 95.4236 1060 2 0 106.18 32.1674 -145.85 + 19 121.741 1429 1 1 106.073 32.2331 -174.45 + 19 92.7204 1060 1 0 106.068 32.2359 -175.85 + 19 141.316 1429 0 1 105.967 32.291 -204.45 + 19 133.825 1061 0 0 105.962 32.294 -205.85 +Number of digits in this event: 12 +Using G4ParticleGun... +Particle energy: 8.57703 LIN +Particle: proton Event: 20 -Number of tracker hits in this event = 32 - 20 140.054 771 11 1 -25.7342 4.87308 125.55 - 20 137.672 924 11 0 -25.7334 4.87336 124.15 - 20 165.529 771 10 1 -25.7112 4.87466 95.55 - 20 205.669 924 10 0 -25.7101 4.8745 94.15 - 20 179.546 771 9 1 -25.6882 4.87401 65.55 - 20 119.473 924 9 0 -25.6873 4.87342 64.15 - 20 112.725 771 8 1 -25.6676 4.85889 35.55 - 20 112.275 924 8 0 -25.6667 4.85851 34.15 - 20 122.837 772 7 1 -25.6458 4.84735 5.55 - 20 169.155 923 7 0 -25.6416 4.84592 4.15 - 20 140.671 772 6 1 -25.549 4.81609 -24.45 - 20 106.018 923 6 0 -25.5443 4.81563 -25.85 - 20 106.077 773 5 1 -25.4481 4.8053 -54.45 - 20 166.606 923 5 0 -25.4432 4.80639 -55.85 - 20 133.587 773 4 1 -25.3436 4.82821 -84.45 - 20 125.907 923 4 0 -25.3384 4.83028 -85.85 - 20 102.197 774 3 1 -25.2363 4.87075 -114.45 - 20 185.941 924 3 0 -25.2306 4.87212 -115.85 - 20 108.756 774 2 1 -25.1142 4.89745 -144.45 - 20 114.985 924 2 0 -25.1086 4.89862 -145.85 - 20 158.665 775 1 1 -24.9945 4.92181 -174.45 - 20 120.542 924 1 0 -24.989 4.92279 -175.85 - 20 116.087 775 0 1 -24.8731 4.92999 -204.45 - 20 113.139 924 0 0 -24.8683 4.93047 -205.85 - 20 398.784 772 8 0 49.3616 -25.4916 33.75 - 20 110.9 771 8 0 50.1006 -25.6501 34.0132 - 20 136.73 773 8 0 50.5245 -25.45 34.1413 - 20 79.4366 774 8 0 50.6979 -25.25 34.0554 - 20 51.3395 1154 8 1 50.8963 -24.972 35.15 - 20 48.4144 1153 8 1 50.85 -24.9012 35.1855 - 20 121.247 775 8 0 50.7272 -25.0063 34.1499 - 20 160.219 772 11 1 -25.65 4.85637 125.448 -Number of digits in this event = 19 -Using G4ParticleGun ... -6.6014 LIN -proton +Number of tracker hits in this event: 22 + 20 98.2644 1409 10 1 102.103 -13.7713 95.55 + 20 127.704 831 10 0 102.104 -13.7705 94.15 + 20 118.516 1409 9 1 102.125 -13.7508 65.55 + 20 171.219 831 9 0 102.126 -13.7501 64.15 + 20 140.713 1410 8 1 102.164 -13.7338 35.55 + 20 116.626 831 8 0 102.166 -13.7329 34.15 + 20 228.325 1410 7 1 102.207 -13.712 5.55 + 20 179.343 831 7 0 102.209 -13.7106 4.15 + 20 100.147 1410 6 1 102.263 -13.6808 -24.45 + 20 111.637 831 6 0 102.266 -13.6801 -25.85 + 20 275.556 1410 5 1 102.333 -13.6647 -54.45 + 20 123.509 831 5 0 102.336 -13.6635 -55.85 + 20 146.111 1411 4 1 102.398 -13.6397 -84.45 + 20 104.053 832 4 0 102.401 -13.6384 -85.85 + 20 96.3559 1411 3 1 102.459 -13.6114 -114.45 + 20 171.07 832 3 0 102.462 -13.6103 -115.85 + 20 99.0568 1411 2 1 102.522 -13.5899 -144.45 + 20 129.787 832 2 0 102.525 -13.5896 -145.85 + 20 114.142 1412 1 1 102.583 -13.5813 -174.45 + 20 105.2 832 1 0 102.585 -13.5812 -175.85 + 20 116.51 1412 0 1 102.64 -13.5757 -204.45 + 20 111.425 832 0 0 102.644 -13.576 -205.85 +Number of digits in this event: 11 +Using G4ParticleGun... +Particle energy: 6.66303 LIN +Particle: proton Event: 21 -Number of tracker hits in this event = 18 - 21 112.9 624 8 1 -55.1741 -133.028 35.55 - 21 105.22 235 8 0 -55.1735 -133.028 34.15 - 21 103.302 624 7 1 -55.1637 -133.023 5.55 - 21 93.4337 235 7 0 -55.1637 -133.024 4.15 - 21 103.168 624 6 1 -55.164 -133.036 -24.45 - 21 116.981 235 6 0 -55.1631 -133.038 -25.85 - 21 121.88 624 5 1 -55.1473 -133.075 -54.45 - 21 100.768 235 5 0 -55.1471 -133.076 -55.85 - 21 129.908 624 4 1 -55.1432 -133.099 -84.45 - 21 119.229 235 4 0 -55.1433 -133.1 -85.85 - 21 100.037 624 3 1 -55.1466 -133.106 -114.45 - 21 104.677 235 3 0 -55.1462 -133.105 -115.85 - 21 123.12 624 2 1 -55.1426 -133.09 -144.45 - 21 109.398 235 2 0 -55.1361 -133.088 -145.85 - 21 158.674 625 1 1 -55.0036 -133.054 -174.45 - 21 220.622 235 1 0 -54.9958 -133.053 -175.85 - 21 121.719 626 0 1 -54.8327 -133.03 -204.45 - 21 113.416 235 0 0 -54.8253 -133.03 -205.85 -Number of digits in this event = 7 -Using G4ParticleGun ... -9.24987 LIN -proton +Number of tracker hits in this event: 239 + 21 220.11 482 11 0 3.03553 -83.5042 124.15 + 21 103.57 914 10 1 3.03478 -83.5077 95.55 + 21 122.142 482 10 0 3.03339 -83.5091 94.15 + 21 129.032 914 9 1 3.00469 -83.5359 65.55 + 21 96.3277 482 9 0 3.00258 -83.5365 64.15 + 21 131.355 914 8 1 2.95738 -83.5484 35.55 + 21 125.79 482 8 0 2.95558 -83.5493 34.15 + 21 115.069 914 7 1 2.92425 -83.5644 5.55 + 21 239.442 482 7 0 2.9177 -83.5657 4.15 + 21 108.503 913 6 1 2.78095 -83.5868 -24.45 + 21 120.545 482 6 0 2.77425 -83.5874 -25.85 + 21 303.909 912 5 1 2.63504 -83.5954 -54.45 + 21 116.937 482 5 0 2.62837 -83.5965 -55.85 + 21 155.72 912 4 1 2.49788 -83.6163 -84.45 + 21 166.877 482 4 0 2.49017 -83.6181 -85.85 + 21 130.713 911 3 1 2.33378 -83.652 -114.45 + 21 208.924 481 3 0 2.32531 -83.6532 -115.85 + 21 130.061 910 2 1 2.15162 -83.6777 -144.45 + 21 116.533 481 2 0 2.14399 -83.6788 -145.85 + 21 107.29 980 2 1 16.241 4.15723 -144.45 + 21 7063.78 909 1 1 1.9757 -83.6417 -174.45 + 21 4396.93 483 1 0 1.87609 -83.2765 -175.85 + 21 4813.65 908 1 1 1.85 -83.5129 -174.532 + 21 1629.71 486 1 0 1.26186 -82.749 -175.85 + 21 3291.9 487 1 0 1.18632 -82.65 -176.021 + 21 2993.39 482 1 0 1.28984 -83.4888 -175.85 + 21 134.866 453 2 0 26.9359 -89.4488 -146.25 + 21 107.663 452 2 0 26.9412 -89.45 -146.244 + 21 37.9198 454 2 0 27.1418 -89.25 -146.14 + 21 1227.54 910 1 1 2.06039 -83.4952 -174.45 + 21 206.897 489 1 0 2.60863 -82.1531 -175.85 + 21 397.132 490 1 0 2.65113 -82.05 -175.958 + 21 144.853 491 1 0 2.73552 -81.85 -176.167 + 21 328.481 974 0 1 14.9682 -54.1408 -204.45 + 21 421.602 975 0 1 15.05 -53.9698 -204.631 + 21 364.098 636 0 0 15.5894 -52.831 -205.85 + 21 425.225 637 0 0 15.6751 -52.65 -206.044 + 21 59.483 1699 1 1 159.95 169.483 -174.665 + 21 20.4203 939 1 0 -59.8394 8.02028 -176.25 + 21 115.367 940 1 0 -59.8765 8.05008 -176.14 + 21 112.154 599 1 1 -60.1914 8.58975 -174.85 + 21 315.47 1111 6 0 120.543 42.3724 -26.25 + 21 410.787 855 2 0 -22.852 -8.95966 -146.25 + 21 791.594 856 2 0 -22.8885 -8.85 -146.209 + 21 844.75 857 2 0 -22.955 -8.65 -146.135 + 21 819.138 858 2 0 -23.0214 -8.45 -146.062 + 21 895.082 859 2 0 -23.0872 -8.25 -145.991 + 21 827.576 860 2 0 -23.1524 -8.05 -145.921 + 21 978.39 779 2 1 -24.1702 -5.06094 -144.85 + 21 2864.31 778 2 1 -24.25 -4.82699 -144.766 + 21 1031.87 777 2 1 -24.45 -4.25122 -144.54 + 21 106.476 385 2 0 32.861 -103.142 -146.25 + 21 2995.57 384 2 0 32.8744 -103.15 -146.238 + 21 1077.65 383 2 0 33.2046 -103.35 -145.939 + 21 165.154 1071 2 1 34.4331 -104.035 -144.85 + 21 2383.83 1072 2 1 34.45 -104.045 -144.835 + 21 2885.9 1073 2 1 34.65 -104.142 -144.66 + 21 1046.6 1074 2 1 34.85 -104.225 -144.494 + 21 884.631 350 2 0 50.7599 -109.953 -146.25 + 21 991.966 349 2 0 51.1263 -110.15 -146.04 + 21 46.159 1165 2 1 53.23 -111.276 -144.85 + 21 478.302 1166 2 1 53.25 -111.286 -144.839 + 21 619.783 1167 2 1 53.45 -111.393 -144.726 + 21 488.677 1168 2 1 53.65 -111.502 -144.613 + 21 246.121 1169 2 1 53.85 -111.609 -144.501 + 21 1242.41 232 3 0 96.3088 -133.583 -116.25 + 21 891.038 231 3 0 96.6317 -133.75 -116.035 + 21 110.484 1390 3 1 98.3218 -134.638 -114.85 + 21 699.489 1391 3 1 98.35 -134.653 -114.83 + 21 771.888 1392 3 1 98.55 -134.757 -114.69 + 21 505.239 1393 3 1 98.75 -134.865 -114.55 + 21 1064.7 124 4 0 151.492 -155.248 -86.25 + 21 1956.68 123 4 0 151.758 -155.35 -86.108 + 21 8.18672 1669 4 1 154.148 -156.271 -84.85 + 21 822.543 1670 4 1 154.15 -156.272 -84.8488 + 21 920.028 1671 4 1 154.35 -156.349 -84.7441 + 21 933.199 1672 4 1 154.55 -156.427 -84.6466 + 21 882.026 1673 4 1 154.75 -156.501 -84.5461 + 21 1272.46 911 1 1 2.25 -83.4916 -174.554 + 21 254.196 912 1 1 2.45 -83.3325 -174.799 + 21 205.368 488 1 0 3.60299 -82.45 -176.215 + 21 510.708 1032 0 1 26.5832 -63.6634 -204.45 + 21 1732.81 1033 0 1 26.65 -63.6009 -204.515 + 21 1265.05 1034 0 1 26.85 -63.4123 -204.712 + 21 1594.63 588 0 0 27.9694 -62.3949 -205.85 + 21 2295.92 589 0 0 28.1304 -62.25 -206.012 + 21 189.319 590 0 0 28.3467 -62.05 -206.234 + 21 231.771 777 2 0 -37.2538 -24.6093 -146.25 + 21 377.505 778 2 0 -37.3597 -24.45 -146.175 + 21 463.063 779 2 0 -37.4923 -24.25 -146.08 + 21 395.157 780 2 0 -37.6262 -24.05 -145.984 + 21 136.388 781 2 0 -37.7591 -23.85 -145.889 + 21 120.902 704 2 1 -39.2126 -21.6511 -144.85 + 21 573.383 703 2 1 -39.25 -21.5944 -144.823 + 21 548.51 702 2 1 -39.45 -21.294 -144.682 + 21 307.712 701 2 1 -39.65 -20.996 -144.54 + 21 37.3685 1082 3 0 -79.2575 36.6188 -116.25 + 21 351.128 1083 3 0 -79.2789 36.65 -116.235 + 21 377.032 1084 3 0 -79.4168 36.85 -116.136 + 21 331.382 1085 3 0 -79.5549 37.05 -116.038 + 21 328.081 1086 3 0 -79.6919 37.25 -115.939 + 21 90.4621 494 3 1 -81.2061 39.4977 -114.85 + 21 542.485 493 3 1 -81.25 39.5629 -114.818 + 21 581.553 492 3 1 -81.45 39.862 -114.673 + 21 413.792 491 3 1 -81.65 40.1616 -114.529 + 21 136.968 1428 4 0 -127.616 105.865 -86.25 + 21 386.733 1429 4 0 -127.675 105.95 -86.2135 + 21 429.857 1430 4 0 -127.814 106.15 -86.132 + 21 419.692 1431 4 0 -127.958 106.35 -86.0483 + 21 382.352 1432 4 0 -128.103 106.55 -85.9656 + 21 139.296 1433 4 0 -128.248 106.75 -85.8816 + 21 246.574 250 4 1 -130.052 109.188 -84.85 + 21 574.887 249 4 1 -130.15 109.32 -84.7942 + 21 518.604 248 4 1 -130.35 109.59 -84.6791 + 21 547.655 247 4 1 -130.55 109.86 -84.5631 + 21 203.276 717 2 0 34.8664 -36.4787 -146.25 + 21 1421.39 718 2 0 34.8864 -36.45 -146.233 + 21 1615.32 719 2 0 35.0293 -36.25 -146.114 + 21 1739.73 720 2 0 35.1718 -36.05 -145.985 + 21 48.918 721 2 0 35.3219 -35.85 -145.854 + 21 385.155 1081 2 1 36.4205 -34.4685 -144.85 + 21 2900.66 1082 2 1 36.45 -34.4314 -144.823 + 21 4317.61 1083 2 1 36.65 -34.1766 -144.654 + 21 729.349 1084 2 1 36.85 -33.8899 -144.476 + 21 194.172 478 1 0 2.20787 -84.3343 -175.85 + 21 70.5942 477 1 0 2.24789 -84.45 -176.145 + 21 426.182 929 0 1 5.95855 -95.6765 -204.45 + 21 242.412 419 0 0 6.12608 -96.2421 -205.85 + 21 73.7444 418 0 0 6.15806 -96.35 -206.117 + 21 233.135 423 0 0 4.16926 -95.5019 -205.85 + 21 7.78956 56 2 0 7.53159 -168.948 -146.25 + 21 355.761 55 2 0 7.53171 -168.95 -146.249 + 21 320.387 54 2 0 7.54469 -169.15 -146.184 + 21 362.621 53 2 0 7.55692 -169.35 -146.118 + 21 358.191 52 2 0 7.57022 -169.55 -146.052 + 21 436.455 51 2 0 7.58329 -169.75 -145.987 + 21 339.785 50 2 0 7.5946 -169.95 -145.921 + 21 17.7924 49 2 0 7.60505 -170.15 -145.854 + 21 2491.13 938 2 1 7.76886 -173.134 -144.85 + 21 306.772 405 2 0 8.69588 -98.9956 -146.25 + 21 134.395 404 2 0 8.76356 -99.15 -145.968 + 21 99.0796 944 2 1 9.03067 -99.7538 -144.85 + 21 393.404 945 2 1 9.05 -99.7975 -144.769 + 21 161.822 324 3 0 16.3401 -115.251 -116.25 + 21 247.454 323 3 0 16.3869 -115.35 -116.067 + 21 442.099 983 3 1 16.7082 -116.013 -114.85 + 21 305.998 242 4 0 24.2497 -131.594 -86.25 + 21 110.334 241 4 0 24.3252 -131.75 -85.9635 + 21 131.73 1022 4 1 24.6223 -132.355 -84.85 + 21 350.991 1023 4 1 24.65 -132.411 -84.746 + 21 75.9516 164 5 0 31.8995 -147.312 -56.25 + 21 406.306 163 5 0 31.9178 -147.35 -56.1781 + 21 484.923 1061 5 1 32.2512 -148.039 -54.85 + 21 374.773 86 6 0 39.6391 -162.778 -26.25 + 21 121.483 85 6 0 39.7252 -162.95 -25.9168 + 21 163.671 1099 6 1 40.0062 -163.497 -24.85 + 21 420.017 1100 6 1 40.05 -163.583 -24.6838 + 21 196.18 11 7 0 47.7942 -177.856 3.75 + 21 232.738 10 7 0 47.8452 -177.95 3.93741 + 21 267.806 1140 7 1 48.1784 -178.56 5.15 + 21 189.223 1141 7 1 48.25 -178.691 5.41104 + 21 99.3342 1526 13 1 125.419 -175.301 185.469 + 21 64.6556 1135 6 1 47.0934 -141.441 -24.7819 + 21 128.51 431 2 0 108.324 -93.9059 -146.25 + 21 465.496 430 2 0 108.784 -93.95 -146.129 + 21 22.4635 1467 2 1 113.677 -94.4353 -144.85 + 21 64.9915 1468 2 1 113.75 -94.4426 -144.831 + 21 58.1177 1469 2 1 113.95 -94.4622 -144.779 + 21 69.4697 1470 2 1 114.15 -94.483 -144.728 + 21 70.9483 1471 2 1 114.35 -94.5044 -144.677 + 21 61.1538 1472 2 1 114.55 -94.5256 -144.627 + 21 55.8721 1473 2 1 114.75 -94.548 -144.577 + 21 63.223 1474 2 1 114.95 -94.5713 -144.527 + 21 43.1851 1475 2 1 115.15 -94.5943 -144.478 + 21 367.057 438 2 0 73.0324 -92.3864 -146.25 + 21 43.3476 1281 2 1 76.3301 -92.7338 -144.85 + 21 62.7784 1282 2 1 76.4501 -92.7463 -144.798 + 21 68.1964 1283 2 1 76.65 -92.7703 -144.715 + 21 59.9144 1284 2 1 76.85 -92.7965 -144.631 + 21 63.3656 1285 2 1 77.05 -92.8192 -144.541 + 21 286.572 383 3 0 125.22 -103.359 -116.25 + 21 6.16891 1537 3 1 127.732 -103.876 -114.85 + 21 83.2669 1538 3 1 127.75 -103.879 -114.84 + 21 61.8367 1539 3 1 127.951 -103.921 -114.735 + 21 209.45 1540 3 1 128.15 -103.957 -114.636 + 21 194.458 1541 3 1 128.35 -103.997 -114.541 + 21 2.64573 349 4 0 176.609 -110.349 -86.25 + 21 362.542 348 4 0 176.615 -110.35 -86.2463 + 21 84.3835 1796 4 1 179.387 -110.691 -84.85 + 21 139.058 1797 4 1 179.551 -110.712 -84.7687 + 21 66.3947 1798 4 1 179.75 -110.738 -84.6639 + 21 57.125 1799 4 1 179.95 -110.762 -84.5543 + 21 127.503 346 4 0 179.636 -110.846 -85.8508 + 21 56.2344 347 4 0 179.613 -110.75 -85.9439 + 21 95.9916 907 1 1 1.65 -83.5578 -174.477 + 21 93.9351 906 1 1 1.45 -83.475 -174.643 + 21 28.8437 905 1 1 1.25 -83.3933 -174.806 + 21 74.5209 725 0 1 -34.8678 -68.163 -204.45 + 21 81.36 724 0 1 -35.05 -68.0878 -204.586 + 21 71.472 723 0 1 -35.25 -68.0047 -204.737 + 21 218.706 563 0 0 -36.7038 -67.3951 -205.85 + 21 163.616 564 0 0 -37.0499 -67.25 -206.115 + 21 436.668 607 2 0 -8.39064 -58.4817 -146.25 + 21 3818.88 608 2 0 -8.40371 -58.45 -146.215 + 21 3723.81 609 2 0 -8.47948 -58.25 -145.997 + 21 151.022 481 1 0 1.83184 -83.6899 -175.85 + 21 114.644 894 0 1 -1.05332 -83.5632 -204.45 + 21 139.388 482 0 0 -1.16807 -83.5833 -205.85 + 21 97.0405 898 1 1 -0.39381 -85.4386 -174.45 + 21 486.131 897 1 1 -0.45 -85.4764 -174.459 + 21 463.725 896 1 1 -0.65 -85.6109 -174.492 + 21 485.232 895 1 1 -0.85 -85.7452 -174.524 + 21 383.8 894 1 1 -1.05 -85.8795 -174.556 + 21 392.317 893 1 1 -1.25 -86.0142 -174.589 + 21 531.974 892 1 1 -1.45 -86.1469 -174.621 + 21 426.394 891 1 1 -1.65 -86.279 -174.653 + 21 422.833 890 1 1 -1.85 -86.4107 -174.693 + 21 394.721 889 1 1 -2.05 -86.5431 -174.733 + 21 503.495 888 1 1 -2.25 -86.676 -174.774 + 21 312.192 887 1 1 -2.45 -86.8091 -174.817 + 21 88.3421 450 1 0 -7.21337 -90.0196 -175.85 + 21 655.454 449 1 0 -7.40637 -90.15 -175.892 + 21 682.674 448 1 0 -7.70194 -90.35 -175.959 + 21 712.239 447 1 0 -7.99625 -90.55 -176.024 + 21 802.812 446 1 0 -8.28476 -90.75 -176.087 + 21 667.475 445 1 0 -8.56924 -90.95 -176.15 + 21 570.156 444 1 0 -8.85715 -91.15 -176.21 + 21 454.103 199 0 1 -140.246 -179.136 -204.45 + 21 690.958 198 0 1 -140.35 -179.2 -204.469 + 21 780.343 197 0 1 -140.55 -179.32 -204.506 + 21 713.37 196 0 1 -140.75 -179.437 -204.541 + 21 875.763 195 0 1 -140.95 -179.551 -204.577 + 21 817.562 194 0 1 -141.15 -179.667 -204.616 + 21 838.274 193 0 1 -141.35 -179.78 -204.652 + 21 834.414 192 0 1 -141.55 -179.91 -204.691 + 21 810.375 191 0 1 -141.75 -180.036 -204.728 + 21 14.6255 279 9 0 6.10462 -124.323 63.9095 + 21 219.298 481 4 0 2.46726 -83.65 -86.2046 + 21 114.926 480 4 0 2.52275 -83.85 -86.0118 +Number of digits in this event: 181 +Using G4ParticleGun... +Particle energy: 4.94433 LIN +Particle: proton Event: 22 -Number of tracker hits in this event = 26 - 22 112.534 436 9 1 -92.9438 95.4093 65.55 - 22 446.723 1376 9 0 -92.9443 95.4089 64.15 - 22 93.0494 435 8 1 -92.9521 95.3989 35.55 - 22 95.2875 1376 8 0 -92.9522 95.3981 34.15 - 22 153.404 435 7 1 -92.954 95.3807 5.55 - 22 126.915 1376 7 0 -92.9542 95.3803 4.15 - 22 108.77 435 6 1 -92.9547 95.3714 -24.45 - 22 98.2542 1376 6 0 -92.9549 95.3713 -25.85 - 22 252.436 435 5 1 -92.9601 95.3694 -54.45 - 22 118.641 1376 5 0 -92.9604 95.3696 -55.85 - 22 123.235 435 4 1 -92.9637 95.3758 -84.45 - 22 134.518 1376 4 0 -92.9636 95.3771 -85.85 - 22 135.473 435 3 1 -92.9619 95.4027 -114.45 - 22 110.019 1376 3 0 -92.9622 95.4044 -115.85 - 22 176.551 435 2 1 -92.968 95.441 -144.45 - 22 91.0241 1376 2 0 -92.9686 95.4435 -145.85 - 22 160.906 435 1 1 -92.9817 95.4944 -174.45 - 22 146.342 1376 1 0 -92.9824 95.4966 -175.85 - 22 103.023 435 0 1 -93.0006 95.5385 -204.45 - 22 141.084 1376 0 0 -93.0013 95.5408 -205.85 - 22 107.284 436 3 1 -92.95 95.3974 -114.634 - 22 296.553 436 5 1 -92.95 95.6827 -54.4893 - 22 10.1391 437 5 1 -92.75 95.7485 -54.4595 - 22 202.138 1377 9 0 -93.1453 95.55 63.9957 - 22 111.939 429 9 1 -94.2205 97.3632 65.15 - 22 199.166 428 9 1 -94.35 97.4812 65.1886 -Number of digits in this event = 15 -Using G4ParticleGun ... -4.81954 LIN -proton +Number of tracker hits in this event: 71 + 22 101.973 1122 9 1 44.6341 114.54 65.55 + 22 121.445 1471 9 0 44.6343 114.539 64.15 + 22 119.205 1122 8 1 44.6396 114.521 35.55 + 22 494.383 1471 8 0 44.6392 114.52 34.15 + 22 108.706 1122 7 1 44.6368 114.496 5.55 + 22 128.476 1471 7 0 44.6386 114.492 4.15 + 22 109.372 1123 6 1 44.6768 114.405 -24.45 + 22 89.3269 1471 6 0 44.6785 114.4 -25.85 + 22 111.188 1123 5 1 44.7133 114.309 -54.45 + 22 130.199 1470 5 0 44.7146 114.305 -55.85 + 22 119.159 1123 4 1 44.7406 114.242 -84.45 + 22 92.9495 1470 4 0 44.7422 114.238 -85.85 + 22 171.596 1123 3 1 44.7742 114.155 -114.45 + 22 7.00678 1470 3 0 44.7753 114.15 -115.85 + 22 101.465 1469 3 0 44.7753 114.15 -115.882 + 22 166.207 1123 2 1 44.7984 114.054 -144.45 + 22 166.872 1469 2 0 44.8002 114.05 -145.85 + 22 136.508 1123 1 1 44.8367 113.96 -174.45 + 22 138.304 1469 1 0 44.8389 113.955 -175.85 + 22 124.139 1124 0 1 44.885 113.851 -204.45 + 22 105.394 1468 0 0 44.888 113.845 -205.85 + 22 77.6479 1678 1 1 155.808 159.853 -174.531 + 22 124.16 1058 9 0 -30.3619 31.7192 63.75 + 22 216.29 747 9 1 -30.4956 31.991 65.1501 + 22 124.168 748 9 1 -30.45 32.063 65.47 + 22 74.9144 749 9 1 -30.2499 32.2491 65.2671 + 22 83.0186 1060 9 0 -29.9917 32.0688 64.1498 + 22 193.328 1059 9 0 -30.0593 32.0497 64.0033 + 22 169.475 1635 0 1 147.191 59.2772 -204.711 + 22 10.9499 263 4 1 -127.403 -131.747 -84.5565 + 22 100.503 880 4 0 -11.0703 -3.94523 -86.25 + 22 28.9623 879 4 0 -11.1457 -4.05 -85.9228 + 22 100.893 840 4 1 -11.8924 -4.31938 -84.85 + 22 50.0323 839 4 1 -12.05 -4.36428 -84.5691 + 22 140.112 898 5 0 -33.7277 -0.365515 -56.25 + 22 99.3564 728 5 1 -34.2777 -0.359545 -54.85 + 22 23.2102 950 6 0 -57.3102 10.2224 -26.25 + 22 71.8701 951 6 0 -57.3744 10.25 -26.1889 + 22 50.5237 952 6 0 -57.3082 10.45 -26.1497 + 22 4.00517 795 4 0 -24.3686 -21.0386 -86.25 + 22 104.196 794 4 0 -24.3763 -21.05 -86.237 + 22 49.044 793 4 0 -24.5149 -21.25 -86.0001 + 22 128.627 773 4 1 -25.2513 -22.1928 -84.8499 + 22 59.9043 772 4 1 -25.4501 -22.4134 -84.5912 + 22 99.4482 741 5 0 -25.232 -31.7279 -56.2499 + 22 23.4 740 5 0 -25.2482 -31.85 -55.9395 + 22 257.517 773 5 1 -25.3667 -32.3417 -54.85 + 22 91.9011 716 6 0 -19.045 -36.7675 -26.2499 + 22 20.2068 715 6 0 -18.9831 -36.8501 -25.918 + 22 142.173 805 6 1 -18.9136 -37.1592 -24.85 + 22 132.349 641 7 0 -21.6297 -51.6691 3.75012 + 22 21.9317 640 7 0 -21.6596 -51.85 4.08323 + 22 47.299 791 7 1 -21.8248 -52.3785 5.15 + 22 78.2808 790 7 1 -21.85 -52.4419 5.27699 + 22 115.454 601 8 0 -25.2853 -59.6704 33.75 + 22 7.04097 600 8 0 -25.3286 -59.85 34.1294 + 22 137.815 773 8 1 -25.3822 -60.6778 35.15 + 22 74.9783 774 8 1 -25.25 -60.3655 35.5314 + 22 53.6207 775 8 1 -25.05 -60.3255 35.4125 + 22 55.041 776 8 1 -24.8498 -60.3143 35.3701 + 22 77.2241 777 8 1 -24.65 -60.2898 35.3113 + 22 53.4282 778 8 1 -24.449 -60.2531 35.2116 + 22 40.338 779 8 1 -24.25 -60.1549 35.177 + 22 75.3407 619 8 0 -18.3946 -56.2078 34.15 + 22 70.7673 620 8 0 -18.244 -56.05 34.0604 + 22 606.011 621 8 0 -18.1073 -55.85 33.9424 + 22 197.819 622 8 0 -17.8553 -55.6498 33.8249 + 22 200.974 821 8 1 -15.7831 -54.7563 35.1501 + 22 185.151 822 8 1 -15.65 -54.3422 35.3574 + 22 112.377 823 8 1 -15.4497 -54.2345 35.2493 + 22 172.884 772 5 1 -25.45 -32.6359 -54.6706 +Number of digits in this event: 30 +Using G4ParticleGun... +Particle energy: 7.30659 LIN +Particle: proton Event: 23 -Number of tracker hits in this event = 41 - 23 137.251 524 10 1 -75.1144 43.7046 95.55 - 23 111.537 1118 10 0 -75.1139 43.704 94.15 - 23 179.403 524 9 1 -75.1086 43.6907 65.55 - 23 103.673 1118 9 0 -75.1087 43.6906 64.15 - 23 132.029 524 8 1 -75.1048 43.6811 35.55 - 23 114.659 1118 8 0 -75.1039 43.6804 34.15 - 23 153.076 524 7 1 -75.0915 43.6629 5.55 - 23 133.568 1118 7 0 -75.0923 43.6601 4.15 - 23 288.708 524 6 1 -75.1075 43.5992 -24.45 - 23 113.789 1117 6 0 -75.1115 43.5948 -25.85 - 23 134.178 524 5 1 -75.1916 43.5022 -54.45 - 23 100.898 1117 5 0 -75.1954 43.4974 -55.85 - 23 95.5226 523 4 1 -75.2733 43.3986 -84.45 - 23 95.6216 1116 4 0 -75.2768 43.3941 -85.85 - 23 174.185 523 3 1 -75.3519 43.3018 -114.45 - 23 121.444 1116 3 0 -75.3562 43.2978 -115.85 - 23 108.84 523 2 1 -75.44 43.2143 -144.45 - 23 118.857 1115 2 0 -75.4435 43.21 -145.85 - 23 146.379 522 1 1 -75.5153 43.1165 -174.45 - 23 142.133 1115 1 0 -75.5193 43.1129 -175.85 - 23 140.368 522 0 1 -75.5972 43.0345 -204.45 - 23 152.595 1114 0 0 -75.6014 43.0289 -205.85 - 23 9.46796 1115 0 0 -75.5995 43.05 -205.867 - 23 132.626 523 0 1 -75.2682 43.594 -204.85 - 23 147.211 522 2 1 -75.45 43.2407 -144.482 - 23 46.4999 1123 2 0 -76.6574 44.7345 -145.85 - 23 89.0517 1124 2 0 -76.7393 44.85 -145.952 - 23 45.3162 1125 2 0 -76.8639 45.05 -146.16 - 23 0.986816 1766 2 0 -142.474 173.474 -146.25 - 23 56.7439 524 3 1 -75.2497 43.3174 -114.686 - 23 50.5516 1114 3 0 -74.6848 42.9233 -115.85 - 23 148.708 1113 3 0 -74.5938 42.85 -115.942 - 23 103.034 1112 3 0 -74.3838 42.65 -116.033 - 23 68.1452 1111 3 0 -74.1592 42.45 -116.086 - 23 136.484 1110 3 0 -74.0839 42.25 -116.021 - 23 63.771 1109 3 0 -73.905 42.05 -116.163 - 23 91.5943 837 3 0 -26.7786 -12.5092 -116.25 - 23 124.98 836 3 0 -26.8973 -12.65 -116.108 - 23 72.5173 835 3 0 -26.9428 -12.85 -116.147 - 23 0.500375 669 3 0 -88.0406 -46.1358 -116.25 - 23 197.894 523 6 1 -75.2501 43.5487 -24.681 -Number of digits in this event = 22 -Using G4ParticleGun ... -1.95745 LIN -proton +Number of tracker hits in this event: 35 + 23 164.526 886 11 1 -2.81171 -49.2193 125.55 + 23 135.388 654 11 0 -2.81205 -49.2202 124.15 + 23 96.3815 886 10 1 -2.82153 -49.2411 95.55 + 23 212.869 654 10 0 -2.82247 -49.2425 94.15 + 23 147.092 886 9 1 -2.84194 -49.2759 65.55 + 23 104.011 653 9 0 -2.84316 -49.2773 64.15 + 23 114.75 885 8 1 -2.87137 -49.3074 35.55 + 23 105.065 653 8 0 -2.87316 -49.3088 34.15 + 23 91.4538 885 7 1 -2.91018 -49.3383 5.55 + 23 101.043 653 7 0 -2.91266 -49.339 4.15 + 23 105.76 885 6 1 -2.96414 -49.3505 -24.45 + 23 117.356 653 6 0 -2.96672 -49.3505 -25.85 + 23 107.837 885 5 1 -3.01797 -49.3531 -54.45 + 23 227.028 653 5 0 -3.01908 -49.3527 -55.85 + 23 126.631 885 4 1 -3.0439 -49.3456 -84.45 + 23 111.338 653 4 0 -3.04554 -49.3447 -85.85 + 23 133.841 884 3 1 -3.08072 -49.3319 -114.45 + 23 102.189 653 3 0 -3.0816 -49.3301 -115.85 + 23 141.439 884 2 1 -3.10161 -49.2935 -144.45 + 23 212.789 653 2 0 -3.10144 -49.2898 -145.85 + 23 118.376 884 1 1 -3.10478 -49.2155 -174.45 + 23 98.5857 654 1 0 -3.10432 -49.2126 -175.85 + 23 137.001 884 0 1 -3.09064 -49.1576 -204.45 + 23 111.175 654 0 0 -3.08918 -49.1555 -205.85 + 23 46.4529 885 9 1 -2.85 -49.3811 65.1674 + 23 11.1855 630 9 0 -3.35098 -54.0079 64.15 + 23 60.5352 629 9 0 -3.35035 -54.05 64.1414 + 23 78.4527 628 9 0 -3.30371 -54.25 64.0121 + 23 62.3973 627 9 0 -3.2975 -54.45 63.9031 + 23 65.4254 626 9 0 -3.25183 -54.65 63.8353 + 23 62.8672 625 9 0 -3.25298 -54.8507 63.7556 + 23 29.1465 624 9 0 -3.32313 -55.05 63.771 + 23 10.8643 1425 9 1 105.178 -116.325 65.15 + 23 6.40614 645 9 0 -3.6364 -51.0358 64.15 + 23 211.843 644 9 0 -3.6377 -51.05 64.141 +Number of digits in this event: 12 +Using G4ParticleGun... +Particle energy: 8.97832 LIN +Particle: proton Event: 24 -Number of tracker hits in this event = 20 - 24 108.379 609 9 1 -58.1721 119.941 65.55 - 24 117.807 1498 9 0 -58.1726 119.941 64.15 - 24 155.643 609 8 1 -58.1793 119.926 35.55 - 24 129.324 1498 8 0 -58.177 119.924 34.15 - 24 99.9118 609 7 1 -58.1207 119.916 5.55 - 24 146.836 1498 7 0 -58.1173 119.92 4.15 - 24 130.423 609 6 1 -58.0659 119.999 -24.45 - 24 97.8179 1499 6 0 -58.0628 120.001 -25.85 - 24 129.231 610 5 1 -58.0045 120.031 -54.45 - 24 112.745 1499 5 0 -58.0065 120.032 -55.85 - 24 156.078 609 4 1 -58.0629 120.056 -84.45 - 24 116.798 1499 4 0 -58.0676 120.061 -85.85 - 24 130.958 609 3 1 -58.1669 120.153 -114.45 - 24 101.81 1500 3 0 -58.171 120.158 -115.85 - 24 95.2399 608 2 1 -58.2577 120.265 -144.45 - 24 156.393 1500 2 0 -58.2644 120.269 -145.85 - 24 118.634 608 1 1 -58.396 120.355 -174.45 - 24 101.964 1501 1 0 -58.402 120.359 -175.85 - 24 152.413 607 0 1 -58.5343 120.437 -204.45 - 24 117.867 1501 0 0 -58.5436 120.441 -205.85 -Number of digits in this event = 13 -Using G4ParticleGun ... -7.04646 LIN -proton +Number of tracker hits in this event: 21 + 24 129.209 793 9 1 -21.4477 -126.52 65.55 + 24 102.564 268 9 0 -21.4475 -126.519 64.15 + 24 100.227 793 8 1 -21.4411 -126.504 35.55 + 24 122.971 268 8 0 -21.4409 -126.503 34.15 + 24 127.329 793 7 1 -21.4369 -126.473 5.55 + 24 108.443 268 7 0 -21.4367 -126.472 4.15 + 24 174.468 793 6 1 -21.4307 -126.454 -24.45 + 24 107.376 268 6 0 -21.4296 -126.452 -25.85 + 24 110.192 793 5 1 -21.4056 -126.421 -54.45 + 24 137.207 268 5 0 -21.4031 -126.42 -55.85 + 24 104.664 793 4 1 -21.353 -126.402 -84.45 + 24 114.652 268 4 0 -21.3508 -126.401 -85.85 + 24 254.239 793 3 1 -21.3047 -126.382 -114.45 + 24 95.5854 268 3 0 -21.3019 -126.381 -115.85 + 24 315.374 794 2 1 -21.2393 -126.369 -144.45 + 24 119.557 268 2 0 -21.2351 -126.368 -145.85 + 24 180.326 794 1 1 -21.1486 -126.341 -174.45 + 24 112.462 269 1 0 -21.145 -126.339 -175.85 + 24 128.735 794 0 1 -21.073 -126.308 -204.45 + 24 123.719 269 0 0 -21.0711 -126.307 -205.85 + 24 40.7263 794 3 1 -21.2499 -126.397 -114.828 +Number of digits in this event: 11 +Using G4ParticleGun... +Particle energy: 6.81504 LIN +Particle: proton Event: 25 -Number of tracker hits in this event = 19 - 25 128.766 1490 8 1 118.199 -70.1535 35.55 - 25 207.206 549 8 0 118.2 -70.1543 34.15 - 25 111.562 1490 7 1 118.218 -70.1705 5.55 - 25 129.941 549 7 0 118.22 -70.1709 4.15 - 25 147.569 1490 6 1 118.252 -70.1795 -24.45 - 25 135.333 549 6 0 118.253 -70.1796 -25.85 - 25 112.956 1490 5 1 118.271 -70.1853 -54.45 - 25 116.231 549 5 0 118.272 -70.1863 -55.85 - 25 137.679 1490 4 1 118.297 -70.2098 -84.45 - 25 110.167 549 4 0 118.297 -70.2117 -85.85 - 25 158.403 1490 3 1 118.313 -70.2469 -114.45 - 25 135.949 549 3 0 118.315 -70.249 -115.85 - 25 177.367 1491 2 1 118.355 -70.2904 -144.45 - 25 87.7997 548 2 0 118.357 -70.2913 -145.85 - 25 116.981 1491 1 1 118.398 -70.2954 -174.45 - 25 121.305 548 1 0 118.399 -70.2954 -175.85 - 25 114.246 1491 0 1 118.435 -70.293 -204.45 - 25 147.018 548 0 0 118.437 -70.293 -205.85 - 25 44.6607 1413 1 1 102.751 -23.1377 -174.709 -Number of digits in this event = 12 -Using G4ParticleGun ... -5.00193 LIN -proton +Number of tracker hits in this event: 110 + 25 100.037 1563 9 1 132.796 -19.2595 65.55 + 25 110.157 803 9 0 132.794 -19.2589 64.15 + 25 97.9931 1563 8 1 132.764 -19.2453 35.55 + 25 112.855 804 8 0 132.761 -19.2446 34.15 + 25 214.762 1562 7 1 132.713 -19.233 5.55 + 25 161.819 804 7 0 132.709 -19.2331 4.15 + 25 121.888 1562 6 1 132.637 -19.2328 -24.45 + 25 103.302 804 6 0 132.633 -19.2344 -25.85 + 25 93.0071 1562 5 1 132.556 -19.2673 -54.45 + 25 130.849 803 5 0 132.552 -19.2699 -55.85 + 25 106.096 1561 4 1 132.458 -19.3142 -84.45 + 25 95.9991 803 4 0 132.455 -19.3166 -85.85 + 25 172.859 1561 3 1 132.385 -19.3624 -114.45 + 25 250.693 803 3 0 132.381 -19.364 -115.85 + 25 154.017 1560 2 1 132.315 -19.3962 -144.45 + 25 185.641 803 2 0 132.312 -19.3986 -145.85 + 25 96.8839 1560 1 1 132.245 -19.4458 -174.45 + 25 156.225 803 1 0 132.242 -19.4479 -175.85 + 25 177.262 1560 0 1 132.187 -19.4907 -204.45 + 25 116.694 802 0 0 132.186 -19.4926 -205.85 + 25 767.523 441 4 1 -91.7695 149.471 -84.6507 + 25 167.288 1649 4 0 -90.15 150.094 -86.0254 + 25 30.1866 1650 4 0 -90.1691 150.15 -86.0844 + 25 108.765 1303 11 0 174.732 80.7069 123.963 + 25 25.376 1302 11 0 174.725 80.65 124.088 + 25 202.132 1769 11 1 174.122 79.7952 125.15 + 25 46.0771 1115 12 1 43.1985 -11.8419 155.55 + 25 220.603 1773 11 1 174.832 80.4843 125.15 + 25 192.414 1465 2 1 113.319 -1.0479 -144.45 + 25 29.3964 1335 0 1 87.1692 10.1443 -204.85 + 25 130.721 923 9 1 4.73442 31.8083 65.15 + 25 60.9346 1351 7 0 71.5764 90.3795 3.75 + 25 78.7619 1602 2 1 140.74 16.7832 -144.713 + 25 93.3274 1603 2 1 140.75 16.8254 -144.609 + 25 140.192 1048 3 0 145.133 29.8401 -116.25 + 25 229.556 1049 3 0 145.136 29.85 -116.228 + 25 138.371 1626 3 1 145.36 30.4634 -114.85 + 25 121.465 1104 4 0 145.368 40.8944 -86.2499 + 25 366.22 1626 4 1 145.361 41.4079 -84.85 + 25 47.3141 1177 5 0 140.591 55.5849 -56.2495 + 25 79.8426 1178 5 0 140.57 55.6501 -56.1179 + 25 104.785 1601 5 1 140.37 56.2864 -54.85 + 25 110.767 1600 5 1 140.35 56.3497 -54.7227 + 25 40.7841 1249 6 0 136.031 69.9955 -26.2498 + 25 102.164 1250 6 0 136.013 70.05 -26.1357 + 25 133.45 1578 6 1 135.81 70.6728 -24.85 + 25 2.75248 1577 6 1 135.75 70.8612 -24.4628 + 25 69.3562 1328 7 0 130.318 85.7487 3.75 + 25 56.9269 1329 7 0 130.281 85.85 3.94032 + 25 121.916 1549 7 1 130.014 86.5271 5.15 + 25 46.9878 1548 7 1 129.95 86.687 5.4305 + 25 57.2472 1417 8 0 125.224 103.639 33.75 + 25 78.4465 1418 8 0 125.192 103.75 33.938 + 25 20.7056 1524 8 1 124.963 104.487 35.15 + 25 138.485 1523 8 1 124.95 104.532 35.2224 + 25 87.8772 1585 9 0 124.072 137.208 63.75 + 25 71.9657 1586 9 0 124.064 137.35 63.8699 + 25 48.0377 1587 9 0 124.049 137.55 64.0352 + 25 71.0806 1519 9 1 123.958 138.93 65.1501 + 25 141.362 1518 9 1 123.95 139.084 65.2714 + 25 133.82 1608 3 1 141.82 30.2875 -114.85 + 25 45.4614 1123 4 0 144.786 44.7639 -86.25 + 25 69.3384 1124 4 0 144.806 44.85 -86.0775 + 25 161.611 1624 4 1 144.974 45.4521 -84.85 + 25 114.677 1184 5 0 146.228 56.9188 -56.25 + 25 23.4285 1185 5 0 146.24 57.05 -55.9192 + 25 172.745 1630 5 1 146.294 57.4939 -54.8498 + 25 78.5788 1259 6 0 145.69 71.9487 -26.2496 + 25 77.9905 1260 6 0 145.686 72.05 -26.051 + 25 123.759 1627 6 1 145.683 72.679 -24.8498 + 25 91.6279 1333 7 0 147.118 86.703 3.75 + 25 31.6832 1334 7 0 147.134 86.85 4.04995 + 25 114.781 1635 7 1 147.204 87.4042 5.15 + 25 165.984 1459 8 0 158.099 111.968 33.7501 + 25 62.8269 1460 8 0 158.181 112.15 33.9623 + 25 105.345 1692 8 1 158.649 113.198 35.15 + 25 59.8125 1693 8 1 158.75 113.429 35.4024 + 25 37.8075 1601 9 0 169.128 140.471 63.75 + 25 103.656 1602 9 0 169.159 140.55 63.8334 + 25 38.4224 1603 9 0 169.239 140.75 64.0446 + 25 106.254 1747 9 1 169.669 141.767 65.15 + 25 120.982 1748 9 1 169.75 141.961 65.3582 + 25 78.668 1707 10 0 177.954 161.585 93.7505 + 25 50.9119 1708 10 0 178.02 161.75 93.9875 + 25 153.561 1790 10 1 178.256 162.596 95.1505 + 25 90.1282 1569 11 0 169.252 134.091 123.75 + 25 70.7347 1570 11 0 169.297 134.15 123.937 + 25 110.58 1746 11 1 169.442 134.478 125.15 + 25 152.584 1575 12 0 165.069 135.258 153.75 + 25 216.714 1723 12 1 164.921 135.485 155.15 + 25 86.4512 1724 12 1 165.086 135.192 155.55 + 25 305.525 1573 12 0 164.049 134.827 154.15 + 25 129.071 1572 12 0 163.848 134.75 153.947 + 25 121.764 1188 11 1 57.657 155.008 125.55 + 25 98.1996 1187 11 1 57.6499 154.74 125.357 + 25 59.2595 1675 11 0 56.4128 155.265 124.15 + 25 98.1525 1676 11 0 56.4066 155.35 124 + 25 58.2782 1677 11 0 56.4754 155.55 123.879 + 25 177.732 1465 0 1 113.225 -10.6973 -204.45 + 25 61.5486 1464 0 1 113.15 -10.8539 -204.686 + 25 184.564 1466 0 1 113.35 -11.1432 -204.743 + 25 92.2018 1467 0 1 113.55 -11.2616 -204.76 + 25 104.462 1561 2 1 132.35 -19.4253 -144.569 + 25 57.4252 1561 7 1 132.55 -19.2383 5.29096 + 25 16.7901 803 7 0 131.445 -19.4093 4.15 + 25 113.236 802 7 0 131.438 -19.4502 4.10553 + 25 65.7439 801 7 0 131.369 -19.65 4.02675 + 25 13.5341 1560 7 1 132.158 -20.4269 5.1503 + 25 123.232 1559 7 1 132.15 -20.446 5.20468 + 25 120.307 1558 7 1 131.95 -20.3683 5.51428 +Number of digits in this event: 45 +Using G4ParticleGun... +Particle energy: 5.54019 LIN +Particle: proton Event: 26 -Number of tracker hits in this event = 40 - 26 96.7262 569 10 1 -66.1061 92.6134 95.55 - 26 367.879 1362 10 0 -66.1075 92.6142 94.15 - 26 195.269 569 9 1 -66.1358 92.6284 65.55 - 26 113.286 1362 9 0 -66.1383 92.6291 64.15 - 26 96.2366 569 8 1 -66.1874 92.6367 35.55 - 26 184.588 1362 8 0 -66.1908 92.6362 34.15 - 26 159.162 568 7 1 -66.2626 92.6235 5.55 - 26 102.619 1362 7 0 -66.2648 92.6231 4.15 - 26 118.873 568 6 1 -66.3135 92.6167 -24.45 - 26 129.723 1362 6 0 -66.3141 92.6156 -25.85 - 26 151.93 568 5 1 -66.3221 92.5944 -54.45 - 26 97.2455 1362 5 0 -66.3228 92.5932 -55.85 - 26 118.26 568 4 1 -66.3349 92.575 -84.45 - 26 107.716 1362 4 0 -66.3349 92.575 -85.85 - 26 115.12 568 3 1 -66.3341 92.5779 -114.45 - 26 231.116 1362 3 0 -66.3327 92.5807 -115.85 - 26 90.1763 568 2 1 -66.3064 92.6382 -144.45 - 26 102.859 1362 2 0 -66.3055 92.6403 -145.85 - 26 113.163 568 1 1 -66.2832 92.6783 -174.45 - 26 141.515 1362 1 0 -66.2822 92.68 -175.85 - 26 116.818 568 0 1 -66.2619 92.7117 -204.45 - 26 169.558 1362 0 0 -66.2594 92.7137 -205.85 - 26 85.9842 1622 0 0 26.0485 144.55 -206.09 - 26 92.0141 1621 0 0 26.1572 144.55 -206.104 - 26 30.5489 859 8 0 -117.328 -8.15567 33.75 - 26 60.2241 858 8 0 -117.286 -8.25 33.822 - 26 81.8916 857 8 0 -117.226 -8.45066 33.9312 - 26 55.4297 856 8 0 -117.172 -8.65 34.0447 - 26 145.588 313 8 1 -117.439 -10.095 35.1501 - 26 63.3758 312 8 1 -117.55 -10.335 35.3848 - 26 125.101 311 8 1 -117.75 -10.3747 35.5321 - 26 66.3279 310 8 1 -117.95 -10.7002 35.4553 - 26 92.3977 309 8 1 -118.15 -10.7797 35.3741 - 26 186.179 844 8 0 -118.398 -11.1198 34.15 - 26 156.191 1227 3 0 -33.7127 65.45 -115.915 - 26 104.193 1228 3 0 -34.1931 65.65 -116.042 - 26 749.278 1203 1 1 60.7141 2.58811 -174.546 - 26 6.74543 1361 3 0 -66.333 92.55 -115.976 - 26 190.09 569 5 1 -66.25 92.5893 -54.4859 - 26 3.84191 570 5 1 -66.05 92.7298 -54.4521 -Number of digits in this event = 19 -Using G4ParticleGun ... -8.67021 LIN -proton +Number of tracker hits in this event: 23 + 26 167.946 1429 10 0 47.9082 106.031 94.15 + 26 102.02 1139 9 1 47.9078 106.032 65.55 + 26 105.179 1429 9 0 47.9067 106.032 64.15 + 26 133.064 1139 8 1 47.8906 106.029 35.55 + 26 106.277 1429 8 0 47.8885 106.028 34.15 + 26 103.002 1138 7 1 47.847 106.008 5.55 + 26 104.071 1429 7 0 47.8454 106.007 4.15 + 26 100.965 1138 6 1 47.8241 105.976 -24.45 + 26 114.264 1429 6 0 47.8239 105.975 -25.85 + 26 173.361 1138 5 1 47.82 105.952 -54.45 + 26 111.72 1429 5 0 47.8191 105.951 -55.85 + 26 138.213 1138 4 1 47.8036 105.932 -84.45 + 26 113.783 1428 4 0 47.8025 105.93 -85.85 + 26 90.1914 1138 3 1 47.784 105.885 -114.45 + 26 102.297 1428 3 0 47.7832 105.882 -115.85 + 26 341.289 1138 2 1 47.7706 105.84 -144.45 + 26 228.327 1428 2 0 47.769 105.838 -145.85 + 26 128.798 1138 1 1 47.7397 105.79 -174.45 + 26 99.8319 1428 1 0 47.739 105.788 -175.85 + 26 90.9738 1138 0 1 47.7249 105.747 -204.45 + 26 107.038 1427 0 0 47.7234 105.746 -205.85 + 26 236.832 1428 10 0 47.9813 105.95 93.9312 + 26 107.189 1427 10 0 48.0648 105.75 93.8604 +Number of digits in this event: 9 +Using G4ParticleGun... +Particle energy: 4.98976 LIN +Particle: proton Event: 27 -Number of tracker hits in this event = 25 - 27 122.283 922 11 1 4.59456 55.7258 125.55 - 27 191.064 1178 11 0 4.59536 55.7253 124.15 - 27 106.245 922 10 1 4.60986 55.7137 95.55 - 27 121.44 1178 10 0 4.61036 55.7136 94.15 - 27 144.525 922 9 1 4.62299 55.7115 65.55 - 27 123.043 1178 9 0 4.62397 55.7113 64.15 - 27 109.033 922 8 1 4.64412 55.707 35.55 - 27 100.033 1178 8 0 4.64478 55.7064 34.15 - 27 132.013 923 7 1 4.66124 55.6955 5.55 - 27 94.9164 1178 7 0 4.66204 55.6957 4.15 - 27 98.5508 923 6 1 4.67537 55.7 -24.45 - 27 164.432 1178 6 0 4.67506 55.6997 -25.85 - 27 170.702 923 5 1 4.66912 55.6935 -54.45 - 27 104.722 1178 5 0 4.66944 55.6938 -55.85 - 27 138.647 923 4 1 4.67638 55.703 -84.45 - 27 113.641 1178 4 0 4.6768 55.7029 -85.85 - 27 114.906 923 3 1 4.68489 55.6971 -114.45 - 27 181.286 1178 3 0 4.68612 55.6978 -115.85 - 27 96.9701 923 2 1 4.7128 55.7127 -144.45 - 27 133.238 1178 2 0 4.71477 55.714 -145.85 - 27 116.501 923 1 1 4.75503 55.7381 -174.45 - 27 151.982 1178 1 0 4.75709 55.7397 -175.85 - 27 282.225 923 0 1 4.79913 55.77 -204.45 - 27 107.175 1178 0 0 4.80146 55.7713 -205.85 - 27 214.781 1179 6 0 4.69856 55.85 -26.1514 -Number of digits in this event = 15 -Using G4ParticleGun ... -1.14454 LIN -proton +Number of tracker hits in this event: 26 + 27 141.275 937 10 1 7.59131 -92.8119 95.55 + 27 184.151 436 10 0 7.59211 -92.8134 94.15 + 27 201.456 937 9 1 7.61011 -92.8399 65.55 + 27 120.942 436 9 0 7.61228 -92.8407 64.15 + 27 212.97 938 8 1 7.65396 -92.849 35.55 + 27 115.976 436 8 0 7.65671 -92.8502 34.15 + 27 120.236 938 7 1 7.71436 -92.8771 5.55 + 27 108.355 436 7 0 7.71881 -92.8774 4.15 + 27 131.236 938 6 1 7.80189 -92.8916 -24.45 + 27 133.715 436 6 0 7.80508 -92.8917 -25.85 + 27 238.268 939 5 1 7.8703 -92.8969 -54.45 + 27 102.1 436 5 0 7.87301 -92.8968 -55.85 + 27 122.454 939 4 1 7.92971 -92.8964 -84.45 + 27 101.441 436 4 0 7.93268 -92.8956 -85.85 + 27 249.149 939 3 1 7.98764 -92.8782 -114.45 + 27 106.119 436 3 0 7.99054 -92.8754 -115.85 + 27 113.579 940 2 1 8.05195 -92.8149 -144.45 + 27 122.078 436 2 0 8.0584 -92.8137 -145.85 + 27 135.586 940 1 1 8.19865 -92.7857 -174.45 + 27 163.81 436 1 0 8.20528 -92.7842 -175.85 + 27 111.481 941 0 1 8.33601 -92.7568 -204.45 + 27 170.638 436 0 0 8.34333 -92.7562 -205.85 + 27 5.91579 526 0 0 31.7103 -74.6875 -206.25 + 27 135.099 341 2 0 -16.9813 -111.837 -146.25 + 27 152.588 816 2 1 -16.801 -111.694 -144.85 + 27 26.973 474 8 0 140.714 -85.1122 33.7813 +Number of digits in this event: 20 +Using G4ParticleGun... +Particle energy: 5.4504 LIN +Particle: proton Event: 28 -Number of tracker hits in this event = 20 - 28 151.844 1016 9 1 23.3772 119.102 65.55 - 28 117.52 1494 9 0 23.3791 119.106 64.15 - 28 143.03 1016 8 1 23.4265 119.185 35.55 - 28 125.43 1495 8 0 23.4281 119.19 34.15 - 28 146.542 1017 7 1 23.4547 119.278 5.55 - 28 137.892 1495 7 0 23.4527 119.281 4.15 - 28 146.211 1016 6 1 23.4042 119.359 -24.45 - 28 214.748 1496 6 0 23.3964 119.355 -25.85 - 28 124.345 1015 5 1 23.2453 119.253 -54.45 - 28 136.232 1495 5 0 23.2404 119.25 -55.85 - 28 123.12 1015 4 1 23.1532 119.19 -84.45 - 28 143.577 1495 4 0 23.1533 119.19 -85.85 - 28 183.496 1015 3 1 23.1422 119.198 -114.45 - 28 169.24 1495 3 0 23.1425 119.202 -115.85 - 28 130.421 1015 2 1 23.1405 119.279 -144.45 - 28 151.719 1495 2 0 23.1426 119.279 -145.85 - 28 131.205 1015 1 1 23.1786 119.287 -174.45 - 28 151.997 1495 1 0 23.18 119.286 -175.85 - 28 135.335 1015 0 1 23.2066 119.28 -204.45 - 28 157.949 1495 0 0 23.2076 119.279 -205.85 -Number of digits in this event = 20 -Using G4ParticleGun ... -6.06154 LIN -proton +Number of tracker hits in this event: 23 + 28 101.301 1376 10 1 95.4376 22.3966 95.55 + 28 107.99 1011 10 0 95.4372 22.3956 94.15 + 28 103.497 1376 9 1 95.4309 22.373 65.55 + 28 104.941 1011 9 0 95.4317 22.3716 64.15 + 28 171.44 1376 8 1 95.4467 22.3449 35.55 + 28 189.674 1011 8 0 95.4471 22.3436 34.15 + 28 102.669 1376 7 1 95.4519 22.3164 5.55 + 28 122.634 1011 7 0 95.4511 22.3162 4.15 + 28 264.616 1376 6 1 95.4354 22.3093 -24.45 + 28 166.286 1011 6 0 95.4338 22.3087 -25.85 + 28 201.26 1376 5 1 95.4021 22.3002 -54.45 + 28 240.892 1011 5 0 95.3993 22.2986 -55.85 + 28 118.219 1375 4 1 95.3345 22.2675 -84.45 + 28 101.171 1011 4 0 95.3314 22.2659 -85.85 + 28 115.199 1375 3 1 95.2669 22.2339 -114.45 + 28 142.784 1010 3 0 95.2637 22.2317 -115.85 + 28 107.834 1375 2 1 95.1981 22.1852 -144.45 + 28 99.2372 1010 2 0 95.1957 22.1831 -145.85 + 28 109.17 1374 1 1 95.1391 22.1428 -174.45 + 28 112.412 1010 1 0 95.1358 22.141 -175.85 + 28 109.912 1374 0 1 95.0696 22.1016 -204.45 + 28 98.2577 1010 0 0 95.0667 22.0989 -205.85 + 28 106.698 1010 8 0 95.4656 22.25 34.0747 +Number of digits in this event: 9 +Using G4ParticleGun... +Particle energy: 8.49946 LIN +Particle: proton Event: 29 -Number of tracker hits in this event = 44 - 29 112.059 1188 11 1 57.6785 30.8032 125.55 - 29 132.776 1053 11 0 57.6797 30.8027 124.15 - 29 117.604 1188 10 1 57.703 30.7889 95.55 - 29 156.18 1053 10 0 57.7053 30.7871 94.15 - 29 136.695 1188 9 1 57.7508 30.751 65.55 - 29 137.287 1053 9 0 57.7521 30.7484 64.15 - 29 115.094 1188 8 1 57.7753 30.6958 35.55 - 29 139.54 1053 8 0 57.7782 30.6921 34.15 - 29 94.0482 1188 7 1 57.8429 30.62 5.55 - 29 163.345 1052 7 0 57.8459 30.6153 4.15 - 29 233.963 1189 6 1 57.9013 30.5155 -24.45 - 29 106.798 1052 6 0 57.905 30.509 -25.85 - 29 127.635 1189 5 1 57.9838 30.377 -54.45 - 29 131.102 1051 5 0 57.9879 30.3718 -55.85 - 29 190.691 1190 4 1 58.0722 30.2674 -84.45 - 29 177.99 1051 4 0 58.0759 30.2634 -85.85 - 29 138.764 1190 3 1 58.1518 30.1821 -114.45 - 29 224.803 1050 3 0 58.1557 30.1786 -115.85 - 29 125.854 1190 2 1 58.2273 30.1095 -144.45 - 29 104.455 1050 2 0 58.2307 30.1065 -145.85 - 29 149.85 1191 1 1 58.2982 30.0476 -174.45 - 29 122.611 1049 1 0 58.3013 30.0455 -175.85 - 29 130.689 1191 0 1 58.3655 30.0036 -204.45 - 29 112.943 1049 0 0 58.3679 30.0018 -205.85 - 29 167.606 1051 3 0 58.1808 30.2501 -115.972 - 29 115.061 1053 6 0 57.8292 30.6788 -25.85 - 29 109.021 1176 5 1 55.403 33.1253 -54.45 - 29 101.607 1065 5 0 55.2603 33.0906 -55.8504 - 29 101.912 1155 4 1 51.1874 32.3041 -84.4502 - 29 153.033 1062 4 0 51.059 32.4801 -85.85 - 29 159.066 1144 3 1 48.9395 37.2764 -114.451 - 29 107.546 1086 3 0 48.795 37.3432 -115.85 - 29 42.9253 1127 2 1 45.4644 38.2568 -144.45 - 29 74.647 1126 2 1 45.45 38.2841 -144.603 - 29 139.351 1092 2 0 45.3106 38.5096 -145.85 - 29 332.486 1099 1 1 40.0408 43.5857 -174.45 - 29 43.4864 1106 1 0 39.6324 41.3587 -175.85 - 29 81.982 1105 1 0 39.6128 41.25 -175.913 - 29 57.9309 1104 1 0 39.5927 41.05 -176.025 - 29 47.7535 1103 1 0 39.5782 40.8497 -176.163 - 29 4.03857 1077 0 1 35.6452 9.10952 -204.45 - 29 185.967 1078 0 1 35.65 9.11799 -204.465 - 29 61.2454 949 0 0 36.2197 9.95113 -205.85 - 29 70.301 950 0 0 36.2711 10.05 -206.001 -Number of digits in this event = 24 -Using G4ParticleGun ... -9.49672 LIN -proton +Number of tracker hits in this event: 20 + 29 127.926 991 8 1 18.4249 -142.48 35.55 + 29 119.968 188 8 0 18.425 -142.48 34.15 + 29 122.943 991 7 1 18.4247 -142.484 5.55 + 29 174.836 188 7 0 18.4257 -142.484 4.15 + 29 111.1 991 6 1 18.4476 -142.482 -24.45 + 29 195.735 188 6 0 18.449 -142.482 -25.85 + 29 100.717 992 5 1 18.4782 -142.485 -54.45 + 29 148.704 188 5 0 18.48 -142.485 -55.85 + 29 111.39 992 4 1 18.5159 -142.476 -84.45 + 29 180.123 188 4 0 18.5176 -142.476 -85.85 + 29 145.867 992 3 1 18.5512 -142.463 -114.45 + 29 161.155 188 3 0 18.5522 -142.462 -115.85 + 29 109.079 992 2 1 18.5727 -142.44 -144.45 + 29 112.178 188 2 0 18.5748 -142.438 -145.85 + 29 156 992 1 1 18.6177 -142.406 -174.45 + 29 137.208 188 1 0 18.6197 -142.404 -175.85 + 29 109.084 993 0 1 18.6586 -142.362 -204.45 + 29 114.01 188 0 0 18.6602 -142.359 -205.85 + 29 38.9001 60 1 0 79.8072 -168.007 -176.25 + 29 102.637 61 1 0 79.8288 -167.95 -176.219 +Number of digits in this event: 11 +Using G4ParticleGun... +Particle energy: 7.90958 LIN +Particle: proton Event: 30 -Number of tracker hits in this event = 18 - 30 102.063 1346 7 1 89.3268 -117.682 5.55 - 30 119.315 312 7 0 89.3277 -117.682 4.15 - 30 96.3377 1346 6 1 89.3475 -117.678 -24.45 - 30 186.837 312 6 0 89.3485 -117.676 -25.85 - 30 122.993 1346 5 1 89.3665 -117.639 -54.45 - 30 104.609 312 5 0 89.3672 -117.637 -55.85 - 30 127.534 1346 4 1 89.3829 -117.597 -84.45 - 30 97.4841 312 4 0 89.3831 -117.595 -85.85 - 30 196.532 1346 3 1 89.3873 -117.542 -114.45 - 30 268.96 313 3 0 89.3876 -117.54 -115.85 - 30 160.389 1346 2 1 89.3946 -117.483 -144.45 - 30 134.155 313 2 0 89.3947 -117.48 -145.85 - 30 120.852 1346 1 1 89.397 -117.413 -174.45 - 30 165.047 313 1 0 89.3977 -117.411 -175.85 - 30 101.427 1346 0 1 89.4124 -117.354 -204.45 - 30 100.02 313 0 0 89.4127 -117.351 -205.85 - 30 125.776 1347 2 1 89.45 -117.393 -144.808 - 30 32.288 312 3 0 89.3948 -117.55 -116.114 -Number of digits in this event = 11 -Using G4ParticleGun ... -9.88063 LIN -proton +Number of tracker hits in this event: 27 + 30 26.5138 559 11 1 -68.0811 -46.583 125.28 + 30 104.427 667 11 0 -68.0811 -46.5831 124.15 + 30 175.135 559 10 1 -68.08 -46.586 95.55 + 30 148.627 667 10 0 -68.0796 -46.586 94.15 + 30 145.66 559 9 1 -68.0721 -46.5861 65.55 + 30 157.811 667 9 0 -68.0725 -46.5844 64.15 + 30 114.857 559 8 1 -68.083 -46.5445 35.55 + 30 256.068 667 8 0 -68.0836 -46.5439 34.15 + 30 135.756 559 7 1 -68.0995 -46.5307 5.55 + 30 122.524 667 7 0 -68.1002 -46.5307 4.15 + 30 170.883 559 6 1 -68.1123 -46.5311 -24.45 + 30 104.87 667 6 0 -68.1141 -46.5319 -25.85 + 30 99.069 559 5 1 -68.1518 -46.5442 -54.45 + 30 125.614 667 5 0 -68.1535 -46.5453 -55.85 + 30 100.693 559 4 1 -68.1915 -46.5719 -84.45 + 30 154.242 667 4 0 -68.1933 -46.5729 -85.85 + 30 98.7777 559 3 1 -68.2303 -46.5909 -114.45 + 30 101.27 667 3 0 -68.2302 -46.5935 -115.85 + 30 119.307 559 2 1 -68.2301 -46.649 -144.45 + 30 95.1407 666 2 0 -68.2301 -46.6518 -145.85 + 30 146.289 559 1 1 -68.2309 -46.7086 -174.45 + 30 229.566 666 1 0 -68.2319 -46.7114 -175.85 + 30 103.594 559 0 1 -68.2487 -46.7675 -204.45 + 30 142.482 666 0 0 -68.2501 -46.7703 -205.85 + 30 8.42078 742 1 0 -100.899 -31.6465 -176.25 + 30 124.668 741 1 0 -100.914 -31.65 -176.239 + 30 240.305 740 1 0 -101.028 -31.85 -176.109 +Number of digits in this event: 18 +Using G4ParticleGun... +Particle energy: 5.54627 LIN +Particle: proton Event: 31 -Number of tracker hits in this event = 25 - 31 112.719 853 11 1 -9.41236 -10.7597 125.55 - 31 130.438 846 11 0 -9.4126 -10.7595 124.15 - 31 116.681 853 10 1 -9.41781 -10.7548 95.55 - 31 108.426 846 10 0 -9.41902 -10.7549 94.15 - 31 145.373 853 9 1 -9.44356 -10.7556 65.55 - 31 187.705 846 9 0 -9.44421 -10.7566 64.15 - 31 127.475 852 8 1 -9.45689 -10.7813 35.55 - 31 84.6483 846 8 0 -9.45748 -10.7827 34.15 - 31 302.941 852 7 1 -9.47301 -10.8133 5.55 - 31 105.872 846 7 0 -9.47297 -10.8144 4.15 - 31 119.729 852 6 1 -9.46816 -10.8386 -24.45 - 31 120.836 846 6 0 -9.4675 -10.8405 -25.85 - 31 144.605 852 5 1 -9.45377 -10.8796 -54.45 - 31 123.362 845 5 0 -9.45286 -10.8816 -55.85 - 31 116.859 853 4 1 -9.43562 -10.9173 -84.45 - 31 124.731 845 4 0 -9.43434 -10.9189 -85.85 - 31 106.469 853 3 1 -9.40682 -10.9498 -114.45 - 31 102.266 845 3 0 -9.4051 -10.9514 -115.85 - 31 122.798 853 2 1 -9.37174 -10.9833 -144.45 - 31 100.384 845 2 0 -9.37085 -10.9854 -145.85 - 31 248.95 853 1 1 -9.35244 -11.028 -174.45 - 31 98.9654 845 1 0 -9.3525 -11.0302 -175.85 - 31 121.152 853 0 1 -9.35336 -11.0721 -204.45 - 31 276.713 844 0 0 -9.35393 -11.0743 -205.85 - 31 40.4372 845 0 0 -9.37412 -11.05 -205.966 -Number of digits in this event = 14 -Using G4ParticleGun ... -4.74753 LIN -proton +Number of tracker hits in this event: 23 + 31 117.539 534 10 1 -73.1329 51.8113 95.55 + 31 304.648 1158 10 0 -73.1337 51.8112 94.15 + 31 87.6146 534 9 1 -73.1491 51.8068 65.55 + 31 120.047 1158 9 0 -73.1493 51.8077 64.15 + 31 108.739 534 8 1 -73.1538 51.8277 35.55 + 31 134.323 1158 8 0 -73.154 51.8298 34.15 + 31 115.172 534 7 1 -73.1643 51.868 5.55 + 31 163.078 1159 7 0 -73.1653 51.8698 4.15 + 31 116.916 534 6 1 -73.1878 51.9077 -24.45 + 31 105.557 1159 6 0 -73.1894 51.9105 -25.85 + 31 116.815 534 5 1 -73.225 51.9731 -54.45 + 31 192.881 1159 5 0 -73.2265 51.9752 -55.85 + 31 272.565 533 4 1 -73.2551 52.0195 -84.45 + 31 95.1024 1159 4 0 -73.2563 52.0229 -85.85 + 31 132.904 533 3 1 -73.2777 52.0957 -114.45 + 31 103.853 1160 3 0 -73.2787 52.0979 -115.85 + 31 128.244 533 2 1 -73.291 52.1364 -144.45 + 31 113.595 1160 2 0 -73.2926 52.1374 -145.85 + 31 123.019 533 1 1 -73.3233 52.1531 -174.45 + 31 496.085 1160 1 0 -73.324 52.1532 -175.85 + 31 103.471 533 0 1 -73.3355 52.1569 -204.45 + 31 114.575 1160 0 0 -73.3357 52.157 -205.85 + 31 130.434 532 4 1 -73.45 51.8432 -84.5443 +Number of digits in this event: 12 +Using G4ParticleGun... +Particle energy: 1.15638 LIN +Particle: proton Event: 32 -Number of tracker hits in this event = 21 - 32 248.602 1398 9 0 91.2188 99.7942 64.15 - 32 89.5354 1355 8 1 91.2149 99.7969 35.55 - 32 97.3914 1398 8 0 91.2163 99.7975 34.15 - 32 118.938 1355 7 1 91.2443 99.8103 5.55 - 32 112.638 1398 7 0 91.2458 99.8107 4.15 - 32 108.212 1355 6 1 91.2819 99.8132 -24.45 - 32 118.549 1398 6 0 91.2835 99.8144 -25.85 - 32 138.724 1355 5 1 91.3212 99.8336 -54.45 - 32 104.023 1398 5 0 91.3232 99.8349 -55.85 - 32 93.5263 1356 4 1 91.3645 99.86 -84.45 - 32 108.474 1398 4 0 91.3675 99.8608 -85.85 - 32 99.0124 1356 3 1 91.4408 99.8789 -114.45 - 32 108.54 1398 3 0 91.443 99.877 -115.85 - 32 110.254 1356 2 1 91.4875 99.8383 -144.45 - 32 104.06 1398 2 0 91.4895 99.8372 -145.85 - 32 135.457 1356 1 1 91.522 99.8128 -174.45 - 32 103.686 1398 1 0 91.5218 99.8127 -175.85 - 32 123.376 1356 0 1 91.5144 99.8117 -204.45 - 32 113.333 1398 0 0 91.5143 99.8123 -205.85 - 32 88.5856 1354 7 1 91.15 99.8428 5.49493 - 32 453.696 1353 7 1 90.95 99.7977 5.49985 -Number of digits in this event = 7 -Using G4ParticleGun ... -6.48893 LIN -proton +Number of tracker hits in this event: 21 + 32 110.773 1128 8 1 45.7651 136.123 35.55 + 32 135.987 1579 8 0 45.7645 136.121 34.15 + 32 131.1 1128 7 1 45.7419 136.077 5.55 + 32 146.714 1579 7 0 45.7431 136.072 4.15 + 32 253.693 1128 6 1 45.7728 135.981 -24.45 + 32 111.459 1579 6 0 45.7787 135.974 -25.85 + 32 128.409 1129 5 1 45.9041 135.801 -54.45 + 32 120.179 1578 5 0 45.9134 135.795 -55.85 + 32 159.731 1130 4 1 46.1223 135.657 -84.45 + 32 104.754 1577 4 0 46.1272 135.643 -85.85 + 32 207.55 1130 3 1 46.2396 135.364 -114.45 + 32 10.4438 1576 3 0 46.2501 135.35 -115.85 + 32 158.715 1575 3 0 46.2503 135.35 -115.88 + 32 118.295 1131 2 1 46.4448 135.072 -144.45 + 32 128.89 1574 2 0 46.4464 135.065 -145.85 + 32 130.234 1132 1 1 46.495 134.93 -174.45 + 32 147.739 1573 1 0 46.494 134.917 -175.85 + 32 119.557 1132 0 1 46.4714 134.662 -204.45 + 32 102.318 1572 0 0 46.4686 134.648 -205.85 + 32 61.3051 1574 1 0 46.4941 134.95 -175.888 + 32 132.44 1127 1 1 45.6444 135.53 -174.85 +Number of digits in this event: 14 +Using G4ParticleGun... +Particle energy: 2.781 LIN +Particle: proton Event: 33 -Number of tracker hits in this event = 100 - 33 113.295 274 9 1 -125.275 -38.8832 65.55 - 33 132.256 705 9 0 -125.275 -38.8834 64.15 - 33 158.843 274 8 1 -125.261 -38.886 35.55 - 33 122.054 705 8 0 -125.26 -38.8856 34.15 - 33 87.5795 274 7 1 -125.242 -38.8804 5.55 - 33 116.746 705 7 0 -125.241 -38.8812 4.15 - 33 92.8482 274 6 1 -125.22 -38.9013 -24.45 - 33 207.38 705 6 0 -125.219 -38.9031 -25.85 - 33 113.381 274 5 1 -125.206 -38.9398 -54.45 - 33 131.767 705 5 0 -125.205 -38.9414 -55.85 - 33 104.75 274 4 1 -125.188 -38.9719 -84.45 - 33 105.055 705 4 0 -125.187 -38.9738 -85.85 - 33 94.5834 274 3 1 -125.179 -39.0095 -114.45 - 33 120.135 705 3 0 -125.18 -39.0123 -115.85 - 33 125.633 274 2 1 -125.2 -39.0711 -144.45 - 33 128.794 704 2 0 -125.202 -39.074 -145.85 - 33 151.074 274 1 1 -125.241 -39.1336 -174.45 - 33 102.628 704 1 0 -125.243 -39.1378 -175.85 - 33 112.682 274 0 1 -125.288 -39.2226 -204.45 - 33 178.761 704 0 0 -125.289 -39.2284 -205.85 - 33 220.845 781 12 1 -23.85 -94.6947 155.173 - 33 361.884 234 11 1 -133.27 -39.5627 125.55 - 33 12.9839 233 11 1 -133.35 -39.5529 125.164 - 33 75.2903 708 11 0 -134.521 -38.3813 124.15 - 33 63.2508 709 11 0 -134.583 -38.25 124.12 - 33 3.05122 422 2 0 -150.582 -95.7473 -146.25 - 33 106.046 421 2 0 -150.582 -95.75 -146.242 - 33 122.31 147 2 1 -150.675 -96.2173 -144.85 - 33 118.938 391 3 0 -151.756 -101.832 -116.25 - 33 125.29 140 3 1 -152.049 -101.955 -114.85 - 33 94.2193 440 2 0 -152.409 -92.1376 -146.25 - 33 219.178 439 2 0 -152.414 -92.15 -146.193 - 33 102.336 138 2 1 -152.413 -92.3623 -144.85 - 33 130.169 422 3 0 -139.129 -95.6403 -116.25 - 33 167.254 206 3 1 -138.824 -95.7182 -114.85 - 33 17.5675 207 3 1 -138.75 -95.7415 -114.53 - 33 559.264 479 4 0 -89.956 -84.065 -86.25 - 33 193.772 480 4 0 -89.8776 -84.05 -86.2114 - 33 152.284 481 4 0 -88.0209 -83.85 -86.0653 - 33 181.982 482 4 0 -87.704 -83.65 -85.9642 - 33 15.7193 470 4 1 -85.9003 -82.4778 -84.8497 - 33 75.7844 471 4 1 -85.8499 -82.4479 -84.8158 - 33 182.655 472 4 1 -85.65 -82.3294 -84.6914 - 33 172.006 473 4 1 -85.4497 -82.2054 -84.6249 - 33 23.3268 474 4 1 -85.2499 -82.0034 -84.4675 - 33 147.758 499 4 0 -88.4178 -80.0921 -85.85 - 33 16.408 500 4 0 -88.5491 -80.05 -85.9086 - 33 43.0773 498 4 0 -88.7918 -80.25 -86.1396 - 33 13.5009 470 4 0 -80.0159 -85.873 -86.25 - 33 408.516 471 4 0 -80.001 -85.85 -86.2198 - 33 131.289 502 0 0 -131.68 -79.45 -206.249 - 33 102.435 246 0 1 -130.904 -79.6008 -204.85 - 33 34.1282 247 0 1 -130.75 -79.6257 -204.573 - 33 139.944 609 8 0 49.7868 -58.1679 33.7503 - 33 65.7031 1154 8 1 50.9093 -57.636 35.15 - 33 127.081 1155 8 1 51.0501 -57.5617 35.3288 - 33 19.9235 774 9 0 72.1971 -25.0897 63.7505 - 33 100.666 775 9 0 72.2243 -25.05 63.7855 - 33 52.969 776 9 0 72.3807 -24.85 64.0058 - 33 3.69505 1264 9 1 73.0424 -24.027 65.15 - 33 144.689 1265 9 1 73.0502 -24.0174 65.1637 - 33 11.6733 1266 9 1 73.25 -23.8018 65.5176 - 33 155.909 918 10 0 87.8968 3.69529 93.75 - 33 104.689 919 10 0 87.9773 3.85 93.915 - 33 158.289 1342 10 1 88.5089 4.74917 95.1502 - 33 18.3169 1343 10 1 88.65 4.98395 95.5022 - 33 135.814 926 11 0 176.221 5.2853 123.75 - 33 400.483 927 11 0 177.408 5.45 124.067 - 33 23.9918 616 9 0 85.6666 -56.6516 63.75 - 33 146.402 617 9 0 85.7255 -56.65 63.7998 - 33 9.92032 1333 9 1 86.8347 -56.0691 65.1501 - 33 70.8614 1334 9 1 86.8501 -56.0612 65.1694 - 33 72.2761 1335 9 1 87.05 -55.9592 65.2263 - 33 118.298 1336 9 1 87.25 -55.821 65.2288 - 33 78.9596 1337 9 1 87.4501 -55.4976 65.4567 - 33 166.314 1338 9 1 87.65 -55.2554 65.4967 - 33 237.507 1339 9 1 87.85 -54.7102 65.3531 - 33 0.585467 1340 9 1 88.05 -54.4954 65.1518 - 33 113.283 632 9 0 88.41 -53.649 64.1498 - 33 12.2759 633 9 0 88.4059 -53.45 63.7902 - 33 59.483 1161 10 1 52.3219 -90.1976 95.15 - 33 136.846 552 8 0 44.8407 -69.5257 33.75 - 33 198.151 1128 8 1 45.6659 -68.9337 35.1508 - 33 57.486 1129 8 1 45.8501 -68.7963 35.3922 - 33 103.93 1130 8 1 46.1975 -68.6939 35.5484 - 33 102.853 555 8 0 46.0888 -68.9291 34.15 - 33 139.165 1115 7 1 43.0619 -74.9494 5.55 - 33 89.9239 528 7 0 43.7264 -74.4284 4.15 - 33 28.682 529 7 0 43.862 -74.25 3.85042 - 33 138.38 1127 8 1 45.6499 -68.8937 35.363 - 33 154.463 684 13 0 166.99 -43.2219 183.75 - 33 243.715 685 13 0 166.926 -43.05 183.984 - 33 126.286 521 0 0 -149.833 -75.7547 -206.25 - 33 74.7287 148 0 1 -150.46 -75.9513 -204.85 - 33 54.0564 147 0 1 -150.55 -75.9738 -204.635 - 33 180.309 536 0 0 -152.426 -72.7111 -206.25 - 33 84.0981 134 0 1 -153.212 -72.6711 -204.85 - 33 49.1044 133 0 1 -153.35 -72.6556 -204.595 - 33 17.1347 529 0 0 -150.773 -74.2398 -206.25 - 33 98.9168 274 13 0 -137.877 -125.212 184.11 -Number of digits in this event = 48 -Using G4ParticleGun ... -1.8769 LIN -proton +Number of tracker hits in this event: 25 + 33 200.226 574 10 1 -65.2312 -62.0004 95.55 + 33 123.499 590 10 0 -65.2298 -62.0019 94.15 + 33 145.43 574 9 1 -65.2066 -62.0335 65.55 + 33 109.257 590 9 0 -65.2075 -62.0347 64.15 + 33 121 574 8 1 -65.2255 -62.0661 35.55 + 33 143.274 589 8 0 -65.2275 -62.0672 34.15 + 33 106.809 573 7 1 -65.2611 -62.0902 5.55 + 33 108.684 589 7 0 -65.2622 -62.0917 4.15 + 33 87.998 573 6 1 -65.2845 -62.1266 -24.45 + 33 148.537 589 6 0 -65.2868 -62.1292 -25.85 + 33 188.494 573 5 1 -65.3361 -62.1834 -54.45 + 33 133.257 589 5 0 -65.3392 -62.1852 -55.85 + 33 200.375 573 4 1 -65.4022 -62.221 -84.45 + 33 348.907 589 4 0 -65.4069 -62.2234 -85.85 + 33 206.173 572 3 1 -65.4997 -62.272 -114.45 + 33 120.668 588 3 0 -65.5042 -62.2724 -115.85 + 33 103.379 572 2 1 -65.5996 -62.2742 -144.45 + 33 133.183 588 2 0 -65.6008 -62.2748 -145.85 + 33 96.2721 572 1 1 -65.6295 -62.2794 -174.45 + 33 122.933 588 1 0 -65.6246 -62.2785 -175.85 + 33 136.657 572 0 1 -65.5204 -62.2665 -204.45 + 33 107.982 588 0 0 -65.5126 -62.2662 -205.85 + 33 459.252 720 4 0 -103.195 -35.9587 -86.25 + 33 31.3783 721 4 0 -102.897 -35.85 -86.034 + 33 147.318 591 10 0 -65.0391 -61.7261 94.1498 +Number of digits in this event: 18 +Using G4ParticleGun... +Particle energy: 8.8438 LIN +Particle: proton Event: 34 -Number of tracker hits in this event = 28 - 34 160.231 1156 11 1 51.4121 -37.4769 125.55 - 34 236.998 712 11 0 51.4069 -37.4785 124.15 - 34 141.135 1156 10 1 51.2869 -37.523 95.55 - 34 121.933 712 10 0 51.2794 -37.5282 94.15 - 34 109.613 1155 9 1 51.1387 -37.6408 65.55 - 34 108.575 712 9 0 51.1286 -37.6481 64.15 - 34 5.00205 711 9 0 51.1258 -37.65 63.7682 - 34 107.028 1154 8 1 50.9259 -37.7993 35.55 - 34 123.106 711 8 0 50.9123 -37.8064 34.15 - 34 159.259 1152 7 1 50.5828 -38.0942 5.55 - 34 110.052 709 7 0 50.5692 -38.1055 4.15 - 34 117.775 1151 6 1 50.2878 -38.342 -24.45 - 34 134.964 708 6 0 50.2741 -38.3516 -25.85 - 34 140.485 1149 5 1 49.9807 -38.5071 -54.45 - 34 106.509 707 5 0 49.9584 -38.4837 -55.85 - 34 123.958 1147 4 1 49.5273 -37.9811 -84.45 - 34 103.749 710 4 0 49.5048 -37.957 -85.85 - 34 111.584 1144 3 1 49.0408 -37.4595 -114.45 - 34 91.0935 713 3 0 49.0184 -37.4302 -115.85 - 34 146.223 1142 2 1 48.5606 -36.8303 -144.45 - 34 133.355 716 2 0 48.5389 -36.8003 -145.85 - 34 123.313 1140 1 1 48.0924 -36.1834 -174.45 - 34 134.976 719 1 0 48.0723 -36.1533 -175.85 - 34 102.873 1138 0 1 47.6671 -35.5476 -204.45 - 34 90.0962 722 0 0 47.6459 -35.5147 -205.85 - 34 11.6059 735 11 0 52.5719 -32.9883 124.15 - 34 251.312 1154 11 1 51.0066 -30.9777 125.15 - 34 51.2391 1155 11 1 51.05 -30.9383 125.4 -Number of digits in this event = 15 -Using G4ParticleGun ... -5.51828 LIN -proton +Number of tracker hits in this event: 136 + 34 188.36 1606 8 1 141.458 34.7862 35.55 + 34 298.008 1073 8 0 141.458 34.787 34.15 + 34 120.066 1606 7 1 141.458 34.8054 5.55 + 34 123.172 1073 7 0 141.459 34.8072 4.15 + 34 107.049 1606 6 1 141.461 34.8452 -24.45 + 34 148.496 1073 6 0 141.462 34.8472 -25.85 + 34 156.658 1606 5 1 141.47 34.8904 -54.45 + 34 345.185 1074 5 0 141.47 34.8927 -55.85 + 34 215.409 1606 4 1 141.482 34.9421 -84.45 + 34 115.64 1074 4 0 141.484 34.9446 -85.85 + 34 131.15 1606 3 1 141.51 34.992 -114.45 + 34 177.378 1074 3 0 141.511 34.9944 -115.85 + 34 99.6485 1606 2 1 141.535 35.0495 -144.45 + 34 103.039 1075 2 0 141.536 35.0518 -145.85 + 34 109.393 1607 1 1 141.571 35.1018 -174.45 + 34 109.934 1075 1 0 141.573 35.1052 -175.85 + 34 461.884 1617 0 1 143.55 38.2268 -204.792 + 34 27.2771 1652 0 1 150.676 28.213 -204.554 + 34 642.673 1086 1 0 142.815 37.4398 -176.25 + 34 1418.9 1087 1 0 142.82 37.45 -176.124 + 34 2394.61 1613 1 1 142.878 37.5513 -174.85 + 34 454.357 1607 0 1 141.732 34.8803 -204.45 + 34 1778.12 1608 0 1 141.75 34.8293 -204.483 + 34 288.264 1063 0 0 142.484 32.7297 -205.85 + 34 465.732 1062 0 0 142.512 32.65 -205.902 + 34 545.643 1061 0 0 142.581 32.45 -206.032 + 34 433.834 1060 0 0 142.651 32.25 -206.162 + 34 79.6352 1501 1 0 153.313 120.468 -176.25 + 34 191.044 1502 1 0 153.325 120.55 -176.223 + 34 212.68 1503 1 0 153.352 120.75 -176.157 + 34 177.144 1504 1 0 153.379 120.95 -176.091 + 34 352.681 1505 1 0 153.406 121.15 -176.025 + 34 235.126 1506 1 0 153.433 121.35 -175.96 + 34 110.724 1507 1 0 153.459 121.55 -175.895 + 34 584.023 1668 1 1 153.888 124.742 -174.85 + 34 750.307 1669 1 1 153.95 125.202 -174.7 + 34 352.894 853 1 0 103.884 -9.38459 -176.25 + 34 1120.43 852 1 0 103.828 -9.45 -176.209 + 34 1166.04 851 1 0 103.658 -9.65 -176.084 + 34 953.517 850 1 0 103.489 -9.85 -175.959 + 34 338.15 1409 1 1 102.002 -11.5939 -174.85 + 34 1307.83 1408 1 1 101.95 -11.6544 -174.812 + 34 1417.31 1407 1 1 101.75 -11.8903 -174.662 + 34 536.976 1406 1 1 101.55 -12.1253 -174.512 + 34 138.368 629 2 0 72.3608 -54.2321 -146.25 + 34 1449.53 628 2 0 72.3484 -54.25 -146.238 + 34 1517.95 627 2 0 72.2099 -54.45 -146.104 + 34 1449.89 626 2 0 72.0723 -54.65 -145.968 + 34 1753.7 1254 2 1 70.9909 -56.2463 -144.85 + 34 2456.33 1253 2 1 70.85 -56.4545 -144.704 + 34 659.138 1252 2 1 70.65 -56.7524 -144.503 + 34 376.908 700 1 0 -83.4487 -39.915 -176.25 + 34 549.312 699 1 0 -83.8533 -40.05 -176.2 + 34 535.178 698 1 0 -84.4504 -40.25 -176.125 + 34 620.985 697 1 0 -85.049 -40.45 -176.051 + 34 424.421 696 1 0 -85.6513 -40.65 -175.979 + 34 474.036 695 1 0 -86.2526 -40.85 -175.905 + 34 15.8169 427 1 1 -94.7207 -43.6762 -174.85 + 34 170.84 426 1 1 -94.75 -43.686 -174.846 + 34 264.77 425 1 1 -94.95 -43.7527 -174.821 + 34 166.973 424 1 1 -95.15 -43.8187 -174.797 + 34 143.267 423 1 1 -95.35 -43.8849 -174.772 + 34 120.77 422 1 1 -95.55 -43.9508 -174.748 + 34 154.92 421 1 1 -95.75 -44.0166 -174.723 + 34 136.994 420 1 1 -95.95 -44.0823 -174.699 + 34 141.462 419 1 1 -96.15 -44.1483 -174.675 + 34 176.391 418 1 1 -96.35 -44.2139 -174.651 + 34 165.468 417 1 1 -96.55 -44.2792 -174.627 + 34 186.719 416 1 1 -96.75 -44.3447 -174.604 + 34 151.811 415 1 1 -96.95 -44.4103 -174.581 + 34 186.03 414 1 1 -97.15 -44.4758 -174.558 + 34 333.54 413 1 1 -97.35 -44.5412 -174.535 + 34 131.736 412 1 1 -97.55 -44.6074 -174.512 + 34 128.275 411 1 1 -97.75 -44.6732 -174.49 + 34 101.011 410 1 1 -97.95 -44.7393 -174.466 + 34 341.367 1612 0 1 142.703 37.2371 -204.45 + 34 540.787 1613 0 1 142.75 37.3305 -204.459 + 34 310.064 1614 0 1 142.95 37.7262 -204.495 + 34 431.667 1615 0 1 143.15 38.1205 -204.53 + 34 415.491 1616 0 1 143.35 38.5111 -204.565 + 34 330.494 1618 0 1 143.75 39.2896 -204.635 + 34 376.403 1619 0 1 143.95 39.6753 -204.669 + 34 357.464 1620 0 1 144.15 40.0611 -204.704 + 34 317.94 1621 0 1 144.35 40.4478 -204.738 + 34 398.999 1622 0 1 144.55 40.8344 -204.774 + 34 355.06 1623 0 1 144.75 41.2223 -204.808 + 34 55.9002 1624 0 1 144.95 41.6129 -204.843 + 34 77.7195 1165 0 0 150.857 53.129 -205.85 + 34 134.395 1166 0 0 150.919 53.25 -205.861 + 34 242.153 1167 0 0 151.022 53.45 -205.878 + 34 186.586 1168 0 0 151.124 53.65 -205.895 + 34 149.198 1169 0 0 151.227 53.85 -205.912 + 34 251.798 1170 0 0 151.33 54.05 -205.928 + 34 185.615 1171 0 0 151.433 54.25 -205.944 + 34 152.749 1172 0 0 151.537 54.45 -205.961 + 34 153.535 1173 0 0 151.64 54.65 -205.977 + 34 135.82 1174 0 0 151.744 54.85 -205.993 + 34 169.003 1175 0 0 151.848 55.05 -206.009 + 34 179.541 1176 0 0 151.952 55.25 -206.026 + 34 157.729 1177 0 0 152.056 55.45 -206.042 + 34 175.49 1178 0 0 152.16 55.65 -206.058 + 34 156.761 1179 0 0 152.265 55.85 -206.073 + 34 190.759 1180 0 0 152.369 56.05 -206.089 + 34 152.379 1181 0 0 152.473 56.25 -206.104 + 34 153.668 1182 0 0 152.577 56.45 -206.12 + 34 144.27 1183 0 0 152.681 56.65 -206.136 + 34 186.072 1184 0 0 152.784 56.85 -206.152 + 34 144.061 1185 0 0 152.887 57.05 -206.167 + 34 221.807 1186 0 0 152.99 57.25 -206.182 + 34 201.081 1187 0 0 153.093 57.45 -206.197 + 34 145.608 1188 0 0 153.196 57.65 -206.212 + 34 168.364 1189 0 0 153.3 57.85 -206.226 + 34 86.9054 1190 0 0 153.403 58.05 -206.241 + 34 6191.98 1097 1 0 146.743 39.4762 -176.25 + 34 2048.72 1380 1 0 161.298 96.1518 -176.25 + 34 2323.64 1381 1 0 161.363 96.35 -176.16 + 34 3352.84 1382 1 0 161.428 96.55 -176.074 + 34 2820.4 1383 1 0 161.495 96.75 -175.997 + 34 704.597 1651 4 0 54.9371 150.355 -86.0491 + 34 86.8172 1078 0 0 141.74 35.7455 -205.85 + 34 186.446 1079 0 0 141.762 35.85 -206.14 + 34 136.785 572 11 1 -65.4534 0.748472 125.15 + 34 22.7359 1609 0 1 141.95 35.4026 -204.789 + 34 5.19279 1080 0 0 142.853 36.05 -206.23 + 34 144.934 1077 0 0 142.374 35.4811 -205.85 + 34 151.047 1399 1 0 76.7092 100.15 -175.912 + 34 51.6213 1606 0 1 141.55 35.0527 -204.701 + 34 106.582 1073 0 0 141.357 34.7342 -205.85 + 34 34.3688 1072 0 0 141.306 34.65 -206.154 + 34 112.996 1074 0 0 141.456 34.9932 -205.85 + 34 188.895 1611 3 1 142.429 31.2726 -114.85 + 34 13.6471 1610 3 1 142.35 31.118 -114.773 + 34 250.889 1612 3 1 142.55 30.8166 -114.692 + 34 107.369 1607 4 1 141.55 34.8671 -84.691 + 34 354.321 1071 4 0 141.62 34.3914 -85.85 + 34 60.7258 1180 5 0 124.149 56.2453 -56.25 +Number of digits in this event: 116 +Using G4ParticleGun... +Particle energy: 8.17579 LIN +Particle: proton Event: 35 -Number of tracker hits in this event = 23 - 35 92.8376 897 10 1 -0.638639 102.309 95.55 - 35 170.037 1410 10 0 -0.639326 102.308 94.15 - 35 105.227 896 9 1 -0.658384 102.29 65.55 - 35 146.139 1410 9 0 -0.659192 102.29 64.15 - 35 127.858 896 8 1 -0.669484 102.288 35.55 - 35 103.722 1410 8 0 -0.668726 102.289 34.15 - 35 110.874 896 7 1 -0.652439 102.302 5.55 - 35 127.049 1410 7 0 -0.652535 102.302 4.15 - 35 109.748 896 6 1 -0.65195 102.3 -24.45 - 35 166.624 1410 6 0 -0.652092 102.298 -25.85 - 35 155.96 896 5 1 -0.661441 102.264 -54.45 - 35 107.291 1410 5 0 -0.663059 102.262 -55.85 - 35 163.98 896 4 1 -0.689658 102.227 -84.45 - 35 118.283 1410 4 0 -0.690649 102.226 -85.85 - 35 104.626 896 3 1 -0.713194 102.198 -114.45 - 35 122.991 1410 3 0 -0.714216 102.196 -115.85 - 35 105.321 896 2 1 -0.738318 102.147 -144.45 - 35 107.097 1409 2 0 -0.739375 102.145 -145.85 - 35 85.6907 896 1 1 -0.760107 102.094 -174.45 - 35 266.741 1409 1 0 -0.760909 102.092 -175.85 - 35 164.018 896 0 1 -0.765002 102.072 -204.45 - 35 163.053 1409 0 0 -0.765831 102.072 -205.85 - 35 149.828 1411 9 0 -0.72766 102.35 63.7949 -Number of digits in this event = 13 -Using G4ParticleGun ... -1.97669 LIN -proton +Number of tracker hits in this event: 23 + 35 149.353 1428 10 1 105.841 45.583 95.55 + 35 109.365 1127 10 0 105.841 45.5831 94.15 + 35 134.112 1428 9 1 105.839 45.5895 65.55 + 35 123.873 1127 9 0 105.84 45.5895 64.15 + 35 313.622 1428 8 1 105.856 45.5916 35.55 + 35 108.863 1127 8 0 105.857 45.5914 34.15 + 35 108.266 1428 7 1 105.878 45.5836 5.55 + 35 132.767 1127 7 0 105.879 45.5833 4.15 + 35 107.656 1428 6 1 105.895 45.5771 -24.45 + 35 97.3667 1127 6 0 105.896 45.5761 -25.85 + 35 121.186 1428 5 1 105.919 45.554 -54.45 + 35 109.027 1127 5 0 105.92 45.554 -55.85 + 35 97.8243 1428 4 1 105.937 45.557 -84.45 + 35 136.584 1127 4 0 105.938 45.5575 -85.85 + 35 98.4591 1429 3 1 105.959 45.5702 -114.45 + 35 108.17 1127 3 0 105.96 45.5714 -115.85 + 35 103.201 1429 2 1 105.982 45.5975 -144.45 + 35 97.2145 1127 2 0 105.984 45.5993 -145.85 + 35 129.26 1429 1 1 106.005 45.6375 -174.45 + 35 106.555 1127 1 0 106.007 45.6387 -175.85 + 35 101.298 1429 0 1 106.033 45.6659 -204.45 + 35 271.308 1128 0 0 106.034 45.667 -205.85 + 35 7.55993 1427 8 1 105.75 45.646 35.3046 +Number of digits in this event: 13 +Using G4ParticleGun... +Particle energy: 8.47261 LIN +Particle: proton Event: 36 -Number of tracker hits in this event = 24 - 36 128.013 1120 11 1 44.2273 23.4211 125.55 - 36 86.625 1016 11 0 44.2292 23.4212 124.15 - 36 129.583 1121 10 1 44.2835 23.4287 95.55 - 36 125.505 1016 10 0 44.2855 23.4306 94.15 - 36 133.128 1121 9 1 44.3235 23.4569 65.55 - 36 92.282 1017 9 0 44.3237 23.4594 64.15 - 36 92.6777 1121 8 1 44.3189 23.5066 35.55 - 36 115.532 1017 8 0 44.3161 23.5083 34.15 - 36 178.792 1121 7 1 44.2714 23.5391 5.55 - 36 144.12 1017 7 0 44.2674 23.5405 4.15 - 36 161.603 1120 6 1 44.169 23.5651 -24.45 - 36 99.6163 1017 6 0 44.1674 23.5619 -25.85 - 36 99.2169 1120 5 1 44.1499 23.4935 -54.45 - 36 226.011 1017 5 0 44.1579 23.4923 -55.85 - 36 170.42 1121 4 1 44.3167 23.4743 -84.45 - 36 120.346 1017 4 0 44.3235 23.4718 -85.85 - 36 160.463 1122 3 1 44.475 23.4313 -114.45 - 36 189.191 1016 3 0 44.4825 23.4304 -115.85 - 36 144.635 1122 2 1 44.6349 23.4111 -144.45 - 36 127.772 1016 2 0 44.6445 23.4095 -145.85 - 36 107.098 1123 1 1 44.8416 23.3391 -174.45 - 36 225.661 1016 1 0 44.8503 23.3332 -175.85 - 36 102.578 1124 0 1 45.0268 23.2143 -204.45 - 36 159.336 1015 0 0 45.0393 23.2103 -205.85 -Number of digits in this event = 20 -Using G4ParticleGun ... -1.12227 LIN -proton +Number of tracker hits in this event: 22 + 36 96.1308 890 10 1 -2.01505 -115.525 95.55 + 36 155.35 323 10 0 -2.01372 -115.525 94.15 + 36 126.096 890 9 1 -1.99101 -115.537 65.55 + 36 124.003 323 9 0 -1.98997 -115.537 64.15 + 36 115.665 890 8 1 -1.96593 -115.54 35.55 + 36 90.1043 323 8 0 -1.96496 -115.539 34.15 + 36 108.082 890 7 1 -1.94483 -115.517 5.55 + 36 104.286 323 7 0 -1.94397 -115.516 4.15 + 36 180.845 890 6 1 -1.92666 -115.482 -24.45 + 36 99.5727 323 6 0 -1.9246 -115.481 -25.85 + 36 136.386 890 5 1 -1.88275 -115.461 -54.45 + 36 86.6666 323 5 0 -1.88039 -115.46 -55.85 + 36 112.965 891 4 1 -1.82988 -115.442 -84.45 + 36 276.387 323 4 0 -1.82595 -115.441 -85.85 + 36 106.211 891 3 1 -1.74329 -115.419 -114.45 + 36 130.809 323 3 0 -1.73933 -115.418 -115.85 + 36 138.237 891 2 1 -1.6594 -115.395 -144.45 + 36 117.535 323 2 0 -1.65544 -115.394 -145.85 + 36 91.9739 892 1 1 -1.57768 -115.377 -174.45 + 36 141.649 323 1 0 -1.57405 -115.377 -175.85 + 36 102.014 892 0 1 -1.49974 -115.369 -204.45 + 36 112.903 323 0 0 -1.49693 -115.369 -205.85 +Number of digits in this event: 10 +Using G4ParticleGun... +Particle energy: 8.61192 LIN +Particle: proton Event: 37 -Number of tracker hits in this event = 18 - 37 123.497 600 8 1 -60.0493 125.38 35.55 - 37 156.673 1526 8 0 -60.049 125.384 34.15 - 37 134.032 600 7 1 -60.0209 125.451 5.55 - 37 213.937 1526 7 0 -60.0214 125.454 4.15 - 37 114.259 600 6 1 -60.044 125.483 -24.45 - 37 132.066 1526 6 0 -60.0473 125.483 -25.85 - 37 173.415 599 5 1 -60.1157 125.472 -54.45 - 37 119.004 1526 5 0 -60.1182 125.473 -55.85 - 37 124.842 599 4 1 -60.1589 125.52 -84.45 - 37 117.575 1526 4 0 -60.1611 125.522 -85.85 - 37 167.231 599 3 1 -60.1931 125.554 -114.45 - 37 144.128 1527 3 0 -60.1926 125.555 -115.85 - 37 154.145 599 2 1 -60.1848 125.583 -144.45 - 37 118.686 1527 2 0 -60.1809 125.585 -145.85 - 37 131.56 599 1 1 -60.0866 125.615 -174.45 - 37 139.172 1527 1 0 -60.0772 125.616 -175.85 - 37 150.535 600 0 1 -59.8837 125.63 -204.45 - 37 143.59 1527 0 0 -59.8696 125.629 -205.85 -Number of digits in this event = 15 -Using G4ParticleGun ... -3.78756 LIN -proton +Number of tracker hits in this event: 61 + 37 92.596 1301 9 1 80.2952 103.012 65.55 + 37 119.224 1414 9 0 80.2982 103.013 64.15 + 37 210.856 1301 8 1 80.3577 103.034 35.55 + 37 124.867 1414 8 0 80.3612 103.034 34.15 + 37 162.522 1301 7 1 80.4321 103.032 5.55 + 37 138.339 1414 7 0 80.4341 103.032 4.15 + 37 102.587 1302 6 1 80.4743 103.031 -24.45 + 37 100.912 1414 6 0 80.4769 103.031 -25.85 + 37 115.793 1302 5 1 80.5322 103.024 -54.45 + 37 100.149 1414 5 0 80.5351 103.024 -55.85 + 37 158.01 1302 4 1 80.596 103.02 -84.45 + 37 119.388 1414 4 0 80.5978 103.019 -85.85 + 37 103.038 1302 3 1 80.6327 102.996 -114.45 + 37 101.791 1414 3 0 80.635 102.996 -115.85 + 37 107.504 1303 2 1 80.6794 102.982 -144.45 + 37 98.2801 1414 2 0 80.6815 102.981 -145.85 + 37 207.952 1303 1 1 80.7258 102.972 -174.45 + 37 108.103 1414 1 0 80.7276 102.972 -175.85 + 37 147.6 1303 0 1 80.7635 102.967 -204.45 + 37 337.501 1414 0 0 80.7657 102.967 -205.85 + 37 49.8878 473 2 0 7.31763 -85.3695 -146.231 + 37 554.137 1415 0 0 77.54 103.273 -206.25 + 37 382.683 1286 0 1 77.2938 103.279 -204.85 + 37 198.581 1285 0 1 77.25 103.279 -204.601 + 37 746.88 1420 1 0 71.5772 104.233 -176.25 + 37 310.703 1256 1 1 71.2988 104.276 -174.85 + 37 240.552 1255 1 1 71.25 104.284 -174.604 + 37 632.933 1425 2 0 65.9076 105.2 -146.25 + 37 598.592 1227 2 1 65.6413 105.257 -144.85 + 37 602.442 1437 3 0 59.4266 107.561 -116.25 + 37 490.743 1195 3 1 59.1221 107.678 -114.85 + 37 95.0731 1194 3 1 59.05 107.706 -114.518 + 37 647.496 1449 4 0 53.5031 110.043 -86.25 + 37 539.909 1165 4 1 53.214 110.177 -84.85 + 37 792.057 1462 5 0 48.9619 112.564 -56.25 + 37 714.962 1143 5 1 48.7534 112.687 -54.85 + 37 777.124 1477 6 0 43.7023 115.632 -26.25 + 37 114.714 1117 6 1 43.4642 115.789 -24.85 + 37 550.657 1116 6 1 43.45 115.798 -24.7662 + 37 705.834 1492 7 0 39.3516 118.604 3.75 + 37 723.517 1095 7 1 39.1552 118.747 5.15 + 37 669.205 1509 8 0 34.4906 122.015 33.75 + 37 69.4488 1071 8 1 34.2582 122.19 35.15 + 37 794.171 1070 8 1 34.25 122.196 35.1991 + 37 888.068 1527 9 0 29.6331 125.568 63.75 + 37 825.009 1046 9 1 29.4056 125.719 65.15 + 37 828.044 1542 10 0 23.703 128.68 93.75 + 37 936.666 1016 10 1 23.4123 128.825 95.15 + 37 839.554 1551 11 0 16.2974 130.446 123.75 + 37 819.947 979 11 1 15.9473 130.523 125.15 + 37 32.9742 978 11 1 15.85 130.545 125.539 + 37 1035.14 1555 12 0 10.5832 131.189 153.75 + 37 1113.52 951 12 1 10.3255 131.234 155.15 + 37 1231.93 1571 13 0 5.98462 134.485 183.75 + 37 1378.58 928 13 1 5.77861 134.639 185.15 + 37 455.829 1605 14 0 3.08401 141.317 213.75 + 37 935.914 1606 14 0 3.07103 141.35 213.889 + 37 1449.69 914 14 1 2.9576 141.645 215.15 + 37 25.8204 1120 14 0 50.1882 44.2409 214.02 + 37 50.3006 1109 11 0 149.553 41.9009 123.797 + 37 102.519 1303 4 1 80.65 103.074 -84.7438 +Number of digits in this event: 45 +Using G4ParticleGun... +Particle energy: 1.4202 LIN +Particle: proton Event: 38 -Number of tracker hits in this event = 23 - 38 115.77 793 9 1 -21.2691 120.062 65.55 - 38 132.49 1499 9 0 -21.2681 120.061 64.15 - 38 139.172 793 8 1 -21.2502 120.035 35.55 - 38 105.595 1499 8 0 -21.2495 120.033 34.15 - 38 116.538 794 7 1 -21.2251 119.987 5.55 - 38 140.679 1499 7 0 -21.2256 119.983 4.15 - 38 126.656 794 6 1 -21.2362 119.903 -24.45 - 38 102.624 1498 6 0 -21.2372 119.899 -25.85 - 38 167.183 793 5 1 -21.2734 119.812 -54.45 - 38 211.317 1498 5 0 -21.2741 119.807 -55.85 - 38 141.735 793 4 1 -21.2926 119.702 -84.45 - 38 98.3074 1497 4 0 -21.2936 119.696 -85.85 - 38 121.839 793 3 1 -21.3163 119.574 -114.45 - 38 222.115 1497 3 0 -21.3171 119.568 -115.85 - 38 144.008 793 2 1 -21.3311 119.458 -144.45 - 38 140.88 1496 2 0 -21.3306 119.453 -145.85 - 38 101.449 793 1 1 -21.3224 119.371 -174.45 - 38 104.825 1496 1 0 -21.3223 119.367 -175.85 - 38 118.442 793 0 1 -21.3178 119.277 -204.45 - 38 101.198 1495 0 0 -21.3178 119.273 -205.85 - 38 101.119 793 6 1 -21.25 119.924 -24.6104 - 38 389.912 1509 6 0 -20.8548 121.964 -25.85 - 38 8.02625 1510 6 0 -20.4447 122.15 -26.1439 -Number of digits in this event = 13 -Using G4ParticleGun ... -4.33735 LIN -proton +Number of tracker hits in this event: 16 + 38 111.998 624 7 1 -55.2115 137.047 5.55 + 38 173.901 1584 7 0 -55.2132 137.048 4.15 + 38 124.136 624 6 1 -55.2474 137.038 -24.45 + 38 102.8 1584 6 0 -55.253 137.039 -25.85 + 38 127.746 623 5 1 -55.3769 137.066 -54.45 + 38 98.4137 1584 5 0 -55.3877 137.066 -55.85 + 38 135.922 622 4 1 -55.5933 137.065 -84.45 + 38 172.321 1584 4 0 -55.6025 137.073 -85.85 + 38 171.827 621 3 1 -55.8227 137.32 -114.45 + 38 112.237 1585 3 0 -55.8334 137.337 -115.85 + 38 115.377 619 2 1 -56.0584 137.678 -144.45 + 38 121.397 1587 2 0 -56.0675 137.686 -145.85 + 38 142.013 618 1 1 -56.2538 137.858 -174.45 + 38 125.261 1588 1 0 -56.26 137.866 -175.85 + 38 108.59 618 0 1 -56.4184 138.03 -204.45 + 38 112.546 1589 0 0 -56.4245 138.038 -205.85 +Number of digits in this event: 10 +Using G4ParticleGun... +Particle energy: 4.83203 LIN +Particle: proton Event: 39 -Number of tracker hits in this event = 30 - 39 121.064 455 8 1 -88.8856 103 35.55 - 39 124.985 1414 8 0 -88.886 103 34.15 - 39 125.437 455 7 1 -88.8982 102.993 5.55 - 39 126.189 1414 7 0 -88.8985 102.99 4.15 - 39 119.593 455 6 1 -88.9025 102.941 -24.45 - 39 101.647 1413 6 0 -88.902 102.939 -25.85 - 39 119.49 455 5 1 -88.9112 102.913 -54.45 - 39 130.474 1413 5 0 -88.9127 102.911 -55.85 - 39 108.726 455 4 1 -88.9445 102.868 -84.45 - 39 113.539 1413 4 0 -88.9448 102.866 -85.85 - 39 115.272 455 3 1 -88.9486 102.836 -114.45 - 39 171.715 1413 3 0 -88.9483 102.835 -115.85 - 39 130.378 455 2 1 -88.9438 102.826 -144.45 - 39 128.593 1413 2 0 -88.9423 102.825 -145.85 - 39 115.161 455 1 1 -88.9127 102.804 -174.45 - 39 126.403 1413 1 0 -88.9094 102.803 -175.85 - 39 113.282 456 0 1 -88.837 102.787 -204.45 - 39 126.113 1413 0 0 -88.8346 102.785 -205.85 - 39 67.2973 34 5 1 -173.32 48.2733 -54.54 - 39 202.787 455 0 1 -88.85 102.751 -204.628 - 39 88.4849 1402 0 0 -89.3185 100.75 -205.85 - 39 74.0728 1401 0 0 -89.4005 100.55 -205.98 - 39 16.728 1400 0 0 -89.407 100.35 -205.912 - 39 140.278 453 0 1 -89.3354 99.8961 -204.85 - 39 26.2547 454 0 1 -89.25 99.9341 -204.52 - 39 85.3379 1487 4 0 -98.3106 117.58 -86.2488 - 39 126.44 1488 4 0 -98.4 117.75 -86.0152 - 39 17.5347 402 4 1 -99.7058 118.944 -84.85 - 39 153.978 401 4 1 -99.75 118.985 -84.8086 - 39 57.2314 400 4 1 -100.002 119.247 -84.45 -Number of digits in this event = 18 -Using G4ParticleGun ... -9.1317 LIN -proton +Number of tracker hits in this event: 33 + 39 168.039 1231 9 1 66.3581 103.505 65.55 + 39 381.491 1416 9 0 66.3526 103.507 64.15 + 39 118.038 1230 8 1 66.2455 103.533 35.55 + 39 125.745 1416 8 0 66.2398 103.533 34.15 + 39 130.615 1230 7 1 66.1317 103.538 5.55 + 39 102.891 1416 7 0 66.1268 103.538 4.15 + 39 146.67 1229 6 1 66.0246 103.532 -24.45 + 39 96.3726 1416 6 0 66.0194 103.533 -25.85 + 39 126.552 1229 5 1 65.9197 103.538 -54.45 + 39 89.8232 1416 5 0 65.9171 103.537 -55.85 + 39 127.729 1229 4 1 65.864 103.518 -84.45 + 39 114.166 1416 4 0 65.8617 103.517 -85.85 + 39 101.967 1228 3 1 65.815 103.508 -114.45 + 39 117.835 1416 3 0 65.8126 103.508 -115.85 + 39 184.971 1228 2 1 65.768 103.521 -144.45 + 39 118.277 1416 2 0 65.7645 103.52 -145.85 + 39 106.872 1228 1 1 65.6937 103.489 -174.45 + 39 113.275 1416 1 0 65.6903 103.488 -175.85 + 39 136.766 1227 0 1 65.6241 103.472 -204.45 + 39 109.987 1416 0 0 65.6208 103.471 -205.85 + 39 16.5794 1638 8 0 -15.3582 147.908 33.75 + 39 114.232 1639 8 0 -15.4133 147.95 33.7719 + 39 176.929 1640 8 0 -15.7181 148.15 33.8305 + 39 348.42 1641 8 0 -16.1736 148.35 33.9453 + 39 25.8507 808 8 1 -18.3863 149.897 35.15 + 39 63.5003 807 8 1 -18.4507 149.96 35.1723 + 39 61.028 806 8 1 -18.65 150.155 35.2003 + 39 146.476 805 8 1 -18.85 150.346 35.2029 + 39 95.8424 804 8 1 -19.05 150.527 35.1922 + 39 4.39787 1665 8 0 -22.0455 153.336 34.15 + 39 76.0663 1666 8 0 -22.0616 153.35 34.1432 + 39 394.737 1667 8 0 -22.2486 153.55 34.0606 + 39 55.5982 1642 8 0 -16.4679 148.55 34.1112 +Number of digits in this event: 14 +Using G4ParticleGun... +Particle energy: 6.62806 LIN +Particle: proton Event: 40 -Number of tracker hits in this event = 27 - 40 154.449 481 10 1 -83.7281 -47.6554 95.55 - 40 96.0507 661 10 0 -83.7293 -47.657 94.15 - 40 133.794 481 9 1 -83.7535 -47.6867 65.55 - 40 196.962 661 9 0 -83.7548 -47.6868 64.15 - 40 99.8905 481 8 1 -83.7831 -47.6878 35.55 - 40 142.622 661 8 0 -83.7849 -47.6875 34.15 - 40 106.295 481 7 1 -83.8241 -47.6808 5.55 - 40 129.655 661 7 0 -83.8255 -47.6799 4.15 - 40 100.804 480 6 1 -83.852 -47.6625 -24.45 - 40 117.898 661 6 0 -83.8538 -47.6616 -25.85 - 40 114.437 480 5 1 -83.8942 -47.6454 -54.45 - 40 203.901 662 5 0 -83.8955 -47.6447 -55.85 - 40 118.906 480 4 1 -83.924 -47.6323 -84.45 - 40 95.5297 662 4 0 -83.9256 -47.6312 -85.85 - 40 113.502 480 3 1 -83.9479 -47.6013 -114.45 - 40 129.206 662 3 0 -83.9493 -47.5994 -115.85 - 40 108.399 480 2 1 -83.9763 -47.5603 -144.45 - 40 123.331 662 2 0 -83.9765 -47.5588 -145.85 - 40 107.674 480 1 1 -83.981 -47.5273 -174.45 - 40 139.149 662 1 0 -83.9803 -47.526 -175.85 - 40 106.411 480 0 1 -83.9687 -47.4971 -204.45 - 40 93.8971 662 0 0 -83.9683 -47.4951 -205.85 - 40 98.2327 663 5 0 -83.7504 -47.45 -56.1105 - 40 63.755 607 5 0 -77.3699 -58.5364 -56.2498 - 40 129.292 606 5 0 -77.3914 -58.65 -56.1801 - 40 189.988 605 5 0 -77.5249 -58.85 -56.1101 - 40 161.594 604 5 0 -77.5011 -59.05 -56.1121 -Number of digits in this event = 13 -Using G4ParticleGun ... -3.71169 LIN -proton +Number of tracker hits in this event: 24 + 40 228.353 732 11 1 -33.5741 56.7558 125.55 + 40 100.487 1183 11 0 -33.5736 56.7552 124.15 + 40 137.999 732 10 1 -33.5599 56.7437 95.55 + 40 125.08 1183 10 0 -33.5589 56.7433 94.15 + 40 133.669 732 9 1 -33.5364 56.7366 65.55 + 40 102.648 1183 9 0 -33.5364 56.7362 64.15 + 40 123.173 732 8 1 -33.5313 56.7306 35.55 + 40 114 1183 8 0 -33.5313 56.7308 34.15 + 40 103.182 732 7 1 -33.5296 56.7367 5.55 + 40 187.871 1183 7 0 -33.529 56.7364 4.15 + 40 133.543 732 6 1 -33.5127 56.727 -24.45 + 40 125.712 1183 6 0 -33.5114 56.7285 -25.85 + 40 252.728 732 5 1 -33.4845 56.7561 -54.45 + 40 141.449 1183 5 0 -33.4829 56.7591 -55.85 + 40 99.2784 732 4 1 -33.4562 56.8237 -84.45 + 40 142.998 1183 4 0 -33.4545 56.8273 -85.85 + 40 100.903 733 3 1 -33.4158 56.904 -114.45 + 40 109.072 1184 3 0 -33.413 56.9066 -115.85 + 40 141.426 733 2 1 -33.3578 56.9564 -144.45 + 40 148.676 1184 2 0 -33.3551 56.9588 -145.85 + 40 101.102 733 1 1 -33.3037 57.0014 -174.45 + 40 176.757 1184 1 0 -33.3014 57.0036 -175.85 + 40 97.4967 733 0 1 -33.2616 57.0497 -204.45 + 40 135.814 1185 0 0 -33.2614 57.0528 -205.85 +Number of digits in this event: 16 +Using G4ParticleGun... +Particle energy: 6.28533 LIN +Particle: proton Event: 41 -Number of tracker hits in this event = 24 - 41 166.839 1209 10 1 61.9886 -89.7982 95.55 - 41 100.501 451 10 0 61.987 -89.7986 94.15 - 41 128.735 1209 9 1 61.955 -89.8077 65.55 - 41 143.013 451 9 0 61.9548 -89.8074 64.15 - 41 113.574 1209 8 1 61.9551 -89.7938 35.55 - 41 101.552 451 8 0 61.9541 -89.7936 34.15 - 41 125.77 1209 7 1 61.9346 -89.7946 5.55 - 41 170.717 451 7 0 61.9319 -89.7931 4.15 - 41 99.3825 1209 6 1 61.8817 -89.76 -24.45 - 41 105.902 451 6 0 61.878 -89.7577 -25.85 - 41 105.302 1208 5 1 61.7995 -89.7116 -54.45 - 41 118.176 451 5 0 61.7973 -89.7114 -55.85 - 41 82.1804 1208 4 1 61.7583 -89.7042 -84.45 - 41 158.754 451 4 0 61.7565 -89.7042 -85.85 - 41 108.082 1208 3 1 61.725 -89.7052 -114.45 - 41 114.874 451 3 0 61.7233 -89.7049 -115.85 - 41 102.026 1208 2 1 61.6886 -89.6967 -144.45 - 41 125.338 451 2 0 61.6877 -89.6951 -145.85 - 41 100.887 1208 1 1 61.6746 -89.6592 -174.45 - 41 168.81 451 1 0 61.6744 -89.6583 -175.85 - 41 120.052 1208 0 1 61.672 -89.632 -204.45 - 41 97.4221 452 0 0 61.6729 -89.6307 -205.85 - 41 26.298 610 3 1 -57.9764 -110.29 -114.839 - 41 24.03 548 4 0 168.47 -70.3055 -86.2251 -Number of digits in this event = 13 -Using G4ParticleGun ... -7.64618 LIN -proton +Number of tracker hits in this event: 27 + 41 134.301 670 9 1 -45.9927 113.597 65.55 + 41 164.481 1467 9 0 -45.9933 113.596 64.15 + 41 94.8147 670 8 1 -46.0081 113.594 35.55 + 41 110.708 1467 8 0 -46.0088 113.595 34.15 + 41 94.8369 670 7 1 -46.0253 113.611 5.55 + 41 98.7257 1467 7 0 -46.0261 113.611 4.15 + 41 117.716 670 6 1 -46.0385 113.626 -24.45 + 41 129.862 1467 6 0 -46.0392 113.627 -25.85 + 41 134.009 669 5 1 -46.0591 113.654 -54.45 + 41 95.3406 1467 5 0 -46.0602 113.656 -55.85 + 41 161.163 669 4 1 -46.0864 113.68 -84.45 + 41 169.438 1467 4 0 -46.0862 113.68 -85.85 + 41 110.464 669 3 1 -46.0823 113.677 -114.45 + 41 100.51 1467 3 0 -46.0822 113.677 -115.85 + 41 121.145 669 2 1 -46.08 113.676 -144.45 + 41 132.972 1467 2 0 -46.0804 113.676 -145.85 + 41 151.397 669 1 1 -46.087 113.685 -174.45 + 41 103.707 1467 1 0 -46.0886 113.685 -175.85 + 41 364.965 669 0 1 -46.1243 113.682 -204.45 + 41 188.227 1467 0 0 -46.126 113.683 -205.85 + 41 10.2743 1124 3 1 44.85 111.619 -114.724 + 41 325.737 670 1 1 -46.05 113.656 -174.756 + 41 185.834 1460 1 0 -45.0957 112.226 -175.85 + 41 58.0815 1459 1 0 -45.0669 112.149 -175.891 + 41 69.6971 1458 1 0 -45.0433 111.95 -175.953 + 41 39.292 1457 1 0 -45.0446 111.75 -175.922 + 41 12.3266 671 1 1 -45.8147 111.703 -174.85 +Number of digits in this event: 14 +Using G4ParticleGun... +Particle energy: 4.48101 LIN +Particle: proton Event: 42 -Number of tracker hits in this event = 31 - 42 125.286 457 10 1 -88.5127 22.9394 95.55 - 42 96.7406 1014 10 0 -88.5132 22.9392 94.15 - 42 97.0858 457 9 1 -88.5244 22.9346 65.55 - 42 206.729 1014 9 0 -88.525 22.9358 64.15 - 42 126.633 457 8 1 -88.5385 22.9608 35.55 - 42 214.501 1014 8 0 -88.5395 22.9615 34.15 - 42 115.528 457 7 1 -88.5612 22.9751 5.55 - 42 114.719 1014 7 0 -88.562 22.9754 4.15 - 42 85.2508 457 6 1 -88.5813 22.9841 -24.45 - 42 119.852 1014 6 0 -88.5806 22.9841 -25.85 - 42 168.605 457 5 1 -88.5643 22.9849 -54.45 - 42 114.113 1014 5 0 -88.5639 22.9857 -55.85 - 42 99.1728 457 4 1 -88.5553 23.0025 -84.45 - 42 110.127 1014 4 0 -88.5544 23.0038 -85.85 - 42 97.1976 457 3 1 -88.5343 23.0324 -114.45 - 42 104.062 1014 3 0 -88.5325 23.034 -115.85 - 42 278.093 457 2 1 -88.4962 23.0685 -144.45 - 42 124.739 1015 2 0 -88.4945 23.0707 -145.85 - 42 161.866 457 1 1 -88.4627 23.113 -174.45 - 42 159.649 1015 1 0 -88.4619 23.115 -175.85 - 42 107.362 458 0 1 -88.4453 23.1535 -204.45 - 42 104.288 1015 0 0 -88.4438 23.1548 -205.85 - 42 324.403 991 0 0 -121.785 18.2797 -206.25 - 42 137.606 990 0 0 -122.292 18.25 -206.098 - 42 100.868 989 0 0 -122.675 18.05 -206.154 - 42 161.306 1094 0 0 -82.1203 38.8544 -206.25 - 42 86.3958 1095 0 0 -82.0047 39.0505 -206.035 - 42 158.109 486 0 1 -82.7645 39.2336 -204.85 - 42 5.00228 1011 2 0 -88.1067 22.2661 -145.85 - 42 114.974 1010 2 0 -88.1013 22.25 -145.877 - 42 179.752 458 5 1 -88.4499 23.0022 -54.805 -Number of digits in this event = 15 -Using G4ParticleGun ... -1.85468 LIN -proton +Number of tracker hits in this event: 25 + 42 107.713 1241 10 1 68.3196 -58.5747 95.55 + 42 98.6776 607 10 0 68.3199 -58.5748 94.15 + 42 181.626 1241 9 1 68.3268 -58.5825 65.55 + 42 106.786 607 9 0 68.3268 -58.582 64.15 + 42 121.512 1241 8 1 68.3247 -58.5738 35.55 + 42 124.7 607 8 0 68.3225 -58.5758 34.15 + 42 106.401 1241 7 1 68.2803 -58.6157 5.55 + 42 114.57 607 7 0 68.2776 -58.6185 4.15 + 42 116.151 1240 6 1 68.2214 -58.6745 -24.45 + 42 178.366 606 6 0 68.2169 -58.6783 -25.85 + 42 127.747 1240 5 1 68.1265 -58.7572 -54.45 + 42 187.725 606 5 0 68.1216 -58.7612 -55.85 + 42 159.163 1239 4 1 68.0203 -58.8368 -84.45 + 42 105.898 606 4 0 68.0156 -58.8397 -85.85 + 42 248.185 1239 3 1 67.9169 -58.9014 -114.45 + 42 225.661 605 3 0 67.9127 -58.9034 -115.85 + 42 112.117 1238 2 1 67.8226 -58.9399 -144.45 + 42 96.6735 605 2 0 67.8176 -58.9412 -145.85 + 42 113.681 1238 1 1 67.7222 -58.9659 -174.45 + 42 154.958 605 1 0 67.7181 -58.9667 -175.85 + 42 246.297 1237 0 1 67.6377 -58.9845 -204.45 + 42 219.427 605 0 0 67.632 -58.9855 -205.85 + 42 27.4455 1235 0 1 67.1803 -58.6424 -204.85 + 42 13.9696 607 0 0 67.2339 -58.5768 -205.85 + 42 7.80111 606 7 0 68.2891 -58.6501 3.76438 +Number of digits in this event: 13 +Using G4ParticleGun... +Particle energy: 2.83015 LIN +Particle: proton Event: 43 -Number of tracker hits in this event = 127 - 43 116.657 1034 11 1 26.9206 -74.2107 125.55 - 43 131.807 529 11 0 26.9201 -74.2097 124.15 - 43 114.013 1034 10 1 26.9211 -74.1893 95.55 - 43 103.493 529 10 0 26.9197 -74.1904 94.15 - 43 155.419 1034 9 1 26.8902 -74.2113 65.55 - 43 116.295 529 9 0 26.8884 -74.2127 64.15 - 43 140.901 1033 8 1 26.8476 -74.2374 35.55 - 43 107.829 529 8 0 26.8456 -74.2372 34.15 - 43 17197.9 1033 7 1 26.7701 -74.2401 5.55 - 43 660.84 526 7 0 27.3097 -74.8219 4.15 - 43 6559.83 525 7 0 27.3358 -74.85 4.09906 - 43 849.824 1032 7 1 26.65 -74.2156 5.29696 - 43 456.255 1031 7 1 26.45 -74.172 5.45434 - 43 2790.77 584 8 0 -16.3528 -63.1869 33.75 - 43 101.694 585 8 0 -16.9213 -63.05 34.134 - 43 527.173 807 8 1 -18.5295 -62.6783 35.15 - 43 1070.73 806 8 1 -18.65 -62.6504 35.2261 - 43 1133.83 805 8 1 -18.85 -62.6074 35.3519 - 43 653.426 804 8 1 -19.05 -62.5614 35.4785 - 43 60.0591 534 7 0 26.9338 -73.1258 4.15 - 43 109.319 535 7 0 26.945 -73.05 4.07839 - 43 116.002 536 7 0 26.9747 -72.85 3.8898 - 43 284.022 1055 6 1 31.2167 -43.1375 -24.45 - 43 43.6213 691 6 0 31.3227 -41.7292 -25.85 - 43 164.641 692 6 0 31.3286 -41.65 -25.9289 - 43 211.403 693 6 0 31.344 -41.45 -26.1302 - 43 288.267 1066 5 1 33.2752 -13.3822 -54.45 - 43 3.90541 838 5 0 33.2179 -12.2629 -55.85 - 43 261.735 839 5 0 33.2172 -12.25 -55.8662 - 43 139.559 840 5 0 33.2055 -12.05 -56.116 - 43 271.518 1059 4 1 31.9041 10.8867 -84.45 - 43 199.452 960 4 0 31.9024 12.0938 -85.85 - 43 487.908 961 4 0 31.9017 12.25 -86.0322 - 43 280.216 1059 3 1 32.0112 35.9634 -114.45 - 43 122.871 1085 3 0 32.0011 37.1498 -115.85 - 43 147.964 1086 3 0 32.0002 37.25 -115.969 - 43 24.8277 1087 3 0 31.9979 37.45 -116.206 - 43 365.097 1059 2 1 31.889 61.3503 -144.45 - 43 16.4223 1211 2 0 31.8394 62.4377 -145.85 - 43 146.82 1212 2 0 31.8389 62.45 -145.866 - 43 87.6485 1213 2 0 31.8305 62.65 -146.124 - 43 245.085 1055 1 1 31.1085 84.1787 -174.45 - 43 13.8824 1325 1 0 30.9223 85.2287 -175.85 - 43 178.149 1326 1 0 30.9185 85.25 -175.878 - 43 51.867 1327 1 0 30.8823 85.45 -176.146 - 43 223.102 1039 0 1 27.9546 106.706 -204.45 - 43 110.142 1437 0 0 27.7947 107.668 -205.85 - 43 186.41 1438 0 0 27.781 107.75 -205.97 - 43 196.9 962 4 0 31.895 12.45 -86.1852 - 43 62.0043 694 6 0 31.3405 -41.2499 -26.235 - 43 147.809 1034 7 1 26.85 -74.3275 5.31138 - 43 57.2324 404 8 0 50.8941 -99.3084 33.75 - 43 128.356 403 8 0 50.9342 -99.35 33.7973 - 43 71.7059 402 8 0 51.1277 -99.55 34.0248 - 43 270.801 1160 8 1 52.0866 -100.536 35.15 - 43 203.77 1161 8 1 52.25 -100.703 35.3417 - 43 74.3638 269 9 0 74.7537 -126.217 63.75 - 43 108.267 268 9 0 74.8706 -126.35 63.8977 - 43 10.5593 267 9 0 75.0468 -126.55 64.1188 - 43 180.323 1279 9 1 75.881 -127.48 65.15 - 43 162.499 1280 9 1 76.05 -127.669 65.3589 - 43 26.7531 939 13 1 7.92659 -119.865 185.204 - 43 285.28 1281 9 1 76.3384 -127.986 65.55 - 43 247.186 260 9 0 76.4684 -128.099 64.15 - 43 165.842 1295 8 1 79.2179 -130.569 35.55 - 43 194.716 247 8 0 79.295 -130.626 34.15 - 43 228.942 1303 7 1 80.77 -131.557 5.55 - 43 308.63 243 7 0 80.8365 -131.547 4.15 - 43 155.703 1313 6 1 82.7064 -131.308 -24.45 - 43 211.122 244 6 0 82.7365 -131.317 -25.85 - 43 189.711 1317 5 1 83.4521 -131.693 -54.45 - 43 319.792 242 5 0 83.534 -131.641 -55.85 - 43 247.67 1326 4 1 85.4087 -129.896 -84.45 - 43 167.821 252 4 0 85.5193 -129.647 -85.85 - 43 195.722 1336 3 1 87.3599 -124.833 -114.45 - 43 18.264 277 3 0 87.4221 -124.56 -115.85 - 43 201.492 278 3 0 87.4243 -124.55 -115.899 - 43 199.242 1342 2 1 88.6202 -118.942 -144.45 - 43 195.814 307 2 0 88.7043 -118.697 -145.85 - 43 185.81 1351 1 1 90.4276 -113.976 -174.45 - 43 209.854 331 1 0 90.4919 -113.814 -175.85 - 43 185.703 1357 0 1 91.6629 -110.537 -204.45 - 43 210.328 348 0 0 91.761 -110.405 -205.85 - 43 108.867 1327 4 1 85.45 -129.961 -84.4948 - 43 161.881 1328 4 1 85.6502 -129.977 -84.538 - 43 53.8229 264 4 0 83.8028 -127.193 -86.2081 - 43 221.172 530 7 0 26.5655 -73.9526 4.15 - 43 12.5366 531 7 0 26.4932 -73.85 3.77464 - 43 51.2781 1005 6 1 21.0703 -66.2422 -24.45 - 43 167.69 1004 6 1 21.05 -66.2129 -24.5585 - 43 73.1367 570 6 0 20.807 -65.8631 -25.85 - 43 157.677 571 6 0 20.7979 -65.85 -25.8982 - 43 199.462 976 5 1 15.4215 -58.1214 -54.45 - 43 231.026 611 5 0 15.1701 -57.7528 -55.85 - 43 3.72426 612 5 0 15.1 -57.65 -56.2411 - 43 238.37 949 4 1 10.011 -50.2088 -84.45 - 43 236.346 651 4 0 9.75022 -49.8355 -85.85 - 43 31.9966 922 3 1 4.46161 -42.2223 -114.45 - 43 191.824 921 3 1 4.45 -42.206 -114.509 - 43 190.581 691 3 0 4.1831 -41.8361 -115.85 - 43 307.053 892 2 1 -1.51663 -33.9403 -144.45 - 43 199.129 732 2 0 -1.78126 -33.5449 -145.85 - 43 29.1845 733 2 0 -1.84454 -33.45 -146.186 - 43 197.547 864 1 1 -7.16058 -25.4558 -174.45 - 43 28.9041 774 1 0 -7.43124 -25.0623 -175.85 - 43 272.035 775 1 0 -7.43967 -25.05 -175.894 - 43 151.657 835 0 1 -13.0023 -17.0227 -204.45 - 43 94.2597 834 0 1 -13.05 -16.9556 -204.687 - 43 210.813 817 0 0 -13.2825 -16.6256 -205.85 - 43 114.405 829 4 0 -10.5489 -14.1744 -86.25 - 43 150.567 529 7 0 26.881 -74.2291 4.15 - 43 151.347 1049 6 1 29.8809 -73.9214 -24.45 - 43 158.609 530 6 0 30.0309 -73.9042 -25.85 - 43 116.779 1065 5 1 33.1012 -73.5763 -54.45 - 43 130.261 532 5 0 33.2533 -73.5558 -55.85 - 43 149.991 1081 4 1 36.3759 -73.1461 -84.45 - 43 161.739 534 4 0 36.531 -73.1252 -85.85 - 43 113.836 1098 3 1 39.7049 -72.7228 -114.45 - 43 145.759 536 3 0 39.8608 -72.706 -115.85 - 43 7.35354 1114 2 1 43.0463 -72.363 -144.45 - 43 121.409 1115 2 1 43.05 -72.3623 -144.483 - 43 313.788 538 2 0 43.2043 -72.3359 -145.85 - 43 100.083 1131 1 1 46.418 -71.771 -174.45 - 43 29.1052 1132 1 1 46.45 -71.766 -174.735 - 43 184.435 541 1 0 46.5751 -71.7455 -175.85 - 43 181.196 1148 0 1 49.7816 -71.2017 -204.45 - 43 140.899 544 0 0 49.9406 -71.1785 -205.85 -Number of digits in this event = 90 -Using G4ParticleGun ... -5.44912 LIN -proton +Number of tracker hits in this event: 36 + 43 185.314 428 10 1 -94.4176 32.3353 95.55 + 43 151.366 1061 10 0 -94.4165 32.3342 94.15 + 43 364.116 428 9 1 -94.4016 32.3178 65.55 + 43 130.174 1061 9 0 -94.4006 32.3173 64.15 + 43 120.247 428 8 1 -94.3787 32.304 35.55 + 43 108.874 1061 8 0 -94.3778 32.3033 34.15 + 43 98.4769 428 7 1 -94.3529 32.2939 5.55 + 43 115.851 1061 7 0 -94.3508 32.2923 4.15 + 43 134.572 429 6 1 -94.3035 32.2635 -24.45 + 43 192.549 1061 6 0 -94.3035 32.2608 -25.85 + 43 99.4339 429 5 1 -94.292 32.205 -54.45 + 43 131.987 1060 5 0 -94.2889 32.2025 -55.85 + 43 112.519 429 4 1 -94.2231 32.1501 -84.45 + 43 123.111 1060 4 0 -94.2211 32.1462 -85.85 + 43 119.651 429 3 1 -94.1864 32.0689 -114.45 + 43 104.455 1060 3 0 -94.1839 32.0653 -115.85 + 43 181.253 430 2 1 -94.1366 31.9946 -144.45 + 43 193.587 1059 2 0 -94.1356 31.9904 -145.85 + 43 132.376 430 1 1 -94.1206 31.9034 -174.45 + 43 138.283 1059 1 0 -94.1208 31.8987 -175.85 + 43 110.993 430 0 1 -94.1283 31.8013 -204.45 + 43 172.53 1058 0 0 -94.1283 31.7994 -205.85 + 43 72.7934 457 0 1 -88.5882 8.37737 -204.85 + 43 64.9683 260 2 1 -127.95 153.853 -144.496 + 43 97.2959 261 2 1 -127.95 154.071 -144.545 + 43 331.825 262 2 1 -127.75 154.157 -144.717 + 43 56.734 431 2 1 -93.95 31.9829 -144.722 + 43 80.2392 432 2 1 -93.75 32.0637 -144.736 + 43 29.9485 433 2 1 -93.55 32.1869 -144.816 + 43 29.4062 1066 2 0 -92.2029 33.3979 -145.85 + 43 93.6322 1067 2 0 -92.1606 33.45 -145.884 + 43 359.087 445 2 1 -91.0186 39.0379 -144.85 + 43 9.36756 1092 4 0 -93.6012 38.4627 -86.2499 + 43 22.5722 1091 4 0 -93.6144 38.45 -86.2341 + 43 164.709 786 4 0 -136.501 -22.7808 -86.25 + 43 118.669 429 10 1 -94.35 32.3037 95.5065 +Number of digits in this event: 18 +Using G4ParticleGun... +Particle energy: 9.84337 LIN +Particle: proton Event: 44 -Number of tracker hits in this event = 24 - 44 98.4869 753 11 1 -29.2762 -36.3222 125.55 - 44 108.447 718 11 0 -29.2761 -36.3234 124.15 - 44 246.386 753 10 1 -29.2733 -36.3534 95.55 - 44 166.377 718 10 0 -29.274 -36.3534 94.15 - 44 110.089 753 9 1 -29.2921 -36.3532 65.55 - 44 117.258 718 9 0 -29.2933 -36.3524 64.15 - 44 100.942 753 8 1 -29.3162 -36.3357 35.55 - 44 185.573 718 8 0 -29.3188 -36.3336 34.15 - 44 104.092 753 7 1 -29.367 -36.2848 5.55 - 44 91.5512 718 7 0 -29.3696 -36.2832 4.15 - 44 115.815 753 6 1 -29.4249 -36.2495 -24.45 - 44 120.256 719 6 0 -29.4265 -36.248 -25.85 - 44 102.165 752 5 1 -29.463 -36.2191 -54.45 - 44 107.256 719 5 0 -29.4655 -36.2167 -55.85 - 44 128.424 752 4 1 -29.5168 -36.1659 -84.45 - 44 102.022 719 4 0 -29.5199 -36.1641 -85.85 - 44 95.477 752 3 1 -29.5825 -36.1223 -114.45 - 44 111.218 719 3 0 -29.5852 -36.1205 -115.85 - 44 108.581 752 2 1 -29.6422 -36.082 -144.45 - 44 127.103 719 2 0 -29.6449 -36.079 -145.85 - 44 95.2088 751 1 1 -29.6965 -36.0189 -174.45 - 44 244.333 720 1 0 -29.6993 -36.0172 -175.85 - 44 115.287 751 0 1 -29.7599 -35.9856 -204.45 - 44 127.475 720 0 0 -29.7639 -35.9848 -205.85 -Number of digits in this event = 9 -Using G4ParticleGun ... -3.65994 LIN -proton +Number of tracker hits in this event: 40 + 44 106.382 1114 10 1 42.9282 -84.5159 95.55 + 44 123.748 477 10 0 42.9287 -84.5158 94.15 + 44 102.897 1114 9 1 42.9397 -84.5078 65.55 + 44 123.86 477 9 0 42.9399 -84.5071 64.15 + 44 141.254 1114 8 1 42.9428 -84.4904 35.55 + 44 168.64 477 8 0 42.9431 -84.4901 34.15 + 44 346.849 1114 7 1 42.9486 -84.4822 5.55 + 44 136.339 477 7 0 42.9487 -84.4816 4.15 + 44 172.106 1114 6 1 42.9547 -84.467 -24.45 + 44 137.699 477 6 0 42.9566 -84.4659 -25.85 + 44 97.485 1114 5 1 42.9931 -84.4439 -54.45 + 44 116.788 478 5 0 42.9947 -84.4428 -55.85 + 44 212.122 1114 4 1 43.0294 -84.4174 -84.45 + 44 116.204 478 4 0 43.0306 -84.4164 -85.85 + 44 153.891 1115 3 1 43.0586 -84.3966 -114.45 + 44 260.32 478 3 0 43.0593 -84.3955 -115.85 + 44 214.201 1115 2 1 43.0709 -84.3715 -144.45 + 44 103.921 478 2 0 43.0715 -84.3704 -145.85 + 44 114.448 1115 1 1 43.0797 -84.3508 -174.45 + 44 173.337 478 1 0 43.0799 -84.3505 -175.85 + 44 185.021 1115 0 1 43.0832 -84.343 -204.45 + 44 127.409 478 0 0 43.0845 -84.3426 -205.85 + 44 5.35191 1114 0 1 43.0497 -84.2397 -204.827 + 44 112.642 483 0 0 42.4818 -83.4011 -205.851 + 44 63.0186 484 0 0 42.3754 -83.2497 -206.066 + 44 203.618 556 0 0 47.6551 -68.7736 -206.25 + 44 138.794 557 0 0 47.7829 -68.65 -205.867 + 44 36.1864 1142 0 1 48.5781 -67.4711 -204.85 + 44 64.1886 1143 0 1 48.6502 -67.4072 -204.765 + 44 43.7235 1144 0 1 48.8501 -67.3978 -204.597 + 44 69.9442 1145 0 1 49.0504 -67.4773 -204.502 + 44 69.4478 1146 0 1 49.25 -67.6237 -204.484 + 44 63.6136 1147 0 1 49.45 -67.6455 -204.484 + 44 75.8324 1148 0 1 49.65 -67.6547 -204.572 + 44 95.4033 1149 0 1 49.85 -67.7425 -204.646 + 44 51.8551 1113 7 1 42.85 -84.3342 5.28017 + 44 170.739 479 7 0 42.2301 -84.2218 4.15 + 44 74.8212 480 7 0 41.8321 -84.05 4.0353 + 44 102.491 481 7 0 41.8046 -83.85 3.89924 + 44 199.243 628 7 0 6.03558 -54.4408 3.75 +Number of digits in this event: 20 +Using G4ParticleGun... +Particle energy: 2.91458 LIN +Particle: proton Event: 45 -Number of tracker hits in this event = 16 - 45 156.391 192 7 1 -141.62 -40.3912 5.55 - 45 91.6655 698 7 0 -141.621 -40.3914 4.15 - 45 341.148 192 6 1 -141.647 -40.3958 -24.45 - 45 113.724 698 6 0 -141.648 -40.3941 -25.85 - 45 114.187 192 5 1 -141.681 -40.3524 -54.45 - 45 141.188 698 5 0 -141.682 -40.3501 -55.85 - 45 99.3101 192 4 1 -141.701 -40.3011 -84.45 - 45 113.612 698 4 0 -141.701 -40.2982 -85.85 - 45 130.821 192 3 1 -141.695 -40.2387 -114.45 - 45 111.483 699 3 0 -141.695 -40.2347 -115.85 - 45 114.188 192 2 1 -141.688 -40.1529 -144.45 - 45 93.8534 699 2 0 -141.687 -40.149 -145.85 - 45 183.26 192 1 1 -141.66 -40.07 -174.45 - 45 101.283 699 1 0 -141.659 -40.0666 -175.85 - 45 116.529 192 0 1 -141.639 -40.0016 -204.45 - 45 129.609 700 0 0 -141.639 -39.9972 -205.85 -Number of digits in this event = 10 -Using G4ParticleGun ... -4.29044 LIN -proton +Number of tracker hits in this event: 47 + 45 236.568 487 10 1 -82.5791 -39.8182 95.55 + 45 128.929 701 10 0 -82.5781 -39.8175 94.15 + 45 136.03 487 9 1 -82.5572 -39.8125 65.55 + 45 125.859 701 9 0 -82.5577 -39.8136 64.15 + 45 115.295 487 8 1 -82.5742 -39.8482 35.55 + 45 177.277 700 8 0 -82.5759 -39.8523 34.15 + 45 133.663 487 7 1 -82.6095 -39.9305 5.55 + 45 115.611 700 7 0 -82.6104 -39.9356 4.15 + 45 118.346 487 6 1 -82.6224 -40.0394 -24.45 + 45 119.615 700 6 0 -82.6213 -40.046 -25.85 + 45 230.6 487 5 1 -82.5938 -40.1794 -54.45 + 45 176.046 699 5 0 -82.5928 -40.1903 -55.85 + 45 120.211 487 4 1 -82.5677 -40.4058 -84.45 + 45 316.248 698 4 0 -82.5657 -40.4145 -85.85 + 45 193.044 487 3 1 -82.5159 -40.5947 -114.45 + 45 113.779 697 3 0 -82.5156 -40.6045 -115.85 + 45 256.366 487 2 1 -82.5047 -40.8019 -144.45 + 45 276.526 696 2 0 -82.5047 -40.8139 -145.85 + 45 114.437 487 1 1 -82.5024 -41.0607 -174.45 + 45 91.4341 694 1 0 -82.5017 -41.0723 -175.85 + 45 238.425 487 0 1 -82.4868 -41.2955 -204.45 + 45 130.657 693 0 0 -82.4859 -41.3064 -205.85 + 45 198.819 698 2 0 -82.6733 -40.4139 -145.85 + 45 144.173 462 1 1 -87.4986 -34.4709 -174.45 + 45 1.957 463 1 1 -87.45 -34.4476 -174.837 + 45 101.176 729 1 0 -87.2234 -34.2303 -175.85 + 45 33.3335 497 0 1 -80.5747 -27.6818 -204.45 + 45 174.59 496 0 1 -80.6502 -27.7422 -204.56 + 45 123.471 758 0 0 -81.183 -28.2818 -205.85 + 45 281.624 625 0 0 -112.439 -55.0153 -206.25 + 45 199.503 624 0 0 -112.467 -55.05 -206.192 + 45 550.998 726 1 0 -87.8971 -34.7508 -175.85 + 45 17.4334 451 1 1 -89.8006 -34.3937 -174.85 + 45 57.7854 450 1 1 -89.85 -34.3915 -174.826 + 45 133.093 725 1 0 -91.1748 -34.85 -176.073 + 45 248.108 699 4 0 -82.4642 -40.25 -86.1557 + 45 57.3328 700 4 0 -82.3829 -40.0499 -86.097 + 45 170.467 486 5 1 -82.65 -40.169 -54.4697 + 45 203.924 486 6 1 -82.6903 -39.9513 -24.45 + 45 332.473 485 6 1 -82.85 -39.3517 -24.655 + 45 200.493 484 6 1 -83.05 -38.4477 -24.6288 + 45 145.691 483 6 1 -83.2503 -37.9333 -24.6249 + 45 81.1855 482 6 1 -83.45 -37.649 -24.4711 + 45 140.889 712 6 0 -83.3787 -37.5158 -25.85 + 45 18.1687 1013 6 0 -176.991 22.8149 -26.25 + 45 54.4308 1014 6 0 -177.032 22.85 -26.2362 + 45 32.2447 1015 6 0 -177.105 23.0501 -26.2211 +Number of digits in this event: 34 +Using G4ParticleGun... +Particle energy: 2.48987 LIN +Particle: proton Event: 46 -Number of tracker hits in this event = 25 - 46 102.742 1067 11 1 33.5332 -27.3129 125.55 - 46 161.877 763 11 0 33.533 -27.3137 124.15 - 46 199.359 1067 10 1 33.523 -27.3397 95.55 - 46 122.578 763 10 0 33.5237 -27.3402 94.15 - 46 132.18 1067 9 1 33.5435 -27.343 65.55 - 46 116.822 763 9 0 33.5441 -27.3407 64.15 - 46 130.016 1067 8 1 33.5513 -27.2943 35.55 - 46 99.2085 763 8 0 33.5519 -27.291 34.15 - 46 121.825 1067 7 1 33.5699 -27.2252 5.55 - 46 98.8392 764 7 0 33.5711 -27.222 4.15 - 46 109.99 1067 6 1 33.5933 -27.167 -24.45 - 46 130.641 764 6 0 33.5956 -27.1651 -25.85 - 46 37.4918 1067 5 1 33.6497 -27.1269 -54.45 - 46 52.6992 1068 5 1 33.65 -27.1267 -54.6191 - 46 118.371 764 5 0 33.6523 -27.1251 -55.85 - 46 119.869 1068 4 1 33.7031 -27.0918 -84.45 - 46 111.344 764 4 0 33.7052 -27.0885 -85.85 - 46 136.995 1068 3 1 33.75 -27.0268 -114.45 - 46 100.667 765 3 0 33.7535 -27.0246 -115.85 - 46 123.779 1068 2 1 33.8235 -26.9788 -144.45 - 46 113.021 765 2 0 33.8257 -26.9774 -145.85 - 46 115.66 1069 1 1 33.8702 -26.9487 -174.45 - 46 137.184 765 1 0 33.8725 -26.9464 -175.85 - 46 106.433 1069 0 1 33.9339 -26.9094 -204.45 - 46 109.516 765 0 0 33.9354 -26.9056 -205.85 -Number of digits in this event = 11 -Using G4ParticleGun ... -5.00202 LIN -proton +Number of tracker hits in this event: 25 + 46 114.686 986 11 1 17.4184 8.20221 125.55 + 46 119.749 940 11 0 17.42 8.20385 124.15 + 46 286.649 986 10 1 17.449 8.23761 95.55 + 46 214.712 940 10 0 17.4514 8.23894 94.15 + 46 135.309 987 9 1 17.5043 8.26554 65.55 + 46 98.2913 941 9 0 17.5028 8.2651 64.15 + 46 130.245 987 8 1 17.4698 8.26235 35.55 + 46 116.757 941 8 0 17.4692 8.26089 34.15 + 46 227.918 987 7 1 17.4557 8.2324 5.55 + 46 121.092 940 7 0 17.4555 8.23161 4.15 + 46 163.909 987 6 1 17.4543 8.21179 -24.45 + 46 169.519 940 6 0 17.453 8.20705 -25.85 + 46 111.503 986 5 1 17.4183 8.10087 -54.45 + 46 187.455 940 5 0 17.4161 8.09604 -55.85 + 46 144.694 986 4 1 17.3559 7.9965 -84.45 + 46 105.908 939 4 0 17.3512 7.99147 -85.85 + 46 106.238 986 3 1 17.2589 7.88407 -114.45 + 46 113.198 939 3 0 17.2522 7.87593 -115.85 + 46 97.018 985 2 1 17.1217 7.70464 -144.45 + 46 100.812 938 2 0 17.1155 7.696 -145.85 + 46 137.723 984 1 1 16.9912 7.52077 -174.45 + 46 90.8819 937 1 0 16.9862 7.5128 -175.85 + 46 89.1939 984 0 1 16.8863 7.33436 -204.45 + 46 103.446 936 0 0 16.8822 7.32646 -205.85 + 46 185.237 987 10 1 17.45 8.23804 95.2341 +Number of digits in this event: 13 +Using G4ParticleGun... +Particle energy: 1.90863 LIN +Particle: proton Event: 47 -Number of tracker hits in this event = 24 - 47 88.4199 1496 9 1 119.415 12.5981 65.55 - 47 136.557 962 9 0 119.415 12.5977 64.15 - 47 123.335 1496 8 1 119.413 12.5927 35.55 - 47 135.29 962 8 0 119.414 12.5917 34.15 - 47 91.8514 1496 7 1 119.431 12.5747 5.55 - 47 108.913 962 7 0 119.432 12.5748 4.15 - 47 116.686 1496 6 1 119.453 12.5767 -24.45 - 47 115.794 962 6 0 119.454 12.5784 -25.85 - 47 108.397 1496 5 1 119.472 12.6163 -54.45 - 47 101.698 962 5 0 119.474 12.6171 -55.85 - 47 90.2674 1496 4 1 119.508 12.6298 -84.45 - 47 186.056 962 4 0 119.51 12.6302 -85.85 - 47 165.189 1497 3 1 119.551 12.6424 -114.45 - 47 109.916 962 3 0 119.554 12.6428 -115.85 - 47 133.177 1497 2 1 119.614 12.6483 -144.45 - 47 112.938 962 2 0 119.618 12.6469 -145.85 - 47 114.894 1497 1 1 119.698 12.6195 -174.45 - 47 108.018 962 1 0 119.701 12.619 -175.85 - 47 134.174 1498 0 1 119.773 12.6112 -204.45 - 47 139.774 962 0 0 119.777 12.6113 -205.85 - 47 91.59 1496 3 1 119.55 12.6426 -114.508 - 47 50.4183 1495 3 1 119.35 12.6798 -114.731 - 47 143.627 965 3 0 118.797 13.0633 -115.85 - 47 11.86 964 3 0 118.526 13.05 -116.224 -Number of digits in this event = 10 -Using G4ParticleGun ... -7.44684 LIN -proton +Number of tracker hits in this event: 27 + 47 140.614 519 11 1 -76.0804 -24.8195 125.55 + 47 110.405 776 11 0 -76.0803 -24.8211 124.15 + 47 133.749 519 10 1 -76.0668 -24.8508 95.55 + 47 124.053 775 10 0 -76.0651 -24.8527 94.15 + 47 162.214 520 9 1 -76.0339 -24.9006 65.55 + 47 126.23 775 9 0 -76.0313 -24.9015 64.15 + 47 173.723 520 8 1 -75.9826 -24.9246 35.55 + 47 166.724 775 8 0 -75.9797 -24.9259 34.15 + 47 123.317 520 7 1 -75.9203 -24.9609 5.55 + 47 116.999 775 7 0 -75.9153 -24.9661 4.15 + 47 97.1754 521 6 1 -75.8079 -25.0556 -24.45 + 47 94.023 774 6 0 -75.8021 -25.0602 -25.85 + 47 145.621 521 5 1 -75.6959 -25.151 -54.45 + 47 102.5 774 5 0 -75.6911 -25.1536 -55.85 + 47 120.279 522 4 1 -75.5933 -25.2105 -84.45 + 47 201.706 774 4 0 -75.5895 -25.2116 -85.85 + 47 156.373 522 3 1 -75.5082 -25.2422 -114.45 + 47 98.2865 774 3 0 -75.5059 -25.2464 -115.85 + 47 83.9942 522 2 1 -75.4584 -25.3393 -144.45 + 47 100.376 773 2 0 -75.4542 -25.346 -145.85 + 47 116.385 523 1 1 -75.3707 -25.477 -174.45 + 47 125.47 772 1 0 -75.3659 -25.4837 -175.85 + 47 130.489 523 0 1 -75.2644 -25.6149 -204.45 + 47 271.896 772 0 0 -75.2618 -25.622 -205.85 + 47 74.3565 521 8 1 -75.85 -25.0383 35.503 + 47 35.8047 519 9 1 -76.0502 -24.9025 65.2076 + 47 185.885 771 9 0 -76.9745 -25.8073 64.15 +Number of digits in this event: 17 +Using G4ParticleGun... +Particle energy: 2.87085 LIN +Particle: proton Event: 48 -Number of tracker hits in this event = 25 - 48 390.748 854 11 1 -9.06211 16.0253 125.55 - 48 119.994 979 11 0 -9.06223 16.0263 124.15 - 48 124.027 854 10 1 -9.06417 16.0474 95.55 - 48 135.211 979 10 0 -9.06312 16.0493 94.15 - 48 103.518 855 9 1 -9.04289 16.0901 65.55 - 48 151.773 980 9 0 -9.04088 16.0934 64.15 - 48 123.454 855 8 1 -9.0004 16.1601 35.55 - 48 153.39 980 8 0 -8.99843 16.1634 34.15 - 48 130.109 855 7 1 -8.95817 16.2253 5.55 - 48 108.999 980 7 0 -8.95667 16.2286 4.15 - 48 114.881 855 6 1 -8.9248 16.2975 -24.45 - 48 109.914 981 6 0 -8.92338 16.3 -25.85 - 48 160.256 855 5 1 -8.89377 16.3497 -54.45 - 48 228.598 981 5 0 -8.89085 16.352 -55.85 - 48 297.39 856 4 1 -8.83647 16.3973 -84.45 - 48 111.961 981 4 0 -8.83456 16.4 -85.85 - 48 157.728 856 3 1 -8.7885 16.4546 -114.45 - 48 106.537 982 3 0 -8.78625 16.4574 -115.85 - 48 122.899 856 2 1 -8.74092 16.5112 -144.45 - 48 228.148 982 2 0 -8.7383 16.5135 -145.85 - 48 90.5907 856 1 1 -8.68579 16.5612 -174.45 - 48 98.5394 982 1 0 -8.68295 16.5619 -175.85 - 48 122.186 857 0 1 -8.62459 16.5746 -204.45 - 48 144.366 982 0 0 -8.62301 16.5747 -205.85 - 48 42.3883 857 4 1 -8.65 16.4568 -84.6293 -Number of digits in this event = 16 -Using G4ParticleGun ... -1.11233 LIN -proton +Number of tracker hits in this event: 40 + 48 193.686 558 11 1 -68.3459 -30.6415 125.55 + 48 131.378 747 11 0 -68.3464 -30.6405 124.15 + 48 159.216 558 10 1 -68.3551 -30.6192 95.55 + 48 96.3513 747 10 0 -68.3562 -30.6199 94.15 + 48 111.299 558 9 1 -68.3827 -30.6252 65.55 + 48 122.981 747 9 0 -68.3839 -30.6228 64.15 + 48 114.83 558 8 1 -68.4036 -30.5799 35.55 + 48 119.984 747 8 0 -68.4023 -30.5774 34.15 + 48 124.322 558 7 1 -68.3784 -30.5351 5.55 + 48 121.505 747 7 0 -68.3751 -30.5313 4.15 + 48 120.488 558 6 1 -68.3054 -30.4473 -24.45 + 48 107.537 748 6 0 -68.3045 -30.4448 -25.85 + 48 107.71 558 5 1 -68.2831 -30.3908 -54.45 + 48 105.992 748 5 0 -68.2819 -30.3895 -55.85 + 48 116.67 558 4 1 -68.2558 -30.3556 -84.45 + 48 150.828 748 4 0 -68.2534 -30.354 -85.85 + 48 103.403 559 3 1 -68.1924 -30.3084 -114.45 + 48 125.128 748 3 0 -68.1882 -30.3059 -115.85 + 48 116.759 559 2 1 -68.104 -30.2549 -144.45 + 48 97.5853 748 2 0 -68.0985 -30.2536 -145.85 + 48 115.102 560 1 1 -67.963 -30.1969 -174.45 + 48 106.885 749 1 0 -67.9577 -30.196 -175.85 + 48 144.994 560 0 1 -67.8512 -30.1844 -204.45 + 48 125.644 749 0 0 -67.8476 -30.1837 -205.85 + 48 186.328 559 10 1 -68.2496 -30.6289 95.3555 + 48 199.037 559 11 1 -68.25 -30.7612 125.453 + 48 10.9317 560 11 1 -68.05 -30.9437 125.236 + 48 60.5232 557 11 1 -68.4504 -31.2022 125.36 + 48 69.1582 556 11 1 -68.65 -31.3081 125.415 + 48 68.3871 555 11 1 -68.8501 -31.317 125.492 + 48 42.7817 554 11 1 -69.0501 -31.2983 125.497 + 48 47.3828 553 11 1 -69.2502 -31.3036 125.502 + 48 77.7131 552 11 1 -69.45 -31.3969 125.465 + 48 74.0902 551 11 1 -69.65 -31.4966 125.415 + 48 90.5484 550 11 1 -69.85 -31.6053 125.368 + 48 35.7084 549 11 1 -70.05 -31.7033 125.246 + 48 165.171 739 11 0 -70.8354 -32.2016 124.15 + 48 307.241 738 11 0 -70.9105 -32.25 124.053 + 48 161.118 543 11 1 -71.4405 -32.2792 125.15 + 48 175.214 544 11 1 -71.25 -32.4912 125.233 +Number of digits in this event: 18 +Using G4ParticleGun... +Particle energy: 8.74299 LIN +Particle: proton Event: 49 -Number of tracker hits in this event = 73 - 49 125.086 1144 11 1 48.9017 -14.1684 125.55 - 49 161.514 829 11 0 48.8996 -14.1714 124.15 - 49 309.619 1144 10 1 48.8735 -14.2409 95.55 - 49 123.816 829 10 0 48.8757 -14.2382 94.15 - 49 123.939 1144 9 1 48.9231 -14.1746 65.55 - 49 436.585 829 9 0 48.9224 -14.1694 64.15 - 49 244.224 1144 8 1 48.8997 -14.0557 35.55 - 49 112.381 830 8 0 48.902 -14.045 34.15 - 49 104.756 1144 7 1 48.9392 -13.8339 5.55 - 49 107.836 831 7 0 48.9364 -13.8235 4.15 - 49 120.8 1144 6 1 48.8667 -13.5892 -24.45 - 49 156.377 832 6 0 48.8645 -13.5782 -25.85 - 49 131.28 1143 5 1 48.8307 -13.3499 -54.45 - 49 108.819 833 5 0 48.8328 -13.3379 -55.85 - 49 125.26 1144 4 1 48.8713 -13.0928 -84.45 - 49 130.906 834 4 0 48.8752 -13.0828 -85.85 - 49 139.432 1144 3 1 48.9642 -12.8669 -114.45 - 49 101.909 835 3 0 48.9677 -12.8543 -115.85 - 49 205.9 1144 2 1 49.0271 -12.6236 -144.45 - 49 107.376 837 2 0 49.032 -12.6151 -145.85 - 49 171.983 1145 1 1 49.1587 -12.4529 -174.45 - 49 304.008 838 1 0 49.1655 -12.4466 -175.85 - 49 136.832 1146 0 1 49.3115 -12.3251 -204.45 - 49 127.743 838 0 0 49.321 -12.3211 -205.85 - 49 103.03 540 0 1 -71.955 108.154 -204.793 - 49 22.7277 782 1 0 47.528 -23.4841 -176.25 - 49 115.791 617 3 0 -120.838 -56.4794 -116.25 - 49 110.134 616 3 0 -121.012 -56.65 -115.941 - 49 36.2781 291 3 1 -121.905 -57.327 -114.85 - 49 377.216 290 3 1 -121.95 -57.3593 -114.794 - 49 89.1559 289 3 1 -122.15 -58.0474 -114.505 - 49 125.063 288 3 1 -122.35 -58.1068 -114.557 - 49 10.3868 287 3 1 -122.55 -58.0244 -114.839 - 49 164.702 615 3 0 -123.694 -56.9794 -115.85 - 49 79.0145 614 3 0 -123.924 -57.05 -116.178 - 49 74.4075 330 3 0 -122.647 -113.999 -116.25 - 49 39.8777 129 0 1 -154.15 -77.1712 -204.719 - 49 108 128 0 1 -154.35 -76.8046 -204.643 - 49 470.257 127 0 1 -154.55 -76.5117 -204.698 - 49 201.098 126 0 1 -154.75 -75.1236 -204.605 - 49 21.7587 529 0 0 -155.655 -74.0992 -205.85 - 49 63.9662 530 0 0 -155.703 -74.05 -205.899 - 49 85.225 531 0 0 -155.764 -73.85 -206.04 - 49 186.564 592 0 0 -174.49 -61.5189 -206.249 - 49 22.5208 591 0 0 -174.617 -61.65 -205.881 - 49 174.367 24 0 1 -175.219 -62.2362 -204.85 - 49 29.9455 23 0 1 -175.35 -62.3044 -204.836 - 49 104.549 590 0 0 -174.607 -62.0002 -205.85 - 49 16.6811 932 0 0 103.291 6.63598 -206.25 - 49 281.735 933 0 0 103.306 6.65 -206.23 - 49 88.9259 934 0 0 103.53 6.85 -205.944 - 49 211.567 1421 0 1 104.376 7.59844 -204.85 - 49 162.002 1422 0 1 104.55 7.75235 -204.625 - 49 236.626 1021 1 0 126.665 24.2581 -176.25 - 49 92.9553 1022 1 0 126.923 24.45 -175.919 - 49 195.444 1537 1 1 127.606 24.9671 -174.85 - 49 165.213 1538 1 1 127.75 25.0762 -174.622 - 49 390.185 1101 2 0 141.901 40.2918 -146.25 - 49 71.6501 1102 2 0 142.047 40.45 -145.955 - 49 237.923 1612 2 1 142.584 41.0688 -144.85 - 49 54.3889 1613 2 1 142.75 41.2606 -144.507 - 49 146.722 1180 3 0 153.01 56.1338 -116.25 - 49 161.709 1181 3 0 153.09 56.25 -116.029 - 49 90.247 1666 3 1 153.504 56.8742 -114.85 - 49 202.442 1667 3 1 153.55 56.9432 -114.719 - 49 152.628 1263 4 0 163.781 72.7446 -86.25 - 49 179.965 1264 4 0 163.849 72.85 -86.0604 - 49 169.919 1720 4 1 164.268 73.5277 -84.85 - 49 128.902 1721 4 1 164.35 73.6619 -84.6111 - 49 218.637 1351 5 0 179.36 90.3883 -56.25 - 49 273.741 1352 5 0 179.506 90.55 -55.976 - 49 171.82 1799 5 1 180.093 91.2018 -54.85 - 49 9.00211 837 1 0 49.0643 -12.45 -175.896 -Number of digits in this event = 46 -Using G4ParticleGun ... -1.82596 LIN -proton +Number of tracker hits in this event: 23 + 49 138.957 883 9 1 -3.3294 123.856 65.55 + 49 187.765 1518 9 0 -3.32925 123.856 64.15 + 49 122.28 883 8 1 -3.32406 123.847 35.55 + 49 114.832 1518 8 0 -3.32306 123.846 34.15 + 49 106.947 883 7 1 -3.30058 123.829 5.55 + 49 106.466 1518 7 0 -3.29935 123.829 4.15 + 49 103.299 883 6 1 -3.2774 123.835 -24.45 + 49 220.385 1518 6 0 -3.27571 123.835 -25.85 + 49 97.5616 884 5 1 -3.23967 123.839 -54.45 + 49 113.857 1518 5 0 -3.23851 123.839 -55.85 + 49 129.552 884 4 1 -3.2179 123.849 -84.45 + 49 116.845 1518 4 0 -3.21729 123.85 -85.85 + 49 272.895 884 3 1 -3.20533 123.861 -114.45 + 49 99.0698 1518 3 0 -3.20444 123.862 -115.85 + 49 166.066 884 2 1 -3.18614 123.876 -144.45 + 49 91.0392 1518 2 0 -3.1844 123.875 -145.85 + 49 101.679 884 1 1 -3.15098 123.864 -174.45 + 49 116.906 1518 1 0 -3.14957 123.864 -175.85 + 49 155.932 884 0 1 -3.12168 123.872 -204.45 + 49 170.402 1518 0 0 -3.12006 123.873 -205.85 + 49 103.08 1514 8 0 -5.0091 122.994 34.1499 + 49 97.8013 866 8 1 -6.68191 122.949 35.15 + 49 259.754 865 8 1 -6.85 123.036 35.1661 +Number of digits in this event: 11 +Using G4ParticleGun... +Particle energy: 6.36876 LIN +Particle: proton Event: 50 -Number of tracker hits in this event = 22 - 50 117.327 947 10 1 9.58871 101.718 95.55 - 50 100.955 1407 10 0 9.587 101.72 94.15 - 50 146.385 947 9 1 9.54844 101.746 65.55 - 50 91.5905 1407 9 0 9.54827 101.748 64.15 - 50 158.445 947 8 1 9.54457 101.787 35.55 - 50 143.285 1408 8 0 9.54575 101.79 34.15 - 50 132.932 947 7 1 9.56002 101.877 5.55 - 50 116.74 1408 7 0 9.55722 101.879 4.15 - 50 185.608 947 6 1 9.49242 101.937 -24.45 - 50 289.255 1408 6 0 9.49447 101.937 -25.85 - 50 106.805 947 5 1 9.53075 101.923 -54.45 - 50 118.125 1408 5 0 9.52956 101.917 -55.85 - 50 115.981 947 4 1 9.51244 101.785 -84.45 - 50 111.774 1408 4 0 9.51357 101.778 -85.85 - 50 113.266 947 3 1 9.52644 101.642 -114.45 - 50 127.21 1407 3 0 9.52757 101.637 -115.85 - 50 90.2014 947 2 1 9.52563 101.532 -144.45 - 50 108.341 1406 2 0 9.5267 101.525 -145.85 - 50 120.791 947 1 1 9.54911 101.385 -174.45 - 50 131.173 1406 1 0 9.55008 101.378 -175.85 - 50 125.258 947 0 1 9.55784 101.235 -204.45 - 50 110.861 1405 0 0 9.55851 101.227 -205.85 -Number of digits in this event = 11 -Using G4ParticleGun ... -8.72944 LIN -proton +Number of tracker hits in this event: 35 + 50 119.36 1194 9 1 58.9924 -115.826 65.55 + 50 164.044 321 9 0 58.992 -115.826 64.15 + 50 255.439 1194 8 1 58.9814 -115.834 35.55 + 50 101.885 321 8 0 58.9798 -115.834 34.15 + 50 124.884 1194 7 1 58.9404 -115.835 5.55 + 50 228.144 321 7 0 58.9379 -115.837 4.15 + 50 407.265 1194 6 1 58.9067 -115.869 -24.45 + 50 100.4 321 6 0 58.9043 -115.871 -25.85 + 50 127.492 1194 5 1 58.8508 -115.911 -54.45 + 50 150.802 321 5 0 58.8489 -115.913 -55.85 + 50 134.63 1193 4 1 58.811 -115.955 -84.45 + 50 120.126 320 4 0 58.8093 -115.958 -85.85 + 50 271.711 1193 3 1 58.7722 -116.019 -114.45 + 50 115.468 320 3 0 58.7694 -116.023 -115.85 + 50 99.609 1193 2 1 58.7119 -116.093 -144.45 + 50 128.067 320 2 0 58.7085 -116.097 -145.85 + 50 129.448 1192 1 1 58.6413 -116.163 -174.45 + 50 147.591 319 1 0 58.6375 -116.166 -175.85 + 50 114.196 1192 0 1 58.556 -116.234 -204.45 + 50 141.003 319 0 0 58.5508 -116.238 -205.85 + 50 102.115 319 3 0 59.0118 -116.256 -115.85 + 50 116.07 1214 2 1 62.9805 -122.31 -144.45 + 50 147.297 290 2 0 62.6201 -122.1 -145.85 + 50 45.8768 1170 1 1 54.1056 -121.474 -174.45 + 50 102.14 1169 1 1 54.05 -121.535 -174.531 + 50 65.2841 1168 1 1 53.85 -121.741 -174.768 + 50 14.9862 281 1 0 51.7477 -123.901 -175.85 + 50 161.472 280 1 0 51.699 -123.95 -175.875 + 50 170.307 279 1 0 51.3975 -124.15 -176.017 + 50 102.667 188 1 0 40.3293 -142.485 -176.25 + 50 169.591 187 1 0 40.4668 -142.55 -176.021 + 50 12.5853 186 1 0 40.5864 -142.75 -175.879 + 50 94.0406 1105 1 1 41.0701 -143.607 -174.85 + 50 159.494 182 1 0 41.7367 -143.673 -175.85 + 50 51.1133 1193 6 1 58.85 -115.927 -24.5681 +Number of digits in this event: 20 +Using G4ParticleGun... +Particle energy: 4.26163 LIN +Particle: proton Event: 51 -Number of tracker hits in this event = 23 - 51 179.996 1100 8 1 40.156 -136.068 35.55 - 51 147.643 220 8 0 40.1563 -136.068 34.15 - 51 344.058 1100 7 1 40.1616 -136.063 5.55 - 51 388.602 220 7 0 40.1622 -136.062 4.15 - 51 126.247 1100 6 1 40.1783 -136.054 -24.45 - 51 94.7022 220 6 0 40.1792 -136.054 -25.85 - 51 104.534 1100 5 1 40.1964 -136.055 -54.45 - 51 92.8851 220 5 0 40.1964 -136.056 -55.85 - 51 94.9505 1100 4 1 40.1971 -136.066 -84.45 - 51 161.168 220 4 0 40.1976 -136.067 -85.85 - 51 118.875 1100 3 1 40.2018 -136.088 -114.45 - 51 129.791 220 3 0 40.2012 -136.088 -115.85 - 51 127.669 1100 2 1 40.1958 -136.104 -144.45 - 51 224.927 220 2 0 40.1965 -136.104 -145.85 - 51 359.499 1100 1 1 40.213 -136.114 -174.45 - 51 107.073 220 1 0 40.2141 -136.115 -175.85 - 51 196.807 1100 0 1 40.2372 -136.129 -204.45 - 51 133.453 220 0 0 40.2388 -136.129 -205.85 - 51 24.0378 558 6 1 -68.2714 87.6994 -24.8243 - 51 73.925 1101 0 1 40.2501 -136.063 -204.506 - 51 60.032 219 2 0 40.0663 -136.15 -146.187 - 51 267.219 59 2 0 8.8878 -168.185 -146.25 - 51 10.7987 60 2 0 8.83645 -168.15 -146.175 -Number of digits in this event = 15 -Using G4ParticleGun ... -9.21745 LIN -proton +Number of tracker hits in this event: 24 + 51 104.663 972 11 1 14.4688 -33.8904 125.55 + 51 259.279 730 11 0 14.4698 -33.8919 124.15 + 51 135.857 972 10 1 14.4811 -33.9217 95.55 + 51 111.365 730 10 0 14.4822 -33.9239 94.15 + 51 110.531 972 9 1 14.5064 -33.9608 65.55 + 51 154.861 730 9 0 14.5066 -33.9617 64.15 + 51 146.449 972 8 1 14.5121 -33.9825 35.55 + 51 223.251 730 8 0 14.5114 -33.9816 34.15 + 51 123.395 972 7 1 14.4988 -33.9589 5.55 + 51 120.955 730 7 0 14.4987 -33.959 4.15 + 51 130.446 972 6 1 14.483 -33.9574 -24.45 + 51 94.0638 730 6 0 14.4811 -33.9596 -25.85 + 51 132.214 971 5 1 14.4428 -34.0064 -54.45 + 51 196.698 730 5 0 14.4413 -34.0086 -55.85 + 51 120.399 971 4 1 14.4153 -34.0512 -84.45 + 51 133.25 729 4 0 14.4146 -34.0547 -85.85 + 51 111.255 971 3 1 14.3991 -34.1298 -114.45 + 51 155.197 729 3 0 14.3972 -34.134 -115.85 + 51 146.676 971 2 1 14.3538 -34.2223 -144.45 + 51 124.985 729 2 0 14.3507 -34.2266 -145.85 + 51 131.644 971 1 1 14.2869 -34.3226 -174.45 + 51 453.828 728 1 0 14.2849 -34.3264 -175.85 + 51 103.316 970 0 1 14.2447 -34.4088 -204.45 + 51 113.3 728 0 0 14.2418 -34.4133 -205.85 +Number of digits in this event: 18 +Using G4ParticleGun... +Particle energy: 9.79172 LIN +Particle: proton Event: 52 -Number of tracker hits in this event = 25 - 52 123.008 832 11 1 -13.4554 -71.8064 125.55 - 52 112.428 541 11 0 -13.456 -71.8062 124.15 - 52 95.5819 832 10 1 -13.4741 -71.8041 95.55 - 52 109.787 541 10 0 -13.4738 -71.8043 94.15 - 52 137.019 832 9 1 -13.4697 -71.8077 65.55 - 52 110.505 541 9 0 -13.4688 -71.808 64.15 - 52 99.185 832 8 1 -13.4505 -71.8171 35.55 - 52 3.06348 833 8 1 -13.45 -71.8173 35.169 - 52 117.657 541 8 0 -13.4487 -71.8181 34.15 - 52 577.254 833 7 1 -13.4144 -71.8383 5.55 - 52 91.7806 541 7 0 -13.4138 -71.8401 4.15 - 52 101.401 833 6 1 -13.4027 -71.8778 -24.45 - 52 143.663 540 6 0 -13.4018 -71.8798 -25.85 - 52 88.64 833 5 1 -13.3834 -71.9223 -54.45 - 52 146.762 540 5 0 -13.3826 -71.9245 -55.85 - 52 112.713 833 4 1 -13.3655 -71.9684 -84.45 - 52 112.808 540 4 0 -13.3651 -71.9703 -85.85 - 52 137.34 833 3 1 -13.3565 -72.0071 -114.45 - 52 105.52 540 3 0 -13.3565 -72.0104 -115.85 - 52 144.528 833 2 1 -13.3538 -72.0803 -144.45 - 52 128.634 539 2 0 -13.3532 -72.0844 -145.85 - 52 146.941 833 1 1 -13.3375 -72.1712 -174.45 - 52 134.573 539 1 0 -13.3372 -72.1765 -175.85 - 52 96.8225 833 0 1 -13.3318 -72.2876 -204.45 - 52 110.916 538 0 0 -13.3301 -72.2937 -205.85 -Number of digits in this event = 11 -Using G4ParticleGun ... -1.40143 LIN -proton +Number of tracker hits in this event: 18 + 52 109.04 206 8 1 -138.91 34.7036 35.55 + 52 135.611 1073 8 0 -138.909 34.7029 34.15 + 52 172.301 206 7 1 -138.906 34.689 5.55 + 52 122.399 1073 7 0 -138.906 34.6884 4.15 + 52 384.93 206 6 1 -138.915 34.6759 -24.45 + 52 126.984 1073 6 0 -138.915 34.6752 -25.85 + 52 118.859 206 5 1 -138.911 34.6618 -54.45 + 52 146.596 1073 5 0 -138.91 34.6623 -55.85 + 52 108.271 206 4 1 -138.908 34.6717 -84.45 + 52 83.0615 1073 4 0 -138.909 34.6725 -85.85 + 52 116.694 206 3 1 -138.912 34.6862 -114.45 + 52 91.1729 1073 3 0 -138.912 34.6864 -115.85 + 52 177.333 206 2 1 -138.912 34.6891 -144.45 + 52 135.67 1073 2 0 -138.912 34.6893 -145.85 + 52 98.6729 206 1 1 -138.922 34.6933 -174.45 + 52 96.2053 1073 1 0 -138.922 34.6941 -175.85 + 52 115.195 206 0 1 -138.916 34.7087 -204.45 + 52 95.4133 1073 0 0 -138.915 34.7092 -205.85 +Number of digits in this event: 9 +Using G4ParticleGun... +Particle energy: 8.34226 LIN +Particle: proton Event: 53 -Number of tracker hits in this event = 27 - 53 122.984 983 11 1 16.7267 -41.8537 125.55 - 53 223.668 690 11 0 16.7282 -41.8545 124.15 - 53 122.879 983 10 1 16.764 -41.8765 95.55 - 53 113.735 690 10 0 16.7664 -41.8803 94.15 - 53 117.039 983 9 1 16.8099 -41.9485 65.55 - 53 140.34 690 9 0 16.8158 -41.952 64.15 - 53 241.71 984 8 1 16.9319 -42.0204 35.55 - 53 351.833 690 8 0 16.9404 -42.0209 34.15 - 53 189.349 985 7 1 17.109 -42.0117 5.55 - 53 115.565 690 7 0 17.1197 -42.0129 4.15 - 53 122.309 986 6 1 17.3403 -42.0298 -24.45 - 53 115.224 690 6 0 17.3486 -42.0274 -25.85 - 53 115.248 987 5 1 17.5261 -41.9885 -54.45 - 53 95.7751 690 5 0 17.5333 -41.9963 -55.85 - 53 239.367 988 4 1 17.6743 -42.1644 -84.45 - 53 122.928 689 4 0 17.6805 -42.1797 -85.85 - 53 173.373 988 3 1 17.8255 -42.4897 -114.45 - 53 159.894 687 3 0 17.8355 -42.5039 -115.85 - 53 63.6387 989 2 1 18.0476 -42.793 -144.45 - 53 50.5945 990 2 1 18.05 -42.7958 -144.667 - 53 118.381 686 2 0 18.0635 -42.8107 -145.85 - 53 101.813 991 1 1 18.3806 -43.1718 -174.45 - 53 127.847 684 1 0 18.3956 -43.1943 -175.85 - 53 215.389 993 0 1 18.6966 -43.6598 -204.45 - 53 219.406 681 0 0 18.7118 -43.6816 -205.85 - 53 144.805 689 8 0 16.9583 -42.05 33.805 - 53 168.024 691 8 0 16.4552 -41.85 34.0983 -Number of digits in this event = 18 -Using G4ParticleGun ... -5.07007 LIN -proton +Number of tracker hits in this event: 55 + 53 101.266 719 11 1 -36.2402 -19.0999 125.55 + 53 90.3108 804 11 0 -36.2404 -19.1011 124.15 + 53 107.42 719 10 1 -36.2467 -19.1278 95.55 + 53 121.258 804 10 0 -36.2472 -19.1289 94.15 + 53 109.491 718 9 1 -36.2565 -19.1328 65.55 + 53 172.354 804 9 0 -36.2563 -19.133 64.15 + 53 207.097 718 8 1 -36.2544 -19.1368 35.55 + 53 234.64 804 8 0 -36.2553 -19.1378 34.15 + 53 168.306 718 7 1 -36.2771 -19.1619 5.55 + 53 175.996 804 7 0 -36.2779 -19.1626 4.15 + 53 116.501 718 6 1 -36.2939 -19.1793 -24.45 + 53 137.042 804 6 0 -36.2951 -19.181 -25.85 + 53 178.864 718 5 1 -36.3182 -19.2126 -54.45 + 53 109.128 804 5 0 -36.3186 -19.2131 -55.85 + 53 186.138 718 4 1 -36.3316 -19.2213 -84.45 + 53 98.3012 804 4 0 -36.3313 -19.2222 -85.85 + 53 195.622 718 3 1 -36.3273 -19.2412 -114.45 + 53 103.773 804 3 0 -36.3283 -19.2406 -115.85 + 53 124.413 718 2 1 -36.3473 -19.232 -144.45 + 53 132.457 804 2 0 -36.3482 -19.2313 -145.85 + 53 114.912 718 1 1 -36.3699 -19.2175 -174.45 + 53 107.569 804 1 0 -36.3719 -19.2165 -175.85 + 53 116.749 718 0 1 -36.4131 -19.1945 -204.45 + 53 112.056 804 0 0 -36.4157 -19.194 -205.85 + 53 18.6658 830 0 0 -32.3721 -13.8715 -206.25 + 53 98.4705 831 0 0 -32.3562 -13.8497 -206.194 + 53 65.2709 832 0 0 -32.3044 -13.6499 -205.892 + 53 396.758 740 0 1 -31.9916 -12.431 -204.85 + 53 169.248 741 0 1 -31.85 -11.5775 -204.547 + 53 11.0973 742 0 1 -31.65 -11.2364 -204.828 + 53 23.7938 847 0 0 -32.0286 -10.5034 -205.85 + 53 83.7674 848 0 0 -32.0585 -10.45 -205.913 + 53 95.1927 849 0 0 -32.2488 -10.2499 -206.047 + 53 67.0221 850 0 0 -32.3327 -10.0497 -206.059 + 53 87.6795 851 0 0 -32.3723 -9.85 -206.028 + 53 14.7717 852 0 0 -32.36 -9.64965 -206.208 + 53 263.786 803 1 0 -36.3646 -19.25 -175.983 + 53 34.1321 802 1 0 -36.5542 -19.45 -176.081 + 53 81.534 717 5 1 -36.45 -19.0941 -54.64 + 53 114.614 810 5 0 -37.3998 -18.0384 -55.85 + 53 82.8284 811 5 0 -37.5802 -17.85 -55.993 + 53 66.0792 812 5 0 -37.7477 -17.65 -56.0429 + 53 114.359 813 5 0 -37.8811 -17.45 -56.0637 + 53 63.0311 814 5 0 -37.9674 -17.25 -56.1117 + 53 29.2089 815 5 0 -38.0524 -17.05 -56.2131 + 53 21.776 1142 5 0 -72.3516 48.613 -56.2493 + 53 75.5089 1143 5 0 -72.3922 48.65 -56.1696 + 53 161.527 536 5 1 -72.7413 48.9352 -54.8499 + 53 134.34 535 5 1 -72.8501 49.0294 -54.4677 + 53 26.0539 534 5 1 -73.05 48.8642 -54.6624 + 53 23.3031 1145 5 0 -72.8277 49.2258 -55.85 + 53 191.963 1146 5 0 -72.7958 49.25 -55.8684 + 53 58.7214 717 7 1 -36.45 -19.1524 5.22318 + 53 39.7258 806 7 0 -36.2651 -18.7152 4.14996 + 53 207.34 807 7 0 -36.2222 -18.65 4.11097 +Number of digits in this event: 20 +Using G4ParticleGun... +Particle energy: 2.99657 LIN +Particle: proton Event: 54 -Number of tracker hits in this event = 36 - 54 138.061 205 8 1 -138.976 43.1708 35.55 - 54 106.199 1115 8 0 -138.977 43.1709 34.15 - 54 237.667 205 7 1 -138.994 43.1757 5.55 - 54 132.044 1115 7 0 -138.994 43.1729 4.15 - 54 130.696 205 6 1 -139.005 43.1015 -24.45 - 54 77.431 1115 6 0 -139.004 43.1001 -25.85 - 54 110.371 205 5 1 -138.994 43.07 -54.45 - 54 109.809 1115 5 0 -138.993 43.0684 -55.85 - 54 115.446 205 4 1 -138.978 43.0368 -84.45 - 54 113.651 1114 4 0 -138.978 43.0357 -85.85 - 54 125.126 205 3 1 -138.977 43.0062 -114.45 - 54 101.921 1114 3 0 -138.977 43.0053 -115.85 - 54 104.149 205 2 1 -138.954 42.9886 -144.45 - 54 123.311 1114 2 0 -138.953 42.9872 -145.85 - 54 125.102 206 1 1 -138.917 42.9563 -174.45 - 54 89.3126 1114 1 0 -138.914 42.9537 -175.85 - 54 107.861 206 0 1 -138.868 42.9068 -204.45 - 54 102.075 1114 0 0 -138.865 42.9038 -205.85 - 54 28.8139 140 1 1 -151.95 127.454 -174.646 - 54 78.8428 939 1 0 -115.223 7.96683 -176.25 - 54 30.376 938 1 0 -115.198 7.84978 -175.953 - 54 110.225 325 1 1 -115.125 7.36044 -174.85 - 54 121.17 931 2 0 -119.274 6.26397 -146.25 - 54 14.0017 304 2 1 -119.155 6.43746 -144.85 - 54 105.874 305 2 1 -119.15 6.44301 -144.81 - 54 114.248 944 3 0 -115.342 8.8671 -116.25 - 54 106.326 324 3 1 -115.207 9.09327 -114.85 - 54 170.184 998 4 0 -135.603 19.6974 -86.25 - 54 0.361656 999 4 0 -135.834 19.8501 -85.8514 - 54 25.0641 219 4 1 -136.31 20.0985 -84.8496 - 54 106.159 218 4 1 -136.35 20.1164 -84.7718 - 54 185.62 1034 5 0 -102.417 26.8698 -56.25 - 54 102.679 1033 5 0 -102.192 26.85 -56.0703 - 54 36.5768 397 5 1 -100.64 25.805 -54.8499 - 54 251.679 398 5 1 -100.55 25.7439 -54.7713 - 54 242.753 593 6 0 -105.456 -61.25 -26.0004 -Number of digits in this event = 14 -Using G4ParticleGun ... -6.35461 LIN -proton +Number of tracker hits in this event: 59 + 54 124.057 953 11 1 10.8457 -64.55 125.55 + 54 120.565 577 11 0 10.8447 -64.5538 124.15 + 54 117.676 953 10 1 10.8259 -64.6303 95.55 + 54 96.5721 577 10 0 10.8217 -64.633 94.15 + 54 96.2785 953 9 1 10.7372 -64.6756 65.55 + 54 113.375 576 9 0 10.732 -64.6795 64.15 + 54 113.731 952 8 1 10.631 -64.7628 35.55 + 54 92.663 576 8 0 10.6248 -64.7688 34.15 + 54 144.607 952 7 1 10.5046 -64.8997 5.55 + 54 13889.2 575 7 0 10.5006 -64.9029 4.15 + 54 5.95832 407 8 0 6.74257 -98.736 33.75 + 54 78.0698 406 8 0 6.74158 -98.7501 33.7651 + 54 51.0028 405 8 0 6.72267 -98.95 33.9953 + 54 110.21 932 8 1 6.48713 -99.8341 35.15 + 54 41.6712 931 8 1 6.45 -100.055 35.4326 + 54 0.758238 443 9 0 20.7547 -91.3503 63.75 + 54 113.463 444 9 0 20.7551 -91.35 63.7509 + 54 159.233 445 9 0 20.8918 -91.1498 64.0175 + 54 132.409 446 9 0 21.2683 -90.9499 64.0925 + 54 2.30081 1021 9 1 24.4366 -90.5781 65.15 + 54 69.8937 1022 9 1 24.45 -90.5784 65.1548 + 54 184.185 1023 9 1 24.65 -90.6063 65.2207 + 54 65.0989 576 7 0 10.4588 -64.85 3.83678 + 54 83.2698 788 6 1 -22.2978 -21.902 -24.45 + 54 98.901 787 6 1 -22.45 -21.7 -24.5819 + 54 57.7282 786 6 1 -22.65 -21.4342 -24.7551 + 54 34.7474 801 6 0 -23.9269 -19.7384 -25.85 + 54 71.5953 802 6 0 -23.9935 -19.65 -25.9071 + 54 66.1826 803 6 0 -24.1441 -19.45 -26.0362 + 54 75.7893 804 6 0 -24.2951 -19.25 -26.1653 + 54 28.7399 613 5 1 -57.4205 24.332 -54.45 + 54 109.2 612 5 1 -57.45 24.3713 -54.4746 + 54 83.2827 611 5 1 -57.65 24.637 -54.6419 + 54 26.866 610 5 1 -57.85 24.9013 -54.8085 + 54 28.2036 1032 5 0 -59.1058 26.5683 -55.85 + 54 77.3672 1033 5 0 -59.1673 26.65 -55.901 + 54 68.9056 1034 5 0 -59.3181 26.85 -56.0261 + 54 56.5425 1035 5 0 -59.4691 27.05 -56.1509 + 54 3.61976 433 4 1 -93.5435 72.4514 -84.45 + 54 149.71 432 4 1 -93.55 72.4605 -84.4558 + 54 175.439 431 4 1 -93.75 72.7414 -84.6362 + 54 20.5706 430 4 1 -93.95 73.0213 -84.816 + 54 13.2683 1272 4 0 -95.092 74.6259 -85.85 + 54 121.07 1273 4 0 -95.1091 74.65 -85.8655 + 54 90.0353 1274 4 0 -95.2515 74.85 -85.9944 + 54 74.6348 1275 4 0 -95.3943 75.05 -86.1234 + 54 86.1019 264 3 1 -127.21 119.599 -114.45 + 54 125.253 263 3 1 -127.35 119.808 -114.597 + 54 28.4898 262 3 1 -127.55 120.105 -114.808 + 54 70.8293 1507 3 0 -128.536 121.563 -115.85 + 54 77.5877 1508 3 0 -128.662 121.75 -115.984 + 54 63.2904 1509 3 0 -128.798 121.95 -116.128 + 54 60.9761 124 2 1 -155.293 160.992 -144.45 + 54 123.993 123 2 1 -155.35 161.073 -144.507 + 54 193.303 122 2 1 -155.55 161.362 -144.706 + 54 64.7865 1714 2 0 -156.699 163.012 -145.85 + 54 81.8903 1715 2 0 -156.795 163.15 -145.945 + 54 80.4923 1716 2 0 -156.934 163.35 -146.084 + 54 25.2265 1717 2 0 -157.072 163.55 -146.222 +Number of digits in this event: 15 +Using G4ParticleGun... +Particle energy: 4.14675 LIN +Particle: proton Event: 55 -Number of tracker hits in this event = 24 - 55 146.084 930 10 0 115.97 6.09557 94.15 - 55 120.928 1479 9 1 115.97 6.09696 65.55 - 55 204.975 930 9 0 115.97 6.09642 64.15 - 55 162.736 1479 8 1 115.979 6.08645 35.55 - 55 163.235 930 8 0 115.98 6.08662 34.15 - 55 110.476 1479 7 1 115.993 6.08879 5.55 - 55 104.87 930 7 0 115.993 6.08911 4.15 - 55 112.297 1479 6 1 115.984 6.09509 -24.45 - 55 125.235 930 6 0 115.984 6.09583 -25.85 - 55 112.719 1479 5 1 115.979 6.1123 -54.45 - 55 108.578 930 5 0 115.978 6.11204 -55.85 - 55 99.166 1479 4 1 115.973 6.1053 -84.45 - 55 104.533 930 4 0 115.973 6.10405 -85.85 - 55 112.319 1479 3 1 115.975 6.0797 -114.45 - 55 271.954 930 3 0 115.976 6.07848 -115.85 - 55 259.485 1479 2 1 115.988 6.05377 -144.45 - 55 124.44 930 2 0 115.988 6.05217 -145.85 - 55 147.07 1479 1 1 116.001 6.0248 -174.45 - 55 121.838 929 1 0 116.001 6.02261 -175.85 - 55 108.99 1479 0 1 116.007 5.97988 -204.45 - 55 134.921 929 0 0 116.008 5.97808 -205.85 - 55 3.91261 929 2 0 115.987 6.0499 -146.24 - 55 158.111 1478 2 1 115.871 6.13269 -144.45 - 55 81.2938 929 9 0 115.968 6.04994 63.815 -Number of digits in this event = 14 -Using G4ParticleGun ... -1.68682 LIN -proton +Number of tracker hits in this event: 22 + 55 115.694 427 10 1 -94.6845 -19.8807 95.55 + 55 100.442 800 10 0 -94.6842 -19.8816 94.15 + 55 335.397 427 9 1 -94.6824 -19.8988 65.55 + 55 132.003 800 9 0 -94.6815 -19.9004 64.15 + 55 109.636 427 8 1 -94.6571 -19.9361 35.55 + 55 119.212 800 8 0 -94.654 -19.938 34.15 + 55 92.4917 427 7 1 -94.588 -19.9817 5.55 + 55 126.689 800 7 0 -94.5865 -19.9835 4.15 + 55 144.869 427 6 1 -94.5552 -20.024 -24.45 + 55 116.933 800 6 0 -94.5543 -20.0264 -25.85 + 55 129.036 428 5 1 -94.5395 -20.078 -54.45 + 55 166.497 799 5 0 -94.5384 -20.0788 -55.85 + 55 139.054 428 4 1 -94.5177 -20.0945 -84.45 + 55 116.157 799 4 0 -94.5196 -20.0955 -85.85 + 55 101.847 427 3 1 -94.5661 -20.115 -114.45 + 55 101.589 799 3 0 -94.5695 -20.1157 -115.85 + 55 121.206 427 2 1 -94.635 -20.1346 -144.45 + 55 101.264 799 2 0 -94.6393 -20.1361 -145.85 + 55 107.375 427 1 1 -94.7195 -20.1614 -174.45 + 55 105.323 799 1 0 -94.7242 -20.1622 -175.85 + 55 124.286 426 0 1 -94.8223 -20.1796 -204.45 + 55 152.288 799 0 0 -94.8271 -20.1788 -205.85 +Number of digits in this event: 11 +Using G4ParticleGun... +Particle energy: 8.39338 LIN +Particle: proton Event: 56 -Number of tracker hits in this event = 25 - 56 98.9195 938 11 1 7.69655 -58.1317 125.55 - 56 89.3718 609 11 0 7.69015 -58.1293 124.15 - 56 189.069 937 10 1 7.55492 -58.0852 95.55 - 56 178.79 609 10 0 7.54972 -58.0839 94.15 - 56 143.114 937 9 1 7.45425 -58.0593 65.55 - 56 106.755 609 9 0 7.44742 -58.0578 64.15 - 56 112.725 936 8 1 7.30331 -58.0373 35.55 - 56 211.987 610 8 0 7.29363 -58.0347 34.15 - 56 119.631 935 7 1 7.09032 -57.9904 5.55 - 56 129.869 610 7 0 7.08174 -57.9914 4.15 - 56 112.026 934 6 1 6.89983 -58.0088 -24.45 - 56 113.483 610 6 0 6.89396 -58.0082 -25.85 - 56 122.406 933 5 1 6.76811 -57.9851 -54.45 - 56 113.651 610 5 0 6.7631 -57.9824 -55.85 - 56 135.808 933 4 1 6.66413 -57.9394 -84.45 - 56 178.849 610 4 0 6.66408 -57.9373 -85.85 - 56 113.79 933 3 1 6.66963 -57.9051 -114.45 - 56 112.85 610 3 0 6.66636 -57.9034 -115.85 - 56 115.374 932 2 1 6.57997 -57.8662 -144.45 - 56 166.905 610 2 0 6.57513 -57.8643 -145.85 - 56 121.453 932 1 1 6.47627 -57.8182 -174.45 - 56 108.32 611 1 0 6.47088 -57.8133 -175.85 - 56 120.987 931 0 1 6.36651 -57.7315 -204.45 - 56 119.118 611 0 0 6.36048 -57.7247 -205.85 - 56 88.8494 611 2 0 6.5313 -57.85 -146.145 -Number of digits in this event = 12 -Using G4ParticleGun ... -2.77062 LIN -proton +Number of tracker hits in this event: 25 + 56 177.71 468 10 1 -86.2549 -55.8212 95.55 + 56 101.097 621 10 0 -86.2546 -55.8209 94.15 + 56 194.207 468 9 1 -86.2517 -55.8185 65.55 + 56 106.121 621 9 0 -86.2519 -55.8186 64.15 + 56 345.031 468 8 1 -86.2533 -55.8215 35.55 + 56 145.386 621 8 0 -86.2537 -55.8226 34.15 + 56 104.594 468 7 1 -86.2542 -55.8475 5.55 + 56 101.264 621 7 0 -86.2544 -55.8484 4.15 + 56 119.984 468 6 1 -86.2582 -55.8711 -24.45 + 56 145.852 620 6 0 -86.2581 -55.8724 -25.85 + 56 102.139 468 5 1 -86.2552 -55.8996 -54.45 + 56 130.167 620 5 0 -86.2556 -55.9011 -55.85 + 56 221.232 468 4 1 -86.2619 -55.9344 -84.45 + 56 158.394 620 4 0 -86.262 -55.934 -85.85 + 56 132.69 468 3 1 -86.2588 -55.9225 -114.45 + 56 108.707 620 3 0 -86.2585 -55.9234 -115.85 + 56 176.178 469 2 1 -86.2495 -55.9403 -144.45 + 56 99.0803 620 2 0 -86.2496 -55.9419 -145.85 + 56 118.258 468 1 1 -86.2508 -55.9729 -174.45 + 56 152.278 620 1 0 -86.2501 -55.9742 -175.85 + 56 136.759 469 0 1 -86.231 -56.0001 -204.45 + 56 149.493 620 0 0 -86.2314 -56.0024 -205.85 + 56 42.5848 467 8 1 -86.4502 -55.7792 35.3621 + 56 204.645 469 9 1 -86.25 -55.6501 65.4103 + 56 185.876 469 10 1 -86.2499 -55.816 95.3325 +Number of digits in this event: 16 +Using G4ParticleGun... +Particle energy: 5.2598 LIN +Particle: proton Event: 57 -Number of tracker hits in this event = 35 - 57 130.179 1184 11 1 56.912 38.5336 125.55 - 57 206.292 1092 11 0 56.9109 38.5327 124.15 - 57 93.9139 1184 10 1 56.8619 38.4417 95.55 - 57 155.801 1091 10 0 56.8606 38.4374 94.15 - 57 164.081 1183 9 1 56.8349 38.3538 65.55 - 57 127.186 1091 9 0 56.8357 38.3477 64.15 - 57 92.3938 1183 8 1 56.8499 38.2288 35.55 - 57 137.029 1090 8 0 56.8479 38.2229 34.15 - 57 139.244 1183 7 1 56.8071 38.0957 5.55 - 57 163.758 1090 7 0 56.8054 38.091 4.15 - 57 219.796 1183 6 1 56.7601 38.0032 -24.45 - 57 97.0934 1089 6 0 56.7568 37.9956 -25.85 - 57 190.543 1183 5 1 56.6889 37.8372 -54.45 - 57 113.614 1088 5 0 56.6887 37.8311 -55.85 - 57 203.098 1183 4 1 56.6791 37.6995 -84.45 - 57 121.408 1088 4 0 56.6792 37.6932 -85.85 - 57 182.766 1183 3 1 56.6817 37.5687 -114.45 - 57 164.033 1087 3 0 56.6808 37.5654 -115.85 - 57 99.3077 1183 2 1 56.6669 37.4985 -144.45 - 57 137.844 1087 2 0 56.6681 37.4985 -145.85 - 57 137.777 1183 1 1 56.6992 37.5087 -174.45 - 57 136.967 1087 1 0 56.7005 37.5109 -175.85 - 57 125.251 1183 0 1 56.7299 37.5542 -204.45 - 57 133.545 1087 0 0 56.7321 37.5566 -205.85 - 57 8.59061 1092 0 1 38.65 15.3346 -204.83 - 57 199.535 1182 9 1 56.65 38.3876 65.4983 - 57 152.079 1181 9 1 56.4499 38.3926 65.456 - 57 60.0034 1180 9 1 56.25 38.3702 65.432 - 57 55.3004 1179 9 1 56.05 38.3608 65.4101 - 57 63.4738 1178 9 1 55.85 38.3553 65.3961 - 57 82.3825 1177 9 1 55.65 38.3361 65.3877 - 57 51.0993 1176 9 1 55.45 38.2906 65.4088 - 57 53.9096 1175 9 1 55.2495 38.3433 65.3924 - 57 149.186 1174 9 1 55.05 38.395 65.3832 - 57 375.253 1173 9 1 54.85 38.4702 65.4382 -Number of digits in this event = 27 -Using G4ParticleGun ... -1.39576 LIN -proton +Number of tracker hits in this event: 165 + 57 109.886 640 9 1 -52.0499 115.231 65.55 + 57 102.969 1475 9 0 -52.0501 115.23 64.15 + 57 570.678 640 8 1 -52.0493 115.217 35.55 + 57 111.706 1475 8 0 -52.0489 115.215 34.15 + 57 114.416 640 7 1 -52.0424 115.184 5.55 + 57 110.119 1475 7 0 -52.0437 115.184 4.15 + 57 105.414 639 6 1 -52.0704 115.171 -24.45 + 57 100.314 1475 6 0 -52.0713 115.172 -25.85 + 57 99.8698 639 5 1 -52.0876 115.195 -54.45 + 57 117.534 1475 5 0 -52.0892 115.195 -55.85 + 57 112.956 639 4 1 -52.1268 115.213 -84.45 + 57 107.22 1475 4 0 -52.1295 115.214 -85.85 + 57 86.844 639 3 1 -52.1744 115.231 -114.45 + 57 139.065 1475 3 0 -52.1749 115.234 -115.85 + 57 106.713 639 2 1 -52.1876 115.294 -144.45 + 57 123.001 1475 2 0 -52.1868 115.297 -145.85 + 57 102.688 639 1 1 -52.1704 115.358 -174.45 + 57 106.782 1476 1 0 -52.17 115.361 -175.85 + 57 271.139 639 0 1 -52.1607 115.428 -204.45 + 57 98.8022 1476 0 0 -52.1609 115.431 -205.85 + 57 124.195 1266 6 0 -32.1944 73.2649 -26.25 + 57 6.03143 1265 6 0 -32.2821 73.25 -25.8601 + 57 24.9005 735 6 1 -33.0022 72.7875 -24.8498 + 57 140.1 734 6 1 -33.0503 72.7569 -24.7743 + 57 8.41156 733 6 1 -33.2501 72.7198 -24.4688 + 57 30.1231 1242 6 0 -34.4485 68.6315 -26.2499 + 57 98.5629 1243 6 0 -34.4466 68.6503 -26.1862 + 57 136.154 725 6 1 -34.9085 69.1697 -24.85 + 57 108.804 724 6 1 -35.05 69.3127 -24.4653 + 57 386.9 723 6 1 -35.25 69.1217 -24.7043 + 57 432.538 722 6 1 -35.4502 68.8711 -24.6096 + 57 282.124 721 6 1 -35.65 68.4616 -24.5063 + 57 39.4881 1407 10 0 -64.7092 101.587 93.9145 + 57 40.3798 1210 7 0 124.82 62.0512 4.0355 + 57 6.77599 776 1 0 59.7775 -24.65 -176.133 + 57 39.2796 1197 3 0 130.893 59.5749 -116.25 + 57 80.8926 1196 3 0 130.84 59.45 -116.24 + 57 373.689 1195 3 0 130.626 59.25 -116.22 + 57 9.14903 1547 3 1 129.628 59.6244 -114.85 + 57 130.295 1202 3 0 129.173 60.5447 -115.85 + 57 126.315 1642 6 0 -119.89 148.697 -26.25 + 57 6.199 1643 6 0 -120.021 148.75 -25.872 + 57 67.8005 297 6 1 -120.601 149.019 -24.85 + 57 94.7789 296 6 1 -120.75 149.07 -24.6703 + 57 58.9001 295 6 1 -120.95 149.117 -24.5525 + 57 3.20252 294 6 1 -121.15 149.179 -24.4575 + 57 126.298 1555 0 0 -67.564 131.311 -206.25 + 57 688.725 1556 0 0 -67.6025 131.35 -206.204 + 57 349.801 1557 0 0 -67.8025 131.55 -205.968 + 57 321.821 556 0 1 -68.7445 132.499 -204.85 + 57 553.277 555 0 1 -68.85 132.605 -204.725 + 57 103.312 554 0 1 -69.05 132.803 -204.487 + 57 441.417 1671 1 0 -89.8106 154.457 -176.25 + 57 581.355 1672 1 0 -89.9002 154.55 -176.128 + 57 466.005 446 1 1 -90.843 155.532 -174.85 + 57 744.263 445 1 1 -90.95 155.643 -174.705 + 57 34.3147 1786 2 0 -109.698 177.54 -146.25 + 57 836.79 1787 2 0 -109.707 177.55 -146.236 + 57 399.612 1788 2 0 -109.877 177.75 -145.975 + 57 643.952 347 2 1 -110.623 178.606 -144.85 + 57 709.113 346 2 1 -110.75 178.751 -144.659 + 57 12.2916 626 0 1 -54.8366 86.7995 -204.752 + 57 429.72 1030 0 0 -25.6437 26.2059 -206.25 + 57 385.558 1029 0 0 -25.5897 26.05 -206.18 + 57 354.938 1028 0 0 -25.519 25.85 -206.09 + 57 356.496 1027 0 0 -25.4472 25.65 -205.999 + 57 247.907 1026 0 0 -25.3743 25.45 -205.909 + 57 203.936 777 0 1 -24.4826 23.06 -204.85 + 57 1256.44 778 0 1 -24.45 22.9725 -204.811 + 57 609.793 779 0 1 -24.25 22.436 -204.575 + 57 120.371 720 1 0 -6.87484 -35.9816 -176.25 + 57 485.915 719 1 0 -6.85454 -36.05 -176.217 + 57 378.828 718 1 0 -6.79479 -36.25 -176.121 + 57 418.751 717 1 0 -6.73429 -36.45 -176.025 + 57 435.088 716 1 0 -6.67496 -36.65 -175.931 + 57 1148.17 870 1 1 -5.99309 -38.9219 -174.85 + 57 785.94 871 1 1 -5.85 -39.3984 -174.623 + 57 242.931 477 2 0 9.5991 -84.5818 -146.25 + 57 525.243 476 2 0 9.62243 -84.65 -146.207 + 57 524.888 475 2 0 9.6888 -84.85 -146.08 + 57 392.98 474 2 0 9.75482 -85.05 -145.953 + 57 1293.97 951 2 1 10.3105 -86.7838 -144.85 + 57 582.085 952 2 1 10.45 -87.2203 -144.572 + 57 236.99 227 3 0 28.3491 -134.691 -116.25 + 57 726.455 226 3 0 28.3712 -134.75 -116.215 + 57 824.047 225 3 0 28.4448 -134.95 -116.098 + 57 708.107 224 3 0 28.5179 -135.15 -115.983 + 57 93.1351 223 3 0 28.5925 -135.35 -115.866 + 57 1342.19 1046 3 1 29.3111 -137.186 -114.85 + 57 1374.46 1047 3 1 29.45 -137.541 -114.654 + 57 100.937 1580 4 0 -68.8388 136.35 -86.2236 + 57 26.2533 554 4 1 -69.2147 135.981 -84.85 + 57 101.68 553 4 1 -69.2502 135.961 -84.7715 + 57 126.079 552 4 1 -69.45 135.675 -84.5649 + 57 1.74181 551 4 1 -69.6501 135.327 -84.4524 + 57 36.3774 446 5 0 -39.2687 -90.8374 -56.25 + 57 81.7012 447 5 0 -39.3471 -90.7499 -56.2219 + 57 31.6489 448 5 0 -39.5099 -90.5499 -56.2053 + 57 1194.55 1498 0 0 -23.1471 119.795 -206.25 + 57 310.776 795 0 1 -21.0272 120.095 -204.85 + 57 293.638 796 0 1 -20.85 120.121 -204.733 + 57 330.283 797 0 1 -20.65 120.15 -204.602 + 57 72.539 798 0 1 -20.45 120.179 -204.47 + 57 1036.46 1530 1 0 19.2614 126.199 -176.25 + 57 24.8788 1005 1 1 21.2329 126.511 -174.85 + 57 395.412 1006 1 1 21.25 126.513 -174.838 + 57 458.151 1007 1 1 21.45 126.546 -174.696 + 57 268.071 1008 1 1 21.65 126.577 -174.554 + 57 967.406 1558 2 0 58.5373 131.784 -146.25 + 57 153.621 1201 2 1 60.3493 132.037 -144.85 + 57 333.593 1202 2 1 60.45 132.051 -144.772 + 57 376.401 1203 2 1 60.65 132.079 -144.618 + 57 67.2512 1204 2 1 60.85 132.106 -144.466 + 57 1201.35 1590 3 0 94.7792 138.169 -116.25 + 57 120.232 1381 3 1 96.4908 138.486 -114.85 + 57 453.955 1382 3 1 96.55 138.497 -114.802 + 57 370.736 1383 3 1 96.75 138.535 -114.637 + 57 53.8236 1384 3 1 96.95 138.574 -114.472 + 57 257.147 1636 4 0 133.427 147.52 -86.25 + 57 856.141 1637 4 0 133.551 147.55 -86.1544 + 57 361.453 1575 4 1 135.227 147.955 -84.85 + 57 463.763 1576 4 1 135.35 147.985 -84.7538 + 57 396.215 1577 4 1 135.55 148.031 -84.5994 + 57 1147.63 1671 5 0 167.56 154.449 -56.25 + 57 63.1332 1744 5 1 169.118 154.756 -54.85 + 57 523.404 1745 5 1 169.15 154.763 -54.8215 + 57 619.578 1746 5 1 169.35 154.802 -54.6399 + 57 105.239 1589 3 0 94.9249 138.15 -116.16 + 57 6.37681 1183 0 0 -23.8843 56.6694 -206.25 + 57 91.6869 1182 0 0 -23.8751 56.65 -206.244 + 57 75.6066 1181 0 0 -23.7799 56.45 -206.181 + 57 153.015 1180 0 0 -23.6848 56.25 -206.119 + 57 94.4811 1179 0 0 -23.5915 56.05 -206.057 + 57 93.4981 1178 0 0 -23.4987 55.85 -205.995 + 57 123.946 1177 0 0 -23.4053 55.65 -205.932 + 57 34.7509 1176 0 0 -23.3124 55.45 -205.87 + 57 104.697 791 0 1 -21.7779 52.1585 -204.85 + 57 189.304 792 0 1 -21.65 51.8841 -204.765 + 57 185.34 793 0 1 -21.45 51.4477 -204.627 + 57 37.06 794 0 1 -21.25 51.0168 -204.483 + 57 86.9067 715 1 0 10.5922 -36.8909 -176.25 + 57 95.1266 714 1 0 10.6496 -37.05 -176.199 + 57 74.5016 713 1 0 10.7216 -37.25 -176.135 + 57 85.7032 712 1 0 10.7951 -37.45 -176.07 + 57 91.7577 711 1 0 10.8701 -37.65 -176.004 + 57 92.0308 710 1 0 10.9454 -37.85 -175.939 + 57 35.2236 709 1 0 11.0211 -38.05 -175.874 + 57 18.2861 960 1 1 12.2328 -41.2663 -174.85 + 57 224.405 961 1 1 12.25 -41.3119 -174.835 + 57 335.916 962 1 1 12.45 -41.8448 -174.666 + 57 54.6586 963 1 1 12.65 -42.3946 -174.492 + 57 111.296 182 2 0 41.6383 -143.571 -146.25 + 57 325.362 181 2 0 41.6901 -143.75 -146.199 + 57 203.965 180 2 0 41.7484 -143.95 -146.141 + 57 87.8167 179 2 0 41.8063 -144.15 -146.085 + 57 102.774 178 2 0 41.8638 -144.35 -146.031 + 57 93.7029 177 2 0 41.9207 -144.55 -145.977 + 57 106.411 176 2 0 41.9769 -144.75 -145.922 + 57 70.7711 175 2 0 42.033 -144.95 -145.867 + 57 241.5 1115 2 1 43.0972 -148.732 -144.85 + 57 340.379 1116 2 1 43.25 -149.275 -144.704 + 57 102.837 1117 2 1 43.45 -149.976 -144.513 + 57 157.282 639 8 1 -52.05 115.215 35.4486 + 57 63.4233 641 8 1 -51.85 116.148 35.3625 + 57 39.9697 642 8 1 -51.6498 116.111 35.4732 +Number of digits in this event: 93 +Using G4ParticleGun... +Particle energy: 2.72368 LIN +Particle: proton Event: 58 -Number of tracker hits in this event = 32 - 58 115.349 1296 7 1 79.3505 -123.774 5.55 - 58 140.357 281 7 0 79.3512 -123.776 4.15 - 58 138.712 1296 6 1 79.3739 -123.819 -24.45 - 58 143.65 281 6 0 79.3738 -123.822 -25.85 - 58 108.812 1296 5 1 79.3918 -123.858 -54.45 - 58 112.68 281 5 0 79.3923 -123.857 -55.85 - 58 119.441 1296 4 1 79.4045 -123.829 -84.45 - 58 140.431 281 4 0 79.4072 -123.827 -85.85 - 58 164.48 1297 3 1 79.4684 -123.818 -114.45 - 58 97.5861 281 3 0 79.4735 -123.819 -115.85 - 58 126.497 1297 2 1 79.5832 -123.848 -144.45 - 58 217.79 281 2 0 79.5883 -123.849 -145.85 - 58 119.742 1298 1 1 79.6889 -123.893 -174.45 - 58 121.141 281 1 0 79.6941 -123.897 -175.85 - 58 124.969 1298 0 1 79.7938 -123.985 -204.45 - 58 119.585 280 0 0 79.7962 -123.99 -205.85 - 58 11.058 286 3 0 80.6787 -122.868 -115.85 - 58 21.5173 1307 3 1 81.5533 -123.007 -114.85 - 58 6.46874 288 3 0 82.0085 -122.361 -115.85 - 58 230.092 289 3 0 82.0181 -122.35 -115.861 - 58 34.5412 282 4 0 79.4256 -123.75 -86.1282 - 58 352.194 91 4 0 76.9837 -161.754 -86.25 - 58 209.356 90 4 0 76.9758 -161.95 -86.1973 - 58 139.279 1294 7 1 79.0274 -123.573 5.55 - 58 2.402 1293 7 1 78.8498 -123.469 5.15853 - 58 141.971 285 7 0 78.1332 -123.135 4.15 - 58 3.28706 286 7 0 77.8978 -122.95 3.76273 - 58 134.875 191 7 0 35.3982 -141.774 3.75012 - 58 56.6178 190 7 0 35.0727 -141.95 4.05305 - 58 96.6751 1068 7 1 33.8452 -142.063 5.15 - 58 56.2854 1067 7 1 33.65 -142.057 5.29858 - 58 64.4237 1066 7 1 33.4497 -142.028 5.38999 -Number of digits in this event = 16 -Using G4ParticleGun ... -7.32107 LIN -proton +Number of tracker hits in this event: 26 + 58 142.614 1143 11 1 48.7018 -65.7392 125.55 + 58 140.649 571 11 0 48.701 -65.7408 124.15 + 58 238.812 1143 10 1 48.6846 -65.773 95.55 + 58 139.088 571 10 0 48.6798 -65.7707 94.15 + 58 191.806 1142 9 1 48.5781 -65.7297 65.55 + 58 99.4169 571 9 0 48.5728 -65.7284 64.15 + 58 104.434 1142 8 1 48.4736 -65.7064 35.55 + 58 136.625 571 8 0 48.4693 -65.7054 34.15 + 58 119.96 1141 7 1 48.3894 -65.6967 5.55 + 58 85.1208 571 7 0 48.3861 -65.6943 4.15 + 58 116.291 1141 6 1 48.319 -65.6484 -24.45 + 58 115.823 572 6 0 48.315 -65.6476 -25.85 + 58 127.334 1140 5 1 48.2312 -65.6439 -54.45 + 58 105.438 572 5 0 48.2277 -65.6411 -55.85 + 58 156.844 1140 4 1 48.1616 -65.5842 -84.45 + 58 112.539 572 4 0 48.1611 -65.584 -85.85 + 58 101.16 1140 3 1 48.1539 -65.5778 -114.45 + 58 123.963 572 3 0 48.1538 -65.5787 -115.85 + 58 123.184 1140 2 1 48.1451 -65.5985 -144.45 + 58 131.449 572 2 0 48.1469 -65.5986 -145.85 + 58 101.859 1140 1 1 48.1822 -65.6069 -174.45 + 58 286.421 572 1 0 48.1823 -65.6082 -175.85 + 58 230.966 1140 0 1 48.194 -65.6387 -204.45 + 58 100.628 571 0 0 48.2036 -65.6542 -205.85 + 58 20.4589 1144 10 1 48.85 -65.6051 95.1815 + 58 197.685 572 10 0 49.7432 -65.6187 94.15 +Number of digits in this event: 15 +Using G4ParticleGun... +Particle energy: 1.65142 LIN +Particle: proton Event: 59 -Number of tracker hits in this event = 21 - 59 152.657 1441 8 1 108.392 -82.581 35.55 - 59 124.109 487 8 0 108.392 -82.5817 34.15 - 59 94.6228 1441 7 1 108.406 -82.6158 5.55 - 59 207.965 487 7 0 108.407 -82.6171 4.15 - 59 248.739 1441 6 1 108.43 -82.6462 -24.45 - 59 140.531 487 6 0 108.432 -82.6478 -25.85 - 59 105.913 1441 5 1 108.463 -82.6781 -54.45 - 59 155.334 486 5 0 108.465 -82.6789 -55.85 - 59 119.847 1441 4 1 108.511 -82.6971 -84.45 - 59 200.651 486 4 0 108.513 -82.6971 -85.85 - 59 140.323 1442 3 1 108.558 -82.6989 -114.45 - 59 108.55 486 3 0 108.561 -82.698 -115.85 - 59 97.3493 1442 2 1 108.622 -82.6838 -144.45 - 59 147.993 486 2 0 108.626 -82.6833 -145.85 - 59 103.094 1442 1 1 108.692 -82.6731 -174.45 - 59 150.844 486 1 0 108.696 -82.6714 -175.85 - 59 191.988 1443 0 1 108.768 -82.6371 -204.45 - 59 368.949 487 0 0 108.77 -82.6356 -205.85 - 59 93.9055 488 7 0 108.258 -82.4499 3.9062 - 59 138.182 608 7 0 106.26 -58.3651 3.75 - 59 213.64 607 7 0 106.326 -58.4501 3.95032 -Number of digits in this event = 15 -Using G4ParticleGun ... -2.61109 LIN -proton +Number of tracker hits in this event: 20 + 59 122.184 572 9 1 -65.6031 101.081 65.55 + 59 98.586 1404 9 0 -65.6024 101.083 64.15 + 59 104.718 572 8 1 -65.5899 101.142 35.55 + 59 100.062 1404 8 0 -65.5867 101.14 34.15 + 59 185.717 572 7 1 -65.526 101.088 5.55 + 59 120.323 1404 7 0 -65.522 101.086 4.15 + 59 98.8688 573 6 1 -65.4428 101.064 -24.45 + 59 133.114 1404 6 0 -65.4403 101.062 -25.85 + 59 109.423 573 5 1 -65.3748 101.027 -54.45 + 59 153.796 1404 5 0 -65.3715 101.025 -55.85 + 59 110.695 573 4 1 -65.3051 100.98 -84.45 + 59 100.194 1404 4 0 -65.2995 100.976 -85.85 + 59 139.253 574 3 1 -65.2022 100.896 -114.45 + 59 110.656 1403 3 0 -65.2032 100.89 -115.85 + 59 245.249 574 2 1 -65.2285 100.784 -144.45 + 59 93.0422 1403 2 0 -65.227 100.778 -145.85 + 59 110.625 574 1 1 -65.1925 100.659 -174.45 + 59 367.035 1402 1 0 -65.1898 100.655 -175.85 + 59 129.287 574 0 1 -65.1539 100.561 -204.45 + 59 162.937 1402 0 0 -65.151 100.558 -205.85 +Number of digits in this event: 11 +Using G4ParticleGun... +Particle energy: 6.72184 LIN +Particle: proton Event: 60 -Number of tracker hits in this event = 47 - 60 101.197 1416 10 1 103.355 -39.7767 95.55 - 60 114.448 701 10 0 103.354 -39.7764 94.15 - 60 92.9506 1415 9 1 103.338 -39.7684 65.55 - 60 256.624 701 9 0 103.336 -39.7692 64.15 - 60 126.075 1415 8 1 103.282 -39.7756 35.55 - 60 104.581 701 8 0 103.281 -39.7764 34.15 - 60 309.235 1415 7 1 103.27 -39.7959 5.55 - 60 133.518 701 7 0 103.27 -39.7981 4.15 - 60 122.478 1415 6 1 103.258 -39.8479 -24.45 - 60 104.922 700 6 0 103.258 -39.8501 -25.85 - 60 92.0717 1415 5 1 103.252 -39.8985 -54.45 - 60 99.9849 700 5 0 103.251 -39.9004 -55.85 - 60 99.2192 1415 4 1 103.24 -39.946 -84.45 - 60 144.601 700 4 0 103.239 -39.9501 -85.85 - 60 85.8849 1415 3 1 103.225 -40.0326 -114.45 - 60 110.996 700 3 0 103.223 -40.0364 -115.85 - 60 162.843 1415 2 1 103.19 -40.1133 -144.45 - 60 167.64 699 2 0 103.19 -40.1169 -145.85 - 60 145.386 1415 1 1 103.169 -40.1978 -174.45 - 60 124.661 699 1 0 103.166 -40.201 -175.85 - 60 112.124 1414 0 1 103.111 -40.2679 -204.45 - 60 244.031 698 0 0 103.11 -40.2705 -205.85 - 60 16.3973 579 1 0 157.338 -64.1028 -176.25 - 60 70.5141 580 1 0 157.339 -64.0494 -176.217 - 60 88.4123 581 1 0 157.381 -63.85 -176.116 - 60 152.41 1686 1 1 157.36 -63.3987 -174.85 - 60 94.9618 1795 0 1 179.35 -126.317 -204.765 - 60 94.1755 1794 0 1 179.15 -126.441 -204.662 - 60 24.2459 1793 0 1 178.95 -126.416 -204.482 - 60 19.307 445 0 0 164.09 -91.1068 -206.25 - 60 188.964 444 0 0 164.158 -91.15 -206.209 - 60 257.792 443 0 0 164.591 -91.35 -206.046 - 60 39.5217 1736 0 1 167.377 -92.1353 -204.85 - 60 49.1471 1737 0 1 167.55 -92.1851 -204.77 - 60 95.7842 1738 0 1 167.75 -92.2423 -204.665 - 60 77.5812 1739 0 1 167.95 -92.3047 -204.542 - 60 140.851 1741 0 1 168.356 -92.3714 -204.45 - 60 44.3801 442 0 0 168.94 -91.6099 -205.85 - 60 49.5688 704 7 0 103.49 -39.1367 4.15 - 60 81.8226 705 7 0 103.522 -39.05 3.98162 - 60 302.637 630 7 0 121.769 -53.9715 3.75 - 60 56.5831 629 7 0 121.798 -54.05 3.80379 - 60 116.973 628 7 0 121.851 -54.2503 3.88481 - 60 74.6692 627 7 0 122.03 -54.45 3.97713 - 60 3.84911 626 7 0 122.203 -54.65 4.14276 - 60 44.4721 1513 7 1 122.881 -55.422 5.15026 - 60 88.1937 1514 7 1 122.95 -55.5135 5.25808 -Number of digits in this event = 19 -Using G4ParticleGun ... -4.30687 LIN -proton +Number of tracker hits in this event: 19 + 60 151.745 394 8 1 -101.326 -94.1457 35.55 + 60 115.568 430 8 0 -101.327 -94.146 34.15 + 60 126.932 393 7 1 -101.355 -94.1521 5.55 + 60 112.755 429 7 0 -101.356 -94.1524 4.15 + 60 134.367 393 6 1 -101.381 -94.1639 -24.45 + 60 345.502 429 6 0 -101.381 -94.1647 -25.85 + 60 109.286 393 5 1 -101.384 -94.1794 -54.45 + 60 145.978 429 5 0 -101.383 -94.1803 -55.85 + 60 108.051 393 4 1 -101.388 -94.1843 -84.45 + 60 145.731 429 4 0 -101.388 -94.185 -85.85 + 60 120.438 393 3 1 -101.389 -94.1974 -114.45 + 60 139.323 429 3 0 -101.389 -94.198 -115.85 + 60 113.859 393 2 1 -101.392 -94.2081 -144.45 + 60 183.488 429 2 0 -101.393 -94.2087 -145.85 + 60 114.114 393 1 1 -101.415 -94.2209 -174.45 + 60 89.6716 429 1 0 -101.417 -94.2221 -175.85 + 60 193.808 393 0 1 -101.445 -94.2473 -204.45 + 60 130.972 429 0 0 -101.447 -94.2488 -205.85 + 60 131.143 427 2 0 -101.705 -94.6443 -145.85 +Number of digits in this event: 13 +Using G4ParticleGun... +Particle energy: 1.30847 LIN +Particle: proton Event: 61 -Number of tracker hits in this event = 22 - 61 99.8832 898 10 1 -0.42188 -91.3514 95.55 - 61 165.65 443 10 0 -0.423415 -91.3516 94.15 - 61 113.31 898 9 1 -0.444293 -91.3454 65.55 - 61 186.57 444 9 0 -0.445147 -91.3469 64.15 - 61 173.463 897 8 1 -0.46578 -91.3839 35.55 - 61 108.34 443 8 0 -0.466822 -91.3895 34.15 - 61 126.857 897 7 1 -0.489614 -91.5021 5.55 - 61 130.674 443 7 0 -0.49123 -91.5074 4.15 - 61 101.658 897 6 1 -0.517283 -91.6182 -24.45 - 61 123.639 442 6 0 -0.5184 -91.6243 -25.85 - 61 106.336 897 5 1 -0.541058 -91.7515 -54.45 - 61 118.306 441 5 0 -0.541208 -91.7582 -55.85 - 61 112.939 897 4 1 -0.537099 -91.8943 -84.45 - 61 122.782 441 4 0 -0.535565 -91.9021 -85.85 - 61 158.893 897 3 1 -0.50457 -92.0654 -114.45 - 61 111.605 440 3 0 -0.504043 -92.0736 -115.85 - 61 120.856 897 2 1 -0.496689 -92.2456 -144.45 - 61 162.179 439 2 0 -0.495331 -92.2525 -145.85 - 61 129.715 897 1 1 -0.466885 -92.398 -174.45 - 61 115.44 438 1 0 -0.464953 -92.4056 -175.85 - 61 107.889 898 0 1 -0.429049 -92.556 -204.45 - 61 115.862 437 0 0 -0.428219 -92.5632 -205.85 -Number of digits in this event = 12 -Using G4ParticleGun ... -6.09517 LIN -proton +Number of tracker hits in this event: 33 + 61 194.77 1046 11 1 29.2634 -62.884 125.55 + 61 127.02 585 11 0 29.2644 -62.8799 124.15 + 61 133.262 1046 10 1 29.2883 -62.7976 95.55 + 61 111.371 586 10 0 29.2944 -62.7947 94.15 + 61 149.586 1047 9 1 29.4762 -62.7072 65.55 + 61 106.53 586 9 0 29.4824 -62.703 64.15 + 61 225.302 1047 8 1 29.6167 -62.612 35.55 + 61 108.804 587 8 0 29.6276 -62.6077 34.15 + 61 309.362 1049 7 1 29.8511 -62.5116 5.55 + 61 142.859 587 7 0 29.8681 -62.5147 4.15 + 61 106.192 1050 6 1 30.224 -62.5948 -24.45 + 61 113.347 587 6 0 30.2423 -62.6032 -25.85 + 61 103.859 1052 5 1 30.6248 -62.7695 -54.45 + 61 152.774 586 5 0 30.644 -62.7811 -55.85 + 61 127.23 1054 4 1 31.0329 -63.0096 -84.45 + 61 103.664 585 4 0 31.0511 -63.0153 -85.85 + 61 110.105 1056 3 1 31.4189 -63.1427 -114.45 + 61 136.241 584 3 0 31.4327 -63.1465 -115.85 + 61 136.07 1058 2 1 31.7 -63.2299 -144.45 + 61 112.724 584 2 0 31.7093 -63.2303 -145.85 + 61 150.49 1059 1 1 31.9072 -63.2534 -174.45 + 61 140.799 584 1 0 31.9282 -63.2437 -175.85 + 61 121.203 1061 0 1 32.3494 -63.0581 -204.45 + 61 92.8722 584 0 0 32.3707 -63.0518 -205.85 + 61 19.6243 1048 7 1 29.85 -62.5178 5.38753 + 61 98.8331 1046 9 1 29.45 -62.6889 65.4997 + 61 8.17629 1045 9 1 29.25 -62.6 65.1796 + 61 28.6428 589 9 0 28.375 -62.104 64.15 + 61 121.882 590 9 0 28.2923 -62.05 64.0484 + 61 207.77 953 8 1 10.7076 -36.3922 35.55 + 61 128.058 717 8 0 10.6801 -36.4847 34.1496 + 61 24.1603 819 10 1 -16.1407 62.6516 95.15 + 61 68.2651 818 10 1 -16.25 63.021 95.4527 +Number of digits in this event: 18 +Using G4ParticleGun... +Particle energy: 4.92038 LIN +Particle: proton Event: 62 -Number of tracker hits in this event = 22 - 62 95.6075 1458 10 1 111.883 -13.3367 95.55 - 62 134.922 833 10 0 111.883 -13.3363 94.15 - 62 137.271 1458 9 1 111.885 -13.325 65.55 - 62 122.496 833 9 0 111.884 -13.3243 64.15 - 62 96.122 1458 8 1 111.861 -13.3113 35.55 - 62 206.231 833 8 0 111.861 -13.3102 34.15 - 62 228.216 1458 7 1 111.865 -13.2883 5.55 - 62 109.085 833 7 0 111.866 -13.2889 4.15 - 62 117.5 1458 6 1 111.874 -13.3037 -24.45 - 62 121.858 833 6 0 111.875 -13.3049 -25.85 - 62 102.659 1458 5 1 111.906 -13.3263 -54.45 - 62 137.167 833 5 0 111.907 -13.3278 -55.85 - 62 129.068 1458 4 1 111.934 -13.3592 -84.45 - 62 117.773 833 4 0 111.934 -13.3599 -85.85 - 62 91.0102 1458 3 1 111.93 -13.3735 -114.45 - 62 266.343 833 3 0 111.928 -13.3724 -115.85 - 62 96.9669 1458 2 1 111.89 -13.3542 -144.45 - 62 124.342 833 2 0 111.888 -13.3528 -145.85 - 62 137.579 1458 1 1 111.846 -13.3247 -174.45 - 62 310.714 833 1 0 111.845 -13.3233 -175.85 - 62 206.144 1458 0 1 111.824 -13.2919 -204.45 - 62 121.211 833 0 0 111.823 -13.2919 -205.85 -Number of digits in this event = 15 -Using G4ParticleGun ... -3.06049 LIN -proton +Number of tracker hits in this event: 21 + 62 136.896 530 9 1 -73.9246 -106.27 65.55 + 62 183.839 369 9 0 -73.9229 -106.269 64.15 + 62 210.141 530 8 1 -73.8908 -106.251 35.55 + 62 104.129 369 8 0 -73.8891 -106.251 34.15 + 62 132.851 530 7 1 -73.8588 -106.231 5.55 + 62 101.881 369 7 0 -73.8575 -106.23 4.15 + 62 184.457 531 6 1 -73.8353 -106.21 -24.45 + 62 109.37 369 6 0 -73.8326 -106.21 -25.85 + 62 94.6491 531 5 1 -73.7789 -106.207 -54.45 + 62 131.728 369 5 0 -73.7764 -106.207 -55.85 + 62 116.28 531 4 1 -73.7242 -106.199 -84.45 + 62 133.158 369 4 0 -73.7222 -106.198 -85.85 + 62 115.596 531 3 1 -73.6813 -106.192 -114.45 + 62 115.947 369 3 0 -73.6814 -106.189 -115.85 + 62 118.943 531 2 1 -73.6878 -106.141 -144.45 + 62 106.891 370 2 0 -73.6882 -106.138 -145.85 + 62 143.59 531 1 1 -73.6972 -106.089 -174.45 + 62 139.904 370 1 0 -73.6964 -106.086 -175.85 + 62 109.896 531 0 1 -73.681 -106.031 -204.45 + 62 141.309 370 0 0 -73.6806 -106.028 -205.85 + 62 117.866 375 1 0 -76.1687 -105.007 -175.85 +Number of digits in this event: 11 +Using G4ParticleGun... +Particle energy: 4.22153 LIN +Particle: proton Event: 63 -Number of tracker hits in this event = 31 - 63 113.691 782 11 1 -23.5733 -4.77204 125.55 - 63 102.616 876 11 0 -23.5751 -4.76931 124.15 - 63 96.0421 782 10 1 -23.606 -4.71128 95.55 - 63 112.452 876 10 0 -23.6077 -4.70953 94.15 - 63 105.649 782 9 1 -23.6495 -4.67131 65.55 - 63 125.349 876 9 0 -23.6491 -4.6724 64.15 - 63 144.581 782 8 1 -23.6437 -4.69468 35.55 - 63 133.096 876 8 0 -23.6457 -4.69581 34.15 - 63 101.699 781 7 1 -23.6892 -4.72188 5.55 - 63 101.036 876 7 0 -23.6933 -4.72401 4.15 - 63 94.7185 781 6 1 -23.7804 -4.77204 -24.45 - 63 96.5692 876 6 0 -23.7832 -4.77709 -25.85 - 63 115.218 781 5 1 -23.8316 -4.90022 -54.45 - 63 118.999 875 5 0 -23.8329 -4.90652 -55.85 - 63 123.776 780 4 1 -23.8711 -5.03553 -84.45 - 63 228.949 875 4 0 -23.8748 -5.04217 -85.85 - 63 107.429 780 3 1 -23.9419 -5.18185 -114.45 - 63 165.001 874 3 0 -23.9486 -5.1882 -115.85 - 63 130.395 779 2 1 -24.084 -5.32782 -144.45 - 63 101.443 873 2 0 -24.0908 -5.3335 -145.85 - 63 87.273 779 1 1 -24.2334 -5.45418 -174.45 - 63 91.6125 872 1 0 -24.2414 -5.46146 -175.85 - 63 126.485 778 0 1 -24.4098 -5.61565 -204.45 - 63 107.381 872 0 0 -24.4175 -5.62234 -205.85 - 63 113.91 1124 4 0 -20.5205 44.8842 -86.1115 - 63 169.706 761 4 0 -87.2139 -27.6851 -86.2498 - 63 95.9723 762 4 0 -87.5872 -27.65 -86.0218 - 63 140.471 791 4 0 -53.3247 -21.7714 -86.2499 - 63 112.513 781 9 1 -23.6503 -4.67107 65.3478 - 63 191.436 780 9 1 -23.8504 -4.65578 65.4155 - 63 28.2392 308 11 0 -38.0171 -118.496 123.75 -Number of digits in this event = 14 -Using G4ParticleGun ... -8.65832 LIN -proton +Number of tracker hits in this event: 26 + 63 106.532 935 11 1 7.0547 39.9902 125.55 + 63 313.973 1099 11 0 7.05649 39.9909 124.15 + 63 113.463 935 10 1 7.09852 40.0114 95.55 + 63 116.833 1099 10 0 7.10022 40.0128 94.15 + 63 217.945 935 9 1 7.13917 40.0449 65.55 + 63 95.4041 1099 9 0 7.13963 40.0453 64.15 + 63 144.154 935 8 1 7.14796 40.0495 35.55 + 63 125.711 1099 8 0 7.14923 40.0493 34.15 + 63 113.868 935 7 1 7.17317 40.0435 5.55 + 63 104.763 1099 7 0 7.17471 40.0436 4.15 + 63 106.875 935 6 1 7.20328 40.0465 -24.45 + 63 118.459 1099 6 0 7.20429 40.0471 -25.85 + 63 94.3864 935 5 1 7.22644 40.063 -54.45 + 63 108.828 1100 5 0 7.22972 40.0645 -55.85 + 63 150.768 936 4 1 7.2943 40.0929 -84.45 + 63 103.997 1100 4 0 7.29636 40.0946 -85.85 + 63 96.2558 936 3 1 7.33615 40.1333 -114.45 + 63 112.252 1100 3 0 7.33905 40.1355 -115.85 + 63 282.321 936 2 1 7.39563 40.1798 -144.45 + 63 101.403 1100 2 0 7.39977 40.1831 -145.85 + 63 133.233 937 1 1 7.48766 40.2469 -174.45 + 63 151.715 1101 1 0 7.49333 40.2507 -175.85 + 63 101.918 937 0 1 7.60505 40.3315 -204.45 + 63 128.273 1101 0 0 7.61163 40.3352 -205.85 + 63 25.1531 320 1 0 -71.6056 -115.989 -175.905 + 63 11.4909 937 2 1 7.45 40.2351 -144.657 +Number of digits in this event: 12 +Using G4ParticleGun... +Particle energy: 4.80262 LIN +Particle: proton Event: 64 -Number of tracker hits in this event = 31 - 64 198.955 1432 9 1 106.588 58.1821 65.55 - 64 126.304 1190 9 0 106.588 58.1821 64.15 - 64 115.862 1432 8 1 106.593 58.1846 35.55 - 64 205.369 1190 8 0 106.594 58.1853 34.15 - 64 216.25 1432 7 1 106.603 58.1993 5.55 - 64 110.562 1190 7 0 106.604 58.2008 4.15 - 64 105.834 1432 6 1 106.619 58.2302 -24.45 - 64 122.713 1190 6 0 106.62 58.2313 -25.85 - 64 110.847 1432 5 1 106.64 58.2546 -54.45 - 64 218.189 1191 5 0 106.642 58.2538 -55.85 - 64 143.095 1432 4 1 106.679 58.2357 -84.45 - 64 118.067 1190 4 0 106.682 58.2353 -85.85 - 64 106.176 1432 3 1 106.739 58.2259 -114.45 - 64 128.049 1190 3 0 106.741 58.2251 -115.85 - 64 171.855 1433 2 1 106.78 58.2081 -144.45 - 64 112.516 1190 2 0 106.781 58.2072 -145.85 - 64 116.005 1433 1 1 106.818 58.1804 -174.45 - 64 106.482 1190 1 0 106.819 58.1797 -175.85 - 64 132.077 1433 0 1 106.855 58.1676 -204.45 - 64 99.3128 1190 0 0 106.856 58.1673 -205.85 - 64 54.0146 1497 1 0 19.8097 119.695 -176.25 - 64 45.5135 1729 1 0 -16.1835 166.048 -176.25 - 64 6.66383 1734 1 0 -16.1716 166.971 -176.25 - 64 25.2899 1777 1 0 19.7208 175.623 -176.25 - 64 44.7752 1721 0 1 164.467 -166.994 -204.74 - 64 123.254 416 8 1 -96.75 160.422 35.3783 - 64 302.16 1432 2 1 106.75 58.2748 -144.569 - 64 47.4971 1187 2 0 108.677 57.4574 -145.85 - 64 2.88968 1192 2 0 108.348 58.5486 -145.85 - 64 161.696 1433 9 1 106.75 58.3182 65.2455 - 64 265.887 1434 9 1 106.95 58.1999 65.1925 -Number of digits in this event = 18 -Using G4ParticleGun ... -9.25908 LIN -proton +Number of tracker hits in this event: 24 + 64 101.989 649 11 1 -50.0647 32.5987 125.55 + 64 136.994 1062 11 0 -50.0656 32.5986 124.15 + 64 224.45 649 10 1 -50.0865 32.6005 95.55 + 64 111.56 1062 10 0 -50.1006 32.6108 94.15 + 64 112.123 648 9 1 -50.3988 32.8285 65.55 + 64 105.214 1063 9 0 -50.4126 32.8412 64.15 + 64 211.503 646 8 1 -50.6976 33.1024 35.55 + 64 127.649 1065 8 0 -50.7119 33.1164 34.15 + 64 119.016 645 7 1 -51.0057 33.4028 5.55 + 64 154.033 1066 7 0 -51.0189 33.4173 4.15 + 64 142.014 643 6 1 -51.2894 33.7093 -24.45 + 64 98.6321 1068 6 0 -51.3019 33.7241 -25.85 + 64 144.174 642 5 1 -51.5543 34.0218 -54.45 + 64 114.757 1069 5 0 -51.567 34.0361 -55.85 + 64 148.98 641 4 1 -51.8243 34.3285 -84.45 + 64 113.191 1071 4 0 -51.8372 34.3426 -85.85 + 64 142.643 639 3 1 -52.0997 34.6334 -114.45 + 64 113.188 1072 3 0 -52.1145 34.6459 -115.85 + 64 154.989 638 2 1 -52.4191 34.9037 -144.45 + 64 172.401 1074 2 0 -52.4343 34.9177 -145.85 + 64 106.121 636 1 1 -52.7446 35.2038 -174.45 + 64 103.514 1075 1 0 -52.7607 35.2172 -175.85 + 64 117.768 634 0 1 -53.0891 35.4944 -204.45 + 64 100.43 1077 0 0 -53.1057 35.5065 -205.85 +Number of digits in this event: 12 +Using G4ParticleGun... +Particle energy: 2.05799 LIN +Particle: proton Event: 65 -Number of tracker hits in this event = 22 - 65 96.9162 1389 10 1 98.0556 -27.4197 95.55 - 65 121.173 763 10 0 98.0549 -27.4196 94.15 - 65 181.328 1389 9 1 98.04 -27.4172 65.55 - 65 106.107 763 9 0 98.0396 -27.417 64.15 - 65 106.708 1389 8 1 98.0339 -27.4133 35.55 - 65 146.376 763 8 0 98.0343 -27.4119 34.15 - 65 120.178 1389 7 1 98.0389 -27.3846 5.55 - 65 132.674 763 7 0 98.0389 -27.384 4.15 - 65 106.795 1389 6 1 98.0381 -27.3716 -24.45 - 65 93.2237 763 6 0 98.0374 -27.3709 -25.85 - 65 102.925 1389 5 1 98.0229 -27.3555 -54.45 - 65 118.364 763 5 0 98.0223 -27.3552 -55.85 - 65 101.039 1389 4 1 98.0121 -27.3507 -84.45 - 65 164.524 763 4 0 98.0117 -27.349 -85.85 - 65 133.258 1389 3 1 98.0047 -27.3118 -114.45 - 65 121.42 763 3 0 98.0045 -27.3102 -115.85 - 65 116.941 1389 2 1 98.0024 -27.2802 -144.45 - 65 210.405 763 2 0 98.0026 -27.279 -145.85 - 65 130.065 1389 1 1 98.005 -27.2554 -174.45 - 65 120.487 763 1 0 98.005 -27.2546 -175.85 - 65 120.291 1389 0 1 98.0055 -27.2385 -204.45 - 65 108.176 764 0 0 98.0053 -27.2369 -205.85 -Number of digits in this event = 13 -Using G4ParticleGun ... -1.01214 LIN -proton +Number of tracker hits in this event: 20 + 65 112.327 446 9 0 -100.422 -90.9031 64.15 + 65 107.486 398 8 1 -100.429 -90.8917 35.55 + 65 151.087 446 8 0 -100.43 -90.8912 34.15 + 65 112.728 398 7 1 -100.452 -90.8839 5.55 + 65 165.364 446 7 0 -100.453 -90.8847 4.15 + 65 170.097 398 6 1 -100.496 -90.8966 -24.45 + 65 179.342 446 6 0 -100.498 -90.8983 -25.85 + 65 117.324 397 5 1 -100.55 -90.9316 -54.45 + 65 103.364 446 5 0 -100.551 -90.929 -55.85 + 65 139.954 397 4 1 -100.551 -90.8814 -84.45 + 65 107.85 446 4 0 -100.551 -90.8763 -85.85 + 65 133.402 397 3 1 -100.556 -90.7677 -114.45 + 65 167.299 446 3 0 -100.557 -90.7639 -115.85 + 65 123.699 397 2 1 -100.575 -90.6995 -144.45 + 65 116.16 447 2 0 -100.57 -90.6963 -145.85 + 65 116.197 398 1 1 -100.467 -90.6422 -174.45 + 65 89.5135 447 1 0 -100.459 -90.6416 -175.85 + 65 357.898 399 0 1 -100.298 -90.631 -204.45 + 65 116.901 447 0 0 -100.291 -90.6318 -205.85 + 65 90.094 397 6 1 -100.55 -90.9309 -24.7817 +Number of digits in this event: 10 +Using G4ParticleGun... +Particle energy: 3.15353 LIN +Particle: proton Event: 66 -Number of tracker hits in this event = 30 - 66 153.416 1420 9 1 104.292 -71.7048 65.55 - 66 99.8621 541 9 0 104.293 -71.6973 64.15 - 66 113.935 1420 8 1 104.298 -71.5483 35.55 - 66 218.252 542 8 0 104.303 -71.5408 34.15 - 66 246.313 1421 7 1 104.386 -71.3975 5.55 - 66 120.002 543 7 0 104.381 -71.3937 4.15 - 66 238.7 1420 6 1 104.292 -71.3282 -24.45 - 66 120.016 543 6 0 104.288 -71.3232 -25.85 - 66 121.122 1420 5 1 104.2 -71.2668 -54.45 - 66 165.788 543 5 0 104.189 -71.2652 -55.85 - 66 140.942 1418 4 1 103.944 -71.2598 -84.45 - 66 180.427 543 4 0 103.931 -71.2605 -85.85 - 66 136.556 1417 3 1 103.676 -71.2749 -114.45 - 66 195.807 543 3 0 103.657 -71.2741 -115.85 - 66 302.973 1415 2 1 103.29 -71.2361 -144.45 - 66 145.07 544 2 0 103.272 -71.234 -145.85 - 66 208.336 1413 1 1 102.892 -71.1842 -174.45 - 66 221.581 544 1 0 102.876 -71.1809 -175.85 - 66 154.85 1412 0 1 102.555 -71.1183 -204.45 - 66 115.245 544 0 0 102.551 -71.1187 -205.85 - 66 10.7702 1410 1 1 102.342 -70.2084 -174.85 - 66 110.962 552 1 0 102.859 -69.5174 -175.85 - 66 64.9141 553 1 0 102.839 -69.45 -175.875 - 66 156.419 1412 1 1 102.747 -69.9401 -174.85 - 66 105.488 1416 2 1 103.35 -71.1512 -144.635 - 66 99.979 1414 2 1 103.15 -70.8711 -144.739 - 66 117.897 544 4 0 103.923 -71.2499 -85.9364 - 66 119.899 545 4 0 103.789 -71.05 -86.0118 - 66 266.638 546 4 0 103.47 -70.85 -86.0386 - 66 127.967 547 4 0 103.441 -70.65 -85.9489 -Number of digits in this event = 21 -Using G4ParticleGun ... -3.82191 LIN -proton +Number of tracker hits in this event: 26 + 66 106.431 535 11 1 -73.0465 17.2326 125.55 + 66 101.511 985 11 0 -73.0457 17.2315 124.15 + 66 112.561 535 10 1 -73.0252 17.2052 95.55 + 66 101.162 985 10 0 -73.0241 17.2025 94.15 + 66 144.787 535 9 1 -72.9938 17.1523 65.55 + 66 95.0811 985 9 0 -72.9913 17.1515 64.15 + 66 193.673 535 8 1 -72.9414 17.1376 35.55 + 66 127.412 985 8 0 -72.9384 17.137 34.15 + 66 96.8619 535 7 1 -72.871 17.1267 5.55 + 66 136.255 985 7 0 -72.8689 17.1257 4.15 + 66 108.607 536 6 1 -72.8323 17.1023 -24.45 + 66 184.873 985 6 0 -72.8297 17.1018 -25.85 + 66 129.076 536 5 1 -72.7859 17.0919 -54.45 + 66 147.703 985 5 0 -72.7847 17.092 -55.85 + 66 125.626 536 4 1 -72.7614 17.0933 -84.45 + 66 210.264 985 4 0 -72.7649 17.0949 -85.85 + 66 212.632 536 3 1 -72.8444 17.1346 -114.45 + 66 104.97 985 3 0 -72.8406 17.1346 -115.85 + 66 177.92 536 2 1 -72.7594 17.138 -144.45 + 66 99.1101 985 2 0 -72.7561 17.1394 -145.85 + 66 108.903 536 1 1 -72.6844 17.161 -174.45 + 66 250.96 985 1 0 -72.6813 17.1625 -175.85 + 66 156.215 537 0 1 -72.6116 17.1996 -204.45 + 66 160.175 985 0 0 -72.6078 17.1999 -205.85 + 66 145.671 536 0 1 -72.65 17.1964 -204.675 + 66 192.57 988 8 0 -72.9833 17.6728 34.1499 +Number of digits in this event: 18 +Using G4ParticleGun... +Particle energy: 4.81122 LIN +Particle: proton Event: 67 -Number of tracker hits in this event = 22 - 67 152.774 1432 10 1 106.641 -5.19083 95.55 - 67 94.4958 874 10 0 106.641 -5.18949 94.15 - 67 178.736 1432 9 1 106.656 -5.16572 65.55 - 67 115.999 874 9 0 106.658 -5.16549 64.15 - 67 135.125 1432 8 1 106.704 -5.16629 35.55 - 67 136.791 874 8 0 106.706 -5.16692 34.15 - 67 112.284 1432 7 1 106.733 -5.17101 5.55 - 67 93.9388 874 7 0 106.734 -5.17159 4.15 - 67 97.741 1432 6 1 106.741 -5.18716 -24.45 - 67 183.251 874 6 0 106.741 -5.18918 -25.85 - 67 101.176 1432 5 1 106.725 -5.22361 -54.45 - 67 124.596 874 5 0 106.726 -5.22601 -55.85 - 67 112.882 1433 4 1 106.753 -5.27744 -84.45 - 67 113.651 873 4 0 106.754 -5.28115 -85.85 - 67 121.315 1433 3 1 106.769 -5.35696 -114.45 - 67 101.272 873 3 0 106.768 -5.35991 -115.85 - 67 192.66 1433 2 1 106.762 -5.41345 -144.45 - 67 116.243 873 2 0 106.761 -5.41569 -145.85 - 67 99.1383 1432 1 1 106.746 -5.45864 -174.45 - 67 116.834 872 1 0 106.746 -5.45994 -175.85 - 67 204.565 1432 0 1 106.748 -5.48253 -204.45 - 67 114.406 872 0 0 106.75 -5.48678 -205.85 -Number of digits in this event = 10 -Using G4ParticleGun ... -1.67781 LIN -proton +Number of tracker hits in this event: 26 + 67 119.801 614 11 1 -57.2306 -1.23211 125.55 + 67 115 894 11 0 -57.2314 -1.23159 124.15 + 67 159.318 614 10 1 -57.2435 -1.21519 95.55 + 67 120.561 894 10 0 -57.2431 -1.21466 94.15 + 67 136.763 614 9 1 -57.2362 -1.19796 65.55 + 67 105.532 894 9 0 -57.2349 -1.19674 64.15 + 67 103.034 614 8 1 -57.2098 -1.17064 35.55 + 67 119.849 894 8 0 -57.2091 -1.16933 34.15 + 67 97.2766 614 7 1 -57.1932 -1.14169 5.55 + 67 112.248 894 7 0 -57.191 -1.14069 4.15 + 67 104.405 614 6 1 -57.1461 -1.11921 -24.45 + 67 224.776 894 6 0 -57.1463 -1.11902 -25.85 + 67 110.27 614 5 1 -57.1529 -1.11556 -54.45 + 67 118.491 894 5 0 -57.154 -1.11438 -55.85 + 67 109.31 614 4 1 -57.1809 -1.08652 -84.45 + 67 107.177 894 4 0 -57.1821 -1.08589 -85.85 + 67 147.645 614 3 1 -57.2068 -1.07124 -114.45 + 67 160.928 894 3 0 -57.2084 -1.07008 -115.85 + 67 95.5439 614 2 1 -57.2376 -1.04323 -144.45 + 67 220.836 895 2 0 -57.2397 -1.0428 -145.85 + 67 111.636 613 1 1 -57.2846 -1.03705 -174.45 + 67 142.531 895 1 0 -57.2874 -1.03671 -175.85 + 67 104.348 613 0 1 -57.3463 -1.02808 -204.45 + 67 113.354 895 0 0 -57.3499 -1.0273 -205.85 + 67 75.0385 895 3 0 -57.1806 -1.05 -116.23 + 67 7.58471 895 6 0 -57.1823 -1.04963 -26.2315 +Number of digits in this event: 9 +Using G4ParticleGun... +Particle energy: 8.90853 LIN +Particle: proton Event: 68 -Number of tracker hits in this event = 16 - 68 131.567 708 7 1 -38.3632 -141.984 5.55 - 68 120.062 190 7 0 -38.3605 -141.99 4.15 - 68 100.136 708 6 1 -38.2902 -142.133 -24.45 - 68 111.568 190 6 0 -38.2897 -142.139 -25.85 - 68 109.01 708 5 1 -38.2824 -142.266 -54.45 - 68 108.573 189 5 0 -38.2835 -142.268 -55.85 - 68 144.981 708 4 1 -38.3168 -142.305 -84.45 - 68 259.667 189 4 0 -38.321 -142.305 -85.85 - 68 138.018 708 3 1 -38.4073 -142.318 -114.45 - 68 90.8134 189 3 0 -38.4095 -142.327 -115.85 - 68 126.984 708 2 1 -38.4477 -142.496 -144.45 - 68 119.715 188 2 0 -38.451 -142.506 -145.85 - 68 116.567 707 1 1 -38.5165 -142.718 -174.45 - 68 130.833 187 1 0 -38.5175 -142.729 -175.85 - 68 111.117 707 0 1 -38.5351 -142.945 -204.45 - 68 217.037 185 0 0 -38.5361 -142.958 -205.85 -Number of digits in this event = 9 -Using G4ParticleGun ... -1.49452 LIN -proton +Number of tracker hits in this event: 90 + 68 103.798 316 9 1 -116.837 -18.6289 65.55 + 68 99.66 807 9 0 -116.837 -18.6288 64.15 + 68 101.633 316 8 1 -116.842 -18.6262 35.55 + 68 105.627 807 8 0 -116.842 -18.6261 34.15 + 68 413.172 316 7 1 -116.84 -18.6239 5.55 + 68 120.857 807 7 0 -116.84 -18.6246 4.15 + 68 276.057 316 6 1 -116.856 -18.6362 -24.45 + 68 369.569 807 6 0 -116.857 -18.6367 -25.85 + 68 104.459 316 5 1 -116.867 -18.6473 -54.45 + 68 124.339 807 5 0 -116.867 -18.6482 -55.85 + 68 124.882 316 4 1 -116.875 -18.6648 -84.45 + 68 143.924 806 4 0 -116.875 -18.6653 -85.85 + 68 427.289 316 3 1 -116.879 -18.6743 -114.45 + 68 146.988 806 3 0 -116.878 -18.6743 -115.85 + 68 112.001 316 2 1 -116.87 -18.6746 -144.45 + 68 133.603 806 2 0 -116.87 -18.6742 -145.85 + 68 118.99 316 1 1 -116.877 -18.6693 -174.45 + 68 106.566 806 1 0 -116.877 -18.6685 -175.85 + 68 94.168 316 0 1 -116.885 -18.6522 -204.45 + 68 52.2438 806 0 0 -116.884 -18.6503 -205.85 + 68 139.685 807 0 0 -116.884 -18.65 -206.059 + 68 51.3903 1092 0 0 -73.9261 38.5622 -206.25 + 68 104.167 1093 0 0 -73.8609 38.65 -206.174 + 68 89.1702 1094 0 0 -73.7115 38.85 -205.999 + 68 64.9296 536 0 1 -72.7438 40.1595 -204.85 + 68 147.232 537 0 1 -72.65 40.2866 -204.738 + 68 35.8641 538 0 1 -72.45 40.5582 -204.499 + 68 170.008 1262 1 0 -48.1809 72.5078 -176.25 + 68 132.405 1263 1 0 -48.0727 72.65 -176.124 + 68 58.6052 1264 1 0 -47.9206 72.85 -175.948 + 68 79.7958 665 1 1 -46.9744 74.1007 -174.85 + 68 307.773 666 1 1 -46.85 74.2651 -174.706 + 68 13.5123 667 1 1 -46.65 74.5228 -174.478 + 68 35.4292 1427 2 0 -26.451 105.681 -146.25 + 68 144.329 1428 2 0 -26.4063 105.75 -146.187 + 68 87.3207 1429 2 0 -26.2773 105.95 -146.007 + 68 15.4121 772 2 1 -25.4687 107.215 -144.85 + 68 144.389 773 2 1 -25.45 107.244 -144.823 + 68 42.165 774 2 1 -25.25 107.557 -144.537 + 68 16.6603 1576 3 0 -6.83744 135.517 -116.25 + 68 106.425 1577 3 0 -6.81575 135.55 -116.217 + 68 77.4449 1578 3 0 -6.68325 135.75 -116.014 + 68 51.4193 870 3 1 -5.91322 136.911 -114.85 + 68 203.053 871 3 1 -5.85 137.006 -114.755 + 68 0.681513 872 3 1 -5.65 137.309 -114.452 + 68 34.0913 1724 4 0 13.6518 165.082 -86.25 + 68 109.556 1725 4 0 13.6988 165.15 -86.1813 + 68 97.0856 1726 4 0 13.8371 165.35 -85.9816 + 68 38.4318 972 4 1 14.6054 166.49 -84.85 + 68 223.654 973 4 1 14.65 166.556 -84.7843 + 68 22.9073 974 4 1 14.85 166.852 -84.49 + 68 14.7897 803 3 1 -19.398 35.786 -114.85 + 68 97.7562 555 3 0 -113.944 -68.9378 -116.25 + 68 51.5427 554 3 0 -113.984 -69.05 -115.98 + 68 41.9915 320 3 1 -116.008 -68.3628 -114.85 + 68 194.784 319 3 1 -116.15 -68.2945 -114.807 + 68 27.2406 318 3 1 -116.35 -68.1004 -114.819 + 68 316.891 565 3 0 -115.764 -66.9636 -115.85 + 68 91.5743 566 3 0 -115.702 -66.85 -115.893 + 68 36.091 317 6 1 -116.75 -18.5695 -24.6947 + 68 26.72 315 6 1 -116.95 -18.6525 -24.7206 + 68 90.208 716 6 0 -107.722 -36.7349 -26.2495 + 68 67.003 715 6 0 -107.627 -36.85 -26.0413 + 68 139.117 366 6 1 -106.936 -37.384 -24.8498 + 68 99.0095 367 6 1 -106.75 -37.5044 -24.5637 + 68 117.11 368 6 1 -106.546 -37.6639 -24.45 + 68 167.012 708 6 0 -106.372 -38.2928 -25.8501 + 68 166.682 385 5 1 -103.1 -41.0671 -54.45 + 68 59.0407 386 5 1 -102.95 -41.0606 -54.5932 + 68 101.243 387 5 1 -102.75 -41.0471 -54.6503 + 68 120.888 388 5 1 -102.55 -41.0199 -54.459 + 68 52.082 389 5 1 -102.35 -41.2356 -54.7712 + 68 81.6928 691 5 0 -101.785 -41.7343 -55.85 + 68 118.716 690 5 0 -101.764 -41.8506 -55.9506 + 68 174.056 689 5 0 -101.897 -42.0502 -56.0412 + 68 101.713 688 5 0 -101.905 -42.2501 -56.1497 + 68 5.84656 317 7 1 -116.75 -18.425 5.40306 + 68 48.1487 315 7 1 -116.95 -18.3862 5.27851 + 68 21.1063 813 7 0 -117.411 -17.2855 4.14992 + 68 88.567 814 7 0 -117.426 -17.25 4.1141 + 68 59.08 815 7 0 -117.527 -17.05 3.8744 + 68 71.252 245 6 1 -131.041 4.9117 -24.45 + 68 58.7067 244 6 1 -131.15 4.93451 -24.6931 + 68 216.747 924 6 0 -131.472 4.96107 -25.8501 + 68 16.1228 190 5 1 -141.963 7.46598 -54.45 + 68 173.544 191 5 1 -141.95 7.43895 -54.4987 + 68 23.5842 934 5 0 -141.557 6.87373 -55.8505 + 68 169.329 933 5 0 -141.541 6.85 -55.9046 + 68 222.659 936 7 0 -151.667 7.32609 3.75 + 68 257.01 937 7 0 -152.075 7.45 4.06284 +Number of digits in this event: 35 +Using G4ParticleGun... +Particle energy: 9.61176 LIN +Particle: proton Event: 69 -Number of tracker hits in this event = 27 - 69 114.887 1375 10 1 95.2267 40.9995 95.55 - 69 122.956 1104 10 0 95.2235 40.995 94.15 - 69 111.761 1374 9 1 95.1371 40.8889 65.55 - 69 128.3 1104 9 0 95.1309 40.8804 64.15 - 69 120.064 1374 8 1 94.9975 40.7151 35.55 - 69 108.601 1103 8 0 94.9923 40.7081 34.15 - 69 157.858 1373 7 1 94.8818 40.5665 5.55 - 69 120.426 1102 7 0 94.8753 40.5622 4.15 - 69 111.774 1372 6 1 94.7464 40.4733 -24.45 - 69 177.013 1102 6 0 94.7417 40.4688 -25.85 - 69 100.476 1372 5 1 94.6419 40.3744 -54.45 - 69 114.429 1101 5 0 94.6386 40.3659 -55.85 - 69 157.194 1372 4 1 94.5667 40.1934 -84.45 - 69 132.625 1100 4 0 94.5633 40.1896 -85.85 - 69 103.577 1371 3 1 94.5059 40.117 -114.45 - 69 131.577 1100 3 0 94.5036 40.1111 -115.85 - 69 111.943 1371 2 1 94.4743 39.9965 -144.45 - 69 111.339 1099 2 0 94.4696 39.991 -145.85 - 69 108.733 1371 1 1 94.3732 39.8587 -174.45 - 69 187.138 1099 1 0 94.3716 39.8529 -175.85 - 69 127.753 1371 0 1 94.3581 39.7294 -204.45 - 69 143.673 1098 0 0 94.3531 39.7232 -205.85 - 69 82.5374 1373 8 1 94.95 40.6913 35.4706 - 69 98.8403 1372 8 1 94.75 40.7099 35.3625 - 69 97.9318 1089 8 0 93.2628 37.8543 34.15 - 69 107.285 1088 8 0 93.2606 37.85 34.1483 - 69 232.431 1370 8 1 94.2519 37.711 35.1502 -Number of digits in this event = 14 -Using G4ParticleGun ... -2.8061 LIN -proton +Number of tracker hits in this event: 20 + 69 97.5471 1105 9 1 41.1997 -127.755 65.55 + 69 100.042 261 9 0 41.1999 -127.754 64.15 + 69 106.65 1105 8 1 41.2024 -127.742 35.55 + 69 139.365 262 8 0 41.2026 -127.741 34.15 + 69 100.599 1105 7 1 41.2042 -127.715 5.55 + 69 164.052 262 7 0 41.2051 -127.713 4.15 + 69 124.436 1105 6 1 41.2195 -127.682 -24.45 + 69 120.44 262 6 0 41.2212 -127.681 -25.85 + 69 98.6696 1106 5 1 41.2578 -127.655 -54.45 + 69 120.201 262 5 0 41.2592 -127.654 -55.85 + 69 140.802 1106 4 1 41.2867 -127.634 -84.45 + 69 124.421 262 4 0 41.2886 -127.635 -85.85 + 69 146.015 1106 3 1 41.3271 -127.636 -114.45 + 69 104.371 262 3 0 41.3288 -127.637 -115.85 + 69 366.907 1106 2 1 41.3637 -127.645 -144.45 + 69 185.405 262 2 0 41.3659 -127.645 -145.85 + 69 103.281 1106 1 1 41.4096 -127.643 -174.45 + 69 239.986 262 1 0 41.4111 -127.642 -175.85 + 69 123.229 1106 0 1 41.4411 -127.636 -204.45 + 69 94.7644 262 0 0 41.4426 -127.636 -205.85 +Number of digits in this event: 13 +Using G4ParticleGun... +Particle energy: 9.05449 LIN +Particle: proton Event: 70 -Number of tracker hits in this event = 26 - 70 104.415 829 11 1 -14.2271 43.1544 125.55 - 70 179.668 1115 11 0 -14.2235 43.151 124.15 - 70 140.41 829 10 1 -14.1517 43.0781 95.55 - 70 123.762 1115 10 0 -14.1457 43.0762 94.15 - 70 135.003 830 9 1 -14.0315 43.0352 65.55 - 70 96.9969 1114 9 0 -14.0236 43.0351 64.15 - 70 107.978 830 8 1 -13.8742 43.0338 35.55 - 70 109.903 1114 8 0 -13.8684 43.035 34.15 - 70 101.959 831 7 1 -13.7491 43.063 5.55 - 70 92.2177 1115 7 0 -13.7415 43.0656 4.15 - 70 211.505 832 6 1 -13.5874 43.1242 -24.45 - 70 90.7706 1115 6 0 -13.5791 43.1268 -25.85 - 70 136.764 833 5 1 -13.4047 43.1759 -54.45 - 70 99.5589 1115 5 0 -13.3974 43.1776 -55.85 - 70 118.694 833 4 1 -13.2562 43.2128 -84.45 - 70 209.805 1115 4 0 -13.25 43.2135 -85.85 - 70 135.729 834 3 1 -13.1254 43.2234 -114.45 - 70 132.779 1115 3 0 -13.1193 43.2243 -115.85 - 70 98.5281 835 2 1 -12.9928 43.2434 -144.45 - 70 155.75 1115 2 0 -12.9851 43.2455 -145.85 - 70 123.882 836 1 1 -12.8247 43.2899 -174.45 - 70 104.853 1116 1 0 -12.8182 43.2926 -175.85 - 70 137.015 836 0 1 -12.6896 43.3528 -204.45 - 70 94.9061 1116 0 0 -12.6824 43.353 -205.85 - 70 45.5012 1086 10 0 -18.6631 37.3272 94.1499 - 70 389.615 1085 10 0 -18.7158 37.25 94.0914 -Number of digits in this event = 14 -Using G4ParticleGun ... -4.23246 LIN -proton +Number of tracker hits in this event: 20 + 70 98.9314 1456 9 1 111.35 74.1159 65.55 + 70 123.794 1270 9 0 111.35 74.1156 64.15 + 70 146.774 1456 8 1 111.357 74.1075 35.55 + 70 263.646 1270 8 0 111.357 74.1067 34.15 + 70 117.408 1456 7 1 111.359 74.0946 5.55 + 70 105.978 1270 7 0 111.359 74.0939 4.15 + 70 125.291 1456 6 1 111.364 74.0806 -24.45 + 70 241.459 1270 6 0 111.364 74.0804 -25.85 + 70 131.292 1456 5 1 111.373 74.0749 -54.45 + 70 117.551 1270 5 0 111.372 74.075 -55.85 + 70 110.154 1456 4 1 111.357 74.0796 -84.45 + 70 134.716 1270 4 0 111.357 74.0799 -85.85 + 70 119.366 1455 3 1 111.343 74.083 -114.45 + 70 150.685 1270 3 0 111.342 74.0823 -115.85 + 70 148.87 1455 2 1 111.323 74.0649 -144.45 + 70 135.799 1270 2 0 111.322 74.0641 -145.85 + 70 97.1901 1455 1 1 111.289 74.0492 -174.45 + 70 115.415 1269 1 0 111.288 74.0489 -175.85 + 70 143.816 1455 0 1 111.255 74.0451 -204.45 + 70 106.259 1269 0 0 111.254 74.045 -205.85 +Number of digits in this event: 12 +Using G4ParticleGun... +Particle energy: 2.01388 LIN +Particle: proton Event: 71 -Number of tracker hits in this event = 26 - 71 112.067 903 9 1 0.674616 133.69 65.55 - 71 202.397 1567 9 0 0.675587 133.688 64.15 - 71 170.311 903 8 1 0.694593 133.659 35.55 - 71 99.1527 1567 8 0 0.696875 133.659 34.15 - 71 116.644 903 7 1 0.745504 133.653 5.55 - 71 111.171 1567 7 0 0.74776 133.651 4.15 - 71 99.9546 903 6 1 0.786017 133.612 -24.45 - 71 150.78 1567 6 0 0.788815 133.609 -25.85 - 71 108.987 903 5 1 0.843616 133.555 -54.45 - 71 84.1746 1567 5 0 0.847262 133.551 -55.85 - 71 44.2018 1566 5 0 0.847867 133.55 -56.0813 - 71 156.884 904 4 1 0.92347 133.473 -84.45 - 71 114.905 1566 4 0 0.926695 133.469 -85.85 - 71 124.807 904 3 1 0.996188 133.382 -114.45 - 71 119.048 1566 3 0 0.998412 133.379 -115.85 - 71 138.62 904 2 1 1.03882 133.31 -144.45 - 71 132.691 1565 2 0 1.04306 133.307 -145.85 - 71 113.19 905 1 1 1.12625 133.231 -174.45 - 71 119.142 1565 1 0 1.14374 133.224 -175.85 - 71 111.991 907 0 1 1.50585 133.103 -204.45 - 71 116.804 1564 0 0 1.52406 133.097 -205.85 - 71 56.951 1191 2 0 36.9446 58.45 -145.991 - 71 74.7609 1190 2 0 36.9971 58.25 -145.936 - 71 111.348 1088 2 1 37.6921 58.2993 -144.85 - 71 261.425 1089 2 1 37.85 58.3722 -144.751 - 71 31.6571 1090 2 1 38.0501 58.4016 -144.67 -Number of digits in this event = 9 -Using G4ParticleGun ... -7.23282 LIN -proton +Number of tracker hits in this event: 22 + 71 113.305 448 10 1 -90.5125 50.6232 95.55 + 71 109.556 1152 10 0 -90.5091 50.6243 94.15 + 71 100.721 448 9 1 -90.4409 50.6526 65.55 + 71 172.854 1153 9 0 -90.4396 50.6531 64.15 + 71 105.183 448 8 1 -90.4113 50.6619 35.55 + 71 100.345 1153 8 0 -90.4075 50.6602 34.15 + 71 105.643 449 7 1 -90.3279 50.6183 5.55 + 71 182.695 1152 7 0 -90.3242 50.6133 4.15 + 71 100.873 449 6 1 -90.2552 50.5214 -24.45 + 71 124.456 1152 6 0 -90.2455 50.522 -25.85 + 71 124.153 450 5 1 -90.0464 50.5156 -54.45 + 71 150.944 1152 5 0 -90.0356 50.5185 -55.85 + 71 104.84 451 4 1 -89.7995 50.5764 -84.45 + 71 103.679 1152 4 0 -89.7862 50.58 -85.85 + 71 172.245 452 3 1 -89.5146 50.6575 -114.45 + 71 146.157 1153 3 0 -89.4972 50.6605 -115.85 + 71 115.842 454 2 1 -89.1367 50.7289 -144.45 + 71 100.853 1153 2 0 -89.1176 50.732 -145.85 + 71 136.355 456 1 1 -88.726 50.785 -174.45 + 71 98.8446 1153 1 0 -88.7059 50.7899 -175.85 + 71 279.05 458 0 1 -88.294 50.8869 -204.45 + 71 109.355 1154 0 0 -88.2749 50.8944 -205.85 +Number of digits in this event: 10 +Using G4ParticleGun... +Particle energy: 9.74674 LIN +Particle: proton Event: 72 -Number of tracker hits in this event = 24 - 72 149.436 639 9 1 -52.194 -115.618 65.55 - 72 118.238 322 9 0 -52.195 -115.619 64.15 - 72 134.698 639 8 1 -52.2139 -115.633 35.55 - 72 113.503 322 8 0 -52.2151 -115.634 34.15 - 72 97.3844 639 7 1 -52.2483 -115.642 5.55 - 72 98.3783 322 7 0 -52.25 -115.643 4.15 - 72 99.021 638 6 1 -52.2813 -115.648 -24.45 - 72 106.153 322 6 0 -52.2835 -115.649 -25.85 - 72 104.722 638 5 1 -52.3228 -115.667 -54.45 - 72 137.797 322 5 0 -52.3244 -115.668 -55.85 - 72 149.726 638 4 1 -52.356 -115.696 -84.45 - 72 170.44 322 4 0 -52.3586 -115.697 -85.85 - 72 148.208 638 3 1 -52.4111 -115.727 -114.45 - 72 109.012 322 3 0 -52.4146 -115.729 -115.85 - 72 186.054 637 2 1 -52.4917 -115.762 -144.45 - 72 157.632 321 2 0 -52.4942 -115.764 -145.85 - 72 112.754 637 1 1 -52.5424 -115.808 -174.45 - 72 109.702 321 1 0 -52.5455 -115.81 -175.85 - 72 122.511 637 0 1 -52.6095 -115.856 -204.45 - 72 130.319 321 0 0 -52.6117 -115.858 -205.85 - 72 131.583 264 4 0 -74.1075 -127.238 -86.2497 - 72 60.9001 526 4 1 -74.7286 -127.102 -84.8499 - 72 252.529 525 4 1 -74.8503 -127.069 -84.6956 - 72 184.312 524 4 1 -75.05 -127.216 -84.6209 -Number of digits in this event = 14 -Using G4ParticleGun ... -1.10564 LIN -proton +Number of tracker hits in this event: 31 + 72 114.128 776 10 1 -24.7744 110.655 95.55 + 72 123.533 1452 10 0 -24.7743 110.655 94.15 + 72 118.474 776 9 1 -24.77 110.652 65.55 + 72 127.614 1452 9 0 -24.7698 110.652 64.15 + 72 99.7653 776 8 1 -24.7654 110.643 35.55 + 72 106.448 1452 8 0 -24.7648 110.643 34.15 + 72 106.513 776 7 1 -24.7494 110.642 5.55 + 72 194.863 1452 7 0 -24.7482 110.642 4.15 + 72 124.143 776 6 1 -24.7216 110.642 -24.45 + 72 152.901 1452 6 0 -24.7212 110.639 -25.85 + 72 123.335 776 5 1 -24.7111 110.571 -54.45 + 72 156.916 1452 5 0 -24.7109 110.567 -55.85 + 72 171.073 776 4 1 -24.7073 110.492 -84.45 + 72 113.001 1451 4 0 -24.7065 110.489 -85.85 + 72 110.879 776 3 1 -24.6904 110.414 -114.45 + 72 204.859 1451 3 0 -24.6894 110.41 -115.85 + 72 140.776 776 2 1 -24.6692 110.342 -144.45 + 72 125.059 1450 2 0 -24.6682 110.339 -145.85 + 72 127.076 777 1 1 -24.6476 110.278 -174.45 + 72 116.689 1450 1 0 -24.6464 110.275 -175.85 + 72 123.344 777 0 1 -24.6196 110.204 -204.45 + 72 129.71 1450 0 0 -24.6182 110.199 -205.85 + 72 6.7782 355 5 0 -4.01595 -108.95 -56.1201 + 72 87.6394 1163 5 1 52.7693 23.1502 -54.7476 + 72 5.83796 1437 0 0 171.528 107.75 -206.215 + 72 18.7824 357 1 1 -108.68 -98.277 -174.744 + 72 41.8385 431 6 0 96.5996 -93.8557 -26.25 + 72 48.8422 430 6 0 96.6142 -93.95 -26.1067 + 72 77.4988 429 6 0 96.6807 -94.1505 -26.0181 + 72 56.4039 428 6 0 96.6978 -94.35 -26.0228 + 72 49.0188 427 6 0 96.7805 -94.55 -26.1123 +Number of digits in this event: 18 +Using G4ParticleGun... +Particle energy: 1.02787 LIN +Particle: proton Event: 73 -Number of tracker hits in this event = 25 - 73 114.222 987 11 1 17.4941 17.2193 125.55 - 73 128.596 985 11 0 17.4921 17.2152 124.15 - 73 158.992 986 10 1 17.4148 17.1244 95.55 - 73 212.04 985 10 0 17.4072 17.1218 94.15 - 73 337.635 986 9 1 17.2631 17.0565 65.55 - 73 122.996 985 9 0 17.2552 17.0595 64.15 - 73 371.191 985 8 1 17.0988 17.1295 35.55 - 73 161.87 985 8 0 17.0849 17.1342 34.15 - 73 108.906 983 7 1 16.8055 17.2247 5.55 - 73 153.512 985 7 0 16.7919 17.2271 4.15 - 73 118.559 982 6 1 16.5053 17.2774 -24.45 - 73 118.381 986 6 0 16.488 17.2779 -25.85 - 73 120.228 980 5 1 16.1368 17.2828 -54.45 - 73 147.219 986 5 0 16.1199 17.2833 -55.85 - 73 190.948 978 4 1 15.794 17.2958 -84.45 - 73 293.08 986 4 0 15.7786 17.2936 -85.85 - 73 132.441 977 3 1 15.4787 17.2389 -114.45 - 73 115.589 985 3 0 15.4612 17.238 -115.85 - 73 102.523 975 2 1 15.1018 17.2276 -144.45 - 73 128.994 985 2 0 15.0848 17.2327 -145.85 - 73 121.106 973 1 1 14.7474 17.348 -174.45 - 73 119.312 986 1 0 14.7331 17.3512 -175.85 - 73 108.114 971 0 1 14.4432 17.4066 -204.45 - 73 131.634 986 0 0 14.4334 17.4132 -205.85 - 73 113.118 984 8 1 17.05 17.3838 35.532 -Number of digits in this event = 18 -Using G4ParticleGun ... -9.14045 LIN -proton +Number of tracker hits in this event: 28 + 73 147.337 517 11 1 -76.5175 3.2243 125.55 + 73 121.769 915 11 0 -76.5105 3.22414 124.15 + 73 145.966 518 10 1 -76.3839 3.23865 95.55 + 73 324.997 915 10 0 -76.3745 3.23755 94.15 + 73 157.064 519 9 1 -76.1882 3.21981 65.55 + 73 193.044 915 9 0 -76.1798 3.21487 64.15 + 73 161.104 520 8 1 -76.0101 3.10192 35.55 + 73 139.45 915 8 0 -76.0032 3.09757 34.15 + 73 161.723 520 7 1 -75.8551 2.98076 5.55 + 73 125.524 914 7 0 -75.8491 2.97463 4.15 + 73 168.995 521 6 1 -75.7354 2.8185 -24.45 + 73 166.216 913 6 0 -75.7266 2.80972 -25.85 + 73 124.579 522 5 1 -75.563 2.6189 -54.45 + 73 123.135 912 5 0 -75.5576 2.61308 -55.85 + 73 163.077 523 4 1 -75.4439 2.47306 -84.45 + 73 134.54 912 4 0 -75.4363 2.46332 -85.85 + 73 137.089 523 3 1 -75.2954 2.27228 -114.45 + 73 119.866 911 3 0 -75.2904 2.26417 -115.85 + 73 130.894 524 2 1 -75.201 2.09645 -144.45 + 73 105.407 910 2 0 -75.1955 2.09079 -145.85 + 73 142.234 524 1 1 -75.0823 1.98058 -174.45 + 73 192.142 909 1 0 -75.0837 1.98088 -175.85 + 73 231.647 524 0 1 -75.1416 1.99141 -204.45 + 73 108.727 909 0 0 -75.1449 1.99584 -205.85 + 73 226.137 888 8 0 -95.069 -2.34846 33.75 + 73 333.334 418 8 1 -96.3928 -2.20004 35.15 + 73 83.4701 889 8 0 -95.3044 -2.25 34.1341 + 73 30.1234 916 10 0 -76.3643 3.2503 94.0354 +Number of digits in this event: 24 +Using G4ParticleGun... +Particle energy: 6.4805 LIN +Particle: proton Event: 74 -Number of tracker hits in this event = 150 - 74 135.534 222 7 1 -135.636 -54.4548 5.55 - 74 122.577 627 7 0 -135.636 -54.4551 4.15 - 74 119.182 222 6 1 -135.638 -54.4594 -24.45 - 74 118.707 627 6 0 -135.638 -54.4591 -25.85 - 74 123.289 222 5 1 -135.643 -54.4506 -54.45 - 74 116.377 628 5 0 -135.644 -54.4496 -55.85 - 74 117.312 222 4 1 -135.667 -54.4274 -84.45 - 74 142.619 628 4 0 -135.667 -54.4262 -85.85 - 74 117.49 222 3 1 -135.672 -54.403 -114.45 - 74 207.475 628 3 0 -135.672 -54.4007 -115.85 - 74 155.403 222 2 1 -135.674 -54.3531 -144.45 - 74 99.0151 628 2 0 -135.674 -54.3509 -145.85 - 74 111.503 222 1 1 -135.671 -54.3043 -174.45 - 74 141.763 628 1 0 -135.67 -54.3011 -175.85 - 74 130.963 222 0 1 -135.663 -54.2364 -204.45 - 74 109.292 629 0 0 -135.663 -54.2333 -205.85 - 74 272.682 760 0 0 -146.26 -28.0303 -206.25 - 74 163.711 761 0 0 -146.331 -27.85 -206.08 - 74 49.8538 762 0 0 -146.409 -27.65 -205.892 - 74 301.78 166 0 1 -146.838 -26.5464 -204.85 - 74 132.627 165 0 1 -146.95 -26.2588 -204.578 - 74 128.269 912 1 0 -157.411 2.51071 -176.25 - 74 280.634 913 1 0 -157.462 2.65 -176.113 - 74 68.1177 914 1 0 -157.535 2.85 -175.916 - 74 55.1803 111 1 1 -157.93 3.92808 -174.85 - 74 447.808 110 1 1 -157.95 3.98227 -174.796 - 74 223.483 1071 2 0 -168.192 34.2941 -146.25 - 74 286.534 1072 2 0 -168.244 34.45 -146.103 - 74 128.036 1073 2 0 -168.312 34.65 -145.916 - 74 124.837 57 2 1 -168.699 35.7917 -144.85 - 74 312.688 56 2 1 -168.75 35.9411 -144.711 - 74 18.5429 1231 3 0 -178.753 66.4275 -116.25 - 74 250.431 1232 3 0 -178.76 66.45 -116.229 - 74 211.388 1233 3 0 -178.826 66.65 -116.042 - 74 74.8244 1234 3 0 -178.891 66.85 -115.856 - 74 313.884 4 3 1 -179.242 67.9289 -114.85 - 74 86.9861 3 3 1 -179.35 68.2608 -114.541 - 74 145.312 163 0 1 -147.378 -27.7282 -204.85 - 74 272.606 849 0 0 -95.4557 -10.1715 -206.25 - 74 431.183 850 0 0 -95.3391 -10.05 -206.182 - 74 790.652 851 0 0 -95.1475 -9.85 -206.07 - 74 437.011 852 0 0 -94.9606 -9.65 -205.962 - 74 87.5597 853 0 0 -94.7753 -9.45 -205.856 - 74 148.288 435 0 1 -93.0264 -7.56196 -204.85 - 74 393.552 436 0 1 -92.95 -7.47952 -204.806 - 74 363.142 437 0 1 -92.75 -7.2638 -204.691 - 74 384.07 438 0 1 -92.55 -7.04597 -204.577 - 74 43.1654 439 0 1 -92.35 -6.82798 -204.462 - 74 218.133 1130 1 0 -40.8981 46.1299 -176.25 - 74 517.421 1131 1 0 -40.7813 46.25 -176.186 - 74 410.959 1132 1 0 -40.5874 46.45 -176.08 - 74 440.425 1133 1 0 -40.3911 46.65 -175.974 - 74 73.7901 1134 1 0 -40.1967 46.85 -175.869 - 74 155.006 708 1 1 -38.2981 48.7885 -174.85 - 74 402.812 709 1 1 -38.25 48.8376 -174.824 - 74 487.721 710 1 1 -38.05 49.043 -174.717 - 74 496.87 711 1 1 -37.85 49.2434 -174.608 - 74 212.452 712 1 1 -37.65 49.4425 -174.499 - 74 241.239 1422 2 0 15.5286 104.639 -146.25 - 74 438.979 1423 2 0 15.6351 104.75 -146.193 - 74 443.006 1424 2 0 15.8281 104.95 -146.091 - 74 436.436 1425 2 0 16.0214 105.15 -145.987 - 74 265.765 1426 2 0 16.2158 105.35 -145.883 - 74 226.389 990 2 1 18.1777 107.377 -144.85 - 74 483.888 991 2 1 18.25 107.452 -144.812 - 74 463.43 992 2 1 18.45 107.659 -144.707 - 74 474.088 993 2 1 18.65 107.865 -144.599 - 74 170.508 994 2 1 18.85 108.071 -144.492 - 74 139.468 1757 3 0 70.3347 171.684 -116.25 - 74 705.668 1758 3 0 70.3882 171.75 -116.221 - 74 456.104 1759 3 0 70.5513 171.95 -116.131 - 74 498.377 1760 3 0 70.7139 172.15 -116.041 - 74 536.816 1761 3 0 70.8734 172.35 -115.953 - 74 65.3802 1762 3 0 71.034 172.55 -115.863 - 74 45.7586 1263 3 1 72.8275 174.752 -114.85 - 74 769.57 1264 3 1 72.85 174.779 -114.837 - 74 697.001 1265 3 1 73.05 175.025 -114.724 - 74 728.415 1266 3 1 73.25 175.271 -114.613 - 74 354.281 1267 3 1 73.45 175.511 -114.509 - 74 53.2011 428 0 1 -94.4326 -9.12862 -204.85 - 74 54.9575 430 4 0 -163.975 -94.1174 -86.25 - 74 208.987 429 4 0 -163.994 -94.1501 -86.1327 - 74 109.645 79 4 1 -164.196 -94.5091 -84.8496 - 74 105.081 383 5 0 -167.225 -103.401 -56.25 - 74 126.151 63 5 1 -167.37 -103.829 -54.85 - 74 108.7 341 6 0 -170.231 -111.757 -26.25 - 74 137.561 48 6 1 -170.377 -112.14 -24.85 - 74 122.764 299 7 0 -173.125 -120.245 3.75 - 74 6.18233 298 7 0 -173.162 -120.35 4.11938 - 74 134.628 34 7 1 -173.266 -120.642 5.15 - 74 118.394 256 8 0 -176.079 -128.802 33.75 - 74 105.799 19 8 1 -176.218 -129.202 35.15 - 74 196.148 26 7 1 -174.917 -122.091 5.55 - 74 106.567 27 7 1 -174.75 -122.069 5.36004 - 74 38.3601 28 7 1 -174.55 -121.985 5.21342 - 74 15.7753 294 7 0 -173.018 -121.184 4.15 - 74 120.711 295 7 0 -172.963 -121.15 4.11648 - 74 96.1258 296 7 0 -172.658 -120.95 3.87391 - 74 41.5631 129 7 0 -162.768 -154.244 3.75003 - 74 146.414 128 7 0 -162.82 -154.35 3.83192 - 74 47.0698 127 7 0 -162.845 -154.55 4.0631 - 74 254.611 91 7 1 -161.876 -155.81 5.15 - 74 237.696 90 7 1 -161.95 -156.386 5.45357 - 74 411.534 116 7 0 -162.178 -156.841 4.15 - 74 140.616 77 4 1 -164.64 -94.5209 -84.8499 - 74 133.527 386 5 0 -169.377 -102.849 -56.2494 - 74 51.6934 385 5 0 -169.436 -102.95 -55.9001 - 74 137.757 52 5 1 -169.613 -103.252 -54.85 - 74 154.629 338 6 0 -174.799 -112.405 -26.25 - 74 123.287 25 6 1 -175.055 -112.864 -24.8498 - 74 2.43487 289 7 0 -178.659 -122.347 3.75014 - 74 110.105 288 7 0 -178.661 -122.35 3.75943 - 74 124.012 6 7 1 -178.839 -122.799 5.15 - 74 114.107 902 0 0 -55.633 0.536157 -206.25 - 74 319.384 903 0 0 -55.4714 0.65 -206.207 - 74 185.692 904 0 0 -55.194 0.85 -206.132 - 74 180.535 905 0 0 -54.9171 1.05 -206.058 - 74 143.408 906 0 0 -54.6332 1.25 -205.982 - 74 168.807 907 0 0 -54.3448 1.45 -205.906 - 74 54.6013 649 0 1 -50.1457 4.3422 -204.85 - 74 90.3802 650 0 1 -50.05 4.40811 -204.826 - 74 94.8907 651 0 1 -49.85 4.54365 -204.775 - 74 111.218 652 0 1 -49.65 4.68151 -204.723 - 74 97.006 653 0 1 -49.45 4.81901 -204.669 - 74 97.8065 654 0 1 -49.25 4.95588 -204.617 - 74 92.1722 655 0 1 -49.05 5.09146 -204.566 - 74 103.868 656 0 1 -48.85 5.22886 -204.514 - 74 20.4036 657 0 1 -48.65 5.36609 -204.461 - 74 63.4516 1220 1 0 33.6767 64.1987 -176.25 - 74 258.703 1221 1 0 33.7485 64.25 -176.225 - 74 288.868 1222 1 0 34.0307 64.45 -176.129 - 74 193.987 1223 1 0 34.3165 64.65 -176.032 - 74 212.59 1224 1 0 34.6125 64.85 -175.936 - 74 36.8914 1089 1 1 37.968 67.1178 -174.85 - 74 115.795 1090 1 1 38.05 67.1732 -174.824 - 74 109.964 1091 1 1 38.25 67.3085 -174.759 - 74 306.456 1092 1 1 38.45 67.4437 -174.697 - 74 136.389 1093 1 1 38.65 67.5799 -174.637 - 74 137.259 1094 1 1 38.85 67.7157 -174.576 - 74 121.927 1095 1 1 39.05 67.8512 -174.515 - 74 6.22464 1096 1 1 39.25 67.9856 -174.452 - 74 163.732 1499 2 0 105.762 119.986 -146.25 - 74 177.347 1500 2 0 105.972 120.15 -146.161 - 74 181.912 1501 2 0 106.222 120.35 -146.053 - 74 150.701 1502 2 0 106.479 120.55 -145.942 - 74 122.519 1444 2 1 108.999 122.496 -144.85 - 74 162.057 1445 2 1 109.15 122.613 -144.784 - 74 222.551 1446 2 1 109.35 122.767 -144.699 - 74 151.851 1447 2 1 109.55 122.92 -144.61 - 74 103.746 1448 2 1 109.75 123.077 -144.524 -Number of digits in this event = 102 -Using G4ParticleGun ... -6.82316 LIN -proton +Number of tracker hits in this event: 19 + 74 118.114 1204 8 1 61.0462 -128.504 35.55 + 74 117.6 258 8 0 61.0456 -128.504 34.15 + 74 88.2688 1204 7 1 61.0328 -128.507 5.55 + 74 189.978 258 7 0 61.0321 -128.506 4.15 + 74 153.76 1204 6 1 61.0182 -128.497 -24.45 + 74 135.437 258 6 0 61.0174 -128.499 -25.85 + 74 105.866 1204 5 1 61.0027 -128.539 -54.45 + 74 132.203 258 5 0 61.0015 -128.54 -55.85 + 74 121.374 1204 4 1 60.9772 -128.554 -84.45 + 74 121.135 257 4 0 60.9769 -128.555 -85.85 + 74 125.829 1204 3 1 60.972 -128.57 -114.45 + 74 142.421 257 3 0 60.9722 -128.572 -115.85 + 74 130.114 1204 2 1 60.9758 -128.594 -144.45 + 74 130.999 257 2 0 60.9761 -128.595 -145.85 + 74 220.111 1204 1 1 60.9838 -128.627 -174.45 + 74 116.881 257 1 0 60.9845 -128.629 -175.85 + 74 96.1825 1204 0 1 60.9835 -128.674 -204.45 + 74 99.9842 257 0 0 60.9839 -128.675 -205.85 + 74 66.7053 257 7 0 61.0766 -128.55 3.96892 +Number of digits in this event: 12 +Using G4ParticleGun... +Particle energy: 8.17279 LIN +Particle: proton Event: 75 -Number of tracker hits in this event = 24 - 75 126.252 761 11 1 -27.6909 -17.8359 125.55 - 75 135.252 811 11 0 -27.6911 -17.8365 124.15 - 75 146.755 761 10 1 -27.6905 -17.85 95.55 - 75 230.638 811 10 0 -27.6905 -17.8496 94.15 - 75 95.0753 761 9 1 -27.6964 -17.8443 65.55 - 75 118.492 811 9 0 -27.6954 -17.8447 64.15 - 75 192.408 761 8 1 -27.6744 -17.8501 35.55 - 75 143.386 811 8 0 -27.6734 -17.8496 34.15 - 75 148.237 761 7 1 -27.6516 -17.8363 5.55 - 75 140.53 811 7 0 -27.6519 -17.836 4.15 - 75 115.972 761 6 1 -27.6591 -17.8266 -24.45 - 75 106.537 811 6 0 -27.6608 -17.8266 -25.85 - 75 434.06 761 5 1 -27.6946 -17.8277 -54.45 - 75 131.939 811 5 0 -27.6962 -17.8275 -55.85 - 75 376.756 761 4 1 -27.7312 -17.8193 -84.45 - 75 121.067 811 4 0 -27.7309 -17.82 -85.85 - 75 116.727 761 3 1 -27.7281 -17.8365 -114.45 - 75 110.487 811 3 0 -27.7282 -17.8357 -115.85 - 75 99.8023 761 2 1 -27.7308 -17.8208 -144.45 - 75 265.383 811 2 0 -27.7312 -17.8205 -145.85 - 75 108.838 761 1 1 -27.7407 -17.8143 -174.45 - 75 130.896 811 1 0 -27.7396 -17.8144 -175.85 - 75 108.607 761 0 1 -27.7232 -17.8138 -204.45 - 75 121.052 811 0 0 -27.7224 -17.8137 -205.85 -Number of digits in this event = 16 -Using G4ParticleGun ... -8.06453 LIN -proton +Number of tracker hits in this event: 26 + 75 115.493 1140 8 1 48.0536 -131.569 35.55 + 75 154.928 242 8 0 48.0533 -131.569 34.15 + 75 116.338 1139 7 1 48.0479 -131.573 5.55 + 75 84.1607 242 7 0 48.0477 -131.573 4.15 + 75 120.699 1139 6 1 48.0469 -131.576 -24.45 + 75 113.225 242 6 0 48.0465 -131.576 -25.85 + 75 98.1367 1139 5 1 48.0385 -131.577 -54.45 + 75 122.559 242 5 0 48.0373 -131.576 -55.85 + 75 138.633 1139 4 1 48.0105 -131.575 -84.45 + 75 106.63 242 4 0 48.0091 -131.575 -85.85 + 75 126.728 1139 3 1 47.981 -131.587 -114.45 + 75 107.156 242 3 0 47.9799 -131.586 -115.85 + 75 119.213 1139 2 1 47.9598 -131.568 -144.45 + 75 90.5914 242 2 0 47.9585 -131.567 -145.85 + 75 102.322 1139 1 1 47.9335 -131.555 -174.45 + 75 112.515 242 1 0 47.9319 -131.554 -175.85 + 75 107.788 1139 0 1 47.9018 -131.544 -204.45 + 75 100.847 243 0 0 47.9004 -131.544 -205.85 + 75 26.9546 466 3 0 -29.7203 -86.85 -116.232 + 75 68.1512 1016 0 0 -39.9219 23.3476 -205.877 + 75 49.5489 533 8 0 127.7 -73.2764 33.9201 + 75 7990.18 1233 11 0 -73.4467 66.7356 123.839 + 75 74.3867 1232 11 0 -73.5423 66.65 123.864 + 75 68.2229 1231 11 0 -73.5382 66.45 123.859 + 75 278.823 824 12 1 -15.25 77.4162 155.29 + 75 3776.34 535 11 1 -72.9559 67.0465 125.15 +Number of digits in this event: 11 +Using G4ParticleGun... +Particle energy: 4.65455 LIN +Particle: proton Event: 76 -Number of tracker hits in this event = 35 - 76 93.865 507 11 1 -78.6486 -6.3704 125.55 - 76 185.043 868 11 0 -78.6477 -6.37009 124.15 - 76 93.4767 507 10 1 -78.6304 -6.36269 95.55 - 76 194.225 868 10 0 -78.6286 -6.36202 94.15 - 76 337.847 507 9 1 -78.5889 -6.35031 65.55 - 76 110.769 868 9 0 -78.5876 -6.34975 64.15 - 76 236.66 507 8 1 -78.5668 -6.33825 35.55 - 76 111.013 868 8 0 -78.566 -6.33818 34.15 - 76 125.419 507 7 1 -78.5523 -6.33811 5.55 - 76 114.959 868 7 0 -78.5513 -6.33767 4.15 - 76 103.515 507 6 1 -78.5303 -6.32787 -24.45 - 76 180.527 868 6 0 -78.5291 -6.32731 -25.85 - 76 145.42 507 5 1 -78.5009 -6.31764 -54.45 - 76 108.132 868 5 0 -78.4993 -6.31724 -55.85 - 76 96.3701 507 4 1 -78.4669 -6.30869 -84.45 - 76 152.045 868 4 0 -78.4659 -6.30841 -85.85 - 76 105.322 508 3 1 -78.4471 -6.30188 -114.45 - 76 126.615 868 3 0 -78.4459 -6.30221 -115.85 - 76 123.255 508 2 1 -78.4214 -6.30715 -144.45 - 76 116.13 868 2 0 -78.4204 -6.30586 -145.85 - 76 136.128 508 1 1 -78.401 -6.28022 -174.45 - 76 105.837 868 1 0 -78.3994 -6.27905 -175.85 - 76 186.447 508 0 1 -78.3671 -6.25668 -204.45 - 76 218.221 868 0 0 -78.3653 -6.25629 -205.85 - 76 86.3844 508 9 1 -78.3676 -6.2347 65.55 - 76 83.8581 506 9 1 -78.65 -5.51355 65.431 - 76 65.0419 505 9 1 -78.85 -5.32182 65.4799 - 76 101.344 504 9 1 -79.0501 -5.25387 65.4382 - 76 115.738 503 9 1 -79.2501 -5.2522 65.3396 - 76 60.5365 502 9 1 -79.4501 -5.39408 65.2052 - 76 5.92723 501 9 1 -79.6506 -5.4049 65.1548 - 76 80.6375 865 9 0 -83.4261 -6.87374 64.15 - 76 118.316 864 9 0 -83.6212 -7.05 64.0338 - 76 210.388 481 9 1 -83.698 -7.78783 65.1502 - 76 300.679 482 9 1 -83.65 -8.11195 65.4183 -Number of digits in this event = 16 -Using G4ParticleGun ... -7.42275 LIN -proton +Number of tracker hits in this event: 26 + 76 144.871 313 9 1 -117.351 -38.7559 65.55 + 76 137.373 706 9 0 -117.351 -38.7558 64.15 + 76 94.5621 314 8 1 -117.335 -38.7539 35.55 + 76 154.652 706 8 0 -117.332 -38.7534 34.15 + 76 150.99 314 7 1 -117.282 -38.744 5.55 + 76 114.527 706 7 0 -117.28 -38.7428 4.15 + 76 101.981 314 6 1 -117.238 -38.7184 -24.45 + 76 116.235 706 6 0 -117.235 -38.7155 -25.85 + 76 150.496 314 5 1 -117.159 -38.6542 -54.45 + 76 22.4593 706 5 0 -117.155 -38.6503 -55.85 + 76 134.213 707 5 0 -117.155 -38.65 -55.9472 + 76 91.5789 315 4 1 -117.064 -38.5814 -84.45 + 76 101.503 707 4 0 -117.059 -38.5797 -85.85 + 76 210.988 315 3 1 -116.963 -38.5423 -114.45 + 76 116.703 707 3 0 -116.958 -38.5399 -115.85 + 76 106.943 316 2 1 -116.865 -38.49 -144.45 + 76 110.882 707 2 0 -116.861 -38.4868 -145.85 + 76 164.871 316 1 1 -116.766 -38.4259 -174.45 + 76 147.556 708 1 0 -116.762 -38.4212 -175.85 + 76 150.245 317 0 1 -116.664 -38.3232 -204.45 + 76 90.0318 708 0 0 -116.659 -38.32 -205.85 + 76 0.493082 316 0 1 -116.75 -38.3116 -204.85 + 76 17.8233 706 0 0 -118.666 -38.8464 -205.85 + 76 16.4982 705 0 0 -118.68 -38.85 -205.853 + 76 4.4862 301 0 1 -119.78 -38.5998 -204.85 + 76 43.3475 710 0 0 -123.293 -37.8915 -205.85 +Number of digits in this event: 11 +Using G4ParticleGun... +Particle energy: 8.77089 LIN +Particle: proton Event: 77 -Number of tracker hits in this event = 22 - 77 285.882 1409 8 1 102.145 -91.9171 35.55 - 77 108.971 441 8 0 102.145 -91.9176 34.15 - 77 103.498 1409 7 1 102.149 -91.9295 5.55 - 77 225.31 441 7 0 102.149 -91.9304 4.15 - 77 98.8625 1410 6 1 102.166 -91.9486 -24.45 - 77 101.591 441 6 0 102.167 -91.9489 -25.85 - 77 111.063 1410 5 1 102.184 -91.9552 -54.45 - 77 113.877 440 5 0 102.183 -91.9561 -55.85 - 77 127.923 1410 4 1 102.183 -91.9709 -84.45 - 77 133.531 440 4 0 102.183 -91.9713 -85.85 - 77 159.07 1410 3 1 102.171 -91.9751 -114.45 - 77 108.397 440 3 0 102.171 -91.9751 -115.85 - 77 128.388 1410 2 1 102.165 -91.9751 -144.45 - 77 152.341 440 2 0 102.166 -91.9739 -145.85 - 77 96.0011 1410 1 1 102.184 -91.9501 -174.45 - 77 106.467 441 1 0 102.185 -91.9487 -175.85 - 77 123.172 1410 0 1 102.205 -91.9166 -204.45 - 77 110.013 441 0 0 102.207 -91.9156 -205.85 - 77 15.1441 267 10 0 133.315 -126.658 93.75 - 77 209.865 1565 10 1 133.215 -126.927 95.15 - 77 318.27 1408 8 1 101.95 -91.7939 35.5321 - 77 257.701 1407 8 1 101.75 -91.7017 35.4746 -Number of digits in this event = 13 -Using G4ParticleGun ... -7.82086 LIN -proton +Number of tracker hits in this event: 24 + 77 123.317 716 11 1 -36.7642 -15.3657 125.55 + 77 102.687 823 11 0 -36.764 -15.3669 124.15 + 77 135.356 716 10 1 -36.7555 -15.3898 95.55 + 77 158.178 823 10 0 -36.7555 -15.3909 94.15 + 77 183.188 716 9 1 -36.7557 -15.4144 65.55 + 77 118.743 823 9 0 -36.757 -15.4151 64.15 + 77 133.833 716 8 1 -36.7829 -15.4273 35.55 + 77 111.569 823 8 0 -36.7836 -15.4276 34.15 + 77 128.586 716 7 1 -36.7964 -15.4362 5.55 + 77 134.007 823 7 0 -36.7972 -15.4368 4.15 + 77 86.2184 716 6 1 -36.8202 -15.4474 -24.45 + 77 106.432 823 6 0 -36.8216 -15.4485 -25.85 + 77 98.9659 715 5 1 -36.8503 -15.4704 -54.45 + 77 149.717 822 5 0 -36.8519 -15.4716 -55.85 + 77 144.454 715 4 1 -36.885 -15.4935 -84.45 + 77 116.969 822 4 0 -36.8869 -15.4942 -85.85 + 77 132.825 715 3 1 -36.9249 -15.5075 -114.45 + 77 126.621 822 3 0 -36.9261 -15.5073 -115.85 + 77 119.667 715 2 1 -36.9489 -15.5024 -144.45 + 77 93.0337 822 2 0 -36.9503 -15.502 -145.85 + 77 111.291 715 1 1 -36.9734 -15.4952 -174.45 + 77 97.6912 822 1 0 -36.9749 -15.4943 -175.85 + 77 124.142 715 0 1 -37.0065 -15.477 -204.45 + 77 133.813 822 0 0 -37.0074 -15.4768 -205.85 +Number of digits in this event: 14 +Using G4ParticleGun... +Particle energy: 8.39827 LIN +Particle: proton Event: 78 -Number of tracker hits in this event = 24 - 78 105.922 566 11 1 -66.692 -7.78625 125.55 - 78 297.962 861 11 0 -66.6919 -7.78585 124.15 - 78 91.3227 566 10 1 -66.6852 -7.7753 95.55 - 78 152.456 861 10 0 -66.6846 -7.77403 94.15 - 78 130.859 566 9 1 -66.6763 -7.75015 65.55 - 78 176.669 861 9 0 -66.6763 -7.74915 64.15 - 78 177.588 566 8 1 -66.6762 -7.72753 35.55 - 78 181.461 861 8 0 -66.6762 -7.72657 34.15 - 78 102.414 566 7 1 -66.6763 -7.70835 5.55 - 78 116.123 861 7 0 -66.6763 -7.70758 4.15 - 78 110.053 566 6 1 -66.6739 -7.6922 -24.45 - 78 128.49 861 6 0 -66.6721 -7.69387 -25.85 - 78 106.527 567 5 1 -66.6361 -7.72652 -54.45 - 78 192.703 861 5 0 -66.6335 -7.72708 -55.85 - 78 179.668 567 4 1 -66.5787 -7.73774 -84.45 - 78 136.53 861 4 0 -66.5744 -7.73837 -85.85 - 78 236.253 567 3 1 -66.4847 -7.74854 -114.45 - 78 260.395 861 3 0 -66.48 -7.74881 -115.85 - 78 166.091 568 2 1 -66.3833 -7.75817 -144.45 - 78 96.191 861 2 0 -66.3784 -7.76037 -145.85 - 78 328.848 568 1 1 -66.2715 -7.80088 -174.45 - 78 104.524 861 1 0 -66.2662 -7.80552 -175.85 - 78 113.126 569 0 1 -66.1568 -7.8973 -204.45 - 78 105.429 860 0 0 -66.1522 -7.90191 -205.85 -Number of digits in this event = 17 -Using G4ParticleGun ... -4.80147 LIN -proton +Number of tracker hits in this event: 25 + 78 12.3224 171 8 1 -145.754 3.93032 35.2197 + 78 132.318 919 8 0 -145.754 3.93034 34.15 + 78 121.089 171 7 1 -145.759 3.9275 5.55 + 78 117.011 919 7 0 -145.758 3.92815 4.15 + 78 237.911 171 6 1 -145.759 3.94354 -24.45 + 78 118.756 919 6 0 -145.76 3.94449 -25.85 + 78 108.584 171 5 1 -145.779 3.9641 -54.45 + 78 119.754 919 5 0 -145.779 3.96577 -55.85 + 78 154.187 171 4 1 -145.792 3.99944 -84.45 + 78 154.073 919 4 0 -145.793 4.00139 -85.85 + 78 150.254 171 3 1 -145.802 4.04542 -114.45 + 78 156.429 919 3 0 -145.803 4.04685 -115.85 + 78 160.779 171 2 1 -145.812 4.07549 -144.45 + 78 111.713 920 2 0 -145.813 4.07722 -145.85 + 78 110.969 171 1 1 -145.835 4.11086 -174.45 + 78 146.824 920 1 0 -145.836 4.11194 -175.85 + 78 99.5121 171 0 1 -145.863 4.13698 -204.45 + 78 115.293 920 0 0 -145.865 4.13824 -205.85 + 78 57.0357 909 0 0 -165.307 2.03042 -206.25 + 78 230.784 817 0 0 -161.114 -16.5505 -206.25 + 78 60.7855 201 0 1 -139.786 -35.1652 -204.468 + 78 76.406 500 1 1 -79.9189 7.14007 -174.54 + 78 75.9889 1413 2 1 102.879 -79.8836 -144.836 + 78 39.3762 172 4 1 -145.75 3.9746 -84.8103 + 78 202.199 918 4 0 -145.531 3.66844 -85.85 +Number of digits in this event: 14 +Using G4ParticleGun... +Particle energy: 7.42876 LIN +Particle: proton Event: 79 -Number of tracker hits in this event = 21 - 79 121.506 1177 9 1 55.4717 104.543 65.55 - 79 83.9042 1421 9 0 55.472 104.542 64.15 - 79 177.859 1177 8 1 55.4741 104.522 35.55 - 79 155.234 1421 8 0 55.475 104.519 34.15 - 79 176.7 1177 7 1 55.4948 104.449 5.55 - 79 113.103 1421 7 0 55.4957 104.445 4.15 - 79 115.797 1177 6 1 55.5149 104.354 -24.45 - 79 164.487 1421 6 0 55.5169 104.351 -25.85 - 79 111.55 1177 5 1 55.5567 104.295 -54.45 - 79 114.562 1420 5 0 55.5586 104.293 -55.85 - 79 126.207 1177 4 1 55.6065 104.249 -84.45 - 79 104.797 1420 4 0 55.609 104.248 -85.85 - 79 145.213 1178 3 1 55.6598 104.226 -114.45 - 79 133.499 1420 3 0 55.663 104.226 -115.85 - 79 111.202 1178 2 1 55.7289 104.222 -144.45 - 79 106.793 1420 2 0 55.7302 104.221 -145.85 - 79 117.188 1178 1 1 55.759 104.2 -174.45 - 79 213.764 1420 1 0 55.7589 104.199 -175.85 - 79 135.679 1178 0 1 55.7552 104.192 -204.45 - 79 122.038 1420 0 0 55.7558 104.193 -205.85 - 79 37.3997 1334 2 0 66.1438 86.9845 -146.25 -Number of digits in this event = 12 -Using G4ParticleGun ... -9.82133 LIN -proton +Number of tracker hits in this event: 26 + 79 118.321 407 10 1 -98.679 -15.1649 95.55 + 79 98.0885 824 10 0 -98.6799 -15.1657 94.15 + 79 196.061 407 9 1 -98.7009 -15.1814 65.55 + 79 219.939 824 9 0 -98.702 -15.1824 64.15 + 79 119.068 407 8 1 -98.7251 -15.2027 35.55 + 79 112.006 824 8 0 -98.7257 -15.2037 34.15 + 79 119.682 407 7 1 -98.7356 -15.226 5.55 + 79 257.372 824 7 0 -98.7366 -15.2268 4.15 + 79 118.013 406 6 1 -98.758 -15.2457 -24.45 + 79 165.337 824 6 0 -98.7585 -15.2479 -25.85 + 79 151.5 406 5 1 -98.766 -15.2929 -54.45 + 79 89.5899 823 5 0 -98.7656 -15.2953 -55.85 + 79 228.949 406 4 1 -98.7561 -15.3433 -84.45 + 79 142.423 823 4 0 -98.7555 -15.3461 -85.85 + 79 129.679 407 3 1 -98.7396 -15.4033 -114.45 + 79 111.254 823 3 0 -98.7386 -15.4068 -115.85 + 79 106.313 407 2 1 -98.7176 -15.4734 -144.45 + 79 107.021 822 2 0 -98.7165 -15.477 -145.85 + 79 122.182 407 1 1 -98.6984 -15.5507 -174.45 + 79 124.705 822 1 0 -98.6976 -15.5548 -175.85 + 79 217.52 407 0 1 -98.6861 -15.6361 -204.45 + 79 145.961 822 0 0 -98.6859 -15.64 -205.85 + 79 75.5225 408 0 1 -98.55 -15.8183 -204.684 + 79 63.1301 409 0 1 -98.35 -15.9356 -204.789 + 79 426.114 410 0 1 -98.15 -16.0185 -204.739 + 79 95.7123 411 0 1 -97.9499 -16.2814 -204.687 +Number of digits in this event: 14 +Using G4ParticleGun... +Particle energy: 5.17682 LIN +Particle: proton Event: 80 -Number of tracker hits in this event = 24 - 80 109.037 537 11 1 -72.471 -2.84047 125.55 - 80 122.909 886 11 0 -72.4707 -2.84047 124.15 - 80 116.639 537 10 1 -72.4643 -2.84162 95.55 - 80 149.031 886 10 0 -72.4643 -2.84219 94.15 - 80 235.291 537 9 1 -72.4606 -2.85307 65.55 - 80 118.373 885 9 0 -72.4598 -2.85346 64.15 - 80 99.6061 538 8 1 -72.4468 -2.85852 35.55 - 80 99.1479 885 8 0 -72.4453 -2.85821 34.15 - 80 123.482 538 7 1 -72.4144 -2.8529 5.55 - 80 110.266 885 7 0 -72.4122 -2.85223 4.15 - 80 125.944 538 6 1 -72.3595 -2.83473 -24.45 - 80 105.517 886 6 0 -72.356 -2.83426 -25.85 - 80 157.399 538 5 1 -72.283 -2.82647 -54.45 - 80 121.214 886 5 0 -72.2804 -2.82529 -55.85 - 80 98.2649 539 4 1 -72.2264 -2.80149 -84.45 - 80 109.482 886 4 0 -72.2233 -2.7999 -85.85 - 80 115.586 539 3 1 -72.1626 -2.76955 -114.45 - 80 115.823 886 3 0 -72.1592 -2.76777 -115.85 - 80 125.436 539 2 1 -72.0883 -2.73167 -144.45 - 80 112.883 886 2 0 -72.0847 -2.72935 -145.85 - 80 112.798 540 1 1 -72.0143 -2.68096 -174.45 - 80 115.942 886 1 0 -72.0106 -2.67883 -175.85 - 80 113.529 540 0 1 -71.9376 -2.6372 -204.45 - 80 129.179 887 0 0 -71.9335 -2.63453 -205.85 -Number of digits in this event = 10 -Using G4ParticleGun ... -1.00635 LIN -proton +Number of tracker hits in this event: 20 + 80 121.117 1508 9 1 121.887 23.0341 65.55 + 80 168.864 1014 9 0 121.887 23.0342 64.15 + 80 93.935 1508 8 1 121.899 23.0345 35.55 + 80 95.3419 1014 8 0 121.899 23.0351 34.15 + 80 194.31 1508 7 1 121.903 23.0495 5.55 + 80 107.394 1014 7 0 121.903 23.0494 4.15 + 80 111.98 1508 6 1 121.91 23.0468 -24.45 + 80 104.061 1014 6 0 121.912 23.0466 -25.85 + 80 122.621 1509 5 1 121.954 23.0476 -54.45 + 80 103.918 1014 5 0 121.957 23.0483 -55.85 + 80 100.101 1509 4 1 122.018 23.0589 -84.45 + 80 135.64 1015 4 0 122.021 23.059 -85.85 + 80 108.845 1509 3 1 122.077 23.0609 -114.45 + 80 116.656 1015 3 0 122.08 23.0607 -115.85 + 80 128.433 1509 2 1 122.14 23.0614 -144.45 + 80 148.804 1015 2 0 122.143 23.0604 -145.85 + 80 132.376 1510 1 1 122.197 23.0392 -174.45 + 80 129.965 1014 1 0 122.2 23.0382 -175.85 + 80 96.7309 1510 0 1 122.252 23.0168 -204.45 + 80 120.683 1014 0 0 122.254 23.0156 -205.85 +Number of digits in this event: 11 +Using G4ParticleGun... +Particle energy: 9.09639 LIN +Particle: proton Event: 81 -Number of tracker hits in this event = 20 - 81 148.623 307 8 1 -118.602 77.038 35.55 - 81 137.059 1284 8 0 -118.597 77.0414 34.15 - 81 189.188 308 7 1 -118.479 77.0974 5.55 - 81 143.201 1285 7 0 -118.477 77.0993 4.15 - 81 144.968 308 6 1 -118.468 77.1334 -24.45 - 81 248.443 1285 6 0 -118.471 77.1318 -25.85 - 81 129.306 308 5 1 -118.542 77.1011 -54.45 - 81 141.946 1285 5 0 -118.546 77.0947 -55.85 - 81 218.3 307 4 1 -118.634 76.9731 -84.45 - 81 116.563 1284 4 0 -118.639 76.9677 -85.85 - 81 146.24 307 3 1 -118.743 76.8631 -114.45 - 81 122.284 1284 3 0 -118.745 76.8635 -115.85 - 81 116.825 306 2 1 -118.799 76.8601 -144.45 - 81 148.85 1284 2 0 -118.797 76.8615 -145.85 - 81 187.38 306 1 1 -118.799 76.8897 -174.45 - 81 126.639 1284 1 0 -118.794 76.8907 -175.85 - 81 118.523 307 0 1 -118.681 76.9026 -204.45 - 81 157.164 1284 0 0 -118.676 76.8982 -205.85 - 81 46.5492 1283 2 0 -118.788 76.85 -146.208 - 81 88.6859 1180 2 0 -133.694 56.1303 -146.25 -Number of digits in this event = 16 -Using G4ParticleGun ... -8.90701 LIN -proton +Number of tracker hits in this event: 226 + 81 124.21 1222 9 1 64.6441 104.432 65.55 + 81 164.154 1421 9 0 64.6443 104.432 64.15 + 81 119.914 1222 8 1 64.6471 104.429 35.55 + 81 101.404 1421 8 0 64.6472 104.429 34.15 + 81 219.783 1222 7 1 64.6491 104.429 5.55 + 81 107.653 1421 7 0 64.6495 104.43 4.15 + 81 107.266 1223 6 1 64.6585 104.444 -24.45 + 81 138.612 1421 6 0 64.6585 104.445 -25.85 + 81 135.281 1223 5 1 64.6595 104.457 -54.45 + 81 106.449 1421 5 0 64.6593 104.457 -55.85 + 81 109.448 1223 4 1 64.6571 104.456 -84.45 + 81 113.432 1421 4 0 64.6566 104.456 -85.85 + 81 202.513 1222 3 1 64.6476 104.453 -114.45 + 81 145.32 1421 3 0 64.6465 104.452 -115.85 + 81 133.236 1222 2 1 64.6247 104.431 -144.45 + 81 121.524 1421 2 0 64.6239 104.43 -145.85 + 81 28.9363 1274 0 0 117.958 75.05 -206.067 + 81 1607.79 1222 1 1 64.5636 104.388 -174.45 + 81 527.602 1221 1 1 64.45 104.658 -174.824 + 81 13.9378 1427 1 0 64.1138 105.713 -175.85 + 81 76.4268 1428 1 0 64.1075 105.75 -175.884 + 81 71.4018 1429 1 0 64.0351 105.95 -176.072 + 81 9.02564 1430 1 0 63.9479 106.15 -176.234 + 81 277.368 1688 1 0 35.6857 157.891 -176.25 + 81 2.12549 1071 1 1 34.2594 158.089 -174.849 + 81 96.3288 1070 1 1 34.25 158.091 -174.84 + 81 80.9514 1069 1 1 34.05 158.126 -174.726 + 81 85.0028 1068 1 1 33.85 158.186 -174.594 + 81 190.617 1067 1 1 33.65 158.317 -174.508 + 81 161.543 1066 1 1 33.45 158.456 -174.507 + 81 514.002 1065 1 1 33.25 158.313 -174.492 + 81 4264.35 1223 1 1 64.65 104.49 -174.557 + 81 3534.67 1423 1 0 64.9467 104.905 -175.85 + 81 50.5776 864 8 0 -159.345 -7.05 33.8948 + 81 713.107 1463 2 0 92.1155 112.916 -146.25 + 81 1962.36 1464 2 0 92.2247 112.95 -146.139 + 81 1171.18 1367 2 1 93.5854 113.331 -144.85 + 81 1364.43 1368 2 1 93.75 113.376 -144.695 + 81 524.132 1369 2 1 93.95 113.438 -144.505 + 81 1052.24 1218 1 1 63.8378 103.77 -174.45 + 81 875.758 1217 1 1 63.65 103.641 -174.513 + 81 1135.35 1216 1 1 63.45 103.507 -174.58 + 81 1036.97 1215 1 1 63.25 103.377 -174.651 + 81 961.658 1214 1 1 63.05 103.247 -174.725 + 81 553.943 1213 1 1 62.85 103.118 -174.802 + 81 559.989 1406 1 0 60.2563 101.447 -175.85 + 81 1385 1405 1 0 60.1056 101.35 -175.911 + 81 1595.23 1404 1 0 59.8031 101.15 -176.034 + 81 1508.53 1403 1 0 59.5017 100.95 -176.155 + 81 2961.59 1361 2 0 20.2722 92.5043 -146.25 + 81 520.846 1220 1 1 64.25 104.484 -174.636 + 81 979.855 1422 1 0 63.1128 104.703 -175.85 + 81 313.173 1082 0 1 36.5606 109.64 -204.45 + 81 518.899 1081 0 1 36.45 109.667 -204.57 + 81 187.935 1080 0 1 36.25 109.717 -204.789 + 81 1070.61 1449 0 0 35.2612 109.962 -205.85 + 81 28.5404 1672 1 0 -27.0628 154.728 -176.25 + 81 115.318 1673 1 0 -27.0798 154.75 -176.186 + 81 56.4339 1674 1 0 -27.2396 154.95 -176.142 + 81 80.7308 1588 1 0 -32.745 137.923 -176.25 + 81 674.312 1515 2 0 49.2413 123.171 -146.25 + 81 375.399 1516 2 0 49.0949 123.35 -145.983 + 81 8.75108 1142 2 1 48.4532 124.112 -144.85 + 81 1102.07 1141 2 1 48.45 124.116 -144.844 + 81 102.356 1140 2 1 48.25 124.353 -144.491 + 81 31.2331 1606 3 0 30.673 141.544 -116.25 + 81 1066.49 1607 3 0 30.6667 141.55 -116.24 + 81 148.714 1608 3 0 30.4609 141.75 -115.91 + 81 1022.34 1048 3 1 29.8214 142.394 -114.85 + 81 347.754 1047 3 1 29.65 142.566 -114.566 + 81 16.1339 1696 4 0 11.9255 159.547 -86.25 + 81 1195.79 1697 4 0 11.9224 159.55 -86.2452 + 81 226.294 1698 4 0 11.714 159.75 -85.9118 + 81 122.691 955 4 1 11.0737 160.378 -84.85 + 81 1263.69 954 4 1 11.05 160.402 -84.8107 + 81 100.444 953 4 1 10.85 160.598 -84.4818 + 81 830.922 1787 5 0 -13.228 177.628 -56.25 + 81 894.776 1788 5 0 -13.4011 177.75 -56.0475 + 81 1078.39 827 5 1 -14.4585 178.517 -54.85 + 81 804.406 826 5 1 -14.65 178.657 -54.6332 + 81 96.2299 1638 5 0 -107.7 147.922 -55.9521 + 81 120.251 1208 0 1 61.7198 109.025 -204.45 + 81 119.783 1445 0 0 61.5912 109.238 -205.85 + 81 25.9148 1477 0 0 75.9146 115.702 -206.25 + 81 275.177 1478 0 0 75.9676 115.75 -206.22 + 81 82.0193 1274 0 1 75.0156 90.6464 -204.45 + 81 232.248 1275 0 1 75.05 90.5977 -204.543 + 81 175.857 1349 0 0 75.5363 89.9103 -205.85 + 81 116.581 1348 0 0 75.579 89.85 -205.965 + 81 216.244 1331 2 0 61.4678 86.3141 -146.25 + 81 694.759 1330 2 0 61.4567 86.25 -146.151 + 81 942.497 1206 2 1 61.3144 85.3902 -144.85 + 81 77.4694 1230 3 0 59.1878 66.0749 -116.25 + 81 775.013 1229 3 0 59.185 66.05 -116.213 + 81 132.174 1228 3 0 59.1635 65.85 -115.916 + 81 1073.15 1195 3 1 59.0834 65.122 -114.85 + 81 748.461 1136 4 0 56.6039 47.4396 -86.25 + 81 243.455 1135 4 0 56.5771 47.25 -85.9425 + 81 1099.7 1182 4 1 56.4931 46.574 -84.85 + 81 1163.88 1044 5 0 42.9066 29.0433 -56.25 + 81 231.029 1043 5 0 42.7543 28.85 -55.9345 + 81 1328.26 1110 5 1 42.2291 28.1738 -54.85 + 81 86.7307 1109 5 1 42.05 27.9434 -54.4801 + 81 805.644 939 6 0 26.6105 8.02382 -26.25 + 81 716.138 938 6 0 26.4758 7.85 -26.004 + 81 13.0856 1029 6 1 25.8524 7.04339 -24.85 + 81 1561.53 1028 6 1 25.85 7.04025 -24.8455 + 81 95.7316 1027 6 1 25.65 6.78106 -24.4754 + 81 419.495 864 7 0 9.25389 -7.20504 3.75 + 81 1645.87 863 7 0 9.20101 -7.25 3.84093 + 81 1034.28 941 7 1 8.37468 -7.95161 5.15 + 81 1150.03 940 7 1 8.25 -8.05801 5.34436 + 81 508.24 818 8 0 -2.86067 -16.4348 33.75 + 81 3496.21 817 8 0 -2.88083 -16.45 33.8019 + 81 2501.47 883 8 1 -3.38381 -16.7579 35.15 + 81 3913.76 882 8 1 -3.45 -16.7969 35.318 + 81 35.5891 1224 1 1 64.85 104.271 -174.693 + 81 12.3971 1419 1 0 65.4506 103.963 -175.85 + 81 103.956 1418 1 0 65.4769 103.95 -175.901 + 81 49.7202 1300 0 1 80.1896 96.3605 -204.45 + 81 100.372 1301 0 1 80.25 96.3302 -204.569 + 81 62.1181 1379 0 0 80.9033 96.0045 -205.85 + 81 71.6699 1378 0 0 81.0124 95.95 -206.064 + 81 420.122 1690 2 0 91.6594 158.268 -146.25 + 81 901.302 1691 2 0 91.7005 158.35 -146.208 + 81 932.808 1692 2 0 91.7977 158.55 -146.1 + 81 911.097 1693 2 0 91.8912 158.75 -145.996 + 81 355.611 1694 2 0 91.985 158.95 -145.895 + 81 448.229 1363 2 1 92.9042 160.952 -144.85 + 81 2122.71 1364 2 1 92.95 161.052 -144.798 + 81 1116.92 1365 2 1 93.15 161.48 -144.563 + 81 84.4087 1416 1 0 64.1682 103.48 -175.85 + 81 54.0221 1415 1 0 64.1051 103.35 -176.081 + 81 122.798 1180 0 1 56.2132 87.1805 -204.45 + 81 74.4399 1331 0 0 55.8317 86.3491 -205.85 + 81 83.7538 1330 0 0 55.7861 86.25 -206.017 + 81 193.902 1219 1 1 64.0022 104.405 -174.45 + 81 814.292 1421 1 0 60.1513 104.429 -175.85 + 81 23.8905 808 0 1 -18.4028 104.891 -204.45 + 81 136.01 807 0 1 -18.45 104.891 -204.467 + 81 208.798 806 0 1 -18.65 104.893 -204.538 + 81 117.349 805 0 1 -18.85 104.895 -204.609 + 81 105.459 804 0 1 -19.05 104.896 -204.68 + 81 131.329 803 0 1 -19.25 104.898 -204.751 + 81 37.0846 802 0 1 -19.45 104.899 -204.823 + 81 803.171 1423 0 0 -22.3241 104.919 -205.85 + 81 19.2604 1424 0 0 -23.2952 104.95 -206.214 + 81 142.905 1399 0 0 -45.7364 100.037 -206.25 + 81 102.831 1242 0 1 68.4709 104.863 -204.45 + 81 246.323 1230 1 1 66.1982 109.451 -174.45 + 81 424.624 1231 1 1 66.25 109.627 -174.456 + 81 394.035 1232 1 1 66.45 110.31 -174.481 + 81 516.203 1233 1 1 66.65 110.994 -174.509 + 81 518.129 1234 1 1 66.85 111.677 -174.536 + 81 409.703 1235 1 1 67.05 112.366 -174.565 + 81 368.081 1236 1 1 67.25 113.063 -174.596 + 81 612.691 1237 1 1 67.45 113.754 -174.626 + 81 427.634 1238 1 1 67.65 114.445 -174.657 + 81 375.719 1239 1 1 67.85 115.135 -174.688 + 81 360.241 1240 1 1 68.05 115.831 -174.719 + 81 376.678 1241 1 1 68.25 116.533 -174.749 + 81 365.335 1242 1 1 68.45 117.234 -174.779 + 81 408.518 1243 1 1 68.65 117.936 -174.809 + 81 164.896 1244 1 1 68.85 118.644 -174.839 + 81 40.3174 1614 1 0 75.7285 143.059 -175.85 + 81 119.603 1615 1 0 75.7541 143.15 -175.854 + 81 128.486 1616 1 0 75.8104 143.35 -175.862 + 81 78.2659 1617 1 0 75.8667 143.55 -175.871 + 81 92.9797 1618 1 0 75.9231 143.75 -175.879 + 81 110.736 1619 1 0 75.9795 143.95 -175.887 + 81 219.351 1620 1 0 76.0361 144.15 -175.895 + 81 116.2 1621 1 0 76.0927 144.35 -175.903 + 81 83.6683 1622 1 0 76.1492 144.55 -175.911 + 81 109.427 1623 1 0 76.2057 144.75 -175.919 + 81 123.602 1624 1 0 76.2619 144.95 -175.927 + 81 96.1791 1625 1 0 76.3183 145.15 -175.935 + 81 103.301 1626 1 0 76.3745 145.35 -175.944 + 81 104.373 1627 1 0 76.4306 145.55 -175.952 + 81 135.554 1628 1 0 76.4868 145.75 -175.961 + 81 98.8091 1629 1 0 76.5429 145.95 -175.969 + 81 118.41 1630 1 0 76.599 146.15 -175.978 + 81 177.907 1631 1 0 76.6548 146.35 -175.987 + 81 97.1608 1632 1 0 76.7105 146.55 -175.995 + 81 93.4241 1633 1 0 76.7662 146.75 -176.004 + 81 133.699 1634 1 0 76.822 146.95 -176.013 + 81 88.3812 1635 1 0 76.8776 147.15 -176.022 + 81 160.852 1636 1 0 76.9331 147.35 -176.03 + 81 144.755 1637 1 0 76.9879 147.55 -176.036 + 81 107.012 1638 1 0 77.0429 147.75 -176.043 + 81 90.8191 1639 1 0 77.0984 147.95 -176.05 + 81 91.9442 1640 1 0 77.1536 148.15 -176.056 + 81 179.714 1641 1 0 77.2088 148.35 -176.062 + 81 162.209 1642 1 0 77.2642 148.55 -176.068 + 81 84.8556 1643 1 0 77.3196 148.75 -176.074 + 81 117.706 1644 1 0 77.3748 148.95 -176.081 + 81 143.746 1645 1 0 77.4301 149.15 -176.086 + 81 153.376 1646 1 0 77.4857 149.35 -176.092 + 81 108.354 1647 1 0 77.5408 149.55 -176.099 + 81 96.945 1648 1 0 77.5964 149.75 -176.106 + 81 116.188 1649 1 0 77.652 149.95 -176.113 + 81 171.166 1650 1 0 77.7075 150.15 -176.119 + 81 349.977 1651 1 0 77.7631 150.35 -176.126 + 81 104.965 1652 1 0 77.8188 150.55 -176.133 + 81 114.736 1653 1 0 77.8746 150.75 -176.139 + 81 105.453 1654 1 0 77.93 150.95 -176.146 + 81 104.006 1655 1 0 77.9855 151.15 -176.153 + 81 92.0415 1656 1 0 78.0411 151.35 -176.16 + 81 96.0946 1657 1 0 78.0968 151.55 -176.167 + 81 143.798 1658 1 0 78.1527 151.75 -176.174 + 81 93.9154 1659 1 0 78.2087 151.95 -176.181 + 81 126.292 1660 1 0 78.2642 152.15 -176.189 + 81 156.353 1661 1 0 78.3197 152.35 -176.196 + 81 107.729 1662 1 0 78.375 152.55 -176.204 + 81 86.359 1663 1 0 78.4305 152.75 -176.212 + 81 121.181 1664 1 0 78.4861 152.95 -176.22 + 81 94.0302 1665 1 0 78.5417 153.15 -176.228 + 81 109.806 1666 1 0 78.5974 153.35 -176.237 + 81 56.108 1667 1 0 78.653 153.55 -176.245 + 81 139.806 1496 1 0 69.4802 119.353 -175.85 + 81 84.5216 1229 1 1 66.05 109.047 -174.623 + 81 159.878 1461 6 0 52.1563 112.426 -26.2499 + 81 43.1721 1150 6 1 50.1205 113.275 -24.85 + 81 56.6215 1149 6 1 50.0499 113.316 -24.8245 + 81 79.1263 1472 6 0 49.3253 114.629 -25.85 + 81 190.731 1473 6 0 49.1999 114.75 -25.9085 + 81 162.574 1474 6 0 48.9439 114.95 -26.0364 +Number of digits in this event: 138 +Using G4ParticleGun... +Particle energy: 3.9255 LIN +Particle: proton Event: 82 -Number of tracker hits in this event = 19 - 82 116.78 1226 10 1 65.3551 90.5732 95.55 - 82 116.514 1352 10 0 65.3548 90.5727 94.15 - 82 132.034 1226 9 1 65.3466 90.5611 65.55 - 82 161.516 1352 9 0 65.3471 90.5585 64.15 - 82 105.975 1226 8 1 65.3608 90.5092 35.55 - 82 139.242 1351 8 0 65.3618 90.5067 34.15 - 82 101.729 1226 7 1 65.3842 90.4545 5.55 - 82 128.294 1351 7 0 65.3852 90.4511 4.15 - 82 121.87 1226 6 1 65.4055 90.3829 -24.45 - 82 119.88 1351 6 0 65.4067 90.379 -25.85 - 82 90.1331 1226 5 1 65.4376 90.297 -54.45 - 82 115.084 1350 5 0 65.4391 90.2936 -55.85 - 82 154.974 1227 4 1 65.474 90.2242 -84.45 - 82 274.176 1350 4 0 65.477 90.2206 -85.85 - 82 110.987 1227 1 1 65.6169 89.9701 -174.45 - 82 105.281 1349 1 0 65.6179 89.9652 -175.85 - 82 108.204 1227 0 1 65.6366 89.8672 -204.45 - 82 103.474 1349 0 0 65.6376 89.8636 -205.85 - 82 148.216 1229 4 1 65.9119 90.4101 -84.85 -Number of digits in this event = 9 -Using G4ParticleGun ... -4.10168 LIN -proton +Number of tracker hits in this event: 34 + 82 106.938 1480 10 0 -4.13047 116.2 94.15 + 82 105.001 879 9 1 -4.12805 116.193 65.55 + 82 312.263 1480 9 0 -4.12626 116.193 64.15 + 82 131.473 879 8 1 -4.08595 116.193 35.55 + 82 101.998 1480 8 0 -4.08462 116.195 34.15 + 82 114.864 879 7 1 -4.05333 116.243 5.55 + 82 101.523 1480 7 0 -4.05132 116.245 4.15 + 82 133.932 880 6 1 -4.00891 116.294 -24.45 + 82 179.095 1480 6 0 -4.00648 116.296 -25.85 + 82 244.257 880 5 1 -3.95357 116.342 -54.45 + 82 106.168 1480 5 0 -3.95216 116.344 -55.85 + 82 120.657 880 4 1 -3.91722 116.393 -84.45 + 82 117.665 1481 4 0 -3.91461 116.393 -85.85 + 82 101.549 880 3 1 -3.85756 116.389 -114.45 + 82 95.3437 1481 3 0 -3.85611 116.389 -115.85 + 82 120.16 881 2 1 -3.82282 116.399 -144.45 + 82 122.437 1481 2 0 -3.82351 116.399 -145.85 + 82 198.498 881 1 1 -3.83809 116.411 -174.45 + 82 105.074 1481 1 0 -3.83887 116.412 -175.85 + 82 120.869 881 0 1 -3.8486 116.44 -204.45 + 82 118.436 1481 0 0 -3.84978 116.439 -205.85 + 82 36.7331 388 3 0 151.386 -102.359 -116.177 + 82 132.621 1671 7 0 145.284 154.521 3.75 + 82 181.991 1625 7 1 145.222 154.354 5.15 + 82 189.559 1624 7 1 145.15 154.376 5.43139 + 82 149.11 1626 7 1 145.35 155.089 5.36516 + 82 67.7498 1627 7 1 145.55 155.57 5.30371 + 82 69.1331 1628 7 1 145.75 155.621 5.36153 + 82 89.1679 1629 7 1 145.95 155.515 5.38831 + 82 421.754 1630 7 1 146.15 155.688 5.33832 + 82 151.036 1573 0 0 80.7578 134.75 -206.23 + 82 129.958 1574 0 0 80.7907 134.95 -206.015 + 82 91.5474 1470 1 0 -65.2233 114.35 -176.041 + 82 302.323 1469 1 0 -65.4303 114.15 -175.927 +Number of digits in this event: 20 +Using G4ParticleGun... +Particle energy: 3.47632 LIN +Particle: proton Event: 83 -Number of tracker hits in this event = 22 - 83 134.205 1112 10 1 42.5808 95.9556 95.55 - 83 96.0526 1379 10 0 42.5804 95.9557 94.15 - 83 114.741 1112 9 1 42.5695 95.9533 65.55 - 83 158.501 1379 9 0 42.5689 95.9542 64.15 - 83 150.627 1112 8 1 42.5587 95.9681 35.55 - 83 94.3804 1379 8 0 42.559 95.9681 34.15 - 83 159.922 1112 7 1 42.569 95.9696 5.55 - 83 170.201 1379 7 0 42.5711 95.9696 4.15 - 83 134.167 1112 6 1 42.6162 95.9693 -24.45 - 83 129.568 1379 6 0 42.6193 95.9683 -25.85 - 83 266.539 1113 5 1 42.6856 95.9398 -54.45 - 83 101.806 1378 5 0 42.6875 95.939 -55.85 - 83 106.434 1113 4 1 42.7279 95.916 -84.45 - 83 101.73 1378 4 0 42.7317 95.9135 -85.85 - 83 100.004 1113 3 1 42.8087 95.8625 -114.45 - 83 174.102 1378 3 0 42.8124 95.8617 -115.85 - 83 95.174 1114 2 1 42.8827 95.8409 -144.45 - 83 119.177 1378 2 0 42.8852 95.8414 -145.85 - 83 108.968 1114 1 1 42.9371 95.8467 -174.45 - 83 135.036 1378 1 0 42.939 95.8476 -175.85 - 83 105.571 1114 0 1 42.9729 95.862 -204.45 - 83 225.69 1378 0 0 42.9752 95.8616 -205.85 -Number of digits in this event = 12 -Using G4ParticleGun ... -3.51104 LIN -proton +Number of tracker hits in this event: 22 + 83 127.484 1234 9 1 66.977 -105.517 65.55 + 83 102.952 373 9 0 66.9779 -105.516 64.15 + 83 115.954 1234 8 1 66.9964 -105.498 35.55 + 83 101.463 373 8 0 66.9976 -105.497 34.15 + 83 94.3635 1234 7 1 67.0207 -105.469 5.55 + 83 114.658 373 7 0 67.0238 -105.467 4.15 + 83 100.464 1235 6 1 67.088 -105.434 -24.45 + 83 242.509 373 6 0 67.091 -105.431 -25.85 + 83 160.656 1235 5 1 67.1487 -105.361 -54.45 + 83 117.652 373 5 0 67.1518 -105.357 -55.85 + 83 114.461 1235 4 1 67.2122 -105.268 -84.45 + 83 118.793 374 4 0 67.2132 -105.263 -85.85 + 83 105.983 1235 3 1 67.238 -105.174 -114.45 + 83 102.603 374 3 0 67.241 -105.17 -115.85 + 83 135.944 1236 2 1 67.3024 -105.082 -144.45 + 83 225.225 375 2 0 67.3045 -105.079 -145.85 + 83 7079.29 1236 1 1 67.3461 -105.012 -174.45 + 83 87.3507 373 1 0 67.4448 -105.45 -175.85 + 83 43.2283 372 1 0 67.4673 -105.55 -176.105 + 83 139.495 1249 0 1 69.9663 -116.667 -204.45 + 83 90.1888 314 0 0 70.0871 -117.213 -205.85 + 83 12.5439 313 0 0 70.1175 -117.35 -206.202 +Number of digits in this event: 10 +Using G4ParticleGun... +Particle energy: 3.86312 LIN +Particle: proton Event: 84 -Number of tracker hits in this event = 16 - 84 139.404 392 7 1 -101.673 107.396 5.55 - 84 134.233 1436 7 0 -101.675 107.397 4.15 - 84 193.355 392 6 1 -101.727 107.425 -24.45 - 84 123.825 1436 6 0 -101.732 107.429 -25.85 - 84 103.324 391 5 1 -101.817 107.496 -54.45 - 84 99.0371 1436 5 0 -101.821 107.5 -55.85 - 84 115.385 391 4 1 -101.897 107.579 -84.45 - 84 121.833 1437 4 0 -101.902 107.582 -85.85 - 84 154.77 390 3 1 -102.006 107.637 -114.45 - 84 91.0946 1437 3 0 -102.012 107.64 -115.85 - 84 135.022 390 2 1 -102.12 107.697 -144.45 - 84 106.629 1437 2 0 -102.125 107.696 -145.85 - 84 104.732 389 1 1 -102.222 107.666 -174.45 - 84 112.311 1437 1 0 -102.226 107.665 -175.85 - 84 156.039 389 0 1 -102.308 107.632 -204.45 - 84 113.104 1437 0 0 -102.311 107.63 -205.85 -Number of digits in this event = 9 -Using G4ParticleGun ... -2.39412 LIN -proton +Number of tracker hits in this event: 34 + 84 111.483 455 9 1 -88.9059 -98.8024 65.55 + 84 82.2539 406 9 0 -88.9058 -98.8019 64.15 + 84 112.762 455 8 1 -88.899 -98.7829 35.55 + 84 94.9489 406 8 0 -88.9 -98.7823 34.15 + 84 236.398 455 7 1 -88.9134 -98.7624 5.55 + 84 127.614 406 7 0 -88.9136 -98.7618 4.15 + 84 117.195 455 6 1 -88.9113 -98.7423 -24.45 + 84 131.726 407 6 0 -88.9106 -98.7396 -25.85 + 84 144.707 455 5 1 -88.8987 -98.6835 -54.45 + 84 124.431 407 5 0 -88.8977 -98.6808 -55.85 + 84 123.569 455 4 1 -88.873 -98.634 -84.45 + 84 142.224 407 4 0 -88.8738 -98.6319 -85.85 + 84 119.795 455 3 1 -88.8979 -98.5881 -114.45 + 84 107.307 407 3 0 -88.8981 -98.5857 -115.85 + 84 183.853 455 2 1 -88.9073 -98.5338 -144.45 + 84 314.676 408 2 0 -88.9077 -98.531 -145.85 + 84 159.716 455 1 1 -88.9102 -98.4757 -174.45 + 84 91.9516 408 1 0 -88.9106 -98.4736 -175.85 + 84 113.554 455 0 1 -88.922 -98.4283 -204.45 + 84 111.5 408 0 0 -88.9232 -98.4253 -205.85 + 84 62.3994 476 7 1 -84.727 -159.076 5.3559 + 84 3.25214 407 2 0 -88.8911 -98.55 -146.23 + 84 31.4111 409 4 0 -88.4021 -98.1882 -85.8501 + 84 95.6875 410 4 0 -88.3575 -98.15 -85.9461 + 84 136.98 582 4 0 -26.4982 -63.6269 -86.2499 + 84 139.432 583 4 0 -26.1791 -63.45 -86.0338 + 84 34.3528 775 4 1 -24.9469 -63.1735 -84.85 + 84 74.6599 776 4 1 -24.8498 -63.1581 -84.7661 + 84 145.928 777 4 1 -24.65 -63.0763 -84.5958 + 84 124.347 778 4 1 -24.407 -62.9045 -84.45 + 84 56.943 593 4 0 -24.387 -61.3986 -85.8502 + 84 131.201 594 4 0 -24.3648 -61.2498 -85.9453 + 84 146.431 595 4 0 -24.4964 -61.05 -86.1415 + 84 145.886 497 4 0 -21.6989 -80.567 -86.2497 +Number of digits in this event: 19 +Using G4ParticleGun... +Particle energy: 8.08778 LIN +Particle: proton Event: 85 -Number of tracker hits in this event = 28 - 85 102.004 1261 11 1 72.2517 24.3947 125.55 - 85 115.905 1021 11 0 72.2533 24.3931 124.15 - 85 125.502 1261 10 1 72.2768 24.37 95.55 - 85 149.019 1021 10 0 72.2775 24.3693 94.15 - 85 107.107 1261 9 1 72.2878 24.3536 65.55 - 85 171.318 1021 9 0 72.2872 24.3555 64.15 - 85 97.191 1261 8 1 72.2952 24.4014 35.55 - 85 110.039 1021 8 0 72.2962 24.4061 34.15 - 85 113.187 1261 7 1 72.3232 24.5082 5.55 - 85 133.217 1022 7 0 72.3263 24.5137 4.15 - 85 124.797 1261 6 1 72.3892 24.6283 -24.45 - 85 115.939 1022 6 0 72.3917 24.6347 -25.85 - 85 114.148 1262 5 1 72.4517 24.7686 -54.45 - 85 379.933 1023 5 0 72.4566 24.7771 -55.85 - 85 158.542 1262 4 1 72.5516 24.9517 -84.45 - 85 121.143 1024 4 0 72.5546 24.9587 -85.85 - 85 127.11 1262 3 1 72.6146 25.1049 -114.45 - 85 251.885 1025 3 0 72.62 25.1126 -115.85 - 85 112.855 1263 2 1 72.7226 25.276 -144.45 - 85 121.168 1026 2 0 72.7287 25.2839 -145.85 - 85 6.979 1263 1 1 72.8498 25.449 -174.45 - 85 84.425 1264 1 1 72.85 25.4492 -174.487 - 85 127.976 1027 1 0 72.8566 25.4563 -175.85 - 85 95.0446 1264 0 1 72.9863 25.6023 -204.45 - 85 182.675 1027 0 0 72.9927 25.6079 -205.85 - 85 77.8809 1277 0 1 75.4912 -32.2277 -204.45 - 85 234.768 1263 4 1 72.65 24.873 -84.5813 - 85 65.0372 1264 4 1 72.8501 24.904 -84.6061 -Number of digits in this event = 18 -Using G4ParticleGun ... -5.46991 LIN -proton +Number of tracker hits in this event: 42 + 85 96.2206 883 11 1 -3.37641 58.0969 125.55 + 85 112.638 1190 11 0 -3.37675 58.0978 124.15 + 85 239.718 883 10 1 -3.38192 58.1177 95.55 + 85 94.1634 1190 10 0 -3.38201 58.1187 94.15 + 85 102.372 883 9 1 -3.38599 58.1393 65.55 + 85 136.816 1190 9 0 -3.38597 58.1405 64.15 + 85 129.672 883 8 1 -3.38373 58.1654 35.55 + 85 106.497 1190 8 0 -3.3836 58.1671 34.15 + 85 139.334 883 7 1 -3.3811 58.1991 5.55 + 85 107.633 1190 7 0 -3.38089 58.2013 4.15 + 85 111.146 883 6 1 -3.37652 58.2471 -24.45 + 85 100.856 1190 6 0 -3.37639 58.2491 -25.85 + 85 116.835 883 5 1 -3.37597 58.2916 -54.45 + 85 136.045 1191 5 0 -3.37641 58.2942 -55.85 + 85 136.037 883 4 1 -3.38478 58.347 -84.45 + 85 139.554 1191 4 0 -3.38561 58.3487 -85.85 + 85 116.253 883 3 1 -3.40212 58.3854 -114.45 + 85 124.621 1191 3 0 -3.40291 58.3882 -115.85 + 85 101.616 883 2 1 -3.41991 58.4405 -144.45 + 85 98.6902 1191 2 0 -3.42086 58.4428 -145.85 + 85 128.361 883 1 1 -3.43939 58.4903 -174.45 + 85 155.485 1192 1 0 -3.44075 58.4929 -175.85 + 85 120.075 882 0 1 -3.47446 58.5471 -204.45 + 85 115.441 1192 0 0 -3.47595 58.5491 -205.85 + 85 122.481 940 0 1 8.23041 64.731 -204.451 + 85 140.48 1223 0 0 7.72335 64.7941 -205.851 + 85 15.2382 1131 0 0 26.0053 46.2727 -206.25 + 85 156.836 1130 0 0 26.0317 46.2499 -206.232 + 85 139.821 1129 0 0 26.2484 46.05 -206.072 + 85 23.5322 1037 0 1 27.6001 44.6671 -204.85 + 85 85.2018 1038 0 1 27.6502 44.6126 -204.802 + 85 265.727 1039 0 1 27.8501 44.5344 -204.58 + 85 53.2693 1040 0 1 28.05 44.5569 -204.45 + 85 56.356 1041 0 1 28.25 44.6492 -204.525 + 85 56.4742 1042 0 1 28.45 44.7529 -204.565 + 85 57.7852 1043 0 1 28.65 44.7886 -204.662 + 85 104.987 1044 0 1 28.85 44.8056 -204.735 + 85 3.09889 1045 0 1 29.05 44.8142 -204.843 + 85 321.94 1123 0 0 30.7237 44.6725 -205.85 + 85 70.9305 1115 0 0 50.5881 43.1387 -206.25 + 85 230.263 1114 0 0 50.6734 43.05 -206.187 + 85 109.281 1113 0 0 50.9669 42.85 -206.216 +Number of digits in this event: 19 +Using G4ParticleGun... +Particle energy: 8.41618 LIN +Particle: proton Event: 86 -Number of tracker hits in this event = 22 - 86 110.925 1073 10 1 34.8413 -96.035 95.55 - 86 105.264 420 10 0 34.8424 -96.0355 94.15 - 86 217.509 1074 9 1 34.8625 -96.0461 65.55 - 86 105.627 420 9 0 34.8639 -96.0462 64.15 - 86 103.882 1074 8 1 34.8975 -96.0531 35.55 - 86 117.216 420 8 0 34.8996 -96.0542 34.15 - 86 106.776 1074 7 1 34.9357 -96.0765 5.55 - 86 115.8 420 7 0 34.9379 -96.0766 4.15 - 86 103.366 1074 6 1 34.9863 -96.0771 -24.45 - 86 108.629 420 6 0 34.9884 -96.077 -25.85 - 86 150.843 1074 5 1 35.0288 -96.072 -54.45 - 86 110.704 420 5 0 35.0309 -96.0715 -55.85 - 86 112.743 1075 4 1 35.0719 -96.0605 -84.45 - 86 107.602 420 4 0 35.0754 -96.06 -85.85 - 86 111.602 1075 3 1 35.1324 -96.0535 -114.45 - 86 118.974 420 3 0 35.1362 -96.0526 -115.85 - 86 96.4313 1075 2 1 35.2197 -96.0317 -144.45 - 86 105.926 420 2 0 35.2216 -96.031 -145.85 - 86 130.472 1076 1 1 35.2603 -96.0203 -174.45 - 86 362.547 420 1 0 35.2619 -96.0202 -175.85 - 86 94.6984 1076 0 1 35.2939 -96.0168 -204.45 - 86 102.008 420 0 0 35.2956 -96.0171 -205.85 -Number of digits in this event = 5 -Using G4ParticleGun ... -7.36917 LIN -proton +Number of tracker hits in this event: 70 + 86 124.055 561 11 1 -67.7072 -43.1527 125.55 + 86 102.977 684 11 0 -67.7071 -43.153 124.15 + 86 104.409 561 10 1 -67.7038 -43.1597 95.55 + 86 126.168 684 10 0 -67.7035 -43.1604 94.15 + 86 112.598 561 9 1 -67.6998 -43.1809 65.55 + 86 150.911 684 9 0 -67.7003 -43.1833 64.15 + 86 161.116 561 8 1 -67.7096 -43.2333 35.55 + 86 141.158 684 8 0 -67.7102 -43.2364 34.15 + 86 144.665 561 7 1 -67.7231 -43.2946 5.55 + 86 107.309 683 7 0 -67.723 -43.297 4.15 + 86 107.595 561 6 1 -67.7196 -43.3458 -24.45 + 86 93.9443 683 6 0 -67.7201 -43.3483 -25.85 + 86 115.137 561 5 1 -67.7295 -43.4 -54.45 + 86 203.108 683 5 0 -67.7296 -43.4017 -55.85 + 86 113.421 561 4 1 -67.7334 -43.435 -84.45 + 86 123.885 683 4 0 -67.7337 -43.4369 -85.85 + 86 109.38 561 3 1 -67.7393 -43.4764 -114.45 + 86 108.333 682 3 0 -67.7385 -43.4783 -115.85 + 86 137.223 561 2 1 -67.7219 -43.5202 -144.45 + 86 159.483 682 2 0 -67.722 -43.5212 -145.85 + 86 124.606 561 1 1 -67.7224 -43.5416 -174.45 + 86 150.448 682 1 0 -67.7231 -43.5427 -175.85 + 86 96.3025 561 0 1 -67.7375 -43.5676 -204.45 + 86 119.371 682 0 0 -67.7367 -43.5685 -205.85 + 86 373.494 1591 7 0 89.4343 138.547 3.86027 + 86 170.403 805 0 0 -80.6204 -18.9218 -206.25 + 86 48.2177 806 0 0 -80.6268 -18.85 -206.001 + 86 159.208 496 0 1 -80.6585 -18.5181 -204.85 + 86 137.319 850 1 0 -81.9364 -10.0011 -176.25 + 86 138.787 490 1 1 -81.9932 -9.58241 -174.85 + 86 146.613 895 2 0 -83.3699 -0.941036 -146.25 + 86 33.7385 896 2 0 -83.3844 -0.85 -145.949 + 86 53.3643 483 2 1 -83.4403 -0.518456 -144.85 + 86 58.2308 482 2 1 -83.45 -0.461012 -144.659 + 86 128.696 937 3 0 -85.8387 7.5843 -116.25 + 86 61.4596 938 3 0 -85.8583 7.65 -116.018 + 86 166.304 470 3 1 -85.9581 7.97709 -114.85 + 86 11.3048 972 4 0 -88.7493 14.6455 -86.25 + 86 246.92 973 4 0 -88.7512 14.65 -86.2304 + 86 150.137 455 4 1 -88.9055 14.9489 -84.85 + 86 238.748 991 5 0 -92.4293 18.3775 -56.25 + 86 113.293 437 5 1 -92.6009 18.5441 -54.85 + 86 125.564 1014 6 0 -96.1337 23.0086 -26.25 + 86 70.054 1015 6 0 -96.1663 23.05 -25.9861 + 86 172.646 419 6 1 -96.2938 23.228 -24.85 + 86 107.782 1032 7 0 -99.5714 26.6354 3.75 + 86 106.632 1033 7 0 -99.5856 26.65 3.87328 + 86 56.509 402 7 1 -99.7328 26.8052 5.15 + 86 101.374 401 7 1 -99.75 26.8234 5.29938 + 86 371 1051 8 0 -102.426 30.4259 33.75 + 86 78.6357 1052 8 0 -102.444 30.45 33.9397 + 86 136.748 387 8 1 -102.565 30.6067 35.15 + 86 174.647 1069 9 0 -103.823 33.9343 63.75 + 86 159.276 381 9 1 -103.874 34.1267 65.15 + 86 130.968 1082 10 0 -106.114 36.5675 93.75 + 86 206.172 369 10 1 -106.228 36.6836 95.15 + 86 142.683 1091 11 0 -109.105 38.3412 123.75 + 86 150.44 354 11 1 -109.255 38.4208 125.15 + 86 128.133 1099 12 0 -114.128 40.032 153.75 + 86 24.1123 1100 12 0 -114.183 40.05 154.069 + 86 163.569 328 12 1 -114.373 40.1103 155.15 + 86 170.639 1108 13 0 -120.129 41.673 183.75 + 86 205.229 298 13 1 -120.414 41.7412 185.15 + 86 151.914 1116 14 0 -126.321 43.3869 213.75 + 86 178.709 267 14 1 -126.623 43.4553 215.15 + 86 20.8283 974 4 0 -88.6731 14.85 -85.8817 + 86 41.0452 460 4 1 -87.9168 16.8242 -84.85 + 86 81.7199 461 4 1 -87.8497 16.9034 -84.7939 + 86 86.3971 462 4 1 -87.65 16.9582 -84.6929 + 86 275.394 463 4 1 -87.45 16.8537 -84.6507 +Number of digits in this event: 44 +Using G4ParticleGun... +Particle energy: 9.76683 LIN +Particle: proton Event: 87 -Number of tracker hits in this event = 26 - 87 18.2984 1287 11 1 77.4637 -28.6497 125.214 - 87 150.987 757 11 0 77.4635 -28.6497 124.15 - 87 89.338 1287 10 1 77.4592 -28.649 95.55 - 87 100.418 757 10 0 77.4603 -28.6492 94.15 - 87 137.484 1287 9 1 77.4844 -28.6525 65.55 - 87 119.25 756 9 0 77.4855 -28.6526 64.15 - 87 99.6199 1287 8 1 77.5102 -28.657 35.55 - 87 178.045 756 8 0 77.5125 -28.6572 34.15 - 87 104.35 1287 7 1 77.5566 -28.6577 5.55 - 87 100.974 756 7 0 77.5589 -28.6569 4.15 - 87 118.718 1287 6 1 77.6069 -28.6394 -24.45 - 87 121.334 757 6 0 77.6101 -28.6384 -25.85 - 87 113.796 1288 5 1 77.6758 -28.619 -54.45 - 87 189.885 757 5 0 77.679 -28.6179 -55.85 - 87 110.569 1288 4 1 77.7464 -28.5972 -84.45 - 87 136.027 757 4 0 77.7506 -28.5955 -85.85 - 87 101.303 1288 3 1 77.8365 -28.5604 -114.45 - 87 186.734 757 3 0 77.8423 -28.5602 -115.85 - 87 97.6146 1289 2 1 77.9607 -28.5539 -144.45 - 87 114.922 757 2 0 77.9654 -28.5543 -145.85 - 87 96.7867 1290 1 1 78.0605 -28.5604 -174.45 - 87 92.6606 757 1 0 78.0652 -28.5611 -175.85 - 87 123.621 1290 0 1 78.1646 -28.5773 -204.45 - 87 100.224 757 0 0 78.1699 -28.5787 -205.85 - 87 214.241 756 4 0 77.718 -28.65 -86.1888 - 87 158.461 756 5 0 77.6768 -28.65 -56.1716 -Number of digits in this event = 11 -Using G4ParticleGun ... -1.2454 LIN -proton +Number of tracker hits in this event: 117 + 87 114.98 766 9 1 -26.7831 -115.147 65.55 + 87 164.647 325 9 0 -26.7835 -115.147 64.15 + 87 281.65 766 8 1 -26.7897 -115.132 35.55 + 87 113.372 325 8 0 -26.7902 -115.131 34.15 + 87 192.159 766 7 1 -26.7995 -115.114 5.55 + 87 203.27 325 7 0 -26.8006 -115.113 4.15 + 87 112.796 766 6 1 -26.8232 -115.084 -24.45 + 87 198.609 325 6 0 -26.825 -115.082 -25.85 + 87 110.562 765 5 1 -26.8626 -115.056 -54.45 + 87 83.379 325 5 0 -26.864 -115.055 -55.85 + 87 25.8179 1444 1 0 143.922 108.95 -176.229 + 87 156.793 1445 1 0 144.054 109.15 -176.11 + 87 381.084 765 4 1 -26.8636 -115.017 -84.45 + 87 482.788 766 4 1 -26.85 -115.006 -84.4873 + 87 44.8715 327 4 0 -26.3546 -114.594 -85.85 + 87 89.1299 328 4 0 -26.3017 -114.55 -85.9955 + 87 80.2528 820 3 1 -15.9401 -105.908 -114.45 + 87 54.7856 821 3 1 -15.85 -105.833 -114.692 + 87 218.577 373 3 0 -15.4189 -105.48 -115.85 + 87 111.941 876 2 1 -4.77668 -96.7016 -144.45 + 87 19.9219 877 2 1 -4.65 -96.5996 -144.784 + 87 122.7 419 2 0 -4.24542 -96.2737 -145.85 + 87 3.19903 932 1 1 6.64513 -87.5148 -174.45 + 87 113.492 933 1 1 6.65 -87.5109 -174.463 + 87 115.76 464 1 0 7.17349 -87.0968 -175.85 + 87 129.182 465 1 0 7.23258 -87.05 -176.007 + 87 106.831 989 0 1 17.9626 -78.5701 -204.45 + 87 58.3649 990 0 1 18.05 -78.5046 -204.677 + 87 102.816 509 0 0 18.501 -78.1643 -205.85 + 87 1.23514 510 0 0 18.6525 -78.05 -206.244 + 87 174.766 214 1 0 -26.0785 -137.309 -176.25 + 87 103.758 213 1 0 -26.1508 -137.35 -176.231 + 87 51.3105 212 1 0 -26.3217 -137.55 -176.239 + 87 132.803 340 1 0 3.84029 -112.092 -176.25 + 87 37.8766 330 4 0 -26.5721 -113.993 -85.85 + 87 89.8263 331 4 0 -26.5598 -113.95 -85.9061 + 87 299.293 773 4 1 -25.4291 -113.322 -84.85 + 87 149.879 774 4 1 -25.25 -113.169 -84.5906 + 87 221.734 326 4 0 -26.8112 -114.929 -85.85 + 87 242.355 773 3 1 -25.3602 -112.824 -114.45 + 87 114.693 337 3 0 -25.284 -112.712 -115.85 + 87 123.677 781 2 1 -23.756 -110.452 -144.45 + 87 135.887 349 2 0 -23.6937 -110.335 -145.85 + 87 110.974 788 1 1 -22.4099 -107.942 -174.45 + 87 116.148 361 1 0 -22.3412 -107.826 -175.85 + 87 108.733 795 0 1 -20.9569 -105.404 -204.45 + 87 115.567 374 0 0 -20.8838 -105.286 -205.85 + 87 222.16 325 4 0 -26.2598 -114.973 -85.85 + 87 191.916 830 3 1 -14.0498 -113.692 -114.45 + 87 159.174 332 3 0 -13.4436 -113.636 -115.85 + 87 261.143 895 2 1 -1.04843 -112.559 -144.45 + 87 295.386 338 2 0 -0.450745 -112.509 -145.85 + 87 104.514 958 1 1 11.7595 -111.463 -174.45 + 87 99.4121 959 1 1 11.85 -111.455 -174.663 + 87 202.536 343 1 0 12.3549 -111.41 -175.85 + 87 145.356 1022 0 1 24.5138 -110.303 -204.45 + 87 32.0103 1023 0 1 24.65 -110.29 -204.773 + 87 169.946 349 0 0 25.1051 -110.249 -205.85 + 87 157.957 339 2 0 -0.344952 -112.35 -145.938 + 87 109.816 762 4 1 -27.4753 -115.203 -84.45 + 87 176.36 761 4 1 -27.65 -115.269 -84.4773 + 87 255.409 760 4 1 -27.85 -115.344 -84.5097 + 87 118.384 759 4 1 -28.05 -115.42 -84.5405 + 87 167.074 758 4 1 -28.25 -115.493 -84.5695 + 87 125.716 757 4 1 -28.45 -115.567 -84.5987 + 87 273.258 756 4 1 -28.65 -115.639 -84.6271 + 87 159.346 755 4 1 -28.85 -115.709 -84.6497 + 87 236.842 754 4 1 -29.05 -115.778 -84.6703 + 87 140.964 753 4 1 -29.25 -115.85 -84.6915 + 87 134.276 752 4 1 -29.45 -115.925 -84.7125 + 87 170.204 751 4 1 -29.65 -116.002 -84.7309 + 87 128.349 750 4 1 -29.85 -116.082 -84.7497 + 87 124.694 749 4 1 -30.05 -116.164 -84.7684 + 87 147.737 748 4 1 -30.25 -116.249 -84.784 + 87 135.884 747 4 1 -30.45 -116.331 -84.7978 + 87 161.28 746 4 1 -30.65 -116.413 -84.8136 + 87 193.896 745 4 1 -30.85 -116.491 -84.8304 + 87 25.0816 744 4 1 -31.05 -116.569 -84.8473 + 87 320.121 296 4 0 -42.0573 -120.758 -85.85 + 87 403.538 295 4 0 -42.563 -120.95 -85.8961 + 87 395.886 294 4 0 -43.0784 -121.15 -85.9705 + 87 347.095 293 4 0 -43.5751 -121.35 -86.0533 + 87 332.69 292 4 0 -44.0802 -121.55 -86.1344 + 87 177.415 291 4 0 -44.5581 -121.75 -86.2141 + 87 152.991 760 3 1 -27.9753 -112.274 -114.45 + 87 154.783 340 3 0 -28.0272 -112.146 -115.85 + 87 124.591 754 2 1 -29.092 -109.529 -144.45 + 87 113.008 353 2 0 -29.1429 -109.403 -145.85 + 87 114.465 749 1 1 -30.1802 -106.816 -174.45 + 87 156.599 367 1 0 -30.2333 -106.69 -175.85 + 87 123.95 743 0 1 -31.3213 -104.098 -204.45 + 87 80.4455 380 0 0 -31.3711 -103.971 -205.85 + 87 62.0297 381 0 0 -31.3792 -103.95 -206.08 + 87 224.72 508 4 1 -78.3069 -1.24986 -84.6514 + 87 261.359 1129 4 0 65.6944 45.9576 -86.1296 + 87 18.0579 1253 7 1 70.7282 102.353 5.41036 + 87 111.604 323 4 0 -27.0064 -115.397 -85.85 + 87 132.324 753 3 1 -29.286 -122.363 -114.45 + 87 54.3638 287 3 0 -29.3979 -122.703 -115.85 + 87 155.496 286 3 0 -29.4134 -122.75 -116.043 + 87 156.053 741 2 1 -31.6952 -129.657 -144.45 + 87 129.86 250 2 0 -31.8075 -129.995 -145.85 + 87 196.574 729 1 1 -34.0979 -136.879 -174.45 + 87 146.118 717 0 1 -36.5161 -144.139 -204.45 + 87 94.0966 178 0 0 -36.6285 -144.477 -205.85 + 87 22.6133 177 0 0 -36.6527 -144.55 -206.153 + 87 68.0713 740 2 1 -31.8502 -129.752 -144.475 + 87 106.893 739 2 1 -32.05 -129.741 -144.468 + 87 73.0275 738 2 1 -32.25 -129.64 -144.491 + 87 317.84 737 2 1 -32.4504 -129.499 -144.538 + 87 366.95 736 2 1 -32.6502 -129.183 -144.634 + 87 93.4479 324 7 0 -26.8035 -115.345 4.14979 + 87 12.6189 323 7 0 -26.8027 -115.35 4.12504 + 87 50.4124 326 7 0 -26.981 -114.95 4.12806 + 87 215.3 760 7 1 -27.8653 -113.024 5.15 + 87 126.116 765 8 1 -26.85 -114.945 35.3295 + 87 457.747 764 8 1 -27.05 -114.646 35.3717 +Number of digits in this event: 72 +Using G4ParticleGun... +Particle energy: 9.61491 LIN +Particle: proton Event: 88 -Number of tracker hits in this event = 45 - 88 163.89 764 11 1 -27.2215 53.5157 125.55 - 88 240.145 1167 11 0 -27.2225 53.5109 124.15 - 88 186.533 763 10 1 -27.2519 53.4591 95.55 - 88 134.29 1167 10 0 -27.2514 53.4573 94.15 - 88 122.247 764 9 1 -27.2424 53.4085 65.55 - 88 112.534 1166 9 0 -27.2386 53.4097 64.15 - 88 266.399 764 8 1 -27.1625 53.446 35.55 - 88 151.518 1166 8 0 -27.1589 53.4444 34.15 - 88 310.179 764 7 1 -27.0987 53.414 5.55 - 88 244.444 1166 7 0 -27.0957 53.4081 4.15 - 88 119.779 765 6 1 -27.0451 53.2812 -24.45 - 88 124.868 1166 6 0 -27.0395 53.2715 -25.85 - 88 151.746 765 5 1 -26.9274 53.0853 -54.45 - 88 161.994 1165 5 0 -26.9277 53.0748 -55.85 - 88 118.817 765 4 1 -26.9453 52.8559 -84.45 - 88 97.6507 1163 4 0 -26.9466 52.8439 -85.85 - 88 133.835 765 3 1 -26.9865 52.5721 -114.45 - 88 115.942 1162 3 0 -26.9887 52.565 -115.85 - 88 134.276 765 2 1 -27.0379 52.4309 -144.45 - 88 139.406 1161 2 0 -27.041 52.4204 -145.85 - 88 118.299 764 1 1 -27.1296 52.2065 -174.45 - 88 143.679 1160 1 0 -27.1334 52.1978 -175.85 - 88 239.995 764 0 1 -27.2244 52.0062 -204.45 - 88 165.038 1159 0 0 -27.2253 51.9969 -205.85 - 88 67.6114 765 0 1 -27.05 52.1227 -204.587 - 88 175.86 766 0 1 -26.85 52.2324 -204.652 - 88 81.2208 767 0 1 -26.65 52.3424 -204.71 - 88 81.3086 768 0 1 -26.4499 52.4087 -204.746 - 88 46.8588 769 0 1 -26.25 52.4566 -204.759 - 88 83.9135 770 0 1 -26.0498 52.4789 -204.779 - 88 62.5012 771 0 1 -25.85 52.4993 -204.76 - 88 53.0688 772 0 1 -25.65 52.4986 -204.636 - 88 108.808 1264 1 0 -29.1276 72.9369 -176.25 - 88 48.2283 1265 1 0 -29.2425 73.0501 -175.953 - 88 314.173 744 1 1 -31.1587 74.0403 -174.85 - 88 154.297 1273 1 0 -31.6696 74.7838 -175.85 - 88 48.504 1452 1 0 -75.2193 110.632 -176.25 - 88 230.841 1453 1 0 -75.273 110.75 -176.201 - 88 75.8568 1454 1 0 -75.2528 110.95 -176.107 - 88 97.3621 525 1 1 -74.8661 110.673 -174.85 - 88 213.121 526 1 1 -74.85 110.705 -174.743 - 88 17.9087 1168 11 0 -27.2645 53.6501 123.79 - 88 125.357 1166 11 0 -27.2118 53.4498 123.967 - 88 21.8696 1229 11 0 42.4843 66.026 123.75 - 88 134.61 1230 11 0 42.504 66.05 123.759 -Number of digits in this event = 26 -Using G4ParticleGun ... -6.48535 LIN -proton +Number of tracker hits in this event: 23 + 88 117.492 1318 10 1 83.8221 51.1857 95.55 + 88 100.272 1155 10 0 83.8218 51.1857 94.15 + 88 111.209 1318 9 1 83.816 51.186 65.55 + 88 163.612 1155 9 0 83.8156 51.1866 64.15 + 88 205.582 1318 8 1 83.8103 51.1968 35.55 + 88 113.785 1155 8 0 83.8102 51.198 34.15 + 88 90.0167 1318 7 1 83.8117 51.2218 5.55 + 88 118.799 1155 7 0 83.8115 51.2233 4.15 + 88 107.661 1318 6 1 83.806 51.2476 -24.45 + 88 244.434 1155 6 0 83.8067 51.2492 -25.85 + 88 119.523 1318 5 1 83.8221 51.2823 -54.45 + 88 338.78 1156 5 0 83.8228 51.2831 -55.85 + 88 118.894 1318 4 1 83.8411 51.2972 -84.45 + 88 103.778 1156 4 0 83.8421 51.2976 -85.85 + 88 162.925 1319 3 1 83.864 51.3074 -114.45 + 88 94.2242 1156 3 0 83.865 51.3089 -115.85 + 88 141.138 1319 2 1 83.8869 51.3351 -144.45 + 88 106.286 1156 2 0 83.8878 51.3357 -145.85 + 88 201.485 1319 1 1 83.9047 51.3493 -174.45 + 88 99.0381 1156 1 0 83.9055 51.3497 -175.85 + 88 101.923 1319 0 1 83.9208 51.3536 -204.45 + 88 108.461 1156 0 0 83.9215 51.3527 -205.85 + 88 364.158 1317 8 1 83.65 51.112 35.4128 +Number of digits in this event: 9 +Using G4ParticleGun... +Particle energy: 6.04415 LIN +Particle: proton Event: 89 -Number of tracker hits in this event = 20 - 89 134.84 340 9 1 -112.097 36.5708 65.55 - 89 87.0296 1082 9 0 -112.097 36.57 64.15 - 89 153.376 340 8 1 -112.099 36.5499 35.55 - 89 119.086 1082 8 0 -112.097 36.5501 34.15 - 89 99.7093 340 7 1 -112.065 36.5587 5.55 - 89 102.231 1082 7 0 -112.064 36.5597 4.15 - 89 104.406 340 6 1 -112.048 36.5844 -24.45 - 89 98.2643 1082 6 0 -112.046 36.5855 -25.85 - 89 134.349 340 5 1 -112.005 36.6088 -54.45 - 89 93.5756 1082 5 0 -112.004 36.6099 -55.85 - 89 123.733 340 4 1 -111.977 36.6289 -84.45 - 89 108.993 1082 4 0 -111.976 36.6293 -85.85 - 89 111.063 340 3 1 -111.954 36.6409 -114.45 - 89 98.7645 1082 3 0 -111.953 36.6415 -115.85 - 89 129.197 341 2 1 -111.926 36.6508 -144.45 - 89 104.912 1083 2 0 -111.925 36.6517 -145.85 - 89 141.282 341 1 1 -111.912 36.6671 -174.45 - 89 134.106 1083 1 0 -111.91 36.6663 -175.85 - 89 109.291 341 0 1 -111.877 36.6477 -204.45 - 89 108.355 1082 0 0 -111.877 36.6464 -205.85 -Number of digits in this event = 8 -Using G4ParticleGun ... -7.53786 LIN -proton +Number of tracker hits in this event: 21 + 89 118.894 1548 9 1 129.834 20.6522 65.55 + 89 142.378 1003 9 0 129.834 20.6528 64.15 + 89 229.754 1548 8 1 129.845 20.6629 35.55 + 89 161.412 1003 8 0 129.846 20.6627 34.15 + 89 103.661 1548 7 1 129.875 20.6575 5.55 + 89 143.902 1003 7 0 129.877 20.657 4.15 + 89 98.5568 1548 6 1 129.921 20.6442 -24.45 + 89 137.857 1002 6 0 129.923 20.6423 -25.85 + 89 120.889 1549 5 1 129.979 20.6013 -54.45 + 89 124.28 1002 5 0 129.984 20.5987 -55.85 + 89 107.396 1549 4 1 130.07 20.5456 -84.45 + 89 114.285 1002 4 0 130.074 20.5415 -85.85 + 89 140.504 1550 3 1 130.154 20.4593 -114.45 + 89 126.137 1002 3 0 130.158 20.4552 -115.85 + 89 103.971 1550 2 1 130.231 20.371 -144.45 + 89 127.464 1001 2 0 130.236 20.3666 -145.85 + 89 332.625 1550 1 1 130.333 20.275 -174.45 + 89 130.202 1001 1 0 130.337 20.2702 -175.85 + 89 126.578 1551 0 1 130.419 20.1735 -204.45 + 89 111.886 1000 0 0 130.422 20.1708 -205.85 + 89 110.146 1551 1 1 130.35 20.4106 -174.706 +Number of digits in this event: 14 +Using G4ParticleGun... +Particle energy: 9.03439 LIN +Particle: proton Event: 90 -Number of tracker hits in this event = 24 - 90 103.981 552 11 1 -69.4854 -6.74396 125.55 - 90 94.2118 866 11 0 -69.4849 -6.74296 124.15 - 90 125.981 552 10 1 -69.4739 -6.71279 95.55 - 90 263.202 866 10 0 -69.4735 -6.71029 94.15 - 90 97.535 552 9 1 -69.4698 -6.65673 65.55 - 90 99.0228 866 9 0 -69.4699 -6.6547 64.15 - 90 127.715 552 8 1 -69.4778 -6.61211 35.55 - 90 92.4338 867 8 0 -69.4783 -6.60968 34.15 - 90 151.785 552 7 1 -69.4888 -6.55676 5.55 - 90 199.509 867 7 0 -69.4886 -6.55407 4.15 - 90 98.0027 552 6 1 -69.484 -6.50005 -24.45 - 90 101.626 867 6 0 -69.4831 -6.49771 -25.85 - 90 124.425 552 5 1 -69.4663 -6.44901 -54.45 - 90 204.625 868 5 0 -69.4664 -6.44617 -55.85 - 90 107.377 552 4 1 -69.4768 -6.38645 -84.45 - 90 176.157 868 4 0 -69.4769 -6.38271 -85.85 - 90 187.665 552 3 1 -69.4798 -6.30452 -114.45 - 90 92.5916 868 3 0 -69.4799 -6.30106 -115.85 - 90 180.631 552 2 1 -69.4827 -6.22872 -144.45 - 90 117.656 869 2 0 -69.4816 -6.22491 -145.85 - 90 167.452 552 1 1 -69.4592 -6.14699 -174.45 - 90 152.226 869 1 0 -69.4587 -6.14358 -175.85 - 90 111.528 552 0 1 -69.4511 -6.07552 -204.45 - 90 297.111 869 0 0 -69.4503 -6.07281 -205.85 -Number of digits in this event = 14 -Using G4ParticleGun ... -5.67114 LIN -proton +Number of tracker hits in this event: 29 + 90 142.225 1466 9 1 113.399 33.1468 65.55 + 90 133.472 1065 9 0 113.399 33.1473 64.15 + 90 84.8911 1466 8 1 113.405 33.153 35.55 + 90 131.291 1065 8 0 113.406 33.1531 34.15 + 90 141.242 1466 7 1 113.422 33.1554 5.55 + 90 110.052 1065 7 0 113.423 33.1561 4.15 + 90 145.39 1466 6 1 113.447 33.1713 -24.45 + 90 122.726 1065 6 0 113.448 33.1722 -25.85 + 90 151.704 1466 5 1 113.457 33.1928 -54.45 + 90 120.393 1065 5 0 113.458 33.1934 -55.85 + 90 102.483 1466 4 1 113.488 33.2086 -84.45 + 90 124.963 1065 4 0 113.488 33.2097 -85.85 + 90 99.563 1466 3 1 113.482 33.2333 -114.45 + 90 115.911 1065 3 0 113.481 33.2358 -115.85 + 90 101.731 1466 2 1 113.46 33.2846 -144.45 + 90 117.959 1066 2 0 113.46 33.2877 -145.85 + 90 158.616 1466 1 1 113.458 33.3556 -174.45 + 90 138.345 1066 1 0 113.458 33.3579 -175.85 + 90 141.788 1466 0 1 113.454 33.408 -204.45 + 90 187.958 1066 0 0 113.453 33.4099 -205.85 + 90 13.1302 1467 1 1 113.55 33.3575 -174.835 + 90 30.2603 1071 1 0 115.114 34.377 -175.85 + 90 130.498 1481 1 1 116.369 32.7021 -174.85 + 90 65.2453 1465 9 1 113.35 33.06 65.319 + 90 45.7095 1054 9 0 112.665 30.9665 64.1498 + 90 198.558 1053 9 0 112.645 30.85 64.1251 + 90 38.7903 1052 9 0 112.718 30.65 64.0241 + 90 243.584 1202 9 0 153.601 60.513 63.75 + 90 121.478 1203 9 0 153.576 60.65 63.8659 +Number of digits in this event: 18 +Using G4ParticleGun... +Particle energy: 9.66777 LIN +Particle: proton Event: 91 -Number of tracker hits in this event = 25 - 91 138.555 1169 11 1 53.9022 -60.7646 125.55 - 91 176.924 596 11 0 53.9021 -60.7641 124.15 - 91 93.8526 1169 10 1 53.9031 -60.7507 95.55 - 91 109.754 596 10 0 53.9041 -60.7502 94.15 - 91 110.318 1169 9 1 53.923 -60.739 65.55 - 91 110.964 596 9 0 53.9243 -60.7372 64.15 - 91 102.469 1169 8 1 53.9469 -60.7044 35.55 - 91 114.177 596 8 0 53.9483 -60.7039 34.15 - 91 96.0535 1169 7 1 53.974 -60.6926 5.55 - 91 135.652 596 7 0 53.9755 -60.6921 4.15 - 91 179.767 1169 6 1 54.0055 -60.6788 -24.45 - 91 128.314 596 6 0 54.0072 -60.6786 -25.85 - 91 156.881 1169 5 1 54.0408 -60.6802 -54.45 - 91 116.359 596 5 0 54.0412 -60.6816 -55.85 - 91 108.941 1169 4 1 54.0481 -60.7132 -84.45 - 91 188.845 596 4 0 54.0471 -60.7143 -85.85 - 91 102.566 1169 3 1 54.0231 -60.7351 -114.45 - 91 161.649 596 3 0 54.0236 -60.7376 -115.85 - 91 156.28 1169 2 1 54.0357 -60.792 -144.45 - 91 101.792 596 2 0 54.0365 -60.7934 -145.85 - 91 129.63 1170 1 1 54.0535 -60.8172 -174.45 - 91 233.737 596 1 0 54.0553 -60.8185 -175.85 - 91 120.141 1170 0 1 54.0866 -60.8427 -204.45 - 91 116.435 596 0 0 54.0867 -60.8426 -205.85 - 91 142.783 1170 5 1 54.05 -60.6751 -54.545 -Number of digits in this event = 14 -Using G4ParticleGun ... -3.65891 LIN -proton +Number of tracker hits in this event: 20 + 91 123.531 1375 9 1 95.2909 -68.067 65.55 + 91 150.885 559 9 0 95.2905 -68.067 64.15 + 91 223.827 1375 8 1 95.2808 -68.0664 35.55 + 91 98.7664 559 8 0 95.28 -68.0668 34.15 + 91 130.568 1375 7 1 95.2652 -68.0771 5.55 + 91 127.48 559 7 0 95.2629 -68.0776 4.15 + 91 117.236 1375 6 1 95.2171 -68.0854 -24.45 + 91 116.434 559 6 0 95.2148 -68.0857 -25.85 + 91 125.098 1375 5 1 95.1703 -68.0901 -54.45 + 91 101.491 559 5 0 95.1685 -68.0904 -55.85 + 91 107.747 1374 4 1 95.134 -68.0955 -84.45 + 91 170.081 559 4 0 95.1323 -68.0957 -85.85 + 91 144.754 1374 3 1 95.0973 -68.1 -114.45 + 91 97.3226 559 3 0 95.0959 -68.1007 -115.85 + 91 92.0038 1374 2 1 95.0663 -68.1188 -144.45 + 91 89.2733 559 2 0 95.065 -68.119 -145.85 + 91 238.526 1374 1 1 95.0379 -68.1254 -174.45 + 91 104.307 559 1 0 95.0365 -68.1252 -175.85 + 91 141.448 1374 0 1 95.008 -68.1203 -204.45 + 91 105.046 559 0 0 95.0062 -68.1199 -205.85 +Number of digits in this event: 11 +Using G4ParticleGun... +Particle energy: 5.07892 LIN +Particle: proton Event: 92 -Number of tracker hits in this event = 29 - 92 121.506 544 9 1 -71.096 103.144 65.55 - 92 117.768 1414 9 0 -71.0958 103.145 64.15 - 92 134.05 544 8 1 -71.0818 103.145 35.55 - 92 117.585 1414 8 0 -71.0823 103.147 34.15 - 92 123.85 544 7 1 -71.0898 103.184 5.55 - 92 282.782 1415 7 0 -71.0897 103.186 4.15 - 92 97.2515 544 6 1 -71.0928 103.231 -24.45 - 92 151.603 1415 6 0 -71.0932 103.231 -25.85 - 92 105.341 544 5 1 -71.0994 103.235 -54.45 - 92 105.484 1415 5 0 -71.0974 103.235 -55.85 - 92 118.312 544 4 1 -71.0601 103.245 -84.45 - 92 94.6884 1415 4 0 -71.0594 103.246 -85.85 - 92 111.194 545 3 1 -71.044 103.268 -114.45 - 92 131.865 1415 3 0 -71.0438 103.27 -115.85 - 92 105.76 544 2 1 -71.0504 103.318 -144.45 - 92 139.977 1415 2 0 -71.0502 103.321 -145.85 - 92 96.7689 544 1 1 -71.0509 103.375 -174.45 - 92 131.999 1416 1 0 -71.0534 103.381 -175.85 - 92 90.8826 544 0 1 -71.1056 103.488 -204.45 - 92 123.532 1416 0 0 -71.107 103.492 -205.85 - 92 57.1987 1388 3 0 -49.4913 97.8795 -116.25 - 92 106.949 1387 3 0 -49.4079 97.7499 -116.131 - 92 84.6244 1386 3 0 -49.408 97.55 -115.998 - 92 87.2607 1385 3 0 -49.482 97.3499 -115.951 - 92 77.1981 1384 3 0 -49.484 97.1499 -116.033 - 92 91.1103 1383 3 0 -49.6055 96.95 -116.004 - 92 334.082 651 3 1 -49.798 96.6558 -114.85 - 92 102.403 545 7 1 -71.05 103.124 5.50671 - 92 102.439 1414 7 0 -70.625 103.145 4.14956 -Number of digits in this event = 11 -Using G4ParticleGun ... -4.59138 LIN -proton +Number of tracker hits in this event: 27 + 92 122.161 596 11 1 -60.7438 -26.3095 125.55 + 92 100.928 768 11 0 -60.7439 -26.309 124.15 + 92 91.446 596 10 1 -60.7505 -26.2981 95.55 + 92 106.75 768 10 0 -60.7495 -26.2971 94.15 + 92 91.6117 596 9 1 -60.7278 -26.2792 65.55 + 92 127.402 768 9 0 -60.7275 -26.2792 64.15 + 92 199.223 596 8 1 -60.7195 -26.2819 35.55 + 92 92.1046 768 8 0 -60.7207 -26.2814 34.15 + 92 111.778 596 7 1 -60.7419 -26.2702 5.55 + 92 109.321 768 7 0 -60.7441 -26.2704 4.15 + 92 91.5917 596 6 1 -60.7901 -26.2733 -24.45 + 92 106.874 768 6 0 -60.7922 -26.2741 -25.85 + 92 157.486 596 5 1 -60.8356 -26.2895 -54.45 + 92 112.47 768 5 0 -60.8366 -26.2903 -55.85 + 92 136.29 595 4 1 -60.8626 -26.3009 -84.45 + 92 113.212 768 4 0 -60.8628 -26.3007 -85.85 + 92 117.797 595 3 1 -60.8675 -26.2987 -114.45 + 92 109.138 768 3 0 -60.8676 -26.2992 -115.85 + 92 108.462 595 2 1 -60.8705 -26.2987 -144.45 + 92 130.071 768 2 0 -60.8698 -26.2992 -145.85 + 92 166.932 595 1 1 -60.8548 -26.3178 -174.45 + 92 118.238 768 1 0 -60.8545 -26.3199 -175.85 + 92 151.493 596 0 1 -60.847 -26.3654 -204.45 + 92 126.808 768 0 0 -60.8459 -26.3663 -205.85 + 92 123.187 282 1 0 -94.5646 -123.75 -176.207 + 92 80.9564 596 3 1 -60.8498 -26.3118 -114.758 + 92 348.402 763 3 0 -60.8072 -27.3264 -115.85 +Number of digits in this event: 14 +Using G4ParticleGun... +Particle energy: 7.06252 LIN +Particle: proton Event: 93 -Number of tracker hits in this event = 35 - 93 123.745 740 11 1 -31.9789 34.0027 125.55 - 93 107.068 1069 11 0 -31.9776 34.0022 124.15 - 93 112.089 740 10 1 -31.9506 33.9828 95.55 - 93 108.023 1069 10 0 -31.9497 33.9828 94.15 - 93 210.301 740 9 1 -31.9313 33.9848 65.55 - 93 108.794 1069 9 0 -31.9301 33.9843 64.15 - 93 110.937 740 8 1 -31.9097 33.9715 35.55 - 93 107.194 1069 8 0 -31.9077 33.9716 34.15 - 93 98.8107 740 7 1 -31.858 33.9782 5.55 - 93 127.662 1069 7 0 -31.8553 33.9797 4.15 - 93 97.2588 741 6 1 -31.7958 34.0085 -24.45 - 93 112.202 1069 6 0 -31.7917 34.01 -25.85 - 93 128.82 741 5 1 -31.7113 34.042 -54.45 - 93 107.316 1069 5 0 -31.7085 34.0459 -55.85 - 93 173.822 741 4 1 -31.6513 34.1304 -84.45 - 93 101.234 1070 4 0 -31.6501 34.1338 -85.85 - 93 110.351 742 3 1 -31.6258 34.2 -114.45 - 93 121.899 1070 3 0 -31.6266 34.2042 -115.85 - 93 241.231 741 2 1 -31.6531 34.2895 -144.45 - 93 168.041 1071 2 0 -31.6555 34.2919 -145.85 - 93 130.283 741 1 1 -31.7017 34.3416 -174.45 - 93 132.372 1071 1 0 -31.7038 34.3447 -175.85 - 93 105.539 741 0 1 -31.7523 34.4094 -204.45 - 93 93.6604 1071 0 0 -31.7542 34.4139 -205.85 - 93 30.0314 1320 0 0 14.9302 84.0658 -206.25 - 93 320.858 1319 0 0 15.0208 84.05 -206.229 - 93 129.109 1318 0 0 15.057 83.85 -205.976 - 93 93.2486 1073 2 0 -31.1916 34.7026 -145.85 - 93 272.737 1072 2 0 -31.1734 34.65 -146.066 - 93 113.871 742 4 1 -31.5525 34.2702 -84.4502 - 93 91.0923 1068 4 0 -32.009 33.7545 -85.85 - 93 63.7014 1067 4 0 -32.1887 33.65 -86.0649 - 93 50.767 792 4 0 0.350695 -21.4719 -86.25 - 93 143.52 690 4 0 47.2541 -41.9816 -86.2499 - 93 246.119 739 9 1 -32.05 34.1712 65.2294 -Number of digits in this event = 17 -Using G4ParticleGun ... -5.25424 LIN -proton +Number of tracker hits in this event: 18 + 93 263.304 1192 8 1 58.5506 125.836 35.55 + 93 115.487 1528 8 0 58.5503 125.835 34.15 + 93 105.879 1192 7 1 58.5459 125.825 5.55 + 93 121.944 1528 7 0 58.5465 125.825 4.15 + 93 111.495 1192 6 1 58.5594 125.825 -24.45 + 93 126.421 1528 6 0 58.5587 125.826 -25.85 + 93 104.232 1192 5 1 58.5469 125.833 -54.45 + 93 129.255 1528 5 0 58.5461 125.833 -55.85 + 93 113.319 1192 4 1 58.5296 125.844 -84.45 + 93 115.679 1528 4 0 58.5286 125.844 -85.85 + 93 114.415 1192 3 1 58.5107 125.854 -114.45 + 93 121.608 1528 3 0 58.5096 125.856 -115.85 + 93 122.208 1192 2 1 58.48 125.891 -144.45 + 93 150.307 1528 2 0 58.479 125.894 -145.85 + 93 115.288 1192 1 1 58.4526 125.958 -174.45 + 93 158.052 1529 1 0 58.4521 125.962 -175.85 + 93 111.567 1191 0 1 58.4367 126.034 -204.45 + 93 92.5013 1529 0 0 58.4358 126.037 -205.85 +Number of digits in this event: 9 +Using G4ParticleGun... +Particle energy: 2.09729 LIN +Particle: proton Event: 94 -Number of tracker hits in this event = 20 - 94 150.851 899 11 1 -0.110612 -70.4461 125.55 - 94 101.934 548 11 0 -0.108669 -70.447 124.15 - 94 103.87 899 10 1 -0.0732468 -70.4707 95.55 - 94 116.895 547 10 0 -0.0713221 -70.4713 94.15 - 94 254.267 900 7 1 0.133531 -70.5985 5.55 - 94 105.195 547 7 0 0.137994 -70.6012 4.15 - 94 130.549 900 6 1 0.225659 -70.6546 -24.45 - 94 103.191 546 6 0 0.23049 -70.6574 -25.85 - 94 105.033 901 5 1 0.32771 -70.7157 -54.45 - 94 105.384 546 5 0 0.332367 -70.7192 -55.85 - 94 156.53 901 4 1 0.425843 -70.789 -84.45 - 94 153.235 546 4 0 0.431357 -70.7931 -85.85 - 94 173.756 902 3 1 0.547232 -70.8786 -114.45 - 94 189.797 545 3 0 0.550869 -70.8821 -115.85 - 94 110.931 902 2 1 0.623736 -70.9554 -144.45 - 94 108.66 545 2 0 0.626429 -70.9587 -145.85 - 94 104.485 903 1 1 0.678822 -71.0307 -174.45 - 94 103.189 545 1 0 0.680716 -71.0343 -175.85 - 94 110.835 903 0 1 0.717472 -71.1065 -204.45 - 94 121.259 544 0 0 0.720483 -71.1103 -205.85 -Number of digits in this event = 9 -Using G4ParticleGun ... -9.86988 LIN -proton +Number of tracker hits in this event: 48 + 94 125.378 465 9 1 -86.9691 -87.5039 65.55 + 94 103.602 462 9 0 -86.9688 -87.5065 64.15 + 94 112.778 465 8 1 -86.958 -87.5535 35.55 + 94 105.691 462 8 0 -86.9579 -87.5568 34.15 + 94 172.172 465 7 1 -86.9599 -87.6229 5.55 + 94 278.246 462 7 0 -86.9592 -87.6294 4.15 + 94 103.984 465 6 1 -86.9491 -87.7608 -24.45 + 94 294.349 461 6 0 -86.947 -87.7669 -25.85 + 94 101.774 465 5 1 -86.9007 -87.8821 -54.45 + 94 107.522 460 5 0 -86.899 -87.891 -55.85 + 94 113.587 465 4 1 -86.8561 -88.0566 -84.45 + 94 272.103 459 4 0 -86.8522 -88.0629 -85.85 + 94 149.041 466 3 1 -86.7782 -88.1843 -114.45 + 94 109.261 459 3 0 -86.776 -88.1877 -115.85 + 94 106.718 466 2 1 -86.7343 -88.2525 -144.45 + 94 116.397 458 2 0 -86.7305 -88.2535 -145.85 + 94 333.238 467 1 1 -86.6263 -88.2843 -174.45 + 94 386.798 458 1 0 -86.6205 -88.2831 -175.85 + 94 122.714 467 0 1 -86.5077 -88.2583 -204.45 + 94 158.961 458 0 0 -86.5043 -88.2546 -205.85 + 94 217.963 151 3 0 -148.293 -149.95 -116.25 + 94 17.2746 150 3 0 -148.295 -149.95 -116.248 + 94 176.352 616 2 0 -161.242 -56.8166 -146.25 + 94 59.9875 91 2 1 -161.822 -56.4415 -144.85 + 94 11.7993 530 1 1 -73.923 -20.6341 -174.85 + 94 110.315 506 4 1 -78.7848 -17.2511 -84.5886 + 94 15.4082 653 5 0 -48.4872 -49.3254 -56.2031 + 94 1699.22 341 2 0 -122.345 -111.913 -146.012 + 94 33.4909 1140 1 0 -125.495 48.1333 -176.25 + 94 141.027 1141 1 0 -125.526 48.2505 -176.183 + 94 305.791 1142 1 0 -125.73 48.45 -176.077 + 94 64.9417 1163 10 0 101.987 52.7627 93.75 + 94 220.189 1162 10 0 102.139 52.65 93.8813 + 94 2.0324 1161 10 0 102.476 52.45 94.1391 + 94 172.1 1410 10 1 102.242 51.922 95.15 + 94 61.5079 242 4 1 -131.565 -41.4662 -84.85 + 94 131.09 775 3 1 -24.9332 -29.2085 -114.85 + 94 112.603 776 3 1 -24.8499 -29.5561 -114.486 + 94 111.315 777 3 1 -24.6498 -29.898 -114.527 + 94 536.839 778 3 1 -24.45 -30.0877 -114.583 + 94 337.017 779 3 1 -24.2498 -30.1693 -114.557 + 94 149.835 780 3 1 -24.0498 -30.2455 -114.576 + 94 146.663 781 3 1 -23.8492 -30.3549 -114.616 + 94 83.7599 782 3 1 -23.65 -30.5226 -114.659 + 94 254.922 466 1 1 -86.65 -88.2679 -174.647 + 94 138.083 468 1 1 -86.4499 -88.5695 -174.594 + 94 1.68076 459 1 0 -86.1084 -88.25 -175.86 + 94 77.037 460 4 0 -86.8144 -88.05 -86.0908 +Number of digits in this event: 27 +Using G4ParticleGun... +Particle energy: 5.05782 LIN +Particle: proton Event: 95 -Number of tracker hits in this event = 20 - 95 127.47 1323 9 1 84.82 98.5421 65.55 - 95 132.214 1391 9 0 84.8198 98.5417 64.15 - 95 124.982 1323 8 1 84.8144 98.5263 35.55 - 95 135.012 1391 8 0 84.8146 98.5257 34.15 - 95 107.953 1323 7 1 84.8192 98.5155 5.55 - 95 163.663 1391 7 0 84.8199 98.5148 4.15 - 95 92.8078 1323 6 1 84.8329 98.5048 -24.45 - 95 111.3 1391 6 0 84.8337 98.5041 -25.85 - 95 370.848 1324 5 1 84.8505 98.4872 -54.45 - 95 104.562 1391 5 0 84.8515 98.4865 -55.85 - 95 119.545 1324 4 1 84.8724 98.4726 -84.45 - 95 115.88 1391 4 0 84.8734 98.4723 -85.85 - 95 114.106 1324 3 1 84.8915 98.4681 -114.45 - 95 96.624 1391 3 0 84.8925 98.4676 -115.85 - 95 167.447 1324 2 1 84.911 98.456 -144.45 - 95 104.777 1391 2 0 84.9119 98.4558 -145.85 - 95 107.239 1324 1 1 84.9295 98.4514 -174.45 - 95 114.888 1391 1 0 84.9301 98.4524 -175.85 - 95 142.272 1324 0 1 84.9411 98.4703 -204.45 - 95 100.681 1391 0 0 84.9418 98.4716 -205.85 -Number of digits in this event = 9 -Using G4ParticleGun ... -6.23037 LIN -proton +Number of tracker hits in this event: 26 + 95 103.837 650 8 1 -50.0215 126.74 35.55 + 95 111.346 1532 8 0 -50.0213 126.741 34.15 + 95 126.401 650 7 1 -50.0206 126.758 5.55 + 95 117.355 1533 7 0 -50.02 126.758 4.15 + 95 126.334 650 6 1 -50.0027 126.763 -24.45 + 95 105.949 1533 6 0 -50.0012 126.764 -25.85 + 95 115.282 650 5 1 -49.9706 126.783 -54.45 + 95 107.72 1533 5 0 -49.9692 126.784 -55.85 + 95 106.321 650 4 1 -49.9388 126.791 -84.45 + 95 295.237 1533 4 0 -49.9357 126.791 -85.85 + 95 101.862 650 3 1 -49.8776 126.79 -114.45 + 95 138.685 1533 3 0 -49.8748 126.789 -115.85 + 95 103.172 651 2 1 -49.8154 126.776 -144.45 + 95 124.329 1533 2 0 -49.8136 126.775 -145.85 + 95 149.126 651 1 1 -49.7776 126.749 -174.45 + 95 178.352 1532 1 0 -49.7755 126.749 -175.85 + 95 298.886 651 0 1 -49.7318 126.735 -204.45 + 95 180.717 1532 0 0 -49.7296 126.735 -205.85 + 95 293.396 653 0 1 -49.4055 126.944 -204.85 + 95 129.882 652 0 1 -49.65 126.257 -204.723 + 95 28.7265 654 0 1 -49.25 126.186 -204.498 + 95 9.59858 1533 1 0 -49.757 126.75 -175.858 + 95 10 1528 1 0 -51.9187 125.783 -175.85 + 95 0.533054 635 1 1 -53.0489 126.743 -174.85 + 95 7.98882 634 1 1 -53.05 126.744 -174.849 + 95 60.7752 1560 1 0 -49.8556 132.283 -175.85 +Number of digits in this event: 12 +Using G4ParticleGun... +Particle energy: 5.50915 LIN +Particle: proton Event: 96 -Number of tracker hits in this event = 163 - 96 120.298 739 11 1 -32.0776 43.4834 125.55 - 96 119.054 1117 11 0 -32.0779 43.4836 124.15 - 96 127.322 739 10 1 -32.0793 43.4911 95.55 - 96 180.796 1117 10 0 -32.0785 43.493 94.15 - 96 144.165 739 9 1 -32.0629 43.5299 65.55 - 96 152.261 1117 9 0 -32.0637 43.5332 64.15 - 96 121.33 739 8 1 -32.0713 43.6018 35.55 - 96 154.018 1117 8 0 -32.0718 43.6079 34.15 - 96 12.4866 1493 9 0 -44.3275 118.799 63.75 - 96 22.4895 173 10 0 -149.253 -145.35 94.0262 - 96 2882.36 740 7 1 -32.0326 43.6856 5.55 - 96 3162.97 741 7 1 -31.85 43.5003 5.48572 - 96 3539.09 742 7 1 -31.65 43.3023 5.4125 - 96 1148.11 743 7 1 -31.45 43.1042 5.33907 - 96 842.399 744 7 1 -31.25 42.9069 5.25915 - 96 342.136 745 7 1 -31.05 42.7087 5.18005 - 96 13.9045 1101 7 0 -28.51 40.2526 4.15 - 96 814.472 1100 7 0 -28.5073 40.25 4.14892 - 96 825.442 1099 7 0 -28.3007 40.05 4.06471 - 96 836.57 1098 7 0 -28.0921 39.85 3.97647 - 96 912.467 1097 7 0 -27.876 39.65 3.88661 - 96 642.425 1096 7 0 -27.661 39.45 3.80397 - 96 424.788 1103 6 1 40.8122 -25.7156 -24.45 - 96 2503.35 1104 6 1 40.85 -25.7428 -24.4752 - 96 3593.46 1105 6 1 41.05 -25.8798 -24.5964 - 96 3292.21 1106 6 1 41.25 -26.0288 -24.7126 - 96 605.535 739 7 1 -32.0561 43.7543 5.55 - 96 1599.12 1126 7 0 -29.8741 45.3676 4.15 - 96 4391.88 1127 7 0 -29.7607 45.45 4.08032 - 96 7513.68 1128 7 0 -29.5021 45.65 3.93448 - 96 1529.44 1129 7 0 -29.2609 45.85 3.79009 - 96 800.449 1276 8 0 -85.6883 75.3451 33.75 - 96 1550.16 1277 8 0 -85.8665 75.45 33.8436 - 96 1315.47 1278 8 0 -86.2012 75.65 34.0132 - 96 470.175 458 8 1 -88.3501 76.8626 35.15 - 96 974.884 457 8 1 -88.45 76.9188 35.203 - 96 1108.46 456 8 1 -88.65 77.0332 35.3074 - 96 1156.83 455 8 1 -88.85 77.1481 35.4159 - 96 209.564 454 8 1 -89.05 77.2565 35.5234 - 96 4196.09 1316 9 0 -119.829 83.3555 63.75 - 96 198.866 1116 7 0 -32.2528 43.3884 4.15 - 96 122.271 721 6 1 -35.7201 36.4099 -24.45 - 96 62.8502 1080 6 0 -35.8856 36.0702 -25.85 - 96 132.138 1079 6 0 -35.8954 36.05 -25.9333 - 96 166.722 703 5 1 -39.2573 29.0934 -54.45 - 96 119.335 1043 5 0 -39.4216 28.7533 -55.85 - 96 116.263 686 4 1 -42.7691 21.7622 -84.45 - 96 259.513 1006 4 0 -42.9383 21.4075 -85.85 - 96 146.355 668 3 1 -46.3905 14.1449 -114.45 - 96 109.39 968 3 0 -46.5724 13.7811 -115.85 - 96 105.109 648 2 1 -50.2779 6.34879 -144.45 - 96 124.909 929 2 0 -50.4566 5.99733 -145.85 - 96 132.924 629 1 1 -54.0838 -1.13516 -174.45 - 96 117.299 892 1 0 -54.2668 -1.48427 -175.85 - 96 151.898 610 0 1 -57.9953 -8.6182 -204.45 - 96 168.716 855 0 0 -58.1716 -8.96785 -205.85 - 96 16.174 854 0 0 -58.213 -9.05 -206.179 - 96 130.982 803 6 1 -19.3166 59.5927 -24.45 - 96 254.633 804 6 1 -19.25 59.6775 -24.611 - 96 114.613 1201 6 0 -18.7434 60.3325 -25.85 - 96 297.569 1202 6 0 -18.6526 60.45 -26.0723 - 96 61.7882 864 5 1 -7.12282 75.229 -54.45 - 96 53.8081 865 5 1 -7.05 75.3355 -54.6424 - 96 16.9396 1279 5 0 -6.58919 76.0172 -55.85 - 96 100.766 1280 5 0 -6.56712 76.05 -55.9079 - 96 100.751 921 4 1 4.43754 92.0503 -84.45 - 96 175.905 922 4 1 4.45 92.0665 -84.4788 - 96 75.9471 1363 4 0 5.04923 92.8442 -85.85 - 96 77.8629 1364 4 0 5.13066 92.95 -86.036 - 96 195.848 988 3 1 17.7638 109.388 -114.45 - 96 254.198 989 3 1 17.85 109.503 -114.664 - 96 119.469 1450 3 0 18.3287 110.158 -115.85 - 96 16.5799 1451 3 0 18.4672 110.35 -116.203 - 96 146.524 1045 2 1 29.1127 125.358 -144.45 - 96 21.6689 1046 2 1 29.25 125.537 -144.787 - 96 27.3327 1529 2 0 29.6795 126.105 -145.85 - 96 120.469 1530 2 0 29.7135 126.15 -145.934 - 96 203.447 1105 1 1 41.1116 141.271 -174.45 - 96 110.88 1106 1 1 41.25 141.437 -174.756 - 96 83.5624 1609 1 0 41.7324 142.022 -175.85 - 96 64.4403 1610 1 0 41.8363 142.15 -176.093 - 96 133.593 1167 0 1 53.4767 157.273 -204.451 - 96 112.246 1689 0 0 54.0127 157.997 -205.85 - 96 34.9798 1690 0 0 54.1255 158.15 -206.148 - 96 108.642 853 5 1 -9.40386 75.1256 -54.45 - 96 38.1559 854 5 1 -9.25 75.242 -54.7892 - 96 28.8102 1277 5 0 -8.77635 75.6079 -55.85 - 96 88.2762 1278 5 0 -8.72142 75.65 -55.9729 - 96 64.0405 1327 4 0 4.95694 85.5773 -85.85 - 96 73.3443 1328 4 0 5.04825 85.65 -86.0504 - 96 102.344 1386 3 0 17.8312 97.3905 -115.85 - 96 31.535 1387 3 0 17.806 97.5503 -116.144 - 96 124.443 970 2 1 14.1975 113.259 -144.45 - 96 52.2085 1469 2 0 13.8913 114.062 -145.85 - 96 69.7532 1470 2 0 13.8576 114.15 -146.004 - 96 10.4816 934 1 1 6.8736 129.328 -174.45 - 96 130.12 933 1 1 6.85 129.35 -174.5 - 96 88.1578 1548 1 0 6.21989 129.891 -175.85 - 96 181.294 1549 1 0 6.15339 129.95 -175.999 - 96 291.642 869 0 1 -6.06415 140.623 -204.45 - 96 248.214 868 0 1 -6.25014 140.798 -204.804 - 96 47.5748 1605 0 0 -6.81355 141.277 -205.85 - 96 115.342 1606 0 0 -6.8969 141.35 -206.004 - 96 96.9925 1090 1 1 38.05 167.749 -174.58 - 96 140.629 867 0 1 -6.45 140.555 -204.552 - 96 197.716 1118 7 0 -32.3233 43.7723 4.15 - 96 16.1538 714 6 1 -37.2426 44.5854 -24.45 - 96 176.098 713 6 1 -37.25 44.5866 -24.4928 - 96 99.5813 1122 6 0 -37.4794 44.6286 -25.85 - 96 211.023 688 5 1 -42.3246 45.5225 -54.45 - 96 103.231 1127 5 0 -42.551 45.5759 -55.85 - 96 134.681 664 4 1 -47.0819 46.6983 -84.45 - 96 95.7517 1133 4 0 -47.2948 46.7423 -85.85 - 96 122.917 641 3 1 -51.7076 47.5801 -114.45 - 96 130.448 1137 3 0 -51.9164 47.6085 -115.85 - 96 90.4159 618 2 1 -56.2607 48.1939 -144.45 - 96 111.26 1140 2 0 -56.4718 48.2308 -145.85 - 96 127.85 596 1 1 -60.7874 49.0315 -174.45 - 96 8.63062 595 1 1 -60.85 49.0439 -174.833 - 96 107.771 1145 1 0 -61.0162 49.0767 -175.85 - 96 138.575 571 0 1 -65.6909 50.0175 -204.45 - 96 109.388 1150 0 0 -65.922 50.0688 -205.85 - 96 122.027 1131 0 0 -49.5338 46.2811 -206.25 - 96 166.721 1119 7 0 -32.0104 43.9627 4.15 - 96 100.285 747 6 1 -30.6117 48.6272 -24.45 - 96 8.9595 1143 6 0 -30.5419 48.8433 -25.85 - 96 116.764 1144 6 0 -30.5397 48.85 -25.8936 - 96 110.788 754 5 1 -29.07 53.3209 -54.45 - 96 108.018 1167 5 0 -29.0035 53.5287 -55.85 - 96 147.947 761 4 1 -27.7103 57.7034 -84.45 - 96 135.136 1189 4 0 -27.6333 57.906 -85.85 - 96 161.969 770 3 1 -26.0273 61.9824 -114.45 - 96 157.168 1210 3 0 -25.9547 62.1826 -115.85 - 96 166.366 778 2 1 -24.4059 66.2579 -144.45 - 96 19.8539 1231 2 0 -24.3321 66.442 -145.85 - 96 96.2124 1232 2 0 -24.3289 66.45 -145.911 - 96 120.664 785 1 1 -22.8748 70.171 -174.45 - 96 3.59626 786 1 1 -22.85 70.2211 -174.837 - 96 319.741 1251 1 0 -22.7846 70.3535 -175.85 - 96 99.9709 795 0 1 -20.9179 74.1316 -204.45 - 96 129.033 1271 0 0 -20.828 74.311 -205.85 - 96 55.351 777 1 1 -24.65 10.9278 -174.78 - 96 41.3206 690 8 0 74.2549 -41.85 34.0068 - 96 3.22984 594 1 1 -61.05 132.083 -174.817 - 96 95.2332 733 1 1 -33.4136 116.599 -174.495 - 96 207.925 1252 1 0 -22.9453 70.45 -176.075 - 96 174.362 1117 7 0 -32.6094 43.506 4.15 - 96 117.515 727 6 1 -34.5084 39.9832 -24.45 - 96 246.28 1098 6 0 -34.6208 39.8056 -25.85 - 96 117.658 715 5 1 -36.9154 36.172 -54.45 - 96 112.6 1079 5 0 -37.027 35.9924 -55.85 - 96 126.679 703 4 1 -39.3039 32.3342 -84.45 - 96 107.42 1060 4 0 -39.4158 32.1547 -85.85 - 96 110.103 691 3 1 -41.7326 28.4923 -114.45 - 96 78.1149 1041 3 0 -41.8355 28.2911 -115.85 - 96 38.6959 1040 3 0 -41.8566 28.25 -116.136 - 96 325.266 680 2 1 -43.9451 24.1841 -144.45 - 96 108.077 1019 2 0 -44.0493 23.9784 -145.85 - 96 106.393 669 1 1 -46.195 19.7639 -174.45 - 96 110.438 997 1 0 -46.3005 19.5545 -175.85 - 96 116.922 657 0 1 -48.4548 15.2643 -204.45 - 96 6.07413 975 0 0 -48.5606 15.055 -205.85 - 96 130.914 974 0 0 -48.5631 15.05 -205.884 -Number of digits in this event = 90 -Using G4ParticleGun ... -5.7233 LIN -proton +Number of tracker hits in this event: 40 + 96 182.889 1110 11 1 42.1006 -48.2137 125.55 + 96 118.957 659 11 0 42.0996 -48.2136 124.15 + 96 216.567 1110 10 1 42.0773 -48.2098 95.55 + 96 103.223 659 10 0 42.0765 -48.2086 94.15 + 96 238.061 1110 9 1 42.063 -48.1799 65.55 + 96 206.193 659 9 0 42.0618 -48.1783 64.15 + 96 100.158 1109 8 1 42.0354 -48.1451 35.55 + 96 103.535 659 8 0 42.0342 -48.1435 34.15 + 96 123.37 1109 7 1 42.0007 -48.1074 5.55 + 96 112.35 659 7 0 42.0003 -48.1053 4.15 + 96 108.403 1109 6 1 41.9962 -48.0613 -24.45 + 96 144.816 659 6 0 41.9952 -48.0599 -25.85 + 96 171.879 1109 5 1 41.9723 -48.0345 -54.45 + 96 111.682 660 5 0 41.9707 -48.0337 -55.85 + 96 90.1282 1109 4 1 41.9397 -48.0173 -84.45 + 96 192.019 660 4 0 41.9383 -48.0187 -85.85 + 96 128.7 1109 3 1 41.9137 -48.05 -114.45 + 96 109.378 659 3 0 41.9122 -48.0515 -115.85 + 96 122.387 1109 2 1 41.8815 -48.0882 -144.45 + 96 97.2553 659 2 0 41.8804 -48.0909 -145.85 + 96 130.363 1109 1 1 41.8592 -48.1431 -174.45 + 96 128.496 659 1 0 41.8581 -48.146 -175.85 + 96 217.974 1108 0 1 41.8349 -48.2027 -204.45 + 96 110.911 659 0 0 41.8338 -48.2063 -205.85 + 96 64.7676 663 0 0 41.717 -47.4188 -205.85 + 96 59.4238 664 0 0 41.7836 -47.25 -206.052 + 96 34.2752 665 0 0 41.8631 -47.05 -206.187 + 96 109.077 843 0 0 58.2811 -11.3539 -206.25 + 96 268.895 844 0 0 58.3811 -11.25 -206.154 + 96 33.4503 1200 0 1 60.1292 -11.7081 -204.849 + 96 61.329 1201 0 1 60.25 -11.7266 -204.767 + 96 113.323 1202 0 1 60.45 -11.6939 -204.662 + 96 46.6468 1203 0 1 60.6502 -11.6507 -204.583 + 96 61.4739 1204 0 1 60.85 -11.5803 -204.539 + 96 53.5148 1205 0 1 61.0502 -11.4863 -204.479 + 96 221.64 1206 0 1 61.2502 -11.3388 -204.484 + 96 410.724 1207 0 1 61.4501 -10.9074 -204.535 + 96 82.1731 661 11 0 42.0337 -47.7262 124.15 + 96 555.56 662 11 0 42.0437 -47.6499 124.051 + 96 14.3653 663 11 0 42.721 -47.45 123.96 +Number of digits in this event: 18 +Using G4ParticleGun... +Particle energy: 3.90724 LIN +Particle: proton Event: 97 -Number of tracker hits in this event = 32 - 97 154.319 1081 11 1 36.4477 -21.794 125.55 - 97 160.201 791 11 0 36.4483 -21.7936 124.15 - 97 94.3726 1082 10 1 36.4662 -21.7872 95.55 - 97 120.295 791 10 0 36.4664 -21.7886 94.15 - 97 126.558 1082 9 1 36.4685 -21.8156 65.55 - 97 88.144 791 9 0 36.4681 -21.8166 64.15 - 97 104.378 1082 8 1 36.4572 -21.8403 35.55 - 97 202.303 791 8 0 36.4565 -21.8409 34.15 - 97 127.52 1081 7 1 36.445 -21.864 5.55 - 97 157.918 790 7 0 36.4436 -21.8646 4.15 - 97 102.144 1081 6 1 36.42 -21.8751 -24.45 - 97 121.288 790 6 0 36.4188 -21.8736 -25.85 - 97 225.502 1081 5 1 36.3922 -21.8454 -54.45 - 97 100.352 791 5 0 36.3926 -21.844 -55.85 - 97 124.511 1081 4 1 36.4003 -21.8184 -84.45 - 97 103.968 791 4 0 36.4013 -21.8175 -85.85 - 97 110.242 1081 3 1 36.4046 -21.8161 -114.45 - 97 104.051 791 3 0 36.4057 -21.8154 -115.85 - 97 145.272 1081 2 1 36.4241 -21.7992 -144.45 - 97 108.476 791 2 0 36.4255 -21.7968 -145.85 - 97 92.5037 1082 1 1 36.4552 -21.7426 -174.45 - 97 134.295 791 1 0 36.4573 -21.7417 -175.85 - 97 104.65 1082 0 1 36.4986 -21.7236 -204.45 - 97 113.602 791 0 0 36.5008 -21.7229 -205.85 - 97 3443.94 730 0 0 52.6095 -33.8505 -206.25 - 97 254.654 729 0 0 52.8743 -34.05 -205.872 - 97 265.078 1167 0 1 53.6335 -34.6011 -204.85 - 97 3643.13 1168 0 1 53.65 -34.6131 -204.828 - 97 2079.85 1169 0 1 53.85 -34.7687 -204.555 - 97 55.7724 950 4 0 80.049 10.0926 -86.25 - 97 31.248 1301 4 1 80.4282 10.0101 -84.85 - 97 100.206 1302 4 1 80.45 9.97738 -84.7456 -Number of digits in this event = 20 -Using G4ParticleGun ... -2.7799 LIN -proton +Number of tracker hits in this event: 194 + 97 103.685 1415 10 1 103.229 4.17642 95.55 + 97 120.728 920 10 0 103.232 4.17714 94.15 + 97 283.856 1415 9 1 103.282 4.18337 65.55 + 97 114.343 920 9 0 103.284 4.18392 64.15 + 97 146.38 1415 8 1 103.336 4.19332 35.55 + 97 166.149 920 8 0 103.339 4.19326 34.15 + 97 107.601 1416 7 1 103.403 4.1934 5.55 + 97 134.404 920 7 0 103.404 4.19171 4.15 + 97 115.152 1416 6 1 103.425 4.15654 -24.45 + 97 150.417 920 6 0 103.425 4.15489 -25.85 + 97 118.577 1416 5 1 103.42 4.12434 -54.45 + 97 113.03 920 5 0 103.419 4.12327 -55.85 + 97 16685.5 1416 4 1 103.402 4.09648 -84.45 + 97 17653.6 1415 4 1 103.35 3.98009 -84.7316 + 97 6038.37 1414 4 1 103.15 3.53457 -84.5537 + 97 9121.68 1412 4 1 102.681 2.43048 -84.45 + 97 2020.35 911 4 0 102.88 2.38535 -85.85 + 97 1788.1 1434 3 1 106.978 1.86448 -114.45 + 97 2246.02 1433 3 1 106.95 1.83722 -114.642 + 97 5827.56 908 3 0 106.729 1.71527 -115.85 + 97 5217.48 1413 4 1 102.95 3.2979 -84.7458 + 97 6096.07 1411 4 1 102.55 2.57241 -84.7239 + 97 1686.56 1410 4 1 102.35 2.20616 -84.7118 + 97 1579.58 1409 4 1 102.15 1.8388 -84.6949 + 97 1539.92 1408 4 1 101.95 1.46569 -84.68 + 97 1594.31 1407 4 1 101.75 1.0866 -84.6673 + 97 1115.08 1406 4 1 101.55 0.706096 -84.6547 + 97 706.79 1405 4 1 101.35 0.329464 -84.6453 + 97 1111.44 1404 4 1 101.15 -0.0571832 -84.6329 + 97 1220.16 1403 4 1 100.95 -0.443606 -84.6238 + 97 1126.85 1402 4 1 100.75 -0.815265 -84.61 + 97 1081.98 1401 4 1 100.55 -1.18326 -84.6049 + 97 1021.31 1400 4 1 100.35 -1.55272 -84.6023 + 97 1154.69 1399 4 1 100.15 -1.92537 -84.5958 + 97 1289.75 1398 4 1 99.95 -2.30217 -84.5932 + 97 1197.14 1397 4 1 99.75 -2.67532 -84.5912 + 97 1240.12 1396 4 1 99.55 -3.06204 -84.5819 + 97 1320.76 1395 4 1 99.35 -3.45847 -84.5713 + 97 1280.28 1394 4 1 99.15 -3.84299 -84.5694 + 97 1524.73 1393 4 1 98.95 -4.23665 -84.5704 + 97 1424.14 1392 4 1 98.75 -4.63267 -84.5795 + 97 1727.23 1391 4 1 98.55 -5.04026 -84.5891 + 97 1650.81 1390 4 1 98.35 -5.45743 -84.6011 + 97 1540.08 1389 4 1 98.15 -5.86869 -84.6066 + 97 1932.24 1388 4 1 97.95 -6.28069 -84.6123 + 97 1921.02 1387 4 1 97.75 -6.70643 -84.616 + 97 2193.53 1386 4 1 97.55 -7.13558 -84.6204 + 97 2358.03 1385 4 1 97.35 -7.55214 -84.6233 + 97 2873.64 1384 4 1 97.15 -7.97154 -84.6252 + 97 3648.97 1383 4 1 96.95 -8.44635 -84.6134 + 97 5680.56 1382 4 1 96.75 -8.96019 -84.6085 + 97 5352.26 1381 4 1 96.55 -9.52057 -84.616 + 97 2330.7 969 5 0 96.1595 13.9876 -56.25 + 97 4116.54 970 5 0 96.1171 14.05 -56.0827 + 97 5942.37 1378 5 1 95.816 14.4944 -54.85 + 97 581.588 920 4 0 103.807 4.23401 -85.85 + 97 1216.31 921 4 0 103.854 4.25 -85.9739 + 97 1023.57 1469 3 1 114.054 8.04519 -114.45 + 97 1058.06 1470 3 1 114.15 8.07736 -114.66 + 97 2129.1 941 3 0 114.691 8.26565 -115.85 + 97 1873.73 1538 2 1 127.84 12.8978 -144.45 + 97 1044.97 1539 2 1 127.95 12.9349 -144.706 + 97 3288.38 965 2 0 128.488 13.1121 -145.85 + 97 62.6915 895 4 0 101.917 -1.03797 -85.85 + 97 1106.24 894 4 0 101.913 -1.05 -85.8525 + 97 1115.05 893 4 0 101.856 -1.25 -85.8956 + 97 1033.76 892 4 0 101.796 -1.45 -85.9365 + 97 1344.76 891 4 0 101.742 -1.65 -85.9756 + 97 1470 890 4 0 101.688 -1.85 -86.011 + 97 1599.13 889 4 0 101.632 -2.05 -86.0493 + 97 1725.43 888 4 0 101.571 -2.25 -86.0876 + 97 2140.25 887 4 0 101.507 -2.45 -86.1338 + 97 2764.25 886 4 0 101.449 -2.65 -86.1841 + 97 985.284 885 4 0 101.391 -2.85 -86.2373 + 97 631.966 441 5 0 -4.24978 -91.8299 -56.25 + 97 741.067 440 5 0 -4.38563 -91.95 -56.2141 + 97 781.324 439 5 0 -4.61075 -92.15 -56.155 + 97 835.177 438 5 0 -4.83733 -92.35 -56.0962 + 97 837.776 437 5 0 -5.0588 -92.55 -56.041 + 97 860.383 436 5 0 -5.27744 -92.75 -55.9814 + 97 727.398 435 5 0 -5.50067 -92.95 -55.9244 + 97 258.906 434 5 0 -5.72057 -93.15 -55.8706 + 97 86.7767 851 5 1 -9.82576 -96.8108 -54.85 + 97 703.626 850 5 1 -9.85 -96.8324 -54.844 + 97 779.315 849 5 1 -10.05 -97.0119 -54.7937 + 97 932.749 848 5 1 -10.25 -97.1954 -54.7468 + 97 773.531 847 5 1 -10.45 -97.376 -54.699 + 97 787.417 846 5 1 -10.65 -97.5599 -54.6514 + 97 794.806 845 5 1 -10.85 -97.7519 -54.6055 + 97 818.921 844 5 1 -11.05 -97.9432 -54.5609 + 97 974.835 843 5 1 -11.25 -98.133 -54.5157 + 97 402.481 842 5 1 -11.45 -98.3242 -54.4721 + 97 47.6411 838 5 1 -12.448 -99.2872 -54.45 + 97 3026.8 837 5 1 -12.45 -99.2894 -54.4507 + 97 890.495 589 5 0 6.26369 -62.1142 -56.25 + 97 1381.61 588 5 0 6.06342 -62.25 -56.1906 + 97 1445.2 587 5 0 5.75527 -62.45 -56.0979 + 97 1696.27 586 5 0 5.43042 -62.65 -55.9974 + 97 762.885 585 5 0 5.1076 -62.85 -55.8977 + 97 55.3929 908 5 1 1.66273 -64.9929 -54.85 + 97 972.647 907 5 1 1.65 -65.0008 -54.8461 + 97 1060.53 906 5 1 1.45 -65.1231 -54.785 + 97 1154.82 905 5 1 1.25 -65.2474 -54.7284 + 97 988.595 904 5 1 1.05 -65.3684 -54.6719 + 97 1261.87 903 5 1 0.85 -65.4906 -54.6154 + 97 1332.95 902 5 1 0.65 -65.617 -54.5584 + 97 1170.54 901 5 1 0.45 -65.7397 -54.5032 + 97 1599.94 915 4 0 104.263 3.18492 -85.85 + 97 2415.38 914 4 0 104.39 3.05 -86.0048 + 97 241.533 913 4 0 104.576 2.85 -86.2313 + 97 263.765 1552 5 1 130.743 135.591 -54.7241 + 97 4578.77 927 4 0 104.216 5.47879 -85.85 + 97 5457.79 928 4 0 104.317 5.65 -85.9827 + 97 4321.08 929 4 0 104.435 5.85 -86.1359 + 97 161.484 931 4 0 104.353 6.32868 -85.85 + 97 224.09 932 4 0 104.404 6.45 -85.9083 + 97 243.084 933 4 0 104.488 6.65 -86.0038 + 97 299.65 934 4 0 104.572 6.85 -86.0985 + 97 159.608 935 4 0 104.654 7.05 -86.1932 + 97 330.074 1541 3 1 128.457 65.3165 -114.45 + 97 607.863 1542 3 1 128.55 65.5531 -114.561 + 97 127.024 1543 3 1 128.75 66.0567 -114.798 + 97 214.057 1241 3 0 129.627 68.2701 -115.85 + 97 207.002 1242 3 0 129.699 68.45 -115.935 + 97 254.32 1243 3 0 129.778 68.65 -116.03 + 97 243.022 1244 3 0 129.858 68.85 -116.125 + 97 58.8756 1245 3 0 129.938 69.05 -116.219 + 97 460.581 1668 2 1 153.801 128.285 -144.45 + 97 582.662 1669 2 1 153.95 128.664 -144.641 + 97 125.11 1554 2 0 154.867 131.022 -145.85 + 97 245.518 1555 2 0 154.917 131.15 -145.915 + 97 375.592 1556 2 0 154.995 131.35 -146.018 + 97 311.712 1557 2 0 155.074 131.55 -146.12 + 97 63.208 1558 2 0 155.153 131.75 -146.222 + 97 207.585 38 6 0 -93.7891 -172.461 -26.25 + 97 287.84 37 6 0 -93.8882 -172.55 -26.2204 + 97 344.514 36 6 0 -94.1117 -172.75 -26.1541 + 97 99.0642 35 6 0 -94.3327 -172.95 -26.0887 + 97 138.622 34 6 0 -94.5526 -173.15 -26.0241 + 97 116.532 33 6 0 -94.7752 -173.35 -25.9591 + 97 41.261 32 6 0 -95.0011 -173.55 -25.8911 + 97 75.0937 408 6 1 -98.3879 -176.575 -24.85 + 97 93.6662 407 6 1 -98.55 -176.719 -24.8002 + 97 164.02 406 6 1 -98.75 -176.898 -24.7379 + 97 161.093 405 6 1 -98.95 -177.087 -24.6649 + 97 191.634 404 6 1 -99.15 -177.275 -24.5913 + 97 362.935 403 6 1 -99.35 -177.461 -24.5188 + 97 246.04 402 6 1 -99.55 -177.483 -24.6243 + 97 403.505 401 6 1 -99.75 -177.633 -24.5938 + 97 710.333 400 6 1 -99.9502 -177.778 -24.567 + 97 640.884 399 6 1 -100.15 -177.92 -24.5426 + 97 245.506 398 6 1 -100.35 -178.063 -24.5178 + 97 292.507 397 6 1 -100.55 -178.207 -24.4918 + 97 124.499 396 6 1 -100.75 -178.35 -24.4672 + 97 0.134836 61 6 0 -94.3616 -167.949 -26.25 + 97 84.7588 60 6 0 -94.3628 -167.95 -26.2497 + 97 76.4608 59 6 0 -94.5973 -168.15 -26.1805 + 97 77.5191 58 6 0 -94.829 -168.35 -26.112 + 97 137.02 57 6 0 -95.0653 -168.55 -26.0471 + 97 104.23 56 6 0 -95.3066 -168.75 -25.9797 + 97 101.582 55 6 0 -95.5469 -168.95 -25.9134 + 97 16.124 181 8 0 -142.045 -143.95 33.8909 + 97 235.566 395 6 1 -101.139 -173.613 -24.45 + 97 1.30599 392 6 1 -101.746 -171.868 -24.8499 + 97 84.6655 391 6 1 -101.75 -171.865 -24.8469 + 97 30.4829 379 6 1 -104.331 -169.883 -24.85 + 97 30.508 66 6 0 -104.643 -166.802 -25.85 + 97 75.7395 373 6 1 -105.537 -163.097 -24.8499 + 97 59.3945 394 6 1 -101.15 -173.484 -24.5482 + 97 79.7498 15 6 0 -83.4321 -177.073 -26.25 + 97 239.873 16 6 0 -83.3824 -176.95 -26.1394 + 97 78.2975 917 4 0 103.509 3.50737 -85.85 + 97 288.305 916 4 0 103.519 3.45 -85.9545 + 97 300.873 1430 3 1 106.316 -12.2265 -114.45 + 97 19.2986 1431 3 1 106.35 -12.4261 -114.828 + 97 129.176 835 3 0 106.442 -12.9637 -115.85 + 97 186.797 834 3 0 106.456 -13.05 -116.014 + 97 398.589 1444 2 1 109.094 -27.9304 -144.45 + 97 9.78315 757 2 0 109.215 -28.6414 -145.85 + 97 552.091 756 2 0 109.216 -28.65 -145.867 + 97 423.212 1458 1 1 111.825 -43.162 -174.45 + 97 377.187 680 1 0 111.952 -43.8755 -175.85 + 97 65.0714 679 1 0 111.983 -44.05 -176.192 + 97 409.519 1472 0 1 114.592 -58.5632 -204.45 + 97 32.6378 604 0 0 114.768 -59.2269 -205.85 + 97 349.549 603 0 0 114.774 -59.25 -205.899 + 97 142.375 548 0 0 134.07 -70.4098 -206.25 + 97 33.0844 547 0 0 134.083 -70.45 -206.232 + 97 187.964 1416 9 1 103.35 4.13687 65.4634 + 97 384.346 1417 9 1 103.55 3.94943 65.2809 + 97 146.193 1418 9 1 103.75 3.75302 65.3704 + 97 71.4843 1419 9 1 103.95 3.52911 65.2627 + 97 172.29 917 9 0 104.005 3.45251 64.1496 + 97 11.3375 916 9 0 104.026 3.44994 64.1016 +Number of digits in this event: 158 +Using G4ParticleGun... +Particle energy: 3.74076 LIN +Particle: proton Event: 98 -Number of tracker hits in this event = 21 - 98 128.77 878 8 1 -4.37153 138.524 35.55 - 98 111.787 1591 8 0 -4.37484 138.525 34.15 - 98 134.817 878 7 1 -4.4425 138.561 5.55 - 98 104.418 1592 7 0 -4.4471 138.56 4.15 - 98 112.689 877 6 1 -4.54816 138.537 -24.45 - 98 105.827 1591 6 0 -4.55396 138.536 -25.85 - 98 109.749 876 5 1 -4.65709 138.514 -54.45 - 98 112.9 1591 5 0 -4.66027 138.513 -55.85 - 98 129.769 876 4 1 -4.71406 138.492 -84.45 - 98 122.42 1591 4 0 -4.71662 138.49 -85.85 - 98 161.068 876 3 1 -4.7642 138.445 -114.45 - 98 115.803 1591 3 0 -4.76574 138.442 -115.85 - 98 121.619 876 2 1 -4.7956 138.378 -144.45 - 98 113.393 1591 2 0 -4.79589 138.376 -145.85 - 98 97.9828 876 1 1 -4.81025 138.338 -174.45 - 98 219.345 1590 1 0 -4.81172 138.338 -175.85 - 98 129.933 876 0 1 -4.84928 138.334 -204.45 - 98 132.421 1590 0 0 -4.85068 138.333 -205.85 - 98 51.4628 1140 2 0 37.2676 48.2355 -146.25 - 98 235.967 1063 10 1 32.7119 -67.4191 95.15 - 98 104.682 1141 2 0 37.2776 48.25 -146.168 -Number of digits in this event = 13 -Using G4ParticleGun ... -8.24125 LIN -proton +Number of tracker hits in this event: 43 + 98 109.022 1269 11 1 74.0152 35.0246 125.55 + 98 91.3399 1074 11 0 74.0151 35.0252 124.15 + 98 120.75 1269 10 1 74.0168 35.0422 95.55 + 98 135.266 1074 10 0 74.0178 35.0417 94.15 + 98 171.153 1269 9 1 74.0373 35.0249 65.55 + 98 118.092 1074 9 0 74.0384 35.025 64.15 + 98 108.246 1270 8 1 74.0634 35.0278 35.55 + 98 135.33 1074 8 0 74.0668 35.0311 34.15 + 98 110.386 1270 7 1 74.1259 35.1017 5.55 + 98 99.0871 1075 7 0 74.1308 35.1042 4.15 + 98 252.073 1270 6 1 74.2262 35.1583 -24.45 + 98 228.601 1075 6 0 74.2302 35.161 -25.85 + 98 121.643 1271 5 1 74.3116 35.2227 -54.45 + 98 94.3973 1075 5 0 74.315 35.225 -55.85 + 98 131.602 1271 4 1 74.3873 35.2685 -84.45 + 98 392.383 1076 4 0 74.3926 35.2721 -85.85 + 98 128.777 1272 3 1 74.5063 35.3484 -114.45 + 98 180.542 1076 3 0 74.5124 35.3536 -115.85 + 98 106.354 1272 2 1 74.6414 35.4598 -144.45 + 98 127.5 1077 2 0 74.6477 35.4648 -145.85 + 98 136.349 1273 1 1 74.7829 35.5651 -174.45 + 98 127.255 1077 1 0 74.7881 35.5707 -175.85 + 98 132.437 1274 0 1 74.899 35.6853 -204.45 + 98 124.006 1078 0 0 74.9039 35.6914 -205.85 + 98 113.204 1246 5 1 69.2693 31.5642 -54.4501 + 98 43.3057 1247 5 1 69.45 31.734 -54.7888 + 98 290.446 1063 5 0 70.0767 32.6547 -55.85 + 98 37.6802 962 5 0 89.3927 12.5171 -56.2497 + 98 105.617 961 5 0 89.3576 12.45 -56.1443 + 98 9.3957 960 5 0 89.2771 12.2499 -55.8857 + 98 214.709 1345 5 1 89.1583 11.5055 -54.85 + 98 137.133 1346 5 1 89.25 10.7758 -54.5266 + 98 61.7434 1347 5 1 89.45 10.4816 -54.5544 + 98 71.5737 1348 5 1 89.651 10.4124 -54.6573 + 98 106.832 1349 5 1 89.85 10.3496 -54.7253 + 98 68.4137 1350 5 1 90.15 10.2425 -54.7995 + 98 53.0231 951 5 0 93.8738 10.4048 -55.85 + 98 0.0033705 1392 5 1 98.75 11.2066 -54.85 + 98 74.0612 1393 5 1 98.75 11.2066 -54.85 + 98 82.4363 1394 5 1 98.95 11.3024 -54.6536 + 98 1.57669 1395 5 1 99.15 11.3878 -54.4542 + 98 88.7277 1066 5 0 47.8564 33.3432 -56.2498 + 98 268.107 1261 5 0 49.4135 72.2571 -56.25 +Number of digits in this event: 21 +Using G4ParticleGun... +Particle energy: 1.55673 LIN +Particle: proton Event: 99 -Number of tracker hits in this event = 16 - 99 100.736 169 7 1 -146.31 -21.1432 5.55 - 99 122.721 794 7 0 -146.31 -21.1434 4.15 - 99 103.364 169 6 1 -146.305 -21.1459 -24.45 - 99 169.443 794 6 0 -146.304 -21.1445 -25.85 - 99 117.579 169 5 1 -146.296 -21.1184 -54.45 - 99 102.917 794 5 0 -146.295 -21.1164 -55.85 - 99 104.849 169 4 1 -146.276 -21.0766 -84.45 - 99 121.134 794 4 0 -146.276 -21.0752 -85.85 - 99 132.213 169 3 1 -146.262 -21.0466 -114.45 - 99 97.108 795 3 0 -146.262 -21.0449 -115.85 - 99 111.94 169 2 1 -146.258 -21.0092 -144.45 - 99 156.303 795 2 0 -146.257 -21.0077 -145.85 - 99 223.475 169 1 1 -146.246 -20.9747 -174.45 - 99 134.197 795 1 0 -146.247 -20.9731 -175.85 - 99 111.995 169 0 1 -146.256 -20.9421 -204.45 - 99 104.736 795 0 0 -146.256 -20.9408 -205.85 -Number of digits in this event = 8 +Number of tracker hits in this event: 26 + 99 139.459 822 11 1 -15.4576 -32.6155 125.55 + 99 175.59 737 11 0 -15.459 -32.6186 124.15 + 99 136.416 822 10 1 -15.4903 -32.6879 95.55 + 99 130.096 736 10 0 -15.4913 -32.6927 94.15 + 99 292.208 822 9 1 -15.5156 -32.7935 65.55 + 99 135.814 736 9 0 -15.5169 -32.7967 64.15 + 99 121.942 822 8 1 -15.538 -32.8643 35.55 + 99 113.047 735 8 0 -15.5407 -32.868 34.15 + 99 109.833 822 7 1 -15.5887 -32.9665 5.55 + 99 119.871 735 7 0 -15.5928 -32.9733 4.15 + 99 137.575 821 6 1 -15.6798 -33.1016 -24.45 + 99 117.63 734 6 0 -15.6802 -33.1102 -25.85 + 99 172.802 821 5 1 -15.7 -33.2196 -54.45 + 99 106.591 734 5 0 -15.7025 -33.2248 -55.85 + 99 118.216 821 4 1 -15.7573 -33.3239 -84.45 + 99 135.836 733 4 0 -15.7601 -33.3276 -85.85 + 99 105.556 821 3 1 -15.8363 -33.419 -114.45 + 99 124.93 733 3 0 -15.8331 -33.4241 -115.85 + 99 198.823 821 2 1 -15.7696 -33.5207 -144.45 + 99 119.846 732 2 0 -15.7606 -33.5296 -145.85 + 99 113.705 822 1 1 -15.5734 -33.6977 -174.45 + 99 128.14 731 1 0 -15.5638 -33.7067 -175.85 + 99 130.4 823 0 1 -15.3663 -33.8808 -204.45 + 99 119.318 730 0 0 -15.3575 -33.8907 -205.85 + 99 146.877 796 0 0 -2.42989 -20.7668 -206.25 + 99 86.9119 823 9 1 -15.4497 -32.5799 65.3938 +Number of digits in this event: 16 Run terminated. Run Summary Number of events processed : 100 - User=3.290000s Real=3.661483s Sys=0.030000s + User=3.900000s Real=4.192696s Sys=0.060000s End of Run 0 There are 2 h1 histograms - 0 with 0 entries: Edep in the last X plane (keV) - 1 with 0 entries: Hits dist in TKR X planes + 0 with 0 entries: Deposited energy in the last X plane (keV) + 1 with 0 entries: Hits distribution in TKR X planes There are 2 h2 histograms - 0 with 0 entries: Tracker Hits XZ (strip,plane) - 1 with 0 entries: Tracker Hits YZ (strip,plane) + 0 with 0 entries: Tracker hits XZ (strip, plane) + 1 with 0 entries: Tracker hits YZ (strip, plane) List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". /gun/particle gamma @@ -5441,28 +5706,28 @@ Index : 0 used in the geometry : Yes Index : 1 used in the geometry : Yes Material : CesiumIodide Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um - Energy thresholds : gamma 9.2865 keV e- 144.614 keV e+ 141.091 keV proton 10 keV + Energy thresholds : gamma 9.28719 keV e- 144.613 keV e+ 141.078 keV proton 10 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes Material : Silicon Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um - Energy thresholds : gamma 2.32237 keV e- 122.002 keV e+ 119.773 keV proton 10 keV + Energy thresholds : gamma 2.32189 keV e- 121.99 keV e+ 119.775 keV proton 10 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 3 used in the geometry : Yes Material : Tungsten Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um - Energy thresholds : gamma 36.2769 keV e- 351.958 keV e+ 338.125 keV proton 10 keV + Energy thresholds : gamma 36.2769 keV e- 351.944 keV e+ 338.136 keV proton 10 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 4 used in the geometry : Yes Material : Scintillator Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um - Energy thresholds : gamma 994.647 eV e- 86.3927 keV e+ 85.2583 keV proton 10 keV + Energy thresholds : gamma 1.00819 keV e- 86.3911 keV e+ 85.2484 keV proton 10 keV Region(s) which use this couple : DefaultRegionForTheWorld @@ -5490,3351 +5755,4021 @@ Cannot set FirstId as its value was already used. -------- WWWW -------- G4Exception-END --------- WWWW ------- done -Using G4ParticleGun ... -5.61926 LIN -gamma +Using G4ParticleGun... +Particle energy: 2.35796 LIN +Particle: gamma Event: 0 -Number of tracker hits in this event = 8 - 0 38.2929 713 0 0 33.0679 -37.3558 -206.25 - 0 65.0789 714 0 0 33.0517 -37.25 -206.175 - 0 96.806 715 0 0 32.9634 -37.05 -206.057 - 0 138.379 1057 0 1 31.6297 -36.0771 -204.85 - 0 74.6491 1056 0 1 31.45 -35.9337 -204.74 - 0 77.7547 1058 0 1 31.65 -35.7634 -204.64 - 0 75.3546 1059 0 1 31.85 -35.8838 -204.657 - 0 26.0611 1546 1 1 129.476 -45.6412 -174.85 -Number of digits in this event = 2 -Using G4ParticleGun ... -9.6404 LIN -gamma +Number of tracker hits in this event: 75 + 0 342.676 1317 9 1 83.4878 -66.2417 65.55 + 0 108.307 569 9 0 83.4898 -66.2399 64.15 + 0 98.9683 1317 8 1 83.5251 -66.203 35.55 + 0 104.419 569 8 0 83.5188 -66.2141 34.15 + 0 162.875 1316 7 1 83.3946 -66.4212 5.55 + 0 102.999 568 7 0 83.3914 -66.4326 4.15 + 0 183.54 1316 6 1 83.3244 -66.6788 -24.45 + 0 124.461 566 6 0 83.3229 -66.691 -25.85 + 0 110.222 1316 5 1 83.2956 -66.942 -54.45 + 0 210.657 565 5 0 83.2931 -66.9598 -55.85 + 0 151.343 1316 4 1 83.2553 -67.3355 -84.45 + 0 103.306 563 4 0 83.2485 -67.3488 -85.85 + 0 107.353 1315 3 1 83.1177 -67.6085 -114.45 + 0 231.997 562 3 0 83.1095 -67.6184 -115.85 + 0 284.506 1314 2 1 82.929 -67.8158 -144.45 + 0 292.219 561 2 0 82.9195 -67.8261 -145.85 + 0 93.3088 1313 1 1 82.7351 -68.0459 -174.45 + 0 119.321 559 1 0 82.722 -68.0532 -175.85 + 0 101.744 1312 0 1 82.4629 -68.215 -204.45 + 0 125.906 559 0 0 82.4407 -68.2186 -205.85 + 0 18.0708 416 3 0 8.03214 -96.7732 -116.25 + 0 22.1175 417 3 0 8.05962 -96.7498 -116.229 + 0 50.7637 561 3 0 83.1265 -67.65 -116.005 + 0 34.9991 1299 1 1 79.9449 -63.0025 -174.45 + 0 160.129 1298 1 1 79.85 -62.9334 -174.54 + 0 37.545 1297 1 1 79.65 -62.794 -174.75 + 0 78.3787 589 1 0 78.7202 -62.1543 -175.85 + 0 93.584 590 1 0 78.5761 -62.05 -176.024 + 0 158.505 626 1 0 22.3564 -54.7025 -176.25 + 0 273.38 625 1 0 22.0065 -54.85 -175.962 + 0 99.4305 1005 1 1 21.1705 -55.9151 -174.85 + 0 126.288 1004 1 1 21.0499 -56.1394 -174.735 + 0 52.8103 1003 1 1 20.85 -56.4901 -174.549 + 0 99.361 1002 1 1 20.65 -56.5744 -174.572 + 0 46.7692 1001 1 1 20.4498 -56.6386 -174.632 + 0 56.6459 1000 1 1 20.25 -56.6348 -174.671 + 0 69.2 999 1 1 20.05 -56.6018 -174.687 + 0 66.5832 998 1 1 19.85 -56.5754 -174.748 + 0 106.428 997 1 1 19.65 -56.4214 -174.741 + 0 83.3147 996 1 1 19.45 -56.186 -174.594 + 0 99.3251 995 1 1 19.2494 -56.0581 -174.51 + 0 82.5107 994 1 1 19.05 -55.8303 -174.461 + 0 247.41 993 1 1 18.85 -55.6654 -174.477 + 0 253.167 992 1 1 18.65 -55.6648 -174.501 + 0 43.1021 618 1 0 19.2814 -56.4098 -175.85 + 0 236.863 624 1 0 21.834 -55.05 -175.981 + 0 131.015 623 1 0 21.7458 -55.2501 -176.051 + 0 85.6595 676 1 1 -44.8067 87.1218 -174.45 + 0 72.4613 675 1 1 -44.85 86.9699 -174.672 + 0 28.8273 1332 1 0 -45.6919 86.486 -175.85 + 0 98.6617 1331 1 0 -45.7545 86.45 -175.943 + 0 18.1499 1330 1 0 -45.8144 86.25 -176.198 + 0 117.08 568 9 0 83.4502 -66.2835 64.15 + 0 137.461 1312 8 1 82.5285 -67.2703 35.55 + 0 114.473 563 8 0 82.508 -67.3434 34.15 + 0 115.02 1310 7 1 82.2169 -68.7946 5.55 + 0 123.86 555 7 0 82.1596 -68.897 4.15 + 0 115.878 1303 6 1 80.842 -70.9846 -24.45 + 0 274.756 544 6 0 80.7891 -71.0808 -25.85 + 0 115.351 1298 5 1 79.8242 -73.2084 -54.45 + 0 117.856 533 5 0 79.7786 -73.305 -55.85 + 0 101.84 1293 4 1 78.6677 -75.2961 -84.45 + 0 103.317 523 4 0 78.5975 -75.3129 -85.85 + 0 127.064 1285 3 1 77.0754 -75.6878 -114.45 + 0 118.131 521 3 0 77.0111 -75.682 -115.85 + 0 131.339 1278 2 1 75.6619 -75.7224 -144.45 + 0 234.231 521 2 0 75.6664 -75.7301 -145.85 + 0 193.47 1278 1 1 75.8416 -75.8054 -174.45 + 0 114.477 521 1 0 75.8517 -75.7771 -175.85 + 0 119.563 1281 0 1 76.2628 -75.3411 -204.45 + 0 112.912 523 0 0 76.3164 -75.2889 -205.85 + 0 3.53816 643 0 0 71.2505 -51.45 -205.928 + 0 67.8169 1263 0 1 72.7656 -47.7023 -204.85 + 0 109.666 1279 1 1 75.8504 -75.795 -174.656 + 0 225.735 1278 0 1 75.7997 -76.2116 -204.45 +Number of digits in this event: 28 +Using G4ParticleGun... +Particle energy: 8.37873 LIN +Particle: gamma Event: 1 -Number of tracker hits in this event = 74 - 1 263.276 987 10 1 17.5697 46.0791 95.55 - 1 309.157 1130 10 0 17.5704 46.0787 94.15 - 1 271.387 987 9 1 17.5823 46.0707 65.55 - 1 280.523 1130 9 0 17.5831 46.071 64.15 - 1 297.241 987 8 1 17.6016 46.0748 35.55 - 1 120.734 1130 8 0 17.6028 46.0755 34.15 - 1 237.927 987 7 1 17.6237 46.0922 5.55 - 1 129.265 1130 7 0 17.6234 46.0829 4.15 - 1 258.484 987 6 1 17.6213 45.8927 -24.45 - 1 260.549 1129 6 0 17.6216 45.883 -25.85 - 1 297.765 987 5 1 17.6228 45.6864 -54.45 - 1 102.818 1128 5 0 17.6216 45.6802 -55.85 - 1 128.282 987 4 1 17.6063 45.5596 -84.45 - 1 114.002 1127 4 0 17.6057 45.5558 -85.85 - 1 128.631 987 3 1 17.5847 45.4842 -114.45 - 1 115.297 1127 3 0 17.5829 45.4771 -115.85 - 1 114.181 987 2 1 17.5539 45.3416 -144.45 - 1 358.462 1126 2 0 17.5527 45.3337 -145.85 - 1 280.808 987 1 1 17.5309 45.1879 -174.45 - 1 116.595 1125 1 0 17.5277 45.1895 -175.85 - 1 177.114 987 0 1 17.4847 45.2164 -204.45 - 1 121.984 1125 0 0 17.483 45.2173 -205.85 - 1 305.488 481 1 1 -83.65 163.194 -174.766 - 1 290.706 643 6 1 -51.25 -28.8963 -24.7749 - 1 105.231 1126 0 0 17.4212 45.2769 -205.85 - 1 160.917 1130 2 0 17.7531 46.2106 -145.85 - 1 261.647 988 2 1 17.7905 46.2277 -144.45 - 1 112.143 988 1 1 17.8046 46.2374 -174.45 - 1 126.376 1131 1 0 17.827 46.2652 -175.85 - 1 120.653 991 0 1 18.4062 46.919 -204.45 - 1 194.367 1134 0 0 18.4383 46.939 -205.85 - 1 46.601 421 0 1 -95.8424 165.949 -204.45 - 1 169.07 422 0 1 -95.75 165.996 -204.477 - 1 25.0198 989 2 1 17.8501 46.0497 -144.777 - 1 50.9461 1124 2 0 18.0308 44.997 -145.851 - 1 98.3621 1123 2 0 18.0578 44.85 -146.01 - 1 19.0577 1122 2 0 18.081 44.65 -146.207 - 1 67.9339 944 2 0 33.4978 9.01927 -146.25 - 1 52.5992 945 2 0 33.5103 9.05004 -146.096 - 1 39.5136 1068 2 1 33.8263 9.2138 -144.85 - 1 68.8972 1069 2 1 33.85 9.22505 -144.724 - 1 9.75208 1186 3 1 57.25 73.9119 -114.503 - 1 8.3898 1033 3 0 34.8906 26.7563 -116.25 - 1 136.14 1129 8 0 17.6225 46.0345 34.15 - 1 118.091 1129 7 0 17.6284 46.004 4.15 - 1 119.877 1129 5 0 17.4598 46.0379 -55.85 - 1 109.822 986 4 1 17.3765 46.086 -84.45 - 1 166.91 1130 4 0 17.3682 46.0899 -85.85 - 1 114.104 985 3 1 17.1954 46.1699 -114.45 - 1 168.336 1130 3 0 17.1879 46.1772 -115.85 - 1 129.704 984 2 1 17.0382 46.3428 -144.45 - 1 114.924 1131 2 0 17.0295 46.3515 -145.85 - 1 119.352 984 1 1 16.8561 46.5269 -174.45 - 1 165.245 1132 1 0 16.8502 46.5377 -175.85 - 1 114.665 983 0 1 16.7298 46.7598 -204.45 - 1 100.987 1133 0 0 16.7252 46.7694 -205.85 - 1 140.603 980 0 0 -60.233 16.1642 -206.25 - 1 85.8412 594 0 1 -61.1622 15.583 -204.85 - 1 110.085 593 0 1 -61.25 15.5295 -204.725 - 1 15.4906 662 1 0 -38.0507 -47.5814 -176.25 - 1 250.11 661 1 0 -38.0341 -47.65 -176.221 - 1 102.948 660 1 0 -37.945 -47.85 -176.07 - 1 110.001 713 1 1 -37.3196 -48.2322 -174.85 - 1 160.802 714 1 1 -37.25 -48.2382 -174.724 - 1 227.283 1677 3 1 155.674 -33.69 -114.85 - 1 69.9357 852 1 1 -9.55946 128.146 -174.85 - 1 133.504 851 1 1 -9.65 128.558 -174.629 - 1 54.4682 850 1 1 -9.8501 128.556 -174.487 - 1 293.104 995 2 1 19.2173 45.4346 -144.45 - 1 48.6207 1001 1 1 20.393 42.9835 -174.45 - 1 70.0927 1002 1 1 20.45 42.9756 -174.62 - 1 123.78 1114 1 0 20.9 42.9511 -175.85 - 1 114.427 1053 0 1 30.6874 41.5569 -204.45 - 1 116.547 1108 0 0 30.8212 41.6815 -205.85 -Number of digits in this event = 39 -Using G4ParticleGun ... -7.35658 LIN -gamma +Number of tracker hits in this event: 22 + 1 267.538 1151 4 1 50.2851 -138.047 -84.45 + 1 230.504 210 4 0 50.2683 -138.048 -85.85 + 1 222.129 1148 3 1 49.8448 -137.71 -114.45 + 1 118.004 212 3 0 49.8458 -137.698 -115.85 + 1 354.621 1151 2 1 50.2724 -137.535 -144.45 + 1 118.793 213 2 0 50.3273 -137.528 -145.85 + 1 20.6586 1156 1 1 51.4409 -137.554 -174.45 + 1 90.9862 1157 1 1 51.45 -137.558 -174.548 + 1 120.712 212 1 0 51.567 -137.622 -175.85 + 1 97.0507 1169 0 1 53.9893 -139.866 -204.45 + 1 107.912 201 0 0 54.1212 -139.925 -205.85 + 1 110.541 1151 3 1 50.2901 -138.045 -114.45 + 1 115.53 210 3 0 50.2898 -138.046 -115.85 + 1 141.396 210 2 0 50.2848 -138.067 -145.85 + 1 177.329 1151 1 1 50.2786 -138.086 -174.45 + 1 136.191 210 1 0 50.2783 -138.087 -175.85 + 1 110.711 1151 0 1 50.2728 -138.111 -204.45 + 1 180.338 210 0 0 50.2727 -138.112 -205.85 + 1 53.8882 12 6 0 60.7112 -177.615 -26.2499 + 1 1.37349 1031 6 0 -19.0918 26.3932 -26.25 + 1 4.52315 1452 6 0 38.5086 110.574 -26.25 + 1 48.0079 1744 5 1 168.95 146.522 -54.4952 +Number of digits in this event: 12 +Using G4ParticleGun... +Particle energy: 9.51668 LIN +Particle: gamma Event: 2 -Number of tracker hits in this event = 75 - 2 219.418 1131 8 1 46.4494 134.868 35.55 - 2 222.826 1573 8 0 46.45 134.869 34.15 - 2 126.416 1132 7 1 46.4656 134.873 5.55 - 2 119.917 1573 7 0 46.4668 134.872 4.15 - 2 122.552 1132 6 1 46.4923 134.851 -24.45 - 2 149.711 1573 6 0 46.4935 134.851 -25.85 - 2 172.33 1132 5 1 46.5164 134.836 -54.45 - 2 256.622 1573 5 0 46.5169 134.836 -55.85 - 2 115.235 1132 4 1 46.5329 134.823 -84.45 - 2 132.109 1573 4 0 46.5348 134.822 -85.85 - 2 126.573 1132 3 1 46.5659 134.808 -114.45 - 2 170.371 1573 3 0 46.5666 134.805 -115.85 - 2 435.568 1132 2 1 46.5729 134.738 -144.45 - 2 119.111 1572 2 0 46.5692 134.722 -145.85 - 2 241.361 1132 1 1 46.5233 134.404 -174.45 - 2 124.454 1571 1 0 46.5307 134.382 -175.85 - 2 145.363 1133 0 1 46.6663 133.906 -204.45 - 2 227.738 1568 0 0 46.6649 133.878 -205.85 - 2 229.197 1572 3 0 46.5604 134.749 -116.11 - 2 232.094 1573 2 0 46.4935 134.798 -145.85 - 2 107.974 1131 1 1 46.3506 134.66 -174.45 - 2 111.065 1572 1 0 46.3486 134.654 -175.85 - 2 260.764 1131 0 1 46.3078 134.517 -204.45 - 2 264.661 1571 0 0 46.301 134.522 -205.85 - 2 79.505 1130 0 1 46.25 134.572 -204.546 - 2 237.926 1573 0 0 45.6809 134.879 -205.85 - 2 30.1783 1574 0 0 45.55 134.95 -206.149 - 2 107.358 1573 1 0 46.5044 134.84 -175.85 - 2 276.403 1132 0 1 46.5788 134.832 -204.45 - 2 191.076 1377 3 0 -8.88601 95.743 -116.25 - 2 131.022 1374 3 0 -9.48887 95.15 -115.954 - 2 77.681 613 4 1 -57.25 153.979 -84.7311 - 2 121.262 1126 7 1 45.2913 135.297 5.55 - 2 103.265 1576 7 0 45.1936 135.352 4.15 - 2 402.034 1114 6 1 42.9093 136.399 -24.45 - 2 141.971 1581 6 0 42.7788 136.484 -25.85 - 2 23.8831 1100 5 1 40.0536 137.802 -54.45 - 2 79.4854 1099 5 1 40.05 137.803 -54.5424 - 2 152.843 1588 5 0 39.9938 137.827 -55.85 - 2 121.391 1093 4 1 38.8178 138.738 -84.45 - 2 132.815 1594 4 0 38.7392 138.997 -85.85 - 2 2.78198 1086 3 1 37.2517 144.55 -114.45 - 2 146.818 1085 3 1 37.25 144.553 -114.463 - 2 150.164 1623 3 0 37.0694 144.851 -115.85 - 2 106.394 1066 2 1 33.3074 150.755 -144.45 - 2 163.76 1654 2 0 33.1104 151.042 -145.85 - 2 52.005 1043 1 1 28.6748 157.14 -174.451 - 2 91.3808 1042 1 1 28.65 157.181 -174.563 - 2 156.856 1687 1 0 28.3657 157.631 -175.85 - 2 9.82177 1688 1 0 28.2792 157.75 -176.229 - 2 98.1914 1007 0 1 21.4945 165.928 -204.451 - 2 64.3543 1006 0 1 21.4499 165.99 -204.685 - 2 99.4081 1730 0 0 21.2272 166.296 -205.85 - 2 49.1919 1731 0 0 21.1875 166.35 -206.051 - 2 191.881 1763 0 0 8.26219 172.901 -206.25 - 2 369.298 943 0 1 8.70107 171.611 -204.85 - 2 9.22036 1764 0 0 8.20028 172.95 -206.088 - 2 303.597 1686 1 0 28.518 157.405 -175.876 - 2 249.814 1027 0 1 25.5182 162.57 -204.45 - 2 8.63317 1026 0 1 25.45 162.711 -204.814 - 2 31.8533 1714 0 0 25.2752 163.109 -205.85 - 2 84.9314 1715 0 0 25.2565 163.15 -205.961 - 2 129.059 1711 0 0 25.5685 162.407 -205.85 - 2 101.838 999 0 1 19.8944 161.442 -204.45 - 2 279.183 998 0 1 19.85 161.313 -204.517 - 2 1.29249 1693 0 0 19.2703 158.757 -205.85 - 2 115.45 1692 0 0 19.2686 158.75 -205.854 - 2 63.6944 1691 0 0 19.2257 158.55 -205.97 - 2 61.9704 1690 0 0 19.1979 158.35 -206.086 - 2 32.856 1689 0 0 19.1689 158.15 -206.201 - 2 124.332 1533 9 1 126.856 169.441 65.5499 - 2 136.54 1115 6 1 43.05 135.557 -24.7236 - 2 123.069 1564 6 0 44.2006 133.15 -25.85 - 2 111.07 1563 6 0 44.369 132.95 -25.9269 - 2 96.1378 1562 6 0 44.6654 132.749 -26.0766 -Number of digits in this event = 45 -Using G4ParticleGun ... -3.18036 LIN -gamma +Number of tracker hits in this event: 98 + 2 254.723 1352 8 1 90.738 -44.3215 35.55 + 2 299.262 678 8 0 90.7362 -44.3193 34.15 + 2 118.344 1353 7 1 90.7651 -44.1897 5.55 + 2 148.889 679 7 0 90.7824 -44.1876 4.15 + 2 122.479 1354 6 1 91.1472 -44.1366 -24.45 + 2 3.46348 1355 6 1 91.15 -44.1378 -24.8293 + 2 482.75 679 6 0 91.1574 -44.1396 -25.85 + 2 181.057 1355 5 1 91.3452 -44.1635 -54.45 + 2 345.963 679 5 0 91.354 -44.1672 -55.85 + 2 124.146 1356 4 1 91.5245 -44.2516 -84.45 + 2 348.105 679 4 0 91.5452 -44.2497 -85.85 + 2 144.359 1358 3 1 91.9358 -44.1016 -114.45 + 2 355.191 679 3 0 91.9398 -44.1087 -115.85 + 2 100.395 1359 2 1 92.0364 -44.2306 -144.45 + 2 251.193 679 2 0 92.038 -44.2144 -145.85 + 2 145.704 1359 1 1 92.0922 -43.9356 -174.45 + 2 106.973 680 1 0 92.0944 -43.9183 -175.85 + 2 115.093 1360 0 1 92.2253 -43.5073 -204.45 + 2 117.336 682 0 0 92.2207 -43.4707 -205.85 + 2 170.59 678 4 0 91.5483 -44.2501 -86.0212 + 2 143.503 590 4 0 100.213 -61.9141 -86.2499 + 2 34.3084 1405 4 1 101.278 -62.6396 -84.85 + 2 173.607 1406 4 1 101.35 -62.7169 -84.7331 + 2 65.5345 1407 4 1 101.55 -62.9725 -84.5437 + 2 67.2406 1408 4 1 101.752 -62.9363 -84.6249 + 2 225.478 1409 4 1 101.95 -62.7698 -84.6837 + 2 236.748 1410 4 1 102.15 -62.2745 -84.7118 + 2 39.776 1411 4 1 102.35 -61.726 -84.5178 + 2 430.789 678 6 0 91.2672 -44.25 -26.0643 + 2 112.924 1352 7 1 90.7427 -44.3285 5.55 + 2 105.346 678 7 0 90.7428 -44.3278 4.15 + 2 209.98 1352 6 1 90.7448 -44.312 -24.45 + 2 334.322 1352 5 1 90.7365 -44.2859 -54.45 + 2 258.908 678 5 0 90.7364 -44.2844 -55.85 + 2 339.326 1352 4 1 90.7321 -44.2531 -84.45 + 2 107.934 1352 3 1 90.7094 -44.2254 -114.45 + 2 139.75 1352 2 1 90.6539 -44.1961 -144.45 + 2 246.775 1352 1 1 90.5535 -44.0971 -174.45 + 2 106.513 679 1 0 90.5439 -44.0869 -175.85 + 2 125.196 1351 0 1 90.3685 -43.9158 -204.45 + 2 74.1425 677 0 0 90.681 -44.5582 -205.85 + 2 50.884 676 0 0 90.7246 -44.65 -206.079 + 2 375.43 277 0 0 67.285 -124.55 -206.061 + 2 9.91924 276 0 0 67.4818 -124.75 -205.901 + 2 215.99 1239 0 1 67.9446 -125.205 -204.85 + 2 124.977 1346 4 1 89.4057 -42.631 -84.45 + 2 11.7771 1347 4 1 89.45 -42.5683 -84.809 + 2 105.81 688 4 0 89.5517 -42.3439 -85.85 + 2 119.957 1363 3 1 92.9293 -36.9346 -114.45 + 2 133.575 716 3 0 92.5309 -36.7953 -115.85 + 2 70.355 1318 2 1 83.7036 -37.1225 -144.45 + 2 91.6356 1317 2 1 83.65 -37.0613 -144.621 + 2 69.2246 717 2 0 83.1089 -36.544 -145.85 + 2 79.3823 718 2 0 83.007 -36.45 -146.024 + 2 55.2056 1190 1 1 58.1566 -28.3791 -174.45 + 2 107.939 1189 1 1 58.05 -28.5855 -174.59 + 2 10.9606 1188 1 1 57.8499 -28.8619 -174.83 + 2 29.8431 751 1 0 57.0156 -29.7899 -175.85 + 2 116.174 750 1 0 56.9607 -29.85 -175.92 + 2 8.50867 749 1 0 56.7218 -30.05 -176.234 + 2 21.9811 1053 0 1 30.6733 -49.266 -204.45 + 2 106.247 1052 0 1 30.65 -49.261 -204.526 + 2 91.9321 655 0 0 30.582 -49.0012 -205.85 + 2 138.231 1351 3 1 90.4978 -44.6454 -114.45 + 2 117.565 676 3 0 90.4879 -44.6716 -115.85 + 2 134.316 1350 2 1 90.2921 -45.1916 -144.45 + 2 108.478 674 2 0 90.2791 -45.2209 -145.85 + 2 145.077 1349 1 1 90.0038 -45.8304 -174.45 + 2 119.885 670 1 0 90.0003 -45.8543 -175.85 + 2 142.149 1349 0 1 89.932 -46.3412 -204.45 + 2 198.45 668 0 0 89.9241 -46.3479 -205.85 + 2 193.49 1353 6 1 90.75 -44.2711 -24.6859 + 2 157.093 682 6 0 91.2509 -43.5366 -25.85 + 2 148.969 681 6 0 91.4187 -43.65 -26.1641 + 2 90.4145 680 6 0 91.6524 -43.8501 -26.0099 + 2 75.14 1338 6 1 87.8081 -47.0419 -24.85 + 2 28.4738 1337 6 1 87.65 -47.0668 -24.8344 + 2 27.3643 1330 6 1 86.2309 -43.1116 -24.85 + 2 22.5355 686 6 0 88.2965 -42.661 -25.85 + 2 86.5826 1351 6 1 90.436 -41.8658 -24.85 + 2 430.048 1292 5 1 78.6476 -40.8849 -54.45 + 2 60.114 1291 5 1 78.45 -39.596 -54.8188 + 2 178.08 1290 5 1 78.25 -39.4484 -54.7834 + 2 94.333 1289 5 1 78.05 -39.3537 -54.7388 + 2 79.0295 1288 5 1 77.85 -39.1903 -54.6348 + 2 70.5107 1287 5 1 77.6499 -39.0077 -54.5515 + 2 54.6834 1286 5 1 77.45 -38.8869 -54.5046 + 2 55.3328 1285 5 1 77.25 -38.7893 -54.5036 + 2 69.1123 1284 5 1 77.0495 -38.7445 -54.5429 + 2 60.7187 1283 5 1 76.8498 -38.7446 -54.5112 + 2 88.7276 1282 5 1 76.65 -38.7836 -54.4729 + 2 55.9152 1281 5 1 76.4498 -38.9004 -54.7212 + 2 35.6514 696 5 0 76.1739 -40.7639 -55.85 + 2 88.889 695 5 0 76.1942 -40.85 -55.9526 + 2 310.629 671 5 0 96.2075 -45.7041 -56.25 + 2 18.5736 670 5 0 96.4022 -45.8501 -56.0312 + 2 6.64094 782 6 0 60.7355 -23.5671 -26.25 + 2 157.872 676 6 0 92.4631 -44.7642 -25.85 +Number of digits in this event: 44 +Using G4ParticleGun... +Particle energy: 3.61594 LIN +Particle: gamma Event: 3 -Number of tracker hits in this event = 0 -Number of digits in this event = 3 -Using G4ParticleGun ... -2.49048 LIN -gamma +Number of tracker hits in this event: 3 + 3 8.74216 334 5 1 -113.15 160.183 -54.7712 + 3 39.7423 1669 5 0 -136.938 154.15 -55.882 + 3 7.89506 204 5 1 -139.15 152.504 -54.7094 +Number of digits in this event: 3 +Using G4ParticleGun... +Particle energy: 8.9532 LIN +Particle: gamma Event: 4 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 -Using G4ParticleGun ... -3.35184 LIN -gamma +Number of tracker hits in this event: 95 + 4 237.245 732 8 1 -33.5623 -88.038 35.55 + 4 311.374 460 8 0 -33.5621 -88.044 34.15 + 4 336.191 732 7 1 -33.5597 -88.1706 5.55 + 4 124.012 459 7 0 -33.5521 -88.1781 4.15 + 4 136.955 733 6 1 -33.4144 -88.3046 -24.45 + 4 126.236 458 6 0 -33.4463 -88.3525 -25.85 + 4 98.5196 730 5 1 -33.9636 -89.4165 -54.45 + 4 168.816 452 5 0 -33.9853 -89.4673 -55.85 + 4 107.633 728 4 1 -34.3735 -90.5542 -84.45 + 4 127.542 447 4 0 -34.4511 -90.6255 -85.85 + 4 113.147 721 3 1 -35.722 -92.2854 -114.45 + 4 119.3 438 3 0 -35.7564 -92.4756 -115.85 + 4 122.338 716 2 1 -36.7919 -96.5027 -144.45 + 4 119.253 417 2 0 -36.8175 -96.6944 -145.85 + 4 133.911 713 1 1 -37.3388 -100.684 -174.45 + 4 143.598 396 1 0 -37.4269 -100.78 -175.85 + 4 133.701 703 0 1 -39.3596 -102.75 -204.45 + 4 194.222 386 0 0 -39.2649 -102.864 -205.85 + 4 175.229 416 0 0 -23.5365 -96.8345 -206.25 + 4 266.839 415 0 0 -23.3583 -96.95 -206.031 + 4 128.964 460 7 0 -33.5747 -88.0499 4.15 + 4 343.631 732 6 1 -33.5828 -88.0512 -24.45 + 4 319.373 459 6 0 -33.5834 -88.0515 -25.85 + 4 406.506 732 5 1 -33.597 -88.0542 -54.45 + 4 233.281 459 5 0 -33.5948 -88.0565 -55.85 + 4 288.28 732 4 1 -33.5532 -88.0902 -84.45 + 4 139.367 459 4 0 -33.551 -88.0871 -85.85 + 4 234.756 732 3 1 -33.526 -88.0082 -114.45 + 4 185.753 460 3 0 -33.5258 -87.9982 -115.85 + 4 199.893 732 2 1 -33.5445 -87.7813 -144.45 + 4 95.3113 461 2 0 -33.5426 -87.7747 -145.85 + 4 101.69 732 1 1 -33.4932 -87.6362 -174.45 + 4 201.816 462 1 0 -33.4931 -87.6238 -175.85 + 4 104.795 732 0 1 -33.5024 -87.3686 -204.45 + 4 114.813 463 0 0 -33.4986 -87.3549 -205.85 + 4 221.313 824 0 0 -125.506 -15.25 -206.219 + 4 80.3977 825 0 0 -125.788 -15.05 -205.881 + 4 251.277 414 3 0 -87.7076 -97.2463 -116.25 + 4 35.9606 347 3 0 -61.5023 -110.732 -116.25 + 4 106.895 731 5 1 -33.659 -88.2766 -54.45 + 4 134.029 458 5 0 -33.6274 -88.3123 -55.8501 + 4 116.627 737 4 1 -32.5924 -88.9815 -84.45 + 4 96.7123 454 4 0 -32.5009 -89.1255 -85.85 + 4 25.4656 747 3 1 -30.4596 -92.0555 -114.45 + 4 94.4152 748 3 1 -30.45 -92.065 -114.559 + 4 127.4 439 3 0 -30.3348 -92.1745 -115.85 + 4 180.209 760 2 1 -27.9628 -94.5825 -144.45 + 4 153.546 427 2 0 -27.9345 -94.6634 -145.85 + 4 99.5843 765 1 1 -26.9686 -95.9033 -174.45 + 4 350.586 420 1 0 -26.9078 -95.9919 -175.85 + 4 100.388 771 0 1 -25.7552 -97.5994 -204.451 + 4 125.275 411 0 0 -25.6623 -97.7842 -205.85 + 4 89.8409 419 1 0 -26.8494 -96.15 -176.111 + 4 9.58046 394 0 0 -21.7598 -101.15 -206.106 + 4 4.89866 309 0 0 -27.9939 -118.333 -206.25 + 4 138.829 308 0 0 -28.0085 -118.35 -206.23 + 4 103.181 307 0 0 -28.2066 -118.55 -205.982 + 4 37.9224 755 0 1 -28.9713 -119.468 -204.85 + 4 93.7489 754 0 1 -29.05 -119.55 -204.754 + 4 143.873 753 0 1 -29.2503 -119.658 -204.512 + 4 15.9267 296 0 0 -28.8195 -120.92 -205.85 + 4 131.336 295 0 0 -28.8017 -120.95 -205.885 + 4 117.555 460 6 0 -33.5866 -88.0462 -25.85 + 4 166.825 460 5 0 -33.6261 -88.0395 -55.85 + 4 230.438 460 4 0 -33.6363 -88.024 -85.85 + 4 187.819 459 3 0 -33.6496 -88.0535 -115.85 + 4 332.281 731 2 1 -33.6783 -88.0637 -144.45 + 4 375.339 459 2 0 -33.6827 -88.0619 -145.85 + 4 410.091 731 1 1 -33.7838 -88.0368 -174.45 + 4 121.423 460 1 0 -33.7919 -88.0336 -175.85 + 4 232.664 730 0 1 -33.9649 -88.0128 -204.45 + 4 152.353 460 0 0 -33.9701 -88.0141 -205.85 + 4 187.315 481 0 0 -24.0143 -83.806 -206.25 + 4 119.78 776 0 1 -24.6825 -84.3909 -204.85 + 4 249.009 777 0 1 -24.65 -84.3151 -204.651 + 4 141.729 458 1 0 -33.7842 -88.3036 -175.85 + 4 207.87 729 0 1 -34.1852 -88.323 -204.45 + 4 151.889 458 0 0 -34.2193 -88.3411 -205.85 + 4 10.4233 384 2 0 -9.01662 -103.15 -145.982 + 4 121.015 459 1 0 -33.7549 -88.1814 -175.85 + 4 123.404 457 0 0 -33.8966 -88.5458 -205.85 + 4 329.426 552 2 0 93.8513 -69.5777 -146.25 + 4 97.8294 553 2 0 94.4535 -69.4499 -146.206 + 4 6.34242 551 2 0 95.0375 -69.65 -146.242 + 4 325.995 731 7 1 -33.65 -88.0506 5.48306 + 4 191.03 730 7 1 -33.8503 -88.1015 5.32561 + 4 180.258 458 2 0 -33.0943 -88.2628 -145.85 + 4 45.733 797 1 1 -20.6049 -87.6725 -174.45 + 4 93.0906 796 1 1 -20.6502 -87.5678 -174.585 + 4 9.62679 470 1 0 -22.1377 -85.8698 -175.85 + 4 102.636 471 1 0 -22.1548 -85.8499 -175.864 + 4 58.874 472 1 0 -22.3103 -85.65 -175.996 + 4 95.8129 473 1 0 -22.3811 -85.45 -176.014 + 4 43.6355 474 1 0 -22.3419 -85.2495 -175.926 + 4 136.923 791 1 1 -21.8147 -82.8211 -174.85 +Number of digits in this event: 61 +Using G4ParticleGun... +Particle energy: 9.77851 LIN +Particle: gamma Event: 5 -Number of tracker hits in this event = 2 - 5 67.9032 1237 4 0 -55.8381 67.5412 -86.2499 - 5 240.219 1236 4 0 -55.9208 67.4499 -86.153 -Number of digits in this event = 3 -Using G4ParticleGun ... -4.3171 LIN -gamma +Number of tracker hits in this event: 30 + 5 210.501 357 2 1 -108.621 -32.4858 -144.45 + 5 206.526 737 2 0 -108.621 -32.4856 -145.85 + 5 308.805 357 1 1 -108.619 -32.4809 -174.45 + 5 147.902 737 1 0 -108.618 -32.4803 -175.85 + 5 231.325 357 0 1 -108.617 -32.4661 -204.45 + 5 94.1476 737 0 0 -108.617 -32.4658 -205.85 + 5 44.2535 1719 0 0 -171.67 164.001 -206.25 + 5 94.2634 1720 0 0 -171.609 164.15 -206.17 + 5 90.4335 1721 0 0 -171.533 164.35 -206.081 + 5 61.0666 1722 0 0 -171.462 164.551 -205.984 + 5 33.342 1723 0 0 -171.427 164.75 -205.914 + 5 191.669 43 0 1 -171.533 166.556 -204.85 + 5 0.022809 42 0 1 -171.55 167.003 -204.451 + 5 399.1 1793 1 0 -19.7126 178.84 -176.25 + 5 42.4043 813 1 1 -17.3327 178.553 -174.85 + 5 55.7292 814 1 1 -17.25 178.544 -174.764 + 5 54.8572 815 1 1 -17.0489 178.563 -174.635 + 5 56.1838 816 1 1 -16.85 178.599 -174.565 + 5 209.851 817 1 1 -16.65 178.632 -174.486 + 5 93.4718 1795 1 0 -15.858 179.263 -175.85 + 5 59.7634 1796 1 0 -15.7074 179.35 -176.065 + 5 87.6288 695 3 0 -11.8764 -40.9824 -116.25 + 5 8.76038 586 0 0 -132.428 -62.65 -206.163 + 5 141.538 96 10 0 58.2858 -160.75 93.7513 + 5 195.574 738 1 0 -108.658 -32.4471 -175.85 + 5 133.455 738 0 0 -108.657 -32.405 -205.85 + 5 124.476 1244 2 1 68.85 -156.01 -144.747 + 5 12.1495 1243 2 1 68.85 -156.132 -144.535 + 5 274.115 486 0 1 -82.7312 61.9458 -204.85 + 5 17.5665 487 0 1 -82.6485 62.2935 -204.45 +Number of digits in this event: 16 +Using G4ParticleGun... +Particle energy: 9.95822 LIN +Particle: gamma Event: 6 -Number of tracker hits in this event = 49 - 6 286.056 1136 5 1 47.3866 2.92283 -54.45 - 6 365.372 914 5 0 47.3854 2.92492 -55.85 - 6 228.315 1136 4 1 47.3707 2.96401 -84.45 - 6 102.005 914 4 0 47.372 2.9681 -85.85 - 6 157.865 1136 3 1 47.3786 3.04734 -114.45 - 6 145.037 915 3 0 47.3821 3.0555 -115.85 - 6 101.288 1136 2 1 47.4422 3.20368 -144.45 - 6 153.398 915 2 0 47.436 3.1996 -145.85 - 6 100.038 1136 1 1 47.3051 3.13654 -174.45 - 6 103.923 915 1 0 47.2968 3.18801 -175.85 - 6 382.573 1135 0 1 47.2299 4.24105 -204.45 - 6 110.389 921 0 0 47.2165 4.40524 -205.85 - 6 3.84414 922 0 0 47.2128 4.45 -206.229 - 6 226.41 1137 2 1 47.4508 3.20113 -144.45 - 6 67.6038 1138 2 1 47.65 3.07418 -144.636 - 6 76.9093 1139 2 1 47.8502 2.92138 -144.77 - 6 32.3583 905 2 0 50.0026 1.11626 -145.85 - 6 86.4648 904 2 0 50.0764 1.05 -145.885 - 6 72.8059 903 2 0 50.2771 0.85 -145.999 - 6 70.5642 902 2 0 50.4371 0.649766 -146.1 - 6 71.1293 901 2 0 50.597 0.449971 -146.18 - 6 47.9473 516 2 0 92.7599 -76.7913 -146.25 - 6 80.1167 515 2 0 92.6888 -76.8501 -146.084 - 6 97.9363 1359 2 1 92.0743 -77.5824 -144.85 - 6 50.6191 1358 2 1 91.95 -77.7449 -144.582 - 6 116.103 538 3 0 100.02 -72.4426 -116.25 - 6 51.6767 1402 3 1 100.658 -71.7285 -114.85 - 6 148.148 1403 3 1 100.75 -71.6331 -114.681 - 6 332.967 1404 3 1 100.982 -71.5085 -114.45 - 6 108.685 1405 3 1 101.15 -70.6108 -114.65 - 6 129.723 1406 3 1 101.35 -70.4966 -114.672 - 6 31.4956 548 3 0 101.356 -70.2781 -115.85 - 6 72.8041 549 3 0 101.357 -70.2499 -115.913 - 6 131.503 550 3 0 101.437 -70.05 -116.028 - 6 41.5699 688 6 1 -42.3408 150.386 -24.85 - 6 303.262 1137 0 1 47.613 3.60562 -204.45 - 6 131.688 918 0 0 47.335 3.70248 -205.85 - 6 104.904 917 0 0 47.6359 3.53706 -205.85 - 6 0.163762 1044 4 0 50.0493 29.0493 -86.25 - 6 213.825 1045 4 0 50.0494 29.0504 -86.249 - 6 185.278 1046 4 0 49.8727 29.25 -86.0013 - 6 183.275 915 4 0 47.3971 3.05625 -85.85 - 6 136.222 1137 3 1 47.4835 3.05727 -114.45 - 6 115.516 914 3 0 47.4888 3.04355 -115.85 - 6 219.269 914 2 0 47.6139 2.88666 -145.85 - 6 149.687 1135 1 1 47.0561 2.32683 -174.45 - 6 109.761 910 1 0 47.0409 2.24831 -175.85 - 6 144.141 1134 0 1 46.9054 0.753909 -204.45 - 6 96.2902 903 0 0 46.9336 0.683242 -205.85 -Number of digits in this event = 23 -Using G4ParticleGun ... -5.73071 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 8.11208 LIN +Particle: gamma Event: 7 -Number of tracker hits in this event = 108 - 7 253.791 1113 8 1 42.6996 -92.6822 35.55 - 7 268.056 437 8 0 42.6988 -92.6827 34.15 - 7 110.588 1113 7 1 42.682 -92.6934 5.55 - 7 210.257 437 7 0 42.6796 -92.6938 4.15 - 7 130.279 1112 6 1 42.6348 -92.6995 -24.45 - 7 142.354 437 6 0 42.6315 -92.7 -25.85 - 7 421.946 1112 5 1 42.6161 -92.6454 -54.45 - 7 378.806 437 5 0 42.6151 -92.639 -55.85 - 7 614.961 1112 4 1 42.5904 -92.5089 -84.45 - 7 529.566 438 4 0 42.5864 -92.5032 -85.85 - 7 242.478 1112 3 1 42.4869 -92.3888 -114.45 - 7 122.959 438 3 0 42.4796 -92.3839 -115.85 - 7 238.196 1111 2 1 42.3237 -92.2847 -144.45 - 7 89.947 439 2 0 42.3146 -92.2792 -145.85 - 7 146.918 1110 1 1 42.1442 -92.1679 -174.45 - 7 125.512 439 1 0 42.138 -92.164 -175.85 - 7 127.785 1109 0 1 42.0079 -92.0758 -204.45 - 7 117.488 440 0 0 42 -92.0772 -205.85 - 7 51.2391 944 1 0 -27.6576 8.85 -176.149 - 7 18.4493 943 1 0 -27.67 8.84994 -176.144 - 7 328.35 1111 1 1 42.25 -92.1796 -174.477 - 7 406.051 456 3 0 29.1695 -88.6856 -116.25 - 7 597.115 437 4 0 42.5399 -92.568 -85.8505 - 7 96.6054 1104 3 1 41.0221 -93.7391 -114.45 - 7 119.313 431 3 0 41.0477 -93.7785 -115.85 - 7 113.053 1105 2 1 41.1458 -93.8821 -144.45 - 7 128.192 431 2 0 41.4772 -93.8386 -145.85 - 7 60.9429 1140 1 1 48.1152 -91.959 -174.45 - 7 93.9695 1141 1 1 48.25 -91.8828 -174.574 - 7 35.6059 1142 1 1 48.4503 -91.7653 -174.767 - 7 88.2672 445 1 0 49.5535 -91.0788 -175.85 - 7 110.304 446 1 0 49.7474 -90.95 -176.045 - 7 34.7625 1266 0 1 73.4069 -72.0945 -204.451 - 7 71.5619 1267 0 1 73.4501 -72.0749 -204.557 - 7 107.751 539 0 0 73.8079 -72.0819 -205.85 - 7 107.461 536 1 0 98.5709 -72.7871 -176.25 - 7 229.431 1400 1 1 100.228 -72.4974 -174.85 - 7 203.534 436 4 0 42.2572 -92.7502 -85.8999 - 7 33.3976 1107 4 1 41.6434 -92.7265 -84.85 - 7 107.647 1108 4 1 41.6503 -92.7164 -84.814 - 7 236.602 1111 3 1 42.2613 -92.13 -114.45 - 7 115.937 440 3 0 42.2446 -92.088 -115.85 - 7 115.326 1109 2 1 41.9194 -91.2119 -144.45 - 7 117.981 445 2 0 41.8937 -91.1472 -145.85 - 7 200.757 1106 1 1 41.3272 -89.8412 -174.45 - 7 132.49 451 1 0 41.3305 -89.7471 -175.85 - 7 100.967 1106 0 1 41.3073 -87.9519 -204.45 - 7 589.249 460 0 0 41.3241 -87.8624 -205.85 - 7 180.394 461 0 0 41.3267 -87.85 -206.045 - 7 31.7375 1110 3 1 42.25 -92.1218 -114.471 - 7 27.7455 1109 3 1 42.05 -91.9963 -114.825 - 7 130.87 435 3 0 42.3039 -93.0323 -115.85 - 7 118.801 434 2 0 42.4059 -93.1888 -145.85 - 7 105.392 1112 1 1 42.6459 -93.3649 -174.45 - 7 133.11 433 1 0 42.6585 -93.3681 -175.85 - 7 466.628 1114 0 1 42.9025 -93.3887 -204.45 - 7 254.211 433 0 0 42.9133 -93.3912 -205.85 - 7 87.0286 1115 0 1 43.0504 -93.5063 -204.606 - 7 497.67 431 0 0 43.9492 -93.7762 -205.85 - 7 233.109 432 0 0 45.1443 -93.75 -206.088 - 7 38.1738 1133 0 1 46.7683 -93.3503 -204.85 - 7 66.3845 1134 0 1 46.85 -93.3301 -204.793 - 7 433.339 1135 0 1 47.05 -93.1301 -204.687 - 7 34.497 1136 0 1 47.2507 -92.5163 -204.74 - 7 405.729 446 0 0 47.4817 -90.8528 -205.85 - 7 298.93 445 0 0 47.8923 -90.95 -206.076 - 7 188.243 1113 4 1 42.7554 -93.0156 -84.45 - 7 134.219 435 4 0 42.7627 -93.0314 -85.85 - 7 106.682 1114 3 1 42.897 -93.3718 -114.45 - 7 116.96 433 3 0 42.8993 -93.3868 -115.85 - 7 166.07 1114 2 1 42.9578 -93.6818 -144.45 - 7 137.287 432 2 0 42.9613 -93.7061 -145.85 - 7 105.565 1114 1 1 42.954 -94.1801 -174.45 - 7 121.246 429 1 0 42.9435 -94.2299 -175.85 - 7 214.651 1113 0 1 42.7155 -95.2883 -204.45 - 7 150.608 424 0 0 42.701 -95.3401 -205.85 - 7 37.1411 423 0 0 42.6983 -95.35 -206.117 - 7 180.039 1112 7 1 42.6077 -92.5746 5.55 - 7 126.793 1111 6 1 42.4208 -92.4016 -24.45 - 7 96.7835 438 6 0 42.4141 -92.3837 -25.85 - 7 126.692 1111 5 1 42.2823 -92.0121 -54.45 - 7 208.058 440 5 0 42.2773 -91.9952 -55.85 - 7 110.486 1110 4 1 42.155 -91.6817 -84.45 - 7 144.018 442 4 0 42.1788 -91.6481 -85.85 - 7 219.487 445 3 0 42.6269 -90.9543 -115.85 - 7 70.6992 446 3 0 42.6293 -90.95 -115.999 - 7 57.0588 1115 2 1 43.1307 -90.1577 -144.45 - 7 142.077 1118 1 1 43.674 -88.9326 -174.45 - 7 118.228 455 1 0 43.708 -88.8875 -175.85 - 7 124.727 1121 0 1 44.409 -88.0353 -204.45 - 7 155.06 594 2 0 52.3311 -61.0947 -146.25 - 7 193.304 593 2 0 52.2097 -61.25 -146.052 - 7 79.4602 1112 0 1 42.5533 -90.15 -204.612 - 7 14.2531 449 0 0 42.6172 -90.3413 -205.85 - 7 172.627 448 0 0 42.6202 -90.35 -205.907 - 7 118.771 448 1 0 41.3557 -90.5017 -175.85 - 7 96.4322 447 1 0 41.352 -90.55 -176.012 - 7 88.9473 1125 0 1 45.0838 -94.5275 -204.45 - 7 79.5445 1126 0 1 45.25 -94.4911 -204.662 - 7 2.20282 1127 0 1 45.45 -94.4065 -204.843 - 7 51.3411 484 0 0 74.7025 -83.218 -206.25 - 7 231.864 483 0 0 74.8033 -83.25 -206.129 - 7 328.855 1273 0 1 74.8196 -81.7642 -204.85 - 7 219.801 1274 0 1 74.85 -81.2808 -204.748 - 7 105.487 1275 0 1 75.05 -81.3801 -204.598 - 7 88.3441 1110 0 1 42.0541 -91.7687 -204.45 - 7 67.9334 1111 0 1 42.25 -91.728 -204.688 - 7 105.402 444 0 0 43.2294 -91.1929 -205.85 -Number of digits in this event = 59 -Using G4ParticleGun ... -2.50311 LIN -gamma +Number of tracker hits in this event: 289 + 7 433.014 740 11 1 -31.8651 -44.2182 125.55 + 7 262.612 679 11 0 -31.8639 -44.2175 124.15 + 7 149.145 741 10 1 -31.8483 -44.1962 95.55 + 7 380.236 679 10 0 -31.8485 -44.1946 94.15 + 7 241.976 740 9 1 -31.8511 -44.1636 65.55 + 7 486.507 679 9 0 -31.8512 -44.1629 64.15 + 7 248.752 740 8 1 -31.8513 -44.1482 35.55 + 7 204.233 679 8 0 -31.8517 -44.1485 34.15 + 7 347.882 740 7 1 -31.8614 -44.1516 5.55 + 7 248.976 679 7 0 -31.8616 -44.1512 4.15 + 7 349.681 740 6 1 -31.8661 -44.1401 -24.45 + 7 360.337 679 6 0 -31.866 -44.1408 -25.85 + 7 285.177 740 5 1 -31.8665 -44.1558 -54.45 + 7 380.929 679 5 0 -31.8664 -44.1566 -55.85 + 7 162.481 740 4 1 -31.8604 -44.1727 -84.45 + 7 157.09 679 4 0 -31.8598 -44.175 -85.85 + 7 121.865 741 3 1 -31.8433 -44.2188 -114.45 + 7 117.586 679 3 0 -31.8415 -44.2161 -115.85 + 7 589.423 741 2 1 -31.8026 -44.1683 -144.45 + 7 133.451 679 2 0 -31.7992 -44.1647 -145.85 + 7 123.562 741 1 1 -31.7301 -44.0833 -174.45 + 7 148.205 679 1 0 -31.7262 -44.0807 -175.85 + 7 117.43 742 0 1 -31.6488 -44.0336 -204.45 + 7 123.502 680 0 0 -31.6447 -44.0317 -205.85 + 7 39.4758 539 6 1 -72.2149 -151.805 -24.4501 + 7 103.758 538 6 1 -72.2501 -151.782 -24.4925 + 7 59.483 1709 3 0 34.295 162.056 -115.85 + 7 54.444 685 2 0 -31.5075 -42.8857 -145.85 + 7 379.182 686 2 0 -31.5187 -42.85 -145.873 + 7 356.491 740 10 1 -31.8502 -44.1991 95.3848 + 7 79.3991 687 10 0 -34.811 -42.4976 94.15 + 7 127.347 723 10 1 -35.2546 -43.3867 95.15 + 7 522.668 741 9 1 -31.8115 -44.1805 65.55 + 7 91.8988 742 9 1 -31.65 -44.0776 65.3934 + 7 39.642 684 9 0 -30.8614 -43.1815 64.15 + 7 87.463 685 9 0 -30.7951 -43.05 64.0341 + 7 79.5111 686 9 0 -30.8447 -42.8497 63.7942 + 7 4.99391 681 9 0 38.4186 -43.8335 63.75 + 7 185.43 680 9 0 38.4237 -43.85 63.7529 + 7 70.4347 745 8 1 -30.9851 -41.708 35.55 + 7 51.8214 746 8 1 -30.85 -41.6622 35.3281 + 7 0.0968987 692 8 0 -30.1744 -41.4502 34.1498 + 7 131.742 693 8 0 -30.1738 -41.45 34.1488 + 7 72.963 834 7 1 -13.0544 -35.658 5.55 + 7 83.6314 833 7 1 -13.25 -35.7571 5.40941 + 7 100.783 720 7 0 -13.6145 -35.8809 4.15 + 7 21.1171 670 7 0 -18.1626 -46.0334 3.75 + 7 184.536 669 7 0 -18.1941 -46.05 3.82821 + 7 127.719 806 7 1 -18.673 -46.7836 5.15 + 7 166.783 805 7 1 -18.8504 -47.0212 5.54958 + 7 98.257 804 7 1 -19.05 -47.0428 5.3136 + 7 61.5897 803 7 1 -19.2508 -47.0419 5.27419 + 7 167.682 659 7 0 -20.6839 -48.1224 4.15 + 7 305.438 660 7 0 -20.6546 -48.05 3.83618 + 7 124.417 661 7 0 -20.5217 -47.85 3.82127 + 7 21.4557 753 2 1 -29.4159 -24.955 -144.45 + 7 313.907 786 2 0 -30.5173 -22.845 -145.85 + 7 138.483 785 2 0 -30.6228 -22.85 -145.909 + 7 180.717 760 8 1 -28.0099 -39.6803 35.5499 + 7 82.6032 703 8 0 -27.8777 -39.3254 34.1499 + 7 37.1977 704 8 0 -27.8464 -39.2499 33.8556 + 7 120.918 777 7 1 -24.611 -31.8456 5.55 + 7 45.6469 743 7 0 -24.303 -31.3242 4.15 + 7 82.1622 744 7 0 -24.2616 -31.25 3.9585 + 7 32.0086 807 6 1 -18.4603 -19.282 -24.45 + 7 92.9347 808 6 1 -18.45 -19.2363 -24.5474 + 7 123.516 807 6 0 -18.2915 -18.6409 -25.8504 + 7 142.527 833 5 1 -13.3843 -5.73231 -54.45 + 7 74.4938 874 5 0 -12.927 -5.13112 -55.85 + 7 78.8389 875 5 0 -12.8661 -5.04995 -56.0398 + 7 0.178087 878 4 1 -4.25114 7.78689 -84.45 + 7 102.828 879 4 1 -4.24973 7.7877 -84.4536 + 7 188.375 940 4 0 -3.74647 8.10515 -85.8503 + 7 35.1316 934 3 1 6.98098 16.8375 -114.45 + 7 105.63 935 3 1 7.05 16.8532 -114.546 + 7 2.56561 936 3 1 7.25 16.9166 -114.84 + 7 43.6343 985 3 0 7.95617 17.2031 -115.85 + 7 104.193 986 3 0 8.06495 17.25 -116.015 + 7 64.2095 1031 2 1 26.3035 23.7474 -144.45 + 7 59.8543 1032 2 1 26.45 23.7861 -144.637 + 7 227.173 1020 2 0 27.3144 24.1191 -145.851 + 7 248.6 1155 1 1 51.0721 35.1304 -174.45 + 7 329.201 1077 1 0 51.8292 35.4683 -175.85 + 7 54.1829 1282 0 1 76.5206 34.3469 -204.45 + 7 70.6629 1283 0 1 76.65 34.3767 -204.611 + 7 140.072 1071 0 0 77.4113 34.3986 -205.85 + 7 131.394 1113 0 0 110.066 42.7082 -206.25 + 7 109.481 1114 0 0 110.445 42.8501 -206.019 + 7 54.6115 1467 0 1 113.568 43.6089 -204.85 + 7 106.303 1468 0 1 113.75 43.6138 -204.783 + 7 63.9072 1469 0 1 113.951 43.5885 -204.726 + 7 105.373 1470 0 1 114.15 43.5507 -204.691 + 7 63.5168 1471 0 1 114.35 43.5019 -204.635 + 7 46.4889 1472 0 1 114.55 43.486 -204.58 + 7 42.2532 1473 0 1 114.75 43.4582 -204.522 + 7 46.7986 1474 0 1 114.95 43.4289 -204.483 + 7 39.9943 1475 0 1 115.15 43.3874 -204.482 + 7 71.8147 1476 0 1 115.35 43.3447 -204.495 + 7 44.1479 1477 0 1 115.55 43.1971 -204.529 + 7 63.472 1478 0 1 115.75 43.0533 -204.533 + 7 64.2147 1479 0 1 115.95 42.9454 -204.578 + 7 67.9068 1480 0 1 116.15 42.8724 -204.605 + 7 70.1831 1481 0 1 116.35 42.7611 -204.659 + 7 85.2453 1482 0 1 116.55 42.6643 -204.743 + 7 32.5759 1483 0 1 116.75 42.5827 -204.812 + 7 246.193 1111 0 0 121.043 42.3276 -205.85 + 7 587.934 1112 0 0 121.743 42.4502 -206.046 + 7 18.9073 898 0 0 155.551 -0.384652 -206.25 + 7 30.3225 897 0 0 155.509 -0.45 -206.225 + 7 120.249 932 3 0 -130.012 6.45 -116.175 + 7 116.622 250 3 1 -130 7.02441 -114.45 + 7 118.825 248 3 1 -130.482 9.0101 -114.85 + 7 423.168 1002 0 0 168.975 20.4806 -206.25 + 7 0.304675 1003 0 0 168.933 20.65 -206.112 + 7 193.291 1147 1 1 49.5931 35.6722 -174.85 + 7 54.8416 933 3 1 6.85 16.8097 -114.453 + 7 50.665 932 3 1 6.65 16.8494 -114.507 + 7 57.0566 931 3 1 6.45 16.8671 -114.576 + 7 61.3961 930 3 1 6.25 16.808 -114.652 + 7 57.1713 929 3 1 6.05 16.7177 -114.721 + 7 48.901 928 3 1 5.84991 16.6613 -114.754 + 7 82.1288 927 3 1 5.65 16.6432 -114.756 + 7 56.7922 926 3 1 5.45 16.6165 -114.758 + 7 72.6429 925 3 1 5.25 16.6245 -114.723 + 7 135.762 924 3 1 5.04989 16.6685 -114.626 + 7 51.2496 923 3 1 4.85 17.1136 -114.519 + 7 184.786 952 0 1 10.5017 50.4176 -204.45 + 7 137.037 1154 0 0 10.9682 50.8847 -205.85 + 7 165.173 747 6 1 -30.4875 -43.6645 -24.45 + 7 319.17 680 6 0 -30.5637 -44.0407 -25.85 + 7 3.33077 638 5 0 -32.2437 -52.2558 -55.85 + 7 104.217 639 5 0 -32.2459 -52.25 -55.8586 + 7 33.2077 640 5 0 -32.3253 -52.05 -56.1427 + 7 119.932 726 4 1 -34.8487 -29.4069 -84.45 + 7 91.4773 727 4 1 -34.65 -29.1275 -84.7334 + 7 121.012 761 4 0 -33.8873 -27.8494 -85.85 + 7 76.314 762 4 0 -33.7705 -27.6499 -86.0342 + 7 152.294 801 3 1 -19.827 -9.29254 -114.45 + 7 58.2176 802 3 1 -19.65 -9.26035 -114.687 + 7 99.2506 856 3 0 -18.4189 -8.76003 -115.85 + 7 108.691 857 3 0 -18.1683 -8.65 -116.049 + 7 73.1961 919 2 1 3.92625 -0.948651 -144.45 + 7 60.1421 918 2 1 3.85 -0.984064 -144.688 + 7 267.164 893 2 0 3.56549 -1.26109 -145.85 + 7 42.9371 1136 2 0 -19.5841 47.28 -146.25 + 7 53.593 1137 2 0 -19.6291 47.45 -146.177 + 7 59.9499 1138 2 0 -19.6568 47.6506 -146.119 + 7 199.525 1139 2 0 -19.7163 47.85 -146.068 + 7 177.815 1140 2 0 -19.7599 48.0501 -145.946 + 7 195.403 800 2 1 -19.9249 50.0329 -144.85 + 7 126.892 913 2 1 2.72131 -0.46987 -144.85 + 7 38.8796 888 2 0 4.90031 -2.28198 -145.85 + 7 112.674 942 2 1 8.47438 -2.49258 -144.85 + 7 136.54 800 3 1 -19.85 -9.23421 -114.503 + 7 117.08 738 8 1 -32.4183 -42.3355 35.55 + 7 118.921 688 8 0 -32.5105 -42.3573 34.15 + 7 111.543 728 7 1 -34.3993 -42.786 5.55 + 7 100.567 686 7 0 -34.4346 -42.8222 4.15 + 7 135.599 725 6 1 -34.9076 -43.0339 -24.45 + 7 136.028 685 6 0 -34.8402 -43.015 -25.85 + 7 108.52 732 5 1 -33.4983 -43.0177 -54.45 + 7 129.76 685 5 0 -33.3987 -43.0166 -55.8501 + 7 54.0405 742 4 1 -31.473 -43.268 -84.4502 + 7 171.93 743 4 1 -31.45 -43.271 -84.6785 + 7 265.656 683 4 0 -31.3333 -43.2872 -85.8502 + 7 147.345 757 3 1 -28.5129 -43.4906 -114.45 + 7 203.491 682 3 0 -28.4161 -43.5314 -115.85 + 7 104.005 767 2 1 -26.5991 -44.6345 -144.45 + 7 103.719 676 2 0 -26.4399 -44.7622 -145.85 + 7 114.338 786 1 1 -22.7704 -47.4754 -174.451 + 7 122.806 661 1 0 -22.6649 -47.6965 -175.85 + 7 105.479 799 0 1 -20.1094 -51.6326 -204.45 + 7 130.166 640 0 0 -20.0389 -51.8556 -205.851 + 7 100.891 715 0 1 -36.8788 -26.928 -204.45 + 7 119.823 716 0 1 -36.85 -26.7844 -204.581 + 7 233.235 771 0 0 -35.8487 -25.7453 -205.85 + 7 29.8675 772 0 0 -35.4457 -25.65 -206.206 + 7 367.183 680 7 0 -31.8458 -43.976 4.15 + 7 114.063 741 6 1 -31.7295 -43.8128 -24.45 + 7 151.783 681 6 0 -31.7161 -43.8154 -25.85 + 7 230.064 742 5 1 -31.4608 -43.9275 -54.45 + 7 124.501 680 5 0 -31.4405 -43.8947 -55.85 + 7 186.921 744 4 1 -31.1449 -43.3302 -84.45 + 7 113.562 749 3 1 -30.1186 -42.2287 -114.45 + 7 118.201 689 3 0 -30.2101 -42.1826 -115.85 + 7 47.264 739 2 1 -32.2452 -41.1224 -144.45 + 7 74.6445 738 2 1 -32.25 -41.1184 -144.615 + 7 122.42 694 2 0 -32.276 -41.0905 -145.85 + 7 91.9246 735 1 1 -32.8677 -40.3517 -174.45 + 7 165.466 698 1 0 -32.9011 -40.3467 -175.85 + 7 170.733 734 0 1 -33.1945 -40.2627 -204.45 + 7 691.808 699 0 0 -32.9554 -40.104 -205.85 + 7 56.6354 729 0 1 -34.0555 -39.8434 -204.45 + 7 61.4591 728 0 1 -34.2504 -39.6943 -204.557 + 7 78.9048 727 0 1 -34.45 -39.5691 -204.67 + 7 64.0345 726 0 1 -34.65 -39.4638 -204.798 + 7 17.8432 706 0 0 -36.8105 -38.6739 -205.85 + 7 104.715 707 0 0 -36.8743 -38.65 -205.88 + 7 144.429 708 0 0 -37.2099 -38.45 -206.061 + 7 160.678 700 0 0 -37.1824 -39.9693 -205.85 + 7 168.616 702 0 0 -34.6592 -39.5716 -205.85 + 7 128.976 732 0 1 -33.4529 -40.1628 -204.45 + 7 72.5006 743 5 1 -31.45 -44.1276 -54.517 + 7 154.022 747 4 1 -30.6166 -44.5222 -84.45 + 7 112.622 677 4 0 -30.5748 -44.5794 -85.85 + 7 214.305 752 3 1 -29.6184 -45.6297 -114.45 + 7 124.016 671 3 0 -29.568 -45.6905 -115.85 + 7 282.165 757 2 1 -28.5745 -46.9432 -144.45 + 7 120.819 665 2 0 -28.5504 -46.9955 -145.85 + 7 119.852 759 1 1 -28.1216 -47.9291 -174.45 + 7 101.375 660 1 0 -28.0832 -47.9452 -175.85 + 7 143.436 764 0 1 -27.1855 -48.3103 -204.45 + 7 207.72 658 0 0 -27.158 -48.3154 -205.85 + 7 230.559 753 3 1 -29.45 -45.6407 -114.673 + 7 135.881 670 3 0 -28.86 -45.9186 -115.85 + 7 52.4366 595 3 0 47.6171 -60.9615 -116.25 + 7 94.0636 594 3 0 47.7653 -61.0501 -116.2 + 7 83.9622 593 3 0 47.9933 -61.25 -116.103 + 7 92.1095 592 3 0 48.2234 -61.45 -115.994 + 7 40.801 1146 3 1 49.3567 -61.5234 -114.85 + 7 76.2529 1147 3 1 49.45 -61.5392 -114.705 + 7 83.2462 682 5 0 -31.5678 -43.457 -55.85 + 7 6.61216 683 5 0 -31.5638 -43.45 -56.2136 + 7 109.511 686 4 0 -31.2556 -42.7761 -85.85 + 7 312.296 744 3 1 -31.1458 -39.9413 -114.45 + 7 108.466 701 3 0 -31.1515 -39.7973 -115.85 + 7 155.663 745 2 1 -30.9393 -36.4647 -144.45 + 7 122.558 719 2 0 -30.9478 -36.2458 -145.85 + 7 124.022 742 1 1 -31.4923 -32.0932 -174.45 + 7 114.785 741 1 0 -31.5752 -31.8415 -175.85 + 7 111.276 733 0 1 -33.3437 -26.4403 -204.45 + 7 106.768 769 0 0 -33.3536 -26.2426 -205.85 + 7 105.716 694 3 0 -31.7117 -41.0505 -115.85 + 7 178.891 693 3 0 -31.792 -41.25 -116.049 + 7 93.1502 692 3 0 -31.7227 -41.4502 -116.178 + 7 9.16105 691 3 0 -31.6641 -41.6502 -116.238 + 7 100.73 658 3 0 -21.0811 -48.3699 -116.25 + 7 39.9488 657 3 0 -20.9842 -48.4502 -116.139 + 7 44.9879 858 3 0 -117.256 -8.28299 -116.25 + 7 181.37 859 3 0 -117.361 -8.25 -116.223 + 7 141.995 741 7 1 -31.835 -44.0328 5.54942 + 7 109.101 773 6 1 -25.401 -46.7161 -24.45 + 7 25.7957 774 6 1 -25.2499 -46.7368 -24.765 + 7 139.251 666 6 0 -24.6828 -46.8068 -25.85 + 7 21.7821 859 5 1 -8.07557 -47.5751 -54.4507 + 7 130.007 860 5 1 -8.04998 -47.5792 -54.5211 + 7 177.917 662 5 0 -7.55183 -47.6264 -55.85 + 7 44.6396 912 4 1 2.50564 -48.0902 -84.45 + 7 80.8075 911 4 1 2.45 -48.1056 -84.5802 + 7 86.8824 659 4 0 1.78622 -48.23 -85.85 + 7 63.3528 658 4 0 1.64499 -48.25 -86.1105 + 7 190.127 833 3 1 -13.2981 -52.2433 -114.45 + 7 115.174 634 3 0 -13.6575 -53.0507 -115.85 + 7 14.4349 633 3 0 -13.7525 -53.25 -116.193 + 7 21.8528 149 3 0 10.0494 -150.307 -116.25 + 7 111.805 665 6 0 -24.4975 -46.85 -26.1344 + 7 165.592 735 6 1 -32.9004 -42.023 -24.4506 + 7 134.099 690 6 0 -32.7535 -41.9108 -25.85 + 7 56.7541 749 5 1 -30.0712 -37.9106 -54.4506 + 7 299.413 750 5 1 -30.05 -37.8854 -54.5091 + 7 98.1895 714 5 0 -29.7182 -37.2139 -55.85 + 7 27.2905 715 5 0 -29.6422 -37.05 -56.1575 + 7 114.817 791 4 1 -21.7541 -22.6448 -84.4502 + 7 14.3503 788 4 0 -21.9435 -22.2626 -85.8502 + 7 109.489 789 4 0 -21.95 -22.25 -85.9002 + 7 111.914 760 3 1 -27.9166 -14.7028 -114.45 + 7 33.6244 829 3 0 -28.1634 -14.1079 -115.851 + 7 91.3218 830 3 0 -28.1854 -14.05 -115.962 + 7 28.9584 831 3 0 -28.3204 -13.85 -116.177 + 7 121.454 952 3 0 -72.0444 10.4915 -116.25 + 7 86.4678 951 3 0 -72.1791 10.45 -116.087 + 7 175.899 535 3 1 -72.8709 9.9353 -114.85 + 7 19.0031 534 3 1 -73.0501 9.8128 -114.493 + 7 73.5242 536 3 1 -72.85 10.0686 -114.462 + 7 46.4361 537 3 1 -72.65 10.1379 -114.461 + 7 77.6373 538 3 1 -72.4498 10.2122 -114.455 + 7 308.945 539 3 1 -72.25 10.3068 -114.519 + 7 4.9422 551 3 1 -69.6653 9.9809 -114.85 + 7 269.367 552 3 1 -69.65 9.97745 -114.843 + 7 422.746 751 5 1 -29.85 -37.7876 -54.5961 + 7 107.742 719 3 1 -36.1148 -37.8939 -114.45 + 7 161.749 709 3 0 -36.1664 -38.0583 -115.85 + 7 106.284 714 2 1 -37.1749 -40.742 -144.45 + 7 139.248 696 2 0 -37.3201 -40.7103 -145.85 + 7 119.985 693 1 1 -41.2708 -40.5967 -174.45 + 7 141.279 696 1 0 -41.8056 -40.6717 -175.85 + 7 124.819 650 0 1 -49.854 -45.0358 -204.45 + 7 106.184 675 0 0 -50.3371 -45.0118 -205.85 + 7 7.45796 396 1 1 -100.75 80.8007 -174.761 +Number of digits in this event: 122 +Using G4ParticleGun... +Particle energy: 4.12761 LIN +Particle: gamma Event: 8 -Number of tracker hits in this event = 1 - 8 142.423 895 1 0 112.567 -0.966626 -176.25 -Number of digits in this event = 3 -Using G4ParticleGun ... -3.35532 LIN -gamma +Number of tracker hits in this event: 6 + 8 5.86834 829 1 0 92.7377 -14.108 -176.25 + 8 33.3911 830 1 0 92.8931 -14.05 -175.91 + 8 128.63 1356 1 1 91.4108 -15.3418 -174.85 + 8 168.828 1355 1 1 91.35 -15.558 -174.824 + 8 81.7552 466 1 0 8.45626 -86.85 -175.938 + 8 101.141 100 7 0 -177.282 -159.95 3.83148 +Number of digits in this event: 4 +Using G4ParticleGun... +Particle energy: 5.32092 LIN +Particle: gamma Event: 9 -Number of tracker hits in this event = 3 - 9 20.5912 1004 2 0 120.273 21.05 -146.235 - 9 42.9552 1368 8 1 93.91 15.6122 35.15 - 9 24.3952 979 8 0 94.0541 15.8577 34.15 -Number of digits in this event = 3 -Using G4ParticleGun ... -2.7138 LIN -gamma +Number of tracker hits in this event: 3 + 9 15.2677 1006 4 1 21.446 -157.031 -84.85 + 9 288.497 976 1 0 6.44234 15.3828 -176.25 + 9 26.0908 977 1 0 6.46294 15.45 -176.025 +Number of digits in this event: 3 +Using G4ParticleGun... +Particle energy: 9.91425 LIN +Particle: gamma Event: 10 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 -Using G4ParticleGun ... -6.0955 LIN -gamma +Number of tracker hits in this event: 15 + 10 298.904 837 3 1 -12.6409 58.9342 -114.45 + 10 251.753 1194 3 0 -12.641 58.9349 -115.85 + 10 374.451 837 2 1 -12.6413 58.9651 -144.45 + 10 319.409 1194 2 0 -12.643 58.9668 -145.85 + 10 327.796 836 1 1 -12.6822 59.0012 -174.45 + 10 238.02 1194 1 0 -12.6861 59.0026 -175.85 + 10 326.891 836 0 1 -12.7713 59.0389 -204.45 + 10 244.555 1194 0 0 -12.777 59.0364 -205.85 + 10 5.95682 357 11 1 -108.689 114.974 125.15 + 10 125.206 356 11 1 -108.75 115.001 125.364 + 10 155.111 355 11 1 -108.95 115.207 125.469 + 10 42.0321 1476 11 0 -110.95 115.532 124.15 + 10 164.727 1477 11 0 -111.008 115.55 124.111 + 10 84.361 344 11 1 -111.29 115.928 125.15 + 10 17.0708 1104 10 0 175.624 40.9085 93.75 +Number of digits in this event: 13 +Using G4ParticleGun... +Particle energy: 3.17476 LIN +Particle: gamma Event: 11 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 -Using G4ParticleGun ... -8.13919 LIN -gamma +Number of tracker hits in this event: 18 + 11 293.393 515 3 1 -76.8623 110.608 -114.45 + 11 280.893 1452 3 0 -76.8786 110.629 -115.85 + 11 99.9877 514 2 1 -77.2248 111.029 -144.45 + 11 108.85 1454 2 0 -77.2293 111.044 -145.85 + 11 124.485 513 1 1 -77.3146 111.304 -174.45 + 11 103.928 1455 1 0 -77.3355 111.314 -175.85 + 11 136.945 511 0 1 -77.8175 111.449 -204.45 + 11 109.776 1456 0 0 -77.8419 111.452 -205.85 + 11 123.794 515 2 1 -76.8723 110.575 -144.45 + 11 190.781 1452 2 0 -76.8744 110.571 -145.85 + 11 136.851 515 1 1 -76.9182 110.522 -174.45 + 11 103.043 1451 1 0 -76.9243 110.517 -175.85 + 11 217.498 514 0 1 -77.0548 110.403 -204.45 + 11 141.855 1451 0 0 -77.0634 110.401 -205.85 + 11 117.404 1451 2 0 -76.8918 110.55 -146.022 + 11 2.9257 1450 2 0 -77.0207 110.35 -146.241 + 11 47.7157 1462 2 0 -99.7176 112.701 -146.25 + 11 182.034 1463 2 0 -99.7857 112.75 -146.221 +Number of digits in this event: 12 +Using G4ParticleGun... +Particle energy: 1.74025 LIN +Particle: gamma Event: 12 -Number of tracker hits in this event = 5 - 12 24.1019 568 0 0 -21.4088 -66.25 -206.108 - 12 234.418 569 0 0 -21.2294 -66.2497 -205.897 - 12 154.386 570 0 0 -21.0566 -66.0497 -205.935 - 12 292.77 406 3 1 -98.8389 156.504 -114.45 - 12 109.811 405 3 1 -98.95 156.5 -114.595 -Number of digits in this event = 5 -Using G4ParticleGun ... -3.59388 LIN -gamma +Number of tracker hits in this event: 5 + 12 154.952 1425 3 1 105.159 93.8256 -114.85 + 12 35.7104 1244 3 0 141.992 69.05 -116.151 + 12 97.0298 1424 3 1 105.15 93.7239 -114.549 + 12 94.3327 719 13 0 126.464 -36.1432 183.75 + 12 108.337 718 13 0 126.443 -36.25 184.124 +Number of digits in this event: 3 +Using G4ParticleGun... +Particle energy: 4.94185 LIN +Particle: gamma Event: 13 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 -Using G4ParticleGun ... -9.09332 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 1 +Using G4ParticleGun... +Particle energy: 8.66766 LIN +Particle: gamma Event: 14 -Number of tracker hits in this event = 50 - 14 503.705 1388 8 1 97.8037 -103.123 35.55 - 14 256.471 385 8 0 97.8041 -103.123 34.15 - 14 112.708 1388 7 1 97.8143 -103.124 5.55 - 14 107.031 385 7 0 97.8148 -103.125 4.15 - 14 223.171 1388 6 1 97.8271 -103.134 -24.45 - 14 182.643 385 6 0 97.8271 -103.134 -25.85 - 14 102.211 1388 5 1 97.8287 -103.136 -54.45 - 14 109.496 385 5 0 97.8296 -103.137 -55.85 - 14 109.127 1388 4 1 97.8507 -103.14 -84.45 - 14 119.571 385 4 0 97.8523 -103.14 -85.85 - 14 109.644 1388 3 1 97.8825 -103.145 -114.45 - 14 151.364 385 3 0 97.8845 -103.144 -115.85 - 14 174.832 1388 2 1 97.9203 -103.132 -144.45 - 14 105.147 385 2 0 97.9204 -103.131 -145.85 - 14 117.947 1388 1 1 97.9153 -103.113 -174.45 - 14 148.499 385 1 0 97.9165 -103.112 -175.85 - 14 200.702 1388 0 1 97.9436 -103.098 -204.45 - 14 394.441 385 0 0 97.9446 -103.098 -205.85 - 14 66.5818 383 0 0 96.808 -103.352 -205.85 - 14 87.614 384 0 0 96.6651 -103.35 -205.904 - 14 21.2432 561 0 0 82.767 -67.85 -205.969 - 14 291.404 1305 0 1 81.2373 -66.932 -204.85 - 14 130.429 1357 6 0 58.6776 91.55 -25.9045 - 14 177.582 1189 6 1 57.9296 92.6731 -24.85 - 14 123.204 1188 6 1 57.8498 92.7495 -24.7504 - 14 85.8758 1358 6 0 57.5023 91.7852 -25.85 - 14 288.776 1389 2 1 97.9501 -103.144 -144.559 - 14 124.424 480 0 0 12.395 -83.9263 -206.25 - 14 103.621 960 0 1 12.1166 -84.0139 -204.85 - 14 36.4516 959 0 1 12.05 -84.0232 -204.486 - 14 333.214 567 1 0 16.7954 -66.6254 -176.25 - 14 102.286 983 1 1 16.7293 -66.2496 -174.85 - 14 210.482 1387 8 1 97.75 -103.054 35.4344 - 14 117.37 1391 7 1 98.4357 -103.279 5.55 - 14 103.109 384 7 0 98.4557 -103.254 4.15 - 14 144.838 1393 6 1 98.8239 -102.808 -24.45 - 14 126.404 386 6 0 98.833 -102.769 -25.85 - 14 115.609 1393 5 1 98.9361 -101.904 -54.45 - 14 139.345 391 5 0 98.929 -101.856 -55.85 - 14 143.196 1393 4 1 98.7796 -100.94 -84.45 - 14 111.342 396 4 0 98.7635 -100.914 -85.85 - 14 105.098 1391 3 1 98.5148 -100.352 -114.45 - 14 134.143 399 3 0 98.5142 -100.321 -115.85 - 14 106.673 1391 2 1 98.417 -99.6255 -144.45 - 14 131.81 402 2 0 98.463 -99.5704 -145.85 - 14 122.604 1396 1 1 99.4907 -98.3335 -174.45 - 14 193.533 409 1 0 99.5025 -98.253 -175.85 - 14 104.192 1397 0 1 99.7105 -96.8294 -204.45 - 14 106.843 416 0 0 99.7215 -96.7694 -205.85 - 14 154.791 781 2 1 -23.65 -151.617 -144.563 -Number of digits in this event = 29 -Using G4ParticleGun ... -6.3872 LIN -gamma +Number of tracker hits in this event: 9 + 14 257.77 706 2 1 -38.7849 -41.9912 -144.45 + 14 341.436 690 2 0 -38.7863 -41.9915 -145.85 + 14 243.801 706 1 1 -38.8007 -41.9971 -174.45 + 14 221.908 690 1 0 -38.8013 -41.9972 -175.85 + 14 402.613 706 0 1 -38.8217 -41.9839 -204.45 + 14 385.238 690 0 0 -38.8263 -41.9839 -205.85 + 14 126.139 162 2 0 73.1414 -147.55 -146.245 + 14 162.367 1663 7 1 152.75 68.0897 5.309 + 14 3.02145 707 0 1 -38.65 -41.9519 -204.835 +Number of digits in this event: 10 +Using G4ParticleGun... +Particle energy: 3.93943 LIN +Particle: gamma Event: 15 -Number of tracker hits in this event = 0 -Number of digits in this event = 2 -Using G4ParticleGun ... -1.79481 LIN -gamma +Number of tracker hits in this event: 4 + 15 20.2485 879 4 0 176.514 -4.07513 -86.25 + 15 140.373 880 4 0 176.509 -4.05 -86.2122 + 15 94.2786 391 9 0 -70.1949 -101.766 63.75 + 15 9.6919 1686 8 1 157.52 83.9333 35.55 +Number of digits in this event: 3 +Using G4ParticleGun... +Particle energy: 9.51927 LIN +Particle: gamma Event: 16 -Number of tracker hits in this event = 39 - 16 248.505 449 6 1 -90.2324 -57.1214 -24.45 - 16 242.813 614 6 0 -90.2418 -57.1254 -25.85 - 16 175.581 448 5 1 -90.4107 -57.2503 -54.45 - 16 126.581 613 5 0 -90.4092 -57.2613 -55.85 - 16 128.782 448 4 1 -90.3695 -57.5075 -84.45 - 16 144.344 612 4 0 -90.3743 -57.5268 -85.85 - 16 107.916 448 3 1 -90.4757 -57.916 -114.45 - 16 102.411 610 3 0 -90.4852 -57.9349 -115.85 - 16 116.964 447 2 1 -90.6759 -58.3157 -144.45 - 16 120.684 608 2 0 -90.6913 -58.3362 -145.85 - 16 102.144 445 1 1 -90.9982 -58.7852 -174.45 - 16 112.79 606 1 0 -91.0137 -58.8064 -175.85 - 16 124.639 443 0 1 -91.3511 -59.241 -204.45 - 16 132.12 603 0 0 -91.4494 -59.3826 -205.85 - 16 78.2782 1278 2 0 -65.7912 75.65 -146.112 - 16 3.6765 1279 2 0 -65.7361 75.85 -145.866 - 16 144.632 573 2 1 -65.2845 76.5534 -144.85 - 16 337.892 574 2 1 -65.25 76.7477 -144.633 - 16 246.153 194 5 0 53.3573 -141.15 -56.1921 - 16 189.405 195 5 0 53.7199 -141.15 -55.9376 - 16 168.067 204 2 0 -17.5049 -139.15 -146.03 - 16 170.445 827 4 1 -14.5319 -135.026 -84.85 - 16 269.189 826 4 1 -14.6507 -134.77 -84.6038 - 16 63.7163 203 2 0 -17.3966 -139.35 -145.871 - 16 6.10379 602 0 0 -91.5332 -59.45 -206.233 - 16 103.711 450 4 1 -89.9697 -56.8517 -84.45 - 16 435.122 616 4 0 -89.9623 -56.8464 -85.85 - 16 107.359 451 3 1 -89.8042 -56.7502 -114.45 - 16 118.085 616 3 0 -89.7948 -56.7349 -115.85 - 16 106.692 452 2 1 -89.6326 -56.4208 -144.45 - 16 110.833 618 2 0 -89.6282 -56.408 -145.85 - 16 128.714 452 1 1 -89.5714 -56.1127 -174.45 - 16 114.011 619 1 0 -89.5758 -56.103 -175.85 - 16 122.004 451 0 1 -89.6512 -55.9207 -204.45 - 16 113.397 620 0 0 -89.6534 -55.9096 -205.85 - 16 139.763 615 4 0 -89.9565 -56.8502 -85.9694 - 16 8.11364 617 4 0 -89.4648 -56.65 -86.24 - 16 25.0517 779 4 0 -108.658 -24.2483 -86.25 - 16 70.4328 778 4 0 -108.642 -24.2501 -86.2408 -Number of digits in this event = 21 -Using G4ParticleGun ... -9.73268 LIN -gamma +Number of tracker hits in this event: 4 + 16 14.9237 647 0 1 -50.5919 166.893 -204.85 + 16 201.411 646 0 1 -50.6501 166.986 -204.541 + 16 33.7971 519 4 0 -140.427 -76.1094 -86.25 + 16 30.3387 520 4 0 -140.392 -76.0498 -86.2115 +Number of digits in this event: 4 +Using G4ParticleGun... +Particle energy: 5.39885 LIN +Particle: gamma Event: 17 -Number of tracker hits in this event = 38 - 17 319.65 1021 4 1 24.2804 70.6086 -84.45 - 17 239.995 1252 4 0 24.2788 70.6109 -85.85 - 17 195.117 1021 3 1 24.2687 70.6157 -114.45 - 17 342.918 1252 3 0 24.2608 70.6197 -115.85 - 17 105.376 1020 2 1 24.0978 70.7131 -144.45 - 17 163.942 1253 2 0 24.089 70.7127 -145.85 - 17 112.917 1019 1 1 23.918 70.7076 -174.45 - 17 115.579 1253 1 0 23.9073 70.7012 -175.85 - 17 210.728 1018 0 1 23.6633 70.5545 -204.45 - 17 217.258 1252 0 0 23.6573 70.5468 -205.85 - 17 130.582 36 4 0 103.042 -172.876 -86.2499 - 17 146.261 35 4 0 103.131 -172.95 -86.076 - 17 172.516 1422 4 1 104.62 -173.124 -84.8495 - 17 54.357 1423 4 1 104.75 -173.19 -84.7816 - 17 58.6502 1424 4 1 104.95 -173.277 -84.705 - 17 42.3492 1425 4 1 105.15 -173.309 -84.6559 - 17 55.6374 1426 4 1 105.35 -173.322 -84.6677 - 17 55.2564 1427 4 1 105.55 -173.346 -84.6967 - 17 72.1829 1428 4 1 105.75 -173.337 -84.7488 - 17 68.1694 1429 4 1 105.95 -173.323 -84.7401 - 17 48.0682 1430 4 1 106.15 -173.316 -84.7794 - 17 205.571 34 4 0 108.138 -173.192 -85.85 - 17 213.529 37 4 0 102.942 -172.75 -85.9166 - 17 67.3017 38 4 0 102.825 -172.55 -85.8948 - 17 47.4252 39 4 0 102.87 -172.35 -85.9058 - 17 62.9853 1415 4 1 103.212 -169.639 -84.85 - 17 65.2433 1416 4 1 103.35 -169.524 -84.7802 - 17 88.3911 1417 4 1 103.55 -169.477 -84.7598 - 17 123.804 1418 4 1 103.75 -169.476 -84.7908 - 17 205.653 1419 4 1 103.95 -169.621 -84.7668 - 17 187.95 1412 4 1 102.703 -172.858 -84.85 - 17 123.265 1020 4 1 24.25 70.6286 -84.4666 - 17 104.519 1021 2 1 24.2742 70.5544 -144.45 - 17 119.227 1252 2 0 24.2732 70.5529 -145.85 - 17 178.077 1020 1 1 24.2486 70.52 -174.45 - 17 118.849 1252 1 0 24.2454 70.5177 -175.85 - 17 194.696 1020 0 1 24.1727 70.4727 -204.45 - 17 48.6694 1253 3 0 24.2521 70.6502 -115.963 -Number of digits in this event = 20 -Using G4ParticleGun ... -8.76727 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 2.11301 LIN +Particle: gamma Event: 18 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 -Using G4ParticleGun ... -9.34222 LIN -gamma +Number of tracker hits in this event: 2 + 18 9.25468 42 13 1 -171.55 150.245 185.224 + 18 67.1212 1262 3 1 72.45 129.568 -114.772 +Number of digits in this event: 3 +Using G4ParticleGun... +Particle energy: 3.53114 LIN +Particle: gamma Event: 19 -Number of tracker hits in this event = 2 - 19 182.699 757 13 1 -28.496 -147.858 185.15 - 19 3.31929 258 13 0 -44.7937 -128.55 184.061 -Number of digits in this event = 3 -Using G4ParticleGun ... -8.483 LIN -gamma +Number of tracker hits in this event: 1 + 19 74.4516 1108 5 1 41.65 -94.5715 -54.7515 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 1.61829 LIN +Particle: gamma Event: 20 -Number of tracker hits in this event = 2 - 20 19.8849 1070 1 0 169.072 34.25 -175.882 - 20 87.9182 1152 0 1 50.5424 147.315 -204.85 -Number of digits in this event = 3 -Using G4ParticleGun ... -5.8368 LIN -gamma +Number of tracker hits in this event: 24 + 20 346.699 1148 4 1 49.7236 54.5745 -84.45 + 20 311.322 1172 4 0 49.7192 54.5746 -85.85 + 20 105.149 1147 3 1 49.6382 54.5818 -114.45 + 20 257.244 1172 3 0 49.6282 54.5623 -115.85 + 20 138.762 1147 2 1 49.4567 54.1307 -144.45 + 20 246.886 1170 2 0 49.4767 54.1206 -145.85 + 20 100.739 1149 1 1 49.9061 53.953 -174.451 + 20 161.722 1169 1 0 49.8987 53.9683 -175.85 + 20 386.095 1149 0 1 49.8764 54.1527 -204.45 + 20 188.159 1170 0 0 49.881 54.1424 -205.85 + 20 19.0495 1148 0 1 49.8499 54.1245 -204.522 + 20 212.332 1150 0 1 50.2354 53.7987 -204.45 + 20 134.701 1151 0 1 50.25 53.7965 -204.803 + 20 241.732 1168 0 0 50.2946 53.7855 -205.85 + 20 54.0769 947 4 0 61.2901 9.55701 -86.2497 + 20 108.669 946 4 0 61.3118 9.44988 -86.1303 + 20 39.2555 945 4 0 61.4424 9.25 -85.9032 + 20 169.568 1210 4 1 62.0877 8.10934 -84.85 + 20 59.483 1140 4 1 48.05 -28.2548 -84.6148 + 20 170.75 1149 3 1 49.9711 54.6175 -114.45 + 20 106.207 1149 2 1 49.9994 54.1153 -144.45 + 20 137.309 1150 1 1 50.2285 53.3287 -174.45 + 20 106.868 1166 1 0 50.2234 53.2914 -175.85 + 20 157.412 1161 0 0 50.2645 52.3324 -205.85 +Number of digits in this event: 17 +Using G4ParticleGun... +Particle energy: 1.28381 LIN +Particle: gamma Event: 21 -Number of tracker hits in this event = 1 - 21 21.1735 887 4 0 -126.307 -2.51923 -86.25 -Number of digits in this event = 1 -Using G4ParticleGun ... -5.65841 LIN -gamma +Number of tracker hits in this event: 28 + 21 424.048 464 5 1 -87.1837 8.84311 -54.4501 + 21 257.684 943 5 0 -87.1463 8.82765 -55.85 + 21 99.7422 465 4 1 -86.9546 8.79309 -84.45 + 21 118.87 943 4 0 -86.9556 8.84939 -85.85 + 21 135.943 944 4 0 -86.9556 8.85001 -85.8657 + 21 123.608 466 3 1 -86.7102 10.1768 -114.45 + 21 97.7469 950 3 0 -86.6648 10.213 -115.85 + 21 126.381 470 2 1 -85.9084 10.54 -144.45 + 21 2.87677 471 2 1 -85.85 10.5177 -144.843 + 21 57.8588 952 2 0 -85.7025 10.4615 -145.85 + 21 49.0221 951 2 0 -85.6727 10.45 -146.056 + 21 116.354 491 1 1 -81.7062 8.43258 -174.45 + 21 113.461 941 1 0 -81.645 8.42704 -175.85 + 21 182.098 499 0 1 -80.2391 8.39711 -204.45 + 21 407.999 940 0 0 -80.1369 8.21615 -205.85 + 21 142.34 941 0 0 -79.5276 8.27412 -205.851 + 21 92.0248 507 0 1 -78.4556 7.30411 -204.849 + 21 105.151 508 0 1 -78.45 7.29728 -204.841 + 21 129.955 463 4 1 -87.4142 8.79461 -84.45 + 21 157.348 461 3 1 -87.7474 8.79991 -114.45 + 21 132.405 943 3 0 -87.7626 8.81042 -115.85 + 21 89.4664 459 2 1 -88.1022 9.03216 -144.45 + 21 120.077 944 2 0 -88.1114 9.03498 -145.85 + 21 189.967 458 1 1 -88.3042 9.07328 -174.45 + 21 123.292 945 1 0 -88.317 9.07613 -175.85 + 21 105.599 457 0 1 -88.5786 9.11899 -204.45 + 21 162.457 945 0 0 -88.5656 9.12473 -205.85 + 21 26.5707 943 2 0 -13.7613 8.78457 -146.25 +Number of digits in this event: 16 +Using G4ParticleGun... +Particle energy: 4.96524 LIN +Particle: gamma Event: 22 -Number of tracker hits in this event = 8 - 22 103.279 1024 8 0 174.267 24.9055 33.75 - 22 5.7265 1025 8 0 174.559 25.05 34.1471 - 22 45.3344 1787 8 1 177.708 28.1886 35.15 - 22 98.6006 1788 8 1 177.75 28.2482 35.1608 - 22 25.3546 1049 8 0 177.461 29.972 34.15 - 22 302.829 1050 8 0 177.455 30.05 34.1167 - 22 63.0939 1051 8 0 177.654 30.25 33.9269 - 22 87.1404 119 2 1 -156.15 94.546 -144.648 -Number of digits in this event = 2 -Using G4ParticleGun ... -8.6114 LIN -gamma +Number of tracker hits in this event: 5 + 22 228.369 573 1 1 -65.3435 128.716 -174.45 + 22 384.329 1542 1 0 -65.3428 128.718 -175.85 + 22 271.941 573 0 1 -65.327 128.756 -204.45 + 22 260.283 1543 0 0 -65.3261 128.758 -205.85 + 22 172.641 38 2 0 1.83456 -172.35 -146.135 +Number of digits in this event: 8 +Using G4ParticleGun... +Particle energy: 2.05082 LIN +Particle: gamma Event: 23 -Number of tracker hits in this event = 9 - 23 221.846 1414 2 1 103.08 -30.4807 -144.45 - 23 302.689 747 2 0 103.08 -30.4805 -145.85 - 23 114.779 1414 1 1 103.09 -30.4723 -174.45 - 23 244.674 747 1 0 103.09 -30.4736 -175.85 - 23 135.019 1414 0 1 103.096 -30.5006 -204.45 - 23 232.213 747 0 0 103.084 -30.4919 -205.85 - 23 184.89 1458 0 1 111.761 -98.7056 -204.45 - 23 156.543 1413 1 1 102.843 -30.5897 -174.45 - 23 106.857 1411 0 1 102.424 -30.5696 -204.45 -Number of digits in this event = 9 -Using G4ParticleGun ... -9.56021 LIN -gamma +Number of tracker hits in this event: 47 + 23 352.762 1313 9 1 82.7755 65.3047 65.55 + 23 258.368 1226 9 0 82.7807 65.3032 64.15 + 23 149.062 1314 8 1 82.8601 65.2243 35.55 + 23 118.122 1225 8 0 82.8651 65.2129 34.15 + 23 219.015 1314 7 1 82.9521 64.9562 5.55 + 23 93.3699 1224 7 0 82.9519 64.9396 4.15 + 23 120.901 1314 6 1 82.9644 64.576 -24.45 + 23 139.59 1222 6 0 82.9608 64.5634 -25.85 + 23 105.741 1314 5 1 82.9023 64.3276 -54.45 + 23 109.316 1221 5 0 82.9082 64.3181 -55.85 + 23 134.306 1314 4 1 83.0326 64.09 -84.45 + 23 115.842 1220 4 0 83.0317 64.0827 -85.85 + 23 111.208 1314 3 1 82.9044 63.975 -114.45 + 23 140.156 1219 3 0 82.9022 63.9868 -115.85 + 23 139.837 1314 2 1 82.8916 64.1911 -144.45 + 23 373.447 1220 2 0 82.8958 64.1929 -145.85 + 23 119.486 1314 1 1 82.9289 64.3132 -174.45 + 23 157.388 1221 1 0 82.9217 64.3225 -175.85 + 23 130.695 1313 0 1 82.8243 64.4837 -204.45 + 23 460.961 1222 0 0 82.7921 64.4831 -205.85 + 23 473.397 1313 7 1 82.85 64.8865 5.47823 + 23 254.426 1313 8 1 82.8126 65.3097 35.55 + 23 129.674 1226 8 0 82.8131 65.3063 34.15 + 23 193.764 1226 7 0 82.7546 65.2778 4.15 + 23 151.483 1310 6 1 82.0751 65.9127 -24.45 + 23 130.438 1229 6 0 82.0438 65.9421 -25.85 + 23 152.764 1306 5 1 81.4253 66.5634 -54.45 + 23 122.891 1232 5 0 81.3905 66.5863 -55.85 + 23 112.22 1303 4 1 80.666 67.0106 -84.45 + 23 165.638 1234 4 0 80.6324 67.0394 -85.85 + 23 188.523 1299 3 1 79.9515 67.6756 -114.45 + 23 111.903 1238 3 0 79.9137 67.7072 -115.85 + 23 141.047 1295 2 1 79.1269 68.3392 -144.45 + 23 120.26 1241 2 0 79.0822 68.374 -145.85 + 23 340.707 1290 1 1 78.1108 69.1021 -174.45 + 23 142.739 1245 1 0 78.0605 69.1306 -175.85 + 23 85.6812 1285 0 1 77.0612 69.7031 -204.45 + 23 37.5186 1284 0 1 77.05 69.7087 -204.735 + 23 138.591 1248 0 0 77.0085 69.7309 -205.85 + 23 14.471 925 7 0 173.407 5.25 3.9834 + 23 101.523 1249 0 0 76.9643 69.8505 -206.074 + 23 261.968 1250 0 0 76.9225 70.05 -206.054 + 23 110.788 1289 1 1 78.05 69.0523 -174.487 + 23 298.468 1286 0 1 77.3082 70.2414 -204.45 + 23 84.0048 1287 0 1 77.4504 70.2641 -204.64 + 23 59.3101 1291 1 1 78.2937 68.8863 -174.45 + 23 262.592 1312 0 1 82.6155 64.5889 -204.45 +Number of digits in this event: 34 +Using G4ParticleGun... +Particle energy: 2.03896 LIN +Particle: gamma Event: 24 -Number of tracker hits in this event = 8 - 24 350.83 248 3 1 -130.398 -1.05293 -114.45 - 24 4.10953 249 3 1 -130.35 -0.897316 -114.71 - 24 79.6239 186 1 0 21.7552 -142.774 -176.25 - 24 210.91 187 1 0 21.9074 -142.75 -176.212 - 24 8.69217 354 2 0 22.6668 -109.245 -146.25 - 24 60.6271 778 3 0 -88.5604 -24.45 -116.223 - 24 89.7377 723 4 1 -35.2886 -44.7307 -84.85 - 24 138.217 724 4 1 -35.25 -44.4844 -84.4842 -Number of digits in this event = 5 -Using G4ParticleGun ... -1.38744 LIN -gamma +Number of tracker hits in this event: 8 + 24 213.486 816 1 1 -16.7176 -4.175 -174.45 + 24 240.73 879 1 0 -16.7184 -4.16032 -175.85 + 24 273.524 816 0 1 -16.665 -3.90066 -204.45 + 24 160.832 880 0 0 -16.6604 -3.88827 -205.85 + 24 2.63554 610 4 1 -57.85 80.1169 -84.8204 + 24 18.7818 873 0 0 57.9012 -5.3056 -206.25 + 24 244.837 879 0 0 -16.7525 -4.12735 -205.85 + 24 222.15 774 0 0 -41.0003 -25.05 -205.975 +Number of digits in this event: 7 +Using G4ParticleGun... +Particle energy: 3.07692 LIN +Particle: gamma Event: 25 -Number of tracker hits in this event = 4 - 25 78.9952 434 10 0 139.774 -93.15 93.8146 - 25 21.0699 433 10 0 139.813 -93.35 94.0759 - 25 114.872 1598 10 1 139.943 -94.2287 95.15 - 25 198.035 1599 10 1 139.95 -94.2768 95.2174 -Number of digits in this event = 3 -Using G4ParticleGun ... -9.0244 LIN -gamma +Number of tracker hits in this event: 19 + 25 193.296 457 2 0 2.91168 -88.4504 -145.938 + 25 358.928 914 1 1 2.8939 -88.4643 -174.45 + 25 154.459 457 1 0 2.87771 -88.4728 -175.85 + 25 141.426 912 0 1 2.56286 -88.6079 -204.45 + 25 108.27 457 0 0 2.55092 -88.6081 -205.85 + 25 127.96 458 1 0 2.92371 -88.4357 -175.85 + 25 127.533 914 0 1 2.96074 -88.2885 -204.45 + 25 171.039 458 0 0 2.96213 -88.2821 -205.85 + 25 74.1224 853 3 0 -128.096 -9.3776 -116.25 + 25 63.9424 459 0 0 2.97948 -88.2498 -206.119 + 25 15.505 275 0 0 9.89418 -125.123 -206.25 + 25 92.2166 274 0 0 9.8853 -125.15 -206.246 + 25 110.377 345 0 0 -11.2614 -111.124 -206.25 + 25 105.167 332 1 0 1.27221 -113.623 -176.25 + 25 89.5932 331 1 0 1.14729 -113.75 -175.978 + 25 159.554 903 1 1 0.761886 -113.917 -174.85 + 25 116.182 902 1 1 0.65 -114.204 -174.705 + 25 206.571 308 1 0 -1.40452 -118.459 -175.85 + 25 0.551908 307 1 0 -1.43182 -118.55 -175.913 +Number of digits in this event: 11 +Using G4ParticleGun... +Particle energy: 2.35111 LIN +Particle: gamma Event: 26 -Number of tracker hits in this event = 3 - 26 76.7988 1237 4 0 -94.5276 67.6113 -86.25 - 26 136.327 1236 4 0 -94.5862 67.4499 -86.1545 - 26 186.869 1235 4 0 -94.5885 67.25 -85.99 -Number of digits in this event = 4 -Using G4ParticleGun ... -6.2992 LIN -gamma +Number of tracker hits in this event: 59 + 26 250.726 1443 7 1 108.899 16.6815 5.55 + 26 227.652 983 7 0 108.902 16.6811 4.15 + 26 140.457 1444 6 1 108.975 16.6562 -24.45 + 26 178.259 983 6 0 108.976 16.6593 -25.85 + 26 154.245 1444 5 1 109.002 16.7236 -54.45 + 26 150.821 983 5 0 109.012 16.7273 -55.85 + 26 120.007 1445 4 1 109.229 16.8106 -84.45 + 26 137.359 983 4 0 109.239 16.8238 -85.85 + 26 121.79 1446 3 1 109.505 17.1105 -114.45 + 26 114.952 985 3 0 109.508 17.1144 -115.85 + 26 95.2146 1447 2 1 109.56 17.1537 -144.45 + 26 119.593 985 2 0 109.561 17.1335 -145.85 + 26 292.319 1448 1 1 109.823 16.6397 -174.45 + 26 129.737 982 1 0 109.849 16.6067 -175.85 + 26 130.385 1451 0 1 110.373 15.9521 -204.45 + 26 222.54 979 0 0 110.404 15.92 -205.85 + 26 270.995 1448 2 1 109.832 17.0326 -144.45 + 26 195.344 984 2 0 109.84 17.0389 -145.85 + 26 121.437 985 1 0 109.925 17.2498 -175.85 + 26 650.041 1449 0 1 110.024 17.2972 -204.45 + 26 116.59 986 0 0 110.05 17.2864 -205.85 + 26 27.8815 1453 1 1 110.94 16.1131 -174.45 + 26 104.929 1454 1 1 110.95 16.1073 -174.564 + 26 294.926 979 1 0 111.063 16.0458 -175.85 + 26 388.69 1466 0 1 113.401 14.8267 -204.45 + 26 15.2682 975 0 0 113.349 15.2381 -205.85 + 26 240.862 976 0 0 113.347 15.25 -205.89 + 26 134.743 971 0 0 113.597 14.4225 -205.85 + 26 94.9195 973 0 0 113.786 14.67 -205.85 + 26 22.1921 972 0 0 113.885 14.65 -206.207 + 26 350.938 1443 1 1 108.922 17.0511 -174.45 + 26 288.926 984 1 0 108.979 17.0493 -175.85 + 26 164.395 984 0 0 110.08 16.8865 -205.85 + 26 117.312 977 0 0 110.17 15.5364 -205.85 + 26 148.481 1442 6 1 108.673 16.593 -24.45 + 26 235.358 982 6 0 108.658 16.5889 -25.85 + 26 131.401 1440 5 1 108.34 16.4959 -54.45 + 26 133.686 982 5 0 108.312 16.4889 -55.85 + 26 125.165 1437 4 1 107.693 16.3615 -84.45 + 26 109.409 981 4 0 107.659 16.362 -85.85 + 26 107.155 1434 3 1 106.967 16.3855 -114.45 + 26 109.876 981 3 0 106.938 16.3889 -115.85 + 26 109.089 1430 2 1 106.317 16.4306 -144.45 + 26 127.743 981 2 0 106.283 16.4242 -145.85 + 26 227.637 1426 1 1 105.547 16.2726 -174.45 + 26 112.571 981 1 0 105.509 16.2552 -175.85 + 26 111.355 1422 0 1 104.748 15.8775 -204.45 + 26 46.4657 1172 2 0 43.6105 54.6 -146.25 + 26 156.17 1173 2 0 43.5693 54.65 -146.131 + 26 85.0842 1114 2 1 42.9686 53.989 -144.85 + 26 150.855 1115 2 1 43.05 53.882 -144.837 + 26 21.7994 996 1 0 104.197 19.3753 -175.85 + 26 98.9036 997 1 0 104.147 19.4501 -175.908 + 26 51.6641 998 1 0 104.068 19.6501 -176.145 + 26 34.9174 953 1 0 128.794 10.7475 -176.25 + 26 72.4636 952 1 0 128.777 10.6492 -176.199 + 26 83.602 951 1 0 128.824 10.45 -176.201 + 26 283.14 950 1 0 128.855 10.2498 -176.156 + 26 194.19 1544 1 1 129.014 9.77452 -174.85 +Number of digits in this event: 39 +Using G4ParticleGun... +Particle energy: 1.67388 LIN +Particle: gamma Event: 27 -Number of tracker hits in this event = 65 - 27 239.599 1165 6 1 53.0554 115.558 -24.45 - 27 596.648 1477 6 0 53.0528 115.558 -25.85 - 27 113.107 1164 5 1 53.0021 115.56 -54.45 - 27 208.172 1477 5 0 53.0034 115.561 -55.85 - 27 107.578 1165 4 1 53.0558 115.585 -84.45 - 27 306.333 1477 4 0 53.0722 115.598 -85.85 - 27 130.94 1167 3 1 53.4613 115.863 -114.45 - 27 174.776 1478 3 0 53.4695 115.884 -115.85 - 27 110.326 1167 2 1 53.6197 116.31 -144.45 - 27 178.409 1480 2 0 53.625 116.328 -145.85 - 27 340.416 1168 1 1 53.7422 116.695 -174.45 - 27 428.763 1482 1 0 53.766 116.715 -175.85 - 27 181.44 1171 0 1 54.281 117.108 -204.45 - 27 133.17 1484 0 0 54.3031 117.131 -205.85 - 27 185.439 1185 0 1 57.1042 116.515 -204.45 - 27 325.305 1482 0 0 57.1985 116.679 -205.85 - 27 113.094 1337 0 0 83.6715 87.5957 -206.25 - 27 440.076 1164 0 1 52.9592 116.56 -204.45 - 27 117.358 1165 5 1 53.0573 115.55 -54.45 - 27 270.438 1164 4 1 53.0313 115.578 -84.45 - 27 140.184 1164 3 1 52.9567 115.602 -114.45 - 27 190.18 1477 3 0 52.9555 115.603 -115.85 - 27 219.679 1164 2 1 52.9319 115.632 -144.45 - 27 174.356 1477 2 0 52.9322 115.634 -145.85 - 27 476.317 1164 1 1 52.9354 115.663 -174.45 - 27 348.305 1477 1 0 52.9333 115.666 -175.85 - 27 156.692 1477 0 0 52.8847 115.716 -205.85 - 27 267.88 1392 2 0 156.156 98.6139 -146.25 - 27 65.7963 1479 1 0 53.4887 116.117 -175.85 - 27 88.3863 1480 1 0 53.5973 116.15 -176.035 - 27 212.013 1212 0 1 62.4972 110.335 -204.45 - 27 429.655 1211 0 1 62.45 110.166 -204.637 - 27 95.1715 1166 0 1 53.3587 116.095 -204.45 - 27 138.791 1479 0 0 53.3835 116.069 -205.85 - 27 128.829 1153 0 1 50.7498 115.484 -204.45 - 27 119.212 1476 0 0 50.6245 115.485 -205.851 - 27 53.3993 1617 3 0 141.882 143.724 -116.25 - 27 46.652 1165 1 1 53.05 115.855 -174.743 - 27 118.427 1481 1 0 53.4312 116.35 -175.914 - 27 15.8949 1690 1 0 40.2701 158.301 -176.25 - 27 79.0268 1691 1 0 40.2245 158.35 -176.204 - 27 73.9555 1692 1 0 40.0536 158.55 -176.022 - 27 377.923 1096 1 1 39.4025 160.243 -174.85 - 27 190.994 1095 1 1 39.2496 160.845 -174.543 - 27 74.8334 1094 1 1 39.05 161.101 -174.518 - 27 89.8099 1093 1 1 38.85 161.342 -174.547 - 27 201.225 1092 1 1 38.65 161.583 -174.6 - 27 186.633 1091 1 1 38.45 162.223 -174.727 - 27 90.8265 1090 1 1 38.2499 162.667 -174.747 - 27 5.64788 1724 1 0 37.3234 165.129 -175.85 - 27 66.3894 1725 1 0 37.3155 165.15 -175.861 - 27 55.6147 1726 1 0 37.2867 165.35 -175.998 - 27 90.2355 1727 1 0 37.286 165.55 -176.116 - 27 9.09216 1728 1 0 37.2824 165.751 -176.226 - 27 62.8791 1163 3 1 52.8499 115.736 -114.487 - 27 141.634 1162 3 1 52.65 115.85 -114.621 - 27 82.854 1161 3 1 52.45 116.151 -114.638 - 27 74.7841 1160 3 1 52.25 116.286 -114.627 - 27 299.142 1159 3 1 52.05 116.282 -114.517 - 27 68.6436 1481 2 0 53.2279 116.35 -146.054 - 27 210.292 1607 2 0 60.7003 141.655 -146.25 - 27 332.119 1204 2 1 61.0375 141.673 -144.85 - 27 323.295 1205 2 1 61.05 141.657 -144.756 - 27 182.99 1206 2 1 61.25 141.347 -144.557 - 27 78.2745 1606 2 0 60.746 141.532 -145.85 -Number of digits in this event = 39 -Using G4ParticleGun ... -2.996 LIN -gamma +Number of tracker hits in this event: 24 + 27 243.899 982 6 1 16.5097 67.341 -24.45 + 27 295.711 1236 6 0 16.4972 67.342 -25.85 + 27 263.405 981 5 1 16.2651 67.3585 -54.45 + 27 277.535 1236 5 0 16.2473 67.3666 -55.85 + 27 124.983 979 4 1 15.8596 67.5281 -84.45 + 27 255.583 1237 4 0 15.8384 67.5255 -85.85 + 27 154.223 976 3 1 15.4246 67.4656 -114.45 + 27 109.895 1237 3 0 15.4044 67.4688 -115.85 + 27 115.507 974 2 1 14.9883 67.5747 -144.45 + 27 124.246 1237 2 0 14.9688 67.5761 -145.85 + 27 122.907 972 1 1 14.574 67.5738 -174.45 + 27 102.555 1237 1 0 14.5703 67.5759 -175.85 + 27 131.043 971 0 1 14.4027 67.5631 -204.45 + 27 169.054 1237 0 0 14.3867 67.5678 -205.85 + 27 111.031 981 4 1 16.4055 67.551 -84.45 + 27 138.637 981 3 1 16.3834 67.7715 -114.45 + 27 128.148 1238 3 0 16.3792 67.7851 -115.85 + 27 117.913 981 2 1 16.2997 68.0867 -144.45 + 27 114.531 1240 2 0 16.2923 68.1056 -145.85 + 27 105.654 980 1 1 16.1492 68.4454 -174.45 + 27 152.084 1242 1 0 16.1367 68.4627 -175.85 + 27 115.091 979 0 1 15.9157 68.7956 -204.45 + 27 247.216 1243 0 0 15.9081 68.8137 -205.85 + 27 53.5888 1244 0 0 15.9833 68.85 -206.135 +Number of digits in this event: 16 +Using G4ParticleGun... +Particle energy: 5.46211 LIN +Particle: gamma Event: 28 -Number of tracker hits in this event = 7 - 28 254.835 241 1 0 69.1876 -131.755 -176.25 - 28 136.145 240 1 0 69.3811 -131.95 -175.947 - 28 41.9559 125 7 0 -94.0482 -155.15 4.06956 - 28 232.012 126 7 0 -94.2138 -154.95 4.01923 - 28 38.3487 44 8 0 -87.3982 -171.272 33.75 - 28 347.691 43 8 0 -87.4505 -171.35 33.8531 - 28 11.207 455 4 0 82.4198 -88.9355 -86.25 -Number of digits in this event = 6 -Using G4ParticleGun ... -4.76087 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 6.57815 LIN +Particle: gamma Event: 29 -Number of tracker hits in this event = 60 - 29 214.943 331 8 1 -113.818 -4.84723 35.55 - 29 196.69 876 8 0 -113.818 -4.84799 34.15 - 29 104.215 331 7 1 -113.795 -4.84541 5.55 - 29 209.214 876 7 0 -113.789 -4.84243 4.15 - 29 117.247 332 6 1 -113.651 -4.74898 -24.45 - 29 306.772 876 6 0 -113.644 -4.74872 -25.85 - 29 63.2915 1019 11 0 -56.1957 24.0001 123.75 - 29 27.0756 1018 11 0 -56.1451 23.85 123.799 - 29 96.4404 729 11 0 -43.4611 -34.1212 123.75 - 29 253.098 875 5 0 -113.775 -4.8685 -55.85 - 29 386.591 876 5 0 -113.793 -4.85 -56.0194 - 29 114.709 332 7 1 -113.644 -4.86288 5.55 - 29 132.098 328 6 1 -114.497 -4.43167 -24.45 - 29 148.415 878 6 0 -114.529 -4.43236 -25.85 - 29 144.433 324 5 1 -115.268 -4.38019 -54.45 - 29 144.465 878 5 0 -115.344 -4.42718 -55.85 - 29 143.744 316 4 1 -116.812 -5.3846 -84.45 - 29 112.681 873 4 0 -116.896 -5.41399 -85.85 - 29 198.741 308 3 1 -118.515 -5.85994 -114.45 - 29 155.993 870 3 0 -118.567 -5.89196 -115.85 - 29 109.71 302 2 1 -119.589 -6.39428 -144.45 - 29 249.772 867 2 0 -119.542 -6.45021 -145.85 - 29 111.141 308 1 1 -118.494 -7.7427 -174.45 - 29 107.652 861 1 0 -118.448 -7.72205 -175.85 - 29 142.282 313 0 1 -117.537 -7.10003 -204.45 - 29 25.5127 312 0 1 -117.55 -7.08505 -204.712 - 29 162.062 865 0 0 -117.61 -7.02589 -205.85 - 29 11.7452 1198 2 0 -126.449 59.8249 -146.25 - 29 97.9748 1199 2 0 -126.452 59.85 -146.238 - 29 96.3826 1200 2 0 -126.463 60.05 -145.994 - 29 73.0539 270 2 1 -126.066 60.8778 -144.85 - 29 215.68 271 2 1 -125.95 60.9581 -144.79 - 29 110.553 869 3 0 -117.89 -6.18546 -115.85 - 29 1.10589 318 3 1 -116.351 -5.65848 -114.85 - 29 84.9975 319 3 1 -116.35 -5.65842 -114.849 - 29 1.67558 1061 5 0 -106.07 32.25 -55.948 - 29 154.69 875 7 0 -113.685 -4.85 3.95478 - 29 258.475 331 6 1 -113.772 -4.83284 -24.45 - 29 99.5964 331 5 1 -113.784 -4.8376 -54.45 - 29 99.2642 332 4 1 -113.716 -4.93794 -84.45 - 29 262.042 875 4 0 -113.72 -4.94281 -85.85 - 29 127.055 331 3 1 -113.804 -5.03375 -114.45 - 29 117.368 875 3 0 -113.815 -5.03485 -115.85 - 29 245.328 330 2 1 -114.053 -5.08084 -144.45 - 29 304.993 874 2 0 -114.095 -5.10392 -145.85 - 29 192.201 325 1 1 -115.028 -5.39583 -174.45 - 29 119.909 873 1 0 -115.021 -5.39426 -175.85 - 29 134.839 326 0 1 -114.887 -5.1304 -204.45 - 29 150.068 874 0 0 -114.853 -5.09517 -205.85 - 29 83.9965 326 1 1 -114.95 -5.40624 -174.545 - 29 112.279 332 5 1 -113.664 -4.76277 -54.45 - 29 110.098 333 4 1 -113.53 -4.45764 -84.45 - 29 146.303 878 4 0 -113.538 -4.44003 -85.85 - 29 310.465 332 3 1 -113.739 -4.09462 -114.45 - 29 138.145 879 3 0 -113.757 -4.10273 -115.85 - 29 119.732 878 2 0 -114.129 -4.27359 -145.85 - 29 109.194 329 1 1 -114.33 -4.35018 -174.45 - 29 136.2 878 1 0 -114.329 -4.33798 -175.85 - 29 302.668 328 0 1 -114.445 -4.11439 -204.45 - 29 127.936 879 0 0 -114.448 -4.09211 -205.85 -Number of digits in this event = 35 -Using G4ParticleGun ... -8.66061 LIN -gamma +Number of tracker hits in this event: 3 + 29 10.8431 58 3 0 56.7015 -168.35 -115.981 + 29 2.07697 1185 3 1 57.245 -168.42 -114.85 + 29 187.515 1186 3 1 57.25 -168.419 -114.841 +Number of digits in this event: 4 +Using G4ParticleGun... +Particle energy: 5.42503 LIN +Particle: gamma Event: 30 -Number of tracker hits in this event = 2 - 30 7.92528 616 10 0 -171.047 -56.7488 93.75 - 30 134.875 48 10 1 -170.446 -56.3516 95.15 -Number of digits in this event = 3 -Using G4ParticleGun ... -1.74039 LIN -gamma +Number of tracker hits in this event: 56 + 30 240.831 873 8 1 -5.44235 35.7883 35.55 + 30 526.381 1078 8 0 -5.44148 35.7885 34.15 + 30 228.911 873 7 1 -5.42679 35.7946 5.55 + 30 119.675 1078 7 0 -5.42881 35.7953 4.15 + 30 179.676 872 6 1 -5.46743 35.8254 -24.45 + 30 133.512 1078 6 0 -5.47109 35.8263 -25.85 + 30 466.513 872 5 1 -5.55102 35.8385 -54.45 + 30 342.422 1078 5 0 -5.55331 35.8389 -55.85 + 30 201.232 872 4 1 -5.60095 35.8424 -84.45 + 30 184.46 1078 4 0 -5.60751 35.842 -85.85 + 30 175.068 871 3 1 -5.7486 35.832 -114.45 + 30 314.759 1078 3 0 -5.75412 35.8329 -115.85 + 30 115.744 870 2 1 -5.85588 35.8528 -144.45 + 30 148.551 1079 2 0 -5.86004 35.8568 -145.85 + 30 118.219 870 1 1 -5.9327 35.9267 -174.45 + 30 254.23 1079 1 0 -5.93531 35.9309 -175.85 + 30 121.996 870 0 1 -5.98915 36.0165 -204.45 + 30 112.777 1079 0 0 -5.99608 36.0296 -205.85 + 30 281.961 873 4 1 -5.44998 35.6405 -84.6147 + 30 146.87 1072 4 0 -4.75611 34.6068 -85.85 + 30 98.9357 1071 4 0 -4.65494 34.4497 -86.0085 + 30 22.0726 1070 4 0 -4.5214 34.25 -86.1924 + 30 272.841 840 4 0 4.61987 -11.9062 -86.25 + 30 138.729 919 4 1 4.04741 -12.4232 -84.85 + 30 146.441 897 5 0 -26.6914 -0.586768 -56.2498 + 30 48.5474 761 5 1 -27.7467 -0.191628 -54.85 + 30 141.365 760 5 1 -27.85 -0.174332 -54.725 + 30 13.5405 759 5 1 -28.05 -0.15556 -54.4867 + 30 42.4344 866 5 1 -6.71996 35.1258 -54.85 + 30 367.161 1079 6 0 -5.48518 35.85 -26.184 + 30 129.617 1022 7 0 18.7873 24.4812 3.75 + 30 80.9089 1021 7 0 18.7577 24.45 3.86407 + 30 139.311 1079 7 0 -5.42926 35.9567 4.15 + 30 100.655 873 6 1 -5.44984 36.0295 -24.45 + 30 133.983 873 5 1 -5.42521 35.9471 -54.45 + 30 92.8326 1079 5 0 -5.41921 35.9426 -55.85 + 30 258.243 1079 4 0 -5.30704 35.8959 -85.85 + 30 116.773 875 3 1 -5.00293 35.8107 -114.45 + 30 128.154 876 2 1 -4.75925 35.7394 -144.45 + 30 134.085 1078 2 0 -4.7255 35.7487 -145.85 + 30 200.047 880 1 1 -4.02364 35.9076 -174.45 + 30 171.843 884 0 1 -3.11125 36.3667 -204.45 + 30 127.274 1081 0 0 -3.06944 36.3973 -205.85 + 30 34.7242 1077 1 0 -4.13024 35.5064 -175.85 + 30 72.0639 1076 1 0 -4.17142 35.45 -175.949 + 30 92.2155 1075 1 0 -4.25369 35.25 -176.044 + 30 70.4622 1074 1 0 -4.23979 35.05 -176.073 + 30 53.6806 956 0 0 -31.0041 11.402 -206.25 + 30 30.2287 1612 6 0 -89.8025 142.55 -26.0463 + 30 58.5519 438 6 1 -92.35 144.916 -24.7123 + 30 311.53 871 5 1 -5.65 35.7684 -54.7515 + 30 102.008 1122 6 0 -1.72708 44.5241 -26.25 + 30 56.9745 893 6 1 -1.32307 44.4852 -24.8498 + 30 419.905 894 6 1 -1.25 44.4534 -24.6721 + 30 100.302 1119 6 0 -0.346032 43.9346 -25.8501 + 30 202.917 952 6 1 10.613 -97.798 -24.85 +Number of digits in this event: 34 +Using G4ParticleGun... +Particle energy: 5.90348 LIN +Particle: gamma Event: 31 -Number of tracker hits in this event = 28 - 31 227.764 916 3 1 3.31446 -112.668 -114.45 - 31 250.168 337 3 0 3.31234 -112.661 -115.85 - 31 243.562 916 2 1 3.3105 -112.509 -144.45 - 31 209.528 338 2 0 3.29602 -112.493 -145.85 - 31 122.986 914 1 1 3.04001 -112.238 -174.45 - 31 113.735 339 1 0 3.02768 -112.228 -175.85 - 31 137.552 913 0 1 2.76388 -112.027 -204.45 - 31 150.501 340 0 0 2.74499 -112.037 -205.85 - 31 222.3 917 0 1 3.64068 -112.829 -204.45 - 31 402.513 336 0 0 3.66841 -112.794 -205.85 - 31 130.227 337 2 0 3.34703 -112.694 -145.85 - 31 116.556 916 1 1 3.32698 -112.794 -174.45 - 31 238.535 336 1 0 3.32828 -112.794 -175.85 - 31 152.364 916 0 1 3.32858 -112.81 -204.45 - 31 16.6016 319 5 0 -25.4055 -116.312 -56.25 - 31 42.3008 207 5 0 -69.2684 -138.55 -56.1161 - 31 85.2883 206 5 0 -69.6582 -138.75 -56.1145 - 31 218.534 318 5 0 -25.4312 -116.35 -55.9766 - 31 205.4 1561 5 0 94.1745 132.481 -56.25 - 31 332.778 1369 5 1 94.0814 131.941 -54.85 - 31 277.861 1368 5 1 93.95 131.626 -54.5839 - 31 93.1194 1550 5 0 93.7458 130.31 -55.85 - 31 39.5309 1549 5 0 93.7135 130.15 -55.9454 - 31 157.966 491 5 1 -81.8073 55.8023 -54.45 - 31 158.563 1559 5 0 93.1203 132.087 -56.25 - 31 56.3604 1560 5 0 93.0573 132.15 -55.9937 - 31 123.133 1363 5 1 92.8031 132.474 -54.85 - 31 24.5132 38 0 0 -29.7663 -172.461 -206.25 -Number of digits in this event = 22 -Using G4ParticleGun ... -4.05904 LIN -gamma +Number of tracker hits in this event: 159 + 31 213.592 512 11 1 -77.5779 -12.8776 125.55 + 31 265.022 835 11 0 -77.5798 -12.8776 124.15 + 31 243.91 512 10 1 -77.6168 -12.8807 95.55 + 31 259.018 835 10 0 -77.6165 -12.8814 94.15 + 31 242.211 512 9 1 -77.6416 -12.9249 65.55 + 31 238.211 835 9 0 -77.642 -12.9234 64.15 + 31 112.855 511 8 1 -77.6704 -12.9328 35.55 + 31 333.041 835 8 0 -77.6689 -12.9233 34.15 + 31 139.102 511 7 1 -77.6568 -12.7312 5.55 + 31 129.888 836 7 0 -77.66 -12.7245 4.15 + 31 120.561 511 6 1 -77.7192 -12.5713 -24.45 + 31 136.533 837 6 0 -77.7172 -12.567 -25.85 + 31 103.58 511 5 1 -77.7013 -12.4887 -54.45 + 31 117.381 837 5 0 -77.7013 -12.4891 -55.85 + 31 110.24 511 4 1 -77.7268 -12.4842 -84.45 + 31 108.359 837 4 0 -77.7318 -12.4899 -85.85 + 31 136.224 511 3 1 -77.8497 -12.5859 -114.45 + 31 115.044 837 3 0 -77.8473 -12.5868 -115.85 + 31 107.515 511 2 1 -77.8028 -12.5852 -144.45 + 31 129.58 837 2 0 -77.8026 -12.5811 -145.85 + 31 115.682 511 1 1 -77.7796 -12.519 -174.45 + 31 305.042 837 1 0 -77.7863 -12.5145 -175.85 + 31 225.684 510 0 1 -77.9123 -12.4622 -204.45 + 31 243.714 837 0 0 -77.9123 -12.4542 -205.85 + 31 121.502 749 0 1 -30.25 -25.1108 -204.796 + 31 110.06 567 1 1 -66.5034 18.2473 -174.45 + 31 184.182 510 3 1 -77.9911 -13.1192 -114.45 + 31 72.4535 1102 2 0 48.7952 40.4645 -145.85 + 31 72.4861 1103 2 0 49.1758 40.6502 -145.923 + 31 167.022 509 3 1 -78.05 -13.0503 -114.778 + 31 277.177 512 8 1 -77.5379 -12.8035 35.4046 + 31 269.527 836 8 0 -77.5346 -12.807 34.15 + 31 333.131 512 7 1 -77.4597 -12.9805 5.55 + 31 274.71 835 7 0 -77.4837 -13.0017 4.15 + 31 109.942 510 6 1 -78.0043 -13.3868 -24.45 + 31 97.2559 833 6 0 -78.0358 -13.4385 -25.85 + 31 39.0953 832 6 0 -78.043 -13.45 -26.1519 + 31 135.909 506 5 1 -78.8151 -14.4685 -54.45 + 31 124.901 827 5 0 -78.8149 -14.5052 -55.85 + 31 113.712 505 4 1 -78.9091 -15.14 -84.45 + 31 132.98 824 4 0 -78.8727 -15.1501 -85.85 + 31 185.026 824 3 0 -77.8297 -15.1934 -115.85 + 31 155.264 519 2 1 -76.1807 -15.1527 -144.45 + 31 99.5106 825 2 0 -75.8994 -14.9562 -145.85 + 31 47.2637 557 1 1 -68.4903 -11.2396 -174.45 + 31 114.104 558 1 1 -68.45 -11.184 -174.558 + 31 20.6566 848 1 0 -67.8604 -10.2695 -175.85 + 31 115.245 849 1 0 -67.8476 -10.25 -175.877 + 31 8.85123 850 1 0 -67.7203 -10.05 -176.218 + 31 16.0532 598 0 1 -60.4327 2.53123 -204.45 + 31 152.57 597 0 1 -60.45 2.58263 -204.492 + 31 45.7353 920 0 0 -61.1544 4.11735 -205.85 + 31 80.6513 921 0 0 -61.2167 4.25 -205.961 + 31 162.175 922 0 0 -61.2913 4.45 -206.129 + 31 31.9551 1019 0 0 -69.5229 23.8688 -206.25 + 31 114.524 502 2 1 -79.4976 -16.8752 -144.451 + 31 42.1506 815 2 0 -79.5455 -17.0317 -145.85 + 31 69.0656 814 2 0 -79.5527 -17.05 -146.037 + 31 148.831 494 1 1 -81.2009 -18.4199 -174.45 + 31 76.2553 810 1 0 -80.8832 -17.9206 -175.85 + 31 41.2711 811 1 0 -80.8487 -17.85 -176.08 + 31 48.5945 512 0 1 -77.5005 -10.6311 -204.45 + 31 328.764 513 0 1 -77.45 -10.778 -204.517 + 31 305.218 514 0 1 -77.25 -11.1853 -204.752 + 31 75.1129 835 0 0 -76.4223 -12.8732 -205.85 + 31 101.254 834 0 0 -76.3557 -13.0503 -205.977 + 31 157.367 833 0 0 -76.2542 -13.25 -206.191 + 31 389.485 767 0 0 -71.4162 -26.6236 -206.25 + 31 32.128 543 0 1 -71.2711 -26.6252 -204.85 + 31 65.7009 544 0 1 -71.25 -26.6087 -204.714 + 31 12.7184 924 1 0 -74.5444 5.00073 -176.25 + 31 47.0929 925 1 0 -74.5816 5.05075 -176.243 + 31 360.502 503 2 1 -79.3879 -16.8988 -144.45 + 31 6.31855 504 2 1 -79.2498 -17.0515 -144.824 + 31 186.442 812 2 0 -78.8323 -17.5977 -145.85 + 31 3.23023 642 1 1 -51.4644 -9.22792 -174.45 + 31 52.1923 643 1 1 -51.45 -9.23006 -174.455 + 31 64.4406 644 1 1 -51.25 -9.22569 -174.511 + 31 53.3324 645 1 1 -51.05 -9.20808 -174.56 + 31 59.695 646 1 1 -50.8495 -9.16863 -174.609 + 31 78.1781 647 1 1 -50.65 -9.1247 -174.66 + 31 79.8412 648 1 1 -50.45 -9.09477 -174.73 + 31 47.598 649 1 1 -50.25 -9.03694 -174.757 + 31 63.6726 650 1 1 -50.05 -8.94004 -174.761 + 31 59.3906 651 1 1 -49.85 -8.83444 -174.77 + 31 50.1821 652 1 1 -49.6498 -8.72094 -174.814 + 31 118.754 865 1 0 -46.2858 -6.99661 -175.85 + 31 185.747 866 1 0 -45.9734 -6.85 -175.979 + 31 68.2242 867 1 0 -45.683 -6.65 -176.125 + 31 26.8641 917 1 0 18.8635 3.47007 -176.25 + 31 178.407 916 1 0 18.944 3.44994 -176.186 + 31 34.9233 1006 1 1 21.3757 2.58566 -174.85 + 31 103.706 1007 1 1 21.45 2.55192 -174.814 + 31 61.5485 1008 1 1 21.65 2.44598 -174.724 + 31 73.2426 1009 1 1 21.85 2.32863 -174.647 + 31 65.153 1010 1 1 22.05 2.17725 -174.574 + 31 12.6627 1011 1 1 22.25 1.99834 -174.469 + 31 66.4318 372 3 1 -105.55 -50.2106 -114.476 + 31 1.76398 371 3 1 -105.75 -50.1554 -114.454 + 31 103.474 639 2 0 -76.0906 -52.1038 -146.25 + 31 159.534 490 1 1 -81.9688 60.8042 -174.85 + 31 147.704 514 7 1 -77.122 -11.7973 5.55 + 31 150.042 841 7 0 -77.1241 -11.6979 4.15 + 31 132.88 512 6 1 -77.4547 -8.79521 -24.45 + 31 135.346 856 6 0 -77.5593 -8.69946 -25.85 + 31 137.656 501 5 1 -79.6799 -6.57735 -54.4504 + 31 126.78 867 5 0 -79.7201 -6.5168 -55.8503 + 31 183.408 501 4 1 -79.7669 -2.66939 -84.45 + 31 377.697 888 4 0 -79.7468 -2.44882 -85.85 + 31 143.848 503 3 1 -79.3786 2.19588 -114.45 + 31 106.402 912 3 0 -79.3942 2.64403 -115.851 + 31 246.536 913 3 0 -79.3943 2.65038 -115.871 + 31 120.587 960 2 0 -79.3205 12.1295 -145.85 + 31 185.751 507 1 1 -78.5762 20.0139 -174.45 + 31 121.538 1001 1 0 -78.5375 20.3534 -175.85 + 31 7.01998 1002 1 0 -78.5159 20.45 -176.226 + 31 104.816 516 0 1 -76.7531 27.8419 -204.45 + 31 30.5178 515 0 1 -76.85 27.9405 -204.822 + 31 129.453 1041 0 0 -77.1674 28.289 -205.85 + 31 114.589 502 4 1 -79.65 -2.58701 -84.6929 + 31 6.64172 889 4 0 -79.8454 -2.25 -85.9258 + 31 146.532 513 6 1 -77.3829 -12.9709 -24.45 + 31 96.3854 835 6 0 -77.3793 -12.972 -25.85 + 31 125.661 513 5 1 -77.3162 -12.9603 -54.45 + 31 109.509 835 5 0 -77.3138 -12.9572 -55.85 + 31 126.122 513 4 1 -77.266 -12.8981 -84.45 + 31 143.48 835 4 0 -77.2672 -12.8919 -85.85 + 31 114.986 513 3 1 -77.3045 -12.7789 -114.45 + 31 153.276 836 3 0 -77.3073 -12.7756 -115.85 + 31 128.114 513 2 1 -77.3536 -12.6964 -144.45 + 31 129.012 836 2 0 -77.3515 -12.6906 -145.85 + 31 122.807 513 1 1 -77.3277 -12.5834 -174.45 + 31 59.37 1136 4 0 -13.7319 47.3213 -86.2499 + 31 105.535 1135 4 0 -13.8629 47.25 -86.0535 + 31 35.9415 825 4 1 -14.9753 46.7313 -84.8494 + 31 139.253 824 4 1 -15.05 46.6965 -84.7604 + 31 20.4311 889 0 1 -2.07171 -114.397 -204.45 + 31 171.232 890 0 1 -2.04989 -114.427 -204.512 + 31 14.6434 891 0 1 -1.84985 -114.815 -204.828 + 31 4.4989 313 0 0 -1.09965 -117.529 -205.85 + 31 65.1946 312 0 0 -1.09421 -117.55 -205.858 + 31 105.333 311 0 0 -1.0539 -117.75 -205.968 + 31 57.5481 310 0 0 -1.18902 -117.95 -206.102 + 31 135.506 836 0 0 -77.0782 -12.6711 -205.85 + 31 2.71377 84 6 1 -163.287 21.2209 -24.85 + 31 12.8936 739 4 0 -113.026 -32.1599 -86.25 + 31 71.5501 360 9 1 -107.976 -55.2109 65.15 + 31 26.5294 832 0 0 -76.9419 -13.45 -206.167 + 31 236.822 514 2 1 -77.0921 -13.0785 -144.45 + 31 236.804 834 2 0 -77.0704 -13.1043 -145.85 + 31 214.218 515 1 1 -76.9165 -13.5777 -174.45 + 31 135.26 832 1 0 -76.8111 -13.5599 -175.85 + 31 163.716 522 1 1 -75.5777 -13.4599 -174.45 + 31 113.309 833 1 0 -75.4884 -13.4008 -175.85 + 31 119.923 532 0 1 -73.5422 -12.3538 -204.45 + 31 121.922 838 0 0 -73.5064 -12.2711 -205.85 + 31 13.7227 839 0 0 -73.4971 -12.25 -206.195 + 31 159.235 775 3 0 -57.2201 -24.9869 -116.25 + 31 104.054 774 3 0 -57.1427 -25.05 -116.165 +Number of digits in this event: 75 +Using G4ParticleGun... +Particle energy: 4.70878 LIN +Particle: gamma Event: 32 -Number of tracker hits in this event = 41 - 32 231.693 1317 4 1 83.5483 -102.397 -84.45 - 32 322.925 388 4 0 83.5483 -102.397 -85.85 - 32 124.609 1317 3 1 83.546 -102.391 -114.45 - 32 118.006 388 3 0 83.5493 -102.402 -115.85 - 32 359.167 1317 2 1 83.6152 -102.546 -144.45 - 32 108.12 387 2 0 83.6191 -102.555 -145.85 - 32 131.94 1318 1 1 83.6839 -102.771 -174.45 - 32 190.964 386 1 0 83.6867 -102.782 -175.85 - 32 130.605 1318 0 1 83.7435 -102.998 -204.45 - 32 154.251 385 0 0 83.748 -103.008 -205.85 - 32 8.65489 372 0 0 47.0452 -105.635 -206.25 - 32 122.873 486 0 0 82.0632 -82.7021 -206.249 - 32 39.7678 1309 0 1 81.9248 -82.6556 -204.85 - 32 76.0824 1308 0 1 81.85 -82.641 -204.693 - 32 5.05648 152 7 0 173.213 -149.75 3.94582 - 32 202.685 388 2 0 83.5486 -102.392 -145.85 - 32 137.027 1316 1 1 83.3799 -102.363 -174.45 - 32 253.441 388 1 0 83.3778 -102.501 -175.85 - 32 236.734 1317 0 1 83.6434 -105.893 -204.45 - 32 114.157 369 0 0 83.6554 -106.162 -205.85 - 32 85.151 1712 7 1 162.697 79.5611 5.15 - 32 102.479 1713 7 1 162.75 79.623 5.2405 - 32 148.262 1714 7 1 162.95 79.62 5.27586 - 32 135.271 1317 1 1 83.5998 -102.398 -174.45 - 32 265.423 388 0 0 83.6218 -102.397 -205.85 - 32 2.30462 1487 7 0 168.791 117.716 3.75 - 32 119.845 1488 7 0 168.803 117.75 3.79001 - 32 11.9259 1489 7 0 168.925 117.95 4.11289 - 32 72.9596 1746 7 1 169.43 118.631 5.15 - 32 104.758 1747 7 1 169.55 118.72 5.36272 - 32 202.72 366 0 0 96.5481 -106.87 -206.25 - 32 112.8 1319 3 1 83.8979 -102.892 -114.45 - 32 120.323 386 3 0 83.9586 -102.934 -115.851 - 32 176.394 1327 2 1 85.6163 -103.686 -144.45 - 32 10.2248 1328 2 1 85.65 -103.689 -144.832 - 32 132.696 382 2 0 85.731 -103.691 -145.85 - 32 110.991 1339 1 1 88.0126 -103.733 -174.45 - 32 21.82 1340 1 1 88.05 -103.722 -174.776 - 32 143.102 382 1 0 88.1742 -103.685 -175.85 - 32 116.17 1357 0 1 91.5897 -103.134 -204.45 - 32 116.192 384 0 0 91.8034 -103.182 -205.85 -Number of digits in this event = 24 -Using G4ParticleGun ... -4.06027 LIN -gamma +Number of tracker hits in this event: 3 + 32 98.5562 767 0 1 -26.6364 3.2881 -204.85 + 32 177.92 766 0 1 -26.6501 3.33552 -204.606 + 32 23.1383 223 1 0 36.5877 -135.502 -175.85 +Number of digits in this event: 3 +Using G4ParticleGun... +Particle energy: 3.82563 LIN +Particle: gamma Event: 33 -Number of tracker hits in this event = 74 - 33 201.554 761 7 1 -27.6793 35.0272 5.55 - 33 272.127 1074 7 0 -27.6814 35.0264 4.15 - 33 109.416 761 6 1 -27.7331 35.0077 -24.45 - 33 216.572 1074 6 0 -27.7281 34.9969 -25.85 - 33 115.348 762 5 1 -27.5986 34.7373 -54.45 - 33 115.821 1073 5 0 -27.5829 34.7127 -55.85 - 33 115.902 763 4 1 -27.2997 34.1421 -84.45 - 33 131.261 1070 4 0 -27.2919 34.1152 -85.85 - 33 121.924 764 3 1 -27.1431 33.5958 -114.45 - 33 131.385 1067 3 0 -27.1438 33.5698 -115.85 - 33 580.039 764 2 1 -27.1065 33.0411 -144.45 - 33 101.639 1064 2 0 -27.1099 33.025 -145.85 - 33 449.492 764 1 1 -27.2457 32.6417 -174.45 - 33 94.3679 1062 1 0 -27.2449 32.6203 -175.85 - 33 138.056 764 0 1 -27.2438 32.1701 -204.45 - 33 125.72 1060 0 0 -27.2391 32.1404 -205.85 - 33 140.537 765 1 1 -27.0473 32.6972 -174.45 - 33 111.468 763 2 1 -27.25 33.2745 -144.663 - 33 127.869 1069 2 0 -27.3626 34.0256 -145.85 - 33 80.8894 1070 2 0 -27.3658 34.0508 -145.89 - 33 90.6479 1071 2 0 -27.2443 34.2502 -146.114 - 33 8.04985 1013 2 0 -49.095 22.6619 -146.25 - 33 131.329 1012 2 0 -49.1075 22.65 -146.242 - 33 0.357022 1011 2 0 -49.3458 22.45 -146.247 - 33 184.297 966 2 0 -48.1201 13.3587 -146.25 - 33 56.6786 967 2 0 -48.0317 13.45 -146.072 - 33 492.832 761 4 1 -27.8289 35.031 -84.45 - 33 254.537 1074 4 0 -27.8375 35.0306 -85.85 - 33 98.7748 760 3 1 -28.017 35.03 -114.45 - 33 104.249 1074 3 0 -28.0304 35.0277 -115.85 - 33 116.745 758 2 1 -28.3243 34.9975 -144.45 - 33 187.041 1074 2 0 -28.3026 34.9262 -145.85 - 33 67.3632 771 1 1 -25.6742 34.3977 -174.45 - 33 68.1014 772 1 1 -25.65 34.4518 -174.677 - 33 74.3535 1073 1 0 -25.5439 34.7858 -175.85 - 33 50.2726 1074 1 0 -25.5217 34.85 -176.062 - 33 110.571 782 0 1 -23.6153 43.3292 -204.451 - 33 326.229 1118 0 0 -23.4977 43.683 -205.85 - 33 64.928 1073 2 0 -28.331 34.8499 -145.877 - 33 269.83 761 3 1 -27.7132 34.86 -114.45 - 33 98.5319 1073 3 0 -27.7066 34.8468 -115.85 - 33 112.8 762 2 1 -27.5987 34.5563 -144.45 - 33 119.574 1072 2 0 -27.596 34.543 -145.85 - 33 182.644 762 1 1 -27.5112 34.2523 -174.45 - 33 119.989 1070 1 0 -27.5086 34.2249 -175.85 - 33 184.22 762 0 1 -27.4517 33.6354 -204.45 - 33 47.005 763 0 1 -27.45 33.6278 -204.759 - 33 129.876 1067 0 0 -27.4444 33.599 -205.85 - 33 25.5856 1312 0 0 -46.5608 82.562 -206.25 - 33 118.267 762 6 1 -27.611 34.9977 -24.45 - 33 129.865 761 5 1 -27.65 34.88 -54.4876 - 33 147.573 1074 5 0 -27.655 34.8723 -55.85 - 33 114.846 1073 4 0 -27.7439 34.6875 -85.85 - 33 2.89696 762 3 1 -27.65 34.3076 -114.827 - 33 233.506 1071 3 0 -27.6296 34.2956 -115.85 - 33 137.533 766 1 1 -26.7751 33.556 -174.45 - 33 124.495 1067 1 0 -26.7606 33.5453 -175.85 - 33 148.323 768 0 1 -26.425 33.3258 -204.45 - 33 158.377 1066 0 0 -26.4143 33.3065 -205.85 - 33 263.821 1065 0 0 -26.4019 33.25 -205.941 - 33 10.1905 1025 3 0 -11.2528 25.0574 -116.25 - 33 69.9019 1024 3 0 -11.2543 25.05 -116.246 - 33 26.2427 1133 4 0 -21.0185 46.65 -86.1452 - 33 128.919 1067 4 0 -27.8292 33.5593 -85.85 - 33 72.2913 1066 4 0 -27.84 33.45 -85.9627 - 33 35.805 1065 4 0 -27.8615 33.25 -86.1498 - 33 41.8491 767 3 1 -26.575 8.86656 -114.45 - 33 97.1403 768 3 1 -26.4499 8.86646 -114.57 - 33 4.73769 769 3 1 -26.25 8.8205 -114.833 - 33 71.207 942 3 0 -25.4765 8.48359 -115.85 - 33 205.675 941 3 0 -25.2467 8.45 -116.013 - 33 264.387 940 3 0 -24.8153 8.25 -116.132 - 33 68.2035 939 3 0 -24.6282 8.05 -116.09 - 33 4.02279 938 3 0 -24.6688 7.85 -116.246 -Number of digits in this event = 35 -Using G4ParticleGun ... -5.11749 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 1 +Using G4ParticleGun... +Particle energy: 1.52499 LIN +Particle: gamma Event: 34 -Number of tracker hits in this event = 2 - 34 135.951 1540 12 1 128.209 -175.87 155.15 - 34 15.7585 1530 3 0 72.3972 126.243 -116.25 -Number of digits in this event = 3 -Using G4ParticleGun ... -7.94351 LIN -gamma +Number of tracker hits in this event: 117 + 34 288.805 1071 11 1 34.425 -40.4901 125.55 + 34 286.132 697 11 0 34.4417 -40.4968 124.15 + 34 114.028 1073 10 1 34.8085 -40.593 95.55 + 34 104.764 697 10 0 34.7855 -40.5797 94.15 + 34 116.906 1070 9 1 34.2429 -40.4044 65.55 + 34 147.254 698 9 0 34.219 -40.4061 64.15 + 34 120.725 1068 8 1 33.7576 -40.4054 35.55 + 34 100.108 698 8 0 33.7448 -40.3975 34.15 + 34 127.773 1067 7 1 33.5589 -40.2131 5.55 + 34 140.526 700 7 0 33.6293 -40.006 4.15 + 34 168.312 1076 6 1 35.3917 -35.4023 -24.45 + 34 4.9298 723 6 0 35.4482 -35.2521 -25.85 + 34 134.058 724 6 0 35.4489 -35.25 -25.8685 + 34 162.782 1084 5 1 36.8893 -31.9229 -54.45 + 34 210.531 741 5 0 37.0077 -31.79 -55.85 + 34 71.5123 1099 4 1 40.0205 -28.8155 -84.4502 + 34 79.3957 1100 4 1 40.05 -28.7948 -84.5927 + 34 109.413 757 4 0 40.3209 -28.6283 -85.85 + 34 99.9501 1129 3 1 45.8519 -26.135 -114.45 + 34 145.768 769 3 0 46.0191 -26.1417 -115.85 + 34 489.922 1143 2 1 48.7578 -27.2783 -144.45 + 34 135.305 764 2 0 48.6899 -27.2268 -145.85 + 34 94.361 1131 1 1 46.3051 -25.3989 -174.451 + 34 108.371 773 1 0 46.349 -25.3933 -175.85 + 34 280.88 1136 0 1 47.3444 -24.3586 -204.45 + 34 131.725 776 0 0 47.6062 -24.6969 -205.85 + 34 62.0014 1135 0 1 47.2497 -24.4236 -204.714 + 34 83.1393 1144 2 1 48.85 -27.8244 -144.648 + 34 90.609 1122 2 0 -41.6941 44.5316 -146.25 + 34 174.004 1121 2 0 -41.7011 44.4499 -146.026 + 34 141.029 1120 2 0 -41.6731 44.2498 -146.095 + 34 82.5889 696 2 1 -40.7761 44.4649 -144.85 + 34 78.6032 1062 4 1 32.6476 -39.3835 -84.45 + 34 207.999 1063 4 1 32.65 -39.3763 -84.5929 + 34 172.506 703 4 0 32.6693 -39.3047 -85.8501 + 34 61.5592 1066 3 1 33.4098 -37.8626 -114.451 + 34 68.8177 1067 3 1 33.45 -37.8533 -114.661 + 34 115.404 711 3 0 33.6687 -37.8236 -115.85 + 34 106.927 1092 2 1 38.5372 -36.7385 -144.45 + 34 122.572 718 2 0 38.5216 -36.3925 -145.85 + 34 148.039 1088 1 1 37.7043 -29.3119 -174.45 + 34 136.352 755 1 0 37.5177 -29.0087 -175.85 + 34 110.028 1056 0 1 31.3868 -23.0278 -204.45 + 34 111.953 787 0 0 31.0892 -22.5632 -205.85 + 34 2.89663 788 0 0 31.0166 -22.45 -206.236 + 34 112.839 702 4 0 32.8861 -39.508 -85.85 + 34 91.0267 1087 3 1 37.5146 -38.3407 -114.45 + 34 44.0891 1088 3 1 37.65 -38.4712 -114.727 + 34 58.0092 705 3 0 38.1525 -38.9681 -115.85 + 34 75.1798 704 3 0 38.241 -39.0507 -116.018 + 34 21.2429 1161 2 1 52.3884 -58.0608 -144.45 + 34 86.846 1162 2 1 52.45 -58.0318 -144.506 + 34 63.4522 1163 2 1 52.65 -57.9541 -144.704 + 34 149.185 612 2 0 53.8301 -57.6196 -145.85 + 34 4.99547 1258 1 1 71.653 -45.6816 -174.45 + 34 132.155 1257 1 1 71.6499 -45.6784 -174.454 + 34 40.4913 1256 1 1 71.45 -45.4385 -174.731 + 34 87.8582 678 1 0 70.571 -44.4423 -175.85 + 34 77.2517 679 1 0 70.4263 -44.25 -176.047 + 34 4.25095 680 1 0 70.3069 -44.05 -176.239 + 34 98.053 1159 0 1 51.9434 -12.1609 -204.45 + 34 60.6897 1160 0 1 52.0501 -12.0527 -204.705 + 34 172.044 841 0 0 52.8962 -11.7492 -205.85 + 34 134.964 956 1 0 -103.444 11.3005 -176.25 + 34 119.737 1072 10 1 34.4634 -40.4839 95.55 + 34 89.5208 698 10 0 34.7835 -40.3318 94.1499 + 34 29.1631 699 10 0 34.8786 -40.25 93.8355 + 34 126.525 1104 9 1 41.0465 -25.6532 65.55 + 34 41.8331 1105 9 1 41.05 -25.6308 65.2536 + 34 5.63603 772 9 0 41.116 -25.4539 64.15 + 34 123.416 773 9 0 41.1174 -25.45 64.1276 + 34 71.5347 753 9 0 36.2012 -29.3927 63.7503 + 34 48.1407 752 9 0 36.1573 -29.45 63.9621 + 34 140.007 1079 9 1 35.9375 -29.734 65.15 + 34 162.978 715 10 0 24.0372 -36.8625 93.7501 + 34 72.0208 714 10 0 23.6644 -37.05 94.1006 + 34 65.3491 1007 10 1 21.5968 -37.5744 95.15 + 34 113.711 1006 10 1 21.45 -37.5798 95.2544 + 34 60.5456 1005 10 1 21.25 -37.6061 95.2743 + 34 61.4642 1004 10 1 21.05 -37.6616 95.2942 + 34 73.8678 1003 10 1 20.8495 -37.6817 95.3553 + 34 59.1338 1002 10 1 20.65 -37.7748 95.4063 + 34 43.3262 1001 10 1 20.45 -37.8595 95.4394 + 34 115.9 1000 10 1 20.25 -37.932 95.4783 + 34 123.173 999 10 1 20.05 -37.9554 95.5441 + 34 146.845 713 10 0 19.8663 -37.4434 94.15 + 34 17.8006 704 10 0 33.3852 -39.0864 94.15 + 34 62.8889 1069 10 1 34.0265 -38.0537 95.15 + 34 60.7121 703 10 0 33.9868 -39.4238 94.15 + 34 246.722 1071 2 1 34.339 -41.1438 -144.45 + 34 379.306 694 2 0 34.3191 -41.1183 -145.85 + 34 111.728 1068 1 1 33.6903 -40.6925 -174.45 + 34 0.364765 696 1 0 33.6428 -40.65 -175.85 + 34 102.955 697 1 0 33.6427 -40.65 -175.851 + 34 157.354 1062 0 1 32.5761 -39.6422 -204.45 + 34 119.853 702 0 0 32.5172 -39.6109 -205.85 + 34 149.608 1069 1 1 33.927 -41.3992 -174.45 + 34 136.063 692 1 0 33.8811 -41.4658 -175.85 + 34 110.689 1064 0 1 32.8884 -42.8266 -204.45 + 34 98.0267 685 0 0 32.8394 -42.8666 -205.85 + 34 35.7319 1040 1 0 30.2212 28.05 -176.062 + 34 26.1706 1046 1 1 29.3833 28.5692 -174.85 + 34 15.2333 1030 1 0 27.3888 26.0993 -175.85 + 34 56.1226 1029 1 1 25.947 24.1064 -174.85 + 34 113.703 1024 1 0 25.6964 24.8528 -175.85 + 34 277.375 1074 2 1 34.9371 -41.0623 -144.45 + 34 112.065 1074 1 1 34.9388 -42.7508 -174.45 + 34 8.53872 686 1 0 34.9218 -42.8474 -175.85 + 34 110.444 685 1 0 34.9213 -42.85 -175.887 + 34 110.86 1072 0 1 34.6156 -44.8932 -204.45 + 34 61.1459 675 0 0 34.6092 -45.0293 -205.85 + 34 85.7042 674 0 0 34.6083 -45.05 -206.062 + 34 118.693 695 2 0 35.0013 -40.9945 -145.85 + 34 213.482 1081 1 1 36.4064 -39.8996 -174.45 + 34 89.383 701 1 0 36.468 -39.7889 -175.85 + 34 137.025 1088 0 1 37.7245 -37.6214 -204.45 + 34 128.525 712 0 0 37.8231 -37.5393 -205.85 +Number of digits in this event: 43 +Using G4ParticleGun... +Particle energy: 2.64595 LIN +Particle: gamma Event: 35 -Number of tracker hits in this event = 21 - 35 60.428 1407 1 0 95.7719 101.619 -176.25 - 35 114.023 1408 1 0 95.6056 101.75 -176.147 - 35 317.254 1373 1 1 94.7615 102.467 -174.85 - 35 374.974 1372 1 1 94.75 102.477 -174.828 - 35 49.3417 1371 1 1 94.55 102.321 -174.503 - 35 51.3995 1374 1 1 94.95 102.279 -174.545 - 35 101.098 1738 3 1 167.75 141.775 -114.471 - 35 79.5649 1159 0 1 52.05 -65.6228 -204.722 - 35 5.71072 526 4 0 27.7707 -74.8416 -86.25 - 35 244.473 525 4 0 27.7638 -74.85 -86.2388 - 35 111.477 1039 4 1 27.8728 -74.8789 -84.85 - 35 70.592 1040 4 1 28.0504 -74.9208 -84.537 - 35 68.8551 1041 4 1 28.25 -74.8734 -84.519 - 35 205.417 1042 4 1 28.4502 -74.8137 -84.5672 - 35 55.4121 1740 4 0 74.3356 168.15 -86.0754 - 35 62.2891 525 2 0 35.0746 -74.9779 -146.25 - 35 167.839 721 2 0 -45.5369 -35.8025 -146.25 - 35 48.296 521 1 0 118.492 -75.7654 -176.25 - 35 84.3226 520 1 0 118.448 -75.85 -176.165 - 35 71.3669 519 1 0 118.372 -76.05 -176.128 - 35 57.438 518 1 0 118.309 -76.25 -176.135 -Number of digits in this event = 7 -Using G4ParticleGun ... -6.77141 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 4.18876 LIN +Particle: gamma Event: 36 -Number of tracker hits in this event = 0 -Number of digits in this event = 2 -Using G4ParticleGun ... -6.1112 LIN -gamma +Number of tracker hits in this event: 28 + 36 157.13 888 6 0 -48.0499 -2.37085 -26.0402 + 36 115.895 659 5 1 -48.0651 -2.30791 -54.45 + 36 295.416 888 5 0 -48.0288 -2.27139 -55.85 + 36 121.206 664 4 1 -47.2297 -1.53366 -84.45 + 36 121.582 892 4 0 -47.1803 -1.49888 -85.85 + 36 115.638 669 3 1 -46.2127 -0.783185 -114.45 + 36 118.608 896 3 0 -46.1804 -0.73541 -115.85 + 36 118.702 672 2 1 -45.5347 0.292651 -144.45 + 36 270.215 901 2 0 -45.4884 0.346087 -145.85 + 36 128.681 677 1 1 -44.5643 1.51097 -174.45 + 36 130.827 907 1 0 -44.5244 1.57601 -175.85 + 36 123.339 681 0 1 -43.7796 2.86858 -204.45 + 36 140.365 914 0 0 -43.7583 2.93407 -205.85 + 36 115.57 660 5 1 -48.0438 -2.3735 -54.45 + 36 113.947 660 4 1 -48.0404 -2.34221 -84.45 + 36 131.691 888 4 0 -48.039 -2.34021 -85.85 + 36 94.14 660 3 1 -48.0143 -2.30384 -114.45 + 36 134.459 888 3 0 -48.0166 -2.29932 -115.85 + 36 314.388 659 2 1 -48.0723 -2.19768 -144.45 + 36 174.387 889 2 0 -48.0768 -2.18973 -145.85 + 36 136.282 659 1 1 -48.1696 -2.01877 -174.45 + 36 215.371 890 1 0 -48.17 -2.01046 -175.85 + 36 121.797 659 0 1 -48.1727 -1.84843 -204.45 + 36 104.469 891 0 0 -48.1731 -1.84335 -205.85 + 36 145.105 660 2 1 -48.05 -2.22547 -144.69 + 36 24.4266 544 1 1 -71.05 -35.1362 -174.594 + 36 237.556 833 1 0 -78.2752 -13.331 -176.25 + 36 37.2846 817 1 0 -76.0347 -16.45 -176.232 +Number of digits in this event: 21 +Using G4ParticleGun... +Particle energy: 2.40807 LIN +Particle: gamma Event: 37 -Number of tracker hits in this event = 7 - 37 40.3018 355 0 1 -109.15 115.185 -204.638 - 37 97.6533 354 0 1 -109.15 115.138 -204.581 - 37 42.9368 1333 1 0 -44.9908 86.6672 -176.25 - 37 90.4244 1332 1 0 -45.0507 86.65 -176.211 - 37 8.38216 610 1 0 -0.907544 -58.0047 -176.25 - 37 34.3164 487 1 0 75.3996 -82.4604 -176.25 - 37 28.3731 488 1 0 75.4131 -82.45 -176.244 -Number of digits in this event = 1 -Using G4ParticleGun ... -8.48523 LIN -gamma +Number of tracker hits in this event: 50 + 37 260.031 716 7 1 -36.7269 -138.617 5.55 + 37 298.511 207 7 0 -36.7255 -138.614 4.15 + 37 312.794 716 6 1 -36.6918 -138.566 -24.45 + 37 270.466 207 6 0 -36.6879 -138.562 -25.85 + 37 216.6 717 5 1 -36.5504 -138.439 -54.45 + 37 260.375 208 5 0 -36.5541 -138.436 -55.85 + 37 281.493 717 4 1 -36.6164 -138.348 -84.45 + 37 201.944 209 4 0 -36.622 -138.334 -85.85 + 37 264.579 716 3 1 -36.7146 -138.033 -114.45 + 37 131.531 210 3 0 -36.7069 -138.014 -115.85 + 37 332.637 717 2 1 -36.5621 -137.67 -144.45 + 37 111.13 212 2 0 -36.5617 -137.647 -145.85 + 37 502.874 717 1 1 -36.5921 -137.228 -174.45 + 37 100.183 214 1 0 -36.5911 -137.206 -175.85 + 37 341.224 717 0 1 -36.5005 -136.675 -204.45 + 37 145.283 217 0 0 -36.5002 -136.66 -205.85 + 37 236.275 716 2 1 -36.7141 -137.952 -144.45 + 37 130.457 211 2 0 -36.7076 -137.859 -145.85 + 37 430.772 715 1 1 -36.9716 -135.915 -174.45 + 37 121.582 221 1 0 -36.9403 -135.813 -175.85 + 37 8.94467 718 0 1 -36.446 -133.826 -204.45 + 37 108.777 232 0 0 -36.6095 -133.605 -205.85 + 37 35.3231 233 0 0 -36.6493 -133.55 -206.168 + 37 62.0135 814 2 1 -17.1323 -60.924 -144.85 + 37 140.905 696 0 1 -40.6569 -116.4 -204.85 + 37 110.357 209 2 0 -36.7017 -138.258 -145.85 + 37 166.126 720 1 1 -35.8981 -144.236 -174.45 + 37 111.623 177 1 0 -35.878 -144.589 -175.85 + 37 261.291 715 0 1 -37.0176 -152.691 -204.45 + 37 35.9801 132 0 0 -36.8402 -153.675 -205.85 + 37 132.544 131 0 0 -36.8244 -153.75 -205.959 + 37 0.194875 130 0 0 -36.7798 -153.95 -206.248 + 37 168.052 208 4 0 -36.5418 -138.539 -85.85 + 37 169.94 718 3 1 -36.3885 -138.614 -114.45 + 37 395.857 207 3 0 -36.3943 -138.626 -115.85 + 37 113.417 206 2 0 -36.5237 -138.854 -145.85 + 37 178.471 206 1 0 -37.0053 -138.835 -175.85 + 37 105.52 716 0 1 -36.7318 -136.356 -204.45 + 37 106.367 219 0 0 -36.7031 -136.288 -205.85 + 37 8.2813 208 3 0 -35.8802 -138.548 -115.85 + 37 265.701 718 2 1 -36.3845 -138.543 -144.45 + 37 348.882 208 2 0 -36.379 -138.542 -145.85 + 37 33.4577 718 1 1 -36.2526 -138.507 -174.45 + 37 90.0739 719 1 1 -36.25 -138.505 -174.581 + 37 96.9356 208 1 0 -36.2244 -138.489 -175.85 + 37 121.766 722 0 1 -35.6341 -138.101 -204.45 + 37 113.738 210 0 0 -35.6103 -138.102 -205.85 + 37 185.592 209 1 0 -36.6437 -138.311 -175.85 + 37 125.825 213 0 0 -36.925 -137.442 -205.85 + 37 253.399 207 2 0 -36.4101 -138.55 -146.172 +Number of digits in this event: 35 +Using G4ParticleGun... +Particle energy: 9.53013 LIN +Particle: gamma Event: 38 -Number of tracker hits in this event = 1 - 38 57.9551 908 0 1 1.70675 97.1647 -204.45 -Number of digits in this event = 1 -Using G4ParticleGun ... -9.64248 LIN -gamma +Number of tracker hits in this event: 8 + 38 245.191 962 1 1 12.5346 8.14244 -174.45 + 38 253.851 940 1 0 12.5357 8.14089 -175.85 + 38 247.311 962 0 1 12.6261 8.16109 -204.45 + 38 249.613 940 0 0 12.6305 8.1632 -205.85 + 38 24.067 804 0 0 -12.5123 -19.05 -206.054 + 38 37.1112 803 0 0 -12.6732 -19.25 -205.871 + 38 69.6497 833 0 1 -13.2751 -20.2098 -204.85 + 38 219.508 789 0 0 -12.7135 -22.0542 -205.85 +Number of digits in this event: 7 +Using G4ParticleGun... +Particle energy: 8.03612 LIN +Particle: gamma Event: 39 -Number of tracker hits in this event = 116 - 39 301.546 572 7 1 -65.5545 50.0421 5.55 - 39 276.837 1149 7 0 -65.5545 50.0411 4.15 - 39 291.389 572 6 1 -65.5525 50.0176 -24.45 - 39 164.987 1149 6 0 -65.5528 50.0174 -25.85 - 39 521.027 572 5 1 -65.5527 50.0123 -54.45 - 39 390.196 1149 5 0 -65.5531 50.0127 -55.85 - 39 462.757 572 4 1 -65.5621 50.0198 -84.45 - 39 376.194 1149 4 0 -65.5621 50.0174 -85.85 - 39 784.123 572 3 1 -65.5595 49.9673 -114.45 - 39 437.281 1149 3 0 -65.5588 49.9644 -115.85 - 39 214.815 572 2 1 -65.5467 49.9015 -144.45 - 39 485.382 1149 2 0 -65.5442 49.8987 -145.85 - 39 268.231 572 1 1 -65.4773 49.833 -174.45 - 39 115.767 1148 1 0 -65.4751 49.8325 -175.85 - 39 103.703 573 0 1 -65.422 49.8241 -204.45 - 39 235.483 1148 0 0 -65.4211 49.822 -205.85 - 39 109.677 466 1 1 -86.8201 46.2582 -174.85 - 39 11.0629 384 10 1 -103.258 84.4711 95.15 - 39 89.0841 391 10 1 -101.95 85.551 95.4905 - 39 19.6524 1236 6 1 67.2948 145.065 -24.45 - 39 101.049 1235 6 1 67.25 145.07 -24.4665 - 39 430.886 1234 6 1 67.0496 145.082 -24.5139 - 39 66.8602 220 0 1 -136.003 102.9 -204.85 - 39 101.193 1148 3 0 -65.681 49.8489 -115.85 - 39 324.849 559 2 1 -68.0566 48.1226 -144.45 - 39 8.20767 558 2 1 -68.25 48.3723 -144.818 - 39 59.0159 1144 2 0 -68.764 48.9939 -145.85 - 39 104.741 1145 2 0 -68.8125 49.05 -145.937 - 39 308.916 1146 2 0 -68.9735 49.25 -146.223 - 39 98.7923 571 3 1 -65.8186 49.8197 -114.45 - 39 140.268 570 3 1 -65.85 49.8275 -114.469 - 39 28.2621 569 3 1 -66.05 49.8765 -114.742 - 39 158.726 1150 3 0 -66.8087 50.0793 -115.85 - 39 76.6986 571 6 1 -65.65 50.0506 -24.6669 - 39 294.148 1150 6 0 -66.8621 50.0595 -25.85 - 39 333.811 1147 3 0 -67.7398 49.589 -115.85 - 39 155.155 924 3 0 -118.374 4.89359 -116.25 - 39 168.017 925 3 0 -118.672 5.05 -115.928 - 39 125.263 926 3 0 -118.36 5.25 -116.125 - 39 291.168 1791 6 0 -174.071 178.497 -26.25 - 39 75.1869 573 3 1 -65.45 49.8892 -114.599 - 39 23.0873 574 3 1 -65.25 49.8149 -114.774 - 39 59.7722 1146 3 0 -64.1817 49.3321 -115.85 - 39 121.509 1145 3 0 -64.0398 49.25 -115.996 - 39 125.717 956 3 0 18.5249 11.4209 -116.25 - 39 200.409 955 3 0 18.8731 11.25 -116.059 - 39 39.4302 954 3 0 19.2205 11.05 -115.896 - 39 35.4134 1015 3 1 23.1521 8.75471 -114.85 - 39 87.4233 1016 3 1 23.2507 8.69982 -114.822 - 39 114.799 1017 3 1 23.45 8.54718 -114.735 - 39 143.945 1018 3 1 23.65 8.24235 -114.574 - 39 179.31 1019 3 1 23.8501 7.97749 -114.54 - 39 56.3166 939 3 0 24.5384 8.04162 -115.85 - 39 115.111 940 3 0 24.5742 8.05 -115.923 - 39 64.6846 1216 3 0 29.9548 63.3082 -116.25 - 39 52.6161 1217 3 0 29.9185 63.45 -116.18 - 39 75.2452 1218 3 0 29.875 63.65 -116.045 - 39 49.024 1219 3 0 29.8288 63.8501 -115.921 - 39 539.856 1048 3 1 29.6893 65.3393 -114.85 - 39 309.669 1047 3 1 29.65 65.4531 -114.782 - 39 238.95 1049 3 1 29.85 66.5117 -114.584 - 39 4.43239 1241 3 0 28.9527 68.439 -115.85 - 39 2.68894 1242 3 0 28.9482 68.4507 -115.854 - 39 309.001 1046 3 1 29.317 69.9 -114.85 - 39 127.404 573 4 1 -65.4361 50.0595 -84.45 - 39 158.517 574 2 1 -65.1331 49.3098 -144.45 - 39 140.049 574 1 1 -65.1172 49.1507 -174.45 - 39 131.892 1145 1 0 -65.1322 49.0949 -175.85 - 39 211.815 572 0 1 -65.531 47.9285 -204.45 - 39 104.027 1139 0 0 -65.5296 47.8841 -205.85 - 39 92.5844 522 0 1 -75.45 48.7594 -204.688 - 39 10.739 576 0 1 -64.6541 48.4521 -204.45 - 39 80.846 577 0 1 -64.6499 48.4589 -204.506 - 39 114.475 1143 0 0 -64.5571 48.6707 -205.85 - 39 140.993 1150 4 0 -65.5327 50.1704 -85.85 - 39 257.633 1151 3 0 -65.4962 50.293 -115.85 - 39 246.172 1151 2 0 -65.634 50.3644 -145.85 - 39 372.471 571 1 1 -65.7168 50.1782 -174.45 - 39 135.688 1150 1 0 -65.7268 50.1876 -175.85 - 39 446.578 570 0 1 -65.8566 50.357 -204.45 - 39 137.846 1151 0 0 -65.865 50.3821 -205.85 - 39 71.7988 571 0 1 -65.6867 50.4772 -204.45 - 39 168.743 1153 0 0 -65.3642 50.7551 -205.85 - 39 309.189 1501 1 0 -1.01697 120.4 -176.179 - 39 126.026 896 1 1 -0.740666 120.973 -174.85 - 39 146.13 897 1 1 -0.65 120.975 -174.48 - 39 281.767 1502 1 0 -1.2587 120.631 -175.85 - 39 291.76 1503 1 0 -1.55278 120.75 -175.934 - 39 2.89269 1504 1 0 -0.897126 120.95 -175.86 - 39 353.655 895 1 1 -0.86157 122.252 -174.85 - 39 85.8709 894 1 1 -1.06869 122.988 -174.45 - 39 97.6884 893 1 1 -1.25025 122.885 -174.622 - 39 19.7792 892 1 1 -1.45 122.684 -174.835 - 39 146.812 1500 1 0 -5.28031 120.35 -175.85 - 39 76.8643 1499 1 0 -5.50965 120.15 -176.057 - 39 74.2346 1498 1 0 -5.62755 119.95 -176.179 - 39 39.7127 1497 1 0 -5.7992 119.75 -176.229 - 39 108.636 1182 0 0 -48.524 56.4592 -206.249 - 39 33.036 1183 0 0 -48.5186 56.6505 -205.923 - 39 118.051 656 0 1 -48.7669 57.7036 -204.85 - 39 425.745 657 0 1 -48.65 57.8466 -204.586 - 39 174.958 1150 0 0 -65.8843 50.156 -205.851 - 39 109.853 1074 3 0 -68.5211 34.9448 -116.25 - 39 103.119 1073 3 0 -68.5654 34.8499 -116.21 - 39 174.45 1150 5 0 -65.5608 50.0503 -55.85 - 39 145.622 571 2 1 -65.7118 49.9568 -144.45 - 39 155.64 1149 1 0 -65.8174 49.9551 -175.85 - 39 110.163 1149 0 0 -65.9188 49.9797 -205.85 - 39 71.5406 569 0 1 -66.05 50.1444 -204.616 - 39 116.127 568 0 1 -66.25 50.2741 -204.712 - 39 230.37 567 0 1 -66.45 50.4773 -204.534 - 39 191.152 566 0 1 -66.65 50.6154 -204.515 - 39 99.0942 565 0 1 -66.85 50.6462 -204.532 - 39 127.247 573 1 1 -65.45 50.3686 -174.699 - 39 40.1847 1261 3 0 -11.3793 72.2838 -116.25 - 39 226.989 1260 3 0 -11.4782 72.2499 -116.221 -Number of digits in this event = 66 -Using G4ParticleGun ... -4.67442 LIN -gamma +Number of tracker hits in this event: 6 + 39 393.938 801 2 0 38.0325 -19.8147 -146.25 + 39 74.2209 1086 2 1 37.328 -20.1821 -144.85 + 39 189.343 1085 2 1 37.2488 -20.2881 -144.692 + 39 208.232 1084 2 1 37.05 -20.1121 -144.669 + 39 42.4798 800 2 0 37.94 -19.85 -146.106 + 39 83.1065 750 3 1 -29.9625 44.9356 -114.45 +Number of digits in this event: 6 +Using G4ParticleGun... +Particle energy: 9.15182 LIN +Particle: gamma Event: 40 -Number of tracker hits in this event = 8 - 40 30.296 1016 1 0 -9.17082 23.4067 -176.187 - 40 358.168 854 0 1 -9.17128 23.4085 -204.45 - 40 285.262 1016 0 0 -9.16958 23.4086 -205.85 - 40 164.934 715 4 1 -36.85 54.0197 -84.7598 - 40 302.528 716 4 1 -36.8498 53.6556 -84.6622 - 40 48.5287 853 0 1 -9.25001 23.2902 -204.761 - 40 9.58061 1015 0 0 -9.47922 23.0569 -205.85 - 40 164.143 1014 0 0 -9.4863 23.05 -205.883 -Number of digits in this event = 6 -Using G4ParticleGun ... -2.84065 LIN -gamma +Number of tracker hits in this event: 38 + 40 432.929 924 5 1 4.97213 -147 -54.45 + 40 465.594 165 5 0 4.97182 -147 -55.85 + 40 331.551 924 4 1 4.96522 -146.998 -84.45 + 40 384.112 165 4 0 4.96518 -146.997 -85.85 + 40 148.599 924 3 1 4.96074 -146.958 -114.45 + 40 124.193 165 3 0 4.96346 -146.956 -115.85 + 40 434.301 924 2 1 5.02072 -146.915 -144.45 + 40 420.489 166 2 0 5.02167 -146.912 -145.85 + 40 808.576 925 1 1 5.05228 -146.851 -174.45 + 40 145.39 166 1 0 5.05415 -146.846 -175.85 + 40 93.6272 925 0 1 5.09326 -146.728 -204.45 + 40 135.639 167 0 0 5.09525 -146.722 -205.85 + 40 100.698 167 1 0 5.14858 -146.735 -175.85 + 40 231.385 926 0 1 5.37993 -146.309 -204.45 + 40 149.646 169 0 0 5.41259 -146.308 -205.85 + 40 207.635 949 9 0 108.16 9.85 63.8779 + 40 133.059 924 1 1 4.99767 -146.905 -174.45 + 40 31.4973 923 1 1 4.85 -147.881 -174.796 + 40 357.701 165 1 0 3.85163 -147.134 -175.85 + 40 20.0407 164 1 0 3.73992 -147.15 -175.985 + 40 37.3994 166 0 0 5.02367 -146.768 -206.212 + 40 65.898 398 0 0 26.1208 -100.505 -206.25 + 40 229.463 399 0 0 26.1602 -100.35 -206.219 + 40 5.38297 160 4 0 5.2087 -148.132 -85.85 + 40 92.3997 159 4 0 5.21096 -148.15 -85.8723 + 40 38.4643 158 4 0 5.15269 -148.35 -86.1329 + 40 20.1257 272 4 0 33.0827 -125.636 -86.25 + 40 52.657 273 4 0 33.1205 -125.55 -86.2127 + 40 120.03 925 3 1 5.07674 -147.147 -114.45 + 40 113.146 164 3 0 5.08164 -147.151 -115.85 + 40 116.373 925 2 1 5.17549 -147.22 -144.45 + 40 109.748 164 2 0 5.18147 -147.227 -145.85 + 40 339.982 926 1 1 5.30072 -147.364 -174.45 + 40 102.813 163 1 0 5.3035 -147.374 -175.85 + 40 104.996 162 0 0 5.35097 -147.64 -205.85 + 40 84.791 513 0 1 -77.25 -147.471 -204.715 + 40 81.6713 514 0 1 -77.2498 -147.46 -204.596 + 40 304.037 1380 0 1 96.2159 -126.004 -204.45 +Number of digits in this event: 23 +Using G4ParticleGun... +Particle energy: 1.94939 LIN +Particle: gamma Event: 41 -Number of tracker hits in this event = 122 - 41 276.306 1464 7 1 112.995 54.3529 5.55 - 41 318.174 1171 7 0 112.993 54.3537 4.15 - 41 227.76 1464 6 1 112.966 54.3529 -24.45 - 41 141.086 1171 6 0 112.963 54.3503 -25.85 - 41 335.571 1463 5 1 112.909 54.2981 -54.45 - 41 229.814 1171 5 0 112.908 54.294 -55.85 - 41 409.766 1463 4 1 112.874 54.2211 -84.45 - 41 428.777 1170 4 0 112.876 54.2146 -85.85 - 41 106.538 1463 3 1 112.946 54.0871 -114.45 - 41 238.91 1170 3 0 112.95 54.0803 -115.85 - 41 316.338 1464 2 1 113.041 53.9388 -144.45 - 41 130.26 1169 2 0 113.051 53.9292 -145.85 - 41 100.798 1465 1 1 113.24 53.7163 -174.45 - 41 244.819 1168 1 0 113.249 53.6949 -175.85 - 41 309.123 1466 0 1 113.432 53.2728 -204.45 - 41 159.804 1166 0 0 113.435 53.2589 -205.85 - 41 46.6459 905 1 1 1.17436 22.5616 -174.85 - 41 251.354 1465 0 1 113.255 53.6839 -204.45 - 41 2.70058 1387 2 1 97.55 -0.970329 -144.714 - 41 17.5571 1172 0 0 113.39 54.6157 -205.85 - 41 84.6846 1173 0 0 113.386 54.65 -205.894 - 41 52.8785 1174 0 0 113.354 54.85 -206.137 - 41 185.559 1164 0 0 113.12 53.0389 -205.85 - 41 17.1288 1015 0 0 110.658 23.118 -206.249 - 41 64.8958 1014 0 0 110.635 23.05 -206.2 - 41 206.944 1013 0 0 110.542 22.85 -206.064 - 41 284.093 1012 0 0 110.455 22.6499 -205.98 - 41 65.1338 1449 0 1 110.035 21.5431 -204.85 - 41 68.205 1448 0 1 109.95 21.3796 -204.695 - 41 113.103 1447 0 1 109.75 21.1887 -204.559 - 41 48.079 1446 0 1 109.547 21.1273 -204.45 - 41 128.696 1006 0 0 109.853 21.2576 -205.85 - 41 495.618 1467 0 1 113.55 53.5723 -204.791 - 41 73.8575 1168 0 0 113.684 53.7305 -205.85 - 41 260.74 1169 0 0 113.642 53.85 -205.987 - 41 163.381 1478 3 1 115.871 49.9448 -114.45 - 41 131.356 1148 3 0 115.952 49.7982 -115.85 - 41 106.323 1487 2 1 117.61 47.5031 -144.45 - 41 95.2718 1136 2 0 117.625 47.3932 -145.85 - 41 221.988 1501 1 1 120.373 45.936 -174.45 - 41 142.722 1132 1 0 120.632 46.5153 -175.85 - 41 9.40243 1133 1 0 120.703 46.65 -176.218 - 41 24.3366 1525 0 1 125.286 54.6861 -204.45 - 41 78.8131 1526 0 1 125.35 54.7309 -204.492 - 41 65.6762 1527 0 1 125.55 54.9079 -204.678 - 41 103.793 1181 0 0 126.158 56.2909 -205.85 - 41 176.665 1182 0 0 126.22 56.45 -206.013 - 41 18.5719 1183 0 0 126.268 56.6511 -206.213 - 41 12.6316 1557 0 1 131.553 47.8534 -204.45 - 41 74.3777 1556 0 1 131.55 47.8544 -204.452 - 41 106.384 1464 3 1 113.035 54.1611 -114.45 - 41 94.8255 1168 2 0 112.968 53.6622 -145.85 - 41 29.0965 1167 2 0 112.96 53.65 -146.156 - 41 147.892 1461 1 1 112.367 52.6642 -174.45 - 41 120.63 1162 1 0 112.343 52.6428 -175.85 - 41 115.413 1458 0 1 111.9 52.2428 -204.45 - 41 124.733 1161 0 0 111.88 52.2836 -205.85 - 41 122.843 1462 4 1 112.585 54.1937 -84.45 - 41 161.402 1171 4 0 112.563 54.3928 -85.85 - 41 2.43409 1172 4 0 112.554 54.45 -86.2381 - 41 97.1321 1457 3 1 111.641 58.914 -114.45 - 41 161.235 1195 3 0 111.566 59.1443 -115.85 - 41 495.272 1447 2 1 109.664 64.3201 -144.45 - 41 114.816 1222 2 0 109.578 64.5648 -145.85 - 41 11.1331 1434 1 1 106.955 69.5878 -174.45 - 41 115.285 1433 1 1 106.95 69.5967 -174.509 - 41 99.0655 1248 1 0 106.844 69.7633 -175.85 - 41 166.28 1424 0 1 104.961 72.7315 -204.45 - 41 120.395 1264 0 0 105.074 72.9431 -205.85 - 41 0.341788 1169 5 0 112.708 53.8504 -55.85 - 41 148.358 1168 5 0 112.708 53.85 -55.8509 - 41 112.61 1439 4 1 108.076 40.4839 -84.45 - 41 168.035 1100 4 0 107.967 40.1427 -85.85 - 41 9.66027 1099 4 0 107.933 40.0499 -86.2084 - 41 264.426 1421 3 1 104.43 31.7546 -114.45 - 41 190.516 1422 3 1 104.55 32.6679 -114.602 - 41 128.759 1423 3 1 104.75 33.3837 -114.7 - 41 49.2296 1080 3 0 105.835 36.0942 -115.85 - 41 62.5308 1081 3 0 105.889 36.2501 -115.915 - 41 67.8198 1082 3 0 105.957 36.45 -115.995 - 41 76.2391 1083 3 0 106.036 36.6506 -116.125 - 41 3.77521 1084 3 0 106.121 36.85 -116.243 - 41 13.0291 1533 3 0 142.648 126.921 -116.25 - 41 183.917 1534 3 0 142.659 126.95 -116.228 - 41 57.6278 1535 3 0 142.725 127.15 -116.075 - 41 26.1383 1536 3 0 142.84 127.35 -115.937 - 41 70.3718 1616 3 1 143.458 128.453 -114.85 - 41 88.8264 1617 3 1 143.55 128.613 -114.672 - 41 157.742 1503 4 0 147.803 120.858 -86.2499 - 41 357.878 1641 4 1 148.471 120.269 -84.85 - 41 12.8549 1494 4 0 147.778 118.983 -85.85 - 41 70.5233 1493 4 0 147.771 118.95 -85.8776 - 41 127.406 1492 4 0 147.745 118.75 -85.9477 - 41 127.092 1491 4 0 147.739 118.55 -85.95 - 41 16.9299 1490 4 0 147.996 118.35 -85.8625 - 41 23.2727 1637 4 1 147.589 115.84 -84.8499 - 41 113.094 1636 4 1 147.55 115.802 -84.8255 - 41 12.1114 1473 4 0 148.375 114.761 -85.85 - 41 176.972 1472 4 0 148.387 114.75 -85.8654 - 41 31.5904 1272 7 0 100.825 74.6145 3.75 - 41 148.891 1273 7 0 100.807 74.65 3.79871 - 41 116.514 1465 6 1 113.151 54.6012 -24.45 - 41 124.363 1172 6 0 113.157 54.6078 -25.85 - 41 145.294 1465 5 1 113.212 54.7156 -54.45 - 41 107.077 1173 5 0 113.221 54.7279 -55.85 - 41 132.463 1466 4 1 113.416 54.9804 -84.45 - 41 118.291 1174 4 0 113.417 54.9998 -85.85 - 41 164.971 1466 3 1 113.418 55.4113 -114.45 - 41 111.406 1176 3 0 113.424 55.4293 -115.85 - 41 116.588 1466 2 1 113.544 55.8327 -144.45 - 41 158.169 1179 2 0 113.541 55.8682 -145.85 - 41 146.988 1466 1 1 113.494 56.539 -174.45 - 41 121.742 1182 1 0 113.497 56.5637 -175.85 - 41 171.325 1185 0 0 113.589 57.0613 -205.85 - 41 164.254 1062 2 1 32.5656 45.371 -144.85 - 41 43.0119 1061 2 1 32.45 45.251 -144.743 - 41 47.6047 1186 0 0 126.124 57.45 -206.203 - 41 104.581 1521 0 1 124.476 47.5736 -204.85 - 41 115.595 1522 0 1 124.55 47.5527 -204.715 - 41 5.84284 1000 9 1 20.25 96.6082 65.5138 - 41 35.066 781 9 1 -23.7131 85.8929 65.15 - 41 272.147 1464 5 1 113.15 54.7416 -54.8 -Number of digits in this event = 59 -Using G4ParticleGun ... -2.19297 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 1 +Using G4ParticleGun... +Particle energy: 5.30362 LIN +Particle: gamma Event: 42 -Number of tracker hits in this event = 0 -Number of digits in this event = 2 -Using G4ParticleGun ... -7.5331 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 1 +Using G4ParticleGun... +Particle energy: 7.94965 LIN +Particle: gamma Event: 43 -Number of tracker hits in this event = 70 - 43 243.716 1349 4 0 -100.144 90.0495 -85.85 - 43 107.973 400 3 1 -100.091 89.9342 -114.45 - 43 117.676 1349 3 0 -100.088 89.9308 -115.85 - 43 122.598 400 2 1 -100.039 89.8633 -144.45 - 43 112.507 1349 2 0 -100.035 89.8603 -145.85 - 43 109.522 400 1 1 -99.974 89.804 -174.45 - 43 123.193 1348 1 0 -99.969 89.8052 -175.85 - 43 114.283 401 0 1 -99.8686 89.8473 -204.45 - 43 418.621 1349 0 0 -99.866 89.8535 -205.85 - 43 52.9125 1795 1 0 -40.0161 179.15 -176.208 - 43 74.0109 1796 1 0 -39.8406 179.35 -175.957 - 43 8.20176 1424 1 0 -147.008 105.143 -176.248 - 43 150.13 1425 1 0 -147.033 105.15 -176.227 - 43 108.482 160 1 1 -148.003 105.396 -174.85 - 43 66.9288 159 1 1 -148.15 105.431 -174.685 - 43 93.2469 158 1 1 -148.35 105.468 -174.67 - 43 76.099 157 1 1 -148.55 105.552 -174.652 - 43 28.2854 156 1 1 -148.75 105.682 -174.816 - 43 31.8924 1432 1 0 -149.657 106.704 -175.85 - 43 165.105 1433 1 0 -149.716 106.75 -175.911 - 43 16.0459 1434 1 0 -149.86 106.95 -176.213 - 43 71.2142 1627 1 0 -138.439 145.735 -176.25 - 43 62.1685 1628 1 0 -138.385 145.75 -176.024 - 43 71.4953 214 1 1 -137.28 145.539 -174.85 - 43 305.317 215 1 1 -137.15 145.504 -174.809 - 43 91.6891 216 1 1 -136.95 145.719 -174.606 - 43 349.348 400 0 1 -100.071 89.9676 -204.45 - 43 80.6324 982 1 0 -95.2065 16.5243 -176.25 - 43 7.83431 663 2 1 -47.45 -24.9076 -144.53 - 43 50.2817 662 2 1 -47.45 -24.9289 -144.558 - 43 502.522 1127 0 0 -24.6871 45.6104 -206.25 - 43 80.1468 1126 0 0 -24.1203 45.45 -206.008 - 43 17.4552 1125 0 0 -24.0392 45.25 -205.888 - 43 143.655 778 0 1 -24.397 44.1739 -204.85 - 43 472.575 777 0 1 -24.45 44.044 -204.746 - 43 150.793 776 0 1 -24.6501 43.4344 -204.694 - 43 39.7128 1113 0 0 -25.1577 42.6647 -205.85 - 43 63.1311 401 6 1 -99.9248 90.05 -24.8185 - 43 141.609 399 5 1 -100.222 90.0023 -54.45 - 43 202.291 1349 5 0 -100.225 89.9975 -55.85 - 43 122.988 399 4 1 -100.279 89.8864 -84.45 - 43 107.974 399 3 1 -100.332 89.7113 -114.45 - 43 369.423 1348 3 0 -100.335 89.7068 -115.85 - 43 372.926 398 2 1 -100.391 89.6181 -144.45 - 43 106.699 1347 2 0 -100.396 89.6121 -145.85 - 43 116.944 398 1 1 -100.507 89.4991 -174.45 - 43 113.009 1347 1 0 -100.514 89.4899 -175.85 - 43 105.703 397 0 1 -100.649 89.3128 -204.45 - 43 188.988 1346 0 0 -100.656 89.302 -205.85 - 43 108.619 153 10 0 87.475 -149.35 94.0514 - 43 11.6698 1337 10 1 87.5811 -149.071 95.15 - 43 35.5187 161 10 0 88.9682 -147.926 94.15 - 43 45.1865 1663 3 0 103.954 152.75 -116.132 - 43 132.482 1343 2 0 -100.286 88.7408 -145.85 - 43 106.967 409 1 1 -98.2909 88.3969 -174.451 - 43 107.834 1341 1 0 -98.235 88.4175 -175.85 - 43 115.328 414 0 1 -97.1656 89.1025 -204.45 - 43 111.699 1345 0 0 -97.1435 89.1164 -205.851 - 43 2.18177 406 2 1 -98.9493 89.137 -144.451 - 43 124.882 405 2 1 -98.95 89.137 -144.46 - 43 114.669 1345 2 0 -99.0578 89.0955 -145.85 - 43 10.2474 1344 2 0 -99.0781 89.05 -146.218 - 43 1.93114 397 1 1 -100.744 85.2801 -174.45 - 43 238.688 396 1 1 -100.75 85.2755 -174.458 - 43 112.467 395 1 1 -100.95 85.1176 -174.715 - 43 140.243 1321 1 0 -101.884 84.45 -175.851 - 43 46.2711 1320 1 0 -102.161 84.25 -176.181 - 43 95.6689 283 0 1 -123.519 69.6002 -204.45 - 43 19.538 282 0 1 -123.55 69.5994 -204.769 - 43 102.878 1247 0 0 -123.751 69.5354 -205.85 -Number of digits in this event = 26 -Using G4ParticleGun ... -2.25963 LIN -gamma +Number of tracker hits in this event: 2 + 43 24.6152 956 1 0 36.5785 11.45 -175.891 + 43 108.658 1084 1 1 36.9916 11.7515 -174.85 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 3.38715 LIN +Particle: gamma Event: 44 -Number of tracker hits in this event = 31 - 44 301.664 1095 5 1 39.2002 -66.814 -54.45 - 44 225.032 566 5 0 39.2004 -66.8066 -55.85 - 44 243.32 1095 4 1 39.2217 -66.6268 -84.45 - 44 128.515 567 4 0 39.2029 -66.611 -85.85 - 44 132.812 1094 3 1 38.8812 -66.2498 -114.45 - 44 120.049 569 3 0 38.8503 -66.2378 -115.85 - 44 175.835 1091 2 1 38.3229 -66.0379 -144.45 - 44 115.627 570 2 0 38.3057 -66.0194 -145.85 - 44 116.972 1089 1 1 37.9303 -65.5969 -174.45 - 44 154.331 572 1 0 37.8958 -65.5745 -175.85 - 44 158.879 1085 0 1 37.1764 -65.049 -204.45 - 44 125.554 575 0 0 37.1262 -65.0217 -205.85 - 44 546.578 1086 0 1 37.25 -65.0268 -204.623 - 44 17.7884 577 0 0 37.501 -64.484 -205.85 - 44 85.7335 578 0 0 37.5089 -64.45 -205.927 - 44 92.5311 572 0 0 37.4663 -65.5883 -205.851 - 44 105.059 571 0 0 37.508 -65.65 -206.004 - 44 109.227 507 0 0 49.4233 -78.5817 -206.25 - 44 31.6489 506 0 0 49.4368 -78.65 -205.955 - 44 113.162 1149 0 1 49.8574 -79.7551 -204.85 - 44 207.795 1148 0 1 49.85 -79.8937 -204.671 - 44 361.681 1147 0 1 49.65 -80.2218 -204.528 - 44 95.4958 566 4 0 39.2294 -66.8484 -85.85 - 44 125.124 1096 3 1 39.3159 -66.8807 -114.45 - 44 131.015 565 3 0 39.3029 -66.8712 -115.85 - 44 116.096 1094 2 1 38.9011 -66.6962 -144.45 - 44 161.096 566 2 0 38.8938 -66.688 -145.85 - 44 114.579 1094 1 1 38.9075 -66.4426 -174.45 - 44 156.652 567 1 0 38.8983 -66.456 -175.85 - 44 137.152 1092 0 1 38.6271 -66.6836 -204.45 - 44 127.795 566 0 0 38.6118 -66.7285 -205.85 -Number of digits in this event = 21 -Using G4ParticleGun ... -9.62723 LIN -gamma +Number of tracker hits in this event: 104 + 44 281.69 1048 7 1 29.6558 22.1932 5.55 + 44 271.593 1010 7 0 29.6537 22.1896 4.15 + 44 157.512 1047 6 1 29.6084 22.1122 -24.45 + 44 111.192 1010 6 0 29.6062 22.1083 -25.85 + 44 111.312 1047 5 1 29.5607 22.0278 -54.45 + 44 132.897 1009 5 0 29.559 22.0231 -55.85 + 44 136.368 1047 4 1 29.5135 21.9146 -84.45 + 44 235.24 1009 4 0 29.5077 21.9072 -85.85 + 44 181.795 1046 3 1 29.396 21.7644 -114.45 + 44 124.749 1008 3 0 29.4009 21.7578 -115.85 + 44 149.266 1047 2 1 29.518 21.6369 -144.45 + 44 122.26 1007 2 0 29.5223 21.6297 -145.85 + 44 148.278 1047 1 1 29.6444 21.4626 -174.45 + 44 32.8187 1007 1 0 29.6359 21.4505 -175.85 + 44 109.263 1006 1 0 29.6356 21.45 -175.909 + 44 192.94 1047 0 1 29.4536 21.204 -204.45 + 44 91.2018 1046 0 1 29.45 21.2026 -204.684 + 44 126.619 1005 0 0 29.4318 21.1957 -205.85 + 44 41.2351 761 6 0 5.33031 -27.65 -26.0896 + 44 7.7522 1011 0 0 28.5875 22.4305 -205.85 + 44 100.977 1012 0 0 28.5699 22.4501 -205.872 + 44 76.6279 1013 0 0 28.3745 22.65 -206.111 + 44 18.7119 1014 0 0 28.2699 22.85 -206.237 + 44 28.6222 1433 0 0 4.55677 106.862 -206.25 + 44 63.5877 1434 0 0 4.5456 106.95 -206.182 + 44 54.5935 1435 0 0 4.52247 107.151 -206.026 + 44 18.6049 1436 0 0 4.50745 107.35 -205.892 + 44 192.927 921 0 1 4.3227 108.767 -204.85 + 44 4.41508 920 0 1 4.25 109.203 -204.466 + 44 52.9299 1427 1 0 -10.4469 105.581 -176.25 + 44 51.471 1426 1 0 -10.5384 105.55 -176.042 + 44 119.234 845 1 1 -10.903 105.645 -174.85 + 44 8.05164 844 1 1 -11.05 105.75 -174.475 + 44 399.344 1367 2 0 29.5699 93.7104 -146.25 + 44 35.4392 1058 2 1 31.7611 93.695 -144.85 + 44 228.255 1059 2 1 31.8501 93.7067 -144.833 + 44 37.4208 1060 2 1 32.0506 93.5651 -144.849 + 44 33.4616 1361 2 0 34.6055 92.3818 -145.85 + 44 165.772 1360 2 0 34.6284 92.35 -145.888 + 44 168.477 1048 0 1 29.6729 21.0461 -204.45 + 44 79.9003 1006 0 0 29.7903 21.3708 -205.85 + 44 20.0277 1007 0 0 29.8198 21.45 -206.169 + 44 98.1183 1129 3 1 45.85 47.6056 -114.678 + 44 17.9423 1047 3 1 29.5979 21.7289 -114.45 + 44 71.5633 1048 3 1 29.65 21.7262 -114.471 + 44 76.7892 1049 3 1 29.85 21.7178 -114.56 + 44 76.4977 1050 3 1 30.0508 21.7058 -114.641 + 44 44.8221 1051 3 1 30.25 21.6816 -114.759 + 44 200.108 1006 3 0 31.756 21.3785 -115.85 + 44 17.3227 753 3 0 76.7142 -29.3933 -116.25 + 44 79.2796 752 3 0 76.7216 -29.45 -116.218 + 44 70.7385 751 3 0 76.7359 -29.65 -116.111 + 44 76.8852 750 3 0 76.7497 -29.8506 -116.025 + 44 32.5865 749 3 0 76.726 -30.05 -115.92 + 44 138.226 1281 3 1 76.2982 -31.8743 -114.85 + 44 209.829 1280 3 1 76.25 -32.1074 -114.72 + 44 25.6953 1278 3 1 75.7647 -33.1267 -114.45 + 44 157.159 1279 3 1 75.85 -33.1571 -114.486 + 44 215.592 728 3 0 74.9246 -34.3331 -115.85 + 44 3.27744 727 3 0 74.7063 -34.45 -116.236 + 44 1.4295 492 3 0 75.3715 -81.6451 -116.25 + 44 56.0669 491 3 0 75.372 -81.65 -116.246 + 44 55.3307 490 3 0 75.3237 -81.85 -116.203 + 44 4.36821 718 3 0 77.6099 -36.25 -115.964 + 44 83.9344 1047 7 1 29.65 22.1955 5.47129 + 44 7.11359 1038 6 1 27.653 23.1717 -24.45 + 44 96.4354 1037 6 1 27.65 23.175 -24.4795 + 44 99.2144 1016 6 0 27.5234 23.3473 -25.85 + 44 95.7874 1027 5 1 25.4752 26.2013 -54.45 + 44 1.60556 1026 5 1 25.45 26.2701 -54.8433 + 44 19.1201 1031 5 0 25.3826 26.4377 -55.85 + 44 87.7103 1032 5 0 25.3777 26.45 -55.9233 + 44 244.218 1017 4 1 23.6338 30.7491 -84.45 + 44 453.535 1054 4 0 23.4206 30.864 -85.85 + 44 178.517 995 3 1 19.0606 32.3804 -114.45 + 44 104.848 1062 3 0 19.0932 32.5251 -115.85 + 44 318.25 991 2 1 18.3283 35.3366 -144.45 + 44 109.594 1076 2 0 18.1348 35.3521 -145.85 + 44 150.217 970 1 1 14.2188 34.5851 -174.45 + 44 377.292 1073 1 0 13.7046 34.725 -175.85 + 44 128.192 919 0 1 3.96041 37.6806 -204.45 + 44 133.434 1089 0 0 3.71848 37.8855 -205.85 + 44 8.04082 862 0 0 7.56114 -7.5428 -206.25 + 44 68.9733 954 1 1 11.0172 36.1007 -174.45 + 44 38.6847 955 1 1 11.05 36.0277 -174.712 + 44 9.50924 1077 1 0 11.2274 35.4742 -175.85 + 44 93.9959 1076 1 0 11.2349 35.45 -175.898 + 44 15.8168 1075 1 0 11.3278 35.25 -176.205 + 44 13.3558 703 1 0 53.5617 -39.408 -176.25 + 44 71.6094 702 1 0 53.5792 -39.4502 -176.229 + 44 77.01 701 1 0 53.6855 -39.65 -176.127 + 44 78.1283 700 1 0 53.8495 -39.85 -175.995 + 44 73.1714 1177 1 1 55.4616 -40.7943 -174.85 + 44 68.3121 1178 1 1 55.6503 -40.9163 -174.737 + 44 72.5 1179 1 1 55.85 -41.0382 -174.631 + 44 151.597 1011 7 0 29.4026 22.3103 4.15 + 44 4.48311 1012 7 0 29.4051 22.45 3.757 + 44 319.158 1563 7 0 49.0471 132.899 3.75 + 44 13.9224 1151 7 1 50.4092 132.578 5.15 + 44 83.0076 1152 7 1 50.45 132.562 5.18746 + 44 81.9384 1153 7 1 50.65 132.551 5.29464 + 44 122.114 1562 7 0 50.816 132.631 4.15 + 44 16.9801 1564 7 0 50.7605 132.95 3.7893 + 44 86.0452 1449 7 0 24.1966 109.999 3.75 +Number of digits in this event: 37 +Using G4ParticleGun... +Particle energy: 6.9657 LIN +Particle: gamma Event: 45 -Number of tracker hits in this event = 36 - 45 241.576 868 4 1 -6.2831 27.3095 -84.45 - 45 292.03 1036 4 0 -6.28129 27.3134 -85.85 - 45 103.076 869 3 1 -6.23768 27.4009 -114.45 - 45 355.775 1036 3 0 -6.23865 27.4039 -115.85 - 45 174.476 868 2 1 -6.2614 27.4672 -144.45 - 45 344.586 1037 2 0 -6.26224 27.4704 -145.85 - 45 330.312 868 1 1 -6.28665 27.5401 -174.45 - 45 407.189 1037 1 0 -6.28623 27.5442 -175.85 - 45 128.795 868 0 1 -6.26135 27.6197 -204.45 - 45 279.682 1037 0 0 -6.26184 27.6225 -205.85 - 45 25.421 948 3 0 54.7248 9.78576 -116.25 - 45 99.2808 1036 2 0 -6.22942 27.45 -146.099 - 45 43.6871 869 1 1 -6.24995 27.5886 -174.655 - 45 68.5849 1039 1 0 -6.16562 27.987 -175.85 - 45 71.0806 1040 1 0 -6.14255 28.0501 -176.028 - 45 93.6191 890 0 1 -2.00705 37.7913 -204.45 - 45 122.097 891 0 1 -1.84987 37.9849 -204.611 - 45 53.5041 1095 0 0 -0.888019 39.121 -205.85 - 45 104.284 1096 0 0 -0.780079 39.25 -205.979 - 45 58.5005 1097 0 0 -0.729542 39.45 -206.096 - 45 38.2728 1098 0 0 -0.711183 39.6504 -206.205 - 45 124.54 870 0 1 -5.97878 26.9536 -204.45 - 45 104.968 1034 0 0 -5.78262 26.9981 -205.85 - 45 60.3217 965 1 1 13.2094 -50.6214 -174.85 - 45 219.707 966 1 1 13.2501 -50.7758 -174.706 - 45 3.6735 783 0 1 -23.25 -52.3173 -204.767 - 45 244.784 868 3 1 -6.25 27.3933 -114.82 - 45 13.5459 1086 0 1 37.3251 162.845 -204.45 - 45 17.0173 904 1 0 -114.084 1.05 -176.088 - 45 244.148 316 1 1 -116.764 1.68116 -174.85 - 45 246.03 867 3 1 -6.46498 27.4005 -114.45 - 45 137.736 866 2 1 -6.84585 27.4738 -144.45 - 45 12.7565 865 2 1 -6.85 27.4753 -144.796 - 45 129.335 864 1 1 -7.2315 27.5922 -174.45 - 45 152.661 861 0 1 -7.67402 27.6441 -204.45 - 45 182.759 1307 2 0 -34.2299 81.5968 -146.25 -Number of digits in this event = 21 -Using G4ParticleGun ... -8.17011 LIN -gamma +Number of tracker hits in this event: 1 + 45 28.5486 502 0 1 -79.45 162.187 -204.482 +Number of digits in this event: 3 +Using G4ParticleGun... +Particle energy: 5.96922 LIN +Particle: gamma Event: 46 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 -Using G4ParticleGun ... -2.15898 LIN -gamma +Number of tracker hits in this event: 71 + 46 254.315 1049 8 1 29.9491 -88.2283 35.55 + 46 291.916 459 8 0 29.9488 -88.228 34.15 + 46 300.499 1049 7 1 29.9457 -88.2186 5.55 + 46 100.129 459 7 0 29.9458 -88.2195 4.15 + 46 270.244 1049 6 1 29.9502 -88.2356 -24.45 + 46 130.982 459 6 0 29.9501 -88.2382 -25.85 + 46 115.938 1049 5 1 29.9505 -88.2841 -54.45 + 46 148.419 458 5 0 29.9522 -88.2855 -55.85 + 46 158.95 1049 4 1 29.9914 -88.3063 -84.45 + 46 122.928 458 4 0 29.9944 -88.3082 -85.85 + 46 253.321 1050 3 1 30.0513 -88.3415 -114.45 + 46 141.381 458 3 0 30.0528 -88.344 -115.85 + 46 453.408 1050 2 1 30.0798 -88.3953 -144.45 + 46 265.339 458 2 0 30.0819 -88.3985 -145.85 + 46 122.218 1050 1 1 30.1242 -88.4635 -174.45 + 46 102.885 457 1 0 30.1263 -88.4667 -175.85 + 46 138.712 1050 0 1 30.1666 -88.5305 -204.45 + 46 175.428 457 0 0 30.1672 -88.532 -205.85 + 46 67.2828 976 1 1 15.3385 -144.757 -174.85 + 46 36.6764 1049 2 1 30.0499 -88.3809 -144.566 + 46 70.2649 455 2 0 30.0905 -88.9579 -145.85 + 46 62.6071 454 2 0 30.0963 -89.05 -146.075 + 46 37.3434 1052 1 1 30.4912 -99.2851 -174.45 + 46 123.819 1051 1 1 30.4499 -99.3451 -174.554 + 46 122.388 399 1 0 29.6307 -100.167 -175.85 + 46 41.7096 398 1 0 29.4376 -100.35 -176.128 + 46 85.0254 933 0 1 6.84017 -122.175 -204.45 + 46 85.9858 932 0 1 6.65 -122.265 -204.629 + 46 5.94799 931 0 1 6.44978 -122.351 -204.827 + 46 164.155 286 0 0 5.53832 -122.774 -205.85 + 46 122.768 1047 1 1 29.5601 -88.6894 -174.45 + 46 125.092 456 1 0 29.5238 -88.7592 -175.85 + 46 102.38 1042 0 1 28.6458 -90.15 -204.479 + 46 100.119 449 0 0 28.6083 -90.2505 -205.85 + 46 115.825 458 7 0 29.9364 -88.3745 4.15 + 46 111.816 458 6 0 29.9899 -88.3773 -25.85 + 46 128.125 1048 5 1 29.6665 -87.9141 -54.45 + 46 103.209 460 5 0 29.6475 -87.8924 -55.85 + 46 130.336 1045 4 1 29.2426 -87.4481 -84.45 + 46 121.72 463 4 0 29.1993 -87.4141 -85.85 + 46 137.464 1041 3 1 28.3836 -86.6506 -114.45 + 46 101.848 467 3 0 28.3724 -86.6149 -115.85 + 46 137.107 1040 2 1 28.0823 -86.0817 -144.45 + 46 141.897 469 2 0 28.0717 -86.0843 -145.85 + 46 102.816 1039 1 1 27.8731 -85.9898 -174.45 + 46 125.091 470 1 0 27.8552 -86.011 -175.85 + 46 163.567 1037 0 1 27.4691 -86.3082 -204.45 + 46 115.894 468 0 0 27.4459 -86.3101 -205.85 + 46 96.0498 1037 2 1 27.6385 -86.4373 -144.45 + 46 101.726 1036 2 1 27.45 -86.3754 -144.609 + 46 47.5316 1035 2 1 27.2493 -86.2692 -144.75 + 46 140.065 473 2 0 26.4376 -85.4071 -145.85 + 46 126.813 1038 2 1 27.6762 -86.4298 -144.45 + 46 128.668 467 2 0 27.8415 -86.473 -145.85 + 46 125.624 1064 1 1 32.9516 -86.2975 -174.45 + 46 33.6904 468 1 0 33.1403 -86.2555 -175.85 + 46 72.8909 469 1 0 33.1563 -86.25 -175.979 + 46 182.68 1081 0 1 36.3258 -84.6646 -204.45 + 46 107.188 475 0 0 36.1662 -84.9014 -205.85 + 46 111.805 1176 4 1 55.25 -76.6923 -84.7885 + 46 31.2607 1141 3 1 48.3426 -87.2077 -114.45 + 46 30.2001 1049 3 1 30.0194 -88.3473 -114.45 + 46 19.6859 1051 3 1 30.25 -88.1712 -114.783 + 46 304.891 459 3 0 31.0588 -88.1268 -115.85 + 46 6.46428 274 3 0 40.7298 -125.332 -116.25 + 46 86.63 273 3 0 40.7249 -125.35 -116.238 + 46 53.8011 272 3 0 40.7274 -125.55 -116.148 + 46 82.297 271 3 0 40.7586 -125.75 -116.181 + 46 106.953 270 3 0 40.8292 -125.95 -116.209 + 46 86.7447 269 3 0 40.8045 -126.15 -116.208 + 46 12.3539 268 3 0 40.6814 -126.35 -116.24 +Number of digits in this event: 38 +Using G4ParticleGun... +Particle energy: 5.82708 LIN +Particle: gamma Event: 47 -Number of tracker hits in this event = 24 - 47 222.741 462 6 1 -87.5661 -86.1418 -24.45 - 47 279.693 469 6 0 -87.5638 -86.1436 -25.85 - 47 250.219 462 5 1 -87.4945 -86.1739 -54.45 - 47 250.151 469 5 0 -87.4908 -86.1579 -55.85 - 47 117.551 463 4 1 -87.4213 -85.8256 -84.45 - 47 246.047 471 4 0 -87.4144 -85.8113 -85.85 - 47 116.589 464 3 1 -87.2492 -85.5505 -114.45 - 47 105.295 472 3 0 -87.246 -85.5453 -115.85 - 47 134.136 464 2 1 -87.2237 -85.4265 -144.45 - 47 171.222 473 2 0 -87.2218 -85.4176 -145.85 - 47 124.279 464 1 1 -87.2082 -85.2557 -174.45 - 47 197.05 474 1 0 -87.1993 -85.2494 -175.85 - 47 121.2 464 0 1 -87.0569 -85.1495 -204.45 - 47 113.121 474 0 0 -87.0549 -85.1473 -205.85 - 47 103.545 462 4 1 -87.5503 -85.7443 -84.45 - 47 115.76 463 3 1 -87.3741 -85.2072 -114.45 - 47 104.717 474 3 0 -87.3521 -85.1901 -115.85 - 47 153.298 465 2 1 -86.9084 -84.8391 -144.45 - 47 108.684 476 2 0 -86.8766 -84.8242 -145.85 - 47 126.548 469 1 1 -86.2348 -84.5252 -174.45 - 47 167.022 477 1 0 -86.2089 -84.5157 -175.85 - 47 113.945 471 0 1 -85.6892 -84.312 -204.45 - 47 123.292 478 0 0 -85.6681 -84.2975 -205.85 - 47 134.562 395 0 1 -101.15 17.2613 -204.62 -Number of digits in this event = 18 -Using G4ParticleGun ... -9.97301 LIN -gamma +Number of tracker hits in this event: 2 + 47 209.468 787 6 1 -22.5254 -130.593 -24.85 + 47 42.0555 1193 5 1 58.6895 -74.3336 -54.85 +Number of digits in this event: 3 +Using G4ParticleGun... +Particle energy: 1.23309 LIN +Particle: gamma Event: 48 -Number of tracker hits in this event = 168 - 48 276.7 1032 11 1 26.4869 -54.2242 125.55 - 48 249.808 629 11 0 26.4875 -54.2254 124.15 - 48 372.199 1032 10 1 26.4995 -54.2514 95.55 - 48 74.9015 628 10 0 26.4997 -54.2503 94.15 - 48 261.547 629 10 0 26.4998 -54.25 93.8284 - 48 247.374 1032 9 1 26.5046 -54.2292 65.55 - 48 111.076 629 9 0 26.505 -54.2294 64.15 - 48 139.934 1032 8 1 26.5114 -54.2373 35.55 - 48 155.878 629 8 0 26.5113 -54.237 34.15 - 48 172.911 1032 7 1 26.5072 -54.2251 5.55 - 48 88.2758 629 7 0 26.5086 -54.224 4.15 - 48 401.308 1032 6 1 26.5389 -54.1956 -24.45 - 48 662.327 629 6 0 26.5387 -54.1954 -25.85 - 48 139.173 1032 5 1 26.547 -54.1888 -54.45 - 48 151.183 629 5 0 26.5461 -54.1887 -55.85 - 48 192.92 1032 4 1 26.5052 -54.1865 -84.45 - 48 105.509 629 4 0 26.5028 -54.1879 -85.85 - 48 153.205 1032 3 1 26.4579 -54.2084 -114.45 - 48 180.626 629 3 0 26.4578 -54.2083 -115.85 - 48 138.08 1031 2 1 26.4377 -54.2095 -144.45 - 48 115.114 629 2 0 26.4373 -54.2088 -145.85 - 48 146.379 1031 1 1 26.4289 -54.188 -174.45 - 48 162.103 629 1 0 26.4275 -54.1845 -175.85 - 48 154.365 1031 0 1 26.4103 -54.112 -204.45 - 48 132.194 629 0 0 26.4116 -54.1108 -205.85 - 48 48.3766 1296 14 1 79.2844 -42.5907 215.15 - 48 32.8219 667 0 0 -17.7778 -46.6336 -206.25 - 48 22.39 807 0 1 -18.6158 -46.3849 -204.85 - 48 127.07 806 0 1 -18.65 -46.3725 -204.788 - 48 429.186 1031 5 1 26.45 -54.1343 -54.507 - 48 140.022 630 5 0 26.2227 -54.0406 -55.85 - 48 59.2696 1006 4 1 21.2761 -52.4007 -84.45 - 48 63.228 1005 4 1 21.25 -52.3991 -84.6447 - 48 139.29 638 4 0 21.0758 -52.3758 -85.85 - 48 120.308 980 3 1 16.1011 -52.2742 -114.45 - 48 132.047 639 3 0 16.1313 -52.2138 -115.851 - 48 159.388 984 2 1 16.9459 -50.9141 -144.45 - 48 145.15 647 2 0 16.9376 -50.5655 -145.85 - 48 165.41 982 1 1 16.5699 -43.0593 -174.45 - 48 106.703 687 1 0 16.4275 -42.6218 -175.85 - 48 145.128 968 0 1 13.8108 -33.2729 -204.45 - 48 56.7064 736 0 0 13.6607 -32.7051 -205.85 - 48 91.9779 737 0 0 13.6451 -32.65 -205.981 - 48 4.08137 1116 0 1 43.25 38.9427 -204.673 - 48 25.4406 617 6 0 49.9233 -56.6156 -26.2499 - 48 208.162 616 6 0 49.9929 -56.65 -26.1721 - 48 147.446 1157 6 1 51.5008 -57.14 -24.8498 - 48 240.516 1158 6 1 51.6502 -57.1122 -24.6631 - 48 59.2723 622 6 0 49.8896 -55.5385 -25.85 - 48 130.8 623 6 0 49.715 -55.45 -25.9605 - 48 27.2564 624 6 0 49.3807 -55.25 -26.2222 - 48 144.548 1037 5 1 27.4615 -53.3578 -54.4509 - 48 183.871 634 5 0 27.551 -53.15 -55.85 - 48 101.327 1045 4 1 29.1039 -48.5217 -84.4501 - 48 25.8853 1044 4 1 29.05 -48.4746 -84.7551 - 48 104.157 658 4 0 28.8392 -48.32 -85.85 - 48 160.661 1020 3 1 24.1217 -44.6741 -114.45 - 48 78.3317 1019 3 1 24.05 -44.6749 -114.652 - 48 192.213 676 3 0 23.639 -44.6806 -115.85 - 48 105.289 965 2 1 13.145 -45.1952 -144.451 - 48 36.99 964 2 1 13.05 -45.2015 -144.715 - 48 152.448 674 2 0 12.6787 -45.1823 -145.85 - 48 12.4953 916 1 1 3.27148 -44.4151 -174.45 - 48 128.36 915 1 1 3.25 -44.4111 -174.485 - 48 22.6422 914 1 1 3.04994 -44.3807 -174.803 - 48 138.437 678 1 0 2.36767 -44.2917 -175.85 - 48 9.17072 811 0 1 -17.8394 -42.2655 -204.45 - 48 164.511 810 0 1 -17.85 -42.2533 -204.48 - 48 97.0635 691 0 0 -18.3799 -41.7362 -205.85 - 48 49.9838 692 0 0 -18.4765 -41.65 -206.103 - 48 456.072 628 6 0 26.4745 -54.2688 -25.85 - 48 154.712 631 5 0 26.3005 -53.7379 -55.8505 - 48 97.5813 1025 4 1 25.1117 -53.3694 -84.45 - 48 161.438 633 4 0 25.1142 -53.3447 -85.85 - 48 152.05 1025 3 1 25.221 -52.7962 -114.45 - 48 111.776 636 3 0 25.205 -52.8177 -115.85 - 48 112.297 1025 2 1 25.1013 -52.9879 -144.45 - 48 13.7729 635 2 0 25.1811 -52.8561 -145.85 - 48 114.239 636 2 0 25.1843 -52.85 -145.911 - 48 332.434 1033 1 1 26.8143 -49.9834 -174.45 - 48 68.6374 650 1 0 26.8675 -49.8638 -175.85 - 48 77.0144 651 1 0 26.8727 -49.85 -176.013 - 48 3.77094 1037 0 1 27.6482 -47.8209 -204.45 - 48 105.957 1038 0 1 27.65 -47.8196 -204.471 - 48 113.451 661 0 0 27.7919 -47.7361 -205.85 - 48 8.88142 625 3 0 26.694 -54.85 -115.884 - 48 189.465 628 1 0 26.8063 -54.4372 -175.85 - 48 110.7 1034 0 1 27.0324 -54.7811 -204.45 - 48 120.042 626 0 0 27.0066 -54.8089 -205.85 - 48 131.794 1036 0 1 27.409 -54.4504 -204.45 - 48 160.105 627 0 0 27.3265 -54.4714 -205.85 - 48 152.338 628 9 0 26.4486 -54.2847 64.15 - 48 119.468 1031 8 1 26.3883 -54.357 35.55 - 48 132.457 628 8 0 26.3836 -54.3569 34.15 - 48 440.023 1031 7 1 26.2904 -54.3702 5.55 - 48 426.136 628 7 0 26.2846 -54.3733 4.15 - 48 113.955 1030 6 1 26.1662 -54.4343 -24.45 - 48 248.385 1029 5 1 26.0146 -54.5218 -54.45 - 48 239.631 627 5 0 26.0057 -54.5252 -55.85 - 48 109.986 1028 4 1 25.8274 -54.5989 -84.45 - 48 125.099 627 4 0 25.817 -54.6022 -85.85 - 48 119.809 1027 3 1 25.6022 -54.6734 -114.45 - 48 139.313 626 3 0 25.5926 -54.6767 -115.85 - 48 231.264 1026 2 1 25.3958 -54.7383 -144.45 - 48 121.963 626 2 0 25.386 -54.7423 -145.85 - 48 118.531 1025 1 1 25.1795 -54.8209 -174.45 - 48 118.11 626 1 0 25.1692 -54.8239 -175.85 - 48 163.291 1024 0 1 24.9593 -54.8776 -204.45 - 48 127.803 625 0 0 24.9478 -54.8783 -205.85 - 48 23.3337 979 0 0 16.408 15.9894 -206.25 - 48 91.7791 980 0 0 16.4086 16.05 -206.168 - 48 55.2996 979 0 1 15.9217 16.3026 -204.85 - 48 138.36 978 0 1 15.85 16.3269 -204.699 - 48 76.1558 977 0 1 15.65 16.2969 -204.46 - 48 46.6268 976 0 1 15.45 16.2037 -204.524 - 48 43.9693 975 0 1 15.25 16.1891 -204.569 - 48 248.073 974 0 1 15.05 16.2052 -204.588 - 48 491.141 973 0 1 14.85 16.0874 -204.549 - 48 2.83532 972 0 1 14.641 15.9625 -204.45 - 48 82.0406 438 9 0 -123.932 -92.5053 63.75 - 48 99.3767 282 9 1 -123.609 -92.2829 65.15 - 48 59.5925 283 9 1 -123.55 -92.213 65.461 - 48 39.9413 670 6 0 -26.3945 -45.9588 -26.25 - 48 251.829 1026 4 1 25.2878 -55.235 -84.4502 - 48 206.211 625 4 0 25.2431 -54.8913 -85.85 - 48 71.109 626 4 0 25.2358 -54.85 -86.0154 - 48 20.3856 1021 3 1 24.2672 -46.4013 -114.45 - 48 127.405 669 3 0 23.9585 -46.1587 -115.85 - 48 27.0871 989 2 1 17.8783 -40.2885 -144.45 - 48 98.4872 988 2 1 17.8497 -40.2679 -144.535 - 48 108.177 700 2 0 17.4238 -39.9283 -145.85 - 48 18.797 701 2 0 17.3181 -39.8499 -146.179 - 48 96.0303 935 1 1 7.20369 -33.4182 -174.45 - 48 41.083 934 1 1 7.05 -33.42 -174.726 - 48 148.207 733 1 0 6.40429 -33.3524 -175.851 - 48 32.0038 804 0 1 -19.174 -28.0055 -204.45 - 48 163.488 803 0 1 -19.25 -27.9794 -204.526 - 48 40.4412 802 0 1 -19.4501 -27.9188 -204.742 - 48 69.0808 761 0 0 -20.3146 -27.6813 -205.85 - 48 99.9433 762 0 0 -20.4447 -27.65 -206.002 - 48 297.457 1031 6 1 26.2881 -54.5562 -24.45 - 48 249.381 627 6 0 26.2814 -54.5667 -25.85 - 48 164.225 1030 5 1 26.1232 -54.7954 -54.45 - 48 144.475 626 5 0 26.1138 -54.8036 -55.85 - 48 139.318 1029 4 1 25.8991 -55.0198 -84.45 - 48 101.141 1029 3 1 25.8768 -55.2633 -114.45 - 48 123.904 623 3 0 25.8772 -55.2715 -115.85 - 48 124.336 1029 2 1 25.8841 -55.4341 -144.45 - 48 113.034 623 2 0 25.8864 -55.4401 -145.85 - 48 128.703 1029 1 1 25.937 -55.5872 -174.45 - 48 140.752 622 1 0 25.9396 -55.5927 -175.85 - 48 112.675 1029 0 1 26.0111 -55.7369 -204.45 - 48 339.207 621 0 0 26.0137 -55.7384 -205.85 - 48 57.6554 298 3 1 -120.35 -46.6615 -114.581 - 48 80.591 433 3 1 -93.4089 -31.418 -114.45 - 48 58.1062 434 3 1 -93.35 -31.3668 -114.495 - 48 96.1551 297 3 1 -120.55 -46.6347 -114.602 - 48 244.036 296 3 1 -120.75 -46.6052 -114.669 - 48 142.932 625 5 0 26.3551 -54.9815 -55.85 - 48 124.484 623 4 0 26.4837 -55.3719 -85.85 - 48 119.766 1034 3 1 26.9178 -55.7724 -114.45 - 48 114.448 621 3 0 26.9384 -55.7876 -115.85 - 48 111.83 1036 2 1 27.2999 -56.029 -144.45 - 48 153.442 620 2 0 27.3414 -56.0236 -145.85 - 48 140.263 1040 1 1 28.1729 -55.9097 -174.45 - 48 125.636 620 1 0 28.2401 -55.91 -175.85 - 48 116.103 1047 0 1 29.5652 -55.9674 -204.45 - 48 117.85 620 0 0 29.6154 -55.9708 -205.85 -Number of digits in this event = 89 -Using G4ParticleGun ... -9.22567 LIN -gamma +Number of tracker hits in this event: 1 + 48 30.1142 645 2 1 -50.85 14.6431 -144.624 +Number of digits in this event: 1 +Using G4ParticleGun... +Particle energy: 7.57817 LIN +Particle: gamma Event: 49 -Number of tracker hits in this event = 14 - 49 218.321 259 2 1 -128.175 55.4214 -144.504 - 49 446.883 1176 2 0 -128.175 55.4207 -145.85 - 49 331.136 259 1 1 -128.167 55.4065 -174.45 - 49 276.459 1176 1 0 -128.166 55.3993 -175.85 - 49 299.391 259 0 1 -128.197 55.2593 -204.45 - 49 98.1557 1175 0 0 -128.194 55.2479 -205.85 - 49 74.7412 1164 0 0 43.1642 53.05 -206.221 - 49 151.298 1163 0 0 44.0309 52.85 -205.944 - 49 146.018 258 0 1 -128.438 55.1631 -204.45 - 49 182.16 257 0 1 -128.55 54.9558 -204.631 - 49 218.806 1169 0 0 -128.703 53.996 -205.85 - 49 38.8626 1245 0 0 -120.218 69.05 -206.09 - 49 107.97 307 0 1 -118.597 69.5369 -204.85 - 49 121.731 1176 0 0 -128.186 55.4381 -205.85 -Number of digits in this event = 13 -Using G4ParticleGun ... -7.46263 LIN -gamma +Number of tracker hits in this event: 7 + 49 407.558 523 0 0 53.1223 -75.4259 -206.25 + 49 104.062 642 1 1 -51.6113 -71.7173 -174.85 + 49 271.863 641 1 1 -51.65 -71.7643 -174.709 + 49 243.249 640 1 1 -51.85 -71.5912 -174.587 + 49 167.973 1000 1 0 -26.2207 20.0501 -176.25 + 49 6.80312 1001 1 0 -26.3579 20.25 -176.241 + 49 146.395 989 1 0 -70.7096 17.872 -176.25 +Number of digits in this event: 7 +Using G4ParticleGun... +Particle energy: 9.07734 LIN +Particle: gamma Event: 50 -Number of tracker hits in this event = 65 - 50 205.424 1598 7 1 139.785 -25.7742 5.55 - 50 244.128 771 7 0 139.788 -25.772 4.15 - 50 287.037 1598 6 1 139.859 -25.8992 -24.45 - 50 140.587 770 6 0 139.882 -25.9141 -25.85 - 50 191.844 1601 5 1 140.387 -26.2582 -54.45 - 50 138.268 768 5 0 140.434 -26.2839 -55.85 - 50 112.801 1606 4 1 141.398 -26.8454 -84.45 - 50 150.429 765 4 0 141.432 -26.8583 -85.85 - 50 109.259 1609 3 1 142.019 -26.8388 -114.45 - 50 114.871 766 3 0 141.977 -26.8201 -115.85 - 50 89.672 1605 2 1 141.152 -26.5115 -144.45 - 50 63.0376 1604 2 1 141.15 -26.5112 -144.65 - 50 121.453 767 2 0 141.142 -26.5173 -145.85 - 50 107.864 1603 1 1 140.791 -26.6382 -174.45 - 50 84.3271 767 1 0 140.783 -26.649 -175.85 - 50 28.2428 766 1 0 140.781 -26.65 -176.127 - 50 149.178 1601 0 1 140.486 -26.6687 -204.45 - 50 128.333 766 0 0 140.46 -26.6816 -205.85 - 50 122.747 729 0 0 141.15 -34.2147 -206.25 - 50 106.656 728 0 0 141.146 -34.25 -206.16 - 50 4.61465 727 0 0 141.178 -34.4502 -205.865 - 50 43.1422 1607 0 1 141.704 -35.8241 -204.85 - 50 60.2965 1608 0 1 141.75 -35.921 -204.775 - 50 67.4226 1609 0 1 141.95 -36.0568 -204.748 - 50 62.483 1610 0 1 142.15 -36.1578 -204.802 - 50 77.6245 706 0 0 150.981 -38.7919 -205.85 - 50 93.304 705 0 0 151.128 -38.85 -205.866 - 50 111.545 704 0 0 151.369 -39.05 -205.953 - 50 80.4402 703 0 0 151.656 -39.2502 -206.136 - 50 150.343 702 0 0 151.863 -39.4501 -206.207 - 50 204.804 701 0 0 152.193 -39.65 -206.13 - 50 164.003 700 0 0 152.373 -39.85 -206.213 - 50 28.1333 541 0 0 158.459 -71.7812 -206.25 - 50 70.7133 540 0 0 158.473 -71.85 -206.19 - 50 163.399 539 0 0 158.54 -72.05 -206.027 - 50 44.567 538 0 0 158.575 -72.25 -205.938 - 50 5.3277 1696 0 1 159.535 -72.7415 -204.85 - 50 122.218 1697 0 1 159.55 -72.7447 -204.836 - 50 93.9875 1698 0 1 159.75 -72.8085 -204.585 - 50 233.537 1699 0 1 159.95 -72.8483 -204.632 - 50 9.80472 907 2 0 64.2227 1.48537 -146.25 - 50 59.4647 1286 2 1 77.25 -0.812543 -144.831 - 50 115.947 771 6 0 139.802 -25.7688 -25.85 - 50 166.548 1598 5 1 139.818 -25.7681 -54.45 - 50 198.801 771 5 0 139.819 -25.7683 -55.85 - 50 96.6971 1598 4 1 139.844 -25.7728 -84.45 - 50 171.052 771 4 0 139.842 -25.7758 -85.85 - 50 107.053 1598 3 1 139.812 -25.8349 -114.45 - 50 103.386 771 3 0 139.811 -25.8376 -115.85 - 50 299.795 1598 2 1 139.787 -25.8981 -144.45 - 50 108.649 770 2 0 139.788 -25.8995 -145.85 - 50 107.897 1598 1 1 139.807 -25.9226 -174.45 - 50 313.774 770 1 0 139.807 -25.9237 -175.85 - 50 149.489 1598 0 1 139.817 -25.9413 -204.45 - 50 103.109 770 0 0 139.815 -25.9413 -205.85 - 50 69.1355 11 0 0 40.3593 -177.864 -206.25 - 50 105.61 10 0 0 40.3499 -177.95 -206.143 - 50 26.3189 1100 0 1 40.1033 -177.813 -204.85 - 50 78.7668 1099 0 1 40.05 -177.771 -204.786 - 50 349.941 1098 0 1 39.8496 -177.833 -204.615 - 50 299.267 715 13 1 -36.85 8.52051 185.398 - 50 65.4746 714 13 1 -37.05 8.48119 185.307 - 50 138.253 769 1 0 139.647 -26.05 -176.019 - 50 26.0735 768 1 0 139.759 -26.25 -176.219 - 50 125.251 585 1 0 130.213 -62.9986 -176.25 -Number of digits in this event = 29 -Using G4ParticleGun ... -4.8238 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 6.3782 LIN +Particle: gamma Event: 51 -Number of tracker hits in this event = 0 -Number of digits in this event = 2 -Using G4ParticleGun ... -3.06076 LIN -gamma +Number of tracker hits in this event: 6 + 51 345.869 234 0 1 -133.151 -38.8056 -204.45 + 51 96.9296 235 0 1 -133.15 -38.8059 -204.544 + 51 508.795 706 0 0 -133.134 -38.8108 -205.85 + 51 75.9055 712 0 0 -133.867 -37.602 -205.85 + 51 136.303 713 0 0 -133.8 -37.4496 -205.968 + 51 466.641 714 0 0 -133.478 -37.25 -206.048 +Number of digits in this event: 7 +Using G4ParticleGun... +Particle energy: 2.51022 LIN +Particle: gamma Event: 52 -Number of tracker hits in this event = 1 - 52 129.794 1664 1 1 153.014 84.8303 -174.85 -Number of digits in this event = 4 -Using G4ParticleGun ... -9.1645 LIN -gamma +Number of tracker hits in this event: 43 + 52 279.303 531 5 1 -73.6661 -8.58857 -54.45 + 52 279.894 857 5 0 -73.6605 -8.58935 -55.85 + 52 108.181 532 4 1 -73.5828 -8.66434 -84.45 + 52 246.718 856 4 0 -73.554 -8.65703 -85.85 + 52 173.676 536 3 1 -72.8332 -8.4622 -114.45 + 52 119.822 858 3 0 -72.7918 -8.44245 -115.85 + 52 113.83 540 2 1 -71.9071 -7.91275 -144.45 + 52 129.537 860 2 0 -71.852 -7.87943 -145.85 + 52 102.934 547 1 1 -70.5555 -7.09905 -174.45 + 52 114.428 864 1 0 -70.4481 -7.08162 -175.85 + 52 137.881 558 0 1 -68.3072 -6.62655 -204.45 + 52 107.241 867 0 0 -68.2138 -6.59365 -205.85 + 52 62.3502 559 0 1 -68.2494 -6.66916 -204.605 + 52 68.3257 560 0 1 -68.05 -6.70903 -204.782 + 52 186.928 864 0 0 -67.2308 -7.06936 -205.85 + 52 118.957 865 0 0 -67.1202 -7.05 -206.164 + 52 146.971 531 4 1 -73.7444 -8.64999 -84.45 + 52 102.1 531 3 1 -73.7258 -8.73999 -114.45 + 52 115.744 856 3 0 -73.7264 -8.744 -115.85 + 52 507.322 531 2 1 -73.7595 -8.82144 -144.45 + 52 333.752 856 2 0 -73.7547 -8.83312 -145.85 + 52 101.684 531 1 1 -73.7062 -8.93467 -174.45 + 52 211.068 855 1 0 -73.6912 -8.92601 -175.85 + 52 119.249 533 0 1 -73.3713 -8.73166 -204.45 + 52 252.984 856 0 0 -73.3313 -8.71809 -205.85 + 52 98.9082 530 1 1 -73.8567 -8.94319 -174.45 + 52 133.327 532 0 1 -73.6423 -9.64371 -204.45 + 52 115.545 851 0 0 -73.6542 -9.65814 -205.85 + 52 312.235 582 7 0 -76.1257 -63.6015 3.75 + 52 43.4904 531 0 1 -73.65 -9.6822 -204.764 + 52 29.9134 847 0 0 -73.8319 -10.5517 -205.85 + 52 145.477 846 0 0 -73.8587 -10.6501 -205.894 + 52 236.844 845 0 0 -73.9126 -10.85 -205.974 + 52 150.089 528 1 1 -74.4053 -8.01267 -174.45 + 52 129.553 860 1 0 -74.4151 -8.001 -175.85 + 52 109.288 526 0 1 -74.6907 -7.82374 -204.45 + 52 111.59 861 0 0 -74.648 -7.8115 -205.85 + 52 465.216 837 2 0 -75.2793 -12.474 -145.85 + 52 70.5066 838 2 0 -75.4236 -12.45 -146.063 + 52 402.811 530 0 1 -73.9058 -8.68358 -204.45 + 52 119.82 857 0 0 -74.0249 -8.60268 -205.85 + 52 12.5624 262 6 1 -127.695 56.446 -24.85 + 52 22.8434 261 6 1 -127.75 56.5137 -24.5435 +Number of digits in this event: 21 +Using G4ParticleGun... +Particle energy: 2.32985 LIN +Particle: gamma Event: 53 -Number of tracker hits in this event = 3 - 53 50.4888 1617 2 1 143.658 51.3562 -144.45 - 53 50.5388 487 8 1 -82.45 -44.1196 35.3265 - 53 22.8953 488 8 1 -82.4499 -44.22 35.4897 -Number of digits in this event = 2 -Using G4ParticleGun ... -4.09225 LIN -gamma +Number of tracker hits in this event: 279 + 53 243.859 643 11 1 -51.4279 5.54999 125.55 + 53 221.93 927 11 0 -51.3982 5.5726 124.15 + 53 133.189 645 10 1 -50.9238 5.88619 95.55 + 53 128.217 929 10 0 -50.9207 5.90806 94.15 + 53 107.443 646 9 1 -50.7644 6.269 65.55 + 53 117.898 931 9 0 -50.7775 6.28755 64.15 + 53 117.067 644 8 1 -51.123 6.76749 35.55 + 53 141.785 933 8 0 -51.1677 6.80538 34.15 + 53 152.241 641 7 1 -51.829 7.65542 5.54956 + 53 109.207 938 7 0 -51.7739 7.6916 4.15 + 53 116.713 647 6 1 -50.6107 8.60557 -24.45 + 53 124.156 942 6 0 -50.5634 8.59519 -25.8505 + 53 157.49 653 5 1 -49.2978 8.12998 -54.45 + 53 120.472 941 5 0 -49.3405 8.27982 -55.85 + 53 114.927 642 4 1 -51.4832 12.4899 -84.45 + 53 16.1049 963 4 0 -51.4836 12.8301 -85.85 + 53 86.5302 964 4 0 -51.4837 12.85 -85.9308 + 53 248.109 644 3 1 -51.0987 17.8083 -114.45 + 53 231.631 990 3 0 -51.0158 18.0693 -115.85 + 53 87.1653 661 2 1 -47.8092 22.274 -144.45 + 53 22.0176 662 2 1 -47.65 22.2714 -144.758 + 53 310.812 1011 2 0 -47.098 22.2784 -145.85 + 53 42.1557 731 1 1 -33.7235 23.5916 -174.45 + 53 109.104 732 1 1 -33.65 23.5522 -174.574 + 53 146.049 1016 1 0 -32.8106 23.4441 -175.85 + 53 50.7011 825 0 1 -14.9782 24.8225 -204.45 + 53 73.3274 826 0 1 -14.85 24.7156 -204.555 + 53 89.7572 827 0 1 -14.65 24.5776 -204.73 + 53 87.9896 1016 0 0 -13.3643 23.3843 -205.85 + 53 119.521 1015 0 0 -13.2101 23.25 -205.969 + 53 35.1201 1014 0 0 -12.9708 23.05 -206.192 + 53 22.9792 835 0 0 27.6862 -12.9933 -206.25 + 53 95.4564 834 0 0 27.7385 -13.0503 -206.221 + 53 89.1933 833 0 0 28.0051 -13.2501 -206.058 + 53 1.9911 832 0 0 28.2715 -13.45 -205.856 + 53 78.5903 1046 0 1 29.2734 -14.335 -204.85 + 53 103.798 1047 0 1 29.45 -14.5469 -204.707 + 53 83.1197 1048 0 1 29.6502 -14.7913 -204.585 + 53 67.2796 1049 0 1 29.8501 -14.964 -204.504 + 53 9.27092 1050 0 1 30.05 -15.1087 -204.455 + 53 74.7982 1051 0 1 30.2635 -15.2317 -204.45 + 53 123.254 1052 0 1 30.4502 -15.3794 -204.507 + 53 142.96 1053 0 1 30.65 -15.7331 -204.571 + 53 432.955 1054 0 1 30.85 -16.2455 -204.579 + 53 344.935 1055 0 1 31.05 -16.7547 -204.584 + 53 293.574 1056 0 1 31.25 -16.9433 -204.536 + 53 110.312 657 0 0 77.3475 -48.6106 -206.25 + 53 27.5796 1071 0 0 -59.1618 34.3446 -206.25 + 53 70.8248 1070 0 0 -59.1321 34.25 -206.209 + 53 61.6098 1069 0 0 -59.0607 34.05 -206.144 + 53 71.4099 1068 0 0 -59.0132 33.85 -206.082 + 53 71.2715 1067 0 0 -58.9351 33.65 -205.916 + 53 51.7997 610 0 1 -57.9692 32.7859 -204.85 + 53 93.8097 611 0 1 -57.85 32.8327 -204.663 + 53 536.921 642 6 1 -51.5447 7.95045 -24.45 + 53 122.41 938 6 0 -51.7383 7.80051 -25.85 + 53 110.288 621 5 1 -55.652 4.93892 -54.45 + 53 115.492 925 5 0 -55.9077 5.07973 -55.85 + 53 157.885 593 4 1 -61.4006 7.88287 -84.45 + 53 118.604 938 4 0 -61.4747 7.79729 -85.85 + 53 219.1 587 3 1 -62.5479 5.75709 -114.45 + 53 306.886 926 3 0 -62.8433 5.35708 -115.851 + 53 6.79305 925 3 0 -62.9093 5.25 -116.225 + 53 48.0267 564 2 1 -67.2221 -4.00256 -144.45 + 53 75.4637 563 2 1 -67.25 -4.03367 -144.587 + 53 107.248 878 2 0 -67.5953 -4.33632 -145.85 + 53 104.496 509 1 1 -78.0641 -11.4969 -174.45 + 53 32.8351 508 1 1 -78.25 -11.4648 -174.786 + 53 145.127 843 1 0 -78.8562 -11.3606 -175.85 + 53 106.397 425 0 1 -94.9525 -7.18833 -204.45 + 53 29.877 424 0 1 -95.15 -7.08073 -204.778 + 53 226.97 866 0 0 -95.7708 -6.82346 -205.85 + 53 111.003 939 6 0 -51.5238 7.96652 -25.85 + 53 36.8952 640 5 1 -51.8657 7.43694 -54.45 + 53 91.5395 641 5 1 -51.85 7.43153 -54.553 + 53 149.768 936 5 0 -51.6379 7.35783 -55.8501 + 53 131.283 664 4 1 -47.1278 6.14501 -84.45 + 53 227.857 930 4 0 -46.9958 6.2101 -85.85 + 53 171.104 679 3 1 -44.0819 6.89464 -114.45 + 53 248.029 680 3 1 -44.05 6.87747 -114.643 + 53 148.113 933 3 0 -43.8161 6.79835 -115.85 + 53 35.4988 709 2 1 -38.1141 4.94704 -144.45 + 53 89.4207 710 2 1 -38.0498 4.9435 -144.582 + 53 147.506 924 2 0 -37.2606 4.97147 -145.85 + 53 109.709 794 1 1 -21.2455 5.91331 -174.45 + 53 143.279 930 1 0 -21.0857 6.05843 -175.85 + 53 101.382 815 0 1 -17.0389 9.49303 -204.45 + 53 49.195 816 0 1 -16.85 9.40002 -204.717 + 53 128.858 944 0 0 -16.2266 9.01338 -205.85 + 53 27.1424 756 0 0 7.84686 -28.7752 -206.25 + 53 73.2073 755 0 0 7.88834 -28.8503 -206.208 + 53 82.8733 754 0 0 8.01311 -29.05 -206.075 + 53 41.3173 753 0 0 8.14559 -29.25 -205.912 + 53 262.594 946 0 1 9.31047 -30.9408 -204.85 + 53 308.094 947 0 1 9.45 -31.1489 -204.731 + 53 64.3149 948 0 1 9.65 -31.599 -204.531 + 53 31.3984 516 1 0 -18.7584 -76.7831 -176.25 + 53 143.859 515 1 0 -18.8037 -76.85 -176.208 + 53 66.6767 514 1 0 -18.9249 -77.05 -176.089 + 53 82.9618 513 1 0 -19.0482 -77.2502 -175.953 + 53 1.47276 512 1 0 -19.1539 -77.45 -175.853 + 53 42.4617 799 1 1 -20.2165 -80.5039 -174.85 + 53 131.4 798 1 1 -20.25 -80.6179 -174.809 + 53 140.859 797 1 1 -20.45 -81.0603 -174.707 + 53 63.3507 796 1 1 -20.65 -81.3213 -174.756 + 53 152.925 488 1 0 -22.7264 -82.2943 -175.85 + 53 180.438 487 1 0 -23.1309 -82.4501 -176.058 + 53 154.729 547 0 1 -70.5488 -96.7032 -204.45 + 53 116.916 413 0 0 -70.8609 -97.454 -205.85 + 53 15.1279 482 1 0 -20.2102 -83.5185 -175.85 + 53 28.7024 822 1 1 -15.5345 -91.3541 -174.85 + 53 89.4518 823 1 1 -15.4499 -91.4349 -174.818 + 53 188.509 824 1 1 -15.25 -91.6317 -174.76 + 53 11.578 825 1 1 -15.05 -91.7944 -174.83 + 53 22.7168 429 1 0 -14.9627 -94.2823 -175.85 + 53 79.7266 428 1 0 -14.9778 -94.3501 -175.88 + 53 152.029 427 1 0 -15.0359 -94.5502 -175.921 + 53 265.155 468 1 0 -39.7864 -86.3188 -176.25 + 53 18.2179 1197 9 0 9.78687 59.6105 63.75 + 53 68.3928 1198 9 0 9.78588 59.65 63.7845 + 53 77.8751 1199 9 0 9.74966 59.85 63.882 + 53 57.9852 1200 9 0 9.79318 60.05 63.9362 + 53 93.2051 1201 9 0 9.88371 60.2503 63.9322 + 53 313.18 1202 9 0 10.0305 60.45 63.8613 + 53 33.9013 946 9 1 9.27516 61.2962 65.15 + 53 49.9946 945 9 1 9.25 61.3231 65.1735 + 53 32.688 1207 9 0 8.14267 61.4618 64.1499 + 53 48.1294 939 9 1 7.88155 61.2743 65.15 + 53 66.4641 678 3 1 -44.25 2.34882 -114.647 + 53 82.6588 915 3 0 -44.7805 3.13727 -115.85 + 53 69.5182 916 3 0 -44.8335 3.25 -115.989 + 53 33.4872 917 3 0 -44.9022 3.4501 -116.184 + 53 71.9747 626 2 1 -54.8262 37.2275 -144.45 + 53 101.64 627 2 1 -54.65 37.2573 -144.612 + 53 21.4277 628 2 1 -54.4499 37.273 -144.794 + 53 180.897 1086 2 0 -53.2201 37.3541 -145.85 + 53 39.4903 781 1 1 -23.7435 36.5132 -174.45 + 53 76.7541 782 1 1 -23.65 36.5322 -174.548 + 53 36.8824 783 1 1 -23.4498 36.6217 -174.77 + 53 108.732 1084 1 0 -22.6263 36.9496 -175.85 + 53 109.415 1085 1 0 -22.3704 37.0501 -176.146 + 53 28.6252 1156 1 0 -15.3357 51.2589 -176.25 + 53 142.249 1155 1 0 -15.3698 51.2499 -176.184 + 53 132.915 819 1 1 -16.05 50.6644 -174.85 + 53 224.54 902 3 0 -43.7292 0.632111 -115.851 + 53 246.568 901 3 0 -43.6882 0.449916 -116.036 + 53 1.01327 900 3 0 -43.6477 0.249759 -116.248 + 53 183.71 698 2 1 -40.2759 -26.3496 -144.45 + 53 57.2276 758 2 0 -40.4504 -28.3255 -145.85 + 53 72.4498 757 2 0 -40.4641 -28.45 -145.936 + 53 65.8804 756 2 0 -40.5101 -28.65 -146.074 + 53 99.8557 667 1 1 -46.5643 -44.3395 -174.45 + 53 65.1108 668 1 1 -46.4498 -44.4103 -174.643 + 53 28.2846 676 1 0 -45.9511 -44.817 -175.85 + 53 73.2239 675 1 0 -45.9034 -44.8501 -175.973 + 53 141.402 716 0 1 -36.8462 -54.7274 -204.45 + 53 17.7416 631 0 0 -36.2917 -53.6923 -205.85 + 53 120.962 632 0 0 -36.2716 -53.65 -205.901 + 53 40.665 633 0 0 -36.271 -53.45 -206.144 + 53 5.35082 699 2 1 -40.25 -26.4936 -144.516 + 53 169.862 643 10 1 -51.44 5.37361 95.55 + 53 151.871 926 10 0 -51.4678 5.35152 94.15 + 53 102.164 640 9 1 -52.0252 4.89204 65.55 + 53 121.535 924 9 0 -52.0565 4.86676 64.15 + 53 115.374 636 8 1 -52.6771 4.39042 35.55 + 53 125.07 921 8 0 -52.7006 4.36862 34.15 + 53 109.077 634 7 1 -53.1978 3.92004 5.55 + 53 121.045 919 7 0 -53.2173 3.89906 4.15 + 53 114.942 631 6 1 -53.6635 3.43086 -24.45 + 53 114.097 916 6 0 -53.685 3.40055 -25.85 + 53 142.077 629 5 1 -54.1231 2.77685 -54.45 + 53 106.757 913 5 0 -54.1403 2.73442 -55.85 + 53 104.045 627 4 1 -54.5236 1.83282 -84.45 + 53 104.945 908 4 0 -54.5445 1.78118 -85.85 + 53 369.307 625 3 1 -54.9523 0.683174 -114.45 + 53 152.483 625 2 1 -54.8887 -0.149117 -144.45 + 53 120.653 899 2 0 -54.8937 -0.195228 -145.85 + 53 102.578 625 1 1 -55.036 -1.1382 -174.45 + 53 131.883 894 1 0 -55.0459 -1.18231 -175.85 + 53 183.223 624 0 1 -55.2316 -2.07524 -204.45 + 53 161.096 889 0 0 -55.2288 -2.11568 -205.85 + 53 126.496 1270 14 0 -13.402 74.1303 213.75 + 53 84.8962 1276 14 0 81.6208 75.2631 213.75 + 53 225.581 624 3 1 -55.05 0.74533 -114.603 + 53 122.479 594 2 1 -61.0606 -3.78026 -144.45 + 53 131.629 880 2 0 -61.3266 -3.95076 -145.85 + 53 129.984 567 1 1 -66.4592 -6.77506 -174.45 + 53 237.718 867 1 0 -66.8219 -6.53252 -175.85 + 53 185.163 530 0 1 -73.8799 -1.18568 -204.45 + 53 88.5919 895 0 0 -74.1735 -0.912808 -205.85 + 53 25.7975 896 0 0 -74.2219 -0.85 -206.155 + 53 66.1145 295 3 0 -70.4221 -121.017 -116.25 + 53 85.9042 308 0 1 -118.35 0.80995 -204.785 + 53 253.22 309 0 1 -118.35 0.941789 -204.577 + 53 17.6581 623 3 1 -55.3045 2.12676 -114.45 + 53 171.302 911 3 0 -55.9225 2.37762 -115.85 + 53 182.888 912 3 0 -55.9832 2.45 -115.943 + 53 86.9162 609 3 1 -58.0775 -0.487683 -114.85 + 53 260.91 608 3 1 -58.2501 -0.613649 -114.749 + 53 24.7262 927 10 0 -51.5123 5.45 93.7818 + 53 288.978 615 0 1 -56.9403 0.690237 -204.45 + 53 244.331 616 0 1 -56.85 0.0696748 -204.688 + 53 55.6006 888 0 0 -56.2893 -2.25019 -205.907 + 53 57.2412 887 0 0 -56.3099 -2.45025 -205.965 + 53 92.0769 886 0 0 -56.3919 -2.65 -206.024 + 53 45.348 885 0 0 -56.5095 -2.85 -206.152 + 53 28.0669 801 0 0 -72.1886 -19.8234 -206.25 + 53 92.77 800 0 0 -72.1874 -19.8501 -206.153 + 53 100.687 541 0 1 -71.8346 -20.0403 -204.85 + 53 17.2643 542 0 1 -71.6498 -20.1715 -204.512 + 53 138.94 614 0 1 -57.05 0.593024 -204.546 + 53 440.607 643 8 1 -51.4159 4.93223 35.55 + 53 270.209 924 8 0 -51.388 4.95388 34.15 + 53 269.053 645 7 1 -50.8608 5.64783 5.55 + 53 142.284 928 7 0 -50.8291 5.76192 4.15 + 53 103.025 649 6 1 -50.1886 8.01835 -24.45 + 53 200.352 940 6 0 -50.1636 8.15634 -25.85 + 53 125.602 652 5 1 -49.4835 10.982 -54.45 + 53 114.604 955 5 0 -49.4345 11.1376 -55.85 + 53 159.766 657 4 1 -48.4807 14.1996 -84.45 + 53 136.016 971 4 0 -48.4443 14.3725 -85.85 + 53 116.141 662 3 1 -47.4736 18.0038 -114.45 + 53 7.69382 663 3 1 -47.45 18.0568 -114.82 + 53 3.09348 991 3 0 -47.355 18.25 -116.235 + 53 113.747 673 2 1 -45.4213 22.1373 -144.45 + 53 132.996 679 1 1 -44.0572 25.5687 -174.45 + 53 124.361 1028 1 0 -44.0738 25.7808 -175.85 + 53 165.646 675 0 1 -44.8819 30.3354 -204.45 + 53 142.537 1052 0 0 -44.8181 30.5014 -205.85 + 53 0.232078 1056 0 0 -45.2615 31.4481 -205.85 + 53 201.513 1057 0 0 -45.2622 31.4501 -205.852 + 53 134.297 643 7 1 -51.3362 4.48973 5.55 + 53 230.021 922 7 0 -51.329 4.46163 4.15 + 53 171.293 644 6 1 -51.1661 3.8938 -24.45 + 53 148.562 919 6 0 -51.1597 3.86954 -25.85 + 53 168.737 645 5 1 -51.0148 3.38766 -54.45 + 53 188.273 916 5 0 -51.0081 3.36622 -55.85 + 53 107.383 645 4 1 -50.8959 2.96332 -84.45 + 53 106.283 914 4 0 -50.8889 2.95749 -85.85 + 53 113.845 646 3 1 -50.7565 2.81019 -114.45 + 53 157.743 913 3 0 -50.7216 2.80528 -115.85 + 53 163.324 650 2 1 -50.041 2.71472 -144.45 + 53 231.388 913 2 0 -50.0159 2.71336 -145.85 + 53 167.945 652 1 1 -49.5778 2.71708 -174.45 + 53 121.046 913 1 0 -49.5575 2.71818 -175.85 + 53 161.778 654 0 1 -49.1625 2.75161 -204.45 + 53 258.538 913 0 0 -49.156 2.7494 -205.85 + 53 25.808 347 9 1 -110.655 159.126 65.15 + 53 1.93339 914 2 0 -49.1294 2.85 -146.238 + 53 115.96 991 7 0 -56.0642 18.2888 3.75 + 53 38.8757 992 7 0 -56.0957 18.4502 4.03584 + 53 73.9551 620 7 1 -55.9301 18.8997 5.15 + 53 236.305 621 7 1 -55.85 18.9617 5.43493 + 53 4.52609 376 6 0 6.43622 -104.908 -26.25 + 53 38.3675 673 6 0 -127.862 -45.3844 -26.25 + 53 175.213 926 6 0 -51.5438 5.28913 -25.85 + 53 121.781 642 5 1 -51.5111 5.34014 -54.45 + 53 119.739 926 5 0 -51.5079 5.3677 -55.85 + 53 94.3711 643 4 1 -51.4387 5.99876 -84.45 + 53 117.747 929 4 0 -51.4249 6.03761 -85.85 + 53 154.396 934 3 0 -51.1348 6.87346 -115.85 + 53 205.042 648 2 1 -50.4193 7.54038 -144.45 + 53 127.301 937 2 0 -50.3939 7.60611 -145.85 + 53 150.584 650 1 1 -49.926 8.92508 -174.45 + 53 120.816 944 1 0 -49.8995 8.96796 -175.85 + 53 173.908 653 0 1 -49.354 9.71919 -204.45 + 53 136.265 948 0 0 -49.331 9.73178 -205.85 + 53 84.5122 942 0 0 -48.6289 8.60811 -205.85 + 53 114.689 941 0 0 -48.5827 8.44978 -206.041 + 53 99.97 655 0 1 -49.05 9.59858 -204.793 + 53 95.3125 656 0 1 -48.8499 9.486 -204.769 + 53 20.2839 657 0 1 -48.6497 9.25009 -204.832 + 53 110.469 938 0 0 -45.2068 7.83431 -205.85 + 53 202.361 939 0 0 -45.0222 7.85 -205.935 + 53 101.436 669 0 1 -46.1087 8.27901 -204.85 + 53 171.851 668 0 1 -46.25 8.36217 -204.843 + 53 206.414 651 1 1 -49.85 8.90412 -174.56 + 53 61.8607 943 1 0 -49.8922 8.7572 -175.85 + 53 48.2319 939 1 0 -49.9326 7.9254 -175.85 +Number of digits in this event: 122 +Using G4ParticleGun... +Particle energy: 4.60468 LIN +Particle: gamma Event: 54 -Number of tracker hits in this event = 0 -Number of digits in this event = 2 -Using G4ParticleGun ... -7.08047 LIN -gamma +Number of tracker hits in this event: 1 + 54 48.1414 1233 1 1 66.85 -39.891 -174.835 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 6.39983 LIN +Particle: gamma Event: 55 -Number of tracker hits in this event = 6 - 55 220.429 990 0 1 18.06 96.2224 -204.45 - 55 242.386 1380 0 0 18.0597 96.2231 -205.85 - 55 0.374544 1090 2 0 41.1057 38.25 -146.048 - 55 254.479 1107 2 1 41.4569 38.0375 -144.85 - 55 4.89253 1106 2 1 41.45 38.0358 -144.774 - 55 42.6647 891 2 0 72.869 -1.7242 -146.25 -Number of digits in this event = 5 -Using G4ParticleGun ... -1.87128 LIN -gamma +Number of tracker hits in this event: 4 + 55 184.853 1333 6 0 -13.4657 86.6727 -26.2496 + 55 68.4037 1334 6 0 -13.5666 86.8501 -26.0401 + 55 120.926 830 6 1 -14.0316 87.5002 -24.85 + 55 52.639 829 6 1 -14.05 87.5376 -24.6071 +Number of digits in this event: 4 +Using G4ParticleGun... +Particle energy: 3.26581 LIN +Particle: gamma Event: 56 -Number of tracker hits in this event = 13 - 56 395.263 1227 2 1 65.4862 -133.739 -144.45 - 56 279.709 232 2 0 65.4863 -133.739 -145.85 - 56 115.532 1227 1 1 65.485 -133.723 -174.45 - 56 118.973 232 1 0 65.4831 -133.719 -175.85 - 56 271.428 1227 0 1 65.4531 -133.706 -204.45 - 56 239.357 232 0 0 65.4501 -133.712 -205.85 - 56 116.096 1228 0 1 65.65 -133.878 -204.52 - 56 157.426 1226 1 1 65.3175 -133.823 -174.45 - 56 107.276 231 1 0 65.312 -133.813 -175.85 - 56 296.984 1225 0 1 65.1954 -133.632 -204.45 - 56 27.4298 1224 0 1 65.0225 -133.586 -204.45 - 56 28.3527 236 0 0 65.6051 -132.789 -205.85 - 56 146.669 237 0 0 65.6151 -132.75 -205.933 -Number of digits in this event = 10 -Using G4ParticleGun ... -1.15575 LIN -gamma +Number of tracker hits in this event: 54 + 56 233.197 1355 8 1 91.2202 34.995 35.55 + 56 227.197 1074 8 0 91.2224 34.9938 34.15 + 56 270.073 1355 7 1 91.2734 34.9968 5.55 + 56 245.199 1074 7 0 91.2689 34.997 4.15 + 56 264.525 1355 6 1 91.1704 35.0249 -24.45 + 56 215.885 1074 6 0 91.1648 35.0239 -25.85 + 56 146.879 1354 5 1 91.0403 34.9657 -54.45 + 56 105.051 1074 5 0 91.0308 34.9716 -55.85 + 56 202.17 1353 4 1 90.8405 35.1093 -84.45 + 56 111.023 1075 4 0 90.8296 35.1144 -85.85 + 56 168.098 1352 3 1 90.6251 35.2063 -114.45 + 56 148.7 1075 3 0 90.6127 35.2103 -115.85 + 56 264.967 1351 2 1 90.3799 35.2817 -144.45 + 56 142.6 1076 2 0 90.3709 35.2803 -145.85 + 56 130.089 1350 1 1 90.1948 35.2845 -174.45 + 56 132.755 1076 1 0 90.1866 35.2855 -175.85 + 56 489.939 1349 0 1 90.0428 35.3513 -204.45 + 56 120.653 1076 0 0 90.0414 35.3536 -205.85 + 56 48.6728 1550 1 1 130.275 10.6056 -174.45 + 56 229.885 1551 1 1 130.35 10.5398 -174.504 + 56 33.0936 1076 3 0 90.5732 35.25 -116.198 + 56 124.917 1191 3 0 125.119 58.3448 -116.25 + 56 171.401 1192 3 0 125.199 58.4501 -116.049 + 56 132.306 1355 5 1 91.1732 34.8281 -54.45 + 56 131.965 1073 5 0 91.1745 34.8242 -55.85 + 56 136.228 1355 4 1 91.2299 34.7704 -84.45 + 56 122.33 1073 4 0 91.2315 34.77 -85.85 + 56 120.541 1355 3 1 91.2478 34.7675 -114.45 + 56 120.528 1073 3 0 91.2513 34.7666 -115.85 + 56 375.152 1355 2 1 91.3284 34.7311 -144.45 + 56 93.3111 1073 2 0 91.3357 34.7287 -145.85 + 56 138.55 1356 1 1 91.4996 34.6879 -174.45 + 56 162.236 1073 1 0 91.5133 34.6789 -175.85 + 56 98.2462 1358 0 1 91.7923 34.5086 -204.45 + 56 205.492 1072 0 0 91.8068 34.5 -205.85 + 56 73.2192 736 12 1 -32.7569 -144.278 155.55 + 56 140.128 735 12 1 -32.85 -144.417 155.363 + 56 97.8843 734 12 1 -33.0501 -144.279 155.243 + 56 88.8795 733 12 1 -33.25 -144.244 155.202 + 56 354 732 12 1 -33.4507 -144.341 155.266 + 56 152.257 984 1 0 -44.1588 17.05 -175.863 + 56 268.95 1356 2 1 91.3614 34.8061 -144.45 + 56 382.512 1077 2 0 91.6113 35.45 -145.951 + 56 121.524 1216 2 0 93.4683 63.2914 -146.25 + 56 51.3506 1363 2 1 92.8433 63.1105 -144.85 + 56 140.091 1362 2 1 92.75 63.072 -144.715 + 56 220.461 1361 2 1 92.5329 62.8333 -144.45 + 56 133.895 1360 2 1 92.35 62.2438 -144.584 + 56 60.8439 1359 2 1 92.15 61.8664 -144.463 + 56 234.276 1358 2 1 91.8681 61.8679 -144.45 + 56 102.39 1357 2 1 91.75 61.6095 -144.735 + 56 39.9507 1391 1 0 178.384 98.4877 -176.25 + 56 296.794 1392 1 0 178.44 98.55 -176.196 + 56 88.1986 1393 1 0 178.493 98.75 -176.112 +Number of digits in this event: 43 +Using G4ParticleGun... +Particle energy: 7.07789 LIN +Particle: gamma Event: 57 -Number of tracker hits in this event = 10 - 57 261.567 897 1 1 -0.632571 -57.3628 -174.45 - 57 218.717 613 1 0 -0.637234 -57.3604 -175.85 - 57 179.968 896 0 1 -0.729376 -57.3076 -204.45 - 57 138.192 613 0 0 -0.733443 -57.3163 -205.85 - 57 30.6729 911 3 0 -28.5351 2.25 -115.851 - 57 161.889 1336 2 0 45.7065 87.2726 -146.25 - 57 100.725 897 0 1 -0.65 -57.3352 -204.673 - 57 80.9075 898 0 1 -0.45 -57.3556 -204.81 - 57 370.784 615 0 0 0.430665 -56.9288 -205.85 - 57 124.841 900 0 1 0.193524 -56.9159 -204.45 -Number of digits in this event = 8 -Using G4ParticleGun ... -3.96708 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 1 +Using G4ParticleGun... +Particle energy: 9.52973 LIN +Particle: gamma Event: 58 -Number of tracker hits in this event = 0 -Number of digits in this event = 2 -Using G4ParticleGun ... -7.83399 LIN -gamma +Number of tracker hits in this event: 110 + 58 312.671 584 8 1 -63.0688 108.783 35.55 + 58 371.107 1443 8 0 -63.0707 108.785 34.15 + 58 225.038 584 7 1 -63.1142 108.804 5.55 + 58 327.48 1443 7 0 -63.1173 108.804 4.15 + 58 223.77 584 6 1 -63.1796 108.813 -24.45 + 58 263.027 1443 6 0 -63.1823 108.815 -25.85 + 58 273.14 583 5 1 -63.2718 108.858 -54.45 + 58 353.224 1443 5 0 -63.2823 108.858 -55.85 + 58 116.884 582 4 1 -63.5055 108.848 -84.45 + 58 205.416 1443 4 0 -63.5297 108.847 -85.85 + 58 97.474 580 3 1 -64.0183 108.839 -114.45 + 58 112.656 1443 3 0 -64.0463 108.845 -115.85 + 58 894.54 577 2 1 -64.5826 108.91 -144.45 + 58 100.605 1443 2 0 -64.6033 108.914 -145.85 + 58 398.147 574 1 1 -65.0544 108.987 -174.45 + 58 105.807 1444 1 0 -65.08 108.988 -175.85 + 58 264.603 572 0 1 -65.5786 109.013 -204.45 + 58 169.846 1444 0 0 -65.607 109.028 -205.85 + 58 96.9543 952 4 0 -56.6669 10.4623 -86.25 + 58 111.215 578 2 1 -64.4497 108.996 -144.541 + 58 246.014 576 2 1 -64.6501 109.025 -144.5 + 58 376.738 1444 2 0 -64.5254 109.061 -145.85 + 58 171.665 576 1 1 -64.7573 109.873 -174.45 + 58 136.288 1448 1 0 -64.688 109.892 -175.85 + 58 246.095 590 0 1 -61.8884 110.424 -204.45 + 58 45.4016 1452 0 0 -61.9267 110.706 -205.85 + 58 222.027 1453 0 0 -61.9245 110.75 -206.024 + 58 22.6211 1520 7 0 -134.079 124.323 3.75054 + 58 268.755 1521 7 0 -134.091 124.35 3.79764 + 58 84.6774 1522 7 0 -134.059 124.55 4.03179 + 58 222.493 585 1 1 -62.9065 109.419 -174.451 + 58 107.406 1447 1 0 -62.7375 109.617 -175.85 + 58 11.4797 602 0 1 -59.4538 113.955 -204.45 + 58 132.899 603 0 1 -59.45 113.959 -204.472 + 58 117.527 1470 0 0 -59.2221 114.199 -205.85 + 58 204.748 584 5 1 -63.2264 108.869 -54.45 + 58 634.195 584 4 1 -63.1733 108.993 -84.45 + 58 169.022 1444 4 0 -63.1739 109.001 -85.85 + 58 137.478 584 3 1 -63.1877 109.177 -114.45 + 58 127.917 1445 3 0 -63.1841 109.184 -115.85 + 58 106.657 584 2 1 -63.1053 109.316 -144.45 + 58 306.468 1445 2 0 -63.0999 109.324 -145.85 + 58 147.126 1446 1 0 -62.9805 109.51 -175.85 + 58 131.124 585 0 1 -62.8975 109.763 -204.45 + 58 150.566 1448 0 0 -62.8963 109.772 -205.85 + 58 495.357 586 0 1 -62.743 109.99 -204.85 + 58 100.957 583 1 1 -63.4454 109.572 -174.45 + 58 76.1569 582 1 1 -63.4502 109.574 -174.456 + 58 56.2779 581 1 1 -63.65 109.644 -174.66 + 58 285.253 1449 1 0 -64.3767 109.992 -175.85 + 58 23.0809 1495 0 0 -83.6131 119.269 -205.85 + 58 67.6605 586 4 1 -62.8315 108.521 -84.4505 + 58 70.8209 587 4 1 -62.65 108.398 -84.605 + 58 33.0516 588 4 1 -62.4499 108.322 -84.7772 + 58 252.88 1438 4 0 -61.3963 107.94 -85.85 + 58 314.211 1458 4 0 -23.3116 111.922 -86.2493 + 58 162.196 1459 4 0 -23.3417 111.95 -86.1305 + 58 149.613 782 4 1 -23.5367 112.138 -84.85 + 58 67.552 784 4 1 -23.2456 112.338 -84.4501 + 58 287.901 785 4 1 -23.05 112.353 -84.5786 + 58 41.8167 790 4 1 -21.8629 111.767 -84.85 + 58 2.54248 1460 4 0 -20.7537 112.29 -85.85 + 58 309.784 585 2 1 -62.9244 109.247 -144.45 + 58 109.896 1429 1 0 -63.1912 106.026 -175.85 + 58 102.584 596 0 1 -60.687 105.211 -204.45 + 58 70.9196 597 0 1 -60.65 105.231 -204.598 + 58 301.493 1426 0 0 -60.3068 105.44 -205.85 + 58 129.961 589 1 1 -62.1491 110.187 -174.45 + 58 249.177 1450 1 0 -62.154 110.162 -175.85 + 58 157.029 1445 0 0 -61.7921 109.258 -205.85 + 58 182.636 1440 1 0 -133.038 108.244 -176.25 + 58 356.129 1445 4 0 -63.1995 109.15 -85.9728 + 58 148.38 585 3 1 -62.8973 109.473 -114.45 + 58 262.15 1446 3 0 -62.8893 109.495 -115.85 + 58 111.067 586 2 1 -62.7739 109.987 -144.45 + 58 100.701 1449 2 0 -62.7415 109.997 -145.85 + 58 105.466 590 1 1 -62.0342 110.195 -174.45 + 58 104.266 593 0 1 -61.2659 110.111 -204.45 + 58 265.623 1449 0 0 -61.2176 110.097 -205.85 + 58 154.621 583 3 1 -63.2564 110.044 -114.45 + 58 213.332 1449 3 0 -63.2652 110.054 -115.85 + 58 130.498 580 2 1 -63.9746 110.046 -144.45 + 58 124.234 1448 2 0 -64.0133 109.927 -145.85 + 58 156.692 1435 1 0 -65.0935 107.261 -175.85 + 58 118.521 577 0 1 -64.5081 105.389 -204.45 + 58 19.5776 1424 0 0 -64.6063 104.977 -205.85 + 58 193.409 1423 0 0 -64.6128 104.95 -205.942 + 58 310.064 1446 4 0 -61.4297 109.377 -85.85 + 58 437.742 595 4 1 -60.8769 109.715 -84.85 + 58 134.863 581 3 1 -63.6698 116.931 -114.45 + 58 65.0281 1485 3 0 -63.9866 117.289 -115.85 + 58 85.8233 1486 3 0 -64.04 117.35 -116.086 + 58 115.407 543 2 1 -71.4213 126.341 -144.45 + 58 33.9297 544 2 1 -71.25 126.582 -144.754 + 58 81.5432 1536 2 0 -70.6486 127.364 -145.85 + 58 75.5959 1537 2 0 -70.531 127.55 -146.094 + 58 292.062 607 1 1 -58.4776 152.397 -174.45 + 58 62.9538 1679 1 0 -58.4066 155.96 -175.85 + 58 74.6121 1680 1 0 -58.407 156.15 -175.916 + 58 75.4853 1681 1 0 -58.4158 156.35 -175.981 + 58 88.0713 1682 1 0 -58.4283 156.55 -176.052 + 58 32.714 1683 1 0 -58.459 156.75 -176.17 + 58 99.0422 583 4 1 -63.2501 109.006 -84.5925 + 58 113.444 1442 4 0 -63.4949 108.627 -85.85 + 58 137.118 1444 5 0 -63.3795 109.003 -55.85 + 58 230.929 581 4 1 -63.7367 109.178 -84.45 + 58 110.469 578 3 1 -64.3224 109.357 -114.45 + 58 254.187 1447 2 0 -64.8435 109.618 -145.85 + 58 206.15 564 2 1 -67.0891 84.3258 -144.85 + 58 108.225 565 2 1 -67.05 84.3481 -144.655 +Number of digits in this event: 66 +Using G4ParticleGun... +Particle energy: 9.82886 LIN +Particle: gamma Event: 59 -Number of tracker hits in this event = 0 -Number of digits in this event = 2 -Using G4ParticleGun ... -1.97092 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 1 +Using G4ParticleGun... +Particle energy: 9.87976 LIN +Particle: gamma Event: 60 -Number of tracker hits in this event = 88 - 60 258.233 879 9 1 -4.14198 -50.3093 65.55 - 60 219.077 648 9 0 -4.14279 -50.3103 64.15 - 60 234.01 879 8 1 -4.18607 -50.3154 35.55 - 60 288.886 648 8 0 -4.18248 -50.3212 34.15 - 60 333.778 879 7 1 -4.0955 -50.4408 5.55 - 60 624.659 648 7 0 -4.09038 -50.449 4.15 - 60 56.0477 647 7 0 -4.08959 -50.45 3.97022 - 60 138.158 880 6 1 -3.9351 -50.5564 -24.45 - 60 96.5209 647 6 0 -3.91578 -50.5692 -25.85 - 60 145.446 882 5 1 -3.53061 -50.879 -54.45 - 60 135.122 645 5 0 -3.50811 -50.9346 -55.85 - 60 113.021 884 4 1 -3.05897 -52.1022 -84.45 - 60 112.301 639 4 0 -3.03847 -52.144 -85.85 - 60 151.626 886 3 1 -2.66302 -53.0585 -114.45 - 60 122.338 634 3 0 -2.62656 -53.1168 -115.85 - 60 12.3977 890 2 1 -1.85084 -54.2102 -144.45 - 60 123.802 891 2 1 -1.85 -54.2105 -144.48 - 60 133.575 629 2 0 -1.80973 -54.2261 -145.85 - 60 114.068 895 1 1 -0.890035 -54.5585 -174.45 - 60 133.518 626 1 0 -0.84956 -54.6782 -175.85 - 60 138.443 899 0 1 -0.142423 -57.0759 -204.45 - 60 109.96 614 0 0 -0.113088 -57.1784 -205.85 - 60 20.9402 1339 1 0 -1.99484 88.0246 -176.25 - 60 205.548 1340 1 0 -2.02436 88.05 -176.222 - 60 48.929 1425 0 1 105.15 -57.9845 -204.568 - 60 0.114619 1426 0 1 105.35 -57.9828 -204.451 - 60 181.747 887 3 1 -2.65 -53.0863 -114.743 - 60 128.317 888 2 1 -2.3107 -49.9583 -144.45 - 60 138.383 887 2 1 -2.45 -49.9492 -144.63 - 60 20.6402 649 2 0 -3.49755 -50.0874 -145.85 - 60 63.8729 650 2 0 -3.52396 -50.05 -145.896 - 60 68.555 651 2 0 -3.51266 -49.85 -145.903 - 60 303.983 882 2 1 -3.54131 -49.025 -144.85 - 60 67.238 657 2 0 -4.00149 -48.5074 -145.85 - 60 129.026 656 2 0 -4.08942 -48.6505 -146.021 - 60 62.4369 886 2 1 -2.65 -49.9265 -144.66 - 60 32.0389 885 2 1 -2.85 -49.9003 -144.789 - 60 175.568 652 2 0 -4.63761 -49.65 -145.917 - 60 18.6419 909 2 0 -6.72075 2.00707 -146.25 - 60 165.132 910 2 0 -6.67498 2.05 -146.222 - 60 88.5026 911 2 0 -6.45728 2.25 -146.073 - 60 33.9524 912 2 0 -6.26958 2.45 -145.916 - 60 1.218 874 2 1 -5.05343 3.87657 -144.85 - 60 89.8079 875 2 1 -5.05 3.88059 -144.847 - 60 98.3975 876 2 1 -4.85 4.10892 -144.693 - 60 213.571 877 2 1 -4.65 4.3097 -144.533 - 60 12.4246 1291 3 0 -60.0141 78.405 -116.25 - 60 83.6474 1292 3 0 -60.0491 78.45 -116.234 - 60 75.4679 1293 3 0 -60.2215 78.65 -116.161 - 60 112.547 1294 3 0 -60.4261 78.85 -116.093 - 60 166.109 1295 3 0 -60.6814 79.0501 -116.057 - 60 374.967 1296 3 0 -60.8969 79.2502 -116.024 - 60 326.333 1297 3 0 -61.092 79.45 -116.009 - 60 127.402 1647 3 0 -154.16 149.579 -116.25 - 60 143.344 1648 3 0 -154.304 149.75 -116.184 - 60 23.0729 1649 3 0 -154.412 149.95 -115.869 - 60 86.2584 124 3 1 -155.281 152.054 -114.85 - 60 227.599 1674 3 0 -154.377 155.034 -115.85 - 60 89.207 1673 3 0 -154.241 154.95 -115.98 - 60 88.0375 1298 3 0 -61.1652 79.65 -116.067 - 60 139.439 1299 3 0 -61.3112 79.8504 -116.066 - 60 109.415 1300 3 0 -61.4693 80.05 -116.053 - 60 117.908 1301 3 0 -61.7135 80.25 -115.997 - 60 168.67 1302 3 0 -61.9626 80.45 -116.075 - 60 6.0019 1303 3 0 -62.1339 80.65 -115.861 - 60 159.357 585 3 1 -62.8939 81.5352 -114.85 - 60 41.0502 584 3 1 -63.0501 81.543 -114.78 - 60 110.039 592 3 1 -61.5607 80.5384 -114.85 - 60 30.7298 591 3 1 -61.65 80.7909 -114.54 - 60 81.2923 910 2 1 2.05 9.03873 -144.652 - 60 162.038 909 2 1 2.05 9.18696 -144.575 - 60 175.323 878 6 1 -4.2937 -50.3073 -24.45 - 60 109.319 648 6 0 -4.30131 -50.3085 -25.85 - 60 178.398 877 5 1 -4.46353 -50.3631 -54.45 - 60 99.3913 648 5 0 -4.46921 -50.3728 -55.85 - 60 114.55 877 4 1 -4.55814 -50.534 -84.45 - 60 107.216 647 4 0 -4.55894 -50.5433 -85.85 - 60 328.617 877 3 1 -4.58245 -50.7419 -114.45 - 60 127.825 646 3 0 -4.58511 -50.7509 -115.85 - 60 110.254 645 2 0 -4.62755 -50.948 -145.85 - 60 113.561 877 1 1 -4.64132 -51.0271 -174.45 - 60 120.713 645 1 0 -4.63626 -51.0287 -175.85 - 60 252.989 877 0 1 -4.5415 -51.0168 -204.45 - 60 156.001 645 0 0 -4.53652 -51.025 -205.85 - 60 103.711 874 1 1 -5.09142 -50.6441 -174.45 - 60 135.896 646 1 0 -5.08861 -50.6986 -175.85 - 60 238.879 876 0 1 -4.81486 -51.4268 -204.45 - 60 153.757 642 0 0 -4.93604 -51.5578 -205.85 -Number of digits in this event = 46 -Using G4ParticleGun ... -8.48343 LIN -gamma +Number of tracker hits in this event: 42 + 60 42.8071 1042 5 0 -124.261 28.4583 -56.1746 + 60 217.84 279 4 1 -124.263 28.4632 -84.45 + 60 212.401 1042 4 0 -124.262 28.4622 -85.85 + 60 112.88 279 3 1 -124.251 28.4461 -114.45 + 60 124.678 1041 3 0 -124.249 28.4469 -115.85 + 60 394.271 279 2 1 -124.203 28.4621 -144.45 + 60 222.325 1042 2 0 -124.199 28.4632 -145.85 + 60 320.775 280 1 1 -124.117 28.4899 -174.45 + 60 259.998 1042 1 0 -124.113 28.4916 -175.85 + 60 227.331 280 0 1 -124.055 28.5271 -204.45 + 60 222.893 1042 0 0 -124.054 28.5293 -205.85 + 60 43.7594 1039 0 0 -124.002 27.9166 -205.85 + 60 82.8561 1038 0 0 -123.997 27.85 -205.984 + 60 56.7907 903 0 0 -99.672 0.741947 -206.25 + 60 93.6552 902 0 0 -99.5705 0.65 -206.174 + 60 75.7751 901 0 0 -99.3677 0.449859 -205.993 + 60 44.2188 410 0 1 -98.0401 -1.01669 -204.85 + 60 180.305 411 0 1 -97.9497 -1.12123 -204.758 + 60 154.868 412 0 1 -97.75 -1.40358 -204.57 + 60 71.6932 413 0 1 -97.55 -1.89477 -204.535 + 60 131.549 414 0 1 -97.3499 -1.71724 -204.534 + 60 326.342 415 0 1 -97.1499 -1.36618 -204.525 + 60 110.866 416 0 1 -96.95 -1.00432 -204.559 + 60 75.9367 417 0 1 -96.7499 -0.94421 -204.633 + 60 83.4523 418 0 1 -96.55 -0.92282 -204.719 + 60 24.4694 419 0 1 -96.35 -0.774791 -204.811 + 60 280.687 905 0 0 -94.7562 1.10245 -205.85 + 60 330.916 906 0 0 -94.1239 1.25 -206.08 + 60 35.2144 851 0 0 -89.9929 -9.65572 -206.25 + 60 222.759 1109 13 0 146.626 41.9103 183.75 + 60 162.678 280 3 1 -124.107 28.4653 -114.45 + 60 137.084 1042 3 0 -124.109 28.467 -115.85 + 60 155.293 280 2 1 -124.137 28.5088 -144.45 + 60 145.791 278 1 1 -124.448 28.513 -174.45 + 60 112.018 276 0 1 -124.813 28.4684 -204.45 + 60 256.451 1041 2 0 -124.209 28.4297 -145.85 + 60 279.287 1040 1 0 -123.952 28.0914 -175.85 + 60 123.011 282 0 1 -123.656 27.5825 -204.45 + 60 112.772 1037 0 0 -123.602 27.5673 -205.85 + 60 135.949 274 1 1 -125.269 28.1224 -174.45 + 60 122.414 268 0 1 -126.395 29.5357 -204.45 + 60 120.142 1049 0 0 -126.351 29.8681 -205.851 +Number of digits in this event: 30 +Using G4ParticleGun... +Particle energy: 1.04035 LIN +Particle: gamma Event: 61 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 -Using G4ParticleGun ... -3.1501 LIN -gamma +Number of tracker hits in this event: 95 + 61 323.724 987 9 1 17.6311 -100.989 65.55 + 61 453.172 395 9 0 17.6249 -100.994 64.15 + 61 106.998 987 8 1 17.481 -101.067 35.55 + 61 253.778 395 8 0 17.4825 -101.072 34.15 + 61 101.946 987 7 1 17.5464 -101.209 5.55 + 61 111.844 394 7 0 17.5386 -101.216 4.15 + 61 146.365 986 6 1 17.3501 -101.363 -24.45 + 61 137.029 393 6 0 17.371 -101.385 -25.85 + 61 119.502 988 5 1 17.7399 -101.878 -54.45 + 61 245.866 391 5 0 17.7686 -101.899 -55.85 + 61 144.486 991 4 1 18.2879 -102.507 -84.45 + 61 114.56 388 4 0 18.3252 -102.531 -85.85 + 61 112.149 994 3 1 18.9553 -102.989 -114.45 + 61 146.206 385 3 0 18.9733 -103.003 -115.85 + 61 119.865 996 2 1 19.2501 -103.352 -144.45 + 61 92.6534 383 2 0 19.2639 -103.377 -145.85 + 61 363.106 997 1 1 19.5624 -103.942 -174.45 + 61 134.655 380 1 0 19.6052 -103.984 -175.85 + 61 161.943 1003 0 1 20.6984 -104.692 -204.45 + 61 55.2339 377 0 0 20.7187 -104.743 -205.85 + 61 223.191 376 0 0 20.7219 -104.75 -206.063 + 61 49.5287 360 1 0 21.822 -108.009 -175.85 + 61 192.042 359 1 0 21.8883 -108.15 -175.856 + 61 39.311 333 1 0 8.37399 -113.549 -176.25 + 61 150.32 332 1 0 8.3573 -113.55 -176.218 + 61 10.8209 986 3 1 17.415 -101.525 -114.83 + 61 383.044 393 3 0 17.422 -101.528 -115.85 + 61 179.125 988 2 1 17.763 -101.426 -144.45 + 61 104.471 393 2 0 17.7385 -101.399 -145.85 + 61 129.424 986 1 1 17.261 -100.711 -174.45 + 61 219.815 397 1 0 17.2654 -100.665 -175.85 + 61 124.535 985 0 1 17.1341 -99.6858 -204.45 + 61 118.171 402 0 0 17.1137 -99.6833 -205.85 + 61 119.54 986 2 1 17.2922 -101.644 -144.45 + 61 153.665 392 2 0 17.3817 -101.663 -145.85 + 61 126.201 979 1 1 15.8652 -103.262 -174.45 + 61 44.4731 384 1 0 15.8522 -103.341 -175.85 + 61 63.3996 383 1 0 15.851 -103.35 -176.014 + 61 116.979 979 0 1 15.864 -104.743 -204.45 + 61 110.818 1054 2 1 30.9726 40.6759 -144.45 + 61 102.154 988 9 1 17.65 -101.003 65.1763 + 61 81.9174 393 9 0 18.0307 -101.455 64.1498 + 61 57.7932 392 9 0 18.1022 -101.55 63.8789 + 61 175.356 1028 8 1 25.7166 -105.604 35.55 + 61 40.8354 362 8 0 25.6235 -107.614 34.1499 + 61 77.9492 361 8 0 25.6014 -107.75 34.0825 + 61 65.0344 360 8 0 25.5662 -107.95 34.0143 + 61 94.3453 359 8 0 25.5364 -108.15 33.9304 + 61 74.4469 358 8 0 25.3785 -108.35 33.7929 + 61 103.039 357 8 0 25.2598 -108.55 33.948 + 61 14.5625 356 8 0 25.1733 -108.75 34.1153 + 61 172.755 1023 8 1 24.6819 -110.056 35.15 + 61 101.486 1024 8 1 24.85 -110.279 35.4249 + 61 424.908 1025 8 1 25.0501 -110.497 35.4982 + 61 133.102 369 8 0 25.4059 -106.161 34.15 + 61 48.3375 370 8 0 25.3075 -106.15 34.0681 + 61 359.055 988 8 1 17.7453 -101.072 35.55 + 61 108.285 989 7 1 17.8947 -100.834 5.55 + 61 297.792 396 7 0 17.9158 -100.8 4.15 + 61 172.557 992 6 1 18.5265 -99.9465 -24.45 + 61 177.7 401 6 0 18.5318 -99.895 -25.85 + 61 160.884 993 5 1 18.7062 -98.9407 -54.45 + 61 96.9542 406 5 0 18.7332 -98.8595 -55.85 + 61 120.898 996 4 1 19.3566 -97.0748 -84.45 + 61 145.196 416 4 0 19.3162 -96.9019 -85.85 + 61 121.254 992 3 1 18.6317 -93.4443 -114.45 + 61 132.217 434 3 0 18.6044 -93.2788 -115.85 + 61 121.442 990 2 1 18.079 -89.854 -144.45 + 61 120.991 452 2 0 18.0447 -89.6074 -145.85 + 61 217.065 987 1 1 17.5246 -84.5523 -174.45 + 61 235.757 478 1 0 17.48 -84.3752 -175.85 + 61 126.473 982 0 1 16.4649 -80.7969 -204.45 + 61 37.2695 981 0 1 16.45 -80.8039 -204.712 + 61 198.07 496 0 0 16.3875 -80.8324 -205.85 + 61 1.43198 424 7 1 -95.2236 -131.239 5.15 + 61 448.08 996 0 1 19.4216 -93.3812 -204.45 + 61 233.987 434 0 0 19.4279 -93.3396 -205.85 + 61 111.272 433 0 0 19.4419 -93.3669 -205.85 + 61 71.0892 386 8 0 18.4561 -102.786 34.15 + 61 91.9152 385 8 0 18.5641 -102.95 34.0156 + 61 162.208 287 8 0 47.0388 -122.681 33.75 + 61 49.6293 1138 8 1 47.7152 -122.664 35.1502 + 61 56.7736 1139 8 1 47.85 -122.656 35.3062 + 61 69.7292 1140 8 1 48.05 -122.645 35.4126 + 61 55.3041 1141 8 1 48.2502 -122.599 35.4663 + 61 84.1695 1142 8 1 48.45 -122.659 35.4377 + 61 120.826 1143 8 1 48.65 -122.72 35.4467 + 61 155.717 1144 8 1 48.85 -122.948 35.4384 + 61 45.4379 282 8 0 48.7334 -123.681 34.15 + 61 441.01 281 8 0 48.6782 -123.75 34.0604 + 61 78.4597 989 9 1 17.85 -101.171 65.3664 + 61 88.5627 990 9 1 18.0502 -101.28 65.2168 + 61 169.371 391 9 0 18.6147 -101.75 64.1021 + 61 214.637 390 9 0 18.443 -101.95 63.8082 + 61 115.775 389 9 0 18.2908 -102.15 64.0654 +Number of digits in this event: 51 +Using G4ParticleGun... +Particle energy: 3.91162 LIN +Particle: gamma Event: 62 -Number of tracker hits in this event = 18 - 62 212.126 873 3 1 -5.42111 125.387 -114.45 - 62 288.615 1526 3 0 -5.42158 125.386 -115.85 - 62 250.739 873 2 1 -5.43072 125.35 -144.45 - 62 226.853 1526 2 0 -5.43176 125.351 -145.85 - 62 102.498 873 1 1 -5.44488 125.38 -174.45 - 62 108.673 1526 1 0 -5.46151 125.384 -175.85 - 62 147.834 871 0 1 -5.81319 125.459 -204.45 - 62 461.965 1526 0 0 -5.82866 125.466 -205.85 - 62 49.0481 1321 6 0 -142.932 84.4214 -26.2492 - 62 170.964 1322 6 0 -143.023 84.45 -26.0853 - 62 442.321 182 6 1 -143.611 84.6302 -24.85 - 62 17.2636 181 6 1 -143.75 84.6132 -24.5725 - 62 348.184 872 1 1 -5.4608 125.33 -174.45 - 62 464.412 1525 1 0 -5.46743 125.305 -175.85 - 62 103.489 873 0 1 -5.43074 125.071 -204.45 - 62 105.671 1524 0 0 -5.43529 125.105 -205.85 - 62 396.341 872 0 1 -5.49623 125.443 -204.45 - 62 278.661 1531 0 0 -40.5707 126.385 -206.25 -Number of digits in this event = 14 -Using G4ParticleGun ... -6.76895 LIN -gamma +Number of tracker hits in this event: 49 + 62 316.552 682 8 1 -43.6431 -10.0394 35.55 + 62 327.242 850 8 0 -43.609 -10.0286 34.15 + 62 115.713 686 7 1 -42.7796 -9.90302 5.55 + 62 168.672 850 7 0 -42.6639 -9.85011 4.15 + 62 132.309 851 7 0 -42.6636 -9.85 4.14719 + 62 101.799 698 6 1 -40.3839 -8.8219 -24.45 + 62 38.0972 856 6 0 -40.2295 -8.84757 -25.85 + 62 69.4452 855 6 0 -40.216 -8.85 -25.9726 + 62 133.733 714 5 1 -37.1519 -9.49029 -54.45 + 62 183.331 852 5 0 -37.0578 -9.58368 -55.85 + 62 100.854 723 4 1 -35.3706 -11.454 -84.45 + 62 134.007 842 4 0 -35.3285 -11.501 -85.85 + 62 104.967 727 3 1 -34.5692 -12.3542 -114.45 + 62 120.167 838 3 0 -34.5371 -12.3527 -115.85 + 62 94.7371 731 2 1 -33.8481 -12.3293 -144.45 + 62 14.1563 730 2 1 -33.85 -12.3316 -144.789 + 62 100.86 838 2 0 -33.8578 -12.3427 -145.85 + 62 178.258 730 1 1 -33.9356 -12.6655 -174.45 + 62 143.982 837 1 0 -33.8294 -12.5378 -175.85 + 62 114.053 743 0 1 -31.3877 -9.66594 -204.45 + 62 119.548 852 0 0 -31.2756 -9.53419 -205.85 + 62 44.2287 731 1 1 -33.8498 -12.5626 -174.812 + 62 318.718 842 1 0 -34.7148 -11.5002 -175.85 + 62 125.221 682 7 1 -43.5977 -10.0127 5.55 + 62 139.876 682 6 1 -43.5243 -10.0096 -24.45 + 62 121.48 850 6 0 -43.5207 -10.0119 -25.85 + 62 136.489 682 5 1 -43.4597 -10.0571 -54.45 + 62 165.676 849 5 0 -43.4587 -10.0604 -55.85 + 62 126.961 683 4 1 -43.4379 -10.1245 -84.45 + 62 120.935 849 4 0 -43.4371 -10.1288 -85.85 + 62 118.69 683 3 1 -43.4192 -10.2197 -114.45 + 62 128.58 849 3 0 -43.4182 -10.2235 -115.85 + 62 257.053 683 2 1 -43.3862 -10.3253 -144.45 + 62 165.741 848 2 0 -43.3849 -10.3296 -145.85 + 62 118.225 683 1 1 -43.3636 -10.4095 -174.45 + 62 107.829 848 1 0 -43.3617 -10.4135 -175.85 + 62 134.176 683 0 1 -43.3382 -10.4998 -204.45 + 62 106.083 847 0 0 -43.3361 -10.5078 -205.85 + 62 19.9258 1673 1 0 44.4611 154.95 -175.914 + 62 115.739 890 2 0 -34.1995 -1.87604 -146.25 + 62 371.907 802 0 0 -39.8083 -19.4825 -206.25 + 62 275.303 801 0 0 -39.7528 -19.65 -205.988 + 62 26.1674 701 0 1 -39.6601 -20.287 -204.85 + 62 244.985 702 0 1 -39.65 -20.3333 -204.754 + 62 49.4539 799 0 0 -39.1538 -20.0699 -205.851 + 62 179.557 800 0 0 -39.1386 -20.05 -205.902 + 62 80.0714 803 0 0 -38.7544 -19.45 -206.096 + 62 64.0511 770 0 0 -34.3738 -26.0256 -206.25 + 62 144.007 769 0 0 -34.2905 -26.05 -206.184 +Number of digits in this event: 30 +Using G4ParticleGun... +Particle energy: 5.72348 LIN +Particle: gamma Event: 63 -Number of tracker hits in this event = 0 -Number of digits in this event = 2 -Using G4ParticleGun ... -8.86324 LIN -gamma +Number of tracker hits in this event: 22 + 63 248.172 1174 2 1 54.8591 -135.842 -144.45 + 63 209.759 221 2 0 54.8582 -135.838 -145.85 + 63 231.196 1173 1 1 54.8441 -135.749 -174.45 + 63 131.863 222 1 0 54.8412 -135.744 -175.85 + 63 556.075 1173 0 1 54.787 -135.653 -204.45 + 63 105.511 222 0 0 54.7915 -135.642 -205.85 + 63 232.758 221 0 0 54.5047 -135.907 -205.85 + 63 27.0316 220 0 0 54.4479 -135.95 -206.136 + 63 57.4566 183 0 0 54.501 -143.511 -206.25 + 63 67.8242 182 0 0 54.5438 -143.55 -206.097 + 63 75.898 1175 0 1 55.1095 -144.016 -204.85 + 63 37.5996 1176 0 1 55.2502 -144.153 -204.584 + 63 79.38 260 1 0 46.8105 -128.143 -176.25 + 63 47.8109 261 1 0 46.7006 -127.95 -176.008 + 63 73.368 1127 1 1 45.618 -127.052 -174.849 + 63 61.6612 1126 1 1 45.45 -126.944 -174.699 + 63 45.6964 1125 1 1 45.25 -126.852 -174.542 + 63 36.7485 1123 1 1 44.85 -149.951 -174.601 + 63 268.917 221 1 0 54.8429 -135.75 -176.088 + 63 211.63 943 1 1 8.82081 142.415 -174.85 + 63 220.746 944 1 1 8.85009 143.133 -174.664 + 63 153.126 945 1 1 9.05016 143.286 -174.747 +Number of digits in this event: 13 +Using G4ParticleGun... +Particle energy: 2.7696 LIN +Particle: gamma Event: 64 -Number of tracker hits in this event = 30 - 64 269.903 1311 2 1 82.3552 -0.993656 -144.45 - 64 285.982 895 2 0 82.3551 -0.994187 -145.85 - 64 622.453 1311 1 1 82.3445 -1.00416 -174.45 - 64 344.876 895 1 0 82.3433 -1.00084 -175.85 - 64 315.783 1311 0 1 82.3082 -0.909805 -204.45 - 64 267.535 895 0 0 82.3113 -0.903471 -205.85 - 64 42.2063 1234 1 1 67.0388 -34.7837 -174.85 - 64 9.32202 727 1 0 67.3876 -34.5315 -175.85 - 64 19.0462 1229 1 1 65.9601 -35.0571 -174.85 - 64 6.47907 934 0 1 7.05 12.9648 -204.652 - 64 177.425 937 1 1 7.65 15.4339 -174.731 - 64 40.2439 1092 0 1 38.65 -70.1642 -204.652 - 64 209.255 1082 0 1 36.65 -82.6222 -204.703 - 64 208.163 1310 1 1 82.25 -0.965271 -174.758 - 64 278.215 896 1 0 81.943 -0.833466 -175.85 - 64 112.043 878 1 0 96.5761 -4.37244 -176.25 - 64 67.7188 879 1 0 96.7975 -4.24989 -175.968 - 64 56.6242 1400 1 1 100.173 -2.25469 -174.85 - 64 57.0994 1401 1 1 100.35 -2.16615 -174.793 - 64 61.3527 1402 1 1 100.55 -2.12357 -174.686 - 64 58.5433 1403 1 1 100.75 -2.11683 -174.538 - 64 125.627 1404 1 1 100.95 -2.10518 -174.466 - 64 58.1209 1405 1 1 101.15 -2.23215 -174.492 - 64 22.499 1406 1 1 101.351 -2.31358 -174.464 - 64 193.451 1407 1 1 101.553 -2.35943 -174.45 - 64 121.503 1408 1 1 101.75 -2.13756 -174.727 - 64 82.7546 1409 1 1 101.95 -2.09238 -174.694 - 64 155.552 1279 2 1 76.05 -19.4081 -144.508 - 64 39.4068 892 1 0 82.1886 -1.4743 -175.85 - 64 110.86 893 1 0 82.1711 -1.44987 -175.886 -Number of digits in this event = 16 -Using G4ParticleGun ... -8.59621 LIN -gamma +Number of tracker hits in this event: 98 + 64 265.553 1006 9 1 21.3731 -58.3095 65.5498 + 64 259.225 608 9 0 21.3246 -58.2958 64.1495 + 64 50.6215 1001 8 1 20.2697 -58.6872 35.55 + 64 120.276 1000 8 1 20.25 -58.6844 35.3681 + 64 138 607 8 0 20.1208 -58.6363 34.15 + 64 103.43 986 7 1 17.4433 -57.5791 5.54959 + 64 163.02 612 7 0 17.2687 -57.618 4.15 + 64 69.7642 964 6 1 12.892 -57.0781 -24.45 + 64 35.9868 963 6 1 12.85 -57.1216 -24.7276 + 64 153.109 613 6 0 12.6563 -57.289 -25.8501 + 64 220.716 934 5 1 6.98392 -61.2452 -54.45 + 64 141.175 591 5 0 6.75941 -61.6633 -55.85 + 64 143.666 913 4 1 2.81307 -69.3278 -84.45 + 64 41.3403 551 4 0 2.46994 -69.8092 -85.85 + 64 76.3147 550 4 0 2.44071 -69.85 -85.9651 + 64 2.13052 873 3 1 -5.44929 -79.7235 -114.45 + 64 145.489 872 3 1 -5.45 -79.7241 -114.453 + 64 59.7056 500 3 0 -5.80754 -80.0102 -115.85 + 64 83.9777 499 3 0 -5.86326 -80.05 -116.059 + 64 107.872 832 2 1 -13.4675 -85.5077 -144.45 + 64 188.633 470 2 0 -13.4623 -85.8969 -145.85 + 64 157.314 837 1 1 -12.5759 -95.9331 -174.45 + 64 2.36507 838 1 1 -12.45 -96.1317 -174.841 + 64 77.7095 417 1 0 -12.0966 -96.6155 -175.85 + 64 173.045 416 1 0 -12.0112 -96.75 -176.099 + 64 14.0266 885 0 1 -2.87529 -112.553 -204.45 + 64 140.014 886 0 1 -2.84999 -112.611 -204.467 + 64 179.357 887 0 1 -2.65 -113.048 -204.605 + 64 142.5 888 0 1 -2.45 -113.431 -204.72 + 64 0.317991 889 0 1 -2.25 -113.788 -204.849 + 64 63.6187 317 0 0 -0.863337 -116.559 -205.85 + 64 73.0223 316 0 0 -0.765527 -116.75 -205.927 + 64 63.0792 315 0 0 -0.689707 -116.95 -206.019 + 64 52.5851 314 0 0 -0.631254 -117.15 -206.132 + 64 57.4926 69 0 0 12.5676 -166.192 -206.25 + 64 74.3346 68 0 0 12.6162 -166.35 -206.128 + 64 39.5788 67 0 0 12.7048 -166.55 -205.952 + 64 175.814 966 0 1 13.2755 -167.464 -204.85 + 64 187.5 988 0 1 17.65 -171.472 -204.74 + 64 82.9055 603 8 0 18.1266 -59.2805 34.15 + 64 125.225 1006 8 1 21.3896 -58.3441 35.55 + 64 114.96 608 8 0 21.3913 -58.3446 34.15 + 64 140.348 1006 7 1 21.4311 -58.3557 5.55 + 64 104.736 608 7 0 21.4331 -58.3563 4.15 + 64 125.312 1007 6 1 21.4727 -58.3596 -24.45 + 64 126.877 608 6 0 21.476 -58.3582 -25.85 + 64 191.461 1007 5 1 21.5498 -58.3341 -54.45 + 64 124.758 608 5 0 21.5545 -58.3353 -55.85 + 64 74.8708 1007 4 1 21.6489 -58.3774 -84.45 + 64 40.0816 1008 4 1 21.65 -58.3784 -84.7125 + 64 123.514 608 4 0 21.6547 -58.3825 -85.85 + 64 407.467 1008 3 1 21.754 -58.4751 -114.45 + 64 408.549 607 3 0 21.7621 -58.485 -115.85 + 64 98.7044 1009 2 1 21.9346 -58.6953 -144.45 + 64 107.759 606 2 0 21.939 -58.7041 -145.85 + 64 219.994 1009 1 1 22.0049 -58.8876 -174.45 + 64 326.576 605 1 0 22.0094 -58.8969 -175.85 + 64 106.101 1010 0 1 22.0953 -59.1034 -204.45 + 64 105.312 604 0 0 22.0984 -59.1131 -205.85 + 64 2.24338 714 1 1 -37.0941 40.305 -174.85 + 64 266.564 713 1 1 -37.25 40.5168 -174.741 + 64 103.321 604 1 0 22.1837 -59.05 -176.147 + 64 148.014 1010 1 1 22.0517 -58.6882 -174.45 + 64 241.573 606 1 0 22.0477 -58.7193 -175.85 + 64 309.984 1007 0 1 21.5901 -59.5591 -204.45 + 64 106.847 602 0 0 21.5374 -59.5582 -205.85 + 64 311.44 588 0 0 74.5864 -62.321 -206.25 + 64 29.1692 589 0 0 74.784 -62.25 -205.96 + 64 79.794 992 0 1 18.5356 -59.8285 -204.45 + 64 33.3102 991 0 1 18.45 -59.8806 -204.728 + 64 141.655 599 0 0 18.0973 -60.1037 -205.85 + 64 54.5534 699 5 0 42.6749 -40.1571 -56.25 + 64 14.6651 829 10 1 -14.1562 131.882 95.15 + 64 115.554 608 3 0 21.7205 -58.3844 -115.85 + 64 12.6099 1016 2 1 23.421 -57.5264 -144.45 + 64 98.7329 1017 2 1 23.45 -57.5409 -144.51 + 64 105.638 610 2 0 24.0592 -57.9029 -145.85 + 64 95.7508 1073 1 1 34.7744 -67.4042 -174.45 + 64 57.2367 1074 1 1 34.85 -67.6343 -174.713 + 64 119.561 557 1 0 35.1035 -68.6124 -175.85 + 64 171.108 556 1 0 35.1146 -68.65 -175.895 + 64 57.6942 555 1 0 35.186 -68.85 -176.123 + 64 4.97398 1122 0 1 44.643 -93.0052 -204.45 + 64 123.31 1123 0 1 44.65 -93.0152 -204.467 + 64 234.444 431 0 0 45.256 -93.7901 -205.85 + 64 30.9902 430 0 0 45.3777 -93.95 -206.177 + 64 327.235 1008 1 1 21.7075 -58.4676 -174.45 + 64 193.819 607 1 0 21.6104 -58.4516 -175.85 + 64 87.272 608 1 0 21.6037 -58.45 -175.949 + 64 188.936 1002 0 1 20.4819 -56.6686 -204.451 + 64 88.6495 618 0 0 20.5251 -56.3329 -205.85 + 64 19.7857 619 0 0 20.5374 -56.25 -206.174 + 64 315.329 1653 5 1 150.75 83.4165 -54.7527 + 64 186.064 936 0 0 13.2203 7.25 -206.216 + 64 47.9457 937 0 0 13.193 7.45 -206.135 + 64 119.314 999 0 1 19.8579 -60.8721 -204.45 + 64 110.814 595 0 0 19.8883 -61.0021 -205.85 + 64 2.52949 594 0 0 19.8953 -61.05 -206.243 +Number of digits in this event: 45 +Using G4ParticleGun... +Particle energy: 2.67102 LIN +Particle: gamma Event: 65 -Number of tracker hits in this event = 7 - 65 390.663 804 0 1 -19.0653 124.717 -204.45 - 65 264.685 1522 0 0 -19.0655 124.717 -205.85 - 65 48.9261 1177 3 0 72.3453 55.5523 -116.25 - 65 130.071 1178 3 0 72.3661 55.65 -116.203 - 65 195.363 1179 3 0 72.3921 55.85 -116.055 - 65 98.1917 1523 0 0 -19.0627 124.75 -206.066 - 65 6.65005 1524 0 0 -19.2518 124.95 -206.246 -Number of digits in this event = 6 -Using G4ParticleGun ... -3.03249 LIN -gamma +Number of tracker hits in this event: 4 + 65 110.2 279 0 1 -124.16 97.1662 -204.85 + 65 91.3588 1714 3 0 -146.743 162.95 -116.128 + 65 73.4613 178 3 1 -144.549 162.733 -114.85 + 65 51.5999 161 3 1 -147.894 162.556 -114.85 +Number of digits in this event: 3 +Using G4ParticleGun... +Particle energy: 5.5376 LIN +Particle: gamma Event: 66 -Number of tracker hits in this event = 31 - 66 408.202 1266 5 1 73.2936 -72.2436 -54.45 - 66 288.202 539 5 0 73.2942 -72.2423 -55.85 - 66 122.928 1266 4 1 73.3107 -72.2086 -84.45 - 66 133.353 539 4 0 73.315 -72.2036 -85.85 - 66 109.681 1266 3 1 73.4182 -72.1053 -114.45 - 66 102.926 539 3 0 73.4237 -72.1001 -115.85 - 66 260.311 1267 2 1 73.5426 -71.9995 -144.45 - 66 122.713 540 2 0 73.5506 -71.9987 -145.85 - 66 214.553 1268 1 1 73.709 -71.9813 -174.45 - 66 125.246 540 1 0 73.7139 -71.9815 -175.85 - 66 145.055 1268 0 1 73.826 -72.0053 -204.45 - 66 166.533 540 0 0 73.8356 -72.0056 -205.85 - 66 30.3753 1268 2 1 73.65 -72.1827 -144.728 - 66 92.6812 539 2 0 73.3775 -72.1892 -145.85 - 66 141.831 538 2 0 73.3534 -72.25 -145.952 - 66 119.704 1260 4 1 72.0691 -72.4427 -84.4503 - 66 113.822 538 4 0 72.0926 -72.2903 -85.8501 - 66 73.7363 1260 3 1 72.2204 -69.1606 -114.45 - 66 33.2625 1261 3 1 72.25 -69.1316 -114.714 - 66 176.808 555 3 0 72.3625 -68.9686 -115.85 - 66 159.069 1272 2 1 74.5147 -64.4675 -144.45 - 66 13.2742 580 2 0 74.6972 -63.8654 -145.85 - 66 116.138 581 2 0 74.7018 -63.85 -145.886 - 66 130.94 1297 1 1 79.5321 -51.0074 -174.45 - 66 74.3291 649 1 0 79.6697 -50.1414 -175.85 - 66 74.9503 650 1 0 79.683 -50.05 -175.998 - 66 172.533 1310 0 1 82.1174 -32.6596 -204.45 - 66 23.2491 741 0 0 82.1359 -31.6918 -205.85 - 66 184.13 742 0 0 82.1368 -31.6491 -205.912 - 66 12.9551 743 0 0 82.1301 -31.45 -206.201 - 66 242.366 552 5 0 70.6175 -69.606 -55.85 -Number of digits in this event = 20 -Using G4ParticleGun ... -9.3233 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 5.44544 LIN +Particle: gamma Event: 67 -Number of tracker hits in this event = 112 - 67 309.467 800 8 1 -19.8576 3.13659 35.55 - 67 252.709 915 8 0 -19.8576 3.1371 34.15 - 67 259.874 800 7 1 -19.8524 3.14579 5.55 - 67 318.328 915 7 0 -19.8519 3.14631 4.15 - 67 169.324 801 6 1 -19.8417 3.15913 -24.45 - 67 544.071 915 6 0 -19.84 3.16182 -25.85 - 67 155.285 801 5 1 -19.799 3.21848 -54.45 - 67 233.617 915 5 0 -19.798 3.22243 -55.85 - 67 300.755 801 4 1 -19.7757 3.30401 -84.45 - 67 283.353 916 4 0 -19.7744 3.30975 -85.85 - 67 237.55 801 3 1 -19.7453 3.43704 -114.45 - 67 117.84 916 3 0 -19.7426 3.44631 -115.85 - 67 115.165 801 2 1 -19.6907 3.62847 -144.45 - 67 138.45 917 2 0 -19.687 3.63763 -145.85 - 67 140.309 802 1 1 -19.6089 3.82683 -174.45 - 67 106.43 918 1 0 -19.6048 3.8354 -175.85 - 67 180.222 802 0 1 -19.5073 4.00739 -204.45 - 67 126.405 919 0 0 -19.5029 4.01504 -205.85 - 67 343.909 746 14 0 -153.452 -30.8461 213.75 - 67 19.438 745 14 0 -154.089 -30.85 214.105 - 67 123.651 125 14 1 -155.087 -31.5583 215.15 - 67 114.949 124 14 1 -155.15 -31.5181 215.216 - 67 35.6623 1541 6 0 -80.7092 128.426 -26.25 - 67 151.912 1540 6 0 -80.7038 128.35 -26.1875 - 67 169.499 1539 6 0 -80.6333 128.15 -26.1256 - 67 244.896 1538 6 0 -80.5717 127.95 -25.876 - 67 631.365 800 6 1 -19.9002 3.13197 -24.45 - 67 402.12 800 5 1 -19.9322 2.89467 -54.45 - 67 279.35 914 5 0 -19.9347 2.88196 -55.85 - 67 604.629 800 4 1 -19.9829 2.62209 -84.45 - 67 142.921 912 4 0 -19.9904 2.6093 -85.85 - 67 123.953 799 3 1 -20.179 2.37414 -114.45 - 67 101.631 911 3 0 -20.1832 2.35831 -115.85 - 67 123.149 798 2 1 -20.2787 2.0352 -144.45 - 67 199.578 909 2 0 -20.2837 2.00661 -145.85 - 67 645.525 798 1 1 -20.4124 1.4187 -174.45 - 67 136.956 906 1 0 -20.4156 1.39024 -175.85 - 67 132.559 798 0 1 -20.4452 0.773953 -204.45 - 67 427.857 903 0 0 -20.4475 0.7343 -205.85 - 67 148.76 905 1 0 -20.2331 1.10669 -175.85 - 67 78.9983 904 1 0 -20.2213 1.05 -176.009 - 67 97.5242 799 0 1 -20.215 -13.3902 -204.45 - 67 112.978 834 0 0 -20.1412 -13.1611 -205.85 - 67 102.584 884 0 0 -32.2038 -3.16314 -206.25 - 67 128.695 885 0 0 -32.3595 -3.05 -206.1 - 67 139.571 886 0 0 -32.7595 -2.85 -205.905 - 67 23.9774 711 0 1 -37.738 -1.35495 -204.85 - 67 80.8414 710 0 1 -37.8502 -1.30415 -204.834 - 67 100.059 709 0 1 -38.05 -1.20011 -204.759 - 67 104.786 708 0 1 -38.25 -1.03796 -204.64 - 67 63.7122 707 0 1 -38.45 -0.852149 -204.544 - 67 85.6024 706 0 1 -38.65 -0.812957 -204.463 - 67 112.202 705 0 1 -38.8503 -0.89289 -204.602 - 67 60.4717 704 0 1 -39.0503 -1.01916 -204.733 - 67 27.5024 703 0 1 -39.25 -1.06027 -204.799 - 67 171.66 891 0 0 -40.5009 -1.66467 -205.85 - 67 106.959 907 1 0 -20.406 1.62275 -175.85 - 67 117.706 800 0 1 -20.0119 1.64699 -204.45 - 67 69.0761 908 0 0 -19.9454 1.81899 -205.85 - 67 37.7995 909 0 0 -19.9304 1.85 -206.111 - 67 135.481 917 6 0 -19.5768 3.54597 -25.8504 - 67 3.60677 844 5 1 -11.067 10.4813 -54.45 - 67 180.791 845 5 1 -11.0499 10.4813 -54.4674 - 67 164.213 846 5 1 -10.85 10.4596 -54.7018 - 67 134.526 952 5 0 -9.95924 10.5071 -55.85 - 67 126.016 896 4 1 -0.814235 15.8832 -84.4505 - 67 57.5467 897 4 1 -0.65 15.8898 -84.7208 - 67 92.0908 979 4 0 0.255384 15.8987 -85.85 - 67 66.9714 978 4 0 0.418381 15.85 -86.0661 - 67 63.3766 1010 3 1 22.132 4.03125 -114.45 - 67 67.9026 1009 3 1 22.05 3.95487 -114.684 - 67 123.364 926 3 0 20.5067 5.27628 -115.85 - 67 51.3279 927 3 0 20.2687 5.45 -116.187 - 67 150.822 979 3 0 -7.47646 15.9279 -116.25 - 67 136.17 980 3 0 -7.66013 16.0501 -116.148 - 67 102.8 868 3 1 -6.34383 17.8787 -114.85 - 67 113.433 869 3 1 -6.25 17.9431 -114.836 - 67 32.7305 916 6 0 -20.0962 3.25 -26.1023 - 67 98.6667 787 5 1 -22.4528 6.57219 -54.4502 - 67 143.843 786 5 1 -22.65 6.50151 -54.729 - 67 48.6961 785 5 1 -22.8501 6.15975 -54.8154 - 67 74.3113 928 5 0 -24.3608 5.79718 -55.85 - 67 152.831 929 5 0 -24.5518 5.8501 -55.9298 - 67 242.007 930 5 0 -24.7396 6.05 -55.9777 - 67 125.411 914 4 0 -19.8326 2.94276 -85.85 - 67 214.962 912 3 0 -19.8154 2.50927 -115.85 - 67 103.463 800 2 1 -19.9139 1.84568 -144.45 - 67 106.93 908 2 0 -19.9344 1.81818 -145.85 - 67 364.207 796 0 1 -20.7837 0.470203 -204.45 - 67 155.659 902 0 0 -20.7918 0.468257 -205.85 - 67 105.316 908 1 0 -20.3767 1.66034 -175.85 - 67 125.731 809 0 1 -18.1805 11.4012 -204.45 - 67 39.8118 953 0 0 -17.8486 10.7467 -205.85 - 67 80.3952 952 0 0 -17.814 10.6498 -206.001 - 67 349.195 951 0 0 -17.7808 10.45 -206.213 - 67 9.68852 814 3 1 -17.2049 0.647268 -114.85 - 67 138.614 901 3 0 -16.9288 0.308143 -115.85 - 67 209.55 799 4 1 -20.2284 3.34483 -84.45 - 67 156.168 797 3 1 -20.6256 3.693 -114.45 - 67 99.4714 918 3 0 -20.6613 3.70695 -115.85 - 67 106.877 793 2 1 -21.3984 3.97364 -144.45 - 67 116.921 919 2 0 -21.4418 3.99509 -145.85 - 67 133.191 788 1 1 -22.3024 4.45134 -174.45 - 67 99.1115 922 1 0 -22.3359 4.47153 -175.85 - 67 376.209 785 0 1 -23.0376 4.87053 -204.45 - 67 124.752 924 0 0 -23.0575 4.89597 -205.85 - 67 118.179 784 0 1 -23.05 4.88434 -204.63 - 67 276.93 783 0 1 -23.25 4.97412 -204.804 - 67 229.361 1011 4 0 -10.1274 22.3377 -86.25 - 67 304.157 1010 4 0 -10.0957 22.25 -85.8631 - 67 12.2922 1009 4 0 -10.1548 22.05 -85.9395 - 67 91.6914 798 4 1 -20.2501 3.41435 -84.5084 -Number of digits in this event = 64 -Using G4ParticleGun ... -2.26484 LIN -gamma +Number of tracker hits in this event: 32 + 67 268.213 1278 4 1 75.6545 -113.876 -84.45 + 67 287.741 331 4 0 75.6534 -113.877 -85.85 + 67 104.745 1277 3 1 75.63 -113.914 -114.45 + 67 322.928 331 3 0 75.6281 -113.911 -115.85 + 67 208.097 1277 2 1 75.5623 -113.878 -144.45 + 67 238.437 331 2 0 75.5582 -113.874 -145.85 + 67 175.26 1277 1 1 75.4715 -113.789 -174.45 + 67 297.247 331 1 0 75.4673 -113.781 -175.85 + 67 114.664 1276 0 1 75.3773 -113.632 -204.45 + 67 119.324 332 0 0 75.3692 -113.626 -205.85 + 67 20.7217 982 4 1 16.5769 -55.614 -84.85 + 67 8.95062 724 1 0 13.0226 -35.25 -176.059 + 67 80.2121 723 1 0 13.0173 -35.25 -176.045 + 67 364.081 1278 2 1 75.6501 -114.031 -144.812 + 67 134.012 1278 3 1 75.6513 -113.865 -114.45 + 67 109.719 1278 1 1 75.7289 -113.906 -174.45 + 67 394.188 1278 0 1 75.816 -113.879 -204.45 + 67 395.939 331 0 0 75.8189 -113.881 -205.85 + 67 93.1078 967 1 0 32.8404 13.45 -176.185 + 67 124.321 1062 1 1 32.5792 13.4082 -174.85 + 67 218.371 1061 1 1 32.4376 13.3323 -174.45 + 67 214.458 963 1 0 32.0568 12.7994 -175.85 + 67 239.1 962 1 0 31.7605 12.65 -176 + 67 10.4108 1038 5 0 -126.042 27.65 -56.1471 + 67 1.77398 731 2 0 -121.717 -33.85 -145.976 + 67 187.813 285 2 1 -122.968 -33.0277 -144.85 + 67 246.734 286 2 1 -122.95 -32.9802 -144.731 + 67 356.503 284 2 1 -123.15 -32.3449 -144.536 + 67 107.591 1277 4 1 75.6499 -113.881 -84.73 + 67 36.8081 1276 4 1 75.45 -113.912 -84.8154 + 67 79.2009 336 4 0 75.275 -112.919 -85.85 + 67 54.9582 335 4 0 75.2031 -112.95 -85.8952 +Number of digits in this event: 21 +Using G4ParticleGun... +Particle energy: 4.78038 LIN +Particle: gamma Event: 68 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 -Using G4ParticleGun ... -8.7535 LIN -gamma +Number of tracker hits in this event: 2 + 68 124.336 1546 9 1 129.35 -79.3464 65.3877 + 68 225.964 1547 9 1 129.55 -79.2574 65.483 +Number of digits in this event: 4 +Using G4ParticleGun... +Particle energy: 4.61883 LIN +Particle: gamma Event: 69 -Number of tracker hits in this event = 121 - 69 221.189 985 8 1 17.1537 -109.372 35.55 - 69 217.701 353 8 0 17.1517 -109.37 34.15 - 69 335.932 985 7 1 17.109 -109.317 5.55 - 69 317.809 354 7 0 17.107 -109.315 4.15 - 69 697.758 985 6 1 17.0718 -109.283 -24.45 - 69 332 354 6 0 17.0703 -109.28 -25.85 - 69 256.804 984 5 1 17.0397 -109.217 -54.45 - 69 174.774 354 5 0 17.0368 -109.212 -55.85 - 69 148.274 984 4 1 16.9734 -109.096 -84.45 - 69 547.191 355 4 0 16.9711 -109.09 -85.85 - 69 152.447 984 3 1 16.925 -108.981 -114.45 - 69 211.288 355 3 0 16.9261 -108.977 -115.85 - 69 262.036 984 2 1 16.9407 -108.898 -144.45 - 69 331.047 356 2 0 16.9409 -108.896 -145.85 - 69 517.297 984 1 1 16.9453 -108.844 -174.45 - 69 482.397 356 1 0 16.9462 -108.842 -175.85 - 69 236.355 984 0 1 16.9669 -108.803 -204.45 - 69 568.977 356 0 0 16.9648 -108.801 -205.85 - 69 207.786 1679 4 0 11.3702 155.95 -86.1427 - 69 86.7805 1680 4 0 11.3945 156.15 -85.9063 - 69 11.2039 1183 12 1 56.65 72.1338 155.55 - 69 320.925 1182 12 1 56.65 72.13 155.535 - 69 291.367 355 1 0 16.9015 -108.965 -175.85 - 69 119.237 983 0 1 16.7824 -108.863 -204.45 - 69 141.809 486 2 0 71.0536 -82.7386 -146.25 - 69 196.417 485 2 0 71.0485 -82.85 -145.944 - 69 98.7889 645 2 0 86.1452 -51.0317 -146.25 - 69 114.095 1331 2 1 86.3818 -50.9303 -144.85 - 69 78.396 876 5 0 -50.1843 -4.85 -56.1747 - 69 237.905 985 5 1 17.2416 -109.235 -54.45 - 69 83.7215 986 5 1 17.25 -109.228 -54.4828 - 69 56.5815 357 5 0 17.3924 -108.672 -55.85 - 69 63.5217 358 5 0 17.4063 -108.55 -56.0396 - 69 77.9148 451 5 0 18.012 -89.6943 -56.25 - 69 70.0502 450 5 0 17.9824 -89.85 -56.0242 - 69 91.0664 990 5 1 18.2351 -90.331 -54.85 - 69 49.504 991 5 1 18.25 -90.35 -54.7587 - 69 79.9372 1372 5 1 94.55 -67.3358 -54.6024 - 69 54.1169 353 5 0 16.9736 -109.52 -55.8501 - 69 65.7415 352 5 0 16.9642 -109.55 -55.9956 - 69 19.9288 971 4 1 14.2647 -111.572 -84.45 - 69 148.391 970 4 1 14.25 -111.572 -84.51 - 69 164.184 342 4 0 13.9003 -111.656 -85.8505 - 69 60.7049 939 3 1 7.90886 -112.566 -114.451 - 69 65.6521 938 3 1 7.85 -112.645 -114.652 - 69 72.7962 333 3 0 7.40129 -113.434 -115.85 - 69 105.183 332 3 0 7.32461 -113.55 -116.018 - 69 62.5026 850 2 1 -9.889 -130.611 -144.45 - 69 72.0966 849 2 1 -10.05 -130.506 -144.575 - 69 50.3863 848 2 1 -10.25 -130.398 -144.74 - 69 85.7243 252 2 0 -11.6671 -129.681 -145.85 - 69 101.904 253 2 0 -11.8995 -129.55 -146.031 - 69 171.074 663 1 1 -47.3763 -115.737 -174.45 - 69 39.6426 662 1 1 -47.45 -115.862 -174.71 - 69 305.578 318 1 0 -47.815 -116.354 -175.85 - 69 7.12596 632 0 1 -53.6192 -122.948 -204.45 - 69 81.1338 631 0 1 -53.65 -122.952 -204.466 - 69 68.3613 630 0 1 -53.8503 -122.971 -204.572 - 69 146.768 629 0 1 -54.05 -123.037 -204.732 - 69 12.1037 283 0 0 -55.171 -123.536 -205.85 - 69 259.679 282 0 0 -55.1981 -123.55 -205.877 - 69 38.7719 281 0 0 -55.5837 -123.75 -206.188 - 69 775.919 189 0 0 -119.902 -142.299 -206.25 - 69 1445.91 188 0 0 -120.272 -142.35 -206.135 - 69 119.579 187 0 0 -124.854 -142.55 -206.135 - 69 82.2585 95 0 0 -177.292 -161.015 -206.25 - 69 72.7054 94 0 0 -177.291 -161.15 -206.112 - 69 67.7981 93 0 0 -177.287 -161.35 -205.985 - 69 72.0213 92 0 0 -177.358 -161.55 -205.899 - 69 72.8363 2 0 1 -179.613 -165.202 -204.85 - 69 100.305 1 0 1 -179.75 -165.408 -204.786 - 69 100.066 0 0 1 -179.95 -165.631 -204.702 - 69 119.811 355 5 0 17.222 -109.123 -55.85 - 69 358.147 986 4 1 17.2868 -109.11 -84.45 - 69 125.71 986 3 1 17.367 -109.005 -114.45 - 69 95.7048 986 2 1 17.4318 -108.895 -144.45 - 69 58.2269 986 1 1 17.4493 -108.757 -174.45 - 69 57.1436 987 1 1 17.45 -108.757 -174.629 - 69 130.327 987 0 1 17.5925 -108.812 -204.45 - 69 10.1215 462 1 0 -20.9659 -87.4642 -176.25 - 69 193.804 463 1 0 -20.978 -87.45 -176.231 - 69 193.837 354 4 0 17.292 -109.151 -86.1382 - 69 95.6268 18 1 0 -90.993 -176.35 -176.178 - 69 202.61 985 4 1 17.1377 -109.057 -84.45 - 69 112.237 970 3 1 14.2111 -117.707 -114.45 - 69 2.99633 969 3 1 14.05 -117.784 -114.831 - 69 166.437 310 3 0 13.5529 -118.023 -115.85 - 69 44.1434 482 3 0 9.7612 -83.5629 -116.25 - 69 94.2912 483 3 0 9.85851 -83.45 -116.192 - 69 174.368 484 3 0 10.1377 -83.25 -116.136 - 69 47.0945 80 3 0 -22.2551 -164.149 -116.25 - 69 90.4803 79 3 0 -22.2561 -164.15 -116.249 - 69 197.729 788 3 1 -22.2669 -162.61 -114.85 - 69 271.618 789 3 1 -22.25 -162.565 -114.81 - 69 155.846 985 3 1 17.0884 -108.952 -114.45 - 69 106.104 356 3 0 17.0748 -108.948 -115.85 - 69 225.993 982 0 1 16.6096 -108.909 -204.45 - 69 49.6054 984 6 1 17.05 -109.996 -24.7021 - 69 34.5437 335 6 0 16.18 -113.034 -25.85 - 69 65.6295 334 6 0 16.143 -113.15 -25.9001 - 69 83.0908 333 6 0 16.1102 -113.351 -25.9997 - 69 75.544 332 6 0 16.0374 -113.55 -26.1133 - 69 3.63256 143 5 0 27.5565 -151.35 -56.0846 - 69 131.278 992 5 1 18.6241 -109.117 -54.45 - 69 109.372 356 5 0 18.6086 -108.88 -55.8504 - 69 0.877132 988 4 1 17.6511 -104.194 -84.4501 - 69 117.82 987 4 1 17.65 -104.194 -84.4536 - 69 109.403 380 4 0 17.11 -104.05 -85.85 - 69 79.71 925 3 1 5.18142 -97.8344 -114.45 - 69 62.1325 924 3 1 5.04993 -97.8093 -114.651 - 69 94.5172 412 3 0 4.21846 -97.6413 -115.85 - 69 31.1221 413 3 0 4.01562 -97.55 -116.165 - 69 177.379 812 2 1 -17.5185 -85.9096 -144.45 - 69 115.166 472 2 0 -17.7939 -85.6427 -145.85 - 69 164.449 792 1 1 -21.4767 -81.4493 -174.45 - 69 41.4063 495 1 0 -22.1338 -80.8955 -175.85 - 69 77.7156 496 1 0 -22.1944 -80.85 -175.997 - 69 33.6247 729 0 1 -34.1907 -72.0267 -204.45 - 69 124.092 728 0 1 -34.25 -72.0365 -204.541 - 69 18.3821 727 0 1 -34.45 -72.114 -204.787 - 69 143.246 538 0 0 -35.2647 -72.3891 -205.85 -Number of digits in this event = 52 -Using G4ParticleGun ... -9.46302 LIN -gamma +Number of tracker hits in this event: 169 + 69 318.85 974 10 1 14.8825 -26.7928 95.55 + 69 272.213 766 10 0 14.8833 -26.7926 94.15 + 69 264.924 974 9 1 14.8992 -26.7982 65.55 + 69 155.48 766 9 0 14.8991 -26.8008 64.15 + 69 129.613 974 8 1 14.896 -26.8608 35.55 + 69 128.451 765 8 0 14.8925 -26.8607 34.15 + 69 101.006 973 7 1 14.816 -26.8542 5.55 + 69 142.73 765 7 0 14.8054 -26.8549 4.15 + 69 169.767 972 6 1 14.5978 -26.8826 -24.45 + 69 636.754 765 6 0 14.5843 -26.8878 -25.85 + 69 187.767 971 5 1 14.3106 -27.0266 -54.45 + 69 221.958 765 5 0 14.2985 -27.0356 -55.85 + 69 119.615 970 4 1 14.0661 -27.2372 -84.45 + 69 224.23 764 4 0 14.0528 -27.2386 -85.85 + 69 122.855 968 3 1 13.7787 -27.263 -114.45 + 69 155.728 763 3 0 13.7694 -27.264 -115.85 + 69 154.304 967 2 1 13.5751 -27.2917 -144.45 + 69 121.715 763 2 0 13.5658 -27.2925 -145.85 + 69 99.5912 966 1 1 13.3705 -27.31 -174.45 + 69 109.981 763 1 0 13.3615 -27.317 -175.85 + 69 106.337 965 0 1 13.1364 -27.4115 -204.45 + 69 503.869 763 0 0 13.149 -27.4268 -205.85 + 69 51.5801 1069 0 1 33.9158 1.89149 -204.45 + 69 288.208 1068 0 1 33.85 1.93788 -204.562 + 69 24.438 1067 0 1 33.65 2.02508 -204.684 + 69 354.846 762 0 0 12.9907 -27.4837 -205.85 + 69 332.414 964 0 1 13.0462 -28.0211 -204.45 + 69 113.348 750 0 0 9.94719 -29.8633 -206.25 + 69 169.878 950 0 1 10.0966 -30.3726 -204.849 + 69 20.5894 969 0 1 14.05 -30.3561 -204.623 + 69 230.019 759 0 0 12.8029 -28.1703 -205.85 + 69 262.707 973 4 1 14.7496 -26.6376 -84.45 + 69 78.7786 972 4 1 14.6494 -26.6474 -84.5843 + 69 226.047 765 4 0 14.0099 -27.0301 -85.8501 + 69 34.5282 921 3 1 4.36405 -40.3418 -114.451 + 69 169.948 922 3 1 4.45 -40.3315 -114.503 + 69 1.22121 923 3 1 4.65 -40.3224 -114.846 + 69 35.4374 698 3 0 5.02951 -40.2678 -115.85 + 69 121.568 699 3 0 5.05454 -40.2497 -115.941 + 69 176.823 766 4 0 14.8782 -26.6832 -85.85 + 69 458.221 980 3 1 16.1445 -26.9899 -114.45 + 69 220.025 981 3 1 16.25 -26.9288 -114.802 + 69 200.976 766 3 0 16.5639 -26.743 -115.85 + 69 3.44596 1023 2 1 24.8367 -20.2455 -144.45 + 69 102.276 1024 2 1 24.8501 -20.2495 -144.465 + 69 113.662 1025 2 1 25.0503 -20.2998 -144.66 + 69 155.562 797 2 0 26.2573 -20.4997 -145.85 + 69 15.1701 1170 1 1 54.2308 -23.4411 -174.45 + 69 165.255 1171 1 1 54.2501 -23.4801 -174.464 + 69 207.773 1172 1 1 54.45 -23.9358 -174.648 + 69 4.63188 1173 1 1 54.6501 -24.2874 -174.841 + 69 38.3202 771 1 0 55.6885 -25.733 -175.85 + 69 87.7053 770 1 0 55.7602 -25.8508 -175.923 + 69 106.682 769 1 0 55.8612 -26.05 -176.039 + 69 58.7005 768 1 0 55.9831 -26.25 -176.152 + 69 149.186 767 1 0 56.0972 -26.45 -176.248 + 69 141.881 419 1 0 126.293 -96.2273 -176.25 + 69 140.528 1535 1 1 127.17 -96.4842 -174.85 + 69 1027.66 1536 1 1 127.35 -96.5361 -174.55 + 69 53.3984 416 1 0 126.397 -96.9276 -175.85 + 69 43.3063 1532 1 1 126.581 -96.1206 -174.85 + 69 130.937 1531 1 1 126.55 -96.0606 -174.778 + 69 103.916 1530 1 1 126.35 -96.1287 -174.774 + 69 48.82 938 2 0 82.1808 7.72728 -146.25 + 69 61.634 939 2 0 82.2559 7.85 -146.149 + 69 51.9512 940 2 0 82.3169 8.05009 -146.066 + 69 58.0605 941 2 0 82.3494 8.25 -146.023 + 69 85.166 942 2 0 82.4418 8.45 -145.979 + 69 290.023 943 2 0 82.5977 8.65 -145.924 + 69 223.26 944 2 0 82.742 8.85039 -145.902 + 69 136.723 945 2 0 82.811 9.05 -145.882 + 69 422.593 1311 2 1 82.3063 11.6285 -144.85 + 69 38.8515 1310 2 1 82.25 12.1286 -144.734 + 69 139.85 1312 2 1 82.4506 12.6267 -144.739 + 69 68.2086 1313 2 1 82.65 12.6898 -144.6 + 69 111.573 766 8 0 14.8786 -26.8499 33.841 + 69 25.6901 983 0 1 16.843 83.6384 -204.85 + 69 201.702 974 6 1 14.8733 -26.9794 -24.45 + 69 136.487 976 5 1 15.3644 -27.1071 -54.45 + 69 100.857 764 5 0 15.3778 -27.0986 -55.85 + 69 254.833 978 4 1 15.7648 -26.9159 -84.45 + 69 162.778 764 3 0 16.36 -27.2263 -115.85 + 69 88.335 983 2 1 16.8091 -27.0812 -144.45 + 69 118.542 764 2 0 16.8388 -27.0678 -145.85 + 69 102.781 987 1 1 17.4735 -26.7929 -174.45 + 69 222.531 766 1 0 17.4889 -26.778 -175.85 + 69 121.199 988 0 1 17.8136 -26.3464 -204.45 + 69 315.615 768 0 0 17.8408 -26.331 -205.85 + 69 46.2033 516 6 0 18.5124 -76.7474 -26.25 + 69 122.764 973 5 1 14.8361 -27.0301 -54.45 + 69 118.57 974 4 1 14.9404 -26.9534 -84.45 + 69 135.755 975 3 1 15.1901 -26.971 -114.45 + 69 142.281 765 3 0 15.1903 -26.9717 -115.85 + 69 95.026 975 2 1 15.1419 -26.9928 -144.45 + 69 147.269 765 2 0 15.1438 -26.9689 -145.85 + 69 289.503 975 1 1 15.1701 -26.5354 -174.45 + 69 375.28 978 0 1 15.7856 -26.2907 -204.45 + 69 97.1736 769 0 0 16.4685 -26.1007 -205.85 + 69 221.583 770 0 0 16.6316 -26.05 -205.907 + 69 68.4252 771 0 0 16.7441 -25.85 -205.899 + 69 225.235 978 1 1 15.7841 -27.0885 -174.45 + 69 313.871 764 1 0 15.7843 -27.0983 -175.85 + 69 128.93 1372 4 0 77.9996 94.6732 -86.2499 + 69 156.259 1373 4 0 77.9865 94.7501 -86.2099 + 69 238.853 980 0 1 16.15 -27.2922 -204.45 + 69 20.3416 1706 6 0 -101.231 161.502 -26.25 + 69 110.231 1707 6 0 -101.266 161.55 -26.1898 + 69 129.543 392 6 1 -101.635 161.982 -24.85 + 69 206.884 974 5 1 14.915 -26.8305 -54.45 + 69 208.332 766 5 0 14.9447 -26.8063 -55.85 + 69 223.999 771 4 0 15.8383 -25.7559 -85.8501 + 69 139.858 991 3 1 18.3494 -26.3442 -114.45 + 69 200.519 768 3 0 18.5649 -26.3314 -115.85 + 69 151.531 1014 2 1 22.856 -25.7192 -144.45 + 69 106.463 776 2 0 23.4758 -24.7936 -145.851 + 69 67.4427 777 2 0 23.5865 -24.65 -146.104 + 69 75.1811 891 7 0 166.886 -1.78268 3.75 + 69 235.046 892 7 0 167.042 -1.65 3.95838 + 69 119 1734 7 1 167.126 -0.964173 5.15044 + 69 173.433 1735 7 1 167.15 -0.825629 5.34875 + 69 128.533 1048 8 0 144.478 29.6811 33.75 + 69 53.0969 1049 8 0 144.358 29.8504 34.0411 + 69 144.227 1619 8 1 144.073 30.6344 35.15 + 69 65.8265 1618 8 1 143.95 31.115 35.2919 + 69 216.228 1058 8 0 144.09 31.7107 34.1497 + 69 282.449 1057 8 0 144.415 31.65 33.9755 + 69 61.9698 1626 8 1 145.412 31.1393 35.1503 + 69 87.0953 1627 8 1 145.55 31.1423 35.2758 + 69 74.8373 1628 8 1 145.75 31.0963 35.4222 + 69 113.301 1629 8 1 145.95 30.9739 35.4636 + 69 165.56 1630 8 1 146.15 31.0171 35.4927 + 69 87.0709 1631 8 1 146.35 31.0239 35.4502 + 69 17.6423 1736 7 1 167.35 -0.561495 5.19336 + 69 66.5357 896 7 0 168.344 -0.679317 4.14938 + 69 143.766 897 7 0 168.537 -0.65 4.06555 + 69 45.9794 1102 1 1 40.45 -9.54338 -174.462 + 69 3.82859 1476 2 1 115.359 31.1472 -144.45 + 69 11.3881 1475 2 1 115.35 31.1509 -144.455 + 69 88.8303 775 3 0 16.1422 -24.8926 -115.85 + 69 111.909 969 2 1 14.0071 -25.8847 -144.45 + 69 118.549 769 2 0 14.0073 -26.073 -145.85 + 69 79.6791 747 1 0 15.2294 -30.6292 -175.85 + 69 196.348 746 1 0 15.2322 -30.65 -175.937 + 69 109.211 706 0 0 16.3956 -38.7391 -205.85 + 69 141.136 767 9 0 14.9561 -26.4925 64.15 + 69 137.453 975 8 1 15.1383 -26.2868 35.55 + 69 157.588 768 8 0 15.1557 -26.2802 34.15 + 69 98.4098 977 7 1 15.5457 -26.1627 5.55 + 69 124.405 769 7 0 15.5664 -26.1683 4.15 + 69 97.6866 979 6 1 16.0283 -26.2814 -24.45 + 69 108.99 768 6 0 16.0965 -26.3295 -25.85 + 69 125.809 986 5 1 17.4098 -27.3064 -54.45 + 69 153.548 763 5 0 17.4761 -27.361 -55.85 + 69 100.821 994 4 1 18.8883 -28.5097 -84.45 + 69 155.593 757 4 0 18.9483 -28.5704 -85.85 + 69 157.944 1000 3 1 20.1992 -29.7887 -114.45 + 69 105.333 750 3 0 20.2621 -29.86 -115.85 + 69 119.176 1007 2 1 21.5051 -31.3217 -144.45 + 69 171.949 743 2 0 21.5539 -31.4026 -145.85 + 69 215.278 1012 1 1 22.6039 -33.0693 -174.45 + 69 192.343 734 1 0 22.6591 -33.1572 -175.85 + 69 111.524 1018 0 1 23.7358 -35.0104 -204.45 + 69 132.393 724 0 0 23.7952 -35.1093 -205.85 + 69 5.67946 897 2 0 -19.9701 -0.560841 -146.25 + 69 100.055 742 2 0 21.5137 -31.45 -145.977 + 69 111.807 741 2 0 21.4656 -31.65 -145.942 + 69 198.395 1008 2 1 21.7508 -33.7041 -144.85 + 69 118.381 505 4 0 86.9868 -78.8643 -86.25 + 69 142.164 506 4 0 86.9886 -78.85 -86.1972 +Number of digits in this event: 95 +Using G4ParticleGun... +Particle energy: 8.85769 LIN +Particle: gamma Event: 70 -Number of tracker hits in this event = 8 - 70 279.072 529 1 1 -74.2054 76.8316 -174.45 - 70 372.222 1283 1 0 -74.2046 76.8313 -175.85 - 70 343.939 529 0 1 -74.1888 76.8193 -204.45 - 70 273.204 1283 0 0 -74.1866 76.82 -205.85 - 70 205.243 1236 1 0 -95.0424 67.3125 -176.25 - 70 116.155 595 3 0 -65.9407 -60.85 -116.204 - 70 109.309 1113 5 1 42.65 -135.191 -54.5671 - 70 66.5323 796 1 1 -20.85 -29.3441 -174.76 -Number of digits in this event = 7 -Using G4ParticleGun ... -8.86883 LIN -gamma +Number of tracker hits in this event: 26 + 70 329.712 873 1 1 -5.3471 107.964 -174.45 + 70 297.687 1439 1 0 -5.34765 107.964 -175.85 + 70 245.972 873 0 1 -5.35929 107.975 -204.45 + 70 282.079 1439 0 0 -5.36072 107.975 -205.85 + 70 54.0245 77 2 1 -164.555 112.401 -144.45 + 70 193.226 78 2 1 -164.55 112.413 -144.458 + 70 215.314 1428 0 0 -48.7099 105.851 -206.25 + 70 182.888 1427 0 0 -49.4757 105.75 -206.03 + 70 6.84491 639 0 1 -52.2209 105.351 -204.85 + 70 67.3579 638 0 1 -52.25 105.348 -204.833 + 70 70.3245 637 0 1 -52.45 105.353 -204.719 + 70 53.2105 636 0 1 -52.65 105.328 -204.575 + 70 49.9362 635 0 1 -52.9755 105.365 -204.45 + 70 68.2519 634 0 1 -53.0502 105.222 -204.535 + 70 394.162 633 0 1 -53.25 104.994 -204.544 + 70 24.9205 634 1 1 -53.1321 -42.7817 -174.85 + 70 37.1493 1377 0 0 -20.652 95.608 -206.25 + 70 87.1759 1376 0 0 -20.6317 95.55 -206.115 + 70 58.5362 797 0 1 -20.4597 95.1864 -204.85 + 70 95.4025 798 0 1 -20.45 95.1616 -204.768 + 70 103.769 795 0 1 -20.9019 94.9803 -204.45 + 70 28.2883 794 0 1 -21.05 95.009 -204.754 + 70 136.064 1374 0 0 -21.7911 95.131 -205.85 + 70 101.474 1447 2 0 -18.9571 109.676 -146.25 + 70 120.94 1448 2 0 -18.9121 109.75 -146.122 + 70 37.3747 1366 3 1 93.4519 70.0318 -114.85 +Number of digits in this event: 12 +Using G4ParticleGun... +Particle energy: 9.51932 LIN +Particle: gamma Event: 71 -Number of tracker hits in this event = 6 - 71 125.18 942 5 0 56.7292 8.51662 -56.25 - 71 3.45039 1155 11 1 51.25 -35.3954 125.231 - 71 67.1212 702 13 0 32.905 -39.65 183.978 - 71 65.6808 504 0 0 144.514 -79.1652 -206.25 - 71 149.118 505 0 0 144.496 -79.05 -206.18 - 71 58.116 1517 0 1 123.731 -16.5751 -204.45 -Number of digits in this event = 5 -Using G4ParticleGun ... -7.4379 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 8.48267 LIN +Particle: gamma Event: 72 -Number of tracker hits in this event = 0 -Number of digits in this event = 2 -Using G4ParticleGun ... -3.62469 LIN -gamma +Number of tracker hits in this event: 28 + 72 373.523 615 4 1 -56.9871 21.7153 -84.45 + 72 416.377 1008 4 0 -56.9871 21.7142 -85.85 + 72 203.336 615 3 1 -56.9868 21.6947 -114.45 + 72 356.468 1008 3 0 -56.9875 21.6949 -115.85 + 72 225.664 615 2 1 -57.0034 21.7048 -144.45 + 72 271.487 1008 2 0 -57.0004 21.7091 -145.85 + 72 449.6 615 1 1 -56.9178 21.8193 -174.45 + 72 399.909 1008 1 0 -56.9148 21.8248 -175.85 + 72 382.502 615 0 1 -56.8507 21.9511 -204.45 + 72 303.354 1009 0 0 -56.8508 21.9601 -205.85 + 72 132.913 612 0 1 -57.6303 22.5288 -204.45 + 72 104.375 1012 0 0 -57.6267 22.527 -205.85 + 72 91.6773 648 0 1 -50.3372 21.424 -204.451 + 72 65.7662 649 0 1 -50.2499 21.4648 -204.658 + 72 30.2606 1007 0 0 -49.7872 21.6398 -205.85 + 72 214.122 1008 0 0 -49.752 21.65 -205.933 + 72 89.6494 370 1 1 -105.998 -42.5092 -174.85 + 72 352.091 1512 11 1 122.596 86.9107 125.55 + 72 36.7012 475 0 1 -85.05 22.2679 -204.729 + 72 4.7506 582 4 0 -5.16328 -63.4716 -86.25 + 72 115.871 1009 1 0 -56.9398 21.9165 -175.85 + 72 122.49 288 4 0 30.382 -122.35 -86.2034 + 72 120.419 798 6 0 -18.906 -20.45 -26.114 + 72 330.373 879 0 0 -55.879 -4.12366 -206.25 + 72 136.848 880 0 0 -55.9773 -4.05 -206.218 + 72 8.45955 1012 4 0 -57.3258 22.4977 -85.85 + 72 101.286 616 4 1 -56.7934 23.7073 -84.85 + 72 40.373 1014 4 0 -56.4233 22.9488 -85.85 +Number of digits in this event: 19 +Using G4ParticleGun... +Particle energy: 5.52285 LIN +Particle: gamma Event: 73 -Number of tracker hits in this event = 0 -Number of digits in this event = 0 -Using G4ParticleGun ... -6.23296 LIN -gamma +Number of tracker hits in this event: 101 + 73 245.489 836 8 1 -12.6701 117.155 35.55 + 73 321.758 1485 8 0 -12.6647 117.171 34.15 + 73 248.334 837 7 1 -12.5515 117.38 5.55 + 73 190.169 1486 7 0 -12.5348 117.413 4.15 + 73 104.033 839 6 1 -12.2357 118.101 -24.45 + 73 138.954 1489 6 0 -12.2189 118.137 -25.85 + 73 98.1077 840 5 1 -12.0346 119.108 -54.45 + 73 121.687 1495 5 0 -12.0275 119.173 -55.85 + 73 177.758 840 4 1 -11.9769 120.456 -84.45 + 73 101.324 1501 4 0 -11.9873 120.509 -85.85 + 73 132.375 839 3 1 -12.1123 121.527 -114.45 + 73 122.786 1506 3 0 -12.106 121.543 -115.85 + 73 129.226 840 2 1 -11.9732 121.803 -144.45 + 73 112.281 1508 2 0 -11.9644 121.815 -145.85 + 73 121.096 840 1 1 -11.8533 122.196 -174.45 + 73 235.469 1510 1 0 -11.8598 122.217 -175.85 + 73 362.431 840 0 1 -11.9153 122.712 -204.45 + 73 176.473 1512 0 0 -11.8896 122.7 -205.85 + 73 28.3065 1684 0 0 -45.0068 156.95 -206.209 + 73 81.1193 838 5 1 -12.343 117.741 -54.45 + 73 368.278 837 5 1 -12.45 117.829 -54.7544 + 73 56.5216 1490 5 0 -12.7687 118.28 -55.85 + 73 49.9516 1491 5 0 -12.8438 118.35 -56.045 + 73 74.9333 1501 5 0 -12.2932 120.449 -56.25 + 73 39.7407 1500 5 0 -12.1785 120.35 -56.0158 + 73 149.665 841 5 1 -11.7104 119.423 -54.8492 + 73 655.495 842 5 1 -11.65 119.338 -54.7312 + 73 153.692 1494 5 0 0.343766 119.021 -55.85 + 73 133.946 1493 5 0 1.31113 118.95 -56.2114 + 73 38.2549 1543 5 0 -35.9017 128.881 -56.25 + 73 179.075 466 9 1 -86.65 12.9045 65.3261 + 73 236.16 837 1 1 -12.5214 117.062 -174.45 + 73 221.42 1485 1 0 -12.7122 117.231 -175.85 + 73 135.695 813 0 1 -17.3169 120.122 -204.45 + 73 114.603 1500 0 0 -17.6603 120.242 -205.85 + 73 86.9152 814 0 1 -17.2371 120.192 -204.45 + 73 91.759 815 0 1 -17.05 120.376 -204.526 + 73 109.84 816 0 1 -16.85 120.589 -204.612 + 73 75.8212 817 0 1 -16.65 120.776 -204.68 + 73 63.091 818 0 1 -16.45 120.943 -204.722 + 73 140.633 819 0 1 -16.25 121.09 -204.75 + 73 71.3739 820 0 1 -16.05 121.224 -204.768 + 73 74.199 821 0 1 -15.85 121.352 -204.781 + 73 76.1724 822 0 1 -15.6497 121.503 -204.794 + 73 65.8029 823 0 1 -15.45 121.653 -204.804 + 73 63.1116 824 0 1 -15.25 121.802 -204.798 + 73 76.1095 825 0 1 -15.05 121.944 -204.794 + 73 86.2135 826 0 1 -14.85 122.087 -204.792 + 73 70.3073 827 0 1 -14.65 122.253 -204.776 + 73 99.2408 828 0 1 -14.45 122.435 -204.763 + 73 86.2009 829 0 1 -14.25 122.621 -204.75 + 73 68.9507 830 0 1 -14.05 122.794 -204.758 + 73 57.2253 831 0 1 -13.85 122.979 -204.775 + 73 72.7939 832 0 1 -13.6499 123.148 -204.773 + 73 135.322 833 0 1 -13.45 123.306 -204.778 + 73 57.4038 834 0 1 -13.25 123.46 -204.78 + 73 62.9084 835 0 1 -13.05 123.604 -204.757 + 73 68.9318 836 0 1 -12.8493 123.757 -204.743 + 73 60.7413 837 0 1 -12.65 123.922 -204.731 + 73 266.243 838 0 1 -12.45 124.087 -204.717 + 73 575.666 839 0 1 -12.25 124.257 -204.675 + 73 101.201 841 0 1 -11.85 124.601 -204.556 + 73 4.67281 842 0 1 -11.65 124.782 -204.458 + 73 125.538 1647 5 0 156.115 149.572 -56.25 + 73 100.742 1648 5 0 156.515 149.75 -56.0539 + 73 240.086 1687 5 1 157.585 150.259 -54.85 + 73 261.178 1688 5 1 157.75 150.274 -54.6947 + 73 254.761 1686 5 1 157.55 150.826 -54.6397 + 73 278.796 1689 5 1 157.95 150.378 -54.5417 + 73 111.515 1483 1 0 -12.318 116.941 -175.85 + 73 64.0559 1337 1 0 -26.1135 87.6364 -176.25 + 73 20.108 1336 1 0 -26.1856 87.45 -176.203 + 73 174.988 1485 7 0 -12.6279 117.215 4.15 + 73 150.589 837 6 1 -12.5733 117.278 -24.45 + 73 157.115 1485 6 0 -12.5698 117.28 -25.85 + 73 96.8145 1485 5 0 -12.5018 117.325 -55.85 + 73 129.028 838 4 1 -12.4453 117.402 -84.45 + 73 129.271 1486 4 0 -12.4433 117.406 -85.85 + 73 207.885 838 3 1 -12.4063 117.485 -114.45 + 73 375.576 1486 3 0 -12.404 117.487 -115.85 + 73 116.989 838 2 1 -12.3642 117.52 -144.45 + 73 249.034 1486 2 0 -12.3593 117.525 -145.85 + 73 250.854 839 1 1 -12.1953 117.626 -174.45 + 73 152.512 1487 1 0 -12.1913 117.631 -175.85 + 73 125.723 1487 0 0 -12.0805 117.745 -205.85 + 73 213.484 837 3 1 -12.4502 117.433 -114.45 + 73 165.141 837 2 1 -12.4662 117.515 -144.45 + 73 127.132 1488 1 0 -12.2341 117.915 -175.85 + 73 114.942 1491 0 0 -11.9499 118.462 -205.85 + 73 127.975 269 5 0 -8.06739 -126.223 -56.25 + 73 8.04413 268 5 0 -8.18247 -126.35 -55.8605 + 73 112.989 852 5 1 -9.56548 -128.447 -54.85 + 73 39.9222 851 5 1 -9.65002 -128.605 -54.8111 + 73 154.078 254 5 0 -9.52232 -129.196 -55.85 + 73 126.028 835 2 1 -12.8725 117.598 -144.45 + 73 116.884 1487 2 0 -12.8857 117.581 -145.85 + 73 260.095 833 1 1 -13.2755 117.247 -174.45 + 73 117.452 1495 0 0 -12.0825 119.325 -205.85 + 73 6.62854 1496 0 0 -12.0718 119.35 -206.216 + 73 15.9401 1209 8 0 -21.0742 62.0253 33.7502 + 73 53.7068 929 8 0 -43.3145 5.91645 33.75 +Number of digits in this event: 53 +Using G4ParticleGun... +Particle energy: 5.00925 LIN +Particle: gamma Event: 74 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 -Using G4ParticleGun ... -5.31651 LIN -gamma +Number of tracker hits in this event: 79 + 74 50.2694 1204 10 1 60.8596 -98.5247 95.2422 + 74 241.913 408 10 0 60.8595 -98.5247 94.15 + 74 361.358 1204 9 1 60.8558 -98.5249 65.55 + 74 253.874 408 9 0 60.8541 -98.5234 64.15 + 74 241.298 1203 8 1 60.816 -98.495 35.55 + 74 210.276 408 8 0 60.8143 -98.4955 34.15 + 74 139.159 1203 7 1 60.7717 -98.4994 5.55 + 74 156.839 408 7 0 60.7704 -98.4963 4.15 + 74 114.357 1203 6 1 60.7365 -98.4255 -24.45 + 74 143.967 408 6 0 60.7359 -98.4242 -25.85 + 74 112.753 1203 5 1 60.7214 -98.3873 -54.45 + 74 100.704 408 5 0 60.7178 -98.3866 -55.85 + 74 126.675 1202 4 1 60.6296 -98.3745 -84.45 + 74 235.518 408 4 0 60.6274 -98.3745 -85.85 + 74 127.238 1202 3 1 60.5852 -98.3761 -114.45 + 74 91.0135 408 3 0 60.5812 -98.3751 -115.85 + 74 149.04 1202 2 1 60.5018 -98.3524 -144.45 + 74 120.812 409 2 0 60.497 -98.3497 -145.85 + 74 121.519 1201 1 1 60.3958 -98.2891 -174.45 + 74 117.483 409 1 0 60.3885 -98.2882 -175.85 + 74 136.753 1200 0 1 60.2363 -98.2763 -204.45 + 74 166.495 409 0 0 60.2279 -98.2743 -205.85 + 74 10.6211 463 14 0 50.8631 -87.25 214.078 + 74 168.609 346 2 0 78.7222 -110.79 -146.25 + 74 327.767 345 2 0 78.585 -110.95 -146.064 + 74 159.796 344 2 0 78.1996 -111.15 -146.075 + 74 254.469 1202 7 1 60.65 -98.036 5.15221 + 74 48.2304 1202 0 1 60.5837 -98.2218 -204.45 + 74 88.4726 1203 0 1 60.65 -98.1321 -204.571 + 74 80.829 414 0 0 61.6585 -97.2595 -205.85 + 74 81.4503 415 0 0 61.7921 -97.1499 -206.031 + 74 109.67 407 2 0 60.7475 -98.5665 -145.85 + 74 58.9663 490 2 0 103.427 -81.9676 -146.25 + 74 15.763 408 2 0 60.768 -98.55 -146.212 + 74 191.398 1213 1 1 62.7315 -96.7884 -174.45 + 74 5.08137 417 1 0 62.701 -96.555 -175.85 + 74 228.386 418 1 0 62.7003 -96.55 -175.88 + 74 155.06 1206 0 1 61.4318 -91.3299 -204.45 + 74 253.579 446 0 0 61.3953 -90.896 -205.85 + 74 313.927 1203 9 1 60.8499 -98.5286 65.2403 + 74 335.351 1205 9 1 61.0501 -98.8508 65.4502 + 74 61.7237 1206 9 1 61.2501 -98.416 65.1697 + 74 49.9635 416 9 0 60.131 -96.7767 64.15 + 74 86.2976 1203 4 1 60.837 -98.4456 -84.45 + 74 81.0803 1204 4 1 60.85 -98.4441 -84.5743 + 74 52.4072 1223 3 1 64.821 -96.9265 -114.451 + 74 52.8367 1224 3 1 64.85 -96.9474 -114.647 + 74 104.767 415 3 0 65.037 -97.0824 -115.85 + 74 134.94 1247 2 1 69.5166 -99.9706 -144.45 + 74 37.1543 399 2 0 69.8735 -100.325 -145.85 + 74 90.5209 398 2 0 69.898 -100.35 -145.946 + 74 308.62 1286 1 1 77.3331 -108.102 -174.45 + 74 210.055 357 1 0 77.7394 -108.56 -175.85 + 74 118.953 1329 0 1 85.9695 -117.783 -204.45 + 74 89.7357 1330 0 1 86.05 -117.883 -204.65 + 74 66.1301 308 0 0 86.5288 -118.452 -205.85 + 74 56.6389 307 0 0 86.6101 -118.55 -206.05 + 74 6.86559 1271 1 1 74.351 -104.058 -174.525 + 74 132.657 409 7 0 60.5977 -98.2055 4.15 + 74 120.558 1200 6 1 60.2366 -97.9739 -24.45 + 74 125.521 410 6 0 60.2136 -97.9605 -25.85 + 74 129.146 1198 5 1 59.707 -97.7171 -54.45 + 74 107.919 412 5 0 59.6902 -97.7296 -55.85 + 74 115.713 1196 4 1 59.3816 -98.0011 -84.45 + 74 107.533 410 4 0 59.3579 -98.0291 -85.85 + 74 102.214 1193 3 1 58.8247 -98.7024 -114.45 + 74 110.986 407 3 0 58.7912 -98.7383 -115.85 + 74 105.214 1189 2 1 58.0234 -99.4871 -144.45 + 74 176.148 403 2 0 58.0128 -99.484 -145.85 + 74 107.086 1188 1 1 57.7383 -99.5106 -174.45 + 74 120.366 403 1 0 57.7015 -99.4866 -175.85 + 74 211.414 1184 0 1 56.9916 -99.0466 -204.45 + 74 118.145 405 0 0 56.899 -99.0465 -205.85 + 74 19.6435 399 1 0 57.5217 -100.231 -175.85 + 74 644.401 1197 5 1 59.65 -97.6618 -54.4524 + 74 486.065 1196 5 1 59.4499 -98.5082 -54.6855 + 74 333.903 1195 5 1 59.25 -98.7903 -54.6217 + 74 96.0492 1002 1 0 33.0797 20.45 -175.983 + 74 91.6541 1003 1 0 33.0913 20.65 -176.062 +Number of digits in this event: 42 +Using G4ParticleGun... +Particle energy: 2.28715 LIN +Particle: gamma Event: 75 -Number of tracker hits in this event = 8 - 75 698.119 1057 1 1 31.473 -23.8465 -174.45 - 75 219.057 781 1 0 31.4717 -23.8485 -175.85 - 75 124.709 1056 0 1 31.4446 -23.8938 -204.45 - 75 294.697 780 0 0 31.4438 -23.8962 -205.85 - 75 41.6535 640 5 0 79.1447 -51.85 -55.9425 - 75 156.604 1401 0 0 -35.1268 100.473 -206.25 - 75 44.1793 1058 1 1 31.6501 -24.0264 -174.537 - 75 100.771 1057 0 1 31.4727 -23.8708 -204.45 -Number of digits in this event = 7 -Using G4ParticleGun ... -3.71468 LIN -gamma +Number of tracker hits in this event: 18 + 75 497.761 891 3 1 -1.73474 -0.75337 -114.45 + 75 598.35 896 3 0 -1.72472 -0.694904 -115.85 + 75 120.725 892 2 1 -1.45882 0.588398 -144.45 + 75 20.9117 893 2 1 -1.45 0.614131 -144.759 + 75 129.574 903 2 0 -1.42441 0.709447 -145.85 + 75 124.133 896 1 1 -0.667841 3.27213 -174.45 + 75 112.539 916 1 0 -0.639087 3.38149 -175.85 + 75 95.7697 899 0 1 -0.181311 5.6018 -204.45 + 75 162.367 928 0 0 -0.160578 5.7237 -205.85 + 75 70.3027 652 1 0 47.8952 -49.5065 -176.25 + 75 119.303 892 3 1 -1.65 -0.490581 -114.634 + 75 68.7877 895 3 0 -1.59559 -0.85 -115.97 + 75 114.681 891 2 1 -1.72163 -0.821802 -144.45 + 75 127.58 896 2 0 -1.7055 -0.836253 -145.85 + 75 139.932 893 1 1 -1.35431 -1.2045 -174.45 + 75 196.201 894 1 0 -1.33316 -1.22461 -175.85 + 75 216.909 895 0 1 -0.977794 -1.60568 -204.45 + 75 181.894 892 0 0 -0.928589 -1.63244 -205.85 +Number of digits in this event: 13 +Using G4ParticleGun... +Particle energy: 4.86194 LIN +Particle: gamma Event: 76 -Number of tracker hits in this event = 57 - 76 405.895 567 9 1 -66.6009 -44.5794 65.55 - 76 299.459 677 9 0 -66.602 -44.5801 64.15 - 76 212.541 567 8 1 -66.6278 -44.5979 35.55 - 76 285.95 677 8 0 -66.6317 -44.5999 34.15 - 76 123.208 566 7 1 -66.7114 -44.6317 5.55 - 76 258.804 677 7 0 -66.7159 -44.6333 4.15 - 76 109.05 566 6 1 -66.8042 -44.6672 -24.45 - 76 132.235 676 6 0 -66.8072 -44.6682 -25.85 - 76 111.264 565 5 1 -66.865 -44.6802 -54.45 - 76 198.397 676 5 0 -66.866 -44.6823 -55.85 - 76 113.977 565 4 1 -66.8959 -44.7295 -84.45 - 76 145.419 676 4 0 -66.8989 -44.7333 -85.85 - 76 141.469 565 3 1 -66.9547 -44.8212 -114.45 - 76 94.3952 676 3 0 -66.9724 -44.8362 -115.85 - 76 163.264 563 2 1 -67.4373 -44.7889 -144.45 - 76 10.0576 562 2 1 -67.45 -44.7811 -144.826 - 76 195.73 676 2 0 -67.4889 -44.7546 -145.85 - 76 150.751 557 1 1 -68.6199 -43.97 -174.45 - 76 138.904 680 1 0 -68.6983 -43.9731 -175.85 - 76 96.5169 549 0 1 -70.2088 -44.2054 -204.451 - 76 127.963 679 0 0 -70.2792 -44.1923 -205.85 - 76 55.6706 485 0 0 -52.2361 -82.9927 -206.25 - 76 81.6034 484 0 0 -52.3594 -83.0501 -206.075 - 76 123.78 637 0 1 -52.5175 -83.9367 -204.85 - 76 68.6107 636 0 1 -52.65 -84.011 -204.507 - 76 76.1613 635 0 1 -52.85 -83.9993 -204.497 - 76 301.525 634 0 1 -53.05 -84.0459 -204.598 - 76 136.901 476 0 0 -53.2443 -84.7566 -205.85 - 76 41.6654 1682 4 0 -11.04 156.607 -86.25 - 76 234.016 568 8 1 -66.2862 -44.4169 35.55 - 76 116.114 569 7 1 -66.1281 -45.4585 5.55 - 76 207.258 672 7 0 -66.07 -45.4933 4.15 - 76 15.8466 575 6 1 -64.8537 -46.3828 -24.45 - 76 107.267 576 6 1 -64.85 -46.3861 -24.5268 - 76 72.699 668 6 0 -64.7856 -46.4401 -25.85 - 76 64.9626 667 6 0 -64.7738 -46.45 -26.0925 - 76 118.232 583 5 1 -63.3552 -47.6103 -54.45 - 76 121.654 661 5 0 -63.3168 -47.6728 -55.85 - 76 113.304 588 4 1 -62.3932 -48.9208 -84.45 - 76 125.616 655 4 0 -62.3539 -48.9254 -85.85 - 76 136.628 592 3 1 -61.5898 -49.1114 -114.45 - 76 148.606 654 3 0 -61.5701 -49.1025 -115.85 - 76 167.725 594 2 1 -61.2403 -48.9367 -144.45 - 76 144.77 655 2 0 -61.2714 -49.0004 -145.85 - 76 139.922 586 1 1 -62.794 -48.8368 -174.45 - 76 52.1689 585 1 1 -62.85 -48.928 -174.684 - 76 107.581 653 1 0 -63.1104 -49.337 -175.85 - 76 3.79422 652 1 0 -63.1732 -49.45 -176.228 - 76 119.373 559 0 1 -68.1473 -56.8789 -204.45 - 76 145.114 613 0 0 -68.2536 -57.3126 -205.85 - 76 397.839 593 2 1 -61.25 -48.8936 -144.453 - 76 120.455 592 2 1 -61.45 -48.2842 -144.542 - 76 93.1334 595 2 1 -61.05 -47.4445 -144.523 - 76 124.775 522 7 1 -75.6266 4.4824 5.55 - 76 264.967 666 6 0 -64.7086 -46.65 -25.9254 - 76 173.402 566 8 1 -66.65 -44.6038 35.3185 - 76 110.02 565 8 1 -66.8502 -44.5225 35.1875 -Number of digits in this event = 36 -Using G4ParticleGun ... -4.24311 LIN -gamma +Number of tracker hits in this event: 73 + 76 256.577 840 7 1 -11.9143 40.3697 5.55 + 76 228.533 1101 7 0 -11.9086 40.3768 4.15 + 76 269.741 841 6 1 -11.8347 40.5195 -24.45 + 76 139.089 1102 6 0 -11.8317 40.5323 -25.85 + 76 140.006 841 5 1 -11.7306 40.8063 -54.45 + 76 111.77 1103 5 0 -11.7127 40.8293 -55.85 + 76 90.8009 843 4 1 -11.253 41.3606 -84.45 + 76 87.9723 844 4 1 -11.25 41.3645 -84.7755 + 76 104.202 1106 4 0 -11.2367 41.3626 -85.85 + 76 137.874 843 3 1 -11.4164 41.7596 -114.45 + 76 121.622 1109 3 0 -11.4935 41.8575 -115.85 + 76 182.568 834 2 1 -13.0952 43.9833 -144.45 + 76 87.2323 1119 2 0 -13.1826 44.0412 -145.85 + 76 41.9049 1120 2 0 -13.1972 44.05 -146.069 + 76 108.573 824 1 1 -15.137 45.1812 -174.45 + 76 116.484 1126 1 0 -15.192 45.2844 -175.85 + 76 59.8624 819 0 1 -16.2373 47.4118 -204.45 + 76 70.037 818 0 1 -16.25 47.4358 -204.634 + 76 210.503 1137 0 0 -16.3279 47.5913 -205.85 + 76 4.35756 908 0 0 35.2537 1.69393 -205.85 + 76 295.81 907 0 0 35.2851 1.64994 -205.909 + 76 0.396556 841 2 1 -11.8491 42.4098 -144.451 + 76 152.054 840 2 1 -11.85 42.4091 -144.453 + 76 23.0321 1109 2 0 -12.2341 41.8776 -145.85 + 76 95.131 1108 2 0 -12.2514 41.8498 -145.921 + 76 41.3841 615 2 0 67.613 -56.9111 -146.25 + 76 17.648 614 2 0 67.6855 -57.0501 -146.24 + 76 241.892 846 2 1 -10.7173 42.5016 -144.45 + 76 127.244 1112 2 0 -10.6258 42.4856 -145.85 + 76 93.7601 856 1 1 -8.75169 42.5303 -174.45 + 76 92.4374 1112 1 0 -8.80114 42.4923 -175.85 + 76 265.863 849 0 1 -10.0705 41.2119 -204.45 + 76 163.812 1104 0 0 -10.0173 40.9468 -205.85 + 76 39.9531 1109 0 0 -10.4374 41.9958 -205.85 + 76 83.7131 1110 0 0 -10.4855 42.0502 -205.984 + 76 129.504 1111 2 0 -10.8016 42.3876 -145.85 + 76 255.982 838 1 1 -12.4331 40.0546 -174.45 + 76 96.3959 1098 1 0 -12.4789 39.827 -175.85 + 76 103.488 835 0 1 -12.9675 35.09 -204.45 + 76 163.049 1073 0 0 -12.925 34.8329 -205.85 + 76 0.40027 842 4 1 -11.4593 41.402 -84.45 + 76 76.2201 1092 2 0 -13.5794 38.5111 -145.85 + 76 142.163 1224 0 0 -18.1517 64.9206 -206.25 + 76 52.9491 858 1 0 -139.228 -8.25 -176.199 + 76 266.53 857 1 0 -139.374 -8.45 -176.092 + 76 126.966 840 6 1 -11.9226 40.3697 -24.45 + 76 140.598 1101 6 0 -11.924 40.3706 -25.85 + 76 120.278 840 5 1 -11.957 40.3874 -54.45 + 76 99.0578 1101 5 0 -11.9571 40.3905 -55.85 + 76 153.79 840 4 1 -11.9586 40.4655 -84.45 + 76 122.126 1102 4 0 -11.9607 40.4723 -85.85 + 76 249.958 840 3 1 -12.014 40.6157 -114.45 + 76 128.376 1102 3 0 -12.0167 40.6244 -115.85 + 76 115.827 839 2 1 -12.0697 40.7975 -144.45 + 76 135.901 1103 2 0 -12.0722 40.8052 -145.85 + 76 120.84 839 1 1 -12.1279 40.9718 -174.45 + 76 120.591 1104 1 0 -12.1304 40.979 -175.85 + 76 121.28 839 0 1 -12.1931 41.1138 -204.45 + 76 102.362 1105 0 0 -12.1977 41.1185 -205.85 + 76 27.8239 1101 3 0 -11.969 40.262 -115.85 + 76 79.2824 1100 3 0 -11.9661 40.25 -115.951 + 76 137.212 844 2 1 -11.1515 38.6648 -144.45 + 76 115.093 1094 2 0 -11.2756 38.8595 -145.85 + 76 130.146 1133 1 0 -12.661 46.7071 -175.85 + 76 6.23873 1134 1 0 -12.7757 46.85 -176.226 + 76 126.692 784 0 1 -23.2256 55.7973 -204.45 + 76 6.4999 1180 0 0 -23.1844 56.2413 -205.85 + 76 115.099 1181 0 0 -23.1832 56.25 -205.876 + 76 143.337 839 3 1 -12.05 40.3562 -114.533 + 76 105.963 1097 3 0 -12.5227 39.6104 -115.85 + 76 19.2067 1096 3 0 -12.622 39.45 -116.191 + 76 109.858 795 2 1 -20.9944 25.9767 -144.45 + 76 216.887 794 2 1 -21.05 25.9701 -144.504 +Number of digits in this event: 39 +Using G4ParticleGun... +Particle energy: 7.8256 LIN +Particle: gamma Event: 77 -Number of tracker hits in this event = 0 -Number of digits in this event = 3 -Using G4ParticleGun ... -5.42647 LIN -gamma +Number of tracker hits in this event: 58 + 77 279.421 1401 7 1 100.378 -33.4643 5.55 + 77 232.423 732 7 0 100.378 -33.4643 4.15 + 77 204.298 1401 6 1 100.37 -33.4649 -24.45 + 77 112.719 732 6 0 100.37 -33.4658 -25.85 + 77 230.675 1401 5 1 100.375 -33.4863 -54.45 + 77 128.37 732 5 0 100.375 -33.4861 -55.85 + 77 118.97 1401 4 1 100.37 -33.4878 -84.45 + 77 98.8591 732 4 0 100.369 -33.4887 -85.85 + 77 138.248 1400 3 1 100.345 -33.5053 -114.45 + 77 117.529 732 3 0 100.344 -33.5065 -115.85 + 77 130.856 1400 2 1 100.318 -33.5395 -144.45 + 77 109.53 732 2 0 100.317 -33.5406 -145.85 + 77 118.841 1400 1 1 100.306 -33.5653 -174.45 + 77 103.368 732 1 0 100.306 -33.5663 -175.85 + 77 115.511 1400 0 1 100.303 -33.5917 -204.45 + 77 175.666 732 0 0 100.303 -33.5931 -205.85 + 77 171.772 887 0 0 145.986 -2.60058 -206.25 + 77 413.778 886 0 0 146.514 -2.65 -206.127 + 77 78.676 885 0 0 146.947 -2.85034 -206.164 + 77 38.9148 884 0 0 147.078 -3.05 -206.197 + 77 37.5914 585 0 0 49.6488 -62.8639 -206.25 + 77 217.234 586 0 0 49.6431 -62.85 -206.192 + 77 140.285 1401 2 1 100.374 -33.4506 -144.45 + 77 81.4727 733 2 0 100.468 -33.291 -145.85 + 77 9.23975 734 2 0 100.489 -33.25 -146.204 + 77 131.877 1408 1 1 101.874 -29.2852 -174.45 + 77 120.843 750 1 0 101.791 -29.8829 -175.85 + 77 21.5775 749 1 0 101.767 -30.05 -176.175 + 77 150.399 1393 0 1 98.8917 -44.6807 -204.45 + 77 85.12 669 0 0 98.8119 -46.0598 -205.85 + 77 77.1983 668 0 0 98.7989 -46.25 -206.034 + 77 147.976 608 0 0 84.5969 -58.3331 -206.25 + 77 75.4397 1317 0 1 83.5708 -58.4993 -204.85 + 77 262.572 1316 0 1 83.4493 -58.5257 -204.688 + 77 1.5528 1315 0 1 83.2494 -58.5535 -204.457 + 77 50.0375 443 1 0 75.2137 -91.4003 -176.25 + 77 73.3428 442 1 0 75.1749 -91.55 -176.143 + 77 63.3396 441 1 0 75.1299 -91.75 -176.048 + 77 68.4092 440 1 0 75.0941 -91.95 -175.966 + 77 8.30382 439 1 0 75.0058 -92.15 -175.866 + 77 168.054 1265 1 1 73.2302 -93.2096 -174.85 + 77 188.884 1403 6 1 100.817 -33.3106 -24.45 + 77 95.2543 733 6 0 100.796 -33.296 -25.85 + 77 142.275 735 5 0 100.454 -32.9356 -55.85 + 77 149.38 1400 4 1 100.326 -32.9323 -84.45 + 77 137.975 735 4 0 100.292 -32.93 -85.85 + 77 119.724 1397 3 1 99.6185 -32.8973 -114.45 + 77 110.575 735 3 0 99.5766 -32.8777 -115.85 + 77 106.67 1393 2 1 98.7692 -32.4197 -144.45 + 77 117.632 738 2 0 98.7251 -32.3837 -145.85 + 77 147.586 1388 1 1 97.9299 -31.7311 -174.45 + 77 128.143 741 1 0 97.9091 -31.6981 -175.85 + 77 106.384 1386 0 1 97.4692 -31.115 -204.45 + 77 114.882 744 0 0 97.468 -31.0645 -205.85 + 77 0.819357 745 0 0 97.4678 -31.05 -206.246 + 77 269.941 1385 0 1 97.1998 -31.7997 -204.451 + 77 191.96 739 0 0 97.2154 -32.1342 -205.85 + 77 156.57 741 0 0 97.1112 -31.7744 -205.85 +Number of digits in this event: 29 +Using G4ParticleGun... +Particle energy: 7.82808 LIN +Particle: gamma Event: 78 -Number of tracker hits in this event = 0 -Number of digits in this event = 3 -Using G4ParticleGun ... -3.51718 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 1 +Using G4ParticleGun... +Particle energy: 8.95005 LIN +Particle: gamma Event: 79 -Number of tracker hits in this event = 35 - 79 305.748 1074 8 1 34.9753 130.885 35.55 - 79 239.942 1553 8 0 34.9796 130.885 34.15 - 79 306.333 1074 7 1 35.0036 130.943 5.55 - 79 222.155 1553 7 0 35 130.946 4.15 - 79 232.05 1074 6 1 34.9403 130.991 -24.45 - 79 278.04 1554 6 0 34.9396 130.982 -25.85 - 79 154.647 1074 5 1 34.9541 130.771 -54.45 - 79 128.133 1553 5 0 34.953 130.77 -55.85 - 79 128.781 1074 4 1 34.9354 130.757 -84.45 - 79 119.946 1553 4 0 34.9329 130.776 -85.85 - 79 90.5448 1074 3 1 34.8922 131.211 -114.45 - 79 112.073 1555 3 0 34.8746 131.194 -115.85 - 79 163.34 1072 2 1 34.6194 130.867 -144.45 - 79 164.692 1553 2 0 34.5345 130.879 -145.85 - 79 100.891 1062 1 1 32.5202 130.907 -174.45 - 79 117.682 1553 1 0 32.4487 130.884 -175.85 - 79 253.401 1054 0 1 31.0357 130.617 -204.45 - 79 114.864 1552 0 0 30.9592 130.649 -205.85 - 79 49.3979 1055 0 1 31.05 130.673 -204.72 - 79 73.9865 1071 0 1 34.3708 130.753 -204.45 - 79 31.8357 1072 0 1 34.45 130.765 -204.712 - 79 118.695 1553 0 0 34.7207 130.798 -205.85 - 79 152.9 1075 5 1 35.0746 131.099 -54.45 - 79 114.619 1554 5 0 35.083 131.106 -55.85 - 79 110.154 1076 4 1 35.2602 131.263 -84.45 - 79 108.965 1555 4 0 35.27 131.271 -85.85 - 79 142.191 1077 3 1 35.4818 131.423 -114.45 - 79 119.27 1556 3 0 35.4895 131.428 -115.85 - 79 214.659 1078 2 1 35.6547 131.536 -144.45 - 79 169.578 1556 2 0 35.6626 131.54 -145.85 - 79 189.771 1078 1 1 35.8078 131.61 -174.45 - 79 139.911 1557 1 0 35.8156 131.611 -175.85 - 79 130.006 1079 0 1 35.973 131.628 -204.45 - 79 138.758 1557 0 0 35.9795 131.629 -205.85 - 79 53.6205 1079 1 1 35.85 131.666 -174.472 -Number of digits in this event = 22 -Using G4ParticleGun ... -7.66879 LIN -gamma +Number of tracker hits in this event: 4 + 79 38.5183 361 0 0 155.615 -107.75 -206.021 + 79 104.604 360 0 0 155.695 -107.95 -205.934 + 79 29.8653 1680 0 1 156.202 -107.204 -204.85 + 79 51.7595 365 0 0 156.487 -107.066 -205.85 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 1.86145 LIN +Particle: gamma Event: 80 -Number of tracker hits in this event = 0 -Number of digits in this event = 1 -Using G4ParticleGun ... -6.78493 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 3.86156 LIN +Particle: gamma Event: 81 -Number of tracker hits in this event = 16 - 81 235.747 1184 4 1 56.974 18.1424 -84.45 - 81 290.041 990 4 0 56.9746 18.144 -85.85 - 81 236.19 1184 3 1 56.9907 18.1748 -114.45 - 81 250.384 990 3 0 56.9923 18.1746 -115.85 - 81 225.52 1184 2 1 57.0248 18.1742 -144.45 - 81 126.127 990 2 0 57.0254 18.175 -145.85 - 81 267.402 1184 1 1 57.0362 18.2034 -174.45 - 81 141.588 990 1 0 57.0384 18.2079 -175.85 - 81 227.019 1185 0 1 57.0962 18.3003 -204.45 - 81 115.841 991 0 0 57.1006 18.301 -205.85 - 81 148.916 989 2 0 56.9873 18.0343 -145.85 - 81 96.8967 989 1 0 57.0136 18.011 -175.85 - 81 226.616 989 0 0 57.0645 17.9976 -205.85 - 81 17.0026 1123 3 0 138.53 44.7407 -116.25 - 81 7.09639 1595 3 1 139.229 42.9708 -114.85 - 81 163.16 1088 3 0 139.362 37.8325 -115.85 -Number of digits in this event = 14 -Using G4ParticleGun ... -6.09496 LIN -gamma +Number of tracker hits in this event: 47 + 81 282.924 1310 10 1 82.0769 -70.3356 95.55 + 81 332.23 548 10 0 82.0771 -70.3305 94.15 + 81 279.904 1310 9 1 82.0788 -70.2434 65.55 + 81 113.805 549 9 0 82.0814 -70.2404 64.15 + 81 108.49 1310 8 1 82.1405 -70.1857 35.55 + 81 117.893 549 8 0 82.1417 -70.1859 34.15 + 81 155.327 1310 7 1 82.1756 -70.1881 5.55 + 81 273.38 549 7 0 82.1776 -70.1943 4.15 + 81 125.838 1310 6 1 82.1968 -70.342 -24.45 + 81 255.562 548 6 0 82.1943 -70.3482 -25.85 + 81 111.291 1310 5 1 82.1484 -70.4583 -54.45 + 81 97.7544 547 5 0 82.1506 -70.4587 -55.85 + 81 106.351 1310 4 1 82.2013 -70.4728 -84.45 + 81 99.0782 547 4 0 82.2038 -70.475 -85.85 + 81 129.327 1311 3 1 82.255 -70.5219 -114.45 + 81 105.278 547 3 0 82.2566 -70.5285 -115.85 + 81 138.613 1311 2 1 82.292 -70.6483 -144.45 + 81 101.656 546 2 0 82.2873 -70.6554 -145.85 + 81 357.629 1310 1 1 82.1871 -70.8149 -174.45 + 81 111.721 546 1 0 82.1777 -70.8159 -175.85 + 81 203.409 1309 0 1 81.9811 -70.8376 -204.45 + 81 159.28 546 0 0 81.9666 -70.8417 -205.85 + 81 128.983 548 9 0 82.0949 -70.4019 64.15 + 81 121.11 1309 8 1 82.0265 -70.3737 35.55 + 81 133.73 548 8 0 82.0226 -70.3706 34.15 + 81 112.791 1309 7 1 81.9379 -70.2313 5.55 + 81 186.343 1308 6 1 81.6719 -70.3016 -24.45 + 81 99.0993 1303 5 1 80.8159 -70.4438 -54.45 + 81 159.552 548 5 0 80.7737 -70.4231 -55.85 + 81 120.332 1299 4 1 79.9248 -70.0375 -84.45 + 81 152.343 550 4 0 79.8646 -70.0193 -85.85 + 81 222.15 1293 3 1 78.7165 -69.7001 -114.45 + 81 248.423 552 3 0 78.6722 -69.6444 -115.85 + 81 115.489 1289 2 1 77.9072 -68.6182 -144.45 + 81 127.36 557 2 0 77.8882 -68.5919 -145.85 + 81 150.723 1287 1 1 77.6467 -67.9789 -174.45 + 81 94.977 560 1 0 77.6226 -67.9538 -175.85 + 81 143.101 1284 0 1 76.9958 -67.1812 -204.45 + 81 175.787 564 0 0 76.9327 -67.1859 -205.85 + 81 165.381 612 5 0 60.4704 -57.5609 -55.85 + 81 267.368 544 1 0 82.1473 -71.2225 -175.85 + 81 125.158 1312 0 1 82.5625 -71.4628 -204.45 + 81 150.614 542 0 0 82.6011 -71.4875 -205.85 + 81 130.382 544 0 0 81.9916 -71.1494 -205.85 + 81 152.873 479 0 0 88.6637 -84.0751 -206.25 + 81 87.2684 478 0 0 88.8556 -84.25 -206.165 + 81 322.086 477 0 0 88.9498 -84.45 -206.179 +Number of digits in this event: 34 +Using G4ParticleGun... +Particle energy: 5.5585 LIN +Particle: gamma Event: 82 -Number of tracker hits in this event = 3 - 82 112.646 1790 2 0 150.567 178.316 -146.25 - 82 70.2709 1658 2 1 151.806 178.399 -144.85 - 82 93.7836 1659 2 1 151.951 178.458 -144.663 -Number of digits in this event = 2 -Using G4ParticleGun ... -4.98668 LIN -gamma +Number of tracker hits in this event: 1 + 82 141.513 937 4 0 -100.59 7.65 -86.2032 +Number of digits in this event: 4 +Using G4ParticleGun... +Particle energy: 9.77808 LIN +Particle: gamma Event: 83 -Number of tracker hits in this event = 19 - 83 433.458 892 3 1 -1.5988 36.1007 -114.45 - 83 328.836 1080 3 0 -1.59845 36.1006 -115.85 - 83 107.516 892 2 1 -1.59164 36.0972 -144.45 - 83 254.108 1080 2 0 -1.58911 36.0971 -145.85 - 83 327.41 892 1 1 -1.53999 36.0965 -174.45 - 83 236.152 1080 1 0 -1.53672 36.0959 -175.85 - 83 105.039 892 0 1 -1.46371 36.086 -204.45 - 83 279.037 1080 0 0 -1.46306 36.0856 -205.85 - 83 151.957 893 0 1 -1.44593 36.0849 -204.45 - 83 62.7841 1081 0 0 -1.27559 36.3773 -205.85 - 83 88.9858 1082 0 0 -1.26486 36.45 -205.985 - 83 99.4848 1083 0 0 -1.3441 36.65 -206.088 - 83 63.1431 1084 0 0 -1.3209 36.85 -206.132 - 83 218.909 1079 1 0 -1.62348 36.05 -176.043 - 83 237.933 891 2 1 -1.69877 36.0798 -144.45 - 83 117.935 894 0 1 -1.18391 36.0048 -204.45 - 83 205.506 1079 0 0 -1.15032 35.992 -205.85 - 83 164.893 893 3 1 -1.45 36.53 -114.554 - 83 380.309 894 3 1 -1.25 36.765 -114.571 -Number of digits in this event = 14 -Using G4ParticleGun ... -4.79277 LIN -gamma +Number of tracker hits in this event: 189 + 83 225.954 974 11 1 14.8962 -22.829 125.55 + 83 247.352 786 11 0 14.8963 -22.8292 124.15 + 83 233.007 974 10 1 14.8947 -22.8335 95.55 + 83 109.356 786 10 0 14.8951 -22.8332 94.15 + 83 380.755 974 9 1 14.9025 -22.827 65.55 + 83 530.82 786 9 0 14.9019 -22.8265 64.15 + 83 105.063 974 8 1 14.8907 -22.8135 35.55 + 83 143.557 786 8 0 14.8886 -22.8133 34.15 + 83 102.866 973 7 1 14.8493 -22.8074 5.55 + 83 461.364 786 7 0 14.8469 -22.8072 4.15 + 83 152.03 973 6 1 14.7921 -22.8032 -24.45 + 83 103.551 786 6 0 14.7901 -22.8039 -25.85 + 83 95.6645 973 5 1 14.7497 -22.8157 -54.45 + 83 109.836 786 5 0 14.7512 -22.8158 -55.85 + 83 117.857 973 4 1 14.7792 -22.8221 -84.45 + 83 123.237 786 4 0 14.7806 -22.8213 -85.85 + 83 125.453 973 3 1 14.8063 -22.8014 -114.45 + 83 172.048 786 3 0 14.8057 -22.8015 -115.85 + 83 99.5124 973 2 1 14.7953 -22.7939 -144.45 + 83 132.41 786 2 0 14.798 -22.7944 -145.85 + 83 129.622 974 1 1 14.8556 -22.8055 -174.45 + 83 148.226 786 1 0 14.8579 -22.8079 -175.85 + 83 107.628 974 0 1 14.8994 -22.8566 -204.45 + 83 432.19 785 0 0 14.9019 -22.8598 -205.85 + 83 22.0077 1279 1 0 38.2095 75.85 -176.054 + 83 121.785 971 8 1 14.3536 -22.2091 35.55 + 83 209.465 788 8 0 14.4181 -22.315 34.15 + 83 50.8588 977 7 1 15.4586 -24.5371 5.55 + 83 142.071 976 7 1 15.45 -24.5478 5.45762 + 83 111.402 776 7 0 15.3226 -24.72 4.15 + 83 98.1989 964 6 1 13.0449 -28.199 -24.45 + 83 181.011 757 6 0 12.8813 -28.4645 -25.85 + 83 182.081 945 5 1 9.21104 -33.896 -54.45 + 83 186.823 729 5 0 8.91921 -34.1277 -55.85 + 83 142.643 913 4 1 2.76217 -39.4058 -84.45 + 83 0.712144 702 4 0 2.65415 -39.6498 -85.85 + 83 128.878 701 4 0 2.65405 -39.65 -85.8513 + 83 115.103 902 3 1 0.596326 -44.9348 -114.45 + 83 168.226 674 3 0 0.614461 -45.0583 -115.85 + 83 294.681 905 2 1 1.23337 -47.0973 -144.45 + 83 72.5199 664 2 0 0.978078 -47.2274 -145.85 + 83 34.791 663 2 0 0.93136 -47.25 -146.108 + 83 196.49 881 1 1 -3.66654 -49.6606 -174.45 + 83 96.6067 652 1 0 -3.74326 -49.5737 -175.85 + 83 52.7429 865 0 1 -7.03235 -48.3054 -204.45 + 83 88.1137 864 0 1 -7.05 -48.3109 -204.605 + 83 111.241 658 0 0 -7.18517 -48.3577 -205.85 + 83 1.63445 869 2 1 -6.05547 5.88807 -144.85 + 83 209.168 870 2 1 -6.05 5.93544 -144.773 + 83 64.1139 661 2 0 1.13889 -47.7922 -145.85 + 83 73.3421 660 2 0 1.13572 -47.8501 -146.031 + 83 6.02551 841 1 1 -11.85 -59.8727 -174.816 + 83 33.8501 605 1 0 -13.0674 -59.0007 -175.85 + 83 330.941 459 6 0 -51.4427 -88.079 -26.25 + 83 121.111 639 6 1 -52.1832 -88.2036 -24.8497 + 83 153.68 952 8 1 10.5534 -25.0514 35.55 + 83 88.2668 951 8 1 10.45 -25.3375 35.2654 + 83 54.9304 950 8 1 10.25 -25.5738 35.2057 + 83 31.4649 753 8 0 8.48875 -29.3214 34.1499 + 83 31.7983 752 8 0 8.4415 -29.45 34.1379 + 83 247.71 928 8 1 5.76861 -36.4561 35.15 + 83 203.645 701 8 0 2.44086 -39.6835 34.15 + 83 49.3106 700 8 0 2.3464 -39.85 34.1015 + 83 87.1186 699 8 0 2.29131 -40.0502 34.1121 + 83 110.744 698 8 0 2.27372 -40.2504 34.1272 + 83 73.5653 918 8 1 3.77214 -45 35.15 + 83 134.091 919 8 1 3.85016 -45.1455 35.1871 + 83 170.937 920 8 1 4.05003 -45.4649 35.2098 + 83 54.1834 666 8 0 6.44715 -46.7398 34.15 + 83 1.36468 954 8 1 11.0451 -48.2715 35.15 + 83 68.2178 955 8 1 11.05 -48.2731 35.1508 + 83 77.7366 956 8 1 11.25 -48.3557 35.1805 + 83 133.946 957 8 1 11.45 -48.3457 35.1748 + 83 133.709 660 8 0 13.8745 -48.0135 34.1499 + 83 457.594 661 8 0 14.0162 -47.85 34.0203 + 83 140.579 616 13 0 73.6147 -56.8425 183.75 + 83 2.14983 615 13 0 73.6056 -56.8501 183.761 + 83 43.0022 929 8 1 5.85005 -36.9746 35.325 + 83 132.949 785 10 0 14.9693 -22.9232 94.15 + 83 115.219 976 9 1 15.3163 -22.6736 65.55 + 83 120.044 978 8 1 15.7631 -22.4294 35.55 + 83 118.539 982 7 1 16.5039 -22.6939 5.55 + 83 119.446 985 6 1 17.2363 -22.4066 -24.45 + 83 138.693 788 6 0 17.2474 -22.4212 -25.85 + 83 122.001 987 5 1 17.5187 -22.5131 -54.45 + 83 169.829 787 5 0 17.5823 -22.5232 -55.85 + 83 440.332 994 4 1 18.9518 -22.6266 -84.45 + 83 249.907 787 4 0 18.9641 -22.6175 -85.85 + 83 462.968 995 3 1 19.1625 -22.2986 -114.45 + 83 280.398 788 3 0 19.1628 -22.2951 -115.85 + 83 120.316 994 2 1 19.0172 -22.1665 -144.45 + 83 119.894 789 2 0 19.0209 -22.1948 -145.85 + 83 109.733 994 1 1 18.9452 -22.9469 -174.45 + 83 299.17 785 1 0 18.9551 -23.0281 -175.85 + 83 132.914 784 1 0 18.9581 -23.05 -176.221 + 83 132.369 995 0 1 19.0961 -24.7647 -204.45 + 83 241.148 775 0 0 19.087 -24.8647 -205.85 + 83 3.67436 1378 3 1 95.7542 -14.2669 -114.45 + 83 272.584 1377 3 1 95.7497 -14.2559 -114.46 + 83 135.901 1572 5 1 134.55 -67.3704 -54.735 + 83 67.1093 567 6 0 133.484 -66.6495 -26.25 + 83 51.1582 996 3 1 19.25 -22.5452 -114.639 + 83 2.85835 787 3 0 18.9132 -22.4536 -115.85 + 83 32.0267 997 3 1 19.6208 -22.9972 -114.85 + 83 177.906 998 3 1 19.65 -23.0649 -114.82 + 83 82.303 1016 1 1 23.3855 -23.5959 -174.688 + 83 231.985 782 1 0 23.4304 -23.599 -175.851 + 83 402.354 1019 0 1 23.8941 -23.907 -204.45 + 83 113.005 780 0 0 24.0466 -23.8696 -205.85 + 83 52.3909 781 1 0 23.4349 -23.65 -176.06 + 83 112.155 1016 0 1 23.3958 -26.8437 -204.45 + 83 10.3384 765 0 0 23.4131 -27.0442 -205.85 + 83 115.447 764 0 0 23.4136 -27.0501 -205.893 + 83 36.6774 1012 0 1 22.5246 -24.4342 -204.45 + 83 114.638 1011 0 1 22.45 -24.5014 -204.564 + 83 35.3094 772 0 0 21.5747 -25.5756 -205.85 + 83 97.6689 771 0 0 21.521 -25.65 -205.938 + 83 26.723 770 0 0 21.3808 -25.85 -206.191 + 83 4.45142 554 0 0 15.9941 -69.2261 -206.25 + 83 84.572 553 0 0 15.9961 -69.25 -206.236 + 83 67.1409 552 0 0 16.0149 -69.45 -206.148 + 83 115.162 551 0 0 16.1054 -69.6502 -206.045 + 83 53.5435 550 0 0 16.1891 -69.85 -205.942 + 83 3.44998 549 0 0 16.2336 -70.05 -205.863 + 83 184.843 981 0 1 16.3485 -71.3704 -204.85 + 83 90.5932 810 4 0 14.8021 -18.05 -86.1851 + 83 247.769 993 4 1 18.85 -22.1579 -84.6167 + 83 72.0826 989 6 1 18.0352 -22.524 -24.4507 + 83 34.7157 990 6 1 18.05 -22.5425 -24.7028 + 83 129.505 787 6 0 18.1473 -22.6141 -25.85 + 83 112.629 1001 5 1 20.304 -24.3068 -54.45 + 83 243.429 778 5 0 20.4788 -24.4298 -55.85 + 83 43.1822 777 5 0 20.5085 -24.45 -56.0988 + 83 126.925 1018 4 1 23.798 -26.7856 -84.45 + 83 2.22661 1019 4 1 23.85 -26.8022 -84.8396 + 83 123.376 766 4 0 24.0014 -26.8214 -85.85 + 83 142.95 1037 3 1 27.517 -27.7957 -114.45 + 83 123.319 760 3 0 27.7196 -27.9037 -115.85 + 83 92.786 1060 2 1 32.1104 -29.4968 -144.45 + 83 111.307 753 2 0 32.258 -29.318 -145.85 + 83 107.102 1077 1 1 35.5273 -26.6274 -174.45 + 83 152.813 766 1 0 35.5114 -26.7512 -175.85 + 83 137.16 1076 0 1 35.2649 -28.4889 -204.45 + 83 14.9588 1075 0 1 35.25 -28.5598 -204.793 + 83 18.1685 756 0 0 35.2227 -28.8334 -205.85 + 83 149.563 755 0 0 35.2212 -28.8501 -205.916 + 83 174.158 975 6 1 15.1869 -24.0576 -24.45 + 83 110.422 779 6 0 15.2406 -24.2011 -25.8502 + 83 111.622 959 5 1 12.0461 -26.0909 -54.45 + 83 116.488 770 5 0 11.5693 -25.9456 -55.85 + 83 66.256 907 4 1 1.56021 -22.3966 -84.45 + 83 53.0399 906 4 1 1.44997 -22.4327 -84.6679 + 83 134.118 838 3 1 -12.44 -27.0655 -114.45 + 83 7.72831 762 3 0 -12.2688 -27.6407 -115.85 + 83 200.547 761 3 0 -12.2658 -27.6502 -115.873 + 83 99.4854 853 2 1 -9.37349 -40.8182 -144.45 + 83 95.8093 852 2 1 -9.45 -41.0775 -144.628 + 83 55.9481 686 2 0 -10.0309 -42.7033 -145.85 + 83 211.846 685 2 0 -10.0879 -42.85 -145.962 + 83 59.9133 684 2 0 -10.1743 -43.0503 -146.12 + 83 33.3512 318 2 0 -47.0807 -116.459 -146.25 + 83 77.4462 317 2 0 -47.1308 -116.55 -146.184 + 83 114.452 316 2 0 -47.2423 -116.75 -146.083 + 83 85.4258 315 2 0 -47.351 -116.95 -145.96 + 83 25.0028 658 2 1 -48.4089 -118.721 -144.85 + 83 181.844 657 2 1 -48.45 -118.795 -144.804 + 83 130.883 656 2 1 -48.65 -119.265 -144.599 + 83 217.108 290 3 0 -69.7257 -122.102 -116.25 + 83 57.9891 544 3 1 -71.0657 -122.115 -114.85 + 83 149.137 543 3 1 -71.25 -122.115 -114.688 + 83 14.9509 542 3 1 -71.45 -122.135 -114.494 + 83 135.397 171 4 0 -79.7744 -145.761 -86.2497 + 83 256.155 170 4 0 -79.8633 -145.95 -86.0403 + 83 270.805 499 4 1 -80.1766 -147.268 -84.85 + 83 257.696 972 3 1 14.5415 -23.0123 -114.45 + 83 251.395 785 3 0 14.538 -23.0134 -115.85 + 83 100.946 971 2 1 14.377 -23.1171 -144.45 + 83 303.999 784 2 0 14.3662 -23.1211 -145.85 + 83 130.147 970 1 1 14.0948 -23.133 -174.45 + 83 284.126 970 0 1 14.0894 -22.5431 -204.45 + 83 115.969 787 0 0 14.1169 -22.5202 -205.85 + 83 116.126 972 2 1 14.5232 -23.0585 -144.45 + 83 16.829 972 1 1 14.4502 -23.0517 -174.45 + 83 109.793 971 1 1 14.45 -23.0516 -174.484 + 83 67.9428 938 0 0 80.514 7.85 -206.189 + 83 117.612 937 0 0 80.6305 7.65 -206.062 + 83 85.8051 571 2 1 -65.65 -2.89451 -144.581 + 83 75.3941 567 2 1 -66.45 -5.32523 -144.526 + 83 21.5694 566 2 1 -66.65 -5.89871 -144.53 +Number of digits in this event: 88 +Using G4ParticleGun... +Particle energy: 3.27418 LIN +Particle: gamma Event: 84 -Number of tracker hits in this event = 2 - 84 227.965 431 0 1 -93.75 -165.554 -204.768 - 84 98.1444 217 2 0 -82.9745 -136.661 -146.25 -Number of digits in this event = 3 -Using G4ParticleGun ... -1.59442 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 5.79932 LIN +Particle: gamma Event: 85 -Number of tracker hits in this event = 121 - 85 296.743 920 9 1 4.09909 15.1734 65.55 - 85 409.882 975 9 0 4.10033 15.175 64.15 - 85 243.498 920 8 1 4.13457 15.2131 35.55 - 85 97.8764 975 8 0 4.15549 15.2114 34.15 - 85 142.436 922 7 1 4.63734 15.1772 5.55 - 85 125.361 975 7 0 4.65636 15.177 4.15 - 85 102.027 924 6 1 5.027 15.1746 -24.45 - 85 467.751 975 6 0 5.04046 15.1788 -25.85 - 85 101.721 926 5 1 5.31921 15.2698 -54.45 - 85 146.833 976 5 0 5.33063 15.2834 -55.85 - 85 203.333 927 4 1 5.52835 15.5904 -84.45 - 85 124.35 977 4 0 5.53568 15.5979 -85.85 - 85 167.788 928 3 1 5.68409 15.7588 -114.45 - 85 207.681 978 3 0 5.69126 15.7723 -115.85 - 85 109.783 928 2 1 5.79175 16.0359 -144.45 - 85 137.703 980 2 0 5.80027 16.0548 -145.85 - 85 134.496 929 1 1 5.98632 16.4701 -174.45 - 85 188.524 982 1 0 5.9894 16.4845 -175.85 - 85 116.938 929 0 1 6.04413 16.7621 -204.45 - 85 219.396 983 0 0 6.04806 16.7761 -205.85 - 85 57.0048 952 6 0 8.31603 10.5897 -26.25 - 85 258.109 974 6 0 5.09192 15.05 -26.0866 - 85 200.785 973 6 0 4.94208 14.85 -26.0885 - 85 124.053 1081 4 1 36.3157 -53.5245 -84.45 - 85 224.23 976 6 0 5.1986 15.25 -25.9366 - 85 308.425 920 7 1 4.17378 15.2661 5.55 - 85 454.466 976 7 0 4.13596 15.2535 4.15 - 85 111.97 916 6 1 3.36421 14.9732 -24.45 - 85 108.322 919 5 1 3.9437 13.6581 -54.45 - 85 109.963 967 5 0 3.96583 13.5285 -55.85 - 85 118.298 922 4 1 4.54775 10.8572 -84.45 - 85 120.75 953 4 0 4.58322 10.7498 -85.85 - 85 119.283 925 3 1 5.05193 8.60382 -114.45 - 85 55.3835 942 3 0 5.04632 8.46966 -115.85 - 85 59.9246 941 3 0 5.04544 8.45 -116.052 - 85 105.043 924 2 1 4.91343 5.71467 -144.45 - 85 139.035 927 2 0 4.88811 5.59169 -145.85 - 85 162.212 921 1 1 4.44043 3.11272 -174.45 - 85 124.221 914 1 0 4.38276 3.01813 -175.85 - 85 117.391 915 0 1 3.16471 1.24363 -204.45 - 85 173.414 905 0 0 3.08577 1.1379 -205.85 - 85 161.502 915 6 1 3.08217 16.3923 -24.45 - 85 118.589 981 6 0 3.03911 16.3988 -25.85 - 85 110.596 911 5 1 2.34881 16.4914 -54.45 - 85 120.453 981 5 0 2.31434 16.4489 -55.85 - 85 114.998 907 4 1 1.56331 15.3348 -84.45 - 85 100.814 976 4 0 1.55328 15.2888 -85.85 - 85 115.328 905 3 1 1.21372 14.5614 -114.45 - 85 132.58 972 3 0 1.21936 14.5288 -115.85 - 85 110.935 904 2 1 0.951762 13.8163 -144.45 - 85 337.297 968 2 0 0.928331 13.7549 -145.85 - 85 195.482 902 1 1 0.464634 12.3533 -174.45 - 85 116.587 961 1 0 0.468161 12.2816 -175.85 - 85 125.657 901 0 1 0.358786 10.7585 -204.45 - 85 34.0039 953 0 0 0.317607 10.6618 -205.85 - 85 65.0194 952 0 0 0.312962 10.65 -206.013 - 85 118.991 977 8 0 4.10926 15.487 34.15 - 85 133.464 919 7 1 3.90349 15.3507 5.55 - 85 110.497 921 6 1 4.33357 15.1729 -24.45 - 85 114.563 924 5 1 4.98619 16.0339 -54.45 - 85 128.634 980 5 0 4.99301 16.0791 -55.85 - 85 179.717 925 4 1 5.07864 17.0613 -84.45 - 85 130.593 985 4 0 5.04489 17.0981 -85.85 - 85 218.052 921 3 1 4.28287 17.8257 -114.45 - 85 118.378 989 3 0 4.21127 17.8875 -115.85 - 85 93.8869 913 2 1 2.82025 19.0284 -144.45 - 85 142.77 995 2 0 2.71546 19.1221 -145.85 - 85 193.192 901 1 1 0.45 21.0283 -174.672 - 85 135.058 1005 1 0 0.369737 21.0609 -175.85 - 85 92.9051 892 0 1 -1.63393 21.942 -204.45 - 85 54.9026 891 0 1 -1.65 21.944 -204.739 - 85 96.0036 1009 0 0 -1.71616 21.9491 -205.85 - 85 230.056 1003 1 0 0.658653 20.7983 -175.85 - 85 339.993 919 2 1 3.98602 18.6495 -144.45 - 85 248.646 993 2 0 3.76708 18.6798 -145.85 - 85 119.742 887 1 1 -2.59689 18.2883 -174.45 - 85 0.126152 988 1 0 -2.50378 17.6507 -175.85 - 85 125.346 987 1 0 -2.50369 17.65 -175.851 - 85 344.033 886 0 1 -2.77938 5.6249 -204.45 - 85 54.0293 887 0 1 -2.64979 5.27818 -204.708 - 85 2.96929 919 0 0 -2.1613 3.8605 -205.85 - 85 79.9635 918 0 0 -2.15752 3.85 -205.859 - 85 78.913 917 0 0 -2.07696 3.65 -206.013 - 85 18.9657 916 0 0 -1.98109 3.45 -206.192 - 85 64.5155 751 0 0 38.7172 -29.7256 -206.25 - 85 142.124 750 0 0 38.9 -29.85 -206.157 - 85 117.726 749 0 0 39.1912 -30.0502 -206.047 - 85 79.1939 748 0 0 39.5912 -30.2503 -206.117 - 85 163.227 999 2 1 19.8584 12.8506 -144.85 - 85 116.667 998 2 1 19.85 12.8115 -144.828 - 85 135.312 905 1 1 1.1956 20.7168 -174.45 - 85 126.69 1002 1 0 1.00753 20.6111 -175.85 - 85 29.6432 885 0 1 -2.85 17.2652 -204.756 - 85 42.07 984 0 0 -3.0753 16.88 -205.85 - 85 8.47806 939 7 0 -25.054 7.85435 3.75 - 85 138.495 938 7 0 -25.0756 7.85 3.7715 - 85 35.8714 937 7 0 -25.2933 7.65 4.03998 - 85 124.844 772 7 1 -25.4718 6.76134 5.15018 - 85 72.5724 826 8 0 -60.1267 -14.7415 33.75 - 85 92.8432 825 8 0 -60.2925 -14.85 33.8169 - 85 71.8857 824 8 0 -60.4476 -15.05 33.8895 - 85 112.196 823 8 0 -60.4763 -15.25 33.9724 - 85 68.2501 822 8 0 -60.4256 -15.4502 33.8622 - 85 24.0681 1223 8 0 75.4873 64.658 33.7501 - 85 245.844 929 3 1 5.87828 15.1432 -114.45 - 85 37.2648 975 3 0 5.97718 15.0567 -115.85 - 85 102.474 974 3 0 5.98375 15.05 -115.944 - 85 0.0090282 940 2 1 8.05001 12.7342 -144.45 - 85 103.245 939 2 1 8.05 12.7342 -144.45 - 85 122.496 962 2 0 7.7309 12.5589 -145.85 - 85 133.101 916 1 1 3.41565 8.35478 -174.45 - 85 108.937 939 1 0 3.33587 7.91978 -175.85 - 85 50.8673 938 1 0 3.32274 7.84995 -176.068 - 85 156.839 893 0 1 -1.32701 -0.807587 -204.45 - 85 84.1857 893 0 0 -1.21193 -1.33393 -205.85 - 85 46.9671 892 0 0 -1.18781 -1.45014 -206.15 - 85 26.0932 979 3 0 5.7676 15.85 -116.19 - 85 334.889 1211 3 0 16.0912 62.2684 -116.25 - 85 23.3314 983 3 1 16.8176 62.2742 -114.85 - 85 101.603 984 3 1 16.8502 62.2754 -114.787 - 85 18.4217 391 3 1 -101.937 153.469 -114.45 -Number of digits in this event = 58 -Using G4ParticleGun ... -7.97114 LIN -gamma +Number of tracker hits in this event: 1 + 85 152.623 1029 4 0 147.56 25.8972 -86.2499 +Number of digits in this event: 3 +Using G4ParticleGun... +Particle energy: 1.96306 LIN +Particle: gamma Event: 86 -Number of tracker hits in this event = 55 - 86 56.3941 385 9 1 -103.14 -76.4087 65.2365 - 86 231.406 518 9 0 -103.14 -76.4092 64.15 - 86 236.137 385 8 1 -103.134 -76.4 35.55 - 86 218.866 518 8 0 -103.131 -76.3986 34.15 - 86 106.937 385 7 1 -103.077 -76.36 5.55 - 86 296.969 518 7 0 -103.068 -76.3516 4.15 - 86 275.274 385 6 1 -103.035 -76.2214 -24.45 - 86 112.502 519 6 0 -103.046 -76.2174 -25.85 - 86 225.8 384 5 1 -103.3 -76.196 -54.45 - 86 115.65 519 5 0 -103.309 -76.1895 -55.85 - 86 210.728 383 4 1 -103.479 -76.0992 -84.45 - 86 115.127 519 4 0 -103.491 -76.1039 -85.85 - 86 220.898 381 3 1 -103.769 -76.1269 -114.45 - 86 123.246 519 3 0 -103.762 -76.1345 -115.85 - 86 256.712 382 2 1 -103.675 -76.2796 -144.45 - 86 417.703 518 2 0 -103.655 -76.2764 -145.85 - 86 99.554 383 1 1 -103.408 -76.12 -174.45 - 86 118.853 519 1 0 -103.41 -76.1013 -175.85 - 86 284.738 382 0 1 -103.551 -75.7623 -204.45 - 86 110.984 383 0 1 -103.55 -75.7608 -204.519 - 86 113.315 521 0 0 -103.529 -75.736 -205.85 - 86 145.635 1681 11 1 156.35 111.715 125.156 - 86 99.7894 170 4 1 -145.952 -122.134 -84.85 - 86 207.324 955 3 0 -13.956 11.05 -116.208 - 86 120.234 1138 4 0 70.4929 47.65 -86.2401 - 86 54.8481 1137 4 0 70.7762 47.65 -86.193 - 86 235.377 602 7 1 -59.4598 71.4821 5.15 - 86 219.516 842 14 0 -98.1213 -11.5063 213.75 - 86 130.54 384 7 1 -103.16 -76.3866 5.55 - 86 218.811 518 6 0 -103.116 -76.4392 -25.85 - 86 129.119 518 5 0 -103.241 -76.4202 -55.85 - 86 140.17 518 4 0 -103.455 -76.4064 -85.85 - 86 104.972 383 3 1 -103.498 -76.0014 -114.45 - 86 172.772 520 3 0 -103.486 -76.0137 -115.85 - 86 414.773 384 2 1 -103.281 -76.2306 -144.45 - 86 135.157 519 2 0 -103.239 -76.2449 -145.85 - 86 104.975 387 1 1 -102.605 -76.5201 -174.45 - 86 261.939 517 1 0 -102.561 -76.5036 -175.85 - 86 263.183 392 0 1 -101.647 -76.048 -204.45 - 86 157.48 520 0 0 -101.613 -76.0198 -205.85 - 86 0.969835 1599 4 0 -142.097 140.143 -86.2498 - 86 7.62055 1600 4 0 -142.098 140.15 -86.2487 - 86 35.1182 1088 2 0 -66.1631 37.6704 -146.25 - 86 120.818 517 8 0 -103.171 -76.45 33.8559 - 86 370.26 384 1 1 -103.302 -76.7219 -174.45 - 86 761.552 516 1 0 -103.322 -76.7299 -175.85 - 86 359.825 515 0 0 -103.762 -76.999 -205.85 - 86 48.6518 516 0 0 -103.753 -76.8449 -205.85 - 86 68.0183 515 1 0 -103.297 -76.85 -176.022 - 86 91.249 394 0 1 -101.208 -76.1556 -204.45 - 86 125.455 519 0 0 -101.09 -76.1269 -205.85 - 86 118.722 382 1 1 -103.703 -76.5131 -174.45 - 86 115.873 377 0 1 -104.667 -77.0116 -204.45 - 86 105.291 121 13 1 -155.786 -66.1816 185.15 - 86 202.374 120 13 1 -155.95 -66.229 185.329 -Number of digits in this event = 36 -Using G4ParticleGun ... -6.45744 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 2.35146 LIN +Particle: gamma Event: 87 -Number of tracker hits in this event = 2 - 87 59.483 412 3 0 118.684 -97.6429 -116.25 - 87 96.9747 1482 4 1 116.55 -136.87 -84.662 -Number of digits in this event = 2 -Using G4ParticleGun ... -4.27043 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 8.95569 LIN +Particle: gamma Event: 88 -Number of tracker hits in this event = 0 -Number of digits in this event = 3 -Using G4ParticleGun ... -3.85437 LIN -gamma +Number of tracker hits in this event: 35 + 88 481.657 1427 3 1 105.625 -105.276 -114.45 + 88 259.694 374 3 0 105.624 -105.276 -115.85 + 88 121.96 1427 2 1 105.586 -105.277 -144.45 + 88 139.56 374 2 0 105.584 -105.278 -145.85 + 88 143.841 1426 1 1 105.53 -105.291 -174.45 + 88 126.386 374 1 0 105.526 -105.292 -175.85 + 88 109.587 1426 0 1 105.451 -105.297 -204.45 + 88 136.5 374 0 0 105.447 -105.298 -205.85 + 88 67.7348 602 2 0 21.8732 -59.5305 -146.25 + 88 76.7018 603 2 0 21.8079 -59.45 -146.033 + 88 11.382 1006 2 1 21.2712 -59.403 -144.85 + 88 94.7281 1005 2 1 21.25 -59.4028 -144.805 + 88 3.07009 1004 2 1 21.05 -59.3989 -144.46 + 88 51.9271 450 3 0 -1.89822 -89.9229 -116.25 + 88 50.4067 449 3 0 -2.01222 -90.15 -116.032 + 88 76.0209 448 3 0 -2.02865 -90.3504 -115.932 + 88 57.9566 447 3 0 -2.02193 -90.5504 -115.943 + 88 63.0044 446 3 0 -2.01267 -90.7506 -115.991 + 88 57.2407 445 3 0 -2.004 -90.9504 -116.054 + 88 64.7481 444 3 0 -1.91305 -91.15 -116.061 + 88 87.0574 443 3 0 -1.80015 -91.35 -116.07 + 88 91.5288 442 3 0 -1.62732 -91.55 -116.083 + 88 59.1355 441 3 0 -1.471 -91.75 -116.112 + 88 63.8021 440 3 0 -1.3667 -91.9504 -116.098 + 88 88.9771 439 3 0 -1.27944 -92.15 -116.062 + 88 181.697 438 3 0 -1.03693 -92.35 -116.079 + 88 24.22 437 3 0 -0.907948 -92.5508 -116.212 + 88 162.88 284 3 0 -54.3519 -123.318 -116.25 + 88 80.715 283 3 0 -54.8015 -123.35 -116.122 + 88 132.387 1426 2 1 105.547 -104.6 -144.45 + 88 136.454 377 2 0 105.445 -104.562 -145.85 + 88 162.392 1415 1 1 103.344 -103.451 -174.45 + 88 254.154 383 1 0 103.241 -103.43 -175.85 + 88 143.027 1400 0 1 100.31 -104.116 -204.45 + 88 187.933 379 0 0 100.249 -104.22 -205.85 +Number of digits in this event: 18 +Using G4ParticleGun... +Particle energy: 1.04406 LIN +Particle: gamma Event: 89 -Number of tracker hits in this event = 41 - 89 477.671 175 6 1 -145.059 30.0995 -24.45 - 89 234.946 1050 6 0 -145.058 30.1063 -25.85 - 89 108.947 175 5 1 -145.068 30.2043 -54.45 - 89 118.791 1050 5 0 -145.063 30.2091 -55.85 - 89 134.53 176 4 1 -144.944 30.2374 -84.45 - 89 141.284 1050 4 0 -144.947 30.2317 -85.85 - 89 112.207 175 3 1 -145.011 30.122 -114.45 - 89 167.895 1050 3 0 -145.014 30.1101 -115.85 - 89 141.77 175 2 1 -145.124 29.7693 -144.45 - 89 114.682 1048 2 0 -145.065 29.795 -145.85 - 89 133.357 181 1 1 -143.809 30.2806 -174.45 - 89 151.743 1051 1 0 -143.758 30.3039 -175.85 - 89 119.894 187 0 1 -142.737 30.805 -204.45 - 89 132.526 1053 0 0 -142.679 30.8113 -205.85 - 89 237.249 174 0 1 -145.301 29.1822 -204.45 - 89 527.713 173 0 1 -145.35 29.3071 -204.665 - 89 147.331 172 0 1 -145.55 29.7656 -204.624 - 89 287.051 175 1 1 -144.988 30.1101 -174.45 - 89 277.463 1050 1 0 -145.015 30.1472 -175.85 - 89 131.493 1055 0 0 -145.529 31.1352 -205.85 - 89 152.876 182 0 1 -143.568 29.6133 -204.45 - 89 103.673 1048 0 0 -143.676 29.6713 -205.85 - 89 184.456 176 1 1 -144.949 30.081 -174.484 - 89 171.145 1044 1 0 -144.931 28.9982 -175.85 - 89 127.132 1043 1 0 -144.945 28.85 -175.997 - 89 60.5216 1042 1 0 -145.159 28.65 -176.145 - 89 82.7722 1041 1 0 -145.23 28.45 -176.157 - 89 92.2835 1040 1 0 -145.205 28.25 -176.224 - 89 77.5036 1039 1 0 -145.151 28.0499 -176.108 - 89 113.309 1038 1 0 -145.104 27.85 -176.192 - 89 95.377 173 5 1 -145.519 29.6855 -54.45 - 89 112.485 1048 5 0 -145.569 29.6649 -55.85 - 89 121.603 168 4 1 -146.522 29.2404 -84.45 - 89 98.6971 1045 4 0 -146.565 29.2366 -85.85 - 89 169.647 163 3 1 -147.385 29.1557 -114.45 - 89 100.119 1045 3 0 -147.407 29.1433 -115.85 - 89 93.7035 160 2 1 -147.968 28.9907 -144.45 - 89 252.293 1044 2 0 -148.016 28.9857 -145.85 - 89 157.094 155 1 1 -149.013 28.8829 -174.45 - 89 198.943 147 0 1 -150.551 28.4611 -204.45 - 89 106.86 1041 0 0 -150.605 28.405 -205.85 -Number of digits in this event = 26 -Using G4ParticleGun ... -3.17717 LIN -gamma +Number of tracker hits in this event: 10 + 89 267.971 1234 2 1 66.9043 79.2765 -144.45 + 89 226.527 1296 2 0 66.8875 79.2656 -145.85 + 89 165.412 1231 1 1 66.4422 78.9217 -174.45 + 89 104.434 1293 1 0 66.342 78.8271 -175.85 + 89 146.405 1221 0 1 64.3304 76.8723 -204.45 + 89 116.652 1283 0 0 64.2023 76.8013 -205.85 + 89 116.688 1234 1 1 67.03 79.3779 -174.45 + 89 127.589 1296 1 0 67.0356 79.3827 -175.85 + 89 135.854 1235 0 1 67.1333 79.4641 -204.45 + 89 117.27 1297 0 0 67.1294 79.472 -205.85 +Number of digits in this event: 7 +Using G4ParticleGun... +Particle energy: 7.87264 LIN +Particle: gamma Event: 90 -Number of tracker hits in this event = 3 - 90 3.79411 318 2 0 95.1344 -116.438 -146.25 - 90 20.0306 481 2 0 126.125 -83.6837 -146.25 - 90 183.468 946 3 1 9.38842 -30.6045 -114.85 -Number of digits in this event = 3 -Using G4ParticleGun ... -5.05858 LIN -gamma +Number of tracker hits in this event: 0 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 9.5898 LIN +Particle: gamma Event: 91 -Number of tracker hits in this event = 34 - 91 230.237 702 4 1 -39.4909 72.6927 -84.45 - 91 205.597 1263 4 0 -39.4921 72.6905 -85.85 - 91 385.395 702 3 1 -39.5169 72.642 -114.45 - 91 148.687 1262 3 0 -39.5152 72.637 -115.85 - 91 109.701 703 2 1 -39.4478 72.5549 -144.45 - 91 129.769 1262 2 0 -39.453 72.5553 -145.85 - 91 395.883 702 1 1 -39.5313 72.5609 -174.45 - 91 221.394 1262 1 0 -39.5387 72.5621 -175.85 - 91 215.271 701 0 1 -39.6639 72.5722 -204.45 - 91 243.285 1262 0 0 -39.6694 72.5729 -205.85 - 91 65.6204 1233 1 0 -6.42451 66.7863 -176.25 - 91 135.037 1234 1 0 -6.24583 66.85 -176.101 - 91 77.963 890 1 1 -2.04484 67.9361 -174.85 - 91 12.727 891 1 1 -1.84997 68.0827 -174.838 - 91 31.3078 1250 1 0 0.745317 70.1919 -175.85 - 91 65.5622 1251 1 0 0.807628 70.25 -175.882 - 91 62.6034 1252 1 0 0.886526 70.45 -175.997 - 91 167.089 1253 1 0 0.900859 70.651 -176.03 - 91 71.6942 1254 1 0 0.933917 70.85 -176.075 - 91 126.232 1255 1 0 0.907408 71.05 -176.074 - 91 198.437 1256 1 0 0.784733 71.25 -176.071 - 91 103.224 900 1 1 0.0639159 73.0965 -174.85 - 91 71.4264 1266 1 0 -0.994504 73.3142 -175.85 - 91 208.97 1263 3 0 -39.5026 72.7044 -115.85 - 91 111.906 702 2 1 -39.5671 72.6788 -144.45 - 91 126.171 1263 2 0 -39.5697 72.6791 -145.85 - 91 167.543 1263 1 0 -39.6312 72.691 -175.85 - 91 1.37307 1263 0 0 -39.6638 72.65 -205.85 - 91 233.872 1472 0 0 -74.8795 114.55 -206.049 - 91 219.66 1187 1 0 -31.2828 57.5852 -176.25 - 91 11.4481 1791 1 0 118.829 178.5 -176.25 - 91 230.464 1792 1 0 118.863 178.55 -176.236 - 91 600.638 1496 1 1 119.482 178.608 -174.85 - 91 32.474 1497 1 1 119.55 178.624 -174.691 -Number of digits in this event = 22 -Using G4ParticleGun ... -7.7452 LIN -gamma +Number of tracker hits in this event: 27 + 91 178.919 1056 1 1 31.45 168.072 -174.712 + 91 42.9429 1057 1 1 31.45 168.06 -174.62 + 91 286.263 1075 1 1 35.0561 169.495 -174.45 + 91 4.98671 1421 1 0 61.8321 104.35 -175.958 + 91 219.466 1207 1 1 61.6156 106.141 -174.85 + 91 27.7551 1364 2 0 77.4231 92.9858 -146.25 + 91 217.165 1363 2 0 77.4612 92.95 -146.174 + 91 54.0488 1290 2 1 78.1374 92.3568 -144.85 + 91 91.7855 1291 2 1 78.2503 92.2884 -144.684 + 91 171.98 1292 2 1 78.45 92.1232 -144.509 + 91 195.724 1293 2 1 78.65 91.7926 -144.542 + 91 117.863 1294 2 1 78.85 91.3832 -144.565 + 91 138.568 1295 2 1 79.05 91.154 -144.542 + 91 41.3933 1357 2 0 78.3669 91.5848 -145.85 + 91 95.1671 1356 2 0 78.2718 91.55 -145.976 + 91 16.2144 1355 2 0 78.1296 91.3499 -146.213 + 91 41.2507 1067 2 0 81.9242 33.5453 -146.25 + 91 74.0889 1066 2 0 81.8909 33.4497 -146.144 + 91 28.5078 1065 2 0 81.8475 33.2499 -145.924 + 91 53.2227 1309 2 1 81.9761 31.7002 -144.85 + 91 161.196 1310 2 1 82.05 31.5886 -144.768 + 91 66.8491 1054 2 0 82.7659 31.0152 -145.85 + 91 96.5377 1053 2 0 82.8431 30.8496 -145.969 + 91 107.23 1052 2 0 82.8272 30.65 -146.115 + 91 92.3476 1051 2 0 82.9706 30.45 -146.117 + 91 56.7971 892 2 0 100.599 -1.58725 -146.25 + 91 6.18805 704 2 0 143.539 -39.1675 -146.25 +Number of digits in this event: 11 +Using G4ParticleGun... +Particle energy: 4.70304 LIN +Particle: gamma Event: 92 -Number of tracker hits in this event = 40 - 92 253.674 705 6 1 -38.9816 -67.8065 -24.45 - 92 318.942 561 6 0 -38.981 -67.8071 -25.85 - 92 104.264 705 5 1 -38.9701 -67.8161 -54.45 - 92 101.154 561 5 0 -38.9713 -67.8185 -55.85 - 92 157.382 705 4 1 -39.0108 -67.8907 -84.45 - 92 93.6961 560 4 0 -39.0129 -67.8944 -85.85 - 92 155.403 704 3 1 -39.0547 -67.97 -114.45 - 92 136.74 560 3 0 -39.0564 -67.9742 -115.85 - 92 162.821 704 2 1 -39.0887 -68.0626 -144.45 - 92 134.235 559 2 0 -39.0916 -68.0671 -145.85 - 92 131.583 704 1 1 -39.151 -68.1559 -174.45 - 92 113.645 559 1 0 -39.1541 -68.1602 -175.85 - 92 142.798 704 0 1 -39.2194 -68.2416 -204.45 - 92 123.224 559 0 0 -39.2235 -68.2461 -205.85 - 92 135.78 1445 3 1 109.15 -123.9 -114.634 - 92 141.009 850 7 1 -10.0058 -15.5182 5.15 - 92 182.843 849 7 1 -10.0501 -15.3424 5.25257 - 92 28.8609 705 3 1 -39.05 -67.9792 -114.829 - 92 5.50092 550 3 0 -39.3219 -70.0417 -115.85 - 92 105.144 549 3 0 -39.3205 -70.05 -115.855 - 92 34.1247 700 3 1 -40.0275 -70.5523 -114.85 - 92 158.77 587 4 0 -51.3272 -62.5975 -86.25 - 92 105.204 643 4 1 -51.3283 -62.2836 -84.8498 - 92 11.1927 642 4 1 -51.45 -62.2386 -84.4801 - 92 146.289 704 5 1 -39.1244 -68.0027 -54.45 - 92 142.129 560 5 0 -39.1301 -68.0051 -55.85 - 92 202.714 703 4 1 -39.2522 -68.0784 -84.45 - 92 143.237 559 4 0 -39.2723 -68.0916 -85.85 - 92 333.288 701 3 1 -39.7111 -68.3197 -114.45 - 92 92.0471 558 3 0 -39.7312 -68.3299 -115.85 - 92 115.363 699 2 1 -40.118 -68.5294 -144.45 - 92 133.687 557 2 0 -40.139 -68.5215 -145.85 - 92 136.658 697 1 1 -40.5498 -68.2743 -174.45 - 92 97.0084 558 1 0 -40.5841 -68.282 -175.85 - 92 209.924 694 0 1 -41.2321 -68.5073 -204.45 - 92 148.614 557 0 0 -41.2688 -68.5353 -205.85 - 92 117.584 530 3 0 -78.7531 -73.9023 -116.25 - 92 13.9506 529 3 0 -78.8114 -74.0501 -115.878 - 92 145.478 506 3 1 -78.6817 -74.3059 -114.85 - 92 1.24766 505 3 1 -78.85 -74.4112 -114.451 -Number of digits in this event = 26 -Using G4ParticleGun ... -5.36685 LIN -gamma +Number of tracker hits in this event: 18 + 92 346.793 1071 2 1 34.4284 -122.721 -144.45 + 92 259.224 287 2 0 34.427 -122.722 -145.85 + 92 108.127 1071 1 1 34.3974 -122.752 -174.45 + 92 115.456 286 1 0 34.3961 -122.754 -175.85 + 92 106.315 1071 0 1 34.3657 -122.79 -204.45 + 92 131.55 286 0 0 34.3639 -122.793 -205.85 + 92 23.4362 198 7 1 -140.432 1.58131 5.15 + 92 100.185 197 7 1 -140.55 1.64582 5.31441 + 92 437.019 196 7 1 -140.75 1.59761 5.54054 + 92 4.98778 1257 0 1 71.6179 -85.7441 -204.85 + 92 11.1088 1175 3 1 55.1041 -100.689 -114.85 + 92 99.8531 1072 1 1 34.4607 -122.642 -174.45 + 92 109.722 287 1 0 34.4667 -122.629 -175.85 + 92 113.97 1072 0 1 34.598 -122.361 -204.45 + 92 139.244 288 0 0 34.6024 -122.355 -205.85 + 92 45.9717 318 2 0 10.1805 -116.36 -146.25 + 92 103.277 319 2 0 10.1509 -116.35 -146.102 + 92 312.15 953 2 1 10.7942 -116.297 -144.85 +Number of digits in this event: 8 +Using G4ParticleGun... +Particle energy: 1.1075 LIN +Particle: gamma Event: 93 -Number of tracker hits in this event = 128 - 93 355.715 1055 11 1 31.1819 -0.533678 125.55 - 93 237.123 897 11 0 31.1811 -0.533232 124.15 - 93 239.85 1055 10 1 31.1667 -0.518739 95.55 - 93 111.537 897 10 0 31.1652 -0.517377 94.15 - 93 234.074 1055 9 1 31.1409 -0.479813 65.55 - 93 330.349 897 9 0 31.14 -0.476171 64.15 - 93 123.546 1055 8 1 31.1216 -0.399414 35.55 - 93 111.323 898 8 0 31.1213 -0.396939 34.15 - 93 275.917 1055 7 1 31.0604 -0.423259 5.55 - 93 100.314 898 7 0 31.0589 -0.427715 4.15 - 93 123.071 1054 6 1 31.0273 -0.521107 -24.45 - 93 176.61 897 6 0 31.0295 -0.521454 -25.85 - 93 107.651 1055 5 1 31.0826 -0.549496 -54.45 - 93 149.492 897 5 0 31.0801 -0.557038 -55.85 - 93 176.321 1054 4 1 31.0197 -0.711265 -84.45 - 93 111.86 896 4 0 31.016 -0.724675 -85.85 - 93 472.443 1054 3 1 30.9277 -0.982282 -114.45 - 93 164.761 895 3 0 30.9195 -0.990584 -115.85 - 93 107.215 1053 2 1 30.749 -1.15653 -144.45 - 93 117.519 894 2 0 30.7412 -1.16435 -145.85 - 93 122.299 1052 1 1 30.5658 -1.31294 -174.45 - 93 137.187 893 1 0 30.563 -1.31834 -175.85 - 93 130.135 1052 0 1 30.5022 -1.43687 -204.45 - 93 128.328 893 0 0 30.5021 -1.44475 -205.85 - 93 34.3787 72 2 1 -165.649 -152.155 -144.45 - 93 11.2961 918 2 0 30.8883 3.65 -146.173 - 93 113.197 1056 1 1 31.3779 -0.494091 -174.45 - 93 93.896 898 1 0 31.3944 -0.298429 -175.85 - 93 31.4814 899 1 0 31.3961 -0.249981 -176.144 - 93 274.873 1057 0 1 31.6288 4.71246 -204.45 - 93 206.467 925 0 0 31.6252 5.09828 -205.85 - 93 273.808 898 6 0 31.0033 -0.449858 -25.9615 - 93 52.3393 1138 5 1 47.6527 61.8464 -54.45 - 93 133.02 1137 5 1 47.65 61.7497 -54.4868 - 93 133.248 1212 5 0 48.2873 62.4881 -55.85 - 93 192.461 1213 5 0 48.2434 62.6501 -56.144 - 93 12.9376 1405 5 0 169.302 101.344 -56.25 - 93 110.929 898 10 0 31.1883 -0.326434 94.15 - 93 115.344 1057 8 1 31.5641 -1.10859 35.55 - 93 92.0943 894 8 0 31.6056 -1.12949 34.15 - 93 119.324 1061 7 1 32.3638 -1.52775 5.55 - 93 135.847 892 7 0 32.4095 -1.57185 4.15 - 93 187.811 1066 6 1 33.2761 -2.33719 -24.45 - 93 129.51 888 6 0 33.3232 -2.36541 -25.85 - 93 144.995 1071 5 1 34.2619 -2.90108 -54.45 - 93 134.207 885 5 0 34.3074 -2.94717 -55.85 - 93 125.164 1075 4 1 35.1479 -3.89552 -84.45 - 93 228.579 880 4 0 35.2029 -3.95231 -85.85 - 93 158.901 1080 3 1 36.2183 -5.1316 -114.45 - 93 112.383 874 3 0 36.2652 -5.1867 -115.85 - 93 107.098 1085 2 1 37.1124 -6.25058 -144.45 - 93 135.196 868 2 0 37.1596 -6.30481 -145.85 - 93 32.6496 1092 1 1 38.5956 -7.30632 -174.45 - 93 106.897 1093 1 1 38.65 -7.36462 -174.54 - 93 10.6284 1094 1 1 38.85 -7.5587 -174.807 - 93 25.3675 860 1 0 39.4462 -8.01218 -175.85 - 93 101.327 859 1 0 39.4827 -8.05 -175.906 - 93 9.95231 858 1 0 39.6793 -8.25 -176.22 - 93 128.739 1201 0 1 60.312 -36.2153 -204.45 - 93 61.4382 724 0 0 60.439 -35.149 -205.85 - 93 162.863 725 0 0 60.4614 -35.0499 -206.009 - 93 16.1073 851 0 0 60.2343 -9.67132 -206.25 - 93 83.2937 852 0 0 60.2329 -9.65 -206.233 - 93 70.8638 853 0 0 60.1561 -9.44992 -206.1 - 93 48.7326 854 0 0 60.1248 -9.25 -206.097 - 93 190.806 1092 0 1 38.4518 -7.2747 -204.45 - 93 142.195 866 0 0 38.7122 -6.79159 -205.85 - 93 89.5482 1091 0 1 38.4338 -7.32751 -204.45 - 93 151.206 863 0 0 38.5086 -7.36578 -205.851 - 93 4.2721 885 10 0 73.7216 -2.99711 93.75 - 93 68.5041 1108 6 0 39.883 41.8386 -26.25 - 93 67.1908 1343 9 0 4.10218 88.7129 63.7502 - 93 96.4851 1344 9 0 4.07129 88.85 63.9403 - 93 138.626 1345 9 0 4.11321 89.0501 63.9828 - 93 304.13 872 3 0 35.711 -5.56444 -115.85 - 93 163.243 1079 3 1 35.943 -4.39394 -114.45 - 93 106.319 877 3 0 35.9964 -4.54519 -115.85 - 93 38.7281 1098 2 1 39.7889 -9.85906 -144.45 - 93 108.567 1099 2 1 39.85 -9.9196 -144.556 - 93 38.6558 844 2 0 40.4478 -11.136 -145.85 - 93 74.0502 843 2 0 40.4911 -11.25 -145.959 - 93 59.1078 842 2 0 40.5606 -11.45 -146.132 - 93 261.893 1181 1 1 56.2527 -46.8272 -174.45 - 93 73.178 653 1 0 56.1802 -49.3574 -175.85 - 93 52.0725 652 1 0 56.1709 -49.4503 -175.901 - 93 85.483 651 1 0 56.1447 -49.65 -176.003 - 93 71.4597 650 1 0 56.1189 -49.85 -176.116 - 93 80.5236 521 1 0 46.0491 -75.7923 -176.25 - 93 53.2281 522 1 0 45.9133 -75.65 -176.019 - 93 44.2118 1126 1 1 45.3078 -75.4806 -174.85 - 93 107.206 1125 1 1 45.25 -75.476 -174.73 - 93 88.0645 417 2 0 -56.236 -96.7055 -146.25 - 93 128.343 416 2 0 -56.481 -96.75 -146.153 - 93 7.82928 415 2 0 -56.8464 -96.9502 -145.872 - 93 70.4435 612 2 1 -57.5505 -98.1475 -144.85 - 93 126.766 611 2 1 -57.65 -98.3307 -144.711 - 93 552.607 610 2 1 -57.85 -98.7345 -144.618 - 93 396.458 609 2 1 -58.05 -99.1074 -144.506 - 93 0.471888 1102 2 1 40.5069 -103.335 -144.85 - 93 83.1242 1182 1 1 56.45 -47.0602 -174.593 - 93 116.534 1183 1 1 56.65 -47.2465 -174.671 - 93 31.3706 1184 1 1 56.8503 -47.3687 -174.801 - 93 79.1024 659 1 0 58.3458 -48.1002 -175.85 - 93 166.913 658 1 0 58.5722 -48.25 -176.006 - 93 117.568 904 3 0 30.8117 0.925498 -115.85 - 93 94.2459 1035 2 1 27.2154 0.193419 -144.45 - 93 173.54 898 2 0 26.6961 -0.375419 -145.85 - 93 53.9849 897 2 0 26.6203 -0.45 -146.049 - 93 12.3652 970 1 1 14.0607 -11.7347 -174.451 - 93 237.538 969 1 1 14.05 -11.7348 -174.481 - 93 149.108 841 1 0 13.5983 -11.7181 -175.85 - 93 15.8049 924 0 1 4.897 -11.0542 -204.45 - 93 61.7127 923 0 1 4.85 -11.0341 -204.48 - 93 78.7365 922 0 1 4.64994 -10.9492 -204.608 - 93 79.5855 921 0 1 4.45 -10.873 -204.733 - 93 20.8625 848 0 0 2.79328 -10.2673 -205.85 - 93 167.011 849 0 0 2.74714 -10.2498 -205.881 - 93 18.346 850 0 0 2.31319 -10.05 -206.213 - 93 14.8311 595 0 0 -4.8134 -60.85 -205.971 - 93 145.851 968 1 1 13.85 -11.7289 -174.721 - 93 0.102769 908 3 0 30.8441 1.84952 -115.85 - 93 116.178 909 3 0 30.844 1.8501 -115.851 - 93 8.32869 910 3 0 30.755 2.05004 -116.215 - 93 55.1723 893 3 0 14.6178 -1.3347 -116.25 - 93 72.6316 892 3 0 14.5896 -1.45 -116.09 - 93 85.0082 971 3 1 14.3095 -1.50188 -114.85 - 93 93.295 970 3 1 14.2499 -1.47309 -114.761 - 93 69.1551 969 3 1 14.05 -1.42787 -114.539 -Number of digits in this event = 54 -Using G4ParticleGun ... -9.89102 LIN -gamma +Number of tracker hits in this event: 39 + 93 253.359 1017 8 1 23.4632 94.3939 35.55 + 93 433.899 1371 8 0 23.4628 94.3874 34.15 + 93 106.507 1016 7 1 23.4362 94.2564 5.55 + 93 216.077 1370 7 0 23.43 94.2531 4.15 + 93 119.967 1016 6 1 23.3407 94.2064 -24.45 + 93 120.397 1370 6 0 23.3394 94.2083 -25.85 + 93 127.216 1016 5 1 23.3076 94.2433 -54.45 + 93 108.016 1370 5 0 23.3098 94.2413 -55.85 + 93 117.277 1016 4 1 23.3326 94.1778 -84.45 + 93 102.476 1370 4 0 23.3372 94.1869 -85.85 + 93 119.916 1016 3 1 23.432 94.4107 -114.45 + 93 152.312 1371 3 0 23.4308 94.422 -115.85 + 93 126.713 1016 2 1 23.4129 94.6995 -144.45 + 93 220.928 1372 2 0 23.4218 94.7006 -145.85 + 93 105.151 1017 1 1 23.5768 94.7107 -174.45 + 93 105.398 1372 1 0 23.5891 94.7093 -175.85 + 93 202.355 1018 0 1 23.844 94.6612 -204.45 + 93 119.177 1372 0 0 23.8441 94.6554 -205.85 + 93 14.0628 1653 1 0 -5.32176 150.75 -176.039 + 93 202.274 1011 7 1 22.4132 94.1907 5.55 + 93 201.152 1012 6 1 22.5136 95.5547 -24.4505 + 93 110.514 1376 6 0 22.5321 95.5108 -25.85 + 93 133.041 1014 5 1 22.9279 94.9387 -54.4502 + 93 126.386 1373 5 0 23.1768 94.9276 -55.85 + 93 84.4218 1042 4 1 28.6043 94.0194 -84.45 + 93 20.7826 1043 4 1 28.6501 94.0146 -84.7679 + 93 108.158 1369 4 0 28.8198 93.9773 -85.85 + 93 21.4311 1064 3 1 33.0343 93.4929 -114.45 + 93 147.068 1065 3 1 33.0503 93.4914 -114.554 + 93 226.984 1366 3 0 33.2402 93.4859 -115.85 + 93 151.012 1087 2 1 37.4799 93.5409 -144.45 + 93 120.227 1367 2 0 37.7149 93.5582 -145.85 + 93 114.983 1116 1 1 43.2992 94.1657 -174.45 + 93 122.097 1370 1 0 43.475 94.1774 -175.85 + 93 89.3637 1138 0 1 47.7823 95.4427 -204.45 + 93 27.9549 1139 0 1 47.85 95.4659 -204.74 + 93 127.827 1377 0 0 48.143 95.5728 -205.85 + 93 246.435 1701 2 0 24.9884 160.35 -146.25 + 93 23.7273 1702 2 0 24.8921 160.55 -145.923 +Number of digits in this event: 22 +Using G4ParticleGun... +Particle energy: 3.64221 LIN +Particle: gamma Event: 94 -Number of tracker hits in this event = 97 - 94 250.948 873 8 1 -5.37565 -26.5051 35.55 - 94 226.367 767 8 0 -5.37602 -26.5038 34.15 - 94 225.133 873 7 1 -5.38307 -26.4736 5.55 - 94 246.744 767 7 0 -5.38436 -26.4722 4.15 - 94 284.671 873 6 1 -5.41622 -26.4382 -24.45 - 94 124.563 768 6 0 -5.41643 -26.4369 -25.85 - 94 137.892 873 5 1 -5.42862 -26.4158 -54.45 - 94 116.287 768 5 0 -5.42727 -26.4147 -55.85 - 94 396.08 873 4 1 -5.39879 -26.3899 -84.45 - 94 412.683 768 4 0 -5.39899 -26.3906 -85.85 - 94 158.021 873 3 1 -5.40771 -26.4032 -114.45 - 94 579.848 768 3 0 -5.40885 -26.4051 -115.85 - 94 301.428 873 2 1 -5.43237 -26.4464 -144.45 - 94 114.36 768 2 0 -5.43371 -26.4495 -145.85 - 94 49.2862 767 2 0 -5.43396 -26.45 -146.096 - 94 234.826 872 1 1 -5.45528 -26.5113 -174.45 - 94 163.582 767 1 0 -5.45793 -26.5134 -175.85 - 94 290.056 872 0 1 -5.51855 -26.5521 -204.45 - 94 131.8 767 0 0 -5.52337 -26.5517 -205.85 - 94 62.7607 1239 7 0 -8.38318 67.9341 3.75 - 94 265.771 861 7 1 -7.73602 69.9549 5.15 - 94 130.952 1201 6 1 60.25 -92.0495 -24.7622 - 94 67.5802 1202 6 1 60.4501 -92.0302 -24.7092 - 94 225.164 873 0 1 -5.41043 -26.5362 -204.45 - 94 302.802 874 0 1 -5.25 -26.4816 -204.617 - 94 13.6825 770 0 0 -4.48727 -25.8684 -205.85 - 94 141.121 771 0 0 -4.4677 -25.85 -205.887 - 94 131.25 726 0 0 19.066 -34.6543 -206.25 - 94 30.8523 725 0 0 19.26 -34.8501 -205.938 - 94 38.8995 998 0 1 19.8037 -35.6869 -204.85 - 94 259.662 999 0 1 19.85 -35.7645 -204.742 - 94 71.0101 1000 0 1 20.05 -36.315 -204.642 - 94 32.437 1001 0 1 20.25 -36.3718 -204.798 - 94 269.376 716 0 0 22.77 -36.708 -205.85 - 94 140.444 715 0 0 23.597 -36.8503 -205.951 - 94 33.194 1026 0 1 25.3398 -36.9341 -204.85 - 94 52.182 1027 0 1 25.45 -36.9237 -204.788 - 94 64.5029 1028 0 1 25.65 -36.9606 -204.756 - 94 70.6994 1029 0 1 25.85 -36.9873 -204.675 - 94 107.186 1030 0 1 26.0507 -37.0273 -204.66 - 94 116.514 1031 0 1 26.2505 -36.9749 -204.609 - 94 183.895 187 6 1 -142.603 -109.452 -24.85 - 94 193.697 765 0 0 -5.0659 -27.0075 -205.85 - 94 125.438 764 0 0 -5.05979 -27.0507 -205.925 - 94 115.641 768 0 0 -5.32891 -26.371 -205.85 - 94 606.182 872 3 1 -5.4754 -26.3553 -114.45 - 94 105.991 876 2 1 -4.67329 -24.9177 -144.45 - 94 121.986 776 2 0 -4.62366 -24.8055 -145.85 - 94 178.401 883 1 1 -3.35239 -21.0221 -174.45 - 94 116.6 793 1 0 -3.084 -21.3546 -175.85 - 94 110.339 907 0 1 1.47706 -28.6247 -204.45 - 94 72.7057 756 0 0 1.60157 -28.8168 -205.851 - 94 54.0745 755 0 0 1.62265 -28.85 -206.107 - 94 87.6075 872 2 1 -5.64514 -26.5424 -144.45 - 94 188.498 769 2 0 -4.64614 -26.25 -145.988 - 94 22.6632 971 1 1 14.4214 -20.0426 -174.45 - 94 76.838 972 1 1 14.4504 -20.0379 -174.479 - 94 70.0169 973 1 1 14.65 -20.004 -174.68 - 94 28.8714 801 1 0 15.9391 -19.6724 -175.85 - 94 255.159 802 1 0 16.0277 -19.65 -175.931 - 94 83.666 1151 0 1 50.309 -11.2007 -204.45 - 94 179.129 1152 0 1 50.45 -11.1926 -204.682 - 94 186.375 845 0 0 51.204 -11.0491 -205.85 - 94 109.818 868 3 1 -6.36444 -27.2691 -114.45 - 94 125.926 764 3 0 -6.3092 -27.1801 -115.85 - 94 119.064 874 1 1 -5.08851 -25.0833 -174.45 - 94 176.142 775 1 0 -5.0331 -24.9646 -175.85 - 94 234.497 880 0 1 -3.9961 -21.1723 -204.45 - 94 427.508 793 0 0 -4.0345 -21.2702 -205.85 - 94 164.564 792 0 0 -4.14953 -21.4501 -205.915 - 94 276.3 871 2 1 -5.72121 -26.8758 -144.45 - 94 118.973 765 2 0 -5.73245 -26.9004 -145.85 - 94 141.858 870 1 1 -5.98176 -27.3834 -174.45 - 94 100.307 763 1 0 -5.99733 -27.4091 -175.85 - 94 234.995 868 0 1 -6.31039 -27.9325 -204.45 - 94 120.821 760 0 0 -6.33147 -27.9563 -205.85 - 94 7.34211 807 1 1 -18.45 5.72463 -174.592 - 94 139.4 808 1 1 -18.45 5.74642 -174.497 - 94 16.9352 694 2 1 -41.0612 74.5528 -144.85 - 94 99.6018 957 2 1 11.5781 61.7209 -144.85 - 94 151.979 767 6 0 -5.41348 -26.5347 -25.85 - 94 113.365 872 5 1 -5.49707 -26.5919 -54.45 - 94 120.808 767 5 0 -5.50187 -26.5923 -55.85 - 94 211.165 872 4 1 -5.60273 -26.6062 -84.45 - 94 127.926 767 4 0 -5.60712 -26.6081 -85.85 - 94 254.446 871 3 1 -5.69425 -26.6501 -114.45 - 94 123.27 766 3 0 -5.69407 -26.6528 -115.85 - 94 121.417 766 2 0 -5.6864 -26.6852 -145.85 - 94 116.822 765 1 0 -5.61483 -26.906 -175.85 - 94 283.355 766 6 0 -5.38316 -26.65 -26.1683 - 94 63.8678 767 3 0 -5.60678 -26.5103 -115.85 - 94 91.8797 759 3 0 -7.17055 -28.1027 -115.85 - 94 69.5705 758 3 0 -7.3614 -28.25 -116.001 - 94 76.4809 757 3 0 -7.4642 -28.4508 -116.048 - 94 48.9237 756 3 0 -7.4275 -28.6504 -116.155 - 94 124.994 234 3 0 29.5429 -133.173 -116.25 - 94 15.3661 233 3 0 29.6109 -133.35 -116.222 -Number of digits in this event = 57 -Using G4ParticleGun ... -1.79007 LIN -gamma +Number of tracker hits in this event: 7 + 94 240.616 1076 0 1 35.3407 -114.764 -204.45 + 94 268.769 326 0 0 35.3406 -114.764 -205.85 + 94 92.7929 940 1 0 84.1909 8.24579 -176.25 + 94 12.2536 939 1 0 84.2518 8.04995 -176.213 + 94 154.386 1160 1 0 85.447 52.0993 -176.25 + 94 101.449 1159 1 0 85.5038 52.05 -176.139 + 94 284.987 1344 9 1 88.9364 -153.127 65.15 +Number of digits in this event: 7 +Using G4ParticleGun... +Particle energy: 5.37795 LIN +Particle: gamma Event: 95 -Number of tracker hits in this event = 30 - 95 279.282 1471 6 1 114.453 49.2122 -24.45 - 95 234.921 1145 6 0 114.442 49.1848 -25.85 - 95 217.198 1469 5 1 114.107 48.5993 -54.45 - 95 127.269 1142 5 0 113.991 48.5672 -55.8506 - 95 25.5072 1458 4 1 111.758 48.045 -84.45 - 95 104.758 1457 4 1 111.75 48.0427 -84.5271 - 95 125.621 1139 4 0 111.605 47.9933 -85.85 - 95 113.367 1440 3 1 108.192 46.8908 -114.45 - 95 11.6412 1133 3 0 108.079 46.655 -115.85 - 95 205.483 1132 3 0 108.077 46.65 -115.879 - 95 256.76 1429 2 1 105.964 41.9619 -144.45 - 95 125.911 1108 2 0 105.984 41.756 -145.85 - 95 114.295 1430 1 1 106.33 37.7605 -174.45 - 95 131.271 1087 1 0 106.354 37.6069 -175.85 - 95 123.147 1435 0 1 107.182 34.5129 -204.45 - 95 101.441 1071 0 0 107.366 34.3121 -205.85 - 95 109.231 1471 5 1 114.477 49.3107 -54.45 - 95 273.268 1146 5 0 114.486 49.3216 -55.85 - 95 283.07 1472 4 1 114.688 49.5401 -84.45 - 95 136.781 1147 4 0 114.699 49.5491 -85.85 - 95 216.593 1473 3 1 114.94 49.755 -114.45 - 95 136.219 1148 3 0 114.948 49.7657 -115.85 - 95 275.533 1474 2 1 115.1 49.9739 -144.45 - 95 92.7483 1149 2 0 115.104 49.9872 -145.85 - 95 111.056 1475 1 1 115.19 50.2468 -174.45 - 95 152.017 1151 1 0 115.196 50.2622 -175.85 - 95 128.242 1475 0 1 115.3 50.5519 -204.45 - 95 138.886 1152 0 0 115.308 50.5659 -205.85 - 95 46.2145 1140 2 0 114.191 48.1314 -145.85 - 95 125.625 1139 2 0 114.095 48.05 -145.96 -Number of digits in this event = 23 -Using G4ParticleGun ... -8.57981 LIN -gamma +Number of tracker hits in this event: 2 + 95 49.6901 1062 0 1 32.5736 -95.0363 -204.85 + 95 65.5737 1063 0 1 32.6502 -94.9536 -204.542 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 8.50356 LIN +Particle: gamma Event: 96 -Number of tracker hits in this event = 15 - 96 318.459 873 0 1 -5.38666 -115.501 -204.45 - 96 206.242 323 0 0 -5.38525 -115.499 -205.85 - 96 15.9373 902 7 0 19.0422 0.45 3.89637 - 96 214.279 131 14 0 -32.6725 -153.836 213.75 - 96 119.76 132 14 0 -33.2247 -153.75 214.07 - 96 309.273 133 14 0 -33.4088 -153.55 213.962 - 96 17.3156 134 14 0 -34.1336 -153.35 214.133 - 96 79.2291 726 14 1 -34.7377 -152.226 215.15 - 96 47.208 725 14 1 -34.85 -152.073 215.256 - 96 191.526 138 14 0 -34.6978 -152.498 214.15 - 96 207.687 137 14 0 -34.4252 -152.55 214.096 - 96 0.459861 859 0 1 -8.25 -99.9737 -204.83 - 96 43.6626 456 2 0 9.56268 -88.7355 -146.25 - 96 256.663 605 1 0 31.2634 -58.8508 -176.25 - 96 19.4663 606 1 0 31.2619 -58.85 -176.235 -Number of digits in this event = 9 -Using G4ParticleGun ... -3.68103 LIN -gamma +Number of tracker hits in this event: 1 + 96 28.3065 949 0 0 140.565 10.05 -206.218 +Number of digits in this event: 2 +Using G4ParticleGun... +Particle energy: 2.86724 LIN +Particle: gamma Event: 97 -Number of tracker hits in this event = 1 - 97 88.4268 1161 6 0 -168.959 52.3281 -26.25 -Number of digits in this event = 3 -Using G4ParticleGun ... -3.04075 LIN -gamma +Number of tracker hits in this event: 41 + 97 325.068 1096 3 1 39.3697 -83.1 -114.45 + 97 207.888 484 3 0 39.3672 -83.0998 -115.85 + 97 317.065 1096 2 1 39.3177 -83.1053 -144.45 + 97 144.532 484 2 0 39.313 -83.1041 -145.85 + 97 132.038 1095 1 1 39.2262 -83.0753 -174.45 + 97 113.336 484 1 0 39.2261 -83.0695 -175.85 + 97 139.101 1095 0 1 39.2243 -82.9579 -204.45 + 97 111.312 485 0 0 39.224 -82.9502 -205.85 + 97 97.1533 436 2 0 70.0241 -92.8761 -146.25 + 97 268.857 437 2 0 70.1234 -92.75 -146.068 + 97 54.2998 485 3 0 39.3672 -83.05 -116.041 + 97 368.488 489 2 0 39.2969 -82.1991 -145.85 + 97 126.093 1091 1 1 38.3986 -83.855 -174.45 + 97 121.312 481 1 0 38.1988 -83.8477 -175.85 + 97 70.7115 1069 0 1 33.9249 -83.8233 -204.45 + 97 51.6069 1068 0 1 33.85 -83.8652 -204.659 + 97 135.733 479 0 0 33.4471 -84.1393 -205.85 + 97 87.8893 1097 2 1 39.45 -82.1004 -144.515 + 97 131.494 1098 2 1 39.65 -82.1763 -144.767 + 97 65.1439 642 2 0 66.4393 -51.5278 -146.25 + 97 28.5575 643 2 0 66.4406 -51.45 -146.186 + 97 82.0849 725 2 0 127.773 -34.9703 -146.25 + 97 38.4527 490 2 0 40.1812 -82.05 -146.194 + 97 186.397 933 2 0 74.9793 6.73907 -146.25 + 97 13.2875 1099 2 1 39.85 -82.4128 -144.815 + 97 64.4021 487 2 0 40.1274 -82.6333 -145.85 + 97 89.8934 486 2 0 40.1221 -82.65 -145.943 + 97 134.822 1097 3 1 39.4501 -82.9985 -114.521 + 97 38.822 1098 3 1 39.65 -82.6318 -114.807 + 97 59.1913 496 3 0 40.8287 -80.8294 -115.85 + 97 55.4537 497 3 0 40.946 -80.65 -115.929 + 97 65.3425 498 3 0 41.0533 -80.45 -116.045 + 97 89.9535 499 3 0 41.1268 -80.25 -116.009 + 97 251.176 1105 3 1 41.232 -78.9998 -114.85 + 97 104.745 1106 3 1 41.2502 -78.6998 -114.457 + 97 79.0233 1107 3 1 41.45 -78.7126 -114.657 + 97 39.4473 1108 3 1 41.6504 -78.808 -114.755 + 97 78.1281 504 3 0 42.0787 -79.1759 -115.85 + 97 72.8481 503 3 0 42.1044 -79.25 -116.111 + 97 165.178 635 3 0 48.7326 -52.991 -116.25 + 97 229.303 634 3 0 48.8469 -53.05 -116.075 +Number of digits in this event: 19 +Using G4ParticleGun... +Particle energy: 9.54101 LIN +Particle: gamma Event: 98 -Number of tracker hits in this event = 96 - 98 229.226 645 10 1 -51.0216 90.3273 95.55 - 98 241.392 1350 10 0 -51.0237 90.3251 94.15 - 98 147.936 644 9 1 -51.0589 90.2886 65.55 - 98 116.035 1350 9 0 -51.0635 90.2875 64.15 - 98 121.379 644 8 1 -51.1432 90.2655 35.55 - 98 121.031 1350 8 0 -51.149 90.2663 34.15 - 98 113.985 643 7 1 -51.283 90.2787 5.55 - 98 102.905 1350 7 0 -51.2905 90.2832 4.15 - 98 124.857 642 6 1 -51.4514 90.3751 -24.45 - 98 283.428 1351 6 0 -51.4553 90.3792 -25.85 - 98 122.031 642 5 1 -51.5299 90.4675 -54.45 - 98 107.342 1351 5 0 -51.5349 90.4735 -55.85 - 98 232.899 642 4 1 -51.6429 90.5889 -84.45 - 98 123.546 1352 4 0 -51.6484 90.5878 -85.85 - 98 120.913 641 3 1 -51.7662 90.5681 -114.45 - 98 106.532 1352 3 0 -51.7712 90.5679 -115.85 - 98 98.4554 640 2 1 -51.8638 90.561 -144.45 - 98 114.335 1352 2 0 -51.8656 90.555 -145.85 - 98 90.5392 640 1 1 -51.9083 90.4262 -174.45 - 98 143.544 1351 1 0 -51.9097 90.4244 -175.85 - 98 182.248 640 0 1 -51.9339 90.3914 -204.45 - 98 112.647 1351 0 0 -51.9351 90.393 -205.85 - 98 31.8212 143 3 1 -151.35 -120.365 -114.581 - 98 40.295 1353 4 0 -51.5962 90.9132 -85.85 - 98 164.952 1354 4 0 -51.5949 90.9501 -86.0085 - 98 187.983 629 3 1 -54.1026 97.682 -114.45 - 98 14.8852 1381 3 0 -54.2992 96.3884 -115.85 - 98 88.0323 1380 3 0 -54.3052 96.3499 -115.892 - 98 44.221 1379 3 0 -54.3602 96.1493 -116.116 - 98 119.398 605 2 1 -58.9071 72.1151 -144.45 - 98 37.533 604 2 1 -59.0502 72.2613 -144.791 - 98 59.6972 1263 2 0 -59.8739 72.7816 -145.85 - 98 102.176 1264 2 0 -59.9965 72.8501 -145.996 - 98 86.5008 467 1 1 -86.5081 87.3181 -174.45 - 98 108.494 1337 1 0 -86.5669 87.5038 -175.85 - 98 113.402 469 0 1 -86.1578 88.1119 -204.451 - 98 131.19 1341 0 0 -86.172 88.285 -205.85 - 98 28.6095 1356 0 0 -78.4106 91.55 -206.124 - 98 156.366 1339 0 0 -85.3 87.9817 -205.85 - 98 377.872 1340 0 0 -84.9947 88.0501 -206.059 - 98 113.947 1346 4 0 -60.2122 89.3105 -86.25 - 98 119.169 1345 4 0 -60.2207 89.25 -86.2095 - 98 208.117 643 5 1 -51.3089 89.9536 -54.4506 - 98 34.834 644 5 1 -51.25 89.8775 -54.7952 - 98 96.7121 1348 5 0 -51.0662 89.7039 -55.85 - 98 15.0735 1347 5 0 -51.0135 89.65 -56.2131 - 98 60.866 666 4 1 -46.7077 86.1741 -84.4501 - 98 56.4941 667 4 1 -46.65 86.2484 -84.6997 - 98 9.3951 1332 4 0 -46.3044 86.6307 -85.85 - 98 283.725 1333 4 0 -46.287 86.65 -85.9068 - 98 72.5492 709 3 1 -38.1909 95.0041 -114.45 - 98 60.6784 710 3 1 -38.05 95.0912 -114.648 - 98 83.3918 1377 3 0 -37.1585 95.6493 -115.85 - 98 80.2197 1378 3 0 -37.0114 95.75 -116.054 - 98 107.389 797 2 1 -20.6276 107.443 -144.45 - 98 1.65494 798 2 1 -20.4499 107.618 -144.843 - 98 66.0966 1441 2 0 -20.2133 108.394 -145.85 - 98 78.2901 1442 2 0 -20.1924 108.55 -146.029 - 98 4.73654 1443 2 0 -20.1963 108.75 -146.228 - 98 12.9854 813 1 1 -17.2608 134.214 -174.451 - 98 110.709 814 1 1 -17.25 134.234 -174.509 - 98 36.3766 1572 1 0 -16.7745 134.705 -175.85 - 98 79.8419 1573 1 0 -16.7275 134.75 -175.982 - 98 156.052 1577 1 0 4.86548 135.632 -176.25 - 98 50.2391 1576 1 0 4.93799 135.55 -175.995 - 98 215.194 927 1 1 5.48519 135.168 -174.85 - 98 75.2001 930 1 1 6.10604 134.62 -174.45 - 98 98.5731 931 1 1 6.25 134.662 -174.64 - 98 12.8631 932 1 1 6.45 134.736 -174.825 - 98 156.536 1575 1 0 7.44039 135.198 -175.85 - 98 62.1357 1578 1 0 4.91557 135.75 -176.012 - 98 94.9997 1579 1 0 4.93089 135.95 -175.997 - 98 345.134 1658 1 0 -7.39494 151.768 -176.25 - 98 111.662 1353 5 0 -51.4411 90.7904 -55.8501 - 98 81.5133 1354 5 0 -51.4495 90.95 -56.1646 - 98 149.856 647 9 1 -50.5095 90.6364 65.55 - 98 129.57 1352 9 0 -50.5013 90.677 64.15 - 98 140.848 647 8 1 -50.5073 91.3766 35.55 - 98 107.019 1356 8 0 -50.5214 91.3817 34.15 - 98 104.914 645 7 1 -50.9352 91.4616 5.55 - 98 200.591 1356 7 0 -51.0151 91.5095 4.15 - 98 104.968 636 6 1 -52.7146 92.4634 -24.45 - 98 99.3588 1361 6 0 -52.8289 92.5099 -25.85 - 98 689.592 624 5 1 -55.1895 93.3297 -54.45 - 98 148.078 1366 5 0 -55.3075 93.3691 -55.85 - 98 99.1481 613 4 1 -57.3862 94.0166 -84.45 - 98 118.155 1369 4 0 -57.4747 94.037 -85.85 - 98 102.552 603 3 1 -59.3007 94.4409 -114.45 - 98 136.956 1371 3 0 -59.4077 94.4601 -115.85 - 98 139.783 592 2 1 -61.4832 94.7563 -144.45 - 98 113.741 1373 2 0 -61.6175 94.8087 -145.85 - 98 115.614 578 1 1 -64.3318 95.7757 -174.45 - 98 124.62 1378 1 0 -64.4909 95.8067 -175.85 - 98 115.933 562 0 1 -67.524 96.5096 -204.45 - 98 122.748 1381 0 0 -67.6752 96.5365 -205.85 - 98 31.4372 625 5 1 -55.0013 93.2892 -54.45 -Number of digits in this event = 37 -Using G4ParticleGun ... -1.8069 LIN -gamma +Number of tracker hits in this event: 24 + 98 229.776 1079 5 1 35.9412 109.33 -54.45 + 98 243.224 1445 5 0 35.9369 109.325 -55.85 + 98 96.2831 1078 4 1 35.8213 109.251 -84.45 + 98 155.047 1445 4 0 35.8223 109.245 -85.85 + 98 154.364 1078 3 1 35.8448 109.121 -114.45 + 98 132.193 1444 3 0 35.8429 109.113 -115.85 + 98 265.481 1078 2 1 35.7708 108.955 -144.45 + 98 157.277 1443 2 0 35.7759 108.945 -145.85 + 98 108.427 1079 1 1 35.8721 108.724 -174.45 + 98 124.122 1442 1 0 35.8808 108.709 -175.85 + 98 320.436 1080 0 1 36.0525 108.405 -204.45 + 98 198.813 1441 0 0 36.0586 108.381 -205.85 + 98 104.533 1079 4 1 35.9708 109.35 -84.45 + 98 229.216 1446 4 0 35.9721 109.351 -85.85 + 98 111.763 1079 3 1 36.0009 109.37 -114.45 + 98 110.683 1446 3 0 36.0017 109.37 -115.85 + 98 120.092 1079 2 1 36.0146 109.383 -144.45 + 98 176.023 1446 2 0 36.0168 109.384 -145.85 + 98 106.676 1080 1 1 36.0656 109.39 -174.45 + 98 204.148 1446 1 0 36.067 109.39 -175.85 + 98 210.52 1446 0 0 36.0967 109.402 -205.85 + 98 204.534 1083 3 1 36.7212 9.77923 -114.85 + 98 6.27661 1005 7 1 21.1578 168.43 5.15 + 98 183.3 1102 1 1 40.5755 61.543 -174.45 +Number of digits in this event: 19 +Using G4ParticleGun... +Particle energy: 6.01577 LIN +Particle: gamma Event: 99 -Number of tracker hits in this event = 22 - 99 266.114 1105 3 1 41.1543 21.3706 -114.45 - 99 251.207 1006 3 0 41.1565 21.3702 -115.85 - 99 222.55 1105 2 1 41.2075 21.3827 -144.45 - 99 150.684 1006 2 0 41.2119 21.386 -145.85 - 99 130.111 1106 1 1 41.2814 21.447 -174.45 - 99 106.935 1006 1 0 41.2898 21.4469 -175.85 - 99 258.813 1107 0 1 41.5105 21.4965 -204.45 - 99 167.302 1007 0 0 41.5232 21.5036 -205.85 - 99 173.138 1115 4 1 43.2334 145.067 -84.45 - 99 43.014 999 1 0 40.6797 20.044 -175.85 - 99 65.5386 1000 1 0 40.6904 20.05 -175.911 - 99 230.801 1104 1 1 41.0217 21.1547 -174.85 - 99 192.972 1007 1 0 41.1806 21.5566 -175.85 - 99 207.316 1010 2 0 41.1139 22.0765 -145.85 - 99 125.289 1012 1 0 41.0141 22.5333 -175.85 - 99 138.355 1106 0 1 41.2667 22.2828 -204.45 - 99 216.125 1010 0 0 41.2869 22.2223 -205.85 - 99 51.3431 375 4 0 37.1532 -104.958 -86.2499 - 99 263.779 376 4 0 37.2849 -104.95 -86.1951 - 99 268.657 1105 0 1 41.229 23.3956 -204.45 - 99 265.211 1016 0 0 41.2109 23.4258 -205.85 - 99 17.8313 1347 6 0 95.6825 89.5163 -26.25 -Number of digits in this event = 19 +Number of tracker hits in this event: 12 + 99 234.844 536 2 1 -72.7106 49.3589 -144.45 + 99 252.894 1146 2 0 -72.7108 49.3588 -145.85 + 99 616.163 536 1 1 -72.7087 49.3624 -174.45 + 99 487.695 1146 1 0 -72.7094 49.3614 -175.85 + 99 245.88 536 0 1 -72.717 49.3408 -204.45 + 99 119.166 1146 0 0 -72.7158 49.3398 -205.85 + 99 54.2082 1075 0 0 -105.006 35.1374 -206.25 + 99 111.25 1145 0 0 -72.679 49.1324 -205.85 + 99 164.422 525 0 1 -74.9318 49.6823 -204.45 + 99 280.449 1149 0 0 -74.8981 49.947 -205.85 + 99 189.997 544 0 1 -71.1893 49.8671 -204.45 + 99 369.996 906 3 1 1.26087 -71.9832 -114.85 +Number of digits in this event: 12 Run terminated. Run Summary Number of events processed : 100 - User=39.440000s Real=39.890067s Sys=0.010000s + User=40.790000s Real=41.167114s Sys=0.030000s End of Run 1 There are 4 h1 histograms - 0 with 0 entries: Edep in the last X plane (keV) - 1 with 0 entries: Hits dist in TKR X planes - 2 with 0 entries: Edep in the last X plane (keV) - 3 with 0 entries: Hits dist in TKR X planes + 0 with 0 entries: Deposited energy in the last X plane (keV) + 1 with 0 entries: Hits distribution in TKR X planes + 2 with 0 entries: Deposited energy in the last X plane (keV) + 3 with 0 entries: Hits distribution in TKR X planes There are 4 h2 histograms - 0 with 0 entries: Tracker Hits XZ (strip,plane) - 1 with 0 entries: Tracker Hits YZ (strip,plane) - 2 with 0 entries: Tracker Hits XZ (strip,plane) - 3 with 0 entries: Tracker Hits YZ (strip,plane) + 0 with 0 entries: Tracker hits XZ (strip, plane) + 1 with 0 entries: Tracker hits YZ (strip, plane) + 2 with 0 entries: Tracker hits XZ (strip, plane) + 3 with 0 entries: Tracker hits YZ (strip, plane) List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". /gun/particle e- @@ -8854,28 +9789,28 @@ Index : 0 used in the geometry : Yes Index : 1 used in the geometry : Yes Material : CesiumIodide Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um - Energy thresholds : gamma 9.2865 keV e- 144.614 keV e+ 141.091 keV proton 10 keV + Energy thresholds : gamma 9.28719 keV e- 144.613 keV e+ 141.078 keV proton 10 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes Material : Silicon Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um - Energy thresholds : gamma 2.32237 keV e- 122.002 keV e+ 119.773 keV proton 10 keV + Energy thresholds : gamma 2.32189 keV e- 121.99 keV e+ 119.775 keV proton 10 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 3 used in the geometry : Yes Material : Tungsten Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um - Energy thresholds : gamma 36.2769 keV e- 351.958 keV e+ 338.125 keV proton 10 keV + Energy thresholds : gamma 36.2769 keV e- 351.944 keV e+ 338.136 keV proton 10 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 4 used in the geometry : Yes Material : Scintillator Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um - Energy thresholds : gamma 994.647 eV e- 86.3927 keV e+ 85.2583 keV proton 10 keV + Energy thresholds : gamma 1.00819 keV e- 86.3911 keV e+ 85.2484 keV proton 10 keV Region(s) which use this couple : DefaultRegionForTheWorld @@ -8903,8933 +9838,8888 @@ Cannot set FirstId as its value was already used. -------- WWWW -------- G4Exception-END --------- WWWW ------- done -Using G4ParticleGun ... -9.01681 LIN -e- +Using G4ParticleGun... +Particle energy: 8.00898 LIN +Particle: e- Event: 0 -Number of tracker hits in this event = 108 - 0 135.46 1567 9 1 133.614 -11.5114 65.55 - 0 112.17 842 9 0 133.614 -11.5107 64.15 - 0 137.109 1567 8 1 133.614 -11.4941 35.55 - 0 122.916 842 8 0 133.615 -11.4934 34.15 - 0 135.489 1567 7 1 133.618 -11.4809 5.55 - 0 89.4086 842 7 0 133.619 -11.4808 4.15 - 0 362.888 1567 6 1 133.633 -11.4803 -24.45 - 0 294.98 842 6 0 133.636 -11.4758 -25.85 - 0 131.691 1568 5 1 133.754 -11.3545 -54.45 - 0 135.011 843 5 0 133.765 -11.3456 -55.85 - 0 219.426 1568 4 1 133.9 -11.208 -84.45 - 0 123.891 844 4 0 133.91 -11.1953 -85.85 - 0 112.872 1569 3 1 133.989 -11.0425 -114.45 - 0 104.278 845 3 0 134.005 -11.025 -115.85 - 0 111.9 1570 2 1 134.281 -10.7491 -144.45 - 0 188.135 846 2 0 134.303 -10.7482 -145.85 - 0 138.151 1573 1 1 134.782 -10.705 -174.451 - 0 116.137 846 1 0 134.809 -10.6712 -175.85 - 0 163.636 1574 0 1 135.038 -10.3055 -204.45 - 0 78.2312 848 0 0 135.095 -10.2578 -205.851 - 0 40.427 849 0 0 135.106 -10.25 -206.105 - 0 295.212 1443 0 1 108.909 -42.2967 -204.85 - 0 15.0232 1305 1 1 81.2033 -5.27329 -174.45 - 0 128.878 1442 0 1 108.75 -42.3996 -204.507 - 0 33.8228 1603 7 0 155.141 140.75 3.97199 - 0 260.778 1682 7 1 156.603 140.406 5.15 - 0 353.615 1567 3 1 133.723 -11.5093 -114.45 - 0 249.971 842 3 0 133.715 -11.5101 -115.85 - 0 115.003 1567 2 1 133.572 -11.6296 -144.45 - 0 286.074 842 2 0 133.58 -11.6342 -145.85 - 0 64.1935 1567 1 1 133.741 -11.836 -174.45 - 0 527.64 1568 1 1 133.75 -11.8373 -174.687 - 0 158.739 841 1 0 133.797 -11.8396 -175.85 - 0 117.382 1573 0 1 134.918 -11.8923 -204.45 - 0 126.871 840 0 0 134.983 -11.8791 -205.85 - 0 281.555 1569 2 1 134.14 -11.1601 -144.45 - 0 52.8712 847 2 0 133.437 -10.65 -146.103 - 0 123.893 893 1 0 124.25 -1.38283 -175.85 - 0 180.105 1568 2 1 133.752 -11.5028 -144.45 - 0 121.628 842 1 0 133.809 -11.4778 -175.85 - 0 111.953 1568 0 1 133.855 -11.4682 -204.45 - 0 104.147 842 0 0 133.858 -11.467 -205.85 - 0 78.7922 590 9 0 130.077 -61.9842 63.75 - 0 40.0923 1544 9 1 129.128 -61.7803 65.15 - 0 89.5357 1545 9 1 129.15 -61.7547 65.2117 - 0 10.456 1569 1 1 133.95 -10.8119 -174.487 - 0 110.613 1566 5 1 133.513 -12.1458 -54.45 - 0 109.917 839 5 0 133.526 -12.1886 -55.85 - 0 47.0093 835 4 0 133.832 -13.0479 -85.85 - 0 103.349 834 4 0 133.835 -13.05 -85.9763 - 0 54.7576 1571 3 1 134.542 -13.5941 -114.45 - 0 55.6428 1572 3 1 134.55 -13.5988 -114.643 - 0 123.387 832 3 0 134.589 -13.636 -115.85 - 0 116.062 824 2 0 133.948 -15.143 -145.85 - 0 108.696 1561 1 1 132.409 -17.9612 -174.45 - 0 125.854 809 1 0 132.468 -18.0966 -175.85 - 0 322.157 1569 0 1 134.098 -20.9149 -204.45 - 0 95.2975 794 0 0 134.129 -21.0543 -205.85 - 0 48.4366 1097 1 1 39.591 -37.731 -174.45 - 0 168.395 1098 1 1 39.65 -37.778 -174.563 - 0 161.927 702 1 0 40.0934 -39.5017 -175.85 - 0 87.9335 1565 5 1 133.335 -11.7341 -54.45 - 0 131.068 841 5 0 133.283 -11.7694 -55.8501 - 0 113.835 1558 4 1 131.904 -12.5241 -84.45 - 0 98.4565 837 4 0 131.794 -12.6252 -85.85 - 0 3.74846 836 4 0 131.767 -12.65 -86.2293 - 0 161.357 1549 3 1 129.951 -14.5167 -114.45 - 0 160.244 826 3 0 129.975 -14.6634 -115.85 - 0 122.625 1554 2 1 130.996 -17.7402 -144.45 - 0 124.39 810 2 0 131.193 -17.9269 -145.851 - 0 236.027 1576 1 1 135.468 -22.0956 -174.45 - 0 37.1419 1577 1 1 135.55 -22.1563 -174.795 - 0 133.993 789 1 0 135.809 -22.2123 -175.85 - 0 103.652 1612 0 1 142.683 -24.2105 -204.451 - 0 77.6482 1613 0 1 142.75 -24.2246 -204.609 - 0 133.659 778 0 0 143.386 -24.3799 -205.85 - 0 207.266 790 1 0 135.083 -21.8582 -175.85 - 0 103.463 754 0 0 141.386 -29.0866 -206.25 - 0 90.4112 755 0 0 141.356 -29.05 -206.154 - 0 92.7482 1604 0 1 141.035 -28.9197 -204.85 - 0 27.5907 1603 0 1 140.95 -28.9676 -204.556 - 0 430.622 1556 1 1 131.478 -7.39298 -174.45 - 0 258.91 864 1 0 131.278 -7.201 -175.85 - 0 37.8173 1512 0 1 122.58 -7.68535 -204.45 - 0 93.9191 1511 0 1 122.55 -7.76141 -204.575 - 0 38.1125 856 0 0 122.138 -8.75854 -205.85 - 0 98.3341 855 0 0 122.09 -8.85 -205.978 - 0 10.2717 863 1 0 131.33 -7.25267 -175.851 - 0 73.9263 1533 0 1 126.772 -4.54737 -204.45 - 0 55.5223 1532 0 1 126.75 -4.55204 -204.717 - 0 178.716 877 0 0 126.654 -4.54835 -205.85 - 0 190.412 861 1 0 131.511 -7.70711 -175.85 - 0 35.7594 860 1 0 131.543 -7.85 -176.118 - 0 22.5646 675 1 0 138.495 -45.0177 -176.25 - 0 93.0518 674 1 0 138.493 -45.05 -176.17 - 0 23.974 1591 1 1 138.364 -45.6776 -174.85 - 0 97.1789 1590 1 1 138.35 -45.7175 -174.774 - 0 323.888 646 2 0 134.541 -50.7688 -146.25 - 0 309.947 645 2 0 134.584 -50.85 -145.877 - 0 3.20967 1573 2 1 134.945 -51.1536 -144.85 - 0 146.744 1574 2 1 134.95 -51.1584 -144.836 - 0 77.6682 1575 2 1 135.15 -51.3139 -144.451 - 0 71.7105 1576 2 1 135.35 -51.5205 -144.614 - 0 22.3851 1577 2 1 135.55 -51.5635 -144.807 - 0 232.783 644 2 0 138.029 -51.05 -146.199 - 0 0.23434 1297 2 0 75.2707 79.6492 -146.25 - 0 87.836 1298 2 0 75.2702 79.65 -146.249 - 0 47.8272 1113 2 0 67.4636 42.7638 -146.25 -Number of digits in this event = 51 -Using G4ParticleGun ... -4.03359 LIN -e- +Number of tracker hits in this event: 22 + 0 153.735 1518 9 1 123.856 30.0739 65.55 + 0 152.823 1050 9 0 123.857 30.0737 64.15 + 0 114.165 1518 8 1 123.887 30.0692 35.55 + 0 211.12 1050 8 0 123.887 30.0687 34.15 + 0 209.576 1518 7 1 123.9 30.0608 5.55 + 0 157.764 1050 7 0 123.902 30.0617 4.15 + 0 105.118 1518 6 1 123.932 30.0839 -24.45 + 0 120.147 1050 6 0 123.933 30.0847 -25.85 + 0 118.095 1519 5 1 123.96 30.0994 -54.45 + 0 118.367 1050 5 0 123.959 30.1002 -55.85 + 0 103.555 1518 4 1 123.926 30.1113 -84.45 + 0 167.811 1050 4 0 123.925 30.1117 -85.85 + 0 124.147 1518 3 1 123.89 30.1217 -114.45 + 0 121.401 1050 3 0 123.888 30.1232 -115.85 + 0 142.764 1518 2 1 123.85 30.1558 -144.45 + 0 121.462 1050 2 0 123.848 30.1566 -145.85 + 0 116.9 1518 1 1 123.82 30.1717 -174.45 + 0 106.109 1050 1 0 123.818 30.1732 -175.85 + 0 324.5 1518 0 1 123.775 30.208 -204.45 + 0 120.307 1050 0 0 123.773 30.2091 -205.85 + 0 26.0963 1375 4 1 95.1745 53.6347 -84.85 + 0 67.5226 1374 4 1 95.15 53.6511 -84.7373 +Number of digits in this event: 16 +Using G4ParticleGun... +Particle energy: 9.57068 LIN +Particle: e- Event: 1 -Number of tracker hits in this event = 88 - 1 178.596 342 10 1 -111.677 -17.4397 95.55 - 1 123.617 813 10 0 -111.678 -17.4392 94.15 - 1 99.9991 342 9 1 -111.7 -17.4326 65.55 - 1 103.928 813 9 0 -111.7 -17.4307 64.15 - 1 98.255 342 8 1 -111.709 -17.3915 35.55 - 1 131.258 813 8 0 -111.709 -17.3898 34.15 - 1 151.633 342 7 1 -111.697 -17.3481 5.55 - 1 109.581 813 7 0 -111.695 -17.3455 4.15 - 1 100.699 342 6 1 -111.648 -17.2779 -24.45 - 1 416.627 813 6 0 -111.647 -17.2725 -25.85 - 1 170.513 342 5 1 -111.618 -17.1456 -54.45 - 1 111.86 814 5 0 -111.618 -17.1421 -55.85 - 1 117.476 342 4 1 -111.605 -17.082 -84.45 - 1 121.841 814 4 0 -111.605 -17.0848 -85.85 - 1 613.626 342 3 1 -111.57 -17.1498 -114.45 - 1 192.755 814 3 0 -111.572 -17.1516 -115.85 - 1 121.641 342 2 1 -111.61 -17.2024 -144.45 - 1 116.668 814 2 0 -111.616 -17.2064 -145.85 - 1 118.884 342 1 1 -111.745 -17.2963 -174.45 - 1 124.365 813 1 0 -111.752 -17.2989 -175.85 - 1 212.921 341 0 1 -111.902 -17.3489 -204.45 - 1 156.639 813 0 0 -111.904 -17.352 -205.85 - 1 59.483 441 2 1 -91.75 35.8053 -144.829 - 1 71.6065 95 2 0 -93.1084 -161.115 -146.25 - 1 310.117 341 3 1 -111.762 -17.4323 -114.452 - 1 183.762 812 3 0 -111.764 -17.4533 -115.85 - 1 1.14305 341 2 1 -111.95 -17.6885 -144.45 - 1 101.962 340 2 1 -111.95 -17.6885 -144.452 - 1 127.872 811 2 0 -111.964 -17.7042 -145.85 - 1 114.006 339 1 1 -112.295 -18.0443 -174.45 - 1 127.178 810 1 0 -112.33 -17.9982 -175.851 - 1 48.3495 335 0 1 -113.14 -16.8694 -204.45 - 1 61.4104 334 0 1 -113.15 -16.8605 -204.623 - 1 103.849 816 0 0 -113.215 -16.8018 -205.85 - 1 8.60585 552 2 0 -59.0879 -69.5675 -146.25 - 1 585.82 813 3 0 -111.769 -17.4049 -115.85 - 1 156.293 355 2 1 -109.094 -4.85477 -144.45 - 1 111.756 878 2 0 -108.681 -4.42718 -145.85 - 1 82.3337 405 1 1 -98.9991 1.8606 -174.45 - 1 27.2398 404 1 1 -99.15 1.75183 -174.741 - 1 91.9436 906 1 0 -99.6835 1.36257 -175.851 - 1 21.7738 905 1 0 -99.8341 1.24987 -176.165 - 1 29.4978 343 0 1 -111.485 -8.6922 -204.45 - 1 64.0435 342 0 1 -111.552 -8.65881 -204.511 - 1 13.1785 340 0 1 -111.95 -8.40336 -204.826 - 1 216.916 862 0 0 -113.357 -7.51171 -205.85 - 1 328.942 863 0 0 -113.456 -7.44988 -205.923 - 1 125.991 864 0 0 -113.766 -7.24993 -206.136 - 1 79.0545 955 7 0 -163.4 11.1017 3.75 - 1 134.88 346 2 1 -110.949 -17.8141 -144.45 - 1 106.944 810 2 0 -110.921 -17.85 -145.914 - 1 128.213 349 1 1 -110.269 -18.2902 -174.45 - 1 118.33 808 1 0 -110.308 -18.3496 -175.85 - 1 120.078 345 0 1 -111.067 -19.5303 -204.45 - 1 153.761 802 0 0 -111.06 -19.5921 -205.85 - 1 38.1593 391 2 1 -101.852 -16.968 -144.45 - 1 78.9898 392 2 1 -101.75 -16.9725 -144.529 - 1 76.4584 393 2 1 -101.55 -16.982 -144.683 - 1 46.5022 394 2 1 -101.35 -16.9927 -144.839 - 1 219.553 815 2 0 -100.053 -17.0383 -145.85 - 1 107.298 691 1 1 -41.8412 -13.7865 -174.45 - 1 58.9224 692 1 1 -41.65 -13.7935 -174.624 - 1 24.7321 693 1 1 -41.45 -13.7987 -174.809 - 1 69.2988 831 1 0 -40.3534 -13.8478 -175.85 - 1 116.04 830 1 0 -40.2329 -13.85 -175.963 - 1 133.498 852 0 1 -9.50388 -13.9745 -204.45 - 1 104.373 853 0 1 -9.45 -13.9592 -204.543 - 1 135.057 831 0 0 -8.63258 -13.7352 -205.85 - 1 40.4493 742 0 0 25.4374 -31.5308 -206.25 - 1 109.412 741 0 0 25.5493 -31.6505 -206.139 - 1 53.2038 740 0 0 25.8189 -31.85 -205.935 - 1 1.86233 1033 0 1 26.8456 -32.3413 -204.85 - 1 71.7825 1034 0 1 26.85 -32.3433 -204.845 - 1 78.9026 1035 0 1 27.05 -32.3915 -204.631 - 1 51.6719 1036 0 1 27.25 -32.4601 -204.472 - 1 82.5516 1037 0 1 27.4503 -32.5255 -204.498 - 1 65.2837 1038 0 1 27.65 -32.5842 -204.577 - 1 62.6334 1039 0 1 27.8501 -32.6595 -204.613 - 1 50.3409 1040 0 1 28.0506 -32.7183 -204.608 - 1 118.895 1041 0 1 28.25 -32.7072 -204.691 - 1 123.425 737 0 0 28.8246 -32.6399 -205.85 - 1 116.076 662 0 0 57.0625 -47.5791 -206.25 - 1 315.38 661 0 0 57.1241 -47.65 -206.223 - 1 131.228 1042 0 1 28.45 -32.7471 -204.749 - 1 34.1524 851 0 1 -9.65014 -13.7112 -204.747 - 1 358.895 840 0 1 -11.8865 -15.5131 -204.85 - 1 32.3853 809 3 0 -108.122 -18.0757 -115.85 - 1 86.1021 361 3 1 -107.858 -17.8247 -114.85 -Number of digits in this event = 35 -Using G4ParticleGun ... -5.53715 LIN -e- +Number of tracker hits in this event: 53 + 1 182.681 1579 8 1 136.122 30.9003 35.55 + 1 176.846 1054 8 0 136.121 30.9006 34.15 + 1 220.267 1579 7 1 136.061 30.9804 5.55 + 1 135.043 1054 7 0 136.058 30.9834 4.15 + 1 131.102 1579 6 1 136.005 31.0473 -24.45 + 1 103.95 1055 6 0 136.005 31.0547 -25.85 + 1 455.646 1579 5 1 135.997 31.2234 -54.45 + 1 91.7734 1055 5 0 135.995 31.2353 -55.85 + 1 388.138 1579 4 1 135.965 31.4801 -84.45 + 1 142.815 1057 4 0 135.965 31.49 -85.85 + 1 263.062 1579 3 1 135.961 31.6806 -114.45 + 1 124.537 1058 3 0 135.957 31.688 -115.85 + 1 156.758 1578 2 1 135.868 31.8218 -144.45 + 1 127.748 1058 2 0 135.861 31.8278 -145.85 + 1 145.345 1577 1 1 135.73 31.9522 -174.45 + 1 120.079 1059 1 0 135.727 31.9621 -175.85 + 1 177.028 1577 0 1 135.645 32.1784 -204.45 + 1 143.789 1060 0 0 135.65 32.1962 -205.85 + 1 61.9423 1378 0 1 95.9397 9.90937 -204.85 + 1 48.4094 1050 6 0 139.523 30.1203 -25.85 + 1 126.042 1049 6 0 139.539 30.05 -25.8737 + 1 226.177 1699 8 0 97.4529 160.071 33.75 + 1 28.0385 1380 8 1 96.2053 160.08 35.1505 + 1 94.197 1379 8 1 96.15 160.075 35.2304 + 1 9.29702 1378 8 1 95.9496 160.032 35.5187 + 1 32.1031 1580 7 1 136.15 31.1555 5.26053 + 1 148.138 1058 7 0 136.477 31.6649 4.15 + 1 233.826 1054 5 0 136.101 30.9062 -55.85 + 1 277.688 1054 4 0 136.093 30.8927 -85.85 + 1 92.123 1054 3 0 136.14 30.9011 -115.85 + 1 337.274 1580 2 1 136.155 30.8875 -144.45 + 1 237.352 1054 2 0 136.157 30.8853 -145.85 + 1 107.117 1580 1 1 136.202 30.8571 -174.45 + 1 154.942 1054 1 0 136.203 30.8543 -175.85 + 1 98.9964 1580 0 1 136.22 30.7955 -204.45 + 1 260.193 1053 0 0 136.217 30.792 -205.85 + 1 113.515 1580 3 1 136.213 30.8332 -114.45 + 1 123.108 1053 3 0 136.217 30.8357 -115.85 + 1 383.907 1579 1 1 136.084 30.7467 -174.45 + 1 401.835 1053 1 0 136.074 30.7425 -175.85 + 1 125.493 1578 0 1 135.825 30.7058 -204.45 + 1 99.1277 1574 0 1 135.124 30.7828 -204.45 + 1 268.098 1575 0 1 135.15 30.7609 -204.639 + 1 147.301 1052 0 0 135.342 30.607 -205.85 + 1 70.0625 1050 0 0 135.245 30.1906 -205.85 + 1 109.908 1049 0 0 135.235 30.05 -206.066 + 1 129.709 1042 0 0 134.896 28.4858 -205.85 + 1 206.78 1012 0 0 124.428 22.5422 -206.25 + 1 42.847 1580 6 1 136.236 30.9417 -24.45 + 1 93.7667 1581 6 1 136.35 30.9156 -24.5668 + 1 34.9815 1582 6 1 136.55 30.8631 -24.7647 + 1 102.406 1052 6 0 137.652 30.5415 -25.8501 + 1 68.9823 1051 6 0 137.907 30.45 -26.1097 +Number of digits in this event: 36 +Using G4ParticleGun... +Particle energy: 5.21205 LIN +Particle: e- Event: 2 -Number of tracker hits in this event = 104 - 2 181.092 1191 11 1 58.3589 30.2195 125.55 - 2 196.262 1050 11 0 58.3596 30.2201 124.15 - 2 133.533 1191 10 1 58.3777 30.2341 95.55 - 2 120.37 1050 10 0 58.3783 30.2353 94.15 - 2 98.0209 1191 9 1 58.387 30.2661 65.55 - 2 109.533 1051 9 0 58.3882 30.2673 64.15 - 2 117.901 1191 8 1 58.4146 30.2881 35.55 - 2 134.399 1051 8 0 58.4174 30.29 34.15 - 2 235.1 1192 7 1 58.4833 30.3262 5.55 - 2 251.281 1051 7 0 58.4859 30.3272 4.15 - 2 113.747 1192 6 1 58.5333 30.3507 -24.45 - 2 106.34 1051 6 0 58.5359 30.3517 -25.85 - 2 145.957 1192 5 1 58.5862 30.3692 -54.45 - 2 110.514 1051 5 0 58.5914 30.3736 -55.85 - 2 360.636 1193 4 1 58.6669 30.4438 -84.45 - 2 376.329 1051 4 0 58.6711 30.4488 -85.85 - 2 14.1265 1052 4 0 58.672 30.45 -86.1704 - 2 332.706 1193 3 1 58.7433 30.5469 -114.45 - 2 320.309 1052 3 0 58.7539 30.5548 -115.85 - 2 228.175 1194 2 1 58.9843 30.7419 -144.45 - 2 199.913 1053 2 0 58.9927 30.7463 -145.85 - 2 122.653 1195 1 1 59.148 30.8055 -174.45 - 2 111.515 1053 1 0 59.151 30.8173 -175.85 - 2 174.143 1195 0 1 59.2251 31.0429 -204.45 - 2 228.697 1055 0 0 59.2276 31.0515 -205.85 - 2 114.27 1051 3 0 58.8407 30.3172 -115.85 - 2 123.359 1051 2 0 58.9209 30.4165 -145.85 - 2 113.8 1192 1 1 58.5129 30.6152 -174.45 - 2 124.463 1052 1 0 58.4863 30.6148 -175.85 - 2 110.567 1189 0 1 57.9159 30.6466 -204.45 - 2 204.611 1053 0 0 57.8972 30.6613 -205.85 - 2 9.86705 913 5 1 2.78091 50.3982 -54.85 - 2 146.868 1193 2 1 58.7756 30.6875 -144.45 - 2 274.392 1193 1 1 58.7565 30.9717 -174.45 - 2 102.56 1054 1 0 58.7538 30.9753 -175.85 - 2 124.362 1193 0 1 58.7003 31.0794 -204.45 - 2 19.3325 1294 8 1 78.85 114.232 35.2732 - 2 209.433 1644 5 0 5.07553 148.95 -56.0987 - 2 97.8382 649 6 0 -12.018 -50.1401 -26.25 - 2 86.2532 650 6 0 -12.098 -50.05 -26.2087 - 2 196.821 1192 2 1 58.4514 30.4958 -144.45 - 2 145.023 1191 2 1 58.45 30.4959 -144.507 - 2 241.938 1052 2 0 58.4229 30.4971 -145.85 - 2 134.289 1191 1 1 58.2846 30.1824 -174.45 - 2 102.327 1050 1 0 58.293 30.222 -175.85 - 2 96.475 1190 0 1 58.2175 31.1893 -204.451 - 2 134.761 1056 0 0 58.2547 31.2927 -205.85 - 2 142.155 1443 2 1 108.75 -135.006 -144.625 - 2 46.0151 1060 1 0 58.6118 32.2349 -175.85 - 2 80.8517 1061 1 0 58.5888 32.25 -175.993 - 2 88.0909 1171 0 1 54.2727 35.2401 -204.45 - 2 65.7215 1170 0 1 54.25 35.2818 -204.658 - 2 109.346 1077 0 0 54.1234 35.5185 -205.85 - 2 230.853 1191 7 1 58.4247 30.2474 5.55 - 2 18.2317 1049 7 0 58.4158 29.8648 4.15 - 2 110.877 1048 7 0 58.4143 29.85 4.09343 - 2 206.101 1199 6 1 59.8554 22.0419 -24.45 - 2 4.72493 1003 6 0 60.1219 20.6615 -25.85 - 2 100.675 1002 6 0 60.1243 20.65 -25.8621 - 2 13.3518 1001 6 0 60.2025 20.45 -26.2002 - 2 39.3986 1231 5 1 66.2598 2.83896 -54.4503 - 2 138.658 1230 5 1 66.2499 2.83011 -54.5812 - 2 174.969 914 5 0 66.1274 2.85125 -55.8507 - 2 387.666 1219 4 1 63.9863 4.46783 -84.45 - 2 194.646 913 5 0 66.0795 2.85 -56.1458 - 2 57.4372 1052 7 0 58.5302 30.45 3.9203 - 2 103.333 1202 6 1 60.5071 34.3214 -24.45 - 2 27.9126 1072 6 0 60.6694 34.6272 -25.85 - 2 83.9287 1073 6 0 60.6813 34.65 -25.958 - 2 27.9857 1218 5 1 63.8248 40.5085 -54.45 - 2 102.891 1219 5 1 63.85 40.5005 -54.5637 - 2 124.605 1101 5 0 64.1357 40.4427 -55.85 - 2 134.814 1247 4 1 69.4802 39.6835 -84.4501 - 2 104.162 1095 4 0 69.9194 39.1784 -85.85 - 2 9.82061 1094 4 0 70.0481 39.05 -86.2103 - 2 123.425 1307 3 1 81.4681 28.6873 -114.45 - 2 89.8575 1308 3 1 81.65 28.5242 -114.639 - 2 10.8093 1309 3 1 81.85 28.359 -114.839 - 2 23.1851 1037 3 0 82.8824 27.4961 -115.85 - 2 110.857 1036 3 0 82.9395 27.45 -115.906 - 2 54.7794 1035 3 0 83.1636 27.25 -116.14 - 2 212.698 1440 2 1 108.164 0.393845 -144.45 - 2 2.13826 1441 2 1 108.413 -0.05 -144.845 - 2 0.126918 895 2 0 109.157 -1.0486 -145.85 - 2 108.747 894 2 0 109.158 -1.05019 -145.852 - 2 116.411 893 2 0 109.315 -1.25 -146.067 - 2 16.2959 1569 1 1 134.12 -26.1245 -174.45 - 2 101.851 1570 1 1 134.15 -26.1276 -174.492 - 2 34.8352 1571 1 1 134.35 -26.1392 -174.749 - 2 167.537 769 1 0 135.302 -26.1809 -175.85 - 2 7.75255 1759 0 1 172.125 -20.0799 -204.45 - 2 58.409 1760 0 1 172.15 -20.0735 -204.465 - 2 132.978 1761 0 1 172.35 -20.022 -204.585 - 2 113.258 1762 0 1 172.55 -19.9661 -204.712 - 2 1.51899 1763 0 1 172.75 -19.909 -204.845 - 2 158.899 802 0 0 174.237 -19.5564 -205.85 - 2 243.101 1254 2 1 70.9133 58.1545 -144.45 - 2 41.5695 1255 2 1 71.05 58.5297 -144.778 - 2 59.6805 1198 2 0 72.1718 59.7385 -145.85 - 2 196.212 1199 2 0 72.2936 59.85 -145.972 - 2 126.507 1086 2 0 148.179 37.3979 -146.25 - 2 85.8063 1638 2 1 147.933 38.0218 -144.85 - 2 70.2566 1639 2 1 147.95 38.0614 -144.686 - 2 131.866 1192 2 0 70.6974 58.4668 -145.85 -Number of digits in this event = 50 -Using G4ParticleGun ... -7.5201 LIN -e- +Number of tracker hits in this event: 18 + 2 225.773 486 7 1 -82.663 121.062 5.55 + 2 129.204 1504 7 0 -82.6637 121.062 4.15 + 2 136.692 486 6 1 -82.6806 121.065 -24.45 + 2 134.83 1504 6 0 -82.6814 121.066 -25.85 + 2 145.813 486 5 1 -82.6946 121.082 -54.45 + 2 181.77 1504 5 0 -82.6933 121.08 -55.85 + 2 118.093 486 4 1 -82.6647 121.053 -84.45 + 2 153.332 1504 4 0 -82.6633 121.052 -85.85 + 2 149.62 487 3 1 -82.6402 121.047 -114.45 + 2 184.894 1504 3 0 -82.6426 121.049 -115.85 + 2 128.864 486 2 1 -82.6931 121.092 -144.45 + 2 113.915 1504 2 0 -82.6972 121.093 -145.85 + 2 250.83 486 1 1 -82.7871 121.12 -174.45 + 2 171.183 1504 1 0 -82.7901 121.122 -175.85 + 2 106.454 486 0 1 -82.8465 121.172 -204.45 + 2 109.922 1505 0 0 -82.8478 121.173 -205.85 + 2 36.6556 486 3 1 -82.6502 121.062 -114.744 + 2 147.087 1508 3 0 -83.0257 121.806 -115.85 +Number of digits in this event: 16 +Using G4ParticleGun... +Particle energy: 4.2066 LIN +Particle: e- Event: 3 -Number of tracker hits in this event = 86 - 3 241.067 633 11 1 -53.2505 -6.73652 125.55 - 3 141.872 866 11 0 -53.2525 -6.73784 124.15 - 3 119.221 633 10 1 -53.2923 -6.77095 95.55 - 3 199.095 866 10 0 -53.2936 -6.77205 94.15 - 3 113.793 633 9 1 -53.321 -6.79014 65.55 - 3 112.242 866 9 0 -53.3216 -6.79073 64.15 - 3 397.009 633 8 1 -53.3323 -6.80374 35.55 - 3 159.328 866 8 0 -53.3328 -6.80364 34.15 - 3 121.313 633 7 1 -53.3419 -6.80275 5.55 - 3 124.742 866 7 0 -53.3421 -6.80238 4.15 - 3 187.522 633 6 1 -53.3437 -6.7982 -24.45 - 3 207.504 866 6 0 -53.3437 -6.79867 -25.85 - 3 124.563 633 5 1 -53.3404 -6.80709 -54.45 - 3 122.565 866 5 0 -53.3416 -6.80821 -55.85 - 3 113.396 633 4 1 -53.3677 -6.83291 -84.45 - 3 108.6 866 4 0 -53.3682 -6.83295 -85.85 - 3 149.055 633 3 1 -53.3792 -6.83427 -114.45 - 3 212.544 866 3 0 -53.3802 -6.83402 -115.85 - 3 153.506 633 2 1 -53.3974 -6.82846 -144.45 - 3 119.452 866 2 0 -53.3983 -6.82764 -145.85 - 3 128.664 633 1 1 -53.4133 -6.80882 -174.45 - 3 100.403 866 1 0 -53.4127 -6.80695 -175.85 - 3 122.959 633 0 1 -53.4026 -6.77026 -204.45 - 3 122.986 866 0 0 -53.402 -6.76776 -205.85 - 3 310.387 1259 3 0 -124.942 71.9139 -116.25 - 3 113.886 863 2 0 -54.7087 -7.28964 -145.85 - 3 321.836 872 8 0 -54.158 -5.55325 34.15 - 3 35.9562 867 8 0 -53.613 -6.49169 34.15 - 3 204.472 868 8 0 -53.6525 -6.45 34.0064 - 3 118.252 578 7 1 -64.3885 1.96461 5.55 - 3 29.9634 912 7 0 -64.3543 2.59381 4.15 - 3 99.6223 913 7 0 -64.3542 2.65 4.02713 - 3 51.6433 592 6 1 -61.5819 14.8125 -24.45 - 3 70.5097 593 6 1 -61.4495 14.7304 -24.6164 - 3 31.1748 594 6 1 -61.25 14.6556 -24.7792 - 3 171.141 972 6 0 -60.0527 14.4941 -25.85 - 3 64.1529 713 5 1 -37.2521 14.5918 -54.4502 - 3 157.791 714 5 1 -37.25 14.605 -54.4557 - 3 66.4403 976 5 0 -39.2131 15.3931 -55.85 - 3 81.6958 977 5 0 -39.3853 15.45 -55.9615 - 3 84.119 978 5 0 -39.4515 15.65 -56.125 - 3 25.4679 979 5 0 -39.3414 15.85 -56.2196 - 3 351.857 1618 5 0 103.755 143.757 -56.25 - 3 118.406 1619 5 0 103.918 143.95 -55.8857 - 3 9.95011 1073 4 0 -67.6323 34.65 -85.8527 - 3 110.971 710 4 1 -38.0106 -28.4488 -84.45 - 3 12.9847 924 3 0 -64.0448 5.04758 -115.85 - 3 358.549 805 3 0 -52.6246 -19.0015 -116.25 - 3 266.164 804 3 0 -52.5918 -19.05 -116.222 - 3 176.693 646 3 1 -50.828 -18.2207 -114.85 - 3 218.795 645 3 1 -50.85 -18.2948 -114.494 - 3 33.633 865 3 0 -53.4131 -6.85014 -116.049 - 3 195.305 627 8 1 -54.45 -4.80018 35.3834 - 3 54.2162 869 8 0 -53.2057 -6.25 33.9495 - 3 198.06 642 7 1 -51.5046 1.86795 5.54947 - 3 77.2322 915 7 0 -51.3521 3.08164 4.15 - 3 74.7875 916 7 0 -51.3283 3.25029 3.97022 - 3 8.61639 917 7 0 -51.3003 3.45023 3.77636 - 3 101.133 662 6 1 -47.6401 35.3306 -24.45 - 3 26.833 663 6 1 -47.4499 35.4782 -24.759 - 3 60.9315 1079 6 0 -46.9358 35.9452 -25.85 - 3 55.4101 1080 6 0 -46.8293 36.05 -26.0508 - 3 64.289 1197 6 0 -20.2837 59.5618 -26.25 - 3 268.679 1198 6 0 -20.2032 59.65 -26.1738 - 3 105.679 1199 6 0 -20.3004 59.8503 -25.8955 - 3 120.133 810 6 1 -18.0328 58.8301 -24.8499 - 3 151.123 1109 10 0 75.0323 41.9901 93.7501 - 3 196.397 1110 10 0 75.1509 42.05 93.8344 - 3 4.09892 634 11 1 -53.2357 -6.83682 125.55 - 3 72.6876 632 11 1 -53.4502 -7.01641 125.283 - 3 27.5765 631 11 1 -53.65 -7.04824 125.191 - 3 120.597 861 11 0 -55.6004 -7.76262 124.15 - 3 3.27435 611 11 1 -57.8451 -10.2318 125.15 - 3 137.207 610 11 1 -57.85 -10.238 125.153 - 3 63.2173 609 11 1 -58.0502 -10.3571 125.424 - 3 127.455 817 9 0 -29.9533 -16.5592 63.75 - 3 16.3962 752 9 1 -29.4632 -16.5528 65.1501 - 3 91.5421 753 9 1 -29.4499 -16.5519 65.1998 - 3 20.9942 783 10 0 -18.3689 -23.2764 93.75 - 3 18.8609 1124 11 1 44.85 21.2581 125.288 - 3 77.2553 1136 11 1 47.25 19.3127 125.269 - 3 104.527 1123 11 1 44.85 21.2799 125.305 - 3 93.1544 376 11 1 -104.75 -50.1169 125.251 - 3 275.537 739 9 0 -62.4718 -32.096 63.7501 - 3 132.999 738 9 0 -63.0733 -32.25 64.0016 - 3 309.237 737 9 0 -63.3041 -32.4501 63.9219 -Number of digits in this event = 42 -Using G4ParticleGun ... -6.28107 LIN -e- +Number of tracker hits in this event: 195 + 3 204.383 1209 11 1 61.885 -36.841 125.55 + 3 115.537 716 11 0 61.8839 -36.8406 124.15 + 3 477.58 1209 10 1 61.8589 -36.8308 95.55 + 3 289.947 716 10 0 61.86 -36.8281 94.15 + 3 361.401 1209 9 1 61.8794 -36.7701 65.55 + 3 284.35 716 9 0 61.8794 -36.7707 64.15 + 3 128.834 1209 8 1 61.8895 -36.7771 35.55 + 3 246.062 716 8 0 61.8912 -36.7735 34.15 + 3 138.994 1209 7 1 61.9419 -36.6953 5.55 + 3 135.509 716 7 0 61.9403 -36.6906 4.15 + 3 128.677 1209 6 1 61.8854 -36.5924 -24.45 + 3 108.556 717 6 0 61.8816 -36.5865 -25.85 + 3 106.078 1208 5 1 61.7964 -36.4708 -54.45 + 3 212.246 717 5 0 61.7937 -36.4691 -55.85 + 3 108.903 1208 4 1 61.7275 -36.4158 -84.45 + 3 270.586 718 4 0 61.7251 -36.4099 -85.85 + 3 106.123 1208 3 1 61.6771 -36.2946 -114.45 + 3 97.5618 718 3 0 61.6804 -36.2885 -115.85 + 3 105.164 1208 2 1 61.7447 -36.1249 -144.45 + 3 183.05 719 2 0 61.7411 -36.1262 -145.85 + 3 111.702 1208 1 1 61.7091 -36.1215 -174.45 + 3 113.096 719 1 0 61.7103 -36.1329 -175.85 + 3 282.158 1208 0 1 61.7347 -36.3821 -204.45 + 3 245.625 718 0 0 61.7274 -36.3959 -205.85 + 3 352.047 1209 0 1 61.9902 -35.8251 -204.45 + 3 102.95 720 0 0 61.9796 -35.9269 -205.85 + 3 224.209 723 0 0 61.494 -35.271 -205.85 + 3 28.1724 724 0 0 61.4548 -35.25 -206.078 + 3 304.222 721 0 0 62.0274 -35.8425 -205.85 + 3 94.6703 1207 0 1 61.5697 -36.2659 -204.45 + 3 105.002 714 0 0 62.6988 -37.1849 -205.85 + 3 219.658 713 0 0 62.7815 -37.2503 -205.951 + 3 361.521 719 0 0 63.9693 -36.1952 -205.85 + 3 122.617 717 0 0 65.0535 -36.45 -205.992 + 3 165.799 716 0 0 65.4947 -36.65 -205.977 + 3 173.736 715 0 0 66.0036 -36.85 -205.966 + 3 66.3466 1243 0 1 68.6697 -38.0037 -204.85 + 3 64.1818 1244 0 1 68.8514 -38.1038 -204.792 + 3 76.9293 1245 0 1 69.05 -38.2385 -204.718 + 3 61.0249 1246 0 1 69.2501 -38.2866 -204.696 + 3 68.1631 1247 0 1 69.45 -38.2765 -204.64 + 3 116.281 1248 0 1 69.65 -38.2633 -204.663 + 3 230.532 1249 0 1 69.8501 -38.2782 -204.689 + 3 155.1 1229 0 1 66.0236 -36.579 -204.85 + 3 214.527 1230 0 1 66.0502 -36.5522 -204.815 + 3 108.501 715 8 0 61.9446 -36.8501 33.8306 + 3 21.0702 1208 9 1 61.8376 -36.7828 65.55 + 3 147.415 715 9 0 62.1573 -36.9758 64.1498 + 3 98.3958 714 9 0 62.2334 -37.05 63.7517 + 3 278.474 1236 8 1 67.4461 -44.3948 35.55 + 3 66.5972 672 8 0 67.4214 -45.4775 34.1495 + 3 56.985 671 8 0 67.3933 -45.65 33.9604 + 3 19.7685 670 8 0 67.3646 -45.85 33.8015 + 3 53.3694 261 8 0 76.858 -127.833 33.75 + 3 78.8775 260 8 0 76.9152 -127.95 33.8526 + 3 53.1499 259 8 0 77.0119 -128.15 34.0256 + 3 78.4569 1287 8 1 77.5725 -129.622 35.15 + 3 118.995 1288 8 1 77.65 -129.841 35.3153 + 3 291.697 254 9 0 86.3082 -129.311 63.7502 + 3 175.452 1332 9 1 86.63 -129.478 65.15 + 3 111.919 1333 9 1 86.65 -129.496 65.2709 + 3 122.79 192 10 0 74.9025 -141.573 93.75 + 3 40.0692 1271 10 1 74.3001 -142.242 95.1501 + 3 105.269 1270 10 1 74.2499 -142.303 95.2677 + 3 67.5232 1586 11 1 137.493 -62.898 125.55 + 3 288.913 1585 11 1 137.35 -62.9575 125.446 + 3 107.86 1212 9 1 62.5611 -36.4002 65.55 + 3 196.746 718 9 0 62.5694 -36.3976 64.15 + 3 197.004 1213 8 1 62.7415 -36.1904 35.55 + 3 136.163 719 8 0 62.7649 -36.1957 34.15 + 3 125.012 1215 7 1 63.2135 -36.3719 5.55 + 3 119.462 718 7 0 63.2315 -36.3761 4.15 + 3 315.434 1217 6 1 63.5285 -36.431 -24.45 + 3 172.839 718 6 0 63.5589 -36.4337 -25.85 + 3 112.407 1221 5 1 64.2777 -36.5123 -54.45 + 3 247.792 1226 4 1 65.2501 -36.4778 -84.45 + 3 14.3763 1238 3 1 67.8446 -35.7802 -114.45 + 3 103.347 1239 3 1 67.85 -35.7779 -114.512 + 3 108.273 721 3 0 67.9662 -35.7276 -115.85 + 3 44.2879 1251 2 1 70.4382 -34.6935 -144.45 + 3 89.5415 1252 2 1 70.45 -34.6895 -144.581 + 3 81.032 726 2 0 70.5573 -34.6559 -145.85 + 3 82.1768 727 2 0 70.5766 -34.65 -146.082 + 3 105.683 1264 1 1 73.0171 -34.0276 -174.45 + 3 5.3036 1265 1 1 73.05 -34.0173 -174.83 + 3 385.175 730 1 0 73.1409 -33.9919 -175.85 + 3 204.391 1278 0 1 75.7245 -33.2956 -204.45 + 3 121.68 733 0 0 75.8537 -33.2771 -205.85 + 3 48.9477 709 1 0 76.0957 -38.05 -176.068 + 3 65.3407 1280 1 1 76.1094 -38.0484 -174.85 + 3 13.4524 494 2 0 85.786 -81.208 -146.25 + 3 43.4076 493 2 0 85.8094 -81.25 -146.223 + 3 52.9679 492 2 0 85.8816 -81.4501 -146.175 + 3 87.7219 491 2 0 85.8424 -81.65 -146.108 + 3 75.0841 490 2 0 85.728 -81.85 -145.959 + 3 6.09877 1319 2 1 83.9104 -81.2982 -144.85 + 3 7.92813 499 2 0 83.6415 -80.0639 -145.85 + 3 77.1417 500 2 0 83.6392 -80.05 -145.862 + 3 103.622 501 2 0 83.6596 -79.85 -146.041 + 3 53.7458 502 2 0 83.6068 -79.6499 -146.13 + 3 25.0894 628 2 0 44.8999 -54.2788 -146.25 + 3 115.61 629 2 0 44.8847 -54.25 -146.2 + 3 76.7126 630 2 0 44.8997 -54.05 -146.189 + 3 161.725 963 2 0 29.8687 12.7755 -146.25 + 3 44.0568 717 1 0 67.5639 -36.5972 -175.85 + 3 119.798 712 0 0 66.0309 -37.6449 -205.85 + 3 134.477 1216 6 1 63.45 -36.4681 -24.6 + 3 232.765 1215 6 1 63.25 -36.6603 -24.5307 + 3 287.299 1214 6 1 63.05 -36.117 -24.5139 + 3 125.855 1213 6 1 62.85 -35.742 -24.4653 + 3 111.056 715 10 0 61.8802 -36.8543 94.15 + 3 87.2782 1210 9 1 62.05 -37.0914 65.4474 + 3 119.462 1215 8 1 63.1934 -37.8164 35.55 + 3 50.6262 711 8 0 63.2749 -37.8471 34.15 + 3 81.1193 710 8 0 63.2829 -37.85 34.0123 + 3 124.696 1224 7 1 64.8689 -38.6163 5.55 + 3 9.53759 707 7 0 64.9683 -38.6492 4.15 + 3 159.004 706 7 0 64.9707 -38.65 4.1164 + 3 114.514 1235 6 1 67.1475 -39.2916 -24.45 + 3 101.041 703 6 0 67.2286 -39.2582 -25.85 + 3 16.1865 704 6 0 67.2479 -39.25 -26.1777 + 3 104.135 1244 5 1 69.0274 -38.5568 -54.45 + 3 39.9774 1245 5 1 69.05 -38.5356 -54.722 + 3 7.579 707 5 0 69.1514 -38.4535 -55.85 + 3 102.528 708 5 0 69.1559 -38.45 -55.8994 + 3 391.129 1257 4 1 71.5055 -36.0157 -84.45 + 3 100.96 720 4 0 71.5648 -35.9529 -85.85 + 3 96.4951 1263 3 1 72.7126 -34.7852 -114.45 + 3 137.367 726 3 0 72.7219 -34.7577 -115.85 + 3 97.9935 1264 2 1 72.8683 -33.889 -144.45 + 3 112.003 730 2 0 72.8514 -33.9043 -145.85 + 3 366.906 1263 1 1 72.6624 -34.2231 -174.45 + 3 132.633 728 1 0 72.6404 -34.2803 -175.851 + 3 25.0389 1259 0 1 72.0265 -35.6096 -204.451 + 3 78.0418 1260 0 1 72.05 -35.6152 -204.569 + 3 73.7571 1128 1 1 45.85 -41.4671 -174.549 + 3 168.105 1258 4 1 71.6503 -36.0637 -84.6782 + 3 40.2627 1256 4 1 71.4358 -38.0239 -84.45 + 3 199.666 712 4 0 72.0459 -37.5362 -85.85 + 3 41.3786 713 4 0 72.1355 -37.45 -86.1054 + 3 107.064 1300 3 1 80.1452 -28.9591 -114.45 + 3 116.872 754 3 0 80.0833 -29.1601 -115.85 + 3 89.6933 1276 2 1 75.3137 -31.9863 -144.45 + 3 110.523 739 2 0 75.1744 -32.1506 -145.85 + 3 40.285 1253 1 1 70.7135 -35.0756 -174.45 + 3 94.3288 1252 1 1 70.65 -35.1488 -174.58 + 3 186.282 721 1 0 70.1792 -35.6865 -175.85 + 3 46.2927 1251 0 1 70.3523 -45.7042 -204.45 + 3 59.0911 1250 0 1 70.25 -45.6204 -204.529 + 3 80.8815 679 0 0 68.676 -44.1718 -205.85 + 3 101.177 680 0 0 68.5764 -44.05 -205.985 + 3 31.7031 681 0 0 68.4499 -43.85 -206.204 + 3 50.7039 810 0 0 29.8009 -17.923 -206.25 + 3 94.4739 811 0 0 29.6827 -17.85 -206.172 + 3 117.4 812 0 0 29.3638 -17.6499 -206.094 + 3 152.819 813 0 0 29.0437 -17.45 -206.133 + 3 85.719 814 0 0 28.7121 -17.2499 -206.193 + 3 216.533 815 0 0 28.3947 -17.0497 -206.218 + 3 42.6841 816 0 0 28.1348 -16.8499 -206.234 + 3 15.6257 1241 0 0 -29.9598 68.3989 -206.25 + 3 87.4969 1242 0 0 -29.9463 68.45 -206.224 + 3 74.8481 1243 0 0 -29.9621 68.65 -206.071 + 3 0.980093 1244 0 0 -29.9986 68.85 -205.852 + 3 225.139 749 0 1 -30.0798 69.6554 -204.85 + 3 160.043 750 0 1 -30.0499 69.7789 -204.718 + 3 241.719 748 0 1 -30.2502 70.1269 -204.73 + 3 144.407 747 0 1 -30.4502 70.2053 -204.767 + 3 439.154 746 0 1 -30.65 70.4697 -204.624 + 3 97.8718 717 0 1 -36.45 35.8178 -204.553 + 3 211.746 716 0 1 -36.65 34.9349 -204.564 + 3 123.328 709 4 0 71.6325 -38.1804 -85.85 + 3 122.772 1279 3 1 75.8745 -41.3477 -114.45 + 3 116.524 693 3 0 76.1678 -41.3208 -115.85 + 3 129.792 1307 2 1 81.5057 -40.4364 -144.45 + 3 115.229 697 2 0 81.6428 -40.5434 -145.85 + 3 139.253 1323 1 1 84.7473 -42.3889 -174.45 + 3 6.90906 687 1 0 85.0258 -42.6438 -175.85 + 3 106.248 686 1 0 85.0322 -42.65 -175.885 + 3 13.4229 1352 0 1 90.725 -48.2844 -204.45 + 3 102.436 1353 0 1 90.75 -48.2966 -204.487 + 3 25.0864 1354 0 1 90.95 -48.3997 -204.778 + 3 34.7628 656 0 0 91.716 -48.8079 -205.85 + 3 142.721 655 0 0 91.7851 -48.8502 -205.948 + 3 101.581 661 0 0 108.589 -47.7111 -206.25 + 3 54.1051 662 0 0 108.579 -47.65 -206.026 + 3 49.1835 1439 0 1 108.054 -47.0474 -204.85 + 3 107.35 1438 0 1 107.95 -47.0071 -204.737 + 3 59.5079 1437 0 1 107.75 -47.0959 -204.582 + 3 62.5444 1436 0 1 107.55 -47.2384 -204.542 + 3 88.4923 1435 0 1 107.35 -47.3042 -204.545 + 3 75.306 1434 0 1 107.15 -47.189 -204.512 + 3 131.309 1208 10 1 61.8499 -36.7811 95.4404 + 3 9.1042 1207 10 1 61.65 -36.5432 95.1704 + 3 88.0004 723 10 0 60.6067 -35.4265 94.1499 + 3 60.4131 724 10 0 60.5632 -35.25 93.9269 +Number of digits in this event: 73 +Using G4ParticleGun... +Particle energy: 7.55694 LIN +Particle: e- Event: 4 -Number of tracker hits in this event = 66 - 4 121.885 1043 11 1 28.8477 36.7706 125.55 - 4 135.147 1083 11 0 28.8482 36.7703 124.15 - 4 108.854 1044 10 1 28.857 36.7601 95.55 - 4 112.44 1083 10 0 28.858 36.7612 94.15 - 4 240.43 1044 9 1 28.8781 36.7851 65.55 - 4 110.567 1083 9 0 28.8785 36.7855 64.15 - 4 108.195 1044 8 1 28.8841 36.791 35.55 - 4 133.349 1083 8 0 28.8862 36.7886 34.15 - 4 115.363 1044 7 1 28.9225 36.7437 5.55 - 4 200.223 1083 7 0 28.9228 36.7413 4.15 - 4 143.547 1044 6 1 28.9319 36.6931 -24.45 - 4 144.779 1083 6 0 28.9325 36.693 -25.85 - 4 128.61 1044 5 1 28.9478 36.6944 -54.45 - 4 147.452 1083 5 0 28.9478 36.6952 -55.85 - 4 210.854 1044 4 1 28.9403 36.7147 -84.45 - 4 112.179 1083 4 0 28.9413 36.7158 -85.85 - 4 142.574 1044 3 1 28.9614 36.7467 -114.45 - 4 225.975 1083 3 0 28.9618 36.7488 -115.85 - 4 115.207 1044 2 1 28.9653 36.7892 -144.45 - 4 125.59 1083 2 0 28.9652 36.7896 -145.85 - 4 377.42 1044 1 1 28.9619 36.8009 -174.45 - 4 124.709 1083 1 0 28.9631 36.8012 -175.85 - 4 120.058 1044 0 1 28.9886 36.8003 -204.45 - 4 114.255 1083 0 0 28.9909 36.8005 -205.85 - 4 0.118749 1288 1 1 77.85 -43.3596 -174.601 - 4 121.174 1084 1 0 28.9067 36.8849 -175.85 - 4 128.026 1038 0 1 27.729 38.4399 -204.45 - 4 107.949 1091 0 0 27.6406 38.4102 -205.85 - 4 133.623 1085 1 0 28.8578 37.1212 -175.85 - 4 85.4781 1040 0 1 28.1909 47.0623 -204.45 - 4 31.9067 1041 0 1 28.25 47.1511 -204.726 - 4 120.28 1137 0 0 28.443 47.5354 -205.85 - 4 15.4739 1138 0 0 28.4932 47.65 -206.207 - 4 69.601 1043 4 1 28.8497 36.5755 -84.6985 - 4 164.289 1080 4 0 28.406 36.1939 -85.8505 - 4 3.74739 1079 4 0 28.2206 36.0492 -86.2361 - 4 49.0722 685 4 0 -39.0409 -42.9207 -86.25 - 4 109.241 684 4 0 -39.1377 -43.0501 -86.1673 - 4 73.4059 683 4 0 -39.2383 -43.2502 -86.0505 - 4 27.7392 682 4 0 -39.3308 -43.45 -85.9092 - 4 73.7409 700 4 1 -39.9371 -44.4976 -84.85 - 4 138.725 699 4 1 -40.05 -44.6586 -84.6703 - 4 282.01 1071 7 0 54.6206 34.2589 3.75 - 4 165.07 1070 7 0 54.67 34.25 3.82153 - 4 81.6618 1069 7 0 55.208 34.0499 3.97582 - 4 91.0583 1068 7 0 55.3727 33.8489 3.95342 - 4 207.13 1067 7 0 55.5381 33.65 3.92581 - 4 126.518 1084 9 0 28.7932 36.9247 64.15 - 4 58.3972 1017 8 1 23.4871 38.2282 35.55 - 4 85.0531 1016 8 1 23.45 38.1454 35.357 - 4 123.336 1087 8 0 23.1676 37.6012 34.1498 - 4 39.6786 1086 8 0 23.0738 37.45 33.8574 - 4 43.1971 918 8 0 -55.9065 3.67878 33.75 - 4 237.068 917 8 0 -56.0297 3.65 33.8074 - 4 10.6473 603 8 1 -59.4073 2.83679 35.1501 - 4 71.4769 602 8 1 -59.4519 2.82588 35.1681 - 4 66.9288 601 8 1 -59.65 2.77974 35.2618 - 4 66.2701 600 8 1 -59.85 2.7439 35.3661 - 4 54.3857 599 8 1 -60.0501 2.7081 35.4507 - 4 52.8898 598 8 1 -60.4127 2.44919 35.55 - 4 206.054 597 8 1 -60.45 2.296 35.4348 - 4 170.981 904 8 0 -60.7733 0.999956 34.15 - 4 105.103 903 8 0 -60.8005 0.85 34.001 - 4 172.231 902 8 0 -60.8882 0.65 33.8218 - 4 0.9911 172 11 0 -54.3158 -145.55 123.9 - 4 165.785 171 11 0 -54.3931 -145.75 124.043 -Number of digits in this event = 34 -Using G4ParticleGun ... -4.77834 LIN -e- +Number of tracker hits in this event: 32 + 4 129.229 610 9 1 -57.8606 -116.273 65.55 + 4 225.348 319 9 0 -57.8594 -116.276 64.15 + 4 121.465 611 8 1 -57.8323 -116.324 35.55 + 4 118.515 319 8 0 -57.8312 -116.328 34.15 + 4 116.115 611 7 1 -57.8068 -116.403 5.55 + 4 104.966 318 7 0 -57.8057 -116.407 4.15 + 4 126.458 611 6 1 -57.7859 -116.482 -24.45 + 4 136.218 318 6 0 -57.7851 -116.486 -25.85 + 4 105.789 611 5 1 -57.7695 -116.559 -54.45 + 4 101.597 317 5 0 -57.7692 -116.563 -55.85 + 4 115.989 611 4 1 -57.7631 -116.633 -84.45 + 4 84.4459 317 4 0 -57.7639 -116.637 -85.85 + 4 109.766 611 3 1 -57.779 -116.72 -114.45 + 4 161.524 317 3 0 -57.7797 -116.726 -115.85 + 4 136.402 611 2 1 -57.7932 -116.828 -144.45 + 4 210.75 316 2 0 -57.7933 -116.833 -145.85 + 4 406.677 611 1 1 -57.7936 -116.95 -174.45 + 4 447.677 315 1 0 -57.794 -116.956 -175.85 + 4 133.509 611 0 1 -57.806 -117.08 -204.45 + 4 125.838 315 0 0 -57.8072 -117.087 -205.85 + 4 154.971 746 2 1 -30.85 -124.83 -144.799 + 4 210.172 614 0 1 -57.2475 -120.741 -204.45 + 4 172.957 296 0 0 -57.1757 -120.832 -205.85 + 4 284.493 297 0 0 -57.1867 -120.75 -206.19 + 4 142.023 295 0 0 -56.698 -121.012 -205.85 + 4 416.911 248 0 0 -39.4646 -130.383 -206.25 + 4 173.317 705 0 1 -38.9923 -130.833 -204.85 + 4 2.33278 247 0 0 -39.1121 -130.55 -206.103 + 4 137.593 607 0 1 -58.6289 -117.278 -204.45 + 4 230.312 314 0 0 -58.6846 -117.287 -205.85 + 4 58.2194 76 0 0 -111.425 -164.878 -206.249 + 4 34.3622 77 0 0 -111.396 -164.75 -206.195 +Number of digits in this event: 23 +Using G4ParticleGun... +Particle energy: 5.43328 LIN +Particle: e- Event: 5 -Number of tracker hits in this event = 51 - 5 120.744 297 9 1 -120.661 -25.5376 65.55 - 5 108.971 772 9 0 -120.662 -25.5375 64.15 - 5 283.386 297 8 1 -120.672 -25.5336 35.55 - 5 115.939 772 8 0 -120.672 -25.5355 34.15 - 5 154.809 297 7 1 -120.677 -25.5728 5.55 - 5 120.604 772 7 0 -120.677 -25.574 4.15 - 5 195.96 297 6 1 -120.69 -25.5978 -24.45 - 5 116.931 772 6 0 -120.688 -25.5999 -25.85 - 5 186.311 297 5 1 -120.656 -25.6413 -54.45 - 5 105.816 772 5 0 -120.656 -25.6428 -55.85 - 5 104.833 297 4 1 -120.658 -25.6759 -84.45 - 5 140.891 771 4 0 -120.667 -25.6849 -85.85 - 5 125.986 296 3 1 -120.845 -25.8788 -114.45 - 5 115.258 770 3 0 -120.848 -25.8894 -115.85 - 5 128.231 296 2 1 -120.905 -26.1075 -144.45 - 5 419.549 769 2 0 -120.907 -26.1233 -145.85 - 5 116.097 296 1 1 -120.947 -26.4469 -174.45 - 5 117.702 767 1 0 -120.942 -26.4632 -175.85 - 5 117.921 296 0 1 -120.816 -26.7923 -204.45 - 5 113.545 766 0 0 -120.81 -26.8139 -205.85 - 5 114.686 295 1 1 -120.997 -26.1668 -174.45 - 5 61.771 294 1 1 -121.15 -26.0051 -174.677 - 5 66.285 775 1 0 -121.859 -25.0491 -175.85 - 5 156.451 776 1 0 -121.967 -24.85 -176.066 - 5 3.90098 777 1 0 -122.063 -24.65 -176.242 - 5 115.067 221 0 1 -135.865 6.34002 -204.45 - 5 11.8191 926 0 0 -136.101 5.28596 -205.85 - 5 74.2794 925 0 0 -136.112 5.25 -205.897 - 5 60.7428 924 0 0 -136.18 5.05 -206.062 - 5 25.6676 923 0 0 -136.228 4.85 -206.201 - 5 225.997 831 2 0 -126.537 -13.7471 -146.249 - 5 208.204 832 2 0 -126.539 -13.65 -146.038 - 5 44.0578 268 2 1 -126.379 -12.9696 -144.85 - 5 133.752 269 2 1 -126.35 -12.8972 -144.722 - 5 7.27745 1163 2 0 -29.7871 52.84 -146.25 - 5 121.96 1164 2 0 -29.7706 52.85 -146.227 - 5 7.08662 757 2 1 -28.4674 53.3112 -144.85 - 5 78.9122 758 2 1 -28.45 53.317 -144.831 - 5 82.0978 759 2 1 -28.2499 53.3902 -144.636 - 5 2.36218 760 2 1 -28.05 53.4449 -144.458 - 5 9.04948 761 2 1 -27.6679 53.3936 -144.45 - 5 107.6 762 2 1 -27.65 53.4105 -144.474 - 5 282.923 763 2 1 -27.45 53.6225 -144.752 - 5 16.606 1172 2 0 -26.2832 54.6168 -145.85 - 5 174.795 1173 2 0 -26.2359 54.65 -145.896 - 5 186.689 1151 2 0 16.3708 50.2811 -146.25 - 5 108.04 980 2 1 16.202 50.5455 -144.85 - 5 83.7032 1466 2 1 113.475 -23.3546 -144.85 - 5 18.2845 776 2 0 112.749 -24.8326 -145.85 - 5 11.8888 775 2 0 112.741 -24.85 -145.853 - 5 82.1492 1456 2 1 111.384 -25.4145 -144.85 -Number of digits in this event = 20 -Using G4ParticleGun ... -2.92047 LIN -e- +Number of tracker hits in this event: 83 + 5 111.568 762 11 1 -27.6057 -35.9511 125.55 + 5 140.816 720 11 0 -27.607 -35.9514 124.15 + 5 259.83 762 10 1 -27.632 -35.9463 95.55 + 5 162.187 720 10 0 -27.6339 -35.9461 94.15 + 5 134.875 761 9 1 -27.6746 -35.9381 65.55 + 5 128.185 720 9 0 -27.6762 -35.9374 64.15 + 5 102.228 761 8 1 -27.7121 -35.9251 35.55 + 5 116.747 720 8 0 -27.7143 -35.9242 34.15 + 5 140.196 761 7 1 -27.7576 -35.9064 5.55 + 5 188.208 720 7 0 -27.7593 -35.9065 4.15 + 5 117.394 761 6 1 -27.7947 -35.9138 -24.45 + 5 136.722 720 6 0 -27.7973 -35.9147 -25.85 + 5 326.208 760 5 1 -27.858 -35.9377 -54.45 + 5 244.692 720 5 0 -27.8592 -35.9379 -55.85 + 5 127.239 760 4 1 -27.8895 -35.9449 -84.45 + 5 139.087 720 4 0 -27.8879 -35.9465 -85.85 + 5 127.806 760 3 1 -27.8533 -35.9819 -114.45 + 5 121.995 720 3 0 -27.8492 -35.9833 -115.85 + 5 118.67 761 2 1 -27.7585 -36.0202 -144.45 + 5 111.778 720 2 0 -27.7528 -36.0221 -145.85 + 5 132.021 762 1 1 -27.6176 -36.087 -174.45 + 5 488.35 719 1 0 -27.6091 -36.0886 -175.85 + 5 118.372 763 0 1 -27.4391 -36.1114 -204.45 + 5 317.455 719 0 0 -27.4305 -36.1124 -205.85 + 5 64.0604 827 4 0 -79.2304 -14.5255 -86.25 + 5 292.432 762 0 1 -27.4777 -36.1697 -204.45 + 5 129.934 718 0 0 -27.5806 -36.25 -206.125 + 5 17.9166 534 0 1 -73.05 -72.5441 -204.81 + 5 232.231 759 1 1 -28.1095 -36.0029 -174.45 + 5 115.733 770 0 1 -25.8526 -39.0064 -204.45 + 5 110.926 703 0 0 -26.0754 -39.3116 -205.85 + 5 30.2579 1008 1 1 21.65 -137.766 -174.487 + 5 265.147 720 1 0 -28.1235 -35.9848 -175.85 + 5 485.386 759 0 1 -28.1915 -35.9834 -204.45 + 5 603.475 720 0 0 -28.1946 -35.9808 -205.85 + 5 61.1846 781 0 1 -23.7715 -13.1345 -204.85 + 5 9.64747 648 0 1 -50.401 -28.7892 -204.85 + 5 27.5255 647 0 1 -50.45 -28.7533 -204.828 + 5 127.673 748 0 0 -52.0311 -30.3952 -205.85 + 5 117.514 758 0 1 -28.3187 -35.1663 -204.85 + 5 116.911 719 5 0 -27.8604 -36.05 -55.8555 + 5 122.932 759 4 1 -28.2224 -37.5833 -84.45 + 5 63.6631 758 4 1 -28.25 -37.5787 -84.6644 + 5 117.877 712 4 0 -28.4109 -37.549 -85.85 + 5 32.9153 734 3 1 -33.2264 -36.7728 -114.45 + 5 198.65 733 3 1 -33.25 -36.7756 -114.549 + 5 149.037 716 3 0 -33.5232 -36.8159 -115.85 + 5 138.737 705 2 1 -38.9269 -37.3249 -144.45 + 5 135.687 714 2 0 -39.1219 -37.2202 -145.85 + 5 156.837 683 1 1 -43.3679 -35.0579 -174.45 + 5 112.981 728 1 0 -43.383 -34.4067 -175.85 + 5 13.5225 729 1 0 -43.3883 -34.25 -176.206 + 5 182.792 680 0 1 -43.8808 -21.9226 -204.45 + 5 34.2226 797 0 0 -44.1507 -20.5339 -205.85 + 5 87.947 798 0 0 -44.1665 -20.45 -205.934 + 5 66.3112 799 0 0 -44.2005 -20.2499 -206.133 + 5 86.1577 732 3 1 -33.45 -36.3966 -114.594 + 5 191.203 731 3 1 -33.65 -36.1863 -114.64 + 5 101.227 730 3 1 -33.8502 -35.9902 -114.735 + 5 98.524 729 3 1 -34.05 -35.7668 -114.825 + 5 96.4121 728 3 1 -34.25 -35.3852 -114.726 + 5 79.6866 727 3 1 -34.45 -35.176 -114.574 + 5 4.89652 726 3 1 -34.65 -35.0474 -114.455 + 5 105.74 761 5 1 -27.85 -35.94 -54.4964 + 5 129.274 766 4 1 -26.7872 -35.3892 -84.45 + 5 190.469 723 4 0 -26.6088 -35.3676 -85.85 + 5 122.252 783 3 1 -23.2911 -35.4384 -114.45 + 5 147.352 723 3 0 -23.1598 -35.4178 -115.85 + 5 105.085 798 2 1 -20.3472 -35.0033 -144.45 + 5 191.476 725 2 0 -20.2371 -34.9029 -145.85 + 5 150.488 808 1 1 -18.2951 -32.6103 -174.45 + 5 138.04 737 1 0 -18.1892 -32.5688 -175.85 + 5 11.6461 820 0 1 -16.0491 -31.8149 -204.45 + 5 183.675 819 0 1 -16.05 -31.8294 -204.487 + 5 96.7596 738 0 0 -16.0767 -32.3561 -205.85 + 5 61.0072 737 0 0 -16.0811 -32.4501 -206.093 + 5 38.2763 724 2 0 -20.1334 -35.0502 -146.203 + 5 206.932 762 9 1 -27.65 -35.9243 65.4802 + 5 37.5291 718 10 0 -27.4172 -36.395 94.15 + 5 90.2055 717 10 0 -27.3862 -36.45 94.0118 + 5 113.374 760 1 1 -27.9311 -35.9655 -174.45 + 5 125.971 743 0 1 -31.2913 -37.783 -204.45 + 5 60.1142 717 0 0 -32.1296 -36.585 -205.85 +Number of digits in this event: 45 +Using G4ParticleGun... +Particle energy: 3.86622 LIN +Particle: e- Event: 6 -Number of tracker hits in this event = 26 - 6 118.242 1078 9 1 35.7098 -124.748 65.5499 - 6 115.207 276 9 0 35.6481 -124.919 64.15 - 6 40.9172 275 9 0 35.6369 -124.95 63.8988 - 6 112.618 1072 8 1 34.543 -128.642 35.55 - 6 109.021 256 8 0 34.494 -128.753 34.15 - 6 110.198 1068 7 1 33.6716 -130.887 5.55 - 6 137.908 246 7 0 33.6366 -130.904 4.15 - 6 132.353 1065 6 1 33.2043 -131.575 -24.45 - 6 159.186 241 6 0 33.0989 -131.808 -25.8508 - 6 105.339 1052 5 1 30.4654 -136.415 -54.45 - 6 105.828 217 5 0 30.4205 -136.656 -55.85 - 6 107.008 1045 4 1 29.2481 -141.576 -84.45 - 6 103.628 192 4 0 29.0993 -141.615 -85.8515 - 6 117.03 1033 3 1 26.8424 -142.377 -114.45 - 6 83.091 189 3 0 26.7798 -142.186 -115.85 - 6 41.3573 190 3 0 26.7677 -142.15 -116.121 - 6 109.097 1030 2 1 26.0836 -138.853 -144.45 - 6 198.41 207 2 0 26.1437 -138.73 -145.85 - 6 146.399 1036 1 1 27.3452 -135.89 -174.45 - 6 70.5428 221 1 0 27.2054 -135.767 -175.85 - 6 65.3805 222 1 0 27.1903 -135.75 -176.048 - 6 53.1345 1025 0 1 25.0861 -132.13 -204.45 - 6 67.4223 1024 0 1 25.05 -132.082 -204.641 - 6 85.3671 241 0 0 24.7782 -131.811 -205.85 - 6 30.35 242 0 0 24.7209 -131.75 -206.134 - 6 31.1042 218 5 0 32.6593 -136.502 -55.85 -Number of digits in this event = 7 -Using G4ParticleGun ... -6.44152 LIN -e- +Number of tracker hits in this event: 42 + 6 120.352 179 7 1 -144.168 -40.2046 5.55 + 6 238.474 699 7 0 -144.169 -40.205 4.15 + 6 122.35 179 6 1 -144.177 -40.2139 -24.45 + 6 162.263 699 6 0 -144.173 -40.2098 -25.85 + 6 135.789 180 5 1 -144.02 -40.0446 -54.45 + 6 98.0642 700 5 0 -143.996 -40.019 -55.85 + 6 121.507 183 4 1 -143.471 -39.4708 -84.45 + 6 20.2795 702 4 0 -143.434 -39.451 -85.85 + 6 169.21 703 4 0 -143.432 -39.45 -85.9232 + 6 211.753 187 3 1 -142.583 -39.0915 -114.45 + 6 129.391 704 3 0 -142.527 -39.0634 -115.85 + 6 116.734 193 2 1 -141.501 -38.5102 -144.45 + 6 193.102 707 2 0 -141.451 -38.4942 -145.85 + 6 116.567 198 1 1 -140.409 -38.1721 -174.45 + 6 120.835 709 1 0 -140.363 -38.1545 -175.85 + 6 179.693 203 0 1 -139.382 -37.7177 -204.45 + 6 118.943 711 0 0 -139.358 -37.7201 -205.85 + 6 280.984 179 2 1 -144.222 -40.2605 -144.45 + 6 247.617 698 2 0 -144.223 -40.2627 -145.85 + 6 134.138 179 1 1 -144.241 -40.3208 -174.45 + 6 140.582 698 1 0 -144.242 -40.3277 -175.85 + 6 168.947 179 0 1 -144.274 -40.4824 -204.45 + 6 170.332 697 0 0 -144.271 -40.4954 -205.85 + 6 20.7516 934 3 0 -133.009 6.98735 -116.25 + 6 23.2095 935 3 0 -132.977 7.05003 -115.916 + 6 51.7005 235 3 1 -133.104 7.19812 -114.85 + 6 110.909 234 3 1 -133.15 7.21662 -114.698 + 6 137.059 178 1 1 -144.423 -40.4387 -174.45 + 6 135.802 697 1 0 -144.425 -40.4526 -175.85 + 6 140.46 178 0 1 -144.48 -40.7503 -204.45 + 6 126.264 696 0 0 -144.484 -40.7604 -205.85 + 6 40.4147 1378 10 0 90.5708 95.876 93.75 + 6 103.268 1379 10 0 90.5886 95.95 93.8201 + 6 86.2727 1380 10 0 90.4271 96.15 93.8805 + 6 39.5842 1381 10 0 90.4642 96.35 93.7917 + 6 42.7998 767 0 0 -153.217 -26.5616 -206.25 + 6 82.112 768 0 0 -153.269 -26.4486 -206.158 + 6 60.4292 769 0 0 -153.314 -26.25 -206.049 + 6 75.6325 770 0 0 -153.297 -26.0498 -206.022 + 6 81.1533 771 0 0 -153.258 -25.8498 -205.99 + 6 116.775 772 0 0 -153.23 -25.65 -206.037 + 6 132.766 786 7 0 -173.106 -22.7517 3.75042 +Number of digits in this event: 26 +Using G4ParticleGun... +Particle energy: 4.80678 LIN +Particle: e- Event: 7 -Number of tracker hits in this event = 36 - 7 121.262 489 10 1 -82.1192 -63.3002 95.55 - 7 111.233 583 10 0 -82.1188 -63.3 94.15 - 7 142.529 489 9 1 -82.1201 -63.2885 65.55 - 7 276.805 583 9 0 -82.1211 -63.2864 64.15 - 7 90.3929 489 8 1 -82.1485 -63.2401 35.55 - 7 125.412 584 8 0 -82.1507 -63.2378 34.15 - 7 131.659 489 7 1 -82.2019 -63.183 5.55 - 7 134.65 584 7 0 -82.2043 -63.1802 4.15 - 7 9.86154 489 6 1 -82.2498 -63.1177 -24.45 - 7 103.222 488 6 1 -82.25 -63.1176 -24.5008 - 7 112.341 584 6 0 -82.254 -63.1149 -25.85 - 7 155.101 488 5 1 -82.329 -63.0588 -54.45 - 7 122.65 584 5 0 -82.3361 -63.0557 -55.85 - 7 119.07 488 4 1 -82.4434 -62.9699 -84.45 - 7 108.999 585 4 0 -82.4579 -62.9331 -85.85 - 7 118.101 487 3 1 -82.5483 -62.1131 -114.45 - 7 112.991 589 3 0 -82.5879 -62.1174 -115.85 - 7 196.661 481 2 1 -83.6621 -62.1721 -144.45 - 7 147.682 589 2 0 -83.668 -62.1683 -145.85 - 7 35.8968 481 1 1 -83.8454 -61.9378 -174.45 - 7 127.084 480 1 1 -83.85 -61.934 -174.565 - 7 106.265 590 1 0 -83.9018 -61.8843 -175.85 - 7 112.593 474 0 1 -85.0679 -61.0353 -204.45 - 7 510.099 595 0 0 -85.128 -60.9636 -205.85 - 7 133.617 469 0 1 -86.0787 -61.6292 -204.85 - 7 75.5092 470 0 1 -86.0498 -61.5599 -204.746 - 7 33.3602 572 0 1 -65.5035 21.6539 -204.85 - 7 217.174 1010 0 0 -64.7116 22.1328 -205.85 - 7 159.659 671 3 0 -165.708 -45.825 -116.25 - 7 2.46514 68 3 1 -166.546 -45.2905 -114.849 - 7 249.386 67 3 1 -166.55 -45.2872 -114.843 - 7 148.494 66 3 1 -166.75 -44.8182 -114.462 - 7 67.3384 65 3 1 -166.95 -44.5296 -114.493 - 7 489.892 64 3 1 -167.15 -44.4259 -114.58 - 7 5.51777 876 4 0 13.2778 -4.65 -85.9386 - 7 44.7672 585 1 0 -82.2604 -62.937 -175.85 -Number of digits in this event = 20 -Using G4ParticleGun ... -7.76612 LIN -e- +Number of tracker hits in this event: 21 + 7 105.333 385 8 1 -103.11 95.7756 35.55 + 7 89.0646 1378 8 0 -103.107 95.7758 34.15 + 7 110.032 385 7 1 -103.048 95.7871 5.55 + 7 136.777 1378 7 0 -103.045 95.7876 4.15 + 7 287.398 385 6 1 -102.982 95.799 -24.45 + 7 247.785 1378 6 0 -102.978 95.8005 -25.85 + 7 220.691 386 5 1 -102.889 95.833 -54.45 + 7 116.093 1378 5 0 -102.885 95.8344 -55.85 + 7 127.342 386 4 1 -102.793 95.8581 -84.45 + 7 125.803 1378 4 0 -102.788 95.8598 -85.85 + 7 136.999 387 3 1 -102.666 95.8908 -114.45 + 7 121.021 1378 3 0 -102.661 95.8935 -115.85 + 7 117.508 387 2 1 -102.558 95.9507 -144.45 + 7 118.266 1379 2 0 -102.554 95.9542 -145.85 + 7 121.684 388 1 1 -102.477 96.0337 -174.45 + 7 121.473 1379 1 0 -102.473 96.0393 -175.85 + 7 126.555 388 0 1 -102.392 96.1507 -204.45 + 7 137.937 1380 0 0 -102.388 96.1566 -205.85 + 7 92.4589 1382 6 0 -102.474 96.629 -25.85 + 7 128.919 1383 6 0 -102.367 96.75 -26.0188 + 7 120.393 1384 6 0 -102.144 96.9501 -26.0809 +Number of digits in this event: 16 +Using G4ParticleGun... +Particle energy: 3.00322 LIN +Particle: e- Event: 8 -Number of tracker hits in this event = 35 - 8 111.508 1032 10 1 26.4567 -96.4973 95.55 - 8 308.849 418 10 0 26.4562 -96.496 94.15 - 8 130.347 1031 9 1 26.4462 -96.4663 65.55 - 8 105.272 418 9 0 26.4458 -96.4642 64.15 - 8 138.527 1031 8 1 26.4314 -96.4074 35.55 - 8 114.241 418 8 0 26.4303 -96.4055 34.15 - 8 110.679 1031 7 1 26.4069 -96.3658 5.55 - 8 134.436 418 7 0 26.4056 -96.3645 4.15 - 8 94.6473 1031 6 1 26.3764 -96.337 -24.45 - 8 150.378 419 6 0 26.3756 -96.3354 -25.85 - 8 97.2989 1031 5 1 26.3608 -96.303 -54.45 - 8 187.513 419 5 0 26.3602 -96.3021 -55.85 - 8 106.288 1031 4 1 26.3504 -96.2882 -84.45 - 8 119.82 419 4 0 26.3526 -96.2873 -85.85 - 8 125.319 1031 3 1 26.3969 -96.2639 -114.45 - 8 163.282 419 3 0 26.4009 -96.2589 -115.85 - 8 181.141 1032 2 1 26.4873 -96.1543 -144.45 - 8 94.2756 420 2 0 26.4891 -96.1481 -145.85 - 8 192.706 1032 1 1 26.5197 -96.033 -174.45 - 8 234.83 420 1 0 26.5213 -96.0272 -175.85 - 8 116.682 1032 0 1 26.552 -95.9068 -204.45 - 8 129.192 421 0 0 26.5546 -95.9018 -205.85 - 8 330.901 1342 4 1 88.6191 -148.543 -84.85 - 8 94.8251 155 4 0 87.7254 -149.143 -85.85 - 8 133.044 154 4 0 87.7157 -149.15 -85.8677 - 8 244.267 1031 0 1 26.2825 -96.237 -204.45 - 8 238.589 419 0 0 26.2747 -96.2341 -205.85 - 8 151.018 1045 13 0 -56.1883 29.1572 183.75 - 8 46.2205 619 13 1 -56.172 28.8085 185.15 - 8 37.325 618 13 1 -56.25 28.7412 185.2 - 8 170.165 1046 13 0 -55.6026 29.2617 184.15 - 8 50.7746 1047 13 0 -55.5124 29.45 184.128 - 8 27.8732 367 4 1 -106.559 -28.2786 -84.85 - 8 55.4721 368 4 1 -106.55 -28.2606 -84.8426 - 8 89.779 419 10 0 26.2822 -96.35 93.8422 -Number of digits in this event = 21 -Using G4ParticleGun ... -5.73468 LIN -e- +Number of tracker hits in this event: 30 + 8 232.69 1330 10 1 86.131 -65.5587 95.55 + 8 121.008 572 10 0 86.1338 -65.56 94.15 + 8 231.612 1330 9 1 86.1958 -65.6017 65.55 + 8 93.5042 572 9 0 86.2007 -65.6006 64.15 + 8 115.261 1331 8 1 86.3082 -65.563 35.55 + 8 133.704 572 8 0 86.3105 -65.5606 34.15 + 8 114.971 1331 7 1 86.3723 -65.522 5.55 + 8 99.9581 572 7 0 86.3756 -65.5209 4.15 + 8 137.162 1332 6 1 86.4871 -65.4716 -24.45 + 8 143.95 572 6 0 86.498 -65.4663 -25.85 + 8 108.575 1333 5 1 86.74 -65.3585 -54.45 + 8 136.924 573 5 0 86.7506 -65.3535 -55.85 + 8 123.878 1334 4 1 86.9661 -65.2668 -84.45 + 8 112.337 573 4 0 86.9813 -65.2649 -85.85 + 8 124.98 1336 3 1 87.2887 -65.2241 -114.45 + 8 171.776 574 3 0 87.3005 -65.2237 -115.85 + 8 433.21 1337 2 1 87.5392 -65.2404 -144.45 + 8 469.745 574 2 0 87.5502 -65.2392 -145.85 + 8 119.555 1338 1 1 87.7706 -65.2373 -174.45 + 8 241.426 574 1 0 87.7744 -65.241 -175.85 + 8 225.491 1338 0 1 87.8028 -65.3578 -204.45 + 8 94.11 573 0 0 87.813 -65.368 -205.85 + 8 94.4273 1336 1 1 87.4378 -64.6993 -174.45 + 8 119.561 576 1 0 87.4765 -64.7453 -175.85 + 8 122.999 1341 0 1 88.2937 -65.6812 -204.45 + 8 105.458 571 0 0 88.3455 -65.7236 -205.85 + 8 115.695 1341 1 1 88.3102 -65.1472 -174.45 + 8 134.904 1345 0 1 89.156 -66.0805 -204.45 + 8 140.242 569 0 0 89.2041 -66.0999 -205.85 + 8 148.074 1458 7 1 111.76 -52.0533 5.55 +Number of digits in this event: 21 +Using G4ParticleGun... +Particle energy: 4.06643 LIN +Particle: e- Event: 9 -Number of tracker hits in this event = 82 - 9 135.344 1505 8 1 121.344 -71.4495 35.55 - 9 119.848 543 8 0 121.345 -71.4474 34.15 - 9 106.981 1506 7 1 121.354 -71.409 5.55 - 9 107.023 543 7 0 121.354 -71.4088 4.15 - 9 519.91 1506 6 1 121.352 -71.4082 -24.45 - 9 396.994 543 6 0 121.353 -71.4091 -25.85 - 9 300.178 1506 5 1 121.381 -71.427 -54.45 - 9 320.214 543 5 0 121.379 -71.4272 -55.85 - 9 114.051 1505 4 1 121.34 -71.4269 -84.45 - 9 429.008 543 4 0 121.339 -71.4266 -85.85 - 9 111.475 1505 3 1 121.318 -71.4264 -114.45 - 9 114.192 543 3 0 121.317 -71.4246 -115.85 - 9 113.184 1505 2 1 121.306 -71.3906 -144.45 - 9 192.743 543 2 0 121.305 -71.3896 -145.85 - 9 217.89 1505 1 1 121.276 -71.3724 -174.45 - 9 140.013 543 1 0 121.274 -71.3736 -175.85 - 9 123.295 1505 0 1 121.243 -71.4015 -204.45 - 9 127.609 543 0 0 121.243 -71.4032 -205.85 - 9 5.52229 1046 2 0 175.97 29.3405 -145.85 - 9 8.39009 1781 2 1 176.351 30.687 -144.85 - 9 29.6254 1056 2 0 175.583 31.4489 -145.85 - 9 4.103 1057 2 0 175.581 31.45 -145.852 - 9 190.567 1506 4 1 121.379 -71.3862 -84.45 - 9 402.41 1508 3 1 121.763 -70.7631 -114.45 - 9 134.458 546 3 0 121.811 -70.7437 -115.85 - 9 130.878 1514 2 1 123.03 -70.6629 -144.45 - 9 165.032 546 2 0 123.007 -70.7103 -145.85 - 9 126.309 1512 1 1 122.591 -71.6155 -174.45 - 9 29.7132 542 1 0 122.588 -71.6467 -175.85 - 9 98.7942 541 1 0 122.587 -71.65 -175.994 - 9 136.577 1513 0 1 122.81 -72.2198 -204.45 - 9 120.112 539 0 0 122.861 -72.1707 -205.85 - 9 94.0006 1513 2 1 122.95 -70.6518 -144.506 - 9 414.658 1512 2 1 122.75 -70.8474 -144.613 - 9 95.032 1507 3 1 121.674 -71.1202 -114.45 - 9 123.688 544 3 0 121.687 -71.1222 -115.85 - 9 105.223 1506 2 1 121.474 -71.1263 -144.45 - 9 126.003 544 2 0 121.469 -71.1103 -145.85 - 9 9.95246 1506 1 1 121.351 -70.845 -174.45 - 9 144.295 546 1 0 121.319 -70.8186 -175.85 - 9 116.608 1502 0 1 120.611 -70.2761 -204.45 - 9 140.296 549 0 0 120.557 -70.2337 -205.85 - 9 47.2928 549 5 0 121.348 -70.182 -55.85 - 9 75.7488 548 5 0 121.332 -70.25 -55.9883 - 9 120.675 1485 4 1 117.243 -86.9741 -84.45 - 9 85.5033 461 4 0 117.048 -87.6917 -85.85 - 9 28.8746 460 4 0 116.997 -87.85 -86.1564 - 9 76.2932 1453 3 1 110.826 -104.587 -114.45 - 9 100.007 1452 3 1 110.75 -104.646 -114.497 - 9 85.684 1451 3 1 110.55 -104.788 -114.62 - 9 56.7821 1450 3 1 110.35 -104.932 -114.766 - 9 168.435 369 3 0 108.71 -106.19 -115.85 - 9 182.669 368 3 0 108.51 -106.35 -116.02 - 9 135.408 1329 2 1 85.9007 -125.49 -144.45 - 9 185.425 1328 2 1 85.85 -125.658 -144.571 - 9 45.6907 263 2 0 84.7303 -127.425 -145.85 - 9 82.7655 262 2 0 84.6334 -127.55 -145.935 - 9 74.2328 261 2 0 84.4831 -127.75 -146.021 - 9 157.397 260 2 0 84.3313 -127.95 -146.091 - 9 76.4408 259 2 0 84.1832 -128.15 -146.155 - 9 33.2678 258 2 0 84.037 -128.35 -146.212 - 9 167.481 1376 0 1 95.4717 -83.1326 -204.45 - 9 481.003 1375 0 1 95.35 -83.1828 -204.602 - 9 98.9458 1374 0 1 95.15 -82.594 -204.557 - 9 82.4284 485 0 0 95.3716 -82.9228 -205.85 - 9 104.04 486 0 0 95.3358 -82.85 -206.112 - 9 8.42524 493 0 0 98.2958 -81.4467 -206.25 - 9 93.2758 492 0 0 98.3005 -81.45 -206.236 - 9 40.8575 491 0 0 98.3122 -81.65 -206.188 - 9 68.3549 1507 5 1 121.556 -71.4508 -54.45 - 9 146.01 1502 4 1 120.662 -70.774 -84.45 - 9 110.724 546 4 0 120.664 -70.7497 -85.85 - 9 113.621 1502 3 1 120.734 -70.4633 -114.45 - 9 158.286 547 3 0 120.723 -70.4592 -115.85 - 9 116.719 1502 2 1 120.614 -70.5812 -144.45 - 9 186.481 547 2 0 120.557 -70.6075 -145.85 - 9 222.552 1496 1 1 119.445 -71.0283 -174.45 - 9 152.341 545 1 0 119.338 -71.0335 -175.85 - 9 128.197 1484 0 1 117.059 -71.0575 -204.45 - 9 133.595 544 0 0 116.942 -71.1206 -205.85 - 9 80.0501 142 9 0 52.4367 -151.651 63.7504 - 9 227.6 143 9 0 52.4038 -151.55 63.8485 -Number of digits in this event = 43 -Using G4ParticleGun ... -3.84314 LIN -e- +Number of tracker hits in this event: 73 + 9 111.264 925 11 1 5.09014 1.11197 125.55 + 9 120.178 905 11 0 5.08927 1.10866 124.15 + 9 114.782 925 10 1 5.05962 1.04647 95.55 + 9 111.955 904 10 0 5.05843 1.04409 94.15 + 9 108.275 924 9 1 5.03057 1.00229 65.55 + 9 137.707 904 9 0 5.02881 0.999765 64.15 + 9 113.638 924 8 1 4.99603 0.935752 35.55 + 9 127.036 904 8 0 4.99457 0.934556 34.15 + 9 108.141 924 7 1 4.95248 0.902776 5.55 + 9 109.814 904 7 0 4.94777 0.899791 4.15 + 9 47.502 924 6 1 4.85142 0.847545 -24.45 + 9 57.7319 923 6 1 4.85 0.847377 -24.6358 + 9 113.862 903 6 0 4.84113 0.846077 -25.85 + 9 173.57 922 5 1 4.63487 0.802785 -54.45 + 9 142.163 903 5 0 4.62238 0.796698 -55.85 + 9 113.298 921 4 1 4.35873 0.643639 -84.45 + 9 127.854 902 4 0 4.34257 0.636121 -85.85 + 9 129.618 919 3 1 3.99771 0.49763 -114.45 + 9 104.058 902 3 0 3.9828 0.49288 -115.85 + 9 136.905 918 2 1 3.67626 0.386008 -144.45 + 9 342.847 901 2 0 3.6592 0.378094 -145.85 + 9 168.392 916 1 1 3.29703 0.211048 -174.45 + 9 203.296 900 1 0 3.27823 0.203038 -175.85 + 9 295.59 923 4 1 4.72392 0.823338 -84.45 + 9 387.72 903 4 0 4.69933 0.74916 -85.8501 + 9 120.067 923 3 1 4.67219 -0.54939 -114.45 + 9 124.376 898 3 0 4.75528 -0.446315 -115.85 + 9 119.051 920 2 1 4.08709 1.5856 -144.45 + 9 3.74282 906 2 0 4.3996 1.25293 -145.85 + 9 497.713 905 2 0 4.40245 1.24996 -145.863 + 9 107.793 957 1 1 11.5747 -7.50957 -174.45 + 9 133.442 859 1 0 11.5327 -8.15011 -175.85 + 9 29.4247 858 1 0 11.5108 -8.25 -176.146 + 9 129.122 939 0 1 7.86538 -17.3242 -204.45 + 9 96.1833 810 0 0 7.99047 -17.8939 -205.85 + 9 16.6279 809 0 0 8.04428 -18.05 -206.184 + 9 50.8845 672 0 0 22.4689 -45.5653 -206.25 + 9 75.4565 671 0 0 22.542 -45.65 -206.148 + 9 37.989 670 0 0 22.5483 -45.85 -205.96 + 9 415.538 1012 0 1 22.5375 -46.598 -204.85 + 9 51.168 1011 0 1 22.45 -47.3535 -204.711 + 9 115.879 662 0 0 21.8615 -47.5339 -205.85 + 9 295.755 928 0 1 5.83055 0.868787 -204.45 + 9 53.5872 929 0 1 5.85 0.86873 -204.645 + 9 220.321 903 0 0 5.97628 0.84158 -205.85 + 9 217.406 902 0 0 5.63195 0.511524 -205.85 + 9 244.293 901 0 0 5.60044 0.45 -206.084 + 9 154.728 904 0 0 5.77014 0.967976 -205.85 + 9 190.918 915 0 0 10.513 3.10496 -206.25 + 9 106.764 914 0 0 10.6164 3.04996 -206.033 + 9 7.72329 913 0 0 10.558 2.84987 -205.868 + 9 269.702 953 0 1 10.6899 0.690204 -204.85 + 9 191.817 952 0 1 10.65 0.397336 -204.528 + 9 110.582 922 3 1 4.64274 0.689108 -114.45 + 9 93.4703 903 3 0 4.63648 0.68711 -115.85 + 9 111.888 922 2 1 4.50391 0.664749 -144.45 + 9 356.887 903 2 0 4.49329 0.661538 -145.85 + 9 289.779 921 1 1 4.28062 0.629385 -174.45 + 9 144.64 902 1 0 4.27058 0.627277 -175.85 + 9 132.007 920 0 1 4.06734 0.576188 -204.45 + 9 169.477 804 3 1 -19.2249 -2.61574 -114.85 + 9 137.499 1595 2 0 44.17 139.15 -146.089 + 9 155.481 902 2 0 4.50318 0.65 -146.018 + 9 169.466 923 0 1 4.74266 0.261478 -204.45 + 9 63.0351 922 0 1 4.65 0.301503 -204.646 + 9 49.1715 1076 0 1 35.382 40.7509 -204.45 + 9 208.066 1077 0 1 35.45 40.7353 -204.505 + 9 146.273 924 2 1 4.86554 0.791321 -144.45 + 9 108.038 898 1 0 4.34684 -0.269815 -175.85 + 9 130.204 917 0 1 3.61488 -1.35582 -204.45 + 9 131.307 893 0 0 3.60357 -1.40416 -205.85 + 9 344.44 733 0 1 -33.2899 41.4427 -204.45 + 9 217.618 1065 0 1 33.2087 -87.4546 -204.45 +Number of digits in this event: 43 +Using G4ParticleGun... +Particle energy: 5.71375 LIN +Particle: e- Event: 10 -Number of tracker hits in this event = 20 - 10 124.983 599 8 1 -60.1764 124.74 35.55 - 10 108.844 1522 8 0 -60.1762 124.74 34.15 - 10 157.532 599 7 1 -60.167 124.743 5.55 - 10 145.764 1522 7 0 -60.1681 124.743 4.15 - 10 118.293 599 6 1 -60.1935 124.712 -24.45 - 10 132.091 1522 6 0 -60.1932 124.71 -25.85 - 10 131.401 599 5 1 -60.1937 124.675 -54.45 - 10 124.758 1522 5 0 -60.193 124.674 -55.85 - 10 161.765 599 4 1 -60.1785 124.648 -84.45 - 10 450.906 1522 4 0 -60.177 124.649 -85.85 - 10 111.454 599 3 1 -60.1341 124.662 -114.45 - 10 122.868 1522 3 0 -60.1299 124.664 -115.85 - 10 171.844 599 2 1 -60.0568 124.702 -144.45 - 10 174.528 1522 2 0 -60.0539 124.703 -145.85 - 10 109.104 600 1 1 -60.0092 124.718 -174.45 - 10 110.557 1522 1 0 -60.0055 124.719 -175.85 - 10 309.971 600 0 1 -59.9304 124.746 -204.45 - 10 372.31 1522 0 0 -59.9272 124.749 -205.85 - 10 87.7132 1521 0 0 -60.0656 124.55 -206.113 - 10 92.6779 1523 4 0 -59.9101 124.75 -86.1033 -Number of digits in this event = 15 -Using G4ParticleGun ... -5.4329 LIN -e- +Number of tracker hits in this event: 80 + 10 129.203 1153 11 1 50.6575 41.0695 125.55 + 10 188.787 1105 11 0 50.6577 41.071 124.15 + 10 160.796 1153 10 1 50.6706 41.1067 95.55 + 10 145.311 1105 10 0 50.672 41.107 94.15 + 10 105.359 1153 9 1 50.7056 41.1146 65.55 + 10 101.035 1105 9 0 50.704 41.1142 64.15 + 10 213.835 1153 8 1 50.672 41.0992 35.55 + 10 100.258 1105 8 0 50.6671 41.0973 34.15 + 10 203.235 1152 7 1 50.5641 41.0584 5.55 + 10 135.76 1105 7 0 50.56 41.0568 4.15 + 10 134.036 1152 6 1 50.4794 41.024 -24.45 + 10 99.8035 1104 6 0 50.4768 41.0241 -25.85 + 10 102.023 1151 5 1 50.425 41.0228 -54.45 + 10 120.53 1104 5 0 50.428 41.0189 -55.85 + 10 129.499 1152 4 1 50.4797 40.9198 -84.45 + 10 392.851 1104 4 0 50.4859 40.9108 -85.85 + 10 294.791 1152 3 1 50.6372 40.7145 -114.45 + 10 106.154 1103 3 0 50.6387 40.7098 -115.85 + 10 170.398 1153 2 1 50.698 40.6185 -144.45 + 10 110.98 1102 2 0 50.6987 40.617 -145.85 + 10 102.992 1153 1 1 50.7191 40.5476 -174.45 + 10 162.058 1102 1 0 50.7142 40.5442 -175.85 + 10 277.583 1152 0 1 50.61 40.4312 -204.45 + 10 100.597 1101 0 0 50.596 40.4321 -205.85 + 10 122.116 1102 0 0 50.5573 40.5813 -205.85 + 10 234.341 1151 4 1 50.3504 41.0256 -84.45 + 10 211.422 1105 3 0 50.487 41.0879 -115.85 + 10 144.444 1152 2 1 50.4597 40.859 -144.45 + 10 483.786 1104 2 0 50.4576 40.8562 -145.85 + 10 121.229 1151 1 1 50.4148 40.8468 -174.45 + 10 301.96 1103 1 0 50.4166 40.8484 -175.85 + 10 341.323 1151 0 1 50.3963 40.9026 -204.45 + 10 355.854 1104 0 0 50.3657 40.8936 -205.85 + 10 137.861 1151 3 1 50.45 41.0754 -114.555 + 10 123.299 1150 3 1 50.1527 41.1096 -114.45 + 10 230.139 1150 2 1 50.1121 41.2844 -144.45 + 10 131.708 1106 2 0 50.1091 41.2966 -145.85 + 10 229.283 1149 1 1 50.0454 41.5016 -174.45 + 10 117.802 1107 1 0 50.0641 41.5415 -175.85 + 10 147.949 1153 0 1 50.65 42.4768 -204.761 + 10 146.371 1112 0 0 50.7069 42.503 -205.85 + 10 151.01 485 9 0 45.1978 -82.8761 63.75 + 10 77.7053 877 1 1 -4.53841 47.3297 -174.85 + 10 70.3178 648 5 0 68.3847 -50.2759 -56.25 + 10 43.1913 732 5 0 97.3687 -33.5204 -56.25 + 10 433.49 1150 1 1 50.2052 41.003 -174.45 + 10 230.629 1101 1 0 49.6781 40.45 -176.108 + 10 100.901 1106 0 1 41.3522 34.5325 -204.45 + 10 88.3219 1105 0 1 41.25 34.3932 -204.643 + 10 52.9053 1066 0 0 40.37 33.3505 -205.85 + 10 121.059 1065 0 0 40.2857 33.25 -205.968 + 10 2.91806 1064 0 0 40.0984 33.05 -206.245 + 10 8.46814 1059 2 0 85.7959 31.8629 -146.25 + 10 2.46128 1058 2 0 85.8056 31.85 -146.244 + 10 241.789 1104 3 0 50.2426 40.9878 -115.85 + 10 329.9 1149 2 1 50.0175 40.802 -144.45 + 10 156.637 1103 2 0 50.041 40.7786 -145.85 + 10 563.964 1152 1 1 50.4719 40.2024 -174.45 + 10 202.534 1100 1 0 50.4702 40.1841 -175.85 + 10 229.685 1098 0 0 50.2658 39.813 -205.85 + 10 115.472 1104 1 0 50.1082 40.9827 -175.85 + 10 125.951 1149 0 1 49.8954 41.0573 -204.45 + 10 145.575 1105 0 0 49.8814 41.0601 -205.85 + 10 155.113 488 9 1 -82.2949 92.0298 65.55 + 10 242.444 489 9 1 -82.25 91.8082 65.5077 + 10 211.674 1115 0 0 81.7874 43.05 -206.133 + 10 107.623 1104 7 0 50.5679 41.0498 4.13595 + 10 45.4592 1160 7 1 52.1131 41.3273 5.15001 + 10 189.386 1153 7 1 50.65 41.1475 5.26939 + 10 138.127 1154 7 1 50.85 41.1493 5.1883 + 10 205.805 1105 1 0 50.3686 41.1274 -175.85 + 10 128.134 1158 0 1 51.7611 43.9644 -204.45 + 10 125.865 1120 0 0 51.4806 44.0909 -205.85 + 10 136.929 1049 0 0 70.9524 29.999 -206.25 + 10 94.5072 1257 0 1 71.4692 29.7955 -204.85 + 10 193.689 1139 0 1 48.007 42.9818 -204.45 + 10 2.82249 1035 1 0 96.1219 27.0778 -176.25 + 10 13.9803 649 5 0 91.1555 -50.1944 -56.25 + 10 86.8943 647 5 0 91.1303 -50.45 -56.1552 + 10 143.362 646 5 0 91.2313 -50.6502 -56.1052 +Number of digits in this event: 57 +Using G4ParticleGun... +Particle energy: 2.09048 LIN +Particle: e- Event: 11 -Number of tracker hits in this event = 166 - 11 120.586 1279 10 1 75.9601 75.3749 95.55 - 11 189.525 1276 10 0 75.9616 75.3747 94.15 - 11 118.825 1279 9 1 75.9952 75.372 65.55 - 11 107.26 1276 9 0 75.9972 75.3712 64.15 - 11 133.599 1279 8 1 76.037 75.3544 35.55 - 11 127.859 1276 8 0 76.038 75.3547 34.15 - 11 100.119 1280 7 1 76.0597 75.3645 5.54904 - 11 370.827 1276 7 0 76.063 75.3658 4.15 - 11 498.678 1280 6 1 76.1368 75.3804 -24.45 - 11 394.615 1276 6 0 76.1457 75.3792 -25.85 - 11 113.082 1281 5 1 76.3323 75.3473 -54.45 - 11 132.716 1276 5 0 76.3423 75.3465 -55.85 - 11 98.9735 1282 4 1 76.5528 75.3312 -84.45 - 11 207.215 1276 4 0 76.564 75.3294 -85.85 - 11 120.874 1283 3 1 76.8014 75.2876 -114.45 - 11 115.022 1276 3 0 76.8119 75.2859 -115.85 - 11 350.367 1284 2 1 77.0219 75.2509 -144.45 - 11 135.025 1275 2 0 77.0322 75.2476 -145.85 - 11 248.548 1285 1 1 77.2377 75.1755 -174.45 - 11 185.721 1275 1 0 77.2504 75.1729 -175.85 - 11 144.154 1287 0 1 77.5125 75.121 -204.45 - 11 125.773 1275 0 0 77.5245 75.1178 -205.85 - 11 145.456 1264 0 0 76.0267 73.0483 -206.25 - 11 39.1525 1265 0 0 76.0919 73.0502 -206.098 - 11 33.2671 1288 0 1 77.7804 73.1223 -204.85 - 11 141.086 1289 0 1 77.85 73.1414 -204.794 - 11 90.8702 1290 0 1 78.05 73.3463 -204.547 - 11 384.061 1291 0 1 78.25 73.4902 -204.489 - 11 18.0154 1279 6 1 76.0499 75.4451 -24.8035 - 11 65.939 1242 5 1 68.5823 76.7853 -54.45 - 11 113.178 1243 5 1 68.65 76.9522 -54.6471 - 11 13.7251 1244 5 1 68.85 77.2099 -54.8153 - 11 68.2007 1291 5 0 69.8383 78.3001 -55.85 - 11 96.4454 1292 5 0 69.9545 78.45 -56.0176 - 11 60.0416 1281 6 1 76.25 75.5733 -24.7337 - 11 85.1712 1280 6 0 76.7533 76.1066 -25.85 - 11 69.5614 1281 6 0 76.8727 76.2501 -26.0913 - 11 132.748 1336 5 1 87.4429 99.0009 -54.4502 - 11 2.69143 1335 5 1 87.25 99.0337 -54.8384 - 11 153.201 1394 5 0 86.8022 99.0431 -55.85 - 11 140.719 1263 4 1 72.7602 102.882 -84.45 - 11 172.673 1264 4 1 72.85 102.787 -84.599 - 11 71.4894 1411 4 0 73.2054 102.445 -85.85 - 11 37.2208 1410 4 0 73.2528 102.349 -86.1503 - 11 14.4495 1289 3 1 77.9023 86.0411 -114.45 - 11 71.1258 1288 3 1 77.85 86.0527 -114.499 - 11 51.0882 1287 3 1 77.65 86.1641 -114.61 - 11 59.9266 1286 3 1 77.45 86.1987 -114.58 - 11 38.6471 1285 3 1 77.2499 86.2203 -114.488 - 11 81.6054 1265 4 1 73.05 102.836 -84.6601 - 11 99.1614 1266 4 1 73.2501 102.788 -84.6695 - 11 140.166 1267 4 1 73.45 102.604 -84.5617 - 11 108.681 1268 4 1 73.65 102.719 -84.739 - 11 202.191 1419 4 0 73.8324 104.043 -85.8501 - 11 52.4654 1276 1 0 76.1656 75.3148 -176.181 - 11 8.64178 1271 0 1 74.4389 73.7652 -204.45 - 11 116.389 1272 0 1 74.45 73.7517 -204.474 - 11 31.8404 1273 0 1 74.65 73.5708 -204.751 - 11 80.8215 1263 0 0 75.5768 72.85 -205.99 - 11 266.62 1279 7 1 76.0147 75.3295 5.55 - 11 39.5189 1275 6 1 75.2056 75.7494 -24.45 - 11 75.4454 1276 6 1 75.25 75.7641 -24.5969 - 11 107.551 1278 6 0 75.6463 75.8124 -25.85 - 11 223.034 1279 6 0 75.7586 75.85 -26.2216 - 11 4.22171 1316 5 1 83.4297 80.99 -54.45 - 11 76.5523 1317 5 1 83.4501 80.9832 -54.4668 - 11 79.134 1318 5 1 83.65 80.9187 -54.6347 - 11 17.7088 1319 5 1 83.85 80.855 -54.811 - 11 44.3538 1302 5 0 84.9565 80.4972 -55.8501 - 11 122.135 1301 5 0 85.0932 80.45 -55.98 - 11 66.7113 1467 4 1 113.624 69.894 -84.4501 - 11 69.1049 1468 4 1 113.75 69.7912 -84.6525 - 11 220.369 1246 4 0 114.657 69.2677 -85.85 - 11 173.783 1245 4 0 114.69 69.25 -85.8906 - 11 162.675 1576 3 1 135.471 53.2784 -114.45 - 11 122.224 1164 3 0 135.371 53.0323 -115.85 - 11 5.04624 1540 2 1 128.159 46.1346 -144.45 - 11 134.266 1539 2 1 128.15 46.1467 -144.473 - 11 2.79426 1538 2 1 127.95 46.3698 -144.843 - 11 30.6308 1135 2 0 127.132 47.2036 -145.85 - 11 96.4311 1136 2 0 127.084 47.25 -145.91 - 11 44.872 1137 2 0 126.863 47.4502 -146.149 - 11 107.485 1247 4 0 114.729 69.4501 -85.928 - 11 149.969 1026 1 1 25.317 53.4203 -174.45 - 11 100.437 1025 1 1 25.25 53.3537 -174.558 - 11 1.10071 1024 1 1 25.05 53.2165 -174.848 - 11 31.9913 1163 1 0 24.2733 52.7086 -175.85 - 11 103.713 1162 1 0 24.1996 52.6499 -175.948 - 11 92.468 1161 1 0 24.0511 52.45 -176.159 - 11 29.5666 1160 1 0 24.0383 52.25 -176.205 - 11 19.6385 144 1 0 -30.1529 -151.279 -176.25 - 11 112.25 143 1 0 -30.1882 -151.35 -176.221 - 11 151.454 142 1 0 -30.4022 -151.55 -176.121 - 11 5.98424 141 1 0 -30.6895 -151.75 -176.236 - 11 108.732 80 1 0 -27.5536 -164.059 -176.25 - 11 224.961 79 1 0 -27.4081 -164.15 -175.948 - 11 5.97509 773 1 1 -25.2634 -165.739 -174.85 - 11 47.4057 774 1 1 -25.25 -165.75 -174.844 - 11 64.904 66 1 0 -24.3541 -166.808 -175.85 - 11 93.0274 777 1 1 -24.5497 -170.822 -174.85 - 11 13.5469 46 1 0 -23.6363 -170.904 -175.85 - 11 2.36433 779 1 1 -24.0855 -168.087 -174.85 - 11 69.537 72 1 0 -24.2698 -165.614 -175.85 - 11 40.248 820 0 1 -16.05 -174.26 -204.725 - 11 8.07063 1027 1 1 25.4612 53.4695 -174.45 - 11 125.152 1166 1 0 24.8492 53.4267 -175.85 - 11 12.3852 1167 1 0 24.6762 53.45 -176.206 - 11 17.2439 959 0 1 11.8928 55.475 -204.45 - 11 166.845 958 0 1 11.85 55.4441 -204.494 - 11 184.863 957 0 1 11.65 55.2925 -204.704 - 11 118.804 1171 0 0 10.5097 54.409 -205.85 - 11 73.6609 1170 0 0 10.2998 54.25 -206.079 - 11 113.826 1274 6 0 76.2351 75.0431 -25.8502 - 11 108.034 1283 5 1 76.7895 75.4078 -54.45 - 11 111.297 1277 5 0 76.9015 75.4876 -55.85 - 11 167.296 1295 4 1 79.0616 77.0874 -84.45 - 11 223.988 1285 4 0 79.0804 77.2138 -85.85 - 11 8.82868 1286 4 0 79.089 77.25 -86.2173 - 11 199.879 1302 3 1 80.4911 82.0148 -114.45 - 11 129.814 1309 3 0 80.96 81.8986 -115.85 - 11 102.388 1354 2 1 91.0656 78.4231 -144.45 - 11 63.6907 1355 2 1 91.15 78.4396 -144.64 - 11 123.986 1292 2 0 91.6976 78.5354 -145.85 - 11 140.298 1420 1 1 104.174 79.5255 -174.45 - 11 7.42108 1297 1 0 104.78 79.4516 -175.85 - 11 134.435 1296 1 0 104.793 79.45 -175.878 - 11 69.2057 1478 0 1 115.889 77.9197 -204.45 - 11 38.0312 1479 0 1 115.95 77.8428 -204.699 - 11 313.459 1286 0 0 116.256 77.4205 -205.85 - 11 98.6278 1298 1 0 104.119 79.6891 -175.85 - 11 66.8353 1299 1 0 103.982 79.85 -176.017 - 11 58.5503 1300 1 0 103.918 80.05 -175.961 - 11 6.98344 1425 1 1 105.328 79.9542 -174.85 - 11 112.288 1426 1 1 105.35 79.9562 -174.832 - 11 108.447 1427 1 1 105.55 79.9185 -174.705 - 11 104.186 1428 1 1 105.75 80.0245 -174.605 - 11 165.027 1429 1 1 105.95 80.0436 -174.552 - 11 108.638 1306 2 1 81.3069 79.7401 -144.45 - 11 59.7278 1305 2 1 81.25 79.7097 -144.835 - 11 496.244 1297 2 0 81.1092 79.6456 -145.85 - 11 82.6076 1208 2 0 76.628 61.7337 -146.25 - 11 92.0788 1207 2 0 76.6287 61.65 -146.106 - 11 28.9328 1286 1 1 77.287 78.9693 -174.45 - 11 132.126 1294 1 0 76.5394 78.9055 -175.85 - 11 174.537 1210 0 1 62.1061 77.7253 -204.45 - 11 52.2277 1283 0 0 62.1622 76.7468 -205.85 - 11 101.781 1282 0 0 62.1645 76.65 -205.988 - 11 95.169 1304 2 1 81.0498 79.8633 -144.509 - 11 91.6696 1303 2 1 80.85 79.9535 -144.565 - 11 170.902 1302 2 1 80.65 80.0589 -144.67 - 11 241.264 1301 2 1 80.4499 80.1492 -144.803 - 11 97.5753 1303 2 0 79.0161 80.7514 -145.85 - 11 126.616 1304 2 0 78.6798 80.8501 -145.917 - 11 67.2904 1305 2 0 78.4226 81.05 -145.977 - 11 73.4968 1306 2 0 78.2737 81.25 -145.963 - 11 76.2113 1307 2 0 78.2126 81.4507 -145.996 - 11 70.618 1308 2 0 78.1688 81.65 -145.971 - 11 122.857 1309 2 0 78.1954 81.85 -146.045 - 11 513.959 1310 2 0 78.2349 82.05 -146.102 - 11 84.7238 1311 2 0 78.3929 82.25 -146.117 - 11 25.535 1275 6 0 76.2932 75.0775 -25.85 - 11 57.5739 1157 6 0 59.4329 51.5935 -26.25 - 11 84.5059 1156 6 0 59.3662 51.4498 -26.0872 - 11 46.051 1155 6 0 59.3209 51.2495 -25.9119 - 11 115.18 1195 6 1 59.1092 49.6538 -24.85 - 11 93.3632 1194 6 1 59.05 49.3356 -24.639 -Number of digits in this event = 59 -Using G4ParticleGun ... -3.97422 LIN -e- +Number of tracker hits in this event: 89 + 11 111.242 1578 8 1 135.943 -8.54366 35.55 + 11 122.673 857 8 0 135.941 -8.53978 34.15 + 11 121.618 1578 7 1 135.902 -8.47234 5.55 + 11 112.925 857 7 0 135.905 -8.47326 4.15 + 11 135.211 1579 6 1 135.956 -8.51484 -24.45 + 11 112.832 857 6 0 135.957 -8.52484 -25.85 + 11 121.249 1579 5 1 135.954 -8.74652 -54.45 + 11 132.963 856 5 0 135.952 -8.73869 -55.85 + 11 146.86 1578 4 1 135.793 -8.34383 -84.4504 + 11 123.717 857 4 0 135.854 -8.49812 -85.85 + 11 35.7338 1580 3 1 136.19 -10.9336 -114.45 + 11 387.517 1579 3 1 136.15 -10.9443 -114.537 + 11 112.586 844 3 0 135.592 -11.117 -115.85 + 11 15.059 1513 2 1 122.793 -14.0813 -144.45 + 11 101.343 1512 2 1 122.75 -14.0721 -144.512 + 11 11.9079 1511 2 1 122.55 -14.0029 -144.818 + 11 44.1106 831 2 0 121.985 -13.6793 -145.85 + 11 95.6178 832 2 0 121.924 -13.65 -145.972 + 11 132.818 1471 1 1 114.5 -12.3817 -174.45 + 11 74.7944 839 1 0 114.316 -12.2478 -175.85 + 11 145.464 838 1 0 114.284 -12.25 -176.124 + 11 3.05168 688 1 0 97.4418 -42.4422 -176.25 + 11 80.0034 687 1 0 97.4375 -42.4504 -176.241 + 11 128.709 686 1 0 97.3557 -42.65 -176.103 + 11 60.0112 685 1 0 97.3598 -42.85 -176.038 + 11 81.1098 684 1 0 97.3707 -43.05 -176.011 + 11 49.9031 683 1 0 97.432 -43.25 -176.075 + 11 45.389 682 1 0 97.4609 -43.45 -176.128 + 11 80.6182 681 1 0 97.4419 -43.65 -176.141 + 11 79.9502 680 1 0 97.4056 -43.8501 -176.155 + 11 71.6247 679 1 0 97.3736 -44.05 -176.111 + 11 52.812 678 1 0 97.3067 -44.2501 -175.954 + 11 6.91864 1383 1 1 96.7622 -45.1134 -174.85 + 11 125.73 1382 1 1 96.75 -45.1293 -174.83 + 11 170.61 1381 1 1 96.55 -45.4161 -174.555 + 11 70.4168 1380 1 1 96.3494 -45.6106 -174.538 + 11 59.921 1379 1 1 96.15 -45.6934 -174.566 + 11 101.492 1378 1 1 95.9498 -45.8144 -174.613 + 11 58.9534 1377 1 1 95.7499 -45.8795 -174.527 + 11 102.721 1376 1 1 95.55 -45.8148 -174.511 + 11 68.5129 1375 1 1 95.35 -45.7123 -174.46 + 11 178.6 1374 1 1 95.15 -45.6348 -174.531 + 11 77.4656 1373 1 1 94.95 -45.6153 -174.637 + 11 126.864 1372 1 1 94.75 -45.5477 -174.705 + 11 166.698 661 1 0 94.9895 -47.6758 -175.85 + 11 214.967 1578 3 1 135.777 -8.99982 -114.45 + 11 466.152 855 3 0 135.772 -9.00899 -115.85 + 11 264.351 1577 2 1 135.646 -9.17828 -144.45 + 11 223.143 854 2 0 135.647 -9.17112 -145.85 + 11 149.539 1577 1 1 135.651 -8.96663 -174.45 + 11 123.659 855 1 0 135.661 -8.96667 -175.85 + 11 361.811 1578 0 1 135.919 -8.94367 -204.45 + 11 174.224 855 0 0 135.922 -8.9561 -205.85 + 11 28.6095 1618 0 1 143.776 4.052 -204.85 + 11 53.3018 1546 0 0 90.4844 129.35 -206.214 + 11 74.809 1115 6 1 43.25 178.533 -24.6225 + 11 24.6549 1547 0 0 90.4872 129.55 -206.244 + 11 322.7 1577 0 1 135.649 -8.68048 -204.45 + 11 400.16 856 0 0 135.594 -8.70023 -205.85 + 11 103.648 1575 1 1 135.187 -9.22258 -174.45 + 11 124.533 854 1 0 135.17 -9.22533 -175.85 + 11 488.417 1573 0 1 134.83 -9.23357 -204.45 + 11 390.356 854 0 0 134.831 -9.24139 -205.85 + 11 39.0247 1412 5 0 167.924 102.55 -56.1107 + 11 108.2 853 0 0 134.827 -9.26189 -205.85 + 11 21.5543 1572 0 1 134.75 -9.22255 -204.779 + 11 55.5707 875 0 0 132.875 -4.99327 -206.25 + 11 79.5121 874 0 0 132.938 -5.05008 -206.035 + 11 60.5278 1565 0 1 133.278 -5.35159 -204.85 + 11 62.2796 1566 0 1 133.35 -5.34743 -204.606 + 11 227.851 858 0 0 135.768 -8.39641 -205.85 + 11 8.46058 1246 0 1 69.4005 8.88399 -204.85 + 11 13.9005 858 3 0 136.221 -8.25218 -115.85 + 11 116.502 859 3 0 136.222 -8.24986 -115.856 + 11 82.3601 1592 2 1 138.649 1.75309 -144.45 + 11 39.5917 1591 2 1 138.55 1.78175 -144.693 + 11 28.6012 909 2 0 138.194 2.01756 -145.85 + 11 79.5985 910 2 0 138.16 2.05 -145.98 + 11 47.7139 1572 1 1 134.716 7.42214 -174.45 + 11 69.3227 1573 1 1 134.75 7.54725 -174.618 + 11 54.7315 939 1 0 135.075 7.98725 -175.85 + 11 52.4815 940 1 0 135.11 8.05 -176.038 + 11 45.6053 1573 2 1 134.799 -9.96928 -144.45 + 11 66.3862 1572 2 1 134.75 -9.98452 -144.607 + 11 143.88 849 2 0 134.359 -10.0797 -145.85 + 11 180.061 1529 1 1 126.126 -11.8653 -174.45 + 11 131.001 1509 0 1 122.05 -19.127 -204.45 + 11 112.992 802 0 0 122.035 -19.5344 -205.85 + 11 1.23361 801 0 0 122.025 -19.65 -206.241 +Number of digits in this event: 36 +Using G4ParticleGun... +Particle energy: 9.39784 LIN +Particle: e- Event: 12 -Number of tracker hits in this event = 122 - 12 116.974 737 11 1 -32.5209 26.2337 125.55 - 12 276.177 1030 11 0 -32.5211 26.234 124.15 - 12 170.534 737 10 1 -32.5264 26.2352 95.55 - 12 154.413 1030 10 0 -32.5229 26.2296 94.15 - 12 144.747 737 9 1 -32.4619 26.1201 65.55 - 12 105.424 1030 9 0 -32.4565 26.116 64.15 - 12 136.085 738 8 1 -32.3414 26.0307 35.55 - 12 144.175 1029 8 0 -32.3385 26.024 34.15 - 12 254.797 738 7 1 -32.2719 25.8948 5.55 - 12 160.463 1029 7 0 -32.266 25.8754 4.15 - 12 117.843 739 6 1 -32.1452 25.4474 -24.45 - 12 348.696 1026 6 0 -32.1399 25.4216 -25.85 - 12 375.517 740 5 1 -32.0219 24.9009 -54.45 - 12 127.36 1024 5 0 -32.0057 24.8774 -55.85 - 12 113.346 741 4 1 -31.6633 24.329 -84.45 - 12 246.747 1021 4 0 -31.6516 24.3085 -85.85 - 12 123.875 743 3 1 -31.4146 23.9022 -114.45 - 12 123.252 1019 3 0 -31.406 23.8863 -115.85 - 12 230.16 743 2 1 -31.2647 23.5452 -144.45 - 12 131.578 1017 2 0 -31.2589 23.5186 -145.85 - 12 177.95 744 1 1 -31.1703 22.9607 -174.45 - 12 246.366 1014 1 0 -31.1757 22.936 -175.85 - 12 445.656 743 0 1 -31.3007 22.5341 -204.45 - 12 127.588 1012 0 0 -31.31 22.5154 -205.85 - 12 229.333 1013 0 0 -31.1703 22.7484 -205.85 - 12 190.182 1011 0 0 -31.3391 22.45 -205.852 - 12 100.608 744 2 1 -31.25 23.5263 -144.454 - 12 28.7055 1204 0 0 -73.1337 60.9896 -206.25 - 12 71.2626 1205 0 0 -73.1972 61.05 -206.234 - 12 77.4338 1206 0 0 -73.3998 61.25 -206.205 - 12 86.4638 1207 0 0 -73.3639 61.4501 -206.165 - 12 63.4914 1208 0 0 -73.2408 61.65 -206.104 - 12 118.155 1209 0 0 -73.193 61.8501 -206.003 - 12 53.8594 1210 0 0 -72.9747 62.05 -205.91 - 12 2.07264 541 0 1 -71.6557 62.9538 -204.85 - 12 107.724 542 0 1 -71.65 62.9575 -204.845 - 12 233.106 1215 0 0 -71.6141 63.0625 -205.85 - 12 89.5141 1214 0 0 -71.6226 63.0499 -205.883 - 12 12.9551 1188 2 1 57.65 -27.1851 -144.713 - 12 140.23 1189 2 1 57.85 -27.3221 -144.627 - 12 177.434 1190 2 1 58.0501 -27.3946 -144.455 - 12 326.86 741 2 1 -31.839 25.187 -144.45 - 12 286.084 1025 2 0 -31.8395 25.1772 -145.85 - 12 588.752 738 1 1 -32.2917 25.8538 -174.45 - 12 462.926 1029 1 0 -32.3057 25.8924 -175.85 - 12 131.685 738 0 1 -32.3519 26.5211 -204.45 - 12 212.203 1032 0 0 -32.3165 26.5266 -205.85 - 12 136.065 755 1 1 -28.9237 22.6854 -174.45 - 12 43.695 756 1 1 -28.85 22.6419 -174.817 - 12 112.809 1012 1 0 -28.6405 22.5123 -175.85 - 12 131.218 785 0 1 -22.9486 18.7437 -204.45 - 12 14.2176 992 0 0 -22.6678 18.4645 -205.85 - 12 89.6293 991 0 0 -22.6533 18.45 -205.923 - 12 28.6095 872 0 1 -5.6107 23.2064 -204.85 - 12 95.4927 736 10 1 -32.65 26.3574 95.4817 - 12 109.091 735 10 1 -32.85 26.5471 95.4663 - 12 178.874 734 10 1 -33.05 26.7872 95.481 - 12 199.268 733 10 1 -33.25 27.2336 95.5216 - 12 2.09557 1039 10 0 -32.3394 28.0471 94.15 - 12 157.867 1040 10 0 -32.3341 28.05 94.1434 - 12 55.3339 1041 10 0 -32.2532 28.2501 93.8338 - 12 105.727 1752 10 0 -63.1364 170.659 93.75 - 12 85.6238 1753 10 0 -63.1708 170.75 93.7885 - 12 123.737 577 10 1 -64.4635 169.86 95.1501 - 12 156.091 578 10 1 -64.45 169.856 95.2046 - 12 284.374 738 3 1 -32.2681 26.2624 -114.45 - 12 423.716 1031 3 0 -32.3376 26.2579 -115.85 - 12 129.096 730 2 1 -33.8671 26.1081 -144.45 - 12 283.886 1030 2 0 -33.949 26.0911 -145.85 - 12 100.979 721 1 1 -35.7276 25.5868 -174.45 - 12 207.101 1027 1 0 -35.7381 25.58 -175.85 - 12 239.205 720 0 1 -35.9896 25.5128 -204.45 - 12 133.369 1027 0 0 -35.9986 25.5214 -205.85 - 12 58.116 399 3 1 -100.15 -13.219 -114.758 - 12 150.986 738 2 1 -32.2763 26.2294 -144.45 - 12 342.456 737 0 1 -32.5748 25.7517 -204.45 - 12 395.263 1028 0 0 -32.585 25.7397 -205.85 - 12 174.476 741 0 1 -31.7337 25.7272 -204.45 - 12 186.794 1025 1 0 -32.4872 25.2365 -175.85 - 12 22.6006 1024 1 0 -32.5253 25.05 -176.183 - 12 24.2788 701 0 1 -39.8269 7.22636 -204.45 - 12 93.8953 700 0 1 -39.85 7.18611 -204.546 - 12 92.4227 931 0 0 -40.0858 6.44993 -205.85 - 12 31.4633 930 0 0 -40.1451 6.24995 -206.162 - 12 270.087 737 8 1 -32.4734 26.184 35.537 - 12 381.315 1030 8 0 -32.4711 26.1912 34.15 - 12 103.094 1034 7 0 -32.3208 26.968 4.15 - 12 124.05 743 6 1 -31.3931 26.5981 -24.45 - 12 135.373 1032 6 0 -31.3356 26.5556 -25.85 - 12 130.359 749 5 1 -30.2448 25.6418 -54.45 - 12 145.406 1027 5 0 -30.1542 25.5858 -55.85 - 12 129.572 757 4 1 -28.486 24.5018 -84.45 - 12 113.837 766 3 1 -26.7947 22.7368 -114.45 - 12 50.7451 1013 3 0 -26.6957 22.6582 -115.85 - 12 70.2964 1012 3 0 -26.6853 22.65 -115.999 - 12 127.867 777 2 1 -24.5791 20.9554 -144.45 - 12 118.557 1004 2 0 -24.4691 20.9118 -145.85 - 12 138.816 788 1 1 -22.407 20.2322 -174.45 - 12 133.148 1000 1 0 -22.3269 20.1628 -175.85 - 12 367.762 797 0 1 -20.6203 18.7865 -204.45 - 12 230.972 993 0 0 -20.5579 18.7782 -205.85 - 12 131.954 1184 2 1 56.85 46.9199 -144.703 - 12 123.427 995 0 0 -20.1116 19.1039 -205.85 - 12 93.5813 996 0 0 -19.9844 19.25 -205.891 - 12 40.8158 804 0 1 -19.221 19.5444 -204.85 - 12 164.458 737 7 1 -32.4542 26.2304 5.55 - 12 112.229 1030 7 0 -32.426 26.2036 4.15 - 12 95.8941 740 6 1 -31.9562 25.6335 -24.45 - 12 142.667 1027 6 0 -31.9503 25.5828 -25.85 - 12 150.768 1022 5 0 -32.0384 24.4993 -55.85 - 12 39.9427 726 4 1 -34.8242 23.0194 -84.45 - 12 146.875 725 4 1 -34.85 23.0143 -84.6261 - 12 141.749 1014 4 0 -35.0309 22.9804 -85.85 - 12 111.477 705 3 1 -38.9531 22.3102 -114.45 - 12 167.429 1011 3 0 -39.1533 22.3364 -115.85 - 12 97.1138 684 2 1 -43.1778 23.014 -144.45 - 12 120.01 1014 2 0 -43.2834 22.997 -145.85 - 12 180.844 673 1 1 -45.4038 22.8349 -174.45 - 12 151.645 1013 1 0 -45.4674 22.776 -175.85 - 12 172.189 666 0 1 -46.7508 21.388 -204.45 - 12 279.285 1005 0 0 -46.8456 21.1208 -205.851 - 12 5.7017 1004 0 0 -46.8725 21.0499 -206.225 -Number of digits in this event = 77 -Using G4ParticleGun ... -8.14886 LIN -e- +Number of tracker hits in this event: 85 + 12 118.527 925 10 1 5.23755 -105.793 95.55 + 12 118.853 371 10 0 5.23802 -105.794 94.15 + 12 124.738 926 9 1 5.25031 -105.815 65.55 + 12 194.51 371 9 0 5.25174 -105.816 64.15 + 12 135.354 926 8 1 5.28287 -105.836 35.55 + 12 114.584 371 8 0 5.28481 -105.836 34.15 + 12 163.557 926 7 1 5.32226 -105.83 5.55 + 12 133.801 371 7 0 5.32487 -105.829 4.15 + 12 122.545 926 6 1 5.40482 -105.812 -24.45 + 12 114.769 371 6 0 5.40813 -105.81 -25.85 + 12 279.582 927 5 1 5.48517 -105.761 -54.45 + 12 541.039 371 5 0 5.48936 -105.757 -55.85 + 12 299.09 927 4 1 5.58664 -105.681 -84.45 + 12 167.652 372 4 0 5.59158 -105.676 -85.85 + 12 244.575 928 3 1 5.69782 -105.56 -114.45 + 12 119.643 372 3 0 5.70374 -105.554 -115.85 + 12 272.518 928 2 1 5.82321 -105.435 -144.45 + 12 152.744 373 2 0 5.82925 -105.428 -145.85 + 12 202.99 929 1 1 5.95638 -105.283 -174.45 + 12 112.306 374 1 0 5.9668 -105.277 -175.85 + 12 103.116 930 0 1 6.17523 -105.146 -204.45 + 12 108.985 375 0 0 6.18407 -105.141 -205.85 + 12 32.3344 1460 13 0 -178.741 112.308 183.75 + 12 216.031 1461 13 0 -178.762 112.35 183.86 + 12 41.7807 1462 13 0 -178.776 112.55 183.976 + 12 76.2684 12 13 1 -177.591 113.84 185.15 + 12 69.3441 13 13 1 -177.55 113.855 185.156 + 12 563.741 926 5 1 5.43338 -105.873 -54.45 + 12 98.596 371 4 0 5.56828 -105.925 -85.85 + 12 132.55 371 3 0 5.70764 -105.921 -115.85 + 12 101.338 371 2 0 5.75592 -105.849 -145.85 + 12 130.684 928 1 1 5.73811 -105.922 -174.45 + 12 106.573 371 1 0 5.74276 -105.923 -175.85 + 12 176.048 928 0 1 5.84751 -105.917 -204.45 + 12 181.995 371 0 0 5.85409 -105.903 -205.85 + 12 19.9748 645 6 0 -26.0499 -50.897 -26.25 + 12 245.388 646 6 0 -26.0289 -50.8499 -26.2027 + 12 111.262 1142 3 0 -136.465 48.45 -115.991 + 12 16.3175 378 5 0 6.86057 -104.472 -55.85 + 12 50.4422 947 5 1 9.60242 -101.197 -54.85 + 12 95.1917 398 5 0 9.48165 -100.485 -55.85 + 12 352.654 925 5 1 5.25 -105.635 -54.5787 + 12 171.605 924 5 1 5.05 -105.358 -54.5449 + 12 68.2606 372 5 0 5.66848 -105.604 -55.8505 + 12 81.7099 373 5 0 5.71426 -105.55 -56.0826 + 12 56.9648 714 5 0 13.9031 -37.1881 -56.25 + 12 106.734 715 5 0 13.9037 -37.0497 -56.1889 + 12 78.4069 716 5 0 13.9205 -36.8494 -56.0883 + 12 153.511 717 5 0 13.9739 -36.65 -55.8847 + 12 161.467 970 5 1 14.1655 -35.9328 -54.85 + 12 2.98831 698 6 0 14.0862 -40.447 -26.25 + 12 102.595 697 6 0 14.0863 -40.45 -26.2356 + 12 25.5218 696 6 0 14.0085 -40.65 -25.922 + 12 19.3931 967 6 1 13.4789 -41.3308 -24.85 + 12 97.2115 966 6 1 13.45 -41.3833 -24.7734 + 12 61.6456 965 6 1 13.2499 -41.4963 -24.6207 + 12 79.5466 964 6 1 13.05 -41.5213 -24.7202 + 12 19.0851 963 6 1 12.85 -41.4012 -24.8089 + 12 498.557 693 6 0 11.464 -41.2648 -25.85 + 12 242.803 694 6 0 11.4105 -41.25 -25.8901 + 12 21.2676 692 6 0 10.355 -41.45 -25.8794 + 12 274.253 943 2 1 8.79075 -111.465 -144.45 + 12 29.3999 339 2 0 9.00137 -112.303 -145.85 + 12 86.7413 338 2 0 9.01461 -112.35 -145.928 + 12 175.967 984 1 1 16.8578 -129.618 -174.45 + 12 3.86469 985 1 1 17.0501 -129.712 -174.839 + 12 173.637 250 1 0 17.5236 -130.031 -175.85 + 12 158.969 1041 0 1 28.3425 -136.691 -204.45 + 12 311.481 1042 0 1 28.45 -136.834 -204.698 + 12 80.0541 211 0 0 29.203 -137.757 -205.85 + 12 111.686 210 0 0 29.3501 -137.95 -206.063 + 12 15.009 209 0 0 29.4916 -138.15 -206.219 + 12 176.233 174 0 0 50.2257 -145.332 -206.25 + 12 64.9687 175 0 0 50.6333 -145.15 -205.984 + 12 59.8091 176 0 0 50.612 -144.95 -205.9 + 12 21.2273 177 0 0 50.567 -144.75 -205.889 + 12 367.847 1153 0 1 50.659 -144.242 -204.85 + 12 81.6151 100 0 0 50.312 -160.079 -206.25 + 12 202.106 343 2 0 8.94796 -111.427 -145.85 + 12 106.665 958 1 1 11.6967 -110.099 -174.45 + 12 123.223 349 1 0 12.1574 -110.219 -175.85 + 12 153.091 1006 0 1 21.297 -112.923 -204.45 + 12 26.5158 333 0 0 21.6463 -113.511 -205.85 + 12 96.197 332 0 0 21.6684 -113.55 -205.948 + 12 176.423 344 2 0 9.03934 -111.35 -146.125 +Number of digits in this event: 41 +Using G4ParticleGun... +Particle energy: 1.8404 LIN +Particle: e- Event: 13 -Number of tracker hits in this event = 54 - 13 125.492 1317 10 1 83.6028 -76.1397 95.55 - 13 133.999 519 10 0 83.6025 -76.141 94.15 - 13 256.499 1317 9 1 83.5941 -76.1909 65.55 - 13 100.077 519 9 0 83.5934 -76.1916 64.15 - 13 120.195 1317 8 1 83.5798 -76.213 35.55 - 13 114.377 519 8 0 83.5806 -76.2096 34.15 - 13 104.429 1317 7 1 83.5968 -76.1373 5.55 - 13 147.46 519 7 0 83.5957 -76.1331 4.15 - 13 108.435 1317 6 1 83.5662 -76.0502 -24.45 - 13 120.908 520 6 0 83.5666 -76.0446 -25.85 - 13 122.233 1317 5 1 83.5729 -75.9403 -54.45 - 13 105.765 520 5 0 83.5752 -75.9332 -55.85 - 13 130.817 1317 4 1 83.6263 -75.7902 -84.45 - 13 110.785 521 4 0 83.6312 -75.7819 -85.85 - 13 137.59 1318 3 1 83.733 -75.6091 -114.45 - 13 177.099 522 3 0 83.7419 -75.5995 -115.85 - 13 111.225 1319 2 1 83.9498 -75.3743 -144.45 - 13 126.504 523 2 0 83.9609 -75.361 -145.85 - 13 134.353 1320 1 1 84.1739 -75.0905 -174.45 - 13 113.816 524 1 0 84.1811 -75.0742 -175.85 - 13 134.084 1321 0 1 84.3241 -74.733 -204.45 - 13 135.714 526 0 0 84.3297 -74.721 -205.85 - 13 240.506 189 4 0 132.645 -142.176 -86.25 - 13 45.8727 1008 8 1 21.8416 -86.4721 35.15 - 13 121.826 1009 8 1 21.85 -86.4991 35.2769 - 13 394.901 1317 2 1 83.573 -76.118 -144.45 - 13 132.153 519 2 0 83.6738 -76.1176 -145.85 - 13 92.3976 1325 1 1 85.1473 -75.5058 -174.45 - 13 123.694 523 1 0 84.9837 -75.4298 -175.85 - 13 125.061 1304 0 1 80.8949 -73.775 -204.45 - 13 123.708 530 0 0 80.9292 -73.9499 -205.85 - 13 98.2959 520 2 0 83.5803 -76.0296 -145.85 - 13 121.053 1315 1 1 83.1653 -74.559 -174.45 - 13 125.295 528 1 0 83.2295 -74.4226 -175.85 - 13 96.1575 1322 0 1 84.626 -72.0568 -204.45 - 13 25.3656 1323 0 1 84.65 -72.004 -204.772 - 13 113.9 541 0 0 84.7302 -71.8447 -205.85 - 13 64.9586 524 2 0 83.2287 -75.1834 -145.85 - 13 58.3337 525 2 0 83.1674 -75.05 -146.049 - 13 2.1298 1281 1 1 76.2573 -54.93 -174.45 - 13 99.8087 1280 1 1 76.2499 -54.941 -174.459 - 13 160.352 1279 1 1 76.05 -55.2472 -174.625 - 13 51.0348 1278 1 1 75.85 -55.7966 -174.766 - 13 26.2513 613 1 0 76.0125 -57.361 -175.85 - 13 72.5739 612 1 0 76.0204 -57.45 -175.902 - 13 69.651 611 1 0 76.0981 -57.65 -175.925 - 13 34.3252 610 1 0 76.192 -57.85 -175.882 - 13 78.5745 1289 1 1 77.851 -60.04 -174.85 - 13 83.8679 1290 1 1 78.05 -60.2507 -174.786 - 13 77.545 1291 1 1 78.25 -60.4565 -174.816 - 13 89.5123 1292 1 1 78.45 -60.6019 -174.791 - 13 108.308 1293 1 1 78.65 -60.7112 -174.736 - 13 393.261 1294 1 1 78.8504 -60.8615 -174.616 - 13 209.652 1295 1 1 79.05 -60.9255 -174.506 -Number of digits in this event = 29 -Using G4ParticleGun ... -1.89169 LIN -e- +Number of tracker hits in this event: 57 + 13 104.275 1005 11 1 21.1064 -40.5851 125.55 + 13 110.019 697 11 0 21.1041 -40.5859 124.15 + 13 121.359 1005 10 1 21.0586 -40.619 95.55 + 13 126.72 697 10 0 21.0539 -40.6179 94.15 + 13 134.247 1004 9 1 20.992 -40.5659 65.55 + 13 154.227 697 9 0 20.989 -40.5622 64.15 + 13 132.943 1004 8 1 20.9557 -40.4923 35.55 + 13 109.628 697 8 0 20.9552 -40.4884 34.15 + 13 242.183 1004 7 1 20.9361 -40.4095 5.55 + 13 127.727 698 7 0 20.9326 -40.4019 4.15 + 13 137.959 1004 6 1 20.8526 -40.261 -24.45 + 13 132.02 698 6 0 20.8489 -40.2528 -25.85 + 13 146.686 1003 5 1 20.7764 -40.0978 -54.45 + 13 103.569 699 5 0 20.7675 -40.0911 -55.85 + 13 247.079 1002 4 1 20.585 -39.9625 -84.45 + 13 287.194 700 4 0 20.5777 -39.9449 -85.85 + 13 129.992 1001 3 1 20.4446 -39.5838 -114.45 + 13 188.436 702 3 0 20.4474 -39.5662 -115.85 + 13 228.589 1002 2 1 20.5078 -39.2149 -144.45 + 13 130.704 704 2 0 20.5169 -39.1862 -145.85 + 13 120.536 1003 1 1 20.7105 -38.6163 -174.45 + 13 137.618 707 1 0 20.7086 -38.5841 -175.85 + 13 141.98 1002 0 1 20.6249 -37.871 -204.45 + 13 174.785 711 0 0 20.6234 -37.8377 -205.85 + 13 111.822 1003 4 1 20.7029 -39.9427 -84.45 + 13 148.551 1004 4 1 20.8501 -40.0229 -84.5237 + 13 101.291 694 4 0 21.1886 -41.19 -85.8504 + 13 106.923 693 4 0 21.2004 -41.2501 -85.9347 + 13 20.5128 1011 3 1 22.302 -51.8376 -114.45 + 13 98.4055 1010 3 1 22.25 -51.9028 -114.495 + 13 81.7239 1009 3 1 22.05 -52.0111 -114.745 + 13 159.871 647 3 0 20.3867 -50.6314 -115.85 + 13 168.237 648 3 0 20.1845 -50.4497 -115.984 + 13 54.4614 646 3 0 19.6452 -50.6503 -115.911 + 13 71.6631 645 3 0 19.6355 -50.85 -115.873 + 13 100.025 644 3 0 19.5506 -51.0506 -115.88 + 13 99.1875 643 3 0 19.4868 -51.25 -115.873 + 13 64.7513 642 3 0 19.5194 -51.45 -115.911 + 13 219.291 988 3 1 17.764 -49.9145 -114.85 + 13 20.3075 584 3 1 -63.2459 146.581 -114.45 + 13 65.177 1004 10 1 20.9934 -40.5786 95.55 + 13 74.7532 1003 10 1 20.85 -40.5334 95.3425 + 13 139.039 699 10 0 20.0505 -40.2076 94.1493 + 13 9.85025 935 9 1 7.23038 -35.1821 65.5495 + 13 119.139 936 9 1 7.25023 -35.1605 65.5377 + 13 117.673 937 9 1 7.45 -34.789 65.3531 + 13 2.60513 735 9 0 8.28684 -32.8603 64.15 + 13 76.4349 736 9 0 8.29085 -32.8499 64.1432 + 13 79.9218 737 9 0 8.36696 -32.6494 63.9849 + 13 42.5324 738 9 0 8.46561 -32.4499 63.8219 + 13 77.7927 965 9 0 66.6159 13.1897 63.7502 + 13 50.4132 964 9 0 66.6256 13.05 63.9779 + 13 346.917 1233 9 1 66.7882 12.5882 65.15 + 13 141.851 1234 9 1 66.85 12.5269 65.3626 + 13 137.87 969 8 0 4.52845 13.85 33.8417 + 13 156.808 683 8 0 4.15962 -43.2634 33.75 + 13 9.02323 768 0 0 4.11442 -26.3433 -206.25 +Number of digits in this event: 32 +Using G4ParticleGun... +Particle energy: 2.42983 LIN +Particle: e- Event: 14 -Number of tracker hits in this event = 16 - 14 114.285 1350 8 1 90.1654 104.38 35.55 - 14 126.69 1421 8 0 90.1639 104.371 34.15 - 14 124.832 1350 5 1 90.166 104.078 -54.45 - 14 110.045 1419 5 0 90.168 104.074 -55.85 - 14 116.48 1350 4 1 90.2228 103.957 -84.45 - 14 127.581 1418 4 0 90.2262 103.949 -85.85 - 14 110.245 1350 3 1 90.3157 103.796 -114.45 - 14 108.666 1418 3 0 90.3217 103.789 -115.85 - 14 122.556 1351 2 1 90.3683 103.629 -144.45 - 14 139.953 1417 2 0 90.3724 103.625 -145.85 - 14 107.444 1351 1 1 90.4708 103.534 -174.45 - 14 139.837 1416 1 0 90.4632 103.518 -175.85 - 14 136.794 1350 0 1 90.304 103.113 -204.45 - 14 99.6395 1414 0 0 90.304 103.124 -205.85 - 14 42.626 1540 2 0 170.658 128.15 -146.11 - 14 58.116 1757 2 1 171.59 130.362 -144.85 -Number of digits in this event = 8 -Using G4ParticleGun ... -7.73923 LIN -e- +Number of tracker hits in this event: 82 + 14 121.591 317 8 1 -116.641 75.8069 35.55 + 14 124.284 1278 8 0 -116.639 75.8029 34.15 + 14 178.79 317 7 1 -116.588 75.7259 5.55 + 14 143.517 1278 7 0 -116.529 75.7214 4.15 + 14 142.34 325 6 1 -115.14 75.5976 -24.45 + 14 163.374 1277 6 0 -115.07 75.5751 -25.85 + 14 137.013 332 5 1 -113.728 75.1336 -54.45 + 14 131.501 1277 5 0 -113.687 75.4895 -55.8502 + 14 113.426 333 4 1 -113.401 82.6357 -84.45 + 14 12.1124 1314 4 0 -113.341 83.0422 -85.85 + 14 180.633 1315 4 0 -113.34 83.05 -85.877 + 14 155.361 337 3 1 -112.657 91.2702 -114.45 + 14 14.3631 1357 3 0 -112.63 91.7345 -115.85 + 14 123.892 1358 3 0 -112.629 91.7502 -115.897 + 14 144.932 343 2 1 -111.503 100.83 -144.45 + 14 160.212 1406 2 0 -111.572 101.371 -145.85 + 14 117.282 335 1 1 -113.082 112.401 -174.45 + 14 53.2651 1463 1 0 -113.236 112.884 -175.85 + 14 64.6601 1464 1 0 -113.257 112.95 -176.038 + 14 264.201 319 0 1 -116.213 123.109 -204.45 + 14 116.471 1517 0 0 -116.584 123.622 -205.85 + 14 26.7793 1518 0 0 -116.669 123.75 -206.193 + 14 72.2359 341 2 1 -111.792 101.118 -144.45 + 14 144.583 340 2 1 -111.951 101.335 -144.45 + 14 49.4835 339 2 1 -112.15 101.576 -144.714 + 14 74.332 1404 2 0 -112.646 101.133 -145.85 + 14 51.195 1403 2 0 -112.611 100.95 -146.054 + 14 0.890345 349 2 1 -110.34 71.6947 -144.849 + 14 159.948 1258 2 0 -110.321 71.6781 -145.85 + 14 99.549 366 1 1 -106.905 70.9506 -174.45 + 14 88.9412 1254 1 0 -106.712 70.8817 -175.85 + 14 14.836 1253 1 0 -106.666 70.85 -176.219 + 14 135.23 384 0 1 -103.319 67.4715 -204.45 + 14 34.1116 383 0 1 -103.35 67.4543 -204.72 + 14 172.717 1236 0 0 -103.438 67.3756 -205.85 + 14 150.115 1257 2 0 -110.338 71.5895 -145.85 + 14 73.4492 376 1 1 -104.785 66.8093 -174.45 + 14 23.983 377 1 1 -104.75 66.8773 -174.728 + 14 27.3444 1235 1 0 -104.599 67.2427 -175.85 + 14 133.303 1236 1 0 -104.597 67.25 -175.871 + 14 132.569 394 0 1 -101.249 80.6137 -204.45 + 14 0.481806 393 0 1 -101.35 80.9045 -204.846 + 14 57.8997 1308 0 0 -101.746 81.7121 -205.851 + 14 123.925 1309 0 0 -101.816 81.85 -206.038 + 14 107.677 1339 0 0 -127.066 88.0052 -206.25 + 14 15.019 264 0 1 -127.347 88.2726 -204.85 + 14 344.854 263 0 1 -127.35 88.2687 -204.784 + 14 53.564 262 0 1 -127.55 88.2349 -204.493 + 14 287.712 318 4 1 -116.47 75.3936 -84.45 + 14 256.901 1276 4 0 -116.468 75.3905 -85.85 + 14 209.859 318 3 1 -116.43 75.3429 -114.45 + 14 106.123 1276 3 0 -116.434 75.3434 -115.85 + 14 244.73 318 2 1 -116.499 75.3312 -144.45 + 14 35.8108 1276 2 0 -116.465 75.2562 -145.85 + 14 195.155 1275 2 0 -116.462 75.25 -145.966 + 14 142.849 321 1 1 -115.791 73.8649 -174.45 + 14 132.384 1268 1 0 -115.765 73.7766 -175.85 + 14 152.712 325 0 1 -115.118 72.0215 -204.45 + 14 106.857 1259 0 0 -115.065 71.9129 -205.85 + 14 33.0086 1251 0 0 -75.7279 70.45 -205.958 + 14 1.23713 1368 7 0 60.5358 93.8162 3.75 + 14 118.317 1274 4 0 -116.2 74.9723 -85.85 + 14 24.1682 1273 4 0 -116.123 74.85 -86.1636 + 14 42.7723 351 3 1 -109.872 67.0059 -114.451 + 14 72.0961 352 3 1 -109.75 66.9419 -114.589 + 14 31.0962 353 3 1 -109.55 66.837 -114.766 + 14 147.751 1231 3 0 -108.732 66.4125 -115.851 + 14 113.307 1275 3 0 -116.522 75.1154 -115.85 + 14 117.646 1273 2 0 -116.542 74.8328 -145.85 + 14 109.246 318 1 1 -116.373 74.5719 -174.45 + 14 178.487 1272 1 0 -116.376 74.5677 -175.85 + 14 191.651 318 0 1 -116.426 74.4713 -204.45 + 14 98.3178 1272 0 0 -116.435 74.4578 -205.85 + 14 205.783 317 2 1 -116.578 74.9087 -144.45 + 14 24.1191 316 2 1 -116.75 75.3903 -144.807 + 14 15.7343 1289 2 0 -118.119 77.8818 -145.85 + 14 161.39 302 2 1 -119.566 78.6045 -144.85 + 14 78.5232 301 2 1 -119.75 78.6989 -144.729 + 14 66.3712 300 2 1 -119.95 78.873 -144.607 + 14 206.248 299 2 1 -120.15 78.9865 -144.725 + 14 81.6597 298 2 1 -120.35 79.1968 -144.773 + 14 43.2789 297 2 1 -120.55 79.2928 -144.602 +Number of digits in this event: 40 +Using G4ParticleGun... +Particle energy: 6.72225 LIN +Particle: e- Event: 15 -Number of tracker hits in this event = 51 - 15 163.056 1170 7 1 54.2242 -137.55 5.55 - 15 109.869 213 7 0 54.2248 -137.549 4.15 - 15 132.883 1170 6 1 54.2363 -137.534 -24.45 - 15 127.795 213 6 0 54.2357 -137.534 -25.85 - 15 104.39 1170 5 1 54.2203 -137.523 -54.45 - 15 130.777 213 5 0 54.221 -137.522 -55.85 - 15 120.884 1170 4 1 54.2367 -137.506 -84.45 - 15 157.206 213 4 0 54.2373 -137.504 -85.85 - 15 112.975 1171 3 1 54.2575 -137.447 -114.45 - 15 334.353 213 3 0 54.2583 -137.445 -115.85 - 15 119.22 1171 2 1 54.2767 -137.412 -144.45 - 15 140.195 213 2 0 54.286 -137.42 -145.85 - 15 97.3895 1172 1 1 54.4821 -137.582 -174.45 - 15 173.066 212 1 0 54.4925 -137.592 -175.85 - 15 312.259 1173 0 1 54.706 -137.811 -204.45 - 15 456.981 211 0 0 54.7174 -137.823 -205.85 - 15 127.724 1049 2 1 30.027 -87.9134 -144.85 - 15 135.699 1050 2 1 30.0501 -87.7574 -144.532 - 15 44.2661 1355 0 1 91.15 -102.571 -204.515 - 15 197.096 1354 0 1 91.15 -102.556 -204.494 - 15 123.162 213 1 0 54.4863 -137.55 -176.13 - 15 133.705 309 1 0 0.837585 -118.242 -176.25 - 15 78.9357 308 1 0 0.755849 -118.35 -176.223 - 15 8.51712 1183 0 1 56.8468 -128.084 -204.45 - 15 117.771 1184 0 1 56.85 -128.07 -204.476 - 15 129.079 262 0 0 57.4463 -127.649 -205.85 - 15 58.6437 244 0 0 74.7254 -131.292 -206.25 - 15 97.862 243 0 0 74.791 -131.35 -206.125 - 15 189.587 1273 0 1 74.6808 -131.296 -204.85 - 15 36.7445 1272 0 1 74.65 -131.219 -204.562 - 15 403.191 1170 3 1 54.1936 -137.521 -114.486 - 15 297.732 1170 2 1 54.2254 -137.567 -144.45 - 15 247.986 212 2 0 54.257 -137.616 -145.85 - 15 129.598 1174 1 1 54.8861 -138.695 -174.45 - 15 205.097 206 1 0 54.9102 -138.792 -175.85 - 15 110.967 1176 0 1 55.3848 -140.855 -204.45 - 15 118.58 195 0 0 55.3411 -140.965 -205.85 - 15 113.898 1170 1 1 54.1182 -137.849 -174.45 - 15 104.171 211 1 0 54.1298 -137.871 -175.85 - 15 160.047 1171 0 1 54.2653 -138.407 -204.45 - 15 130.813 208 0 0 54.2939 -138.414 -205.85 - 15 7.73873 110 3 1 -157.964 -32.6928 -114.45 - 15 303.45 111 3 1 -157.95 -32.6864 -114.467 - 15 41.229 112 3 1 -157.75 -32.6056 -114.718 - 15 2.9229 739 3 0 -156.836 -32.0571 -115.85 - 15 153.111 740 3 0 -156.825 -32.05 -115.863 - 15 150.198 731 3 0 -143.138 -33.7715 -116.25 - 15 35.0977 730 3 0 -142.916 -33.85 -115.954 - 15 330.425 189 3 1 -142.252 -32.0085 -114.85 - 15 74.6986 190 3 1 -142.15 -31.9557 -114.714 - 15 55.4448 188 3 1 -142.35 -32.5464 -114.489 -Number of digits in this event = 32 -Using G4ParticleGun ... -7.44793 LIN -e- +Number of tracker hits in this event: 180 + 15 108.756 829 10 1 -14.1577 -90.6001 95.55 + 15 127.235 447 10 0 -14.1621 -90.5979 94.15 + 15 546.328 829 9 1 -14.2426 -90.5626 65.55 + 15 126.686 447 9 0 -14.2432 -90.5604 64.15 + 15 374.559 829 8 1 -14.2347 -90.5263 35.55 + 15 157.739 448 8 0 -14.2387 -90.5247 34.15 + 15 457.993 828 7 1 -14.326 -90.4956 5.55 + 15 249.784 448 7 0 -14.3328 -90.5005 4.15 + 15 118.7 827 6 1 -14.4922 -90.6197 -24.45 + 15 198.446 447 6 0 -14.4967 -90.6257 -25.85 + 15 216.913 827 5 1 -14.6302 -90.7159 -54.45 + 15 94.5388 447 5 0 -14.6361 -90.7168 -55.85 + 15 131.944 826 4 1 -14.7512 -90.7527 -84.45 + 15 170.204 446 4 0 -14.7602 -90.752 -85.85 + 15 135.113 825 3 1 -14.9201 -90.721 -114.45 + 15 111.689 447 3 0 -14.928 -90.7178 -115.85 + 15 129.808 824 2 1 -15.0831 -90.6367 -144.45 + 15 112.262 447 2 0 -15.0876 -90.6367 -145.85 + 15 261.347 824 1 1 -15.1789 -90.602 -174.45 + 15 115.859 447 1 0 -15.1865 -90.5977 -175.85 + 15 151.72 823 0 1 -15.3471 -90.5194 -204.45 + 15 135.199 448 0 0 -15.3542 -90.5166 -205.85 + 15 30.0265 476 0 0 -159.172 -84.6743 -206.25 + 15 63.1636 477 0 0 -159.382 -84.65 -206.076 + 15 100.864 559 1 0 -98.2852 -68.2191 -176.25 + 15 6.66549 63 5 0 0.213572 -167.55 -56.0657 + 15 40.1439 263 0 0 12.6437 -127.35 -206.211 + 15 112.285 262 0 0 12.8504 -127.55 -206.01 + 15 218.41 965 0 1 13.1154 -127.308 -204.85 + 15 99.4704 1256 1 1 71.3418 -118.921 -174.45 + 15 3.02799 1080 0 1 36.05 -174.26 -204.801 + 15 213.308 1081 0 1 36.25 -174.609 -204.659 + 15 26.7915 446 3 0 -14.8425 -90.8082 -115.85 + 15 100.831 829 7 1 -14.25 -90.4767 5.51133 + 15 148.371 449 7 0 -13.6815 -90.2701 4.15 + 15 92.0243 416 7 0 19.3508 -96.7986 3.75 + 15 55.749 415 7 0 19.4857 -96.95 4.02469 + 15 120.565 999 7 1 19.9057 -97.2955 5.15 + 15 9.37283 1000 7 1 20.0501 -97.357 5.52342 + 15 124.219 348 8 0 31.7104 -110.403 33.75 + 15 24.8695 347 8 0 31.9927 -110.55 34.0917 + 15 152.459 1067 8 1 33.5445 -111.352 35.15 + 15 70.2045 1068 8 1 33.65 -111.384 35.2252 + 15 210.486 1069 8 1 33.85 -111.474 35.3326 + 15 292.559 1070 8 1 34.0501 -111.381 35.4678 + 15 55.8345 1082 8 1 36.45 -136.674 35.2787 + 15 223.474 1081 8 1 36.4497 -136.955 35.4487 + 15 237.428 1080 8 1 36.25 -137.158 35.2817 + 15 146.094 207 9 0 115.372 -138.55 63.858 + 15 109.351 829 2 1 -14.161 -90.4158 -144.45 + 15 229.097 830 2 1 -14.05 -90.5905 -144.617 + 15 39.3443 831 2 1 -13.85 -90.8551 -144.804 + 15 20.2698 438 2 0 -12.2739 -92.4928 -145.85 + 15 85.0064 437 2 0 -12.2242 -92.55 -145.884 + 15 55.0623 436 2 0 -12.1201 -92.75 -145.98 + 15 113.788 435 2 0 -12.0309 -92.95 -146.031 + 15 53.3003 434 2 0 -11.9297 -93.1501 -146.076 + 15 118.191 286 3 0 72.5817 -122.871 -116.25 + 15 255.72 285 3 0 72.7897 -122.95 -116.096 + 15 67.8483 449 2 0 -13.4203 -90.2256 -145.85 + 15 66.68 532 2 0 -15.3829 -73.5299 -146.25 + 15 70.4079 533 2 0 -15.4832 -73.45 -146.014 + 15 161.038 820 2 1 -15.912 -73.2025 -144.85 + 15 23.311 819 2 1 -16.05 -73.0999 -144.552 + 15 137.468 818 2 1 -16.369 -73.1088 -144.45 + 15 145.99 817 2 1 -16.45 -72.7756 -144.72 + 15 6.8114 546 2 0 -17.094 -70.6739 -145.85 + 15 166.255 547 2 0 -17.1001 -70.65 -145.867 + 15 181.029 602 2 0 0.990388 -59.5139 -146.25 + 15 234.501 904 2 1 0.939259 -59.159 -144.85 + 15 309.081 903 2 1 0.849965 -59.1372 -144.599 + 15 27.6038 636 10 0 2.35864 -52.7162 93.75 + 15 260.033 637 10 0 2.39584 -52.65 93.7934 + 15 32.6497 913 10 1 2.7926 -52.7595 95.15 + 15 94.8387 914 10 1 2.85 -52.7491 95.2221 + 15 403.343 915 10 1 3.05 -52.6862 95.366 + 15 37.9377 916 10 1 3.25 -52.164 95.3735 + 15 66.5178 448 9 0 -14.1737 -90.3848 64.15 + 15 26.3987 449 9 0 -14.1757 -90.35 63.8777 + 15 151.577 828 8 1 -14.2713 -86.2095 35.5496 + 15 114.519 469 8 0 -14.5105 -86.164 34.15 + 15 15.1775 814 7 1 -17.0535 -85.7396 5.55 + 15 174.524 815 7 1 -17.0499 -85.7499 5.5252 + 15 14.1945 469 7 0 -16.8548 -86.2331 4.14991 + 15 150.211 468 7 0 -16.8472 -86.25 4.10285 + 15 127.178 839 6 1 -12.1069 -95.9777 -24.45 + 15 111.704 415 6 0 -12.1256 -96.977 -25.85 + 15 66.6968 414 6 0 -12.1381 -97.15 -26.0955 + 15 51.2326 828 5 1 -14.2711 -116.544 -54.4502 + 15 212.986 829 5 1 -14.25 -116.654 -54.5967 + 15 40.3466 312 5 0 -13.9472 -117.667 -55.85 + 15 116.819 311 5 0 -13.9194 -117.75 -55.9564 + 15 86.2207 310 5 0 -13.8429 -117.95 -56.1521 + 15 172.836 884 4 1 -3.15737 -149.581 -84.45 + 15 71.7173 143 4 0 -2.87896 -151.35 -85.85 + 15 69.5078 142 4 0 -2.8582 -151.55 -86.0082 + 15 33.6146 141 4 0 -2.84716 -151.75 -86.1735 + 15 583.669 828 3 1 -14.2635 -90.4822 -114.45 + 15 77.9598 827 3 1 -14.45 -90.5597 -114.628 + 15 206.037 826 3 1 -14.65 -90.5475 -114.726 + 15 116.265 391 3 0 -24.5754 -101.75 -115.962 + 15 6.92099 829 3 1 -14.249 -90.3799 -114.45 + 15 202.016 448 3 0 -14.3239 -90.4794 -115.85 + 15 122.318 806 2 1 -18.8263 -97.1067 -144.45 + 15 25.1526 411 2 0 -18.2853 -97.9031 -145.85 + 15 156.769 410 2 0 -18.2552 -97.95 -145.937 + 15 149.75 867 1 1 -6.63061 -115.247 -174.45 + 15 21.9598 868 1 1 -6.44983 -115.3 -174.788 + 15 65.8671 324 1 0 -5.81002 -115.344 -175.85 + 15 86.8343 323 1 0 -5.75674 -115.35 -175.937 + 15 55.423 973 0 1 14.7315 -112.757 -204.45 + 15 109.591 974 0 1 14.85 -112.887 -204.606 + 15 86.8737 331 0 0 15.7601 -113.777 -205.85 + 15 85.9079 330 0 0 15.8901 -113.95 -206.059 + 15 11.2 329 0 0 16.0173 -114.15 -206.224 + 15 293.492 447 8 0 -14.1458 -90.6091 34.15 + 15 154.594 830 7 1 -13.8652 -90.9748 5.55 + 15 166.108 445 7 0 -13.8585 -90.9881 4.15 + 15 226.505 831 6 1 -13.7929 -91.3071 -24.45 + 15 135.672 444 6 0 -13.8076 -91.3296 -25.85 + 15 149.088 441 5 0 -14.106 -91.878 -55.85 + 15 109.888 829 4 1 -14.2381 -93.0279 -84.45 + 15 99.1049 435 4 0 -14.239 -93.0611 -85.85 + 15 236.007 432 3 0 -14.3302 -93.7245 -115.85 + 15 132.516 828 2 1 -14.2943 -94.308 -144.45 + 15 19.9039 429 2 0 -14.3223 -94.347 -145.85 + 15 89.7464 428 2 0 -14.3244 -94.35 -145.957 + 15 113.946 424 1 0 -15.1055 -95.292 -175.85 + 15 229.405 825 0 1 -15.0412 -97.0802 -204.45 + 15 110.465 415 0 0 -15.0314 -97.1337 -205.85 + 15 10.6258 414 0 0 -15.0202 -97.15 -206.201 + 15 147.918 832 2 1 -13.6225 -94.0502 -144.45 + 15 188.687 430 2 0 -13.6191 -94.0527 -145.85 + 15 1.93306 832 1 1 -13.4501 -93.8394 -174.45 + 15 115.051 833 1 1 -13.45 -93.8394 -174.456 + 15 94.7152 431 1 0 -13.4075 -93.8502 -175.85 + 15 102.115 837 0 1 -12.6183 -94.1429 -204.45 + 15 133.943 429 0 0 -12.5238 -94.1605 -205.85 + 15 334.822 576 1 0 -10.8872 -64.838 -176.25 + 15 52.9598 577 1 0 -10.684 -64.65 -176.153 + 15 84.9908 670 1 0 24.5891 -45.9861 -176.25 + 15 144.675 431 3 0 -14.4344 -93.8219 -115.85 + 15 66.8084 816 2 1 -16.65 -96.9891 -144.677 + 15 172.154 414 2 0 -16.839 -97.2147 -145.85 + 15 120.345 790 1 1 -21.8892 -102.363 -174.451 + 15 10.7587 791 1 1 -21.85 -102.601 -174.803 + 15 101.803 384 1 0 -21.7381 -103.282 -175.85 + 15 114.408 383 1 0 -21.7273 -103.35 -175.956 + 15 160.214 804 0 1 -19.1914 -121.769 -204.45 + 15 9.39945 287 0 0 -19.0897 -122.732 -205.85 + 15 85.7114 286 0 0 -19.0879 -122.75 -205.877 + 15 37.2776 285 0 0 -19.069 -122.95 -206.159 + 15 41.1959 443 6 0 -13.8096 -91.3501 -26.1839 + 15 55.1328 830 6 1 -13.85 -91.3596 -24.523 + 15 36.5096 417 5 0 39.5051 -96.6007 -56.25 + 15 131.763 828 6 1 -14.3187 -90.3463 -24.45 + 15 153.026 449 6 0 -14.3221 -90.3366 -25.85 + 15 157.074 827 4 1 -14.4666 -89.8765 -84.45 + 15 148.741 450 4 0 -14.4749 -89.8638 -85.85 + 15 119.02 452 3 0 -14.6563 -89.6036 -115.85 + 15 142.18 826 2 1 -14.7591 -89.4279 -144.45 + 15 144.494 453 2 0 -14.7643 -89.4227 -145.85 + 15 279.921 825 1 1 -14.8771 -89.323 -174.45 + 15 122.658 453 1 0 -14.8831 -89.3134 -175.85 + 15 241.6 454 0 0 -14.9886 -89.1216 -205.85 + 15 19.2898 826 1 1 -14.85 -89.3439 -174.463 + 15 327.687 824 0 1 -15.0982 -88.7613 -204.45 + 15 21.3644 453 0 0 -15.3865 -89.25 -206.163 + 15 107.158 425 0 0 -20.5018 -95.0841 -206.25 + 15 116.586 795 0 1 -20.8777 -95.1486 -204.85 + 15 35.238 794 0 1 -21.149 -95.5036 -204.45 + 15 79.4875 793 0 1 -21.2501 -95.486 -204.528 + 15 68.8684 792 0 1 -21.4502 -95.4669 -204.658 + 15 10.1218 791 0 1 -21.6501 -95.4883 -204.824 + 15 69.7071 417 0 0 -22.2232 -96.5657 -205.85 + 15 61.053 416 0 0 -22.3079 -96.75 -206.031 + 15 144.84 456 0 0 -15.1379 -88.8151 -205.85 + 15 22.3235 455 0 0 -15.1484 -88.85 -206.214 + 15 1.31086 109 0 0 13.431 -158.248 -206.25 + 15 99.2883 448 6 0 -14.362 -90.35 -26.1571 +Number of digits in this event: 81 +Using G4ParticleGun... +Particle energy: 5.46251 LIN +Particle: e- Event: 16 -Number of tracker hits in this event = 115 - 16 469.803 662 11 1 -47.6027 56.0762 125.55 - 16 97.1943 1180 11 0 -47.6029 56.0766 124.15 - 16 104.416 662 10 1 -47.6032 56.0838 95.55 - 16 101.417 1180 10 0 -47.6045 56.0858 94.15 - 16 168.034 662 9 1 -47.6355 56.1268 65.55 - 16 118 1180 9 0 -47.6376 56.1286 64.15 - 16 165.603 661 8 1 -47.6793 56.1647 35.55 - 16 216.641 1180 8 0 -47.6818 56.165 34.15 - 16 139.524 661 7 1 -47.7333 56.1734 5.55 - 16 98.7342 1180 7 0 -47.7356 56.1755 4.15 - 16 679.662 661 6 1 -47.7943 56.2128 -24.45 - 16 481.064 1180 6 0 -47.8013 56.2212 -25.85 - 16 442.763 660 5 1 -47.9523 56.3823 -54.45 - 16 117.225 1181 5 0 -47.9601 56.3908 -55.85 - 16 116.335 659 4 1 -48.1163 56.5525 -84.45 - 16 150.053 1182 4 0 -48.1234 56.5604 -85.85 - 16 104.959 659 3 1 -48.1811 56.6954 -114.45 - 16 126.862 1183 3 0 -48.1836 56.7018 -115.85 - 16 107.244 659 2 1 -48.2297 56.7617 -144.45 - 16 236.28 1183 2 0 -48.2176 56.7853 -145.85 - 16 147.224 659 1 1 -48.0979 56.9767 -174.45 - 16 119.984 1184 1 0 -48.0792 56.988 -175.85 - 16 315.433 661 0 1 -47.6812 57.2326 -204.45 - 16 164.578 660 0 1 -47.85 57.1581 -204.734 - 16 331.881 1184 0 0 -48.5959 56.9304 -205.85 - 16 41.3379 1183 0 0 -48.7662 56.8498 -206.134 - 16 11.1886 660 2 1 -47.9535 5.30865 -144.85 - 16 379.63 657 0 1 -48.5337 57.0581 -204.45 - 16 93.6925 656 0 1 -48.65 57.1672 -204.662 - 16 306.869 1186 0 0 -49.2893 57.4056 -205.85 - 16 225.014 1187 0 0 -49.3185 57.45 -205.913 - 16 4.9604 1188 0 0 -49.226 57.65 -205.961 - 16 88.2541 1185 0 0 -48.5953 57.2373 -205.85 - 16 312.793 658 0 1 -48.2798 57.414 -204.45 - 16 28.6095 1296 0 0 -79.6879 79.25 -206.197 - 16 105.355 1146 0 0 -39.7348 49.3167 -206.25 - 16 178.34 659 0 1 -48.25 57.4031 -204.735 - 16 12.9217 1188 2 0 54.2422 57.8099 -146.25 - 16 59.483 1232 2 1 66.45 56.0113 -144.517 - 16 24.3751 662 6 1 -47.65 56.2989 -24.7642 - 16 69.2694 866 1 1 -6.65 63.6955 -174.641 - 16 121.237 661 5 1 -47.8224 56.1623 -54.45 - 16 241.635 1180 5 0 -47.8241 56.1611 -55.85 - 16 233.864 660 4 1 -47.8507 56.1397 -84.45 - 16 231.437 1180 4 0 -47.8513 56.1381 -85.85 - 16 100.312 660 3 1 -47.8586 56.1172 -114.45 - 16 233.57 1180 3 0 -47.8571 56.1141 -115.85 - 16 162.39 661 2 1 -47.8349 56.0412 -144.45 - 16 125.183 1179 2 0 -47.836 56.0414 -145.85 - 16 158.362 660 1 1 -47.8644 56.0478 -174.45 - 16 194.655 1179 1 0 -47.8622 56.0476 -175.85 - 16 431.398 1179 0 0 -47.7926 56.0403 -205.85 - 16 88.5881 662 2 1 -47.65 56.1079 -144.498 - 16 44.0831 663 2 1 -47.45 56.2611 -144.732 - 16 186.533 1185 2 0 -46.3699 57.0764 -145.85 - 16 36.0916 1186 2 0 -46.1681 57.25 -146.135 - 16 112.698 757 1 1 -28.5475 70.5254 -174.451 - 16 108.14 1252 1 0 -28.4209 70.5434 -175.85 - 16 77.3137 1124 1 0 -12.149 44.9467 -176.25 - 16 51.4874 1123 1 0 -12.0371 44.85 -175.986 - 16 405.288 846 1 1 -10.7644 43.9758 -174.85 - 16 213.431 845 1 1 -10.85 43.1921 -174.705 - 16 167.039 1112 1 0 -11.7215 42.4827 -175.85 - 16 117.91 1111 1 0 -11.7749 42.45 -176.014 - 16 125.889 1181 6 0 -47.7787 56.25 -25.8727 - 16 127.023 657 3 1 -48.4752 56.4164 -114.45 - 16 114.473 1181 3 0 -48.4756 56.417 -115.85 - 16 111.647 658 2 1 -48.3324 56.4311 -144.45 - 16 185.463 1181 2 0 -48.3268 56.3869 -145.85 - 16 217.168 658 1 1 -48.2702 55.5007 -174.45 - 16 125.128 1176 1 0 -48.286 55.4203 -175.85 - 16 120.983 655 0 1 -48.8931 53.6875 -204.45 - 16 201.136 1167 0 0 -48.923 53.6352 -205.85 - 16 126.159 1168 0 0 -48.1874 53.6937 -205.85 - 16 125.805 1178 1 0 -47.7939 55.8271 -175.85 - 16 432.533 1180 1 0 -62.4381 56.0895 -176.25 - 16 77.7556 1181 1 0 -62.5457 56.25 -175.955 - 16 182.955 1182 1 0 -62.428 56.4501 -175.874 - 16 303.658 1183 1 0 -62.3985 56.65 -176.222 - 16 40.2664 1182 2 0 -48.3249 56.45 -145.884 - 16 145.076 657 2 1 -48.4819 58.0875 -144.85 - 16 239.543 656 1 1 -48.841 56.1018 -174.45 - 16 213.174 1174 0 0 -47.9884 55.0342 -205.85 - 16 162.081 654 0 1 -49.1901 55.9932 -204.45 - 16 20.1875 1180 0 0 -49.2155 56.0501 -206.132 - 16 129.713 1179 11 0 -47.3397 55.8798 124.15 - 16 118.128 1181 11 0 -47.69 56.3757 124.15 - 16 15.1196 1182 11 0 -47.7029 56.45 123.806 - 16 98.8568 660 10 1 -47.909 62.3109 95.55 - 16 120.727 1212 10 0 -47.8968 62.5596 94.15 - 16 113.91 663 9 1 -47.4213 68.6719 65.5499 - 16 116.641 1244 9 0 -47.4711 68.9569 64.1499 - 16 173.349 654 8 1 -49.0964 73.3132 35.55 - 16 123.746 1265 8 0 -48.9441 73.209 34.15 - 16 58.9659 666 7 1 -46.7013 70.2225 5.54949 - 16 54.6912 667 7 1 -46.65 70.1966 5.33546 - 16 97.2036 1250 7 0 -46.4059 70.0856 4.15 - 16 41.8401 1249 7 0 -46.3387 70.05 3.81412 - 16 122.658 696 6 1 -40.8122 66.3655 -24.4502 - 16 164.418 1230 6 0 -40.6946 66.1341 -25.85 - 16 128.251 708 5 1 -38.4071 60.3388 -54.45 - 16 42.1305 709 5 1 -38.2499 60.2263 -54.7264 - 16 27.6341 1198 5 0 -37.6772 59.699 -55.85 - 16 135.493 1197 5 0 -37.6251 59.65 -55.9465 - 16 13.5779 786 4 1 -22.8123 45.6816 -84.45 - 16 107.661 785 4 1 -22.85 45.6814 -84.5031 - 16 228.262 1129 4 0 -23.1055 45.9754 -85.8503 - 16 29.1319 1130 4 0 -23.1393 46.05 -86.159 - 16 92.9204 784 3 1 -23.1951 58.0397 -114.451 - 16 44.4091 785 3 1 -23.05 58.1902 -114.743 - 16 137.394 1193 3 0 -22.4282 58.7075 -115.85 - 16 26.1348 1194 3 0 -22.25 58.8502 -116.143 - 16 183.053 850 2 1 -10.0229 78.6979 -144.45 - 16 123.856 1294 2 0 -10.036 78.9957 -145.85 - 16 6.35798 525 1 0 96.0434 -74.85 -176.14 -Number of digits in this event = 65 -Using G4ParticleGun ... -4.65601 LIN -e- +Number of tracker hits in this event: 24 + 16 129.546 1502 9 1 120.609 8.17251 65.55 + 16 136.142 940 9 0 120.608 8.17292 64.15 + 16 175.412 1502 8 1 120.589 8.18072 35.55 + 16 136.026 940 8 0 120.587 8.18029 34.15 + 16 118.828 1502 7 1 120.552 8.167 5.55 + 16 280.131 940 7 0 120.55 8.16549 4.15 + 16 111.515 1501 6 1 120.523 8.13259 -24.45 + 16 116.449 940 6 0 120.521 8.12935 -25.85 + 16 113.54 1501 5 1 120.48 8.06448 -54.45 + 16 156.579 940 5 0 120.477 8.0606 -55.85 + 16 103.846 1501 4 1 120.429 7.98595 -84.45 + 16 114.595 939 4 0 120.424 7.98136 -85.85 + 16 116.725 1500 3 1 120.312 7.88344 -114.45 + 16 229.735 939 3 0 120.304 7.8818 -115.85 + 16 245.599 1499 2 1 120.139 7.8491 -144.45 + 16 126.313 939 2 0 120.131 7.85338 -145.85 + 16 93.2749 1499 1 1 119.951 7.9492 -174.45 + 16 89.2016 1498 1 1 119.95 7.95028 -174.735 + 16 220.094 939 1 0 119.945 7.95415 -175.85 + 16 142.865 1498 0 1 119.824 8.06647 -204.45 + 16 149.739 940 0 0 119.805 8.08522 -205.85 + 16 71.6985 938 2 0 120.012 7.72328 -145.85 + 16 24.9164 937 2 0 120.057 7.6499 -146.149 + 16 201.774 1501 7 1 120.503 8.17681 5.55 +Number of digits in this event: 15 +Using G4ParticleGun... +Particle energy: 2.88017 LIN +Particle: e- Event: 17 -Number of tracker hits in this event = 89 - 17 157.097 354 9 1 -109.321 50.7337 65.55 - 17 127.94 1153 9 0 -109.32 50.7335 64.15 - 17 109.845 354 8 1 -109.308 50.7292 35.55 - 17 108.904 1153 8 0 -109.306 50.7274 34.15 - 17 100.906 354 7 1 -109.278 50.6894 5.55 - 17 112.579 1153 7 0 -109.278 50.6848 4.15 - 17 148.096 354 6 1 -109.285 50.5846 -24.45 - 17 142.153 1152 6 0 -109.287 50.5758 -25.85 - 17 299.598 354 5 1 -109.332 50.4036 -54.45 - 17 125.718 1151 5 0 -109.336 50.3942 -55.85 - 17 229.509 353 4 1 -109.378 50.1828 -84.45 - 17 134.723 1150 4 0 -109.377 50.1723 -85.85 - 17 395.47 354 3 1 -109.323 49.9677 -114.45 - 17 104.408 1149 3 0 -109.317 49.9458 -115.85 - 17 495.179 354 2 1 -109.158 49.4458 -144.45 - 17 128.382 1146 2 0 -109.152 49.4108 -145.85 - 17 490.131 355 1 1 -109.042 48.6941 -174.45 - 17 128.719 1143 1 0 -109.044 48.663 -175.85 - 17 244.351 355 0 1 -109.066 48.0433 -204.45 - 17 141.258 1139 0 0 -109.062 48.0157 -205.85 - 17 8.79152 773 3 1 -25.3541 55.374 -114.85 - 17 201.803 1362 12 1 92.556 178.771 155.15 - 17 82.7888 1361 12 1 92.55 178.82 155.465 - 17 36.3971 1363 12 1 92.75 178.406 155.221 - 17 194.108 1147 2 0 -109.586 49.5845 -145.85 - 17 22.7022 1148 2 0 -109.615 49.65 -146.164 - 17 33.7836 341 1 1 -111.917 54.6292 -174.45 - 17 109.107 340 1 1 -111.95 54.6736 -174.562 - 17 211.688 1176 1 0 -112.294 55.2855 -175.85 - 17 27.2502 1177 1 0 -112.362 55.4505 -176.148 - 17 143.152 228 3 1 -134.35 40.6335 -114.477 - 17 595.381 354 4 1 -109.299 50.39 -84.45 - 17 111.152 1151 4 0 -109.309 50.401 -85.85 - 17 154.332 352 3 1 -109.649 50.545 -114.45 - 17 316.508 1152 3 0 -109.65 50.4962 -115.85 - 17 256.016 352 2 1 -109.612 49.6021 -144.45 - 17 136.957 349 1 1 -110.238 49.2617 -174.45 - 17 108.156 1146 1 0 -110.25 49.282 -175.85 - 17 116.668 348 0 1 -110.423 49.5615 -204.45 - 17 311.866 1148 0 0 -110.413 49.6835 -205.85 - 17 122.613 1149 2 0 -109.98 49.9514 -145.85 - 17 59.7646 305 1 1 -119.085 55.0494 -174.45 - 17 85.8267 304 1 1 -119.15 55.0741 -174.583 - 17 70.1787 243 0 1 -131.379 60.7084 -204.45 - 17 73.0218 242 0 1 -131.55 60.7387 -204.621 - 17 40.7173 1205 0 0 -132.609 61.1986 -205.85 - 17 128.621 1206 0 0 -132.711 61.25 -205.96 - 17 94.3102 1153 4 0 -109.29 50.6923 -85.8505 - 17 19.1324 1441 4 0 -101.349 108.483 -86.25 - 17 96.8431 1442 4 0 -101.339 108.55 -86.2105 - 17 503.993 1443 4 0 -101.299 108.75 -86.0674 - 17 26.3724 1444 4 0 -101.257 108.95 -85.9173 - 17 29.1581 395 4 1 -100.961 110.137 -84.8494 - 17 186.447 396 4 1 -100.95 110.179 -84.8119 - 17 135.597 1505 5 0 -79.8519 121.25 -56.25 - 17 115.808 501 5 1 -79.7064 121.021 -54.85 - 17 128.487 1149 4 0 -109.09 50.05 -85.8623 - 17 86.9827 363 3 1 -107.381 43.2197 -114.45 - 17 31.5211 362 3 1 -107.55 43.2705 -114.745 - 17 66.423 1117 3 0 -108.182 43.5687 -115.85 - 17 114.399 1118 3 0 -108.332 43.65 -116.068 - 17 237.265 1152 4 0 -109.255 50.5541 -85.85 - 17 97.54 356 2 1 -108.89 50.2814 -144.45 - 17 752.643 1151 2 0 -108.875 50.3711 -145.85 - 17 305.502 357 1 1 -108.612 52.0876 -174.45 - 17 101.011 1160 1 0 -108.616 52.1866 -175.85 - 17 48.2631 357 0 1 -108.56 54.2531 -204.45 - 17 204.632 358 0 1 -108.55 54.2602 -204.603 - 17 129.932 1171 0 0 -108.474 54.3041 -205.85 - 17 74.6512 1173 0 0 -107.968 54.7848 -205.85 - 17 75.3113 1174 0 0 -107.874 54.85 -206.047 - 17 114.892 355 2 1 -109.083 50.2745 -144.45 - 17 139.178 1149 1 0 -108.603 50.028 -175.85 - 17 115.351 359 0 1 -108.316 49.7859 -204.45 - 17 113.44 353 1 1 -109.366 50.3166 -174.45 - 17 239.127 1151 1 0 -109.398 50.2983 -175.85 - 17 106.548 350 0 1 -109.987 49.9043 -204.45 - 17 110.486 1149 0 0 -110.005 49.8736 -205.85 - 17 150.057 1150 2 0 -109.626 50.25 -146.2 - 17 5.24581 1192 2 0 -156.259 58.4545 -146.25 - 17 83.3726 1191 2 0 -156.264 58.45 -146.244 - 17 94.9342 1151 0 0 -109.054 50.2602 -205.85 - 17 42.477 1362 1 0 -106.845 92.6082 -176.25 - 17 3.22619 1363 1 0 -106.821 92.75 -176.247 - 17 55.9088 1244 8 0 -118.361 68.9764 33.75 - 17 71.8999 1245 8 0 -118.397 69.05 33.8246 - 17 108.528 1246 8 0 -118.44 69.25 33.9281 - 17 181.577 1247 8 0 -118.256 69.45 34.0557 - 17 177.922 1248 8 0 -118.083 69.65 34.0169 -Number of digits in this event = 44 -Using G4ParticleGun ... -8.92259 LIN -e- +Number of tracker hits in this event: 191 + 17 153.081 1073 11 1 34.8417 31.9731 125.55 + 17 115.515 1059 11 0 34.8428 31.9758 124.15 + 17 412.746 1074 10 1 34.8652 32.024 95.55 + 17 140.659 1059 10 0 34.8681 32.024 94.15 + 17 144.248 1074 9 1 34.9245 32.0219 65.55 + 17 127.953 1059 9 0 34.9254 32.0225 64.15 + 17 184.403 1074 8 1 34.9437 32.0329 35.55 + 17 166.364 1059 8 0 34.9476 32.0344 34.15 + 17 129.213 1074 7 1 35.0303 32.0851 5.55 + 17 127.615 1060 7 0 35.0337 32.0848 4.15 + 17 156.486 1075 6 1 35.1109 32.0671 -24.45 + 17 131.171 1060 6 0 35.1148 32.0726 -25.85 + 17 117.947 1075 5 1 35.1938 32.1731 -54.45 + 17 137.996 1060 5 0 35.1956 32.1768 -55.85 + 17 118.787 1075 4 1 35.2313 32.252 -84.45 + 17 103.142 1061 4 0 35.2364 32.2574 -85.85 + 17 97.4302 1076 3 1 35.3617 32.394 -114.45 + 17 126.824 1061 3 0 35.3652 32.4036 -115.85 + 17 132.002 1076 2 1 35.4466 32.5892 -144.45 + 17 141.395 1062 2 0 35.4494 32.5994 -145.85 + 17 149.763 1077 1 1 35.5162 32.8282 -174.45 + 17 95.0848 1063 1 0 35.5188 32.8389 -175.85 + 17 142.407 1077 0 1 35.5985 33.051 -204.45 + 17 139.088 1065 0 0 35.595 33.0661 -205.85 + 17 63.7421 1794 6 0 92.7129 178.979 -26.25 + 17 12.9766 1690 1 1 158.15 174.293 -174.672 + 17 146.423 1689 1 1 158.15 174.319 -174.665 + 17 82.6058 1073 8 1 34.8499 31.9999 35.2838 + 17 172.602 1072 8 1 34.65 31.9801 35.2562 + 17 90.8525 1071 8 1 34.45 32.0444 35.1932 + 17 148.676 1074 6 1 35.0124 31.9407 -24.4501 + 17 61.8533 1057 6 0 34.7139 31.5091 -25.85 + 17 206.631 1056 6 0 34.6719 31.45 -26.0519 + 17 226.336 1079 5 1 36.01 22.4969 -54.4503 + 17 128.484 1012 5 0 35.9853 22.5083 -55.85 + 17 287.561 1074 4 1 34.9963 24.9745 -84.45 + 17 128.814 1022 4 0 35.1622 24.5824 -85.8504 + 17 10.6516 1104 3 1 41.0419 17.5093 -114.45 + 17 112.702 1105 3 1 41.0501 17.5004 -114.481 + 17 115.765 985 3 0 41.3745 17.1986 -115.85 + 17 33.9121 1130 2 1 46.207 9.41164 -144.45 + 17 72.42 1131 2 1 46.2502 9.37099 -144.555 + 17 100.96 944 2 0 46.8444 8.95094 -145.851 + 17 18.9735 943 2 0 46.9844 8.85 -146.192 + 17 114.634 1193 1 1 58.7113 1.02228 -174.45 + 17 19.6392 1194 1 1 58.85 1.13839 -174.768 + 17 192.041 907 1 0 59.2514 1.52028 -175.85 + 17 4.89116 1277 0 1 75.6354 9.51103 -204.45 + 17 75.0651 1278 0 1 75.6503 9.51726 -204.464 + 17 108.107 1279 0 1 75.8504 9.60045 -204.661 + 17 164.6 950 0 0 76.8505 10.0673 -205.85 + 17 237.967 1280 0 1 76.0502 9.70652 -204.732 + 17 78.0461 1281 0 1 76.25 9.97494 -204.762 + 17 81.4798 1282 0 1 76.45 10.0015 -204.781 + 17 63.8602 1283 0 1 76.6502 10.0451 -204.781 + 17 87.5369 1284 0 1 76.85 10.0048 -204.716 + 17 173.591 1285 0 1 77.05 9.85184 -204.636 + 17 1.61504 1286 0 1 77.25 9.87673 -204.846 + 17 71.1991 946 0 0 78.4921 9.42456 -205.85 + 17 143.756 947 0 0 78.5677 9.45 -205.988 + 17 190.679 929 0 0 62.3829 6.00317 -206.25 + 17 18.641 1023 4 0 33.4988 24.8452 -85.8501 + 17 82.0038 1049 4 1 29.8935 24.4327 -84.85 + 17 47.9862 1048 4 1 29.85 24.3989 -84.829 + 17 63.1434 1011 5 0 35.9419 22.4499 -55.926 + 17 74.4038 1010 5 0 35.8732 22.25 -55.996 + 17 64.6413 1009 5 0 35.893 22.05 -56.0711 + 17 49.6899 1008 5 0 35.8896 21.85 -56.1676 + 17 54.3242 1076 6 1 35.2508 32.0296 -24.4694 + 17 71.3058 1077 6 1 35.45 32.0855 -24.4922 + 17 65.9874 1078 6 1 35.65 32.1304 -24.5202 + 17 77.8322 1079 6 1 35.85 32.1883 -24.5512 + 17 69.481 1080 6 1 36.05 32.2652 -24.5658 + 17 64.3228 1081 6 1 36.2508 32.3572 -24.5676 + 17 49.3707 1082 6 1 36.45 32.4357 -24.5353 + 17 57.6356 1083 6 1 36.65 32.4635 -24.5162 + 17 57.8818 1084 6 1 36.8501 32.4725 -24.4728 + 17 79.0511 1085 6 1 37.05 32.338 -24.4902 + 17 102.079 1086 6 1 37.25 32.1092 -24.5686 + 17 102.448 1087 6 1 37.4501 31.8273 -24.635 + 17 88.8532 1088 6 1 37.65 31.6153 -24.7282 + 17 62.4331 1089 6 1 37.85 31.4153 -24.7011 + 17 174.719 1090 6 1 38.05 31.2593 -24.655 + 17 54.2643 1091 6 1 38.25 31.1128 -24.6227 + 17 54.6934 1092 6 1 38.45 31.0518 -24.5842 + 17 90.5139 1093 6 1 38.65 31.0466 -24.6325 + 17 60.1664 1094 6 1 38.8501 31.0112 -24.6377 + 17 38.9429 1095 6 1 39.05 30.9522 -24.5561 + 17 112.651 1073 10 1 34.85 32.0217 95.5254 + 17 183.774 1058 10 0 34.2525 31.6905 94.15 + 17 116.202 985 9 1 17.1866 36.7102 65.55 + 17 27.0574 984 9 1 17.05 36.9333 65.1894 + 17 135.782 1086 9 0 16.3195 37.2616 64.15 + 17 115.567 1061 10 0 34.9954 32.2548 94.1499 + 17 99.6216 1082 9 1 36.4647 34.8485 65.5498 + 17 179.658 1073 9 0 36.4014 34.7753 64.1496 + 17 118.51 1080 8 1 36.1187 34.8385 35.55 + 17 132.438 1072 8 0 36.2018 34.5564 34.1495 + 17 108.563 1106 7 1 41.3918 27.2643 5.55 + 17 99.1607 1035 7 0 41.5371 27.2061 4.15 + 17 39.2368 1134 6 1 46.9906 24.6178 -24.45 + 17 84.6592 1135 6 1 47.05 24.6153 -24.5987 + 17 49.9208 1022 6 0 47.5105 24.4731 -25.8512 + 17 64.4757 1021 6 0 47.5735 24.45 -26.0295 + 17 165.983 1202 5 1 60.5494 20.1384 -54.4504 + 17 16.2068 996 5 0 60.7501 19.284 -55.85 + 17 87.9361 995 5 0 60.7573 19.2499 -55.9032 + 17 10.764 994 5 0 60.8077 19.05 -56.2049 + 17 106.214 1091 3 1 38.3561 43.9573 -114.45 + 17 136.22 1122 3 0 38.0076 44.5056 -115.85 + 17 5.03005 1123 3 0 37.9314 44.65 -116.227 + 17 139.776 1064 2 1 32.9742 56.3159 -144.45 + 17 115.955 1180 2 0 33.05 56.2378 -145.85 + 17 158.532 1069 1 1 34.043 56.2199 -174.45 + 17 147.614 1183 1 0 33.7971 56.6719 -175.85 + 17 129.188 1043 0 1 28.7813 67.9337 -204.45 + 17 44.1771 1244 0 0 28.6716 68.9113 -205.85 + 17 66.2839 1245 0 0 28.6625 69.05 -206.003 + 17 67.4246 1246 0 0 28.6695 69.25 -206.158 + 17 118.386 1070 1 1 34.0501 56.3117 -174.763 + 17 65.5261 1131 4 0 63.5552 46.2697 -86.25 + 17 74.9489 1130 4 0 63.719 46.25 -86.0555 + 17 131.874 1220 4 1 64.1626 45.9127 -84.85 + 17 159.16 1221 4 1 64.25 45.8162 -84.6587 + 17 90.4376 1219 4 1 64.05 45.3008 -84.7309 + 17 48.9686 1122 4 0 62.7103 44.5231 -85.8503 + 17 123.409 1121 4 0 62.6286 44.45 -85.9904 + 17 37.1755 1073 0 1 34.7464 32.0444 -204.45 + 17 89.9645 1072 0 1 34.65 31.9561 -204.492 + 17 90.6782 1071 0 1 34.45 31.7662 -204.576 + 17 89.5022 1070 0 1 34.25 31.5668 -204.651 + 17 222.757 1069 0 1 34.0497 31.4018 -204.705 + 17 148.266 1068 0 1 33.85 31.2101 -204.765 + 17 36.4006 1067 0 1 33.6499 30.9934 -204.816 + 17 71.767 1038 0 0 30.5466 27.7859 -205.85 + 17 196.915 1037 0 0 30.4199 27.65 -205.87 + 17 100.415 1036 0 0 30.2363 27.45 -205.881 + 17 71.9573 1035 0 0 30.0504 27.25 -205.893 + 17 76.4291 1034 0 0 29.855 27.05 -205.874 + 17 84.994 1033 0 0 29.643 26.85 -205.869 + 17 74.4109 1032 0 0 29.408 26.65 -205.88 + 17 88.0238 1031 0 0 29.1789 26.45 -205.903 + 17 109.084 1030 0 0 28.9325 26.25 -205.91 + 17 75.413 1029 0 0 28.678 26.05 -205.894 + 17 61.0839 1028 0 0 28.4445 25.8497 -205.866 + 17 6.65268 1013 0 1 22.6644 21.151 -204.85 + 17 72.6919 1012 0 1 22.65 21.1394 -204.847 + 17 76.8627 1011 0 1 22.45 20.9788 -204.812 + 17 85.659 1010 0 1 22.2497 20.8141 -204.804 + 17 75.5716 1009 0 1 22.05 20.6445 -204.79 + 17 61.6308 1008 0 1 21.85 20.4577 -204.759 + 17 99.6977 1007 0 1 21.65 20.289 -204.717 + 17 64.0347 1006 0 1 21.4495 20.1183 -204.686 + 17 91.2187 1005 0 1 21.25 19.965 -204.68 + 17 71.1374 1004 0 1 21.0499 19.8067 -204.68 + 17 81.6718 1003 0 1 20.85 19.6225 -204.679 + 17 91.8452 1002 0 1 20.65 19.4448 -204.665 + 17 123.605 1001 0 1 20.45 19.2576 -204.627 + 17 247.907 1000 0 1 20.2497 19.0525 -204.579 + 17 173.518 999 0 1 20.05 18.8606 -204.567 + 17 160.318 998 0 1 19.85 18.7042 -204.572 + 17 61.023 997 0 1 19.6498 18.5897 -204.584 + 17 69.9477 996 0 1 19.4491 18.482 -204.606 + 17 96.7097 995 0 1 19.25 18.3826 -204.621 + 17 76.7664 994 0 1 19.05 18.2731 -204.623 + 17 98.6171 993 0 1 18.8499 18.1518 -204.602 + 17 56.2145 992 0 1 18.6499 18.0252 -204.574 + 17 104.212 991 0 1 18.45 17.89 -204.556 + 17 67.8519 990 0 1 18.2496 17.7616 -204.561 + 17 89.7379 989 0 1 18.0499 17.6055 -204.591 + 17 118.912 988 0 1 17.85 17.4255 -204.671 + 17 3.63593 987 0 1 17.65 17.2031 -204.838 + 17 52.0841 980 0 0 16.7371 16.1899 -205.85 + 17 86.4066 979 0 0 16.6543 16.05 -205.959 + 17 64.6905 978 0 0 16.5581 15.85 -206.13 + 17 34.3841 775 0 0 6.46086 -24.9422 -206.25 + 17 72.4528 774 0 0 6.44968 -25.05 -206.167 + 17 68.6847 773 0 0 6.41739 -25.25 -206.015 + 17 418.829 930 0 1 6.16322 -26.6474 -204.85 + 17 55.7943 573 1 0 20.0291 -65.2779 -176.25 + 17 81.8001 572 1 0 20.1146 -65.45 -176.127 + 17 4.6386 571 1 0 20.2109 -65.65 -175.871 + 17 531.086 1002 1 1 20.4721 -66.2106 -174.85 + 17 24.8542 1003 1 1 20.6838 -66.7084 -174.45 + 17 22.4084 1001 1 1 20.45 -66.8042 -174.807 + 17 298.729 566 1 0 19.4144 -66.7606 -175.85 + 17 86.7349 567 1 0 19.1441 -66.65 -176.013 + 17 383.917 992 1 1 18.4732 -67.2693 -174.849 + 17 250.704 771 0 1 -25.65 83.3018 -204.64 + 17 154.926 1074 0 1 34.9314 32.29 -204.45 + 17 120.928 1061 0 0 34.8959 32.2886 -205.85 +Number of digits in this event: 62 +Using G4ParticleGun... +Particle energy: 9.54265 LIN +Particle: e- Event: 18 -Number of tracker hits in this event = 43 - 18 120.786 656 8 1 -48.772 -129.262 35.55 - 18 108.664 254 8 0 -48.7723 -129.262 34.15 - 18 127.64 656 7 1 -48.7793 -129.251 5.55 - 18 108.521 254 7 0 -48.7792 -129.25 4.15 - 18 181.74 656 6 1 -48.7759 -129.233 -24.45 - 18 129.162 254 6 0 -48.7765 -129.231 -25.85 - 18 111.967 656 5 1 -48.7875 -129.197 -54.45 - 18 132.522 254 5 0 -48.7887 -129.197 -55.85 - 18 116.755 656 4 1 -48.8109 -129.183 -84.45 - 18 101.74 254 4 0 -48.8127 -129.182 -85.85 - 18 178.761 655 3 1 -48.8524 -129.162 -114.45 - 18 126.23 254 3 0 -48.8553 -129.163 -115.85 - 18 123.396 655 2 1 -48.912 -129.173 -144.45 - 18 241.714 254 2 0 -48.914 -129.173 -145.85 - 18 102.417 655 1 1 -48.9439 -129.182 -174.45 - 18 126.45 254 1 0 -48.9444 -129.182 -175.85 - 18 127.407 655 0 1 -48.9582 -129.183 -204.45 - 18 124.173 254 0 0 -48.961 -129.178 -205.85 - 18 21.9815 397 0 0 57.4097 -100.662 -206.25 - 18 151.352 593 0 0 71.8707 -61.3339 -206.25 - 18 26.1809 625 2 1 -54.8828 -88.9685 -144.85 - 18 74.738 626 2 1 -54.85 -88.9547 -144.801 - 18 28.9343 172 2 0 7.96735 -145.649 -146.25 - 18 362.199 255 3 0 -48.8744 -129.15 -116.225 - 18 117.093 656 3 1 -48.7723 -129.231 -114.45 - 18 50.8386 258 3 0 -48.3735 -128.458 -115.85 - 18 82.5772 259 3 0 -48.2949 -128.35 -116.053 - 18 60.0351 749 2 1 -30.2476 -118.731 -144.45 - 18 49.0457 750 2 1 -29.9842 -119.038 -144.45 - 18 98.568 751 2 1 -29.85 -119.136 -144.54 - 18 76.3246 752 2 1 -29.65 -119.274 -144.672 - 18 33.3714 753 2 1 -29.45 -119.409 -144.795 - 18 77.2772 300 2 0 -27.6483 -120.057 -145.85 - 18 215.358 299 2 0 -27.4428 -120.15 -145.918 - 18 19.8365 773 2 1 -25.3062 -121.455 -144.85 - 18 68.2129 774 2 1 -25.25 -121.496 -144.817 - 18 96.6267 775 2 1 -25.05 -121.613 -144.675 - 18 24.7505 776 2 1 -24.85 -121.768 -144.494 - 18 70.6489 777 2 1 -24.6078 -121.832 -144.45 - 18 94.527 778 2 1 -24.45 -121.898 -144.52 - 18 328.243 779 2 1 -24.25 -121.817 -144.617 - 18 3.19079 780 2 1 -24.05 -121.885 -144.587 - 18 161.762 769 2 1 -26.1961 -121.026 -144.85 -Number of digits in this event = 19 -Using G4ParticleGun ... -6.76279 LIN -e- +Number of tracker hits in this event: 163 + 18 108.715 843 11 1 -11.2844 -47.3025 125.55 + 18 152.405 663 11 0 -11.284 -47.3029 124.15 + 18 264.196 843 10 1 -11.2715 -47.3094 95.55 + 18 132.549 663 10 0 -11.2711 -47.3089 94.15 + 18 108.612 843 9 1 -11.2604 -47.2981 65.55 + 18 114.258 663 9 0 -11.2602 -47.2977 64.15 + 18 164.4 843 8 1 -11.2599 -47.292 35.55 + 18 116.679 663 8 0 -11.2594 -47.2913 34.15 + 18 796.352 844 7 1 -11.2491 -47.2802 5.55 + 18 487.21 663 7 0 -11.2495 -47.2797 4.15 + 18 116.008 843 6 1 -11.2606 -47.2723 -24.45 + 18 252.293 663 6 0 -11.2614 -47.272 -25.85 + 18 276.47 843 5 1 -11.2778 -47.2675 -54.45 + 18 147.801 663 5 0 -11.2783 -47.2667 -55.85 + 18 524.527 843 4 1 -11.2887 -47.2488 -84.45 + 18 403.318 664 4 0 -11.2899 -47.2473 -85.85 + 18 627.089 843 3 1 -11.3208 -47.2171 -114.45 + 18 641.856 664 3 0 -11.3222 -47.2154 -115.85 + 18 254.872 843 2 1 -11.3513 -47.1791 -144.45 + 18 243.993 664 2 0 -11.353 -47.1766 -145.85 + 18 432.919 843 1 1 -11.3911 -47.1204 -174.45 + 18 753.414 664 1 0 -11.392 -47.1169 -175.85 + 18 257.634 843 0 1 -11.4116 -47.0371 -204.45 + 18 363.461 665 0 0 -11.4132 -47.0334 -205.85 + 18 118.226 951 14 0 -23.3973 10.2647 213.75 + 18 19.1068 1136 7 0 90.15 47.2704 3.981 + 18 119.072 1351 7 1 90.5097 47.1133 5.15 + 18 94.2008 1352 7 1 90.55 47.0612 5.30639 + 18 146.239 666 0 0 -11.0705 -46.7453 -205.85 + 18 197.095 840 0 1 -11.9539 -45.4864 -204.45 + 18 19.9669 674 0 0 -12.051 -45.0699 -205.85 + 18 101.119 675 0 0 -12.0556 -45.05 -205.915 + 18 108.406 313 7 0 -130.725 -117.35 3.88574 + 18 197.834 800 0 1 -19.8536 -74.6028 -204.85 + 18 41.6093 801 0 1 -19.85 -74.6039 -204.669 + 18 52.5935 663 4 0 -11.2777 -47.25 -85.906 + 18 103.671 838 3 1 -12.2747 -47.2539 -114.45 + 18 112.058 832 2 1 -13.4564 -47.0046 -144.45 + 18 123.946 665 2 0 -13.5112 -47.0162 -145.85 + 18 175.642 827 1 1 -14.5285 -47.2884 -174.45 + 18 498.601 663 1 0 -14.5352 -47.3806 -175.85 + 18 121.05 827 0 1 -14.5026 -49.2028 -204.45 + 18 225.082 653 0 0 -14.5069 -49.2945 -205.85 + 18 27.8133 842 4 1 -11.45 -47.2058 -84.5941 + 18 166.738 662 4 0 -11.409 -47.4996 -85.85 + 18 117.582 658 3 0 -11.3615 -48.38 -115.85 + 18 122.671 847 2 1 -10.6279 -49.2719 -144.45 + 18 124.26 653 2 0 -10.5979 -49.3466 -145.851 + 18 135.418 849 1 1 -10.0982 -50.7747 -174.45 + 18 119.74 646 1 0 -9.96256 -50.7724 -175.85 + 18 128.511 865 0 1 -6.97514 -50.6414 -204.45 + 18 119.241 647 0 0 -6.92938 -50.5854 -205.85 + 18 155.219 663 2 0 -11.2657 -47.2558 -145.85 + 18 291.093 844 1 1 -11.1052 -47.2787 -174.45 + 18 112.217 845 0 1 -11.0176 -47.3694 -204.45 + 18 188.418 663 0 0 -11.0116 -47.3744 -205.85 + 18 110.269 844 2 1 -11.1539 -47.07 -144.45 + 18 120.483 845 1 1 -11.0343 -47.3073 -174.45 + 18 134.288 839 0 1 -12.1429 -46.9321 -204.45 + 18 91.0621 844 5 1 -11.25 -47.2155 -54.5483 + 18 144.013 665 5 0 -11.0826 -46.9574 -55.8505 + 18 61.0207 869 4 1 -6.15024 -41.621 -84.45 + 18 73.2281 870 4 1 -6.05 -41.6207 -84.6486 + 18 300.668 692 4 0 -5.42974 -41.5829 -85.85 + 18 29.0506 966 3 1 13.3379 -37.2057 -114.45 + 18 102.927 967 3 1 13.45 -37.1872 -114.489 + 18 61.071 968 3 1 13.6502 -37.1467 -114.561 + 18 86.7799 969 3 1 13.85 -37.1126 -114.634 + 18 57.2702 970 3 1 14.05 -37.0935 -114.714 + 18 46.3935 971 3 1 14.2501 -37.0653 -114.785 + 18 76.4652 716 3 0 16.7602 -36.6995 -115.85 + 18 366.895 717 3 0 17.0409 -36.65 -115.969 + 18 49.676 1640 2 1 148.201 9.9753 -144.45 + 18 105.077 1639 2 1 148.15 9.84645 -144.485 + 18 137.723 1638 2 1 147.95 9.53992 -144.58 + 18 81.6765 1637 2 1 147.75 9.33161 -144.642 + 18 104.905 1636 2 1 147.55 9.13796 -144.734 + 18 31.698 1635 2 1 147.35 8.97436 -144.818 + 18 28.2457 933 2 0 144.584 6.68826 -145.85 + 18 138.779 932 2 0 144.547 6.64991 -145.897 + 18 8.56159 931 2 0 144.343 6.45 -146.233 + 18 89.3341 737 2 0 95.7008 -32.5394 -146.25 + 18 128.154 736 2 0 95.5514 -32.65 -146.138 + 18 124.784 1372 2 1 94.6959 -33.0758 -144.85 + 18 14.1592 1371 2 1 94.55 -33.1008 -144.477 + 18 225.918 629 7 1 -54.05 -41.4994 5.29002 + 18 13.3131 693 4 0 -5.33053 -41.45 -86.2409 + 18 105.727 814 6 1 -17.0709 -48.9402 -24.45 + 18 123.269 655 6 0 -17.2688 -48.9267 -25.85 + 18 220.553 796 5 1 -20.7846 -49.0737 -54.45 + 18 124.189 654 5 0 -20.8306 -49.1481 -55.85 + 18 148.27 791 4 1 -21.7169 -50.5528 -84.45 + 18 116.822 645 4 0 -21.7035 -50.8529 -85.85 + 18 75.0932 794 3 1 -21.1117 -57.8631 -114.45 + 18 48.4831 795 3 1 -21.05 -57.9045 -114.671 + 18 13.2948 610 3 0 -20.7116 -58.0433 -115.85 + 18 95.003 609 3 0 -20.695 -58.05 -115.908 + 18 47.1369 835 2 1 -12.8949 -62.0656 -144.451 + 18 93.0235 836 2 1 -12.8499 -62.0817 -144.623 + 18 131.585 589 2 0 -12.523 -62.1835 -145.851 + 18 43.9758 872 1 1 -5.49003 -65.3825 -174.45 + 18 76.1606 873 1 1 -5.45 -65.387 -174.546 + 18 119.935 573 1 0 -4.87529 -65.4245 -175.85 + 18 95.2827 937 0 1 7.6374 -65.9797 -204.45 + 18 138.477 938 0 1 7.65 -65.9871 -204.499 + 18 111.982 569 0 0 7.96201 -66.1894 -205.85 + 18 84.4997 843 7 1 -11.25 -47.2819 5.3703 + 18 108.16 844 6 1 -11.1716 -46.9243 -24.4502 + 18 164.716 665 6 0 -10.8272 -46.8602 -25.85 + 18 51.9128 666 6 0 -10.776 -46.85 -26.0601 + 18 188.57 879 5 1 -4.15224 -45.6964 -54.4501 + 18 142.446 671 5 0 -3.8384 -45.7149 -55.85 + 18 107.746 909 4 1 1.98116 -46.1692 -84.45 + 18 36.5613 910 4 1 2.05002 -46.16 -84.7804 + 18 148.77 669 4 0 2.27189 -46.143 -85.85 + 18 142.728 943 3 1 8.73252 -45.7484 -114.45 + 18 207.642 671 3 0 8.93033 -45.7085 -115.85 + 18 60.9017 969 2 1 14.0233 -44.3559 -144.45 + 18 69.4819 970 2 1 14.05 -44.3348 -144.633 + 18 104.117 679 2 0 14.2431 -44.1869 -145.85 + 18 91.3174 998 1 1 19.8105 -40.6636 -174.45 + 18 33.7087 999 1 1 19.8501 -40.6425 -174.716 + 18 144.806 697 1 0 20.0274 -40.5723 -175.85 + 18 131.083 1023 0 1 24.7905 -37.9257 -204.45 + 18 62.7705 1024 0 1 24.85 -37.8888 -204.654 + 18 87.1406 711 0 0 25.2059 -37.6739 -205.85 + 18 74.569 712 0 0 25.2438 -37.65 -205.981 + 18 166.162 1022 0 1 24.65 -37.7811 -204.531 + 18 254.672 1021 0 1 24.45 -37.3418 -204.52 + 18 26.0004 1020 0 1 24.25 -37.0196 -204.483 + 18 112.267 665 1 0 -11.4554 -47.049 -175.85 + 18 156.94 668 0 0 -11.7332 -46.4144 -205.85 + 18 77.0065 847 0 1 -10.5739 -50.5558 -204.45 + 18 99.7826 848 0 1 -10.4496 -50.7644 -204.646 + 18 53.5327 639 0 0 -9.78929 -52.1291 -205.85 + 18 96.5502 638 0 0 -9.72701 -52.25 -205.959 + 18 29.1864 637 0 0 -9.64576 -52.45 -206.176 + 18 30.2845 658 7 0 -11.3146 -48.3666 4.15 + 18 98.9322 657 7 0 -11.3297 -48.4505 4.02927 + 18 0.586921 656 7 0 -11.3835 -48.65 3.75171 + 18 119.419 782 6 1 -23.5535 -66.4499 -24.45 + 18 36.4791 781 6 1 -23.65 -66.4711 -24.7504 + 18 159.588 566 6 0 -24.0192 -66.7541 -25.85 + 18 17.1486 662 6 0 -7.46625 -47.4918 -26.25 + 18 188.58 664 6 0 -7.41963 -47.25 -25.9064 + 18 144.201 862 6 1 -7.54524 -46.5961 -24.8499 + 18 4.42416 861 6 1 -7.65 -46.4069 -24.4665 + 18 89.1201 838 6 1 -12.3142 -47.2277 -24.45 + 18 125.747 667 5 0 -11.5271 -46.6192 -55.8501 + 18 142.413 820 4 1 -15.8614 -44.7791 -84.45 + 18 141.518 676 4 0 -16.0594 -44.7156 -85.8501 + 18 98.2578 800 3 1 -19.9763 -43.4416 -114.45 + 18 18.2663 799 3 1 -20.05 -43.3637 -114.802 + 18 118.918 684 3 0 -20.259 -43.1238 -115.85 + 18 19.4298 685 3 0 -20.3264 -43.05 -116.188 + 18 103.464 770 2 1 -25.8943 -37.2372 -144.45 + 18 108.275 715 2 0 -25.896 -37.0236 -145.85 + 18 111.97 768 1 1 -26.3304 -33.1302 -174.45 + 18 153.021 735 1 0 -26.2679 -33.0464 -175.85 + 18 191.466 772 0 1 -25.5676 -31.3719 -204.45 + 18 157.806 743 0 0 -25.4758 -31.3787 -205.85 + 18 31.4199 671 0 0 -5.54459 -45.7974 -205.85 + 18 181.975 670 0 0 -5.50782 -45.85 -205.998 +Number of digits in this event: 76 +Using G4ParticleGun... +Particle energy: 7.23708 LIN +Particle: e- Event: 19 -Number of tracker hits in this event = 91 - 19 111.347 847 9 1 -10.5594 116.812 65.55 - 19 175.062 1483 9 0 -10.5607 116.814 64.15 - 19 165.079 847 8 1 -10.5875 116.841 35.55 - 19 185.616 1483 8 0 -10.5886 116.841 34.15 - 19 372.555 847 7 1 -10.6108 116.84 5.55 - 19 379.56 1483 7 0 -10.6123 116.842 4.15 - 19 251.689 847 6 1 -10.6472 116.87 -24.45 - 19 113.505 1483 6 0 -10.65 116.871 -25.85 - 19 151.141 846 5 1 -10.7019 116.882 -54.45 - 19 211.107 1483 5 0 -10.7086 116.881 -55.85 - 19 411.11 846 4 1 -10.8343 116.847 -84.45 - 19 411.086 1483 4 0 -10.8365 116.847 -85.85 - 19 108.127 845 3 1 -10.8939 116.854 -114.45 - 19 405.657 1483 3 0 -10.9008 116.854 -115.85 - 19 224.606 844 2 1 -11.0663 116.869 -144.45 - 19 158.146 1483 2 0 -11.0725 116.869 -145.85 - 19 108.04 844 1 1 -11.2244 116.882 -174.45 - 19 112.216 1483 1 0 -11.2315 116.881 -175.85 - 19 287.89 843 0 1 -11.3572 116.853 -204.45 - 19 171.362 1483 0 0 -11.3616 116.857 -205.85 - 19 29.4888 577 9 0 6.87542 -64.6127 63.75 - 19 8.3898 906 9 0 58.0835 1.32497 63.75 - 19 160.404 956 9 0 51.0678 11.3874 63.7502 - 19 264.527 576 9 0 6.87187 -64.65 63.8202 - 19 84.4022 1297 2 0 131.536 79.4627 -146.25 - 19 157.316 1296 2 0 131.655 79.45 -146.161 - 19 134.069 1482 4 0 -10.7968 116.75 -86.0519 - 19 166.125 1478 6 0 -10.3388 115.939 -25.85 - 19 119.163 869 5 1 -6.17993 110.697 -54.4501 - 19 64.2317 1450 5 0 -6.39035 110.237 -55.85 - 19 34.2179 1449 5 0 -6.44736 110.15 -56.1186 - 19 121.796 846 6 1 -10.7771 117.143 -24.45 - 19 112.044 1484 6 0 -10.7978 117.14 -25.85 - 19 125.41 844 5 1 -11.1721 117.211 -54.45 - 19 435.665 1485 5 0 -11.1676 117.249 -55.85 - 19 160.81 844 4 1 -11.0667 118.006 -84.45 - 19 111.223 1489 4 0 -11.0728 118.053 -85.85 - 19 133.713 843 3 1 -11.3557 118.963 -114.45 - 19 102.541 1494 3 0 -11.3478 118.96 -115.85 - 19 117.329 1493 2 0 -11.1881 118.842 -145.85 - 19 120.825 841 1 1 -11.6547 118.558 -174.45 - 19 150.413 1492 1 0 -11.6852 118.579 -175.85 - 19 192.125 838 0 1 -12.3034 118.947 -204.45 - 19 115.198 1494 0 0 -12.3126 118.957 -205.85 - 19 35.5798 837 0 1 -12.45 119.052 -204.743 - 19 38.3317 1497 0 0 -12.7937 119.677 -205.85 - 19 90.7556 1498 0 0 -12.838 119.75 -205.982 - 19 208.793 846 7 1 -10.65 116.83 5.52243 - 19 119.801 853 6 1 -9.35926 116.072 -24.45 - 19 57.1525 1479 6 0 -9.11126 116.138 -25.85 - 19 62.8388 1480 6 0 -9.0689 116.15 -26.0876 - 19 104.802 879 5 1 -4.12647 117.318 -54.45 - 19 25.139 897 4 1 -0.460601 117.159 -84.45 - 19 78.8515 898 4 1 -0.45 117.164 -84.5173 - 19 131.018 1485 4 0 -0.225718 117.251 -85.85 - 19 125.149 920 3 1 4.05668 119.575 -114.45 - 19 4.73939 1497 3 0 4.24857 119.748 -115.85 - 19 100.554 1498 3 0 4.25082 119.75 -115.866 - 19 117.754 939 2 1 7.92568 123.143 -144.45 - 19 115.509 1515 2 0 8.14812 123.295 -145.85 - 19 101.846 964 1 1 12.9306 126.474 -174.45 - 19 149.694 1532 1 0 13.2312 126.657 -175.85 - 19 133.972 996 0 1 19.3804 130.907 -204.45 - 19 151.969 1555 0 0 19.4638 131.218 -205.851 - 19 123.804 880 5 1 -3.96249 117.563 -54.45 - 19 270.038 881 5 1 -3.84993 117.632 -54.6556 - 19 175.688 1486 5 0 -3.66598 117.376 -55.85 - 19 271.04 1487 5 0 -3.22808 117.55 -56.0038 - 19 115.534 1484 4 0 -10.6606 116.991 -85.85 - 19 158.019 850 3 1 -10.0245 116.786 -114.45 - 19 129.2 852 2 1 -9.55615 117.3 -144.45 - 19 114.849 1485 2 0 -9.532 117.3 -145.85 - 19 117.714 855 1 1 -8.96045 117.31 -174.45 - 19 121.901 1486 1 0 -9.03105 117.377 -175.85 - 19 120.166 847 0 1 -10.5465 118.618 -204.45 - 19 191.881 1492 0 0 -10.6417 118.64 -205.85 - 19 36.9974 858 0 1 -8.32492 117.985 -204.45 - 19 121.979 859 0 1 -8.25 117.963 -204.602 - 19 345.181 1488 0 0 -7.69498 117.802 -205.85 - 19 78.8007 1489 0 0 -7.32175 117.95 -206.08 - 19 28.4619 1490 0 0 -7.0651 118.15 -206.197 - 19 1.49792 1592 0 0 42.3802 138.551 -206.25 - 19 332.036 1591 0 0 42.3834 138.55 -206.247 - 19 99.7335 1590 0 0 43.2639 138.35 -205.92 - 19 142.82 1125 0 1 45.1079 137.024 -204.85 - 19 272.969 1126 0 1 45.2503 136.973 -204.782 - 19 63.6475 1127 0 1 45.4502 136.951 -204.716 - 19 50.541 1128 0 1 45.6505 136.883 -204.581 - 19 186.685 1347 10 0 -19.2536 89.6091 93.7502 - 19 70.7783 1348 10 0 -19.3798 89.65 93.9379 - 19 200.412 1349 10 0 -19.3872 89.8501 93.9338 -Number of digits in this event = 53 -Using G4ParticleGun ... -8.27564 LIN -e- +Number of tracker hits in this event: 117 + 19 97.9644 1069 10 1 33.8778 77.8924 95.55 + 19 111.708 1289 10 0 33.8785 77.892 94.15 + 19 112.878 1069 9 1 33.8953 77.8856 65.55 + 19 113.365 1289 9 0 33.8951 77.8859 64.15 + 19 138.271 1069 8 1 33.884 77.8895 35.55 + 19 128.643 1289 8 0 33.8841 77.8914 34.15 + 19 125.923 1069 7 1 33.8873 77.9282 5.55 + 19 344.506 1289 7 0 33.8874 77.9282 4.15 + 19 469.224 1069 6 1 33.8906 77.9279 -24.45 + 19 400.339 1289 6 0 33.8933 77.9278 -25.85 + 19 310.764 1069 5 1 33.9599 77.9248 -54.45 + 19 119.95 1289 5 0 33.9613 77.9248 -55.85 + 19 377.266 1069 4 1 33.9862 77.926 -84.45 + 19 139.214 1289 4 0 33.9874 77.9258 -85.85 + 19 370.848 1069 3 1 33.9975 77.9235 -114.45 + 19 118.361 1289 3 0 33.9971 77.9216 -115.85 + 19 394.755 1069 2 1 33.9936 77.8804 -144.45 + 19 170.785 1289 2 0 33.9934 77.8792 -145.85 + 19 202.357 1069 1 1 33.9974 77.8521 -174.45 + 19 144.91 1288 1 0 33.9977 77.8478 -175.85 + 19 316.453 1069 0 1 34.0037 77.7563 -204.45 + 19 130.018 1288 0 0 34.005 77.7508 -205.85 + 19 132.166 1286 5 0 33.8952 77.3741 -55.85 + 19 38.5199 1285 5 0 33.8424 77.2496 -56.1195 + 19 25.0743 977 4 1 15.4939 71.3986 -84.45 + 19 126.615 976 4 1 15.45 71.3383 -84.4865 + 19 24.3557 975 4 1 15.25 70.9645 -84.7829 + 19 122.914 1251 4 0 14.2096 70.4155 -85.8502 + 19 117.373 1070 5 1 34.0557 78.0753 -54.45 + 19 300.976 1290 5 0 34.0567 78.0898 -55.85 + 19 187.532 1070 4 1 34.0595 78.3707 -84.45 + 19 102.734 1291 4 0 34.0551 78.3963 -85.85 + 19 427.376 1294 3 0 34.0323 78.9629 -115.85 + 19 136.73 1298 2 0 33.9846 79.7737 -145.85 + 19 117.949 1302 1 0 33.9171 80.5562 -175.85 + 19 332.863 1068 0 1 33.7833 81.3432 -204.45 + 19 105.654 1306 0 0 33.7857 81.3295 -205.85 + 19 39.2496 1288 4 0 34.0131 77.7092 -85.85 + 19 82.4412 1287 4 0 34.0093 77.65 -85.9495 + 19 22.7387 1286 4 0 34.0173 77.45 -86.2116 + 19 1.29314 1022 4 0 -12.1515 24.4528 -86.25 + 19 86.1428 1021 4 0 -12.157 24.4497 -86.2468 + 19 63.5399 1020 4 0 -12.3479 24.2496 -86.1604 + 19 216.323 1019 4 0 -12.485 24.05 -86.0785 + 19 229.79 1018 4 0 -12.7439 23.85 -86.0903 + 19 136.779 1301 0 0 33.2146 80.385 -205.85 + 19 111.088 1297 0 0 33.686 79.6291 -205.85 + 19 224.958 1067 4 1 33.6472 78.4747 -84.45 + 19 422.032 1292 4 0 33.6571 78.5123 -85.85 + 19 324.206 1295 3 0 33.9988 79.1491 -115.85 + 19 118.89 1076 2 1 35.4234 79.3628 -144.45 + 19 1.72394 1077 2 1 35.45 79.3443 -144.844 + 19 125.641 1296 2 0 35.5167 79.2986 -145.85 + 19 113.726 1086 1 1 37.3693 77.841 -174.45 + 19 125.717 1287 1 0 37.3871 77.65 -175.868 + 19 136.094 1087 0 1 37.5423 73.7108 -204.45 + 19 120.315 1266 0 0 37.3475 73.4029 -205.85 + 19 73.6472 1163 4 1 52.7435 11.3784 -84.4501 + 19 12.924 1043 4 0 16.4356 28.6858 -86.2496 + 19 53.0206 1042 4 0 16.4295 28.65 -86.2294 + 19 67.021 1041 4 0 16.3907 28.45 -86.0815 + 19 18.0529 1040 4 0 16.3165 28.25 -85.8852 + 19 138.608 979 4 1 15.9125 27.2905 -84.85 + 19 243.682 810 5 0 3.69173 -17.9044 -56.25 + 19 109.717 809 5 0 3.6471 -18.05 -56.1175 + 19 195.389 913 5 1 2.71544 -18.4546 -54.85 + 19 592.137 912 5 1 2.64962 -18.4695 -54.7622 + 19 62.6687 911 5 1 2.44992 -18.6658 -54.4759 + 19 95.314 1068 4 1 33.6501 77.9514 -84.6182 + 19 11.8009 1282 4 0 33.7438 76.496 -85.85 + 19 110.894 1281 4 0 33.7386 76.45 -85.8852 + 19 59.8944 1280 4 0 33.7097 76.2493 -85.9424 + 19 50.1723 1279 4 0 33.6933 76.05 -85.9826 + 19 67.3683 1278 4 0 33.68 75.85 -86.0185 + 19 518.726 1277 4 0 33.5915 75.65 -86.0615 + 19 444.539 1276 4 0 33.378 75.45 -86.1993 + 19 283.543 1067 3 1 33.6087 78.9043 -114.45 + 19 107.023 1064 2 1 32.9225 78.9245 -144.45 + 19 141.772 1294 2 0 32.9028 78.9225 -145.85 + 19 436.933 1061 1 1 32.3358 78.9279 -174.45 + 19 85.304 1294 1 0 32.334 78.9331 -175.85 + 19 119.974 1060 0 1 32.2119 78.7881 -204.45 + 19 116.396 1293 0 0 32.1913 78.8151 -205.85 + 19 212.747 1065 2 1 33.1192 79.7617 -144.45 + 19 323.75 1299 2 0 33.0836 79.8903 -145.85 + 19 20.9675 1312 1 0 32.2951 82.6416 -175.85 + 19 85.0305 1313 1 0 32.2926 82.65 -175.942 + 19 168.056 1057 0 1 31.5338 85.195 -204.45 + 19 146.799 1326 0 0 31.4927 85.3129 -205.85 + 19 55.5646 1433 1 0 34.7463 106.868 -176.25 + 19 139.555 1434 1 0 34.8487 106.95 -176.095 + 19 163.223 1068 9 1 33.85 77.8505 65.5462 + 19 148.081 1067 9 1 33.65 77.7999 65.4836 + 19 73.7088 1066 9 1 33.45 77.8183 65.4437 + 19 183.089 1065 9 1 33.25 77.9783 65.4158 + 19 117.515 1064 9 1 33.05 78.4257 65.3592 + 19 9.94101 1286 9 0 32.8118 77.2684 64.1498 + 19 112.624 1285 9 0 32.8083 77.25 64.1264 + 19 67.5012 1284 9 0 32.8964 77.05 63.9074 + 19 197.706 1169 9 0 79.5806 54.0393 63.75 + 19 92.3822 1170 9 0 79.4773 54.05 63.8958 + 19 24.2453 1282 9 0 32.9053 76.4986 64.15 + 19 74.7359 1281 9 0 32.8751 76.45 64.0988 + 19 77.5107 1280 9 0 32.7578 76.2499 63.918 + 19 14.2214 1279 9 0 32.6383 76.05 63.7801 + 19 176.078 949 8 1 9.85004 29.1216 35.55 + 19 41.535 950 8 1 10.05 29.0238 35.2546 + 19 167.456 1042 8 0 11.4688 28.5518 34.15 + 19 69.1738 1066 8 0 98.4018 33.361 33.75 + 19 88.9054 1067 8 0 98.6271 33.45 33.7727 + 19 91.4166 1068 8 0 98.8549 33.65 33.8982 + 19 109.622 1069 8 0 99.0845 33.85 34.0114 + 19 215.864 1397 8 1 99.5736 35.4325 35.15 + 19 100.632 1398 8 1 99.75 35.9975 35.4435 + 19 266.868 1399 8 1 99.95 36.1144 35.4922 + 19 268.35 1400 8 1 100.15 35.8808 35.3031 + 19 51.9755 1086 8 0 100.477 37.3279 34.15 +Number of digits in this event: 60 +Using G4ParticleGun... +Particle energy: 5.38963 LIN +Particle: e- Event: 20 -Number of tracker hits in this event = 63 - 20 114.85 1605 8 1 141.228 -5.16758 35.55 - 20 206.461 874 8 0 141.228 -5.16797 34.15 - 20 219.015 1605 7 1 141.235 -5.18035 5.55 - 20 352.865 874 7 0 141.236 -5.18104 4.15 - 20 108.686 1605 6 1 141.256 -5.19823 -24.45 - 20 123.907 874 6 0 141.257 -5.19866 -25.85 - 20 140.519 1605 5 1 141.275 -5.20684 -54.45 - 20 131.238 874 5 0 141.276 -5.20597 -55.85 - 20 117.65 1605 4 1 141.302 -5.19044 -84.45 - 20 103.187 874 4 0 141.301 -5.18973 -85.85 - 20 110.732 1605 3 1 141.279 -5.17556 -114.45 - 20 117.679 874 3 0 141.277 -5.17476 -115.85 - 20 111.405 1605 2 1 141.231 -5.15844 -144.45 - 20 214.945 874 2 0 141.226 -5.15707 -145.85 - 20 136.608 1604 1 1 141.099 -5.14658 -174.45 - 20 321.89 874 1 0 141.082 -5.15234 -175.85 - 20 360.672 1602 0 1 140.744 -5.24737 -204.45 - 20 286.093 874 0 0 140.726 -5.24917 -205.85 - 20 103.688 1666 2 1 153.414 -46.7102 -144.85 - 20 268.379 460 7 0 112.221 -87.9339 3.75036 - 20 17.0353 459 7 0 112.3 -88.05 3.90279 - 20 71.9035 461 7 0 112.385 -87.8498 3.91297 - 20 121.125 1605 0 1 141.294 -4.84716 -204.45 - 20 236.2 875 0 0 141.299 -4.86914 -205.85 - 20 81.6906 1604 7 1 141.15 -5.1408 5.51772 - 20 24.0037 1603 7 1 140.95 -5.12323 5.2266 - 20 28.348 848 7 0 103.616 -10.4453 3.75 - 20 142.538 847 7 0 103.601 -10.45 3.77665 - 20 109.229 1417 7 1 103.615 -10.1569 5.15 - 20 125.892 868 8 0 101.267 -6.38786 33.75 - 20 52.5718 1404 8 1 101.042 -6.04154 35.15 - 20 98.7796 1403 8 1 100.95 -6.00806 35.3106 - 20 34.9759 1402 8 1 100.75 -5.97686 35.4866 - 20 104.249 1401 8 1 100.492 -5.99602 35.5498 - 20 64.5838 870 8 0 100.297 -5.98389 34.15 - 20 162.974 871 8 0 100.202 -5.85 33.9114 - 20 175.275 872 8 0 99.9282 -5.65 33.8273 - 20 31.2073 873 8 0 99.4993 -5.45 33.7545 - 20 179.229 1455 8 0 -173.136 111.272 33.7501 - 20 105.864 1604 6 1 141.05 -5.06294 -24.45 - 20 210.862 875 6 0 140.972 -4.92394 -25.85 - 20 129.738 1594 5 1 139 -2.17948 -54.45 - 20 102.642 890 5 0 138.874 -2.01038 -55.85 - 20 122.764 1579 4 1 136.038 1.1676 -84.45 - 20 118.263 906 4 0 135.875 1.38613 -85.85 - 20 121.923 1560 3 1 132.308 5.76959 -114.45 - 20 222.157 931 3 0 132.215 6.29096 -115.85 - 20 2.56214 932 3 0 132.167 6.45015 -116.242 - 20 11.1472 1549 2 1 130.129 18.6207 -144.45 - 20 249.912 1550 2 1 130.15 18.6209 -144.492 - 20 122.53 996 2 0 130.651 19.2937 -145.85 - 20 37.9091 997 2 0 130.77 19.45 -146.141 - 20 70.326 1566 2 1 133.427 7.49475 -144.45 - 20 9.17883 860 8 0 143.745 -8.02983 33.75 - 20 132.69 859 8 0 143.739 -8.05 33.7964 - 20 162.567 858 8 0 143.696 -8.25033 34.1431 - 20 272.265 1615 8 1 143.306 -9.03009 35.1502 - 20 82.9348 857 8 0 143.394 -8.54922 34.1499 - 20 24.6603 1244 8 0 121.044 68.969 33.75 - 20 420.672 1245 8 0 121.009 69.05 33.8189 - 20 262.17 1246 8 0 120.924 69.25 33.9364 - 20 217.706 1247 8 0 120.633 69.4501 33.9564 - 20 264.572 1248 8 0 120.44 69.65 33.9569 -Number of digits in this event = 36 -Using G4ParticleGun ... -6.50731 LIN -e- +Number of tracker hits in this event: 62 + 20 128.241 536 9 1 -72.8116 -98.9623 65.55 + 20 180.167 405 9 0 -72.8111 -98.9606 64.15 + 20 132.201 536 8 1 -72.8042 -98.9348 35.55 + 20 132.785 406 8 0 -72.8039 -98.9329 34.15 + 20 137.06 536 7 1 -72.7942 -98.8932 5.55 + 20 113.448 406 7 0 -72.7941 -98.8911 4.15 + 20 97.1297 536 6 1 -72.7789 -98.8505 -24.45 + 20 125.532 406 6 0 -72.7771 -98.8463 -25.85 + 20 330.847 536 5 1 -72.7429 -98.761 -54.45 + 20 237.448 406 5 0 -72.7392 -98.7544 -55.85 + 20 91.6169 536 4 1 -72.669 -98.6266 -84.45 + 20 144.115 407 4 0 -72.6626 -98.6185 -85.85 + 20 235.24 537 3 1 -72.5257 -98.4536 -114.45 + 20 115.794 408 3 0 -72.5165 -98.4493 -115.85 + 20 162.01 538 2 1 -72.3239 -98.3646 -144.45 + 20 102.622 408 2 0 -72.3157 -98.3618 -145.85 + 20 739.729 539 1 1 -72.1423 -98.2921 -174.45 + 20 555.203 409 1 0 -72.1294 -98.2841 -175.85 + 20 241.009 541 0 1 -71.8435 -98.1135 -204.45 + 20 342.31 410 0 0 -71.8355 -98.1023 -205.85 + 20 59.483 810 4 0 -58.2521 -17.8695 -86.25 + 20 417.957 540 0 1 -71.9819 -98.2862 -204.45 + 20 220.222 539 0 1 -72.05 -98.2047 -204.617 + 20 133.68 413 0 0 -72.6573 -97.5429 -205.851 + 20 117.089 407 0 0 -72.4134 -98.6102 -205.85 + 20 150.692 538 0 1 -72.4338 -97.64 -204.45 + 20 189.911 412 0 0 -72.4203 -97.6184 -205.85 + 20 88.9117 587 2 0 -111.032 -62.65 -146.153 + 20 108.943 537 0 1 -72.5735 -97.1877 -204.45 + 20 208.001 414 0 0 -72.5496 -97.2743 -205.85 + 20 122.647 539 4 1 -72.1408 -97.8649 -84.45 + 20 1.61893 411 4 0 -72.2984 -97.9494 -85.85 + 20 331.163 410 4 0 -72.2994 -97.95 -85.8586 + 20 113.648 520 3 1 -76.0338 -100.369 -114.451 + 20 128.393 399 3 0 -75.9253 -100.27 -115.851 + 20 237.984 525 2 1 -74.9506 -98.2033 -144.45 + 20 119.703 410 2 0 -74.7937 -98.0967 -145.85 + 20 315.941 538 1 1 -72.3157 -95.9435 -174.45 + 20 183.709 420 1 0 -72.0013 -95.9619 -175.85 + 20 3.46385 567 0 1 -66.4522 -95.3514 -204.45 + 20 123.564 568 0 1 -66.45 -95.3491 -204.465 + 20 133.782 425 0 0 -66.2422 -95.1253 -205.85 + 20 49.8972 347 1 0 13.4571 -110.622 -176.25 + 20 25.7197 834 2 1 -13.05 -151.772 -144.66 + 20 23.9471 975 4 1 15.2327 -161.389 -84.45 + 20 40.1059 419 1 0 -71.9207 -96.15 -176.183 + 20 97.6539 407 5 0 -72.8112 -98.7214 -55.85 + 20 35.4787 520 4 1 -75.9971 -96.1055 -84.45 + 20 92.2152 519 4 1 -76.05 -96.1003 -84.5842 + 20 108.666 420 4 0 -76.5798 -96.094 -85.8503 + 20 69.9109 441 3 1 -91.8576 -95.3822 -114.45 + 20 42.5495 440 3 1 -91.9501 -95.4148 -114.687 + 20 128.376 422 3 0 -92.4662 -95.5779 -115.85 + 20 86.0274 408 2 1 -98.3881 -97.3138 -144.45 + 20 148.899 414 2 0 -98.2846 -97.2566 -145.85 + 20 133.836 419 1 1 -96.26 -93.9134 -174.45 + 20 42.7923 432 1 0 -96.0388 -93.584 -175.85 + 20 107.884 433 1 0 -96.0135 -93.55 -176.007 + 20 139.007 443 0 1 -91.4396 -87.6812 -204.45 + 20 23.1392 444 0 1 -91.35 -87.5189 -204.795 + 20 38.1339 464 0 0 -91.0901 -87.1013 -205.85 + 20 94.7247 465 0 0 -91.0572 -87.05 -205.985 +Number of digits in this event: 34 +Using G4ParticleGun... +Particle energy: 3.22828 LIN +Particle: e- Event: 21 -Number of tracker hits in this event = 35 - 21 132.725 1119 7 1 43.8527 140.735 5.55 - 21 106.732 1602 7 0 43.8533 140.737 4.15 - 21 112.464 1119 6 1 43.8622 140.768 -24.45 - 21 155.282 1603 6 0 43.8636 140.77 -25.85 - 21 121.167 1119 5 1 43.8922 140.812 -54.45 - 21 103.159 1603 5 0 43.8933 140.814 -55.85 - 21 428.54 1119 4 1 43.9183 140.857 -84.45 - 21 399.318 1603 4 0 43.9206 140.859 -85.85 - 21 187.082 1119 3 1 43.9638 140.9 -114.45 - 21 158.54 1603 3 0 43.9651 140.901 -115.85 - 21 132.17 1119 2 1 43.9977 140.907 -144.45 - 21 140.099 1603 2 0 43.9994 140.907 -145.85 - 21 129.911 1119 1 1 44.0339 140.916 -174.45 - 21 134.755 1603 1 0 44.0346 140.917 -175.85 - 21 123.746 1120 0 1 44.0506 140.941 -204.45 - 21 134.306 1603 0 0 44.0504 140.943 -205.85 - 21 119.829 1117 3 1 43.6 139.442 -114.45 - 21 152.157 1596 3 0 43.614 139.44 -115.85 - 21 99.9493 1123 2 1 44.7106 139.404 -144.45 - 21 189.779 1596 2 0 44.8538 139.409 -145.85 - 21 24.0204 1138 1 1 47.8401 139.375 -174.45 - 21 122.77 1139 1 1 47.85 139.368 -174.524 - 21 126.588 1595 1 0 48.0325 139.258 -175.85 - 21 154.988 1160 0 1 52.0748 137.012 -204.45 - 21 50.6601 1584 0 0 52.3143 136.958 -205.85 - 21 49.649 1583 0 0 52.3488 136.95 -206.051 - 21 10.5407 1275 1 0 22.0904 75.25 -176.225 - 21 136.423 1115 3 1 43.1165 140.348 -114.45 - 21 128.238 1600 3 0 43.1443 140.291 -115.85 - 21 123.816 1118 2 1 43.7589 138.88 -144.45 - 21 141.46 1593 2 0 43.7261 138.828 -145.85 - 21 106.638 1114 1 1 42.8957 137.695 -174.45 - 21 129.536 1587 1 0 42.8645 137.666 -175.85 - 21 104.821 1110 0 1 42.0863 137.152 -204.45 - 21 232.034 1585 0 0 42.0466 137.16 -205.85 -Number of digits in this event = 26 -Using G4ParticleGun ... -3.82225 LIN -e- +Number of tracker hits in this event: 171 + 21 121.152 439 10 1 -92.203 -14.2274 95.55 + 21 132.416 829 10 0 -92.204 -14.2267 94.15 + 21 217.425 440 9 1 -92.1463 -14.1911 65.55 + 21 441.21 829 9 0 -92.1491 -14.1906 64.15 + 21 395.371 439 8 1 -92.2349 -14.1704 35.55 + 21 271.818 829 8 0 -92.2466 -14.1707 34.15 + 21 431.274 438 7 1 -92.4752 -14.1594 5.55 + 21 290.273 829 7 0 -92.4973 -14.157 4.15 + 21 105.529 435 6 1 -92.9598 -14.1065 -24.45 + 21 572.816 829 6 0 -92.9795 -14.1034 -25.85 + 21 105.584 433 5 1 -93.3713 -13.9475 -54.45 + 21 128.157 830 5 0 -93.3847 -13.9333 -55.85 + 21 144.531 432 4 1 -93.6288 -13.7314 -84.45 + 21 109.834 831 4 0 -93.6365 -13.7236 -85.85 + 21 130.592 431 3 1 -93.8413 -13.5753 -114.45 + 21 154.819 832 3 0 -93.8461 -13.5409 -115.85 + 21 106.264 431 2 1 -93.9263 -12.7291 -144.45 + 21 149.721 836 2 0 -93.9327 -12.6911 -145.85 + 21 104.722 430 1 1 -94.0995 -11.9462 -174.45 + 21 257.431 840 1 0 -94.1108 -11.8962 -175.85 + 21 229.744 429 0 1 -94.3461 -10.953 -204.45 + 21 17.5348 428 0 1 -94.35 -10.9367 -204.836 + 21 97.9332 845 0 0 -94.3601 -10.8956 -205.85 + 21 508.229 428 1 1 -94.3815 -13.5946 -174.45 + 21 376.559 832 1 0 -94.4625 -13.5396 -175.85 + 21 143.333 421 0 1 -95.8769 -12.426 -204.45 + 21 141.935 839 0 0 -96.1019 -12.1796 -205.85 + 21 134.375 832 0 0 -94.2685 -13.5522 -205.85 + 21 224.583 426 2 1 -94.8488 -14.0035 -144.45 + 21 24.9362 425 2 1 -94.95 -14.118 -144.769 + 21 157.278 827 2 0 -95.2615 -14.4764 -145.85 + 21 106.12 383 1 1 -103.426 -20.7889 -174.45 + 21 10.061 384 1 1 -103.35 -20.8434 -174.816 + 21 184.248 795 1 0 -103.078 -20.9401 -175.85 + 21 88.4339 471 0 1 -85.7755 -27.6302 -204.45 + 21 69.5672 472 0 1 -85.65 -27.4575 -204.674 + 21 99.2924 767 0 0 -85.0706 -26.5767 -205.85 + 21 104.439 768 0 0 -84.9773 -26.45 -206.042 + 21 116.244 830 2 0 -94.832 -13.9953 -145.85 + 21 138.074 425 1 1 -94.9964 -13.8458 -174.45 + 21 59.7553 444 0 1 -91.1917 -9.63254 -204.45 + 21 74.6699 445 0 1 -91.15 -9.62135 -204.66 + 21 121.822 852 0 0 -90.9167 -9.54185 -205.85 + 21 288.548 431 4 1 -93.8011 -13.9772 -84.45 + 21 242.811 830 4 0 -93.9097 -13.9365 -85.85 + 21 136.566 415 3 1 -97.0287 -12.3112 -114.451 + 21 62.206 842 3 0 -97.0019 -11.5505 -115.85 + 21 190.018 843 3 0 -96.9973 -11.45 -116.032 + 21 109.044 417 2 1 -96.7072 2.87316 -144.45 + 21 113.531 916 2 0 -96.3975 3.25277 -145.85 + 21 104.36 444 1 1 -91.2492 12.3198 -174.45 + 21 22.5666 445 1 1 -91.15 12.4657 -174.797 + 21 110.65 964 1 0 -90.8275 12.9027 -175.85 + 21 80.1965 965 1 0 -90.721 13.05 -176.179 + 21 31.6869 495 0 1 -80.9409 25.1155 -204.45 + 21 60.2676 496 0 1 -80.85 25.1557 -204.494 + 21 69.1144 497 0 1 -80.65 25.2437 -204.574 + 21 108.284 498 0 1 -80.45 25.3311 -204.649 + 21 65.6021 499 0 1 -80.25 25.4079 -204.729 + 21 45.3842 500 0 1 -80.05 25.4898 -204.809 + 21 77.9508 1033 0 0 -77.0268 26.7623 -205.85 + 21 249.896 1034 0 0 -76.8014 26.85 -205.92 + 21 110.567 1035 0 0 -76.4082 27.05 -206.063 + 21 30.5066 1036 0 0 -76.0796 27.25 -206.218 + 21 18.0076 1171 0 0 -28.3234 54.431 -206.25 + 21 150.637 1172 0 0 -28.2811 54.45 -206.208 + 21 2.85859 764 0 1 -27.058 54.8537 -204.849 + 21 81.1136 765 0 1 -27.0499 54.8567 -204.84 + 21 74.499 766 0 1 -26.85 54.9507 -204.671 + 21 36.8658 767 0 1 -26.65 55.0536 -204.514 + 21 135.335 1143 1 0 -17.2128 48.7461 -176.25 + 21 59.9607 820 1 1 -15.9731 48.8867 -174.85 + 21 129.365 821 1 1 -15.8493 48.9106 -174.702 + 21 214.51 1292 3 0 -45.2222 78.4764 -116.25 + 21 72.8338 1291 3 0 -45.5983 78.45 -115.882 + 21 280.902 426 3 1 -94.9237 -13.7873 -114.45 + 21 149.623 831 3 0 -94.9561 -13.7721 -115.85 + 21 150.863 422 2 1 -95.6191 -13.567 -144.45 + 21 116.672 832 2 0 -95.6753 -13.493 -145.85 + 21 99.5927 416 1 1 -96.8133 -12.0649 -174.45 + 21 122.054 413 0 1 -97.4024 -10.1497 -204.45 + 21 214.184 850 0 0 -97.4511 -10.0428 -205.85 + 21 275.91 840 3 0 -95.9042 -11.95 -115.85 + 21 242.523 439 9 1 -92.2183 -14.2111 65.55 + 21 123.947 828 8 0 -92.341 -14.25 34.0494 + 21 236.514 828 7 0 -92.5272 -14.2684 4.15 + 21 193.725 436 6 1 -92.805 -14.3454 -24.45 + 21 266.709 828 6 0 -92.8156 -14.3423 -25.85 + 21 107.629 435 5 1 -93.0225 -14.2842 -54.45 + 21 118.35 828 5 0 -93.0281 -14.2766 -55.85 + 21 133.729 434 4 1 -93.165 -14.1234 -84.45 + 21 153.279 829 4 0 -93.1849 -14.1278 -85.85 + 21 175.937 432 3 1 -93.5945 -14.2483 -114.45 + 21 157.876 829 3 0 -93.6121 -14.2443 -115.85 + 21 179.004 430 2 1 -93.9738 -14.1792 -144.45 + 21 124.292 829 2 0 -94.0081 -14.178 -145.85 + 21 144.356 427 1 1 -94.718 -14.1937 -174.45 + 21 149.936 829 1 0 -94.7467 -14.1885 -175.85 + 21 200.771 423 0 1 -95.4165 -14.0493 -204.45 + 21 129.931 830 0 0 -95.4828 -14.0393 -205.85 + 21 118.167 828 3 0 -93.5717 -14.2501 -116.009 + 21 210.168 827 6 0 -93.377 -14.5364 -25.85 + 21 58.2069 429 6 1 -94.2704 -14.5997 -24.8499 + 21 206.343 428 6 1 -94.35 -14.7382 -24.7202 + 21 227.375 427 6 1 -94.55 -15.0192 -24.6472 + 21 125.375 830 6 0 -93.3468 -14.0499 -25.8809 + 21 100.694 832 7 0 -92.4805 -13.6054 4.15 + 21 83.4714 434 6 1 -93.3399 -12.9871 -24.45 + 21 53.7423 433 6 1 -93.35 -12.987 -24.6516 + 21 225.175 835 6 0 -93.4046 -12.9842 -25.85 + 21 169.264 426 5 1 -94.8158 -12.7434 -54.45 + 21 113.646 836 5 0 -94.92 -12.679 -55.85 + 21 180.94 415 4 1 -97.0714 -11.1702 -84.45 + 21 35.4647 844 4 0 -97.0778 -11.2434 -85.85 + 21 82.6371 843 4 0 -97.0794 -11.25 -85.9768 + 21 162.388 412 3 1 -97.6495 -13.0554 -114.45 + 21 142.928 836 3 0 -97.4101 -12.8005 -115.85 + 21 107.666 437 2 1 -92.6177 -8.07983 -144.45 + 21 109.462 861 2 0 -92.7628 -7.83209 -145.85 + 21 152.822 420 1 1 -96.1102 -1.3688 -174.45 + 21 93.4215 419 1 1 -96.15 -1.32679 -174.486 + 21 97.5079 418 1 1 -96.35 -1.10876 -174.672 + 21 90.1875 901 1 0 -97.567 0.273487 -175.85 + 21 103.517 902 1 0 -97.7229 0.45 -175.99 + 21 60.8868 903 1 0 -97.9057 0.650862 -176.142 + 21 62.1597 231 0 1 -133.821 37.8982 -204.45 + 21 116.477 230 0 1 -133.95 38.0385 -204.553 + 21 87.0892 229 0 1 -134.15 38.2412 -204.703 + 21 0.11875 228 0 1 -134.35 38.4367 -204.85 + 21 28.1425 1098 0 0 -135.698 39.7905 -205.85 + 21 105.696 1099 0 0 -135.757 39.85 -205.891 + 21 92.5702 1100 0 0 -135.95 40.05 -206.025 + 21 49.8757 1101 0 0 -136.143 40.25 -206.165 + 21 131.636 895 1 0 -96.1791 -1.02701 -175.85 + 21 13.0531 896 1 0 -96.2956 -0.849576 -176.212 + 21 60.2958 1316 1 0 -148.09 83.2612 -176.25 + 21 68.5369 1317 1 0 -148.165 83.45 -176.175 + 21 140.386 1318 1 0 -148.244 83.6502 -176.054 + 21 158.936 157 1 1 -148.608 84.2807 -174.85 + 21 365.123 158 1 1 -148.55 84.4911 -174.452 + 21 35.0756 1334 1 0 -149.042 86.9526 -175.85 + 21 60.2482 1335 1 0 -149.067 87.0501 -175.877 + 21 78.041 1336 1 0 -149.103 87.25 -175.912 + 21 110.232 1337 1 0 -149.132 87.4501 -175.97 + 21 103.014 1338 1 0 -149.302 87.65 -176.058 + 21 324.162 1339 1 0 -149.404 87.85 -176.123 + 21 169.771 435 3 1 -92.9618 -11.8599 -114.451 + 21 104.937 436 3 1 -92.9499 -11.8491 -114.504 + 21 607.568 945 3 0 -101.437 9.12286 -116.25 + 21 183.17 946 3 0 -101.408 9.25015 -116.122 + 21 187.765 947 3 0 -101.328 9.45017 -116.025 + 21 138.998 218 2 1 -136.35 -27.2378 -144.498 + 21 111.228 217 2 1 -136.55 -27.3504 -144.576 + 21 99.2938 434 2 1 -93.2833 -11.7501 -144.45 + 21 98.0861 841 2 0 -93.3434 -11.7212 -145.85 + 21 111.226 844 1 0 -94.3388 -11.0936 -175.85 + 21 113.469 432 0 1 -93.6724 -10.0225 -204.45 + 21 291.003 433 2 1 -93.3845 -11.6054 -144.45 + 21 125.052 844 2 0 -94.0028 -11.2011 -145.85 + 21 107.258 842 2 0 -93.4107 -11.4869 -145.85 + 21 86.9985 429 1 1 -94.3448 -9.12615 -174.45 + 21 170.019 854 1 0 -94.3819 -9.16315 -175.85 + 21 136.33 848 0 0 -95.5389 -10.3793 -205.85 + 21 261.688 440 1 1 -92.135 -14.4491 -174.45 + 21 104.113 828 1 0 -92.0142 -14.3187 -175.85 + 21 122.778 451 0 1 -89.6715 -11.7737 -204.45 + 21 7.78276 841 0 0 -89.8709 -11.8488 -205.85 + 21 141.558 840 0 0 -89.8739 -11.85 -205.871 + 21 118.68 827 1 0 -92.1628 -14.4607 -175.85 + 21 150.225 436 0 1 -92.8959 -14.6304 -204.45 + 21 104.674 827 0 0 -92.9692 -14.6112 -205.85 +Number of digits in this event: 86 +Using G4ParticleGun... +Particle energy: 2.36626 LIN +Particle: e- Event: 22 -Number of tracker hits in this event = 159 - 22 108.343 483 9 1 -83.2644 90.8898 65.55 - 22 132.61 1353 9 0 -83.2644 90.8903 64.15 - 22 374.875 483 8 1 -83.2713 90.9156 35.55 - 22 189.899 1353 8 0 -83.2722 90.9184 34.15 - 22 518.36 483 7 1 -83.2924 90.9645 5.55 - 22 357.745 1354 7 0 -83.2907 90.9604 4.15 - 22 129.827 482 6 1 -83.6251 90.9858 -24.45 - 22 276.56 1354 6 0 -83.6468 90.9764 -25.85 - 22 95.1491 479 5 1 -84.0832 90.7974 -54.45 - 22 231.161 1353 5 0 -84.1082 90.7912 -55.85 - 22 140.762 477 4 1 -84.6273 90.673 -84.45 - 22 544.626 1352 4 0 -84.6463 90.6801 -85.85 - 22 99.4946 475 3 1 -84.9788 90.9106 -114.45 - 22 152.558 1353 3 0 -85.0005 90.9277 -115.85 - 22 361.357 473 2 1 -85.4107 91.2684 -144.45 - 22 107.582 1355 2 0 -85.4282 91.2723 -145.85 - 22 151.271 471 1 1 -85.776 91.3051 -174.45 - 22 156.98 1355 1 0 -85.7852 91.2914 -175.85 - 22 266.341 470 0 1 -85.9591 91.0057 -204.45 - 22 112.612 1354 0 0 -85.9633 91.0049 -205.85 - 22 116.756 927 4 1 5.48639 24.4548 -84.85 - 22 147.146 1356 1 0 -85.8032 91.35 -175.887 - 22 116.121 463 1 1 -87.4361 90.7075 -174.85 - 22 63.2906 462 1 1 -87.45 90.7051 -174.84 - 22 0.251593 1357 1 0 -88.398 91.55 -175.861 - 22 376.679 1356 2 0 -85.4898 91.409 -145.85 - 22 10.0464 458 1 1 -88.4394 94.2303 -174.45 - 22 245.923 457 1 1 -88.45 94.2217 -174.468 - 22 3.90342 456 1 1 -88.65 94.083 -174.835 - 22 8.55865 1368 1 0 -89.1198 93.7597 -175.85 - 22 129.174 1367 1 0 -89.1346 93.75 -175.882 - 22 11.7313 384 0 1 -103.324 85.6266 -204.45 - 22 143.548 383 0 1 -103.35 85.6197 -204.497 - 22 4.07902 382 0 1 -103.55 85.5839 -204.847 - 22 210.106 1326 0 0 -104.115 85.4487 -205.85 - 22 150.868 1327 0 0 -104.275 85.45 -206.077 - 22 106.597 486 1 1 -82.7737 95.1075 -174.45 - 22 128.241 1376 1 0 -82.6426 95.4007 -175.85 - 22 119.284 505 0 1 -78.9784 101.755 -204.45 - 22 53.0891 1409 0 0 -78.7023 102.102 -205.85 - 22 80.1868 1410 0 0 -78.6658 102.15 -206.035 - 22 47.114 1145 8 0 -47.1781 49.25 33.7877 - 22 340.546 483 6 1 -83.2844 91.0251 -24.45 - 22 337.497 483 5 1 -83.2728 90.6335 -54.45 - 22 125.778 484 5 1 -83.25 90.6144 -54.8428 - 22 243.092 1352 5 0 -83.1945 90.5647 -55.85 - 22 26.3005 1351 5 0 -83.178 90.55 -56.1486 - 22 134.157 492 4 1 -81.5556 89.2194 -84.45 - 22 141.055 1345 4 0 -81.4555 89.149 -85.85 - 22 241.888 503 3 1 -79.4406 87.7585 -114.45 - 22 50.7643 1338 3 0 -79.3156 87.6633 -115.85 - 22 59.426 1337 3 0 -79.2983 87.65 -116.045 - 22 21.435 515 2 1 -76.8543 85.6984 -144.45 - 22 104.255 516 2 1 -76.85 85.6932 -144.521 - 22 109.629 1327 2 0 -76.7669 85.5912 -145.85 - 22 141.773 525 1 1 -74.9014 83.4433 -174.45 - 22 164.955 1316 1 0 -74.8202 83.357 -175.85 - 22 141.322 534 0 1 -73.2382 81.5964 -204.45 - 22 139.039 1307 0 0 -73.1711 81.4993 -205.85 - 22 129.253 504 3 1 -79.2499 87.8485 -114.609 - 22 30.193 1353 7 0 -83.3062 90.95 3.86444 - 22 142.83 1352 6 0 -83.349 90.6938 -25.85 - 22 118.909 485 5 1 -82.9372 90.5658 -54.45 - 22 97.3683 485 4 1 -82.9313 90.578 -84.45 - 22 131.793 484 3 1 -83.2274 91.482 -114.45 - 22 140.216 1356 3 0 -83.2527 91.4953 -115.85 - 22 37.1405 480 2 1 -84.0448 91.6768 -144.45 - 22 94.4509 479 2 1 -84.05 91.677 -144.592 - 22 187.058 1357 2 0 -84.0993 91.7032 -145.85 - 22 114.679 472 1 1 -85.521 92.3405 -174.45 - 22 118.723 1361 1 0 -85.5783 92.381 -175.85 - 22 105.552 465 0 1 -86.8855 93.0323 -204.45 - 22 145.225 1364 0 0 -86.9811 93.0882 -205.85 - 22 61.0429 398 3 0 -98.0978 -100.35 -116.017 - 22 174.453 581 1 1 -63.7983 81.8142 -174.45 - 22 17.2118 1314 1 0 -63.5673 83.0229 -175.85 - 22 145.813 1315 1 0 -63.5616 83.0504 -175.884 - 22 170.384 494 0 1 -81.1231 91.741 -204.45 - 22 86.4512 495 0 1 -81.05 91.7545 -204.572 - 22 15.4678 1358 0 0 -80.5357 91.9432 -205.85 - 22 125.22 1359 0 0 -80.5157 91.95 -205.899 - 22 158.339 1357 0 0 -81.1295 91.6941 -205.85 - 22 176.71 1354 8 0 -83.2241 90.95 33.7855 - 22 237.265 1354 5 0 -83.3225 91.0418 -55.85 - 22 183.549 482 4 1 -83.616 91.0419 -84.45 - 22 140.366 1354 4 0 -83.6584 91.0495 -85.85 - 22 62.2403 477 3 1 -84.6014 91.1342 -114.45 - 22 81.1798 476 3 1 -84.65 91.1314 -114.647 - 22 117.706 1355 3 0 -84.9224 91.1569 -115.85 - 22 99.9929 443 2 1 -91.3897 91.3686 -144.45 - 22 86.4615 428 1 1 -94.4476 94.8093 -174.45 - 22 21.422 427 1 1 -94.55 94.8285 -174.781 - 22 128.041 1373 1 0 -94.8636 94.8486 -175.85 - 22 210.469 392 0 1 -101.625 95.7758 -204.45 - 22 98.4568 1380 0 0 -101.441 96.2442 -205.85 - 22 44.3581 1381 0 0 -101.404 96.35 -206.134 - 22 145.662 483 4 1 -83.45 90.8943 -84.4955 - 22 581.056 484 4 1 -83.25 90.7557 -84.69 - 22 178.435 1359 4 0 -83.1384 92.078 -85.85 - 22 190.098 486 3 1 -82.848 93.3264 -114.45 - 22 106.182 1366 3 0 -82.8237 93.3709 -115.85 - 22 154.431 488 2 1 -82.3966 94.3806 -144.45 - 22 125.562 1371 2 0 -82.3881 94.4096 -145.85 - 22 148.569 489 1 1 -82.1426 95.0592 -174.45 - 22 129.358 1374 1 0 -82.1425 95.0989 -175.85 - 22 125.255 489 0 1 -82.1993 96.0593 -204.45 - 22 128.802 1379 0 0 -82.2188 96.1203 -205.85 - 22 81.2722 489 2 1 -82.25 94.5063 -144.553 - 22 74.1407 490 2 1 -82.05 94.671 -144.618 - 22 61.0127 491 2 1 -81.85 94.8436 -144.7 - 22 137.081 1377 2 0 -80.4746 95.667 -145.85 - 22 34.9228 1376 2 0 -80.1698 95.5499 -146.181 - 22 75.5797 1267 2 0 -51.7914 73.5375 -146.249 - 22 96.1764 1266 2 0 -51.7096 73.45 -146.184 - 22 103.834 1265 2 0 -51.4587 73.2499 -146.122 - 22 113.862 645 2 1 -50.8828 72.4236 -144.85 - 22 306.028 646 2 1 -50.85 72.3081 -144.747 - 22 143.198 1353 6 0 -83.2346 90.8975 -26.0217 - 22 145.753 472 4 1 -85.6177 90.5015 -84.45 - 22 124.668 1351 4 0 -85.7013 90.4349 -85.85 - 22 146.809 463 3 1 -87.4246 89.5029 -114.45 - 22 223.383 1347 3 0 -87.4394 89.4717 -115.85 - 22 118.414 461 2 1 -87.6791 88.863 -144.45 - 22 252.653 1343 2 0 -87.6405 88.8311 -145.85 - 22 113.329 1341 1 0 -87.3482 88.2757 -175.85 - 22 135.71 463 0 1 -87.4378 88.3336 -204.45 - 22 213.366 1341 0 0 -87.4688 88.3306 -205.85 - 22 242.462 471 4 1 -85.65 90.445 -84.6585 - 22 169.855 1347 4 0 -85.733 89.5643 -85.85 - 22 161.964 1346 4 0 -85.4691 89.45 -86.2263 - 22 70.3711 1356 4 0 -78.8893 91.5395 -86.25 - 22 33.7195 1357 4 0 -78.8969 91.5502 -86.2322 - 22 123.905 480 5 1 -83.9343 89.9542 -54.45 - 22 165.599 1348 5 0 -84.0278 89.7744 -55.85 - 22 109.882 467 4 1 -86.5403 86.0835 -84.4501 - 22 120.427 1329 4 0 -86.7707 85.9506 -85.85 - 22 104.1 446 3 1 -90.833 83.3295 -114.45 - 22 111.269 1313 3 0 -90.8787 82.8061 -115.85 - 22 145.894 440 2 1 -92.0608 72.3015 -144.45 - 22 34.0053 1258 2 0 -92.2739 71.713 -145.85 - 22 87.8345 1257 2 0 -92.2975 71.65 -146 - 22 61.6445 425 1 1 -95.0171 58.9716 -174.45 - 22 124.804 424 1 1 -95.15 58.8421 -174.576 - 22 53.5322 423 1 1 -95.35 58.6523 -174.755 - 22 58.2819 1187 1 0 -96.4659 57.5721 -175.85 - 22 98.4341 1186 1 0 -96.5921 57.45 -175.974 - 22 157.716 1185 1 0 -96.7874 57.25 -176.114 - 22 2.14384 1184 1 0 -97.0026 57.05 -176.247 - 22 26.7027 174 0 1 -145.28 14.2686 -204.45 - 22 96.7262 173 0 1 -145.35 14.2301 -204.524 - 22 30.811 172 0 1 -145.55 14.12 -204.746 - 22 149.444 967 0 0 -146.54 13.6279 -205.85 - 22 6.98214 398 1 1 -100.352 76.5596 -174.45 - 22 114.459 1282 1 0 -100.307 76.4732 -175.85 - 22 26.6233 1281 1 0 -100.299 76.45 -175.917 - 22 119.302 1283 1 0 -100.199 76.65 -176.168 - 22 27.1973 1327 1 0 -35.2488 85.6084 -176.25 - 22 268.33 1328 1 0 -35.2213 85.65 -176.194 - 22 79.234 874 1 0 -78.5123 -5.20939 -176.25 -Number of digits in this event = 85 -Using G4ParticleGun ... -6.34251 LIN -e- +Number of tracker hits in this event: 19 + 22 1.60278 1635 7 1 147.291 -27.9054 5.15458 + 22 116.224 760 7 0 147.291 -27.9054 4.15 + 22 110.376 1635 6 1 147.299 -27.8965 -24.45 + 22 113.647 760 6 0 147.303 -27.893 -25.85 + 22 120.674 1636 5 1 147.375 -27.8319 -54.45 + 22 110.047 761 5 0 147.376 -27.8284 -55.85 + 22 88.5844 1636 4 1 147.383 -27.7473 -84.45 + 22 115.136 761 4 0 147.384 -27.7446 -85.85 + 22 126.256 1636 3 1 147.413 -27.6717 -114.45 + 22 96.0115 761 3 0 147.419 -27.6646 -115.85 + 22 264.61 1637 2 1 147.604 -27.4702 -144.45 + 22 344.577 763 2 0 147.646 -27.4015 -145.85 + 22 133.718 1641 1 1 148.411 -25.7917 -174.45 + 22 119.665 771 1 0 148.435 -25.7199 -175.85 + 22 112.911 1645 0 1 149.317 -24.1684 -204.45 + 22 123.855 779 0 0 149.336 -24.0934 -205.85 + 22 233.278 1230 9 0 134.679 66.0779 63.75 + 22 10.8237 1146 2 0 167.528 49.25 -146.065 + 22 91.1463 762 2 0 147.694 -27.45 -145.924 +Number of digits in this event: 9 +Using G4ParticleGun... +Particle energy: 6.0084 LIN +Particle: e- Event: 23 -Number of tracker hits in this event = 24 - 23 108.192 1342 9 1 88.4969 85.0088 65.55 - 23 114.279 1324 9 0 88.498 85.0056 64.15 - 23 385.409 1342 8 1 88.5225 84.9375 35.55 - 23 115.617 1324 8 0 88.5293 84.9357 34.15 - 23 182.713 1343 7 1 88.6729 84.9112 5.55 - 23 143.659 1324 7 0 88.6763 84.9073 4.15 - 23 115.512 1343 6 1 88.7431 84.8275 -24.45 - 23 104.557 1323 6 0 88.7478 84.8205 -25.85 - 23 203.236 1344 5 1 88.8863 84.7252 -54.45 - 23 113.079 1323 5 0 88.8863 84.7203 -55.85 - 23 109.899 1344 4 1 88.8977 84.6027 -84.45 - 23 231.531 1322 4 0 88.8972 84.6009 -85.85 - 23 116.952 1344 3 1 88.9057 84.5362 -114.45 - 23 100.088 1322 3 0 88.9125 84.5336 -115.85 - 23 103.127 1344 2 1 89.0351 84.4744 -144.45 - 23 172.238 1322 2 0 89.0509 84.4771 -145.85 - 23 200.708 1346 1 1 89.372 84.472 -174.45 - 23 145.303 1322 1 0 89.3915 84.4595 -175.85 - 23 113.707 1348 0 1 89.8162 84.2044 -204.45 - 23 107.654 1320 0 0 89.8509 84.1955 -205.85 - 23 4.74198 1356 6 1 91.3587 41.3232 -24.85 - 23 126.6 1355 6 1 91.35 41.2487 -24.472 - 23 59.8528 1342 7 1 88.65 84.9283 5.43788 - 23 59.483 932 9 1 6.65 95.4476 65.4211 -Number of digits in this event = 12 -Using G4ParticleGun ... -3.14452 LIN -e- +Number of tracker hits in this event: 60 + 23 143.393 388 8 1 -102.543 -102.922 35.55 + 23 155.297 386 8 0 -102.543 -102.922 34.15 + 23 131.066 388 7 1 -102.549 -102.928 5.55 + 23 109.601 386 7 0 -102.549 -102.93 4.15 + 23 134.534 387 6 1 -102.557 -102.974 -24.45 + 23 125.365 385 6 0 -102.557 -102.975 -25.85 + 23 136.984 388 5 1 -102.547 -102.996 -54.45 + 23 128.165 385 5 0 -102.545 -102.996 -55.85 + 23 121.631 388 4 1 -102.515 -103.011 -84.45 + 23 398.142 385 4 0 -102.514 -103.012 -85.85 + 23 286.895 388 3 1 -102.479 -103.03 -114.45 + 23 227.278 385 3 0 -102.478 -103.029 -115.85 + 23 199.775 388 2 1 -102.434 -102.993 -144.45 + 23 155.427 385 2 0 -102.433 -102.989 -145.85 + 23 139.014 388 1 1 -102.411 -102.913 -174.45 + 23 164.391 386 1 0 -102.409 -102.907 -175.85 + 23 188.364 388 0 1 -102.369 -102.793 -204.45 + 23 163.425 386 0 0 -102.363 -102.791 -205.85 + 23 236.595 590 0 0 -93.8092 -62.0125 -206.25 + 23 21.4947 609 2 1 -58.246 31.2999 -144.85 + 23 36.2261 511 4 0 83.4747 -77.7086 -86.25 + 23 72.313 389 2 1 -102.35 -102.955 -144.661 + 23 120.702 386 2 0 -102.122 -102.821 -145.85 + 23 61.0621 230 2 0 -108.073 -134.007 -146.25 + 23 70.3 229 2 0 -108.14 -134.15 -146.087 + 23 62.1839 228 2 0 -108.158 -134.35 -145.948 + 23 71.3392 227 2 0 -108.099 -134.55 -145.878 + 23 87.3572 226 2 0 -107.959 -134.75 -145.875 + 23 144.533 225 2 0 -107.726 -134.95 -145.941 + 23 180.447 224 2 0 -107.522 -135.15 -146.022 + 23 73.6266 223 2 0 -107.425 -135.35 -146.037 + 23 78.4117 222 2 0 -107.259 -135.55 -146.058 + 23 61.6935 221 2 0 -107.294 -135.75 -146.198 + 23 86.2002 220 2 0 -107.389 -135.95 -146.238 + 23 76.1352 219 2 0 -107.433 -136.15 -146.13 + 23 112.37 218 2 0 -107.448 -136.35 -146.023 + 23 228.883 217 2 0 -107.438 -136.55 -146.062 + 23 111.238 216 2 0 -107.561 -136.75 -145.928 + 23 49.8536 582 0 1 -63.65 -102.488 -204.625 + 23 206.64 387 4 1 -102.593 -103.047 -84.45 + 23 115.745 390 3 1 -101.978 -103.047 -114.45 + 23 107.126 393 2 1 -101.494 -103.318 -144.45 + 23 116.675 383 2 0 -101.458 -103.352 -145.85 + 23 107.624 397 1 1 -100.7 -104.059 -174.45 + 23 123.996 380 1 0 -100.66 -104.101 -175.85 + 23 128.57 401 0 1 -99.858 -105.079 -204.45 + 23 466.386 375 0 0 -99.8228 -105.115 -205.85 + 23 87.2782 662 0 1 -47.65 -81.665 -204.59 + 23 177.124 374 0 0 -99.8387 -105.15 -206.121 + 23 162.525 386 4 0 -102.528 -102.948 -85.8501 + 23 142.189 393 3 1 -101.451 -100.637 -114.45 + 23 165.6 397 3 0 -101.365 -100.606 -115.851 + 23 143.868 402 2 1 -99.7384 -100.865 -144.45 + 23 140.232 397 2 0 -99.6156 -100.631 -145.85 + 23 103.662 416 1 1 -96.8069 -96.0498 -174.451 + 23 15.6613 417 1 1 -96.75 -96.09 -174.779 + 23 98.7726 419 1 0 -96.5972 -96.2165 -175.85 + 23 111.243 436 0 1 -92.8134 -99.323 -204.45 + 23 136.952 403 0 0 -92.9149 -99.4713 -205.85 + 23 5.22788 342 5 1 -111.55 99.2022 -54.7563 +Number of digits in this event: 36 +Using G4ParticleGun... +Particle energy: 2.06861 LIN +Particle: e- Event: 24 -Number of tracker hits in this event = 94 - 24 126.586 972 11 1 14.5692 -15.229 125.55 - 24 112.696 824 11 0 14.5688 -15.2299 124.15 - 24 295.915 972 10 1 14.554 -15.2455 95.55 - 24 117.252 824 10 0 14.5547 -15.2459 94.15 - 24 152.335 972 9 1 14.549 -15.2636 65.55 - 24 123.635 823 9 0 14.551 -15.2608 64.15 - 24 370.997 972 8 1 14.5906 -15.1962 35.55 - 24 355.195 824 8 0 14.592 -15.195 34.15 - 24 127.451 972 7 1 14.6267 -15.1712 5.55 - 24 468.699 824 7 0 14.629 -15.1648 4.15 - 24 126.146 973 6 1 14.6706 -15.0309 -24.45 - 24 181.091 825 6 0 14.6718 -15.0235 -25.85 - 24 218.764 973 5 1 14.6961 -14.8746 -54.45 - 24 125.483 825 5 0 14.6984 -14.8642 -55.85 - 24 205.948 973 4 1 14.7527 -14.6558 -84.45 - 24 151.159 827 4 0 14.754 -14.6439 -85.85 - 24 134.549 973 3 1 14.7881 -14.4173 -114.45 - 24 99.5895 828 3 0 14.7838 -14.4048 -115.85 - 24 155.665 973 2 1 14.6878 -14.1563 -144.45 - 24 171.303 829 2 0 14.6824 -14.1416 -145.85 - 24 169.231 972 1 1 14.5763 -13.8484 -174.45 - 24 145.897 831 1 0 14.5733 -13.8334 -175.85 - 24 126.101 972 0 1 14.5183 -13.5285 -204.45 - 24 108.1 832 0 0 14.5149 -13.5129 -205.85 - 24 13.1005 992 1 0 111.538 18.6393 -175.969 - 24 147.73 993 1 0 111.543 18.65 -175.963 - 24 151.608 994 1 0 111.607 18.85 -175.934 - 24 37.3758 1121 1 0 58.293 44.4044 -176.25 - 24 127.995 1177 1 0 -38.5264 55.5814 -176.25 - 24 39.6505 1465 1 1 113.211 18.9429 -174.85 - 24 87.9534 1466 1 1 113.35 18.9696 -174.785 - 24 115.252 1467 1 1 113.55 19.0033 -174.714 - 24 88.159 1468 1 1 113.75 18.8932 -174.486 - 24 279.011 1469 1 1 113.95 18.8358 -174.515 - 24 254.961 972 5 1 14.6498 -14.9631 -54.7984 - 24 29.6775 818 5 0 15.0682 -16.4326 -55.8501 - 24 123.639 817 5 0 15.0573 -16.45 -55.8926 - 24 95.2672 974 7 1 15.0236 -15.3128 5.55 - 24 6.99845 975 7 1 15.05 -15.293 5.18018 - 24 111.817 984 6 1 16.9622 -13.9378 -24.4503 - 24 114.127 828 6 0 16.8418 -14.3266 -25.8506 - 24 87.3576 786 5 0 14.5488 -22.7823 -55.85 - 24 55.0281 785 5 0 14.5462 -22.85 -56.0619 - 24 15.2284 971 4 1 14.2618 -31.9385 -84.45 - 24 90.7352 970 4 1 14.25 -31.9536 -84.512 - 24 120.602 738 4 0 13.9495 -32.2723 -85.85 - 24 116.824 938 3 1 7.70491 -39.5659 -114.45 - 24 64.2423 700 3 0 7.58081 -39.9997 -115.851 - 24 82.4517 699 3 0 7.56656 -40.05 -116.013 - 24 184.828 927 2 1 5.58366 -49.1139 -144.45 - 24 113.26 651 2 0 5.29061 -49.6604 -145.85 - 24 199.04 895 1 1 -0.90551 -60.5827 -174.45 - 24 36.8992 595 1 0 -1.34834 -61.0111 -175.85 - 24 90.7227 594 1 0 -1.38891 -61.05 -175.987 - 24 136.359 842 0 1 -11.4542 -68.9705 -204.45 - 24 10.4921 841 0 1 -11.6501 -69.0133 -204.822 - 24 128.106 555 0 0 -12.1868 -68.9064 -205.85 - 24 158.413 659 2 0 5.0691 -48.1621 -145.85 - 24 7.9254 654 2 0 2.76088 -49.0857 -145.85 - 24 16.8585 823 8 0 14.4432 -15.25 33.8205 - 24 125.612 967 7 1 13.5858 -16.1627 5.54987 - 24 151.805 818 7 0 13.282 -16.281 4.14981 - 24 4.40521 917 6 1 3.46004 -20.7359 -24.45 - 24 109.29 916 6 1 3.45 -20.7363 -24.4631 - 24 54.9713 915 6 1 3.24978 -20.7389 -24.7189 - 24 136.558 796 6 0 2.33432 -20.7379 -25.85 - 24 70.9403 772 5 1 -25.5054 -20.9302 -54.4507 - 24 64.3535 771 5 1 -25.65 -20.9069 -54.5458 - 24 72.4484 770 5 1 -25.8506 -20.8818 -54.6644 - 24 36.4381 769 5 1 -26.05 -20.8711 -54.7905 - 24 309.117 795 5 0 -27.8813 -20.9416 -55.85 - 24 113.943 465 4 1 -86.8665 -20.2373 -84.4502 - 24 34.9181 464 4 1 -87.05 -20.1901 -84.7255 - 24 71.7123 800 4 0 -87.7824 -19.9179 -85.85 - 24 82.035 801 4 0 -87.9358 -19.85 -86.0725 - 24 69.0181 799 4 0 -124.411 -20.2229 -86.25 - 24 100.081 798 4 0 -124.521 -20.25 -86.0703 - 24 84.7437 275 4 1 -125.057 -20.5391 -84.85 - 24 53.1015 274 4 1 -125.15 -20.574 -84.6182 - 24 120.258 874 5 0 -122.407 -5.212 -56.25 - 24 43.215 875 5 0 -122.417 -5.04967 -55.9822 - 24 308.071 285 5 1 -123.039 -3.81565 -54.85 - 24 38.1871 284 5 1 -123.15 -3.49269 -54.642 - 24 20.014 1040 6 0 -130.227 28.1725 -26.25 - 24 65.3446 1041 6 0 -130.25 28.25 -26.2015 - 24 80.9166 1042 6 0 -130.264 28.45 -26.1098 - 24 61.6776 1043 6 0 -130.107 28.65 -26.0157 - 24 56.1395 1044 6 0 -130.012 28.8511 -25.9137 - 24 202.051 1045 6 0 -129.942 29.0508 -25.9442 - 24 176.021 1046 6 0 -129.858 29.25 -25.9777 - 24 220.581 1047 6 0 -129.601 29.45 -26.0021 - 24 133.523 254 6 1 -129.203 28.1492 -24.8499 - 24 151.902 253 6 1 -129.35 28.2719 -24.8128 - 24 35.3319 143 5 1 -151.35 56.7125 -54.6592 -Number of digits in this event = 45 -Using G4ParticleGun ... -8.30181 LIN -e- +Number of tracker hits in this event: 56 + 24 125.914 1451 9 1 110.48 64.8284 65.55 + 24 113.343 1223 9 0 110.476 64.8331 64.15 + 24 125.956 1451 8 1 110.38 64.907 35.55 + 24 176.058 1224 8 0 110.375 64.9103 34.15 + 24 130.047 1450 7 1 110.233 64.9757 5.55 + 24 111.455 1224 7 0 110.221 64.9784 4.15 + 24 103.697 1449 6 1 109.966 65.0277 -24.45 + 24 174.512 1224 6 0 109.95 65.0335 -25.85 + 24 110.351 1447 5 1 109.553 65.1526 -54.45 + 24 57.2332 1446 5 1 109.55 65.1499 -54.6561 + 24 109.562 1225 5 0 109.541 65.1394 -55.85 + 24 113.739 1445 4 1 109.211 64.9136 -84.45 + 24 110.08 1224 4 0 109.253 65.0076 -85.85 + 24 247.718 1444 3 1 109.149 68.0286 -114.45 + 24 99.7629 1241 3 0 109.028 68.2724 -115.85 + 24 126.967 1433 2 1 106.814 72.9414 -144.45 + 24 99.0796 1265 2 0 106.63 73.0786 -145.85 + 24 183.562 1416 1 1 103.481 75.8613 -174.45 + 24 4.9401 1417 1 1 103.55 75.8494 -174.829 + 24 149.619 1278 1 0 103.721 75.8245 -175.85 + 24 102.756 1441 0 1 108.395 75.3038 -204.45 + 24 121.845 1275 0 0 108.501 75.1484 -205.85 + 24 237.33 1226 2 0 106.893 65.2767 -145.946 + 24 146.229 1433 1 1 106.863 65.1013 -174.45 + 24 124.151 1224 1 0 106.615 64.9703 -175.85 + 24 198.346 1402 0 1 100.652 62.7669 -204.45 + 24 51.7426 1401 0 1 100.55 62.747 -204.692 + 24 183.117 1212 0 0 100.037 62.6328 -205.85 + 24 7.40587 1421 1 1 104.542 64.842 -174.45 + 24 353.987 1422 1 1 104.55 64.8169 -174.463 + 24 5.11696 1213 1 0 104.935 62.6681 -175.85 + 24 67.3244 1212 1 0 104.938 62.65 -175.862 + 24 51.7494 1211 1 0 104.957 62.4499 -176.002 + 24 88.1178 1210 1 0 104.98 62.2497 -176.152 + 24 109.53 893 1 0 167.733 -1.30098 -176.25 + 24 118.367 892 1 0 168.026 -1.45006 -176.106 + 24 94.5556 891 1 0 168.427 -1.65 -175.949 + 24 89.8901 890 1 0 168.688 -1.85009 -175.922 + 24 96.6731 889 1 0 168.986 -2.05006 -175.951 + 24 109.201 888 1 0 169.222 -2.25003 -176.069 + 24 124.387 887 1 0 169.44 -2.45 -176.155 + 24 112.485 719 6 0 175.528 -36.0534 -26.25 + 24 10.1326 1781 6 1 176.524 -36.3461 -24.85 + 24 121.07 1782 6 1 176.55 -36.3555 -24.8178 + 24 2.95965 1783 6 1 176.75 -36.3526 -24.4613 + 24 21.692 1158 8 0 120.881 51.6819 33.75 + 24 89.346 1157 8 0 120.908 51.65 33.822 + 24 108.293 1506 8 1 121.358 51.1375 35.15 + 24 17.0354 1507 8 1 121.55 51.0879 35.4862 + 24 69.3589 1237 9 0 142.561 67.5787 63.75 + 24 115.781 1238 9 0 142.65 67.65 63.9022 + 24 14.0012 1239 9 0 142.883 67.85 64.1208 + 24 21.679 1621 9 1 144.503 69.5869 65.15 + 24 346.725 1622 9 1 144.55 69.6333 65.1865 + 24 54.0922 711 6 0 95.6099 -37.6837 -26.25 + 24 128.426 710 6 0 95.5812 -37.85 -25.9884 +Number of digits in this event: 22 +Using G4ParticleGun... +Particle energy: 5.65724 LIN +Particle: e- Event: 25 -Number of tracker hits in this event = 24 - 25 132.926 1410 10 1 102.264 -30.275 95.55 - 25 144.959 748 10 0 102.264 -30.2746 94.15 - 25 203.55 1410 9 1 102.266 -30.2632 65.55 - 25 108.657 748 9 0 102.266 -30.264 64.15 - 25 128.166 1410 8 1 102.269 -30.2827 35.55 - 25 121.611 748 8 0 102.27 -30.2828 34.15 - 25 110.309 1410 7 1 102.289 -30.2894 5.55 - 25 144.297 748 7 0 102.289 -30.2899 4.15 - 25 168.583 1410 6 1 102.29 -30.3041 -24.45 - 25 113.523 748 6 0 102.29 -30.3041 -25.85 - 25 113.416 1410 5 1 102.29 -30.3017 -54.45 - 25 119.235 748 5 0 102.289 -30.3017 -55.85 - 25 125.408 1410 4 1 102.265 -30.3026 -84.45 - 25 149.106 748 4 0 102.264 -30.3033 -85.85 - 25 132.882 1410 3 1 102.225 -30.3148 -114.45 - 25 259.318 748 3 0 102.222 -30.3154 -115.85 - 25 263.433 1410 2 1 102.156 -30.3241 -144.45 - 25 152.189 748 2 0 102.151 -30.3237 -145.85 - 25 220.48 1409 1 1 102.045 -30.3145 -174.45 - 25 194.572 748 1 0 102.039 -30.3135 -175.85 - 25 139.963 1408 0 1 101.908 -30.295 -204.45 - 25 121.519 748 0 0 101.902 -30.2928 -205.85 - 25 121.182 565 1 0 163.646 -66.852 -176.25 - 25 25.093 749 3 0 102.182 -30.2499 -116.068 -Number of digits in this event = 20 -Using G4ParticleGun ... -4.59215 LIN -e- +Number of tracker hits in this event: 34 + 25 227.903 1342 10 1 88.5328 -44.5315 95.55 + 25 135.177 677 10 0 88.5332 -44.5305 94.15 + 25 122.691 1342 9 1 88.5465 -44.5138 65.55 + 25 121.401 677 9 0 88.5477 -44.5139 64.15 + 25 155.226 1342 8 1 88.5687 -44.5204 35.55 + 25 140.408 677 8 0 88.5691 -44.5209 34.15 + 25 128.825 1342 7 1 88.5786 -44.5323 5.55 + 25 178.482 677 7 0 88.5818 -44.5329 4.15 + 25 157.947 1342 6 1 88.6465 -44.54 -24.45 + 25 106.659 677 6 0 88.6525 -44.5359 -25.85 + 25 175.8 1343 5 1 88.7706 -44.4588 -54.45 + 25 217.265 677 5 0 88.7774 -44.4557 -55.85 + 25 119.223 1344 4 1 88.9091 -44.3872 -84.45 + 25 181.017 678 4 0 88.9149 -44.3842 -85.85 + 25 131.917 1344 3 1 89.0408 -44.3257 -114.45 + 25 114.931 678 3 0 89.0443 -44.3232 -115.85 + 25 207.423 1345 2 1 89.1235 -44.2568 -144.45 + 25 94.25 679 2 0 89.1334 -44.2462 -145.85 + 25 102.418 1346 1 1 89.3572 -44.0718 -174.45 + 25 144.981 679 1 0 89.3683 -44.0657 -175.85 + 25 125.07 1347 0 1 89.5941 -43.9427 -204.45 + 25 171.781 680 0 0 89.622 -43.9207 -205.85 + 25 3.79113 1516 2 1 123.518 55.5147 -144.85 + 25 1.05689 593 3 0 67.2393 -61.3174 -115.85 + 25 1.26697 677 0 0 91.4441 -44.5206 -205.85 + 25 180.55 760 0 0 101.883 -27.9472 -206.25 + 25 6.93261 761 0 0 101.88 -27.85 -205.942 + 25 9.17918 1413 0 1 102.933 -27.936 -204.85 + 25 226.087 1414 0 1 102.95 -27.9378 -204.834 + 25 21.2339 1346 0 1 89.2927 -44.1259 -204.45 + 25 102.894 1345 0 1 89.25 -44.0765 -204.478 + 25 121.513 1344 0 1 89.05 -43.8249 -204.559 + 25 290.844 1343 0 1 88.85 -43.5795 -204.609 + 25 82.4052 1342 0 1 88.65 -43.1873 -204.62 +Number of digits in this event: 24 +Using G4ParticleGun... +Particle energy: 9.24452 LIN +Particle: e- Event: 26 -Number of tracker hits in this event = 31 - 26 97.9283 1136 11 1 47.4064 -31.5346 125.55 - 26 266.235 742 11 0 47.4046 -31.5364 124.15 - 26 220.988 1136 10 1 47.3579 -31.5814 95.55 - 26 193.122 742 10 0 47.3536 -31.5849 94.15 - 26 136.199 1136 9 1 47.2621 -31.6629 65.55 - 26 134.024 741 9 0 47.2606 -31.6718 64.15 - 26 131.078 1135 8 1 47.2325 -31.8596 35.55 - 26 120.475 740 8 0 47.2316 -31.869 34.15 - 26 136.141 1135 7 1 47.2011 -32.0593 5.55 - 26 115.067 739 7 0 47.1969 -32.0649 4.15 - 26 165.09 1135 6 1 47.1104 -32.1761 -24.45 - 26 151.958 739 6 0 47.0943 -32.2002 -25.85 - 26 92.8943 1133 5 1 46.803 -32.7632 -54.45 - 26 101.982 736 5 0 46.7888 -32.8327 -55.85 - 26 12.2751 735 5 0 46.7847 -32.85 -56.1989 - 26 97.9963 1132 4 1 46.5967 -34.0905 -84.45 - 26 116.502 729 4 0 46.5624 -34.1662 -85.85 - 26 120.629 1128 3 1 45.832 -35.7239 -114.45 - 26 116.48 721 3 0 45.8093 -35.8153 -115.85 - 26 139.923 1126 2 1 45.366 -37.7856 -144.45 - 26 129.38 711 2 0 45.2501 -37.7697 -145.85 - 26 2.3154 1115 1 1 43.0505 -37.5914 -174.45 - 26 212.44 1114 1 1 43.05 -37.5914 -174.456 - 26 127.992 712 1 0 42.93 -37.592 -175.85 - 26 122.507 1102 0 1 40.6262 -37.5477 -204.45 - 26 110.447 712 0 0 40.6176 -37.583 -205.85 - 26 154.034 1149 6 1 49.9002 -35.2744 -24.85 - 26 60.5183 1732 3 1 166.55 44.3095 -114.831 - 26 80.3412 1135 11 1 47.2498 -31.5617 125.535 - 26 130.418 1134 11 1 47.05 -31.5859 125.377 - 26 126.724 856 11 0 69.7874 -8.76647 123.75 -Number of digits in this event = 21 -Using G4ParticleGun ... -2.47902 LIN -e- +Number of tracker hits in this event: 87 + 26 135.023 1301 11 1 80.3243 -6.42258 125.55 + 26 225.326 868 11 0 80.3234 -6.42208 124.15 + 26 124.353 1301 10 1 80.3063 -6.414 95.55 + 26 108.855 868 10 0 80.3055 -6.41423 94.15 + 26 125.954 1301 9 1 80.289 -6.41854 65.55 + 26 136.959 868 9 0 80.2875 -6.41365 64.15 + 26 131.138 1301 8 1 80.2711 -6.31114 35.55 + 26 106.771 868 8 0 80.2717 -6.30451 34.15 + 26 141.527 1301 7 1 80.2536 -6.15657 5.55 + 26 103.868 869 7 0 80.2455 -6.15258 4.15 + 26 278.544 1300 6 1 80.075 -6.0625 -24.45 + 26 154.59 869 6 0 80.0699 -6.05408 -25.85 + 26 112.881 1299 5 1 79.966 -5.88184 -54.45 + 26 157.085 870 5 0 79.9636 -5.87332 -55.85 + 26 156.885 1299 4 1 79.909 -5.68251 -84.45 + 26 137.532 871 4 0 79.9138 -5.66941 -85.85 + 26 118.557 1299 3 1 80.0084 -5.38901 -114.45 + 26 112.746 873 3 0 80.0177 -5.37896 -115.85 + 26 148.4 1300 2 1 80.2254 -5.16366 -144.45 + 26 104.996 874 2 0 80.2359 -5.14705 -145.85 + 26 155.196 1301 1 1 80.4411 -4.80793 -174.45 + 26 95.199 876 1 0 80.4508 -4.80599 -175.85 + 26 288.583 1303 0 1 80.6636 -4.76447 -204.45 + 26 132.578 876 0 0 80.672 -4.75608 -205.85 + 26 1.19759 298 5 0 115.396 -120.544 -56.2499 + 26 45.3434 297 5 0 115.398 -120.55 -56.2485 + 26 41.6395 296 5 0 115.404 -120.75 -56.2283 + 26 219.931 867 3 0 81.9966 -6.53177 -115.85 + 26 75.4591 42 3 1 -171.75 175.497 -114.585 + 26 64.9356 970 0 0 75.2282 14.0735 -205.85 + 26 253.037 868 6 0 80.2164 -6.37577 -25.85 + 26 319.357 1301 5 1 80.263 -6.35159 -54.45 + 26 270.89 868 5 0 80.2609 -6.35313 -55.85 + 26 211.142 1300 4 1 80.1978 -6.37471 -84.45 + 26 99.9799 868 4 0 80.1938 -6.37443 -85.85 + 26 114.799 1300 3 1 80.1081 -6.36844 -114.45 + 26 228.65 868 3 0 80.0979 -6.37254 -115.85 + 26 204.382 1299 2 1 79.8952 -6.46999 -144.45 + 26 122.606 867 2 0 79.8817 -6.4717 -145.85 + 26 146.968 1297 1 1 79.5978 -6.51257 -174.45 + 26 145.855 867 1 0 79.5865 -6.51403 -175.85 + 26 111.168 1296 0 1 79.3561 -6.54623 -204.45 + 26 107.148 867 0 0 79.3479 -6.5492 -205.85 + 26 268.558 1301 4 1 80.25 -6.3147 -84.6215 + 26 25.3415 698 0 0 32.2429 -40.3993 -206.25 + 26 116.31 697 0 0 32.2357 -40.45 -206.189 + 26 20.4963 696 0 0 32.2527 -40.6503 -205.885 + 26 93.5572 1062 0 1 32.5762 -41.3622 -204.85 + 26 151.188 1063 0 1 32.65 -41.4685 -204.634 + 26 113.436 867 4 0 80.44 -6.47483 -85.85 + 26 447.509 1302 3 1 80.5905 -6.4094 -114.45 + 26 215.238 1304 2 1 80.8765 -6.22074 -144.45 + 26 119.92 869 2 0 80.8848 -6.2117 -145.85 + 26 127.701 1305 1 1 81.0503 -6.04315 -174.45 + 26 159.534 870 1 0 81.0666 -6.04613 -175.85 + 26 111.778 1306 0 1 81.4004 -6.10981 -204.45 + 26 121.565 869 0 0 81.4161 -6.10944 -205.85 + 26 36.0463 1001 3 1 20.3315 32.7886 -114.85 + 26 115.208 1000 3 1 20.2497 32.7735 -114.736 + 26 20.1462 999 3 1 20.0497 32.62 -114.805 + 26 47.9966 1062 3 0 18.0336 32.617 -115.85 + 26 340.779 990 3 1 18.1919 29.5881 -114.85 + 26 95.9082 862 2 0 80.1346 -7.59147 -145.85 + 26 103.08 1311 1 1 82.3117 -6.18617 -174.45 + 26 96.1903 868 1 0 82.358 -6.27649 -175.85 + 26 236.72 1317 0 1 83.5988 -7.32467 -204.45 + 26 188.165 862 0 0 83.4859 -7.55987 -205.85 + 26 28.2754 1222 1 1 64.65 6.14584 -174.593 + 26 80.6825 861 0 0 83.5308 -7.65014 -206.091 + 26 159.074 763 0 0 65.4521 -27.3843 -206.25 + 26 227.496 869 3 0 80.9012 -6.18746 -115.85 + 26 2.81833 870 3 0 81.0125 -6.04982 -116.244 + 26 57.9649 1352 2 1 90.6591 4.01782 -144.45 + 26 159.401 1353 2 1 90.75 3.88647 -144.579 + 26 3.09642 914 2 0 91.2345 2.8616 -145.85 + 26 99.9308 913 2 0 91.2397 2.85 -145.864 + 26 58.1132 912 2 0 91.3401 2.64974 -146.124 + 26 168.955 787 2 0 121.446 -22.4941 -146.25 + 26 59.8796 1511 2 1 122.432 -22.9473 -144.85 + 26 76.9898 1512 2 1 122.55 -22.9808 -144.677 + 26 165.125 1514 2 1 123 -23.2432 -144.45 + 26 141.288 782 2 0 123.473 -23.4854 -145.85 + 26 15.2297 781 2 0 123.601 -23.6501 -146.211 + 26 27.1401 793 2 0 143.201 -21.2902 -146.25 + 26 84.6259 794 2 0 143.222 -21.25 -146.159 + 26 189.724 1617 2 1 143.648 -20.8448 -144.85 + 26 17.1289 1618 2 1 143.75 -20.7552 -144.481 +Number of digits in this event: 46 +Using G4ParticleGun... +Particle energy: 5.61707 LIN +Particle: e- Event: 27 -Number of tracker hits in this event = 80 - 27 179.318 1365 9 1 93.2508 71.0455 65.55 - 27 31.5529 1254 9 0 93.2587 71.0497 64.15 - 27 94.3535 1255 9 0 93.2594 71.05 64.0318 - 27 213.457 1366 8 1 93.4964 71.1465 35.55 - 27 125.204 1255 8 0 93.5001 71.1455 34.15 - 27 133.135 1367 7 1 93.6658 71.0495 5.55 - 27 334.787 1254 7 0 93.6382 71.0489 4.15 - 27 118.797 1364 6 1 93.0751 70.9877 -24.45 - 27 442.075 1254 6 0 93.0372 70.9884 -25.85 - 27 101.512 1360 5 1 92.2753 71.0421 -54.45 - 27 134.289 1255 5 0 92.2395 71.0543 -55.85 - 27 109.14 1356 4 1 91.5381 71.3658 -84.45 - 27 100.028 1256 4 0 91.5176 71.39 -85.85 - 27 227.233 1354 3 1 91.1005 71.8326 -114.45 - 27 118.903 1258 3 0 91.0613 71.8414 -115.85 - 27 113.633 1350 2 1 90.1897 71.9531 -144.45 - 27 152.339 1346 1 1 89.3246 71.8655 -174.45 - 27 155.944 1259 1 0 89.2865 71.8748 -175.85 - 27 258.23 1342 0 1 88.5354 72.1126 -204.45 - 27 151.88 1260 0 0 88.4982 72.1228 -205.85 - 27 117.74 1343 0 1 88.6672 73.1637 -204.45 - 27 118.49 1265 0 0 88.0692 73.1288 -205.85 - 27 197.261 1262 0 0 88.6346 72.5088 -205.85 - 27 183.625 1261 0 0 88.6288 72.45 -205.972 - 27 617.242 1365 6 1 93.2666 70.8961 -24.45 - 27 113.981 1364 5 1 93.0577 70.7977 -54.45 - 27 100.501 1253 5 0 93.0504 70.8056 -55.85 - 27 109.595 1363 4 1 92.9336 70.9757 -84.45 - 27 123.18 1254 4 0 92.934 70.981 -85.85 - 27 99.661 1363 3 1 92.9368 71.0784 -114.45 - 27 141.984 1255 3 0 92.9117 71.0735 -115.85 - 27 92.4275 1361 2 1 92.4638 70.8988 -144.45 - 27 350.31 1254 2 0 92.4429 70.8721 -145.85 - 27 364.892 1359 1 1 92.016 70.2096 -174.45 - 27 154.62 1250 1 0 92.0101 70.1975 -175.85 - 27 128.275 1359 0 1 91.9792 69.8783 -204.45 - 27 108.757 1248 0 0 91.9673 69.8365 -205.85 - 27 114.926 1265 3 0 101.967 73.188 -116.25 - 27 393.317 1266 3 0 101.937 73.2501 -115.958 - 27 30.2592 1267 3 0 101.808 73.45 -116.081 - 27 96.9431 1759 3 0 -34.4743 171.95 -116.118 - 27 5.97358 1758 3 0 -34.6616 171.95 -115.864 - 27 77.0458 728 3 1 -34.2746 170.852 -114.85 - 27 141.678 729 3 1 -34.2499 170.724 -114.768 - 27 396.723 1237 5 0 85.8522 67.4673 -56.25 - 27 38.7089 1236 5 0 86.0381 67.4498 -55.8788 - 27 190.713 1308 5 0 120.246 81.7916 -56.25 - 27 55.2619 1162 4 0 84.5561 52.5766 -86.2499 - 27 100.365 1161 4 0 84.4782 52.45 -86.1314 - 27 64.0526 1323 4 1 84.6743 51.9738 -84.8499 - 27 90.149 1322 4 1 84.65 51.9263 -84.6318 - 27 100.929 1365 5 1 93.1571 70.9256 -54.45 - 27 97.5835 1254 5 0 93.1595 70.9315 -55.85 - 27 173.747 1365 4 1 93.2169 71.1069 -84.45 - 27 122.651 1255 4 0 93.2207 71.1157 -85.85 - 27 159.88 1365 3 1 93.3061 71.2922 -114.45 - 27 124.805 1256 3 0 93.3089 71.3009 -115.85 - 27 178.335 1366 2 1 93.389 71.433 -144.45 - 27 124.779 1256 2 0 93.3834 71.4433 -145.85 - 27 202.707 1365 1 1 93.3043 71.6831 -174.45 - 27 168.44 1258 1 0 93.3022 71.6958 -175.85 - 27 125.003 1365 0 1 93.2749 71.9911 -204.45 - 27 156.841 1259 0 0 93.2749 71.9965 -205.85 - 27 75.6458 1365 2 1 93.3499 71.4352 -144.599 - 27 8.26558 1364 2 1 93.1499 71.413 -144.825 - 27 349.798 1255 2 0 92.3142 71.2028 -145.85 - 27 224.159 1253 2 0 91.6785 70.85 -146.151 - 27 95.1951 1252 2 0 91.3403 70.65 -146.185 - 27 110.74 1251 2 0 91.0498 70.45 -146.166 - 27 172.379 1250 2 0 90.8928 70.25 -146.08 - 27 85.8847 1353 2 1 90.8368 69.6773 -144.85 - 27 214.953 1352 2 1 90.75 69.596 -144.537 - 27 8.98754 1347 2 1 89.4605 70.897 -144.85 - 27 74.7826 1346 2 1 89.4497 70.9022 -144.847 - 27 96.3768 1178 2 0 91.6902 55.8376 -146.25 - 27 82.3846 1177 2 0 91.7577 55.6499 -145.982 - 27 494.877 1355 2 1 91.2702 55.1962 -144.85 - 27 59.483 1257 1 0 93.4771 71.4977 -175.85 - 27 310.7 1366 4 1 93.4074 70.9259 -84.45 - 27 103.269 1364 0 1 92.9687 70.9602 -204.45 -Number of digits in this event = 42 -Using G4ParticleGun ... -3.0552 LIN -e- +Number of tracker hits in this event: 57 + 27 140.696 534 11 1 -73.1009 -22.561 125.55 + 27 135.86 787 11 0 -73.1011 -22.562 124.15 + 27 119.104 534 10 1 -73.1051 -22.5811 95.55 + 27 167.058 787 10 0 -73.1042 -22.582 94.15 + 27 125.358 534 9 1 -73.0807 -22.6009 65.55 + 27 135.995 787 9 0 -73.0795 -22.6022 64.15 + 27 108.806 534 8 1 -73.0537 -22.6333 35.55 + 27 138.726 787 8 0 -73.0517 -22.6354 34.15 + 27 163.975 535 7 1 -73.0115 -22.6769 5.55 + 27 135.779 786 7 0 -73.0121 -22.6795 4.15 + 27 101.77 535 6 1 -73.0184 -22.7326 -24.45 + 27 175.73 786 6 0 -73.0199 -22.735 -25.85 + 27 208.893 534 5 1 -73.0549 -22.7811 -54.45 + 27 183.671 786 5 0 -73.056 -22.7835 -55.85 + 27 209.975 534 4 1 -73.0748 -22.8347 -84.45 + 27 263.224 786 4 0 -73.075 -22.8373 -85.85 + 27 128.351 534 3 1 -73.0817 -22.8838 -114.45 + 27 99.5758 785 3 0 -73.0831 -22.8882 -115.85 + 27 102.501 534 2 1 -73.1188 -22.9827 -144.45 + 27 122.112 785 2 0 -73.1209 -22.9871 -145.85 + 27 141.408 534 1 1 -73.1686 -23.084 -174.45 + 27 109.854 784 1 0 -73.1692 -23.0911 -175.85 + 27 441.694 534 0 1 -73.1763 -23.2334 -204.45 + 27 320.306 784 0 0 -73.1759 -23.2438 -205.85 + 27 233.3 533 0 1 -73.25 -23.3812 -204.802 + 27 167.772 785 1 0 -73.1988 -23.05 -176.212 + 27 114.077 537 5 1 -72.5154 -23.1353 -54.85 + 27 229.103 535 5 1 -72.9451 -22.703 -54.45 + 27 32.2283 788 5 0 -72.8846 -22.3016 -55.8508 + 27 102.104 789 5 0 -72.8744 -22.25 -55.9546 + 27 53.9746 790 5 0 -72.7033 -22.05 -56.1495 + 27 30.0222 1003 5 0 -55.8454 20.8197 -56.25 + 27 90.5212 1004 5 0 -55.8739 20.85 -56.1742 + 27 320.416 620 5 1 -56.0473 21.5416 -54.8499 + 27 34.566 619 5 1 -56.05 21.5445 -54.8233 + 27 129.278 1005 5 0 -55.9563 21.2097 -55.85 + 27 102.731 1093 5 0 -73.5787 38.8024 -56.25 + 27 106.139 1092 5 0 -73.6784 38.65 -56.0339 + 27 190.564 1091 5 0 -73.7413 38.4499 -56.1067 + 27 167.654 533 5 1 -73.25 -22.7197 -54.4932 + 27 47.217 532 5 1 -73.4501 -22.8132 -54.7531 + 27 473.243 792 5 0 -74.762 -21.6228 -55.85 + 27 242.132 535 1 1 -72.9133 -22.8586 -174.45 + 27 326.893 537 0 1 -72.4936 -22.8541 -204.45 + 27 109.1 786 0 0 -72.4953 -22.8378 -205.85 + 27 48.6923 124 2 1 -155.241 59.4852 -144.45 + 27 269.785 125 2 1 -155.15 59.495 -144.493 + 27 365.186 538 0 1 -72.45 -22.8795 -204.575 + 27 121.636 786 1 0 -72.6114 -22.7021 -175.85 + 27 104.082 581 0 1 -63.6987 -19.5351 -204.45 + 27 98.1698 804 0 0 -64.0709 -19.1536 -205.85 + 27 14.3867 805 0 0 -64.1915 -19.05 -206.19 + 27 138.094 786 2 0 -72.8737 -22.6863 -145.85 + 27 368.718 852 0 0 30.5114 -9.62823 -206.25 + 27 18.5636 904 2 0 -89.027 1.02866 -146.25 + 27 89.054 535 11 1 -73.05 -22.4986 125.284 + 27 242.316 536 11 1 -72.85 -22.4581 125.334 +Number of digits in this event: 36 +Using G4ParticleGun... +Particle energy: 5.45162 LIN +Particle: e- Event: 28 -Number of tracker hits in this event = 77 - 28 196.201 618 10 1 -56.2695 -93.7467 95.55 - 28 109.044 432 10 0 -56.2709 -93.746 94.15 - 28 121.301 618 9 1 -56.3044 -93.73 65.55 - 28 198.362 432 9 0 -56.3026 -93.7307 64.15 - 28 108.662 619 8 1 -56.2499 -93.7539 35.55 - 28 217.84 431 8 0 -56.2444 -93.7548 34.15 - 28 175.595 619 7 1 -56.1333 -93.7587 5.55 - 28 119.283 431 7 0 -56.1283 -93.7597 4.15 - 28 118.871 620 6 1 -56.0142 -93.787 -24.45 - 28 114.744 431 6 0 -56.0107 -93.7872 -25.85 - 28 191.638 620 5 1 -55.9395 -93.7827 -54.45 - 28 226.339 431 5 0 -55.9349 -93.7793 -55.85 - 28 127.031 621 4 1 -55.8415 -93.7026 -84.45 - 28 139.851 432 4 0 -55.8354 -93.696 -85.85 - 28 111.35 621 3 1 -55.7156 -93.5655 -114.45 - 28 95.624 432 3 0 -55.7086 -93.5613 -115.85 - 28 464.638 622 2 1 -55.5674 -93.4723 -144.45 - 28 194.213 433 2 0 -55.5646 -93.47 -145.85 - 28 209.059 622 1 1 -55.4974 -93.4168 -174.45 - 28 154.461 433 1 0 -55.4979 -93.4119 -175.85 - 28 317.213 622 0 1 -55.5065 -93.3135 -204.45 - 28 120.487 434 0 0 -55.5053 -93.3061 -205.85 - 28 44.6291 1030 4 1 26.05 -123.521 -84.6052 - 28 161.282 1029 4 1 26.05 -123.536 -84.4815 - 28 350.99 626 5 1 -54.7735 -68.5757 -54.85 - 28 1.96344 623 0 1 -55.45 -93.4241 -204.461 - 28 379.557 431 2 0 -55.5924 -93.9267 -145.85 - 28 152.732 431 1 0 -55.6222 -93.9179 -175.85 - 28 106.585 621 0 1 -55.7525 -94.0244 -204.45 - 28 165.912 430 0 0 -55.7511 -94.0377 -205.85 - 28 161.42 426 2 0 -55.3964 -94.8651 -145.85 - 28 171.988 425 2 0 -55.4191 -94.95 -146.126 - 28 154.989 632 1 1 -53.5943 -92.5779 -174.451 - 28 258.529 436 1 0 -53.6467 -92.834 -175.85 - 28 97.9538 627 0 1 -54.6108 -97.4215 -204.451 - 28 159.312 414 0 0 -54.7071 -97.3352 -205.85 - 28 102.269 430 2 0 -55.5162 -93.9501 -146.128 - 28 341.48 619 5 1 -56.1277 -93.7996 -54.45 - 28 104.528 609 4 1 -58.1581 -94.529 -84.45 - 28 110.409 427 4 0 -58.3666 -94.5716 -85.8502 - 28 187.308 585 3 1 -62.9747 -94.8168 -114.45 - 28 219.112 426 3 0 -63.1514 -94.8913 -115.85 - 28 121.378 567 2 1 -66.5153 -96.2375 -144.45 - 28 123.287 419 2 0 -66.7434 -96.2911 -145.85 - 28 92.5088 541 1 1 -71.8213 -96.2639 -174.45 - 28 68.9572 540 1 1 -71.85 -96.2687 -174.699 - 28 130.809 419 1 0 -71.9848 -96.2871 -175.85 - 28 215.667 531 0 1 -73.6859 -97.8684 -204.45 - 28 41.723 410 0 0 -73.7558 -98.1372 -205.85 - 28 214.111 409 0 0 -73.7592 -98.15 -205.915 - 28 128.882 430 5 0 -55.9288 -94.044 -55.85 - 28 66.4323 641 4 1 -51.7378 -97.542 -84.4506 - 28 55.3265 642 4 1 -51.65 -97.6196 -84.6691 - 28 48.9833 410 4 0 -51.1334 -98.0847 -85.85 - 28 63.4558 409 4 0 -51.0558 -98.15 -86.0209 - 28 24.7011 709 3 1 -38.1029 -109.68 -114.45 - 28 80.7718 710 3 1 -38.0499 -109.674 -114.522 - 28 21.583 711 3 1 -37.85 -109.661 -114.793 - 28 196.997 352 3 0 -37.1243 -109.623 -115.85 - 28 113.849 827 2 1 -14.6125 -108.999 -144.45 - 28 23.6433 354 2 0 -14.303 -109.328 -145.85 - 28 94.7255 353 2 0 -14.2819 -109.35 -145.943 - 28 0.270797 423 2 0 -49.6361 -95.3507 -146.25 - 28 262.574 424 2 0 -49.6374 -95.35 -146.249 - 28 37.1391 638 2 1 -52.3905 -96.0234 -144.85 - 28 57.3328 637 2 1 -52.45 -96.0446 -144.821 - 28 65.3136 636 2 1 -52.65 -96.1994 -144.777 - 28 77.6666 635 2 1 -52.8501 -96.3608 -144.733 - 28 53.9899 634 2 1 -53.05 -96.5051 -144.723 - 28 234.211 633 2 1 -53.25 -96.6214 -144.716 - 28 89.5062 420 2 0 -53.7085 -96.1214 -145.85 - 28 103.1 421 2 0 -53.7692 -95.9499 -145.95 - 28 311.916 422 2 0 -53.7787 -95.75 -146.021 - 28 82.1094 418 2 0 -52.8468 -96.5359 -145.85 - 28 59.4246 417 2 0 -52.8394 -96.5501 -145.938 - 28 190.48 671 0 1 -45.8438 -119.458 -204.45 - 28 322.317 672 0 1 -45.6499 -119.024 -204.534 -Number of digits in this event = 42 -Using G4ParticleGun ... -8.73467 LIN -e- +Number of tracker hits in this event: 62 + 28 194.448 1326 10 1 85.3759 28.6156 95.55 + 28 142.974 1042 10 0 85.3759 28.6157 94.15 + 28 113.551 1326 9 1 85.378 28.6199 65.55 + 28 217.16 1042 9 0 85.3777 28.6203 64.15 + 28 144.724 1326 8 1 85.3779 28.6286 35.55 + 28 108.77 1042 8 0 85.3765 28.6286 34.15 + 28 107.713 1326 7 1 85.3458 28.6203 5.55 + 28 161.83 1042 7 0 85.3453 28.6199 4.15 + 28 97.2485 1326 6 1 85.3243 28.6148 -24.45 + 28 146.336 1042 6 0 85.3223 28.6152 -25.85 + 28 102.803 1326 5 1 85.279 28.6207 -54.45 + 28 120.157 1042 5 0 85.2765 28.6203 -55.85 + 28 120.888 1325 4 1 85.2076 28.6061 -84.45 + 28 106.561 1042 4 0 85.2031 28.6058 -85.85 + 28 111.144 1325 3 1 85.1073 28.6045 -114.45 + 28 354.327 1042 3 0 85.1017 28.6048 -115.85 + 28 133.926 1324 2 1 84.9772 28.6054 -144.45 + 28 210.544 1042 2 0 84.9714 28.6054 -145.85 + 28 131.126 1323 1 1 84.8456 28.604 -174.45 + 28 475.419 1042 1 0 84.8339 28.5951 -175.85 + 28 290.337 1322 0 1 84.5942 28.4127 -204.45 + 28 132.729 1041 0 0 84.5825 28.406 -205.85 + 28 62.0315 1353 8 1 90.75 110.166 35.3526 + 28 169.32 1324 0 1 84.9168 27.4386 -204.45 + 28 40.964 1325 0 1 85.05 27.5737 -204.729 + 28 198.607 1040 0 0 85.617 28.0998 -205.85 + 28 130.562 1151 0 0 98.56 50.2817 -206.25 + 28 142.091 1390 0 1 98.3349 50.2738 -204.85 + 28 29.9418 848 0 0 83.9556 -10.2528 -206.25 + 28 62.7656 984 1 0 15.6396 17.0483 -176.25 + 28 258.724 1326 4 1 85.3524 28.6867 -84.4501 + 28 132.846 1043 4 0 85.3761 28.6655 -85.85 + 28 166.883 1330 3 1 86.1401 28.9548 -114.45 + 28 110.822 1044 3 0 86.2368 28.9018 -115.85 + 28 133.758 1341 2 1 88.3803 27.8631 -144.45 + 28 143.986 1039 2 0 88.4409 27.926 -145.85 + 28 150.846 1349 1 1 89.8802 28.9779 -174.451 + 28 141.234 1044 1 0 89.8241 29.0122 -175.85 + 28 112.712 1342 0 1 88.6089 29.6955 -204.45 + 28 114.999 1048 0 0 88.521 29.7982 -205.85 + 28 305.362 1040 10 0 35.4095 28.149 93.75 + 28 7.91691 1039 10 0 35.3138 28.0499 93.9806 + 28 126.366 1044 4 0 85.5191 28.9174 -85.85 + 28 39.1941 1349 3 1 90.0069 33.5458 -114.451 + 28 48.0486 1350 3 1 90.15 33.4694 -114.684 + 28 20.2223 1065 3 0 90.8048 33.0787 -115.85 + 28 130.05 1064 3 0 90.8527 33.05 -115.94 + 28 38.9674 1398 2 1 99.8679 23.0262 -144.45 + 28 72.2197 1399 2 1 99.9501 22.9478 -144.505 + 28 89.462 1400 2 1 100.15 22.7669 -144.635 + 28 57.5283 1401 2 1 100.35 22.6003 -144.765 + 28 43.8908 1007 2 0 101.639 21.5316 -145.85 + 28 88.273 1006 2 0 101.738 21.45 -145.936 + 28 112.455 1005 2 0 101.96 21.2499 -146.137 + 28 39.4384 644 2 0 161.206 -51.1956 -146.25 + 28 69.5986 643 2 0 161.242 -51.25 -146.22 + 28 83.8173 642 2 0 161.377 -51.45 -146.115 + 28 76.1322 641 2 0 161.507 -51.6502 -146.014 + 28 54.3986 640 2 0 161.636 -51.8501 -145.913 + 28 52.0547 1714 2 1 163.046 -54.4385 -144.85 + 28 155.52 1715 2 1 163.15 -54.627 -144.778 + 28 166.543 1716 2 1 163.35 -55.0546 -144.595 +Number of digits in this event: 33 +Using G4ParticleGun... +Particle energy: 3.62124 LIN +Particle: e- Event: 29 -Number of tracker hits in this event = 119 - 29 191.346 288 8 1 -122.55 64.4493 35.55 - 29 263.079 1221 8 0 -122.55 64.4485 34.15 - 29 110.986 287 7 1 -122.557 64.4306 5.55 - 29 137.089 1221 7 0 -122.557 64.4302 4.15 - 29 162.808 288 6 1 -122.548 64.4196 -24.45 - 29 109.747 1221 6 0 -122.547 64.4192 -25.85 - 29 128.936 288 5 1 -122.522 64.4136 -54.45 - 29 118.495 1221 5 0 -122.521 64.4129 -55.85 - 29 146.002 288 4 1 -122.493 64.4003 -84.45 - 29 160.212 1221 4 0 -122.493 64.3987 -85.85 - 29 119.021 288 3 1 -122.481 64.3678 -114.45 - 29 176.616 1221 3 0 -122.479 64.3665 -115.85 - 29 99.6866 288 2 1 -122.433 64.3362 -144.45 - 29 124.743 1221 2 0 -122.432 64.3342 -145.85 - 29 113.31 288 1 1 -122.411 64.2921 -174.45 - 29 151.55 1221 1 0 -122.411 64.2897 -175.85 - 29 141.233 288 0 1 -122.407 64.241 -204.45 - 29 118.048 1220 0 0 -122.405 64.2382 -205.85 - 29 299.91 89 0 1 -162.287 36.8559 -204.45 - 29 11.061 1243 7 0 -62.5697 68.8464 4.15 - 29 237.66 1214 4 0 -33.4551 63.046 -86.25 - 29 277.665 320 5 1 -116.013 68.1467 -54.45 - 29 249.39 1240 5 0 -116.232 68.1465 -55.85 - 29 149.279 306 4 1 -118.763 67.5083 -84.45 - 29 258.307 1237 4 0 -119.028 67.5633 -85.85 - 29 0.383901 279 3 1 -124.349 70.0693 -114.45 - 29 121.565 278 3 1 -124.35 70.0692 -114.451 - 29 52.0533 277 3 1 -124.55 70.0412 -114.699 - 29 282.607 1249 3 0 -125.468 69.906 -115.85 - 29 124.804 1248 3 0 -125.701 69.85 -116.145 - 29 186.412 169 2 1 -146.232 64.7784 -144.45 - 29 0.552909 168 2 1 -146.35 64.4695 -144.848 - 29 16.0019 1218 2 0 -146.62 63.6967 -145.85 - 29 92.365 1217 2 0 -146.636 63.65 -145.91 - 29 67.3696 1216 2 0 -146.686 63.45 -146.156 - 29 146.261 140 1 1 -152.066 40.7098 -174.45 - 29 67.5951 1098 1 0 -151.852 39.7749 -175.85 - 29 61.4202 1097 1 0 -151.825 39.65 -176.028 - 29 69.8287 161 0 1 -147.867 19.1946 -204.45 - 29 40.0287 162 0 1 -147.75 19.1309 -204.702 - 29 67.8602 994 0 0 -147.358 18.9046 -205.85 - 29 42.3982 993 0 0 -147.276 18.8499 -206.104 - 29 21.3183 1158 3 0 -99.3201 51.7242 -116.25 - 29 107.555 320 4 1 -116.051 67.5656 -84.4501 - 29 104.831 1241 4 0 -116.35 68.3584 -85.8502 - 29 193.733 1242 4 0 -116.382 68.45 -86.0097 - 29 68.3857 292 3 1 -121.713 84.255 -114.45 - 29 61.0556 291 3 1 -121.75 84.3647 -114.658 - 29 3.56151 1324 3 0 -121.896 85.0416 -115.85 - 29 131.337 1325 3 0 -121.898 85.05 -115.865 - 29 165.846 285 2 1 -122.992 97.3138 -144.45 - 29 51.1491 1389 2 0 -123.061 98.0709 -145.85 - 29 86.5019 1390 2 0 -123.064 98.15 -145.98 - 29 66.1252 282 1 1 -123.615 115.531 -174.45 - 29 42.2897 283 1 1 -123.55 115.611 -174.696 - 29 39.3358 1479 1 0 -123.194 116.095 -175.85 - 29 97.2754 1480 1 0 -123.15 116.15 -175.969 - 29 546.513 284 0 1 -123.215 117.453 -204.45 - 29 185.771 283 0 1 -123.35 116.376 -204.671 - 29 72.0352 1466 0 0 -124.747 113.523 -205.85 - 29 75.1306 1465 0 0 -124.826 113.35 -205.979 - 29 42.8035 1464 0 0 -124.896 113.15 -206.143 - 29 178.075 1416 0 0 -125.84 103.379 -206.25 - 29 154.201 1486 0 0 -123.387 117.524 -205.85 - 29 16.0661 1487 0 0 -123.364 117.55 -205.896 - 29 94.3037 1385 2 0 -123.073 97.187 -145.85 - 29 337.416 1565 2 0 -170.9 133.205 -146.25 - 29 82.9753 42 2 1 -171.625 133.312 -144.85 - 29 261.737 43 2 1 -171.55 133.501 -144.605 - 29 6.29599 44 2 1 -171.35 133.78 -144.62 - 29 130.353 1566 2 0 -171.526 133.387 -145.85 - 29 48.0144 179 0 1 -144.287 149.32 -204.45 - 29 63.346 180 0 1 -144.15 149.286 -204.533 - 29 58.6045 181 0 1 -143.95 149.227 -204.643 - 29 61.3208 182 0 1 -143.75 149.193 -204.737 - 29 18.6919 183 0 1 -143.55 149.189 -204.816 - 29 185.235 1642 0 0 -141.195 148.565 -205.85 - 29 210.54 1641 0 0 -140.629 148.55 -206.091 - 29 50.6013 1640 0 0 -139.993 148.35 -206.223 - 29 32.012 1253 3 0 -163.74 70.7289 -116.25 - 29 85.6409 1252 3 0 -163.752 70.6498 -116.139 - 29 95.4227 1251 3 0 -163.669 70.45 -116.069 - 29 53.2143 1250 3 0 -163.498 70.25 -115.947 - 29 92.0454 96 3 1 -160.936 67.3345 -114.85 - 29 33.4903 1198 3 0 -155.595 59.6554 -115.85 - 29 231.348 1197 3 0 -155.591 59.6493 -115.851 - 29 41.4153 1679 3 0 -175.069 156.081 -116.25 - 29 202.245 1680 3 0 -175.072 156.15 -116.235 - 29 97.7449 287 8 1 -122.55 64.4491 35.5146 - 29 168.581 271 7 1 -125.918 61.8595 5.55 - 29 155.374 1208 7 0 -125.624 61.7442 4.14989 - 29 151.625 303 6 1 -119.463 59.2061 -24.45 - 29 6.77558 1194 6 0 -119.311 58.8556 -25.85 - 29 132.181 1193 6 0 -119.309 58.85 -25.8724 - 29 134.057 318 5 1 -116.467 51.356 -54.45 - 29 28.4633 1154 5 0 -116.116 50.8817 -55.85 - 29 158.407 1153 5 0 -116.092 50.85 -55.94 - 29 100.931 362 4 1 -107.699 41.0334 -84.45 - 29 28.3124 363 4 1 -107.55 40.9715 -84.7458 - 29 131.521 1103 4 0 -106.978 40.7251 -85.8506 - 29 11.852 1102 4 0 -106.791 40.65 -86.2126 - 29 27.0944 438 3 1 -92.4312 35.4878 -114.45 - 29 81.5757 439 3 1 -92.35 35.4455 -114.524 - 29 73.9855 440 3 1 -92.15 35.356 -114.692 - 29 115.95 1073 3 0 -90.7784 34.7451 -115.85 - 29 104.503 1072 3 0 -90.5536 34.65 -116.044 - 29 62.3692 606 2 1 -58.7969 19.649 -144.45 - 29 82.4769 607 2 1 -58.6499 19.5636 -144.58 - 29 60.4762 608 2 1 -58.45 19.439 -144.762 - 29 113.54 992 2 0 -57.3076 18.6485 -145.85 - 29 71.8243 991 2 0 -57.0173 18.45 -146.1 - 29 8.43735 792 1 1 -21.4555 -1.30157 -174.45 - 29 119.002 793 1 1 -21.45 -1.30848 -174.466 - 29 1.09971 891 1 0 -20.9868 -1.84764 -175.85 - 29 113.209 890 1 0 -20.9847 -1.85004 -175.856 - 29 137.671 836 0 1 -12.7328 -10.9516 -204.451 - 29 213.218 842 0 0 -12.8137 -11.4841 -205.85 - 29 68.2466 143 3 1 -151.55 66.4095 -114.685 - 29 8.29698 1243 3 0 -152.402 68.65 -116.05 -Number of digits in this event = 49 -Using G4ParticleGun ... -3.01724 LIN -e- +Number of tracker hits in this event: 93 + 29 92.7893 1350 10 1 90.3383 -37.6521 95.55 + 29 131.187 711 10 0 90.3393 -37.6508 94.15 + 29 180.659 1351 9 1 90.3667 -37.6278 65.55 + 29 125.426 712 9 0 90.369 -37.6269 64.15 + 29 145.894 1351 8 1 90.3729 -37.6139 35.55 + 29 107.707 712 8 0 90.3744 -37.6099 34.15 + 29 338.575 1351 7 1 90.4134 -37.5273 5.55 + 29 128.511 712 7 0 90.4102 -37.4699 4.15 + 29 110.835 1350 6 1 90.3308 -36.2368 -24.45 + 29 127.503 719 6 0 90.2808 -36.1697 -25.85 + 29 51.5574 1346 5 1 89.2521 -34.7485 -54.45 + 29 96.1779 1345 5 1 89.25 -34.745 -54.5226 + 29 133.747 726 5 0 89.2082 -34.6818 -55.85 + 29 129.847 1341 4 1 88.3071 -33.3928 -84.45 + 29 116.405 733 4 0 88.2619 -33.3161 -85.85 + 29 129.492 1336 3 1 87.3468 -31.6611 -114.45 + 29 101.651 742 3 0 87.2894 -31.568 -115.85 + 29 117.165 1329 2 1 85.974 -29.7336 -144.45 + 29 152.3 752 2 0 85.8962 -29.6228 -145.85 + 29 116.656 1321 1 1 84.303 -27.2807 -174.45 + 29 152.459 764 1 0 84.2131 -27.2291 -175.85 + 29 111.175 1310 0 1 82.0779 -25.6445 -204.45 + 29 1.09274 1309 0 1 82.05 -25.6229 -204.843 + 29 117.475 772 0 0 81.9753 -25.5664 -205.85 + 29 62.1345 245 1 0 -19.0645 -130.95 -176.102 + 29 212.213 1332 2 1 86.6111 -30.6542 -144.45 + 29 123.972 745 2 0 86.6071 -30.8992 -145.85 + 29 222.607 1317 1 1 83.5241 -31.2774 -174.45 + 29 27.6667 1316 1 1 83.45 -30.6595 -174.778 + 29 3.21994 754 1 0 82.68 -29.0603 -175.85 + 29 174.365 755 1 0 82.6749 -29.0495 -175.857 + 29 71.274 756 1 0 82.5539 -28.85 -176.007 + 29 34.0679 757 1 0 82.4658 -28.65 -176.141 + 29 145.069 1193 0 1 58.6789 -2.72189 -204.45 + 29 83.0978 1194 0 1 58.85 -2.97265 -204.733 + 29 34.5453 883 0 0 58.9745 -3.39123 -205.85 + 29 89.0963 882 0 0 58.979 -3.45 -205.956 + 29 100.429 814 0 0 57.5342 -17.0809 -206.25 + 29 103.754 813 0 0 57.4792 -17.25 -206.085 + 29 90.7717 812 0 0 57.4963 -17.451 -206.098 + 29 358.197 692 0 0 49.1901 -41.5303 -206.25 + 29 147.811 1331 2 1 86.45 -30.531 -144.707 + 29 12.7374 749 2 0 85.6031 -30.0622 -145.85 + 29 147.941 750 2 0 85.5799 -30.05 -145.879 + 29 189.163 1335 3 1 87.1105 -31.8647 -114.45 + 29 16.3402 1723 1 1 164.918 30.3167 -174.85 + 29 120.885 1724 1 1 164.95 30.3128 -174.811 + 29 194.773 1351 4 1 90.4569 -37.5149 -84.45 + 29 190.671 712 4 0 90.4644 -37.5234 -85.85 + 29 123.324 1351 3 1 90.515 -37.5294 -114.45 + 29 105.717 712 3 0 90.4974 -37.5414 -115.85 + 29 130.334 1345 1 1 89.146 -38.1354 -174.45 + 29 116.094 709 1 0 89.0511 -38.144 -175.85 + 29 112.957 1334 0 1 87.0442 -38.4258 -204.45 + 29 108.052 707 0 0 86.9138 -38.4981 -205.85 + 29 127.36 898 10 1 -0.323933 -93.9657 95.55 + 29 200.596 899 10 1 -0.249945 -93.7516 95.5496 + 29 175.609 718 7 0 147.435 -36.2676 3.75 + 29 27.2508 727 0 0 50.4582 -34.5206 -206.25 + 29 79.7663 856 0 0 49.9408 -8.77014 -206.25 + 29 161.65 855 0 0 49.9035 -8.85 -206.11 + 29 130.86 1350 4 1 90.35 -37.5032 -84.6103 + 29 138.729 711 4 0 89.89 -37.6753 -85.85 + 29 68.5863 1281 3 1 76.3778 -40.3558 -114.45 + 29 96.6014 1280 3 1 76.25 -40.3029 -114.529 + 29 57.2277 1279 3 1 76.05 -40.2278 -114.646 + 29 86.376 1278 3 1 75.85 -40.1555 -114.746 + 29 3.92914 1277 3 1 75.65 -40.0846 -114.843 + 29 78.7023 703 3 0 73.4381 -39.3218 -115.85 + 29 275.005 704 3 0 73.2279 -39.2497 -115.933 + 29 3.91813 1046 2 1 29.2681 -30.9433 -144.45 + 29 56.8157 1045 2 1 29.25 -30.9367 -144.462 + 29 72.6747 1044 2 1 29.05 -30.8658 -144.591 + 29 72.5978 1043 2 1 28.85 -30.7963 -144.729 + 29 182.944 751 2 0 27.0151 -29.8498 -145.864 + 29 30.4939 883 1 1 -3.4236 -10.5206 -174.45 + 29 136.053 882 1 1 -3.45 -10.5633 -174.507 + 29 70.5665 841 1 0 -3.86724 -11.6956 -175.85 + 29 64.646 840 1 0 -3.9092 -11.8501 -176.043 + 29 72.3042 869 0 1 -6.11731 -32.1514 -204.45 + 29 33.513 870 0 1 -6.04999 -32.1534 -204.722 + 29 129.633 738 0 0 -5.83325 -32.4007 -205.85 + 29 40.7033 867 0 0 -4.86457 -6.57701 -206.25 + 29 70.1571 868 0 0 -4.84083 -6.45 -206.17 + 29 88.446 869 0 0 -4.8221 -6.25 -206.007 + 29 12.35 870 0 0 -4.92379 -6.05 -205.865 + 29 42.4786 862 0 1 -7.54841 -3.36536 -204.85 + 29 85.7458 861 0 1 -7.65 -3.25319 -204.827 + 29 55.5889 860 0 1 -7.85 -3.04511 -204.791 + 29 49.6195 859 0 1 -8.05 -2.91871 -204.784 + 29 116.726 889 0 0 -9.57764 -2.22335 -205.85 + 29 16.3521 888 0 0 -9.69542 -2.25 -206.193 + 29 107.045 737 0 0 -5.79129 -32.45 -206.126 +Number of digits in this event: 38 +Using G4ParticleGun... +Particle energy: 8.04238 LIN +Particle: e- Event: 30 -Number of tracker hits in this event = 120 - 30 115.572 1204 11 1 60.8624 -2.52892 125.55 - 30 196.064 887 11 0 60.864 -2.52839 124.15 - 30 117.738 1204 10 1 60.8923 -2.52762 95.55 - 30 129.496 887 10 0 60.895 -2.52589 94.15 - 30 152.305 1204 9 1 60.9556 -2.49773 65.55 - 30 121.95 887 9 0 60.9572 -2.49749 64.15 - 30 481.946 1204 8 1 60.9901 -2.49452 35.55 - 30 245.439 887 8 0 60.9912 -2.49687 34.15 - 30 169.917 1204 7 1 61.0033 -2.53731 5.55 - 30 109.987 887 7 0 61.0008 -2.53286 4.15 - 30 107.595 1204 6 1 60.9791 -2.44145 -24.45 - 30 249.794 888 6 0 60.9698 -2.43985 -25.85 - 30 111.867 1203 5 1 60.8138 -2.38798 -54.45 - 30 118.183 888 5 0 60.8013 -2.39004 -55.85 - 30 99.4904 1202 4 1 60.5193 -2.41183 -84.45 - 30 227.755 888 4 0 60.5072 -2.41346 -85.85 - 30 97.5066 1201 3 1 60.2624 -2.39183 -114.45 - 30 115.673 888 3 0 60.2502 -2.38858 -115.85 - 30 107.492 1199 2 1 60.0387 -2.33031 -144.45 - 30 152.218 888 2 0 60.0258 -2.32513 -145.85 - 30 122.362 1198 1 1 59.8127 -2.20148 -174.45 - 30 169.988 889 1 0 59.8015 -2.19474 -175.85 - 30 124.338 1197 0 1 59.5496 -2.05428 -204.45 - 30 122.722 890 0 0 59.5376 -2.04645 -205.85 - 30 85.9349 1144 0 0 131.915 48.85 -205.933 - 30 32.2964 947 0 0 34.4997 9.65 -206.038 - 30 11.8216 944 0 0 34.1968 9.05 -205.966 - 30 150.463 1200 3 1 60.1016 -2.45027 -114.45 - 30 305.97 886 3 0 60.0561 -2.68 -115.85 - 30 57.7831 885 3 0 59.8946 -2.85 -116.224 - 30 35.5344 902 3 0 3.52528 0.566315 -116.25 - 30 155.313 903 3 0 3.53167 0.65 -116.166 - 30 316.25 904 3 0 3.3925 0.85 -116.108 - 30 158.561 888 8 0 60.9707 -2.4112 34.15 - 30 92.4487 1202 7 1 60.4838 -0.832906 5.55 - 30 139.208 896 7 0 60.4487 -0.745652 4.15 - 30 126.472 1199 6 1 59.9083 1.13163 -24.45 - 30 128.421 906 6 0 59.96 1.25121 -25.8502 - 30 410.827 1204 5 1 60.9726 3.63032 -54.45 - 30 128.001 918 5 0 61.0519 3.74241 -55.85 - 30 124.751 1212 4 1 62.4911 6.01754 -84.45 - 30 120.259 930 4 0 62.5391 6.11538 -85.85 - 30 123.503 1216 3 1 63.4346 8.17119 -114.45 - 30 119.548 940 3 0 63.4731 8.23143 -115.851 - 30 128.869 1220 2 1 64.1558 9.39676 -144.45 - 30 155.368 947 2 0 64.2414 9.52955 -145.85 - 30 113.724 1229 1 1 65.8606 12.446 -174.45 - 30 70.8225 962 1 0 66.0712 12.6237 -175.85 - 30 72.068 963 1 0 66.1033 12.65 -176.057 - 30 304.709 1251 0 1 70.3297 16.5292 -204.45 - 30 111.017 983 0 0 70.5783 16.7014 -205.85 - 30 162.755 929 4 0 62.566 6.05 -86.0464 - 30 256.38 928 4 0 62.5889 5.85 -86.0518 - 30 61.4284 927 4 0 62.5593 5.65 -86.1126 - 30 29.4239 977 4 0 37.6293 15.5072 -86.25 - 30 135.974 922 4 1 4.57377 5.78398 -84.8498 - 30 107.926 921 4 1 4.45 5.68421 -84.7258 - 30 158.976 915 5 0 60.7212 3.2409 -55.8501 - 30 68.5454 916 5 0 60.6928 3.25004 -55.9778 - 30 7.46953 914 5 0 60.6058 3.05 -56.2391 - 30 8.39657 1175 0 1 55.2428 15.2603 -204.451 - 30 107.43 1176 0 1 55.2501 15.2766 -204.484 - 30 161.598 977 0 0 56.1424 15.4802 -205.85 - 30 200.672 1206 7 1 61.262 -2.3066 5.55 - 30 98.9584 888 7 0 61.2603 -2.30469 4.15 - 30 112.126 1205 6 1 61.1746 -2.26633 -24.45 - 30 154.547 887 5 0 60.9795 -2.45932 -55.85 - 30 306.829 1204 4 1 60.89 -2.40698 -84.45 - 30 18.808 887 4 0 60.8869 -2.45 -86.0686 - 30 148.324 1199 3 1 59.9558 -1.58054 -114.45 - 30 135.674 891 3 0 60.1052 -1.77584 -115.85 - 30 125.018 1203 2 1 60.6863 -5.72974 -144.45 - 30 15.0173 871 2 0 61.228 -5.8415 -145.85 - 30 96.8718 870 2 0 61.2547 -5.85 -145.924 - 30 282.175 1251 1 1 70.3958 -11.2344 -174.45 - 30 104.597 831 1 0 70.3758 -13.709 -175.85 - 30 90.0482 830 1 0 70.3831 -13.85 -175.921 - 30 62.6633 829 1 0 70.4076 -14.05 -176 - 30 69.7872 828 1 0 70.4385 -14.25 -176.09 - 30 27.6481 827 1 0 70.4713 -14.4509 -176.191 - 30 69.6291 1228 0 1 65.6953 -53.3982 -204.45 - 30 116.785 1229 0 1 65.85 -53.3029 -204.616 - 30 30.9185 637 0 0 67.0377 -52.4972 -205.85 - 30 151.093 638 0 0 67.1038 -52.45 -205.938 - 30 31.2486 639 0 0 67.3283 -52.25 -206.149 - 30 128.572 768 0 0 61.1478 -26.4418 -206.25 - 30 275.946 769 0 0 61.0099 -26.2495 -205.919 - 30 167.684 1203 0 1 60.6908 -24.7308 -204.85 - 30 272.246 1204 0 1 60.85 -24.4171 -204.498 - 30 455.364 779 0 0 61.2397 -24.1931 -205.85 - 30 36.9766 778 0 0 61.374 -24.25 -206.023 - 30 21.5889 1210 0 1 62.1344 -26.8021 -204.45 - 30 137.564 1209 0 1 62.05 -26.8076 -204.539 - 30 56.1704 1208 0 1 61.85 -26.8482 -204.702 - 30 15.2636 1207 0 1 61.6497 -26.9107 -204.825 - 30 106.862 892 3 0 59.3075 -1.63392 -115.85 - 30 45.7551 1204 3 1 60.9817 -3.19192 -114.45 - 30 280.963 1202 2 1 60.5769 -2.48086 -144.467 - 30 193.666 887 2 0 60.5754 -2.55088 -145.851 - 30 22.6824 1209 1 1 62.0149 -4.79284 -174.45 - 30 127.076 1210 1 1 62.05 -4.83324 -174.547 - 30 93.5723 873 1 0 62.5758 -5.32849 -175.85 - 30 21.4872 872 1 0 62.7002 -5.45 -176.162 - 30 11.2751 1263 0 1 72.8383 -13.8876 -204.45 - 30 227.585 1264 0 1 72.85 -13.8953 -204.467 - 30 142.393 827 0 0 73.3275 -14.5493 -205.85 - 30 28.6575 826 0 0 73.4065 -14.65 -206.126 - 30 91.0768 799 0 0 69.7351 -20.1157 -206.25 - 30 48.4001 798 0 0 69.6616 -20.25 -205.92 - 30 408.628 1248 0 1 69.6571 -20.5309 -204.85 - 30 158.903 1249 0 1 69.85 -20.788 -204.553 - 30 114.281 1250 0 1 70.0507 -20.8834 -204.598 - 30 133.281 1252 0 1 70.4504 -21.1005 -204.601 - 30 180.724 1253 0 1 70.6501 -21.176 -204.595 - 30 9.26459 1391 9 1 98.4405 146.416 65.15 - 30 101.372 1201 1 1 60.4212 -2.54592 -174.45 - 30 110.559 887 1 0 60.3625 -2.54738 -175.85 - 30 103.571 1193 0 1 58.7386 -2.5183 -204.45 - 30 102.398 885 0 0 58.8881 -2.91874 -205.85 - 30 6.64551 1240 4 0 158.55 68.1422 -86.25 -Number of digits in this event = 62 -Using G4ParticleGun ... -5.72409 LIN -e- +Number of tracker hits in this event: 126 + 30 133.51 389 7 1 -102.326 -107.699 5.55 + 30 185.747 362 7 0 -102.327 -107.698 4.15 + 30 148.597 388 6 1 -102.356 -107.68 -24.45 + 30 279.663 362 6 0 -102.358 -107.68 -25.85 + 30 90.5336 388 5 1 -102.391 -107.68 -54.45 + 30 519.561 362 5 0 -102.394 -107.678 -55.85 + 30 138.38 388 4 1 -102.442 -107.648 -84.45 + 30 119.902 362 4 0 -102.44 -107.644 -85.85 + 30 160.89 388 3 1 -102.364 -107.567 -114.45 + 30 131.474 362 3 0 -102.356 -107.566 -115.85 + 30 270.08 389 2 1 -102.216 -107.563 -144.45 + 30 218.566 362 2 0 -102.211 -107.561 -145.85 + 30 138.077 390 1 1 -102.116 -107.496 -174.45 + 30 134.887 363 1 0 -102.113 -107.487 -175.85 + 30 145.659 390 0 1 -102.027 -107.308 -204.45 + 30 109.02 364 0 0 -102.023 -107.295 -205.85 + 30 46.3015 388 2 1 -102.45 -107.711 -144.45 + 30 62.6196 390 2 1 -102.15 -107.865 -144.665 + 30 67.7912 391 2 1 -101.95 -107.845 -144.726 + 30 50.1851 392 2 1 -101.75 -107.841 -144.79 + 30 2.10232 393 2 1 -101.55 -107.835 -144.847 + 30 144.288 363 2 0 -98.2932 -107.55 -145.987 + 30 49.5902 364 2 0 -97.936 -107.35 -146.152 + 30 168.805 574 2 0 -68.8193 -65.0946 -146.25 + 30 375.205 459 2 0 -96.155 -88.2309 -146.25 + 30 234.419 387 2 1 -102.603 -107.524 -144.45 + 30 32.8223 371 2 0 -102.994 -105.845 -145.85 + 30 72.4922 372 2 0 -103.013 -105.75 -145.937 + 30 57.9604 373 2 0 -103.079 -105.55 -146.117 + 30 110.629 388 7 1 -102.35 -107.68 5.4028 + 30 228.907 389 5 1 -102.324 -107.663 -54.4503 + 30 118.786 406 4 1 -98.8299 -105.707 -84.45 + 30 104.873 373 4 0 -98.6877 -105.416 -85.85 + 30 19.1962 374 4 0 -98.6538 -105.35 -86.1917 + 30 159.851 421 3 1 -95.9469 -99.8249 -114.45 + 30 7.63004 402 3 0 -95.824 -99.5532 -115.85 + 30 114.333 403 3 0 -95.8225 -99.55 -115.866 + 30 127.19 433 2 1 -93.4956 -94.1255 -144.45 + 30 130.431 431 2 0 -93.3181 -93.8253 -145.85 + 30 12.7438 432 2 0 -93.2724 -93.75 -146.21 + 30 92.6889 451 1 1 -89.7064 -88.0875 -174.45 + 30 31.6173 452 1 1 -89.65 -88.0198 -174.742 + 30 117.227 461 1 0 -89.4423 -87.7748 -175.85 + 30 245.29 478 0 1 -84.3095 -81.6146 -204.45 + 30 11.205 479 0 1 -84.25 -81.5116 -204.811 + 30 130.003 494 0 0 -84.072 -81.1996 -205.85 + 30 387.966 363 5 0 -102.179 -107.55 -56.0406 + 30 14.7371 408 4 1 -98.3755 -102.374 -84.45 + 30 173.431 409 4 1 -98.3499 -102.357 -84.5082 + 30 156.039 390 4 0 -97.6778 -102.057 -85.85 + 30 28.6213 484 3 1 -83.1497 -95.6651 -114.45 + 30 67.6513 485 3 1 -83.05 -95.6547 -114.488 + 30 52.6144 486 3 1 -82.8499 -95.6356 -114.562 + 30 46.5407 487 3 1 -82.65 -95.6295 -114.622 + 30 75.4649 488 3 1 -82.45 -95.6445 -114.66 + 30 76.477 489 3 1 -82.25 -95.6571 -114.696 + 30 42.6908 490 3 1 -82.05 -95.6771 -114.729 + 30 55.8963 491 3 1 -81.8494 -95.6934 -114.778 + 30 33.478 492 3 1 -81.65 -95.7168 -114.831 + 30 521.643 418 3 0 -77.2818 -96.3877 -115.85 + 30 46.2028 417 3 0 -75.8014 -96.55 -116.209 + 30 13.0552 174 3 0 34.9115 -145.332 -116.25 + 30 114.073 173 3 0 34.935 -145.35 -116.199 + 30 142.828 1078 3 1 35.682 -145.697 -114.85 + 30 58.0594 1079 3 1 35.85 -145.773 -114.614 + 30 11.0416 1073 3 1 34.85 -146.738 -114.484 + 30 82.535 1072 3 1 34.6497 -146.852 -114.503 + 30 59.9445 1631 2 1 146.35 -115.29 -144.466 + 30 27.0778 1632 2 1 146.551 -115.333 -144.494 + 30 103.176 334 1 1 -113.302 -49.4489 -174.45 + 30 256.843 388 0 1 -102.464 -107.726 -204.45 + 30 196.455 362 0 0 -102.481 -107.747 -205.85 + 30 68.8675 361 0 0 -102.483 -107.75 -206.004 + 30 28.7296 143 0 0 -113.475 -151.35 -205.887 + 30 36.6268 331 0 1 -113.789 -150.795 -204.85 + 30 45.84 141 0 0 -112.389 -151.772 -205.85 + 30 241.62 389 6 1 -102.33 -107.702 -24.45 + 30 106.011 361 6 0 -102.426 -107.75 -25.8645 + 30 95.2978 384 5 1 -103.316 -108.141 -54.45 + 30 409.971 360 5 0 -102.897 -108.025 -55.85 + 30 3.06394 419 4 1 -96.3448 -105.618 -84.4501 + 30 129.334 418 4 1 -96.35 -105.624 -84.4595 + 30 96.0409 367 4 0 -97.0596 -106.568 -85.85 + 30 99.1407 366 4 0 -97.1958 -106.75 -86.0617 + 30 36.056 365 4 0 -97.3242 -106.95 -86.198 + 30 171.478 269 3 1 -126.152 -149.102 -114.45 + 30 19.7575 268 3 1 -126.35 -149.349 -114.797 + 30 35.3701 149 3 0 -127.157 -150.265 -115.85 + 30 95.3234 148 3 0 -127.223 -150.35 -115.937 + 30 40.6046 147 3 0 -127.352 -150.55 -116.144 + 30 170.581 178 2 1 -144.5 -179.737 -144.45 + 30 115.673 1 2 0 -144.624 -179.795 -145.85 + 30 94.072 177 2 1 -144.55 -179.868 -144.463 + 30 95.7247 176 2 1 -144.75 -179.875 -144.466 + 30 278.258 383 5 1 -103.429 -108.105 -54.5682 + 30 93.1966 527 5 0 -141.365 -74.5958 -56.25 + 30 82.3392 528 5 0 -141.463 -74.45 -56.1369 + 30 65.3468 529 5 0 -141.571 -74.25 -55.984 + 30 159.886 189 5 1 -142.152 -72.9201 -54.85 + 30 70.1982 188 5 1 -142.35 -72.5451 -54.5765 + 30 138.871 386 7 0 -178.592 -102.885 3.75006 + 30 117.738 378 5 1 -104.496 -108.348 -54.45 + 30 110.166 359 5 0 -104.678 -108.251 -55.85 + 30 122.918 353 4 1 -109.489 -104.599 -84.4501 + 30 107.053 378 4 0 -109.591 -104.506 -85.8502 + 30 126.876 342 3 1 -111.696 -101.491 -114.45 + 30 108.877 394 3 0 -111.573 -101.299 -115.85 + 30 120.253 358 2 1 -108.457 -97.3284 -144.45 + 30 4.94292 359 2 1 -108.35 -97.1837 -144.832 + 30 122.199 416 2 0 -108.029 -96.8943 -145.85 + 30 174.128 405 1 1 -99.1495 -87.8926 -174.45 + 30 7.538 465 1 0 -98.7868 -86.8686 -175.85 + 30 87.0045 466 1 0 -98.7806 -86.85 -175.875 + 30 30.5816 467 1 0 -98.7311 -86.6497 -176.145 + 30 132.537 440 0 1 -92.1085 -64.9444 -204.451 + 30 86.978 441 0 1 -91.95 -64.6696 -204.7 + 30 91.6448 582 0 0 -91.2969 -63.5895 -205.85 + 30 94.1671 583 0 0 -91.2077 -63.45 -206.005 + 30 9.54728 584 0 0 -91.0734 -63.25 -206.223 + 30 126.164 650 0 0 -66.8284 -49.9713 -206.25 + 30 276.476 651 0 0 -66.6954 -49.85 -205.994 + 30 80.1153 568 0 1 -66.4416 -49.6706 -204.85 + 30 80.8483 569 0 1 -66.25 -49.6422 -204.674 + 30 56.8969 758 0 0 -64.2749 -28.4256 -206.25 + 30 118.763 757 0 0 -64.2431 -28.45 -206.185 + 30 214.826 496 0 0 -94.3906 -80.7709 -206.25 +Number of digits in this event: 49 +Using G4ParticleGun... +Particle energy: 3.84869 LIN +Particle: e- Event: 31 -Number of tracker hits in this event = 85 - 31 134.662 1357 10 1 91.7463 -54.461 95.55 - 31 297.659 627 10 0 91.744 -54.462 94.15 - 31 204.744 1357 9 1 91.6919 -54.4815 65.55 - 31 101.186 627 9 0 91.6902 -54.4836 64.15 - 31 182.075 1357 8 1 91.6543 -54.5276 35.55 - 31 274.094 627 8 0 91.6526 -54.5302 34.15 - 31 365.416 1357 7 1 91.6185 -54.5838 5.55 - 31 253.449 627 7 0 91.6179 -54.5851 4.15 - 31 108.102 1357 6 1 91.5959 -54.6121 -24.45 - 31 465.218 627 6 0 91.594 -54.6147 -25.85 - 31 117.768 1357 5 1 91.5586 -54.669 -54.45 - 31 169.723 626 5 0 91.5577 -54.6722 -55.85 - 31 342.126 1356 4 1 91.5291 -54.7558 -84.45 - 31 231.261 626 4 0 91.5276 -54.7617 -85.85 - 31 111.789 1356 3 1 91.4953 -54.877 -114.45 - 31 111.927 625 3 0 91.4945 -54.8815 -115.85 - 31 169.144 1356 2 1 91.4785 -54.9728 -144.45 - 31 187.334 625 2 0 91.4757 -54.9774 -145.85 - 31 107.974 1356 1 1 91.4152 -55.0729 -174.45 - 31 140.558 624 1 0 91.4105 -55.0784 -175.85 - 31 158.482 1355 0 1 91.3132 -55.1959 -204.45 - 31 131.486 624 0 0 91.3086 -55.2007 -205.85 - 31 20.1735 1593 0 1 138.799 -60.7314 -204.45 - 31 114.848 1357 4 1 91.5631 -54.5954 -84.4512 - 31 70.6617 1358 4 1 91.75 -54.4832 -84.689 - 31 162.87 628 4 0 92.9507 -54.3315 -85.85 - 31 24.1373 629 4 0 93.4018 -54.25 -86.2073 - 31 5.11504 1566 3 1 133.393 -43.3278 -114.45 - 31 15.6445 1166 10 1 53.25 -174.138 95.2629 - 31 108.241 1353 3 1 90.8283 -55.8385 -114.45 - 31 104.226 621 3 0 90.5935 -55.8063 -115.85 - 31 258.624 1327 2 1 85.4897 -55.7794 -144.451 - 31 84.0595 1326 2 1 85.45 -55.7743 -144.578 - 31 111.925 621 2 0 85.0346 -55.7369 -145.85 - 31 119.672 1278 1 1 75.8214 -55.6113 -174.45 - 31 135.92 622 1 0 75.5533 -55.5729 -175.85 - 31 121.22 1255 0 1 71.2465 -55.6815 -204.45 - 31 109.812 621 0 0 70.9935 -55.8069 -205.85 - 31 32.2942 1241 0 1 68.2619 -57.7853 -204.85 - 31 222.947 1356 6 1 91.3672 -54.7407 -24.45 - 31 111.367 626 6 0 91.3347 -54.7342 -25.85 - 31 262.97 1352 5 1 90.7073 -54.5975 -54.45 - 31 179.947 627 5 0 90.659 -54.5639 -55.85 - 31 109.852 1347 4 1 89.5658 -53.8843 -84.45 - 31 110.273 631 4 0 89.508 -53.8462 -85.85 - 31 123.251 1341 3 1 88.2628 -53.0128 -114.45 - 31 28.6262 1340 3 1 88.25 -52.9968 -114.772 - 31 157.625 635 3 0 88.2041 -52.9423 -115.85 - 31 128.04 1334 2 1 87.0116 -51.4981 -144.45 - 31 120.174 643 2 0 86.9596 -51.4376 -145.85 - 31 113.125 1328 1 1 85.8065 -50.2727 -174.45 - 31 112.203 649 1 0 85.7136 -50.2088 -175.85 - 31 146.838 1318 0 1 83.7765 -48.9537 -204.45 - 31 31.3865 655 0 0 83.6453 -48.858 -205.85 - 31 72.0751 656 0 0 83.6342 -48.85 -205.968 - 31 30.8729 1436 12 1 107.404 13.8894 155.15 - 31 98.2598 626 7 0 91.5497 -54.6674 4.15 - 31 142.899 622 6 0 91.4841 -55.5727 -25.85 - 31 96.2499 1366 5 1 93.3832 -57.5862 -54.45 - 31 98.305 612 5 0 93.6287 -57.5385 -55.85 - 31 144.963 1394 4 1 99.1193 -56.8888 -84.4501 - 31 118.745 616 4 0 98.8281 -56.8373 -85.8501 - 31 106.564 1352 3 1 90.7492 -55.0124 -114.45 - 31 112 623 3 0 90.4208 -55.3426 -115.85 - 31 125.177 1318 2 1 83.7776 -59.3142 -144.45 - 31 3.2273 600 2 0 83.61 -60.0391 -145.85 - 31 117.97 599 2 0 83.6078 -60.0503 -145.872 - 31 117.076 1310 1 1 82.089 -72.7176 -174.45 - 31 35.8103 534 1 0 82.1512 -73.2023 -175.85 - 31 67.0651 533 1 0 82.1585 -73.25 -176.001 - 31 21.4188 344 3 0 112.154 -111.183 -116.25 - 31 90.4853 345 3 0 112.14 -111.15 -116.171 - 31 29.8078 1461 3 1 112.509 -110.692 -114.85 - 31 102.663 1462 3 1 112.55 -110.667 -114.768 - 31 2.16554 1463 3 1 112.75 -110.553 -114.459 - 31 9.78451 630 9 0 91.9712 -53.8723 64.1499 - 31 78.1497 631 9 0 91.9811 -53.8499 64.1107 - 31 61.7135 632 9 0 92.0082 -53.6496 63.8709 - 31 57.9705 765 9 0 83.8383 -26.8895 63.75 - 31 148.849 766 9 0 83.7842 -26.85 63.9593 - 31 16.9156 767 9 0 83.7612 -26.65 64.1375 - 31 5.99268 1317 9 1 83.4718 -23.0458 65.1501 - 31 174.219 781 9 0 85.1843 -23.7112 64.1498 - 31 10.3074 782 9 0 85.3198 -23.65 63.8824 - 31 65.8876 628 10 0 91.752 -54.45 93.8206 -Number of digits in this event = 36 -Using G4ParticleGun ... -1.33432 LIN -e- +Number of tracker hits in this event: 42 + 31 114.435 1051 11 1 30.447 43.5354 125.55 + 31 106.713 1117 11 0 30.4485 43.5352 124.15 + 31 529.356 1052 10 1 30.4571 43.5248 95.55 + 31 149.562 1117 10 0 30.458 43.5221 94.15 + 31 120.374 1052 9 1 30.4784 43.463 65.55 + 31 126.794 1117 9 0 30.4812 43.4616 64.15 + 31 123.08 1052 8 1 30.5342 43.4352 35.55 + 31 255.675 1116 8 0 30.5374 43.4347 34.15 + 31 183.111 1052 7 1 30.5996 43.4211 5.55 + 31 173.523 1116 7 0 30.6032 43.4221 4.15 + 31 145.85 1053 6 1 30.6827 43.4415 -24.45 + 31 122.694 1116 6 0 30.6865 43.4414 -25.85 + 31 238.103 1053 5 1 30.7663 43.4429 -54.45 + 31 122.957 1116 5 0 30.7692 43.4416 -55.85 + 31 134.929 1053 4 1 30.8257 43.4222 -84.45 + 31 101.889 1116 4 0 30.8286 43.4222 -85.85 + 31 104.833 1054 3 1 30.8857 43.4285 -114.45 + 31 104.744 1116 3 0 30.8867 43.4297 -115.85 + 31 114.876 1054 2 1 30.8973 43.4526 -144.45 + 31 113.589 1117 2 0 30.8993 43.4535 -145.85 + 31 107.894 1054 1 1 30.9345 43.4714 -174.45 + 31 101.845 1117 1 0 30.9354 43.4737 -175.85 + 31 115.918 1054 0 1 30.9615 43.5066 -204.45 + 31 190.547 1117 0 0 30.9607 43.5104 -205.85 + 31 100.77 1085 2 0 13.1599 37.2325 -146.25 + 31 84.2439 966 2 1 13.268 37.4133 -144.85 + 31 25.1089 1082 2 0 13.1176 36.5298 -145.85 + 31 14.6069 970 2 1 14.2454 36.7958 -144.85 + 31 110.417 971 2 1 14.25 36.797 -144.847 + 31 9.6919 1345 5 1 89.25 -112.605 -54.5297 + 31 192.818 1054 5 1 30.8502 43.7556 -54.6169 + 31 266.024 1051 10 1 30.4496 43.5003 95.3908 + 31 98.0672 1115 10 0 28.8573 43.2164 94.15 + 31 78.4616 1039 10 1 27.9821 42.9355 95.15 + 31 161.232 1107 10 0 29.226 41.6255 94.15 + 31 342.744 1189 10 0 38.7787 57.9455 93.75 + 31 32.5156 1190 10 0 38.9091 58.0501 94.1394 + 31 40.6155 1090 10 1 38.1161 58.6288 95.15 + 31 151.651 1191 10 0 37.3306 58.2506 94.15 + 31 72.2811 1126 5 0 35.1856 45.3037 -55.85 + 31 30.0113 561 3 0 -173.123 -67.669 -116.25 + 31 25.119 1454 0 1 110.95 -40.4646 -204.744 +Number of digits in this event: 22 +Using G4ParticleGun... +Particle energy: 6.26235 LIN +Particle: e- Event: 32 -Number of tracker hits in this event = 168 - 32 176.032 968 10 1 13.7378 -106.541 95.55 - 32 181.559 368 10 0 13.7329 -106.539 94.15 - 32 204.681 967 9 1 13.6292 -106.515 65.55 - 32 109.522 368 9 0 13.6214 -106.511 64.15 - 32 371.379 967 8 1 13.4727 -106.424 35.55 - 32 429.123 368 8 0 13.4617 -106.415 34.15 - 32 341.435 965 7 1 13.2235 -106.275 5.55 - 32 291.111 369 7 0 13.2225 -106.271 4.15 - 32 146.612 965 6 1 13.1826 -106.204 -24.45 - 32 164.778 369 6 0 13.19 -106.2 -25.85 - 32 110.432 966 5 1 13.3027 -106.094 -54.45 - 32 114.075 370 5 0 13.2876 -106.098 -55.85 - 32 133.219 964 4 1 12.9757 -106.219 -84.45 - 32 145.842 369 4 0 12.9531 -106.218 -85.85 - 32 122.152 961 3 1 12.4421 -106.154 -114.45 - 32 346.345 370 3 0 12.4133 -106.147 -115.85 - 32 159.358 958 2 1 11.787 -105.993 -144.45 - 32 115.82 370 2 0 11.7668 -106 -145.85 - 32 173.98 956 1 1 11.3854 -106.135 -174.45 - 32 185.806 370 1 0 11.3634 -106.145 -175.85 - 32 119.264 955 0 1 11.1 -106.215 -204.45 - 32 274.989 369 0 0 11.0809 -106.217 -205.85 - 32 303.895 368 7 0 13.5716 -106.35 4.08821 - 32 108.286 367 7 0 13.6601 -106.55 3.90393 - 32 146.386 1504 0 1 120.95 41.0359 -204.665 - 32 240.871 371 3 0 12.6607 -105.862 -116.039 - 32 153.541 959 2 1 11.8965 -106.177 -144.45 - 32 205.724 369 2 0 11.7 -106.166 -145.851 - 32 117.61 940 1 1 8.18935 -105.852 -174.451 - 32 228.384 371 1 0 7.9776 -105.863 -175.85 - 32 163.238 916 0 1 3.28171 -106.556 -204.45 - 32 257.994 368 0 0 3.34281 -106.41 -205.85 - 32 405.361 964 2 1 12.9678 -105.018 -144.45 - 32 247.153 374 2 0 13.0589 -105.172 -145.85 - 32 262.843 979 1 1 15.8882 -108.195 -174.45 - 32 105.83 359 1 0 16.0938 -108.242 -175.85 - 32 205.154 993 0 1 18.6989 -107.399 -204.45 - 32 252.745 362 0 0 18.9548 -107.653 -205.85 - 32 242.657 994 0 1 18.85 -107.453 -204.628 - 32 110.597 967 7 1 13.6361 -106.312 5.55 - 32 106.699 968 6 1 13.7968 -106.127 -24.45 - 32 94.5338 370 6 0 13.816 -106.146 -25.85 - 32 134.112 970 5 1 14.1107 -106.513 -54.45 - 32 142.256 368 5 0 14.1326 -106.484 -55.85 - 32 180.631 972 4 1 14.5625 -106.538 -84.45 - 32 102.585 368 4 0 14.5711 -106.541 -85.8503 - 32 373.558 972 3 1 14.5391 -106.654 -114.45 - 32 340.596 366 3 0 14.6211 -106.776 -115.85 - 32 122.961 979 2 1 15.9465 -109.252 -144.45 - 32 109.712 354 2 0 15.9159 -109.309 -145.851 - 32 117.192 973 1 1 14.8388 -110.392 -174.45 - 32 44.5434 348 1 0 14.7808 -110.532 -175.85 - 32 70.2082 347 1 0 14.7711 -110.55 -176.041 - 32 160.768 966 0 1 13.2846 -113.345 -204.45 - 32 153.453 333 0 0 13.2558 -113.472 -205.851 - 32 10.4179 974 3 1 14.9534 -107.022 -114.85 - 32 114.231 980 2 1 16.1739 -108.057 -144.45 - 32 151.195 359 2 0 16.1648 -108.237 -145.85 - 32 120.981 980 1 1 16.2233 -112.986 -174.45 - 32 16.1755 331 1 0 16.1589 -113.906 -175.85 - 32 76.9851 330 1 0 16.1537 -113.95 -175.913 - 32 57.9036 329 1 0 16.1784 -114.15 -176.112 - 32 113.064 365 4 0 14.8632 -106.989 -85.85 - 32 160.068 971 3 1 14.3573 -114.819 -114.45 - 32 113.909 327 3 0 14.1203 -114.692 -115.851 - 32 148.93 967 2 1 13.4533 -107.305 -144.45 - 32 145.115 373 2 0 13.6405 -105.541 -145.85 - 32 24.7767 375 2 0 13.6764 -105.15 -146.182 - 32 247.296 978 1 1 15.85 -70.3092 -174.542 - 32 175.295 977 1 1 15.6499 -69.7012 -174.696 - 32 51.4113 561 1 0 15.1057 -67.8349 -175.85 - 32 77.8636 562 1 0 15.0595 -67.65 -175.961 - 32 84.9935 563 1 0 15.0171 -67.45 -176.046 - 32 58.2977 564 1 0 14.9871 -67.2496 -176.164 - 32 41.4409 1520 1 0 23.7941 124.186 -176.25 - 32 58.4475 1521 1 0 23.8154 124.35 -176.195 - 32 63.0088 1522 1 0 23.8904 124.551 -176.076 - 32 85.9699 1523 1 0 23.9815 124.75 -175.973 - 32 1.10211 1524 1 0 24.0337 124.95 -175.853 - 32 131.994 1021 1 1 24.3984 126.376 -174.85 - 32 52.5211 1022 1 1 24.45 126.641 -174.628 - 32 166.719 966 7 1 13.3399 -106.457 5.55 - 32 135.001 969 6 1 14.0044 -106.496 -24.45 - 32 100.933 368 6 0 14.0726 -106.481 -25.85 - 32 113.985 977 5 1 15.5315 -106.222 -54.45 - 32 114.139 369 5 0 15.579 -106.26 -55.85 - 32 191.36 982 4 1 16.5969 -106.897 -84.45 - 32 203.741 366 4 0 16.5639 -106.916 -85.8501 - 32 110.146 978 3 1 15.697 -107.311 -114.45 - 32 93.337 364 3 0 15.7325 -107.197 -115.85 - 32 95.6034 981 2 1 16.3092 -104.53 -144.45 - 32 235.947 377 2 0 16.4263 -104.551 -145.85 - 32 112.044 998 1 1 19.7789 -105.344 -174.45 - 32 107.378 374 1 0 19.911 -105.34 -175.85 - 32 148.524 1010 0 1 22.1869 -105.037 -204.45 - 32 142.172 375 0 0 22.3162 -105.018 -205.85 - 32 304.556 981 4 1 16.45 -106.835 -84.568 - 32 154.399 966 3 1 13.2841 -105.913 -114.45 - 32 89.7407 965 3 1 13.25 -105.916 -114.482 - 32 173.724 964 3 1 13.05 -105.931 -114.66 - 32 2.19202 963 3 1 12.85 -105.958 -114.845 - 32 22.9658 606 3 0 -35.2135 -58.7255 -116.25 - 32 82.0653 607 3 0 -35.2535 -58.65 -116.198 - 32 74.7767 608 3 0 -35.3718 -58.45 -116.045 - 32 134.582 609 3 0 -35.4902 -58.25 -115.897 - 32 620.449 719 3 1 -36.0869 -56.7636 -114.85 - 32 62.4726 718 3 1 -36.25 -56.3684 -114.519 - 32 39.6856 631 3 0 -36.1863 -53.7605 -115.85 - 32 51.0611 632 3 0 -36.191 -53.65 -115.944 - 32 63.6873 633 3 0 -36.2122 -53.45 -116.093 - 32 0.0635488 634 3 0 -36.2601 -53.25 -116.25 - 32 165.737 609 2 1 -58.2255 -10.3004 -144.45 - 32 125.813 846 2 0 -57.585 -10.6696 -145.85 - 32 47.6293 642 1 1 -51.5487 -25.0453 -174.45 - 32 240.089 641 1 1 -51.65 -24.8621 -174.512 - 32 116.178 640 1 1 -51.85 -24.3161 -174.63 - 32 185.461 786 1 0 -52.6615 -22.8426 -175.85 - 32 112.223 787 1 0 -52.7723 -22.65 -176.014 - 32 58.8544 788 1 0 -52.9234 -22.45 -176.152 - 32 113.462 789 1 0 -53.0441 -22.25 -176.21 - 32 51.4023 790 1 0 -53.2655 -22.0497 -175.996 - 32 116.001 628 1 1 -54.2856 -21.3905 -174.85 - 32 245.514 627 1 1 -54.4504 -21.2676 -174.689 - 32 71.5126 629 1 1 -54.25 -20.9517 -174.605 - 32 80.2962 630 1 1 -54.05 -20.8399 -174.705 - 32 92.8573 631 1 1 -53.85 -20.6201 -174.773 - 32 17.0528 802 1 0 -51.7911 -19.4857 -175.85 - 32 124.746 803 1 0 -51.7322 -19.45 -175.884 - 32 114.638 804 1 0 -51.4049 -19.2498 -176.097 - 32 94.4223 805 1 0 -51.2379 -19.05 -176.156 - 32 6.46803 806 1 0 -50.9527 -18.8499 -176.247 - 32 80.2513 1240 1 0 162.53 68.0867 -176.25 - 32 17.0385 1241 1 0 162.777 68.25 -176.24 - 32 129.242 955 2 1 11.1544 -104.758 -144.45 - 32 51.4841 937 1 1 7.48756 -104.067 -174.45 - 32 73.9659 936 1 1 7.45 -104.058 -174.614 - 32 156.581 380 1 0 7.17785 -103.985 -175.85 - 32 367.202 905 0 1 1.14523 -102.384 -204.45 - 32 141.199 389 0 0 0.946798 -102.204 -205.85 - 32 4.51056 390 0 0 0.889343 -102.15 -206.234 - 32 217.25 405 0 0 0.2666 -99.109 -205.85 - 32 93.952 965 8 1 13.0796 -105.424 35.1501 - 32 165.283 963 2 1 12.7097 -105.796 -144.45 - 32 36.447 962 2 1 12.65 -105.762 -144.702 - 32 134.097 372 2 0 12.2924 -105.647 -145.851 - 32 78.8369 916 1 1 3.25531 -103.396 -174.45 - 32 153.042 917 1 1 3.45006 -103.67 -174.571 - 32 85.3391 918 1 1 3.65002 -104.113 -174.782 - 32 59.5806 369 1 0 4.15559 -106.15 -176.003 - 32 71.0817 368 1 0 4.23118 -106.35 -176.083 - 32 59.0953 367 1 0 4.314 -106.55 -176.169 - 32 43.4805 1014 0 1 22.9742 -157.206 -204.45 - 32 93.2293 1015 0 1 23.0505 -157.239 -204.515 - 32 70.7639 1016 0 1 23.25 -157.327 -204.689 - 32 5.59441 1017 0 1 23.4504 -157.39 -204.842 - 32 0.376948 112 0 0 25.0672 -157.75 -205.85 - 32 232.558 111 0 0 25.0692 -157.75 -205.851 - 32 86.1447 379 1 0 2.85415 -104.259 -175.85 - 32 40.88 368 2 0 12.7494 -106.507 -145.85 - 32 101.349 367 2 0 12.7516 -106.55 -145.941 - 32 53.9722 966 1 1 13.3688 -120.317 -174.45 - 32 57.6046 965 1 1 13.2498 -120.313 -174.64 - 32 112.274 298 1 0 12.5805 -120.468 -175.85 - 32 9.1159 297 1 0 12.4086 -120.55 -176.231 - 32 79.5714 889 0 1 -2.05608 -126.694 -204.45 - 32 37.0009 888 0 1 -2.25 -126.648 -204.713 - 32 137.61 268 0 0 -3.13419 -126.462 -205.85 - 32 11.1193 269 0 0 -3.45323 -126.35 -206.221 -Number of digits in this event = 78 -Using G4ParticleGun ... -6.92517 LIN -e- +Number of tracker hits in this event: 34 + 32 121.661 887 9 1 -2.5368 -125.162 65.55 + 32 120.063 274 9 0 -2.53786 -125.161 64.15 + 32 113.574 887 8 1 -2.56068 -125.15 35.55 + 32 112.169 275 8 0 -2.56136 -125.148 34.15 + 32 130.172 887 7 1 -2.57443 -125.104 5.55 + 32 218.304 275 7 0 -2.57399 -125.101 4.15 + 32 208.336 887 6 1 -2.56405 -125.05 -24.45 + 32 105.391 275 6 0 -2.56526 -125.047 -25.85 + 32 106.387 887 5 1 -2.59312 -124.991 -54.45 + 32 118.016 275 5 0 -2.59375 -124.987 -55.85 + 32 158.242 887 4 1 -2.59904 -124.918 -84.45 + 32 159.622 276 4 0 -2.59907 -124.915 -85.85 + 32 172.49 887 3 1 -2.59852 -124.848 -114.45 + 32 109.677 276 3 0 -2.59825 -124.845 -115.85 + 32 133.811 887 2 1 -2.5916 -124.775 -144.45 + 32 132.61 276 2 0 -2.59099 -124.772 -145.85 + 32 210.174 887 1 1 -2.57672 -124.71 -174.45 + 32 432.417 277 1 0 -2.57658 -124.707 -175.85 + 32 313.144 887 0 1 -2.5653 -124.659 -204.45 + 32 222.366 277 0 0 -2.5634 -124.656 -205.85 + 32 227.108 278 0 0 -2.23899 -124.545 -205.85 + 32 38.9233 1081 1 1 36.3221 -179.067 -174.85 + 32 100.065 176 2 1 -144.932 -141.984 -144.45 + 32 70.451 177 2 1 -144.75 -141.766 -144.691 + 32 52.1542 178 2 1 -144.55 -141.601 -144.794 + 32 47.0762 206 2 0 -141.338 -138.869 -145.851 + 32 118.386 207 2 0 -141.195 -138.75 -145.874 + 32 92.5065 208 2 0 -140.873 -138.55 -146.019 + 32 203.062 199 2 0 -145.04 -140.345 -145.85 + 32 286.456 1504 12 1 121.126 -144.623 155.55 + 32 153.364 886 1 1 -2.65492 -124.605 -174.45 + 32 155.727 886 0 1 -2.76253 -124.367 -204.45 + 32 119.407 890 0 1 -1.92564 -124.323 -204.45 + 32 56.2577 97 0 0 6.94217 -160.55 -206.157 +Number of digits in this event: 21 +Using G4ParticleGun... +Particle energy: 9.07341 LIN +Particle: e- Event: 33 -Number of tracker hits in this event = 100 - 33 108.624 971 11 1 14.2697 -78.722 125.55 - 33 222.164 506 11 0 14.2696 -78.7214 124.15 - 33 340.744 971 10 1 14.269 -78.7102 95.55 - 33 221.019 506 10 0 14.2697 -78.7083 94.15 - 33 284.392 971 9 1 14.2819 -78.6703 65.55 - 33 125.654 506 9 0 14.2815 -78.6699 64.15 - 33 251.384 971 8 1 14.2711 -78.6544 35.55 - 33 136.361 506 8 0 14.2727 -78.661 34.15 - 33 277.79 971 7 1 14.3031 -78.7949 5.55 - 33 318.667 506 7 0 14.3047 -78.8013 4.15 - 33 126.292 971 6 1 14.3372 -78.9284 -24.45 - 33 148.561 505 6 0 14.3401 -78.9357 -25.85 - 33 265.557 971 5 1 14.3995 -79.085 -54.45 - 33 320.416 504 5 0 14.4014 -79.0918 -55.85 - 33 254.017 971 4 1 14.4427 -79.2347 -84.45 - 33 151.067 504 4 0 14.4429 -79.2424 -85.85 - 33 242.153 971 3 1 14.4478 -79.4038 -114.45 - 33 110.713 503 3 0 14.4497 -79.4119 -115.85 - 33 175.995 972 2 1 14.4913 -79.5733 -144.45 - 33 111.156 502 2 0 14.4933 -79.579 -145.85 - 33 108.376 972 1 1 14.5344 -79.7016 -174.45 - 33 143.034 501 1 0 14.5362 -79.7077 -175.85 - 33 133.034 972 0 1 14.5727 -79.8351 -204.45 - 33 123.258 501 0 0 14.5748 -79.844 -205.85 - 33 227.256 972 4 1 14.5396 -79.1171 -84.4501 - 33 113.269 508 4 0 14.1371 -78.401 -85.85 - 33 346.362 507 4 0 13.985 -78.4501 -86.112 - 33 275.455 972 5 1 14.45 -79.218 -54.4591 - 33 105.331 973 5 1 14.65 -79.674 -54.6501 - 33 47.9912 495 5 0 15.4639 -80.8973 -55.85 - 33 56.0132 494 5 0 15.5068 -81.05 -55.943 - 33 68.8701 493 5 0 15.5586 -81.25 -56.0471 - 33 53.1757 492 5 0 15.6555 -81.45 -56.1724 - 33 119.435 976 4 1 15.3833 -79.8285 -84.45 - 33 101.577 502 4 0 15.4439 -79.6462 -85.85 - 33 154.469 986 3 1 17.3599 -76.2474 -114.45 - 33 212.361 520 3 0 17.4692 -75.994 -115.85 - 33 256.536 1001 2 1 20.253 -70.127 -144.45 - 33 67.3948 552 2 0 20.6431 -69.5317 -145.85 - 33 64.6863 553 2 0 20.6954 -69.45 -146.03 - 33 1.78759 1044 1 1 29.0451 -58.2917 -174.45 - 33 124.653 1045 1 1 29.0502 -58.29 -174.462 - 33 108.624 609 1 0 29.5942 -58.1409 -175.851 - 33 85.9533 1104 0 1 40.951 -55.4714 -204.45 - 33 53.0863 1105 0 1 41.05 -55.4456 -204.69 - 33 284.262 623 0 0 41.5556 -55.2989 -205.85 - 33 0.180768 624 0 0 41.7272 -55.2499 -206.248 - 33 65.5006 1000 2 1 20.2499 -70.0256 -144.762 - 33 95.3278 557 1 0 23.7316 -68.6471 -175.85 - 33 154.846 698 1 0 2.8814 -40.4454 -176.25 - 33 192.205 697 1 0 2.77625 -40.45 -176.151 - 33 72.0588 685 1 0 24.1525 -43.0368 -176.25 - 33 84.0993 871 1 0 -6.82617 -5.78271 -176.25 - 33 143.856 507 9 0 14.2931 -78.5998 64.15 - 33 249.857 507 8 0 14.3791 -78.5453 34.15 - 33 130.173 970 6 1 14.2141 -78.6902 -24.45 - 33 124.039 506 6 0 14.2176 -78.6931 -25.85 - 33 99.3999 506 5 0 14.5004 -78.8455 -55.85 - 33 136.646 968 3 1 13.6697 -77.5569 -114.45 - 33 104.584 512 3 0 13.632 -77.5514 -115.85 - 33 104.033 964 2 1 12.979 -77.5139 -144.45 - 33 160.318 512 2 0 12.9181 -77.5274 -145.85 - 33 101.709 959 1 1 11.885 -77.8145 -174.45 - 33 98.5104 510 1 0 11.8249 -77.8534 -175.85 - 33 169.37 952 0 1 10.6022 -78.5498 -204.45 - 33 109.297 507 0 0 10.5091 -78.5389 -205.85 - 33 223.663 953 0 1 10.6505 -78.4683 -204.546 - 33 84.0923 954 0 1 10.8501 -78.3654 -204.672 - 33 99.34 516 2 0 13.3175 -76.7 -145.85 - 33 41.6741 348 1 0 -6.17049 -110.35 -176.116 - 33 55.749 707 5 1 -38.5631 -55.841 -54.85 - 33 47.7017 971 1 1 14.2663 -78.6583 -174.45 - 33 389.159 970 1 1 14.25 -78.6741 -174.489 - 33 349.985 504 1 0 13.5907 -79.1358 -175.85 - 33 41.4395 503 1 0 13.4377 -79.2502 -176.142 - 33 8.61019 872 0 1 -5.64528 -90.4084 -204.451 - 33 100.122 871 0 1 -5.65013 -90.4131 -204.457 - 33 95.0401 870 0 1 -5.85 -90.6479 -204.711 - 33 61.6267 869 0 1 -6.05006 -90.9496 -204.766 - 33 35.9777 868 0 1 -6.25025 -91.0507 -204.798 - 33 71.4805 444 0 0 -9.40063 -91.1965 -205.85 - 33 95.757 443 0 0 -9.59298 -91.35 -205.931 - 33 89.7899 442 0 0 -9.73272 -91.55 -206.03 - 33 274.982 441 0 0 -9.69067 -91.7501 -206.073 - 33 62.4015 440 0 0 -9.66122 -91.9505 -206.173 - 33 58.116 416 0 0 -10.6149 -96.75 -206.148 - 33 34.0188 414 0 0 -10.48 -97.15 -206.187 - 33 46.9527 242 0 0 -49.7681 -131.643 -206.25 - 33 140.237 241 0 0 -49.8068 -131.75 -206.168 - 33 45.2495 240 0 0 -49.6221 -131.95 -205.95 - 33 243.946 661 0 1 -47.7928 -132.793 -204.85 - 33 220.5 662 0 1 -47.65 -132.894 -204.626 - 33 76.161 660 0 1 -47.85 -132.77 -204.594 - 33 147.325 505 1 0 14.0095 -79.0006 -175.85 - 33 156.199 946 0 1 9.30346 -85.0811 -204.45 - 33 42.3795 466 0 0 9.33224 -86.7446 -205.85 - 33 70.7677 465 0 0 9.32999 -86.85 -205.938 - 33 150.618 464 0 0 9.32717 -87.0503 -206.139 - 33 114.788 365 0 0 14.9552 -106.962 -206.25 - 33 263.654 364 0 0 15.0328 -107.15 -206.038 -Number of digits in this event = 50 -Using G4ParticleGun ... -9.38957 LIN -e- +Number of tracker hits in this event: 165 + 33 114.456 1385 10 1 97.2293 18.8225 95.55 + 33 102.708 993 10 0 97.23 18.822 94.15 + 33 124.073 1385 9 1 97.2605 18.8124 65.55 + 33 144.964 993 9 0 97.2617 18.8099 64.15 + 33 115.17 1385 8 1 97.2915 18.7605 35.55 + 33 105.131 993 8 0 97.294 18.7681 34.15 + 33 140.939 1386 7 1 97.3805 18.9183 5.55 + 33 250.048 994 7 0 97.4259 19.0018 4.15 + 33 245.795 1393 6 1 98.8535 20.8601 -24.45 + 33 163.189 1004 6 0 98.9559 20.8703 -25.85 + 33 115.819 1405 5 1 101.158 21.0849 -54.45 + 33 112.09 1005 5 0 101.142 21.1237 -55.8503 + 33 111.056 1403 4 1 100.779 21.743 -84.45 + 33 0.970173 1008 4 0 100.785 21.8498 -85.85 + 33 130.901 1009 4 0 100.785 21.85 -85.853 + 33 102.391 1401 3 1 100.51 24.2812 -114.45 + 33 141.511 1021 3 0 100.472 24.3705 -115.85 + 33 116.816 1403 2 1 100.843 26.7933 -144.45 + 33 65.3699 1036 2 0 100.81 27.3655 -145.85 + 33 79.6555 1037 2 0 100.806 27.45 -146.048 + 33 158.505 1402 1 1 100.561 40.0885 -174.45 + 33 85.5333 1104 1 0 100.639 40.8881 -175.85 + 33 59.2427 1105 1 0 100.656 41.05 -176.132 + 33 110.186 1410 0 1 102.303 56.9303 -204.45 + 33 21.0517 1411 0 1 102.35 57.1166 -204.791 + 33 126.899 1188 0 0 102.471 57.6946 -205.85 + 33 36.4964 1189 0 0 102.506 57.85 -206.132 + 33 366.961 993 7 0 97.4086 18.85 3.82312 + 33 159.954 953 7 0 35.9251 10.6519 3.75 + 33 128.965 995 7 0 97.427 19.05 4.02738 + 33 127.304 1387 3 1 97.6703 21.0493 -114.45 + 33 345.932 1386 3 1 97.55 21.1295 -114.738 + 33 345.529 1392 3 1 98.7358 19.6255 -114.45 + 33 273.87 997 3 0 98.7532 19.6344 -115.85 + 33 142.359 1395 2 1 99.184 19.7784 -144.45 + 33 129.444 998 2 0 99.1926 19.7911 -145.85 + 33 146.931 1396 1 1 99.418 19.9842 -174.45 + 33 148.247 999 1 0 99.4427 19.9986 -175.85 + 33 106.636 1399 0 1 99.9974 20.251 -204.45 + 33 254.146 1001 0 0 100.009 20.2742 -205.85 + 33 107.935 1000 1 0 99.4862 20.05 -176.036 + 33 31.2194 1148 1 0 77.3615 49.8157 -176.25 + 33 338.27 1149 1 0 77.3805 49.8504 -176.182 + 33 106.841 1150 1 0 77.77 50.05 -175.873 + 33 107.227 1393 3 1 98.75 19.5749 -114.674 + 33 49.5908 986 3 0 97.6112 17.3667 -115.85 + 33 58.8994 985 3 0 97.5668 17.25 -115.892 + 33 67.7554 984 3 0 97.5547 17.05 -115.962 + 33 244.112 983 3 0 97.5309 16.85 -116.049 + 33 291.629 982 3 0 97.7349 16.65 -116.091 + 33 116.22 1394 2 1 99.0933 19.6608 -144.45 + 33 164.961 997 2 0 99.1251 19.6367 -145.85 + 33 149.836 1398 1 1 99.8096 19.2244 -174.45 + 33 133.683 995 1 0 99.8445 19.2499 -175.85 + 33 93.3428 996 1 0 99.8446 19.25 -175.855 + 33 138.228 1401 0 1 100.427 19.8101 -204.45 + 33 269.979 998 0 0 100.437 19.8327 -205.85 + 33 521.128 1385 5 1 97.2447 18.0943 -54.45 + 33 127.634 989 5 0 97.4337 17.9902 -55.85 + 33 28.0895 1408 4 1 101.937 16.0403 -84.4501 + 33 107.015 1409 4 1 101.95 16.0281 -84.5314 + 33 129.245 978 4 0 102.093 15.8 -85.85 + 33 113.788 1422 3 1 104.63 11.3738 -114.45 + 33 133.896 955 3 0 104.694 11.1636 -115.85 + 33 118.926 1430 2 1 106.22 6.53922 -144.45 + 33 97.963 931 2 0 106.456 6.3009 -145.85 + 33 15.5255 930 2 0 106.541 6.24996 -146.177 + 33 0.573055 1478 1 1 115.948 1.24459 -174.45 + 33 186.621 1479 1 1 115.95 1.2437 -174.454 + 33 14.9211 1480 1 1 116.15 1.16741 -174.801 + 33 137.606 904 1 0 116.736 0.960823 -175.85 + 33 15.2243 1563 0 1 132.91 -5.36777 -204.45 + 33 88.6177 1564 0 1 132.95 -5.39377 -204.498 + 33 42.8824 1565 0 1 133.15 -5.53262 -204.763 + 33 140.255 869 0 0 133.932 -6.08452 -205.85 + 33 39.8685 868 0 0 134.16 -6.25 -206.166 + 33 115.86 1474 0 1 115.002 -4.21074 -204.45 + 33 55.8034 1473 0 1 114.95 -4.31749 -204.808 + 33 123.805 879 0 0 114.969 -4.11537 -205.85 + 33 86.0428 990 5 0 97.182 18.0689 -55.85 + 33 206.744 1380 4 1 96.1777 17.2732 -84.45 + 33 175.832 986 4 0 96.1141 17.2748 -85.85 + 33 107.133 1373 3 1 94.8876 17.4511 -114.45 + 33 143.349 987 3 0 94.83 17.4547 -115.85 + 33 135.992 1366 2 1 93.4979 17.3574 -144.45 + 33 324.018 986 2 0 93.4465 17.3769 -145.85 + 33 130.708 1360 1 1 92.3424 17.8333 -174.45 + 33 113.039 989 1 0 92.3053 17.917 -175.85 + 33 108.079 1357 0 1 91.5525 19.5563 -204.45 + 33 169.786 1163 1 0 78.3663 52.7576 -176.25 + 33 0.360913 1207 6 1 61.6308 -12.6904 -24.85 + 33 45.7057 1385 7 1 97.3094 18.7332 5.21415 + 33 368.872 1387 6 1 97.7119 18.9765 -24.45 + 33 151.652 994 6 0 97.7425 18.9696 -25.85 + 33 283.402 1391 5 1 98.3938 18.7856 -54.45 + 33 266.439 993 5 0 98.4528 18.7504 -55.85 + 33 142.292 1398 4 1 99.9004 18.1057 -84.45 + 33 111.084 989 4 0 99.9773 18.0378 -85.85 + 33 111.89 1406 3 1 101.515 16.635 -114.45 + 33 160.508 1411 2 1 102.454 15.2818 -144.45 + 33 245.029 975 2 0 102.49 15.2487 -145.85 + 33 144.622 1416 1 1 103.36 14.6047 -174.45 + 33 192.715 972 1 0 103.439 14.5155 -175.85 + 33 160.033 1426 0 1 105.379 12.9479 -204.45 + 33 124.229 964 0 0 105.375 12.965 -205.85 + 33 10.3199 1027 1 0 141.428 25.6358 -176.25 + 33 157.935 1028 1 0 141.469 25.65 -176.218 + 33 66.9843 1608 1 1 141.893 26.3909 -174.85 + 33 41.4497 1609 1 1 141.95 26.486 -174.607 + 33 68.8532 1413 2 1 102.874 15.2988 -144.76 + 33 130.826 976 2 0 102.854 15.2539 -145.85 + 33 51.0351 1312 2 1 82.65 26.1982 -144.733 + 33 14.4472 931 5 0 121.129 6.35395 -56.25 + 33 156.239 1311 2 1 82.4499 26.231 -144.613 + 33 17.0052 1769 2 0 132.184 174.086 -146.25 + 33 48.7095 1770 2 0 132.202 174.15 -146.24 + 33 40.0932 1771 2 0 132.251 174.35 -146.218 + 33 125.92 992 6 0 97.6716 18.5435 -25.85 + 33 96.2488 1390 5 1 98.1521 18.3453 -54.45 + 33 153.973 991 5 0 98.1777 18.3362 -55.85 + 33 115.735 1392 4 1 98.6675 18.178 -84.45 + 33 153.65 990 4 0 98.6876 18.1901 -85.85 + 33 120.274 1394 3 1 99.0887 18.4205 -114.45 + 33 392.304 991 3 0 99.1101 18.4283 -115.85 + 33 130.623 1397 2 1 99.5625 18.6034 -144.45 + 33 178.276 992 2 0 99.5887 18.6078 -145.85 + 33 128.38 1399 1 1 100.132 18.6769 -174.45 + 33 260.759 993 1 0 100.154 18.6814 -175.85 + 33 142.149 1402 0 1 100.564 18.756 -204.45 + 33 120.048 993 0 0 100.579 18.7671 -205.85 + 33 92.6088 1396 2 1 99.55 18.5844 -144.533 + 33 301.089 1385 6 1 97.2638 18.8082 -24.45 + 33 245.188 993 6 0 97.2651 18.8084 -25.85 + 33 161.85 1386 4 1 97.3674 18.8306 -84.45 + 33 111.742 993 4 0 97.3703 18.8329 -85.85 + 33 116.104 994 3 0 97.4886 18.9087 -115.85 + 33 138.934 1387 2 1 97.6162 19.0069 -144.45 + 33 135.911 994 2 0 97.6222 19.0114 -145.85 + 33 39.6284 1387 1 1 97.7492 19.108 -174.45 + 33 73.0489 1388 1 1 97.75 19.1085 -174.606 + 33 113.314 1388 0 1 97.9193 19.2002 -204.45 + 33 173.189 995 0 0 97.9273 19.203 -205.85 + 33 178.514 999 4 0 38.8448 19.8696 -86.25 + 33 51.9712 1306 0 0 50.2437 81.2565 -206.25 + 33 30.1952 1242 0 0 -90.4627 68.45 -205.96 + 33 20.1986 430 0 1 -94.1196 70.1854 -204.85 + 33 5.06686 429 0 1 -94.15 70.2141 -204.847 + 33 9.80647 1254 0 0 -96.0078 70.9315 -205.85 + 33 153.496 417 0 1 -96.7072 71.074 -204.85 + 33 195.27 994 5 0 97.2315 18.8526 -55.85 + 33 135.79 1384 4 1 97.0675 18.9166 -84.45 + 33 148.651 994 4 0 97.06 18.9127 -85.85 + 33 155.394 1383 3 1 96.899 18.8518 -114.45 + 33 231.11 993 3 0 96.8913 18.8493 -115.85 + 33 185.806 1382 2 1 96.7185 18.8483 -144.45 + 33 142.483 993 2 0 96.718 18.8481 -145.85 + 33 129.05 1382 1 1 96.7326 18.8023 -174.45 + 33 132.931 1383 0 1 96.9184 18.6283 -204.45 + 33 100.699 992 0 0 96.9256 18.6096 -205.85 + 33 143.025 863 4 0 152.834 -7.29634 -86.25 + 33 77.6017 994 1 0 96.7747 18.85 -176.012 + 33 13.7176 1380 0 1 96.1763 31.9143 -204.45 + 33 136.674 1379 0 1 96.15 31.9168 -204.484 + 33 115.202 1058 0 0 95.4506 31.7005 -205.85 + 33 108.711 1757 5 0 -59.6411 171.55 -56.1146 +Number of digits in this event: 92 +Using G4ParticleGun... +Particle energy: 6.07746 LIN +Particle: e- Event: 34 -Number of tracker hits in this event = 96 - 34 194.534 480 9 1 -83.9857 95.9194 65.55 - 34 149.153 1378 9 0 -83.9853 95.919 64.15 - 34 125.223 480 8 1 -83.9775 95.9167 35.55 - 34 125.485 1378 8 0 -83.9764 95.9164 34.15 - 34 130.542 480 7 1 -83.951 95.9076 5.55 - 34 146.108 1378 7 0 -83.9498 95.9058 4.15 - 34 127.179 480 6 1 -83.9252 95.8727 -24.45 - 34 132.733 1378 6 0 -83.9247 95.8723 -25.85 - 34 478.655 480 5 1 -83.9084 95.8585 -54.45 - 34 413.153 1378 5 0 -83.9077 95.8584 -55.85 - 34 113.319 480 4 1 -83.8918 95.8563 -84.45 - 34 106.219 1378 4 0 -83.89 95.8555 -85.85 - 34 217.448 480 3 1 -83.8531 95.8375 -114.45 - 34 331.903 1378 3 0 -83.8516 95.8361 -115.85 - 34 235.068 481 2 1 -83.8235 95.8099 -144.45 - 34 105.178 1378 2 0 -83.822 95.809 -145.85 - 34 384.469 481 1 1 -83.7901 95.7904 -174.45 - 34 495.595 1378 1 0 -83.7949 95.7935 -175.85 - 34 668.129 480 0 1 -83.9029 95.8531 -204.45 - 34 501.257 1378 0 0 -83.917 95.8514 -205.85 - 34 800.09 481 0 1 -83.7632 95.7614 -204.45 - 34 185.226 1426 1 0 -68.0855 105.483 -176.249 - 34 112.372 1377 0 0 -83.9228 95.7235 -205.85 - 34 64.7507 1335 4 0 -7.59462 87.25 -86.0637 - 34 82.1714 851 4 1 -9.69761 87.4837 -84.85 - 34 51.2073 1064 0 0 -104.269 33.05 -206.071 - 34 163.248 479 2 1 -84.1807 95.7405 -144.45 - 34 126.004 1377 2 0 -84.1443 95.742 -145.85 - 34 132.115 483 1 1 -83.3499 96.1275 -174.45 - 34 31.7812 1379 1 0 -83.318 96.1479 -175.851 - 34 87.7203 1380 1 0 -83.3152 96.15 -175.985 - 34 1.41104 486 0 1 -82.6501 96.5859 -204.45 - 34 118.154 487 0 1 -82.65 96.5862 -204.454 - 34 107.301 1382 0 0 -82.5792 96.6877 -205.85 - 34 76.3989 480 2 1 -84.0499 95.8484 -144.563 - 34 74.9547 482 2 1 -83.65 95.9194 -144.756 - 34 225.842 1380 2 0 -84.0616 96.3119 -145.85 - 34 106.079 481 3 1 -83.8498 95.8376 -114.623 - 34 119.865 1379 3 0 -83.2841 95.9928 -115.85 - 34 58.414 1741 3 0 -121.784 168.405 -116.25 - 34 76.2072 1742 3 0 -121.891 168.55 -116.212 - 34 83.8626 1743 3 0 -122.041 168.75 -116.161 - 34 123.566 1744 3 0 -122.157 168.95 -116.086 - 34 88.3139 1745 3 0 -122.263 169.15 -116.024 - 34 50.7145 1746 3 0 -122.37 169.35 -115.934 - 34 78.9118 284 3 1 -123.228 170.954 -114.85 - 34 201.948 283 3 1 -123.35 171.158 -114.704 - 34 0.113295 282 3 1 -123.55 171.521 -114.451 - 34 94.7059 1706 4 0 -110.155 161.496 -86.25 - 34 50.9524 1705 4 0 -109.998 161.35 -86.0136 - 34 135.368 353 4 1 -109.453 160.818 -84.85 - 34 9.52002 354 4 1 -109.35 160.573 -84.475 - 34 21.2202 1677 5 0 -97.4659 155.569 -56.25 - 34 117.079 1676 5 0 -97.4459 155.55 -56.1739 - 34 83.5228 416 5 1 -96.8855 155.465 -54.85 - 34 119.866 417 5 1 -96.75 155.47 -54.6458 - 34 532.685 418 5 1 -96.55 155.196 -54.5093 - 34 334.019 290 3 1 -122.114 168.748 -114.85 - 34 65.9556 291 3 1 -121.95 168.793 -114.507 - 34 103.241 438 5 1 -92.5476 102.209 -54.45 - 34 214.529 1412 5 0 -92.3665 102.565 -55.85 - 34 95.3595 519 4 1 -76.1834 115.23 -84.45 - 34 117.902 520 4 1 -76.05 115.492 -84.6391 - 34 40.8619 1481 4 0 -74.8073 116.478 -85.85 - 34 146.404 1482 4 0 -74.7109 116.55 -85.9421 - 34 13.8684 1483 4 0 -74.3982 116.75 -86.2335 - 34 62.1513 695 3 1 -40.94 138.52 -114.45 - 34 160.482 694 3 1 -41.0501 138.69 -114.612 - 34 43.9354 1601 3 0 -42.2935 140.458 -115.85 - 34 94.8383 1602 3 0 -42.3536 140.55 -115.928 - 34 23.6717 1603 3 0 -42.4804 140.75 -116.177 - 34 3.33201 1768 3 0 -54.2422 173.945 -116.25 - 34 128.962 1769 3 0 -54.238 173.95 -116.229 - 34 85.8874 631 3 1 -53.7141 174.503 -114.85 - 34 134.419 632 3 1 -53.65 174.707 -114.628 - 34 321.476 633 3 1 -53.4499 175.066 -114.55 - 34 322.195 1776 3 0 -53.9069 175.43 -115.85 - 34 118.858 478 4 1 -84.3147 94.4298 -84.45 - 34 104.244 1371 4 0 -84.3243 94.3962 -85.85 - 34 130.73 438 3 1 -92.4029 92.0013 -114.45 - 34 101.056 1354 3 0 -92.7418 91.1321 -115.85 - 34 39.3985 1353 3 0 -92.7966 90.95 -116.129 - 34 42.5635 408 2 1 -98.4523 70.6808 -144.45 - 34 100.714 407 2 1 -98.55 70.8062 -144.552 - 34 25.9783 406 2 1 -98.75 71.0835 -144.801 - 34 73.1608 1260 2 0 -99.4045 72.0713 -145.85 - 34 172.043 1261 2 0 -99.5496 72.2502 -146.043 - 34 85.8781 1262 2 0 -112.376 72.5815 -146.25 - 34 119.159 339 2 1 -112.281 71.6853 -144.849 - 34 22.2479 1231 1 0 -99.4351 66.2752 -176.25 - 34 23.4516 481 5 1 -83.7964 95.6801 -54.45 - 34 141.372 479 5 1 -84.05 95.431 -54.6438 - 34 186.777 478 5 1 -84.25 95.3984 -54.8022 - 34 32.839 477 5 1 -84.45 95.2229 -54.8257 - 34 22.3021 483 5 1 -83.4116 94.9558 -54.85 - 34 26.6489 1368 5 0 -82.6697 93.83 -55.85 -Number of digits in this event = 41 -Using G4ParticleGun ... -6.52637 LIN -e- +Number of tracker hits in this event: 39 + 34 117.124 437 8 1 -92.6702 102.895 35.55 + 34 135.86 1413 8 0 -92.6706 102.894 34.15 + 34 256.025 437 7 1 -92.6809 102.879 5.55 + 34 119.752 1413 7 0 -92.6804 102.878 4.15 + 34 123.454 437 6 1 -92.6671 102.852 -24.45 + 34 122.018 1413 6 0 -92.6658 102.849 -25.85 + 34 115.533 437 5 1 -92.6376 102.788 -54.45 + 34 155.429 1413 5 0 -92.636 102.785 -55.85 + 34 104.859 437 4 1 -92.598 102.73 -84.45 + 34 140.887 1412 4 0 -92.5964 102.728 -85.85 + 34 119.56 437 3 1 -92.5655 102.69 -114.45 + 34 95.6833 1412 3 0 -92.5626 102.689 -115.85 + 34 104.563 438 2 1 -92.4949 102.655 -144.45 + 34 134.049 1412 2 0 -92.4905 102.649 -145.85 + 34 103.313 438 1 1 -92.3983 102.538 -174.45 + 34 184.523 1411 1 0 -92.4018 102.532 -175.85 + 34 434.452 438 0 1 -92.4889 102.423 -204.45 + 34 357.561 1411 0 0 -92.4841 102.413 -205.85 + 34 44.8461 437 0 1 -92.55 102.433 -204.728 + 34 50.3108 440 1 1 -92.031 102.851 -174.45 + 34 128.699 441 1 1 -91.95 102.846 -174.615 + 34 66.1187 1410 1 0 -91.5029 102.35 -175.989 + 34 62.8158 1409 1 0 -91.46 102.15 -176.119 + 34 3.38951 1408 1 0 -91.4454 101.95 -176.248 + 34 43.4553 505 1 0 -51.4817 -78.9219 -176.25 + 34 77.2761 504 1 0 -51.4347 -79.05 -176.199 + 34 71.022 503 1 0 -51.5665 -79.25 -176.214 + 34 32.3825 502 1 0 -51.7551 -79.45 -176.219 + 34 50.6216 436 7 1 -92.7501 103.132 5.27855 + 34 63.2667 1420 7 0 -92.6486 104.274 4.15 + 34 150.643 1421 7 0 -92.6519 104.35 4.05568 + 34 145.492 1422 7 0 -92.6124 104.55 3.8419 + 34 191.696 1423 7 0 -92.5225 104.75 3.77507 + 34 128.248 1148 7 0 -78.3607 49.6687 3.75 + 34 80.9081 1147 7 0 -78.3935 49.65 3.7897 + 34 104.471 1149 7 0 -78.7004 49.85 3.99797 + 34 11.7073 1150 7 0 -78.7604 50.05 4.11036 + 34 277.797 508 7 1 -78.3865 50.3114 5.15 + 34 68.9607 509 7 1 -78.25 50.5244 5.53091 +Number of digits in this event: 19 +Using G4ParticleGun... +Particle energy: 3.71863 LIN +Particle: e- Event: 35 -Number of tracker hits in this event = 132 - 35 124.461 273 7 1 -125.407 80.3537 5.55 - 35 163.08 1301 7 0 -125.407 80.3542 4.15 - 35 152.544 273 6 1 -125.399 80.3633 -24.45 - 35 152.3 1301 6 0 -125.399 80.3642 -25.85 - 35 365.602 273 5 1 -125.392 80.3825 -54.45 - 35 362.52 1301 5 0 -125.392 80.384 -55.85 - 35 761.751 273 4 1 -125.392 80.4207 -84.45 - 35 433.832 1301 4 0 -125.39 80.4219 -85.85 - 35 119.094 274 3 1 -125.348 80.4397 -114.45 - 35 242.843 1301 3 0 -125.346 80.441 -115.85 - 35 354.946 274 2 1 -125.313 80.4438 -144.45 - 35 245.502 1301 2 0 -125.314 80.4442 -145.85 - 35 219.089 274 1 1 -125.336 80.4513 -174.45 - 35 172.27 1302 1 0 -125.337 80.4507 -175.85 - 35 122.104 273 0 1 -125.355 80.4404 -204.45 - 35 97.5604 1301 0 0 -125.35 80.4395 -205.85 - 35 69.8902 1328 2 0 -120.288 85.82 -146.25 - 35 159.052 1329 2 0 -120.287 85.85 -146.194 - 35 56.1585 916 1 0 -148.386 3.45 -176.135 - 35 251.479 274 4 1 -125.35 80.4144 -84.7368 - 35 183.743 273 3 1 -125.388 80.2017 -114.45 - 35 159.91 1300 3 0 -125.385 80.2036 -115.85 - 35 104.901 1301 1 0 -125.228 80.2519 -175.85 - 35 171.667 275 0 1 -125.084 80.1101 -204.45 - 35 115.18 1300 0 0 -125.083 80.1114 -205.85 - 35 257.884 1302 4 0 -125.227 80.5194 -85.85 - 35 105.834 277 3 1 -124.733 80.3741 -114.45 - 35 225.292 278 2 1 -124.436 80.5106 -144.45 - 35 105.444 1302 2 0 -124.426 80.5228 -145.85 - 35 369.191 279 1 1 -124.274 80.8096 -174.45 - 35 208.158 1303 1 0 -124.267 80.8236 -175.85 - 35 133.814 280 0 1 -124.107 81.1128 -204.45 - 35 279.111 1305 0 0 -124.089 81.1366 -205.85 - 35 52.3177 280 1 1 -124.15 81.0174 -174.838 - 35 149.489 1305 1 0 -122.934 81.1318 -175.85 - 35 112.385 275 3 1 -124.965 80.5714 -114.45 - 35 190.409 1302 3 0 -124.94 80.5777 -115.85 - 35 174.708 1303 2 0 -124.371 80.7313 -145.85 - 35 371.831 282 1 1 -123.746 80.9071 -174.45 - 35 138.058 1304 1 0 -123.715 80.9158 -175.85 - 35 116.881 285 0 1 -123.05 81.0778 -204.45 - 35 102.725 1404 1 0 -143.619 100.969 -176.25 - 35 34.4789 283 1 1 -123.55 80.685 -174.785 - 35 75.663 1300 1 0 -122.664 80.1513 -175.85 - 35 89.9556 1299 1 0 -122.516 80.05 -176.03 - 35 181.136 402 0 1 -99.6898 62.4359 -204.45 - 35 440.463 403 0 1 -99.55 62.987 -204.559 - 35 74.731 404 0 1 -99.35 63.9484 -204.747 - 35 8.2615 1231 0 0 -98.8122 66.4113 -205.85 - 35 86.2954 1232 0 0 -98.8034 66.45 -205.867 - 35 52.0793 1233 0 0 -98.7725 66.65 -205.938 - 35 70.0542 1234 0 0 -98.7536 66.85 -205.984 - 35 50.7678 1235 0 0 -98.7376 67.05 -206.038 - 35 63.0657 1236 0 0 -98.7436 67.25 -206.105 - 35 22.6287 1237 0 0 -98.7556 67.4505 -206.215 - 35 21.7116 1644 0 0 -108.339 149.054 -206.25 - 35 53.6158 1645 0 0 -108.349 149.15 -206.226 - 35 74.437 1646 0 0 -108.381 149.35 -206.179 - 35 60.4486 1647 0 0 -108.418 149.55 -206.141 - 35 50.4234 1648 0 0 -108.474 149.75 -206.101 - 35 44.7101 1649 0 0 -108.518 149.95 -206.075 - 35 141.225 1650 0 0 -108.514 150.15 -206.042 - 35 32.5897 1651 0 0 -108.135 150.35 -205.903 - 35 27.15 366 0 1 -106.813 151.457 -204.85 - 35 90.4044 367 0 1 -106.75 151.509 -204.799 - 35 71.5969 368 0 1 -106.55 151.618 -204.691 - 35 516.293 369 0 1 -106.35 151.707 -204.582 - 35 22.09 370 0 1 -106.15 151.773 -204.483 - 35 54.7808 1420 1 0 -74.9342 104.22 -176.25 - 35 34.0448 1421 1 0 -74.8288 104.35 -176.249 - 35 65.7541 296 3 1 -120.802 82.4552 -114.45 - 35 67.0029 297 3 1 -120.75 82.489 -114.623 - 35 154.558 1313 3 0 -120.303 82.6598 -115.85 - 35 157.14 348 2 1 -110.487 86.0065 -144.45 - 35 126.393 1330 2 0 -110.738 86.097 -145.85 - 35 53.4022 326 1 1 -114.848 88.5831 -174.45 - 35 75.5979 325 1 1 -114.95 88.5342 -174.626 - 35 132.863 1340 1 0 -115.667 88.2291 -175.85 - 35 102.49 229 0 1 -134.183 80.9958 -204.45 - 35 22.8916 228 0 1 -134.35 81.0032 -204.773 - 35 113.441 1304 0 0 -134.856 80.9894 -205.85 - 35 25.2791 1306 4 0 -125.668 81.3937 -85.85 - 35 204.227 1307 4 0 -125.68 81.45 -85.9414 - 35 2.35214 1308 4 0 -125.727 81.6503 -86.2404 - 35 582.332 255 3 1 -129.028 101.109 -114.45 - 35 21.9199 256 3 1 -128.95 101.098 -114.79 - 35 60.1767 254 3 1 -129.15 100.668 -114.571 - 35 245.365 273 2 1 -125.395 80.4072 -144.45 - 35 81.6386 1308 2 0 -125.655 81.6784 -145.85 - 35 77.9858 1309 2 0 -125.702 81.85 -146.017 - 35 31.4507 1310 2 0 -125.791 82.0501 -146.193 - 35 24.7688 1370 2 0 -144.919 94.2243 -146.25 - 35 229.089 1369 2 0 -144.92 94.15 -146.217 - 35 98.7853 1368 2 0 -144.61 93.95 -146.005 - 35 197.662 1367 2 0 -144.42 93.7497 -145.93 - 35 50.0472 1366 2 0 -144.121 93.55 -146.198 - 35 141.527 1304 2 0 -125.15 80.9156 -145.85 - 35 178.114 275 1 1 -125.079 90.7129 -174.45 - 35 33.2324 1357 1 0 -125.049 91.6704 -175.85 - 35 116.433 1358 1 0 -125.05 91.75 -175.964 - 35 10.657 1359 1 0 -124.894 91.95 -176.24 - 35 7.43409 1495 0 0 -106.282 119.314 -205.85 - 35 58.3041 1496 0 0 -106.282 119.35 -205.858 - 35 133.76 1497 0 0 -106.272 119.55 -205.909 - 35 57.4267 1498 0 0 -106.271 119.75 -205.954 - 35 58.2537 1499 0 0 -106.278 119.95 -205.989 - 35 46.7718 1500 0 0 -106.272 120.15 -205.998 - 35 62.7097 1501 0 0 -106.248 120.35 -206.009 - 35 48.5949 1502 0 0 -106.202 120.55 -206.017 - 35 58.1627 1503 0 0 -106.157 120.751 -206.027 - 35 54.2307 1504 0 0 -106.133 120.95 -206.029 - 35 39.0294 1505 0 0 -106.114 121.15 -206.043 - 35 77.2813 1506 0 0 -106.091 121.35 -206.067 - 35 54.4978 1507 0 0 -106.096 121.55 -206.068 - 35 55.2802 1508 0 0 -106.131 121.75 -206.056 - 35 47.0742 1509 0 0 -106.132 121.95 -206.056 - 35 43.9128 1510 0 0 -106.136 122.151 -206.071 - 35 70.097 1511 0 0 -106.159 122.35 -206.1 - 35 54.5998 1512 0 0 -106.179 122.55 -206.123 - 35 53.5395 1513 0 0 -106.197 122.75 -206.137 - 35 83.9817 1514 0 0 -106.229 122.95 -206.122 - 35 50.9401 1515 0 0 -106.269 123.15 -206.103 - 35 86.269 1516 0 0 -106.31 123.35 -206.098 - 35 59.87 1517 0 0 -106.368 123.55 -206.107 - 35 83.6247 1518 0 0 -106.431 123.75 -206.105 - 35 36.7463 1519 0 0 -106.517 123.95 -206.057 - 35 1.40749 1347 1 0 -85.7829 89.456 -176.25 - 35 72.3463 1346 1 0 -85.7789 89.4492 -176.244 - 35 110.486 1345 1 0 -85.6661 89.2499 -176.069 - 35 0.904057 1344 1 0 -85.5624 89.0488 -175.853 - 35 2.82634 474 1 1 -85.0559 87.9935 -174.85 - 35 168.957 475 1 1 -85.05 87.9804 -174.837 -Number of digits in this event = 50 -Using G4ParticleGun ... -2.78455 LIN -e- +Number of tracker hits in this event: 154 + 35 383.442 1310 10 1 82.2434 -46.4179 95.55 + 35 455.729 668 10 0 82.2451 -46.4271 94.15 + 35 517.739 1311 9 1 82.3009 -46.6351 65.55 + 35 331.778 666 9 0 82.3053 -46.659 64.15 + 35 266.512 1311 8 1 82.3965 -47.2161 35.55 + 35 623.939 664 8 0 82.3856 -47.232 34.15 + 35 149.026 1310 7 1 82.1399 -47.5613 5.55 + 35 142.113 662 7 0 82.1261 -47.5668 4.15 + 35 143.89 1308 6 1 81.8241 -47.6909 -24.4504 + 35 118.192 661 6 0 81.8358 -47.7241 -25.8501 + 35 108.688 1308 5 1 81.665 -48.2415 -54.45 + 35 135.862 658 5 0 81.8182 -48.3722 -55.8504 + 35 105.712 1325 4 1 85.0816 -50.9673 -84.45 + 35 133.496 644 4 0 85.2634 -51.1447 -85.85 + 35 62.0765 1344 3 1 89.018 -54.931 -114.45 + 35 54.2562 1345 3 1 89.05 -54.9562 -114.695 + 35 141.813 624 3 0 89.185 -55.0772 -115.85 + 35 116.118 1359 2 1 91.9654 -58.0237 -144.45 + 35 114.515 610 2 0 92.0576 -57.9368 -145.85 + 35 103.741 1369 1 1 94.0758 -56.3282 -174.45 + 35 108.113 619 1 0 94.0831 -56.1768 -175.85 + 35 242.89 1370 0 1 94.3383 -53.1135 -204.45 + 35 247.805 636 0 0 94.1215 -52.7659 -205.85 + 35 265.827 690 6 0 70.1093 -41.9577 -26.2499 + 35 10.8271 1252 6 1 70.6434 -42.1409 -24.85 + 35 47.8714 1253 6 1 70.65 -42.1463 -24.8448 + 35 45.7878 696 6 0 70.3679 -40.8469 -25.85 + 35 269.15 1301 2 1 80.31 -48.4566 -144.45 + 35 135.223 657 2 0 80.259 -48.5082 -145.85 + 35 120.001 1295 1 1 79.1502 -49.61 -174.45 + 35 179.116 651 1 0 79.0955 -49.6592 -175.85 + 35 147.632 1290 0 1 78.0697 -50.4958 -204.45 + 35 335.319 647 0 0 78.0334 -50.5244 -205.85 + 35 59.483 833 2 0 155.167 -13.45 -145.88 + 35 603.162 648 0 0 77.3888 -50.4498 -206.087 + 35 344.3 649 0 0 76.7972 -50.25 -206.139 + 35 192.151 658 2 0 80.3224 -48.4469 -145.85 + 35 124.977 1301 1 1 80.4344 -48.4046 -174.45 + 35 246.528 658 1 0 80.4296 -48.3899 -175.85 + 35 153.465 1301 0 1 80.3256 -48.0354 -204.45 + 35 102.678 660 0 0 80.3488 -48.0166 -205.85 + 35 125.881 663 0 0 81.0098 -47.4044 -205.85 + 35 29.8941 664 0 0 81.1266 -47.25 -206.212 + 35 45.8513 776 0 0 86.8041 -24.7541 -206.25 + 35 68.4107 777 0 0 86.8376 -24.65 -206.187 + 35 86.4061 778 0 0 86.9158 -24.45 -206.125 + 35 17.5967 779 0 0 86.843 -24.25 -205.906 + 35 155.622 1332 0 1 86.6012 -23.7899 -204.85 + 35 89.5925 1333 0 1 86.65 -23.5862 -204.532 + 35 70.2286 1312 9 1 82.45 -46.7516 65.4121 + 35 88.747 1313 9 1 82.6506 -46.8924 65.2981 + 35 48.7181 1314 9 1 82.85 -47.0294 65.2057 + 35 14.193 648 9 0 83.2829 -50.3839 64.15 + 35 51.7541 647 9 0 83.2991 -50.4503 64.1265 + 35 82.6177 646 9 0 83.3227 -50.65 64.0917 + 35 78.6996 645 9 0 83.352 -50.85 64.0502 + 35 165.545 644 9 0 83.3643 -51.05 64.01 + 35 232.17 1317 9 1 83.5477 -51.2465 65.15 + 35 142.593 1316 9 1 83.45 -51.4246 65.5028 + 35 70.4268 1311 10 1 82.25 -46.4197 95.2626 + 35 223.085 672 10 0 82.9267 -45.6447 94.15 + 35 486.257 1312 1 1 82.4789 -46.4348 -174.45 + 35 120.148 668 1 0 82.5373 -46.4134 -175.85 + 35 137.636 1319 0 1 83.9459 -45.9137 -204.45 + 35 165.014 671 0 0 83.9522 -45.8126 -205.85 + 35 267.084 667 1 0 82.4309 -46.4794 -175.85 + 35 256.863 1309 0 1 81.8757 -47.0968 -204.45 + 35 215.933 665 0 0 81.87 -47.0213 -205.85 + 35 287.896 1311 7 1 82.4177 -46.9397 5.55 + 35 129.877 665 7 0 82.4176 -46.9143 4.15 + 35 210.118 1311 6 1 82.3517 -46.4372 -24.45 + 35 138.712 668 6 0 82.3549 -46.4221 -25.85 + 35 125.071 1311 5 1 82.4257 -46.0026 -54.45 + 35 134.251 670 5 0 82.4066 -46.0298 -55.85 + 35 128.406 1310 4 1 82.1251 -46.5079 -84.45 + 35 131.68 667 4 0 82.1159 -46.5435 -85.85 + 35 167.467 1309 3 1 81.9272 -47.221 -114.45 + 35 123.798 664 3 0 81.8846 -47.2364 -115.85 + 35 135.332 1304 2 1 80.9654 -47.6586 -144.45 + 35 197.405 661 2 0 80.9135 -47.6817 -145.85 + 35 164.53 1298 1 1 79.8268 -48.0873 -174.45 + 35 133.708 659 1 0 79.7439 -48.0989 -175.85 + 35 133.718 1289 0 1 77.9068 -48.3316 -204.45 + 35 109.034 658 0 0 77.7711 -48.3699 -205.85 + 35 60.7997 604 1 1 -59.05 -86.9866 -174.544 + 35 68.9732 603 1 1 -59.25 -87.0431 -174.487 + 35 17.9406 547 5 1 -70.6103 -117.553 -54.85 + 35 38.8598 1312 4 1 82.4705 -48.9435 -84.45 + 35 88.8815 1311 4 1 82.45 -48.9453 -84.5836 + 35 117.179 655 4 0 82.2574 -48.9291 -85.85 + 35 36.7695 1292 3 1 78.5146 -48.2384 -114.45 + 35 100.466 1291 3 1 78.45 -48.2374 -114.575 + 35 118.196 658 3 0 77.8747 -48.2923 -115.85 + 35 136.434 1228 2 1 65.8111 -49.1296 -144.45 + 35 48.5697 651 2 0 65.3341 -49.7859 -145.85 + 35 96.3369 650 2 0 65.2873 -49.85 -145.991 + 35 27.058 1183 1 1 56.6891 -63.1675 -174.45 + 35 160.489 1182 1 1 56.65 -63.2409 -174.517 + 35 101.135 576 1 0 55.9989 -64.6532 -175.85 + 35 125.766 575 1 0 55.9039 -64.85 -176.032 + 35 16.3231 574 1 0 55.8116 -65.05 -176.202 + 35 136.052 1095 0 1 39.1637 -99.1624 -204.45 + 35 50.1544 399 0 0 39.3513 -100.243 -205.85 + 35 92.7739 398 0 0 39.3773 -100.35 -205.984 + 35 6.16462 397 0 0 39.4144 -100.55 -206.232 + 35 7.0349 1258 0 1 71.8431 -111.387 -204.45 + 35 20.5827 1259 0 1 71.85 -111.387 -204.455 + 35 264.495 1317 2 1 83.589 -48.2311 -144.45 + 35 186.457 659 2 0 83.5569 -48.248 -145.85 + 35 102.87 656 1 0 82.5484 -48.748 -175.85 + 35 158.77 1303 0 1 80.788 -49.7681 -204.45 + 35 183.866 651 0 0 80.6986 -49.7727 -205.85 + 35 222.056 652 0 0 80.6547 -49.65 -206.164 + 35 20.2646 653 0 0 80.662 -49.45 -206.128 + 35 92.0008 1321 1 1 84.4416 -47.8297 -174.45 + 35 54.3184 1322 1 1 84.45 -47.8405 -174.75 + 35 118.235 660 1 0 84.4801 -47.8771 -175.85 + 35 300.153 1326 0 1 85.4334 -48.8001 -204.45 + 35 133.94 655 0 0 85.4601 -48.8519 -205.85 + 35 151.844 654 0 0 85.405 -49.1557 -205.85 + 35 150.263 572 0 0 48.7164 -65.4929 -206.25 + 35 137.631 1310 9 1 82.1934 -46.3988 65.55 + 35 155.773 668 9 0 82.1949 -46.3998 64.15 + 35 127.202 1310 8 1 82.2304 -46.4222 35.55 + 35 139.313 668 8 0 82.2318 -46.4168 34.15 + 35 111.109 668 7 0 82.2939 -46.2803 4.15 + 35 124.686 670 6 0 82.4235 -45.9984 -25.85 + 35 144.522 1312 5 1 82.5159 -45.7108 -54.45 + 35 131.894 671 5 0 82.5316 -45.6919 -55.85 + 35 249.507 1313 4 1 82.8148 -45.2986 -84.45 + 35 250.583 673 4 0 82.8211 -45.2649 -85.85 + 35 109.154 1314 3 1 82.9071 -44.5347 -114.45 + 35 116.275 677 3 0 82.9106 -44.4948 -115.85 + 35 347.643 1314 2 1 83.0056 -43.7186 -144.45 + 35 94.5846 681 2 0 83.0102 -43.6874 -145.85 + 35 143.847 1315 1 1 83.124 -43.0726 -174.45 + 35 134.259 685 1 0 83.1324 -43.0384 -175.85 + 35 112.467 1316 0 1 83.3202 -42.3481 -204.45 + 35 138.41 688 0 0 83.3301 -42.3261 -205.85 + 35 97.1154 435 0 0 60.4668 -92.95 -206.18 + 35 104.339 1316 3 1 83.3492 -45.8864 -114.45 + 35 190.456 670 3 0 83.3996 -45.9538 -115.85 + 35 107.8 1323 2 1 84.6972 -47.3499 -144.45 + 35 24.2786 663 2 0 84.7919 -47.4429 -145.85 + 35 88.4087 662 2 0 84.7991 -47.45 -145.957 + 35 126.551 1333 1 1 86.6798 -49.4791 -174.45 + 35 142.898 652 1 0 86.7517 -49.6075 -175.85 + 35 115.195 1342 0 1 88.5294 -52.2297 -204.45 + 35 174.491 638 0 0 88.601 -52.3071 -205.85 + 35 32.9785 677 2 0 83.3884 -44.5616 -145.85 + 35 4.76296 1311 0 1 82.4453 -46.2771 -204.45 + 35 131.794 1312 0 1 82.45 -46.2741 -204.472 + 35 108.302 669 0 0 82.8324 -46.0966 -205.85 + 35 12.0543 670 0 0 82.9318 -46.05 -206.188 +Number of digits in this event: 90 +Using G4ParticleGun... +Particle energy: 6.85644 LIN +Particle: e- Event: 36 -Number of tracker hits in this event = 134 - 36 158.886 946 11 1 9.38351 -14.7487 125.55 - 36 104.16 826 11 0 9.38625 -14.7493 124.15 - 36 123.022 946 10 1 9.44409 -14.7667 95.55 - 36 133.872 826 10 0 9.44801 -14.7658 94.15 - 36 106.943 947 9 1 9.5225 -14.7376 65.55 - 36 277.413 826 9 0 9.52566 -14.7391 64.15 - 36 120.334 947 8 1 9.58881 -14.7582 35.55 - 36 109.202 826 8 0 9.59141 -14.7612 34.15 - 36 137.672 947 7 1 9.64392 -14.8065 5.55 - 36 138.22 826 7 0 9.64052 -14.8115 4.15 - 36 211.924 947 6 1 9.56765 -14.918 -24.45 - 36 122.539 825 6 0 9.56776 -14.9251 -25.85 - 36 621.229 947 5 1 9.57385 -15.06 -54.45 - 36 316.627 824 5 0 9.5761 -15.066 -55.85 - 36 141.597 947 4 1 9.6171 -15.1933 -84.45 - 36 131.231 824 4 0 9.61575 -15.1986 -85.85 - 36 812.3 947 3 1 9.58557 -15.3044 -114.45 - 36 393.671 823 3 0 9.58548 -15.309 -115.85 - 36 252.903 947 2 1 9.58228 -15.3861 -144.45 - 36 208.901 823 2 0 9.58457 -15.3893 -145.85 - 36 157.882 947 1 1 9.6266 -15.4458 -174.45 - 36 133.524 822 1 0 9.62972 -15.4543 -175.85 - 36 198.382 948 0 1 9.69733 -15.6177 -204.45 - 36 129.975 822 0 0 9.70127 -15.6276 -205.85 - 36 271.675 51 5 0 178.155 -169.835 -56.25 - 36 86.7152 52 5 0 178.468 -169.75 -56.2346 - 36 207.576 821 0 0 9.72399 -15.65 -206.122 - 36 37.4646 822 3 0 9.59248 -15.45 -116.147 - 36 125.865 769 3 0 3.38025 -26.1212 -116.25 - 36 93.9849 768 3 0 3.5128 -26.2501 -116.056 - 36 19.1755 922 3 1 4.6339 -26.4437 -114.85 - 36 362.515 923 3 1 4.65 -26.4689 -114.787 - 36 17.4754 953 2 1 10.8486 -15.9786 -144.45 - 36 126.514 954 2 1 10.85 -15.9803 -144.513 - 36 102.953 820 2 0 10.8746 -16.0042 -145.85 - 36 309.185 956 1 1 11.4308 -16.5122 -174.45 - 36 122.623 817 1 0 11.445 -16.5511 -175.85 - 36 125.753 957 0 1 11.5445 -17.5433 -204.45 - 36 107.875 812 0 0 11.6252 -17.6085 -205.85 - 36 47.6599 822 2 0 9.59015 -15.4928 -145.85 - 36 169.408 958 1 1 11.6647 -9.46784 -174.45 - 36 115.771 854 1 0 11.6739 -9.15261 -175.851 - 36 112.747 958 0 1 11.7039 -3.18087 -204.45 - 36 315.174 884 0 0 11.5897 -3.23303 -205.85 - 36 132.629 883 0 0 11.5714 -3.25 -206.195 - 36 103.839 71 4 0 114.058 -165.75 -86.2436 - 36 52.9419 948 5 1 9.65 -15.0734 -54.6732 - 36 115.279 825 5 0 9.88673 -14.969 -55.85 - 36 126.851 981 4 1 16.4335 -12.3064 -84.45 - 36 51.6332 834 4 0 16.4452 -13.1732 -85.8505 - 36 148.718 833 4 0 16.4498 -13.25 -85.9706 - 36 77.2174 1007 3 1 21.5397 -32.4326 -114.45 - 36 117.118 1006 3 1 21.45 -32.6413 -114.536 - 36 138.439 1005 3 1 21.25 -33.0782 -114.623 - 36 65.7231 1004 3 1 21.05 -33.4198 -114.671 - 36 77.7915 1003 3 1 20.85 -33.6193 -114.684 - 36 67.3346 1002 3 1 20.65 -33.7653 -114.723 - 36 284.469 1001 3 1 20.45 -33.915 -114.773 - 36 49.4287 1000 3 1 20.25 -34.0208 -114.815 - 36 22.6587 718 3 0 14.8848 -36.4103 -115.85 - 36 163.109 717 3 0 14.7922 -36.45 -115.865 - 36 109.455 716 3 0 14.4262 -36.65 -115.926 - 36 85.3027 715 3 0 14.1727 -36.8501 -115.939 - 36 37.5024 957 3 1 11.5486 -38.1131 -114.85 - 36 51.1105 956 3 1 11.4495 -38.1515 -114.806 - 36 56.1938 955 3 1 11.25 -38.2126 -114.712 - 36 90.3736 954 3 1 11.0499 -38.2228 -114.569 - 36 114.239 953 3 1 10.7714 -38.0777 -114.45 - 36 38.3735 952 3 1 10.65 -37.6953 -114.462 - 36 455.104 949 3 1 9.96168 -37.0866 -114.45 - 36 116.559 954 4 1 10.8652 -15.7578 -84.4501 - 36 107.799 820 4 0 11.0796 -15.949 -85.85 - 36 8.71685 819 4 0 11.1324 -16.0501 -86.2179 - 36 110.866 974 3 1 14.9872 -25.0151 -114.45 - 36 154.767 772 3 0 15.1251 -25.4996 -115.85 - 36 129.022 994 2 1 19.0056 -33.7733 -144.45 - 36 78.6857 728 2 0 19.0276 -34.3266 -145.85 - 36 32.8696 727 2 0 19.0399 -34.45 -146.14 - 36 74.032 1002 1 1 20.6368 -46.7469 -174.45 - 36 104.461 1001 1 1 20.4498 -46.9087 -174.632 - 36 9.80013 1000 1 1 20.25 -47.0715 -174.826 - 36 100.629 660 1 0 19.1945 -47.8727 -175.85 - 36 52.4738 659 1 0 18.936 -48.05 -176.115 - 36 0.825316 888 0 1 -2.44887 -64.3147 -204.45 - 36 85.8705 887 0 1 -2.45011 -64.3158 -204.451 - 36 114.136 886 0 1 -2.65003 -64.4858 -204.609 - 36 36.5998 885 0 1 -2.85006 -64.6803 -204.778 - 36 16.1831 571 0 0 -4.12409 -65.8133 -205.85 - 36 108.201 570 0 0 -4.16545 -65.85 -205.885 - 36 94.2403 569 0 0 -4.39308 -66.05 -206.079 - 36 118.764 771 3 0 15.073 -25.65 -116.103 - 36 22.1521 770 3 0 14.9045 -25.85 -116.215 - 36 168.978 304 3 0 -21.4687 -119.225 -116.25 - 36 260.187 303 3 0 -21.477 -119.35 -116.21 - 36 148.481 302 3 0 -21.4734 -119.55 -116.167 - 36 199.548 826 3 0 9.81872 -14.7712 -115.85 - 36 147.269 970 2 1 14.2082 -12.787 -144.45 - 36 118.972 837 2 0 14.1036 -12.65 -145.85 - 36 294.328 960 1 1 12.2023 -10.0609 -174.45 - 36 15.6804 856 1 0 12.1864 -8.68732 -175.85 - 36 98.6545 857 1 0 12.1865 -8.64992 -175.887 - 36 57.133 858 1 0 12.1863 -8.45 -176.094 - 36 141.005 959 0 1 11.9538 18.4732 -204.45 - 36 17.2313 997 0 0 11.9249 19.6144 -205.85 - 36 105.423 998 0 0 11.9243 19.65 -205.893 - 36 103.792 999 0 0 11.9195 19.85 -206.13 - 36 57.8614 1015 0 0 18.62 23.2341 -206.25 - 36 49.4445 1014 0 0 18.6912 23.05 -206.102 - 36 45.8802 1013 0 0 18.7166 22.85 -206.013 - 36 46.2737 1012 0 0 18.7123 22.65 -205.982 - 36 72.1967 1011 0 0 18.6829 22.45 -205.973 - 36 46.0038 1010 0 0 18.6577 22.2498 -205.982 - 36 56.8479 1009 0 0 18.658 22.05 -205.98 - 36 76.993 1008 0 0 18.6722 21.85 -205.991 - 36 58.6799 1007 0 0 18.6767 21.6499 -206.041 - 36 48.2946 1006 0 0 18.6784 21.4498 -206.123 - 36 99.7247 1005 0 0 18.6875 21.2498 -206.132 - 36 62.2938 1004 0 0 18.679 21.05 -206.127 - 36 49.2971 1003 0 0 18.6902 20.85 -206.173 - 36 66.285 1002 0 0 18.6488 20.6491 -206.185 - 36 68.3552 1001 0 0 18.5938 20.45 -206.154 - 36 46.0864 1000 0 0 18.6544 20.25 -205.99 - 36 125.548 988 0 1 17.772 18.7801 -204.85 - 36 451.094 987 0 1 17.65 18.6174 -204.704 - 36 182.302 989 0 0 17.4738 17.9724 -205.85 - 36 139.282 988 0 0 17.3023 17.85 -206.079 - 36 60.8303 987 0 0 17.4154 17.6499 -205.904 - 36 123.842 986 0 1 17.2912 17.9734 -204.85 - 36 215.681 946 1 1 9.32642 -14.6463 -174.45 - 36 107.828 827 1 0 9.35521 -14.4868 -175.85 - 36 1.38586 828 1 0 9.36388 -14.45 -176.243 - 36 68.4561 947 0 1 9.5829 -12.1878 -204.45 - 36 76.7765 839 0 0 10.1022 -12.086 -205.85 - 36 34.9525 840 0 0 10.2069 -12.0499 -206.126 -Number of digits in this event = 55 -Using G4ParticleGun ... -6.98939 LIN -e- +Number of tracker hits in this event: 60 + 36 318.95 605 11 1 -59.0084 24.1159 125.55 + 36 114.433 1020 11 0 -59.0087 24.1168 124.15 + 36 106.361 605 10 1 -59.0145 24.1328 95.55 + 36 118.52 1020 10 0 -59.016 24.1328 94.15 + 36 146.715 605 9 1 -59.0467 24.1323 65.55 + 36 113.003 1020 9 0 -59.0478 24.132 64.15 + 36 140.811 604 8 1 -59.0673 24.1312 35.55 + 36 127.522 1020 8 0 -59.0692 24.1308 34.15 + 36 188.161 604 7 1 -59.1071 24.1251 5.55 + 36 118.373 1020 7 0 -59.1099 24.1257 4.15 + 36 116.326 604 6 1 -59.1671 24.141 -24.45 + 36 145.806 1020 6 0 -59.1709 24.1429 -25.85 + 36 148.289 604 5 1 -59.2425 24.1816 -54.45 + 36 160.213 1020 5 0 -59.2457 24.1829 -55.85 + 36 108.072 603 4 1 -59.3034 24.2124 -84.45 + 36 106.347 1020 4 0 -59.3048 24.2127 -85.85 + 36 145.622 603 3 1 -59.3263 24.2179 -114.45 + 36 112.24 1020 3 0 -59.3207 24.2201 -115.85 + 36 118.995 604 2 1 -59.2104 24.2644 -144.45 + 36 174.928 1021 2 0 -59.205 24.266 -145.85 + 36 117.789 604 1 1 -59.0886 24.2964 -174.45 + 36 132.097 1021 1 0 -59.0839 24.2985 -175.85 + 36 102.121 605 0 1 -58.9906 24.3377 -204.45 + 36 102.388 1021 0 0 -58.9843 24.3405 -205.85 + 36 139.773 1516 1 0 -35.9135 123.437 -176.25 + 36 93.4932 1517 1 0 -36.1371 123.55 -176.012 + 36 85.8531 1518 1 0 -36.2164 123.75 -176.004 + 36 202.43 721 1 1 -35.833 124.104 -174.849 + 36 116.395 720 1 1 -35.85 124.265 -174.531 + 36 158.281 129 1 1 -154.254 -52.4525 -174.45 + 36 311.707 1024 3 0 -60.0527 24.9067 -115.85 + 36 17.9969 616 3 0 -104.476 -56.7205 -116.25 + 36 93.0381 615 3 0 -104.559 -56.8501 -116.087 + 36 207.551 614 3 0 -104.645 -57.05 -116.102 + 36 93.0629 727 3 0 -111.203 -34.6032 -116.25 + 36 94.6732 603 7 1 -59.2502 24.1536 5.34326 + 36 99.4336 1024 7 0 -60.0582 24.8915 4.15 + 36 28.2191 1025 7 0 -60.2256 25.05 3.82005 + 36 42.9188 1126 7 0 -70.8739 45.3907 3.75 + 36 156.059 1127 7 0 -70.8399 45.4502 3.88811 + 36 34.1014 1128 7 0 -70.7524 45.65 4.07356 + 36 38.3419 551 7 1 -69.7176 47.1013 5.15005 + 36 103.918 552 7 1 -69.65 47.1951 5.23008 + 36 32.5238 553 7 1 -69.4499 47.2833 5.46734 + 36 109.781 605 2 1 -59.05 24.2429 -144.528 + 36 90.1035 1020 2 0 -58.3469 24.2352 -145.85 + 36 4.35554 481 2 0 -93.8985 -83.8246 -146.25 + 36 56.3008 480 2 0 -93.9085 -83.85 -146.244 + 36 61.6693 479 2 0 -94.0089 -84.05 -146.188 + 36 55.6633 478 2 0 -94.1198 -84.25 -146.101 + 36 71.0258 477 2 0 -94.2158 -84.45 -146.026 + 36 47.2342 476 2 0 -94.339 -84.65 -145.93 + 36 46.771 426 2 1 -94.8857 -85.8509 -144.85 + 36 245.241 425 2 1 -94.95 -85.9826 -144.76 + 36 70.1413 465 2 0 -95.4191 -86.9731 -145.85 + 36 35.4623 464 2 0 -95.4994 -87.05 -146.14 + 36 30.0417 826 0 0 -123.511 -14.724 -205.85 + 36 8.08737 267 0 1 -126.727 -15.4694 -204.85 + 36 63.2659 266 0 1 -126.75 -15.4769 -204.845 + 36 161.003 265 0 1 -126.951 -15.4463 -204.732 +Number of digits in this event: 20 +Using G4ParticleGun... +Particle energy: 6.94646 LIN +Particle: e- Event: 37 -Number of tracker hits in this event = 109 - 37 141.969 714 11 1 -37.2252 60.5706 125.55 - 37 152.323 1202 11 0 -37.2245 60.5711 124.15 - 37 98.275 714 10 1 -37.2106 60.5818 95.55 - 37 248.507 1202 10 0 -37.2098 60.5814 94.15 - 37 121.333 714 9 1 -37.1871 60.573 65.55 - 37 114.748 1202 9 0 -37.1864 60.5726 64.15 - 37 108.251 714 8 1 -37.1718 60.5652 35.55 - 37 146.32 1202 8 0 -37.1715 60.5646 34.15 - 37 130.494 714 7 1 -37.1589 60.5562 5.55 - 37 146.159 1202 7 0 -37.158 60.5549 4.15 - 37 221.783 714 6 1 -37.1421 60.5286 -24.45 - 37 261.324 1202 6 0 -37.1401 60.5277 -25.85 - 37 490.289 714 5 1 -37.0974 60.5103 -54.45 - 37 358.658 1202 5 0 -37.095 60.5104 -55.85 - 37 109.195 715 4 1 -37.0479 60.5158 -84.45 - 37 161.738 1202 4 0 -37.0461 60.5157 -85.85 - 37 114.878 715 3 1 -37.0062 60.5119 -114.45 - 37 96.5619 1202 3 0 -37.0059 60.5123 -115.85 - 37 179.04 715 2 1 -37.0059 60.5177 -144.45 - 37 110.215 1202 2 0 -37.0063 60.5158 -145.85 - 37 766.699 715 1 1 -37.0063 60.4799 -174.45 - 37 261.151 1202 1 0 -37.0062 60.4777 -175.85 - 37 109.59 715 0 1 -37.0018 60.4372 -204.45 - 37 234.23 1201 0 0 -36.9993 60.432 -205.85 - 37 26.8944 1334 2 1 86.85 122.421 -144.717 - 37 130.071 330 3 1 -113.986 108.681 -114.45 - 37 39.4794 740 4 1 -31.8937 -87.1661 -84.85 - 37 134.945 741 4 1 -31.85 -87.3484 -84.7163 - 37 85.2978 457 4 0 -32.2989 -88.5414 -85.8503 - 37 87.7351 456 4 0 -32.347 -88.6502 -85.9513 - 37 83.1989 455 4 0 -32.41 -88.85 -86.1116 - 37 19.7388 643 4 0 -87.6395 -51.319 -86.25 - 37 265.176 642 4 0 -87.6925 -51.45 -86.0772 - 37 70.2857 1203 1 0 -36.9857 60.7686 -175.851 - 37 190.422 1204 1 0 -36.989 60.8501 -176.109 - 37 171.838 709 0 1 -38.0785 71.6967 -204.45 - 37 92.0087 1261 0 0 -38.1767 72.344 -205.85 - 37 166.764 1262 0 0 -38.1932 72.45 -206.083 - 37 99.456 1203 6 0 -37.2449 60.65 -26.1599 - 37 121.779 717 4 1 -36.5337 59.8308 -84.4501 - 37 95.7539 1199 4 0 -36.703 59.8578 -85.85 - 37 116.984 693 3 1 -41.311 60.7704 -114.45 - 37 116.366 1203 3 0 -41.5301 60.8238 -115.85 - 37 112.897 672 2 1 -45.4687 61.564 -144.45 - 37 132.643 1208 2 0 -45.507 61.7205 -145.85 - 37 116.513 669 1 1 -46.1754 65.2134 -174.45 - 37 162.922 1227 1 0 -46.2097 65.484 -175.85 - 37 0.676141 664 0 1 -47.0506 71.0073 -204.45 - 37 151.93 665 0 1 -47.05 71.0104 -204.458 - 37 72.9868 1257 0 0 -46.8894 71.5671 -205.85 - 37 63.2148 1258 0 0 -46.863 71.65 -206.06 - 37 198.593 712 4 1 -37.6331 61.7338 -84.45 - 37 108.789 1209 4 0 -37.1843 61.9736 -85.85 - 37 272.43 747 3 1 -30.578 63.1743 -114.45 - 37 81.1022 748 3 1 -30.45 62.9457 -114.678 - 37 5.015 1209 3 0 -29.6552 61.8677 -115.85 - 37 76.8635 1208 3 0 -29.6426 61.85 -115.869 - 37 78.7995 1207 3 0 -29.5177 61.65 -116.067 - 37 68.9198 841 2 1 -11.6905 37.0252 -144.45 - 37 51.8656 842 2 1 -11.65 37.0467 -144.68 - 37 155.785 1086 2 0 -11.5132 37.304 -145.851 - 37 58.9935 879 1 1 -4.18325 40.4318 -174.45 - 37 76.4924 878 1 1 -4.25 40.5149 -174.65 - 37 89.5066 1104 1 0 -4.73246 40.9636 -175.85 - 37 10.1221 1105 1 0 -4.88018 41.05 -176.205 - 37 68.4293 820 0 1 -16.0349 46.5945 -204.45 - 37 71.5071 821 0 1 -15.85 46.6295 -204.64 - 37 4.65371 822 0 1 -15.65 46.6497 -204.835 - 37 222.327 1133 0 0 -14.5366 46.7857 -205.85 - 37 387.397 1139 0 0 5.54806 47.9018 -206.25 - 37 44.4117 938 0 1 7.74525 48.8394 -204.85 - 37 80.8327 939 0 1 7.85006 48.8408 -204.753 - 37 91.5594 940 0 1 8.05028 48.6335 -204.7 - 37 61.4006 941 0 1 8.25 48.4724 -204.638 - 37 250.074 942 0 1 8.45031 48.4384 -204.613 - 37 19.3959 943 0 1 8.65 48.4381 -204.469 - 37 41.4665 1138 0 0 10.2057 47.85 -205.956 - 37 116.676 1208 4 0 -37.8845 61.7768 -85.85 - 37 354.856 714 1 1 -37.1336 60.4237 -174.45 - 37 219.352 1201 1 0 -37.1168 60.436 -175.85 - 37 125.594 716 0 1 -36.6566 60.6675 -204.45 - 37 233.836 1203 0 0 -36.6591 60.6599 -205.85 - 37 171.016 710 0 1 -37.92 60.2953 -204.45 - 37 198.893 713 1 1 -37.2501 60.3426 -174.541 - 37 71.3861 1196 1 0 -37.9052 59.4156 -175.85 - 37 53.7792 1195 1 0 -38.0197 59.25 -176.115 - 37 19.5264 1205 1 0 -37.559 61.0501 -176.184 - 37 19.1303 662 0 1 -47.6136 70.4479 -204.45 - 37 88.7938 661 0 1 -47.65 70.4774 -204.529 - 37 141.023 1254 0 0 -48.1572 70.8763 -205.85 - 37 104.868 717 0 1 -36.4933 60.461 -204.45 - 37 99.5493 1202 0 0 -36.5231 60.4668 -205.85 - 37 155.776 1229 0 0 -32.4955 65.8677 -206.25 - 37 12.5859 742 0 1 -31.4749 66.0108 -204.85 - 37 101.955 743 0 1 -31.45 66.0116 -204.821 - 37 56.3142 744 0 1 -31.25 66.0359 -204.631 - 37 50.9622 745 0 1 -31.05 66.0068 -204.5 - 37 49.8696 746 0 1 -30.8498 65.9805 -204.451 - 37 94.9612 747 0 1 -30.6498 65.9652 -204.47 - 37 59.9241 748 0 1 -30.45 65.9301 -204.524 - 37 75.8988 749 0 1 -30.2494 65.9069 -204.554 - 37 129.237 750 0 1 -30.05 65.869 -204.58 - 37 82.7824 751 0 1 -29.8499 65.7612 -204.761 - 37 39.3926 752 0 1 -29.65 65.7368 -204.836 - 37 121.081 1232 0 0 -27.437 66.5518 -205.85 - 37 70.5803 1233 0 0 -27.2033 66.65 -206.078 - 37 149.779 1234 0 0 -27.2005 66.8502 -206.15 - 37 39.3309 1249 0 0 -20.9677 70.0195 -206.25 - 37 264.195 1250 0 0 -20.9391 70.05 -206.157 -Number of digits in this event = 46 -Using G4ParticleGun ... -1.97274 LIN -e- +Number of tracker hits in this event: 40 + 37 115.273 1405 9 1 101.205 -87.2662 65.55 + 37 201.227 463 9 0 101.207 -87.2625 64.15 + 37 137.385 1405 8 1 101.241 -87.1758 35.55 + 37 114.739 464 8 0 101.243 -87.1702 34.15 + 37 119.61 1405 7 1 101.269 -87.0886 5.55 + 37 110.776 464 7 0 101.268 -87.0866 4.15 + 37 146.604 1405 6 1 101.241 -87.0426 -24.45 + 37 130.407 465 6 0 101.24 -87.039 -25.85 + 37 112.348 1405 5 1 101.232 -86.9706 -54.45 + 37 151.338 465 5 0 101.235 -86.9683 -55.85 + 37 183.117 1405 4 1 101.289 -86.9348 -84.45 + 37 296.592 465 4 0 101.293 -86.9383 -85.85 + 37 118.49 1406 3 1 101.402 -86.9952 -114.45 + 37 167.158 465 3 0 101.407 -86.9962 -115.85 + 37 104.092 1406 2 1 101.489 -87.0088 -144.45 + 37 135.549 465 2 0 101.494 -87.0101 -145.85 + 37 102.203 1407 1 1 101.587 -87.0298 -174.45 + 37 122.971 465 1 0 101.59 -87.0352 -175.85 + 37 163.718 1407 0 1 101.652 -87.1552 -204.45 + 37 149.387 464 0 0 101.653 -87.1619 -205.85 + 37 3.49981 364 0 0 98.3874 -107.221 -206.25 + 37 145.402 1387 0 1 97.7097 -107.207 -204.85 + 37 94.8455 596 0 0 -49.1984 -60.6713 -206.25 + 37 29.5223 174 3 1 -145.15 -45.0498 -114.744 + 37 58.3138 175 3 1 -145.15 -45.0254 -114.706 + 37 138.693 478 1 0 104.426 -84.45 -176.005 + 37 348.267 464 1 0 101.568 -87.05 -176.11 + 37 7.11181 466 4 0 101.224 -86.85 -86.2227 + 37 105.988 526 4 0 79.2246 -74.8186 -86.25 + 37 45.3935 525 4 0 79.0986 -74.85 -85.9854 + 37 160.915 1295 4 1 79.0917 -75.2879 -84.8499 + 37 177.135 1294 4 1 78.942 -75.138 -84.45 + 37 131.763 1293 4 1 78.85 -75.2082 -84.554 + 37 195.554 533 4 0 79.6089 -73.3612 -85.85 + 37 580.092 1406 1 1 101.405 -86.453 -174.45 + 37 184.811 1405 1 1 101.35 -86.684 -174.496 + 37 124.372 449 1 0 101.15 -90.15 -175.853 + 37 83.0294 448 1 0 101.198 -90.35 -176.042 + 37 0.120784 589 1 0 135.876 -62.0506 -176.25 + 37 156.851 590 1 0 135.877 -62.0498 -176.249 +Number of digits in this event: 26 +Using G4ParticleGun... +Particle energy: 9.6095 LIN +Particle: e- Event: 38 -Number of tracker hits in this event = 26 - 38 163.995 1591 8 1 138.456 -45.3686 35.55 - 38 116.503 673 8 0 138.454 -45.3687 34.15 - 38 122.575 1591 7 1 138.415 -45.382 5.55 - 38 103.788 673 7 0 138.411 -45.3816 4.15 - 38 125.325 1590 6 1 138.328 -45.3715 -24.45 - 38 101.16 673 6 0 138.326 -45.3728 -25.85 - 38 147.315 1590 5 1 138.288 -45.4029 -54.45 - 38 161.254 673 5 0 138.286 -45.4035 -55.85 - 38 119.775 1590 4 1 138.25 -45.4304 -84.45 - 38 145.506 673 4 0 138.246 -45.4347 -85.85 - 38 121.392 1590 3 1 138.157 -45.538 -114.45 - 38 113.331 672 3 0 138.159 -45.5456 -115.85 - 38 121.021 1590 2 1 138.205 -45.7528 -144.45 - 38 134.664 671 2 0 138.207 -45.7631 -145.85 - 38 182.968 1590 1 1 138.238 -46.0015 -174.45 - 38 121.142 670 1 0 138.238 -46.0069 -175.85 - 38 104.866 1590 0 1 138.262 -46.0995 -204.45 - 38 110.315 669 0 0 138.265 -46.1012 -205.85 - 38 110.778 1591 1 1 138.35 -45.932 -174.632 - 38 76.4916 673 1 0 138.414 -45.3324 -175.85 - 38 148.102 674 1 0 138.36 -45.2498 -175.946 - 38 230.286 675 1 0 138.347 -45.05 -176.043 - 38 138.869 1589 3 1 138.15 -45.5399 -114.615 - 38 31.8995 1590 8 1 138.35 -45.3225 35.2247 - 38 320.702 672 8 0 136.211 -45.5734 34.15 - 38 31.2782 1394 7 1 99.136 -52.522 5.55 -Number of digits in this event = 17 -Using G4ParticleGun ... -8.20259 LIN -e- +Number of tracker hits in this event: 88 + 38 117.267 725 10 1 -35.0301 87.6952 95.55 + 38 142.981 1338 10 0 -35.0304 87.6963 94.15 + 38 100.269 725 9 1 -35.0325 87.7189 65.55 + 38 142.558 1338 9 0 -35.032 87.7196 64.15 + 38 130.362 725 8 1 -35.0261 87.7378 35.55 + 38 128.965 1338 8 0 -35.0254 87.7384 34.15 + 38 124.039 725 7 1 -35.0026 87.7673 5.55 + 38 129.953 1338 7 0 -35.0057 87.7685 4.15 + 38 351.409 725 6 1 -35.0488 87.7808 -24.45 + 38 422.522 1338 6 0 -35.0504 87.778 -25.85 + 38 432.537 724 5 1 -35.0956 87.7138 -54.45 + 38 537.708 1338 5 0 -35.089 87.7051 -55.85 + 38 162.458 725 4 1 -34.9493 87.542 -84.45 + 38 214.143 1337 4 0 -34.9457 87.5382 -85.85 + 38 146.097 726 3 1 -34.8421 87.4423 -114.45 + 38 258.508 1336 3 0 -34.8478 87.4267 -115.85 + 38 341.84 725 2 1 -34.9861 87.1005 -144.45 + 38 112.457 1335 2 0 -34.9996 87.0756 -145.85 + 38 108.513 723 1 1 -35.277 86.576 -174.45 + 38 119.919 1332 1 0 -35.289 86.5526 -175.85 + 38 389.771 722 0 1 -35.4916 86.0629 -204.45 + 38 352.335 1329 0 0 -35.5144 86.0405 -205.85 + 38 112.171 1361 12 1 92.55 -105.716 155.161 + 38 64.4526 1328 0 0 -35.473 85.85 -206.089 + 38 262.26 722 1 1 -35.5802 87.8006 -174.45 + 38 338.301 1338 1 0 -35.5442 87.7585 -175.85 + 38 50.5557 1330 0 0 -35.4273 86.1259 -205.85 + 38 146.869 1343 0 0 -35.5968 88.705 -205.85 + 38 310.967 1339 2 0 -34.8545 87.9883 -145.85 + 38 260.333 726 1 1 -34.7972 87.957 -174.45 + 38 335.896 1339 1 0 -34.7948 87.9544 -175.85 + 38 455.377 726 0 1 -34.749 87.9061 -204.45 + 38 361.255 1339 0 0 -34.743 87.9052 -205.85 + 38 335.27 1338 0 0 -34.7934 87.8499 -206.014 + 38 144.825 1337 0 0 -35.0797 87.65 -206.072 + 38 187.893 1336 0 0 -35.3116 87.4499 -206.153 + 38 147.258 1051 10 0 -160.586 30.4003 93.75 + 38 144.649 727 1 1 -34.6497 87.9445 -174.455 + 38 410.327 728 1 1 -34.45 87.8713 -174.481 + 38 323.611 729 1 1 -34.25 87.8038 -174.534 + 38 145.272 730 1 1 -34.05 87.7202 -174.547 + 38 285.398 725 0 1 -34.9205 88.0258 -204.45 + 38 25.9141 1531 4 0 -54.3156 126.419 -86.25 + 38 38.3328 1391 0 0 -130.918 98.4698 -206.25 + 38 239.841 723 4 1 -35.3356 87.7714 -84.45 + 38 234.745 1338 4 0 -35.3281 87.8195 -85.85 + 38 128.793 723 3 1 -35.2537 88.6527 -114.45 + 38 332.882 1343 3 0 -35.2774 88.7143 -115.85 + 38 161.227 720 2 1 -35.8821 90.016 -144.45 + 38 149.365 1349 2 0 -35.9611 89.9645 -145.85 + 38 102.855 712 1 1 -37.5457 89.8822 -174.45 + 38 141.59 1349 1 0 -37.6768 89.8656 -175.85 + 38 134.753 697 0 1 -40.6126 89.5268 -204.45 + 38 558.372 1347 0 0 -40.7005 89.5685 -205.85 + 38 284.024 1348 0 0 -40.8444 89.65 -205.964 + 38 22.527 1346 0 0 -41.5894 89.45 -205.984 + 38 112.987 708 3 1 -38.3665 84.4931 -114.45 + 38 61.1276 1323 3 0 -38.2353 84.7964 -115.85 + 38 38.0769 1324 3 0 -38.213 84.85 -116.114 + 38 26.8558 1189 3 0 -41.6052 57.9159 -116.25 + 38 115.1 1188 3 0 -41.6183 57.85 -116.188 + 38 33.8581 1187 3 0 -41.5916 57.65 -115.914 + 38 73.2856 694 3 1 -41.1914 57.392 -114.85 + 38 49.0702 695 3 1 -41.05 57.3041 -114.55 + 38 126.07 724 4 1 -35.1431 87.5222 -84.45 + 38 102.584 724 3 1 -35.0652 87.4387 -114.45 + 38 118.49 726 2 1 -34.7616 87.5753 -144.45 + 38 189.718 1337 2 0 -34.7403 87.5696 -145.85 + 38 131.362 1337 1 0 -34.2991 87.5463 -175.85 + 38 142.062 728 0 1 -34.2791 87.2602 -204.45 + 38 203.166 1335 0 0 -34.2724 87.2481 -205.85 + 38 32.8745 226 0 1 -134.838 17.5236 -204.45 + 38 91.7203 724 2 1 -35.1316 87.038 -144.45 + 38 54.2058 1339 5 0 -35.1371 87.8501 -56.0467 + 38 189.335 656 4 1 -48.7246 96.1726 -84.45 + 38 81.7598 1374 4 0 -48.9253 95.1121 -85.8502 + 38 80.4978 1373 4 0 -48.9731 94.95 -86.0528 + 38 119.492 1372 4 0 -49.0114 94.75 -86.2463 + 38 168.777 1267 4 0 -34.7151 73.5563 -86.25 + 38 66.3984 1268 4 0 -34.4719 73.6501 -86.0084 + 38 62.142 733 4 1 -33.4057 74.2348 -84.85 + 38 178.844 734 4 1 -33.25 74.2504 -84.6626 + 38 21.4092 735 4 1 -33.05 74.2836 -84.7901 + 38 124.681 1271 4 0 -33.0838 74.2861 -85.8501 + 38 57.0546 670 4 1 -45.9192 94.6693 -84.8496 + 38 366.675 671 4 1 -45.85 94.6472 -84.6839 + 38 21.1441 1366 4 0 -44.9792 93.3756 -85.85 + 38 125.387 688 4 1 -42.3866 93.5629 -84.85 +Number of digits in this event: 58 +Using G4ParticleGun... +Particle energy: 7.5489 LIN +Particle: e- Event: 39 -Number of tracker hits in this event = 128 - 39 15.7203 881 3 1 -3.79539 25.8813 -114.85 - 39 75.4901 334 0 0 -24.4917 -113.15 -206.098 - 39 19.6893 784 0 1 -23.1118 -112.732 -204.85 - 39 66.1272 785 0 1 -23.0498 -112.719 -204.795 - 39 83.8641 786 0 1 -22.85 -112.736 -204.66 - 39 75.1901 787 0 1 -22.65 -112.758 -204.555 - 39 29.5774 428 0 0 -20.396 -94.5055 -206.25 - 39 104.82 427 0 0 -20.3624 -94.55 -206.167 - 39 11.2933 426 0 0 -20.2461 -94.75 -205.881 - 39 19.7071 800 0 1 -19.8789 -95.5039 -204.85 - 39 98.0622 801 0 1 -19.85 -95.5508 -204.774 - 39 36.7494 639 1 0 2.12854 -52.1678 -176.25 - 39 95.8241 640 1 0 2.1868 -52.05 -176.166 - 39 18.0855 641 1 0 2.19569 -51.85 -175.915 - 39 64.6188 907 1 1 1.56386 -51.5945 -174.85 - 39 105.167 906 1 1 1.45 -51.6019 -174.685 - 39 111.853 905 1 1 1.17468 -51.7179 -174.45 - 39 107.461 643 1 0 1.31109 -51.3826 -175.85 - 39 256.834 644 1 0 1.24089 -51.25 -176.161 - 39 69.7427 795 1 0 45.0563 -21.039 -176.25 - 39 52.3561 796 1 0 45.1292 -20.85 -176.154 - 39 102.167 730 2 1 -33.8987 -89.9852 -144.45 - 39 124.466 450 2 0 -34.0124 -89.9658 -145.85 - 39 190.56 718 1 1 -36.3062 -89.6466 -174.45 - 39 136.626 451 1 0 -36.3724 -89.6739 -175.85 - 39 163.905 711 0 1 -37.6577 -89.9954 -204.45 - 39 100.841 450 0 0 -37.7179 -90.0074 -205.85 - 39 50.4465 426 2 0 -79.6827 -94.8229 -146.25 - 39 37.381 731 3 1 -33.7708 -90.15 -114.713 - 39 119.956 449 3 0 -33.7887 -90.1961 -115.85 - 39 132.133 721 2 1 -35.6793 -91.3087 -144.45 - 39 106.001 444 2 0 -35.8011 -91.3274 -145.85 - 39 226.03 712 1 1 -37.5681 -92.0625 -174.45 - 39 105.517 441 1 0 -37.7606 -91.9373 -175.85 - 39 11.2265 687 0 1 -42.6094 -90.1883 -204.45 - 39 101.311 686 0 1 -42.65 -90.2138 -204.473 - 39 62.7166 685 0 1 -42.85 -90.3437 -204.583 - 39 94.6882 684 0 1 -43.05 -90.4628 -204.679 - 39 58.5075 683 0 1 -43.25 -90.5717 -204.765 - 39 6.16778 682 0 1 -43.45 -90.6876 -204.842 - 39 59.0099 439 0 0 -46.1177 -92.2333 -205.85 - 39 151.254 438 0 0 -46.3317 -92.3501 -205.927 - 39 136.526 437 0 0 -46.7367 -92.5501 -206.062 - 39 39.1317 436 0 0 -47.1675 -92.75 -206.207 - 39 53.7407 719 1 1 -36.1089 -88.3612 -174.45 - 39 62.792 717 1 1 -36.45 -88.2486 -174.489 - 39 58.7905 716 1 1 -36.65 -88.2053 -174.546 - 39 55.9783 715 1 1 -36.85 -88.1657 -174.622 - 39 75.8626 714 1 1 -37.05 -88.1346 -174.673 - 39 67.5785 713 1 1 -37.2505 -88.0272 -174.743 - 39 63.3661 711 1 1 -37.6501 -87.8118 -174.781 - 39 88.4381 710 1 1 -37.85 -87.6836 -174.77 - 39 156.645 709 1 1 -38.05 -87.5328 -174.797 - 39 8.28846 708 1 1 -38.25 -87.2301 -174.829 - 39 4.50669 471 1 0 -38.7247 -85.6673 -175.85 - 39 128.524 472 1 0 -38.7308 -85.65 -175.863 - 39 49.0739 473 1 0 -38.8161 -85.4499 -176.114 - 39 176.543 458 7 0 -80.7447 -88.3172 3.75 - 39 39.2003 700 4 1 -39.9681 -30.4231 -84.4502 - 39 335.901 699 4 1 -40.05 -30.3962 -84.4971 - 39 258.953 727 8 1 -34.6437 -90.1527 35.55 - 39 114.086 448 8 0 -34.2249 -90.3843 34.1499 - 39 149.876 771 7 1 -25.7768 -93.1091 5.55 - 39 153.263 435 7 0 -25.4291 -93.1273 4.15 - 39 63.4332 811 6 1 -17.7865 -93.2299 -24.45 - 39 66.9406 812 6 1 -17.65 -93.1824 -24.5859 - 39 28.5464 813 6 1 -17.45 -93.1097 -24.794 - 39 127.57 437 6 0 -16.4641 -92.7185 -25.85 - 39 37.9097 438 6 0 -16.1866 -92.55 -26.2021 - 39 62.3357 933 5 1 6.75289 -75.7653 -54.4501 - 39 201.19 934 5 1 6.85014 -75.6546 -54.6084 - 39 1.33287 525 5 0 7.756 -74.8538 -55.85 - 39 129.255 526 5 0 7.76035 -74.85 -55.8559 - 39 23.9733 527 5 0 8.02434 -74.65 -56.1808 - 39 17.5314 1063 4 1 32.8006 -55.7004 -84.4501 - 39 82.9932 1064 4 1 32.8501 -55.7183 -84.4982 - 39 74.2568 1065 4 1 33.05 -55.7826 -84.6988 - 39 102.504 619 4 0 34.3712 -56.1532 -85.8503 - 39 68.8035 618 4 0 34.6615 -56.25 -86.0984 - 39 7.06049 764 4 0 132.132 -27.0633 -86.25 - 39 87.3566 765 4 0 132.152 -27.05 -86.2413 - 39 84.2976 766 4 0 132.445 -26.8497 -86.1174 - 39 124.478 767 4 0 132.733 -26.65 -86.0116 - 39 31.0486 1574 4 1 135.066 -25.4338 -84.85 - 39 80.6472 1575 4 1 135.15 -25.3851 -84.8127 - 39 72.9444 1576 4 1 135.35 -25.2801 -84.7353 - 39 56.5847 1577 4 1 135.551 -25.1651 -84.6718 - 39 54.0438 1578 4 1 135.75 -25.0615 -84.625 - 39 55.7376 1579 4 1 135.95 -24.9911 -84.5861 - 39 55.8337 1580 4 1 136.15 -24.9334 -84.5441 - 39 48.2198 1581 4 1 136.35 -24.8754 -84.51 - 39 51.1554 1582 4 1 136.55 -24.8322 -84.4847 - 39 48.4391 1583 4 1 136.75 -24.8064 -84.4665 - 39 53.3601 1584 4 1 136.95 -24.7981 -84.4609 - 39 22.278 1585 4 1 137.15 -24.7828 -84.4515 - 39 63.0874 1586 4 1 137.35 -24.8159 -84.4747 - 39 138.158 1587 4 1 137.55 -24.8995 -84.5723 - 39 97.7233 1588 4 1 137.75 -24.9882 -84.7073 - 39 14.768 1589 4 1 137.95 -25.071 -84.8267 - 39 69.9891 771 4 0 140.04 -25.7799 -85.8501 - 39 244.699 770 4 0 140.288 -25.85 -85.9539 - 39 241.576 30 9 0 126.767 -174.099 63.75 - 39 172.343 1687 2 1 157.55 -72.4177 -144.633 - 39 105.983 450 9 0 -33.8384 -90.0464 64.15 - 39 108.665 454 8 0 -34.5355 -89.2115 34.15 - 39 149.52 721 7 1 -35.8139 -91.487 5.54916 - 39 91.0069 442 7 0 -35.8446 -91.5971 4.15 - 39 121.977 715 6 1 -36.8929 -93.885 -24.45 - 39 124.628 431 6 0 -36.9271 -93.9027 -25.85 - 39 148.397 714 5 1 -37.0617 -94.5266 -54.4501 - 39 122.607 428 5 0 -37.221 -94.4238 -55.85 - 39 109.342 696 4 1 -40.7395 -92.6816 -84.45 - 39 126.637 437 4 0 -40.7616 -92.6132 -85.85 - 39 51.7373 694 3 1 -41.2379 -91.314 -114.45 - 39 84.2037 693 3 1 -41.25 -91.3011 -114.58 - 39 70.2231 444 3 0 -41.359 -91.1775 -115.85 - 39 34.2761 445 3 0 -41.3777 -91.15 -116.088 - 39 114.101 683 2 1 -43.3242 -87.6628 -144.45 - 39 36.2437 462 2 0 -43.4515 -87.4624 -145.85 - 39 87.7987 463 2 0 -43.459 -87.45 -145.936 - 39 124.441 664 1 1 -47.2179 -82.5715 -174.45 - 39 95.892 490 1 0 -47.1242 -81.9817 -175.85 - 39 39.9887 491 1 0 -47.104 -81.85 -176.147 - 39 234.715 672 0 1 -45.5011 -69.9715 -204.45 - 39 43.8073 553 0 0 -45.6727 -69.3111 -205.85 - 39 115.319 554 0 0 -45.6872 -69.25 -205.975 - 39 281.594 280 5 0 -40.7981 -123.976 -56.25 - 39 107.483 1222 0 0 -79.908 64.45 -206.248 -Number of digits in this event = 36 -Using G4ParticleGun ... -8.83137 LIN -e- +Number of tracker hits in this event: 156 + 39 119.501 1117 11 1 43.5382 56.2071 125.55 + 39 186.735 1180 11 0 43.5377 56.2085 124.15 + 39 150.211 1117 10 1 43.5048 56.2363 95.55 + 39 143.006 1180 10 0 43.4988 56.2423 94.15 + 39 147.042 1116 9 1 43.374 56.357 65.55 + 39 136.09 1181 9 0 43.3703 56.361 64.15 + 39 472.661 1116 8 1 43.2917 56.4537 35.55 + 39 168.335 1182 8 0 43.2883 56.4615 34.15 + 39 116.853 1115 7 1 43.2165 56.6261 5.55 + 39 115.308 1182 7 0 43.2091 56.6413 4.15 + 39 564.945 1115 6 1 43.0808 56.9542 -24.45 + 39 155.083 1184 6 0 43.0768 56.9703 -25.85 + 39 97.9338 1114 5 1 42.9846 57.274 -54.45 + 39 100.146 1186 5 0 42.9801 57.2876 -55.85 + 39 354.674 1114 4 1 42.8735 57.5843 -84.45 + 39 464.106 1187 4 0 42.8743 57.601 -85.85 + 39 122.692 1114 3 1 42.9406 57.9998 -114.45 + 39 229.684 1189 3 0 42.9445 58.0177 -115.85 + 39 113.722 1114 2 1 43.0039 58.3857 -144.45 + 39 126.071 1191 2 0 43.0093 58.4075 -145.85 + 39 104.018 1115 1 1 43.0814 58.8707 -174.45 + 39 92.4554 1194 1 0 43.0802 58.896 -175.85 + 39 201.113 1115 0 1 43.0598 59.419 -204.45 + 39 88.5304 1196 0 0 43.0533 59.449 -205.85 + 39 378.905 1197 0 0 43.0531 59.45 -205.897 + 39 73.366 1114 6 1 43.05 56.9303 -24.6289 + 39 147.571 1111 3 1 42.4358 57.4891 -114.45 + 39 101.202 1187 3 0 42.3901 57.4735 -115.85 + 39 114.454 1108 2 1 41.6987 57.0247 -144.45 + 39 130.815 1184 2 0 41.6524 57.0329 -145.85 + 39 127.631 1101 1 1 40.3782 57.0905 -174.45 + 39 130.92 1184 1 0 40.3683 57.0426 -175.85 + 39 127.573 1100 0 1 40.112 56.1564 -204.45 + 39 123.708 1179 0 0 40.1084 55.9711 -205.85 + 39 81.9025 849 2 1 -10.233 -22.644 -144.45 + 39 37.5711 848 2 1 -10.25 -22.6662 -144.458 + 39 9.5828 1109 3 1 41.8518 57.7205 -114.45 + 39 117.459 1108 3 1 41.85 57.7183 -114.497 + 39 133.248 1188 3 0 41.7974 57.6699 -115.851 + 39 71.0357 1104 2 1 40.8648 57.2262 -144.45 + 39 76.1216 1103 2 1 40.85 57.2497 -144.635 + 39 65.6733 1186 2 0 40.7455 57.4151 -145.85 + 39 33.2176 1187 2 0 40.7242 57.45 -146.103 + 39 188.109 1091 1 1 38.4288 60.8337 -174.45 + 39 120.411 1204 1 0 38.3363 60.9115 -175.85 + 39 146.11 1088 0 1 37.7134 61.8229 -204.45 + 39 144.264 1209 0 0 37.8086 61.8511 -205.85 + 39 168.016 1115 8 1 43.25 56.4764 35.3089 + 39 109.062 1558 3 1 131.75 2.07993 -114.802 + 39 192.416 1559 3 1 131.986 2.00091 -114.45 + 39 33.6514 910 3 0 131.659 2.13102 -115.85 + 39 111.938 1552 3 1 130.629 0.832287 -114.85 + 39 105.369 1551 3 1 130.55 0.759813 -114.828 + 39 213.365 1175 0 0 127.418 55.1658 -206.25 + 39 2.1952 1113 3 1 42.6563 56.9191 -114.45 + 39 200.101 1112 3 1 42.6498 56.922 -114.465 + 39 101.572 1184 3 0 42.2208 56.9161 -115.85 + 39 59.3621 1116 10 1 43.4497 56.2661 95.5276 + 39 81.2773 1115 10 1 43.2496 56.375 95.411 + 39 97.0637 1114 10 1 43.05 56.5731 95.3126 + 39 69.6135 1113 10 1 42.8497 56.8053 95.232 + 39 25.069 1112 10 1 42.65 56.9523 95.175 + 39 29.2677 1197 10 0 40.1674 59.5208 94.15 + 39 83.9307 1198 10 0 40.0832 59.65 94.1153 + 39 86.2994 1199 10 0 39.9623 59.85 94.0626 + 39 104.306 1200 10 0 39.8188 60.05 94.0511 + 39 93.233 1201 10 0 39.5743 60.25 94.0367 + 39 37.4182 1202 10 0 39.35 60.45 94.0987 + 39 19.2308 1084 10 1 36.8987 61.6098 95.15 + 39 180.387 1083 10 1 36.8499 61.6321 95.1674 + 39 95.5703 1082 10 1 36.65 61.5054 95.2807 + 39 89.8981 1081 10 1 36.45 61.1887 95.3909 + 39 99.4463 1080 10 1 36.2492 61.0614 95.4006 + 39 51.4093 1079 10 1 36.05 60.925 95.3962 + 39 92.7774 1078 10 1 35.85 60.8039 95.3212 + 39 58.7952 1077 10 1 35.65 60.6334 95.233 + 39 49.9175 1194 10 0 34.4854 58.9613 94.15 + 39 94.9745 1193 10 0 34.3884 58.8499 94.0454 + 39 57.4837 1192 10 0 34.4165 58.65 93.9827 + 39 75.0299 1191 10 0 34.5362 58.45 93.936 + 39 57.2044 1190 10 0 34.652 58.25 93.8546 + 39 46.4171 1115 10 0 128.259 43.189 93.75 + 39 226.834 1116 10 0 128.382 43.25 93.7993 + 39 396.244 1182 2 0 43.506 56.4603 -145.85 + 39 128.403 1122 1 1 44.468 56.2167 -174.45 + 39 209.683 1181 1 0 44.5333 56.3665 -175.85 + 39 115.728 1130 0 1 46.0734 59.4077 -204.45 + 39 15.9927 1198 0 0 46.2922 59.65 -206.189 + 39 284.712 1117 8 1 43.595 56.2179 35.55 + 39 207.434 1180 8 0 43.5946 56.2187 34.15 + 39 127.819 1117 7 1 43.5782 56.2474 5.55 + 39 173.801 1180 7 0 43.5808 56.2499 4.15 + 39 98.3009 1181 7 0 43.5809 56.25 4.08209 + 39 107.44 1117 6 1 43.6331 56.2974 -24.45 + 39 107.706 1181 6 0 43.6349 56.2995 -25.85 + 39 155.513 1118 5 1 43.6679 56.3394 -54.45 + 39 230.661 1181 5 0 43.6659 56.341 -55.85 + 39 139.461 1117 4 1 43.6232 56.3741 -84.45 + 39 118.696 1181 4 0 43.6187 56.3758 -85.85 + 39 283.713 1117 3 1 43.523 56.4026 -114.45 + 39 175.17 1181 3 0 43.5202 56.4052 -115.85 + 39 236.859 1117 2 1 43.459 56.4571 -144.45 + 39 117.431 1116 1 1 43.3698 56.4813 -174.451 + 39 77.8833 1182 1 0 43.4258 56.4552 -175.85 + 39 103.101 1122 0 1 44.5263 55.8706 -204.45 + 39 307.567 1178 0 0 44.5426 55.8213 -205.85 + 39 28.4357 1081 0 1 36.4306 37.6993 -204.45 + 39 36.8763 1082 0 1 36.45 37.7208 -204.455 + 39 223.169 1182 3 0 43.4058 56.4749 -115.85 + 39 23.6625 1106 2 1 41.4223 59.0059 -144.45 + 39 124.591 1107 2 1 41.45 58.9762 -144.537 + 39 287.43 1192 2 0 41.8284 58.5341 -145.85 + 39 150.773 1141 1 1 48.2602 49.8028 -174.45 + 39 118.52 1151 1 0 48.431 50.2858 -175.85 + 39 64.6866 1188 0 1 57.6691 57.7074 -204.45 + 39 73.4548 1189 0 1 57.85 57.7853 -204.605 + 39 73.8305 1190 0 1 58.0501 57.8942 -204.74 + 39 10.263 1191 0 1 58.25 58.0251 -204.841 + 39 72.5925 1319 0 0 93.5175 83.9305 -206.25 + 39 255.368 1320 0 0 93.6412 84.05 -206.149 + 39 3.92083 1321 0 0 94.1396 84.25 -205.857 + 39 16.3534 1381 0 1 96.4899 85.1023 -204.85 + 39 86.9083 1382 0 1 96.55 85.1162 -204.836 + 39 118.4 1383 0 1 96.75 85.1752 -204.707 + 39 124.977 1179 3 0 43.4459 55.9891 -115.85 + 39 104.989 1118 7 1 43.6633 56.1044 5.55 + 39 98.2898 1120 6 1 44.0683 56.1302 -24.45 + 39 94.8495 1180 6 0 44.0852 56.1384 -25.85 + 39 138.652 1121 5 1 44.4113 56.2995 -54.45 + 39 110.608 1123 4 1 44.7467 56.4528 -84.45 + 39 289.108 1182 4 0 44.7654 56.4577 -85.85 + 39 119.575 1125 3 1 45.2316 56.5764 -114.45 + 39 113.247 1128 2 1 45.6556 56.5824 -144.45 + 39 97.8711 1130 1 1 46.0803 56.1729 -174.45 + 39 182.337 1180 1 0 46.0982 56.1552 -175.85 + 39 149.256 1132 0 1 46.4704 55.7807 -204.45 + 39 164.658 1118 4 1 43.702 56.4203 -84.45 + 39 16.2757 1180 4 0 43.7328 56.0671 -85.85 + 39 185.896 1179 4 0 43.7355 56.05 -85.919 + 39 268.351 1127 3 1 45.5342 45.9385 -114.452 + 39 77.8005 1128 3 1 45.65 45.7534 -114.786 + 39 54.3514 1125 3 0 45.9747 45.1583 -115.85 + 39 100.273 1124 3 0 46.0344 45.05 -116.029 + 39 180.604 1176 2 1 55.3297 28.7992 -144.45 + 39 18.2787 1036 2 0 55.2485 27.2919 -145.85 + 39 121.392 1035 2 0 55.2451 27.25 -145.888 + 39 61.5018 1034 2 0 55.2216 27.05 -146.096 + 39 112.437 1155 1 1 51.1062 -5.74478 -174.45 + 39 28.3021 1156 1 1 51.25 -5.97208 -174.783 + 39 61.1145 866 1 0 51.7355 -6.75397 -175.85 + 39 121.694 865 1 0 51.7945 -6.85 -175.985 + 39 133.48 1222 0 1 64.505 -24.8729 -204.45 + 39 96.5133 772 0 0 64.6527 -25.486 -205.85 + 39 10.7293 771 0 0 64.6621 -25.6507 -206.208 + 39 103.018 1129 3 0 45.5894 45.9422 -115.85 + 39 108.413 1128 3 0 45.6292 45.8498 -116.121 +Number of digits in this event: 66 +Using G4ParticleGun... +Particle energy: 3.7355 LIN +Particle: e- Event: 40 -Number of tracker hits in this event = 107 - 40 203.327 1097 10 1 39.4574 -86.226 95.55 - 40 112.124 469 10 0 39.4571 -86.2255 94.15 - 40 99.8436 1097 9 1 39.4518 -86.2169 65.55 - 40 150.79 469 9 0 39.4516 -86.2159 64.15 - 40 119.788 1096 8 1 39.4467 -86.1932 35.55 - 40 117.73 469 8 0 39.4462 -86.1921 34.15 - 40 127.92 1096 7 1 39.4341 -86.1683 5.55 - 40 117.104 469 7 0 39.4335 -86.1664 4.15 - 40 145.408 1096 6 1 39.4196 -86.1289 -24.45 - 40 99.639 469 6 0 39.4181 -86.1272 -25.85 - 40 116.977 1096 5 1 39.3856 -86.0939 -54.45 - 40 418.103 469 5 0 39.384 -86.0922 -55.85 - 40 232.044 1096 4 1 39.3503 -86.0574 -84.45 - 40 240.106 469 4 0 39.3497 -86.0557 -85.85 - 40 710.65 1096 3 1 39.3371 -86.0193 -114.45 - 40 360.867 470 3 0 39.3347 -86.0178 -115.85 - 40 353.827 1096 2 1 39.2866 -85.9906 -144.45 - 40 374.286 470 2 0 39.2847 -85.99 -145.85 - 40 379.252 1096 1 1 39.2526 -85.9807 -174.45 - 40 236.385 470 1 0 39.2523 -85.9804 -175.85 - 40 339.562 1096 0 1 39.2568 -85.9672 -204.45 - 40 265.951 470 0 0 39.2573 -85.9676 -205.85 - 40 105.081 469 1 0 39.3605 -86.2176 -175.85 - 40 123.825 467 0 0 39.3537 -86.4509 -205.85 - 40 91.1899 471 0 0 39.3135 -85.7694 -205.85 - 40 47.4014 472 0 0 39.2447 -85.6497 -206.099 - 40 138.948 550 0 0 26.476 -69.9311 -206.249 - 40 139.063 1032 0 1 26.4663 -70.2123 -204.85 - 40 168.362 1031 0 1 26.45 -70.5411 -204.519 - 40 170.636 542 0 0 26.6312 -71.4677 -205.85 - 40 19.4942 541 0 0 26.905 -71.65 -206.212 - 40 143.155 1097 0 1 39.6217 -86.0105 -204.45 - 40 109.05 469 3 0 39.4392 -86.0721 -115.85 - 40 134.568 1106 2 1 41.4086 -87.1382 -144.45 - 40 61.7182 464 2 0 41.4894 -87.2327 -145.85 - 40 67.276 463 2 0 41.5022 -87.25 -146.093 - 40 95.1627 1114 1 1 42.9896 -89.1089 -174.45 - 40 110.056 454 1 0 43.0694 -89.1226 -175.85 - 40 127.668 1124 0 1 44.9103 -89.3443 -204.45 - 40 116.707 453 0 0 44.9349 -89.3009 -205.85 - 40 317.748 450 0 0 45.3757 -89.9788 -205.85 - 40 16.767 468 3 0 39.1872 -86.429 -115.85 - 40 85.7876 467 3 0 39.1795 -86.45 -115.922 - 40 100.492 1070 2 1 34.102 -94.7681 -144.45 - 40 37.9972 1071 2 1 34.25 -94.9265 -144.734 - 40 92.8518 422 2 0 34.9093 -95.5836 -145.85 - 40 83.9504 421 2 0 35.0591 -95.75 -146.101 - 40 69.2993 1163 1 1 52.6828 -115.363 -174.45 - 40 69.9354 1164 1 1 52.85 -115.437 -174.631 - 40 59.6503 321 1 0 53.8599 -115.904 -175.85 - 40 85.3338 320 1 0 53.9596 -115.95 -175.98 - 40 12.712 1268 0 1 73.8105 -120.663 -204.45 - 40 211.236 1269 0 1 73.85 -120.626 -204.464 - 40 83.3002 1270 0 1 74.0501 -120.445 -204.532 - 40 110.313 1271 0 1 74.25 -120.272 -204.59 - 40 68.5432 1272 0 1 74.4503 -120.09 -204.62 - 40 83.7893 1273 0 1 74.6504 -119.902 -204.676 - 40 81.2351 1274 0 1 74.85 -119.685 -204.733 - 40 82.193 1275 0 1 75.0501 -119.477 -204.775 - 40 20.564 1276 0 1 75.25 -119.288 -204.832 - 40 56.0761 323 0 0 78.8924 -115.481 -205.85 - 40 115.264 324 0 0 79.0109 -115.35 -205.892 - 40 99.4712 325 0 0 79.1657 -115.15 -205.966 - 40 78.5701 326 0 0 79.3767 -114.95 -206.091 - 40 173.36 401 0 0 104.361 -99.7771 -206.25 - 40 37.6427 1426 0 1 105.475 -100.431 -204.85 - 40 98.9874 1427 0 1 105.55 -100.469 -204.761 - 40 44.9391 1428 0 1 105.75 -100.548 -204.545 - 40 43.7919 490 1 0 51.0525 -81.8954 -176.25 - 40 58.8555 491 1 0 50.9454 -81.85 -176.23 - 40 241.446 1095 5 1 39.1658 -86.1179 -54.45 - 40 122.652 1115 4 1 43.1113 -86.0696 -84.45 - 40 12.8331 1148 3 1 49.8317 -87.4337 -114.45 - 40 107.072 1149 3 1 49.8501 -87.45 -114.501 - 40 308.219 460 3 0 50.3673 -87.8823 -115.85 - 40 83.5633 1198 2 1 59.8021 -95.8508 -144.451 - 40 26.534 1199 2 1 59.85 -96.0412 -144.767 - 40 10.2422 417 2 0 60.0652 -96.7206 -145.85 - 40 105.018 416 2 0 60.0744 -96.75 -145.897 - 40 16.1223 415 2 0 60.1381 -96.95 -146.201 - 40 125.644 1227 1 1 65.4715 -114.891 -174.45 - 40 87.3214 324 1 0 66.1014 -115.267 -175.851 - 40 26.3788 323 1 0 66.2285 -115.35 -176.128 - 40 18.6385 1285 0 1 77.2389 -123.498 -204.451 - 40 206.785 1286 0 1 77.25 -123.519 -204.487 - 40 12.6686 279 0 0 77.5831 -124.319 -205.85 - 40 133.963 278 0 0 77.5959 -124.35 -205.902 - 40 7.58821 277 0 0 77.6895 -124.55 -206.225 - 40 189.103 1095 4 1 39.1676 -85.9977 -84.45 - 40 197.27 470 4 0 39.1642 -85.9898 -85.85 - 40 110.244 1094 3 1 39.0111 -85.8896 -114.45 - 40 120.898 471 3 0 39.0493 -85.85 -115.852 - 40 133.833 1099 2 1 40.0011 -84.8903 -144.45 - 40 43.1235 475 2 0 40.0319 -84.8529 -145.85 - 40 131.24 476 2 0 40.0344 -84.85 -145.967 - 40 98.5109 1102 1 1 40.557 -84.248 -174.45 - 40 134.982 479 1 0 40.5661 -84.191 -175.85 - 40 207.026 1103 0 1 40.804 -83.0067 -204.45 - 40 105.896 485 0 0 40.8613 -82.932 -205.85 - 40 316.769 449 1 0 3.79374 -90.2317 -176.25 - 40 42.9158 448 1 0 3.72257 -90.35 -175.977 - 40 140.669 915 1 1 3.1008 -91.4241 -174.85 - 40 320.152 914 1 1 3.05 -91.5364 -174.748 - 40 256.835 916 1 1 3.25 -92.3317 -174.734 - 40 317.913 921 12 1 4.31002 -41.8239 155.15 - 40 68.5469 755 11 0 32.9439 -28.8683 124.15 - 40 1.26224 920 12 1 4.25 -41.8659 155.511 -Number of digits in this event = 47 -Using G4ParticleGun ... -7.80209 LIN -e- +Number of tracker hits in this event: 245 + 40 120.976 1168 11 1 53.7893 -41.6144 125.55 + 40 123.406 692 11 0 53.7904 -41.6159 124.15 + 40 390.865 1168 10 1 53.8118 -41.6453 95.55 + 40 124.744 692 10 0 53.8117 -41.6453 94.15 + 40 413.319 1168 9 1 53.8002 -41.6434 65.55 + 40 108.379 692 9 0 53.794 -41.6468 64.15 + 40 134.343 1168 8 1 53.6665 -41.7204 35.55 + 40 129.252 691 8 0 53.6604 -41.7237 34.15 + 40 130.839 1167 7 1 53.528 -41.7947 5.55 + 40 109.163 691 7 0 53.5211 -41.7965 4.15 + 40 132.197 1166 6 1 53.3741 -41.8285 -24.45 + 40 146.011 691 6 0 53.3686 -41.8312 -25.85 + 40 183.935 1166 5 1 53.2631 -41.8785 -54.45 + 40 124.903 690 5 0 53.2563 -41.8822 -55.85 + 40 126.802 1165 4 1 53.1348 -41.9367 -84.45 + 40 195.207 690 4 0 53.1283 -41.9389 -85.85 + 40 107.007 1164 3 1 52.9912 -41.9889 -114.45 + 40 142.081 690 3 0 52.9858 -41.9911 -115.85 + 40 492.621 1164 2 1 52.8846 -42.0383 -144.45 + 40 113.913 690 2 0 52.8797 -42.046 -145.85 + 40 750.301 1163 1 1 52.7878 -42.1967 -174.45 + 40 534.851 689 1 0 52.7986 -42.1883 -175.85 + 40 126.162 1164 0 1 53.0118 -42.0145 -204.45 + 40 123.954 690 0 0 53.017 -42.0007 -205.85 + 40 10.4067 1163 2 1 52.85 -42.099 -144.756 + 40 338.902 1162 0 1 52.4984 -42.2444 -204.45 + 40 121.11 689 0 0 52.4999 -42.2472 -205.85 + 40 303.879 697 1 0 10.7785 -40.6031 -176.25 + 40 577.286 688 0 0 52.4676 -42.3348 -205.85 + 40 12.9398 465 7 0 42.4918 -86.85 3.9866 + 40 119.754 1165 1 1 53.0668 -42.2802 -174.45 + 40 270.259 687 1 0 53.2546 -42.4918 -175.85 + 40 169.061 1194 0 1 59.0028 -51.163 -204.45 + 40 109.291 1193 0 1 58.85 -51.0252 -204.704 + 40 83.3117 648 0 0 58.0927 -50.4108 -205.85 + 40 100.023 649 0 0 57.9262 -50.2499 -206.018 + 40 186.304 1195 0 1 59.0502 -50.9879 -204.501 + 40 10.5006 1161 0 1 52.45 -46.3441 -204.814 + 40 52.6603 670 0 0 52.3467 -45.9179 -205.85 + 40 73.533 671 0 0 52.3356 -45.85 -206.024 + 40 238.747 1164 1 1 52.8501 -42.1546 -174.714 + 40 232.375 689 2 0 52.908 -42.126 -145.85 + 40 120.79 1166 1 1 53.3547 -42.222 -174.45 + 40 157.186 1170 0 1 54.0877 -42.3907 -204.45 + 40 114.227 1154 1 1 50.943 -42.3679 -174.45 + 40 99.9905 688 1 0 50.694 -42.3794 -175.85 + 40 203.566 1124 0 1 45.0239 -42.3794 -204.45 + 40 226.279 691 9 0 53.7734 -41.6638 64.1499 + 40 128.318 1163 8 1 52.7992 -41.4075 35.55 + 40 3.93195 693 8 0 52.7011 -41.2517 34.15 + 40 153.94 694 8 0 52.6998 -41.25 34.1344 + 40 114.467 1150 7 1 50.0975 -37.5829 5.55 + 40 6.44429 713 7 0 49.9799 -37.2572 4.15 + 40 97.535 714 7 0 49.977 -37.25 4.11938 + 40 132.35 1142 6 1 48.5296 -28.7367 -24.45 + 40 43.0749 756 6 0 48.5248 -28.8439 -25.85 + 40 104.416 755 6 0 48.523 -28.8502 -25.9103 + 40 221.737 1143 5 1 48.7926 -32.7547 -54.4503 + 40 171.614 736 5 0 48.6722 -32.7222 -55.8501 + 40 136.112 1125 4 1 45.0965 -31.2517 -84.45 + 40 115.246 743 4 0 45.0021 -31.4176 -85.85 + 40 21.2435 1126 3 1 45.416 -33.1609 -114.45 + 40 125.304 1127 3 1 45.45 -33.1555 -114.539 + 40 145.953 734 3 0 45.9134 -33.0762 -115.851 + 40 173.336 1178 2 1 55.664 -33.8344 -144.45 + 40 133.467 734 2 0 55.8389 -33.1944 -145.85 + 40 53.3853 735 2 0 55.8879 -33.05 -146.218 + 40 133.31 1211 1 1 62.2755 -21.7326 -174.45 + 40 112.622 793 1 0 62.7447 -21.3566 -175.85 + 40 12.3133 794 1 0 62.8695 -21.25 -176.208 + 40 4.98137 1245 0 1 69.2385 -16.682 -204.45 + 40 97.5965 1246 0 1 69.25 -16.6765 -204.47 + 40 46.2313 1247 0 1 69.45 -16.555 -204.786 + 40 89.9024 820 0 0 70.4606 -15.9665 -205.85 + 40 68.1178 821 0 0 70.6504 -15.85 -206.069 + 40 69.8917 809 0 0 73.8492 -18.0815 -206.25 + 40 84.5861 808 0 0 73.7485 -18.25 -206.085 + 40 81.4574 807 0 0 73.6837 -18.45 -205.903 + 40 237.46 1265 0 1 73.2112 -20.0802 -204.85 + 40 188.282 1264 0 1 73.05 -20.6916 -204.513 + 40 138.896 789 0 0 73.1396 -22.0855 -205.85 + 40 26.6425 1405 2 0 99.5899 101.15 -145.997 + 40 11.67 1402 2 0 100.099 100.75 -146.079 + 40 126.759 1406 2 0 99.5682 101.35 -145.885 + 40 70.9572 1407 2 0 99.4525 101.55 -145.868 + 40 94.4495 1393 2 1 98.9132 101.026 -144.85 + 40 67.2174 786 1 0 62.6408 -22.7245 -175.85 + 40 103.355 785 1 0 62.6377 -22.85 -175.978 + 40 19.5619 784 1 0 62.6574 -23.05 -176.198 + 40 205.203 761 6 0 48.6467 -27.7497 -25.85 + 40 126.26 762 6 0 48.626 -27.65 -25.9687 + 40 128.361 791 6 0 38.6391 -21.6678 -26.25 + 40 248.873 792 6 0 38.6223 -21.65 -26.1099 + 40 185.7 793 6 0 38.5866 -21.4499 -25.9058 + 40 24.0029 794 6 0 38.4941 -21.2497 -25.9223 + 40 175.726 790 6 0 38.1653 -21.85 -26.008 + 40 112.08 1091 6 1 38.4075 -22.0393 -24.8499 + 40 85.1849 1164 8 1 52.8504 -41.3629 35.3571 + 40 168.698 1165 8 1 53.05 -41.23 35.3101 + 40 281.238 1166 8 1 53.25 -40.9918 35.5455 + 40 110.253 1170 8 1 54.0686 -41.8707 35.55 + 40 160.488 690 8 0 54.0761 -41.875 34.15 + 40 111.448 1170 7 1 54.119 -41.9227 5.55 + 40 36.2697 690 7 0 53.9981 -42.0388 4.15 + 40 79.3321 689 7 0 53.9866 -42.05 4.01978 + 40 232.422 1157 6 1 51.5635 -44.674 -24.4505 + 40 191.879 675 6 0 51.4183 -44.8563 -25.85 + 40 263.066 1142 5 1 48.5707 -48.6407 -54.45 + 40 244.568 655 5 0 48.3271 -48.9057 -55.85 + 40 6.48521 1116 4 1 43.259 -54.6122 -84.45 + 40 145.865 1115 4 1 43.25 -54.621 -84.4837 + 40 98.2406 625 4 0 42.8789 -54.9603 -85.8509 + 40 6.84854 624 4 0 42.7791 -55.05 -86.227 + 40 131.551 1075 3 1 35.2348 -61.5194 -114.45 + 40 108.547 592 3 0 34.8725 -61.5972 -115.851 + 40 63.8756 1036 2 1 27.3153 -63.0979 -144.45 + 40 99.2357 1035 2 1 27.2497 -63.1007 -144.682 + 40 140.075 584 2 0 26.9222 -63.1203 -145.85 + 40 109.705 993 1 1 18.7834 -63.9839 -174.45 + 40 19.1094 992 1 1 18.65 -63.9797 -174.793 + 40 219.667 580 1 0 18.2402 -63.9822 -175.85 + 40 114.935 936 0 1 7.43126 -63.6671 -204.45 + 40 6.17663 935 0 1 7.25 -63.694 -204.834 + 40 159.911 581 0 0 6.77578 -63.7708 -205.85 + 40 79.5987 656 5 0 48.2678 -48.85 -56.0828 + 40 120.84 1139 5 1 48.0042 -51.3771 -54.45 + 40 31.7615 1138 5 1 47.8499 -51.42 -54.7241 + 40 154.891 643 5 0 47.1999 -51.374 -55.8512 + 40 45.4696 1014 4 1 22.9772 -54.605 -84.45 + 40 95.2578 1015 4 1 23.0501 -54.5615 -84.5577 + 40 60.3095 631 4 0 23.9793 -53.7489 -85.85 + 40 192.41 632 4 0 24.113 -53.65 -85.98 + 40 15.81 633 4 0 24.36 -53.45 -86.1957 + 40 184.424 1128 3 1 45.7349 -39.6765 -114.45 + 40 79.6254 709 3 0 45.9282 -38.1348 -115.85 + 40 128.864 710 3 0 45.9657 -38.0498 -115.929 + 40 52.3805 711 3 0 45.9243 -37.85 -116.162 + 40 4.46991 1169 10 1 53.85 -42.0642 95.4564 + 40 122.629 1167 10 1 53.65 -42.5741 95.3074 + 40 90.4294 1166 10 1 53.4498 -42.7274 95.269 + 40 57.3833 687 10 0 52.5745 -42.541 94.1498 + 40 112.938 686 10 0 52.5208 -42.65 94.0696 + 40 329.044 1170 6 1 54.1765 -42.3189 -24.45 + 40 265.786 688 6 0 54.2075 -42.3493 -25.85 + 40 199.507 1176 5 1 55.3109 -43.223 -54.4501 + 40 114.572 684 5 0 55.4735 -43.2361 -55.8501 + 40 113.495 1194 4 1 59.0088 -44.5657 -84.45 + 40 200.506 677 4 0 59.1735 -44.4745 -85.85 + 40 156.847 1225 3 1 65.2229 -43.7535 -114.45 + 40 118.754 683 3 0 64.737 -43.3878 -115.85 + 40 7.59809 684 3 0 64.6319 -43.25 -116.209 + 40 95.0212 1212 2 1 62.593 -32.5242 -144.45 + 40 65.0592 1211 2 1 62.45 -32.2987 -144.663 + 40 93.3262 744 2 0 61.7064 -31.2109 -145.85 + 40 67.6668 745 2 0 61.5943 -31.05 -145.976 + 40 68.1936 746 2 0 61.4512 -30.85 -146.082 + 40 30.8526 747 2 0 61.292 -30.6499 -146.199 + 40 25.7164 1065 1 1 33.1623 6.58712 -174.45 + 40 63.7593 1066 1 1 33.25 6.64585 -174.52 + 40 58.8001 1067 1 1 33.45 6.74045 -174.659 + 40 15.8281 1068 1 1 33.65 6.823 -174.798 + 40 211.945 936 1 0 34.7385 7.3104 -175.85 + 40 153.215 937 1 0 35.0086 7.45004 -176.036 + 40 41.3071 938 1 0 35.2721 7.65 -176.186 + 40 32.9288 1211 0 1 62.3032 38.9537 -204.45 + 40 179.177 1210 0 1 62.25 38.9583 -204.504 + 40 0.04969 1093 0 0 61.5045 38.6503 -205.85 + 40 160.599 1092 0 0 61.5039 38.65 -205.851 + 40 93.7196 1036 0 0 47.1375 27.3599 -206.25 + 40 120.17 1035 0 0 46.9659 27.25 -206.096 + 40 20.8868 1034 0 0 46.7647 27.0498 -205.907 + 40 44.0462 1125 0 1 45.1675 24.9547 -204.85 + 40 95.8668 1123 0 1 44.85 24.9295 -204.791 + 40 182.403 1122 0 1 44.65 24.834 -204.836 + 40 15.3033 1121 0 1 44.45 24.8072 -204.796 + 40 69.5012 1021 0 0 44.1324 24.3979 -205.85 + 40 27.1068 731 2 0 74.7787 -33.679 -145.85 + 40 113.729 732 2 0 74.7734 -33.65 -145.946 + 40 81.2743 1175 5 1 55.25 -43.1757 -54.5835 + 40 143.3 1169 5 1 53.995 -41.3972 -54.45 + 40 126.396 693 5 0 54.0418 -41.3351 -55.85 + 40 148.821 1177 4 1 55.4833 -40.5903 -84.4502 + 40 228.901 697 4 0 55.6218 -40.588 -85.85 + 40 53.7493 1193 3 1 58.8269 -40.5332 -114.45 + 40 122.968 1194 3 1 58.85 -40.5514 -114.628 + 40 138.25 696 3 0 59.016 -40.7513 -115.85 + 40 143.952 1209 2 1 61.991 -45.3015 -144.45 + 40 109.443 673 2 0 61.7532 -45.3571 -145.85 + 40 162.853 1179 1 1 55.9785 -46.6988 -174.45 + 40 110.149 666 1 0 55.5892 -46.8167 -175.85 + 40 7.82946 665 1 0 55.4911 -46.85 -176.215 + 40 116.884 1138 0 1 47.7963 -49.6695 -204.45 + 40 74.2453 651 0 0 48.0063 -49.8326 -205.85 + 40 51.7338 650 0 0 48.0278 -49.85 -206.03 + 40 210.979 348 0 0 149.515 -110.449 -206.25 + 40 59.3165 347 0 0 149.863 -110.55 -206.1 + 40 90.5443 346 0 0 150.249 -110.75 -206.025 + 40 26.8412 345 0 0 150.4 -110.95 -206.185 + 40 384.972 428 0 0 84.4224 -94.4825 -206.25 + 40 91.0359 1325 0 1 85.091 -94.2576 -204.85 + 40 75.8326 1326 0 1 85.25 -94.1937 -204.549 + 40 80.7736 1327 0 1 85.45 -94.1579 -204.602 + 40 63.3619 1328 0 1 85.6501 -94.139 -204.696 + 40 80.0728 1329 0 1 85.85 -94.1167 -204.718 + 40 36.222 1330 0 1 86.05 -94.2455 -204.785 + 40 157.413 430 0 0 86.7795 -94.1456 -205.85 + 40 108.526 429 0 0 86.8134 -94.15 -206.133 + 40 438.01 1184 2 1 56.875 -37.0907 -144.45 + 40 9.18147 1183 2 1 56.85 -37.1672 -144.804 + 40 119.295 713 2 0 56.7223 -37.331 -145.85 + 40 85.8341 1183 1 1 56.8277 -43.2266 -174.45 + 40 100.361 1182 1 1 56.65 -43.0316 -174.601 + 40 42.9565 1181 1 1 56.45 -42.8152 -174.75 + 40 117.83 692 1 0 55.3496 -41.641 -175.85 + 40 82.4958 693 1 0 55.1887 -41.4498 -176.065 + 40 315.689 1032 0 1 26.5213 -21.0348 -204.45 + 40 9.08106 782 0 0 26.6648 -23.6354 -205.85 + 40 89.2564 781 0 0 26.6655 -23.6503 -205.858 + 40 66.7804 780 0 0 26.7069 -23.8503 -205.993 + 40 98.4148 779 0 0 26.7897 -24.0501 -206.131 + 40 44.7426 778 0 0 26.8799 -24.25 -206.211 + 40 36.3687 777 0 0 26.9751 -24.45 -206.241 + 40 92.2554 17 0 0 130.457 -176.559 -206.25 + 40 60.7746 16 0 0 130.593 -176.75 -206.163 + 40 46.5138 15 0 0 130.656 -176.95 -206.113 + 40 78.0336 14 0 0 130.714 -177.15 -206.096 + 40 106.127 13 0 0 130.789 -177.351 -206.111 + 40 132.268 12 0 0 130.93 -177.55 -206.095 + 40 352.221 715 2 0 56.9215 -36.8953 -145.85 + 40 2.49361 1212 1 1 62.6377 -37.3864 -174.45 + 40 90.6519 1213 1 1 62.65 -37.3857 -174.458 + 40 87.1882 1214 1 1 62.8504 -37.3716 -174.598 + 40 90.2895 1215 1 1 63.05 -37.3661 -174.732 + 40 197.812 713 1 0 64.7508 -37.3153 -175.85 + 40 34.0813 712 1 0 65.2011 -37.4501 -176.186 + 40 41.8565 735 1 0 115.625 -32.9133 -176.25 + 40 105.952 736 1 0 115.665 -32.85 -176.169 + 40 121.167 737 1 0 115.759 -32.65 -175.987 + 40 17.9899 738 1 0 115.842 -32.4499 -175.875 + 40 141.301 1482 1 1 116.711 -30.1448 -174.85 + 40 243.41 1483 1 1 116.75 -29.6138 -174.675 + 40 281.913 1484 1 1 116.95 -29.3995 -174.526 + 40 36.0065 1485 1 1 117.15 -29.2121 -174.458 + 40 125.404 750 1 0 117.837 -29.9894 -175.85 + 40 184.681 714 2 0 57.731 -37.0503 -145.917 +Number of digits in this event: 108 +Using G4ParticleGun... +Particle energy: 2.27105 LIN +Particle: e- Event: 41 -Number of tracker hits in this event = 43 - 41 145.317 1428 10 1 105.886 0.82474 95.55 - 41 147.663 903 10 0 105.887 0.824628 94.15 - 41 112.59 1428 9 1 105.904 0.822637 65.55 - 41 113.454 903 9 0 105.906 0.822922 64.15 - 41 98.0233 1428 8 1 105.941 0.829202 35.55 - 41 114.76 903 8 0 105.943 0.830044 34.15 - 41 141.705 1429 7 1 105.966 0.849365 5.55 - 41 126.065 904 7 0 105.967 0.850529 4.15 - 41 124.703 1429 6 1 105.992 0.871948 -24.45 - 41 116.435 904 6 0 105.993 0.871884 -25.85 - 41 139.247 1429 5 1 106.015 0.867454 -54.45 - 41 123.416 904 5 0 106.012 0.873231 -55.85 - 41 236.965 1429 4 1 105.984 1.03706 -84.45 - 41 192.793 904 4 0 105.999 1.03558 -85.85 - 41 112.283 1430 3 1 106.303 1.02953 -114.45 - 41 162.8 905 3 0 106.318 1.06075 -115.85 - 41 180.273 1432 2 1 106.678 1.75957 -144.45 - 41 148.583 908 2 0 106.717 1.77063 -145.85 - 41 253 1436 1 1 107.444 2.01976 -174.45 - 41 192.107 909 1 0 107.507 2.02006 -175.85 - 41 179.516 1443 0 1 108.786 1.97924 -204.45 - 41 246.021 909 0 0 108.83 1.97007 -205.85 - 41 7.29645 1059 5 0 -120.849 32.05 -56.0426 - 41 101.458 910 1 0 107.6 2.08789 -175.85 - 41 48.3633 1445 0 1 109.186 -6.0707 -204.45 - 41 118.786 1444 0 1 109.15 -5.96781 -204.576 - 41 32.8197 878 0 0 108.899 -4.35204 -205.85 - 41 87.0644 879 0 0 108.885 -4.25 -205.938 - 41 52.6232 880 0 0 108.867 -4.05 -206.101 - 41 370.45 974 0 0 64.6078 14.9742 -206.25 - 41 107.824 973 0 0 64.0791 14.8498 -205.954 - 41 0.516663 1210 0 1 62.051 16.8427 -204.85 - 41 112.664 1209 0 1 62.0498 16.8446 -204.849 - 41 75.0001 1208 0 1 61.85 17.0387 -204.815 - 41 100.299 1207 0 1 61.65 17.1088 -204.79 - 41 71.7302 1206 0 1 61.45 17.213 -204.533 - 41 86.4637 1656 3 1 151.398 2.34563 -114.85 - 41 69.2497 1107 0 0 94.9344 41.6276 -206.25 - 41 301.442 1108 0 0 94.8296 41.65 -206.072 - 41 227.953 1109 0 0 94.5121 41.85 -205.888 - 41 118.987 359 4 1 -108.15 169.689 -84.7257 - 41 190.392 358 4 1 -108.35 169.848 -84.608 - 41 267.344 1428 7 1 105.95 0.956373 5.51102 -Number of digits in this event = 23 -Using G4ParticleGun ... -1.74003 LIN -e- +Number of tracker hits in this event: 52 + 41 91.144 1009 10 1 21.8665 -90.8164 95.55 + 41 158.747 446 10 0 21.8622 -90.819 94.15 + 41 150.049 1008 9 1 21.7869 -90.8724 65.55 + 41 120.021 446 9 0 21.7869 -90.8779 64.15 + 41 197.073 1008 8 1 21.7774 -90.9838 35.55 + 41 133.058 445 8 0 21.7776 -90.9862 34.15 + 41 119.256 1008 7 1 21.7796 -91.0289 5.55 + 41 142.852 445 7 0 21.7826 -91.0275 4.15 + 41 111.559 1008 6 1 21.8081 -90.9688 -24.45 + 41 101.533 445 6 0 21.8046 -90.9692 -25.85 + 41 338.164 1008 5 1 21.7307 -90.9952 -54.45 + 41 115.266 445 5 0 21.7284 -91.0007 -55.85 + 41 222.616 1008 4 1 21.7066 -91.1191 -84.45 + 41 138.903 445 4 0 21.708 -91.125 -85.85 + 41 122.587 1008 3 1 21.6735 -91.2561 -114.45 + 41 115.211 444 3 0 21.6773 -91.2538 -115.85 + 41 104.03 1008 2 1 21.8277 -91.2175 -144.45 + 41 119.595 444 2 0 21.8187 -91.2553 -145.85 + 41 335.631 1008 1 1 21.6707 -92.0609 -174.45 + 41 104.204 440 1 0 21.6144 -92.1278 -175.85 + 41 852.369 1002 0 1 20.5353 -93.4476 -204.45 + 41 334.983 433 0 0 20.5125 -93.4642 -205.85 + 41 249.561 429 0 0 20.1851 -94.1633 -205.85 + 41 73.6153 1003 0 1 20.65 -93.3749 -204.619 + 41 226.972 1007 2 1 21.6428 -91.4854 -144.45 + 41 354.741 443 2 0 21.6393 -91.4848 -145.85 + 41 628.394 1007 1 1 21.5974 -91.4959 -174.45 + 41 212.351 443 1 0 21.609 -91.4949 -175.85 + 41 125.872 1009 0 1 21.9178 -91.5093 -204.45 + 41 109.201 443 0 0 21.9619 -91.5259 -205.85 + 41 151.634 442 1 0 21.6394 -91.5948 -175.85 + 41 146.109 1019 0 1 23.8786 -94.1076 -204.45 + 41 50.62 1201 0 1 60.25 -102.028 -204.626 + 41 14.0965 829 1 1 -14.0568 -47.6269 -174.85 + 41 41.0418 444 1 0 21.624 -91.35 -176.124 + 41 117.104 1012 0 1 22.5638 -88.6847 -204.45 + 41 173.94 458 0 0 22.4212 -88.4479 -205.85 + 41 65.8548 441 1 0 21.4598 -91.75 -176.023 + 41 211.207 1004 0 1 20.9695 -91.8641 -204.45 + 41 171.905 441 0 0 20.9372 -91.88 -205.85 + 41 93.563 1006 1 1 21.45 -91.411 -174.693 + 41 155.494 1005 1 1 21.2499 -91.4808 -174.742 + 41 80.8984 1009 1 1 21.85 -91.3541 -174.643 + 41 109.75 1009 8 1 21.8501 -90.9257 35.4534 + 41 15.4251 1010 8 1 22.05 -90.6726 35.19 + 41 14.3528 451 8 0 22.754 -89.6724 34.15 + 41 55.5175 452 8 0 22.7701 -89.65 34.1257 + 41 79.7469 453 8 0 22.8701 -89.45 33.9836 + 41 52.243 454 8 0 22.9276 -89.25 33.928 + 41 62.9751 455 8 0 22.8776 -89.05 33.8728 + 41 15.8708 456 8 0 22.852 -88.85 33.7821 + 41 59.483 1206 12 1 61.3829 -133.712 155.15 +Number of digits in this event: 28 +Using G4ParticleGun... +Particle energy: 8.18251 LIN +Particle: e- Event: 42 -Number of tracker hits in this event = 57 - 42 109.286 698 10 1 -40.3888 92.9277 95.55 - 42 157.298 1363 10 0 -40.3885 92.9261 94.15 - 42 116.02 698 9 1 -40.3671 92.8881 65.55 - 42 132.58 1363 9 0 -40.3719 92.8869 64.15 - 42 161.898 697 8 1 -40.4648 92.8584 35.55 - 42 156.878 1363 8 0 -40.4668 92.8482 34.15 - 42 156.584 697 7 1 -40.5144 92.6147 5.55 - 42 207.525 1362 7 0 -40.5197 92.5989 4.15 - 42 108.984 697 6 1 -40.626 92.2713 -24.45 - 42 170.033 1360 6 0 -40.6305 92.2538 -25.85 - 42 203.846 696 5 1 -40.7006 91.9066 -54.45 - 42 132.773 1358 5 0 -40.703 91.8846 -55.85 - 42 120.572 696 4 1 -40.7637 91.4322 -84.45 - 42 105.506 1356 4 0 -40.7638 91.4031 -85.85 - 42 108.982 696 3 1 -40.7529 90.815 -114.45 - 42 114.599 1353 3 0 -40.7518 90.7948 -115.85 - 42 195.908 696 2 1 -40.7072 90.3692 -144.45 - 42 430.315 1350 2 0 -40.7112 90.346 -145.85 - 42 226.697 696 1 1 -40.7975 89.8943 -174.45 - 42 122.121 1349 1 0 -40.8102 89.8504 -175.85 - 42 227.085 1348 1 0 -40.8103 89.85 -175.862 - 42 118.589 694 0 1 -41.0624 88.9536 -204.45 - 42 129.83 1344 0 0 -41.0711 88.9042 -205.85 - 42 206.098 1351 2 0 -40.804 90.3546 -145.85 - 42 115.838 684 0 1 -43.1493 90.0318 -204.45 - 42 214.135 1349 0 0 -43.4046 90.0086 -205.85 - 42 192.059 693 1 1 -41.2742 90.0032 -174.45 - 42 11.8808 693 0 1 -41.4429 85.2485 -204.45 - 42 117.125 692 0 1 -41.45 85.2388 -204.486 - 42 377.2 1323 0 0 -41.7393 84.8313 -205.85 - 42 94.9971 1714 0 0 -71.918 162.95 -206.055 - 42 145.774 1715 0 0 -71.8791 163.15 -206.099 - 42 71.7132 695 5 1 -40.85 91.8702 -54.5626 - 42 81.8246 694 5 1 -41.05 91.8257 -54.6939 - 42 23.4104 693 5 1 -41.2502 91.7918 -54.8103 - 42 174.373 1357 5 0 -43.614 91.6885 -55.85 - 42 270.38 694 2 1 -41.1291 90.4908 -144.45 - 42 123.969 713 1 1 -37.3059 87.3657 -174.45 - 42 302.469 1336 1 0 -37.2476 87.3445 -175.85 - 42 47.5141 718 0 1 -36.3069 86.5467 -204.45 - 42 100.73 719 0 1 -36.25 86.5759 -204.641 - 42 92.7539 1333 0 0 -35.8725 86.8056 -205.851 - 42 51.3617 1334 0 0 -35.8039 86.85 -206.076 - 42 131.337 709 1 1 -38.2198 84.2566 -174.45 - 42 1.69564 710 1 1 -38.05 84.3224 -174.841 - 42 296.646 1322 1 0 -37.6344 84.4599 -175.85 - 42 94.6419 749 0 1 -30.2409 86.1778 -204.45 - 42 132.428 750 0 1 -30.05 86.4088 -204.612 - 42 15.6213 751 0 1 -29.85 86.6561 -204.822 - 42 25.438 1338 0 0 -29.1094 87.8019 -205.85 - 42 114.923 1339 0 0 -29.0769 87.85 -205.894 - 42 63.7615 1340 0 0 -28.9275 88.05 -206.102 - 42 144.96 1725 1 0 55.3501 165.15 -176.166 - 42 53.9338 1323 1 0 -37.364 84.65 -176.005 - 42 59.9627 1324 1 0 -37.3502 84.85 -176.089 - 42 65.1502 1325 1 0 -37.3812 85.05 -176.132 - 42 41.1919 1326 1 0 -37.429 85.25 -176.186 -Number of digits in this event = 32 -Using G4ParticleGun ... -2.46721 LIN -e- +Number of tracker hits in this event: 62 + 42 105.974 517 10 1 -76.4611 -77.0389 95.55 + 42 168.022 515 10 0 -76.4608 -77.0392 94.15 + 42 126.729 517 9 1 -76.4521 -77.0391 65.55 + 42 263.787 515 9 0 -76.4512 -77.0389 64.15 + 42 110.253 518 8 1 -76.4343 -77.0415 35.55 + 42 105.359 515 8 0 -76.4325 -77.0418 34.15 + 42 106.803 518 7 1 -76.3918 -77.0468 5.55 + 42 131.587 515 7 0 -76.3904 -77.0478 4.15 + 42 180.097 518 6 1 -76.3612 -77.0733 -24.45 + 42 154.917 514 6 0 -76.3596 -77.0738 -25.85 + 42 125.491 518 5 1 -76.3262 -77.0878 -54.45 + 42 127.817 514 5 0 -76.3248 -77.0892 -55.85 + 42 102.164 518 4 1 -76.2971 -77.1116 -84.45 + 42 113.174 514 4 0 -76.2946 -77.113 -85.85 + 42 112.335 519 3 1 -76.2413 -77.1395 -114.45 + 42 246.08 514 3 0 -76.2385 -77.1397 -115.85 + 42 210.37 519 2 1 -76.1778 -77.1547 -144.45 + 42 125.377 514 2 0 -76.1736 -77.1548 -145.85 + 42 120.908 519 1 1 -76.088 -77.153 -174.45 + 42 130.91 514 1 0 -76.0827 -77.1531 -175.85 + 42 111.765 520 0 1 -75.9702 -77.1525 -204.45 + 42 116.392 514 0 0 -75.9645 -77.1531 -205.85 + 42 1.73645 1221 5 1 64.388 -117.916 -54.85 + 42 0.91615 374 1 1 -105.274 -61.8223 -174.85 + 42 17.9654 1450 6 0 -69.4144 110.15 -26.0338 + 42 52.0386 311 0 1 -117.75 -65.1095 -204.686 + 42 78.3442 310 0 1 -117.95 -65.1572 -204.689 + 42 301.417 309 0 1 -118.15 -65.2926 -204.719 + 42 288.026 308 0 1 -118.35 -65.5167 -204.487 + 42 96.299 520 2 1 -76.05 -77.4021 -144.572 + 42 52.8856 521 2 1 -75.85 -77.6775 -144.721 + 42 6.57587 506 2 0 -74.7889 -78.8308 -145.85 + 42 76.9071 505 2 0 -74.7777 -78.8504 -145.867 + 42 72.9882 504 2 0 -74.7278 -79.05 -146.055 + 42 20.118 503 2 0 -74.6574 -79.25 -146.221 + 42 213.548 353 2 0 -57.4229 -109.502 -146.249 + 42 11.1094 605 2 1 -59.0002 -109.352 -144.85 + 42 75.186 604 2 1 -59.05 -109.353 -144.822 + 42 76.3264 603 2 1 -59.25 -109.346 -144.62 + 42 223.917 602 2 1 -59.45 -109.162 -144.456 + 42 407.847 601 2 1 -59.6505 -108.69 -144.678 + 42 266.2 600 2 1 -59.85 -108.379 -144.748 + 42 191.406 599 2 1 -60.05 -108.16 -144.792 + 42 171.008 518 3 1 -76.2649 -77.0826 -114.45 + 42 6.16217 490 2 1 -82.0393 -78.6038 -144.45 + 42 165.688 489 2 1 -82.05 -78.5983 -144.468 + 42 7.31959 488 2 1 -82.25 -78.5139 -144.848 + 42 132.786 508 2 0 -82.719 -78.3718 -145.85 + 42 6.16156 413 1 1 -97.5372 -72.8993 -174.45 + 42 168.833 412 1 1 -97.5501 -72.9079 -174.461 + 42 84.888 411 1 1 -97.75 -73.0457 -174.64 + 42 22.7236 410 1 1 -97.95 -73.182 -174.82 + 42 50.3087 530 1 0 -99.198 -73.9853 -175.85 + 42 125.461 529 1 0 -99.2928 -74.05 -175.927 + 42 31.7206 528 1 0 -99.5663 -74.25 -176.18 + 42 1.74527 246 0 1 -130.942 -95.7521 -204.45 + 42 73.1908 245 0 1 -130.95 -95.7531 -204.454 + 42 72.5917 244 0 1 -131.15 -95.7812 -204.549 + 42 62.0967 243 0 1 -131.35 -95.8113 -204.655 + 42 64.5275 242 0 1 -131.55 -95.8386 -204.753 + 42 9.92915 241 0 1 -131.75 -95.8678 -204.839 + 42 373.811 419 0 0 -134.678 -96.154 -205.85 +Number of digits in this event: 29 +Using G4ParticleGun... +Particle energy: 3.9871 LIN +Particle: e- Event: 43 -Number of tracker hits in this event = 55 - 43 161.294 653 11 1 -49.4104 -56.3177 125.55 - 43 125.534 618 11 0 -49.4104 -56.3171 124.15 - 43 118.74 653 10 1 -49.4066 -56.3162 95.55 - 43 150.936 618 10 0 -49.421 -56.3214 94.15 - 43 117.721 651 9 1 -49.7929 -56.3956 65.55 - 43 128.758 618 9 0 -49.8246 -56.379 64.15 - 43 112.859 648 8 1 -50.4158 -55.9183 35.55 - 43 140.278 620 8 0 -50.4366 -55.8911 34.15 - 43 150.777 646 7 1 -50.7764 -55.2937 5.55 - 43 338.096 623 7 0 -50.7826 -55.2638 4.15 - 43 46.0656 675 7 0 -83.1268 -44.8879 3.75 - 43 177.289 676 7 0 -83.2476 -44.85 3.86359 - 43 7.11253 677 7 0 -83.547 -44.65 4.13443 - 43 51.4936 477 7 1 -84.5114 -43.8065 5.15 - 43 94.3925 476 7 1 -84.65 -43.6951 5.26264 - 43 100.935 475 7 1 -84.85 -43.4612 5.40689 - 43 60.8142 474 7 1 -85.0744 -43.0424 5.55 - 43 127.627 473 7 1 -85.25 -42.9815 5.5005 - 43 64.6607 472 7 1 -85.45 -42.894 5.4682 - 43 72.9612 471 7 1 -85.6505 -42.7753 5.45602 - 43 82.5071 470 7 1 -85.85 -42.6896 5.46956 - 43 68.0924 469 7 1 -86.05 -42.5993 5.5114 - 43 68.073 468 7 1 -86.25 -42.5362 5.53502 - 43 59.9317 467 7 1 -86.45 -42.5291 5.53993 - 43 139.273 466 7 1 -86.65 -42.5444 5.49764 - 43 80.6343 465 7 1 -86.8506 -42.5082 5.43815 - 43 46.7242 464 7 1 -87.05 -42.4283 5.43414 - 43 57.9247 463 7 1 -87.2507 -42.3625 5.42375 - 43 43.6784 462 7 1 -87.45 -42.3348 5.42141 - 43 57.3294 461 7 1 -87.65 -42.3151 5.39255 - 43 45.7844 460 7 1 -87.8501 -42.2413 5.36246 - 43 85.9671 459 7 1 -88.0502 -42.1795 5.31459 - 43 249.75 458 7 1 -88.25 -42.1732 5.25983 - 43 101.903 457 7 1 -88.45 -42.322 5.26347 - 43 34.5982 685 7 0 -89.0749 -43.0027 4.14993 - 43 158.514 684 7 0 -89.1262 -43.0502 4.03968 - 43 311.41 511 7 0 -124.559 -77.7265 3.75 - 43 94.3472 275 7 1 -124.953 -77.7902 5.15 - 43 329.275 276 7 1 -124.95 -77.8249 5.25086 - 43 405.11 652 2 1 -49.5072 -56.6038 -144.45 - 43 306.363 617 2 0 -49.5079 -56.6345 -145.85 - 43 140.818 651 1 1 -49.6639 -57.2663 -174.45 - 43 286.267 617 1 0 -49.7297 -56.5206 -175.85 - 43 89.7385 618 1 0 -49.7351 -56.45 -175.99 - 43 74.4591 651 0 1 -49.7738 -45.8581 -204.45 - 43 73.3369 652 0 1 -49.65 -45.7926 -204.648 - 43 148.23 672 0 0 -48.7403 -45.6039 -205.85 - 43 108.798 556 1 1 -68.7269 -33.0406 -174.85 - 43 125.484 654 1 1 -49.0908 -56.6676 -174.45 - 43 123.128 664 0 1 -47.1116 -56.1936 -204.45 - 43 135.53 619 0 0 -47.1043 -56.2042 -205.85 - 43 98.9163 513 0 1 -77.25 -68.5726 -204.639 - 43 163.106 543 0 0 -79.7979 -71.25 -206.018 - 43 125.377 544 0 0 -80.0193 -71.25 -206.019 - 43 279.349 512 0 1 -77.4503 -68.4802 -204.492 -Number of digits in this event = 28 -Using G4ParticleGun ... -1.37977 LIN -e- +Number of tracker hits in this event: 57 + 43 109.762 1250 10 1 70.1625 85.8178 95.55 + 43 105.328 1328 10 0 70.1617 85.818 94.15 + 43 147.866 1250 9 1 70.1444 85.8222 65.55 + 43 116.501 1328 9 0 70.1443 85.8239 64.15 + 43 150.585 1250 8 1 70.139 85.8608 35.55 + 43 127.025 1329 8 0 70.1413 85.8605 34.15 + 43 121.287 1250 7 1 70.1766 85.8456 5.55 + 43 115.897 1328 7 0 70.1836 85.8455 4.15 + 43 239.06 1251 6 1 70.3259 85.8581 -24.45 + 43 127.359 1329 6 0 70.3444 85.8569 -25.85 + 43 150.799 1253 5 1 70.7176 85.8377 -54.45 + 43 108.823 1328 5 0 70.727 85.8316 -55.85 + 43 185.588 1254 4 1 70.9092 85.7208 -84.45 + 43 116.576 1328 4 0 70.9242 85.7069 -85.85 + 43 114.79 1255 3 1 71.2298 85.3985 -114.45 + 43 205.578 1326 3 0 71.2495 85.3844 -115.85 + 43 116.593 1258 2 1 71.654 85.1258 -144.45 + 43 111.237 1325 2 0 71.6753 85.1049 -145.85 + 43 117.885 1260 1 1 72.1191 84.6784 -174.45 + 43 90.4222 1323 1 0 72.1373 84.659 -175.85 + 43 125.918 1262 0 1 72.5377 84.2566 -204.45 + 43 102.27 1320 0 0 72.5549 84.2352 -205.85 + 43 83.1457 1321 0 0 72.5428 84.25 -206.091 + 43 219.083 1252 1 1 70.4583 86.1318 -174.45 + 43 293.968 1330 1 0 70.4574 86.1372 -175.85 + 43 218.643 1252 0 1 70.4512 86.2457 -204.45 + 43 229.676 1331 0 0 70.4515 86.2526 -205.85 + 43 13.4383 1253 0 1 70.65 86.4271 -204.809 + 43 320.579 1603 1 0 129.039 140.806 -176.25 + 43 77.0606 1604 1 0 129.186 140.95 -176.185 + 43 113.253 1251 3 1 70.4241 85.8493 -114.45 + 43 119.227 1330 3 0 69.8607 86.154 -115.85 + 43 148.581 1232 2 1 66.4884 88.9533 -144.45 + 43 6.78613 1233 2 1 66.6504 88.813 -144.825 + 43 14.8585 1343 2 0 67.1179 88.6587 -145.85 + 43 124.711 1342 2 0 67.1433 88.65 -145.903 + 43 98.3679 1066 2 0 103.268 33.3606 -146.25 + 43 60.0092 1065 2 0 103.264 33.25 -146.209 + 43 70.1091 1064 2 0 103.221 33.05 -146.16 + 43 84.6995 1063 2 0 103.078 32.85 -146.152 + 43 16.9322 1282 7 1 76.4695 96.5417 5.55 + 43 79.9483 1281 7 1 76.45 96.5546 5.53987 + 43 63.2397 1280 7 1 76.2498 96.6345 5.42835 + 43 91.4952 1279 7 1 76.0498 96.7023 5.31294 + 43 26.6815 1278 7 1 75.8499 96.7708 5.19343 + 43 55.8203 1388 7 0 74.0444 97.8357 4.15 + 43 96.3947 1389 7 0 73.8932 97.9504 4.06318 + 43 89.7789 1390 7 0 73.6975 98.1503 3.95858 + 43 16.1349 1391 7 0 73.589 98.35 3.78915 + 43 25.4697 1224 6 1 65.0164 127.832 -24.45 + 43 78.3548 1225 6 1 65.05 127.784 -24.4913 + 43 72.9038 1226 6 1 65.25 127.571 -24.65 + 43 31.002 1227 6 1 65.45 127.39 -24.7878 + 43 72.3178 1527 6 0 66.2524 125.715 -25.8501 + 43 58.7068 1526 6 0 66.3355 125.55 -25.9269 + 43 76.7178 1525 6 0 66.4123 125.35 -26.0061 + 43 69.0459 1524 6 0 66.473 125.15 -26.1274 +Number of digits in this event: 19 +Using G4ParticleGun... +Particle energy: 7.7715 LIN +Particle: e- Event: 44 -Number of tracker hits in this event = 67 - 44 118.482 227 9 1 -134.657 8.37087 65.55 - 44 139.395 941 9 0 -134.658 8.37179 64.15 - 44 111.708 227 8 1 -134.68 8.42844 35.55 - 44 126.703 941 8 0 -134.681 8.43495 34.15 - 44 125.973 227 7 1 -134.712 8.56526 5.55 - 44 103.697 942 7 0 -134.712 8.57197 4.15 - 44 267.979 227 6 1 -134.721 8.72412 -24.45 - 44 198.053 943 6 0 -134.719 8.73333 -25.85 - 44 168.562 227 5 1 -134.691 8.9208 -54.45 - 44 107.306 944 5 0 -134.683 8.93827 -55.85 - 44 115.053 227 4 1 -134.588 9.29905 -84.45 - 44 126.439 946 4 0 -134.582 9.31311 -85.85 - 44 127.044 228 3 1 -134.479 9.59977 -114.45 - 44 129.574 947 3 0 -134.479 9.62193 -115.85 - 44 678.165 228 2 1 -134.464 10.1207 -144.45 - 44 156.435 950 2 0 -134.466 10.1372 -145.85 - 44 126.701 228 1 1 -134.489 10.4439 -174.451 - 44 112.972 951 1 0 -134.489 10.4275 -175.85 - 44 282.256 227 0 1 -134.72 10.3059 -204.45 - 44 91.0537 950 0 0 -134.697 10.1235 -205.85 - 44 99.9395 228 0 1 -134.55 9.48193 -204.489 - 44 63.6136 955 3 0 -107.289 11.1502 -116.25 - 44 201.014 847 3 0 -121.121 -10.627 -116.25 - 44 110.377 846 3 0 -121.146 -10.65 -116.237 - 44 151.028 948 2 0 -134.652 9.84912 -145.85 - 44 136.451 204 1 1 -139.282 9.24825 -174.45 - 44 154.327 948 1 0 -139.397 9.70834 -175.851 - 44 188.352 196 0 1 -140.753 19.9479 -204.45 - 44 32.5754 197 0 1 -140.75 20.0421 -204.725 - 44 81.1532 1001 0 0 -140.757 20.3855 -205.85 - 44 52.1366 1002 0 0 -140.757 20.4502 -206.087 - 44 109.495 229 2 1 -134.338 9.92108 -144.45 - 44 104.775 949 2 0 -134.346 10.0003 -145.85 - 44 178.938 226 1 1 -134.778 11.8931 -174.45 - 44 15.6284 959 1 0 -134.758 11.8521 -175.85 - 44 98.0932 958 1 0 -134.757 11.85 -175.915 - 44 121.944 232 0 1 -133.673 11.1171 -204.45 - 44 169.246 955 0 0 -133.814 11.0796 -205.85 - 44 146.641 954 0 0 -133.819 11.05 -205.966 - 44 189.936 953 0 0 -133.481 10.85 -205.994 - 44 190.925 952 0 0 -133.068 10.65 -206.087 - 44 181.23 951 0 0 -132.945 10.45 -206.163 - 44 35.897 227 2 1 -134.563 9.23129 -144.45 - 44 12.1385 942 2 0 -134.422 8.47037 -145.85 - 44 91.9729 941 2 0 -134.419 8.45 -145.884 - 44 32.0002 940 2 0 -134.374 8.25 -146.189 - 44 139.977 219 1 1 -136.238 -18.6564 -174.45 - 44 217.728 803 1 0 -136.595 -19.2527 -175.85 - 44 14.2217 192 0 1 -141.561 -30.6979 -204.45 - 44 144.901 193 0 1 -141.55 -30.7109 -204.485 - 44 4.81682 738 0 0 -141.194 -32.4478 -205.85 - 44 68.4859 737 0 0 -141.194 -32.45 -205.852 - 44 151.1 736 0 0 -141.145 -32.65 -205.973 - 44 92.6863 735 0 0 -141.08 -32.85 -206.082 - 44 83.2797 734 0 0 -140.978 -33.05 -206.173 - 44 22.1749 952 2 0 -133.887 10.5989 -145.85 - 44 103.634 953 2 0 -133.858 10.6502 -145.912 - 44 27.9642 954 2 0 -133.75 10.8503 -146.198 - 44 223.307 272 1 1 -125.577 25.3563 -174.45 - 44 110.003 1024 1 0 -125.969 24.9677 -175.85 - 44 14.5737 1023 1 0 -126.081 24.85 -176.205 - 44 133.951 214 0 1 -137.204 14.9128 -204.45 - 44 3.36588 213 0 1 -137.35 14.8287 -204.839 - 44 127.636 972 0 0 -137.778 14.5488 -205.851 - 44 32.5801 971 0 0 -137.897 14.45 -206.134 - 44 140.521 947 0 0 -137.595 9.57408 -206.25 - 44 183.144 948 0 0 -137.529 9.65 -206.066 -Number of digits in this event = 36 -Using G4ParticleGun ... -2.55463 LIN -e- +Number of tracker hits in this event: 39 + 44 93.3913 1320 11 0 5.46676 84.1086 124.08 + 44 124.055 927 10 1 5.46459 84.1096 95.55 + 44 127.796 1320 10 0 5.46407 84.1097 94.15 + 44 145.564 927 9 1 5.45318 84.1112 65.55 + 44 189.072 1320 9 0 5.45228 84.1113 64.15 + 44 100.621 926 8 1 5.43345 84.1087 35.55 + 44 130.492 1320 8 0 5.43188 84.1088 34.15 + 44 102.925 926 7 1 5.40267 84.1109 5.55 + 44 137.07 1320 7 0 5.39936 84.1119 4.15 + 44 107.986 926 6 1 5.32694 84.1302 -24.45 + 44 155.927 1320 6 0 5.32334 84.1314 -25.85 + 44 130.004 926 5 1 5.25156 84.1581 -54.45 + 44 107.588 1320 5 0 5.24902 84.1606 -55.85 + 44 134.324 925 4 1 5.2 84.2123 -84.45 + 44 152.537 1320 4 0 5.19658 84.2135 -85.85 + 44 110.539 925 3 1 5.12102 84.2227 -114.45 + 44 106.423 1320 3 0 5.11841 84.2229 -115.85 + 44 204.192 925 2 1 5.06318 84.2358 -144.45 + 44 336.326 1320 2 0 5.0636 84.2359 -145.85 + 44 206.483 925 1 1 5.0777 84.2342 -174.45 + 44 103.908 1320 1 0 5.08166 84.2395 -175.85 + 44 227.533 925 0 1 5.17257 84.3345 -204.45 + 44 261.667 1321 0 0 5.1814 84.338 -205.85 + 44 165.776 924 2 1 5.04762 84.2355 -144.45 + 44 279.49 924 1 1 5.02335 84.3549 -174.45 + 44 88.8589 1321 1 0 5.02312 84.3596 -175.85 + 44 108.674 924 0 1 5.00563 84.4381 -204.45 + 44 3.69913 1314 2 0 7.29988 82.8556 -145.85 + 44 45.2484 1313 2 0 7.30973 82.85 -145.855 + 44 3.63732 940 2 1 8.23944 82.6363 -144.85 + 44 170.215 941 2 1 8.25033 82.6391 -144.839 + 44 155.827 942 2 1 8.45 82.7426 -144.776 + 44 118.026 927 1 1 5.51748 83.9367 -174.45 + 44 128.68 1319 1 0 5.54574 83.9248 -175.85 + 44 114.089 930 0 1 6.14788 83.5993 -204.45 + 44 115.379 1317 0 0 6.19607 83.5605 -205.85 + 44 257.582 813 0 0 79.6587 -17.3059 -206.25 + 44 39.4471 935 1 1 7.0724 43.463 -174.85 + 44 112.287 591 10 1 -61.6877 -24.0314 95.15 +Number of digits in this event: 24 +Using G4ParticleGun... +Particle energy: 1.58327 LIN +Particle: e- Event: 45 -Number of tracker hits in this event = 37 - 45 102.888 756 11 1 -28.6619 -20.6302 125.55 - 45 98.9903 797 11 0 -28.6656 -20.6309 124.15 - 45 134.813 756 10 1 -28.7251 -20.6445 95.55 - 45 112.456 797 10 0 -28.7289 -20.6437 94.15 - 45 107.825 756 9 1 -28.7952 -20.6326 65.55 - 45 168.276 797 9 0 -28.799 -20.6334 64.15 - 45 120.016 755 8 1 -28.8885 -20.6531 35.55 - 45 257.057 796 8 0 -28.8952 -20.6557 34.15 - 45 119.686 755 7 1 -29.0402 -20.7163 5.55 - 45 144.765 796 7 0 -29.047 -20.7203 4.15 - 45 108.623 754 6 1 -29.1802 -20.8029 -24.45 - 45 125.614 796 6 0 -29.198 -20.8406 -25.85 - 45 209.179 753 5 1 -29.3788 -21.0374 -54.45 - 45 192.94 794 5 0 -29.4177 -21.1219 -55.85 - 45 115.758 749 4 1 -30.1501 -23.0229 -84.45 - 45 119.231 784 4 0 -30.1604 -23.08 -85.85 - 45 130.766 746 3 1 -30.7224 -24.6333 -114.45 - 45 112.453 776 3 0 -30.7307 -24.7344 -115.85 - 45 123.041 743 2 1 -31.309 -26.8324 -144.45 - 45 67.411 765 2 0 -31.364 -27.0235 -145.85 - 45 131.996 764 2 0 -31.3709 -27.05 -146.047 - 45 132.824 737 1 1 -32.4619 -30.696 -174.45 - 45 149.719 745 1 0 -32.4284 -30.9039 -175.85 - 45 125.051 740 0 1 -31.941 -35.1363 -204.45 - 45 57.4333 724 0 0 -32.0145 -35.2343 -205.85 - 45 43.926 723 0 0 -32.028 -35.25 -206.078 - 45 5.76081 705 2 1 -39.017 -27.8354 -144.85 - 45 13.5654 757 2 0 -40.3782 -28.6281 -145.85 - 45 26.8067 673 2 1 -45.4382 -29.6224 -144.85 - 45 48.0997 750 2 0 -45.2842 -29.9701 -145.85 - 45 32.0976 727 0 0 -34.2583 -34.6224 -205.85 - 45 46.4358 795 6 0 -29.201 -20.8503 -26.1841 - 45 99.3408 730 6 0 -31.8894 -33.9159 -26.25 - 45 83.643 729 6 0 -31.9913 -34.05 -25.9989 - 45 344.021 744 6 1 -31.2078 -35.2645 -24.85 - 45 242.359 1000 2 1 20.05 -18.5539 -144.564 - 45 73.3255 999 2 1 20.0499 -18.7332 -144.538 -Number of digits in this event = 17 -Using G4ParticleGun ... -2.41775 LIN -e- +Number of tracker hits in this event: 89 + 45 149.025 925 11 1 5.10038 68.197 125.55 + 45 162.883 1240 11 0 5.09526 68.194 124.15 + 45 174.74 924 10 1 4.96376 68.1058 95.55 + 45 120.388 1240 10 0 4.95681 68.1053 94.15 + 45 109.852 923 9 1 4.82661 68.0953 65.55 + 45 101.033 1240 9 0 4.81977 68.0924 64.15 + 45 226.386 923 8 1 4.66815 68.0301 35.55 + 45 188.722 1239 8 0 4.65507 68.0234 34.15 + 45 174.671 921 7 1 4.39125 67.8907 5.55 + 45 138.887 1239 7 0 4.37866 67.8852 4.15 + 45 109.148 920 6 1 4.10719 67.7378 -24.45 + 45 155.427 1238 6 0 4.09363 67.7345 -25.85 + 45 106.253 918 5 1 3.81602 67.6565 -54.45 + 45 138.908 1238 5 0 3.80327 67.6604 -55.85 + 45 110.587 917 4 1 3.51337 67.7261 -84.45 + 45 131.309 1238 4 0 3.50321 67.7311 -85.85 + 45 246.381 916 3 1 3.33639 67.8535 -114.45 + 45 246.469 1239 3 0 3.31361 67.8617 -115.85 + 45 46.8781 914 2 1 2.85242 68.0468 -144.45 + 45 58.5869 913 2 1 2.85 68.0468 -144.611 + 45 174.457 1239 2 0 2.83231 68.0468 -145.85 + 45 99.4248 911 1 1 2.44398 68.0472 -174.45 + 45 113.336 1239 1 0 2.41885 68.0382 -175.85 + 45 367.567 909 0 1 1.88699 67.8128 -204.45 + 45 143.066 1238 0 0 1.87292 67.8089 -205.85 + 45 230.706 1241 0 0 1.8709 68.3268 -205.85 + 45 52.6009 1238 3 0 3.24645 67.7986 -115.85 + 45 18.7166 1240 3 0 3.46557 68.0502 -116.201 + 45 329.679 1523 3 0 -52.15 124.778 -116.25 + 45 110.549 922 7 1 4.45 67.849 5.46313 + 45 24.7714 923 7 1 4.65 67.5419 5.23368 + 45 21.7608 1234 7 0 5.09432 66.8899 4.15 + 45 106.521 1233 7 0 5.11823 66.85 4.07918 + 45 137.476 922 8 1 4.65 68.0578 35.2533 + 45 242.146 931 6 1 6.25122 66.3477 -24.45 + 45 227.383 1231 6 0 6.31205 66.3107 -25.85 + 45 136.521 936 5 1 7.31705 64.9344 -54.45 + 45 111.672 1223 5 0 7.41702 64.8258 -55.85 + 45 293.397 945 4 1 9.15499 62.833 -84.45 + 45 204.591 1212 4 0 9.36481 62.6329 -85.85 + 45 135.971 966 3 1 13.2518 58.5301 -114.45 + 45 94.9825 1191 3 0 13.5267 58.2994 -115.85 + 45 26.2223 1190 3 0 13.5856 58.25 -116.144 + 45 97.9051 996 2 1 19.3825 53.5164 -144.45 + 45 31.072 997 2 1 19.4502 53.4576 -144.742 + 45 148.38 1165 2 0 19.7131 53.2448 -145.85 + 45 59.1502 1029 1 1 25.9776 48.2129 -174.45 + 45 43.9677 1030 1 1 26.0501 48.1668 -174.684 + 45 157.916 1139 1 0 26.4109 47.9459 -175.85 + 45 72.3044 1075 0 1 35.18 42.7986 -204.45 + 45 90.8536 1076 0 1 35.2502 42.7323 -204.683 + 45 107.064 1111 0 0 35.5902 42.3958 -205.85 + 45 22.6733 946 4 1 9.25009 62.7536 -84.793 + 45 157.235 934 5 1 6.9256 66.5839 -54.45 + 45 104.368 1232 5 0 6.997 66.537 -55.85 + 45 144.055 940 4 1 8.22068 66.1566 -84.45 + 45 112.993 1230 4 0 8.30124 66.1727 -85.85 + 45 226.102 951 3 1 10.2916 66.3747 -114.45 + 45 129.731 1231 3 0 10.4338 66.4291 -115.85 + 45 173.376 967 2 1 13.6206 67.4592 -144.45 + 45 63.5299 968 2 1 13.65 67.4708 -144.635 + 45 117.271 1237 2 0 13.8421 67.548 -145.85 + 45 194.366 990 1 1 18.0724 69.2786 -174.45 + 45 131.927 1246 1 0 18.2181 69.3256 -175.85 + 45 122.658 1007 0 1 21.4818 70.3526 -204.45 + 45 163.52 1251 0 0 21.7072 70.4224 -205.85 + 45 4.17845 1038 1 0 30.911 27.6584 -176.25 + 45 69.0378 1037 1 0 30.9129 27.65 -176.244 + 45 107.509 1036 1 0 30.882 27.4499 -176.109 + 45 421.747 1035 1 0 30.7999 27.25 -176.017 + 45 156.626 1049 1 1 29.8874 26.0653 -174.85 + 45 284.602 1048 1 1 29.85 26.036 -174.818 + 45 233.457 1050 1 1 30.05 25.343 -174.652 + 45 91.7702 1235 3 0 10.7925 67.0912 -115.85 + 45 75.1844 1236 3 0 10.8927 67.25 -116.038 + 45 12.868 1237 3 0 11.0055 67.4501 -116.219 + 45 1.87475 1533 3 0 25.8708 126.751 -116.25 + 45 121.166 1532 3 0 25.8686 126.75 -116.244 + 45 63.4378 1025 3 1 25.1551 126.264 -114.85 + 45 204.277 1024 3 1 25.05 126.23 -114.705 + 45 58.794 1023 3 1 24.85 126.212 -114.522 + 45 135.421 1022 3 1 24.5885 126.352 -114.45 + 45 18.5722 1021 3 1 24.45 126.547 -114.803 + 45 154.39 1531 3 0 23.0774 126.55 -115.85 + 45 94.0877 1530 3 0 22.8185 126.35 -115.951 + 45 33.5748 1015 3 1 23.2138 126.302 -114.85 + 45 89.8044 1016 3 1 23.25 126.289 -114.728 + 45 225.361 1017 3 1 23.45 126.215 -114.642 + 45 222.682 1018 3 1 23.65 125.833 -114.566 +Number of digits in this event: 47 +Using G4ParticleGun... +Particle energy: 3.68255 LIN +Particle: e- Event: 46 -Number of tracker hits in this event = 143 - 46 121.198 924 10 1 4.86301 -115.033 95.55 - 46 124.02 325 10 0 4.865 -115.03 94.15 - 46 141.452 924 9 1 4.96401 -115.005 65.55 - 46 121.184 325 9 0 4.98677 -114.996 64.15 - 46 116.099 927 8 1 5.47097 -114.798 35.55 - 46 113.347 326 8 0 5.48502 -114.801 34.15 - 46 123.395 928 7 1 5.79154 -114.863 5.55 - 46 143.78 326 7 0 5.81246 -114.867 4.15 - 46 107.301 930 6 1 6.24134 -114.963 -24.45 - 46 149.909 325 6 0 6.2682 -114.962 -25.85 - 46 113.352 933 5 1 6.82599 -114.971 -54.45 - 46 130.06 325 5 0 6.85001 -114.979 -55.85 - 46 364.882 928 4 1 5.71424 -114.751 -84.45 - 46 125.115 327 4 0 5.67366 -114.744 -85.85 - 46 280.69 924 3 1 4.89415 -114.545 -114.45 - 46 108.15 328 3 0 4.8699 -114.517 -115.85 - 46 152.85 921 2 1 4.34959 -113.938 -144.45 - 46 293.147 331 2 0 4.33014 -113.92 -145.85 - 46 295.439 919 1 1 3.92742 -113.528 -174.45 - 46 279.093 333 1 0 3.90172 -113.519 -175.85 - 46 143.83 916 0 1 3.30405 -113.598 -204.45 - 46 184.515 332 0 0 3.25737 -113.605 -205.85 - 46 162.913 185 6 0 42.6033 -143.08 -26.25 - 46 52.0064 184 6 0 42.7105 -143.15 -26.0901 - 46 50.9266 916 2 1 3.33839 -114.043 -144.45 - 46 189.162 915 2 1 3.25 -114.097 -144.63 - 46 12.6743 328 2 0 2.58834 -114.54 -145.85 - 46 143.646 327 2 0 2.57416 -114.55 -145.876 - 46 103.082 811 1 1 -17.6916 -133.84 -174.45 - 46 32.596 812 1 1 -17.65 -134.052 -174.736 - 46 28.5251 226 1 0 -17.469 -134.901 -175.85 - 46 105.725 225 1 0 -17.4613 -134.95 -175.919 - 46 26.633 358 1 0 -22.056 -108.452 -176.249 - 46 86.6502 359 1 0 -22.0637 -108.35 -176.17 - 46 80.6879 360 1 0 -22.0439 -108.15 -175.993 - 46 433.099 789 1 1 -22.2291 -107.524 -174.85 - 46 48.7277 404 1 0 -21.1595 -99.3244 -175.85 - 46 43.546 405 1 0 -21.1338 -99.1494 -175.887 - 46 50.2789 406 1 0 -21.1403 -98.95 -175.957 - 46 60.9967 407 1 0 -21.2045 -98.75 -175.98 - 46 112.827 408 1 0 -21.2289 -98.55 -176.005 - 46 59.0604 409 1 0 -21.2076 -98.35 -175.999 - 46 70.7317 410 1 0 -21.1612 -98.15 -175.988 - 46 441.07 411 1 0 -21.2247 -97.95 -175.957 - 46 55.595 914 2 1 3.05 -113.964 -144.742 - 46 67.5998 332 2 0 1.96443 -113.75 -146.055 - 46 155.184 796 1 1 -20.8459 -108.007 -174.45 - 46 61.2856 797 1 1 -20.65 -107.632 -174.754 - 46 45.6138 369 1 0 -19.961 -106.257 -175.85 - 46 113.467 370 1 0 -19.9094 -106.15 -175.939 - 46 153.038 371 1 0 -19.82 -105.95 -176.103 - 46 21.8547 588 1 0 -9.88394 -62.2864 -176.25 - 46 124.208 589 1 0 -9.88473 -62.25 -176.17 - 46 101.379 851 1 1 -9.82899 -61.8067 -174.85 - 46 114.903 924 5 1 4.89231 -114.788 -54.45 - 46 160.581 327 5 0 5.33732 -114.727 -55.85 - 46 121.521 988 4 1 17.694 -118.313 -84.45 - 46 95.8531 311 4 0 17.798 -117.916 -85.8503 - 46 64.4428 288 4 0 47.2015 -122.519 -86.2498 - 46 204.117 287 4 0 47.3975 -122.55 -86.1312 - 46 39.2967 1142 4 1 48.5925 -122.247 -84.85 - 46 123.24 1143 4 1 48.6503 -122.211 -84.792 - 46 146.948 1144 4 1 48.8503 -122.044 -84.6554 - 46 320.005 925 8 1 5.1546 -114.951 35.55 - 46 104.135 325 8 0 5.15425 -114.952 34.15 - 46 108.234 925 7 1 5.09116 -115.109 5.55 - 46 113.258 324 7 0 5.14022 -115.245 4.15 - 46 124.628 929 6 1 5.98005 -117.948 -24.45 - 46 116.389 311 6 0 6.03091 -117.903 -25.85 - 46 112.185 935 5 1 7.13983 -116.803 -54.45 - 46 102.387 317 5 0 7.20293 -116.715 -55.85 - 46 115.509 941 4 1 8.26202 -114.939 -84.45 - 46 115.302 326 4 0 8.27821 -114.809 -85.85 - 46 122.959 943 3 1 8.80112 -112.279 -114.45 - 46 128.204 340 3 0 8.76483 -112.065 -115.85 - 46 218.721 939 2 1 7.98205 -107.524 -144.45 - 46 128.139 364 2 0 7.96552 -107.275 -145.85 - 46 126.514 937 1 1 7.49075 -102.17 -174.45 - 46 122.203 391 1 0 7.44741 -101.939 -175.85 - 46 133.833 933 0 1 6.73268 -97.6996 -204.45 - 46 195.433 413 0 0 6.70647 -97.4964 -205.85 - 46 143.083 853 1 1 -9.335 -69.8897 -174.85 - 46 113.749 327 8 0 5.14065 -114.739 34.1498 - 46 66.8095 926 7 1 5.41236 -109.467 5.55 - 46 58.6928 927 7 1 5.45 -109.403 5.33789 - 46 109.828 355 7 0 5.65753 -109.116 4.15 - 46 456.08 952 6 1 10.4646 -101.483 -24.4508 - 46 149.987 395 6 0 11.1054 -101.125 -25.85 - 46 261.427 1035 5 1 27.1001 -90.1695 -54.4501 - 46 158.189 448 5 0 27.1261 -90.3614 -55.85 - 46 109.69 1040 4 1 28.2316 -95.4121 -84.4501 - 46 73.6253 1041 4 1 28.25 -95.2373 -84.7457 - 46 69.0159 435 4 0 28.7183 -93.1449 -85.85 - 46 72.4283 436 4 0 28.7683 -92.95 -85.9475 - 46 67.9471 437 4 0 28.8117 -92.75 -86.0429 - 46 51.1454 438 4 0 28.8093 -92.55 -86.1454 - 46 26.1652 439 4 0 28.7762 -92.35 -86.223 - 46 74.1738 1174 4 0 10.5189 54.8566 -86.25 - 46 64.3849 1175 4 0 10.4765 55.0501 -86.1437 - 46 104.319 1176 4 0 10.4154 55.25 -86.0277 - 46 68.3381 1177 4 0 10.347 55.45 -85.8988 - 46 101.694 948 4 1 9.81396 56.6956 -84.8499 - 46 189.732 947 4 1 9.64981 56.9698 -84.6064 - 46 20.4658 946 4 1 9.32339 57.2014 -84.45 - 46 122.037 945 4 1 9.25 57.2088 -84.5062 - 46 59.01 944 4 1 9.05 57.2439 -84.7479 - 46 7.09258 1187 4 0 8.35939 57.638 -85.8504 - 46 105.409 1188 4 0 8.33997 57.65 -85.8807 - 46 19.4126 1228 4 0 5.71011 65.8307 -86.25 - 46 151.628 1229 4 0 5.75313 65.85 -86.1696 - 46 41.5693 1230 4 0 6.20755 66.05 -85.9227 - 46 178.346 930 4 1 6.23874 66.6778 -84.85 - 46 62.8043 931 4 1 6.25003 66.7233 -84.7201 - 46 312.437 929 4 1 6.0498 66.5542 -84.4941 - 46 41.2357 938 4 1 7.85 57.4045 -84.7792 - 46 10.037 449 5 0 27.1433 -90.3499 -56.2395 - 46 13.9357 451 4 0 62.6923 -89.6643 -86.25 - 46 220.401 953 6 1 10.65 -101.977 -24.7154 - 46 46.8017 384 6 0 11.096 -103.242 -25.85 - 46 79.626 383 6 0 11.1224 -103.35 -25.9482 - 46 32.8821 382 6 0 11.1238 -103.55 -26.1657 - 46 35.0049 894 5 1 -1.20155 -132.432 -54.4501 - 46 121.572 893 5 1 -1.25 -132.324 -54.504 - 46 121.106 892 5 1 -1.45012 -131.967 -54.6602 - 46 7.37919 249 5 0 -2.3426 -130.167 -55.85 - 46 80.5024 250 5 0 -2.35281 -130.149 -55.8605 - 46 269.345 251 5 0 -2.45999 -129.95 -55.9566 - 46 65.4969 252 5 0 -2.55736 -129.75 -56.0519 - 46 154.194 253 5 0 -2.63542 -129.55 -56.1341 - 46 243.839 923 2 1 4.8106 -114.993 -144.45 - 46 173.58 325 2 0 4.80906 -114.993 -145.85 - 46 153.006 923 1 1 4.76196 -114.968 -174.45 - 46 154.658 325 1 0 4.75761 -114.963 -175.85 - 46 116.419 923 0 1 4.66473 -114.841 -204.45 - 46 249.105 326 0 0 4.66219 -114.834 -205.85 - 46 319.278 924 2 1 4.85004 -115.025 -144.51 - 46 181.567 326 2 0 4.7781 -114.85 -145.85 - 46 149.71 343 1 0 3.60069 -111.512 -175.85 - 46 198.656 869 0 1 -6.12163 -106.788 -204.45 - 46 28.3491 356 0 0 -5.99665 -108.858 -205.85 - 46 94.1597 355 0 0 -5.99449 -108.95 -205.911 - 46 67.8972 354 0 0 -5.99151 -109.15 -206.049 - 46 13.4262 353 0 0 -6.0029 -109.35 -206.215 -Number of digits in this event = 65 -Using G4ParticleGun ... -9.76813 LIN -e- +Number of tracker hits in this event: 114 + 46 398.05 1570 9 1 134.262 8.898 65.55 + 46 437.711 944 9 0 134.262 8.89815 64.15 + 46 338.576 1570 8 1 134.236 8.89826 35.55 + 46 517.537 944 8 0 134.232 8.89583 34.15 + 46 359.38 1570 7 1 134.169 8.85009 5.55 + 46 324.23 943 7 0 134.169 8.8472 4.15 + 46 112.321 1570 6 1 134.172 8.79644 -24.45 + 46 236.762 943 6 0 134.175 8.79609 -25.85 + 46 126.447 1570 5 1 134.243 8.83046 -54.45 + 46 151.756 943 5 0 134.252 8.83302 -55.85 + 46 168.798 1571 4 1 134.445 8.86642 -84.45 + 46 212.549 944 4 0 134.46 8.86926 -85.85 + 46 123.243 1573 3 1 134.791 8.882 -114.45 + 46 116.036 944 3 0 134.809 8.88459 -115.85 + 46 96.8768 1575 2 1 135.188 8.94749 -144.45 + 46 99.4767 944 2 0 135.196 8.94389 -145.85 + 46 150.274 1576 1 1 135.389 8.85487 -174.45 + 46 116.256 944 1 0 135.403 8.85188 -175.85 + 46 105.813 1577 0 1 135.688 8.77738 -204.45 + 46 156.304 943 0 0 135.7 8.77847 -205.85 + 46 84.7796 947 1 0 135.284 9.49556 -175.85 + 46 28.092 948 1 0 135.334 9.65 -176.157 + 46 181.402 925 1 0 79.581 5.18456 -176.25 + 46 126.212 1297 1 1 79.4906 5.09238 -174.85 + 46 150.665 1570 4 1 134.35 8.89179 -84.5676 + 46 97.2483 1569 4 1 134.15 8.84054 -84.7171 + 46 165.849 1571 1 1 134.351 8.72958 -174.451 + 46 119.913 1570 1 1 134.35 8.72962 -174.479 + 46 241.787 943 1 0 134.327 8.72732 -175.85 + 46 176.754 1568 0 1 133.931 8.80823 -204.45 + 46 143.883 945 0 0 133.875 9.15909 -205.85 + 46 8.5623 946 0 0 133.859 9.25 -206.205 + 46 237.06 1571 0 1 134.534 9.36329 -204.45 + 46 279.269 944 0 0 134.317 9.05 -206.035 + 46 24.7401 938 7 0 134.217 7.73617 4.15 + 46 194.112 937 7 0 134.205 7.65 4.10266 + 46 186.084 936 7 0 133.716 7.44995 4.03397 + 46 195.111 935 7 0 133.816 7.25 3.92111 + 46 14.1418 1569 7 1 134.122 7.12272 5.15 + 46 40.0806 939 7 0 135.482 7.91945 4.14979 + 46 65.4808 1574 7 1 135.122 7.67237 5.15 + 46 143.682 943 4 0 134.18 8.66364 -85.85 + 46 189.396 1567 4 1 133.698 9.09245 -84.85 + 46 114.415 1567 7 1 133.623 9.09244 5.55 + 46 110.892 945 7 0 133.602 9.10188 4.15 + 46 267.363 1566 6 1 133.373 8.85883 -24.45 + 46 88.9276 1562 5 1 132.645 8.27138 -54.45 + 46 138.179 941 5 0 132.629 8.27716 -55.85 + 46 123.346 1560 4 1 132.317 9.02947 -84.45 + 46 124.742 945 4 0 132.31 9.10316 -85.85 + 46 138.429 1561 3 1 132.454 10.6339 -114.45 + 46 99.8448 953 3 0 132.405 10.735 -115.85 + 46 99.8777 1555 2 1 131.191 12.9702 -144.45 + 46 132.9 965 2 0 131.158 13.0771 -145.85 + 46 119.665 1552 1 1 130.563 15.1612 -174.45 + 46 123.176 1551 1 1 130.55 15.1854 -174.843 + 46 0.32455 975 1 0 130.521 15.2498 -175.85 + 46 128.626 976 1 0 130.521 15.25 -175.854 + 46 105.999 1548 0 1 129.785 17.2117 -204.45 + 46 120.904 986 0 0 129.749 17.2881 -205.85 + 46 19.6268 1022 8 0 58.991 24.6189 33.75 + 46 156.923 1023 8 0 58.9402 24.6502 33.7943 + 46 58.7325 1024 8 0 58.6993 24.85 33.8868 + 46 53.9079 1025 8 0 58.6692 25.05 33.8956 + 46 111.016 1569 6 1 134.017 5.69426 -24.45 + 46 171.074 926 6 0 134.032 5.39881 -25.8505 + 46 116.841 1571 5 1 134.421 -0.541763 -54.45 + 46 30.7618 896 5 0 134.506 -0.825362 -55.85 + 46 83.1699 895 5 0 134.511 -0.850021 -55.9707 + 46 130.095 1577 4 1 135.689 -6.59478 -84.4515 + 46 111.316 866 4 0 135.692 -6.7372 -85.85 + 46 113.151 1579 3 1 135.957 -9.35748 -114.45 + 46 170.121 852 3 0 135.968 -9.52499 -115.85 + 46 87.0657 1579 2 1 136.127 -13.376 -144.45 + 46 16.1603 1580 2 1 136.15 -13.3958 -144.799 + 46 107.761 832 2 0 136.222 -13.4608 -145.85 + 46 113.43 1589 1 1 138.078 -15.4275 -174.45 + 46 185.976 823 1 0 138.14 -15.4281 -175.85 + 46 153.206 1599 0 1 139.968 -16.0726 -204.45 + 46 111.685 819 0 0 140.475 -16.2117 -205.85 + 46 1.00957 818 0 0 140.604 -16.25 -206.247 + 46 2.60579 886 5 0 130.472 -2.65 -56.0157 + 46 23.8065 1612 0 1 142.675 -35.356 -204.45 + 46 76.9282 1613 0 1 142.75 -35.3671 -204.51 + 46 76.5034 1614 0 1 142.95 -35.3097 -204.642 + 46 50.456 720 0 0 143.042 -35.9153 -205.85 + 46 80.4623 719 0 0 143.065 -36.05 -205.988 + 46 45.3786 718 0 0 143.12 -36.25 -206.14 + 46 44.9643 850 1 0 20.093 -9.87161 -176.25 + 46 200.201 1572 1 1 134.682 8.46686 -174.45 + 46 119.481 942 1 0 134.695 8.47058 -175.85 + 46 125.938 1574 0 1 134.994 8.90846 -204.45 + 46 51.5988 936 1 0 132.639 7.3088 -175.85 + 46 111.896 935 1 0 132.546 7.25 -175.904 + 46 69.5812 934 1 0 132.334 7.05 -176.104 + 46 2.96036 625 1 0 148.898 -55.0424 -176.25 + 46 95.2809 624 1 0 148.905 -55.05 -176.244 + 46 60.8703 623 1 0 149.142 -55.25 -176.101 + 46 57.6193 622 1 0 149.245 -55.45 -176.084 + 46 77.146 621 1 0 149.288 -55.6505 -176.053 + 46 87.8087 620 1 0 149.432 -55.85 -176.002 + 46 44.1414 619 1 0 149.649 -56.05 -175.874 + 46 15.3663 1682 1 1 156.716 -66.6975 -174.85 + 46 11.8861 1683 1 1 156.75 -66.7475 -174.844 + 46 44.3031 558 1 0 157.406 -68.3067 -175.851 + 46 61.9729 557 1 0 157.473 -68.4501 -175.946 + 46 48.2998 556 1 0 157.518 -68.65 -176.002 + 46 59.9862 555 1 0 157.518 -68.8501 -176.019 + 46 26.3247 554 1 0 157.488 -69.05 -175.94 + 46 315.292 1687 1 1 157.626 -70.4087 -174.85 + 46 83.4181 1688 1 1 157.75 -70.7099 -174.649 + 46 152.785 1686 1 1 157.55 -71.3899 -174.558 + 46 59.6205 537 1 0 157.243 -72.5793 -175.85 + 46 82.7234 536 1 0 157.237 -72.6501 -175.938 +Number of digits in this event: 49 +Using G4ParticleGun... +Particle energy: 3.9947 LIN +Particle: e- Event: 47 -Number of tracker hits in this event = 55 - 47 106.723 1057 10 1 31.5659 111.037 95.55 - 47 125.734 1454 10 0 31.5658 111.037 94.15 - 47 133.323 1057 9 1 31.5661 111.031 65.55 - 47 125.4 1454 9 0 31.566 111.031 64.15 - 47 118.662 1057 8 1 31.5649 111.041 35.55 - 47 93.1051 1454 8 0 31.5649 111.043 34.15 - 47 154.325 1057 7 1 31.5637 111.083 5.55 - 47 135.495 1454 7 0 31.564 111.085 4.15 - 47 120.371 1057 6 1 31.5688 111.123 -24.45 - 47 211.634 1454 6 0 31.5681 111.126 -25.85 - 47 116.568 1057 5 1 31.5517 111.177 -54.45 - 47 101.851 1455 5 0 31.5497 111.18 -55.85 - 47 441.923 1057 4 1 31.5122 111.234 -84.45 - 47 130.208 1455 4 0 31.5115 111.237 -85.85 - 47 281.668 1057 3 1 31.5016 111.291 -114.45 - 47 154.087 1455 3 0 31.4994 111.291 -115.85 - 47 122.101 1057 2 1 31.4543 111.307 -144.45 - 47 209.688 1455 2 0 31.4522 111.309 -145.85 - 47 426.836 1056 1 1 31.4073 111.338 -174.45 - 47 374.028 1455 1 0 31.4052 111.339 -175.85 - 47 225.777 1056 0 1 31.3586 111.348 -204.45 - 47 418.532 1455 0 0 31.3556 111.347 -205.85 - 47 220.467 1458 1 0 33.0186 111.889 -175.85 - 47 165.199 1457 1 0 33.4146 111.75 -176.077 - 47 152.476 1456 1 0 33.5392 111.55 -176.162 - 47 141.541 1050 0 1 30.0878 110.795 -204.45 - 47 116.271 1453 0 0 29.9887 110.824 -205.85 - 47 49.6954 1049 0 1 30.05 110.815 -204.672 - 47 210.25 1456 0 0 29.3976 111.35 -205.866 - 47 140.919 1649 9 0 -155.621 150.075 63.75 - 47 288.821 1454 4 0 31.4423 111.051 -85.85 - 47 108.137 1041 3 1 28.3566 109.2 -114.45 - 47 90.1269 1445 3 0 28.3048 109.183 -115.85 - 47 36.8155 1038 2 1 27.8355 109.275 -144.451 - 47 129.488 1039 2 1 27.85 109.285 -144.553 - 47 111.806 1446 2 0 27.9926 109.405 -145.851 - 47 52.1145 1062 1 1 32.5965 111.922 -174.45 - 47 70.9293 1063 1 1 32.6503 111.961 -174.601 - 47 98.3946 1460 1 0 33.1135 112.295 -175.85 - 47 67.261 1461 1 0 33.1892 112.35 -176.052 - 47 122.851 1121 0 1 44.3197 120.779 -204.45 - 47 96.966 1506 0 0 44.7712 121.447 -205.85 - 47 75.2272 1507 0 0 44.8426 121.55 -206.064 - 47 36.8648 1256 1 1 71.2576 108.305 -174.45 - 47 37.2414 394 4 0 -164.261 -101.326 -86.25 - 47 246.582 393 4 0 -164.297 -101.35 -86.1483 - 47 112.21 1458 3 0 31.5564 111.919 -115.85 - 47 149.165 1046 2 1 29.3756 113.468 -144.45 - 47 221.835 1467 2 0 29.3783 113.591 -145.85 - 47 148.362 1045 1 1 29.1204 115.724 -174.45 - 47 39.8691 1477 1 0 29.1483 115.565 -175.851 - 47 71.7395 1476 1 0 29.1515 115.55 -175.985 - 47 103.456 1047 0 1 29.5509 112.532 -204.45 - 47 31.4719 1461 0 0 29.4767 112.359 -205.85 - 47 88.7986 1460 0 0 29.4736 112.35 -205.917 -Number of digits in this event = 33 -Using G4ParticleGun ... -3.6186 LIN -e- +Number of tracker hits in this event: 97 + 47 159.283 487 9 1 -82.4971 104.099 65.55 + 47 137.79 1419 9 0 -82.4981 104.1 64.15 + 47 159.557 487 8 1 -82.5359 104.162 35.55 + 47 151.405 1420 8 0 -82.5422 104.163 34.15 + 47 144.964 486 7 1 -82.6869 104.16 5.55 + 47 149.243 1420 7 0 -82.6957 104.169 4.15 + 47 122.511 485 6 1 -82.8637 104.327 -24.45 + 47 132.289 1420 6 0 -82.8719 104.334 -25.85 + 47 124.25 485 5 1 -83.0343 104.469 -54.45 + 47 358.038 1421 5 0 -83.0383 104.475 -55.85 + 47 126.402 484 4 1 -83.1021 104.588 -84.45 + 47 255.629 1422 4 0 -83.109 104.592 -85.85 + 47 179.331 484 3 1 -83.2418 104.671 -114.45 + 47 278.225 1422 3 0 -83.2451 104.671 -115.85 + 47 311.299 483 2 1 -83.3115 104.678 -144.45 + 47 340.179 1422 2 0 -83.3114 104.686 -145.85 + 47 155.956 483 1 1 -83.314 104.873 -174.45 + 47 136.783 1423 1 0 -83.3212 104.883 -175.85 + 47 169.871 483 0 1 -83.4471 105.082 -204.45 + 47 99.7835 1424 0 0 -83.4493 105.092 -205.85 + 47 19.1599 1421 2 0 -83.3624 104.55 -146.17 + 47 128.622 479 1 1 -84.1153 102.756 -174.45 + 47 103.157 1412 1 0 -84.1802 102.632 -175.85 + 47 136.048 472 0 1 -85.6024 100.051 -204.45 + 47 213.504 1398 0 0 -85.6872 99.9299 -205.85 + 47 3.66051 465 4 1 -86.8552 101.621 -84.4501 + 47 64.3392 466 4 1 -86.85 101.617 -84.4556 + 47 108.775 467 4 1 -86.65 101.47 -84.5354 + 47 76.5839 468 4 1 -86.45 101.426 -84.5409 + 47 67.2608 469 4 1 -86.25 101.389 -84.555 + 47 48.9494 470 4 1 -86.05 101.333 -84.5431 + 47 88.45 471 4 1 -85.8499 101.28 -84.5345 + 47 109.673 485 4 1 -82.9931 104.369 -84.45 + 47 167.313 1421 4 0 -82.9796 104.391 -85.8511 + 47 114.275 486 3 1 -82.6795 104.67 -114.45 + 47 115.173 494 2 1 -81.1392 106.521 -144.45 + 47 106.124 493 2 1 -81.25 106.557 -144.756 + 47 109.521 1432 2 0 -81.5608 106.686 -145.85 + 47 105.883 451 1 1 -89.8145 108.777 -174.45 + 47 150.134 1445 1 0 -89.7922 109.27 -175.85 + 47 93.4419 1446 1 0 -89.7843 109.35 -176.072 + 47 239.508 457 0 1 -88.464 120.227 -204.45 + 47 110.836 1501 0 0 -88.6413 120.398 -205.85 + 47 366.198 482 4 1 -83.4613 104.966 -84.4502 + 47 39.7292 1460 4 0 -86.2473 112.232 -85.85 + 47 41.1745 1461 4 0 -86.3019 112.35 -85.8727 + 47 154.773 1462 4 0 -86.3883 112.55 -85.8663 + 47 73.8566 1463 4 0 -86.4918 112.751 -85.8696 + 47 65.3496 1464 4 0 -86.5787 112.95 -85.905 + 47 125.963 1465 4 0 -86.6942 113.15 -85.9238 + 47 56.2608 1466 4 0 -86.7919 113.35 -85.8978 + 47 78.2675 1467 4 0 -86.8901 113.55 -85.8994 + 47 56.1601 1468 4 0 -86.9472 113.75 -85.927 + 47 105.738 1469 4 0 -86.9981 113.95 -85.9271 + 47 58.1758 1470 4 0 -87.0367 114.15 -85.9364 + 47 48.3591 1471 4 0 -87.0502 114.35 -85.9423 + 47 21.6003 1472 4 0 -87.0899 114.55 -85.8928 + 47 114.543 463 4 1 -87.4213 116.347 -84.85 + 47 203.313 462 4 1 -87.4501 116.446 -84.7659 + 47 128.699 461 4 1 -87.65 116.721 -84.8193 + 47 118.144 483 4 1 -83.2876 104.472 -84.45 + 47 14.4483 494 3 1 -81.0714 107.143 -114.45 + 47 105.373 495 3 1 -81.0495 107.148 -114.484 + 47 16.1736 496 3 1 -80.85 107.201 -114.798 + 47 302.034 1436 3 0 -80.1982 107.389 -115.85 + 47 10.0298 570 2 1 -65.8709 112.485 -144.45 + 47 85.7632 571 2 1 -65.8498 112.485 -144.474 + 47 76.7702 572 2 1 -65.65 112.484 -144.692 + 47 138.511 1461 2 0 -64.6623 112.401 -145.85 + 47 80.1703 660 1 1 -48.0388 108.635 -174.45 + 47 32.8199 661 1 1 -47.8499 108.705 -174.724 + 47 8.56158 766 0 1 -26.6803 127.561 -204.45 + 47 216.52 767 0 1 -26.65 127.556 -204.466 + 47 107.974 768 0 1 -26.4499 127.515 -204.595 + 47 40.3522 769 0 1 -26.25 127.474 -204.746 + 47 154.897 1535 0 0 -25.0855 127.347 -205.85 + 47 47.0953 1435 3 0 -79.9979 107.35 -116.154 + 47 61.2532 582 2 1 -63.5072 99.6564 -144.45 + 47 58.9911 581 2 1 -63.6503 99.6205 -144.516 + 47 70.5143 580 2 1 -63.85 99.5428 -144.595 + 47 84.2008 579 2 1 -64.05 99.4836 -144.65 + 47 95.8533 578 2 1 -64.25 99.4123 -144.708 + 47 11.4808 577 2 1 -64.45 99.3579 -144.812 + 47 154.351 1397 2 0 -65.4798 99.595 -145.85 + 47 88.6902 1398 2 0 -65.7872 99.75 -146.206 + 47 278.488 1399 2 0 -65.9527 99.95 -146.195 + 47 244.107 1400 2 0 -66.8611 100.15 -146.083 + 47 332.389 562 2 1 -67.6051 100.74 -144.85 + 47 108.044 561 2 1 -67.65 100.819 -144.714 + 47 56.1503 560 2 1 -67.85 101.432 -144.828 + 47 359.15 1409 2 0 -69.3449 101.953 -145.85 + 47 0.380993 1408 2 0 -69.4747 101.95 -145.999 + 47 403.763 486 6 1 -82.7724 104.153 -24.45 + 47 72.703 488 9 1 -82.45 104.098 65.3695 + 47 108.297 489 9 1 -82.25 104.02 65.3319 + 47 214.128 490 9 1 -82.05 104.1 65.4765 + 47 47.2724 1463 1 0 -151.551 112.75 -176.08 +Number of digits in this event: 43 +Using G4ParticleGun... +Particle energy: 6.27973 LIN +Particle: e- Event: 48 -Number of tracker hits in this event = 104 - 48 127.065 927 11 1 5.47258 -42.0349 125.55 - 48 127.361 690 11 0 5.47334 -42.0353 124.15 - 48 166.156 927 10 1 5.48439 -42.0483 95.55 - 48 90.7966 690 10 0 5.48471 -42.0469 94.15 - 48 100.932 927 9 1 5.48182 -42.0118 65.55 - 48 115.59 690 9 0 5.4822 -42.0098 64.15 - 48 423.628 927 8 1 5.49528 -41.9724 35.55 - 48 311.066 690 8 0 5.49241 -41.9662 34.15 - 48 110.819 926 7 1 5.40716 -41.8578 5.55 - 48 191.972 690 7 0 5.39916 -41.861 4.15 - 48 112.699 925 6 1 5.2256 -41.9105 -24.45 - 48 117.446 690 6 0 5.23873 -41.9051 -25.85 - 48 119.283 927 5 1 5.52342 -41.7968 -54.45 - 48 217.85 691 5 0 5.5422 -41.7994 -55.85 - 48 113.908 929 4 1 5.9066 -41.8474 -84.45 - 48 115.037 691 4 0 5.8865 -41.803 -85.8504 - 48 116.225 925 3 1 5.11797 -41.5815 -114.45 - 48 120.202 692 3 0 5.07269 -41.5424 -115.85 - 48 105.843 917 2 1 3.46247 -42.2556 -144.45 - 48 123.825 688 2 0 3.46105 -42.3843 -145.85 - 48 192.173 917 1 1 3.62798 -44.0299 -174.45 - 48 122.66 679 1 0 3.48313 -44.1896 -175.85 - 48 121.946 898 0 1 -0.251858 -48.2552 -204.45 - 48 268.162 899 0 1 -0.25 -48.2637 -204.493 - 48 119.678 657 0 0 -0.165376 -48.5487 -205.85 - 48 9.84846 389 1 0 -45.1218 -102.15 -176.183 - 48 112.438 916 1 1 3.44983 -44.1432 -174.692 - 48 91.928 915 1 1 3.25 -44.3369 -174.697 - 48 7.48853 683 1 0 2.93192 -43.2684 -175.85 - 48 64.1922 684 1 0 2.92424 -43.25 -175.868 - 48 241.807 685 1 0 2.92513 -43.05 -175.95 - 48 203.053 686 1 0 3.14496 -42.85 -176.055 - 48 58.9068 1359 2 1 91.95 -119.404 -144.643 - 48 67.1212 1617 5 0 83.2987 143.642 -55.85 - 48 41.5986 1255 2 0 25.1873 71.0541 -146.25 - 48 134.824 930 7 1 6.10515 -41.8916 5.54985 - 48 40.1931 691 7 0 6.32952 -41.85 3.88167 - 48 98.7454 951 6 1 10.2862 -40.9423 -24.45 - 48 111.157 695 6 0 10.4226 -40.8919 -25.85 - 48 107.827 964 5 1 12.8504 -39.8649 -54.45 - 48 106.702 700 5 0 12.9606 -39.8572 -55.85 - 48 113.892 975 4 1 15.2095 -39.5305 -84.451 - 48 236.188 702 4 0 15.3608 -39.5119 -85.85 - 48 114.118 993 3 1 18.685 -38.7022 -114.45 - 48 113.348 707 3 0 18.8932 -38.6241 -115.85 - 48 114.792 1017 2 1 23.5467 -37.105 -144.45 - 48 113.711 715 2 0 23.6851 -36.9839 -145.85 - 48 276.494 1032 1 1 26.45 -34.628 -174.451 - 48 145.687 727 1 0 26.5604 -34.5578 -175.85 - 48 147.066 1043 0 1 28.7401 -33.3065 -204.45 - 48 134.178 733 0 0 28.8146 -33.3085 -205.85 - 48 124.595 1099 1 1 39.9506 84.2735 -174.85 - 48 159.719 731 1 0 27.3296 -33.8427 -175.85 - 48 173.396 1098 0 1 39.8473 -21.3429 -204.45 - 48 117.332 787 0 0 39.5744 -22.5583 -205.85 - 48 112.032 786 0 0 39.5166 -22.65 -206.011 - 48 6.78121 879 0 0 37.5542 -4.07939 -206.25 - 48 70.0128 880 0 0 37.5521 -4.04993 -206.235 - 48 80.3076 1099 0 1 39.85 -21.4184 -204.65 - 48 90.0968 796 0 0 37.7857 -20.677 -205.85 - 48 185.787 1084 0 1 36.9642 -22.5836 -204.85 - 48 217.586 691 8 0 5.76071 -41.7404 34.1499 - 48 115.065 952 7 1 10.4519 -36.3408 5.55 - 48 194.468 718 7 0 10.4862 -36.2694 4.1498 - 48 4.28655 719 7 0 10.4857 -36.25 3.7693 - 48 65.6404 950 6 1 10.1003 -34.2509 -24.45 - 48 39.2647 949 6 1 10.05 -34.2859 -24.7085 - 48 3.19161 728 6 0 9.81446 -34.4481 -25.85 - 48 109.579 727 6 0 9.81168 -34.45 -25.8634 - 48 78.6441 917 5 1 3.61445 -39.1474 -54.45 - 48 64.6026 916 5 1 3.45 -39.16 -54.639 - 48 167.313 703 5 0 2.36241 -39.2554 -55.85 - 48 47.6918 791 4 1 -21.713 -42.157 -84.45 - 48 78.1535 790 4 1 -21.8506 -42.1647 -84.5589 - 48 49.8405 789 4 1 -22.05 -42.1736 -84.7184 - 48 232.503 688 4 0 -23.4374 -42.2888 -85.8501 - 48 139.588 621 3 1 -55.7245 -45.5677 -114.45 - 48 121.635 620 3 1 -55.85 -45.6284 -114.583 - 48 18.7107 619 3 1 -56.05 -45.7159 -114.794 - 48 192.32 669 3 0 -57.0906 -46.1607 -115.85 - 48 197.125 668 3 0 -57.2861 -46.25 -116.049 - 48 157.361 512 3 0 -117.077 -77.471 -116.25 - 48 37.3824 307 3 1 -118.643 -78.0629 -114.85 - 48 94.5687 306 3 1 -118.751 -78.1047 -114.752 - 48 36.66 305 3 1 -118.95 -78.177 -114.552 - 48 168.772 514 4 0 -144.073 -77.1513 -86.25 - 48 112.358 173 4 1 -145.451 -76.929 -84.85 - 48 100.082 172 4 1 -145.55 -76.9083 -84.7499 - 48 16.3243 171 4 1 -145.75 -76.8854 -84.4992 - 48 18.1765 170 4 1 -146.123 -76.4819 -84.45 - 48 129.278 169 4 1 -146.15 -76.4258 -84.4665 - 48 57.8294 168 4 1 -146.35 -76.0379 -84.5635 - 48 76.2325 167 4 1 -146.55 -75.9425 -84.5644 - 48 57.5109 166 4 1 -146.75 -75.8868 -84.559 - 48 44.1177 165 4 1 -146.95 -75.7605 -84.496 - 48 35.532 492 3 0 -106.416 -81.45 -116.152 - 48 16.1504 555 3 0 -92.7181 -69.0372 -116.25 - 48 285.074 554 3 0 -92.721 -69.05 -116.212 - 48 94.9408 438 3 1 -92.3676 -69.5387 -114.85 - 48 168.666 439 3 1 -92.3499 -69.5656 -114.77 - 48 22.4072 437 3 1 -92.55 -69.858 -114.781 - 48 80.8474 547 3 0 -93.1381 -70.5021 -115.85 - 48 74.5677 546 3 0 -93.2525 -70.6502 -116.066 - 48 318.589 434 3 1 -93.2961 -68.7391 -114.85 -Number of digits in this event = 41 -Using G4ParticleGun ... -4.95894 LIN -e- +Number of tracker hits in this event: 85 + 48 251.227 1175 11 1 55.1567 9.54179 125.55 + 48 112.68 947 11 0 55.1566 9.54065 124.15 + 48 113.897 1175 10 1 55.1562 9.51601 95.55 + 48 145.157 947 10 0 55.1588 9.51481 94.15 + 48 141.139 1175 9 1 55.2002 9.48918 65.55 + 48 283.355 947 9 0 55.2045 9.48768 64.15 + 48 312.04 1176 8 1 55.2898 9.45252 35.55 + 48 132.252 947 8 0 55.2968 9.45136 34.15 + 48 247.091 1176 7 1 55.4486 9.42675 5.55 + 48 105.293 946 7 0 55.4537 9.42538 4.15 + 48 142.704 1177 6 1 55.5598 9.39906 -24.45 + 48 341.926 946 6 0 55.5626 9.39788 -25.85 + 48 97.1136 1177 5 1 55.6082 9.38175 -54.45 + 48 133.404 946 5 0 55.6143 9.38112 -55.85 + 48 248.407 1178 4 1 55.7297 9.36754 -84.45 + 48 112.051 946 4 0 55.7369 9.36473 -85.85 + 48 594.463 1179 3 1 55.8631 9.31613 -114.45 + 48 626.623 946 3 0 55.8707 9.31396 -115.85 + 48 244.468 1179 2 1 56.0265 9.26381 -144.45 + 48 343.483 946 2 0 56.0362 9.26359 -145.85 + 48 238.602 1180 1 1 56.2364 9.26939 -174.45 + 48 222.515 946 1 0 56.249 9.26765 -175.85 + 48 394.911 1182 0 1 56.502 9.22232 -204.45 + 48 236.914 945 0 0 56.5133 9.2218 -205.85 + 48 76.3023 1183 0 1 56.6501 9.28405 -204.643 + 48 183.099 948 0 0 57.1952 9.75005 -205.85 + 48 52.0037 1609 0 0 15.6941 142.032 -206.25 + 48 354.906 1610 0 0 15.6303 142.15 -206.228 + 48 324.437 970 0 1 14.0512 142.821 -204.85 + 48 287.225 969 0 1 14.05 142.821 -204.849 + 48 219.226 971 0 1 14.2501 142.813 -204.777 + 48 153.224 1178 3 1 55.8469 9.32153 -114.45 + 48 139.757 947 3 0 55.8305 9.57527 -115.85 + 48 10.5071 1169 2 1 53.8879 7.47715 -144.45 + 48 67.8961 1168 2 1 53.85 7.46324 -144.486 + 48 62.5842 1167 2 1 53.6496 7.37963 -144.692 + 48 37.8603 934 2 0 52.5674 6.89083 -145.85 + 48 168.19 933 2 0 52.4812 6.84997 -145.93 + 48 0.341127 932 2 0 52.0409 6.64988 -146.249 + 48 39.6023 681 2 0 -3.01001 -43.753 -146.25 + 48 89.5942 680 2 0 -3.05686 -43.85 -146.167 + 48 80.14 679 2 0 -3.18439 -44.05 -145.997 + 48 7.11409 678 2 0 -3.29989 -44.25 -145.865 + 48 25.0603 878 2 1 -4.40318 -46.1043 -144.85 + 48 215.057 877 2 1 -4.45 -46.1837 -144.812 + 48 175.898 624 3 0 22.7239 -55.1894 -116.25 + 48 226.67 623 3 0 22.8799 -55.2502 -116.093 + 48 122.615 1018 3 1 23.6756 -56.2072 -114.85 + 48 144.049 1019 3 1 23.85 -56.3613 -114.666 + 48 273.966 1020 3 1 24.05 -56.5329 -114.477 + 48 52.2252 625 3 0 23.7049 -55.05 -115.884 + 48 75.2042 622 3 0 23.9075 -55.4503 -116.042 + 48 59.0908 621 3 0 23.9738 -55.65 -115.927 + 48 313.864 1017 3 1 23.6249 -56.8874 -114.85 + 48 145.411 1016 3 1 23.45 -57.0188 -114.547 + 48 55.2927 844 1 1 -11.2014 -81.9778 -174.45 + 48 157.09 843 1 1 -11.2502 -82.058 -174.611 + 48 4.70842 799 6 0 74.3244 -20.2462 -26.25 + 48 58.116 819 1 1 -16.1612 -60.6573 -174.45 + 48 2.69782 1275 2 1 75.2404 9.07191 -144.45 + 48 96.6615 1276 2 1 75.25 9.06673 -144.463 + 48 41.987 1277 2 1 75.45 8.95219 -144.737 + 48 88.7684 942 2 0 76.2347 8.51598 -145.85 + 48 49.2288 941 2 0 76.383 8.44985 -146.076 + 48 95.1958 1353 1 1 90.7795 2.29237 -174.45 + 48 19.5107 1354 1 1 90.9502 2.23116 -174.799 + 48 116.843 909 1 0 91.4426 2.02633 -175.85 + 48 21.4414 1413 0 1 102.908 -4.73755 -204.45 + 48 80.8938 1414 0 1 102.95 -4.74197 -204.491 + 48 66.9263 1415 0 1 103.15 -4.76552 -204.677 + 48 220.508 876 0 0 104.224 -4.79542 -205.85 + 48 0.218438 875 0 0 104.577 -4.85 -206.249 + 48 104.526 943 7 0 55.2295 8.83196 4.15 + 48 7.00798 942 7 0 55.2574 8.65 3.77838 + 48 101.447 1181 2 1 56.3526 9.1027 -144.45 + 48 153.226 945 2 0 56.3482 9.08053 -145.85 + 48 131.181 1181 1 1 56.3838 8.70671 -174.45 + 48 128.213 943 1 0 56.3465 8.72336 -175.85 + 48 137.083 1177 0 1 55.5635 9.05352 -204.45 + 48 205.57 947 0 0 56.4574 9.45548 -205.85 + 48 91.1834 648 10 1 -50.3833 110.809 95.15 + 48 327.801 649 10 1 -50.25 110.84 95.303 + 48 58.799 946 0 0 56.4594 9.45 -205.953 + 48 173.543 945 11 0 55.0873 9.08866 124.15 + 48 100.564 944 11 0 55.0482 9.04996 123.953 +Number of digits in this event: 47 +Using G4ParticleGun... +Particle energy: 1.99918 LIN +Particle: e- Event: 49 -Number of tracker hits in this event = 90 - 49 118.76 300 9 1 -120.022 -32.7865 65.55 - 49 113.591 736 9 0 -120.022 -32.7868 64.15 - 49 174.795 300 8 1 -120.016 -32.8169 35.55 - 49 110.854 736 8 0 -120.016 -32.8126 34.15 - 49 212.642 300 7 1 -120.031 -32.741 5.55 - 49 317.75 736 7 0 -120.034 -32.7367 4.15 - 49 111.546 300 6 1 -120.096 -32.6455 -24.45 - 49 239.206 737 6 0 -120.102 -32.6487 -25.85 - 49 315.987 299 5 1 -120.209 -32.7203 -54.45 - 49 197.394 736 5 0 -120.225 -32.7296 -55.85 - 49 112.26 297 4 1 -120.564 -32.9489 -84.45 - 49 109.537 735 4 0 -120.56 -32.9685 -85.85 - 49 110.354 299 3 1 -120.313 -33.5229 -114.45 - 49 103.136 732 3 0 -120.355 -33.5761 -115.85 - 49 108.42 294 2 1 -121.213 -34.6225 -144.45 - 49 270.426 726 2 0 -121.185 -34.6653 -145.85 - 49 112.186 298 1 1 -120.479 -35.3743 -174.45 - 49 108.052 723 1 0 -120.413 -35.3978 -175.85 - 49 177.544 305 0 1 -119.063 -35.848 -204.45 - 49 191.252 721 0 0 -118.976 -35.8375 -205.85 - 49 1.94867 722 0 0 -120.438 -35.5599 -205.85 - 49 101.279 734 8 0 -119.463 -33.1498 34.15 - 49 92.0797 733 8 0 -119.38 -33.25 33.9638 - 49 20.3044 619 8 0 -103.382 -56.2333 33.75 - 49 161.069 618 8 0 -103.415 -56.25 33.7889 - 49 114.332 383 8 1 -103.44 -56.8633 35.15 - 49 71.7338 382 8 1 -103.55 -56.8997 35.4108 - 49 181.57 301 7 1 -119.946 -32.7915 5.55 - 49 116.433 301 6 1 -119.787 -32.5059 -24.45 - 49 394.475 300 5 1 -120.127 -32.6314 -54.45 - 49 146.129 298 4 1 -120.493 -33.1475 -84.45 - 49 105.233 734 4 0 -120.506 -33.1893 -85.85 - 49 101.655 296 3 1 -120.807 -34.1104 -114.45 - 49 158.111 729 3 0 -120.73 -34.1578 -115.851 - 49 258.335 306 2 1 -118.936 -35.1255 -144.45 - 49 164.014 725 2 0 -118.844 -35.0256 -145.85 - 49 187.53 317 1 1 -116.559 -33.4227 -174.45 - 49 38.502 318 1 1 -116.55 -33.4016 -174.719 - 49 127.384 733 1 0 -116.51 -33.3006 -175.85 - 49 123.029 323 0 1 -115.497 -30.7299 -204.45 - 49 104.458 747 0 0 -115.422 -30.583 -205.85 - 49 267.114 737 5 0 -120.156 -32.6499 -55.9997 - 49 128.942 738 5 0 -120.309 -32.4499 -56.177 - 49 109.623 858 5 0 -111.071 -8.31355 -56.2499 - 49 70.0394 859 5 0 -110.933 -8.25 -56.1659 - 49 39.7809 739 5 0 -120.495 -32.25 -56.1488 - 49 23.2196 259 4 1 -128.337 -24.9904 -84.45 - 49 106.715 258 4 1 -128.35 -24.9799 -84.5202 - 49 254.44 776 4 0 -128.648 -24.7713 -85.85 - 49 133.903 217 3 1 -136.744 -19.5374 -114.45 - 49 49.4319 804 3 0 -136.538 -19.1066 -115.851 - 49 72.4051 805 3 0 -136.504 -19.0499 -116.058 - 49 30.2169 246 2 1 -130.769 -11.5323 -144.45 - 49 126.41 247 2 1 -130.75 -11.4672 -144.549 - 49 22.8752 847 2 0 -130.53 -10.5057 -145.85 - 49 92.7681 848 2 0 -130.514 -10.45 -145.933 - 49 4.6326 849 2 0 -130.449 -10.2499 -146.243 - 49 134.61 280 1 1 -124.079 9.4918 -174.45 - 49 11.5067 279 1 1 -124.15 9.71954 -174.815 - 49 51.0989 951 1 0 -124.378 10.3424 -175.851 - 49 120.841 952 1 0 -124.413 10.4501 -176.027 - 49 134.797 254 0 1 -129.254 30.7274 -204.45 - 49 51.1049 1056 0 0 -129.217 31.3689 -205.85 - 49 199.813 1057 0 0 -129.219 31.4501 -206.005 - 49 9.9006 224 0 1 -135.15 78.4508 -204.787 - 49 339.96 301 4 1 -119.86 -31.5309 -84.45 - 49 103.652 743 4 0 -119.852 -31.4168 -85.85 - 49 102.21 302 3 1 -119.651 -29.1864 -114.45 - 49 79.9078 754 3 0 -119.594 -29.062 -115.85 - 49 129.642 755 3 0 -119.588 -29.05 -115.978 - 49 114.365 308 2 1 -118.379 -26.2636 -144.45 - 49 200.707 309 2 1 -118.35 -26.2141 -144.769 - 49 4.39566 769 2 0 -118.246 -26.0528 -145.85 - 49 136.41 770 2 0 -118.244 -26.05 -145.869 - 49 318.176 323 1 1 -115.431 -21.4515 -174.45 - 49 7.98111 793 1 0 -115.275 -21.2543 -175.85 - 49 114.138 794 1 0 -115.272 -21.25 -175.881 - 49 116.342 338 0 1 -112.447 -17.4472 -204.45 - 49 145.953 813 0 0 -112.347 -17.3115 -205.85 - 49 51.8032 773 2 0 -118.068 -25.3529 -145.85 - 49 119.359 312 2 1 -117.675 -25.4412 -144.85 - 49 78.3956 694 0 0 -141.706 -41.098 -206.25 - 49 111.424 296 6 1 -120.806 -33.9379 -24.45 - 49 36.6443 732 6 0 -120.97 -33.4937 -25.85 - 49 77.6559 733 6 0 -120.996 -33.4499 -26.0054 - 49 96.4153 920 6 0 -105.708 4.06572 -26.25 - 49 69.3116 921 6 0 -105.571 4.25 -26.0283 - 49 4.02385 375 6 1 -104.956 4.88545 -24.85 - 49 174.159 376 6 1 -104.95 4.89235 -24.8371 - 49 36.409 1075 8 0 -27.0733 35.0783 33.75 -Number of digits in this event = 38 -Using G4ParticleGun ... -3.9839 LIN -e- +Number of tracker hits in this event: 81 + 49 107.099 1319 10 1 84.0074 -47.7842 95.55 + 49 119.074 661 10 0 84.0118 -47.7864 94.15 + 49 123.891 1320 9 1 84.1157 -47.8263 65.55 + 49 103.209 661 9 0 84.1211 -47.8322 64.15 + 49 126.606 1320 8 1 84.228 -47.949 35.55 + 49 164.588 660 8 0 84.2313 -47.9563 34.15 + 49 122.051 1321 7 1 84.3093 -48.1345 5.55 + 49 161.972 659 7 0 84.3094 -48.1416 4.15 + 49 151.583 1321 6 1 84.3001 -48.2861 -24.45 + 49 117.737 658 6 0 84.3026 -48.2956 -25.85 + 49 144.008 1321 5 1 84.3597 -48.4828 -54.45 + 49 129.993 657 5 0 84.3675 -48.4845 -55.85 + 49 149.898 1322 4 1 84.4956 -48.5275 -84.45 + 49 120.433 657 4 0 84.4982 -48.5364 -85.85 + 49 135.514 1322 3 1 84.5475 -48.6951 -114.45 + 49 199.219 656 3 0 84.5474 -48.702 -115.85 + 49 140.007 1322 2 1 84.5203 -48.838 -144.45 + 49 43.0182 656 2 0 84.5251 -48.8488 -145.85 + 49 85.1569 655 2 0 84.5256 -48.85 -146.008 + 49 156.932 1323 1 1 84.6529 -49.0493 -174.45 + 49 115.58 654 1 0 84.6623 -49.0568 -175.85 + 49 149.491 1324 0 1 84.8662 -49.2283 -204.45 + 49 53.4008 654 0 0 84.8816 -49.2479 -205.85 + 49 89.1861 653 0 0 84.8833 -49.25 -206.003 + 49 263.756 1318 2 1 83.8268 -49.4934 -144.45 + 49 217.826 652 2 0 83.8333 -49.549 -145.85 + 49 120.864 1317 1 1 83.4819 -50.4443 -174.45 + 49 135.149 648 1 0 83.5883 -50.4361 -175.852 + 49 154.333 1328 0 1 85.7357 -49.8485 -204.45 + 49 200.99 650 0 0 85.8582 -49.9975 -205.85 + 49 54.9679 706 0 0 67.2121 -38.7014 -206.25 + 49 323.411 1315 1 1 83.1859 -49.6828 -174.45 + 49 107.159 651 1 0 83.2076 -49.7038 -175.85 + 49 121.445 1319 0 1 83.9048 -49.9741 -204.45 + 49 66.558 649 0 0 83.9343 -50.05 -206.052 + 49 11.7944 580 0 0 52.7797 -63.85 -206.085 + 49 196.174 581 0 0 52.7123 -63.85 -205.987 + 49 70.0739 582 0 0 52.8999 -63.6499 -206.069 + 49 228.924 1323 6 1 84.7732 -47.7559 -24.45 + 49 272.331 661 6 0 84.7724 -47.7143 -25.85 + 49 101.516 1318 5 1 83.6741 -47.2405 -54.4501 + 49 28.5793 1317 5 1 83.65 -47.2932 -54.7635 + 49 134.728 662 5 0 83.5572 -47.4579 -55.85 + 49 37.6708 1307 4 1 81.4788 -51.1174 -84.45 + 49 71.5118 1306 4 1 81.4499 -51.1008 -84.5706 + 49 285.616 645 4 0 81.1315 -50.9502 -85.8504 + 49 184.802 1263 3 1 72.7623 -47.0253 -114.45 + 49 183.57 1262 3 1 72.65 -46.9838 -114.827 + 49 225.382 665 3 0 72.3394 -46.8719 -115.85 + 49 343.352 666 3 0 72.2846 -46.85 -116.018 + 49 161.516 1209 2 1 61.9844 -40.9771 -144.45 + 49 36.8732 697 2 0 61.737 -40.496 -145.85 + 49 83.3053 698 2 0 61.7093 -40.4499 -145.996 + 49 116.916 1185 1 1 57.1316 -32.8099 -174.45 + 49 20.6277 1186 1 1 57.25 -32.8379 -174.769 + 49 122.058 735 1 0 57.6529 -32.9311 -175.85 + 49 127.567 1239 0 1 67.9009 -36.2856 -204.451 + 49 104.219 718 0 0 67.946 -36.4024 -205.85 + 49 50.3543 717 0 0 67.9756 -36.4505 -206.121 + 49 214.656 716 0 0 66.8788 -36.6678 -205.85 + 49 9.54793 560 0 0 50.9616 -68.0305 -206.25 + 49 135.323 559 0 0 50.9582 -68.05 -206.228 + 49 198.019 558 0 0 50.8918 -68.2502 -205.977 + 49 14.8018 1152 0 1 50.4742 -70.7784 -204.85 + 49 18.62 1151 0 1 50.45 -70.8121 -204.849 + 49 31.8904 540 0 0 48.9017 -71.9535 -205.85 + 49 34.2948 1140 0 1 48.0834 -70.5711 -204.85 + 49 121.731 1139 0 1 48.0499 -70.541 -204.827 + 49 105.657 1323 5 1 84.6657 -47.8633 -54.45 + 49 122.343 660 5 0 84.6874 -47.9074 -55.85 + 49 201.477 1326 4 1 85.2855 -48.809 -84.45 + 49 99.6246 655 4 0 85.3123 -48.9116 -85.85 + 49 250.507 1328 3 1 85.7317 -50.9808 -114.45 + 49 99.5235 644 3 0 85.793 -51.1266 -115.85 + 49 168.01 1334 2 1 86.9161 -54.0412 -144.45 + 49 135.39 629 2 0 87.0077 -54.1715 -145.85 + 49 138.738 1345 1 1 89.0626 -56.7659 -174.45 + 49 201.411 615 1 0 89.1285 -56.9609 -175.85 + 49 94.4277 1350 0 1 90.3467 -60.5133 -204.45 + 49 163.76 1351 0 1 90.35 -60.5199 -204.505 + 49 130.807 596 0 0 90.433 -60.697 -205.85 +Number of digits in this event: 49 +Using G4ParticleGun... +Particle energy: 1.84487 LIN +Particle: e- Event: 50 -Number of tracker hits in this event = 68 - 50 125.283 1129 8 1 45.971 134.225 35.55 - 50 102.427 1570 8 0 45.9713 134.223 34.15 - 50 94.2107 1129 7 1 45.9843 134.19 5.55 - 50 130.345 1570 7 0 45.9846 134.19 4.15 - 50 319.797 1129 6 1 45.9851 134.182 -24.45 - 50 164.861 1570 6 0 45.9845 134.182 -25.85 - 50 222.986 1129 5 1 45.9648 134.177 -54.45 - 50 109.658 1570 5 0 45.9689 134.185 -55.85 - 50 144.438 1129 4 1 46.0309 134.332 -84.45 - 50 112.832 1570 4 0 46.0292 134.328 -85.85 - 50 617.196 1129 3 1 45.9949 134.256 -114.45 - 50 375.056 1570 3 0 46.0018 134.25 -115.85 - 50 181.104 1130 2 1 46.1726 134.098 -144.45 - 50 227.881 1569 2 0 46.1808 134.098 -145.85 - 50 165.627 1131 1 1 46.3631 134.096 -174.45 - 50 226.54 1569 1 0 46.369 134.1 -175.85 - 50 160.487 1132 0 1 46.4729 134.232 -204.45 - 50 157.109 1570 0 0 46.467 134.241 -205.85 - 50 277.374 1567 1 0 46.2519 133.664 -175.85 - 50 153.615 1131 2 1 46.25 134.035 -144.482 - 50 94.1326 1129 2 1 45.9664 134.121 -144.45 - 50 126.508 1130 1 1 46.1257 134.04 -174.45 - 50 120.124 1131 0 1 46.2732 133.974 -204.45 - 50 147.189 1569 0 0 46.2847 133.968 -205.85 - 50 126.193 1126 2 1 45.3751 134.744 -144.45 - 50 141.008 1573 2 0 45.375 134.839 -145.85 - 50 127.761 1125 1 1 45.1877 137.024 -174.45 - 50 115.031 1584 1 0 45.339 137.047 -175.85 - 50 30.0926 1140 0 1 48.2397 137.592 -204.45 - 50 76.8255 1141 0 1 48.25 137.593 -204.566 - 50 89.9338 1587 0 0 48.3619 137.614 -205.85 - 50 107.942 1128 5 1 45.85 133.968 -54.6358 - 50 184.038 1564 5 0 44.7868 133.127 -55.85 - 50 37.8819 1563 5 0 44.4744 132.95 -56.1866 - 50 25.9414 1458 5 0 -33.8462 111.762 -56.25 - 50 195.787 1457 5 0 -33.9279 111.75 -56.1977 - 50 53.6572 721 5 1 -35.6964 110.847 -54.8499 - 50 101.303 720 5 1 -35.85 110.754 -54.7365 - 50 61.7517 719 5 1 -36.05 110.626 -54.6046 - 50 59.1376 718 5 1 -36.25 110.519 -54.5208 - 50 17.6158 717 5 1 -36.4503 110.369 -54.4799 - 50 243.873 1130 3 1 46.05 134.126 -114.531 - 50 117.243 1571 3 0 46.4325 134.444 -115.85 - 50 3.18242 1572 3 0 46.5412 134.55 -116.238 - 50 97.8016 1173 2 1 54.6913 142.203 -144.45 - 50 22.5636 1174 2 1 54.8501 142.192 -144.763 - 50 128.521 1609 2 0 55.4917 142.143 -145.85 - 50 140.35 1261 1 1 72.2603 139.869 -174.45 - 50 112.18 1597 1 0 72.5062 139.746 -175.85 - 50 114.756 1284 0 1 77.0353 137.266 -204.45 - 50 115.191 1583 0 0 76.6784 136.855 -205.85 - 50 6.50874 1582 0 0 76.5905 136.75 -206.231 - 50 99.14 707 5 0 -2.97898 -38.4641 -56.2499 - 50 1.54364 708 5 0 -3.00054 -38.45 -56.2214 - 50 15.4899 1131 3 1 46.3026 133.838 -114.45 - 50 74.2302 1128 3 1 45.85 133.783 -114.632 - 50 156.488 1127 3 1 45.6498 133.776 -114.709 - 50 89.8735 1126 3 1 45.45 133.777 -114.752 - 50 72.6579 1125 3 1 45.2493 133.793 -114.787 - 50 56.4707 1124 3 1 45.05 133.813 -114.809 - 50 49.9231 1123 3 1 44.8499 133.803 -114.835 - 50 54.2625 1122 3 1 44.6495 133.749 -114.842 - 50 41.9201 1121 3 1 44.45 133.653 -114.809 - 50 73.589 1120 3 1 44.25 133.569 -114.777 - 50 67.0514 1119 3 1 44.0496 133.425 -114.73 - 50 164.791 1118 3 1 43.8494 133.271 -114.704 - 50 160.4 1117 3 1 43.6495 132.968 -114.591 - 50 46.3203 1116 3 1 43.45 132.478 -114.486 -Number of digits in this event = 33 -Using G4ParticleGun ... -5.76178 LIN -e- +Number of tracker hits in this event: 86 + 50 127.724 663 11 1 -47.311 -3.38124 125.55 + 50 105.21 883 11 0 -47.3102 -3.39366 124.15 + 50 225.381 663 10 1 -47.3171 -3.71621 95.55 + 50 111.646 881 10 0 -47.3055 -3.7211 94.15 + 50 450.133 664 9 1 -47.1052 -3.72981 65.55 + 50 363.972 881 9 0 -47.122 -3.75834 64.15 + 50 123.358 662 8 1 -47.5193 -4.356 35.55 + 50 188.07 878 8 0 -47.4979 -4.3288 34.15 + 50 167.461 665 7 1 -47.0204 -3.73619 5.55 + 50 116.771 881 7 0 -47.0259 -3.66889 4.15 + 50 0.135495 882 7 0 -47.028 -3.65 3.75059 + 50 108.427 665 6 1 -46.9862 -2.46094 -24.45 + 50 135.739 888 6 0 -47.0264 -2.38965 -25.85 + 50 152.62 661 5 1 -47.8157 -0.843082 -54.45 + 50 148.912 896 5 0 -47.8583 -0.719616 -55.85 + 50 143.663 656 4 1 -48.7587 1.86001 -84.45 + 50 124.908 909 4 0 -48.8223 1.96836 -85.85 + 50 144.405 649 3 1 -50.1099 4.19382 -114.45 + 50 121.9 921 3 0 -50.1618 4.36688 -115.85 + 50 98.8176 644 2 1 -51.1496 8.0635 -144.45 + 50 197.284 941 2 0 -51.2126 8.26103 -145.85 + 50 181.621 637 1 1 -52.6181 12.2605 -174.45 + 50 208.21 962 1 0 -52.6179 12.5378 -175.85 + 50 120.735 638 0 1 -52.4059 18.3592 -204.45 + 50 92.7844 992 0 0 -52.4143 18.5991 -205.85 + 50 42.4195 993 0 0 -52.4155 18.65 -206.148 + 50 96.1767 963 1 0 -52.6688 12.6504 -176.11 + 50 141.683 964 1 0 -52.6574 12.85 -176.072 + 50 81.9893 917 1 0 -67.4102 3.51774 -176.25 + 50 18.2067 632 0 1 -53.5214 13.1557 -204.45 + 50 97.83 668 0 1 -46.3864 5.08228 -204.45 + 50 132.142 925 0 0 -46.5109 5.11371 -205.85 + 50 49.6988 875 8 0 -46.8107 -5.00921 34.1499 + 50 181.317 874 8 0 -46.7343 -5.05027 34.0651 + 50 149.575 665 9 1 -47.05 -3.77849 65.466 + 50 37.4754 711 8 1 -37.6776 -2.29814 35.55 + 50 186.165 712 8 1 -37.65 -2.21468 35.4967 + 50 66.2609 899 8 0 -37.0932 -0.197016 34.15 + 50 96.0527 900 8 0 -37.0387 0.0500733 33.9421 + 50 9.40357 740 7 1 -32.027 21.1378 5.55 + 50 90.1755 739 7 1 -32.05 21.1388 5.51965 + 50 35.9238 738 7 1 -32.25 21.169 5.25736 + 50 206.567 1005 7 0 -33.1245 21.1731 4.15 + 50 43.8436 528 6 1 -74.3323 28.2835 -24.45 + 50 126.197 527 6 1 -74.45 28.3033 -24.5494 + 50 54.9053 526 6 1 -74.6503 28.3095 -24.6865 + 50 59.2129 525 6 1 -74.85 28.3235 -24.7874 + 50 0.412946 524 6 1 -75.05 28.343 -24.8496 + 50 280.516 1042 6 0 -78.1045 28.482 -25.85 + 50 18.3064 886 6 0 -132.31 -2.7594 -26.25 + 50 65.9116 885 6 0 -132.308 -2.85 -26.1717 + 50 55.3009 884 6 0 -132.344 -3.05 -26.0338 + 50 39.6307 883 6 0 -132.384 -3.25 -25.9255 + 50 200.839 238 6 1 -132.506 -5.07495 -24.85 + 50 327.753 847 7 0 -135.106 -10.6343 3.75 + 50 126.477 846 7 0 -135.111 -10.65 3.82231 + 50 38.916 220 7 1 -136.088 -10.7316 5.15 + 50 156.467 219 7 1 -136.15 -10.7208 5.22197 + 50 130.607 218 7 1 -136.35 -10.6955 5.39495 + 50 29.9781 848 7 0 -135.806 -10.45 4.07685 + 50 113.598 302 7 1 -119.75 -13.58 5.27293 + 50 232.474 758 0 1 -28.3389 -6.65042 -204.45 + 50 26.7209 701 8 1 -39.752 -4.83662 35.5499 + 50 68.2966 702 8 1 -39.6495 -4.85819 35.5008 + 50 58.3597 703 8 1 -39.45 -4.88829 35.4055 + 50 57.0413 704 8 1 -39.2496 -4.91628 35.3113 + 50 49.805 705 8 1 -39.05 -4.95239 35.2212 + 50 295.36 873 8 0 -36.5366 -5.25 34.138 + 50 71.4048 1001 7 1 20.3726 -7.29778 5.55 + 50 60.9401 1002 7 1 20.45 -7.26451 5.52028 + 50 58.8895 1003 7 1 20.65 -7.18333 5.45128 + 50 191.184 1004 7 1 20.85 -7.11163 5.39103 + 50 62.9014 1005 7 1 21.05 -7.0468 5.32349 + 50 43.4136 1006 7 1 21.2512 -6.98022 5.25731 + 50 53.5326 1007 7 1 21.45 -6.96955 5.2234 + 50 54.4265 1008 7 1 21.65 -7.00459 5.20138 + 50 61.4285 1009 7 1 21.85 -7.06856 5.17877 + 50 6.80502 1010 7 1 22.0502 -7.16388 5.15474 + 50 47.0196 858 7 0 21.9742 -8.29377 4.15 + 50 86.2374 857 7 0 21.996 -8.45 4.01028 + 50 121.602 856 7 0 22.0396 -8.65 3.88768 + 50 119.329 665 7 0 17.0873 -47.0072 3.75 + 50 39.3159 983 7 1 16.6975 -47.1581 5.15 + 50 199.754 982 7 1 16.6498 -47.1717 5.21063 + 50 295.716 1011 5 1 22.25 -71.9793 -54.7221 + 50 0.260897 1012 5 1 22.45 -72.1383 -54.4751 +Number of digits in this event: 39 +Using G4ParticleGun... +Particle energy: 3.74926 LIN +Particle: e- Event: 51 -Number of tracker hits in this event = 162 - 51 110.828 1250 11 1 70.1486 -28.8055 125.55 - 51 151.082 756 11 0 70.1491 -28.8051 124.15 - 51 130.763 1250 10 1 70.1544 -28.7947 95.55 - 51 168.902 756 10 0 70.1535 -28.7951 94.15 - 51 118.035 1250 9 1 70.1344 -28.7967 65.55 - 51 168.968 756 9 0 70.1325 -28.7966 64.15 - 51 134.003 1250 8 1 70.0969 -28.7965 35.55 - 51 110.586 756 8 0 70.0962 -28.7969 34.15 - 51 126.576 1250 7 1 70.0864 -28.7977 5.55 - 51 122.497 756 7 0 70.0856 -28.7964 4.15 - 51 479.819 1250 6 1 70.0733 -28.7691 -24.45 - 51 228.518 756 6 0 70.0741 -28.7683 -25.85 - 51 102.06 1250 5 1 70.0857 -28.7512 -54.45 - 51 203.262 756 5 0 70.0874 -28.75 -55.85 - 51 394.274 1250 4 1 70.1321 -28.7233 -84.45 - 51 232.812 756 4 0 70.1358 -28.7219 -85.85 - 51 110.899 1250 3 1 70.2189 -28.6945 -114.45 - 51 230.155 756 3 0 70.2228 -28.6932 -115.85 - 51 430.444 1251 2 1 70.305 -28.6648 -144.45 - 51 791.271 756 2 0 70.3087 -28.6615 -145.85 - 51 257.744 1251 1 1 70.3803 -28.5976 -174.45 - 51 134.061 757 1 0 70.3818 -28.5936 -175.85 - 51 112.647 1251 0 1 70.413 -28.5121 -204.45 - 51 102.504 757 0 0 70.4146 -28.5099 -205.85 - 51 96.7232 1671 3 1 154.384 46.7704 -114.45 - 51 259.936 1672 3 1 154.55 46.7484 -114.521 - 51 126.989 242 1 0 26.0224 -131.55 -175.92 - 51 339.522 754 2 0 70.2311 -29.1592 -145.85 - 51 66.2555 753 2 0 70.2167 -29.25 -146.124 - 51 130.418 1241 1 1 68.4205 -37.2052 -174.451 - 51 141.587 718 1 0 68.0543 -36.4412 -175.851 - 51 1.48247 719 1 0 67.8774 -36.25 -176.244 - 51 129.89 817 1 0 63.258 -16.6483 -176.25 - 51 106.337 1219 1 1 64.0114 -16.4771 -174.85 - 51 90.0589 1220 1 1 64.05 -16.4677 -174.773 - 51 53.7012 1221 1 1 64.25 -16.4635 -174.541 - 51 69.7167 1250 2 1 70.25 -28.6541 -144.746 - 51 216.628 1250 1 1 70.2369 -28.8714 -174.45 - 51 227.199 755 1 0 70.1699 -28.9053 -175.85 - 51 118.391 1244 0 1 68.8797 -29.6662 -204.45 - 51 118.842 751 0 0 68.8995 -29.7824 -205.85 - 51 9.58911 1705 9 0 -28.4056 161.315 64.15 - 51 32.847 757 2 0 69.9922 -28.6499 -145.937 - 51 119.33 758 2 0 70.093 -28.3579 -145.85 - 51 115.11 1229 1 1 65.9591 -24.186 -174.45 - 51 44.3822 1228 1 1 65.8495 -24.2726 -174.753 - 51 88.8929 777 1 0 65.3723 -24.5876 -175.85 - 51 52.2865 776 1 0 65.2709 -24.65 -176.066 - 51 142.848 687 1 0 34.2101 -42.4722 -176.25 - 51 13.5017 1066 1 1 33.2599 -42.8705 -174.85 - 51 165.67 1065 1 1 33.2499 -42.8748 -174.835 - 51 355.875 1064 1 1 33.0499 -42.933 -174.564 - 51 73.9947 1062 1 1 32.6132 -42.6973 -174.45 - 51 554.275 1063 1 1 32.6503 -42.6402 -174.49 - 51 279.134 694 1 0 32.7169 -41.1695 -175.85 - 51 35.2696 1069 1 1 33.85 -39.5396 -174.628 - 51 36.8608 688 0 0 51.3261 -42.25 -206.045 - 51 51.4924 687 0 0 51.3379 -42.4501 -206.11 - 51 52.2426 548 0 0 63.0259 -70.3705 -206.249 - 51 271.318 547 0 0 63.0514 -70.45 -206.166 - 51 309.246 546 0 0 63.1934 -70.65 -205.99 - 51 45.8445 545 0 0 63.5012 -70.85 -205.917 - 51 124.111 700 10 0 -98.4358 -39.85 93.9754 - 51 45.0571 632 11 0 -115.696 -53.5713 123.75 - 51 78.9697 631 11 0 -115.781 -53.65 123.903 - 51 82.4198 318 11 1 -116.426 -54.1884 125.15 - 51 185.268 317 11 1 -116.55 -54.2797 125.356 - 51 278.855 700 12 0 -129.684 -39.9863 153.75 - 51 46.491 247 12 1 -130.628 -39.5107 155.15 - 51 113.133 246 12 1 -130.75 -39.4638 155.294 - 51 17.2925 245 12 1 -130.95 -39.3376 155.51 - 51 64.8496 819 13 0 -120.708 -16.179 183.75 - 51 71.4275 820 13 0 -120.647 -16.05 183.892 - 51 118.184 821 13 0 -120.579 -15.85 184.038 - 51 15.2465 822 13 0 -120.571 -15.65 184.126 - 51 265.271 296 13 1 -120.789 -13.6859 185.15 - 51 64.758 1252 2 1 70.45 -28.5823 -144.62 - 51 89.915 1253 2 1 70.65 -28.5751 -144.723 - 51 291.07 755 2 0 72.1993 -29.0498 -145.85 - 51 167.986 724 2 0 137.677 -35.21 -146.25 - 51 106.665 723 2 0 137.709 -35.2502 -146.01 - 51 133.822 1587 2 1 137.739 -37.5257 -144.85 - 51 60.1653 1588 2 1 137.75 -37.8515 -144.661 - 51 67.8357 1589 2 1 137.95 -37.8964 -144.586 - 51 63.2318 1590 2 1 138.15 -37.8873 -144.6 - 51 140.96 1591 2 1 138.35 -37.8403 -144.668 - 51 54.817 1592 2 1 138.55 -37.7417 -144.751 - 51 199.96 713 2 0 140.218 -37.2725 -145.85 - 51 9.47194 1283 2 0 166.648 76.789 -146.25 - 51 122.734 1249 3 1 69.8609 -28.4833 -114.45 - 51 142.382 1248 3 1 69.85 -28.4847 -114.778 - 51 201 757 3 0 69.8112 -28.4872 -115.85 - 51 126.09 1243 2 1 68.7799 -28.6888 -144.45 - 51 162.778 1248 1 1 69.7797 -31.3393 -174.45 - 51 187.662 742 1 0 69.7239 -31.4789 -175.85 - 51 40.0856 1242 0 1 68.4592 -34.4239 -204.45 - 51 82.1945 1241 0 1 68.45 -34.4378 -204.575 - 51 97.8538 727 0 0 68.3565 -34.5722 -205.85 - 51 120.675 745 2 0 129.75 -30.9602 -146.25 - 51 322.049 753 3 0 69.8473 -29.3357 -115.85 - 51 429.984 752 3 0 69.8069 -29.45 -116.027 - 51 60.3823 751 3 0 69.8718 -29.65 -116.154 - 51 250.594 755 4 0 70.1314 -28.8686 -85.8501 - 51 126.441 1254 3 1 70.8666 -31.449 -114.45 - 51 136.866 742 3 0 70.9091 -31.5229 -115.85 - 51 126.431 1258 2 1 71.7625 -33.0284 -144.45 - 51 103.004 734 2 0 71.7911 -33.1048 -145.85 - 51 172.415 1261 1 1 72.3048 -34.7082 -174.45 - 51 126.765 725 1 0 72.3247 -34.9369 -175.85 - 51 117.701 1260 0 1 72.1694 -39.2341 -204.45 - 51 13.2483 703 0 0 72.0027 -39.4455 -205.85 - 51 115.098 702 0 0 71.9992 -39.45 -205.88 - 51 128.685 755 6 0 70.0756 -28.9164 -25.8505 - 51 133.541 1248 5 1 69.8282 -31.2358 -54.45 - 51 2.00822 1249 5 1 69.85 -31.2661 -54.8445 - 51 100.376 743 5 0 69.9093 -31.3485 -55.85 - 51 124.746 1256 4 1 71.292 -34.5047 -84.45 - 51 131.31 726 4 0 71.352 -34.7803 -85.85 - 51 11.7839 725 4 0 71.3719 -34.85 -86.2038 - 51 86.3038 1266 3 1 73.291 -39.9835 -114.45 - 51 20.7449 1265 3 1 73.25 -40.0541 -114.773 - 51 116.069 698 3 0 73.0915 -40.3114 -115.851 - 51 121.846 1245 2 1 69.0952 -46.7487 -144.45 - 51 68.3908 665 2 0 69.1578 -46.998 -145.85 - 51 30.244 664 2 0 69.1751 -47.05 -146.116 - 51 329.671 1249 1 1 69.85 -53.7785 -174.503 - 51 43.0788 1252 1 1 70.45 -53.7084 -174.778 - 51 148.29 633 1 0 71.7226 -53.276 -175.85 - 51 119.322 1251 5 1 70.3339 -28.2039 -54.45 - 51 155.66 758 5 0 70.4102 -28.2755 -55.8501 - 51 116.632 1259 4 1 71.9634 -29.6501 -84.45 - 51 114.921 751 4 0 72.1703 -29.7581 -85.85 - 51 244.649 1277 3 1 75.4963 -32.3876 -114.45 - 51 107.728 738 3 0 75.7184 -32.3391 -115.85 - 51 114.873 1302 2 1 80.5189 -30.1539 -144.45 - 51 127.338 749 2 0 80.7992 -30.0843 -145.85 - 51 118.285 1330 1 1 86.2249 -29.0729 -174.45 - 51 59.4411 1331 1 1 86.2501 -29.0527 -174.648 - 51 211.404 1358 0 1 91.901 -27.9295 -204.45 - 51 48.296 1359 0 1 91.95 -27.9259 -204.648 - 51 268.257 760 0 0 92.2438 -27.9125 -205.85 - 51 128.228 1255 3 1 71.1524 -28.4016 -114.45 - 51 163.139 758 3 0 70.9757 -28.3546 -115.85 - 51 8.6453 873 3 0 70.2975 -5.27366 -116.25 - 51 89.6739 874 3 0 70.2924 -5.24989 -116.225 - 51 42.3212 875 3 0 70.22 -5.05 -115.989 - 51 284.019 1247 3 1 69.6472 -4.36949 -114.85 - 51 116.819 881 3 0 70.1528 -3.83671 -115.85 - 51 52.198 880 3 0 70.2456 -3.85006 -116.1 - 51 125.532 1340 3 1 88.1923 -28.1789 -114.85 - 51 225.166 1341 3 1 88.2503 -27.9435 -114.729 - 51 7.31394 886 4 1 -2.65 -60.6021 -84.848 - 51 167.425 839 3 0 56.4433 -12.0987 -116.25 - 51 113.615 756 1 0 69.9377 -28.7806 -175.85 - 51 175.903 1255 0 1 71.2055 -29.9457 -204.45 - 51 124.435 750 0 0 71.2021 -29.9217 -205.851 - 51 89.4089 1256 0 1 71.2502 -29.9737 -204.544 - 51 152.157 761 1 0 70.6915 -27.7696 -175.85 - 51 103.879 762 1 0 70.7892 -27.65 -176.013 - 51 130.028 1334 0 1 86.9187 -5.98699 -204.45 - 51 80.5695 877 0 0 87.2829 -4.6489 -205.85 - 51 68.6451 878 0 0 87.3327 -4.45 -206.058 -Number of digits in this event = 82 -Using G4ParticleGun ... -4.68268 LIN -e- +Number of tracker hits in this event: 42 + 51 105.218 1070 11 1 34.213 31.5095 125.55 + 51 132.953 1057 11 0 34.2103 31.5091 124.15 + 51 138.868 1070 10 1 34.1641 31.4979 95.55 + 51 93.8592 1057 10 0 34.1602 31.4963 94.15 + 51 169.515 1070 9 1 34.0955 31.4558 65.55 + 51 111.68 1057 9 0 34.0905 31.4553 64.15 + 51 133.621 1069 8 1 33.9862 31.4522 35.55 + 51 120.015 1057 8 0 33.9785 31.4518 34.15 + 51 197.185 1068 7 1 33.8181 31.4361 5.55 + 51 127.216 1056 7 0 33.8088 31.4363 4.15 + 51 139.005 1067 6 1 33.6224 31.4446 -24.45 + 51 124.079 1056 6 0 33.6142 31.4434 -25.85 + 51 140.355 1067 5 1 33.4643 31.4465 -54.45 + 51 119.845 1057 5 0 33.4591 31.4501 -55.85 + 51 141.087 1066 4 1 33.3715 31.5358 -84.45 + 51 161.679 1057 4 0 33.368 31.5413 -85.85 + 51 120.833 1066 3 1 33.2994 31.6494 -114.45 + 51 119.875 1058 3 0 33.2971 31.654 -115.85 + 51 113.291 1065 2 1 33.2474 31.7611 -144.45 + 51 136.851 1058 2 0 33.2442 31.7665 -145.85 + 51 206.297 1065 1 1 33.1859 31.8806 -174.45 + 51 110.417 1059 1 0 33.1803 31.8846 -175.85 + 51 103.209 1065 0 1 33.0564 31.9642 -204.45 + 51 113.081 1059 0 0 33.0521 31.9647 -205.85 + 51 113.099 1066 1 1 33.25 31.8267 -174.501 + 51 156.6 1067 1 1 33.4501 31.8891 -174.73 + 51 107.869 1068 1 1 33.65 32.0176 -174.8 + 51 113.741 1057 3 0 33.3034 31.65 -116.1 + 51 82.6729 1326 3 0 27.8511 85.3407 -116.25 + 51 92.7049 1327 3 0 27.8357 85.45 -116.072 + 51 162.973 1035 3 1 27.1306 85.3104 -114.85 + 51 119.164 1034 3 1 27.05 85.2819 -114.787 + 51 54.8734 15 13 0 -119.794 -176.95 183.856 + 51 132.373 1021 1 0 27.7991 24.4057 -176.25 + 51 65.5104 1022 1 0 27.6984 24.45 -175.985 + 51 78.8673 1023 1 0 27.6176 24.65 -175.963 + 51 140.894 1024 1 0 27.7422 24.85 -176.022 + 51 26.5682 1025 1 0 27.9012 25.05 -176.228 + 51 332.568 1064 0 1 32.9765 32.1764 -204.45 + 51 10.6773 1065 0 0 32.8899 33.2226 -205.85 + 51 198.323 1066 0 0 32.8869 33.25 -205.89 + 51 30.8687 1067 0 0 32.8384 33.45 -206.172 +Number of digits in this event: 24 +Using G4ParticleGun... +Particle energy: 4.20824 LIN +Particle: e- Event: 52 -Number of tracker hits in this event = 75 - 52 153.393 1100 11 1 40.1792 64.1381 125.55 - 52 138.932 1220 11 0 40.1789 64.1379 124.15 - 52 126.092 1100 10 1 40.1685 64.1409 95.55 - 52 108.56 1220 10 0 40.1655 64.1399 94.15 - 52 132.424 1100 9 1 40.1003 64.1102 65.55 - 52 154.01 1220 9 0 40.1012 64.1114 64.15 - 52 128.304 1100 8 1 40.1243 64.1429 35.55 - 52 135.814 1220 8 0 40.124 64.1446 34.15 - 52 185.734 1100 7 1 40.1205 64.1769 5.55 - 52 293.815 1220 7 0 40.1201 64.1772 4.15 - 52 277.171 1100 6 1 40.1122 64.1889 -24.45 - 52 235.409 1220 6 0 40.1142 64.1891 -25.85 - 52 123.265 1100 5 1 40.1601 64.1915 -54.45 - 52 235.261 1220 5 0 40.1628 64.1932 -55.85 - 52 117.394 1100 4 1 40.2248 64.2273 -84.45 - 52 277.6 1220 4 0 40.2262 64.2293 -85.85 - 52 158.925 1100 3 1 40.2472 64.2733 -114.45 - 52 261.825 1221 3 0 40.246 64.2739 -115.85 - 52 167.449 1101 2 1 40.2612 64.2879 -144.45 - 52 107.708 1221 2 0 40.2616 64.2881 -145.85 - 52 132.997 1101 1 1 40.2697 64.2871 -174.45 - 52 141.17 1221 1 0 40.2698 64.2876 -175.85 - 52 115.926 1101 0 1 40.281 64.2972 -204.45 - 52 122.813 1221 0 0 40.2768 64.2992 -205.85 - 52 283.166 1458 2 0 62.007 111.799 -146.25 - 52 157.892 1457 2 0 62.2511 111.75 -145.961 - 52 118.382 858 8 0 27.4345 -8.33747 33.75 - 52 50.8206 985 8 1 17.25 -20.7175 35.3207 - 52 67.9443 863 0 0 87.9831 -7.45 -206.049 - 52 92.8359 1229 4 0 4.35254 66.0049 -86.2496 - 52 67.2143 1230 4 0 4.15781 66.05 -86.0631 - 52 19.616 1231 4 0 4.19204 66.25 -85.9105 - 52 690.718 922 4 1 4.58205 67.9367 -84.8499 - 52 196.122 923 4 1 4.65 69.0343 -84.606 - 52 154.862 729 0 1 -34.1033 39.3879 -204.45 - 52 67.9612 1099 3 1 40.0497 64.0453 -114.45 - 52 223.079 1098 3 1 39.85 64.227 -114.508 - 52 96.8395 1097 3 1 39.6498 64.6612 -114.659 - 52 457.457 1096 3 1 39.45 64.8756 -114.685 - 52 93.4615 1095 3 1 39.2498 65.0849 -114.69 - 52 115.905 1223 3 0 37.6639 64.7926 -115.85 - 52 223.553 1222 3 0 37.4927 64.65 -116.007 - 52 67.2715 1088 3 1 37.85 64.7482 -114.595 - 52 119.288 1103 5 1 40.7543 64.1994 -54.45 - 52 95.7226 1110 4 1 42.0791 64.7158 -84.45 - 52 123.587 1223 4 0 42.1278 64.7343 -85.85 - 52 158.382 1114 3 1 43.0077 65.1148 -114.45 - 52 100.741 1225 3 0 43.039 65.1243 -115.85 - 52 126.37 1117 2 1 43.568 65.1749 -144.45 - 52 108.34 1225 2 0 43.5756 65.1861 -145.85 - 52 103.402 1118 1 1 43.8204 65.5026 -174.45 - 52 25.8115 1227 1 0 43.7979 65.4538 -175.85 - 52 100.494 1226 1 0 43.7962 65.45 -175.952 - 52 134.986 1116 0 1 43.3517 64.4479 -204.45 - 52 138.528 1222 0 0 43.3819 64.4546 -205.85 - 52 49.2191 515 3 0 1.67959 -76.85 -116.018 - 52 12.3477 905 3 1 1.07829 -77.1833 -114.85 - 52 375.25 904 3 1 1.0498 -77.191 -114.806 - 52 44.0462 903 3 1 0.85 -76.9334 -114.495 - 52 91.1845 1099 6 1 40.05 64.0444 -24.5365 - 52 119.019 1219 6 0 40.0343 63.9959 -25.85 - 52 147.548 1098 5 1 39.7712 62.6231 -54.45 - 52 116.144 1212 5 0 39.6362 62.563 -55.85 - 52 197.884 1084 4 1 36.9307 61.6544 -84.45 - 52 119.519 1207 4 0 36.7819 61.6104 -85.85 - 52 84.0942 1069 3 1 33.8731 60.897 -114.45 - 52 34.9301 1068 3 1 33.85 60.8792 -114.727 - 52 131.501 1203 3 0 33.7547 60.8092 -115.85 - 52 109.95 1056 2 1 31.419 59.1831 -144.45 - 52 118.529 1194 2 0 31.3937 58.9576 -145.85 - 52 152.871 1052 1 1 30.4736 54.359 -174.45 - 52 127.88 1169 1 0 30.4472 54.0226 -175.85 - 52 12.945 1044 0 1 28.8515 47.0048 -204.45 - 52 156.48 1043 0 1 28.85 46.9983 -204.484 - 52 141.491 1133 0 0 28.7946 46.733 -205.85 -Number of digits in this event = 44 -Using G4ParticleGun ... -7.37305 LIN -e- +Number of tracker hits in this event: 78 + 52 115.479 1028 9 1 25.7453 -127.659 65.55 + 52 131.084 262 9 0 25.7429 -127.658 64.15 + 52 122.929 1028 8 1 25.6991 -127.643 35.55 + 52 154.19 262 8 0 25.6979 -127.645 34.15 + 52 405.257 1028 7 1 25.6758 -127.671 5.55 + 52 155.915 262 7 0 25.6746 -127.674 4.15 + 52 127.599 1028 6 1 25.6573 -127.72 -24.45 + 52 178.434 262 6 0 25.6551 -127.721 -25.85 + 52 421.832 1027 5 1 25.6098 -127.759 -54.45 + 52 264.946 261 5 0 25.6102 -127.763 -55.85 + 52 276.089 1027 4 1 25.6103 -127.868 -84.45 + 52 114.611 261 4 0 25.6131 -127.872 -85.85 + 52 146.28 1028 3 1 25.6786 -127.97 -114.45 + 52 200.777 260 3 0 25.6837 -127.973 -115.85 + 52 456.204 1028 2 1 25.7983 -128.032 -144.45 + 52 351.813 260 2 0 25.8031 -128.036 -145.85 + 52 308.984 1029 1 1 25.9104 -128.115 -174.45 + 52 115.095 260 1 0 25.9154 -128.118 -175.85 + 52 133.992 1029 0 1 26.0365 -128.172 -204.45 + 52 144.509 259 0 0 26.0389 -128.178 -205.85 + 52 127.603 259 1 0 25.8985 -128.15 -176.191 + 52 80.2834 1027 3 1 25.65 -127.973 -114.776 + 52 100.099 225 3 0 27.9503 -135.028 -115.85 + 52 135.735 1027 1 1 25.6136 -128.316 -174.45 + 52 122.536 1028 0 1 25.7053 -128.531 -204.45 + 52 113.65 258 0 0 25.721 -128.543 -205.85 + 52 157.907 1031 1 1 26.3277 -127.039 -174.45 + 52 114.9 265 1 0 26.4344 -127.045 -175.85 + 52 145.146 1042 0 1 28.5108 -126.908 -204.45 + 52 114.403 266 0 0 28.6004 -126.93 -205.85 + 52 256.185 1026 1 1 25.3265 -127.855 -174.45 + 52 20.3121 263 1 0 25.3175 -127.369 -175.85 + 52 99.4085 264 1 0 25.3168 -127.35 -175.903 + 52 130.278 1020 0 1 24.2302 -115.695 -204.45 + 52 11.2021 325 0 0 24.2135 -114.968 -205.85 + 52 158.966 326 0 0 24.2134 -114.95 -205.885 + 52 118.024 261 1 0 25.2479 -127.805 -175.85 + 52 238.377 1018 0 1 23.7131 -127.207 -204.451 + 52 110.986 265 0 0 23.6261 -127.138 -205.85 + 52 82.4463 262 5 0 25.5822 -127.589 -55.85 + 52 39.8774 263 5 0 25.5669 -127.55 -56.1035 + 52 112.993 1013 4 1 22.7427 -122.706 -84.45 + 52 16.0679 1014 4 1 22.8501 -122.75 -84.772 + 52 30.7771 286 4 0 23.2214 -122.929 -85.8501 + 52 109.741 285 4 0 23.2583 -122.95 -85.9726 + 52 112.003 1055 3 1 31.0618 -126.025 -114.45 + 52 99.2676 1056 3 1 31.25 -126.195 -114.626 + 52 40.8862 1057 3 1 31.45 -126.37 -114.795 + 52 67.5615 262 3 0 33.2319 -127.603 -115.85 + 52 148.33 261 3 0 33.4431 -127.75 -115.967 + 52 45.0742 1311 2 1 82.349 -149.639 -144.45 + 52 269.155 1312 2 1 82.45 -149.65 -144.551 + 52 13.5904 1313 2 1 82.65 -149.683 -144.797 + 52 350.508 151 2 0 83.3286 -149.814 -145.85 + 52 9.29587 1420 1 1 104.165 -154.609 -174.45 + 52 139.006 1419 1 1 104.15 -154.592 -174.479 + 52 21.0701 1418 1 1 103.95 -154.327 -174.803 + 52 10.5874 133 1 0 102.784 -153.375 -175.85 + 52 106.954 134 1 0 102.748 -153.35 -175.879 + 52 70.3603 135 1 0 102.468 -153.15 -176.105 + 52 8.11205 1028 4 1 25.6515 -128.496 -84.45 + 52 115.466 257 4 0 25.6048 -128.556 -85.85 + 52 155.159 1022 3 1 24.522 -129.91 -114.45 + 52 296.628 250 3 0 24.4854 -129.974 -115.85 + 52 114.395 1019 2 1 23.8675 -131.175 -144.45 + 52 120.236 244 2 0 23.8188 -131.273 -145.85 + 52 113.057 1013 1 1 22.8128 -133.506 -174.45 + 52 130.176 232 1 0 22.7765 -133.586 -175.85 + 52 99.5335 1008 0 1 21.8231 -135.15 -204.45 + 52 125.311 224 0 0 21.7541 -135.199 -205.85 + 52 112.874 1004 7 1 20.9074 -143.695 5.54995 + 52 67.2174 1005 7 1 21.0503 -143.764 5.36579 + 52 8.03484 1006 7 1 21.25 -143.743 5.17518 + 52 128.504 181 7 0 22.4056 -143.914 4.14995 + 52 150.962 1027 8 1 25.5883 -127.577 35.55 + 52 56.9553 257 8 0 25.1147 -128.623 34.15 + 52 93.3303 256 8 0 25.0593 -128.75 33.9922 + 52 34.0989 255 8 0 24.9229 -128.95 33.8133 +Number of digits in this event: 40 +Using G4ParticleGun... +Particle energy: 3.01091 LIN +Particle: e- Event: 53 -Number of tracker hits in this event = 41 - 53 127.813 379 10 1 -104.232 -50.2219 95.4646 - 53 109.289 649 10 0 -104.232 -50.222 94.15 - 53 128.362 379 9 1 -104.231 -50.2253 65.55 - 53 126.261 649 9 0 -104.23 -50.225 64.15 - 53 113.353 379 8 1 -104.224 -50.2196 35.55 - 53 143.462 649 8 0 -104.227 -50.2194 34.15 - 53 131.733 379 7 1 -104.271 -50.2013 5.55 - 53 119.401 649 7 0 -104.272 -50.198 4.15 - 53 173.62 379 6 1 -104.28 -50.1335 -24.45 - 53 122.904 649 6 0 -104.279 -50.1343 -25.85 - 53 117.901 379 5 1 -104.257 -50.1563 -54.45 - 53 111.525 649 5 0 -104.255 -50.1577 -55.85 - 53 218.854 379 4 1 -104.225 -50.1944 -84.45 - 53 244.21 649 4 0 -104.224 -50.1967 -85.85 - 53 116.722 379 3 1 -104.205 -50.2448 -114.45 - 53 100.091 649 3 0 -104.223 -50.2373 -115.85 - 53 160.779 378 2 1 -104.514 -50.0311 -144.45 - 53 192.572 650 2 0 -104.524 -50.0417 -145.85 - 53 132.124 377 1 1 -104.736 -50.2664 -174.45 - 53 91.1418 648 1 0 -104.74 -50.2744 -175.85 - 53 133.391 376 0 1 -104.863 -50.4701 -204.45 - 53 172.994 647 0 0 -104.879 -50.507 -205.85 - 53 152.738 270 2 1 -125.962 166.141 -144.45 - 53 106.633 271 2 1 -125.95 166.134 -144.487 - 53 17.6159 643 4 0 -103.819 -51.3885 -85.85 - 53 71.972 642 4 0 -103.797 -51.4501 -85.9017 - 53 66.125 641 4 0 -103.735 -51.65 -86.0548 - 53 73.7055 378 6 1 -104.35 -50.1129 -24.478 - 53 67.4288 377 6 1 -104.55 -50.117 -24.6028 - 53 103.073 376 6 1 -104.75 -50.0961 -24.7479 - 53 72.4347 651 6 0 -106.353 -49.6932 -25.8507 - 53 84.4584 652 6 0 -106.559 -49.65 -25.9931 - 53 93.8729 714 4 0 -163.447 -37.1523 -85.85 - 53 62.0723 713 4 0 -163.569 -37.25 -86.1003 - 53 283.656 680 7 0 -128.894 -43.9148 3.75 - 53 20.4323 679 7 0 -129.674 -44.05 4.1402 - 53 5.59824 234 7 1 -133.221 -46.404 5.15 - 53 27.9602 658 7 0 -136.846 -48.2824 4.15 - 53 8.09414 215 7 1 -137.069 -50.6644 5.15006 - 53 347.583 646 7 0 -136.539 -50.7981 4.14948 - 53 60.5866 645 7 0 -136.485 -50.85 4.01582 -Number of digits in this event = 19 -Using G4ParticleGun ... -4.82988 LIN -e- +Number of tracker hits in this event: 52 + 53 231.447 1187 7 1 57.5558 -138.213 5.55 + 53 138.385 209 7 0 57.556 -138.213 4.15 + 53 132.796 1187 6 1 57.5616 -138.186 -24.45 + 53 115.555 209 6 0 57.5619 -138.183 -25.85 + 53 116.186 1187 5 1 57.5717 -138.117 -54.45 + 53 110.469 210 5 0 57.5757 -138.114 -55.85 + 53 228.976 1188 4 1 57.6583 -138.06 -84.45 + 53 148.263 210 4 0 57.6611 -138.053 -85.85 + 53 170.255 1188 3 1 57.7334 -137.95 -114.45 + 53 121.33 211 3 0 57.7383 -137.947 -115.85 + 53 383.963 1188 2 1 57.8494 -137.897 -144.45 + 53 169.768 1189 2 1 57.85 -137.897 -144.664 + 53 480.263 211 2 0 57.8539 -137.896 -145.85 + 53 156.949 1189 1 1 57.8826 -137.868 -174.45 + 53 368.204 211 1 0 57.8841 -137.866 -175.85 + 53 208.223 1189 0 1 57.9094 -137.817 -204.45 + 53 130.044 211 0 0 57.9124 -137.815 -205.85 + 53 74.2543 215 0 0 58.0052 -137.126 -205.85 + 53 66.5112 216 0 0 58.0288 -136.95 -206.051 + 53 15.407 217 0 0 58.0273 -136.75 -206.219 + 53 81.2728 350 0 0 17.7548 -110.034 -206.25 + 53 237.079 426 0 0 -61.2005 -94.9239 -206.25 + 53 68.1024 584 0 1 -63.1096 -95.3176 -204.85 + 53 60.0454 583 0 1 -63.25 -95.3018 -204.76 + 53 387.134 582 0 1 -63.4502 -95.2831 -204.725 + 53 73.6677 581 0 1 -63.65 -95.0995 -204.726 + 53 130.174 327 0 0 -30.5572 -114.655 -206.25 + 53 10.7363 1189 4 1 57.85 -137.896 -84.8469 + 53 96.9692 215 4 0 58.9565 -137.098 -85.85 + 53 54.2024 216 4 0 59.1795 -136.95 -85.9238 + 53 18.1594 1209 4 1 62.0001 -129.289 -84.85 + 53 11.1362 293 4 0 64.5123 -121.376 -85.85 + 53 262.137 294 4 0 64.5257 -121.35 -85.8539 + 53 14.7447 160 4 0 33.915 -148.135 -86.25 + 53 163.806 224 4 0 70.2555 -135.303 -86.25 + 53 117.743 1190 0 1 58.05 -137.726 -204.525 + 53 282.025 1191 0 1 58.25 -137.573 -204.498 + 53 41.3312 1188 0 1 57.7123 -137.449 -204.45 + 53 334.815 1188 1 1 57.8496 -137.858 -174.559 + 53 166.152 1185 1 1 57.1498 -137.837 -174.45 + 53 112.078 1180 0 1 56.1633 -138.589 -204.45 + 53 128.22 207 0 0 56.1752 -138.687 -205.85 + 53 72.5606 1186 1 1 57.2505 -137.828 -174.579 + 53 92.7558 1187 1 1 57.4504 -137.846 -174.682 + 53 395.516 209 1 0 58.919 -138.202 -175.85 + 53 203.082 210 2 0 57.9001 -137.95 -145.99 + 53 95.6509 1184 1 1 56.8956 -138.038 -174.45 + 53 28.9572 1183 1 1 56.85 -138.017 -174.783 + 53 56.3751 210 1 0 56.6966 -137.958 -175.85 + 53 153.306 1163 0 1 52.7885 -136.054 -204.45 + 53 137.133 222 0 0 52.446 -135.744 -205.85 + 53 133.977 126 1 0 48.1862 -154.76 -176.25 +Number of digits in this event: 30 +Using G4ParticleGun... +Particle energy: 8.96517 LIN +Particle: e- Event: 54 -Number of tracker hits in this event = 78 - 54 204.92 1201 11 1 60.3094 -32.9418 125.55 - 54 103.981 735 11 0 60.3103 -32.9426 124.15 - 54 107.969 1201 10 1 60.327 -32.9612 95.55 - 54 138.56 735 10 0 60.3283 -32.9627 94.15 - 54 173.68 1201 9 1 60.3566 -33.0122 65.55 - 54 113.627 735 9 0 60.3587 -33.0156 64.15 - 54 101.805 1201 8 1 60.3991 -33.0819 35.55 - 54 156.546 734 8 0 60.4018 -33.0832 34.15 - 54 130.508 1202 7 1 60.4656 -33.1084 5.55 - 54 161.459 734 7 0 60.4686 -33.1113 4.15 - 54 110.672 1202 6 1 60.5279 -33.1727 -24.45 - 54 113.626 734 6 0 60.5328 -33.1764 -25.85 - 54 121.782 1202 5 1 60.6384 -33.2537 -54.45 - 54 155.91 733 5 0 60.6435 -33.2571 -55.85 - 54 424.135 1203 4 1 60.7447 -33.3412 -84.45 - 54 507.188 733 4 0 60.7484 -33.3444 -85.85 - 54 143.759 1203 3 1 60.8272 -33.4019 -114.45 - 54 234.015 733 3 0 60.8346 -33.4066 -115.85 - 54 273.639 1204 2 1 61.0074 -33.5021 -144.45 - 54 140.231 732 2 0 61.0162 -33.5082 -145.85 - 54 185.669 1205 1 1 61.1997 -33.6318 -174.45 - 54 148.507 732 1 0 61.2073 -33.6387 -175.85 - 54 524.032 1206 0 1 61.3725 -33.7663 -204.45 - 54 371.245 731 0 0 61.3814 -33.76 -205.85 - 54 53.6757 1364 0 1 92.95 65.7732 -204.603 - 54 9.10342 1363 0 1 92.95 65.7911 -204.464 - 54 16.8707 1422 2 1 104.682 79.6529 -144.85 - 54 316.449 1423 2 1 104.75 79.8238 -144.714 - 54 283.693 692 3 0 -141.104 -41.5102 -116.25 - 54 113.496 763 4 0 126.074 -27.3367 -86.25 - 54 35.8991 1532 4 1 126.708 -27.3089 -84.85 - 54 111.475 1533 4 1 126.75 -27.3144 -84.7418 - 54 115.475 768 5 0 123 -26.3484 -56.25 - 54 80.0163 1513 5 1 122.797 -26.3689 -54.85 - 54 16.6719 1512 5 1 122.75 -26.4202 -54.5224 - 54 98.4605 792 6 0 118.654 -21.5115 -26.2499 - 54 9.95217 1492 6 1 118.551 -21.3423 -24.85 - 54 93.1271 1491 6 1 118.55 -21.3414 -24.8402 - 54 324.521 1490 6 1 118.314 -20.8516 -24.45 - 54 53.5927 787 6 0 117.537 -22.5238 -25.85 - 54 76.4506 786 6 0 117.495 -22.6502 -25.9674 - 54 51.5674 785 6 0 117.467 -22.85 -26.0723 - 54 123.023 784 6 0 117.454 -23.05 -26.0997 - 54 26.7361 783 6 0 117.447 -23.25 -26.2104 - 54 37.9991 673 6 0 98.5881 -45.3269 -26.25 - 54 89.7705 674 6 0 98.4759 -45.25 -26.136 - 54 1.02174 1388 6 1 97.7522 -45.0461 -24.85 - 54 135.322 1387 6 1 97.7498 -45.0458 -24.846 - 54 114.927 1165 4 1 53.1668 100.149 -84.85 - 54 278.155 733 2 0 60.9527 -33.45 -146.106 - 54 82.4866 3 2 0 -118.753 -179.368 -146.25 - 54 71.0313 2 2 0 -118.846 -179.55 -146.179 - 54 28.2626 1 2 0 -118.883 -179.75 -146.203 - 54 103.958 1204 3 1 60.9233 -33.3997 -114.45 - 54 125.036 1204 1 1 61.0438 -33.2443 -174.45 - 54 102.259 734 1 0 61.0572 -33.2251 -175.85 - 54 311.43 736 0 0 61.4024 -32.7581 -205.85 - 54 106.958 1201 3 1 60.3906 -33.1306 -114.45 - 54 130.553 735 3 0 60.2432 -33.0097 -115.85 - 54 126.181 1186 2 1 57.353 -30.0663 -144.45 - 54 113.342 750 2 0 57.1498 -29.9458 -145.851 - 54 144.033 1165 1 1 53.2197 -26.9603 -174.45 - 54 102.702 765 1 0 53.13 -26.8774 -175.852 - 54 112.07 1157 0 1 51.5315 -25.4742 -204.45 - 54 129.236 773 0 0 51.4779 -25.3016 -205.85 - 54 58.116 1246 5 1 69.3216 -19.032 -54.85 - 54 222.443 1202 2 1 60.5081 -32.981 -144.45 - 54 257.838 735 2 0 60.4987 -32.9674 -145.85 - 54 104.525 1201 1 1 60.3571 -32.6995 -174.45 - 54 122.265 736 1 0 60.3677 -32.6987 -175.85 - 54 113.917 1202 0 1 60.53 -32.6809 -204.45 - 54 15.4555 752 9 1 -29.45 19.8377 65.3309 - 54 116.704 753 9 1 -29.45 19.8411 65.3642 - 54 108.305 1202 1 1 60.4783 -32.9694 -174.45 - 54 172.904 735 1 0 60.4655 -32.9494 -175.85 - 54 116.666 1200 0 1 60.1738 -32.4542 -204.45 - 54 117.767 738 0 0 60.1664 -32.4426 -205.85 - 54 83.5148 878 2 0 -84.1172 -4.40191 -146.25 -Number of digits in this event = 37 -Using G4ParticleGun ... -5.85283 LIN -e- +Number of tracker hits in this event: 74 + 54 115.293 690 8 1 -41.8804 129.66 35.55 + 54 103.629 1547 8 0 -41.8796 129.66 34.15 + 54 109.745 690 7 1 -41.8584 129.674 5.55 + 54 111.283 1547 7 0 -41.8564 129.675 4.15 + 54 167.617 691 6 1 -41.8155 129.706 -24.45 + 54 103.381 1547 6 0 -41.8138 129.707 -25.85 + 54 124.18 691 5 1 -41.7788 129.731 -54.45 + 54 108.105 1547 5 0 -41.7783 129.732 -55.85 + 54 162.838 691 4 1 -41.7629 129.759 -84.45 + 54 166.59 1548 4 0 -41.7634 129.76 -85.85 + 54 372.222 691 3 1 -41.776 129.783 -114.45 + 54 265.799 1548 3 0 -41.7763 129.783 -115.85 + 54 107.249 691 2 1 -41.7789 129.782 -144.45 + 54 240.666 1548 2 0 -41.7801 129.781 -145.85 + 54 121.839 691 1 1 -41.8044 129.768 -174.45 + 54 223.572 1548 1 0 -41.8054 129.768 -175.85 + 54 91.269 691 0 1 -41.8288 129.758 -204.45 + 54 126.502 1548 0 0 -41.8291 129.757 -205.85 + 54 132.411 1337 8 0 10.755 87.45 33.8842 + 54 19.7682 1396 7 0 -121.064 99.35 4.09687 + 54 183.603 1495 6 0 -90.4746 119.208 -26.25 + 54 277.668 692 1 1 -41.6325 129.849 -174.45 + 54 99.0871 680 0 1 -44.0032 127.963 -204.45 + 54 120.283 1538 0 0 -44.0592 127.877 -205.85 + 54 23.5612 1541 1 0 -41.2069 128.391 -175.85 + 54 72.1026 1540 1 0 -41.1931 128.35 -175.892 + 54 84.379 1539 1 0 -41.1042 128.15 -176.054 + 54 73.1842 1538 1 0 -40.9779 127.95 -176.169 + 54 5.22698 1537 1 0 -40.8067 127.75 -176.243 + 54 11.4899 1275 1 0 4.80334 75.2302 -176.25 + 54 108.025 1276 1 0 4.78413 75.2503 -176.219 + 54 59.9392 1277 1 0 4.56585 75.4501 -175.936 + 54 143.037 918 1 1 3.6991 76.4191 -174.85 + 54 186.23 917 1 1 3.65 76.4798 -174.777 + 54 156.442 916 1 1 3.45 76.6081 -174.5 + 54 44.8082 1283 1 0 4.53257 76.8004 -175.85 + 54 63.8425 1284 1 0 4.6538 76.85 -175.928 + 54 151.112 1285 1 0 4.84624 77.05 -175.963 + 54 93.5573 929 1 1 5.8952 77.8073 -174.85 + 54 86.703 930 1 1 6.05 77.6893 -174.775 + 54 186.499 931 1 1 6.25 77.4822 -174.699 + 54 195.592 932 1 1 6.45 77.1424 -174.549 + 54 106.397 933 1 1 6.65 77.1344 -174.774 + 54 196.656 693 2 1 -41.4471 129.782 -144.45 + 54 331.431 704 1 1 -39.1559 130.752 -174.45 + 54 206.022 1553 1 0 -39.1016 130.871 -175.85 + 54 277.301 709 0 1 -38.2389 133.338 -204.45 + 54 184.676 1569 0 0 -37.9883 133.999 -205.85 + 54 22.834 1570 0 0 -37.9324 134.15 -206.166 + 54 50.3801 1563 0 0 -37.4442 132.854 -205.85 + 54 45.5399 1562 0 0 -37.5803 132.75 -205.871 + 54 150.54 706 0 1 -38.7316 132.625 -204.85 + 54 335.307 705 0 1 -38.8501 132.331 -204.63 + 54 2.94762 704 0 1 -39.05 132.162 -204.687 + 54 139.184 705 1 1 -39.0499 130.749 -174.567 + 54 134.928 1547 3 0 -41.624 129.727 -115.85 + 54 23.3907 700 2 1 -39.9991 128.461 -144.45 + 54 127.734 699 2 1 -40.0503 128.414 -144.505 + 54 76.4835 698 2 1 -40.2501 128.212 -144.714 + 54 82.4556 1537 2 0 -40.8403 127.639 -145.85 + 54 70.0037 1536 2 0 -40.9275 127.55 -146.026 + 54 23.3168 607 1 1 -58.5069 114.127 -174.45 + 54 105.334 608 1 1 -58.4499 114.171 -174.517 + 54 52.0852 609 1 1 -58.25 114.343 -174.758 + 54 31.7654 1477 1 0 -56.6603 115.669 -175.85 + 54 94.1406 1478 1 0 -56.5746 115.75 -175.915 + 54 63.887 1479 1 0 -56.3193 115.95 -176.116 + 54 10.4013 756 0 1 -28.7264 135.107 -204.45 + 54 51.9197 1528 2 0 -42.1707 125.857 -145.85 + 54 77.8165 1527 2 0 -42.2669 125.75 -145.884 + 54 86.9623 1526 2 0 -42.4063 125.55 -145.903 + 54 85.3194 1525 2 0 -42.5702 125.35 -145.946 + 54 80.8059 1524 2 0 -42.7074 125.15 -146.05 + 54 26.1565 1523 2 0 -42.8285 124.95 -146.191 +Number of digits in this event: 32 +Using G4ParticleGun... +Particle energy: 8.94863 LIN +Particle: e- Event: 55 -Number of tracker hits in this event = 131 - 55 112.293 1326 10 1 85.2707 50.1428 95.55 - 55 125.796 1150 10 0 85.27 50.1429 94.15 - 55 149.961 1326 9 1 85.2576 50.1454 65.55 - 55 139.736 1150 9 0 85.2563 50.1457 64.15 - 55 109.795 1325 8 1 85.2281 50.1456 35.55 - 55 123.04 1150 8 0 85.2279 50.1461 34.15 - 55 116.433 1325 7 1 85.2214 50.1578 5.55 - 55 106.522 1150 7 0 85.2208 50.1595 4.15 - 55 119.22 1325 6 1 85.2181 50.2001 -24.45 - 55 139.304 1150 6 0 85.2184 50.2034 -25.85 - 55 320.598 1325 5 1 85.2271 50.2684 -54.45 - 55 155.885 1151 5 0 85.2275 50.2697 -55.85 - 55 119.503 1325 4 1 85.2323 50.3013 -84.45 - 55 112.236 1151 4 0 85.231 50.3032 -85.85 - 55 133.908 1325 3 1 85.2042 50.3468 -114.45 - 55 131.114 1151 3 0 85.2019 50.348 -115.85 - 55 602.726 1325 2 1 85.1539 50.3814 -144.45 - 55 250.011 1151 2 0 85.1506 50.3813 -145.85 - 55 469.637 1325 1 1 85.0841 50.3818 -174.45 - 55 108.619 1151 1 0 85.0806 50.383 -175.85 - 55 101.221 1324 0 1 85.0235 50.4156 -204.45 - 55 347.376 1151 0 0 85.0164 50.4168 -205.85 - 55 108.077 1313 1 1 82.7779 47.4468 -174.45 - 55 113.773 1312 1 1 82.65 47.3459 -174.549 - 55 102.648 1311 1 1 82.45 47.1449 -174.679 - 55 137.376 1310 1 1 82.25 46.9386 -174.72 - 55 1.64735 1309 1 1 82.05 46.6148 -174.848 - 55 109.175 1123 1 0 81.3781 44.8006 -175.85 - 55 81.3453 1122 1 0 81.2894 44.65 -175.949 - 55 67.9348 1121 1 0 81.0942 44.4498 -176.105 - 55 78.2057 909 1 0 32.2304 1.97837 -176.25 - 55 86.7273 908 1 0 32.0433 1.85 -176.156 - 55 91.695 907 1 0 31.8139 1.65 -176.104 - 55 49.8539 906 1 0 31.5977 1.44993 -175.921 - 55 59.8285 1048 1 1 29.6958 0.232342 -174.85 - 55 146.127 1047 1 1 29.65 0.20509 -174.824 - 55 8.68681 1046 1 1 29.45 0.122697 -174.753 - 55 28.3831 890 1 0 29.9411 -1.97555 -175.85 - 55 137.762 889 1 0 29.9379 -2.05 -175.916 - 55 31.7416 975 1 0 60.5296 15.1563 -176.25 - 55 97.4209 976 1 0 60.6253 15.2501 -176.17 - 55 5.06799 977 1 0 60.7424 15.4502 -175.867 - 55 88.5354 1204 1 1 60.9298 15.8332 -174.85 - 55 71.1617 1205 1 1 61.0502 15.7772 -174.594 - 55 140.5 1152 2 0 85.3234 50.4851 -145.85 - 55 72.2785 1338 1 1 87.833 55.0368 -174.45 - 55 91.6028 1339 1 1 87.85 55.0136 -174.572 - 55 54.5891 1173 1 0 88.0046 54.7004 -175.85 - 55 126.591 1172 1 0 88.031 54.6499 -176.057 - 55 130.788 1364 0 1 92.9851 47.2052 -204.45 - 55 241.34 1131 0 0 92.9561 46.4433 -205.85 - 55 58.2956 957 0 0 102.049 11.5894 -206.25 - 55 97.706 956 0 0 102.119 11.4497 -206.136 - 55 24.2932 955 0 0 102.259 11.2496 -205.893 - 55 24.2734 1412 0 1 102.715 10.4286 -204.85 - 55 105.04 1413 0 1 102.75 10.3619 -204.769 - 55 104.656 829 1 0 122.743 -14.0685 -176.25 - 55 181.748 828 1 0 122.879 -14.25 -176.043 - 55 107.236 1516 1 1 123.382 -15.1441 -174.85 - 55 44.9634 1517 1 1 123.55 -15.4061 -174.556 - 55 34.6535 1518 1 1 123.895 -15.4303 -174.45 - 55 117.044 1519 1 1 123.95 -15.4185 -174.541 - 55 86.2443 822 1 0 124.933 -15.4956 -175.85 - 55 170.689 823 1 0 125.073 -15.45 -176.012 - 55 14.3322 1232 1 0 125.586 66.6077 -176.25 - 55 85.5742 1233 1 0 125.576 66.65 -176.232 - 55 68.4325 1234 1 0 125.505 66.85 -176.13 - 55 46.1726 1235 1 0 125.411 67.0504 -175.95 - 55 14.6589 1527 1 1 125.581 70.3061 -174.85 - 55 36.3809 1284 1 0 125.474 76.9263 -175.85 - 55 202.179 1533 1 1 126.783 80.9283 -174.85 - 55 98.5078 1534 1 1 126.95 81.2462 -174.816 - 55 114.995 1535 1 1 127.15 81.523 -174.774 - 55 62.5751 1536 1 1 127.35 81.845 -174.796 - 55 80.4537 1537 1 1 127.55 81.9671 -174.813 - 55 73.004 1311 1 0 129.866 82.3224 -175.85 - 55 67.9626 1312 1 0 130.073 82.45 -175.949 - 55 87.3913 1313 1 0 130.12 82.65 -176.046 - 55 44.6719 1314 1 0 130.238 82.85 -176.143 - 55 12.9209 1016 1 0 66.9071 23.369 -176.25 - 55 81.4541 860 0 0 78.9993 -7.89453 -206.25 - 55 128.511 859 0 0 78.8241 -8.05 -206.073 - 55 3.32114 858 0 0 78.6386 -8.25 -205.86 - 55 371.587 1291 0 1 78.3799 -9.58992 -204.85 - 55 44.7278 842 0 0 79.8962 -11.5585 -205.85 - 55 128.657 841 0 0 80.0813 -11.65 -205.944 - 55 32.3374 840 0 0 80.4456 -11.8501 -206.151 - 55 94.7877 717 0 0 107.803 -36.4555 -206.25 - 55 161.084 716 0 0 108.069 -36.65 -206.12 - 55 113.352 715 0 0 108.634 -36.85 -206.058 - 55 150.749 714 0 0 108.938 -37.0503 -206.072 - 55 152.176 734 0 0 90.6924 -33.1337 -206.25 - 55 382.819 1352 0 1 90.649 -33.4373 -204.85 - 55 338.65 1325 0 1 85.1901 50.4116 -204.45 - 55 253.853 1101 1 1 40.45 40.3715 -174.806 - 55 253.522 1150 5 0 85.2719 50.2421 -55.8505 - 55 100.218 1337 4 1 87.5771 49.6804 -84.45 - 55 159.027 1149 4 0 87.574 49.8887 -85.85 - 55 145.595 1338 3 1 87.7349 55.7656 -114.45 - 55 114.623 1181 3 0 88.0259 56.2617 -115.85 - 55 224.203 1369 2 1 94.0206 66.0965 -144.45 - 55 149.149 1231 2 0 94.3171 66.3059 -145.85 - 55 159.269 1410 1 1 102.23 70.6286 -174.45 - 55 103.488 1257 1 0 102.294 71.4838 -175.85 - 55 83.2327 1258 1 0 102.303 71.65 -176.12 - 55 106.783 1430 0 1 106.286 87.3654 -204.45 - 55 42.9987 1431 0 1 106.35 87.4214 -204.731 - 55 24.0939 1337 0 0 106.623 87.6327 -205.85 - 55 137.493 1338 0 0 106.648 87.65 -205.948 - 55 115.868 1324 4 1 84.8876 49.0978 -84.45 - 55 114.275 1144 4 0 84.8224 48.9871 -85.8504 - 55 139.932 1315 3 1 83.116 46.4128 -114.45 - 55 133.477 1130 3 0 82.971 46.2275 -115.85 - 55 185.793 1299 2 1 80.0088 41.8304 -144.45 - 55 145.646 1107 2 0 79.7143 41.5693 -145.85 - 55 146.866 1265 1 1 73.2185 35.8137 -174.45 - 55 310.181 1078 1 0 72.7642 35.6864 -175.85 - 55 119.594 1216 0 1 63.3827 33.2938 -204.45 - 55 4.82609 1065 0 0 62.9545 33.0544 -205.851 - 55 99.9435 1064 0 0 62.9468 33.05 -205.876 - 55 109.71 1300 2 1 80.05 41.7806 -144.561 - 55 123.207 1103 2 0 80.0831 40.843 -145.85 - 55 76.4295 1102 2 0 80.1308 40.65 -146.013 - 55 76.0312 1309 2 1 81.9575 40.8041 -144.85 - 55 98.7482 1310 2 1 82.0501 40.8722 -144.68 - 55 270.845 1152 1 0 85.1913 50.5805 -175.85 - 55 125.268 1322 0 1 84.6217 50.9641 -204.45 - 55 236.364 1154 0 0 84.4699 50.9952 -205.85 - 55 104.6 1319 0 1 83.9858 51.7647 -204.45 - 55 117.143 1158 0 0 83.8889 51.8159 -205.85 - 55 79.7867 1000 3 1 20.2215 128.291 -114.85 -Number of digits in this event = 51 -Using G4ParticleGun ... -7.51812 LIN -e- +Number of tracker hits in this event: 85 + 55 125.531 1300 11 1 80.241 3.64184 125.55 + 55 128.984 917 11 0 80.2412 3.64344 124.15 + 55 114.56 1300 10 1 80.2416 3.67089 95.55 + 55 238.066 918 10 0 80.2411 3.67284 94.15 + 55 105.341 1300 9 1 80.2329 3.71326 65.55 + 55 119.84 918 9 0 80.2322 3.71623 64.15 + 55 154.094 1300 8 1 80.2139 3.77993 35.55 + 55 125.376 918 8 0 80.2136 3.78378 34.15 + 55 121.945 1300 7 1 80.2135 3.85199 5.55 + 55 139.113 919 7 0 80.2123 3.85383 4.15 + 55 119.312 1300 6 1 80.2027 3.86834 -24.45 + 55 209.334 919 6 0 80.2011 3.87739 -25.85 + 55 95.0869 1299 5 1 80.0178 3.89471 -54.45 + 55 338.188 919 5 0 80.0055 3.8634 -55.85 + 55 111.672 1298 4 1 79.7563 3.12127 -84.45 + 55 105.718 915 4 0 79.733 3.09759 -85.85 + 55 224.053 1296 3 1 79.2844 2.63974 -114.45 + 55 213.879 912 3 0 79.2258 2.58778 -115.85 + 55 185.937 1290 2 1 78.1119 1.52666 -144.45 + 55 144.219 907 2 0 78.0409 1.47963 -145.85 + 55 129.483 1282 1 1 76.5946 0.476092 -174.45 + 55 581.237 901 1 0 76.5484 0.41402 -175.85 + 55 116.847 1277 0 1 75.6328 -0.855639 -204.45 + 55 123.905 895 0 0 75.4917 -0.859776 -205.85 + 55 76.9534 1295 3 1 79.25 2.7478 -114.784 + 55 301.429 1297 0 1 79.617 3.86932 -204.45 + 55 365.1 919 0 0 79.6156 3.87139 -205.85 + 55 251.942 1744 4 1 169.034 164.7 -84.45 + 55 68.5851 1745 4 1 169.15 164.051 -84.5616 + 55 92.6207 1746 4 1 169.366 164.002 -84.4501 + 55 90.6507 1747 4 1 169.55 164.075 -84.524 + 55 130.374 1748 4 1 169.75 164.069 -84.5177 + 55 204.246 1749 4 1 169.95 164.254 -84.5712 + 55 154.793 1517 2 1 123.677 0.515586 -144.85 + 55 68.3464 917 2 0 125.269 3.45 -146.046 + 55 105.099 1515 2 1 123.28 1.08788 -144.85 + 55 89.4081 909 0 0 91.4432 1.89977 -206.25 + 55 97.8828 908 0 0 91.5756 1.85 -206.055 + 55 21.9019 1359 0 1 92.1138 1.58917 -204.85 + 55 221.764 1360 0 1 92.1502 1.57216 -204.758 + 55 221.554 1300 5 1 80.1521 3.91641 -54.45 + 55 314.086 1300 4 1 80.0896 3.94138 -84.45 + 55 187.703 919 4 0 80.0868 3.94277 -85.85 + 55 235.164 1299 3 1 80.0328 3.9657 -114.45 + 55 170.091 919 3 0 80.0264 3.97572 -115.85 + 55 107.462 1299 2 1 79.91 4.15823 -144.45 + 55 193.211 920 2 0 79.9066 4.16066 -145.85 + 55 117.746 1298 1 1 79.8254 4.20215 -174.45 + 55 298.716 920 1 0 79.8277 4.20273 -175.85 + 55 136.9 1299 0 1 79.8619 4.22909 -204.45 + 55 109.054 920 0 0 79.8654 4.23219 -205.85 + 55 188.951 1095 0 1 39.2327 49.2664 -204.85 + 55 83.7766 915 3 0 79.3031 3.16919 -115.85 + 55 56.7516 914 3 0 79.2069 3.04996 -116.097 + 55 131.874 766 3 0 25.7993 -26.7364 -116.25 + 55 228.133 765 3 0 25.4028 -26.85 -116.069 + 55 38.5699 1011 3 1 22.4114 -27.7124 -114.85 + 55 56.468 1010 3 1 22.25 -27.76 -114.813 + 55 65.8658 1009 3 1 22.05 -27.7845 -114.744 + 55 52.5601 1008 3 1 21.85 -27.812 -114.694 + 55 57.829 1007 3 1 21.6494 -27.8352 -114.693 + 55 69.26 1006 3 1 21.45 -27.857 -114.697 + 55 61.1808 1005 3 1 21.2495 -27.8625 -114.724 + 55 62.6765 1004 3 1 21.05 -27.8937 -114.745 + 55 66.4702 1003 3 1 20.85 -27.9603 -114.743 + 55 90.7457 1002 3 1 20.65 -28.1208 -114.819 + 55 282.314 740 3 0 14.3094 -31.9002 -115.85 + 55 34.2831 739 3 0 13.8359 -32.0503 -116.162 + 55 15.3279 154 3 0 -15.7965 -149.3 -116.25 + 55 56.7869 153 3 0 -15.7981 -149.35 -116.231 + 55 476.809 152 3 0 -15.8638 -149.55 -116.17 + 55 20.1504 812 3 1 -17.6054 -149.915 -114.85 + 55 47.5228 811 3 1 -17.6501 -149.911 -114.84 + 55 179.543 157 3 0 -19.991 -148.655 -115.85 + 55 120.941 920 4 0 80.1355 4.09247 -85.85 + 55 94.067 1300 3 1 80.0787 4.0839 -114.45 + 55 322.115 920 3 0 80.0785 4.08185 -115.85 + 55 113.541 1300 2 1 80.078 4.03915 -144.45 + 55 171.128 919 2 0 80.0793 4.03662 -145.85 + 55 420.986 1300 1 1 80.1185 4.00538 -174.45 + 55 260.985 919 1 0 80.1215 4.00135 -175.85 + 55 99.2349 1300 0 1 80.2018 3.91018 -204.45 + 55 150.485 1071 11 1 34.3526 32.2077 125.55 + 55 96.8806 1299 1 1 80.05 4.30447 -174.673 + 55 124.23 919 10 0 80.0505 3.85 93.8567 +Number of digits in this event: 48 +Using G4ParticleGun... +Particle energy: 7.4113 LIN +Particle: e- Event: 56 -Number of tracker hits in this event = 137 - 56 78.0201 683 8 1 -43.4499 -129.386 35.55 - 56 34.5503 682 8 1 -43.45 -129.386 35.2779 - 56 134.055 253 8 0 -43.4504 -129.387 34.15 - 56 210.2 682 7 1 -43.4681 -129.405 5.55 - 56 354.956 253 7 0 -43.4695 -129.407 4.15 - 56 417.115 682 6 1 -43.5079 -129.44 -24.45 - 56 259.447 253 6 0 -43.51 -129.441 -25.85 - 56 144.192 682 5 1 -43.5527 -129.457 -54.45 - 56 135.241 253 5 0 -43.5407 -129.483 -55.85 - 56 486.804 683 4 1 -43.2951 -130.041 -84.45 - 56 156.484 250 4 0 -43.2847 -130.068 -85.85 - 56 109.334 684 3 1 -43.0769 -130.613 -114.45 - 56 134.42 247 3 0 -43.0671 -130.641 -115.85 - 56 151.757 685 2 1 -42.8626 -131.203 -144.45 - 56 109.728 244 2 0 -42.8548 -131.231 -145.85 - 56 269.281 686 1 1 -42.7003 -131.784 -174.45 - 56 314.871 241 1 0 -42.6914 -131.813 -175.85 - 56 130.519 687 0 1 -42.5098 -132.389 -204.45 - 56 148.247 238 0 0 -42.5013 -132.416 -205.85 - 56 55.7725 1076 4 0 100.979 35.25 -85.8938 - 56 22.4957 1403 4 1 100.932 36.6942 -84.8499 - 56 148.03 1404 4 1 100.95 36.7023 -84.8277 - 56 39.6755 381 13 0 96.7382 -103.825 183.75 - 56 101.353 158 13 0 110.4 -148.357 183.75 - 56 5.83918 159 13 0 110.422 -148.35 183.791 - 56 110.476 688 0 1 -42.4023 -132.144 -204.45 - 56 107.757 240 0 0 -42.3949 -132.137 -205.85 - 56 50.7666 685 1 1 -42.85 -131.918 -174.671 - 56 298.554 239 1 0 -43.4821 -132.257 -175.85 - 56 35.7795 238 1 0 -43.6593 -132.35 -176.171 - 56 75.1985 601 0 1 -59.714 -140.539 -204.45 - 56 64.2771 600 0 1 -59.85 -140.605 -204.662 - 56 111.297 195 0 0 -60.6376 -141.039 -205.85 - 56 53.4304 194 0 0 -60.8653 -141.15 -206.172 - 56 10.0522 752 11 1 -29.506 -91.1937 125.15 - 56 312.319 684 4 1 -43.2498 -130.102 -84.6992 - 56 110.199 681 6 1 -43.65 -129.308 -24.5308 - 56 64.6445 680 6 1 -43.8501 -129.077 -24.7301 - 56 76.6945 262 6 0 -44.9616 -127.739 -25.8502 - 56 256.847 263 6 0 -45.1049 -127.55 -25.9877 - 56 56.4016 264 6 0 -45.2807 -127.35 -26.1474 - 56 115.971 535 6 0 -129.575 -72.9294 -26.2497 - 56 80.0977 681 2 1 -43.7338 -129.546 -144.45 - 56 127.697 252 2 0 -43.5896 -129.678 -145.85 - 56 34.5638 251 2 0 -43.5722 -129.75 -146.174 - 56 38.6841 271 2 0 -52.1685 -125.793 -146.25 - 56 138.999 272 2 0 -52.1901 -125.75 -146.154 - 56 0.121342 273 2 0 -52.2712 -125.55 -145.851 - 56 116.215 634 2 1 -53.1479 -124.522 -144.85 - 56 291.467 284 2 0 -53.6248 -123.284 -145.851 - 56 606.038 285 2 0 -53.5794 -123.15 -146.023 - 56 257.112 682 2 1 -43.4943 -129.444 -144.45 - 56 236.952 253 2 0 -43.5892 -129.444 -145.85 - 56 123.629 673 1 1 -45.3165 -129.6 -174.45 - 56 158.519 252 1 0 -45.4209 -129.557 -175.85 - 56 312.756 253 1 0 -45.4375 -129.55 -176.071 - 56 152.726 661 0 1 -47.6548 -128.74 -204.45 - 56 113.22 257 0 0 -47.7845 -128.703 -205.85 - 56 34.3123 156 2 1 -148.75 -34.8927 -144.835 - 56 269.231 155 2 1 -148.95 -34.8635 -144.671 - 56 96.8817 683 1 1 -43.4101 -129.472 -174.45 - 56 124.377 683 0 1 -43.3674 -129.414 -204.45 - 56 123.49 253 0 0 -43.377 -129.398 -205.85 - 56 257.036 683 7 1 -43.449 -129.383 5.55 - 56 213.796 681 5 1 -43.659 -129.707 -54.45 - 56 185.4 252 5 0 -43.6687 -129.71 -55.85 - 56 93.2217 680 4 1 -43.9063 -129.764 -84.45 - 56 125.974 251 4 0 -43.9141 -129.778 -85.85 - 56 104.086 680 3 1 -44.0285 -130.02 -114.45 - 56 188.676 250 3 0 -44.0357 -130.049 -115.85 - 56 125.411 678 2 1 -44.2573 -130.614 -144.45 - 56 123.176 247 2 0 -44.2609 -130.637 -145.85 - 56 153.374 678 1 1 -44.29 -131.232 -174.45 - 56 399.515 244 1 0 -44.2616 -131.278 -175.85 - 56 260.31 682 0 1 -43.6335 -132.22 -204.45 - 56 134.892 239 0 0 -43.5577 -132.244 -205.85 - 56 110.734 213 0 0 -30.7973 -137.468 -206.25 - 56 60.6538 212 0 0 -30.5441 -137.55 -205.948 - 56 8.11251 754 0 1 -29.0685 -137.642 -204.85 - 56 71.2804 755 0 1 -29.05 -137.643 -204.836 - 56 89.5281 756 0 1 -28.85 -137.647 -204.696 - 56 43.9198 757 0 1 -28.65 -137.63 -204.549 - 56 299.114 677 1 1 -44.5094 -131.164 -174.45 - 56 162.912 677 0 1 -44.4747 -131.547 -204.45 - 56 104.04 242 0 0 -44.4558 -131.557 -205.85 - 56 91.8098 680 1 1 -43.8823 -132.117 -174.85 - 56 238.574 676 1 1 -44.65 -131.101 -174.788 - 56 127.708 246 1 0 -45.3863 -130.847 -175.85 - 56 21.7065 325 1 0 -106.486 -114.985 -176.25 - 56 15.5 326 1 0 -106.514 -114.95 -176.239 - 56 161.114 249 3 0 -43.9227 -130.15 -116.173 - 56 16.5057 1368 1 1 93.9223 16.5771 -174.45 - 56 124.857 244 0 0 -45.5993 -131.242 -205.85 - 56 290.022 241 0 0 -42.8409 -131.89 -206.25 - 56 38.0108 296 0 0 -50.7821 -120.823 -206.25 - 56 81.6959 297 0 0 -50.8331 -120.75 -206.131 - 56 21.3 298 0 0 -50.8941 -120.55 -205.92 - 56 157.441 644 0 1 -51.171 -119.89 -204.85 - 56 97.3351 687 6 1 -42.4593 -130.423 -24.4502 - 56 105.975 688 6 1 -42.45 -130.43 -24.6092 - 56 133.736 248 6 0 -42.3779 -130.503 -25.85 - 56 32.2055 697 5 1 -40.4564 -132.292 -54.45 - 56 89.4042 698 5 1 -40.45 -132.299 -54.5458 - 56 117.03 238 5 0 -40.3623 -132.393 -55.8502 - 56 160.978 707 4 1 -38.552 -134.509 -84.45 - 56 129.462 226 4 0 -38.8821 -134.9 -85.85 - 56 92.4508 225 4 0 -38.9231 -134.95 -86.0253 - 56 134.917 674 3 1 -45.1187 -143.581 -114.451 - 56 74.633 180 3 0 -45.503 -144.064 -115.85 - 56 58.1628 179 3 0 -45.5747 -144.15 -116.102 - 56 116.104 628 2 1 -54.3583 -154.466 -144.45 - 56 141.603 627 2 1 -54.4501 -154.56 -144.713 - 56 184.398 125 2 0 -54.8499 -154.967 -145.85 - 56 24.4518 574 1 1 -65.2229 -164.804 -174.45 - 56 108.049 573 1 1 -65.2501 -164.827 -174.54 - 56 190.237 74 1 0 -65.6438 -165.153 -175.85 - 56 48.0306 528 0 1 -74.3849 -172.171 -204.45 - 56 60.4213 527 0 1 -74.45 -172.216 -204.641 - 56 41.5484 38 0 0 -74.8415 -172.512 -205.85 - 56 82.5579 37 0 0 -74.8924 -172.55 -206.007 - 56 193.842 532 0 1 -73.45 -175.145 -204.55 - 56 236.101 875 0 1 -4.96398 -136.087 -204.45 - 56 214.496 253 4 0 -43.3819 -129.37 -85.85 - 56 119.678 691 3 1 -41.7977 -129.011 -114.45 - 56 135.018 255 3 0 -41.758 -128.981 -115.85 - 56 169.17 695 2 1 -40.9505 -128.442 -144.45 - 56 98.8425 257 2 0 -41.1133 -128.614 -145.85 - 56 109.234 653 0 1 -49.2667 -135.418 -204.45 - 56 126.666 222 0 0 -49.6077 -135.551 -205.85 - 56 167.753 688 3 1 -42.3147 -131.283 -114.45 - 56 163.62 243 3 0 -42.2125 -131.386 -115.85 - 56 120.012 698 2 1 -40.34 -133.719 -144.45 - 56 129.249 231 2 0 -40.2351 -133.841 -145.85 - 56 140.459 709 1 1 -38.151 -136.801 -174.45 - 56 212.983 216 1 0 -38.0296 -136.898 -175.85 - 56 126.285 723 0 1 -35.313 -138.876 -204.45 - 56 122.228 205 0 0 -35.1329 -139.038 -205.85 -Number of digits in this event = 76 -Using G4ParticleGun ... -5.66574 LIN -e- +Number of tracker hits in this event: 84 + 56 183.574 1170 11 1 54.2191 8.59194 125.55 + 56 212.258 942 11 0 54.2188 8.59081 124.15 + 56 152.811 1170 10 1 54.2084 8.57209 95.55 + 56 202.088 942 10 0 54.2078 8.57246 94.15 + 56 110.386 1170 9 1 54.2041 8.57922 65.55 + 56 113.188 942 9 0 54.2034 8.5794 64.15 + 56 348.098 1170 8 1 54.1953 8.58398 35.55 + 56 401.007 942 8 0 54.1941 8.58463 34.15 + 56 249.529 1170 7 1 54.1732 8.59827 5.55 + 56 122.647 942 7 0 54.1737 8.59832 4.15 + 56 177.55 1170 6 1 54.1849 8.5986 -24.45 + 56 293.024 942 6 0 54.1867 8.59861 -25.85 + 56 116.355 1170 5 1 54.227 8.59567 -54.45 + 56 286.48 942 5 0 54.228 8.59532 -55.85 + 56 136.123 1171 4 1 54.2532 8.58709 -84.45 + 56 113.849 942 4 0 54.2536 8.58814 -85.85 + 56 119.503 1171 3 1 54.2574 8.61008 -114.45 + 56 103.248 942 3 0 54.257 8.60983 -115.85 + 56 118.959 1170 2 1 54.2489 8.59354 -144.45 + 56 143.315 942 2 0 54.2489 8.59243 -145.85 + 56 125.205 1171 1 1 54.2535 8.5728 -174.45 + 56 293.598 942 1 0 54.2528 8.57469 -175.85 + 56 209.126 1170 0 1 54.241 8.60949 -204.45 + 56 413.812 942 0 0 54.2386 8.60933 -205.85 + 56 91.4861 1231 1 0 2.18398 66.25 -176.14 + 56 37.2526 1232 1 0 2.13859 66.4501 -175.931 + 56 55.3544 909 1 1 1.89862 66.5144 -174.85 + 56 110.663 908 1 1 1.85 66.5214 -174.692 + 56 10.3657 1634 2 1 146.95 28.3566 -144.682 + 56 49.1173 1613 2 1 142.95 27.6181 -144.604 + 56 9.79156 739 8 0 138.537 -32.1105 33.75 + 56 242.861 1171 0 1 54.2607 8.54934 -204.45 + 56 38.049 943 0 0 54.2324 8.65 -206.115 + 56 232.895 1346 1 1 89.4323 88.94 -174.45 + 56 106.919 1171 10 1 54.25 8.58065 95.5154 + 56 279.843 1172 10 1 54.45 8.55306 95.4049 + 56 1.30528 1169 2 1 54.0413 8.74307 -144.846 + 56 419.015 943 2 0 54.0435 8.73984 -145.85 + 56 114.725 1170 1 1 54.2006 8.63841 -174.45 + 56 19.6737 1168 0 1 53.8106 8.41515 -204.45 + 56 97.2016 1169 0 1 53.85 8.39222 -204.51 + 56 38.7312 939 0 0 54.7261 7.88291 -205.85 + 56 111.588 938 0 0 54.7826 7.85 -205.937 + 56 133.498 1578 4 1 135.75 -57.6468 -84.8128 + 56 183.115 1579 4 1 135.95 -57.6652 -84.602 + 56 139.46 1168 1 1 53.7589 8.31572 -174.45 + 56 96.1997 941 1 0 53.7002 8.31902 -175.85 + 56 197.729 1161 0 1 52.3724 8.6653 -204.45 + 56 339.547 1171 7 1 54.3188 8.64166 5.55 + 56 136.466 943 7 0 54.3286 8.65093 4.15 + 56 262.472 1172 6 1 54.4817 8.92172 -24.45 + 56 112.91 944 6 0 54.4924 8.91526 -25.85 + 56 239.266 1173 5 1 54.7023 8.74692 -54.45 + 56 122.718 943 5 0 54.7165 8.74923 -55.85 + 56 115.903 1174 4 1 55.0151 8.78472 -84.45 + 56 163.023 943 4 0 55.0151 8.75183 -85.85 + 56 120.809 1174 3 1 55.026 8.08667 -114.45 + 56 125.612 939 3 0 55.0202 8.046 -115.85 + 56 118.841 1173 2 1 54.8177 7.23151 -144.45 + 56 124.077 935 2 0 54.8157 7.17349 -145.85 + 56 123.489 1172 1 1 54.5187 5.95078 -174.45 + 56 113.752 929 1 0 54.5839 5.88136 -175.85 + 56 44.7189 1174 0 1 55.0118 3.1945 -204.451 + 56 63.6954 1175 0 1 55.05 3.18659 -204.646 + 56 98.9213 915 0 0 55.2812 3.07466 -205.85 + 56 48.6885 914 0 0 55.3238 3.05 -206.075 + 56 239.813 941 7 0 54.4412 8.44868 4.15 + 56 155.713 1175 4 1 55.1867 8.19653 -84.45 + 56 253.94 938 4 0 54.9237 7.83825 -85.85 + 56 26.6942 1149 3 1 49.8974 0.881187 -114.45 + 56 119.952 1148 3 1 49.85 0.879598 -114.55 + 56 252.251 904 3 0 49.3666 1.00822 -115.85 + 56 53.4093 657 3 0 12.5787 -48.5195 -116.25 + 56 66.173 656 3 0 12.4876 -48.65 -116.162 + 56 308.416 655 3 0 12.3653 -48.85 -116.104 + 56 63.0966 654 3 0 12.27 -49.0504 -116.104 + 56 29.0485 653 3 0 12.2349 -49.2506 -116.211 + 56 78.4438 1176 4 1 55.25 8.25093 -84.632 + 56 60.5314 838 0 0 51.9405 -12.4036 -206.25 + 56 98.0275 1169 11 1 54.05 8.53661 125.377 + 56 38.5778 941 11 0 53.3763 8.45 123.921 + 56 11.8359 935 11 0 70.556 7.07953 123.75 + 56 241.111 934 11 0 70.5904 7.05 123.79 + 56 11.8894 933 11 0 70.8445 6.8499 123.763 +Number of digits in this event: 44 +Using G4ParticleGun... +Particle energy: 7.2759 LIN +Particle: e- Event: 57 -Number of tracker hits in this event = 37 - 57 105.369 403 7 1 -99.5164 -109.821 5.55 - 57 137.695 351 7 0 -99.5176 -109.821 4.15 - 57 103.16 403 6 1 -99.5484 -109.816 -24.45 - 57 109.993 351 6 0 -99.5503 -109.815 -25.85 - 57 120.126 402 5 1 -99.5858 -109.794 -54.45 - 57 107.394 351 5 0 -99.5881 -109.793 -55.85 - 57 165.951 402 4 1 -99.6283 -109.786 -84.45 - 57 173.513 351 4 0 -99.6278 -109.788 -85.85 - 57 361.028 402 3 1 -99.6302 -109.826 -114.45 - 57 597.757 351 3 0 -99.6304 -109.828 -115.85 - 57 138.8 402 2 1 -99.637 -109.906 -144.45 - 57 296.058 351 2 0 -99.639 -109.909 -145.85 - 57 327.756 402 1 1 -99.6936 -110.014 -174.45 - 57 265.687 350 1 0 -99.7007 -110.013 -175.85 - 57 276.21 401 0 1 -99.8126 -109.977 -204.45 - 57 105.761 350 0 0 -99.8112 -109.97 -205.85 - 57 106.814 348 1 0 -99.694 -110.383 -175.85 - 57 131.678 390 0 1 -102.141 -117.754 -204.45 - 57 71.0555 391 0 1 -101.95 -117.583 -204.793 - 57 109.378 315 0 0 -101.336 -117.118 -205.85 - 57 41.2543 316 0 0 -101.17 -116.95 -206.138 - 57 158.983 352 3 0 -99.6251 -109.75 -116.165 - 57 300.928 352 4 0 -99.6582 -109.75 -86.0617 - 57 131.717 353 4 0 -100.126 -109.55 -86.1408 - 57 125.438 404 2 1 -99.2877 -109.222 -144.45 - 57 156.722 354 2 0 -99.2461 -109.187 -145.85 - 57 162.931 409 1 1 -98.2852 -108.481 -174.45 - 57 91.196 358 1 0 -98.1696 -108.433 -175.85 - 57 201.913 422 0 1 -95.6851 -107.596 -204.45 - 57 104.018 363 0 0 -95.5189 -107.541 -205.85 - 57 132.958 401 2 1 -99.8132 -109.791 -144.45 - 57 120.235 401 1 1 -99.8113 -110.026 -174.45 - 57 131.558 349 0 0 -99.7646 -110.23 -205.85 - 57 264.084 400 0 1 -99.9714 -109.64 -204.45 - 57 250.22 352 0 0 -99.9853 -109.652 -205.85 - 57 7.03398 353 0 0 -99.9127 -109.55 -206.214 - 57 225.861 239 0 1 -132.287 -100.061 -204.45 -Number of digits in this event = 28 -Using G4ParticleGun ... -6.78576 LIN -e- +Number of tracker hits in this event: 40 + 57 129.897 1469 10 1 114.04 10.3426 95.55 + 57 99.2328 951 10 0 114.039 10.3428 94.15 + 57 101.778 1469 9 1 114.016 10.3514 65.55 + 57 160.789 951 9 0 114.014 10.353 64.15 + 57 118.493 1469 8 1 113.977 10.3836 35.55 + 57 141.603 951 8 0 113.976 10.3849 34.15 + 57 124.789 1469 7 1 113.96 10.4149 5.55 + 57 98.8301 951 7 0 113.958 10.4149 4.15 + 57 102.853 1468 6 1 113.916 10.417 -24.45 + 57 276.28 951 6 0 113.915 10.4164 -25.85 + 57 133.039 1468 5 1 113.891 10.4058 -54.45 + 57 201.6 951 5 0 113.889 10.4046 -55.85 + 57 184.568 1468 4 1 113.867 10.3782 -84.45 + 57 92.8151 951 4 0 113.866 10.3767 -85.85 + 57 393.282 1468 3 1 113.841 10.3444 -114.45 + 57 97.1093 951 3 0 113.84 10.3421 -115.85 + 57 237.293 1468 2 1 113.811 10.2929 -144.45 + 57 237.079 951 2 0 113.809 10.2887 -145.85 + 57 104.708 1468 1 1 113.783 10.2051 -174.45 + 57 137.755 950 1 0 113.783 10.2017 -175.85 + 57 155.979 1468 0 1 113.777 10.1345 -204.45 + 57 123.097 950 0 0 113.778 10.1304 -205.85 + 57 207.888 720 1 0 116.215 -35.9022 -176.25 + 57 230.474 952 3 0 113.764 10.521 -115.85 + 57 106.403 1465 2 1 113.198 10.4395 -144.45 + 57 47.9243 1447 1 1 109.573 9.13915 -174.45 + 57 69.081 1446 1 1 109.55 9.10273 -174.621 + 57 2.10618 944 1 0 109.375 8.85281 -175.85 + 57 98.8775 943 1 0 109.373 8.84997 -175.864 + 57 166.998 1430 0 1 106.292 3.04796 -204.45 + 57 143.083 915 0 0 106.431 3.06249 -205.85 + 57 105.947 1347 3 0 70.5437 89.4667 -116.25 + 57 232.466 1348 3 0 70.4734 89.65 -116.043 + 57 45.6856 1582 7 1 136.654 101.366 5.15 + 57 131.53 955 2 0 113.96 11.1116 -145.85 + 57 124.762 1473 1 1 114.794 11.9626 -174.45 + 57 118.936 959 1 0 114.802 11.9988 -175.85 + 57 152.752 1473 0 1 114.914 12.7601 -204.45 + 57 145.687 963 0 0 114.922 12.7645 -205.85 + 57 230.416 1474 0 1 114.95 12.7402 -204.482 +Number of digits in this event: 25 +Using G4ParticleGun... +Particle energy: 8.30832 LIN +Particle: e- Event: 58 -Number of tracker hits in this event = 178 - 58 191.383 820 11 1 -15.8876 -36.0138 125.55 - 58 139.129 720 11 0 -15.8872 -36.013 124.15 - 58 121.565 820 10 1 -15.872 -36.003 95.55 - 58 109.562 720 10 0 -15.8718 -36.0031 94.15 - 58 248.43 820 9 1 -15.8653 -36.0118 65.55 - 58 358.008 720 9 0 -15.8642 -36.0118 64.15 - 58 136.823 821 8 1 -15.8415 -36.0101 35.55 - 58 241.556 720 8 0 -15.8414 -36.0092 34.15 - 58 103.715 821 7 1 -15.8379 -35.9955 5.55 - 58 234.651 720 7 0 -15.8367 -35.9956 4.15 - 58 503.089 821 6 1 -15.8187 -35.9839 -24.45 - 58 385.371 720 6 0 -15.8195 -35.9833 -25.85 - 58 125.452 821 5 1 -15.8345 -35.9753 -54.45 - 58 265.858 720 5 0 -15.835 -35.9755 -55.85 - 58 164.857 821 4 1 -15.8411 -35.9758 -84.45 - 58 100.312 720 4 0 -15.8404 -35.9745 -85.85 - 58 123.953 821 3 1 -15.8236 -35.9498 -114.45 - 58 126.457 720 3 0 -15.8215 -35.9474 -115.85 - 58 117.029 821 2 1 -15.778 -35.8979 -144.45 - 58 122.736 720 2 0 -15.7757 -35.8984 -145.85 - 58 116.92 821 1 1 -15.7282 -35.9145 -174.45 - 58 98.4098 720 1 0 -15.7251 -35.9145 -175.85 - 58 276.513 821 0 1 -15.6624 -35.9129 -204.45 - 58 101.265 720 0 0 -15.6609 -35.9128 -205.85 - 58 82.7333 820 0 1 -15.8806 -35.9118 -204.45 - 58 86.1791 719 0 0 -15.7509 -36.2081 -205.85 - 58 30.6354 718 0 0 -15.7688 -36.2502 -206.154 - 58 42.7963 719 7 0 -15.8045 -36.05 3.92878 - 58 90.8874 850 6 1 -10.0093 -42.8917 -24.45 - 58 33.2464 851 6 1 -9.85 -42.8407 -24.7417 - 58 392.136 686 6 0 -9.3717 -42.7799 -25.85 - 58 163.705 921 5 1 4.36154 -35.4067 -54.45 - 58 108.996 722 5 0 4.17097 -35.5689 -55.85 - 58 159.415 733 4 0 1.5049 -33.45 -86.1892 - 58 7.02123 1174 2 0 -5.32363 54.85 -146.166 - 58 9.35418 1067 2 1 33.45 57.3151 -144.788 - 58 212.76 819 5 1 -16.1086 -36.668 -54.45 - 58 198.58 716 5 0 -16.1235 -36.6882 -55.8505 - 58 274.313 817 4 1 -16.4729 -36.9098 -84.45 - 58 216.538 715 4 0 -16.4614 -36.8701 -85.85 - 58 98.2436 819 3 1 -16.152 -35.8077 -114.45 - 58 141.166 721 3 0 -16.1417 -35.7778 -115.85 - 58 57.0768 818 2 1 -16.3872 -35.455 -144.45 - 58 89.2811 817 2 1 -16.45 -35.3557 -144.602 - 58 59.9545 725 2 0 -16.8572 -34.923 -145.85 - 58 60.9139 726 2 0 -16.9087 -34.8499 -146.071 - 58 93.1221 715 1 1 -36.861 -27.0434 -174.45 - 58 73.1105 714 1 1 -37.05 -27.1409 -174.605 - 58 26.7138 713 1 1 -37.2501 -27.233 -174.784 - 58 153.822 762 1 0 -38.5972 -27.5336 -175.85 - 58 76.6653 578 0 1 -64.3129 -24.5476 -204.45 - 58 62.6148 577 0 1 -64.4501 -24.3899 -204.571 - 58 75.9536 576 0 1 -64.65 -24.2803 -204.694 - 58 8.98466 575 0 1 -64.85 -24.247 -204.836 - 58 50.091 781 0 0 -66.766 -23.8243 -205.85 - 58 25.0629 557 0 1 -68.5525 -24.2954 -204.85 - 58 72.5992 556 0 1 -68.65 -24.3436 -204.812 - 58 43.6011 555 0 1 -68.85 -24.4728 -204.814 - 58 253.748 769 0 0 -71.9095 -26.0996 -205.85 - 58 227.567 768 0 0 -72.6483 -26.25 -206.035 - 58 17.3145 767 0 0 -73.2255 -26.45 -206.205 - 58 412.174 698 0 0 -88.1913 -40.302 -206.25 - 58 111.688 699 0 0 -88.3028 -40.25 -206.087 - 58 159.357 816 4 1 -16.65 -36.6577 -84.6971 - 58 13.6698 815 4 1 -16.85 -36.5978 -84.8398 - 58 25.5894 712 4 0 -19.0396 -37.5843 -85.85 - 58 104.407 711 4 0 -19.0822 -37.6502 -85.8915 - 58 81.4935 710 4 0 -19.0987 -37.85 -85.9407 - 58 223.66 802 4 1 -19.6214 -37.8944 -84.8499 - 58 52.6851 816 5 1 -16.6789 -37.6996 -54.85 - 58 0.737766 817 5 1 -16.65 -37.6874 -54.8483 - 58 106.573 712 5 0 -15.5248 -37.5179 -55.85 - 58 249.374 824 5 1 -15.1004 -36.1403 -54.45 - 58 149.719 719 5 0 -14.9547 -36.0948 -55.85 - 58 122.902 841 4 1 -11.7643 -35.2672 -84.45 - 58 147.002 724 4 0 -11.5993 -35.1452 -85.85 - 58 133.778 859 3 1 -8.10793 -32.6889 -114.45 - 58 132.632 737 3 0 -7.91162 -32.5831 -115.85 - 58 127.3 879 2 1 -4.13759 -30.3081 -144.451 - 58 44.4409 749 2 0 -3.89973 -30.0839 -145.85 - 58 63.5165 750 2 0 -3.86507 -30.05 -146.056 - 58 88.1429 904 1 1 0.965638 -24.9707 -174.45 - 58 445.784 776 1 0 1.18082 -24.8265 -175.85 - 58 138.2 925 0 1 5.09517 -21.3953 -204.45 - 58 133.076 793 0 0 5.24338 -21.3861 -205.85 - 58 136.091 1391 2 0 -8.35367 98.55 -146.235 - 58 35.5504 1390 2 0 -8.20139 98.3499 -145.926 - 58 47.8388 1464 2 0 -50.6854 113.104 -146.25 - 58 122.13 1465 2 0 -50.7912 113.15 -146.112 - 58 72.086 1466 2 0 -51.0174 113.35 -145.933 - 58 14.7549 1467 2 0 -51.0948 113.55 -145.881 - 58 352.55 643 2 1 -51.3716 114.676 -144.85 - 58 288.391 644 2 1 -51.25 115.028 -144.603 - 58 130.627 1389 2 0 -11.2574 98.15 -146.202 - 58 222.335 1388 2 0 -11.1805 97.95 -145.95 - 58 52.875 370 0 0 -54.2501 -105.95 -206.064 - 58 29.7057 519 0 1 -76.05 -114.517 -204.642 - 58 42.2372 721 9 0 -15.9997 -35.85 63.8774 - 58 101.016 812 8 1 -17.5066 -33.389 35.55 - 58 28.2736 813 8 1 -17.45 -33.3072 35.2459 - 58 220.605 735 8 0 -17.2422 -33.0381 34.1499 - 58 120.333 844 7 1 -11.2416 -25.3145 5.55 - 58 93.8296 775 7 0 -11.0793 -25.0489 4.14914 - 58 123.323 866 6 1 -6.73076 -19.8849 -24.45 - 58 103.826 800 6 0 -6.80505 -19.8664 -25.85 - 58 10.9539 801 6 0 -6.83007 -19.85 -26.1958 - 58 320.195 852 5 1 -9.6382 -17.5646 -54.45 - 58 129.047 812 5 0 -9.36608 -17.6034 -55.85 - 58 54.3205 888 4 1 -2.37761 -16.6895 -84.45 - 58 182.915 889 4 1 -2.24977 -16.7329 -84.5767 - 58 49.4846 890 4 1 -2.04968 -16.8199 -84.7485 - 58 136.872 812 4 0 -0.903799 -17.5019 -85.8501 - 58 72.8578 811 4 0 -0.659778 -17.6501 -86.0835 - 58 37.4465 1022 3 1 24.4898 -35.7265 -114.45 - 58 179.903 1023 3 1 24.6501 -35.7162 -114.519 - 58 53.5107 1024 3 1 24.85 -35.6965 -114.578 - 58 91.6004 1025 3 1 25.05 -35.674 -114.611 - 58 40.7533 1026 3 1 25.25 -35.6972 -114.622 - 58 56.1891 1027 3 1 25.4503 -35.7399 -114.639 - 58 50.4643 1028 3 1 25.65 -35.765 -114.655 - 58 55.1092 1029 3 1 25.8506 -35.7874 -114.668 - 58 115.45 1030 3 1 26.05 -35.7761 -114.691 - 58 50.6357 1031 3 1 26.25 -35.7579 -114.701 - 58 50.3194 1032 3 1 26.45 -35.7421 -114.724 - 58 41.5436 1033 3 1 26.65 -35.7333 -114.732 - 58 59.0883 1034 3 1 26.85 -35.763 -114.72 - 58 141.629 1035 3 1 27.0503 -35.794 -114.699 - 58 57.8764 1036 3 1 27.25 -35.8123 -114.674 - 58 67.172 1037 3 1 27.4501 -35.7715 -114.595 - 58 32.3128 851 5 1 -9.65548 -17.5716 -54.45 - 58 57.4897 808 5 0 -9.5152 -18.3106 -55.85 - 58 69.906 807 5 0 -9.47317 -18.45 -56.0168 - 58 38.8667 806 5 0 -9.51577 -18.6501 -56.1431 - 58 23.9557 368 5 0 -114.263 -106.415 -56.25 - 58 133.302 1534 4 1 126.95 117.687 -84.4606 - 58 93.7092 1535 4 1 127.15 117.93 -84.5009 - 58 213.22 1536 4 1 127.35 118.161 -84.5726 - 58 45.8208 1492 4 0 127.694 118.566 -85.85 - 58 113.025 1491 4 0 127.69 118.55 -85.992 - 58 250.523 1490 4 0 127.802 118.35 -86.2022 - 58 103.331 1489 4 0 127.948 118.15 -86.0684 - 58 25.122 937 2 0 4.10556 7.53722 -145.85 - 58 6.19451 1315 2 1 83.05 -58.1621 -144.838 - 58 137.812 821 9 1 -15.85 -35.958 65.5281 - 58 78.8442 724 9 0 -15.5262 -35.1739 64.15 - 58 59.2617 725 9 0 -15.4812 -35.0499 63.9375 - 58 137.021 823 8 1 -15.4352 -18.8918 35.55 - 58 45.42 812 8 0 -15.4118 -17.5653 34.15 - 58 197.377 813 8 0 -15.4189 -17.4499 34.0357 - 58 35.7341 814 8 0 -15.4356 -17.25 33.8348 - 58 47.6075 811 7 1 -17.7996 10.4801 5.55 - 58 68.2206 812 7 1 -17.65 10.5833 5.51268 - 58 80.4483 813 7 1 -17.45 10.7269 5.48463 - 58 133.929 814 7 1 -17.25 10.868 5.45155 - 58 57.4033 815 7 1 -17.05 11.0136 5.40591 - 58 177.593 816 7 1 -16.85 11.1536 5.34843 - 58 108.517 817 7 1 -16.6499 11.2837 5.2886 - 58 35.3215 818 7 1 -16.45 11.4434 5.19823 - 58 80.46 967 7 0 -13.3579 13.4768 4.15 - 58 99.4003 968 7 0 -13.111 13.65 4.06323 - 58 126.107 969 7 0 -12.8413 13.85 3.99217 - 58 126.601 970 7 0 -12.5406 14.05 3.91881 - 58 190.148 971 7 0 -12.2007 14.25 3.82469 - 58 97.637 1394 7 0 59.5628 98.9883 3.75 - 58 44.1037 1393 7 0 59.4833 98.95 4.03451 - 58 119.353 1193 7 1 58.8075 98.4922 5.15 - 58 86.8388 1192 7 1 58.65 98.398 5.36583 - 58 248.119 1391 7 0 5.80321 98.4825 3.75 - 58 60.1043 1390 7 0 5.38991 98.35 4.00037 - 58 43.1486 1389 7 0 5.30437 98.1495 4.08472 - 58 86.2267 921 7 1 4.30341 93.9348 5.15 - 58 81.3107 920 7 1 4.25 93.7781 5.19218 - 58 26.2046 1356 7 0 4.03609 91.4422 4.15 - 58 85.0759 1355 7 0 4.01847 91.35 4.11489 - 58 150.609 1354 7 0 3.91524 91.15 4.14231 - 58 89.4736 912 7 1 2.64633 89.6033 5.15006 - 58 327.614 913 7 1 2.65 89.3847 5.28328 - 58 102.014 753 6 1 -29.25 112.08 -24.4812 -Number of digits in this event = 73 -Using G4ParticleGun ... -6.54645 LIN -e- +Number of tracker hits in this event: 111 + 58 162.365 1549 8 1 129.953 39.4521 35.55 + 58 118.533 1097 8 0 129.952 39.4528 34.15 + 58 409.351 1548 7 1 129.928 39.4712 5.55 + 58 380.603 1097 7 0 129.924 39.4739 4.15 + 58 353.623 1548 6 1 129.846 39.5334 -24.45 + 58 132.973 1097 6 0 129.842 39.5368 -25.85 + 58 109.117 1548 5 1 129.759 39.5997 -54.45 + 58 125.277 1097 5 0 129.754 39.6032 -55.85 + 58 110.06 1547 4 1 129.656 39.6716 -84.45 + 58 118.544 1098 4 0 129.653 39.6735 -85.85 + 58 149.446 1547 3 1 129.598 39.7103 -114.45 + 58 122.738 1098 3 0 129.596 39.7115 -115.85 + 58 115.418 1547 2 1 129.557 39.7484 -144.45 + 58 119.283 1098 2 0 129.557 39.7504 -145.85 + 58 351.161 1547 1 1 129.556 39.7978 -174.45 + 58 333.765 1098 1 0 129.556 39.8033 -175.85 + 58 363.076 1547 0 1 129.554 39.9146 -204.45 + 58 129.602 1099 0 0 129.555 39.9191 -205.85 + 58 23.8216 1029 0 0 142.379 26.05 -205.999 + 58 111.247 1546 0 1 129.55 39.9204 -204.671 + 58 63.1933 1103 0 0 129.817 40.7844 -205.85 + 58 235.829 1104 0 0 129.905 40.8501 -205.961 + 58 158.002 1105 0 0 129.972 41.05 -206.05 + 58 6.67017 1088 3 1 37.7522 -54.807 -114.85 + 58 500.389 1548 4 1 129.848 39.5396 -84.45 + 58 310.903 1097 4 0 129.848 39.5419 -85.85 + 58 335.908 1548 3 1 129.878 39.596 -114.45 + 58 308.927 1097 3 0 129.878 39.5808 -115.85 + 58 270.681 1548 2 1 129.87 39.2622 -144.45 + 58 108.773 1096 2 0 129.861 39.2531 -145.85 + 58 245.733 1094 1 0 129.697 39.0383 -175.85 + 58 107.444 1093 0 0 129.68 38.794 -205.85 + 58 239.703 1485 1 1 117.236 19.9601 -174.45 + 58 204.966 1486 1 1 117.35 20.0284 -174.463 + 58 95.2993 1487 1 1 117.55 20.0554 -174.506 + 58 57.2727 1484 1 1 117.15 19.8811 -174.663 + 58 157.326 1548 0 1 129.771 38.8602 -204.45 + 58 53.4356 1095 0 0 130.596 39.0631 -205.85 + 58 207.175 1094 0 0 130.748 39.05 -205.974 + 58 85.3329 1549 4 1 129.95 39.4187 -84.612 + 58 161.511 1097 2 0 129.817 39.6451 -145.85 + 58 126.513 1545 0 1 129.346 40.2237 -204.45 + 58 116.759 1100 0 0 129.354 40.2436 -205.85 + 58 7.01596 1101 0 0 129.357 40.25 -206.227 + 58 247.275 1643 0 1 148.816 24.8875 -204.85 + 58 34.371 1546 1 1 129.397 40.8226 -174.85 + 58 101.281 1100 1 0 130.381 40.1558 -175.85 + 58 59.483 1528 0 1 125.75 114.216 -204.696 + 58 0.0331492 1094 3 0 131.089 38.8504 -115.85 + 58 140.304 1093 3 0 131.09 38.85 -115.851 + 58 203.793 1092 3 0 131.16 38.6499 -116.007 + 58 21.7809 1519 3 1 123.955 31.0799 -114.45 + 58 101.388 1518 3 1 123.95 31.0264 -114.537 + 58 53.9715 1051 3 0 123.905 30.3167 -115.85 + 58 115.133 1050 3 0 123.903 30.25 -115.968 + 58 51.9524 994 3 0 124.533 19.0009 -116.25 + 58 115.905 995 3 0 124.534 19.05 -116.025 + 58 103.53 1521 3 1 124.434 19.4268 -114.85 + 58 92.3624 842 4 0 125.701 -11.4641 -86.25 + 58 75.5215 841 4 0 125.631 -11.65 -86.052 + 58 389.938 1526 4 1 125.547 -12.5222 -84.85 + 58 35.8136 1527 4 1 125.55 -12.9229 -84.7506 + 58 130.71 835 4 0 126.883 -12.987 -85.85 + 58 161.136 1098 6 0 129.797 39.681 -25.85 + 58 125.646 1538 5 1 127.908 40.5871 -54.4504 + 58 134.782 1102 5 0 127.797 40.6075 -55.8501 + 58 136.366 1106 4 0 125.346 41.3248 -85.85 + 58 165.611 1516 3 1 123.477 42.5963 -114.45 + 58 109.819 1113 3 0 123.337 42.6849 -115.85 + 58 28.6903 1502 2 1 120.559 44.6143 -144.45 + 58 91.3762 1501 2 1 120.55 44.6163 -144.516 + 58 172.052 1123 2 0 120.362 44.6641 -145.85 + 58 128.492 1481 1 1 116.471 45.975 -174.45 + 58 119.667 1130 1 0 116.206 46.0887 -175.85 + 58 101.761 1453 0 1 110.819 48.4424 -204.45 + 58 8.17328 1452 0 1 110.75 48.4543 -204.832 + 58 154.212 1142 0 0 110.569 48.4859 -205.85 + 58 105.826 1549 6 1 129.95 39.898 -24.6168 + 58 6.98507 1106 6 0 130.776 41.42 -25.85 + 58 89.445 1107 6 0 130.792 41.45 -25.8733 + 58 81.6118 1108 6 0 130.896 41.6501 -26.0278 + 58 70.9266 1109 6 0 130.996 41.8506 -26.172 + 58 16.8112 1647 5 1 149.732 85.6341 -54.45 + 58 122.101 1648 5 1 149.75 85.6264 -54.5091 + 58 177.777 1327 5 0 150.186 85.5306 -55.85 + 58 51.9368 1706 4 1 161.433 83.6366 -84.45 + 58 85.8773 1707 4 1 161.55 83.5898 -84.5772 + 58 21.502 1708 4 1 161.75 83.5129 -84.7975 + 58 185.278 1315 4 0 162.695 83.1725 -85.85 + 58 14.4949 1314 4 0 163.019 83.05 -86.2068 + 58 263.555 1548 1 1 129.871 39.5062 -174.45 + 58 126.935 1097 1 0 129.912 39.5788 -175.85 + 58 100.37 1096 1 0 129.794 39.321 -175.85 + 58 254.766 1550 0 1 130.184 38.1434 -204.45 + 58 176.774 1551 0 1 130.35 37.3761 -204.69 + 58 48.6871 1070 0 0 131.085 34.2134 -205.85 + 58 107.168 1069 0 0 131.118 34.05 -205.905 + 58 50.6695 1068 0 0 131.151 33.85 -205.959 + 58 43.5157 1067 0 0 131.149 33.65 -206 + 58 66.5854 1066 0 0 131.208 33.449 -206.045 + 58 56.9347 1065 0 0 131.243 33.2498 -206.105 + 58 69.3011 1064 0 0 131.257 33.05 -206.131 + 58 54.9227 1063 0 0 131.327 32.85 -206.104 + 58 82.4057 1062 0 0 131.369 32.65 -206.133 + 58 39.2638 1061 0 0 131.495 32.45 -205.961 + 58 545.561 1557 0 1 131.686 32.4448 -204.85 + 58 134.338 1558 0 1 131.75 32.4102 -204.503 + 58 99.4927 1559 0 1 131.95 32.212 -204.634 + 58 113.289 1560 0 1 132.15 32.1512 -204.705 + 58 193.885 1561 0 1 132.418 33.5121 -204.85 + 58 98.6041 1622 0 1 144.55 16.375 -204.464 +Number of digits in this event: 51 +Using G4ParticleGun... +Particle energy: 6.11632 LIN +Particle: e- Event: 59 -Number of tracker hits in this event = 56 - 59 137.599 1408 9 1 101.796 76.9481 65.55 - 59 89.4043 1284 9 0 101.794 76.948 64.15 - 59 187.066 1408 8 1 101.758 76.9513 35.55 - 59 215.816 1284 8 0 101.756 76.9514 34.15 - 59 449.012 1407 7 1 101.731 76.9574 5.55 - 59 419.703 1284 7 0 101.73 76.9577 4.15 - 59 402.068 1407 6 1 101.707 76.961 -24.45 - 59 223.95 1284 6 0 101.706 76.9615 -25.85 - 59 111.506 1407 5 1 101.668 76.9702 -54.45 - 59 155.446 1284 5 0 101.666 76.9702 -55.85 - 59 467.798 1407 4 1 101.62 76.9727 -84.45 - 59 167.563 1284 4 0 101.619 76.9725 -85.85 - 59 101.075 1407 3 1 101.59 76.9657 -114.45 - 59 116.433 1284 3 0 101.589 76.9653 -115.85 - 59 274.388 1407 2 1 101.566 76.9656 -144.45 - 59 143.87 1284 2 0 101.566 76.9619 -145.85 - 59 105.981 1407 1 1 101.567 76.8835 -174.45 - 59 98.8024 1284 1 0 101.567 76.8783 -175.85 - 59 112.391 1407 0 1 101.56 76.7749 -204.45 - 59 165.544 1283 0 0 101.557 76.7678 -205.85 - 59 84.0823 1168 2 0 24.405 53.8136 -146.25 - 59 29.0255 1690 1 1 158.15 72.0346 -174.656 - 59 117.587 1685 0 1 157.15 102.007 -204.841 - 59 64.28 1580 4 0 89.9363 136.297 -86.2498 - 59 22.8122 1408 4 1 101.75 77.0561 -84.7819 - 59 254.935 1286 4 0 101.964 77.2772 -85.85 - 59 142.441 1287 4 0 102.335 77.4501 -86.1627 - 59 217.043 1406 5 1 101.528 76.6998 -54.45 - 59 167.666 1283 5 0 101.523 76.6906 -55.85 - 59 149.995 1406 4 1 101.422 76.5012 -84.45 - 59 119.923 1282 4 0 101.411 76.4982 -85.85 - 59 125.449 1404 3 1 101.136 76.4485 -114.45 - 59 164.869 1282 3 0 101.127 76.4522 -115.85 - 59 117.673 1403 2 1 100.922 76.5167 -144.45 - 59 98.517 1282 2 0 100.903 76.5255 -145.85 - 59 46.0237 1402 1 1 100.553 76.6948 -174.45 - 59 104.46 1401 1 1 100.55 76.6957 -174.636 - 59 121.47 1283 1 0 100.533 76.7025 -175.85 - 59 129.133 1400 0 1 100.187 76.8694 -204.45 - 59 133.33 1284 0 0 100.166 76.8859 -205.85 - 59 75.6567 410 11 0 -107.758 -97.95 123.802 - 59 39.7635 411 11 0 -107.94 -97.95 124.095 - 59 100.961 360 11 1 -108.116 -97.8971 125.15 - 59 111.483 1283 6 0 101.697 76.7984 -25.85 - 59 173.017 1408 5 1 101.771 76.5503 -54.45 - 59 113.611 1282 5 0 101.767 76.5436 -55.85 - 59 258.987 1281 4 0 101.729 76.4185 -85.85 - 59 116.784 1408 3 1 101.791 76.4234 -114.45 - 59 131.424 1281 3 0 101.792 76.423 -115.85 - 59 120.405 1408 2 1 101.817 76.36 -144.45 - 59 181.606 1281 2 0 101.824 76.3539 -145.85 - 59 120.029 1409 1 1 102.053 76.2341 -174.45 - 59 99.8498 1280 1 0 102.053 76.2218 -175.85 - 59 109.645 1409 0 1 102.011 75.92 -204.45 - 59 103.404 1279 0 0 102.08 75.96 -205.85 - 59 219.794 691 2 1 -41.804 172.396 -144.45 -Number of digits in this event = 32 -Using G4ParticleGun ... -7.63871 LIN -e- +Number of tracker hits in this event: 148 + 59 167.587 902 11 1 0.473066 -52.2015 125.55 + 59 115.314 639 11 0 0.472622 -52.2013 124.15 + 59 154.331 902 10 1 0.464101 -52.195 95.55 + 59 223.749 639 10 0 0.46266 -52.1955 94.15 + 59 418.051 901 9 1 0.435866 -52.202 65.55 + 59 400.249 639 9 0 0.431613 -52.2099 64.15 + 59 430.064 901 8 1 0.416019 -52.3307 35.55 + 59 222.786 638 8 0 0.411415 -52.3339 34.15 + 59 379.83 901 7 1 0.309934 -52.4073 5.55 + 59 256.64 638 7 0 0.302855 -52.4231 4.15 + 59 124.068 900 6 1 0.15801 -52.743 -24.45 + 59 179.717 636 6 0 0.15236 -52.7576 -25.85 + 59 203.306 899 4 1 -0.223997 -53.422 -84.45 + 59 236.992 633 4 0 -0.225973 -53.4417 -85.85 + 59 104.904 898 3 1 -0.276502 -53.8465 -114.45 + 59 229.022 630 3 0 -0.2871 -53.8665 -115.85 + 59 115.508 897 2 1 -0.481884 -54.2967 -144.45 + 59 120.218 628 2 0 -0.491054 -54.3191 -145.85 + 59 103.057 896 1 1 -0.69351 -54.763 -174.45 + 59 127.283 626 1 0 -0.707946 -54.7799 -175.85 + 59 129.021 895 0 1 -1.01578 -55.1439 -204.45 + 59 131.466 624 0 0 -1.03653 -55.1611 -205.85 + 59 46.2404 787 7 1 -22.5163 50.2659 5.54993 + 59 286.195 788 7 1 -22.45 50.2856 5.4479 + 59 222.027 627 4 0 -0.158416 -54.5018 -85.85 + 59 192.997 896 3 1 -0.679743 -54.3046 -114.45 + 59 228.316 897 3 1 -0.65 -54.299 -114.777 + 59 173.364 628 3 0 -0.534759 -54.291 -115.85 + 59 140.659 912 2 1 2.5732 -53.9115 -144.45 + 59 225.074 631 2 0 2.79884 -53.7676 -145.85 + 59 120.214 933 1 1 6.76842 -52.2718 -174.45 + 59 101.289 638 1 0 6.95246 -52.2849 -175.85 + 59 42.0388 942 0 1 8.46525 -54.7026 -204.451 + 59 73.7581 941 0 1 8.45 -54.7112 -204.618 + 59 112.873 626 0 0 8.30988 -54.7946 -205.851 + 59 82.0652 947 0 1 9.51292 -47.847 -204.45 + 59 93.5867 948 0 1 9.65 -47.8318 -204.654 + 59 25.4764 671 0 0 10.8519 -45.7027 -205.85 + 59 95.5688 672 0 0 10.8813 -45.65 -205.887 + 59 102.019 673 0 0 10.9816 -45.4497 -206.06 + 59 58.074 903 3 1 0.810481 -50.3855 -114.85 + 59 222.377 904 3 1 0.85 -50.3043 -114.748 + 59 37.2925 900 5 1 0.05 -53.0738 -54.7065 + 59 129.202 634 5 0 0.197698 -53.1178 -55.85 + 59 240.662 905 4 1 1.11668 -57.5781 -84.45 + 59 78.3839 617 4 0 1.33321 -56.5896 -85.85 + 59 69.2504 618 4 0 1.37452 -56.45 -86.0438 + 59 43.1111 926 3 1 5.37878 -37.111 -114.45 + 59 119.44 927 3 1 5.45 -37.013 -114.545 + 59 30.6158 928 3 1 5.65008 -36.7435 -114.788 + 59 33.7595 721 3 0 6.62248 -35.6825 -115.85 + 59 112.619 722 3 0 6.653 -35.65 -115.884 + 59 62.6119 723 3 0 6.8533 -35.4498 -116.1 + 59 30.2509 664 3 0 34.936 -47.1544 -116.249 + 59 77.7592 663 3 0 34.941 -47.25 -116.183 + 59 69.2915 662 3 0 34.9527 -47.45 -116.029 + 59 390.278 1073 3 1 34.732 -48.3947 -114.85 + 59 629.607 1072 3 1 34.65 -48.5701 -114.72 + 59 378.039 1074 3 1 34.85 -48.5933 -114.64 + 59 2.98499 642 0 0 -0.595711 -51.4537 -205.85 + 59 108.295 643 0 0 -0.598128 -51.45 -205.854 + 59 109.46 644 0 0 -0.768906 -51.25 -206.073 + 59 9.25986 645 0 0 -0.945094 -51.0491 -206.235 + 59 325.252 639 8 0 0.398551 -52.2079 34.15 + 59 241.311 639 7 0 0.369481 -52.2223 4.15 + 59 299.473 901 6 1 0.304984 -52.2164 -24.45 + 59 165.986 639 6 0 0.303903 -52.2167 -25.85 + 59 462.959 901 5 1 0.283633 -52.2309 -54.45 + 59 114.852 639 5 0 0.282101 -52.228 -55.85 + 59 253.389 901 4 1 0.253484 -52.145 -84.45 + 59 258.55 639 4 0 0.248296 -52.1418 -85.85 + 59 103.796 900 3 1 0.149897 -52.0706 -114.45 + 59 107.686 639 3 0 0.148006 -52.068 -115.85 + 59 384.777 900 2 1 0.108432 -52.0245 -144.45 + 59 116.51 640 2 0 0.105718 -52.0224 -145.85 + 59 469.118 900 1 1 0.0567303 -51.9964 -174.45 + 59 133.197 640 1 0 0.0526174 -51.9961 -175.85 + 59 152.875 480 0 1 -83.85 0.111827 -204.659 + 59 225.923 316 0 1 -116.75 -66.5837 -204.518 + 59 123.729 589 1 0 -119.27 -62.2272 -176.25 + 59 3.0949 588 1 0 -119.301 -62.25 -176.097 + 59 460.49 899 0 1 -0.140728 -51.9 -204.45 + 59 63.4228 640 0 0 0.05 -51.9309 -205.999 + 59 141.052 641 6 0 1.28992 -51.7344 -25.85 + 59 143.956 645 8 0 -0.350724 -50.8969 34.15 + 59 26.664 646 8 0 -0.400993 -50.85 34.092 + 59 46.3157 637 6 0 0.274936 -52.6486 -25.85 + 59 119.704 902 5 1 0.562998 -52.743 -54.4504 + 59 117.805 636 5 0 0.62732 -52.7134 -55.85 + 59 130.953 912 4 1 2.55056 -52.2534 -84.45 + 59 121.074 922 3 1 4.46511 -50.1608 -114.45 + 59 117.483 650 3 0 4.54456 -49.9821 -115.85 + 59 28.8537 923 2 1 4.83556 -44.9411 -144.45 + 59 106.969 924 2 1 4.85 -44.9285 -144.531 + 59 156.883 676 2 0 5.07625 -44.7374 -145.85 + 59 65.9997 948 1 1 9.80445 -41.081 -174.45 + 59 64.3999 949 1 1 9.85 -41.0569 -174.599 + 59 117.797 695 1 0 10.3076 -40.9125 -175.85 + 59 136.295 1005 0 1 21.0508 -37.6918 -204.45 + 59 161.576 712 0 0 21.4839 -37.6126 -205.85 + 59 125.227 1059 2 0 101.403 31.9666 -146.25 + 59 307.24 635 5 0 0.335048 -52.9219 -55.85 + 59 190.952 900 4 1 0.197978 -52.9014 -84.45 + 59 107.143 635 4 0 0.135143 -52.9518 -85.8505 + 59 121.716 631 3 0 -0.61779 -53.7054 -115.85 + 59 70.9126 893 2 1 -1.32776 -53.9579 -144.451 + 59 52.1483 894 2 1 -1.24993 -53.9473 -144.675 + 59 113.293 630 2 0 -0.842983 -53.8896 -145.85 + 59 98.3566 945 1 1 9.13129 -52.4244 -174.45 + 59 3.13895 946 1 1 9.25 -52.3568 -174.835 + 59 143.901 639 1 0 9.54802 -52.1772 -175.85 + 59 148.267 987 0 1 17.4743 -47.2883 -204.45 + 59 217.205 665 0 0 17.8242 -47.0146 -205.85 + 59 244.77 897 0 1 -0.517006 -53.6315 -204.45 + 59 344.078 631 0 0 -0.612836 -53.7084 -205.85 + 59 57.5509 632 0 0 -0.36951 -53.6438 -205.85 + 59 112.488 901 3 1 0.430439 -53.5045 -114.45 + 59 128.769 632 3 0 0.422079 -53.5147 -115.85 + 59 192.948 898 0 1 -0.316678 -54.269 -204.45 + 59 110.762 628 0 0 -0.328881 -54.2826 -205.85 + 59 5.86822 1036 1 1 27.25 143.001 -174.799 + 59 20.422 343 2 0 -119.334 -111.486 -146.25 + 59 265.996 342 2 0 -119.638 -111.55 -146.076 + 59 124.564 631 1 0 0.239875 -53.8425 -175.85 + 59 159.952 931 0 1 6.36315 -48.6345 -204.45 + 59 1.01608 657 0 0 6.31303 -48.4504 -205.85 + 59 102.684 658 0 0 6.3129 -48.45 -205.853 + 59 162.796 668 0 0 -9.19003 -46.3805 -206.25 + 59 17.9312 850 0 1 -10.0195 -46.3072 -204.85 + 59 112.591 849 0 1 -10.0501 -46.3047 -204.794 + 59 26.0295 723 1 0 -11.3061 -35.2918 -176.25 + 59 111.322 724 1 0 -11.3187 -35.25 -176.124 + 59 160.255 843 1 1 -11.3347 -34.5748 -174.85 + 59 42.4184 1045 2 0 -63.1988 29.1563 -146.25 + 59 92.0736 1046 2 0 -63.2866 29.2501 -146.205 + 59 189.868 1047 2 0 -63.5547 29.4501 -146.142 + 59 57.5344 1048 2 0 -63.7094 29.65 -146.127 + 59 55.8843 1049 2 0 -63.7897 29.85 -146.115 + 59 65.6305 1050 2 0 -63.8733 30.0508 -146.068 + 59 43.3516 1051 2 0 -63.9934 30.2502 -146.002 + 59 28.4733 575 2 1 -64.9749 30.1229 -144.85 + 59 90.4708 574 2 1 -65.05 30.1246 -144.755 + 59 13.9068 573 2 1 -65.25 30.0783 -144.487 + 59 122.464 537 10 0 -4.71936 -72.4912 93.7502 + 59 186.465 901 11 1 0.45 -52.2909 125.471 + 59 49.1031 632 11 0 0.174705 -53.5296 124.15 + 59 104.861 631 11 0 0.148654 -53.65 124.032 + 59 41.1904 630 11 0 0.101262 -53.8501 123.85 +Number of digits in this event: 74 +Using G4ParticleGun... +Particle energy: 7.6059 LIN +Particle: e- Event: 60 -Number of tracker hits in this event = 37 - 60 105.078 170 7 1 -146.067 12.7139 5.55 - 60 184.976 963 7 0 -146.066 12.7131 4.15 - 60 154.514 170 6 1 -146.067 12.6972 -24.45 - 60 106.196 963 6 0 -146.066 12.6959 -25.85 - 60 173.824 170 5 1 -146.052 12.6678 -54.45 - 60 125.024 963 5 0 -146.051 12.6669 -55.85 - 60 130.684 170 4 1 -146.016 12.6498 -84.45 - 60 109.509 962 4 0 -146.016 12.6469 -85.85 - 60 359.707 170 3 1 -145.988 12.5841 -114.45 - 60 120.538 962 3 0 -145.992 12.5814 -115.85 - 60 194.948 170 2 1 -146.104 12.5633 -144.45 - 60 444.683 962 2 0 -146.101 12.5645 -145.85 - 60 139.484 170 1 1 -146.078 12.5522 -174.45 - 60 296.803 962 1 0 -146.072 12.5493 -175.85 - 60 212.936 171 0 1 -145.894 12.5199 -204.45 - 60 337.938 962 0 0 -145.884 12.5247 -205.85 - 60 151.727 105 1 1 -158.95 12.7437 -174.85 - 60 138.775 961 1 0 -145.574 12.397 -175.85 - 60 65.2164 226 0 1 -134.914 5.01437 -204.45 - 60 61.8782 227 0 1 -134.75 5.02369 -204.56 - 60 48.9924 228 0 1 -134.55 5.03402 -204.709 - 60 179.429 924 0 0 -133.449 5.00715 -205.85 - 60 65.4061 169 2 1 -146.151 12.5416 -144.512 - 60 138.286 168 2 1 -146.35 12.4659 -144.602 - 60 131.897 961 2 0 -146.337 12.385 -145.85 - 60 250.91 960 2 0 -146.131 12.25 -146.081 - 60 4.8697 204 8 1 -139.271 -90.4684 35.15 - 60 76.1021 177 12 1 -144.699 -103.842 155.15 - 60 235.476 171 2 1 -145.932 12.6388 -144.45 - 60 289.65 171 1 1 -145.904 12.6269 -174.45 - 60 35.2262 569 4 1 -66.1049 -10.3745 -84.85 - 60 8.05527 33 1 1 -173.44 160.498 -174.85 - 60 156.855 32 1 1 -173.55 160.909 -174.686 - 60 152.664 173 1 1 -145.444 12.7181 -174.45 - 60 122.675 963 1 0 -145.422 12.7226 -175.85 - 60 197.48 175 0 1 -144.998 12.8146 -204.45 - 60 175.353 963 0 0 -144.976 12.8132 -205.85 -Number of digits in this event = 30 -Using G4ParticleGun ... -6.36319 LIN -e- +Number of tracker hits in this event: 56 + 60 209.424 1145 8 1 49.2063 -126.749 35.55 + 60 108.247 267 8 0 49.2051 -126.749 34.15 + 60 123.787 1145 7 1 49.1863 -126.765 5.55 + 60 105.861 266 7 0 49.1875 -126.766 4.15 + 60 156.014 1145 6 1 49.2117 -126.771 -24.45 + 60 95.073 266 6 0 49.2139 -126.77 -25.85 + 60 114.605 1146 5 1 49.2659 -126.771 -54.45 + 60 113.939 266 5 0 49.2681 -126.768 -55.85 + 60 101.856 1146 4 1 49.3101 -126.724 -84.45 + 60 129.721 267 4 0 49.3112 -126.722 -85.85 + 60 121.801 1146 3 1 49.3279 -126.671 -114.45 + 60 116.089 267 3 0 49.3297 -126.668 -115.85 + 60 315.071 1146 2 1 49.3645 -126.604 -144.45 + 60 164.983 267 2 0 49.3669 -126.601 -145.85 + 60 105.442 1146 1 1 49.4253 -126.564 -174.45 + 60 101.928 267 1 0 49.429 -126.563 -175.85 + 60 204.238 1147 0 1 49.4996 -126.547 -204.45 + 60 113.326 268 0 0 49.5026 -126.547 -205.85 + 60 10.9923 1147 2 1 49.45 -126.576 -144.795 + 60 183.11 266 2 0 49.829 -126.75 -145.985 + 60 19.5555 287 2 0 52.9769 -122.582 -146.25 + 60 163.883 288 2 0 52.9564 -122.55 -146.197 + 60 126.927 1162 2 1 52.5525 -122.074 -144.85 + 60 222.398 1145 2 1 49.2498 -126.541 -144.507 + 60 155.856 270 2 0 48.1053 -126.062 -145.85 + 60 134.435 999 1 1 19.9757 -120.692 -174.45 + 60 16.9547 998 1 1 19.85 -120.501 -174.8 + 60 63.2843 301 1 0 19.3944 -119.874 -175.85 + 60 70.1832 302 1 0 19.3127 -119.75 -176.039 + 60 57.4922 941 0 1 8.42203 -99.8406 -204.45 + 60 66.5588 940 0 1 8.25 -99.867 -204.593 + 60 42.9118 939 0 1 8.04968 -99.8992 -204.752 + 60 153.972 400 0 0 6.92028 -100.088 -205.85 + 60 5.5796 399 0 0 6.53369 -100.15 -206.229 + 60 117.424 327 3 0 60.1025 -114.702 -116.25 + 60 195.69 1201 3 1 60.2662 -114.854 -114.85 + 60 78.3149 1441 10 1 108.365 -89.2709 95.55 + 60 128.69 1442 10 1 108.55 -89.3245 95.4726 + 60 261.534 1443 10 1 108.75 -89.1844 95.3254 + 60 121.506 487 2 0 0.72596 -82.4961 -146.25 + 60 94.939 1146 6 1 49.25 -126.719 -24.5375 + 60 61.7285 262 8 0 49.0036 -127.663 34.1498 + 60 104.221 261 8 0 48.9844 -127.75 34.0569 + 60 80.5734 893 3 1 -1.39751 -56.9624 -114.45 + 60 300.451 1145 3 1 49.2085 -126.838 -114.45 + 60 247.234 266 3 0 49.1861 -126.842 -115.85 + 60 240.835 1143 2 1 48.8229 -126.873 -144.45 + 60 118.314 1143 1 1 48.7938 -126.212 -174.45 + 60 155.416 269 1 0 48.7643 -126.198 -175.85 + 60 108.62 1140 0 1 48.2001 -126.028 -204.45 + 60 119.156 270 0 0 48.1644 -125.989 -205.85 + 60 127.835 268 2 0 49.1491 -126.391 -145.85 + 60 123.541 1134 1 1 47.0308 -125.307 -174.45 + 60 113.546 274 1 0 47.0713 -125.228 -175.85 + 60 109.014 1138 0 1 47.7349 -123.343 -204.45 + 60 189.951 284 0 0 47.7879 -123.249 -205.85 +Number of digits in this event: 28 +Using G4ParticleGun... +Particle energy: 8.07922 LIN +Particle: e- Event: 61 -Number of tracker hits in this event = 34 - 61 119.662 522 9 1 -75.5372 111.495 65.55 - 61 127.842 1456 9 0 -75.539 111.496 64.15 - 61 245.071 522 8 1 -75.5936 111.505 35.55 - 61 132.129 1456 8 0 -75.5979 111.504 34.15 - 61 132.672 521 7 1 -75.6892 111.479 5.55 - 61 129.093 1456 7 0 -75.6952 111.475 4.15 - 61 126.797 521 6 1 -75.8178 111.395 -24.45 - 61 207.901 1456 6 0 -75.8234 111.391 -25.85 - 61 123.247 520 5 1 -75.9363 111.298 -54.45 - 61 94.1879 1455 5 0 -75.9423 111.293 -55.85 - 61 147.054 519 4 1 -76.0706 111.208 -84.45 - 61 123.43 1455 4 0 -76.0769 111.204 -85.85 - 61 121.763 519 3 1 -76.2046 111.12 -114.45 - 61 104.933 1454 3 0 -76.2096 111.121 -115.85 - 61 154.389 518 2 1 -76.3226 111.13 -144.45 - 61 120.314 1454 2 0 -76.3342 111.129 -145.85 - 61 106.152 517 1 1 -76.5779 111.107 -174.45 - 61 134.689 1454 1 0 -76.5913 111.104 -175.85 - 61 99.3979 515 0 1 -76.8594 111.063 -204.45 - 61 123.3 1454 0 0 -76.8704 111.063 -205.85 - 61 339.46 522 0 1 -75.6111 108.894 -204.85 - 61 142.706 638 3 1 -52.4467 162.338 -114.45 - 61 154.528 1736 5 0 -95.8925 167.358 -56.25 - 61 35.9403 1578 5 0 -104.14 135.766 -56.2499 - 61 254.803 522 3 1 -75.6052 111.446 -114.45 - 61 229.667 1456 3 0 -75.6041 111.438 -115.85 - 61 251.563 522 2 1 -75.5605 111.28 -144.45 - 61 107.365 1455 2 0 -75.5601 111.279 -145.85 - 61 385.645 522 1 1 -75.5062 111.166 -174.45 - 61 141.676 1455 1 0 -75.5145 111.174 -175.85 - 61 236.06 1456 0 0 -75.6029 111.469 -205.85 - 61 140.076 523 1 1 -75.45 111.16 -174.623 - 61 134.369 1456 2 0 -75.5619 111.49 -145.85 - 61 104.175 1456 1 0 -75.5933 111.495 -175.85 -Number of digits in this event = 29 -Using G4ParticleGun ... -3.81738 LIN -e- +Number of tracker hits in this event: 28 + 61 120.193 326 9 1 -114.878 41.0259 65.55 + 61 149.201 1104 9 0 -114.878 41.0258 64.15 + 61 152.373 326 8 1 -114.881 41.0241 35.55 + 61 106.775 1104 8 0 -114.881 41.0253 34.15 + 61 135.998 326 7 1 -114.871 41.0454 5.55 + 61 115.571 1104 7 0 -114.87 41.0465 4.15 + 61 165.303 326 6 1 -114.858 41.0655 -24.45 + 61 107.309 1105 6 0 -114.857 41.0658 -25.85 + 61 159.042 326 5 1 -114.838 41.0708 -54.45 + 61 127.836 1105 5 0 -114.837 41.0709 -55.85 + 61 247.54 326 4 1 -114.811 41.0733 -84.45 + 61 151.595 1105 4 0 -114.811 41.0736 -85.85 + 61 119.723 326 3 1 -114.808 41.0804 -114.45 + 61 112.844 1105 3 0 -114.809 41.0796 -115.85 + 61 112.44 326 2 1 -114.815 41.0651 -144.45 + 61 115.563 1105 2 0 -114.815 41.0635 -145.85 + 61 156.311 326 1 1 -114.804 41.0314 -174.45 + 61 164.139 1104 1 0 -114.805 41.0301 -175.85 + 61 263.391 326 0 1 -114.824 41.005 -204.45 + 61 126.574 1104 0 0 -114.825 41.0048 -205.85 + 61 12.5753 812 3 1 -17.5231 -113.093 -114.85 + 61 130.193 813 3 1 -17.45 -112.92 -114.764 + 61 71.0436 75 3 0 -34.9106 -165.053 -116.25 + 61 139.47 76 3 0 -34.8488 -164.95 -116.057 + 61 86.1297 733 3 1 -33.3976 -164.94 -114.85 + 61 69.8752 734 3 1 -33.2491 -164.99 -114.68 + 61 266.949 735 3 1 -33.05 -164.977 -114.535 + 61 305.007 736 3 1 -32.85 -164.906 -114.468 +Number of digits in this event: 20 +Using G4ParticleGun... +Particle energy: 4.22738 LIN +Particle: e- Event: 62 -Number of tracker hits in this event = 153 - 62 139.019 640 11 1 -51.9246 -55.2329 125.55 - 62 118.204 624 11 0 -51.9361 -55.2398 124.15 - 62 154.775 639 10 1 -52.1732 -55.3811 95.55 - 62 193.75 623 10 0 -52.1838 -55.3891 94.15 - 62 111.414 638 9 1 -52.4196 -55.5504 65.55 - 62 123.987 622 9 0 -52.4278 -55.5585 64.15 - 62 113.252 637 8 1 -52.5965 -55.7082 35.55 - 62 121.609 621 8 0 -52.5988 -55.7092 34.15 - 62 115.737 637 7 1 -52.6132 -55.7361 5.55 - 62 109.683 621 7 0 -52.6202 -55.7518 4.15 - 62 170.783 636 6 1 -52.7266 -56.0716 -24.45 - 62 219.571 619 6 0 -52.7305 -56.0798 -25.85 - 62 127.931 636 5 1 -52.8145 -56.2492 -54.45 - 62 110.999 618 5 0 -52.8157 -56.2598 -55.85 - 62 184.111 636 4 1 -52.8135 -56.4941 -84.45 - 62 123.673 617 4 0 -52.8136 -56.5086 -85.85 - 62 319.856 636 3 1 -52.8052 -56.794 -114.45 - 62 106.183 616 3 0 -52.8022 -56.8034 -115.85 - 62 111.41 636 2 1 -52.7588 -56.9981 -144.45 - 62 285.008 615 2 0 -52.7563 -57.0054 -145.85 - 62 109.029 636 1 1 -52.6942 -57.1885 -174.45 - 62 142.847 614 1 0 -52.5466 -57.1893 -175.85 - 62 27.9324 653 0 1 -49.4028 -58.172 -204.45 - 62 157.667 652 0 1 -49.45 -58.1904 -204.534 - 62 51.0064 607 0 0 -50.2536 -58.5906 -205.85 - 62 73.2843 606 0 0 -50.3646 -58.65 -206.034 - 62 234.398 514 0 0 -58.3999 -77.1768 -206.25 - 62 172.176 513 0 0 -58.3712 -77.2509 -206.145 - 62 167.891 611 0 1 -57.823 -77.9741 -204.85 - 62 5.58579 612 0 1 -57.65 -78.1849 -204.475 - 62 49.5199 460 1 0 -43.5902 -87.9936 -176.25 - 62 73.0752 459 1 0 -43.4904 -88.05 -176.069 - 62 29.5605 687 1 1 -42.5216 -88.4252 -174.85 - 62 130.601 688 1 1 -42.45 -88.4591 -174.752 - 62 11.2046 472 2 0 -57.6502 -85.4546 -146.25 - 62 121.608 473 2 0 -57.663 -85.45 -146.229 - 62 38.1972 609 2 1 -58.1997 -84.8693 -144.849 - 62 83.6181 608 2 1 -58.25 -84.8213 -144.707 - 62 104.71 728 1 1 -34.45 -83.6343 -174.607 - 62 146.875 633 4 1 -53.25 -56.2502 -84.5057 - 62 57.1318 637 10 0 -30.6056 -52.5482 93.75 - 62 51.0864 568 10 0 -5.83247 -66.3241 93.75 - 62 302.776 632 4 1 -53.6491 -56.3741 -84.45 - 62 164.511 631 4 1 -53.65 -56.3751 -84.5988 - 62 210.287 618 4 0 -53.6566 -56.3867 -85.85 - 62 101.486 631 3 1 -53.7938 -56.6257 -114.45 - 62 113.184 617 3 0 -53.8014 -56.6395 -115.85 - 62 106.99 630 2 1 -53.9588 -56.8871 -144.45 - 62 386.056 630 1 1 -54.0364 -57.3916 -174.45 - 62 141.752 613 1 0 -54.0408 -57.4083 -175.85 - 62 149.245 629 0 1 -54.1467 -57.727 -204.45 - 62 151.193 611 0 0 -54.1551 -57.7487 -205.85 - 62 19.3165 796 0 0 -41.7451 -20.7355 -205.85 - 62 52.4394 797 0 0 -42.2426 -20.65 -206.245 - 62 81.1258 513 5 0 79.9998 -77.4004 -56.25 - 62 264.683 514 5 0 80.0026 -77.25 -56.1514 - 62 2.89352 1082 4 0 -86.8321 36.65 -86.1227 - 62 205.525 332 3 0 73.7172 -113.678 -116.25 - 62 125.404 1268 3 1 73.6993 -113.12 -114.85 - 62 136.567 629 3 1 -54.0581 -56.338 -114.45 - 62 169.526 618 3 0 -54.0736 -56.351 -115.85 - 62 243.789 628 2 1 -54.3791 -56.6353 -144.45 - 62 108.989 617 2 0 -54.3893 -56.6391 -145.85 - 62 143.696 627 1 1 -54.6245 -56.759 -174.45 - 62 127.862 616 1 0 -54.6307 -56.7717 -175.85 - 62 124.572 626 0 1 -54.7455 -57.067 -204.45 - 62 152.86 614 0 0 -54.7523 -57.0796 -205.85 - 62 318.131 633 5 1 -53.3048 -56.0481 -54.45 - 62 120.467 634 5 1 -53.25 -56.0509 -54.5164 - 62 108.696 624 5 0 -52.9026 -55.238 -55.8503 - 62 76.9537 625 5 0 -52.8355 -55.05 -56.0938 - 62 16.2658 611 5 0 -52.7509 -57.7877 -55.8502 - 62 144.139 610 5 0 -52.7258 -57.8505 -55.9032 - 62 56.0958 609 5 0 -52.6638 -58.05 -56.0499 - 62 85.0111 608 5 0 -52.6322 -58.25 -56.1545 - 62 31.8652 173 5 0 60.1144 -145.481 -56.25 - 62 149.387 172 5 0 60.2136 -145.55 -56.2182 - 62 69.981 171 5 0 60.4444 -145.75 -56.2009 - 62 112.481 170 5 0 60.6887 -145.95 -56.1851 - 62 197.06 169 5 0 60.9826 -146.15 -56.1471 - 62 123.445 168 5 0 61.2884 -146.35 -56.0527 - 62 140.241 167 5 0 61.5124 -146.55 -56.041 - 62 85.3254 166 5 0 61.8853 -146.75 -56.0577 - 62 83.4176 165 5 0 62.2035 -146.95 -56.0344 - 62 121.336 164 5 0 62.4161 -147.15 -56.1011 - 62 78.2423 163 5 0 62.6666 -147.35 -56.1128 - 62 46.7897 162 5 0 62.8216 -147.55 -56.0155 - 62 155.534 1216 5 1 63.322 -148.125 -54.85 - 62 288.644 633 6 1 -53.2759 -55.9687 -24.45 - 62 247.607 620 6 0 -53.2842 -55.9677 -25.85 - 62 176.412 620 5 0 -53.4504 -55.9302 -55.85 - 62 145.487 621 4 0 -53.5037 -55.7135 -85.85 - 62 465.157 633 3 1 -53.3826 -55.2503 -114.45 - 62 149.198 624 3 0 -53.3886 -55.2116 -115.85 - 62 854.816 632 2 1 -53.5024 -54.4291 -144.45 - 62 913.268 628 2 0 -53.5263 -54.4058 -145.85 - 62 106.063 630 1 0 -53.8846 -53.9649 -175.85 - 62 221.932 633 0 1 -53.31 -54.498 -204.45 - 62 258.582 627 0 0 -53.4473 -54.4811 -205.85 - 62 18.8473 661 0 1 -47.6832 -27.6785 -204.85 - 62 139.396 634 0 1 -53.1414 -54.5513 -204.85 - 62 115.064 634 1 0 -53.8548 -53.1773 -175.85 - 62 225.532 635 0 1 -52.9639 -51.92 -204.45 - 62 140.053 641 0 0 -52.8872 -51.7358 -205.85 - 62 329.528 629 2 0 -53.7652 -54.25 -146.249 - 62 84.7533 621 1 1 -55.8147 -50.9507 -174.45 - 62 115.639 622 1 1 -55.65 -50.8322 -174.632 - 62 7.31388 623 1 1 -55.45 -50.7201 -174.826 - 62 120.22 650 1 0 -54.2834 -50.0313 -175.85 - 62 140.465 651 1 0 -53.9625 -49.85 -176.091 - 62 40.3372 652 1 0 -53.5675 -49.6499 -176.225 - 62 182.042 634 3 1 -53.25 -55.2177 -114.53 - 62 271.151 635 3 1 -53.05 -55.1933 -114.606 - 62 145.433 632 3 0 -51.4298 -53.6233 -115.85 - 62 129.178 633 3 0 -51.5197 -53.45 -115.907 - 62 262.123 623 3 0 -53.3987 -55.3575 -115.85 - 62 125.212 631 2 1 -53.7504 -57.2787 -144.45 - 62 121.864 613 2 0 -53.5003 -57.4087 -145.85 - 62 115.815 654 1 1 -49.1388 -59.9705 -174.45 - 62 245.813 600 1 0 -48.8341 -59.89 -175.85 - 62 25.2416 682 0 1 -43.4835 -58.4751 -204.45 - 62 118.134 683 0 1 -43.45 -58.4578 -204.529 - 62 146.035 609 0 0 -42.9046 -58.1511 -205.85 - 62 376.387 622 2 0 -53.6576 -55.6189 -145.85 - 62 113.976 625 1 1 -55.0404 -55.9206 -174.45 - 62 127.836 620 1 0 -55.0574 -55.9693 -175.85 - 62 152.593 622 0 1 -55.5209 -56.9274 -204.45 - 62 205.758 615 0 0 -55.5398 -56.8838 -205.85 - 62 157.696 425 9 1 -95.1169 -160.179 65.15 - 62 106.645 627 2 0 -54.4009 -54.6021 -145.85 - 62 332.939 629 1 1 -54.1827 -58.6337 -174.45 - 62 31.462 601 1 0 -53.6979 -59.7749 -175.85 - 62 25.6938 599 1 0 -53.5845 -60.05 -176.179 - 62 169.988 684 0 1 -43.1849 -84.3932 -204.45 - 62 66.7618 468 0 0 -43.0685 -86.2526 -205.85 - 62 63.2583 467 0 0 -43.0586 -86.45 -205.992 - 62 101.792 466 0 0 -43.0546 -86.6501 -206.134 - 62 197.274 621 2 0 -53.4826 -55.65 -146.035 - 62 95.2837 618 1 0 -54.1795 -56.3363 -175.85 - 62 70.9195 616 0 0 -52.9216 -56.8429 -205.851 - 62 9.6919 1167 3 1 53.4766 -49.5653 -114.45 - 62 108.458 632 5 1 -53.5401 -56.1568 -54.45 - 62 226.578 619 5 0 -53.5371 -56.1583 -55.85 - 62 92.4737 619 4 0 -53.4693 -56.1111 -85.85 - 62 106.978 620 3 0 -53.1439 -55.9222 -115.85 - 62 148.786 633 2 1 -53.2624 -55.2679 -144.45 - 62 147.919 624 2 0 -53.2711 -55.2289 -145.85 - 62 125.355 632 1 1 -53.5053 -54.5146 -174.45 - 62 120.82 627 1 0 -53.5058 -54.4738 -175.85 - 62 26.2221 632 0 0 -53.438 -53.4541 -205.85 - 62 83.8837 633 0 0 -53.4381 -53.45 -205.951 - 62 155.122 669 1 0 -45.4768 -46.0572 -176.25 - 62 129.242 668 1 0 -45.3843 -46.25 -176.038 -Number of digits in this event = 89 -Using G4ParticleGun ... -1.16209 LIN -e- +Number of tracker hits in this event: 32 + 62 170.102 1342 9 1 88.4711 85.8416 65.55 + 62 130.465 1328 9 0 88.4709 85.842 64.15 + 62 113.179 1342 8 1 88.4633 85.8592 35.55 + 62 183.505 1329 8 0 88.4642 85.8609 34.15 + 62 93.7996 1342 7 1 88.4825 85.8938 5.55 + 62 139.273 1329 7 0 88.4845 85.897 4.15 + 62 124.973 1342 6 1 88.5299 85.9694 -24.45 + 62 144.416 1329 6 0 88.5338 85.9717 -25.85 + 62 111.261 1342 5 1 88.6037 86.0234 -54.45 + 62 104.151 1329 5 0 88.6113 86.0148 -55.85 + 62 114.345 1343 4 1 88.7736 85.8369 -84.45 + 62 176.961 1328 4 0 88.7803 85.8279 -85.85 + 62 130.839 1344 3 1 88.9164 85.6457 -114.45 + 62 137.842 1327 3 0 88.9222 85.6356 -115.85 + 62 174.194 1344 2 1 89.0459 85.4264 -144.45 + 62 274.037 1326 2 0 89.0512 85.4154 -145.85 + 62 137.877 1345 1 1 89.1623 85.1805 -174.45 + 62 122.074 1325 1 0 89.1676 85.1689 -175.85 + 62 201.084 1346 0 1 89.2717 84.924 -204.45 + 62 130.64 1324 0 0 89.2771 84.9138 -205.85 + 62 142.189 1345 2 1 89.05 85.3873 -144.511 + 62 57.5189 1309 2 0 87.003 82.0433 -145.85 + 62 81.0971 1308 2 0 86.9745 81.85 -145.94 + 62 50.2994 1307 2 0 86.96 81.6498 -146.116 + 62 20.7684 1343 0 1 88.7843 86.2477 -204.45 + 62 122.094 1344 0 1 88.85 86.2803 -204.478 + 62 70.6326 1345 0 1 89.05 86.3859 -204.573 + 62 64.6436 1347 0 1 89.45 86.5843 -204.748 + 62 18.3544 1348 0 1 89.6501 86.6469 -204.832 + 62 49.1195 1336 0 0 92.3078 87.4084 -205.85 + 62 389.378 1337 0 0 92.4571 87.45 -205.904 + 62 17.7616 1338 0 0 93.432 87.65 -206.22 +Number of digits in this event: 20 +Using G4ParticleGun... +Particle energy: 6.19415 LIN +Particle: e- Event: 63 -Number of tracker hits in this event = 70 - 63 129.374 1289 10 1 77.8613 -35.6806 95.55 - 63 118.09 721 10 0 77.852 -35.7182 94.15 - 63 137.301 1287 9 1 77.4751 -36.5658 65.55 - 63 163.272 717 9 0 77.4434 -36.5924 64.15 - 63 103.527 1283 8 1 76.8148 -37.148 35.55 - 63 117.717 714 8 0 76.7872 -37.1866 34.15 - 63 117.082 1280 7 1 76.1376 -38.078 5.55 - 63 156.654 709 7 0 76.0714 -38.157 4.15 - 63 128.539 1273 6 1 74.7688 -39.8284 -24.45 - 63 152.451 700 6 0 74.7072 -39.9794 -25.85 - 63 65.5861 1268 5 1 73.6638 -43.0508 -54.45 - 63 63.4998 1267 5 1 73.65 -43.075 -54.683 - 63 128.503 684 5 0 73.5791 -43.1945 -55.85 - 63 110.434 1259 4 1 71.9033 -46.1003 -84.45 - 63 132.39 669 4 0 71.8213 -46.2171 -85.85 - 63 2.2391 668 4 0 71.7982 -46.25 -86.2373 - 63 156.383 1250 3 1 70.1113 -48.7055 -114.45 - 63 116.19 656 3 0 70.0089 -48.8217 -115.85 - 63 20.425 655 3 0 69.9832 -48.85 -116.193 - 63 91.0262 1239 2 1 67.8804 -51.1211 -144.45 - 63 12.2057 1238 2 1 67.85 -51.1436 -144.806 - 63 97.2389 644 2 0 67.7616 -51.2121 -145.85 - 63 114.182 1225 1 1 65.2224 -53.063 -174.45 - 63 125.47 634 1 0 65.0684 -53.155 -175.85 - 63 55.3063 1209 0 1 61.885 -55.0614 -204.45 - 63 49.036 1208 0 1 61.85 -55.0729 -204.689 - 63 151.733 624 0 0 61.6755 -55.1255 -205.85 - 63 99.0543 19 2 0 104.063 -176.2 -146.25 - 63 133.801 20 2 0 104.264 -176.15 -146.12 - 63 148.628 21 2 0 104.312 -175.95 -146.173 - 63 153.208 138 6 0 -8.59681 -152.451 -26.25 - 63 162.241 1234 0 1 66.9307 -56.8586 -204.45 - 63 36.227 614 0 0 67.336 -57.2113 -205.85 - 63 85.8266 613 0 0 67.3973 -57.25 -205.98 - 63 76.9718 600 0 0 85.7772 -59.8613 -206.25 - 63 273.459 601 0 0 85.9066 -59.85 -206.059 - 63 111.124 602 0 0 86.0161 -59.6496 -205.919 - 63 71.4473 603 0 0 86.0898 -59.4498 -205.954 - 63 4.08609 1332 0 1 86.6453 -59.8624 -204.85 - 63 288.838 1333 0 1 86.65 -59.8642 -204.844 - 63 52.4124 1233 0 1 66.85 -56.7932 -204.68 - 63 118.444 618 0 0 66.5491 -56.4382 -205.85 - 63 10.1546 577 0 0 87.2999 -64.6306 -206.25 - 63 342.303 576 0 0 87.3404 -64.65 -206.227 - 63 64.7947 575 0 0 88.3558 -64.85 -205.972 - 63 74.6478 574 0 0 88.4446 -65.0501 -205.947 - 63 16.9536 573 0 0 88.5567 -65.25 -205.87 - 63 121.983 1346 0 1 89.3971 -67.3916 -204.85 - 63 85.8652 1347 0 1 89.45 -67.6484 -204.756 - 63 31.8 554 0 0 89.4183 -69.1654 -205.85 - 63 132.329 553 0 0 89.4679 -69.25 -205.911 - 63 16.2686 359 0 0 124.693 -108.264 -206.25 - 63 21.5869 241 0 0 172.125 -131.764 -206.25 - 63 264.268 242 0 0 172.116 -131.75 -206.213 - 63 128.871 1258 4 1 71.7201 -40.3412 -84.45 - 63 110.955 698 4 0 71.7623 -40.3224 -85.85 - 63 93.0132 1259 3 1 71.8825 -39.9552 -114.451 - 63 28.251 1258 3 1 71.85 -39.8651 -114.776 - 63 130.438 702 3 0 71.7046 -39.5804 -115.85 - 63 115.154 1230 2 1 66.1342 -33.2781 -144.45 - 63 109.318 734 2 0 65.9738 -33.1623 -145.85 - 63 58.5849 1219 1 1 63.8567 -31.7482 -174.45 - 63 56.3923 1218 1 1 63.85 -31.7761 -174.649 - 63 68.1431 740 1 0 63.7764 -31.9971 -175.85 - 63 40.1818 739 1 0 63.7622 -32.05 -176.093 - 63 130.883 1211 0 1 62.4371 -37.8961 -204.45 - 63 232.249 1212 0 1 62.45 -37.9266 -204.689 - 63 115.351 709 0 0 62.5201 -38.0524 -205.85 - 63 232.032 1213 0 1 62.65 -37.4621 -204.669 - 63 160.619 1286 9 1 77.45 -36.5946 65.2475 -Number of digits in this event = 29 -Using G4ParticleGun ... -5.05438 LIN -e- +Number of tracker hits in this event: 192 + 63 220.245 1169 11 1 53.886 -11.9067 125.55 + 63 137.242 840 11 0 53.8864 -11.9072 124.15 + 63 112.701 1169 10 1 53.891 -11.9184 95.55 + 63 151.567 840 10 0 53.8918 -11.9173 94.15 + 63 258.192 1169 9 1 53.9081 -11.8944 65.55 + 63 114.694 840 9 0 53.9103 -11.8943 64.15 + 63 815.682 1169 8 1 53.9491 -11.8937 35.55 + 63 253.577 840 8 0 53.9502 -11.8937 34.15 + 63 109.042 1169 7 1 53.9699 -11.9 5.55 + 63 128.936 840 7 0 53.9709 -11.9 4.15 + 63 132.323 1169 6 1 53.9869 -11.8939 -24.45 + 63 165.038 840 6 0 53.9862 -11.8923 -25.85 + 63 337.648 1169 5 1 53.9744 -11.8566 -54.45 + 63 407.727 840 5 0 53.9714 -11.8556 -55.85 + 63 709.771 1169 4 1 53.9068 -11.8305 -84.45 + 63 118.158 841 4 0 53.904 -11.8262 -85.85 + 63 104.114 1168 3 1 53.845 -11.7416 -114.45 + 63 131.26 841 3 0 53.8388 -11.7395 -115.85 + 63 613.326 1168 2 1 53.7102 -11.6944 -144.45 + 63 267.704 841 2 0 53.7028 -11.6946 -145.85 + 63 114.461 1167 1 1 53.5522 -11.6943 -174.45 + 63 275.517 841 1 0 53.5439 -11.6954 -175.85 + 63 184.455 1166 0 1 53.3621 -11.7209 -204.45 + 63 668.057 841 0 0 53.3547 -11.7228 -205.85 + 63 54.3717 512 2 1 -77.6177 130.459 -144.45 + 63 210.293 511 2 1 -77.65 130.559 -144.511 + 63 142.749 1235 1 1 67.1539 -13.3198 -174.45 + 63 151.484 831 1 0 67.398 -13.6703 -175.85 + 63 54.8249 1264 0 1 72.9818 -22.8122 -204.45 + 63 101.504 1265 0 1 73.0501 -22.8315 -204.57 + 63 101.928 785 0 0 73.866 -23.0164 -205.85 + 63 259.99 784 0 0 74.0399 -23.05 -206.116 + 63 304.146 842 2 0 53.7534 -11.6328 -145.85 + 63 171.476 1166 1 1 53.3345 -11.4921 -174.45 + 63 234.636 842 1 0 53.314 -11.4988 -175.85 + 63 149.459 1164 0 1 52.9009 -11.6529 -204.45 + 63 115.144 1168 4 1 53.85 -11.6159 -84.833 + 63 238.611 1170 2 1 54.0733 -11.7288 -144.45 + 63 108.323 844 2 0 54.0029 -11.2278 -145.85 + 63 14.2483 845 2 0 53.9062 -11.05 -146.206 + 63 24.4875 1119 1 1 43.907 12.9954 -174.45 + 63 187.195 1118 1 1 43.85 13.0339 -174.489 + 63 37.1943 967 1 0 43.6027 13.47 -175.85 + 63 276.743 966 1 0 43.5887 13.45 -175.908 + 63 523.688 1169 2 1 54.05 -11.722 -144.496 + 63 131.751 1167 2 1 53.6499 -11.6691 -144.794 + 63 111.853 1170 8 1 54.05 -11.9863 35.4799 + 63 119.686 838 8 0 54.5337 -12.2989 34.15 + 63 118.989 1218 7 1 63.7197 -17.2195 5.54986 + 63 144.387 810 7 0 63.8803 -17.9239 4.15 + 63 40.8402 809 7 0 63.9073 -18.05 3.88077 + 63 92.4598 1232 6 1 66.5634 -29.5494 -24.4501 + 63 71.2111 1233 6 1 66.65 -29.7854 -24.681 + 63 76.3308 745 6 0 67.0373 -30.8636 -25.85 + 63 73.4993 744 6 0 67.0995 -31.05 -26.0492 + 63 72.6836 1282 5 1 76.4734 -55.4037 -54.45 + 63 96.9444 1283 5 1 76.6503 -55.571 -54.5086 + 63 130.585 1284 5 1 76.85 -55.7599 -54.5733 + 63 152.22 1285 5 1 77.0506 -55.9381 -54.6412 + 63 66.3436 1286 5 1 77.25 -56.1054 -54.7088 + 63 82.8551 1287 5 1 77.45 -56.2765 -54.7672 + 63 24.3823 1288 5 1 77.6504 -56.4681 -54.8279 + 63 59.2802 603 5 0 80.6661 -59.3053 -55.85 + 63 98.6489 602 5 0 80.8264 -59.45 -55.9016 + 63 85.3825 601 5 0 81.0485 -59.65 -55.9682 + 63 81.0184 600 5 0 81.2521 -59.85 -56.0306 + 63 76.1603 599 5 0 81.4376 -60.05 -56.0935 + 63 77.2793 598 5 0 81.6162 -60.25 -56.1572 + 63 46.4379 597 5 0 81.7839 -60.4504 -56.2084 + 63 190.594 1170 7 1 54.1527 -11.7931 5.55 + 63 162.513 841 7 0 54.1798 -11.8094 4.15 + 63 117.67 1174 6 1 54.8762 -12.2079 -24.45 + 63 123.333 839 6 0 54.909 -12.2157 -25.85 + 63 148.091 1177 5 1 55.5143 -12.3049 -54.45 + 63 187.484 838 5 0 55.5561 -12.2767 -55.85 + 63 142.863 1181 4 1 56.3355 -11.6187 -84.45 + 63 129.181 842 4 0 56.4142 -11.5984 -85.85 + 63 109.062 1189 3 1 57.9011 -11.303 -114.45 + 63 216.813 843 3 0 57.9455 -11.2862 -115.85 + 63 137.553 1192 2 1 58.5335 -10.7552 -144.45 + 63 106.182 846 2 0 58.6448 -10.6807 -145.85 + 63 138.265 1208 1 1 61.7535 -8.93391 -174.45 + 63 138.66 856 1 0 61.854 -8.79948 -175.85 + 63 61.0132 1221 0 1 64.4094 -6.11956 -204.45 + 63 52.8654 1222 0 1 64.45 -6.09159 -204.66 + 63 149.802 870 0 0 64.6915 -5.91571 -205.85 + 63 77.6754 839 5 0 55.5657 -12.25 -56.2047 + 63 444.264 839 8 0 53.9283 -12.0656 34.1495 + 63 116.007 1165 7 1 53.1388 -14.909 5.55 + 63 2.48751 1166 7 1 53.25 -14.9477 5.16469 + 63 51.4462 825 7 0 53.6191 -15.0378 4.14967 + 63 87.2566 824 7 0 53.663 -15.05 4.02611 + 63 100.136 1219 6 1 63.9813 -19.6407 -24.4501 + 63 30.6377 1220 6 1 64.05 -19.8423 -24.7984 + 63 139.778 797 6 0 64.2663 -20.4679 -25.85 + 63 101.032 796 6 0 64.3263 -20.65 -26.1629 + 63 141.062 1247 5 1 69.5665 -36.3966 -54.45 + 63 81.7751 714 5 0 69.1316 -37.112 -55.85 + 63 60.1659 713 5 0 69.0781 -37.25 -56.099 + 63 53.2733 712 5 0 69.0709 -37.4507 -56.2004 + 63 145.495 1388 1 1 97.8265 -98.8141 -174.45 + 63 86.0028 400 1 0 97.7799 -99.9987 -175.85 + 63 74.0223 399 1 0 97.7804 -100.15 -176.018 + 63 2.68201 398 1 0 97.7703 -100.35 -176.239 + 63 144.097 222 1 0 94.2219 -135.639 -176.25 + 63 13.1464 221 1 0 94.1304 -135.75 -175.887 + 63 162.742 1367 1 1 93.7238 -135.813 -174.85 + 63 37.4166 167 2 0 84.7104 -146.697 -146.25 + 63 103.364 166 2 0 84.6645 -146.75 -146.155 + 63 46.6855 165 2 0 84.5826 -146.95 -145.947 + 63 52.8967 1324 2 1 84.9723 -147.983 -144.85 + 63 104.475 1325 2 1 85.05 -148.068 -144.711 + 63 211.785 1326 2 1 85.25 -148.222 -144.779 + 63 257.651 1327 2 1 85.45 -148.466 -144.79 + 63 162.831 1164 7 1 52.9367 -16.3456 5.55 + 63 30.6148 814 7 0 52.948 -17.2097 4.15 + 63 110.237 813 7 0 52.9477 -17.25 4.08376 + 63 1.23443 812 7 0 52.9379 -17.45 3.75445 + 63 51.937 1162 6 1 52.5898 -34.3461 -24.45 + 63 87.5711 1163 6 1 52.65 -34.3686 -24.5342 + 63 5.32254 1164 6 1 52.85 -34.4523 -24.8286 + 63 51.5034 726 6 0 53.5491 -34.8136 -25.85 + 63 132.11 725 6 0 53.6213 -34.85 -25.9561 + 63 61.9156 663 5 0 77.533 -47.3226 -55.85 + 63 59.5245 664 5 0 77.6074 -47.25 -56.0464 + 63 29.818 1344 4 1 89.0276 -38.0779 -84.45 + 63 84.4414 1345 4 1 89.05 -38.0792 -84.5275 + 63 24.3184 712 4 0 88.8156 -37.5007 -85.85 + 63 115.133 713 4 0 88.7902 -37.45 -85.9458 + 63 228.193 1301 3 1 80.3463 -20.9026 -114.45 + 63 108.196 1302 3 1 80.45 -20.9122 -114.622 + 63 127.298 795 3 0 81.1854 -20.9554 -115.85 + 63 66.1768 1388 2 1 97.7528 -23.1256 -144.45 + 63 68.2118 1389 2 1 97.9504 -23.0498 -144.597 + 63 72.1057 1390 2 1 98.15 -22.9883 -144.724 + 63 204.679 785 2 0 99.0854 -23.0353 -145.85 + 63 124.71 841 8 0 53.7757 -11.792 34.15 + 63 109.014 1148 7 1 49.6685 -12.2372 5.55 + 63 107.999 839 7 0 49.6404 -12.1979 4.14993 + 63 103.755 1137 6 1 47.6064 -11.1386 -24.4501 + 63 127.695 845 6 0 47.4137 -11.0216 -25.8511 + 63 102.981 1125 5 1 45.061 -7.80821 -54.4504 + 63 13.1752 1126 5 1 45.25 -7.81131 -54.7919 + 63 123.03 861 5 0 45.8565 -7.80959 -55.8503 + 63 40.969 1216 4 1 63.3263 -6.74517 -84.4503 + 63 72.264 1217 4 1 63.4501 -6.72806 -84.5584 + 63 84.2714 1218 4 1 63.65 -6.70329 -84.7183 + 63 60.3575 867 4 0 65.1377 -6.4796 -85.8501 + 63 154.036 868 4 0 65.3016 -6.45 -85.9772 + 63 216.947 1426 3 1 105.417 3.32695 -114.45 + 63 19.3682 910 3 0 105.463 2.08805 -115.85 + 63 99.6576 909 3 0 105.457 2.05 -115.901 + 63 108.916 908 3 0 105.246 1.85 -116.037 + 63 89.4318 1143 3 0 -82.9431 48.65 -116.199 + 63 123.041 1115 1 1 43.1978 -0.05 -174.51 + 63 25.6956 898 1 0 43.1824 -0.422274 -175.85 + 63 99.0976 897 1 0 43.1826 -0.45 -175.93 + 63 5.14139 896 1 0 43.1749 -0.65 -176.236 + 63 107.731 883 1 0 58.8081 -3.41811 -176.25 + 63 76.4813 884 1 0 58.9148 -3.24993 -175.984 + 63 202.352 1193 1 1 58.7936 -2.2814 -174.85 + 63 97.6702 1194 1 1 58.85 -2.2336 -174.589 + 63 223.697 886 1 0 59.1342 -2.78364 -175.85 + 63 196.8 887 1 0 58.899 -2.64971 -175.938 + 63 180.298 888 1 0 58.9072 -2.44988 -176.043 + 63 41.9032 1297 5 0 148.633 79.4695 -56.25 + 63 111.182 839 4 0 53.9738 -12.0704 -85.85 + 63 228.803 1169 3 1 54.0053 -12.0985 -114.45 + 63 129.643 839 3 0 54.0155 -12.0942 -115.85 + 63 267.237 840 2 0 54.2427 -11.9975 -145.85 + 63 619.128 1172 1 1 54.6135 -11.8025 -174.45 + 63 111.1 1175 0 1 55.0508 -11.7113 -204.45 + 63 115.424 804 0 0 53.8622 -19.1331 -206.249 + 63 264.131 1167 0 1 53.4856 -19.2905 -204.85 + 63 125.088 867 0 0 61.7953 -6.55189 -206.25 + 63 149.31 836 1 0 54.5531 -12.6883 -175.85 + 63 122.972 837 1 0 54.8594 -12.65 -176.063 + 63 250.372 1174 0 1 55.0338 -11.6007 -204.451 + 63 255.27 842 0 0 54.9693 -11.5886 -205.85 + 63 127.225 1103 1 0 63.9659 40.6683 -176.25 + 63 22.3495 1104 1 0 64.0027 40.85 -175.929 + 63 114.15 1222 1 1 64.537 40.9786 -174.85 + 63 325.341 1223 1 1 64.65 41.0226 -174.718 + 63 6.13336 1171 1 1 54.45 -11.71 -174.726 + 63 185.749 859 5 0 45.7254 -8.13333 -56.25 + 63 253.061 860 5 0 45.8089 -8.04994 -55.9692 + 63 112.786 840 4 0 53.9296 -12.0091 -85.85 + 63 145.138 840 3 0 53.9701 -11.9317 -115.85 + 63 140.558 1169 1 1 53.9429 -11.2176 -174.45 + 63 136.945 844 1 0 53.9484 -11.1825 -175.85 + 63 111.957 1170 0 1 54.1451 -10.4972 -204.45 + 63 122.805 847 0 0 54.1517 -10.4653 -205.85 +Number of digits in this event: 90 +Using G4ParticleGun... +Particle energy: 6.5398 LIN +Particle: e- Event: 64 -Number of tracker hits in this event = 67 - 64 111.083 1516 8 1 123.361 57.8858 35.55 - 64 151.965 1189 8 0 123.362 57.8873 34.15 - 64 113.856 1516 7 1 123.38 57.9232 5.55 - 64 245.374 1189 7 0 123.38 57.9265 4.15 - 64 130.992 1516 6 1 123.39 57.9948 -24.45 - 64 135.489 1189 6 0 123.389 57.9983 -25.85 - 64 149.411 1516 5 1 123.37 58.0571 -54.45 - 64 237.186 1190 5 0 123.37 58.0606 -55.85 - 64 128.192 1516 4 1 123.358 58.1321 -84.45 - 64 167.532 1190 4 0 123.358 58.1348 -85.85 - 64 585.62 1516 3 1 123.372 58.1838 -114.45 - 64 381.111 1190 3 0 123.373 58.1855 -115.85 - 64 691.359 1516 2 1 123.394 58.2236 -144.45 - 64 248.937 1190 2 0 123.396 58.2254 -145.85 - 64 117.288 1516 1 1 123.434 58.2656 -174.45 - 64 121.689 1191 1 0 123.438 58.2683 -175.85 - 64 98.672 1516 0 1 123.521 58.3219 -204.45 - 64 123.252 1191 0 0 123.524 58.3234 -205.85 - 64 89.8542 1360 0 1 92.35 23.9367 -204.757 - 64 31.6068 1361 0 1 92.35 23.8639 -204.781 - 64 116.858 1143 1 1 48.85 70.4721 -174.679 - 64 47.2309 1142 1 1 48.65 70.5265 -174.529 - 64 79.6952 1517 2 1 123.55 57.8475 -144.773 - 64 86.8514 1180 2 0 124.544 56.2064 -145.85 - 64 63.6342 1179 2 0 124.625 56.05 -145.957 - 64 70.8433 1178 2 0 124.701 55.85 -146.068 - 64 76.2439 1177 2 0 124.738 55.6496 -146.157 - 64 4.02908 1176 2 0 124.746 55.4499 -146.248 - 64 87.1534 1545 1 1 129.257 -39.3849 -174.45 - 64 27.0077 1544 1 1 129.15 -39.3526 -174.743 - 64 2.97974 711 1 0 128.473 -37.6602 -175.85 - 64 149.381 712 1 0 128.469 -37.65 -175.856 - 64 82.6419 713 1 0 128.406 -37.45 -176.029 - 64 65.2087 714 1 0 128.308 -37.25 -176.141 - 64 84.4903 754 1 0 96.6774 -29.1175 -176.25 - 64 195.174 755 1 0 96.6156 -29.05 -176.099 - 64 71.7294 756 1 0 96.1039 -28.85 -176.039 - 64 89.7611 1379 1 1 96.0838 -28.3335 -174.85 - 64 248.074 762 1 0 96.2862 -27.5294 -175.85 - 64 13.4238 763 1 0 96.4178 -27.45 -175.925 - 64 97.0073 1192 2 0 124.032 58.5759 -145.85 - 64 35.0986 1193 2 0 124.193 58.65 -146.17 - 64 332.305 1603 1 1 140.9 66.4963 -174.45 - 64 123.212 1604 1 1 140.95 66.5428 -174.519 - 64 15.0467 1605 1 1 141.15 66.7308 -174.81 - 64 153.836 1236 1 0 141.665 67.2603 -175.85 - 64 3.19202 1237 1 0 141.858 67.4501 -176.231 - 64 122.63 1677 0 1 155.636 79.3688 -204.45 - 64 151.773 1298 0 0 155.968 79.6821 -205.85 - 64 245.333 1318 0 0 147.44 83.7772 -206.249 - 64 139.768 1274 0 0 143.472 74.9188 -206.25 - 64 123.859 1189 2 0 122.845 57.964 -145.85 - 64 94.564 1428 5 0 -123.285 105.822 -56.2496 - 64 60.261 1429 5 0 -123.401 105.95 -56.1931 - 64 386.332 1515 7 1 123.349 57.9096 5.54975 - 64 141.778 1515 2 1 123.312 57.7717 -144.45 - 64 138.134 1188 2 0 123.245 57.8093 -145.85 - 64 102.081 1508 1 1 121.842 58.5735 -174.45 - 64 145.226 1192 1 0 121.787 58.6233 -175.85 - 64 106.172 1502 0 1 120.705 59.6049 -204.45 - 64 165.663 1198 0 0 120.662 59.667 -205.85 - 64 49.7562 1515 3 1 123.35 58.1508 -114.579 - 64 138.325 1183 2 0 123.623 56.8035 -145.85 - 64 110.638 1534 1 1 127.021 54.9169 -174.45 - 64 116.725 1173 1 0 126.83 54.7172 -175.85 - 64 110.573 1505 0 1 121.194 49.9027 -204.45 - 64 102.795 1149 0 0 121.176 49.9582 -205.85 -Number of digits in this event = 33 -Using G4ParticleGun ... -4.68709 LIN -e- +Number of tracker hits in this event: 61 + 64 115.355 1303 10 1 80.7191 -54.5968 95.55 + 64 102.308 627 10 0 80.7187 -54.5982 94.15 + 64 109.549 1303 9 1 80.7082 -54.6297 65.55 + 64 106.409 627 9 0 80.7059 -54.6328 64.15 + 64 135.519 1303 8 1 80.6659 -54.6948 35.55 + 64 224.499 626 8 0 80.6644 -54.6993 34.15 + 64 123.846 1302 7 1 80.6398 -54.7831 5.55 + 64 164.118 626 7 0 80.6396 -54.7864 4.15 + 64 167.382 1302 6 1 80.6302 -54.8561 -24.45 + 64 114.444 625 6 0 80.6301 -54.8582 -25.85 + 64 114.588 1302 5 1 80.6157 -54.889 -54.45 + 64 101.938 625 5 0 80.6222 -54.8939 -55.85 + 64 104.237 1303 4 1 80.7557 -54.9873 -84.45 + 64 125.554 625 4 0 80.7605 -54.9886 -85.85 + 64 142.775 1304 3 1 80.8728 -55.0057 -114.45 + 64 372.626 625 3 0 80.8852 -55.0015 -115.85 + 64 146.006 1305 2 1 81.1269 -54.9012 -144.45 + 64 305.332 625 2 0 81.131 -54.8975 -145.85 + 64 195.436 1306 1 1 81.2955 -54.7997 -174.45 + 64 168.367 626 1 0 81.3053 -54.7883 -175.85 + 64 444.894 1307 0 1 81.4823 -54.5686 -204.45 + 64 119.945 627 0 0 81.4987 -54.5603 -205.85 + 64 76.5744 1518 0 1 123.75 -46.0656 -204.838 + 64 241.779 1519 0 1 123.95 -46.1455 -204.661 + 64 50.9986 623 0 0 81.3347 -55.2791 -205.85 + 64 19.0423 624 2 0 80.9956 -55.0503 -146.18 + 64 263.534 524 2 0 62.8797 -75.1831 -146.25 + 64 109.159 1211 2 1 62.4099 -75.1662 -144.85 + 64 339.898 1303 3 1 80.8119 -55.0495 -114.45 + 64 146.136 624 3 0 80.6193 -55.0866 -115.85 + 64 111.342 1291 2 1 78.4068 -56.9153 -144.45 + 64 128.414 615 2 0 78.1571 -56.9021 -145.85 + 64 121.619 1260 1 1 72.1264 -56.1489 -174.45 + 64 225.215 619 1 0 72.1291 -56.1723 -175.85 + 64 435.463 1264 0 1 72.8919 -56.7675 -204.45 + 64 110.932 616 0 0 72.8744 -56.7333 -205.85 + 64 28.3065 1344 0 1 88.85 -37.6906 -204.793 + 64 194.186 1302 3 1 80.65 -55.0557 -114.609 + 64 145.55 1284 2 1 76.9914 -51.8839 -144.45 + 64 8.45231 644 2 0 76.6656 -51.0566 -145.851 + 64 126.089 645 2 0 76.664 -51.05 -145.86 + 64 27.2735 646 2 0 76.6204 -50.85 -146.16 + 64 151.924 1261 1 1 72.3827 -31.6568 -174.45 + 64 99.6795 747 1 0 72.6033 -30.6403 -175.85 + 64 30.117 748 1 0 72.6194 -30.45 -176.146 + 64 402.277 1265 0 1 73.1046 -17.4801 -204.451 + 64 120.024 815 0 0 73.0076 -17.0101 -205.85 + 64 152.771 857 0 0 75.4843 -8.55914 -206.25 + 64 35.7135 858 0 0 75.5192 -8.45 -205.881 + 64 0.179169 1266 0 1 73.2505 -6.5479 -204.85 + 64 36.132 1102 2 0 121.857 40.45 -146.022 + 64 112.839 1320 2 1 84.1542 -53.4798 -144.45 + 64 116.159 631 2 0 84.4877 -53.7893 -145.85 + 64 18.209 630 2 0 84.5675 -53.85 -146.205 + 64 208.029 1354 1 1 90.9608 -57.795 -174.451 + 64 145.4 609 1 0 91.4803 -58.0878 -175.85 + 64 114.086 1407 0 1 101.604 -64.9578 -204.45 + 64 97.6415 575 0 0 101.838 -64.9965 -205.85 + 64 79.5821 1353 1 1 90.8822 -57.7219 -174.45 + 64 156.316 1352 1 1 90.7498 -57.5808 -174.534 + 64 123.898 1351 1 1 90.55 -57.5203 -174.526 +Number of digits in this event: 34 +Using G4ParticleGun... +Particle energy: 5.51412 LIN +Particle: e- Event: 65 -Number of tracker hits in this event = 100 - 65 104.733 1231 11 1 66.3231 -39.822 125.55 - 65 118.759 701 11 0 66.3238 -39.821 124.15 - 65 93.6621 1231 10 1 66.3375 -39.7992 95.55 - 65 105.951 701 10 0 66.336 -39.799 94.15 - 65 182.544 1231 9 1 66.3 -39.7938 65.55 - 65 98.2935 701 9 0 66.2994 -39.7924 64.15 - 65 212.089 1230 8 1 66.2381 -39.7946 35.55 - 65 104.448 701 8 0 66.2361 -39.7961 34.15 - 65 129.22 1230 7 1 66.2148 -39.8069 5.55 - 65 121.748 701 7 0 66.213 -39.8072 4.15 - 65 163.124 1230 6 1 66.1797 -39.8547 -24.45 - 65 321.865 700 6 0 66.1773 -39.8525 -25.85 - 65 132.868 1230 5 1 66.1323 -39.8144 -54.45 - 65 207.509 701 5 0 66.1357 -39.7899 -55.8503 - 65 139.302 1228 4 1 65.831 -39.4477 -84.45 - 65 120.082 703 4 0 65.7819 -39.428 -85.85 - 65 464.9 1223 3 1 64.7448 -39.3953 -114.45 - 65 137.167 703 3 0 64.702 -39.3654 -115.85 - 65 274.875 1220 2 1 64.0732 -38.9131 -144.45 - 65 165.544 705 2 0 64.0345 -39.0174 -145.85 - 65 118.827 1218 1 1 63.6709 -40.0672 -174.45 - 65 132.791 699 1 0 63.6896 -40.0713 -175.85 - 65 27.9021 1223 0 1 64.8374 -40.2413 -204.45 - 65 88.0272 1224 0 1 64.85 -40.2308 -204.576 - 65 128.627 699 0 0 64.9657 -40.1492 -205.851 - 65 13.3029 704 2 0 64.026 -39.0504 -146.24 - 65 172.814 1219 2 1 64.05 -38.9176 -144.647 - 65 193.463 1224 3 1 64.8852 -39.0744 -114.45 - 65 44.7855 1098 1 1 39.7253 -59.3388 -174.85 - 65 305.771 701 6 0 66.1768 -39.8496 -25.9373 - 65 126.086 703 8 0 66.0141 -39.4279 34.15 - 65 155.752 1209 7 1 61.9592 -30.8728 5.55 - 65 89.7383 749 7 0 61.9138 -30.2035 4.15 - 65 34.4943 750 7 0 61.9168 -30.05 3.84532 - 65 32.8982 1233 6 1 66.6992 -15.0904 -24.45 - 65 128.475 1232 6 1 66.65 -14.9844 -24.5048 - 65 354.191 1231 6 1 66.45 -14.6275 -24.7019 - 65 23.2928 838 6 0 65.3325 -12.3379 -25.85 - 65 73.9189 839 6 0 65.2826 -12.25 -25.887 - 65 65.3094 840 6 0 65.1843 -12.0497 -25.9589 - 65 65.6471 841 6 0 65.0806 -11.849 -26.0293 - 65 65.353 842 6 0 64.9601 -11.6495 -26.1138 - 65 51.4148 843 6 0 64.8447 -11.45 -26.1907 - 65 30.1638 1408 6 0 20.6158 101.904 -26.25 - 65 76.3371 1409 6 0 20.5966 101.95 -26.2213 - 65 63.4764 1410 6 0 20.4884 102.15 -26.0815 - 65 47.151 1411 6 0 20.3768 102.35 -25.913 - 65 55.3713 997 6 1 19.5379 103.896 -24.85 - 65 91.0638 996 6 1 19.45 104.051 -24.7422 - 65 46.595 995 6 1 19.2499 104.307 -24.52 - 65 255.389 1223 5 1 64.7328 -39.9792 -54.45 - 65 39.2776 1222 5 1 64.65 -40.066 -54.7326 - 65 22.8766 698 5 0 64.2714 -40.4399 -55.85 - 65 157.36 697 5 0 64.2612 -40.45 -55.8803 - 65 38.3296 1177 4 1 55.4775 -48.7785 -84.45 - 65 105.666 1176 4 1 55.45 -48.8119 -84.5394 - 65 92.8876 653 4 0 55.0825 -49.316 -85.8501 - 65 22.3888 652 4 0 54.9929 -49.45 -86.1891 - 65 94.7044 1136 3 1 47.3739 -60.238 -114.45 - 65 13.5346 1135 3 1 47.25 -60.3556 -114.797 - 65 68.1868 596 3 0 46.8874 -60.7696 -115.85 - 65 67.3355 595 3 0 46.8104 -60.85 -116.053 - 65 122.962 1072 2 1 34.5916 -74.9404 -144.45 - 65 51.9668 1071 2 1 34.45 -75.1068 -144.804 - 65 22.933 522 2 0 34.0407 -75.6087 -145.85 - 65 110.157 521 2 0 34.008 -75.65 -145.933 - 65 80.3988 994 1 1 18.9687 -89.4831 -174.45 - 65 51.6663 993 1 1 18.85 -89.5271 -174.687 - 65 148.116 451 1 0 18.3158 -89.7486 -175.85 - 65 81.8888 930 0 1 6.18554 -97.7704 -204.45 - 65 47.9025 929 0 1 6.05 -97.6965 -204.689 - 65 132.226 414 0 0 5.30757 -97.2985 -205.85 - 65 172.486 1224 5 1 64.85 -39.9546 -54.8176 - 65 79.9829 1159 4 1 51.933 -36.2487 -84.4503 - 65 111.189 1158 4 1 51.85 -36.3832 -84.6553 - 65 43.8954 715 4 0 52.3072 -36.966 -85.85 - 65 71.1535 714 4 0 52.3625 -37.05 -85.9351 - 65 81.9197 713 4 0 52.4964 -37.25 -86.0497 - 65 135.998 712 4 0 52.6406 -37.45 -86.158 - 65 28.2582 711 4 0 52.7562 -37.65 -86.2085 - 65 12.5736 598 4 0 69.6032 -60.2597 -86.2497 - 65 76.5651 599 4 0 69.6146 -60.25 -86.2373 - 65 54.4777 609 4 0 19.2658 -58.1263 -86.25 - 65 79.7536 703 6 0 66.163 -39.3258 -25.85 - 65 41.8539 704 6 0 66.1461 -39.2499 -26.0659 - 65 67.3641 755 5 0 65.2869 -28.8863 -55.8501 - 65 445.405 756 5 0 65.3644 -28.85 -56.0931 - 65 2.66358 1258 4 1 71.8455 -25.0951 -84.4502 - 65 169.755 1259 4 1 71.85 -25.0939 -84.4606 - 65 104.919 775 4 0 72.4907 -24.9629 -85.85 - 65 8.98095 1327 3 1 85.4685 -24.5501 -114.45 - 65 134.495 1326 3 1 85.45 -24.5397 -114.487 - 65 109.326 779 3 0 84.8322 -24.1502 -115.85 - 65 193.751 1243 2 1 68.779 -16.9483 -144.45 - 65 76.2239 821 2 0 68.458 -15.802 -145.85 - 65 107.029 822 2 0 68.4044 -15.65 -146.041 - 65 106.347 1244 2 1 68.9428 -16.9697 -144.45 - 65 179.511 814 2 0 68.277 -17.1671 -145.85 - 65 35.104 867 2 0 47.6381 -6.59526 -146.25 - 65 28.3065 581 0 0 82.6035 -63.65 -206.134 -Number of digits in this event = 36 -Using G4ParticleGun ... -8.50926 LIN -e- +Number of tracker hits in this event: 23 + 65 121.708 760 10 1 -27.8834 82.7777 95.55 + 65 124.362 1313 10 0 -27.8834 82.7782 94.15 + 65 120.908 760 9 1 -27.8877 82.7912 65.55 + 65 143.209 1313 9 0 -27.8882 82.7932 64.15 + 65 144.223 760 8 1 -27.8972 82.8389 35.55 + 65 121.911 1313 8 0 -27.8967 82.839 34.15 + 65 105.001 760 7 1 -27.8812 82.8417 5.55 + 65 103.59 1313 7 0 -27.8801 82.8403 4.15 + 65 134.733 760 6 1 -27.8559 82.8151 -24.45 + 65 159.115 1313 6 0 -27.8536 82.815 -25.85 + 65 141.021 761 5 1 -27.803 82.8112 -54.45 + 65 124.487 1313 5 0 -27.8019 82.8104 -55.85 + 65 253.873 761 4 1 -27.7765 82.7941 -84.45 + 65 250.211 1313 4 0 -27.7759 82.7906 -85.85 + 65 269.961 761 3 1 -27.7634 82.7278 -114.45 + 65 115.809 1313 3 0 -27.7698 82.7243 -115.85 + 65 182.369 760 2 1 -27.91 82.5686 -144.45 + 65 420.927 1312 2 0 -27.9241 82.5631 -145.85 + 65 120.927 759 1 1 -28.2301 82.4494 -174.45 + 65 114.873 1311 1 0 -28.2381 82.4375 -175.85 + 65 150.112 757 0 1 -28.4992 82.1506 -204.45 + 65 114.361 1310 0 0 -28.5065 82.1241 -205.85 + 65 62.8987 1311 2 0 -27.9044 82.45 -146.015 +Number of digits in this event: 20 +Using G4ParticleGun... +Particle energy: 3.95215 LIN +Particle: e- Event: 66 -Number of tracker hits in this event = 108 - 66 110.298 1569 8 1 134.141 36.6791 35.55 - 66 103.109 1083 8 0 134.141 36.6779 34.15 - 66 239.037 1569 7 1 134.132 36.6497 5.55 - 66 286.911 1082 7 0 134.132 36.6482 4.15 - 66 101.51 1569 6 1 134.13 36.6176 -24.45 - 66 229.626 1082 6 0 134.13 36.6181 -25.85 - 66 392.748 1569 5 1 134.138 36.6281 -54.45 - 66 477.394 1082 5 0 134.139 36.6286 -55.85 - 66 297.283 1569 4 1 134.147 36.6477 -84.45 - 66 404.732 1083 4 0 134.149 36.6503 -85.85 - 66 120.884 1570 3 1 134.177 36.7199 -114.45 - 66 126.838 1083 3 0 134.178 36.7237 -115.85 - 66 241.004 1570 2 1 134.206 36.7981 -144.45 - 66 176.35 1083 2 0 134.21 36.8045 -145.85 - 66 114.218 1570 1 1 134.336 36.9704 -174.45 - 66 112.853 1084 1 0 134.339 36.9743 -175.85 - 66 162 1571 0 1 134.377 37.0444 -204.45 - 66 142.639 1084 0 0 134.373 37.0468 -205.85 - 66 214.33 1084 2 0 134.231 36.85 -145.94 - 66 32.0663 1571 2 1 134.35 37.7974 -144.824 - 66 71.0335 576 3 0 115.458 -64.6871 -116.249 - 66 88.1836 575 3 0 115.536 -64.85 -116.073 - 66 28.03 1479 3 1 116.111 -65.272 -114.85 - 66 93.3076 1480 3 1 116.15 -65.3023 -114.753 - 66 120.382 615 4 0 123.387 -56.9637 -86.25 - 66 34.5496 1520 4 1 124.28 -56.8278 -84.85 - 66 99.6594 1521 4 1 124.35 -56.8224 -84.7597 - 66 10.8381 505 9 0 170.524 -78.85 63.8965 - 66 290.381 1571 4 1 134.535 36.8363 -84.45 - 66 126.421 1084 4 0 134.532 36.862 -85.85 - 66 201.778 1571 3 1 134.391 37.4234 -114.45 - 66 130.563 1087 3 0 134.385 37.5313 -115.85 - 66 100.524 1569 2 1 133.963 39.8659 -144.45 - 66 24.8319 1568 2 1 133.95 39.9002 -144.775 - 66 56.9012 1099 2 0 133.903 40.0249 -145.85 - 66 47.4518 1100 2 0 133.893 40.05 -146.066 - 66 154.863 1563 1 1 132.912 43.4644 -174.45 - 66 82.7797 1117 1 0 132.92 43.6224 -175.85 - 66 53.4014 1118 1 0 132.921 43.65 -176.093 - 66 122.936 1562 0 1 132.699 46.8341 -204.45 - 66 109.149 1134 0 0 132.73 47.0022 -205.85 - 66 132.908 672 3 0 89.6151 -45.4905 -116.25 - 66 157.618 671 3 0 89.6624 -45.6502 -116.135 - 66 102.05 1078 2 0 134.049 35.7799 -145.85 - 66 37.3337 1561 1 1 132.436 36.2107 -174.45 - 66 102.242 1560 1 1 132.35 36.1631 -174.517 - 66 84.8887 1559 1 1 132.15 36.0577 -174.687 - 66 99.1419 1075 1 0 130.76 35.1991 -175.85 - 66 105.453 1074 1 0 130.563 35.05 -176.027 - 66 25.9128 1457 0 1 111.622 10.1738 -204.45 - 66 60.068 1456 0 1 111.55 10.1313 -204.507 - 66 207.96 1455 0 1 111.35 10.0215 -204.623 - 66 79.6237 1454 0 1 111.149 9.934 -204.726 - 66 21.4652 1453 0 1 110.95 9.89236 -204.817 - 66 259.853 944 0 0 107.944 9.03247 -205.85 - 66 170.893 943 0 0 107.381 8.85 -205.98 - 66 166.845 942 0 0 106.812 8.65 -206.134 - 66 5.60619 941 0 0 106.453 8.4496 -206.244 - 66 110.608 1576 3 1 135.401 36.4191 -114.45 - 66 105.884 1081 3 0 135.479 36.3681 -115.85 - 66 387.066 1584 2 1 137.044 35.4946 -144.45 - 66 64.568 1077 2 0 137.135 35.4558 -145.85 - 66 320.317 1076 2 0 137.151 35.45 -146.08 - 66 104.967 1595 1 1 139.206 34.311 -174.45 - 66 116.407 1071 1 0 139.34 34.3497 -175.85 - 66 145.606 1608 0 1 141.797 35.1303 -204.45 - 66 133.515 1076 0 0 141.938 35.2666 -205.85 - 66 252.952 1523 2 1 124.95 -48.8284 -144.812 - 66 17.7898 1075 2 0 137.174 35.25 -146.203 - 66 138.987 1598 1 1 139.824 31.9369 -174.45 - 66 116.246 1060 1 0 139.918 32.1917 -175.851 - 66 9.56637 1061 1 0 139.949 32.25 -176.198 - 66 102.492 1615 0 1 143.223 37.2112 -204.451 - 66 200.652 1085 0 0 143.113 37.1659 -205.85 - 66 46.1556 1532 1 1 126.701 73.5525 -174.45 - 66 91.9659 1570 7 1 134.15 36.6489 5.27383 - 66 74.7358 1088 7 0 134.64 37.7458 4.14999 - 66 108.566 1082 4 0 134.125 36.5033 -85.85 - 66 176.385 1569 3 1 134.125 35.9623 -114.45 - 66 105.44 1079 3 0 134.177 36.0325 -115.85 - 66 17.3599 1080 3 0 134.192 36.05 -116.188 - 66 156.267 1578 2 1 135.849 36.8358 -144.45 - 66 123.798 1626 1 1 145.403 38.2638 -174.45 - 66 59.8087 1627 1 1 145.55 38.2579 -174.696 - 66 184.28 1090 1 0 146.344 38.183 -175.851 - 66 9.7044 1733 0 1 166.925 36.4437 -204.45 - 66 158.886 1734 0 1 166.95 36.4247 -204.493 - 66 3.68848 1735 0 1 167.15 36.2915 -204.834 - 66 73.2191 1079 0 0 167.721 35.9038 -205.85 - 66 112.456 1078 0 0 167.794 35.85 -205.982 - 66 91.4001 1568 4 1 133.95 36.6114 -84.4584 - 66 62.3684 1567 4 1 133.75 36.8221 -84.5683 - 66 103.002 1566 4 1 133.55 36.9718 -84.6237 - 66 83.2078 1565 4 1 133.35 37.2089 -84.6586 - 66 77.1065 1564 4 1 133.15 37.4688 -84.6464 - 66 80.3925 1563 4 1 132.95 37.7045 -84.5687 - 66 83.9927 1562 4 1 132.75 37.9049 -84.5132 - 66 41.4025 1561 4 1 132.45 38.174 -84.45 - 66 116.315 1560 4 1 132.35 38.2333 -84.4778 - 66 67.0651 1559 4 1 132.15 38.3478 -84.5553 - 66 49.8349 1558 4 1 131.95 38.4015 -84.6905 - 66 115.019 1091 4 0 131.27 38.4132 -85.85 - 66 16.3028 1246 4 0 46.0374 69.424 -86.25 - 66 152.587 1247 4 0 45.9759 69.45 -86.2178 - 66 84.294 1248 4 0 45.6545 69.6502 -85.9767 - 66 90.6852 1124 4 1 45.0316 70.2724 -84.85 - 66 92.6294 1123 4 1 44.85 70.3607 -84.6761 - 66 111.616 1122 4 1 44.65 70.3928 -84.5936 -Number of digits in this event = 43 -Using G4ParticleGun ... -7.17796 LIN -e- +Number of tracker hits in this event: 253 + 66 567.093 824 11 1 -15.1001 -24.5958 125.55 + 66 728.812 777 11 0 -15.1018 -24.5967 124.15 + 66 264.957 824 10 1 -15.1406 -24.6118 95.55 + 66 147.778 777 10 0 -15.1403 -24.6165 94.15 + 66 261.092 824 9 1 -15.1271 -24.7095 65.55 + 66 137.354 776 9 0 -15.1322 -24.7135 64.15 + 66 268.262 824 8 1 -15.2346 -24.8056 35.55 + 66 310.754 776 8 0 -15.2329 -24.807 34.15 + 66 520.496 824 7 1 -15.2024 -24.8249 5.55 + 66 230.007 776 7 0 -15.2028 -24.8258 4.15 + 66 305.698 824 6 1 -15.2138 -24.854 -24.45 + 66 390.511 775 6 0 -15.2112 -24.8573 -25.85 + 66 117.128 824 5 1 -15.1663 -24.9218 -54.45 + 66 148.01 775 5 0 -15.1603 -24.928 -55.85 + 66 158.624 825 4 1 -15.023 -25.0547 -84.45 + 66 131.417 774 4 0 -15.0128 -25.0634 -85.85 + 66 295.843 826 3 1 -14.8029 -25.2103 -114.45 + 66 231.095 774 3 0 -14.7941 -25.2171 -115.85 + 66 301.739 827 2 1 -14.6308 -25.3605 -144.45 + 66 100.665 773 2 0 -14.6398 -25.3307 -145.85 + 66 129.084 826 1 1 -14.8252 -24.6463 -174.45 + 66 122.309 777 1 0 -14.8033 -24.5666 -175.85 + 66 328.134 828 0 1 -14.4077 -22.9269 -204.45 + 66 115.666 785 0 0 -14.3931 -22.8648 -205.85 + 66 26.4399 786 0 0 -14.3896 -22.85 -206.186 + 66 343.961 771 0 0 -14.3889 -25.6591 -205.85 + 66 353.724 772 1 0 -14.2725 -25.5648 -175.861 + 66 155.227 830 0 1 -13.8597 -25.6844 -204.45 + 66 355.406 825 0 1 -15.0273 -24.7009 -204.451 + 66 273.654 776 0 0 -14.8607 -24.7378 -205.85 + 66 23.6593 841 0 0 -33.6803 -11.85 -206.152 + 66 3.00132 731 0 1 -33.6506 -10.6545 -204.85 + 66 209.498 732 0 1 -33.65 -10.6515 -204.847 + 66 131.961 437 5 0 79.3297 -92.5736 -56.25 + 66 57.6971 436 5 0 79.5403 -92.75 -56.2475 + 66 131.006 823 7 1 -15.25 -24.8178 5.25288 + 66 20.6232 1175 4 1 55.0825 9.92472 -84.45 + 66 67.2651 1174 4 1 55.05 9.90314 -84.4943 + 66 94.7961 1173 4 1 54.85 9.84619 -84.5725 + 66 57.2588 1172 4 1 54.65 9.84738 -84.6175 + 66 81.0939 1171 4 1 54.45 9.82724 -84.6318 + 66 38.6028 946 4 0 54.178 9.30232 -85.85 + 66 108.085 945 4 0 54.1873 9.24988 -85.9853 + 66 81.7414 518 4 0 10.4719 -76.3093 -86.25 + 66 87.6573 517 4 0 10.3203 -76.4503 -86.0423 + 66 130.419 950 4 1 10.1032 -76.6109 -84.8498 + 66 243.336 949 4 1 10.05 -76.6334 -84.6586 + 66 133.335 823 6 1 -15.3206 -24.7356 -24.45 + 66 233.293 774 6 0 -15.0325 -25.0998 -25.85 + 66 12.245 863 5 1 -7.28325 -35.6452 -54.45 + 66 81.3299 864 5 1 -7.25 -35.6688 -54.4734 + 66 73.5244 865 5 1 -7.04985 -35.8193 -54.6238 + 66 24.2653 866 5 1 -6.84978 -35.9966 -54.8104 + 66 2.54423 715 5 0 -5.69796 -37.0424 -55.8501 + 66 91.2124 714 5 0 -5.68946 -37.05 -55.858 + 66 183.043 713 5 0 -5.47021 -37.2507 -56.0733 + 66 123.413 603 5 0 7.19312 -59.3379 -56.2491 + 66 1.04631 602 5 0 7.03418 -59.45 -55.8576 + 66 11.192 932 5 1 6.46287 -59.7503 -54.85 + 66 110.341 931 5 1 6.45 -59.7588 -54.8218 + 66 59.1828 930 5 1 6.24995 -59.9211 -54.5456 + 66 78.0053 689 6 0 0.49516 -42.2202 -26.25 + 66 72.2485 690 6 0 0.493139 -42.05 -26.0166 + 66 185.403 904 6 1 0.874888 -41.1899 -24.8499 + 66 38.6657 569 5 0 24.6597 -66.208 -56.25 + 66 103.392 568 5 0 24.7078 -66.25 -56.1419 + 66 80.0492 567 5 0 24.8454 -66.45 -55.924 + 66 53.1862 566 5 0 24.9027 -66.65 -55.8811 + 66 433.29 1031 5 1 26.3086 -69.453 -54.85 + 66 9.58922 1028 5 1 25.85 -69.1186 -54.7856 + 66 210.854 1032 5 1 26.4504 -69.6376 -54.7471 + 66 252.008 1023 5 1 24.6836 -67.2169 -54.85 + 66 207.625 1022 5 1 24.65 -67.2812 -54.7963 + 66 222.091 777 6 0 -14.2978 -24.454 -25.85 + 66 224.159 778 6 0 -14.2841 -24.45 -25.8676 + 66 136.323 498 6 0 54.969 -80.4448 -26.2495 + 66 78.0954 497 6 0 54.9712 -80.45 -26.2457 + 66 79.1643 496 6 0 55.0311 -80.65 -26.0461 + 66 2.03494 495 6 0 55.1952 -80.85 -25.8534 + 66 2.07231 1182 6 1 56.642 -81.904 -24.85 + 66 110.092 1183 6 1 56.65 -81.9104 -24.8443 + 66 95.0403 1184 6 1 56.85 -82.0532 -24.7009 + 66 137.405 1185 6 1 57.05 -82.0538 -24.4549 + 66 108.116 1186 6 1 57.25 -81.787 -24.5566 + 66 84.9129 569 6 0 5.03963 -66.1173 -26.25 + 66 140.876 570 6 0 4.83429 -66.05 -26.0924 + 66 59.6686 571 6 0 4.87222 -65.85 -26.1281 + 66 128.09 828 6 1 -14.3645 -26.6151 -24.45 + 66 0.123164 762 6 0 -14.2671 -27.6497 -25.8505 + 66 167.352 761 6 0 -14.2671 -27.65 -25.8509 + 66 77.5875 760 6 0 -14.226 -27.8501 -26.1087 + 66 182.601 862 5 1 -7.57826 -50.4602 -54.45 + 66 8.76301 643 5 0 -7.21519 -51.4269 -55.85 + 66 77.0792 642 5 0 -7.20592 -51.45 -55.8856 + 66 72.3976 641 5 0 -7.13477 -51.65 -56.1032 + 66 122.363 474 5 0 -2.73633 -85.0969 -56.25 + 66 129.413 887 5 1 -2.58983 -85.3956 -54.85 + 66 157.767 472 6 0 11.353 -85.5984 -26.25 + 66 70.4636 959 6 1 12.007 -85.2298 -24.85 + 66 218.116 960 6 1 12.05 -85.1934 -24.7556 + 66 123.341 397 7 0 4.90931 -100.605 3.75 + 66 62.1612 920 7 1 4.20995 -100.373 5.15038 + 66 107.838 919 7 1 4.05 -100.321 5.29128 + 66 84.1727 918 7 1 3.85 -100.064 5.39129 + 66 51.9177 917 7 1 3.65 -99.8746 5.30921 + 66 160.051 916 7 1 3.45 -99.855 5.26348 + 66 147.45 408 7 0 4.09295 -98.4894 4.14975 + 66 242.051 923 7 1 4.75907 -98.5462 5.1502 + 66 41.7404 551 9 1 -69.65 -88.2977 65.3517 + 66 243.808 777 7 0 -15.0785 -24.5657 4.15 + 66 110.652 827 6 1 -14.5415 -24.525 -24.45 + 66 274.546 832 5 1 -13.5034 -24.0546 -54.45 + 66 123.796 779 5 0 -13.3707 -24.0589 -55.85 + 66 124.315 846 4 1 -10.6969 -24.2354 -84.45 + 66 200.54 778 4 0 -10.5905 -24.3005 -85.85 + 66 159.006 858 3 1 -8.31581 -25.7324 -114.45 + 66 156.836 771 3 0 -8.16508 -25.6773 -115.85 + 66 226.974 875 2 1 -4.98647 -24.9836 -144.45 + 66 119.715 775 2 0 -4.80596 -24.9505 -145.85 + 66 106.822 895 1 1 -1.01363 -23.9075 -174.45 + 66 166.572 780 1 0 -0.752124 -23.8889 -175.85 + 66 101.535 922 0 1 4.5629 -23.3642 -204.45 + 66 252.699 783 0 0 4.76596 -23.36 -205.85 + 66 168.846 905 0 1 1.05 10.4406 -204.81 + 66 102.675 904 0 1 1.04992 10.8798 -204.485 + 66 2.0792 316 5 0 20.2766 -116.926 -56.25 + 66 107.913 315 5 0 20.2805 -116.95 -56.203 + 66 48.7015 314 5 0 20.1848 -117.15 -55.9307 + 66 87.7137 995 5 1 19.0702 -117.669 -54.85 + 66 246.464 994 5 1 19.05 -117.679 -54.8301 + 66 230.297 993 5 1 18.85 -117.832 -54.7177 + 66 299.393 996 5 1 19.2502 -118.511 -54.5197 + 66 150.785 778 5 0 -13.5209 -24.3217 -55.8506 + 66 141.31 777 5 0 -13.366 -24.4502 -56.0851 + 66 99.816 860 5 0 -12.5018 -7.94414 -56.2499 + 66 302.619 861 5 0 -12.5961 -7.85 -55.9907 + 66 113.385 862 5 0 -12.4867 -7.64994 -55.9233 + 66 283.414 823 11 1 -15.25 -24.5743 125.435 + 66 37.213 779 11 0 -15.9566 -24.0984 124.15 + 66 176.722 780 11 0 -16.02 -24.05 124.028 + 66 16.3953 731 10 1 -33.6639 -8.47232 95.5496 + 66 199.442 732 10 1 -33.65 -8.41688 95.5213 + 66 17.6061 864 10 0 -33.1144 -7.10383 94.15 + 66 102.619 865 10 0 -33.0925 -7.05 94.0871 + 66 10.6616 866 10 0 -33.0919 -6.84981 93.8073 + 66 85.7612 775 11 0 -15.3385 -24.8868 124.15 + 66 85.4288 776 11 0 -15.3417 -24.85 123.938 + 66 140.506 825 10 1 -15.0291 -24.1238 95.55 + 66 104.752 779 10 0 -15.034 -24.1071 94.15 + 66 97.1119 781 9 0 -15.1664 -23.7353 64.15 + 66 156.783 782 8 0 -15.195 -23.4528 34.15 + 66 50.6933 783 8 0 -15.1962 -23.45 33.9575 + 66 487.869 784 7 0 -15.3566 -23.1098 4.15 + 66 120.589 822 6 1 -15.5195 -22.9405 -24.45 + 66 131.032 785 6 0 -15.5208 -22.9429 -25.85 + 66 112.207 822 5 1 -15.6222 -23.024 -54.45 + 66 183.231 785 5 0 -15.614 -23.0224 -55.85 + 66 270.835 823 4 1 -15.2657 -23.003 -84.45 + 66 112.608 785 4 0 -15.2373 -23.0124 -85.85 + 66 113.978 783 3 0 -14.6802 -23.2806 -115.85 + 66 171.294 830 2 1 -13.9015 -23.9896 -144.45 + 66 24.9593 780 2 0 -13.8913 -24.0469 -145.85 + 66 226.221 779 2 0 -13.8908 -24.05 -145.925 + 66 130.999 831 1 1 -13.6718 -25.4641 -174.45 + 66 119.603 834 0 1 -13.0592 -26.6254 -204.45 + 66 152.156 835 0 1 -13.05 -26.6431 -204.747 + 66 235.739 766 0 0 -13.0155 -26.7091 -205.85 + 66 196.299 767 0 0 -13.1573 -26.65 -206.034 + 66 253.853 774 1 0 -13.6703 -25.077 -175.85 + 66 112.681 770 0 0 -13.0057 -25.8728 -205.85 + 66 36.2431 815 1 0 -52.074 -16.9158 -176.25 + 66 133.371 816 1 0 -52.0859 -16.85 -176.189 + 66 209.917 639 1 1 -52.104 -17.5253 -174.85 + 66 43.2811 640 1 1 -52.05 -17.594 -174.732 + 66 133.723 827 0 1 -14.574 -26.0381 -204.45 + 66 194.627 769 0 0 -14.4008 -26.1502 -205.85 + 66 127.729 805 1 0 -25.0208 -18.9218 -176.25 + 66 81.7763 824 0 1 -15.05 -23.7494 -204.559 + 66 80.1376 823 0 1 -15.25 -23.7881 -204.672 + 66 64.3757 822 0 1 -15.45 -23.8224 -204.641 + 66 83.5216 826 0 1 -14.8498 -23.6356 -204.606 + 66 113.302 779 0 0 -13.4558 -24.1164 -205.85 + 66 132.484 778 0 0 -13.1829 -24.25 -206.095 + 66 109.375 706 0 0 54.0414 -38.6753 -206.25 + 66 151.623 705 0 0 54.1146 -38.85 -206.11 + 66 56.7947 704 0 0 54.2413 -39.05 -205.992 + 66 54.4875 703 0 0 54.3165 -39.25 -205.908 + 66 29.6507 1178 0 1 55.8016 -42.2602 -204.85 + 66 74.8826 1179 0 1 55.8506 -42.3513 -204.803 + 66 112.062 1180 0 1 56.05 -42.6024 -204.693 + 66 141.776 1181 0 1 56.25 -42.8937 -204.652 + 66 39.3538 1182 0 1 56.45 -43.1628 -204.758 + 66 180.611 682 0 0 57.4839 -43.6108 -205.85 + 66 77.6752 681 0 0 57.5878 -43.65 -205.955 + 66 133.167 820 3 1 -15.9673 -21.6408 -114.45 + 66 152.091 792 3 0 -16.2149 -21.5918 -115.85 + 66 107.599 817 0 1 -16.52 -20.2509 -204.45 + 66 186.137 796 0 0 -16.3836 -20.6943 -205.85 + 66 66.9701 795 0 0 -16.2748 -20.85 -206.132 + 66 283.821 775 0 0 -42.2571 -24.9527 -206.25 + 66 144.265 774 0 0 -42.4405 -25.05 -206.122 + 66 235.139 822 3 1 -15.5731 -21.2015 -114.45 + 66 119.302 796 3 0 -15.4797 -20.794 -115.85 + 66 170.504 831 2 1 -13.6698 -9.63851 -144.45 + 66 132.817 853 2 0 -13.7661 -9.41174 -145.85 + 66 27.1325 805 1 1 -19.0088 -3.37849 -174.45 + 66 102.241 804 1 1 -19.0502 -3.4086 -174.516 + 66 24.2938 803 1 1 -19.25 -3.54147 -174.797 + 66 49.8725 880 1 0 -20.0868 -3.97333 -175.85 + 66 61.1401 879 1 0 -20.2144 -4.05 -176.043 + 66 398.586 730 0 1 -33.8541 -10.786 -204.45 + 66 169.967 843 0 0 -33.7119 -11.2585 -205.85 + 66 130.823 794 3 0 -15.6531 -21.2405 -115.85 + 66 105.456 816 2 1 -16.6871 -21.8624 -144.45 + 66 108.833 792 2 0 -16.7339 -21.6491 -145.85 + 66 147.894 813 1 1 -17.2957 -18.1612 -174.451 + 66 78.283 810 1 0 -17.4607 -17.8996 -175.851 + 66 38.5948 811 1 0 -17.4952 -17.85 -176.128 + 66 48.0902 791 0 1 -21.8033 -13.2507 -204.45 + 66 55.4582 790 0 1 -21.85 -13.2433 -204.632 + 66 204.096 834 0 0 -22.1858 -13.1861 -205.851 + 66 66.4699 825 11 1 -15.05 -24.4526 125.283 + 66 106.276 781 11 0 -14.2179 -23.8494 124.15 + 66 85.5464 782 11 0 -14.1625 -23.6499 123.977 + 66 109.268 783 11 0 -14.2607 -23.45 123.894 + 66 72.1846 784 11 0 -14.2387 -23.249 123.797 + 66 17.836 1185 11 0 8.34005 57.1949 123.75 + 66 50.9214 1186 11 0 8.32434 57.2504 123.796 + 66 70.7404 1548 11 0 -35.1034 129.826 123.75 + 66 214.03 1549 11 0 -35.129 129.95 123.867 + 66 98.0026 776 10 0 -15.1515 -24.8443 94.15 + 66 154.924 822 9 1 -15.6065 -24.8626 65.55 + 66 115.291 775 9 0 -15.6353 -24.8547 64.15 + 66 146.014 819 8 1 -16.1385 -24.7028 35.55 + 66 102.017 816 7 1 -16.7887 -24.5583 5.55 + 66 170.503 817 6 1 -16.5615 -24.4472 -24.45 + 66 285.108 820 5 1 -16.0476 -24.0392 -54.45 + 66 122.868 780 5 0 -16.0148 -24.0254 -55.85 + 66 129.423 781 4 0 -15.3697 -23.7257 -85.85 + 66 144.456 825 3 1 -14.8702 -23.8657 -114.45 + 66 115.658 780 3 0 -14.8527 -23.8776 -115.85 + 66 107.171 828 1 1 -14.3404 -24.6622 -174.45 + 66 226.849 776 1 0 -14.366 -24.6697 -175.85 + 66 20.6006 757 5 0 -16.5341 -28.6109 -55.85 + 66 182.473 756 5 0 -16.5396 -28.65 -55.8665 + 66 6.99438 812 5 1 -17.6023 -28.2854 -54.85 + 66 14.6347 765 5 0 -19.1776 -26.9479 -55.85 + 66 95.6508 816 6 1 -16.65 -24.4543 -24.6193 + 66 0.028151 815 6 1 -16.85 -24.4901 -24.8494 + 66 99.7774 805 6 1 -18.8882 -25.8963 -24.85 + 66 162.243 806 6 1 -18.85 -26.063 -24.6445 + 66 157.78 807 6 1 -18.65 -26.0452 -24.5792 + 66 76.7801 808 6 1 -18.45 -26.0456 -24.4552 +Number of digits in this event: 127 +Using G4ParticleGun... +Particle energy: 8.33841 LIN +Particle: e- Event: 67 -Number of tracker hits in this event = 67 - 67 121.614 1495 8 1 119.205 -71.9366 35.55 - 67 140.026 540 8 0 119.204 -71.9373 34.15 - 67 130.056 1495 7 1 119.182 -71.9508 5.55 - 67 123.872 540 7 0 119.181 -71.9502 4.15 - 67 109.514 1495 6 1 119.163 -71.9355 -24.45 - 67 257.209 540 6 0 119.163 -71.934 -25.85 - 67 207.789 1495 5 1 119.178 -71.9014 -54.45 - 67 103.842 540 5 0 119.177 -71.8998 -55.85 - 67 116.946 1495 4 1 119.165 -71.8646 -84.45 - 67 140.833 540 4 0 119.164 -71.8638 -85.85 - 67 263.302 1495 3 1 119.15 -71.8479 -114.45 - 67 171.787 541 3 0 119.15 -71.8485 -115.85 - 67 289.843 1494 2 1 119.13 -71.8663 -144.45 - 67 95.5374 540 2 0 119.128 -71.8698 -145.85 - 67 101 1494 1 1 119.086 -71.9448 -174.45 - 67 118.422 540 1 0 119.085 -71.9482 -175.85 - 67 87.5785 1494 0 1 119.08 -72.0229 -204.45 - 67 134.142 540 0 0 119.081 -72.0264 -205.85 - 67 111.36 1494 5 1 119.134 -71.8916 -54.4503 - 67 110.236 543 5 0 119.124 -71.4168 -55.8504 - 67 120.322 1510 4 1 122.312 -64.3454 -84.45 - 67 249.989 1511 4 1 122.35 -64.4103 -84.8477 - 67 6.59981 577 4 0 122.421 -64.6448 -85.85 - 67 99.1792 576 4 0 122.422 -64.65 -85.8725 - 67 0.611458 1516 3 1 123.549 -76.8257 -114.45 - 67 101.418 1517 3 1 123.55 -76.8268 -114.451 - 67 79.1507 1518 3 1 123.75 -77.0757 -114.679 - 67 16.3918 507 3 0 124.201 -78.5894 -115.85 - 67 74.2708 506 3 0 124.221 -78.65 -115.896 - 67 87.9145 505 3 0 124.288 -78.85 -116.042 - 67 2.53069 1628 2 1 145.941 -99.2417 -144.45 - 67 68.1688 1629 2 1 145.95 -99.2437 -144.457 - 67 86.4348 1630 2 1 146.15 -99.2699 -144.643 - 67 188.955 401 2 0 148.088 -99.7958 -145.85 - 67 65.2569 400 2 0 148.635 -99.95 -145.948 - 67 10.1885 1662 2 1 152.707 -101.436 -144.85 - 67 54.2332 1663 2 1 152.75 -101.45 -144.838 - 67 45.8581 1664 2 1 152.95 -101.52 -144.804 - 67 125.881 1665 2 1 153.15 -101.587 -144.772 - 67 62.5627 1666 2 1 153.351 -101.657 -144.753 - 67 63.2236 1667 2 1 153.55 -101.718 -144.757 - 67 52.6281 1668 2 1 153.75 -101.803 -144.817 - 67 6.41469 377 2 0 158.316 -104.736 -145.85 - 67 168.918 376 2 0 158.337 -104.75 -145.857 - 67 19.6648 375 2 0 158.903 -104.95 -145.885 - 67 12.4901 1702 2 1 160.703 -105.469 -144.85 - 67 116.732 1703 2 1 160.75 -105.473 -144.841 - 67 211.248 1704 2 1 160.95 -105.3 -144.498 - 67 30.7516 1512 4 1 122.581 -58.3168 -84.4501 - 67 127.633 542 5 0 119.457 -71.6477 -55.85 - 67 0.963676 1504 4 1 120.953 -63.6199 -84.45 - 67 126.912 1503 4 1 120.95 -63.6205 -84.456 - 67 10.5753 1502 4 1 120.75 -63.7025 -84.8196 - 67 132.104 580 4 0 119.828 -63.9773 -85.8507 - 67 246.417 483 4 0 132.397 -83.2563 -86.2498 - 67 292.663 482 4 0 132.623 -83.45 -86.1271 - 67 54.0157 481 4 0 132.63 -83.6503 -85.9637 - 67 31.1245 1565 4 1 133.282 -83.7388 -84.85 - 67 15.527 1566 4 1 133.35 -83.7302 -84.8237 - 67 144.917 1494 4 1 119.124 -71.8698 -84.45 - 67 23.4734 536 4 0 118.716 -72.8135 -85.8507 - 67 116.008 535 4 0 118.701 -72.8502 -85.9022 - 67 24.1867 534 4 0 118.571 -73.05 -86.167 - 67 59.6938 1420 3 1 104.302 -94.5831 -114.45 - 67 98.6886 1419 3 1 104.15 -94.604 -114.625 - 67 120.655 424 3 0 103.314 -95.2021 -115.85 - 67 16.1124 541 5 0 119.154 -71.8225 -55.85 -Number of digits in this event = 27 -Using G4ParticleGun ... -2.57381 LIN -e- +Number of tracker hits in this event: 165 + 67 139.194 954 10 1 10.9459 95.2639 95.55 + 67 132.203 1375 10 0 10.9464 95.2653 94.15 + 67 114.871 954 9 1 10.958 95.2936 65.55 + 67 179.314 1375 9 0 10.9579 95.2947 64.15 + 67 115.175 954 8 1 10.9577 95.3194 35.55 + 67 314.743 1375 8 0 10.958 95.3197 34.15 + 67 353.937 954 7 1 10.9667 95.3201 5.55 + 67 259.084 1375 7 0 10.966 95.3214 4.15 + 67 453.795 954 6 1 10.9525 95.3509 -24.45 + 67 269.44 1376 6 0 10.952 95.3514 -25.85 + 67 125.977 954 5 1 10.943 95.3606 -54.45 + 67 278.795 1376 5 0 10.9417 95.3612 -55.85 + 67 348.743 954 4 1 10.9166 95.3643 -84.45 + 67 563.273 1376 4 0 10.9155 95.3647 -85.85 + 67 253.028 954 3 1 10.8963 95.3731 -114.45 + 67 234.414 1376 3 0 10.896 95.3738 -115.85 + 67 393.791 954 2 1 10.8971 95.3858 -144.45 + 67 278.35 1376 2 0 10.8976 95.3862 -145.85 + 67 228.913 954 1 1 10.9067 95.3981 -174.45 + 67 138.694 1376 1 0 10.9063 95.3985 -175.85 + 67 462.451 954 0 1 10.8986 95.4102 -204.45 + 67 330.757 1376 0 0 10.8981 95.4097 -205.85 + 67 34.4495 1437 3 0 -84.5157 107.703 -116.25 + 67 207.825 1438 3 0 -84.5744 107.75 -116.149 + 67 1.18923 454 3 1 -89.2466 107.918 -114.85 + 67 54.9822 453 3 1 -89.25 107.918 -114.849 + 67 63.2601 452 3 1 -89.4501 107.907 -114.774 + 67 122.231 451 3 1 -89.6506 107.872 -114.616 + 67 109.766 1095 2 0 -15.2971 39.2473 -146.25 + 67 16.179 1096 2 0 -15.2282 39.25 -145.93 + 67 102.657 824 2 1 -15.2103 39.4574 -144.85 + 67 90.3019 825 2 1 -15.05 39.6207 -144.693 + 67 99.0666 826 2 1 -14.85 39.758 -144.617 + 67 83.2909 827 2 1 -14.65 39.815 -144.56 + 67 152.211 828 2 1 -14.45 39.7768 -144.545 + 67 173.609 829 2 1 -14.25 39.846 -144.689 + 67 140.423 1764 0 0 -34.5605 172.95 -206.171 + 67 243.295 1765 0 0 -34.6999 173.15 -205.986 + 67 79.2051 1766 0 0 -34.799 173.35 -205.89 + 67 3.45476 1767 0 0 -34.7124 173.55 -205.856 + 67 101.582 732 0 1 -33.4798 174.197 -204.85 + 67 233.373 733 0 1 -33.45 174.221 -204.808 + 67 440.091 953 2 1 10.85 95.327 -144.828 + 67 2.47789 319 6 1 -116.335 123.819 -24.85 + 67 100.213 318 6 1 -116.35 123.823 -24.8242 + 67 87.6915 317 6 1 -116.55 123.835 -24.6745 + 67 76.8632 316 6 1 -116.75 123.977 -24.632 + 67 145.887 1375 2 0 10.9491 95.2275 -145.85 + 67 176.812 964 1 1 12.8698 92.7053 -174.45 + 67 1.28011 1362 1 0 12.9602 92.5507 -175.85 + 67 273.047 1361 1 0 12.9606 92.55 -175.856 + 67 122.243 973 0 1 14.782 89.718 -204.45 + 67 152.128 1347 0 0 14.8287 89.5618 -205.85 + 67 193.986 952 1 1 10.6202 95.0904 -174.45 + 67 121.087 1374 1 0 10.6106 95.0694 -175.85 + 67 302.409 951 0 1 10.4065 94.6539 -204.45 + 67 123.75 1372 0 0 10.3907 94.6448 -205.85 + 67 71.6253 1469 4 0 -151.782 114.15 -86.2397 + 67 146.697 1264 1 1 72.8993 58.0523 -174.85 + 67 121.2 953 8 1 10.6841 94.8238 35.1501 + 67 110.047 956 3 1 11.2811 95.5825 -114.45 + 67 227.155 1377 3 0 11.2895 95.6119 -115.85 + 67 119.994 956 2 1 11.4477 96.1979 -144.45 + 67 199.192 1380 2 0 11.45 96.268 -145.85 + 67 119.074 956 1 1 11.421 97.7428 -174.45 + 67 148.335 1389 1 0 11.3967 97.9577 -175.85 + 67 199.514 1410 0 0 10.3412 102.234 -205.85 + 67 186.577 1409 0 0 10.2318 102.15 -206.004 + 67 101.545 1379 2 0 10.825 95.9716 -145.85 + 67 174.296 953 1 1 10.8495 96.3891 -174.45 + 67 112.369 1381 1 0 10.8625 96.4081 -175.85 + 67 140.169 955 0 1 11.1343 96.7965 -204.45 + 67 231.687 1383 0 0 11.15 96.8292 -205.85 + 67 517.814 1385 1 0 10.5504 97.2122 -175.85 + 67 127.95 1377 7 0 10.8599 95.5904 4.14992 + 67 152.51 937 6 1 7.58754 100.605 -24.45 + 67 155.772 1404 6 0 7.44274 100.997 -25.85 + 67 154.637 928 5 1 5.76437 106.453 -54.45 + 67 100.469 1431 5 0 5.77818 106.397 -55.85 + 67 80.965 940 4 1 8.16977 104.051 -84.45 + 67 48.8962 939 4 1 8.04976 103.978 -84.7173 + 67 111.722 1417 4 0 7.37726 103.674 -85.85 + 67 143.283 845 3 1 -10.8732 99.8551 -114.45 + 67 3.35042 844 3 1 -11.05 99.7108 -114.838 + 67 76.6938 1396 3 0 -11.5805 99.4091 -115.85 + 67 40.8286 1395 3 0 -11.6744 99.35 -116.095 + 67 58.9135 763 2 1 -27.3161 91.7736 -144.45 + 67 43.2874 762 2 1 -27.4504 91.7534 -144.507 + 67 80.5545 761 2 1 -27.65 91.7109 -144.487 + 67 137.892 760 2 1 -27.85 91.6166 -144.499 + 67 9.6864 759 2 1 -28.05 91.5506 -144.467 + 67 8.23909 955 6 1 11.05 95.3216 -24.8191 + 67 403.32 1375 6 0 11.0767 95.3282 -25.85 + 67 110.6 958 5 1 11.7855 95.6124 -54.45 + 67 111.629 1377 5 0 11.8243 95.6458 -55.85 + 67 268.637 962 4 1 12.6224 96.2874 -84.45 + 67 110.806 1380 4 0 12.6851 96.3013 -85.85 + 67 121.494 969 3 1 13.9592 96.5205 -114.45 + 67 120.764 1381 3 0 14.0148 96.5291 -115.85 + 67 149.272 975 2 1 15.1562 96.8348 -144.45 + 67 140.08 1383 2 0 15.2141 96.8461 -145.85 + 67 118.868 981 1 1 16.4063 97.1794 -174.45 + 67 46.8161 985 0 1 17.2464 97.5692 -204.45 + 67 58.5403 986 0 1 17.25 97.5742 -204.656 + 67 144.234 1387 0 0 17.269 97.6027 -205.85 + 67 270.942 1403 2 0 17.3314 100.899 -146.25 + 67 220.667 1404 2 0 17.3088 100.95 -145.953 + 67 30.4413 985 2 1 17.2423 101.418 -144.85 + 67 150.818 986 2 1 17.25 101.403 -144.751 + 67 10.4403 987 2 1 17.45 101.492 -144.835 + 67 123.046 959 5 1 11.9068 95.5127 -54.45 + 67 128.709 1373 4 0 12.6602 94.8569 -85.85 + 67 300.989 967 3 1 13.5983 93.0878 -114.45 + 67 61.1025 1364 3 0 13.6306 92.9697 -115.85 + 67 36.3203 1363 3 0 13.6363 92.95 -116.084 + 67 133.186 971 2 1 14.3984 90.5329 -144.45 + 67 92.9084 1351 2 0 14.4423 90.489 -145.85 + 67 157.22 975 1 1 15.2258 89.5009 -174.45 + 67 5.95229 976 1 1 15.25 89.5009 -174.816 + 67 212.864 1347 1 0 15.3199 89.5071 -175.851 + 67 185.219 988 0 1 17.6693 89.8685 -204.45 + 67 19.9123 1349 0 0 17.7252 90.037 -205.85 + 67 90.2258 974 0 1 14.8792 93.1628 -204.45 + 67 156.465 1365 0 0 14.7682 93.3225 -205.85 + 67 9.46895 1366 0 0 14.7412 93.35 -206.209 + 67 73.1661 955 5 1 11.233 95.8448 -54.45 + 67 19.8696 956 5 1 11.25 95.8549 -54.7686 + 67 107.799 1378 5 0 11.3132 95.8893 -55.85 + 67 109.282 965 4 1 13.0765 96.9953 -84.4506 + 67 109.83 1384 4 0 13.134 96.9968 -85.85 + 67 134.636 972 3 1 14.5521 97.5887 -114.45 + 67 199.961 1387 3 0 14.7126 97.6974 -115.85 + 67 118.88 988 2 1 17.7876 99.8044 -144.45 + 67 122.03 1399 2 0 17.9853 99.9688 -145.85 + 67 94.8957 1009 1 1 22.0131 103.681 -174.45 + 67 101.336 1010 1 1 22.05 103.711 -174.764 + 67 199.542 1418 1 0 22.1731 103.811 -175.85 + 67 153.696 1026 0 1 25.2956 106.426 -204.45 + 67 131.14 1432 0 0 25.443 106.617 -205.85 + 67 242.311 975 3 1 15.1326 97.8631 -114.45 + 67 332.545 1389 3 0 15.0672 97.9826 -115.85 + 67 50.8583 952 2 1 10.65 94.7625 -144.674 + 67 117.869 1372 2 0 10.3148 94.6853 -145.85 + 67 33.4337 895 1 1 -1.02935 92.205 -174.45 + 67 81.0022 894 1 1 -1.05 92.2165 -174.55 + 67 217.121 870 0 1 -6.0062 94.6261 -204.45 + 67 22.5916 1380 0 0 -5.54792 96.2819 -205.85 + 67 73.9013 1381 0 0 -5.52688 96.35 -205.908 + 67 72.236 1382 0 0 -5.45497 96.55 -206.091 + 67 72.6503 998 2 1 19.6706 103.519 -144.45 + 67 76.5476 999 2 1 19.85 103.525 -144.685 + 67 153.416 1416 2 0 20.8406 103.494 -145.85 + 67 28.1111 1115 1 1 43.2086 107.528 -174.45 + 67 107.432 1116 1 1 43.25 107.545 -174.512 + 67 16.6372 1117 1 1 43.45 107.633 -174.814 + 67 66.7031 1438 1 0 44.1488 107.901 -175.85 + 67 85.9046 1439 1 0 44.2675 107.95 -176.034 + 67 201.687 1219 0 1 63.9382 115.041 -204.45 + 67 31.5496 1218 0 1 63.85 115.562 -204.76 + 67 74.5134 1484 0 0 63.602 117.021 -205.85 + 67 68.1284 1485 0 0 63.5767 117.15 -205.945 + 67 69.1269 1486 0 0 63.5375 117.35 -206.104 + 67 26.0351 1480 0 0 27.0987 116.225 -205.85 + 67 105.568 1377 6 0 10.7799 95.55 -26.0447 + 67 106.258 1378 6 0 10.9261 95.75 -26.0063 +Number of digits in this event: 86 +Using G4ParticleGun... +Particle energy: 5.15087 LIN +Particle: e- Event: 68 -Number of tracker hits in this event = 139 - 68 128.184 1333 10 1 86.6555 15.5745 95.55 - 68 99.192 977 10 0 86.6529 15.5765 94.15 - 68 318.719 1332 9 1 86.5887 15.6257 65.55 - 68 419.738 977 9 0 86.5836 15.6271 64.15 - 68 107.053 1332 8 1 86.4545 15.6482 35.55 - 68 275.152 977 8 0 86.4506 15.649 34.15 - 68 142.265 1331 7 1 86.3582 15.6548 5.55 - 68 151.013 978 7 0 86.3506 15.6577 4.15 - 68 128.213 1330 6 1 86.1955 15.7289 -24.45 - 68 141.414 978 6 0 86.1896 15.7287 -25.85 - 68 253.144 1330 5 1 86.0737 15.7166 -54.45 - 68 131.424 978 5 0 86.0663 15.712 -55.85 - 68 172.247 1329 4 1 85.9059 15.6075 -84.45 - 68 144.277 977 4 0 85.8986 15.6041 -85.85 - 68 125.552 1328 3 1 85.7531 15.5299 -114.45 - 68 104.404 977 3 0 85.743 15.5229 -115.85 - 68 314.913 1327 2 1 85.5321 15.3784 -144.45 - 68 111.321 976 2 0 85.5172 15.3697 -145.85 - 68 270.367 1325 1 1 85.208 15.1966 -174.45 - 68 141.617 975 1 0 85.1862 15.1955 -175.85 - 68 113.91 1323 0 1 84.7416 15.1978 -204.45 - 68 259.756 975 0 0 84.7199 15.2125 -205.85 - 68 6.95974 1326 1 1 85.2504 14.9257 -174.84 - 68 22.3763 966 1 0 86.6973 13.2878 -175.85 - 68 72.8453 965 1 0 86.7303 13.25 -175.868 - 68 113.74 1337 1 1 87.5279 12.2148 -174.85 - 68 227.111 1338 1 1 87.65 11.9642 -174.723 - 68 184.29 1339 1 1 87.85 11.8141 -174.678 - 68 280.405 977 2 0 85.486 15.5344 -145.85 - 68 120.896 1327 1 1 85.5019 14.4767 -174.45 - 68 154.442 972 1 0 85.6234 14.5112 -175.85 - 68 109.001 1341 0 1 88.2689 15.1899 -204.45 - 68 131.197 1324 1 1 84.9053 15.2529 -174.45 - 68 92.27 976 1 0 84.7616 15.3191 -175.85 - 68 118.012 1309 0 1 81.9853 16.697 -204.45 - 68 288.616 983 0 0 81.8606 16.7514 -205.85 - 68 141.775 978 8 0 86.4559 15.65 34.099 - 68 61.9652 748 8 0 129.323 -30.3028 33.7502 - 68 95.9713 747 8 0 129.413 -30.45 33.8414 - 68 86.514 1548 8 1 129.792 -30.3934 35.15 - 68 218.864 1549 8 1 129.95 -30.2722 35.4011 - 68 26.0631 1550 8 1 130.15 -29.7416 35.5415 - 68 108.155 1330 8 1 86.2469 15.1795 35.55 - 68 141.665 975 8 0 86.2474 15.1049 34.15 - 68 133.742 1329 7 1 85.8747 13.2202 5.5492 - 68 30.5456 1328 7 1 85.85 13.1987 5.24988 - 68 224.022 965 7 0 85.7466 13.1333 4.14991 - 68 111.664 1312 6 1 82.4804 10.7592 -24.45 - 68 29.6921 1311 6 1 82.45 10.7401 -24.7771 - 68 135.575 953 6 0 82.3515 10.6791 -25.85 - 68 98.1238 1299 5 1 79.9141 9.33171 -54.45 - 68 251.139 946 5 0 79.739 9.34122 -55.8504 - 68 151.183 1278 4 1 75.7994 9.61726 -84.45 - 68 157.031 948 4 0 75.5812 9.66644 -85.851 - 68 113.276 1255 3 1 71.1699 10.6728 -114.45 - 68 69.506 1254 3 1 71.05 10.7267 -114.667 - 68 57.6054 954 3 0 70.3634 11.0099 -115.85 - 68 85.1927 955 3 0 70.2625 11.05 -116.023 - 68 90.0621 1169 2 1 53.9991 17.0309 -144.45 - 68 23.8874 1168 2 1 53.85 17.0781 -144.759 - 68 152.392 986 2 0 53.3045 17.262 -145.85 - 68 40.6905 1091 1 1 38.3258 22.5014 -174.45 - 68 75.5095 1090 1 1 38.25 22.5183 -174.585 - 68 133.94 1013 1 0 37.5815 22.7778 -175.85 - 68 17.303 1014 1 0 37.402 22.85 -176.193 - 68 235.332 1012 0 1 22.5618 28.6231 -204.45 - 68 38.1257 1011 0 1 22.45 28.6697 -204.708 - 68 142.242 1044 0 0 21.9335 28.8815 -205.85 - 68 76.7937 1242 1 1 68.6396 0.169157 -174.45 - 68 209.468 903 1 0 67.9601 0.77718 -175.85 - 68 28.5615 1329 6 1 85.864 10.3628 -24.4502 - 68 353.662 1328 6 1 85.8499 10.3597 -24.4669 - 68 253.301 1327 6 1 85.65 10.3486 -24.7242 - 68 49.3329 951 6 0 84.8872 10.4387 -25.8506 - 68 105.672 952 6 0 84.8009 10.45 -25.9882 - 68 74.1291 1250 5 1 70.2003 15.9878 -54.45 - 68 35.4594 1251 5 1 70.25 15.8998 -54.7288 - 68 115.394 977 5 0 70.5601 15.5875 -55.8502 - 68 39.4983 1138 5 0 101.677 47.7446 -56.25 - 68 57.9801 1139 5 0 101.727 47.85 -56.1766 - 68 60.9439 1140 5 0 101.791 48.05 -56.0895 - 68 52.5234 1141 5 0 101.846 48.2502 -56.0309 - 68 58.6833 1142 5 0 101.931 48.45 -55.9813 - 68 27.8364 1143 5 0 102.021 48.6506 -55.9117 - 68 275.524 1410 5 1 102.309 50.408 -54.8498 - 68 175.957 1411 5 1 102.35 51.1422 -54.4901 - 68 127.147 1412 5 1 102.55 51.4351 -54.4817 - 68 186.885 1413 5 1 102.75 51.7677 -54.5884 - 68 246.06 1166 5 0 103.453 53.4381 -55.85 - 68 102.46 1167 5 0 103.459 53.45 -55.8604 - 68 65.4236 1168 5 0 103.566 53.6502 -56.0161 - 68 49.8202 1161 5 0 104.495 52.3889 -56.25 - 68 9.15469 1162 5 0 104.537 52.45 -56.2329 - 68 30.3904 1514 6 1 122.95 61.3237 -24.5952 - 68 408.425 1326 6 1 85.45 10.7029 -24.7543 - 68 7.09287 1325 6 1 85.25 10.7661 -24.843 - 68 122.114 958 6 0 81.2281 11.7793 -25.85 - 68 215.014 959 6 0 81.0096 11.85 -25.9063 - 68 188.792 960 6 0 80.4502 12.0503 -26.0997 - 68 97.0736 1082 6 0 -30.0174 36.5906 -26.2499 - 68 221.764 1083 6 0 -30.0411 36.65 -26.0636 - 68 195.13 749 6 1 -30.1283 37.0924 -24.8499 - 68 25.388 750 6 1 -30.0081 37.2409 -24.45 - 68 35.8549 748 6 1 -30.2501 37.2556 -24.7641 - 68 57.7368 1084 6 0 -31.5564 36.85 -26.153 - 68 53.2829 1085 6 0 -31.6557 37.05 -26.1581 - 68 2.02731 1415 6 0 -41.2481 103.348 -26.25 - 68 72.2064 1416 6 0 -41.2498 103.35 -26.2481 - 68 145.007 1417 6 0 -41.3186 103.55 -26.1297 - 68 61.4943 683 6 1 -43.2621 102.851 -24.85 - 68 78.7565 684 6 1 -43.25 102.803 -24.7129 - 68 224.086 685 6 1 -43.05 102.711 -24.7194 - 68 93.4509 686 6 1 -42.85 102.839 -24.5453 - 68 415.171 1383 0 1 96.8688 7.90972 -204.45 - 68 68.727 1382 0 1 96.75 7.70932 -204.829 - 68 58.8096 930 0 0 95.7549 6.18627 -205.85 - 68 70.6322 929 0 0 95.6971 6.05 -205.939 - 68 85.4309 928 0 0 95.6305 5.84972 -206.062 - 68 12.6224 927 0 0 95.5147 5.65 -206.224 - 68 81.1029 884 0 0 63.4743 -3.08024 -206.25 - 68 103.531 885 0 0 63.336 -3.04997 -206.093 - 68 290.534 1216 0 1 63.2977 -1.56372 -204.85 - 68 119.197 1331 8 1 86.3445 15.4629 35.55 - 68 104.272 1330 7 1 86.1884 16.012 5.55 - 68 127.587 980 7 0 86.168 16.0593 4.15 - 68 101.623 985 6 0 85.6746 17.0527 -25.85 - 68 72.52 1325 5 1 85.0603 18.1099 -54.45 - 68 75.3092 1324 5 1 85.05 18.117 -54.6401 - 68 184.963 990 5 0 84.9841 18.16 -55.85 - 68 131.034 1316 4 1 83.3567 19.0382 -84.45 - 68 110.119 995 4 0 83.2943 19.0943 -85.85 - 68 123.184 1309 3 1 81.9594 20.2771 -114.45 - 68 182.278 1001 3 0 81.9224 20.3768 -115.85 - 68 187.059 1305 2 1 81.1084 22.3536 -144.45 - 68 144.944 1012 2 0 81.0445 22.4831 -145.85 - 68 113.126 1298 1 1 79.7699 25.2368 -174.45 - 68 141.008 1026 1 0 79.7342 25.3778 -175.85 - 68 118.518 1294 0 1 78.8869 28.4457 -204.45 - 68 92.12 1042 0 0 78.8651 28.5955 -205.85 -Number of digits in this event = 65 -Using G4ParticleGun ... -6.25192 LIN -e- +Number of tracker hits in this event: 181 + 68 124.552 553 11 1 -69.3841 -32.8436 125.55 + 68 111.657 736 11 0 -69.3857 -32.841 124.15 + 68 128.97 553 10 1 -69.4203 -32.7904 95.55 + 68 194.781 736 10 0 -69.4237 -32.7867 94.15 + 68 141.512 552 9 1 -69.4749 -32.7124 65.55 + 68 123.425 736 9 0 -69.4772 -32.7118 64.15 + 68 122.846 552 8 1 -69.5277 -32.697 35.55 + 68 122.284 736 8 0 -69.5313 -32.6938 34.15 + 68 101.088 552 7 1 -69.6128 -32.6647 5.55 + 68 124.276 736 7 0 -69.6162 -32.6646 4.15 + 68 161.742 551 6 1 -69.7005 -32.6557 -24.45 + 68 118.74 736 6 0 -69.7024 -32.6548 -25.85 + 68 376.972 551 5 1 -69.7071 -32.6076 -54.45 + 68 428.201 737 5 0 -69.7002 -32.6017 -55.85 + 68 144.721 552 4 1 -69.5656 -32.4552 -84.45 + 68 215.701 738 4 0 -69.5623 -32.4437 -85.85 + 68 108.023 552 3 1 -69.4816 -32.2011 -114.45 + 68 140.358 739 3 0 -69.4797 -32.191 -115.85 + 68 192.631 553 2 1 -69.4205 -32.0045 -144.45 + 68 139.876 740 2 0 -69.4189 -31.9876 -145.85 + 68 310.434 553 1 1 -69.4077 -31.6345 -174.45 + 68 153.073 742 1 0 -69.4037 -31.6249 -175.85 + 68 191.193 553 0 1 -69.3073 -31.4254 -204.45 + 68 130.914 743 0 0 -69.3035 -31.4142 -205.85 + 68 84.4696 554 1 1 -69.25 -31.6378 -174.664 + 68 67.5888 740 1 0 -69.3824 -31.9942 -175.85 + 68 263.665 739 1 0 -69.4243 -32.05 -176.055 + 68 141.436 729 1 0 -78.2028 -34.1099 -176.25 + 68 145.005 728 1 0 -78.0701 -34.2501 -175.961 + 68 250.194 727 1 0 -78.017 -34.4501 -175.961 + 68 265.382 511 1 1 -77.8102 -33.3027 -174.85 + 68 108.579 738 1 0 -69.529 -32.25 -175.988 + 68 53.1353 1147 1 1 49.45 -64.0479 -174.674 + 68 156.18 547 2 0 86.1481 -70.5778 -146.25 + 68 82.8597 546 2 0 85.9095 -70.65 -146.141 + 68 192.454 371 11 1 -105.839 68.795 125.15 + 68 19.1837 370 11 1 -105.95 68.9028 125.234 + 68 370.827 551 4 1 -69.8086 -32.639 -84.45 + 68 80.667 568 3 1 -66.3707 -27.1558 -114.45 + 68 226.689 569 3 1 -66.25 -27.1417 -114.727 + 68 123.304 765 3 0 -65.7797 -27.0074 -115.85 + 68 13.4385 637 2 1 -52.4699 -17.4287 -144.45 + 68 85.9435 638 2 1 -52.45 -17.4194 -144.471 + 68 54.2437 639 2 1 -52.25 -17.3393 -144.683 + 68 156.026 815 2 0 -51.2743 -17.0412 -145.85 + 68 83.4782 791 1 1 -21.7026 -11.0934 -174.45 + 68 105.874 792 1 1 -21.65 -11.0155 -174.562 + 68 64.0391 850 1 0 -20.9398 -9.98527 -175.85 + 68 80.5443 851 1 0 -20.8446 -9.85 -176 + 68 7.97072 852 1 0 -20.6983 -9.65 -176.232 + 68 15.731 896 0 1 -0.823626 16.1861 -204.451 + 68 250.263 895 0 1 -0.85 16.2336 -204.488 + 68 39.9385 894 0 1 -1.05 16.525 -204.76 + 68 75.8383 986 0 0 -1.91685 17.3291 -205.85 + 68 92.5398 987 0 0 -2.05633 17.45 -206.033 + 68 102.24 736 4 0 -69.8385 -32.662 -85.85 + 68 115.898 542 3 1 -71.6306 -31.8216 -114.45 + 68 95.1047 742 3 0 -71.5259 -31.4952 -115.85 + 68 64.2823 743 3 0 -71.5075 -31.4498 -116.033 + 68 55.5604 556 2 1 -68.7234 -23.7221 -144.45 + 68 55.9458 557 2 1 -68.65 -23.7031 -144.646 + 68 124.562 782 2 0 -68.2162 -23.591 -145.85 + 68 38.8295 608 1 1 -58.328 -20.8492 -174.45 + 68 107.527 609 1 1 -58.2499 -20.8728 -174.534 + 68 142.537 610 1 1 -58.05 -20.9437 -174.744 + 68 120.669 793 1 0 -57.1598 -21.3311 -175.85 + 68 87.1586 692 0 1 -41.5127 -28.9582 -204.451 + 68 194.164 691 0 1 -41.65 -29.0154 -204.652 + 68 230.16 753 0 0 -42.7052 -29.3118 -205.85 + 68 91.3367 717 0 0 -57.4103 -36.5079 -206.25 + 68 30.6461 716 0 0 -57.4817 -36.6505 -205.951 + 68 152.851 610 0 1 -57.8965 -36.7855 -204.849 + 68 164.405 674 1 0 -46.8973 -45.1751 -176.25 + 68 92.018 670 1 1 -46.0072 -45.3042 -174.85 + 68 282.089 671 1 1 -45.8499 -45.274 -174.641 + 68 391.785 677 1 0 -46.0556 -44.5122 -175.85 + 68 56.1142 90 1 0 -53.6199 -161.964 -176.25 + 68 63.9194 89 1 0 -53.6023 -162.15 -176.196 + 68 250.323 88 1 0 -53.7136 -162.35 -176.172 + 68 232.307 87 1 0 -53.8774 -162.55 -176.042 + 68 30.5427 86 1 0 -54.1051 -162.75 -176.075 + 68 13.5132 635 1 1 -53.0272 -158.107 -174.85 + 68 19.2206 189 1 0 -49.7857 -142.328 -175.85 + 68 171.814 655 1 1 -49.0104 -138.198 -174.85 + 68 5.1418 676 1 0 -46.1383 -44.65 -176.238 + 68 110.599 111 4 0 -70.1485 -157.765 -86.25 + 68 57.5246 110 4 0 -70.1919 -157.951 -86.0609 + 68 326.015 549 4 1 -70.0872 -158.293 -84.85 + 68 211.776 550 4 1 -70.0498 -158.328 -84.7238 + 68 6.92914 121 4 0 -70.2827 -155.788 -85.85 + 68 194.329 122 4 0 -70.2909 -155.75 -85.876 + 68 189.874 123 4 0 -70.3924 -155.55 -85.9495 + 68 74.991 543 4 1 -71.3289 -156.875 -84.85 + 68 310.899 542 4 1 -71.45 -156.966 -84.705 + 68 176.963 735 4 0 -69.6259 -32.9082 -85.85 + 68 119.202 705 3 0 -66.3845 -38.8865 -115.85 + 68 33.2783 693 5 0 -93.6614 -41.4159 -56.2499 + 68 135.184 692 5 0 -93.7347 -41.45 -56.1523 + 68 193.74 421 5 1 -95.8008 -41.8823 -54.8498 + 68 125.183 420 5 1 -95.95 -41.9436 -54.7649 + 68 180.568 419 5 1 -96.15 -42.0515 -54.6319 + 68 211.445 418 5 1 -96.35 -42.2409 -54.539 + 68 78.5275 679 5 0 -95.5796 -44.0659 -55.85 + 68 79.8903 678 5 0 -95.5012 -44.25 -56.0008 + 68 48.4886 742 5 0 -110.215 -31.5796 -56.25 + 68 58.7238 743 5 0 -110.314 -31.45 -56.1776 + 68 61.8659 744 5 0 -110.438 -31.25 -56.135 + 68 183.695 745 5 0 -110.573 -31.05 -56.0515 + 68 102.828 746 5 0 -110.622 -30.85 -56.0563 + 68 173.222 747 5 0 -110.709 -30.65 -56.0267 + 68 97.7844 748 5 0 -110.728 -30.45 -55.9999 + 68 89.0537 749 5 0 -110.766 -30.25 -56.034 + 68 76.1295 750 5 0 -110.767 -30.05 -56.0211 + 68 330.555 751 5 0 -110.722 -29.8491 -55.9744 + 68 155.962 752 5 0 -110.434 -29.65 -56.1705 + 68 131.766 553 4 1 -69.372 -31.9449 -84.4503 + 68 94.1494 740 4 0 -69.6079 -31.8635 -85.8504 + 68 11.5559 741 4 0 -69.6627 -31.85 -86.1975 + 68 55.2887 530 3 1 -74.0261 -30.799 -114.45 + 68 142.126 529 3 1 -74.05 -30.8058 -114.541 + 68 151.655 747 3 0 -74.2526 -30.5468 -115.85 + 68 108.007 612 5 1 -57.5196 -25.9147 -54.85 + 68 15.2893 527 4 1 -74.6213 -33.9458 -84.45 + 68 104.939 526 4 1 -74.6501 -33.979 -84.4767 + 68 95.6428 525 4 1 -74.85 -34.2084 -84.635 + 68 45.8242 524 4 1 -75.05 -34.439 -84.7796 + 68 128.344 719 4 0 -76.4618 -36.0502 -85.85 + 68 117.768 718 4 0 -76.6432 -36.2501 -85.9775 + 68 96.6479 717 4 0 -76.8239 -36.45 -86.092 + 68 63.2027 716 4 0 -76.9969 -36.65 -86.1874 + 68 40.4243 251 3 1 -129.863 -99.7072 -114.45 + 68 93.6094 250 3 1 -129.95 -99.8357 -114.475 + 68 101.253 249 3 1 -130.15 -100.143 -114.524 + 68 96.2845 248 3 1 -130.35 -100.455 -114.568 + 68 171.59 247 3 1 -130.55 -100.78 -114.589 + 68 150.856 246 3 1 -130.75 -101.091 -114.604 + 68 102.62 245 3 1 -130.95 -101.327 -114.609 + 68 123.666 244 3 1 -131.15 -101.562 -114.614 + 68 114.027 243 3 1 -131.35 -101.786 -114.618 + 68 75.0718 242 3 1 -131.55 -101.997 -114.607 + 68 78.5636 241 3 1 -131.75 -102.172 -114.59 + 68 77.0779 240 3 1 -131.95 -102.321 -114.574 + 68 56.9901 239 3 1 -132.15 -102.48 -114.562 + 68 98.4648 238 3 1 -132.35 -102.632 -114.551 + 68 200.347 237 3 1 -132.55 -102.757 -114.534 + 68 234.479 236 3 1 -132.75 -102.872 -114.495 + 68 224.307 235 3 1 -132.95 -102.999 -114.458 + 68 165.065 234 3 1 -133.274 -103.514 -114.45 + 68 54.404 361 3 0 -131.442 -107.792 -115.85 + 68 66.0835 360 3 0 -131.352 -107.95 -115.934 + 68 55.8256 359 3 0 -131.227 -108.15 -116.029 + 68 54.7787 358 3 0 -131.109 -108.35 -116.073 + 68 70.0178 357 3 0 -131.006 -108.55 -116.152 + 68 32.4224 358 2 1 -108.405 -139.368 -144.45 + 68 89.1106 359 2 1 -108.35 -139.297 -144.536 + 68 41.5905 360 2 1 -108.15 -139.07 -144.76 + 68 47.9007 209 2 0 -107.507 -138.261 -145.85 + 68 130.38 210 2 0 -107.416 -138.15 -146.004 + 68 86.1114 577 1 1 -64.5576 -116.944 -174.45 + 68 116.114 576 1 1 -64.65 -116.938 -174.775 + 68 11.51 320 1 0 -66.681 -115.97 -175.85 + 68 108.569 321 1 0 -66.7269 -115.95 -175.882 + 68 73.9018 322 1 0 -66.9167 -115.75 -176.001 + 68 67.0764 323 1 0 -67.0828 -115.55 -176.013 + 68 15.9162 324 1 0 -67.2106 -115.35 -175.889 + 68 56.6028 558 1 1 -68.3471 -113.952 -174.85 + 68 192.352 557 1 1 -68.45 -113.836 -174.775 + 68 101.43 556 1 1 -68.65 -113.433 -174.737 + 68 110.842 343 1 0 -69.1716 -111.425 -175.85 + 68 99.5756 344 1 0 -69.2079 -111.35 -175.926 + 68 148.645 272 1 0 -77.5461 -125.657 -176.25 + 68 2.40688 191 1 0 -115.525 -141.75 -176.126 + 68 41.5153 203 3 0 -161.499 -139.35 -115.968 + 68 77.216 202 3 0 -161.674 -139.55 -115.921 + 68 104.348 201 3 0 -161.867 -139.75 -115.933 + 68 59.5804 200 3 0 -162.103 -139.95 -116.017 + 68 90.6718 552 10 1 -69.45 -32.8042 95.5086 + 68 58.7783 551 10 1 -69.65 -32.9028 95.2761 + 68 134.059 734 10 0 -71.0321 -33.2452 94.1497 + 68 81.4148 733 10 0 -71.0712 -33.25 94.1211 + 68 64.7429 735 10 0 -71.4546 -33.05 94.0251 +Number of digits in this event: 76 +Using G4ParticleGun... +Particle energy: 9.86728 LIN +Particle: e- Event: 69 -Number of tracker hits in this event = 30 - 69 185.266 1090 7 1 38.0994 -143.42 5.55 - 69 116.894 183 7 0 38.1007 -143.419 4.15 - 69 137.736 1090 6 1 38.1274 -143.395 -24.45 - 69 112.45 183 6 0 38.1304 -143.396 -25.85 - 69 142.764 1090 5 1 38.1916 -143.42 -54.45 - 69 132.438 183 5 0 38.1949 -143.421 -55.85 - 69 197.684 1091 4 1 38.2581 -143.443 -84.45 - 69 169.495 183 4 0 38.2614 -143.444 -85.85 - 69 149.72 1091 3 1 38.3309 -143.471 -114.45 - 69 116.625 183 3 0 38.3358 -143.473 -115.85 - 69 367.056 1091 2 1 38.4382 -143.513 -144.45 - 69 436.13 183 2 0 38.4443 -143.512 -145.85 - 69 261.233 1092 1 1 38.5752 -143.492 -174.45 - 69 119.041 183 1 0 38.583 -143.491 -175.85 - 69 116.813 1093 0 1 38.7302 -143.465 -204.45 - 69 235.86 183 0 0 38.7385 -143.46 -205.85 - 69 22.5957 341 5 1 -111.844 -162.606 -54.85 - 69 103.859 849 2 1 -10.1145 -56.0204 -144.85 - 69 113.387 848 2 1 -10.25 -55.8594 -144.617 - 69 29.9256 570 2 0 98.8903 -66.05 -145.914 - 69 177.708 1327 1 1 85.5518 -146.86 -174.45 - 69 27.5228 1328 1 1 85.65 -146.599 -174.725 - 69 57.897 180 1 0 84.6092 -144.1 -175.85 - 69 72.7375 181 1 0 84.5355 -143.95 -175.933 - 69 281.388 182 1 0 84.4529 -143.75 -176.122 - 69 225.294 1092 0 1 38.5009 -143.585 -204.45 - 69 292.565 1094 1 1 38.9781 -143.528 -174.45 - 69 111.79 1085 0 1 37.0871 -147.126 -204.45 - 69 107.404 163 0 0 36.9854 -147.386 -205.85 - 69 88.0636 182 4 0 38.1746 -143.55 -86.0838 -Number of digits in this event = 17 -Using G4ParticleGun ... -7.23593 LIN -e- +Number of tracker hits in this event: 62 + 69 117.474 586 11 1 -62.8109 -16.8604 125.55 + 69 120.446 815 11 0 -62.8119 -16.8604 124.15 + 69 238.536 586 10 1 -62.8312 -16.8603 95.55 + 69 114.996 815 10 0 -62.8328 -16.8602 94.15 + 69 105.676 585 9 1 -62.8649 -16.8603 65.55 + 69 140.19 815 9 0 -62.8669 -16.86 64.15 + 69 167.782 585 8 1 -62.9046 -16.8537 35.55 + 69 102.375 815 8 0 -62.9068 -16.8528 34.15 + 69 192.815 585 7 1 -62.9514 -16.8322 5.55 + 69 125.234 816 7 0 -62.9552 -16.8316 4.15 + 69 115.021 585 6 1 -63.0308 -16.8175 -24.45 + 69 101.119 816 6 0 -63.0346 -16.8164 -25.85 + 69 95.4619 584 5 1 -63.1147 -16.7954 -54.45 + 69 127.576 816 5 0 -63.1197 -16.7938 -55.85 + 69 405.362 584 4 1 -63.2098 -16.76 -84.45 + 69 241.106 816 4 0 -63.2147 -16.7596 -85.85 + 69 265.969 583 3 1 -63.3067 -16.7464 -114.45 + 69 258.924 816 3 0 -63.3127 -16.7473 -115.85 + 69 196.861 583 2 1 -63.4315 -16.7614 -144.45 + 69 132.073 816 2 0 -63.4363 -16.7656 -145.85 + 69 120.172 582 1 1 -63.5092 -16.8308 -174.45 + 69 285.264 816 1 0 -63.5258 -16.8271 -175.85 + 69 118.831 580 0 1 -63.8634 -16.7264 -204.45 + 69 437.723 816 0 0 -63.8829 -16.7145 -205.85 + 69 19.0929 1112 3 0 -130.327 42.45 -116.231 + 69 52.1609 1030 2 0 -124.988 26.25 -145.987 + 69 85.5965 244 3 1 -131.225 43.5887 -114.85 + 69 68.3937 243 3 1 -131.35 43.7634 -114.606 + 69 102.143 907 1 0 11.9812 1.57008 -176.25 + 69 257.271 581 0 1 -63.7065 -16.6709 -204.45 + 69 95.932 815 4 0 -63.2896 -16.85 -85.8613 + 69 122.081 576 3 1 -64.7234 -18.6059 -114.45 + 69 102.349 807 3 0 -64.7739 -18.6151 -115.85 + 69 154.515 571 2 1 -65.7199 -18.7172 -144.45 + 69 156.499 806 2 0 -65.7503 -18.6937 -145.85 + 69 105.011 567 1 1 -66.4563 -17.8717 -174.45 + 69 14.912 568 1 1 -66.45 -17.8319 -174.782 + 69 256.172 811 1 0 -66.354 -17.6954 -175.85 + 69 7.93084 576 0 1 -64.6573 -16.0759 -204.45 + 69 130.064 577 0 1 -64.65 -16.0707 -204.456 + 69 59.0257 578 0 1 -64.45 -16.0107 -204.694 + 69 2.70803 579 0 1 -64.25 -15.9707 -204.84 + 69 109.336 823 0 0 -63.0825 -15.4131 -205.85 + 69 200.023 824 0 0 -62.8121 -15.25 -206.044 + 69 152.612 779 0 0 -29.9274 -24.1061 -206.25 + 69 23.6156 778 0 0 -29.6414 -24.2501 -205.918 + 69 177.869 753 0 1 -29.3507 -24.8453 -204.85 + 69 238.113 754 0 1 -29.2499 -24.9993 -204.586 + 69 318.203 769 0 0 -28.7599 -26.1714 -205.85 + 69 26.6881 825 0 0 -62.5307 -15.05 -206.161 + 69 149.695 814 2 0 -63.4311 -17.0674 -145.85 + 69 87.8916 581 1 1 -63.6648 -17.736 -174.45 + 69 130.257 582 0 1 -63.5949 -18.9527 -204.45 + 69 147.553 805 0 0 -63.5904 -19.0274 -205.85 + 69 118.433 583 1 1 -63.4494 -16.6989 -174.45 + 69 26.6547 817 1 0 -63.3946 -16.65 -176.13 + 69 68.1931 587 0 1 -62.6455 -15.7682 -204.45 + 69 60.7419 586 0 1 -62.65 -15.782 -204.666 + 69 41.1428 821 0 0 -62.6791 -15.8436 -205.85 + 69 78.7318 820 0 0 -62.6829 -15.85 -205.978 + 69 16.5198 820 10 0 -62.4972 -15.9038 94.15 + 69 115.844 821 10 0 -62.4741 -15.8498 94.0967 +Number of digits in this event: 32 +Using G4ParticleGun... +Particle energy: 9.41452 LIN +Particle: e- Event: 70 -Number of tracker hits in this event = 61 - 70 227.811 940 11 1 8.21197 7.01899 125.55 - 70 151.247 934 11 0 8.21149 7.01857 124.15 - 70 109.564 940 10 1 8.20503 7.00913 95.55 - 70 132.743 934 10 0 8.2046 7.01052 94.15 - 70 165.653 940 9 1 8.1968 7.04319 65.55 - 70 126.648 934 9 0 8.1973 7.04323 64.15 - 70 129.063 940 8 1 8.21107 7.04372 35.55 - 70 97.1732 934 8 0 8.21216 7.04335 34.15 - 70 138.146 940 7 1 8.23712 7.0344 5.55 - 70 139.043 934 7 0 8.23799 7.03367 4.15 - 70 108.858 941 6 1 8.25587 7.02112 -24.45 - 70 108.855 934 6 0 8.25628 7.01987 -25.85 - 70 135.165 941 5 1 8.26262 6.99248 -54.45 - 70 111.889 934 5 0 8.26313 6.99101 -55.85 - 70 113.552 941 4 1 8.27661 6.95909 -84.45 - 70 113.211 934 4 0 8.27645 6.9577 -85.85 - 70 353.123 941 3 1 8.27142 6.91002 -114.45 - 70 106.702 934 3 0 8.27215 6.90794 -115.85 - 70 282.656 941 2 1 8.28122 6.86792 -144.45 - 70 119.713 934 2 0 8.27938 6.86799 -145.85 - 70 149.306 940 1 1 8.24606 6.87572 -174.45 - 70 212.619 934 1 0 8.24327 6.87868 -175.85 - 70 486.578 940 0 1 8.18182 6.94877 -204.45 - 70 146.635 934 0 0 8.17787 6.95467 -205.85 - 70 6.04884 648 11 1 -50.45 -180.146 125.423 - 70 105.65 578 11 0 -84.891 -64.4282 123.75 - 70 138.61 82 2 0 27.4522 -163.584 -146.25 - 70 150.448 81 2 0 27.5043 -163.75 -146.18 - 70 29.8122 1049 6 1 29.85 133.759 -24.8121 - 70 367.773 1048 6 1 29.85 133.83 -24.7342 - 70 113.091 1047 6 1 29.65 134.243 -24.6218 - 70 50.609 441 0 0 173.954 -91.75 -206.218 - 70 91.9754 1105 5 1 41.05 120.82 -54.6011 - 70 270.377 935 3 0 8.43837 7.18742 -115.85 - 70 133.182 959 2 1 11.9198 8.9284 -144.45 - 70 137.286 943 2 0 11.8689 8.7174 -145.85 - 70 117.458 942 2 0 11.8793 8.65 -146.249 - 70 26.7291 968 1 1 13.67 2.31912 -174.45 - 70 115.459 967 1 1 13.65 2.29197 -174.559 - 70 126.644 909 1 0 13.4963 1.96294 -175.85 - 70 7.65457 908 1 0 13.4463 1.85 -176.22 - 70 128.81 865 0 0 8.31904 -6.94163 -205.851 - 70 27.8254 1005 2 0 27.8114 21.1744 -146.25 - 70 173.35 1006 2 0 27.8419 21.25 -146.175 - 70 88.2871 1007 2 0 27.9108 21.4501 -146.067 - 70 49.1524 1008 2 0 27.9934 21.65 -146.146 - 70 96.3654 924 2 1 4.93832 8.52626 -144.45 - 70 104.951 904 1 1 0.982748 9.46022 -174.45 - 70 131.05 946 1 0 0.785033 9.4344 -175.85 - 70 110.539 884 0 1 -3.24266 8.80178 -204.45 - 70 154.1 943 0 0 -3.21354 8.78426 -205.85 - 70 29.9984 942 2 1 8.45 7.33173 -144.72 - 70 241.636 936 2 0 8.46431 7.32143 -145.85 - 70 101.624 943 1 1 8.70918 6.99101 -174.45 - 70 120.851 925 0 0 8.03428 5.21496 -205.85 - 70 120.609 606 1 0 60.8829 -58.65 -176.16 - 70 106.287 939 1 1 8.05 8.94204 -174.462 - 70 111.587 944 1 0 7.97011 9.00367 -175.85 - 70 129.015 930 0 1 6.16851 10.1412 -204.451 - 70 16.617 950 0 0 6.10941 10.2451 -205.85 - 70 117.568 951 0 0 6.10655 10.25 -205.912 -Number of digits in this event = 32 -Using G4ParticleGun ... -6.31141 LIN -e- +Number of tracker hits in this event: 31 + 70 122.156 571 8 1 -65.7451 127.69 35.55 + 70 102 1537 8 0 -65.7459 127.691 34.15 + 70 120.051 571 7 1 -65.7615 127.696 5.55 + 70 180.654 1537 7 0 -65.7622 127.698 4.15 + 70 151.963 571 6 1 -65.7763 127.728 -24.45 + 70 144.442 1537 6 0 -65.7772 127.729 -25.85 + 70 108.944 571 5 1 -65.7978 127.758 -54.45 + 70 141.276 1538 5 0 -65.7986 127.76 -55.85 + 70 104.207 571 4 1 -65.8149 127.782 -84.45 + 70 148.441 1538 4 0 -65.8153 127.783 -85.85 + 70 118.315 571 3 1 -65.8297 127.801 -114.45 + 70 152.885 1538 3 0 -65.8296 127.801 -115.85 + 70 144.604 571 2 1 -65.8281 127.812 -144.45 + 70 118.418 1538 2 0 -65.8286 127.812 -145.85 + 70 120.558 571 1 1 -65.8363 127.809 -174.45 + 70 210.12 1538 1 0 -65.8364 127.811 -175.85 + 70 123.433 571 0 1 -65.8413 127.834 -204.45 + 70 549.196 1538 0 0 -65.8413 127.834 -205.85 + 70 101.527 1582 0 0 -19.2021 136.687 -206.25 + 70 79.2166 1583 0 0 -19.0286 136.75 -206.113 + 70 119.939 1584 0 0 -18.8748 136.95 -205.985 + 70 2.24016 1585 0 0 -18.6389 137.15 -205.858 + 70 69.3231 810 0 1 -17.9811 138.237 -204.85 + 70 41.2106 811 0 1 -17.8495 138.308 -204.817 + 70 277.413 1590 0 0 -17.2208 138.292 -205.85 + 70 32.6379 569 2 1 -66.072 129.039 -144.85 + 70 96.9214 1551 2 0 -66.7788 130.394 -145.85 + 70 746.173 570 0 1 -65.9361 127.872 -204.45 + 70 341.376 1539 0 0 -65.9142 128.027 -205.85 + 70 51.3969 1791 2 0 -88.1811 178.404 -146.25 + 70 119.573 1537 0 0 -65.9518 127.61 -205.85 +Number of digits in this event: 19 +Using G4ParticleGun... +Particle energy: 8.5303 LIN +Particle: e- Event: 71 -Number of tracker hits in this event = 127 - 71 122.04 972 11 1 14.6411 25.9543 125.55 - 71 108.703 1029 11 0 14.6388 25.9533 124.15 - 71 127.644 972 10 1 14.5917 25.9306 95.55 - 71 112.498 1029 10 0 14.59 25.9285 94.15 - 71 160.066 972 9 1 14.5497 25.882 65.55 - 71 106.059 1029 9 0 14.5494 25.8814 64.15 - 71 335.52 972 8 1 14.5493 25.8705 35.55 - 71 334.862 1029 8 0 14.55 25.8674 34.15 - 71 250.809 972 7 1 14.5713 25.7946 5.55 - 71 218.175 1028 7 0 14.5743 25.7898 4.15 - 71 147.835 972 6 1 14.6243 25.7022 -24.45 - 71 160.105 1028 6 0 14.6298 25.6968 -25.85 - 71 235.799 973 5 1 14.7316 25.6046 -54.45 - 71 208.689 1027 5 0 14.7391 25.5982 -55.85 - 71 131.481 974 4 1 14.9902 25.4679 -84.45 - 71 144.229 1027 4 0 14.9917 25.4639 -85.85 - 71 125.113 974 3 1 14.9726 25.3828 -114.45 - 71 119.375 1026 3 0 14.9624 25.3966 -115.85 - 71 115.689 973 2 1 14.7484 25.6596 -144.45 - 71 113.116 1028 2 0 14.7398 25.6746 -145.85 - 71 163.815 972 1 1 14.6146 25.9861 -174.45 - 71 98.4169 1029 1 0 14.6072 26.0077 -175.85 - 71 127.364 972 0 1 14.4856 26.3888 -204.45 - 71 103.222 1031 0 0 14.4679 26.404 -205.85 - 71 63.693 1027 2 0 14.8862 25.4895 -145.85 - 71 24.4286 981 0 1 16.4323 9.86833 -204.45 - 71 141.404 982 0 1 16.4501 9.85061 -204.52 - 71 12.131 947 0 0 16.6753 9.45846 -205.85 - 71 96.9898 946 0 0 16.6809 9.45 -205.883 - 71 70.742 978 1 1 15.7597 31.7673 -174.45 - 71 103.945 979 1 1 15.85 31.5214 -174.598 - 71 15.2721 1051 1 0 16.2194 30.2905 -175.85 - 71 89.9065 1050 1 0 16.2307 30.25 -175.893 - 71 48.4412 1049 1 0 16.2718 30.05 -176.102 - 71 70.5156 560 1 0 51.5806 -67.8635 -176.25 - 71 56.9316 559 1 0 51.6793 -68.05 -176.172 - 71 87.4108 558 1 0 51.7641 -68.2503 -176.092 - 71 61.3029 557 1 0 51.847 -68.45 -175.998 - 71 30.1777 556 1 0 51.9455 -68.65 -175.897 - 71 207.332 1165 1 1 53.0953 -71.0713 -174.85 - 71 166.738 1166 1 1 53.2501 -71.4273 -174.687 - 71 17.8109 1167 1 1 53.45 -71.8667 -174.474 - 71 62.6285 1164 1 1 53.05 -71.8505 -174.662 - 71 9.11131 543 1 0 52.788 -71.2646 -175.85 - 71 110.453 544 1 0 52.7818 -71.2499 -175.881 - 71 104.923 1132 0 1 46.5591 -65.0038 -204.45 - 71 58.5572 1131 0 1 46.45 -65.0365 -204.71 - 71 124.053 574 0 0 46.0566 -65.1472 -205.85 - 71 259.97 846 0 1 -10.6897 -29.054 -204.85 - 71 92.6128 845 0 1 -10.85 -29.2059 -204.636 - 71 91.3108 1176 9 0 50.4623 55.2612 63.75 - 71 313.726 1175 9 0 50.5951 55.25 63.9547 - 71 22.3122 970 2 1 14.1214 25.5586 -144.45 - 71 60.918 969 2 1 14.05 25.5496 -144.487 - 71 50.4014 968 2 1 13.8494 25.5261 -144.568 - 71 50.4629 967 2 1 13.65 25.5056 -144.628 - 71 106.155 966 2 1 13.4499 25.4645 -144.685 - 71 72.8262 965 2 1 13.25 25.4168 -144.744 - 71 37.5618 964 2 1 13.0499 25.3516 -144.825 - 71 150.537 1019 2 0 9.02108 24.0361 -145.85 - 71 46.6341 1018 2 0 8.62348 23.8499 -146.127 - 71 154.771 1030 7 0 14.4727 26.1839 4.15 - 71 131.87 971 6 1 14.388 25.3867 -24.45 - 71 112.348 1026 6 0 14.3983 25.2956 -25.85 - 71 311.386 972 5 1 14.5298 23.4049 -54.4501 - 71 112.382 1017 5 0 14.3827 23.4618 -55.85 - 71 94.5137 958 4 1 11.6892 24.3532 -84.45 - 71 197.975 1021 4 0 11.5675 24.3327 -85.85 - 71 85.4022 946 3 1 9.28018 23.4966 -114.451 - 71 218.365 945 3 1 9.25 23.4925 -114.709 - 71 117.092 1017 3 0 9.11119 23.4994 -115.85 - 71 95.7741 928 2 1 5.77711 23.5827 -144.45 - 71 139.768 1017 2 0 5.61293 23.5836 -145.85 - 71 100.147 910 1 1 2.06521 23.8914 -174.45 - 71 0.887568 1020 1 0 2.06723 24.2494 -175.85 - 71 103.212 1021 1 0 2.06726 24.25 -175.852 - 71 116.046 899 0 1 -0.168837 34.1773 -204.45 - 71 2.05086 898 0 1 -0.25 34.243 -204.836 - 71 111.438 1071 0 0 -0.434498 34.3381 -205.85 - 71 207.915 944 3 1 9.04992 23.4896 -114.574 - 71 56.3358 966 5 1 13.3059 25.0864 -54.45 - 71 143.219 1024 5 0 13.3026 24.9652 -55.85 - 71 92.5375 947 4 1 9.47 22.0267 -84.4502 - 71 53.1164 948 4 1 9.65072 21.9365 -84.515 - 71 70.8978 949 4 1 9.85 21.8317 -84.5919 - 71 67.9422 950 4 1 10.05 21.7234 -84.6626 - 71 78.6759 951 4 1 10.25 21.6212 -84.7207 - 71 66.5736 952 4 1 10.45 21.5186 -84.7834 - 71 1.86077 999 4 0 13.5527 19.8546 -85.85 - 71 137.891 998 4 0 13.5613 19.85 -85.8528 - 71 443.582 997 4 0 14.0238 19.6499 -85.9934 - 71 219.894 996 4 0 14.5781 19.45 -86.0442 - 71 217.957 995 4 0 14.8529 19.25 -86.1656 - 71 146.592 1116 3 1 43.4269 -11.8505 -114.451 - 71 4.74437 1115 3 1 43.25 -11.905 -114.831 - 71 56.717 838 3 0 42.9083 -12.3927 -115.85 - 71 71.229 837 3 0 42.8861 -12.45 -115.987 - 71 10.3415 726 3 0 43.2365 -34.8306 -116.25 - 71 121.374 725 3 0 43.2476 -34.85 -116.207 - 71 28.4426 1120 3 1 44.178 -34.888 -114.85 - 71 120.51 1121 3 1 44.25 -34.8731 -114.766 - 71 226.977 1122 3 1 44.4501 -34.8131 -114.648 - 71 288.472 1123 3 1 44.65 -34.7771 -114.505 - 71 90.2163 718 3 0 44.5437 -36.3534 -115.85 - 71 79.5043 719 3 0 44.45 -36.25 -116.08 - 71 217.173 738 3 0 16.7956 -32.3665 -116.25 - 71 33.0243 737 3 0 16.6455 -32.45 -116.157 - 71 352.558 994 4 1 18.8573 17.1579 -84.85 - 71 120.134 995 4 1 19.0501 17.083 -84.7877 - 71 151.897 996 4 1 19.25 17.03 -84.6632 - 71 158.735 997 4 1 19.45 16.9894 -84.597 - 71 123.162 998 4 1 19.6502 17.0082 -84.5563 - 71 104.944 967 7 1 13.6302 23.9728 5.55 - 71 137.917 1019 7 0 13.6003 23.9045 4.15 - 71 122.712 961 6 1 12.3969 22.7412 -24.45 - 71 118.338 1012 6 0 12.1858 22.519 -25.85 - 71 142.68 939 5 1 8.01179 19.3591 -54.45 - 71 23.7447 938 5 1 7.85 19.2472 -54.7699 - 71 148.272 993 5 0 7.24195 18.84 -55.85 - 71 98.7184 938 5 0 -12.5355 7.75853 -56.25 - 71 121.978 836 5 1 -12.7537 7.78667 -54.85 - 71 90.8369 728 6 0 32.1474 -34.3205 -26.25 - 71 100.512 727 6 0 32.3624 -34.45 -26.1396 - 71 143.793 726 6 0 32.7306 -34.65 -26.0157 - 71 34.3557 725 6 0 33.1824 -34.85 -25.8868 - 71 119.081 1075 6 1 35.0834 -37.1142 -24.85 - 71 106.66 1076 6 1 35.25 -37.3975 -24.6985 -Number of digits in this event = 54 -Using G4ParticleGun ... -7.21351 LIN -e- +Number of tracker hits in this event: 135 + 71 121.874 925 11 1 5.08688 -56.5934 125.55 + 71 182.81 617 11 0 5.08564 -56.5941 124.15 + 71 356.127 925 10 1 5.06194 -56.6089 95.55 + 71 235.974 617 10 0 5.06082 -56.6102 94.15 + 71 254.364 924 9 1 5.04022 -56.6331 65.55 + 71 142.077 617 9 0 5.0391 -56.6339 64.15 + 71 113.933 924 8 1 5.01612 -56.6488 35.55 + 71 135.75 617 8 0 5.01848 -56.6457 34.15 + 71 125.173 924 7 1 4.91857 -56.3737 5.55 + 71 145.246 618 7 0 4.92819 -56.3159 4.15 + 71 139.088 925 6 1 5.18446 -55.073 -24.45 + 71 182.183 625 6 0 5.23222 -55.0385 -25.85 + 71 142.988 930 5 1 6.16567 -54.3505 -54.45 + 71 137.862 628 5 0 6.21584 -54.3352 -55.85 + 71 111.867 936 4 1 7.37498 -53.8449 -84.45 + 71 113.8 631 4 0 7.37893 -53.7582 -85.85 + 71 119.051 936 3 1 7.26171 -51.9725 -114.45 + 71 138.639 640 3 0 7.24009 -51.9548 -115.85 + 71 156.092 932 2 1 6.55584 -51.2525 -144.45 + 71 135.631 643 2 0 6.48085 -51.2527 -145.85 + 71 127.408 925 1 1 5.07896 -51.0825 -174.45 + 71 9.88557 924 1 1 5.04999 -51.1059 -174.821 + 71 279.355 644 1 0 4.96841 -51.1721 -175.85 + 71 163.07 911 0 1 2.36418 -52.36 -204.45 + 71 121.792 638 0 0 2.27248 -52.3564 -205.85 + 71 134.396 935 3 1 7.25 -51.9389 -114.51 + 71 21.6938 643 3 0 7.19864 -51.2893 -115.851 + 71 86.5975 644 3 0 7.19541 -51.25 -115.938 + 71 46.5864 935 2 1 7.1665 -40.708 -144.45 + 71 134.169 934 2 1 7.05 -40.8221 -144.547 + 71 51.0805 933 2 1 6.84997 -41.0723 -144.75 + 71 64.917 689 2 0 6.12 -42.0525 -145.85 + 71 85.2842 688 2 0 5.98709 -42.25 -146.046 + 71 66.2191 475 2 0 -33.7335 -84.8984 -146.25 + 71 105.389 474 2 0 -33.7883 -85.05 -146.097 + 71 59.2964 473 2 0 -33.8843 -85.2501 -145.948 + 71 22.8328 727 2 1 -34.6404 -86.8622 -144.85 + 71 154.262 726 2 1 -34.65 -86.8811 -144.837 + 71 197.323 390 5 0 -4.80779 -102.068 -56.25 + 71 368.826 389 5 0 -4.73828 -102.15 -56.1977 + 71 249.249 557 7 0 -26.426 -68.6462 3.75 + 71 384.774 556 7 0 -26.4347 -68.65 3.75681 + 71 42.5935 293 0 0 -153.108 -121.428 -206.25 + 71 189.968 294 0 0 -153.258 -121.35 -206.174 + 71 78.4711 295 0 0 -153.504 -121.15 -206.115 + 71 184.721 296 0 0 -153.756 -120.95 -206.143 + 71 99.5349 297 0 0 -154.129 -120.75 -206.187 + 71 62.2379 376 0 0 -152.521 -104.86 -206.25 + 71 106.65 377 0 0 -152.458 -104.75 -206.124 + 71 15.2461 378 0 0 -152.276 -104.55 -205.891 + 71 217.711 144 0 1 -151.285 -103.758 -204.85 + 71 74.0591 143 0 1 -151.35 -103.872 -204.541 + 71 76.2445 142 0 1 -151.55 -104.08 -204.674 + 71 51.0599 372 0 0 -153.548 -105.625 -205.85 + 71 114.855 371 0 0 -153.663 -105.75 -205.899 + 71 94.5576 370 0 0 -153.781 -105.95 -206.077 + 71 135.133 924 2 1 4.9658 -56.7516 -144.45 + 71 153.748 615 2 0 5.01485 -56.8851 -145.85 + 71 135.082 930 1 1 6.13844 -59.8732 -174.45 + 71 121.842 600 1 0 6.14331 -59.9983 -175.85 + 71 1.71617 933 0 1 6.65017 -62.7479 -204.45 + 71 117.333 932 0 1 6.65 -62.7489 -204.458 + 71 145.916 585 0 0 6.62906 -62.9335 -205.85 + 71 134.042 925 2 1 5.05 -56.7595 -144.494 + 71 5.2724 926 2 1 5.25 -56.8448 -144.826 + 71 145.369 614 2 0 5.8899 -57.1302 -145.85 + 71 185.482 1015 1 1 23.0973 -63.0893 -174.45 + 71 10.8038 1016 1 1 23.25 -63.2778 -174.802 + 71 44.4109 581 1 0 23.7089 -63.7896 -175.85 + 71 83.6626 580 1 0 23.7689 -63.8501 -175.987 + 71 50.2092 1081 0 1 36.3937 -78.0113 -204.45 + 71 68.5878 1082 0 1 36.4501 -77.9884 -204.613 + 71 182.112 511 0 0 37 -77.7159 -205.851 + 71 46.6055 924 10 1 5.05 -56.6175 95.2621 + 71 110.59 616 10 0 4.99901 -56.6545 94.15 + 71 175.753 917 9 1 3.64043 -57.5685 65.55 + 71 126.183 612 9 0 3.56125 -57.5724 64.15 + 71 108.654 909 8 1 1.99311 -57.8838 35.5497 + 71 146.55 610 8 0 1.88346 -57.9496 34.15 + 71 112.223 898 7 1 -0.405527 -58.8786 5.54995 + 71 137.345 605 7 0 -0.517064 -58.9694 4.14927 + 71 125.09 885 6 1 -2.91885 -60.3976 -24.45 + 71 138.437 597 6 0 -2.96212 -60.5154 -25.85 + 71 174.503 879 5 1 -4.15037 -62.2918 -54.45 + 71 144.352 589 5 0 -4.32041 -62.1365 -55.8501 + 71 152.578 860 4 1 -8.01909 -58.9687 -84.4505 + 71 9.65032 859 4 1 -8.05001 -58.9291 -84.8157 + 71 135.211 606 4 0 -8.13699 -58.8141 -85.85 + 71 250.014 849 3 1 -10.2035 -55.6256 -114.45 + 71 16.5154 848 3 1 -10.25 -55.575 -114.78 + 71 106.723 623 3 0 -10.4239 -55.4222 -115.85 + 71 84.5959 823 2 1 -15.38 -51.0004 -144.45 + 71 16.0182 822 2 1 -15.45 -50.9825 -144.794 + 71 110.096 645 2 0 -15.6525 -50.9355 -145.85 + 71 92.5162 797 1 1 -20.5828 -48.678 -174.45 + 71 26.2043 796 1 1 -20.65 -48.6502 -174.745 + 71 127.159 657 1 0 -20.8517 -48.5176 -175.85 + 71 120.457 769 0 1 -26.1486 -45.104 -204.45 + 71 128.286 676 0 0 -26.1822 -44.7603 -205.85 + 71 16.984 487 5 1 -82.518 146.842 -54.85 + 71 203.416 880 5 1 -4.05 -62.2855 -54.5775 + 71 9.01639 836 0 1 -12.673 -74.1835 -204.45 + 71 110.226 837 0 1 -12.65 -74.2016 -204.497 + 71 16.5607 525 0 0 -11.9793 -75.0074 -205.85 + 71 111.039 524 0 0 -11.9449 -75.05 -205.915 + 71 44.4185 523 0 0 -11.7465 -75.25 -206.211 + 71 98.3795 616 9 0 4.92391 -56.6919 64.15 + 71 427.932 922 8 1 4.53338 -56.3611 35.55 + 71 116.805 618 8 0 4.5327 -56.3504 34.15 + 71 135.681 922 7 1 4.54501 -56.2122 5.55 + 71 171.843 619 7 0 4.49371 -56.1963 4.15 + 71 200.462 917 6 1 3.53665 -55.6328 -24.45 + 71 124.106 622 6 0 3.46419 -55.5757 -25.85 + 71 110.428 907 5 1 1.50501 -53.8011 -54.45 + 71 134.017 631 5 0 1.41327 -53.6828 -55.8507 + 71 3.1319 632 5 0 1.39378 -53.65 -56.2299 + 71 143.758 901 4 1 0.302579 -51.0012 -84.4503 + 71 116.633 646 4 0 0.212626 -50.7759 -85.8501 + 71 137.123 891 3 1 -1.7242 -45.3849 -114.45 + 71 16.7701 674 3 0 -1.72636 -45.0687 -115.85 + 71 88.1177 675 3 0 -1.72699 -45.05 -115.931 + 71 103.418 898 2 1 -0.342638 -37.3769 -144.45 + 71 17.2967 897 2 1 -0.450095 -37.2824 -144.805 + 71 127.29 715 2 0 -0.769226 -37.008 -145.85 + 71 18.7359 855 1 1 -9.02974 -30.2795 -174.45 + 71 134.902 854 1 1 -9.05 -30.2585 -174.497 + 71 34.9413 751 1 0 -9.61394 -29.7091 -175.85 + 71 291.236 752 1 0 -9.66885 -29.65 -175.991 + 71 224.672 798 0 1 -20.4335 -16.6163 -204.45 + 71 168.518 797 0 1 -20.4502 -16.5989 -204.515 + 71 42.7808 818 0 0 -20.7485 -16.2842 -205.85 + 71 78.709 819 0 0 -20.7779 -16.25 -205.996 + 71 107.548 775 2 0 72.2252 -25.0209 -146.25 + 71 13.3816 840 2 0 119.765 -12.0395 -146.25 + 71 33.3177 839 2 0 119.771 -12.05 -146.236 +Number of digits in this event: 69 +Using G4ParticleGun... +Particle energy: 6.74193 LIN +Particle: e- Event: 72 -Number of tracker hits in this event = 171 - 72 214.707 771 11 1 -25.7742 8.83975 125.55 - 72 183.053 943 11 0 -25.7752 8.83967 124.15 - 72 151.406 771 10 1 -25.7925 8.83262 95.55 - 72 199.382 943 10 0 -25.7936 8.83329 94.15 - 72 437.561 771 9 1 -25.8135 8.84884 65.55 - 72 514.818 943 9 0 -25.8142 8.84902 64.15 - 72 376.34 771 8 1 -25.8251 8.85407 35.55 - 72 293.745 944 8 0 -25.8264 8.85503 34.15 - 72 112.247 771 7 1 -25.8497 8.87462 5.55 - 72 297.135 944 7 0 -25.8503 8.87563 4.15 - 72 146.932 770 6 1 -25.8652 8.9022 -24.45 - 72 116.712 944 6 0 -25.8675 8.90703 -25.85 - 72 134.672 770 5 1 -25.9263 8.97874 -54.45 - 72 95.114 944 5 0 -25.9319 8.98794 -55.85 - 72 124.965 769 4 1 -26.0559 9.20215 -84.45 - 72 385.755 945 4 0 -26.1355 9.17687 -85.8503 - 72 99.8203 760 3 1 -27.9603 8.35484 -114.45 - 72 133.584 941 3 0 -28.1311 8.42286 -115.85 - 72 165.88 742 2 1 -31.4649 9.27149 -144.45 - 72 124.85 946 2 0 -31.578 9.36081 -145.85 - 72 66.7051 731 1 1 -33.8339 11.4214 -174.45 - 72 69.1096 730 1 1 -33.85 11.4459 -174.654 - 72 165.088 957 1 0 -33.9469 11.5892 -175.851 - 72 3.45137 717 0 1 -36.6489 15.2124 -204.45 - 72 154.295 716 0 1 -36.65 15.2144 -204.461 - 72 314.042 977 0 0 -36.7901 15.4909 -205.85 - 72 85.3124 974 0 0 -36.4974 14.926 -205.85 - 72 384.943 973 0 0 -36.5491 14.85 -205.998 - 72 42.7542 972 0 0 -36.9413 14.65 -206.068 - 72 81.6244 762 2 1 -27.5149 20.8986 -144.85 - 72 183.192 770 0 1 -26.0185 9.01561 -204.45 - 72 209.166 944 0 0 -26.0324 8.9924 -205.851 - 72 116.512 1073 0 1 34.7341 67.7444 -204.45 - 72 136.162 1074 0 1 34.85 67.8587 -204.556 - 72 63.5995 498 0 1 -80.3103 -51.8163 -204.85 - 72 163.672 497 0 1 -80.45 -51.9375 -204.701 - 72 63.7785 991 10 0 -34.2761 18.2725 93.75 - 72 64.6812 992 10 0 -34.2096 18.45 93.8583 - 72 90.3164 993 10 0 -34.1701 18.6502 93.8672 - 72 69.9552 994 10 0 -34.125 18.8501 93.8253 - 72 80.9315 995 10 0 -34.037 19.05 93.7984 - 72 358.728 996 10 0 -34.0085 19.25 93.8327 - 72 80.5057 997 10 0 -33.9893 19.4501 93.8881 - 72 74.9553 998 10 0 -33.8111 19.6505 93.9087 - 72 66.8261 999 10 0 -33.6419 19.85 93.9917 - 72 118.021 1000 10 0 -33.5105 20.0501 94.0383 - 72 16.9661 1001 10 0 -33.4351 20.25 94.1269 - 72 254.92 731 10 1 -33.7634 22.273 95.1501 - 72 234.556 730 10 1 -33.85 22.3871 95.227 - 72 90.7204 943 8 0 -25.8453 8.84641 34.15 - 72 9.3485 214 8 0 -63.8091 -137.312 33.75 - 72 115.443 942 8 0 -25.7484 8.55763 34.15 - 72 106.434 766 7 1 -26.7262 8.87562 5.55 - 72 114.401 761 6 1 -27.8164 8.53571 -24.45 - 72 109.467 942 6 0 -27.9023 8.54009 -25.85 - 72 39.6442 753 5 1 -29.4447 8.48672 -54.45 - 72 64.0419 752 5 1 -29.45 8.4898 -54.5879 - 72 112.555 942 5 0 -29.496 8.50792 -55.85 - 72 148.202 748 4 1 -30.3243 9.12329 -84.45 - 72 144.955 741 3 1 -31.7169 8.57187 -114.45 - 72 144.898 942 3 0 -31.8271 8.55058 -115.85 - 72 123.317 730 2 1 -33.9409 8.64886 -144.45 - 72 114.22 941 2 0 -34.1868 8.33827 -145.85 - 72 106.473 704 1 1 -39.2025 2.06303 -174.45 - 72 20.3804 703 1 1 -39.25 2.03419 -174.826 - 72 105.099 909 1 0 -39.3805 1.95299 -175.85 - 72 92.6454 683 0 1 -43.2806 -0.05 -204.633 - 72 97.7609 899 0 0 -43.4404 -0.164944 -205.85 - 72 278.051 990 2 0 -82.1981 18.1162 -146.25 - 72 57.6338 989 2 0 -82.4342 18.0499 -145.897 - 72 129.542 773 7 1 -25.3647 8.63298 5.55 - 72 107.278 942 7 0 -25.3227 8.61656 4.15 - 72 130 777 6 1 -24.5193 8.34667 -24.45 - 72 96.0094 941 6 0 -24.4987 8.31789 -25.85 - 72 106.799 779 5 1 -24.1123 7.67705 -54.45 - 72 119.853 937 5 0 -24.0997 7.64393 -55.85 - 72 106.097 780 4 1 -23.8833 6.85824 -84.45 - 72 323.423 934 4 0 -23.8731 6.88015 -85.85 - 72 117.948 781 3 1 -23.7329 7.32586 -114.45 - 72 112.99 936 3 0 -23.7343 7.35583 -115.85 - 72 94.8442 781 2 1 -23.7401 7.99246 -144.45 - 72 97.1844 939 2 0 -23.7336 8.0355 -145.85 - 72 120.281 782 1 1 -23.6275 8.91442 -174.45 - 72 336.569 944 1 0 -23.5953 8.93481 -175.85 - 72 301.093 785 0 1 -23.0208 9.38704 -204.45 - 72 116.846 946 0 0 -22.9983 9.4271 -205.85 - 72 11.6696 512 5 0 -19.0058 -77.6358 -56.25 - 72 142.247 511 5 0 -19.0028 -77.65 -56.2318 - 72 324.848 909 5 0 75.0631 2.01996 -56.25 - 72 119.781 910 5 0 75.2346 2.05008 -56.1495 - 72 35.6225 908 5 0 75.496 1.85 -55.9398 - 72 79.5926 784 3 1 -23.1907 6.45684 -114.45 - 72 54.8061 783 3 1 -23.25 6.4565 -114.686 - 72 148.534 931 3 0 -23.6093 6.42773 -115.85 - 72 12.4795 740 2 1 -32.0301 5.69757 -144.45 - 72 166.231 739 2 1 -32.05 5.69736 -144.491 - 72 99.3987 928 2 0 -32.6132 5.81247 -145.85 - 72 19.5219 929 2 0 -32.7338 5.85 -146.171 - 72 18.2212 672 1 1 -45.6147 8.53055 -174.45 - 72 81.0937 671 1 1 -45.65 8.53558 -174.493 - 72 26.9174 670 1 1 -45.85 8.59337 -174.777 - 72 36.9536 587 0 1 -62.5528 13.2929 -204.45 - 72 112.657 588 0 1 -62.45 13.3285 -204.543 - 72 55.6337 589 0 1 -62.25 13.3988 -204.715 - 72 13.4602 969 0 0 -60.9921 14.0304 -205.85 - 72 155.097 970 0 0 -60.9517 14.05 -205.884 - 72 71.6196 985 0 0 -46.1506 17.2344 -206.25 - 72 55.5269 789 2 1 -22.1523 6.1885 -144.45 - 72 92.5925 788 2 1 -22.25 6.07899 -144.604 - 72 300.404 924 2 0 -23.7985 5.00739 -145.85 - 72 50.9166 1134 2 0 -87.3844 46.9635 -146.25 - 72 76.3451 1135 2 0 -87.4541 47.0501 -146.082 - 72 124.196 461 2 1 -87.6618 47.5196 -144.85 - 72 70.6207 1054 3 0 -84.3935 31.0012 -116.25 - 72 65.8686 1053 3 0 -84.3716 30.8494 -116.077 - 72 203.486 479 3 1 -84.2452 30.2087 -114.85 - 72 67.4178 902 6 1 0.527657 -129.7 -24.45 - 72 99.2167 841 3 0 -22.8748 -11.6768 -116.25 - 72 62.1965 779 3 1 -24.112 -12.5447 -114.85 - 72 86.9971 778 3 1 -24.25 -12.6128 -114.676 - 72 53.9528 777 3 1 -24.45 -12.6791 -114.481 - 72 74.0988 776 3 1 -24.65 -12.5554 -114.487 - 72 185.893 775 3 1 -24.85 -12.3682 -114.496 - 72 23.7308 774 3 1 -25.05 -12.2641 -114.467 - 72 120.723 770 4 1 -25.8775 8.86742 -84.45 - 72 141.945 943 4 0 -25.8848 8.72045 -85.85 - 72 92.952 773 3 1 -25.25 5.82053 -114.509 - 72 202.261 927 3 0 -25.4216 5.57057 -115.85 - 72 263.876 760 2 1 -27.8848 -3.38836 -144.45 - 72 44.7664 876 2 0 -27.9309 -4.73703 -145.85 - 72 185.119 875 2 0 -27.9339 -4.85 -145.963 - 72 49.6025 874 2 0 -27.9205 -5.05011 -146.145 - 72 73.0402 780 1 1 -24.0054 -35.6186 -174.45 - 72 58.8305 781 1 1 -23.85 -35.6219 -174.678 - 72 127.695 722 1 0 -23.2687 -35.5895 -175.85 - 72 224.852 819 0 1 -16.0911 -29.1036 -204.45 - 72 11.7513 818 0 1 -16.25 -29.3135 -204.803 - 72 126.795 750 0 0 -16.7697 -29.9216 -205.85 - 72 14.4894 749 0 0 -16.8527 -30.05 -206.202 - 72 25.9151 689 0 0 -33.3915 -42.2337 -206.25 - 72 315.948 688 0 0 -33.4918 -42.25 -206.208 - 72 34.8666 864 2 0 -29.8539 -7.20606 -145.85 - 72 166.868 863 2 0 -29.8873 -7.25025 -145.873 - 72 106.842 771 4 1 -25.8445 8.8935 -84.45 - 72 93.7332 946 4 0 -25.6547 9.25 -85.9012 - 72 9.6115 796 3 1 -20.6636 17.5303 -114.45 - 72 135.367 797 3 1 -20.65 17.5348 -114.479 - 72 277.004 988 3 0 -19.9909 17.6629 -115.85 - 72 76.3066 875 2 1 -4.96617 20.2413 -144.45 - 72 75.3053 876 2 1 -4.85 20.34 -144.702 - 72 68.7082 1003 2 0 -4.3441 20.7917 -145.85 - 72 99.3109 1004 2 0 -4.27645 20.85 -146.002 - 72 99.2682 917 1 1 3.57525 20.6281 -174.45 - 72 80.5402 916 1 1 3.45 20.8751 -174.667 - 72 23.0061 1008 1 0 2.74747 21.8056 -175.85 - 72 116.696 1009 1 0 2.71102 21.8501 -175.912 - 72 7.57878 1010 1 0 2.58752 22.05 -176.232 - 72 184.393 864 0 1 -7.08524 39.6793 -204.45 - 72 36.6204 865 0 1 -7.05 40.1222 -204.782 - 72 198.455 1097 0 0 -5.08538 39.633 -205.851 - 72 32.7611 1305 0 0 31.02 81.1411 -206.25 - 72 147.891 1306 0 0 31.068 81.25 -206.221 - 72 63.2971 1307 0 0 31.1674 81.45 -206.141 - 72 97.9318 1308 0 0 31.2745 81.65 -206.023 - 72 37.2177 1309 0 0 31.374 81.8505 -205.913 - 72 84.0398 1060 0 1 32.1662 83.7648 -204.85 - 72 167.858 1061 0 1 32.25 83.9164 -204.753 - 72 159.669 1062 0 1 32.4502 84.4788 -204.466 - 72 51.0934 1063 0 1 32.65 84.6272 -204.768 - 72 101.681 1327 0 0 33.7994 85.5162 -205.85 - 72 100.236 1328 0 0 34.0145 85.65 -206.061 -Number of digits in this event = 66 -Using G4ParticleGun ... -4.00793 LIN -e- +Number of tracker hits in this event: 26 + 72 131.095 1288 10 1 77.7755 64.4074 95.55 + 72 126.008 1221 10 0 77.7757 64.4074 94.15 + 72 115.136 1288 9 1 77.7774 64.4088 65.55 + 72 118.623 1221 9 0 77.7777 64.4083 64.15 + 72 139.617 1288 8 1 77.7817 64.4023 35.55 + 72 297.84 1221 8 0 77.7813 64.4018 34.15 + 72 112.976 1288 7 1 77.7708 64.3977 5.55 + 72 109.259 1221 7 0 77.7697 64.3968 4.15 + 72 141.512 1288 6 1 77.7461 64.3777 -24.45 + 72 104.808 1221 6 0 77.7434 64.3768 -25.85 + 72 113.132 1288 5 1 77.6887 64.3561 -54.45 + 72 122.434 1221 5 0 77.6855 64.3551 -55.85 + 72 214.155 1287 4 1 77.6198 64.3349 -84.45 + 72 144.714 1221 4 0 77.6168 64.3336 -85.85 + 72 108.192 1287 3 1 77.5548 64.313 -114.45 + 72 156.169 1221 3 0 77.5534 64.3111 -115.85 + 72 132.811 1287 2 1 77.5208 64.2683 -144.45 + 72 268.447 1221 2 0 77.5188 64.2675 -145.85 + 72 113.101 1287 1 1 77.4759 64.2515 -174.45 + 72 150.578 1221 1 0 77.473 64.251 -175.85 + 72 107.606 1286 0 1 77.4147 64.2432 -204.45 + 72 101.862 1220 0 0 77.4131 64.242 -205.85 + 72 9.05079 524 1 1 -75.05 44.7422 -174.69 + 72 112.003 523 1 1 -75.2501 44.7229 -174.587 + 72 46.1602 1644 0 1 149.15 175.876 -204.833 + 72 127.39 1645 0 1 149.15 176.068 -204.558 +Number of digits in this event: 14 +Using G4ParticleGun... +Particle energy: 9.04096 LIN +Particle: e- Event: 73 -Number of tracker hits in this event = 109 - 73 109.707 568 11 1 -66.2864 9.81236 125.55 - 73 111.65 948 11 0 -66.2874 9.81159 124.15 - 73 115.168 568 10 1 -66.307 9.79283 95.55 - 73 110.646 948 10 0 -66.3106 9.79167 94.15 - 73 154.216 568 9 1 -66.3812 9.76943 65.55 - 73 120.912 948 9 0 -66.3828 9.76772 64.15 - 73 117.157 568 8 1 -66.4243 9.72983 35.55 - 73 132.221 948 8 0 -66.4304 9.72773 34.15 - 73 194.094 567 7 1 -66.5649 9.66114 5.55 - 73 117.875 948 7 0 -66.5619 9.66046 4.15 - 73 207.936 567 6 1 -66.498 9.60455 -24.45 - 73 178.231 947 6 0 -66.4927 9.60715 -25.85 - 73 155.766 568 5 1 -66.3835 9.67776 -54.45 - 73 127.35 948 5 0 -66.3657 9.6919 -55.85 - 73 151.034 570 4 1 -65.9864 9.92563 -84.45 - 73 137.97 949 4 0 -65.972 9.94274 -85.85 - 73 117.236 571 3 1 -65.6694 10.3068 -114.45 - 73 148.299 951 3 0 -65.6615 10.3249 -115.85 - 73 123.105 572 2 1 -65.5186 10.6426 -144.45 - 73 101.689 953 2 0 -65.5214 10.6585 -145.85 - 73 110.777 572 1 1 -65.5513 10.9795 -174.45 - 73 120.614 954 1 0 -65.5563 10.9889 -175.85 - 73 224.815 571 0 1 -65.6557 11.1632 -204.45 - 73 105.542 955 0 0 -65.6733 11.1759 -205.85 - 73 78.2253 573 2 1 -65.4427 10.6889 -144.45 - 73 100.151 574 2 1 -65.2498 10.7937 -144.661 - 73 4.03569 575 2 1 -65.05 10.9137 -144.839 - 73 210.577 957 2 0 -63.9385 11.5906 -145.85 - 73 340.722 958 2 0 -63.8445 11.65 -145.934 - 73 52.5872 959 2 0 -63.5432 11.85 -146.174 - 73 183.546 867 1 1 -6.52391 32.0513 -174.45 - 73 476.386 868 1 1 -6.45 32.0486 -174.657 - 73 141.017 869 1 1 -6.24915 33.4925 -174.786 - 73 91.161 870 1 1 -6.05 33.4458 -174.671 - 73 245.922 871 1 1 -5.84966 33.3944 -174.662 - 73 12.351 956 1 1 11.25 111.469 -174.616 - 73 94.9042 956 2 0 -63.212 11.45 -146.137 - 73 62.0227 572 0 1 -65.65 9.68228 -204.693 - 73 82.5417 950 0 0 -64.5949 10.136 -205.85 - 73 61.1352 951 0 0 -64.4506 10.2501 -206.105 - 73 31.7234 1016 3 0 -12.1212 23.25 -115.93 - 73 94.7922 1015 3 0 -11.8551 23.25 -115.922 - 73 12.7905 842 3 1 -11.4755 23.8287 -114.85 - 73 90.9347 1030 3 0 -11.1799 26.1712 -115.85 - 73 161.303 569 3 1 -66.1097 9.75996 -114.45 - 73 11.9107 948 3 0 -66.116 9.65432 -115.851 - 73 116.596 947 3 0 -66.1158 9.65 -115.915 - 73 152.525 559 2 1 -68.2182 6.59258 -144.45 - 73 48.3449 930 2 0 -68.2021 6.11618 -145.85 - 73 70.7857 929 2 0 -68.1946 6.05 -146.015 - 73 150.098 560 1 1 -67.9542 -9.35588 -174.45 - 73 94.492 561 1 1 -67.85 -9.72621 -174.726 - 73 13.3156 843 1 0 -67.2507 -11.4129 -175.85 - 73 64.3876 842 1 0 -67.2378 -11.4502 -175.873 - 73 61.7791 841 1 0 -67.1825 -11.65 -175.99 - 73 70.596 840 1 0 -67.1236 -11.85 -176.106 - 73 16.8905 839 1 0 -67.0532 -12.05 -176.223 - 73 174.576 671 0 1 -45.7536 -66.8797 -204.451 - 73 172.147 670 0 1 -45.8501 -66.9339 -204.498 - 73 152.687 669 0 1 -46.05 -67.0667 -204.613 - 73 93.4946 668 0 1 -46.25 -67.2214 -204.801 - 73 71.5958 558 0 0 -47.4223 -68.2985 -205.85 - 73 66.7078 557 0 0 -47.593 -68.4502 -205.997 - 73 77.9997 556 0 0 -47.7827 -68.6503 -206.141 - 73 60.71 555 0 0 -47.9643 -68.85 -206.216 - 73 26.5561 20 0 0 -142.134 -176.078 -206.25 - 73 129.252 19 0 0 -142.197 -176.15 -206.225 - 73 149.579 18 0 0 -142.376 -176.35 -206.142 - 73 326.382 17 0 0 -142.66 -176.55 -206.127 - 73 57.0615 667 0 1 -46.4502 -66.5852 -204.489 - 73 37.2546 666 0 1 -46.65 -66.6166 -204.487 - 73 103.841 849 1 0 -69.2034 -10.1179 -175.85 - 73 187.516 562 0 1 -67.5054 9.11091 -204.45 - 73 418.834 563 0 1 -67.45 9.10216 -204.569 - 73 142.159 943 0 0 -66.7775 8.79713 -205.85 - 73 231.85 561 0 1 -67.65 9.07626 -204.474 - 73 84.3358 941 0 0 -68.1245 8.38234 -205.85 - 73 102.678 940 0 0 -68.2331 8.25 -206.108 - 73 338.714 566 0 1 -66.8107 9.68757 -204.45 - 73 433.611 948 0 0 -66.817 9.68914 -205.85 - 73 32.3232 1240 7 0 94.7066 68.05 3.78428 - 73 255.957 1372 7 1 94.7342 68.1864 5.15 - 73 112.187 1373 7 1 94.75 68.111 5.2815 - 73 564.159 565 0 1 -66.8502 9.70559 -204.464 - 73 114.094 564 0 1 -67.0504 9.79711 -204.594 - 73 8.67824 949 0 0 -66.8755 9.85001 -206.227 - 73 139.508 947 0 0 -66.8007 9.51501 -205.85 - 73 59.483 1271 6 0 -62.7216 74.25 -25.9752 - 73 159.853 568 4 1 -66.3059 9.67153 -84.45 - 73 71.8453 569 4 1 -66.25 9.64083 -84.6221 - 73 182.163 946 4 0 -65.8833 9.37022 -85.85 - 73 47.5679 623 3 1 -55.3692 1.39421 -114.45 - 73 85.409 622 3 1 -55.45 1.34178 -114.577 - 73 65.6636 902 3 0 -56.5485 0.558252 -115.85 - 73 172.905 901 3 0 -56.6736 0.45 -115.997 - 73 49.5446 900 3 0 -56.8763 0.25 -116.189 - 73 23.7787 1059 6 0 92.3076 32.0282 -26.25 - 73 223.909 1060 6 0 92.3411 32.05 -26.22 - 73 224.175 947 4 0 -66.1108 9.48141 -85.85 - 73 178.537 588 3 1 -62.285 7.05434 -114.45 - 73 129.895 936 3 0 -62.2823 7.25946 -115.85 - 73 111.241 597 2 1 -60.5742 9.62945 -144.45 - 73 133.719 949 2 0 -60.4179 9.91698 -145.85 - 73 53.1415 611 1 1 -57.7163 16.4524 -174.45 - 73 127.479 612 1 1 -57.6498 16.4598 -174.626 - 73 135.596 981 1 0 -57.2282 16.4486 -175.85 - 73 284.017 972 0 0 -45.4156 14.6243 -205.85 - 73 75.1975 971 0 0 -45.032 14.4494 -206.119 - 73 47.8219 985 0 0 -50.2995 17.2327 -206.25 -Number of digits in this event = 51 -Using G4ParticleGun ... -5.6689 LIN -e- +Number of tracker hits in this event: 95 + 73 156.968 234 8 1 -133.227 31.1207 35.55 + 73 108.762 1055 8 0 -133.227 31.1203 34.15 + 73 109.645 234 7 1 -133.217 31.114 5.55 + 73 175.148 1055 7 0 -133.217 31.114 4.15 + 73 374.354 234 6 1 -133.212 31.1001 -24.45 + 73 118.191 1055 6 0 -133.212 31.0984 -25.85 + 73 104.226 234 5 1 -133.209 31.0631 -54.45 + 73 155.679 1055 5 0 -133.209 31.0616 -55.85 + 73 139.694 234 4 1 -133.199 31.0301 -84.45 + 73 111.5 1054 4 0 -133.199 31.0289 -85.85 + 73 116.909 234 3 1 -133.203 31.0063 -114.45 + 73 177.219 1054 3 0 -133.204 31.0041 -115.85 + 73 139.955 234 2 1 -133.222 30.9609 -144.45 + 73 97.7842 1054 2 0 -133.223 30.9586 -145.85 + 73 136.092 234 1 1 -133.246 30.9132 -174.45 + 73 189.971 1054 1 0 -133.247 30.911 -175.85 + 73 302.313 234 0 1 -133.27 30.8708 -204.45 + 73 246.022 1054 0 0 -133.27 30.8696 -205.85 + 73 35.8961 1123 4 1 44.759 95.6391 -84.45 + 73 69.2266 1593 7 0 123.775 138.75 3.99768 + 73 26.1814 233 0 1 -133.35 30.8044 -204.738 + 73 131.524 1052 0 0 -133.599 30.5685 -205.85 + 73 16.3833 43 0 1 -171.353 65.8185 -204.85 + 73 197.73 42 0 1 -171.55 65.9156 -204.688 + 73 84.9574 41 0 1 -171.75 66.2122 -204.7 + 73 33.2591 40 0 1 -171.95 66.1852 -204.796 + 73 250.932 1228 0 0 -172.186 65.7024 -205.85 + 73 73.0808 235 1 1 -133.136 30.8474 -174.45 + 73 64.7956 236 1 1 -132.95 30.7799 -174.642 + 73 67.1892 1051 1 0 -132.462 30.3251 -175.85 + 73 60.1821 1050 1 0 -132.4 30.2498 -176.043 + 73 106.714 284 0 1 -123.178 16.8736 -204.45 + 73 120.751 985 0 0 -123.273 17.0556 -205.85 + 73 92.8635 233 1 1 -133.35 30.8491 -174.51 + 73 43.8599 1055 1 0 -133.563 31.05 -175.936 + 73 74.7056 229 6 1 -134.22 42.8967 -24.4501 + 73 80.3739 230 6 1 -134.15 42.8025 -24.6072 + 73 26.7314 1109 6 0 -133.639 41.947 -25.8506 + 73 92.6438 1108 6 0 -133.607 41.8499 -25.9873 + 73 4.14515 1107 6 0 -133.584 41.65 -26.2287 + 73 147.129 228 5 1 -134.378 11.8534 -54.45 + 73 182.465 956 5 0 -134.726 11.372 -55.85 + 73 37.5221 955 5 0 -134.847 11.25 -56.1607 + 73 132.823 946 5 0 -160.946 9.28396 -56.2496 + 73 134.483 96 5 1 -160.847 9.9682 -54.85 + 73 63.4293 97 5 1 -160.75 10.2526 -54.5252 + 73 51.7493 98 5 1 -160.55 10.3074 -54.4971 + 73 59.8128 99 5 1 -160.35 10.275 -54.5323 + 73 68.3064 100 5 1 -160.15 10.1636 -54.6168 + 73 105.471 101 5 1 -159.95 9.98122 -54.6824 + 73 55.7032 102 5 1 -159.75 9.83808 -54.6206 + 73 138.046 103 5 1 -159.55 9.78607 -54.5933 + 73 125.429 104 5 1 -159.35 9.76069 -54.562 + 73 403.322 945 5 0 -159.632 9.20037 -55.85 + 73 41.0181 944 5 0 -159.704 9.05 -55.9907 + 73 156.9 126 4 1 -154.843 1.76255 -84.45 + 73 201.639 904 4 0 -153.787 0.880679 -85.8501 + 73 73.722 903 4 0 -153.725 0.85 -85.8954 + 73 115.627 905 4 0 -153.281 1.05 -85.9444 + 73 122.948 906 4 0 -153.188 1.25 -85.9902 + 73 230.384 132 4 1 -153.57 1.47647 -84.8499 + 73 13.2036 235 6 1 -133.15 31.0345 -24.7903 + 73 124.233 1053 6 0 -132.952 30.83 -25.85 + 73 14.496 269 5 1 -126.347 25.7668 -54.4501 + 73 131.15 268 5 1 -126.35 25.7551 -54.4844 + 73 104.932 1026 5 0 -126.516 25.3658 -55.8501 + 73 116.914 250 4 1 -129.975 18.1261 -84.4501 + 73 66.7753 991 4 0 -130.335 18.4059 -85.85 + 73 64.5251 992 4 0 -130.398 18.45 -86.0679 + 73 98.1081 204 3 1 -139.211 22.8574 -114.45 + 73 129.623 1014 3 0 -139.243 22.9048 -115.85 + 73 202.291 194 2 1 -141.23 25.306 -144.45 + 73 118.321 1027 2 0 -141.591 25.4765 -145.85 + 73 29.7916 168 1 1 -146.542 31.2574 -174.451 + 73 68.6581 167 1 1 -146.55 31.2778 -174.576 + 73 110.81 1057 1 0 -146.677 31.4517 -175.85 + 73 126.349 136 0 1 -152.763 34.2094 -204.45 + 73 119.38 1070 0 0 -153.144 34.1838 -205.85 + 73 41.2712 1071 0 0 -153.304 34.25 -206.114 + 73 19.891 1058 6 0 -133.591 31.8041 -25.85 + 73 129.214 1059 6 0 -133.618 31.8502 -25.9381 + 73 161.686 186 5 1 -142.899 49.9772 -54.4501 + 73 147.365 187 5 1 -142.75 50.3332 -54.6566 + 73 100.646 188 5 1 -142.55 50.6978 -54.7774 + 73 102.165 189 5 1 -142.35 51.0376 -54.7688 + 73 107.975 190 5 1 -142.15 51.3641 -54.7168 + 73 72.5516 191 5 1 -141.95 51.5921 -54.7477 + 73 105.796 1162 5 0 -140.375 52.4989 -55.85 + 73 121.404 1163 5 0 -140.119 52.65 -56.0295 + 73 55.1182 1164 5 0 -139.736 52.85 -56.1931 + 73 3.6077 1645 5 0 -58.2838 149.333 -56.25 + 73 73.7059 1646 5 0 -58.2824 149.35 -56.2428 + 73 107.277 1647 5 0 -58.283 149.55 -56.147 + 73 55.8783 1648 5 0 -58.3037 149.751 -56.1269 + 73 27.4338 1649 5 0 -58.2995 149.95 -56.215 +Number of digits in this event: 38 +Using G4ParticleGun... +Particle energy: 8.45411 LIN +Particle: e- Event: 74 -Number of tracker hits in this event = 162 - 74 127.434 1070 10 1 34.1432 -88.5173 95.55 - 74 152.151 457 10 0 34.1432 -88.5167 94.15 - 74 113.823 1070 9 1 34.1397 -88.5149 65.55 - 74 109.533 457 9 0 34.1415 -88.5148 64.15 - 74 414.693 1070 8 1 34.1831 -88.5095 35.55 - 74 387.656 457 8 0 34.1844 -88.5093 34.15 - 74 662.591 1070 7 1 34.2136 -88.5043 5.55 - 74 454.35 457 7 0 34.2151 -88.5049 4.15 - 74 134.468 1071 6 1 34.2523 -88.5071 -24.45 - 74 105.922 457 6 0 34.2547 -88.506 -25.85 - 74 271.348 1071 5 1 34.2999 -88.4886 -54.45 - 74 226.522 457 5 0 34.3007 -88.4884 -55.85 - 74 507.306 1071 4 1 34.3258 -88.5346 -84.45 - 74 109.087 457 4 0 34.3257 -88.5368 -85.85 - 74 408.805 1071 3 1 34.3242 -88.5816 -114.45 - 74 105.959 457 3 0 34.3239 -88.5855 -115.85 - 74 573.961 1071 2 1 34.3158 -88.6617 -144.45 - 74 186.268 456 2 0 34.3153 -88.6631 -145.85 - 74 394.512 1071 1 1 34.2997 -88.6873 -174.45 - 74 122.232 456 1 0 34.2997 -88.6873 -175.85 - 74 139.96 1071 0 1 34.3095 -88.6884 -204.45 - 74 144.377 456 0 0 34.3104 -88.6883 -205.85 - 74 11.5966 1020 1 1 24.1513 -143.151 -174.85 - 74 178.425 457 2 0 34.2698 -88.4787 -145.85 - 74 242.23 458 2 0 34.2647 -88.45 -146.089 - 74 205.079 1066 1 1 33.4345 -85.0559 -174.45 - 74 206.39 1067 1 1 33.45 -85.044 -174.559 - 74 116.799 475 1 0 33.6495 -84.9029 -175.85 - 74 111.617 1089 0 1 37.9232 -81.099 -204.45 - 74 109.864 495 0 0 37.8774 -80.9019 -205.85 - 74 0.954332 496 0 0 37.8611 -80.85 -206.246 - 74 182.632 1072 1 1 34.45 -86.5961 -174.551 - 74 59.0219 467 1 0 34.5282 -86.4713 -175.85 - 74 45.6767 468 1 0 34.5417 -86.45 -176.07 - 74 111.557 1080 0 1 36.0986 -83.4179 -204.45 - 74 126.034 484 0 0 36.0913 -83.224 -205.85 - 74 1045.45 1070 4 1 34.25 -88.5789 -84.7799 - 74 35.6757 1069 7 1 34.05 -88.4591 5.16871 - 74 256.833 453 7 0 32.9575 -89.2661 4.15 - 74 102.582 459 7 0 34.1801 -88.234 4.15 - 74 326.047 1073 6 1 34.7127 -87.6291 -24.45 - 74 297.048 462 6 0 34.7909 -87.613 -25.85 - 74 236.751 1081 5 1 36.3934 -87.1922 -54.45 - 74 115.184 464 5 0 36.4713 -87.152 -55.85 - 74 112.82 1090 4 1 38.0862 -86.2891 -84.45 - 74 149.762 469 4 0 38.1422 -86.243 -85.85 - 74 141.218 1095 3 1 39.0548 -85.3549 -114.45 - 74 128.61 473 3 0 39.1335 -85.3369 -115.85 - 74 124.436 1103 2 1 40.7514 -85.0278 -144.45 - 74 182.975 475 2 0 40.798 -84.98 -145.85 - 74 163.7 1108 1 1 41.6683 -83.9293 -174.45 - 74 72.3557 480 1 0 41.7349 -83.8607 -175.85 - 74 250.739 481 1 0 41.7456 -83.85 -176.073 - 74 122.385 1116 0 1 43.3066 -82.5393 -204.45 - 74 141.432 488 0 0 43.373 -82.4355 -205.85 - 74 12.5732 1059 3 1 32.05 -32.6869 -114.759 - 74 74.824 1082 5 1 36.45 -87.2515 -54.6212 - 74 5.70844 443 6 0 32.7696 -91.5298 -25.85 - 74 133.53 1040 6 1 28.2084 -93.627 -24.85 - 74 339.444 1071 7 1 34.326 -89.7142 5.54981 - 74 117.264 451 7 0 34.2447 -89.7574 4.15 - 74 106.553 1062 6 1 32.6086 -90.865 -24.45 - 74 105.454 446 6 0 32.5893 -90.8667 -25.8507 - 74 127.87 1060 5 1 32.1386 -90.9877 -54.45 - 74 155.125 447 5 0 32.0183 -90.7137 -55.85 - 74 154.881 1048 4 1 29.7754 -84.8529 -84.45 - 74 114.461 477 4 0 29.7515 -84.642 -85.8501 - 74 183.25 1047 3 1 29.5722 -80.105 -114.45 - 74 32.7049 1048 3 1 29.65 -80.0513 -114.725 - 74 118.846 501 3 0 29.9745 -79.8321 -115.85 - 74 101.39 1092 2 1 38.4697 -74.7486 -144.45 - 74 120.216 526 2 0 38.9259 -74.6868 -145.85 - 74 112.179 1135 1 1 47.1513 -73.35 -174.45 - 74 28.3893 1136 1 1 47.25 -73.3672 -174.744 - 74 98.8067 533 1 0 47.6204 -73.3981 -175.85 - 74 111.728 1185 0 1 57.0948 -73.2952 -204.45 - 74 118.144 533 0 0 57.5162 -73.4235 -205.85 - 74 40.0527 532 0 0 57.6002 -73.45 -206.126 - 74 105.392 1072 7 1 34.45 -89.6831 5.16304 - 74 84.6594 1073 7 1 34.65 -90.0007 5.17964 - 74 477.243 447 7 0 35.6333 -90.6394 4.15 - 74 106.461 458 7 0 34.1406 -88.4481 4.15 - 74 278.055 1070 6 1 34.1578 -88.3931 -24.45 - 74 233.994 458 6 0 34.1497 -88.3712 -25.85 - 74 149.876 1069 5 1 34.0392 -87.9349 -54.45 - 74 187.56 460 5 0 34.0443 -87.9143 -55.85 - 74 105.663 463 4 0 34.1407 -87.4494 -85.85 - 74 137.161 1070 3 1 34.0792 -86.8167 -114.45 - 74 115.092 466 3 0 34.092 -86.7826 -115.85 - 74 132.586 470 2 0 34.333 -86.0458 -145.85 - 74 110.516 470 1 0 33.5871 -85.9637 -175.85 - 74 117.981 1063 0 1 32.7887 -85.846 -204.45 - 74 123.358 471 0 0 32.7525 -85.8361 -205.85 - 74 144.352 794 0 0 35.5019 -21.25 -206.154 - 74 221.707 1255 3 1 71.2441 -46.5996 -114.85 - 74 44.3029 461 3 0 33.4381 -87.8082 -115.85 - 74 316.413 460 3 0 33.4094 -87.8502 -115.922 - 74 366.97 1070 5 1 34.05 -88.01 -54.6325 - 74 351.465 458 5 0 34.6886 -88.3977 -55.85 - 74 44.078 439 5 0 68.158 -92.2613 -56.25 - 74 95.8771 438 5 0 68.2518 -92.35 -56.1475 - 74 161.205 437 5 0 68.4176 -92.55 -55.9711 - 74 201.974 1242 5 1 68.4834 -93.716 -54.8499 - 74 194.159 1243 5 1 68.65 -94.1058 -54.6846 - 74 30.4914 425 5 0 67.7097 -95.1212 -55.85 - 74 283.263 424 5 0 67.6643 -95.1502 -55.8799 - 74 10.7253 423 5 0 67.4622 -95.35 -55.9585 - 74 2.56546 456 5 0 34.1639 -88.65 -56.2415 - 74 16.8974 431 4 0 34.4926 -93.8037 -85.85 - 74 98.0242 432 4 0 34.5077 -93.75 -85.9116 - 74 48.9776 433 4 0 34.5726 -93.55 -86.1189 - 74 434.498 1120 3 1 44.1981 -61.4543 -114.45 - 74 524.116 1119 3 1 44.05 -60.9098 -114.555 - 74 273.759 1118 3 1 43.85 -59.8248 -114.546 - 74 164.022 1117 3 1 43.65 -58.8004 -114.714 - 74 7.29475 625 3 0 42.1275 -54.8873 -115.85 - 74 54.071 626 3 0 42.1118 -54.85 -115.861 - 74 52.3976 627 3 0 42.065 -54.65 -115.901 - 74 47.7672 628 3 0 42.0286 -54.45 -115.926 - 74 97.3646 629 3 0 42.0047 -54.25 -115.947 - 74 47.2188 630 3 0 41.963 -54.05 -115.979 - 74 62.1434 631 3 0 41.9241 -53.85 -116.018 - 74 46.9559 632 3 0 41.8865 -53.6499 -116.04 - 74 61.4162 633 3 0 41.8457 -53.45 -116.064 - 74 126.19 634 3 0 41.8026 -53.25 -116.113 - 74 60.0239 635 3 0 41.7546 -53.05 -116.168 - 74 41.3813 636 3 0 41.6835 -52.85 -116.225 - 74 24.0958 921 2 1 4.41769 46.7949 -144.45 - 74 79.3041 922 2 1 4.45 46.8057 -144.571 - 74 104.545 1134 2 0 4.8059 46.9065 -145.85 - 74 124.206 1067 4 1 33.5948 -87.1209 -84.45 - 74 120.523 464 4 0 33.3316 -87.0928 -85.85 - 74 173.75 1042 3 1 28.6301 -86.1456 -114.45 - 74 152.779 469 3 0 28.0436 -86.0841 -115.85 - 74 38.4705 978 2 1 15.6912 -84.7603 -144.45 - 74 351.15 977 2 1 15.65 -84.74 -144.571 - 74 137.4 477 2 0 15.229 -84.5319 -145.85 - 74 113.742 929 1 1 6.01263 -79.5413 -174.45 - 74 181.215 503 1 0 5.61576 -79.3533 -175.85 - 74 164.116 888 0 1 -2.34652 -76.0597 -204.451 - 74 121.531 521 0 0 -2.69736 -75.7272 -205.85 - 74 18.3937 522 0 0 -2.77878 -75.65 -206.176 - 74 53.0488 467 2 0 15.0795 -86.5276 -145.85 - 74 75.2144 466 2 0 15.013 -86.65 -145.977 - 74 106.21 465 2 0 14.9544 -86.8505 -146.097 - 74 91.9509 464 2 0 14.8789 -87.05 -146.148 - 74 90.7892 463 2 0 14.7277 -87.2502 -146.223 - 74 120.803 462 2 0 14.7816 -87.4501 -146.119 - 74 27.5224 461 2 0 15.052 -87.65 -145.923 - 74 165.726 458 4 0 34.2536 -88.3855 -85.85 - 74 124.991 458 3 0 34.2934 -88.3392 -115.85 - 74 256.472 458 1 0 33.23 -88.3269 -175.85 - 74 139.13 1061 0 1 32.2889 -88.3505 -204.45 - 74 152.862 458 0 0 32.2382 -88.3514 -205.85 - 74 53.7623 662 1 0 132.193 -47.4894 -175.85 - 74 119.484 1135 0 1 47.0642 -87.5574 -204.85 - 74 203.526 456 4 0 34.8005 -88.741 -85.85 - 74 110.13 457 1 0 34.4415 -88.4656 -175.851 - 74 167.046 1073 0 1 34.7116 -87.9944 -204.45 - 74 242.583 460 0 0 34.7647 -88.0134 -205.85 - 74 23.5851 1095 0 1 39.2379 -87.7725 -204.45 - 74 85.1729 1096 0 1 39.25 -87.7852 -204.552 -Number of digits in this event = 86 -Using G4ParticleGun ... -9.72856 LIN -e- +Number of tracker hits in this event: 147 + 74 10.6313 1264 11 1 72.9294 -38.7935 125.205 + 74 148.958 706 11 0 72.9294 -38.7935 124.15 + 74 108.734 1264 10 1 72.9286 -38.7938 95.55 + 74 154.235 706 10 0 72.9287 -38.7916 94.15 + 74 682.015 1264 9 1 72.9272 -38.7473 65.55 + 74 408.042 706 9 0 72.9271 -38.7457 64.15 + 74 239.426 1264 8 1 72.9264 -38.7134 35.55 + 74 106.691 706 8 0 72.9256 -38.7111 34.15 + 74 286.307 1264 7 1 72.9014 -38.6616 5.55 + 74 275.119 706 7 0 72.8995 -38.6581 4.15 + 74 244.48 1264 6 1 72.8622 -38.5855 -24.45 + 74 111.234 707 6 0 72.8582 -38.5825 -25.85 + 74 124.295 1263 5 1 72.777 -38.5273 -54.45 + 74 117.305 707 5 0 72.7735 -38.5241 -55.85 + 74 123.332 1263 4 1 72.7031 -38.4587 -84.45 + 74 218.997 707 4 0 72.701 -38.455 -85.85 + 74 150.461 1263 3 1 72.6513 -38.3793 -114.45 + 74 125.429 708 3 0 72.6497 -38.3742 -115.85 + 74 312.138 1262 2 1 72.6214 -38.27 -144.45 + 74 305.97 708 2 0 72.6248 -38.2672 -145.85 + 74 122.872 1263 1 1 72.6975 -38.2102 -174.45 + 74 236.72 709 1 0 72.7012 -38.2049 -175.85 + 74 327.005 1263 0 1 72.7838 -38.091 -204.45 + 74 324.875 709 0 0 72.7894 -38.0862 -205.85 + 74 21.3291 1263 2 1 72.6501 -38.188 -144.762 + 74 43.9693 713 2 0 72.7045 -37.3881 -145.85 + 74 113.763 714 2 0 72.703 -37.2492 -145.965 + 74 75.736 715 2 0 72.7289 -37.05 -146.115 + 74 4.73476 521 0 0 -28.2703 -75.65 -206.062 + 74 217.395 754 0 1 -29.1674 -76.0608 -204.85 + 74 133.066 708 4 0 72.7005 -38.45 -86.0092 + 74 16.63 1258 1 1 71.6583 -39.1889 -174.45 + 74 101.665 1257 1 1 71.65 -39.2009 -174.512 + 74 176.572 702 1 0 71.4547 -39.4606 -175.85 + 74 120.22 1235 0 1 67.1143 -45.1901 -204.45 + 74 127.825 672 0 0 67.0491 -45.4711 -205.85 + 74 93.9282 1261 2 1 72.45 -38.2535 -144.554 + 74 113.45 709 2 0 72.2031 -38.2447 -145.85 + 74 107.228 1233 1 1 66.8257 -39.0657 -174.45 + 74 80.392 1232 1 1 66.65 -38.9789 -174.723 + 74 79.9928 708 1 0 65.4952 -38.3749 -175.85 + 74 108.061 542 1 0 3.22647 -71.4539 -176.25 + 74 137.284 541 1 0 3.04344 -71.65 -176.101 + 74 122.988 540 1 0 2.82858 -71.85 -175.875 + 74 113.921 910 1 1 2.17175 -72.9445 -174.85 + 74 430.046 909 1 1 2.05 -73.2616 -174.689 + 74 227.976 539 1 0 2.83913 -72.0501 -176.073 + 74 189.159 538 1 0 2.3921 -72.25 -176.233 + 74 126.755 847 1 0 15.5265 -10.4766 -176.25 + 74 94.9091 848 1 0 15.5164 -10.4499 -176.136 + 74 19.8544 1137 1 0 101.297 47.6018 -176.249 + 74 125.108 1138 1 0 101.331 47.65 -176.216 + 74 73.8385 1139 1 0 101.45 47.85 -176.149 + 74 40.148 1140 1 0 101.518 48.05 -176.195 + 74 79.2225 1462 1 0 108.836 112.629 -176.25 + 74 100.154 1461 1 0 108.902 112.55 -176.094 + 74 28.8029 1447 1 1 109.68 111.691 -174.85 + 74 6.24241 1443 1 0 108.788 108.767 -175.85 + 74 60.7849 1442 1 0 108.781 108.75 -175.858 + 74 33.6715 1449 1 1 110.121 105.778 -174.85 + 74 87.3173 1450 1 1 110.15 105.711 -174.834 + 74 186.193 1419 1 0 111.495 104.039 -175.85 + 74 153.16 1463 1 1 112.894 104.142 -174.85 + 74 50.1986 1464 1 1 112.95 104.152 -174.821 + 74 324.941 1262 8 1 72.5786 -39.2653 35.55 + 74 121.445 703 8 0 72.3999 -39.2955 34.1497 + 74 91.4357 1244 7 1 68.8919 -39.9074 5.55 + 74 29.4079 1243 7 1 68.85 -39.9023 5.24236 + 74 206.932 700 7 0 68.6967 -39.8822 4.15 + 74 146.412 1224 6 1 64.8738 -39.0215 -24.4513 + 74 119.641 704 6 0 65.05 -39.1548 -25.85 + 74 225.916 1244 5 1 68.8855 -42.0807 -54.4504 + 74 130.148 688 5 0 68.9944 -42.2508 -55.85 + 74 182.405 1255 4 1 71.1273 -46.0129 -84.4502 + 74 129.501 669 4 0 71.2281 -46.1919 -85.85 + 74 111.034 1267 3 1 73.4616 -49.8894 -114.45 + 74 124.448 649 3 0 73.501 -50.0705 -115.85 + 74 206.463 1271 2 1 74.3808 -54.1305 -144.45 + 74 79.2112 627 2 0 74.1655 -54.5988 -145.85 + 74 63.3287 626 2 0 74.1273 -54.65 -146.057 + 74 125.333 1241 1 1 68.279 -61.2048 -174.45 + 74 70.8254 1240 1 1 68.25 -61.2659 -174.629 + 74 11.547 592 1 0 68.0647 -61.6302 -175.851 + 74 91.1155 591 1 0 68.054 -61.6501 -175.921 + 74 280.346 1224 0 1 64.9013 -68.4469 -204.45 + 74 111.244 555 0 0 64.7589 -68.9021 -205.85 + 74 64.3765 1223 0 1 64.8495 -68.5619 -204.776 + 74 139.269 556 0 0 64.9062 -68.7859 -205.85 + 74 17.4207 738 1 0 48.1342 -32.3172 -175.85 + 74 184.116 695 8 0 72.9838 -41.0386 34.15 + 74 58.0135 694 8 0 72.987 -41.05 34.1414 + 74 123.085 707 8 0 72.94 -38.6407 34.15 + 74 114.019 709 6 0 73.0361 -38.1644 -25.85 + 74 87.46 1257 5 1 71.5642 -33.4108 -54.45 + 74 61.6402 1258 5 1 71.65 -33.3078 -54.7003 + 74 141.989 736 5 0 71.8806 -32.7517 -55.85 + 74 121.263 737 5 0 71.9344 -32.65 -56.0676 + 74 117.046 1318 4 1 83.753 -12.1886 -84.45 + 74 24.0225 837 4 0 84.074 -12.61 -85.85 + 74 125.27 836 4 0 84.0958 -12.65 -85.9283 + 74 43.4994 1136 4 0 119.802 47.2856 -86.2499 + 74 64.534 1137 4 0 119.839 47.45 -86.2091 + 74 52.8369 1138 4 0 119.93 47.65 -86.2062 + 74 72.2425 1139 4 0 119.948 47.8504 -86.1579 + 74 86.9751 1140 4 0 119.892 48.05 -86.0214 + 74 156.501 1497 4 1 119.645 48.5311 -84.85 + 74 267.82 1498 4 1 119.75 48.7316 -84.4932 + 74 91.5987 1171 4 0 121.595 54.324 -85.85 + 74 159.301 1172 4 0 121.509 54.4501 -85.9244 + 74 216.988 707 7 0 72.9772 -38.6499 4.07979 + 74 338.477 1264 1 1 73.0403 -38.9947 -174.45 + 74 346.003 705 1 0 73.0366 -38.9919 -175.85 + 74 496.714 1264 0 1 72.9494 -38.9336 -204.45 + 74 132.947 705 0 0 72.9509 -38.9381 -205.85 + 74 10.7051 417 0 0 31.3192 -96.55 -205.889 + 74 207.654 1051 0 1 30.45 -100.818 -204.671 + 74 30.9789 540 0 0 136.13 -72.05 -206.224 + 74 59.0593 1040 0 1 28.1857 -96.8617 -204.85 + 74 54.1399 414 0 0 28.4415 -97.3455 -205.85 + 74 42.1427 1041 0 1 28.3963 -96.8908 -204.85 + 74 134.179 1265 1 1 73.0636 -38.9957 -174.45 + 74 230.983 704 1 0 71.7275 -39.2473 -175.85 + 74 87.0304 703 1 0 71.7191 -39.25 -175.857 + 74 36.8234 706 1 0 70.813 -38.85 -175.988 + 74 211.187 1251 1 1 70.3594 -38.8059 -174.85 + 74 110.444 1250 1 1 70.25 -38.5779 -174.557 + 74 348.394 707 1 0 72.9588 -38.515 -175.85 + 74 101.562 702 0 0 72.6581 -39.5184 -205.85 + 74 66.6514 1265 0 1 73.05 -39.4075 -204.67 + 74 16.3471 706 0 0 74.0303 -38.6902 -205.85 + 74 69.8396 707 0 0 74.0778 -38.65 -205.913 + 74 216.146 708 0 0 74.2305 -38.45 -206.022 + 74 89.9614 710 0 0 74.6486 -38.05 -205.978 + 74 73.5373 711 0 0 74.9183 -37.85 -205.933 + 74 18.3304 1287 0 1 77.6051 -36.6555 -204.85 + 74 78.524 1288 0 1 77.6501 -36.6429 -204.831 + 74 85.0853 1289 0 1 77.85 -36.6475 -204.68 + 74 55.9948 1290 0 1 78.0501 -36.7224 -204.536 + 74 61.2263 1291 0 1 78.25 -36.756 -204.487 + 74 101.025 1292 0 1 78.4502 -36.7544 -204.463 + 74 67.9204 1293 0 1 78.65 -36.7381 -204.466 + 74 266.938 1294 0 1 78.85 -36.6928 -204.536 + 74 88.2106 1295 0 1 79.05 -36.6274 -204.648 + 74 154.814 1296 0 1 79.25 -36.5721 -204.689 + 74 135.194 1297 0 1 79.45 -36.7189 -204.564 + 74 83.7947 708 7 0 72.8758 -38.3327 4.15 + 74 88.1529 709 7 0 72.8477 -38.25 3.95956 +Number of digits in this event: 71 +Using G4ParticleGun... +Particle energy: 4.67539 LIN +Particle: e- Event: 75 -Number of tracker hits in this event = 147 - 75 112.658 1328 8 1 85.7699 -114.652 35.55 - 75 122.883 327 8 0 85.7706 -114.653 34.15 - 75 244.926 1328 7 1 85.7822 -114.668 5.55 - 75 495.984 327 7 0 85.7831 -114.667 4.15 - 75 448.813 1328 6 1 85.8005 -114.667 -24.45 - 75 512.866 327 6 0 85.8029 -114.666 -25.85 - 75 261.273 1328 5 1 85.841 -114.648 -54.45 - 75 355.298 327 5 0 85.8454 -114.648 -55.85 - 75 253.419 1329 4 1 85.9291 -114.662 -84.45 - 75 271.244 327 4 0 85.9283 -114.661 -85.85 - 75 108.939 1329 3 1 85.9128 -114.645 -114.45 - 75 150.295 327 3 0 85.931 -114.646 -115.85 - 75 400.732 1331 2 1 86.3804 -114.765 -144.45 - 75 94.2548 326 2 0 86.384 -114.778 -145.85 - 75 110.423 1331 1 1 86.4015 -115.01 -174.45 - 75 314.967 325 1 0 86.3973 -115.032 -175.85 - 75 136.227 1331 0 1 86.3403 -115.535 -204.45 - 75 125.44 322 0 0 86.3497 -115.557 -205.85 - 75 107.925 326 1 0 86.4348 -114.95 -176.22 - 75 59.483 1622 8 1 144.75 23.6271 35.3404 - 75 184.403 1330 1 1 86.205 -114.678 -174.812 - 75 201.633 327 1 0 86.2183 -114.676 -175.85 - 75 322.786 1328 0 1 85.7209 -115.438 -204.451 - 75 279.278 324 0 0 85.7611 -115.271 -205.851 - 75 248.333 287 1 0 120.216 -122.558 -176.25 - 75 75.4997 1515 1 1 123.225 -122.369 -174.85 - 75 47.0142 1516 1 1 123.35 -122.36 -174.803 - 75 86.0925 1517 1 1 123.55 -122.343 -174.725 - 75 51.107 1518 1 1 123.75 -122.334 -174.633 - 75 47.5012 1519 1 1 123.95 -122.321 -174.54 - 75 3.20717 1520 1 1 124.15 -122.301 -174.456 - 75 34.7052 1523 1 1 124.826 -122.233 -174.45 - 75 73.5835 1524 1 1 124.95 -122.306 -174.52 - 75 65.6396 1525 1 1 125.15 -122.41 -174.643 - 75 70.9521 1526 1 1 125.35 -122.52 -174.742 - 75 15.6973 1527 1 1 125.55 -122.647 -174.841 - 75 169.058 280 1 0 127.739 -123.954 -175.85 - 75 119.925 279 1 0 128.07 -124.15 -175.994 - 75 93.0555 278 1 0 128.367 -124.35 -176.149 - 75 645.124 1722 0 1 164.742 -154.474 -204.45 - 75 86.4021 1723 0 1 164.75 -153.947 -204.817 - 75 88.7551 1721 0 1 164.55 -152.906 -204.619 - 75 66.081 1720 0 1 164.35 -152.908 -204.745 - 75 67.4132 138 0 0 163.518 -152.453 -205.85 - 75 121.383 139 0 0 163.452 -152.35 -205.906 - 75 290.372 140 0 0 163.314 -152.15 -206.004 - 75 23.5713 141 0 0 162.971 -151.95 -206.238 - 75 40.8367 1505 1 1 121.281 -122.337 -174.849 - 75 102.156 1506 1 1 121.35 -122.312 -174.75 - 75 161.488 1507 1 1 121.55 -122.115 -174.654 - 75 88.8781 1508 1 1 121.771 -122.132 -174.45 - 75 151.01 291 1 0 121.621 -121.94 -175.85 - 75 30.6148 261 1 0 115.605 -127.902 -176.25 - 75 131.069 260 1 0 115.581 -127.95 -176.159 - 75 12.3572 259 1 0 115.362 -128.15 -175.857 - 75 2.86942 1452 1 1 110.559 -131.253 -174.85 - 75 51.9385 1451 1 1 110.549 -131.259 -174.848 - 75 6.54559 239 1 0 107.98 -132.34 -175.85 - 75 133.99 238 1 0 107.958 -132.35 -175.859 - 75 41.3185 1416 1 1 103.515 -132.436 -174.85 - 75 63.3658 1415 1 1 103.35 -132.44 -174.799 - 75 64.2736 1414 1 1 103.15 -132.467 -174.711 - 75 69.321 1413 1 1 102.95 -132.478 -174.614 - 75 68.5374 1412 1 1 102.75 -132.504 -174.559 - 75 61.1644 1411 1 1 102.55 -132.527 -174.506 - 75 3.26835 1410 1 1 102.35 -132.455 -174.455 - 75 104.512 1330 4 1 86.1807 -114.453 -84.45 - 75 157.295 328 4 0 86.226 -114.453 -85.85 - 75 89.4695 1335 3 1 87.0828 -114.478 -114.45 - 75 132.819 328 3 0 87.1109 -114.481 -115.85 - 75 126.045 1338 2 1 87.7448 -114.489 -144.45 - 75 156.938 328 2 0 87.7832 -114.524 -145.85 - 75 100.335 1342 1 1 88.4667 -115.195 -174.45 - 75 152.908 324 1 0 88.4694 -115.232 -175.85 - 75 117.782 1341 0 1 88.4277 -115.956 -204.45 - 75 122.479 320 0 0 88.4267 -115.986 -205.85 - 75 13.4089 327 2 0 87.818 -114.55 -146.217 - 75 258.061 194 2 0 120.053 -141.314 -146.25 - 75 59.5506 1343 1 1 88.7279 -114.603 -174.45 - 75 244.013 1329 5 1 85.8861 -114.702 -54.45 - 75 53.5352 1330 5 1 86.05 -114.674 -54.5435 - 75 78.2558 1331 5 1 86.25 -114.602 -54.6532 - 75 47.3725 1332 5 1 86.4503 -114.508 -54.7506 - 75 0.116616 1333 5 1 86.65 -114.459 -54.8484 - 75 287.335 329 5 0 88.1975 -114.209 -55.85 - 75 242.275 330 5 0 88.4568 -114.15 -55.9632 - 75 3.62526 1351 5 1 90.5354 -114.049 -54.85 - 75 130.022 1352 5 1 90.55 -114.049 -54.8426 - 75 51.4307 428 5 0 25.3736 -94.4782 -56.2498 - 75 61.2436 499 5 0 -10.2518 -80.0779 -56.25 - 75 167.913 1330 3 1 86.2075 -114.825 -114.45 - 75 146.283 326 3 0 86.2123 -114.832 -115.85 - 75 127.16 325 2 0 86.266 -114.966 -145.85 - 75 168.415 1330 0 1 86.208 -115.185 -204.45 - 75 200.919 406 4 0 -40.973 -98.7636 -86.25 - 75 18.0473 685 6 1 -43.0309 -69.6449 -24.85 - 75 187.496 684 6 1 -43.05 -69.5871 -24.7155 - 75 29.8594 407 4 0 -41.0748 -98.75 -86.1251 - 75 175.037 327 0 0 85.8164 -114.664 -205.85 - 75 43.0079 328 0 0 85.8055 -114.55 -206.187 - 75 33.2573 343 0 0 89.0118 -111.387 -206.25 - 75 11.8192 1329 0 1 85.8777 -114.54 -204.45 - 75 114.964 822 1 0 21.5044 -15.4941 -176.25 - 75 181.314 823 1 0 21.159 -15.45 -176.114 - 75 1.7754 1001 1 1 20.2522 -16.1415 -174.85 - 75 118.683 1000 1 1 20.25 -16.1444 -174.847 - 75 87.7612 999 1 1 20.05 -16.4163 -174.72 - 75 126.05 818 1 0 18.1536 -16.3403 -175.85 - 75 174.739 817 1 0 18.0371 -16.45 -175.936 - 75 103.882 816 1 0 18.1026 -16.65 -175.963 - 75 137.175 1327 6 1 85.5778 -114.709 -24.45 - 75 169.393 1327 5 1 85.5746 -114.781 -54.45 - 75 114.414 326 5 0 85.5726 -114.788 -55.85 - 75 119.334 1327 4 1 85.5432 -114.982 -84.45 - 75 346.037 325 4 0 85.5887 -114.983 -85.85 - 75 117.819 1331 3 1 86.4027 -115.034 -114.45 - 75 137.066 325 3 0 86.4267 -115.057 -115.85 - 75 120.98 1334 2 1 86.9646 -115.587 -144.45 - 75 177.227 322 2 0 86.9639 -115.597 -145.85 - 75 230.54 1334 1 1 87.015 -115.886 -174.45 - 75 130.394 321 1 0 87.0542 -115.892 -175.85 - 75 24.3951 1338 0 1 87.8461 -115.889 -204.45 - 75 102.336 1339 0 1 87.85 -115.891 -204.533 - 75 108.651 321 0 0 87.9136 -115.919 -205.85 - 75 91.9165 664 1 0 129.396 -47.0805 -176.25 - 75 149.193 114 1 0 64.6147 -157.158 -176.25 - 75 68.8531 1047 1 1 29.65 -84.3173 -174.784 - 75 102.947 1327 7 1 85.6385 -114.665 5.54979 - 75 158.43 1318 6 1 83.8414 -114.733 -24.45 - 75 124.124 326 6 0 83.6874 -114.773 -25.85 - 75 151.313 1302 5 1 80.5517 -114.883 -54.45 - 75 36.1076 325 5 0 80.3797 -115.125 -55.85 - 75 68.6642 324 5 0 80.3602 -115.15 -55.9843 - 75 140.638 1280 4 1 76.2174 -120.877 -84.45 - 75 49.144 293 4 0 75.9228 -121.475 -85.85 - 75 76.64 292 4 0 75.8881 -121.55 -86.021 - 75 104.786 1245 3 1 69.1529 -133.363 -114.45 - 75 42.097 1244 3 1 69.0495 -133.467 -114.701 - 75 2.4874 231 3 0 68.5921 -133.947 -115.85 - 75 120.336 230 3 0 68.5888 -133.95 -115.858 - 75 120.9 1185 2 1 57.1243 -147.127 -144.45 - 75 124.494 163 2 0 56.904 -147.362 -145.85 - 75 120.041 1167 1 1 53.5489 -152.859 -174.45 - 75 113.678 134 1 0 53.5987 -153.225 -175.85 - 75 13.4224 1169 0 1 53.8544 -161.362 -204.45 - 75 180.045 1168 0 1 53.85 -161.365 -204.504 - 75 104.087 93 0 0 53.7903 -161.447 -205.85 -Number of digits in this event = 69 -Using G4ParticleGun ... -8.40236 LIN -e- +Number of tracker hits in this event: 47 + 75 142.443 804 11 1 -19.1424 3.73122 125.55 + 75 138.254 918 11 0 -19.1412 3.73121 124.15 + 75 112.837 804 10 1 -19.114 3.72903 95.55 + 75 124.434 918 10 0 -19.1113 3.7297 94.15 + 75 142.121 804 9 1 -19.0545 3.74154 65.55 + 75 102.528 918 9 0 -19.0534 3.74147 64.15 + 75 209.605 805 8 1 -19.0325 3.7384 35.55 + 75 179.046 918 8 0 -19.0338 3.73923 34.15 + 75 103.9 804 7 1 -19.0621 3.75582 5.55 + 75 93.2383 918 7 0 -19.0645 3.75465 4.15 + 75 134.361 804 6 1 -19.1104 3.7231 -24.45 + 75 158.739 918 6 0 -19.1131 3.71988 -25.85 + 75 141.242 804 5 1 -19.1673 3.64667 -54.45 + 75 122.036 917 5 0 -19.1696 3.64087 -55.85 + 75 444.121 804 4 1 -19.2156 3.5134 -84.45 + 75 165.717 917 4 0 -19.2182 3.50863 -85.85 + 75 108.972 803 3 1 -19.256 3.41563 -114.45 + 75 326.863 916 3 0 -19.2555 3.40894 -115.85 + 75 107.247 804 2 1 -19.2451 3.28032 -144.45 + 75 156.036 916 2 0 -19.2446 3.27233 -145.85 + 75 358.8 804 1 1 -19.2298 3.10115 -174.45 + 75 436.636 915 1 0 -19.228 3.08867 -175.85 + 75 154.587 804 0 1 -19.1699 2.80319 -204.45 + 75 140.32 913 0 0 -19.1646 2.7934 -205.85 + 75 12.7294 421 7 0 29.7964 -95.95 4.11861 + 75 236.331 243 8 0 43.7246 -131.413 33.75 + 75 36.3809 148 7 1 -150.423 -105.9 5.15 + 75 198.766 401 13 0 -151.852 -99.8738 183.75 + 75 94.6855 803 0 1 -19.4168 5.10961 -204.45 + 75 122.724 802 0 1 -19.45 5.12311 -204.738 + 75 189.504 925 0 0 -19.5859 5.19169 -205.85 + 75 32.7505 916 1 0 -19.2994 3.25005 -176.185 + 75 100.283 821 0 1 -15.8377 2.16204 -204.45 + 75 124.935 910 0 0 -15.7077 2.10172 -205.85 + 75 101.125 915 3 0 -19.1842 3.25 -116.083 + 75 250.783 914 3 0 -19.0802 3.04958 -116.205 + 75 29.143 911 4 0 -19.0894 2.31477 -85.85 + 75 309.63 910 4 0 -19.0828 2.25 -85.9347 + 75 390.38 803 1 1 -19.361 3.65971 -174.45 + 75 297.055 918 1 0 -19.3672 3.66033 -175.85 + 75 129.506 918 0 0 -19.5364 3.73984 -205.85 + 75 79.8777 664 2 1 -47.25 -132.581 -144.774 + 75 220.117 806 2 1 -18.7882 -140.664 -144.45 + 75 0.0190279 498 2 0 -59.788 -80.25 -145.877 + 75 228.505 801 0 1 -19.827 3.85474 -204.45 + 75 146.375 919 0 0 -19.8563 3.87456 -205.85 + 75 87.1904 917 1 0 -19.3149 3.65 -176.157 +Number of digits in this event: 34 +Using G4ParticleGun... +Particle energy: 9.10736 LIN +Particle: e- Event: 76 -Number of tracker hits in this event = 99 - 76 108.414 1228 11 1 65.8279 -3.26546 125.55 - 76 117.093 883 11 0 65.8286 -3.26628 124.15 - 76 120.621 1228 10 1 65.8422 -3.28248 95.55 - 76 164.514 883 10 0 65.843 -3.28302 94.15 - 76 110.634 1229 9 1 65.8584 -3.29613 65.55 - 76 110.079 883 9 0 65.8597 -3.29604 64.15 - 76 130.814 1229 8 1 65.8836 -3.29418 35.55 - 76 126.483 883 8 0 65.8857 -3.29575 34.15 - 76 244.356 1229 7 1 65.9259 -3.32318 5.55 - 76 102.571 883 7 0 65.9271 -3.31793 4.15 - 76 119.037 1229 6 1 65.9535 -3.20794 -24.45 - 76 135.271 884 6 0 65.9539 -3.20371 -25.85 - 76 149.994 1229 5 1 65.9571 -3.11387 -54.45 - 76 112.501 884 5 0 65.9567 -3.10814 -55.85 - 76 414.144 1229 4 1 65.9471 -2.98371 -84.45 - 76 106.346 885 4 0 65.9444 -2.97649 -85.85 - 76 354.65 1229 3 1 65.8869 -2.82921 -114.45 - 76 403.291 886 3 0 65.8825 -2.82121 -115.85 - 76 104.394 1228 2 1 65.7982 -2.66439 -144.45 - 76 353.991 886 2 0 65.7946 -2.65633 -145.85 - 76 169.68 1228 1 1 65.7175 -2.48971 -174.45 - 76 106.129 887 1 0 65.7141 -2.47884 -175.85 - 76 124.668 1227 0 1 65.6314 -2.26297 -204.45 - 76 135.691 888 0 0 65.6286 -2.25482 -205.85 - 76 10.8958 132 10 0 168.762 -153.689 93.75 - 76 227.937 131 10 0 168.802 -153.75 93.8433 - 76 125.17 130 10 0 168.759 -153.95 93.9318 - 76 10.13 1155 0 0 -91.0333 51.2343 -206.25 - 76 110.842 1156 0 0 -91.0591 51.25 -206.239 - 76 98.7522 1157 0 0 -91.3285 51.45 -206.145 - 76 106.905 1158 0 0 -91.6073 51.65 -206.064 - 76 109.844 1159 0 0 -91.906 51.85 -206.005 - 76 84.6231 1160 0 0 -92.1414 52.05 -205.946 - 76 103.222 1161 0 0 -92.3921 52.25 -205.901 - 76 18.6022 1162 0 0 -92.6901 52.4501 -205.858 - 76 20.6464 404 0 1 -99.2908 57.4519 -204.85 - 76 61.9018 403 0 1 -99.35 57.496 -204.839 - 76 55.8488 402 0 1 -99.55 57.6409 -204.802 - 76 56.4919 401 0 1 -99.75 57.7742 -204.771 - 76 52.2315 400 0 1 -99.95 57.8886 -204.739 - 76 66.2318 399 0 1 -100.15 57.997 -204.691 - 76 85.2466 398 0 1 -100.35 58.0938 -204.62 - 76 174.01 397 0 1 -100.55 58.1873 -204.556 - 76 32.0867 396 0 1 -100.75 58.2659 -204.49 - 76 42.3298 395 0 1 -101.024 58.3619 -204.45 - 76 58.8728 394 0 1 -101.15 58.4251 -204.535 - 76 69.7492 393 0 1 -101.351 58.4959 -204.653 - 76 26.6315 392 0 1 -101.55 58.587 -204.787 - 76 99.1991 1196 0 0 -103.082 59.3169 -205.85 - 76 154.172 1197 0 0 -103.33 59.45 -206.004 - 76 18.3308 1198 0 0 -103.681 59.6501 -206.219 - 76 16.8496 391 0 1 -101.75 57.2954 -204.482 - 76 204.72 1005 0 0 -55.4146 21.2196 -206.249 - 76 82.3473 1004 0 0 -55.4173 21.05 -206.073 - 76 137.419 1084 0 0 -44.577 36.9756 -206.25 - 76 219.72 1085 0 0 -44.7232 37.0506 -206.071 - 76 152.617 1106 2 0 -124.6 41.25 -146.101 - 76 1.26721 289 2 1 -122.155 41.0422 -144.85 - 76 193.966 290 2 1 -122.15 41.0419 -144.848 - 76 2.5533 1100 2 0 -121.964 40.053 -145.85 - 76 110.767 1099 2 0 -121.963 40.05 -145.855 - 76 196.112 887 3 0 66.2619 -2.65 -116.046 - 76 53.629 1230 3 1 66.0904 -3.49753 -114.451 - 76 113.341 876 3 0 65.4867 -4.66586 -115.85 - 76 0.319667 875 3 0 65.3869 -4.85017 -116.249 - 76 139.668 883 4 0 65.9439 -3.26687 -85.85 - 76 233.433 883 3 0 65.9711 -3.26954 -115.85 - 76 445.598 1229 2 1 65.955 -3.16961 -144.45 - 76 111.877 884 2 0 65.9559 -3.16328 -145.85 - 76 215.672 1229 1 1 65.9745 -3.03746 -174.45 - 76 153.794 885 1 0 65.978 -3.03066 -175.85 - 76 119.195 1230 0 1 66.0549 -2.8889 -204.45 - 76 120.746 885 0 0 66.0603 -2.88539 -205.85 - 76 200.548 1229 0 1 66.044 -2.87755 -204.45 - 76 77.7232 883 0 0 65.6528 -3.38111 -205.85 - 76 60.7133 882 0 0 65.6153 -3.45015 -206.064 - 76 82.5099 1011 0 0 66.7604 22.3009 -206.25 - 76 109.382 879 2 0 65.4214 -4.05512 -145.85 - 76 84.6028 878 2 0 65.2886 -4.25029 -146.037 - 76 195.81 1230 2 1 66.05 -3.01162 -144.708 - 76 84.5218 887 2 0 66.6815 -2.64988 -146.009 - 76 55.2414 1258 1 1 71.8341 0.399319 -174.45 - 76 91.3908 1259 1 1 71.85 0.221001 -174.562 - 76 6.82784 1260 1 1 72.228 0.0501128 -174.823 - 76 16.5098 1261 1 1 72.2502 0.0707915 -174.829 - 76 76.0251 905 1 0 73.9921 1.15333 -175.85 - 76 124.522 906 1 0 74.1148 1.25 -175.936 - 76 341.081 907 1 0 74.1258 1.45 -175.987 - 76 42.5866 908 1 0 74.378 1.65008 -175.977 - 76 61.1004 928 1 0 80.2163 5.65 -175.911 - 76 98.1316 884 4 0 65.9383 -3.20766 -85.8504 - 76 150.403 1228 3 1 65.7694 -2.54328 -114.45 - 76 121.208 1216 2 1 63.2906 -3.6343 -144.451 - 76 6.03145 1215 2 1 63.25 -3.66105 -144.828 - 76 122.243 881 2 0 63.1395 -3.74604 -145.85 - 76 144.267 1203 1 1 60.786 -5.81405 -174.45 - 76 111.196 869 1 0 60.5915 -6.05281 -175.85 - 76 355.598 1182 0 1 56.5338 -10.9796 -204.45 - 76 114.734 843 0 0 56.4004 -11.3317 -205.85 -Number of digits in this event = 42 -Using G4ParticleGun ... -6.25545 LIN -e- +Number of tracker hits in this event: 22 + 76 104.482 1368 9 1 93.7912 80.9714 65.55 + 76 136.533 1304 9 0 93.7909 80.971 64.15 + 76 128.455 1368 8 1 93.7843 80.9649 35.55 + 76 129.789 1304 8 0 93.7849 80.9643 34.15 + 76 119.966 1368 7 1 93.7993 80.9534 5.55 + 76 112.781 1304 7 0 93.8001 80.9524 4.15 + 76 103.226 1368 6 1 93.8196 80.9317 -24.45 + 76 117.952 1304 6 0 93.8214 80.9314 -25.85 + 76 137.787 1368 5 1 93.8581 80.9216 -54.45 + 76 111.383 1304 5 0 93.8594 80.9217 -55.85 + 76 121.601 1368 4 1 93.8845 80.928 -84.45 + 76 188.317 1304 4 0 93.8853 80.9298 -85.85 + 76 332.876 1368 3 1 93.8996 80.9714 -114.45 + 76 122.352 1304 3 0 93.9012 80.9738 -115.85 + 76 104.363 1368 2 1 93.9381 81.0212 -144.45 + 76 124.384 1304 2 0 93.9404 81.0232 -145.85 + 76 142.828 1369 1 1 93.9884 81.0607 -174.45 + 76 103.915 1305 1 0 93.9905 81.0619 -175.85 + 76 155.288 1369 0 1 94.0346 81.0866 -204.45 + 76 114.991 1305 0 0 94.0368 81.0883 -205.85 + 76 67.8663 1201 1 1 60.3385 154.449 -174.45 + 76 110.352 1606 4 0 83.4818 141.489 -86.2499 +Number of digits in this event: 14 +Using G4ParticleGun... +Particle energy: 2.64075 LIN +Particle: e- Event: 77 -Number of tracker hits in this event = 38 - 77 120.547 1124 9 1 44.9943 -127.016 65.55 - 77 130.457 265 9 0 44.9938 -127.017 64.15 - 77 126.397 1124 8 1 44.9852 -127.022 35.55 - 77 121.531 265 8 0 44.9845 -127.021 34.15 - 77 102.819 1124 7 1 44.9722 -126.989 5.55 - 77 189.461 265 7 0 44.9714 -126.988 4.15 - 77 126.93 1124 6 1 44.9575 -126.995 -24.45 - 77 134.677 265 6 0 44.9555 -126.996 -25.85 - 77 131.223 1124 5 1 44.9244 -127.015 -54.45 - 77 236.034 265 5 0 44.9239 -127.011 -55.85 - 77 134.815 1124 4 1 44.8941 -126.942 -84.45 - 77 132.214 266 4 0 44.8957 -126.943 -85.85 - 77 119.775 1124 3 1 44.9548 -126.979 -114.45 - 77 124.68 265 3 0 44.9582 -126.975 -115.85 - 77 514.253 1124 2 1 45.0193 -126.909 -144.45 - 77 130.315 266 2 0 45.0196 -126.904 -145.85 - 77 215.413 1124 1 1 45.0219 -126.799 -174.45 - 77 240.343 266 1 0 45.0192 -126.794 -175.85 - 77 161.479 1124 0 1 44.9723 -126.677 -204.45 - 77 171.025 267 0 0 44.9709 -126.671 -205.85 - 77 20.0731 1118 0 0 -24.3593 43.6679 -206.25 - 77 41.0365 1119 0 0 -24.4624 43.85 -206.209 - 77 113.164 1181 0 0 -38.7448 56.4101 -206.25 - 77 7.77009 251 2 0 45.2181 -129.918 -145.85 - 77 44.0464 250 2 0 45.2208 -129.95 -145.865 - 77 52.1775 249 2 0 45.2529 -130.15 -145.946 - 77 88.4871 248 2 0 45.3038 -130.35 -145.973 - 77 15.707 544 3 0 157.81 -71.0895 -116.25 - 77 108.465 1123 4 1 44.8495 -126.919 -84.7881 - 77 297.549 1122 4 1 44.65 -126.785 -84.8158 - 77 245.312 267 2 0 44.8418 -126.689 -145.85 - 77 164.368 1120 1 1 44.1147 -127.002 -174.45 - 77 46.7436 265 1 0 44.069 -126.955 -175.85 - 77 118.641 1115 0 1 43.2415 -126.047 -204.45 - 77 114.098 270 0 0 43.2728 -126.098 -205.85 - 77 147.598 263 1 0 44.9032 -127.41 -175.85 - 77 110.956 1101 0 1 40.3646 -129.217 -204.45 - 77 127.253 254 0 0 40.1138 -129.221 -205.85 -Number of digits in this event = 26 -Using G4ParticleGun ... -8.82511 LIN -e- +Number of tracker hits in this event: 49 + 77 109.056 899 10 1 -0.0851439 -34.2338 95.55 + 77 169.318 729 10 0 -0.0889448 -34.2347 94.15 + 77 195.017 899 9 1 -0.175955 -34.2763 65.55 + 77 129.342 728 9 0 -0.181798 -34.2805 64.15 + 77 121.765 898 8 1 -0.291072 -34.3785 35.55 + 77 137.359 728 8 0 -0.295619 -34.3846 34.15 + 77 128.693 898 7 1 -0.388565 -34.5305 5.55 + 77 123.098 727 7 0 -0.392761 -34.5368 4.15 + 77 125.834 897 6 1 -0.471905 -34.6647 -24.45 + 77 263.589 726 6 0 -0.478852 -34.6686 -25.85 + 77 135.053 897 5 1 -0.618092 -34.742 -54.45 + 77 484.114 726 5 0 -0.622525 -34.7419 -55.85 + 77 174.675 896 4 1 -0.697485 -34.7114 -84.45 + 77 96.1976 726 4 0 -0.700514 -34.7137 -85.85 + 77 123.347 896 3 1 -0.7607 -34.7521 -114.45 + 77 116.594 726 3 0 -0.763544 -34.7531 -115.85 + 77 141.13 896 2 1 -0.822418 -34.7786 -144.45 + 77 105.365 726 2 0 -0.824958 -34.7791 -145.85 + 77 453.264 895 1 1 -0.875856 -34.8015 -174.45 + 77 162.34 726 1 0 -0.877912 -34.8016 -175.85 + 77 14.0507 895 0 1 -0.854498 -34.628 -204.45 + 77 137.247 896 0 1 -0.85 -34.5783 -204.489 + 77 63.9416 736 0 0 -0.827261 -32.8446 -205.85 + 77 66.0454 737 0 0 -0.824845 -32.65 -206.004 + 77 26.5451 738 0 0 -0.815465 -32.4499 -206.196 + 77 131.343 1064 5 0 -27.7884 32.8993 -56.2495 + 77 6.28992 1463 5 0 102.787 112.763 -56.25 + 77 428.174 783 4 1 -23.3191 -162.356 -84.4501 + 77 96.4034 895 2 1 -0.850295 -34.7732 -144.635 + 77 2.07833 894 2 1 -1.05015 -34.7644 -144.845 + 77 95.0931 722 2 0 -2.62937 -35.493 -145.85 + 77 334.304 721 2 0 -2.75091 -35.65 -145.946 + 77 38.5197 896 5 1 -0.65 -34.7442 -54.6896 + 77 248.25 769 5 1 -26.1968 -38.6985 -54.45 + 77 76.723 715 1 0 -0.761769 -36.8984 -175.851 + 77 92.5509 714 1 0 -0.733274 -37.05 -176.018 + 77 14.1974 713 1 0 -0.706641 -37.25 -176.223 + 77 142.025 907 0 1 1.55373 -67.7169 -204.45 + 77 34.2297 552 0 0 1.80454 -69.5604 -205.85 + 77 90.3093 551 0 0 1.82072 -69.6503 -205.916 + 77 90.2432 550 0 0 1.84886 -69.85 -206.096 + 77 0.71461 549 0 0 1.87848 -70.0502 -206.249 + 77 35.5401 666 0 0 -7.79747 -46.65 -206.092 + 77 329.661 672 0 0 18.0708 -45.5032 -206.25 + 77 144.942 721 1 0 -0.992267 -35.6616 -175.85 + 77 249.314 884 0 1 -3.06843 -40.7598 -204.45 + 77 119.246 696 0 0 -3.49586 -40.823 -205.85 + 77 36.8717 385 0 0 -26.4731 -103.15 -206.03 + 77 86.6446 386 0 0 -25.8526 -102.95 -206.199 +Number of digits in this event: 27 +Using G4ParticleGun... +Particle energy: 3.27587 LIN +Particle: e- Event: 78 -Number of tracker hits in this event = 35 - 78 281.04 1083 11 1 36.676 45.1192 125.55 - 78 151.92 1125 11 0 36.6755 45.1197 124.15 - 78 118.21 1083 10 1 36.6706 45.1311 95.55 - 78 148.14 1125 10 0 36.6702 45.1316 94.15 - 78 102.648 1083 9 1 36.6611 45.1438 65.55 - 78 164.293 1125 9 0 36.6605 45.1445 64.15 - 78 105.222 1082 8 1 36.6488 45.1576 35.55 - 78 126.914 1125 8 0 36.648 45.159 34.15 - 78 112.622 1082 7 1 36.6337 45.1921 5.55 - 78 109.325 1125 7 0 36.6333 45.194 4.15 - 78 143.656 1082 6 1 36.6231 45.2277 -24.45 - 78 151.329 1125 6 0 36.6234 45.2284 -25.85 - 78 114.679 1082 5 1 36.6307 45.2422 -54.45 - 78 115.482 1125 5 0 36.6307 45.2432 -55.85 - 78 133.648 1082 4 1 36.6326 45.2675 -84.45 - 78 150.55 1126 4 0 36.6326 45.2678 -85.85 - 78 132.856 1082 3 1 36.6294 45.276 -114.45 - 78 159.188 1126 3 0 36.6292 45.2762 -115.85 - 78 121.613 1082 2 1 36.6255 45.2825 -144.45 - 78 164.608 1126 2 0 36.6245 45.2822 -145.85 - 78 98.1745 1082 1 1 36.6003 45.2752 -174.45 - 78 118.494 1126 1 0 36.601 45.2747 -175.85 - 78 105.122 1082 0 1 36.6187 45.2592 -204.45 - 78 135.576 1126 0 0 36.6191 45.2577 -205.85 - 78 168.844 850 8 1 -9.97597 -63.241 35.15 - 78 182.01 851 8 1 -9.85 -63.2224 35.4021 - 78 141.256 584 8 0 -9.27516 -63.124 34.1499 - 78 193.604 585 8 0 -9.09583 -63.0497 34.0048 - 78 61.3061 752 4 1 -29.5156 -87.1363 -84.85 - 78 103.062 751 4 1 -29.65 -87.2402 -84.7649 - 78 104.995 459 4 0 -30.682 -88.156 -85.85 - 78 113.741 1029 0 1 25.9278 -28.2386 -204.85 - 78 69.9847 723 0 0 28.1414 -35.25 -206.111 - 78 293.898 666 14 1 -46.7258 57.7708 215.15 - 78 20.259 665 14 1 -46.85 57.8455 215.27 -Number of digits in this event = 21 -Using G4ParticleGun ... -9.4233 LIN -e- +Number of tracker hits in this event: 121 + 78 127.828 468 9 1 -86.3696 89.9689 65.55 + 78 147.946 1349 9 0 -86.3711 89.9695 64.15 + 78 133.037 468 8 1 -86.405 89.9704 35.55 + 78 146.047 1349 8 0 -86.4065 89.9694 34.15 + 78 276.135 468 7 1 -86.4349 89.9167 5.55 + 78 277.82 1349 7 0 -86.4359 89.9134 4.15 + 78 201.814 467 6 1 -86.4631 89.8491 -24.45 + 78 155.314 1348 6 0 -86.4635 89.8485 -25.85 + 78 104.002 467 5 1 -86.4764 89.8175 -54.45 + 78 111.571 1348 5 0 -86.4776 89.8164 -55.85 + 78 127.915 467 4 1 -86.514 89.7906 -84.45 + 78 134.092 1348 4 0 -86.5154 89.7884 -85.85 + 78 478.051 467 3 1 -86.5503 89.7581 -114.45 + 78 371.321 1348 3 0 -86.5526 89.7543 -115.85 + 78 260.81 467 2 1 -86.6075 89.6769 -144.45 + 78 133.961 1348 2 0 -86.6076 89.674 -145.85 + 78 168.734 467 1 1 -86.6224 89.6431 -174.45 + 78 130.166 1347 1 0 -86.6241 89.6339 -175.85 + 78 115.752 466 0 1 -86.6598 89.4589 -204.45 + 78 100.007 1347 0 0 -86.6638 89.4606 -205.85 + 78 241.443 1350 2 0 -86.6211 90.3342 -145.85 + 78 119.833 464 1 1 -87.1007 90.6793 -174.45 + 78 117.32 1352 1 0 -87.1366 90.6395 -175.85 + 78 162.95 460 0 1 -87.9587 89.7258 -204.45 + 78 109.667 1349 0 0 -87.7428 89.8816 -205.85 + 78 148.131 1291 0 0 -62.5108 78.4307 -206.25 + 78 80.0712 1290 0 0 -62.3503 78.2498 -206.131 + 78 62.2566 1289 0 0 -62.2567 78.05 -205.993 + 78 60.5162 1288 0 0 -62.2022 77.8495 -205.911 + 78 56.2474 1287 0 0 -62.1198 77.65 -205.906 + 78 62.0347 1286 0 0 -62.0986 77.45 -205.971 + 78 202.235 1285 0 0 -62.061 77.25 -205.97 + 78 98.2874 1284 0 0 -61.8965 77.05 -205.957 + 78 125.887 1283 0 0 -61.7166 76.85 -206.135 + 78 145.95 1282 0 0 -61.7478 76.65 -206.191 + 78 206.713 590 0 1 -61.8729 76.4154 -204.85 + 78 135.427 468 2 1 -86.3121 89.6345 -144.45 + 78 173.784 1347 2 0 -86.2961 89.6244 -145.85 + 78 190.103 470 1 1 -85.9322 89.4037 -174.45 + 78 161.582 1346 1 0 -85.9233 89.3958 -175.85 + 78 110.792 471 0 1 -85.7306 89.2828 -204.45 + 78 109.542 1346 0 0 -85.7156 89.2755 -205.85 + 78 45.7696 466 3 1 -86.65 89.7203 -114.683 + 78 113.333 1347 3 0 -87.2899 89.5733 -115.85 + 78 54.0372 386 2 1 -102.808 84.7603 -144.45 + 78 59.7483 385 2 1 -102.951 84.7928 -144.533 + 78 65.0897 384 2 1 -103.15 84.8349 -144.628 + 78 64.564 383 2 1 -103.35 84.8782 -144.71 + 78 38.6778 382 2 1 -103.55 84.939 -144.8 + 78 78.3112 1327 2 0 -105.626 85.5523 -145.85 + 78 168.912 1328 2 0 -105.866 85.6501 -145.95 + 78 115.536 1329 2 0 -106.316 85.85 -146.06 + 78 469.811 1330 2 0 -106.737 86.0503 -146.138 + 78 47.3823 49 1 1 -170.23 111.817 -174.45 + 78 82.0708 50 1 1 -170.15 111.823 -174.535 + 78 107.29 51 1 1 -169.95 111.832 -174.688 + 78 103.367 52 1 1 -169.75 111.761 -174.781 + 78 34.9895 1447 1 0 -169.915 109.639 -175.85 + 78 85.7617 1446 1 0 -169.937 109.55 -175.895 + 78 122.205 1445 1 0 -169.995 109.35 -176.07 + 78 206.692 1331 2 0 -107.023 86.25 -146.198 + 78 109.743 1332 2 0 -107.166 86.45 -146.096 + 78 121.226 499 5 1 -80.2434 68.3495 -54.4506 + 78 45.132 1239 5 0 -80.0987 67.8893 -55.85 + 78 85.5125 1238 5 0 -80.0921 67.85 -55.9817 + 78 77.9779 1155 5 0 -105.081 51.095 -56.2499 + 78 68.1025 1154 5 0 -105.258 51.05 -56.0336 + 78 166.843 370 5 1 -106.047 50.4715 -54.85 + 78 79.0592 369 5 1 -106.15 50.3901 -54.6808 + 78 197.317 1090 6 0 -119.945 38.235 -26.2499 + 78 56.0845 300 6 1 -120.014 38.8315 -24.8499 + 78 352.369 299 6 1 -120.15 38.8845 -24.7677 + 78 121.678 466 6 1 -86.816 92.0817 -24.4502 + 78 225.765 1360 6 0 -86.607 92.2282 -25.85 + 78 123.275 485 5 1 -82.8839 94.8966 -54.45 + 78 154.527 1376 5 0 -83.043 95.384 -55.85 + 78 131.033 470 4 1 -85.927 106.986 -84.45 + 78 92.7233 469 4 1 -86.05 107.296 -84.6694 + 78 11.4736 1442 4 0 -86.698 108.726 -85.8503 + 78 100.475 1443 4 0 -86.709 108.75 -85.8704 + 78 87.6973 1444 4 0 -86.7971 108.95 -86.0368 + 78 25.0862 1445 4 0 -86.8827 109.15 -86.2031 + 78 12.8803 394 3 1 -101.326 142.886 -114.45 + 78 149.504 393 3 1 -101.35 142.914 -114.501 + 78 86.5312 1617 3 0 -101.931 143.604 -115.85 + 78 48.442 1618 3 0 -102.049 143.75 -116.14 + 78 203.089 324 2 1 -115.234 157.739 -144.45 + 78 84.4564 1690 2 0 -115.307 158.245 -145.85 + 78 40.9883 1691 2 0 -115.327 158.35 -146.135 + 78 103.617 315 1 1 -116.995 167.629 -174.45 + 78 59.2862 314 1 1 -117.15 167.731 -174.676 + 78 1164.52 1740 1 0 -117.942 168.218 -175.85 + 78 1425.11 1739 1 0 -120.861 168.15 -176.103 + 78 8.9041 217 1 1 -136.717 168.469 -174.85 + 78 63.8997 216 1 1 -136.75 168.47 -174.847 + 78 74.4315 215 1 1 -136.95 168.474 -174.832 + 78 56.8814 214 1 1 -137.15 168.48 -174.814 + 78 51.3361 213 1 1 -137.35 168.488 -174.792 + 78 55.5679 212 1 1 -137.55 168.49 -174.773 + 78 47.3321 211 1 1 -137.75 168.487 -174.755 + 78 62.7696 210 1 1 -137.95 168.492 -174.737 + 78 60.5951 209 1 1 -138.15 168.507 -174.713 + 78 83.0504 208 1 1 -138.35 168.521 -174.687 + 78 58.8868 207 1 1 -138.55 168.535 -174.659 + 78 87.3519 206 1 1 -138.75 168.546 -174.629 + 78 64.5911 205 1 1 -138.95 168.566 -174.596 + 78 102.739 204 1 1 -139.15 168.589 -174.56 + 78 66.1657 203 1 1 -139.35 168.619 -174.523 + 78 47.5577 202 1 1 -139.55 168.657 -174.479 + 78 45.0774 201 1 1 -139.813 168.687 -174.45 + 78 55.6323 200 1 1 -139.95 168.663 -174.474 + 78 60.6006 199 1 1 -140.15 168.626 -174.512 + 78 69.8959 198 1 1 -140.35 168.594 -174.552 + 78 56.2527 197 1 1 -140.55 168.559 -174.592 + 78 59.4438 196 1 1 -140.75 168.524 -174.644 + 78 79.6021 195 1 1 -140.95 168.49 -174.701 + 78 58.4366 194 1 1 -141.15 168.446 -174.766 + 78 15.407 193 1 1 -141.35 168.404 -174.83 + 78 47.6517 1737 1 0 -144.644 167.589 -175.85 + 78 299.184 1736 1 0 -144.8 167.55 -175.899 + 78 132.45 1735 1 0 -145.632 167.35 -176.151 +Number of digits in this event: 49 +Using G4ParticleGun... +Particle energy: 7.79918 LIN +Particle: e- Event: 79 -Number of tracker hits in this event = 64 - 79 148.505 526 8 1 -74.7493 -118.289 35.55 - 79 112.893 309 8 0 -74.7488 -118.289 34.15 - 79 148.271 526 7 1 -74.7371 -118.284 5.55 - 79 129.218 309 7 0 -74.7363 -118.284 4.15 - 79 545.312 526 6 1 -74.7178 -118.298 -24.45 - 79 336.983 309 6 0 -74.7177 -118.299 -25.85 - 79 246.718 526 5 1 -74.7153 -118.313 -54.45 - 79 251.278 309 5 0 -74.716 -118.313 -55.85 - 79 199.209 526 4 1 -74.7283 -118.324 -84.45 - 79 138.117 309 4 0 -74.7308 -118.324 -85.85 - 79 129.026 526 3 1 -74.7847 -118.31 -114.45 - 79 96.386 309 3 0 -74.7877 -118.309 -115.85 - 79 119.16 526 2 1 -74.8474 -118.289 -144.45 - 79 115.068 309 2 0 -74.8511 -118.289 -145.85 - 79 113.618 525 1 1 -74.9227 -118.287 -174.45 - 79 266.804 309 1 0 -74.9287 -118.287 -175.85 - 79 143.535 524 0 1 -75.0528 -118.299 -204.45 - 79 132.107 309 0 0 -75.0596 -118.299 -205.85 - 79 14.144 354 0 1 -109.15 -88.7813 -204.543 - 79 112.528 480 8 1 -83.9675 -137.876 35.15 - 79 40.7014 158 2 1 -148.436 -45.9147 -144.45 - 79 113.427 159 2 1 -148.35 -45.9127 -144.512 - 79 105.246 670 2 0 -148.057 -45.9124 -145.85 - 79 117.153 671 2 0 -147.825 -45.85 -146.015 - 79 66.8652 672 2 0 -147.556 -45.65 -146.059 - 79 271.568 673 2 0 -147.529 -45.45 -146.066 - 79 0.0308624 674 2 0 -147.514 -45.2499 -145.85 - 79 23.1031 167 2 1 -146.669 -43.3638 -144.85 - 79 193.412 691 2 0 -145.815 -41.7133 -145.85 - 79 34.8225 355 0 1 -109.15 -88.781 -204.528 - 79 23.9237 310 5 0 -74.7314 -118.15 -56.168 - 79 117.102 523 4 1 -75.3577 -117.298 -84.45 - 79 97.507 314 4 0 -75.392 -117.257 -85.85 - 79 165.976 520 3 1 -75.992 -116.488 -114.45 - 79 118.07 318 3 0 -76.0251 -116.428 -115.85 - 79 119.639 516 2 1 -76.7211 -115.146 -144.45 - 79 120.655 325 2 0 -76.7802 -115.093 -145.85 - 79 102.343 510 1 1 -77.9801 -114.04 -174.45 - 79 104.391 330 1 0 -78.0006 -113.978 -175.85 - 79 120.324 507 0 1 -78.5043 -112.81 -204.45 - 79 73.4027 336 0 0 -78.5262 -112.76 -205.85 - 79 34.289 337 0 0 -78.5303 -112.75 -206.12 - 79 66.8799 338 0 0 -79.1375 -112.451 -205.85 - 79 43.0252 339 0 0 -79.2018 -112.35 -205.874 - 79 27.1022 499 0 1 -80.0509 -111.229 -204.85 - 79 10.9774 345 0 0 -80.5928 -110.961 -205.85 - 79 8.06274 493 0 1 -81.4006 -110.722 -204.85 - 79 47.8319 325 0 0 -83.7515 -114.978 -205.85 - 79 107.007 334 0 0 -78.8169 -113.278 -205.85 - 79 255.529 524 5 1 -75.0796 -118.523 -54.45 - 79 161.14 307 5 0 -75.1579 -118.561 -55.85 - 79 143.485 517 4 1 -76.4733 -119.033 -84.45 - 79 127.466 305 4 0 -76.5465 -119.11 -85.85 - 79 5.90096 508 3 1 -78.4491 -120.421 -114.45 - 79 117.431 507 3 1 -78.45 -120.422 -114.468 - 79 126.034 298 3 0 -78.5148 -120.476 -115.85 - 79 106.274 502 2 1 -79.5266 -121.441 -144.45 - 79 123.468 293 2 0 -79.595 -121.506 -145.85 - 79 133.877 495 1 1 -80.8543 -123.241 -174.45 - 79 210.727 283 1 0 -80.9505 -123.367 -175.85 - 79 117.357 485 0 1 -83.0188 -125.737 -204.45 - 79 137.159 271 0 0 -83.0755 -125.798 -205.85 - 79 60.0567 284 1 0 -81.0245 -123.35 -176.153 - 79 65.7072 1398 8 1 99.9038 126.795 35.5499 -Number of digits in this event = 29 -Using G4ParticleGun ... -4.01486 LIN -e- +Number of tracker hits in this event: 43 + 79 267.584 865 11 1 -6.91246 -7.64038 125.55 + 79 160.088 862 11 0 -6.91297 -7.64084 124.15 + 79 175.516 865 10 1 -6.92421 -7.64954 95.55 + 79 120.503 861 10 0 -6.92493 -7.65106 94.15 + 79 113.648 865 9 1 -6.94202 -7.68858 65.55 + 79 102.435 861 9 0 -6.9419 -7.69235 64.15 + 79 130.623 865 8 1 -6.93909 -7.77351 35.55 + 79 101.605 861 8 0 -6.93794 -7.77844 34.15 + 79 106.973 865 7 1 -6.91378 -7.87605 5.55 + 79 122.603 860 7 0 -6.91227 -7.88152 4.15 + 79 243.605 865 6 1 -6.88058 -7.9954 -24.45 + 79 122.018 860 6 0 -6.87827 -8.00103 -25.85 + 79 121.386 866 5 1 -6.82927 -8.11656 -54.45 + 79 109.828 859 5 0 -6.82595 -8.1222 -55.85 + 79 230.046 866 4 1 -6.75782 -8.24009 -84.45 + 79 160.326 859 4 0 -6.75528 -8.24709 -85.85 + 79 109.039 866 3 1 -6.70607 -8.38935 -114.45 + 79 117.906 858 3 0 -6.70471 -8.3958 -115.85 + 79 101.394 866 2 1 -6.67855 -8.52537 -144.45 + 79 125.718 857 2 0 -6.67745 -8.53017 -145.85 + 79 124.986 866 1 1 -6.65836 -8.62616 -174.45 + 79 119.914 857 1 0 -6.6591 -8.63151 -175.85 + 79 427.209 866 0 1 -6.67617 -8.73898 -204.45 + 79 108.143 856 0 0 -6.67768 -8.74411 -205.85 + 79 243.447 661 2 1 -47.65 -177.963 -144.788 + 79 31.885 325 4 0 21.4717 -114.958 -86.25 + 79 65.9875 324 4 0 21.5106 -115.15 -85.9404 + 79 140.764 1013 4 1 22.7192 -115.126 -84.85 + 79 91.5578 1012 4 1 22.65 -115.109 -84.6557 + 79 94.9913 1517 10 0 -3.32853 123.602 93.75 + 79 76.5145 865 0 1 -6.85 -8.54436 -204.85 + 79 227.867 858 0 0 -7.19916 -8.40606 -205.85 + 79 25.5863 1073 1 1 34.7761 11.9094 -174.85 + 79 217.948 1074 1 1 34.85 11.9066 -174.807 + 79 54.243 948 12 0 28.0322 9.71813 153.75 + 79 97.8705 949 12 0 28.1622 9.85 153.818 + 79 119.777 950 12 0 28.2225 10.05 153.886 + 79 51.3765 951 12 0 28.3605 10.25 153.995 + 79 151.877 1042 12 1 28.5676 8.72311 155.15 + 79 272.391 1043 12 1 28.65 8.38084 155.414 + 79 122.018 1044 12 1 28.85 8.07372 155.358 + 79 55.9103 937 12 0 28.7212 7.62463 154.15 + 79 154.097 938 12 0 28.7016 7.65009 154.102 +Number of digits in this event: 25 +Using G4ParticleGun... +Particle energy: 4.44267 LIN +Particle: e- Event: 80 -Number of tracker hits in this event = 24 - 80 111.27 1478 8 1 115.914 -77.4796 35.55 - 80 109.613 512 8 0 115.913 -77.4783 34.15 - 80 134.882 1478 7 1 115.872 -77.4412 5.55 - 80 110.881 513 7 0 115.872 -77.4467 4.15 - 80 117.466 1478 6 1 115.865 -77.5613 -24.45 - 80 111.096 512 6 0 115.866 -77.5673 -25.85 - 80 111.606 1478 5 1 115.912 -77.6777 -54.45 - 80 225.859 511 5 0 115.916 -77.6802 -55.85 - 80 106.891 1479 4 1 116.011 -77.7263 -84.45 - 80 148.917 511 4 0 116.017 -77.732 -85.85 - 80 168.323 1480 3 1 116.156 -77.7965 -114.45 - 80 100.038 511 3 0 116.156 -77.804 -115.85 - 80 155.294 1479 2 1 116.095 -77.9889 -144.45 - 80 13.7034 510 2 0 116.165 -78.0475 -145.85 - 80 143.373 509 2 0 116.169 -78.05 -145.907 - 80 134.178 1484 1 1 117.062 -78.6974 -174.45 - 80 196.109 507 1 0 117.025 -78.622 -175.85 - 80 114.104 1480 0 1 116.337 -77.0589 -204.45 - 80 166.569 516 0 0 116.279 -76.845 -205.85 - 80 209.22 515 0 0 116.273 -76.85 -206.015 - 80 257.181 1059 0 0 -32.4234 31.9111 -206.25 - 80 16.1002 1060 0 0 -32.8472 32.05 -205.948 - 80 218.64 732 0 1 -33.5145 32.1926 -204.85 - 80 17.7703 1027 0 1 25.65 -45.8825 -204.602 -Number of digits in this event = 14 -Using G4ParticleGun ... -6.52648 LIN -e- +Number of tracker hits in this event: 77 + 80 194.235 1172 9 1 54.4923 106.777 65.55 + 80 112.553 1433 9 0 54.4995 106.78 64.15 + 80 189.719 1173 8 1 54.6563 106.884 35.55 + 80 145.261 1433 8 0 54.6586 106.897 34.15 + 80 122.821 1173 7 1 54.7369 107.159 5.55 + 80 163.129 1435 7 0 54.7361 107.179 4.15 + 80 107.421 1173 6 1 54.7314 107.619 -24.45 + 80 302.22 1437 6 0 54.731 107.64 -25.85 + 80 138.716 1173 5 1 54.7093 108.063 -54.45 + 80 89.9178 1439 5 0 54.7061 108.089 -55.85 + 80 281.154 1172 4 1 54.6239 108.625 -84.45 + 80 123.439 1442 4 0 54.6253 108.651 -85.85 + 80 308.833 1173 3 1 54.6503 109.204 -114.45 + 80 127.952 1445 3 0 54.6524 109.235 -115.85 + 80 247.373 1173 2 1 54.7284 109.874 -144.45 + 80 130.35 1448 2 0 54.7311 109.898 -145.85 + 80 113.419 1173 1 1 54.7709 110.394 -174.45 + 80 100.601 1451 1 0 54.7774 110.42 -175.85 + 80 378.03 1174 0 1 54.9159 110.972 -204.45 + 80 410.063 1454 0 0 54.9194 110.99 -205.85 + 80 238.274 1172 7 1 54.5036 106.747 5.55 + 80 210.636 1432 7 0 54.4935 106.749 4.15 + 80 29.4237 1433 7 0 54.4914 106.75 3.87117 + 80 114.519 1170 6 1 54.1796 106.822 -24.45 + 80 119.088 1433 6 0 54.168 106.822 -25.85 + 80 110.594 1169 5 1 53.9116 106.778 -54.45 + 80 138.183 1433 5 0 53.8943 106.777 -55.85 + 80 114.276 1166 4 1 53.4349 106.673 -84.45 + 80 240.995 1432 4 0 53.408 106.657 -85.85 + 80 121.032 1163 3 1 52.8409 106.365 -114.45 + 80 404.935 1430 3 0 52.8232 106.347 -115.85 + 80 133.19 1161 2 1 52.4281 105.97 -144.45 + 80 260.951 1428 2 0 52.4152 105.949 -145.85 + 80 116.903 1160 1 1 52.1337 105.518 -174.45 + 80 126.165 1426 1 0 52.1122 105.495 -175.85 + 80 156.247 1158 0 1 51.7026 105.064 -204.45 + 80 127.482 1424 0 0 51.6893 105.03 -205.85 + 80 71.2622 1157 0 1 51.65 105.148 -204.605 + 80 115.433 1426 0 0 51.5334 105.428 -205.85 + 80 109.461 1172 6 1 54.5058 106.677 -24.45 + 80 102.558 1432 6 0 54.5065 106.673 -25.85 + 80 112.774 1172 5 1 54.5189 106.579 -54.45 + 80 263.765 1432 5 0 54.5192 106.578 -55.85 + 80 188.719 1432 3 0 54.7144 106.656 -115.85 + 80 157.862 1174 2 1 54.8596 106.848 -144.45 + 80 165.731 1433 2 0 54.8637 106.859 -145.85 + 80 441.701 1174 1 1 54.9551 107.013 -174.45 + 80 390.577 1434 1 0 54.9493 107.044 -175.85 + 80 114.74 1173 0 1 54.7136 107.669 -204.45 + 80 251.485 1437 0 0 54.6922 107.711 -205.85 + 80 118.478 1180 0 1 56.1704 105.13 -204.45 + 80 44.0207 1181 0 1 56.2501 105.162 -204.742 + 80 158.364 1425 0 0 56.5709 105.293 -205.85 + 80 28.6095 1435 0 0 91.8608 107.35 -206.123 + 80 243.956 1172 3 1 54.5549 106.334 -114.45 + 80 121.964 1427 2 0 54.7945 105.56 -145.85 + 80 130.309 1171 1 1 54.3645 105.833 -174.45 + 80 102.089 1428 1 0 54.3207 105.858 -175.85 + 80 143.597 1167 0 1 53.6197 106.484 -204.45 + 80 233.393 1431 0 0 53.4619 106.455 -205.85 + 80 117.203 1171 2 1 54.3121 105.924 -144.45 + 80 94.1414 1418 1 0 54.9823 103.772 -175.85 + 80 26.3217 1417 1 0 54.9859 103.75 -176.197 + 80 149.04 1175 0 1 55.1987 101.987 -204.45 + 80 126.221 1408 0 0 55.2465 101.94 -205.85 + 80 175.995 1172 0 1 54.509 106.358 -204.548 + 80 132.554 1430 0 0 54.8809 106.192 -205.85 + 80 59.8558 1522 0 0 64.1008 124.577 -206.25 + 80 104.117 1523 0 0 64.0916 124.75 -206.108 + 80 29.1523 1524 0 0 64.0427 124.95 -205.932 + 80 96.6068 1217 0 1 63.575 126.193 -204.85 + 80 85.9282 1216 0 1 63.45 126.388 -204.634 + 80 0.24079 1215 0 1 63.25 126.573 -204.45 + 80 57.9391 1055 7 0 18.1361 31.2356 3.75052 + 80 210.556 1056 7 0 18.1794 31.25 3.89039 + 80 117.484 977 7 1 15.495 31.8981 5.15 + 80 8.11539 976 7 1 15.45 31.9221 5.16646 +Number of digits in this event: 46 +Using G4ParticleGun... +Particle energy: 4.11305 LIN +Particle: e- Event: 81 -Number of tracker hits in this event = 27 - 81 99.6461 509 11 1 -78.1123 4.97406 125.55 - 81 107.092 924 11 0 -78.111 4.97358 124.15 - 81 113.388 509 10 1 -78.0834 4.9674 95.55 - 81 178.055 924 10 0 -78.0819 4.96597 94.15 - 81 138.22 509 9 1 -78.0522 4.93682 65.55 - 81 112.586 924 9 0 -78.0499 4.9393 64.15 - 81 147.988 510 8 1 -78.0141 5.00418 35.55 - 81 135.058 924 8 0 -78.0054 5.0157 34.15 - 81 52.2193 510 7 1 -77.8515 5.23412 5.55 - 81 60.7235 511 7 1 -77.85 5.23423 5.38207 - 81 95.0094 925 7 0 -77.8407 5.23684 4.15 - 81 138.274 512 6 1 -77.6218 5.27277 -24.45 - 81 130.003 926 6 0 -77.6089 5.28278 -25.85 - 81 245.724 513 5 1 -77.3508 5.46927 -54.45 - 81 146.235 927 5 0 -77.3319 5.48194 -55.85 - 81 216.144 515 4 1 -76.948 5.72203 -84.45 - 81 118.552 928 4 0 -76.9304 5.73494 -85.85 - 81 136.387 517 3 1 -76.5946 5.96538 -114.45 - 81 127.521 929 3 0 -76.5775 5.98481 -115.85 - 81 124.819 519 2 1 -76.2387 6.37206 -144.45 - 81 183.128 931 2 0 -76.2103 6.38093 -145.85 - 81 107.897 522 1 1 -75.6404 6.56111 -174.45 - 81 101.96 932 1 0 -75.6295 6.57425 -175.85 - 81 109.984 523 0 1 -75.402 6.86538 -204.45 - 81 176.477 934 0 0 -75.3852 6.8897 -205.85 - 81 177.353 759 1 0 -12.4601 -28.1973 -176.25 - 81 5.20586 1248 2 1 69.65 -135.688 -144.653 -Number of digits in this event = 18 -Using G4ParticleGun ... -4.80558 LIN -e- +Number of tracker hits in this event: 43 + 81 217.575 682 10 1 -43.5865 78.7825 95.55 + 81 134.11 1293 10 0 -43.5872 78.7832 94.15 + 81 121.313 682 9 1 -43.5876 78.7893 65.55 + 81 132.446 1293 9 0 -43.5809 78.7903 64.15 + 81 159.971 683 8 1 -43.444 78.816 35.55 + 81 127.056 1293 8 0 -43.4369 78.8187 34.15 + 81 145.975 683 7 1 -43.2978 78.8837 5.55 + 81 119.897 1294 7 0 -43.2927 78.8877 4.15 + 81 129.413 684 6 1 -43.2155 78.9726 -24.45 + 81 287.549 1294 6 0 -43.2098 78.9779 -25.85 + 81 102.289 684 5 1 -43.0917 79.0904 -54.45 + 81 130.321 1295 5 0 -43.0871 79.0987 -55.85 + 81 145.539 685 4 1 -42.9889 79.2711 -84.45 + 81 134.153 1296 4 0 -42.9839 79.2771 -85.85 + 81 240.234 685 3 1 -42.8783 79.4015 -114.45 + 81 122.478 1296 3 0 -42.8745 79.4076 -115.85 + 81 131.898 686 2 1 -42.7948 79.5389 -144.45 + 81 120.434 1297 2 0 -42.7909 79.5439 -145.85 + 81 166.002 686 1 1 -42.7298 79.6447 -174.45 + 81 42.6093 1297 1 0 -42.7287 79.6496 -175.85 + 81 106.256 1298 1 0 -42.7286 79.65 -175.975 + 81 257.715 686 0 1 -42.7167 79.7439 -204.45 + 81 254.662 1298 0 0 -42.7059 79.7469 -205.85 + 81 160.177 685 0 1 -42.85 79.6694 -204.509 + 81 39.6418 684 0 1 -43.17 79.6575 -204.45 + 81 81.6828 683 0 1 -43.25 79.6185 -204.577 + 81 202.849 1296 0 0 -43.9085 79.4001 -205.85 + 81 149.041 687 1 1 -42.6496 79.6801 -174.645 + 81 21.8164 688 1 1 -42.45 79.9962 -174.827 + 81 33.8358 1303 1 0 -41.449 80.7745 -175.85 + 81 209.364 1304 1 0 -41.407 80.85 -175.925 + 81 154.129 1305 1 0 -41.1251 81.05 -176.003 + 81 20.5751 694 1 1 -41.2084 81.226 -174.85 + 81 46.5867 706 1 1 -38.8234 80.4763 -174.85 + 81 99.5911 1050 1 0 -42.2217 30.2306 -176.25 + 81 74.0407 471 2 0 110.688 -85.6692 -146.25 + 81 423.813 470 2 0 110.806 -85.85 -146.171 + 81 58.9151 469 2 0 110.761 -86.05 -146.109 + 81 128.29 750 2 0 -59.7878 -30.0208 -146.25 + 81 4.85375 599 2 1 -60.2429 -29.7362 -144.85 + 81 160.731 598 2 1 -60.25 -29.7322 -144.83 + 81 209.486 687 0 1 -42.5185 79.8679 -204.45 + 81 515.536 1299 0 0 -42.5487 79.8782 -205.85 +Number of digits in this event: 31 +Using G4ParticleGun... +Particle energy: 5.5522 LIN +Particle: e- Event: 82 -Number of tracker hits in this event = 30 - 82 143.62 408 8 1 -98.4286 -99.7999 35.55 - 82 266.977 401 8 0 -98.4285 -99.799 34.15 - 82 116.828 408 7 1 -98.4271 -99.7843 5.55 - 82 117.236 401 7 0 -98.4271 -99.7844 4.15 - 82 106.264 408 6 1 -98.4181 -99.7811 -24.45 - 82 125.217 401 6 0 -98.4145 -99.7801 -25.85 - 82 159.391 409 5 1 -98.3405 -99.7613 -54.45 - 82 119.215 401 5 0 -98.3368 -99.7612 -55.85 - 82 204.758 409 4 1 -98.2575 -99.7524 -84.45 - 82 109.011 401 4 0 -98.2537 -99.7521 -85.85 - 82 119.746 409 3 1 -98.1789 -99.7495 -114.45 - 82 210.41 402 3 0 -98.1739 -99.7499 -115.85 - 82 120.036 410 2 1 -98.0574 -99.7511 -144.45 - 82 120.788 401 2 0 -98.0502 -99.758 -145.85 - 82 121.382 411 1 1 -97.9025 -99.8759 -174.45 - 82 116.657 401 1 0 -97.8924 -99.8833 -175.85 - 82 279.033 412 0 1 -97.7049 -100.027 -204.45 - 82 114.06 400 0 0 -97.6926 -100.033 -205.85 - 82 163.975 333 3 0 -125.941 -113.502 -116.25 - 82 148.884 334 3 0 -125.895 -113.35 -115.947 - 82 102.899 335 3 0 -126.026 -113.15 -115.936 - 82 43.6076 336 3 0 -126.067 -112.95 -116.16 - 82 15.4717 746 3 0 -117.842 -30.6921 -116.25 - 82 117.447 747 3 0 -117.828 -30.6496 -116.232 - 82 108.458 748 3 0 -117.934 -30.45 -116.19 - 82 21.2614 402 0 0 -97.5454 -99.5613 -205.85 - 82 125.413 403 0 0 -97.537 -99.55 -205.907 - 82 170.079 1294 8 1 78.9933 -2.2098 35.3148 - 82 116.228 411 0 1 -97.7696 -99.8667 -204.45 - 82 177.546 401 0 0 -97.7601 -99.8737 -205.85 -Number of digits in this event = 18 -Using G4ParticleGun ... -4.03557 LIN -e- +Number of tracker hits in this event: 123 + 82 107.022 1271 11 1 74.3469 -5.54839 125.55 + 82 119.357 872 11 0 74.3486 -5.54924 124.15 + 82 172.692 1271 10 1 74.3865 -5.56802 95.55 + 82 150.693 872 10 0 74.3874 -5.56947 94.15 + 82 111.278 1271 9 1 74.4113 -5.59923 65.55 + 82 118.724 872 9 0 74.4127 -5.59979 64.15 + 82 212.244 1271 8 1 74.4431 -5.60482 35.55 + 82 114.079 872 8 0 74.4453 -5.60408 34.15 + 82 113.341 1272 7 1 74.483 -5.58446 5.55 + 82 238.468 872 7 0 74.4859 -5.58407 4.15 + 82 691.923 1272 6 1 74.5417 -5.57911 -24.45 + 82 344.943 872 6 0 74.5462 -5.5771 -25.85 + 82 324.31 1272 5 1 74.6358 -5.53352 -54.45 + 82 210.052 872 5 0 74.6384 -5.52918 -55.85 + 82 225.902 1273 4 1 74.6906 -5.43557 -84.45 + 82 109.04 873 4 0 74.6971 -5.43429 -85.85 + 82 301.998 1273 3 1 74.8356 -5.41492 -114.45 + 82 115.395 873 3 0 74.8436 -5.41533 -115.85 + 82 340.705 1274 2 1 74.991 -5.43798 -144.45 + 82 336.99 873 2 0 74.9954 -5.43482 -145.85 + 82 416.762 1275 1 1 75.0732 -5.35064 -174.45 + 82 341.354 873 1 0 75.078 -5.34619 -175.85 + 82 99.0894 1275 0 1 75.2091 -5.26473 -204.45 + 82 136.753 873 0 0 75.2176 -5.2601 -205.85 + 82 1.05241 566 5 1 -66.6544 -65.7958 -54.45 + 82 31.3633 231 6 0 48.4788 -133.824 -26.25 + 82 357.592 232 6 0 48.52 -133.75 -26.2062 + 82 16.6608 863 3 0 -50.4731 -7.3875 -116.25 + 82 156.594 1272 1 1 74.5929 -5.336 -174.45 + 82 103.623 1272 0 1 74.5566 -5.6571 -204.45 + 82 223.599 872 0 0 74.5653 -5.62879 -205.85 + 82 96.4304 872 1 0 75.1069 -5.51064 -175.85 + 82 126.503 1276 0 1 75.28 -5.55595 -204.45 + 82 29.0567 872 4 0 74.6953 -5.45 -86.1942 + 82 198.972 887 4 0 49.7056 -2.53757 -86.2499 + 82 106.421 870 5 0 74.6383 -5.88916 -55.85 + 82 105.64 868 4 0 74.7645 -6.28162 -85.85 + 82 106.248 865 3 0 74.8034 -6.88552 -115.85 + 82 118.259 1273 2 1 74.8028 -7.55613 -144.45 + 82 106.107 862 2 0 74.795 -7.59389 -145.85 + 82 124.478 1273 1 1 74.6551 -8.36801 -174.45 + 82 106.38 858 1 0 74.6416 -8.40167 -175.85 + 82 102.693 1271 0 1 74.3777 -9.08939 -204.45 + 82 91.2106 854 0 0 74.3815 -9.12914 -205.85 + 82 9.24486 1274 3 1 75.0246 -5.82598 -114.45 + 82 119.23 1275 3 1 75.05 -5.80366 -114.465 + 82 265.311 1276 3 1 75.25 -5.60219 -114.612 + 82 70.3872 1277 3 1 75.45 -5.42849 -114.761 + 82 44.9757 880 3 0 77.2173 -3.90539 -115.85 + 82 218.091 881 3 0 77.2858 -3.84987 -115.896 + 82 227.297 1272 3 1 74.5512 -5.67423 -114.45 + 82 100.693 870 3 0 74.707 -5.88623 -115.85 + 82 119.801 834 3 0 81.5772 -13.1096 -116.25 + 82 206.32 1309 3 1 81.9153 -13.1821 -114.85 + 82 116.528 1308 3 1 81.8498 -13.1753 -114.527 + 82 71.8137 1307 3 1 81.65 -12.9714 -114.641 + 82 83.6864 1306 3 1 81.45 -12.8448 -114.698 + 82 214.437 1305 3 1 81.25 -12.7034 -114.749 + 82 89.2246 1304 3 1 81.0498 -12.5327 -114.779 + 82 22.6534 1303 3 1 80.85 -12.4164 -114.819 + 82 121.406 844 3 0 80.1547 -11.1061 -115.85 + 82 235.078 845 3 0 80.1396 -11.05 -115.914 + 82 229.919 1091 3 0 60.9135 38.2519 -116.249 + 82 180.623 1090 3 0 60.7771 38.25 -116.13 + 82 100.262 1089 3 0 60.6279 38.05 -116.168 + 82 64.4266 1092 3 0 60.3196 38.45 -116.211 + 82 163.441 1054 3 0 61.6547 30.9474 -116.25 + 82 245.202 1281 2 1 76.2555 -9.73628 -144.45 + 82 63.8334 1282 2 1 76.45 -9.65613 -144.587 + 82 88.6473 1283 2 1 76.65 -9.56412 -144.718 + 82 43.1852 1284 2 1 76.8501 -9.51298 -144.805 + 82 11.0129 1285 2 1 77.05 -9.46657 -144.847 + 82 166.709 883 2 0 97.7252 -3.33779 -145.85 + 82 370.156 884 2 0 98.192 -3.25 -145.907 + 82 20.5334 1784 1 1 177.027 0.225408 -174.45 + 82 71.305 1783 1 1 176.95 0.250658 -174.492 + 82 93.7721 1782 1 1 176.75 0.240659 -174.585 + 82 72.8425 1781 1 1 176.55 0.216848 -174.63 + 82 129.961 1780 1 1 176.35 0.373147 -174.672 + 82 57.3086 1779 1 1 176.15 0.584754 -174.643 + 82 71.2197 1778 1 1 175.949 0.701373 -174.578 + 82 85.2931 1777 1 1 175.75 0.793277 -174.615 + 82 66.5271 1776 1 1 175.55 0.980008 -174.759 + 82 62.2443 920 1 0 174.055 4.13133 -175.85 + 82 84.4669 921 1 0 173.912 4.25005 -175.883 + 82 26.4579 1758 1 1 171.813 3.56135 -174.85 + 82 250.909 1757 1 1 171.75 3.52532 -174.815 + 82 240.172 1756 1 1 171.55 3.42652 -174.518 + 82 35.4373 1271 3 1 74.45 -5.67437 -114.706 + 82 210.984 872 3 0 73.7812 -5.59986 -115.85 + 82 67.8563 712 3 0 44.8212 -37.6123 -116.25 + 82 60.9054 711 3 0 44.8936 -37.65 -116.063 + 82 125.786 1125 3 1 45.1077 -37.8792 -114.85 + 82 183.169 1126 3 1 45.25 -37.892 -114.488 + 82 140.065 1127 3 1 45.45 -37.6415 -114.784 + 82 33.0966 1128 3 1 45.6501 -37.4917 -114.831 + 82 279.576 722 3 0 47.8243 -35.6149 -115.85 + 82 40.8878 723 3 0 47.7689 -35.45 -115.995 + 82 148.499 1273 5 1 74.6598 -5.5929 -54.45 + 82 193.245 1274 4 1 74.9205 -5.67196 -84.45 + 82 98.2697 871 4 0 74.9355 -5.67254 -85.85 + 82 110.405 871 3 0 75.2718 -5.69851 -115.85 + 82 117.888 1278 2 1 75.6784 -5.89637 -144.45 + 82 113.088 870 2 0 75.7029 -5.9136 -145.85 + 82 132.558 1280 1 1 76.1977 -6.2718 -174.45 + 82 101.473 868 1 0 76.2207 -6.286 -175.85 + 82 109.694 1283 0 1 76.7317 -6.54786 -204.45 + 82 122.878 867 0 0 76.7718 -6.5604 -205.85 + 82 125.916 859 4 0 129.725 -8.10058 -86.2498 + 82 145.423 858 4 0 129.535 -8.25 -86.1972 + 82 230.826 1543 4 1 128.911 -8.76312 -84.85 + 82 241.737 1544 4 1 128.95 -9.1991 -84.531 + 82 353.631 1276 1 1 75.3724 -5.81549 -174.45 + 82 94.1211 1274 1 1 75.0499 -5.91133 -174.802 + 82 132.485 870 1 0 74.6272 -5.88378 -175.85 + 82 247.459 871 1 0 74.6277 -5.85 -175.922 + 82 138.32 604 1 1 -59.05 -164.7 -174.757 + 82 181.703 1277 1 1 75.45 -6.64053 -174.558 + 82 70.819 1278 1 1 75.6501 -7.01583 -174.56 + 82 41.3508 1279 1 1 75.85 -7.13011 -174.753 + 82 60.2702 863 1 0 76.7086 -7.41656 -175.851 + 82 73.475 862 1 0 76.843 -7.45 -176.02 + 82 109.45 1273 7 1 74.7166 -5.64613 5.1502 +Number of digits in this event: 58 +Using G4ParticleGun... +Particle energy: 9.60892 LIN +Particle: e- Event: 83 -Number of tracker hits in this event = 49 - 83 120.148 1105 8 1 41.2104 -134.731 35.55 - 83 156.831 227 8 0 41.2092 -134.732 34.15 - 83 119.194 1105 7 1 41.1818 -134.748 5.55 - 83 122.187 227 7 0 41.1819 -134.749 4.15 - 83 135.287 1105 6 1 41.1897 -134.768 -24.45 - 83 125.925 226 6 0 41.1893 -134.769 -25.85 - 83 168.04 1105 5 1 41.177 -134.798 -54.45 - 83 119.461 226 5 0 41.1745 -134.803 -55.85 - 83 118.274 1105 4 1 41.1272 -134.92 -84.45 - 83 114.793 226 4 0 41.1239 -134.927 -85.85 - 83 608.177 1105 3 1 41.0749 -135.064 -114.45 - 83 458.224 225 3 0 41.0759 -135.07 -115.85 - 83 93.8618 1105 2 1 41.0991 -135.201 -144.45 - 83 224.129 224 2 0 41.1001 -135.209 -145.85 - 83 159.416 1105 1 1 41.1222 -135.371 -174.45 - 83 127.162 223 1 0 41.1232 -135.381 -175.85 - 83 271.961 1105 0 1 41.1438 -135.573 -204.45 - 83 101.247 222 0 0 41.1453 -135.583 -205.85 - 83 152.98 1103 2 1 40.7786 -136.011 -144.45 - 83 345.228 220 2 0 40.7312 -136.007 -145.85 - 83 135.334 1100 1 1 40.187 -135.867 -174.45 - 83 234.362 220 1 0 40.185 -135.954 -175.85 - 83 276.39 1101 0 1 40.2659 -137.214 -204.45 - 83 125.096 213 0 0 40.376 -137.371 -205.85 - 83 9.34444 1121 2 1 44.2652 -135.843 -144.45 - 83 165.177 1120 2 1 44.25 -135.869 -144.482 - 83 113.642 215 2 0 43.5823 -136.966 -145.85 - 83 74.8591 214 2 0 43.4731 -137.15 -146.078 - 83 196.04 1041 1 1 28.4152 -161.977 -174.45 - 83 8.3012 1040 1 1 28.25 -162.207 -174.804 - 83 34.1087 86 1 0 27.7689 -162.898 -175.85 - 83 133.954 85 1 0 27.733 -162.95 -175.929 - 83 3.72057 84 1 0 27.5908 -163.15 -176.239 - 83 46.7648 1098 2 1 39.8195 -136.13 -144.45 - 83 183.904 1099 2 1 39.85 -136.122 -144.56 - 83 56.5358 1143 1 1 48.755 -134.896 -174.451 - 83 54.4727 1144 1 1 48.85 -134.855 -174.634 - 83 126.684 227 1 0 49.4733 -134.592 -175.85 - 83 61.5674 228 1 0 49.5673 -134.55 -176.041 - 83 36.4045 1217 0 1 63.5756 -128.042 -204.45 - 83 101.463 1218 0 1 63.65 -128.066 -204.566 - 83 195.012 258 0 0 64.4514 -128.355 -205.85 - 83 50.4813 223 3 0 41.1661 -135.518 -115.85 - 83 123.808 222 3 0 41.1735 -135.55 -115.964 - 83 159.28 1104 0 1 41.0463 -135.106 -204.45 - 83 47.5475 225 0 0 41.0342 -134.966 -205.85 - 83 80.4667 226 0 0 41.0331 -134.95 -206.013 - 83 126.814 228 0 0 41.1486 -134.534 -205.85 - 83 108.536 677 2 0 92.3674 -44.65 -146.05 -Number of digits in this event = 30 -Using G4ParticleGun ... -8.09837 LIN -e- +Number of tracker hits in this event: 87 + 83 124.146 1262 10 1 72.4666 -60.7371 95.55 + 83 193.943 596 10 0 72.4666 -60.7371 94.15 + 83 99.9392 1262 9 1 72.4634 -60.7376 65.55 + 83 132.738 596 9 0 72.4639 -60.7372 64.15 + 83 153.732 1262 8 1 72.4758 -60.7254 35.55 + 83 114.581 596 8 0 72.4761 -60.7255 34.15 + 83 116.736 1262 7 1 72.4809 -60.7248 5.55 + 83 189.185 596 7 0 72.4807 -60.7238 4.15 + 83 125.331 1262 6 1 72.4741 -60.6983 -24.45 + 83 193.594 596 6 0 72.4745 -60.6972 -25.85 + 83 111.136 1262 5 1 72.4836 -60.6669 -54.45 + 83 115.572 596 5 0 72.4834 -60.6643 -55.85 + 83 108.54 1262 4 1 72.4877 -60.6069 -84.45 + 83 132.914 597 4 0 72.487 -60.6052 -85.85 + 83 383.135 1262 3 1 72.4798 -60.5727 -114.45 + 83 367.605 597 3 0 72.481 -60.5734 -115.85 + 83 561.983 1262 2 1 72.5067 -60.5846 -144.45 + 83 398.249 597 2 0 72.5093 -60.584 -145.85 + 83 115.147 1262 1 1 72.5689 -60.579 -174.45 + 83 251.315 597 1 0 72.5735 -60.5811 -175.85 + 83 234.33 1263 0 1 72.6619 -60.6252 -204.45 + 83 107.622 597 0 0 72.6647 -60.6318 -205.85 + 83 116.566 1255 1 1 71.1893 -58.6976 -174.45 + 83 150.071 607 1 0 71.0345 -58.6391 -175.85 + 83 116.43 1239 0 1 67.9693 -57.4894 -204.45 + 83 110.068 613 0 0 67.8144 -57.4226 -205.85 + 83 295.891 1260 1 1 72.2087 -60.6337 -174.45 + 83 128.236 1258 0 1 71.7688 -60.1049 -204.45 + 83 117.892 599 0 0 71.765 -60.0956 -205.85 + 83 118.225 641 4 1 -51.6951 142.451 -84.85 + 83 111.295 640 4 1 -51.8503 142.318 -84.5696 + 83 150.837 639 4 1 -52.05 142.349 -84.691 + 83 1.50576 638 4 1 -52.25 142.172 -84.8477 + 83 130.296 1616 4 0 -53.1281 143.404 -85.85 + 83 114.313 1615 4 0 -53.1634 143.35 -85.9141 + 83 39.1771 635 4 1 -52.8895 143.77 -84.8499 + 83 237.499 1047 0 0 70.7681 29.45 -206.067 + 83 67.9832 1328 1 1 85.7966 7.32185 -174.85 + 83 33.0638 1048 0 0 70.8885 29.65 -206.011 + 83 102.284 626 5 0 101.143 -54.7799 -56.2499 + 83 98.7924 625 5 0 101.078 -54.85 -56.1303 + 83 224.837 1405 5 1 101.237 -54.9066 -54.85 + 83 62.7034 1406 5 1 101.35 -54.7609 -54.6558 + 83 79.0858 655 3 0 80.3937 -49.0295 -116.25 + 83 279.34 1260 2 1 72.1712 -59.0915 -144.45 + 83 128.645 605 2 0 72.1493 -58.9599 -145.85 + 83 100.143 1256 1 1 71.3866 -56.3742 -174.45 + 83 114.912 619 1 0 71.1897 -56.2311 -175.85 + 83 156.225 1233 0 1 66.8277 -52.8713 -204.45 + 83 133.706 636 0 0 66.6212 -52.7176 -205.85 + 83 10.4684 634 0 0 67.4575 -53.1003 -205.85 + 83 61.0001 1261 2 1 72.2528 -59.052 -144.45 + 83 168.678 1263 2 1 72.65 -58.8774 -144.713 + 83 73.0477 611 2 0 73.8755 -57.829 -145.85 + 83 65.2862 612 2 0 73.9354 -57.65 -145.913 + 83 40.4778 1224 2 1 64.9312 -60.4059 -144.85 + 83 19.9276 1223 2 1 64.85 -60.4832 -144.835 + 83 231.13 594 2 0 64.6193 -61.1358 -145.85 + 83 79.8743 593 2 0 64.5985 -61.2501 -145.905 + 83 110.89 1265 2 1 73.0946 -57.1738 -144.45 + 83 5.7424 614 2 0 73.1858 -57.0508 -145.85 + 83 106.401 615 2 0 73.1863 -57.05 -145.859 + 83 146.643 1274 1 1 74.8779 -54.5852 -174.45 + 83 43.303 627 1 0 74.9827 -54.4643 -175.851 + 83 98.5392 628 1 0 74.997 -54.45 -176.012 + 83 157.387 1289 0 1 77.9118 -52.3121 -204.45 + 83 106.734 639 0 0 78.0448 -52.1753 -205.85 + 83 231.336 1261 3 1 72.4267 -60.7011 -114.45 + 83 112.519 596 3 0 72.4068 -60.7368 -115.85 + 83 113.6 592 2 0 72.2645 -61.6154 -145.85 + 83 104.15 1264 1 1 72.8818 -63.653 -174.45 + 83 112.471 581 1 0 73.0297 -63.6681 -175.85 + 83 0.654302 1279 0 1 76.0498 -63.6997 -204.45 + 83 121.341 1280 0 1 76.05 -63.6996 -204.452 + 83 186.077 582 0 0 76.2178 -63.6353 -205.85 + 83 82.5582 598 3 0 72.3948 -60.315 -115.85 + 83 96.3305 599 3 0 72.3873 -60.2499 -116.089 + 83 253.463 1257 2 1 71.5335 -51.7564 -144.45 + 83 32.1645 643 2 0 71.4121 -51.2942 -145.85 + 83 110.452 644 2 0 71.3996 -51.25 -145.985 + 83 298.695 1244 1 1 69.007 -42.0856 -174.45 + 83 66.1332 691 1 0 69.0027 -41.6965 -175.85 + 83 123.434 692 1 0 69.0022 -41.65 -176.016 + 83 109.459 1244 0 1 68.8632 -33.7486 -204.45 + 83 12.9417 1243 0 1 68.85 -33.6829 -204.81 + 83 75.2223 732 0 0 68.8025 -33.4893 -205.85 + 83 74.0618 733 0 0 68.795 -33.45 -206.06 +Number of digits in this event: 38 +Using G4ParticleGun... +Particle energy: 8.11293 LIN +Particle: e- Event: 84 -Number of tracker hits in this event = 92 - 84 122.623 834 11 1 -13.1276 -17.7444 125.55 - 84 104.003 811 11 0 -13.1281 -17.7439 124.15 - 84 218.49 834 10 1 -13.1365 -17.7319 95.55 - 84 177.779 811 10 0 -13.138 -17.7306 94.15 - 84 162.357 834 9 1 -13.1721 -17.7028 65.55 - 84 116.999 811 9 0 -13.1735 -17.7017 64.15 - 84 126.764 834 8 1 -13.2055 -17.68 35.55 - 84 143.631 811 8 0 -13.2069 -17.6774 34.15 - 84 104.292 834 7 1 -13.2341 -17.6186 5.55 - 84 281.334 812 7 0 -13.2348 -17.6161 4.15 - 84 292.76 833 6 1 -13.2534 -17.5655 -24.45 - 84 185.008 812 6 0 -13.2531 -17.5623 -25.85 - 84 103.361 834 5 1 -13.2247 -17.529 -54.45 - 84 102.374 812 5 0 -13.2206 -17.5328 -55.85 - 84 122.364 834 4 1 -13.1591 -17.6509 -84.45 - 84 254.419 811 4 0 -13.1567 -17.6584 -85.85 - 84 369.081 834 3 1 -13.1109 -17.8275 -114.45 - 84 134.49 811 3 0 -13.1067 -17.8379 -115.85 - 84 128.497 835 2 1 -13.0317 -18.0334 -144.45 - 84 76.0872 810 2 0 -13.0217 -18.0475 -145.85 - 84 38.2009 809 2 0 -13.0199 -18.05 -146.103 - 84 250.689 836 1 1 -12.8353 -18.3204 -174.45 - 84 147.286 808 1 0 -12.8341 -18.3356 -175.85 - 84 226.762 836 0 1 -12.8208 -18.6445 -204.45 - 84 94.9768 806 0 0 -12.8248 -18.6609 -205.85 - 84 113.516 812 3 0 -13.1746 -17.453 -115.85 - 84 195.502 834 2 1 -13.1082 -17.4322 -144.45 - 84 383.926 813 2 0 -13.1024 -17.4307 -145.85 - 84 123.716 835 1 1 -12.9831 -17.4014 -174.45 - 84 152.646 813 1 0 -12.976 -17.402 -175.85 - 84 119.276 813 0 0 -12.842 -17.3805 -205.85 - 84 18.0486 585 5 1 -62.9141 112.982 -54.45 - 84 56.4194 586 5 1 -62.85 112.955 -54.4787 - 84 62.7143 587 5 1 -62.65 112.878 -54.5424 - 84 51.1226 588 5 1 -62.4497 112.848 -54.6218 - 84 63.2761 589 5 1 -62.25 112.754 -54.6265 - 84 63.8009 590 5 1 -62.0498 112.71 -54.5875 - 84 70.069 591 5 1 -61.85 112.642 -54.5306 - 84 199.646 592 5 1 -61.65 112.539 -54.49 - 84 84.7216 593 5 1 -61.45 112.497 -54.5627 - 84 138.951 594 5 1 -61.25 112.502 -54.6141 - 84 81.8418 584 5 1 -63.0734 113.027 -54.45 - 84 80.4064 583 5 1 -63.25 113.046 -54.6045 - 84 18.3448 582 5 1 -63.45 113.045 -54.7866 - 84 144.369 1464 5 0 -64.6811 113.087 -55.85 - 84 124.027 1465 5 0 -65.1147 113.15 -56.1351 - 84 68.7833 833 3 1 -13.2503 -17.4557 -114.636 - 84 149.289 813 3 0 -13.6445 -17.4454 -115.85 - 84 146.555 784 2 1 -23.0893 -17.5442 -144.45 - 84 149.604 811 2 0 -23.4875 -17.7653 -145.85 - 84 158.675 771 1 1 -25.8065 -23.61 -174.45 - 84 5.1028 774 1 0 -25.8875 -25.2361 -175.85 - 84 126.582 773 1 0 -25.8884 -25.25 -175.862 - 84 104.955 772 1 0 -25.8983 -25.4502 -176.013 - 84 56.2092 771 1 0 -25.9107 -25.6504 -176.164 - 84 39.1194 740 0 1 -31.9058 -66.696 -204.45 - 84 130.741 741 0 1 -31.85 -66.7698 -204.594 - 84 22.5815 562 0 0 -31.5423 -67.6043 -205.85 - 84 92.2618 561 0 0 -31.5295 -67.65 -205.917 - 84 22.0596 560 0 0 -31.4891 -67.85 -206.196 - 84 77.1347 783 2 1 -23.2502 -17.6446 -144.691 - 84 122.141 782 2 1 -23.45 -17.8474 -144.748 - 84 368.596 781 2 1 -23.65 -17.9791 -144.788 - 84 57.0306 803 2 0 -24.555 -19.3269 -145.85 - 84 130.578 802 2 0 -24.5564 -19.45 -145.944 - 84 241.915 801 2 0 -24.6197 -19.65 -146.013 - 84 6.95745 741 0 0 -10.8379 -31.7306 -205.85 - 84 117.268 940 4 1 8.05 -56.8846 -84.8481 - 84 298.034 810 6 0 -12.1478 -17.9959 -25.85 - 84 139.848 809 6 0 -11.779 -18.0505 -25.9048 - 84 234.335 808 6 0 -11.7336 -18.2507 -25.985 - 84 86.1576 836 6 1 -12.7207 -16.9795 -24.85 - 84 59.2359 815 6 0 -10.8555 -16.9202 -25.85 - 84 31.9992 813 7 0 -13.1701 -17.45 3.79012 - 84 41.6735 891 1 1 -1.66297 -20.4221 -174.45 - 84 113.249 892 1 1 -1.65 -20.438 -174.553 - 84 109.975 797 1 0 -1.4655 -20.6214 -175.85 - 84 124.913 796 1 0 -1.42748 -20.6501 -176.124 - 84 101.957 915 0 1 3.17375 -23.2389 -204.45 - 84 1.98083 916 0 1 3.25 -23.2721 -204.842 - 84 101.826 783 0 0 3.42156 -23.3542 -205.85 - 84 141.113 888 1 0 -58.6913 -2.37149 -176.25 - 84 61.0093 833 9 1 -13.25 -17.6792 65.4022 - 84 149.833 812 9 0 -13.7795 -17.5052 64.15 - 84 49.2543 813 9 0 -13.8759 -17.45 63.899 - 84 88.3017 835 9 0 3.84093 -12.8612 63.75 - 84 117.758 836 9 0 4.12099 -12.85 63.9628 - 84 55.1861 837 9 0 4.26477 -12.65 63.8735 - 84 76.5246 933 9 0 14.3078 6.69829 63.75 - 84 269.383 932 9 0 14.3491 6.65 63.8129 - 84 102.594 931 9 0 14.256 6.44993 63.914 - 84 13.6119 730 8 1 -33.85 3.68638 35.3451 -Number of digits in this event = 45 -Using G4ParticleGun ... -6.91233 LIN -e- +Number of tracker hits in this event: 60 + 84 138.571 693 11 1 -41.2509 2.68455 125.55 + 84 111.848 913 11 0 -41.2518 2.68441 124.15 + 84 135.668 693 10 1 -41.2693 2.68307 95.55 + 84 163.381 913 10 0 -41.2702 2.68303 94.15 + 84 154.081 693 9 1 -41.3067 2.67951 65.55 + 84 124.733 913 9 0 -41.3089 2.67798 64.15 + 84 312.521 693 8 1 -41.3534 2.64872 35.55 + 84 106.642 912 8 0 -41.3556 2.64686 34.15 + 84 117.333 693 7 1 -41.4033 2.60633 5.55 + 84 113.066 912 7 0 -41.4052 2.60384 4.15 + 84 108.633 693 6 1 -41.4413 2.55046 -24.45 + 84 154.307 912 6 0 -41.4429 2.54736 -25.85 + 84 129.7 692 5 1 -41.4735 2.47946 -54.45 + 84 113.746 912 5 0 -41.4732 2.47663 -55.85 + 84 366.052 692 4 1 -41.4694 2.41267 -84.45 + 84 213.266 911 4 0 -41.4694 2.40978 -85.85 + 84 107.213 692 3 1 -41.4598 2.35191 -114.45 + 84 111.754 911 3 0 -41.4583 2.34936 -115.85 + 84 126.735 693 2 1 -41.4336 2.29732 -144.45 + 84 103.1 911 2 0 -41.4341 2.29411 -145.85 + 84 129.59 693 1 1 -41.4376 2.2219 -174.45 + 84 255.237 910 1 0 -41.4368 2.21852 -175.85 + 84 156.002 693 0 1 -41.425 2.14685 -204.45 + 84 459.003 910 0 0 -41.4249 2.14407 -205.85 + 84 92.2707 990 7 1 18.0889 -83.784 5.15 + 84 240.744 989 7 1 18.05 -83.9779 5.24493 + 84 44.5376 180 1 0 -108.377 -143.95 -176.013 + 84 36.6036 179 1 0 -108.498 -144.15 -175.896 + 84 48.0158 350 1 1 -110.07 -144.697 -174.85 + 84 145.594 349 1 1 -110.15 -144.736 -174.809 + 84 62.6315 348 1 1 -110.35 -145.182 -174.62 + 84 62.3452 915 0 0 -16.6872 3.12057 -206.249 + 84 95.3294 916 0 0 -16.5813 3.25004 -206.104 + 84 74.5612 917 0 0 -16.5483 3.45 -206.005 + 84 97.2007 918 0 0 -16.4665 3.65 -205.993 + 84 26.3519 919 0 0 -16.4507 3.85 -206.177 + 84 0.590995 1322 0 0 46.481 84.45 -206.113 + 84 29.1845 1143 0 1 48.65 84.8392 -204.821 + 84 161.913 691 4 1 -41.65 2.34228 -84.6776 + 84 259.058 692 2 1 -41.5701 2.18607 -144.451 + 84 119.01 910 2 0 -41.6033 2.05167 -145.85 + 84 200.861 909 2 0 -41.6037 2.05 -145.868 + 84 129.465 686 1 1 -42.6705 -1.33382 -174.45 + 84 49.4965 892 1 0 -42.7645 -1.61038 -175.85 + 84 56.5696 891 1 0 -42.7754 -1.65 -176.044 + 84 139.043 678 0 1 -44.3514 -7.55877 -204.45 + 84 111.134 860 0 0 -44.4987 -7.87903 -205.85 + 84 172.449 694 1 1 -41.2335 2.25764 -174.45 + 84 144.042 696 0 1 -40.6638 2.07464 -204.45 + 84 111.407 356 2 1 -108.75 35.3458 -144.705 + 84 118.128 339 1 1 -112.35 10.8511 -174.722 + 84 38.1547 636 6 1 -52.85 -149.046 -24.5387 + 84 28.5643 629 6 1 -54.2217 -151.877 -24.4502 + 84 102.413 628 6 1 -54.25 -151.87 -24.4835 + 84 143.591 1033 2 1 26.7599 -77.4408 -144.45 + 84 99.4564 1032 2 1 26.65 -77.625 -144.743 + 84 203.413 1031 2 1 26.45 -77.6904 -144.79 + 84 120.159 1030 2 1 26.25 -77.6649 -144.774 + 84 134.083 907 8 0 -42.2523 1.55322 34.15 + 84 156.325 912 9 0 -41.3463 2.64997 63.9755 +Number of digits in this event: 32 +Using G4ParticleGun... +Particle energy: 2.7463 LIN +Particle: e- Event: 85 -Number of tracker hits in this event = 138 - 85 114.652 724 11 1 -35.226 -31.7114 125.55 - 85 122.077 741 11 0 -35.226 -31.7106 124.15 - 85 367.392 724 10 1 -35.2177 -31.6898 95.55 - 85 500.135 741 10 0 -35.2177 -31.6888 94.15 - 85 271.172 724 9 1 -35.2162 -31.6761 65.55 - 85 255.907 741 9 0 -35.215 -31.6758 64.15 - 85 296.545 724 8 1 -35.1858 -31.6676 35.55 - 85 134.041 741 8 0 -35.1997 -31.7196 34.149 - 85 105.1 723 7 1 -35.2589 -32.6586 5.55 - 85 139.233 736 7 0 -35.3782 -32.7448 4.15 - 85 100.663 709 6 1 -38.1035 -34.3987 -24.4501 - 85 125.358 727 6 0 -38.144 -34.5484 -25.85 - 85 107.772 699 5 1 -40.1738 -36.2633 -54.45 - 85 279.801 698 5 1 -40.2501 -36.0143 -54.5587 - 85 2.94412 732 5 0 -40.5193 -33.4634 -55.85 - 85 48.467 733 5 0 -40.5204 -33.45 -55.8567 - 85 116.111 734 5 0 -40.5382 -33.2499 -55.9585 - 85 153.492 735 5 0 -40.5625 -33.0499 -56.0498 - 85 288.887 736 5 0 -40.5875 -32.85 -56.1398 - 85 20.0686 737 5 0 -40.6029 -32.65 -56.2213 - 85 15.6656 1673 5 0 -76.003 154.895 -56.25 - 85 95.5393 1674 5 0 -76.0154 154.95 -56.2372 - 85 80.6465 1675 5 0 -76.0586 155.151 -56.1961 - 85 68.9725 1676 5 0 -76.0794 155.35 -56.1713 - 85 61.882 1677 5 0 -76.0795 155.551 -56.1676 - 85 57.2067 1678 5 0 -76.0825 155.75 -56.1598 - 85 74.1936 1679 5 0 -76.0927 155.95 -56.1437 - 85 53.6009 1680 5 0 -76.1156 156.15 -56.1413 - 85 56.2946 1681 5 0 -76.1331 156.35 -56.1538 - 85 80.6682 1682 5 0 -76.1693 156.55 -56.1633 - 85 76.3373 1683 5 0 -76.2191 156.75 -56.166 - 85 56.2984 1684 5 0 -76.2845 156.95 -56.179 - 85 50.7716 1685 5 0 -76.3384 157.15 -56.2111 - 85 50.5102 1686 5 0 -76.3914 157.35 -56.2359 - 85 1044.09 697 5 1 -40.5209 -34.9015 -54.45 - 85 55.4378 746 5 0 -40.2611 -30.797 -55.85 - 85 137.934 747 5 0 -40.2481 -30.65 -55.93 - 85 65.2556 748 5 0 -40.2284 -30.45 -56.0483 - 85 60.4457 749 5 0 -40.1849 -30.25 -56.1553 - 85 41.2193 734 4 1 -33.1696 26.565 -84.45 - 85 131.01 735 4 1 -33.05 26.67 -84.54 - 85 76.164 736 4 1 -32.8498 26.9082 -84.7905 - 85 23.8422 1036 4 0 -32.2431 27.4066 -85.85 - 85 122.986 1037 4 0 -32.2088 27.45 -85.9399 - 85 1.73317 754 3 1 -29.0516 30.787 -114.45 - 85 268.317 755 3 1 -29.05 30.7904 -114.453 - 85 287.961 1060 3 0 -29.1288 32.1479 -115.85 - 85 248.664 1061 3 0 -29.1827 32.25 -115.919 - 85 229.408 1059 3 0 -29.9699 32.05 -115.926 - 85 53.0644 521 1 1 -75.65 93.5372 -174.711 - 85 82.8396 650 4 1 -49.8907 -8.24847 -84.45 - 85 115.18 649 4 1 -50.05 -7.98079 -84.5175 - 85 96.6422 648 4 1 -50.2501 -7.66672 -84.6405 - 85 77.4357 647 4 1 -50.45 -7.29435 -84.7755 - 85 125.755 646 4 1 -50.65 -7.05355 -84.7672 - 85 97.063 645 4 1 -50.8501 -6.73617 -84.6527 - 85 288.771 724 2 1 -35.1245 -31.7832 -144.45 - 85 397.846 741 2 0 -35.1231 -31.7828 -145.85 - 85 769.556 724 1 1 -35.0766 -31.7841 -174.45 - 85 375.224 741 1 0 -35.0764 -31.7833 -175.85 - 85 845.954 724 0 1 -35.0589 -31.7732 -204.45 - 85 433.562 741 0 0 -35.0534 -31.767 -205.85 - 85 146.044 865 0 1 -7.05 -6.6936 -204.776 - 85 64.3834 745 0 0 -35.4627 -30.9555 -205.85 - 85 59.0621 746 0 0 -35.5526 -30.85 -206.049 - 85 121.211 726 8 1 -34.836 -31.8412 35.55 - 85 140.022 740 8 0 -34.8519 -31.8551 34.15 - 85 149.464 724 7 1 -35.1382 -32.026 5.55 - 85 198.156 740 7 0 -35.1156 -32.0064 4.15 - 85 108.241 726 6 1 -34.6803 -31.6874 -24.45 - 85 131.166 741 6 0 -34.7113 -31.7097 -25.85 - 85 208.831 723 5 1 -35.3539 -32.1283 -54.45 - 85 135.623 739 5 0 -35.4011 -32.1186 -55.85 - 85 146.117 718 4 1 -36.3976 -31.8227 -84.45 - 85 148.443 741 4 0 -36.4269 -31.8265 -85.85 - 85 113.339 714 3 1 -37.1133 -31.8704 -114.45 - 85 112.628 740 3 0 -37.14 -31.8662 -115.85 - 85 132.995 711 2 1 -37.8116 -31.7641 -144.45 - 85 439.95 708 1 1 -38.3619 -32.4691 -174.45 - 85 295.908 737 1 0 -38.3366 -32.4843 -175.85 - 85 121.739 711 0 1 -37.7164 -32.826 -204.45 - 85 145.036 735 0 0 -37.6776 -32.9079 -205.85 - 85 65.9018 632 5 1 -53.45 133.999 -54.7863 - 85 71.359 348 0 0 -117.627 -110.35 -205.924 - 85 203.436 311 0 1 -117.82 -110.161 -204.85 - 85 37.4325 705 0 1 -39.0324 -31.2922 -204.45 - 85 86.6465 704 0 1 -39.05 -31.2839 -204.548 - 85 123.55 743 0 0 -39.4607 -31.3468 -205.85 - 85 34.0191 707 0 1 -38.5199 -41.7532 -204.45 - 85 89.9174 738 1 0 -38.4353 -32.3584 -175.85 - 85 122.431 703 0 1 -39.3082 -30.0342 -204.45 - 85 117.227 750 0 0 -39.3668 -29.9168 -205.85 - 85 9.6919 451 5 0 -80.0086 -89.65 -56.2244 - 85 96.3974 733 0 0 -34.1747 -33.3432 -206.25 - 85 104.179 731 0 1 -33.8189 -33.1744 -204.85 - 85 117.745 725 9 1 -35.031 -31.4842 65.55 - 85 117.762 742 9 0 -35.0206 -31.4751 64.15 - 85 163.356 725 8 1 -34.8691 -31.3032 35.55 - 85 113.87 743 8 0 -34.8614 -31.311 34.15 - 85 93.5538 727 7 1 -34.6404 -31.4889 5.55 - 85 124.043 742 7 0 -34.6159 -31.5031 4.15 - 85 127.366 730 6 1 -33.9981 -31.9203 -24.45 - 85 215.359 740 6 0 -33.9485 -31.9559 -25.85 - 85 119.921 735 5 1 -32.9675 -32.7153 -54.45 - 85 157.527 741 4 1 -31.7592 -33.2503 -84.45 - 85 90.9921 734 4 0 -31.7313 -33.0512 -85.85 - 85 168.628 735 4 0 -31.7312 -33.05 -85.8587 - 85 236.665 744 3 1 -31.2304 -28.8784 -114.45 - 85 103.999 756 3 0 -31.1942 -28.6982 -115.85 - 85 5.68229 757 3 0 -31.1848 -28.65 -116.226 - 85 126.971 747 2 1 -30.5182 -25.0025 -144.45 - 85 119.976 776 2 0 -30.4989 -24.85 -145.852 - 85 134.53 750 1 1 -29.9788 -21.6336 -174.45 - 85 5.28963 792 1 0 -29.9766 -21.4538 -175.85 - 85 113.665 793 1 0 -29.9765 -21.45 -175.88 - 85 137.532 750 0 1 -29.8911 -17.7154 -204.45 - 85 122.332 812 0 0 -29.9049 -17.5286 -205.85 - 85 105.503 729 1 1 -34.0862 -30.9487 -174.45 - 85 130.691 745 1 0 -33.9883 -30.9101 -175.85 - 85 300.184 723 0 1 -35.25 -32.4938 -204.516 - 85 206.817 722 0 1 -35.45 -33.2995 -204.56 - 85 199.4 721 0 1 -35.6501 -33.6668 -204.589 - 85 77.7581 720 0 1 -35.8502 -33.9527 -204.547 - 85 19.0356 681 1 0 -50.8912 -43.8291 -176.25 - 85 132.596 680 1 0 -50.9276 -43.85 -176.177 - 85 23.002 642 1 1 -51.6134 -44.2633 -174.85 - 85 108.159 641 1 1 -51.6501 -44.2836 -174.775 - 85 4.8572 640 1 1 -51.8501 -44.3492 -174.469 - 85 230.973 796 2 0 -38.1418 -20.8471 -146.25 - 85 54.8335 797 2 0 -38.115 -20.65 -146.039 - 85 53.7472 709 2 1 -38.2064 -20.0508 -144.85 - 85 107.03 708 2 1 -38.25 -19.9587 -144.664 - 85 99.0626 736 1 0 -35.4704 -32.6503 -175.953 - 85 91.1228 681 0 1 -43.6609 -46.8554 -204.45 - 85 64.5158 682 0 1 -43.65 -46.9873 -204.669 - 85 137.176 661 0 0 -43.653 -47.6655 -205.85 - 85 21.8258 660 0 0 -43.6456 -47.85 -206.184 - 85 248.31 723 1 1 -35.25 -31.6591 -174.623 -Number of digits in this event = 67 -Using G4ParticleGun ... -2.97597 LIN -e- +Number of tracker hits in this event: 54 + 85 113.367 1050 11 1 30.0995 49.3805 125.55 + 85 122.829 1146 11 0 30.0977 49.3812 124.15 + 85 134.269 1050 10 1 30.0661 49.4014 95.55 + 85 114.601 1146 10 0 30.0647 49.4 94.15 + 85 206.666 1049 9 1 30.0326 49.3765 65.55 + 85 152.295 1146 9 0 30.0261 49.3739 64.15 + 85 116.863 1049 8 1 29.8913 49.3188 35.55 + 85 203.022 1146 8 0 29.882 49.3168 34.15 + 85 129.668 1048 7 1 29.7154 49.2826 5.55 + 85 107.185 1146 7 0 29.7117 49.2849 4.15 + 85 58.1969 1048 6 1 29.6515 49.3409 -24.45 + 85 59.533 1047 6 1 29.65 49.3421 -24.6774 + 85 173.81 1146 6 0 29.6428 49.3479 -25.85 + 85 108.383 1047 5 1 29.4769 49.4911 -54.45 + 85 136.746 1147 5 0 29.4677 49.5006 -55.85 + 85 171.45 1046 4 1 29.2975 49.7042 -84.45 + 85 106.114 1148 4 0 29.2864 49.7115 -85.85 + 85 210.735 1045 3 1 29.0618 49.8584 -114.45 + 85 129.344 1149 3 0 29.0524 49.8655 -115.85 + 85 127.92 1044 2 1 28.8562 50.0156 -144.45 + 85 132.472 1149 2 0 28.8443 50.0261 -145.85 + 85 126.02 1042 1 1 28.5614 50.2383 -174.45 + 85 152.057 1151 1 0 28.5491 50.2512 -175.85 + 85 239.981 1041 0 1 28.3119 50.5051 -204.45 + 85 207.483 1152 0 0 28.2926 50.5154 -205.85 + 85 34.0439 1134 0 1 47.0295 85.2318 -204.85 + 85 82.7396 1135 0 1 47.05 85.2436 -204.729 + 85 28.8892 897 2 1 -0.65 75.8417 -144.571 + 85 100.372 896 2 1 -0.65 75.8304 -144.511 + 85 35.8308 707 5 1 -38.45 -56.9083 -54.8084 + 85 57.9877 708 5 1 -38.4499 -56.9658 -54.6984 + 85 214.97 1153 0 0 27.9798 50.8074 -205.85 + 85 253.434 1047 3 1 29.6141 49.135 -114.45 + 85 222.057 1145 3 0 29.6128 49.1222 -115.85 + 85 121.409 1047 2 1 29.6193 48.7847 -144.45 + 85 169.31 1143 2 0 29.6406 48.7415 -145.85 + 85 149.197 1049 1 1 30.0348 47.6653 -174.45 + 85 150.106 1137 1 0 30.0796 47.5719 -175.85 + 85 144.782 1054 0 1 30.97 45.783 -204.45 + 85 188.206 1128 0 0 30.8936 45.6597 -205.85 + 85 93.7956 1127 0 0 30.8881 45.65 -205.953 + 85 66.8715 478 12 0 -63.6824 -84.3714 153.75 + 85 156.626 1049 2 1 29.9663 49.1835 -144.45 + 85 196.878 1145 2 0 30.0086 49.1414 -145.85 + 85 210.058 1055 1 1 31.1408 47.8093 -174.45 + 85 144.465 1138 1 0 31.2169 47.7255 -175.85 + 85 271.777 1064 0 1 32.8829 45.8626 -204.45 + 85 238.523 1308 9 0 -117.104 81.7913 63.75 + 85 107.45 1048 3 1 29.65 49.1095 -114.577 + 85 64.5464 1049 3 1 29.85 49.0995 -114.735 + 85 186.03 1150 3 0 32.0277 50.0621 -115.85 + 85 264.464 1151 3 0 32.3435 50.25 -116.122 + 85 27.675 1152 3 0 32.5241 50.45 -116.059 + 85 208.068 1100 3 0 33.2446 40.1956 -116.25 +Number of digits in this event: 36 +Using G4ParticleGun... +Particle energy: 8.211 LIN +Particle: e- Event: 86 -Number of tracker hits in this event = 222 - 86 286.589 569 11 1 -66.2444 5.65221 125.55 - 86 207.424 928 11 0 -66.2456 5.65492 124.15 - 86 237.208 568 10 1 -66.2738 5.72324 95.55 - 86 119.147 928 10 0 -66.2723 5.72535 94.15 - 86 108.831 569 9 1 -66.2251 5.76088 65.55 - 86 149.29 928 9 0 -66.2215 5.76213 64.15 - 86 230.245 569 8 1 -66.153 5.79122 35.55 - 86 293.16 928 8 0 -66.1511 5.7924 34.15 - 86 99.1348 569 7 1 -66.083 5.7821 5.55 - 86 123.661 928 7 0 -66.0932 5.79366 4.15 - 86 114.621 568 6 1 -66.3072 6.03098 -24.45 - 86 108.864 930 6 0 -66.3091 6.05481 -25.85 - 86 462.079 570 5 1 -65.8809 6.46106 -54.45 - 86 280.107 931 5 0 -65.9273 6.34521 -55.85 - 86 353.655 570 4 1 -65.9327 3.70955 -84.4501 - 86 6.68045 571 4 1 -65.85 3.51473 -84.832 - 86 53.2778 913 4 0 -65.2746 2.73297 -85.85 - 86 104.69 912 4 0 -65.2021 2.64989 -85.968 - 86 17.6917 911 4 0 -65.0292 2.44978 -86.223 - 86 128.672 664 3 1 -47.1151 -17.6429 -114.451 - 86 101.724 811 3 0 -47.4607 -17.6837 -115.85 - 86 62.8609 812 3 0 -47.5861 -17.65 -116.19 - 86 40.448 813 3 0 -47.6012 -17.45 -116.201 - 86 48.3778 814 3 0 -47.5638 -17.2498 -116.196 - 86 77.2267 815 3 0 -47.4934 -17.0494 -116.205 - 86 69.8935 816 3 0 -47.3855 -16.85 -116.209 - 86 68.1876 817 3 0 -47.2675 -16.65 -116.212 - 86 77.5749 818 3 0 -47.2348 -16.45 -116.22 - 86 158.482 819 3 0 -47.2232 -16.2496 -116.241 - 86 74.3083 820 3 0 -47.2163 -16.05 -116.226 - 86 9.22515 821 3 0 -47.2633 -15.85 -116.238 - 86 37.5591 571 5 1 -65.85 6.47271 -54.5447 - 86 298.68 540 1 1 -71.9418 10.9929 -174.45 - 86 372.708 954 1 0 -72.3182 10.87 -175.85 - 86 65.885 953 1 0 -72.3736 10.85 -176.054 - 86 121.66 495 0 1 -80.8522 7.77248 -204.45 - 86 84.1317 494 0 1 -81.0501 7.77333 -204.641 - 86 11.0663 493 0 1 -81.25 7.77447 -204.816 - 86 137.962 938 0 0 -82.4272 7.68686 -205.85 - 86 46.9991 955 1 0 -72.005 11.05 -176.046 - 86 127.281 532 0 1 -73.4741 11.9716 -204.45 - 86 106.122 960 0 0 -73.5517 12.0953 -205.85 - 86 28.3065 964 0 0 -78.2563 12.9228 -206.25 - 86 410.503 570 6 1 -66.0236 5.84418 -24.45 - 86 361.003 928 6 0 -66.0252 5.84393 -25.85 - 86 85.4332 568 5 1 -66.2558 5.9404 -54.45 - 86 124.894 569 5 1 -66.25 5.9465 -54.7311 - 86 239.952 929 5 0 -66.2092 5.96955 -55.85 - 86 170.735 575 4 1 -65.0146 6.6553 -84.45 - 86 109.676 933 4 0 -64.8752 6.69002 -85.85 - 86 104.099 590 3 1 -62.0332 7.76832 -114.451 - 86 116.431 939 3 0 -61.8914 7.98025 -115.85 - 86 100.88 605 2 1 -58.9208 12.4657 -144.45 - 86 213.885 963 2 0 -58.9129 12.6865 -145.85 - 86 166.622 606 1 1 -58.8474 17.1027 -174.45 - 86 54.7294 986 1 0 -58.8334 17.4175 -175.85 - 86 68.8933 987 1 0 -58.8319 17.45 -176 - 86 134.596 608 0 1 -58.4192 23.3535 -204.45 - 86 124.93 1018 0 0 -58.3943 23.6719 -205.85 - 86 31.7359 1031 0 0 -58.2409 26.2715 -206.25 - 86 219.168 577 2 1 -64.5814 4.70335 -144.45 - 86 64.2134 916 2 0 -64.4516 3.43023 -145.85 - 86 66.6644 915 2 0 -64.4327 3.25 -145.966 - 86 43.8425 914 2 0 -64.4526 3.05 -146.026 - 86 42.5434 913 2 0 -64.538 2.85 -146.034 - 86 66.8168 912 2 0 -64.6027 2.65 -146.023 - 86 76.6769 911 2 0 -64.6881 2.45 -145.982 - 86 75.3713 910 2 0 -64.8853 2.25 -145.951 - 86 91.0454 909 2 0 -65.076 2.05 -145.954 - 86 68.3113 908 2 0 -65.3188 1.84959 -145.932 - 86 65.79 907 2 0 -65.5413 1.65 -146.035 - 86 76.697 906 2 0 -65.6976 1.45 -146.123 - 86 25.837 905 2 0 -65.8878 1.24991 -146.223 - 86 223.66 422 1 1 -95.7412 -35.3338 -174.45 - 86 69.5712 712 1 0 -94.4691 -37.5122 -175.85 - 86 236.079 711 1 0 -94.4253 -37.65 -175.91 - 86 369.143 710 1 0 -94.2717 -37.8502 -175.951 - 86 9.59068 624 3 0 -64.1192 -55.05 -116.186 - 86 139.034 578 2 1 -64.45 4.62527 -144.474 - 86 55.2006 579 2 1 -64.25 4.5548 -144.52 - 86 53.5566 580 2 1 -64.05 4.50741 -144.562 - 86 83.405 581 2 1 -63.85 4.46521 -144.641 - 86 4.13052 582 2 1 -63.65 4.37312 -144.835 - 86 71.2588 919 2 0 -62.8803 3.91287 -145.85 - 86 91.0183 918 2 0 -62.7436 3.84986 -146.047 - 86 114.671 929 4 0 -65.9139 5.85827 -85.85 - 86 237.032 571 3 1 -65.778 5.76803 -114.45 - 86 191.786 928 3 0 -65.768 5.76203 -115.85 - 86 143.906 572 2 1 -65.5632 5.65089 -144.45 - 86 129.803 928 2 0 -65.551 5.65202 -145.85 - 86 155.49 573 1 1 -65.2984 5.68313 -174.45 - 86 205.678 928 1 0 -65.2884 5.68451 -175.85 - 86 131.394 574 0 1 -65.0771 5.69073 -204.45 - 86 141.073 928 0 0 -65.0612 5.6978 -205.85 - 86 65.619 572 1 1 -65.45 5.74627 -174.596 - 86 49.2139 571 1 1 -65.65 5.79167 -174.691 - 86 80.3868 570 1 1 -65.85 5.72151 -174.688 - 86 84.7545 569 1 1 -66.05 5.67748 -174.708 - 86 143.762 568 1 1 -66.25 5.66862 -174.697 - 86 77.5215 567 1 1 -66.4501 5.6987 -174.725 - 86 47.2515 566 1 1 -66.65 5.70524 -174.788 - 86 52.7947 931 1 0 -68.5392 6.38008 -175.85 - 86 232.131 932 1 0 -68.6753 6.45 -175.891 - 86 128.79 933 1 0 -68.9496 6.65001 -176.005 - 86 118.233 934 1 0 -69.2834 6.85 -176.179 - 86 77.1652 935 1 0 -69.4779 7.05 -176.153 - 86 22.0404 936 1 0 -69.6231 7.25 -176.23 - 86 236.623 169 2 1 -146.214 76.3027 -144.85 - 86 50.7854 929 3 0 -65.3169 6.0338 -115.85 - 86 64.2851 930 3 0 -65.2738 6.05 -115.957 - 86 64.1446 979 3 0 -87.9986 16.0294 -116.25 - 86 130.665 980 3 0 -88.0675 16.0502 -116.139 - 86 39.8978 981 3 0 -88.3102 16.25 -115.963 - 86 72.8715 456 3 1 -88.7458 16.6405 -114.85 - 86 102.093 457 3 1 -88.6495 16.7393 -114.626 - 86 35.789 458 3 1 -88.45 16.6613 -114.497 - 86 211.919 929 8 0 -66.1781 5.85007 33.9786 - 86 59.1201 1476 8 0 5.87517 115.376 33.75 - 86 103.556 1477 8 0 6.01436 115.55 33.8162 - 86 92.154 1478 8 0 6.10502 115.751 33.8554 - 86 72.7431 1479 8 0 6.14691 115.95 33.8382 - 86 2.88467 1480 8 0 6.24732 116.15 33.7558 - 86 151.038 569 6 1 -66.0561 5.90875 -24.45 - 86 221.603 929 6 0 -66.1143 5.89095 -25.85 - 86 107.433 561 5 1 -67.6883 6.19298 -54.45 - 86 127.202 537 4 1 -72.5934 8.28104 -84.45 - 86 121.669 942 4 0 -72.6619 8.49254 -85.8501 - 86 137.934 528 3 1 -74.3384 12.631 -114.45 - 86 141.396 962 3 0 -74.311 12.6124 -115.85 - 86 127.937 532 2 1 -73.6385 11.8154 -144.45 - 86 180.242 959 2 0 -73.5098 11.9433 -145.85 - 86 264.728 543 1 1 -71.3455 14.5747 -174.45 - 86 128.951 973 1 0 -71.2488 14.7281 -175.85 - 86 106.375 552 0 1 -69.5085 17.6115 -204.45 - 86 124.387 988 0 0 -69.5048 17.6719 -205.85 - 86 38.2313 960 2 0 -73.3825 12.05 -146.124 - 86 106.819 607 1 1 -58.65 18.018 -174.575 - 86 71.1795 608 1 1 -58.4499 18.0319 -174.672 - 86 80.0551 609 1 1 -58.2497 17.9677 -174.727 - 86 94.8861 610 1 1 -58.05 17.819 -174.727 - 86 52.298 611 1 1 -57.8496 17.7321 -174.666 - 86 345.713 612 1 1 -57.6496 17.7247 -174.622 - 86 162.988 613 1 1 -57.45 17.652 -174.511 - 86 14.9742 614 1 1 -57.2327 17.6433 -174.45 - 86 107.097 910 5 0 -66.0449 2.24146 -55.85 - 86 158.421 581 4 1 -63.7184 -0.840926 -84.45 - 86 122.966 894 4 0 -63.5869 -1.17407 -85.85 - 86 200.695 893 4 0 -63.5543 -1.25 -86.1583 - 86 154.236 599 3 1 -60.1961 -9.47993 -114.45 - 86 204.454 851 3 0 -60.2205 -9.75597 -115.85 - 86 163.323 602 2 1 -59.5951 -15.5566 -144.45 - 86 14.648 816 2 0 -59.5761 -16.8116 -145.85 - 86 86.9394 815 2 0 -59.5758 -16.85 -145.893 - 86 42.1454 814 2 0 -59.5756 -17.05 -146.121 - 86 140.96 601 1 1 -59.7049 -41.0381 -174.45 - 86 104.129 689 1 0 -59.7584 -42.0545 -175.85 - 86 175.464 688 1 0 -59.7813 -42.25 -176.088 - 86 66.5486 592 0 1 -61.6257 -63.0947 -204.45 - 86 44.2345 591 0 1 -61.65 -63.1156 -204.693 - 86 137.215 584 0 0 -61.7968 -63.156 -205.85 - 86 164.039 598 3 1 -60.2505 -9.51495 -114.614 - 86 111.803 839 4 0 -84.5688 -12.1411 -86.2499 - 86 292.086 569 2 1 -66.1978 5.99859 -144.45 - 86 314.881 929 2 0 -66.2746 5.98773 -145.85 - 86 364.294 561 1 1 -67.7233 5.77812 -174.45 - 86 126.371 560 0 1 -68.0032 4.6698 -204.45 - 86 132.982 922 0 0 -68.0013 4.64656 -205.85 - 86 116.557 560 1 1 -67.85 5.88266 -174.677 - 86 234.961 573 0 1 -65.3257 7.90981 -204.45 - 86 123.63 939 0 0 -65.286 7.95612 -205.85 - 86 146.919 936 0 0 -65.171 7.42414 -205.85 - 86 460.867 568 8 1 -66.2871 5.81956 35.55 - 86 152.944 565 7 1 -66.9234 5.68331 5.54947 - 86 151.736 927 7 0 -67.0615 5.63006 4.15 - 86 166.094 553 6 1 -69.3737 5.1907 -24.4503 - 86 112.432 925 6 0 -69.5424 5.08711 -25.85 - 86 164.482 535 5 1 -72.996 3.00308 -54.4503 - 86 91.707 914 5 0 -73.1143 2.87127 -55.85 - 86 53.2947 913 5 0 -73.132 2.84995 -56.0635 - 86 123.668 516 4 1 -76.8335 0.937403 -84.45 - 86 106.251 903 4 0 -76.844 0.714427 -85.85 - 86 6.92272 902 4 0 -76.857 0.64997 -86.2209 - 86 222.975 505 3 1 -78.8644 -4.42422 -114.45 - 86 122.495 876 3 0 -79.082 -4.75822 -115.85 - 86 16.8947 875 3 0 -79.1487 -4.85 -116.192 - 86 36.6482 484 2 1 -83.2203 -12.3591 -144.45 - 86 58.469 483 2 1 -83.25 -12.3573 -144.609 - 86 130.298 838 2 0 -83.5138 -12.3925 -145.85 - 86 8.21102 449 1 1 -90.1574 -12.8228 -174.45 - 86 4.55379 835 1 0 -90.05 -13.0471 -176.033 - 86 113.025 834 1 0 -90.0479 -13.05 -176.056 - 86 103.114 474 0 1 -85.1381 -15.6032 -204.45 - 86 216.826 823 0 0 -85.5332 -15.3713 -205.85 - 86 97.3832 669 0 0 -130.884 -46.05 -205.993 - 86 69.8246 238 0 1 -132.498 -46.1755 -204.85 - 86 222.515 506 3 1 -78.8498 -4.44979 -114.561 - 86 139.963 563 7 1 -67.4121 7.37869 5.55 - 86 150.015 937 7 0 -67.4742 7.47569 4.15 - 86 203.638 554 6 1 -69.25 9.33635 -24.6699 - 86 127.525 947 6 0 -69.2439 9.47581 -25.85 - 86 115.395 554 5 1 -69.0924 12.9642 -54.45 - 86 128.934 965 5 0 -69.0612 13.1801 -55.85 - 86 112.238 557 4 1 -68.5128 17.3332 -84.45 - 86 301.427 987 4 0 -68.5814 17.5114 -85.85 - 86 143.851 550 3 1 -70.0071 21.3968 -114.45 - 86 125.043 1007 3 0 -70.0613 21.5409 -115.85 - 86 101.486 544 2 1 -71.1408 24.2364 -144.45 - 86 122.2 1021 2 0 -71.2656 24.3073 -145.85 - 86 124.599 530 1 1 -74.0269 26.1409 -174.451 - 86 125.139 1031 1 0 -74.0466 26.2536 -175.85 - 86 128.797 531 0 1 -73.7428 27.9861 -204.45 - 86 236.78 1040 0 0 -73.7591 28.0667 -205.85 - 86 67.1212 1028 1 0 -74.1249 25.815 -175.85 - 86 6.57855 450 1 1 -89.8647 163.891 -174.45 - 86 309.577 451 1 1 -89.8499 163.886 -174.46 - 86 124.057 946 6 0 -69.2422 9.45 -25.9337 - 86 120.791 927 8 0 -65.4356 5.65 34.0643 - 86 79.1059 998 8 0 -46.8851 19.8236 33.7503 - 86 38.9249 999 8 0 -46.9016 19.8501 33.8058 - 86 72.6941 669 8 1 -46.2193 19.4036 35.15 - 86 337.287 670 8 1 -46.05 19.3318 35.3026 - 86 217.73 671 8 1 -45.85 19.3634 35.4481 -Number of digits in this event = 108 -Using G4ParticleGun ... -1.46357 LIN -e- +Number of tracker hits in this event: 81 + 86 106.598 803 11 1 -19.4242 70.2468 125.55 + 86 143.109 1250 11 0 -19.4246 70.2472 124.15 + 86 136.414 803 10 1 -19.4318 70.2539 95.55 + 86 114.419 1251 10 0 -19.4312 70.2534 94.15 + 86 109.268 803 9 1 -19.4232 70.2424 65.55 + 86 112.883 1250 9 0 -19.4229 70.2408 64.15 + 86 110.442 803 8 1 -19.4192 70.2057 35.55 + 86 159.243 1250 8 0 -19.4188 70.2034 34.15 + 86 134.702 803 7 1 -19.4117 70.1599 5.55 + 86 206.675 1250 7 0 -19.4126 70.157 4.15 + 86 105.693 803 6 1 -19.4255 70.0998 -24.45 + 86 138.633 1250 6 0 -19.4259 70.0952 -25.85 + 86 132.718 803 5 1 -19.4375 69.9931 -54.45 + 86 173.592 1249 5 0 -19.4338 69.9876 -55.85 + 86 145.352 803 4 1 -19.3683 69.8712 -84.45 + 86 106.635 1249 4 0 -19.3688 69.8674 -85.85 + 86 407.662 803 3 1 -19.3854 69.7966 -114.45 + 86 597.559 1248 3 0 -19.3874 69.7946 -115.85 + 86 252.771 803 2 1 -19.4269 69.7593 -144.45 + 86 254.356 1248 2 0 -19.4301 69.7584 -145.85 + 86 232.691 802 1 1 -19.478 69.7408 -174.45 + 86 116.644 1248 1 0 -19.4811 69.7381 -175.85 + 86 215.562 802 0 1 -19.5388 69.6828 -204.45 + 86 123.663 1248 0 0 -19.5388 69.6803 -205.85 + 86 446.102 802 2 1 -19.6276 69.7385 -144.45 + 86 116.418 800 1 1 -19.9014 69.6337 -174.45 + 86 139.122 1247 1 0 -19.9213 69.6293 -175.85 + 86 163.803 798 0 1 -20.3424 69.5131 -204.45 + 86 159.319 1247 0 0 -20.381 69.4943 -205.85 + 86 11.7927 1269 0 0 -22.0802 73.8945 -205.85 + 86 24.9164 786 0 1 -22.8281 77.4574 -204.85 + 86 41.6174 1294 0 0 -24.7553 78.9061 -205.85 + 86 162.711 772 0 1 -25.4677 80.9384 -204.85 + 86 160.042 1249 2 0 -19.4207 69.8875 -145.85 + 86 128.269 1249 1 0 -19.465 69.9904 -175.85 + 86 107.094 1250 0 0 -19.6415 70.0884 -205.85 + 86 219.17 802 3 1 -19.4802 70.2902 -114.45 + 86 224.36 1251 3 0 -19.4883 70.291 -115.85 + 86 143.718 1252 2 0 -19.4762 70.4527 -145.85 + 86 173.945 807 1 1 -18.5177 70.6129 -174.45 + 86 178.511 1252 1 0 -18.4605 70.4702 -175.85 + 86 71.785 1251 1 0 -18.4521 70.45 -176.044 + 86 109.049 815 0 1 -17.0437 67.0347 -204.45 + 86 161.516 1234 0 0 -16.9767 66.8975 -205.85 + 86 82.6007 808 1 1 -18.4499 70.842 -174.652 + 86 126.114 1258 1 0 -17.3933 71.6996 -175.85 + 86 125.227 1259 1 0 -17.1778 71.85 -176.013 + 86 141.704 1260 1 0 -16.8792 72.05 -176.094 + 86 111.723 1261 1 0 -16.4348 72.25 -176.03 + 86 110.454 1262 1 0 -16.045 72.45 -175.916 + 86 1.2146 837 1 1 -12.4571 75.2608 -174.85 + 86 61.6814 838 1 1 -12.45 75.2662 -174.848 + 86 69.9847 839 1 1 -12.2493 75.3899 -174.828 + 86 62.4637 840 1 1 -12.05 75.436 -174.837 + 86 116.986 841 1 1 -11.85 75.4265 -174.819 + 86 16.6479 1270 1 0 -9.1927 74.0648 -175.85 + 86 95.1286 1269 1 0 -9.16437 74.05 -175.862 + 86 65.5897 1268 1 0 -8.86781 73.8499 -176.074 + 86 48.3656 1267 1 0 -8.71529 73.65 -176.115 + 86 81.9043 1266 1 0 -8.59814 73.45 -176.159 + 86 50.3008 1265 1 0 -8.42257 73.25 -176.242 + 86 23.4366 89 1 0 98.0266 -162.268 -176.25 + 86 112.36 88 1 0 98.0636 -162.35 -176.204 + 86 154.551 87 1 0 98.3182 -162.55 -176.071 + 86 115.573 86 1 0 98.5778 -162.75 -176.108 + 86 73.2153 85 1 0 98.7981 -162.95 -176.151 + 86 95.9933 84 1 0 98.8134 -163.15 -176.173 + 86 74.2012 83 1 0 98.7399 -163.35 -176.073 + 86 14.6822 82 1 0 98.7383 -163.55 -175.885 + 86 76.5842 1393 1 1 98.9263 -164.292 -174.85 + 86 125.483 1392 1 1 98.7499 -164.376 -174.755 + 86 95.4877 1391 1 1 98.5497 -164.558 -174.766 + 86 41.5473 1390 1 1 98.35 -164.566 -174.817 + 86 301.305 79 1 0 96.9577 -164.199 -175.85 + 86 38.0057 709 1 1 -38.1355 162.547 -174.85 + 86 130.545 799 2 1 -20.2228 70.0239 -144.45 + 86 69.7946 1250 2 0 -20.2452 70.05 -146.004 + 86 148.872 798 1 1 -20.4007 70.5121 -174.45 + 86 122.789 796 0 1 -20.714 71.864 -204.45 + 86 180.292 1259 0 0 -20.8214 71.9144 -205.85 + 86 189.349 797 1 1 -20.45 70.5431 -174.618 +Number of digits in this event: 42 +Using G4ParticleGun... +Particle energy: 5.23877 LIN +Particle: e- Event: 87 -Number of tracker hits in this event = 77 - 87 93.7921 366 10 1 -106.949 -26.6457 95.55 - 87 93.6677 365 10 1 -106.95 -26.6465 95.2977 - 87 20.8408 767 10 0 -106.953 -26.6498 94.15 - 87 87.1512 766 10 0 -106.953 -26.65 94.0655 - 87 94.5347 365 9 1 -106.983 -26.704 65.55 - 87 194.331 766 9 0 -106.979 -26.7083 64.15 - 87 130.807 366 8 1 -106.897 -26.7916 35.55 - 87 108.892 766 8 0 -106.895 -26.8001 34.15 - 87 114.947 366 7 1 -106.86 -27.0182 5.55 - 87 99.5698 765 7 0 -106.854 -27.0308 4.15 - 87 104.374 366 6 1 -106.756 -27.2698 -24.45 - 87 178.925 763 6 0 -106.742 -27.2841 -25.85 - 87 129.427 368 5 1 -106.449 -27.5709 -54.45 - 87 215.478 762 5 0 -106.432 -27.6018 -55.85 - 87 115.302 370 4 1 -106.052 -28.2545 -84.45 - 87 108.116 758 4 0 -106.037 -28.2898 -85.85 - 87 115.282 372 3 1 -105.747 -28.9572 -114.45 - 87 189.439 755 3 0 -105.744 -28.9921 -115.85 - 87 166.513 372 2 1 -105.689 -29.7215 -144.45 - 87 106.786 751 2 0 -105.695 -29.7598 -145.85 - 87 116.7 371 1 1 -105.789 -30.502 -174.45 - 87 124.235 747 1 0 -105.793 -30.5317 -175.85 - 87 121.119 371 0 1 -105.789 -31.1217 -204.45 - 87 221.094 744 0 0 -105.791 -31.1583 -205.85 - 87 62.0759 990 1 0 -55.834 18.1799 -176.25 - 87 131.372 494 3 1 -81.25 101.315 -114.677 - 87 132.584 763 5 0 -105.754 -27.3017 -55.85 - 87 49.8866 764 5 0 -105.49 -27.25 -56.134 - 87 233.005 369 3 1 -106.186 -28.244 -114.45 - 87 58.5589 370 3 1 -106.15 -28.2474 -114.679 - 87 110.837 759 3 0 -105.971 -28.2423 -115.85 - 87 125.153 394 2 1 -101.335 -27.8993 -144.45 - 87 108.268 761 2 0 -101.09 -27.7069 -145.85 - 87 191.676 421 1 1 -95.9421 -24.9446 -174.45 - 87 110.795 774 1 0 -95.8192 -25.0844 -175.85 - 87 254.223 432 0 1 -93.6892 -28.3463 -204.45 - 87 11.1265 756 0 0 -93.387 -28.8355 -205.85 - 87 86.0423 755 0 0 -93.3779 -28.85 -205.889 - 87 107.337 433 0 1 -93.55 -28.3188 -204.699 - 87 13.4501 434 0 1 -93.3498 -28.2998 -204.826 - 87 169.877 763 0 0 -90.6224 -27.4242 -205.85 - 87 90.15 764 0 0 -90.05 -27.2324 -206.009 - 87 22.5919 756 3 0 -106.273 -28.8113 -115.85 - 87 72.4435 788 3 0 -92.6471 -22.3344 -116.25 - 87 85.9875 789 3 0 -92.6053 -22.25 -116.047 - 87 41.3129 790 3 0 -92.6311 -22.0493 -115.907 - 87 16.9103 429 3 1 -94.3295 -17.9975 -114.85 - 87 63.1075 428 3 1 -94.35 -17.9473 -114.836 - 87 153.592 822 3 0 -93.7591 -15.6188 -115.85 - 87 147.648 746 0 0 -69.1126 -30.65 -206.184 - 87 60.6313 364 4 1 -107.34 -26.8902 -84.45 - 87 65.7103 365 4 1 -107.15 -26.9178 -84.5633 - 87 56.6024 366 4 1 -106.95 -26.9397 -84.6595 - 87 40.8897 367 4 1 -106.749 -26.9648 -84.7617 - 87 35.105 763 4 0 -104.542 -27.4105 -85.85 - 87 219.919 762 4 0 -104.403 -27.45 -85.9169 - 87 162.42 761 4 0 -104.089 -27.65 -86.1359 - 87 32.6075 448 4 0 -48.3324 -90.4614 -86.2499 - 87 90.7288 447 4 0 -48.2719 -90.5503 -86.1907 - 87 65.6832 446 4 0 -48.1299 -90.75 -86.0324 - 87 20.4478 445 4 0 -48.0163 -90.95 -85.8826 - 87 171.953 663 4 1 -47.3971 -92.3961 -84.85 - 87 48.9163 662 4 1 -47.5373 -92.9359 -84.4501 - 87 71.6951 661 4 1 -47.65 -92.9402 -84.5262 - 87 64.6359 660 4 1 -47.85 -92.9458 -84.676 - 87 97.1686 659 4 1 -48.0503 -92.971 -84.7762 - 87 3.65291 658 4 1 -48.25 -92.9908 -84.845 - 87 87.2014 435 4 0 -51.0749 -93.002 -85.85 - 87 137.809 436 4 0 -51.2983 -92.95 -85.9585 - 87 17.1025 437 4 0 -51.5402 -92.75 -86.2152 - 87 199.94 732 4 0 -83.4542 -33.5339 -86.2492 - 87 83.5549 485 4 1 -82.9745 -33.4023 -84.8498 - 87 131.785 486 4 1 -82.85 -33.3097 -84.7117 - 87 109.94 487 4 1 -82.65 -33.0754 -84.6271 - 87 87.0198 488 4 1 -82.45 -33.0941 -84.6834 - 87 321.895 738 4 0 -82.6205 -32.4257 -85.8501 - 87 95.8609 739 4 0 -82.4641 -32.2498 -86.0099 -Number of digits in this event = 29 -Using G4ParticleGun ... -8.75293 LIN -e- +Number of tracker hits in this event: 128 + 87 86.0084 1382 9 1 96.5644 -70.4248 65.55 + 87 153.144 548 9 0 96.5641 -70.4264 64.15 + 87 110.696 1382 8 1 96.5579 -70.4631 35.55 + 87 110.032 547 8 0 96.5584 -70.466 34.15 + 87 468.949 1382 7 1 96.568 -70.521 5.55 + 87 140.077 547 7 0 96.5686 -70.5243 4.15 + 87 182.762 1382 6 1 96.5774 -70.5934 -24.45 + 87 186.202 547 6 0 96.5778 -70.5981 -25.85 + 87 146.916 1382 5 1 96.5912 -70.694 -54.45 + 87 277.987 546 5 0 96.5877 -70.7012 -55.85 + 87 120.123 1381 4 1 96.4847 -70.8569 -84.45 + 87 155.471 545 4 0 96.4862 -70.8638 -85.85 + 87 133.348 1381 3 1 96.5366 -71.0052 -114.45 + 87 290.225 545 3 0 96.544 -71.0174 -115.85 + 87 420.763 1382 2 1 96.7049 -71.2899 -144.45 + 87 607.655 543 2 0 96.7034 -71.2985 -145.85 + 87 341.215 1382 1 1 96.6364 -71.4965 -174.45 + 87 147.026 542 1 0 96.6223 -71.5117 -175.85 + 87 108.697 1380 0 1 96.3233 -71.8711 -204.45 + 87 152.345 540 0 0 96.3143 -71.8852 -205.85 + 87 265.651 605 6 0 74.2384 -58.853 -26.25 + 87 118.474 604 6 0 74.5895 -59.05 -26.0031 + 87 11.395 1265 6 1 73.1737 -61.1306 -24.85 + 87 17.8879 585 6 0 71.4505 -62.9356 -25.85 + 87 5.68475 1213 6 1 62.7353 -65.049 -24.85 + 87 152.643 551 6 0 66.5452 -69.6724 -25.85 + 87 170.871 1383 1 1 96.75 -71.4646 -174.57 + 87 13.4375 544 2 0 96.7474 -71.25 -146.032 + 87 493.744 1381 2 1 96.3941 -70.884 -144.45 + 87 341.182 545 2 0 96.3949 -70.8889 -145.85 + 87 391.066 1381 1 1 96.4324 -70.9887 -174.45 + 87 226.034 545 1 0 96.4375 -71.0111 -175.85 + 87 649.489 1382 0 1 96.5859 -71.4557 -204.45 + 87 99.645 542 0 0 96.5819 -71.4861 -205.85 + 87 152.061 1381 0 1 96.4971 -71.0946 -204.45 + 87 159.565 544 0 0 96.5103 -71.1099 -205.85 + 87 444.53 473 1 0 88.1534 -85.3718 -176.25 + 87 160.592 546 4 0 96.5886 -70.7934 -85.9847 + 87 230.001 1382 3 1 96.6168 -70.8605 -114.45 + 87 167.658 541 1 0 96.7959 -71.8277 -175.85 + 87 251.8 539 0 0 96.7167 -72.1275 -205.85 + 87 186.502 1383 0 1 96.8738 -72.2075 -204.45 + 87 3.32925 1649 0 1 149.951 -118.41 -204.85 + 87 227.006 546 3 0 96.6187 -70.837 -115.85 + 87 127.812 546 2 0 96.5782 -70.6654 -145.85 + 87 116.87 547 1 0 96.5256 -70.605 -175.85 + 87 112.278 545 0 0 96.7637 -71.0365 -205.85 + 87 108.277 549 0 0 96.6968 -70.0862 -205.85 + 87 122.281 550 0 0 96.6872 -69.9281 -205.85 + 87 260.951 1381 7 1 96.55 -70.3415 5.45822 + 87 153.994 552 7 0 96.2527 -69.602 4.15 + 87 273.303 548 7 0 96.5326 -70.4131 4.15 + 87 128.299 1379 6 1 95.975 -70.1255 -24.45 + 87 154.315 549 6 0 96.0705 -70.1977 -25.85 + 87 138.601 1387 5 1 97.7112 -71.6282 -54.4501 + 87 92.5219 542 5 0 97.6202 -71.5655 -55.85 + 87 163.396 1375 4 1 95.2467 -71.5654 -84.45 + 87 127.208 540 4 0 95.0796 -71.9196 -85.85 + 87 109.434 1352 3 1 90.6603 -79.2588 -114.45 + 87 3.89728 502 3 0 90.6828 -79.6458 -115.85 + 87 175.99 501 3 0 90.683 -79.65 -115.865 + 87 142.808 1356 2 1 91.4105 -87.409 -144.45 + 87 5.9818 461 2 0 91.2552 -87.839 -145.852 + 87 150.504 460 2 0 91.2515 -87.85 -145.885 + 87 112.422 1341 1 1 88.3852 -97.963 -174.45 + 87 28.5256 1340 1 1 88.25 -98.1325 -174.766 + 87 16.7416 407 1 0 87.7387 -98.7267 -175.85 + 87 123.882 406 1 0 87.718 -98.75 -175.894 + 87 77.8559 1257 0 1 71.5335 -111.434 -204.45 + 87 74.5461 1256 0 1 71.4499 -111.478 -204.637 + 87 130.226 340 0 0 70.827 -111.962 -205.85 + 87 226.644 921 5 0 -72.8074 4.27493 -56.25 + 87 6.47894 533 5 1 -73.4476 5.34189 -54.85 + 87 131.222 532 5 1 -73.45 5.34642 -54.845 + 87 75.9598 531 5 1 -73.6502 5.73461 -54.7183 + 87 660.194 530 5 1 -73.85 5.92138 -54.6401 + 87 154.94 529 5 1 -74.05 6.04154 -54.6423 + 87 113.793 528 5 1 -74.25 6.11617 -54.6196 + 87 160.618 527 5 1 -74.45 6.20736 -54.5558 + 87 120.988 1392 6 1 98.6219 -68.8367 -24.45 + 87 116.845 554 6 0 98.7324 -69.1663 -25.8502 + 87 7.58126 553 6 0 98.7614 -69.2502 -26.2244 + 87 161.03 1403 5 1 100.868 -75.9848 -54.45 + 87 153.315 518 5 0 100.894 -76.3407 -55.8501 + 87 139.898 1411 4 1 102.356 -84.2766 -84.45 + 87 128.915 476 4 0 102.476 -84.684 -85.85 + 87 142.779 1424 3 1 104.97 -93.0482 -114.45 + 87 82.2052 431 3 0 105.161 -93.8188 -115.85 + 87 54.0194 430 3 0 105.194 -93.9502 -116.081 + 87 19.3988 1446 2 1 109.37 -108.362 -144.45 + 87 110.747 1445 2 1 109.35 -108.397 -144.518 + 87 44.8898 355 2 0 108.944 -109.105 -145.85 + 87 132.572 354 2 0 108.918 -109.15 -145.935 + 87 200.755 1399 1 1 100.024 -123.927 -174.45 + 87 235.208 1398 1 1 99.95 -123.948 -174.647 + 87 132.173 280 1 0 99.4664 -124.049 -175.85 + 87 238.252 1345 0 1 89.1325 -123.143 -204.45 + 87 97.4406 1344 0 1 89.0499 -123.897 -204.597 + 87 93.0671 1343 0 1 88.8498 -124.19 -204.677 + 87 119.759 1342 0 1 88.65 -124.478 -204.769 + 87 132.625 1341 0 1 88.45 -124.743 -204.845 + 87 59.5537 1340 0 1 88.25 -125.091 -204.828 + 87 35.5211 252 0 0 87.4357 -129.609 -205.85 + 87 63.9595 251 0 0 87.4138 -129.75 -205.892 + 87 58.3986 250 0 0 87.3777 -129.95 -205.954 + 87 98.5854 249 0 0 87.3403 -130.15 -206.045 + 87 65.9594 248 0 0 87.2653 -130.35 -206.162 + 87 344.542 92 0 0 48.3122 -161.579 -206.25 + 87 2.85325 1133 0 1 46.6568 -162.364 -204.85 + 87 112.542 1132 0 1 46.6499 -162.369 -204.843 + 87 81.5592 1131 0 1 46.45 -162.584 -204.578 + 87 74.3563 93 0 0 47.8395 -161.55 -206.052 + 87 128.366 1442 2 1 108.659 -101.555 -144.45 + 87 107.685 392 2 0 108.162 -101.57 -145.85 + 87 42.9272 1400 1 1 100.248 -96.3485 -174.45 + 87 163.716 1401 1 1 100.35 -96.3667 -174.58 + 87 0.939234 1402 1 1 100.55 -96.4437 -174.849 + 87 15.4592 417 1 0 101.314 -96.7307 -175.85 + 87 144.775 416 1 0 101.353 -96.75 -175.908 + 87 84.7276 1545 0 1 129.211 -119.141 -204.451 + 87 112.684 1546 0 1 129.35 -119.385 -204.674 + 87 15.5198 1547 0 1 129.55 -119.606 -204.822 + 87 122.292 294 0 0 130.968 -121.153 -205.85 + 87 17.0047 293 0 0 131.25 -121.35 -206.193 + 87 27.9213 313 0 0 135.455 -117.391 -206.25 + 87 106.576 314 0 0 135.431 -117.35 -206.168 + 87 96.7393 1575 0 1 135.233 -117.717 -204.85 + 87 67.2184 1574 0 1 135.15 -117.798 -204.609 +Number of digits in this event: 73 +Using G4ParticleGun... +Particle energy: 4.99272 LIN +Particle: e- Event: 88 -Number of tracker hits in this event = 100 - 88 115.043 1380 9 1 96.1576 91.1919 65.55 - 88 119.674 1355 9 0 96.1566 91.192 64.15 - 88 129.969 1379 8 1 96.1307 91.1961 35.55 - 88 234.864 1355 8 0 96.1284 91.1969 34.15 - 88 301.447 1379 7 1 96.0804 91.2153 5.55 - 88 253.888 1355 7 0 96.0777 91.2163 4.15 - 88 101.659 1379 6 1 96.0247 91.2335 -24.45 - 88 115.042 1355 6 0 96.0226 91.2343 -25.85 - 88 192.103 1379 5 1 95.979 91.2526 -54.45 - 88 115.782 1355 5 0 95.9759 91.2535 -55.85 - 88 112.168 1378 4 1 95.9136 91.272 -84.45 - 88 114.536 1355 4 0 95.9101 91.2728 -85.85 - 88 210.791 1378 3 1 95.8397 91.2941 -114.45 - 88 177.935 1355 3 0 95.8373 91.2946 -115.85 - 88 184.033 1378 2 1 95.791 91.3046 -144.45 - 88 94.1199 1355 2 0 95.7875 91.3045 -145.85 - 88 112.402 1377 1 1 95.718 91.3061 -174.45 - 88 173.139 1355 1 0 95.7144 91.3059 -175.85 - 88 116.884 1377 0 1 95.6425 91.3018 -204.45 - 88 153.567 1355 0 0 95.6372 91.3024 -205.85 - 88 92.4665 1651 2 1 150.383 116.913 -144.45 - 88 182.1 1652 2 1 150.55 116.847 -144.48 - 88 241.164 1378 5 1 95.95 91.213 -54.8391 - 88 52.2701 1696 0 0 43.1982 159.35 -206.076 - 88 137.653 1378 6 1 95.7693 90.8347 -24.45 - 88 240.745 1353 6 0 95.7482 90.8438 -25.85 - 88 131.256 1375 5 1 95.198 90.974 -54.45 - 88 156.089 1354 5 0 95.1795 90.9693 -55.85 - 88 102.784 1373 4 1 94.8837 90.8364 -84.45 - 88 106.787 1353 4 0 94.8308 90.824 -85.85 - 88 202.3 1367 3 1 93.6853 90.5293 -114.45 - 88 136.694 1351 3 0 93.5987 90.5366 -115.85 - 88 125.322 1357 2 1 91.6666 90.7167 -144.45 - 88 102.3 1353 2 0 91.5703 90.7551 -145.85 - 88 152.804 1347 1 1 89.4808 91.6543 -174.45 - 88 92.4942 1357 1 0 89.4041 91.6716 -175.85 - 88 119.718 1339 0 1 87.9201 91.9528 -204.45 - 88 261.577 1358 0 0 87.8491 91.9262 -205.85 - 88 27.0032 1441 0 0 70.8806 108.517 -206.25 - 88 113.227 1442 0 0 70.8841 108.55 -206.237 - 88 52.2544 1352 1 0 90.4672 90.7068 -175.85 - 88 127.197 1348 0 1 89.7991 91.4825 -204.45 - 88 190.284 1357 0 0 89.6087 91.6245 -205.85 - 88 141.863 1380 7 1 96.1501 91.2331 5.53686 - 88 143.058 1356 7 0 96.422 91.4088 4.14988 - 88 64.8567 1405 6 1 101.273 97.0521 -24.4502 - 88 103.494 1406 6 1 101.35 97.1256 -24.5741 - 88 36.4064 1388 6 0 102.237 97.9037 -25.85 - 88 173.814 1389 6 0 102.286 97.95 -25.9252 - 88 124.851 1494 5 1 118.956 112.881 -54.45 - 88 53.3552 1467 5 0 118.986 113.692 -55.85 - 88 104.134 1468 5 0 118.988 113.75 -55.9538 - 88 125.552 1506 4 1 121.408 127.864 -84.45 - 88 120.306 1539 4 0 121.24 128.089 -85.85 - 88 0.980155 1540 4 0 121.197 128.15 -86.2486 - 88 101.487 1492 3 1 118.629 132.118 -114.45 - 88 67.3197 1491 3 1 118.549 132.184 -114.655 - 88 25.2859 1561 3 0 118.025 132.522 -115.85 - 88 84.848 1562 3 0 117.979 132.55 -115.954 - 88 48.7316 1427 2 1 105.652 140.686 -144.451 - 88 166.964 1426 2 1 105.55 140.731 -144.57 - 88 31.9837 1425 2 1 105.35 140.813 -144.789 - 88 382.252 1605 2 0 104.35 141.203 -145.85 - 88 41.1208 1301 1 1 80.3456 145.82 -174.45 - 88 86.7688 1300 1 1 80.25 145.918 -174.531 - 88 104.421 1299 1 1 80.05 146.162 -174.676 - 88 13.1783 1298 1 1 79.85 146.378 -174.822 - 88 51.0208 1639 1 0 78.4061 148.016 -175.85 - 88 274.986 1640 1 0 78.2757 148.15 -175.94 - 88 57.0273 1641 1 0 78.0822 148.35 -176.059 - 88 76.8763 1642 1 0 77.9206 148.55 -176.148 - 88 64.2947 1643 1 0 77.7315 148.75 -176.218 - 88 11.8804 1559 1 0 -125.663 132.093 -176.25 - 88 147.872 1289 1 1 77.8571 147.608 -174.85 - 88 432.064 1290 1 1 78.0501 147.311 -174.703 - 88 426.598 1606 2 0 104.027 141.35 -146.237 - 88 125.81 1607 2 0 103.734 141.55 -146.227 - 88 98.834 1608 2 0 103.881 141.75 -146.075 - 88 40.0572 1424 2 1 105.017 142.133 -144.85 - 88 41.4939 1613 2 0 108.144 142.894 -145.85 - 88 344.309 1614 2 0 108.254 142.95 -145.898 - 88 164.452 1615 2 0 108.546 143.15 -145.995 - 88 59.9174 1604 2 0 104.295 141.15 -146.091 - 88 90.94 1722 2 0 112.241 164.58 -146.25 - 88 99.9316 1723 2 0 112.27 164.75 -146.022 - 88 173.208 1724 2 0 112.168 164.95 -145.998 - 88 226.025 1390 6 0 102.385 98.15 -26.1174 - 88 6.06306 153 6 0 -129.891 -149.35 -25.8983 - 88 272.559 246 6 1 -130.814 -149.563 -24.85 - 88 62.2819 1497 3 1 119.597 117.808 -114.45 - 88 79.1477 1498 3 1 119.75 117.655 -114.558 - 88 41.7232 1499 3 1 119.95 117.507 -114.736 - 88 18.1633 1483 3 0 120.776 116.778 -115.85 - 88 119.106 1482 3 0 120.806 116.75 -115.895 - 88 230.025 1533 2 1 126.804 106.469 -144.45 - 88 317.353 1532 2 1 126.75 106.298 -144.481 - 88 67.8684 1534 2 1 126.95 105.521 -144.79 - 88 92.8387 1424 2 0 128.605 105.043 -145.85 - 88 77.306 1425 2 0 128.789 105.15 -146.065 - 88 81.8445 1426 2 0 128.805 105.35 -146.122 -Number of digits in this event = 46 -Using G4ParticleGun ... -4.43745 LIN -e- +Number of tracker hits in this event: 25 + 88 142.05 949 9 1 9.99616 -130.492 65.55 + 88 171.543 248 9 0 9.99587 -130.492 64.15 + 88 257.91 949 8 1 9.99532 -130.502 35.55 + 88 154.49 248 8 0 9.99371 -130.502 34.15 + 88 144.836 949 7 1 9.963 -130.507 5.55 + 88 132.127 248 7 0 9.96032 -130.505 4.15 + 88 138.523 949 6 1 9.89395 -130.48 -24.45 + 88 124.934 248 6 0 9.88997 -130.477 -25.85 + 88 112.616 948 5 1 9.812 -130.412 -54.45 + 88 118.094 248 5 0 9.80838 -130.407 -55.85 + 88 107.618 948 4 1 9.73574 -130.305 -84.45 + 88 107.564 249 4 0 9.73067 -130.3 -85.85 + 88 144.226 947 3 1 9.62936 -130.2 -114.45 + 88 104.318 249 3 0 9.62554 -130.195 -115.85 + 88 127.612 947 2 1 9.54381 -130.1 -144.45 + 88 156.169 250 2 0 9.54258 -130.093 -145.85 + 88 120.65 947 1 1 9.51731 -129.969 -174.45 + 88 139.882 250 1 0 9.51746 -129.963 -175.85 + 88 112.955 947 0 1 9.52321 -129.844 -204.45 + 88 136.582 251 0 0 9.52282 -129.838 -205.85 + 88 59.8531 255 8 0 9.35559 -129.11 34.1498 + 88 113.818 256 8 0 9.25794 -128.95 34.0303 + 88 79.0519 257 8 0 8.96877 -128.75 33.9444 + 88 61.44 946 8 1 9.37018 -128.951 35.1503 + 88 103.898 947 8 1 9.45012 -128.99 35.3548 +Number of digits in this event: 16 +Using G4ParticleGun... +Particle energy: 7.9205 LIN +Particle: e- Event: 89 -Number of tracker hits in this event = 63 - 89 140.956 1325 10 1 85.2409 -24.5373 95.55 - 89 111.437 777 10 0 85.2372 -24.5378 94.15 - 89 430.115 1325 9 1 85.1613 -24.5411 65.55 - 89 155.624 777 9 0 85.1573 -24.5424 64.15 - 89 106.658 1325 8 1 85.0857 -24.5635 35.55 - 89 119.124 777 8 0 85.0843 -24.5676 34.15 - 89 155.671 1325 7 1 85.0652 -24.6475 5.55 - 89 115.12 776 7 0 85.067 -24.651 4.15 - 89 128.201 1325 6 1 85.1073 -24.7226 -24.45 - 89 167.937 776 6 0 85.1096 -24.7267 -25.85 - 89 124.604 1325 5 1 85.154 -24.7892 -54.45 - 89 118.787 776 5 0 85.1551 -24.7958 -55.85 - 89 98.7166 1325 4 1 85.1803 -24.9169 -84.45 - 89 174.906 775 4 0 85.1809 -24.9255 -85.85 - 89 107.023 1325 3 1 85.1888 -25.1066 -114.45 - 89 156.429 774 3 0 85.1931 -25.1128 -115.85 - 89 160.103 1326 2 1 85.2842 -25.2298 -144.45 - 89 119.571 774 2 0 85.2864 -25.2351 -145.85 - 89 252.204 1326 1 1 85.3088 -25.3434 -174.45 - 89 133.254 773 1 0 85.3064 -25.3466 -175.85 - 89 215.586 1326 0 1 85.2527 -25.4155 -204.45 - 89 276.112 773 0 0 85.248 -25.4199 -205.85 - 89 139.25 937 1 1 7.46114 59.4655 -174.45 - 89 63.4372 1197 1 0 7.40772 59.5048 -175.85 - 89 58.1058 1196 1 0 7.36704 59.45 -176.106 - 89 92.4963 1157 1 0 14.7142 51.515 -176.25 - 89 51.7419 1158 1 0 14.6119 51.65 -175.937 - 89 19.9726 966 1 1 13.3155 52.2414 -174.85 - 89 296.324 965 1 1 13.2499 52.2611 -174.806 - 89 35.8226 696 0 0 85.1813 -40.7394 -206.25 - 89 142.965 695 0 0 85.1601 -40.85 -206.151 - 89 65.2509 694 0 0 85.1576 -41.0501 -205.99 - 89 90.4019 693 0 0 85.2397 -41.25 -205.922 - 89 13.9666 692 0 0 85.3709 -41.4502 -205.861 - 89 22.75 1333 0 1 86.8122 -45.0139 -204.85 - 89 90.8879 1334 0 1 86.85 -45.0848 -204.827 - 89 231.423 1335 0 1 87.05 -45.2157 -204.747 - 89 79.973 1336 0 1 87.2502 -45.2748 -204.484 - 89 74.9788 1337 0 1 87.45 -45.377 -204.503 - 89 281.112 1338 0 1 87.65 -45.4546 -204.487 - 89 261.862 1339 0 1 87.85 -45.4318 -204.521 - 89 9.68711 1340 0 1 88.0503 -45.3148 -204.59 - 89 69.4437 426 3 0 132.903 -94.8618 -116.25 - 89 89.0399 1327 0 1 85.45 -25.481 -204.632 - 89 109.591 775 0 0 85.7767 -25.0299 -205.85 - 89 8.08756 776 0 0 85.7265 -24.85 -206.22 - 89 154.888 1326 9 1 85.2503 -24.4923 65.3756 - 89 226.65 1324 3 1 84.9108 -24.5117 -114.45 - 89 230.874 777 3 0 84.9125 -24.4732 -115.85 - 89 87.8666 1325 2 1 85.2384 -24.0268 -144.45 - 89 214.91 780 2 0 85.2998 -23.9364 -145.85 - 89 188.085 1331 1 1 86.4028 -22.0671 -174.45 - 89 235.866 790 1 0 86.4465 -22.0183 -175.85 - 89 172.717 794 0 0 87.2339 -21.1351 -205.85 - 89 54.8153 1525 2 0 153.989 125.15 -146.086 - 89 154.899 1323 2 1 84.7805 -24.7133 -144.45 - 89 129.125 776 2 0 84.7715 -24.7273 -145.85 - 89 106.01 1322 1 1 84.5597 -25.0625 -174.45 - 89 155.528 774 1 0 84.5439 -25.074 -175.85 - 89 153.703 1320 0 1 84.1989 -25.3118 -204.45 - 89 180.584 1138 4 0 -8.96116 47.6929 -86.25 - 89 117.444 1321 0 1 84.25 -25.2171 -204.472 - 89 171.872 778 0 0 84.8208 -24.4365 -205.85 -Number of digits in this event = 35 -Using G4ParticleGun ... -9.98583 LIN -e- +Number of tracker hits in this event: 29 + 89 204.868 1491 9 1 118.474 18.7839 65.55 + 89 149.302 993 9 0 118.474 18.7843 64.15 + 89 89.8235 1491 8 1 118.477 18.7947 35.55 + 89 98.8713 993 8 0 118.479 18.7953 34.15 + 89 299.642 1491 7 1 118.508 18.8147 5.55 + 89 218.403 993 7 0 118.51 18.8142 4.15 + 89 151.631 1491 6 1 118.547 18.8022 -24.45 + 89 132.528 993 6 0 118.547 18.8004 -25.85 + 89 120.022 1492 5 1 118.552 18.763 -54.45 + 89 227.913 993 5 0 118.555 18.7621 -55.85 + 89 111.629 1492 4 1 118.601 18.741 -84.45 + 89 111.259 993 4 0 118.602 18.7401 -85.85 + 89 122.506 1492 3 1 118.63 18.7249 -114.45 + 89 112.089 993 3 0 118.632 18.7243 -115.85 + 89 93.9652 1492 2 1 118.663 18.7098 -144.45 + 89 105.974 993 2 0 118.664 18.711 -145.85 + 89 119.509 1492 1 1 118.665 18.74 -174.45 + 89 146.861 993 1 0 118.662 18.7388 -175.85 + 89 146.367 1492 0 1 118.619 18.7018 -204.45 + 89 419.866 993 0 0 118.633 18.687 -205.85 + 89 57.0611 641 14 0 39.7566 -51.6553 213.75 + 89 119.041 747 2 0 178.945 -30.45 -146.117 + 89 183.835 994 7 0 118.438 18.85 3.84674 + 89 14.729 1087 7 0 93.0868 37.5196 3.75 + 89 122.643 1490 0 1 118.269 18.8396 -204.45 + 89 134.553 1491 0 1 118.479 18.8159 -204.45 + 89 271.998 758 0 0 114.557 -28.3157 -206.25 + 89 52.3376 1259 6 1 72.0425 -49.8852 -24.4507 + 89 286.637 1260 6 1 72.05 -49.9606 -24.5317 +Number of digits in this event: 19 +Using G4ParticleGun... +Particle energy: 2.38383 LIN +Particle: e- Event: 90 -Number of tracker hits in this event = 22 - 90 174.778 369 9 1 -106.175 51.1578 65.55 - 90 135.73 1155 9 0 -106.175 51.1578 64.15 - 90 112.239 369 8 1 -106.178 51.1615 35.55 - 90 114.361 1155 8 0 -106.178 51.162 34.15 - 90 115.032 369 7 1 -106.175 51.1751 5.55 - 90 111.859 1155 7 0 -106.176 51.1755 4.15 - 90 128.161 369 6 1 -106.18 51.1821 -24.45 - 90 113.396 1155 6 0 -106.181 51.1834 -25.85 - 90 160.2 369 5 1 -106.192 51.2066 -54.45 - 90 107.426 1155 5 0 -106.193 51.208 -55.85 - 90 140.488 369 4 1 -106.206 51.2379 -84.45 - 90 107.599 1155 4 0 -106.206 51.2405 -85.85 - 90 105.943 369 3 1 -106.229 51.291 -114.45 - 90 107.363 1156 3 0 -106.228 51.2911 -115.85 - 90 107.627 369 2 1 -106.225 51.2937 -144.45 - 90 119.236 1156 2 0 -106.224 51.2938 -145.85 - 90 148.85 369 1 1 -106.191 51.2852 -174.45 - 90 105.348 1156 1 0 -106.189 51.2857 -175.85 - 90 410.378 369 0 1 -106.162 51.306 -204.45 - 90 355.043 1156 0 0 -106.171 51.3056 -205.85 - 90 87.2138 199 0 1 -140.15 -83.5311 -204.73 - 90 147.184 112 3 0 146.16 -157.55 -116.109 -Number of digits in this event = 11 -Using G4ParticleGun ... -6.10848 LIN -e- +Number of tracker hits in this event: 46 + 90 133.409 897 10 1 -0.459628 -107.566 95.55 + 90 115.777 362 10 0 -0.460835 -107.564 94.15 + 90 99.4019 897 9 1 -0.488424 -107.535 65.55 + 90 130.341 363 9 0 -0.490551 -107.534 64.15 + 90 141.528 897 8 1 -0.521757 -107.536 35.55 + 90 200.729 363 8 0 -0.520627 -107.538 34.15 + 90 116.559 897 7 1 -0.507597 -107.598 5.55 + 90 113.933 362 7 0 -0.506332 -107.6 4.15 + 90 109.669 897 6 1 -0.486064 -107.639 -24.45 + 90 168.713 362 6 0 -0.48701 -107.642 -25.85 + 90 101.763 897 5 1 -0.518752 -107.69 -54.45 + 90 134.493 362 5 0 -0.520357 -107.695 -55.85 + 90 103.556 897 4 1 -0.544079 -107.8 -84.45 + 90 134.924 361 4 0 -0.544646 -107.809 -85.85 + 90 157.489 897 3 1 -0.55586 -107.987 -114.45 + 90 135.943 360 3 0 -0.552078 -107.995 -115.85 + 90 248.089 897 2 1 -0.471066 -108.142 -144.45 + 90 110.392 360 2 0 -0.467982 -108.148 -145.85 + 90 126.835 898 1 1 -0.4116 -108.26 -174.45 + 90 114.474 359 1 0 -0.406001 -108.266 -175.85 + 90 139.386 898 0 1 -0.320444 -108.371 -204.45 + 90 115.967 358 0 0 -0.31954 -108.376 -205.85 + 90 264.554 1366 6 1 93.4322 164.85 -24.4501 + 90 158.543 1365 6 1 93.35 165.157 -24.6671 + 90 161.547 1772 7 0 96.6415 174.551 3.75028 + 90 95.1269 1384 7 1 97.0696 174.871 5.15036 + 90 170.066 1385 7 1 97.15 174.927 5.39674 + 90 12.7473 1386 7 1 97.35 174.979 5.31389 + 90 74.2581 1770 7 0 97.6949 174.27 4.15 + 90 82.8007 1769 7 0 97.7875 174.15 4.06089 + 90 85.2868 1768 7 0 97.8772 173.949 4.06539 + 90 0.770267 1395 7 1 99.3484 173.311 5.15 + 90 253.558 1396 7 1 99.35 173.31 5.15115 + 90 189.784 1397 7 1 99.55 173.15 5.4886 + 90 176.26 230 5 0 59.0344 -134.022 -56.25 + 90 345.805 359 2 0 -0.468302 -108.15 -146.003 + 90 139.194 358 2 0 -0.542984 -108.35 -146.015 + 90 2.26257 362 2 0 -0.579304 -107.554 -145.85 + 90 116.13 363 2 0 -0.579326 -107.55 -145.864 + 90 16.8501 297 2 0 18.4379 -120.708 -146.25 + 90 133.079 296 2 0 18.4453 -120.75 -146.184 + 90 51.9589 992 2 1 18.5959 -121.719 -144.85 + 90 150.882 993 2 1 18.65 -121.805 -144.71 + 90 89.1941 994 2 1 18.85 -121.986 -144.501 + 90 176.091 1293 6 0 -126.668 78.65 -26.0143 + 90 9.43992 1694 2 1 158.95 -45.4672 -144.532 +Number of digits in this event: 27 +Using G4ParticleGun... +Particle energy: 6.62541 LIN +Particle: e- Event: 91 -Number of tracker hits in this event = 89 - 91 172.383 340 9 1 -112.098 -45.4921 65.55 - 91 201.392 672 9 0 -112.097 -45.4903 64.15 - 91 134.335 340 8 1 -112.077 -45.4535 35.55 - 91 113.655 672 8 0 -112.076 -45.4517 34.15 - 91 112.45 340 7 1 -112.043 -45.4157 5.55 - 91 126.309 673 7 0 -112.041 -45.4139 4.15 - 91 261.133 340 6 1 -112 -45.3846 -24.45 - 91 124.277 673 6 0 -111.996 -45.3841 -25.85 - 91 173.596 341 5 1 -111.924 -45.3728 -54.45 - 91 133.037 673 5 0 -111.921 -45.3703 -55.85 - 91 163.256 341 4 1 -111.89 -45.3196 -84.45 - 91 200.656 673 4 0 -111.883 -45.3051 -85.85 - 91 109.752 342 3 1 -111.734 -45.029 -114.45 - 91 144.498 675 3 0 -111.72 -45.0161 -115.85 - 91 139.48 343 2 1 -111.438 -44.7536 -144.45 - 91 114.712 676 2 0 -111.424 -44.7345 -145.85 - 91 113.331 345 1 1 -111.134 -44.3364 -174.45 - 91 110.191 678 1 0 -111.106 -44.3212 -175.85 - 91 227.539 348 0 1 -110.501 -44.0394 -204.45 - 91 115.027 680 0 0 -110.464 -44.0326 -205.85 - 91 9.6919 1304 3 1 80.9164 72.6683 -114.45 - 91 120.148 347 0 1 -110.55 -44.0512 -204.607 - 91 111.26 341 3 1 -111.772 -45.3678 -114.45 - 91 118.69 673 3 0 -111.756 -45.3891 -115.85 - 91 108.339 345 2 1 -111.024 -45.8393 -144.45 - 91 184.907 670 2 0 -111.026 -45.8859 -145.85 - 91 127.843 347 1 1 -110.584 -46.3736 -174.45 - 91 37.8255 348 1 1 -110.55 -46.3923 -174.735 - 91 133.194 667 1 0 -110.415 -46.4701 -175.85 - 91 8.0753 366 0 1 -106.752 -48.7898 -204.45 - 91 99.1862 367 0 1 -106.75 -48.7922 -204.482 - 91 115.12 655 0 0 -106.665 -48.8931 -205.85 - 91 129.445 684 4 0 -111.835 -43.1931 -86.25 - 91 128.894 342 4 1 -111.75 -42.4051 -84.7383 - 91 328.486 342 2 1 -111.726 -45.3292 -144.45 - 91 523.661 673 2 0 -111.773 -45.3059 -145.85 - 91 57.2926 338 1 1 -112.543 -44.8447 -174.45 - 91 74.5488 337 1 1 -112.55 -44.8393 -174.671 - 91 112.257 676 1 0 -112.589 -44.8139 -175.85 - 91 112.624 332 0 1 -113.55 -44.3532 -204.45 - 91 135.644 678 0 0 -113.586 -44.3227 -205.85 - 91 261.316 341 2 1 -111.75 -45.3281 -144.769 - 91 71.0297 326 1 1 -114.902 -43.6027 -174.45 - 91 87.9143 325 1 1 -114.95 -43.5424 -174.59 - 91 70.4588 685 1 0 -115.461 -42.9396 -175.85 - 91 79.7904 686 1 0 -115.538 -42.85 -176.035 - 91 304.546 769 1 0 -149.888 -26.1333 -176.25 - 91 56.0923 770 1 0 -150.237 -26.05 -175.884 - 91 79.1366 143 1 1 -151.379 -25.6907 -174.85 - 91 144.224 142 1 1 -151.55 -25.6331 -174.709 - 91 215.596 141 1 1 -151.75 -25.5729 -174.575 - 91 364.061 819 2 0 -111.818 -16.1056 -146.25 - 91 21.8965 378 2 1 -104.368 -14.839 -144.85 - 91 54.8092 379 2 1 -104.35 -14.8353 -144.846 - 91 86.2208 836 2 0 -98.5305 -12.7423 -145.85 - 91 85.9472 837 2 0 -98.3551 -12.65 -145.861 - 91 11.4385 453 2 1 -89.4016 -18.8794 -144.85 - 91 72.4665 797 2 0 -85.3783 -20.5286 -145.85 - 91 143.83 796 2 0 -85.125 -20.65 -145.87 - 91 101.527 795 2 0 -84.7236 -20.85 -146.076 - 91 102.106 140 1 1 -152.113 -25.3008 -174.45 - 91 46.7496 1051 1 0 -122.699 30.3805 -176.25 - 91 157.968 1052 1 0 -122.657 30.45 -176.145 - 91 39.0771 286 1 1 -122.82 30.6566 -174.85 - 91 72.1696 1057 1 0 -122.397 31.5851 -175.85 - 91 91.4286 1058 1 0 -122.374 31.65 -175.865 - 91 56.201 287 1 1 -122.578 32.0696 -174.85 - 91 116.105 343 1 1 -111.545 -45.3164 -174.45 - 91 137.917 673 1 0 -111.532 -45.2941 -175.851 - 91 33.282 345 0 1 -111.131 -44.6961 -204.45 - 91 67.9159 344 0 1 -111.15 -44.6771 -204.592 - 91 137.06 677 0 0 -111.331 -44.5033 -205.85 - 91 568.927 675 2 0 -112.067 -44.9985 -145.85 - 91 65.5819 674 2 0 -112.835 -45.05 -146.049 - 91 123.588 341 1 1 -111.766 -45.126 -174.45 - 91 137.609 674 1 0 -111.755 -45.1229 -175.85 - 91 150.558 342 0 1 -111.559 -45.1058 -204.45 - 91 153.015 674 0 0 -111.564 -45.1026 -205.85 - 91 130.227 343 0 1 -111.537 -45.1169 -204.45 - 91 6.63282 672 0 0 -111.457 -45.6376 -205.85 - 91 116.063 671 0 0 -111.456 -45.65 -205.877 - 91 1.50622 670 0 0 -111.491 -45.8501 -206.24 - 91 278.873 620 0 0 -109.688 -55.9447 -206.25 - 91 288.098 619 0 0 -109.54 -56.05 -205.937 - 91 169.264 370 0 1 -106.137 -58.9004 -204.85 - 91 89.6577 371 0 1 -105.95 -59.1942 -204.77 - 91 170.648 605 0 0 -105.822 -59.0333 -205.85 - 91 119.784 604 0 0 -105.7 -59.05 -205.924 - 91 134.135 349 0 1 -110.186 -55.9101 -204.85 -Number of digits in this event = 45 -Using G4ParticleGun ... -3.56488 LIN -e- +Number of tracker hits in this event: 101 + 91 133.221 904 11 1 1.03692 -48.0714 125.55 + 91 116.161 659 11 0 1.03809 -48.0712 124.15 + 91 179.532 905 10 1 1.05877 -48.0676 95.55 + 91 182.753 659 10 0 1.0602 -48.0681 94.15 + 91 216.144 905 9 1 1.0877 -48.0752 65.55 + 91 121.286 659 9 0 1.08988 -48.0767 64.15 + 91 102.678 905 8 1 1.13751 -48.1121 35.55 + 91 381.019 659 8 0 1.13941 -48.1144 34.15 + 91 124.229 905 7 1 1.17755 -48.1532 5.55 + 91 318.945 659 7 0 1.18025 -48.1547 4.15 + 91 120.01 905 6 1 1.24024 -48.1873 -24.45 + 91 166.645 659 6 0 1.24131 -48.189 -25.85 + 91 149.955 906 5 1 1.26508 -48.2239 -54.45 + 91 142.673 659 5 0 1.26665 -48.2255 -55.85 + 91 334.177 906 4 1 1.29726 -48.262 -84.45 + 91 265.812 658 4 0 1.29796 -48.2643 -85.85 + 91 96.6717 906 3 1 1.3214 -48.3174 -114.45 + 91 228.425 658 3 0 1.32103 -48.3189 -115.85 + 91 455.946 906 2 1 1.31518 -48.3492 -144.45 + 91 422.338 658 2 0 1.31556 -48.3535 -145.85 + 91 139.389 906 1 1 1.31882 -48.4472 -174.45 + 91 303.609 657 1 0 1.31724 -48.451 -175.85 + 91 630.966 906 0 1 1.28276 -48.5216 -204.45 + 91 743.245 657 0 0 1.2798 -48.5249 -205.85 + 91 113.325 656 0 0 0.291426 -48.7846 -205.85 + 91 234.545 905 1 1 1.22053 -48.6777 -174.45 + 91 204.319 656 1 0 1.22756 -48.6822 -175.85 + 91 316.627 655 0 0 1.38406 -48.8639 -205.85 + 91 544.487 657 2 0 1.34555 -48.5075 -145.85 + 91 95.4558 901 1 1 0.444413 -51.6594 -174.45 + 91 108.392 641 1 0 0.292181 -51.747 -175.85 + 91 235.001 879 0 1 -4.23458 -55.2841 -204.45 + 91 9.47297 617 0 0 -4.04181 -56.6201 -205.85 + 91 99.7626 616 0 0 -4.03792 -56.6504 -205.882 + 91 56.8721 615 0 0 -4.01353 -56.85 -206.093 + 91 18.543 660 7 0 1.05997 -48.05 3.82352 + 91 143.014 658 7 0 1.0861 -48.2504 4.00846 + 91 264.659 657 7 0 1.13981 -48.45 4.11131 + 91 260.079 907 3 1 1.47735 -48.3276 -114.45 + 91 130.891 905 2 1 1.23038 -48.4666 -144.45 + 91 130.899 903 1 1 0.8389 -48.8269 -174.45 + 91 124.433 655 1 0 0.826528 -48.85 -175.868 + 91 201.083 902 0 1 0.499933 -49.2703 -204.45 + 91 251.196 653 0 0 0.494234 -49.2992 -205.85 + 91 185.461 659 4 0 1.34588 -48.243 -85.85 + 91 149.461 660 3 0 1.56178 -47.9758 -115.85 + 91 130.721 913 2 1 2.80453 -48.3245 -144.45 + 91 13.4258 921 1 1 4.44602 -48.4701 -174.45 + 91 90.4961 922 1 1 4.45 -48.4701 -174.513 + 91 118.07 932 0 1 6.56016 -48.4545 -204.45 + 91 9.6919 565 1 0 9.2611 -66.9634 -176.25 + 91 22.8644 907 0 1 1.45 -48.4982 -204.763 + 91 164.792 658 0 0 1.44902 -48.45 -206.036 + 91 4.82047 902 7 1 0.645946 -48.903 5.55 + 91 236.752 903 7 1 0.65 -48.9037 5.51692 + 91 204.828 655 7 0 0.817748 -48.9327 4.14986 + 91 112.377 922 6 1 4.57647 -49.2898 -24.45 + 91 124.362 654 6 0 4.81941 -49.2401 -25.85 + 91 85.6144 949 5 1 9.95661 -47.955 -54.4502 + 91 23.6984 950 5 1 10.05 -47.9024 -54.7593 + 91 120.364 661 5 0 10.3588 -47.7232 -55.8503 + 91 60.5976 992 4 1 18.5908 -42.7738 -84.45 + 91 153.314 993 4 1 18.65 -42.7464 -84.6579 + 91 135.266 687 4 0 18.9882 -42.5962 -85.85 + 91 112.82 1034 3 1 26.9092 -38.5747 -114.45 + 91 40.6979 709 3 0 27.3475 -38.1058 -115.851 + 91 72.1299 710 3 0 27.4004 -38.05 -116.02 + 91 21.7181 1079 2 1 36.0359 -28.6691 -144.45 + 91 124.052 1080 2 1 36.05 -28.6486 -144.504 + 91 87.267 759 2 0 36.4001 -28.1243 -145.85 + 91 65.5855 760 2 0 36.4496 -28.05 -146.042 + 91 120.16 1120 1 1 44.1528 -17.2035 -174.45 + 91 39.5469 1121 1 1 44.25 -17.0646 -174.755 + 91 84.4731 817 1 0 44.6014 -16.5583 -175.85 + 91 61.0836 818 1 0 44.678 -16.45 -176.093 + 91 54.6682 1166 0 1 53.4081 -3.74034 -204.45 + 91 88.8094 1167 0 1 53.45 -3.67397 -204.61 + 91 84.4805 884 0 0 53.7778 -3.15762 -205.85 + 91 53.6718 885 0 0 53.8464 -3.05 -206.107 + 91 137.013 512 7 0 -6.46456 -77.5296 3.75026 + 91 131.915 897 6 1 -0.533311 -50.6474 -24.45 + 91 89.4079 646 6 0 -0.63627 -50.7913 -25.8503 + 91 129.16 885 5 1 -2.98002 -53.9619 -54.45 + 91 83.0381 629 5 0 -2.9363 -54.2018 -55.85 + 91 47.8998 628 5 0 -2.92575 -54.25 -56.1157 + 91 145.981 887 4 1 -2.51615 -60.5672 -84.45 + 91 136.399 595 4 0 -2.45664 -60.8821 -85.85 + 91 286.225 894 3 1 -1.16794 -67.3973 -114.45 + 91 195.516 561 3 0 -1.07855 -67.7441 -115.85 + 91 97.3947 904 2 1 0.949015 -74.8434 -144.45 + 91 107.563 524 2 0 0.937658 -75.0793 -145.85 + 91 121.574 904 1 1 1.00023 -80.054 -174.45 + 91 124.744 499 1 0 1.02421 -80.1773 -175.851 + 91 100.618 901 0 1 0.277801 -83.7956 -204.45 + 91 31.8172 900 0 1 0.25 -83.8583 -204.742 + 91 122.585 479 0 0 0.127284 -84.1062 -205.85 + 91 49.6483 630 5 0 -2.93087 -53.8805 -55.85 + 91 30.3051 594 5 0 -7.5903 -61.05 -55.9276 + 91 394.176 1198 2 1 59.7578 -92.9564 -144.45 + 91 79.4958 652 11 0 -0.631008 -49.62 124.15 + 91 77.1814 651 11 0 -0.678447 -49.65 124.087 +Number of digits in this event: 60 +Using G4ParticleGun... +Particle energy: 8.10503 LIN +Particle: e- Event: 92 -Number of tracker hits in this event = 72 - 92 115.192 1139 11 1 47.9794 56.2181 125.55 - 92 113.695 1180 11 0 47.9798 56.2206 124.15 - 92 185.156 1139 10 1 47.9896 56.2818 95.55 - 92 148.625 1181 10 0 47.9919 56.2855 94.15 - 92 124.241 1139 9 1 48.045 56.3559 65.55 - 92 113.126 1181 9 0 48.0472 56.3601 64.15 - 92 199.473 1140 8 1 48.0763 56.4368 35.55 - 92 104.503 1181 8 0 48.0772 56.4383 34.15 - 92 96.3946 1140 7 1 48.0812 56.4385 5.55 - 92 133.411 1181 7 0 48.0758 56.44 4.15 - 92 98.651 1139 6 1 47.9638 56.4718 -24.45 - 92 403.961 1182 6 0 47.9546 56.4744 -25.85 - 92 109.435 1138 5 1 47.756 56.5113 -54.45 - 92 95.6388 1182 5 0 47.7139 56.4962 -55.85 - 92 128.426 1133 4 1 46.8436 56.1917 -84.45 - 92 110.28 1180 4 0 46.8024 56.1743 -85.85 - 92 104.71 1129 3 1 45.9748 55.8051 -114.45 - 92 327.076 1178 3 0 45.9298 55.7876 -115.85 - 92 287.25 1124 2 1 44.9875 55.428 -144.45 - 92 99.7797 1176 2 0 44.9434 55.4146 -145.85 - 92 45.292 1120 1 1 44.0554 55.1077 -174.45 - 92 61.443 1119 1 1 44.05 55.1049 -174.64 - 92 128.066 1175 1 0 44.0157 55.0881 -175.85 - 92 181.966 1115 0 1 43.2128 54.7032 -204.45 - 92 152.699 1173 0 0 43.1725 54.6901 -205.85 - 92 291.629 1325 3 1 85.1076 80.275 -114.85 - 92 59.483 900 3 0 -73.0323 0.25 -116.104 - 92 132.114 1125 2 1 45.05 55.4967 -144.722 - 92 236.812 1139 3 1 48.0286 56.4844 -114.45 - 92 294.91 1182 3 0 48.0462 56.4777 -115.85 - 92 232.982 1141 2 1 48.3715 56.1131 -144.45 - 92 156.988 1179 2 0 48.3762 56.0305 -145.85 - 92 453.852 1142 1 1 48.5528 54.607 -174.45 - 92 114.12 1172 1 0 48.5797 54.5106 -175.85 - 92 118.565 1146 0 1 49.2554 52.4102 -204.45 - 92 124.131 1161 0 0 49.3667 52.3163 -205.85 - 92 182.412 1143 1 1 48.6501 54.6124 -174.473 - 92 178.15 1183 2 0 48.3574 56.6622 -145.85 - 92 124.066 1191 1 0 48.708 58.3345 -175.85 - 92 119.467 1153 0 1 50.7169 60.6018 -204.45 - 92 162.272 1203 0 0 50.7606 60.6859 -205.85 - 92 232.506 825 3 0 -114.309 -14.9911 -116.25 - 92 359.13 1140 6 1 48.1258 56.6133 -24.45 - 92 18.2353 1190 5 1 58.2063 53.3801 -54.4501 - 92 10.1644 1191 5 1 58.25 53.4 -54.4559 - 92 78.7028 1194 5 1 58.8852 53.3734 -54.4501 - 92 65.115 1195 5 1 59.0506 53.316 -54.6397 - 92 107.278 1165 5 0 59.4975 53.1659 -55.85 - 92 4.01096 1059 4 0 129.457 32.05 -86.1612 - 92 110.137 1140 5 1 48.22 56.7209 -54.45 - 92 146.805 1183 5 0 48.2241 56.73 -55.85 - 92 121.698 1140 4 1 48.1958 56.9838 -84.45 - 92 149.348 1184 4 0 48.1932 56.9929 -85.85 - 92 105.819 1138 3 1 47.8176 57.1322 -114.45 - 92 142.184 1185 3 0 47.8047 57.192 -115.85 - 92 111.251 1137 2 1 47.5669 58.4432 -144.451 - 92 259.914 1191 2 0 47.5809 58.3859 -145.85 - 92 374.331 1136 1 1 47.369 57.6457 -174.45 - 92 119.826 1188 1 0 47.3969 57.7794 -175.85 - 92 15.2985 1139 0 1 48.0484 60.4899 -204.45 - 92 121.818 1140 0 1 48.0501 60.4946 -204.504 - 92 91.8423 1202 0 0 48.0957 60.6204 -205.85 - 92 40.7253 393 5 1 -101.35 -44.2494 -54.7861 - 92 13.5128 1290 2 1 78.0609 24.0288 -144.85 - 92 35.9998 1177 10 0 47.6059 55.5122 94.15 - 92 30.1505 1138 10 1 47.7752 55.9623 95.1502 - 92 19.3389 1135 10 1 47.25 56.1611 95.4265 - 92 97.861 1140 11 1 48.05 56.3202 125.512 - 92 60.5663 1141 11 1 48.25 56.4365 125.303 - 92 66.8831 1186 11 0 49.4912 57.2855 124.15 - 92 104.227 1187 11 0 49.6308 57.4502 124.033 - 92 88.2198 1188 11 0 49.7647 57.65 123.921 -Number of digits in this event = 35 -Using G4ParticleGun ... -8.33772 LIN -e- +Number of tracker hits in this event: 110 + 92 318.672 1218 10 1 63.7363 93.1529 95.55 + 92 155.355 1365 10 0 63.7372 93.1538 94.15 + 92 173.773 1218 9 1 63.7537 93.1748 65.55 + 92 282.503 1365 9 0 63.7548 93.1762 64.15 + 92 120.308 1218 8 1 63.7814 93.2081 35.55 + 92 125.939 1365 8 0 63.7839 93.2093 34.15 + 92 177.058 1218 7 1 63.8361 93.2274 5.55 + 92 109.814 1365 7 0 63.8363 93.2281 4.15 + 92 107.582 1218 6 1 63.8435 93.2419 -24.45 + 92 133.865 1365 6 0 63.8434 93.2434 -25.85 + 92 122.34 1218 5 1 63.8441 93.2634 -54.45 + 92 124.003 1365 5 0 63.8436 93.2638 -55.85 + 92 131.968 1218 4 1 63.8327 93.2706 -84.45 + 92 132.557 1365 4 0 63.8323 93.27 -85.85 + 92 100.455 1218 3 1 63.8259 93.2541 -114.45 + 92 159.748 1365 3 0 63.8255 93.2528 -115.85 + 92 174.036 1218 2 1 63.8215 93.2233 -144.45 + 92 150.655 1365 2 0 63.8222 93.2233 -145.85 + 92 102.333 1218 1 1 63.8371 93.2264 -174.45 + 92 129.989 1365 1 0 63.8379 93.2267 -175.85 + 92 102.21 1219 0 1 63.8533 93.2343 -204.45 + 92 121.619 1365 0 0 63.8574 93.2359 -205.85 + 92 129.075 1219 6 1 63.902 93.2332 -24.4503 + 92 129.825 1364 6 0 63.9449 93.0679 -25.85 + 92 125.155 1232 5 1 66.6425 90.9898 -54.45 + 92 113.164 1353 5 0 66.6594 90.9422 -55.85 + 92 104.405 1241 4 1 68.4242 90.4521 -84.4501 + 92 108.891 1351 4 0 68.4178 90.5309 -85.8511 + 92 146.734 1239 3 1 67.8685 90.7488 -114.45 + 92 40.1481 1353 3 0 67.9196 90.9296 -115.85 + 92 55.9563 1354 3 0 67.9233 90.95 -116.011 + 92 14.9177 1240 2 1 68.2339 95.3902 -144.45 + 92 95.1331 1241 2 1 68.25 95.3936 -144.494 + 92 195.117 1376 2 0 68.7685 95.4711 -145.85 + 92 31.4806 1296 1 1 79.3908 97.2631 -174.45 + 92 104.945 1297 1 1 79.45 97.2397 -174.552 + 92 151.91 1383 1 0 80.2164 96.8733 -175.85 + 92 137.238 1389 0 1 97.9866 89.8973 -204.45 + 92 6.1498 1390 0 1 98.1502 89.6762 -204.82 + 92 4.43563 1345 0 0 98.6089 89.0584 -205.851 + 92 131.091 1344 0 0 98.6153 89.05 -205.865 + 92 11.017 1343 0 0 98.7721 88.85 -206.217 + 92 254.371 1260 0 1 72.2022 83.0107 -204.45 + 92 109.143 1311 0 0 72.1652 82.4328 -205.85 + 92 83.202 1260 0 0 84.9608 72.1979 -206.25 + 92 26.0212 1261 0 0 85.1076 72.2501 -205.949 + 92 22.5747 1327 0 1 85.6172 72.5532 -204.85 + 92 102.111 1328 0 1 85.65 72.5701 -204.775 + 92 33.0422 1329 0 1 85.9641 72.8003 -204.45 + 92 61.3929 1330 0 1 86.0502 72.7593 -204.556 + 92 78.1352 1331 0 1 86.25 72.7019 -204.697 + 92 23.3477 1332 0 1 86.45 72.6753 -204.802 + 92 92.6599 1262 0 0 88.3201 72.611 -205.85 + 92 533.547 1263 0 0 88.6159 72.6501 -206.011 + 92 42.8285 1264 0 0 89.8242 72.85 -206.202 + 92 8.55692 1644 0 1 149.137 73.2324 -204.849 + 92 108.93 1645 0 1 149.15 73.2396 -204.81 + 92 112.521 1312 0 0 71.8639 82.6149 -205.85 + 92 84.7953 1412 0 0 52.3978 102.591 -206.25 + 92 73.4231 1413 0 0 52.3289 102.75 -206.128 + 92 75.4226 1414 0 0 52.2939 102.951 -206.088 + 92 231.202 1415 0 0 52.2845 103.15 -206.07 + 92 360.736 1416 0 0 52.2658 103.35 -206.018 + 92 34.9409 1364 9 0 63.7255 93.1499 63.7809 + 92 8.83062 1385 9 0 87.2036 97.3378 63.75 + 92 82.3288 1386 9 0 87.2313 97.35 63.7693 + 92 44.2803 1219 9 1 63.8501 93.1929 65.2941 + 92 24.4155 1366 9 0 64.7747 93.35 63.81 + 92 28.1476 1217 10 1 63.65 93.078 95.2758 + 92 127.681 1363 10 0 63.4593 92.8685 94.1493 + 92 191.529 1322 10 0 106.917 84.5827 93.75 + 92 156.949 1321 10 0 107.485 84.4498 93.8912 + 92 124.971 1320 10 0 107.883 84.25 93.9667 + 92 159.636 1319 10 0 108.198 84.05 93.967 + 92 244.785 1318 10 0 108.526 83.8499 93.8992 + 92 10.8969 1317 10 0 108.605 83.6498 93.7713 + 92 343.298 1119 10 0 39.2024 43.9655 93.75 + 92 345.3 1120 10 0 38.7277 44.05 93.9755 + 92 399.037 1086 10 1 37.3903 43.3219 95.15 + 92 179.108 1087 10 1 37.4524 43.0358 95.55 + 92 293.069 1448 10 1 109.83 84.8643 95.15 + 92 180.563 1447 10 1 109.75 84.8668 95.3022 + 92 5.22354 1256 11 1 71.3725 103.658 125.15 + 92 266.454 1364 10 0 63.8101 93.0568 94.15 + 92 103.993 1225 9 1 65.2239 90.9241 65.55 + 92 116.062 1353 9 0 65.2452 90.8225 64.15 + 92 177.726 1228 8 1 65.7724 88.8545 35.55 + 92 55.0955 1343 8 0 65.8847 88.6749 34.15 + 92 99.1203 1342 8 0 65.8945 88.65 33.9993 + 92 101.864 1239 7 1 67.9537 84.0674 5.55 + 92 113.448 1319 7 0 68.0379 83.9126 4.15 + 92 157.929 1247 6 1 69.4896 80.826 -24.4502 + 92 39.8256 1302 6 0 69.3577 80.4927 -25.85 + 92 69.4441 1301 6 0 69.3406 80.45 -26.0112 + 92 134.386 1233 5 1 66.6842 72.82 -54.4501 + 92 133.056 1262 5 0 66.7439 72.5327 -55.85 + 92 105.827 1238 4 1 67.8068 66.6654 -84.4502 + 92 143.34 1231 4 0 67.8213 66.3842 -85.85 + 92 136.33 1238 3 1 67.7702 60.9813 -114.45 + 92 132.602 1203 3 0 67.7379 60.7665 -115.85 + 92 132.391 1233 2 1 66.7929 56.2996 -144.45 + 92 94.0759 1180 2 0 66.7821 56.0901 -145.85 + 92 26.8256 1179 2 0 66.7785 56.05 -146.117 + 92 133.044 1231 1 1 66.2627 51.8114 -174.45 + 92 119.053 1157 1 0 66.2417 51.5791 -175.851 + 92 233.954 1230 0 1 66.1298 47.1663 -204.45 + 92 65.9262 1134 0 0 66.0353 46.8935 -205.85 + 92 62.0766 1133 0 0 66.0203 46.85 -206.076 + 92 12.4063 1269 1 1 74.0256 53.4747 -174.45 + 92 166.561 1270 1 1 74.05 53.461 -174.604 +Number of digits in this event: 55 +Using G4ParticleGun... +Particle energy: 4.29046 LIN +Particle: e- Event: 93 -Number of tracker hits in this event = 23 - 93 150.878 1063 8 1 32.667 141.761 35.55 - 93 111.068 1608 8 0 32.6675 141.761 34.15 - 93 113.295 1063 7 1 32.6794 141.757 5.55 - 93 116.125 1608 7 0 32.6791 141.757 4.15 - 93 138.114 1063 6 1 32.6764 141.756 -24.45 - 93 138.821 1608 6 0 32.6766 141.757 -25.85 - 93 163.334 1063 5 1 32.6803 141.774 -54.45 - 93 162.751 1608 5 0 32.6818 141.775 -55.85 - 93 134.924 1063 4 1 32.711 141.796 -84.45 - 93 132.066 1608 4 0 32.7116 141.797 -85.85 - 93 93.1697 1063 3 1 32.7171 141.817 -114.45 - 93 114.211 1608 3 0 32.7164 141.818 -115.85 - 93 111.598 1063 2 1 32.7002 141.844 -144.45 - 93 125.15 1608 2 0 32.7005 141.846 -145.85 - 93 147.493 1063 1 1 32.703 141.881 -174.45 - 93 148.096 1608 1 0 32.7044 141.884 -175.85 - 93 147.802 1063 0 1 32.7348 141.942 -204.45 - 93 137.593 1608 0 0 32.7348 141.945 -205.85 - 93 120.165 552 5 0 6.21982 -69.45 -56.1035 - 93 130.924 1506 5 1 121.381 67.9491 -54.85 - 93 84.0053 694 0 1 -41.05 139.909 -204.722 - 93 167.129 1607 5 0 32.6821 141.75 -56.1425 - 93 20.6189 1140 0 1 48.05 133.175 -204.659 -Number of digits in this event = 17 -Using G4ParticleGun ... -5.59011 LIN -e- +Number of tracker hits in this event: 133 + 93 170.601 1108 11 1 41.6993 60.3711 125.55 + 93 109.216 1201 11 0 41.701 60.3713 124.15 + 93 118.669 1108 10 1 41.7249 60.3805 95.55 + 93 118.339 1201 10 0 41.7239 60.3817 94.15 + 93 356.795 1108 9 1 41.7138 60.4101 65.55 + 93 432.772 1201 9 0 41.7168 60.4112 64.15 + 93 108.817 1108 8 1 41.7716 60.4346 35.55 + 93 317.994 1201 8 0 41.7743 60.4376 34.15 + 93 174.838 1108 7 1 41.838 60.4971 5.55 + 93 138.927 1202 7 0 41.8405 60.4978 4.15 + 93 118.559 1109 6 1 41.9022 60.5108 -24.45 + 93 115.574 1202 6 0 41.9063 60.5112 -25.85 + 93 113.122 1109 5 1 41.9911 60.5172 -54.45 + 93 143.044 1202 5 0 41.9964 60.5081 -55.85 + 93 128.087 1110 4 1 42.0589 60.298 -84.45 + 93 143.316 1201 4 0 42.0671 60.2815 -85.85 + 93 115.714 1111 3 1 42.2667 59.9489 -114.45 + 93 202.441 1199 3 0 42.2672 59.937 -115.85 + 93 155.989 1111 2 1 42.3138 59.6889 -144.45 + 93 104.72 1198 2 0 42.3243 59.669 -145.85 + 93 113.149 1112 1 1 42.5355 59.2421 -174.45 + 93 164.485 1195 1 0 42.5363 59.2295 -175.85 + 93 127.738 1112 0 1 42.5858 58.9745 -204.45 + 93 125.788 1194 0 0 42.5871 58.983 -205.85 + 93 25.2816 715 1 1 -36.908 149.173 -174.85 + 93 251.531 1109 8 1 41.8767 60.8579 35.55 + 93 129.793 1204 8 0 41.8979 60.9028 34.15 + 93 122.524 1111 7 1 42.3423 61.8113 5.55 + 93 108.499 1209 7 0 42.3669 61.8724 4.15 + 93 137.083 1113 6 1 42.8167 63.1743 -24.45 + 93 180.506 1216 6 0 42.8403 63.2553 -25.85 + 93 109.788 1116 5 1 43.2828 64.926 -54.45 + 93 107.99 1224 5 0 43.2876 65.0122 -55.85 + 93 138.967 1116 4 1 43.3246 66.7594 -84.45 + 93 69.2002 1233 4 0 43.3348 66.8347 -85.85 + 93 35.7656 1234 4 0 43.3368 66.85 -86.1318 + 93 198.707 1117 3 1 43.6042 68.3992 -114.45 + 93 105.096 1242 3 0 43.6235 68.4735 -115.85 + 93 112.175 1119 2 1 44.0366 69.9698 -144.45 + 93 118.871 1249 2 0 44.0626 70.024 -145.85 + 93 165.367 1122 1 1 44.6386 71.0735 -174.45 + 93 95.6778 1255 1 0 44.654 71.1247 -175.85 + 93 114.67 1124 0 1 44.9879 72.1162 -204.45 + 93 142.025 1260 0 0 44.9863 72.1639 -205.85 + 93 59.483 842 3 0 17.188 -11.45 -116.125 + 93 21.2415 1344 0 0 5.83486 88.8993 -206.25 + 93 91.8162 1546 0 0 -1.53858 129.375 -206.25 + 93 94.8989 1215 6 0 42.8413 63.2377 -25.85 + 93 123.671 1116 7 1 43.3313 60.1893 5.55 + 93 122.466 1200 7 0 43.4395 60.2001 4.15 + 93 126.637 1129 6 1 45.9934 60.264 -24.45 + 93 101.715 1200 6 0 46.1191 60.2247 -25.85 + 93 6.9821 1142 5 1 48.6452 59.1586 -54.45 + 93 150.365 1143 5 1 48.65 59.1577 -54.4812 + 93 111.193 1195 5 0 48.8704 59.1077 -55.85 + 93 150.464 1167 4 1 53.5502 57.8313 -84.4502 + 93 107.263 1189 4 0 53.7083 57.8688 -85.8503 + 93 282.843 1186 3 1 57.2995 59.0195 -114.45 + 93 133.919 1196 3 0 57.329 59.2816 -115.85 + 93 151.301 1188 2 1 57.7575 64.7055 -144.45 + 93 49.2792 1224 2 0 57.8767 65.0131 -145.85 + 93 92.3093 1225 2 0 57.8907 65.05 -146.016 + 93 130.199 1193 1 1 58.6871 71.1178 -174.45 + 93 132.351 1256 1 0 58.7189 71.3581 -175.85 + 93 167.354 1195 0 1 59.17 75.7197 -204.45 + 93 5.54026 1279 0 0 59.3651 76.0435 -205.85 + 93 108.459 1280 0 0 59.3692 76.05 -205.879 + 93 110.093 1189 2 1 57.85 64.6421 -144.529 + 93 21.1776 1190 2 1 58.05 64.6626 -144.786 + 93 176.238 1223 2 0 58.5156 64.7236 -145.85 + 93 162.615 1246 2 0 80.0325 69.3567 -146.25 + 93 120.056 1247 2 0 80.0145 69.45 -145.979 + 93 22.9622 1303 2 1 80.8123 69.2017 -144.85 + 93 313.981 1304 2 1 80.8503 69.2025 -144.807 + 93 242.515 1212 2 1 62.4987 56.4703 -144.45 + 93 250.385 1182 2 0 62.7349 56.4931 -145.85 + 93 123.804 1239 1 1 67.862 57.5962 -174.45 + 93 333.185 1187 1 0 68.2711 57.479 -175.85 + 93 44.9498 1186 1 0 68.3651 57.45 -176.155 + 93 121.312 1288 0 1 77.7381 54.5562 -204.45 + 93 113.283 1171 0 0 77.6744 54.3467 -205.85 + 93 237.686 1231 1 1 66.3053 57.5788 -174.45 + 93 150.477 1243 0 1 68.7511 56.6278 -204.45 + 93 115.586 1181 0 0 68.6729 56.4091 -205.85 + 93 49.7015 878 2 1 -4.27485 151.668 -144.85 + 93 247.166 877 2 1 -4.45001 151.952 -144.622 + 93 328.684 1130 5 1 46.1697 60.6855 -54.45 + 93 308.268 1203 5 0 46.1802 60.6861 -55.85 + 93 152.492 1131 4 1 46.4303 61.1629 -84.45 + 93 124.978 1206 4 0 46.3749 61.3649 -85.85 + 93 115.01 1119 3 1 43.9707 66.5326 -114.45 + 93 139.463 1233 3 0 43.7162 66.7839 -115.851 + 93 17.2066 1234 3 0 43.6462 66.85 -116.21 + 93 167.211 1088 2 1 37.8057 72.3977 -144.45 + 93 155.522 1263 2 0 37.7298 72.6838 -145.851 + 93 102.174 1080 1 1 36.0557 78.89 -174.45 + 93 26.8315 1079 1 1 36.05 78.9196 -174.533 + 93 6.0633 1296 1 0 36.035 79.4424 -175.85 + 93 153.627 1297 1 0 36.0347 79.4501 -175.869 + 93 140.745 1079 0 1 35.9175 90.1754 -204.45 + 93 140.11 1352 0 0 36.3662 90.5532 -205.85 + 93 136.441 1146 1 1 49.3095 62.4897 -174.45 + 93 153.15 1212 1 0 49.6272 62.5502 -175.85 + 93 54.0983 1211 0 1 62.2708 62.8951 -204.45 + 93 50.6435 1212 0 1 62.45 62.9438 -204.557 + 93 61.7841 1213 0 1 62.65 62.9901 -204.669 + 93 65.1082 1214 0 1 62.85 63.0139 -204.753 + 93 1.63483 1215 0 1 63.05 63.0637 -204.848 + 93 102.817 1218 0 0 65.2686 63.7211 -205.85 + 93 164.945 1219 0 0 65.6378 63.85 -205.976 + 93 210.957 1220 0 0 66.2012 64.05 -206.137 + 93 12.8241 1221 0 0 66.7127 64.2502 -206.236 + 93 61.2215 1475 0 0 140.228 115.212 -206.25 + 93 51.292 1476 0 0 140.223 115.35 -206.191 + 93 63.0313 1477 0 0 140.232 115.55 -206.096 + 93 75.5567 1478 0 0 140.252 115.75 -205.994 + 93 45.3572 1479 0 0 140.275 115.95 -205.906 + 93 227.214 1605 0 1 141.209 118.693 -204.85 + 93 237.831 1604 0 1 141.15 119.288 -204.548 + 93 128.252 1603 0 1 140.95 119.407 -204.581 + 93 202.969 1495 0 0 139.982 119.298 -205.85 + 93 123 1138 4 1 47.7592 60.2507 -84.4504 + 93 115.547 1200 4 0 47.9559 60.1932 -85.85 + 93 118.997 1159 3 1 51.952 59.1786 -114.45 + 93 159.366 1195 3 0 52.1474 59.1565 -115.85 + 93 101.197 1181 2 1 56.3438 58.7912 -144.45 + 93 97.4104 1193 2 0 56.4288 58.744 -145.85 + 93 99.9291 1189 1 1 58.0036 57.9616 -174.451 + 93 9.23886 1189 1 0 58.082 57.8532 -175.85 + 93 105.476 1188 1 0 58.0842 57.85 -175.891 + 93 86.0513 1200 0 1 60.1929 55.5955 -204.45 + 93 48.333 1201 0 1 60.25 55.6009 -204.735 + 93 110.967 1177 0 0 60.4765 55.6205 -205.85 +Number of digits in this event: 68 +Using G4ParticleGun... +Particle energy: 9.9613 LIN +Particle: e- Event: 94 -Number of tracker hits in this event = 84 - 94 240.842 766 11 1 -26.6626 37.2985 125.55 - 94 88.0346 1086 11 0 -26.6622 37.2981 124.15 - 94 222.676 766 10 1 -26.658 37.2859 95.55 - 94 196.533 1086 10 0 -26.6588 37.2852 94.15 - 94 127.448 766 9 1 -26.6746 37.274 65.55 - 94 113.772 1086 9 0 -26.6768 37.2736 64.15 - 94 249.273 766 8 1 -26.7169 37.2682 35.55 - 94 121.731 1086 8 0 -26.7175 37.2683 34.15 - 94 104.426 766 7 1 -26.7294 37.2695 5.55 - 94 116.663 1086 7 0 -26.73 37.2704 4.15 - 94 128.485 766 6 1 -26.741 37.2868 -24.45 - 94 117.681 1086 6 0 -26.7415 37.2868 -25.85 - 94 420.632 766 5 1 -26.7556 37.2877 -54.45 - 94 394.958 1086 5 0 -26.7573 37.2868 -55.85 - 94 121.087 766 4 1 -26.7888 37.272 -84.45 - 94 147.565 1086 4 0 -26.7904 37.2881 -85.85 - 94 120.605 766 3 1 -26.7585 37.6621 -114.45 - 94 131.777 1088 3 0 -26.7579 37.7168 -115.85 - 94 113.553 766 2 1 -26.7775 38.9034 -144.45 - 94 135.558 1094 2 0 -26.7742 38.9474 -145.85 - 94 149.941 766 1 1 -26.7871 39.6609 -174.45 - 94 160.924 1098 1 0 -26.7947 39.7528 -175.85 - 94 134.575 764 0 1 -27.144 41.9576 -204.45 - 94 106.065 1110 0 0 -27.1716 42.0621 -205.85 - 94 120.491 1112 0 0 -28.2631 42.5708 -205.85 - 94 16.6668 1113 0 0 -28.3814 42.65 -206.216 - 94 52.4254 1382 0 0 -13.7313 96.5917 -206.25 - 94 307.816 1383 0 0 -13.6651 96.75 -206.175 - 94 152.191 1384 0 0 -13.1772 96.95 -205.921 - 94 9.28602 1087 5 0 -27.2766 37.45 -56.218 - 94 142.104 710 4 1 -37.9131 41.5401 -84.4502 - 94 11.5949 1113 4 0 -37.9224 42.8215 -85.85 - 94 84.2592 1114 4 0 -37.9234 42.8504 -85.88 - 94 88.7801 1115 4 0 -37.9403 43.05 -86.0765 - 94 108.513 689 3 1 -42.1382 79.5963 -114.45 - 94 134.181 688 3 1 -42.2505 79.7908 -114.632 - 94 58.4827 1306 3 0 -43.2285 81.3235 -115.85 - 94 90.7095 1307 3 0 -43.302 81.4502 -115.942 - 94 75.5008 1308 3 0 -43.4263 81.65 -116.073 - 94 28.7682 1309 3 0 -43.5427 81.85 -116.188 - 94 81.2636 1740 3 0 -72.7724 168.162 -116.25 - 94 127.082 1741 3 0 -72.7136 168.35 -116.05 - 94 107.004 537 3 1 -72.6439 169.514 -114.85 - 94 43.3349 536 3 1 -72.65 169.787 -114.569 - 94 68.3708 1628 4 0 -90.5367 145.923 -86.25 - 94 62.8614 1627 4 0 -90.6317 145.75 -86.1168 - 94 59.5341 1626 4 0 -90.7264 145.55 -85.9996 - 94 127.206 1625 4 0 -90.8031 145.35 -85.9378 - 94 25.7714 1624 4 0 -90.8351 145.15 -85.8615 - 94 200.347 448 4 1 -90.5037 142.868 -84.85 - 94 72.4292 447 4 1 -90.55 142.427 -84.5442 - 94 115.192 446 4 1 -90.7503 142.377 -84.5335 - 94 139.629 1613 4 0 -91.1119 142.909 -85.85 - 94 16.1232 1612 4 0 -91.3161 142.75 -86.2304 - 94 141.671 959 6 1 11.85 -30.9713 -24.5325 - 94 95.3789 768 4 1 -26.3132 37.6207 -84.45 - 94 126.848 1088 4 0 -26.2794 37.6792 -85.85 - 94 139.236 771 3 1 -25.7875 38.8064 -114.45 - 94 106.925 1094 3 0 -25.8551 38.9645 -115.85 - 94 127.66 761 2 1 -27.6608 42.0899 -144.451 - 94 131.854 1110 2 0 -27.8248 42.2227 -145.85 - 94 51.6227 1111 2 0 -27.8568 42.25 -146.115 - 94 136.569 743 1 1 -31.3752 45.2942 -174.45 - 94 4.44986 742 1 1 -31.45 45.3391 -174.828 - 94 233.915 1127 1 0 -31.6555 45.456 -175.85 - 94 187.503 712 0 1 -37.4698 49.4343 -204.45 - 94 100.725 1146 0 0 -37.668 49.3745 -205.85 - 94 289.68 767 1 1 -26.6403 37.1436 -174.45 - 94 406.705 1085 1 0 -26.6253 37.1619 -175.85 - 94 135.017 768 0 1 -26.2829 37.3314 -204.45 - 94 7.18908 769 0 1 -26.25 37.3124 -204.831 - 94 273.575 1086 0 0 -26.1609 37.2679 -205.851 - 94 2.37092 1085 0 0 -26.1267 37.25 -206.243 - 94 170.229 777 0 1 -24.6432 37.7512 -204.45 - 94 155.845 1087 0 0 -24.5507 37.53 -205.85 - 94 31.4284 349 5 1 -110.15 143.441 -54.5474 - 94 41.1899 1086 1 0 -26.5615 37.25 -176.188 - 94 139.521 1350 1 0 57.3717 90.21 -176.25 - 94 210.857 1090 0 0 -25.5323 38.1566 -205.85 - 94 48.8618 1075 11 0 -26.4614 35.1791 124.15 - 94 79.6674 1074 11 0 -26.3993 35.05 124.064 - 94 47.03 1073 11 0 -26.2803 34.8499 124.054 - 94 174.135 769 11 1 -26.1563 34.6726 125.15 - 94 167.017 1065 11 0 -24.6466 33.1733 124.15 -Number of digits in this event = 46 -Using G4ParticleGun ... -9.29611 LIN -e- +Number of tracker hits in this event: 22 + 94 168.973 228 9 0 -15.4554 -134.446 64.15 + 94 138.377 822 8 1 -15.4556 -134.445 35.55 + 94 109.581 228 8 0 -15.4562 -134.445 34.15 + 94 109.756 822 7 1 -15.4676 -134.451 5.55 + 94 177.516 228 7 0 -15.4676 -134.451 4.15 + 94 152.218 822 6 1 -15.463 -134.45 -24.45 + 94 114.388 228 6 0 -15.4633 -134.449 -25.85 + 94 210.984 822 5 1 -15.4666 -134.428 -54.45 + 94 129.102 228 5 0 -15.4663 -134.427 -55.85 + 94 177.921 822 4 1 -15.4592 -134.409 -84.45 + 94 224.807 228 4 0 -15.4581 -134.408 -85.85 + 94 167.414 823 3 1 -15.4326 -134.395 -114.45 + 94 137.294 228 3 0 -15.4325 -134.394 -115.85 + 94 124.811 823 2 1 -15.4325 -134.373 -144.45 + 94 117.043 228 2 0 -15.4323 -134.369 -145.85 + 94 483.195 823 1 1 -15.4306 -134.286 -174.45 + 94 379.439 229 1 0 -15.431 -134.277 -175.85 + 94 119.653 823 0 1 -15.3981 -134.136 -204.45 + 94 256.994 230 0 0 -15.4032 -134.131 -205.85 + 94 7.0851 788 0 0 76.2804 -22.2663 -205.85 + 94 256.202 822 0 1 -15.4659 -134.224 -204.45 + 94 212.715 229 0 0 -15.4676 -134.219 -205.85 +Number of digits in this event: 18 +Using G4ParticleGun... +Particle energy: 1.41847 LIN +Particle: e- Event: 95 -Number of tracker hits in this event = 70 - 95 99.9975 880 11 1 -3.94702 -31.9751 125.55 - 95 129.257 740 11 0 -3.94688 -31.9754 124.15 - 95 118.788 880 10 1 -3.95246 -31.9621 95.55 - 95 126.872 740 10 0 -3.95459 -31.9598 94.15 - 95 136.431 880 9 1 -4.01745 -31.9179 65.55 - 95 104.837 740 9 0 -4.02191 -31.9139 64.15 - 95 225.478 879 8 1 -4.10114 -31.8349 35.55 - 95 99.7017 741 8 0 -4.10238 -31.8299 34.15 - 95 104.398 878 7 1 -4.36808 -31.9833 5.55 - 95 138.897 740 7 0 -4.38805 -31.9925 4.15 - 95 117.801 876 6 1 -4.80462 -32.1754 -24.45 - 95 183.078 739 6 0 -4.83009 -32.1849 -25.85 - 95 115.242 873 5 1 -5.39397 -32.3663 -54.45 - 95 106.997 738 5 0 -5.42636 -32.3699 -55.85 - 95 109.927 869 4 1 -6.08017 -32.4575 -84.45 - 95 103.886 737 4 0 -6.10718 -32.4589 -85.85 - 95 123.548 866 3 1 -6.67264 -32.5328 -114.45 - 95 133.995 737 3 0 -6.70405 -32.5536 -115.85 - 95 150.816 863 2 1 -7.39556 -32.9638 -144.45 - 95 100.126 735 2 0 -7.44291 -32.994 -145.85 - 95 428.481 857 1 1 -8.46985 -33.6718 -174.45 - 95 174.64 731 1 0 -8.5372 -33.6954 -175.85 - 95 109.783 850 0 1 -9.88256 -34.2516 -204.45 - 95 129.414 728 0 0 -9.95166 -34.2781 -205.85 - 95 62.7761 733 1 0 -8.6986 -33.2959 -175.85 - 95 410.456 734 1 0 -8.7323 -33.2499 -176.035 - 95 53.7852 819 0 1 -16.1669 -25.8291 -204.45 - 95 92.7078 818 0 1 -16.25 -25.726 -204.517 - 95 99.8243 817 0 1 -16.45 -25.4746 -204.695 - 95 31.5408 816 0 1 -16.65 -25.2013 -204.831 - 95 5.17943 783 0 0 -18.0098 -23.2655 -205.85 - 95 208.698 784 0 0 -18.0207 -23.25 -205.858 - 95 73.4544 785 0 0 -18.1647 -23.05 -205.974 - 95 70.9228 786 0 0 -18.3049 -22.85 -206.092 - 95 9.17891 787 0 0 -18.4931 -22.65 -206.231 - 95 41.9963 985 0 0 -39.2715 17.1571 -206.25 - 95 87.1636 986 0 0 -39.2597 17.25 -206.164 - 95 126.662 987 0 0 -39.254 17.45 -206.021 - 95 17.3268 988 0 0 -39.2914 17.65 -205.89 - 95 140.55 701 0 1 -39.6645 18.7985 -204.85 - 95 63.1645 700 0 1 -39.85 19.1154 -204.516 - 95 85.335 699 0 1 -40.05 19.3886 -204.455 - 95 79.3053 698 0 1 -40.2506 19.3439 -204.499 - 95 144.408 697 0 1 -40.4501 19.2314 -204.556 - 95 28.0562 696 0 1 -40.65 19.1187 -204.736 - 95 65.5065 996 0 0 -41.0847 19.4218 -205.85 - 95 103.148 997 0 0 -41.1257 19.4501 -205.928 - 95 101.799 732 1 0 -8.67906 -33.6371 -175.85 - 95 124.031 831 0 1 -13.7309 -33.1866 -204.45 - 95 137.721 736 0 0 -14.0499 -32.8495 -205.85 - 95 352.314 863 1 1 -7.38433 -33.0952 -174.45 - 95 287.909 860 0 1 -7.94339 -33.1131 -204.45 - 95 134.488 734 0 0 -7.98703 -33.1174 -205.85 - 95 325.544 733 0 0 -7.95241 -33.281 -205.85 - 95 30.4764 732 0 0 -7.98365 -33.4502 -205.909 - 95 197.977 854 0 1 -9.07666 -33.0876 -204.85 - 95 90.2193 875 6 1 -4.85 -32.1992 -24.4636 - 95 49.8631 874 6 1 -5.05 -32.2807 -24.7769 - 95 205.828 737 6 0 -5.80091 -32.5134 -25.8505 - 95 389.632 760 5 1 -27.9239 -39.4012 -54.4501 - 95 67.5931 718 5 0 -27.1713 -36.347 -55.8501 - 95 19.5337 719 5 0 -27.1464 -36.2494 -55.8624 - 95 26.1315 771 5 1 -25.6983 -31.4927 -54.85 - 95 56.9639 772 5 1 -25.65 -31.4318 -54.839 - 95 65.3843 752 5 0 -25.7021 -29.6233 -55.85 - 95 222.984 751 5 0 -25.5884 -29.65 -55.9417 - 95 209.225 750 5 0 -25.1418 -29.85 -56.0885 - 95 69.57 749 5 0 -24.9426 -30.05 -56.0993 - 95 86.1853 748 5 0 -24.9092 -30.2504 -56.2093 - 95 29.0263 747 5 0 -24.8451 -30.45 -56.2235 -Number of digits in this event = 31 -Using G4ParticleGun ... -1.40124 LIN -e- +Number of tracker hits in this event: 25 + 95 122.866 987 9 1 17.5428 127.816 65.55 + 95 138.854 1538 9 0 17.5463 127.81 64.15 + 95 110.702 987 8 1 17.6024 127.694 35.55 + 95 148.609 1537 8 0 17.6004 127.687 34.15 + 95 180.456 987 7 1 17.5238 127.547 5.55 + 95 113.301 1536 7 0 17.5238 127.544 4.15 + 95 121.332 987 6 1 17.5021 127.533 -24.45 + 95 109.157 1536 6 0 17.4946 127.53 -25.85 + 95 124.475 986 5 1 17.3441 127.473 -54.45 + 95 111.997 1536 5 0 17.3263 127.47 -55.85 + 95 114.016 984 4 1 16.96 127.424 -84.45 + 95 146.688 1536 4 0 16.9357 127.413 -85.85 + 95 140.198 981 3 1 16.4354 127.198 -114.45 + 95 155.254 1535 3 0 16.4157 127.184 -115.85 + 95 208.162 979 2 1 16.0205 126.901 -144.45 + 95 126.257 1533 2 0 16.0032 126.882 -145.85 + 95 101.451 978 1 1 15.6507 126.522 -174.45 + 95 147.728 1531 1 0 15.6545 126.501 -175.85 + 95 241.877 978 0 1 15.802 126.021 -204.45 + 95 163.546 1529 0 0 15.8121 126.002 -205.85 + 95 35.6425 992 1 1 18.5472 124.665 -174.45 + 95 111.782 991 1 1 18.45 124.663 -174.521 + 95 34.5874 990 1 1 18.25 124.606 -174.746 + 95 111.468 1519 1 0 17.6549 124.117 -175.85 + 95 69.5428 1518 1 0 17.449 123.95 -176.051 +Number of digits in this event: 16 +Using G4ParticleGun... +Particle energy: 9.31724 LIN +Particle: e- Event: 96 -Number of tracker hits in this event = 74 - 96 135.842 974 11 1 14.9392 -26.3992 125.55 - 96 137.625 768 11 0 14.9416 -26.3995 124.15 - 96 96.0068 974 10 1 14.9815 -26.4049 95.55 - 96 128.269 768 10 0 14.9901 -26.4068 94.15 - 96 109.79 975 9 1 15.1551 -26.4565 65.55 - 96 148.386 767 9 0 15.1619 -26.4561 64.15 - 96 268.277 976 8 1 15.2994 -26.4312 35.55 - 96 226.998 768 8 0 15.3125 -26.4337 34.15 - 96 133.51 977 7 1 15.5632 -26.5021 5.55 - 96 90.4188 767 7 0 15.57 -26.5013 4.15 - 96 104.968 978 6 1 15.7066 -26.4596 -24.45 - 96 276.723 767 6 0 15.7106 -26.4697 -25.85 - 96 161.757 978 5 1 15.8239 -26.6172 -54.45 - 96 138.517 767 5 0 15.8219 -26.6321 -55.85 - 96 105.181 978 4 1 15.8138 -26.8859 -84.45 - 96 102.927 765 4 0 15.7965 -26.8986 -85.85 - 96 114.312 977 3 1 15.4878 -27.1545 -114.45 - 96 138.304 764 3 0 15.452 -27.1741 -115.85 - 96 117.103 973 2 1 14.8324 -27.5159 -144.45 - 96 139.851 762 2 0 14.8286 -27.5408 -145.85 - 96 122.296 973 1 1 14.6978 -28.0125 -174.45 - 96 487.89 760 1 0 14.681 -28.0271 -175.85 - 96 145.523 971 0 1 14.2845 -28.3914 -204.45 - 96 120.997 758 0 0 14.3465 -28.4013 -205.85 - 96 89.0507 972 1 1 14.4613 -27.4265 -174.749 - 96 167.545 755 1 0 16.3909 -28.8624 -175.85 - 96 80.3126 754 1 0 16.6403 -29.0501 -175.946 - 96 251.541 753 1 0 16.7827 -29.25 -175.931 - 96 40.341 752 1 0 17.1616 -29.45 -175.931 - 96 119.7 996 1 1 19.3634 -26.861 -174.849 - 96 118.541 995 1 1 19.25 -26.7523 -174.746 - 96 103.924 758 1 0 3.95749 -28.4176 -175.85 - 96 59.1304 762 1 0 14.7669 -27.5758 -175.851 - 96 69.8328 761 1 0 14.8509 -27.65 -175.955 - 96 237.153 759 1 0 15.2946 -28.05 -176.021 - 96 39.7297 980 1 1 16.2257 -26.9019 -174.85 - 96 15.9617 774 1 0 15.5514 -25.085 -175.85 - 96 19.2644 775 1 0 15.54 -25.05 -175.861 - 96 5.46333 960 1 1 12.0649 -23.4999 -174.85 - 96 18.6289 959 1 1 12.05 -23.4958 -174.845 - 96 102.293 776 1 0 10.1907 -24.6818 -175.85 - 96 91.6132 954 1 1 10.9777 -24.6792 -174.85 - 96 11.7316 715 1 0 -13.0103 -37.0197 -176.25 - 96 34.0821 539 1 0 -35.6767 -72.1584 -176.25 - 96 52.1607 977 5 1 15.6498 -26.6379 -54.5357 - 96 55.0451 976 5 1 15.45 -26.5664 -54.6371 - 96 74.9632 975 5 1 15.25 -26.5122 -54.7364 - 96 3.76711 974 5 1 15.0496 -26.4902 -54.8423 - 96 224.439 769 5 0 12.9234 -26.1515 -55.85 - 96 159.751 738 5 0 -31.6303 -32.3487 -56.25 - 96 11.9481 737 5 0 -31.9292 -32.45 -55.8925 - 96 48.6384 736 5 1 -32.7451 -32.988 -54.85 - 96 99.8937 735 5 1 -32.85 -33.0498 -54.7041 - 96 40.6049 768 6 0 15.736 -26.4498 -25.9865 - 96 260.08 982 2 1 16.5098 -26.0052 -144.45 - 96 260.687 770 2 0 16.5191 -26.0144 -145.85 - 96 284.058 983 1 1 16.7114 -26.2854 -174.45 - 96 219.958 768 1 0 16.7508 -26.2807 -175.85 - 96 119.354 988 0 1 17.7004 -26.1657 -204.45 - 96 99.6035 769 0 0 17.7331 -26.1324 -205.85 - 96 25.3332 788 6 0 24.6431 -22.3687 -26.25 - 96 61.3144 770 1 0 16.848 -25.8528 -175.85 - 96 39.4862 771 1 0 16.8486 -25.85 -176.065 - 96 116.885 984 0 1 16.9342 -25.494 -204.45 - 96 152.87 772 0 0 16.9461 -25.4988 -205.85 - 96 165.243 614 4 0 29.7868 -57.1441 -86.25 - 96 125.196 613 4 0 29.8843 -57.2504 -85.9731 - 96 145.671 1060 4 1 32.1374 -55.7104 -84.85 - 96 20.3992 1059 4 1 32.05 -55.5336 -84.7421 - 96 122.603 625 4 0 32.5506 -54.9198 -85.8502 - 96 95.3529 1063 4 1 32.8105 -54.6921 -84.85 - 96 196.313 116 2 0 69.4854 -156.75 -145.988 - 96 15.2561 115 2 0 69.5081 -156.95 -145.996 - 96 24.9704 654 8 0 -103.174 -49.0646 33.7501 -Number of digits in this event = 34 -Using G4ParticleGun ... -9.92722 LIN -e- +Number of tracker hits in this event: 105 + 96 119.711 1029 11 1 25.9085 -41.9291 125.55 + 96 178.42 690 11 0 25.907 -41.9292 124.15 + 96 103.862 1029 10 1 25.8767 -41.9322 95.55 + 96 137.977 690 10 0 25.8757 -41.9318 94.15 + 96 121.506 1029 9 1 25.8553 -41.9249 65.55 + 96 122.776 690 9 0 25.8542 -41.9246 64.15 + 96 110.247 1028 8 1 25.8155 -41.9268 35.55 + 96 122.517 690 8 0 25.8135 -41.9265 34.15 + 96 196.003 1028 7 1 25.7582 -41.9232 5.55 + 96 168.435 690 7 0 25.7547 -41.9214 4.15 + 96 245.991 1028 6 1 25.6862 -41.8734 -24.45 + 96 121.753 690 6 0 25.6831 -41.8703 -25.85 + 96 423.455 1027 5 1 25.6221 -41.8039 -54.45 + 96 132.911 691 5 0 25.621 -41.8012 -55.85 + 96 267.746 1027 4 1 25.5954 -41.7532 -84.45 + 96 229.466 691 4 0 25.5965 -41.7469 -85.85 + 96 231.175 1027 3 1 25.6317 -41.6169 -114.45 + 96 154.671 692 3 0 25.6376 -41.6075 -115.85 + 96 122.339 1028 2 1 25.7307 -41.4082 -144.45 + 96 117.888 693 2 0 25.7372 -41.4075 -145.85 + 96 114.151 1029 1 1 25.8713 -41.3837 -174.45 + 96 154.54 693 1 0 25.8802 -41.3867 -175.85 + 96 112.005 1030 0 1 26.0597 -41.4501 -204.45 + 96 244.758 693 0 0 26.0646 -41.4492 -205.85 + 96 181.674 691 3 0 25.5458 -41.7559 -115.85 + 96 107.663 1019 2 1 23.8823 -43.9614 -144.45 + 96 143.144 679 2 0 23.7731 -44.0978 -145.85 + 96 190.751 1005 1 1 21.2142 -46.9856 -174.45 + 96 109.845 663 1 0 21.0876 -47.3108 -175.85 + 96 128.486 999 0 1 19.9282 -53.5796 -204.45 + 96 109.307 628 0 0 19.8552 -54.2775 -205.85 + 96 49.9958 627 0 0 19.8429 -54.45 -206.175 + 96 127.047 1176 6 0 60.8855 55.2985 -26.25 + 96 285.359 1606 2 0 -121.466 141.35 -146.16 + 96 505.268 1026 1 1 25.2948 -41.557 -174.45 + 96 87.3959 1025 1 1 25.2499 -41.5635 -174.634 + 96 227.432 692 1 0 24.9595 -41.6129 -175.85 + 96 110.974 994 0 1 18.911 -42.8306 -204.45 + 96 16.3024 993 0 1 18.85 -42.8451 -204.771 + 96 321.631 685 0 0 18.6397 -42.8931 -205.85 + 96 12.7626 686 0 0 18.6527 -42.85 -206.07 + 96 115.52 1023 0 1 24.828 -41.2822 -204.45 + 96 272.171 850 6 0 25.0569 -9.927 -26.25 + 96 91.8848 688 6 0 26.1981 -42.3912 -25.85 + 96 35.794 687 6 0 26.31 -42.45 -26.1251 + 96 123.128 608 6 0 78.5222 -58.3455 -26.25 + 96 97.6974 607 6 0 78.9124 -58.45 -26.0932 + 96 13.1826 1298 6 1 79.8237 -58.6706 -24.85 + 96 73.9879 1299 6 1 79.85 -58.676 -24.8201 + 96 93.9851 1300 6 1 80.05 -58.7239 -24.651 + 96 48.7919 1301 6 1 80.25 -58.818 -24.5356 + 96 5.51807 983 1 1 16.6726 -65.0616 -174.45 + 96 40.0455 981 1 1 16.3341 -62.3877 -174.45 + 96 221.337 1028 5 1 25.6953 -41.8492 -54.45 + 96 171.057 702 5 0 27.2574 -39.6068 -55.85 + 96 117.552 586 5 0 22.0174 -62.8085 -56.2497 + 96 311.204 585 5 0 22.0039 -62.8508 -56.204 + 96 218.008 690 5 0 25.6605 -41.9362 -55.85 + 96 117.719 1030 4 1 26.1315 -41.8435 -84.4506 + 96 137.687 1018 3 1 23.8013 -41.9873 -114.45 + 96 64.2609 690 3 0 23.7705 -41.8701 -115.85 + 96 130.332 1016 2 1 23.2771 -39.1877 -144.45 + 96 129.403 705 2 0 23.238 -38.9955 -145.85 + 96 133.555 1009 1 1 21.8787 -34.7264 -174.451 + 96 111.197 728 1 0 21.8637 -34.4079 -175.85 + 96 135.35 1009 0 1 21.9203 -27.8362 -204.45 + 96 2.24218 761 0 0 22.169 -27.6514 -205.851 + 96 112.236 762 0 0 22.1709 -27.65 -205.862 + 96 236.276 697 4 0 25.3063 -40.5774 -85.85 + 96 78.9012 1002 3 1 20.4918 -35.1838 -114.45 + 96 114.122 1001 3 1 20.45 -35.3206 -114.605 + 96 83.7992 716 3 0 20.0909 -36.6754 -115.85 + 96 82.3296 715 3 0 20.0448 -36.8503 -116.013 + 96 22.08 714 3 0 19.9777 -37.05 -116.203 + 96 107.461 953 2 1 10.7863 -67.4467 -144.45 + 96 240.452 954 2 1 10.85 -67.7199 -144.595 + 96 31.9507 551 2 0 11.3688 -69.7586 -145.85 + 96 60.4868 550 2 0 11.3932 -69.85 -145.908 + 96 74.0211 549 2 0 11.4468 -70.05 -146.03 + 96 104.028 548 2 0 11.4957 -70.2502 -146.147 + 96 41.9267 1013 1 1 22.7989 -122.781 -174.45 + 96 108.93 1014 1 1 22.85 -122.772 -174.552 + 96 119.857 287 1 0 23.5158 -122.678 -175.85 + 96 17.706 286 1 0 23.6983 -122.75 -176.192 + 96 2.78785 1098 0 1 39.8386 -133.741 -204.45 + 96 72.2337 1099 0 1 39.8501 -133.75 -204.46 + 96 71.9159 1100 0 1 40.05 -133.897 -204.626 + 96 31.9134 1101 0 1 40.25 -134.025 -204.791 + 96 148.784 227 0 0 41.5941 -134.641 -205.85 + 96 94.7063 226 0 0 41.8649 -134.75 -206.074 + 96 65.5978 337 0 0 79.9182 -112.745 -206.25 + 96 116.342 338 0 0 80.0414 -112.55 -206.078 + 96 0.386717 339 0 0 80.1869 -112.35 -205.851 + 96 0.8741 1303 0 1 80.8485 -111.43 -204.85 + 96 108.677 1304 0 1 80.85 -111.428 -204.848 + 96 371.068 1027 0 1 25.5257 -41.7246 -204.45 + 96 225.433 691 0 0 25.5272 -41.7274 -205.85 + 96 193.669 372 7 0 70.7814 -105.596 3.75 + 96 225.068 371 7 0 70.4611 -105.75 4.10273 + 96 55.7067 961 2 0 94.2052 12.2807 -146.25 + 96 69.032 960 2 0 94.384 12.25 -146.107 + 96 76.6589 959 2 0 94.455 12.05 -146.022 + 96 93.0096 958 2 0 94.3921 11.85 -146.073 + 96 164.471 957 2 0 94.3077 11.6499 -146.108 + 96 224.052 956 2 0 94.0607 11.45 -145.961 +Number of digits in this event: 51 +Using G4ParticleGun... +Particle energy: 5.97839 LIN +Particle: e- Event: 97 -Number of tracker hits in this event = 66 - 97 252.308 1292 9 1 78.5727 -109.666 65.55 - 97 113.929 352 9 0 78.5728 -109.666 64.15 - 97 146.496 1292 8 1 78.5814 -109.654 35.55 - 97 137.501 352 8 0 78.5811 -109.654 34.15 - 97 144.752 1292 7 1 78.5775 -109.655 5.55 - 97 123.716 352 7 0 78.5774 -109.656 4.15 - 97 126.389 1292 6 1 78.5804 -109.672 -24.45 - 97 109.554 352 6 0 78.5813 -109.673 -25.85 - 97 111.827 1292 5 1 78.5997 -109.702 -54.45 - 97 329.756 352 5 0 78.5984 -109.704 -55.85 - 97 118.503 1292 4 1 78.5641 -109.739 -84.45 - 97 138.835 352 4 0 78.5649 -109.74 -85.85 - 97 422.223 1292 3 1 78.5866 -109.729 -114.45 - 97 528.784 352 3 0 78.5846 -109.73 -115.85 - 97 126.864 1292 2 1 78.5387 -109.723 -144.45 - 97 210.038 352 2 0 78.5378 -109.723 -145.85 - 97 105.078 1292 1 1 78.5289 -109.713 -174.45 - 97 187.764 352 1 0 78.5283 -109.711 -175.85 - 97 143.852 1292 0 1 78.5183 -109.673 -204.45 - 97 146.794 352 0 0 78.5175 -109.672 -205.85 - 97 2.38564 1682 12 0 56.835 156.55 153.757 - 97 81.4509 1683 12 0 56.8263 156.75 154.09 - 97 53.1201 684 13 1 -43.05 66.6404 185.329 - 97 139.752 685 13 1 -43.05 66.7305 185.443 - 97 221.751 683 13 1 -43.2502 66.7553 185.439 - 97 144.933 682 13 1 -43.45 66.7307 185.471 - 97 199.496 351 2 0 78.5167 -109.75 -145.975 - 97 101.967 1291 3 1 78.45 -109.939 -114.648 - 97 45.949 1290 3 1 78.25 -110.132 -114.79 - 97 78.5823 343 3 0 75.6633 -111.451 -115.85 - 97 176.082 342 3 0 75.4447 -111.55 -115.893 - 97 95.1333 341 3 0 75.0259 -111.75 -116.041 - 97 29.2677 174 3 0 27.9393 -145.296 -116.25 - 97 114.891 173 3 0 27.9077 -145.35 -116.175 - 97 105.395 1039 3 1 27.9228 -146.084 -114.85 - 97 136.506 351 5 0 78.5754 -109.75 -56.0673 - 97 110.644 1282 2 1 76.6276 -109.289 -144.451 - 97 129.523 354 2 0 76.6021 -109.314 -145.85 - 97 227.318 1279 1 1 76.0208 -109.872 -174.45 - 97 147.997 351 1 0 75.9643 -109.837 -175.85 - 97 108.054 1274 0 1 74.9125 -109.046 -204.451 - 97 90.7254 355 0 0 74.8774 -108.968 -205.85 - 97 27.8574 356 0 0 74.8681 -108.95 -206.18 - 97 140.721 1272 0 1 74.552 -106.584 -204.451 - 97 27.0808 371 0 0 74.4261 -105.796 -205.85 - 97 69.0881 372 0 0 74.4238 -105.75 -205.946 - 97 60.5655 487 0 0 82.2238 -82.6314 -206.25 - 97 82.9411 488 0 0 82.2676 -82.45 -206.147 - 97 173.786 489 0 0 82.3399 -82.25 -206.086 - 97 25.8475 1317 0 1 83.593 -82.022 -204.85 - 97 63.2923 1318 0 1 83.65 -82.0072 -204.79 - 97 149.593 1319 0 1 83.85 -81.9853 -204.748 - 97 90.8498 1320 0 1 84.05 -81.9817 -204.718 - 97 49.2015 485 0 0 85.0316 -82.96 -205.85 - 97 12.8675 484 0 0 85.0858 -83.05 -205.877 - 97 134.731 1324 0 1 85.0301 -83.3709 -204.85 - 97 172.152 477 0 0 96.0926 -84.4746 -206.25 - 97 121.371 1290 2 1 78.2034 -109.619 -144.45 - 97 114.195 353 2 0 78.2809 -109.55 -146.04 - 97 236.748 1297 1 1 79.498 -108.356 -174.45 - 97 143.104 359 1 0 79.5471 -108.27 -175.85 - 97 139.769 1301 0 1 80.3934 -106.502 -204.45 - 97 147.257 369 0 0 80.455 -106.33 -205.85 - 97 78.8776 345 9 0 78.119 -110.963 64.15 - 97 44.1945 344 9 0 78.2057 -111.15 64.0979 - 97 269.839 1294 9 1 78.9143 -112.065 65.15 -Number of digits in this event = 39 -Using G4ParticleGun ... -9.71089 LIN -e- +Number of tracker hits in this event: 95 + 97 189.761 808 9 1 -18.2719 -119.99 65.55 + 97 113.228 300 9 0 -18.273 -119.992 64.15 + 97 314.286 808 8 1 -18.2963 -120.04 35.55 + 97 253.653 300 8 0 -18.2959 -120.043 34.15 + 97 135.76 808 7 1 -18.2807 -120.092 5.55 + 97 143.607 300 7 0 -18.2796 -120.095 4.15 + 97 106.508 808 6 1 -18.2562 -120.171 -24.45 + 97 140.973 299 6 0 -18.2549 -120.176 -25.85 + 97 103.805 809 5 1 -18.2295 -120.278 -54.45 + 97 115.978 299 5 0 -18.2309 -120.283 -55.85 + 97 173.965 808 4 1 -18.2559 -120.386 -84.45 + 97 170.32 298 4 0 -18.2596 -120.392 -85.85 + 97 108.632 808 3 1 -18.3447 -120.514 -114.45 + 97 279.511 298 3 0 -18.3474 -120.521 -115.85 + 97 592.411 808 2 1 -18.4066 -120.665 -144.45 + 97 109.353 297 2 0 -18.4088 -120.672 -145.85 + 97 111.845 808 1 1 -18.4456 -120.826 -174.45 + 97 371.485 296 1 0 -18.4482 -120.831 -175.85 + 97 228.429 807 0 1 -18.5167 -120.93 -204.45 + 97 110.022 296 0 0 -18.5108 -120.935 -205.85 + 97 109.588 295 0 0 -18.6279 -121.052 -205.85 + 97 208.755 906 0 1 1.36305 -140.129 -204.45 + 97 266.185 809 3 1 -18.1894 -120.372 -114.45 + 97 94.3912 299 3 0 -18.1864 -120.309 -115.85 + 97 783.186 305 2 0 -18.3917 -119.132 -145.85 + 97 199.334 799 1 1 -20.1581 -116.3 -174.45 + 97 116.743 320 1 0 -20.2621 -116.127 -175.85 + 97 135.491 788 0 1 -22.2734 -112.61 -204.45 + 97 58.6774 787 0 1 -22.45 -112.516 -204.707 + 97 117.694 340 0 0 -23.1844 -112.129 -205.85 + 97 24.945 341 0 0 -23.3376 -111.95 -206.172 + 97 83.1306 526 0 0 -53.463 -74.85 -205.921 + 97 66.4515 798 1 1 -20.25 -116.393 -174.685 + 97 118.831 317 1 0 -20.6908 -116.678 -175.85 + 97 140.367 720 0 1 -35.9568 -119.914 -204.45 + 97 131.298 719 0 1 -36.05 -119.866 -204.585 + 97 123.821 302 0 0 -37.0449 -119.696 -205.85 + 97 46.6714 301 0 0 -37.2518 -119.75 -206.132 + 97 22.6721 0 0 0 -65.0719 -180.077 -206.25 + 97 98.0137 827 1 1 -14.5709 -119.164 -174.45 + 97 239.203 826 1 1 -14.65 -119.455 -174.593 + 97 74.7489 295 1 0 -14.8579 -120.973 -175.85 + 97 85.0132 294 1 0 -14.8823 -121.15 -176.016 + 97 15.3933 293 1 0 -14.8771 -121.35 -176.2 + 97 176.888 855 0 1 -8.85062 -151.514 -204.45 + 97 24.1905 856 0 1 -8.84993 -151.528 -204.476 + 97 65.8838 133 0 0 -8.84144 -153.471 -205.85 + 97 68.505 132 0 0 -8.82618 -153.55 -205.899 + 97 55.0552 131 0 0 -8.77924 -153.75 -206.044 + 97 32.3686 130 0 0 -8.71821 -153.951 -206.179 + 97 2.8955 306 2 0 -18.1479 -118.95 -146.07 + 97 185.256 773 1 1 -25.4328 -142.424 -174.45 + 97 630.044 774 1 1 -25.25 -142.886 -174.595 + 97 285.548 775 1 1 -25.05 -143.783 -174.522 + 97 223.014 177 1 0 -25.884 -144.574 -175.85 + 97 142.707 176 1 0 -25.9987 -144.75 -176.218 + 97 89.2756 119 1 0 -23.8775 -156.164 -176.25 + 97 86.4285 120 1 0 -23.872 -156.15 -176.042 + 97 100.094 777 1 1 -24.5459 -155.611 -174.85 + 97 69.4613 776 1 1 -24.65 -155.627 -174.727 + 97 186.01 300 2 0 -18.3867 -120.045 -145.85 + 97 145.386 805 1 1 -18.9764 -119.418 -174.45 + 97 137.34 303 1 0 -18.9928 -119.411 -175.85 + 97 96.2017 803 0 1 -19.4369 -119.383 -204.45 + 97 206.29 802 0 1 -19.45 -119.388 -204.67 + 97 108.112 303 0 0 -19.5316 -119.419 -205.85 + 97 100.717 389 7 1 -102.158 -130.592 5.15 + 97 116.619 388 7 1 -102.35 -130.65 5.53293 + 97 53.5164 390 7 1 -102.15 -130.963 5.50299 + 97 0.932605 310 0 0 -19.6714 -117.953 -205.85 + 97 171.72 311 0 0 -19.6718 -117.95 -205.853 + 97 185.381 312 0 0 -19.714 -117.75 -206.033 + 97 331.484 313 0 0 -19.765 -117.55 -206.22 + 97 54.3617 668 0 0 -17.2415 -46.4296 -206.25 + 97 73.9001 669 0 0 -17.2163 -46.2496 -206.188 + 97 48.5329 670 0 0 -17.1649 -46.05 -206.129 + 97 147.545 671 0 0 -17.1104 -45.85 -206.066 + 97 90.5008 672 0 0 -17.0915 -45.6499 -206.009 + 97 58.5247 673 0 0 -17.0637 -45.4498 -206 + 97 88.3716 674 0 0 -16.9947 -45.25 -206.039 + 97 109.519 675 0 0 -16.9251 -45.05 -206.106 + 97 44.1357 676 0 0 -16.8525 -44.85 -206.204 + 97 311.654 813 0 1 -17.3039 -45.8313 -204.85 + 97 80.9966 812 0 1 -17.45 -45.8682 -204.557 + 97 111.365 807 8 1 -18.45 -120.252 35.1799 + 97 238.243 293 8 0 -20.649 -121.445 34.15 + 97 36.0152 786 8 1 -22.7903 -121.274 35.1501 + 97 141.715 785 8 1 -22.85 -121.282 35.208 + 97 183.409 784 8 1 -23.05 -121.515 35.3048 + 97 233.505 783 8 1 -23.25 -121.695 35.2627 + 97 87.7047 282 8 0 -25.0143 -123.576 34.15 + 97 136.793 107 8 0 -37.7549 -158.594 33.75 + 97 61.5175 106 8 0 -37.6884 -158.75 34.067 + 97 34.0713 706 8 1 -38.8004 -159.265 35.15 + 97 357.99 705 8 1 -38.85 -159.291 35.2131 +Number of digits in this event: 44 +Using G4ParticleGun... +Particle energy: 9.25639 LIN +Particle: e- Event: 98 -Number of tracker hits in this event = 93 - 98 196.033 987 10 1 17.5587 104.501 95.55 - 98 111.052 1421 10 0 17.5588 104.5 94.15 - 98 99.1306 987 9 1 17.5633 104.482 65.55 - 98 117.27 1421 9 0 17.5639 104.482 64.15 - 98 265.703 987 8 1 17.5773 104.481 35.55 - 98 216.795 1421 8 0 17.5782 104.481 34.15 - 98 116.808 987 7 1 17.5982 104.477 5.55 - 98 116.561 1421 7 0 17.5992 104.478 4.15 - 98 167.608 987 6 1 17.6223 104.48 -24.45 - 98 127.894 1421 6 0 17.6236 104.481 -25.85 - 98 97.4681 988 5 1 17.6512 104.491 -54.45 - 98 454.746 1421 5 0 17.6549 104.489 -55.85 - 98 234.102 988 4 1 17.7107 104.448 -84.45 - 98 252.034 1421 4 0 17.7192 104.442 -85.85 - 98 318.564 989 3 1 17.9029 104.333 -114.45 - 98 96.1416 1420 3 0 17.9146 104.331 -115.85 - 98 125.132 990 2 1 18.1538 104.333 -144.45 - 98 107.909 1420 2 0 18.1628 104.336 -145.85 - 98 121.793 991 1 1 18.3288 104.444 -174.45 - 98 125.585 1421 1 0 18.3382 104.441 -175.85 - 98 160.223 992 0 1 18.5239 104.387 -204.45 - 98 195.97 1421 0 0 18.5337 104.392 -205.85 - 98 75.0638 1444 4 0 10.3989 108.983 -86.25 - 98 83.7851 958 4 1 11.6895 108.67 -84.85 - 98 155.204 959 4 1 11.85 108.513 -84.7245 - 98 49.6416 960 4 1 12.05 108.333 -84.5598 - 98 69.1323 1494 5 0 3.30499 119.025 -56.2498 - 98 242.756 1495 5 0 3.13551 119.15 -56.1421 - 98 194.431 1496 5 0 2.85214 119.35 -56.1938 - 98 82.4943 1644 5 0 -65.4563 149.015 -56.25 - 98 107.216 1645 5 0 -65.3878 149.15 -56.109 - 98 192.38 1646 5 0 -65.2913 149.35 -55.9314 - 98 9.25358 1647 5 0 -64.8171 149.55 -56.2381 - 98 65.7608 1602 5 0 7.34328 140.742 -56.2499 - 98 300.443 1603 5 0 7.40561 140.75 -56.144 - 98 62.6975 1422 5 0 17.648 104.55 -55.9614 - 98 204.439 854 8 1 -9.13153 -35.4697 35.55 - 98 49.987 671 3 1 -45.6697 43.7865 -114.85 - 98 17.382 920 0 0 -96.0901 4.25 -205.89 - 98 4.07192 415 0 1 -97.1406 2.98348 -204.85 - 98 81.8783 414 0 1 -97.1502 2.97373 -204.842 - 98 80.4124 413 0 1 -97.35 2.81815 -204.743 - 98 53.5785 412 0 1 -97.5501 2.7328 -204.606 - 98 71.1768 411 0 1 -97.75 2.66635 -204.55 - 98 69.2927 410 0 1 -97.95 2.62134 -204.589 - 98 149.575 409 0 1 -98.15 2.64456 -204.662 - 98 73.1816 408 0 1 -98.35 2.65389 -204.71 - 98 290.175 914 0 0 -98.9996 2.95132 -205.85 - 98 52.8405 907 3 0 -129.49 1.59693 -116.25 - 98 203.926 908 3 0 -129.548 1.65 -116.164 - 98 139.101 1523 0 0 -47.2248 124.75 -205.981 - 98 58.116 1657 1 0 -53.1863 151.564 -176.25 - 98 298.547 987 5 1 17.6459 104.485 -54.45 - 98 145.675 1421 3 0 17.8722 104.439 -115.85 - 98 121.474 989 2 1 17.955 104.715 -144.45 - 98 29.1909 1422 2 0 17.9873 104.747 -145.85 - 98 79.3027 1423 2 0 17.9903 104.75 -145.966 - 98 171.271 993 1 1 18.7185 105.493 -174.45 - 98 187.85 1426 1 0 18.7271 105.547 -175.85 - 98 112.928 1427 1 0 18.7275 105.55 -175.926 - 98 113.75 995 0 1 19.0519 106.695 -204.45 - 98 123.482 1433 0 0 19.075 106.771 -205.85 - 98 138.567 987 4 1 17.5759 104.689 -84.45 - 98 130.719 1422 4 0 17.5786 104.705 -85.85 - 98 149.407 987 3 1 17.5828 104.997 -114.45 - 98 128.352 1424 3 0 17.5825 105.007 -115.85 - 98 137.453 987 2 1 17.5855 105.214 -144.45 - 98 131.675 1425 2 0 17.5827 105.222 -145.85 - 98 197.816 987 1 1 17.5464 105.362 -174.45 - 98 106.869 986 0 1 17.445 105.365 -204.45 - 98 190.337 1426 0 0 17.4304 105.352 -205.85 - 98 80.7894 1425 0 0 17.4287 105.35 -206.007 - 98 33.1613 1427 0 0 17.5106 105.558 -206.149 - 98 97.3597 989 0 1 17.8724 107.407 -204.85 - 98 234.211 988 0 1 17.85 107.585 -204.802 - 98 177.258 1501 0 0 9.57288 120.404 -206.25 - 98 141.267 1502 0 0 9.36434 120.55 -205.999 - 98 189.053 1503 0 0 9.06403 120.75 -205.937 - 98 93.1947 943 0 1 8.76062 121.852 -204.85 - 98 8.12125 942 0 1 8.64929 121.628 -204.835 - 98 53.4347 1505 0 0 7.32054 121.259 -205.85 - 98 107.458 1504 0 0 7.16994 121.15 -205.94 - 98 255.672 1544 1 0 31.022 129.015 -176.25 - 98 20.724 1059 1 1 31.9275 129.24 -174.85 - 98 22.2015 988 8 1 17.65 104.549 35.2119 - 98 186.261 988 1 1 17.692 104.338 -174.45 - 98 199.889 1420 1 0 17.7564 104.172 -175.85 - 98 231.37 1419 1 0 17.7713 104.15 -176.028 - 98 105.285 1002 0 1 20.5215 101.087 -204.45 - 98 46.9907 1003 0 1 20.65 101.086 -204.715 - 98 129.015 1404 0 0 21.1449 101.063 -205.851 - 98 80.3395 986 1 1 17.45 104.136 -174.651 - 98 34.3574 985 1 1 17.25 104.07 -174.78 -Number of digits in this event = 50 -Using G4ParticleGun ... -6.05285 LIN -e- +Number of tracker hits in this event: 136 + 98 617.104 1012 8 1 22.533 -138.756 35.55 + 98 378.902 206 8 0 22.5335 -138.756 34.15 + 98 254.507 1012 7 1 22.5469 -138.764 5.55 + 98 226.818 206 7 0 22.5485 -138.765 4.15 + 98 256.943 1012 6 1 22.5819 -138.783 -24.45 + 98 257.863 206 6 0 22.5831 -138.784 -25.85 + 98 496.145 1012 5 1 22.6067 -138.812 -54.45 + 98 357.367 206 5 0 22.6073 -138.813 -55.85 + 98 157.216 1012 4 1 22.6174 -138.847 -84.45 + 98 134.657 206 4 0 22.6183 -138.848 -85.85 + 98 133.619 1012 3 1 22.6375 -138.877 -114.45 + 98 271.354 206 3 0 22.6388 -138.879 -115.85 + 98 224.339 1013 2 1 22.6685 -138.918 -144.45 + 98 113.184 206 2 0 22.6704 -138.92 -145.85 + 98 280.407 1013 1 1 22.708 -138.953 -174.45 + 98 125.538 205 1 0 22.7099 -138.954 -175.85 + 98 162.371 1013 0 1 22.7519 -138.973 -204.45 + 98 129.234 205 0 0 22.7541 -138.974 -205.85 + 98 22.4823 1238 3 1 67.6809 -141.29 -114.45 + 98 210.962 1237 3 1 67.65 -141.321 -114.457 + 98 98.3392 78 0 0 35.5402 -164.394 -206.25 + 98 326.125 1077 0 1 35.6309 -163.616 -204.85 + 98 100.728 1078 0 1 35.65 -163.506 -204.71 + 98 4.07876 1079 0 1 35.85 -163.612 -204.453 + 98 2.16433 72 0 0 35.2669 -165.749 -205.85 + 98 101.971 71 0 0 35.2675 -165.75 -205.853 + 98 4.17462 436 5 1 -92.8386 1.79176 -54.85 + 98 223.088 435 5 1 -92.95 1.91989 -54.6596 + 98 63.5708 554 14 0 23.5686 -69.1441 213.75 + 98 232.956 555 14 0 23.6581 -69.0498 213.762 + 98 19.0516 418 3 0 40.2045 -96.4322 -116.25 + 98 56.5147 419 3 0 40.2365 -96.35 -116.208 + 98 86.7149 420 3 0 40.3251 -96.15 -116.151 + 98 56.5699 421 3 0 40.5269 -95.9498 -116.11 + 98 65.9968 422 3 0 40.6223 -95.75 -116.128 + 98 68.3105 423 3 0 40.6559 -95.55 -116.132 + 98 68.0869 424 3 0 40.596 -95.35 -116.156 + 98 81.2179 637 3 0 34.9163 -52.5244 -116.25 + 98 199.306 638 3 0 35.0609 -52.45 -116.118 + 98 35.4133 1093 3 1 38.7431 -54.0919 -114.85 + 98 53.3171 1094 3 1 38.8505 -54.1313 -114.809 + 98 59.5806 1095 3 1 39.0507 -54.1332 -114.783 + 98 60.1193 1096 3 1 39.2507 -54.1836 -114.803 + 98 197.601 1097 3 1 39.45 -54.2422 -114.807 + 98 133.548 1098 3 1 39.65 -54.2432 -114.607 + 98 254.097 1099 3 1 39.8501 -53.7565 -114.54 + 98 192.604 1453 8 0 -103.531 110.839 33.75 + 98 148.42 381 8 1 -103.853 110.448 35.1502 + 98 395.85 380 8 1 -103.95 110.344 35.5319 + 98 185.868 1014 0 1 22.85 -138.666 -204.49 + 98 288.355 1015 0 1 23.0502 -138.418 -204.522 + 98 309.824 1012 0 1 22.6432 -138.947 -204.45 + 98 7.76684 1011 0 1 22.45 -138.876 -204.814 + 98 137.282 207 0 0 21.8009 -138.621 -205.85 + 98 228.644 716 0 1 -36.8199 -125.209 -204.45 + 98 140.851 715 0 1 -36.85 -125.19 -204.5 + 98 217.512 1010 4 1 22.0555 -138.085 -84.45 + 98 108.893 210 4 0 22.1256 -138.008 -85.8502 + 98 140.115 1015 3 1 23.2293 -136.428 -114.45 + 98 159.527 218 3 0 23.2778 -136.468 -115.85 + 98 88.8105 1022 2 1 24.6251 -137.195 -144.45 + 98 39.594 1023 2 1 24.65 -137.198 -144.758 + 98 144.026 214 2 0 24.7424 -137.198 -145.85 + 98 157.795 1035 1 1 27.1435 -137.479 -174.45 + 98 113.675 213 1 0 27.2218 -137.39 -175.85 + 98 148.251 1044 0 1 28.9343 -135.883 -204.45 + 98 186.947 222 0 0 29.001 -135.667 -205.85 + 98 191.096 204 5 0 22.4427 -139.294 -55.8504 + 98 60.7395 203 5 0 22.4012 -139.35 -56.0258 + 98 41.6311 336 5 0 -3.09353 -112.846 -56.2493 + 98 87.0896 337 5 0 -3.07664 -112.75 -56.1834 + 98 74.0104 338 5 0 -2.95709 -112.55 -55.9623 + 98 339.975 886 5 1 -2.74545 -112.264 -54.8499 + 98 47.3604 885 5 1 -2.8503 -112.151 -54.4949 + 98 105.163 887 5 1 -2.65 -112.173 -54.4728 + 98 34.1973 1009 4 1 22.05 -139.466 -84.7582 + 98 105.027 203 4 0 21.9932 -139.499 -85.85 + 98 126.98 1003 3 1 20.7342 -140.135 -114.45 + 98 95.0399 200 3 0 20.6328 -140.125 -115.85 + 98 113.624 992 2 1 18.6305 -140.096 -144.45 + 98 107.315 200 2 0 18.516 -140.137 -145.85 + 98 58.1733 980 1 1 16.0717 -140.879 -174.45 + 98 194.532 979 1 1 16.05 -140.874 -174.656 + 98 123.657 196 1 0 15.9411 -140.849 -175.85 + 98 106.571 967 0 1 13.494 -140.626 -204.45 + 98 115.174 197 0 0 13.3483 -140.574 -205.851 + 98 157.291 207 7 0 22.4729 -138.673 4.15 + 98 98.354 1015 5 1 23.1086 -139.113 -54.45 + 98 252.304 205 5 0 23.1094 -139.139 -55.85 + 98 103.732 1015 4 1 23.1425 -139.721 -84.45 + 98 103.325 201 4 0 23.1282 -139.753 -85.85 + 98 125.455 1013 3 1 22.7475 -140.375 -114.45 + 98 111.565 198 3 0 22.7422 -140.399 -115.85 + 98 124.892 195 2 0 22.6998 -140.987 -145.85 + 98 105.122 192 1 0 22.7115 -141.731 -175.85 + 98 127.599 190 0 0 23.2027 -142.113 -205.85 + 98 13.6248 681 12 0 23.735 -43.8087 153.75 + 98 212.479 1016 12 1 23.3522 -43.8432 155.15 + 98 197.621 1015 12 1 23.2497 -43.8687 155.286 + 98 61.3131 1017 12 1 23.45 -44.1479 155.473 + 98 178.498 191 0 0 22.2078 -141.927 -205.85 + 98 269.177 1011 4 1 22.3315 -138.624 -84.4512 + 98 277.945 207 4 0 22.5903 -138.634 -85.85 + 98 129.65 1041 3 1 28.2966 -138.959 -114.45 + 98 163.363 1064 2 1 33.0055 -130.756 -144.45 + 98 140.946 247 2 0 32.6165 -130.602 -145.85 + 98 27.0717 433 2 0 6.95566 -93.4061 -146.25 + 98 60.4225 434 2 0 6.89629 -93.35 -146.192 + 98 197.744 435 2 0 6.83356 -93.1499 -146.123 + 98 181.437 436 2 0 6.33615 -92.95 -146.098 + 98 11.2575 929 2 1 6.04735 -92.4486 -144.85 + 98 130.332 930 2 1 6.05 -92.4337 -144.814 + 98 255.609 931 2 1 6.25 -92.43 -144.673 + 98 106.032 1002 3 1 20.5037 -138.398 -114.45 + 98 123.614 209 3 0 20.3652 -138.345 -115.851 + 98 334.397 987 2 1 17.6409 -137.163 -144.45 + 98 150.137 215 2 0 17.4805 -137.107 -145.85 + 98 133.36 971 1 1 14.4029 -135.984 -174.451 + 98 53.6524 220 1 0 14.3359 -136.131 -175.85 + 98 54.6426 219 1 0 14.3234 -136.15 -176.048 + 98 112.937 960 0 1 12.0645 -138.225 -204.45 + 98 121.248 210 0 0 11.9909 -138.09 -205.85 + 98 14.3186 835 4 1 -12.9144 -35.6469 -84.45 + 98 113.741 1017 7 1 23.6088 -139.307 5.55 + 98 130.465 203 7 0 23.5234 -139.453 4.15 + 98 110.103 1008 6 1 21.709 -142.754 -24.4505 + 98 101.15 184 6 0 21.8226 -143.249 -25.85 + 98 34.8398 183 6 0 21.8484 -143.35 -26.1096 + 98 45.211 1004 5 1 21.0277 -158.233 -54.45 + 98 71.2012 1005 5 1 21.0501 -158.283 -54.5925 + 98 15.5069 107 5 0 21.3155 -158.729 -55.85 + 98 130.598 106 5 0 21.3276 -158.75 -55.9062 + 98 32.1957 1036 4 1 27.3973 -167.933 -84.45 + 98 99.4954 1037 4 1 27.45 -167.999 -84.5688 + 98 49.3839 56 4 0 28.0816 -168.853 -85.85 + 98 115.603 55 4 0 28.1577 -168.95 -85.9939 +Number of digits in this event: 73 +Using G4ParticleGun... +Particle energy: 7.80315 LIN +Particle: e- Event: 99 -Number of tracker hits in this event = 116 - 99 118.471 1358 10 1 91.8638 -32.1807 95.55 - 99 114.136 739 10 0 91.8617 -32.1787 94.15 - 99 249.35 1358 9 1 91.8142 -32.1425 65.55 - 99 116.505 739 9 0 91.8114 -32.1391 64.15 - 99 111.857 1358 8 1 91.7561 -32.0721 35.55 - 99 117.926 739 8 0 91.7542 -32.0681 34.15 - 99 125.586 1357 7 1 91.7115 -31.9837 5.55 - 99 123.705 740 7 0 91.7108 -31.98 4.15 - 99 106.151 1357 6 1 91.7018 -31.9046 -24.45 - 99 184.692 740 6 0 91.7022 -31.9009 -25.85 - 99 407.44 1357 5 1 91.7091 -31.8283 -54.45 - 99 242.757 741 5 0 91.7107 -31.8229 -55.85 - 99 160.681 1357 4 1 91.7477 -31.7048 -84.45 - 99 120.807 741 4 0 91.7538 -31.7027 -85.85 - 99 137.268 1358 3 1 91.8687 -31.6745 -114.45 - 99 123.584 741 3 0 91.8691 -31.6709 -115.85 - 99 711.147 1358 2 1 91.8815 -31.6008 -144.45 - 99 358.718 742 2 0 91.8715 -31.5943 -145.85 - 99 273.012 1357 1 1 91.6462 -31.4595 -174.45 - 99 98.4889 742 1 0 91.6381 -31.4516 -175.85 - 99 517.231 743 1 0 91.6362 -31.45 -176.147 - 99 144.362 1356 0 1 91.4457 -31.3131 -204.45 - 99 149.582 743 0 0 91.4366 -31.3038 -205.85 - 99 365.955 1358 1 1 91.7501 -31.859 -174.663 - 99 17.1585 729 1 0 91.1931 -34.2093 -175.85 - 99 113.312 728 1 0 91.182 -34.25 -175.868 - 99 125.927 727 1 0 91.1527 -34.4503 -175.948 - 99 68.5203 726 1 0 91.0853 -34.65 -176.092 - 99 180.809 635 1 0 35.125 -52.9905 -176.25 - 99 21.6118 636 1 0 34.7597 -52.85 -175.915 - 99 95.8971 1070 1 1 34.1039 -52.7836 -174.85 - 99 274.493 1069 1 1 34.05 -52.7748 -174.754 - 99 58.3135 1071 1 1 34.25 -52.4643 -174.774 - 99 24.0171 1072 1 1 34.4502 -52.3637 -174.818 - 99 173.002 641 1 0 36.3304 -51.8032 -175.85 - 99 20.1035 642 1 0 36.7991 -51.65 -176.199 - 99 118.165 1359 1 1 91.9769 -31.2719 -174.45 - 99 127.928 744 1 0 91.6968 -31.1805 -175.85 - 99 206.44 1320 0 1 84.195 -29.4738 -204.45 - 99 142.071 754 0 0 84.2508 -29.1718 -205.85 - 99 122.247 743 2 0 91.8132 -31.4282 -145.85 - 99 101.885 1359 0 1 91.9761 -31.1427 -204.45 - 99 438.501 744 0 0 91.9787 -31.1374 -205.85 - 99 325.715 749 1 0 88.2255 -30.2369 -175.85 - 99 136.968 748 1 0 88.1196 -30.25 -175.862 - 99 56.6124 1360 1 1 92.15 -31.3103 -174.755 - 99 31.4904 1361 1 1 92.3502 -31.3913 -174.816 - 99 191.234 740 1 0 94.4065 -31.9969 -175.85 - 99 14.9918 739 1 0 94.4766 -32.0501 -175.895 - 99 125.707 1350 1 1 90.2604 -34.081 -174.45 - 99 85.7619 1328 0 1 85.6951 -43.1922 -204.451 - 99 201.087 1327 0 1 85.6499 -43.2304 -204.733 - 99 248.386 683 0 0 85.4976 -43.3917 -205.85 - 99 3.0964 1326 0 1 85.4495 -43.222 -204.842 - 99 136.287 681 0 0 84.582 -43.672 -205.85 - 99 244.56 680 0 0 84.4499 -43.8503 -206.054 - 99 25.0216 679 0 0 84.1844 -44.05 -206.235 - 99 59.3316 1359 2 1 91.95 -31.5205 -144.833 - 99 139.062 741 2 0 92.5244 -31.6876 -145.85 - 99 46.0137 855 2 0 145.564 -8.94737 -146.25 - 99 161.378 856 2 0 145.689 -8.85 -146.15 - 99 27.3829 857 2 0 145.981 -8.65 -145.859 - 99 58.3163 1633 2 1 146.847 -7.99797 -144.85 - 99 91.2658 1634 2 1 146.95 -7.92704 -144.712 - 99 136.899 1010 3 0 165.327 22.099 -116.25 - 99 71.7376 1011 3 0 165.413 22.25 -116.111 - 99 31.6897 1012 3 0 165.519 22.45 -115.929 - 99 170.888 1727 3 1 165.669 23.6578 -114.85 - 99 17.6862 745 0 0 97.5381 -31.0359 -206.25 - 99 75.0869 1389 0 1 97.9933 -31.5467 -204.85 - 99 65.5021 1390 0 1 98.15 -31.6344 -204.642 - 99 65.8249 1391 0 1 98.35 -31.6003 -204.52 - 99 81.6074 1392 0 1 98.5501 -31.5239 -204.517 - 99 86.0696 1393 0 1 98.7502 -31.4479 -204.657 - 99 3.70875 1394 0 1 98.95 -31.3621 -204.838 - 99 86.7212 666 0 0 106.615 -46.709 -206.25 - 99 79.7704 737 5 0 91.5806 -32.5098 -55.8501 - 99 52.3551 736 5 0 91.5585 -32.65 -56.137 - 99 92.937 1340 4 1 88.159 -46.9864 -84.45 - 99 58.5852 1341 4 1 88.2501 -47.1578 -84.6736 - 99 66.7721 660 4 0 88.7055 -47.9402 -85.85 - 99 96.6265 659 4 0 88.7655 -48.05 -86.0127 - 99 256.072 1404 3 1 100.987 -63.117 -114.45 - 99 55.5195 580 3 0 101.4 -63.9651 -115.85 - 99 88.4441 579 3 0 101.443 -64.05 -115.996 - 99 35.4971 1447 2 1 109.647 -81.6292 -144.45 - 99 265.053 1448 2 1 109.75 -81.6717 -144.543 - 99 95.0118 1449 2 1 109.95 -81.7453 -144.706 - 99 210.392 489 2 0 111.365 -82.1065 -145.85 - 99 140.623 1601 1 1 140.378 -89.4856 -174.45 - 99 135.528 1602 1 1 140.551 -89.8753 -174.517 - 99 169.454 1603 1 1 140.75 -90.4125 -174.544 - 99 231.43 1604 1 1 140.95 -90.9172 -174.592 - 99 28.0438 433 1 0 140.997 -93.4365 -175.85 - 99 46.0503 432 1 0 141.005 -93.55 -175.909 - 99 71.366 431 1 0 141.032 -93.75 -175.979 - 99 88.007 430 1 0 141.062 -93.95 -176.041 - 99 82.7376 429 1 0 141.111 -94.1508 -176.104 - 99 63.1361 428 1 0 141.151 -94.35 -176.181 - 99 2.72292 427 1 0 141.151 -94.55 -176.248 - 99 113.911 1370 4 1 94.2816 -30.6073 -84.4504 - 99 117.707 747 4 0 94.4061 -30.5394 -85.8501 - 99 164.715 1383 3 1 96.7985 -29.2593 -114.45 - 99 122.914 755 3 0 96.8943 -29.017 -115.85 - 99 106.718 1394 2 1 99.0905 -24.3075 -144.45 - 99 109.691 779 2 0 99.2745 -24.1758 -145.85 - 99 133.384 1413 1 1 102.865 -21.565 -174.451 - 99 251.622 792 1 0 102.957 -21.4997 -175.85 - 99 171.687 1423 0 1 104.79 -20.2981 -204.45 - 99 226.319 798 0 0 104.691 -20.4164 -205.85 - 99 18.916 797 0 0 104.671 -20.45 -206.156 - 99 51.2911 1357 9 1 91.75 -32.2765 65.2297 - 99 35.807 1357 2 1 91.671 -31.9689 -144.45 - 99 264.871 784 2 0 147.078 -23.1564 -146.25 - 99 404.515 1637 2 1 147.718 -23.2882 -144.85 - 99 167.376 1636 2 1 147.55 -23.1468 -144.51 -Number of digits in this event = 57 +Number of tracker hits in this event: 66 + 99 113.595 512 10 1 -77.5827 -80.8006 95.55 + 99 122.138 496 10 0 -77.5828 -80.8012 94.15 + 99 116.984 512 9 1 -77.5862 -80.8122 65.55 + 99 116.869 496 9 0 -77.5879 -80.8119 64.15 + 99 202.303 512 8 1 -77.6233 -80.8053 35.55 + 99 110.585 496 8 0 -77.6265 -80.8044 34.15 + 99 134.949 511 7 1 -77.692 -80.7733 5.55 + 99 130.07 496 7 0 -77.6949 -80.7725 4.15 + 99 120.462 511 6 1 -77.7565 -80.7543 -24.45 + 99 119.9 496 6 0 -77.7614 -80.7527 -25.85 + 99 109.056 510 5 1 -77.8589 -80.7141 -54.45 + 99 421.934 496 5 0 -77.8633 -80.7114 -55.85 + 99 364.533 510 4 1 -77.9578 -80.6612 -84.45 + 99 98.8626 496 4 0 -77.9628 -80.6589 -85.85 + 99 116.77 509 3 1 -78.066 -80.6108 -114.45 + 99 104.462 497 3 0 -78.0731 -80.6072 -115.85 + 99 126.392 509 2 1 -78.2179 -80.5313 -144.45 + 99 121.875 497 2 0 -78.2247 -80.5298 -145.85 + 99 94.036 508 1 1 -78.3713 -80.4994 -174.45 + 99 108.586 497 1 0 -78.379 -80.4987 -175.85 + 99 140.231 507 0 1 -78.5386 -80.486 -204.45 + 99 122.489 497 0 0 -78.547 -80.4852 -205.85 + 99 12.814 700 2 0 -56.0904 -40.05 -145.947 + 99 1.1544 129 1 1 -154.178 -142.921 -174.85 + 99 165.601 616 2 1 -56.7505 -38.8206 -144.85 + 99 191.757 509 4 1 -78.05 -80.6469 -84.5849 + 99 229.86 511 5 1 -77.8192 -80.7371 -54.45 + 99 156.053 495 4 0 -78.0047 -81.0058 -85.85 + 99 292.29 513 3 1 -77.3459 -81.144 -114.45 + 99 104.942 494 3 0 -77.3085 -81.1586 -115.85 + 99 117.997 517 2 1 -76.5391 -82.0734 -144.45 + 99 97.303 489 2 0 -76.4863 -82.1341 -145.85 + 99 106.406 523 1 1 -75.4343 -82.9612 -174.45 + 99 180.615 484 1 0 -75.4098 -83.0582 -175.85 + 99 128.082 525 0 1 -75.0002 -85.0247 -204.45 + 99 131.141 474 0 0 -74.925 -85.1245 -205.85 + 99 104.573 513 4 1 -77.3956 -81.515 -84.45 + 99 118.826 492 4 0 -77.4166 -81.609 -85.85 + 99 98.226 512 3 1 -77.5562 -83.3772 -114.45 + 99 96.988 482 3 0 -77.5391 -83.4889 -115.85 + 99 118.454 514 2 1 -77.1557 -85.7175 -144.45 + 99 138.277 470 2 0 -77.1424 -85.8734 -145.85 + 99 130.654 516 1 1 -76.836 -89.3256 -174.45 + 99 120.677 452 1 0 -76.8091 -89.5392 -175.85 + 99 131.032 519 0 1 -76.1792 -93.8697 -204.45 + 99 135.89 430 0 0 -76.1349 -94.0523 -205.85 + 99 79.3578 514 3 1 -77.25 -84.3491 -114.59 + 99 241.208 477 3 0 -76.5849 -84.5286 -115.85 + 99 205.394 484 3 0 -39.8185 -83.212 -116.25 + 99 21.9785 705 3 1 -38.8867 -83.1786 -114.85 + 99 99.411 706 3 1 -38.85 -83.1755 -114.79 + 99 10.5035 707 3 1 -38.65 -83.1519 -114.489 + 99 119.921 548 4 0 -37.5184 -70.4296 -86.25 + 99 26.6943 549 4 0 -37.4976 -70.2497 -85.9236 + 99 162.925 713 4 1 -37.4475 -69.5933 -84.8499 + 99 28.1 689 5 0 -50.7799 -42.1112 -56.2498 + 99 80.6426 690 5 0 -50.8077 -42.0498 -56.1834 + 99 38.4964 691 5 0 -50.9053 -41.8499 -55.9457 + 99 88.784 642 5 1 -51.52 -40.9392 -54.85 + 99 180.193 641 5 1 -51.65 -40.7586 -54.6163 + 99 58.4908 640 5 1 -51.85 -40.2222 -54.6773 + 99 68.1882 703 5 0 -52.3655 -39.4172 -55.85 + 99 57.6433 704 5 0 -52.4436 -39.25 -56.1147 + 99 295.702 835 5 0 -115.947 -12.9444 -56.2499 + 99 0.506157 836 5 0 -116.643 -12.85 -56.2488 + 99 122.072 1114 5 0 40.2746 42.85 -56.1361 +Number of digits in this event: 33 Run terminated. Run Summary Number of events processed : 100 - User=48.130000s Real=49.501906s Sys=0.270000s + User=52.750000s Real=53.220415s Sys=0.030000s End of Run 2 There are 6 h1 histograms There are 6 h2 histograms @@ -17840,6 +18730,6 @@ Visualization Manager deleting... G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 21 of which, static: 0 -Dynamic pools deleted: 21 / Total memory freed: 0.27 MB +Dynamic pools deleted: 21 / Total memory freed: 0.26 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelActionInitializer.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelActionInitializer.hh index 745d892ae5..bb56b2f291 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelActionInitializer.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelActionInitializer.hh @@ -24,8 +24,15 @@ // ******************************************************************** // // -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// ------------------------------------------------------------ +// GEANT 4 class implementation file +// CERN Geneva Switzerland +// +// +// ------------ GammaRayTelActionInitializer ------ +// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000) +// +// ************************************************************ #ifndef GammaRayTelActionInitializer_h #define GammaRayTelActionInitializer_h 1 @@ -33,21 +40,15 @@ #include "G4VUserActionInitialization.hh" #include "globals.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class GammaRayTelActionInitializer : public G4VUserActionInitialization -{ +class GammaRayTelActionInitializer : public G4VUserActionInitialization { public: + explicit GammaRayTelActionInitializer(); - GammaRayTelActionInitializer(); - ~GammaRayTelActionInitializer(){;}; - - void Build() const; - void BuildForMaster() const; - + ~GammaRayTelActionInitializer(){;}; + + void Build() const override; + + void BuildForMaster() const override; }; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - #endif diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh index 2b9eea483e..ca61db3b43 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh @@ -59,56 +59,56 @@ #include "G4ThreeVector.hh" #include "G4AnalysisManager.hh" - class GammaRayTelAnalysisMessenger; class GammaRayTelDetectorConstruction; class GammaRayTelAnalysis { public: - virtual ~GammaRayTelAnalysis(); - -public: + ~GammaRayTelAnalysis(); + void BeginOfRun(); - // void BeginOfRun(G4int n); + void EndOfRun(); - void BeginOfRun(); - void EndOfRun(); - void EndOfEvent(G4int flag); + void EndOfEvent(G4int flag); - void Init(); - void Finish(); + void Init(); - void SetHisto2DMode(G4String str) {histo2DMode = str;}; - G4String GetHisto2DMode() {return histo2DMode;}; - - void InsertPositionXZ(double x, double z); - void InsertPositionYZ(double y, double z); - void InsertEnergy(double en); - void InsertHits(int nplane); + void Finish(); - void setNtuple(float E, float p, float x, float y, float z); + void SetHisto2DMode(G4String value) { + histo2DMode = value; + } - static GammaRayTelAnalysis* getInstance(); + auto GetHisto2DMode() -> G4String { + return histo2DMode; + } + + void InsertPositionXZ(G4double x, G4double z); + + void InsertPositionYZ(G4double y, G4double z); + + void InsertEnergy(G4double energy); + + void InsertHits(G4int planeNumber); + + void setNtuple(G4double energy, G4int planeNumber, G4double x, G4double y, G4double z); + + static auto getInstance() -> GammaRayTelAnalysis*; private: + GammaRayTelAnalysis(); - GammaRayTelAnalysis(); + void Plot(); - //void plot1D(IHistogram1D* histo); - //void plot2D(IHistogram2D* histo); - void Plot(); + static GammaRayTelAnalysis *instance; -private: - static GammaRayTelAnalysis* instance; + const GammaRayTelDetectorConstruction *detector{nullptr}; - const GammaRayTelDetectorConstruction* GammaRayTelDetector; + G4String histo2DMode; - G4String histo2DMode; - G4String histoFileName; + G4String histogramFileName; - GammaRayTelAnalysisMessenger* analysisMessenger; + GammaRayTelAnalysisMessenger *analysisMessenger; }; - - #endif diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh index b59a84e53a..e9f4dfc47b 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh @@ -24,7 +24,6 @@ // ******************************************************************** // // -// // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland @@ -35,42 +34,32 @@ // 20.11.01 G.Santin: new analysis management, modified according to GammaRayTelAnalysis // // ************************************************************ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + #ifndef GammaRayTelAnalysisMessenger_h #define GammaRayTelAnalysisMessenger_h 1 #include "globals.hh" #include "G4UImessenger.hh" +#include + class GammaRayTelAnalysis; class G4UIdirectory; class G4UIcmdWithAString; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelAnalysisMessenger: public G4UImessenger -{ +class GammaRayTelAnalysisMessenger: public G4UImessenger { public: - GammaRayTelAnalysisMessenger(GammaRayTelAnalysis* ); - ~GammaRayTelAnalysisMessenger(); - - void SetNewValue(G4UIcommand*, G4String); - + explicit GammaRayTelAnalysisMessenger(GammaRayTelAnalysis* analysis); + + ~GammaRayTelAnalysisMessenger() override; + + void SetNewValue(G4UIcommand *command, G4String newValue) override; + private: - GammaRayTelAnalysis* gammaRayTelAnalysis; - G4UIdirectory* gammaRayTelAnalysisDir; - - G4UIcmdWithAString* Histo2DModeCmd; + GammaRayTelAnalysis *gammaRayTelAnalysis; + + G4UIdirectory *gammaRayTelAnalysisDir; + + G4UIcmdWithAString *histo2DModeCmd; }; #endif - - - - - - - - - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh index 5f55e01248..1360d5583c 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh @@ -38,82 +38,88 @@ #ifndef GammaRayTelAnticoincidenceHit_h #define GammaRayTelAnticoincidenceHit_h 1 -#include "G4VHit.hh" -#include "G4THitsCollection.hh" #include "G4Allocator.hh" +#include "G4THitsCollection.hh" #include "G4ThreeVector.hh" +#include "G4VHit.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelAnticoincidenceHit : public G4VHit -{ +class GammaRayTelAnticoincidenceHit: public G4VHit { public: - - GammaRayTelAnticoincidenceHit(); - ~GammaRayTelAnticoincidenceHit(); - GammaRayTelAnticoincidenceHit(const GammaRayTelAnticoincidenceHit&); - const GammaRayTelAnticoincidenceHit& operator=(const - GammaRayTelAnticoincidenceHit&); - G4bool operator==(const GammaRayTelAnticoincidenceHit&) const; - - inline void* operator new(size_t); - inline void operator delete(void*); - - void Draw(); - void Print(); + GammaRayTelAnticoincidenceHit(); + + ~GammaRayTelAnticoincidenceHit() override; + + GammaRayTelAnticoincidenceHit(const GammaRayTelAnticoincidenceHit &right); + + auto operator=(const GammaRayTelAnticoincidenceHit &right) -> const GammaRayTelAnticoincidenceHit&; + + auto operator==(const GammaRayTelAnticoincidenceHit &right) const -> G4bool; + + inline auto operator new(size_t) -> void*; + + inline auto operator delete(void* hit) -> void; + + void Draw() override; + + void Print() override; + + inline void AddEnergy(G4double value) { + acdDepositedEnergy += value; + } + + inline void SetACDTileNumber(const G4int &value) { + acdTileNumber = value; + } + + inline void SetACDType(const G4int &value) { + isACDPlane = value; + } + + inline void SetPosition(const G4ThreeVector &value) { + position = value; + } + + [[nodiscard]] + inline auto GetEdepACD() const -> G4double { + return acdDepositedEnergy; + } + + [[nodiscard]] + inline auto GetACDTileNumber() const -> G4int { + return acdTileNumber; + } + + [[nodiscard]] + inline auto GetACDType() const -> G4int { + return isACDPlane; + } + + [[nodiscard]] + inline auto GetPosition() const -> G4ThreeVector { + return position; + } private: - - G4double EdepACD; // Energy deposited on the ACD tile - G4ThreeVector pos; // Position of the hit - G4int ACDTileNumber; // Number of the ACD tile - G4int IsACDPlane; // Type of the plane (0 top, 1 L-R, 2 F-R) + G4int acdTileNumber{0}; // Number of the ACD tile -public: - - inline void AddEnergy(G4double de) {EdepACD += de;}; - inline void SetACDTileNumber(G4int i) {ACDTileNumber = i;}; - inline void SetACDType(G4int i) {IsACDPlane = i;}; - inline void SetPos(G4ThreeVector xyz){ pos = xyz; } - - inline G4double GetEdepACD() { return EdepACD; }; - inline G4int GetACDTileNumber() { return ACDTileNumber; }; - inline G4int GetACDType() {return IsACDPlane;}; - inline G4ThreeVector GetPos() { return pos; }; - + G4int isACDPlane{0}; // Type of the plane (0: top, 1: L-R, 2: F-R) + + G4double acdDepositedEnergy{0.}; // Energy deposited on the ACD tile + + G4ThreeVector position{G4ThreeVector(0., 0., 0.)}; // Position of the hit }; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +using GammaRayTelAnticoincidenceHitsCollection = G4THitsCollection; +extern G4ThreadLocal G4Allocator *anticoincidenceHitAllocator; -typedef G4THitsCollection GammaRayTelAnticoincidenceHitsCollection; - -extern G4ThreadLocal G4Allocator *GammaRayTelAnticoincidenceHitAllocator; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline void* GammaRayTelAnticoincidenceHit::operator new(size_t) -{ - if (!GammaRayTelAnticoincidenceHitAllocator) - GammaRayTelAnticoincidenceHitAllocator = new G4Allocator ; - return (void*) GammaRayTelAnticoincidenceHitAllocator->MallocSingle(); +inline auto GammaRayTelAnticoincidenceHit::operator new(size_t) -> void* { + if (anticoincidenceHitAllocator == nullptr) { + anticoincidenceHitAllocator = new G4Allocator; + } + return (void*) anticoincidenceHitAllocator->MallocSingle(); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline void GammaRayTelAnticoincidenceHit::operator delete(void* aHit) -{ - GammaRayTelAnticoincidenceHitAllocator->FreeSingle((GammaRayTelAnticoincidenceHit*) aHit); +inline auto GammaRayTelAnticoincidenceHit::operator delete(void *hit) -> void { + anticoincidenceHitAllocator->FreeSingle((GammaRayTelAnticoincidenceHit*) hit); } - #endif - - - - - - - - - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceSD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceSD.hh index 2b77fa4402..87cc49a9ec 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceSD.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceSD.hh @@ -37,44 +37,45 @@ #ifndef GammaRayTelAnticoincidenceSD_h #define GammaRayTelAnticoincidenceSD_h 1 +#include "GammaRayTelAnticoincidenceHit.hh" + #include "G4VSensitiveDetector.hh" #include "globals.hh" class GammaRayTelDetectorConstruction; + class G4HCofThisEvent; class G4Step; -#include "GammaRayTelAnticoincidenceHit.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelAnticoincidenceSD : public G4VSensitiveDetector -{ +class GammaRayTelAnticoincidenceSD: public G4VSensitiveDetector { public: - - GammaRayTelAnticoincidenceSD(G4String); - ~GammaRayTelAnticoincidenceSD(); - - void Initialize(G4HCofThisEvent*); - G4bool ProcessHits(G4Step* astep,G4TouchableHistory*); - void EndOfEvent(G4HCofThisEvent*); - void clear(); - void DrawAll(); - void PrintAll(); - + explicit GammaRayTelAnticoincidenceSD(G4String name); + + ~GammaRayTelAnticoincidenceSD() override; + + void Initialize(G4HCofThisEvent *collection) override; + + auto ProcessHits(G4Step *step, G4TouchableHistory *history) -> G4bool override; + + void EndOfEvent(G4HCofThisEvent *collection) override; + + void clear() override; + + void DrawAll() override; + + void PrintAll() override; + private: - - GammaRayTelAnticoincidenceHitsCollection* AnticoincidenceCollection; - GammaRayTelDetectorConstruction* Detector; - G4int *HitLateralID; - G4int *HitTopID; - G4int NbOfACDLateralTiles; - G4int NbOfACDTopTiles; + GammaRayTelAnticoincidenceHitsCollection *anticoincidenceCollection; + + GammaRayTelDetectorConstruction *detector; + + G4int *hitLateralID; + + G4int *hitTopID; + + G4int numberOfACDLateralTiles; + + G4int numberOfACDTopTiles; }; - #endif - - - - - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterHit.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterHit.hh index 0a8ec3b31b..f920bf278e 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterHit.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterHit.hh @@ -38,85 +38,99 @@ #ifndef GammaRayTelCalorimeterHit_h #define GammaRayTelCalorimeterHit_h 1 -#include "G4VHit.hh" -#include "G4THitsCollection.hh" #include "G4Allocator.hh" +#include "G4THitsCollection.hh" #include "G4ThreeVector.hh" +#include "G4VHit.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelCalorimeterHit : public G4VHit -{ +class GammaRayTelCalorimeterHit: public G4VHit { public: - - GammaRayTelCalorimeterHit(); - ~GammaRayTelCalorimeterHit(); - GammaRayTelCalorimeterHit(const GammaRayTelCalorimeterHit&); - const GammaRayTelCalorimeterHit& operator=(const - GammaRayTelCalorimeterHit&); - G4bool operator==(const GammaRayTelCalorimeterHit&) const; - - inline void* operator new(size_t); - inline void operator delete(void*); - - void Draw(); - void Print(); + GammaRayTelCalorimeterHit(); + + ~GammaRayTelCalorimeterHit() override; + + GammaRayTelCalorimeterHit(const GammaRayTelCalorimeterHit &right); + + auto operator=(const GammaRayTelCalorimeterHit &right) -> const GammaRayTelCalorimeterHit&; + + auto operator==(const GammaRayTelCalorimeterHit &right) const -> G4bool; + + inline auto operator new(size_t) -> void*; + + inline auto operator delete(void* hit) -> void; + + void Draw() override; + + void Print() override; + + inline void AddEnergy(G4double value) { + calDepositedEnergy += value; + } + + inline void SetCALBarNumber(const G4int &value) { + calBarNumber = value; + } + + inline void SetCALPlaneNumber(const G4int &value) { + calPlaneNumber = value; + } + + inline void SetCALType(const G4int &value) { + isCALPlane = value; + } + + inline void SetPosition(const G4ThreeVector &vector) { + position = vector; + } + + [[nodiscard]] + inline auto GetCALDepositedEnergy() const -> G4double { + return calDepositedEnergy; + } + + [[nodiscard]] + inline auto GetCALBarNumber() const -> G4int { + return calBarNumber; + } + + [[nodiscard]] + inline auto GetCALPlaneNumber() const -> G4int { + return calPlaneNumber; + } + + [[nodiscard]] + inline auto GetCALType() const -> G4int { + return isCALPlane; + } + + [[nodiscard]] + inline auto GetPosition() const -> G4ThreeVector { + return position; + } private: - - G4double EdepCAL; // Energy deposited on the ACD tile - G4ThreeVector pos; // Position of the hit - G4int CALBarNumber; // Number of the CAL tile - G4int CALPlaneNumber; // Number of the CAL plane - G4int IsCALPlane; // Type of the plane (0 X, 1 Y) + G4int calBarNumber{0}; // Number of the calorimeter (CAL) tile -public: - - inline void AddEnergy(G4double de) {EdepCAL += de;}; - inline void SetCALBarNumber(G4int i) {CALBarNumber = i;}; - inline void SetCALPlaneNumber(G4int i) {CALPlaneNumber = i;}; - inline void SetCALType(G4int i) {IsCALPlane = i;}; - inline void SetPos(G4ThreeVector xyz){ pos = xyz; } - - inline G4double GetEdepCAL() { return EdepCAL; }; - inline G4int GetCALBarNumber() { return CALBarNumber; }; - inline G4int GetCALPlaneNumber() { return CALPlaneNumber; }; - inline G4int GetCALType() {return IsCALPlane;}; - inline G4ThreeVector GetPos() { return pos; }; - + G4int calPlaneNumber{0}; // Number of the calorimeter (CAL) plane + + G4int isCALPlane{0}; // Type of the plane (0: X plane, 1: Y plane) + + G4double calDepositedEnergy{0.}; // Energy deposited on the calorimeter (CAL) tile + + G4ThreeVector position{G4ThreeVector(0., 0., 0.)}; // Position of the hit }; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +using GammaRayTelCalorimeterHitsCollection = G4THitsCollection; +extern G4ThreadLocal G4Allocator *calorimeterHitAllocator; -typedef G4THitsCollection GammaRayTelCalorimeterHitsCollection; - -extern G4ThreadLocal G4Allocator *GammaRayTelCalorimeterHitAllocator; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline void* GammaRayTelCalorimeterHit::operator new(size_t) -{ - if (!GammaRayTelCalorimeterHitAllocator) - GammaRayTelCalorimeterHitAllocator = new G4Allocator; - return (void*) GammaRayTelCalorimeterHitAllocator->MallocSingle(); +inline auto GammaRayTelCalorimeterHit::operator new(size_t) -> void* { + if (calorimeterHitAllocator == nullptr) { + calorimeterHitAllocator = new G4Allocator; + } + return (void*) calorimeterHitAllocator->MallocSingle(); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline void GammaRayTelCalorimeterHit::operator delete(void* aHit) -{ - GammaRayTelCalorimeterHitAllocator->FreeSingle((GammaRayTelCalorimeterHit*) aHit); +inline auto GammaRayTelCalorimeterHit::operator delete(void* hit) -> void { + calorimeterHitAllocator->FreeSingle((GammaRayTelCalorimeterHit*) hit); } - #endif - - - - - - - - - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterSD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterSD.hh index 2deda2b0b0..1a34e00163 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterSD.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterSD.hh @@ -37,48 +37,46 @@ #ifndef GammaRayTelCalorimeterSD_h #define GammaRayTelCalorimeterSD_h 1 +#include "GammaRayTelCalorimeterHit.hh" + #include "G4VSensitiveDetector.hh" #include "globals.hh" class GammaRayTelDetectorConstruction; class G4HCofThisEvent; class G4Step; -#include "GammaRayTelCalorimeterHit.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelCalorimeterSD : public G4VSensitiveDetector -{ +class GammaRayTelCalorimeterSD: public G4VSensitiveDetector { public: - - GammaRayTelCalorimeterSD(G4String); - ~GammaRayTelCalorimeterSD(); - - void Initialize(G4HCofThisEvent*); - G4bool ProcessHits(G4Step* astep,G4TouchableHistory* ROHist); - void EndOfEvent(G4HCofThisEvent*); - void clear(); - void DrawAll(); - void PrintAll(); - + explicit GammaRayTelCalorimeterSD(G4String name); + + ~GammaRayTelCalorimeterSD() override; + + void Initialize(G4HCofThisEvent* event) override; + + auto ProcessHits(G4Step *step, G4TouchableHistory *history) -> G4bool override; + + void EndOfEvent(G4HCofThisEvent *collection) override; + + void clear() override; + + void DrawAll() override; + + void PrintAll() override; + private: - - GammaRayTelCalorimeterHitsCollection* CalorimeterCollection; - GammaRayTelDetectorConstruction* Detector; + GammaRayTelCalorimeterHitsCollection *calorimeterCollection; - G4int* ChitXID; - G4int* ChitYID; + GammaRayTelDetectorConstruction *detector; - G4int NbOfCALLayers; - G4int NbOfCALBars; - G4int NbOfCALChannels; + G4int *calHitXID; + G4int *calHitYID; + + G4int numberOfCALLayers; + + G4int numberOfCALBars; + + G4int numberOfCALChannels; }; - #endif - - - - - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorConstruction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorConstruction.hh index 08aea0a698..23767e8813 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorConstruction.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorConstruction.hh @@ -37,309 +37,419 @@ #ifndef GammaRayTelDetectorConstruction_h #define GammaRayTelDetectorConstruction_h 1 -#include "G4VUserDetectorConstruction.hh" #include "G4Cache.hh" +#include "G4PhysicalConstants.hh" +#include "G4SystemOfUnits.hh" +#include "G4VUserDetectorConstruction.hh" #include "globals.hh" -class G4Box; -class G4LogicalVolume; -class G4VPhysicalVolume; -class G4Material; -class G4UniformMagField; -class G4Region; -class GammaRayTelDetectorMessenger; -class GammaRayTelTrackerSD; class GammaRayTelAnticoincidenceSD; class GammaRayTelCalorimeterSD; +class GammaRayTelDetectorMessenger; +class GammaRayTelTrackerSD; + +class G4Box; class G4GlobalMagFieldMessenger; +class G4LogicalVolume; +class G4Material; +class G4Region; +class G4UniformMagField; +class G4VPhysicalVolume; -//class GammaRayTelTrackerROGeometry; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelDetectorConstruction : public G4VUserDetectorConstruction -{ +class GammaRayTelDetectorConstruction: public G4VUserDetectorConstruction { public: - - GammaRayTelDetectorConstruction(); - ~GammaRayTelDetectorConstruction(); - -public: - - void SetNbOfTKRLayers (G4int); // TKR number of layers, material, detector - void SetTKRTileSizeXY (G4double); - void SetNbOfTKRTiles (G4int); - void SetTKRSiliconThickness(G4double); - void SetTKRSiliconPitch(G4double); - - void SetTKRLayerDistance (G4double); - void SetTKRViewsDistance (G4double); + explicit GammaRayTelDetectorConstruction(); - void SetConverterMaterial (G4String); // TKR Converter material & thickness - void SetConverterThickness(G4double); - - void SetNbOfCALLayers (G4int); // CAL material, lenght, thickness - void SetNbOfCALBars (G4int); - void SetCALBarThickness(G4double); - - void SetACDThickness (G4double); //ACD Thickness + ~GammaRayTelDetectorConstruction() override; - void SetMagField(G4double); // Magnetic Field + void SetNbOfTKRLayers(G4int value); // tracker (TKR) number of layers - - G4VPhysicalVolume* Construct(); - void UpdateGeometry(); - void ConstructSDandField(); - -public: - - void PrintPayloadParameters(); - + void SetTKRTileSizeXY(G4double value); - G4double GetWorldSizeZ() const {return WorldSizeZ;}; - G4double GetWorldSizeXY() const {return WorldSizeXY;}; - - G4double GetPayloadSizeZ() const {return PayloadSizeZ;}; - G4double GetPayloadSizeXY() const {return PayloadSizeXY;}; + void SetNbOfTKRTiles(G4int value); // tracker (TKR) number of tiles - G4double GetTKRSizeZ() const {return TKRSizeZ;}; - G4double GetTKRSizeXY() const {return TKRSizeXY;}; + void SetTKRSiliconThickness(G4double value); - G4double GetCALSizeZ() const {return CALSizeZ;}; - G4double GetCALTKRDistance() const {return CALTKRDistance;}; - - G4double GetTKRSiliconThickness() const {return TKRSiliconThickness;}; - G4double GetTKRSiliconTileXY() const {return TKRSiliconTileXY;}; - G4double GetTKRSiliconPitch() const {return TKRSiliconPitch;}; - G4int GetNbOfTKRLayers() const {return NbOfTKRLayers;}; - G4int GetNbOfTKRTiles() const {return NbOfTKRTiles;}; - G4int GetNbOfTKRStrips() const {return NbOfTKRStrips;}; - G4double GetTKRLayerDistance() const {return TKRLayerDistance;}; - G4double GetTKRViewsDistance() const {return TKRViewsDistance;}; + void SetTKRSiliconPitch(G4double value); - G4double GetTKRActiveTileXY() const {return TKRActiveTileXY;}; - G4double GetTKRActiveTileZ() const {return TKRActiveTileZ;}; - G4double GetSiliconGuardRing() const {return SiliconGuardRing;} - G4double GetTilesSeparation() const {return TilesSeparation;}; - - G4Material* GetConverterMaterial() const {return ConverterMaterial;}; - G4double GetConverterThickness() const {return ConverterThickness;}; - - G4double GetCALBarThickness() const {return CALBarThickness;}; - G4int GetNbOfCALLayers() const {return NbOfCALLayers;}; - G4int GetNbOfCALBars() const {return NbOfCALBars;}; - - G4double GetACDThickness() const {return ACDThickness;}; - G4int GetNbOfACDTopTiles() const {return NbOfACDTopTiles;}; - G4int GetNbOfACDLateralTiles() const {return NbOfACDLateralTiles;}; - -private: - - G4Material* ConverterMaterial; - G4double ConverterThickness; - - G4double TKRSiliconThickness; - G4double TKRSiliconTileXY; - G4double TKRSiliconPitch; + void SetTKRLayerDistance(G4double value); - G4double TKRSizeXY; - G4double TKRSizeZ; + void SetTKRViewsDistance(G4double value); - G4double TKRLayerDistance; - G4double TKRViewsDistance; - G4double TKRSupportThickness; + void SetConverterMaterial(G4String materialChoice); // tracker (TKR) converter material - G4int NbOfTKRLayers; - G4int NbOfTKRTiles; - - G4double CALBarThickness; - G4int NbOfCALLayers; - G4int NbOfCALBars; - G4double CALSizeXY; - G4double CALSizeZ; + void SetConverterThickness(G4double value); // tracker (TKR) converter thickness - G4double CALBarX; - G4double CALBarY; - G4double CALBarZ; + void SetNbOfCALLayers(G4int value); // calorimeter (CAL) material, length, thickness - G4double ACDThickness; - G4double ACTSizeXY; - G4double ACTSizeZ; + void SetNbOfCALBars(G4int value); - G4double ACL1SizeX; - G4double ACL1SizeY; - G4double ACL1SizeZ; + void SetCALBarThickness(G4double value); - G4double ACL2SizeX; - G4double ACL2SizeY; - G4double ACL2SizeZ; + void SetACDThickness(G4double value); // anticoincidence (ACD) thickness + void SetMagField(G4double fieldValue); // magnetic field - G4int NbOfACDLateralTiles; - G4int NbOfACDTopTiles; + auto Construct() -> G4VPhysicalVolume* override; - G4double TilesSeparation; - G4double ACDTKRDistance; - G4double CALTKRDistance; - G4double TKRActiveTileXY; - G4double TKRActiveTileZ; + void ConstructSDandField() override; - G4double SiliconGuardRing; - G4int NbOfTKRStrips; + void PrintPayloadParameters(); - G4double TKRXStripX; - G4double TKRYStripX; - G4double TKRXStripY; - G4double TKRYStripY; - G4double TKRZStrip; + void UpdateGeometry(); - G4double PayloadSizeZ; - G4double PayloadSizeXY; - - G4Material* defaultMaterial; - G4Material* CALMaterial; - G4Material* TKRMaterial; - G4Material* ACDMaterial; - G4double WorldSizeXY; - G4double WorldSizeZ; - - G4Box* solidWorld; // World - G4LogicalVolume* logicWorld; - G4VPhysicalVolume* physiWorld; + [[nodiscard]] + auto GetWorldSizeZ() const -> G4double { + return worldSizeZ; + } - G4Box* solidPayload; // Payload - G4LogicalVolume* logicPayload; - G4VPhysicalVolume* physiPayload; - - G4Box* solidTKR; // Tracker - G4LogicalVolume* logicTKR; - G4VPhysicalVolume* physiTKR; + [[nodiscard]] + auto GetWorldSizeXY() const -> G4double { + return worldSizeXY; + } - G4Box* solidCAL; // Calorimeter - G4LogicalVolume* logicCAL; - G4VPhysicalVolume* physiCAL; + [[nodiscard]] + auto GetPayloadSizeZ() const -> G4double { + return payloadSizeZ; + } - G4Box* solidACT; // Top Anticoincidence - G4LogicalVolume* logicACT; - G4VPhysicalVolume* physiACT; + [[nodiscard]] + auto GetPayloadSizeXY() const -> G4double { + return payloadSizeXY; + } - G4Box* solidACL1; // Lateral Anticoincidence - G4LogicalVolume* logicACL1; - G4VPhysicalVolume* physiACL1; + [[nodiscard]] + auto GetTKRSizeZ() const -> G4double { + return tkrSizeZ; + } - G4Box* solidACL2; - G4LogicalVolume* logicACL2; - G4VPhysicalVolume* physiACL2; + [[nodiscard]] + auto GetTKRSizeXY() const -> G4double { + return tkrSizeXY; + } - G4Box* solidTKRDetectorX; // Tracker PLANE X - G4LogicalVolume* logicTKRDetectorX; - G4VPhysicalVolume* physiTKRDetectorX; + [[nodiscard]] + auto GetCALSizeZ() const -> G4double { + return calSizeZ; + } - G4Box* solidTKRDetectorY; // Tracker PLANE Y - G4LogicalVolume* logicTKRDetectorY; - G4VPhysicalVolume* physiTKRDetectorY; + [[nodiscard]] + auto GetCALTKRDistance() const -> G4double { + return calTKRDistance; + } - G4Box* solidCALLayerX; // Calorimeter PLANE X - G4LogicalVolume* logicCALLayerX; - G4VPhysicalVolume* physiCALLayerX; + [[nodiscard]] + auto GetTKRSiliconThickness() const -> G4double { + return tkrSiliconThickness; + } - G4Box* solidCALLayerY; // Calorimeter PLANE Y - G4LogicalVolume* logicCALLayerY; - G4VPhysicalVolume* physiCALLayerY; + [[nodiscard]] + auto GetTKRSiliconTileXY() const -> G4double { + return tkrSiliconTileXY; + } - G4Box* solidCALDetectorX; // Calorimeter DETECTOR X - G4LogicalVolume* logicCALDetectorX; - G4VPhysicalVolume* physiCALDetectorX; + [[nodiscard]] + auto GetTKRSiliconPitch() const -> G4double { + return tkrSiliconPitch; + } - G4Box* solidCALDetectorY; // Calorimeter DETECTOR Y - G4LogicalVolume* logicCALDetectorY; - G4VPhysicalVolume* physiCALDetectorY; + [[nodiscard]] + auto GetNbOfTKRLayers() const -> G4int { + return numberOfTKRLayers; + } - G4Box* solidPlane; // Support Plane - G4LogicalVolume* logicPlane; - G4VPhysicalVolume* physiPlane; - - G4Box* solidConverter; // Converter - G4LogicalVolume* logicConverter; - G4VPhysicalVolume* physiConverter; + auto GetNbOfTKRTiles() const -> G4int { + return numberOfTKRTiles; + } - G4LogicalVolume* logicTKRStripX; - G4LogicalVolume* logicTKRStripY; + [[nodiscard]] + auto GetNbOfTKRStrips() const -> G4int { + return numberOfTKRStrips; + } - // magnetic field messenger - static G4ThreadLocal G4GlobalMagFieldMessenger* fMagFieldMessenger; - - GammaRayTelDetectorMessenger* detectorMessenger; //pointer to the Messenger - - - G4Cache trackerSD; //pointer to the sensitive detector - G4Cache calorimeterSD; //pointer to the sensitive detector - G4Cache anticoincidenceSD; //pointer to the sensitive detector + [[nodiscard]] + auto GetTKRLayerDistance() const -> G4double { + return tkrLayerDistance; + } - //G4Region* aTKRRegion; // TKR cut region - //G4Region* aCALRegion; // CAL cut region + [[nodiscard]] + auto GetTKRViewsDistance() const -> G4double { + return tkrViewsDistance; + } + + [[nodiscard]] + auto GetTKRActiveTileXY() const -> G4double { + return tkrActiveTileXY; + } + + [[nodiscard]] + auto GetTKRActiveTileZ() const -> G4double { + return tkrActiveTileZ; + } + + [[nodiscard]] + auto GetSiliconGuardRing() const -> G4double { + return siliconGuardRing; + } + + [[nodiscard]] + auto GetTilesSeparation() const -> G4double { + return tilesSeparation; + } + + [[nodiscard]] + auto GetConverterMaterial() const -> G4Material* { + return converterMaterial; + } + + [[nodiscard]] + auto GetConverterThickness() const -> G4double { + return converterThickness; + } + + [[nodiscard]] + auto GetCALBarThickness() const -> G4double { + return calBarThickness; + } + + [[nodiscard]] + auto GetNbOfCALLayers() const -> G4int { + return numberOfCALLayers; + } + + [[nodiscard]] + auto GetNbOfCALBars() const -> G4int { + return numberOfCALBars; + } + + [[nodiscard]] + auto GetACDThickness() const -> G4double { + return acdThickness; + } + + [[nodiscard]] + auto GetNbOfACDTopTiles() const -> G4int { + return numberOfACDTopTiles; + } + + [[nodiscard]] + auto GetNbOfACDLateralTiles() const -> G4int { + return numberOfACDLateralTiles; + } private: - - void DefineMaterials(); - void ComputePayloadParameters(); - G4VPhysicalVolume* ConstructPayload(); + G4Material *converterMaterial; + G4double converterThickness{300. * micrometer}; + + // Tracker (TKR) + + G4double tkrSiliconThickness{400. * micrometer}; + G4double tkrSiliconTileXY{9. * cm}; + G4double tkrSiliconPitch{200. * micrometer}; + + G4double tkrSizeXY; + G4double tkrSizeZ; + G4double tkrLayerDistance{3. * cm}; + G4double tkrViewsDistance{1. * mm}; + G4double tkrSupportThickness; + + G4int numberOfTKRLayers{15}; + G4int numberOfTKRTiles{4}; + + // Calorimeter (CAL) + + G4double calBarThickness{1.5 * cm}; + + G4int numberOfCALLayers{5}; + G4int numberOfCALBars{12}; + + G4double calSizeXY; + G4double calSizeZ; + G4double calBarX; + G4double calBarY; + G4double calBarZ; + + // Anticoincidence (ACD) + + G4double acdThickness{1. * cm}; + + G4double actSizeXY; + G4double actSizeZ; + + G4double acl1SizeX; + G4double acl1SizeY; + G4double acl1SizeZ; + + G4double acl2SizeX; + G4double acl2SizeY; + G4double acl2SizeZ; + + G4int numberOfACDTopTiles{1}; + G4int numberOfACDLateralTiles{2}; + + G4double tilesSeparation{100. * micrometer}; + G4double acdTKRDistance{5. * cm}; + G4double calTKRDistance{1.5 * cm}; + G4double tkrActiveTileXY; + G4double tkrActiveTileZ; + + G4double siliconGuardRing{1.5 * mm}; + G4int numberOfTKRStrips; + + G4double tkrXStripX; + G4double tkrYStripX; + G4double tkrXStripY; + G4double tkrYStripY; + G4double tkrZStrip; + + G4double payloadSizeZ; + G4double payloadSizeXY; + + G4double worldSizeXY; + G4double worldSizeZ; + + // Material + G4Material *defaultMaterial; + G4Material *calMaterial; + G4Material *tkrMaterial; + G4Material *acdMaterial; + + // World + G4Box *solidWorld{nullptr}; + G4LogicalVolume *logicWorld{nullptr}; + G4VPhysicalVolume *physiWorld{nullptr}; + + // Payload + G4Box *solidPayload{nullptr}; + G4LogicalVolume *logicPayload{nullptr}; + G4VPhysicalVolume *physiPayload{nullptr}; + + // Tracker + G4Box *solidTKR{nullptr}; + G4LogicalVolume *logicTKR{nullptr}; + G4VPhysicalVolume *physiTKR{nullptr}; + + // Calorimeter + G4Box *solidCAL{nullptr}; + G4LogicalVolume *logicCAL{nullptr}; + G4VPhysicalVolume *physiCAL{nullptr}; + + // Top Anticoincidence + G4Box *solidACT{nullptr}; + G4LogicalVolume *logicACT{nullptr}; + G4VPhysicalVolume *physiACT{nullptr}; + + // Lateral Anticoincidence + G4Box *solidACL1{nullptr}; + G4LogicalVolume *logicACL1{nullptr}; + G4VPhysicalVolume *physiACL1{nullptr}; + + G4Box *solidACL2{nullptr}; + G4LogicalVolume *logicACL2{nullptr}; + G4VPhysicalVolume *physiACL2{nullptr}; + + // Tracker PLANE X + G4Box *solidTKRDetectorX{nullptr}; + G4LogicalVolume *logicTKRDetectorX{nullptr}; + G4VPhysicalVolume *physiTKRDetectorX{nullptr}; + + // Tracker PLANE Y + G4Box *solidTKRDetectorY{nullptr}; + G4LogicalVolume *logicTKRDetectorY{nullptr}; + G4VPhysicalVolume *physiTKRDetectorY{nullptr}; + + // Calorimeter PLANE X + G4Box *solidCALLayerX{nullptr}; + G4LogicalVolume *logicCALLayerX{nullptr}; + G4VPhysicalVolume *physiCALLayerX{nullptr}; + + // Calorimeter PLANE Y + G4Box *solidCALLayerY{nullptr}; + G4LogicalVolume *logicCALLayerY{nullptr}; + G4VPhysicalVolume *physiCALLayerY{nullptr}; + + // Calorimeter DETECTOR X + G4Box *solidCALDetectorX{nullptr}; + G4LogicalVolume *logicCALDetectorX{nullptr}; + G4VPhysicalVolume *physiCALDetectorX{nullptr}; + + // Calorimeter DETECTOR Y + G4Box *solidCALDetectorY{nullptr}; + G4LogicalVolume *logicCALDetectorY{nullptr}; + G4VPhysicalVolume *physiCALDetectorY{nullptr}; + + // Support Plane + G4Box *solidPlane{nullptr}; + G4LogicalVolume *logicPlane{nullptr}; + G4VPhysicalVolume *physiPlane{nullptr}; + + // Converter + G4Box *solidConverter{nullptr}; + G4LogicalVolume *logicConverter{nullptr}; + G4VPhysicalVolume *physiConverter{nullptr}; + + G4LogicalVolume *logicTKRStripX{nullptr}; + G4LogicalVolume *logicTKRStripY{nullptr}; + + // magnetic field messenger + static G4ThreadLocal G4GlobalMagFieldMessenger* fMagFieldMessenger; + + GammaRayTelDetectorMessenger *detectorMessenger; // pointer to the messenger + + G4Cache trackerSD; // pointer to the sensitive detector, tracker (TRK) + G4Cache calorimeterSD; // pointer to the sensitive detector, calorimeter (CAL) + G4Cache anticoincidenceSD; // pointer to the sensitive detector, anticoincidence (ACD) + +// G4Region* trackerCutRegion; // tracker (TKR) cut region +// G4Region* calorimeterCutRegion; // calorimeter (CAL) cut region + + void ComputePayloadParameters(); + + auto ConstructPayload() -> G4VPhysicalVolume*; + + void DefineMaterials(); }; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +inline auto GammaRayTelDetectorConstruction::ComputePayloadParameters() -> void { + // Compute derived parameters of the payload -inline void GammaRayTelDetectorConstruction::ComputePayloadParameters() -{ - // Compute derived parameters of the payload + tkrSupportThickness = tkrLayerDistance - 2 * tkrSiliconThickness - tkrViewsDistance - converterThickness; + tkrSizeXY = numberOfTKRTiles * tkrSiliconTileXY + (numberOfTKRTiles + 1) * tilesSeparation; + tkrSizeZ = numberOfTKRLayers * tkrLayerDistance; - TKRSupportThickness =TKRLayerDistance -2.*TKRSiliconThickness - - TKRViewsDistance - ConverterThickness; - TKRSizeXY = NbOfTKRTiles*TKRSiliconTileXY + (NbOfTKRTiles+1)*TilesSeparation; - TKRSizeZ = NbOfTKRLayers*TKRLayerDistance; - - TKRActiveTileXY = TKRSiliconTileXY - 2*SiliconGuardRing; - TKRActiveTileZ = TKRSiliconThickness; - NbOfTKRStrips = G4int(TKRActiveTileXY/TKRSiliconPitch); + tkrActiveTileXY = tkrSiliconTileXY - 2 * siliconGuardRing; + tkrActiveTileZ = tkrSiliconThickness; + numberOfTKRStrips = G4int(tkrActiveTileXY / tkrSiliconPitch); - SiliconGuardRing = TKRActiveTileXY - NbOfTKRStrips*TKRSiliconPitch; - TKRActiveTileXY = TKRSiliconTileXY - 2*SiliconGuardRing; + siliconGuardRing = tkrActiveTileXY - numberOfTKRStrips * tkrSiliconPitch; + tkrActiveTileXY = tkrSiliconTileXY - 2 * siliconGuardRing; - TKRXStripX = TKRYStripY = TKRSiliconPitch; - TKRYStripX = TKRXStripY = TKRActiveTileXY; - TKRZStrip = TKRSiliconThickness; - - CALSizeXY = TKRSizeXY; - CALSizeZ = 2.*NbOfCALLayers*CALBarThickness; - - CALBarX = CALSizeXY; - CALBarY = CALSizeXY/(NbOfCALBars); - CALBarZ = CALBarThickness; - - ACTSizeXY = TKRSizeXY + 2*ACDTKRDistance + 2*ACDThickness; - ACTSizeZ = ACDThickness; + tkrXStripX = tkrYStripY = tkrSiliconPitch; + tkrYStripX = tkrXStripY = tkrActiveTileXY; + tkrZStrip = tkrSiliconThickness; - ACL1SizeX = TKRSizeXY + 2*ACDTKRDistance + ACDThickness; - ACL1SizeY = ACDThickness; - ACL1SizeZ = TKRSizeZ + CALSizeZ + ACDTKRDistance + CALTKRDistance; + calSizeXY = tkrSizeXY; + calSizeZ = 2 * numberOfCALLayers * calBarThickness; - ACL2SizeX = ACDThickness; - ACL2SizeY = TKRSizeXY + 2*ACDTKRDistance + ACDThickness; - ACL2SizeZ = TKRSizeZ + CALSizeZ + ACDTKRDistance + CALTKRDistance; + calBarX = calSizeXY; + calBarY = calSizeXY / (numberOfCALBars); + calBarZ = calBarThickness; - PayloadSizeZ = 1.1*(ACL1SizeZ + ACTSizeZ); - PayloadSizeXY = (ACTSizeXY); - - WorldSizeZ = 1.5*PayloadSizeZ; WorldSizeXY = 1.5*PayloadSizeXY; + actSizeXY = tkrSizeXY + 2 * acdTKRDistance + 2 * acdThickness; + actSizeZ = acdThickness; + acl1SizeX = tkrSizeXY + 2 * acdTKRDistance + acdThickness; + acl1SizeY = acdThickness; + acl1SizeZ = tkrSizeZ + calSizeZ + acdTKRDistance + calTKRDistance; + + acl2SizeX = acdThickness; + acl2SizeY = tkrSizeXY + 2 * acdTKRDistance + acdThickness; + acl2SizeZ = tkrSizeZ + calSizeZ + acdTKRDistance + calTKRDistance; + + payloadSizeZ = 1.1 * (acl1SizeZ + actSizeZ); + payloadSizeXY = (actSizeXY); + + worldSizeZ = 1.5 * payloadSizeZ; + worldSizeXY = 1.5 * payloadSizeXY; } - #endif - - - - - - - - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorMessenger.hh index d0acc2662b..52e000e803 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorMessenger.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorMessenger.hh @@ -24,7 +24,6 @@ // ******************************************************************** // // -// // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland @@ -34,14 +33,14 @@ // by F.Longo, R.Giannitrapani & G.Santin (13 nov 2000) // // ************************************************************ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #ifndef GammaRayTelDetectorMessenger_h #define GammaRayTelDetectorMessenger_h 1 -#include "globals.hh" #include "G4UImessenger.hh" +#include "globals.hh" + +#include class GammaRayTelDetectorConstruction; class G4UIdirectory; @@ -50,63 +49,50 @@ class G4UIcmdWithAnInteger; class G4UIcmdWithADoubleAndUnit; class G4UIcmdWithoutParameter; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelDetectorMessenger: public G4UImessenger -{ +class GammaRayTelDetectorMessenger: public G4UImessenger { public: - GammaRayTelDetectorMessenger(GammaRayTelDetectorConstruction* ); - ~GammaRayTelDetectorMessenger(); - - void SetNewValue(G4UIcommand*, G4String); - + explicit GammaRayTelDetectorMessenger(GammaRayTelDetectorConstruction*); + + ~GammaRayTelDetectorMessenger() override; + + void SetNewValue(G4UIcommand *command, G4String newValue) override; + private: - GammaRayTelDetectorConstruction* GammaRayTelDetector; - - G4UIdirectory* GammaRayTeldetDir; - - // Converter - - G4UIcmdWithAString* ConverterMaterCmd; - G4UIcmdWithADoubleAndUnit* ConverterThickCmd; - - // Silicon Tile - - G4UIcmdWithADoubleAndUnit* SiliconThickCmd; - G4UIcmdWithADoubleAndUnit* SiliconTileXYCmd; - G4UIcmdWithAnInteger* NbSiTilesCmd; - G4UIcmdWithADoubleAndUnit* SiliconPitchCmd; + GammaRayTelDetectorConstruction *detector; - // Tracker - - G4UIcmdWithAnInteger* NbTKRLayersCmd; - G4UIcmdWithADoubleAndUnit* LayerDistanceCmd; - G4UIcmdWithADoubleAndUnit* ViewsDistanceCmd; - - // Calorimeter - - G4UIcmdWithADoubleAndUnit* CALThickCmd; - G4UIcmdWithAnInteger* NbCALBarsCmd; - G4UIcmdWithAnInteger* NbCALLayersCmd; + G4UIdirectory *directory; - // Anticoincidence + // Converter - G4UIcmdWithADoubleAndUnit* ACDThickCmd; + G4UIcmdWithAString *converterMaterialCmd; + G4UIcmdWithADoubleAndUnit *converterThicknessCmd; - // Total + // Silicon Tile - G4UIcmdWithADoubleAndUnit* MagFieldCmd; - G4UIcmdWithoutParameter* UpdateCmd; + G4UIcmdWithADoubleAndUnit *siliconThicknessCmd; + G4UIcmdWithADoubleAndUnit *siliconTileXYCmd; + G4UIcmdWithAnInteger *numberOfSiTilesCmd; + G4UIcmdWithADoubleAndUnit *siliconPitchCmd; + + // Tracker (TKR) + + G4UIcmdWithAnInteger *numberOfTKRLayersCmd; + G4UIcmdWithADoubleAndUnit *layerDistanceCmd; + G4UIcmdWithADoubleAndUnit *viewsDistanceCmd; + + // Calorimeter (CAL) + + G4UIcmdWithADoubleAndUnit *calThicknessCmd; + G4UIcmdWithAnInteger *numberOfCALBarsCmd; + G4UIcmdWithAnInteger *numberOfCALLayersCmd; + + // Anticoincidence (ACD) + + G4UIcmdWithADoubleAndUnit *acdThicknessCmd; + + // Total + + G4UIcmdWithADoubleAndUnit *magneticFieldCmd; + G4UIcmdWithoutParameter *updateCmd; }; - #endif - - - - - - - - - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh index 1ac770b31b..36fd92506f 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh @@ -29,10 +29,11 @@ // CERN Geneva Switzerland // // -// ------------ GammaRayTelDigi ------ +// ------------ GammaRayTelDigi ------ // by F.Longo, R.Giannitrapani & G.Santin (24 oct 2001) // // ************************************************************ + // This Class describe the digits #ifndef GammaRayTelDigi_h @@ -43,80 +44,94 @@ #include "G4Allocator.hh" #include "G4ThreeVector.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelDigi : public G4VDigi -{ - +class GammaRayTelDigi: public G4VDigi { public: - - GammaRayTelDigi(); - ~GammaRayTelDigi(); - GammaRayTelDigi(const GammaRayTelDigi&); - const GammaRayTelDigi& operator=(const GammaRayTelDigi&); - G4bool operator==(const GammaRayTelDigi&) const; - - inline void* operator new(size_t); - inline void operator delete(void*); - - void Draw(); - void Print(); + explicit GammaRayTelDigi(); + + ~GammaRayTelDigi() override; + + GammaRayTelDigi(const GammaRayTelDigi&); + + auto operator=(const GammaRayTelDigi& right) -> const GammaRayTelDigi&; + + auto operator==(const GammaRayTelDigi &right) const -> G4bool; + + inline auto operator new(size_t) -> void*; + + inline auto operator delete(void *digit) -> void; + + void Draw() override; + + void Print() override; + + inline void SetPlaneNumber(G4int value) { + planeNumber = value; + } + + inline void SetPlaneType(G4int value) { + planeType = value; + } + + inline void SetStripNumber(G4int value) { + stripNumber = value; + } + + inline void SetDigitType(G4int value) { + digitType = value; + } + + inline void SetEnergy(G4double value) { + energy = value; + } + + [[nodiscard]] + inline auto GetPlaneNumber() const -> G4int { + return planeNumber; + } + + [[nodiscard]] + inline auto GetPlaneType() const -> G4int { + return planeType; + } + + [[nodiscard]] + inline auto GetStripNumber() const -> G4int { + return stripNumber; + } + + [[nodiscard]] + inline auto GetDigitType() const -> G4int { + return digitType; + } + + [[nodiscard]] + inline auto GetEnergy() const -> G4double { + return energy; + } private: - - G4int PlaneNumber; // (active detector) - G4int PlaneType; // (0 or 1 for X or Y plane) - G4int StripNumber; // strip number - G4int DigiType; // (0 == TKR, 1 == CAL, 2 == ACD) - G4double Energy; // only for CAL - -public: - - inline void SetPlaneNumber(G4int PlaneNum) {PlaneNumber = PlaneNum;}; - inline void SetPlaneType(G4int PlaneTyp) {PlaneType = PlaneTyp;}; - inline void SetStripNumber(G4int StripNum) {StripNumber = StripNum;}; - inline void SetDigiType(G4int DigiID) {DigiType = DigiID;}; - inline void SetEnergy(G4double Ene) {Energy = Ene;}; + G4int planeType{0}; // (0: X plane, 1: Y plane) - inline G4int GetPlaneNumber() {return PlaneNumber;}; - inline G4int GetPlaneType() {return PlaneType;}; - inline G4int GetStripNumber() {return StripNumber;}; - inline G4int GetDigiType() {return DigiType;}; - inline G4double GetEnergy() {return Energy;}; - + G4int planeNumber{0}; // (active detector) + G4int stripNumber{0}; // strip number + + G4int digitType{0}; // (0: TKR, 1: CAL, 2: ACD) + + G4double energy{0.}; // only for CAL }; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +using GammaRayTelDigitsCollection = G4TDigiCollection; +extern G4ThreadLocal G4Allocator *digitAllocator; -typedef G4TDigiCollection GammaRayTelDigitsCollection; - -extern G4ThreadLocal G4Allocator *GammaRayTelDigiAllocator; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline void* GammaRayTelDigi::operator new(size_t) -{ - if (!GammaRayTelDigiAllocator) - GammaRayTelDigiAllocator = new G4Allocator; - return (void*) GammaRayTelDigiAllocator->MallocSingle(); +inline auto GammaRayTelDigi::operator new(size_t) -> void* { + if (digitAllocator == nullptr) { + digitAllocator = new G4Allocator; + } + return (void*) digitAllocator->MallocSingle(); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline void GammaRayTelDigi::operator delete(void* aDigi) -{ - GammaRayTelDigiAllocator->FreeSingle((GammaRayTelDigi*) aDigi); +inline auto GammaRayTelDigi::operator delete(void *digit) -> void { + digitAllocator->FreeSingle((GammaRayTelDigi*) digit); } - #endif - - - - - - - - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizer.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizer.hh index ca936486c2..af148e64de 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizer.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizer.hh @@ -38,41 +38,35 @@ #ifndef GammaRayTelDigitizer_h #define GammaRayTelDigitizer_h 1 -#include "G4VDigitizerModule.hh" #include "GammaRayTelDigi.hh" + +#include "G4SystemOfUnits.hh" +#include "G4VDigitizerModule.hh" #include "globals.hh" -//#include "g4std/vector" class GammaRayTelDigitizerMessenger; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelDigitizer : public G4VDigitizerModule -{ +class GammaRayTelDigitizer: public G4VDigitizerModule { public: - - GammaRayTelDigitizer(G4String name); - ~GammaRayTelDigitizer(); - - void Digitize(); - void SetThreshold(G4double val) { Energy_Threshold = val;} - + explicit GammaRayTelDigitizer(G4String name); + + ~GammaRayTelDigitizer() override; + + void Digitize() override; + + void SetThreshold(G4double value) { + energyThreshold = value; + } + private: - - GammaRayTelDigitsCollection* DigitsCollection; - G4double Energy_Threshold; // for TKR digi - G4double TotalEnergy; // for CAL analysis - G4double ACDThreshold; // for ACD analysis - GammaRayTelDigitizerMessenger* digiMessenger; + GammaRayTelDigitsCollection *digitsCollection; + G4double energyThreshold{120. * keV}; // for TKR digi + + G4double totalEnergy{0.}; // for CAL analysis + + G4double acdThreshold{15 * keV}; // for ACD analysis + + GammaRayTelDigitizerMessenger *digitizerMessenger; }; - #endif - - - - - - - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizerMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizerMessenger.hh index 687acc9a2f..58b19f5bad 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizerMessenger.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizerMessenger.hh @@ -23,8 +23,6 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// // // ------------------------------------------------------------ // GEANT 4 class header file @@ -36,34 +34,29 @@ // // ************************************************************ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - #ifndef GammaRayTelDigitizerMessenger_h #define GammaRayTelDigitizerMessenger_h 1 #include "G4UImessenger.hh" #include "globals.hh" +#include + class GammaRayTelDigitizer; + class G4UIcmdWithADoubleAndUnit; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelDigitizerMessenger: public G4UImessenger -{ +class GammaRayTelDigitizerMessenger: public G4UImessenger { public: - GammaRayTelDigitizerMessenger(GammaRayTelDigitizer*); - ~GammaRayTelDigitizerMessenger(); - - void SetNewValue(G4UIcommand*, G4String); - + explicit GammaRayTelDigitizerMessenger(GammaRayTelDigitizer*); + + ~GammaRayTelDigitizerMessenger() override; + + void SetNewValue(G4UIcommand *command, G4String newValue) override; + private: - GammaRayTelDigitizer* GammaRayTelAction; - G4UIcmdWithADoubleAndUnit* ThresholdCmd; + GammaRayTelDigitizer *GammaRayTelAction; + G4UIcmdWithADoubleAndUnit *thresholdCmd; }; - #endif - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh index e34b07e7cd..69da08c70d 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh @@ -23,7 +23,6 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // - // // ------------------------------------------------------------ // GEANT 4 class header file @@ -47,18 +46,29 @@ class G4Step; -class GammaRayTelDummySD : public G4VSensitiveDetector -{ +class [[deprecated]] GammaRayTelDummySD: public G4VSensitiveDetector { public: - GammaRayTelDummySD(G4String name):G4VSensitiveDetector(name){}; - ~GammaRayTelDummySD() {}; - - void Initialize(G4HCofThisEvent* ) {}; - G4bool ProcessHits(G4Step*,G4TouchableHistory*) {return false;} - void EndOfEvent(G4HCofThisEvent*) {}; - void clear() {}; - void DrawAll() {}; - void PrintAll() {}; -}; + explicit GammaRayTelDummySD(G4String name) : G4VSensitiveDetector(name) { + } + ~GammaRayTelDummySD() override; + + void Initialize(G4HCofThisEvent *collection); + + auto ProcessHits(G4Step *step, G4TouchableHistory *history) -> G4bool { + return false; + } + + void EndOfEvent(G4HCofThisEvent *collection) { + } + + void clear() { + } + + void DrawAll() { + } + + void PrintAll() { + } +}; #endif diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh index 42e90831dc..585b3fece2 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh @@ -36,10 +36,6 @@ // 20.11.01 G.Santin: new analysis management, modified according to GammaRayTelAnalysis // ************************************************************ - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - #ifndef GammaRayTelEventAction_h #define GammaRayTelEventAction_h 1 @@ -47,37 +43,29 @@ #include "globals.hh" #include "GammaRayTelRunAction.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelEventAction : public G4UserEventAction -{ +class GammaRayTelEventAction: public G4UserEventAction { public: + explicit GammaRayTelEventAction(GammaRayTelRunAction *runAction = nullptr); + + ~GammaRayTelEventAction() override; + + void BeginOfEventAction(const G4Event *event) override; + + void EndOfEventAction(const G4Event *event) override; + + void SetDrawFlag(G4String value) { + drawFlag = value; + }; - GammaRayTelEventAction(GammaRayTelRunAction* runAction=0); - virtual ~GammaRayTelEventAction(); - -public: - virtual void BeginOfEventAction(const G4Event*); - virtual void EndOfEventAction(const G4Event*); - - void SetDrawFlag (G4String val) {drawFlag = val;}; - private: + G4int anticoincidenceCollectionID{-1}; - G4int trackerCollID; - G4int calorimeterCollID; - G4int anticoincidenceCollID; - G4String drawFlag; + G4int calorimeterCollectionID{-1}; - GammaRayTelRunAction* theRunAction; + G4int trackerCollectionID{-1}; + G4String drawFlag{"all"}; + + GammaRayTelRunAction *theRunAction; }; - #endif - - - - - - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelPhysicsList.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelPhysicsList.hh index feafb3073c..f7350d7689 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelPhysicsList.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelPhysicsList.hh @@ -36,40 +36,47 @@ class G4VPhysicsConstructor; class GammaRayTelPhysicsListMessenger; -class GammaRayTelPhysicsList: public G4VModularPhysicsList -{ +class GammaRayTelPhysicsList: public G4VModularPhysicsList { public: + explicit GammaRayTelPhysicsList(); - GammaRayTelPhysicsList(); - virtual ~GammaRayTelPhysicsList(); + ~GammaRayTelPhysicsList() override; - void ConstructParticle(); + void AddPackage(const G4String &name); - void SetCutForGamma(G4double); - void SetCutForElectron(G4double); - void SetCutForPositron(G4double); + void AddPhysicsList(const G4String &name); - void AddPhysicsList(const G4String& name); - void ConstructProcess(); + void ConstructParticle() override; - void AddPackage(const G4String& name); + void ConstructProcess() override; + + void SetCutForElectron(G4double cut); + + void SetCutForGamma(G4double cut); + + void SetCutForPositron(G4double cut); private: + G4EmConfigurator emConfigurator; - G4EmConfigurator em_config; + G4bool helIsRegisted; - G4bool helIsRegisted; - G4bool bicIsRegisted; - G4bool biciIsRegisted; - G4bool locIonIonInelasticIsRegistered; - G4bool radioactiveDecayIsRegisted; + G4bool bicIsRegisted; - G4String emName; - G4VPhysicsConstructor* emPhysicsList; - G4VPhysicsConstructor* decPhysicsList; - std::vector hadronPhys; + G4bool biciIsRegisted; - GammaRayTelPhysicsListMessenger* pMessenger; + G4bool locIonIonInelasticIsRegistered; + + G4bool radioactiveDecayIsRegisted; + + G4String emName; + + G4VPhysicsConstructor *emPhysicsList; + + G4VPhysicsConstructor *decPhysicsList; + + std::vector hadronPhys; + + GammaRayTelPhysicsListMessenger *pMessenger; }; - #endif diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelPhysicsListMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelPhysicsListMessenger.hh index 99515d6fbf..80011246f2 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelPhysicsListMessenger.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelPhysicsListMessenger.hh @@ -32,39 +32,39 @@ #ifndef GammaRayTelPhysicsListMessenger_h #define GammaRayTelPhysicsListMessenger_h 1 -#include "globals.hh" #include "G4UImessenger.hh" +#include "globals.hh" + +#include class GammaRayTelPhysicsList; class G4UIdirectory; class G4UIcmdWithADoubleAndUnit; class G4UIcmdWithAString; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +class GammaRayTelPhysicsListMessenger: public G4UImessenger { +public: + explicit GammaRayTelPhysicsListMessenger(GammaRayTelPhysicsList*); -class GammaRayTelPhysicsListMessenger: public G4UImessenger -{ - public: - - GammaRayTelPhysicsListMessenger(GammaRayTelPhysicsList* ); - ~GammaRayTelPhysicsListMessenger(); - - void SetNewValue(G4UIcommand*, G4String); - - private: - - GammaRayTelPhysicsList* pPhysicsList; - - G4UIdirectory* physDir; - G4UIcmdWithADoubleAndUnit* gammaCutCmd; - G4UIcmdWithADoubleAndUnit* electCutCmd; - G4UIcmdWithADoubleAndUnit* protoCutCmd; - G4UIcmdWithADoubleAndUnit* allCutCmd; - G4UIcmdWithAString* pListCmd; - G4UIcmdWithAString* packageListCmd; + ~GammaRayTelPhysicsListMessenger() override; + + void SetNewValue(G4UIcommand *command, G4String newValue) override; + +private: + GammaRayTelPhysicsList *pPhysicsList; + + G4UIdirectory *physDir; + + G4UIcmdWithADoubleAndUnit *gammaCutCmd; + + G4UIcmdWithADoubleAndUnit *electronCutCmd; + + G4UIcmdWithADoubleAndUnit *protonCutCmd; + + G4UIcmdWithADoubleAndUnit *allCutCmd; + + G4UIcmdWithAString *pListCmd; + + G4UIcmdWithAString *packageListCmd; }; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - #endif - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh index 6d1c3756c8..d4142716ec 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh @@ -24,7 +24,6 @@ // ******************************************************************** // // -// // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland @@ -35,14 +34,10 @@ // // ************************************************************ - - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - #ifndef GammaRayTelPrimaryGeneratorAction_h #define GammaRayTelPrimaryGeneratorAction_h 1 +#include "G4SystemOfUnits.hh" #include "G4VUserPrimaryGeneratorAction.hh" #include "globals.hh" @@ -52,37 +47,51 @@ class GammaRayTelDetectorConstruction; class GammaRayTelPrimaryGeneratorMessenger; class G4GeneralParticleSource; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction -{ +class GammaRayTelPrimaryGeneratorAction: public G4VUserPrimaryGeneratorAction { public: + explicit GammaRayTelPrimaryGeneratorAction(); + + ~GammaRayTelPrimaryGeneratorAction() override; + + void GeneratePrimaries(G4Event *event) override; + + void SetRndmFlag(G4String value) { + rndmFlag = value; + } + + void SetSourceType(G4int value) { + sourceType = value; + } + + void SetSpectrumType(G4int value) { + spectrumType = value; + } + + void SetVertexRadius(G4double value) { + vertexRadius = value; + } + + void SetSourceGen(G4bool value) { + sourceGun = value; + } - GammaRayTelPrimaryGeneratorAction(); - ~GammaRayTelPrimaryGeneratorAction(); - -public: - void GeneratePrimaries(G4Event*); - void SetRndmFlag(G4String val) { rndmFlag = val;} - void SetSourceType(G4int val) { nSourceType = val;} - void SetSpectrumType(G4int val) { nSpectrumType = val;} - void SetVertexRadius(G4double val) { dVertexRadius = val;} - void SetSourceGen(G4bool val) { sourceGun = val;} - private: - G4ParticleGun* particleGun; - G4GeneralParticleSource* particleSource; - const GammaRayTelDetectorConstruction* GammaRayTelDetector; - GammaRayTelPrimaryGeneratorMessenger* gunMessenger; - G4String rndmFlag; //flag for a random impact point - G4int nSourceType; - G4double dVertexRadius; - G4int nSpectrumType; - G4bool sourceGun; // false for GeneralParticleSource - + G4ParticleGun *particleGun; + + G4GeneralParticleSource *particleSource; + + const GammaRayTelDetectorConstruction *detector; + + GammaRayTelPrimaryGeneratorMessenger *gunMessenger; + + G4String rndmFlag{"off"}; // flag for a random impact point + + G4int sourceType{0}; + + G4double vertexRadius{15. * cm}; + + G4int spectrumType{0}; + + G4bool sourceGun{false}; // false for GeneralParticleSource }; - #endif - - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh index 8a049a9d5d..8cb65f42ef 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh @@ -24,8 +24,6 @@ // ******************************************************************** // // -// -// // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland @@ -36,41 +34,39 @@ // // ************************************************************ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - #ifndef GammaRayTelPrimaryGeneratorMessenger_h #define GammaRayTelPrimaryGeneratorMessenger_h 1 #include "G4UImessenger.hh" #include "globals.hh" +#include + class GammaRayTelPrimaryGeneratorAction; -class G4UIcmdWithAString; -class G4UIcmdWithAnInteger; -class G4UIcmdWithADoubleAndUnit; class G4UIcmdWithABool; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithAnInteger; +class G4UIcmdWithAString; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelPrimaryGeneratorMessenger: public G4UImessenger -{ +class GammaRayTelPrimaryGeneratorMessenger: public G4UImessenger { public: - GammaRayTelPrimaryGeneratorMessenger(GammaRayTelPrimaryGeneratorAction*); - ~GammaRayTelPrimaryGeneratorMessenger(); - - void SetNewValue(G4UIcommand*, G4String); - + explicit GammaRayTelPrimaryGeneratorMessenger(GammaRayTelPrimaryGeneratorAction*); + + ~GammaRayTelPrimaryGeneratorMessenger() override; + + void SetNewValue(G4UIcommand *command, G4String newValue) override; + private: - GammaRayTelPrimaryGeneratorAction* GammaRayTelAction; - G4UIcmdWithAString* RndmCmd; - G4UIcmdWithAnInteger* SourceTypeCmd; - G4UIcmdWithADoubleAndUnit* VertexRadiusCmd; - G4UIcmdWithAnInteger* SpectrumTypeCmd; - G4UIcmdWithABool* SourceGenCmd; + GammaRayTelPrimaryGeneratorAction *GammaRayTelAction; + G4UIcmdWithAString *rndmCmd; + + G4UIcmdWithAnInteger *sourceTypeCmd; + + G4UIcmdWithADoubleAndUnit *vertexRadiusCmd; + + G4UIcmdWithAnInteger *spectrumTypeCmd; + + G4UIcmdWithABool *sourceGenCmd; }; - #endif - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh index fb842776d2..3f8b3a0cb6 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh @@ -34,8 +34,6 @@ // 18.11.2001 G.Santin - Modified the analysis management according to the new design // // ************************************************************ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #ifndef GammaRayTelRunAction_h #define GammaRayTelRunAction_h 1 @@ -43,32 +41,27 @@ #include "G4UserRunAction.hh" #include "globals.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - class G4Run; -class GammaRayTelRunAction : public G4UserRunAction -{ +class GammaRayTelRunAction: public G4UserRunAction { public: - GammaRayTelRunAction(); - ~GammaRayTelRunAction(); - -public: - void BeginOfRunAction(const G4Run*); - void EndOfRunAction(const G4Run*); - std::ofstream* GetOutputFile(); - + explicit GammaRayTelRunAction(); + + ~GammaRayTelRunAction() override; + + void BeginOfRunAction(const G4Run *run) override; + + void EndOfRunAction(const G4Run *run) override; + + auto GetOutputFile() -> std::ofstream*; private: - std::ofstream* outFile; - G4String fileName; + std::ofstream *outFile{nullptr}; - void OpenFile(); - G4int fRunID; + G4String fileName{"NULL"}; + G4int fRunID{-1}; + + void OpenFile(); }; - #endif - - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerHit.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerHit.hh index 074aac2801..2a6cda419e 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerHit.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerHit.hh @@ -38,83 +38,99 @@ #ifndef GammaRayTelTrackerHit_h #define GammaRayTelTrackerHit_h 1 -#include "G4VHit.hh" -#include "G4THitsCollection.hh" #include "G4Allocator.hh" +#include "G4THitsCollection.hh" #include "G4ThreeVector.hh" +#include "G4VHit.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelTrackerHit : public G4VHit -{ +class GammaRayTelTrackerHit: public G4VHit { public: - - GammaRayTelTrackerHit(); - ~GammaRayTelTrackerHit(); - GammaRayTelTrackerHit(const GammaRayTelTrackerHit&); - const GammaRayTelTrackerHit& operator=(const GammaRayTelTrackerHit&); - G4bool operator==(const GammaRayTelTrackerHit&) const; - - inline void* operator new(size_t); - inline void operator delete(void*); - - void Draw(); - void Print(); + explicit GammaRayTelTrackerHit(); + + ~GammaRayTelTrackerHit() override; + + GammaRayTelTrackerHit(const GammaRayTelTrackerHit &right); + + auto operator=(const GammaRayTelTrackerHit &right) -> const GammaRayTelTrackerHit&; + + auto operator==(const GammaRayTelTrackerHit &right) const -> G4bool; + + inline auto operator new(size_t) -> void*; + + inline auto operator delete(void *hit) -> void; + + void Draw() override; + + void Print() override; + + inline void AddDepositedEnergy(G4double value) { + siliconDepositedEnergy += value; + } + + inline void SetStripNumber(const G4int &value) { + stripNumber = value; + } + + inline void SetSiliconPlaneNumber(const G4int &value) { + siliconPlaneNumber = value; + } + + inline void SetPlaneType(const G4int &value) { + isXPlane = value; + } + + inline void SetPosition(const G4ThreeVector &vector) { + position = vector; + } + + [[nodiscard]] + inline auto GetDepositedEnergy() const -> G4double { + return siliconDepositedEnergy; + } + + [[nodiscard]] + inline auto GetStripNumber() const -> G4int { + return stripNumber; + } + + [[nodiscard]] + inline auto GetSiliconPlaneNumber() const -> G4int { + return siliconPlaneNumber; + } + + [[nodiscard]] + inline auto GetPlaneType() const -> G4int { + return isXPlane; + } + + [[nodiscard]] + inline auto GetPosition() const -> G4ThreeVector { + return position; + } private: - - G4double EdepSil; // Energy deposited on the silicon strip - G4ThreeVector pos; // Position of the hit - G4int NStrip; // Number of the strip - G4int NSilPlane; // Number of the plane - G4int IsXPlane; // Type of the plane (1 X, 0 Y) + G4int stripNumber{0}; // Number of the strip -public: - - inline void AddSil(G4double de) {EdepSil += de;}; - inline void SetNStrip(G4int i) {NStrip = i;}; - inline void SetNSilPlane(G4int i) {NSilPlane = i;}; - inline void SetPlaneType(G4int i) {IsXPlane = i;}; - inline void SetPos(G4ThreeVector xyz){ pos = xyz; } - - inline G4double GetEdepSil() { return EdepSil; }; - inline G4int GetNStrip() { return NStrip; }; - inline G4int GetNSilPlane() { return NSilPlane; }; - inline G4int GetPlaneType() {return IsXPlane;}; - inline G4ThreeVector GetPos() { return pos; }; - + G4int siliconPlaneNumber{0}; // Number of the plane + + G4int isXPlane{0}; // Type of the plane (0: Y, 1: X) + + G4double siliconDepositedEnergy{0.}; // Energy deposited on the silicon strip + + G4ThreeVector position{G4ThreeVector(0., 0., 0.)}; // Position of the hit }; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +using GammaRayTelTrackerHitsCollection = G4THitsCollection; +extern G4ThreadLocal G4Allocator *trackerHitAllocator; -typedef G4THitsCollection GammaRayTelTrackerHitsCollection; - -extern G4ThreadLocal G4Allocator *GammaRayTelTrackerHitAllocator; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline void* GammaRayTelTrackerHit::operator new(size_t) -{ - if (!GammaRayTelTrackerHitAllocator) - GammaRayTelTrackerHitAllocator = new G4Allocator; - return (void*) GammaRayTelTrackerHitAllocator->MallocSingle(); +inline auto GammaRayTelTrackerHit::operator new(size_t) -> void* { + if (trackerHitAllocator == nullptr) { + trackerHitAllocator = new G4Allocator; + } + return (void*) trackerHitAllocator->MallocSingle(); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline void GammaRayTelTrackerHit::operator delete(void* aHit) -{ - GammaRayTelTrackerHitAllocator->FreeSingle((GammaRayTelTrackerHit*) aHit); +inline void GammaRayTelTrackerHit::operator delete(void *hit) { + trackerHitAllocator->FreeSingle((GammaRayTelTrackerHit*) hit); } - #endif - - - - - - - - - diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerSD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerSD.hh index e5d424dc72..bf66331386 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerSD.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerSD.hh @@ -43,43 +43,40 @@ class GammaRayTelDetectorConstruction; class G4HCofThisEvent; class G4Step; + #include "GammaRayTelTrackerHit.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelTrackerSD : public G4VSensitiveDetector -{ +class GammaRayTelTrackerSD: public G4VSensitiveDetector { public: - - GammaRayTelTrackerSD(G4String); - ~GammaRayTelTrackerSD(); - - void Initialize(G4HCofThisEvent*); - G4bool ProcessHits(G4Step* astep,G4TouchableHistory* ROHist); - void EndOfEvent(G4HCofThisEvent*); - void clear(); - void DrawAll(); - void PrintAll(); - + explicit GammaRayTelTrackerSD(G4String name); + + ~GammaRayTelTrackerSD() override; + + void Initialize(G4HCofThisEvent *event) override; + + auto ProcessHits(G4Step *step, G4TouchableHistory *history) -> G4bool override; + + void EndOfEvent(G4HCofThisEvent *collection) override; + + void clear() override; + + void DrawAll() override; + + void PrintAll() override; + private: - - GammaRayTelTrackerHitsCollection* TrackerCollection; - GammaRayTelDetectorConstruction* Detector; + GammaRayTelTrackerHitsCollection *trackerCollection; - G4int* ThitXID; - G4int* ThitYID; - - G4int NbOfTKRLayers; - G4int NbOfTKRStrips; - G4int NbOfTKRChannels; + GammaRayTelDetectorConstruction *detector; + G4int *tkrHitXID; + G4int *tkrHitYID; + + G4int numberOfTKRLayers; + + G4int numberOfTKRStrips; + + G4int numberOfTKRChannels; }; - #endif - - - - - - diff --git a/examples/advanced/gammaray_telescope/macro1.mac b/examples/advanced/gammaray_telescope/macro1.mac index bc089a6ab5..86a9907197 100644 --- a/examples/advanced/gammaray_telescope/macro1.mac +++ b/examples/advanced/gammaray_telescope/macro1.mac @@ -97,5 +97,3 @@ # run 10 events /run/beamOn 10 - - diff --git a/examples/advanced/gammaray_telescope/macro2.mac b/examples/advanced/gammaray_telescope/macro2.mac index 0b58968174..a3c2d01300 100644 --- a/examples/advanced/gammaray_telescope/macro2.mac +++ b/examples/advanced/gammaray_telescope/macro2.mac @@ -96,9 +96,3 @@ #/vis/viewer/flush /run/beamOn 10 - - - - - - diff --git a/examples/advanced/gammaray_telescope/macro3.mac b/examples/advanced/gammaray_telescope/macro3.mac index e91b24d3fa..2f22bcddd6 100644 --- a/examples/advanced/gammaray_telescope/macro3.mac +++ b/examples/advanced/gammaray_telescope/macro3.mac @@ -29,7 +29,7 @@ #/vis/open OGL 600x600-0+0 # # Use this open statement to create a DAWN view: -/vis/open DAWN +/vis/open DAWNFILE # # Use this open statement to create a .heprep file suitable for # viewing in HepRApp: @@ -95,5 +95,3 @@ # run 10 events /run/beamOn 10 - - diff --git a/examples/advanced/gammaray_telescope/macro5.mac b/examples/advanced/gammaray_telescope/macro5.mac index 2b5a96ab97..cdba6f0490 100644 --- a/examples/advanced/gammaray_telescope/macro5.mac +++ b/examples/advanced/gammaray_telescope/macro5.mac @@ -97,5 +97,3 @@ # run 10 events /run/beamOn 10 - - diff --git a/examples/advanced/gammaray_telescope/macro6.mac b/examples/advanced/gammaray_telescope/macro6.mac index e7b81694ff..8adb226c18 100644 --- a/examples/advanced/gammaray_telescope/macro6.mac +++ b/examples/advanced/gammaray_telescope/macro6.mac @@ -103,5 +103,3 @@ # run 10 events /run/beamOn 100 - - diff --git a/examples/advanced/gammaray_telescope/physics.mac b/examples/advanced/gammaray_telescope/physics.mac index 3eb8f19dc4..e95de3e357 100644 --- a/examples/advanced/gammaray_telescope/physics.mac +++ b/examples/advanced/gammaray_telescope/physics.mac @@ -1,8 +1,7 @@ # Definition of the physics processes and models # Define the physics models -/physics/addPhysics LowE_Livermore # Electromagnetic model -/physics/addPhysics HPElastic # Hadronic elastic model with HP -/physics/addPhysics binary # Hadronic inelastic model -/physics/addPhysics binary_ion # Hadronic inelastic model for ions -/physics/addPhysics radioactive_decay # Radioactive decay - +/physics/addPhysics LowE_Livermore # Electromagnetic model +/physics/addPhysics HPElastic # Hadronic elastic model with HP +/physics/addPhysics binary # Hadronic inelastic model +/physics/addPhysics binary_ion # Hadronic inelastic model for ions +/physics/addPhysics radioactive_decay # Radioactive decay diff --git a/examples/advanced/gammaray_telescope/physics_opt4.mac b/examples/advanced/gammaray_telescope/physics_opt4.mac index e801be68a0..d1d9d4a008 100644 --- a/examples/advanced/gammaray_telescope/physics_opt4.mac +++ b/examples/advanced/gammaray_telescope/physics_opt4.mac @@ -1,8 +1,7 @@ # Definition of the physics processes and models # Define the physics models -/physics/addPhysics standard_opt4 # Electromagnetic model -/physics/addPhysics HPElastic # Hadronic elastic model with HP -/physics/addPhysics binary # Hadronic inelastic model -/physics/addPhysics binary_ion # Hadronic inelastic model for ions -/physics/addPhysics radioactive_decay # Radioactive decay - +/physics/addPhysics standard_opt4 # Electromagnetic model +/physics/addPhysics HPElastic # Hadronic elastic model with HP +/physics/addPhysics binary # Hadronic inelastic model +/physics/addPhysics binary_ion # Hadronic inelastic model for ions +/physics/addPhysics radioactive_decay # Radioactive decay diff --git a/examples/advanced/gammaray_telescope/prerunGammaRayTel.mac b/examples/advanced/gammaray_telescope/prerunGammaRayTel.mac index 15038db917..53c1444bfb 100644 --- a/examples/advanced/gammaray_telescope/prerunGammaRayTel.mac +++ b/examples/advanced/gammaray_telescope/prerunGammaRayTel.mac @@ -1,8 +1,6 @@ -# Macro file for the initialization phase of the -# GammaRayTel +# Macro file for the initialization phase of the GammaRayTel # -# Sets some default verbose -# and initializes the graphic. +# Sets some default verbose and initializes the graphic. # /control/verbose 2 /control/saveHistory @@ -13,5 +11,3 @@ /gun/energy 1 GeV /gun/vertexRadius 25. cm /gun/sourceType 2 - - diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelActionInitializer.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelActionInitializer.cc index b85389d2a2..03bf7f09f9 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelActionInitializer.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelActionInitializer.cc @@ -24,37 +24,39 @@ // ******************************************************************** // // -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// ------------------------------------------------------------ +// GEANT 4 class implementation file +// CERN Geneva Switzerland +// +// +// ------------ GammaRayTelActionInitializer ------ +// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000) +// +// ************************************************************ #include "GammaRayTelActionInitializer.hh" #include "GammaRayTelPrimaryGeneratorAction.hh" #include "GammaRayTelEventAction.hh" #include "GammaRayTelRunAction.hh" - #include "G4RunManager.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelActionInitializer::GammaRayTelActionInitializer() : - G4VUserActionInitialization() -{;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void GammaRayTelActionInitializer::Build() const -{ - GammaRayTelRunAction* theRunAction = new GammaRayTelRunAction(); - SetUserAction(new GammaRayTelPrimaryGeneratorAction()); - SetUserAction(theRunAction); - SetUserAction(new GammaRayTelEventAction(theRunAction)); +GammaRayTelActionInitializer::GammaRayTelActionInitializer() : G4VUserActionInitialization() { } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelActionInitializer::BuildForMaster() const -{ - SetUserAction(new GammaRayTelRunAction()); +void GammaRayTelActionInitializer::Build() const { + SetUserAction(new GammaRayTelPrimaryGeneratorAction()); + auto *theRunAction = new GammaRayTelRunAction(); + SetUserAction(theRunAction); + SetUserAction(new GammaRayTelEventAction(theRunAction)); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelActionInitializer::BuildForMaster() const { + SetUserAction(new GammaRayTelRunAction()); +} diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc index fd82c38695..0e99443a27 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc @@ -23,6 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +// // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -35,7 +36,7 @@ // - migrated to G4tools // // 29.05.2003 F.Longo -// - anaphe 5.0.5 compliant +// - Anaphe 5.0.5 compliant // // 18.06.2002 R.Giannitrapani, F.Longo & G.Santin // - new release for Anaphe 4.0.3 @@ -50,196 +51,180 @@ // - Adaptation to AIDA // // ************************************************************ + #include #include -#include "G4RunManager.hh" - #include "GammaRayTelAnalysis.hh" -#include "GammaRayTelDetectorConstruction.hh" #include "GammaRayTelAnalysisMessenger.hh" +#include "GammaRayTelDetectorConstruction.hh" -GammaRayTelAnalysis* GammaRayTelAnalysis::instance = 0; +#include "G4RunManager.hh" -//-------------------------------------------------------------------------------- //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelAnalysis::GammaRayTelAnalysis() - :GammaRayTelDetector(0),histo2DMode("strip") -{ - GammaRayTelDetector = - static_cast - (G4RunManager::GetRunManager()->GetUserDetectorConstruction()); +GammaRayTelAnalysis *GammaRayTelAnalysis::instance{nullptr}; - // Define the messenger and the analysis system - analysisMessenger = new GammaRayTelAnalysisMessenger(this); - histoFileName = "gammaraytel"; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +GammaRayTelAnalysis::GammaRayTelAnalysis() : detector(nullptr), histo2DMode("strip") { + detector = static_cast(G4RunManager::GetRunManager()->GetUserDetectorConstruction()); + + // Define the messenger and the analysis system + analysisMessenger = new GammaRayTelAnalysisMessenger(this); + histogramFileName = "gammaraytel"; } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... GammaRayTelAnalysis::~GammaRayTelAnalysis() { - Finish(); + Finish(); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelAnalysis::Init() -{;} - -void GammaRayTelAnalysis::Finish() -{ - delete analysisMessenger; - analysisMessenger = 0; -} - -GammaRayTelAnalysis* GammaRayTelAnalysis::getInstance() -{ - if (instance == 0) instance = new GammaRayTelAnalysis(); - return instance; +void GammaRayTelAnalysis::Init() { } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelAnalysis::Finish() { + delete analysisMessenger; + analysisMessenger = nullptr; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +auto GammaRayTelAnalysis::getInstance() -> GammaRayTelAnalysis* { + if (instance == nullptr) { + instance = new GammaRayTelAnalysis(); + } + return instance; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + // This function fill the 2d histogram of the XZ positions -void GammaRayTelAnalysis::InsertPositionXZ(double x, double z) -{ - G4AnalysisManager* man = G4AnalysisManager::Instance(); - man->FillH2(1,x,z); +void GammaRayTelAnalysis::InsertPositionXZ(G4double x, G4double z) { + auto *manager = G4AnalysisManager::Instance(); + manager->FillH2(1, x, z); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + // This function fill the 2d histogram of the YZ positions -void GammaRayTelAnalysis::InsertPositionYZ(double y, double z) -{ - G4AnalysisManager* man = G4AnalysisManager::Instance(); - man->FillH2(2,y,z); +void GammaRayTelAnalysis::InsertPositionYZ(G4double y, G4double z) { + auto *manager = G4AnalysisManager::Instance(); + manager->FillH2(2, y, z); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + // This function fill the 1d histogram of the energy released in the last Si plane -void GammaRayTelAnalysis::InsertEnergy(double en) -{ - G4AnalysisManager* man = G4AnalysisManager::Instance(); - man->FillH1(1,en); +void GammaRayTelAnalysis::InsertEnergy(G4double energy) { + auto *manager = G4AnalysisManager::Instance(); + manager->FillH1(1, energy); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + // This function fill the 1d histogram of the hits distribution along the TKR planes -void GammaRayTelAnalysis::InsertHits(int nplane) -{ - G4AnalysisManager* man = G4AnalysisManager::Instance(); - man->FillH1(2,nplane); -} - -void GammaRayTelAnalysis::setNtuple(float E, float p, float x, - float y, float z) -{ - G4AnalysisManager* man = G4AnalysisManager::Instance(); - man->FillNtupleDColumn(0,E); - man->FillNtupleDColumn(1,p); - man->FillNtupleDColumn(2,x); - man->FillNtupleDColumn(3,y); - man->FillNtupleDColumn(4,z); - man->AddNtupleRow(); +void GammaRayTelAnalysis::InsertHits(G4int planeNumber) { + auto *manager = G4AnalysisManager::Instance(); + manager->FillH1(2, planeNumber); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -/* - This member reset the histograms and it is called at the begin - of each run; here we put the inizialization so that the histograms have - always the right dimensions depending from the detector geometry -*/ - -void GammaRayTelAnalysis::BeginOfRun() -{ - G4AnalysisManager* man = G4AnalysisManager::Instance(); - man->SetDefaultFileType("root"); - - // Open an output file - - G4cout << "Opening output file " << histoFileName << " ... "; - man->OpenFile(histoFileName); - man->SetFirstHistoId(1); - G4cout << " done" << G4endl; - - - int Nplane = GammaRayTelDetector->GetNbOfTKRLayers(); - int Nstrip = GammaRayTelDetector->GetNbOfTKRStrips(); - int Ntile = GammaRayTelDetector->GetNbOfTKRTiles(); - double sizexy = GammaRayTelDetector->GetTKRSizeXY(); - double sizez = GammaRayTelDetector->GetTKRSizeZ(); - int N = Nstrip*Ntile; - - // Book1D histograms - //------------------ - - // 1D histogram that store the energy deposition of the - // particle in the last (number 0) TKR X-plane - man->CreateH1("1","Edep in the last X plane (keV)", 100, 50, 200); - - // 1D histogram that store the hits distribution along the TKR X-planes - man->CreateH1("2","Hits dist in TKR X planes",Nplane, 0, Nplane-1); - - // Book 2D histograms - //------------------- - - // 2D histogram that store the position (mm) of the hits (XZ projection) - - if (histo2DMode == "strip") - { - man->CreateH2("1","Tracker Hits XZ (strip,plane)", - N, 0, N-1, - 2*Nplane, 0, Nplane-1); - } - else - { - man->CreateH2("1","Tracker Hits XZ (x,z) in mm", - int(sizexy/5), -sizexy/2, sizexy/2, - int(sizez/5), -sizez/2, sizez/2); - } - - // 2D histogram that store the position (mm) of the hits (YZ projection) - if (histo2DMode == "strip") - { - man->CreateH2("2","Tracker Hits YZ (strip,plane)", - N, 0, N-1, - 2*Nplane, 0, Nplane-1); - } - else - { - man->CreateH2("2","Tracker Hits YZ (x,z) in mm", - int(sizexy/5), -sizexy/2, sizexy/2, - int(sizez/5), -sizez/2, sizez/2); - } - - - // Book Ntuples (energy / plane/ x / y / z) - //------------------------------------------ - man->CreateNtuple("1","Track ntuple"); - man->CreateNtupleDColumn("energy"); - man->CreateNtupleDColumn("plane"); // can I use Int values? - man->CreateNtupleDColumn("x"); // can I use Int values? - man->CreateNtupleDColumn("y"); // can I use Int values? - man->CreateNtupleDColumn("z"); // can I use Int values? - man->FinishNtuple(); +void GammaRayTelAnalysis::setNtuple(G4double energy, G4int planeNumber, G4double x, G4double y, G4double z) { + auto *manager = G4AnalysisManager::Instance(); + manager->FillNtupleDColumn(0, energy); + manager->FillNtupleDColumn(1, planeNumber); + manager->FillNtupleDColumn(2, x); + manager->FillNtupleDColumn(3, y); + manager->FillNtupleDColumn(4, z); + manager->AddNtupleRow(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... /* - This member is called at the end of each run -*/ -void GammaRayTelAnalysis::EndOfRun() -{ - //Save histograms - G4AnalysisManager* man = G4AnalysisManager::Instance(); - man->Write(); - man->CloseFile(); + This member reset the histograms and it is called at the begin of each run; + here we put the inizialization so that the histograms have + always the right dimensions depending from the detector geometry + */ +void GammaRayTelAnalysis::BeginOfRun() { + auto *manager = G4AnalysisManager::Instance(); + manager->SetDefaultFileType("root"); + + // Open an output file + + G4cout << "Opening output file " << histogramFileName << " ... "; + manager->OpenFile(histogramFileName); + manager->SetFirstHistoId(1); + G4cout << " done" << G4endl; + + auto Nplane = detector->GetNbOfTKRLayers(); + auto numberOfStrips = detector->GetNbOfTKRStrips(); + auto numberOfTiles = detector->GetNbOfTKRTiles(); + auto sizeXY = detector->GetTKRSizeXY(); + auto sizeZ = detector->GetTKRSizeZ(); + auto N = numberOfStrips * numberOfTiles; + + // Book 1D histograms + //------------------- + + constexpr auto NUMBER_OF_BINS{100}; + constexpr auto LOWER_BOUND{50}; + constexpr auto UPPER_BOUND{200}; + + // 1D histogram that store the energy deposition of the particle in the last (number 0) TKR X-plane + manager->CreateH1("1", "Deposited energy in the last X plane (keV)", NUMBER_OF_BINS, LOWER_BOUND, UPPER_BOUND); + + // 1D histogram that store the hits distribution along the TKR X-planes + manager->CreateH1("2", "Hits distribution in TKR X planes", Nplane, 0, Nplane - 1); + + // Book 2D histograms + //------------------- + + // 2D histogram that store the position (mm) of the hits (XZ projection) + + if (histo2DMode == "strip") { + manager->CreateH2("1", "Tracker hits XZ (strip, plane)", N, 0, N - 1, 2 * Nplane, 0, Nplane - 1); + } else { + manager->CreateH2("1", "Tracker hits XZ (x, z) in mm", G4int(sizeXY / 5), -sizeXY / 2, sizeXY / 2, G4int(sizeZ / 5), -sizeZ / 2, sizeZ / 2); + } + + // 2D histogram that store the position (mm) of the hits (YZ projection) + if (histo2DMode == "strip") { + manager->CreateH2("2", "Tracker hits YZ (strip, plane)", N, 0, N - 1, 2 * Nplane, 0, Nplane - 1); + } else { + manager->CreateH2("2", "Tracker hits YZ (x, z) in mm", G4int(sizeXY / 5), -sizeXY / 2, sizeXY / 2, G4int(sizeZ / 5), -sizeZ / 2, sizeZ / 2); + } + + // Book n-tuple (energy, plane, x, y, z) + //------------------------------------------ + manager->CreateNtuple("1", "Track n-tuple"); + manager->CreateNtupleDColumn("energy"); + manager->CreateNtupleDColumn("plane"); + manager->CreateNtupleDColumn("x"); + manager->CreateNtupleDColumn("y"); + manager->CreateNtupleDColumn("z"); + manager->FinishNtuple(); } -/* This member is called at the end of every event */ - -void GammaRayTelAnalysis::EndOfEvent(G4int /* flag */ ) -{;} - - - - - +/* + This member is called at the end of each run + */ +void GammaRayTelAnalysis::EndOfRun() { + // Save histograms + auto *manager = G4AnalysisManager::Instance(); + manager->Write(); + manager->CloseFile(); +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +// This member is called at the end of every event +void GammaRayTelAnalysis::EndOfEvent(G4int /* flag */) { +} diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc index f51bc09d45..2d4fbf2d37 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc @@ -24,7 +24,6 @@ // ******************************************************************** // // -// // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -43,44 +42,31 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelAnalysisMessenger::GammaRayTelAnalysisMessenger(GammaRayTelAnalysis* analysis) - :gammaRayTelAnalysis(analysis) +GammaRayTelAnalysisMessenger::GammaRayTelAnalysisMessenger(GammaRayTelAnalysis *analysis) : gammaRayTelAnalysis(analysis) { + gammaRayTelAnalysisDir = new G4UIdirectory("/analysis/"); + gammaRayTelAnalysisDir->SetGuidance("GammaRayTel analysis control."); -{ - gammaRayTelAnalysisDir = new G4UIdirectory("/analysis/"); - gammaRayTelAnalysisDir->SetGuidance("GammaRayTel analysis control."); - - Histo2DModeCmd = new G4UIcmdWithAString("/analysis/histo2dMode",this); - Histo2DModeCmd->SetGuidance("Select the mode for the 2d histograms."); - Histo2DModeCmd->SetGuidance("Choice: position, strip(default)"); - Histo2DModeCmd->SetGuidance("position -> the histo is filled with true positions in mm"); - Histo2DModeCmd->SetGuidance("strip -> the histo is filled with the number of the strip and the plane"); - Histo2DModeCmd->SetParameterName("choice",true); - Histo2DModeCmd->SetDefaultValue("strip"); - Histo2DModeCmd->SetCandidates("position strip"); - Histo2DModeCmd->AvailableForStates(G4State_Idle); + histo2DModeCmd = new G4UIcmdWithAString("/analysis/histo2dMode", this); + histo2DModeCmd->SetGuidance("Select the mode for the 2d histograms."); + histo2DModeCmd->SetGuidance("Choice: position, strip(default)"); + histo2DModeCmd->SetGuidance("position -> the histogram is filled with true positions in mm"); + histo2DModeCmd->SetGuidance("strip -> the histogram is filled with the number of the strip and the plane"); + histo2DModeCmd->SetParameterName("choice", true); + histo2DModeCmd->SetDefaultValue("strip"); + histo2DModeCmd->SetCandidates("position strip"); + histo2DModeCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelAnalysisMessenger::~GammaRayTelAnalysisMessenger() -{ - delete Histo2DModeCmd; +GammaRayTelAnalysisMessenger::~GammaRayTelAnalysisMessenger() { + delete histo2DModeCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelAnalysisMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - - if( command == Histo2DModeCmd ) - { gammaRayTelAnalysis->SetHisto2DMode(newValue);} - +void GammaRayTelAnalysisMessenger::SetNewValue(G4UIcommand *command, G4String newValue) { + if (command == histo2DModeCmd) { + gammaRayTelAnalysis->SetHisto2DMode(newValue); + } } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc index 4d4b77cd6a..ba7c7c8e46 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc @@ -34,75 +34,59 @@ // // ************************************************************ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - #include "GammaRayTelAnticoincidenceHit.hh" -G4ThreadLocal G4Allocator *GammaRayTelAnticoincidenceHitAllocator = 0; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4ThreadLocal G4Allocator *anticoincidenceHitAllocator{nullptr}; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelAnticoincidenceHit::GammaRayTelAnticoincidenceHit() -{ - EdepACD = 0.; - ACDTileNumber = 0; - IsACDPlane = 0; - pos = G4ThreeVector(0.,0.,0.); +GammaRayTelAnticoincidenceHit::GammaRayTelAnticoincidenceHit() { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelAnticoincidenceHit::~GammaRayTelAnticoincidenceHit() -{;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -GammaRayTelAnticoincidenceHit::GammaRayTelAnticoincidenceHit(const GammaRayTelAnticoincidenceHit& right) - : G4VHit() -{ - EdepACD = right.EdepACD; - ACDTileNumber = right.ACDTileNumber; - IsACDPlane = right.IsACDPlane; - pos = right.pos; +GammaRayTelAnticoincidenceHit::~GammaRayTelAnticoincidenceHit() { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -const GammaRayTelAnticoincidenceHit& GammaRayTelAnticoincidenceHit::operator=(const GammaRayTelAnticoincidenceHit& right) -{ - EdepACD = right.EdepACD; - ACDTileNumber = right.ACDTileNumber; - IsACDPlane = right.IsACDPlane; - pos = right.pos; - return *this; +GammaRayTelAnticoincidenceHit::GammaRayTelAnticoincidenceHit(const GammaRayTelAnticoincidenceHit &right) : + acdTileNumber(right.acdTileNumber), + isACDPlane(right.isACDPlane), + acdDepositedEnergy(right.acdDepositedEnergy), + position(right.position) { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4bool GammaRayTelAnticoincidenceHit::operator==(const GammaRayTelAnticoincidenceHit& right) const -{ - return((EdepACD==right.EdepACD)&&(ACDTileNumber==right.ACDTileNumber)&&(IsACDPlane==right.IsACDPlane)&& (pos==right.pos)); +auto GammaRayTelAnticoincidenceHit::operator=(const GammaRayTelAnticoincidenceHit &right) -> const GammaRayTelAnticoincidenceHit& { + acdTileNumber = right.acdTileNumber; + isACDPlane = right.isACDPlane; + acdDepositedEnergy = right.acdDepositedEnergy; + position = right.position; + + return *this; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelAnticoincidenceHit::Draw() -{;} +auto GammaRayTelAnticoincidenceHit::operator==(const GammaRayTelAnticoincidenceHit &right) const -> G4bool { + return ( + (acdTileNumber == right.acdTileNumber) && + (isACDPlane == right.isACDPlane) && + (acdDepositedEnergy == right.acdDepositedEnergy) && + (position == right.position) + ); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelAnticoincidenceHit::Print() -{;} +void GammaRayTelAnticoincidenceHit::Draw() { +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - - - - - +void GammaRayTelAnticoincidenceHit::Print() { +} diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceSD.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceSD.cc index 5df33527a5..0459d62735 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceSD.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceSD.cc @@ -33,204 +33,145 @@ // by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000) // // ************************************************************ -#include "G4RunManager.hh" + #include "GammaRayTelAnticoincidenceSD.hh" #include "GammaRayTelAnticoincidenceHit.hh" #include "GammaRayTelDetectorConstruction.hh" -#include "G4SystemOfUnits.hh" -#include "G4VPhysicalVolume.hh" -#include "G4Step.hh" -#include "G4VTouchable.hh" -#include "G4TouchableHistory.hh" -#include "G4SDManager.hh" #include "G4ios.hh" +#include "G4RunManager.hh" +#include "G4SDManager.hh" +#include "G4Step.hh" +#include "G4SystemOfUnits.hh" +#include "G4TouchableHistory.hh" +#include "G4VPhysicalVolume.hh" +#include "G4VTouchable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelAnticoincidenceSD::GammaRayTelAnticoincidenceSD(G4String name) -:G4VSensitiveDetector(name) -{ - G4RunManager* runManager = G4RunManager::GetRunManager(); - Detector = - (GammaRayTelDetectorConstruction*)(runManager->GetUserDetectorConstruction()); - - NbOfACDLateralTiles = Detector->GetNbOfACDLateralTiles(); - NbOfACDTopTiles = Detector->GetNbOfACDTopTiles(); +GammaRayTelAnticoincidenceSD::GammaRayTelAnticoincidenceSD(G4String name) : G4VSensitiveDetector(name) { + auto *runManager = G4RunManager::GetRunManager(); + detector = (GammaRayTelDetectorConstruction*) (runManager->GetUserDetectorConstruction()); - G4cout << NbOfACDLateralTiles << " LAT " << G4endl; - G4cout << NbOfACDTopTiles << " TOP " << G4endl; - - HitLateralID = new G4int[NbOfACDLateralTiles]; - HitTopID = new G4int[NbOfACDTopTiles]; - collectionName.insert("AnticoincidenceCollection"); + numberOfACDLateralTiles = detector->GetNbOfACDLateralTiles(); + numberOfACDTopTiles = detector->GetNbOfACDTopTiles(); + + G4cout << numberOfACDLateralTiles << " LATERAL " << G4endl; + G4cout << numberOfACDTopTiles << " TOP " << G4endl; + + hitLateralID = new G4int[numberOfACDLateralTiles]; + hitTopID = new G4int[numberOfACDTopTiles]; + collectionName.insert("AnticoincidenceCollection"); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelAnticoincidenceSD::~GammaRayTelAnticoincidenceSD() -{ - delete [] HitLateralID; - delete [] HitTopID; +GammaRayTelAnticoincidenceSD::~GammaRayTelAnticoincidenceSD() { + delete[] hitLateralID; + delete[] hitTopID; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelAnticoincidenceSD::Initialize(G4HCofThisEvent*) -{ - AnticoincidenceCollection = new GammaRayTelAnticoincidenceHitsCollection - (SensitiveDetectorName,collectionName[0]); - for (G4int i=0;iGetTotalEnergyDeposit(); - if ((edep/keV == 0.)) return false; - - // This TouchableHistory is used to obtain the physical volume - // of the hit - G4TouchableHistory* theTouchable - = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); - - G4VPhysicalVolume* acd_tile = theTouchable->GetVolume(); - - G4int ACDTileNumber=acd_tile->GetCopyNo(); - G4String ACDTileName = acd_tile->GetName(); - - // G4cout << ACDTileName << " " << edep/keV << G4endl; - - if (ACDTileName == "ACT" ) - // The hit is on an top ACD tile (ACDType 0) - { - // This is a new hit - if (HitTopID[ACDTileNumber]==-1) - { - GammaRayTelAnticoincidenceHit* - AnticoincidenceHit = new GammaRayTelAnticoincidenceHit; - AnticoincidenceHit->SetACDType(0); - AnticoincidenceHit->AddEnergy(edep); - AnticoincidenceHit->SetPos(aStep->GetPreStepPoint()->GetPosition()); - AnticoincidenceHit->SetACDTileNumber(ACDTileNumber); - HitTopID[ACDTileNumber] = - AnticoincidenceCollection->insert(AnticoincidenceHit) -1; - } - else // This is not new - { - (*AnticoincidenceCollection) - [HitTopID[ACDTileNumber]]->AddEnergy(edep); - } - } - - if (ACDTileName == "ACL1") - // The hit is on an lateral (left-right) ACD tile (ACDType 1) - { - // This is a new hit - if (HitLateralID[ACDTileNumber]==-1) - { - GammaRayTelAnticoincidenceHit* - AnticoincidenceHit = new GammaRayTelAnticoincidenceHit; - AnticoincidenceHit->SetACDType(1); - AnticoincidenceHit->AddEnergy(edep); - AnticoincidenceHit->SetPos(aStep->GetPreStepPoint()->GetPosition()); - AnticoincidenceHit->SetACDTileNumber(ACDTileNumber); - HitLateralID[ACDTileNumber] = - AnticoincidenceCollection->insert(AnticoincidenceHit) -1; - } - else // This is not new - { - (*AnticoincidenceCollection) - [HitLateralID[ACDTileNumber]]->AddEnergy(edep); - } +void GammaRayTelAnticoincidenceSD::Initialize(G4HCofThisEvent*) { + anticoincidenceCollection = new GammaRayTelAnticoincidenceHitsCollection(SensitiveDetectorName, collectionName[0]); + for (auto i = 0; i < numberOfACDLateralTiles; i++) { + hitLateralID[i] = -1; } - if (ACDTileName == "ACL2") - // The hit is on an lateral (rear - front) ACD tile (ACDType 2) - { - // This is a new hit - if (HitLateralID[ACDTileNumber]==-1) - { - GammaRayTelAnticoincidenceHit* - AnticoincidenceHit = new GammaRayTelAnticoincidenceHit; - AnticoincidenceHit->SetACDType(2); - AnticoincidenceHit->AddEnergy(edep); - AnticoincidenceHit->SetPos(aStep->GetPreStepPoint()->GetPosition()); - AnticoincidenceHit->SetACDTileNumber(ACDTileNumber); - HitLateralID[ACDTileNumber] = - AnticoincidenceCollection->insert(AnticoincidenceHit) -1; - } - else // This is not new - { - (*AnticoincidenceCollection) - [HitLateralID[ACDTileNumber]]->AddEnergy(edep); - } + for (auto j = 0; j < numberOfACDTopTiles; j++) { + hitTopID[j] = -1; } - return true; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelAnticoincidenceSD::EndOfEvent(G4HCofThisEvent* HCE) -{ - static G4int HCID = -1; - if(HCID<0) - { - HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); +auto GammaRayTelAnticoincidenceSD::ProcessHits(G4Step *step, G4TouchableHistory*) -> G4bool { + auto depositedEnergy = step->GetTotalEnergyDeposit(); + if (depositedEnergy / keV == 0.) { + return false; } - HCE->AddHitsCollection(HCID,AnticoincidenceCollection); - for (G4int i=0;iGetPreStepPoint()->GetTouchable()); + auto *acdTile = theTouchable->GetVolume(); + auto acdTileNumber = acdTile->GetCopyNo(); + auto acdTileName = acdTile->GetName(); + + // G4cout << acdTileName << " " << depositedEnergy / keV << G4endl; + + if (acdTileName == "ACT") { // The hit is on a top ACD tile (ACDType: 0) + if (hitTopID[acdTileNumber] == -1) { // This is a new hit + auto *anticoincidenceHit = new GammaRayTelAnticoincidenceHit; + anticoincidenceHit->SetACDType(0); + anticoincidenceHit->AddEnergy(depositedEnergy); + anticoincidenceHit->SetPosition(step->GetPreStepPoint()->GetPosition()); + anticoincidenceHit->SetACDTileNumber(acdTileNumber); + hitTopID[acdTileNumber] = anticoincidenceCollection->insert(anticoincidenceHit) - 1; + } else { // This is not new + (*anticoincidenceCollection)[hitTopID[acdTileNumber]]->AddEnergy(depositedEnergy); + } + } + + if (acdTileName == "ACL1") { // The hit is on a lateral (left-right) ACD tile (ACDType: 1) + if (hitLateralID[acdTileNumber] == -1) { // This is a new hit + auto *anticoincidenceHit = new GammaRayTelAnticoincidenceHit; + anticoincidenceHit->SetACDType(1); + anticoincidenceHit->AddEnergy(depositedEnergy); + anticoincidenceHit->SetPosition(step->GetPreStepPoint()->GetPosition()); + anticoincidenceHit->SetACDTileNumber(acdTileNumber); + hitLateralID[acdTileNumber] = anticoincidenceCollection->insert(anticoincidenceHit) - 1; + } else { // This is not new + (*anticoincidenceCollection)[hitLateralID[acdTileNumber]]->AddEnergy(depositedEnergy); + } + } + + if (acdTileName == "ACL2") { // The hit is on a lateral (rear-front) ACD tile (ACDType: 2) + if (hitLateralID[acdTileNumber] == -1) { // This is a new hit + auto *anticoincidenceHit = new GammaRayTelAnticoincidenceHit; + anticoincidenceHit->SetACDType(2); + anticoincidenceHit->AddEnergy(depositedEnergy); + anticoincidenceHit->SetPosition(step->GetPreStepPoint()->GetPosition()); + anticoincidenceHit->SetACDTileNumber(acdTileNumber); + hitLateralID[acdTileNumber] = anticoincidenceCollection->insert(anticoincidenceHit) - 1; + } else { // This is not new + (*anticoincidenceCollection)[hitLateralID[acdTileNumber]]->AddEnergy(depositedEnergy); + } + } + + return true; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelAnticoincidenceSD::clear() -{} +void GammaRayTelAnticoincidenceSD::EndOfEvent(G4HCofThisEvent *collection) { + static G4int collectionIdentifier = -1; + if (collectionIdentifier < 0) { + collectionIdentifier = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); + } + collection->AddHitsCollection(collectionIdentifier, anticoincidenceCollection); + + for (auto i = 0; i < numberOfACDLateralTiles; i++) { + hitLateralID[i] = -1; + } + + for (auto j = 0; j < numberOfACDTopTiles; j++) { + hitTopID[j] = -1; + } +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelAnticoincidenceSD::DrawAll() -{} +void GammaRayTelAnticoincidenceSD::clear() { +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelAnticoincidenceSD::PrintAll() -{} +void GammaRayTelAnticoincidenceSD::DrawAll() { +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - - - - - - - - +void GammaRayTelAnticoincidenceSD::PrintAll() { +} diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterHit.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterHit.cc index 6db8543690..8ebf8e2915 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterHit.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterHit.cc @@ -34,78 +34,62 @@ // // ************************************************************ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - #include "GammaRayTelCalorimeterHit.hh" -G4ThreadLocal G4Allocator *GammaRayTelCalorimeterHitAllocator = 0; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4ThreadLocal G4Allocator *calorimeterHitAllocator{nullptr}; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelCalorimeterHit::GammaRayTelCalorimeterHit() -{ - EdepCAL = 0.; - CALBarNumber = 0; - CALPlaneNumber = 0; - IsCALPlane = 0; - pos = G4ThreeVector(0.,0.,0.); +GammaRayTelCalorimeterHit::GammaRayTelCalorimeterHit() { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelCalorimeterHit::~GammaRayTelCalorimeterHit() -{;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -GammaRayTelCalorimeterHit::GammaRayTelCalorimeterHit(const GammaRayTelCalorimeterHit& right) - :G4VHit() -{ - EdepCAL = right.EdepCAL; - CALBarNumber = right.CALBarNumber; - CALPlaneNumber = right.CALPlaneNumber; - IsCALPlane = right.IsCALPlane; - pos = right.pos; +GammaRayTelCalorimeterHit::~GammaRayTelCalorimeterHit() { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -const GammaRayTelCalorimeterHit& GammaRayTelCalorimeterHit::operator=(const GammaRayTelCalorimeterHit& right) -{ - EdepCAL = right.EdepCAL; - CALBarNumber = right.CALBarNumber; - CALPlaneNumber = right.CALPlaneNumber; - IsCALPlane = right.IsCALPlane; - pos = right.pos; - return *this; +GammaRayTelCalorimeterHit::GammaRayTelCalorimeterHit(const GammaRayTelCalorimeterHit &right) : + calBarNumber(right.calBarNumber), + calPlaneNumber(right.calPlaneNumber), + isCALPlane(right.isCALPlane), + calDepositedEnergy(right.calDepositedEnergy), + position(right.position) { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4bool GammaRayTelCalorimeterHit::operator==(const GammaRayTelCalorimeterHit& right) const -{ - return((EdepCAL==right.EdepCAL)&&(CALBarNumber==right.CALBarNumber)&&(CALPlaneNumber==right.CALPlaneNumber)&&(IsCALPlane==right.IsCALPlane)&& (pos==right.pos)); +auto GammaRayTelCalorimeterHit::operator=(const GammaRayTelCalorimeterHit &right) -> const GammaRayTelCalorimeterHit& { + calBarNumber = right.calBarNumber; + calPlaneNumber = right.calPlaneNumber; + isCALPlane = right.isCALPlane; + calDepositedEnergy = right.calDepositedEnergy; + position = right.position; + + return *this; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelCalorimeterHit::Draw() -{;} +auto GammaRayTelCalorimeterHit::operator==(const GammaRayTelCalorimeterHit &right) const -> G4bool { + return ( + (calBarNumber == right.calBarNumber) && + (calPlaneNumber == right.calPlaneNumber) && + (isCALPlane == right.isCALPlane) && + (calDepositedEnergy == right.calDepositedEnergy) && + (position == right.position) + ); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelCalorimeterHit::Print() -{;} +void GammaRayTelCalorimeterHit::Draw() { +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - - - - - +void GammaRayTelCalorimeterHit::Print() { +} diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc index e1766b16ad..4b530b266b 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc @@ -33,6 +33,7 @@ // by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000) // // ************************************************************ + #include "G4RunManager.hh" #include "GammaRayTelCalorimeterSD.hh" #include "GammaRayTelCalorimeterHit.hh" @@ -48,172 +49,121 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelCalorimeterSD::GammaRayTelCalorimeterSD(G4String name):G4VSensitiveDetector(name) -{ - G4RunManager* runManager = G4RunManager::GetRunManager(); - Detector = - (GammaRayTelDetectorConstruction*)(runManager->GetUserDetectorConstruction()); - - NbOfCALBars = Detector->GetNbOfCALBars(); - NbOfCALLayers = Detector->GetNbOfCALLayers(); +GammaRayTelCalorimeterSD::GammaRayTelCalorimeterSD(G4String name) : G4VSensitiveDetector(name) { + auto *runManager = G4RunManager::GetRunManager(); + detector = (GammaRayTelDetectorConstruction*) (runManager->GetUserDetectorConstruction()); - //G4cout << NbOfCALBars << " bars " << G4endl; - //G4cout << NbOfCALLayers << " layers " << G4endl; - - NbOfCALChannels = NbOfCALBars*NbOfCALLayers; - - ChitXID = new G4int[NbOfCALChannels]; - ChitYID = new G4int[NbOfCALChannels]; - collectionName.insert("CalorimeterCollection"); + numberOfCALBars = detector->GetNbOfCALBars(); + numberOfCALLayers = detector->GetNbOfCALLayers(); + + // G4cout << NbOfCALBars << " bars " << G4endl; + // G4cout << NbOfCALLayers << " layers " << G4endl; + + numberOfCALChannels = numberOfCALBars * numberOfCALLayers; + + calHitXID = new G4int[numberOfCALChannels]; + calHitYID = new G4int[numberOfCALChannels]; + collectionName.insert("CalorimeterCollection"); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelCalorimeterSD::~GammaRayTelCalorimeterSD() -{ - delete [] ChitXID; - delete [] ChitYID; +GammaRayTelCalorimeterSD::~GammaRayTelCalorimeterSD() { + delete[] calHitXID; + delete[] calHitYID; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelCalorimeterSD::Initialize(G4HCofThisEvent*) -{ - CalorimeterCollection = new GammaRayTelCalorimeterHitsCollection - (SensitiveDetectorName,collectionName[0]); - for (G4int i=0;iGetTotalEnergyDeposit(); - if (edep == 0.) return false; - - // This TouchableHistory is used to obtain the physical volume - // of the hit - G4TouchableHistory* theTouchable - = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); - - G4VPhysicalVolume* cal_bar = theTouchable->GetVolume(); - G4VPhysicalVolume* cal_plane = theTouchable->GetVolume(1); - - G4int CALBarNumber=cal_bar->GetCopyNo(); - G4String CALBarName = cal_bar->GetName(); - - G4int PlaneNumber = 0; - PlaneNumber=cal_plane->GetCopyNo(); - G4String PlaneName = cal_plane->GetName(); - - - G4int NChannel = 0; - - NChannel = PlaneNumber * NbOfCALBars + CALBarNumber; - - if (PlaneName == "CALLayerX" ) - - // The hit is on an X CsI plane - - { - // This is a new hit - if (ChitXID[NChannel]==-1) - { - GammaRayTelCalorimeterHit* CalorimeterHit = new GammaRayTelCalorimeterHit; - CalorimeterHit->SetCALType(1); - CalorimeterHit->AddEnergy(edep); - CalorimeterHit->SetPos(aStep->GetPreStepPoint()->GetPosition()); - CalorimeterHit->SetCALPlaneNumber(PlaneNumber); - CalorimeterHit->SetCALBarNumber(CALBarNumber); - ChitXID[NChannel] = - CalorimeterCollection->insert(CalorimeterHit) -1; +void GammaRayTelCalorimeterSD::Initialize(G4HCofThisEvent*) { + calorimeterCollection = new GammaRayTelCalorimeterHitsCollection(SensitiveDetectorName, collectionName[0]); + for (auto i = 0; i < numberOfCALChannels; i++) { + calHitXID[i] = -1; + calHitYID[i] = -1; } - else // This is not new - { - (*CalorimeterCollection) - [ChitXID[NChannel]]->AddEnergy(edep); - } - } - - if (PlaneName == "CALLayerY") - // The hit is on an Y CsI plane - { - // This is a new hit - if (ChitYID[NChannel]==-1) - { - GammaRayTelCalorimeterHit* CalorimeterHit - = new GammaRayTelCalorimeterHit; - CalorimeterHit->SetCALType(0); - CalorimeterHit->AddEnergy(edep); - CalorimeterHit->SetPos(aStep->GetPreStepPoint()->GetPosition()); - CalorimeterHit->SetCALPlaneNumber(PlaneNumber); - CalorimeterHit->SetCALBarNumber(CALBarNumber); - ChitYID[NChannel] = - CalorimeterCollection->insert(CalorimeterHit)-1; - } - else // This is not new - { - (*CalorimeterCollection) - [ChitYID[NChannel]]->AddEnergy(edep); - } - } - - return true; } - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelCalorimeterSD::EndOfEvent(G4HCofThisEvent* HCE) -{ - static G4int HCID = -1; - if(HCID<0) - { - HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); - } - HCE->AddHitsCollection(HCID,CalorimeterCollection); +auto GammaRayTelCalorimeterSD::ProcessHits(G4Step *step, G4TouchableHistory*) -> G4bool { + G4double depositedEnergy = 0.; + depositedEnergy = step->GetTotalEnergyDeposit(); + if (depositedEnergy == 0.) { + return false; + } - for (G4int i=0;iGetPreStepPoint()->GetTouchable()); + auto *calorimeterBar = theTouchable->GetVolume(); + auto *calorimeterPlane = theTouchable->GetVolume(1); + auto calorimeterBarNumber = calorimeterBar->GetCopyNo(); + auto calorimeterBarName = calorimeterBar->GetName(); + + G4int planeNumber{0}; + planeNumber = calorimeterPlane->GetCopyNo(); + + auto planeName = calorimeterPlane->GetName(); + + G4int NChannel = 0; + NChannel = planeNumber * numberOfCALBars + calorimeterBarNumber; + + if (planeName == "CALLayerX") { // The hit is on a X CsI (cesium iodide) plane + if (calHitXID[NChannel] == -1) { // This is a new hit + auto *calorimeterHit = new GammaRayTelCalorimeterHit; + calorimeterHit->SetCALType(1); + calorimeterHit->AddEnergy(depositedEnergy); + calorimeterHit->SetPosition(step->GetPreStepPoint()->GetPosition()); + calorimeterHit->SetCALPlaneNumber(planeNumber); + calorimeterHit->SetCALBarNumber(calorimeterBarNumber); + calHitXID[NChannel] = calorimeterCollection->insert(calorimeterHit) - 1; + } else { // This is not new + (*calorimeterCollection)[calHitXID[NChannel]]->AddEnergy(depositedEnergy); + } + } + + if (planeName == "CALLayerY") { // The hit is on an Y CsI (cesium iodide) plane + if (calHitYID[NChannel] == -1) { // This is a new hit + auto *calorimeterHit = new GammaRayTelCalorimeterHit; + calorimeterHit->SetCALType(0); + calorimeterHit->AddEnergy(depositedEnergy); + calorimeterHit->SetPosition(step->GetPreStepPoint()->GetPosition()); + calorimeterHit->SetCALPlaneNumber(planeNumber); + calorimeterHit->SetCALBarNumber(calorimeterBarNumber); + calHitYID[NChannel] = calorimeterCollection->insert(calorimeterHit) - 1; + } else { // This is not new + (*calorimeterCollection)[calHitYID[NChannel]]->AddEnergy(depositedEnergy); + } + } + + return true; } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelCalorimeterSD::EndOfEvent(G4HCofThisEvent *HCE) { + static G4int collectionIdentifier = -1; + if (collectionIdentifier < 0) { + collectionIdentifier = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); + } + HCE->AddHitsCollection(collectionIdentifier, calorimeterCollection); + + for (auto i = 0; i < numberOfCALChannels; i++) { + calHitXID[i] = -1; + calHitYID[i] = -1; + } +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelCalorimeterSD::clear() -{} +void GammaRayTelCalorimeterSD::clear() { +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelCalorimeterSD::DrawAll() -{} +void GammaRayTelCalorimeterSD::DrawAll() { +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelCalorimeterSD::PrintAll() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - - - - - - - - - +void GammaRayTelCalorimeterSD::PrintAll() { +} diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc index a4cb957142..5c6cbf7cff 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc @@ -33,1003 +33,721 @@ // by F.Longo, R.Giannitrapani & G.Santin (13 nov 2000) // // ************************************************************ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "GammaRayTelDetectorConstruction.hh" -#include "GammaRayTelDetectorMessenger.hh" - -#include "GammaRayTelTrackerSD.hh" #include "GammaRayTelAnticoincidenceSD.hh" #include "GammaRayTelCalorimeterSD.hh" +#include "GammaRayTelDetectorConstruction.hh" +#include "GammaRayTelDetectorMessenger.hh" +#include "GammaRayTelTrackerSD.hh" -#include "G4PhysicalConstants.hh" -#include "G4SystemOfUnits.hh" -#include "G4Material.hh" +#include "G4AutoDelete.hh" #include "G4Box.hh" +#include "G4Colour.hh" +#include "G4FieldManager.hh" +#include "G4GlobalMagFieldMessenger.hh" #include "G4LogicalVolume.hh" +#include "G4Material.hh" +#include "G4PhysicalConstants.hh" #include "G4PVPlacement.hh" #include "G4PVReplica.hh" -#include "G4UniformMagField.hh" -#include "G4FieldManager.hh" -#include "G4TransportationManager.hh" -#include "G4SDManager.hh" -#include "G4RunManager.hh" -#include "G4GlobalMagFieldMessenger.hh" -#include "G4AutoDelete.hh" -#include "G4VisAttributes.hh" -#include "G4Colour.hh" -#include "G4UImanager.hh" - - #include "G4RegionStore.hh" - -G4ThreadLocal G4GlobalMagFieldMessenger* - GammaRayTelDetectorConstruction::fMagFieldMessenger = 0; +#include "G4RunManager.hh" +#include "G4SDManager.hh" +#include "G4SystemOfUnits.hh" +#include "G4TransportationManager.hh" +#include "G4UImanager.hh" +#include "G4UniformMagField.hh" +#include "G4VisAttributes.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +G4ThreadLocal G4GlobalMagFieldMessenger *GammaRayTelDetectorConstruction::fMagFieldMessenger = nullptr; + GammaRayTelDetectorConstruction::GammaRayTelDetectorConstruction() - :solidWorld(0),logicWorld(0),physiWorld(0), - solidPayload(0),logicPayload(0),physiPayload(0), - solidTKR(0),logicTKR(0),physiTKR(0), - solidCAL(0),logicCAL(0),physiCAL(0), - solidACT(0),logicACT(0),physiACT(0), - solidACL1(0),logicACL1(0),physiACL1(0), - solidACL2(0),logicACL2(0),physiACL2(0), - solidTKRDetectorX(0),logicTKRDetectorX(0),physiTKRDetectorX(0), - solidTKRDetectorY(0),logicTKRDetectorY(0),physiTKRDetectorY(0), - solidCALLayerX(0),logicCALLayerX(0),physiCALLayerX(0), - solidCALLayerY(0),logicCALLayerY(0),physiCALLayerY(0), - solidCALDetectorX(0),logicCALDetectorX(0),physiCALDetectorX(0), - solidCALDetectorY(0),logicCALDetectorY(0),physiCALDetectorY(0), - solidPlane(0),logicPlane(0),physiPlane(0), - solidConverter(0),logicConverter(0),physiConverter(0), - logicTKRStripX(0),logicTKRStripY(0) - // aTKRRegion(0), aCALRegion(0) { - // default parameter values of the payload - - ConverterThickness = 300.*micrometer; - TKRSiliconThickness = 400.*micrometer; - TKRSiliconTileXY = 9.*cm; - TKRSiliconPitch = 200.*micrometer; - TKRLayerDistance = 3.*cm; - SiliconGuardRing = 1.5*mm; - TKRViewsDistance = 1.*mm; - NbOfTKRLayers = 15; - NbOfTKRTiles = 4; - CALBarThickness = 1.5*cm; - NbOfCALBars = 12; - NbOfCALLayers = 5; - ACDThickness = 1.*cm; - NbOfACDTopTiles = 1; - NbOfACDLateralTiles = 2; + // Initialize thread-local sensitive detectors + trackerSD.Put(nullptr); + calorimeterSD.Put(nullptr); + anticoincidenceSD.Put(nullptr); - TilesSeparation = 100.*micrometer; - ACDTKRDistance = 5.*cm; - CALTKRDistance = 1.5*cm; - - //Initialize thread-local sensitive detectors - trackerSD.Put(0); - calorimeterSD.Put(0); - anticoincidenceSD.Put(0); - - ComputePayloadParameters(); - - // create commands for interactive definition of the payload - detectorMessenger = new GammaRayTelDetectorMessenger(this); + ComputePayloadParameters(); + // create commands for interactive definition of the payload + detectorMessenger = new GammaRayTelDetectorMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelDetectorConstruction::~GammaRayTelDetectorConstruction() -{ delete detectorMessenger;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4VPhysicalVolume* GammaRayTelDetectorConstruction::Construct() -{ - DefineMaterials(); - return ConstructPayload(); +GammaRayTelDetectorConstruction::~GammaRayTelDetectorConstruction() { + delete detectorMessenger; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelDetectorConstruction::DefineMaterials() -{ - - G4String name, symbol; - G4double a, z, density; - - G4int ncomponents, natoms; - G4double 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.006*g/mole; - G4Element* N = new G4Element(name="Nitrogen" ,symbol="N" , z= 7., a); - - a = 15.99*g/mole; - G4Element* O = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a); - - a = 26.98*g/mole; - G4Element* Alumin = new G4Element(name="Aluminum" ,symbol="Al" , z= 13., a); - - a = 28.09*g/mole; - G4Element* Silicon = new G4Element(name="Silicon", symbol="Si", z=14., a); - - a= 55.845*g/mole; - G4Element* Iron = new G4Element(name="Iron", symbol="Fe", z=26.,a); - - a = 126.904*g/mole; - G4Element* I = new G4Element(name="Iodine" ,symbol="I" , z= 53., a); - - a = 132.905*g/mole; - G4Element* Cs = new G4Element(name="Cesium" ,symbol="Cs" , z= 55., a); - - a = 207.19*g/mole; - G4Element* Lead = new G4Element(name="Lead", symbol="Pb", z=82., a); - - // - // define simple materials - // - - density = 19.3*g/cm3; - a = 183.84*g/mole; - G4Material* W = new G4Material(name="Tungsten", z=74., a, density); - - - // - // define a material from elements. case 1: chemical molecule - // - - density = 1.032*g/cm3; - G4Material* Sci = new G4Material(name="Scintillator", density, ncomponents=2); - Sci->AddElement(C, natoms=9); - Sci->AddElement(H, natoms=10); - - density = 4.53*g/cm3; - G4Material* CsI = new G4Material(name="CesiumIodide", density, ncomponents=2); - CsI->AddElement(Cs, natoms=5); - CsI->AddElement(I, natoms=5); - - // - // 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(N, fractionmass=0.7); - Air->AddElement(O, fractionmass=0.3); - - density = 2.700*g/cm3; - G4Material* Al = new G4Material(name="Aluminum", density, ncomponents=1); - Al->AddElement(Alumin, fractionmass=1.); - - density = 2.333*g/cm3; - G4Material* Si = new G4Material(name="Silicon", density, ncomponents=1); - Si->AddElement(Silicon, fractionmass=1.); - - density = 7.87*g/cm3; - G4Material* Fe = new G4Material(name="Iron", density, ncomponents=1); - Fe->AddElement(Iron, fractionmass=1.); - - density = 11.35*g/cm3; - G4Material* Pb = new G4Material(name="Lead", density, ncomponents=1); - Pb->AddElement(Lead, fractionmass=1.); - - // - // examples of vacuum - // - - 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.01*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); - beam->AddMaterial(Air, fractionmass=1.); - - G4cout << *(G4Material::GetMaterialTable()) << G4endl; - - //default materials of the payload - - ConverterMaterial = W; - defaultMaterial = vacuum; - ACDMaterial = Sci; - CALMaterial = CsI; - TKRMaterial = Si; - +auto GammaRayTelDetectorConstruction::Construct() -> G4VPhysicalVolume* { + DefineMaterials(); + return ConstructPayload(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4VPhysicalVolume* GammaRayTelDetectorConstruction::ConstructPayload() -{ - // complete the Payload parameters definition - ComputePayloadParameters(); - - // - // World - // +void GammaRayTelDetectorConstruction::DefineMaterials() { + G4String name; + G4String symbol; - solidWorld = new G4Box("World", - WorldSizeXY/2,WorldSizeXY/2,WorldSizeZ/2); - - logicWorld = new G4LogicalVolume(solidWorld, - defaultMaterial, - "World"); - - physiWorld = new G4PVPlacement(0,G4ThreeVector(),"World",logicWorld, - 0,false,0); - - // - // Payload - // - - /* solidPayload=0; logicPayload=0; physiPayload=0; - solidTKR=0;logicTKR=0;physiTKR=0; - solidCAL=0;logicCAL=0;physiCAL=0; - solidACT=0;logicACT=0;physiACT=0; - solidACL1=0;logicACL1=0;physiACL1=0; - solidACL2=0;logicACL2=0;physiACL2=0; - solidConverter=0;logicConverter=0;physiConverter=0; - solidTKRDetectorX=0;logicTKRDetectorX=0; - solidTKRDetectorY=0;logicTKRDetectorY=0; - physiTKRDetectorX=0;physiTKRDetectorY=0; - solidCALDetectorX=0;logicCALDetectorX=0;physiCALDetectorX=0; - solidCALDetectorY=0;logicCALDetectorY=0;physiCALDetectorY=0; - solidPlane=0;logicPlane=0;physiPlane=0; - aCALRegion=0; aTKRRegion=0; - */ - // - // Payload - // - - solidPayload = new G4Box("Payload", - PayloadSizeXY/2, - PayloadSizeXY/2, - PayloadSizeZ/2); - - logicPayload = new G4LogicalVolume(solidPayload, - defaultMaterial, - "Payload"); - - physiPayload = new G4PVPlacement(0, - G4ThreeVector(), - "Payload", - logicPayload, - physiWorld, - false, - 0); - // - // Calorimeter (CAL) - // - - solidCAL = new G4Box("CAL", - CALSizeXY/2,CALSizeXY/2,CALSizeZ/2); - - logicCAL = new G4LogicalVolume(solidCAL, - defaultMaterial, - "CAL"); - physiCAL = new G4PVPlacement(0, - G4ThreeVector(0,0, - -PayloadSizeZ/2+CALSizeZ/2), - "CAL", - logicCAL, - physiPayload, - false, - 0); - // - // Tracker (TKR) - // - - solidTKR = new G4Box("TKR", - TKRSizeXY/2,TKRSizeXY/2,TKRSizeZ/2); - - logicTKR = new G4LogicalVolume(solidTKR, - defaultMaterial, - "TKR"); - physiTKR = new G4PVPlacement(0, - G4ThreeVector(0,0, - -PayloadSizeZ/2+CALSizeZ+ - CALTKRDistance+TKRSizeZ/2), - "TKR", - logicTKR, - physiPayload, - false, - 0); - - - // - // Anticoincidence Top (ACT) - // - - solidACT = new G4Box("ACT", - ACTSizeXY/2,ACTSizeXY/2,ACTSizeZ/2); - - logicACT = new G4LogicalVolume(solidACT,ACDMaterial,"ACT"); - - physiACT = new G4PVPlacement(0, - G4ThreeVector(0,0, - -PayloadSizeZ/2+CALSizeZ+ - CALTKRDistance+TKRSizeZ+ - ACDTKRDistance+ACTSizeZ/2), - "ACT", - logicACT, - physiPayload, - false, - 0); - - // - // Anticoincidence Lateral Side (ACL) - // - - solidACL1 = new G4Box("ACL1", - ACL1SizeX/2,ACL1SizeY/2,ACL1SizeZ/2); - - logicACL1 = new G4LogicalVolume(solidACL1,ACDMaterial,"ACL"); - - physiACL1 = new G4PVPlacement(0, - G4ThreeVector(-PayloadSizeXY/2+ACL1SizeX/2, - -PayloadSizeXY/2+ACL1SizeY/2, - -PayloadSizeZ/2+ACL1SizeZ/2), - "ACL1", - logicACL1, - physiPayload, - false, - 0); - - physiACL1 = new G4PVPlacement(0, - G4ThreeVector(PayloadSizeXY/2-ACL1SizeX/2, - PayloadSizeXY/2-ACL1SizeY/2, - -PayloadSizeZ/2+ACL1SizeZ/2), - "ACL1", - logicACL1, - physiPayload, - false, - 1); - - solidACL2 = new G4Box("ACL2", - ACL2SizeX/2,ACL2SizeY/2,ACL2SizeZ/2); - - logicACL2 = new G4LogicalVolume(solidACL2, - ACDMaterial, - "ACL2"); - - - physiACL2 = new G4PVPlacement(0, - G4ThreeVector(-PayloadSizeXY/2+ACL2SizeX/2, - PayloadSizeXY/2-ACL2SizeY/2, - -PayloadSizeZ/2+ACL2SizeZ/2), - "ACL2", - logicACL2, - physiPayload, - false, - 0); - - physiACL2 = new G4PVPlacement(0, - G4ThreeVector(PayloadSizeXY/2-ACL2SizeX/2, - -PayloadSizeXY/2+ACL2SizeY/2, - -PayloadSizeZ/2+ACL2SizeZ/2), - "ACL2", - logicACL2, - physiPayload, - false, - 1); - - - // Tracker Structure (Plane + Converter + TKRDetectorX + TKRDetectorY) - - solidPlane = new G4Box("Plane", - TKRSizeXY/2,TKRSizeXY/2,TKRSupportThickness/2); - - logicPlane = new G4LogicalVolume(solidPlane, - defaultMaterial, - "Plane"); - - solidTKRDetectorY = new G4Box - ("TKRDetectorY",TKRSizeXY/2,TKRSizeXY/2,TKRSiliconThickness/2); - - logicTKRDetectorY = new G4LogicalVolume(solidTKRDetectorY, - TKRMaterial, - "TKRDetector Y"); - - - solidTKRDetectorX = new G4Box - ("TKRDetectorX",TKRSizeXY/2,TKRSizeXY/2,TKRSiliconThickness/2); - - logicTKRDetectorX = new G4LogicalVolume(solidTKRDetectorX, - TKRMaterial, - "TKRDetector X"); - - - solidConverter = new G4Box - ("Converter",TKRSizeXY/2,TKRSizeXY/2,ConverterThickness/2); - - logicConverter = new G4LogicalVolume(solidConverter, - ConverterMaterial, - "Converter"); - - G4int i=0; - - for (i = 0; i < NbOfTKRLayers; i++) - { - - physiTKRDetectorY = - new G4PVPlacement(0,G4ThreeVector(0.,0.,-TKRSizeZ/2 - +TKRSiliconThickness/2 - +(i)*TKRLayerDistance), - "TKRDetectorY", - logicTKRDetectorY, - physiTKR, - false, - i); - - physiTKRDetectorX = - new G4PVPlacement(0,G4ThreeVector(0.,0., - -TKRSizeZ/2+ - TKRSiliconThickness/2 + - TKRViewsDistance+ - TKRSiliconThickness+ - (i)*TKRLayerDistance), - "TKRDetectorX", - logicTKRDetectorX, - physiTKR, - false, - i); - - - physiConverter = - new G4PVPlacement(0,G4ThreeVector(0.,0., - -TKRSizeZ/2+ - 2*TKRSiliconThickness + - TKRViewsDistance+ - ConverterThickness/2+ - (i)*TKRLayerDistance), - "Converter", - logicConverter, - physiTKR, - false, - i); + G4int numberOfAtoms; + G4int numberOfComponents; - - - physiPlane = - new G4PVPlacement(0,G4ThreeVector(0.,0., - -TKRSizeZ/2+ - 2*TKRSiliconThickness + - TKRViewsDistance+ - ConverterThickness+ - TKRSupportThickness/2+ - (i)*TKRLayerDistance), - "Plane", - logicPlane, - physiTKR, - false, - i); - - } - - - - G4VSolid * solidTKRActiveTileX = new - G4Box("Active Tile X", TKRActiveTileXY/2, - TKRActiveTileXY/2,TKRActiveTileZ/2); - - - G4VSolid * solidTKRActiveTileY = new - G4Box("Active Tile Y", TKRActiveTileXY/2, - TKRActiveTileXY/2,TKRActiveTileZ/2); - - - G4LogicalVolume* logicTKRActiveTileX = - new G4LogicalVolume(solidTKRActiveTileX, TKRMaterial, - "Active Tile X",0,0,0); - - - G4LogicalVolume* logicTKRActiveTileY = - new G4LogicalVolume(solidTKRActiveTileY, TKRMaterial, - "Active Tile Y",0,0,0); - - + // + // define Elements + // + constexpr auto HYDROGEN_ATOMIC_NUMBER{1.}; + constexpr auto HYDROGEN_MOLAR_MASS{1.01 * g / mole}; + auto *hydrogen = new G4Element(name = "Hydrogen", symbol = "H", HYDROGEN_ATOMIC_NUMBER, HYDROGEN_MOLAR_MASS); - G4int j=0; - G4int k=0; - - G4double x=0.; - G4double y=0.; - G4double z=0.; - - for (i=0;i< NbOfTKRTiles; i++) - { - for (j=0;j< NbOfTKRTiles; j++) - { - k = i*NbOfTKRTiles + j; - - - x = -TKRSizeXY/2+TilesSeparation+SiliconGuardRing+ - TKRActiveTileXY/2+(i)*((2*SiliconGuardRing)+ - TilesSeparation+TKRActiveTileXY); - y = -TKRSizeXY/2+TilesSeparation+SiliconGuardRing+ - TKRActiveTileXY/2+(j)*((2*SiliconGuardRing)+TilesSeparation+ - TKRActiveTileXY); - z = 0.; - - new G4PVPlacement(0, - G4ThreeVector(x,y,z), - logicTKRActiveTileY, - "Active Tile Y", - logicTKRDetectorY, - false, - k); - - - x = -TKRSizeXY/2+TilesSeparation+SiliconGuardRing+ - TKRActiveTileXY/2+(j)*((2*SiliconGuardRing)+ - TilesSeparation+TKRActiveTileXY); - y = -TKRSizeXY/2+TilesSeparation+SiliconGuardRing+ - TKRActiveTileXY/2+(i)*((2*SiliconGuardRing)+ - TilesSeparation+TKRActiveTileXY); - z = 0.; - - new G4PVPlacement(0, - G4ThreeVector(x,y,z), - logicTKRActiveTileX, - "Active Tile X", - logicTKRDetectorX, - false, - k); - + constexpr auto CARBON_ATOMIC_NUMBER{6.}; + constexpr auto CARBON_MOLAR_MASS{12.01 * g / mole}; + auto *carbon = new G4Element(name = "Carbon", symbol = "C", CARBON_ATOMIC_NUMBER, CARBON_MOLAR_MASS); + + constexpr auto NITROGEN_ATOMIC_NUMBER{7.}; + constexpr auto NITROGEN_MOLAR_MASS{14.006 * g / mole}; + auto *nitrogen = new G4Element(name = "Nitrogen", symbol = "N", NITROGEN_ATOMIC_NUMBER, NITROGEN_MOLAR_MASS); + + constexpr auto OXYGEN_ATOMIC_NUMBER{8.}; + constexpr auto OXYGEN_MOLAR_MASS{15.99 * g / mole}; + auto *oxygen = new G4Element(name = "Oxygen", symbol = "O", OXYGEN_ATOMIC_NUMBER, OXYGEN_MOLAR_MASS); + + constexpr auto ALUMINIUM_ATOMIC_NUMBER{13.}; + constexpr auto ALUMINIUM_MOLAR_MASS{26.98 * g / mole}; + auto *aluminium = new G4Element(name = "Aluminum", symbol = "Al", ALUMINIUM_ATOMIC_NUMBER, ALUMINIUM_MOLAR_MASS); + + constexpr auto SILICON_ATOMIC_NUMBER{14.}; + constexpr auto SILICON_MOLAR_MASS{28.09 * g / mole}; + auto *silicon = new G4Element(name = "Silicon", symbol = "Si", SILICON_ATOMIC_NUMBER, SILICON_MOLAR_MASS); + + constexpr auto IRON_ATOMIC_NUMBER{26.}; + constexpr auto IRON_MOLAR_MASS{55.845 * g / mole}; + auto *iron = new G4Element(name = "Iron", symbol = "Fe", IRON_ATOMIC_NUMBER, IRON_MOLAR_MASS); + + constexpr auto IODINE_ATOMIC_NUMBER{53.}; + constexpr auto IODINE_MOLAR_MASS{126.904 * g / mole}; + auto *iodine = new G4Element(name = "Iodine", symbol = "I", IODINE_ATOMIC_NUMBER, IODINE_MOLAR_MASS); + + constexpr auto CESIUM_ATOMIC_NUMBER{55}; + constexpr auto CESIUM_MOLAR_MASS{132.905 * g / mole}; + auto *cesium = new G4Element(name = "Cesium", symbol = "Cs", CESIUM_ATOMIC_NUMBER, CESIUM_MOLAR_MASS); + + constexpr auto LEAD_ATOMIC_NUMBER{82}; + constexpr auto LEAD_MOLAR_MASS{207.19 * g / mole}; + auto *lead = new G4Element(name = "Lead", symbol = "Pb", LEAD_ATOMIC_NUMBER, LEAD_MOLAR_MASS); + + // + // define simple materials + // + + constexpr auto TUNGSTEN_ATOMIC_NUMBER{74.}; + constexpr auto TUNGSTEN_DENSITY{19.3 * g / cm3}; + constexpr auto TUNGSTEN_MOLAR_MASS{183.84 * g / mole}; + auto *tungsten = new G4Material(name = "Tungsten", TUNGSTEN_ATOMIC_NUMBER, TUNGSTEN_MOLAR_MASS, TUNGSTEN_DENSITY); + + // + // Define a material from elements. + // Case 1: chemical molecule + // + + constexpr auto SCINTILLATOR_MATERIAL_DENSITY{1.032 * g / cm3}; + auto *scintillatorMaterial = new G4Material(name = "Scintillator", SCINTILLATOR_MATERIAL_DENSITY, numberOfComponents = 2); + scintillatorMaterial->AddElement(carbon, numberOfAtoms = 9); + scintillatorMaterial->AddElement(hydrogen, numberOfAtoms = 10); + + constexpr auto CESIUM_IODIDE_DENSITY{4.53 * g / cm3}; + auto *cesiumIodide = new G4Material(name = "CesiumIodide", CESIUM_IODIDE_DENSITY, numberOfComponents = 2); + cesiumIodide->AddElement(cesium, numberOfAtoms = 5); + cesiumIodide->AddElement(iodine, numberOfAtoms = 5); + + // + // Define a material from elements. + // Case 2: mixture by fractional mass + // + + constexpr auto AIR_DENSITY{1.290 * mg / cm3}; + constexpr auto AIR_NITROGEN_MASS_FRACTION{0.7}; + constexpr auto AIR_OXYGEN_MASS_FRACTION{0.3}; + + auto *air = new G4Material(name = "Air", AIR_DENSITY, numberOfComponents = 2); + air->AddElement(nitrogen, AIR_NITROGEN_MASS_FRACTION); + air->AddElement(oxygen, AIR_OXYGEN_MASS_FRACTION); + + constexpr auto ALUMINIUM_DENSITY{2.700 * g / cm3}; + constexpr auto ALUMINIUM_MASS_FRACTION{1.}; + auto *Al = new G4Material(name = "Aluminum", ALUMINIUM_DENSITY, numberOfComponents = 1); + Al->AddElement(aluminium, ALUMINIUM_MASS_FRACTION); + + constexpr auto SILICON_DENSITY{2.333 * g / cm3}; + constexpr auto SILICON_MASS_FRACTION{1.}; + auto *Si = new G4Material(name = "Silicon", SILICON_DENSITY, numberOfComponents = 1); + Si->AddElement(silicon, SILICON_MASS_FRACTION); + + constexpr auto IRON_DENSITY{7.87 * g / cm3}; + constexpr auto IRON_MASS_FRACTION{1.}; + auto *Fe = new G4Material(name = "Iron", IRON_DENSITY, numberOfComponents = 1); + Fe->AddElement(iron, IRON_MASS_FRACTION); + + constexpr auto LEAD_DENSITY{11.35 * g / cm3}; + constexpr auto LEAD_MASS_FRACTION{1.}; + auto *Pb = new G4Material(name = "Lead", LEAD_DENSITY, numberOfComponents = 1); + Pb->AddElement(lead, LEAD_MASS_FRACTION); + + // + // examples of vacuum + // + constexpr auto VACUUM_ATOMIC_NUMBER{1.}; + constexpr auto VACUUM_DENSITY{universe_mean_density}; // from PhysicalConstants.h + constexpr auto VACUUM_MOLAR_MASS{1.01 * g / mole}; + constexpr auto VACUUM_PRESSURE{3.e-18 * pascal}; + constexpr auto VACUUM_TEMPERATURE{2.73 * kelvin}; + auto *vacuum = new G4Material(name = "Galactic", VACUUM_ATOMIC_NUMBER, VACUUM_MOLAR_MASS, VACUUM_DENSITY, kStateGas, VACUUM_TEMPERATURE, VACUUM_PRESSURE); + + constexpr auto BEAM_DENSITY{1.e-5 * g / cm3}; + constexpr auto BEAM_MASS_FRACTION{1.}; + constexpr auto BEAM_PRESSURE{2.e-2 * bar}; + constexpr auto BEAM_TEMPERATURE{STP_Temperature}; // from PhysicalConstants.h + auto *beam = new G4Material(name = "Beam", BEAM_DENSITY, numberOfComponents = 1, kStateGas, BEAM_TEMPERATURE, BEAM_PRESSURE); + beam->AddMaterial(air, BEAM_MASS_FRACTION); + + G4cout << *(G4Material::GetMaterialTable()) << G4endl; + + // default materials of the payload + + defaultMaterial = vacuum; + + converterMaterial = tungsten; + acdMaterial = scintillatorMaterial; // anticoincidence (ACD) + calMaterial = cesiumIodide; // calorimeter (CAL) + tkrMaterial = Si; // tracker (TKR) +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +auto GammaRayTelDetectorConstruction::ConstructPayload() -> G4VPhysicalVolume* { + // complete the payload parameters definition + ComputePayloadParameters(); + + // + // World + // + + solidWorld = new G4Box("World", worldSizeXY / 2, worldSizeXY / 2, worldSizeZ / 2); + logicWorld = new G4LogicalVolume(solidWorld, defaultMaterial, "World"); + physiWorld = new G4PVPlacement(nullptr, G4ThreeVector(), "World", logicWorld, nullptr, false, 0); + + // + // Payload + // + + solidPayload = new G4Box("Payload", payloadSizeXY / 2, payloadSizeXY / 2, payloadSizeZ / 2); + logicPayload = new G4LogicalVolume(solidPayload, defaultMaterial, "Payload"); + physiPayload = new G4PVPlacement(nullptr, G4ThreeVector(), "Payload", logicPayload, physiWorld, false, 0); + + // + // Calorimeter (CAL) + // + + solidCAL = new G4Box("CAL", calSizeXY / 2, calSizeXY / 2, calSizeZ / 2); + logicCAL = new G4LogicalVolume(solidCAL, defaultMaterial, "CAL"); + physiCAL = new G4PVPlacement(nullptr, + G4ThreeVector(0, 0, + -payloadSizeZ / 2 + calSizeZ / 2), + "CAL", logicCAL, physiPayload, false, 0); + + // + // Tracker (TKR) + // + + solidTKR = new G4Box("TKR", tkrSizeXY / 2, tkrSizeXY / 2, tkrSizeZ / 2); + logicTKR = new G4LogicalVolume(solidTKR, defaultMaterial, "TKR"); + physiTKR = new G4PVPlacement(nullptr, + G4ThreeVector(0, 0, + -payloadSizeZ / 2 + calSizeZ + calTKRDistance + + tkrSizeZ / 2), + "TKR", logicTKR, physiPayload, false, 0); + + // + // Anticoincidence, Top Side (ACT) + // + + solidACT = new G4Box("ACT", actSizeXY / 2, actSizeXY / 2, actSizeZ / 2); + logicACT = new G4LogicalVolume(solidACT, acdMaterial, "ACT"); + physiACT = new G4PVPlacement(nullptr, + G4ThreeVector(0, 0, + -payloadSizeZ / 2 + calSizeZ + calTKRDistance + tkrSizeZ + + acdTKRDistance + actSizeZ / 2), + "ACT", logicACT, physiPayload, false, 0); + + // + // Anticoincidence, Lateral Side (ACL) + // + + solidACL1 = new G4Box("ACL1", acl1SizeX / 2, acl1SizeY / 2, acl1SizeZ / 2); + logicACL1 = new G4LogicalVolume(solidACL1, acdMaterial, "ACL"); + + physiACL1 = new G4PVPlacement(nullptr, + G4ThreeVector(-payloadSizeXY / 2 + acl1SizeX / 2, + -payloadSizeXY / 2 + acl1SizeY / 2, + -payloadSizeZ / 2 + acl1SizeZ / 2), + "ACL1", logicACL1, physiPayload, false, 0); + + physiACL1 = new G4PVPlacement(nullptr, + G4ThreeVector(payloadSizeXY / 2 - acl1SizeX / 2, + payloadSizeXY / 2 - acl1SizeY / 2, + -payloadSizeZ / 2 + acl1SizeZ / 2), + "ACL1", logicACL1, physiPayload, false, 1); + + solidACL2 = new G4Box("ACL2", acl2SizeX / 2, acl2SizeY / 2, acl2SizeZ / 2); + logicACL2 = new G4LogicalVolume(solidACL2, acdMaterial, "ACL2"); + + physiACL2 = new G4PVPlacement(nullptr, + G4ThreeVector(-payloadSizeXY / 2 + acl2SizeX / 2, + payloadSizeXY / 2 - acl2SizeY / 2, + -payloadSizeZ / 2 + acl2SizeZ / 2), + "ACL2", logicACL2, physiPayload, false, 0); + + physiACL2 = new G4PVPlacement(nullptr, + G4ThreeVector(payloadSizeXY / 2 - acl2SizeX / 2, + -payloadSizeXY / 2 + acl2SizeY / 2, + -payloadSizeZ / 2 + acl2SizeZ / 2), + "ACL2", logicACL2, physiPayload, false, 1); + + // + // Tracker Structure (Plane + Converter + TKRDetectorX + TKRDetectorY) + // + + solidPlane = new G4Box("Plane", tkrSizeXY / 2, tkrSizeXY / 2, tkrSupportThickness / 2); + logicPlane = new G4LogicalVolume(solidPlane, defaultMaterial, "Plane"); + + solidTKRDetectorY = new G4Box("TKRDetectorY", tkrSizeXY / 2, tkrSizeXY / 2, tkrSiliconThickness / 2); + logicTKRDetectorY = new G4LogicalVolume(solidTKRDetectorY, tkrMaterial, "TKRDetector Y"); + + solidTKRDetectorX = new G4Box("TKRDetectorX", tkrSizeXY / 2, tkrSizeXY / 2, tkrSiliconThickness / 2); + logicTKRDetectorX = new G4LogicalVolume(solidTKRDetectorX, tkrMaterial, "TKRDetector X"); + + solidConverter = new G4Box("Converter", tkrSizeXY / 2, tkrSizeXY / 2, converterThickness / 2); + logicConverter = new G4LogicalVolume(solidConverter, converterMaterial, "Converter"); + + G4int i = 0; + + for (i = 0; i < numberOfTKRLayers; i++) { + physiTKRDetectorY = new G4PVPlacement(nullptr, + G4ThreeVector(0., 0., + -tkrSizeZ / 2 + tkrSiliconThickness / 2 + + (i) * tkrLayerDistance), + "TKRDetectorY", logicTKRDetectorY, physiTKR, false, i); + + physiTKRDetectorX = new G4PVPlacement(nullptr, + G4ThreeVector(0., 0., + -tkrSizeZ / 2 + tkrSiliconThickness / 2 + + tkrViewsDistance + tkrSiliconThickness + + (i) * tkrLayerDistance), + "TKRDetectorX", logicTKRDetectorX, physiTKR, false, i); + + physiConverter = new G4PVPlacement(nullptr, + G4ThreeVector(0., 0., + -tkrSizeZ / 2 + 2 * tkrSiliconThickness + + tkrViewsDistance + converterThickness / 2 + + (i) * tkrLayerDistance), + "Converter", logicConverter, physiTKR, false, i); + + physiPlane = new G4PVPlacement(nullptr, + G4ThreeVector(0., 0., + -tkrSizeZ / 2 + 2 * tkrSiliconThickness + + tkrViewsDistance + converterThickness + + tkrSupportThickness / 2 + + (i) * tkrLayerDistance), + "Plane", logicPlane, physiTKR, false, i); } + + auto *solidTKRActiveTileX = new G4Box("Active Tile X", tkrActiveTileXY / 2, tkrActiveTileXY / 2, tkrActiveTileZ / 2); + auto *solidTKRActiveTileY = new G4Box("Active Tile Y", tkrActiveTileXY / 2, tkrActiveTileXY / 2, tkrActiveTileZ / 2); + + auto *logicTKRActiveTileX = new G4LogicalVolume(solidTKRActiveTileX, tkrMaterial, "Active Tile X", nullptr, nullptr, nullptr); + auto *logicTKRActiveTileY = new G4LogicalVolume(solidTKRActiveTileY, tkrMaterial, "Active Tile Y", nullptr, nullptr, nullptr); + + G4int j = 0; + G4int k = 0; + + G4double x = 0.; + G4double y = 0.; + G4double z = 0.; + + for (i = 0; i < numberOfTKRTiles; i++) { + for (j = 0; j < numberOfTKRTiles; j++) { + k = i * numberOfTKRTiles + j; + + x = -tkrSizeXY / 2 + tilesSeparation + siliconGuardRing + + tkrActiveTileXY / 2 + + (i) + * ((2 * siliconGuardRing) + tilesSeparation + + tkrActiveTileXY); + + y = -tkrSizeXY / 2 + tilesSeparation + siliconGuardRing + + tkrActiveTileXY / 2 + + (j) + * ((2 * siliconGuardRing) + tilesSeparation + + tkrActiveTileXY); + z = 0.; + + new G4PVPlacement(nullptr, G4ThreeVector(x, y, z), logicTKRActiveTileY, "Active Tile Y", logicTKRDetectorY, false, k); + + x = -tkrSizeXY / 2 + tilesSeparation + siliconGuardRing + + tkrActiveTileXY / 2 + + (j) + * ((2 * siliconGuardRing) + tilesSeparation + + tkrActiveTileXY); + + y = -tkrSizeXY / 2 + tilesSeparation + siliconGuardRing + + tkrActiveTileXY / 2 + + (i) + * ((2 * siliconGuardRing) + tilesSeparation + + tkrActiveTileXY); + z = 0.; + + new G4PVPlacement(nullptr, G4ThreeVector(x, y, z), logicTKRActiveTileX, "Active Tile X", logicTKRDetectorX, false, k); + } + } + + // Strips + + // Silicon Strips + + /* + G4double tkrXStripX{0.}; + G4double tkrYStripY{0.}; + G4double tkrYStripX{0.}; + G4double tkrXStripY{0.}; + */ + + tkrXStripX = tkrYStripY = tkrSiliconPitch; + tkrYStripX = tkrXStripY = tkrActiveTileXY; + tkrZStrip = tkrSiliconThickness; + + auto *solidTKRStripX = new G4Box("Strip X", tkrXStripX / 2, tkrYStripX / 2, tkrZStrip / 2); + logicTKRStripX = new G4LogicalVolume(solidTKRStripX, tkrMaterial, "Strip X", nullptr, nullptr, nullptr); + + auto *solidTKRStripY = new G4Box("Strip Y", tkrXStripY / 2, tkrYStripY / 2, tkrZStrip / 2); + logicTKRStripY = new G4LogicalVolume(solidTKRStripY, tkrMaterial, "Strip Y", nullptr, nullptr, nullptr); + + for (i = 0; i < numberOfTKRStrips; i++) { + new G4PVPlacement(nullptr, + G4ThreeVector( + -tkrActiveTileXY / 2 + tkrSiliconPitch / 2 + + (i) * tkrSiliconPitch, 0., 0.), + logicTKRStripX, "Strip X", logicTKRActiveTileX, false, i); + + new G4PVPlacement(nullptr, + G4ThreeVector(0., + -tkrActiveTileXY / 2 + tkrSiliconPitch / 2 + + (i) * tkrSiliconPitch, 0.), + logicTKRStripY, "Strip Y", logicTKRActiveTileY, false, i); + } + + // + // Calorimeter Structure (CALLayerX + CALLayerY) + // + + solidCALLayerX = new G4Box("CALLayerX", calSizeXY / 2, calSizeXY / 2, calBarThickness / 2); + logicCALLayerX = new G4LogicalVolume(solidCALLayerX, calMaterial, "CALLayerX"); + + solidCALLayerY = new G4Box("CALLayerY", calSizeXY / 2, calSizeXY / 2, calBarThickness / 2); + logicCALLayerY = new G4LogicalVolume(solidCALLayerY, calMaterial, "CALLayerY"); + + for (i = 0; i < numberOfCALLayers; i++) { + physiCALLayerY = new G4PVPlacement(nullptr, + G4ThreeVector(0, 0, + -calSizeZ / 2 + calBarThickness / 2 + + (i) * 2 * calBarThickness), + "CALLayerY", logicCALLayerY, physiCAL, false, i); + + physiCALLayerX = new G4PVPlacement(nullptr, + G4ThreeVector(0, 0, + -calSizeZ / 2 + calBarThickness / 2 + calBarThickness + + (i) * 2 * calBarThickness), + "CALLayerX", logicCALLayerX, physiCAL, false, i); + } + + // + // Calorimeter Structure (CALDetectorX + CALDetectorY) + // + + solidCALDetectorX = new G4Box("CALDetectorX", calBarX / 2, calBarY / 2, calBarThickness / 2); + logicCALDetectorX = new G4LogicalVolume(solidCALDetectorX, calMaterial, "CALDetectorX"); + + solidCALDetectorY = new G4Box("CALDetectorY", calBarY / 2, calBarX / 2, calBarThickness / 2); + logicCALDetectorY = new G4LogicalVolume(solidCALDetectorY, calMaterial, "CALDetectorY"); + + for (i = 0; i < numberOfCALBars; i++) { + physiCALDetectorY = new G4PVPlacement(nullptr, + G4ThreeVector(-calSizeXY / 2 + calBarY / 2 + (i) * calBarY, 0, 0), + logicCALDetectorY, "CALDetectorY", logicCALLayerY, false, i); + + physiCALDetectorX = new G4PVPlacement(nullptr, + G4ThreeVector(0, -calSizeXY / 2 + calBarY / 2 + (i) * calBarY, 0), + logicCALDetectorX, "CALDetectorX", logicCALLayerX, false, i); + } + +/* + // Cuts by Region + + G4String regionName[] = {"Calorimeter", "Tracker"}; + + if (calorimeterCutRegion) { + delete calorimeterCutRegion; } + calorimeterCutRegion = new G4Region(regionName[0]); + logicCAL->SetRegion(calorimeterCutRegion); + calorimeterCutRegion->AddRootLogicalVolume(logicCAL); - - // STRIPS (not any more in the Readout Geometry) - - // Silicon Strips - - /* - G4double TKRXStripX=0.; - G4double TKRYStripY=0.; - G4double TKRYStripX=0.; - G4double TKRXStripY=0.; - */ - - TKRXStripX = TKRYStripY = TKRSiliconPitch; - TKRYStripX = TKRXStripY = TKRActiveTileXY; - TKRZStrip = TKRSiliconThickness; - - - G4VSolid* solidTKRStripX = new G4Box("Strip X", - TKRXStripX/2,TKRYStripX/2, - TKRZStrip/2); - - logicTKRStripX = - new G4LogicalVolume(solidTKRStripX,TKRMaterial,"Strip X",0,0,0); - - - G4VSolid* solidTKRStripY = new G4Box("Strip Y", - TKRXStripY/2,TKRYStripY/2, - TKRZStrip/2); - - - logicTKRStripY = - new G4LogicalVolume(solidTKRStripY,TKRMaterial,"Strip Y",0,0,0); - - - for (i=0;i< NbOfTKRStrips; i++) - { - new G4PVPlacement(0, - G4ThreeVector(-TKRActiveTileXY/2 +TKRSiliconPitch/2 + - (i)*TKRSiliconPitch, 0., 0.), - logicTKRStripX, - "Strip X", - logicTKRActiveTileX, - false, - i); - - - new G4PVPlacement(0, - G4ThreeVector(0.,-TKRActiveTileXY/2 - +TKRSiliconPitch/2 + - (i)*TKRSiliconPitch, 0.), - logicTKRStripY, - "Strip Y", - logicTKRActiveTileY, - false, - i); - - - - - + if (trackerCutRegion != nullptr) { + delete trackerCutRegion; } - + trackerCutRegion = new G4Region(regionName[1]); + logicTKR->SetRegion(trackerCutRegion); + trackerCutRegion->AddRootLogicalVolume(logicTKR); +*/ + // + // Visualization attributes + // + // Invisible Volume + logicWorld->SetVisAttributes(G4VisAttributes::GetInvisible()); + logicPayload->SetVisAttributes(G4VisAttributes::GetInvisible()); + logicTKR->SetVisAttributes(G4VisAttributes::GetInvisible()); + logicTKRActiveTileX->SetVisAttributes(G4VisAttributes::GetInvisible()); + logicTKRActiveTileY->SetVisAttributes(G4VisAttributes::GetInvisible()); + logicPlane->SetVisAttributes(G4VisAttributes::GetInvisible()); + logicConverter->SetVisAttributes(G4VisAttributes::GetInvisible()); + logicCAL->SetVisAttributes(G4VisAttributes::GetInvisible()); + logicCALLayerX->SetVisAttributes(G4VisAttributes::GetInvisible()); + logicCALLayerY->SetVisAttributes(G4VisAttributes::GetInvisible()); + logicTKRStripX->SetVisAttributes(G4VisAttributes::GetInvisible()); + logicTKRStripY->SetVisAttributes(G4VisAttributes::GetInvisible()); - // Calorimeter Structure (CALLayerX + CALLayerY) - - - solidCALLayerX = new G4Box("CALLayerX", - CALSizeXY/2,CALSizeXY/2,CALBarThickness/2); - - logicCALLayerX = new G4LogicalVolume(solidCALLayerX, - CALMaterial, - "CALLayerX"); - - solidCALLayerY = new G4Box("CALLayerY", - CALSizeXY/2,CALSizeXY/2,CALBarThickness/2); - - logicCALLayerY = new G4LogicalVolume(solidCALLayerY, - CALMaterial, - "CALLayerY"); - - for (i = 0; i < NbOfCALLayers; i++) - { - - physiCALLayerY = - new G4PVPlacement(0,G4ThreeVector(0,0, - -CALSizeZ/2+ - CALBarThickness/2 + - (i)*2*CALBarThickness), - "CALLayerY", - logicCALLayerY, - physiCAL, - false, - i); - - physiCALLayerX = - new G4PVPlacement(0,G4ThreeVector(0,0, - -CALSizeZ/2+ - CALBarThickness/2 + - CALBarThickness + - (i)*2*CALBarThickness), - "CALLayerX", - logicCALLayerX, - physiCAL, - false, - i); - - } - - // Calorimeter Structure (CALDetectorX + CALDetectorY) - - solidCALDetectorX = new G4Box("CALDetectorX", - CALBarX/2,CALBarY/2,CALBarThickness/2); - - logicCALDetectorX = new G4LogicalVolume(solidCALDetectorX, - CALMaterial, - "CALDetectorX"); - - solidCALDetectorY = new G4Box("CALDetectorY", - CALBarY/2,CALBarX/2,CALBarThickness/2); - - logicCALDetectorY = new G4LogicalVolume(solidCALDetectorY, - CALMaterial, - "CALDetectorY"); - - for (i = 0; i < NbOfCALBars; i++) - { - - physiCALDetectorY = - new G4PVPlacement(0, - G4ThreeVector(-CALSizeXY/2+ CALBarY/2 + - (i)*CALBarY, 0, 0), - logicCALDetectorY, - "CALDetectorY", - logicCALLayerY, - false, - i); - - physiCALDetectorX = - new G4PVPlacement(0, - G4ThreeVector(0,-CALSizeXY/2+ CALBarY/2 + - (i)*CALBarY, 0), - logicCALDetectorX, - "CALDetectorX", - logicCALLayerX, - false, - i); - - } - - - // Cuts by Regions + // Some visualization styles - /* - G4String regName[] = {"Calorimeter","Tracker"}; - if (aCALRegion) delete aCALRegion; - - aCALRegion = new G4Region(regName[0]); - logicCAL->SetRegion(aCALRegion); - aCALRegion->AddRootLogicalVolume(logicCAL); - - if (aTKRRegion) delete aTKRRegion; - - aTKRRegion = new G4Region(regName[1]); - logicTKR->SetRegion(aTKRRegion); - aTKRRegion->AddRootLogicalVolume(logicTKR); - */ + auto *visualizationStyle1 = new G4VisAttributes(G4Colour(0.3, 0.8, 0.1)); + visualizationStyle1->SetVisibility(true); + visualizationStyle1->SetForceSolid(TRUE); + auto *visualizationStyle2 = new G4VisAttributes(G4Colour(0.2, 0.3, 0.8)); + visualizationStyle2->SetVisibility(true); + visualizationStyle2->SetForceSolid(FALSE); - // - // Visualization attributes - // - - // Invisible Volume - logicWorld->SetVisAttributes (G4VisAttributes::GetInvisible()); - logicPayload->SetVisAttributes (G4VisAttributes::GetInvisible()); - logicTKR->SetVisAttributes(G4VisAttributes::GetInvisible()); - logicTKRActiveTileX->SetVisAttributes(G4VisAttributes::GetInvisible()); - logicTKRActiveTileY->SetVisAttributes(G4VisAttributes::GetInvisible()); - logicPlane->SetVisAttributes(G4VisAttributes::GetInvisible()); - logicConverter->SetVisAttributes(G4VisAttributes::GetInvisible()); - logicCAL->SetVisAttributes(G4VisAttributes::GetInvisible()); - logicCALLayerX->SetVisAttributes(G4VisAttributes::GetInvisible()); - logicCALLayerY->SetVisAttributes(G4VisAttributes::GetInvisible()); - logicTKRStripX->SetVisAttributes(G4VisAttributes::GetInvisible()); - logicTKRStripY->SetVisAttributes(G4VisAttributes::GetInvisible()); + auto *visualizationStyle3 = new G4VisAttributes(G4Colour(0.8, 0.2, 0.3)); + visualizationStyle3->SetVisibility(true); + visualizationStyle3->SetForceWireframe(TRUE); - // Some visualization styles + // Visible Volumes - G4VisAttributes* VisAtt1= new G4VisAttributes(G4Colour(0.3,0.8,0.1)); - VisAtt1->SetVisibility(true); - VisAtt1->SetForceSolid(TRUE); + logicCALDetectorX->SetVisAttributes(visualizationStyle1); + logicCALDetectorY->SetVisAttributes(visualizationStyle1); + logicTKRDetectorX->SetVisAttributes(visualizationStyle2); + logicTKRDetectorY->SetVisAttributes(visualizationStyle2); + logicACT->SetVisAttributes(visualizationStyle3); + logicACL1->SetVisAttributes(visualizationStyle3); + logicACL2->SetVisAttributes(visualizationStyle3); - G4VisAttributes* VisAtt2= new G4VisAttributes(G4Colour(0.2,0.3,0.8)); - VisAtt2->SetVisibility(true); - VisAtt2->SetForceSolid(FALSE); + // + // always return the physical World + // + PrintPayloadParameters(); - G4VisAttributes* VisAtt3= new G4VisAttributes(G4Colour(0.8,0.2,0.3)); - VisAtt3->SetVisibility(true); - VisAtt3->SetForceWireframe(TRUE); - - // Visible Volumes - - logicCALDetectorX->SetVisAttributes(VisAtt1); - logicCALDetectorY->SetVisAttributes(VisAtt1); - logicTKRDetectorX->SetVisAttributes(VisAtt2); - logicTKRDetectorY->SetVisAttributes(VisAtt2); - logicACT->SetVisAttributes(VisAtt3); - logicACL1->SetVisAttributes(VisAtt3); - logicACL2->SetVisAttributes(VisAtt3); - - - // - //always return the physical World - // - PrintPayloadParameters(); - return physiWorld; + return physiWorld; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelDetectorConstruction::ConstructSDandField() -{ - - // - // Sensitive Detectors - Tracker - // - if(trackerSD.Get()==0) - { - GammaRayTelTrackerSD* SD = new GammaRayTelTrackerSD("TrackerSD"); - trackerSD.Put(SD); - } +void GammaRayTelDetectorConstruction::ConstructSDandField() { + // + // Sensitive detector: Tracker + // + if (trackerSD.Get() == nullptr) { + constexpr auto TRACKER_SENSITIVE_DETECTOR_NAME = "TrackerSD"; + auto *sensitiveDetector = new GammaRayTelTrackerSD(TRACKER_SENSITIVE_DETECTOR_NAME); + trackerSD.Put(sensitiveDetector); + } - G4SDManager::GetSDMpointer()->AddNewDetector(trackerSD.Get()); - //Flags the strips as sensitive . - if (logicTKRStripX) - SetSensitiveDetector(logicTKRStripX,trackerSD.Get()); // ActiveStripX - if (logicTKRStripY) - SetSensitiveDetector(logicTKRStripY,trackerSD.Get()); // ActiveStripY - + G4SDManager::GetSDMpointer()->AddNewDetector(trackerSD.Get()); - // - // Sensitive Detectors: Calorimeter - // - if(calorimeterSD.Get()==0) - { - GammaRayTelCalorimeterSD* SD = new GammaRayTelCalorimeterSD("CalorimeterSD"); - calorimeterSD.Put(SD); - } - G4SDManager::GetSDMpointer()->AddNewDetector(calorimeterSD.Get()); - if (logicCALDetectorX) - SetSensitiveDetector(logicCALDetectorX,calorimeterSD.Get()); // BarX - if (logicCALDetectorY) - SetSensitiveDetector(logicCALDetectorY,calorimeterSD.Get()); // BarY + // Flags the strips as sensitive . + if (logicTKRStripX != nullptr) { + SetSensitiveDetector(logicTKRStripX, trackerSD.Get()); // ActiveStripX + } + if (logicTKRStripY != nullptr) { + SetSensitiveDetector(logicTKRStripY, trackerSD.Get()); // ActiveStripY + } - // - // Sensitive Detectors: Anticoincidence - // + // + // Sensitive detector: Calorimeter + // + if (calorimeterSD.Get() == nullptr) { + constexpr auto CALORIMETER_SENSITIVE_DETECTOR_NAME = "CalorimeterSD"; + auto *sensitiveDetector = new GammaRayTelCalorimeterSD(CALORIMETER_SENSITIVE_DETECTOR_NAME); + calorimeterSD.Put(sensitiveDetector); + } - if(anticoincidenceSD.Get()==0) - { - GammaRayTelAnticoincidenceSD* SD = new GammaRayTelAnticoincidenceSD - ("AnticoincidenceSD"); - anticoincidenceSD.Put(SD); - } - G4SDManager::GetSDMpointer()->AddNewDetector(anticoincidenceSD.Get()); - if (logicACT) - SetSensitiveDetector(logicACT,anticoincidenceSD.Get()); // ACD top - if (logicACL1) - SetSensitiveDetector(logicACL1,anticoincidenceSD.Get()); // ACD lateral side - if (logicACL2) - SetSensitiveDetector(logicACL2,anticoincidenceSD.Get()); // ACD lateral side + G4SDManager::GetSDMpointer()->AddNewDetector(calorimeterSD.Get()); + if (logicCALDetectorX != nullptr) { + SetSensitiveDetector(logicCALDetectorX, calorimeterSD.Get()); // CAL BarX + } + if (logicCALDetectorY != nullptr) { + SetSensitiveDetector(logicCALDetectorY, calorimeterSD.Get()); // CAL BarY + } - // Create global magnetic field messenger. - // Uniform magnetic field is then created automatically if - // the field value is not zero. - G4ThreeVector fieldValue = G4ThreeVector(); - fMagFieldMessenger = new G4GlobalMagFieldMessenger(fieldValue); - fMagFieldMessenger->SetVerboseLevel(1); - - // Register the field messenger for deleting - G4AutoDelete::Register(fMagFieldMessenger); + // + // Sensitive detector: Anticoincidence + // + if (anticoincidenceSD.Get() == nullptr) { + constexpr auto ANTICOINCIDENCE_SENSITIVE_DETECTOR_NAME = "AnticoincidenceSD"; + auto *sensitiveDetector = new GammaRayTelAnticoincidenceSD(ANTICOINCIDENCE_SENSITIVE_DETECTOR_NAME); + anticoincidenceSD.Put(sensitiveDetector); + } - return; - -} + G4SDManager::GetSDMpointer()->AddNewDetector(anticoincidenceSD.Get()); + if (logicACT != nullptr) { + SetSensitiveDetector(logicACT, anticoincidenceSD.Get()); // ACD top + } + if (logicACL1 != nullptr) { + SetSensitiveDetector(logicACL1, anticoincidenceSD.Get()); // ACD lateral side + } + if (logicACL2 != nullptr) { + SetSensitiveDetector(logicACL2, anticoincidenceSD.Get()); // ACD lateral side + } -void GammaRayTelDetectorConstruction::PrintPayloadParameters() -{ - G4cout << "\n------------------------------------------------------------" - << "\n---> The Tracker is " << NbOfTKRLayers << " layers of: " - << ConverterThickness/mm << "mm of " << ConverterMaterial->GetName() - << "\n------------------------------------------------------------\n"; + // Create global magnetic field messenger. + // Uniform magnetic field is then created automatically if the field value is not zero. + auto fieldValue = G4ThreeVector(); + fMagFieldMessenger = new G4GlobalMagFieldMessenger(fieldValue); + fMagFieldMessenger->SetVerboseLevel(1); + + // Register the field messenger for deleting + G4AutoDelete::Register (fMagFieldMessenger); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void GammaRayTelDetectorConstruction::SetConverterMaterial(G4String materialChoice) -{ - // search the material by its name - G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); - if (pttoMaterial) - { - ConverterMaterial = pttoMaterial; - logicConverter->SetMaterial(pttoMaterial); - PrintPayloadParameters(); - } -} - -void GammaRayTelDetectorConstruction::SetConverterThickness(G4double val) -{ - ConverterThickness = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void GammaRayTelDetectorConstruction::SetTKRSiliconThickness(G4double val) -{ - TKRSiliconThickness = val; -} - - -void GammaRayTelDetectorConstruction::SetTKRSiliconPitch(G4double val) -{ - TKRSiliconPitch = val; -} - - -void GammaRayTelDetectorConstruction::SetTKRTileSizeXY(G4double val) -{ - TKRSiliconTileXY = val; -} - - -void GammaRayTelDetectorConstruction::SetNbOfTKRLayers(G4int val) -{ - NbOfTKRLayers = val; -} - - -void GammaRayTelDetectorConstruction::SetNbOfTKRTiles(G4int val) -{ - NbOfTKRTiles = val; -} - -void GammaRayTelDetectorConstruction::SetTKRLayerDistance(G4double val) -{ - TKRLayerDistance = val; -} - -void GammaRayTelDetectorConstruction::SetTKRViewsDistance(G4double val) -{ - TKRViewsDistance = val; -} - - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void GammaRayTelDetectorConstruction::SetNbOfCALLayers(G4int val) -{ - NbOfCALLayers = val; -} - -void GammaRayTelDetectorConstruction::SetNbOfCALBars(G4int val) -{ - NbOfCALBars = val; -} - -void GammaRayTelDetectorConstruction::SetCALBarThickness(G4double val) -{ - CALBarThickness = val; +void GammaRayTelDetectorConstruction::PrintPayloadParameters() { + G4cout + << "\n---------------------------------------------------------------------------------\n" + << "---> The tracker is composed by " << numberOfTKRLayers << " layers" + << ", each made of " << converterMaterial->GetName() + << " and " << converterThickness / mm << " mm long." + << "\n---------------------------------------------------------------------------------\n"; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelDetectorConstruction::SetACDThickness(G4double val) -{ - ACDThickness = val; +void GammaRayTelDetectorConstruction::SetConverterMaterial(G4String materialChoice) { + // search the material by its name + G4Material *material = G4Material::GetMaterial(materialChoice); + if (material != nullptr) { + converterMaterial = material; + logicConverter->SetMaterial(material); + PrintPayloadParameters(); + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelDetectorConstruction::SetMagField(G4double fieldValue) -{ - // Just invoke manually the MT-safe command - // /globalField/setValue - // instantiated by the GlobalFieldMessenger - std::stringstream sss; - sss << "/globalField/setValue 0 0 " << fieldValue/tesla << " tesla"; - - G4String command = sss.str(); - G4cout << "Going to execute: " << command << G4endl; - - G4UImanager* UImanager = G4UImanager::GetUIpointer(); - UImanager->ApplyCommand(command); - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void GammaRayTelDetectorConstruction::UpdateGeometry() -{ - // delete payloadSD; - G4RunManager::GetRunManager()->DefineWorldVolume(ConstructPayload()); - G4RunManager::GetRunManager()->PhysicsHasBeenModified(); - G4RegionStore::GetInstance()->UpdateMaterialList(physiWorld); - - G4RunManager::GetRunManager()->ReinitializeGeometry(); - +void GammaRayTelDetectorConstruction::SetConverterThickness(G4double value) { + converterThickness = value; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void GammaRayTelDetectorConstruction::SetTKRSiliconThickness(G4double value) { + tkrSiliconThickness = value; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void GammaRayTelDetectorConstruction::SetTKRSiliconPitch(G4double value) { + tkrSiliconPitch = value; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void GammaRayTelDetectorConstruction::SetTKRTileSizeXY(G4double value) { + tkrSiliconTileXY = value; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void GammaRayTelDetectorConstruction::SetNbOfTKRLayers(G4int value) { + numberOfTKRLayers = value; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void GammaRayTelDetectorConstruction::SetNbOfTKRTiles(G4int value) { + numberOfTKRTiles = value; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void GammaRayTelDetectorConstruction::SetTKRLayerDistance(G4double value) { + tkrLayerDistance = value; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void GammaRayTelDetectorConstruction::SetTKRViewsDistance(G4double value) { + tkrViewsDistance = value; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void GammaRayTelDetectorConstruction::SetNbOfCALLayers(G4int value) { + numberOfCALLayers = value; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void GammaRayTelDetectorConstruction::SetNbOfCALBars(G4int value) { + numberOfCALBars = value; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelDetectorConstruction::SetCALBarThickness(G4double value) { + calBarThickness = value; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelDetectorConstruction::SetACDThickness(G4double value) { + acdThickness = value; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelDetectorConstruction::SetMagField(G4double fieldValue) { + // Just invoke manually the MT-safe command /globalField/setValue instantiated by the GlobalFieldMessenger + std::stringstream stream; + stream << "/globalField/setValue 0 0 " << fieldValue / tesla << " tesla"; + + G4String command = stream.str(); + G4cout << "Going to execute: " << command << G4endl; + + auto *uiManager = G4UImanager::GetUIpointer(); + uiManager->ApplyCommand(command); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelDetectorConstruction::UpdateGeometry() { + // delete payloadSD; + G4RunManager::GetRunManager()->DefineWorldVolume(ConstructPayload()); + G4RunManager::GetRunManager()->PhysicsHasBeenModified(); + G4RegionStore::GetInstance()->UpdateMaterialList(physiWorld); + G4RunManager::GetRunManager()->ReinitializeGeometry(); +} diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc index ab57a07952..3df2e22516 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc @@ -24,7 +24,6 @@ // ******************************************************************** // // -// // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -35,237 +34,217 @@ // // ************************************************************ +#include "GammaRayTelDetectorConstruction.hh" #include "GammaRayTelDetectorMessenger.hh" -#include "GammaRayTelDetectorConstruction.hh" -#include "G4UIdirectory.hh" -#include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithAnInteger.hh" #include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithAString.hh" #include "G4UIcmdWithoutParameter.hh" +#include "G4UIdirectory.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorConstruction * GammaRayTelDet) - :GammaRayTelDetector(GammaRayTelDet) +GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorConstruction *GammaRayTelDet) : detector(GammaRayTelDet) { + directory = new G4UIdirectory("/payload/"); + directory->SetGuidance("GammaRayTel payload control."); -{ - GammaRayTeldetDir = new G4UIdirectory("/payload/"); - GammaRayTeldetDir->SetGuidance("GammaRayTel payload control."); - - // converter material command - - ConverterMaterCmd = new G4UIcmdWithAString("/payload/setConvMat",this); - ConverterMaterCmd->SetGuidance("Select Material of the Converter."); - ConverterMaterCmd->SetParameterName("choice",false); - ConverterMaterCmd->AvailableForStates(G4State_Idle); + // converter material command - // converter thickness command - - ConverterThickCmd = new G4UIcmdWithADoubleAndUnit - ("/payload/setConvThick",this); - ConverterThickCmd->SetGuidance("Set Thickness of the Converter"); - ConverterThickCmd->SetParameterName("Size",false); - ConverterThickCmd->SetRange("Size>=0."); - ConverterThickCmd->SetUnitCategory("Length"); - ConverterThickCmd->AvailableForStates(G4State_Idle); + converterMaterialCmd = new G4UIcmdWithAString("/payload/setConvMat", this); + converterMaterialCmd->SetGuidance("Select the material of the converter."); + converterMaterialCmd->SetParameterName("choice", false); + converterMaterialCmd->AvailableForStates(G4State_Idle); - // tracker silicon thickness command + // converter thickness command - SiliconThickCmd = new G4UIcmdWithADoubleAndUnit - ("/payload/setSiThick",this); - SiliconThickCmd->SetGuidance("Set Thickness of the Silicon"); - SiliconThickCmd->SetParameterName("Size",false); - SiliconThickCmd->SetRange("Size>=0."); - SiliconThickCmd->SetUnitCategory("Length"); - SiliconThickCmd->AvailableForStates(G4State_Idle); + converterThicknessCmd = new G4UIcmdWithADoubleAndUnit("/payload/setConvThick", this); + converterThicknessCmd->SetGuidance("Set the thickness of the converter."); + converterThicknessCmd->SetParameterName("Size", false); + converterThicknessCmd->SetRange("Size>=0."); + converterThicknessCmd->SetUnitCategory("Length"); + converterThicknessCmd->AvailableForStates(G4State_Idle); - // tracker silicon pitch command + // tracker silicon thickness command - SiliconPitchCmd = new G4UIcmdWithADoubleAndUnit - ("/payload/setSiPitch",this); - SiliconPitchCmd->SetGuidance("Set Pitch of the Silicon Strips"); - SiliconPitchCmd->SetParameterName("Size",false); - SiliconPitchCmd->SetRange("Size>=0."); - SiliconPitchCmd->SetUnitCategory("Length"); - SiliconPitchCmd->AvailableForStates(G4State_Idle); - - // tracker silicon tile size command - - SiliconTileXYCmd = new G4UIcmdWithADoubleAndUnit - ("/payload/setSiTileXY",this); - SiliconTileXYCmd->SetGuidance("Set XY dimensions of Si Tile"); - SiliconTileXYCmd->SetParameterName("Size",false); - SiliconTileXYCmd->SetRange("Size>=0."); - SiliconTileXYCmd->SetUnitCategory("Length"); - SiliconTileXYCmd->AvailableForStates(G4State_Idle); - - // tracker number of silicon tiles + siliconThicknessCmd = new G4UIcmdWithADoubleAndUnit("/payload/setSiThick", this); + siliconThicknessCmd->SetGuidance("Set the thickness of the silicon."); + siliconThicknessCmd->SetParameterName("Size", false); + siliconThicknessCmd->SetRange("Size>=0."); + siliconThicknessCmd->SetUnitCategory("Length"); + siliconThicknessCmd->AvailableForStates(G4State_Idle); - NbSiTilesCmd = new G4UIcmdWithAnInteger("/payload/setNbOfSiTiles",this); - NbSiTilesCmd->SetGuidance("Set number of Si Tiles."); - NbSiTilesCmd->SetParameterName("NbSiTiles",false); - NbSiTilesCmd->SetRange("NbSiTiles>0 && NbSiTiles<100"); - NbSiTilesCmd->AvailableForStates(G4State_Idle); + // tracker silicon pitch command - // tracker number of silicon layers + siliconPitchCmd = new G4UIcmdWithADoubleAndUnit("/payload/setSiPitch", this); + siliconPitchCmd->SetGuidance("Set the pitch of silicon strips."); + siliconPitchCmd->SetParameterName("Size", false); + siliconPitchCmd->SetRange("Size>=0."); + siliconPitchCmd->SetUnitCategory("Length"); + siliconPitchCmd->AvailableForStates(G4State_Idle); - NbTKRLayersCmd = new G4UIcmdWithAnInteger("/payload/setNbOfTKRLayers",this); - NbTKRLayersCmd->SetGuidance("Set number of TKR Layers."); - NbTKRLayersCmd->SetParameterName("NbTKRLayers",false); - NbTKRLayersCmd->SetRange("NbTKRLayers>0 && NbTKRLayers<30"); - NbTKRLayersCmd->AvailableForStates(G4State_Idle); + // tracker silicon tile size command - // tracker layer distance + siliconTileXYCmd = new G4UIcmdWithADoubleAndUnit("/payload/setSiTileXY", this); + siliconTileXYCmd->SetGuidance("Set XY dimensions of a silicon tile."); + siliconTileXYCmd->SetParameterName("Size", false); + siliconTileXYCmd->SetRange("Size>=0."); + siliconTileXYCmd->SetUnitCategory("Length"); + siliconTileXYCmd->AvailableForStates(G4State_Idle); - LayerDistanceCmd = new G4UIcmdWithADoubleAndUnit - ("/payload/setLayerDistance",this); - LayerDistanceCmd->SetGuidance("Set distance between two layers"); - LayerDistanceCmd->SetParameterName("Size",false); - LayerDistanceCmd->SetRange("Size>=0."); - LayerDistanceCmd->SetUnitCategory("Length"); - LayerDistanceCmd->AvailableForStates(G4State_Idle); + // tracker number of silicon tiles - // tracker views distance - - ViewsDistanceCmd = new G4UIcmdWithADoubleAndUnit - ("/payload/setViewsDistance",this); - ViewsDistanceCmd->SetGuidance("Set distance between X and Y views"); - ViewsDistanceCmd->SetParameterName("Size",false); - ViewsDistanceCmd->SetRange("Size>=0."); - ViewsDistanceCmd->SetUnitCategory("Length"); - ViewsDistanceCmd->AvailableForStates(G4State_Idle); + numberOfSiTilesCmd = new G4UIcmdWithAnInteger("/payload/setNbOfSiTiles", this); + numberOfSiTilesCmd->SetGuidance("Set the number of silicon tiles."); + numberOfSiTilesCmd->SetParameterName("NbSiTiles", false); + numberOfSiTilesCmd->SetRange("NbSiTiles>0 && NbSiTiles<100"); + numberOfSiTilesCmd->AvailableForStates(G4State_Idle); - // calorimeter detector thickness + // tracker number of silicon layers - CALThickCmd = new G4UIcmdWithADoubleAndUnit - ("/payload/setCALThick",this); - CALThickCmd->SetGuidance("Set thickness of CAL detectors"); - CALThickCmd->SetParameterName("Size",false); - CALThickCmd->SetRange("Size>=0."); - CALThickCmd->SetUnitCategory("Length"); - CALThickCmd->AvailableForStates(G4State_Idle); + numberOfTKRLayersCmd = new G4UIcmdWithAnInteger("/payload/setNbOfTKRLayers", this); + numberOfTKRLayersCmd->SetGuidance("Set the number of TKR layers."); + numberOfTKRLayersCmd->SetParameterName("NbTKRLayers", false); + numberOfTKRLayersCmd->SetRange("NbTKRLayers>0 && NbTKRLayers<30"); + numberOfTKRLayersCmd->AvailableForStates(G4State_Idle); - // number calorimeter detectors + // tracker layer distance - NbCALBarsCmd = new G4UIcmdWithAnInteger("/payload/setNbOfCALBars",this); - NbCALBarsCmd->SetGuidance("Set number of CsI Bars."); - NbCALBarsCmd->SetParameterName("NbSiTiles",false); - NbCALBarsCmd->SetRange("NbSiTiles>0 && NbSiTiles<100"); - NbCALBarsCmd->AvailableForStates(G4State_Idle); + layerDistanceCmd = new G4UIcmdWithADoubleAndUnit("/payload/setLayerDistance", this); + layerDistanceCmd->SetGuidance("Set the distance between two layers."); + layerDistanceCmd->SetParameterName("Size", false); + layerDistanceCmd->SetRange("Size>=0."); + layerDistanceCmd->SetUnitCategory("Length"); + layerDistanceCmd->AvailableForStates(G4State_Idle); - // number calorimeter layers + // tracker views distance - NbCALLayersCmd = new G4UIcmdWithAnInteger("/payload/setNbOfCALLayers",this); - NbCALLayersCmd->SetGuidance("Set number of CAL Layers."); - NbCALLayersCmd->SetParameterName("NbCALLayers",false); - NbCALLayersCmd->SetRange("NbCALLayers>0 && NbCALLayers<16"); - NbCALLayersCmd->AvailableForStates(G4State_Idle); + viewsDistanceCmd = new G4UIcmdWithADoubleAndUnit("/payload/setViewsDistance", this); + viewsDistanceCmd->SetGuidance("Set the distance between X and Y views."); + viewsDistanceCmd->SetParameterName("Size", false); + viewsDistanceCmd->SetRange("Size>=0."); + viewsDistanceCmd->SetUnitCategory("Length"); + viewsDistanceCmd->AvailableForStates(G4State_Idle); - // calorimeter detector thickness + // calorimeter detector thickness - ACDThickCmd = new G4UIcmdWithADoubleAndUnit - ("/payload/setACDThick",this); - ACDThickCmd->SetGuidance("Set thickness of ACD detectors"); - ACDThickCmd->SetParameterName("Size",false); - ACDThickCmd->SetRange("Size>=0."); - ACDThickCmd->SetUnitCategory("Length"); - ACDThickCmd->AvailableForStates(G4State_Idle); - - // update Payload + calThicknessCmd = new G4UIcmdWithADoubleAndUnit("/payload/setCALThick", this); + calThicknessCmd->SetGuidance("Set the thickness of CAL detectors."); + calThicknessCmd->SetParameterName("Size", false); + calThicknessCmd->SetRange("Size>=0."); + calThicknessCmd->SetUnitCategory("Length"); + calThicknessCmd->AvailableForStates(G4State_Idle); - UpdateCmd = new G4UIcmdWithoutParameter("/payload/update",this); - UpdateCmd->SetGuidance("Update payload geometry."); - UpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" "); - UpdateCmd->SetGuidance("if you changed geometrical value(s)."); - UpdateCmd->AvailableForStates(G4State_Idle); - - // magnetic field + // calorimeter, number of detectors - MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/payload/setField",this); - MagFieldCmd->SetGuidance("Define magnetic field."); - MagFieldCmd->SetGuidance("Magnetic field will be in Z direction."); - MagFieldCmd->SetParameterName("Bz",false); - MagFieldCmd->SetUnitCategory("Magnetic flux density"); - MagFieldCmd->AvailableForStates(G4State_Idle); + numberOfCALBarsCmd = new G4UIcmdWithAnInteger("/payload/setNbOfCALBars", this); + numberOfCALBarsCmd->SetGuidance("Set the number of CsI bars."); + numberOfCALBarsCmd->SetParameterName("NbSiTiles", false); + numberOfCALBarsCmd->SetRange("NbSiTiles>0 && NbSiTiles<100"); + numberOfCALBarsCmd->AvailableForStates(G4State_Idle); + + // calorimeter, number of layers + + numberOfCALLayersCmd = new G4UIcmdWithAnInteger("/payload/setNbOfCALLayers", this); + numberOfCALLayersCmd->SetGuidance("Set the number of CAL layers."); + numberOfCALLayersCmd->SetParameterName("NbCALLayers", false); + numberOfCALLayersCmd->SetRange("NbCALLayers>0 && NbCALLayers<16"); + numberOfCALLayersCmd->AvailableForStates(G4State_Idle); + + // anticoincidence detector thickness + + acdThicknessCmd = new G4UIcmdWithADoubleAndUnit("/payload/setACDThick", this); + acdThicknessCmd->SetGuidance("Set the thickness of ACD detectors"); + acdThicknessCmd->SetParameterName("Size", false); + acdThicknessCmd->SetRange("Size>=0."); + acdThicknessCmd->SetUnitCategory("Length"); + acdThicknessCmd->AvailableForStates(G4State_Idle); + + // update payload geometry + + updateCmd = new G4UIcmdWithoutParameter("/payload/update", this); + updateCmd->SetGuidance("Update the geometry of the payload."); + updateCmd->SetGuidance("This command MUST be applied before \"beamOn\" "); + updateCmd->SetGuidance("if you changed geometrical value(s)."); + updateCmd->AvailableForStates(G4State_Idle); + + // magnetic field + + magneticFieldCmd = new G4UIcmdWithADoubleAndUnit("/payload/setField", this); + magneticFieldCmd->SetGuidance("Define the magnetic field."); + magneticFieldCmd->SetGuidance("Magnetic field will be in Z direction."); + magneticFieldCmd->SetParameterName("Bz", false); + magneticFieldCmd->SetUnitCategory("Magnetic flux density"); + magneticFieldCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelDetectorMessenger::~GammaRayTelDetectorMessenger() -{ - delete ConverterMaterCmd; delete ConverterThickCmd; - delete NbSiTilesCmd; delete NbTKRLayersCmd; - delete SiliconTileXYCmd; delete SiliconPitchCmd; - delete SiliconThickCmd; delete LayerDistanceCmd; - delete ViewsDistanceCmd; delete ACDThickCmd; - delete NbCALLayersCmd; delete NbCALBarsCmd; - delete CALThickCmd; delete UpdateCmd; - delete MagFieldCmd; delete GammaRayTeldetDir; +GammaRayTelDetectorMessenger::~GammaRayTelDetectorMessenger() { + delete converterMaterialCmd; + delete converterThicknessCmd; + delete numberOfSiTilesCmd; + delete numberOfTKRLayersCmd; + delete siliconTileXYCmd; + delete siliconPitchCmd; + delete siliconThicknessCmd; + delete layerDistanceCmd; + delete viewsDistanceCmd; + delete acdThicknessCmd; + delete numberOfCALLayersCmd; + delete numberOfCALBarsCmd; + delete calThicknessCmd; + delete updateCmd; + delete magneticFieldCmd; + delete directory; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelDetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ +void GammaRayTelDetectorMessenger::SetNewValue(G4UIcommand *command, G4String newValue) { + // converter - // converter + if (command == converterMaterialCmd) { + detector->SetConverterMaterial(newValue); + } else if (command == converterThicknessCmd) { + detector->SetConverterThickness(converterThicknessCmd->GetNewDoubleValue(newValue)); + } else - if( command == ConverterMaterCmd ) - { GammaRayTelDetector->SetConverterMaterial(newValue);} - - if( command == ConverterThickCmd ) - { GammaRayTelDetector->SetConverterThickness(ConverterThickCmd->GetNewDoubleValue(newValue));} - - // tracker + // tracker (TKR) - if( command == SiliconTileXYCmd ) - { GammaRayTelDetector->SetTKRTileSizeXY(SiliconTileXYCmd->GetNewDoubleValue(newValue));} + if (command == siliconTileXYCmd) { + detector->SetTKRTileSizeXY(siliconTileXYCmd->GetNewDoubleValue(newValue)); + } else if (command == siliconPitchCmd) { + detector->SetTKRSiliconPitch(siliconPitchCmd->GetNewDoubleValue(newValue)); + } else if (command == siliconThicknessCmd) { + detector->SetTKRSiliconThickness(siliconThicknessCmd->GetNewDoubleValue(newValue)); + } else if (command == numberOfSiTilesCmd) { + detector->SetNbOfTKRTiles(numberOfSiTilesCmd->GetNewIntValue(newValue)); + } else if (command == numberOfTKRLayersCmd) { + detector->SetNbOfTKRLayers(numberOfTKRLayersCmd->GetNewIntValue(newValue)); + } else if (command == layerDistanceCmd) { + detector->SetTKRLayerDistance(layerDistanceCmd->GetNewDoubleValue(newValue)); + } else if (command == viewsDistanceCmd) { + detector->SetTKRViewsDistance(viewsDistanceCmd->GetNewDoubleValue(newValue)); + } else - if( command == SiliconPitchCmd ) - { GammaRayTelDetector->SetTKRSiliconPitch(SiliconPitchCmd->GetNewDoubleValue(newValue));} + // calorimeter (CAL) - if( command == SiliconThickCmd ) - { GammaRayTelDetector->SetTKRSiliconThickness(SiliconThickCmd->GetNewDoubleValue(newValue));} - - if( command == NbSiTilesCmd ) - { GammaRayTelDetector->SetNbOfTKRTiles(NbSiTilesCmd->GetNewIntValue(newValue));} + if (command == numberOfCALLayersCmd) { + detector->SetNbOfCALLayers(numberOfCALLayersCmd->GetNewIntValue(newValue)); + } else if (command == numberOfCALBarsCmd) { + detector->SetNbOfCALBars(numberOfCALBarsCmd->GetNewIntValue(newValue)); + } else if (command == calThicknessCmd) { + detector->SetCALBarThickness(calThicknessCmd->GetNewDoubleValue(newValue)); + } else - if( command == NbTKRLayersCmd ) - { GammaRayTelDetector->SetNbOfTKRLayers(NbTKRLayersCmd->GetNewIntValue(newValue));} + // anticoincidence (ACD) - if( command == LayerDistanceCmd ) - { GammaRayTelDetector->SetTKRLayerDistance(LayerDistanceCmd->GetNewDoubleValue(newValue));} - - if( command == ViewsDistanceCmd ) - { GammaRayTelDetector->SetTKRViewsDistance(ViewsDistanceCmd->GetNewDoubleValue(newValue));} - - // calorimeter - - if( command == NbCALLayersCmd ) - { GammaRayTelDetector->SetNbOfCALLayers(NbCALLayersCmd->GetNewIntValue(newValue));} - - if( command == NbCALBarsCmd ) - { GammaRayTelDetector->SetNbOfCALBars(NbCALBarsCmd->GetNewIntValue(newValue));} - - if( command == CALThickCmd ) - { GammaRayTelDetector->SetCALBarThickness(CALThickCmd->GetNewDoubleValue(newValue));} - - // anticoincidence - - if( command == ACDThickCmd ) - { GammaRayTelDetector->SetACDThickness(ACDThickCmd->GetNewDoubleValue(newValue));} - - if( command == UpdateCmd ) - { GammaRayTelDetector->UpdateGeometry(); } - - if( command == MagFieldCmd ) - { GammaRayTelDetector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} + if (command == acdThicknessCmd) { + detector->SetACDThickness(acdThicknessCmd->GetNewDoubleValue(newValue)); + } else if (command == updateCmd) { + detector->UpdateGeometry(); + } else if (command == magneticFieldCmd) { + detector->SetMagField(magneticFieldCmd->GetNewDoubleValue(newValue)); + } } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc index 74103d3966..b31c8815c8 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc @@ -29,82 +29,67 @@ // CERN Geneva Switzerland // // -// ------------ GammaRayTelDigi ------ +// ------------ GammaRayTelDigi ------ // by F.Longo, R.Giannitrapani & G.Santin (21 oct 2001) // // ************************************************************ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... #include "GammaRayTelDigi.hh" -G4ThreadLocal G4Allocator *GammaRayTelDigiAllocator = 0; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4ThreadLocal G4Allocator *digitAllocator{nullptr}; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelDigi::GammaRayTelDigi() +GammaRayTelDigi::GammaRayTelDigi() { +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +GammaRayTelDigi::~GammaRayTelDigi() { +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +GammaRayTelDigi::GammaRayTelDigi(const GammaRayTelDigi &right) : + planeType(right.planeType), + planeNumber(right.planeNumber), + stripNumber(right.stripNumber), + digitType(right.digitType), + energy(right.energy) { - PlaneType = 0; - PlaneNumber = 0; - StripNumber=0; - DigiType = 0; - Energy =0.; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelDigi::~GammaRayTelDigi() -{;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -GammaRayTelDigi::GammaRayTelDigi(const GammaRayTelDigi& right) - :G4VDigi() -{ - PlaneType = right.PlaneType; - PlaneNumber = right.PlaneNumber; - StripNumber = right.StripNumber; - DigiType = right.DigiType; - Energy= right.Energy; +auto GammaRayTelDigi::operator=(const GammaRayTelDigi &right) -> const GammaRayTelDigi& { + planeType = right.planeType; + planeNumber = right.planeNumber; + stripNumber = right.stripNumber; + digitType = right.digitType; + energy = right.energy; + return *this; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -const GammaRayTelDigi& GammaRayTelDigi::operator=(const GammaRayTelDigi& right) -{ - PlaneType = right.PlaneType; - PlaneNumber = right.PlaneNumber; - StripNumber = right.StripNumber; - DigiType = right.DigiType; - Energy= right.Energy; - return *this; +auto GammaRayTelDigi::operator==(const GammaRayTelDigi &right) const -> G4bool { + return ( + (planeType == right.planeType) && + (planeNumber == right.planeNumber) && + (stripNumber == right.stripNumber) && + (digitType == right.digitType) && + (energy == right.energy) + ); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4bool GammaRayTelDigi::operator==(const GammaRayTelDigi& right) const -{ - return ((PlaneType==right.PlaneType)&&(PlaneNumber==right.PlaneNumber)&&(StripNumber==right.StripNumber)&&(DigiType==right.DigiType)&&(Energy==right.Energy)); +void GammaRayTelDigi::Draw() { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelDigi::Draw() -{;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void GammaRayTelDigi::Print() -{;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - - - - - - +void GammaRayTelDigi::Print() { +} diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizer.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizer.cc index 7b1b1c7bfa..571fb91309 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizer.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizer.cc @@ -36,187 +36,143 @@ #include -#include "GammaRayTelDigitizer.hh" -#include "GammaRayTelDigi.hh" -#include "GammaRayTelDigitizerMessenger.hh" - -#include "GammaRayTelTrackerHit.hh" -#include "GammaRayTelCalorimeterHit.hh" #include "GammaRayTelAnticoincidenceHit.hh" +#include "GammaRayTelCalorimeterHit.hh" +#include "GammaRayTelDigi.hh" +#include "GammaRayTelDigitizer.hh" +#include "GammaRayTelDigitizerMessenger.hh" +#include "GammaRayTelTrackerHit.hh" -#include "G4SystemOfUnits.hh" -#include "G4EventManager.hh" -#include "G4Event.hh" -#include "G4SDManager.hh" #include "G4DigiManager.hh" +#include "G4Event.hh" +#include "G4EventManager.hh" #include "G4ios.hh" +#include "G4SDManager.hh" +#include "G4SystemOfUnits.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelDigitizer::GammaRayTelDigitizer(G4String name) - :G4VDigitizerModule(name) -{ - - - G4String colName = "DigitsCollection"; - collectionName.push_back(colName); - Energy_Threshold = 120.*keV; - TotalEnergy = 0.; - ACDThreshold = 15*keV; - -//create a messenger for this class - digiMessenger = new GammaRayTelDigitizerMessenger(this); +GammaRayTelDigitizer::GammaRayTelDigitizer(G4String name) : G4VDigitizerModule(name) { + constexpr auto DIGIT_COLLECTION_NAME{"DigitsCollection"}; + collectionName.push_back(DIGIT_COLLECTION_NAME); + // create a messenger for this class + digitizerMessenger = new GammaRayTelDigitizerMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelDigitizer::~GammaRayTelDigitizer() -{ - delete digiMessenger; +GammaRayTelDigitizer::~GammaRayTelDigitizer() { + delete digitizerMessenger; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelDigitizer::Digitize() -{ - DigitsCollection = new GammaRayTelDigitsCollection - ("GammaRayTelDigitizer","DigitsCollection"); // to create the Digi Collection - - G4DigiManager* DigiMan = G4DigiManager::GetDMpointer(); - - G4int THCID; // TrackerCollection - G4int CHCID; // CalorimeterCollection - G4int AHCID; // AnticoincidenceCollection +void GammaRayTelDigitizer::Digitize() { + digitsCollection = new GammaRayTelDigitsCollection("GammaRayTelDigitizer", "DigitsCollection"); // to create the Digi Collection - TotalEnergy = 0.; // at each event - - // TKR Hits collection - - THCID = DigiMan->GetHitsCollectionID("TrackerCollection"); - GammaRayTelTrackerHitsCollection* THC = 0; - THC = (GammaRayTelTrackerHitsCollection*) - (DigiMan->GetHitsCollection(THCID)); + auto *digitManager = G4DigiManager::GetDMpointer(); + G4int trackerCollectionIdentifier{0}; // TrackerCollection + G4int calorimeterCollectionIdentifier{0}; // CalorimeterCollection + G4int anticoincidenceCollectionIdentifier{0}; // AnticoincidenceCollection - // CAL Hits collection + totalEnergy = 0.; // at each event - CHCID = DigiMan->GetHitsCollectionID("CalorimeterCollection"); - GammaRayTelCalorimeterHitsCollection* CHC = 0; - CHC = (GammaRayTelCalorimeterHitsCollection*) - (DigiMan->GetHitsCollection(CHCID)); + // TKR hits collection - // ACD Hits collection + trackerCollectionIdentifier = digitManager->GetHitsCollectionID("TrackerCollection"); + GammaRayTelTrackerHitsCollection *trackerCollection{nullptr}; + trackerCollection = (GammaRayTelTrackerHitsCollection*) (digitManager->GetHitsCollection(trackerCollectionIdentifier)); - AHCID = DigiMan->GetHitsCollectionID("AnticoincidenceCollection"); - GammaRayTelAnticoincidenceHitsCollection* AHC = 0; - AHC = (GammaRayTelAnticoincidenceHitsCollection*) - (DigiMan->GetHitsCollection(AHCID)); + // CAL hits collection - - if (THC) - { - G4int n_hit = THC->entries(); + calorimeterCollectionIdentifier = digitManager->GetHitsCollectionID("CalorimeterCollection"); + GammaRayTelCalorimeterHitsCollection *calorimeterCollection{nullptr}; + calorimeterCollection = (GammaRayTelCalorimeterHitsCollection*) (digitManager->GetHitsCollection(calorimeterCollectionIdentifier)); - for (G4int i=0;iGetEdepSil(); - G4int NStrip = (*THC)[i]->GetNStrip(); - G4int NPlane = (*THC)[i]->GetNSilPlane(); - G4int IsX = (*THC)[i]->GetPlaneType(); - - // digi generation only if energy deposit greater than threshold + // ACD hits collection - if (ESil>Energy_Threshold) - { - GammaRayTelDigi* Digi = new GammaRayTelDigi(); - Digi->SetPlaneNumber(NPlane); - Digi->SetPlaneType(IsX); - Digi->SetStripNumber(NStrip); - Digi->SetDigiType(0); - Digi->SetEnergy(0.); - DigitsCollection->insert(Digi); - } - } - } - if (CHC) - { - G4int n_hit = CHC->entries(); - - for (G4int i=0;iGetEdepCAL(); - } - // digi generation only if energy deposit greater than 0. - - if (TotalEnergy>0.) - { - GammaRayTelDigi* Digi = new GammaRayTelDigi(); - Digi->SetPlaneNumber(0); - Digi->SetPlaneType(0); - Digi->SetStripNumber(0); - Digi->SetDigiType(1); - Digi->SetEnergy(TotalEnergy); - DigitsCollection->insert(Digi); - } + anticoincidenceCollectionIdentifier = digitManager->GetHitsCollectionID("AnticoincidenceCollection"); + GammaRayTelAnticoincidenceHitsCollection *anticoincidenceCollection{nullptr}; + anticoincidenceCollection = (GammaRayTelAnticoincidenceHitsCollection*) (digitManager->GetHitsCollection(anticoincidenceCollectionIdentifier)); + if (trackerCollection != nullptr) { + G4int numberOfHits = trackerCollection->entries(); + + for (auto i = 0; i < numberOfHits; i++) { + G4double depositedEnergy = (*trackerCollection)[i]->GetDepositedEnergy(); + G4int stripNumber = (*trackerCollection)[i]->GetStripNumber(); + G4int planeNumber = (*trackerCollection)[i]->GetSiliconPlaneNumber(); + G4int IsX = (*trackerCollection)[i]->GetPlaneType(); + + // digi generation only if energy deposit is greater than threshold + + if (depositedEnergy > energyThreshold) { + auto *digit = new GammaRayTelDigi(); + digit->SetPlaneNumber(planeNumber); + digit->SetPlaneType(IsX); + digit->SetStripNumber(stripNumber); + digit->SetDigitType(0); + digit->SetEnergy(0.); + digitsCollection->insert(digit); + } + } } - if (AHC) - { - G4int n_hit = AHC->entries(); - - for (G4int i=0;iGetEdepACD(); - G4int type = (*AHC)[i]->GetACDTileNumber(); - - // digi generation only if energy deposit greater than 0. - - if (energy>ACDThreshold) - { - GammaRayTelDigi* Digi = new GammaRayTelDigi(); - Digi->SetPlaneNumber(0); - Digi->SetPlaneType(0); - Digi->SetStripNumber(type); - Digi->SetDigiType(2); - Digi->SetEnergy(energy); - DigitsCollection->insert(Digi); - } - - } + if (calorimeterCollection != nullptr) { + G4int numberOfHits = calorimeterCollection->entries(); + + for (auto i = 0; i < numberOfHits; i++) { + totalEnergy += (*calorimeterCollection)[i]->GetCALDepositedEnergy(); + } + + // digit generation only if energy deposit is greater than 0. + + if (totalEnergy > 0.) { + auto *digit = new GammaRayTelDigi(); + digit->SetPlaneNumber(0); + digit->SetPlaneType(0); + digit->SetStripNumber(0); + digit->SetDigitType(1); + digit->SetEnergy(totalEnergy); + digitsCollection->insert(digit); + } } - - if (THC||AHC||CHC){ - G4cout << "Number of digits in this event = " - << DigitsCollection->entries() - // << " " << DigitsCollection->GetName() - // << " " << DigitsCollection->GetDMname() - << G4endl; - } - - StoreDigiCollection(DigitsCollection); - - G4int DCID = -1; - if(DCID<0) - { - // DigiMan->List(); - DCID = DigiMan->GetDigiCollectionID("GammaRayTelDigitizer/DigitsCollection"); + + if (anticoincidenceCollection != nullptr) { + G4int numberOfHits = anticoincidenceCollection->entries(); + + for (G4int i = 0; i < numberOfHits; i++) { + auto energy = (*anticoincidenceCollection)[i]->GetEdepACD(); + auto type = (*anticoincidenceCollection)[i]->GetACDTileNumber(); + + // digit generation only if energy deposit is greater than 0. + + if (energy > acdThreshold) { + auto *digit = new GammaRayTelDigi(); + digit->SetPlaneNumber(0); + digit->SetPlaneType(0); + digit->SetStripNumber(type); + digit->SetDigitType(2); + digit->SetEnergy(energy); + digitsCollection->insert(digit); + } + } + } + + if (trackerCollection != nullptr || anticoincidenceCollection != nullptr || calorimeterCollection != nullptr) { + G4cout << "Number of digits in this event: " << digitsCollection->entries() + // << " " << digitsCollection->GetName() + // << " " << digitsCollection->GetDMname() + << G4endl; + } + + StoreDigiCollection(digitsCollection); + + G4int digitsCollectionIdentifier{-1}; + if (digitsCollectionIdentifier < 0) { + // digiManager->List(); + digitsCollectionIdentifier = digitManager->GetDigiCollectionID("GammaRayTelDigitizer/DigitsCollection"); } - - } - - - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - - - - - diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc index 7f10a6a085..491b65bc06 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc @@ -34,58 +34,36 @@ // // ************************************************************ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - +#include "GammaRayTelDigitizer.hh" #include "GammaRayTelDigitizerMessenger.hh" -#include "GammaRayTelDigitizer.hh" #include "G4SystemOfUnits.hh" #include "G4UIcmdWithADoubleAndUnit.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelDigitizerMessenger::GammaRayTelDigitizerMessenger -(GammaRayTelDigitizer* GammaRayTelDigit) - :GammaRayTelAction(GammaRayTelDigit) -{ - ThresholdCmd = new G4UIcmdWithADoubleAndUnit("/digitizer/Threshold",this); - ThresholdCmd->SetGuidance("Energy deposition threshold for TKR digi generation"); - ThresholdCmd->SetParameterName("choice",true); - ThresholdCmd->SetDefaultValue((G4double)20.*keV); - ThresholdCmd->SetRange("Threshold >=0."); - ThresholdCmd->SetUnitCategory("Energy"); - ThresholdCmd->AvailableForStates(G4State_PreInit,G4State_Idle); +GammaRayTelDigitizerMessenger::GammaRayTelDigitizerMessenger(GammaRayTelDigitizer *GammaRayTelDigit) : GammaRayTelAction(GammaRayTelDigit) { + constexpr auto ENERGY_DEPOSITION_THRESHOLD_DEFAULT_VALUE{(G4double) 20. * keV}; + + thresholdCmd = new G4UIcmdWithADoubleAndUnit("/digitizer/Threshold", this); + thresholdCmd->SetGuidance("Energy deposition threshold for tracker (TKR) digi generation"); + thresholdCmd->SetParameterName("choice", true); + thresholdCmd->SetDefaultValue(ENERGY_DEPOSITION_THRESHOLD_DEFAULT_VALUE); + thresholdCmd->SetRange("Threshold >=0."); + thresholdCmd->SetUnitCategory("Energy"); + thresholdCmd->AvailableForStates(G4State_PreInit, G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelDigitizerMessenger::~GammaRayTelDigitizerMessenger() -{ - delete ThresholdCmd; +GammaRayTelDigitizerMessenger::~GammaRayTelDigitizerMessenger() { + delete thresholdCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelDigitizerMessenger::SetNewValue(G4UIcommand * command,G4String newValue) -{ - if( command == ThresholdCmd ) - { - GammaRayTelAction->SetThreshold - (ThresholdCmd->GetNewDoubleValue(newValue)); +void GammaRayTelDigitizerMessenger::SetNewValue(G4UIcommand *command, G4String newValue) { + if (command == thresholdCmd) { + GammaRayTelAction->SetThreshold(thresholdCmd->GetNewDoubleValue(newValue)); } } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - - - - - - - diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc index 0f5d2dd6e4..cbc87362d5 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc @@ -42,207 +42,187 @@ #include "GammaRayTelTrackerHit.hh" #include "GammaRayTelAnticoincidenceHit.hh" #include "GammaRayTelCalorimeterHit.hh" - #include "GammaRayTelAnalysis.hh" +#include "GammaRayTelDigi.hh" +#include "GammaRayTelDigitizer.hh" -#include "G4SystemOfUnits.hh" +#include "G4DigiManager.hh" #include "G4Event.hh" #include "G4EventManager.hh" #include "G4HCofThisEvent.hh" -#include "G4VHitsCollection.hh" -#include "G4SDManager.hh" -#include "G4UImanager.hh" #include "G4ios.hh" +#include "G4SDManager.hh" +#include "G4SystemOfUnits.hh" +#include "G4UImanager.hh" #include "G4UnitsTable.hh" +#include "G4VHitsCollection.hh" #include "Randomize.hh" -#include "GammaRayTelDigi.hh" -#include "GammaRayTelDigitizer.hh" -#include "G4DigiManager.hh" +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... // This file is a global variable in which we store energy deposition per hit // and other relevant information -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -GammaRayTelEventAction::GammaRayTelEventAction(GammaRayTelRunAction* runAction) - :trackerCollID(-1),calorimeterCollID(-1), - anticoincidenceCollID(-1), drawFlag("all"), - theRunAction(runAction) -{ - GammaRayTelDigitizer * myDM = new GammaRayTelDigitizer( "GammaRayTelDigitizer" ); - G4DigiManager::GetDMpointer()->AddNewModule(myDM); +GammaRayTelEventAction::GammaRayTelEventAction(GammaRayTelRunAction *runAction) : theRunAction(runAction) { + auto *digitizer = new GammaRayTelDigitizer("GammaRayTelDigitizer"); + G4DigiManager::GetDMpointer()->AddNewModule(digitizer); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelEventAction::~GammaRayTelEventAction() -{;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void GammaRayTelEventAction::BeginOfEventAction(const G4Event* evt) -{ - G4int evtNb = evt->GetEventID(); - G4cout << "Event: " << evtNb << G4endl; - G4SDManager * SDman = G4SDManager::GetSDMpointer(); - - if (trackerCollID==-1) { - trackerCollID = SDman->GetCollectionID("TrackerCollection"); - } - if(anticoincidenceCollID==-1) { - anticoincidenceCollID = - SDman->GetCollectionID("AnticoincidenceCollection"); - } - if(calorimeterCollID==-1) { - calorimeterCollID = - SDman->GetCollectionID("CalorimeterCollection"); - } +GammaRayTelEventAction::~GammaRayTelEventAction() { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelEventAction::EndOfEventAction(const G4Event* evt) -{ - G4int event_id = evt->GetEventID(); +void GammaRayTelEventAction::BeginOfEventAction(const G4Event *event) { + G4int eventIdentifer = event->GetEventID(); + G4cout << "Event: " << eventIdentifer << G4endl; + auto *sensitiveDetectorManager = G4SDManager::GetSDMpointer(); - - if (!theRunAction) - { - G4Exception("GammaRayTelEventAction::BeginOfEventAction()", - "GTR0001",FatalException,"Null pointer to Run Action: this should not be"); + if (trackerCollectionID == -1) { + trackerCollectionID = sensitiveDetectorManager->GetCollectionID("TrackerCollection"); } + if (anticoincidenceCollectionID == -1) { + anticoincidenceCollectionID = sensitiveDetectorManager->GetCollectionID("AnticoincidenceCollection"); + } + if (calorimeterCollectionID == -1) { + calorimeterCollectionID = sensitiveDetectorManager->GetCollectionID("CalorimeterCollection"); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelEventAction::EndOfEventAction(const G4Event *event) { + G4int eventIdentifier = event->GetEventID(); + + if (theRunAction == nullptr) { + G4Exception("GammaRayTelEventAction::BeginOfEventAction()", "GTR0001", FatalException, "Null pointer to Run Action: this should not be"); + } + #ifdef G4STORE_DATA - std::ofstream* outFile = theRunAction->GetOutputFile(); + auto *outputFile = theRunAction->GetOutputFile(); #endif - G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); - GammaRayTelTrackerHitsCollection* THC = 0; + auto *collection = event->GetHCofThisEvent(); + GammaRayTelTrackerHitsCollection *trackerCollection{nullptr}; // TKR + // GammaRayTelCalorimeterHitsCollection* calorimeterCollection{nullptr}; // CAL + // GammaRayTelAnticoincidenceHitsCollection* anticoincidenceCollection{nullptr}; // ACD - // GammaRayTelCalorimeterHitsCollection* CHC = 0; - // GammaRayTelAnticoincidenceHitsCollection* AHC = 0; + auto *fDM = G4DigiManager::GetDMpointer(); + GammaRayTelAnalysis *analysis = GammaRayTelAnalysis::getInstance(); + if (collection != nullptr) { + trackerCollection = (GammaRayTelTrackerHitsCollection*) (collection->GetHC(trackerCollectionID)); + // calorimeterCollection = (GammaRayTelCalorimeterHitsCollection*) (collection->GetHC(calorimeterCollectionID)); + // anticoincidenceCollection = (GammaRayTelAnticoincidenceHitsCollection*) (collection->GetHC(anticoincidenceCollectionID)); - G4DigiManager * fDM = G4DigiManager::GetDMpointer(); - GammaRayTelAnalysis* analysis = GammaRayTelAnalysis::getInstance(); + if (trackerCollection != nullptr) { + G4int numberOfHits = trackerCollection->entries(); + G4cout << "Number of tracker hits in this event: " << numberOfHits << G4endl; + + G4double depositedEnergy{0}; + G4int stripNumber; + G4int planeNumber; + G4int isXPlane; + + // This is a cycle on all the tracker hits of this event + + for (auto i = 0; i < numberOfHits; i++) { + // Here we put the hit data in an ASCII file for later analysis + depositedEnergy = (*trackerCollection)[i]->GetDepositedEnergy(); + stripNumber = (*trackerCollection)[i]->GetStripNumber(); + planeNumber = (*trackerCollection)[i]->GetSiliconPlaneNumber(); + isXPlane = (*trackerCollection)[i]->GetPlaneType(); - if (HCE) - { - THC = (GammaRayTelTrackerHitsCollection*)(HCE->GetHC(trackerCollID)); - // CHC = (GammaRayTelCalorimeterHitsCollection*) - // (HCE->GetHC(calorimeterCollID)); - // AHC = (GammaRayTelAnticoincidenceHitsCollection*) - // (HCE->GetHC(anticoincidenceCollID)); - - if (THC) - { - int n_hit = THC->entries(); - G4cout << "Number of tracker hits in this event = " << n_hit << G4endl; - G4double ESil=0; - G4int NStrip, NPlane, IsX; - - // This is a cycle on all the tracker hits of this event - - for (int i=0;iGetEdepSil(); - NStrip = (*THC)[i]->GetNStrip(); - NPlane = (*THC)[i]->GetNSilPlane(); - IsX = (*THC)[i]->GetPlaneType(); - #ifdef G4STORE_DATA - - - (*outFile) << std::setw(7) << event_id << " " << - ESil/keV << " " << NStrip << - " " << NPlane << " " << IsX << " " << - (*THC)[i]->GetPos().x()/mm <<" "<< - (*THC)[i]->GetPos().y()/mm <<" "<< - (*THC)[i]->GetPos().z()/mm <<" "<< - G4endl; + (*outputFile) << std::setw(7) << eventIdentifier + << " " << depositedEnergy/keV + << " " << stripNumber + << " " << planeNumber + << " " << isXPlane + << " " << (*trackerCollection)[i]->GetPosition().x() / mm + << " " << (*trackerCollection)[i]->GetPosition().y() / mm + << " " << (*trackerCollection)[i]->GetPosition().z() / mm + << " " << G4endl; #else - G4cout << std::setw(7) << event_id << " " << - ESil/keV << " " << NStrip << - " " << NPlane << " " << IsX << " " << - (*THC)[i]->GetPos().x()/mm <<" "<< - (*THC)[i]->GetPos().y()/mm <<" "<< - (*THC)[i]->GetPos().z()/mm <<" "<< - G4endl; + G4cout << std::setw(7) << eventIdentifier + << " " << depositedEnergy / keV + << " " << stripNumber + << " " << planeNumber + << " " << isXPlane + << " " << (*trackerCollection)[i]->GetPosition().x() / mm + << " " << (*trackerCollection)[i]->GetPosition().y() / mm + << " " << (*trackerCollection)[i]->GetPosition().z() / mm + << " " << G4endl; #endif - - - // Here we fill the histograms of the Analysis manager - if(IsX) - { - if (analysis->GetHisto2DMode()=="position") - analysis->InsertPositionXZ((*THC)[i]->GetPos().x()/mm,(*THC)[i]->GetPos().z()/mm); - else - analysis->InsertPositionXZ(NStrip, NPlane); - if (NPlane == 0) analysis->InsertEnergy(ESil/keV); - analysis->InsertHits(NPlane); - } - else - { - if (analysis->GetHisto2DMode()=="position") - analysis->InsertPositionYZ((*THC)[i]->GetPos().y()/mm,(*THC)[i]->GetPos().z()/mm); - else - analysis->InsertPositionYZ(NStrip, NPlane); - if (NPlane == 0) analysis->InsertEnergy(ESil/keV); - analysis->InsertHits(NPlane); - } - - analysis->setNtuple( ESil/keV, NPlane, (*THC)[i]->GetPos().x()/mm, - (*THC)[i]->GetPos().y()/mm, - (*THC)[i]->GetPos().z()/mm); - - } - analysis->EndOfEvent(n_hit); - } - - GammaRayTelDigitizer * myDM = - (GammaRayTelDigitizer*)fDM->FindDigitizerModule( "GammaRayTelDigitizer" ); - myDM->Digitize(); - -#ifdef G4STORE_DATA - // the whole block is needed only when outfile is active; protect block to avoid - // compilations warnings from gcc4.6, Gunter Folger - G4int myDigiCollID = fDM->GetDigiCollectionID("DigitsCollection"); + // Here we fill the histograms of the Analysis manager + if (isXPlane != 0) { + if (analysis->GetHisto2DMode() == "position") { + analysis->InsertPositionXZ((*trackerCollection)[i]->GetPosition().x() / mm, (*trackerCollection)[i]->GetPosition().z() / mm); + } else { + analysis->InsertPositionXZ(stripNumber, planeNumber); + } + + if (planeNumber == 0) { + analysis->InsertEnergy(depositedEnergy / keV); + } + analysis->InsertHits(planeNumber); + } else { + if (analysis->GetHisto2DMode() == "position") { + analysis->InsertPositionYZ((*trackerCollection)[i]->GetPosition().y() / mm, (*trackerCollection)[i]->GetPosition().z() / mm); + } else { + analysis->InsertPositionYZ(stripNumber, planeNumber); + } + if (planeNumber == 0) { + analysis->InsertEnergy(depositedEnergy / keV); + } + analysis->InsertHits(planeNumber); + } + analysis->setNtuple(depositedEnergy / keV, planeNumber, + (*trackerCollection)[i]->GetPosition().x() / mm, + (*trackerCollection)[i]->GetPosition().y() / mm, + (*trackerCollection)[i]->GetPosition().z() / mm + ); + } + analysis->EndOfEvent(numberOfHits); + } + + auto *myDM = (GammaRayTelDigitizer*) fDM->FindDigitizerModule("GammaRayTelDigitizer"); + myDM->Digitize(); + +#ifdef G4STORE_DATA + // The whole block is needed only when outputFile is active; + // protect block to avoid compilations warnings from gcc4.6, Gunter Folger + + auto digitsCollectionIdentifier = fDM->GetDigiCollectionID("DigitsCollection"); + // G4cout << "Digits collection: " << digitsCollectionIdentifier << G4endl; - // G4cout << "digi collecion" << myDigiCollID << G4endl; + auto *digitsCollection = (GammaRayTelDigitsCollection*) fDM->GetDigiCollection(digitsCollectionIdentifier); - GammaRayTelDigitsCollection * DC = (GammaRayTelDigitsCollection*)fDM->GetDigiCollection( myDigiCollID ); - - if(DC) { - // G4cout << "Total Digits " << DC->entries() << G4endl; - G4int n_digi = DC->entries(); - G4int NStrip, NPlane, IsX; - for (G4int i=0;iGetStripNumber(); - NPlane = (*DC)[i]->GetPlaneNumber(); - IsX = (*DC)[i]->GetPlaneType(); - - (*outFile) << std::setw(7) << event_id << " " << NStrip << - " " << NPlane << " " << IsX << " " << G4endl; - } - } + if (digitsCollection != nullptr) { + auto numberOfDigits = digitsCollection->entries(); + // G4cout << "Total number of digits: " << numberOfDigits << G4endl; + + G4int stripNumber; + G4int planeNumber; + G4int isXPlane; + + for (auto i = 0; i < numberOfDigits; i++) { + // Here we put the digi data in an ASCII file for later analysis + stripNumber = (*digitsCollection)[i]->GetStripNumber(); + planeNumber = (*digitsCollection)[i]->GetPlaneNumber(); + isXPlane = (*digitsCollection)[i]->GetPlaneType(); + + (*outputFile) << std::setw(7) + << eventIdentifier + << " " << stripNumber + << " " << planeNumber + << " " << isXPlane + << " " << G4endl; + } + } #endif } } - - - - - - - - - - - - - diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc index 63596ee95d..35ad1984b7 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc @@ -32,205 +32,209 @@ #include "G4PhysListFactory.hh" #include "G4VPhysicsConstructor.hh" -// Physic lists (contained inside the Geant4 distribution) -#include "G4EmStandardPhysics_option3.hh" -#include "G4EmStandardPhysics_option4.hh" // to treat the new polarised process +// Physics lists (contained inside the Geant4 distribution) #include "G4EmLivermorePhysics.hh" +#include "G4EmLivermorePolarizedPhysics.hh" #include "G4EmPenelopePhysics.hh" -#include "G4EmLivermorePolarizedPhysics.hh" // +#include "G4EmStandardPhysics_option3.hh" +#include "G4EmStandardPhysics_option4.hh" // to treat the new polarized process -#include "G4DecayPhysics.hh" -#include "G4HadronElasticPhysics.hh" -#include "G4HadronDElasticPhysics.hh" -#include "G4HadronElasticPhysicsHP.hh" -#include "G4IonBinaryCascadePhysics.hh" #include "G4Decay.hh" -#include "G4StepLimiter.hh" -#include "G4LossTableManager.hh" -#include "G4UnitsTable.hh" -#include "G4SystemOfUnits.hh" -#include "G4ProcessManager.hh" - +#include "G4DecayPhysics.hh" +#include "G4HadronDElasticPhysics.hh" +#include "G4HadronElasticPhysics.hh" +#include "G4HadronElasticPhysicsHP.hh" +#include "G4HadronPhysicsQGSP_BIC_HP.hh" +#include "G4IonBinaryCascadePhysics.hh" #include "G4IonFluctuations.hh" #include "G4IonParametrisedLossModel.hh" -#include "G4HadronPhysicsQGSP_BIC_HP.hh" +#include "G4LossTableManager.hh" +#include "G4ProcessManager.hh" #include "G4RadioactiveDecayPhysics.hh" +#include "G4StepLimiter.hh" +#include "G4SystemOfUnits.hh" +#include "G4UnitsTable.hh" -///////////////////////////////////////////////////////////////////////////// -GammaRayTelPhysicsList::GammaRayTelPhysicsList() : G4VModularPhysicsList() -{ - G4LossTableManager::Instance(); - defaultCutValue = 100*micrometer; - SetVerboseLevel(1); +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(250*eV, 1*GeV); - SetDefaultCutValue(defaultCutValue); - DumpCutValuesTable(); +GammaRayTelPhysicsList::GammaRayTelPhysicsList() { + G4LossTableManager::Instance(); - helIsRegisted = false; - bicIsRegisted = false; - biciIsRegisted = false; - locIonIonInelasticIsRegistered = false; - radioactiveDecayIsRegisted = false; + constexpr auto DEFAULT_CUT_VALUE{100 * micrometer}; + defaultCutValue = DEFAULT_CUT_VALUE; - pMessenger = new GammaRayTelPhysicsListMessenger(this); + SetVerboseLevel(1); - SetVerboseLevel(1); + constexpr auto ENERGY_LOWER_BOUND{250 * eV}; + constexpr auto ENERGY_UPPER_BOUND{1 * GeV}; - // EM physics - emPhysicsList = new G4EmStandardPhysics_option3(1); - emName = G4String("emstandard_opt3"); + G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(ENERGY_LOWER_BOUND, ENERGY_UPPER_BOUND); + SetDefaultCutValue (defaultCutValue); + DumpCutValuesTable(); - // Decay physics and all particles - decPhysicsList = new G4DecayPhysics(); + helIsRegisted = false; + bicIsRegisted = false; + biciIsRegisted = false; + locIonIonInelasticIsRegistered = false; + radioactiveDecayIsRegisted = false; + + pMessenger = new GammaRayTelPhysicsListMessenger(this); + + SetVerboseLevel(1); + + // EM physics + emPhysicsList = new G4EmStandardPhysics_option3(1); + emName = G4String("emstandard_opt3"); + + // Decay physics and all particles + decPhysicsList = new G4DecayPhysics(); } -///////////////////////////////////////////////////////////////////////////// -GammaRayTelPhysicsList::~GammaRayTelPhysicsList() -{ - delete pMessenger; - delete emPhysicsList; - delete decPhysicsList; - for(size_t i=0; iGetPhysics(i); - G4VPhysicsConstructor* tmp = const_cast (elem); - while (elem !=0) - { - RegisterPhysics(tmp); - elem= phys->GetPhysics(++i) ; - tmp = const_cast (elem); - } -} - -///////////////////////////////////////////////////////////////////////////// -void GammaRayTelPhysicsList::ConstructParticle() -{ - decPhysicsList->ConstructParticle(); -} - -///////////////////////////////////////////////////////////////////////////// -void GammaRayTelPhysicsList::ConstructProcess() -{ - // transportation - // - AddTransportation(); - - // electromagnetic physics list - // - emPhysicsList->ConstructProcess(); - em_config.AddModels(); - - // decay physics list - // - decPhysicsList->ConstructProcess(); - - // hadronic physics lists - for(size_t i=0; iConstructProcess(); - } - - // step limitation (as a full process) - // - // AddStepMax(); -} - -///////////////////////////////////////////////////////////////////////////// -void GammaRayTelPhysicsList::AddPhysicsList(const G4String& name) -{ - - if (verboseLevel>1) { - G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; - } - if (name == emName) return; - - ///////////////////////////////////////////////////////////////////////////// - // ELECTROMAGNETIC MODELS - ///////////////////////////////////////////////////////////////////////////// - - if (name == "standard_opt3") { - emName = name; +GammaRayTelPhysicsList::~GammaRayTelPhysicsList() { + delete pMessenger; delete emPhysicsList; - emPhysicsList = new G4EmStandardPhysics_option3(); - G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmStandardPhysics_option3" << G4endl; + delete decPhysicsList; - } else if (name == "LowE_Livermore") { - emName = name; - delete emPhysicsList; - emPhysicsList = new G4EmLivermorePhysics(); - G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmLivermorePhysics" << G4endl; - } else if (name == "LowE_Penelope") { - emName = name; - delete emPhysicsList; - emPhysicsList = new G4EmPenelopePhysics(); - G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmLivermorePhysics" << G4endl; - } else if (name == "LowE_Polarized") { - emName = name; - delete emPhysicsList; - emPhysicsList = new G4EmLivermorePolarizedPhysics(); - G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmLivermorePhysics" << G4endl; - } else if (name == "standard_opt4") { - emName = name; - delete emPhysicsList; - emPhysicsList = new G4EmStandardPhysics_option4(); - G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmStandardOption_4" << G4endl; - - ///////////////////////////////////////////////////////////////////////////// - // HADRONIC MODELS - ///////////////////////////////////////////////////////////////////////////// - } else if (name == "elastic" && !helIsRegisted) { - G4cout << "THE FOLLOWING HADRONIC ELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4HadronElasticPhysics()" << G4endl; - hadronPhys.push_back( new G4HadronElasticPhysics()); - helIsRegisted = true; - - } else if (name == "DElastic" && !helIsRegisted) { - hadronPhys.push_back( new G4HadronDElasticPhysics()); - helIsRegisted = true; - - } else if (name == "HPElastic" && !helIsRegisted) { - hadronPhys.push_back( new G4HadronElasticPhysicsHP()); - helIsRegisted = true; - - } else if (name == "binary" && !bicIsRegisted) { - hadronPhys.push_back(new G4HadronPhysicsQGSP_BIC_HP()); - bicIsRegisted = true; - G4cout << "THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: HadronPhysicsQGSP_BIC_HP()" << G4endl; - - } else if (name == "binary_ion" && !biciIsRegisted) { - hadronPhys.push_back(new G4IonBinaryCascadePhysics()); - biciIsRegisted = true; - G4cout << "THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4IonBinaryCascadePhysics()" << G4endl; - } else if (name == "radioactive_decay" && !radioactiveDecayIsRegisted ) { - hadronPhys.push_back(new G4RadioactiveDecayPhysics()); - radioactiveDecayIsRegisted = true; - G4cout << "THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4RadioactiveDecayPhysics()" << G4endl; - } else { - - G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" - << " is not defined" - << G4endl; - } + for (auto &hadronPhy : hadronPhys) { + delete hadronPhy; + } } -void GammaRayTelPhysicsList::SetCutForGamma(G4double cut) -{ - SetParticleCuts(cut, G4Gamma::Gamma()); +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelPhysicsList::AddPackage(const G4String &name) { + G4PhysListFactory factory; + auto *phys = factory.GetReferencePhysList(name); + + G4int i = 0; + const G4VPhysicsConstructor *element = phys->GetPhysics(i); + auto *tmp = const_cast(element); + + while (element != nullptr) { + RegisterPhysics(tmp); + element = phys->GetPhysics(++i); + tmp = const_cast(element); + } } -void GammaRayTelPhysicsList::SetCutForElectron(G4double cut) -{ - SetParticleCuts(cut, G4Electron::Electron()); +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelPhysicsList::ConstructParticle() { + decPhysicsList->ConstructParticle(); } -void GammaRayTelPhysicsList::SetCutForPositron(G4double cut) -{ - SetParticleCuts(cut, G4Positron::Positron()); +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelPhysicsList::ConstructProcess() { + // transportation + // + AddTransportation(); + + // electromagnetic physics list + // + emPhysicsList->ConstructProcess(); + emConfigurator.AddModels(); + + // decay physics list + // + decPhysicsList->ConstructProcess(); + + // hadronic physics lists + for (auto &hadronPhy : hadronPhys) { + hadronPhy->ConstructProcess(); + } + + // step limitation (as a full process) + // AddStepMax(); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelPhysicsList::AddPhysicsList(const G4String &name) { + if (verboseLevel > 1) { + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; + } + if (name == emName) { + return; + } + + //////////////////////////////// + // ELECTROMAGNETIC MODELS // + //////////////////////////////// + + if (name == "standard_opt3") { + emName = name; + delete emPhysicsList; + emPhysicsList = new G4EmStandardPhysics_option3(); + G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmStandardPhysics_option3" << G4endl; + } else if (name == "LowE_Livermore") { + emName = name; + delete emPhysicsList; + emPhysicsList = new G4EmLivermorePhysics(); + G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmLivermorePhysics" << G4endl; + } else if (name == "LowE_Penelope") { + emName = name; + delete emPhysicsList; + emPhysicsList = new G4EmPenelopePhysics(); + G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmLivermorePhysics" << G4endl; + } else if (name == "LowE_Polarized") { + emName = name; + delete emPhysicsList; + emPhysicsList = new G4EmLivermorePolarizedPhysics(); + G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmLivermorePhysics" << G4endl; + } else if (name == "standard_opt4") { + emName = name; + delete emPhysicsList; + emPhysicsList = new G4EmStandardPhysics_option4(); + G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmStandardOption_4" << G4endl; + + ///////////////////////// + // HADRONIC MODELS // + ///////////////////////// + + } else if (name == "elastic" && !helIsRegisted) { + G4cout << "THE FOLLOWING HADRONIC ELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4HadronElasticPhysics" << G4endl; + hadronPhys.push_back(new G4HadronElasticPhysics()); + helIsRegisted = true; + } else if (name == "DElastic" && !helIsRegisted) { + hadronPhys.push_back(new G4HadronDElasticPhysics()); + helIsRegisted = true; + } else if (name == "HPElastic" && !helIsRegisted) { + hadronPhys.push_back(new G4HadronElasticPhysicsHP()); + helIsRegisted = true; + } else if (name == "binary" && !bicIsRegisted) { + hadronPhys.push_back(new G4HadronPhysicsQGSP_BIC_HP()); + bicIsRegisted = true; + G4cout << "THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: HadronPhysicsQGSP_BIC_HP" << G4endl; + } else if (name == "binary_ion" && !biciIsRegisted) { + hadronPhys.push_back(new G4IonBinaryCascadePhysics()); + biciIsRegisted = true; + G4cout << "THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4IonBinaryCascadePhysics" << G4endl; + } else if (name == "radioactive_decay" && !radioactiveDecayIsRegisted) { + hadronPhys.push_back(new G4RadioactiveDecayPhysics()); + radioactiveDecayIsRegisted = true; + G4cout << "THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4RadioactiveDecayPhysics" << G4endl; + } else { + G4cout << "PhysicsList::AddPhysicsList: <" << name << "> is not defined" << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelPhysicsList::SetCutForGamma(G4double cut) { + SetParticleCuts(cut, G4Gamma::Gamma()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelPhysicsList::SetCutForElectron(G4double cut) { + SetParticleCuts(cut, G4Electron::Electron()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelPhysicsList::SetCutForPositron(G4double cut) { + SetParticleCuts(cut, G4Positron::Positron()); +} diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsListMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsListMessenger.cc index 40a5dd7932..27f8533aca 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsListMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsListMessenger.cc @@ -29,93 +29,86 @@ // Code based on the hadrontherapy && radioprotection advanced example #include "GammaRayTelPhysicsListMessenger.hh" - #include "GammaRayTelPhysicsList.hh" + #include "G4UIdirectory.hh" #include "G4UIcmdWithADoubleAndUnit.hh" #include "G4UIcmdWithAString.hh" -///////////////////////////////////////////////////////////////////////////// -GammaRayTelPhysicsListMessenger::GammaRayTelPhysicsListMessenger(GammaRayTelPhysicsList* pPhys) -:pPhysicsList(pPhys) -{ - physDir = new G4UIdirectory("/physics/"); - physDir->SetGuidance("Commands to activate physics models and set cuts"); - - gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/physics/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); +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - electCutCmd = new G4UIcmdWithADoubleAndUnit("/physics/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("/physics/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); +GammaRayTelPhysicsListMessenger::GammaRayTelPhysicsListMessenger(GammaRayTelPhysicsList *pPhys) : pPhysicsList(pPhys) { + physDir = new G4UIdirectory("/physics/"); + physDir->SetGuidance("Commands to activate physics models and set cuts"); - allCutCmd = new G4UIcmdWithADoubleAndUnit("/physics/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); + gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/physics/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); - pListCmd = new G4UIcmdWithAString("/physics/addPhysics",this); - pListCmd->SetGuidance("Add physics list."); - pListCmd->SetParameterName("PList",false); - pListCmd->AvailableForStates(G4State_PreInit); + electronCutCmd = new G4UIcmdWithADoubleAndUnit("/physics/setECut", this); + electronCutCmd->SetGuidance("Set electron cut."); + electronCutCmd->SetParameterName("Ecut", false); + electronCutCmd->SetUnitCategory("Length"); + electronCutCmd->SetRange("Ecut>0.0"); + electronCutCmd->AvailableForStates(G4State_PreInit, G4State_Idle); - packageListCmd = new G4UIcmdWithAString("/physics/addPackage",this); - packageListCmd->SetGuidance("Add physics package."); - packageListCmd->SetParameterName("package",false); - packageListCmd->AvailableForStates(G4State_PreInit); + protonCutCmd = new G4UIcmdWithADoubleAndUnit("/physics/setPCut", this); + protonCutCmd->SetGuidance("Set positron cut."); + protonCutCmd->SetParameterName("Pcut", false); + protonCutCmd->SetUnitCategory("Length"); + protonCutCmd->SetRange("Pcut>0.0"); + protonCutCmd->AvailableForStates(G4State_PreInit, G4State_Idle); + + allCutCmd = new G4UIcmdWithADoubleAndUnit("/physics/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("/physics/addPhysics", this); + pListCmd->SetGuidance("Add physics list."); + pListCmd->SetParameterName("PList", false); + pListCmd->AvailableForStates(G4State_PreInit); + + packageListCmd = new G4UIcmdWithAString("/physics/addPackage", this); + packageListCmd->SetGuidance("Add physics package."); + packageListCmd->SetParameterName("package", false); + packageListCmd->AvailableForStates(G4State_PreInit); } -GammaRayTelPhysicsListMessenger::~GammaRayTelPhysicsListMessenger() -{ - delete gammaCutCmd; - delete electCutCmd; - delete protoCutCmd; - delete allCutCmd; - delete pListCmd; - delete physDir; - delete packageListCmd; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +GammaRayTelPhysicsListMessenger::~GammaRayTelPhysicsListMessenger() { + delete gammaCutCmd; + delete electronCutCmd; + delete protonCutCmd; + delete allCutCmd; + delete pListCmd; + delete physDir; + delete packageListCmd; } -void GammaRayTelPhysicsListMessenger::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));} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - if( command == allCutCmd ) - { - G4double cut = allCutCmd->GetNewDoubleValue(newValue); - pPhysicsList->SetCutForGamma(cut); - pPhysicsList->SetCutForElectron(cut); - pPhysicsList->SetCutForPositron(cut); - } - - if( command == pListCmd ) - { pPhysicsList->AddPhysicsList(newValue);} - - - if( command == packageListCmd ) - { pPhysicsList->AddPackage(newValue);} +void GammaRayTelPhysicsListMessenger::SetNewValue(G4UIcommand *command, G4String newValue) { + if (command == gammaCutCmd) { + pPhysicsList->SetCutForGamma(gammaCutCmd->GetNewDoubleValue(newValue)); + } else if (command == electronCutCmd) { + pPhysicsList->SetCutForElectron(electronCutCmd->GetNewDoubleValue(newValue)); + } else if (command == protonCutCmd) { + pPhysicsList->SetCutForPositron(protonCutCmd->GetNewDoubleValue(newValue)); + } else if (command == allCutCmd) { + G4double cut = allCutCmd->GetNewDoubleValue(newValue); + pPhysicsList->SetCutForGamma(cut); + pPhysicsList->SetCutForElectron(cut); + pPhysicsList->SetCutForPositron(cut); + } else if (command == pListCmd) { + pPhysicsList->AddPhysicsList(newValue); + } else if (command == packageListCmd) { + pPhysicsList->AddPackage(newValue); + } } diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc index c6f04119b9..655ce8137b 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc @@ -34,9 +34,6 @@ // // ************************************************************ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - #include "G4RunManager.hh" #include "GammaRayTelPrimaryGeneratorAction.hh" @@ -54,206 +51,180 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelPrimaryGeneratorAction::GammaRayTelPrimaryGeneratorAction() -// :rndmFlag("off"),nSourceType(0),nSpectrumType(0),sourceGun(false) -{ - GammaRayTelDetector = static_cast - (G4RunManager::GetRunManager()->GetUserDetectorConstruction()); +GammaRayTelPrimaryGeneratorAction::GammaRayTelPrimaryGeneratorAction() { + detector = static_cast(G4RunManager::GetRunManager()->GetUserDetectorConstruction()); - //create a messenger for this class - - gunMessenger = new GammaRayTelPrimaryGeneratorMessenger(this); + // create a messenger for this class - rndmFlag = "off"; - nSourceType = 0; - nSpectrumType = 0; - sourceGun = false; - dVertexRadius = 15.*cm; - - G4int n_particle = 1; + gunMessenger = new GammaRayTelPrimaryGeneratorMessenger(this); - particleGun = new G4ParticleGun(n_particle); - // default particle kinematic - - G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); - G4String particleName; - G4ParticleDefinition* particle - = particleTable->FindParticle(particleName="e-"); - particleGun->SetParticleDefinition(particle); - particleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,-1.)); - particleGun->SetParticleEnergy(30.*MeV); - G4double position = 0.5*(GammaRayTelDetector->GetWorldSizeZ()); - particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,position)); - particleSource = new G4GeneralParticleSource(); - + constexpr auto NUMBER_OF_PARTICLES{1}; + particleGun = new G4ParticleGun(NUMBER_OF_PARTICLES); + + // default particle kinematic + + auto *particleTable = G4ParticleTable::GetParticleTable(); + auto *particle = particleTable->FindParticle("e-"); + particleGun->SetParticleDefinition(particle); + particleGun->SetParticleMomentumDirection(G4ThreeVector(0., 0., -1.)); + + constexpr auto PARTICLE_ENERGY{30. * MeV}; + particleGun->SetParticleEnergy(PARTICLE_ENERGY); + + auto position = 0.5 * (detector->GetWorldSizeZ()); + particleGun->SetParticlePosition(G4ThreeVector(0. * cm, 0. * cm, position)); + particleSource = new G4GeneralParticleSource(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelPrimaryGeneratorAction::~GammaRayTelPrimaryGeneratorAction() -{ - - delete particleGun; - delete particleSource; - delete gunMessenger; +GammaRayTelPrimaryGeneratorAction::~GammaRayTelPrimaryGeneratorAction() { + delete particleGun; + delete particleSource; + delete gunMessenger; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) -{ - if (sourceGun) - { +void GammaRayTelPrimaryGeneratorAction::GeneratePrimaries(G4Event *event) { + if (sourceGun) { + G4cout << "Using G4ParticleGun... " << G4endl; - G4cout << "Using G4ParticleGun ... " << G4endl; + // this function is called at the begining of event + // + G4double x0 = 0. * cm; + G4double y0 = 0. * cm; + G4double z0 = 0.5 * (detector->GetWorldSizeZ()); - //this function is called at the begining of event - // - G4double z0 = 0.5*(GammaRayTelDetector->GetWorldSizeZ()); - G4double x0 = 0.*cm, y0 = 0.*cm; - - G4ThreeVector pos0; - G4ThreeVector vertex0 = G4ThreeVector(x0,y0,z0); - G4ThreeVector dir0 = G4ThreeVector(0.,0.,-1.); - - G4double theta, phi; - G4double y = 0.; - G4double f = 0.; - G4double theta0=0.; - G4double phi0=0.; - - switch(nSourceType) { - case 0: - particleGun->SetParticlePosition(vertex0); - particleGun->SetParticleMomentumDirection(dir0); - break; - case 1: - // GS: Generate random position on the 4PIsphere to create a unif. distrib. - // GS: on the sphere - phi = G4UniformRand() * twopi; - do { - y = G4UniformRand()*1.0; - theta = G4UniformRand() * pi; - f = std::sin(theta); - } while (y > f); - vertex0 = G4ThreeVector(1.,0.,0.); - vertex0.setMag(dVertexRadius); - vertex0.setTheta(theta); - vertex0.setPhi(phi); - particleGun->SetParticlePosition(vertex0); - - dir0 = G4ThreeVector(1.,0.,0.); - do { - phi = G4UniformRand() * twopi; - do { - y = G4UniformRand()*1.0; - theta = G4UniformRand() * pi; - f = std::sin(theta); - } while (y > f); - dir0.setPhi(phi); - dir0.setTheta(theta); - } while (vertex0.dot(dir0) >= -0.7 * vertex0.mag()); - particleGun->SetParticleMomentumDirection((G4ParticleMomentum)dir0); - - break; - case 2: - // GS: Generate random position on the upper semi-sphere z>0 to create a unif. distrib. - // GS: on a plane - phi = G4UniformRand() * twopi; - do { - y = G4UniformRand()*1.0; - theta = G4UniformRand() * halfpi; - f = std::sin(theta) * std::cos(theta); - } while (y > f); - vertex0 = G4ThreeVector(1.,0.,0.); - - G4double xy = GammaRayTelDetector->GetWorldSizeXY(); - G4double z = GammaRayTelDetector->GetWorldSizeZ(); - - if (dVertexRadius > xy*0.5) - { - G4cout << "vertexRadius too big " << G4endl; - G4cout << "vertexRadius setted to " << xy*0.45 << G4endl; - dVertexRadius = xy*0.45; - } - - if (dVertexRadius > z*0.5) - { - G4cout << "vertexRadius too high " << G4endl; - G4cout << "vertexRadius setted to " << z*0.45 << G4endl; - dVertexRadius = z*0.45; - } - - - vertex0.setMag(dVertexRadius); - vertex0.setTheta(theta); - vertex0.setPhi(phi); - - // GS: Get the user defined direction for the primaries and - // GS: Rotate the random position according to the user defined direction for the particle - - dir0 = particleGun->GetParticleMomentumDirection(); - if (dir0.mag() > 0.001) - { - theta0 = dir0.theta(); - phi0 = dir0.phi(); - } - - if (theta0!=0.) - { - G4ThreeVector rotationAxis(1.,0.,0.); - rotationAxis.setPhi(phi0+halfpi); - vertex0.rotate(theta0+pi,rotationAxis); - } - particleGun->SetParticlePosition(vertex0); - break; - } - - - G4double pEnergy = 100*MeV; - - switch(nSpectrumType) { - case 0: // Uniform energy (1-10 GeV) - y = G4UniformRand(); - pEnergy = y*9.0*GeV + 1.0*GeV; - G4cout << pEnergy/GeV << " LIN" << G4endl; - break; - case 1: // Logaritmic energy - y = G4UniformRand(); - pEnergy = std::pow(10,y)*GeV; - G4cout << pEnergy/GeV << " LOG" << G4endl; - break; - case 2: // Power Law (-4) - do { - y = G4UniformRand()*100000.0; - pEnergy = G4UniformRand() * 10. * GeV; - f = std::pow(pEnergy * (1/GeV), -4.); - } while (y > f); - // particleGun->SetParticleEnergy(pEnergy); - break; - case 3: // Monochromatic - pEnergy = particleGun->GetParticleEnergy(); - //100 * MeV; - G4cout << pEnergy << " MONO" << G4endl; - break; - } - particleGun->SetParticleEnergy(pEnergy); - G4cout << particleGun->GetParticleDefinition()->GetParticleName() << G4endl; - particleGun->GeneratePrimaryVertex(anEvent); + G4ThreeVector pos0; + auto vertex0 = G4ThreeVector(x0, y0, z0); + auto momentumDirection0 = G4ThreeVector(0., 0., -1.); + + G4double theta; + G4double phi; + G4double y = 0.; + G4double f = 0.; + G4double theta0 = 0.; + G4double phi0 = 0.; + + switch (sourceType) { + case 0: + particleGun->SetParticlePosition(vertex0); + particleGun->SetParticleMomentumDirection(momentumDirection0); + break; + case 1: + // GS: Generate random position on the 4PIsphere to create a uniform distribution + // GS: on the sphere + phi = G4UniformRand() * twopi; + do { + y = G4UniformRand() * 1.0; + theta = G4UniformRand() * pi; + f = std::sin(theta); + } while (y > f); + vertex0 = G4ThreeVector(1., 0., 0.); + vertex0.setMag(vertexRadius); + vertex0.setTheta(theta); + vertex0.setPhi(phi); + particleGun->SetParticlePosition(vertex0); + + momentumDirection0 = G4ThreeVector(1., 0., 0.); + + do { + phi = G4UniformRand() * twopi; + do { + y = G4UniformRand() * 1.0; + theta = G4UniformRand() * pi; + f = std::sin(theta); + } while (y > f); + momentumDirection0.setPhi(phi); + momentumDirection0.setTheta(theta); + } while (vertex0.dot(momentumDirection0) >= -0.7 * vertex0.mag()); + + particleGun->SetParticleMomentumDirection((G4ParticleMomentum) momentumDirection0); + + break; + case 2: + // GS: Generate random position on the upper semi-sphere z > 0 to create a uniform distribution + // GS: on a plane + phi = G4UniformRand() * twopi; + + do { + y = G4UniformRand() * 1.0; + theta = G4UniformRand() * halfpi; + f = std::sin(theta) * std::cos(theta); + } while (y > f); + + vertex0 = G4ThreeVector(1., 0., 0.); + + auto xy = detector->GetWorldSizeXY(); + auto z = detector->GetWorldSizeZ(); + + if (vertexRadius > xy * 0.5) { + G4cout << "vertexRadius too big " << G4endl; + G4cout << "vertexRadius set to " << xy * 0.45 << G4endl; + vertexRadius = xy * 0.45; + } + + if (vertexRadius > z * 0.5) { + G4cout << "vertexRadius too high " << G4endl; + G4cout << "vertexRadius set to " << z * 0.45 << G4endl; + vertexRadius = z * 0.45; + } + + vertex0.setMag(vertexRadius); + vertex0.setTheta(theta); + vertex0.setPhi(phi); + + // GS: Get the user defined direction for the primaries and + // GS: Rotate the random position according to the user defined direction for the particle + + momentumDirection0 = particleGun->GetParticleMomentumDirection(); + if (momentumDirection0.mag() > 0.001) { + theta0 = momentumDirection0.theta(); + phi0 = momentumDirection0.phi(); + } + + if (theta0 != 0.) { + G4ThreeVector rotationAxis(1., 0., 0.); + rotationAxis.setPhi(phi0 + halfpi); + vertex0.rotate(theta0 + pi, rotationAxis); + } + particleGun->SetParticlePosition(vertex0); + break; + } + + constexpr auto INITIAL_PARTICLE_ENERGY{100 * MeV}; + G4double particleEnergy = INITIAL_PARTICLE_ENERGY; + + switch (spectrumType) { + case 0: // Uniform energy (1 GeV - 10 GeV) + y = G4UniformRand(); + particleEnergy = y * 9.0 * GeV + 1.0 * GeV; + G4cout << "Particle energy: " << particleEnergy / GeV << " LIN" << G4endl; + break; + case 1: // Logarithmic energy + y = G4UniformRand(); + particleEnergy = std::pow(10, y) * GeV; + G4cout << "Particle energy: " << particleEnergy / GeV << " LOG" << G4endl; + break; + case 2: // Power law (-4) + do { + y = G4UniformRand() * 100000.0; + particleEnergy = G4UniformRand() * 10. * GeV; + f = std::pow(particleEnergy * (1 / GeV), -4.); + } while (y > f); + // particleGun->SetParticleEnergy(particleEnergy); + break; + case 3: // Monochromatic + particleEnergy = particleGun->GetParticleEnergy(); + // 100 MeV; + G4cout << "Particle energy: " << particleEnergy << " MONOCHROMATIC" << G4endl; + break; + } + particleGun->SetParticleEnergy(particleEnergy); + G4cout << "Particle: " << particleGun->GetParticleDefinition()->GetParticleName() << G4endl; + particleGun->GeneratePrimaryVertex(event); + } else { + particleSource->GeneratePrimaryVertex(event); } - else - { - particleSource->GeneratePrimaryVertex(anEvent); - } - } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - - - diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc index a134cd2a9c..5b0579827a 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc @@ -34,12 +34,9 @@ // // ************************************************************ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - #include "GammaRayTelPrimaryGeneratorMessenger.hh" - #include "GammaRayTelPrimaryGeneratorAction.hh" + #include "G4SystemOfUnits.hh" #include "G4UIcmdWithAnInteger.hh" #include "G4UIcmdWithAString.hh" @@ -48,89 +45,65 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelPrimaryGeneratorMessenger::GammaRayTelPrimaryGeneratorMessenger -(GammaRayTelPrimaryGeneratorAction* GammaRayTelGun) - :GammaRayTelAction(GammaRayTelGun) -{ - RndmCmd = new G4UIcmdWithAString("/gun/random",this); - RndmCmd->SetGuidance("Shoot randomly the incident particle."); - RndmCmd->SetGuidance(" Choice : on(default), off"); - RndmCmd->SetParameterName("choice",true); - RndmCmd->SetDefaultValue("on"); - RndmCmd->SetCandidates("on off"); - RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - SourceTypeCmd = new G4UIcmdWithAnInteger("/gun/sourceType",this); - SourceTypeCmd->SetGuidance("Select the type of incident flux."); - SourceTypeCmd->SetGuidance(" Choice : 0(default), 1(isotropic), 2(wide parallel beam)"); - SourceTypeCmd->SetParameterName("choice",true); - SourceTypeCmd->SetDefaultValue((G4int)0); - SourceTypeCmd->AvailableForStates(G4State_PreInit,G4State_Idle); +GammaRayTelPrimaryGeneratorMessenger::GammaRayTelPrimaryGeneratorMessenger(GammaRayTelPrimaryGeneratorAction *GammaRayTelGun) : GammaRayTelAction(GammaRayTelGun) { + rndmCmd = new G4UIcmdWithAString("/gun/random", this); + rndmCmd->SetGuidance("Shoot randomly the incident particle."); + rndmCmd->SetGuidance("Choice : on(default), off"); + rndmCmd->SetParameterName("choice", true); + rndmCmd->SetDefaultValue("on"); + rndmCmd->SetCandidates("on off"); + rndmCmd->AvailableForStates(G4State_PreInit, G4State_Idle); - VertexRadiusCmd = new G4UIcmdWithADoubleAndUnit("/gun/vertexRadius",this); - VertexRadiusCmd->SetGuidance("Radius (and unit) of sphere for vertices of incident flux."); - VertexRadiusCmd->SetParameterName("choice",true); - VertexRadiusCmd->SetDefaultValue((G4double)1.*cm); - VertexRadiusCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - SpectrumTypeCmd = new G4UIcmdWithAnInteger("/gun/spectrumType",this); - SpectrumTypeCmd->SetGuidance("Select the type of incident spectrum."); - SpectrumTypeCmd->SetGuidance(" Choice : 0(default), 1(), 2(E^{-gamma}), 3()"); - SpectrumTypeCmd->SetParameterName("choice",true); - SpectrumTypeCmd->SetDefaultValue((G4int)0); - SpectrumTypeCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + sourceTypeCmd = new G4UIcmdWithAnInteger("/gun/sourceType", this); + sourceTypeCmd->SetGuidance("Select the type of incident flux."); + sourceTypeCmd->SetGuidance("Choice : 0(default), 1(isotropic), 2(wide parallel beam)"); + sourceTypeCmd->SetParameterName("choice", true); + sourceTypeCmd->SetDefaultValue((G4int) 0); + sourceTypeCmd->AvailableForStates(G4State_PreInit, G4State_Idle); + vertexRadiusCmd = new G4UIcmdWithADoubleAndUnit("/gun/vertexRadius", this); + vertexRadiusCmd->SetGuidance("Radius (and unit) of sphere for vertices of incident flux."); + vertexRadiusCmd->SetParameterName("choice", true); + vertexRadiusCmd->SetDefaultValue((G4double) 1. * cm); + vertexRadiusCmd->AvailableForStates(G4State_PreInit, G4State_Idle); - SourceGenCmd = new G4UIcmdWithABool("/gun/sourceGen",this); - SourceGenCmd->SetGuidance("Select the native Generation"); - SourceGenCmd->SetGuidance(" Choice : true(native), false(GPS)"); - SourceGenCmd->SetParameterName("choice",true); - SourceGenCmd->SetDefaultValue((G4bool)true); - SourceGenCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + spectrumTypeCmd = new G4UIcmdWithAnInteger("/gun/spectrumType", this); + spectrumTypeCmd->SetGuidance("Select the type of incident spectrum."); + spectrumTypeCmd->SetGuidance("Choice : 0(default), 1(), 2(E^{-gamma}), 3()"); + spectrumTypeCmd->SetParameterName("choice", true); + spectrumTypeCmd->SetDefaultValue((G4int) 0); + spectrumTypeCmd->AvailableForStates(G4State_PreInit, G4State_Idle); + sourceGenCmd = new G4UIcmdWithABool("/gun/sourceGen", this); + sourceGenCmd->SetGuidance("Select the native Generation"); + sourceGenCmd->SetGuidance(" Choice : true(native), false(GPS)"); + sourceGenCmd->SetParameterName("choice", true); + sourceGenCmd->SetDefaultValue((G4bool) true); + sourceGenCmd->AvailableForStates(G4State_PreInit, G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelPrimaryGeneratorMessenger::~GammaRayTelPrimaryGeneratorMessenger() -{ - delete RndmCmd; - delete SourceTypeCmd; - delete VertexRadiusCmd; - delete SpectrumTypeCmd; - delete SourceGenCmd; +GammaRayTelPrimaryGeneratorMessenger::~GammaRayTelPrimaryGeneratorMessenger() { + delete rndmCmd; + delete sourceTypeCmd; + delete vertexRadiusCmd; + delete spectrumTypeCmd; + delete sourceGenCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelPrimaryGeneratorMessenger::SetNewValue(G4UIcommand * command,G4String newValue) -{ - if( command == RndmCmd ) - { GammaRayTelAction->SetRndmFlag(newValue);} - - if( command == SourceTypeCmd ) - { GammaRayTelAction->SetSourceType(SourceTypeCmd->GetNewIntValue(newValue));} - - if( command == VertexRadiusCmd ) - { GammaRayTelAction->SetVertexRadius(VertexRadiusCmd->GetNewDoubleValue(newValue));} - - if( command == SpectrumTypeCmd ) - { GammaRayTelAction->SetSpectrumType(SpectrumTypeCmd->GetNewIntValue(newValue));} - - if( command == SourceGenCmd ) - { GammaRayTelAction->SetSourceGen(SourceGenCmd->GetNewBoolValue(newValue));} +void GammaRayTelPrimaryGeneratorMessenger::SetNewValue(G4UIcommand *command, G4String newValue) { + if (command == rndmCmd) { + GammaRayTelAction->SetRndmFlag(newValue); + } else if (command == sourceTypeCmd) { + GammaRayTelAction->SetSourceType(sourceTypeCmd->GetNewIntValue(newValue)); + } else if (command == vertexRadiusCmd) { + GammaRayTelAction->SetVertexRadius(vertexRadiusCmd->GetNewDoubleValue(newValue)); + } else if (command == spectrumTypeCmd) { + GammaRayTelAction->SetSpectrumType(spectrumTypeCmd->GetNewIntValue(newValue)); + } else if (command == sourceGenCmd) { + GammaRayTelAction->SetSourceGen(sourceGenCmd->GetNewBoolValue(newValue)); + } } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - - - - - - - diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc index 3c324f2b58..6ed00cc429 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc @@ -36,112 +36,101 @@ // // ************************************************************ - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - #include "GammaRayTelRunAction.hh" - #include "GammaRayTelAnalysis.hh" -#include +#include + +#include "G4ios.hh" #include "G4Run.hh" +#include "G4Threading.hh" #include "G4UImanager.hh" #include "G4VVisManager.hh" -#include "G4ios.hh" -#include "G4Threading.hh" - -GammaRayTelRunAction::GammaRayTelRunAction() : - outFile(0),fileName("NULL"),fRunID(-1) -{;} - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelRunAction::~GammaRayTelRunAction() -{;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void GammaRayTelRunAction::BeginOfRunAction(const G4Run* aRun) -{ - fRunID = aRun->GetRunID(); - - //Master mode or sequential - if (IsMaster()) - G4cout << "### Run " << aRun->GetRunID() << " starts (master)." << G4endl; - else - G4cout << "### Run " << aRun->GetRunID() << " starts (worker)." << G4endl; - - // Prepare the visualization - if (G4VVisManager::GetConcreteInstance()) - { - G4UImanager* UI = G4UImanager::GetUIpointer(); - UI->ApplyCommand("/vis/scene/notifyHandlers"); - } - - // If analysis is used reset the histograms - GammaRayTelAnalysis* analysis = GammaRayTelAnalysis::getInstance(); - // analysis->BeginOfRun(aRun->GetRunID()); - analysis->BeginOfRun(); +GammaRayTelRunAction::GammaRayTelRunAction() { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelRunAction::EndOfRunAction(const G4Run* aRun) -{ - G4cout << "End of Run " << aRun->GetRunID() << G4endl; +GammaRayTelRunAction::~GammaRayTelRunAction() { +} - // Close the file with the hits information -#ifdef G4STORE_DATA - if (outFile) - { - G4cout << "File " << fileName << G4endl; - outFile->close(); - delete outFile; - outFile = 0; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelRunAction::BeginOfRunAction(const G4Run *run) { + fRunID = run->GetRunID(); + + // Master mode or sequential + if (IsMaster()) { + G4cout << "### Run " << run->GetRunID() << " starts (master)." << G4endl; + } else { + G4cout << "### Run " << run->GetRunID() << " starts (worker)." << G4endl; } + + // Prepare the visualization + if (G4VVisManager::GetConcreteInstance() != nullptr) { + auto *userInterface = G4UImanager::GetUIpointer(); + userInterface->ApplyCommand("/vis/scene/notifyHandlers"); + } + + // If analysis is used reset the histograms + auto *analysis = GammaRayTelAnalysis::getInstance(); + // analysis->BeginOfRun(run->GetRunID()); + analysis->BeginOfRun(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void GammaRayTelRunAction::EndOfRunAction(const G4Run *run) { + G4cout << "End of Run " << run->GetRunID() << G4endl; + + // Close the file with the hits information +#ifdef G4STORE_DATA + if (outFile != nullptr) { + G4cout << "File " << fileName << G4endl; + outFile->close(); + delete outFile; + outFile = nullptr; + } #endif - // If analysis is used, print out the histograms - GammaRayTelAnalysis* analysis = GammaRayTelAnalysis::getInstance(); - analysis->EndOfRun(); + // If analysis is used, print out the histograms + auto *analysis = GammaRayTelAnalysis::getInstance(); + analysis->EndOfRun(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -std::ofstream* GammaRayTelRunAction::GetOutputFile() -{ - if (!outFile) - OpenFile(); - return outFile; +auto GammaRayTelRunAction::GetOutputFile() -> std::ofstream* { + if (outFile == nullptr) { + OpenFile(); + } + return outFile; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelRunAction::OpenFile() -{ - // Open the file for the tracks of this run + +void GammaRayTelRunAction::OpenFile() { + // Open the file for the tracks of this run #ifdef G4STORE_DATA - //check that we are in a worker: returns -1 in a master and -2 in sequential - //one file per thread is produced - //Tracks_runR.N.dat, where R=run number, N=thread ID + // check that we are in a worker: returns -1 in a master and -2 in sequential + // one file per thread is produced + // Tracks_runR.N.dat, where R = run number, N = thread ID std::stringstream name; - if (G4Threading::G4GetThreadId() >= 0) - name << "Tracks_run" << fRunID << "." - << G4Threading::G4GetThreadId() << ".dat"; - else - name << "Tracks_run" << fRunID << "." - << G4Threading::G4GetThreadId() << ".dat"; - if (!outFile) - { - outFile = new std::ofstream; - outFile->open(name.str()); - fileName = G4String(name.str()); + if (G4Threading::G4GetThreadId() >= 0) { + name << "Tracks_run" << fRunID << "." << G4Threading::G4GetThreadId() << ".dat"; + } else { + name << "Tracks_run" << fRunID << "." << G4Threading::G4GetThreadId() << ".dat"; } - G4cout << "Open file: " << fileName << G4endl; + + if (outFile == nullptr) { + outFile = new std::ofstream; + outFile->open(name.str()); + fileName = G4String(name.str()); + } + G4cout << "Open file: " << fileName << G4endl; #endif } - - diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc index d351bd0cc4..53aa835838 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc @@ -29,79 +29,66 @@ // CERN Geneva Switzerland // // -// ------------ GammaRayTelTrackerHit ------ +// ------------ GammaRayTelTrackerHit ------ // by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000) // // ************************************************************ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - #include "GammaRayTelTrackerHit.hh" -G4ThreadLocal G4Allocator *GammaRayTelTrackerHitAllocator = 0; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4ThreadLocal G4Allocator *trackerHitAllocator{nullptr}; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelTrackerHit::GammaRayTelTrackerHit() -{ - EdepSil = 0.; - NStrip = 0; NSilPlane = 0; IsXPlane = 0; - pos = G4ThreeVector(0.,0.,0.); +GammaRayTelTrackerHit::GammaRayTelTrackerHit() { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelTrackerHit::~GammaRayTelTrackerHit() -{;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -GammaRayTelTrackerHit::GammaRayTelTrackerHit(const GammaRayTelTrackerHit& right) - :G4VHit() -{ - EdepSil = right.EdepSil; - NStrip = right.NStrip; NSilPlane = right.NSilPlane; - IsXPlane = right.IsXPlane; - pos = right.pos; +GammaRayTelTrackerHit::~GammaRayTelTrackerHit() { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -const GammaRayTelTrackerHit& GammaRayTelTrackerHit::operator=(const GammaRayTelTrackerHit& right) -{ - EdepSil = right.EdepSil; - NStrip = right.NStrip; NSilPlane = right.NSilPlane; - IsXPlane = right.IsXPlane; - pos =right.pos; - return *this; +GammaRayTelTrackerHit::GammaRayTelTrackerHit(const GammaRayTelTrackerHit &right) { + stripNumber = right.stripNumber; + siliconPlaneNumber = right.siliconPlaneNumber; + isXPlane = right.isXPlane; + siliconDepositedEnergy = right.siliconDepositedEnergy; + position = right.position; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4bool GammaRayTelTrackerHit::operator==(const GammaRayTelTrackerHit& right) const -{ - return((EdepSil==right.EdepSil)&&(NStrip==right.NStrip)&&(IsXPlane==right.IsXPlane)&& (pos==right.pos)); +auto GammaRayTelTrackerHit::operator=(const GammaRayTelTrackerHit &right) -> const GammaRayTelTrackerHit& { + stripNumber = right.stripNumber; + siliconPlaneNumber = right.siliconPlaneNumber; + isXPlane = right.isXPlane; + siliconDepositedEnergy = right.siliconDepositedEnergy; + position = right.position; + + return *this; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelTrackerHit::Draw() -{;} +auto GammaRayTelTrackerHit::operator==(const GammaRayTelTrackerHit &right) const -> G4bool { + return ( + (stripNumber == right.stripNumber) && + (isXPlane == right.isXPlane) && + (siliconDepositedEnergy == right.siliconDepositedEnergy) && + (position == right.position) + ); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelTrackerHit::Print() -{;} +void GammaRayTelTrackerHit::Draw() { +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - - - - - +void GammaRayTelTrackerHit::Print() { +} diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc index 7839aaa574..e7594704a4 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc @@ -33,211 +33,169 @@ // by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000) // // ************************************************************ -#include "G4RunManager.hh" -#include "GammaRayTelTrackerSD.hh" +#include "GammaRayTelTrackerSD.hh" #include "GammaRayTelTrackerHit.hh" #include "GammaRayTelDetectorConstruction.hh" +#include "G4RunManager.hh" #include "G4SystemOfUnits.hh" #include "G4VPhysicalVolume.hh" - #include "G4Step.hh" #include "G4VTouchable.hh" #include "G4TouchableHistory.hh" #include "G4SDManager.hh" - #include "G4ios.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelTrackerSD::GammaRayTelTrackerSD(G4String name):G4VSensitiveDetector(name) -{ - G4RunManager* runManager = G4RunManager::GetRunManager(); - Detector = - (GammaRayTelDetectorConstruction*)(runManager->GetUserDetectorConstruction()); - - G4int NbOfTKRTiles = Detector->GetNbOfTKRTiles(); - NbOfTKRStrips = Detector->GetNbOfTKRStrips(); - NbOfTKRLayers = Detector->GetNbOfTKRLayers(); - NbOfTKRStrips = NbOfTKRStrips*NbOfTKRTiles; - - NbOfTKRChannels = NbOfTKRStrips* NbOfTKRTiles * NbOfTKRLayers; - - ThitXID = new G4int[NbOfTKRChannels]; - ThitYID = new G4int[NbOfTKRChannels]; - collectionName.insert("TrackerCollection"); +GammaRayTelTrackerSD::GammaRayTelTrackerSD(G4String name) : G4VSensitiveDetector(name) { + auto *runManager = G4RunManager::GetRunManager(); + + detector = (GammaRayTelDetectorConstruction*) (runManager->GetUserDetectorConstruction()); + + auto numberOfTKRTiles = detector->GetNbOfTKRTiles(); + numberOfTKRStrips = detector->GetNbOfTKRStrips(); + numberOfTKRLayers = detector->GetNbOfTKRLayers(); + numberOfTKRStrips = numberOfTKRStrips * numberOfTKRTiles; + numberOfTKRChannels = numberOfTKRStrips * numberOfTKRTiles * numberOfTKRLayers; + + tkrHitXID = new G4int[numberOfTKRChannels]; + tkrHitYID = new G4int[numberOfTKRChannels]; + + constexpr auto TRACKER_COLLECTION_NAME = "TrackerCollection"; + collectionName.insert(TRACKER_COLLECTION_NAME); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -GammaRayTelTrackerSD::~GammaRayTelTrackerSD() -{ - delete [] ThitXID; - delete [] ThitYID; +GammaRayTelTrackerSD::~GammaRayTelTrackerSD() { + delete[] tkrHitXID; + delete[] tkrHitYID; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelTrackerSD::Initialize(G4HCofThisEvent*) -{ - TrackerCollection = new GammaRayTelTrackerHitsCollection - (SensitiveDetectorName,collectionName[0]); +void GammaRayTelTrackerSD::Initialize(G4HCofThisEvent*) { + trackerCollection = new GammaRayTelTrackerHitsCollection(SensitiveDetectorName, collectionName[0]); - for (G4int i=0;iGetTotalEnergyDeposit(); - if (edep == 0.) return false; - - G4int StripTotal = Detector->GetNbOfTKRStrips(); - G4int TileTotal = Detector->GetNbOfTKRTiles(); - - // This TouchableHistory is used to obtain the physical volume - // of the hit - G4TouchableHistory* theTouchable - = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); - - //G4VPhysicalVolume* phys_tile = theTouchable->GetVolume(); - - G4VPhysicalVolume* plane = theTouchable->GetVolume(2); - - G4int PlaneNumber = 0; - PlaneNumber=plane->GetCopyNo(); - G4String PlaneName = plane->GetName(); - - // The hits sees now the real strip - - G4int StripNumber = 0; - G4VPhysicalVolume* strip = 0; - strip = theTouchable->GetVolume(); - - G4String StripName = strip->GetName(); - StripNumber= strip->GetCopyNo(); - - G4VPhysicalVolume* tile = theTouchable->GetVolume(1); - G4int TileNumber = tile->GetCopyNo(); - G4String TileName = tile->GetName(); - - G4int NTile = (TileNumber%TileTotal); - G4int j=0; - - G4int NChannel = 0; - - for (j=0;jSetPlaneType(1); - TrackerHit->AddSil(edep); - TrackerHit->SetPos(aStep->GetPreStepPoint()->GetPosition()); - TrackerHit->SetNSilPlane(PlaneNumber); - TrackerHit->SetNStrip(StripNumber); - ThitXID[NChannel] = - TrackerCollection->insert(TrackerHit) -1; - } - else // This is not new - { - (*TrackerCollection)[ThitXID[NChannel]]->AddSil(edep); - // G4cout << "X" << PlaneNumber << " " << StripNumber << G4endl; - } - } - - if (PlaneName == "TKRDetectorY") - // The hit is on an Y silicon plane - { - // This is a new hit - if (ThitYID[NChannel]==-1) - { - GammaRayTelTrackerHit* TrackerHit = new GammaRayTelTrackerHit; - TrackerHit->SetPlaneType(0); - TrackerHit->AddSil(edep); - TrackerHit->SetPos(aStep->GetPreStepPoint()->GetPosition()); - TrackerHit->SetNSilPlane(PlaneNumber); - TrackerHit->SetNStrip(StripNumber); - ThitYID[NChannel] = - TrackerCollection->insert(TrackerHit)-1; - } - else // This is not new - { - (*TrackerCollection)[ThitYID[NChannel]]->AddSil(edep); - // G4cout << "Y" << PlaneNumber << " " << StripNumber << G4endl; - } - } - - return true; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void GammaRayTelTrackerSD::EndOfEvent(G4HCofThisEvent* HCE) -{ - static G4int HCID = -1; - if(HCID<0) - { - HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); - } - HCE->AddHitsCollection(HCID,TrackerCollection); - - - for (G4int i=0;i G4bool { + G4double depositedEnergy = 0.; + depositedEnergy = step->GetTotalEnergyDeposit(); + if (depositedEnergy == 0.) { + return false; + } + + auto totalNumberOfStrips = detector->GetNbOfTKRStrips(); + auto totalnumberOfTiles = detector->GetNbOfTKRTiles(); + + // This TouchableHistory is used to obtain the physical volume of the hit + auto *touchable = (G4TouchableHistory*) (step->GetPreStepPoint()->GetTouchable()); + auto *plane = touchable->GetVolume(2); + + G4int planeNumber = 0; + planeNumber = plane->GetCopyNo(); + auto planeName = plane->GetName(); + + // The hits sees now the real strip + + G4int stripNumber = 0; + G4VPhysicalVolume *strip{nullptr}; + strip = touchable->GetVolume(); + + G4String stripName = strip->GetName(); + stripNumber = strip->GetCopyNo(); + + auto *tile = touchable->GetVolume(1); + auto tileNumber = tile->GetCopyNo(); + auto tileName = tile->GetName(); + auto NTile = (tileNumber % totalnumberOfTiles); + + G4int channelNumber = 0; + + for (auto j = 0; j < totalnumberOfTiles; j++) { + if (NTile == j) { + stripNumber += totalNumberOfStrips * NTile; + } + } + + channelNumber = planeNumber * totalnumberOfTiles * totalNumberOfStrips + stripNumber; + +/* + G4cout << " Channel: " << channelNumber << G4endl; + G4cout << " Plane: " << planeNumber << " " << planeName << G4endl; + G4cout << " Strip: " << stripNumber << " " << stripName << G4endl; +*/ + + // The hit is on an X silicon plane + if (planeName == "TKRDetectorX") { + if (tkrHitXID[channelNumber] == -1) { // This is a new hit + auto *trackerHit = new GammaRayTelTrackerHit; + trackerHit->SetPlaneType(1); + trackerHit->AddDepositedEnergy(depositedEnergy); + trackerHit->SetPosition(step->GetPreStepPoint()->GetPosition()); + trackerHit->SetSiliconPlaneNumber(planeNumber); + trackerHit->SetStripNumber(stripNumber); + tkrHitXID[channelNumber] = trackerCollection->insert(trackerHit) - 1; + } else { // This is not new + (*trackerCollection)[tkrHitXID[channelNumber]]->AddDepositedEnergy(depositedEnergy); + // G4cout << "X" << planeNumber << " " << stripNumber << G4endl; + } + } + + // The hit is on an Y silicon plane + if (planeName == "TKRDetectorY") { + if (tkrHitYID[channelNumber] == -1) { // This is a new hit + auto *trackerHit = new GammaRayTelTrackerHit; + trackerHit->SetPlaneType(0); + trackerHit->AddDepositedEnergy(depositedEnergy); + trackerHit->SetPosition(step->GetPreStepPoint()->GetPosition()); + trackerHit->SetSiliconPlaneNumber(planeNumber); + trackerHit->SetStripNumber(stripNumber); + tkrHitYID[channelNumber] = trackerCollection->insert(trackerHit) - 1; + } else { // This is not new + (*trackerCollection)[tkrHitYID[channelNumber]]->AddDepositedEnergy(depositedEnergy); + // G4cout << "Y" << planeNumber << " " << stripNumber << G4endl; + } + } + + return true; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelTrackerSD::DrawAll() -{} +void GammaRayTelTrackerSD::EndOfEvent(G4HCofThisEvent *collection) { + static G4int collectionIdentifier = -1; + if (collectionIdentifier < 0) { + collectionIdentifier = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); + } + collection->AddHitsCollection(collectionIdentifier, trackerCollection); + + for (auto i = 0; i < numberOfTKRChannels; i++) { + tkrHitXID[i] = -1; + tkrHitYID[i] = -1; + } +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void GammaRayTelTrackerSD::PrintAll() -{} +void GammaRayTelTrackerSD::clear() { +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void GammaRayTelTrackerSD::DrawAll() { +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - - - - - +void GammaRayTelTrackerSD::PrintAll() { +} diff --git a/examples/advanced/gorad/gorad.out b/examples/advanced/gorad/gorad.out index a080513156..60828b0a2c 100644 --- a/examples/advanced/gorad/gorad.out +++ b/examples/advanced/gorad/gorad.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -222,21 +222,21 @@ Index : 3 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100000 - User=148.390000s Real=149.772271s Sys=0.020000s + User=161.840000s Real=163.192297s Sys=0.020000s /control/doifBatch /score/dumpAllQuantitiesToFile Probes Probes.csv /score/dumpAllQuantitiesToFile Probes Probes.csv # Mesh or volume name: Probes -- # Primitive scorer name: dose - bin 0,0,0 : statistical error 30.6435(%) - to reduce the statistical error below 10%, increase number of events approximately 9.39023 times. + bin 0,0,0 : statistical error 29.2289(%) + to reduce the statistical error below 10%, increase number of events approximately 8.54327 times. # Mesh or volume name: Probes -- # Primitive scorer name: protonFlux - bin 0,0,0 : statistical error 29.4177(%) - to reduce the statistical error below 10%, increase number of events approximately 8.65399 times. + bin 0,0,0 : statistical error 34.2919(%) + to reduce the statistical error below 10%, increase number of events approximately 11.7593 times. # Mesh or volume name: Probes -- # Primitive scorer name: volFlx - bin 0,0,0 : statistical error 25.4326(%) - to reduce the statistical error below 10%, increase number of events approximately 6.46819 times. + bin 0,0,0 : statistical error 34.4695(%) + to reduce the statistical error below 10%, increase number of events approximately 11.8814 times. G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 12 of which, static: 0 -Dynamic pools deleted: 12 / Total memory freed: 1.4 MB +Dynamic pools deleted: 12 / Total memory freed: 1.8 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/advanced/hadrontherapy/hadrontherapy.out b/examples/advanced/hadrontherapy/hadrontherapy.out index c346e9a4e3..49616b235c 100644 --- a/examples/advanced/hadrontherapy/hadrontherapy.out +++ b/examples/advanced/hadrontherapy/hadrontherapy.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -135,6 +137,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -162,7 +165,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -198,8 +201,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -230,8 +232,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -355,7 +357,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -686,14 +688,14 @@ Run 0 starts ... Run terminated. Run Summary Number of events processed : 500 - User=4.800000s Real=5.000753s Sys=0.080000s + User=4.750000s Real=4.846305s Sys=0.060000s Graphics systems deleted. Visualization Manager deleting... -The simulation took: 8.60794 s to run (real time) +The simulation took: 8.21789 s to run (real time) Dose is being written to Dose.out i j k Dose(Gy)G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 14 of which, static: 0 -Dynamic pools deleted: 14 / Total memory freed: 0.3 MB +Dynamic pools deleted: 14 / Total memory freed: 0.41 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyRBE.cc b/examples/advanced/hadrontherapy/src/HadrontherapyRBE.cc index b6724cb27c..8f009b884f 100644 --- a/examples/advanced/hadrontherapy/src/HadrontherapyRBE.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyRBE.cc @@ -678,7 +678,7 @@ G4bool HadrontherapyRBE::LinearLookup(G4double E, G4double LET, G4int Z) void HadrontherapyRBE::interpolation_onE(G4int k, G4int l, G4int indexE, G4double E, G4int Z) { // k=(indexE*column) identifies the position of E1 known the value of E (identifies the group of 8 elements in the array at position E1) - // Z-1 identifies the vector ion position relative to the group of 8 values ​​found + // Z-1 identifies the vector ion position relative to the group of 8 values found k = k + (Z - 1); l = l + (Z - 1); @@ -697,7 +697,7 @@ G4bool HadrontherapyRBE::interpolation_onLET1_onLET2_onE(G4int k, G4int l, G4int size_t i; if ( (LET >= vecLET[k + column - 1] && LET >= vecLET[l + column - 1]) || (LET < vecLET[k] && LET < vecLET[l]) ) return false; //out of table! - //Find the value of E1 is detected the value of LET among the 8 possible values ​​corresponding to E1 + //Find the value of E1 is detected the value of LET among the 8 possible values corresponding to E1 for (i = 0; i < column - 1; i++) { @@ -710,7 +710,7 @@ G4bool HadrontherapyRBE::interpolation_onLET1_onLET2_onE(G4int k, G4int l, G4int indexLET1 = k; indexLET2 = k + 1; - //Find the value of E2 is detected the value of LET among the 8 possible values ​​corresponding to E2 + //Find the value of E2 is detected the value of LET among the 8 possible values corresponding to E2 for (i = 0; i < column - 1; i++) { diff --git a/examples/advanced/human_phantom/CMakeLists.txt b/examples/advanced/human_phantom/CMakeLists.txt index 9562dce899..aaedae55e0 100644 --- a/examples/advanced/human_phantom/CMakeLists.txt +++ b/examples/advanced/human_phantom/CMakeLists.txt @@ -19,14 +19,6 @@ endif() # Setup Geant4 include directories and compile definitions # include(${Geant4_USE_FILE}) - -# Setup of ROOT ANALYSIS : optional. -option(WITH_ANALYSIS_USE "Build example with analysis objects" OFF) -if(WITH_ANALYSIS_USE) -add_definitions(-DANALYSIS_USE) -else() -endif() - #---------------------------------------------------------------------------- # Setup of GDML : optional. option(WITH_GDML_USE "Build example with GDML" OFF) @@ -56,7 +48,7 @@ target_link_libraries(phantom ${Geant4_LIBRARIES} ${GDML_LIBRARIES} ) # relies on these scripts being in the current working directory. # set(human_phantom_SCRIPTS - adultHead.mac adultMIRDFemale.mac adultMIRDMale.mac adultMIXFemale.mac adultORNLFemale.mac adultORNLMale.mac batch.mac dawnVis.mac default.mac openGLVis.mac vrmlVis.mac primary.mac macro.C + adultHead.mac adultMIRDFemale.mac adultMIRDMale.mac adultORNLFemale.mac adultORNLMale.mac batch.mac dawnVis.mac default.mac openGLVis.mac vrmlVis.mac primary.mac macro.C ) foreach(_script ${human_phantom_SCRIPTS}) diff --git a/examples/advanced/human_phantom/History b/examples/advanced/human_phantom/History index 63771084e4..a9fc18b704 100644 --- a/examples/advanced/human_phantom/History +++ b/examples/advanced/human_phantom/History @@ -4,6 +4,14 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-18-08 Susanna Guatelli (human_phantom-V11-00-02) +- README file updated +- code review +- error (not affecting the simulation) in gdml format removed + +## 2022-23-06 Susanna Guatelli (human_phantom-V11-00-01) +- MIX phantom eliminated as obsolete +- code review ## 2021-12-10 Ben Morgan (human_phantom-V11-00-00) - Change to new Markdown History format diff --git a/examples/advanced/human_phantom/README b/examples/advanced/human_phantom/README index 82fad1e6f2..8db95b1351 100644 --- a/examples/advanced/human_phantom/README +++ b/examples/advanced/human_phantom/README @@ -43,16 +43,8 @@ class G4HumanPhantomMaterial. The materials of the ORNL model are defined in the GDML files. If using ORNL phantom model with no GDML set-up a segmentation fault will be otained when running the simulation. - -*** Parameterized breast *** -MIRD Female model: a breast is analytical and derives from the MIRD -anthropomorphic phantom; the other breast derives from the model [3] and -it is voxelised. - -[3] D.R. Dance and R. A. Hunt, "Voxel breast phantom to represent breasts -of different sizes and glandularities for use with a Monte Carlo simulation -program", Report RMTPC 02/1005. - +The gdml files describing the MIRD phantoms are not used in the example +but are there as reference for users. -----> Physics @@ -79,9 +71,7 @@ the energy deposit is not calculated in the specific organ. The energy deposit is calculated in each voxel of the parameterised breast. -----> Analysis -To activate the analysis, the application must be built with the option -WITH_ANALYSIS_USE=ON : -make -DCMAKE_INSTALL_PREFIX=/path/to/geant4-installation -DWITH_ANALYSIS_USE=ON /path/to/human_phantom/ +The analysis is activated by default. **** SEQUENTIAL MODE ************* output file: g4humanphantom.root containing @@ -112,14 +102,12 @@ adultMIRDMale.mac: example to define a MIRD male human phantom adultHead.mac: example how to define one piece of the anatomy adultORNLFemale.mac: example to define a ORNL female human phantom - THIS NEEDS GDML INSTALLED adultORNLMale.mac: example to define a ORNL male human phantom - THIS NEEDS GDML INSTALLED -adultMIXFemale.mac : example of MIRD human female phantom with - parameterised breast -----> How to build the example If the user wants to run the example importing geometries via GDML, he/she needs to have built the persistency/gdml module by having -set the -DGEANT4_USE_GDML=ON flag during the CMAKE configuration step, +set the -DWITH_GDML_USE=ON flag during the CMAKE configuration step, as well as the -DXERCESC_ROOT_DIR= flag pointing to the path where the XercesC XML parser package is installed in your system. diff --git a/examples/advanced/human_phantom/adultMIRDFemale.mac b/examples/advanced/human_phantom/adultMIRDFemale.mac index 9bedfb6c58..60d8b3a60a 100644 --- a/examples/advanced/human_phantom/adultMIRDFemale.mac +++ b/examples/advanced/human_phantom/adultMIRDFemale.mac @@ -5,7 +5,7 @@ # # Initialize New Phantom # -# Choose model: ORNLFemale, ORNLMale, MIRD, MIX, MIRDHead, ORNLHead +# Choose model: ORNLFemale, ORNLMale, MIRD, MIRDHead, ORNLHead # /phantom/setPhantomModel MIRD # diff --git a/examples/advanced/human_phantom/adultMIRDMale.mac b/examples/advanced/human_phantom/adultMIRDMale.mac index eac82648bc..04aa0ed3d8 100644 --- a/examples/advanced/human_phantom/adultMIRDMale.mac +++ b/examples/advanced/human_phantom/adultMIRDMale.mac @@ -6,7 +6,7 @@ # # Initialize New Phantom # -# Choose model: ORNL, MIRD, MIX +# Choose model: ORNLFemale, ORNLMale, MIRD, MIRDHead, ORNLHead # /phantom/setPhantomModel MIRD # diff --git a/examples/advanced/human_phantom/adultMIXFemale.mac b/examples/advanced/human_phantom/adultMIXFemale.mac deleted file mode 100644 index 9b99a8b960..0000000000 --- a/examples/advanced/human_phantom/adultMIXFemale.mac +++ /dev/null @@ -1,23 +0,0 @@ -# Sets some default verbose -#/control/verbose 2 -# -# -# -# Initialize New Phantom -# -# Choose model: ORNLFemale, ORNLMale, MIRD, MIX, MIRDHead, ORNLHead -# -/phantom/setPhantomModel MIX -# -# Choose Sex of Phantom: Male or Female -# -/phantom/setPhantomSex Female -# -# -# Construct your Phantom -# -/phantom/buildNewPhantom -/run/initialize - - - diff --git a/examples/advanced/human_phantom/adultORNLFemale.mac b/examples/advanced/human_phantom/adultORNLFemale.mac index 5e667e595d..7791bb190c 100644 --- a/examples/advanced/human_phantom/adultORNLFemale.mac +++ b/examples/advanced/human_phantom/adultORNLFemale.mac @@ -5,7 +5,7 @@ # # Initialize New Phantom # -# Choose model: ORNLFemale, ORNLMale, MIRD, MIX, MIRDHead, ORNLHead +# Choose model: ORNLFemale, ORNLMale, MIRD, MIRDHead, ORNLHead # /phantom/setPhantomModel ORNLFemale # diff --git a/examples/advanced/human_phantom/adultORNLMale.mac b/examples/advanced/human_phantom/adultORNLMale.mac index 5e3ca3ba7e..ad925ac2f6 100644 --- a/examples/advanced/human_phantom/adultORNLMale.mac +++ b/examples/advanced/human_phantom/adultORNLMale.mac @@ -5,7 +5,7 @@ # # Initialize New Phantom # -# Choose model: ORNLFemale, ORNLMale, MIRD, MIX, MIRDHead, ORNLHead +# Choose model: ORNLFemale, ORNLMale, MIRD, MIRDHead, ORNLHead # /phantom/setPhantomModel ORNLMale diff --git a/examples/advanced/human_phantom/default.mac b/examples/advanced/human_phantom/default.mac index ed0d7fb9ba..040b80b2a3 100644 --- a/examples/advanced/human_phantom/default.mac +++ b/examples/advanced/human_phantom/default.mac @@ -1,10 +1,8 @@ -#/control/execute adultMIXFemale.mac -# or ... #/control/execute adultHead.mac # or ... -/control/execute adultMIRDMale.mac +#/control/execute adultMIRDMale.mac # or ... -#/control/execute adultMIRDFemale.mac +/control/execute adultMIRDFemale.mac # or ... #/control/execute adultORNLMale.mac # or... diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDArmBone.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDArmBone.gdml index 9915d70b83..c40e437460 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDArmBone.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDArmBone.gdml @@ -57,7 +57,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDBrain.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDBrain.gdml index dea8576a20..3cc3b2b604 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDBrain.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDBrain.gdml @@ -110,7 +110,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDBreast.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDBreast.gdml index 55007e8532..8bec473b8e 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDBreast.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDBreast.gdml @@ -112,8 +112,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDHead.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDHead.gdml index eb5a3208a0..ac5c292c2b 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDHead.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDHead.gdml @@ -106,8 +106,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDHeart.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDHeart.gdml index ba94500264..897c643bfd 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDHeart.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDHeart.gdml @@ -53,8 +53,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDKidney.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDKidney.gdml index 612e30dadc..1f870fde29 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDKidney.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDKidney.gdml @@ -112,8 +112,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDLegs.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDLegs.gdml index 2f2cb88d90..ba388bfc4f 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDLegs.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDLegs.gdml @@ -108,7 +108,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDLiver.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDLiver.gdml index 5ba399b6f6..1185028cbf 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDLiver.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDLiver.gdml @@ -53,8 +53,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDLowerLargeIntestine.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDLowerLargeIntestine.gdml index beb7f435dd..829ba030ba 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDLowerLargeIntestine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDLowerLargeIntestine.gdml @@ -56,7 +56,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDLung.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDLung.gdml index a6f5fb9340..eee7fed869 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDLung.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDLung.gdml @@ -110,8 +110,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDMiddleLowerSpine.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDMiddleLowerSpine.gdml index e969a16871..6171b9d18d 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDMiddleLowerSpine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDMiddleLowerSpine.gdml @@ -55,8 +55,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDOvary.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDOvary.gdml index d8e5218fce..395c41bbf0 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDOvary.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDOvary.gdml @@ -109,7 +109,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDPancreas.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDPancreas.gdml index b045f686a4..8e770150b3 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDPancreas.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDPancreas.gdml @@ -52,8 +52,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDPelvis.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDPelvis.gdml index 017986e61e..b6917c3c92 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDPelvis.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDPelvis.gdml @@ -56,9 +56,9 @@ - - - + + + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDSkull.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDSkull.gdml index bc7264cdbc..59adc107db 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDSkull.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDSkull.gdml @@ -58,13 +58,13 @@ - + - + - - - + + + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDSpleen.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDSpleen.gdml index 50527392d4..0498deee57 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDSpleen.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDSpleen.gdml @@ -50,7 +50,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDStomach.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDStomach.gdml index 44158eb43c..19db8cfb98 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDStomach.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDStomach.gdml @@ -110,7 +110,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDThyroid.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDThyroid.gdml index 16c85a7309..dc33978790 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDThyroid.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDThyroid.gdml @@ -57,7 +57,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDTrunk.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDTrunk.gdml index 8560ad9674..aec8ce36e4 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDTrunk.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDTrunk.gdml @@ -107,7 +107,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDUpperLargeIntestine.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDUpperLargeIntestine.gdml index 2f93dcf56e..1193a63945 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDUpperLargeIntestine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDUpperLargeIntestine.gdml @@ -53,8 +53,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDUpperSpine.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDUpperSpine.gdml index b18ee47d6f..b5cb04922b 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDUpperSpine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDUpperSpine.gdml @@ -55,7 +55,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDUrinaryBladder.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDUrinaryBladder.gdml index 8523dabb2f..04b0fc6efb 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDUrinaryBladder.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDUrinaryBladder.gdml @@ -110,7 +110,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/MIRDUterus.gdml b/examples/advanced/human_phantom/gdmlData/Female/MIRDUterus.gdml index 9600a49f4a..3f4855ebec 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/MIRDUterus.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/MIRDUterus.gdml @@ -106,7 +106,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLArmBone.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLArmBone.gdml index 35fa4fffe5..30aa18c2d0 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLArmBone.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLArmBone.gdml @@ -11,53 +11,53 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + @@ -69,7 +69,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLBrain.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLBrain.gdml index 2ee57c875f..55515c6e00 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLBrain.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLBrain.gdml @@ -9,114 +9,114 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLHead.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLHead.gdml index c3ad97ec15..ea464e0239 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLHead.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLHead.gdml @@ -7,107 +7,107 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + @@ -116,7 +116,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLHeart.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLHeart.gdml index d1521d64e9..4484477114 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLHeart.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLHeart.gdml @@ -11,50 +11,50 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + @@ -64,7 +64,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftArmBone.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftArmBone.gdml index 8003b29b8b..930fc4d056 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftArmBone.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftArmBone.gdml @@ -9,57 +9,57 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftBreast.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftBreast.gdml index 228007e38b..c915296071 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftBreast.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftBreast.gdml @@ -1,127 +1,254 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftKidney.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftKidney.gdml index 9f0644d3f3..469d268455 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftKidney.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftKidney.gdml @@ -10,109 +10,109 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + @@ -125,7 +125,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftLeg.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftLeg.gdml index 1f0182866b..d2b2c1a6a5 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftLeg.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftLeg.gdml @@ -9,100 +9,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -112,7 +112,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftLegBone.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftLegBone.gdml index df2a130f3c..43b49783ae 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftLegBone.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftLegBone.gdml @@ -9,111 +9,111 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftLung.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftLung.gdml index 4bc8dda29c..3bee614182 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftLung.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftLung.gdml @@ -11,106 +11,106 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - + + @@ -123,7 +123,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftOvary.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftOvary.gdml index a195b62132..f777c012ae 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftOvary.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLLeftOvary.gdml @@ -9,110 +9,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLLegBone.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLLegBone.gdml index dc335f5f1d..1bf572625c 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLLegBone.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLLegBone.gdml @@ -10,107 +10,107 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + @@ -120,7 +120,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLLiver.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLLiver.gdml index ae5ff528f6..bfe04bcf28 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLLiver.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLLiver.gdml @@ -11,50 +11,50 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + @@ -67,7 +67,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLLowerLargeIntestine.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLLowerLargeIntestine.gdml index 1bd71a5607..3de6645830 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLLowerLargeIntestine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLLowerLargeIntestine.gdml @@ -14,49 +14,49 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + @@ -77,7 +77,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLMiddleLowerSpine.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLMiddleLowerSpine.gdml index 09de208605..2c81537f9b 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLMiddleLowerSpine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLMiddleLowerSpine.gdml @@ -11,52 +11,52 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - + + @@ -66,7 +66,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLPancreas.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLPancreas.gdml index e200d9d57d..e2e77c1c2f 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLPancreas.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLPancreas.gdml @@ -11,49 +11,49 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + @@ -63,7 +63,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLPelvis.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLPelvis.gdml index 8b710db01e..59295c9846 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLPelvis.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLPelvis.gdml @@ -13,52 +13,52 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - + + + @@ -79,7 +79,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLRightArmBone.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLRightArmBone.gdml index eb62112ef4..4041b8b9fe 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLRightArmBone.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLRightArmBone.gdml @@ -9,57 +9,57 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLRightBreast.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLRightBreast.gdml index 6262a224cf..7aae1f9faf 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLRightBreast.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLRightBreast.gdml @@ -1,124 +1,235 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLRightKidney.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLRightKidney.gdml index f05a725361..2cab509ee6 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLRightKidney.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLRightKidney.gdml @@ -10,109 +10,109 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + @@ -125,7 +125,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLRightLeg.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLRightLeg.gdml index 0ff7f946ca..a22607dabd 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLRightLeg.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLRightLeg.gdml @@ -9,100 +9,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -112,7 +112,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLRightLegBone.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLRightLegBone.gdml index e7b7f99e1e..5199f482a4 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLRightLegBone.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLRightLegBone.gdml @@ -9,112 +9,112 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLRightLung.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLRightLung.gdml index d7c1465d9f..75f3cab32a 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLRightLung.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLRightLung.gdml @@ -11,106 +11,106 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - + + @@ -122,7 +122,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLRightOvary.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLRightOvary.gdml index f941bc35bf..2bf6bf776a 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLRightOvary.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLRightOvary.gdml @@ -9,111 +9,111 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLSkull.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLSkull.gdml index ebc7225bed..646173a8e5 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLSkull.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLSkull.gdml @@ -13,56 +13,56 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - + + + + + @@ -87,7 +87,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLSpleen.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLSpleen.gdml index 492d99012a..5b64a9ae1e 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLSpleen.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLSpleen.gdml @@ -9,53 +9,53 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLStomach.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLStomach.gdml index c786f2c12b..50c42156f6 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLStomach.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLStomach.gdml @@ -9,114 +9,114 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLThyroid.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLThyroid.gdml index 69b1d4de99..d6ed817424 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLThyroid.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLThyroid.gdml @@ -14,50 +14,50 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + @@ -79,7 +79,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLTrunk.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLTrunk.gdml index 4b444cb4c8..73c827baad 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLTrunk.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLTrunk.gdml @@ -9,110 +9,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLUpperLargeIntestine.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLUpperLargeIntestine.gdml index 735421798d..480f36c114 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLUpperLargeIntestine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLUpperLargeIntestine.gdml @@ -12,49 +12,49 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + @@ -65,7 +65,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLUpperSpine.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLUpperSpine.gdml index bef6d81c3b..657dff5d8c 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLUpperSpine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLUpperSpine.gdml @@ -11,56 +11,56 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLUrinaryBladder.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLUrinaryBladder.gdml index 95d5a95e30..2f68054a01 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLUrinaryBladder.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLUrinaryBladder.gdml @@ -10,111 +10,111 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Female/ORNLUterus.gdml b/examples/advanced/human_phantom/gdmlData/Female/ORNLUterus.gdml index 69170c8718..41a9236fb8 100644 --- a/examples/advanced/human_phantom/gdmlData/Female/ORNLUterus.gdml +++ b/examples/advanced/human_phantom/gdmlData/Female/ORNLUterus.gdml @@ -9,108 +9,108 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDArmBone.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDArmBone.gdml index 9915d70b83..c40e437460 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDArmBone.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDArmBone.gdml @@ -57,7 +57,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDBrain.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDBrain.gdml index dea8576a20..3cc3b2b604 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDBrain.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDBrain.gdml @@ -110,7 +110,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDHead.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDHead.gdml index a9a5a0d3a8..64ccc82eed 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDHead.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDHead.gdml @@ -106,8 +106,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDHeart.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDHeart.gdml index ba94500264..897c643bfd 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDHeart.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDHeart.gdml @@ -53,8 +53,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDKidney.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDKidney.gdml index 612e30dadc..1f870fde29 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDKidney.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDKidney.gdml @@ -112,8 +112,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDLegs.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDLegs.gdml index 2f2cb88d90..ba388bfc4f 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDLegs.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDLegs.gdml @@ -108,7 +108,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDLiver.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDLiver.gdml index 5ba399b6f6..1185028cbf 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDLiver.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDLiver.gdml @@ -53,8 +53,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDLowerLargeIntestine.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDLowerLargeIntestine.gdml index beb7f435dd..829ba030ba 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDLowerLargeIntestine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDLowerLargeIntestine.gdml @@ -56,7 +56,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDLung.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDLung.gdml index a6f5fb9340..eee7fed869 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDLung.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDLung.gdml @@ -110,8 +110,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDMiddleLowerSpine.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDMiddleLowerSpine.gdml index e969a16871..6171b9d18d 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDMiddleLowerSpine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDMiddleLowerSpine.gdml @@ -55,8 +55,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDPancreas.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDPancreas.gdml index b045f686a4..8e770150b3 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDPancreas.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDPancreas.gdml @@ -52,8 +52,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDPelvis.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDPelvis.gdml index 017986e61e..b6917c3c92 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDPelvis.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDPelvis.gdml @@ -56,9 +56,9 @@ - - - + + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDSkull.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDSkull.gdml index bc7264cdbc..59adc107db 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDSkull.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDSkull.gdml @@ -58,13 +58,13 @@ - + - + - - - + + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDSpleen.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDSpleen.gdml index 50527392d4..0498deee57 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDSpleen.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDSpleen.gdml @@ -50,7 +50,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDStomach.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDStomach.gdml index 44158eb43c..19db8cfb98 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDStomach.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDStomach.gdml @@ -110,7 +110,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDThyroid.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDThyroid.gdml index 16c85a7309..dc33978790 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDThyroid.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDThyroid.gdml @@ -57,7 +57,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDTrunk.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDTrunk.gdml index 2b0b54e14c..e76a843f0f 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDTrunk.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDTrunk.gdml @@ -107,7 +107,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDUpperLargeIntestine.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDUpperLargeIntestine.gdml index 2f93dcf56e..1193a63945 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDUpperLargeIntestine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDUpperLargeIntestine.gdml @@ -53,8 +53,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDUpperSpine.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDUpperSpine.gdml index b18ee47d6f..b5cb04922b 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDUpperSpine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDUpperSpine.gdml @@ -55,7 +55,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/MIRDUrinaryBladder.gdml b/examples/advanced/human_phantom/gdmlData/Male/MIRDUrinaryBladder.gdml index 8523dabb2f..04b0fc6efb 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/MIRDUrinaryBladder.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/MIRDUrinaryBladder.gdml @@ -110,7 +110,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLArmBone.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLArmBone.gdml index b9a331d6dc..afe33a816b 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLArmBone.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLArmBone.gdml @@ -58,7 +58,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocat - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLBrain.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLBrain.gdml index 2ee57c875f..55515c6e00 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLBrain.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLBrain.gdml @@ -9,114 +9,114 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLHead.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLHead.gdml index 8b90f40e78..6951aa198b 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLHead.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLHead.gdml @@ -106,8 +106,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLHeart.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLHeart.gdml index d1521d64e9..91f05f277a 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLHeart.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLHeart.gdml @@ -53,8 +53,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLKidney.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLKidney.gdml index 37e5446d81..772325406a 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLKidney.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLKidney.gdml @@ -112,8 +112,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftArmBone.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftArmBone.gdml index 7eb72f17b5..222ff4d539 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftArmBone.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftArmBone.gdml @@ -10,57 +10,57 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocat - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftKidney.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftKidney.gdml index 9f0644d3f3..469d268455 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftKidney.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftKidney.gdml @@ -10,109 +10,109 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + @@ -125,7 +125,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftLeg.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftLeg.gdml index 1f0182866b..d2b2c1a6a5 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftLeg.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftLeg.gdml @@ -9,100 +9,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -112,7 +112,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftLegBone.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftLegBone.gdml index ee27ad148b..bf198755b7 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftLegBone.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftLegBone.gdml @@ -9,112 +9,112 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftLung.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftLung.gdml index 4bc8dda29c..993baeabde 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftLung.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLLeftLung.gdml @@ -109,8 +109,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLLegBone.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLLegBone.gdml index dc335f5f1d..0f4d4b4a98 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLLegBone.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLLegBone.gdml @@ -10,107 +10,107 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + @@ -120,7 +120,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLLiver.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLLiver.gdml index ae5ff528f6..aa78911259 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLLiver.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLLiver.gdml @@ -53,8 +53,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLLowerLargeIntestine.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLLowerLargeIntestine.gdml index 1bd71a5607..3de6645830 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLLowerLargeIntestine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLLowerLargeIntestine.gdml @@ -14,49 +14,49 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + @@ -77,7 +77,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLLung.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLLung.gdml index 36e8553a43..5ec2839cfd 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLLung.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLLung.gdml @@ -110,8 +110,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLMiddleLowerSpine.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLMiddleLowerSpine.gdml index 09de208605..2c81537f9b 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLMiddleLowerSpine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLMiddleLowerSpine.gdml @@ -11,52 +11,52 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - + + @@ -66,7 +66,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLPancreas.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLPancreas.gdml index e200d9d57d..e2e77c1c2f 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLPancreas.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLPancreas.gdml @@ -11,49 +11,49 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + @@ -63,7 +63,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLPelvis.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLPelvis.gdml index 8b710db01e..59295c9846 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLPelvis.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLPelvis.gdml @@ -13,52 +13,52 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - + + + @@ -79,7 +79,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLRightArmBone.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLRightArmBone.gdml index 4e4cbbb2a6..ee05ecdcb4 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLRightArmBone.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLRightArmBone.gdml @@ -10,57 +10,57 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocat - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLRightKidney.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLRightKidney.gdml index f05a725361..2cab509ee6 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLRightKidney.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLRightKidney.gdml @@ -10,109 +10,109 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + @@ -125,7 +125,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLRightLeg.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLRightLeg.gdml index 0ff7f946ca..a22607dabd 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLRightLeg.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLRightLeg.gdml @@ -9,100 +9,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -112,7 +112,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLRightLegBone.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLRightLegBone.gdml index e7b7f99e1e..5199f482a4 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLRightLegBone.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLRightLegBone.gdml @@ -9,112 +9,112 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLRightLung.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLRightLung.gdml index d7c1465d9f..865c74c3fa 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLRightLung.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLRightLung.gdml @@ -109,8 +109,8 @@ - - + + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLSkull.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLSkull.gdml index ebc7225bed..646173a8e5 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLSkull.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLSkull.gdml @@ -13,56 +13,56 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - + + + + + @@ -87,7 +87,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLSpleen.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLSpleen.gdml index 492d99012a..5b64a9ae1e 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLSpleen.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLSpleen.gdml @@ -9,53 +9,53 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLStomach.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLStomach.gdml index c786f2c12b..50c42156f6 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLStomach.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLStomach.gdml @@ -9,114 +9,114 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLThyroid.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLThyroid.gdml index 69b1d4de99..59c087664c 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLThyroid.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLThyroid.gdml @@ -57,7 +57,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLTrunk.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLTrunk.gdml index f6d681c0d2..5c53a23def 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLTrunk.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLTrunk.gdml @@ -9,110 +9,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLUpperLargeIntestine.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLUpperLargeIntestine.gdml index 735421798d..65039c180d 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLUpperLargeIntestine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLUpperLargeIntestine.gdml @@ -12,49 +12,49 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + @@ -65,7 +65,7 @@ - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLUpperSpine.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLUpperSpine.gdml index bef6d81c3b..657dff5d8c 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLUpperSpine.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLUpperSpine.gdml @@ -11,56 +11,56 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/gdmlData/Male/ORNLUrinaryBladder.gdml b/examples/advanced/human_phantom/gdmlData/Male/ORNLUrinaryBladder.gdml index 95d5a95e30..2f68054a01 100644 --- a/examples/advanced/human_phantom/gdmlData/Male/ORNLUrinaryBladder.gdml +++ b/examples/advanced/human_phantom/gdmlData/Male/ORNLUrinaryBladder.gdml @@ -10,111 +10,111 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + diff --git a/examples/advanced/human_phantom/human_phantom.out b/examples/advanced/human_phantom/human_phantom.out index 2389da0c0d..43aaea5ed5 100644 --- a/examples/advanced/human_phantom/human_phantom.out +++ b/examples/advanced/human_phantom/human_phantom.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -31,6 +31,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -79,7 +81,7 @@ Some /vis commands (optionally) take a string to specify colour. # # Initialize New Phantom # -# Choose model: ORNL, MIRD, MIX +# Choose model: ORNLFemale, ORNLMale, MIRD, MIRDHead, ORNLHead # /phantom/setPhantomModel MIRD >> Phantom MIRD will be built. @@ -405,6 +407,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -432,7 +435,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -468,8 +471,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -499,8 +501,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -625,7 +627,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -886,21 +888,21 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Index : 0 used in the geometry : Yes Material : Air Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm - Energy thresholds : gamma 250 eV e- 329.591 eV e+ 325.484 eV proton 100 keV + Energy thresholds : gamma 250 eV e- 329.56 eV e+ 325.472 eV proton 100 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 1 used in the geometry : Yes Material : soft_tissue Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm - Energy thresholds : gamma 2.79959 keV e- 347.412 keV e+ 337.914 keV proton 100 keV + Energy thresholds : gamma 2.80001 keV e- 347.402 keV e+ 337.896 keV proton 100 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes Material : skeleton Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm - Energy thresholds : gamma 4.00935 keV e- 441.634 keV e+ 427.723 keV proton 100 keV + Energy thresholds : gamma 4.00973 keV e- 441.639 keV e+ 427.712 keV proton 100 keV Region(s) which use this couple : DefaultRegionForTheWorld @@ -909,33 +911,48 @@ Index : 2 used in the geometry : Yes G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. ### Run 0 start. +... set ntuple merging mode : G4NtupleMergeMode::kNone - done +... set ntuple merging mode : G4NtupleMergeMode::kNone - done +... set ntuple merging row mode : row-wise - done +... create directory for ntuples : human_phantom_ntuple - done +... create file : human_phantom.root - done +... open analysis file : human_phantom.root - done +... open analysis file : human_phantom.root - done +... create ntuple booking : 1 ntupleId 1 - done +... create ntuple T column : organID ntupleId 1 - done +... create ntuple T column : edep ntupleId 1 - done Number of events = 100 Energy Total in Run:logicalBrain, ID: 0, Energy Deposition (MeV): 0 -Energy Total in Run:logicalHead, ID: 1, Energy Deposition (MeV): 4.78792 +Energy Total in Run:logicalHead, ID: 1, Energy Deposition (MeV): 2.86356 +Analysis: organ 1 edep: 2.86356 Energy Total in Run:logicalHeart, ID: 2, Energy Deposition (MeV): 0 Energy Total in Run:logicalLeftAdrenal, ID: 3, Energy Deposition (MeV): 0 Energy Total in Run:logicalLeftArmBone, ID: 4, Energy Deposition (MeV): 0 Energy Total in Run:logicalLeftBreast, ID: 5, Energy Deposition (MeV): 0 Energy Total in Run:logicalLeftClavicle, ID: 6, Energy Deposition (MeV): 0 Energy Total in Run:logicalLeftKidney, ID: 7, Energy Deposition (MeV): 0 -Energy Total in Run:logicalLeftLeg, ID: 8, Energy Deposition (MeV): 9.34038 +Energy Total in Run:logicalLeftLeg, ID: 8, Energy Deposition (MeV): 13.3058 +Analysis: organ 8 edep: 13.3058 Energy Total in Run:logicalLeftLegBone, ID: 9, Energy Deposition (MeV): 0 Energy Total in Run:logicalLeftLung, ID: 10, Energy Deposition (MeV): 0 Energy Total in Run:logicalLeftOvary, ID: 11, Energy Deposition (MeV): 0 Energy Total in Run:logicalLeftScapula, ID: 12, Energy Deposition (MeV): 0 Energy Total in Run:logicalLeftTeste, ID: 13, Energy Deposition (MeV): 0 Energy Total in Run:logicalLowerLargeIntestine, ID: 14, Energy Deposition (MeV): 0 -Energy Total in Run:logicalMaleGenitalia, ID: 15, Energy Deposition (MeV): 0.0907639 +Energy Total in Run:logicalMaleGenitalia, ID: 15, Energy Deposition (MeV): 1.38128 +Analysis: organ 15 edep: 1.38128 Energy Total in Run:logicalMiddleLowerSpine, ID: 16, Energy Deposition (MeV): 0 Energy Total in Run:logicalPancreas, ID: 17, Energy Deposition (MeV): 0 Energy Total in Run:logicalPelvis, ID: 18, Energy Deposition (MeV): 0 -Energy Total in Run:logicalRibCage, ID: 19, Energy Deposition (MeV): 0.582922 +Energy Total in Run:logicalRibCage, ID: 19, Energy Deposition (MeV): 1.25469 +Analysis: organ 19 edep: 1.25469 Energy Total in Run:logicalRightAdrenal, ID: 20, Energy Deposition (MeV): 0 Energy Total in Run:logicalRightArmBone, ID: 21, Energy Deposition (MeV): 0 Energy Total in Run:logicalRightBreast, ID: 22, Energy Deposition (MeV): 0 Energy Total in Run:logicalRightClavicle, ID: 23, Energy Deposition (MeV): 0 Energy Total in Run:logicalRightKidney, ID: 24, Energy Deposition (MeV): 0 -Energy Total in Run:logicalRightLeg, ID: 25, Energy Deposition (MeV): 9.00032 +Energy Total in Run:logicalRightLeg, ID: 25, Energy Deposition (MeV): 10.9843 +Analysis: organ 25 edep: 10.9843 Energy Total in Run:logicalRightLegBone, ID: 26, Energy Deposition (MeV): 0 Energy Total in Run:logicalRightLung, ID: 27, Energy Deposition (MeV): 0 Energy Total in Run:logicalRightOvary, ID: 28, Energy Deposition (MeV): 0 @@ -947,11 +964,23 @@ Energy Total in Run:logicalSpleen, ID: 33, Energy Deposition (MeV): 0 Energy Total in Run:logicalStomach, ID: 34, Energy Deposition (MeV): 0 Energy Total in Run:logicalThymus, ID: 35, Energy Deposition (MeV): 0 Energy Total in Run:logicalThyroid, ID: 36, Energy Deposition (MeV): 0 -Energy Total in Run:logicalTrunk, ID: 37, Energy Deposition (MeV): 27.1275 +Energy Total in Run:logicalTrunk, ID: 37, Energy Deposition (MeV): 30.7582 +Analysis: organ 37 edep: 30.7582 Energy Total in Run:logicalUpperLargeIntestine, ID: 38, Energy Deposition (MeV): 0 Energy Total in Run:logicalUpperSpine, ID: 39, Energy Deposition (MeV): 0 Energy Total in Run:logicalUrinaryBladder, ID: 40, Energy Deposition (MeV): 0 Energy Total in Run:logicalUterus, ID: 41, Energy Deposition (MeV): 0 -Total Energy deposit in the body is: 50.9298 MeV +Total Energy deposit in the body is: 60.5478 MeV +... write file : human_phantom.root - done +... close file : human_phantom.root - done +... clear h1 - done +... clear h2 - done +... clear h3 - done +... clear p1 - done +... clear p2 - done +... clear ntupleBookings - done +... clear ntuples - done +... clear files - done +... clear all data - done Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/advanced/human_phantom/include/G4CustomFemaleBuilder.hh b/examples/advanced/human_phantom/include/G4CustomFemaleBuilder.hh deleted file mode 100644 index 56ee6c5d61..0000000000 --- a/examples/advanced/human_phantom/include/G4CustomFemaleBuilder.hh +++ /dev/null @@ -1,50 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// Previous authors: G. Guerrieri, S. Guatelli, and M. G. Pia, INFN Genova, Italy -// Authors (since 2007): S. Guatelli, University of Wollongong, Australia -// -// - -#ifndef G4CustomFemaleBuilder_h -#define G4CustomFemaleBuilder_h 1 - -//#include "G4VPhysicalVolume.hh" - -#include "G4PhantomBuilder.hh" - -class G4CustomFemaleBuilder: public G4PhantomBuilder -{ -public: - G4CustomFemaleBuilder(); - ~G4CustomFemaleBuilder(); - - void BuildVoxelLeftBreast(const G4String&, G4bool, G4bool); - void BuildVoxelRightBreast(const G4String&, G4bool, G4bool); - void BuildLeftOvary(const G4String&, G4bool, G4bool); - void BuildRightOvary(const G4String&, G4bool, G4bool); - void BuildUterus(const G4String&, G4bool, G4bool); -}; -#endif diff --git a/examples/advanced/human_phantom/include/G4FemaleBuilder.hh b/examples/advanced/human_phantom/include/G4FemaleBuilder.hh index 3a88b81404..b6d62f537d 100644 --- a/examples/advanced/human_phantom/include/G4FemaleBuilder.hh +++ b/examples/advanced/human_phantom/include/G4FemaleBuilder.hh @@ -38,13 +38,13 @@ class G4FemaleBuilder: public G4PhantomBuilder { public: - G4FemaleBuilder(); + G4FemaleBuilder() = default; ~G4FemaleBuilder(); - void BuildLeftBreast(const G4String&, G4bool, G4bool); - void BuildRightBreast(const G4String&, G4bool, G4bool); - void BuildLeftOvary(const G4String&, G4bool, G4bool); - void BuildRightOvary(const G4String&, G4bool, G4bool); - void BuildUterus(const G4String&, G4bool, G4bool); + void BuildLeftBreast(const G4String&, G4bool, G4bool) override; + void BuildRightBreast(const G4String&, G4bool, G4bool) override; + void BuildLeftOvary(const G4String&, G4bool, G4bool) override; + void BuildRightOvary(const G4String&, G4bool, G4bool) override; + void BuildUterus(const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4HumanPhantomAnalysisManager.hh b/examples/advanced/human_phantom/include/G4HumanPhantomAnalysisManager.hh index 70936d989f..609e3e096d 100644 --- a/examples/advanced/human_phantom/include/G4HumanPhantomAnalysisManager.hh +++ b/examples/advanced/human_phantom/include/G4HumanPhantomAnalysisManager.hh @@ -48,7 +48,7 @@ class G4HumanPhantomAnalysisManager public: G4HumanPhantomAnalysisManager(); - ~G4HumanPhantomAnalysisManager(); + ~G4HumanPhantomAnalysisManager() = default; void book(); @@ -64,7 +64,7 @@ public: // results in the ROOT file private: - G4bool factoryOn; + G4bool fFactoryOn; G4int fNtColId[MaxNtCol]; }; #endif diff --git a/examples/advanced/human_phantom/include/G4HumanPhantomColour.hh b/examples/advanced/human_phantom/include/G4HumanPhantomColour.hh index c7b0e6000e..3a801059b1 100644 --- a/examples/advanced/human_phantom/include/G4HumanPhantomColour.hh +++ b/examples/advanced/human_phantom/include/G4HumanPhantomColour.hh @@ -38,24 +38,24 @@ class G4HumanPhantomColour { public: G4HumanPhantomColour(); - ~G4HumanPhantomColour(); + ~G4HumanPhantomColour()=default; public: //void DefineColour(); G4Colour GetColour(const G4String&); //returns the colour private: - G4Colour white; - G4Colour pink; - G4Colour grey; - G4Colour yellow; - G4Colour blue; - G4Colour lightBlue; - G4Colour green; - G4Colour brown; - G4Colour purple; - G4Colour red; - G4Colour orange; - G4Colour black; + G4Colour fWhite; + G4Colour fPink; + G4Colour fGrey; + G4Colour fYellow; + G4Colour fBlue; + G4Colour fLightBlue; + G4Colour fGreen; + G4Colour fBrown; + G4Colour fPurple; + G4Colour fRed; + G4Colour fOrange; + G4Colour fBlack; }; #endif diff --git a/examples/advanced/human_phantom/include/G4HumanPhantomConstruction.hh b/examples/advanced/human_phantom/include/G4HumanPhantomConstruction.hh index 8704dc0ee2..8935ffc4f9 100644 --- a/examples/advanced/human_phantom/include/G4HumanPhantomConstruction.hh +++ b/examples/advanced/human_phantom/include/G4HumanPhantomConstruction.hh @@ -53,14 +53,12 @@ class G4HumanPhantomConstruction : public G4VUserDetectorConstruction //G4VPhysicalVolume* GetMotherVolume(){return mother;}; private: - G4HumanPhantomMaterial* material; - G4HumanPhantomMessenger* messenger; G4VPhysicalVolume* ConstructWorld(); - - G4String model; - G4String sex; - std::map sensitivities; + G4HumanPhantomMaterial* fMaterial; + G4HumanPhantomMessenger* fMessenger; + std::map fSensitivities; + G4String fModel; + G4String fSex; }; - #endif diff --git a/examples/advanced/human_phantom/include/G4HumanPhantomEventAction.hh b/examples/advanced/human_phantom/include/G4HumanPhantomEventAction.hh index d3c8f93d42..fee1a96e11 100644 --- a/examples/advanced/human_phantom/include/G4HumanPhantomEventAction.hh +++ b/examples/advanced/human_phantom/include/G4HumanPhantomEventAction.hh @@ -38,8 +38,8 @@ class G4Event; class G4HumanPhantomEventAction : public G4UserEventAction { public: - G4HumanPhantomEventAction(); - ~G4HumanPhantomEventAction(); + explicit G4HumanPhantomEventAction(); + ~G4HumanPhantomEventAction() = default; public: void BeginOfEventAction(const G4Event*); @@ -49,9 +49,9 @@ private: void Fill(G4String bodypartName, G4double energyDeposit); void totalEventEnergyDeposit(); - G4int hitCollectionID; - std::map energyTotal; - G4String bodypartName; + G4int fHitCollectionID; + std::map fEnergyTotal; + // G4String fBodypartName; }; #endif diff --git a/examples/advanced/human_phantom/include/G4HumanPhantomMaterial.hh b/examples/advanced/human_phantom/include/G4HumanPhantomMaterial.hh index e6eb1d0e57..9b71914a45 100644 --- a/examples/advanced/human_phantom/include/G4HumanPhantomMaterial.hh +++ b/examples/advanced/human_phantom/include/G4HumanPhantomMaterial.hh @@ -46,21 +46,12 @@ public: G4Material* GetMaterial(G4String); //returns the material private: - // G4Material* matW; - //G4Material* matplexiglass; - //G4Material* matPb; - //G4Material* matir192; - //G4Material* Titanium; - // G4Material* matAir; - G4Material* matH2O; - G4Material* soft; - G4Material* skeleton; - G4Material* lung; - G4Material* adipose; - G4Material* glandular; - G4Material* adipose_glandular; - //G4Material*Vacuum; - - //G4Material* muscle; + G4Material* fWater; + G4Material* fSoft; + G4Material* fSkeleton; + G4Material* fLung; + G4Material* fAdipose; + G4Material* fGlandular; + G4Material* fAdipose_glandular; }; #endif diff --git a/examples/advanced/human_phantom/include/G4HumanPhantomMessenger.hh b/examples/advanced/human_phantom/include/G4HumanPhantomMessenger.hh index 0c0571eac7..49fb86825e 100644 --- a/examples/advanced/human_phantom/include/G4HumanPhantomMessenger.hh +++ b/examples/advanced/human_phantom/include/G4HumanPhantomMessenger.hh @@ -52,20 +52,18 @@ public: void AddBodyPart(G4String); // Set Body Parts Sensitivity private: - G4HumanPhantomConstruction* myUserPhantom; + G4HumanPhantomConstruction* fUserPhantom; - G4UIdirectory* phantomDir; - G4UIdirectory* bpDir; + G4UIdirectory* fPhantomDir; + G4UIdirectory* fDir; - G4UIcmdWithAString* modelCmd; - G4UIcmdWithAString* sexCmd; - G4UIcmdWithAString* bodypartCmd; - G4UIcmdWithoutParameter* endCmd; - - G4String bodypart; - G4bool bps; + G4UIcmdWithAString* fModelCmd; + G4UIcmdWithAString* fSexCmd; + G4UIcmdWithAString* fBodypartCmd; + G4UIcmdWithoutParameter* fEndCmd; + G4String fBodypart; + G4bool fBps; }; - #endif diff --git a/examples/advanced/human_phantom/include/G4HumanPhantomRunAction.hh b/examples/advanced/human_phantom/include/G4HumanPhantomRunAction.hh index fe29b71c06..cab2345ca1 100644 --- a/examples/advanced/human_phantom/include/G4HumanPhantomRunAction.hh +++ b/examples/advanced/human_phantom/include/G4HumanPhantomRunAction.hh @@ -39,7 +39,7 @@ class G4HumanPhantomRunAction : public G4UserRunAction { public: - G4HumanPhantomRunAction(G4HumanPhantomAnalysisManager* analysis); + explicit G4HumanPhantomRunAction(G4HumanPhantomAnalysisManager* analysis); ~G4HumanPhantomRunAction(); public: @@ -48,12 +48,10 @@ class G4HumanPhantomRunAction : public G4UserRunAction void Fill(G4String bodypartName, G4double energyDeposit); private: void totalRunEnergyDeposit(); - std::map energyTotal; - G4String bodypartName; + std::map fEnergyTotal; + G4String fBodypartName; -#ifdef ANALYSIS_USE - G4HumanPhantomAnalysisManager* analysisMan; -#endif + G4HumanPhantomAnalysisManager* fAnalysisMan; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDBodyFactory.hh b/examples/advanced/human_phantom/include/G4MIRDBodyFactory.hh index bd2bb59921..d47a56e21b 100644 --- a/examples/advanced/human_phantom/include/G4MIRDBodyFactory.hh +++ b/examples/advanced/human_phantom/include/G4MIRDBodyFactory.hh @@ -46,8 +46,7 @@ public: G4VPhysicalVolume* CreateOrgan(const G4String&, G4VPhysicalVolume*, const G4String&,G4bool,G4bool); - private: - std::map organ; + std::map fOrgan; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDBrain.hh b/examples/advanced/human_phantom/include/G4MIRDBrain.hh index 1cb1869e84..d91e3a70a8 100644 --- a/examples/advanced/human_phantom/include/G4MIRDBrain.hh +++ b/examples/advanced/human_phantom/include/G4MIRDBrain.hh @@ -40,10 +40,9 @@ class G4MIRDBrain: public G4VOrgan { public: - G4MIRDBrain(); - ~G4MIRDBrain(); + G4MIRDBrain() = default; + ~G4MIRDBrain() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDHead.hh b/examples/advanced/human_phantom/include/G4MIRDHead.hh index cd717e80ba..8020e5da64 100644 --- a/examples/advanced/human_phantom/include/G4MIRDHead.hh +++ b/examples/advanced/human_phantom/include/G4MIRDHead.hh @@ -41,9 +41,9 @@ class G4MIRDHead: public G4VOrgan { public: - G4MIRDHead(); - ~G4MIRDHead(); + G4MIRDHead() = default; + ~G4MIRDHead() override = default; G4VPhysicalVolume* Construct(const G4String&, G4VPhysicalVolume*, const G4String&, - G4bool, G4bool); + G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDHeart.hh b/examples/advanced/human_phantom/include/G4MIRDHeart.hh index 8f7af0be9b..3eb5a13561 100644 --- a/examples/advanced/human_phantom/include/G4MIRDHeart.hh +++ b/examples/advanced/human_phantom/include/G4MIRDHeart.hh @@ -40,9 +40,9 @@ class G4MIRDHeart:public G4VOrgan { public: - G4MIRDHeart(); - ~G4MIRDHeart(); + G4MIRDHeart() = default; + ~G4MIRDHeart() override = default ; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDLeftAdrenal.hh b/examples/advanced/human_phantom/include/G4MIRDLeftAdrenal.hh index 3ee27e9faf..2f42d91173 100644 --- a/examples/advanced/human_phantom/include/G4MIRDLeftAdrenal.hh +++ b/examples/advanced/human_phantom/include/G4MIRDLeftAdrenal.hh @@ -40,10 +40,9 @@ class G4MIRDLeftAdrenal: public G4VOrgan { public: - G4MIRDLeftAdrenal(); - ~G4MIRDLeftAdrenal(); + G4MIRDLeftAdrenal() = default; + ~G4MIRDLeftAdrenal() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&,G4bool, G4bool); -private: + const G4String&,G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDLeftArmBone.hh b/examples/advanced/human_phantom/include/G4MIRDLeftArmBone.hh index b0eb3930bf..b8be15bef3 100644 --- a/examples/advanced/human_phantom/include/G4MIRDLeftArmBone.hh +++ b/examples/advanced/human_phantom/include/G4MIRDLeftArmBone.hh @@ -40,14 +40,9 @@ class G4LogicalVolume; class G4MIRDLeftArmBone: public G4VOrgan { public: - G4MIRDLeftArmBone(); - ~G4MIRDLeftArmBone(); - - G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, const G4String&, G4bool, G4bool); - -private: - // SAXProcessor sxp; - // ProcessingConfigurator config; + G4MIRDLeftArmBone()=default; + ~G4MIRDLeftArmBone() override = default; + G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDLeftBreast.hh b/examples/advanced/human_phantom/include/G4MIRDLeftBreast.hh index 7be5bc0d39..3d587f7987 100644 --- a/examples/advanced/human_phantom/include/G4MIRDLeftBreast.hh +++ b/examples/advanced/human_phantom/include/G4MIRDLeftBreast.hh @@ -41,10 +41,9 @@ class G4MIRDLeftBreast: public G4VOrgan { public: - G4MIRDLeftBreast(); - ~G4MIRDLeftBreast(); + G4MIRDLeftBreast() = default; + ~G4MIRDLeftBreast() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDLeftClavicle.hh b/examples/advanced/human_phantom/include/G4MIRDLeftClavicle.hh index 23d56c8280..af98db61ac 100644 --- a/examples/advanced/human_phantom/include/G4MIRDLeftClavicle.hh +++ b/examples/advanced/human_phantom/include/G4MIRDLeftClavicle.hh @@ -40,10 +40,9 @@ class G4MIRDLeftClavicle:public G4VOrgan { public: - G4MIRDLeftClavicle(); - ~G4MIRDLeftClavicle(); + G4MIRDLeftClavicle() = default; + ~G4MIRDLeftClavicle() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDLeftKidney.hh b/examples/advanced/human_phantom/include/G4MIRDLeftKidney.hh index 107edd1912..58e08c6e9e 100644 --- a/examples/advanced/human_phantom/include/G4MIRDLeftKidney.hh +++ b/examples/advanced/human_phantom/include/G4MIRDLeftKidney.hh @@ -40,10 +40,9 @@ class G4MIRDLeftKidney: public G4VOrgan { public: - G4MIRDLeftKidney(); - ~G4MIRDLeftKidney(); + G4MIRDLeftKidney() = default; + ~G4MIRDLeftKidney() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&,G4bool, G4bool); -private: + const G4String&,G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDLeftLeg.hh b/examples/advanced/human_phantom/include/G4MIRDLeftLeg.hh index 11b3f22e87..3cf888b552 100644 --- a/examples/advanced/human_phantom/include/G4MIRDLeftLeg.hh +++ b/examples/advanced/human_phantom/include/G4MIRDLeftLeg.hh @@ -40,10 +40,9 @@ class G4MIRDLeftLeg:public G4VOrgan { public: - G4MIRDLeftLeg(); - ~G4MIRDLeftLeg(); + G4MIRDLeftLeg() = default; + ~G4MIRDLeftLeg() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDLeftLegBone.hh b/examples/advanced/human_phantom/include/G4MIRDLeftLegBone.hh index 021b01a88d..0f8a88114f 100644 --- a/examples/advanced/human_phantom/include/G4MIRDLeftLegBone.hh +++ b/examples/advanced/human_phantom/include/G4MIRDLeftLegBone.hh @@ -39,10 +39,9 @@ class G4MIRDLeftLegBone: public G4VOrgan { public: - G4MIRDLeftLegBone(); - ~G4MIRDLeftLegBone(); + G4MIRDLeftLegBone() = default; + ~G4MIRDLeftLegBone() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDLeftLung.hh b/examples/advanced/human_phantom/include/G4MIRDLeftLung.hh index 73757ea086..294a09daac 100644 --- a/examples/advanced/human_phantom/include/G4MIRDLeftLung.hh +++ b/examples/advanced/human_phantom/include/G4MIRDLeftLung.hh @@ -40,11 +40,10 @@ class G4MIRDLeftLung: public G4VOrgan { public: - G4MIRDLeftLung(); - ~G4MIRDLeftLung(); + G4MIRDLeftLung() = default; + ~G4MIRDLeftLung() override = default; G4VPhysicalVolume* Construct(const G4String&, G4VPhysicalVolume*, - const G4String&,G4bool, G4bool); + const G4String&,G4bool, G4bool) override; -private: }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDLeftOvary.hh b/examples/advanced/human_phantom/include/G4MIRDLeftOvary.hh index 4ae6e2e673..77cd3af896 100644 --- a/examples/advanced/human_phantom/include/G4MIRDLeftOvary.hh +++ b/examples/advanced/human_phantom/include/G4MIRDLeftOvary.hh @@ -40,11 +40,9 @@ class G4MIRDLeftOvary: public G4VOrgan { public: - G4MIRDLeftOvary(); - ~G4MIRDLeftOvary(); + G4MIRDLeftOvary() = default; + ~G4MIRDLeftOvary() override = default; G4VPhysicalVolume* Construct(const G4String&, G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); - -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDLeftScapula.hh b/examples/advanced/human_phantom/include/G4MIRDLeftScapula.hh index 4ccd2d3a59..bae040d394 100644 --- a/examples/advanced/human_phantom/include/G4MIRDLeftScapula.hh +++ b/examples/advanced/human_phantom/include/G4MIRDLeftScapula.hh @@ -40,10 +40,9 @@ class G4MIRDLeftScapula:public G4VOrgan { public: - G4MIRDLeftScapula(); - ~G4MIRDLeftScapula(); + G4MIRDLeftScapula() = default; + ~G4MIRDLeftScapula() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDLeftTeste.hh b/examples/advanced/human_phantom/include/G4MIRDLeftTeste.hh index 205bf53a99..72592d7d1e 100644 --- a/examples/advanced/human_phantom/include/G4MIRDLeftTeste.hh +++ b/examples/advanced/human_phantom/include/G4MIRDLeftTeste.hh @@ -40,11 +40,9 @@ class G4MIRDLeftTeste: public G4VOrgan { public: - G4MIRDLeftTeste(); - ~G4MIRDLeftTeste(); + G4MIRDLeftTeste() = default; + ~G4MIRDLeftTeste() override = default; G4VPhysicalVolume* Construct(const G4String&, G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); - -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDLiver.hh b/examples/advanced/human_phantom/include/G4MIRDLiver.hh index 751f390334..fa9dbdae8b 100644 --- a/examples/advanced/human_phantom/include/G4MIRDLiver.hh +++ b/examples/advanced/human_phantom/include/G4MIRDLiver.hh @@ -38,12 +38,9 @@ class G4VPhysicalVolume; class G4MIRDLiver: public G4VOrgan { public: - - G4MIRDLiver(); - ~G4MIRDLiver(); + G4MIRDLiver() = default; + ~G4MIRDLiver() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); - -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDLowerLargeIntestine.hh b/examples/advanced/human_phantom/include/G4MIRDLowerLargeIntestine.hh index 8878364b7b..331a7743fa 100644 --- a/examples/advanced/human_phantom/include/G4MIRDLowerLargeIntestine.hh +++ b/examples/advanced/human_phantom/include/G4MIRDLowerLargeIntestine.hh @@ -40,10 +40,9 @@ class G4MIRDLowerLargeIntestine: public G4VOrgan { public: - G4MIRDLowerLargeIntestine(); - ~G4MIRDLowerLargeIntestine(); + G4MIRDLowerLargeIntestine() = default; + ~G4MIRDLowerLargeIntestine() override = default ; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDMaleGenitalia.hh b/examples/advanced/human_phantom/include/G4MIRDMaleGenitalia.hh index ed47b2e661..e9eda93e2c 100644 --- a/examples/advanced/human_phantom/include/G4MIRDMaleGenitalia.hh +++ b/examples/advanced/human_phantom/include/G4MIRDMaleGenitalia.hh @@ -40,11 +40,9 @@ class G4MIRDMaleGenitalia: public G4VOrgan { public: - G4MIRDMaleGenitalia(); - ~G4MIRDMaleGenitalia(); + G4MIRDMaleGenitalia() = default; + ~G4MIRDMaleGenitalia() override=default; G4VPhysicalVolume* Construct(const G4String&, G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); - -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDMiddleLowerSpine.hh b/examples/advanced/human_phantom/include/G4MIRDMiddleLowerSpine.hh index 2c09bba317..f347207391 100644 --- a/examples/advanced/human_phantom/include/G4MIRDMiddleLowerSpine.hh +++ b/examples/advanced/human_phantom/include/G4MIRDMiddleLowerSpine.hh @@ -41,10 +41,9 @@ class G4MIRDMiddleLowerSpine: public G4VOrgan { public: - G4MIRDMiddleLowerSpine(); - ~G4MIRDMiddleLowerSpine(); + G4MIRDMiddleLowerSpine() = default; + ~G4MIRDMiddleLowerSpine() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDPancreas.hh b/examples/advanced/human_phantom/include/G4MIRDPancreas.hh index 56c771121f..8009a9e02f 100644 --- a/examples/advanced/human_phantom/include/G4MIRDPancreas.hh +++ b/examples/advanced/human_phantom/include/G4MIRDPancreas.hh @@ -41,10 +41,9 @@ class G4MIRDPancreas: public G4VOrgan { public: - G4MIRDPancreas(); - ~G4MIRDPancreas(); + G4MIRDPancreas() = default; + ~G4MIRDPancreas() override = default; G4VPhysicalVolume* Construct(const G4String&, G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDPelvis.hh b/examples/advanced/human_phantom/include/G4MIRDPelvis.hh index 39f560598a..0280f81302 100644 --- a/examples/advanced/human_phantom/include/G4MIRDPelvis.hh +++ b/examples/advanced/human_phantom/include/G4MIRDPelvis.hh @@ -40,10 +40,9 @@ class G4MIRDPelvis: public G4VOrgan { public: - G4MIRDPelvis(); - ~G4MIRDPelvis(); + G4MIRDPelvis() = default; + ~G4MIRDPelvis() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDRibCage.hh b/examples/advanced/human_phantom/include/G4MIRDRibCage.hh index 5fd4d744ec..cf2d861776 100644 --- a/examples/advanced/human_phantom/include/G4MIRDRibCage.hh +++ b/examples/advanced/human_phantom/include/G4MIRDRibCage.hh @@ -42,22 +42,22 @@ class G4MIRDRibCage: public G4VOrgan public: G4MIRDRibCage(); - ~G4MIRDRibCage(); + ~G4MIRDRibCage() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); + const G4String&, G4bool, G4bool) override; private: - G4VPhysicalVolume* physRib1; - G4VPhysicalVolume* physRib2; - G4VPhysicalVolume* physRib3; - G4VPhysicalVolume* physRib4; - G4VPhysicalVolume* physRib5; - G4VPhysicalVolume* physRib6; - G4VPhysicalVolume* physRib7; - G4VPhysicalVolume* physRib8; - G4VPhysicalVolume* physRib9; - G4VPhysicalVolume* physRib10; - G4VPhysicalVolume* physRib11; - G4VPhysicalVolume* physRib12; + G4VPhysicalVolume* fPhysRib1; + G4VPhysicalVolume* fPhysRib2; + G4VPhysicalVolume* fPhysRib3; + G4VPhysicalVolume* fPhysRib4; + G4VPhysicalVolume* fPhysRib5; + G4VPhysicalVolume* fPhysRib6; + G4VPhysicalVolume* fPhysRib7; + G4VPhysicalVolume* fPhysRib8; + G4VPhysicalVolume* fPhysRib9; + G4VPhysicalVolume* fPhysRib10; + G4VPhysicalVolume* fPhysRib11; + G4VPhysicalVolume* fPhysRib12; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDRightAdrenal.hh b/examples/advanced/human_phantom/include/G4MIRDRightAdrenal.hh index 6cb743299d..dbf9f60ea4 100644 --- a/examples/advanced/human_phantom/include/G4MIRDRightAdrenal.hh +++ b/examples/advanced/human_phantom/include/G4MIRDRightAdrenal.hh @@ -40,10 +40,9 @@ class G4MIRDRightAdrenal: public G4VOrgan { public: - G4MIRDRightAdrenal(); - ~G4MIRDRightAdrenal(); + G4MIRDRightAdrenal() = default; + ~G4MIRDRightAdrenal() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&,G4bool, G4bool); -private: + const G4String&,G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDRightArmBone.hh b/examples/advanced/human_phantom/include/G4MIRDRightArmBone.hh index e6a3e7b7cc..6b8391741d 100644 --- a/examples/advanced/human_phantom/include/G4MIRDRightArmBone.hh +++ b/examples/advanced/human_phantom/include/G4MIRDRightArmBone.hh @@ -41,15 +41,10 @@ class G4MIRDRightArmBone: public G4VOrgan { public: - G4MIRDRightArmBone(); - ~G4MIRDRightArmBone(); + G4MIRDRightArmBone() = default; + ~G4MIRDRightArmBone() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&,G4bool, G4bool); - -private: - // SAXProcessor sxp; - // ProcessingConfigurator config; - + const G4String&,G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDRightBreast.hh b/examples/advanced/human_phantom/include/G4MIRDRightBreast.hh index 5ff56d7ae0..85f03e9066 100644 --- a/examples/advanced/human_phantom/include/G4MIRDRightBreast.hh +++ b/examples/advanced/human_phantom/include/G4MIRDRightBreast.hh @@ -41,10 +41,9 @@ class G4MIRDRightBreast: public G4VOrgan { public: - G4MIRDRightBreast(); - ~G4MIRDRightBreast(); + G4MIRDRightBreast() = default; + ~G4MIRDRightBreast() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&,G4bool, G4bool); -private: + const G4String&,G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDRightClavicle.hh b/examples/advanced/human_phantom/include/G4MIRDRightClavicle.hh index 636a72f8fa..86eb5c0ae2 100644 --- a/examples/advanced/human_phantom/include/G4MIRDRightClavicle.hh +++ b/examples/advanced/human_phantom/include/G4MIRDRightClavicle.hh @@ -40,10 +40,9 @@ class G4MIRDRightClavicle:public G4VOrgan { public: - G4MIRDRightClavicle(); - ~G4MIRDRightClavicle(); + G4MIRDRightClavicle() = default; + ~G4MIRDRightClavicle() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDRightKidney.hh b/examples/advanced/human_phantom/include/G4MIRDRightKidney.hh index 2cb9b95f46..e17a0d9c3b 100644 --- a/examples/advanced/human_phantom/include/G4MIRDRightKidney.hh +++ b/examples/advanced/human_phantom/include/G4MIRDRightKidney.hh @@ -38,11 +38,9 @@ class G4LogicalVolume; class G4MIRDRightKidney: public G4VOrgan { public: - - G4MIRDRightKidney(); - ~G4MIRDRightKidney(); + G4MIRDRightKidney() = default; + ~G4MIRDRightKidney() override = default; G4VPhysicalVolume* Construct(const G4String&, G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDRightLeg.hh b/examples/advanced/human_phantom/include/G4MIRDRightLeg.hh index e1d50490af..acc94266fd 100644 --- a/examples/advanced/human_phantom/include/G4MIRDRightLeg.hh +++ b/examples/advanced/human_phantom/include/G4MIRDRightLeg.hh @@ -39,11 +39,9 @@ class G4LogicalVolume; class G4MIRDRightLeg:public G4VOrgan { public: - - G4MIRDRightLeg(); - ~G4MIRDRightLeg(); + G4MIRDRightLeg() = default; + ~G4MIRDRightLeg() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&,G4bool, G4bool); -private: + const G4String&,G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDRightLegBone.hh b/examples/advanced/human_phantom/include/G4MIRDRightLegBone.hh index 3bb6e23d20..6e50dd8cf2 100644 --- a/examples/advanced/human_phantom/include/G4MIRDRightLegBone.hh +++ b/examples/advanced/human_phantom/include/G4MIRDRightLegBone.hh @@ -40,11 +40,9 @@ class G4MIRDRightLegBone: public G4VOrgan { public: - G4MIRDRightLegBone(); - ~G4MIRDRightLegBone(); + G4MIRDRightLegBone() = default; + ~G4MIRDRightLegBone() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); - -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDRightLung.hh b/examples/advanced/human_phantom/include/G4MIRDRightLung.hh index 3fa8764273..6378813030 100644 --- a/examples/advanced/human_phantom/include/G4MIRDRightLung.hh +++ b/examples/advanced/human_phantom/include/G4MIRDRightLung.hh @@ -41,11 +41,9 @@ class G4MIRDRightLung: public G4VOrgan { public: - G4MIRDRightLung(); - ~G4MIRDRightLung(); + G4MIRDRightLung() = default; + ~G4MIRDRightLung() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); - -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDRightOvary.hh b/examples/advanced/human_phantom/include/G4MIRDRightOvary.hh index a9f828f955..35e6dce8a1 100644 --- a/examples/advanced/human_phantom/include/G4MIRDRightOvary.hh +++ b/examples/advanced/human_phantom/include/G4MIRDRightOvary.hh @@ -40,12 +40,9 @@ class G4LogicalVolume; class G4MIRDRightOvary: public G4VOrgan { public: - - G4MIRDRightOvary(); - ~G4MIRDRightOvary(); + G4MIRDRightOvary() = default; + ~G4MIRDRightOvary() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&,G4bool, G4bool); - -private: + const G4String&,G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDRightScapula.hh b/examples/advanced/human_phantom/include/G4MIRDRightScapula.hh index 3a8cd91b04..c63169d363 100644 --- a/examples/advanced/human_phantom/include/G4MIRDRightScapula.hh +++ b/examples/advanced/human_phantom/include/G4MIRDRightScapula.hh @@ -39,10 +39,9 @@ class G4MIRDRightScapula:public G4VOrgan { public: - G4MIRDRightScapula(); - ~G4MIRDRightScapula(); + G4MIRDRightScapula() = default; + ~G4MIRDRightScapula() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDRightTeste.hh b/examples/advanced/human_phantom/include/G4MIRDRightTeste.hh index 8ac6864fb5..45e92741c9 100644 --- a/examples/advanced/human_phantom/include/G4MIRDRightTeste.hh +++ b/examples/advanced/human_phantom/include/G4MIRDRightTeste.hh @@ -41,11 +41,9 @@ class G4MIRDRightTeste: public G4VOrgan { public: - G4MIRDRightTeste(); - ~G4MIRDRightTeste(); + G4MIRDRightTeste() = default; + ~G4MIRDRightTeste() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&,G4bool, G4bool); - -private: + const G4String&,G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDSkull.hh b/examples/advanced/human_phantom/include/G4MIRDSkull.hh index e3386470dc..1de69db8f1 100644 --- a/examples/advanced/human_phantom/include/G4MIRDSkull.hh +++ b/examples/advanced/human_phantom/include/G4MIRDSkull.hh @@ -40,10 +40,9 @@ class G4LogicalVolume; class G4MIRDSkull: public G4VOrgan { public: - G4MIRDSkull(); - ~G4MIRDSkull(); + G4MIRDSkull() = default; + ~G4MIRDSkull() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDSmallIntestine.hh b/examples/advanced/human_phantom/include/G4MIRDSmallIntestine.hh index daa4512fd1..ac09ae4622 100644 --- a/examples/advanced/human_phantom/include/G4MIRDSmallIntestine.hh +++ b/examples/advanced/human_phantom/include/G4MIRDSmallIntestine.hh @@ -40,10 +40,9 @@ class G4MIRDSmallIntestine: public G4VOrgan { public: - G4MIRDSmallIntestine(); - ~G4MIRDSmallIntestine(); + G4MIRDSmallIntestine() = default; + ~G4MIRDSmallIntestine() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDSpleen.hh b/examples/advanced/human_phantom/include/G4MIRDSpleen.hh index 04d5bfdf30..1c310b93ca 100644 --- a/examples/advanced/human_phantom/include/G4MIRDSpleen.hh +++ b/examples/advanced/human_phantom/include/G4MIRDSpleen.hh @@ -41,11 +41,9 @@ class G4MIRDSpleen: public G4VOrgan { public: - G4MIRDSpleen(); - ~G4MIRDSpleen(); + G4MIRDSpleen()= default; + ~G4MIRDSpleen() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); - -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDStomach.hh b/examples/advanced/human_phantom/include/G4MIRDStomach.hh index d13776945c..a4ff55b6d2 100644 --- a/examples/advanced/human_phantom/include/G4MIRDStomach.hh +++ b/examples/advanced/human_phantom/include/G4MIRDStomach.hh @@ -41,10 +41,9 @@ class G4MIRDStomach: public G4VOrgan { public: - G4MIRDStomach(); - ~G4MIRDStomach(); + G4MIRDStomach() = default; + ~G4MIRDStomach() override = default; G4VPhysicalVolume* Construct(const G4String&, G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDThymus.hh b/examples/advanced/human_phantom/include/G4MIRDThymus.hh index 1cf7d1449a..1aa36355d0 100644 --- a/examples/advanced/human_phantom/include/G4MIRDThymus.hh +++ b/examples/advanced/human_phantom/include/G4MIRDThymus.hh @@ -41,11 +41,10 @@ class G4MIRDThymus: public G4VOrgan { public: - G4MIRDThymus(); - ~G4MIRDThymus(); + G4MIRDThymus() = default; + ~G4MIRDThymus() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&,G4bool, G4bool); + const G4String&,G4bool, G4bool) override; -private: }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDThyroid.hh b/examples/advanced/human_phantom/include/G4MIRDThyroid.hh index b18e003169..41a789c08e 100644 --- a/examples/advanced/human_phantom/include/G4MIRDThyroid.hh +++ b/examples/advanced/human_phantom/include/G4MIRDThyroid.hh @@ -40,11 +40,9 @@ class G4MIRDThyroid: public G4VOrgan { public: - G4MIRDThyroid(); - ~G4MIRDThyroid(); + G4MIRDThyroid() = default; + ~G4MIRDThyroid() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); - -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDTrunk.hh b/examples/advanced/human_phantom/include/G4MIRDTrunk.hh index 0d6f72d9a7..896b112d12 100644 --- a/examples/advanced/human_phantom/include/G4MIRDTrunk.hh +++ b/examples/advanced/human_phantom/include/G4MIRDTrunk.hh @@ -40,11 +40,9 @@ class G4LogicalVolume; class G4MIRDTrunk:public G4VOrgan { public: - - G4MIRDTrunk(); - ~G4MIRDTrunk(); + G4MIRDTrunk() = default; + ~G4MIRDTrunk() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDUpperLargeIntestine.hh b/examples/advanced/human_phantom/include/G4MIRDUpperLargeIntestine.hh index 688b05357e..7e543ae1ed 100644 --- a/examples/advanced/human_phantom/include/G4MIRDUpperLargeIntestine.hh +++ b/examples/advanced/human_phantom/include/G4MIRDUpperLargeIntestine.hh @@ -40,10 +40,9 @@ class G4MIRDUpperLargeIntestine: public G4VOrgan { public: - G4MIRDUpperLargeIntestine(); - ~G4MIRDUpperLargeIntestine(); + G4MIRDUpperLargeIntestine() = default; + ~G4MIRDUpperLargeIntestine() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&,G4bool, G4bool); -private: + const G4String&,G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDUpperSpine.hh b/examples/advanced/human_phantom/include/G4MIRDUpperSpine.hh index ada2da1c3f..39a844fb14 100644 --- a/examples/advanced/human_phantom/include/G4MIRDUpperSpine.hh +++ b/examples/advanced/human_phantom/include/G4MIRDUpperSpine.hh @@ -41,11 +41,9 @@ class G4MIRDUpperSpine: public G4VOrgan { public: - G4MIRDUpperSpine(); - ~G4MIRDUpperSpine(); + G4MIRDUpperSpine() = default; + ~G4MIRDUpperSpine() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*,const G4String&, - G4bool, G4bool); - -private: + G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDUrinaryBladder.hh b/examples/advanced/human_phantom/include/G4MIRDUrinaryBladder.hh index 5de0b00e6a..bf07976caf 100644 --- a/examples/advanced/human_phantom/include/G4MIRDUrinaryBladder.hh +++ b/examples/advanced/human_phantom/include/G4MIRDUrinaryBladder.hh @@ -42,10 +42,9 @@ class G4MIRDUrinaryBladder: public G4VOrgan { public: - G4MIRDUrinaryBladder(); - ~G4MIRDUrinaryBladder(); + G4MIRDUrinaryBladder() = default; + ~G4MIRDUrinaryBladder() override = default; G4VPhysicalVolume* Construct(const G4String&,G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MIRDUterus.hh b/examples/advanced/human_phantom/include/G4MIRDUterus.hh index a8f7b947a0..510d148d07 100644 --- a/examples/advanced/human_phantom/include/G4MIRDUterus.hh +++ b/examples/advanced/human_phantom/include/G4MIRDUterus.hh @@ -41,10 +41,9 @@ class G4MIRDUterus: public G4VOrgan { public: - G4MIRDUterus(); - ~G4MIRDUterus(); + G4MIRDUterus() = default; + ~G4MIRDUterus() override = default; G4VPhysicalVolume* Construct(const G4String&, G4VPhysicalVolume*, - const G4String&, G4bool, G4bool); -private: + const G4String&, G4bool, G4bool) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4MaleBuilder.hh b/examples/advanced/human_phantom/include/G4MaleBuilder.hh index 7338c7fe05..161ed0d2e1 100644 --- a/examples/advanced/human_phantom/include/G4MaleBuilder.hh +++ b/examples/advanced/human_phantom/include/G4MaleBuilder.hh @@ -39,12 +39,11 @@ class G4PhantomBuilder; class G4MaleBuilder: public G4PhantomBuilder { public: - G4MaleBuilder(); + G4MaleBuilder() = default; ~G4MaleBuilder(); - void BuildMaleGenitalia(const G4String& colourName, G4bool solidVis, G4bool sensitivity); - void BuildLeftTeste(const G4String& colourName, G4bool solidVis, G4bool sensitivity); - void BuildRightTeste(const G4String& colourName, G4bool solidVis, G4bool sensitivity); - // void SetModel(G4String); + void BuildMaleGenitalia(const G4String& colourName, G4bool solidVis, G4bool sensitivity) override; + void BuildLeftTeste(const G4String& colourName, G4bool solidVis, G4bool sensitivity) override; + void BuildRightTeste(const G4String& colourName, G4bool solidVis, G4bool sensitivity) override; }; #endif diff --git a/examples/advanced/human_phantom/include/G4PhantomBuilder.hh b/examples/advanced/human_phantom/include/G4PhantomBuilder.hh index 4d054fd59f..6f446034b8 100644 --- a/examples/advanced/human_phantom/include/G4PhantomBuilder.hh +++ b/examples/advanced/human_phantom/include/G4PhantomBuilder.hh @@ -42,68 +42,58 @@ class G4VBodyFactory; class G4PhantomBuilder: public G4BasePhantomBuilder { public: - G4PhantomBuilder(); - ~G4PhantomBuilder(); + explicit G4PhantomBuilder(); + ~G4PhantomBuilder() override = default; - void BuildHead(const G4String&,G4bool,G4bool); - void BuildTrunk(const G4String&,G4bool,G4bool); - void BuildLeftLeg(const G4String&,G4bool,G4bool); - void BuildRightLeg(const G4String&,G4bool,G4bool); + void BuildHead(const G4String&,G4bool,G4bool) override; + void BuildTrunk(const G4String&,G4bool,G4bool) override; + void BuildLeftLeg(const G4String&,G4bool,G4bool) override; + void BuildRightLeg(const G4String&,G4bool,G4bool) override; - void BuildUpperSpine(const G4String&,G4bool,G4bool); - void BuildMiddleLowerSpine(const G4String&,G4bool,G4bool); - void BuildLeftLegBone(const G4String&,G4bool,G4bool); - void BuildRightLegBone(const G4String&,G4bool,G4bool); - void BuildLeftArmBone(const G4String&,G4bool,G4bool); - void BuildRightArmBone(const G4String&,G4bool,G4bool); - void BuildSkull(const G4String&,G4bool,G4bool); - void BuildRibCage(const G4String&,G4bool,G4bool); - void BuildPelvis(const G4String&,G4bool,G4bool); - void BuildLeftScapula(const G4String&,G4bool,G4bool); - void BuildRightScapula(const G4String&,G4bool,G4bool); - void BuildLeftAdrenal(const G4String&,G4bool,G4bool); - void BuildRightAdrenal(const G4String&,G4bool,G4bool); - void BuildLeftClavicle(const G4String&,G4bool,G4bool); - void BuildRightClavicle(const G4String&,G4bool,G4bool); + void BuildUpperSpine(const G4String&,G4bool,G4bool) override; + void BuildMiddleLowerSpine(const G4String&,G4bool,G4bool) override; + void BuildLeftLegBone(const G4String&,G4bool,G4bool) override; + void BuildRightLegBone(const G4String&,G4bool,G4bool) override; + void BuildLeftArmBone(const G4String&,G4bool,G4bool) override; + void BuildRightArmBone(const G4String&,G4bool,G4bool) override; + void BuildSkull(const G4String&,G4bool,G4bool) override; + void BuildRibCage(const G4String&,G4bool,G4bool) override; + void BuildPelvis(const G4String&,G4bool,G4bool) override; + void BuildLeftScapula(const G4String&,G4bool,G4bool) override; + void BuildRightScapula(const G4String&,G4bool,G4bool) override; + void BuildLeftAdrenal(const G4String&,G4bool,G4bool) override; + void BuildRightAdrenal(const G4String&,G4bool,G4bool) override; + void BuildLeftClavicle(const G4String&,G4bool,G4bool) override; + void BuildRightClavicle(const G4String&,G4bool,G4bool) override; + void BuildBrain(const G4String&,G4bool,G4bool) override; + void BuildHeart(const G4String&,G4bool,G4bool) override; + void BuildLeftLung(const G4String&,G4bool,G4bool) override; + void BuildRightLung(const G4String&,G4bool,G4bool) override; + void BuildStomach(const G4String&,G4bool,G4bool) override; + void BuildSmallIntestine(const G4String&,G4bool,G4bool) override; + void BuildUpperLargeIntestine(const G4String&,G4bool,G4bool) override; + void BuildLowerLargeIntestine(const G4String&,G4bool,G4bool) override; + void BuildLeftKidney(const G4String&,G4bool,G4bool) override; + void BuildRightKidney(const G4String&,G4bool,G4bool) override; + void BuildLiver(const G4String&,G4bool,G4bool) override; + void BuildPancreas(const G4String&,G4bool,G4bool) override; + void BuildSpleen(const G4String&,G4bool,G4bool) override; + void BuildUrinaryBladder(const G4String&,G4bool,G4bool) override; + void BuildThyroid(const G4String&,G4bool,G4bool) override; + void BuildThymus(const G4String&,G4bool,G4bool) override; + void SetModel(G4String) override; + void SetMotherVolume(G4VPhysicalVolume*) override; - void BuildBrain(const G4String&,G4bool,G4bool); - - void BuildHeart(const G4String&,G4bool,G4bool); - - void BuildLeftLung(const G4String&,G4bool,G4bool); - void BuildRightLung(const G4String&,G4bool,G4bool); - - void BuildStomach(const G4String&,G4bool,G4bool); - void BuildSmallIntestine(const G4String&,G4bool,G4bool); - void BuildUpperLargeIntestine(const G4String&,G4bool,G4bool); - void BuildLowerLargeIntestine(const G4String&,G4bool,G4bool); - - void BuildLeftKidney(const G4String&,G4bool,G4bool); - void BuildRightKidney(const G4String&,G4bool,G4bool); - void BuildLiver(const G4String&,G4bool,G4bool); - void BuildPancreas(const G4String&,G4bool,G4bool); - void BuildSpleen(const G4String&,G4bool,G4bool); - void BuildUrinaryBladder(const G4String&,G4bool,G4bool); - - void BuildThyroid(const G4String&,G4bool,G4bool); - void BuildThymus(const G4String&,G4bool,G4bool); - - void SetModel(G4String); - void SetMotherVolume(G4VPhysicalVolume*); - - -G4VPhysicalVolume* GetPhantom(); + G4VPhysicalVolume* GetPhantom() override; protected: - G4VBodyFactory* body; - - G4String model; - - G4VPhysicalVolume* motherVolume; - G4VPhysicalVolume* headVolume; - G4VPhysicalVolume* trunkVolume; - G4VPhysicalVolume* leftLegVolume; - G4VPhysicalVolume* rightLegVolume; - G4VPhysicalVolume* maleGenitaliaVolume; + G4VBodyFactory* fBody; + G4String fModel; + G4VPhysicalVolume* fMotherVolume; + G4VPhysicalVolume* fHeadVolume; + G4VPhysicalVolume* fTrunkVolume; + G4VPhysicalVolume* fLeftLegVolume; + G4VPhysicalVolume* fRightLegVolume; + G4VPhysicalVolume* fMaleGenitaliaVolume; }; #endif diff --git a/examples/advanced/human_phantom/include/G4PhantomHeadBuilder.hh b/examples/advanced/human_phantom/include/G4PhantomHeadBuilder.hh index ffe3e9be7f..c7443d6f39 100644 --- a/examples/advanced/human_phantom/include/G4PhantomHeadBuilder.hh +++ b/examples/advanced/human_phantom/include/G4PhantomHeadBuilder.hh @@ -51,15 +51,14 @@ public: void SetModel(G4String); void SetMotherVolume(G4VPhysicalVolume*); - + G4VPhysicalVolume* GetPhantom(); protected: - G4VBodyFactory* body; + G4VBodyFactory* fBody; + G4String fModel; - G4String model; - - G4VPhysicalVolume* motherVolume; - G4VPhysicalVolume* headVolume; + G4VPhysicalVolume* fMotherVolume; + G4VPhysicalVolume* fHeadVolume; }; #endif diff --git a/examples/advanced/human_phantom/include/G4VoxelRightBreast.hh b/examples/advanced/human_phantom/include/G4VoxelRightBreast.hh deleted file mode 100644 index d8294cb57b..0000000000 --- a/examples/advanced/human_phantom/include/G4VoxelRightBreast.hh +++ /dev/null @@ -1,47 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// Previous authors: G. Guerrieri, S. Guatelli and M. G. Pia, INFN Genova, Italy -// Authors (since 2007): S. Guatelli,University of Wollongong, Australia -// Contributions by F. Ambroglini INFN Perugia, Italy -// -// -#ifndef G4VoxelRightBreast_h -#define G4VoxelRightBreast_h 1 - -#include "G4VPhysicalVolume.hh" -#include "G4VOrgan.hh" - -class G4VPhysicalVolume; - -class G4VoxelRightBreast: public G4VOrgan -{ -public: - G4VoxelRightBreast(); - ~G4VoxelRightBreast(); - G4VPhysicalVolume* Construct(const G4String&, G4VPhysicalVolume*, - const G4String&,G4bool, G4bool); -}; -#endif diff --git a/examples/advanced/human_phantom/phantom.cc b/examples/advanced/human_phantom/phantom.cc index 431fec61d0..0a78f8cd4a 100644 --- a/examples/advanced/human_phantom/phantom.cc +++ b/examples/advanced/human_phantom/phantom.cc @@ -47,7 +47,7 @@ int main(int argc,char** argv) runManager->SetNumberOfThreads(nThreads); // Set mandatory initialization classes - G4HumanPhantomConstruction* userPhantom = new G4HumanPhantomConstruction(); + auto* userPhantom = new G4HumanPhantomConstruction(); runManager->SetUserInitialization(userPhantom); runManager->SetUserInitialization(new G4HumanPhantomPhysicsList); @@ -55,7 +55,7 @@ int main(int argc,char** argv) G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); - G4HumanPhantomActionInitialization* actions = new G4HumanPhantomActionInitialization(); + auto* actions = new G4HumanPhantomActionInitialization(); runManager->SetUserInitialization(actions); G4UImanager* UImanager = G4UImanager::GetUIpointer(); @@ -64,11 +64,10 @@ int main(int argc,char** argv) { G4cout << " UI session starts ..." << G4endl; - G4UIExecutive* ui = new G4UIExecutive(argc, argv); + auto* ui = new G4UIExecutive(argc, argv); UImanager->ApplyCommand("/control/execute default.mac"); ui->SessionStart(); delete ui; - } else // Batch mode { diff --git a/examples/advanced/human_phantom/src/G4CustomFemaleBuilder.cc b/examples/advanced/human_phantom/src/G4CustomFemaleBuilder.cc deleted file mode 100644 index 15ec5a5750..0000000000 --- a/examples/advanced/human_phantom/src/G4CustomFemaleBuilder.cc +++ /dev/null @@ -1,103 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// -// Previous authors: G. Guerrieri, S. Guatelli and M. G. Pia, INFN Genova, Italy -// Authors (since 2007): S. Guatelli,University of Wollongong, Australia -// -// - -#include"G4CustomFemaleBuilder.hh" - -#include "G4VBodyFactory.hh" -#include "G4VoxelBreastFactory.hh" -//#include "G4MIRDBodyFactory.hh" -//#include "G4ORNLCustomFemaleBodyFactory.hh" - - -G4CustomFemaleBuilder::G4CustomFemaleBuilder() -{ -} - -G4CustomFemaleBuilder::~G4CustomFemaleBuilder() - -{ - delete body; -} - -void G4CustomFemaleBuilder::BuildUterus(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) - -{ -if (trunkVolume == 0) - G4Exception("G4CustomFemaleBuilder::BuildUterus()", "human_phantom0001", FatalException, "The trunk volume is missing !!!!!"); - - body -> CreateOrgan("Uterus",trunkVolume, colourName, solidVis, sensitivity); } - -void G4CustomFemaleBuilder::BuildLeftOvary(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) - -{ - if (trunkVolume == 0) - G4Exception("G4CustomFemaleBuilder::BuildLeftOvary()", "human_phantom0002", FatalException, "The trunk volume is missing !!!!!"); - - body -> CreateOrgan("LeftOvary",trunkVolume, colourName, - solidVis, sensitivity); -} - -void G4CustomFemaleBuilder::BuildRightOvary(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) - -{ - if (trunkVolume == 0) - G4Exception("G4CustomFemaleBuilder::BuildRightOvary()", "human_phantom0003", FatalException, "The trunk volume is missing !!!!!"); - - body -> CreateOrgan("RightOvary",trunkVolume, colourName, - solidVis, sensitivity); -} - -void G4CustomFemaleBuilder::BuildVoxelLeftBreast(const G4String& colourName, - G4bool solidVis, G4bool sensitivity) -{ - G4cout << "BuildVoxelLeftBreast" << G4endl; - if (motherVolume == 0) - G4Exception("G4CustomFemaleBuilder::BuildVoxelLeftBreast()", "human_phantom0004", FatalException, "The world volume is missing !!!!!"); - - G4VBodyFactory* customBody = new G4VoxelBreastFactory(); - customBody -> CreateOrgan("LeftBreast",motherVolume, colourName, - solidVis, sensitivity); - delete customBody; -} - - -void G4CustomFemaleBuilder::BuildVoxelRightBreast(const G4String& colourName, - G4bool solidVis, - G4bool sensitivity) -{ - if (motherVolume == 0) - G4Exception("G4CustomFemaleBuilder::BuildVoxelRightBreast()", "human_phantom0005", FatalException, "The world volume is missing !!!!!"); - - G4VBodyFactory* customBody = new G4VoxelBreastFactory(); - customBody -> CreateOrgan("RightBreast",motherVolume, colourName, - solidVis, sensitivity); - delete customBody; -} diff --git a/examples/advanced/human_phantom/src/G4FemaleBuilder.cc b/examples/advanced/human_phantom/src/G4FemaleBuilder.cc index 8513eb3c1c..45504190e7 100644 --- a/examples/advanced/human_phantom/src/G4FemaleBuilder.cc +++ b/examples/advanced/human_phantom/src/G4FemaleBuilder.cc @@ -34,53 +34,47 @@ //#include "G4MIRDBodyFactory.hh" //#include "G4ORNLFemaleBodyFactory.hh" - -G4FemaleBuilder::G4FemaleBuilder() -{ -} - G4FemaleBuilder::~G4FemaleBuilder() - { - delete body; + delete fBody; } void G4FemaleBuilder::BuildUterus(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4FemaleBuilder::BuildUterus()", "human_phantom0006", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Uterus",trunkVolume, colourName, solidVis, sensitivity); + fBody -> CreateOrgan("Uterus", fTrunkVolume, colourName, solidVis, sensitivity); } void G4FemaleBuilder::BuildLeftOvary(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4FemaleBuilder::BuildLeftOvary()", "human_phantom0007", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("LeftOvary",trunkVolume, colourName, + fBody -> CreateOrgan("LeftOvary", fTrunkVolume, colourName, solidVis, sensitivity); } void G4FemaleBuilder::BuildRightOvary(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4FemaleBuilder::BuildRightOvary()", "human_phantom0008", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("RightOvary",trunkVolume, colourName, + fBody -> CreateOrgan("RightOvary",fTrunkVolume, colourName, solidVis, sensitivity); } void G4FemaleBuilder::BuildLeftBreast(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (motherVolume == 0) + if (fMotherVolume == nullptr) G4Exception("G4FemaleBuilder::BuildLeftBreast()", "human_phantom0009", FatalException, "The world volume is missing !!!!!"); - body -> CreateOrgan("LeftBreast",motherVolume, colourName, + fBody -> CreateOrgan("LeftBreast", fMotherVolume, colourName, solidVis, sensitivity); } @@ -88,9 +82,9 @@ void G4FemaleBuilder::BuildRightBreast(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (motherVolume == 0) + if (fMotherVolume == nullptr) G4Exception("G4FemaleBuilder::BuildRightBreast()", "human_phantom0010", FatalException, "The world volume is missing !!!!!"); - body -> CreateOrgan("RightBreast",motherVolume, colourName, + fBody -> CreateOrgan("RightBreast", fMotherVolume, colourName, solidVis, sensitivity); } diff --git a/examples/advanced/human_phantom/src/G4HumanPhantomActionInitialization.cc b/examples/advanced/human_phantom/src/G4HumanPhantomActionInitialization.cc index fb87143e10..c4d0cc0580 100644 --- a/examples/advanced/human_phantom/src/G4HumanPhantomActionInitialization.cc +++ b/examples/advanced/human_phantom/src/G4HumanPhantomActionInitialization.cc @@ -27,7 +27,6 @@ // #include "G4HumanPhantomActionInitialization.hh" #include "G4HumanPhantomPrimaryGeneratorAction.hh" -#include "G4HumanPhantomSteppingAction.hh" #include "G4RunManager.hh" #include "G4HumanPhantomRunAction.hh" #include "G4HumanPhantomEventAction.hh" @@ -35,35 +34,23 @@ G4HumanPhantomActionInitialization::G4HumanPhantomActionInitialization(): G4VUserActionInitialization() -{ -} - +{} G4HumanPhantomActionInitialization::~G4HumanPhantomActionInitialization() -{ -} +{} void G4HumanPhantomActionInitialization::BuildForMaster() const -{ - -} - +{} void G4HumanPhantomActionInitialization::Build() const { // Instantiate the analysis manager -G4HumanPhantomAnalysisManager* analysis = new G4HumanPhantomAnalysisManager(); - +auto* analysis = new G4HumanPhantomAnalysisManager(); + SetUserAction(new G4HumanPhantomPrimaryGeneratorAction); - SetUserAction(new G4HumanPhantomRunAction(analysis)); - -G4HumanPhantomEventAction* eventAction = new G4HumanPhantomEventAction(); -SetUserAction(eventAction); - -SetUserAction(new G4HumanPhantomSteppingAction()); - +SetUserAction(new G4HumanPhantomEventAction()); } diff --git a/examples/advanced/human_phantom/src/G4HumanPhantomAnalysisManager.cc b/examples/advanced/human_phantom/src/G4HumanPhantomAnalysisManager.cc index 277daa7d52..50a8c50c51 100644 --- a/examples/advanced/human_phantom/src/G4HumanPhantomAnalysisManager.cc +++ b/examples/advanced/human_phantom/src/G4HumanPhantomAnalysisManager.cc @@ -30,15 +30,13 @@ Author: Susanna Guatelli, University of Wollongong, Australia // The analysis was included in this application following the extended Geant4 // example analysis/AnaEx01 -#include #include "G4HumanPhantomAnalysisManager.hh" #include "G4UnitsTable.hh" #include "G4SystemOfUnits.hh" G4HumanPhantomAnalysisManager::G4HumanPhantomAnalysisManager() { - -factoryOn = false; +fFactoryOn = false; // Initialization ntuple for (G4int k=0; kSetVerboseLevel(2); + analysisManager->SetVerboseLevel(2); // Create a root file G4String fileName = "human_phantom.root"; // Create directories - AnalysisManager->SetNtupleDirectoryName("human_phantom_ntuple"); + analysisManager->SetNtupleDirectoryName("human_phantom_ntuple"); - - G4bool fileOpen = AnalysisManager->OpenFile(fileName); + G4bool fileOpen = analysisManager->OpenFile(fileName); if (!fileOpen) { G4cout << "\n---> HistoManager::book(): cannot open " << fileName @@ -72,38 +65,37 @@ void G4HumanPhantomAnalysisManager::book() } //creating a ntuple, containg 3D energy deposition in the phantom - AnalysisManager->SetFirstNtupleId(1); - AnalysisManager -> CreateNtuple("1", "3Dedep"); - fNtColId[0] = AnalysisManager->CreateNtupleDColumn("organID"); - fNtColId[1] = AnalysisManager->CreateNtupleDColumn("edep"); + analysisManager->SetFirstNtupleId(1); + analysisManager->CreateNtuple("1", "3Dedep"); + fNtColId[0] = analysisManager->CreateNtupleDColumn("organID"); + fNtColId[1] = analysisManager->CreateNtupleDColumn("edep"); - AnalysisManager->FinishNtuple(); + analysisManager->FinishNtuple(); - factoryOn = true; + fFactoryOn = true; } - void G4HumanPhantomAnalysisManager::FillNtupleWithEnergyDeposition(G4int organ,G4double energyDep) { if (energyDep !=0) { - G4AnalysisManager* AnalysisManager = G4AnalysisManager::Instance(); - AnalysisManager->FillNtupleDColumn(1, fNtColId[0], organ); - AnalysisManager->FillNtupleDColumn(1, fNtColId[1], energyDep); - AnalysisManager->AddNtupleRow(1); + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + analysisManager->FillNtupleDColumn(1, fNtColId[0], organ); + analysisManager->FillNtupleDColumn(1, fNtColId[1], energyDep); + analysisManager->AddNtupleRow(1); G4cout << "Analysis: organ " << organ << " edep: "<< energyDep << G4endl; } } void G4HumanPhantomAnalysisManager::save() { - if (factoryOn) + if (fFactoryOn) { - G4AnalysisManager* AnalysisManager = G4AnalysisManager::Instance(); - AnalysisManager->Write(); - AnalysisManager->CloseFile(); - AnalysisManager->Clear(); - factoryOn = false; + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + analysisManager->Write(); + analysisManager->CloseFile(); + analysisManager->Clear(); + fFactoryOn = false; } } diff --git a/examples/advanced/human_phantom/src/G4HumanPhantomColour.cc b/examples/advanced/human_phantom/src/G4HumanPhantomColour.cc index 5f880719a4..3efcb49657 100644 --- a/examples/advanced/human_phantom/src/G4HumanPhantomColour.cc +++ b/examples/advanced/human_phantom/src/G4HumanPhantomColour.cc @@ -29,42 +29,37 @@ #include "G4VisAttributes.hh" #include "G4HumanPhantomColour.hh" #include "G4Colour.hh" + G4HumanPhantomColour::G4HumanPhantomColour() { - white = G4Colour(1.0, 1.0, 1.0); - pink = G4Colour(0.94, 0.5, 0.5); - grey = G4Colour(0.46, 0.53, 0.6); - yellow = G4Colour(1.0, 1.0, 0.); - blue = G4Colour(0.25,0.41, 0.88 ); - lightBlue = G4Colour(0.28, 0.82, 0.8); - green = G4Colour(0., 1., 0.); - brown = G4Colour(0.5, 0.5, 0.); - purple = G4Colour(0.85,0.44,0.84); - red = G4Colour(1.0, 0.0, 0.0); - orange = G4Colour(1.,0.5,0.); - black = G4Colour(0.,0.,0.); -} - -G4HumanPhantomColour::~G4HumanPhantomColour() -{ - + fWhite = G4Colour(1.0, 1.0, 1.0); + fPink = G4Colour(0.94, 0.5, 0.5); + fGrey = G4Colour(0.46, 0.53, 0.6); + fYellow = G4Colour(1.0, 1.0, 0.); + fBlue = G4Colour(0.25,0.41, 0.88 ); + fLightBlue = G4Colour(0.28, 0.82, 0.8); + fGreen = G4Colour(0., 1., 0.); + fBrown = G4Colour(0.5, 0.5, 0.); + fPurple = G4Colour(0.85,0.44,0.84); + fRed = G4Colour(1.0, 0.0, 0.0); + fOrange = G4Colour(1.,0.5,0.); + fBlack = G4Colour(0.,0.,0.); } G4Colour G4HumanPhantomColour::GetColour(const G4String& colourName) { - // Returns the colour - if (colourName == "pink") return pink; - else if(colourName == "white") return white; - else if (colourName == "grey") return grey; - else if (colourName == "yellow") return yellow; - else if (colourName == "blue") return blue; - else if (colourName == "lightBlue") return lightBlue; - else if (colourName == "green") return green; - else if (colourName == "brown") return brown; - else if (colourName == "purple") return purple; - else if (colourName == "red") return red; - else if (colourName == "orange") return orange; - else if (colourName == "black") return black; -else {G4cout<< colourName << "does not exist !!!"<< G4endl; return white;} + if (colourName == "pink") return fPink; + else if(colourName == "white") return fWhite; + else if (colourName == "grey") return fGrey; + else if (colourName == "yellow") return fYellow; + else if (colourName == "blue") return fBlue; + else if (colourName == "lightBlue") return fLightBlue; + else if (colourName == "green") return fGreen; + else if (colourName == "brown") return fBrown; + else if (colourName == "purple") return fPurple; + else if (colourName == "red") return fRed; + else if (colourName == "orange") return fOrange; + else if (colourName == "black") return fBlack; +else {G4cout<< colourName << "does not exist !!!"<< G4endl; return fWhite;} } diff --git a/examples/advanced/human_phantom/src/G4HumanPhantomConstruction.cc b/examples/advanced/human_phantom/src/G4HumanPhantomConstruction.cc index 86b4a4cf5b..dbd5f6b925 100644 --- a/examples/advanced/human_phantom/src/G4HumanPhantomConstruction.cc +++ b/examples/advanced/human_phantom/src/G4HumanPhantomConstruction.cc @@ -45,7 +45,6 @@ #include "G4FemaleBuilder.hh" #include "G4MaleBuilder.hh" #include "G4PhantomHeadBuilder.hh" -#include "G4CustomFemaleBuilder.hh" #include "G4RunManager.hh" #include "G4HumanPhantomMaterial.hh" #include "G4Box.hh" @@ -57,50 +56,41 @@ G4HumanPhantomConstruction::G4HumanPhantomConstruction() { - messenger = new G4HumanPhantomMessenger(this); - material = new G4HumanPhantomMaterial(); + fMessenger = new G4HumanPhantomMessenger(this); + fMaterial = new G4HumanPhantomMaterial(); } G4HumanPhantomConstruction::~G4HumanPhantomConstruction() { - delete material; - delete messenger; + delete fMaterial; + delete fMessenger; } G4VPhysicalVolume* G4HumanPhantomConstruction::Construct() { - material -> DefineMaterials(); - + fMaterial -> DefineMaterials(); + G4BasePhantomBuilder* builder = nullptr; - G4BasePhantomBuilder* builder = 0; - - if (model == "MIRDHead" || model == "ORNLHead") + if (fModel == "MIRDHead" || fModel == "ORNLHead") { G4cout << "HeadBuilder instantiated" << G4endl; builder = new G4PhantomHeadBuilder; - if (model == "MIRDHead") builder->SetModel("MIRD"); - else if (model == "ORNLHead") builder->SetModel("ORNLMale"); + if (fModel == "MIRDHead") builder->SetModel("MIRD"); + else if (fModel == "ORNLHead") builder->SetModel("ORNLMale"); } else { - if (sex =="Female") + if (fSex =="Female") { - if (model == "MIX") builder = new G4CustomFemaleBuilder; - else {builder = new G4FemaleBuilder;} - builder->SetModel(model); - G4cout <SetModel(fModel); + G4cout << fModel << " "<< fSex << G4endl; } - else if (sex == "Male") + else if (fSex == "Male") { builder = new G4MaleBuilder; - builder->SetModel(model); - if (model == "MIX") - { - G4cout<< "Custom Male is not available!!! MIRD model is selected !" - << G4endl; - model = "MIRD"; - builder->SetModel(model);} + builder->SetModel(fModel); } } @@ -108,84 +98,78 @@ G4VPhysicalVolume* G4HumanPhantomConstruction::Construct() // the argument indicates the sensitivity of the volume - builder->BuildHead("black", false, sensitivities["Head"]); - builder->BuildSkull("orange", false,sensitivities["Skull"]); - builder->BuildBrain("yellow", true,sensitivities["Brain"]); + builder->BuildHead("black", false, fSensitivities["Head"]); + builder->BuildSkull("orange", false, fSensitivities["Skull"]); + builder->BuildBrain("yellow", true, fSensitivities["Brain"]); - if (model != "MIRDHead" && model != "ORNLHead") + if (fModel != "MIRDHead" && fModel != "ORNLHead") { // builder->SetModel(model); - builder->BuildTrunk("yellow", false, sensitivities["Trunk"]); + builder->BuildTrunk("yellow", false, fSensitivities["Trunk"]); - builder->BuildLeftLeg("yellow", false,sensitivities["LeftLeg"]); - builder->BuildRightLeg("yellow", false,sensitivities["RightLeg"]); + builder->BuildLeftLeg("yellow", false, fSensitivities["LeftLeg"]); + builder->BuildRightLeg("yellow", false, fSensitivities["RightLeg"]); - builder->BuildLeftArmBone("grey", true,sensitivities["LeftArmBone"]); - builder->BuildRightArmBone("grey", true, sensitivities["RightArmBone"]); + builder->BuildLeftArmBone("grey", true, fSensitivities["LeftArmBone"]); + builder->BuildRightArmBone("grey", true, fSensitivities["RightArmBone"]); - builder->BuildLeftLegBone("grey", true,sensitivities["LeftLegBone"]); - builder ->BuildRightLegBone("grey", true,sensitivities["RightLegBone"]); + builder->BuildLeftLegBone("grey", true, fSensitivities["LeftLegBone"]); + builder ->BuildRightLegBone("grey", true, fSensitivities["RightLegBone"]); - builder->BuildUpperSpine("yellow", true,sensitivities["UpperSpine"]); + builder->BuildUpperSpine("yellow", true, fSensitivities["UpperSpine"]); - if (model == "MIRD" || model == "MIX") + if (fModel == "MIRD") { - builder->BuildLeftScapula("grey", true, sensitivities["LeftScapula"]); - builder->BuildRightScapula("grey", true, sensitivities["RightScapula"]); - builder->BuildLeftAdrenal("yellow", true, sensitivities["LeftAdrenal"]); - builder->BuildRightAdrenal("yellow", true, sensitivities["RightAdrenal"]); - builder->BuildThymus("orange", true,sensitivities["Thymus"]); - builder->BuildLeftClavicle("grey", true,sensitivities["LeftClavicle"]); - builder->BuildRightClavicle("grey", true,sensitivities["RightClavicle"]); - builder->BuildSmallIntestine("orange", true,sensitivities["SmallIntestine"]); - builder->BuildRibCage("grey", true,sensitivities["RibCage"]); + builder->BuildLeftScapula("grey", true, fSensitivities["LeftScapula"]); + builder->BuildRightScapula("grey", true, fSensitivities["RightScapula"]); + builder->BuildLeftAdrenal("yellow", true, fSensitivities["LeftAdrenal"]); + builder->BuildRightAdrenal("yellow", true, fSensitivities["RightAdrenal"]); + builder->BuildThymus("orange", true, fSensitivities["Thymus"]); + builder->BuildLeftClavicle("grey", true, fSensitivities["LeftClavicle"]); + builder->BuildRightClavicle("grey", true, fSensitivities["RightClavicle"]); + builder->BuildSmallIntestine("orange", true, fSensitivities["SmallIntestine"]); + builder->BuildRibCage("grey", true, fSensitivities["RibCage"]); } - builder->BuildMiddleLowerSpine("yellow", true,sensitivities["MiddleLowerSpine"]); + builder->BuildMiddleLowerSpine("yellow", true, fSensitivities["MiddleLowerSpine"]); - builder->BuildPelvis("grey", true,sensitivities["Pelvis"]); + builder->BuildPelvis("grey", true, fSensitivities["Pelvis"]); - builder->BuildStomach("orange", true,sensitivities["Stomach"]); - builder->BuildUpperLargeIntestine("lightBlue", true,sensitivities["UpperLargeIntestine"]); - builder->BuildLowerLargeIntestine("lightBlue", true,sensitivities["LowerLargeIntestine"]); - - builder->BuildSpleen("green", true,sensitivities["Spleen"]); - builder->BuildPancreas("purple", true,sensitivities["Pancreas"]); + builder->BuildStomach("orange", true, fSensitivities["Stomach"]); + builder->BuildUpperLargeIntestine("lightBlue", true, fSensitivities["UpperLargeIntestine"]); + builder->BuildLowerLargeIntestine("lightBlue", true, fSensitivities["LowerLargeIntestine"]); + builder->BuildSpleen("green", true, fSensitivities["Spleen"]); + builder->BuildPancreas("purple", true, fSensitivities["Pancreas"]); //builder->BuildLiver("orange", true,sensitivities["Liver"]); - builder->BuildLeftKidney("green", true,sensitivities["LeftKidney"]); - builder->BuildRightKidney("green", true,sensitivities["RightKidney"]); - builder->BuildUrinaryBladder("green", true,sensitivities["UrinaryBladder"]); + builder->BuildLeftKidney("green", true, fSensitivities["LeftKidney"]); + builder->BuildRightKidney("green", true, fSensitivities["RightKidney"]); + builder->BuildUrinaryBladder("green", true, fSensitivities["UrinaryBladder"]); - //builder->BuildHeart("red", true,sensitivities["Hearth"]);// to do MIRD - // builder->BuildLeftLung("blue", true,sensitivities["LeftLung"]); - //builder->BuildRightLung("blue", true,sensitivities["RightLung"]); - // builder->BuildThyroid("orange", true,sensitivities["Thyroid"]); + //builder->BuildHeart("red", true,fSensitivities["Hearth"]);// to do MIRD + // builder->BuildLeftLung("blue", true, fSensitivities["LeftLung"]); + //builder->BuildRightLung("blue", true, fSensitivities["RightLung"]); + // builder->BuildThyroid("orange", true, fSensitivities["Thyroid"]); - if(sex=="Female"){ + if(fSex=="Female"){ - builder->BuildLeftOvary("purple", true,sensitivities["LeftOvary"]); - builder->BuildRightOvary("purple", true,sensitivities["RightOvary"]); - builder->BuildUterus("purple", true,sensitivities["Uterus"]); + builder->BuildLeftOvary("purple", true, fSensitivities["LeftOvary"]); + builder->BuildRightOvary("purple", true, fSensitivities["RightOvary"]); + builder->BuildUterus("purple", true, fSensitivities["Uterus"]); - if (model == "ORNLFemale" || model == "MIRD") + if (fModel == "ORNLFemale" || fModel == "MIRD") { - builder->BuildLeftBreast("purple", true,sensitivities["LeftBreast"]); - builder->BuildRightBreast("purple", true,sensitivities["RightBreast"]); + builder->BuildLeftBreast("purple", true,fSensitivities["LeftBreast"]); + builder->BuildRightBreast("purple", true,fSensitivities["RightBreast"]); } - else if (model == "MIX") - { - builder->BuildVoxelLeftBreast("purple",false, sensitivities["LeftBreast"]); - builder->BuildVoxelRightBreast("purple", false, sensitivities["RightBreast"]); - } } - if(sex=="Male"){ + if(fSex=="Male"){ - if (model == "MIRD"){ - builder -> BuildMaleGenitalia("yellow",false,sensitivities["MaleGenitalia"]); - builder -> BuildLeftTeste("purple",true,sensitivities["LeftTeste"]); - builder -> BuildRightTeste("purple",true,sensitivities["RightTeste"]); + if (fModel == "MIRD"){ + builder -> BuildMaleGenitalia("yellow",false, fSensitivities["MaleGenitalia"]); + builder -> BuildLeftTeste("purple",true, fSensitivities["LeftTeste"]); + builder -> BuildRightTeste("purple",true, fSensitivities["RightTeste"]); } else G4cout << "ORNL does not have model for male genitalia and testes yet" << G4endl; } @@ -203,26 +187,26 @@ void G4HumanPhantomConstruction::SetBodyPartSensitivity(G4String, G4bool) G4VPhysicalVolume* G4HumanPhantomConstruction::ConstructWorld() { - G4Material* air = material -> GetMaterial("Air"); + G4Material* air = fMaterial -> GetMaterial("Air"); // World Volume // G4double worldSize = 1.*m ; G4double worldSize = 1.5 *m ; G4Box* world = new G4Box("world", worldSize, worldSize, worldSize); - G4LogicalVolume* logicWorld = new G4LogicalVolume(world, - air, - "logicalWorld", 0, 0,0); + auto* logicWorld = new G4LogicalVolume(world, + air, + "logicalWorld", nullptr, nullptr, nullptr); - G4VPhysicalVolume* motherVolume = new G4PVPlacement(0,G4ThreeVector(), + G4VPhysicalVolume* motherVolume = new G4PVPlacement(nullptr,G4ThreeVector(), "physicalWorld", logicWorld, - 0, + nullptr, false, 0); // Visualization Attributes - G4VisAttributes* WorldVisAtt = new G4VisAttributes(G4Colour(0.94,0.5,0.5)); + auto* WorldVisAtt = new G4VisAttributes(G4Colour(0.94,0.5,0.5)); WorldVisAtt->SetForceSolid(false); logicWorld->SetVisAttributes(G4VisAttributes::GetInvisible()); @@ -232,63 +216,60 @@ G4VPhysicalVolume* G4HumanPhantomConstruction::ConstructWorld() void G4HumanPhantomConstruction::SetPhantomSex(G4String newSex) { - sex=newSex; + fSex=newSex; - if (sex == "Male") + if (fSex == "Male") { G4cout << ">> Male Phantom will be built." << G4endl; } - if (sex == "Female") + if (fSex == "Female") { G4cout << ">> Female Phantom will be built." << G4endl; } - if ((sex != "Female") && (sex != "Male")) - G4cout << sex << " can not be defined!" << G4endl; + if ((fSex != "Female") && (fSex != "Male")) + G4cout << fSex << " can not be defined!" << G4endl; } void G4HumanPhantomConstruction::SetPhantomModel(G4String newModel) { - model = newModel; + fModel = newModel; - if (model == "MIRD") + if (fModel == "MIRD") { - G4cout<<" >> Phantom " << model << " will be built."<> Phantom " << fModel << " will be built."<> Phantom " << model << " will be built."<> Phantom " << fModel << " will be built."<> Phantom " << model << " will be built."<> Phantom " << fModel << " will be built."<> Phantom " << model << " will be built."<> Phantom " << model << " will be built."<> Phantom " << fModel << " will be built."<> Phantom " << model << " will be built."<> Phantom " << fModel << " will be built."<AddNewDetector(SD); -if (model != "ORNLMale" && model != "ORNLFemale" && model!= "ORNLHead") + +if (fModel != "ORNLMale" && fModel != "ORNLFemale" && fModel!= "ORNLHead") { SetSensitiveDetector("logicalHead",SD); SetSensitiveDetector("logicalSkull",SD); SetSensitiveDetector("logicalBrain",SD); - if (model != "MIRDHead") + if (fModel != "MIRDHead") { SetSensitiveDetector("logicalTrunk",SD); SetSensitiveDetector("logicalLeftLeg",SD); @@ -301,10 +282,13 @@ if (model != "ORNLMale" && model != "ORNLFemale" && model!= "ORNLHead") SetSensitiveDetector("logicalLeftScapula",SD); SetSensitiveDetector("logicalRightScapula",SD); SetSensitiveDetector("logicalLeftAdrenal",SD); - SetSensitiveDetector("logicalRightAdrenal",SD); SetSensitiveDetector("logicalThymus",SD); SetSensitiveDetector("logicalLeftClavicle",SD); + SetSensitiveDetector("logicalRightAdrenal",SD); + SetSensitiveDetector("logicalThymus",SD); + SetSensitiveDetector("logicalLeftClavicle",SD); SetSensitiveDetector("logicalRightClavicle",SD); SetSensitiveDetector("logicalSmallIntestine",SD); - SetSensitiveDetector("logicalRibCage",SD); SetSensitiveDetector("logicalMiddleLowerSpine",SD); + SetSensitiveDetector("logicalRibCage",SD); + SetSensitiveDetector("logicalMiddleLowerSpine",SD); SetSensitiveDetector("logicalStomach",SD); SetSensitiveDetector("logicalUpperLargeIntestine",SD); SetSensitiveDetector("logicalLowerLargeIntestine",SD); @@ -314,32 +298,24 @@ if (model != "ORNLMale" && model != "ORNLFemale" && model!= "ORNLHead") SetSensitiveDetector("logicalRightKidney",SD); SetSensitiveDetector("logicalUrinaryBladder",SD); - if(sex=="Female"){ - + if(fSex=="Female"){ SetSensitiveDetector("logicalLeftOvary",SD); SetSensitiveDetector("logicalRightOvary",SD); SetSensitiveDetector("logicalUterus",SD); SetSensitiveDetector("logicalLeftBreast",SD); SetSensitiveDetector("logicalRightBreast",SD); } - - if(sex=="Male"){ - - + else if(fSex=="Male"){ SetSensitiveDetector("logicalMaleGenitalia",SD); SetSensitiveDetector("logicalLeftTeste",SD); SetSensitiveDetector("logicalRightTeste",SD); } - } }else { SetSensitiveDetector("HeadVolume",SD); SetSensitiveDetector("SkullVolume",SD); SetSensitiveDetector("BrainVolume",SD); - G4cout << "Work in progress!!!! " << G4endl; G4cout <<"ORNL model!!!! Head is sensitive only!!!" << G4endl; -} - - +} } diff --git a/examples/advanced/human_phantom/src/G4HumanPhantomEventAction.cc b/examples/advanced/human_phantom/src/G4HumanPhantomEventAction.cc index 755c2f02c2..2a3a167cbb 100644 --- a/examples/advanced/human_phantom/src/G4HumanPhantomEventAction.cc +++ b/examples/advanced/human_phantom/src/G4HumanPhantomEventAction.cc @@ -37,64 +37,60 @@ #include "G4RunManager.hh" G4HumanPhantomEventAction::G4HumanPhantomEventAction(): -hitCollectionID(-1) +fHitCollectionID(-1) { } - -G4HumanPhantomEventAction::~G4HumanPhantomEventAction() -{ -} void G4HumanPhantomEventAction::BeginOfEventAction(const G4Event*) { - energyTotal["logicalHead"]=0.; - energyTotal["logicalTrunk"]=0.; - energyTotal["logicalLeftLeg"]=0.; - energyTotal["logicalRightLeg"]=0.; - energyTotal["logicalSkull"]=0.; - energyTotal["logicalLeftArmBone"]=0.; - energyTotal["logicalRightArmBone"]=0.; - energyTotal["logicalUpperSpine"]=0.; - energyTotal["logicalMiddleLowerSpine"]=0.; - energyTotal["logicalPelvis"]=0.; - energyTotal["logicalRibCage"]=0.; - energyTotal["logicalLeftClavicle"]=0.; - energyTotal["logicalRightClavicle"]=0.; - energyTotal["logicalLeftLegBone"]=0.; - energyTotal["logicalRightLegBone"]=0.; - energyTotal["logicalLeftScapula"]=0.; - energyTotal["logicalRightScapula"]=0.; - energyTotal["logicalHeart"]=0.; - energyTotal["logicalThyroid"]=0.; - energyTotal["logicalThymus"]=0.; - energyTotal["logicalMaleGenitalia"]=0.; - energyTotal["logicalBrain"]=0.; - energyTotal["logicalStomach"]=0.; - energyTotal["logicalUpperLargeIntestine"]=0.; - energyTotal["logicalLowerLargeIntestine"]=0.; - energyTotal["logicalSmallIntestine"]=0; - energyTotal["logicalSpleen"]=0.; - energyTotal["logicalPancreas"]=0.; - energyTotal["logicalLeftKidney"]=0.; - energyTotal["logicalRightKidney"]=0.; - energyTotal["logicalUrinaryBladder"]=0.; - energyTotal["logicalUterus"]=0.; - energyTotal["logicalLeftLung"]=0.; - energyTotal["logicalRightLung"]=0.; - energyTotal["logicalLeftOvary"]=0.; - energyTotal["logicalRightOvary"]=0.; - energyTotal["logicalLeftTeste"]=0; - energyTotal["logicalRightTeste"]=0; - energyTotal["logicalLeftBreast"]=0.; - energyTotal["logicalRightBreast"]=0.; - energyTotal["logicalLeftAdrenal"]=0.; - energyTotal["logicalRightAdrenal"]=0.; + fEnergyTotal["logicalHead"]=0.; + fEnergyTotal["logicalTrunk"]=0.; + fEnergyTotal["logicalLeftLeg"]=0.; + fEnergyTotal["logicalRightLeg"]=0.; + fEnergyTotal["logicalSkull"]=0.; + fEnergyTotal["logicalLeftArmBone"]=0.; + fEnergyTotal["logicalRightArmBone"]=0.; + fEnergyTotal["logicalUpperSpine"]=0.; + fEnergyTotal["logicalMiddleLowerSpine"]=0.; + fEnergyTotal["logicalPelvis"]=0.; + fEnergyTotal["logicalRibCage"]=0.; + fEnergyTotal["logicalLeftClavicle"]=0.; + fEnergyTotal["logicalRightClavicle"]=0.; + fEnergyTotal["logicalLeftLegBone"]=0.; + fEnergyTotal["logicalRightLegBone"]=0.; + fEnergyTotal["logicalLeftScapula"]=0.; + fEnergyTotal["logicalRightScapula"]=0.; + fEnergyTotal["logicalHeart"]=0.; + fEnergyTotal["logicalThyroid"]=0.; + fEnergyTotal["logicalThymus"]=0.; + fEnergyTotal["logicalMaleGenitalia"]=0.; + fEnergyTotal["logicalBrain"]=0.; + fEnergyTotal["logicalStomach"]=0.; + fEnergyTotal["logicalUpperLargeIntestine"]=0.; + fEnergyTotal["logicalLowerLargeIntestine"]=0.; + fEnergyTotal["logicalSmallIntestine"]=0; + fEnergyTotal["logicalSpleen"]=0.; + fEnergyTotal["logicalPancreas"]=0.; + fEnergyTotal["logicalLeftKidney"]=0.; + fEnergyTotal["logicalRightKidney"]=0.; + fEnergyTotal["logicalUrinaryBladder"]=0.; + fEnergyTotal["logicalUterus"]=0.; + fEnergyTotal["logicalLeftLung"]=0.; + fEnergyTotal["logicalRightLung"]=0.; + fEnergyTotal["logicalLeftOvary"]=0.; + fEnergyTotal["logicalRightOvary"]=0.; + fEnergyTotal["logicalLeftTeste"]=0; + fEnergyTotal["logicalRightTeste"]=0; + fEnergyTotal["logicalLeftBreast"]=0.; + fEnergyTotal["logicalRightBreast"]=0.; + fEnergyTotal["logicalLeftAdrenal"]=0.; + fEnergyTotal["logicalRightAdrenal"]=0.; G4SDManager * SDman = G4SDManager::GetSDMpointer(); - if (hitCollectionID==-1) { - hitCollectionID = SDman->GetCollectionID("HumanPhantomCollection"); + if (fHitCollectionID==-1) { + fHitCollectionID = SDman->GetCollectionID("HumanPhantomCollection"); } } @@ -103,10 +99,10 @@ void G4HumanPhantomEventAction::EndOfEventAction(const G4Event* evt) G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); - G4HumanPhantomHitsCollection* HC = 0; + G4HumanPhantomHitsCollection* HC = nullptr; if (HCE) - HC = (G4HumanPhantomHitsCollection*)(HCE->GetHC(hitCollectionID)); + HC = (G4HumanPhantomHitsCollection*)(HCE->GetHC(fHitCollectionID)); if (HC) { @@ -129,17 +125,17 @@ void G4HumanPhantomEventAction:: Fill(G4String bName, G4double energyDeposit) { - energyTotal[bName] += energyDeposit; + fEnergyTotal[bName] += energyDeposit; } void G4HumanPhantomEventAction::totalEventEnergyDeposit() { G4RunManager* runManager = G4RunManager::GetRunManager(); - G4HumanPhantomRunAction* pointerRun = (G4HumanPhantomRunAction*)(runManager->GetUserRunAction()); + auto* pointerRun = (G4HumanPhantomRunAction*)(runManager->GetUserRunAction()); - std::map::iterator i = energyTotal.begin(); - std::map::iterator end = energyTotal.end(); + std::map::iterator i = fEnergyTotal.begin(); + std::map::iterator end = fEnergyTotal.end(); while(i!=end) { diff --git a/examples/advanced/human_phantom/src/G4HumanPhantomHit.cc b/examples/advanced/human_phantom/src/G4HumanPhantomHit.cc index df00245b88..89bf9dd7e0 100644 --- a/examples/advanced/human_phantom/src/G4HumanPhantomHit.cc +++ b/examples/advanced/human_phantom/src/G4HumanPhantomHit.cc @@ -37,7 +37,7 @@ // THIS IS NECESSARY FOR MT MODE -G4ThreadLocal G4Allocator* G4HumanPhantomHitAllocator=0; +G4ThreadLocal G4Allocator* G4HumanPhantomHitAllocator=nullptr; G4HumanPhantomHit::G4HumanPhantomHit() {} diff --git a/examples/advanced/human_phantom/src/G4HumanPhantomMaterial.cc b/examples/advanced/human_phantom/src/G4HumanPhantomMaterial.cc index 3bf7254835..570d20af24 100644 --- a/examples/advanced/human_phantom/src/G4HumanPhantomMaterial.cc +++ b/examples/advanced/human_phantom/src/G4HumanPhantomMaterial.cc @@ -39,8 +39,8 @@ #include "G4ElementTable.hh" G4HumanPhantomMaterial::G4HumanPhantomMaterial(): - soft(0), skeleton(0),lung(0), adipose(0), glandular(0), - adipose_glandular(0) + fWater(nullptr), fSoft(nullptr), fSkeleton(nullptr), fLung(nullptr), fAdipose(nullptr), fGlandular(nullptr), + fAdipose_glandular(nullptr) {;} G4HumanPhantomMaterial::~G4HumanPhantomMaterial() @@ -57,154 +57,154 @@ void G4HumanPhantomMaterial::DefineMaterials() // General elements A = 1.01*g/mole; - G4Element* elH = new G4Element ("Hydrogen","H",Z = 1.,A); + auto* elH = new G4Element ("Hydrogen","H",Z = 1.,A); A = 12.011*g/mole; - G4Element* elC = new G4Element("Carbon","C",Z = 6.,A); + auto* elC = new G4Element("Carbon","C",Z = 6.,A); A = 14.01*g/mole; - G4Element* elN = new G4Element("Nitrogen","N",Z = 7.,A); + auto* elN = new G4Element("Nitrogen","N",Z = 7.,A); A = 16.00*g/mole; - G4Element* elO = new G4Element("Oxygen","O",Z = 8.,A); + auto* elO = new G4Element("Oxygen","O",Z = 8.,A); A = 22.99*g/mole; - G4Element* elNa = new G4Element("Sodium","Na",Z = 11.,A); + auto* elNa = new G4Element("Sodium","Na",Z = 11.,A); A = 24.305*g/mole; - G4Element* elMg = new G4Element("Magnesium","Mg",Z = 12.,A); + auto* elMg = new G4Element("Magnesium","Mg",Z = 12.,A); A = 30.974*g/mole; - G4Element* elP = new G4Element("Phosphorus","P",Z = 15.,A); + auto* elP = new G4Element("Phosphorus","P",Z = 15.,A); A = 32.064*g/mole; - G4Element* elS = new G4Element("Sulfur","S",Z = 16.,A); + auto* elS = new G4Element("Sulfur","S",Z = 16.,A); A = 35.453*g/mole; - G4Element* elCl = new G4Element("Chlorine","Cl",Z = 17.,A); + auto* elCl = new G4Element("Chlorine","Cl",Z = 17.,A); A = 39.098*g/mole; - G4Element* elK = new G4Element("Potassium","K",Z = 19.,A); + auto* elK = new G4Element("Potassium","K",Z = 19.,A); A = 40.08*g/mole; - G4Element* elCa = new G4Element("Calcium","Ca",Z = 20.,A); + auto* elCa = new G4Element("Calcium","Ca",Z = 20.,A); A = 55.85*g/mole; - G4Element* elFe = new G4Element("Iron","Fe",Z = 26.,A); + auto* elFe = new G4Element("Iron","Fe",Z = 26.,A); A = 65.38*g/mole; - G4Element* elZn = new G4Element("Zinc","Zn",Z = 30.,A); + auto* elZn = new G4Element("Zinc","Zn",Z = 30.,A); A = 85.47 *g/mole; - G4Element* elRb = new G4Element("Rb","Rb",Z = 37.,A); + auto* elRb = new G4Element("Rb","Rb",Z = 37.,A); A = 87.62 *g/mole; - G4Element* elSr = new G4Element("Sr","Sr",Z = 38.,A); + auto* elSr = new G4Element("Sr","Sr",Z = 38.,A); A = 91.22 *g/mole; - G4Element* elZr = new G4Element("Zr","Zr",Z = 40.,A); + auto* elZr = new G4Element("Zr","Zr",Z = 40.,A); A = 207.19 *g/mole; - G4Element* elPb = new G4Element("Lead","Pb", Z = 82.,A); + auto* elPb = new G4Element("Lead","Pb", Z = 82.,A); // Water d = 1.000*g/cm3; - matH2O = new G4Material("Water",d,2); - matH2O->AddElement(elH,2); - matH2O->AddElement(elO,1); - matH2O->GetIonisation()->SetMeanExcitationEnergy(75.0*eV); + fWater = new G4Material("Water",d,2); + fWater->AddElement(elH,2); + fWater->AddElement(elO,1); + fWater->GetIonisation()->SetMeanExcitationEnergy(75.0*eV); // MIRD soft tissue d = 0.9869 *g/cm3; - soft = new G4Material("soft_tissue",d,16); - soft->AddElement(elH,0.1047); - soft->AddElement(elC,0.2302); - soft->AddElement(elN,0.0234); - soft->AddElement(elO,0.6321); - soft->AddElement(elNa,0.0013); - soft->AddElement(elMg,0.00015); - soft->AddElement(elP,0.0024); - soft->AddElement(elS,0.0022); - soft->AddElement(elCl,0.0014); - soft->AddElement(elK,0.0021); - soft->AddElement(elFe,0.000063); - soft->AddElement(elZn,0.000032); - soft->AddElement(elRb,0.0000057); - soft->AddElement(elSr,0.00000034); - soft->AddElement(elZr,0.000008); - soft->AddElement(elPb,0.00000016); + fSoft = new G4Material("soft_tissue",d,16); + fSoft->AddElement(elH,0.1047); + fSoft->AddElement(elC,0.2302); + fSoft->AddElement(elN,0.0234); + fSoft->AddElement(elO,0.6321); + fSoft->AddElement(elNa,0.0013); + fSoft->AddElement(elMg,0.00015); + fSoft->AddElement(elP,0.0024); + fSoft->AddElement(elS,0.0022); + fSoft->AddElement(elCl,0.0014); + fSoft->AddElement(elK,0.0021); + fSoft->AddElement(elFe,0.000063); + fSoft->AddElement(elZn,0.000032); + fSoft->AddElement(elRb,0.0000057); + fSoft->AddElement(elSr,0.00000034); + fSoft->AddElement(elZr,0.000008); + fSoft->AddElement(elPb,0.00000016); // MIRD Skeleton d = 1.4862*g/cm3; - skeleton = new G4Material("skeleton",d,15); - skeleton -> AddElement(elH,0.0704); - skeleton -> AddElement(elC,0.2279); - skeleton -> AddElement(elN,0.0387); - skeleton -> AddElement(elO,0.4856); - skeleton -> AddElement(elNa,0.0032); - skeleton -> AddElement(elMg,0.0011); - skeleton -> AddElement(elP,0.0694); - skeleton -> AddElement(elS,0.0017); - skeleton -> AddElement(elCl,0.0014); - skeleton -> AddElement(elK,0.0015); - skeleton -> AddElement(elCa,0.0991); - skeleton -> AddElement(elFe,0.00008); - skeleton -> AddElement(elZn,0.000048); - skeleton -> AddElement(elSr,0.000032); - skeleton -> AddElement(elPb,0.000011); + fSkeleton = new G4Material("skeleton",d,15); + fSkeleton -> AddElement(elH,0.0704); + fSkeleton -> AddElement(elC,0.2279); + fSkeleton -> AddElement(elN,0.0387); + fSkeleton -> AddElement(elO,0.4856); + fSkeleton -> AddElement(elNa,0.0032); + fSkeleton -> AddElement(elMg,0.0011); + fSkeleton -> AddElement(elP,0.0694); + fSkeleton -> AddElement(elS,0.0017); + fSkeleton -> AddElement(elCl,0.0014); + fSkeleton -> AddElement(elK,0.0015); + fSkeleton -> AddElement(elCa,0.0991); + fSkeleton -> AddElement(elFe,0.00008); + fSkeleton -> AddElement(elZn,0.000048); + fSkeleton -> AddElement(elSr,0.000032); + fSkeleton -> AddElement(elPb,0.000011); // MIRD lung material d = 0.2958 *g/cm3; - lung = new G4Material("lung_material", d,16); - lung -> AddElement(elH, 0.1021); - lung -> AddElement(elC, 0.1001); - lung -> AddElement(elN,0.028); - lung -> AddElement(elO,0.7596); - lung -> AddElement(elNa,0.0019); - lung -> AddElement(elMg,0.000074); - lung -> AddElement(elP,0.00081); - lung -> AddElement(elS,0.0023); - lung -> AddElement(elCl,0.0027); - lung -> AddElement(elK,0.0020); - lung -> AddElement(elCa,0.00007); - lung -> AddElement(elFe,0.00037); - lung -> AddElement(elZn,0.000011); - lung -> AddElement(elRb,0.0000037); - lung -> AddElement(elSr,0.000000059); - lung -> AddElement(elPb,0.00000041); + fLung = new G4Material("lung_material", d,16); + fLung -> AddElement(elH, 0.1021); + fLung -> AddElement(elC, 0.1001); + fLung -> AddElement(elN,0.028); + fLung -> AddElement(elO,0.7596); + fLung -> AddElement(elNa,0.0019); + fLung -> AddElement(elMg,0.000074); + fLung -> AddElement(elP,0.00081); + fLung -> AddElement(elS,0.0023); + fLung -> AddElement(elCl,0.0027); + fLung -> AddElement(elK,0.0020); + fLung -> AddElement(elCa,0.00007); + fLung -> AddElement(elFe,0.00037); + fLung -> AddElement(elZn,0.000011); + fLung -> AddElement(elRb,0.0000037); + fLung -> AddElement(elSr,0.000000059); + fLung -> AddElement(elPb,0.00000041); G4double density_adipose = 0.93 *g/cm3; - adipose = new G4Material("adipose", density_adipose,8); - adipose -> AddElement(elH, 0.112); - adipose -> AddElement(elC, 0.619); - adipose -> AddElement(elN, 0.017); - adipose -> AddElement(elO, 0.251); - adipose -> AddElement(elS, 0.00025); - adipose -> AddElement(elP, 0.00025); - adipose -> AddElement(elK, 0.00025); - adipose -> AddElement(elCa,0.00025); + fAdipose = new G4Material("adipose", density_adipose,8); + fAdipose -> AddElement(elH, 0.112); + fAdipose -> AddElement(elC, 0.619); + fAdipose -> AddElement(elN, 0.017); + fAdipose -> AddElement(elO, 0.251); + fAdipose -> AddElement(elS, 0.00025); + fAdipose -> AddElement(elP, 0.00025); + fAdipose -> AddElement(elK, 0.00025); + fAdipose -> AddElement(elCa,0.00025); G4double density_glandular = 1.04 * g/cm3; - glandular = new G4Material("glandular", density_glandular,8); - glandular -> AddElement(elH, 0.1); - glandular -> AddElement(elC,0.184); - glandular -> AddElement(elN, 0.032); - glandular -> AddElement(elO, 0.679); - glandular -> AddElement(elS, 0.00125); - glandular -> AddElement(elP, 0.00125); - glandular -> AddElement(elK, 0.00125); - glandular -> AddElement(elCa,0.00125); + fGlandular = new G4Material("glandular", density_glandular,8); + fGlandular -> AddElement(elH, 0.1); + fGlandular -> AddElement(elC,0.184); + fGlandular -> AddElement(elN, 0.032); + fGlandular -> AddElement(elO, 0.679); + fGlandular -> AddElement(elS, 0.00125); + fGlandular -> AddElement(elP, 0.00125); + fGlandular -> AddElement(elK, 0.00125); + fGlandular -> AddElement(elCa,0.00125); d = (density_adipose * 0.5) + (density_glandular * 0.5); - adipose_glandular = new G4Material("adipose_glandular", d, 2); - adipose_glandular -> AddMaterial(adipose, 0.5); - adipose_glandular -> AddMaterial(glandular, 0.5); + fAdipose_glandular = new G4Material("adipose_glandular", d, 2); + fAdipose_glandular -> AddMaterial(fAdipose, 0.5); + fAdipose_glandular -> AddMaterial(fGlandular, 0.5); // Air d = 1.290*mg/cm3; - G4Material* matAir = new G4Material("Air",d,2); + auto* matAir = new G4Material("Air",d,2); matAir->AddElement(elN,0.7); matAir->AddElement(elO,0.3); } diff --git a/examples/advanced/human_phantom/src/G4HumanPhantomMessenger.cc b/examples/advanced/human_phantom/src/G4HumanPhantomMessenger.cc index 2bc15154ef..fe678ede4b 100644 --- a/examples/advanced/human_phantom/src/G4HumanPhantomMessenger.cc +++ b/examples/advanced/human_phantom/src/G4HumanPhantomMessenger.cc @@ -38,64 +38,63 @@ #include "G4RunManager.hh" G4HumanPhantomMessenger::G4HumanPhantomMessenger(G4HumanPhantomConstruction* myUsrPhtm) - :myUserPhantom(myUsrPhtm),bps(false) + :fUserPhantom(myUsrPhtm),fBps(false) { - phantomDir = new G4UIdirectory("/phantom/"); - phantomDir->SetGuidance("Set Your Phantom."); + fPhantomDir = new G4UIdirectory("/phantom/"); + fPhantomDir->SetGuidance("Set Your Phantom."); - bpDir = new G4UIdirectory("/bodypart/"); - bpDir->SetGuidance("Add Body Part to Phantom"); + fDir = new G4UIdirectory("/bodypart/"); + fDir->SetGuidance("Add Body Part to Phantom"); - modelCmd = new G4UIcmdWithAString("/phantom/setPhantomModel",this); - modelCmd->SetGuidance("Set sex of Phantom: MIRD, ORNLFemale, ORNLMale, MIX, MIRDHead, ORNLHead."); - modelCmd->SetParameterName("phantomModel",true); - modelCmd->SetDefaultValue("MIRD"); - modelCmd->SetCandidates("MIRD ORNLFemale ORNLMale MIX MIRDHead ORNLHead"); - modelCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + fModelCmd = new G4UIcmdWithAString("/phantom/setPhantomModel",this); + fModelCmd->SetGuidance("Set sex of Phantom: MIRD, ORNLFemale, ORNLMale, MIX, MIRDHead, ORNLHead."); + fModelCmd->SetParameterName("phantomModel",true); + fModelCmd->SetDefaultValue("MIRD"); + fModelCmd->SetCandidates("MIRD ORNLFemale ORNLMale MIRDHead ORNLHead"); + fModelCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - sexCmd = new G4UIcmdWithAString("/phantom/setPhantomSex",this); - sexCmd->SetGuidance("Set sex of Phantom: Male or Female."); - sexCmd->SetParameterName("phantomSex",true); - sexCmd->SetDefaultValue("Female"); - sexCmd->SetCandidates("Male Female"); - sexCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + fSexCmd = new G4UIcmdWithAString("/phantom/setPhantomSex",this); + fSexCmd->SetGuidance("Set sex of Phantom: Male or Female."); + fSexCmd->SetParameterName("phantomSex",true); + fSexCmd->SetDefaultValue("Female"); + fSexCmd->SetCandidates("Male Female"); + fSexCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - bodypartCmd = new G4UIcmdWithAString("/bodypart/addBodyPart",this); - bodypartCmd->SetGuidance("Add a Body Part to Phantom"); - bodypartCmd->SetParameterName("bpName",true); - bodypartCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + fBodypartCmd = new G4UIcmdWithAString("/bodypart/addBodyPart",this); + fBodypartCmd->SetGuidance("Add a Body Part to Phantom"); + fBodypartCmd->SetParameterName("bpName",true); + fBodypartCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - endCmd = new G4UIcmdWithoutParameter("/phantom/buildNewPhantom",this); - endCmd->SetGuidance("Build your Phantom."); - endCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fEndCmd = new G4UIcmdWithoutParameter("/phantom/buildNewPhantom",this); + fEndCmd->SetGuidance("Build your Phantom."); + fEndCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } G4HumanPhantomMessenger::~G4HumanPhantomMessenger() { - delete modelCmd; - delete sexCmd; - delete bodypartCmd; - delete endCmd; - delete phantomDir; - delete bpDir; + delete fModelCmd; + delete fSexCmd; + delete fBodypartCmd; + delete fEndCmd; + delete fPhantomDir; + delete fDir; } void G4HumanPhantomMessenger::SetNewValue(G4UIcommand* command,G4String newValue){ - if( command == modelCmd ) + if( command == fModelCmd ) { - myUserPhantom->SetPhantomModel(newValue); + fUserPhantom->SetPhantomModel(newValue); } - if( command == sexCmd ) + if( command == fSexCmd ) { - myUserPhantom->SetPhantomSex(newValue); + fUserPhantom->SetPhantomSex(newValue); } - if( command == bodypartCmd ) + if( command == fBodypartCmd ) { AddBodyPart(newValue); } - if( command == endCmd ) + if( command == fEndCmd ) { G4cout << " ****************>>>> NEW PHANTOM CONSTRUCTION <<<<***************** " @@ -105,24 +104,23 @@ void G4HumanPhantomMessenger::SetNewValue(G4UIcommand* command,G4String newValue void G4HumanPhantomMessenger::AddBodyPart(G4String newBodyPartSensitivity) { - char* str = new char[newBodyPartSensitivity.length()+1]; strcpy(str, newBodyPartSensitivity.c_str()); std::string bpart = strtok(str," "); - std::string sensitivity = strtok(NULL," "); + std::string sensitivity = strtok(nullptr," "); if(sensitivity=="yes"){ - bps=true; + fBps=true; }else{ - bps=false; + fBps=false; } G4cout << " >>> Body Part = " << bpart << "\n" << " >>> Sensitivity = " << sensitivity << G4endl; - myUserPhantom->SetBodyPartSensitivity(bpart,bps); + fUserPhantom->SetBodyPartSensitivity(bpart,fBps); } diff --git a/examples/advanced/human_phantom/src/G4HumanPhantomRunAction.cc b/examples/advanced/human_phantom/src/G4HumanPhantomRunAction.cc index de0816876d..676a084a61 100644 --- a/examples/advanced/human_phantom/src/G4HumanPhantomRunAction.cc +++ b/examples/advanced/human_phantom/src/G4HumanPhantomRunAction.cc @@ -34,71 +34,61 @@ #include "G4ios.hh" #include "G4Run.hh" -#ifdef ANALYSIS_USE - G4HumanPhantomRunAction::G4HumanPhantomRunAction(G4HumanPhantomAnalysisManager* analysis) - :analysisMan(analysis) - { - } -#else - G4HumanPhantomRunAction::G4HumanPhantomRunAction(G4HumanPhantomAnalysisManager*) - {} -#endif +G4HumanPhantomRunAction::G4HumanPhantomRunAction(G4HumanPhantomAnalysisManager* analysis) :fAnalysisMan(analysis) + { } G4HumanPhantomRunAction::~G4HumanPhantomRunAction() -{ -} +{} void G4HumanPhantomRunAction::BeginOfRunAction(const G4Run* aRun) { - G4int run_number = aRun->GetRunID(); - G4cout << "### Run " << run_number << " start." << G4endl; - energyTotal["logicalHead"]=0.; - energyTotal["logicalTrunk"]=0.; - energyTotal["logicalLeftLeg"]=0.; - energyTotal["logicalRightLeg"]=0.; - energyTotal["logicalSkull"]=0.; - energyTotal["logicalLeftArmBone"]=0.; - energyTotal["logicalRightArmBone"]=0.; - energyTotal["logicalUpperSpine"]=0.; - energyTotal["logicalMiddleLowerSpine"]=0.; - energyTotal["logicalPelvis"]=0.; - energyTotal["logicalRibCage"]=0.; - energyTotal["logicalLeftClavicle"]=0.; - energyTotal["logicalRightClavicle"]=0.; - energyTotal["logicalLeftLegBone"]=0.; - energyTotal["logicalRightLegBone"]=0.; - energyTotal["logicalLeftScapula"]=0.; - energyTotal["logicalRightScapula"]=0.; - energyTotal["logicalHeart"]=0.; - energyTotal["logicalThyroid"]=0.; - energyTotal["logicalThymus"]=0.; - energyTotal["logicalMaleGenitalia"]=0.; - energyTotal["logicalBrain"]=0.; - energyTotal["logicalStomach"]=0.; - energyTotal["logicalUpperLargeIntestine"]=0.; - energyTotal["logicalLowerLargeIntestine"]=0.; - energyTotal["logicalSmallIntestine"]=0; - energyTotal["logicalSpleen"]=0.; - energyTotal["logicalPancreas"]=0.; - energyTotal["logicalLeftKidney"]=0.; - energyTotal["logicalRightKidney"]=0.; - energyTotal["logicalUrinaryBladder"]=0.; - energyTotal["logicalUterus"]=0.; - energyTotal["logicalLeftLung"]=0.; - energyTotal["logicalRightLung"]=0.; - energyTotal["logicalLeftOvary"]=0.; - energyTotal["logicalRightOvary"]=0.; - energyTotal["logicalLeftTeste"]=0; - energyTotal["logicalRightTeste"]=0; - energyTotal["logicalLeftBreast"]=0.; - energyTotal["logicalRightBreast"]=0.; - energyTotal["logicalLeftAdrenal"]=0.; - energyTotal["logicalRightAdrenal"]=0.; + G4int run_number = aRun->GetRunID(); + G4cout << "### Run " << run_number << " start." << G4endl; + fEnergyTotal["logicalHead"]=0.; + fEnergyTotal["logicalTrunk"]=0.; + fEnergyTotal["logicalLeftLeg"]=0.; + fEnergyTotal["logicalRightLeg"]=0.; + fEnergyTotal["logicalSkull"]=0.; + fEnergyTotal["logicalLeftArmBone"]=0.; + fEnergyTotal["logicalRightArmBone"]=0.; + fEnergyTotal["logicalUpperSpine"]=0.; + fEnergyTotal["logicalMiddleLowerSpine"]=0.; + fEnergyTotal["logicalPelvis"]=0.; + fEnergyTotal["logicalRibCage"]=0.; + fEnergyTotal["logicalLeftClavicle"]=0.; + fEnergyTotal["logicalRightClavicle"]=0.; + fEnergyTotal["logicalLeftLegBone"]=0.; + fEnergyTotal["logicalRightLegBone"]=0.; + fEnergyTotal["logicalLeftScapula"]=0.; + fEnergyTotal["logicalRightScapula"]=0.; + fEnergyTotal["logicalHeart"]=0.; + fEnergyTotal["logicalThyroid"]=0.; + fEnergyTotal["logicalThymus"]=0.; + fEnergyTotal["logicalMaleGenitalia"]=0.; + fEnergyTotal["logicalBrain"]=0.; + fEnergyTotal["logicalStomach"]=0.; + fEnergyTotal["logicalUpperLargeIntestine"]=0.; + fEnergyTotal["logicalLowerLargeIntestine"]=0.; + fEnergyTotal["logicalSmallIntestine"]=0; + fEnergyTotal["logicalSpleen"]=0.; + fEnergyTotal["logicalPancreas"]=0.; + fEnergyTotal["logicalLeftKidney"]=0.; + fEnergyTotal["logicalRightKidney"]=0.; + fEnergyTotal["logicalUrinaryBladder"]=0.; + fEnergyTotal["logicalUterus"]=0.; + fEnergyTotal["logicalLeftLung"]=0.; + fEnergyTotal["logicalRightLung"]=0.; + fEnergyTotal["logicalLeftOvary"]=0.; + fEnergyTotal["logicalRightOvary"]=0.; + fEnergyTotal["logicalLeftTeste"]=0; + fEnergyTotal["logicalRightTeste"]=0; + fEnergyTotal["logicalLeftBreast"]=0.; + fEnergyTotal["logicalRightBreast"]=0.; + fEnergyTotal["logicalLeftAdrenal"]=0.; + fEnergyTotal["logicalRightAdrenal"]=0.; -#ifdef ANALYSIS_USE - // Create ROOT file, histograms and ntuple - analysisMan -> book(); -#endif + // Create ROOT file, histograms and ntuple + fAnalysisMan -> book(); } void G4HumanPhantomRunAction::EndOfRunAction(const G4Run* aRun) @@ -106,24 +96,20 @@ void G4HumanPhantomRunAction::EndOfRunAction(const G4Run* aRun) G4cout << "Number of events = " << aRun->GetNumberOfEvent() << G4endl; totalRunEnergyDeposit(); -#ifdef ANALYSIS_USE // Close the output ROOT file with the results - analysisMan -> save(); -#endif + fAnalysisMan -> save(); } - void G4HumanPhantomRunAction::Fill(G4String bName, G4double energyDeposit) - { - energyTotal[bName] += energyDeposit; + fEnergyTotal[bName] += energyDeposit; } void G4HumanPhantomRunAction::totalRunEnergyDeposit() { - std::map::iterator i = energyTotal.begin(); - std::map::iterator end = energyTotal.end(); + std::map::iterator i = fEnergyTotal.begin(); + std::map::iterator end = fEnergyTotal.end(); G4double totalEnergyDepositInPhantom =0.; G4int k=0; @@ -139,17 +125,15 @@ void G4HumanPhantomRunAction::totalRunEnergyDeposit() << energyDep/MeV << G4endl; -#ifdef ANALYSIS_USE // Fill Ntuple - analysisMan -> FillNtupleWithEnergyDeposition(k, energyDep/MeV); -#endif + fAnalysisMan -> FillNtupleWithEnergyDeposition(k, energyDep/MeV); + i++; k++; totalEnergyDepositInPhantom += energyDep; } - G4cout << "Total Energy deposit in the body is: " << totalEnergyDepositInPhantom/MeV << " MeV" <Construct(organ_name,motherVolume,colourName, visAttribute, sensitivity); + return fOrgan[organ_name]->Construct(organ_name,motherVolume,colourName, visAttribute, sensitivity); } diff --git a/examples/advanced/human_phantom/src/G4MIRDBrain.cc b/examples/advanced/human_phantom/src/G4MIRDBrain.cc index ed1ff14e02..18c622e64b 100644 --- a/examples/advanced/human_phantom/src/G4MIRDBrain.cc +++ b/examples/advanced/human_phantom/src/G4MIRDBrain.cc @@ -44,37 +44,27 @@ #include "G4PVPlacement.hh" #include "G4HumanPhantomColour.hh" -G4MIRDBrain::G4MIRDBrain() -{ -} - -G4MIRDBrain::~G4MIRDBrain() -{ - -} - - G4VPhysicalVolume* G4MIRDBrain::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { G4cout << "Construct " << volumeName <<" with mother "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax = 6. * cm; G4double by= 9. * cm; G4double cz = 6.5 * cm; - G4Ellipsoid* brain = new G4Ellipsoid("Brain", ax, by, cz); + auto* brain = new G4Ellipsoid("Brain", ax, by, cz); - G4LogicalVolume* logicBrain = new G4LogicalVolume(brain, soft, + auto* logicBrain = new G4LogicalVolume(brain, soft, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physBrain = new G4PVPlacement(0, + G4VPhysicalVolume* physBrain = new G4PVPlacement(nullptr, G4ThreeVector(0.*cm, 0.*cm, 8.75 * cm), "physicalBrain", logicBrain, @@ -84,13 +74,13 @@ G4VPhysicalVolume* G4MIRDBrain::Construct(const G4String& volumeName,G4VPhysical // Visualization Attributes // G4VisAttributes* BrainVisAtt = new G4VisAttributes(G4Colour(0.41,0.41,0.41)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* BrainVisAtt = new G4VisAttributes(colour); - BrainVisAtt->SetForceSolid(wireFrame); - BrainVisAtt->SetLineWidth(0.7* mm); - logicBrain->SetVisAttributes(BrainVisAtt); + auto* brainVisAtt = new G4VisAttributes(colour); + brainVisAtt->SetForceSolid(wireFrame); + brainVisAtt->SetLineWidth(0.7* mm); + logicBrain->SetVisAttributes(brainVisAtt); // Testing Brain Volume G4double BrainVol = logicBrain->GetSolid()->GetCubicVolume(); @@ -107,7 +97,6 @@ G4VPhysicalVolume* G4MIRDBrain::Construct(const G4String& volumeName,G4VPhysical // Testing Mass G4double BrainMass = (BrainVol)*BrainDensity; G4cout << "Mass of Brain = " << BrainMass/gram << " g" << G4endl; - return physBrain; } diff --git a/examples/advanced/human_phantom/src/G4MIRDHead.cc b/examples/advanced/human_phantom/src/G4MIRDHead.cc index 84859895d5..cb3bc8b990 100644 --- a/examples/advanced/human_phantom/src/G4MIRDHead.cc +++ b/examples/advanced/human_phantom/src/G4MIRDHead.cc @@ -43,23 +43,12 @@ #include "G4EllipticalTube.hh" #include "G4HumanPhantomColour.hh" -G4MIRDHead::G4MIRDHead() -{ - -} - -G4MIRDHead::~G4MIRDHead() -{ - -} - - G4VPhysicalVolume* G4MIRDHead::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { G4cout << "Construct " << volumeName <<" with mother "<GetName()< GetMaterial("soft_tissue"); @@ -71,23 +60,23 @@ G4VPhysicalVolume* G4MIRDHead::Construct(const G4String& volumeName,G4VPhysicalV G4double zcut1 = 0.0 * cm; G4double zcut2 = 8.5 * cm; - G4Ellipsoid* head1 = new G4Ellipsoid("Head1", ax, by, cz, zcut1, zcut2); + auto* head1 = new G4Ellipsoid("Head1", ax, by, cz, zcut1, zcut2); G4double dx = 7.0 * cm; G4double dy = 10.0 * cm; G4double dz = 7.75 * cm; - G4EllipticalTube* head2 = new G4EllipticalTube("Head2", dx, dy, dz); + auto* head2 = new G4EllipticalTube("Head2", dx, dy, dz); - G4UnionSolid* head = new G4UnionSolid("Head",head2,head1, - 0, // Rotation + auto* head = new G4UnionSolid("Head",head2,head1, + nullptr, // Rotation G4ThreeVector(0.* cm, 0.*cm, 7.7500 * cm) ); - G4LogicalVolume* logicHead = new G4LogicalVolume(head, soft,"logical" + volumeName, - 0, 0,0); + auto* logicHead = new G4LogicalVolume(head, soft,"logical" + volumeName, + nullptr, nullptr, nullptr); // Define rotation and position here! - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* rm = new G4RotationMatrix(); rm->rotateX(180.*degree); rm->rotateY(180.*degree); @@ -103,9 +92,9 @@ G4VPhysicalVolume* G4MIRDHead::Construct(const G4String& volumeName,G4VPhysicalV // Visualization Attributes - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* HeadVisAtt = new G4VisAttributes(colour); + auto* HeadVisAtt = new G4VisAttributes(colour); HeadVisAtt->SetForceSolid(wireFrame); // HeadVisAtt->SetLineWidth(0.7* mm); diff --git a/examples/advanced/human_phantom/src/G4MIRDHeart.cc b/examples/advanced/human_phantom/src/G4MIRDHeart.cc index 0a9a130127..ca8b139ff8 100644 --- a/examples/advanced/human_phantom/src/G4MIRDHeart.cc +++ b/examples/advanced/human_phantom/src/G4MIRDHeart.cc @@ -45,25 +45,15 @@ #include "G4HumanPhantomColour.hh" #include "G4SystemOfUnits.hh" -G4MIRDHeart::G4MIRDHeart() -{ - -} - -G4MIRDHeart::~G4MIRDHeart() -{ - -} - G4VPhysicalVolume* G4MIRDHeart::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { G4cout << "Construct " << volumeName <<" with mother "<GetName()< GetMaterial("soft_tissue"); + auto* soft = material -> GetMaterial("soft_tissue"); G4double ax= 4.00* cm; G4double by= 4.00 *cm; @@ -71,7 +61,7 @@ G4VPhysicalVolume* G4MIRDHeart::Construct(const G4String& volumeName,G4VPhysical G4double zcut1= -7.00 *cm; G4double zcut2= 0.0 *cm; - G4Ellipsoid* heart1 = new G4Ellipsoid("Heart1",ax, by, cz, zcut1, zcut2); + auto* heart1 = new G4Ellipsoid("Heart1",ax, by, cz, zcut1, zcut2); G4double rmin =0.*cm; G4double rmax = 3.99*cm; @@ -80,18 +70,18 @@ G4VPhysicalVolume* G4MIRDHeart::Construct(const G4String& volumeName,G4VPhysical G4double starttheta = 0. * degree; G4double deltatheta = 90. * degree; - G4Sphere* heart2 = new G4Sphere("Heart2", rmin,rmax, + auto* heart2 = new G4Sphere("Heart2", rmin,rmax, startphi, deltaphi, starttheta, deltatheta); - G4UnionSolid* heart = new G4UnionSolid("Heart", heart1, heart2); + auto* heart = new G4UnionSolid("Heart", heart1, heart2); - G4LogicalVolume* logicHeart = new G4LogicalVolume(heart, soft, - "HeartVolume", - 0, 0, 0); + auto* logicHeart = new G4LogicalVolume(heart, soft, + "HeartVolume", + nullptr, nullptr, nullptr); // Define rotation and position here! - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* rm = new G4RotationMatrix(); rm->rotateY(25.*degree); G4VPhysicalVolume* physHeart = new G4PVPlacement(rm,G4ThreeVector(0.0,-3.0*cm, 15.32 *cm), "physicalHeart", @@ -101,9 +91,9 @@ G4VPhysicalVolume* G4MIRDHeart::Construct(const G4String& volumeName,G4VPhysical 0,true); // Visualization Attributes - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* HeartVisAtt = new G4VisAttributes(colour); + auto* HeartVisAtt = new G4VisAttributes(colour); HeartVisAtt->SetForceSolid(wireFrame); logicHeart->SetVisAttributes(HeartVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDLeftAdrenal.cc b/examples/advanced/human_phantom/src/G4MIRDLeftAdrenal.cc index e881e72671..64f47c9794 100644 --- a/examples/advanced/human_phantom/src/G4MIRDLeftAdrenal.cc +++ b/examples/advanced/human_phantom/src/G4MIRDLeftAdrenal.cc @@ -47,37 +47,28 @@ #include "G4UnionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDLeftAdrenal::G4MIRDLeftAdrenal() -{ -} - -G4MIRDLeftAdrenal::~G4MIRDLeftAdrenal() -{ -} - - G4VPhysicalVolume* G4MIRDLeftAdrenal::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { G4cout << "Construct " << volumeName <<" with mother "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax= 1.5 *cm; //a G4double by= 0.5 *cm; //b G4double cz= 5.0 *cm; //c - G4VSolid* leftAdrenal = new G4Ellipsoid("OneLeftAdrenal",ax, by, cz, 0. *cm, cz); + auto* leftAdrenal = new G4Ellipsoid("OneLeftAdrenal",ax, by, cz, 0. *cm, cz); - G4LogicalVolume* logicLeftAdrenal = new G4LogicalVolume(leftAdrenal, + auto* logicLeftAdrenal = new G4LogicalVolume(leftAdrenal, soft, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); - G4VPhysicalVolume* physLeftAdrenal = new G4PVPlacement(0,G4ThreeVector(4.5*cm, // xo + G4VPhysicalVolume* physLeftAdrenal = new G4PVPlacement(nullptr,G4ThreeVector(4.5*cm, // xo 6.5 *cm, //yo 3. *cm),//zo "physicalLeftAdrenal", logicLeftAdrenal, @@ -87,11 +78,11 @@ G4VPhysicalVolume* G4MIRDLeftAdrenal::Construct(const G4String& volumeName,G4VPh // Visualization Attributes // G4VisAttributes* LeftAdrenalVisAtt = new G4VisAttributes(G4Colour(0.72,0.52,0.04)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* LeftAdrenalVisAtt = new G4VisAttributes(colour); - LeftAdrenalVisAtt->SetForceSolid(wireFrame); - logicLeftAdrenal->SetVisAttributes(LeftAdrenalVisAtt); + auto* leftAdrenalVisAtt = new G4VisAttributes(colour); + leftAdrenalVisAtt->SetForceSolid(wireFrame); + logicLeftAdrenal->SetVisAttributes(leftAdrenalVisAtt); G4cout << "Left LeftAdrenal created !!!!!!" << G4endl; diff --git a/examples/advanced/human_phantom/src/G4MIRDLeftArmBone.cc b/examples/advanced/human_phantom/src/G4MIRDLeftArmBone.cc index 189a4d40f8..2b7e3bc7f7 100644 --- a/examples/advanced/human_phantom/src/G4MIRDLeftArmBone.cc +++ b/examples/advanced/human_phantom/src/G4MIRDLeftArmBone.cc @@ -43,26 +43,17 @@ #include "G4EllipticalCone.hh" #include "G4HumanPhantomColour.hh" -G4MIRDLeftArmBone::G4MIRDLeftArmBone() -{ -} - -G4MIRDLeftArmBone::~G4MIRDLeftArmBone() -{ -} - - G4VPhysicalVolume* G4MIRDLeftArmBone::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { // Remind! the elliptical cone gives problems! Intersections of volumes, // wrong calculation of the volume! - G4HumanPhantomMaterial* material = new G4HumanPhantomMaterial(); + auto* material = new G4HumanPhantomMaterial(); G4cout << "Construct " << volumeName <<" with mother "<GetName()< GetMaterial("skeleton"); + auto* skeleton = material -> GetMaterial("skeleton"); delete material; @@ -70,15 +61,14 @@ G4VPhysicalVolume* G4MIRDLeftArmBone::Construct(const G4String& volumeName,G4VPh G4double dy = 2.7 * cm;//b // G4double dz= 46. * cm;//z0 - //G4EllipticalCone* arm = new G4EllipticalCone("OneLeftArmBone",dx/2.,dy/2.,dz, 34.5 *cm); - G4EllipticalTube* leftArm = new G4EllipticalTube("OneLeftArmBone",dx,dy,34.5 *cm); + auto* leftArm = new G4EllipticalTube("OneLeftArmBone",dx,dy,34.5 *cm); - G4LogicalVolume* logicLeftArmBone = new G4LogicalVolume(leftArm, + auto* logicLeftArmBone = new G4LogicalVolume(leftArm, skeleton, "logical" + volumeName, - 0, 0,0); + nullptr, nullptr, nullptr); - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* rm = new G4RotationMatrix(); rm->rotateX(180.*degree); G4VPhysicalVolume* physLeftArmBone = new G4PVPlacement(rm, G4ThreeVector(18.4 * cm, 0.0, -0.5*cm), @@ -90,9 +80,9 @@ G4VPhysicalVolume* G4MIRDLeftArmBone::Construct(const G4String& volumeName,G4VPh // Visualization Attributes - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* LeftArmBoneVisAtt = new G4VisAttributes(colour); + auto* LeftArmBoneVisAtt = new G4VisAttributes(colour); LeftArmBoneVisAtt->SetForceSolid(wireFrame); logicLeftArmBone->SetVisAttributes(LeftArmBoneVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDLeftBreast.cc b/examples/advanced/human_phantom/src/G4MIRDLeftBreast.cc index bf45a866a7..ec4623cd08 100644 --- a/examples/advanced/human_phantom/src/G4MIRDLeftBreast.cc +++ b/examples/advanced/human_phantom/src/G4MIRDLeftBreast.cc @@ -46,43 +46,34 @@ #include "G4SubtractionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDLeftBreast::G4MIRDLeftBreast() -{ -} - -G4MIRDLeftBreast::~G4MIRDLeftBreast() -{ -} - - G4VPhysicalVolume* G4MIRDLeftBreast::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax= 4.95* cm; G4double by= 4.35* cm; G4double cz= 4.15*cm; - G4Ellipsoid* oneLeftBreast = new G4Ellipsoid("OneLeftBreast", + auto* oneLeftBreast = new G4Ellipsoid("OneLeftBreast", ax, by, cz); G4double dx= 20.* cm; G4double dy= 10.* cm; G4double dz= 35.*cm; - G4EllipticalTube* Trunk = new G4EllipticalTube("Trunk",dx, dy, dz ); + auto* Trunk = new G4EllipticalTube("Trunk",dx, dy, dz ); - G4RotationMatrix* rm_relative = new G4RotationMatrix(); + auto* rm_relative = new G4RotationMatrix(); rm_relative -> rotateX(90. * degree); - G4SubtractionSolid* breast = new G4SubtractionSolid("LeftBreast", + auto* breast = new G4SubtractionSolid("LeftBreast", oneLeftBreast, Trunk, rm_relative, @@ -91,12 +82,12 @@ G4VPhysicalVolume* G4MIRDLeftBreast::Construct(const G4String& volumeName,G4VPhy -8.66*cm)); - G4LogicalVolume* logicLeftBreast = new G4LogicalVolume(breast, soft, - "logical" + volumeName, 0, 0,0); + auto* logicLeftBreast = new G4LogicalVolume(breast, soft, + "logical" + volumeName, nullptr, nullptr, nullptr); // Define rotation and position here! - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* rm = new G4RotationMatrix(); rm->rotateX(90.*degree); rm->rotateY(0.*degree); rm->rotateZ(16.*degree); @@ -109,9 +100,9 @@ G4VPhysicalVolume* G4MIRDLeftBreast::Construct(const G4String& volumeName,G4VPhy // Visualization Attributes //G4VisAttributes* LeftBreastVisAtt = new G4VisAttributes(G4Colour(1.0,0.41,0.71)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* LeftBreastVisAtt = new G4VisAttributes(colour); + auto* LeftBreastVisAtt = new G4VisAttributes(colour); LeftBreastVisAtt->SetForceSolid(wireFrame); logicLeftBreast->SetVisAttributes(LeftBreastVisAtt); @@ -134,6 +125,5 @@ G4VPhysicalVolume* G4MIRDLeftBreast::Construct(const G4String& volumeName,G4VPhy G4double LeftBreastMass = (LeftBreastVol)*LeftBreastDensity; G4cout << "Mass of LeftBreast = " << LeftBreastMass/gram << " g" << G4endl; - return physLeftBreast; } diff --git a/examples/advanced/human_phantom/src/G4MIRDLeftClavicle.cc b/examples/advanced/human_phantom/src/G4MIRDLeftClavicle.cc index 5f134cc5ed..f7c2db8904 100644 --- a/examples/advanced/human_phantom/src/G4MIRDLeftClavicle.cc +++ b/examples/advanced/human_phantom/src/G4MIRDLeftClavicle.cc @@ -46,22 +46,14 @@ #include "G4Box.hh" #include "G4Torus.hh" -G4MIRDLeftClavicle::G4MIRDLeftClavicle() -{ -} - -G4MIRDLeftClavicle::~G4MIRDLeftClavicle() -{ -} - G4VPhysicalVolume* G4MIRDLeftClavicle::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("skeleton"); + auto* material = new G4HumanPhantomMaterial(); + auto* skeleton = material -> GetMaterial("skeleton"); G4double rMin = 0*cm; G4double rMax = 0.7883*cm; @@ -69,16 +61,15 @@ G4VPhysicalVolume* G4MIRDLeftClavicle::Construct(const G4String& volumeName, G4V G4double pSPhi = 298.15*degree; G4double pDPhi = 0.7*rad; + auto* clavicle = new G4Torus("Clavicle",rMin,rMax,rTor,pSPhi,pDPhi); - G4Torus* clavicle = new G4Torus("Clavicle",rMin,rMax,rTor,pSPhi,pDPhi); - - G4LogicalVolume* logicLeftClavicle = new G4LogicalVolume(clavicle, + auto* logicLeftClavicle = new G4LogicalVolume(clavicle, skeleton, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); - G4VPhysicalVolume* physLeftClavicle = new G4PVPlacement(0, + G4VPhysicalVolume* physLeftClavicle = new G4PVPlacement(nullptr, G4ThreeVector(0.*cm,2. *cm,33.25*cm), "physicalLeftClavicle", logicLeftClavicle, @@ -88,9 +79,9 @@ G4VPhysicalVolume* G4MIRDLeftClavicle::Construct(const G4String& volumeName, G4V // Visualization Attributes //G4VisAttributes* LeftClavicleVisAtt = new G4VisAttributes(G4Colour(0.94,0.5,0.5)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* LeftClavicleVisAtt = new G4VisAttributes(colour); + auto* LeftClavicleVisAtt = new G4VisAttributes(colour); LeftClavicleVisAtt->SetForceSolid(wireFrame); logicLeftClavicle->SetVisAttributes(LeftClavicleVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDLeftKidney.cc b/examples/advanced/human_phantom/src/G4MIRDLeftKidney.cc index 4d9064dca2..ae685cb50a 100644 --- a/examples/advanced/human_phantom/src/G4MIRDLeftKidney.cc +++ b/examples/advanced/human_phantom/src/G4MIRDLeftKidney.cc @@ -29,7 +29,6 @@ // #include "G4MIRDLeftKidney.hh" - #include "globals.hh" #include "G4SystemOfUnits.hh" #include "G4SDManager.hh" @@ -48,51 +47,42 @@ #include "G4UnionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDLeftKidney::G4MIRDLeftKidney() -{ -} - -G4MIRDLeftKidney::~G4MIRDLeftKidney() -{ -} - - G4VPhysicalVolume* G4MIRDLeftKidney::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax= 4.5 *cm; //a G4double by= 1.5 *cm; //b G4double cz= 5.5 *cm; //c - G4VSolid* oneLeftKidney = new G4Ellipsoid("OneLeftKidney",ax, by, cz); + auto* oneLeftKidney = new G4Ellipsoid("OneLeftKidney",ax, by, cz); G4double xx = 6. * cm; G4double yy = 12.00*cm; G4double zz = 12.00*cm; - G4VSolid* subtrLeftKidney = new G4Box("SubtrLeftKidney",xx/2., yy/2., zz/2.); + auto* subtrLeftKidney = new G4Box("SubtrLeftKidney",xx/2., yy/2., zz/2.); - G4SubtractionSolid* leftKidney = new G4SubtractionSolid("LeftKidney", + auto* leftKidney = new G4SubtractionSolid("LeftKidney", oneLeftKidney, subtrLeftKidney, - 0, + nullptr, G4ThreeVector(-6. *cm, // x0 0.0 *cm, 0.0 * cm)); - G4LogicalVolume* logicLeftKidney = new G4LogicalVolume(leftKidney, + auto* logicLeftKidney = new G4LogicalVolume(leftKidney, soft, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); - G4VPhysicalVolume* physLeftKidney = new G4PVPlacement(0 ,G4ThreeVector(6.*cm, // xo - 6. *cm, //yo - -2.50 *cm),//zo + G4VPhysicalVolume* physLeftKidney = new G4PVPlacement(nullptr,G4ThreeVector(6.*cm, // xo + 6. *cm, //yo + -2.50 *cm),//zo "physicalLeftKidney", logicLeftKidney, mother, false, @@ -102,9 +92,9 @@ G4VPhysicalVolume* G4MIRDLeftKidney::Construct(const G4String& volumeName,G4VPhy // Visualization Attributes // G4VisAttributes* LeftKidneyVisAtt = new G4VisAttributes(G4Colour(0.72,0.52,0.04)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* LeftKidneyVisAtt = new G4VisAttributes(colour); + auto* LeftKidneyVisAtt = new G4VisAttributes(colour); LeftKidneyVisAtt->SetForceSolid(wireFrame); logicLeftKidney->SetVisAttributes(LeftKidneyVisAtt); @@ -125,7 +115,6 @@ G4VPhysicalVolume* G4MIRDLeftKidney::Construct(const G4String& volumeName,G4VPhy // Testing Mass G4double LeftKidneyMass = (LeftKidneyVol)*LeftKidneyDensity; G4cout << "Mass of LeftKidney = " << LeftKidneyMass/gram << " g" << G4endl; - - + return physLeftKidney; } diff --git a/examples/advanced/human_phantom/src/G4MIRDLeftLeg.cc b/examples/advanced/human_phantom/src/G4MIRDLeftLeg.cc index 96806f4cbd..179c3b5a6d 100644 --- a/examples/advanced/human_phantom/src/G4MIRDLeftLeg.cc +++ b/examples/advanced/human_phantom/src/G4MIRDLeftLeg.cc @@ -43,23 +43,14 @@ #include "G4UnionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDLeftLeg::G4MIRDLeftLeg() -{ -} - -G4MIRDLeftLeg::~G4MIRDLeftLeg() -{ -} - - G4VPhysicalVolume* G4MIRDLeftLeg::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); G4double rmin1 = 0.* cm; G4double rmin2 = 0.* cm; @@ -69,17 +60,17 @@ G4VPhysicalVolume* G4MIRDLeftLeg::Construct(const G4String& volumeName, G4VPhysi G4double startphi= 0.* degree; G4double deltaphi= 360. * degree; - G4Cons* leg1 = new G4Cons("Leg1", + auto* leg1 = new G4Cons("Leg1", rmin1, rmax1, rmin2, rmax2, dz/2., startphi, deltaphi); - G4LogicalVolume* logicLeftLeg = new G4LogicalVolume(leg1, - soft, - "logical" + volumeName, - 0, 0, 0); + auto* logicLeftLeg = new G4LogicalVolume(leg1, + soft, + "logical" + volumeName, + nullptr, nullptr, nullptr); - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* rm = new G4RotationMatrix(); rm->rotateX(180.*degree); rm->rotateY(180.*degree); G4VPhysicalVolume* physLeftLeg = new G4PVPlacement(rm, @@ -94,9 +85,9 @@ G4VPhysicalVolume* G4MIRDLeftLeg::Construct(const G4String& volumeName, G4VPhysi // Visualization Attributes //G4VisAttributes* LeftLegVisAtt = new G4VisAttributes(G4Colour(0.94,0.5,0.5)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* LeftLegVisAtt = new G4VisAttributes(colour); + auto* LeftLegVisAtt = new G4VisAttributes(colour); LeftLegVisAtt->SetForceSolid(wireFrame); logicLeftLeg->SetVisAttributes(LeftLegVisAtt); @@ -117,7 +108,6 @@ G4VPhysicalVolume* G4MIRDLeftLeg::Construct(const G4String& volumeName, G4VPhysi // Testing Mass G4double LeftLegMass = (LeftLegVol)*LeftLegDensity; G4cout << "Mass of LeftLeg = " << LeftLegMass/gram << " g" << G4endl; - - + return physLeftLeg; } diff --git a/examples/advanced/human_phantom/src/G4MIRDLeftLegBone.cc b/examples/advanced/human_phantom/src/G4MIRDLeftLegBone.cc index 254c206d9c..ca35eb326c 100644 --- a/examples/advanced/human_phantom/src/G4MIRDLeftLegBone.cc +++ b/examples/advanced/human_phantom/src/G4MIRDLeftLegBone.cc @@ -42,24 +42,15 @@ #include "G4UnionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDLeftLegBone::G4MIRDLeftLegBone() -{ -} - -G4MIRDLeftLegBone::~G4MIRDLeftLegBone() -{ -} - - G4VPhysicalVolume* G4MIRDLeftLegBone::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { - G4HumanPhantomMaterial* material = new G4HumanPhantomMaterial(); + auto* material = new G4HumanPhantomMaterial(); G4cout<<"Construct "<GetName()< GetMaterial("skeleton"); + auto* skeleton = material -> GetMaterial("skeleton"); delete material; @@ -71,17 +62,17 @@ G4VPhysicalVolume* G4MIRDLeftLegBone::Construct(const G4String& volumeName,G4VPh G4double startphi = 0. * degree; G4double deltaphi = 360. * degree; - G4Cons* leg_bone = new G4Cons("OneLeftLegBone", + auto* leg_bone = new G4Cons("OneLeftLegBone", rmin1, rmax1, rmin2, rmax2, dz/2., startphi, deltaphi); - G4LogicalVolume* logicLeftLegBone = new G4LogicalVolume(leg_bone, skeleton,"logical" + volumeName, - 0, 0, 0); + auto* logicLeftLegBone = new G4LogicalVolume(leg_bone, skeleton,"logical" + volumeName, + nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physLeftLegBone = new G4PVPlacement(0, + G4VPhysicalVolume* physLeftLegBone = new G4PVPlacement(nullptr, G4ThreeVector(0.0 * cm, 0.0, 0.1*cm), "physicalLeftLegBone", logicLeftLegBone, @@ -92,9 +83,9 @@ G4VPhysicalVolume* G4MIRDLeftLegBone::Construct(const G4String& volumeName,G4VPh // Visualization Attributes //G4VisAttributes* LeftLegBoneVisAtt = new G4VisAttributes(G4Colour(0.46,0.53,0.6)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* LeftLegBoneVisAtt = new G4VisAttributes(colour); + auto* LeftLegBoneVisAtt = new G4VisAttributes(colour); LeftLegBoneVisAtt->SetForceSolid(wireFrame); logicLeftLegBone->SetVisAttributes(LeftLegBoneVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDLeftLung.cc b/examples/advanced/human_phantom/src/G4MIRDLeftLung.cc index 97782abe65..26074df6e0 100644 --- a/examples/advanced/human_phantom/src/G4MIRDLeftLung.cc +++ b/examples/advanced/human_phantom/src/G4MIRDLeftLung.cc @@ -47,24 +47,14 @@ #include "G4Box.hh" #include "G4HumanPhantomColour.hh" -G4MIRDLeftLung::G4MIRDLeftLung() -{ -} - -G4MIRDLeftLung::~G4MIRDLeftLung() -{ - -} - - G4VPhysicalVolume* G4MIRDLeftLung::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("lung_material"); + auto* material = new G4HumanPhantomMaterial(); + auto* lung_material = material -> GetMaterial("lung_material"); delete material; G4double ax = 5. *cm; //a @@ -73,14 +63,14 @@ G4VPhysicalVolume* G4MIRDLeftLung::Construct(const G4String& volumeName,G4VPhysi G4double zcut1 = 0.0 *cm; G4double zcut2=24. *cm; - G4Ellipsoid* oneLung = new G4Ellipsoid("OneLung",ax, by, cz, zcut1,zcut2); + auto* oneLung = new G4Ellipsoid("OneLung",ax, by, cz, zcut1,zcut2); ax= 5.*cm; by= 7.5*cm; cz= 24.*cm; - G4Ellipsoid* subtrLung = new G4Ellipsoid("subtrLung",ax, by, cz); + auto* subtrLung = new G4Ellipsoid("subtrLung",ax, by, cz); // y<0 @@ -88,19 +78,19 @@ G4VPhysicalVolume* G4MIRDLeftLung::Construct(const G4String& volumeName,G4VPhysi G4double dy = 8.5 * cm; G4double dz = 24. * cm; - G4Box* box = new G4Box("Box", dx, dy, dz); + auto* box = new G4Box("Box", dx, dy, dz); //G4SubtractionSolid* section = new G4SubtractionSolid("BoxSub", subtrLung, box, 0, G4ThreeVector(0.*cm, 8.5* cm, 0.*cm)); - G4SubtractionSolid* section2 = new G4SubtractionSolid("BoxSub2", subtrLung, box, 0, G4ThreeVector(0.*cm, 8.5* cm, 0.*cm)); + auto* section2 = new G4SubtractionSolid("BoxSub2", subtrLung, box, nullptr, G4ThreeVector(0.*cm, 8.5* cm, 0.*cm)); //G4SubtractionSolid* lung1 = new G4SubtractionSolid("Lung1", oneLung, // section, // 0, G4ThreeVector(6.*cm,0*cm,0.0*cm)); - G4SubtractionSolid* lung2 = new G4SubtractionSolid("Lung2", oneLung, + auto* lung2 = new G4SubtractionSolid("Lung2", oneLung, section2, - 0, G4ThreeVector(-6.*cm,0*cm,0.0*cm)); + nullptr, G4ThreeVector(-6.*cm,0*cm,0.0*cm)); // G4RotationMatrix* matrix = new G4RotationMatrix(); // matrix->rotateX(180. * degree); @@ -110,11 +100,11 @@ G4VPhysicalVolume* G4MIRDLeftLung::Construct(const G4String& volumeName,G4VPhysi //G4UnionSolid* lungs = new G4UnionSolid("Lungs", lung1, lung2, matrix, G4ThreeVector(17*cm, 0., 0.)); - G4LogicalVolume* logicLeftLung = new G4LogicalVolume(lung2,lung_material, - "logical" + volumeName, 0, 0, 0); + auto* logicLeftLung = new G4LogicalVolume(lung2,lung_material, + "logical" + volumeName, nullptr, nullptr, nullptr); - G4VPhysicalVolume* physLeftLung = new G4PVPlacement(0,G4ThreeVector(8.50 *cm, 0.0*cm, 8.5*cm), + G4VPhysicalVolume* physLeftLung = new G4PVPlacement(nullptr,G4ThreeVector(8.50 *cm, 0.0*cm, 8.5*cm), "physicalLeftLung", logicLeftLung, mother, @@ -124,9 +114,9 @@ G4VPhysicalVolume* G4MIRDLeftLung::Construct(const G4String& volumeName,G4VPhysi // Visualization Attributes //G4VisAttributes* LeftLungVisAtt = new G4VisAttributes(G4Colour(0.25,0.41,0.88)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* LeftLungVisAtt = new G4VisAttributes(colour); + auto* LeftLungVisAtt = new G4VisAttributes(colour); LeftLungVisAtt->SetForceSolid(wireFrame); logicLeftLung->SetVisAttributes(LeftLungVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDLeftOvary.cc b/examples/advanced/human_phantom/src/G4MIRDLeftOvary.cc index 35ba12777f..145b05b115 100644 --- a/examples/advanced/human_phantom/src/G4MIRDLeftOvary.cc +++ b/examples/advanced/human_phantom/src/G4MIRDLeftOvary.cc @@ -45,40 +45,30 @@ #include "G4UnionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDLeftOvary::G4MIRDLeftOvary() -{ -} - -G4MIRDLeftOvary::~G4MIRDLeftOvary() -{ - -} - - G4VPhysicalVolume* G4MIRDLeftOvary::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax= 1. *cm; G4double by= 0.5*cm; G4double cz= 2.*cm; - G4Ellipsoid* OneOvary = new G4Ellipsoid("OneOvary", + auto* OneOvary = new G4Ellipsoid("OneOvary", ax, by, cz); - G4LogicalVolume* logicLeftOvary = new G4LogicalVolume(OneOvary, + auto* logicLeftOvary = new G4LogicalVolume(OneOvary, soft, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physLeftOvary = new G4PVPlacement(0, + G4VPhysicalVolume* physLeftOvary = new G4PVPlacement(nullptr, G4ThreeVector(-6. *cm,0.5*cm, -20*cm), "physicalLeftOvary", logicLeftOvary, @@ -88,11 +78,11 @@ G4VPhysicalVolume* G4MIRDLeftOvary::Construct(const G4String& volumeName,G4VPhys // Visualization Attributes //G4VisAttributes* LeftOvaryVisAtt = new G4VisAttributes(G4Colour(0.85,0.44,0.84)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); delete colourPointer; - G4VisAttributes* LeftOvaryVisAtt = new G4VisAttributes(colour); + auto* LeftOvaryVisAtt = new G4VisAttributes(colour); LeftOvaryVisAtt->SetForceSolid(wireFrame); logicLeftOvary->SetVisAttributes(LeftOvaryVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDLeftScapula.cc b/examples/advanced/human_phantom/src/G4MIRDLeftScapula.cc index 02bb3b6687..622a7bf3c1 100644 --- a/examples/advanced/human_phantom/src/G4MIRDLeftScapula.cc +++ b/examples/advanced/human_phantom/src/G4MIRDLeftScapula.cc @@ -45,22 +45,14 @@ #include "G4HumanPhantomColour.hh" #include "G4Box.hh" -G4MIRDLeftScapula::G4MIRDLeftScapula() -{ -} - -G4MIRDLeftScapula::~G4MIRDLeftScapula() -{ -} - G4VPhysicalVolume* G4MIRDLeftScapula::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("skeleton"); + auto* material = new G4HumanPhantomMaterial(); + auto* skeleton = material -> GetMaterial("skeleton"); G4double ax_in = 17.* cm; G4double by_in = 9.8* cm; @@ -68,24 +60,18 @@ G4VPhysicalVolume* G4MIRDLeftScapula::Construct(const G4String& volumeName, G4VP G4double by_out = 9.8*cm; G4double dz= 16.4* cm; + auto* inner_scapula = new G4EllipticalTube("ScapulaIn", ax_in, by_in, (dz+ 1.*cm)/2); + auto* outer_scapula = new G4EllipticalTube("ScapulaOut", ax_out, by_out, dz/2); - G4EllipticalTube* inner_scapula = new G4EllipticalTube("ScapulaIn", ax_in, by_in, (dz+ 1.*cm)/2); - G4EllipticalTube* outer_scapula = new G4EllipticalTube("ScapulaOut", ax_out, by_out, dz/2); - - - - - G4Box* subtraction = new G4Box("subtraction",ax_out, ax_out, ax_out); + auto* subtraction = new G4Box("subtraction",ax_out, ax_out, ax_out); G4double xx = ax_out * 0.242 ; //(sin 14deg) G4double yy = - ax_out * 0.97; // (cos 14 deg) - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* rm = new G4RotationMatrix(); rm -> rotateZ(-14.* degree); - - - G4SubtractionSolid* scapula_first = new G4SubtractionSolid("Scapula_first", + auto* scapula_first = new G4SubtractionSolid("Scapula_first", outer_scapula, subtraction, rm, @@ -94,26 +80,25 @@ G4VPhysicalVolume* G4MIRDLeftScapula::Construct(const G4String& volumeName, G4VP G4double xx2 = -ax_out * 0.62470 ; //(cos 51.34deg) G4double yy2 = ax_out * 0.78087; // (sin 51.34 deg) - G4RotationMatrix* rm2 = new G4RotationMatrix(); + auto* rm2 = new G4RotationMatrix(); rm2 -> rotateZ(-38.6598* degree); - - G4SubtractionSolid* scapula_bone = new G4SubtractionSolid("Scapula", + auto* scapula_bone = new G4SubtractionSolid("Scapula", scapula_first, subtraction, rm2, G4ThreeVector(xx2, yy2, 0. *cm)); - G4SubtractionSolid* scapula = new G4SubtractionSolid("Scapula", + auto* scapula = new G4SubtractionSolid("Scapula", scapula_bone, inner_scapula); - G4LogicalVolume* logicLeftScapula = new G4LogicalVolume(scapula, - skeleton, - "logical" + volumeName, - 0, 0, 0); + auto* logicLeftScapula = new G4LogicalVolume(scapula, + skeleton, + "logical" + volumeName, + nullptr, nullptr, nullptr); - G4VPhysicalVolume* physLeftScapula = new G4PVPlacement(0, + G4VPhysicalVolume* physLeftScapula = new G4PVPlacement(nullptr, G4ThreeVector(0. * cm, 0. * cm, 24.1 *cm), "physicalLeftScapula", logicLeftScapula, @@ -123,9 +108,9 @@ G4VPhysicalVolume* G4MIRDLeftScapula::Construct(const G4String& volumeName, G4VP // Visualization Attributes //G4VisAttributes* LeftScapulaVisAtt = new G4VisAttributes(G4Colour(0.94,0.5,0.5)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* LeftScapulaVisAtt = new G4VisAttributes(colour); + auto* LeftScapulaVisAtt = new G4VisAttributes(colour); LeftScapulaVisAtt->SetForceSolid(wireFrame); logicLeftScapula->SetVisAttributes(LeftScapulaVisAtt); @@ -146,7 +131,6 @@ G4VPhysicalVolume* G4MIRDLeftScapula::Construct(const G4String& volumeName, G4VP // Testing Mass G4double LeftScapulaMass = (LeftScapulaVol)*LeftScapulaDensity; G4cout << "Mass of LeftScapula = " << LeftScapulaMass/gram << " g" << G4endl; - return physLeftScapula; } diff --git a/examples/advanced/human_phantom/src/G4MIRDLeftTeste.cc b/examples/advanced/human_phantom/src/G4MIRDLeftTeste.cc index a6d2351bdd..e8b1f4056c 100644 --- a/examples/advanced/human_phantom/src/G4MIRDLeftTeste.cc +++ b/examples/advanced/human_phantom/src/G4MIRDLeftTeste.cc @@ -45,40 +45,30 @@ #include "G4UnionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDLeftTeste::G4MIRDLeftTeste() -{ -} - -G4MIRDLeftTeste::~G4MIRDLeftTeste() -{ - -} - - G4VPhysicalVolume* G4MIRDLeftTeste::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax= 1.3*cm; G4double by= 1.5*cm; G4double cz= 2.3*cm; - G4Ellipsoid* OneTeste = new G4Ellipsoid("OneTeste", + auto* OneTeste = new G4Ellipsoid("OneTeste", ax, by, cz); - G4LogicalVolume* logicLeftTeste = new G4LogicalVolume(OneTeste, + auto* logicLeftTeste = new G4LogicalVolume(OneTeste, soft, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physLeftTeste = new G4PVPlacement(0, + G4VPhysicalVolume* physLeftTeste = new G4PVPlacement(nullptr, G4ThreeVector(1.4 *cm,3.*cm, 0*cm), "physicalLeftTeste", logicLeftTeste, @@ -89,11 +79,11 @@ G4VPhysicalVolume* G4MIRDLeftTeste::Construct(const G4String& volumeName,G4VPhys // Visualization Attributes //G4VisAttributes* LeftTesteVisAtt = new G4VisAttributes(G4Colour(0.85,0.44,0.84)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); delete colourPointer; - G4VisAttributes* LeftTesteVisAtt = new G4VisAttributes(colour); + auto* LeftTesteVisAtt = new G4VisAttributes(colour); LeftTesteVisAtt->SetForceSolid(wireFrame); logicLeftTeste->SetVisAttributes(LeftTesteVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDLiver.cc b/examples/advanced/human_phantom/src/G4MIRDLiver.cc index 22771afd6f..ca6839b22b 100644 --- a/examples/advanced/human_phantom/src/G4MIRDLiver.cc +++ b/examples/advanced/human_phantom/src/G4MIRDLiver.cc @@ -46,37 +46,28 @@ #include "G4HumanPhantomColour.hh" #include -G4MIRDLiver::G4MIRDLiver() -{ -} - -G4MIRDLiver::~G4MIRDLiver() -{ -} - - G4VPhysicalVolume* G4MIRDLiver::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { G4cout << "Construct " << volumeName <<" with mother "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double dx= 14.19 *cm; //a G4double dy= 7.84 *cm; //b G4double dz= 7.21* cm; //(z2-z1)/2 - G4EllipticalTube* firstLiver = new G4EllipticalTube("FirstLiver",dx, dy, dz); + auto* firstLiver = new G4EllipticalTube("FirstLiver",dx, dy, dz); G4double xx = 20.00 * cm; G4double yy = 50.00 * cm; G4double zz = 50.00 *cm; - G4Box* subtrLiver = new G4Box("SubtrLiver", xx/2., yy/2., zz/2.); + auto* subtrLiver = new G4Box("SubtrLiver", xx/2., yy/2., zz/2.); - G4RotationMatrix* rm_relative = new G4RotationMatrix(); + auto* rm_relative = new G4RotationMatrix(); rm_relative -> rotateY(32.* degree); rm_relative -> rotateZ(40.9* degree); @@ -90,18 +81,18 @@ G4VPhysicalVolume* G4MIRDLiver::Construct(const G4String& volumeName,G4VPhysical // G4cout << aa/dd << "" << bb/dd << " "<< cc/dd <rotateX(180.*degree); G4VPhysicalVolume* physLiver = new G4PVPlacement(rm,G4ThreeVector(0. *cm,0. *cm,0.*cm), "physicalLiver", @@ -111,9 +102,9 @@ G4VPhysicalVolume* G4MIRDLiver::Construct(const G4String& volumeName,G4VPhysical 0,true); // Visualization Attributes - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* LiverVisAtt = new G4VisAttributes(colour); + auto* LiverVisAtt = new G4VisAttributes(colour); LiverVisAtt->SetForceSolid(wireFrame); logicLiver->SetVisAttributes(LiverVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDLowerLargeIntestine.cc b/examples/advanced/human_phantom/src/G4MIRDLowerLargeIntestine.cc index c00ccc097b..72d4c90b7d 100644 --- a/examples/advanced/human_phantom/src/G4MIRDLowerLargeIntestine.cc +++ b/examples/advanced/human_phantom/src/G4MIRDLowerLargeIntestine.cc @@ -43,32 +43,21 @@ #include "G4HumanPhantomMaterial.hh" #include "G4HumanPhantomColour.hh" -G4MIRDLowerLargeIntestine::G4MIRDLowerLargeIntestine() -{ -} - -G4MIRDLowerLargeIntestine::~G4MIRDLowerLargeIntestine() -{ - -} - - G4VPhysicalVolume* G4MIRDLowerLargeIntestine::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double dx = 1.88 * cm; //a G4double dy = 2.13 *cm; //b G4double dz = 7.64 *cm; //(z1-z2)/2 - G4EllipticalTube* DescendingColonLowerLargeIntestine = new G4EllipticalTube("DiscendingColon",dx, dy, dz); - + auto* DescendingColonLowerLargeIntestine = new G4EllipticalTube("DiscendingColon",dx, dy, dz); G4double rmin= 0.0 *cm; G4double rmax = 1.88 * cm;//a @@ -76,30 +65,30 @@ G4VPhysicalVolume* G4MIRDLowerLargeIntestine::Construct(const G4String& volumeNa G4double startphi= 0. * degree; G4double deltaphi= 90. * degree; - G4Torus* SigmoidColonUpLowerLargeIntestine = new G4Torus("SigmoidColonUpLowerLargeIntestine", + auto* SigmoidColonUpLowerLargeIntestine = new G4Torus("SigmoidColonUpLowerLargeIntestine", rmin, rmax,rtor, startphi, deltaphi); - + rtor = 3. * cm;//R2 G4VSolid* SigmoidColonDownLowerLargeIntestine = new G4Torus("SigmoidColonDownLowerLargeIntestine", rmin, rmax, rtor,startphi,deltaphi); - G4RotationMatrix* relative_rm = new G4RotationMatrix(); + auto* relative_rm = new G4RotationMatrix(); relative_rm -> rotateY(180. * degree); relative_rm -> rotateZ(90. * degree); - G4UnionSolid* SigmoidColonLowerLargeIntestine = new G4UnionSolid( "SigmoidColonLowerLargeIntestine", + auto* SigmoidColonLowerLargeIntestine = new G4UnionSolid( "SigmoidColonLowerLargeIntestine", SigmoidColonUpLowerLargeIntestine, SigmoidColonDownLowerLargeIntestine, relative_rm, G4ThreeVector(0.0,8.72*cm,0.0)); // R1 + R2 - G4RotationMatrix* relative_rm_2 = new G4RotationMatrix(); + auto* relative_rm_2 = new G4RotationMatrix(); relative_rm_2 -> rotateX(90. * degree); - G4UnionSolid* LowerLargeIntestine = new G4UnionSolid( "LowerLargeIntestine", + auto* LowerLargeIntestine = new G4UnionSolid( "LowerLargeIntestine", DescendingColonLowerLargeIntestine, SigmoidColonLowerLargeIntestine, relative_rm_2, @@ -107,11 +96,11 @@ G4VPhysicalVolume* G4MIRDLowerLargeIntestine::Construct(const G4String& volumeNa ); // -rtor,0, -dz - G4LogicalVolume* logicLowerLargeIntestine = new G4LogicalVolume( LowerLargeIntestine, soft, + auto* logicLowerLargeIntestine = new G4LogicalVolume( LowerLargeIntestine, soft, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); - G4VPhysicalVolume* physLowerLargeIntestine = new G4PVPlacement(0, // R1+ R2, -2.36 (y0), z0 + G4VPhysicalVolume* physLowerLargeIntestine = new G4PVPlacement(nullptr, // R1+ R2, -2.36 (y0), z0 G4ThreeVector(8.72*cm, -2.36*cm,-18.64 *cm), "physicalLowerLargeIntestine", logicLowerLargeIntestine, @@ -122,9 +111,9 @@ G4VPhysicalVolume* G4MIRDLowerLargeIntestine::Construct(const G4String& volumeNa // Visualization Attributes //G4VisAttributes* LowerLargeIntestineVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* LowerLargeIntestineVisAtt = new G4VisAttributes(colour); + auto* LowerLargeIntestineVisAtt = new G4VisAttributes(colour); LowerLargeIntestineVisAtt->SetForceSolid(wireFrame); logicLowerLargeIntestine->SetVisAttributes(LowerLargeIntestineVisAtt); @@ -146,6 +135,5 @@ G4VPhysicalVolume* G4MIRDLowerLargeIntestine::Construct(const G4String& volumeNa G4double LowerLargeIntestineMass = (LowerLargeIntestineVol)*LowerLargeIntestineDensity; G4cout << "Mass of LowerLargeIntestine = " << LowerLargeIntestineMass/gram << " g" << G4endl; - return physLowerLargeIntestine; } diff --git a/examples/advanced/human_phantom/src/G4MIRDMaleGenitalia.cc b/examples/advanced/human_phantom/src/G4MIRDMaleGenitalia.cc index c450bee5d3..4ec2e7ab88 100644 --- a/examples/advanced/human_phantom/src/G4MIRDMaleGenitalia.cc +++ b/examples/advanced/human_phantom/src/G4MIRDMaleGenitalia.cc @@ -48,26 +48,15 @@ #include "G4Cons.hh" #include "G4SubtractionSolid.hh" -G4MIRDMaleGenitalia::G4MIRDMaleGenitalia() -{ -} - -G4MIRDMaleGenitalia::~G4MIRDMaleGenitalia() -{ - -} - - G4VPhysicalVolume* G4MIRDMaleGenitalia::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; - G4double pDz=2.4*cm; G4double pTheta=0*degree; G4double pPhi=0*degree; @@ -80,12 +69,11 @@ G4VPhysicalVolume* G4MIRDMaleGenitalia::Construct(const G4String& volumeName,G4V G4double pDx4=10*cm; G4double pAlp2=0*degree; - G4Trap* genitaliaTrap= new G4Trap("GenitaliaTrap", + auto* genitaliaTrap= new G4Trap("GenitaliaTrap", pDz,pTheta,pPhi,pDy1, pDx1,pDx2,pAlp1,pDy2, pDx3,pDx4,pAlp2); - G4double rmin1 = 0.* cm; G4double rmin2 = 0.* cm; G4double dz= 5 * cm; @@ -94,34 +82,33 @@ G4VPhysicalVolume* G4MIRDMaleGenitalia::Construct(const G4String& volumeName,G4V G4double startphi= 0.* degree; G4double deltaphi= 360. * degree; - G4Cons* genitaliaLegL = new G4Cons("GenitaliaLegL", + auto* genitaliaLegL = new G4Cons("GenitaliaLegL", rmin1, rmax1, rmin2, rmax2, dz/2., startphi, deltaphi); - G4Cons* genitaliaLegR = new G4Cons("GenitaliaLegR", + auto* genitaliaLegR = new G4Cons("GenitaliaLegR", rmin1, rmax1, rmin2, rmax2, dz/2., startphi, deltaphi); - G4UnionSolid* genitaliaLegs = new G4UnionSolid("GenitaliaLegs",genitaliaLegL,genitaliaLegR, - 0, - G4ThreeVector(20.* cm, 0.*cm,0* cm) ); + auto* genitaliaLegs = new G4UnionSolid("GenitaliaLegs",genitaliaLegL,genitaliaLegR, + nullptr, + G4ThreeVector(20.* cm, 0.*cm,0* cm) ); - - G4SubtractionSolid* MaleGenitalia = new G4SubtractionSolid("MaleGenitalia",genitaliaTrap,genitaliaLegs, - 0,// + auto* MaleGenitalia = new G4SubtractionSolid("MaleGenitalia",genitaliaTrap,genitaliaLegs, + nullptr,// G4ThreeVector(-10.* cm, -5.*cm,0* cm) ); - G4LogicalVolume* logicMaleGenitalia = new G4LogicalVolume(MaleGenitalia, + auto* logicMaleGenitalia = new G4LogicalVolume(MaleGenitalia, soft, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physMaleGenitalia = new G4PVPlacement(0, + G4VPhysicalVolume* physMaleGenitalia = new G4PVPlacement(nullptr, G4ThreeVector(0*cm,5.*cm, -2.4*cm), "physicalMaleGenitalia", logicMaleGenitalia, @@ -131,11 +118,11 @@ G4VPhysicalVolume* G4MIRDMaleGenitalia::Construct(const G4String& volumeName,G4V // Visualization Attributes //G4VisAttributes* MaleGenitaliaVisAtt = new G4VisAttributes(G4Colour(0.85,0.44,0.84)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); delete colourPointer; - G4VisAttributes* MaleGenitaliaVisAtt = new G4VisAttributes(colour); + auto* MaleGenitaliaVisAtt = new G4VisAttributes(colour); MaleGenitaliaVisAtt->SetForceSolid(wireFrame); logicMaleGenitalia->SetVisAttributes(MaleGenitaliaVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDMiddleLowerSpine.cc b/examples/advanced/human_phantom/src/G4MIRDMiddleLowerSpine.cc index 194c6e2fc2..780090202d 100644 --- a/examples/advanced/human_phantom/src/G4MIRDMiddleLowerSpine.cc +++ b/examples/advanced/human_phantom/src/G4MIRDMiddleLowerSpine.cc @@ -42,26 +42,16 @@ #include "G4UnionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDMiddleLowerSpine::G4MIRDMiddleLowerSpine() -{ -} - -G4MIRDMiddleLowerSpine::~G4MIRDMiddleLowerSpine() -{ -} - - G4VPhysicalVolume* G4MIRDMiddleLowerSpine::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName , G4bool wireFrame, G4bool ) { - G4HumanPhantomMaterial* material = new G4HumanPhantomMaterial(); + auto* material = new G4HumanPhantomMaterial(); G4cout<<"Construct "<GetName()< GetMaterial("skeleton"); + auto* skeleton = material -> GetMaterial("skeleton"); delete material; @@ -69,13 +59,13 @@ G4VPhysicalVolume* G4MIRDMiddleLowerSpine::Construct(const G4String& volumeName, G4double dy = 2.5 *cm; G4double dz = 24. *cm; - G4VSolid* middleLowerSpine = new G4EllipticalTube("MiddleLowerSpine",dx, dy, dz); + auto* middleLowerSpine = new G4EllipticalTube("MiddleLowerSpine",dx, dy, dz); - G4LogicalVolume* logicMiddleLowerSpine = new G4LogicalVolume( middleLowerSpine, skeleton, - "logical" + volumeName, - 0, 0, 0); + auto* logicMiddleLowerSpine = new G4LogicalVolume( middleLowerSpine, skeleton, + "logical" + volumeName, + nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physMiddleLowerSpine = new G4PVPlacement(0,G4ThreeVector(0.0 *cm, 5.5 * cm,11. * cm), + G4VPhysicalVolume* physMiddleLowerSpine = new G4PVPlacement(nullptr,G4ThreeVector(0.0 *cm, 5.5 * cm,11. * cm), "physicalMiddleLowerSpine", logicMiddleLowerSpine, mother, @@ -86,9 +76,9 @@ G4VPhysicalVolume* G4MIRDMiddleLowerSpine::Construct(const G4String& volumeName, // Visualization Attributes // G4VisAttributes* MiddleLowerSpineVisAtt = new G4VisAttributes(G4Colour(0.46,0.53,0.6)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* MiddleLowerSpineVisAtt = new G4VisAttributes(colour); + auto* MiddleLowerSpineVisAtt = new G4VisAttributes(colour); MiddleLowerSpineVisAtt->SetForceSolid(wireFrame); logicMiddleLowerSpine->SetVisAttributes(MiddleLowerSpineVisAtt); @@ -109,7 +99,6 @@ G4VPhysicalVolume* G4MIRDMiddleLowerSpine::Construct(const G4String& volumeName, // Testing Mass G4double MiddleLowerSpineMass = (MiddleLowerSpineVol)*MiddleLowerSpineDensity; G4cout << "Mass of MiddleLowerSpine = " << MiddleLowerSpineMass/gram << " g" << G4endl; - - + return physMiddleLowerSpine; } diff --git a/examples/advanced/human_phantom/src/G4MIRDPancreas.cc b/examples/advanced/human_phantom/src/G4MIRDPancreas.cc index 48c2e85d64..32ad659116 100644 --- a/examples/advanced/human_phantom/src/G4MIRDPancreas.cc +++ b/examples/advanced/human_phantom/src/G4MIRDPancreas.cc @@ -46,25 +46,14 @@ #include "G4SubtractionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDPancreas::G4MIRDPancreas() -{ -} - -G4MIRDPancreas::~G4MIRDPancreas() -{ - -} - - G4VPhysicalVolume* G4MIRDPancreas::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName ,G4bool wireFrame, G4bool) { - G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax= 3.*cm; //c @@ -73,25 +62,25 @@ G4VPhysicalVolume* G4MIRDPancreas::Construct(const G4String& volumeName,G4VPhysi G4double zcut1= -15. *cm;// -a G4double zcut2= 0.0 *cm; - G4Ellipsoid* pancreasFirst = new G4Ellipsoid("PancreasFirst",ax, by, cz, + auto* pancreasFirst = new G4Ellipsoid("PancreasFirst",ax, by, cz, zcut1, zcut2); G4double xx = 6. * cm;// 2*c G4double yy = 2. * cm;// 2*b G4double zz = 12. * cm; // cz - x1 = 3 cm - G4Box* subtrPancreas = new G4Box("SubtrPancreas",xx/2., yy/2., zz/2.); + auto* subtrPancreas = new G4Box("SubtrPancreas",xx/2., yy/2., zz/2.); - G4SubtractionSolid* pancreas = new G4SubtractionSolid("pancreas", + auto* pancreas = new G4SubtractionSolid("pancreas", pancreasFirst, subtrPancreas, - 0, + nullptr, G4ThreeVector(-3 * cm,0.0,-9.*cm)); - // - G4LogicalVolume* logicPancreas = new G4LogicalVolume(pancreas, soft, - "logical" + volumeName, - 0, 0, 0); - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* logicPancreas = new G4LogicalVolume(pancreas, soft, + "logical" + volumeName, + nullptr, nullptr, nullptr); + + auto* rm = new G4RotationMatrix(); rm->rotateY(90.*degree); G4VPhysicalVolume* physPancreas = new G4PVPlacement(rm, G4ThreeVector(-0. *cm, 0.0, 2*cm),//x0, 0, 2 cm @@ -104,9 +93,9 @@ G4VPhysicalVolume* G4MIRDPancreas::Construct(const G4String& volumeName,G4VPhysi // Visualization Attributes // G4VisAttributes* PancreasVisAtt = new G4VisAttributes(G4Colour(0.28,0.82,0.8)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* PancreasVisAtt = new G4VisAttributes(colour); + auto* PancreasVisAtt = new G4VisAttributes(colour); PancreasVisAtt->SetForceSolid(wireFrame); logicPancreas->SetVisAttributes(PancreasVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDPelvis.cc b/examples/advanced/human_phantom/src/G4MIRDPelvis.cc index 85093b7b5e..90b65a7143 100644 --- a/examples/advanced/human_phantom/src/G4MIRDPelvis.cc +++ b/examples/advanced/human_phantom/src/G4MIRDPelvis.cc @@ -46,24 +46,14 @@ #include "G4LogicalVolume.hh" #include "G4HumanPhantomColour.hh" -G4MIRDPelvis::G4MIRDPelvis() -{ -} - -G4MIRDPelvis::~G4MIRDPelvis() -{ - -} - - G4VPhysicalVolume* G4MIRDPelvis::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { - G4HumanPhantomMaterial* material = new G4HumanPhantomMaterial(); + auto* material = new G4HumanPhantomMaterial(); G4cout<<"Construct "<GetName()< GetMaterial("skeleton"); + auto* skeleton = material -> GetMaterial("skeleton"); delete material; /* @@ -94,34 +84,29 @@ G4VPhysicalVolume* G4MIRDPelvis::Construct(const G4String& volumeName,G4VPhysica G4double y = 28. * cm; //b2*2 G4double z = 24. *cm; // z2 - G4VSolid* subPelvis = new G4Box("SubtrPelvis", x/2., y/2., z/2.); + auto* subPelvis = new G4Box("SubtrPelvis", x/2., y/2., z/2.); - - - G4SubtractionSolid* firstPelvis = new G4SubtractionSolid("FirstPelvis", + auto* firstPelvis = new G4SubtractionSolid("FirstPelvis", outPelvis, - inPelvis, 0, G4ThreeVector(0.*cm, -0.8 *cm, 0. * cm)); + inPelvis, nullptr, G4ThreeVector(0.*cm, -0.8 *cm, 0. * cm)); - - G4SubtractionSolid* secondPelvis = new G4SubtractionSolid("SecondPelvis", + auto* secondPelvis = new G4SubtractionSolid("SecondPelvis", firstPelvis, - subPelvis, 0, + subPelvis, nullptr, G4ThreeVector(0.0, -14. * cm, 0.*cm)); - // half of the y size of the box - - G4SubtractionSolid* pelvis = new G4SubtractionSolid("Pelvis", secondPelvis, subPelvis, - 0, + auto* pelvis = new G4SubtractionSolid("Pelvis", secondPelvis, subPelvis, + nullptr, G4ThreeVector(0.0, 22. * cm, -9. *cm)); - G4LogicalVolume* logicPelvis = new G4LogicalVolume(pelvis, skeleton, - "logical" + volumeName, 0, 0, 0); + auto* logicPelvis = new G4LogicalVolume(pelvis, skeleton, + "logical" + volumeName, nullptr, nullptr, nullptr); - G4VPhysicalVolume* physPelvis = new G4PVPlacement(0,G4ThreeVector(0.0, -3. * cm,-24. * cm),// 0, y02, z position + G4VPhysicalVolume* physPelvis = new G4PVPlacement(nullptr,G4ThreeVector(0.0, -3. * cm,-24. * cm),// 0, y02, z position // with respect to the trunk "physicalPelvis", logicPelvis, @@ -129,14 +114,12 @@ G4VPhysicalVolume* G4MIRDPelvis::Construct(const G4String& volumeName,G4VPhysica false, 0, true); - - // Visualization Attributes // G4VisAttributes* PelvisVisAtt = new G4VisAttributes(G4Colour(0.46,0.53,0.6)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* PelvisVisAtt = new G4VisAttributes(colour); + auto* PelvisVisAtt = new G4VisAttributes(colour); PelvisVisAtt->SetForceSolid(wireFrame); logicPelvis->SetVisAttributes(PelvisVisAtt); @@ -157,7 +140,6 @@ G4VPhysicalVolume* G4MIRDPelvis::Construct(const G4String& volumeName,G4VPhysica // Testing Mass G4double PelvisMass = (PelvisVol)*PelvisDensity; G4cout << "Mass of Pelvis = " << PelvisMass/gram << " g" << G4endl; - - + return physPelvis; } diff --git a/examples/advanced/human_phantom/src/G4MIRDRibCage.cc b/examples/advanced/human_phantom/src/G4MIRDRibCage.cc index ee68e4ede1..77a2a4d14a 100644 --- a/examples/advanced/human_phantom/src/G4MIRDRibCage.cc +++ b/examples/advanced/human_phantom/src/G4MIRDRibCage.cc @@ -41,25 +41,22 @@ #include "G4Box.hh" #include "G4PVPlacement.hh" #include "G4HumanPhantomColour.hh" - -G4MIRDRibCage::G4MIRDRibCage() -{ -} - -G4MIRDRibCage::~G4MIRDRibCage() -{ -} - +G4MIRDRibCage::G4MIRDRibCage():fPhysRib1(nullptr), fPhysRib2(nullptr), fPhysRib3(nullptr), + fPhysRib4(nullptr), fPhysRib5(nullptr), fPhysRib6(nullptr), + fPhysRib7(nullptr), fPhysRib8(nullptr), fPhysRib9(nullptr), + fPhysRib10(nullptr), fPhysRib11(nullptr), fPhysRib12(nullptr) +{;} G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) + { - G4HumanPhantomMaterial* material = new G4HumanPhantomMaterial(); + auto* material = new G4HumanPhantomMaterial(); G4cout<<"Construct "<GetName()< GetMaterial("skeleton"); - G4Material* soft = material -> GetMaterial("soft_tissue"); + auto* skeleton = material -> GetMaterial("skeleton"); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; @@ -67,22 +64,22 @@ G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysi G4double dy= 9.8 * cm; //b2 G4double thickness= 32.4 * cm; // z2/2 of cage - G4EllipticalTube* outCage = new G4EllipticalTube("outCage",dx, dy, thickness/2.); + auto* outCage = new G4EllipticalTube("outCage",dx, dy, thickness/2.); dx = 16.4 * cm; // a1 dy = 9.2 * cm; // b1 G4double dz = 34. *cm; // z2/2 - G4EllipticalTube* inCage = new G4EllipticalTube("inCage",dx, dy, dz/2.); + auto* inCage = new G4EllipticalTube("inCage",dx, dy, dz/2.); - G4SubtractionSolid* cage = new G4SubtractionSolid("Cage", + auto* cage = new G4SubtractionSolid("Cage", outCage, - inCage, 0, G4ThreeVector(0.*cm, 0.*cm, 0. * cm)); + inCage, nullptr, G4ThreeVector(0.*cm, 0.*cm, 0. * cm)); - G4LogicalVolume* logicRibCage = new G4LogicalVolume(cage, soft, "logicalCage", 0, 0, 0); + auto* logicRibCage = new G4LogicalVolume(cage, soft, "logicalCage", nullptr, nullptr, nullptr); - G4VPhysicalVolume* physRibCage = new G4PVPlacement(0,G4ThreeVector(0.0, 0.0, thickness/2. + 0.1 * cm), + G4VPhysicalVolume* physRibCage = new G4PVPlacement(nullptr,G4ThreeVector(0.0, 0.0, thickness/2. + 0.1 * cm), // with respect to the trunk "physicalRibCage", logicRibCage, @@ -90,21 +87,20 @@ G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysi false, 0, true); - G4double xx = 17.*cm; G4double yy = 9.8*cm; G4double ribThickness = 1.4*cm; - G4EllipticalTube* rib_out = new G4EllipticalTube("rib_out",xx, yy, ribThickness/2.); + auto* rib_out = new G4EllipticalTube("rib_out",xx, yy, ribThickness/2.); xx = 16.5 *cm; yy = 9.3 * cm; G4double zz = 1.5 * cm; - G4EllipticalTube* rib_in = new G4EllipticalTube("rib_in",xx, yy, zz/2.); - G4SubtractionSolid* rib = new G4SubtractionSolid("rib",rib_out, rib_in); + auto* rib_in = new G4EllipticalTube("rib_in",xx, yy, zz/2.); + auto* rib = new G4SubtractionSolid("rib",rib_out, rib_in); - G4LogicalVolume* logicRib= new G4LogicalVolume(rib, skeleton, "logical" + volumeName, 0, 0, 0); + auto* logicRib= new G4LogicalVolume(rib, skeleton, "logical" + volumeName, nullptr, nullptr, nullptr); - physRib1 = new G4PVPlacement(0,G4ThreeVector(0.0, 0.0, (- 32.2*cm/2. + 0.8 *cm)), + fPhysRib1 = new G4PVPlacement(nullptr,G4ThreeVector(0.0, 0.0, (- 32.2*cm/2. + 0.8 *cm)), // with respect to the trunk "physicalRib", logicRib, @@ -112,7 +108,7 @@ G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysi false, 0, true); - physRib2 = new G4PVPlacement(0,G4ThreeVector(0.0, 0.0, ( - 32.2*cm/2. + 0.8 *cm + 2.8 *cm)), + fPhysRib2 = new G4PVPlacement(nullptr,G4ThreeVector(0.0, 0.0, ( - 32.2*cm/2. + 0.8 *cm + 2.8 *cm)), // with respect to the trunk "physicalRib", logicRib, @@ -120,7 +116,7 @@ G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysi false, 0, true); - physRib3 = new G4PVPlacement(0,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8 * cm + 5.6 *cm)), + fPhysRib3 = new G4PVPlacement(nullptr,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8 * cm + 5.6 *cm)), // with respect to the trunk "physicalRib", logicRib, @@ -128,7 +124,7 @@ G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysi false, 0, true); - physRib4 = new G4PVPlacement(0,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8 * cm + 8.4 *cm)), + fPhysRib4 = new G4PVPlacement(nullptr,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8 * cm + 8.4 *cm)), // with respect to the trunk "physicalRib", logicRib, @@ -136,7 +132,7 @@ G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysi false, 0, true); - physRib5 = new G4PVPlacement(0,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8 * cm + 11.2 *cm)), + fPhysRib5 = new G4PVPlacement(nullptr,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8 * cm + 11.2 *cm)), // with respect to the trunk "physicalRib", logicRib, @@ -144,7 +140,7 @@ G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysi false, 0, true); - physRib6 = new G4PVPlacement(0,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8 * cm + 14. *cm)), + fPhysRib6 = new G4PVPlacement(nullptr,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8 * cm + 14. *cm)), // with respect to the trunk "physicalRib", logicRib, @@ -152,7 +148,7 @@ G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysi false, 0, true); - physRib7 = new G4PVPlacement(0,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8 *cm + 16.8 *cm)), + fPhysRib7 = new G4PVPlacement(nullptr,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8 *cm + 16.8 *cm)), // with respect to the trunk "physicalRib", logicRib, @@ -160,7 +156,7 @@ G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysi false, 0, true); - physRib8 = new G4PVPlacement(0,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8 *cm + 19.6 *cm)), + fPhysRib8 = new G4PVPlacement(nullptr,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8 *cm + 19.6 *cm)), // with respect to the trunk "physicalRib", logicRib, @@ -168,7 +164,7 @@ G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysi false, 0, true); - physRib9 = new G4PVPlacement(0,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8*cm + 22.4 *cm)), + fPhysRib9 = new G4PVPlacement(nullptr,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8*cm + 22.4 *cm)), // with respect to the trunk "physicalRib", logicRib, @@ -176,7 +172,7 @@ G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysi false, 0, true); - physRib10 = new G4PVPlacement(0,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8*cm + 25.2 *cm)), + fPhysRib10 = new G4PVPlacement(nullptr, G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8*cm + 25.2 *cm)), // with respect to the trunk "physicalRib", logicRib, @@ -184,7 +180,7 @@ G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysi false, 0, true); - physRib11 = new G4PVPlacement(0,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8*cm + 28. *cm)), + fPhysRib11 = new G4PVPlacement(nullptr,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8*cm + 28. *cm)), // with respect to the trunk "physicalRib", logicRib, @@ -192,7 +188,7 @@ G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysi false, 0, true); - physRib12 = new G4PVPlacement(0,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8*cm + 30.8 *cm)), + fPhysRib12 = new G4PVPlacement(nullptr,G4ThreeVector(0.0, 0.0, (-thickness/2. + 0.8*cm + 30.8 *cm)), // with respect to the trunk "physicalRib", logicRib, @@ -205,9 +201,9 @@ G4VPhysicalVolume* G4MIRDRibCage::Construct(const G4String& volumeName, G4VPhysi //G4VisAttributes* RibCageVisAtt = new G4VisAttributes(G4Colour(0.46,0.53,0.6)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* RibCageVisAtt = new G4VisAttributes(colour); + auto* RibCageVisAtt = new G4VisAttributes(colour); RibCageVisAtt->SetForceSolid(wireFrame); logicRib->SetVisAttributes(RibCageVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDRightAdrenal.cc b/examples/advanced/human_phantom/src/G4MIRDRightAdrenal.cc index 4692007c8c..f18a164b0d 100644 --- a/examples/advanced/human_phantom/src/G4MIRDRightAdrenal.cc +++ b/examples/advanced/human_phantom/src/G4MIRDRightAdrenal.cc @@ -49,38 +49,29 @@ #include "G4UnionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDRightAdrenal::G4MIRDRightAdrenal() -{ -} - -G4MIRDRightAdrenal::~G4MIRDRightAdrenal() -{ -} - G4VPhysicalVolume* G4MIRDRightAdrenal::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax= 1.5 *cm; //a G4double by= 0.5 *cm; //b G4double cz= 5.0 *cm; //c - G4VSolid* rightAdrenal = new G4Ellipsoid("OneRightAdrenal",ax, by, cz, 0. *cm, cz); + auto* rightAdrenal = new G4Ellipsoid("OneRightAdrenal",ax, by, cz, 0. *cm, cz); - G4LogicalVolume* logicRightAdrenal = new G4LogicalVolume(rightAdrenal, + auto* logicRightAdrenal = new G4LogicalVolume(rightAdrenal, soft, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); - G4VPhysicalVolume* physRightAdrenal = new G4PVPlacement(0 ,G4ThreeVector(-4.5*cm, // xo + G4VPhysicalVolume* physRightAdrenal = new G4PVPlacement(nullptr, G4ThreeVector(-4.5*cm, // xo 6.5 *cm, //yo 3. *cm),//zo "physicalRightAdrenal", logicRightAdrenal, @@ -90,9 +81,9 @@ G4VPhysicalVolume* G4MIRDRightAdrenal::Construct(const G4String& volumeName,G4VP // Visualization Attributes // G4VisAttributes* RightAdrenalVisAtt = new G4VisAttributes(G4Colour(0.72,0.52,0.04)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* RightAdrenalVisAtt = new G4VisAttributes(colour); + auto* RightAdrenalVisAtt = new G4VisAttributes(colour); RightAdrenalVisAtt->SetForceSolid(wireFrame); logicRightAdrenal->SetVisAttributes(RightAdrenalVisAtt); @@ -113,7 +104,6 @@ G4VPhysicalVolume* G4MIRDRightAdrenal::Construct(const G4String& volumeName,G4VP // Testing Mass G4double RightAdrenalMass = (RightAdrenalVol)*RightAdrenalDensity; G4cout << "Mass of RightAdrenal = " << RightAdrenalMass/gram << " g" << G4endl; - return physRightAdrenal; } diff --git a/examples/advanced/human_phantom/src/G4MIRDRightArmBone.cc b/examples/advanced/human_phantom/src/G4MIRDRightArmBone.cc index e85d5ca8c5..167e89fb07 100644 --- a/examples/advanced/human_phantom/src/G4MIRDRightArmBone.cc +++ b/examples/advanced/human_phantom/src/G4MIRDRightArmBone.cc @@ -27,11 +27,7 @@ // Previous authors: G. Guerrieri, S. Guatelli and M. G. Pia, INFN Genova, Italy // Authors (since 2007): S. Guatelli, University of Wollongong, Australia // -// -// - #include "G4MIRDRightArmBone.hh" - #include "globals.hh" #include "G4SystemOfUnits.hh" #include "G4SDManager.hh" @@ -46,25 +42,14 @@ #include "G4HumanPhantomColour.hh" #include "G4HumanPhantomMaterial.hh" -G4MIRDRightArmBone::G4MIRDRightArmBone() -{ -} - -G4MIRDRightArmBone::~G4MIRDRightArmBone() -{ -} - G4VPhysicalVolume* G4MIRDRightArmBone::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName,G4bool wireFrame, G4bool) -{ - // Remind! the elliptical cone gives problems! Intersections of volumes, - // wrong calculation of the volume! - - G4HumanPhantomMaterial* material = new G4HumanPhantomMaterial(); +{ + auto* material = new G4HumanPhantomMaterial(); G4cout<<"Construct "<GetName()< GetMaterial("skeleton"); + auto* skeleton = material -> GetMaterial("skeleton"); delete material; @@ -72,15 +57,14 @@ G4VPhysicalVolume* G4MIRDRightArmBone::Construct(const G4String& volumeName,G4VP G4double dy = 2.7 * cm;//b // G4double dz= 46. * cm;//z0 - //G4EllipticalCone* arm = new G4EllipticalCone("OneRightArmBone",dx/2.,dy/2.,dz, 34.5 *cm); - G4EllipticalTube* rightArm = new G4EllipticalTube("OneRightArmBone",dx,dy,34.5 *cm); + auto* rightArm = new G4EllipticalTube("OneRightArmBone",dx,dy,34.5 *cm); - G4LogicalVolume* logicRightArmBone = new G4LogicalVolume(rightArm, + auto* logicRightArmBone = new G4LogicalVolume(rightArm, skeleton, "logical" + volumeName, - 0, 0,0); + nullptr, nullptr, nullptr); - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* rm = new G4RotationMatrix(); rm->rotateX(180.*degree); G4VPhysicalVolume* physRightArmBone = new G4PVPlacement(rm, G4ThreeVector(-18.4 * cm, 0.0, -0.5*cm), @@ -89,14 +73,12 @@ G4VPhysicalVolume* G4MIRDRightArmBone::Construct(const G4String& volumeName,G4VP logicRightArmBone, mother, false,0,true); - - - + // Visualization Attributes //G4VisAttributes* RightArmBoneVisAtt = new G4VisAttributes(G4Colour(0.46,0.53,0.6)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* RightArmBoneVisAtt = new G4VisAttributes(colour); + auto* RightArmBoneVisAtt = new G4VisAttributes(colour); RightArmBoneVisAtt->SetForceSolid(wireFrame); logicRightArmBone->SetVisAttributes(RightArmBoneVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDRightBreast.cc b/examples/advanced/human_phantom/src/G4MIRDRightBreast.cc index 8bb40392ab..3d61a3a3d8 100644 --- a/examples/advanced/human_phantom/src/G4MIRDRightBreast.cc +++ b/examples/advanced/human_phantom/src/G4MIRDRightBreast.cc @@ -49,42 +49,32 @@ #include "G4SubtractionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDRightBreast::G4MIRDRightBreast() -{ -} - -G4MIRDRightBreast::~G4MIRDRightBreast() -{ -} - - G4VPhysicalVolume* G4MIRDRightBreast::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax= 4.95* cm; G4double by= 4.35* cm; G4double cz= 4.15*cm; - G4Ellipsoid* oneRightBreast = new G4Ellipsoid("OneRightBreast", + auto* oneRightBreast = new G4Ellipsoid("OneRightBreast", ax, by, cz); G4double dx= 20.* cm; G4double dy= 10.* cm; G4double dz= 35.* cm; - G4EllipticalTube* Trunk = new G4EllipticalTube("Trunk",dx, dy, dz ); - - - G4RotationMatrix* rm_relative = new G4RotationMatrix(); + auto* Trunk = new G4EllipticalTube("Trunk",dx, dy, dz ); + + auto* rm_relative = new G4RotationMatrix(); rm_relative -> rotateX(90. * degree); - G4SubtractionSolid* breast = new G4SubtractionSolid("RightBreast", + auto* breast = new G4SubtractionSolid("RightBreast", oneRightBreast, Trunk, rm_relative, @@ -92,12 +82,10 @@ G4VPhysicalVolume* G4MIRDRightBreast::Construct(const G4String& volumeName,G4VPh 0.0*cm, -8.66*cm)); + auto* logicRightBreast = new G4LogicalVolume(breast, soft,"logical" + volumeName, nullptr, nullptr, nullptr); - G4LogicalVolume* logicRightBreast = new G4LogicalVolume(breast, soft,"logical" + volumeName, 0, 0,0); - - // Define rotation and position here! - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* rm = new G4RotationMatrix(); rm->rotateX(90.*degree); rm->rotateY(0.*degree); rm->rotateZ(-16.*degree); @@ -109,15 +97,13 @@ G4VPhysicalVolume* G4MIRDRightBreast::Construct(const G4String& volumeName,G4VPh logicRightBreast, mother, false, - 0, true); - - + 0, true); // Visualization Attributes // G4VisAttributes* RightBreastVisAtt = new G4VisAttributes(G4Colour(1.0,0.41,0.71)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* RightBreastVisAtt = new G4VisAttributes(colour); + auto* RightBreastVisAtt = new G4VisAttributes(colour); RightBreastVisAtt->SetForceSolid(wireFrame); logicRightBreast->SetVisAttributes(RightBreastVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDRightClavicle.cc b/examples/advanced/human_phantom/src/G4MIRDRightClavicle.cc index e3a8160606..4950e47f7d 100644 --- a/examples/advanced/human_phantom/src/G4MIRDRightClavicle.cc +++ b/examples/advanced/human_phantom/src/G4MIRDRightClavicle.cc @@ -48,24 +48,13 @@ #include "G4Box.hh" #include "G4Torus.hh" -G4MIRDRightClavicle::G4MIRDRightClavicle() -{ -} - -G4MIRDRightClavicle::~G4MIRDRightClavicle() -{ -} - - G4VPhysicalVolume* G4MIRDRightClavicle::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) -{ - +{ G4cout<<"Construct "<GetName()< GetMaterial("skeleton"); + auto* material = new G4HumanPhantomMaterial(); + auto* skeleton = material -> GetMaterial("skeleton"); G4double rMin = 0*cm; G4double rMax = 0.7883*cm; @@ -73,14 +62,14 @@ G4VPhysicalVolume* G4MIRDRightClavicle::Construct(const G4String& volumeName, G4 G4double pSPhi = 201.75*degree; G4double pDPhi = 0.7*rad; + auto* clavicle = new G4Torus("Clavicle",rMin,rMax,rTor,pSPhi,pDPhi); - G4Torus* clavicle = new G4Torus("Clavicle",rMin,rMax,rTor,pSPhi,pDPhi); - - G4LogicalVolume* logicRightClavicle = new G4LogicalVolume(clavicle, - skeleton, - "logical" + volumeName, - 0, 0, 0); - G4VPhysicalVolume* physRightClavicle = new G4PVPlacement(0, + auto* logicRightClavicle = new G4LogicalVolume(clavicle, + skeleton, + "logical" + volumeName, + nullptr, nullptr, nullptr); + + G4VPhysicalVolume* physRightClavicle = new G4PVPlacement(nullptr, G4ThreeVector(0.*cm,2.*cm,33.25*cm), "physicalRightClavicle", logicRightClavicle, @@ -89,9 +78,9 @@ G4VPhysicalVolume* G4MIRDRightClavicle::Construct(const G4String& volumeName, G4 0, true); // Visualization Attributes - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* RightClavicleVisAtt = new G4VisAttributes(colour); + auto* RightClavicleVisAtt = new G4VisAttributes(colour); RightClavicleVisAtt->SetForceSolid(wireFrame); logicRightClavicle->SetVisAttributes(RightClavicleVisAtt); G4cout << "RightClavicle created !!!!!!" << G4endl; @@ -111,7 +100,6 @@ G4VPhysicalVolume* G4MIRDRightClavicle::Construct(const G4String& volumeName, G4 // Testing Mass G4double RightClavicleMass = (RightClavicleVol)*RightClavicleDensity; G4cout << "Mass of RightClavicle = " << RightClavicleMass/gram << " g" << G4endl; - - + return physRightClavicle; } diff --git a/examples/advanced/human_phantom/src/G4MIRDRightKidney.cc b/examples/advanced/human_phantom/src/G4MIRDRightKidney.cc index 37e687ff22..76f8f3840e 100644 --- a/examples/advanced/human_phantom/src/G4MIRDRightKidney.cc +++ b/examples/advanced/human_phantom/src/G4MIRDRightKidney.cc @@ -49,15 +49,6 @@ #include "G4UnionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDRightKidney::G4MIRDRightKidney() -{ -} - -G4MIRDRightKidney::~G4MIRDRightKidney() -{ -} - - G4VPhysicalVolume* G4MIRDRightKidney::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName, @@ -65,35 +56,35 @@ G4VPhysicalVolume* G4MIRDRightKidney::Construct(const G4String& volumeName, { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax= 4.5 *cm; //a G4double by= 1.5 *cm; //b G4double cz= 5.5 *cm; //c - G4VSolid* oneRightKidney = new G4Ellipsoid("OneRightKidney",ax, by, cz); + auto* oneRightKidney = new G4Ellipsoid("OneRightKidney",ax, by, cz); G4double xx = 6. * cm; G4double yy = 12.00*cm; G4double zz = 12.00*cm; G4VSolid* subtrRightKidney = new G4Box("SubtrRightKidney",xx/2., yy/2., zz/2.); - G4SubtractionSolid* kidney = new G4SubtractionSolid("RightKidney", + auto* kidney = new G4SubtractionSolid("RightKidney", oneRightKidney, subtrRightKidney, - 0, + nullptr, G4ThreeVector(6. *cm, // x0 0.0 *cm, 0.0 * cm)); - G4LogicalVolume* logicRightKidney = new G4LogicalVolume(kidney, - soft, - "logical" + volumeName, - 0, 0, 0); + auto* logicRightKidney = new G4LogicalVolume(kidney, + soft, + "logical" + volumeName, + nullptr, nullptr, nullptr); - G4VPhysicalVolume* physRightKidney = new G4PVPlacement(0 ,G4ThreeVector(-6.*cm, // xo + G4VPhysicalVolume* physRightKidney = new G4PVPlacement( nullptr, G4ThreeVector(-6.*cm, // xo 6. *cm, //yo -2.50 *cm),//zo "physicalRightKidney", logicRightKidney, @@ -101,13 +92,11 @@ G4VPhysicalVolume* G4MIRDRightKidney::Construct(const G4String& volumeName, false, 0, true); - - // Visualization Attributes //G4VisAttributes* RightKidneyVisAtt = new G4VisAttributes(G4Colour(0.72,0.52,0.04)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* RightKidneyVisAtt = new G4VisAttributes(colour); + auto* RightKidneyVisAtt = new G4VisAttributes(colour); RightKidneyVisAtt->SetForceSolid(wireFrame); logicRightKidney->SetVisAttributes(RightKidneyVisAtt); @@ -128,7 +117,6 @@ G4VPhysicalVolume* G4MIRDRightKidney::Construct(const G4String& volumeName, // Testing Mass G4double RightKidneyMass = (RightKidneyVol)*RightKidneyDensity; G4cout << "Mass of RightKidney = " << RightKidneyMass/gram << " g" << G4endl; - - + return physRightKidney; } diff --git a/examples/advanced/human_phantom/src/G4MIRDRightLeg.cc b/examples/advanced/human_phantom/src/G4MIRDRightLeg.cc index c371d49cb7..f9f0205b25 100644 --- a/examples/advanced/human_phantom/src/G4MIRDRightLeg.cc +++ b/examples/advanced/human_phantom/src/G4MIRDRightLeg.cc @@ -28,7 +28,6 @@ // Authors (since 2007): S. Guatelli, University of Wollongong, Australia // // -// #include "G4MIRDRightLeg.hh" #include "globals.hh" @@ -46,24 +45,13 @@ #include "G4UnionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDRightLeg::G4MIRDRightLeg() -{ -} - -G4MIRDRightLeg::~G4MIRDRightLeg() -{ -} - - G4VPhysicalVolume* G4MIRDRightLeg::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool ) -{ - +{ G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); G4double rmin1 = 0.* cm; G4double rmin2 = 0.* cm; @@ -73,16 +61,16 @@ G4VPhysicalVolume* G4MIRDRightLeg::Construct(const G4String& volumeName,G4VPhysi G4double startphi= 0.* degree; G4double deltaphi= 360. * degree; - G4Cons* leg1 = new G4Cons("Leg1", + auto* leg1 = new G4Cons("Leg1", rmin1, rmax1, rmin2, rmax2, dz/2., startphi, deltaphi); - G4LogicalVolume* logicRightLeg = new G4LogicalVolume(leg1, - soft, - "logical" + volumeName, - 0, 0, 0); - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* logicRightLeg = new G4LogicalVolume(leg1, + soft, + "logical" + volumeName, + nullptr, nullptr, nullptr); + auto* rm = new G4RotationMatrix(); rm->rotateX(180.*degree); rm->rotateY(180.*degree); G4VPhysicalVolume* physRightLeg = new G4PVPlacement(rm, @@ -97,9 +85,9 @@ G4VPhysicalVolume* G4MIRDRightLeg::Construct(const G4String& volumeName,G4VPhysi // Visualization Attributes //G4VisAttributes* RightLegVisAtt = new G4VisAttributes(G4Colour(0.94,0.5,0.5)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* RightLegVisAtt = new G4VisAttributes(colour); + auto* RightLegVisAtt = new G4VisAttributes(colour); RightLegVisAtt->SetForceSolid(wireFrame); logicRightLeg->SetVisAttributes(RightLegVisAtt); @@ -120,7 +108,6 @@ G4VPhysicalVolume* G4MIRDRightLeg::Construct(const G4String& volumeName,G4VPhysi // Testing Mass G4double RightLegMass = (RightLegVol)*RightLegDensity; G4cout << "Mass of RightLeg = " << RightLegMass/gram << " g" << G4endl; - - + return physRightLeg; } diff --git a/examples/advanced/human_phantom/src/G4MIRDRightLegBone.cc b/examples/advanced/human_phantom/src/G4MIRDRightLegBone.cc index dc8ac65046..cba69f6f30 100644 --- a/examples/advanced/human_phantom/src/G4MIRDRightLegBone.cc +++ b/examples/advanced/human_phantom/src/G4MIRDRightLegBone.cc @@ -46,24 +46,15 @@ #include "G4UnionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDRightLegBone::G4MIRDRightLegBone() -{ -} - -G4MIRDRightLegBone::~G4MIRDRightLegBone() -{ -} - - G4VPhysicalVolume* G4MIRDRightLegBone::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { - G4HumanPhantomMaterial* material = new G4HumanPhantomMaterial(); + auto* material = new G4HumanPhantomMaterial(); G4cout<<"Construct "<GetName()< GetMaterial("skeleton"); + auto* skeleton = material -> GetMaterial("skeleton"); delete material; @@ -75,26 +66,16 @@ G4VPhysicalVolume* G4MIRDRightLegBone::Construct(const G4String& volumeName,G4VP G4double startphi = 0. * degree; G4double deltaphi = 360. * degree; - G4Cons* leg_bone = new G4Cons("OneRightLegBone", + auto* leg_bone = new G4Cons("OneRightLegBone", rmin1, rmax1, rmin2, rmax2, dz/2., startphi, deltaphi); - //G4RotationMatrix* rm_relative = new G4RotationMatrix(); - //rm_relative -> rotateY(-12.5 * degree); - - // G4UnionSolid* legs_bones = new G4UnionSolid("RightLegBone", - // leg_bone, leg_bone, - // 0, - // G4ThreeVector(20.* cm, 0.0,0. * cm)); - - - G4LogicalVolume* logicRightLegBone = new G4LogicalVolume(leg_bone, skeleton,"logical" + volumeName, - 0, 0, 0); - + auto* logicRightLegBone = new G4LogicalVolume(leg_bone, skeleton,"logical" + volumeName, + nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physRightLegBone = new G4PVPlacement(0, + G4VPhysicalVolume* physRightLegBone = new G4PVPlacement(nullptr, G4ThreeVector(0.0 * cm, 0.0, 0.1*cm), "physicalRightLegBone", logicRightLegBone, @@ -102,12 +83,10 @@ G4VPhysicalVolume* G4MIRDRightLegBone::Construct(const G4String& volumeName,G4VP false, 0, true); - - // Visualization Attributes - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* RightLegBoneVisAtt = new G4VisAttributes(colour); + auto* RightLegBoneVisAtt = new G4VisAttributes(colour); RightLegBoneVisAtt->SetForceSolid(wireFrame); logicRightLegBone->SetVisAttributes(RightLegBoneVisAtt); @@ -129,7 +108,6 @@ G4VPhysicalVolume* G4MIRDRightLegBone::Construct(const G4String& volumeName,G4VP // Testing Mass G4double RightLegBoneMass = (RightLegBoneVol)*RightLegBoneDensity; G4cout << "Mass of RightLegBone = " << RightLegBoneMass/gram << " g" << G4endl; - - + return physRightLegBone; } diff --git a/examples/advanced/human_phantom/src/G4MIRDRightLung.cc b/examples/advanced/human_phantom/src/G4MIRDRightLung.cc index 990a2b8b22..6a18f67362 100644 --- a/examples/advanced/human_phantom/src/G4MIRDRightLung.cc +++ b/examples/advanced/human_phantom/src/G4MIRDRightLung.cc @@ -27,10 +27,8 @@ // Previous authors: G. Guerrieri, S. Guatelli and M. G. Pia, INFN Genova, Italy // Authors (since 2007): S. Guatelli, University of Wollongong, Australia // -// -// -#include "G4MIRDRightLung.hh" +#include "G4MIRDRightLung.hh" #include "globals.hh" #include "G4SystemOfUnits.hh" #include "G4SDManager.hh" @@ -49,24 +47,13 @@ #include "G4Box.hh" #include "G4HumanPhantomColour.hh" -G4MIRDRightLung::G4MIRDRightLung() -{ -} - -G4MIRDRightLung::~G4MIRDRightLung() -{ - -} - - G4VPhysicalVolume* G4MIRDRightLung::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { - G4cout << "Construct " << volumeName << " with mother volume " <GetName()< GetMaterial("lung_material"); + auto* material = new G4HumanPhantomMaterial(); + auto* lung_material = material -> GetMaterial("lung_material"); delete material; G4double ax = 5. *cm; //a @@ -75,14 +62,14 @@ G4VPhysicalVolume* G4MIRDRightLung::Construct(const G4String& volumeName,G4VPhys G4double zcut1 = 0.0 *cm; G4double zcut2=24. *cm; - G4Ellipsoid* oneLung = new G4Ellipsoid("OneLung",ax, by, cz, zcut1,zcut2); + auto* oneLung = new G4Ellipsoid("OneLung",ax, by, cz, zcut1,zcut2); ax= 5.*cm; by= 7.5*cm; cz= 24.*cm; - G4Ellipsoid* subtrLung = new G4Ellipsoid("subtrLung",ax, by, cz); + auto* subtrLung = new G4Ellipsoid("subtrLung",ax, by, cz); // y<0 @@ -90,21 +77,19 @@ G4VPhysicalVolume* G4MIRDRightLung::Construct(const G4String& volumeName,G4VPhys G4double dy = 8.5 * cm; G4double dz = 24. * cm; - G4Box* box = new G4Box("Box", dx, dy, dz); + auto* box = new G4Box("Box", dx, dy, dz); - - G4SubtractionSolid* section = new G4SubtractionSolid("BoxSub", subtrLung, box, 0, G4ThreeVector(0.*cm, 8.5* cm, 0.*cm)); + auto* section = new G4SubtractionSolid("BoxSub", subtrLung, box, nullptr, G4ThreeVector(0.*cm, 8.5* cm, 0.*cm)); //G4SubtractionSolid* section2 = new G4SubtractionSolid("BoxSub2", subtrLung, box, 0, G4ThreeVector(0.*cm, -8.5* cm, 0.*cm)); - G4SubtractionSolid* lung1 = new G4SubtractionSolid("Lung1", oneLung, - section, - 0, G4ThreeVector(6.*cm,0*cm,0.0*cm)); + auto* lung1 = new G4SubtractionSolid("Lung1", oneLung, + section, + nullptr, G4ThreeVector(6.*cm,0*cm,0.0*cm)); + auto* logicRightLung = new G4LogicalVolume(lung1,lung_material, + "logical" + volumeName, nullptr, nullptr, nullptr); - G4LogicalVolume* logicRightLung = new G4LogicalVolume(lung1,lung_material, - "logical" + volumeName, 0, 0, 0); - - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* rm = new G4RotationMatrix(); rm->rotateZ(-360.*degree); G4VPhysicalVolume* physRightLung = new G4PVPlacement(rm,G4ThreeVector(-8.50 *cm, 0.0*cm, 8.5*cm), "physicalRightLung", @@ -115,9 +100,9 @@ G4VPhysicalVolume* G4MIRDRightLung::Construct(const G4String& volumeName,G4VPhys // Visualization Attributes // G4VisAttributes* RightLungVisAtt = new G4VisAttributes(G4Colour(0.25,0.41,0.88)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* RightLungVisAtt = new G4VisAttributes(colour); + auto* RightLungVisAtt = new G4VisAttributes(colour); RightLungVisAtt->SetForceSolid(wireFrame); logicRightLung->SetVisAttributes(RightLungVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDRightOvary.cc b/examples/advanced/human_phantom/src/G4MIRDRightOvary.cc index 0c1168d20e..66e4dd5863 100644 --- a/examples/advanced/human_phantom/src/G4MIRDRightOvary.cc +++ b/examples/advanced/human_phantom/src/G4MIRDRightOvary.cc @@ -47,40 +47,29 @@ #include "G4UnionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDRightOvary::G4MIRDRightOvary() -{ -} - -G4MIRDRightOvary::~G4MIRDRightOvary() -{ - -} - - G4VPhysicalVolume* G4MIRDRightOvary::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax= 1. *cm; G4double by= 0.5*cm; G4double cz= 2.*cm; - G4Ellipsoid* OneOvary = new G4Ellipsoid("OneOvary", + auto* OneOvary = new G4Ellipsoid("OneOvary", ax, by, cz); - G4LogicalVolume* logicRightOvary = new G4LogicalVolume(OneOvary, + auto* logicRightOvary = new G4LogicalVolume(OneOvary, soft, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physRightOvary = new G4PVPlacement(0, + G4VPhysicalVolume* physRightOvary = new G4PVPlacement(nullptr, G4ThreeVector(6. *cm,0.5*cm, -20*cm), "physicalRightOvary", logicRightOvary, @@ -91,9 +80,9 @@ G4VPhysicalVolume* G4MIRDRightOvary::Construct(const G4String& volumeName, G4VPh // Visualization Attributes // G4VisAttributes* RightOvaryVisAtt = new G4VisAttributes(G4Colour(0.85,0.44,0.84)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* RightOvaryVisAtt = new G4VisAttributes(colour); + auto* RightOvaryVisAtt = new G4VisAttributes(colour); RightOvaryVisAtt->SetForceSolid(wireFrame); logicRightOvary->SetVisAttributes(RightOvaryVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDRightScapula.cc b/examples/advanced/human_phantom/src/G4MIRDRightScapula.cc index 239817585e..2dd20cb619 100644 --- a/examples/advanced/human_phantom/src/G4MIRDRightScapula.cc +++ b/examples/advanced/human_phantom/src/G4MIRDRightScapula.cc @@ -27,8 +27,7 @@ // Previous authors: G. Guerrieri, S. Guatelli and M. G. Pia, INFN Genova, Italy // Authors (since 2007): S. Guatelli, University of Wollongong, Australia // -// -// + #include "G4MIRDRightScapula.hh" #include "globals.hh" @@ -47,24 +46,13 @@ #include "G4HumanPhantomColour.hh" #include "G4Box.hh" -G4MIRDRightScapula::G4MIRDRightScapula() -{ -} - -G4MIRDRightScapula::~G4MIRDRightScapula() -{ -} - - G4VPhysicalVolume* G4MIRDRightScapula::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { - G4cout<<"Construct "<GetName()< GetMaterial("skeleton"); + auto* material = new G4HumanPhantomMaterial(); + auto* skeleton = material -> GetMaterial("skeleton"); G4double ax_in = 17.* cm; G4double by_in = 9.8* cm; @@ -72,52 +60,45 @@ G4VPhysicalVolume* G4MIRDRightScapula::Construct(const G4String& volumeName, G4V G4double by_out = 9.8*cm; G4double dz= 16.4* cm; - - G4EllipticalTube* inner_scapula = new G4EllipticalTube("ScapulaIn", ax_in, by_in, (dz+ 1.*cm)/2); - G4EllipticalTube* outer_scapula = new G4EllipticalTube("ScapulaOut", ax_out, by_out, dz/2); + auto* inner_scapula = new G4EllipticalTube("ScapulaIn", ax_in, by_in, (dz+ 1.*cm)/2); + auto* outer_scapula = new G4EllipticalTube("ScapulaOut", ax_out, by_out, dz/2); - - - - G4Box* subtraction = new G4Box("subtraction",ax_out, ax_out, ax_out); + auto* subtraction = new G4Box("subtraction",ax_out, ax_out, ax_out); G4double xx = -ax_out * 0.242 ; //(sin 14deg) G4double yy = - ax_out * 0.97; // (cos 14 deg) - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* rm = new G4RotationMatrix(); rm -> rotateZ(14.* degree); - - - G4SubtractionSolid* scapula_first = new G4SubtractionSolid("Scapula_first", + auto* scapula_first = new G4SubtractionSolid("Scapula_first", outer_scapula, subtraction, rm, G4ThreeVector(xx, yy, 0. *cm)); - + G4double xx2 = ax_out * 0.62470 ; //(cos 51.34deg) G4double yy2 = ax_out * 0.78087; // (sin 51.34 deg) - G4RotationMatrix* rm2 = new G4RotationMatrix(); + auto* rm2 = new G4RotationMatrix(); rm2 -> rotateZ(38.6598* degree); - - G4SubtractionSolid* scapula_bone = new G4SubtractionSolid("Scapula", + auto* scapula_bone = new G4SubtractionSolid("Scapula", scapula_first, subtraction, rm2, G4ThreeVector(xx2, yy2, 0. *cm)); - G4SubtractionSolid* scapula = new G4SubtractionSolid("Scapula", + auto* scapula = new G4SubtractionSolid("Scapula", scapula_bone, inner_scapula); - G4LogicalVolume* logicRightScapula = new G4LogicalVolume(scapula, + auto* logicRightScapula = new G4LogicalVolume(scapula, skeleton, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); - G4VPhysicalVolume* physRightScapula = new G4PVPlacement(0, + G4VPhysicalVolume* physRightScapula = new G4PVPlacement(nullptr, G4ThreeVector(0. * cm, 0. * cm, 24.1 *cm), "physicalRightScapula", logicRightScapula, @@ -125,12 +106,11 @@ G4VPhysicalVolume* G4MIRDRightScapula::Construct(const G4String& volumeName, G4V false, 0, true); - // Visualization Attributes //G4VisAttributes* RightScapulaVisAtt = new G4VisAttributes(G4Colour(0.94,0.5,0.5)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* RightScapulaVisAtt = new G4VisAttributes(colour); + auto* RightScapulaVisAtt = new G4VisAttributes(colour); RightScapulaVisAtt->SetForceSolid(wireFrame); logicRightScapula->SetVisAttributes(RightScapulaVisAtt); G4cout << "RightScapula created !!!!!!" << G4endl; @@ -151,6 +131,5 @@ G4VPhysicalVolume* G4MIRDRightScapula::Construct(const G4String& volumeName, G4V G4double RightScapulaMass = (RightScapulaVol)*RightScapulaDensity; G4cout << "Mass of RightScapula = " << RightScapulaMass/gram << " g" << G4endl; - return physRightScapula; } diff --git a/examples/advanced/human_phantom/src/G4MIRDRightTeste.cc b/examples/advanced/human_phantom/src/G4MIRDRightTeste.cc index 5f09edc61f..679205a8e3 100644 --- a/examples/advanced/human_phantom/src/G4MIRDRightTeste.cc +++ b/examples/advanced/human_phantom/src/G4MIRDRightTeste.cc @@ -27,10 +27,8 @@ // Previous authors: G. Guerrieri, S. Guatelli and M. G. Pia, INFN Genova, Italy // Authors (since 2007): S. Guatelli, University of Wollongong, Australia // -// -// -#include "G4MIRDRightTeste.hh" +#include "G4MIRDRightTeste.hh" #include "globals.hh" #include "G4SystemOfUnits.hh" #include "G4SDManager.hh" @@ -47,40 +45,28 @@ #include "G4UnionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDRightTeste::G4MIRDRightTeste() -{ -} - -G4MIRDRightTeste::~G4MIRDRightTeste() -{ - -} - - G4VPhysicalVolume* G4MIRDRightTeste::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax= 1.3*cm; G4double by= 1.5*cm; G4double cz= 2.3*cm; - G4Ellipsoid* OneTeste = new G4Ellipsoid("OneTeste", - ax, by, cz); + auto* OneTeste = new G4Ellipsoid("OneTeste", + ax, by, cz); - G4LogicalVolume* logicRightTeste = new G4LogicalVolume(OneTeste, - soft, - "logical" + volumeName, - 0, 0, 0); + auto* logicRightTeste = new G4LogicalVolume(OneTeste, + soft, + "logical" + volumeName, + nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physRightTeste = new G4PVPlacement(0, + G4VPhysicalVolume* physRightTeste = new G4PVPlacement(nullptr, G4ThreeVector(-1.4*cm,3*cm, 0*cm), "physicalRightTeste", logicRightTeste, @@ -91,9 +77,9 @@ G4VPhysicalVolume* G4MIRDRightTeste::Construct(const G4String& volumeName, G4VPh // Visualization Attributes // G4VisAttributes* RightTesteVisAtt = new G4VisAttributes(G4Colour(0.85,0.44,0.84)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* RightTesteVisAtt = new G4VisAttributes(colour); + auto* RightTesteVisAtt = new G4VisAttributes(colour); RightTesteVisAtt->SetForceSolid(wireFrame); logicRightTeste->SetVisAttributes(RightTesteVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDSkull.cc b/examples/advanced/human_phantom/src/G4MIRDSkull.cc index f0fce8996c..ff8f492e10 100644 --- a/examples/advanced/human_phantom/src/G4MIRDSkull.cc +++ b/examples/advanced/human_phantom/src/G4MIRDSkull.cc @@ -48,26 +48,17 @@ #include "G4VSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDSkull::G4MIRDSkull() -{ -} - -G4MIRDSkull::~G4MIRDSkull() -{ -} - - G4VPhysicalVolume* G4MIRDSkull::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { - G4HumanPhantomMaterial* material = new G4HumanPhantomMaterial(); + auto* material = new G4HumanPhantomMaterial(); G4cout<<"Construct "<GetName()< GetMaterial("skeleton"); + auto* skeleton = material -> GetMaterial("skeleton"); delete material; @@ -76,26 +67,26 @@ G4VPhysicalVolume* G4MIRDSkull::Construct(const G4String& volumeName,G4VPhysical G4double by = 9.8 * cm; // bout G4double cz = 8.3 * cm; //cout - G4Ellipsoid* craniumOut = new G4Ellipsoid("CraniumOut", ax, by, cz); + auto* craniumOut = new G4Ellipsoid("CraniumOut", ax, by, cz); ax = 6. * cm; //a in by = 9. * cm; //b in cz= 6.5 * cm; // cin - G4Ellipsoid* craniumIn = new G4Ellipsoid("CraniumIn", ax, by, cz); + auto* craniumIn = new G4Ellipsoid("CraniumIn", ax, by, cz); - G4SubtractionSolid* cranium = new G4SubtractionSolid("Cranium", + auto* cranium = new G4SubtractionSolid("Cranium", craniumOut, - craniumIn,0, + craniumIn, nullptr, G4ThreeVector(0.0, 0.0,1. * cm)); - G4LogicalVolume* logicSkull = new G4LogicalVolume(cranium, skeleton, + auto* logicSkull = new G4LogicalVolume(cranium, skeleton, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physSkull = new G4PVPlacement(0, + G4VPhysicalVolume* physSkull = new G4PVPlacement(nullptr, G4ThreeVector(0., 0.,7.75 * cm), "physicalSkull", logicSkull, @@ -105,9 +96,9 @@ G4VPhysicalVolume* G4MIRDSkull::Construct(const G4String& volumeName,G4VPhysical // Visualization Attributes //G4VisAttributes* SkullVisAtt = new G4VisAttributes(G4Colour(0.46,0.53,0.6)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* SkullVisAtt = new G4VisAttributes(colour); + auto* SkullVisAtt = new G4VisAttributes(colour); SkullVisAtt->SetForceSolid(wireFrame); SkullVisAtt->SetLineWidth(4.* mm); logicSkull->SetVisAttributes(SkullVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDSmallIntestine.cc b/examples/advanced/human_phantom/src/G4MIRDSmallIntestine.cc index bd9932201f..223f4e4f49 100644 --- a/examples/advanced/human_phantom/src/G4MIRDSmallIntestine.cc +++ b/examples/advanced/human_phantom/src/G4MIRDSmallIntestine.cc @@ -27,8 +27,7 @@ // Previous authors: G. Guerrieri, S. Guatelli and M. G. Pia, INFN Genova, Italy // Authors (since 2007): S. Guatelli, University of Wollongong, Australia // -// -// + #include "G4MIRDSmallIntestine.hh" #include "globals.hh" @@ -50,32 +49,21 @@ #include "G4HumanPhantomMaterial.hh" #include "G4HumanPhantomColour.hh" -G4MIRDSmallIntestine::G4MIRDSmallIntestine() -{ -} - -G4MIRDSmallIntestine::~G4MIRDSmallIntestine() -{ - -} - - G4VPhysicalVolume* G4MIRDSmallIntestine::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double boxX = 11.*cm; G4double boxY = 3.53*cm; G4double boxZ = 5*cm; - - G4Box* smallIntestineBox = new G4Box("smallIntestineBox",boxX,boxY,boxZ); + auto* smallIntestineBox = new G4Box("smallIntestineBox",boxX,boxY,boxZ); G4double tubsRmin = 0*cm; G4double tubsRmax = 11.*cm; @@ -83,33 +71,32 @@ G4VPhysicalVolume* G4MIRDSmallIntestine::Construct(const G4String& volumeName, G4double tubsSphi = 0*degree; G4double tubsDphi = 360*degree; - - G4Tubs* smallIntestineTubs = new G4Tubs("smallIntestineTubs",tubsRmin,tubsRmax,tubsZ,tubsSphi,tubsDphi); + auto* smallIntestineTubs = new G4Tubs("smallIntestineTubs",tubsRmin,tubsRmax,tubsZ,tubsSphi,tubsDphi); //G4IntersectionSolid* SmallIntestine = new G4IntersectionSolid("SmallIntestine",smallIntestineTubs,smallIntestineBox, - G4IntersectionSolid* filledSmallIntestine1 = new G4IntersectionSolid("filledSmallIntestine1",smallIntestineTubs,smallIntestineBox, - 0,G4ThreeVector(0*cm,-1.33*cm, 0*cm)); + auto* filledSmallIntestine1 = new G4IntersectionSolid("filledSmallIntestine1",smallIntestineTubs,smallIntestineBox, + nullptr,G4ThreeVector(0*cm,-1.33*cm, 0*cm)); - G4IntersectionSolid* filledSmallIntestine = new G4IntersectionSolid("filledSmallIntestine",filledSmallIntestine1,smallIntestineTubs, - 0,G4ThreeVector(0*cm,0.8*cm, 0*cm)); + auto* filledSmallIntestine = new G4IntersectionSolid("filledSmallIntestine",filledSmallIntestine1,smallIntestineTubs, + nullptr,G4ThreeVector(0*cm,0.8*cm, 0*cm)); G4double dx = 2.50*cm; // aU G4double dy = 2.50*cm; //bU G4double dz = 4.775*cm; //dzU - G4VSolid* AscendingColonUpperLargeIntestine = new G4EllipticalTube("AscendingColon",dx, dy, dz); + auto* AscendingColonUpperLargeIntestine = new G4EllipticalTube("AscendingColon",dx, dy, dz); dx = 2.50 * cm;//bt dy = 1.50 *cm;//ct dz = 10.50* cm;//x1t - G4VSolid* TraverseColonUpperLargeIntestine = new G4EllipticalTube("TraverseColon",dx, dy, dz); + auto* TraverseColonUpperLargeIntestine = new G4EllipticalTube("TraverseColon",dx, dy, dz); - G4RotationMatrix* relative_rm = new G4RotationMatrix(); + auto* relative_rm = new G4RotationMatrix(); relative_rm -> rotateX(90. * degree); //relative_rm -> rotateZ(180. * degree); relative_rm -> rotateY(90. * degree); - G4UnionSolid* upperLargeIntestine = new G4UnionSolid("UpperLargeIntestine", + auto* upperLargeIntestine = new G4UnionSolid("UpperLargeIntestine", AscendingColonUpperLargeIntestine, TraverseColonUpperLargeIntestine, relative_rm, @@ -119,27 +106,27 @@ G4VPhysicalVolume* G4MIRDSmallIntestine::Construct(const G4String& volumeName, dy = 2.13 *cm; //b dz = 7.64 *cm; //(z1-z2)/2 - G4EllipticalTube* DescendingColonLowerLargeIntestine = new G4EllipticalTube("DiscendingColon",dx, dy, dz); + auto* DescendingColonLowerLargeIntestine = new G4EllipticalTube("DiscendingColon",dx, dy, dz); - G4UnionSolid* upperlowerLargeIntestine = new G4UnionSolid("UpperLowerLargeIntestine", + auto* upperlowerLargeIntestine = new G4UnionSolid("UpperLowerLargeIntestine", upperLargeIntestine, DescendingColonLowerLargeIntestine, - 0, + nullptr, G4ThreeVector(-16.72*cm, 0.0*cm,-2.865* cm)); //,0,dzU + ct t - G4SubtractionSolid* SmallIntestine = new G4SubtractionSolid("SmallIntestine", + auto* SmallIntestine = new G4SubtractionSolid("SmallIntestine", filledSmallIntestine, upperlowerLargeIntestine, - 0, + nullptr, G4ThreeVector(8.0*cm,-0.3*cm,-2.775*cm)); - G4LogicalVolume* logicSmallIntestine = new G4LogicalVolume( SmallIntestine, + auto* logicSmallIntestine = new G4LogicalVolume( SmallIntestine, soft, "logical"+volumeName, - 0, 0, 0); - G4RotationMatrix* rm = new G4RotationMatrix(); + nullptr, nullptr, nullptr); + auto* rm = new G4RotationMatrix(); rm->rotateX(180.*degree); rm->rotateY(180.*degree); G4VPhysicalVolume* physSmallIntestine = new G4PVPlacement(rm, @@ -155,9 +142,9 @@ G4VPhysicalVolume* G4MIRDSmallIntestine::Construct(const G4String& volumeName, // Visualization Attributes //G4VisAttributes* SmallIntestineVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* SmallIntestineVisAtt = new G4VisAttributes(colour); + auto* SmallIntestineVisAtt = new G4VisAttributes(colour); SmallIntestineVisAtt->SetForceSolid(wireFrame); logicSmallIntestine->SetVisAttributes(SmallIntestineVisAtt); @@ -179,6 +166,5 @@ G4VPhysicalVolume* G4MIRDSmallIntestine::Construct(const G4String& volumeName, G4double SmallIntestineMass = (SmallIntestineVol)*SmallIntestineDensity; G4cout << "Mass of SmallIntestine = " << SmallIntestineMass/gram << " g" << G4endl; - return physSmallIntestine; } diff --git a/examples/advanced/human_phantom/src/G4MIRDSpleen.cc b/examples/advanced/human_phantom/src/G4MIRDSpleen.cc index cdad58052c..902ecca919 100644 --- a/examples/advanced/human_phantom/src/G4MIRDSpleen.cc +++ b/examples/advanced/human_phantom/src/G4MIRDSpleen.cc @@ -45,39 +45,28 @@ #include "G4Ellipsoid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDSpleen::G4MIRDSpleen() -{ -} - -G4MIRDSpleen::~G4MIRDSpleen() -{ - -} - - G4VPhysicalVolume* G4MIRDSpleen::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { - G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax= 3.5 *cm; G4double by= 2. *cm; G4double cz= 6. * cm; - G4Ellipsoid* spleen = new G4Ellipsoid("spleen", ax, by, cz); + auto* spleen = new G4Ellipsoid("spleen", ax, by, cz); - G4LogicalVolume* logicSpleen = new G4LogicalVolume(spleen, soft, + auto* logicSpleen = new G4LogicalVolume(spleen, soft, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physSpleen = new G4PVPlacement(0, + G4VPhysicalVolume* physSpleen = new G4PVPlacement(nullptr, G4ThreeVector(11. *cm, 3. *cm, 2.*cm), // ztrans = half trunk lenght - z0 "physicalSpleen", logicSpleen, @@ -85,13 +74,11 @@ G4VPhysicalVolume* G4MIRDSpleen::Construct(const G4String& volumeName,G4VPhysica false, 0, true); - - // Visualization Attributes // G4VisAttributes* SpleenVisAtt = new G4VisAttributes(G4Colour(0.41,0.41,0.41)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* SpleenVisAtt = new G4VisAttributes(colour); + auto* SpleenVisAtt = new G4VisAttributes(colour); SpleenVisAtt->SetForceSolid(wireFrame); logicSpleen->SetVisAttributes(SpleenVisAtt); @@ -112,8 +99,6 @@ G4VPhysicalVolume* G4MIRDSpleen::Construct(const G4String& volumeName,G4VPhysica // Testing Mass G4double SpleenMass = (SpleenVol)*SpleenDensity; G4cout << "Mass of Spleen = " << SpleenMass/gram << " g" << G4endl; - - - + return physSpleen; } diff --git a/examples/advanced/human_phantom/src/G4MIRDStomach.cc b/examples/advanced/human_phantom/src/G4MIRDStomach.cc index 387f348f0b..33613761be 100644 --- a/examples/advanced/human_phantom/src/G4MIRDStomach.cc +++ b/examples/advanced/human_phantom/src/G4MIRDStomach.cc @@ -46,24 +46,13 @@ #include "G4SubtractionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDStomach::G4MIRDStomach() -{ -} - -G4MIRDStomach::~G4MIRDStomach() -{ -} - - G4VPhysicalVolume* G4MIRDStomach::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { - G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax = 4. * cm; @@ -72,7 +61,7 @@ G4VPhysicalVolume* G4MIRDStomach::Construct(const G4String& volumeName,G4VPhysic //G4double zcut1 = -8. * cm; //G4double zcut2 = 8* cm; - G4Ellipsoid* stomach_out = new G4Ellipsoid("stomach_out", + auto* stomach_out = new G4Ellipsoid("stomach_out", ax, by, cz); // zcut1, zcut2); /* @@ -86,11 +75,11 @@ G4VPhysicalVolume* G4MIRDStomach::Construct(const G4String& volumeName,G4VPhysic G4SubtractionSolid* stomach = new G4SubtractionSolid("stomach",stomach_out, cavity); */ - G4LogicalVolume* logicStomach = new G4LogicalVolume(stomach_out, soft, - "logical" + volumeName, 0, 0, 0); + auto* logicStomach = new G4LogicalVolume(stomach_out, soft, + "logical" + volumeName, nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physStomach = new G4PVPlacement(0,G4ThreeVector(8. *cm,-4. * cm, 0), + auto* physStomach = new G4PVPlacement(nullptr,G4ThreeVector(8. *cm,-4. * cm, 0), "physicalStomach", logicStomach, mother, @@ -99,10 +88,10 @@ G4VPhysicalVolume* G4MIRDStomach::Construct(const G4String& volumeName,G4VPhysic // Visualization Attributes - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* StomachVisAtt = new G4VisAttributes(colour); + auto* StomachVisAtt = new G4VisAttributes(colour); StomachVisAtt->SetForceSolid(wireFrame); logicStomach->SetVisAttributes(StomachVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDThymus.cc b/examples/advanced/human_phantom/src/G4MIRDThymus.cc index 12326adde9..a8dd6dd38a 100644 --- a/examples/advanced/human_phantom/src/G4MIRDThymus.cc +++ b/examples/advanced/human_phantom/src/G4MIRDThymus.cc @@ -47,40 +47,30 @@ #include "G4UnionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDThymus::G4MIRDThymus() -{ -} - -G4MIRDThymus::~G4MIRDThymus() -{ - -} - - G4VPhysicalVolume* G4MIRDThymus::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax= 3. *cm; G4double by= 0.5*cm; G4double cz= 4.*cm; - G4Ellipsoid* Thymus = new G4Ellipsoid("Thymus", + auto* Thymus = new G4Ellipsoid("Thymus", ax, by, cz); - G4LogicalVolume* logicThymus = new G4LogicalVolume(Thymus, + auto* logicThymus = new G4LogicalVolume(Thymus, soft, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physThymus = new G4PVPlacement(0, + G4VPhysicalVolume* physThymus = new G4PVPlacement(nullptr, G4ThreeVector(2.*cm,-6.*cm, 25.5*cm), "physicalThymus", logicThymus, @@ -88,13 +78,11 @@ G4VPhysicalVolume* G4MIRDThymus::Construct(const G4String& volumeName, G4VPhysic false, 0, true); - - // Visualization Attributes // G4VisAttributes* ThymusVisAtt = new G4VisAttributes(G4Colour(0.85,0.44,0.84)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* ThymusVisAtt = new G4VisAttributes(colour); + auto* ThymusVisAtt = new G4VisAttributes(colour); ThymusVisAtt->SetForceSolid(wireFrame); logicThymus->SetVisAttributes(ThymusVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDThyroid.cc b/examples/advanced/human_phantom/src/G4MIRDThyroid.cc index 6e25459299..1696b4d3ff 100644 --- a/examples/advanced/human_phantom/src/G4MIRDThyroid.cc +++ b/examples/advanced/human_phantom/src/G4MIRDThyroid.cc @@ -46,24 +46,14 @@ #include "G4SubtractionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDThyroid::G4MIRDThyroid() -{ -} - -G4MIRDThyroid::~G4MIRDThyroid() -{ -} - - G4VPhysicalVolume* G4MIRDThyroid::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { - - + G4cout << "Construct " << volumeName <<" with mother "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double z= 4.20*cm; //c thickness = c, @@ -72,53 +62,51 @@ G4VPhysicalVolume* G4MIRDThyroid::Construct(const G4String& volumeName,G4VPhysic G4double startphi = 0. * degree; G4double deltaphi= 180. * degree; // y< y0 - G4Tubs* LobOfThyroidOut = new G4Tubs("LobOfThyroidOut", + auto* LobOfThyroidOut = new G4Tubs("LobOfThyroidOut", rmin, rmax,z/2., startphi, deltaphi); z= 4.50*cm; // c thickness + something rmax= 0.83 * cm; //r deltaphi= 360. * degree; - G4Tubs* LobOfThyroidIn = new G4Tubs("LobOfThyroidIn", + auto* LobOfThyroidIn = new G4Tubs("LobOfThyroidIn", rmin, rmax,z/2., startphi, deltaphi); G4double xx = 3.72*cm; G4double yy= 3.72*cm; G4double zz= 20.00*cm; - G4Box* SubtrThyroid = new G4Box("SubtrThyroid", + auto* SubtrThyroid = new G4Box("SubtrThyroid", xx/2., yy/2., zz/2.); // subtraction of the two tubs - G4SubtractionSolid* FirstThyroid = new G4SubtractionSolid("FirstThyroid", + auto* FirstThyroid = new G4SubtractionSolid("FirstThyroid", LobOfThyroidOut, LobOfThyroidIn); - G4RotationMatrix* relative_matrix = new G4RotationMatrix(); + auto* relative_matrix = new G4RotationMatrix(); relative_matrix -> rotateX(-50.* degree); - G4SubtractionSolid* SecondThyroid = new G4SubtractionSolid("SecondThyroid", + auto* SecondThyroid = new G4SubtractionSolid("SecondThyroid", FirstThyroid, SubtrThyroid, relative_matrix, G4ThreeVector(0.0 *cm,0.0 *cm, 4.20*cm)); - G4RotationMatrix* relative_matrix_2 = new G4RotationMatrix(); + auto* relative_matrix_2 = new G4RotationMatrix(); relative_matrix_2 -> rotateX(50.* degree); - G4SubtractionSolid* thyroid = new G4SubtractionSolid("SecondThyroid", + auto* thyroid = new G4SubtractionSolid("SecondThyroid", SecondThyroid, SubtrThyroid, relative_matrix_2, G4ThreeVector(0.0 *cm,0.0 *cm, -5.40*cm)); - - - G4LogicalVolume* logicThyroid = new G4LogicalVolume(thyroid, soft, + auto* logicThyroid = new G4LogicalVolume(thyroid, soft, "ThyroidVolume", - 0, 0, 0); + nullptr, nullptr, nullptr); - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* rm = new G4RotationMatrix(); rm->rotateZ(180.*degree); G4VPhysicalVolume* physThyroid = new G4PVPlacement(rm, // G4ThreeVector(0.0*cm,-3.91*cm, -5.925*cm),//y0 @@ -131,9 +119,9 @@ G4VPhysicalVolume* G4MIRDThyroid::Construct(const G4String& volumeName,G4VPhysic // Visualization Attributes - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* ThyroidVisAtt = new G4VisAttributes(colour); + auto* ThyroidVisAtt = new G4VisAttributes(colour); ThyroidVisAtt->SetForceSolid(wireFrame); logicThyroid->SetVisAttributes(ThyroidVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MIRDTrunk.cc b/examples/advanced/human_phantom/src/G4MIRDTrunk.cc index eb83d32624..7194d3449b 100644 --- a/examples/advanced/human_phantom/src/G4MIRDTrunk.cc +++ b/examples/advanced/human_phantom/src/G4MIRDTrunk.cc @@ -43,25 +43,15 @@ #include "G4PVPlacement.hh" #include "G4HumanPhantomColour.hh" -G4MIRDTrunk::G4MIRDTrunk() -{ -} - -G4MIRDTrunk::~G4MIRDTrunk() -{ - -} - G4VPhysicalVolume* G4MIRDTrunk::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame,G4bool ) { - - G4HumanPhantomMaterial* material = new G4HumanPhantomMaterial(); + auto* material = new G4HumanPhantomMaterial(); G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; @@ -71,13 +61,13 @@ G4VPhysicalVolume* G4MIRDTrunk::Construct(const G4String& volumeName, G4VPhysica G4double dy = 10. * cm; G4double dz = 35. * cm; - G4EllipticalTube* trunk = new G4EllipticalTube("Trunk",dx, dy, dz); + auto* trunk = new G4EllipticalTube("Trunk",dx, dy, dz); - G4LogicalVolume* logicTrunk = new G4LogicalVolume(trunk, soft, + auto* logicTrunk = new G4LogicalVolume(trunk, soft, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); // Define rotation and position here! - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* rm = new G4RotationMatrix(); rm->rotateX(180.*degree); rm->rotateY(180.*degree); G4VPhysicalVolume* physTrunk = new G4PVPlacement(rm, @@ -88,13 +78,10 @@ G4VPhysicalVolume* G4MIRDTrunk::Construct(const G4String& volumeName, G4VPhysica mother, false, 0, true); - - - // Visualization Attributes - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* TrunkVisAtt = new G4VisAttributes(colour); + auto* TrunkVisAtt = new G4VisAttributes(colour); TrunkVisAtt->SetForceSolid(wireFrame); logicTrunk->SetVisAttributes(TrunkVisAtt); @@ -115,7 +102,6 @@ G4VPhysicalVolume* G4MIRDTrunk::Construct(const G4String& volumeName, G4VPhysica // Testing Mass G4double TrunkMass = (TrunkVol)*TrunkDensity; G4cout << "Mass of Trunk = " << TrunkMass/gram << " g" << G4endl; - return physTrunk; } diff --git a/examples/advanced/human_phantom/src/G4MIRDUpperLargeIntestine.cc b/examples/advanced/human_phantom/src/G4MIRDUpperLargeIntestine.cc index 333b39ac14..27b065e08d 100644 --- a/examples/advanced/human_phantom/src/G4MIRDUpperLargeIntestine.cc +++ b/examples/advanced/human_phantom/src/G4MIRDUpperLargeIntestine.cc @@ -45,15 +45,6 @@ #include "G4HumanPhantomMaterial.hh" #include "G4HumanPhantomColour.hh" -G4MIRDUpperLargeIntestine::G4MIRDUpperLargeIntestine() -{ -} - -G4MIRDUpperLargeIntestine::~G4MIRDUpperLargeIntestine() -{ -} - - G4VPhysicalVolume* G4MIRDUpperLargeIntestine::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName @@ -61,38 +52,38 @@ G4VPhysicalVolume* G4MIRDUpperLargeIntestine::Construct(const G4String& volumeNa { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double dx = 2.5 * cm; // aU G4double dy = 2.5* cm; //bU G4double dz = 4.775 * cm; //dzU - G4VSolid* AscendingColonUpperLargeIntestine = new G4EllipticalTube("AscendingColon",dx, dy, dz); + auto* AscendingColonUpperLargeIntestine = new G4EllipticalTube("AscendingColon",dx, dy, dz); dx = 2.5 * cm;//bt dy = 1.5 *cm;//ct dz = 10.5* cm;//x1t - G4VSolid* TraverseColonUpperLargeIntestine = new G4EllipticalTube("TraverseColon",dx, dy, dz); + auto* TraverseColonUpperLargeIntestine = new G4EllipticalTube("TraverseColon",dx, dy, dz); - G4RotationMatrix* relative_rm = new G4RotationMatrix(); + auto* relative_rm = new G4RotationMatrix(); relative_rm -> rotateX(90. * degree); relative_rm -> rotateZ(0. * degree); relative_rm -> rotateY(90. * degree); - G4UnionSolid* upperLargeIntestine = new G4UnionSolid("UpperLargeIntestine", + auto* upperLargeIntestine = new G4UnionSolid("UpperLargeIntestine", AscendingColonUpperLargeIntestine, TraverseColonUpperLargeIntestine, relative_rm, G4ThreeVector(8.0 *cm, 0.0,6.275 * cm)); //,0,dzU + ct transverse - G4LogicalVolume* logicUpperLargeIntestine = new G4LogicalVolume(upperLargeIntestine, soft, + auto* logicUpperLargeIntestine = new G4LogicalVolume(upperLargeIntestine, soft, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); - G4VPhysicalVolume* physUpperLargeIntestine = new G4PVPlacement(0, + G4VPhysicalVolume* physUpperLargeIntestine = new G4PVPlacement(nullptr, G4ThreeVector(-8.0 * cm, -2.36 *cm,-15.775 *cm), "physicalUpperLargeIntestine", //xo, yo, zo ascending colon logicUpperLargeIntestine, @@ -100,13 +91,12 @@ G4VPhysicalVolume* G4MIRDUpperLargeIntestine::Construct(const G4String& volumeNa false, 0, true); - // Visualization Attributes // G4VisAttributes* UpperLargeIntestineVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* UpperLargeIntestineVisAtt = new G4VisAttributes(colour); + auto* UpperLargeIntestineVisAtt = new G4VisAttributes(colour); UpperLargeIntestineVisAtt->SetForceSolid(wireFrame); logicUpperLargeIntestine->SetVisAttributes(UpperLargeIntestineVisAtt); @@ -127,7 +117,6 @@ G4VPhysicalVolume* G4MIRDUpperLargeIntestine::Construct(const G4String& volumeNa // Testing Mass G4double UpperLargeIntestineMass = (UpperLargeIntestineVol)*UpperLargeIntestineDensity; G4cout << "Mass of UpperLargeIntestine = " << UpperLargeIntestineMass/gram << " g" << G4endl; - - + return physUpperLargeIntestine; } diff --git a/examples/advanced/human_phantom/src/G4MIRDUpperSpine.cc b/examples/advanced/human_phantom/src/G4MIRDUpperSpine.cc index 91b0982927..3aff7de213 100644 --- a/examples/advanced/human_phantom/src/G4MIRDUpperSpine.cc +++ b/examples/advanced/human_phantom/src/G4MIRDUpperSpine.cc @@ -44,27 +44,16 @@ #include "G4SubtractionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDUpperSpine::G4MIRDUpperSpine() -{ -} - -G4MIRDUpperSpine::~G4MIRDUpperSpine() -{ - -} - - G4VPhysicalVolume* G4MIRDUpperSpine::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName , G4bool wireFrame,G4bool) { - G4HumanPhantomMaterial* material = new G4HumanPhantomMaterial(); + auto* material = new G4HumanPhantomMaterial(); G4cout<<"Construct "<GetName()< GetMaterial("skeleton"); + auto* skeleton = material -> GetMaterial("skeleton"); delete material; @@ -72,25 +61,25 @@ G4VPhysicalVolume* G4MIRDUpperSpine::Construct(const G4String& volumeName, G4double dy = 2.5 *cm; G4double dz = 4.25*cm; - G4EllipticalTube* upperSpine = new G4EllipticalTube("UpperSpine",dx, dy, dz); + auto* upperSpine = new G4EllipticalTube("UpperSpine",dx, dy, dz); G4double xx = 20. * cm; G4double yy = 10. * cm; G4double zz = 5. * cm; - G4Box* subtraction = new G4Box("box", xx/2., yy/2., zz/2.); + auto* subtraction = new G4Box("box", xx/2., yy/2., zz/2.); - G4RotationMatrix* matrix = new G4RotationMatrix(); + auto* matrix = new G4RotationMatrix(); matrix -> rotateX(-25.* deg); - G4SubtractionSolid* upper_spine = new G4SubtractionSolid("upperspine",upperSpine, subtraction, + auto* upper_spine = new G4SubtractionSolid("upperspine",upperSpine, subtraction, matrix, G4ThreeVector(0., -2.5 * cm, 5.5* cm)); - G4LogicalVolume* logicUpperSpine = new G4LogicalVolume(upper_spine, skeleton, + auto* logicUpperSpine = new G4LogicalVolume(upper_spine, skeleton, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physUpperSpine = new G4PVPlacement(0, + G4VPhysicalVolume* physUpperSpine = new G4PVPlacement(nullptr, G4ThreeVector(0.0, 5.5 *cm, -3.5 *cm), "physicalUpperSpine", logicUpperSpine, @@ -100,9 +89,9 @@ G4VPhysicalVolume* G4MIRDUpperSpine::Construct(const G4String& volumeName, // Visualization Attributes //G4VisAttributes* UpperSpineVisAtt = new G4VisAttributes(G4Colour(0.46,0.53,0.6)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* UpperSpineVisAtt = new G4VisAttributes(colour); + auto* UpperSpineVisAtt = new G4VisAttributes(colour); UpperSpineVisAtt->SetForceSolid(wireFrame); logicUpperSpine->SetVisAttributes(UpperSpineVisAtt); @@ -125,6 +114,5 @@ G4VPhysicalVolume* G4MIRDUpperSpine::Construct(const G4String& volumeName, G4double UpperSpineMass = (UpperSpineVol)*UpperSpineDensity; G4cout << "Mass of UpperSpine = " << UpperSpineMass/gram << " g" << G4endl; - return physUpperSpine; } diff --git a/examples/advanced/human_phantom/src/G4MIRDUrinaryBladder.cc b/examples/advanced/human_phantom/src/G4MIRDUrinaryBladder.cc index 44474ccc7a..6da5b76ad2 100644 --- a/examples/advanced/human_phantom/src/G4MIRDUrinaryBladder.cc +++ b/examples/advanced/human_phantom/src/G4MIRDUrinaryBladder.cc @@ -24,12 +24,6 @@ // ******************************************************************** // // Authors: S. Guatelli , M. G. Pia, INFN Genova and F. Ambroglini INFN Perugia, Italy -// -// Based on code developed by the undergraduate student G. Guerrieri -// Note: this is a preliminary beta-version of the code; an improved -// version will be distributed in the next Geant4 public release, compliant -// with the design in a forthcoming publication, and subject to a -// design and code review. // #include "G4MIRDUrinaryBladder.hh" @@ -46,44 +40,35 @@ #include "G4SubtractionSolid.hh" #include "G4HumanPhantomColour.hh" -G4MIRDUrinaryBladder::G4MIRDUrinaryBladder() -{ -} - -G4MIRDUrinaryBladder::~G4MIRDUrinaryBladder() -{ -} - - G4VPhysicalVolume* G4MIRDUrinaryBladder::Construct(const G4String& volumeName, G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax = 4.958*cm; G4double by= 3.458 *cm; G4double cz= 3.458 *cm; - G4Ellipsoid* bladder = new G4Ellipsoid("bladder_out",ax, by, cz); + auto* bladder = new G4Ellipsoid("bladder_out",ax, by, cz); ax = 4.706 * cm; by = 3.206 * cm; cz = 3.206 * cm; - G4Ellipsoid* inner = new G4Ellipsoid("innerBladder", ax, by, cz); + auto* inner = new G4Ellipsoid("innerBladder", ax, by, cz); - G4SubtractionSolid* totalBladder = new G4SubtractionSolid("bladder", bladder, inner); + auto* totalBladder = new G4SubtractionSolid("bladder", bladder, inner); - G4LogicalVolume* logicUrinaryBladder = new G4LogicalVolume(totalBladder, soft, + auto* logicUrinaryBladder = new G4LogicalVolume(totalBladder, soft, "logical" + volumeName, - 0, 0, 0); + nullptr, nullptr, nullptr); // Define rotation and position here! - G4VPhysicalVolume* physUrinaryBladder = new G4PVPlacement(0,G4ThreeVector(0 *cm, -4.5 *cm,-27. *cm), + G4VPhysicalVolume* physUrinaryBladder = new G4PVPlacement(nullptr,G4ThreeVector(0 *cm, -4.5 *cm,-27. *cm), "physicalUrinaryBladder", logicUrinaryBladder, mother, @@ -92,9 +77,9 @@ G4VPhysicalVolume* G4MIRDUrinaryBladder::Construct(const G4String& volumeName, G // Visualization Attributes - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* UrinaryBladderVisAtt = new G4VisAttributes(colour); + auto* UrinaryBladderVisAtt = new G4VisAttributes(colour); //G4VisAttributes* UrinaryBladderVisAtt = new G4VisAttributes(G4Colour(0.85,0.65,0.125)); UrinaryBladderVisAtt->SetForceSolid(wireFrame); diff --git a/examples/advanced/human_phantom/src/G4MIRDUterus.cc b/examples/advanced/human_phantom/src/G4MIRDUterus.cc index 88e96a79c7..c74ea211b1 100644 --- a/examples/advanced/human_phantom/src/G4MIRDUterus.cc +++ b/examples/advanced/human_phantom/src/G4MIRDUterus.cc @@ -44,23 +44,13 @@ #include "G4PVPlacement.hh" #include "G4HumanPhantomColour.hh" -G4MIRDUterus::G4MIRDUterus() -{ -} - -G4MIRDUterus::~G4MIRDUterus() -{ -} - - G4VPhysicalVolume* G4MIRDUterus::Construct(const G4String& volumeName,G4VPhysicalVolume* mother, const G4String& colourName, G4bool wireFrame, G4bool) { - G4cout<<"Construct "<GetName()< GetMaterial("soft_tissue"); + auto* material = new G4HumanPhantomMaterial(); + auto* soft = material -> GetMaterial("soft_tissue"); delete material; G4double ax= 2.5*cm; //a @@ -70,18 +60,18 @@ G4VPhysicalVolume* G4MIRDUterus::Construct(const G4String& volumeName,G4VPhysica G4double zcut1= -5.* cm; //-b G4double zcut2= 2.5*cm; //y1-y0 - G4Ellipsoid* uterus = new G4Ellipsoid("Uterus", + auto* uterus = new G4Ellipsoid("Uterus", ax, by, cz, zcut1, zcut2); - G4LogicalVolume* logicUterus = new G4LogicalVolume(uterus, - soft, - "logical" + volumeName, - 0, 0, 0); + auto* logicUterus = new G4LogicalVolume(uterus, + soft, + "logical" + volumeName, + nullptr, nullptr, nullptr); // Define rotation and position here! - G4RotationMatrix* rm = new G4RotationMatrix(); + auto* rm = new G4RotationMatrix(); rm->rotateX(90.*degree); G4VPhysicalVolume* physUterus = new G4PVPlacement(rm, G4ThreeVector(0. *cm, 2*cm,-21 *cm), @@ -91,14 +81,12 @@ G4VPhysicalVolume* G4MIRDUterus::Construct(const G4String& volumeName,G4VPhysica false, 0, true); - - // Visualization Attributes // G4VisAttributes* UterusVisAtt = new G4VisAttributes(G4Colour(0.85,0.44,0.84)); - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); + auto* colourPointer = new G4HumanPhantomColour(); G4Colour colour = colourPointer -> GetColour(colourName); - G4VisAttributes* UterusVisAtt = new G4VisAttributes(colour); + auto* UterusVisAtt = new G4VisAttributes(colour); UterusVisAtt->SetForceSolid(wireFrame); logicUterus->SetVisAttributes(UterusVisAtt); diff --git a/examples/advanced/human_phantom/src/G4MaleBuilder.cc b/examples/advanced/human_phantom/src/G4MaleBuilder.cc index 3e460e5b42..ea54e1192b 100644 --- a/examples/advanced/human_phantom/src/G4MaleBuilder.cc +++ b/examples/advanced/human_phantom/src/G4MaleBuilder.cc @@ -32,48 +32,43 @@ //#include "G4MIRDBodyFactory.hh" //#include "G4ORNLMaleBodyFactory.hh" #include "G4VBodyFactory.hh" -G4MaleBuilder::G4MaleBuilder() -{ -} G4MaleBuilder::~G4MaleBuilder() { - delete body; + delete fBody; } void G4MaleBuilder::BuildMaleGenitalia(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - -if(motherVolume == 0) +if (fMotherVolume == nullptr) G4Exception("G4PhantomBuilder::BuildMaleGenitalia()", "human_phantom0048", FatalException, "The world volume is missing !!!!!"); - G4cout <<"MotherVolume: " << motherVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fMotherVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - maleGenitaliaVolume = body -> CreateOrgan("MaleGenitalia", motherVolume, colourName, solidVis, sensitivity); - + fMaleGenitaliaVolume = fBody -> CreateOrgan("MaleGenitalia", fMotherVolume, colourName, solidVis, sensitivity); } void G4MaleBuilder::BuildLeftTeste(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { - if (maleGenitaliaVolume == 0) + if (fMaleGenitaliaVolume == nullptr) G4Exception("G4FemaleBuilder::BuildLeftTeste()", "human_phantom0049", FatalException, "The maleGenitaliaVolume volume is missing !!!!!"); - G4cout <<"MotherVolume: " << motherVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fMotherVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - body -> CreateOrgan("LeftTeste",maleGenitaliaVolume, colourName,solidVis, sensitivity); + fBody -> CreateOrgan("LeftTeste", fMaleGenitaliaVolume, colourName,solidVis, sensitivity); } void G4MaleBuilder::BuildRightTeste(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { - if (maleGenitaliaVolume == 0) + if (fMaleGenitaliaVolume == nullptr) G4Exception("G4FemaleBuilder::BuildRightTeste()", "human_phantom0050", FatalException, "The maleGenitaliaVolume volume is missing !!!!!"); - G4cout <<"MotherVolume: " << motherVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fMotherVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - body -> CreateOrgan("RightTeste",maleGenitaliaVolume, colourName,solidVis, sensitivity); + fBody -> CreateOrgan("RightTeste", fMaleGenitaliaVolume, colourName,solidVis, sensitivity); } diff --git a/examples/advanced/human_phantom/src/G4PhantomBuilder.cc b/examples/advanced/human_phantom/src/G4PhantomBuilder.cc index 5b354402b2..744012161b 100644 --- a/examples/advanced/human_phantom/src/G4PhantomBuilder.cc +++ b/examples/advanced/human_phantom/src/G4PhantomBuilder.cc @@ -41,361 +41,352 @@ #include "G4Colour.hh" #include "G4VisAttributes.hh" -G4PhantomBuilder::G4PhantomBuilder(): model("MIRD") +G4PhantomBuilder::G4PhantomBuilder(): fModel("MIRD") { // sex can be "female" or "male" - body = 0; - motherVolume = 0; - headVolume = 0; - trunkVolume = 0; - leftLegVolume =0; - rightLegVolume =0; - maleGenitaliaVolume = 0; + fBody = nullptr; + fMotherVolume = nullptr; + fHeadVolume = nullptr; + fTrunkVolume = nullptr; + fLeftLegVolume =nullptr; + fRightLegVolume = nullptr; + fMaleGenitaliaVolume = nullptr; } -G4PhantomBuilder::~G4PhantomBuilder() -{ -} void G4PhantomBuilder::BuildTrunk(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (motherVolume == 0) + if (fMotherVolume == nullptr) G4Exception("G4PhantomBuilder::BuildTrunk()", "human_phantom0014", FatalException, "The world volume is missing !!!!!"); - G4cout <<"MotherVolume: " << motherVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fMotherVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - trunkVolume = body -> CreateOrgan("Trunk", motherVolume, colourName, solidVis, sensitivity); + fTrunkVolume = fBody -> CreateOrgan("Trunk", fMotherVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildLeftLeg(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (motherVolume == 0) + if (fMotherVolume == nullptr) G4Exception("G4PhantomBuilder::BuildLeftLeg()", "human_phantom0015", FatalException, "The world volume is missing !!!!!"); - G4cout <<"MotherVolume: " << motherVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fMotherVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - leftLegVolume = body -> CreateOrgan("LeftLeg", motherVolume, colourName, solidVis, sensitivity); + fLeftLegVolume = fBody -> CreateOrgan("LeftLeg", fMotherVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildRightLeg(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (motherVolume == 0) + if (fMotherVolume == nullptr) G4Exception("G4PhantomBuilder::BuildRightLeg()", "human_phantom0016", FatalException, "The world volume is missing !!!!!"); - G4cout <<"MotherVolume: " << motherVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fMotherVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - rightLegVolume = body -> CreateOrgan("RightLeg", motherVolume, colourName, solidVis, sensitivity); + fRightLegVolume = fBody -> CreateOrgan("RightLeg", fMotherVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildLeftLegBone(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (leftLegVolume == 0) + if (fLeftLegVolume == nullptr) G4Exception("G4PhantomBuilder::BuildLeftLegBone()", "human_phantom0017", FatalException, "The left leg volume is missing !!!!!"); - G4cout <<"MotherVolume: " << leftLegVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fLeftLegVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - body -> CreateOrgan("LeftLegBone", leftLegVolume,colourName, solidVis, sensitivity); + fBody -> CreateOrgan("LeftLegBone", fLeftLegVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildRightLegBone(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildRightLegBone()", "human_phantom0018", FatalException, "The right leg volume is missing !!!!!"); - G4cout <<"MotherVolume: " << rightLegVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fRightLegVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - body -> CreateOrgan("RightLegBone", rightLegVolume, colourName, solidVis, sensitivity); + fBody -> CreateOrgan("RightLegBone", fRightLegVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildLeftArmBone(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildLeftArmBone()", "human_phantom0019", FatalException, "The world volume is missing !!!!!"); - G4cout <<"MotherVolume: " << trunkVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fTrunkVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - body -> CreateOrgan("LeftArmBone" ,trunkVolume,colourName,solidVis, sensitivity); + fBody -> CreateOrgan("LeftArmBone", fTrunkVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildRightArmBone(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildRightArmBone()", "human_phantom0020", FatalException, "The trunk volume is missing !!!!!"); - G4cout <<"MotherVolume: " << trunkVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fTrunkVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - body -> CreateOrgan("RightArmBone",trunkVolume,colourName,solidVis, sensitivity); + fBody -> CreateOrgan("RightArmBone", fTrunkVolume,colourName,solidVis, sensitivity); } void G4PhantomBuilder::BuildLeftScapula(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildLeftScapula()", "human_phantom0021", FatalException, "The trunk volume is missing !!!!!"); - G4cout <<"MotherVolume: " << trunkVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fTrunkVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - body -> CreateOrgan("LeftScapula",trunkVolume,colourName,solidVis, sensitivity); + fBody -> CreateOrgan("LeftScapula",fTrunkVolume,colourName,solidVis, sensitivity); } void G4PhantomBuilder::BuildRightScapula(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildRightScapula()", "human_phantom0022", FatalException, "The trunk volume is missing !!!!!"); - G4cout <<"MotherVolume: " << trunkVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fTrunkVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - body -> CreateOrgan("RightScapula",trunkVolume,colourName,solidVis, sensitivity); + fBody -> CreateOrgan("RightScapula",fTrunkVolume,colourName,solidVis, sensitivity); } void G4PhantomBuilder::BuildLeftClavicle(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildLeftClavicle()", "human_phantom0023", FatalException, "The trunk volume is missing !!!!!"); - G4cout <<"MotherVolume: " << trunkVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fTrunkVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - body -> CreateOrgan("LeftClavicle",trunkVolume,colourName,solidVis, sensitivity); + fBody -> CreateOrgan("LeftClavicle", fTrunkVolume,colourName,solidVis, sensitivity); } void G4PhantomBuilder::BuildRightClavicle(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildRightClavicle()", "human_phantom0024", FatalException, "The trunk volume is missing !!!!!"); - G4cout <<"MotherVolume: " << trunkVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fTrunkVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - body -> CreateOrgan("RightClavicle",trunkVolume,colourName,solidVis, sensitivity); + fBody -> CreateOrgan("RightClavicle",fTrunkVolume,colourName,solidVis, sensitivity); } - void G4PhantomBuilder::BuildHead(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (motherVolume == 0) + if (fMotherVolume == nullptr) G4Exception("G4PhantomBuilder::BuildHead()", "human_phantom0025", FatalException, "The mother volume is missing !!!!!"); - G4cout <<"MotherVolume: " << motherVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fMotherVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - headVolume = body -> CreateOrgan("Head",motherVolume, colourName, solidVis, sensitivity); + fHeadVolume = fBody -> CreateOrgan("Head", fMotherVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildSkull(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (headVolume == 0) + if (fHeadVolume == nullptr) G4Exception("G4PhantomBuilder::BuildSkull()", "human_phantom0026", FatalException, "The head volume is missing !!!!!"); - G4cout <<"MotherVolume: " << headVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fHeadVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - body -> CreateOrgan( "Skull",headVolume, colourName, solidVis, sensitivity); + fBody -> CreateOrgan( "Skull", fHeadVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildUpperSpine(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (headVolume == 0) + if (fHeadVolume == nullptr) G4Exception("G4PhantomBuilder::BuildUpperSpine()", "human_phantom0027", FatalException, "The head volume is missing !!!!!"); - G4cout <<"MotherVolume: " << headVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fHeadVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - body -> CreateOrgan("UpperSpine",headVolume,colourName, solidVis, sensitivity); + fBody -> CreateOrgan("UpperSpine", fHeadVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildMiddleLowerSpine(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildMiddleLowerSpine()", "human_phantom0028", FatalException, "The trunk volume is missing !!!!!"); - G4cout <<"MotherVolume: " << trunkVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fTrunkVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - body -> CreateOrgan("MiddleLowerSpine",trunkVolume, colourName, solidVis, sensitivity); + fBody -> CreateOrgan("MiddleLowerSpine",fTrunkVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildPelvis(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildPelvis()", "human_phantom0029", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan( "Pelvis",trunkVolume, colourName, solidVis, sensitivity); + fBody -> CreateOrgan( "Pelvis", fTrunkVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildBrain(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (headVolume == 0) + if (fHeadVolume == nullptr) G4Exception("G4PhantomBuilder::BuildBrain()", "human_phantom0030", FatalException, "The head volume is missing !!!!!"); - body -> CreateOrgan("Brain",headVolume, colourName, solidVis, sensitivity); + fBody -> CreateOrgan("Brain", fHeadVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildHeart(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildHeart()", "human_phantom0031", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Heart", trunkVolume,colourName, solidVis, sensitivity); + fBody -> CreateOrgan("Heart", fTrunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildLeftLung(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildLeftLung()", "human_phantom0032", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("LeftLung",trunkVolume,colourName,solidVis, sensitivity); + fBody -> CreateOrgan("LeftLung", fTrunkVolume,colourName,solidVis, sensitivity); } void G4PhantomBuilder::BuildRightLung(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildRightLung()", "human_phantom0033", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("RightLung",trunkVolume,colourName, solidVis, sensitivity); + fBody -> CreateOrgan("RightLung", fTrunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildStomach(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildStomach()", "human_phantom0034", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Stomach",trunkVolume,colourName, solidVis, sensitivity); + fBody -> CreateOrgan("Stomach", fTrunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildRibCage(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildRibCage()", "human_phantom0035", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("RibCage",trunkVolume,colourName, solidVis, sensitivity); + fBody -> CreateOrgan("RibCage", fTrunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildSpleen(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildSpleen()", "human_phantom0036", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Spleen", trunkVolume,colourName, solidVis, sensitivity); + fBody -> CreateOrgan("Spleen", fTrunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildUpperLargeIntestine(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildUpperLargeIntestine()", "human_phantom0037", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("UpperLargeIntestine",trunkVolume, colourName, solidVis, sensitivity); + fBody -> CreateOrgan("UpperLargeIntestine", fTrunkVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildLowerLargeIntestine(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildLowerLargeIntestine()", "human_phantom0038", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("LowerLargeIntestine", trunkVolume, colourName,solidVis, sensitivity); + fBody -> CreateOrgan("LowerLargeIntestine", fTrunkVolume, colourName,solidVis, sensitivity); } void G4PhantomBuilder::BuildSmallIntestine(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildSamllIntestine()", "human_phantom0039", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("SmallIntestine",trunkVolume, colourName, solidVis, sensitivity); + fBody -> CreateOrgan("SmallIntestine", fTrunkVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildLeftKidney(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildLeftKidney()", "human_phantom0040", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("LeftKidney", trunkVolume,colourName, solidVis, sensitivity); + fBody -> CreateOrgan("LeftKidney", fTrunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildRightKidney(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildRightKidney()", "human_phantom0041", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("RightKidney",trunkVolume,colourName, solidVis, sensitivity); + fBody -> CreateOrgan("RightKidney", fTrunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildLeftAdrenal(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildLeftAdrenal()", "human_phantom0042", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("LeftAdrenal", trunkVolume,colourName, solidVis, sensitivity); + fBody -> CreateOrgan("LeftAdrenal", fTrunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildRightAdrenal(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildRightAdrenal()", "human_phantom0043", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("RightAdrenal", trunkVolume,colourName, solidVis, sensitivity); + fBody -> CreateOrgan("RightAdrenal", fTrunkVolume,colourName, solidVis, sensitivity); } - void G4PhantomBuilder::BuildLiver(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildLiver()", "human_phantom0044", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Liver", trunkVolume,colourName, solidVis, sensitivity); + fBody -> CreateOrgan("Liver", fTrunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildPancreas(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildPancreas()", "human_phantom0045", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Pancreas",trunkVolume,colourName, solidVis, sensitivity); + fBody -> CreateOrgan("Pancreas", fTrunkVolume,colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildUrinaryBladder(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildUrinaryBladder()", "human_phantom0046", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("UrinaryBladder",trunkVolume, colourName, solidVis, sensitivity); + fBody -> CreateOrgan("UrinaryBladder", fTrunkVolume, colourName, solidVis, sensitivity); } void G4PhantomBuilder::BuildThyroid(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { - if (headVolume == 0) + if (fHeadVolume == nullptr) G4Exception("G4PhantomBuilder::BuildThyroid()", "human_phantom0047", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Thyroid",headVolume, colourName,solidVis, sensitivity); + fBody -> CreateOrgan("Thyroid", fHeadVolume, colourName,solidVis, sensitivity); } void G4PhantomBuilder::BuildThymus(const G4String& colourName, G4bool solidVis, G4bool sensitivity ) { - if (trunkVolume == 0) + if (fTrunkVolume == nullptr) G4Exception("G4PhantomBuilder::BuildThymus()", "human_phantom0048", FatalException, "The trunk volume is missing !!!!!"); - body -> CreateOrgan("Thymus",trunkVolume, colourName,solidVis, sensitivity); + fBody -> CreateOrgan("Thymus",fTrunkVolume, colourName,solidVis, sensitivity); } - G4VPhysicalVolume* G4PhantomBuilder::GetPhantom() { - return motherVolume; + return fMotherVolume; } void G4PhantomBuilder::SetMotherVolume(G4VPhysicalVolume* mother) { - motherVolume = mother; + fMotherVolume = mother; } - void G4PhantomBuilder::SetModel(G4String modelFlag) { - model = modelFlag; + fModel = modelFlag; - if(model=="MIRD" || model =="MIX") body = new G4MIRDBodyFactory(); - if(model=="ORNLFemale") + if(fModel=="MIRD") fBody = new G4MIRDBodyFactory(); + else if(fModel=="ORNLFemale") { - #ifdef G4LIB_USE_GDML - body = new G4ORNLFemaleBodyFactory(); + fBody = new G4ORNLFemaleBodyFactory(); #else - G4cout << model << " Working with GDML only! set G4LIB_USE_GDML 1" << G4endl; + G4cout << fModel << " Working with GDML only! set -DWITH_GDML_USE=ON flag during the CMAKE configuration step" << G4endl; #endif } - - if(model=="ORNLMale") + else if(fModel=="ORNLMale") { #ifdef G4LIB_USE_GDML - body = new G4ORNLMaleBodyFactory(); + fBody = new G4ORNLMaleBodyFactory(); #else - G4cout << model << " Working with GDML only! set G4LIB_USE_GDML 1" << G4endl; + G4cout << fModel << " Working with GDML only! set -DWITH_GDML_USE=ON flag during the CMAKE configuration step" << G4endl; #endif } } diff --git a/examples/advanced/human_phantom/src/G4PhantomHeadBuilder.cc b/examples/advanced/human_phantom/src/G4PhantomHeadBuilder.cc index 7cc562d9c5..e8c1a85c2b 100644 --- a/examples/advanced/human_phantom/src/G4PhantomHeadBuilder.cc +++ b/examples/advanced/human_phantom/src/G4PhantomHeadBuilder.cc @@ -33,78 +33,78 @@ #include "G4ORNLMaleBodyFactory.hh" #include "G4PVPlacement.hh" -G4PhantomHeadBuilder::G4PhantomHeadBuilder(): model("MIRD") +G4PhantomHeadBuilder::G4PhantomHeadBuilder(): fModel("MIRD") { // sex can be "female" or "male" - body = 0; - motherVolume = 0; - headVolume = 0; + fBody = nullptr; + fMotherVolume = nullptr; + fHeadVolume = nullptr; } G4PhantomHeadBuilder::~G4PhantomHeadBuilder() { - delete body; + delete fBody; } void G4PhantomHeadBuilder::BuildHead(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (motherVolume == 0) + if (fMotherVolume == nullptr) G4Exception("G4PhantomHeadBuilder::BuildHead()", "human_phantom0011", FatalException, "The moder Volume volume is missing !!!!!"); - - G4cout <<"MotherVolume: " << motherVolume -> GetName()<< G4endl; + else + { + G4cout <<"MotherVolume: " << fMotherVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - headVolume = body -> CreateOrgan("Head",motherVolume, colourName, solidVis, sensitivity); + fHeadVolume = fBody -> CreateOrgan("Head", fMotherVolume, colourName, solidVis, sensitivity); +} } void G4PhantomHeadBuilder::BuildSkull(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (headVolume == 0) + if (fHeadVolume == nullptr) G4Exception("G4PhantomHeadBuilder::BuildSkull()", "human_phantom0012", FatalException, "The head volume is missing !!!!!"); - G4cout <<"MotherVolume: " << headVolume -> GetName()<< G4endl; + G4cout <<"MotherVolume: " << fHeadVolume -> GetName()<< G4endl; G4cout << "sensitivity : "<< sensitivity << G4endl; - body -> CreateOrgan( "Skull",headVolume, colourName, solidVis, sensitivity); + fBody -> CreateOrgan( "Skull", fHeadVolume, colourName, solidVis, sensitivity); } void G4PhantomHeadBuilder::BuildBrain(const G4String& colourName, G4bool solidVis, G4bool sensitivity) { - if (headVolume == 0) + if (fHeadVolume == nullptr) G4Exception("G4PhantomHeadBuilder::BuildBrain()", "human_phantom0013", FatalException, "The head volume is missing !!!!!"); - - body -> CreateOrgan("Brain",headVolume, colourName, solidVis, sensitivity); + else fBody -> CreateOrgan("Brain", fHeadVolume, colourName, solidVis, sensitivity); } G4VPhysicalVolume* G4PhantomHeadBuilder::GetPhantom() { - return motherVolume; + return fMotherVolume; } void G4PhantomHeadBuilder::SetMotherVolume(G4VPhysicalVolume* mother) { - motherVolume = mother; + fMotherVolume = mother; } void G4PhantomHeadBuilder::SetModel(G4String modelFlag) { - model = modelFlag; + fModel = modelFlag; - if(model=="MIRD" || model =="MIX") body = new G4MIRDBodyFactory(); - if(model=="ORNLFemale") + if(fModel=="MIRD") fBody = new G4MIRDBodyFactory(); + else if(fModel=="ORNLFemale") { #ifdef G4LIB_USE_GDML -body = new G4ORNLFemaleBodyFactory(); +fBody = new G4ORNLFemaleBodyFactory(); #else -G4cout << model << " Working with GDML only! set G4LIB_USE_GDML 1" << G4endl; +G4cout << fModel << " Working with GDML only! set G4LIB_USE_GDML 1" << G4endl; #endif } - - if(model=="ORNLMale") +else if(fModel=="ORNLMale") { #ifdef G4LIB_USE_GDML -body = new G4ORNLMaleBodyFactory(); +fBody = new G4ORNLMaleBodyFactory(); #else -G4cout << model << " Working with GDML only! set G4LIB_USE_GDML 1" << G4endl; +G4cout << fModel << " Working with GDML only! set G4LIB_USE_GDML 1" << G4endl; #endif } diff --git a/examples/advanced/human_phantom/src/G4VoxelBreastFactory.cc b/examples/advanced/human_phantom/src/G4VoxelBreastFactory.cc deleted file mode 100644 index e6747b1349..0000000000 --- a/examples/advanced/human_phantom/src/G4VoxelBreastFactory.cc +++ /dev/null @@ -1,61 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// Previous authors: G. Guerrieri, S. Guatelli and M. G. Pia, INFN Genova, Italy -// Authors (since 2007): S. Guatelli, University of Wollongong, Australia -// -#include "G4VoxelBreastFactory.hh" -#include "G4VoxelLeftBreast.hh" -#include "G4VoxelRightBreast.hh" - -G4VoxelBreastFactory::G4VoxelBreastFactory() -{ - // Map with name of the organ and pointer to the MIRDOrgan class - // organ["ParameterisedRightBreast"] = new G4ParameterisedRightBreast(); - organ["LeftBreast"] = new G4VoxelLeftBreast(); - organ["RightBreast"] = new G4VoxelRightBreast(); -} - -G4VoxelBreastFactory::~G4VoxelBreastFactory() -{ - delete organ["RightBreast"]; - organ["RightBreast"]=0; - - delete organ["LeftBreast"]; - organ["LeftBreast"]=0; -} - - - -G4VPhysicalVolume* G4VoxelBreastFactory::CreateOrgan(const G4String& organ_name, - G4VPhysicalVolume* motherVolume, - const G4String& colourName, - G4bool visAttribute, - G4bool sensitivity) -{ - return organ[organ_name] -> Construct(organ_name,motherVolume,colourName, visAttribute, sensitivity); -} - - diff --git a/examples/advanced/human_phantom/src/G4VoxelLeftBreast.cc b/examples/advanced/human_phantom/src/G4VoxelLeftBreast.cc deleted file mode 100644 index 6d4b9bb5dc..0000000000 --- a/examples/advanced/human_phantom/src/G4VoxelLeftBreast.cc +++ /dev/null @@ -1,127 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// Previous authors: G. Guerrieri, S. Guatelli, and M. G. Pia, INFN Genova, Italy -// Authors (since 2007): S. Guatelli, University of Wollongong, Australia -// -#include "G4VoxelLeftBreast.hh" - -#include "globals.hh" -#include "G4SystemOfUnits.hh" -#include "G4SDManager.hh" -#include "G4VisAttributes.hh" -#include "G4Tubs.hh" -#include "G4ThreeVector.hh" -#include "G4VPhysicalVolume.hh" -#include "G4RotationMatrix.hh" -#include "G4Material.hh" -#include "G4LogicalVolume.hh" -#include "G4HumanPhantomMaterial.hh" -#include "G4VPhysicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4PVReplica.hh" -#include "G4HumanPhantomColour.hh" - -G4VoxelLeftBreast::G4VoxelLeftBreast() -{ -} - -G4VoxelLeftBreast::~G4VoxelLeftBreast() -{ -} - -G4VPhysicalVolume* G4VoxelLeftBreast::Construct(const G4String& volumeName, - G4VPhysicalVolume* mother, - const G4String& colourName, - G4bool wireFrame,G4bool) - -{ - G4HumanPhantomMaterial* material = new G4HumanPhantomMaterial(); - G4Material* adipose = material -> GetMaterial("adipose"); - G4Material* adipose_glandular = material -> GetMaterial("adipose_glandular"); - delete material; - - G4double rmin = 0.* cm; - G4double rmax = 6. * cm; - G4double zz = 6. * cm; - G4double startPhi = 0.* degree; - G4double spanningPhi = 180. * degree; - - G4Tubs* breast = new G4Tubs("out_breast", rmin, rmax, - zz/2., startPhi, spanningPhi); - - G4LogicalVolume* breast_log = new G4LogicalVolume(breast, - adipose, - "logicalOut"+ volumeName, - 0, 0, 0); - rmax = 5.5 *cm; - zz = 5. *cm; - G4Tubs* innerBreast = new G4Tubs("inner_breast", - rmin, rmax, - zz/2., startPhi, spanningPhi); - - G4LogicalVolume* innerBreast_log = new G4LogicalVolume(innerBreast, - adipose_glandular, - "logical"+ volumeName, - 0, 0, 0); - - G4RotationMatrix* matrix = new G4RotationMatrix(); - // matrix -> rotateX(-90.* degree); - // matrix -> rotateY(180.* degree); - matrix -> rotateZ(18. * degree); - - - G4VPhysicalVolume* physBreast = new G4PVPlacement(matrix,G4ThreeVector(10.*cm, 8.7* cm, 52. *cm), - "physicalVoxelLeftBreast", - breast_log, - mother, - false, - 0, true); - - G4VPhysicalVolume* physInnerBreast = new G4PVPlacement(0,G4ThreeVector(), - "LeftBreast", - innerBreast_log, - physBreast, - false, - 0, true); - - - - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); - G4Colour colour = colourPointer -> GetColour(colourName); - delete colourPointer; - - G4VisAttributes* BreastVisAtt = new G4VisAttributes(colour); - BreastVisAtt -> SetForceSolid(wireFrame); - breast_log -> SetVisAttributes(BreastVisAtt); - - G4VisAttributes* innerBreastVisAtt = new G4VisAttributes(colour); - innerBreastVisAtt -> SetForceSolid(false); - innerBreast_log -> SetVisAttributes(innerBreastVisAtt); - - - G4cout << "Voxel Left Breast created !!!!!! This model has to be refined" << G4endl; - return physInnerBreast; -} diff --git a/examples/advanced/human_phantom/src/G4VoxelRightBreast.cc b/examples/advanced/human_phantom/src/G4VoxelRightBreast.cc deleted file mode 100644 index 4698814f71..0000000000 --- a/examples/advanced/human_phantom/src/G4VoxelRightBreast.cc +++ /dev/null @@ -1,130 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// Previous authors: G. Guerrieri, S. Guatelli and M. G. Pia, INFN Genova, Italy -// Authors (since 2007): S. Guatelli, University of Wollongong, Australia -// -#include "G4VoxelRightBreast.hh" - -#include "globals.hh" -#include "G4SystemOfUnits.hh" -#include "G4SDManager.hh" -#include "G4VisAttributes.hh" -#include "G4Tubs.hh" -#include "G4ThreeVector.hh" -#include "G4VPhysicalVolume.hh" -#include "G4RotationMatrix.hh" -#include "G4Material.hh" -#include "G4LogicalVolume.hh" -#include "G4HumanPhantomMaterial.hh" -#include "G4VPhysicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4PVReplica.hh" -#include "G4HumanPhantomColour.hh" - - -G4VoxelRightBreast::G4VoxelRightBreast() -{ -} - -G4VoxelRightBreast::~G4VoxelRightBreast() -{ -} - - -G4VPhysicalVolume* G4VoxelRightBreast::Construct(const G4String& volumeName, - G4VPhysicalVolume* mother, - const G4String& colourName, - G4bool wireFrame,G4bool) - -{ - G4cout<<"Construct "<GetName()< GetMaterial("adipose"); - G4Material* adipose_glandular = material -> GetMaterial("adipose_glandular"); - delete material; - - G4double rmin = 0.* cm; - G4double rmax = 6. * cm; - G4double zz = 6. * cm; - G4double startPhi = 0.* degree; - G4double spanningPhi = 180. * degree; - - G4Tubs* breast = new G4Tubs("out_breast", rmin, rmax, - zz/2., startPhi, spanningPhi); - - G4LogicalVolume* breast_log = new G4LogicalVolume(breast, - adipose, - "logicalOut"+ volumeName, - 0, 0, 0); - rmax = 5.5 *cm; - zz = 5. *cm; - G4Tubs* innerBreast = new G4Tubs("inner_breast", - rmin, rmax, - zz/2., startPhi, spanningPhi); - - G4LogicalVolume* innerBreast_log = new G4LogicalVolume(innerBreast, - adipose_glandular, - "logical"+ volumeName, - 0, 0, 0); - - G4RotationMatrix* matrix = new G4RotationMatrix(); - matrix -> rotateX(0.* degree); - matrix -> rotateY(0.* degree); - matrix -> rotateZ(-18. *degree); - - - G4VPhysicalVolume* physBreast = new G4PVPlacement(matrix,G4ThreeVector(-10.*cm, 8.7 *cm, 52.* cm), - "physicalVoxelRightBreast", - breast_log, - mother, - false, - 0, true); - - G4VPhysicalVolume* physInnerBreast = new G4PVPlacement(0,G4ThreeVector(), - "RightBreast", - innerBreast_log, - physBreast, - false, - 0, true); - - G4HumanPhantomColour* colourPointer = new G4HumanPhantomColour(); - G4Colour colour = colourPointer -> GetColour(colourName); - delete colourPointer; - - G4VisAttributes* BreastVisAtt = new G4VisAttributes(colour); - BreastVisAtt -> SetForceSolid(wireFrame); - breast_log -> SetVisAttributes(BreastVisAtt); - - G4VisAttributes* innerBreastVisAtt = new G4VisAttributes(colour); - innerBreastVisAtt -> SetForceSolid(false); - innerBreast_log -> SetVisAttributes(innerBreastVisAtt); - - - G4cout << "Voxel Right Breast created !!!!!! This model must be refined!" << G4endl; - - - return physInnerBreast; -} diff --git a/examples/advanced/iort_therapy/History b/examples/advanced/iort_therapy/History index c0bde88aae..e89edbf7db 100644 --- a/examples/advanced/iort_therapy/History +++ b/examples/advanced/iort_therapy/History @@ -4,6 +4,9 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-09-09 Susanna Guatelli (iort_therapy-V11-00-02) +- Ranecu engine removed. + ## 2022-06-20 Sergio Losilla (iort_therapy-V11-00-01) - Simplified calls to SetProductionCut. diff --git a/examples/advanced/iort_therapy/iort_therapy.cc b/examples/advanced/iort_therapy/iort_therapy.cc index 2731dca936..0ef5ee969a 100644 --- a/examples/advanced/iort_therapy/iort_therapy.cc +++ b/examples/advanced/iort_therapy/iort_therapy.cc @@ -76,8 +76,6 @@ int main(int argc ,char ** argv) { - // Set the Random engine - CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine()); // G4int seed = time(NULL); // CLHEP::HepRandom::setTheSeed(seed); diff --git a/examples/advanced/iort_therapy/iort_therapy.out b/examples/advanced/iort_therapy/iort_therapy.out index b53397d283..100e02c445 100644 --- a/examples/advanced/iort_therapy/iort_therapy.out +++ b/examples/advanced/iort_therapy/iort_therapy.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -30,6 +30,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -122,6 +124,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -149,7 +152,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -185,8 +188,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -216,8 +218,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 10 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -317,7 +319,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 10 eV to 100 TeV in 260 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -588,13 +590,13 @@ Run 0 starts ... Run terminated. Run Summary Number of events processed : 2000 - User=11.380000s Real=12.155938s Sys=0.200000s + User=10.830000s Real=11.288670s Sys=0.320000s /score/dumpQuantityToFile boxMesh_1 dose dose.out Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 12 of which, static: 0 -Dynamic pools deleted: 12 / Total memory freed: 0.23 MB +Dynamic pools deleted: 12 / Total memory freed: 0.2 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/advanced/lAr_calorimeter/History b/examples/advanced/lAr_calorimeter/History index 4324f0516b..579843d661 100644 --- a/examples/advanced/lAr_calorimeter/History +++ b/examples/advanced/lAr_calorimeter/History @@ -4,6 +4,8 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-09-09 Susanna Guatelli (lar_calorimeter-V11-00-01) +- Ranecu engine removed ## 2021-12-10 Ben Morgan (lar_calorimeter-V11-00-00) - Change to new Markdown History format diff --git a/examples/advanced/lAr_calorimeter/lArCal.cc b/examples/advanced/lAr_calorimeter/lArCal.cc index 0b1060a1c8..3eab6ad581 100644 --- a/examples/advanced/lAr_calorimeter/lArCal.cc +++ b/examples/advanced/lAr_calorimeter/lArCal.cc @@ -47,9 +47,6 @@ int main(int argc,char** argv) { - // choose the Random engine - G4Random::setTheEngine(new CLHEP::RanecuEngine); - auto* runManager = G4RunManagerFactory::CreateRunManager(); G4int nThreads = 4; runManager->SetNumberOfThreads(nThreads); diff --git a/examples/advanced/lAr_calorimeter/lAr_calorimeter.out b/examples/advanced/lAr_calorimeter/lAr_calorimeter.out index 3e5f8e74a9..2bedef2b4e 100644 --- a/examples/advanced/lAr_calorimeter/lAr_calorimeter.out +++ b/examples/advanced/lAr_calorimeter/lAr_calorimeter.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -38,6 +38,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -104,6 +106,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -131,7 +134,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -182,8 +185,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -665,6 +668,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1042,13 +1050,13 @@ Start closing geometry. G4GeometryManager::ReportVoxelStats -- Voxel Statistics Total memory consumed for geometry optimisation: 395 kByte - Total CPU time elapsed for geometry optimisation: 0.32 seconds + Total CPU time elapsed for geometry optimisation: 0.36 seconds Voxelisation: top CPU users: Percent Total CPU System CPU Memory Volume ------- ---------- ---------- -------- ---------- - 50.00 0.16 0.00 152k EmModuleLogical - 50.00 0.16 0.00 238k HadModuleLogical + 50.00 0.18 0.00 152k EmModuleLogical + 50.00 0.18 0.00 238k HadModuleLogical 0.00 0.00 0.00 4k Mother 0.00 0.00 0.00 0k CryostatLogical 0.00 0.00 0.00 0k LArgLogical @@ -1059,8 +1067,8 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Voxelisation: top memory users: Percent Memory Heads Nodes Pointers Total CPU Volume ------- -------- ------ ------ -------- ---------- ---------- - 60.17 238k 1385 2370 3792 0.16 HadModuleLogical - 38.50 152k 1129 1152 2426 0.16 EmModuleLogical + 60.17 238k 1385 2370 3792 0.18 HadModuleLogical + 38.50 152k 1129 1152 2426 0.18 EmModuleLogical 0.93 3k 8 42 146 0.00 Mother 0.12 0k 1 7 8 0.00 SolidWLogical 0.12 0k 1 7 8 0.00 CuPlateLogical @@ -1078,352 +1086,352 @@ Read 2001 events from file data-tracks/tracks-20GeV.dat ---> Begin of event: 1 **** Primary : 1 Vertex : (5.55552,7.16569,32740) -Number of F1 Tiles with Positive energy : 40 +Number of F1 Tiles with Positive energy : 55 Number of F2 tiles with Positive energy : 0 Visisble Energy in S1 , S2 , S3 in (MeV) -1.61853 1.68111 1.78227 +1.71231 2.98995 3.52679 Visible Energy in Hole Counter (MeV) -0 0 +0 59.2601 Visible Energy in Upstream Dead Materials -79.9226 +1744.46 Visible Energy in Tail Catcher Scintillator 0 0 0 0 0 0 0 Visible Energy in Tail Catcher Absorber 0 0 0 0 0 0 -N Tracks out of world 12 -N Secondaries 123 -EmEdep is=19811.2 MeV +N Tracks out of world 51 +N Secondaries 86 +EmEdep is=17318.5 MeV HadEdep is=0 MeV -Edep in FCAL1 FCAl2 : 19811.2 0 +Edep in FCAL1 FCAl2 : 17318.5 0 **** Primary : 2 Vertex : (-3.76032,10.9751,32740) -Number of F1 Tiles with Positive energy : 72 +Number of F1 Tiles with Positive energy : 49 Number of F2 tiles with Positive energy : 0 Visisble Energy in S1 , S2 , S3 in (MeV) -2.42613 1.78148 2.09309 +1.87162 1.92888 1.72147 Visible Energy in Hole Counter (MeV) -0 132.696 +0 114.393 Visible Energy in Upstream Dead Materials -3489.64 +2341.52 Visible Energy in Tail Catcher Scintillator 0 0 0 0 0 0 0 Visible Energy in Tail Catcher Absorber 0 0 0 0 0 0 -N Tracks out of world 123 -N Secondaries 83 -EmEdep is=13556.2 MeV -HadEdep is=2.33231 MeV -Edep in FCAL1 FCAl2 : 13556.2 2.33231 +N Tracks out of world 95 +N Secondaries 113 +EmEdep is=16041 MeV +HadEdep is=0 MeV +Edep in FCAL1 FCAl2 : 16041 0 **** Primary : 3 Vertex : (13.1951,2.677,32740) -Number of F1 Tiles with Positive energy : 49 -Number of F2 tiles with Positive energy : 0 - Visisble Energy in S1 , S2 , S3 in (MeV) -1.7478 1.65087 1.72771 - Visible Energy in Hole Counter (MeV) -0 0 - Visible Energy in Upstream Dead Materials -2.75624 - Visible Energy in Tail Catcher Scintillator -0 0 0 0 0 0 0 - Visible Energy in Tail Catcher Absorber -0 0 0 0 0 0 -N Tracks out of world 5 -N Secondaries 274 -EmEdep is=19784.6 MeV -HadEdep is=1.98548 MeV -Edep in FCAL1 FCAl2 : 19784.6 1.98548 - **** Primary : 4 - Vertex : (-8.66148,-8.80731,32740) -Number of F1 Tiles with Positive energy : 49 -Number of F2 tiles with Positive energy : 0 - Visisble Energy in S1 , S2 , S3 in (MeV) -1.84476 2.29253 2.91315 - Visible Energy in Hole Counter (MeV) -0 0 - Visible Energy in Upstream Dead Materials -14.883 - Visible Energy in Tail Catcher Scintillator -0 0 0 0 0 0 0 - Visible Energy in Tail Catcher Absorber -0 0 0 0 0 0 -N Tracks out of world 6 -N Secondaries 196 -EmEdep is=19747 MeV -HadEdep is=0 MeV -Edep in FCAL1 FCAl2 : 19747 0 - **** Primary : 5 - Vertex : (4.75859,7.01622,32740) -Number of F1 Tiles with Positive energy : 49 -Number of F2 tiles with Positive energy : 0 - Visisble Energy in S1 , S2 , S3 in (MeV) -2.4198 1.74938 5.94753 - Visible Energy in Hole Counter (MeV) -0 0 - Visible Energy in Upstream Dead Materials -3.26966 - Visible Energy in Tail Catcher Scintillator -0 0 0 0 0 0 0 - Visible Energy in Tail Catcher Absorber -0 0 0 0 0 0 -N Tracks out of world 6 -N Secondaries 125 -EmEdep is=19710.8 MeV -HadEdep is=4.32131 MeV -Edep in FCAL1 FCAl2 : 19710.8 4.32131 - **** Primary : 6 - Vertex : (1.94335,14.9228,32740) -Number of F1 Tiles with Positive energy : 49 -Number of F2 tiles with Positive energy : 0 - Visisble Energy in S1 , S2 , S3 in (MeV) -2.04664 3.35544 1.87067 - Visible Energy in Hole Counter (MeV) -0 7.93219 - Visible Energy in Upstream Dead Materials -64.2253 - Visible Energy in Tail Catcher Scintillator -0 0 0 0 0 0 0 - Visible Energy in Tail Catcher Absorber -0 0 0 0 0 0 -N Tracks out of world 2 -N Secondaries 186 -EmEdep is=19821.4 MeV -HadEdep is=0 MeV -Edep in FCAL1 FCAl2 : 19821.4 0 - **** Primary : 7 - Vertex : (-10.9878,-6.7949,32740) -Number of F1 Tiles with Positive energy : 44 -Number of F2 tiles with Positive energy : 0 - Visisble Energy in S1 , S2 , S3 in (MeV) -2.07067 2.39429 1.69165 - Visible Energy in Hole Counter (MeV) -0 7.57965 - Visible Energy in Upstream Dead Materials -12.3094 - Visible Energy in Tail Catcher Scintillator -0 0 0 0 0 0 0 - Visible Energy in Tail Catcher Absorber -0 0 0 0 0 0 -N Tracks out of world 6 -N Secondaries 176 -EmEdep is=19757.3 MeV -HadEdep is=0 MeV -Edep in FCAL1 FCAl2 : 19757.3 0 - **** Primary : 8 - Vertex : (10.9757,-1.49585,32740) -Number of F1 Tiles with Positive energy : 48 -Number of F2 tiles with Positive energy : 0 - Visisble Energy in S1 , S2 , S3 in (MeV) -2.85842 2.25781 2.15944 - Visible Energy in Hole Counter (MeV) -0 139.133 - Visible Energy in Upstream Dead Materials -2925 - Visible Energy in Tail Catcher Scintillator -0 0 0 0 0 0 0 - Visible Energy in Tail Catcher Absorber -0 0 0 0 0 0 -N Tracks out of world 94 -N Secondaries 67 -EmEdep is=16354.6 MeV -HadEdep is=1.63346 MeV -Edep in FCAL1 FCAl2 : 16354.6 1.63346 - **** Primary : 9 - Vertex : (-27.7734,3.36444,32740) -Number of F1 Tiles with Positive energy : 67 -Number of F2 tiles with Positive energy : 0 - Visisble Energy in S1 , S2 , S3 in (MeV) -1.93383 2.45077 1.67406 - Visible Energy in Hole Counter (MeV) -0 88.2375 - Visible Energy in Upstream Dead Materials -7258.92 - Visible Energy in Tail Catcher Scintillator -0 0 0 0 0 0 0 - Visible Energy in Tail Catcher Absorber -0 0 0 0 0 0 -N Tracks out of world 145 -N Secondaries 296 -EmEdep is=9849.33 MeV -HadEdep is=0.989666 MeV -Edep in FCAL1 FCAl2 : 9849.33 0.989666 - **** Primary : 10 - Vertex : (-22.5474,4.1006,32740) -Number of F1 Tiles with Positive energy : 62 -Number of F2 tiles with Positive energy : 0 - Visisble Energy in S1 , S2 , S3 in (MeV) -1.54713 2.20074 1.7148 - Visible Energy in Hole Counter (MeV) -0 67.8564 - Visible Energy in Upstream Dead Materials -3884.28 - Visible Energy in Tail Catcher Scintillator -0 0 0 0 0 0 0 - Visible Energy in Tail Catcher Absorber -0 0 0 0 0 0 -N Tracks out of world 121 -N Secondaries 97 -EmEdep is=13911.6 MeV -HadEdep is=1.16834 MeV -Edep in FCAL1 FCAl2 : 13911.6 1.16834 - ----> Begin of event: 11 - **** Primary : 11 - Vertex : (-6.31939,21.5056,32740) Number of F1 Tiles with Positive energy : 47 Number of F2 tiles with Positive energy : 0 Visisble Energy in S1 , S2 , S3 in (MeV) -2.33174 1.81822 2.29445 +1.82234 1.64612 1.57421 Visible Energy in Hole Counter (MeV) 0 0 Visible Energy in Upstream Dead Materials -26.7241 - Visible Energy in Tail Catcher Scintillator -0 0 0 0 0 0 0 - Visible Energy in Tail Catcher Absorber -0 0 0 0 0 0 -N Tracks out of world 2 -N Secondaries 242 -EmEdep is=19768 MeV -HadEdep is=17.7669 MeV -Edep in FCAL1 FCAl2 : 19768 17.7669 - **** Primary : 12 - Vertex : (17.1015,6.30557,32740) -Number of F1 Tiles with Positive energy : 50 -Number of F2 tiles with Positive energy : 0 - Visisble Energy in S1 , S2 , S3 in (MeV) -2.1153 1.64033 2.13926 - Visible Energy in Hole Counter (MeV) -0 0 - Visible Energy in Upstream Dead Materials -5.62789 +30.6329 Visible Energy in Tail Catcher Scintillator 0 0 0 0 0 0 0 Visible Energy in Tail Catcher Absorber 0 0 0 0 0 0 N Tracks out of world 5 -N Secondaries 186 -EmEdep is=19755.4 MeV -HadEdep is=0.784361 MeV -Edep in FCAL1 FCAl2 : 19755.4 0.784361 - **** Primary : 13 - Vertex : (-24.9484,11.8659,32740) -Number of F1 Tiles with Positive energy : 25 +N Secondaries 287 +EmEdep is=19697.6 MeV +HadEdep is=6.17895 MeV +Edep in FCAL1 FCAl2 : 19697.6 6.17895 + **** Primary : 4 + Vertex : (-8.66148,-8.80731,32740) +Number of F1 Tiles with Positive energy : 48 Number of F2 tiles with Positive energy : 0 Visisble Energy in S1 , S2 , S3 in (MeV) -1.62903 1.74358 1.77086 +2.24023 1.5691 1.99345 Visible Energy in Hole Counter (MeV) -0 132.587 +0 0 Visible Energy in Upstream Dead Materials -18020.5 +6.62809 Visible Energy in Tail Catcher Scintillator 0 0 0 0 0 0 0 Visible Energy in Tail Catcher Absorber 0 0 0 0 0 0 -N Tracks out of world 211 -N Secondaries 251 -EmEdep is=893.945 MeV -HadEdep is=0 MeV -Edep in FCAL1 FCAl2 : 893.945 0 - **** Primary : 14 - Vertex : (-0.133696,18.3151,32740) -Number of F1 Tiles with Positive energy : 40 +N Tracks out of world 6 +N Secondaries 298 +EmEdep is=19854.6 MeV +HadEdep is=2.18466 MeV +Edep in FCAL1 FCAl2 : 19854.6 2.18466 + **** Primary : 5 + Vertex : (4.75859,7.01622,32740) +Number of F1 Tiles with Positive energy : 44 Number of F2 tiles with Positive energy : 0 Visisble Energy in S1 , S2 , S3 in (MeV) -1.6929 3.29473 1.59976 +1.71216 1.57322 1.81781 Visible Energy in Hole Counter (MeV) 0 0 Visible Energy in Upstream Dead Materials -3.45274 +7.393 + Visible Energy in Tail Catcher Scintillator +0 0 0 0 0 0 0 + Visible Energy in Tail Catcher Absorber +0 0 0 0 0 0 +N Tracks out of world 3 +N Secondaries 193 +EmEdep is=19779.2 MeV +HadEdep is=7.92109 MeV +Edep in FCAL1 FCAl2 : 19779.2 7.92109 + **** Primary : 6 + Vertex : (1.94335,14.9228,32740) +Number of F1 Tiles with Positive energy : 45 +Number of F2 tiles with Positive energy : 0 + Visisble Energy in S1 , S2 , S3 in (MeV) +2.80826 1.83647 1.71984 + Visible Energy in Hole Counter (MeV) +0 159.833 + Visible Energy in Upstream Dead Materials +1090.34 + Visible Energy in Tail Catcher Scintillator +0.0818945 0 0 0 0 0 0 + Visible Energy in Tail Catcher Absorber +0 0 0 0 0 0 +N Tracks out of world 69 +N Secondaries 216 +EmEdep is=17701.2 MeV +HadEdep is=0 MeV +Edep in FCAL1 FCAl2 : 17701.2 0 + **** Primary : 7 + Vertex : (-10.9878,-6.7949,32740) +Number of F1 Tiles with Positive energy : 61 +Number of F2 tiles with Positive energy : 0 + Visisble Energy in S1 , S2 , S3 in (MeV) +1.79021 1.75445 1.55282 + Visible Energy in Hole Counter (MeV) +0 137.208 + Visible Energy in Upstream Dead Materials +6170.49 + Visible Energy in Tail Catcher Scintillator +0 0 0 0 0 0 0 + Visible Energy in Tail Catcher Absorber +0 0 0 0 0 0 +N Tracks out of world 205 +N Secondaries 170 +EmEdep is=11418.6 MeV +HadEdep is=0.14103 MeV +Edep in FCAL1 FCAl2 : 11418.6 0.14103 + **** Primary : 8 + Vertex : (10.9757,-1.49585,32740) +Number of F1 Tiles with Positive energy : 46 +Number of F2 tiles with Positive energy : 0 + Visisble Energy in S1 , S2 , S3 in (MeV) +1.66969 1.82282 1.58729 + Visible Energy in Hole Counter (MeV) +0 0 + Visible Energy in Upstream Dead Materials +4.41214 + Visible Energy in Tail Catcher Scintillator +0 0 0 0 0 0 0 + Visible Energy in Tail Catcher Absorber +0 0 0 0 0 0 +N Tracks out of world 3 +N Secondaries 99 +EmEdep is=19818.8 MeV +HadEdep is=1.29863 MeV +Edep in FCAL1 FCAl2 : 19818.8 1.29863 + **** Primary : 9 + Vertex : (-27.7734,3.36444,32740) +Number of F1 Tiles with Positive energy : 61 +Number of F2 tiles with Positive energy : 0 + Visisble Energy in S1 , S2 , S3 in (MeV) +2.5081 1.60845 1.79854 + Visible Energy in Hole Counter (MeV) +0 69.3322 + Visible Energy in Upstream Dead Materials +5845.91 + Visible Energy in Tail Catcher Scintillator +0 0 0 0 0 0 0 + Visible Energy in Tail Catcher Absorber +0 0 0 0 0 0 +N Tracks out of world 164 +N Secondaries 166 +EmEdep is=11579.5 MeV +HadEdep is=0 MeV +Edep in FCAL1 FCAl2 : 11579.5 0 + **** Primary : 10 + Vertex : (-22.5474,4.1006,32740) +Number of F1 Tiles with Positive energy : 40 +Number of F2 tiles with Positive energy : 0 + Visisble Energy in S1 , S2 , S3 in (MeV) +1.75589 1.67904 1.51143 + Visible Energy in Hole Counter (MeV) +0 0 + Visible Energy in Upstream Dead Materials +13.3248 Visible Energy in Tail Catcher Scintillator 0 0 0 0 0 0 0 Visible Energy in Tail Catcher Absorber 0 0 0 0 0 0 N Tracks out of world 4 -N Secondaries 165 -EmEdep is=19809.7 MeV -HadEdep is=10.8784 MeV -Edep in FCAL1 FCAl2 : 19809.7 10.8784 +N Secondaries 111 +EmEdep is=19822.3 MeV +HadEdep is=3.66692 MeV +Edep in FCAL1 FCAl2 : 19822.3 3.66692 + +---> Begin of event: 11 + **** Primary : 11 + Vertex : (-6.31939,21.5056,32740) +Number of F1 Tiles with Positive energy : 48 +Number of F2 tiles with Positive energy : 0 + Visisble Energy in S1 , S2 , S3 in (MeV) +1.73086 1.74676 1.64577 + Visible Energy in Hole Counter (MeV) +0 46.9507 + Visible Energy in Upstream Dead Materials +515.799 + Visible Energy in Tail Catcher Scintillator +0 0 0 0 0 0 0 + Visible Energy in Tail Catcher Absorber +0 0 0 0 0 0 +N Tracks out of world 27 +N Secondaries 245 +EmEdep is=19151.2 MeV +HadEdep is=54.9963 MeV +Edep in FCAL1 FCAl2 : 19151.2 54.9963 + **** Primary : 12 + Vertex : (17.1015,6.30557,32740) +Number of F1 Tiles with Positive energy : 50 +Number of F2 tiles with Positive energy : 0 + Visisble Energy in S1 , S2 , S3 in (MeV) +1.60439 2.24266 1.67181 + Visible Energy in Hole Counter (MeV) +0 0 + Visible Energy in Upstream Dead Materials +4.21625 + Visible Energy in Tail Catcher Scintillator +0 0 0 0 0 0 0 + Visible Energy in Tail Catcher Absorber +0 0 0 0 0 0 +N Tracks out of world 0 +N Secondaries 183 +EmEdep is=19872.2 MeV +HadEdep is=4.45916 MeV +Edep in FCAL1 FCAl2 : 19872.2 4.45916 + **** Primary : 13 + Vertex : (-24.9484,11.8659,32740) +Number of F1 Tiles with Positive energy : 30 +Number of F2 tiles with Positive energy : 0 + Visisble Energy in S1 , S2 , S3 in (MeV) +1.75939 1.62432 1.98285 + Visible Energy in Hole Counter (MeV) +0 209.072 + Visible Energy in Upstream Dead Materials +17403.3 + Visible Energy in Tail Catcher Scintillator +0.00187116 0.682743 0.156793 0 0 0 0 + Visible Energy in Tail Catcher Absorber +2.29358 0.0813334 0 0 0 0 +N Tracks out of world 274 +N Secondaries 200 +EmEdep is=973.02 MeV +HadEdep is=2.00844 MeV +Edep in FCAL1 FCAl2 : 973.02 2.00844 + **** Primary : 14 + Vertex : (-0.133696,18.3151,32740) +Number of F1 Tiles with Positive energy : 48 +Number of F2 tiles with Positive energy : 0 + Visisble Energy in S1 , S2 , S3 in (MeV) +1.51304 1.81255 1.65281 + Visible Energy in Hole Counter (MeV) +0 0 + Visible Energy in Upstream Dead Materials +8.29222 + Visible Energy in Tail Catcher Scintillator +0 0 0 0 0 0 0 + Visible Energy in Tail Catcher Absorber +0 0 0 0 0 0 +N Tracks out of world 2 +N Secondaries 223 +EmEdep is=19847.2 MeV +HadEdep is=7.58569 MeV +Edep in FCAL1 FCAl2 : 19847.2 7.58569 **** Primary : 15 Vertex : (17.3196,17.6617,32740) -Number of F1 Tiles with Positive energy : 46 +Number of F1 Tiles with Positive energy : 54 Number of F2 tiles with Positive energy : 0 Visisble Energy in S1 , S2 , S3 in (MeV) -1.5865 1.90432 1.85013 +1.73765 5.27209 6.52798 Visible Energy in Hole Counter (MeV) -0 4.49935 +0 0 Visible Energy in Upstream Dead Materials -13.6529 +8.33915 Visible Energy in Tail Catcher Scintillator 0 0 0 0 0 0 0 Visible Energy in Tail Catcher Absorber 0 0 0 0 0 0 -N Tracks out of world 5 -N Secondaries 104 -EmEdep is=19802.4 MeV -HadEdep is=0.439238 MeV -Edep in FCAL1 FCAl2 : 19802.4 0.439238 +N Tracks out of world 3 +N Secondaries 129 +EmEdep is=19573.5 MeV +HadEdep is=2.6827 MeV +Edep in FCAL1 FCAl2 : 19573.5 2.6827 **** Primary : 16 Vertex : (-20.8489,10.8988,32740) -Number of F1 Tiles with Positive energy : 74 -Number of F2 tiles with Positive energy : 1 +Number of F1 Tiles with Positive energy : 76 +Number of F2 tiles with Positive energy : 0 Visisble Energy in S1 , S2 , S3 in (MeV) -1.5567 2.04904 1.63201 +1.64254 3.61526 1.61566 Visible Energy in Hole Counter (MeV) -0 74.2917 +0 144.32 Visible Energy in Upstream Dead Materials -3862.05 +5158.51 Visible Energy in Tail Catcher Scintillator 0 0 0 0 0 0 0 Visible Energy in Tail Catcher Absorber 0 0 0 0 0 0 -N Tracks out of world 133 -N Secondaries 222 -EmEdep is=14539.4 MeV -HadEdep is=18.1961 MeV -Edep in FCAL1 FCAl2 : 14539.4 18.1961 +N Tracks out of world 146 +N Secondaries 320 +EmEdep is=12194.3 MeV +HadEdep is=2.11647 MeV +Edep in FCAL1 FCAl2 : 12194.3 2.11647 **** Primary : 17 Vertex : (-9.96316,-9.33478,32740) -Number of F1 Tiles with Positive energy : 51 +Number of F1 Tiles with Positive energy : 50 Number of F2 tiles with Positive energy : 0 Visisble Energy in S1 , S2 , S3 in (MeV) -1.75946 1.80394 2.03944 +1.50221 1.79379 1.57658 Visible Energy in Hole Counter (MeV) -0 4.61576 +0 0 Visible Energy in Upstream Dead Materials -927.846 +3.98611 Visible Energy in Tail Catcher Scintillator 0 0 0 0 0 0 0 Visible Energy in Tail Catcher Absorber 0 0 0 0 0 0 -N Tracks out of world 22 -N Secondaries 225 -EmEdep is=18101.3 MeV -HadEdep is=4.58616 MeV -Edep in FCAL1 FCAl2 : 18101.3 4.58616 +N Tracks out of world 3 +N Secondaries 163 +EmEdep is=19751 MeV +HadEdep is=0.943901 MeV +Edep in FCAL1 FCAl2 : 19751 0.943901 **** Primary : 18 Vertex : (-9.96316,-9.33478,32740) -Number of F1 Tiles with Positive energy : 58 +Number of F1 Tiles with Positive energy : 41 Number of F2 tiles with Positive energy : 0 Visisble Energy in S1 , S2 , S3 in (MeV) -1.73307 1.50044 1.87606 +1.92687 1.62445 2.00189 Visible Energy in Hole Counter (MeV) -0 95.7156 +0 0 Visible Energy in Upstream Dead Materials -1550.92 +8.74192 Visible Energy in Tail Catcher Scintillator 0 0 0 0 0 0 0 Visible Energy in Tail Catcher Absorber 0 0 0 0 0 0 -N Tracks out of world 64 -N Secondaries 96 -EmEdep is=17104.1 MeV -HadEdep is=0 MeV -Edep in FCAL1 FCAl2 : 17104.1 0 +N Tracks out of world 4 +N Secondaries 329 +EmEdep is=19767.9 MeV +HadEdep is=11.3075 MeV +Edep in FCAL1 FCAl2 : 19767.9 11.3075 Run terminated. Run Summary Number of events processed : 18 - User=7.400000s Real=7.480573s Sys=0.000000s + User=10.840000s Real=10.966381s Sys=0.010000s There are 4 h1 histograms 0 with 0 entries: Number of Out Of World 1 with 0 entries: Number of Secondaries @@ -1446,25 +1454,25 @@ G4SDManager deleted. EventManager deleted. Units table cleared. TransportationManager deleted. -Total navigation history collections cleaned: 47 +Total navigation history collections cleaned: 46 G4RNGHelper object is deleted. ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.0654 MB +Pool ID '20G4NavigationLevelRep', size : 0.0634 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.125 MB +Pool ID '17G4DynamicParticle', size : 0.1 MB Pool ID '16G4SmartVoxelNode', size : 0.112 MB Pool ID '17G4SmartVoxelProxy', size : 0.0942 MB Pool ID '7G4Event', size : 0.000961 MB Pool ID '15G4PrimaryVertex', size : 0.000961 MB Pool ID '17G4PrimaryParticle', size : 0.000961 MB Pool ID '15G4HCofThisEvent', size : 0.000961 MB -Pool ID '7G4Track', size : 0.25 MB +Pool ID '7G4Track', size : 0.2 MB Pool ID '18G4TouchableHistory', size : 0.00577 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB Pool ID '10G4Fragment', size : 0.00192 MB Pool ID '17G4ReactionProduct', size : 0.00192 MB Number of memory pools allocated: 14 of which, static: 0 -Dynamic pools deleted: 14 / Total memory freed: 0.66 MB +Dynamic pools deleted: 14 / Total memory freed: 0.58 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/advanced/medical_linac/History b/examples/advanced/medical_linac/History index 6ff2ae8a70..b97ef7912c 100644 --- a/examples/advanced/medical_linac/History +++ b/examples/advanced/medical_linac/History @@ -1,9 +1,21 @@ # Example medical_linac History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-10-04 Ben Morgan (medical_linac-V11-00-03) +- Replace sprintf use with std::to_string + - sprintf deprecated on macOS 13, leading to compile warnings + +## 2022-10-04 Gabriele Cosmo (medical_linac-V11-00-02) +- Fixed compilation warnings on Intel-icx compiler for set but + not used variables in ML2Acc1 and ML2Acc2 source. + +## 2022-09-09 Susanna Guatelli (medical_linac-V11-00-01) +- Ranecu Engine removed. Default one now used ## 2021-12-10 Ben Morgan (medical_linac-V11-00-00) - Change to new Markdown History format diff --git a/examples/advanced/medical_linac/include/ML2RunAction.hh b/examples/advanced/medical_linac/include/ML2RunAction.hh index 89952b313b..3ced2b4b40 100644 --- a/examples/advanced/medical_linac/include/ML2RunAction.hh +++ b/examples/advanced/medical_linac/include/ML2RunAction.hh @@ -29,8 +29,8 @@ // with the support of Pablo Cirrone (LNS, INFN Catania Italy) // with the contribute of Alessandro Occhigrossi* // -// ^INAIL DIPIA - ex ISPESL and INFN Roma, gruppo collegato Sanit�, Italy -// *Istituto Superiore di Sanit� and INFN Roma, gruppo collegato Sanit�, Italy +// ^INAIL DIPIA - ex ISPESL and INFN Roma, gruppo collegato Sanità, Italy +// *Istituto Superiore di Sanità and INFN Roma, gruppo collegato Sanità, Italy // Viale Regina Elena 299, 00161 Roma (Italy) // tel (39) 06 49902246 // fax (39) 06 49387075 diff --git a/examples/advanced/medical_linac/medical_linac.out b/examples/advanced/medical_linac/medical_linac.out index 56e59da8f7..185ca8bbe6 100644 --- a/examples/advanced/medical_linac/medical_linac.out +++ b/examples/advanced/medical_linac/medical_linac.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -131,7 +131,6 @@ THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmLivermorePhys # Phantoms # fullWater // water box # boxInBox // box in a box with a layer of PMMA at the exposed surface -Using seed 1 I'm building acc1 accelerator /control/execute acc1.mac /accelerator/isoCentre 1000 mm @@ -251,6 +250,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -278,7 +278,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -314,8 +314,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -357,8 +356,8 @@ conv: for gamma SubType=14 BuildTable=1 Livermore5DConversion : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -481,7 +480,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -974,10 +973,10 @@ Launched 50000 random primary particles Run terminated. Run Summary Number of events processed : 50000 - User=16.510000s Real=16.713021s Sys=0.000000s + User=18.270000s Real=18.437294s Sys=0.000000s PrimitiveScorer RUN PhantomSD,TotalDose - Number of entries 196 -loop elapsed time [s] : 16.55 + Number of entries 144 +loop elapsed time [s] : 18.3 Region -- -- appears in world volume @@ -1201,10 +1200,10 @@ Launched 50000 random primary particles Run terminated. Run Summary Number of events processed : 50000 - User=16.850000s Real=17.085527s Sys=0.010000s + User=17.640000s Real=17.773664s Sys=0.000000s PrimitiveScorer RUN PhantomSD,TotalDose - Number of entries 126 -loop elapsed time [s] : 16.89 + Number of entries 181 +loop elapsed time [s] : 17.68 ################ END NEW GEOMETRY ######################## /run/geometryModified @@ -1498,10 +1497,10 @@ Launched 50000 random primary particles Run terminated. Run Summary Number of events processed : 50000 - User=17.100000s Real=17.334355s Sys=0.010000s + User=17.290000s Real=17.412110s Sys=0.000000s PrimitiveScorer RUN PhantomSD,TotalDose - Number of entries 116 -loop elapsed time [s] : 17.14 + Number of entries 166 +loop elapsed time [s] : 17.34 Region -- -- appears in world volume @@ -1725,13 +1724,13 @@ Launched 50000 random primary particles Run terminated. Run Summary Number of events processed : 50000 - User=16.950000s Real=17.184810s Sys=0.010000s + User=17.080000s Real=17.203649s Sys=0.000000s PrimitiveScorer RUN PhantomSD,TotalDose - Number of entries 116 -loop elapsed time [s] : 16.99 + Number of entries 154 +loop elapsed time [s] : 17.11 ################ END NEW GEOMETRY ######################## -loop elapsed time [s] : 70.7 +loop elapsed time [s] : 73.92 G4 kernel has come to Quit state. UserDetectorConstruction deleted. @@ -1746,10 +1745,10 @@ G4SDManager deleted. EventManager deleted. Units table cleared. TransportationManager deleted. -Total navigation history collections cleaned: 22 +Total navigation history collections cleaned: 24 G4RNGHelper object is deleted. ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.0327 MB +Pool ID '20G4NavigationLevelRep', size : 0.0346 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB Pool ID '16G4SmartVoxelNode', size : 0.00577 MB Pool ID '17G4SmartVoxelProxy', size : 0.00288 MB @@ -1761,11 +1760,11 @@ Pool ID '17G4DynamicParticle', size : 0.00385 MB Pool ID '7G4Track', size : 0.00769 MB Pool ID '18G4TouchableHistory', size : 0.00288 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB -Pool ID '12G4Trajectory', size : 0.00288 MB -Pool ID '17G4TrajectoryPoint', size : 0.0356 MB +Pool ID '12G4Trajectory', size : 0.00385 MB +Pool ID '17G4TrajectoryPoint', size : 0.0442 MB Pool ID '21G4TrajectoryContainer', size : 0.000961 MB Number of memory pools allocated: 15 of which, static: 0 -Dynamic pools deleted: 15 / Total memory freed: 0.1 MB +Dynamic pools deleted: 15 / Total memory freed: 0.11 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/advanced/medical_linac/ml2.cc b/examples/advanced/medical_linac/ml2.cc index f9a3d0144c..356ecfbef6 100644 --- a/examples/advanced/medical_linac/ml2.cc +++ b/examples/advanced/medical_linac/ml2.cc @@ -102,10 +102,8 @@ int main(int argc, char* argv[]) UImanager->ApplyCommand(command+myInputData->inputData.generalData.StartFileInputData); - // set and initialize the random generator - CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); - CLHEP::HepRandom::setTheSeed(myInputData->inputData.generalData.seed); - G4cout << "Using seed " << CLHEP::HepRandom::getTheSeed() << G4endl; + //CLHEP::HepRandom::setTheSeed(myInputData->inputData.generalData.seed); + //G4cout << "Using seed " << CLHEP::HepRandom::getTheSeed() << G4endl; // create the world class if (!myWorld->create(&myInputData->inputData, myInputData->getbOnlyVisio())) diff --git a/examples/advanced/medical_linac/src/ML2Acc1.cc b/examples/advanced/medical_linac/src/ML2Acc1.cc index 9dc8304a8f..787a76f543 100644 --- a/examples/advanced/medical_linac/src/ML2Acc1.cc +++ b/examples/advanced/medical_linac/src/ML2Acc1.cc @@ -693,36 +693,27 @@ bool CML2Acc1::MLC() //MultiLeaf Collimator regVol -> AddRootLogicalVolume(leafLVB); int i; - int j=0; G4String PVname; G4ThreeVector centre; int nhalfLeaves = (int)(vec_leavesA.size()/2.); centre = centreStart + G4ThreeVector(-nhalfLeaves*boxSize.getX(), 0.,0.); for (i = 1; i < (int)vec_leavesA.size(); i++) { - G4String str; - char appo[12]; - sprintf(appo,"%d",i); - str = appo; + G4String str = std::to_string(i); PVname = "leafA"+str; centre.setX(centre.getX()+boxSize.getX()*2.); centre.setY(-boxSize.getY()-vec_leavesA[i]); new G4PVPlacement(0, centre, PVname, leafLVA, PVWorld, false, i); - j++; } nhalfLeaves = (int)(vec_leavesB.size()/2.); centre = centreStart+G4ThreeVector(-nhalfLeaves*boxSize.getX(), 0.,0.); for (i = 1; i < (int)vec_leavesB.size(); i++) { - G4String str; - char appo[12]; - sprintf(appo,"%d",i); - str = appo; + G4String str = std::to_string(i); PVname = "leafB"+str; centre.setX(centre.getX()+boxSize.getX()*2.); centre.setY(+boxSize.getY()+vec_leavesB[i]); new G4PVPlacement(0, centre, PVname, leafLVB, PVWorld, false, i); - j++; } bCreated = true; return bCreated; diff --git a/examples/advanced/medical_linac/src/ML2Acc2.cc b/examples/advanced/medical_linac/src/ML2Acc2.cc index 51b98896be..d3bddc83ce 100644 --- a/examples/advanced/medical_linac/src/ML2Acc2.cc +++ b/examples/advanced/medical_linac/src/ML2Acc2.cc @@ -365,7 +365,6 @@ bool CML2Acc2::vacuumWindow() bool CML2Acc2::flatteningFilter() { G4String iName; - char a[10]; bool bCreated = false; switch (idEnergy) { @@ -403,8 +402,7 @@ bool CML2Acc2::flatteningFilter() for (i = 0 ; i < 19; i++) { - sprintf(a,"%d", i); - iName = (G4String)a; + iName = std::to_string(i); halfHeigth = (yHeight[i]-yHeight[i+1])/2. ; if (i == 18) { @@ -438,8 +436,7 @@ bool CML2Acc2::flatteningFilter() rMinInf = 0.; rMinSup = 0.; centre.set(0.,0., distanceLast+halfHeigth); - sprintf(a,"%d", i); - iName = (G4String)a; + iName = std::to_string(i); name = "ffConeG"+iName; cone = new G4Cons(name, rMinInf, rMaxInf, rMinSup, rMaxSup, halfHeigth, angleStart, angleStop); name = "ffConeLV"+iName; @@ -461,8 +458,7 @@ bool CML2Acc2::flatteningFilter() rMinInf = xRadius[20]; rMinSup = xRadius[19]; centre.set(0.,0., distanceLast-halfHeigth); - sprintf(a,"%d", ++i); - iName = (G4String)a; + iName = std::to_string(++i); name = "ffConeG"+iName; cone = new G4Cons(name, rMinInf, rMaxInf, rMinSup, rMaxSup, halfHeigth, angleStart, angleStop); name = "ffConeLV"+iName; @@ -521,8 +517,7 @@ bool CML2Acc2::flatteningFilter() for (i=0;i<18;i++) { - sprintf(a,"%d", i); - iName = (G4String)a; + iName = std::to_string(i); halfHeigth = (yHeight[i]-yHeight[i+1])/2. ; if (i == 17) { @@ -555,8 +550,7 @@ bool CML2Acc2::flatteningFilter() rMinInf = 0.; rMinSup = 0.; centre.set(0.,0., distanceLast+halfHeigth); - sprintf(a,"%d", i); - iName = (G4String)a; + iName = std::to_string(i); name = "ffConeG"+iName; cone = new G4Cons(name, rMinInf, rMaxInf, rMinSup, rMaxSup, halfHeigth, angleStart, angleStop); name = "ffConeLV"+iName; @@ -578,8 +572,7 @@ bool CML2Acc2::flatteningFilter() rMinInf = xRadius[19]; rMinSup = xRadius[18]; centre.set(0.,0., distanceLast-halfHeigth); - sprintf(a,"%d", ++i); - iName = (G4String)a; + iName = std::to_string(++i); name = "ffConeG"+iName; cone = new G4Cons(name, rMinInf, rMaxInf, rMinSup, rMaxSup, halfHeigth, angleStart, angleStop); name = "ffConeLV"+iName; @@ -854,7 +847,6 @@ bool CML2Acc2::Jaw2Y() bool CML2Acc2::MLC() { G4String iName; - char a[12]; bool bCreated = false; // material G4Material *W = G4NistManager::Instance()->FindOrBuildMaterial("G4_W"); @@ -919,33 +911,27 @@ bool CML2Acc2::MLC() G4String PVname; // G4VPhysicalVolume *leafPhys; int i; - int j = 0; G4ThreeVector centre; centre= centreStart + G4ThreeVector(-38.*halfSize.getX(), 0.,0.); for (i = 1; i < (int)vec_leavesA.size(); i++) { - sprintf(a,"%d", i); - iName = (G4String)a; + iName = std::to_string(i); PVname = "leafA"+iName; centre.setX(centre.getX()+halfSize.getX()*2.); centre.setY(-halfSize.getY()-vec_leavesA[i]); new G4PVPlacement(0, centre, PVname, leafLVA, PVWorld, false, i); - j++; } centre=centreStart+G4ThreeVector(-38.*halfSize.getX(), 0.,0.); for (i = 1; i < (int)vec_leavesB.size(); i++) { - sprintf(a,"%d", i); - iName = (G4String)a; + iName = std::to_string(i); PVname = "leafB"+iName; centre.setX(centre.getX()+halfSize.getX()*2.); centre.setY(+halfSize.getY()+vec_leavesB[i]); new G4PVPlacement(0, centre, PVname, leafLVB, PVWorld, false, i); - j++; } bCreated = true; return bCreated; } - diff --git a/examples/advanced/medical_linac/src/ML2AcceleratorConstruction.cc b/examples/advanced/medical_linac/src/ML2AcceleratorConstruction.cc index db30e1a5b3..f6eb9ad7f7 100644 --- a/examples/advanced/medical_linac/src/ML2AcceleratorConstruction.cc +++ b/examples/advanced/medical_linac/src/ML2AcceleratorConstruction.cc @@ -192,10 +192,9 @@ G4RotationMatrix * CML2AcceleratorConstruction::rotateAccelerator(G4double angle } G4String CML2AcceleratorConstruction::getCurrentRotationString() { - char cR[5]; G4int cRI=(G4int)((currentRotationX/deg)+.5); - sprintf(cR,"%d",cRI); - G4String rotationName=G4String(cR); + G4String rotationName=std::to_string(cRI); + if (bRotate90Y) {rotationName="_Ro90Y"+rotationName;} else diff --git a/examples/advanced/medical_linac/src/ML2ExpVoxels.cc b/examples/advanced/medical_linac/src/ML2ExpVoxels.cc index f774864016..21d1cc0ddd 100644 --- a/examples/advanced/medical_linac/src/ML2ExpVoxels.cc +++ b/examples/advanced/medical_linac/src/ML2ExpVoxels.cc @@ -49,9 +49,7 @@ CML2ExpVoxels::CML2ExpVoxels(G4bool bData, G4int saveEvents, G4int seed, G4String FileExperimentalData, G4String FileExperimentalDataOut):startCurve(0), stopCurve(0),chi2Factor(0) { - char a[10]; - sprintf(a,"%d", seed); - seedName = (G4String)a; + seedName = std::to_string(seed); saving_in_Selected_Voxels_every_events = saveEvents; nRecycling = 1; diff --git a/examples/advanced/medical_linac/src/ML2PhantomConstruction.cc b/examples/advanced/medical_linac/src/ML2PhantomConstruction.cc index cbe98dd5f2..aaca29d7be 100644 --- a/examples/advanced/medical_linac/src/ML2PhantomConstruction.cc +++ b/examples/advanced/medical_linac/src/ML2PhantomConstruction.cc @@ -223,18 +223,14 @@ void CML2PhantomConstruction::applyNewCentre(G4ThreeVector ctr) } G4String CML2PhantomConstruction::getCurrentTranslationString() { - char cT[5]; G4int cTI; G4String translationName; cTI=(G4int)((currentCentre.getX()/mm)); - sprintf(cT,"%d",cTI); - translationName="_TrX"+G4String(cT)+"_"; + translationName="_TrX"+std::to_string(cTI)+"_"; cTI=(G4int)((currentCentre.getY()/mm)); - sprintf(cT,"%d",cTI); - translationName+="Y"+G4String(cT)+"_"; + translationName+="Y"+std::to_string(cTI)+"_"; cTI=(G4int)((currentCentre.getZ()/mm)); - sprintf(cT,"%d",cTI); - translationName+="Z"+G4String(cT); + translationName+="Z"+std::to_string(cTI); return translationName; } diff --git a/examples/advanced/medical_linac/totDose.txt b/examples/advanced/medical_linac/totDose.txt index d652e2093e..f5f817f38e 100644 --- a/examples/advanced/medical_linac/totDose.txt +++ b/examples/advanced/medical_linac/totDose.txt @@ -254,7 +254,7 @@ 13 8 0 0 14 8 0 0 15 8 0 0 -16 8 0 1.0094e-12 +16 8 0 0 17 8 0 0 18 8 0 0 19 8 0 0 @@ -551,7 +551,7 @@ 10 18 0 0 11 18 0 0 12 18 0 0 -13 18 0 1.14699e-10 +13 18 0 0 14 18 0 0 15 18 0 0 16 18 0 0 @@ -581,7 +581,7 @@ 10 19 0 0 11 19 0 0 12 19 0 0 -13 19 0 1.65689e-10 +13 19 0 0 14 19 0 0 15 19 0 0 16 19 0 0 @@ -620,7 +620,7 @@ 19 20 0 0 20 20 0 0 21 20 0 0 -22 20 0 1.0741e-11 +22 20 0 0 23 20 0 0 24 20 0 0 25 20 0 0 @@ -1243,7 +1243,7 @@ 12 11 1 0 13 11 1 0 14 11 1 0 -15 11 1 1.37309e-13 +15 11 1 0 16 11 1 0 17 11 1 0 18 11 1 0 @@ -1778,7 +1778,7 @@ 7 29 1 0 8 29 1 0 9 29 1 0 -10 29 1 0 +10 29 1 2.08994e-10 11 29 1 0 12 29 1 0 13 29 1 0 @@ -1798,8 +1798,8 @@ 27 29 1 0 28 29 1 0 29 29 1 0 -0 0 2 3.45408e-11 -1 0 2 5.29834e-12 +0 0 2 0 +1 0 2 0 2 0 2 0 3 0 2 0 4 0 2 0 @@ -1875,7 +1875,7 @@ 14 2 2 0 15 2 2 0 16 2 2 0 -17 2 2 6.41383e-12 +17 2 2 0 18 2 2 0 19 2 2 0 20 2 2 0 @@ -1993,7 +1993,7 @@ 12 6 2 0 13 6 2 0 14 6 2 0 -15 6 2 1.02e-12 +15 6 2 0 16 6 2 0 17 6 2 0 18 6 2 0 @@ -2327,7 +2327,7 @@ 16 17 2 0 17 17 2 0 18 17 2 0 -19 17 2 1.11634e-12 +19 17 2 0 20 17 2 0 21 17 2 0 22 17 2 0 @@ -2919,7 +2919,7 @@ 8 7 3 0 9 7 3 0 10 7 3 0 -11 7 3 1.43669e-12 +11 7 3 0 12 7 3 0 13 7 3 0 14 7 3 0 @@ -4094,7 +4094,7 @@ 13 16 4 0 14 16 4 0 15 16 4 0 -16 16 4 1.26021e-13 +16 16 4 0 17 16 4 0 18 16 4 0 19 16 4 0 @@ -4747,7 +4747,7 @@ 6 8 5 0 7 8 5 0 8 8 5 0 -9 8 5 1.369e-13 +9 8 5 0 10 8 5 0 11 8 5 0 12 8 5 0 @@ -4995,7 +4995,7 @@ 14 16 5 0 15 16 5 0 16 16 5 0 -17 16 5 6.00659e-12 +17 16 5 0 18 16 5 0 19 16 5 0 20 16 5 0 @@ -5412,7 +5412,7 @@ 11 0 6 0 12 0 6 0 13 0 6 0 -14 0 6 1.20512e-13 +14 0 6 0 15 0 6 0 16 0 6 0 17 0 6 0 @@ -5886,7 +5886,7 @@ 5 16 6 0 6 16 6 0 7 16 6 0 -8 16 6 0 +8 16 6 5.40078e-13 9 16 6 0 10 16 6 0 11 16 6 0 @@ -5925,7 +5925,7 @@ 14 17 6 0 15 17 6 0 16 17 6 0 -17 17 6 2.54409e-12 +17 17 6 0 18 17 6 0 19 17 6 0 20 17 6 0 @@ -5955,7 +5955,7 @@ 14 18 6 0 15 18 6 0 16 18 6 0 -17 18 6 0 +17 18 6 1.80565e-12 18 18 6 0 19 18 6 0 20 18 6 0 @@ -6308,7 +6308,7 @@ 7 0 7 0 8 0 7 0 9 0 7 0 -10 0 7 9.58396e-13 +10 0 7 0 11 0 7 0 12 0 7 0 13 0 7 0 @@ -6829,7 +6829,7 @@ 18 17 7 0 19 17 7 0 20 17 7 0 -21 17 7 0 +21 17 7 4.63464e-12 22 17 7 0 23 17 7 0 24 17 7 0 @@ -7445,7 +7445,7 @@ 4 8 8 0 5 8 8 0 6 8 8 0 -7 8 8 5.69015e-12 +7 8 8 0 8 8 8 0 9 8 8 0 10 8 8 0 @@ -7876,7 +7876,7 @@ 15 22 8 0 16 22 8 0 17 22 8 0 -18 22 8 0 +18 22 8 3.13859e-12 19 22 8 0 20 22 8 0 21 22 8 0 @@ -8346,7 +8346,7 @@ 5 8 9 0 6 8 9 0 7 8 9 0 -8 8 9 3.35735e-13 +8 8 9 0 9 8 9 0 10 8 9 0 11 8 9 0 @@ -8479,7 +8479,7 @@ 18 12 9 0 19 12 9 0 20 12 9 0 -21 12 9 1.30042e-11 +21 12 9 0 22 12 9 0 23 12 9 0 24 12 9 0 @@ -8606,7 +8606,7 @@ 25 16 9 0 26 16 9 0 27 16 9 0 -28 16 9 0 +28 16 9 1.28572e-11 29 16 9 0 0 17 9 0 1 17 9 0 @@ -8616,7 +8616,7 @@ 5 17 9 0 6 17 9 0 7 17 9 0 -8 17 9 0 +8 17 9 1.99796e-12 9 17 9 0 10 17 9 0 11 17 9 0 @@ -8696,7 +8696,7 @@ 25 19 9 0 26 19 9 0 27 19 9 0 -28 19 9 0 +28 19 9 1.34789e-11 29 19 9 0 0 20 9 0 1 20 9 0 @@ -8716,7 +8716,7 @@ 15 20 9 0 16 20 9 0 17 20 9 0 -18 20 9 0 +18 20 9 1.51217e-12 19 20 9 0 20 20 9 0 21 20 9 0 @@ -8771,7 +8771,7 @@ 10 22 9 0 11 22 9 0 12 22 9 0 -13 22 9 0 +13 22 9 2.17695e-12 14 22 9 0 15 22 9 0 16 22 9 0 @@ -8841,7 +8841,7 @@ 20 24 9 0 21 24 9 0 22 24 9 0 -23 24 9 0 +23 24 9 4.1941e-11 24 24 9 0 25 24 9 0 26 24 9 0 @@ -8948,7 +8948,7 @@ 7 28 9 0 8 28 9 0 9 28 9 0 -10 28 9 0 +10 28 9 1.08709e-10 11 28 9 0 12 28 9 0 13 28 9 0 @@ -9220,8 +9220,8 @@ 9 7 10 0 10 7 10 0 11 7 10 0 -12 7 10 3.97663e-12 -13 7 10 3.03338e-12 +12 7 10 0 +13 7 10 0 14 7 10 0 15 7 10 0 16 7 10 0 @@ -9457,7 +9457,7 @@ 6 15 10 0 7 15 10 0 8 15 10 0 -9 15 10 0 +9 15 10 8.15562e-12 10 15 10 0 11 15 10 0 12 15 10 0 @@ -9800,7 +9800,7 @@ 19 26 10 0 20 26 10 0 21 26 10 0 -22 26 10 0 +22 26 10 8.92451e-12 23 26 10 0 24 26 10 0 25 26 10 0 @@ -9848,7 +9848,7 @@ 7 28 10 0 8 28 10 0 9 28 10 0 -10 28 10 0 +10 28 10 2.51007e-10 11 28 10 0 12 28 10 0 13 28 10 0 @@ -9878,7 +9878,7 @@ 7 29 10 0 8 29 10 0 9 29 10 0 -10 29 10 0 +10 29 10 3.11097e-10 11 29 10 0 12 29 10 0 13 29 10 0 @@ -10478,7 +10478,7 @@ 7 19 11 0 8 19 11 0 9 19 11 0 -10 19 11 0 +10 19 11 1.00299e-11 11 19 11 0 12 19 11 0 13 19 11 0 @@ -10509,7 +10509,7 @@ 8 20 11 0 9 20 11 0 10 20 11 0 -11 20 11 0 +11 20 11 9.68737e-12 12 20 11 0 13 20 11 0 14 20 11 0 @@ -10596,7 +10596,7 @@ 5 23 11 0 6 23 11 0 7 23 11 0 -8 23 11 0 +8 23 11 7.20932e-13 9 23 11 0 10 23 11 0 11 23 11 0 @@ -10638,7 +10638,7 @@ 17 24 11 0 18 24 11 0 19 24 11 0 -20 24 11 0 +20 24 11 2.83454e-12 21 24 11 0 22 24 11 0 23 24 11 0 @@ -11052,7 +11052,7 @@ 11 8 12 0 12 8 12 0 13 8 12 0 -14 8 12 8.07058e-13 +14 8 12 0 15 8 12 0 16 8 12 0 17 8 12 0 @@ -11345,9 +11345,9 @@ 4 18 12 0 5 18 12 0 6 18 12 0 -7 18 12 0 +7 18 12 2.25462e-11 8 18 12 0 -9 18 12 0 +9 18 12 3.63578e-11 10 18 12 0 11 18 12 0 12 18 12 0 @@ -11378,7 +11378,7 @@ 7 19 12 0 8 19 12 0 9 19 12 0 -10 19 12 0 +10 19 12 3.87144e-12 11 19 12 0 12 19 12 0 13 19 12 0 @@ -11527,7 +11527,7 @@ 6 24 12 0 7 24 12 0 8 24 12 0 -9 24 12 0 +9 24 12 6.20457e-14 10 24 12 0 11 24 12 0 12 24 12 0 @@ -11557,7 +11557,7 @@ 6 25 12 0 7 25 12 0 8 25 12 0 -9 25 12 0 +9 25 12 5.22918e-14 10 25 12 0 11 25 12 0 12 25 12 0 @@ -11682,7 +11682,7 @@ 11 29 12 0 12 29 12 0 13 29 12 0 -14 29 12 0 +14 29 12 7.54442e-11 15 29 12 0 16 29 12 0 17 29 12 0 @@ -11707,7 +11707,7 @@ 6 0 13 0 7 0 13 0 8 0 13 0 -9 0 13 5.08264e-12 +9 0 13 0 10 0 13 0 11 0 13 0 12 0 13 0 @@ -11737,7 +11737,7 @@ 6 1 13 0 7 1 13 0 8 1 13 0 -9 1 13 8.90974e-12 +9 1 13 0 10 1 13 0 11 1 13 0 12 1 13 0 @@ -11954,8 +11954,8 @@ 13 8 13 0 14 8 13 0 15 8 13 0 -16 8 13 5.93266e-12 -17 8 13 8.66669e-12 +16 8 13 0 +17 8 13 0 18 8 13 0 19 8 13 0 20 8 13 0 @@ -12066,7 +12066,7 @@ 5 12 13 0 6 12 13 0 7 12 13 0 -8 12 13 3.53996e-11 +8 12 13 0 9 12 13 0 10 12 13 0 11 12 13 0 @@ -12408,7 +12408,7 @@ 17 23 13 0 18 23 13 0 19 23 13 0 -20 23 13 0 +20 23 13 1.20367e-11 21 23 13 0 22 23 13 0 23 23 13 0 @@ -12461,7 +12461,7 @@ 10 25 13 0 11 25 13 0 12 25 13 0 -13 25 13 0 +13 25 13 1.80856e-13 14 25 13 0 15 25 13 0 16 25 13 0 @@ -12554,12 +12554,12 @@ 13 28 13 0 14 28 13 0 15 28 13 0 -16 28 13 3.25972e-11 +16 28 13 0 17 28 13 0 18 28 13 0 19 28 13 0 20 28 13 0 -21 28 13 7.76626e-11 +21 28 13 0 22 28 13 0 23 28 13 0 24 28 13 0 @@ -12669,7 +12669,7 @@ 8 2 14 0 9 2 14 0 10 2 14 0 -11 2 14 8.98972e-12 +11 2 14 0 12 2 14 0 13 2 14 0 14 2 14 0 @@ -13330,7 +13330,7 @@ 9 24 14 0 10 24 14 0 11 24 14 0 -12 24 14 0 +12 24 14 3.95582e-12 13 24 14 0 14 24 14 0 15 24 14 0 @@ -13394,7 +13394,7 @@ 13 26 14 0 14 26 14 0 15 26 14 0 -16 26 14 1.12804e-10 +16 26 14 0 17 26 14 0 18 26 14 0 19 26 14 0 @@ -13428,7 +13428,7 @@ 17 27 14 0 18 27 14 0 19 27 14 0 -20 27 14 0 +20 27 14 2.23773e-11 21 27 14 0 22 27 14 0 23 27 14 0 @@ -13453,7 +13453,7 @@ 12 28 14 0 13 28 14 0 14 28 14 0 -15 28 14 2.15976e-10 +15 28 14 0 16 28 14 0 17 28 14 0 18 28 14 0 @@ -13480,9 +13480,9 @@ 9 29 14 0 10 29 14 0 11 29 14 0 -12 29 14 3.5779e-12 +12 29 14 0 13 29 14 0 -14 29 14 2.22498e-11 +14 29 14 0 15 29 14 0 16 29 14 0 17 29 14 0 @@ -13840,7 +13840,7 @@ 9 11 15 0 10 11 15 0 11 11 15 0 -12 11 15 7.60082e-11 +12 11 15 0 13 11 15 0 14 11 15 0 15 11 15 0 @@ -13901,7 +13901,7 @@ 10 13 15 0 11 13 15 0 12 13 15 0 -13 13 15 1.78688e-10 +13 13 15 0 14 13 15 0 15 13 15 0 16 13 15 0 @@ -13974,7 +13974,7 @@ 23 15 15 0 24 15 15 0 25 15 15 0 -26 15 15 4.0312e-12 +26 15 15 0 27 15 15 0 28 15 15 0 29 15 15 0 @@ -14261,7 +14261,7 @@ 10 25 15 0 11 25 15 0 12 25 15 0 -13 25 15 0 +13 25 15 4.44043e-13 14 25 15 0 15 25 15 0 16 25 15 0 @@ -14291,7 +14291,7 @@ 10 26 15 0 11 26 15 0 12 26 15 0 -13 26 15 0 +13 26 15 1.80422e-10 14 26 15 0 15 26 15 0 16 26 15 0 @@ -14321,16 +14321,16 @@ 10 27 15 0 11 27 15 0 12 27 15 0 -13 27 15 0 -14 27 15 0 +13 27 15 8.26565e-11 +14 27 15 1.78766e-10 15 27 15 0 -16 27 15 1.66567e-10 +16 27 15 0 17 27 15 0 18 27 15 0 19 27 15 0 20 27 15 0 21 27 15 0 -22 27 15 5.1395e-12 +22 27 15 0 23 27 15 0 24 27 15 0 25 27 15 0 @@ -14349,12 +14349,12 @@ 8 28 15 0 9 28 15 0 10 28 15 0 -11 28 15 0 +11 28 15 1.62724e-10 12 28 15 0 13 28 15 0 14 28 15 0 15 28 15 0 -16 28 15 7.27945e-11 +16 28 15 0 17 28 15 0 18 28 15 0 19 28 15 0 @@ -14469,7 +14469,7 @@ 8 2 16 0 9 2 16 0 10 2 16 0 -11 2 16 1.35121e-12 +11 2 16 0 12 2 16 0 13 2 16 0 14 2 16 0 @@ -14696,7 +14696,7 @@ 25 9 16 0 26 9 16 0 27 9 16 0 -28 9 16 1.95054e-11 +28 9 16 0 29 9 16 0 0 10 16 0 1 10 16 0 @@ -14937,7 +14937,7 @@ 26 17 16 0 27 17 16 0 28 17 16 0 -29 17 16 3.65516e-12 +29 17 16 0 0 18 16 0 1 18 16 0 2 18 16 0 @@ -15015,9 +15015,9 @@ 14 20 16 0 15 20 16 0 16 20 16 0 -17 20 16 2.50793e-11 +17 20 16 0 18 20 16 0 -19 20 16 5.17226e-12 +19 20 16 0 20 20 16 0 21 20 16 0 22 20 16 0 @@ -15046,7 +15046,7 @@ 15 21 16 0 16 21 16 0 17 21 16 0 -18 21 16 5.30198e-12 +18 21 16 0 19 21 16 0 20 21 16 0 21 21 16 0 @@ -15192,7 +15192,7 @@ 11 26 16 0 12 26 16 0 13 26 16 0 -14 26 16 0 +14 26 16 2.23359e-11 15 26 16 0 16 26 16 0 17 26 16 0 @@ -15248,8 +15248,8 @@ 7 28 16 0 8 28 16 0 9 28 16 0 -10 28 16 0 -11 28 16 0 +10 28 16 1.19341e-10 +11 28 16 6.19624e-12 12 28 16 0 13 28 16 0 14 28 16 0 @@ -15476,7 +15476,7 @@ 25 5 17 0 26 5 17 0 27 5 17 0 -28 5 17 4.38685e-13 +28 5 17 0 29 5 17 0 0 6 17 0 1 6 17 0 @@ -15774,7 +15774,7 @@ 23 15 17 0 24 15 17 0 25 15 17 0 -26 15 17 5.75409e-12 +26 15 17 0 27 15 17 0 28 15 17 0 29 15 17 0 @@ -15824,7 +15824,7 @@ 13 17 17 0 14 17 17 0 15 17 17 0 -16 17 17 0 +16 17 17 2.5341e-12 17 17 17 0 18 17 17 0 19 17 17 0 @@ -15886,7 +15886,7 @@ 15 19 17 0 16 19 17 0 17 19 17 0 -18 19 17 0 +18 19 17 1.17387e-11 19 19 17 0 20 19 17 0 21 19 17 0 @@ -16038,7 +16038,7 @@ 17 24 17 0 18 24 17 0 19 24 17 0 -20 24 17 0 +20 24 17 3.09141e-11 21 24 17 0 22 24 17 0 23 24 17 0 @@ -16093,7 +16093,7 @@ 12 26 17 0 13 26 17 0 14 26 17 0 -15 26 17 0 +15 26 17 6.46021e-12 16 26 17 0 17 26 17 0 18 26 17 0 @@ -16181,7 +16181,7 @@ 10 29 17 0 11 29 17 0 12 29 17 0 -13 29 17 2.71459e-10 +13 29 17 0 14 29 17 0 15 29 17 0 16 29 17 0 @@ -16710,7 +16710,7 @@ 29 16 18 0 0 17 18 0 1 17 18 0 -2 17 18 2.09757e-12 +2 17 18 0 3 17 18 0 4 17 18 0 5 17 18 0 @@ -16738,7 +16738,7 @@ 27 17 18 0 28 17 18 0 29 17 18 0 -0 18 18 5.28738e-12 +0 18 18 0 1 18 18 0 2 18 18 0 3 18 18 0 @@ -16845,7 +16845,7 @@ 14 21 18 0 15 21 18 0 16 21 18 0 -17 21 18 0 +17 21 18 5.32863e-11 18 21 18 0 19 21 18 0 20 21 18 0 @@ -16869,11 +16869,11 @@ 8 22 18 0 9 22 18 0 10 22 18 0 -11 22 18 1.3372e-10 +11 22 18 0 12 22 18 0 13 22 18 0 14 22 18 0 -15 22 18 0 +15 22 18 6.47987e-12 16 22 18 0 17 22 18 0 18 22 18 0 @@ -16903,7 +16903,7 @@ 12 23 18 0 13 23 18 0 14 23 18 0 -15 23 18 0 +15 23 18 7.72651e-13 16 23 18 0 17 23 18 0 18 23 18 0 @@ -16959,7 +16959,7 @@ 8 25 18 0 9 25 18 0 10 25 18 0 -11 25 18 0 +11 25 18 1.73774e-10 12 25 18 0 13 25 18 0 14 25 18 0 @@ -16988,8 +16988,8 @@ 7 26 18 0 8 26 18 0 9 26 18 0 -10 26 18 0 -11 26 18 0 +10 26 18 1.07736e-11 +11 26 18 4.42053e-11 12 26 18 0 13 26 18 0 14 26 18 0 @@ -17023,7 +17023,7 @@ 12 27 18 0 13 27 18 0 14 27 18 0 -15 27 18 0 +15 27 18 3.57513e-11 16 27 18 0 17 27 18 0 18 27 18 0 @@ -17050,12 +17050,12 @@ 9 28 18 0 10 28 18 0 11 28 18 0 -12 28 18 9.74012e-11 +12 28 18 0 13 28 18 0 14 28 18 0 -15 28 18 0 +15 28 18 4.96984e-11 16 28 18 0 -17 28 18 1.25339e-10 +17 28 18 0 18 28 18 0 19 28 18 0 20 28 18 0 @@ -17077,7 +17077,7 @@ 6 29 18 0 7 29 18 0 8 29 18 0 -9 29 18 3.0563e-10 +9 29 18 0 10 29 18 0 11 29 18 0 12 29 18 0 @@ -17132,7 +17132,7 @@ 1 1 19 0 2 1 19 0 3 1 19 0 -4 1 19 2.02927e-12 +4 1 19 0 5 1 19 0 6 1 19 0 7 1 19 0 @@ -17622,7 +17622,7 @@ 11 17 19 0 12 17 19 0 13 17 19 0 -14 17 19 0 +14 17 19 2.01074e-12 15 17 19 0 16 17 19 0 17 17 19 0 @@ -17637,7 +17637,7 @@ 26 17 19 0 27 17 19 0 28 17 19 0 -29 17 19 1.22449e-12 +29 17 19 0 0 18 19 0 1 18 19 0 2 18 19 0 @@ -17712,7 +17712,7 @@ 11 20 19 0 12 20 19 0 13 20 19 0 -14 20 19 1.38423e-11 +14 20 19 0 15 20 19 0 16 20 19 0 17 20 19 0 @@ -17735,7 +17735,7 @@ 4 21 19 0 5 21 19 0 6 21 19 0 -7 21 19 0 +7 21 19 3.06404e-11 8 21 19 0 9 21 19 0 10 21 19 0 @@ -17809,7 +17809,7 @@ 18 23 19 0 19 23 19 0 20 23 19 0 -21 23 19 0 +21 23 19 5.23312e-12 22 23 19 0 23 23 19 0 24 23 19 0 @@ -17863,7 +17863,7 @@ 12 25 19 0 13 25 19 0 14 25 19 0 -15 25 19 0 +15 25 19 7.22876e-13 16 25 19 0 17 25 19 0 18 25 19 0 @@ -17895,12 +17895,12 @@ 14 26 19 0 15 26 19 0 16 26 19 0 -17 26 19 0 +17 26 19 1.17492e-10 18 26 19 0 19 26 19 0 20 26 19 0 21 26 19 0 -22 26 19 0 +22 26 19 2.6163e-11 23 26 19 0 24 26 19 0 25 26 19 0 @@ -17978,7 +17978,7 @@ 7 29 19 0 8 29 19 0 9 29 19 0 -10 29 19 0 +10 29 19 1.8515e-10 11 29 19 0 12 29 19 0 13 29 19 0 @@ -18494,7 +18494,7 @@ 13 16 20 0 14 16 20 0 15 16 20 0 -16 16 20 6.1714e-12 +16 16 20 0 17 16 20 0 18 16 20 0 19 16 20 0 @@ -18545,7 +18545,7 @@ 4 18 20 0 5 18 20 0 6 18 20 0 -7 18 20 5.64804e-11 +7 18 20 0 8 18 20 0 9 18 20 0 10 18 20 0 @@ -18612,7 +18612,7 @@ 11 20 20 0 12 20 20 0 13 20 20 0 -14 20 20 5.06161e-11 +14 20 20 0 15 20 20 0 16 20 20 0 17 20 20 0 @@ -18641,12 +18641,12 @@ 10 21 20 0 11 21 20 0 12 21 20 0 -13 21 20 0 -14 21 20 5.81544e-11 +13 21 20 2.98093e-12 +14 21 20 0 15 21 20 0 16 21 20 0 17 21 20 0 -18 21 20 0 +18 21 20 8.53424e-13 19 21 20 0 20 21 20 0 21 21 20 0 @@ -18673,8 +18673,8 @@ 12 22 20 0 13 22 20 0 14 22 20 0 -15 22 20 0 -16 22 20 0 +15 22 20 5.85859e-13 +16 22 20 9.72489e-13 17 22 20 0 18 22 20 0 19 22 20 0 @@ -18709,7 +18709,7 @@ 18 23 20 0 19 23 20 0 20 23 20 0 -21 23 20 0 +21 23 20 5.9996e-12 22 23 20 0 23 23 20 0 24 23 20 0 @@ -18733,7 +18733,7 @@ 12 24 20 0 13 24 20 0 14 24 20 0 -15 24 20 0 +15 24 20 1.21027e-10 16 24 20 0 17 24 20 0 18 24 20 0 @@ -18767,7 +18767,7 @@ 16 25 20 0 17 25 20 0 18 25 20 0 -19 25 20 0 +19 25 20 5.92457e-12 20 25 20 0 21 25 20 0 22 25 20 0 @@ -18826,7 +18826,7 @@ 15 27 20 0 16 27 20 0 17 27 20 0 -18 27 20 0 +18 27 20 1.24367e-13 19 27 20 0 20 27 20 0 21 27 20 0 @@ -18878,7 +18878,7 @@ 7 29 20 0 8 29 20 0 9 29 20 0 -10 29 20 0 +10 29 20 1.03941e-10 11 29 20 0 12 29 20 0 13 29 20 0 @@ -19384,7 +19384,7 @@ 3 16 21 0 4 16 21 0 5 16 21 0 -6 16 21 0 +6 16 21 1.54294e-11 7 16 21 0 8 16 21 0 9 16 21 0 @@ -19421,7 +19421,7 @@ 10 17 21 0 11 17 21 0 12 17 21 0 -13 17 21 0 +13 17 21 8.88564e-11 14 17 21 0 15 17 21 0 16 17 21 0 @@ -19511,8 +19511,8 @@ 10 20 21 0 11 20 21 0 12 20 21 0 -13 20 21 0 -14 20 21 1.62027e-11 +13 20 21 3.75783e-12 +14 20 21 0 15 20 21 0 16 20 21 0 17 20 21 0 @@ -19542,7 +19542,7 @@ 11 21 21 0 12 21 21 0 13 21 21 0 -14 21 21 7.44177e-11 +14 21 21 0 15 21 21 0 16 21 21 0 17 21 21 0 @@ -19604,7 +19604,7 @@ 13 23 21 0 14 23 21 0 15 23 21 0 -16 23 21 0 +16 23 21 1.7372e-10 17 23 21 0 18 23 21 0 19 23 21 0 @@ -19686,7 +19686,7 @@ 5 26 21 0 6 26 21 0 7 26 21 0 -8 26 21 0 +8 26 21 3.38938e-12 9 26 21 0 10 26 21 0 11 26 21 0 @@ -19756,7 +19756,7 @@ 15 28 21 0 16 28 21 0 17 28 21 0 -18 28 21 0 +18 28 21 3.28936e-12 19 28 21 0 20 28 21 0 21 28 21 0 @@ -19786,8 +19786,8 @@ 15 29 21 0 16 29 21 0 17 29 21 0 -18 29 21 0 -19 29 21 0 +18 29 21 2.12507e-10 +19 29 21 6.8272e-11 20 29 21 0 21 29 21 0 22 29 21 0 @@ -20198,7 +20198,7 @@ 7 13 22 0 8 13 22 0 9 13 22 0 -10 13 22 1.75361e-10 +10 13 22 0 11 13 22 0 12 13 22 0 13 13 22 0 @@ -20411,7 +20411,7 @@ 10 20 22 0 11 20 22 0 12 20 22 0 -13 20 22 3.24308e-11 +13 20 22 0 14 20 22 0 15 20 22 0 16 20 22 0 @@ -20441,7 +20441,7 @@ 10 21 22 0 11 21 22 0 12 21 22 0 -13 21 22 1.82371e-11 +13 21 22 0 14 21 22 0 15 21 22 0 16 21 22 0 @@ -20474,7 +20474,7 @@ 13 22 22 0 14 22 22 0 15 22 22 0 -16 22 22 0 +16 22 22 7.14727e-11 17 22 22 0 18 22 22 0 19 22 22 0 @@ -20504,9 +20504,9 @@ 13 23 22 0 14 23 22 0 15 23 22 0 -16 23 22 0 +16 23 22 9.44902e-12 17 23 22 0 -18 23 22 0 +18 23 22 1.90911e-10 19 23 22 0 20 23 22 0 21 23 22 0 @@ -20564,10 +20564,10 @@ 13 25 22 0 14 25 22 0 15 25 22 0 -16 25 22 0 +16 25 22 1.32403e-11 17 25 22 0 18 25 22 0 -19 25 22 8.92449e-12 +19 25 22 0 20 25 22 0 21 25 22 0 22 25 22 0 @@ -20587,7 +20587,7 @@ 6 26 22 0 7 26 22 0 8 26 22 0 -9 26 22 0 +9 26 22 3.77775e-11 10 26 22 0 11 26 22 0 12 26 22 0 @@ -20596,7 +20596,7 @@ 15 26 22 0 16 26 22 0 17 26 22 0 -18 26 22 0 +18 26 22 3.43652e-12 19 26 22 0 20 26 22 0 21 26 22 0 @@ -20626,11 +20626,11 @@ 15 27 22 0 16 27 22 0 17 27 22 0 -18 27 22 0 +18 27 22 1.48085e-11 19 27 22 0 20 27 22 0 21 27 22 0 -22 27 22 0 +22 27 22 4.55151e-11 23 27 22 0 24 27 22 0 25 27 22 0 @@ -20675,8 +20675,8 @@ 4 29 22 0 5 29 22 0 6 29 22 0 -7 29 22 0 -8 29 22 0 +7 29 22 7.24627e-11 +8 29 22 5.89924e-11 9 29 22 0 10 29 22 0 11 29 22 0 @@ -21096,8 +21096,8 @@ 5 13 23 0 6 13 23 0 7 13 23 0 -8 13 23 2.41951e-10 -9 13 23 6.86574e-11 +8 13 23 0 +9 13 23 0 10 13 23 0 11 13 23 0 12 13 23 0 @@ -21126,7 +21126,7 @@ 5 14 23 0 6 14 23 0 7 14 23 0 -8 14 23 2.28759e-11 +8 14 23 0 9 14 23 0 10 14 23 0 11 14 23 0 @@ -21242,7 +21242,7 @@ 1 18 23 0 2 18 23 0 3 18 23 0 -4 18 23 5.51805e-11 +4 18 23 0 5 18 23 0 6 18 23 0 7 18 23 0 @@ -21250,14 +21250,14 @@ 9 18 23 0 10 18 23 0 11 18 23 0 -12 18 23 0 +12 18 23 1.01805e-12 13 18 23 0 14 18 23 0 15 18 23 0 16 18 23 0 17 18 23 0 18 18 23 0 -19 18 23 2.24598e-12 +19 18 23 0 20 18 23 0 21 18 23 0 22 18 23 0 @@ -21315,8 +21315,8 @@ 14 20 23 0 15 20 23 0 16 20 23 0 -17 20 23 0 -18 20 23 0 +17 20 23 5.09242e-12 +18 20 23 1.11512e-12 19 20 23 0 20 20 23 0 21 20 23 0 @@ -21393,7 +21393,7 @@ 2 23 23 0 3 23 23 0 4 23 23 0 -5 23 23 0 +5 23 23 2.55156e-12 6 23 23 0 7 23 23 0 8 23 23 0 @@ -21427,15 +21427,15 @@ 6 24 23 0 7 24 23 0 8 24 23 0 -9 24 23 0 +9 24 23 1.54141e-10 10 24 23 0 11 24 23 0 12 24 23 0 13 24 23 0 14 24 23 0 -15 24 23 8.34997e-11 -16 24 23 6.76075e-11 -17 24 23 0 +15 24 23 0 +16 24 23 0 +17 24 23 3.03801e-13 18 24 23 0 19 24 23 0 20 24 23 0 @@ -21465,7 +21465,7 @@ 14 25 23 0 15 25 23 0 16 25 23 0 -17 25 23 0 +17 25 23 8.79588e-13 18 25 23 0 19 25 23 0 20 25 23 0 @@ -21517,7 +21517,7 @@ 6 27 23 0 7 27 23 0 8 27 23 0 -9 27 23 0 +9 27 23 2.59107e-11 10 27 23 0 11 27 23 0 12 27 23 0 @@ -21551,7 +21551,7 @@ 10 28 23 0 11 28 23 0 12 28 23 0 -13 28 23 0 +13 28 23 4.97719e-12 14 28 23 0 15 28 23 0 16 28 23 0 @@ -21588,8 +21588,8 @@ 17 29 23 0 18 29 23 0 19 29 23 0 -20 29 23 0 -21 29 23 0 +20 29 23 4.42364e-11 +21 29 23 2.42234e-10 22 29 23 0 23 29 23 0 24 29 23 0 @@ -21731,7 +21731,7 @@ 10 4 24 0 11 4 24 0 12 4 24 0 -13 4 24 3.42837e-12 +13 4 24 0 14 4 24 0 15 4 24 0 16 4 24 0 @@ -21913,7 +21913,7 @@ 12 10 24 0 13 10 24 0 14 10 24 0 -15 10 24 1.11427e-10 +15 10 24 0 16 10 24 0 17 10 24 0 18 10 24 0 @@ -22176,7 +22176,7 @@ 5 19 24 0 6 19 24 0 7 19 24 0 -8 19 24 1.37685e-10 +8 19 24 0 9 19 24 0 10 19 24 0 11 19 24 0 @@ -22205,7 +22205,7 @@ 4 20 24 0 5 20 24 0 6 20 24 0 -7 20 24 0 +7 20 24 6.12103e-11 8 20 24 0 9 20 24 0 10 20 24 0 @@ -22213,8 +22213,8 @@ 12 20 24 0 13 20 24 0 14 20 24 0 -15 20 24 3.52822e-11 -16 20 24 1.28099e-10 +15 20 24 0 +16 20 24 0 17 20 24 0 18 20 24 0 19 20 24 0 @@ -22237,14 +22237,14 @@ 6 21 24 0 7 21 24 0 8 21 24 0 -9 21 24 0 +9 21 24 2.58452e-11 10 21 24 0 11 21 24 0 12 21 24 0 13 21 24 0 14 21 24 0 15 21 24 0 -16 21 24 0 +16 21 24 2.01464e-13 17 21 24 0 18 21 24 0 19 21 24 0 @@ -22323,7 +22323,7 @@ 2 24 24 0 3 24 24 0 4 24 24 0 -5 24 24 0 +5 24 24 1.17866e-12 6 24 24 0 7 24 24 0 8 24 24 0 @@ -22334,7 +22334,7 @@ 13 24 24 0 14 24 24 0 15 24 24 0 -16 24 24 1.1007e-10 +16 24 24 0 17 24 24 0 18 24 24 0 19 24 24 0 @@ -22391,7 +22391,7 @@ 10 26 24 0 11 26 24 0 12 26 24 0 -13 26 24 5.89001e-11 +13 26 24 0 14 26 24 0 15 26 24 0 16 26 24 0 @@ -22417,13 +22417,13 @@ 6 27 24 0 7 27 24 0 8 27 24 0 -9 27 24 0 +9 27 24 3.57918e-13 10 27 24 0 11 27 24 0 12 27 24 0 13 27 24 0 14 27 24 0 -15 27 24 4.56039e-11 +15 27 24 0 16 27 24 0 17 27 24 0 18 27 24 0 @@ -22455,10 +22455,10 @@ 14 28 24 0 15 28 24 0 16 28 24 0 -17 28 24 3.25477e-11 +17 28 24 0 18 28 24 0 19 28 24 0 -20 28 24 0 +20 28 24 8.02879e-13 21 28 24 0 22 28 24 0 23 28 24 0 @@ -22542,7 +22542,7 @@ 11 1 25 0 12 1 25 0 13 1 25 0 -14 1 25 7.727e-11 +14 1 25 0 15 1 25 0 16 1 25 0 17 1 25 0 @@ -22631,7 +22631,7 @@ 10 4 25 0 11 4 25 0 12 4 25 0 -13 4 25 4.52997e-11 +13 4 25 0 14 4 25 0 15 4 25 0 16 4 25 0 @@ -22908,7 +22908,7 @@ 17 13 25 0 18 13 25 0 19 13 25 0 -20 13 25 0 +20 13 25 6.55802e-12 21 13 25 0 22 13 25 0 23 13 25 0 @@ -22999,7 +22999,7 @@ 18 16 25 0 19 16 25 0 20 16 25 0 -21 16 25 6.32428e-11 +21 16 25 0 22 16 25 0 23 16 25 0 24 16 25 0 @@ -23044,7 +23044,7 @@ 3 18 25 0 4 18 25 0 5 18 25 0 -6 18 25 0 +6 18 25 2.23947e-11 7 18 25 0 8 18 25 0 9 18 25 0 @@ -23082,7 +23082,7 @@ 11 19 25 0 12 19 25 0 13 19 25 0 -14 19 25 0 +14 19 25 6.60192e-12 15 19 25 0 16 19 25 0 17 19 25 0 @@ -23110,7 +23110,7 @@ 9 20 25 0 10 20 25 0 11 20 25 0 -12 20 25 2.8098e-10 +12 20 25 0 13 20 25 0 14 20 25 0 15 20 25 0 @@ -23142,7 +23142,7 @@ 11 21 25 0 12 21 25 0 13 21 25 0 -14 21 25 2.94471e-13 +14 21 25 0 15 21 25 0 16 21 25 0 17 21 25 0 @@ -23173,14 +23173,14 @@ 12 22 25 0 13 22 25 0 14 22 25 0 -15 22 25 1.80691e-11 +15 22 25 0 16 22 25 0 17 22 25 0 18 22 25 0 19 22 25 0 20 22 25 0 21 22 25 0 -22 22 25 0 +22 22 25 1.89015e-10 23 22 25 0 24 22 25 0 25 22 25 0 @@ -23202,7 +23202,7 @@ 11 23 25 0 12 23 25 0 13 23 25 0 -14 23 25 4.82309e-11 +14 23 25 0 15 23 25 0 16 23 25 0 17 23 25 0 @@ -23234,9 +23234,9 @@ 13 24 25 0 14 24 25 0 15 24 25 0 -16 24 25 8.67089e-11 -17 24 25 1.55325e-11 -18 24 25 2.07015e-10 +16 24 25 0 +17 24 25 0 +18 24 25 0 19 24 25 0 20 24 25 0 21 24 25 0 @@ -23259,7 +23259,7 @@ 8 25 25 0 9 25 25 0 10 25 25 0 -11 25 25 0 +11 25 25 6.67539e-11 12 25 25 0 13 25 25 0 14 25 25 0 @@ -23267,7 +23267,7 @@ 16 25 25 0 17 25 25 0 18 25 25 0 -19 25 25 1.95937e-11 +19 25 25 0 20 25 25 0 21 25 25 0 22 25 25 0 @@ -23294,7 +23294,7 @@ 13 26 25 0 14 26 25 0 15 26 25 0 -16 26 25 0 +16 26 25 8.95925e-12 17 26 25 0 18 26 25 0 19 26 25 0 @@ -23329,7 +23329,7 @@ 18 27 25 0 19 27 25 0 20 27 25 0 -21 27 25 5.66852e-11 +21 27 25 0 22 27 25 0 23 27 25 0 24 27 25 0 @@ -23355,7 +23355,7 @@ 14 28 25 0 15 28 25 0 16 28 25 0 -17 28 25 4.40359e-12 +17 28 25 0 18 28 25 0 19 28 25 0 20 28 25 0 @@ -23384,10 +23384,10 @@ 13 29 25 0 14 29 25 0 15 29 25 0 -16 29 25 1.74845e-10 -17 29 25 1.20089e-10 +16 29 25 0 +17 29 25 0 18 29 25 0 -19 29 25 0 +19 29 25 3.20569e-11 20 29 25 0 21 29 25 0 22 29 25 0 @@ -23696,7 +23696,7 @@ 25 9 26 0 26 9 26 0 27 9 26 0 -28 9 26 1.8476e-11 +28 9 26 0 29 9 26 0 0 10 26 0 1 10 26 0 @@ -23892,8 +23892,8 @@ 11 16 26 0 12 16 26 0 13 16 26 0 -14 16 26 0 -15 16 26 0 +14 16 26 7.40294e-13 +15 16 26 3.73709e-11 16 16 26 0 17 16 26 0 18 16 26 0 @@ -24049,7 +24049,7 @@ 18 21 26 0 19 21 26 0 20 21 26 0 -21 21 26 0 +21 21 26 4.69045e-11 22 21 26 0 23 21 26 0 24 21 26 0 @@ -24102,11 +24102,11 @@ 11 23 26 0 12 23 26 0 13 23 26 0 -14 23 26 0 +14 23 26 1.18803e-12 15 23 26 0 16 23 26 0 17 23 26 0 -18 23 26 1.287e-10 +18 23 26 0 19 23 26 0 20 23 26 0 21 23 26 0 @@ -24136,7 +24136,7 @@ 15 24 26 0 16 24 26 0 17 24 26 0 -18 24 26 9.26123e-11 +18 24 26 0 19 24 26 0 20 24 26 0 21 24 26 0 @@ -24195,10 +24195,10 @@ 14 26 26 0 15 26 26 0 16 26 26 0 -17 26 26 0 +17 26 26 1.8289e-10 18 26 26 0 19 26 26 0 -20 26 26 7.71428e-11 +20 26 26 0 21 26 26 0 22 26 26 0 23 26 26 0 @@ -24225,7 +24225,7 @@ 14 27 26 0 15 27 26 0 16 27 26 0 -17 27 26 0 +17 27 26 2.1622e-10 18 27 26 0 19 27 26 0 20 27 26 0 @@ -24236,8 +24236,8 @@ 25 27 26 0 26 27 26 0 27 27 26 0 -28 27 26 0 -29 27 26 0 +28 27 26 1.62656e-10 +29 27 26 1.84637e-12 0 28 26 0 1 28 26 0 2 28 26 0 @@ -24253,9 +24253,9 @@ 12 28 26 0 13 28 26 0 14 28 26 0 -15 28 26 0 +15 28 26 5.41662e-13 16 28 26 0 -17 28 26 3.92243e-10 +17 28 26 0 18 28 26 0 19 28 26 0 20 28 26 0 @@ -24266,7 +24266,7 @@ 25 28 26 0 26 28 26 0 27 28 26 0 -28 28 26 0 +28 28 26 1.28002e-10 29 28 26 0 0 29 26 0 1 29 26 0 @@ -24399,7 +24399,7 @@ 8 3 27 0 9 3 27 0 10 3 27 0 -11 3 27 4.70846e-14 +11 3 27 0 12 3 27 0 13 3 27 0 14 3 27 0 @@ -24554,7 +24554,7 @@ 13 8 27 0 14 8 27 0 15 8 27 0 -16 8 27 0 +16 8 27 7.37143e-12 17 8 27 0 18 8 27 0 19 8 27 0 @@ -24637,7 +24637,7 @@ 6 11 27 0 7 11 27 0 8 11 27 0 -9 11 27 0 +9 11 27 4.60157e-12 10 11 27 0 11 11 27 0 12 11 27 0 @@ -24654,7 +24654,7 @@ 23 11 27 0 24 11 27 0 25 11 27 0 -26 11 27 1.34993e-11 +26 11 27 0 27 11 27 0 28 11 27 0 29 11 27 0 @@ -24667,7 +24667,7 @@ 6 12 27 0 7 12 27 0 8 12 27 0 -9 12 27 0 +9 12 27 4.29229e-11 10 12 27 0 11 12 27 0 12 12 27 0 @@ -24762,7 +24762,7 @@ 11 15 27 0 12 15 27 0 13 15 27 0 -14 15 27 0 +14 15 27 9.35309e-12 15 15 27 0 16 15 27 0 17 15 27 0 @@ -24787,12 +24787,12 @@ 6 16 27 0 7 16 27 0 8 16 27 0 -9 16 27 0 +9 16 27 4.25597e-12 10 16 27 0 11 16 27 0 12 16 27 0 13 16 27 0 -14 16 27 0 +14 16 27 5.69656e-11 15 16 27 0 16 16 27 0 17 16 27 0 @@ -24845,7 +24845,7 @@ 4 18 27 0 5 18 27 0 6 18 27 0 -7 18 27 0 +7 18 27 1.20764e-11 8 18 27 0 9 18 27 0 10 18 27 0 @@ -24881,7 +24881,7 @@ 10 19 27 0 11 19 27 0 12 19 27 0 -13 19 27 0 +13 19 27 1.92992e-12 14 19 27 0 15 19 27 0 16 19 27 0 @@ -24891,7 +24891,7 @@ 20 19 27 0 21 19 27 0 22 19 27 0 -23 19 27 0 +23 19 27 8.48475e-11 24 19 27 0 25 19 27 0 26 19 27 0 @@ -24945,7 +24945,7 @@ 14 21 27 0 15 21 27 0 16 21 27 0 -17 21 27 0 +17 21 27 2.51901e-12 18 21 27 0 19 21 27 0 20 21 27 0 @@ -25058,16 +25058,16 @@ 7 25 27 0 8 25 27 0 9 25 27 0 -10 25 27 0 +10 25 27 2.59781e-13 11 25 27 0 12 25 27 0 13 25 27 0 14 25 27 0 -15 25 27 3.62232e-10 +15 25 27 0 16 25 27 0 17 25 27 0 18 25 27 0 -19 25 27 0 +19 25 27 1.60006e-10 20 25 27 0 21 25 27 0 22 25 27 0 @@ -25092,13 +25092,13 @@ 11 26 27 0 12 26 27 0 13 26 27 0 -14 26 27 8.83075e-11 -15 26 27 0 +14 26 27 0 +15 26 27 2.86931e-10 16 26 27 0 17 26 27 0 18 26 27 0 19 26 27 0 -20 26 27 1.62325e-10 +20 26 27 0 21 26 27 0 22 26 27 0 23 26 27 0 @@ -25122,10 +25122,10 @@ 11 27 27 0 12 27 27 0 13 27 27 0 -14 27 27 2.35251e-11 +14 27 27 0 15 27 27 0 16 27 27 0 -17 27 27 0 +17 27 27 9.32861e-13 18 27 27 0 19 27 27 0 20 27 27 0 @@ -25159,7 +25159,7 @@ 18 28 27 0 19 28 27 0 20 28 27 0 -21 28 27 2.26776e-10 +21 28 27 0 22 28 27 0 23 28 27 0 24 28 27 0 @@ -25536,8 +25536,8 @@ 5 11 28 0 6 11 28 0 7 11 28 0 -8 11 28 0 -9 11 28 0 +8 11 28 1.61404e-10 +9 11 28 2.69259e-11 10 11 28 0 11 11 28 0 12 11 28 0 @@ -25835,7 +25835,7 @@ 4 21 28 0 5 21 28 0 6 21 28 0 -7 21 28 5.00009e-11 +7 21 28 0 8 21 28 0 9 21 28 0 10 21 28 0 @@ -25846,7 +25846,7 @@ 15 21 28 0 16 21 28 0 17 21 28 0 -18 21 28 0 +18 21 28 4.90537e-12 19 21 28 0 20 21 28 0 21 21 28 0 @@ -25900,7 +25900,7 @@ 9 23 28 0 10 23 28 0 11 23 28 0 -12 23 28 0 +12 23 28 3.26768e-13 13 23 28 0 14 23 28 0 15 23 28 0 @@ -25967,7 +25967,7 @@ 16 25 28 0 17 25 28 0 18 25 28 0 -19 25 28 0 +19 25 28 1.29965e-10 20 25 28 0 21 25 28 0 22 25 28 0 @@ -25998,8 +25998,8 @@ 17 26 28 0 18 26 28 0 19 26 28 0 -20 26 28 0 -21 26 28 0 +20 26 28 1.99979e-10 +21 26 28 2.1796e-11 22 26 28 0 23 26 28 0 24 26 28 0 @@ -26081,8 +26081,8 @@ 10 29 28 0 11 29 28 0 12 29 28 0 -13 29 28 0 -14 29 28 0 +13 29 28 7.81821e-13 +14 29 28 5.74771e-14 15 29 28 0 16 29 28 0 17 29 28 0 @@ -26201,7 +26201,7 @@ 10 3 29 0 11 3 29 0 12 3 29 0 -13 3 29 2.20205e-12 +13 3 29 0 14 3 29 0 15 3 29 0 16 3 29 0 @@ -26415,7 +26415,7 @@ 14 10 29 0 15 10 29 0 16 10 29 0 -17 10 29 7.92071e-13 +17 10 29 0 18 10 29 0 19 10 29 0 20 10 29 0 @@ -26549,13 +26549,13 @@ 28 14 29 0 29 14 29 0 0 15 29 0 -1 15 29 0 +1 15 29 3.45841e-11 2 15 29 0 3 15 29 0 4 15 29 0 5 15 29 0 6 15 29 0 -7 15 29 0 +7 15 29 7.67865e-12 8 15 29 0 9 15 29 0 10 15 29 0 @@ -26579,7 +26579,7 @@ 28 15 29 0 29 15 29 0 0 16 29 0 -1 16 29 0 +1 16 29 7.01268e-11 2 16 29 0 3 16 29 0 4 16 29 0 @@ -26711,7 +26711,7 @@ 10 20 29 0 11 20 29 0 12 20 29 0 -13 20 29 0 +13 20 29 1.10182e-12 14 20 29 0 15 20 29 0 16 20 29 0 @@ -26735,7 +26735,7 @@ 4 21 29 0 5 21 29 0 6 21 29 0 -7 21 29 2.22857e-10 +7 21 29 0 8 21 29 0 9 21 29 0 10 21 29 0 @@ -26747,10 +26747,10 @@ 16 21 29 0 17 21 29 0 18 21 29 0 -19 21 29 0 +19 21 29 1.27441e-13 20 21 29 0 21 21 29 0 -22 21 29 0 +22 21 29 6.93862e-11 23 21 29 0 24 21 29 0 25 21 29 0 @@ -26778,10 +26778,10 @@ 17 22 29 0 18 22 29 0 19 22 29 0 -20 22 29 0 +20 22 29 6.4085e-13 21 22 29 0 -22 22 29 0 -23 22 29 0 +22 22 29 3.9963e-11 +23 22 29 6.29224e-11 24 22 29 0 25 22 29 0 26 22 29 0 @@ -26835,7 +26835,7 @@ 14 24 29 0 15 24 29 0 16 24 29 0 -17 24 29 0 +17 24 29 5.54643e-11 18 24 29 0 19 24 29 0 20 24 29 0 @@ -26849,7 +26849,7 @@ 28 24 29 0 29 24 29 0 0 25 29 0 -1 25 29 0 +1 25 29 1.77571e-12 2 25 29 0 3 25 29 0 4 25 29 0 @@ -26865,7 +26865,7 @@ 14 25 29 0 15 25 29 0 16 25 29 0 -17 25 29 0 +17 25 29 2.82154e-12 18 25 29 0 19 25 29 0 20 25 29 0 @@ -26922,7 +26922,7 @@ 11 27 29 0 12 27 29 0 13 27 29 0 -14 27 29 0 +14 27 29 3.5735e-13 15 27 29 0 16 27 29 0 17 27 29 0 diff --git a/examples/advanced/microbeam/microbeam.out b/examples/advanced/microbeam/microbeam.out index 964c6d2f72..c8b663c442 100644 --- a/examples/advanced/microbeam/microbeam.out +++ b/examples/advanced/microbeam/microbeam.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -337,6 +337,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -364,7 +365,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -400,8 +401,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -431,8 +431,8 @@ conv: for gamma SubType=14 BuildTable=1 Livermore5DConversion : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -556,7 +556,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -804,7 +804,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eCoulombScattering : Emin= 0 eV Emax= 100 TeV -##### Create analysis manager 0x1056c80 +##### Create analysis manager 0x1bbc000 Using analysis manager All Ntuples have been created -> Event # 1 generated @@ -839,7 +839,9 @@ All Ntuples have been created -----> total absorbed dose within Cytoplasm is (Gy) = 0.076925155692693 -> Event # 10 generated - ===> Sorry, the incident alpha particle has missed the targeted cell ! + ===> The incident alpha particle has reached the targeted cell : + -----> total absorbed dose within Nucleus is (Gy) = 0.31533845557577 + -----> total absorbed dose within Cytoplasm is (Gy) = 0.062571817397876 --> Total number of particles detected by the gas detector : 2 +-> Total number of particles detected by the gas detector : 3 diff --git a/examples/advanced/microelectronics/microelectronics.out b/examples/advanced/microelectronics/microelectronics.out index 2296e584e7..eb318e5673 100644 --- a/examples/advanced/microelectronics/microelectronics.out +++ b/examples/advanced/microelectronics/microelectronics.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -35,6 +35,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -87,6 +89,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 meV @@ -114,7 +117,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -150,8 +153,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -336,7 +338,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. ### Run 0 starts. -##### Create analysis manager 0xe3cae0 +##### Create analysis manager 0x1562090 Using analysis manager ... set ntuple merging row mode : row-wise - done ... create file : microelectronics.root - done @@ -348,17 +350,17 @@ Si Reading TCS file Elastic Total Cross file : Elastic/elsepa_elastic_cross_e_Si loaddata : Elastic/elsepa_elastic_cross_e_Si -Elastic Cumulated Diff Cross : /cvmfs/geant4.cern.ch/share/data/G4EMLOW8.1/microelec/Elastic/elsepa_elastic_cumulated_diffcross_e_Si.dat +Elastic Cumulated Diff Cross : /cvmfs/geant4.cern.ch/share/data/G4EMLOW8.2/microelec/Elastic/elsepa_elastic_cumulated_diffcross_e_Si.dat MicroElasticModel, Material 2 / 2 : G4_Si Si Reading TCS file Elastic Total Cross file : Elastic/elsepa_elastic_cross_e_Si loaddata : Elastic/elsepa_elastic_cross_e_Si -Elastic Cumulated Diff Cross : /cvmfs/geant4.cern.ch/share/data/G4EMLOW8.1/microelec/Elastic/elsepa_elastic_cumulated_diffcross_e_Si.dat +Elastic Cumulated Diff Cross : /cvmfs/geant4.cern.ch/share/data/G4EMLOW8.2/microelec/Elastic/elsepa_elastic_cumulated_diffcross_e_Si.dat Run terminated. Run Summary Number of events processed : 10 - User=0.330000s Real=0.408881s Sys=0.010000s + User=0.330000s Real=0.386700s Sys=0.050000s ... write file : microelectronics.root - done ... close file : microelectronics.root - done ... clear all data - done diff --git a/examples/advanced/nanobeam/History b/examples/advanced/nanobeam/History index cdba68324e..77ef61a617 100644 --- a/examples/advanced/nanobeam/History +++ b/examples/advanced/nanobeam/History @@ -4,6 +4,8 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-09-08 Susanna Guatelli (nanobeam-V11-00-01) +- Ranecu engine removed, default engine used now ## 2021-12-10 Ben Morgan (nanobeam-V11-00-00) - Change to new Markdown History format diff --git a/examples/advanced/nanobeam/nanobeam.cc b/examples/advanced/nanobeam/nanobeam.cc index 6b5f48e93a..4056c5c1e2 100644 --- a/examples/advanced/nanobeam/nanobeam.cc +++ b/examples/advanced/nanobeam/nanobeam.cc @@ -35,12 +35,8 @@ #include "DetectorConstruction.hh" #include "PhysicsList.hh" -int main(int argc,char** argv) { - - // Choose the Random engine - - G4Random::setTheEngine(new CLHEP::RanecuEngine); - +int main(int argc,char** argv) +{ // Construct the default run manager auto* runManager = G4RunManagerFactory::CreateRunManager(); diff --git a/examples/advanced/nanobeam/nanobeam.out b/examples/advanced/nanobeam/nanobeam.out index 1335a7503e..86e14f1140 100644 --- a/examples/advanced/nanobeam/nanobeam.out +++ b/examples/advanced/nanobeam/nanobeam.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -43,6 +43,8 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo G2 (T/m) = 16.4947 G3 (T/m) = 9.86677 G4 (T/m) = -6.24449 +G4FieldManager/SetEpsMin : eps_min = 1e-09 +G4FieldManager/SetEpsMax : eps_max = 1e-08 ( Note: unchanged eps_min= 1e-09 ) PhysicsList::SetCuts:CutLength : 1 um -------- WWWW ------- G4Exception-START -------- WWWW ------- @@ -98,6 +100,8 @@ G4Material WARNING: duplicate name of material Vacuum G2 (T/m) = 16.4953 G3 (T/m) = 9.86726 G4 (T/m) = -6.2448 +G4FieldManager/SetEpsMin : eps_min = 1e-09 +G4FieldManager/SetEpsMax : eps_max = 1e-08 ( Note: unchanged eps_min= 1e-09 ) ======================================================================= ====== Electromagnetic Physics Parameters ======== ======================================================================= @@ -107,6 +111,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -134,7 +139,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -292,119 +297,137 @@ Index : 0 used in the geometry : Yes ================================================================== -##### Create analysis manager 0x130fcf0 +##### Create analysis manager 0x1a66b70 Using analysis manager Ntuple-1 created Ntuple-2 created Ntuple-3 created --> Event= 2: X0(mm)= -0.350574 X0(mm) = 0.351397 Z0(m) = -8.87 THETA(mrad)= -0.0583587 PHI(mrad)= 0.0535903 E0(MeV)= 2.99997 - =>IMAGE : X(microns)=-14.615138497977 Y(microns)=4.8506444532658 THETA(mrad)=-8.2634755881943 PHI(mrad)=14.970840864599 +-> Event= 5: X0(mm)= 1.18253 X0(mm) = -1.45582 Z0(m) = -8.87 THETA(mrad)= 0.0543853 PHI(mrad)= -0.0468346 E0(MeV)= 2.99993 + =>IMAGE : X(microns)=119.74368339778 Y(microns)=-37.276518392334 THETA(mrad)=18.785615900178 PHI(mrad)=-44.311740303309 --> Event= 3: X0(mm)= -0.086051067241418 X0(mm) = 0.30625301427677 Z0(m) = -8.87 THETA(mrad)= -0.0062443981190946 PHI(mrad)= 0.076499579504345 E0(MeV)= 3.0000171217089 - =>IMAGE : X(microns)=-1.8059061092373 Y(microns)=3.9408228375642 THETA(mrad)=-1.5012396997479 PHI(mrad)=16.066718983698 +-> Event= 7: X0(mm)= 0.75976995560219 X0(mm) = 0.95435568818852 Z0(m) = -8.87 THETA(mrad)= 0.046199346615738 PHI(mrad)= 0.066291186732206 E0(MeV)= 2.999996990618 + =>IMAGE : X(microns)=45.779520343524 Y(microns)=18.250412127152 THETA(mrad)=12.736063380638 PHI(mrad)=32.635240511954 --> Event= 6: X0(mm)= -0.67020745874248 X0(mm) = 0.38664382771754 Z0(m) = -8.87 THETA(mrad)= -0.066974174364989 PHI(mrad)= 0.072910081210034 E0(MeV)= 3.0000807810555 - =>IMAGE : X(microns)=-39.729929646976 Y(microns)=6.6031993751347 THETA(mrad)=-12.933405354464 PHI(mrad)=17.891590272864 +-> Event= 8: X0(mm)= -0.71848361648475 X0(mm) = 1.4299703204562 Z0(m) = -8.87 THETA(mrad)= -0.049100499439636 PHI(mrad)= 0.065853926366087 E0(MeV)= 2.9999770520854 + =>IMAGE : X(microns)=-50.182881004173 Y(microns)=33.223342553956 THETA(mrad)=-12.405503677342 PHI(mrad)=45.514652029005 --> Event= 10: X0(mm)= 0.60287957589054 X0(mm) = 0.7080715167675 Z0(m) = -8.87 THETA(mrad)= 0.057041542870381 PHI(mrad)= 0.040206237427358 E0(MeV)= 2.9998941214472 - =>IMAGE : X(microns)=32.876502314166 Y(microns)=11.187707937405 THETA(mrad)=11.42064202688 PHI(mrad)=23.297953385264 +-> Event= 10: X0(mm)= -1.8981984221294 X0(mm) = 0.084677924023045 Z0(m) = -8.87 THETA(mrad)= -0.094742167160032 PHI(mrad)= -0.0084784686558166 E0(MeV)= 2.9998221876414 + =>IMAGE : X(microns)=-373.67131828791 Y(microns)=1.6405753763607 THETA(mrad)=-31.033619299292 PHI(mrad)=1.4409161233523 --> Event= 11: X0(mm)= -0.028534188462388 X0(mm) = 0.020253654526918 Z0(m) = -8.87 THETA(mrad)= 0.068485088059658 PHI(mrad)= 0.020301401577701 E0(MeV)= 2.9999091491852 - =>IMAGE : X(microns)=1.2141442903583 Y(microns)=0.28996437351059 THETA(mrad)=4.0759114675446 PHI(mrad)=2.6088729453124 +-> Event= 13: X0(mm)= 0.80213247069997 X0(mm) = -0.82233137395837 Z0(m) = -8.87 THETA(mrad)= 0.060663384786713 PHI(mrad)= -0.048941067575756 E0(MeV)= 3.0000574584958 + =>IMAGE : X(microns)=54.112302422391 Y(microns)=-14.690779093913 THETA(mrad)=14.228974366153 PHI(mrad)=-27.289291413446 --> Event= 14: X0(mm)= 0.16090347786117 X0(mm) = -0.081999159607915 Z0(m) = -8.87 THETA(mrad)= 0.019785816576648 PHI(mrad)= -0.039324660789 E0(MeV)= 2.9999920921771 - =>IMAGE : X(microns)=3.5356145788481 Y(microns)=-0.99529846366829 THETA(mrad)=3.332884845457 PHI(mrad)=-6.2130431267584 +-> Event= 16: X0(mm)= -0.12101688657736 X0(mm) = 0.68076999055829 Z0(m) = -8.87 THETA(mrad)= 0.0018605470213378 PHI(mrad)= 0.065598966088302 E0(MeV)= 3.0000228292302 + =>IMAGE : X(microns)=-2.6149413257875 Y(microns)=9.5592843470186 THETA(mrad)=-1.4220301927063 PHI(mrad)=25.121912452159 --> Event= 18: X0(mm)= 0.4754453631828 X0(mm) = 0.11035232256611 Z0(m) = -8.87 THETA(mrad)= 0.068503371680473 PHI(mrad)= 0.070682466573986 E0(MeV)= 2.9999685995807 - =>IMAGE : X(microns)=23.625166671111 Y(microns)=2.0867241103549 THETA(mrad)=10.525956651766 PHI(mrad)=10.166318510987 +-> Event= 17: X0(mm)= -0.16073550598008 X0(mm) = -0.0016888924417938 Z0(m) = -8.87 THETA(mrad)= -0.082364450528326 PHI(mrad)= 0.064082407987341 E0(MeV)= 3.000073044396 + =>IMAGE : X(microns)=-8.3574569859091 Y(microns)=0.31231455832516 THETA(mrad)=-7.3938210927761 PHI(mrad)=6.4546786596348 --> Event= 20: X0(mm)= 0.20667925895533 X0(mm) = -0.27400828259202 Z0(m) = -8.87 THETA(mrad)= 0.0313219969655 PHI(mrad)= -0.052954806429599 E0(MeV)= 3.0000271663979 - =>IMAGE : X(microns)=5.4947441481688 Y(microns)=-3.3869559642762 THETA(mrad)=4.6654351010766 PHI(mrad)=-12.80404979398 +-> Event= 18: X0(mm)= -0.38099416624243 X0(mm) = 1.9150969978539 Z0(m) = -8.87 THETA(mrad)= -0.047521729003208 PHI(mrad)= 0.099339883363505 E0(MeV)= 2.9998980314801 + =>IMAGE : X(microns)=-30.938856425764 Y(microns)=58.936739280799 THETA(mrad)=-7.9746178769197 PHI(mrad)=62.108226663811 --> Event= 21: X0(mm)= 0.15111649809921 X0(mm) = -0.077813156086796 Z0(m) = -8.87 THETA(mrad)= 0.040413057333507 PHI(mrad)= -0.058930733843139 E0(MeV)= 2.9999629966134 - =>IMAGE : X(microns)=4.4194867430929 Y(microns)=-1.1058880556903 THETA(mrad)=4.5464183759424 PHI(mrad)=-8.088806947992 +-> Event= 20: X0(mm)= 0.84959974599978 X0(mm) = 0.81663427523914 Z0(m) = -8.87 THETA(mrad)= 0.063239825189189 PHI(mrad)= 0.057989571812667 E0(MeV)= 2.9999336054845 + =>IMAGE : X(microns)=62.505092256646 Y(microns)=15.58246381335 THETA(mrad)=15.016718157734 PHI(mrad)=28.058658099226 --> Event= 22: X0(mm)= 0.26074753875415 X0(mm) = -0.084979182001704 Z0(m) = -8.87 THETA(mrad)= 0.073365246452412 PHI(mrad)= -0.041557625897287 E0(MeV)= 3.0000104598681 - =>IMAGE : X(microns)=11.739796817943 Y(microns)=-1.238681553688 THETA(mrad)=8.0886256100936 PHI(mrad)=-6.5213432754239 +-> Event= 22: X0(mm)= 0.16117092128895 X0(mm) = -0.53832527938331 Z0(m) = -8.87 THETA(mrad)= 0.036637443679225 PHI(mrad)= -0.090288902260397 E0(MeV)= 3.000053620735 + =>IMAGE : X(microns)=5.510324640737 Y(microns)=-7.9594616726408 THETA(mrad)=4.4311621368922 PHI(mrad)=-23.76285351865 --> Event= 24: X0(mm)= -1.6440171508071 X0(mm) = 0.1811453908911 Z0(m) = -8.87 THETA(mrad)= -0.09956438716731 PHI(mrad)= 0.0025997657493583 E0(MeV)= 3.0000024453136 - =>IMAGE : X(microns)=-277.93345473185 Y(microns)=4.1389707020413 THETA(mrad)=-27.914589558641 PHI(mrad)=5.1888288561073 +-> Event= 26: X0(mm)= -0.0025564303913162 X0(mm) = -0.11353847255565 Z0(m) = -8.87 THETA(mrad)= -0.075487341711055 PHI(mrad)= 0.00035503453292465 E0(MeV)= 3.0000541149347 + =>IMAGE : X(microns)=-2.1108919127309 Y(microns)=-1.2125623959374 THETA(mrad)=-4.9260279681989 PHI(mrad)=-3.0434628797493 --> Event= 31: X0(mm)= -0.016022163470015 X0(mm) = 0.041404162571301 Z0(m) = -8.87 THETA(mrad)= 0.028542617532504 PHI(mrad)= 0.088134758705809 E0(MeV)= 3.0000432110726 - =>IMAGE : X(microns)=0.10940279773774 Y(microns)=0.73278491260197 THETA(mrad)=1.6453108565386 PHI(mrad)=10.062577768408 +-> Event= 27: X0(mm)= -0.28990927817825 X0(mm) = 0.22233765965948 Z0(m) = -8.87 THETA(mrad)= -0.044028944057658 PHI(mrad)= 0.069313879778252 E0(MeV)= 3.0000294781798 + =>IMAGE : X(microns)=-9.4098321549154 Y(microns)=3.0515205013156 THETA(mrad)=-6.5539063791575 PHI(mrad)=13.062567526824 --> Event= 36: X0(mm)= -0.0079086737969922 X0(mm) = -0.1848738373955 Z0(m) = -8.87 THETA(mrad)= 0.0092569578549554 PHI(mrad)= -0.068791407570621 E0(MeV)= 2.9999987305134 - =>IMAGE : X(microns)=-0.0023014339348747 Y(microns)=-2.2894284503929 THETA(mrad)=0.49907998646195 PHI(mrad)=-11.992307691014 +-> Event= 41: X0(mm)= 0.025553341042868 X0(mm) = -0.51396987258718 Z0(m) = -8.87 THETA(mrad)= -0.023006743478888 PHI(mrad)= -0.078122602745962 E0(MeV)= 3.0000171644994 + =>IMAGE : X(microns)=-0.11302722183096 Y(microns)=-7.039732670691 THETA(mrad)=-1.1655943837206 PHI(mrad)=-21.866672132029 --> Event= 41: X0(mm)= -0.0052936934761979 X0(mm) = 0.063381672744254 Z0(m) = -8.87 THETA(mrad)= 0.02160096985706 PHI(mrad)= -0.049328983057872 E0(MeV)= 3.0000031288488 - =>IMAGE : X(microns)=0.16317907390271 Y(microns)=0.55650397356069 THETA(mrad)=1.3321705383411 PHI(mrad)=-3.2844916125947 +-> Event= 42: X0(mm)= -0.061672709628229 X0(mm) = -0.1096453405637 Z0(m) = -8.87 THETA(mrad)= -0.082174117163239 PHI(mrad)= -0.047360848810427 E0(MeV)= 2.9999499105891 + =>IMAGE : X(microns)=-5.0277994596168 Y(microns)=-1.4787389889874 THETA(mrad)=-6.1163255964748 PHI(mrad)=-7.779020595473 --> Event= 45: X0(mm)= 1.0359873985916 X0(mm) = 1.4585907714292 Z0(m) = -8.87 THETA(mrad)= 0.049847294080646 PHI(mrad)= 0.085519303927924 E0(MeV)= 3.0000424805792 - =>IMAGE : X(microns)=93.185144512739 Y(microns)=39.668778375446 THETA(mrad)=16.573388211469 PHI(mrad)=48.307577032095 +-> Event= 47: X0(mm)= -0.067902008821144 X0(mm) = -0.059708123979996 Z0(m) = -8.87 THETA(mrad)= -0.016041510401678 PHI(mrad)= -0.026458103324216 E0(MeV)= 2.9999616048403 + =>IMAGE : X(microns)=-1.4962697623524 Y(microns)=-0.69470778455426 THETA(mrad)=-1.90472554475 PHI(mrad)=-4.303316570256 --> Event= 49: X0(mm)= 0.69762782443828 X0(mm) = -1.6249490563253 Z0(m) = -8.87 THETA(mrad)= 0.040619733867931 PHI(mrad)= -0.076739556760004 E0(MeV)= 2.9999358606204 - =>IMAGE : X(microns)=48.93779215545 Y(microns)=-42.312570408263 THETA(mrad)=11.587416807211 PHI(mrad)=-51.921938678405 +-> Event= 50: X0(mm)= 0.39856687349661 X0(mm) = -0.14645931127695 Z0(m) = -8.87 THETA(mrad)= 0.049787485479666 PHI(mrad)= -0.025411890733457 E0(MeV)= 2.9999464727851 + =>IMAGE : X(microns)=14.741344527134 Y(microns)=-1.8809367330719 THETA(mrad)=8.3187429682996 PHI(mrad)=-6.551579391741 --> Event= 51: X0(mm)= 0.029132094194837 X0(mm) = 0.23781110045416 Z0(m) = -8.87 THETA(mrad)= 0.068763552807069 PHI(mrad)= 0.025225497903624 E0(MeV)= 2.9999801399332 - =>IMAGE : X(microns)=2.8236454534447 Y(microns)=2.7442922247906 THETA(mrad)=4.8296688679513 PHI(mrad)=9.0095603631759 +-> Event= 52: X0(mm)= -0.10903153172511 X0(mm) = -0.0096199123994156 Z0(m) = -8.87 THETA(mrad)= -0.070625495517696 PHI(mrad)= 0.018175969949998 E0(MeV)= 3.0000619458736 + =>IMAGE : X(microns)=-4.9626697815006 Y(microns)=-0.039334982441951 THETA(mrad)=-5.9696501161423 PHI(mrad)=1.5827543386442 --> Event= 53: X0(mm)= 0.18024795019127 X0(mm) = 0.26563720953034 Z0(m) = -8.87 THETA(mrad)= 0.068194327905589 PHI(mrad)= 0.046458164706904 E0(MeV)= 2.9999178358303 - =>IMAGE : X(microns)=8.2910811873301 Y(microns)=3.452244782081 THETA(mrad)=6.7239834318992 PHI(mrad)=11.919748205605 +-> Event= 53: X0(mm)= -1.7077262691894 X0(mm) = -0.49257928799008 Z0(m) = -8.87 THETA(mrad)= -0.091982351550063 PHI(mrad)= -0.030410840660323 E0(MeV)= 2.9999821710881 + =>IMAGE : X(microns)=-292.01221316121 Y(microns)=-13.137296060814 THETA(mrad)=-28.260643822045 PHI(mrad)=-16.485380350718 --> Event= 55: X0(mm)= -0.85375717958006 X0(mm) = 0.3573014582006 Z0(m) = -8.87 THETA(mrad)= -0.074501244846954 PHI(mrad)= 0.039440666297839 E0(MeV)= 2.999966559615 - =>IMAGE : X(microns)=-64.016807146388 Y(microns)=6.1178745230356 THETA(mrad)=-15.804335474556 PHI(mrad)=13.702922752471 +-> Event= 54: X0(mm)= 0.25626474146033 X0(mm) = -0.16197224567214 Z0(m) = -8.87 THETA(mrad)= 0.087956374186067 PHI(mrad)= -0.038524831522188 E0(MeV)= 3.000058570149 + =>IMAGE : X(microns)=14.047582091314 Y(microns)=-2.1880920781404 THETA(mrad)=8.9813442941273 PHI(mrad)=-8.3023771769262 --> Event= 56: X0(mm)= 0.1454709674432 X0(mm) = -0.011799618926587 Z0(m) = -8.87 THETA(mrad)= -0.03021980519692 PHI(mrad)= 0.027948785176419 E0(MeV)= 2.9999781445788 - =>IMAGE : X(microns)=2.2280357803507 Y(microns)=-0.065990321324387 THETA(mrad)=-0.1047031015324 PHI(mrad)=2.5149549454008 +-> Event= 59: X0(mm)= 0.095191757721191 X0(mm) = -0.12511562928644 Z0(m) = -8.87 THETA(mrad)= 0.071673994131276 PHI(mrad)= -0.011633226233604 E0(MeV)= 2.9999883427626 + =>IMAGE : X(microns)=4.8872885426362 Y(microns)=-1.4204921089249 THETA(mrad)=5.8617261366448 PHI(mrad)=-4.573886686447 --> Event= 61: X0(mm)= 0.010073418340366 X0(mm) = 0.048133463820978 Z0(m) = -8.87 THETA(mrad)= 0.01569024581137 PHI(mrad)= -0.05838311092919 E0(MeV)= 3.0000742147028 - =>IMAGE : X(microns)=0.32131003845357 Y(microns)=0.3992218771522 THETA(mrad)=1.1448521249768 PHI(mrad)=-4.6160857872692 +-> Event= 64: X0(mm)= -0.47933402877195 X0(mm) = -0.11366651027857 Z0(m) = -8.87 THETA(mrad)= -0.076980718613468 PHI(mrad)= -0.040879654546253 E0(MeV)= 2.9999907753427 + =>IMAGE : X(microns)=-25.880105074003 Y(microns)=-1.8163557592835 THETA(mrad)=-11.129160120438 PHI(mrad)=-7.232199792224 --> Event= 62: X0(mm)= 0.27865102424421 X0(mm) = -0.36011866770062 Z0(m) = -8.87 THETA(mrad)= 0.043147752406981 PHI(mrad)= -0.049588431908815 E0(MeV)= 2.9999120653397 - =>IMAGE : X(microns)=9.4304741190406 Y(microns)=-4.7260404138201 THETA(mrad)=6.3540404143267 PHI(mrad)=-14.800644259792 +-> Event= 66: X0(mm)= -0.07525759498887 X0(mm) = 0.029524345507622 Z0(m) = -8.87 THETA(mrad)= -0.022376377003874 PHI(mrad)= 0.043834131243696 E0(MeV)= 3.0000161806678 + =>IMAGE : X(microns)=-1.7183130199887 Y(microns)=0.42558435124488 THETA(mrad)=-2.408877409567 PHI(mrad)=5.246982264935 --> Event= 64: X0(mm)= 0.29329258822786 X0(mm) = 0.093673217048187 Z0(m) = -8.87 THETA(mrad)= 0.068900550391401 PHI(mrad)= 0.026564304215004 E0(MeV)= 2.9998914696467 - =>IMAGE : X(microns)=13.007346569868 Y(microns)=1.2744345627541 THETA(mrad)=8.2159210467955 PHI(mrad)=5.2366855960406 +-> Event= 69: X0(mm)= 0.025451442828107 X0(mm) = -0.13026867206426 Z0(m) = -8.87 THETA(mrad)= 0.0052454548305816 PHI(mrad)= 0.091945465348005 E0(MeV)= 3.0000380069718 + =>IMAGE : X(microns)=0.50707000169644 Y(microns)=-1.1549260902405 THETA(mrad)=0.66411136272402 PHI(mrad)=5.7928815675278 --> Event= 65: X0(mm)= 0.3779724438378 X0(mm) = -0.10389357763652 Z0(m) = -8.87 THETA(mrad)= 0.081397353681772 PHI(mrad)= 0.012762955547422 E0(MeV)= 3.000056776697 - =>IMAGE : X(microns)=19.426578826419 Y(microns)=-1.1348620603698 THETA(mrad)=10.114037933125 PHI(mrad)=-1.5236528105841 +-> Event= 71: X0(mm)= -0.059243226120292 X0(mm) = -0.069037691894852 Z0(m) = -8.87 THETA(mrad)= 0.012037962040171 PHI(mrad)= 0.060921406637543 E0(MeV)= 3.0000081228254 + =>IMAGE : X(microns)=-0.91059794406911 Y(microns)=-0.59591198415529 THETA(mrad)=0.025203185860169 PHI(mrad)=4.3068999972581 --> Event= 66: X0(mm)= 0.06143198603302 X0(mm) = -0.085860675057116 Z0(m) = -8.87 THETA(mrad)= -0.044568229770855 PHI(mrad)= -0.030221632488773 E0(MeV)= 3.0000443888599 - =>IMAGE : X(microns)=0.54659793266457 Y(microns)=-0.97120852065461 THETA(mrad)=-2.1050623097631 PHI(mrad)=-5.3940426816222 +-> Event= 76: X0(mm)= 0.10244158948274 X0(mm) = 0.033546909976765 Z0(m) = -8.87 THETA(mrad)= 0.085492963109444 PHI(mrad)= -0.0097532522865587 E0(MeV)= 2.999988202711 + =>IMAGE : X(microns)=6.5529121763257 Y(microns)=0.32709438823554 THETA(mrad)=6.8523888282896 PHI(mrad)=-0.079433978125744 --> Event= 69: X0(mm)= 0.14954473621966 X0(mm) = 0.20655990656738 Z0(m) = -8.87 THETA(mrad)= -0.034447112736969 PHI(mrad)= 0.069897440887196 E0(MeV)= 3.0000337863959 - =>IMAGE : X(microns)=2.2333866108116 Y(microns)=2.5450312984939 THETA(mrad)=-0.32671947079648 PHI(mrad)=12.69234771342 +-> Event= 77: X0(mm)= -0.070901229454633 X0(mm) = -0.52982262818752 Z0(m) = -8.87 THETA(mrad)= -0.015489966259911 PHI(mrad)= -0.078170714654916 E0(MeV)= 2.999969765432 + =>IMAGE : X(microns)=-2.049202058405 Y(microns)=-7.3928987922734 THETA(mrad)=-1.9079962425599 PHI(mrad)=-22.302794296546 --> Event= 72: X0(mm)= 0.48339298704702 X0(mm) = -0.71032537470226 Z0(m) = -8.87 THETA(mrad)= 0.051701130704913 PHI(mrad)= -0.04866088524039 E0(MeV)= 2.9999484082423 - =>IMAGE : X(microns)=22.668082958808 Y(microns)=-10.911844267275 THETA(mrad)=9.5354073438025 PHI(mrad)=-24.2135678971 +-> Event= 78: X0(mm)= -0.70922078536468 X0(mm) = -1.3457563316202 Z0(m) = -8.87 THETA(mrad)= -0.037068044429185 PHI(mrad)= -0.079399642560274 E0(MeV)= 2.9999797472124 + =>IMAGE : X(microns)=-43.707643452595 Y(microns)=-30.894494416451 THETA(mrad)=-11.495728572552 PHI(mrad)=-44.599153698687 --> Event= 74: X0(mm)= 0.0094465464091236 X0(mm) = 0.3470856075926 Z0(m) = -8.87 THETA(mrad)= 0.043734254900955 PHI(mrad)= 0.077189968514549 E0(MeV)= 3.0000341940519 - =>IMAGE : X(microns)=1.3652924561873 Y(microns)=4.553193459043 THETA(mrad)=2.9552147706802 PHI(mrad)=17.244512489906 +-> Event= 79: X0(mm)= 0.0071716840622622 X0(mm) = 0.035531096546641 Z0(m) = -8.87 THETA(mrad)= 0.048511303083225 PHI(mrad)= -0.044637168874065 E0(MeV)= 3.0000584178175 + =>IMAGE : X(microns)=0.93467981472375 Y(microns)=0.26691062231561 THETA(mrad)=3.2350121162972 PHI(mrad)=-3.5638139403261 --> Event= 76: X0(mm)= 0.032601879808464 X0(mm) = 0.016270507061099 Z0(m) = -8.87 THETA(mrad)= 0.082718966005109 PHI(mrad)= 0.031582361301935 E0(MeV)= 3.0000283538282 - =>IMAGE : X(microns)=3.6787816975387 Y(microns)=0.29518430833741 THETA(mrad)=5.7794097047422 PHI(mrad)=3.6449784629077 +-> Event= 82: X0(mm)= -0.12376762165358 X0(mm) = -0.83900075979804 Z0(m) = -8.87 THETA(mrad)= -0.014083113884906 PHI(mrad)= -0.078990053028786 E0(MeV)= 3.0000456609539 + =>IMAGE : X(microns)=-3.7591153294285 Y(microns)=-13.263311206937 THETA(mrad)=-2.4916015896606 PHI(mrad)=-30.775451153583 --> Event= 83: X0(mm)= -0.85403243133586 X0(mm) = -0.0091240517582702 Z0(m) = -8.87 THETA(mrad)= -0.079627748200215 PHI(mrad)= -0.01920863277583 E0(MeV)= 2.9999727618311 - =>IMAGE : X(microns)=-65.4573409781 Y(microns)=-0.45789743027676 THETA(mrad)=-16.143636814907 PHI(mrad)=-2.1976409225617 +-> Event= 83: X0(mm)= -0.59301633625351 X0(mm) = -0.090685380572286 Z0(m) = -8.87 THETA(mrad)= -0.10736488899707 PHI(mrad)= 0.015951367333849 E0(MeV)= 3.0000895075238 + =>IMAGE : X(microns)=-47.417414205029 Y(microns)=-1.0052782527376 THETA(mrad)=-14.586021791878 PHI(mrad)=-0.84210624794854 --> Event= 84: X0(mm)= 0.019869526159409 X0(mm) = 0.027356472793811 Z0(m) = -8.87 THETA(mrad)= 0.013216483507124 PHI(mrad)= -0.064005070837523 E0(MeV)= 3.0000225971111 - =>IMAGE : X(microns)=0.50775463051349 Y(microns)=0.1471470394761 THETA(mrad)=1.1094803619608 PHI(mrad)=-5.7501242243973 +-> Event= 87: X0(mm)= -0.055780239229118 X0(mm) = -0.0091238834107205 Z0(m) = -8.87 THETA(mrad)= -0.047103759346194 PHI(mrad)= -0.061745394498509 E0(MeV)= 2.9999520925326 + =>IMAGE : X(microns)=-2.2552456067869 Y(microns)=-0.31913248037083 THETA(mrad)=-3.7642022148665 PHI(mrad)=-6.5110109616562 --> Event= 85: X0(mm)= 1.0674724333131 X0(mm) = -1.0663214971145 Z0(m) = -8.87 THETA(mrad)= 0.063205803646676 PHI(mrad)= -0.055370508485 E0(MeV)= 3.000051629789 - =>IMAGE : X(microns)=97.289885714157 Y(microns)=-23.476257352369 THETA(mrad)=17.851789987459 PHI(mrad)=-34.581639736993 +-> Event= 92: X0(mm)= -1.0300005046796 X0(mm) = 0.87888459437965 Z0(m) = -8.87 THETA(mrad)= -0.047884850770414 PHI(mrad)= 0.048436406562422 E0(MeV)= 2.999929222433 + =>IMAGE : X(microns)=-77.919382876133 Y(microns)=17.23898773902 THETA(mrad)=-16.345747254735 PHI(mrad)=28.782706961023 --> Event= 86: X0(mm)= -0.19481916629754 X0(mm) = 0.95206247986366 Z0(m) = -8.87 THETA(mrad)= -0.0050314491063534 PHI(mrad)= 0.088572692400845 E0(MeV)= 2.9999719319194 - =>IMAGE : X(microns)=-5.6749369137073 Y(microns)=16.63536161095 THETA(mrad)=-2.8117399104848 PHI(mrad)=34.820400204571 --> Event= 88: X0(mm)= -0.22545561238938 X0(mm) = -0.030927067231415 Z0(m) = -8.87 THETA(mrad)= -0.045660693985418 PHI(mrad)= 0.031393071444182 E0(MeV)= 3.0000172375688 - =>IMAGE : X(microns)=-6.7130095402678 Y(microns)=-0.21853094310102 THETA(mrad)=-5.8354201574077 PHI(mrad)=2.3456116775225 +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Transport-001-ExcessSteps + issued by : G4Transportation::AlongStepDoIt + Transportation is killing track that is looping or stuck. + Track is proton and has 2.99993 MeV energy ( pre-Step = 2.99993 ) + momentum = (-1.22735,2.16099,75.0488) mag= 75.0899 + position = (-0.0779194,0.017239,250) is in volume 'World', its material is 'Vacuum' with density = 1e-25 g/cm^3 + Total number of Steps by this track: 9122 + Length of this step = 2553.49 mm + Number of propagation trials = 1 ( vs maximum = 10 for 'important' particles ) + ( Number of *calls* of Transport/AlongStepDoIt = 291906 ) + =============== Recommendations / advice ==================== + Recommendations to address this issue (Transport-001-ExcessSteps) + This warning is controlled by the SetThresholdWarningEnergy method of G4Transportation. + Current value of 'warning' threshold= 1 MeV + - If 'unimportant' particles (with energy low enough not to matter in your application, then increase its value. + - If particles of high-enough energy to be important are being killed, you can + a) Increase the trial steps using the method SetThresholdTrials(). Particles above the 'important' threshold + will be given this many 'chances'. The default value was 10, and the current value is 10 + b) Increase the energy which you consider 'important' (above this they are killed only after extra trials), using the method SetThresholdImportantEnergy() + Note: this can incur a potentially high cost in extra simulation time if more tracks require very large number of integration steps . + c) investigate alternative integration methods + e.g. Helical methods for uniform or almost uniform fields or else higher order RK methods such as DormandPrince78 + This information is provided 5 times. Current count: 1 / 5 + ============================================================= --> Event= 96: X0(mm)= 0.22011014269581 X0(mm) = 0.15902386447663 Z0(m) = -8.87 THETA(mrad)= 0.022230939077933 PHI(mrad)= 0.089392622525076 E0(MeV)= 3.000055786943 - =>IMAGE : X(microns)=5.2946289042558 Y(microns)=2.257724800717 THETA(mrad)=4.2467808539036 PHI(mrad)=13.380937364469 +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- --> Event= 97: X0(mm)= -0.039068652311959 X0(mm) = 0.016949266328071 Z0(m) = -8.87 THETA(mrad)= 0.026369793436265 PHI(mrad)= 0.031743743594098 E0(MeV)= 3.0000321175827 - =>IMAGE : X(microns)=-0.40995157126018 Y(microns)=0.23883747396483 THETA(mrad)=1.2107765582298 PHI(mrad)=3.6794401458295 - --> Event= 98: X0(mm)= -0.26981294994438 X0(mm) = -0.15163857783775 Z0(m) = -8.87 THETA(mrad)= -0.038486114555135 PHI(mrad)= -0.058017023830174 E0(MeV)= 3.0000219596412 - =>IMAGE : X(microns)=-7.8401729280355 Y(microns)=-2.0144023283916 THETA(mrad)=-5.9363977026264 PHI(mrad)=-9.9985920485454 +-> Event= 93: X0(mm)= 0.0078293329538488 X0(mm) = 0.0079533854502721 Z0(m) = -8.87 THETA(mrad)= -0.046118251874054 PHI(mrad)= 0.015762780425847 E0(MeV)= 3.0000343013789 + =>IMAGE : X(microns)=-0.57227779547528 Y(microns)=0.11587277392348 THETA(mrad)=-2.8887463925854 PHI(mrad)=1.8145096573758 diff --git a/examples/advanced/purging_magnet/History b/examples/advanced/purging_magnet/History index 433d99424e..35cb6919ec 100644 --- a/examples/advanced/purging_magnet/History +++ b/examples/advanced/purging_magnet/History @@ -4,6 +4,8 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-09-08 Susanna Guatelli (purgmag-V11-00-01) +- Ranecu engine removed, default engine used now ## 2021-12-10 Ben Morgan (purgmag-V11-00-00) - Change to new Markdown History format diff --git a/examples/advanced/purging_magnet/PurgMag.cc b/examples/advanced/purging_magnet/PurgMag.cc index 1921765e05..4bfb111a4c 100644 --- a/examples/advanced/purging_magnet/PurgMag.cc +++ b/examples/advanced/purging_magnet/PurgMag.cc @@ -47,11 +47,8 @@ #include "PurgMagPhysicsList.hh" #include "PurgMagActionInitializer.hh" -int main(int argc,char** argv) { - - //choose the Random engine - G4Random::setTheEngine(new CLHEP::RanecuEngine); - +int main(int argc,char** argv) +{ // Construct the default run manager // auto* runManager = G4RunManagerFactory::CreateRunManager(); diff --git a/examples/advanced/purging_magnet/purging_magnet.out b/examples/advanced/purging_magnet/purging_magnet.out index 8289b6c02d..838c7a88fc 100644 --- a/examples/advanced/purging_magnet/purging_magnet.out +++ b/examples/advanced/purging_magnet/purging_magnet.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -31,6 +31,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -249,6 +251,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -276,7 +279,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -312,8 +315,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -343,8 +345,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -468,7 +470,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -742,10 +744,11 @@ Ntuple-2 created Ntuple-3 created ---> Run 0 (master) start. ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 9876, 54321 ----------------------------------------- +------- MixMaxRng engine status ------- + Current state vector is: +mixmax state, file version 1.0 +N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008233404568, 2262190991329242458, 2266470399991071809, 1976726662926872232, 245458862506414172, 1955974201201518530, 2155248512522080758, 604170912935414061, 1116171330120743511, 1861018313684488333, 1296715403254578286, 1549011045957234151, 370819759640195970, 2230139271784837643} counter= 17sumtot= 1977567618660788324 +--------------------------------------- ---> Begin Of Event: 0 @@ -768,9 +771,10 @@ Ntuple-3 created ---> Begin Of Event: 90000 Total number of event = 100000 ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 1017924322, 81077692 ----------------------------------------- +------- MixMaxRng engine status ------- + Current state vector is: +mixmax state, file version 1.0 +N=17 V[N]={178715393884003041, 1924215168640207574, 195555616801611567, 53107534660245820, 1825856043083475140, 1792951263768582503, 438669518415037562, 2246688480621702590, 2057578841139869913, 2169294347317174467, 1861954794404699023, 55325311607728307, 849425583492111153, 1865477072846557918, 2097575288325327119, 667094300280606690, 274384931326759230} counter= 13sumtot= 2107125416906148009 +--------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/advanced/radioprotection/1_plot_distributions.py b/examples/advanced/radioprotection/1_plot_distributions.py new file mode 100644 index 0000000000..1e5807271b --- /dev/null +++ b/examples/advanced/radioprotection/1_plot_distributions.py @@ -0,0 +1,137 @@ +import numpy as np +import matplotlib.pyplot as plt +import glob + +def Normalize(f, x) : + dx = x[1:] - x[:-1] + integral = np.sum(f[:-1] * dx) + f_norm = f / integral + return f_norm + +# When running in MT and outputting to cvs, each thread outputs to a different file. +# Therefore I need to cycle through each thread and append them all together. + +energy = np.empty([0,1]) +length = np.empty([0,1]) + +ntuple_name = "radioprotection_nt_102" +output_name = ntuple_name + "_t" + "*" + ".csv" +output_list = glob.glob(output_name) + +for this_file in output_list : + energy_thread, length_thread = np.loadtxt(this_file, delimiter=',', unpack=True, usecols=(0,1)) + + energy = np.append(energy, energy_thread) + length = np.append(length, length_thread) + +# Experimentally, the mean path length is calculated geometrically as a mean chord length. +# Here for convenience it's taken by averaging the effective path lengths. +mean_path_length = np.average(length) + +# A conversion factor can be used to convert the target material to water or tissue equivalent. +# Its choice depends on the material and can be calculated in different ways. +# It is suggested that the user replace the following value with his own. +conversion_factor = 1. + +# If the previous value is not overriden by the user, this script will attempt to read geometry.mac +# and provide a factor accordingly +if conversion_factor == 1. : + detector = np.array(["Diamond", "MicroDiamond", "Silicon", "SiliconBridge"]) + factor = np.array([0.32, 0.32, 0.57, 0.57]) # conversion factor based on material stopping power + + with open("geometry.mac") as search: + for line in search: + line = line.rstrip() # remove new line + + for this in detector : + match = "/geometrySetup/selectDetector " + this + + if match == line: + conversion_factor = factor[ detector == this ][0] + else: + conversion_factor = factor[ detector == "Diamond" ][0] # default detector type (no macro used) + + +y = energy * conversion_factor / mean_path_length + + +# The spectrum is now binned logarithmically, to avoid oscillations at higher energies +# (due to fewer counts) that wouldn't much meaning. + +minimum = np.amin(y) +maximum = np.amax(y) + +exp_start = np.floor(np.log10(minimum)) +exp_end = np.ceil(np.log10(maximum)) + +n_decades = int(exp_end - exp_start) + +# Number of logarithmic bins per decade: +# Higher values give better resolution, but lead to oscillations +# (especially at high energy) if your statistic has too few counts. +bins_per_dec = 60 + +n_bins = n_decades * bins_per_dec + +y_bins = np.zeros(n_bins) + +y_bins[0] = 10**exp_start + +for i in range(1, n_bins) : + y_bins[i] = y_bins[i-1] * 10**( 1 / bins_per_dec ) + + +# Create the histogram + +# For now f is a number of counts... +f = np.histogram( y, bins=y_bins ) [0] + +tot_counts = np.sum(f) + +# ... so now I turn f into a density +bin_width = y_bins[1:] - y_bins[:-1] +f = f / bin_width + +f = np.append(f, 0.) # give f and y_bins arrays the same size + +# Normalize the spectra to unit area under the curve +f = Normalize(f, y_bins) +d = Normalize(y_bins*f, y_bins) + + +# Save to file + +output_file = "analysed_spectra.csv" +header = "y[keV/um], f(y)[um/keV], d(y)[um/keV]" + +np.savetxt( output_file, np.c_[ y_bins, f, d ], header=header, delimiter=',' ) + + +# Plot + +fig, ax1 = plt.subplots() + +color = 'tab:blue' + +ax1.semilogx( y_bins, y_bins * f, linewidth=0.5, color=color ) + +ax1.set_xlabel(r'$y \,\, [keV / \mu m]$') +ax1.set_ylabel(r'$y \cdot f(y) $', color=color) +ax1.tick_params(axis='y', labelcolor=color) + +ax2 = ax1.twinx() # instantiate a second axes that shares the same x-axis + +color = 'tab:red' + +ax2.semilogx( y_bins, y_bins * d, linewidth=0.5, color=color ) + +ax2.set_ylabel(r'$y \cdot d(y) $', color=color) +ax2.tick_params(axis='y', labelcolor=color) + +title = str(tot_counts) + " counts, " + str(bins_per_dec) + " bins per decade, " + str(conversion_factor) + " conversion factor" +fig.suptitle(title) + +fig.tight_layout() + +plt.subplots_adjust(top=0.92) +plt.show() diff --git a/examples/advanced/radioprotection/2_calculate_means_rbe.py b/examples/advanced/radioprotection/2_calculate_means_rbe.py new file mode 100644 index 0000000000..f066ae63f1 --- /dev/null +++ b/examples/advanced/radioprotection/2_calculate_means_rbe.py @@ -0,0 +1,112 @@ +import numpy as np +from numpy import exp, sqrt, log, pi + +def Integrate(f, x) : + dx = x[1:] - x[:-1] + integral = np.sum(f[:-1] * dx) + return integral + +input_file = "analysed_spectra.csv" +y, f, d = np.loadtxt(input_file, delimiter=',', unpack=True) + + +# -------------------------------------- +# Microdosimetric means +# -------------------------------------- + +yBarF = Integrate(y*f, y) +yBarD = Integrate(y*d, y) + +print("") +print("Weighted averages of:") +print("f(y): ", round(yBarF, 3) ) +print("d(y): ", round(yBarD, 3) ) +print("") + + +# -------------------------------------- +# Quality factor +# -------------------------------------- + +# Quality factor of the radiation, used in radiation protection to weight the absorbed dose. + +# The approximation employed here follows ICRU 40. +Q_y = 5510./y * ( 1 - exp(-5E-5*y**2 -2E-7*y**3) ) + +Q = Integrate(Q_y*d, y) + +print("Average quality factor Q: ", round(Q, 3) ) +print("") + + +# -------------------------------------- +# RBE via Microdosimetric Kinetic Model +# -------------------------------------- + +# The MKM can calculate the alpha parameter of the survival curve from an average of the microdosimetric +# spectrum, weighted by y and corrected for saturation. + +# Saturation coefficient: +y0 = 125. # keV/um according to ICRU 36 +#y0 = 150. # keV/um according to Kase 2006, for Carbon ions + +# Saturation corrected average, usually written as y*: +y_star = y0**2 * Integrate( (1 - exp(-(y/y0)**2))* f, y ) / yBarF + +print("y*: ", round(y_star, 3) ) + +# The following parameters depend on the cell line, and need to be known in advance. +# The ones below are the ones employed by Kase 2006 for HSG cells. +# Refer to said paper for a description of each parameter. +alpha_0 = 0.13 # Gy**-1 +beta = 0.05 # Gy**-2 +rho = 1. # g/cm**3 +r_d = 0.42 # um + +keV_to_Gy=1.602E-16; um_to_cm=1.E-4; g_to_kg=1.E-3 +rho*=g_to_kg; r_d*=um_to_cm; y_star*=(keV_to_Gy/um_to_cm) + +alpha = alpha_0 + beta/(rho*pi*r_d**2) * y_star + +print("alpha: ", round(alpha, 3) ) + +# The RBE is not an absolute value, but depends on the desired survival fraction S +# and on the corresponding photon dose. The latter is also taken from Kase 2006. +S = 0.1 +Dx = 5 # Gy for S=0.1 + +RBE_MKM = Dx*2*beta / ( sqrt(alpha**2-4*beta*log(S)) - alpha ) + +print("RBE via MKM (HSG cells): ", round(RBE_MKM, 3) ) +print("") + + +# -------------------------------------- +# RBE via Loncol weight function r(y) +# -------------------------------------- + +# A weight function can be used to estimate the RBE for S=0.1 by weighting the whole spectrum. +# The one by Loncol 1994 provides a good estimate for neutron or proton beams targeting crypt cells, +# but not necessarily for other beams-target combinations. + +weight_function = "weight_function.csv" +y_wf, r_wf, stdev_r_wf = np.loadtxt(weight_function, delimiter=',', unpack=True) + +# The standard deviation of r(y) is due to the uncertainty of radiobiological measurements, +# and as such doesn't represent a limitation of the model. +# Consequently it won't be used in the following RBE estimate. + +# The abscissae of f(y) and r(y) don't (usually) match +# For every value of f(y), I find the corresponding r(y) via linear interpolation +size = len(y) +r = np.zeros(size) + +for i in range(size) : + j = np.argmax( y_wf > y[i] ) # index of first element of y_wf greater than y[i] + + r[i] = ( r_wf[j] + r_wf[j-1] ) /2 + +RBE_Lwf = Integrate(r*d, y) + +print("RBE via weight function (crypt cells): ", round(RBE_Lwf, 3) ) +print("") diff --git a/examples/advanced/radioprotection/CMakeLists.txt b/examples/advanced/radioprotection/CMakeLists.txt index 58829779f7..7b2723161d 100644 --- a/examples/advanced/radioprotection/CMakeLists.txt +++ b/examples/advanced/radioprotection/CMakeLists.txt @@ -19,7 +19,7 @@ endif() # include(${Geant4_USE_FILE}) # Setup of ROOT ANALYSIS : optional. -option(WITH_ANALYSIS_USE "Build example with analysis objects" OFF) +option(WITH_ANALYSIS_USE "Build example with analysis objects" ON) if(WITH_ANALYSIS_USE) add_definitions(-DANALYSIS_USE) else() @@ -45,7 +45,7 @@ target_link_libraries(radioprotection ${Geant4_LIBRARIES}) # relies on these scripts being in the current working directory. # set(radioprotection_SCRIPTS - vis.mac physics.mac primary.mac run.mac geometry.mac MergeFiles LoadPlotNtuple.C ProcessMicro.C + vis.mac physics.mac primary.mac run.mac geometry.mac output.mac MergeFiles LoadPlotNtuple.C ProcessMicro.C 1_plot_distributions.py 2_calculate_means_rbe.py weight_function.csv ) foreach(_script ${radioprotection_SCRIPTS}) diff --git a/examples/advanced/radioprotection/History b/examples/advanced/radioprotection/History index 2d0a37ba43..5580d71b54 100644 --- a/examples/advanced/radioprotection/History +++ b/examples/advanced/radioprotection/History @@ -1,21 +1,24 @@ -# Example radioprotection History +------------------------------------------------------------------- +------------------------------------------------------------------- -See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! + ========================================================= + Geant4 - radiprotection example + ========================================================= - -## 2021-12-10 Ben Morgan (radioprotection-V11-00-00) -- Change to new Markdown History format + Category History file + --------------------- +## 2022-11-16 F. Romano, J.Magini, G.Parisi, G. Milluzzo (radioprotection-V11-00-02) +- Updating the READMEfile. + +## 2022-11-09 Francesco Romano (radioprotection-V11-00-01) +- Added the diamondTelescope detector. Messengers modified accordingly. + Added python scripts to analyze the spectra files and calculate microdosimetric + Quantities. --- # History entries prior to 11.0 -06.11.2021, I. Hrivnacova tag radioprotection-V10-07-05 - Added analysis manager Clear() call instead of - deleting in the end of run (removed on July 19) - 28.10.2021, S.Guatelli tag radioprotection-V10-07-04 Added the Bridge silicon microdosimeter and a macro to perform microdosimetric calculations. diff --git a/examples/advanced/radioprotection/README b/examples/advanced/radioprotection/README index 72a57c9798..0eaea7c099 100644 --- a/examples/advanced/radioprotection/README +++ b/examples/advanced/radioprotection/README @@ -24,7 +24,7 @@ J. Davis and D. Bolst - University of Wollongong, NSW, Australia ----> Introduction. Radioprotection example models different detectors for microdosimetry in space applications. The example lets the user -choose between the models of a simplified diamond (1), a micro-diamond (2) and a silicon microdosimeter (3): +choose between the models of a simplified diamond (1), a micro-diamond (2), a simplified silicon (3), a silicon microdosimeter (4), and a two-stage diamond detector (5): 1) A semplified diamond microdosimeter is based on the detector developed by Prof. Anatoly Rosenfeld and his team at the Centre For Medical Radiation Physics, CMRP, University of Wollongong, NSW, Australia. The design of the device is documented in J. Davis, et al., "Characterisation of a novel diamond-based microdosimeter prototype for radioprotection applications in space environments",IEEE Transactions on Nuclear Science, @@ -32,32 +32,41 @@ Vol. 59, pp. 3110-3116, 2012. 2) The microdiamond detector is based on the detectors developed by the Research Group of The University of Rome "Tor Vergata". The design and performances of the detector are documented in C. Verona et al., "Spectroscopic properties and radiation damage investigation of a diamond based Schottky diode for ion-beam therapy microdosimetry", Journal of Applied Physics, vol. 118, 2015, and in C. Verona et al., "Toward the use of single crystal diamond based detector for ion-beam therapy microdosimetry", Radiation Measurements, vol. 110, 2018. +3-4) Both silicon microdosimeters are based on the "Bridge" microdosimeter, developed by the Centre For Medical Radiation physics, University of Wollongong, documented in chapter 7 of the PhD Thesis of D. Bolst “Silicon microdosimetry in hadron therapy using Geant4”, https://ro.uow.edu.au/theses1/619/ . (3) contains a simplified geometry with only four sensitive volumes, while (4) includes the complete design. -3) The silicon microdosimeter is based on the "Bridge" microdosimeter, developed by the Centre For Medical Radiation physics, University of Wollongong, documented in chapter 7 of the PhD Thesis of D. Bolst “Silicon microdosimetry in hadron therapy using Geant4”, https://ro.uow.edu.au/theses1/619/ +5) The diamond telescope is based on the detector developed by University of Rome "Tor Vergata". Its design and characterisation are documented in Cesaroni et al., "", Nucl. Instrum. Methods. Phys. Res. A, vol.947, 2019, DOI:https://doi.org/10.1016/j.nima.2019.162744 , and in C. Verona et al., "Characterisation of a monolithic ΔE-E diamond telescope detector using low energy ion microbeams", Radiation Measurements, vol. 159, 2022, DOI:https://doi.org/10.1016/j.radmeas.2022.106875 . +The type of detectors, its shape, and its position can be set via the included "geometry.mac" macro. +This macro is called in both the vis.mac and run.mac macro files, and include the following options: +- a macro command to choose the type of detector between the above (/geometrySetup/selectDetector "...") +- two macro commands to customise the width and thickness of the sensitive volumes (/geometrySetup/detectorDimension/setWidth "...", /geometrySetup/detectorDimension/setThinckness "..."). It won't take effect when using (1) and (4), as these are finalised designs +- two equivalent macro commands (/geometrySetup/detectorDimension/secondStage/...) to customise the second stage of the detector, if (5) is used +- a macro command to choose whether to place the detector in vacuum or inside a water phantom (/geometrySetup/enableWaterPhantom "true/false") +- a macro command for use with the water phantom to set the detector's width in water (/geometrySetup/detectorPosition/setDepth "...") +The above only take effect only if the macro command /geometrySetup/applyChanges is applied. If the user forgets to run this last command a warning is issued at runtime. -All the microdosimeters are set in vacuum and it is possible to select among the avilable detectors -via a macro command (/geometrySetup/selectDetector "..."), which is included in the "geometry.mac" macro. -This macro is, in turn, called in both the vis.mac and run.mac macro files. An isotropic field of Galactic Cosmic Rays (GCR) protons is incident on the device. The energy deposition is calculated in the sensitive detectors. In particular in this example it is shown how to: - model a realistic isotropic field of GCRs by means of the General Particle Source - model a realistic detector in Geant4 +- customise the detector's geometry and its position at runtime via macros - retrieve the information of secondary particles originated in the SV - define the physics by means of a Geant4 Modular Physics List -- characterise the response of a realistic detector. -- save results in an analysis ROOT file using the Geant4 analysis component. +- characterise the response of a realistic detector +- save results in an analysis ROOT or plaintext csv file using the Geant4 analysis component. The example can be executed in multithreading mode ------------------------------------------------------------------------ ----> 1.Experimental set-up. -The diamond microdosimeter is set in the center of the world. The world is a box with size 1 m, filled with vacuum. +The diamond microdosimeter can be set either in vacuum (for space radioprotection applications) or at a user-defined depth within a water phantom (for clinical applications). +- if placing the detector in a vacuum, its centre coincides with the centre of the world volume. The world is a box with size 10 cm, filled with vacuum. +- if placing the detector in a water phantom, its centre coincides with the chosen depth inside the water phantom. The water phantom is a water box of width 5 cm and length equal to the detector depth + 2 cm. It's placed in a world volume filled with air having twice its size, located so that a depth equal to 0 cm corresponds to the centre of the world. -Four SV structures are modelled, but only one has been made active (SV_phys1) +All SV structures are active. The primary radiation field is defined by means of the GeneralParticleSource in the file primary.mac @@ -71,11 +80,16 @@ Setup for analysis: By default, the example has no analysis component. To compile and use the application with the analysis on, build the example with the following command: -cmake -DWITH_ANALYSIS_USE=ON -DGeant4_DIR=/path/to/Geant4_installation /path/to/radioprotection example +cmake -DWITH_ANALYSIS_USE=ON -DGeant4_DIR=/path/to/Geant4_installation /path/to/radioprotection example + +When the analysis is enables, the default output format is one compatible with ROOT +The user can switch to a plaintext csv by uncommenting the corresponding macro command in output.mac (/analysis/useRoot false) -plot.C is provided to plot the results of the simulation, contained -in the radioprotection.root file. If the user intends to use this macro, ROOT must be installed -(http://root.cern.ch/drupal/). +Two data analysis scripts are provided for use with each output format: +- for ROOT output (radioprotection.root), plot.C is provided. If the user intends to use this macro, ROOT must be installed (http://root.cern.ch/drupal/) +- for csv output (radioprotection_*.csv), 1_plot_distributions.py and 2_calculate_means_rbe.py (in this order). If the user intends to use these macros, Python 3 must be installed (https://www.python.org/) +Both scripts plot the microdosimetric spectrum resulting from the simulation, calculate the microdosimetric means, and provide one or more RBE estimates (this is just provided as an example, and the user is encouraged to look into RBE modelling himself) + ------------------------------------------------------------------------ ----> 3.How to run the example. @@ -93,6 +107,9 @@ The radiation field is defined with the General Particle Source. Look at the macro primary.mac . NOTE: To maximise efficiency the field has been modelled with a limiting angle to reduce redundant events. + +This macro contains a proton field of Galactic Cosmic Rays (GCR) +If this example is used for medical applications (with a water phantom) the user is encouraged to replace this macro with one that might simulate a therapeutic beam of interest ------------------------------------------------------------------------ ----> 5. Simulation output @@ -103,6 +120,12 @@ The output is radioprotection.root, containing - an ntuple withe the energy spectrum (in MeV) of primary particles. - an ntuple with the energy deposition per event(in keV) in the SV. +When outputting to plaintext csv a separate file is used for each ntuple, following the naming scheme: +radioprotection_nt_10?.csv + +where ? is the number of the ntuple + + **** MULTITHREAD mode output files: radioprotection.root_t0 @@ -112,7 +135,15 @@ radioprotection.root_t# where # is the number of threads -type: source MergeFiles to merge the output of each thread in a single one +When outputting to plaintext csv a separate file is used for each ntuple, following the naming scheme: +radioprotection_nt_10?_t#.csv + +where ? is the number of the ntuple + + +when using ROOT type: source MergeFiles to merge the output of each thread in a single one +when using Python, the first script takes care of parsing and merging the ntuples + ------------------------------------------------------------------------------- ----> 6.Visualisation @@ -122,20 +153,23 @@ For any problem or question please contact Susanna Guatelli, susanna@uow.edu.au ------------------------------------------------------------------------------- ----> 7. Analysis -A macro: ProcessMicro.C -This macro performs analysis of the energy deposition stored in the ntuple of the ROOT file and performs the following microdosimetry operations: +Two sets of macro: +- ProcessMicro.C for ROOT output +- 1_plot_distributions.py and 2_calculate_means_rbe.py (to be executed in this order) for csv output + +Each macro performs analysis of the energy deposition stored in the ntuple and performs the following microdosimetry operations: -Bins the event by event energy deposition stored in the ntuple into a histogram (both with linear and logarithmic binning) and converts to lineal energy -Calculates the quantities: mean lineal energy (yF), the dose mean lineal energy (yD), the quality factor (Q) using the weighting factors from the ICRP 60 report -In addition to these quantities the macro also calculates an estimate for the RBE using the modified MK model. This model is not generally used for shielding/radiation proction but in hadron therapy, but is provided for interest. --The macro also generates the common "microdosimetric spectra" or yd(y) in a semi-log plot and is saved as an image by default +-The Python macro also includes an RBE estimate via weight function. For more info about this RBE model, see T. Loncol et al, “Radiobiological Effectiveness of Radiation Beams with Broad +LET Spectra: Microdosimetric Analysis Using Biological Weighting Functions”, Radiation Protection Dosimetry 52.1-4, pp. 347–352, 1994 +-The macro also generates the common "microdosimetric spectra" or yd(y) in a semi-log plot + +When using the two-stage detector (5), no analysis script is currently included for the second stage ------------------------------------------------------------------------------ -----> Future developments -1) The code will be refined and analysis improved -2) scripts for micorodosimetric spectra analysis will be implemented -3) Different models of detectors will be also included - - - - +1) Further macros will be included for placing a variable number of sensitive volumes +2) A new macro messenger will be included to allow the user to stop the simulation after a given number of recorded events, in order to have more control over the statistics of the simulation +3) A new script will be added to provide a dE-E plot for use with the telescope detector (5) diff --git a/examples/advanced/radioprotection/geometry.mac b/examples/advanced/radioprotection/geometry.mac index 7339b13e31..fbf49a9eef 100644 --- a/examples/advanced/radioprotection/geometry.mac +++ b/examples/advanced/radioprotection/geometry.mac @@ -1,6 +1,28 @@ # Uncomment a line to select a specific detector type -# Leave both commented to use the default one +# Leave everything commented to use the default one #/geometrySetup/selectDetector Diamond #/geometrySetup/selectDetector MicroDiamond -#/geometrySetup/selectDetector Silicon \ No newline at end of file +#/geometrySetup/selectDetector Silicon +#/geometrySetup/selectDetector SiliconBridge +#/geometrySetup/selectDetector DiamondTelescope + +# Uncomment to change the detector's width and/or thickness +# Otherwise default values are used +#/geometrySetup/detectorDimension/setWidth 30 um +#/geometrySetup/detectorDimension/setThickness 10 um + +# If DiamondTelescope is selected, uncomment to change the telescope's width and/or thickness +# Otherwise default values are used +#/geometrySetup/detectorDimension/secondStage/setWidth 500 um +#/geometrySetup/detectorDimension/secondStage/setThickness 800 um + +# Uncomment the following line to place the detector in a water phantom, +# or leave it commented out to place it in vacuum +#/geometrySetup/enableWaterPhantom true + +# If the water phantom is used, uncomment the following line to set a custom depth in water +#/geometrySetup/detectorPosition/setDepth 50 mm + +# The above commands are only applied if the following line is uncommented +#/geometrySetup/applyChanges diff --git a/examples/advanced/radioprotection/include/ActionInitialization.hh b/examples/advanced/radioprotection/include/ActionInitialization.hh index 22e357b312..882635ed6a 100644 --- a/examples/advanced/radioprotection/include/ActionInitialization.hh +++ b/examples/advanced/radioprotection/include/ActionInitialization.hh @@ -31,6 +31,7 @@ #include "G4VUserActionInitialization.hh" #include "AnalysisManager.hh" +#include "DetectorMessenger.hh" class AnalysisManager; class G4GeneralParticleSource; @@ -38,7 +39,7 @@ class G4GeneralParticleSource; class ActionInitialization: public G4VUserActionInitialization { public: - ActionInitialization(AnalysisManager* ); + ActionInitialization(AnalysisManager* analysisMan, DetectorMessenger* detectorMess); virtual ~ActionInitialization(); virtual void BuildForMaster() const; @@ -46,6 +47,7 @@ class ActionInitialization: public G4VUserActionInitialization private: AnalysisManager* analysis; + DetectorMessenger* detector; }; #endif diff --git a/examples/advanced/radioprotection/include/AnalysisManager.hh b/examples/advanced/radioprotection/include/AnalysisManager.hh index e712b4314d..0af289b272 100644 --- a/examples/advanced/radioprotection/include/AnalysisManager.hh +++ b/examples/advanced/radioprotection/include/AnalysisManager.hh @@ -34,24 +34,32 @@ #include "globals.hh" #include "G4AnalysisManager.hh" +#include "AnalysisMessenger.hh" + +class AnalysisMessenger; + // Define the total number of columns in the ntuple -const G4int MaxNtCol = 5; +const G4int MaxNtCol = 9; class AnalysisManager { public: - AnalysisManager(); + AnalysisManager(AnalysisMessenger* messenger); ~AnalysisManager(); - void book(); // booking the ROOT file + void book(G4bool addExtraNt); // booking the ROOT file void SetPrimaryEnergy(G4double energy); // Store the energy of the primary particles - - void StoreEnergyDeposition(G4double edep);// Fill the ntuple with energy deposition per event + + void StoreEnergyDeposition(G4double edep, G4double path, G4int eid); + // Fill the ntuple with energy deposition and path length per event void FillSecondaries(G4int AA, G4double charge, G4double energy); // Information about secondary particles + + void StoreSecondStageEnergyDeposition(G4double edep, G4int eid); + // Fill the ntuple with energy and event ID of the second stage (telescope detector only) void finish(); // Close the ROOT file with all the results stored in nutples @@ -59,6 +67,10 @@ public: private: G4bool factoryOn; G4int fNtColId[MaxNtCol]; + + AnalysisMessenger* messenger; + G4bool usingRoot; + G4bool extraNt; }; diff --git a/examples/advanced/radioprotection/include/AnalysisMessenger.hh b/examples/advanced/radioprotection/include/AnalysisMessenger.hh new file mode 100644 index 0000000000..5c3e7bd958 --- /dev/null +++ b/examples/advanced/radioprotection/include/AnalysisMessenger.hh @@ -0,0 +1,56 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +#ifndef AnalysisMessenger_h +#define AnalysisMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" +#include "G4String.hh" + +class G4UIdirectory; +class G4UIcmdWithABool; + +class AnalysisMessenger: public G4UImessenger +{ +public: + AnalysisMessenger(); + ~AnalysisMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + // functions to read parameters + G4bool IsRootOutput() { return rootOutput; } + +private: + G4UIdirectory *analysisDir; // UI directory + + G4UIcmdWithABool *useRootForOutput; + + // parameters to store + G4bool rootOutput; +}; +#endif + diff --git a/examples/advanced/radioprotection/include/DetectorConstruction.hh b/examples/advanced/radioprotection/include/DetectorConstruction.hh index 7fedbfaca4..1e041605ac 100644 --- a/examples/advanced/radioprotection/include/DetectorConstruction.hh +++ b/examples/advanced/radioprotection/include/DetectorConstruction.hh @@ -33,15 +33,18 @@ #include "G4VUserDetectorConstruction.hh" #include "globals.hh" #include "AnalysisManager.hh" +#include "DetectorMessenger.hh" +#include "G4NistManager.hh" class G4VPhysicalVolume; class DetectorMessenger; class G4LogicalVolume; +class G4Material; class DetectorConstruction : public G4VUserDetectorConstruction { public: - DetectorConstruction(AnalysisManager* analysis, G4String detector); + DetectorConstruction(AnalysisManager* analysis, DetectorMessenger* messenger); ~DetectorConstruction(); G4VPhysicalVolume* Construct(); @@ -50,13 +53,30 @@ public: private: AnalysisManager* analysis; + DetectorMessenger* messenger; G4String detectorType; + G4double detectorSizeWidth; + G4double detectorSizeThickness; + G4double secondStageSizeDim; + G4double secondStageSizeThickness; + G4bool usingWaterPhantom; + G4double detectorPositionDepth; // Methods called by Construct() depending on the chosen setup - G4VPhysicalVolume* ConstructDiamondDetector(); - G4VPhysicalVolume* ConstructMicroDiamondDetector(); - G4VPhysicalVolume* ConstructSiliconDetector(); - G4VPhysicalVolume* ConstructSiliconBridgeDetector(); + void ConstructWorldWithWaterPhantom(); + void ConstructVacuumWorld(); + void ConstructDiamondDetector(); + void ConstructMicroDiamondDetector(); + void ConstructSiliconDetector(); + void ConstructSiliconBridgeDetector(); + void ConstructDiamondTelescope(); + + // store these variable across various Construct*() above + G4VPhysicalVolume* physical_world; + G4LogicalVolume* logical_motherVolumeForDetector; + G4Material* materialOfMotherVolume; + + G4NistManager* nistMan; }; #endif diff --git a/examples/advanced/radioprotection/include/DetectorMessenger.hh b/examples/advanced/radioprotection/include/DetectorMessenger.hh index ecad06f028..85af1fba2d 100644 --- a/examples/advanced/radioprotection/include/DetectorMessenger.hh +++ b/examples/advanced/radioprotection/include/DetectorMessenger.hh @@ -41,6 +41,8 @@ class G4UIdirectory; class G4UIcmdWithADoubleAndUnit; class G4UIcmdWithAString; +class G4UIcmdWithoutParameter; +class G4UIcmdWithABool; class DetectorMessenger: public G4UImessenger { @@ -49,10 +51,49 @@ public: ~DetectorMessenger(); void SetNewValue(G4UIcommand*, G4String); + + // functions to read parameters + G4String GetDetectorType() { return detectorType; } + G4double GetDetectorSizeWidth() { return detectorWidth; } + G4double GetDetectorSizeThickness() { return detectorThickness; } + G4double GetSecondStageSizeWidth() { return secondStageWidth; } + G4double GetSecondStageSizeThickness() { return secondStageThickness; } + + G4bool IsPhantomEnabled() { return phantomEnabled; } + G4double GetDetectorPositionDepth() { return detectorDepth; } + + G4bool AreTherePendingChanges() { return geometryHasChanged; } private: - G4UIdirectory *changeTheGeometryDir; ///> UI directory for the geometry control - G4UIcmdWithAString *changeTheDetectorCmd; ///> Select the detector type + G4UIdirectory* changeTheGeometryDir; // UI directory for the geometry control + // subdirectories + G4UIdirectory* changeDetectorDimensionDir; + G4UIdirectory* changeDetectorPositionDir; + G4UIdirectory* changeSecondStageDimensionDir; + + // commands + G4UIcmdWithAString* changeTheDetectorCmd; + G4UIcmdWithADoubleAndUnit* changeDetectorSizeWidthCmd; + G4UIcmdWithADoubleAndUnit* changeDetectorSizeThicknessCmd; + G4UIcmdWithADoubleAndUnit* changeSecondStageSizeWidthCmd; + G4UIcmdWithADoubleAndUnit* changeSecondStageSizeThicknessCmd; + + G4UIcmdWithABool* enableWaterPhantomCmd; + + G4UIcmdWithADoubleAndUnit* changeDetectorPositionDepthCmd; + + G4UIcmdWithoutParameter *applyChangesToGeometryCmd; // applies changes to detector + + // parameters to store + G4String detectorType; + G4double detectorWidth; + G4double detectorThickness; + G4double secondStageWidth; + G4double secondStageThickness; + G4bool phantomEnabled; + G4double detectorDepth; + + G4bool geometryHasChanged; AnalysisManager* analysis; }; diff --git a/examples/advanced/radioprotection/include/RunAction.hh b/examples/advanced/radioprotection/include/RunAction.hh index c3286fb2a4..31ee30bc16 100644 --- a/examples/advanced/radioprotection/include/RunAction.hh +++ b/examples/advanced/radioprotection/include/RunAction.hh @@ -33,15 +33,16 @@ #include "G4UserRunAction.hh" #include "globals.hh" #include "AnalysisManager.hh" +#include "DetectorMessenger.hh" #include class RunAction : public G4UserRunAction { public: #ifdef ANALYSIS_USE - RunAction(AnalysisManager* analysis); + RunAction(AnalysisManager* analysis, DetectorMessenger* detector); #else - RunAction(); + RunAction(DetectorMessenger* detector); #endif ~RunAction(); @@ -54,6 +55,7 @@ private: #ifdef ANALYSIS_USE AnalysisManager* analysisMan; #endif + DetectorMessenger* detectorMess; }; #endif diff --git a/examples/advanced/radioprotection/include/SensitiveDetector.hh b/examples/advanced/radioprotection/include/SensitiveDetector.hh index fb475b9d74..aafff13b8b 100644 --- a/examples/advanced/radioprotection/include/SensitiveDetector.hh +++ b/examples/advanced/radioprotection/include/SensitiveDetector.hh @@ -44,7 +44,9 @@ class SensitiveDetector : public G4VSensitiveDetector { public: SensitiveDetector(const G4String& name, - const G4String& hitsCollectionName, AnalysisManager*); + const G4String& hitsCollectionName, + G4bool isThisAMicrodosimeter, + AnalysisManager*); virtual ~SensitiveDetector(); // methods from base class @@ -55,6 +57,7 @@ class SensitiveDetector : public G4VSensitiveDetector private: SensitiveDetectorHitsCollection* fHitsCollection; AnalysisManager* analysis; + G4bool isMicrod; }; #endif diff --git a/examples/advanced/radioprotection/include/SensitiveDetectorHit.hh b/examples/advanced/radioprotection/include/SensitiveDetectorHit.hh index 75395c1cde..4e95c14c64 100644 --- a/examples/advanced/radioprotection/include/SensitiveDetectorHit.hh +++ b/examples/advanced/radioprotection/include/SensitiveDetectorHit.hh @@ -56,13 +56,16 @@ class SensitiveDetectorHit : public G4VHit virtual void Print(); // Set methods - void SetEdep (G4double de) { fEdep = de; }; - - G4double GetEdep() const { return fEdep; }; + void SetEdep (G4double de) { fEdep = de; }; + G4double GetEdep() const { return fEdep; }; + + void SetPath(G4double len) { fPath = len; }; + G4double GetPath() const { return fPath; }; private: - G4double fEdep; + G4double fEdep; + G4double fPath; }; typedef G4THitsCollection SensitiveDetectorHitsCollection; diff --git a/examples/advanced/radioprotection/output.mac b/examples/advanced/radioprotection/output.mac new file mode 100644 index 0000000000..8dc7335fb0 --- /dev/null +++ b/examples/advanced/radioprotection/output.mac @@ -0,0 +1,4 @@ +# Uncomment the following line to disable ROOT output +# and enable plaintext csv instead +#/analysis/useRoot false + diff --git a/examples/advanced/radioprotection/radioprotection.cc b/examples/advanced/radioprotection/radioprotection.cc index 6f4737190c..7e3d7047bb 100644 --- a/examples/advanced/radioprotection/radioprotection.cc +++ b/examples/advanced/radioprotection/radioprotection.cc @@ -39,6 +39,7 @@ #include "G4UIExecutive.hh" #include "DetectorMessenger.hh" +#include "AnalysisMessenger.hh" int main(int argc, char** argv) { @@ -46,14 +47,14 @@ int main(int argc, char** argv) auto* pRunManager = G4RunManagerFactory::CreateRunManager(); G4int nThreads = 4; pRunManager->SetNumberOfThreads(nThreads); - - AnalysisManager* analysis = new AnalysisManager(); - + + AnalysisMessenger* anMess = new AnalysisMessenger(); + AnalysisManager* analysis = new AnalysisManager(anMess); + // Construct geometry - G4String defaultDetector = "SiliconBridge"; - - DetectorConstruction* detector = new DetectorConstruction(analysis, defaultDetector); + DetectorMessenger* detMess = new DetectorMessenger(analysis); + DetectorConstruction* detector = new DetectorConstruction(analysis, detMess); pRunManager -> SetUserInitialization(detector); @@ -63,13 +64,9 @@ int main(int argc, char** argv) // User action initialization - ActionInitialization* actions = new ActionInitialization(analysis); + ActionInitialization* actions = new ActionInitialization(analysis, detMess); pRunManager->SetUserInitialization(actions); - // Geometry messenger - - DetectorMessenger* detMess = new DetectorMessenger(analysis); - G4VisManager* visManager = new G4VisExecutive(); visManager->Initialize(); @@ -99,6 +96,7 @@ int main(int argc, char** argv) delete analysis; delete pRunManager; delete detMess; + delete anMess; return 0; } diff --git a/examples/advanced/radioprotection/radioprotection.out b/examples/advanced/radioprotection/radioprotection.out index b93b56bca3..fe4ebae505 100644 --- a/examples/advanced/radioprotection/radioprotection.out +++ b/examples/advanced/radioprotection/radioprotection.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -31,6 +31,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -78,17 +80,26 @@ THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmLivermorePhys THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: HadronPhysicsQGSP_BIC_HP() THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4IonBinaryCascadePhysics() THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4RadioactiveDecayPhysics() -Checking overlaps for volume detectorRegPhys:0 (G4Box) ... OK! -Checking overlaps for volume baseSiPhys:0 (G4Box) ... OK! -Checking overlaps for volume SoIPhys:0 (G4Box) ... OK! -Checking overlaps for volume SVregPhys:0 (G4Box) ... OK! -Checking overlaps for volume physAlContact:0 (G4Box) ... OK! +Checking overlaps for volume DiaVol_phys:0 (G4Box) ... OK! +Checking overlaps for volume vacblock_phys:0 (G4Box) ... OK! +Checking overlaps for volume Bdl_phys:0 (G4Box) ... OK! +Checking overlaps for volume SV_phys1:0 (G4Box) ... OK! +Checking overlaps for volume SV_phys2:0 (G4Box) ... OK! +Checking overlaps for volume SV_phys3:0 (G4Box) ... OK! +Checking overlaps for volume SV_phys4:0 (G4Box) ... OK! +Checking overlaps for volume AlStrip_phys:0 (G4Box) ... OK! +Checking overlaps for volume GoldCylinder1_phys:0 (G4Tubs) ... OK! +Checking overlaps for volume GoldCylinder2_phys:0 (G4Tubs) ... OK! +Checking overlaps for volume GoldCylinder3_phys:0 (G4Tubs) ... OK! /cvmfs/geant4.cern.ch/share/data/G4NDL4.7 @@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic @@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.7 NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic/CrossSection/6_nat_Carbon ======================================================================= ====== Electromagnetic Physics Parameters ======== ======================================================================= @@ -98,6 +109,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -125,7 +137,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -161,8 +173,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -193,8 +204,8 @@ conv: for gamma SubType=14 BuildTable=1 Livermore5DConversion : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -285,6 +296,7 @@ hIoni: for proton XStype:3 SubType=2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 2 MeV deltaVI BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + ===== Limit on energy threshold has been applied hBrems: for proton XStype:1 SubType=3 dE/dx and range tables from 100 eV to 100 TeV in 240 bins @@ -318,9 +330,10 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI + ===== Limit on energy threshold has been applied nuclearStopping: for GenericIon SubType=8 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -328,10 +341,11 @@ nuclearStopping: for GenericIon SubType=8 BuildTable=0 ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 1.4427 us -Max life time (from G4DeexPrecoParameters) 1.4427 us +min MeanLife (from G4NuclideTable) 1 ns +Max life time (from G4DeexPrecoParameters) 1000 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -354,6 +368,7 @@ ionIoni: for alpha XStype:3 SubType=2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BraggIon : Emin= 0 eV Emax=7.9452 MeV deltaVI BetheBloch : Emin=7.9452 MeV Emax= 100 TeV deltaVI + ===== Limit on energy threshold has been applied nuclearStopping: for alpha SubType=8 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -371,6 +386,7 @@ hIoni: for anti_proton XStype:3 SubType=2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + ===== Limit on energy threshold has been applied hBrems: for anti_proton XStype:1 SubType=3 dE/dx and range tables from 100 eV to 100 TeV in 240 bins @@ -404,6 +420,7 @@ hIoni: for kaon+ XStype:3 SubType=2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI + ===== Limit on energy threshold has been applied hBrems: for kaon+ XStype:1 SubType=3 dE/dx and range tables from 100 eV to 100 TeV in 240 bins @@ -437,6 +454,7 @@ hIoni: for kaon- XStype:3 SubType=2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI + ===== Limit on energy threshold has been applied hBrems: for kaon- XStype:1 SubType=3 dE/dx and range tables from 100 eV to 100 TeV in 240 bins @@ -470,6 +488,7 @@ muIoni: for mu+ XStype:3 SubType=2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax= 200 keV deltaVI MuBetheBloch : Emin= 200 keV Emax= 100 TeV + ===== Limit on energy threshold has been applied muBrems: for mu+ XStype:1 SubType=3 dE/dx and range tables from 100 eV to 100 TeV in 240 bins @@ -503,6 +522,7 @@ muIoni: for mu- XStype:3 SubType=2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI MuBetheBloch : Emin= 200 keV Emax= 100 TeV + ===== Limit on energy threshold has been applied muBrems: for mu- XStype:1 SubType=3 dE/dx and range tables from 100 eV to 100 TeV in 240 bins @@ -526,6 +546,10 @@ CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon +NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic/CrossSection/6_nat_Carbon +NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon ======================================================= @@ -542,6 +566,7 @@ NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use / @@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon +NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon msc: for pi+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -555,6 +580,7 @@ hIoni: for pi+ XStype:3 SubType=2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== Bragg : Emin= 0 eV Emax=297.505 keV deltaVI BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI + ===== Limit on energy threshold has been applied hBrems: for pi+ XStype:1 SubType=3 dE/dx and range tables from 100 eV to 100 TeV in 240 bins @@ -588,6 +614,7 @@ hIoni: for pi- XStype:3 SubType=2 ===== EM models for the G4Region DefaultRegionForTheWorld ====== ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI + ===== Limit on energy threshold has been applied hBrems: for pi- XStype:1 SubType=3 dE/dx and range tables from 100 eV to 100 TeV in 240 bins @@ -936,7 +963,7 @@ Limit excitation energy for Fermi BreakUp 20 MeV Level density (1/MeV) 0.075 Use simple level density model 1 Use discrete excitation energy of the residual 1 -Time limit for long lived isomeres 1.4427 us +Time limit for long lived isomeres 1000 ps Isomer production flag 1 Internal e- conversion flag 1 Store e- internal conversion data 1 @@ -947,28 +974,35 @@ Max 2J for sampling of angular correlations 10 ========= Table of registered couples ============================ Index : 0 used in the geometry : Yes - Material : G4_AIR + Material : Galactic Range cuts : gamma 10 nm e- 10 nm e+ 10 nm proton 10 nm Energy thresholds : gamma 250 eV e- 250 eV e+ 250 eV proton 1 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 1 used in the geometry : Yes - Material : G4_Si + Material : diamond Range cuts : gamma 10 nm e- 10 nm e+ 10 nm proton 10 nm Energy thresholds : gamma 250 eV e- 250 eV e+ 250 eV proton 1 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes - Material : G4_SILICON_DIOXIDE + Material : AlContact Range cuts : gamma 10 nm e- 10 nm e+ 10 nm proton 10 nm Energy thresholds : gamma 250 eV e- 250 eV e+ 250 eV proton 1 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 3 used in the geometry : Yes - Material : G4_Al + Material : AuContact + Range cuts : gamma 10 nm e- 10 nm e+ 10 nm proton 10 nm + Energy thresholds : gamma 250 eV e- 250 eV e+ 250 eV proton 1 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 4 used in the geometry : Yes + Material : dopant Range cuts : gamma 10 nm e- 10 nm e+ 10 nm proton 10 nm Energy thresholds : gamma 250 eV e- 250 eV e+ 250 eV proton 1 eV Region(s) which use this couple : @@ -979,6 +1013,25 @@ Index : 3 used in the geometry : Yes G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. ### Run 0 start. +... set ntuple merging mode : G4NtupleMergeMode::kNone - done +... set ntuple merging mode : G4NtupleMergeMode::kNone - done +... set ntuple merging row mode : row-wise - done +... create directory for ntuples : radioprotection_ntuple - done +... create file : radioprotection.root - done +... open analysis file : radioprotection.root - done +... open analysis file : radioprotection.root - done +... create ntuple booking : 101 ntupleId 1 - done +... create ntuple T column : Ek ntupleId 1 - done +... create ntuple booking : 102 ntupleId 2 - done +... create ntuple T column : edep ntupleId 2 - done +... create ntuple T column : len ntupleId 2 - done +... create ntuple booking : 103 ntupleId 3 - done +... create ntuple T column : AA ntupleId 3 - done +... create ntuple T column : ZZ ntupleId 3 - done +... create ntuple T column : KE ntupleId 3 - done +Simulating the Diamond detector with dimensions: 30 um width, 10 um thickness. Number of events = 1000 +... write file : radioprotection.root - done +... close file : radioprotection.root - done Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/advanced/radioprotection/run.mac b/examples/advanced/radioprotection/run.mac index fb146b915c..cc6049d284 100644 --- a/examples/advanced/radioprotection/run.mac +++ b/examples/advanced/radioprotection/run.mac @@ -1,6 +1,7 @@ /control/execute geometry.mac #control the physics /control/execute physics.mac +/control/execute output.mac #/tracking/verbose 1 /run/initialize /control/execute primary.mac diff --git a/examples/advanced/radioprotection/src/ActionInitialization.cc b/examples/advanced/radioprotection/src/ActionInitialization.cc index c9ea2463a7..cf7a24d167 100644 --- a/examples/advanced/radioprotection/src/ActionInitialization.cc +++ b/examples/advanced/radioprotection/src/ActionInitialization.cc @@ -35,10 +35,11 @@ #include "RunAction.hh" #include "G4GeneralParticleSource.hh" -ActionInitialization::ActionInitialization(AnalysisManager* analysisMan): +ActionInitialization::ActionInitialization(AnalysisManager* analysisMan, DetectorMessenger* detectorMess): G4VUserActionInitialization() { analysis = analysisMan; + detector = detectorMess; } @@ -63,9 +64,9 @@ PrimaryGeneratorAction* primary = new PrimaryGeneratorAction(analysis); SetUserAction(primary); #ifdef ANALYSIS_USE - RunAction* run = new RunAction(analysis); + RunAction* run = new RunAction(analysis, detector); #else - RunAction* run = new RunAction(); + RunAction* run = new RunAction(detector); #endif SetUserAction(run); diff --git a/examples/advanced/radioprotection/src/AnalysisManager.cc b/examples/advanced/radioprotection/src/AnalysisManager.cc index c7c3cb0096..65569e1c81 100644 --- a/examples/advanced/radioprotection/src/AnalysisManager.cc +++ b/examples/advanced/radioprotection/src/AnalysisManager.cc @@ -32,7 +32,9 @@ #include "G4UnitsTable.hh" #include "G4SystemOfUnits.hh" -AnalysisManager::AnalysisManager() +#include "AnalysisMessenger.hh" + +AnalysisManager::AnalysisManager(AnalysisMessenger* analysisMessenger) { factoryOn = false; @@ -45,23 +47,31 @@ AnalysisManager::AnalysisManager() //h10 = 0; //h20 = 0; + + messenger = analysisMessenger; } AnalysisManager::~AnalysisManager() { } -void AnalysisManager::book() +void AnalysisManager::book(G4bool addExtraNt) { G4AnalysisManager* manager = G4AnalysisManager::Instance(); manager->SetVerboseLevel(2); - // Create a root file - G4String fileName = "radioprotection.root"; + extraNt = addExtraNt; + + usingRoot = messenger -> IsRootOutput(); + + // Create an output file + G4String fileName; + if( usingRoot == true ) fileName = "radioprotection.root"; + else fileName = "radioprotection.csv"; - // Create directories - manager->SetNtupleDirectoryName("radioprotection_ntuple"); + // Create directories (not supported by csv) + if( usingRoot == true ) manager->SetNtupleDirectoryName("radioprotection_ntuple"); G4bool fileOpen = manager->OpenFile(fileName); @@ -78,18 +88,28 @@ void AnalysisManager::book() fNtColId[0] = manager -> CreateNtupleDColumn("Ek"); manager -> FinishNtuple(); - //Create Energy Deposition within SV Ntuple + //Create Energy Deposition and Path Length within SV Ntuple manager -> CreateNtuple("102", "Edep"); fNtColId[1] = manager -> CreateNtupleDColumn("edep"); + fNtColId[2] = manager -> CreateNtupleDColumn("len"); + if( extraNt == true ) fNtColId[3] = manager -> CreateNtupleIColumn("eventID"); manager -> FinishNtuple(); //creating a ntuple, containing the information about secondary particles manager -> CreateNtuple("103", "secondary"); - fNtColId[2] = manager -> CreateNtupleDColumn("AA"); - fNtColId[3] = manager -> CreateNtupleDColumn("ZZ"); - fNtColId[4] = manager -> CreateNtupleDColumn("KE"); + fNtColId[4] = manager -> CreateNtupleDColumn("AA"); + fNtColId[5] = manager -> CreateNtupleDColumn("ZZ"); + fNtColId[6] = manager -> CreateNtupleDColumn("KE"); manager -> FinishNtuple(); - + + // if the telescope is in use, add an exta ntuple for its information + if( extraNt == true) + { + manager -> CreateNtuple("104", "secondStageE"); + fNtColId[7] = manager -> CreateNtupleDColumn("edep"); + fNtColId[8] = manager -> CreateNtupleIColumn("eventID"); + manager -> FinishNtuple(); + } factoryOn = true; } @@ -102,10 +122,13 @@ void AnalysisManager::SetPrimaryEnergy(G4double energy) manager -> AddNtupleRow(1); } -void AnalysisManager::StoreEnergyDeposition(G4double edep) +void AnalysisManager::StoreEnergyDeposition(G4double edep, G4double len, G4int eid) { G4AnalysisManager* manager = G4AnalysisManager::Instance(); manager -> FillNtupleDColumn(2, fNtColId[1], edep); + manager -> FillNtupleDColumn(2, fNtColId[2], len); + if( extraNt == true ) manager -> FillNtupleIColumn(2, fNtColId[3], eid); + // the event ID is only useful when the 4th ntuple is enabled manager -> AddNtupleRow(2); } @@ -113,21 +136,30 @@ void AnalysisManager::FillSecondaries(G4int AA, G4double charge, G4double energy { G4AnalysisManager* manager = G4AnalysisManager::Instance(); - manager -> FillNtupleDColumn(3, fNtColId[2], AA); - manager -> FillNtupleDColumn(3, fNtColId[3], charge); - manager -> FillNtupleDColumn(3, fNtColId[4], energy); + manager -> FillNtupleDColumn(3, fNtColId[4], AA); + manager -> FillNtupleDColumn(3, fNtColId[5], charge); + manager -> FillNtupleDColumn(3, fNtColId[6], energy); manager -> AddNtupleRow(3); } - + +void AnalysisManager::StoreSecondStageEnergyDeposition(G4double edep, G4int eid) +{ + if( extraNt == true ) + { + G4AnalysisManager* manager = G4AnalysisManager::Instance(); + manager -> FillNtupleDColumn(4, fNtColId[7], edep); + manager -> FillNtupleIColumn(4, fNtColId[8], eid); + manager -> AddNtupleRow(4); + } +} + void AnalysisManager::finish() { if (factoryOn) { G4AnalysisManager* manager = G4AnalysisManager::Instance(); manager -> Write(); - manager -> CloseFile(); - - manager -> Clear(); + manager -> CloseFile(); factoryOn = false; } } @@ -143,3 +175,4 @@ void AnalysisManager::finish() + diff --git a/environments/g4py/tests/g4pytest/ParticleGun/ParticleGunAction.cc b/examples/advanced/radioprotection/src/AnalysisMessenger.cc similarity index 62% rename from environments/g4py/tests/g4pytest/ParticleGun/ParticleGunAction.cc rename to examples/advanced/radioprotection/src/AnalysisMessenger.cc index 5b9d1044bb..454c6e0a30 100644 --- a/environments/g4py/tests/g4pytest/ParticleGun/ParticleGunAction.cc +++ b/examples/advanced/radioprotection/src/AnalysisMessenger.cc @@ -23,38 +23,39 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// ParticleGunAction.cc -// -// 2005 Q -// ==================================================================== -#include "ParticleGunAction.hh" -#include "G4ParticleGun.hh" - -// ==================================================================== -// -// class description -// -// ==================================================================== +#include "AnalysisMessenger.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithABool.hh" -////////////////////////////////////// -ParticleGunAction::ParticleGunAction() -////////////////////////////////////// +AnalysisMessenger::AnalysisMessenger() { - particleGun= new G4ParticleGun; + analysisDir = new G4UIdirectory("/analysis/"); + analysisDir -> SetGuidance("Customize data analysis output"); + + useRootForOutput = new G4UIcmdWithABool("/analysis/useRoot", this); + useRootForOutput -> SetGuidance("If true, a ROOT file is used for the output. If false, a plaintext csv file is used"); + useRootForOutput -> SetParameterName("Root", true); + useRootForOutput -> AvailableForStates(G4State_PreInit); + + //default + rootOutput = true; } -/////////////////////////////////////// -ParticleGunAction::~ParticleGunAction() -/////////////////////////////////////// +AnalysisMessenger::~AnalysisMessenger() { - delete particleGun; + delete useRootForOutput; + + delete analysisDir; } -/////////////////////////////////////////////////////////// -void ParticleGunAction::GeneratePrimaries(G4Event* anEvent) -/////////////////////////////////////////////////////////// +void AnalysisMessenger::SetNewValue(G4UIcommand* command, G4String commandContent) { - particleGun-> GeneratePrimaryVertex(anEvent); -} + if( command == useRootForOutput ) + { + rootOutput = G4UIcmdWithABool::GetNewBoolValue(commandContent); + + if( rootOutput == true ) G4cout << "Outputting to a ROOT file" << G4endl; + else G4cout << "Outputting to a csv file" << G4endl; + } +} diff --git a/examples/advanced/radioprotection/src/DetectorConstruction.cc b/examples/advanced/radioprotection/src/DetectorConstruction.cc index 16f4ce17b7..d720b9ebfa 100644 --- a/examples/advanced/radioprotection/src/DetectorConstruction.cc +++ b/examples/advanced/radioprotection/src/DetectorConstruction.cc @@ -53,14 +53,24 @@ #include "G4GeometryTolerance.hh" #include "G4GeometryManager.hh" #include "G4SystemOfUnits.hh" - #include "G4NistManager.hh" -DetectorConstruction::DetectorConstruction(AnalysisManager* analysis_manager, G4String detector) +DetectorConstruction::DetectorConstruction(AnalysisManager* analysis_manager, DetectorMessenger* detector_messenger) { analysis = analysis_manager; + messenger = detector_messenger; - detectorType = detector; + detectorType = messenger -> GetDetectorType(); + detectorSizeWidth = messenger -> GetDetectorSizeWidth(); + detectorSizeThickness = messenger -> GetDetectorSizeThickness(); + secondStageSizeDim = messenger -> GetSecondStageSizeWidth(); + secondStageSizeThickness = messenger -> GetSecondStageSizeThickness(); + + usingWaterPhantom = messenger -> IsPhantomEnabled(); + + detectorPositionDepth = messenger -> GetDetectorPositionDepth(); + + nistMan = G4NistManager::Instance(); } DetectorConstruction::~DetectorConstruction(){ @@ -69,36 +79,122 @@ DetectorConstruction::~DetectorConstruction(){ G4VPhysicalVolume* DetectorConstruction::Construct() { - - if( detectorType == "Diamond" ) return ConstructDiamondDetector(); - - else if( detectorType == "MicroDiamond" ) return ConstructMicroDiamondDetector(); - - else if( detectorType == "Silicon" ) return ConstructSiliconDetector(); - - else if( detectorType == "SiliconBridge" ) return ConstructSiliconBridgeDetector(); + if( usingWaterPhantom == true ) ConstructWorldWithWaterPhantom(); // for medical applications + else ConstructVacuumWorld(); // space applications + if( detectorType == "Diamond" ) ConstructDiamondDetector(); + else if( detectorType == "MicroDiamond" ) ConstructMicroDiamondDetector(); + else if( detectorType == "Silicon" ) ConstructSiliconDetector(); + else if( detectorType == "SiliconBridge" ) ConstructSiliconBridgeDetector(); + else if( detectorType == "DiamondTelescope" ) ConstructDiamondTelescope(); else { G4cout << "ERROR: " << detectorType << " is not an allowed detector type. "; - G4cout << "Did you change some code in radioprotection.cc and/or DetectorMessenger.cc ?" << G4endl; - return 0; } + + return physical_world; } -G4VPhysicalVolume* DetectorConstruction::ConstructDiamondDetector() +void DetectorConstruction::ConstructWorldWithWaterPhantom() +{ + //Define materials + G4Material* air = nistMan->FindOrBuildMaterial("G4_AIR"); + G4Material* water = G4NistManager::Instance()->FindOrBuildMaterial("G4_WATER"); + + G4double phantomWidth = 5.*cm; + G4double phantomLength = detectorPositionDepth + 2.*cm; + + G4double worldWidth = phantomWidth + 5*cm; + G4double worldLength = phantomLength*2; + + // In a clinical setup, the water phantom is surrounded by air + G4Box* world = new G4Box("world_box", worldWidth/2, worldWidth/2, worldLength/2); + G4LogicalVolume* logical_world = new G4LogicalVolume(world, air, "world_log", 0,0,0); + + //set the logical world volume invisible + logical_world -> SetVisAttributes(G4VisAttributes::GetInvisible()); + + physical_world = new G4PVPlacement(0, + G4ThreeVector(), + logical_world, + "world_phys", + 0, + false, + 0); + + G4Box* phantom_box = new G4Box("phantom_box", phantomWidth/2, phantomWidth/2, phantomLength/2); + G4LogicalVolume* logical_phantom = new G4LogicalVolume(phantom_box, water, "phantom_log", 0,0,0); + + //the water phantom starts at z=0 + G4ThreeVector phantom_position = G4ThreeVector( 0., 0., -phantomLength/2 ); + + new G4PVPlacement(0, phantom_position, logical_phantom,"phantom_phys", + logical_world, + false, 0, 0); + + logical_phantom -> SetVisAttributes(G4VisAttributes(G4Colour(0., 0.2, 0.6))); + + // smaller inner volume where the detector will be placed + G4double innerSize = 2.*cm; + G4Box* inner_box = new G4Box("inner_box", innerSize/2, innerSize/2, innerSize/2); + G4LogicalVolume* logical_inner = new G4LogicalVolume(inner_box, water, "inner_log",0,0,0); + + G4double innerDepth = phantomLength/2 -detectorPositionDepth; + G4ThreeVector inner_position = G4ThreeVector( 0 , 0 , innerDepth ); + new G4PVPlacement(0, inner_position, logical_inner,"inner_phys", + logical_phantom, + false, 0, 0); + + logical_inner -> SetVisAttributes(G4VisAttributes::GetInvisible()); + + // private member of DetectorConstruction, + // needed as mother volume for Construct*Detector() + logical_motherVolumeForDetector = logical_inner; + materialOfMotherVolume = water; + + // uncomment to enable a G4Region for the inner volume + // e.g. in order to set different cuts + //G4Region* inner_region = new G4Region("inner_region"); + //inner_region -> AddRootLogicalVolume( logical_highPVol ); +} + +void DetectorConstruction::ConstructVacuumWorld() +{ + //Define Vacuum + G4double Z = 1.; + G4double A = 1.01*g/mole; + G4double vacuumDensity = 1.e-25 *g/cm3; + G4double pressure = 3.e-18*pascal; + G4double temperature = 2.73*kelvin; + G4Material* vacuum = new G4Material("Galactic", Z, A, + vacuumDensity,kStateGas,temperature,pressure); + + G4double worldSize = 10.*cm; + + G4Box* world_box = new G4Box("world_box", worldSize/2, worldSize/2, worldSize/2); + G4LogicalVolume* logical_world = new G4LogicalVolume(world_box, vacuum, "world_log",0,0,0); + physical_world = new G4PVPlacement(0, + G4ThreeVector(), + logical_world, + "world_phys", + 0, + false, + 0); + + logical_world -> SetVisAttributes(G4VisAttributes::GetInvisible()); + + logical_motherVolumeForDetector = logical_world; + materialOfMotherVolume = vacuum; +} + +void DetectorConstruction::ConstructDiamondDetector() { //Define each individual element -//Define Nitrogen - G4double A = 14.01 * g/mole; - G4double Z = 7; - G4Element* elN = new G4Element ("Nitrogen", "N", Z, A); - //Define Oxygen - A = 16.0 * g/mole; - Z = 8; + G4double A = 16.0 * g/mole; + G4double Z = 8; G4Element* elO = new G4Element ("Oxygen", "O", Z, A); //Define Hydrogen @@ -116,11 +212,6 @@ G4VPhysicalVolume* DetectorConstruction::ConstructDiamondDetector() Z = 6; G4Element* elC = new G4Element ("Carbon", "C", Z, A); -//Define Air - G4Material* Air = new G4Material("Air", 1.29*mg/cm3, 2); - Air -> AddElement(elN, 70*perCent); - Air -> AddElement(elO, 30*perCent); - //Define diamond A = 12.01 * g/mole; Z = 6; @@ -148,41 +239,7 @@ G4VPhysicalVolume* DetectorConstruction::ConstructDiamondDetector() PMMA -> AddElement(elO, 2); PMMA -> AddElement(elH, 8); - //define water - G4Material* water = new G4Material("water", 1*g/cm3, 2); - water -> AddElement(elH, 2); - water -> AddElement(elO, 1); - - //Define Vacuum - G4double vacuumDensity = 1.e-25 *g/cm3; - G4double pressure = 3.e-18*pascal; - G4double temperature = 2.73*kelvin; - G4Material* vacuum = new G4Material("Galactic", Z=1., A=1.01*g/mole, - vacuumDensity,kStateGas,temperature,pressure); - - //Define volumes - // World volume has size 1cm - G4double worldx = 0.5 * m; //half length!!!! - G4double worldy = 0.5 * m; - G4double worldz = 0.5 * m; - - // World volume, containing all geometry - G4Box* world = new G4Box("world_box", worldx, worldy, worldz); - - G4LogicalVolume* logical_world = new G4LogicalVolume(world, vacuum, "world_log", 0,0,0); - - //set the logical world volume invisible - logical_world -> SetVisAttributes(G4VisAttributes::GetInvisible()); - - G4VPhysicalVolume* physical_world = new G4PVPlacement(0, - G4ThreeVector(), - logical_world, - "world_phys", - 0, - false, - 0); - - + // Define the geometry of the diamond microdosimeter // mother volume of the detector components G4double DiaVol_x = 300*micrometer; @@ -192,9 +249,11 @@ G4VPhysicalVolume* DetectorConstruction::ConstructDiamondDetector() G4Box* DiaVol_box = new G4Box("DiaVol_box",DiaVol_x,DiaVol_y,DiaVol_z); G4LogicalVolume* logical_DiaVol = new G4LogicalVolume(DiaVol_box, diamond, "DiaVol_log", 0,0,0); + + G4ThreeVector DiaVol_position = {0, 0, -DiaVol_z +detectorSizeThickness/2}; - new G4PVPlacement(0, G4ThreeVector(0,0,0), logical_DiaVol,"DiaVol_phys", - logical_world, + new G4PVPlacement(0, DiaVol_position, logical_DiaVol,"DiaVol_phys", + logical_motherVolumeForDetector, false, 0, true); //VacBlock for contact placement @@ -202,9 +261,10 @@ G4VPhysicalVolume* DetectorConstruction::ConstructDiamondDetector() G4double vacblock_y = 240*um; G4double vacblock_z = 0.25*um; + // vacuum (or water) box to place other volumes in G4Box* vacblock_box = new G4Box("vacblock_box",vacblock_x,vacblock_y,vacblock_z); - G4LogicalVolume* logical_vacblock = new G4LogicalVolume(vacblock_box, vacuum, "vacblock_log", 0,0,0); + G4LogicalVolume* logical_vacblock = new G4LogicalVolume(vacblock_box, materialOfMotherVolume, "vacblock_log", 0,0,0); new G4PVPlacement(0, G4ThreeVector(0,0,DiaVol_z - vacblock_z), @@ -216,7 +276,7 @@ G4VPhysicalVolume* DetectorConstruction::ConstructDiamondDetector() //Bdl in DiaVol G4double Bdl_x = 300*micrometer; G4double Bdl_y = 240*micrometer; - G4double Bdl_z = 0.69*micrometer; + G4double Bdl_z = detectorSizeThickness/2; G4Box* Bdl_box = new G4Box("Bdl_box",Bdl_x,Bdl_y,Bdl_z); @@ -231,9 +291,9 @@ G4VPhysicalVolume* DetectorConstruction::ConstructDiamondDetector() 0, true); //Diamond SV - G4double SV_x = 75*um; - G4double SV_y = 75*um; - G4double SV_z = 0.69*um; + G4double SV_x = detectorSizeWidth/2; + G4double SV_y = detectorSizeWidth/2; + G4double SV_z = Bdl_z; G4Box* SV_box = new G4Box("SV_box",SV_x,SV_y,SV_z); @@ -348,27 +408,18 @@ new G4PVPlacement(0, G4ThreeVector(-245*um,0,DiaVol_z - heightOfTheTube3 - Bdl_z G4VisAttributes vis_GoldCylinder3(G4Colour(255, 255, 0)); vis_GoldCylinder3.SetForceAuxEdgeVisible(true); logical_GoldCylinder3 -> SetVisAttributes(vis_GoldCylinder3); - -return physical_world; + +// no need to return the following, it's been stored earlier! +//return physical_world; } -G4VPhysicalVolume* DetectorConstruction::ConstructMicroDiamondDetector() +void DetectorConstruction::ConstructMicroDiamondDetector() { //Define each individual element - //Define Nitrogen - G4double A = 14.01 * g/mole; - G4double Z = 7; - G4Element* elN = new G4Element ("Nitrogen", "N", Z, A); - - //Define Oxygen - A = 16.0 * g/mole; - Z = 8; - G4Element* elO = new G4Element ("Oxygen", "O", Z, A); - //Define Boron - A = 10.8 * g/mole; - Z = 5; + G4double A = 10.8 * g/mole; + G4double Z = 5; G4Element* elB = new G4Element ("Boron", "B", Z, A); //Define Carbon @@ -376,11 +427,6 @@ G4VPhysicalVolume* DetectorConstruction::ConstructMicroDiamondDetector() Z = 6; G4Element* elC = new G4Element ("Carbon", "C", Z, A); - //Define Air - G4Material* Air = new G4Material("Air", 1.29*mg/cm3, 2); - Air -> AddElement(elN, 70*perCent); - Air -> AddElement(elO, 30*perCent); - //Define diamond A = 12.01 * g/mole; Z = 6; @@ -393,40 +439,11 @@ G4VPhysicalVolume* DetectorConstruction::ConstructMicroDiamondDetector() p_diamond -> AddElement(elB, 0.05113*perCent); //Define chromium contact - G4Material* chromium = G4NistManager::Instance()->FindOrBuildMaterial("G4_Cr"); - - //Define Vacuum - G4double vacuumDensity = 1.e-25 *g/cm3; - G4double pressure = 3.e-18*pascal; - G4double temperature = 2.73*kelvin; - G4Material* vacuum = new G4Material("Galactic", Z=1., A=1.01*g/mole, - vacuumDensity,kStateGas,temperature,pressure); - - //Define volumes - // World volume has size 1cm - G4double worldx = 0.5 * m; //half length!!!! - G4double worldy = 0.5 * m; - G4double worldz = 0.5 * m; - - // World volume, containing all geometry - G4Box* world = new G4Box("world_box", worldx, worldy, worldz); - - G4LogicalVolume* logical_world = new G4LogicalVolume(world, vacuum, "world_log", 0,0,0); - - //set the logical world volume invisible - logical_world -> SetVisAttributes(G4VisAttributes::GetInvisible()); - - G4VPhysicalVolume* physical_world = new G4PVPlacement(0, - G4ThreeVector(), - logical_world, - "world_phys", - 0, - false, - 0); + G4Material* chromium = nistMan->FindOrBuildMaterial("G4_Cr"); // sentive volume - G4double SVside = 100.*um /2.; - G4double SVthickness = 8.*um /2.; + G4double SVside = detectorSizeWidth /2.; + G4double SVthickness = detectorSizeThickness /2.; G4double SVspacing = 200.*um; //edge-edge distance G4Box* SV_box = new G4Box("SV_box", SVside, SVside, SVthickness); @@ -461,9 +478,9 @@ G4VPhysicalVolume* DetectorConstruction::ConstructMicroDiamondDetector() logical_pD -> SetVisAttributes(pDcolour); // put them in place - G4ThreeVector SVposition = {0., 0., SVthickness}; //position of the first edge (left) - G4ThreeVector fePosition = {0., 0., 2.*SVthickness + feThickness}; - G4ThreeVector pDposition = {0., 0., -pDthickness}; + G4ThreeVector SVposition = {0., 0., 0}; //position of the first edge (left) + G4ThreeVector fePosition = {0., 0., SVthickness + feThickness}; + G4ThreeVector pDposition = {0., 0., -SVthickness -pDthickness}; G4double SVposition_x[4] = { -3.*SVside -1.5*SVspacing, -SVside -0.5*SVspacing, +SVside +0.5*SVspacing, +3.*SVside +1.5*SVspacing }; @@ -475,7 +492,7 @@ G4VPhysicalVolume* DetectorConstruction::ConstructMicroDiamondDetector() SVposition[0] = SVposition_x[i]; PVName << "SV_phys" << i; new G4PVPlacement(0, SVposition, logical_SV, PVName.str(), - logical_world, + logical_motherVolumeForDetector, false, 0, true); PVName.str(""); //reset the string @@ -483,7 +500,7 @@ G4VPhysicalVolume* DetectorConstruction::ConstructMicroDiamondDetector() PVName << "frontElec_phys" << i; fePosition[0] = SVposition[0]; new G4PVPlacement(0, fePosition, logical_fe, PVName.str(), - logical_world, + logical_motherVolumeForDetector, false, 0, true); PVName.str(""); @@ -491,7 +508,7 @@ G4VPhysicalVolume* DetectorConstruction::ConstructMicroDiamondDetector() PVName << "pD_phys" << i; pDposition[0] = SVposition[0]; new G4PVPlacement(0, pDposition, logical_pD, PVName.str(), - logical_world, + logical_motherVolumeForDetector, false, 0, true); PVName.str(""); } @@ -505,24 +522,179 @@ G4VPhysicalVolume* DetectorConstruction::ConstructMicroDiamondDetector() G4LogicalVolume* logical_sub = new G4LogicalVolume(sub_box, diamond, "sub_log", 0,0,0); - G4ThreeVector subPosition = {0,0, -2.*pDthickness -sub_z}; + G4ThreeVector subPosition = {0,0, -SVthickness -2.*pDthickness -sub_z}; new G4PVPlacement(0, subPosition, logical_sub, "sub_phys", - logical_world, + logical_motherVolumeForDetector, false, 0, true); G4VisAttributes subColour(G4Colour(0.5, 0.5, 0.5)); subColour.SetForceSolid(false); logical_sub -> SetVisAttributes(subColour); - - return physical_world; } -G4VPhysicalVolume* DetectorConstruction::ConstructSiliconDetector() +void DetectorConstruction::ConstructDiamondTelescope() { - //load NIST database - G4NistManager* nist = G4NistManager::Instance(); - nist->SetVerbose(1); + //Define each individual element + //Define Boron + G4double A = 10.8 * g/mole; + G4double Z = 5; + G4Element* elB = new G4Element ("Boron", "B", Z, A); + + //Define Carbon + A = 12.01 * g/mole; + Z = 6; + G4Element* elC = new G4Element ("Carbon", "C", Z, A); + + //Define diamond + A = 12.01 * g/mole; + Z = 6; + G4Material* diamond = new G4Material("diamond", Z, A, 3.515*g/cm3); + + //Define p-type diamond (boron doped diamond) + G4Material* p_diamond = new G4Material("p_diamond", 3.514*g/cm3, 2); + // Boron concentration used is 1e20 cm-3, considering the diamond density and a Boron atomic weight of 10.811u + p_diamond -> AddElement(elC, 99.94887*perCent); + p_diamond -> AddElement(elB, 0.05113*perCent); + + //Define chromium contact + G4Material* chromium = nistMan->FindOrBuildMaterial("G4_Cr"); + + // sentive volumes + // DE + G4double SV_DE_radius = detectorSizeWidth /2.; + G4double SV_DE_thickness = detectorSizeThickness /2.; + + G4Tubs* SV_DE_cyl = new G4Tubs("SV_DE_cyl", 0.*mm, SV_DE_radius, SV_DE_thickness, 0*deg, 360*deg); + + G4LogicalVolume* logical_SV = new G4LogicalVolume(SV_DE_cyl, diamond, "SV_log", 0,0,0); + + G4VisAttributes SVcolour(G4Colour(0.5, 0.5, 0.5)); + SVcolour.SetForceSolid(true); + logical_SV -> SetVisAttributes(SVcolour); + + // The E-stage diameter has to be at least the size of the DE. + if( secondStageSizeDim < detectorSizeWidth ) + { + G4cout << "WARNING: the telescope E-stage diameter set (" << secondStageSizeDim << ") is smaller than the DE-stage diameter (" << detectorSizeWidth << ")."; + G4cout << "To be compliant with the telescope structure, the E-stage diameter has to be at least the same size as the DE-stage diameter."; + secondStageSizeDim = detectorSizeWidth; + G4cout << "E-stage diameter set to default as the DE-stage diameter: " << secondStageSizeDim << "."; + } + + // E stage + G4double SV_E_thickness = secondStageSizeThickness /2.; + G4double SV_E_radius = secondStageSizeDim /2.; + + G4Tubs* SV_E_cyl = new G4Tubs("SV_E_cyl", 0.*mm, SV_E_radius, SV_E_thickness, 0*deg, 360*deg); + + G4LogicalVolume* logical_SV_Estage = new G4LogicalVolume(SV_E_cyl, diamond, "SV_Estage_log", 0,0,0); + + G4VisAttributes SV_E_colour(G4Colour(0.7, 0.7, 0.7)); + SV_E_colour.SetForceSolid(true); + logical_SV_Estage -> SetVisAttributes(SV_E_colour); + + // DE and E crystals - the DE and E sensitive volumes are embedded in bigger intrinsic diamond matrixes, since they are created by the electric field generated from the front and electrodes, respectively. + + // DE and E crystals thickensses are the same as the DE and E sensitive volumes, while their lateral size is bigger and usually few mm. + // Default diamond crystals lateral size + G4double d_crystal_width = 2.*mm /2.; + + if( d_crystal_width < secondStageSizeDim ) + { + G4cout << "The default lateral size (" << d_crystal_width << ") of the diamond crystals in which the DE and the E stages are created was changed to be at least as big as the sensitive volumes (" << secondStageSizeDim << "."; + d_crystal_width = secondStageSizeDim; + } + + // DE crystal + G4Box* DE_crystal_box = new G4Box("DE_crystal_box", d_crystal_width, d_crystal_width, SV_DE_thickness); + + G4LogicalVolume* logical_DE_crystal = new G4LogicalVolume(DE_crystal_box, diamond, "DE_crystal_log", 0,0,0); + + G4VisAttributes Diamond_crystal_colour(G4Colour::White()); + Diamond_crystal_colour.SetForceSolid(false); + logical_DE_crystal -> SetVisAttributes(Diamond_crystal_colour); + + // E crystal + G4Box* E_crystal_box = new G4Box("E_crystal_box", d_crystal_width, d_crystal_width, SV_E_thickness); + + G4LogicalVolume* logical_E_crystal = new G4LogicalVolume(E_crystal_box, diamond, "E_crystal_log", 0,0,0); + + logical_E_crystal -> SetVisAttributes(Diamond_crystal_colour); + + // chromium front-electrode + G4double feThickness = 100.*nm /2.; // front-electrode thickness + + G4Tubs* fe_cyl = new G4Tubs("frontElec_cyl", 0.*mm, SV_DE_radius, feThickness, 0*deg, 360*deg); + + G4LogicalVolume* logical_fe = new G4LogicalVolume(fe_cyl, chromium, "frontElec_log", 0,0,0); + + G4VisAttributes fe_colour(G4Colour::Brown()); + fe_colour.SetForceSolid(false); + logical_fe -> SetVisAttributes(fe_colour); + + // chromium back-electrode + G4Tubs* fe_cyl_back = new G4Tubs("backElec_cyl", 0.*mm, SV_E_radius, feThickness, 0*deg, 360*deg); + + G4LogicalVolume* logical_fe_back = new G4LogicalVolume(fe_cyl_back, chromium, "backElec_log", 0,0,0); + + logical_fe_back -> SetVisAttributes(fe_colour); + + // p-type diamond + G4double pDthickness = 1.8*um /2.; // p-type diamond dead-layer thickness + + // the p-type diamond layer has the same lateral size as the intrinsic diamond crystals + + G4Box* pD_box = new G4Box("pDiam_box", d_crystal_width, d_crystal_width, pDthickness); + + G4LogicalVolume* logical_pD = new G4LogicalVolume(pD_box, p_diamond, "pDiam_log", 0,0,0); + + G4VisAttributes pDcolour(G4Colour::Blue()); + pDcolour.SetForceSolid(false); + logical_pD -> SetVisAttributes(pDcolour); + + // put them in place + G4ThreeVector DE_crystal_position = {0., 0., 0.}; // centre of DE SV is at selected depth position + G4ThreeVector SVposition = {0., 0., 0.}; // the DE sensitive volume will be positioned into the DE crystal. + G4ThreeVector fePosition = {0., 0., SV_DE_thickness + feThickness}; + G4ThreeVector pDposition = {0., 0., -SV_DE_thickness - pDthickness}; + G4ThreeVector E_crystal_position = {0., 0., -SV_DE_thickness - 2*pDthickness - SV_E_thickness}; + G4ThreeVector SV_E_position = {0., 0., 0.}; // the E sensitive volume will be positioned into the E crystal. + G4ThreeVector bePosition = {0., 0., -SV_DE_thickness - 2.*pDthickness - 2.*SV_E_thickness - feThickness}; + + // DE crystal + new G4PVPlacement(0, DE_crystal_position, logical_DE_crystal, "DEstageCrystal_phys", + logical_motherVolumeForDetector, + false, 0, true); + // DE sensitive volume + new G4PVPlacement(0, SVposition, logical_SV, "SV_DE_phys", + logical_DE_crystal, + false, 0, true); + // p-type diamond layer + new G4PVPlacement(0, pDposition, logical_pD, "pD_phys", + logical_motherVolumeForDetector, + false, 0, true); + // E crystal + new G4PVPlacement(0, E_crystal_position, logical_E_crystal, "EstageCrystal_phys", + logical_motherVolumeForDetector, + false, 0, true); + // E sensitive volume + new G4PVPlacement(0, SV_E_position, logical_SV_Estage, "SV_E_phys", + logical_E_crystal, + false, 0, true); + // front-electrode + new G4PVPlacement(0, fePosition, logical_fe, "frontElec_phys", + logical_motherVolumeForDetector, + false, 0, true); + // back electrode + new G4PVPlacement(0, bePosition, logical_fe_back, "backElec_phys", + logical_motherVolumeForDetector, + false, 0, true); +} + +void DetectorConstruction::ConstructSiliconDetector() +{ + nistMan->SetVerbose(1); //Define each individual element //Define Nitrogen @@ -558,58 +730,30 @@ G4VPhysicalVolume* DetectorConstruction::ConstructSiliconDetector() PMMA -> AddElement(elH, 8); //define materials - G4Material* silicon = nist->FindOrBuildMaterial("G4_Si"); - G4Material* SiO2 = nist->FindOrBuildMaterial("G4_SILICON_DIOXIDE"); + G4Material* silicon = nistMan->FindOrBuildMaterial("G4_Si"); + G4Material* SiO2 = nistMan->FindOrBuildMaterial("G4_SILICON_DIOXIDE"); - //Define Vacuum - G4double vacuumDensity = 1.e-25 *g/cm3; - G4double pressure = 3.e-18*pascal; - G4double temperature = 2.73*kelvin; - G4Material* vacuum = new G4Material("Galactic", Z=1., A=1.01*g/mole, - vacuumDensity,kStateGas,temperature,pressure); - - //Define volumes - // World volume has size 1cm - G4double worldx = 0.5 * m; //half length!!!! - G4double worldy = 0.5 * m; - G4double worldz = 0.5 * m; - - // World volume, containing all geometry - G4Box* world = new G4Box("world_box", worldx, worldy, worldz); - - G4LogicalVolume* logical_world = new G4LogicalVolume(world, vacuum, "world_log", 0,0,0); - - //set the logical world volume invisible - logical_world -> SetVisAttributes(G4VisAttributes::GetInvisible()); - - G4VPhysicalVolume* physical_world = new G4PVPlacement(0, - G4ThreeVector(), - logical_world, - "world_phys", - 0, - false, - 0); - - // I need to set the size of the SV now, because some other parameters depend on it - G4double SV_thick = 25.*um /2.; + G4double SVspacing = 10.*um; // distance between the edges of two SV + // PMMA - G4double PMMA_x = 200.*um /2.; - G4double PMMA_y = 200.*um /2.; - G4double PMMA_z = SV_thick; + G4double PMMA_x = ( detectorSizeWidth*2. + SVspacing*3 ) /2.; + G4double PMMA_y = ( detectorSizeWidth*2. + SVspacing*3 ) /2.; + G4double PMMA_z = detectorSizeThickness /2.; G4Box* PMMA_box = new G4Box("PMMA_box", PMMA_x, PMMA_y, PMMA_z); G4LogicalVolume* logical_PMMA = new G4LogicalVolume(PMMA_box, PMMA, "PMMA_log", 0,0,0); new G4PVPlacement(0, G4ThreeVector(), logical_PMMA, "PMMA_phys", - logical_world, + logical_motherVolumeForDetector, false, 0, true); logical_PMMA -> SetVisAttributes(G4VisAttributes(G4Colour(0., 1., 0.))); // sensitive volumes - G4double SV_radius = SV_thick *2; // full length + G4double SV_radius = detectorSizeWidth /2.; // full length + G4double SV_thick = detectorSizeThickness /2.; G4Tubs* SV_cyl = new G4Tubs("SV_cyl", 0., SV_radius, SV_thick, 0.*deg, 360.*deg); //G4RotationMatrix* cylRot = new G4RotationMatrix; @@ -622,8 +766,6 @@ G4VPhysicalVolume* DetectorConstruction::ConstructSiliconDetector() logical_SV -> SetVisAttributes(SVcolour); G4ThreeVector SVposition; //if(volumeName != "SV_phys1") - - G4double SVspacing = 10.*um; // distance between the edges of two SV SVposition = { +SVspacing/2. +SV_radius, +SVspacing/2. +SV_radius, 0. }; new G4PVPlacement(0, SVposition, logical_SV, "SV_phys1", @@ -657,24 +799,19 @@ G4VPhysicalVolume* DetectorConstruction::ConstructSiliconDetector() G4LogicalVolume* logical_oxyde = new G4LogicalVolume(oxyde_box, SiO2, "oxyde_log", 0,0,0); - G4ThreeVector oxyde_position = G4ThreeVector( 0, 0, PMMA_z + oxyde_z ); + G4ThreeVector oxyde_position = G4ThreeVector( 0, 0, -PMMA_z -oxyde_z ); new G4PVPlacement(0, oxyde_position, logical_oxyde, "oxyde_phys", - logical_world, + logical_motherVolumeForDetector, false, 0, true); logical_oxyde -> SetVisAttributes(G4VisAttributes(G4Colour(0.6, 0.6, 0.6))); - - return physical_world; - } -G4VPhysicalVolume* DetectorConstruction::ConstructSiliconBridgeDetector() +void DetectorConstruction::ConstructSiliconBridgeDetector() { //-------------------------------------------------------- //--------------------- MATERIALS ------------------------ -//-------------------------------------------------------- - G4NistManager * nistMan = G4NistManager::Instance(); - +//-------------------------------------------------------- //Define Water //G4Material* Water = nistMan->FindOrBuildMaterial("G4_WATER"); @@ -684,9 +821,6 @@ G4VPhysicalVolume* DetectorConstruction::ConstructSiliconBridgeDetector() //Define PMMA //G4Material* perspex = nistMan->FindOrBuildMaterial("G4_PLEXIGLASS"); //Default 1.19g - //Define Air - G4Material* Air = nistMan->FindOrBuildMaterial("G4_AIR"); - //Define Aluminium G4Material* Aluminium = nistMan->FindOrBuildMaterial("G4_Al"); @@ -737,24 +871,13 @@ G4VPhysicalVolume* DetectorConstruction::ConstructSiliconBridgeDetector() //----------------------- Volumes ------------------------ //-------------------------------------------------------- -//-------------------------World ------------------------- - G4double worldX = 10. * cm; - G4double worldY = 10. * cm; - G4double worldZ = 10. * cm; - G4RotationMatrix* rotMatW = new G4RotationMatrix; rotMatW->rotateY(0*deg); - rotMatW->rotateX(0*deg); + rotMatW->rotateX(-90*deg); rotMatW->rotateZ(0*deg); - G4Box* world = new G4Box("world_box", worldX/2., worldY/2., worldZ/2.); - G4LogicalVolume* logical_world = new G4LogicalVolume(world, Air, "world_log", 0,0,0); - G4VPhysicalVolume* physical_world = new G4PVPlacement(0,G4ThreeVector(0,0,0),logical_world, "world_phys", 0, false, 0); - - logical_world -> SetVisAttributes(wireFrameWhiteAtt); - //------------------Detector Mother Volume------------------ - G4double SVheight = 10.*micrometer; + G4double SVheight = detectorSizeThickness; G4double insulationThickness = 1.*micrometer; G4double SiOoverlayerBottomThickness = 1.7*micrometer; G4double AlOverlayerThickness = 1.7*micrometer; @@ -766,7 +889,7 @@ G4VPhysicalVolume* DetectorConstruction::ConstructSiliconBridgeDetector() G4double baseSiThickness = 300.*micrometer; G4double detectorHeight = (SVheight + baseSiThickness + insulationThickness + SiOoverlayerBottomThickness + AlOverlayerThickness + SiOoverlayerTopThickness); - G4double SVwidth = 30.*micrometer; + G4double SVwidth = detectorSizeWidth; G4double pitch = 20.*micrometer; //distance between the odd and even rows G4double bridgingWidth = 20.*micrometer; @@ -781,10 +904,10 @@ G4VPhysicalVolume* DetectorConstruction::ConstructSiliconBridgeDetector() G4double detectorWidth = SVareaWidth + bufferWidth; G4double detectorLength = SVareaLength + bufferWidth; -//------------------Detector Mother Volume------------------ +//------------------Smaller Detector Mother Volume------------------ G4Box* detectorBox = new G4Box("detectorBox", detectorWidth/2., detectorHeight/2., detectorLength/2.); - G4LogicalVolume* logicalDetectorReg = new G4LogicalVolume(detectorBox, Air, "detectorReg_log", 0,0,0); - new G4PVPlacement(0, G4ThreeVector(0,0,0), logicalDetectorReg, "detectorRegPhys", logical_world , false, 0, true); + G4LogicalVolume* logicalDetectorReg = new G4LogicalVolume(detectorBox, materialOfMotherVolume, "detectorReg_log", 0,0,0); + new G4PVPlacement(rotMatW, G4ThreeVector(0,0,0), logicalDetectorReg, "detectorRegPhys", logical_motherVolumeForDetector , false, 0, true); logicalDetectorReg -> SetVisAttributes(wireFrameWhiteAtt); @@ -805,7 +928,7 @@ G4VPhysicalVolume* DetectorConstruction::ConstructSiliconBridgeDetector() //----------------Sensitive Volume Region--------------------- //This volume encapsulates the SVs and the "bridging" volumes G4Box* SVregBox = new G4Box("SVregBox", detectorWidth/2., SVheight/2., detectorLength/2.); - G4LogicalVolume* logicalSVreg = new G4LogicalVolume(SVregBox, Air, "SVreg_log", 0,0,0); + G4LogicalVolume* logicalSVreg = new G4LogicalVolume(SVregBox, materialOfMotherVolume, "SVreg_log", 0,0,0); new G4PVPlacement(0, G4ThreeVector(0,(detectorHeight/2. - overLayerThickness - SVheight/2.),0), logicalSVreg, "SVregPhys", logicalDetectorReg, false, 0, true); logicalSVreg -> SetVisAttributes(wireFrameWhiteAtt); @@ -935,16 +1058,12 @@ G4VPhysicalVolume* DetectorConstruction::ConstructSiliconBridgeDetector() //---------------------------------------- new G4PVPlacement(0, G4ThreeVector(0,0,0), logicalAlContact, "physAlContact", logicalSiObotLayer, false, 0, 1); - - - - return physical_world; } void DetectorConstruction::ConstructSDandField() { - SensitiveDetector* SD = new SensitiveDetector("SD", "DetectorHitsCollection", analysis); + SensitiveDetector* SD = new SensitiveDetector("SD", "DetectorHitsCollection", true, analysis); G4SDManager::GetSDMpointer()->AddNewDetector(SD); SetSensitiveDetector("SV_log", SD); @@ -952,4 +1071,10 @@ void DetectorConstruction::ConstructSDandField() { SetSensitiveDetector("bridgeVol_log", SD); } + else if (detectorType == "DiamondTelescope") + { + SensitiveDetector* SDs2 = new SensitiveDetector("SDs2", "DetectorStage2HitsCollection", false, analysis); + G4SDManager::GetSDMpointer()->AddNewDetector(SDs2); + SetSensitiveDetector("SV_Estage_log", SDs2); + } } diff --git a/examples/advanced/radioprotection/src/DetectorMessenger.cc b/examples/advanced/radioprotection/src/DetectorMessenger.cc index c6d26ebaca..432eb0ac4d 100644 --- a/examples/advanced/radioprotection/src/DetectorMessenger.cc +++ b/examples/advanced/radioprotection/src/DetectorMessenger.cc @@ -32,11 +32,14 @@ #include "G4UIdirectory.hh" #include "G4UIcmdWithADoubleAndUnit.hh" #include "G4UIcmdWithAString.hh" - +#include "G4UIcmdWithABool.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4SystemOfUnits.hh" #include "DetectorConstruction.hh" #include "G4RunManager.hh" DetectorMessenger::DetectorMessenger(AnalysisManager* analysis_manager) + : geometryHasChanged(false) { changeTheGeometryDir = new G4UIdirectory("/geometrySetup/"); changeTheGeometryDir -> SetGuidance("Geometry setup"); @@ -45,33 +48,204 @@ DetectorMessenger::DetectorMessenger(AnalysisManager* analysis_manager) changeTheDetectorCmd -> SetGuidance("Select the type of detector you wish to use"); changeTheDetectorCmd -> SetParameterName("Material",false); changeTheDetectorCmd -> AvailableForStates(G4State_PreInit); + + changeDetectorDimensionDir = new G4UIdirectory("/geometrySetup/detectorDimension/"); + changeDetectorDimensionDir -> SetGuidance("Modify the dimensions of the detector"); + + changeDetectorSizeWidthCmd = new G4UIcmdWithADoubleAndUnit("/geometrySetup/detectorDimension/setWidth", this); + changeDetectorSizeWidthCmd -> SetGuidance("Set the width of the detector"); + changeDetectorSizeWidthCmd -> SetParameterName("Width", false); + changeDetectorSizeWidthCmd -> SetRange("Width >= 0.1 && Width <= 150."); + changeDetectorSizeWidthCmd -> SetUnitCategory("Length"); + changeDetectorSizeWidthCmd -> SetDefaultUnit("um"); + changeDetectorSizeWidthCmd -> AvailableForStates(G4State_PreInit); + + changeDetectorSizeThicknessCmd = new G4UIcmdWithADoubleAndUnit("/geometrySetup/detectorDimension/setThickness", this); + changeDetectorSizeThicknessCmd -> SetGuidance("Set the thickness of the detector"); + changeDetectorSizeThicknessCmd -> SetParameterName("Thickness", false); + changeDetectorSizeThicknessCmd -> SetRange("Thickness >= 0.1 && Thickness <= 50."); + changeDetectorSizeThicknessCmd -> SetUnitCategory("Length"); + changeDetectorSizeThicknessCmd -> SetDefaultUnit("um"); + changeDetectorSizeThicknessCmd -> AvailableForStates(G4State_PreInit); + + changeSecondStageDimensionDir = new G4UIdirectory("/geometrySetup/detectorDimension/secondStage/"); + changeSecondStageDimensionDir -> SetGuidance("Modify the dimensions of the E stage for the telescope detector"); + + changeSecondStageSizeWidthCmd = new G4UIcmdWithADoubleAndUnit("/geometrySetup/detectorDimension/secondStage/setWidth", this); + changeSecondStageSizeWidthCmd -> SetGuidance("Set the width of the E-stage for telescope detector"); + changeSecondStageSizeWidthCmd -> SetParameterName("Width", false); + changeSecondStageSizeWidthCmd -> SetRange("Width >= 10 && Width <= 1000."); + changeSecondStageSizeWidthCmd -> SetUnitCategory("Length"); + changeSecondStageSizeWidthCmd -> SetDefaultUnit("um"); + changeSecondStageSizeWidthCmd -> AvailableForStates(G4State_PreInit); + + changeSecondStageSizeThicknessCmd = new G4UIcmdWithADoubleAndUnit("/geometrySetup/detectorDimension/secondStage/setThickness", this); + changeSecondStageSizeThicknessCmd -> SetGuidance("Set the thickness of the E-stage for telescope detector"); + changeSecondStageSizeThicknessCmd -> SetParameterName("Thickness", false); + changeSecondStageSizeThicknessCmd -> SetRange("Thickness >= 10 && Thickness <= 1000."); + changeSecondStageSizeThicknessCmd -> SetUnitCategory("Length"); + changeSecondStageSizeThicknessCmd -> SetDefaultUnit("um"); + changeSecondStageSizeThicknessCmd -> AvailableForStates(G4State_PreInit); + + enableWaterPhantomCmd = new G4UIcmdWithABool("/geometrySetup/enableWaterPhantom", this); + enableWaterPhantomCmd -> SetGuidance("If true, the detector is placed inside a water phantom"); + enableWaterPhantomCmd -> SetParameterName("Phantom", false); + enableWaterPhantomCmd -> AvailableForStates(G4State_PreInit); + + changeDetectorPositionDir = new G4UIdirectory("/geometrySetup/detectorPosition/"); + changeDetectorPositionDir -> SetGuidance("Modify the placement of the detector"); + + changeDetectorPositionDepthCmd = new G4UIcmdWithADoubleAndUnit("/geometrySetup/detectorPosition/setDepth", this); + changeDetectorPositionDepthCmd -> SetGuidance("Set the detector depth inside the water phantom"); + changeDetectorPositionDepthCmd -> SetParameterName("Depth", false); + changeDetectorPositionDepthCmd -> SetRange("Depth >= 1. && Depth <= 250."); + changeDetectorPositionDepthCmd -> SetUnitCategory("Length"); + changeDetectorPositionDepthCmd -> SetDefaultUnit("mm"); + changeDetectorPositionDepthCmd -> AvailableForStates(G4State_PreInit); + + applyChangesToGeometryCmd = new G4UIcmdWithoutParameter("/geometrySetup/applyChanges",this); + applyChangesToGeometryCmd -> SetGuidance("Apply selected changes to the geometry"); + applyChangesToGeometryCmd -> AvailableForStates(G4State_PreInit); + + // default values + detectorType = "Diamond"; + detectorWidth = 30.*um; + detectorThickness = 10.*um; + phantomEnabled = false; + detectorDepth = 50*mm; + secondStageWidth = 800.*um; + secondStageThickness = 500.*um; analysis = analysis_manager; } DetectorMessenger::~DetectorMessenger() { - delete changeTheGeometryDir; - delete changeTheDetectorCmd; + delete changeTheDetectorCmd; + delete changeDetectorSizeWidthCmd; + delete changeDetectorSizeThicknessCmd; + delete changeSecondStageSizeWidthCmd; + delete changeSecondStageSizeThicknessCmd; + delete enableWaterPhantomCmd; + delete changeDetectorPositionDepthCmd; + + delete applyChangesToGeometryCmd; + + delete changeSecondStageDimensionDir; + delete changeDetectorDimensionDir; + delete changeDetectorPositionDir; + delete changeTheGeometryDir; } -void DetectorMessenger::SetNewValue(G4UIcommand* command, G4String newDetectorName) +void DetectorMessenger::SetNewValue(G4UIcommand* command, G4String commandContent) { if( command == changeTheDetectorCmd ) { - if( newDetectorName == "Diamond" || newDetectorName == "MicroDiamond" || newDetectorName == "Silicon" ) + if( commandContent == "Diamond" || commandContent == "MicroDiamond" || commandContent == "Silicon" || commandContent == "SiliconBridge" || commandContent == "DiamondTelescope") { - DetectorConstruction* newDetector = new DetectorConstruction(analysis, newDetectorName); + detectorType = commandContent; + geometryHasChanged = true; - G4RunManager *runManager = G4RunManager::GetRunManager(); - runManager -> SetUserInitialization(newDetector); - runManager -> GeometryHasBeenModified(); + G4cout << "Detector type changed to " << commandContent << G4endl; + G4cout << "Run /geometrySetup/applyChanges to apply" << G4endl; } else { - G4cout <<"Unknown detector type: " << newDetectorName << ". Geometry not changed." << G4endl; + G4cout <<"Unknown detector type: " << commandContent << ". Geometry not changed." << G4endl; + } + } + + else if( command == changeDetectorSizeWidthCmd ) + { + detectorWidth = G4UIcmdWithADoubleAndUnit::GetNewDoubleValue(commandContent); + geometryHasChanged = true; + + G4cout << "Detector width changed to " << commandContent << G4endl; + G4cout << "Run /geometrySetup/applyChanges to apply" << G4endl; + } + + else if( command == changeDetectorSizeThicknessCmd ) + { + detectorThickness = G4UIcmdWithADoubleAndUnit::GetNewDoubleValue(commandContent); + geometryHasChanged = true; + + G4cout << "Detector thickness changed to " << commandContent << G4endl; + G4cout << "Run /geometrySetup/applyChanges to apply" << G4endl; + } + + else if( command == changeSecondStageSizeWidthCmd ) + { + secondStageWidth = G4UIcmdWithADoubleAndUnit::GetNewDoubleValue(commandContent); + geometryHasChanged = true; + + G4cout << "Telescope E-stage width changed to " << commandContent << G4endl; + if ( detectorType != "DiamondTelescope" ) + { + G4cout << "However this setting only takes effect when using the telescope detector."; + G4cout << "Select it with '/geometrySetup/selectDetector DiamondTelescope' or this command will be ignored" << G4endl; + } + else G4cout << "Run /geometrySetup/applyChanges to apply" << G4endl; + } + + else if( command == changeSecondStageSizeThicknessCmd ) + { + secondStageThickness = G4UIcmdWithADoubleAndUnit::GetNewDoubleValue(commandContent); + geometryHasChanged = true; + + G4cout << "Telescope E-stage thickness changed to " << commandContent << G4endl; + if ( detectorType != "DiamondTelescope" ) + { + G4cout << "However this setting only takes effect when using the telescope detector."; + G4cout << "Select it with '/geometrySetup/selectDetector DiamondTelescope' or this command will be ignored" << G4endl; + } + else G4cout << "Run /geometrySetup/applyChanges to apply" << G4endl; + } + + else if( command == enableWaterPhantomCmd ) + { + phantomEnabled = G4UIcmdWithABool::GetNewBoolValue(commandContent); + geometryHasChanged = true; + + if( phantomEnabled == true ) G4cout << "Water phantom enabled" << G4endl; + else G4cout << "Water phantom disabled" << G4endl; + G4cout << "Run /geometrySetup/applyChanges to apply" << G4endl; + } + + else if( command == changeDetectorPositionDepthCmd ) + { + detectorDepth = G4UIcmdWithADoubleAndUnit::GetNewDoubleValue(commandContent); + geometryHasChanged = true; + + G4cout << "Detector depth in water changed to " << commandContent << G4endl; + if( phantomEnabled == false ) + { + G4cout << "However the water phantom is not enabled."; + G4cout << "Enable it with '/geometrySetup/enableWaterPhantom true' or this command will be ignored" << G4endl; + } + else G4cout << "Run /geometrySetup/applyChanges to apply" << G4endl; + } + + else if( command == applyChangesToGeometryCmd ) + { + if( geometryHasChanged == true ) + { + G4RunManager* runManager = G4RunManager::GetRunManager(); + + DetectorConstruction* newDetector = new DetectorConstruction(analysis, this); + + runManager -> SetUserInitialization(newDetector); + runManager -> GeometryHasBeenModified(); + + geometryHasChanged = false; + + G4cout << "All pending changes to geometry have been applied" << G4endl; + } + + else + { + G4cout << "No pending changes to geometry. This command will be ignored" << G4endl; } } } diff --git a/examples/advanced/radioprotection/src/RunAction.cc b/examples/advanced/radioprotection/src/RunAction.cc index ea82602032..019b300f99 100644 --- a/examples/advanced/radioprotection/src/RunAction.cc +++ b/examples/advanced/radioprotection/src/RunAction.cc @@ -35,20 +35,22 @@ #include "G4Run.hh" #ifdef ANALYSIS_USE -RunAction::RunAction(AnalysisManager* analysis) +RunAction::RunAction(AnalysisManager* analysis, DetectorMessenger* detector) { analysisMan = analysis; + detectorMess = detector; } #else -RunAction::RunAction() -{ } +RunAction::RunAction(DetectorMessenger* detector) +{ + detectorMess = detector; +} #endif RunAction::~RunAction() -{ -} +{ } void RunAction::BeginOfRunAction(const G4Run* aRun) { @@ -56,9 +58,30 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) G4cout << "### Run " << run_number << " start." << G4endl; #ifdef ANALYSIS_USE + G4bool additionalOutput; + G4String detectorType = detectorMess -> GetDetectorType(); + if( detectorType == "DiamondTelescope" ) additionalOutput = true; + else additionalOutput = false; + // Create ROOT file, histograms and ntuple - analysisMan -> book(); -#endif + analysisMan -> book(additionalOutput); +#else + G4cout << "Output to file disabled: no file will be generated. " + << "To enable it, re-run cmake with the -DWITH_ANALYSIS_USE=ON flag." << G4endl; +#endif + + // check if there are pending changes in the geometry + if( detectorMess -> AreTherePendingChanges() ) + { + G4cout << "WARNING: pending changes to the geometry found during BeginOfRunAction. " + << "These will be ignored during the current run. " + << "Use /geometrySetup/applyChanges if you want to apply them in your next run." << G4endl; + } + + // print the current geometry setup + G4cout << "Simulating the " << detectorMess->GetDetectorType() << " detector " + << "with dimensions: " << detectorMess->GetDetectorSizeWidth()/um << " um width, " + << detectorMess->GetDetectorSizeThickness()/um << " um thickness." << G4endl; } void RunAction::EndOfRunAction(const G4Run* aRun) diff --git a/examples/advanced/radioprotection/src/SensitiveDetector.cc b/examples/advanced/radioprotection/src/SensitiveDetector.cc index b9c1d17c89..aefa90153f 100644 --- a/examples/advanced/radioprotection/src/SensitiveDetector.cc +++ b/examples/advanced/radioprotection/src/SensitiveDetector.cc @@ -35,14 +35,18 @@ #include "G4SDManager.hh" #include "G4ios.hh" #include "G4SystemOfUnits.hh" +#include "G4RunManager.hh" SensitiveDetector::SensitiveDetector(const G4String& name, - const G4String& hitsCollectionName, AnalysisManager* analysis_manager) + const G4String& hitsCollectionName, + G4bool isThisAMicrodosimeter, + AnalysisManager* analysis_manager) : G4VSensitiveDetector(name), fHitsCollection(NULL) { collectionName.insert(hitsCollectionName); analysis = analysis_manager; + isMicrod = isThisAMicrodosimeter; // only false for the E-stage of the telescope } SensitiveDetector::~SensitiveDetector() @@ -67,18 +71,34 @@ G4bool SensitiveDetector::ProcessHits(G4Step* aStep, { // energy deposit G4double edep = aStep->GetTotalEnergyDeposit(); - + if (edep==0.) return false; + // Uncomment the following lines to only score specific physical volumes + /* G4String volumeName = aStep -> GetPreStepPoint() -> GetPhysicalVolume()-> GetName(); - if(volumeName != "SV_phys1" && volumeName != "sen_bridge" && volumeName != "physSensitiveBridgeVolume" ) return false; - + */ + SensitiveDetectorHit* newHit = new SensitiveDetectorHit(); newHit -> SetEdep(edep); + // step length + G4double len = aStep->GetStepLength(); + + // only consider ions, protons, and neutrons for path length + const G4ParticleDefinition* thisParticle = aStep -> + GetTrack() -> GetParticleDefinition() ; + G4String particleName = thisParticle -> GetParticleName(); + G4int particleZ = thisParticle -> GetAtomicNumber(); + + if ( (particleZ < 1) && (particleName != "neutron")) + len = 0.; + + newHit->SetPath(len); + fHitsCollection -> insert( newHit ); return true; @@ -88,18 +108,31 @@ void SensitiveDetector::EndOfEvent(G4HCofThisEvent*) { #ifdef ANALYSIS_USE // Initialisation of total energy deposition per event to zero - G4double totalEdepInOneEvent =0; + G4double totalEdepInOneEvent=0; + G4double totalPathLengthInOneEvent=0; G4int NbHits = fHitsCollection->entries(); //G4cout << "number of hits " <GetEdep(); - totalEdepInOneEvent = totalEdepInOneEvent + edep; - } + + G4double edep, len; + + for (G4int i=0;iGetEdep(); + totalEdepInOneEvent = totalEdepInOneEvent + edep; + + len = (*fHitsCollection)[i]->GetPath(); + totalPathLengthInOneEvent = totalPathLengthInOneEvent + len; + } + + G4int eventID = G4RunManager::GetRunManager() -> + GetCurrentEvent() -> GetEventID(); - if (totalEdepInOneEvent!=0)analysis-> StoreEnergyDeposition(totalEdepInOneEvent/keV); + if (totalEdepInOneEvent!=0) + { + if (isMicrod==true) analysis -> StoreEnergyDeposition(totalEdepInOneEvent/keV, totalPathLengthInOneEvent/um, eventID); + else analysis -> StoreSecondStageEnergyDeposition(totalEdepInOneEvent/keV, eventID); + } #endif } diff --git a/examples/advanced/radioprotection/src/SensitiveDetectorHit.cc b/examples/advanced/radioprotection/src/SensitiveDetectorHit.cc index dcd9efc6ae..80ff14b5cd 100644 --- a/examples/advanced/radioprotection/src/SensitiveDetectorHit.cc +++ b/examples/advanced/radioprotection/src/SensitiveDetectorHit.cc @@ -42,7 +42,7 @@ G4ThreadLocal G4Allocator* SensitiveDetectorHitAllocator=0 SensitiveDetectorHit::SensitiveDetectorHit() : G4VHit(), - fEdep(0.) + fEdep(0.), fPath(0.) {} SensitiveDetectorHit::~SensitiveDetectorHit() {} @@ -51,12 +51,14 @@ SensitiveDetectorHit::SensitiveDetectorHit(const SensitiveDetectorHit& right) : G4VHit() { fEdep = right.fEdep; + fPath = right.fPath; } const SensitiveDetectorHit& SensitiveDetectorHit::operator=(const SensitiveDetectorHit& right) { fEdep = right.fEdep; - + fPath = right.fPath; + return *this; } @@ -75,6 +77,8 @@ void SensitiveDetectorHit::Print() G4cout << "HIT: Edep: " << std::setw(7) << G4BestUnit(fEdep,"Energy") - << G4endl; + << "HIT: Path: " + << std::setw(7) << G4BestUnit(fPath,"Length") + << G4endl; } diff --git a/examples/advanced/radioprotection/src/SteppingAction.cc b/examples/advanced/radioprotection/src/SteppingAction.cc index 86148362dd..12e1250e62 100644 --- a/examples/advanced/radioprotection/src/SteppingAction.cc +++ b/examples/advanced/radioprotection/src/SteppingAction.cc @@ -57,8 +57,8 @@ void SteppingAction::UserSteppingAction(const G4Step* aStep) // Retrieve the secondary particles fSecondary = steppingManager -> GetfSecondary(); - - + + #ifdef ANALYSIS_USE for(size_t lp1=0;lp1<(*fSecondary).size(); lp1++) @@ -70,8 +70,8 @@ void SteppingAction::UserSteppingAction(const G4Step* aStep) // G4String process = (*fSecondary)[lp1]-> GetCreatorProcess()-> GetProcessName(); // process creating it G4double charge = (*fSecondary)[lp1] -> GetDynamicParticle() -> GetDefinition() -> GetPDGCharge(); G4int AA = (*fSecondary)[lp1] -> GetDynamicParticle() -> GetDefinition() -> GetBaryonNumber(); - - if (volumeName == "SV_phys1" || volumeName == "sen_bridge" || volumeName == "physSensitiveBridgeVolume") + + if (G4StrUtil::contains(volumeName, "SV_phys") || volumeName == "sen_bridge" || volumeName == "physSensitiveBridgeVolume") //Testing with larger volume! //if (volumeName == "DiaVol_phys") { diff --git a/examples/advanced/radioprotection/vis.mac b/examples/advanced/radioprotection/vis.mac index 75b7a461bc..9b33ce8f54 100644 --- a/examples/advanced/radioprotection/vis.mac +++ b/examples/advanced/radioprotection/vis.mac @@ -4,6 +4,7 @@ # /control/execute geometry.mac /control/execute physics.mac +/control/execute output.mac /run/initialize /control/execute primary.mac # Use these open statements to open selected visualization diff --git a/examples/advanced/radioprotection/weight_function.csv b/examples/advanced/radioprotection/weight_function.csv new file mode 100644 index 0000000000..17d6a97f33 --- /dev/null +++ b/examples/advanced/radioprotection/weight_function.csv @@ -0,0 +1,539 @@ +#y[keV/um],r(y),stdevr(y) +0.010900,1.0100,0.77100 +0.011200,1.0100,0.77100 +0.011400,1.0100,0.77100 +0.011700,1.0100,0.77100 +0.012000,1.0100,0.77100 +0.012200,1.0100,0.77100 +0.012500,1.0100,0.75833 +0.012800,1.0100,0.75200 +0.013100,1.0100,0.75200 +0.013400,1.0100,0.75200 +0.013700,1.0100,0.75200 +0.014100,1.0100,0.75200 +0.014400,1.0100,0.73300 +0.014700,1.0100,0.73300 +0.015000,1.0100,0.73300 +0.015400,1.0100,0.73300 +0.015800,1.0100,0.73300 +0.016100,1.0100,0.73300 +0.016500,1.0100,0.73300 +0.016900,1.0100,0.71400 +0.017300,1.0100,0.71400 +0.017700,1.0100,0.71400 +0.018100,1.0100,0.71400 +0.018500,1.0100,0.71400 +0.018900,1.0100,0.71400 +0.019400,1.0100,0.71400 +0.019800,1.0100,0.71400 +0.020300,1.0100,0.69500 +0.020700,1.0100,0.69500 +0.021200,1.0100,0.69500 +0.021700,1.0100,0.69500 +0.022200,1.0100,0.69500 +0.022700,1.0100,0.69500 +0.023200,1.0100,0.69500 +0.023800,1.0100,0.69500 +0.024300,1.0100,0.69500 +0.024900,1.0100,0.69417 +0.025500,1.0100,0.69400 +0.026100,1.0100,0.69400 +0.026700,1.0100,0.71300 +0.027300,1.0100,0.71300 +0.027900,1.0100,0.71300 +0.028500,1.0100,0.71300 +0.029200,1.0100,0.71300 +0.029900,1.0100,0.71300 +0.030600,1.0100,0.71300 +0.031300,1.0100,0.71300 +0.032000,1.0100,0.73200 +0.032700,1.0100,0.73200 +0.033500,1.0100,0.73200 +0.034300,1.0100,0.73200 +0.035100,1.0100,0.73200 +0.035900,1.0100,0.73200 +0.036700,1.0100,0.73200 +0.037600,1.0100,0.73200 +0.038400,1.0100,0.73200 +0.039300,1.0100,0.75100 +0.040200,1.0100,0.75100 +0.041200,1.0100,0.75100 +0.042100,1.0100,0.75100 +0.043100,1.0100,0.75100 +0.044100,1.0100,0.77000 +0.045100,1.0100,0.77000 +0.046100,1.0100,0.77000 +0.047200,1.0100,0.77000 +0.048300,1.0100,0.77000 +0.049400,1.0100,0.77000 +0.050600,1.0100,0.77000 +0.051700,1.0100,0.77000 +0.052900,1.0100,0.77000 +0.054200,1.0100,0.78900 +0.055400,1.0100,0.78900 +0.056700,1.0100,0.78900 +0.058000,1.0100,0.78900 +0.059300,1.0100,0.78900 +0.060700,1.0100,0.78900 +0.062100,1.0100,0.78900 +0.063500,1.0100,0.78900 +0.065000,1.0100,0.78900 +0.066500,1.0100,0.80800 +0.068100,1.0300,0.80800 +0.069600,1.0300,0.80800 +0.071200,1.0300,0.80800 +0.072900,1.0300,0.80800 +0.074600,1.0300,0.80800 +0.076300,1.0300,0.80800 +0.078100,1.0300,0.80800 +0.079900,1.0300,0.80800 +0.081700,1.0300,0.80800 +0.083600,1.0300,0.82700 +0.085500,1.0500,0.82700 +0.087500,1.0500,0.82700 +0.089500,1.0500,0.82700 +0.091600,1.0500,0.82700 +0.093700,1.0500,0.82700 +0.095900,1.0500,0.82700 +0.098100,1.0500,0.82700 +0.10000,1.0500,0.82700 +0.10300,1.0500,0.84600 +0.10500,1.0500,0.84600 +0.10800,1.0700,0.84600 +0.11000,1.0700,0.84600 +0.11300,1.0700,0.84600 +0.11500,1.0700,0.84600 +0.11800,1.0700,0.84600 +0.12100,1.0700,0.84600 +0.12300,1.0700,0.84600 +0.12600,1.0700,0.84600 +0.12900,1.0700,0.86500 +0.13200,1.0700,0.86500 +0.13500,1.0900,0.86500 +0.13800,1.0900,0.86433 +0.14100,1.0900,0.86400 +0.14500,1.0900,0.86400 +0.14800,1.0900,0.88325 +0.15100,1.0900,0.88300 +0.15500,1.0900,0.88300 +0.15900,1.0900,0.88300 +0.16200,1.0900,0.88300 +0.16600,1.0900,0.88300 +0.17000,1.1100,0.88300 +0.17400,1.1100,0.90200 +0.17800,1.1100,0.90200 +0.18200,1.1100,0.90200 +0.18600,1.1100,0.90200 +0.19000,1.1100,0.90200 +0.19500,1.1100,0.90200 +0.19900,1.1100,0.92100 +0.20400,1.1100,0.92100 +0.20900,1.1100,0.92100 +0.21300,1.1100,0.92100 +0.21800,1.1100,0.92100 +0.22300,1.1100,0.92100 +0.22900,1.1100,0.92100 +0.23400,1.1100,0.94000 +0.23900,1.1100,0.94000 +0.24500,1.1100,0.94000 +0.25100,1.1100,0.94000 +0.25600,1.1100,0.94000 +0.26200,1.1100,0.94000 +0.26800,1.1100,0.95900 +0.27500,1.1100,0.95900 +0.28100,1.1100,0.95900 +0.28700,1.1100,0.95900 +0.29400,1.1100,0.95900 +0.30100,1.0900,0.95900 +0.30800,1.0900,0.95900 +0.31500,1.0900,0.95900 +0.32200,1.0900,0.95900 +0.33000,1.0900,0.95900 +0.33700,1.0900,0.95900 +0.34500,1.0900,0.97800 +0.35300,1.0900,0.97800 +0.36100,1.0900,0.97800 +0.37000,1.0900,0.97800 +0.37800,1.0900,0.97800 +0.38700,1.0900,0.97800 +0.39600,1.0900,0.97800 +0.40500,1.0900,0.99700 +0.41400,1.0900,0.99700 +0.42400,1.0900,0.99700 +0.43400,1.0900,0.99700 +0.44400,1.0900,0.99700 +0.45400,1.0900,0.99700 +0.46400,1.0900,0.99700 +0.47500,1.0900,0.99700 +0.48600,1.0900,0.99700 +0.49700,1.0900,0.99700 +0.50900,1.0700,0.99700 +0.52100,1.0700,0.99700 +0.53300,1.0700,0.99700 +0.54500,1.0700,0.99700 +0.55800,1.0700,0.97958 +0.57100,1.0700,0.97800 +0.58400,1.0700,0.97800 +0.59700,1.0700,0.97800 +0.61100,1.0700,0.96171 +0.62500,1.0700,0.95814 +0.64000,1.0700,0.95800 +0.65500,1.0700,0.95800 +0.67000,1.0700,0.95800 +0.68500,1.0700,0.94153 +0.70100,1.0700,0.93900 +0.71700,1.0500,0.93900 +0.73400,1.0500,0.93900 +0.75100,1.0500,0.92224 +0.76800,1.0500,0.92000 +0.78600,1.0500,0.92000 +0.80400,1.0500,0.92000 +0.82300,1.0500,0.92000 +0.84200,1.0500,0.90300 +0.86100,1.0300,0.90100 +0.88100,1.0300,0.90100 +0.90200,1.0300,0.90100 +0.92200,1.0300,0.88471 +0.94400,1.0300,0.88200 +0.96600,1.0300,0.88200 +0.98800,1.0300,0.88200 +1.0100,1.0100,0.88200 +1.0300,1.0100,0.86933 +1.0600,1.0100,0.86300 +1.0800,1.0100,0.86300 +1.1100,1.0100,0.86300 +1.1300,1.0100,0.86300 +1.1600,1.0100,0.86300 +1.1900,1.0100,0.84400 +1.2100,1.0100,0.84400 +1.2400,1.0100,0.84400 +1.2700,1.0100,0.84400 +1.3000,1.0100,0.84400 +1.3300,1.0100,0.82500 +1.3600,1.0100,0.82500 +1.3900,1.0100,0.82425 +1.4200,1.0100,0.82400 +1.4600,1.0100,0.82400 +1.4900,1.0100,0.82400 +1.5300,1.0100,0.82400 +1.5600,1.0100,0.82400 +1.6000,1.0100,0.82400 +1.6300,1.0100,0.82400 +1.6700,1.0100,0.82400 +1.7100,1.0100,0.82400 +1.7500,1.0100,0.82400 +1.7900,1.0100,0.82400 +1.8300,1.0100,0.82400 +1.8700,1.0100,0.82400 +1.9200,1.0100,0.82400 +1.9600,1.0100,0.80880 +2.0100,1.0100,0.80500 +2.0500,1.0100,0.80500 +2.1000,1.0100,0.80711 +2.1500,1.0100,0.80975 +2.2000,1.0100,0.81239 +2.2500,1.0100,0.81503 +2.3000,1.0100,0.81767 +2.3600,1.0100,0.82083 +2.4100,1.0100,0.82347 +2.4700,1.0100,0.82400 +2.5200,1.0100,0.82400 +2.5800,1.0100,0.82400 +2.6400,1.0100,0.84300 +2.7000,1.0100,0.84300 +2.7600,1.0100,0.84300 +2.8300,1.0100,0.84300 +2.8900,1.0100,0.84300 +2.9600,1.0100,0.84300 +3.0300,1.0100,0.84300 +3.1000,1.0100,0.84300 +3.1700,1.0100,0.84300 +3.2400,1.0100,0.84300 +3.3200,1.0100,0.84300 +3.4000,1.0100,0.86200 +3.4700,1.0100,0.86200 +3.5600,1.0100,0.86200 +3.6400,1.0100,0.86200 +3.7200,1.0100,0.86200 +3.8100,1.0100,0.86200 +3.9000,1.0100,0.86200 +3.9900,1.0100,0.88100 +4.0800,1.0100,0.88100 +4.1700,1.0100,0.88100 +4.2700,0.99300,0.88100 +4.3700,0.99300,0.88100 +4.4700,0.99300,0.88100 +4.5700,0.99300,0.88100 +4.6800,0.99300,0.90000 +4.7900,0.99300,0.90000 +4.9000,0.99300,0.90000 +5.0100,0.99300,0.90000 +5.1300,0.99300,0.90000 +5.2400,0.99300,0.88417 +5.3700,0.99300,0.88100 +5.4900,0.99300,0.88015 +5.6200,0.99300,0.88000 +5.7500,0.99300,0.86246 +5.8800,0.99300,0.86100 +6.0200,0.97400,0.86100 +6.1600,0.97400,0.86100 +6.3000,0.97400,0.84453 +6.4400,0.97400,0.84200 +6.5900,0.97400,0.84200 +6.7400,0.97400,0.84200 +6.9000,0.97400,0.82538 +7.0600,0.97400,0.82300 +7.2200,0.97400,0.80638 +7.3900,0.97400,0.79179 +7.5600,0.97400,0.77794 +7.7400,0.97400,0.76329 +7.9200,0.99300,0.74863 +8.1000,0.99300,0.74700 +8.2900,0.99300,0.76600 +8.4800,0.99300,0.76600 +8.6700,0.99300,0.74985 +8.8700,0.99300,0.74700 +9.0800,0.99300,0.74700 +9.2900,1.0100,0.73071 +9.5000,1.0100,0.72800 +9.7200,1.0300,0.72800 +9.9500,1.0300,0.72800 +10.200,1.0500,0.72800 +10.400,1.0500,0.72800 +10.700,1.0700,0.72800 +10.900,1.0900,0.72800 +11.200,1.0900,0.72800 +11.400,1.1100,0.74700 +11.700,1.1100,0.74700 +11.900,1.1300,0.76600 +12.200,1.1300,0.76600 +12.500,1.1300,0.76600 +12.800,1.1500,0.78500 +13.100,1.1600,0.78500 +13.400,1.1800,0.78500 +13.700,1.2200,0.80400 +14.000,1.2400,0.80400 +14.300,1.2600,0.80400 +14.700,1.3000,0.82300 +15.000,1.3400,0.82300 +15.300,1.3700,0.86100 +15.700,1.3900,0.89900 +16.100,1.4500,0.93700 +16.400,1.4900,0.97500 +16.800,1.5300,1.0100 +17.200,1.5800,1.0500 +17.600,1.6200,1.0900 +18.000,1.6600,1.1300 +18.400,1.7200,1.1700 +18.800,1.7800,1.2000 +19.300,1.8300,1.2400 +19.700,1.8900,1.2800 +20.200,1.9300,1.3400 +20.600,1.9900,1.4100 +21.100,2.0400,1.5100 +21.600,2.1000,1.5800 +22.100,2.1400,1.6800 +22.600,2.2000,1.7700 +23.100,2.2300,1.8500 +23.600,2.2900,1.9500 +24.200,2.3500,2.0000 +24.700,2.3900,2.0600 +25.300,2.4400,2.1200 +25.900,2.5000,2.1600 +26.500,2.5600,2.2100 +27.100,2.6000,2.2500 +27.700,2.6700,2.3100 +28.300,2.7100,2.3500 +29.000,2.7700,2.4000 +29.700,2.8300,2.4400 +30.300,2.8800,2.4800 +31.000,2.9200,2.5400 +31.800,2.9800,2.5700 +32.500,3.0400,2.6100 +33.200,3.0900,2.6500 +34.000,3.1300,2.7100 +34.800,3.1900,2.7500 +35.600,3.2500,2.7800 +36.400,3.3000,2.8400 +37.200,3.3600,2.8600 +38.100,3.4200,2.8800 +39.000,3.4700,2.9000 +39.800,3.5300,2.9200 +40.800,3.5900,2.9600 +41.700,3.6500,2.9700 +42.700,3.7000,2.9900 +43.600,3.7600,3.0100 +44.600,3.8200,3.0300 +45.700,3.8800,3.0700 +46.700,3.9300,3.0900 +47.800,3.9700,3.1100 +48.900,4.0500,3.1300 +50.000,4.0900,3.1500 +51.200,4.1400,3.1600 +52.300,4.1800,3.1800 +53.500,4.2400,3.2000 +54.800,4.2600,3.2200 +56.000,4.3200,3.2600 +57.300,4.3300,3.2600 +58.600,4.3700,3.2800 +60.000,4.3900,3.2800 +61.400,4.4100,3.2800 +62.800,4.4300,3.3000 +64.200,4.4300,3.3000 +65.700,4.4300,3.3200 +67.200,4.4300,3.3200 +68.800,4.4500,3.3200 +70.400,4.4500,3.3112 +72.000,4.4500,3.3000 +73.700,4.4100,3.3000 +75.400,4.3900,3.2911 +77.200,4.3500,3.2800 +78.900,4.3000,3.2800 +80.800,4.2400,3.2705 +82.700,4.1800,3.2600 +84.600,4.1100,3.2505 +86.600,4.0100,3.2200 +88.600,3.9500,3.1900 +90.700,3.8800,3.1633 +92.800,3.7800,3.1195 +95.000,3.7000,3.0864 +97.200,3.6100,3.0373 +99.500,3.5100,2.9867 +102.00,3.4400,2.9433 +104.00,3.3400,2.8950 +107.00,3.2500,2.7933 +109.00,3.1500,2.7350 +112.00,3.0700,2.6367 +114.00,2.9800,2.5750 +117.00,2.8800,2.4600 +120.00,2.8300,2.3467 +122.00,2.7300,2.2500 +125.00,2.6300,2.0367 +128.00,2.5400,1.8800 +131.00,2.4400,1.7300 +134.00,2.3700,1.6000 +137.00,2.2700,1.4667 +141.00,2.2000,1.3325 +144.00,2.1000,1.2100 +147.00,2.0400,1.1200 +151.00,1.9500,1.0215 +154.00,1.8900,0.97267 +158.00,1.8300,0.93025 +162.00,1.7600,0.89700 +165.00,1.6800,0.87325 +169.00,1.6000,0.83525 +173.00,1.5500,0.79650 +177.00,1.4700,0.75825 +181.00,1.4100,0.72025 +186.00,1.3700,0.68700 +190.00,1.3400,0.66040 +194.00,1.3200,0.63950 +199.00,1.3000,0.63000 +203.00,1.2800,0.63000 +208.00,1.2400,0.61480 +213.00,1.2200,0.61100 +218.00,1.2000,0.59580 +223.00,1.1800,0.59200 +228.00,1.1600,0.57680 +233.00,1.1500,0.57300 +239.00,1.1100,0.55717 +244.00,1.0900,0.55400 +250.00,1.0700,0.55400 +256.00,1.0500,0.53733 +262.00,1.0300,0.53400 +268.00,0.99300,0.51771 +274.00,0.99300,0.51500 +280.00,0.97400,0.49917 +287.00,0.95500,0.49600 +293.00,0.95500,0.48017 +300.00,0.93600,0.47700 +307.00,0.93600,0.47700 +314.00,0.91600,0.46071 +322.00,0.89700,0.45800 +329.00,0.89700,0.45800 +337.00,0.87800,0.44138 +344.00,0.87800,0.43900 +352.00,0.85900,0.43900 +361.00,0.85900,0.43900 +369.00,0.84000,0.42211 +378.00,0.82100,0.42000 +386.00,0.82100,0.42000 +395.00,0.80200,0.42000 +404.00,0.80200,0.40311 +414.00,0.78300,0.40100 +423.00,0.78300,0.40100 +433.00,0.76400,0.40100 +443.00,0.76400,0.38390 +453.00,0.74500,0.38200 +464.00,0.74500,0.38200 +475.00,0.72600,0.38200 +486.00,0.72600,0.36473 +497.00,0.70600,0.36209 +508.00,0.70600,0.36200 +520.00,0.68700,0.36200 +532.00,0.68700,0.34458 +545.00,0.66800,0.34300 +557.00,0.66800,0.34300 +570.00,0.64900,0.32546 +583.00,0.64900,0.32400 +597.00,0.63000,0.32400 +611.00,0.63000,0.32400 +625.00,0.61100,0.30636 +639.00,0.61100,0.30500 +654.00,0.59200,0.30500 +669.00,0.59200,0.30500 +685.00,0.57300,0.28719 +700.00,0.57300,0.28600 +717.00,0.57300,0.28600 +733.00,0.55400,0.28600 +750.00,0.55400,0.26812 +768.00,0.53500,0.26700 +785.00,0.53500,0.26700 +804.00,0.53500,0.24906 +822.00,0.51600,0.24800 +841.00,0.51600,0.24800 +861.00,0.49600,0.22995 +881.00,0.49600,0.22900 +901.00,0.47700,0.22900 +922.00,0.47700,0.22900 +943.00,0.47700,0.21090 +965.00,0.45800,0.21000 +987.00,0.45800,0.21000 +1010.0,0.43900,0.21000 +1030.0,0.43900,0.20900 +1060.0,0.42000,0.19000 +1080.0,0.42000,0.19000 +1110.0,0.42000,0.19000 +1130.0,0.40100,0.19000 +1160.0,0.40100,0.19000 +1190.0,0.40100,0.17100 +1210.0,0.40100,0.17100 +1240.0,0.40100,0.17100 +1270.0,0.38200,0.17100 +1300.0,0.38200,0.17100 +1330.0,0.38200,0.17100 +1360.0,0.38200,0.17100 +1390.0,0.38200,0.17100 +1420.0,0.38200,0.17100 +1460.0,0.38200,0.15200 +1490.0,0.38200,0.15200 +1520.0,0.38200,0.15200 +1560.0,0.38200,0.15200 +1600.0,0.38200,0.15200 +1630.0,0.38200,0.15200 +1670.0,0.38200,0.15200 +1710.0,0.38200,0.15200 +1750.0,0.38200,0.15200 +1790.0,0.38200,0.15200 +1830.0,0.38200,0.15200 +1870.0,0.38200,0.15200 +1920.0,0.38200,0.15200 +1960.0,0.38200,0.15200 +2010.0,0.40100,0.15200 +2050.0,0.40100,0.15200 +2100.0,0.40100,0.15200 +2150.0,0.40100,0.15200 +2200.0,0.40100,0.15200 +2250.0,0.40100,0.15200 +2300.0,0.40100,0.15200 +2300.0,0.40100,0.15200 diff --git a/examples/advanced/underground_physics/DMX.cc b/examples/advanced/underground_physics/DMX.cc index 4c437a8c59..321ec8835f 100644 --- a/examples/advanced/underground_physics/DMX.cc +++ b/examples/advanced/underground_physics/DMX.cc @@ -55,9 +55,6 @@ int main(int argc,char** argv) { - // choose the Random engine - G4Random::setTheEngine(new CLHEP::RanecuEngine); - // Construct the default run manager auto* runManager = G4RunManagerFactory::CreateRunManager(); G4int nThreads = 4; diff --git a/examples/advanced/underground_physics/History b/examples/advanced/underground_physics/History index b627a51211..ed223d9fc3 100644 --- a/examples/advanced/underground_physics/History +++ b/examples/advanced/underground_physics/History @@ -4,6 +4,8 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-09-09 Susanna Guatelli (DMX-V11-00-01) +- Ranecu Engine removed. Default one now used ## 2021-12-10 Ben Morgan (DMX-V11-00-00) - Change to new Markdown History format diff --git a/examples/advanced/underground_physics/underground_physics.out b/examples/advanced/underground_physics/underground_physics.out index 375744e66c..5a0543d43d 100644 --- a/examples/advanced/underground_physics/underground_physics.out +++ b/examples/advanced/underground_physics/underground_physics.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -31,6 +31,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -102,6 +104,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -129,7 +132,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -165,8 +168,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 1 De-excitation module ignores cuts 0 @@ -184,8 +186,8 @@ Type of PIXE cross section for e+- Livermore ### === PIXE model for e+-: Livermore Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 GeV in 120 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 GeV in 116 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 GeV CullenGenerator @@ -286,10 +288,11 @@ ionIoni: for GenericIon XStype:3 SubType=2 ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 1.4427 us -Max life time (from G4DeexPrecoParameters) 1.4427 us +min MeanLife (from G4NuclideTable) 1 ns +Max life time (from G4DeexPrecoParameters) 1000 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -471,7 +474,7 @@ hIoni: for pi- XStype:3 SubType=2 Index : 0 used in the geometry : Yes Material : Concrete Range cuts : gamma 1 um e- 1 nm e+ 1 um proton 1 um - Energy thresholds : gamma 250 eV e- 250 eV e+ 1.00446 keV proton 100 eV + Energy thresholds : gamma 250 eV e- 250 eV e+ 1.00436 keV proton 100 eV Region(s) which use this couple : DefaultRegionForTheWorld @@ -492,14 +495,14 @@ Index : 2 used in the geometry : Yes Index : 3 used in the geometry : Yes Material : MetalAluminium Range cuts : gamma 1 um e- 1 nm e+ 1 um proton 1 um - Energy thresholds : gamma 250 eV e- 250 eV e+ 1.06388 keV proton 100 eV + Energy thresholds : gamma 250 eV e- 250 eV e+ 1.06385 keV proton 100 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 4 used in the geometry : Yes Material : Steel Range cuts : gamma 1 um e- 1 nm e+ 1 um proton 1 um - Energy thresholds : gamma 250 eV e- 250 eV e+ 5.52446 keV proton 100 eV + Energy thresholds : gamma 250 eV e- 250 eV e+ 5.52571 keV proton 100 eV Region(s) which use this couple : DefaultRegionForTheWorld @@ -520,42 +523,42 @@ Index : 6 used in the geometry : Yes Index : 7 used in the geometry : Yes Material : MetalCopper Range cuts : gamma 1 um e- 1 nm e+ 1 um proton 1 um - Energy thresholds : gamma 250 eV e- 250 eV e+ 6.64437 keV proton 100 eV + Energy thresholds : gamma 250 eV e- 250 eV e+ 6.64446 keV proton 100 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 8 used in the geometry : Yes Material : LXe Range cuts : gamma 1 um e- 1 nm e+ 1 um proton 1 um - Energy thresholds : gamma 250 eV e- 250 eV e+ 860.092 eV proton 100 eV + Energy thresholds : gamma 250 eV e- 250 eV e+ 859.963 eV proton 100 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 9 used in the geometry : Yes Material : MetalLead Range cuts : gamma 1 um e- 1 nm e+ 1 um proton 1 um - Energy thresholds : gamma 1.21757 keV e- 250 eV e+ 6.4681 keV proton 100 eV + Energy thresholds : gamma 1.21764 keV e- 250 eV e+ 6.46937 keV proton 100 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 10 used in the geometry : Yes Material : UraniumSource Range cuts : gamma 1 um e- 1 nm e+ 1 um proton 1 um - Energy thresholds : gamma 1.5021 keV e- 250 eV e+ 8.08967 keV proton 100 eV + Energy thresholds : gamma 1.50218 keV e- 250 eV e+ 8.09086 keV proton 100 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 11 used in the geometry : Yes Material : quartz Range cuts : gamma 1 um e- 1 nm e+ 1 um proton 1 um - Energy thresholds : gamma 250 eV e- 250 eV e+ 792.786 eV proton 100 eV + Energy thresholds : gamma 250 eV e- 250 eV e+ 792.749 eV proton 100 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 12 used in the geometry : Yes Material : CathodeMetalAluminium Range cuts : gamma 1 um e- 1 nm e+ 1 um proton 1 um - Energy thresholds : gamma 250 eV e- 250 eV e+ 1.06388 keV proton 100 eV + Energy thresholds : gamma 250 eV e- 250 eV e+ 1.06385 keV proton 100 eV Region(s) which use this couple : DefaultRegionForTheWorld @@ -576,7 +579,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 10 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 12 + Total energy in LXe: 10.551 keV + Average light collection time: 49.169 ns + Number of PMT hits (photoelectron equivalent): 12 + Event summary in file gamma_1000.out ---> End of event: 10 @@ -593,8 +601,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 5 - Total energy in LXe: 2.85089 keV + Number of hits in LXe: 50 + Total energy in LXe: 60 keV + Average light collection time: 39.6199 ns + Number of PMT hits (photoelectron equivalent): 64 Event summary in file gamma_1000.out ---> End of event: 30 @@ -627,7 +637,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 70 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 63 + Total energy in LXe: 60 keV + Average light collection time: 50.2129 ns + Number of PMT hits (photoelectron equivalent): 77 + Event summary in file gamma_1000.out ---> End of event: 70 @@ -636,10 +651,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 65 + Number of hits in LXe: 61 Total energy in LXe: 60 keV - Average light collection time: 30.5692 ns - Number of PMT hits (photoelectron equivalent): 54 + Average light collection time: 51.0338 ns + Number of PMT hits (photoelectron equivalent): 59 Event summary in file gamma_1000.out ---> End of event: 80 @@ -656,12 +671,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 100 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 34 - Total energy in LXe: 30.5479 keV - Average light collection time: 56.7961 ns - Number of PMT hits (photoelectron equivalent): 19 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 100 @@ -670,9 +680,9 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 65 + Number of hits in LXe: 72 Total energy in LXe: 60 keV - Average light collection time: 51.4766 ns + Average light collection time: 47.569 ns Number of PMT hits (photoelectron equivalent): 64 Event summary in file gamma_1000.out @@ -683,10 +693,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 59 + Number of hits in LXe: 52 Total energy in LXe: 60 keV - Average light collection time: 39.7939 ns - Number of PMT hits (photoelectron equivalent): 59 + Average light collection time: 38.8568 ns + Number of PMT hits (photoelectron equivalent): 63 Event summary in file gamma_1000.out ---> End of event: 120 @@ -703,7 +713,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 140 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 61 + Total energy in LXe: 60 keV + Average light collection time: 45.7226 ns + Number of PMT hits (photoelectron equivalent): 85 + Event summary in file gamma_1000.out ---> End of event: 140 @@ -743,12 +758,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 190 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 61 - Total energy in LXe: 60 keV - Average light collection time: 44.7708 ns - Number of PMT hits (photoelectron equivalent): 72 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 190 @@ -756,12 +766,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 200 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 67 - Total energy in LXe: 60 keV - Average light collection time: 43.9753 ns - Number of PMT hits (photoelectron equivalent): 54 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 200 @@ -786,10 +791,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 26 - Total energy in LXe: 30.5479 keV - Average light collection time: 51.0834 ns - Number of PMT hits (photoelectron equivalent): 34 + Number of hits in LXe: 28 + Total energy in LXe: 30.2187 keV + Average light collection time: 46.2931 ns + Number of PMT hits (photoelectron equivalent): 37 Event summary in file gamma_1000.out ---> End of event: 230 @@ -799,10 +804,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 49 + Number of hits in LXe: 69 Total energy in LXe: 60 keV - Average light collection time: 47.731 ns - Number of PMT hits (photoelectron equivalent): 157 + Average light collection time: 41.1249 ns + Number of PMT hits (photoelectron equivalent): 47 Event summary in file gamma_1000.out ---> End of event: 240 @@ -811,7 +816,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 250 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 27 + Total energy in LXe: 30.5479 keV + Average light collection time: 41.4264 ns + Number of PMT hits (photoelectron equivalent): 30 + Event summary in file gamma_1000.out ---> End of event: 250 @@ -820,10 +830,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 74 - Total energy in LXe: 60 keV - Average light collection time: 58.2045 ns - Number of PMT hits (photoelectron equivalent): 67 + Number of hits in LXe: 34 + Total energy in LXe: 30.2187 keV + Average light collection time: 48.6233 ns + Number of PMT hits (photoelectron equivalent): 24 Event summary in file gamma_1000.out ---> End of event: 260 @@ -832,12 +842,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 270 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 44 - Total energy in LXe: 60 keV - Average light collection time: 41.2048 ns - Number of PMT hits (photoelectron equivalent): 85 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 270 @@ -846,10 +851,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 48 + Number of hits in LXe: 68 Total energy in LXe: 60 keV - Average light collection time: 53.5998 ns - Number of PMT hits (photoelectron equivalent): 55 + Average light collection time: 48.2766 ns + Number of PMT hits (photoelectron equivalent): 71 Event summary in file gamma_1000.out ---> End of event: 280 @@ -859,10 +864,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 46 - Total energy in LXe: 60 keV - Average light collection time: 39.4363 ns - Number of PMT hits (photoelectron equivalent): 176 + Number of hits in LXe: 90 + Total energy in LXe: 50.3228 keV + Average light collection time: 44.2764 ns + Number of PMT hits (photoelectron equivalent): 50 Event summary in file gamma_1000.out ---> End of event: 290 @@ -871,12 +876,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 300 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 63 - Total energy in LXe: 60 keV - Average light collection time: 46.379 ns - Number of PMT hits (photoelectron equivalent): 158 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 300 @@ -884,7 +884,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 310 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 60 + Total energy in LXe: 60 keV + Average light collection time: 47.4875 ns + Number of PMT hits (photoelectron equivalent): 63 + Event summary in file gamma_1000.out ---> End of event: 310 @@ -892,12 +897,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 320 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 44 - Total energy in LXe: 60 keV - Average light collection time: 39.4208 ns - Number of PMT hits (photoelectron equivalent): 59 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 320 @@ -906,10 +906,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 34 - Total energy in LXe: 30.5479 keV - Average light collection time: 37.2632 ns - Number of PMT hits (photoelectron equivalent): 32 + Number of hits in LXe: 62 + Total energy in LXe: 60 keV + Average light collection time: 41.3024 ns + Number of PMT hits (photoelectron equivalent): 61 Event summary in file gamma_1000.out ---> End of event: 330 @@ -918,7 +918,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 340 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 29 + Total energy in LXe: 30.2187 keV + Average light collection time: 36.147 ns + Number of PMT hits (photoelectron equivalent): 28 + Event summary in file gamma_1000.out ---> End of event: 340 @@ -934,12 +939,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 360 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 58 - Total energy in LXe: 60 keV - Average light collection time: 40.8387 ns - Number of PMT hits (photoelectron equivalent): 51 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 360 @@ -948,10 +948,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 32 - Total energy in LXe: 30.2187 keV - Average light collection time: 41.1677 ns - Number of PMT hits (photoelectron equivalent): 34 + Number of hits in LXe: 17 + Total energy in LXe: 26.3706 keV + Average light collection time: 34.2707 ns + Number of PMT hits (photoelectron equivalent): 15 Event summary in file gamma_1000.out ---> End of event: 370 @@ -968,7 +968,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 390 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 26 + Total energy in LXe: 26.4335 keV + Average light collection time: 45.373 ns + Number of PMT hits (photoelectron equivalent): 18 + Event summary in file gamma_1000.out ---> End of event: 390 @@ -1008,7 +1013,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 440 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 25 + Total energy in LXe: 30.2187 keV + Average light collection time: 62.1009 ns + Number of PMT hits (photoelectron equivalent): 40 + Event summary in file gamma_1000.out ---> End of event: 440 @@ -1016,12 +1026,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 450 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 28 - Total energy in LXe: 30.5479 keV - Average light collection time: 47.5527 ns - Number of PMT hits (photoelectron equivalent): 27 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 450 @@ -1029,7 +1034,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 460 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 60 + Total energy in LXe: 60 keV + Average light collection time: 50.0673 ns + Number of PMT hits (photoelectron equivalent): 69 + Event summary in file gamma_1000.out ---> End of event: 460 @@ -1053,12 +1063,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 490 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 55 - Total energy in LXe: 60 keV - Average light collection time: 55.5201 ns - Number of PMT hits (photoelectron equivalent): 70 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 490 @@ -1066,7 +1071,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 500 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 27 + Total energy in LXe: 30.5479 keV + Average light collection time: 40.9373 ns + Number of PMT hits (photoelectron equivalent): 35 + Event summary in file gamma_1000.out ---> End of event: 500 @@ -1074,12 +1084,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 510 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 59 - Total energy in LXe: 60 keV - Average light collection time: 37.652 ns - Number of PMT hits (photoelectron equivalent): 42 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 510 @@ -1096,10 +1101,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 57 + Number of hits in LXe: 69 Total energy in LXe: 60 keV - Average light collection time: 43.7398 ns - Number of PMT hits (photoelectron equivalent): 75 + Average light collection time: 40.9197 ns + Number of PMT hits (photoelectron equivalent): 57 Event summary in file gamma_1000.out ---> End of event: 530 @@ -1108,12 +1113,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 540 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 21 - Total energy in LXe: 30.2187 keV - Average light collection time: 46.1322 ns - Number of PMT hits (photoelectron equivalent): 23 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 540 @@ -1121,12 +1121,9 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 550 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 27 - Total energy in LXe: 30.2187 keV - Average light collection time: 31.2909 ns - Number of PMT hits (photoelectron equivalent): 30 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV + Average light collection time: 43.0712 ns + Number of PMT hits (photoelectron equivalent): 128 ---> End of event: 550 @@ -1134,12 +1131,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 560 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 70 - Total energy in LXe: 60 keV - Average light collection time: 50.9932 ns - Number of PMT hits (photoelectron equivalent): 52 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 560 @@ -1147,7 +1139,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 570 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 58 + Total energy in LXe: 60 keV + Average light collection time: 37.1946 ns + Number of PMT hits (photoelectron equivalent): 83 + Event summary in file gamma_1000.out ---> End of event: 570 @@ -1155,7 +1152,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 580 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 34 + Total energy in LXe: 30.2187 keV + Average light collection time: 53.5632 ns + Number of PMT hits (photoelectron equivalent): 39 + Event summary in file gamma_1000.out ---> End of event: 580 @@ -1172,10 +1174,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 57 - Total energy in LXe: 27.7875 keV - Average light collection time: 37.7672 ns - Number of PMT hits (photoelectron equivalent): 32 + Number of hits in LXe: 53 + Total energy in LXe: 60 keV + Average light collection time: 45.9217 ns + Number of PMT hits (photoelectron equivalent): 59 Event summary in file gamma_1000.out ---> End of event: 600 @@ -1192,12 +1194,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 620 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 39 - Total energy in LXe: 26.3706 keV - Average light collection time: 47.3932 ns - Number of PMT hits (photoelectron equivalent): 28 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 620 @@ -1205,11 +1202,11 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 630 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 32 - Total energy in LXe: 30.2187 keV - Average light collection time: 50.4997 ns - Number of PMT hits (photoelectron equivalent): 33 + First hit in LXe: e- + Number of hits in LXe: 42 + Total energy in LXe: 22.0677 keV + Average light collection time: 29.6429 ns + Number of PMT hits (photoelectron equivalent): 24 Event summary in file gamma_1000.out ---> End of event: 630 @@ -1218,12 +1215,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 640 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 44 - Total energy in LXe: 28.8337 keV - Average light collection time: 56.3244 ns - Number of PMT hits (photoelectron equivalent): 21 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 640 @@ -1248,10 +1240,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 54 - Total energy in LXe: 60 keV - Average light collection time: 40.459 ns - Number of PMT hits (photoelectron equivalent): 50 + Number of hits in LXe: 20 + Total energy in LXe: 26.3706 keV + Average light collection time: 55.2454 ns + Number of PMT hits (photoelectron equivalent): 37 Event summary in file gamma_1000.out ---> End of event: 670 @@ -1260,12 +1252,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 680 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 12 - Total energy in LXe: 26.4335 keV - Average light collection time: 46.1871 ns - Number of PMT hits (photoelectron equivalent): 21 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 680 @@ -1273,7 +1260,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 690 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 61 + Total energy in LXe: 60 keV + Average light collection time: 41.0589 ns + Number of PMT hits (photoelectron equivalent): 51 + Event summary in file gamma_1000.out ---> End of event: 690 @@ -1281,12 +1273,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 700 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 60 - Total energy in LXe: 60 keV - Average light collection time: 43.4805 ns - Number of PMT hits (photoelectron equivalent): 63 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 700 @@ -1311,10 +1298,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 60 + Number of hits in LXe: 43 Total energy in LXe: 60 keV - Average light collection time: 47.3725 ns - Number of PMT hits (photoelectron equivalent): 60 + Average light collection time: 39.108 ns + Number of PMT hits (photoelectron equivalent): 68 Event summary in file gamma_1000.out ---> End of event: 730 @@ -1340,10 +1327,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 61 - Total energy in LXe: 60 keV - Average light collection time: 47.1211 ns - Number of PMT hits (photoelectron equivalent): 47 + Number of hits in LXe: 42 + Total energy in LXe: 30.2187 keV + Average light collection time: 25.0838 ns + Number of PMT hits (photoelectron equivalent): 36 Event summary in file gamma_1000.out ---> End of event: 760 @@ -1360,12 +1347,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 780 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 29 - Total energy in LXe: 36.9845 keV - Average light collection time: 67.0181 ns - Number of PMT hits (photoelectron equivalent): 28 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 780 @@ -1381,7 +1363,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 800 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 45 + Total energy in LXe: 60 keV + Average light collection time: 55.9986 ns + Number of PMT hits (photoelectron equivalent): 71 + Event summary in file gamma_1000.out ---> End of event: 800 @@ -1413,12 +1400,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 840 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 28 - Total energy in LXe: 30.2187 keV - Average light collection time: 42.3064 ns - Number of PMT hits (photoelectron equivalent): 21 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 840 @@ -1426,12 +1408,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 850 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 56 - Total energy in LXe: 60 keV - Average light collection time: 45.6925 ns - Number of PMT hits (photoelectron equivalent): 60 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 850 @@ -1439,7 +1416,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 860 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 65 + Total energy in LXe: 60 keV + Average light collection time: 44.1653 ns + Number of PMT hits (photoelectron equivalent): 53 + Event summary in file gamma_1000.out ---> End of event: 860 @@ -1447,12 +1429,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 870 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 40 - Total energy in LXe: 60 keV - Average light collection time: 42.9937 ns - Number of PMT hits (photoelectron equivalent): 64 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 870 @@ -1460,7 +1437,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 880 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 46 + Total energy in LXe: 60 keV + Average light collection time: 42.9689 ns + Number of PMT hits (photoelectron equivalent): 49 + Event summary in file gamma_1000.out ---> End of event: 880 @@ -1469,10 +1451,10 @@ See commands in /vis/modeling/trajectories/ for other options. Primary Energy: 60 keV First hit in LXe: gamma - Number of hits in LXe: 21 - Total energy in LXe: 26.4335 keV - Average light collection time: 46.3639 ns - Number of PMT hits (photoelectron equivalent): 27 + Number of hits in LXe: 62 + Total energy in LXe: 60 keV + Average light collection time: 41.726 ns + Number of PMT hits (photoelectron equivalent): 50 Event summary in file gamma_1000.out ---> End of event: 890 @@ -1497,7 +1479,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 920 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 53 + Total energy in LXe: 60 keV + Average light collection time: 51.6368 ns + Number of PMT hits (photoelectron equivalent): 47 + Event summary in file gamma_1000.out ---> End of event: 920 @@ -1513,12 +1500,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 940 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 25 - Total energy in LXe: 26.3706 keV - Average light collection time: 36.3246 ns - Number of PMT hits (photoelectron equivalent): 32 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 940 @@ -1526,12 +1508,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 950 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 29 - Total energy in LXe: 30.2187 keV - Average light collection time: 40.0013 ns - Number of PMT hits (photoelectron equivalent): 34 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 950 @@ -1539,12 +1516,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 960 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 19 - Total energy in LXe: 25.6047 keV - Average light collection time: 48.4933 ns - Number of PMT hits (photoelectron equivalent): 19 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 960 @@ -1552,7 +1524,12 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 970 Primary Energy: 60 keV - Total energy in LXe: 0 eV + First hit in LXe: gamma + Number of hits in LXe: 55 + Total energy in LXe: 60 keV + Average light collection time: 47.9392 ns + Number of PMT hits (photoelectron equivalent): 59 + Event summary in file gamma_1000.out ---> End of event: 970 @@ -1568,12 +1545,7 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 990 Primary Energy: 60 keV - First hit in LXe: gamma - Number of hits in LXe: 23 - Total energy in LXe: 30.2187 keV - Average light collection time: 47.4844 ns - Number of PMT hits (photoelectron equivalent): 24 - Event summary in file gamma_1000.out + Total energy in LXe: 0 eV ---> End of event: 990 diff --git a/examples/advanced/xray_fluorescence/History b/examples/advanced/xray_fluorescence/History index 28b7bee192..2f9595e0ad 100644 --- a/examples/advanced/xray_fluorescence/History +++ b/examples/advanced/xray_fluorescence/History @@ -6,6 +6,9 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-09-09 Susanna Guatelli (XRayFluo-V11-00-02) +- Ranecu Engine removed. Default one now used + ## 2022-02-14 Gabriele Cosmo (XRayFluo-V11-00-01) - XrayFluoEventAction: fixed compilation warning on Intel-icx compiler for unused variable. diff --git a/examples/advanced/xray_fluorescence/XrayFluo.cc b/examples/advanced/xray_fluorescence/XrayFluo.cc index 9c8308c4a6..6c0df04fd0 100644 --- a/examples/advanced/xray_fluorescence/XrayFluo.cc +++ b/examples/advanced/xray_fluorescence/XrayFluo.cc @@ -39,7 +39,7 @@ int main(int argc, char* argv[]){ - XrayFluoSimulation * simulation = new XrayFluoSimulation(0); + XrayFluoSimulation * simulation = new XrayFluoSimulation(); simulation->RunSimulation(argc,argv); diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoSimulation.hh b/examples/advanced/xray_fluorescence/include/XrayFluoSimulation.hh index 795907f1bc..68ea69d5b8 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoSimulation.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoSimulation.hh @@ -39,16 +39,12 @@ class XrayFluoSimulation{ public: - XrayFluoSimulation(G4int seed); + XrayFluoSimulation()=default; - ~XrayFluoSimulation(); + ~XrayFluoSimulation()= default; void RunSimulation(int argc,char* argv[]); -private: - - G4int dir; - }; diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoSimulation.cc b/examples/advanced/xray_fluorescence/src/XrayFluoSimulation.cc index e7a4cb5945..33560b6c7f 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoSimulation.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoSimulation.cc @@ -50,20 +50,8 @@ #include "XrayFluoActionInitializer.hh" #include "XrayFluoAnalysisManager.hh" - -XrayFluoSimulation::XrayFluoSimulation(G4int seed):dir(seed) -{;} - - -XrayFluoSimulation::~XrayFluoSimulation() -{;} - void XrayFluoSimulation::RunSimulation(int argc,char* argv[]) { - // choose the Random engine - G4Random::setTheEngine(new CLHEP::RanecuEngine); - G4Random::setTheSeed(dir); - auto* runManager = G4RunManagerFactory::CreateRunManager(); G4int nThreads = 4; runManager->SetNumberOfThreads(nThreads); diff --git a/examples/advanced/xray_fluorescence/xray_fluorescence.out b/examples/advanced/xray_fluorescence/xray_fluorescence.out index 8a7b4ef63f..2d7c8d2df7 100644 --- a/examples/advanced/xray_fluorescence/xray_fluorescence.out +++ b/examples/advanced/xray_fluorescence/xray_fluorescence.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -2300,6 +2300,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -2399,6 +2401,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -2426,7 +2429,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -2462,8 +2465,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 1 De-excitation module ignores cuts 0 @@ -2498,8 +2500,8 @@ conv: for gamma SubType=14 BuildTable=1 Livermore5DConversion : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -2623,7 +2625,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -2904,35 +2906,35 @@ Index : 0 used in the geometry : Yes Index : 1 used in the geometry : Yes Material : SiLi Range cuts : gamma 10 um e- 10 um e+ 10 um proton 10 um - Energy thresholds : gamma 250 eV e- 31.8522 keV e+ 31.4952 keV proton 1 keV + Energy thresholds : gamma 250 eV e- 31.8486 keV e+ 31.4942 keV proton 1 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes Material : G4_Pb Range cuts : gamma 10 um e- 10 um e+ 10 um proton 10 um - Energy thresholds : gamma 5.98422 keV e- 58.0315 keV e+ 56.948 keV proton 1 keV + Energy thresholds : gamma 5.98443 keV e- 58.0231 keV e+ 56.9554 keV proton 1 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 3 used in the geometry : Yes Material : G4_Ni Range cuts : gamma 10 um e- 10 um e+ 10 um proton 10 um - Energy thresholds : gamma 2.15382 keV e- 63.2458 keV e+ 62.2771 keV proton 1 keV + Energy thresholds : gamma 2.15365 keV e- 63.2448 keV e+ 62.2825 keV proton 1 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 4 used in the geometry : Yes Material : G4_Be Range cuts : gamma 10 um e- 10 um e+ 10 um proton 10 um - Energy thresholds : gamma 250 eV e- 27.954 keV e+ 27.4025 keV proton 1 keV + Energy thresholds : gamma 250 eV e- 27.9471 keV e+ 27.3913 keV proton 1 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 5 used in the geometry : Yes Material : Dolorite Range cuts : gamma 10 um e- 10 um e+ 10 um proton 10 um - Energy thresholds : gamma 250 eV e- 37.0032 keV e+ 36.5833 keV proton 1 keV + Energy thresholds : gamma 250 eV e- 36.9996 keV e+ 36.5872 keV proton 1 keV Region(s) which use this couple : DefaultRegionForTheWorld @@ -2971,7 +2973,7 @@ Created histos Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003613s Sys=0.000000s + User=0.000000s Real=0.003263s Sys=0.000000s Going to save histograms ... write file : xrayfluo.root - done ... close file : xrayfluo.root - done @@ -3012,11 +3014,11 @@ Pool ID '17G4PrimaryParticle', size : 0.000961 MB Pool ID '15G4HCofThisEvent', size : 0.000961 MB Pool ID '16G4HitsCollection', size : 0.000961 MB Pool ID '17G4DynamicParticle', size : 0.000961 MB -Pool ID '7G4Track', size : 0.00192 MB +Pool ID '7G4Track', size : 0.000961 MB Pool ID '18G4TouchableHistory', size : 0.000961 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB Number of memory pools allocated: 13 of which, static: 0 -Dynamic pools deleted: 13 / Total memory freed: 0.019 MB +Dynamic pools deleted: 13 / Total memory freed: 0.018 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/advanced/xray_telescope/xray_telescope.out b/examples/advanced/xray_telescope/xray_telescope.out index aad2ff81f4..488564d70d 100644 --- a/examples/advanced/xray_telescope/xray_telescope.out +++ b/examples/advanced/xray_telescope/xray_telescope.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -31,6 +31,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -83,6 +85,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -110,7 +113,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -450,7 +453,7 @@ Opening output file xraytel ... done Run terminated. Run Summary Number of events processed : 1000 - User=0.020000s Real=0.010802s Sys=0.000000s + User=0.010000s Real=0.013164s Sys=0.000000s ########################################## WARNING: command "/vis/viewer/update" could not be applied: no current viewer. Graphics systems deleted. diff --git a/examples/basic/B1/CMakeLists.txt b/examples/basic/B1/CMakeLists.txt index 9295d45d25..c9dee392c6 100644 --- a/examples/basic/B1/CMakeLists.txt +++ b/examples/basic/B1/CMakeLists.txt @@ -47,6 +47,7 @@ set(EXAMPLEB1_SCRIPTS run1.mac run2.mac vis.mac + tsg_offscreen.mac ) foreach(_script ${EXAMPLEB1_SCRIPTS}) diff --git a/examples/basic/B1/History b/examples/basic/B1/History index 9ce8291418..ae85408b9f 100644 --- a/examples/basic/B1/History +++ b/examples/basic/B1/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-10-13 Guy Barrand (exampleB1-V11-00-01) +- vis.mac: commented TSG_OFFSCREEN usage example. + ## 2021-12-10 Ben Morgan (exampleB1-V11-00-00) - Change to new Markdown History format diff --git a/examples/basic/B1/exampleB1.out b/examples/basic/B1/exampleB1.out index accf980d3d..2a95412f0b 100644 --- a/examples/basic/B1/exampleB1.out +++ b/examples/basic/B1/exampleB1.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -32,6 +32,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -82,7 +84,6 @@ Checking overlaps for volume Shape2:0 (G4Trd) ... OK! Emin(FTFP)= 3 GeV Emax(FTFP)= 100000 GeV Emin(BERT)= 1 GeV Emax(BERT)= 6 GeV Emax(BERTpions)= 12 GeV Emin(BIC) = 0 GeV Emax(BIC)= 1.5 GeV. -### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 ======================================================================= ====== Electromagnetic Physics Parameters ======== ======================================================================= @@ -92,6 +93,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -119,7 +121,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -170,8 +172,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -521,28 +523,6 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 ==================================================================== HADRONIC PROCESSES SUMMARY (verbose level 1) ---------------------------------------------------- - Hadronic Processes for neutron - - Process: hadElastic - Model: hElasticCHIPS: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV - - - Process: neutronInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 1 GeV ---> 6 GeV - Model: Binary Cascade: 0 eV ---> 1.5 GeV - Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV - - - Process: nCapture - Model: nRadCapture: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV - - - Process: nKiller - --------------------------------------------------- Hadronic Processes for B- @@ -659,6 +639,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -824,6 +809,28 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: muMinusCaptureAtRest +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 1 GeV ---> 6 GeV + Model: Binary Cascade: 0 eV ---> 1.5 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + --------------------------------------------------- Hadronic Processes for pi+ @@ -941,7 +948,7 @@ See commands in /vis/modeling/trajectories/ for other options. --------------------End of Global Run----------------------- The run consists of 1000 gamma of 6 MeV - Cumulated dose per run, in scoring volume : 43.1579 picoGy rms = 3.90411 picoGy + Cumulated dose per run, in scoring volume : 42.4413 picoGy rms = 3.88774 picoGy ------------------------------------------------------------ ### Run 1 starts. @@ -958,7 +965,7 @@ See commands in /vis/modeling/trajectories/ for other options. --------------------End of Global Run----------------------- The run consists of 1000 proton of 210 MeV - Cumulated dose per run, in scoring volume : 4.96701 nanoGy rms = 145.594 picoGy + Cumulated dose per run, in scoring volume : 4.74875 nanoGy rms = 146.023 picoGy ------------------------------------------------------------ Graphics systems deleted. diff --git a/examples/basic/B1/include/ActionInitialization.hh b/examples/basic/B1/include/ActionInitialization.hh index 7bef838962..6c572d43e8 100644 --- a/examples/basic/B1/include/ActionInitialization.hh +++ b/examples/basic/B1/include/ActionInitialization.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.hh +/// \file B1/include/ActionInitialization.hh /// \brief Definition of the B1::ActionInitialization class #ifndef B1ActionInitialization_h @@ -40,8 +40,8 @@ namespace B1 class ActionInitialization : public G4VUserActionInitialization { public: - ActionInitialization(); - ~ActionInitialization() override; + ActionInitialization() = default; + ~ActionInitialization() override = default; void BuildForMaster() const override; void Build() const override; diff --git a/examples/basic/B1/include/DetectorConstruction.hh b/examples/basic/B1/include/DetectorConstruction.hh index 81ef3f8a40..cf2b0ad169 100644 --- a/examples/basic/B1/include/DetectorConstruction.hh +++ b/examples/basic/B1/include/DetectorConstruction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.hh +/// \file B1/include/DetectorConstruction.hh /// \brief Definition of the B1::DetectorConstruction class #ifndef B1DetectorConstruction_h @@ -44,8 +44,8 @@ namespace B1 class DetectorConstruction : public G4VUserDetectorConstruction { public: - DetectorConstruction(); - ~DetectorConstruction() override; + DetectorConstruction() = default; + ~DetectorConstruction() override = default; G4VPhysicalVolume* Construct() override; diff --git a/examples/basic/B1/include/EventAction.hh b/examples/basic/B1/include/EventAction.hh index 532e85abce..a4eb5bd93e 100644 --- a/examples/basic/B1/include/EventAction.hh +++ b/examples/basic/B1/include/EventAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.hh +/// \file B1/include/EventAction.hh /// \brief Definition of the B1::EventAction class #ifndef B1EventAction_h @@ -45,7 +45,7 @@ class EventAction : public G4UserEventAction { public: EventAction(RunAction* runAction); - ~EventAction() override; + ~EventAction() override = default; void BeginOfEventAction(const G4Event* event) override; void EndOfEventAction(const G4Event* event) override; diff --git a/examples/basic/B1/include/PrimaryGeneratorAction.hh b/examples/basic/B1/include/PrimaryGeneratorAction.hh index 14d7fd0335..d5e58f92d0 100644 --- a/examples/basic/B1/include/PrimaryGeneratorAction.hh +++ b/examples/basic/B1/include/PrimaryGeneratorAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.hh +/// \file B1/include/PrimaryGeneratorAction.hh /// \brief Definition of the B1::PrimaryGeneratorAction class #ifndef B1PrimaryGeneratorAction_h diff --git a/examples/basic/B1/include/RunAction.hh b/examples/basic/B1/include/RunAction.hh index f8eb97cf48..3fc566748c 100644 --- a/examples/basic/B1/include/RunAction.hh +++ b/examples/basic/B1/include/RunAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.hh +/// \file B1/include/RunAction.hh /// \brief Definition of the B1::RunAction class #ifndef B1RunAction_h @@ -49,7 +49,7 @@ class RunAction : public G4UserRunAction { public: RunAction(); - ~RunAction() override; + ~RunAction() override = default; void BeginOfRunAction(const G4Run*) override; void EndOfRunAction(const G4Run*) override; diff --git a/examples/basic/B1/include/SteppingAction.hh b/examples/basic/B1/include/SteppingAction.hh index d4d5764549..b673373e8a 100644 --- a/examples/basic/B1/include/SteppingAction.hh +++ b/examples/basic/B1/include/SteppingAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file SteppingAction.hh +/// \file B1/include/SteppingAction.hh /// \brief Definition of the B1::SteppingAction class #ifndef B1SteppingAction_h @@ -47,7 +47,7 @@ class SteppingAction : public G4UserSteppingAction { public: SteppingAction(EventAction* eventAction); - ~SteppingAction() override; + ~SteppingAction() override = default; // method from the base class void UserSteppingAction(const G4Step*) override; diff --git a/examples/basic/B1/src/ActionInitialization.cc b/examples/basic/B1/src/ActionInitialization.cc index b0a032bc07..ed1e69747a 100644 --- a/examples/basic/B1/src/ActionInitialization.cc +++ b/examples/basic/B1/src/ActionInitialization.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.cc +/// \file B1/src/ActionInitialization.cc /// \brief Implementation of the B1::ActionInitialization class #include "ActionInitialization.hh" @@ -38,19 +38,9 @@ namespace B1 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ActionInitialization::~ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ActionInitialization::BuildForMaster() const { - RunAction* runAction = new RunAction; + auto runAction = new RunAction; SetUserAction(runAction); } @@ -60,10 +50,10 @@ void ActionInitialization::Build() const { SetUserAction(new PrimaryGeneratorAction); - RunAction* runAction = new RunAction; + auto runAction = new RunAction; SetUserAction(runAction); - EventAction* eventAction = new EventAction(runAction); + auto eventAction = new EventAction(runAction); SetUserAction(eventAction); SetUserAction(new SteppingAction(eventAction)); diff --git a/examples/basic/B1/src/DetectorConstruction.cc b/examples/basic/B1/src/DetectorConstruction.cc index 8817eb485e..d58b1caf53 100644 --- a/examples/basic/B1/src/DetectorConstruction.cc +++ b/examples/basic/B1/src/DetectorConstruction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.cc +/// \file B1/src/DetectorConstruction.cc /// \brief Implementation of the B1::DetectorConstruction class #include "DetectorConstruction.hh" @@ -45,16 +45,6 @@ namespace B1 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -DetectorConstruction::DetectorConstruction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -DetectorConstruction::~DetectorConstruction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4VPhysicalVolume* DetectorConstruction::Construct() { // Get nist material manager @@ -76,45 +66,40 @@ G4VPhysicalVolume* DetectorConstruction::Construct() G4double world_sizeZ = 1.2*env_sizeZ; G4Material* world_mat = nist->FindOrBuildMaterial("G4_AIR"); - G4Box* solidWorld = - new G4Box("World", //its name - 0.5*world_sizeXY, 0.5*world_sizeXY, 0.5*world_sizeZ); //its size + auto solidWorld = new G4Box("World", // its name + 0.5 * world_sizeXY, 0.5 * world_sizeXY, 0.5 * world_sizeZ); // its size - G4LogicalVolume* logicWorld = - new G4LogicalVolume(solidWorld, //its solid - world_mat, //its material - "World"); //its name + auto logicWorld = new G4LogicalVolume(solidWorld, // its solid + world_mat, // its material + "World"); // its name - G4VPhysicalVolume* physWorld = - new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - logicWorld, //its logical volume - "World", //its name - 0, //its mother volume - false, //no boolean operation - 0, //copy number - checkOverlaps); //overlaps checking + auto physWorld = new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + logicWorld, // its logical volume + "World", // its name + nullptr, // its mother volume + false, // no boolean operation + 0, // copy number + checkOverlaps); // overlaps checking // // Envelope // - G4Box* solidEnv = - new G4Box("Envelope", //its name - 0.5*env_sizeXY, 0.5*env_sizeXY, 0.5*env_sizeZ); //its size + auto solidEnv = new G4Box("Envelope", // its name + 0.5 * env_sizeXY, 0.5 * env_sizeXY, 0.5 * env_sizeZ); // its size - G4LogicalVolume* logicEnv = - new G4LogicalVolume(solidEnv, //its solid - env_mat, //its material - "Envelope"); //its name + auto logicEnv = new G4LogicalVolume(solidEnv, // its solid + env_mat, // its material + "Envelope"); // its name - new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - logicEnv, //its logical volume - "Envelope", //its name - logicWorld, //its mother volume - false, //no boolean operation - 0, //copy number - checkOverlaps); //overlaps checking + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + logicEnv, // its logical volume + "Envelope", // its name + logicWorld, // its mother volume + false, // no boolean operation + 0, // copy number + checkOverlaps); // overlaps checking // // Shape 1 @@ -127,24 +112,21 @@ G4VPhysicalVolume* DetectorConstruction::Construct() G4double shape1_rminb = 0.*cm, shape1_rmaxb = 4.*cm; G4double shape1_hz = 3.*cm; G4double shape1_phimin = 0.*deg, shape1_phimax = 360.*deg; - G4Cons* solidShape1 = - new G4Cons("Shape1", - shape1_rmina, shape1_rmaxa, shape1_rminb, shape1_rmaxb, shape1_hz, - shape1_phimin, shape1_phimax); + auto solidShape1 = new G4Cons("Shape1", shape1_rmina, shape1_rmaxa, shape1_rminb, shape1_rmaxb, + shape1_hz, shape1_phimin, shape1_phimax); - G4LogicalVolume* logicShape1 = - new G4LogicalVolume(solidShape1, //its solid - shape1_mat, //its material - "Shape1"); //its name + auto logicShape1 = new G4LogicalVolume(solidShape1, // its solid + shape1_mat, // its material + "Shape1"); // its name - new G4PVPlacement(0, //no rotation - pos1, //at position - logicShape1, //its logical volume - "Shape1", //its name - logicEnv, //its mother volume - false, //no boolean operation - 0, //copy number - checkOverlaps); //overlaps checking + new G4PVPlacement(nullptr, // no rotation + pos1, // at position + logicShape1, // its logical volume + "Shape1", // its name + logicEnv, // its mother volume + false, // no boolean operation + 0, // copy number + checkOverlaps); // overlaps checking // // Shape 2 @@ -156,24 +138,22 @@ G4VPhysicalVolume* DetectorConstruction::Construct() G4double shape2_dxa = 12*cm, shape2_dxb = 12*cm; G4double shape2_dya = 10*cm, shape2_dyb = 16*cm; G4double shape2_dz = 6*cm; - G4Trd* solidShape2 = - new G4Trd("Shape2", //its name - 0.5*shape2_dxa, 0.5*shape2_dxb, - 0.5*shape2_dya, 0.5*shape2_dyb, 0.5*shape2_dz); //its size + auto solidShape2 = new G4Trd("Shape2", // its name + 0.5 * shape2_dxa, 0.5 * shape2_dxb, 0.5 * shape2_dya, 0.5 * shape2_dyb, + 0.5 * shape2_dz); // its size - G4LogicalVolume* logicShape2 = - new G4LogicalVolume(solidShape2, //its solid - shape2_mat, //its material - "Shape2"); //its name + auto logicShape2 = new G4LogicalVolume(solidShape2, // its solid + shape2_mat, // its material + "Shape2"); // its name - new G4PVPlacement(0, //no rotation - pos2, //at position - logicShape2, //its logical volume - "Shape2", //its name - logicEnv, //its mother volume - false, //no boolean operation - 0, //copy number - checkOverlaps); //overlaps checking + new G4PVPlacement(nullptr, // no rotation + pos2, // at position + logicShape2, // its logical volume + "Shape2", // its name + logicEnv, // its mother volume + false, // no boolean operation + 0, // copy number + checkOverlaps); // overlaps checking // Set Shape2 as scoring volume // diff --git a/examples/basic/B1/src/EventAction.cc b/examples/basic/B1/src/EventAction.cc index a4005507a8..5df62a7257 100644 --- a/examples/basic/B1/src/EventAction.cc +++ b/examples/basic/B1/src/EventAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.cc +/// \file B1/src/EventAction.cc /// \brief Implementation of the B1::EventAction class #include "EventAction.hh" @@ -44,11 +44,6 @@ EventAction::EventAction(RunAction* runAction) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::~EventAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void EventAction::BeginOfEventAction(const G4Event*) { fEdep = 0.; diff --git a/examples/basic/B1/src/PrimaryGeneratorAction.cc b/examples/basic/B1/src/PrimaryGeneratorAction.cc index f2e74058a8..61fbca77c2 100644 --- a/examples/basic/B1/src/PrimaryGeneratorAction.cc +++ b/examples/basic/B1/src/PrimaryGeneratorAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.cc +/// \file B1/src/PrimaryGeneratorAction.cc /// \brief Implementation of the B1::PrimaryGeneratorAction class #include "PrimaryGeneratorAction.hh" diff --git a/examples/basic/B1/src/RunAction.cc b/examples/basic/B1/src/RunAction.cc index deece5453f..8286ddbd37 100644 --- a/examples/basic/B1/src/RunAction.cc +++ b/examples/basic/B1/src/RunAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.cc +/// \file B1/src/RunAction.cc /// \brief Implementation of the B1::RunAction class #include "RunAction.hh" @@ -67,11 +67,6 @@ RunAction::RunAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::~RunAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void RunAction::BeginOfRunAction(const G4Run*) { // inform the runManager to save random number seed @@ -102,9 +97,8 @@ void RunAction::EndOfRunAction(const G4Run* run) G4double rms = edep2 - edep*edep/nofEvents; if (rms > 0.) rms = std::sqrt(rms); else rms = 0.; - const DetectorConstruction* detConstruction - = static_cast - (G4RunManager::GetRunManager()->GetUserDetectorConstruction()); + const auto detConstruction = static_cast( + G4RunManager::GetRunManager()->GetUserDetectorConstruction()); G4double mass = detConstruction->GetScoringVolume()->GetMass(); G4double dose = edep/mass; G4double rmsDose = rms/mass; @@ -112,9 +106,8 @@ void RunAction::EndOfRunAction(const G4Run* run) // Run conditions // note: There is no primary generator action object for "master" // run manager for multi-threaded mode. - const PrimaryGeneratorAction* generatorAction - = static_cast - (G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction()); + const auto generatorAction = static_cast( + G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction()); G4String runCondition; if (generatorAction) { diff --git a/examples/basic/B1/src/SteppingAction.cc b/examples/basic/B1/src/SteppingAction.cc index b3573c0938..ba72609f1f 100644 --- a/examples/basic/B1/src/SteppingAction.cc +++ b/examples/basic/B1/src/SteppingAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file SteppingAction.cc +/// \file B1/src/SteppingAction.cc /// \brief Implementation of the B1::SteppingAction class #include "SteppingAction.hh" @@ -47,17 +47,11 @@ SteppingAction::SteppingAction(EventAction* eventAction) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::~SteppingAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void SteppingAction::UserSteppingAction(const G4Step* step) { if (!fScoringVolume) { - const DetectorConstruction* detConstruction - = static_cast - (G4RunManager::GetRunManager()->GetUserDetectorConstruction()); + const auto detConstruction = static_cast( + G4RunManager::GetRunManager()->GetUserDetectorConstruction()); fScoringVolume = detConstruction->GetScoringVolume(); } diff --git a/examples/basic/B1/tsg_offscreen.mac b/examples/basic/B1/tsg_offscreen.mac new file mode 100644 index 0000000000..94154d9fe7 --- /dev/null +++ b/examples/basic/B1/tsg_offscreen.mac @@ -0,0 +1,102 @@ + +#////////////////////////////////////////////////////////////////////// +#////////////////////////////////////////////////////////////////////// +#////////////////////////////////////////////////////////////////////// + +# Default file format is zb_png. Then a picture produced by using the +# tools::sg offscreen zbuffer, and put in a png file with the tools::fpng png +# file writer. + +# Default file name is: +# g4tsg_offscreen_[format]_[index].[suffix] +# with: +# - index: starting at one and incremented at each file production. +# - format: +# zb_png: tools::sg offscreen zbuffer put in a png file. +# zb_jpeg: tools::sg offscreen zbuffer put in a jpeg file. +# zb_ps: tools::sg offscreen zbuffer put in a PostScript file. +# gl2ps_eps: gl2ps producing eps +# gl2ps_ps: gl2ps producing ps +# gl2ps_pdf: gl2ps producing pdf +# gl2ps_svg: gl2ps producing svg +# gl2ps_tex: gl2ps producing tex +# gl2ps_pgf: gl2ps producing pgf +# - suffix: according to the choosen file format: eps, ps, pdf, svg, tex, pgf, png, jpeg. + +# You can change the file name with: +# /vis/tsg/offscreen/set/file +# You can change the automatic file name construction with: +# /vis/tsg/offscreen/set/file auto + +# Default picture size, in pixels, is the one given when doing a: +# /vis/open TSG_OFFSCREEN [width]x[height] +# for example: +# /vis/open TSG_OFFSCREEN 1200x1200 +# or by taking the default G4/vis viewer size (600x600): +# /vis/open TSG_OFFSCREEN + +# About the picture size, note that the gl2ps files will grow with the number of primitives +# (gl2ps does not have a zbuffer logic). The "zb" files will not grow with the number of +# primitives, but with the size of the viewer. It should be preferred for scenes with +# a lot of objects to render. With zb, to have a better rendering, do not hesitate to +# have a large viewer size. + +# About transparency, the zb formats handle it. The gl2ps formats don't, in this case you can use: +# /vis/tsg/offscreen/set/transparency false +# to not draw the transparent objects. + +#////////////////////////////////////////////////////////////////////// +#////////////////////////////////////////////////////////////////////// +#////////////////////////////////////////////////////////////////////// +# Below is a sequence to produce files at the various formats +# (execute vis.mac first to have some scene to visualize). +# Note that a TSG offscreen viewer is not an "auto refresh" one, then +# to produce a picture, you have to do: +# /vis/viewer/rebuild +# (a /vis/viewer/refresh or flush may not be sufficient, for example with plotting). + +/vis/verbose confirmations + +/vis/open TSG_OFFSCREEN +/vis/viewer/rebuild # to produce the default g4tsg_offscreen_zb_png_1.png file. +/run/beamOn 10 +/vis/viewer/rebuild # to produce g4tsg_offscreen_zb_png_2.png file. + +/vis/tsg/offscreen/set/file auto B1_ true #true is to reset the index. +/vis/viewer/rebuild # to produce B1_1.png file. +/run/beamOn 10 +/vis/viewer/rebuild # to produce B1_2.png file. + +/vis/tsg/offscreen/set/format zb_png +/vis/tsg/offscreen/set/file B1_zb.png +/vis/viewer/rebuild + +/vis/tsg/offscreen/set/format zb_jpeg +/vis/tsg/offscreen/set/file B1_zb.jpeg +/vis/viewer/rebuild + +/vis/tsg/offscreen/set/format gl2ps_ps +/vis/tsg/offscreen/set/file B1_gl2ps.ps +/vis/viewer/rebuild + +# gl2ps does not handle transparency, it could +# be usefull to not draw the transparent objects: +/vis/tsg/offscreen/set/transparency false +/vis/tsg/offscreen/set/file B1_no_transparency_gl2ps.ps +/vis/viewer/rebuild +/vis/tsg/offscreen/set/transparency true + +# change picture size: +/vis/tsg/offscreen/set/size 2000 1500 +/vis/tsg/offscreen/set/format zb_jpeg +/vis/tsg/offscreen/set/file B1_2000_1500_zb.jpeg +/vis/viewer/rebuild + +# return to the "/vis/open" (/vis/viewer/create in fact) picture size: +/vis/tsg/offscreen/set/size 0 0 + +/vis/tsg/offscreen/set/format zb_jpeg +/vis/tsg/offscreen/set/file B1_600_600_zb.jpeg +/vis/viewer/rebuild + +/vis/verbose warnings diff --git a/examples/basic/B1/vis.mac b/examples/basic/B1/vis.mac index 5cc80c6dad..74230badbd 100644 --- a/examples/basic/B1/vis.mac +++ b/examples/basic/B1/vis.mac @@ -22,6 +22,11 @@ # viewing in a VRML viewer: #/vis/open VRML2FILE # +# Use this open statement to create an offscreen file with TSG: +#/vis/open TSG_OFFSCREEN 1200x1200 +# See the tsg_offscreen.mac file for more commands to change +# the file format, file name, picture size, etc. +# # Disable auto refresh and quieten vis messages whilst scene and # trajectories are established: /vis/viewer/set/autoRefresh false diff --git a/examples/basic/B2/B2a/exampleB2a.out b/examples/basic/B2/B2a/exampleB2a.out index a1c2ea2de9..11154dcf6f 100644 --- a/examples/basic/B2/B2a/exampleB2a.out +++ b/examples/basic/B2/B2a/exampleB2a.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -162,6 +164,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -189,7 +192,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -240,8 +243,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -723,6 +726,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -999,7 +1007,7 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 3 0 hits stored in this event >>> Event: 4 - 0 hits stored in this event + 32 hits stored in this event >>> Event: 5 0 hits stored in this event >>> Event: 6 @@ -1009,31 +1017,31 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 8 0 hits stored in this event >>> Event: 9 - 0 hits stored in this event + 41 hits stored in this event >>> Event: 10 - 33 hits stored in this event + 63 hits stored in this event >>> Event: 11 0 hits stored in this event >>> Event: 12 0 hits stored in this event >>> Event: 13 - 0 hits stored in this event + 107 hits stored in this event >>> Event: 14 0 hits stored in this event >>> Event: 15 - 146 hits stored in this event ->>> Event: 16 0 hits stored in this event +>>> Event: 16 + 7 hits stored in this event >>> Event: 17 0 hits stored in this event >>> Event: 18 - 17 hits stored in this event + 0 hits stored in this event >>> Event: 19 0 hits stored in this event >>> Event: 20 0 hits stored in this event >>> Event: 21 - 70 hits stored in this event + 0 hits stored in this event >>> Event: 22 0 hits stored in this event >>> Event: 23 @@ -1043,7 +1051,7 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 25 0 hits stored in this event >>> Event: 26 - 35 hits stored in this event + 66 hits stored in this event >>> Event: 27 0 hits stored in this event >>> Event: 28 @@ -1065,15 +1073,15 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 36 0 hits stored in this event >>> Event: 37 - 0 hits stored in this event + 52 hits stored in this event >>> Event: 38 0 hits stored in this event >>> Event: 39 - 161 hits stored in this event + 0 hits stored in this event >>> Event: 40 0 hits stored in this event >>> Event: 41 - 9 hits stored in this event + 0 hits stored in this event >>> Event: 42 0 hits stored in this event >>> Event: 43 @@ -1083,15 +1091,15 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 45 0 hits stored in this event >>> Event: 46 - 5 hits stored in this event + 0 hits stored in this event >>> Event: 47 0 hits stored in this event >>> Event: 48 0 hits stored in this event >>> Event: 49 - 67 hits stored in this event ->>> Event: 50 0 hits stored in this event +>>> Event: 50 + 149 hits stored in this event >>> Event: 51 0 hits stored in this event >>> Event: 52 @@ -1127,7 +1135,7 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 67 0 hits stored in this event >>> Event: 68 - 22 hits stored in this event + 0 hits stored in this event >>> Event: 69 0 hits stored in this event >>> Event: 70 @@ -1135,17 +1143,17 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 71 0 hits stored in this event >>> Event: 72 - 0 hits stored in this event + 73 hits stored in this event >>> Event: 73 0 hits stored in this event >>> Event: 74 - 121 hits stored in this event + 0 hits stored in this event >>> Event: 75 0 hits stored in this event >>> Event: 76 0 hits stored in this event >>> Event: 77 - 116 hits stored in this event + 1 hits stored in this event >>> Event: 78 0 hits stored in this event >>> Event: 79 @@ -1153,9 +1161,9 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 80 0 hits stored in this event >>> Event: 81 - 0 hits stored in this event + 16 hits stored in this event >>> Event: 82 - 156 hits stored in this event + 145 hits stored in this event >>> Event: 83 0 hits stored in this event >>> Event: 84 @@ -1165,27 +1173,27 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 86 0 hits stored in this event >>> Event: 87 - 17 hits stored in this event + 0 hits stored in this event >>> Event: 88 0 hits stored in this event >>> Event: 89 0 hits stored in this event >>> Event: 90 - 143 hits stored in this event + 28 hits stored in this event >>> Event: 91 0 hits stored in this event >>> Event: 92 0 hits stored in this event >>> Event: 93 - 0 hits stored in this event + 5 hits stored in this event >>> Event: 94 - 0 hits stored in this event + 54 hits stored in this event >>> Event: 95 0 hits stored in this event >>> Event: 96 0 hits stored in this event >>> Event: 97 - 173 hits stored in this event + 0 hits stored in this event >>> Event: 98 0 hits stored in this event >>> Event: 99 @@ -1193,205 +1201,205 @@ See commands in /vis/modeling/trajectories/ for other options. ### Run 1 starts. --> Event 0 starts. >>> Event: 0 - 55 hits stored in this event ->>> Event: 1 - 225 hits stored in this event ->>> Event: 2 - 111 hits stored in this event ->>> Event: 3 - 67 hits stored in this event ->>> Event: 4 - 83 hits stored in this event ->>> Event: 5 - 173 hits stored in this event ->>> Event: 6 - 221 hits stored in this event ->>> Event: 7 - 112 hits stored in this event ->>> Event: 8 - 115 hits stored in this event ->>> Event: 9 - 3611 hits stored in this event ->>> Event: 10 - 151 hits stored in this event ->>> Event: 11 - 94 hits stored in this event ->>> Event: 12 - 71 hits stored in this event ->>> Event: 13 - 157 hits stored in this event ->>> Event: 14 - 71 hits stored in this event ->>> Event: 15 - 51 hits stored in this event ->>> Event: 16 - 153 hits stored in this event ->>> Event: 17 88 hits stored in this event +>>> Event: 1 + 110 hits stored in this event +>>> Event: 2 + 60 hits stored in this event +>>> Event: 3 + 291 hits stored in this event +>>> Event: 4 + 114 hits stored in this event +>>> Event: 5 + 82 hits stored in this event +>>> Event: 6 + 514 hits stored in this event +>>> Event: 7 + 76 hits stored in this event +>>> Event: 8 + 129 hits stored in this event +>>> Event: 9 + 71 hits stored in this event +>>> Event: 10 + 92 hits stored in this event +>>> Event: 11 + 71 hits stored in this event +>>> Event: 12 + 98 hits stored in this event +>>> Event: 13 + 100 hits stored in this event +>>> Event: 14 + 247 hits stored in this event +>>> Event: 15 + 89 hits stored in this event +>>> Event: 16 + 1565 hits stored in this event +>>> Event: 17 + 306 hits stored in this event >>> Event: 18 - 84 hits stored in this event + 71 hits stored in this event >>> Event: 19 71 hits stored in this event >>> Event: 20 - 85 hits stored in this event + 501 hits stored in this event >>> Event: 21 - 66 hits stored in this event + 143 hits stored in this event >>> Event: 22 - 90 hits stored in this event + 135 hits stored in this event >>> Event: 23 - 121 hits stored in this event + 140 hits stored in this event >>> Event: 24 - 100 hits stored in this event + 74 hits stored in this event >>> Event: 25 - 91 hits stored in this event + 63 hits stored in this event >>> Event: 26 - 110 hits stored in this event + 169 hits stored in this event >>> Event: 27 - 82 hits stored in this event + 122 hits stored in this event >>> Event: 28 - 81 hits stored in this event + 73 hits stored in this event >>> Event: 29 - 150 hits stored in this event + 82 hits stored in this event >>> Event: 30 - 488 hits stored in this event + 126 hits stored in this event >>> Event: 31 - 174 hits stored in this event + 78 hits stored in this event >>> Event: 32 - 59 hits stored in this event + 151 hits stored in this event >>> Event: 33 - 71 hits stored in this event + 100 hits stored in this event >>> Event: 34 - 539 hits stored in this event + 116 hits stored in this event >>> Event: 35 - 138 hits stored in this event + 57 hits stored in this event >>> Event: 36 - 293 hits stored in this event + 339 hits stored in this event >>> Event: 37 - 201 hits stored in this event + 73 hits stored in this event >>> Event: 38 76 hits stored in this event >>> Event: 39 - 163 hits stored in this event + 96 hits stored in this event >>> Event: 40 - 95 hits stored in this event + 609 hits stored in this event >>> Event: 41 - 386 hits stored in this event + 71 hits stored in this event >>> Event: 42 - 68 hits stored in this event + 1020 hits stored in this event >>> Event: 43 - 603 hits stored in this event + 59 hits stored in this event >>> Event: 44 - 94 hits stored in this event ->>> Event: 45 - 119 hits stored in this event ->>> Event: 46 - 93 hits stored in this event ->>> Event: 47 - 63 hits stored in this event ->>> Event: 48 - 129 hits stored in this event ->>> Event: 49 - 63 hits stored in this event ->>> Event: 50 - 69 hits stored in this event ->>> Event: 51 - 78 hits stored in this event ->>> Event: 52 - 838 hits stored in this event ->>> Event: 53 - 94 hits stored in this event ->>> Event: 54 - 57 hits stored in this event ->>> Event: 55 - 102 hits stored in this event ->>> Event: 56 - 1484 hits stored in this event ->>> Event: 57 - 170 hits stored in this event ->>> Event: 58 - 1211 hits stored in this event ->>> Event: 59 - 8976 hits stored in this event ->>> Event: 60 - 84 hits stored in this event ->>> Event: 61 - 72 hits stored in this event ->>> Event: 62 - 83 hits stored in this event ->>> Event: 63 - 79 hits stored in this event ->>> Event: 64 - 154 hits stored in this event ->>> Event: 65 - 518 hits stored in this event ->>> Event: 66 - 128 hits stored in this event ->>> Event: 67 - 84 hits stored in this event ->>> Event: 68 - 97 hits stored in this event ->>> Event: 69 - 66 hits stored in this event ->>> Event: 70 - 115 hits stored in this event ->>> Event: 71 - 158 hits stored in this event ->>> Event: 72 - 119 hits stored in this event ->>> Event: 73 - 82 hits stored in this event ->>> Event: 74 - 70 hits stored in this event ->>> Event: 75 - 97 hits stored in this event ->>> Event: 76 - 81 hits stored in this event ->>> Event: 77 - 92 hits stored in this event ->>> Event: 78 - 112 hits stored in this event ->>> Event: 79 - 167 hits stored in this event ->>> Event: 80 - 225 hits stored in this event ->>> Event: 81 - 382 hits stored in this event ->>> Event: 82 - 98 hits stored in this event ->>> Event: 83 - 276 hits stored in this event ->>> Event: 84 - 106 hits stored in this event ->>> Event: 85 - 470 hits stored in this event ->>> Event: 86 - 62 hits stored in this event ->>> Event: 87 - 110 hits stored in this event ->>> Event: 88 - 279 hits stored in this event ->>> Event: 89 - 115 hits stored in this event ->>> Event: 90 95 hits stored in this event ->>> Event: 91 - 198 hits stored in this event ->>> Event: 92 - 81 hits stored in this event ->>> Event: 93 - 460 hits stored in this event ->>> Event: 94 - 393 hits stored in this event ->>> Event: 95 - 123 hits stored in this event ->>> Event: 96 +>>> Event: 45 + 63 hits stored in this event +>>> Event: 46 + 70 hits stored in this event +>>> Event: 47 + 76 hits stored in this event +>>> Event: 48 + 61 hits stored in this event +>>> Event: 49 + 93 hits stored in this event +>>> Event: 50 + 67 hits stored in this event +>>> Event: 51 + 177 hits stored in this event +>>> Event: 52 + 79 hits stored in this event +>>> Event: 53 + 60 hits stored in this event +>>> Event: 54 + 133 hits stored in this event +>>> Event: 55 + 535 hits stored in this event +>>> Event: 56 + 105 hits stored in this event +>>> Event: 57 + 238 hits stored in this event +>>> Event: 58 + 600 hits stored in this event +>>> Event: 59 + 1923 hits stored in this event +>>> Event: 60 + 55 hits stored in this event +>>> Event: 61 + 180 hits stored in this event +>>> Event: 62 + 85 hits stored in this event +>>> Event: 63 + 225 hits stored in this event +>>> Event: 64 + 1523 hits stored in this event +>>> Event: 65 + 130 hits stored in this event +>>> Event: 66 + 78 hits stored in this event +>>> Event: 67 66 hits stored in this event +>>> Event: 68 + 109 hits stored in this event +>>> Event: 69 + 106 hits stored in this event +>>> Event: 70 + 80 hits stored in this event +>>> Event: 71 + 82 hits stored in this event +>>> Event: 72 + 58 hits stored in this event +>>> Event: 73 + 228 hits stored in this event +>>> Event: 74 + 71 hits stored in this event +>>> Event: 75 + 109 hits stored in this event +>>> Event: 76 + 124 hits stored in this event +>>> Event: 77 + 80 hits stored in this event +>>> Event: 78 + 441 hits stored in this event +>>> Event: 79 + 105 hits stored in this event +>>> Event: 80 + 124 hits stored in this event +>>> Event: 81 + 117 hits stored in this event +>>> Event: 82 + 116 hits stored in this event +>>> Event: 83 + 74 hits stored in this event +>>> Event: 84 + 135 hits stored in this event +>>> Event: 85 + 121 hits stored in this event +>>> Event: 86 + 94 hits stored in this event +>>> Event: 87 + 108 hits stored in this event +>>> Event: 88 + 161 hits stored in this event +>>> Event: 89 + 140 hits stored in this event +>>> Event: 90 + 57 hits stored in this event +>>> Event: 91 + 145 hits stored in this event +>>> Event: 92 + 61 hits stored in this event +>>> Event: 93 + 65 hits stored in this event +>>> Event: 94 + 111 hits stored in this event +>>> Event: 95 + 66 hits stored in this event +>>> Event: 96 + 110 hits stored in this event >>> Event: 97 - 159 hits stored in this event + 53 hits stored in this event >>> Event: 98 - 289 hits stored in this event + 349 hits stored in this event >>> Event: 99 - 1618 hits stored in this event + 59 hits stored in this event ### Run 2 starts. --> Event 0 starts. diff --git a/examples/basic/B2/B2a/include/ActionInitialization.hh b/examples/basic/B2/B2a/include/ActionInitialization.hh index c3b8a90c0d..56ff016fcd 100644 --- a/examples/basic/B2/B2a/include/ActionInitialization.hh +++ b/examples/basic/B2/B2a/include/ActionInitialization.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.hh +/// \file B2/B2a/include/ActionInitialization.hh /// \brief Definition of the B2::ActionInitialization class #ifndef B2ActionInitialization_h @@ -40,8 +40,8 @@ namespace B2 class ActionInitialization : public G4VUserActionInitialization { public: - ActionInitialization(); - ~ActionInitialization() override; + ActionInitialization() = default; + ~ActionInitialization() override = default; void BuildForMaster() const override; void Build() const override; diff --git a/examples/basic/B2/B2a/include/DetectorConstruction.hh b/examples/basic/B2/B2a/include/DetectorConstruction.hh index d09f996aeb..71f253c001 100644 --- a/examples/basic/B2/B2a/include/DetectorConstruction.hh +++ b/examples/basic/B2/B2a/include/DetectorConstruction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.hh +/// \file B2/B2a/include/DetectorConstruction.hh /// \brief Definition of the B2a::DetectorConstruction class #ifndef B2aDetectorConstruction_h diff --git a/examples/basic/B2/B2a/include/DetectorMessenger.hh b/examples/basic/B2/B2a/include/DetectorMessenger.hh index 9f526d0f84..2dde370b21 100644 --- a/examples/basic/B2/B2a/include/DetectorMessenger.hh +++ b/examples/basic/B2/B2a/include/DetectorMessenger.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorMessenger.hh +/// \file B2/B2a/include/DetectorMessenger.hh /// \brief Definition of the B2a::DetectorMessenger class #ifndef B2aDetectorMessenger_h diff --git a/examples/basic/B2/B2a/include/EventAction.hh b/examples/basic/B2/B2a/include/EventAction.hh index a557245477..fd1e073bbb 100644 --- a/examples/basic/B2/B2a/include/EventAction.hh +++ b/examples/basic/B2/B2a/include/EventAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.hh +/// \file B2/B2a/include/EventAction.hh /// \brief Definition of the B2::EventAction class #ifndef B2EventAction_h @@ -42,8 +42,8 @@ namespace B2 class EventAction : public G4UserEventAction { public: - EventAction(); - ~EventAction() override; + EventAction() = default; + ~EventAction() override = default; void BeginOfEventAction(const G4Event* ) override; void EndOfEventAction(const G4Event* ) override; diff --git a/examples/basic/B2/B2a/include/PrimaryGeneratorAction.hh b/examples/basic/B2/B2a/include/PrimaryGeneratorAction.hh index 9177a1c69d..bda7243dcb 100644 --- a/examples/basic/B2/B2a/include/PrimaryGeneratorAction.hh +++ b/examples/basic/B2/B2a/include/PrimaryGeneratorAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.hh +/// \file B2/B2a/include/PrimaryGeneratorAction.hh /// \brief Definition of the B2::PrimaryGeneratorAction class #ifndef B2PrimaryGeneratorAction_h diff --git a/examples/basic/B2/B2a/include/RunAction.hh b/examples/basic/B2/B2a/include/RunAction.hh index a6456e8acb..18ce074dad 100644 --- a/examples/basic/B2/B2a/include/RunAction.hh +++ b/examples/basic/B2/B2a/include/RunAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.hh +/// \file B2/B2a/include/RunAction.hh /// \brief Definition of the B2::RunAction class #ifndef B2RunAction_h @@ -44,7 +44,7 @@ class RunAction : public G4UserRunAction { public: RunAction(); - ~RunAction() override; + ~RunAction() override = default; void BeginOfRunAction(const G4Run* run) override; void EndOfRunAction(const G4Run* run) override; diff --git a/examples/basic/B2/B2a/include/TrackerHit.hh b/examples/basic/B2/B2a/include/TrackerHit.hh index 2ed28e9ca5..9af8143ae4 100644 --- a/examples/basic/B2/B2a/include/TrackerHit.hh +++ b/examples/basic/B2/B2a/include/TrackerHit.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file TrackerHit.hh +/// \file B2/B2a/include/TrackerHit.hh /// \brief Definition of the B2::TrackerHit class #ifndef B2TrackerHit_h @@ -48,9 +48,9 @@ namespace B2 class TrackerHit : public G4VHit { public: - TrackerHit(); + TrackerHit() = default; TrackerHit(const TrackerHit&) = default; - ~TrackerHit() override; + ~TrackerHit() override = default; // operators TrackerHit& operator=(const TrackerHit&) = default; @@ -84,7 +84,7 @@ class TrackerHit : public G4VHit //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -typedef G4THitsCollection TrackerHitsCollection; +using TrackerHitsCollection = G4THitsCollection; extern G4ThreadLocal G4Allocator* TrackerHitAllocator; diff --git a/examples/basic/B2/B2a/include/TrackerSD.hh b/examples/basic/B2/B2a/include/TrackerSD.hh index 096a8b81d4..91cafde930 100644 --- a/examples/basic/B2/B2a/include/TrackerSD.hh +++ b/examples/basic/B2/B2a/include/TrackerSD.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file TrackerSD.hh +/// \file B2/B2a/include/TrackerSD.hh /// \brief Definition of the B2::TrackerSD class #ifndef B2TrackerSD_h @@ -53,7 +53,7 @@ class TrackerSD : public G4VSensitiveDetector public: TrackerSD(const G4String& name, const G4String& hitsCollectionName); - ~TrackerSD() override; + ~TrackerSD() override = default; // methods from base class void Initialize(G4HCofThisEvent* hitCollection) override; diff --git a/examples/basic/B2/B2a/src/ActionInitialization.cc b/examples/basic/B2/B2a/src/ActionInitialization.cc index 165798aee4..54ee4ed2d1 100644 --- a/examples/basic/B2/B2a/src/ActionInitialization.cc +++ b/examples/basic/B2/B2a/src/ActionInitialization.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.cc +/// \file B2/B2a/src/ActionInitialization.cc /// \brief Implementation of the B2::ActionInitialization class #include "ActionInitialization.hh" @@ -37,16 +37,6 @@ namespace B2 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ActionInitialization::~ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ActionInitialization::BuildForMaster() const { SetUserAction(new RunAction); diff --git a/examples/basic/B2/B2a/src/DetectorConstruction.cc b/examples/basic/B2/B2a/src/DetectorConstruction.cc index de5d1326a3..42b2a579dc 100644 --- a/examples/basic/B2/B2a/src/DetectorConstruction.cc +++ b/examples/basic/B2/B2a/src/DetectorConstruction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.cc +/// \file B2/B2a/src/DetectorConstruction.cc /// \brief Implementation of the B2a::DetectorConstruction class #include "DetectorConstruction.hh" @@ -142,44 +142,37 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() << G4GeometryTolerance::GetInstance()->GetSurfaceTolerance()/mm << " mm" << G4endl; - G4Box* worldS - = new G4Box("world", //its name - worldLength/2,worldLength/2,worldLength/2); //its size - G4LogicalVolume* worldLV - = new G4LogicalVolume( - worldS, //its solid - air, //its material - "World"); //its name + auto worldS = new G4Box("world", // its name + worldLength / 2, worldLength / 2, worldLength / 2); // its size + auto worldLV = new G4LogicalVolume(worldS, // its solid + air, // its material + "World"); // its name // Must place the World Physical volume unrotated at (0,0,0). // - G4VPhysicalVolume* worldPV - = new G4PVPlacement( - 0, // no rotation - G4ThreeVector(), // at (0,0,0) - worldLV, // its logical volume - "World", // its name - 0, // its mother volume - false, // no boolean operations - 0, // copy number - fCheckOverlaps); // checking overlaps + auto worldPV = new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + worldLV, // its logical volume + "World", // its name + nullptr, // its mother volume + false, // no boolean operations + 0, // copy number + fCheckOverlaps); // checking overlaps // Target G4ThreeVector positionTarget = G4ThreeVector(0,0,-(targetLength+trackerSize)); - G4Tubs* targetS - = new G4Tubs("target",0.,targetRadius,targetLength,0.*deg,360.*deg); - fLogicTarget - = new G4LogicalVolume(targetS, fTargetMaterial,"Target",0,0,0); - new G4PVPlacement(0, // no rotation - positionTarget, // at (x,y,z) - fLogicTarget, // its logical volume - "Target", // its name - worldLV, // its mother volume - false, // no boolean operations - 0, // copy number - fCheckOverlaps); // checking overlaps + auto targetS = new G4Tubs("target", 0., targetRadius, targetLength, 0. * deg, 360. * deg); + fLogicTarget = new G4LogicalVolume(targetS, fTargetMaterial, "Target", nullptr, nullptr, nullptr); + new G4PVPlacement(nullptr, // no rotation + positionTarget, // at (x,y,z) + fLogicTarget, // its logical volume + "Target", // its name + worldLV, // its mother volume + false, // no boolean operations + 0, // copy number + fCheckOverlaps); // checking overlaps G4cout << "Target is " << 2*targetLength/cm << " cm of " << fTargetMaterial->GetName() << G4endl; @@ -188,23 +181,21 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() G4ThreeVector positionTracker = G4ThreeVector(0,0,0); - G4Tubs* trackerS - = new G4Tubs("tracker",0,trackerSize,trackerSize, 0.*deg, 360.*deg); - G4LogicalVolume* trackerLV - = new G4LogicalVolume(trackerS, air, "Tracker",0,0,0); - new G4PVPlacement(0, // no rotation - positionTracker, // at (x,y,z) - trackerLV, // its logical volume - "Tracker", // its name - worldLV, // its mother volume - false, // no boolean operations - 0, // copy number - fCheckOverlaps); // checking overlaps + auto trackerS = new G4Tubs("tracker", 0, trackerSize, trackerSize, 0. * deg, 360. * deg); + auto trackerLV = new G4LogicalVolume(trackerS, air, "Tracker", nullptr, nullptr, nullptr); + new G4PVPlacement(nullptr, // no rotation + positionTracker, // at (x,y,z) + trackerLV, // its logical volume + "Tracker", // its name + worldLV, // its mother volume + false, // no boolean operations + 0, // copy number + fCheckOverlaps); // checking overlaps // Visualization attributes - G4VisAttributes* boxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); - G4VisAttributes* chamberVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); + auto boxVisAtt = new G4VisAttributes(G4Colour(1.0, 1.0, 1.0)); + auto chamberVisAtt = new G4VisAttributes(G4Colour(1.0, 1.0, 0.0)); worldLV ->SetVisAttributes(boxVisAtt); fLogicTarget ->SetVisAttributes(boxVisAtt); @@ -241,23 +232,21 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() G4double Zposition = firstPosition + copyNo * chamberSpacing; G4double rmax = rmaxFirst + copyNo * rmaxIncr; - G4Tubs* chamberS - = new G4Tubs("Chamber_solid", 0, rmax, halfWidth, 0.*deg, 360.*deg); + auto chamberS = new G4Tubs("Chamber_solid", 0, rmax, halfWidth, 0. * deg, 360. * deg); fLogicChamber[copyNo] = - new G4LogicalVolume(chamberS,fChamberMaterial,"Chamber_LV",0,0,0); + new G4LogicalVolume(chamberS, fChamberMaterial, "Chamber_LV", nullptr, nullptr, nullptr); fLogicChamber[copyNo]->SetVisAttributes(chamberVisAtt); - new G4PVPlacement(0, // no rotation - G4ThreeVector(0,0,Zposition), // at (x,y,z) - fLogicChamber[copyNo], // its logical volume - "Chamber_PV", // its name - trackerLV, // its mother volume - false, // no boolean operations - copyNo, // copy number - fCheckOverlaps); // checking overlaps - + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(0, 0, Zposition), // at (x,y,z) + fLogicChamber[copyNo], // its logical volume + "Chamber_PV", // its name + trackerLV, // its mother volume + false, // no boolean operations + copyNo, // copy number + fCheckOverlaps); // checking overlaps } // Example of User Limits @@ -291,8 +280,7 @@ void DetectorConstruction::ConstructSDandField() // Sensitive detectors G4String trackerChamberSDname = "/TrackerChamberSD"; - TrackerSD* aTrackerSD = new TrackerSD(trackerChamberSDname, - "TrackerHitsCollection"); + auto aTrackerSD = new TrackerSD(trackerChamberSDname, "TrackerHitsCollection"); G4SDManager::GetSDMpointer()->AddNewDetector(aTrackerSD); // Setting aTrackerSD to all logical volumes with the same name // of "Chamber_LV". diff --git a/examples/basic/B2/B2a/src/DetectorMessenger.cc b/examples/basic/B2/B2a/src/DetectorMessenger.cc index 124e6c7b33..7ab864f211 100644 --- a/examples/basic/B2/B2a/src/DetectorMessenger.cc +++ b/examples/basic/B2/B2a/src/DetectorMessenger.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorMessenger.cc +/// \file B2/B2a/src/DetectorMessenger.cc /// \brief Implementation of the B2a::DetectorMessenger class #include "DetectorMessenger.hh" diff --git a/examples/basic/B2/B2a/src/EventAction.cc b/examples/basic/B2/B2a/src/EventAction.cc index d8480a8190..f74f6a0c8e 100644 --- a/examples/basic/B2/B2a/src/EventAction.cc +++ b/examples/basic/B2/B2a/src/EventAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.cc +/// \file B2/B2a/src/EventAction.cc /// \brief Implementation of the B2::EventAction class #include "EventAction.hh" @@ -40,16 +40,6 @@ namespace B2 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::EventAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -EventAction::~EventAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void EventAction::BeginOfEventAction(const G4Event*) {} diff --git a/examples/basic/B2/B2a/src/PrimaryGeneratorAction.cc b/examples/basic/B2/B2a/src/PrimaryGeneratorAction.cc index b45b4a1f93..bb87b9b08e 100644 --- a/examples/basic/B2/B2a/src/PrimaryGeneratorAction.cc +++ b/examples/basic/B2/B2a/src/PrimaryGeneratorAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.cc +/// \file B2/B2a/src/PrimaryGeneratorAction.cc /// \brief Implementation of the B2::PrimaryGeneratorAction class #include "PrimaryGeneratorAction.hh" diff --git a/examples/basic/B2/B2a/src/RunAction.cc b/examples/basic/B2/B2a/src/RunAction.cc index 13e881d4c0..2e5ce1002c 100644 --- a/examples/basic/B2/B2a/src/RunAction.cc +++ b/examples/basic/B2/B2a/src/RunAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.cc +/// \file B2/B2a/src/RunAction.cc /// \brief Implementation of the B2::RunAction class #include "RunAction.hh" @@ -45,11 +45,6 @@ RunAction::RunAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::~RunAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void RunAction::BeginOfRunAction(const G4Run*) { //inform the runManager to save random number seed diff --git a/examples/basic/B2/B2a/src/TrackerHit.cc b/examples/basic/B2/B2a/src/TrackerHit.cc index c2b90b6e6c..dfe8cd00d0 100644 --- a/examples/basic/B2/B2a/src/TrackerHit.cc +++ b/examples/basic/B2/B2a/src/TrackerHit.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file TrackerHit.cc +/// \file B2/B2a/src/TrackerHit.cc /// \brief Implementation of the B2::TrackerHit class #include "TrackerHit.hh" @@ -43,15 +43,6 @@ G4ThreadLocal G4Allocator* TrackerHitAllocator = nullptr; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -TrackerHit::TrackerHit() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -TrackerHit::~TrackerHit() {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4bool TrackerHit::operator==(const TrackerHit& right) const { return ( this == &right ) ? true : false; diff --git a/examples/basic/B2/B2a/src/TrackerSD.cc b/examples/basic/B2/B2a/src/TrackerSD.cc index fafeeb7c88..cb405a4750 100644 --- a/examples/basic/B2/B2a/src/TrackerSD.cc +++ b/examples/basic/B2/B2a/src/TrackerSD.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file TrackerSD.cc +/// \file B2/B2a/src/TrackerSD.cc /// \brief Implementation of the B2::TrackerSD class #include "TrackerSD.hh" @@ -48,11 +48,6 @@ TrackerSD::TrackerSD(const G4String& name, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -TrackerSD::~TrackerSD() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void TrackerSD::Initialize(G4HCofThisEvent* hce) { // Create hits collection @@ -77,7 +72,7 @@ G4bool TrackerSD::ProcessHits(G4Step* aStep, if (edep==0.) return false; - TrackerHit* newHit = new TrackerHit(); + auto newHit = new TrackerHit(); newHit->SetTrackID (aStep->GetTrack()->GetTrackID()); newHit->SetChamberNb(aStep->GetPreStepPoint()->GetTouchableHandle() diff --git a/examples/basic/B2/B2b/exampleB2b.out b/examples/basic/B2/B2b/exampleB2b.out index 5769fb37ff..71e789a9a2 100644 --- a/examples/basic/B2/B2b/exampleB2b.out +++ b/examples/basic/B2/B2b/exampleB2b.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -158,6 +160,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -185,7 +188,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -236,8 +239,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -719,6 +722,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -995,7 +1003,7 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 3 0 hits stored in this event >>> Event: 4 - 0 hits stored in this event + 32 hits stored in this event >>> Event: 5 0 hits stored in this event >>> Event: 6 @@ -1005,9 +1013,9 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 8 0 hits stored in this event >>> Event: 9 - 0 hits stored in this event + 41 hits stored in this event >>> Event: 10 - 33 hits stored in this event + 63 hits stored in this event >>> Event: 11 0 hits stored in this event >>> Event: 12 @@ -1017,7 +1025,7 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 14 0 hits stored in this event >>> Event: 15 - 0 hits stored in this event + 10 hits stored in this event >>> Event: 16 0 hits stored in this event >>> Event: 17 @@ -1031,15 +1039,15 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 21 0 hits stored in this event >>> Event: 22 - 80 hits stored in this event + 0 hits stored in this event >>> Event: 23 0 hits stored in this event >>> Event: 24 - 0 hits stored in this event + 85 hits stored in this event >>> Event: 25 0 hits stored in this event >>> Event: 26 - 246 hits stored in this event + 82 hits stored in this event >>> Event: 27 0 hits stored in this event >>> Event: 28 @@ -1047,7 +1055,7 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 29 0 hits stored in this event >>> Event: 30 - 3 hits stored in this event + 0 hits stored in this event >>> Event: 31 0 hits stored in this event >>> Event: 32 @@ -1055,7 +1063,7 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 33 0 hits stored in this event >>> Event: 34 - 0 hits stored in this event + 73 hits stored in this event >>> Event: 35 0 hits stored in this event >>> Event: 36 @@ -1073,9 +1081,9 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 42 0 hits stored in this event >>> Event: 43 - 0 hits stored in this event + 100 hits stored in this event >>> Event: 44 - 31 hits stored in this event + 0 hits stored in this event >>> Event: 45 0 hits stored in this event >>> Event: 46 @@ -1083,15 +1091,15 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 47 0 hits stored in this event >>> Event: 48 - 65 hits stored in this event + 0 hits stored in this event >>> Event: 49 - 10 hits stored in this event + 0 hits stored in this event >>> Event: 50 0 hits stored in this event >>> Event: 51 0 hits stored in this event >>> Event: 52 - 108 hits stored in this event + 12 hits stored in this event >>> Event: 53 0 hits stored in this event >>> Event: 54 @@ -1101,7 +1109,7 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 56 0 hits stored in this event >>> Event: 57 - 139 hits stored in this event + 0 hits stored in this event >>> Event: 58 0 hits stored in this event >>> Event: 59 @@ -1109,13 +1117,13 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 60 0 hits stored in this event >>> Event: 61 - 13 hits stored in this event + 0 hits stored in this event >>> Event: 62 0 hits stored in this event >>> Event: 63 0 hits stored in this event >>> Event: 64 - 13 hits stored in this event + 0 hits stored in this event >>> Event: 65 0 hits stored in this event >>> Event: 66 @@ -1125,23 +1133,23 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 68 0 hits stored in this event >>> Event: 69 - 0 hits stored in this event + 160 hits stored in this event >>> Event: 70 - 85 hits stored in this event + 0 hits stored in this event >>> Event: 71 - 126 hits stored in this event + 0 hits stored in this event >>> Event: 72 0 hits stored in this event >>> Event: 73 0 hits stored in this event >>> Event: 74 - 226 hits stored in this event + 170 hits stored in this event >>> Event: 75 0 hits stored in this event >>> Event: 76 - 0 hits stored in this event + 55 hits stored in this event >>> Event: 77 - 0 hits stored in this event + 21 hits stored in this event >>> Event: 78 0 hits stored in this event >>> Event: 79 @@ -1155,9 +1163,9 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 83 0 hits stored in this event >>> Event: 84 - 0 hits stored in this event + 70 hits stored in this event >>> Event: 85 - 12 hits stored in this event + 0 hits stored in this event >>> Event: 86 0 hits stored in this event >>> Event: 87 @@ -1167,7 +1175,7 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 89 0 hits stored in this event >>> Event: 90 - 34 hits stored in this event + 0 hits stored in this event >>> Event: 91 0 hits stored in this event >>> Event: 92 @@ -1177,9 +1185,9 @@ See commands in /vis/modeling/trajectories/ for other options. >>> Event: 94 0 hits stored in this event >>> Event: 95 - 0 hits stored in this event + 8 hits stored in this event >>> Event: 96 - 0 hits stored in this event + 7 hits stored in this event >>> Event: 97 0 hits stored in this event >>> Event: 98 @@ -1189,205 +1197,205 @@ See commands in /vis/modeling/trajectories/ for other options. ### Run 1 starts. --> Event 0 starts. >>> Event: 0 - 292 hits stored in this event + 93 hits stored in this event >>> Event: 1 - 141 hits stored in this event + 89 hits stored in this event >>> Event: 2 - 108 hits stored in this event + 123 hits stored in this event >>> Event: 3 - 291 hits stored in this event + 520 hits stored in this event >>> Event: 4 - 116 hits stored in this event + 172 hits stored in this event >>> Event: 5 - 80 hits stored in this event + 162 hits stored in this event >>> Event: 6 - 135 hits stored in this event + 156 hits stored in this event >>> Event: 7 - 66 hits stored in this event ->>> Event: 8 - 219 hits stored in this event ->>> Event: 9 - 117 hits stored in this event ->>> Event: 10 - 62 hits stored in this event ->>> Event: 11 - 547 hits stored in this event ->>> Event: 12 - 364 hits stored in this event ->>> Event: 13 - 990 hits stored in this event ->>> Event: 14 - 2138 hits stored in this event ->>> Event: 15 - 116 hits stored in this event ->>> Event: 16 - 1627 hits stored in this event ->>> Event: 17 - 1717 hits stored in this event ->>> Event: 18 58 hits stored in this event +>>> Event: 8 + 99 hits stored in this event +>>> Event: 9 + 69 hits stored in this event +>>> Event: 10 + 66 hits stored in this event +>>> Event: 11 + 201 hits stored in this event +>>> Event: 12 + 112 hits stored in this event +>>> Event: 13 + 111 hits stored in this event +>>> Event: 14 + 619 hits stored in this event +>>> Event: 15 + 209 hits stored in this event +>>> Event: 16 + 338 hits stored in this event +>>> Event: 17 + 67 hits stored in this event +>>> Event: 18 + 130 hits stored in this event >>> Event: 19 - 346 hits stored in this event + 557 hits stored in this event >>> Event: 20 - 75 hits stored in this event + 100 hits stored in this event >>> Event: 21 - 850 hits stored in this event + 732 hits stored in this event >>> Event: 22 - 59 hits stored in this event + 98 hits stored in this event >>> Event: 23 - 1096 hits stored in this event + 158 hits stored in this event >>> Event: 24 - 78 hits stored in this event + 85 hits stored in this event >>> Event: 25 - 488 hits stored in this event ->>> Event: 26 90 hits stored in this event +>>> Event: 26 + 194 hits stored in this event >>> Event: 27 - 479 hits stored in this event + 139 hits stored in this event >>> Event: 28 - 86 hits stored in this event ->>> Event: 29 - 222 hits stored in this event ->>> Event: 30 71 hits stored in this event +>>> Event: 29 + 155 hits stored in this event +>>> Event: 30 + 50 hits stored in this event >>> Event: 31 - 81 hits stored in this event + 217 hits stored in this event >>> Event: 32 - 65 hits stored in this event + 129 hits stored in this event >>> Event: 33 - 138 hits stored in this event + 57 hits stored in this event >>> Event: 34 - 73 hits stored in this event + 68 hits stored in this event >>> Event: 35 - 95 hits stored in this event + 58 hits stored in this event >>> Event: 36 - 64 hits stored in this event + 46 hits stored in this event >>> Event: 37 - 52 hits stored in this event + 94 hits stored in this event >>> Event: 38 - 102 hits stored in this event + 99 hits stored in this event >>> Event: 39 - 63 hits stored in this event + 657 hits stored in this event >>> Event: 40 - 125 hits stored in this event + 68 hits stored in this event >>> Event: 41 88 hits stored in this event >>> Event: 42 - 532 hits stored in this event ->>> Event: 43 - 107 hits stored in this event ->>> Event: 44 - 349 hits stored in this event ->>> Event: 45 49 hits stored in this event +>>> Event: 43 + 77 hits stored in this event +>>> Event: 44 + 409 hits stored in this event +>>> Event: 45 + 155 hits stored in this event >>> Event: 46 - 91 hits stored in this event + 115 hits stored in this event >>> Event: 47 - 47 hits stored in this event + 132 hits stored in this event >>> Event: 48 - 79 hits stored in this event + 582 hits stored in this event >>> Event: 49 - 206 hits stored in this event + 62 hits stored in this event >>> Event: 50 - 67 hits stored in this event + 77 hits stored in this event >>> Event: 51 - 45 hits stored in this event + 92 hits stored in this event >>> Event: 52 - 78 hits stored in this event + 75 hits stored in this event >>> Event: 53 - 3204 hits stored in this event ->>> Event: 54 - 99 hits stored in this event ->>> Event: 55 - 101 hits stored in this event ->>> Event: 56 - 69 hits stored in this event ->>> Event: 57 - 115 hits stored in this event ->>> Event: 58 - 112 hits stored in this event ->>> Event: 59 - 159 hits stored in this event ->>> Event: 60 - 194 hits stored in this event ->>> Event: 61 - 78 hits stored in this event ->>> Event: 62 - 308 hits stored in this event ->>> Event: 63 - 83 hits stored in this event ->>> Event: 64 - 118 hits stored in this event ->>> Event: 65 - 3220 hits stored in this event ->>> Event: 66 - 113 hits stored in this event ->>> Event: 67 - 3635 hits stored in this event ->>> Event: 68 - 393 hits stored in this event ->>> Event: 69 - 163 hits stored in this event ->>> Event: 70 - 216 hits stored in this event ->>> Event: 71 - 114 hits stored in this event ->>> Event: 72 - 130 hits stored in this event ->>> Event: 73 - 123 hits stored in this event ->>> Event: 74 - 142 hits stored in this event ->>> Event: 75 - 134 hits stored in this event ->>> Event: 76 - 81 hits stored in this event ->>> Event: 77 - 128 hits stored in this event ->>> Event: 78 - 48 hits stored in this event ->>> Event: 79 - 90 hits stored in this event ->>> Event: 80 - 153 hits stored in this event ->>> Event: 81 - 115 hits stored in this event ->>> Event: 82 - 181 hits stored in this event ->>> Event: 83 - 63 hits stored in this event ->>> Event: 84 - 64 hits stored in this event ->>> Event: 85 - 116 hits stored in this event ->>> Event: 86 - 61 hits stored in this event ->>> Event: 87 - 175 hits stored in this event ->>> Event: 88 - 55 hits stored in this event ->>> Event: 89 - 70 hits stored in this event ->>> Event: 90 140 hits stored in this event ->>> Event: 91 - 810 hits stored in this event ->>> Event: 92 +>>> Event: 54 + 231 hits stored in this event +>>> Event: 55 + 92 hits stored in this event +>>> Event: 56 + 207 hits stored in this event +>>> Event: 57 108 hits stored in this event +>>> Event: 58 + 105 hits stored in this event +>>> Event: 59 + 54 hits stored in this event +>>> Event: 60 + 86 hits stored in this event +>>> Event: 61 + 79 hits stored in this event +>>> Event: 62 + 498 hits stored in this event +>>> Event: 63 + 184 hits stored in this event +>>> Event: 64 + 63 hits stored in this event +>>> Event: 65 + 158 hits stored in this event +>>> Event: 66 + 69 hits stored in this event +>>> Event: 67 + 166 hits stored in this event +>>> Event: 68 + 116 hits stored in this event +>>> Event: 69 + 1574 hits stored in this event +>>> Event: 70 + 75 hits stored in this event +>>> Event: 71 + 949 hits stored in this event +>>> Event: 72 + 319 hits stored in this event +>>> Event: 73 + 61 hits stored in this event +>>> Event: 74 + 72 hits stored in this event +>>> Event: 75 + 148 hits stored in this event +>>> Event: 76 + 83 hits stored in this event +>>> Event: 77 + 71 hits stored in this event +>>> Event: 78 + 78 hits stored in this event +>>> Event: 79 + 125 hits stored in this event +>>> Event: 80 + 66 hits stored in this event +>>> Event: 81 + 86 hits stored in this event +>>> Event: 82 + 96 hits stored in this event +>>> Event: 83 + 66 hits stored in this event +>>> Event: 84 + 79 hits stored in this event +>>> Event: 85 + 96 hits stored in this event +>>> Event: 86 + 94 hits stored in this event +>>> Event: 87 + 213 hits stored in this event +>>> Event: 88 + 91 hits stored in this event +>>> Event: 89 + 63 hits stored in this event +>>> Event: 90 + 63 hits stored in this event +>>> Event: 91 + 82 hits stored in this event +>>> Event: 92 + 371 hits stored in this event >>> Event: 93 - 241 hits stored in this event + 165 hits stored in this event >>> Event: 94 - 70 hits stored in this event + 84 hits stored in this event >>> Event: 95 - 141 hits stored in this event + 86 hits stored in this event >>> Event: 96 - 156 hits stored in this event + 61 hits stored in this event >>> Event: 97 - 750 hits stored in this event + 176 hits stored in this event >>> Event: 98 - 114 hits stored in this event + 361 hits stored in this event >>> Event: 99 - 128 hits stored in this event + 108 hits stored in this event ### Run 2 starts. --> Event 0 starts. diff --git a/examples/basic/B2/B2b/include/ActionInitialization.hh b/examples/basic/B2/B2b/include/ActionInitialization.hh index c3b8a90c0d..c3dc9c58eb 100644 --- a/examples/basic/B2/B2b/include/ActionInitialization.hh +++ b/examples/basic/B2/B2b/include/ActionInitialization.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.hh +/// \file B2/B2b/include/ActionInitialization.hh /// \brief Definition of the B2::ActionInitialization class #ifndef B2ActionInitialization_h @@ -40,8 +40,8 @@ namespace B2 class ActionInitialization : public G4VUserActionInitialization { public: - ActionInitialization(); - ~ActionInitialization() override; + ActionInitialization() = default; + ~ActionInitialization() override = default; void BuildForMaster() const override; void Build() const override; diff --git a/examples/basic/B2/B2b/include/ChamberParameterisation.hh b/examples/basic/B2/B2b/include/ChamberParameterisation.hh index cab4c7b368..bc65d46250 100644 --- a/examples/basic/B2/B2b/include/ChamberParameterisation.hh +++ b/examples/basic/B2/B2b/include/ChamberParameterisation.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ChamberParameterisation.hh +/// \file B2/B2b/include/ChamberParameterisation.hh /// \brief Definition of the B2b::ChamberParameterisation class #ifndef B2bChamberParameterisation_h @@ -69,7 +69,7 @@ class ChamberParameterisation : public G4VPVParameterisation G4double lengthInitial, G4double lengthFinal ); - ~ChamberParameterisation() override; + ~ChamberParameterisation() override = default; void ComputeTransformation (const G4int copyNo, G4VPhysicalVolume* physVol) const override; diff --git a/examples/basic/B2/B2b/include/DetectorConstruction.hh b/examples/basic/B2/B2b/include/DetectorConstruction.hh index 94b32d24ee..2d7c604ac8 100644 --- a/examples/basic/B2/B2b/include/DetectorConstruction.hh +++ b/examples/basic/B2/B2b/include/DetectorConstruction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.hh +/// \file B2/B2b/include/DetectorConstruction.hh /// \brief Definition of the B2b::DetectorConstruction class #ifndef B2bDetectorConstruction_h diff --git a/examples/basic/B2/B2b/include/DetectorMessenger.hh b/examples/basic/B2/B2b/include/DetectorMessenger.hh index 40a47488a5..99a0e2f84a 100644 --- a/examples/basic/B2/B2b/include/DetectorMessenger.hh +++ b/examples/basic/B2/B2b/include/DetectorMessenger.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorMessenger.hh +/// \file B2/B2b/include/DetectorMessenger.hh /// \brief Definition of the B2b::DetectorMessenger class #ifndef B2bDetectorMessenger_h diff --git a/examples/basic/B2/B2b/include/EventAction.hh b/examples/basic/B2/B2b/include/EventAction.hh index a557245477..651b2af7d4 100644 --- a/examples/basic/B2/B2b/include/EventAction.hh +++ b/examples/basic/B2/B2b/include/EventAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.hh +/// \file B2/B2b/include/EventAction.hh /// \brief Definition of the B2::EventAction class #ifndef B2EventAction_h @@ -42,8 +42,8 @@ namespace B2 class EventAction : public G4UserEventAction { public: - EventAction(); - ~EventAction() override; + EventAction() = default; + ~EventAction() override = default; void BeginOfEventAction(const G4Event* ) override; void EndOfEventAction(const G4Event* ) override; diff --git a/examples/basic/B2/B2b/include/PrimaryGeneratorAction.hh b/examples/basic/B2/B2b/include/PrimaryGeneratorAction.hh index 9177a1c69d..746586d894 100644 --- a/examples/basic/B2/B2b/include/PrimaryGeneratorAction.hh +++ b/examples/basic/B2/B2b/include/PrimaryGeneratorAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.hh +/// \file B2/B2b/include/PrimaryGeneratorAction.hh /// \brief Definition of the B2::PrimaryGeneratorAction class #ifndef B2PrimaryGeneratorAction_h diff --git a/examples/basic/B2/B2b/include/RunAction.hh b/examples/basic/B2/B2b/include/RunAction.hh index a6456e8acb..8f0eb90754 100644 --- a/examples/basic/B2/B2b/include/RunAction.hh +++ b/examples/basic/B2/B2b/include/RunAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.hh +/// \file B2/B2b/include/RunAction.hh /// \brief Definition of the B2::RunAction class #ifndef B2RunAction_h @@ -44,7 +44,7 @@ class RunAction : public G4UserRunAction { public: RunAction(); - ~RunAction() override; + ~RunAction() override = default; void BeginOfRunAction(const G4Run* run) override; void EndOfRunAction(const G4Run* run) override; diff --git a/examples/basic/B2/B2b/include/TrackerHit.hh b/examples/basic/B2/B2b/include/TrackerHit.hh index 2ed28e9ca5..4a1e60520e 100644 --- a/examples/basic/B2/B2b/include/TrackerHit.hh +++ b/examples/basic/B2/B2b/include/TrackerHit.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file TrackerHit.hh +/// \file B2/B2b/include/TrackerHit.hh /// \brief Definition of the B2::TrackerHit class #ifndef B2TrackerHit_h @@ -48,9 +48,9 @@ namespace B2 class TrackerHit : public G4VHit { public: - TrackerHit(); + TrackerHit() = default; TrackerHit(const TrackerHit&) = default; - ~TrackerHit() override; + ~TrackerHit() override = default; // operators TrackerHit& operator=(const TrackerHit&) = default; @@ -84,7 +84,7 @@ class TrackerHit : public G4VHit //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -typedef G4THitsCollection TrackerHitsCollection; +using TrackerHitsCollection = G4THitsCollection; extern G4ThreadLocal G4Allocator* TrackerHitAllocator; diff --git a/examples/basic/B2/B2b/include/TrackerSD.hh b/examples/basic/B2/B2b/include/TrackerSD.hh index 096a8b81d4..ec1e622d90 100644 --- a/examples/basic/B2/B2b/include/TrackerSD.hh +++ b/examples/basic/B2/B2b/include/TrackerSD.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file TrackerSD.hh +/// \file B2/B2b/include/TrackerSD.hh /// \brief Definition of the B2::TrackerSD class #ifndef B2TrackerSD_h @@ -53,7 +53,7 @@ class TrackerSD : public G4VSensitiveDetector public: TrackerSD(const G4String& name, const G4String& hitsCollectionName); - ~TrackerSD() override; + ~TrackerSD() override = default; // methods from base class void Initialize(G4HCofThisEvent* hitCollection) override; diff --git a/examples/basic/B2/B2b/src/ActionInitialization.cc b/examples/basic/B2/B2b/src/ActionInitialization.cc index 165798aee4..93bb44966f 100644 --- a/examples/basic/B2/B2b/src/ActionInitialization.cc +++ b/examples/basic/B2/B2b/src/ActionInitialization.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.cc +/// \file B2/B2b/src/ActionInitialization.cc /// \brief Implementation of the B2::ActionInitialization class #include "ActionInitialization.hh" @@ -37,16 +37,6 @@ namespace B2 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ActionInitialization::~ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ActionInitialization::BuildForMaster() const { SetUserAction(new RunAction); diff --git a/examples/basic/B2/B2b/src/ChamberParameterisation.cc b/examples/basic/B2/B2b/src/ChamberParameterisation.cc index d1aa10c0c5..17378b26c5 100644 --- a/examples/basic/B2/B2b/src/ChamberParameterisation.cc +++ b/examples/basic/B2/B2b/src/ChamberParameterisation.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ChamberParameterisation.cc +/// \file B2/B2b/src/ChamberParameterisation.cc /// \brief Implementation of the B2b::ChamberParameterisation class #include "ChamberParameterisation.hh" @@ -64,11 +64,6 @@ ChamberParameterisation::ChamberParameterisation( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ChamberParameterisation::~ChamberParameterisation() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ChamberParameterisation::ComputeTransformation (const G4int copyNo, G4VPhysicalVolume* physVol) const { diff --git a/examples/basic/B2/B2b/src/DetectorConstruction.cc b/examples/basic/B2/B2b/src/DetectorConstruction.cc index acb82d493e..c4308a73be 100644 --- a/examples/basic/B2/B2b/src/DetectorConstruction.cc +++ b/examples/basic/B2/B2b/src/DetectorConstruction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.cc +/// \file B2/B2b/src/DetectorConstruction.cc /// \brief Implementation of the B2b::DetectorConstruction class #include "DetectorConstruction.hh" @@ -141,44 +141,37 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() << G4GeometryTolerance::GetInstance()->GetSurfaceTolerance()/mm << " mm" << G4endl; - G4Box* worldS - = new G4Box("world", //its name - worldLength/2,worldLength/2,worldLength/2); //its size - G4LogicalVolume* worldLV - = new G4LogicalVolume( - worldS, //its solid - air, //its material - "World"); //its name + auto worldS = new G4Box("world", // its name + worldLength / 2, worldLength / 2, worldLength / 2); // its size + auto worldLV = new G4LogicalVolume(worldS, // its solid + air, // its material + "World"); // its name // Must place the World Physical volume unrotated at (0,0,0). // - G4VPhysicalVolume* worldPV - = new G4PVPlacement( - 0, // no rotation - G4ThreeVector(), // at (0,0,0) - worldLV, // its logical volume - "World", // its name - 0, // its mother volume - false, // no boolean operations - 0, // copy number - fCheckOverlaps); // checking overlaps + auto worldPV = new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + worldLV, // its logical volume + "World", // its name + nullptr, // its mother volume + false, // no boolean operations + 0, // copy number + fCheckOverlaps); // checking overlaps // Target G4ThreeVector positionTarget = G4ThreeVector(0,0,-(targetLength+trackerSize)); - G4Tubs* targetS - = new G4Tubs("target",0.,targetRadius,targetLength,0.*deg,360.*deg); - fLogicTarget - = new G4LogicalVolume(targetS, fTargetMaterial,"Target",0,0,0); - new G4PVPlacement(0, // no rotation - positionTarget, // at (x,y,z) - fLogicTarget, // its logical volume - "Target", // its name - worldLV, // its mother volume - false, // no boolean operations - 0, // copy number - fCheckOverlaps); // checking overlaps + auto targetS = new G4Tubs("target", 0., targetRadius, targetLength, 0. * deg, 360. * deg); + fLogicTarget = new G4LogicalVolume(targetS, fTargetMaterial, "Target", nullptr, nullptr, nullptr); + new G4PVPlacement(nullptr, // no rotation + positionTarget, // at (x,y,z) + fLogicTarget, // its logical volume + "Target", // its name + worldLV, // its mother volume + false, // no boolean operations + 0, // copy number + fCheckOverlaps); // checking overlaps G4cout << "Target is " << 2*targetLength/cm << " cm of " << fTargetMaterial->GetName() << G4endl; @@ -187,28 +180,25 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() G4ThreeVector positionTracker = G4ThreeVector(0,0,0); - G4Tubs* trackerS - = new G4Tubs("tracker",0,trackerSize,trackerSize, 0.*deg, 360.*deg); - G4LogicalVolume* trackerLV - = new G4LogicalVolume(trackerS, air, "Tracker",0,0,0); - new G4PVPlacement(0, // no rotation - positionTracker, // at (x,y,z) - trackerLV, // its logical volume - "Tracker", // its name - worldLV, // its mother volume - false, // no boolean operations - 0, // copy number - fCheckOverlaps); // checking overlaps + auto trackerS = new G4Tubs("tracker", 0, trackerSize, trackerSize, 0. * deg, 360. * deg); + auto trackerLV = new G4LogicalVolume(trackerS, air, "Tracker", nullptr, nullptr, nullptr); + new G4PVPlacement(nullptr, // no rotation + positionTracker, // at (x,y,z) + trackerLV, // its logical volume + "Tracker", // its name + worldLV, // its mother volume + false, // no boolean operations + 0, // copy number + fCheckOverlaps); // checking overlaps // Tracker segments // An example of Parameterised volumes // Dummy values for G4Tubs -- modified by parameterised volume - G4Tubs* chamberS - = new G4Tubs("tracker",0, 100*cm, 100*cm, 0.*deg, 360.*deg); - fLogicChamber - = new G4LogicalVolume(chamberS,fChamberMaterial,"Chamber",0,0,0); + auto chamberS = new G4Tubs("tracker", 0, 100 * cm, 100 * cm, 0. * deg, 360. * deg); + fLogicChamber = + new G4LogicalVolume(chamberS, fChamberMaterial, "Chamber", nullptr, nullptr, nullptr); G4double firstPosition = -trackerSize + chamberSpacing; G4double firstLength = trackerLength/10; @@ -242,12 +232,12 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() // Visualization attributes - G4VisAttributes* boxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + auto boxVisAtt = new G4VisAttributes(G4Colour(1.0, 1.0, 1.0)); worldLV ->SetVisAttributes(boxVisAtt); fLogicTarget ->SetVisAttributes(boxVisAtt); trackerLV ->SetVisAttributes(boxVisAtt); - G4VisAttributes* chamberVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); + auto chamberVisAtt = new G4VisAttributes(G4Colour(1.0, 1.0, 0.0)); fLogicChamber->SetVisAttributes(chamberVisAtt); // Example of User Limits @@ -281,8 +271,7 @@ void DetectorConstruction::ConstructSDandField() // Sensitive detectors G4String trackerChamberSDname = "B2/TrackerChamberSD"; - TrackerSD* aTrackerSD = new TrackerSD(trackerChamberSDname, - "TrackerHitsCollection"); + auto aTrackerSD = new TrackerSD(trackerChamberSDname, "TrackerHitsCollection"); G4SDManager::GetSDMpointer()->AddNewDetector(aTrackerSD); SetSensitiveDetector( fLogicChamber, aTrackerSD ); diff --git a/examples/basic/B2/B2b/src/DetectorMessenger.cc b/examples/basic/B2/B2b/src/DetectorMessenger.cc index da186a44b6..cd2ec4b900 100644 --- a/examples/basic/B2/B2b/src/DetectorMessenger.cc +++ b/examples/basic/B2/B2b/src/DetectorMessenger.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorMessenger.cc +/// \file B2/B2b/src/DetectorMessenger.cc /// \brief Implementation of the B2b::DetectorMessenger class #include "DetectorMessenger.hh" diff --git a/examples/basic/B2/B2b/src/EventAction.cc b/examples/basic/B2/B2b/src/EventAction.cc index d8480a8190..40bc85d73f 100644 --- a/examples/basic/B2/B2b/src/EventAction.cc +++ b/examples/basic/B2/B2b/src/EventAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.cc +/// \file B2/B2b/src/EventAction.cc /// \brief Implementation of the B2::EventAction class #include "EventAction.hh" @@ -40,16 +40,6 @@ namespace B2 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::EventAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -EventAction::~EventAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void EventAction::BeginOfEventAction(const G4Event*) {} diff --git a/examples/basic/B2/B2b/src/PrimaryGeneratorAction.cc b/examples/basic/B2/B2b/src/PrimaryGeneratorAction.cc index b45b4a1f93..162f0d06d7 100644 --- a/examples/basic/B2/B2b/src/PrimaryGeneratorAction.cc +++ b/examples/basic/B2/B2b/src/PrimaryGeneratorAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.cc +/// \file B2/B2b/src/PrimaryGeneratorAction.cc /// \brief Implementation of the B2::PrimaryGeneratorAction class #include "PrimaryGeneratorAction.hh" diff --git a/examples/basic/B2/B2b/src/RunAction.cc b/examples/basic/B2/B2b/src/RunAction.cc index 13e881d4c0..5c095466ad 100644 --- a/examples/basic/B2/B2b/src/RunAction.cc +++ b/examples/basic/B2/B2b/src/RunAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.cc +/// \file B2/B2b/src/RunAction.cc /// \brief Implementation of the B2::RunAction class #include "RunAction.hh" @@ -45,11 +45,6 @@ RunAction::RunAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::~RunAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void RunAction::BeginOfRunAction(const G4Run*) { //inform the runManager to save random number seed diff --git a/examples/basic/B2/B2b/src/TrackerHit.cc b/examples/basic/B2/B2b/src/TrackerHit.cc index c2b90b6e6c..660b400088 100644 --- a/examples/basic/B2/B2b/src/TrackerHit.cc +++ b/examples/basic/B2/B2b/src/TrackerHit.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file TrackerHit.cc +/// \file B2/B2b/src/TrackerHit.cc /// \brief Implementation of the B2::TrackerHit class #include "TrackerHit.hh" @@ -43,15 +43,6 @@ G4ThreadLocal G4Allocator* TrackerHitAllocator = nullptr; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -TrackerHit::TrackerHit() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -TrackerHit::~TrackerHit() {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4bool TrackerHit::operator==(const TrackerHit& right) const { return ( this == &right ) ? true : false; diff --git a/examples/basic/B2/B2b/src/TrackerSD.cc b/examples/basic/B2/B2b/src/TrackerSD.cc index fafeeb7c88..37337de954 100644 --- a/examples/basic/B2/B2b/src/TrackerSD.cc +++ b/examples/basic/B2/B2b/src/TrackerSD.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file TrackerSD.cc +/// \file B2/B2b/src/TrackerSD.cc /// \brief Implementation of the B2::TrackerSD class #include "TrackerSD.hh" @@ -48,11 +48,6 @@ TrackerSD::TrackerSD(const G4String& name, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -TrackerSD::~TrackerSD() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void TrackerSD::Initialize(G4HCofThisEvent* hce) { // Create hits collection @@ -77,7 +72,7 @@ G4bool TrackerSD::ProcessHits(G4Step* aStep, if (edep==0.) return false; - TrackerHit* newHit = new TrackerHit(); + auto newHit = new TrackerHit(); newHit->SetTrackID (aStep->GetTrack()->GetTrackID()); newHit->SetChamberNb(aStep->GetPreStepPoint()->GetTouchableHandle() diff --git a/examples/basic/B3/B3a/exampleB3a.cc b/examples/basic/B3/B3a/exampleB3a.cc index 69ca580a20..5fdc5e44d6 100644 --- a/examples/basic/B3/B3a/exampleB3a.cc +++ b/examples/basic/B3/B3a/exampleB3a.cc @@ -85,11 +85,15 @@ int main(int argc,char** argv) G4UImanager* UImanager = G4UImanager::GetUIpointer(); // Activate score ntuple writer - // The Root output type (Root) is selected in B3Analysis.hh. // The verbose level can be also set via UI commands // /score/ntuple/writerVerbose level + // The default file type ("root") can be changed in xml, csv, hdf5 + // scoreNtupleWriter.SetDefaultFileType("xml"); G4TScoreNtupleWriter scoreNtupleWriter; scoreNtupleWriter.SetVerboseLevel(1); + scoreNtupleWriter.SetNtupleMerging(true); + // Note: merging ntuples is available only with Root output + // (the default in G4TScoreNtupleWriter) // Process macro or start UI session // diff --git a/examples/basic/B3/B3a/exampleB3a.out b/examples/basic/B3/B3a/exampleB3a.out index 0a5d07e275..24dc90f746 100644 --- a/examples/basic/B3/B3a/exampleB3a.out +++ b/examples/basic/B3/B3a/exampleB3a.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -31,6 +31,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -233,6 +235,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -260,7 +263,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -296,8 +299,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -327,8 +329,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -440,10 +442,11 @@ ionIoni: for GenericIon XStype:3 SubType=2 ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 1.4427 us -Max life time (from G4DeexPrecoParameters) 1.4427 us +min MeanLife (from G4NuclideTable) 1 ns +Max life time (from G4DeexPrecoParameters) 1000 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -694,6 +697,15 @@ G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. ### Run 0 starts. ### Run 0 start. + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4RootNtupleFileManager::SetNtupleMergingMode +Merging ntuples is not applicable in sequential application. +Setting was ignored. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + ... set ntuple merging row mode : row-wise - done ... create file : scoring.root - done ... open analysis file : scoring.root - done @@ -710,8 +722,8 @@ See commands in /vis/modeling/trajectories/ for other options. --> Event 9000 starts. --------------------End of Global Run----------------------- - The run was 10000 events Nb of 'good' e+ annihilations: 1252 - Total dose in patient : 303.22 picoGy + The run was 10000 events Nb of 'good' e+ annihilations: 1300 + Total dose in patient : 303.614 picoGy ------------------------------------------------------------ ... write file : scoring.root - done diff --git a/examples/basic/B3/B3a/include/ActionInitialization.hh b/examples/basic/B3/B3a/include/ActionInitialization.hh index 31413e58a0..a6545666e5 100644 --- a/examples/basic/B3/B3a/include/ActionInitialization.hh +++ b/examples/basic/B3/B3a/include/ActionInitialization.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.hh +/// \file B3/B3a/include/ActionInitialization.hh /// \brief Definition of the B3a::ActionInitialization class #ifndef B3aActionInitialization_h @@ -42,8 +42,8 @@ namespace B3a class ActionInitialization : public G4VUserActionInitialization { public: - ActionInitialization(); - ~ActionInitialization() override; + ActionInitialization() = default; + ~ActionInitialization() override = default; void BuildForMaster() const override; void Build() const override; diff --git a/examples/basic/B3/B3a/include/DetectorConstruction.hh b/examples/basic/B3/B3a/include/DetectorConstruction.hh index 05f16a3963..a44f023aca 100644 --- a/examples/basic/B3/B3a/include/DetectorConstruction.hh +++ b/examples/basic/B3/B3a/include/DetectorConstruction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.hh +/// \file B3/B3a/include/DetectorConstruction.hh /// \brief Definition of the B3::DetectorConstruction class #ifndef B3DetectorConstruction_h @@ -48,7 +48,7 @@ class DetectorConstruction : public G4VUserDetectorConstruction { public: DetectorConstruction(); - ~DetectorConstruction() override; + ~DetectorConstruction() override = default; public: G4VPhysicalVolume* Construct() override; diff --git a/examples/basic/B3/B3a/include/EventAction.hh b/examples/basic/B3/B3a/include/EventAction.hh index 92f998e17a..9d9c963c8a 100644 --- a/examples/basic/B3/B3a/include/EventAction.hh +++ b/examples/basic/B3/B3a/include/EventAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.hh +/// \file B3/B3a/include/EventAction.hh /// \brief Definition of the B3a::EventAction class #ifndef B3aEventAction_h @@ -48,7 +48,7 @@ class EventAction : public G4UserEventAction { public: EventAction(RunAction* runAction); - ~EventAction() override; + ~EventAction() override = default; void BeginOfEventAction(const G4Event*) override; void EndOfEventAction(const G4Event*) override; diff --git a/examples/basic/B3/B3a/include/PhysicsList.hh b/examples/basic/B3/B3a/include/PhysicsList.hh index 30075efe26..4208f37f63 100644 --- a/examples/basic/B3/B3a/include/PhysicsList.hh +++ b/examples/basic/B3/B3a/include/PhysicsList.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PhysicsList.hh +/// \file B3/B3a/include/PhysicsList.hh /// \brief Definition of the B3::PhysicsList class #ifndef B3PhysicsList_h @@ -46,7 +46,7 @@ class PhysicsList: public G4VModularPhysicsList { public: PhysicsList(); - ~PhysicsList() override; + ~PhysicsList() override = default; void SetCuts() override; }; diff --git a/examples/basic/B3/B3a/include/PrimaryGeneratorAction.hh b/examples/basic/B3/B3a/include/PrimaryGeneratorAction.hh index b0439f8440..ce90045af7 100644 --- a/examples/basic/B3/B3a/include/PrimaryGeneratorAction.hh +++ b/examples/basic/B3/B3a/include/PrimaryGeneratorAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.hh +/// \file B3/B3a/include/PrimaryGeneratorAction.hh /// \brief Definition of the B3::PrimaryGeneratorAction class #ifndef B3PrimaryGeneratorAction_h diff --git a/examples/basic/B3/B3a/include/RunAction.hh b/examples/basic/B3/B3a/include/RunAction.hh index 016b42508a..ecd6006055 100644 --- a/examples/basic/B3/B3a/include/RunAction.hh +++ b/examples/basic/B3/B3a/include/RunAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.hh +/// \file B3/B3a/include/RunAction.hh /// \brief Definition of the B3a::RunAction class #ifndef B3aRunAction_h @@ -43,7 +43,7 @@ class RunAction : public G4UserRunAction { public: RunAction(); - ~RunAction() override; + ~RunAction() override = default; void BeginOfRunAction(const G4Run*) override; void EndOfRunAction(const G4Run*) override; diff --git a/examples/basic/B3/B3a/include/StackingAction.hh b/examples/basic/B3/B3a/include/StackingAction.hh index 4a62c579db..7fb9390efc 100644 --- a/examples/basic/B3/B3a/include/StackingAction.hh +++ b/examples/basic/B3/B3a/include/StackingAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file StackingAction.hh +/// \file B3/B3a/include/StackingAction.hh /// \brief Definition of the B3::StackingAction class #ifndef B3StackingAction_h @@ -44,8 +44,8 @@ namespace B3 class StackingAction : public G4UserStackingAction { public: - StackingAction(); - ~StackingAction() override; + StackingAction() = default; + ~StackingAction() override = default; G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track*) override; }; diff --git a/examples/basic/B3/B3a/run2.mac b/examples/basic/B3/B3a/run2.mac index 3cbd41758e..b2d7b694f2 100644 --- a/examples/basic/B3/B3a/run2.mac +++ b/examples/basic/B3/B3a/run2.mac @@ -4,6 +4,8 @@ # % exampleB3 run3.mac # #/run/numberOfThreads 4 +#/control/cout/ignoreThreadsExcept 0 +# /run/initialize # /control/verbose 2 diff --git a/examples/basic/B3/B3a/src/ActionInitialization.cc b/examples/basic/B3/B3a/src/ActionInitialization.cc index e892c8222e..7958ed5c9b 100644 --- a/examples/basic/B3/B3a/src/ActionInitialization.cc +++ b/examples/basic/B3/B3a/src/ActionInitialization.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.cc +/// \file B3/B3a/src/ActionInitialization.cc /// \brief Implementation of the B3a::ActionInitialization class #include "ActionInitialization.hh" @@ -40,16 +40,6 @@ namespace B3a //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ActionInitialization::~ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ActionInitialization::BuildForMaster() const { SetUserAction(new RunAction); @@ -59,7 +49,7 @@ void ActionInitialization::BuildForMaster() const void ActionInitialization::Build() const { - RunAction* runAction = new RunAction(); + auto runAction = new RunAction(); SetUserAction(runAction); SetUserAction(new EventAction(runAction)); diff --git a/examples/basic/B3/B3a/src/DetectorConstruction.cc b/examples/basic/B3/B3a/src/DetectorConstruction.cc index 317f905f37..e049693d01 100644 --- a/examples/basic/B3/B3a/src/DetectorConstruction.cc +++ b/examples/basic/B3/B3a/src/DetectorConstruction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.cc +/// \file B3/B3a/src/DetectorConstruction.cc /// \brief Implementation of the B3::DetectorConstruction class #include "DetectorConstruction.hh" @@ -57,11 +57,6 @@ DetectorConstruction::DetectorConstruction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -DetectorConstruction::~DetectorConstruction() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void DetectorConstruction::DefineMaterials() { G4NistManager* man = G4NistManager::Instance(); @@ -72,7 +67,7 @@ void DetectorConstruction::DefineMaterials() G4Element* Si = man->FindOrBuildElement("Si", isotopes); G4Element* Lu = man->FindOrBuildElement("Lu", isotopes); - G4Material* LSO = new G4Material("Lu2SiO5", 7.4*g/cm3, 3); + auto LSO = new G4Material("Lu2SiO5", 7.4 * g / cm3, 3); LSO->AddElement(Lu, 2); LSO->AddElement(Si, 1); LSO->AddElement(O , 5); @@ -107,47 +102,41 @@ G4VPhysicalVolume* DetectorConstruction::Construct() G4double world_sizeXY = 2.4*ring_R2; G4double world_sizeZ = 1.2*detector_dZ; - G4Box* solidWorld = - new G4Box("World", //its name - 0.5*world_sizeXY, 0.5*world_sizeXY, 0.5*world_sizeZ); //its size + auto solidWorld = new G4Box("World", // its name + 0.5 * world_sizeXY, 0.5 * world_sizeXY, 0.5 * world_sizeZ); // its size - G4LogicalVolume* logicWorld = - new G4LogicalVolume(solidWorld, //its solid - default_mat, //its material - "World"); //its name + auto logicWorld = new G4LogicalVolume(solidWorld, // its solid + default_mat, // its material + "World"); // its name - G4VPhysicalVolume* physWorld = - new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - logicWorld, //its logical volume - "World", //its name - 0, //its mother volume - false, //no boolean operation - 0, //copy number - fCheckOverlaps); // checking overlaps + auto physWorld = new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + logicWorld, // its logical volume + "World", // its name + nullptr, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // ring // - G4Tubs* solidRing = - new G4Tubs("Ring", ring_R1, ring_R2, 0.5*cryst_dX, 0., twopi); + auto solidRing = new G4Tubs("Ring", ring_R1, ring_R2, 0.5 * cryst_dX, 0., twopi); - G4LogicalVolume* logicRing = - new G4LogicalVolume(solidRing, //its solid - default_mat, //its material - "Ring"); //its name + auto logicRing = new G4LogicalVolume(solidRing, // its solid + default_mat, // its material + "Ring"); // its name // // define crystal // G4double gap = 0.5*mm; //a gap for wrapping G4double dX = cryst_dX - gap, dY = cryst_dY - gap; - G4Box* solidCryst = new G4Box("crystal", dX/2, dY/2, cryst_dZ/2); + auto solidCryst = new G4Box("crystal", dX / 2, dY / 2, cryst_dZ / 2); - G4LogicalVolume* logicCryst = - new G4LogicalVolume(solidCryst, //its solid - cryst_mat, //its material - "CrystalLV"); //its name + auto logicCryst = new G4LogicalVolume(solidCryst, // its solid + cryst_mat, // its material + "CrystalLV"); // its name // place crystals within a ring // @@ -172,13 +161,11 @@ G4VPhysicalVolume* DetectorConstruction::Construct() // // full detector // - G4Tubs* solidDetector = - new G4Tubs("Detector", ring_R1, ring_R2, 0.5*detector_dZ, 0., twopi); + auto solidDetector = new G4Tubs("Detector", ring_R1, ring_R2, 0.5 * detector_dZ, 0., twopi); - G4LogicalVolume* logicDetector = - new G4LogicalVolume(solidDetector, //its solid - default_mat, //its material - "Detector"); //its name + auto logicDetector = new G4LogicalVolume(solidDetector, // its solid + default_mat, // its material + "Detector"); // its name // // place rings within detector @@ -186,27 +173,27 @@ G4VPhysicalVolume* DetectorConstruction::Construct() G4double OG = -0.5*(detector_dZ + cryst_dX); for (G4int iring = 0; iring < nb_rings ; iring++) { OG += cryst_dX; - new G4PVPlacement(0, //no rotation - G4ThreeVector(0,0,OG), //position - logicRing, //its logical volume - "ring", //its name - logicDetector, //its mother volume - false, //no boolean operation - iring, //copy number - fCheckOverlaps); // checking overlaps + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(0, 0, OG), // position + logicRing, // its logical volume + "ring", // its name + logicDetector, // its mother volume + false, // no boolean operation + iring, // copy number + fCheckOverlaps); // checking overlaps } // // place detector in world // - new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - logicDetector, //its logical volume - "Detector", //its name - logicWorld, //its mother volume - false, //no boolean operation - 0, //copy number - fCheckOverlaps); // checking overlaps + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + logicDetector, // its logical volume + "Detector", // its name + logicWorld, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // patient @@ -215,25 +202,23 @@ G4VPhysicalVolume* DetectorConstruction::Construct() G4double patient_dZ = 10*cm; G4Material* patient_mat = nist->FindOrBuildMaterial("G4_BRAIN_ICRP"); - G4Tubs* solidPatient = - new G4Tubs("Patient", 0., patient_radius, 0.5*patient_dZ, 0., twopi); + auto solidPatient = new G4Tubs("Patient", 0., patient_radius, 0.5 * patient_dZ, 0., twopi); - G4LogicalVolume* logicPatient = - new G4LogicalVolume(solidPatient, //its solid - patient_mat, //its material - "PatientLV"); //its name + auto logicPatient = new G4LogicalVolume(solidPatient, // its solid + patient_mat, // its material + "PatientLV"); // its name // // place patient in world // - new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - logicPatient, //its logical volume - "Patient", //its name - logicWorld, //its mother volume - false, //no boolean operation - 0, //copy number - fCheckOverlaps); // checking overlaps + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + logicPatient, // its logical volume + "Patient", // its name + logicWorld, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // Visualization attributes // @@ -256,7 +241,7 @@ void DetectorConstruction::ConstructSDandField() // declare crystal as a MultiFunctionalDetector scorer // - G4MultiFunctionalDetector* cryst = new G4MultiFunctionalDetector("crystal"); + auto cryst = new G4MultiFunctionalDetector("crystal"); G4SDManager::GetSDMpointer()->AddNewDetector(cryst); G4VPrimitiveScorer* primitiv1 = new G4PSEnergyDeposit("edep"); cryst->RegisterPrimitive(primitiv1); @@ -264,7 +249,7 @@ void DetectorConstruction::ConstructSDandField() // declare patient as a MultiFunctionalDetector scorer // - G4MultiFunctionalDetector* patient = new G4MultiFunctionalDetector("patient"); + auto patient = new G4MultiFunctionalDetector("patient"); G4SDManager::GetSDMpointer()->AddNewDetector(patient); G4VPrimitiveScorer* primitiv2 = new G4PSDoseDeposit("dose"); patient->RegisterPrimitive(primitiv2); diff --git a/examples/basic/B3/B3a/src/EventAction.cc b/examples/basic/B3/B3a/src/EventAction.cc index 3fd6d96cab..6042916cfa 100644 --- a/examples/basic/B3/B3a/src/EventAction.cc +++ b/examples/basic/B3/B3a/src/EventAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.cc +/// \file B3/B3a/src/EventAction.cc /// \brief Implementation of the B3a::EventAction class #include "EventAction.hh" @@ -50,11 +50,6 @@ EventAction::EventAction(RunAction* runAction) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::~EventAction() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void EventAction::BeginOfEventAction(const G4Event* /*evt*/) { } @@ -79,8 +74,7 @@ void EventAction::EndOfEventAction(const G4Event* evt ) const G4double eThreshold = 500*keV; G4int nbOfFired = 0; - G4THitsMap* evtMap = - (G4THitsMap*)(HCE->GetHC(fCollID_cryst)); + auto evtMap = (G4THitsMap*)(HCE->GetHC(fCollID_cryst)); std::map::iterator itr; for (itr = evtMap->GetMap()->begin(); itr != evtMap->GetMap()->end(); itr++) { diff --git a/examples/basic/B3/B3a/src/PhysicsList.cc b/examples/basic/B3/B3a/src/PhysicsList.cc index c3070f8470..eeeaa83e76 100644 --- a/examples/basic/B3/B3a/src/PhysicsList.cc +++ b/examples/basic/B3/B3a/src/PhysicsList.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PhysicsList.cc +/// \file B3/B3a/src/PhysicsList.cc /// \brief Implementation of the B3::PhysicsList class #include "PhysicsList.hh" @@ -54,12 +54,6 @@ PhysicsList::PhysicsList() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PhysicsList::~PhysicsList() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void PhysicsList::SetCuts() { G4VUserPhysicsList::SetCuts(); diff --git a/examples/basic/B3/B3a/src/PrimaryGeneratorAction.cc b/examples/basic/B3/B3a/src/PrimaryGeneratorAction.cc index e7f9b1dba4..0ebbb361a4 100644 --- a/examples/basic/B3/B3a/src/PrimaryGeneratorAction.cc +++ b/examples/basic/B3/B3a/src/PrimaryGeneratorAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.cc +/// \file B3/B3a/src/PrimaryGeneratorAction.cc /// \brief Implementation of the B3::PrimaryGeneratorAction class #include "PrimaryGeneratorAction.hh" diff --git a/examples/basic/B3/B3a/src/RunAction.cc b/examples/basic/B3/B3a/src/RunAction.cc index 17eefca023..753d9f88b4 100644 --- a/examples/basic/B3/B3a/src/RunAction.cc +++ b/examples/basic/B3/B3a/src/RunAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.cc +/// \file B3/B3a/src/RunAction.cc /// \brief Implementation of the B3a::RunAction class #include "RunAction.hh" @@ -65,11 +65,6 @@ RunAction::RunAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::~RunAction() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void RunAction::BeginOfRunAction(const G4Run* run) { G4cout << "### Run " << run->GetRunID() << " start." << G4endl; @@ -96,9 +91,8 @@ void RunAction::EndOfRunAction(const G4Run* run) // Run conditions // note: There is no primary generator action object for "master" // run manager for multi-threaded mode. - const PrimaryGeneratorAction* generatorAction - = static_cast( - G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction()); + const auto generatorAction = static_cast( + G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction()); G4String partName; if (generatorAction) { diff --git a/examples/basic/B3/B3a/src/StackingAction.cc b/examples/basic/B3/B3a/src/StackingAction.cc index 53bc9fb404..a9feff3814 100644 --- a/examples/basic/B3/B3a/src/StackingAction.cc +++ b/examples/basic/B3/B3a/src/StackingAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file StackingAction.cc +/// \file B3/B3a/src/StackingAction.cc /// \brief Implementation of the B3::StackingAction class #include "StackingAction.hh" @@ -37,16 +37,6 @@ namespace B3 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -StackingAction::StackingAction() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -StackingAction::~StackingAction() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4ClassificationOfNewTrack StackingAction::ClassifyNewTrack(const G4Track* track) { diff --git a/examples/basic/B3/B3b/exampleB3b.cc b/examples/basic/B3/B3b/exampleB3b.cc index d7e2f9c9e3..17ea47d165 100644 --- a/examples/basic/B3/B3b/exampleB3b.cc +++ b/examples/basic/B3/B3b/exampleB3b.cc @@ -87,10 +87,13 @@ int main(int argc,char** argv) // Activate score ntuple writer // The verbose level can be also set via UI commands // /score/ntuple/writerVerbose level - G4TScoreNtupleWriter scoreNtupleWriter; - scoreNtupleWriter.SetVerboseLevel(1); // The default file type ("root") can be changed in xml, csv, hdf5 // scoreNtupleWriter.SetDefaultFileType("xml"); + G4TScoreNtupleWriter scoreNtupleWriter; + scoreNtupleWriter.SetVerboseLevel(1); + scoreNtupleWriter.SetNtupleMerging(true); + // Note: merging ntuples is available only with Root output + // (the default in G4TScoreNtupleWriter) // Process macro or start UI session // diff --git a/examples/basic/B3/B3b/exampleB3b.out b/examples/basic/B3/B3b/exampleB3b.out index 47f60d9208..76568d08cb 100644 --- a/examples/basic/B3/B3b/exampleB3b.out +++ b/examples/basic/B3/B3b/exampleB3b.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -31,6 +31,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -233,6 +235,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -260,7 +263,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -296,8 +299,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -327,8 +329,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -440,10 +442,11 @@ ionIoni: for GenericIon XStype:3 SubType=2 ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 1.4427 us -Max life time (from G4DeexPrecoParameters) 1.4427 us +min MeanLife (from G4NuclideTable) 1 ns +Max life time (from G4DeexPrecoParameters) 1000 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -694,6 +697,15 @@ G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. ### Run 0 starts. ### Run 0 start. + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4RootNtupleFileManager::SetNtupleMergingMode +Merging ntuples is not applicable in sequential application. +Setting was ignored. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + ... set ntuple merging row mode : row-wise - done ... create file : scoring.root - done ... open analysis file : scoring.root - done @@ -712,9 +724,9 @@ See commands in /vis/modeling/trajectories/ for other options. --> Event 9000 starts. --------------------End of Global Run----------------------- - The run was 10000 events Nb of 'good' e+ annihilations: 1252 - Total dose in patient : 303.22 picoGy - Total dose in patient : 3.0322e-10 [sigma: 1.74327e-14 | error: 0.0057492 | coeff: 0.0057492 | eff: 1 | fom: 30254.2 | r2int: 3.30499e-05 | r2eff: 0 | hits: 10000 ] Gy + The run was 10000 events Nb of 'good' e+ annihilations: 1300 + Total dose in patient : 303.614 picoGy + Total dose in patient : 3.03614e-10 [sigma: 1.73139e-14 | error: 0.0057026 | coeff: 0.0057026 | eff: 1 | fom: 30750.7 | r2int: 3.25164e-05 | r2eff: 0 | hits: 10000 ] Gy ------------------------------------------------------------ ... write file : scoring.root - done diff --git a/examples/basic/B3/B3b/include/ActionInitialization.hh b/examples/basic/B3/B3b/include/ActionInitialization.hh index 394696a278..da6cb4b9e7 100644 --- a/examples/basic/B3/B3b/include/ActionInitialization.hh +++ b/examples/basic/B3/B3b/include/ActionInitialization.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.hh +/// \file B3/B3b/include/ActionInitialization.hh /// \brief Definition of the B3b::ActionInitialization class #ifndef B3bActionInitialization_h @@ -42,8 +42,8 @@ namespace B3b class ActionInitialization : public G4VUserActionInitialization { public: - ActionInitialization(); - ~ActionInitialization() override; + ActionInitialization() = default; + ~ActionInitialization() override = default; void BuildForMaster() const override; void Build() const override; diff --git a/examples/basic/B3/B3b/include/DetectorConstruction.hh b/examples/basic/B3/B3b/include/DetectorConstruction.hh index 05f16a3963..2f02f94748 100644 --- a/examples/basic/B3/B3b/include/DetectorConstruction.hh +++ b/examples/basic/B3/B3b/include/DetectorConstruction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.hh +/// \file B3/B3b/include/DetectorConstruction.hh /// \brief Definition of the B3::DetectorConstruction class #ifndef B3DetectorConstruction_h @@ -48,7 +48,7 @@ class DetectorConstruction : public G4VUserDetectorConstruction { public: DetectorConstruction(); - ~DetectorConstruction() override; + ~DetectorConstruction() override = default; public: G4VPhysicalVolume* Construct() override; diff --git a/examples/basic/B3/B3b/include/PhysicsList.hh b/examples/basic/B3/B3b/include/PhysicsList.hh index 30075efe26..b2529f4126 100644 --- a/examples/basic/B3/B3b/include/PhysicsList.hh +++ b/examples/basic/B3/B3b/include/PhysicsList.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PhysicsList.hh +/// \file B3/B3b/include/PhysicsList.hh /// \brief Definition of the B3::PhysicsList class #ifndef B3PhysicsList_h @@ -46,7 +46,7 @@ class PhysicsList: public G4VModularPhysicsList { public: PhysicsList(); - ~PhysicsList() override; + ~PhysicsList() override = default; void SetCuts() override; }; diff --git a/examples/basic/B3/B3b/include/PrimaryGeneratorAction.hh b/examples/basic/B3/B3b/include/PrimaryGeneratorAction.hh index b0439f8440..75cb277a66 100644 --- a/examples/basic/B3/B3b/include/PrimaryGeneratorAction.hh +++ b/examples/basic/B3/B3b/include/PrimaryGeneratorAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.hh +/// \file B3/B3b/include/PrimaryGeneratorAction.hh /// \brief Definition of the B3::PrimaryGeneratorAction class #ifndef B3PrimaryGeneratorAction_h diff --git a/examples/basic/B3/B3b/include/Run.hh b/examples/basic/B3/B3b/include/Run.hh index 3ab6e4e034..29a58c60d1 100644 --- a/examples/basic/B3/B3b/include/Run.hh +++ b/examples/basic/B3/B3b/include/Run.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file Run.hh +/// \file B3/B3b/include/Run.hh /// \brief Definition of the B3b::Run class #ifndef B3bRun_h @@ -45,8 +45,8 @@ namespace B3b class Run : public G4Run { public: - Run(); - ~Run() override; + Run() = default; + ~Run() override = default; void RecordEvent(const G4Event*) override; void Merge(const G4Run*) override; diff --git a/examples/basic/B3/B3b/include/RunAction.hh b/examples/basic/B3/B3b/include/RunAction.hh index 9d27530e43..32582e949d 100644 --- a/examples/basic/B3/B3b/include/RunAction.hh +++ b/examples/basic/B3/B3b/include/RunAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.hh +/// \file B3/B3b/include/RunAction.hh /// \brief Definition of the B3b::RunAction class #ifndef B3bRunAction_h @@ -44,7 +44,7 @@ class RunAction : public G4UserRunAction { public: RunAction(); - ~RunAction() override; + ~RunAction() override = default; G4Run* GenerateRun() override; void BeginOfRunAction(const G4Run*) override; diff --git a/examples/basic/B3/B3b/include/StackingAction.hh b/examples/basic/B3/B3b/include/StackingAction.hh index 4a62c579db..dc7cb661fb 100644 --- a/examples/basic/B3/B3b/include/StackingAction.hh +++ b/examples/basic/B3/B3b/include/StackingAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file StackingAction.hh +/// \file B3/B3b/include/StackingAction.hh /// \brief Definition of the B3::StackingAction class #ifndef B3StackingAction_h @@ -44,8 +44,8 @@ namespace B3 class StackingAction : public G4UserStackingAction { public: - StackingAction(); - ~StackingAction() override; + StackingAction() = default; + ~StackingAction() override = default; G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track*) override; }; diff --git a/examples/basic/B3/B3b/run2.mac b/examples/basic/B3/B3b/run2.mac index 3cbd41758e..b2d7b694f2 100644 --- a/examples/basic/B3/B3b/run2.mac +++ b/examples/basic/B3/B3b/run2.mac @@ -4,6 +4,8 @@ # % exampleB3 run3.mac # #/run/numberOfThreads 4 +#/control/cout/ignoreThreadsExcept 0 +# /run/initialize # /control/verbose 2 diff --git a/examples/basic/B3/B3b/src/ActionInitialization.cc b/examples/basic/B3/B3b/src/ActionInitialization.cc index 7c123ff37b..c68ec9bc21 100644 --- a/examples/basic/B3/B3b/src/ActionInitialization.cc +++ b/examples/basic/B3/B3b/src/ActionInitialization.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.cc +/// \file B3/B3b/src/ActionInitialization.cc /// \brief Implementation of the B3b::ActionInitialization class #include "ActionInitialization.hh" @@ -39,16 +39,6 @@ namespace B3b //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ActionInitialization::~ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ActionInitialization::BuildForMaster() const { SetUserAction(new RunAction); diff --git a/examples/basic/B3/B3b/src/DetectorConstruction.cc b/examples/basic/B3/B3b/src/DetectorConstruction.cc index 317f905f37..481bad1787 100644 --- a/examples/basic/B3/B3b/src/DetectorConstruction.cc +++ b/examples/basic/B3/B3b/src/DetectorConstruction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.cc +/// \file B3/B3b/src/DetectorConstruction.cc /// \brief Implementation of the B3::DetectorConstruction class #include "DetectorConstruction.hh" @@ -57,11 +57,6 @@ DetectorConstruction::DetectorConstruction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -DetectorConstruction::~DetectorConstruction() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void DetectorConstruction::DefineMaterials() { G4NistManager* man = G4NistManager::Instance(); @@ -72,7 +67,7 @@ void DetectorConstruction::DefineMaterials() G4Element* Si = man->FindOrBuildElement("Si", isotopes); G4Element* Lu = man->FindOrBuildElement("Lu", isotopes); - G4Material* LSO = new G4Material("Lu2SiO5", 7.4*g/cm3, 3); + auto LSO = new G4Material("Lu2SiO5", 7.4 * g / cm3, 3); LSO->AddElement(Lu, 2); LSO->AddElement(Si, 1); LSO->AddElement(O , 5); @@ -107,47 +102,41 @@ G4VPhysicalVolume* DetectorConstruction::Construct() G4double world_sizeXY = 2.4*ring_R2; G4double world_sizeZ = 1.2*detector_dZ; - G4Box* solidWorld = - new G4Box("World", //its name - 0.5*world_sizeXY, 0.5*world_sizeXY, 0.5*world_sizeZ); //its size + auto solidWorld = new G4Box("World", // its name + 0.5 * world_sizeXY, 0.5 * world_sizeXY, 0.5 * world_sizeZ); // its size - G4LogicalVolume* logicWorld = - new G4LogicalVolume(solidWorld, //its solid - default_mat, //its material - "World"); //its name + auto logicWorld = new G4LogicalVolume(solidWorld, // its solid + default_mat, // its material + "World"); // its name - G4VPhysicalVolume* physWorld = - new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - logicWorld, //its logical volume - "World", //its name - 0, //its mother volume - false, //no boolean operation - 0, //copy number - fCheckOverlaps); // checking overlaps + auto physWorld = new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + logicWorld, // its logical volume + "World", // its name + nullptr, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // ring // - G4Tubs* solidRing = - new G4Tubs("Ring", ring_R1, ring_R2, 0.5*cryst_dX, 0., twopi); + auto solidRing = new G4Tubs("Ring", ring_R1, ring_R2, 0.5 * cryst_dX, 0., twopi); - G4LogicalVolume* logicRing = - new G4LogicalVolume(solidRing, //its solid - default_mat, //its material - "Ring"); //its name + auto logicRing = new G4LogicalVolume(solidRing, // its solid + default_mat, // its material + "Ring"); // its name // // define crystal // G4double gap = 0.5*mm; //a gap for wrapping G4double dX = cryst_dX - gap, dY = cryst_dY - gap; - G4Box* solidCryst = new G4Box("crystal", dX/2, dY/2, cryst_dZ/2); + auto solidCryst = new G4Box("crystal", dX / 2, dY / 2, cryst_dZ / 2); - G4LogicalVolume* logicCryst = - new G4LogicalVolume(solidCryst, //its solid - cryst_mat, //its material - "CrystalLV"); //its name + auto logicCryst = new G4LogicalVolume(solidCryst, // its solid + cryst_mat, // its material + "CrystalLV"); // its name // place crystals within a ring // @@ -172,13 +161,11 @@ G4VPhysicalVolume* DetectorConstruction::Construct() // // full detector // - G4Tubs* solidDetector = - new G4Tubs("Detector", ring_R1, ring_R2, 0.5*detector_dZ, 0., twopi); + auto solidDetector = new G4Tubs("Detector", ring_R1, ring_R2, 0.5 * detector_dZ, 0., twopi); - G4LogicalVolume* logicDetector = - new G4LogicalVolume(solidDetector, //its solid - default_mat, //its material - "Detector"); //its name + auto logicDetector = new G4LogicalVolume(solidDetector, // its solid + default_mat, // its material + "Detector"); // its name // // place rings within detector @@ -186,27 +173,27 @@ G4VPhysicalVolume* DetectorConstruction::Construct() G4double OG = -0.5*(detector_dZ + cryst_dX); for (G4int iring = 0; iring < nb_rings ; iring++) { OG += cryst_dX; - new G4PVPlacement(0, //no rotation - G4ThreeVector(0,0,OG), //position - logicRing, //its logical volume - "ring", //its name - logicDetector, //its mother volume - false, //no boolean operation - iring, //copy number - fCheckOverlaps); // checking overlaps + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(0, 0, OG), // position + logicRing, // its logical volume + "ring", // its name + logicDetector, // its mother volume + false, // no boolean operation + iring, // copy number + fCheckOverlaps); // checking overlaps } // // place detector in world // - new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - logicDetector, //its logical volume - "Detector", //its name - logicWorld, //its mother volume - false, //no boolean operation - 0, //copy number - fCheckOverlaps); // checking overlaps + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + logicDetector, // its logical volume + "Detector", // its name + logicWorld, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // patient @@ -215,25 +202,23 @@ G4VPhysicalVolume* DetectorConstruction::Construct() G4double patient_dZ = 10*cm; G4Material* patient_mat = nist->FindOrBuildMaterial("G4_BRAIN_ICRP"); - G4Tubs* solidPatient = - new G4Tubs("Patient", 0., patient_radius, 0.5*patient_dZ, 0., twopi); + auto solidPatient = new G4Tubs("Patient", 0., patient_radius, 0.5 * patient_dZ, 0., twopi); - G4LogicalVolume* logicPatient = - new G4LogicalVolume(solidPatient, //its solid - patient_mat, //its material - "PatientLV"); //its name + auto logicPatient = new G4LogicalVolume(solidPatient, // its solid + patient_mat, // its material + "PatientLV"); // its name // // place patient in world // - new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - logicPatient, //its logical volume - "Patient", //its name - logicWorld, //its mother volume - false, //no boolean operation - 0, //copy number - fCheckOverlaps); // checking overlaps + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + logicPatient, // its logical volume + "Patient", // its name + logicWorld, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // Visualization attributes // @@ -256,7 +241,7 @@ void DetectorConstruction::ConstructSDandField() // declare crystal as a MultiFunctionalDetector scorer // - G4MultiFunctionalDetector* cryst = new G4MultiFunctionalDetector("crystal"); + auto cryst = new G4MultiFunctionalDetector("crystal"); G4SDManager::GetSDMpointer()->AddNewDetector(cryst); G4VPrimitiveScorer* primitiv1 = new G4PSEnergyDeposit("edep"); cryst->RegisterPrimitive(primitiv1); @@ -264,7 +249,7 @@ void DetectorConstruction::ConstructSDandField() // declare patient as a MultiFunctionalDetector scorer // - G4MultiFunctionalDetector* patient = new G4MultiFunctionalDetector("patient"); + auto patient = new G4MultiFunctionalDetector("patient"); G4SDManager::GetSDMpointer()->AddNewDetector(patient); G4VPrimitiveScorer* primitiv2 = new G4PSDoseDeposit("dose"); patient->RegisterPrimitive(primitiv2); diff --git a/examples/basic/B3/B3b/src/PhysicsList.cc b/examples/basic/B3/B3b/src/PhysicsList.cc index c3070f8470..151b57c0b3 100644 --- a/examples/basic/B3/B3b/src/PhysicsList.cc +++ b/examples/basic/B3/B3b/src/PhysicsList.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PhysicsList.cc +/// \file B3/B3b/src/PhysicsList.cc /// \brief Implementation of the B3::PhysicsList class #include "PhysicsList.hh" @@ -54,12 +54,6 @@ PhysicsList::PhysicsList() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PhysicsList::~PhysicsList() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void PhysicsList::SetCuts() { G4VUserPhysicsList::SetCuts(); diff --git a/examples/basic/B3/B3b/src/PrimaryGeneratorAction.cc b/examples/basic/B3/B3b/src/PrimaryGeneratorAction.cc index e7f9b1dba4..92119eaa62 100644 --- a/examples/basic/B3/B3b/src/PrimaryGeneratorAction.cc +++ b/examples/basic/B3/B3b/src/PrimaryGeneratorAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.cc +/// \file B3/B3b/src/PrimaryGeneratorAction.cc /// \brief Implementation of the B3::PrimaryGeneratorAction class #include "PrimaryGeneratorAction.hh" diff --git a/examples/basic/B3/B3b/src/Run.cc b/examples/basic/B3/B3b/src/Run.cc index 8d1932a4a7..c5379d9842 100644 --- a/examples/basic/B3/B3b/src/Run.cc +++ b/examples/basic/B3/B3b/src/Run.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file Run.cc +/// \file B3/B3b/src/Run.cc /// \brief Implementation of the B3b::Run class #include "Run.hh" @@ -42,16 +42,6 @@ namespace B3b //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Run::Run() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Run::~Run() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void Run::RecordEvent(const G4Event* event) { if ( fCollID_cryst < 0 ) { @@ -82,8 +72,7 @@ void Run::RecordEvent(const G4Event* event) const G4double eThreshold = 500*keV; G4int nbOfFired = 0; - G4THitsMap* evtMap = - static_cast*>(HCE->GetHC(fCollID_cryst)); + auto evtMap = static_cast*>(HCE->GetHC(fCollID_cryst)); std::map::iterator itr; for (itr = evtMap->GetMap()->begin(); itr != evtMap->GetMap()->end(); itr++) { diff --git a/examples/basic/B3/B3b/src/RunAction.cc b/examples/basic/B3/B3b/src/RunAction.cc index a630791877..88cb12ad69 100644 --- a/examples/basic/B3/B3b/src/RunAction.cc +++ b/examples/basic/B3/B3b/src/RunAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.cc +/// \file B3/B3b/src/RunAction.cc /// \brief Implementation of the B3b::RunAction class #include "RunAction.hh" @@ -60,11 +60,6 @@ RunAction::RunAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::~RunAction() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4Run* RunAction::GenerateRun() { return new Run; } @@ -88,9 +83,8 @@ void RunAction::EndOfRunAction(const G4Run* run) // Run conditions // note: There is no primary generator action object for "master" // run manager for multi-threaded mode. - const PrimaryGeneratorAction* generatorAction - = static_cast( - G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction()); + const auto generatorAction = static_cast( + G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction()); G4String partName; if (generatorAction) { diff --git a/examples/basic/B3/B3b/src/StackingAction.cc b/examples/basic/B3/B3b/src/StackingAction.cc index 53bc9fb404..edd57afba7 100644 --- a/examples/basic/B3/B3b/src/StackingAction.cc +++ b/examples/basic/B3/B3b/src/StackingAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file StackingAction.cc +/// \file B3/B3b/src/StackingAction.cc /// \brief Implementation of the B3::StackingAction class #include "StackingAction.hh" @@ -37,16 +37,6 @@ namespace B3 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -StackingAction::StackingAction() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -StackingAction::~StackingAction() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4ClassificationOfNewTrack StackingAction::ClassifyNewTrack(const G4Track* track) { diff --git a/examples/basic/B3/History b/examples/basic/B3/History index 68bffbb07e..81b3618a72 100644 --- a/examples/basic/B3/History +++ b/examples/basic/B3/History @@ -5,7 +5,12 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! -## 2021-03-02 I. Hrivnacova (exampleB3-V11-00-01) +## 2022-11-29 I. Hrivnacova (exampleB3-V11-00-02) +- Activated merging ntuples with score ntuple writer +- Added commented setting in run2.mac: + /control/cout/ignoreThreadsExcept 0 + +## 2022-03-02 I. Hrivnacova (exampleB3-V11-00-01) - Set new analysis file name for the second run in run2.mac to avoid overwriting the output from the first run diff --git a/examples/basic/B3/macros/run2.mac b/examples/basic/B3/macros/run2.mac index 3cbd41758e..b2d7b694f2 100644 --- a/examples/basic/B3/macros/run2.mac +++ b/examples/basic/B3/macros/run2.mac @@ -4,6 +4,8 @@ # % exampleB3 run3.mac # #/run/numberOfThreads 4 +#/control/cout/ignoreThreadsExcept 0 +# /run/initialize # /control/verbose 2 diff --git a/examples/basic/B4/B4a/exampleB4a.out b/examples/basic/B4/B4a/exampleB4a.out index 6f69b3909c..e91fdb9028 100644 --- a/examples/basic/B4/B4a/exampleB4a.out +++ b/examples/basic/B4/B4a/exampleB4a.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -134,6 +136,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -161,7 +164,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -212,8 +215,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -695,6 +698,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -977,15 +985,15 @@ Setting was ignored. Using --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 265.157 MeV total track length: 19.1896 cm - Gap: total energy: 9.08988 MeV total track length: 4.65633 cm + Absorber: total energy: 259.894 MeV total track length: 18.9569 cm + Gap: total energy: 17.4244 MeV total track length: 8.74398 cm ----> print histograms statistic for the entire run - EAbs : mean = 265.157 MeV rms = 0 eV - EGap : mean = 9.08988 MeV rms = 0 eV - LAbs : mean = 19.1896 cm rms = 0 fm - LGap : mean = 4.65633 cm rms = 0 fm + EAbs : mean = 259.894 MeV rms = 0 eV + EGap : mean = 17.4244 MeV rms = 0 eV + LAbs : mean = 18.9569 cm rms = 0 fm + LGap : mean = 8.74398 cm rms = 0 fm ... write file : B4.root - done ... close file : B4.root - done There are 4 h1 histograms @@ -1056,15 +1064,15 @@ hFritiofCaptureAtRest,hBertiniCaptureAtRest,muMinusCaptureAtRest, dInela Using --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 263.024 MeV total track length: 19.1493 cm - Gap: total energy: 23.8653 MeV total track length: 12.0298 cm + Absorber: total energy: 278.136 MeV total track length: 20.1737 cm + Gap: total energy: 19.9095 MeV total track length: 10.0917 cm ----> print histograms statistic for the entire run - EAbs : mean = 263.024 MeV rms = 0 eV - EGap : mean = 23.8653 MeV rms = 0 eV - LAbs : mean = 19.1493 cm rms = 0 fm - LGap : mean = 12.0298 cm rms = 0 fm + EAbs : mean = 278.136 MeV rms = 0 eV + EGap : mean = 19.9095 MeV rms = 0 eV + LAbs : mean = 20.1737 cm rms = 0 fm + LGap : mean = 10.0917 cm rms = 0 fm ... write file : B4.root - done ... close file : B4.root - done There are 4 h1 histograms @@ -1081,15 +1089,15 @@ View them with "/vis/plot" or "/vis/reviewPlots". Using --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 452.086 MeV total track length: 32.6243 cm - Gap: total energy: 26.9004 MeV total track length: 13.1264 cm + Absorber: total energy: 435.043 MeV total track length: 31.1955 cm + Gap: total energy: 37.3961 MeV total track length: 18.5223 cm ----> print histograms statistic for the entire run - EAbs : mean = 452.086 MeV rms = 0 eV - EGap : mean = 26.9004 MeV rms = 0 eV - LAbs : mean = 32.6243 cm rms = 0 fm - LGap : mean = 13.1264 cm rms = 0 fm + EAbs : mean = 435.043 MeV rms = 0 eV + EGap : mean = 37.3961 MeV rms = 0 eV + LAbs : mean = 31.1955 cm rms = 0 fm + LGap : mean = 18.5223 cm rms = 0 fm ... write file : B4.root - done ... close file : B4.root - done There are 4 h1 histograms diff --git a/examples/basic/B4/B4a/include/ActionInitialization.hh b/examples/basic/B4/B4a/include/ActionInitialization.hh index 603429a2f2..f68bc4de19 100644 --- a/examples/basic/B4/B4a/include/ActionInitialization.hh +++ b/examples/basic/B4/B4a/include/ActionInitialization.hh @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file ActionInitialization.hh -/// \brief Definition of the ActionInitialization class +/// \file B4/B4a/include/ActionInitialization.hh +/// \brief Definition of the B4a::ActionInitialization class #ifndef B4aActionInitialization_h #define B4aActionInitialization_h 1 @@ -47,7 +47,7 @@ class ActionInitialization : public G4VUserActionInitialization { public: ActionInitialization(B4::DetectorConstruction*); - ~ActionInitialization() override; + ~ActionInitialization() override = default; void BuildForMaster() const override; void Build() const override; diff --git a/examples/basic/B4/B4a/include/DetectorConstruction.hh b/examples/basic/B4/B4a/include/DetectorConstruction.hh index 17abcdfb6f..681b295f14 100644 --- a/examples/basic/B4/B4a/include/DetectorConstruction.hh +++ b/examples/basic/B4/B4a/include/DetectorConstruction.hh @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file DetectorConstruction.hh -/// \brief Definition of the DetectorConstruction class +/// \file B4/B4a/include/DetectorConstruction.hh +/// \brief Definition of the B4::DetectorConstruction class #ifndef B4DetectorConstruction_h #define B4DetectorConstruction_h 1 @@ -56,8 +56,8 @@ namespace B4 class DetectorConstruction : public G4VUserDetectorConstruction { public: - DetectorConstruction(); - ~DetectorConstruction() override; + DetectorConstruction() = default; + ~DetectorConstruction() override = default; public: G4VPhysicalVolume* Construct() override; diff --git a/examples/basic/B4/B4a/include/EventAction.hh b/examples/basic/B4/B4a/include/EventAction.hh index b0bf6b3c14..0f734edc83 100644 --- a/examples/basic/B4/B4a/include/EventAction.hh +++ b/examples/basic/B4/B4a/include/EventAction.hh @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file EventAction.hh -/// \brief Definition of the EventAction class +/// \file B4/B4a/include/EventAction.hh +/// \brief Definition of the B4a::EventAction class #ifndef B4aEventAction_h #define B4aEventAction_h 1 @@ -47,8 +47,8 @@ namespace B4a class EventAction : public G4UserEventAction { public: - EventAction(); - ~EventAction() override; + EventAction() = default; + ~EventAction() override = default; void BeginOfEventAction(const G4Event* event) override; void EndOfEventAction(const G4Event* event) override; diff --git a/examples/basic/B4/B4a/include/PrimaryGeneratorAction.hh b/examples/basic/B4/B4a/include/PrimaryGeneratorAction.hh index debeaa24a4..7240a83f2a 100644 --- a/examples/basic/B4/B4a/include/PrimaryGeneratorAction.hh +++ b/examples/basic/B4/B4a/include/PrimaryGeneratorAction.hh @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.hh -/// \brief Definition of the PrimaryGeneratorAction class +/// \file B4/B4a/include/PrimaryGeneratorAction.hh +/// \brief Definition of the B4::PrimaryGeneratorAction class #ifndef B4PrimaryGeneratorAction_h #define B4PrimaryGeneratorAction_h 1 diff --git a/examples/basic/B4/B4a/include/RunAction.hh b/examples/basic/B4/B4a/include/RunAction.hh index 420342d5a6..97cae21b30 100644 --- a/examples/basic/B4/B4a/include/RunAction.hh +++ b/examples/basic/B4/B4a/include/RunAction.hh @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file RunAction.hh -/// \brief Definition of the RunAction class +/// \file B4/B4a/include/RunAction.hh +/// \brief Definition of the B4::RunAction class #ifndef B4RunAction_h #define B4RunAction_h 1 @@ -60,7 +60,7 @@ class RunAction : public G4UserRunAction { public: RunAction(); - ~RunAction() override; + ~RunAction() override = default; void BeginOfRunAction(const G4Run*) override; void EndOfRunAction(const G4Run*) override; diff --git a/examples/basic/B4/B4a/include/SteppingAction.hh b/examples/basic/B4/B4a/include/SteppingAction.hh index 6a824e3201..8b2ddd10b1 100644 --- a/examples/basic/B4/B4a/include/SteppingAction.hh +++ b/examples/basic/B4/B4a/include/SteppingAction.hh @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file SteppingAction.hh -/// \brief Definition of the SteppingAction class +/// \file B4/B4a/include/SteppingAction.hh +/// \brief Definition of the B4a::SteppingAction class #ifndef B4aSteppingAction_h #define B4aSteppingAction_h 1 @@ -53,7 +53,7 @@ class SteppingAction : public G4UserSteppingAction public: SteppingAction(const B4::DetectorConstruction* detConstruction, EventAction* eventAction); - ~SteppingAction() override; + ~SteppingAction() override = default; void UserSteppingAction(const G4Step* step) override; diff --git a/examples/basic/B4/B4a/src/ActionInitialization.cc b/examples/basic/B4/B4a/src/ActionInitialization.cc index e0ba121796..4f97a02f7a 100644 --- a/examples/basic/B4/B4a/src/ActionInitialization.cc +++ b/examples/basic/B4/B4a/src/ActionInitialization.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file ActionInitialization.cc -/// \brief Implementation of the ActionInitialization class +/// \file B4/B4a/src/ActionInitialization.cc +/// \brief Implementation of the B4a::ActionInitialization class #include "ActionInitialization.hh" #include "PrimaryGeneratorAction.hh" @@ -41,18 +41,12 @@ namespace B4a //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::ActionInitialization - (DetectorConstruction* detConstruction) +ActionInitialization::ActionInitialization(DetectorConstruction* detConstruction) : fDetConstruction(detConstruction) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::~ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ActionInitialization::BuildForMaster() const { SetUserAction(new RunAction); diff --git a/examples/basic/B4/B4a/src/DetectorConstruction.cc b/examples/basic/B4/B4a/src/DetectorConstruction.cc index ccfa731ad1..3d19716b42 100644 --- a/examples/basic/B4/B4a/src/DetectorConstruction.cc +++ b/examples/basic/B4/B4a/src/DetectorConstruction.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file DetectorConstruction.cc -/// \brief Implementation of the DetectorConstruction class +/// \file B4/B4a/src/DetectorConstruction.cc +/// \brief Implementation of the B4::DetectorConstruction class #include "DetectorConstruction.hh" @@ -60,18 +60,6 @@ G4GlobalMagFieldMessenger* DetectorConstruction::fMagFieldMessenger = nullptr; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -DetectorConstruction::DetectorConstruction() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -DetectorConstruction::~DetectorConstruction() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4VPhysicalVolume* DetectorConstruction::Construct() { // Define materials @@ -144,16 +132,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() defaultMaterial, // its material "World"); // its name - auto worldPV - = new G4PVPlacement( - 0, // no rotation - G4ThreeVector(), // at (0,0,0) - worldLV, // its logical volume - "World", // its name - 0, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + auto worldPV = new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + worldLV, // its logical volume + "World", // its name + nullptr, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // Calorimeter @@ -168,15 +154,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() defaultMaterial, // its material "Calorimeter"); // its name - new G4PVPlacement( - 0, // no rotation - G4ThreeVector(), // at (0,0,0) - calorLV, // its logical volume - "Calorimeter", // its name - worldLV, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + calorLV, // its logical volume + "Calorimeter", // its name + worldLV, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // Layer @@ -212,16 +197,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() absorberMaterial, // its material "Abso"); // its name - fAbsorberPV - = new G4PVPlacement( - 0, // no rotation - G4ThreeVector(0., 0., -gapThickness/2), // its position - absorberLV, // its logical volume - "Abso", // its name - layerLV, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + fAbsorberPV = new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(0., 0., -gapThickness / 2), // its position + absorberLV, // its logical volume + "Abso", // its name + layerLV, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // Gap @@ -236,16 +219,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() gapMaterial, // its material "Gap"); // its name - fGapPV - = new G4PVPlacement( - 0, // no rotation - G4ThreeVector(0., 0., absoThickness/2), // its position - gapLV, // its logical volume - "Gap", // its name - layerLV, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + fGapPV = new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(0., 0., absoThickness / 2), // its position + gapLV, // its logical volume + "Gap", // its name + layerLV, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // print parameters diff --git a/examples/basic/B4/B4a/src/EventAction.cc b/examples/basic/B4/B4a/src/EventAction.cc index f7be174e06..30b804e8a7 100644 --- a/examples/basic/B4/B4a/src/EventAction.cc +++ b/examples/basic/B4/B4a/src/EventAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.cc +/// \file B4/B4a/src/EventAction.cc /// \brief Implementation of the B4a::EventAction class #include "EventAction.hh" @@ -43,16 +43,6 @@ namespace B4a //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::EventAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -EventAction::~EventAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void EventAction::BeginOfEventAction(const G4Event* /*event*/) { // initialisation per event diff --git a/examples/basic/B4/B4a/src/PrimaryGeneratorAction.cc b/examples/basic/B4/B4a/src/PrimaryGeneratorAction.cc index 4824f5ab0a..793ee4eca8 100644 --- a/examples/basic/B4/B4a/src/PrimaryGeneratorAction.cc +++ b/examples/basic/B4/B4a/src/PrimaryGeneratorAction.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.cc -/// \brief Implementation of the PrimaryGeneratorAction class +/// \file B4/B4a/src/PrimaryGeneratorAction.cc +/// \brief Implementation of the B4::PrimaryGeneratorAction class #include "PrimaryGeneratorAction.hh" diff --git a/examples/basic/B4/B4a/src/RunAction.cc b/examples/basic/B4/B4a/src/RunAction.cc index 53e8d5c82a..ba1bcb36f3 100644 --- a/examples/basic/B4/B4a/src/RunAction.cc +++ b/examples/basic/B4/B4a/src/RunAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.cc +/// \file B4/B4a/src/RunAction.cc /// \brief Implementation of the B4::RunAction class #include "RunAction.hh" @@ -78,12 +78,6 @@ RunAction::RunAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::~RunAction() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void RunAction::BeginOfRunAction(const G4Run* /*run*/) { //inform the runManager to save random number seed diff --git a/examples/basic/B4/B4a/src/SteppingAction.cc b/examples/basic/B4/B4a/src/SteppingAction.cc index 652cecdd15..0678b73b41 100644 --- a/examples/basic/B4/B4a/src/SteppingAction.cc +++ b/examples/basic/B4/B4a/src/SteppingAction.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file SteppingAction.cc -/// \brief Implementation of the SteppingAction class +/// \file B4/B4a/src/SteppingAction.cc +/// \brief Implementation of the B4a::SteppingAction class #include "SteppingAction.hh" #include "EventAction.hh" @@ -49,11 +49,6 @@ SteppingAction::SteppingAction(const DetectorConstruction* detConstruction, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::~SteppingAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void SteppingAction::UserSteppingAction(const G4Step* step) { // Collect energy and track length step by step diff --git a/examples/basic/B4/B4b/exampleB4b.out b/examples/basic/B4/B4b/exampleB4b.out index c2812ac431..57604390fb 100644 --- a/examples/basic/B4/B4b/exampleB4b.out +++ b/examples/basic/B4/B4b/exampleB4b.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -134,6 +136,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -161,7 +164,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -212,8 +215,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -695,6 +698,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -978,15 +986,15 @@ Setting was ignored. Using --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 265.157 MeV total track length: 19.1896 cm - Gap: total energy: 9.08988 MeV total track length: 4.65633 cm + Absorber: total energy: 259.894 MeV total track length: 18.9569 cm + Gap: total energy: 17.4244 MeV total track length: 8.74398 cm ----> print histograms statistic for the entire run - EAbs : mean = 265.157 MeV rms = 0 eV - EGap : mean = 9.08988 MeV rms = 0 eV - LAbs : mean = 19.1896 cm rms = 0 fm - LGap : mean = 4.65633 cm rms = 0 fm + EAbs : mean = 259.894 MeV rms = 0 eV + EGap : mean = 17.4244 MeV rms = 0 eV + LAbs : mean = 18.9569 cm rms = 0 fm + LGap : mean = 8.74398 cm rms = 0 fm ... write file : B4.root - done ... close file : B4.root - done There are 4 h1 histograms @@ -1058,15 +1066,15 @@ hFritiofCaptureAtRest,hBertiniCaptureAtRest,muMinusCaptureAtRest, dInela Using --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 263.024 MeV total track length: 19.1493 cm - Gap: total energy: 23.8653 MeV total track length: 12.0298 cm + Absorber: total energy: 278.136 MeV total track length: 20.1737 cm + Gap: total energy: 19.9095 MeV total track length: 10.0917 cm ----> print histograms statistic for the entire run - EAbs : mean = 263.024 MeV rms = 0 eV - EGap : mean = 23.8653 MeV rms = 0 eV - LAbs : mean = 19.1493 cm rms = 0 fm - LGap : mean = 12.0298 cm rms = 0 fm + EAbs : mean = 278.136 MeV rms = 0 eV + EGap : mean = 19.9095 MeV rms = 0 eV + LAbs : mean = 20.1737 cm rms = 0 fm + LGap : mean = 10.0917 cm rms = 0 fm ... write file : B4.root - done ... close file : B4.root - done There are 4 h1 histograms @@ -1084,15 +1092,15 @@ View them with "/vis/plot" or "/vis/reviewPlots". Using --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 452.086 MeV total track length: 32.6243 cm - Gap: total energy: 26.9004 MeV total track length: 13.1264 cm + Absorber: total energy: 435.043 MeV total track length: 31.1955 cm + Gap: total energy: 37.3961 MeV total track length: 18.5223 cm ----> print histograms statistic for the entire run - EAbs : mean = 452.086 MeV rms = 0 eV - EGap : mean = 26.9004 MeV rms = 0 eV - LAbs : mean = 32.6243 cm rms = 0 fm - LGap : mean = 13.1264 cm rms = 0 fm + EAbs : mean = 435.043 MeV rms = 0 eV + EGap : mean = 37.3961 MeV rms = 0 eV + LAbs : mean = 31.1955 cm rms = 0 fm + LGap : mean = 18.5223 cm rms = 0 fm ... write file : B4.root - done ... close file : B4.root - done There are 4 h1 histograms diff --git a/examples/basic/B4/B4b/include/ActionInitialization.hh b/examples/basic/B4/B4b/include/ActionInitialization.hh index 59782ac24e..db6c780281 100644 --- a/examples/basic/B4/B4b/include/ActionInitialization.hh +++ b/examples/basic/B4/B4b/include/ActionInitialization.hh @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file ActionInitialization.hh -/// \brief Definition of the ActionInitialization class +/// \file B4/B4b/include/ActionInitialization.hh +/// \brief Definition of the B4b::ActionInitialization class #ifndef B4aActionInitialization_h #define B4aActionInitialization_h 1 @@ -47,7 +47,7 @@ class ActionInitialization : public G4VUserActionInitialization { public: ActionInitialization(B4::DetectorConstruction*); - ~ActionInitialization() override; + ~ActionInitialization() override = default; void BuildForMaster() const override; void Build() const override; diff --git a/examples/basic/B4/B4b/include/DetectorConstruction.hh b/examples/basic/B4/B4b/include/DetectorConstruction.hh index 17abcdfb6f..2645d63ea5 100644 --- a/examples/basic/B4/B4b/include/DetectorConstruction.hh +++ b/examples/basic/B4/B4b/include/DetectorConstruction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.hh +/// \file B4/B4b/include/DetectorConstruction.hh /// \brief Definition of the DetectorConstruction class #ifndef B4DetectorConstruction_h @@ -56,8 +56,8 @@ namespace B4 class DetectorConstruction : public G4VUserDetectorConstruction { public: - DetectorConstruction(); - ~DetectorConstruction() override; + DetectorConstruction() = default; + ~DetectorConstruction() override = default; public: G4VPhysicalVolume* Construct() override; diff --git a/examples/basic/B4/B4b/include/EventAction.hh b/examples/basic/B4/B4b/include/EventAction.hh index d454455d11..28147492c1 100644 --- a/examples/basic/B4/B4b/include/EventAction.hh +++ b/examples/basic/B4/B4b/include/EventAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.hh +/// \file B4/B4b/include/EventAction.hh /// \brief Definition of the B4b::EventAction class #ifndef B4bEventAction_h @@ -45,8 +45,8 @@ namespace B4b class EventAction : public G4UserEventAction { public: - EventAction(); - ~EventAction() override; + EventAction() = default; + ~EventAction() override = default; void BeginOfEventAction(const G4Event* event) override; void EndOfEventAction(const G4Event* event) override; diff --git a/examples/basic/B4/B4b/include/PrimaryGeneratorAction.hh b/examples/basic/B4/B4b/include/PrimaryGeneratorAction.hh index debeaa24a4..3986ad069b 100644 --- a/examples/basic/B4/B4b/include/PrimaryGeneratorAction.hh +++ b/examples/basic/B4/B4b/include/PrimaryGeneratorAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.hh +/// \file B4/B4b/include/PrimaryGeneratorAction.hh /// \brief Definition of the PrimaryGeneratorAction class #ifndef B4PrimaryGeneratorAction_h diff --git a/examples/basic/B4/B4b/include/RunAction.hh b/examples/basic/B4/B4b/include/RunAction.hh index 65aa7dde6e..bc7ae60e95 100644 --- a/examples/basic/B4/B4b/include/RunAction.hh +++ b/examples/basic/B4/B4b/include/RunAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.hh +/// \file B4/B4b/include/RunAction.hh /// \brief Definition of the B4b::RunAction class #ifndef B4bRunAction_h @@ -60,7 +60,7 @@ class RunAction : public G4UserRunAction { public: RunAction(); - ~RunAction() override; + ~RunAction() override = default; G4Run* GenerateRun() override; diff --git a/examples/basic/B4/B4b/include/RunData.hh b/examples/basic/B4/B4b/include/RunData.hh index 1c5ede9a5d..96b45e342e 100644 --- a/examples/basic/B4/B4b/include/RunData.hh +++ b/examples/basic/B4/B4b/include/RunData.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunData.hh +/// \file B4/B4b/include/RunData.hh /// \brief Definition of the B4b::RunData class #ifndef B4bRunData_h @@ -60,8 +60,8 @@ const G4int kDim = 2; class RunData : public G4Run { public: - RunData(); - ~RunData() override; + RunData() = default; + ~RunData() override = default; void Add(G4int id, G4double de, G4double dl); void FillPerEvent(); diff --git a/examples/basic/B4/B4b/include/SteppingAction.hh b/examples/basic/B4/B4b/include/SteppingAction.hh index 0d7cffd3b4..df4697ef32 100644 --- a/examples/basic/B4/B4b/include/SteppingAction.hh +++ b/examples/basic/B4/B4b/include/SteppingAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file SteppingAction.hh +/// \file B4/B4b/include/SteppingAction.hh /// \brief Definition of the B4b::SteppingAction class #ifndef B4bSteppingAction_h @@ -50,7 +50,7 @@ class SteppingAction : public G4UserSteppingAction { public: SteppingAction(const B4::DetectorConstruction* detConstruction); - ~SteppingAction() override; + ~SteppingAction() override = default; void UserSteppingAction(const G4Step* step) override; diff --git a/examples/basic/B4/B4b/src/ActionInitialization.cc b/examples/basic/B4/B4b/src/ActionInitialization.cc index 05ba69e485..bad61c7351 100644 --- a/examples/basic/B4/B4b/src/ActionInitialization.cc +++ b/examples/basic/B4/B4b/src/ActionInitialization.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.cc +/// \file B4/B4b/src/ActionInitialization.cc /// \brief Implementation of the B4b::ActionInitialization class #include "ActionInitialization.hh" @@ -42,18 +42,12 @@ namespace B4b //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::ActionInitialization - (DetectorConstruction* detConstruction) +ActionInitialization::ActionInitialization(DetectorConstruction* detConstruction) : fDetConstruction(detConstruction) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::~ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ActionInitialization::BuildForMaster() const { SetUserAction(new RunAction); diff --git a/examples/basic/B4/B4b/src/DetectorConstruction.cc b/examples/basic/B4/B4b/src/DetectorConstruction.cc index 624342952a..a0d63257d4 100644 --- a/examples/basic/B4/B4b/src/DetectorConstruction.cc +++ b/examples/basic/B4/B4b/src/DetectorConstruction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.cc +/// \file B4/B4b/src/DetectorConstruction.cc /// \brief Implementation of the B4:DetectorConstruction class #include "DetectorConstruction.hh" @@ -60,18 +60,6 @@ G4GlobalMagFieldMessenger* DetectorConstruction::fMagFieldMessenger = nullptr; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -DetectorConstruction::DetectorConstruction() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -DetectorConstruction::~DetectorConstruction() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4VPhysicalVolume* DetectorConstruction::Construct() { // Define materials @@ -144,16 +132,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() defaultMaterial, // its material "World"); // its name - auto worldPV - = new G4PVPlacement( - 0, // no rotation - G4ThreeVector(), // at (0,0,0) - worldLV, // its logical volume - "World", // its name - 0, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + auto worldPV = new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + worldLV, // its logical volume + "World", // its name + nullptr, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // Calorimeter @@ -168,15 +154,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() defaultMaterial, // its material "Calorimeter"); // its name - new G4PVPlacement( - 0, // no rotation - G4ThreeVector(), // at (0,0,0) - calorLV, // its logical volume - "Calorimeter", // its name - worldLV, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + calorLV, // its logical volume + "Calorimeter", // its name + worldLV, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // Layer @@ -212,16 +197,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() absorberMaterial, // its material "Abso"); // its name - fAbsorberPV - = new G4PVPlacement( - 0, // no rotation - G4ThreeVector(0., 0., -gapThickness/2), // its position - absorberLV, // its logical volume - "Abso", // its name - layerLV, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + fAbsorberPV = new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(0., 0., -gapThickness / 2), // its position + absorberLV, // its logical volume + "Abso", // its name + layerLV, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // Gap @@ -236,16 +219,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() gapMaterial, // its material "Gap"); // its name - fGapPV - = new G4PVPlacement( - 0, // no rotation - G4ThreeVector(0., 0., absoThickness/2), // its position - gapLV, // its logical volume - "Gap", // its name - layerLV, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + fGapPV = new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(0., 0., absoThickness / 2), // its position + gapLV, // its logical volume + "Gap", // its name + layerLV, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // print parameters diff --git a/examples/basic/B4/B4b/src/EventAction.cc b/examples/basic/B4/B4b/src/EventAction.cc index 75706bc9e2..eb632ce64b 100644 --- a/examples/basic/B4/B4b/src/EventAction.cc +++ b/examples/basic/B4/B4b/src/EventAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.cc +/// \file B4/B4b/src/EventAction.cc /// \brief Implementation of the B4b::EventAction class #include "EventAction.hh" @@ -42,16 +42,6 @@ namespace B4b //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::EventAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -EventAction::~EventAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void EventAction::PrintEventStatistics( G4double absoEdep, G4double absoTrackLength, G4double gapEdep, G4double gapTrackLength) const diff --git a/examples/basic/B4/B4b/src/PrimaryGeneratorAction.cc b/examples/basic/B4/B4b/src/PrimaryGeneratorAction.cc index 471aa628bb..b63d8bb51f 100644 --- a/examples/basic/B4/B4b/src/PrimaryGeneratorAction.cc +++ b/examples/basic/B4/B4b/src/PrimaryGeneratorAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.cc +/// \file B4/B4b/src/PrimaryGeneratorAction.cc /// \brief Implementation of the B4::PrimaryGeneratorAction class #include "PrimaryGeneratorAction.hh" diff --git a/examples/basic/B4/B4b/src/RunAction.cc b/examples/basic/B4/B4b/src/RunAction.cc index 89fd367f18..1b9d4d04d3 100644 --- a/examples/basic/B4/B4b/src/RunAction.cc +++ b/examples/basic/B4/B4b/src/RunAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.cc +/// \file B4/B4b/src/RunAction.cc /// \brief Implementation of the B4b::RunAction class #include "RunAction.hh" @@ -79,12 +79,6 @@ RunAction::RunAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::~RunAction() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4Run* RunAction::GenerateRun() { return (new RunData); diff --git a/examples/basic/B4/B4b/src/RunData.cc b/examples/basic/B4/B4b/src/RunData.cc index a73b14625b..d41c20fb69 100644 --- a/examples/basic/B4/B4b/src/RunData.cc +++ b/examples/basic/B4/B4b/src/RunData.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunData.cc +/// \file B4/B4b/src/RunData.cc /// \brief Implementation of the B4b::RunData class #include "RunData.hh" @@ -38,16 +38,6 @@ namespace B4b //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunData::RunData() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -RunData::~RunData() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void RunData::FillPerEvent() { // get analysis manager diff --git a/examples/basic/B4/B4b/src/SteppingAction.cc b/examples/basic/B4/B4b/src/SteppingAction.cc index e2aed1862b..0dfb2f4ac5 100644 --- a/examples/basic/B4/B4b/src/SteppingAction.cc +++ b/examples/basic/B4/B4b/src/SteppingAction.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file SteppingAction.cc -/// \brief Implementation of the SteppingAction class +/// \file B4/B4b/src/SteppingAction.cc +/// \brief Implementation of the B4b::SteppingAction class #include "SteppingAction.hh" #include "RunData.hh" @@ -48,12 +48,6 @@ SteppingAction::SteppingAction(const DetectorConstruction* detConstruction) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::~SteppingAction() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void SteppingAction::UserSteppingAction(const G4Step* step) { // Collect energy and track length step by step diff --git a/examples/basic/B4/B4c/exampleB4c.out b/examples/basic/B4/B4c/exampleB4c.out index 6f69b3909c..e91fdb9028 100644 --- a/examples/basic/B4/B4c/exampleB4c.out +++ b/examples/basic/B4/B4c/exampleB4c.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -134,6 +136,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -161,7 +164,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -212,8 +215,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -695,6 +698,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -977,15 +985,15 @@ Setting was ignored. Using --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 265.157 MeV total track length: 19.1896 cm - Gap: total energy: 9.08988 MeV total track length: 4.65633 cm + Absorber: total energy: 259.894 MeV total track length: 18.9569 cm + Gap: total energy: 17.4244 MeV total track length: 8.74398 cm ----> print histograms statistic for the entire run - EAbs : mean = 265.157 MeV rms = 0 eV - EGap : mean = 9.08988 MeV rms = 0 eV - LAbs : mean = 19.1896 cm rms = 0 fm - LGap : mean = 4.65633 cm rms = 0 fm + EAbs : mean = 259.894 MeV rms = 0 eV + EGap : mean = 17.4244 MeV rms = 0 eV + LAbs : mean = 18.9569 cm rms = 0 fm + LGap : mean = 8.74398 cm rms = 0 fm ... write file : B4.root - done ... close file : B4.root - done There are 4 h1 histograms @@ -1056,15 +1064,15 @@ hFritiofCaptureAtRest,hBertiniCaptureAtRest,muMinusCaptureAtRest, dInela Using --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 263.024 MeV total track length: 19.1493 cm - Gap: total energy: 23.8653 MeV total track length: 12.0298 cm + Absorber: total energy: 278.136 MeV total track length: 20.1737 cm + Gap: total energy: 19.9095 MeV total track length: 10.0917 cm ----> print histograms statistic for the entire run - EAbs : mean = 263.024 MeV rms = 0 eV - EGap : mean = 23.8653 MeV rms = 0 eV - LAbs : mean = 19.1493 cm rms = 0 fm - LGap : mean = 12.0298 cm rms = 0 fm + EAbs : mean = 278.136 MeV rms = 0 eV + EGap : mean = 19.9095 MeV rms = 0 eV + LAbs : mean = 20.1737 cm rms = 0 fm + LGap : mean = 10.0917 cm rms = 0 fm ... write file : B4.root - done ... close file : B4.root - done There are 4 h1 histograms @@ -1081,15 +1089,15 @@ View them with "/vis/plot" or "/vis/reviewPlots". Using --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 452.086 MeV total track length: 32.6243 cm - Gap: total energy: 26.9004 MeV total track length: 13.1264 cm + Absorber: total energy: 435.043 MeV total track length: 31.1955 cm + Gap: total energy: 37.3961 MeV total track length: 18.5223 cm ----> print histograms statistic for the entire run - EAbs : mean = 452.086 MeV rms = 0 eV - EGap : mean = 26.9004 MeV rms = 0 eV - LAbs : mean = 32.6243 cm rms = 0 fm - LGap : mean = 13.1264 cm rms = 0 fm + EAbs : mean = 435.043 MeV rms = 0 eV + EGap : mean = 37.3961 MeV rms = 0 eV + LAbs : mean = 31.1955 cm rms = 0 fm + LGap : mean = 18.5223 cm rms = 0 fm ... write file : B4.root - done ... close file : B4.root - done There are 4 h1 histograms diff --git a/examples/basic/B4/B4c/include/ActionInitialization.hh b/examples/basic/B4/B4c/include/ActionInitialization.hh index 910fddc83a..c6acb14266 100644 --- a/examples/basic/B4/B4c/include/ActionInitialization.hh +++ b/examples/basic/B4/B4c/include/ActionInitialization.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.hh +/// \file B4/B4c/include/ActionInitialization.hh /// \brief Definition of the B4c::ActionInitialization class #ifndef B4cActionInitialization_h @@ -40,8 +40,8 @@ namespace B4c class ActionInitialization : public G4VUserActionInitialization { public: - ActionInitialization(); - ~ActionInitialization() override; + ActionInitialization() = default; + ~ActionInitialization() override = default; void BuildForMaster() const override; void Build() const override; diff --git a/examples/basic/B4/B4c/include/CalorHit.hh b/examples/basic/B4/B4c/include/CalorHit.hh index 3bed7021fa..553e945ab4 100644 --- a/examples/basic/B4/B4c/include/CalorHit.hh +++ b/examples/basic/B4/B4c/include/CalorHit.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file CalorHit.hh +/// \file B4/B4c/include/CalorHit.hh /// \brief Definition of the B4c::CalorHit class #ifndef B4cCalorHit_h @@ -48,9 +48,9 @@ namespace B4c class CalorHit : public G4VHit { public: - CalorHit(); + CalorHit() = default; CalorHit(const CalorHit&) = default; - ~CalorHit() override; + ~CalorHit() override = default; // operators CalorHit& operator=(const CalorHit&) = default; diff --git a/examples/basic/B4/B4c/include/CalorimeterSD.hh b/examples/basic/B4/B4c/include/CalorimeterSD.hh index e5bd1a2e8b..b322f3ddf5 100644 --- a/examples/basic/B4/B4c/include/CalorimeterSD.hh +++ b/examples/basic/B4/B4c/include/CalorimeterSD.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file CalorimeterSD.hh +/// \file B4/B4c/include/CalorimeterSD.hh /// \brief Definition of the B4c::CalorimeterSD class #ifndef B4cCalorimeterSD_h @@ -56,7 +56,7 @@ class CalorimeterSD : public G4VSensitiveDetector CalorimeterSD(const G4String& name, const G4String& hitsCollectionName, G4int nofCells); - ~CalorimeterSD() override; + ~CalorimeterSD() override = default; // methods from base class void Initialize(G4HCofThisEvent* hitCollection) override; diff --git a/examples/basic/B4/B4c/include/DetectorConstruction.hh b/examples/basic/B4/B4c/include/DetectorConstruction.hh index b95d444cd0..36c68f6b32 100644 --- a/examples/basic/B4/B4c/include/DetectorConstruction.hh +++ b/examples/basic/B4/B4c/include/DetectorConstruction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.hh +/// \file B4/B4c/include/DetectorConstruction.hh /// \brief Definition of the B4c::DetectorConstruction class #ifndef B4cDetectorConstruction_h @@ -58,8 +58,8 @@ namespace B4c class DetectorConstruction : public G4VUserDetectorConstruction { public: - DetectorConstruction(); - ~DetectorConstruction() override; + DetectorConstruction() = default; + ~DetectorConstruction() override = default; public: G4VPhysicalVolume* Construct() override; diff --git a/examples/basic/B4/B4c/include/EventAction.hh b/examples/basic/B4/B4c/include/EventAction.hh index 791c5d37af..307cab7b99 100644 --- a/examples/basic/B4/B4c/include/EventAction.hh +++ b/examples/basic/B4/B4c/include/EventAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.hh +/// \file B4/B4c/include/EventAction.hh /// \brief Definition of the B4c::EventAction class #ifndef B4cEventAction_h @@ -48,8 +48,8 @@ namespace B4c class EventAction : public G4UserEventAction { public: - EventAction(); - ~EventAction() override; + EventAction() = default; + ~EventAction() override = default; void BeginOfEventAction(const G4Event* event) override; void EndOfEventAction(const G4Event* event) override; diff --git a/examples/basic/B4/B4c/include/PrimaryGeneratorAction.hh b/examples/basic/B4/B4c/include/PrimaryGeneratorAction.hh index debeaa24a4..bfb98211b9 100644 --- a/examples/basic/B4/B4c/include/PrimaryGeneratorAction.hh +++ b/examples/basic/B4/B4c/include/PrimaryGeneratorAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.hh +/// \file B4/B4c/include/PrimaryGeneratorAction.hh /// \brief Definition of the PrimaryGeneratorAction class #ifndef B4PrimaryGeneratorAction_h diff --git a/examples/basic/B4/B4c/include/RunAction.hh b/examples/basic/B4/B4c/include/RunAction.hh index 6480c59487..4189404475 100644 --- a/examples/basic/B4/B4c/include/RunAction.hh +++ b/examples/basic/B4/B4c/include/RunAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.hh +/// \file B4/B4c/include/RunAction.hh /// \brief Definition of the B4::RunAction class #ifndef B4RunAction_h @@ -60,7 +60,7 @@ class RunAction : public G4UserRunAction { public: RunAction(); - ~RunAction() override; + ~RunAction() override = default; void BeginOfRunAction(const G4Run*) override; void EndOfRunAction(const G4Run*) override; diff --git a/examples/basic/B4/B4c/src/ActionInitialization.cc b/examples/basic/B4/B4c/src/ActionInitialization.cc index d64d2347d9..02fd0ea6b4 100644 --- a/examples/basic/B4/B4c/src/ActionInitialization.cc +++ b/examples/basic/B4/B4c/src/ActionInitialization.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.cc +/// \file B4/B4c/src/ActionInitialization.cc /// \brief Implementation of the B4c::ActionInitialization class #include "ActionInitialization.hh" @@ -39,16 +39,6 @@ namespace B4c //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ActionInitialization::~ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ActionInitialization::BuildForMaster() const { SetUserAction(new RunAction); diff --git a/examples/basic/B4/B4c/src/CalorHit.cc b/examples/basic/B4/B4c/src/CalorHit.cc index 979bd5f1db..79b55b96b4 100644 --- a/examples/basic/B4/B4c/src/CalorHit.cc +++ b/examples/basic/B4/B4c/src/CalorHit.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file CalorHit.cc +/// \file B4/B4c/src/CalorHit.cc /// \brief Implementation of the B4c::CalorHit class #include "CalorHit.hh" @@ -43,34 +43,6 @@ G4ThreadLocal G4Allocator* CalorHitAllocator = nullptr; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -CalorHit::CalorHit() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -CalorHit::~CalorHit() {} - -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// CalorHit::CalorHit(const CalorHit& right) -// : G4VHit() -// { -// fEdep = right.fEdep; -// fTrackLength = right.fTrackLength; -// } - -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// const CalorHit& CalorHit::operator=(const CalorHit& right) -// { -// fEdep = right.fEdep; -// fTrackLength = right.fTrackLength; - -// return *this; -// } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4bool CalorHit::operator==(const CalorHit& right) const { return ( this == &right ) ? true : false; diff --git a/examples/basic/B4/B4c/src/CalorimeterSD.cc b/examples/basic/B4/B4c/src/CalorimeterSD.cc index f6a4df54f8..a5387b9d2a 100644 --- a/examples/basic/B4/B4c/src/CalorimeterSD.cc +++ b/examples/basic/B4/B4c/src/CalorimeterSD.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file CalorimeterSD.cc +/// \file B4/B4c/src/CalorimeterSD.cc /// \brief Implementation of the B4c::CalorimeterSD class #include "CalorimeterSD.hh" @@ -50,12 +50,6 @@ CalorimeterSD::CalorimeterSD(const G4String& name, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -CalorimeterSD::~CalorimeterSD() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void CalorimeterSD::Initialize(G4HCofThisEvent* hce) { // Create hits collection diff --git a/examples/basic/B4/B4c/src/DetectorConstruction.cc b/examples/basic/B4/B4c/src/DetectorConstruction.cc index 506f97dd93..6cfc8ead1b 100644 --- a/examples/basic/B4/B4c/src/DetectorConstruction.cc +++ b/examples/basic/B4/B4c/src/DetectorConstruction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.cc +/// \file B4/B4c/src/DetectorConstruction.cc /// \brief Implementation of the B4c::DetectorConstruction class #include "DetectorConstruction.hh" @@ -57,18 +57,6 @@ G4GlobalMagFieldMessenger* DetectorConstruction::fMagFieldMessenger = nullptr; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -DetectorConstruction::DetectorConstruction() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -DetectorConstruction::~DetectorConstruction() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4VPhysicalVolume* DetectorConstruction::Construct() { // Define materials @@ -141,16 +129,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() defaultMaterial, // its material "World"); // its name - auto worldPV - = new G4PVPlacement( - 0, // no rotation - G4ThreeVector(), // at (0,0,0) - worldLV, // its logical volume - "World", // its name - 0, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + auto worldPV = new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + worldLV, // its logical volume + "World", // its name + nullptr, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // Calorimeter @@ -165,15 +151,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() defaultMaterial, // its material "Calorimeter"); // its name - new G4PVPlacement( - 0, // no rotation - G4ThreeVector(), // at (0,0,0) - calorLV, // its logical volume - "Calorimeter", // its name - worldLV, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + calorLV, // its logical volume + "Calorimeter", // its name + worldLV, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // Layer @@ -209,15 +194,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() absorberMaterial, // its material "AbsoLV"); // its name - new G4PVPlacement( - 0, // no rotation - G4ThreeVector(0., 0., -gapThickness/2), // its position - absorberLV, // its logical volume - "Abso", // its name - layerLV, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(0., 0., -gapThickness / 2), // its position + absorberLV, // its logical volume + "Abso", // its name + layerLV, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // Gap @@ -232,15 +216,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() gapMaterial, // its material "GapLV"); // its name - new G4PVPlacement( - 0, // no rotation - G4ThreeVector(0., 0., absoThickness/2), // its position - gapLV, // its logical volume - "Gap", // its name - layerLV, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(0., 0., absoThickness / 2), // its position + gapLV, // its logical volume + "Gap", // its name + layerLV, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // print parameters diff --git a/examples/basic/B4/B4c/src/EventAction.cc b/examples/basic/B4/B4c/src/EventAction.cc index f44ed1cd59..71be7eba9b 100644 --- a/examples/basic/B4/B4c/src/EventAction.cc +++ b/examples/basic/B4/B4c/src/EventAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.cc +/// \file B4/B4c/src/EventAction.cc /// \brief Implementation of the B4c::EventAction class #include "EventAction.hh" @@ -46,16 +46,6 @@ namespace B4c //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::EventAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -EventAction::~EventAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - CalorHitsCollection* EventAction::GetHitsCollection(G4int hcID, const G4Event* event) const diff --git a/examples/basic/B4/B4c/src/PrimaryGeneratorAction.cc b/examples/basic/B4/B4c/src/PrimaryGeneratorAction.cc index 471aa628bb..cdd659b3e7 100644 --- a/examples/basic/B4/B4c/src/PrimaryGeneratorAction.cc +++ b/examples/basic/B4/B4c/src/PrimaryGeneratorAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.cc +/// \file B4/B4c/src/PrimaryGeneratorAction.cc /// \brief Implementation of the B4::PrimaryGeneratorAction class #include "PrimaryGeneratorAction.hh" diff --git a/examples/basic/B4/B4c/src/RunAction.cc b/examples/basic/B4/B4c/src/RunAction.cc index 53e8d5c82a..12665c666a 100644 --- a/examples/basic/B4/B4c/src/RunAction.cc +++ b/examples/basic/B4/B4c/src/RunAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.cc +/// \file B4/B4c/src/RunAction.cc /// \brief Implementation of the B4::RunAction class #include "RunAction.hh" @@ -78,12 +78,6 @@ RunAction::RunAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::~RunAction() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void RunAction::BeginOfRunAction(const G4Run* /*run*/) { //inform the runManager to save random number seed diff --git a/examples/basic/B4/B4d/exampleB4d.cc b/examples/basic/B4/B4d/exampleB4d.cc index d144e6cf40..6c54e931c8 100644 --- a/examples/basic/B4/B4d/exampleB4d.cc +++ b/examples/basic/B4/B4d/exampleB4d.cc @@ -135,12 +135,15 @@ int main(int argc,char** argv) auto UImanager = G4UImanager::GetUIpointer(); // Activate score ntuple writer - // The Root output type (Root) is selected in B3Analysis.hh. - G4TScoreNtupleWriter scoreNtupleWriter; - // The verbose level can be set via UI commands + // The verbose level can be also set via UI commands // /score/ntuple/writerVerbose level - // or via the score ntuple writer function: - // scoreNtupleWriter.SetVerboseLevel(1); + // The default file type ("root") can be changed in xml, csv, hdf5 + // scoreNtupleWriter.SetDefaultFileType("xml"); + G4TScoreNtupleWriter scoreNtupleWriter; + scoreNtupleWriter.SetVerboseLevel(1); + scoreNtupleWriter.SetNtupleMerging(true); + // Note: merging ntuples is available only with Root output + // (the default in G4TScoreNtupleWriter) // Process macro or start UI session // diff --git a/examples/basic/B4/B4d/exampleB4d.out b/examples/basic/B4/B4d/exampleB4d.out index a612e1ca36..938ccf872e 100644 --- a/examples/basic/B4/B4d/exampleB4d.out +++ b/examples/basic/B4/B4d/exampleB4d.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -138,6 +140,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -165,7 +168,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -216,8 +219,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -699,6 +702,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -981,15 +989,15 @@ Setting was ignored. Using --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 265.157 MeV total track length: 19.1896 cm - Gap: total energy: 9.08988 MeV total track length: 4.65633 cm + Absorber: total energy: 259.894 MeV total track length: 18.9569 cm + Gap: total energy: 17.4244 MeV total track length: 8.74398 cm ----> print histograms statistic for the entire run - EAbs : mean = 265.157 MeV rms = 0 eV - EGap : mean = 9.08988 MeV rms = 0 eV - LAbs : mean = 19.1896 cm rms = 0 fm - LGap : mean = 4.65633 cm rms = 0 fm + EAbs : mean = 259.894 MeV rms = 0 eV + EGap : mean = 17.4244 MeV rms = 0 eV + LAbs : mean = 18.9569 cm rms = 0 fm + LGap : mean = 8.74398 cm rms = 0 fm ... write file : B4.root - done ... close file : B4.root - done There are 4 h1 histograms @@ -1060,15 +1068,15 @@ hFritiofCaptureAtRest,hBertiniCaptureAtRest,muMinusCaptureAtRest, dInela Using --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 263.024 MeV total track length: 19.1493 cm - Gap: total energy: 23.8653 MeV total track length: 12.0298 cm + Absorber: total energy: 278.136 MeV total track length: 20.1737 cm + Gap: total energy: 19.9095 MeV total track length: 10.0917 cm ----> print histograms statistic for the entire run - EAbs : mean = 263.024 MeV rms = 0 eV - EGap : mean = 23.8653 MeV rms = 0 eV - LAbs : mean = 19.1493 cm rms = 0 fm - LGap : mean = 12.0298 cm rms = 0 fm + EAbs : mean = 278.136 MeV rms = 0 eV + EGap : mean = 19.9095 MeV rms = 0 eV + LAbs : mean = 20.1737 cm rms = 0 fm + LGap : mean = 10.0917 cm rms = 0 fm ... write file : B4.root - done ... close file : B4.root - done There are 4 h1 histograms @@ -1085,15 +1093,15 @@ View them with "/vis/plot" or "/vis/reviewPlots". Using --> Event 0 starts. ---> End of event: 0 - Absorber: total energy: 452.086 MeV total track length: 32.6243 cm - Gap: total energy: 26.9004 MeV total track length: 13.1264 cm + Absorber: total energy: 435.043 MeV total track length: 31.1955 cm + Gap: total energy: 37.3961 MeV total track length: 18.5223 cm ----> print histograms statistic for the entire run - EAbs : mean = 452.086 MeV rms = 0 eV - EGap : mean = 26.9004 MeV rms = 0 eV - LAbs : mean = 32.6243 cm rms = 0 fm - LGap : mean = 13.1264 cm rms = 0 fm + EAbs : mean = 435.043 MeV rms = 0 eV + EGap : mean = 37.3961 MeV rms = 0 eV + LAbs : mean = 31.1955 cm rms = 0 fm + LGap : mean = 18.5223 cm rms = 0 fm ... write file : B4.root - done ... close file : B4.root - done There are 4 h1 histograms @@ -1105,4 +1113,4 @@ List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". Graphics systems deleted. Visualization Manager deleting... -### deleting chargedFilter 0x102f630 +### deleting chargedFilter 0x29dbec0 diff --git a/examples/basic/B4/B4d/include/ActionInitialization.hh b/examples/basic/B4/B4d/include/ActionInitialization.hh index 716558639d..79819439cc 100644 --- a/examples/basic/B4/B4d/include/ActionInitialization.hh +++ b/examples/basic/B4/B4d/include/ActionInitialization.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.hh +/// \file B4/B4d/include/ActionInitialization.hh /// \brief Definition of the B4d::ActionInitialization class #ifndef B4dActionInitialization_h @@ -40,8 +40,8 @@ namespace B4d class ActionInitialization : public G4VUserActionInitialization { public: - ActionInitialization(); - ~ActionInitialization() override; + ActionInitialization() = default; + ~ActionInitialization() override = default; void BuildForMaster() const override; void Build() const override; diff --git a/examples/basic/B4/B4d/include/DetectorConstruction.hh b/examples/basic/B4/B4d/include/DetectorConstruction.hh index 2f0e6edfc8..c4fb91b279 100644 --- a/examples/basic/B4/B4d/include/DetectorConstruction.hh +++ b/examples/basic/B4/B4d/include/DetectorConstruction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.hh +/// \file B4/B4d/include/DetectorConstruction.hh /// \brief Definition of the B4d::DetectorConstruction class #ifndef B4dDetectorConstruction_h @@ -58,8 +58,8 @@ namespace B4d class DetectorConstruction : public G4VUserDetectorConstruction { public: - DetectorConstruction(); - ~DetectorConstruction() override; + DetectorConstruction() = default; + ~DetectorConstruction() override = default; public: G4VPhysicalVolume* Construct() override; diff --git a/examples/basic/B4/B4d/include/EventAction.hh b/examples/basic/B4/B4d/include/EventAction.hh index 0817f2652e..b49f688808 100644 --- a/examples/basic/B4/B4d/include/EventAction.hh +++ b/examples/basic/B4/B4d/include/EventAction.hh @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file EventAction.hh -/// \brief Definition of the EventAction class +/// \file B4/B4d/include/EventAction.hh +/// \brief Definition of the B4d::EventAction class #ifndef EventAction_h #define EventAction_h 1 @@ -47,8 +47,8 @@ namespace B4d class EventAction : public G4UserEventAction { public: - EventAction(); - ~EventAction() override; + EventAction() = default; + ~EventAction() override = default; void BeginOfEventAction(const G4Event* event) override; void EndOfEventAction(const G4Event* event) override; diff --git a/examples/basic/B4/B4d/include/PrimaryGeneratorAction.hh b/examples/basic/B4/B4d/include/PrimaryGeneratorAction.hh index debeaa24a4..f505f5bc81 100644 --- a/examples/basic/B4/B4d/include/PrimaryGeneratorAction.hh +++ b/examples/basic/B4/B4d/include/PrimaryGeneratorAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.hh +/// \file B4/B4d/include/PrimaryGeneratorAction.hh /// \brief Definition of the PrimaryGeneratorAction class #ifndef B4PrimaryGeneratorAction_h diff --git a/examples/basic/B4/B4d/include/RunAction.hh b/examples/basic/B4/B4d/include/RunAction.hh index 02e6c9f982..aedbd35992 100644 --- a/examples/basic/B4/B4d/include/RunAction.hh +++ b/examples/basic/B4/B4d/include/RunAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.hh +/// \file B4/B4d/include/RunAction.hh /// \brief Definition of the B4::RunAction class #ifndef B4RunAction_h @@ -60,7 +60,7 @@ class RunAction : public G4UserRunAction { public: RunAction(); - ~RunAction() override; + ~RunAction() override = default; void BeginOfRunAction(const G4Run*) override; void EndOfRunAction(const G4Run*) override; diff --git a/examples/basic/B4/B4d/src/ActionInitialization.cc b/examples/basic/B4/B4d/src/ActionInitialization.cc index 55583d5b73..36aabb37e8 100644 --- a/examples/basic/B4/B4d/src/ActionInitialization.cc +++ b/examples/basic/B4/B4d/src/ActionInitialization.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.cc +/// \file B4/B4d/src/ActionInitialization.cc /// \brief Implementation of the B4d::ActionInitialization class #include "ActionInitialization.hh" @@ -39,16 +39,6 @@ namespace B4d //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ActionInitialization::~ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ActionInitialization::BuildForMaster() const { SetUserAction(new RunAction); diff --git a/examples/basic/B4/B4d/src/DetectorConstruction.cc b/examples/basic/B4/B4d/src/DetectorConstruction.cc index bc1d8d065c..2d514858c9 100644 --- a/examples/basic/B4/B4d/src/DetectorConstruction.cc +++ b/examples/basic/B4/B4d/src/DetectorConstruction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.cc +/// \file B4/B4d/src/DetectorConstruction.cc /// \brief Implementation of the B4d::DetectorConstruction class #include "DetectorConstruction.hh" @@ -62,18 +62,6 @@ G4GlobalMagFieldMessenger* DetectorConstruction::fMagFieldMessenger = nullptr; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -DetectorConstruction::DetectorConstruction() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -DetectorConstruction::~DetectorConstruction() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4VPhysicalVolume* DetectorConstruction::Construct() { // Define materials @@ -146,16 +134,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() defaultMaterial, // its material "World"); // its name - auto worldPV - = new G4PVPlacement( - 0, // no rotation - G4ThreeVector(), // at (0,0,0) - worldLV, // its logical volume - "World", // its name - 0, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + auto worldPV = new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + worldLV, // its logical volume + "World", // its name + nullptr, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // Calorimeter @@ -170,15 +156,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() defaultMaterial, // its material "Calorimeter"); // its name - new G4PVPlacement( - 0, // no rotation - G4ThreeVector(), // at (0,0,0) - calorLV, // its logical volume - "Calorimeter", // its name - worldLV, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(), // at (0,0,0) + calorLV, // its logical volume + "Calorimeter", // its name + worldLV, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // Layer @@ -214,15 +199,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() absorberMaterial, // its material "AbsoLV"); // its name - new G4PVPlacement( - 0, // no rotation - G4ThreeVector(0., 0., -gapThickness/2), // its position - absorberLV, // its logical volume - "Abso", // its name - layerLV, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(0., 0., -gapThickness / 2), // its position + absorberLV, // its logical volume + "Abso", // its name + layerLV, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // Gap @@ -237,15 +221,14 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() gapMaterial, // its material "GapLV"); // its name - new G4PVPlacement( - 0, // no rotation - G4ThreeVector(0., 0., absoThickness/2), // its position - gapLV, // its logical volume - "Gap", // its name - layerLV, // its mother volume - false, // no boolean operation - 0, // copy number - fCheckOverlaps); // checking overlaps + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(0., 0., absoThickness / 2), // its position + gapLV, // its logical volume + "Gap", // its name + layerLV, // its mother volume + false, // no boolean operation + 0, // copy number + fCheckOverlaps); // checking overlaps // // print parameters diff --git a/examples/basic/B4/B4d/src/EventAction.cc b/examples/basic/B4/B4d/src/EventAction.cc index a5fbe12d41..2a08663141 100644 --- a/examples/basic/B4/B4d/src/EventAction.cc +++ b/examples/basic/B4/B4d/src/EventAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.cc +/// \file B4/B4d/src/EventAction.cc /// \brief Implementation of the B4d::EventAction class #include "EventAction.hh" @@ -44,16 +44,6 @@ namespace B4d //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::EventAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -EventAction::~EventAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4THitsMap* EventAction::GetHitsCollection(G4int hcID, const G4Event* event) const diff --git a/examples/basic/B4/B4d/src/PrimaryGeneratorAction.cc b/examples/basic/B4/B4d/src/PrimaryGeneratorAction.cc index 471aa628bb..b993401ce7 100644 --- a/examples/basic/B4/B4d/src/PrimaryGeneratorAction.cc +++ b/examples/basic/B4/B4d/src/PrimaryGeneratorAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.cc +/// \file B4/B4d/src/PrimaryGeneratorAction.cc /// \brief Implementation of the B4::PrimaryGeneratorAction class #include "PrimaryGeneratorAction.hh" diff --git a/examples/basic/B4/B4d/src/RunAction.cc b/examples/basic/B4/B4d/src/RunAction.cc index 53e8d5c82a..5be64c55ce 100644 --- a/examples/basic/B4/B4d/src/RunAction.cc +++ b/examples/basic/B4/B4d/src/RunAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.cc +/// \file B4/B4d/src/RunAction.cc /// \brief Implementation of the B4::RunAction class #include "RunAction.hh" @@ -78,12 +78,6 @@ RunAction::RunAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::~RunAction() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void RunAction::BeginOfRunAction(const G4Run* /*run*/) { //inform the runManager to save random number seed diff --git a/examples/basic/B4/History b/examples/basic/B4/History index 98622bd7a8..4200beeaa8 100644 --- a/examples/basic/B4/History +++ b/examples/basic/B4/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-29 I. Hrivnacova (exampleB4-V11-00-02) +- Activated merging ntuples with score ntuple writer in B4d + ## 2021-12-10 Ben Morgan (exampleB4-V11-00-00) - Change to new Markdown History format diff --git a/examples/basic/B5/exampleB5.out b/examples/basic/B5/exampleB5.out index 284dbeaf6f..71f3bd5a9a 100644 --- a/examples/basic/B5/exampleB5.out +++ b/examples/basic/B5/exampleB5.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -231,6 +233,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -258,7 +261,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -309,8 +312,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -792,6 +795,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1078,53 +1086,52 @@ Setting was ignored. Hodoscope 1 has 1 hits. Hodoscope[7] 4.9870027260872 (nsec) Hodoscope 2 has 0 hits. -Drift Chamber 1 has 46 hits. - Layer[0] : time 6.6921016055606 (nsec) --- local (x,y) 3.2174237136236, 14.06702241871 - Layer[0] : time 6.7193767145763 (nsec) --- local (x,y) 91.073613413197, -73.35358483658 - Layer[0] : time 6.7088275734709 (nsec) --- local (x,y) -3.82977868144, 96.695032108841 - Layer[0] : time 6.72261031349 (nsec) --- local (x,y) -95.10139776558, -68.982869993069 - Layer[0] : time 6.7701746009919 (nsec) --- local (x,y) 8.5038452551813, 169.57339254494 - Layer[0] : time 6.6907462407481 (nsec) --- local (x,y) -28.684411245389, -58.816255620956 - Layer[0] : time 6.6871958429711 (nsec) --- local (x,y) 53.432538342905, 32.797504100218 - Layer[0] : time 6.7522044194228 (nsec) --- local (x,y) 118.44764375366, -36.920103309071 - Layer[0] : time 6.6716212250029 (nsec) --- local (x,y) 2.3132025732591, -9.1005710525892 - Layer[0] : time 6.68243125545 (nsec) --- local (x,y) 8.1172099122374, 42.149641775363 - Layer[0] : time 6.671633389822 (nsec) --- local (x,y) -0.53583662913748, 7.1539944568113 - Layer[1] : time 8.3807067774327 (nsec) --- local (x,y) 6.3818947877083, 27.984537630516 - Layer[1] : time 8.4348725898238 (nsec) --- local (x,y) 181.32920216028, -146.00845791121 - Layer[1] : time 8.4140968134496 (nsec) --- local (x,y) -7.4458538436676, 192.79720580915 - Layer[1] : time 8.4416737184869 (nsec) --- local (x,y) -189.73933159281, -137.58518845583 - Layer[1] : time 8.3779899078884 (nsec) --- local (x,y) -57.166782232961, -117.18650659046 - Layer[1] : time 8.3708955079154 (nsec) --- local (x,y) 106.45602876676, 65.236543421358 - Layer[1] : time 8.5001011976273 (nsec) --- local (x,y) 235.3575432428, -74.169318222848 - Layer[1] : time 8.3398914340913 (nsec) --- local (x,y) 4.5820002640044, -18.146944187286 - Layer[1] : time 8.3614463144593 (nsec) --- local (x,y) 16.13439426329, 84.038315550998 - Layer[1] : time 8.3399154397204 (nsec) --- local (x,y) -1.0818507621463, 14.237803768558 - Layer[2] : time 10.069311689958 (nsec) --- local (x,y) 9.5233005440984, 41.89866899647 - Layer[2] : time 10.150439799348 (nsec) --- local (x,y) 271.67271120889, -218.70397842853 - Layer[2] : time 10.160751480325 (nsec) --- local (x,y) -284.36563369698, -206.23338385565 - Layer[2] : time 10.065247043636 (nsec) --- local (x,y) -85.722069006341, -175.55441493976 - Layer[2] : time 10.054589867381 (nsec) --- local (x,y) 159.47528226576, 97.656799011915 - Layer[2] : time 10.247819367134 (nsec) --- local (x,y) 352.07453443464, -111.26698063194 - Layer[2] : time 10.008161323143 (nsec) --- local (x,y) 6.8791985739633, -27.18079308805 - Layer[2] : time 10.040443896763 (nsec) --- local (x,y) 24.117222979985, 125.86880157625 - Layer[2] : time 10.008196687849 (nsec) --- local (x,y) -1.6191665797561, 21.305196218451 - Layer[3] : time 11.757916349147 (nsec) --- local (x,y) 12.663840736575, 55.805315170934 - Layer[3] : time 11.865997373947 (nsec) --- local (x,y) 362.03388734458, -291.35651248086 - Layer[3] : time 11.879970573677 (nsec) --- local (x,y) -379.22400183236, -274.87518686515 - Layer[3] : time 11.752487840949 (nsec) --- local (x,y) -114.15261049941, -233.93949567014 - Layer[3] : time 11.738250917464 (nsec) --- local (x,y) 212.42073089502, 130.04114158654 - Layer[3] : time 11.995580225667 (nsec) --- local (x,y) 468.78061628414, -148.54064275865 - Layer[3] : time 11.676430736871 (nsec) --- local (x,y) 9.1893846194632, -36.203380611904 - Layer[3] : time 11.719527240928 (nsec) --- local (x,y) 32.125003323327, 167.99940290862 - Layer[3] : time 11.676477057697 (nsec) --- local (x,y) -2.1495367673944, 28.354205857466 - Layer[4] : time 13.446522314786 (nsec) --- local (x,y) 15.787353223536, 69.722883267136 - Layer[4] : time 13.439728882519 (nsec) --- local (x,y) -142.49232324818, -292.36740312903 - Layer[4] : time 13.42190856185 (nsec) --- local (x,y) 265.35001767069, 162.43495457889 - Layer[4] : time 13.743470189978 (nsec) --- local (x,y) 585.54174737388, -186.12774961169 - Layer[4] : time 13.344699501429 (nsec) --- local (x,y) 11.503964469951, -45.213992950458 - Layer[4] : time 13.398646250253 (nsec) --- local (x,y) 40.185828392132, 210.24500372786 - Layer[4] : time 13.344759863943 (nsec) --- local (x,y) -2.682307942177, 35.454528079612 +Drift Chamber 1 has 45 hits. + Layer[0] : time 6.6722253322166 (nsec) --- local (x,y) -2.1685854985035, -10.525684260597 + Layer[0] : time 6.6728346305115 (nsec) --- local (x,y) -12.55729297426, 16.601797990667 + Layer[0] : time 6.7031946230898 (nsec) --- local (x,y) 76.304670998889, 35.645367957652 + Layer[0] : time 6.6745689242789 (nsec) --- local (x,y) -18.980792541858, 5.6161679008945 + Layer[0] : time 6.6730658189161 (nsec) --- local (x,y) 0.62318757711023, 20.429332547668 + Layer[0] : time 6.9506036360109 (nsec) --- local (x,y) 148.78417924615, -145.52583886323 + Layer[0] : time 6.6951122660413 (nsec) --- local (x,y) 62.593811093609, -15.561754762066 + Layer[0] : time 6.6821968358098 (nsec) --- local (x,y) 49.919657383577, 13.11453954305 + Layer[0] : time 7.0091070869362 (nsec) --- local (x,y) -171.94045230699, -259.7679038832 + Layer[1] : time 8.3410946312362 (nsec) --- local (x,y) -4.3322607935703, -20.96936373715 + Layer[1] : time 8.34231625772 (nsec) --- local (x,y) -25.050159762233, 33.123606433344 + Layer[1] : time 8.4764173801926 (nsec) --- local (x,y) -11.235010995008, 25.881555878092 + Layer[1] : time 8.5690353960087 (nsec) --- local (x,y) -1.2769230274321, 26.756451873806 + Layer[1] : time 8.4028161779347 (nsec) --- local (x,y) 152.06345437315, 71.04208785476 + Layer[1] : time 8.3457614999008 (nsec) --- local (x,y) -37.771634999413, 11.258486754013 + Layer[1] : time 8.3427762216902 (nsec) --- local (x,y) 1.2227606214462, 40.748110758318 + Layer[1] : time 8.8961218586258 (nsec) --- local (x,y) 296.57487823761, -290.11121667819 + Layer[1] : time 8.3867080941221 (nsec) --- local (x,y) 124.8621391639, -30.50608612112 + Layer[1] : time 8.3609570118063 (nsec) --- local (x,y) 99.444916398702, 26.140720831162 + Layer[2] : time 10.009963172665 (nsec) --- local (x,y) -6.4890580953253, -31.403184049773 + Layer[2] : time 10.011803458211 (nsec) --- local (x,y) -37.564558426591, 49.679564413299 + Layer[2] : time 10.643023860161 (nsec) --- local (x,y) 152.38862006521, 31.526513638226 + Layer[2] : time 10.102426779603 (nsec) --- local (x,y) 227.80856655523, 106.42061742403 + Layer[2] : time 10.016953115644 (nsec) --- local (x,y) -56.535628462312, 16.960091205678 + Layer[2] : time 10.012495378546 (nsec) --- local (x,y) 1.8701096662203, 61.12981882072 + Layer[2] : time 10.078197591734 (nsec) --- local (x,y) 186.87607934649, -45.397741198141 + Layer[2] : time 10.208867531443 (nsec) --- local (x,y) 216.55730581828, 24.35006016102 + Layer[2] : time 10.039701872195 (nsec) --- local (x,y) 148.91509482271, 39.197736530211 + Layer[3] : time 11.678828696002 (nsec) --- local (x,y) -8.5971371347705, -41.803170730572 + Layer[3] : time 11.681296728987 (nsec) --- local (x,y) -50.10121751934, 66.273475730768 + Layer[3] : time 11.802029784703 (nsec) --- local (x,y) 303.54630229859, 141.7817595671 + Layer[3] : time 11.688142885919 (nsec) --- local (x,y) -75.276220931844, 22.686727967842 + Layer[3] : time 36.66391370896 (nsec) --- local (x,y) -996.59796131677, 108.7268908209 + Layer[3] : time 11.682223261365 (nsec) --- local (x,y) 2.543094945753, 81.574675848579 + Layer[3] : time 11.7696307042 (nsec) --- local (x,y) 248.65398421881, -60.561629881631 + Layer[3] : time 12.346518723663 (nsec) --- local (x,y) 270.00383075849, -280.07764424956 + Layer[3] : time 11.718488438861 (nsec) --- local (x,y) 198.49550619226, 52.314902985342 + Layer[4] : time 13.347694350342 (nsec) --- local (x,y) -10.67793827205, -52.210139369582 + Layer[4] : time 13.35079076589 (nsec) --- local (x,y) -62.637772557913, 82.874340319172 + Layer[4] : time 13.501647467266 (nsec) --- local (x,y) 379.31191209742, 177.14538055566 + Layer[4] : time 13.359328958582 (nsec) --- local (x,y) -93.973783202662, 28.452702691353 + Layer[4] : time 34.930515889814 (nsec) --- local (x,y) -857.54415111348, 102.84558012514 + Layer[4] : time 13.351941069961 (nsec) --- local (x,y) 3.1227992586728, 101.94817110892 + Layer[4] : time 13.461099922007 (nsec) --- local (x,y) 310.52762482553, -75.647525394928 + Layer[4] : time 13.397288923836 (nsec) --- local (x,y) 248.14813603506, 65.316439570235 Drift Chamber 2 has 0 hits. EM Calorimeter has 0 hits. Total Edep is 0 (MeV) Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) @@ -1136,8 +1143,8 @@ There are 2 h1 histograms 0 with 5 entries: Drift Chamber 1 # Hits 1 with 5 entries: Drift Chamber 2 # Hits There are 2 h2 histograms - 0 with 67 entries: Drift Chamber 1 X vs Y - 1 with 25 entries: Drift Chamber 2 X vs Y + 0 with 69 entries: Drift Chamber 1 X vs Y + 1 with 26 entries: Drift Chamber 2 X vs Y List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". ### Run 1 starts. @@ -1149,25 +1156,33 @@ View them with "/vis/plot" or "/vis/reviewPlots". >>> Event 0 >>> Simulation truth : pi+ (0,0,100000) Hodoscope 1 has 1 hits. - Hodoscope[7] 4.9867880803626 (nsec) -Hodoscope 2 has 1 hits. - Hodoscope[10] 42.694599046889 (nsec) + Hodoscope[7] 4.98678808037 (nsec) +Hodoscope 2 has 3 hits. + Hodoscope[10] 42.694497782029 (nsec) + Hodoscope[12] 163.3149429663 (nsec) + Hodoscope[22] 637.87003152573 (nsec) Drift Chamber 1 has 5 hits. - Layer[0] : time 6.6709548390592 (nsec) --- local (x,y) 0.0080014505528755, -0.024230364725517 - Layer[1] : time 8.3387769410952 (nsec) --- local (x,y) 0.018395814658611, -0.042888431431736 - Layer[2] : time 10.006599042908 (nsec) --- local (x,y) 0.028674225960898, -0.059708531147476 - Layer[3] : time 11.674421144726 (nsec) --- local (x,y) 0.04046135499482, -0.075524706202939 - Layer[4] : time 13.342243246679 (nsec) --- local (x,y) 0.054602420536908, -0.090638670946698 -Drift Chamber 2 has 7 hits. - Layer[0] : time 34.367272496607 (nsec) --- local (x,y) -82.637093110947, -0.37141154153383 - Layer[0] : time 34.417499082794 (nsec) --- local (x,y) -103.17436815728, -5.9691487155091 - Layer[0] : time 35.337062507097 (nsec) --- local (x,y) -316.10473696177, -98.624041809825 - Layer[1] : time 36.036008945281 (nsec) --- local (x,y) -99.195745582744, -0.39501601099343 - Layer[2] : time 37.704745366954 (nsec) --- local (x,y) -115.75415547603, -0.4171406117779 - Layer[3] : time 39.373481321403 (nsec) --- local (x,y) -132.30833582366, -0.43692070582273 - Layer[4] : time 41.042217143258 (nsec) --- local (x,y) -148.86131766008, -0.4542381042309 -EM Calorimeter has 60 hits. Total Edep is 1108.0126115127 (MeV) -Hadron Calorimeter has 14 hits. Total Edep is 4382.7682210086 (MeV) + Layer[0] : time 6.6709548381816 (nsec) --- local (x,y) 0.014894199832824, 0.013472351482037 + Layer[1] : time 8.338776939498 (nsec) --- local (x,y) 0.024694969212443, 0.025568933617367 + Layer[2] : time 10.006599040679 (nsec) --- local (x,y) 0.030948346863415, 0.038293551246823 + Layer[3] : time 11.674421142161 (nsec) --- local (x,y) 0.035563708762211, 0.054689857668158 + Layer[4] : time 13.342243243865 (nsec) --- local (x,y) 0.04121371312553, 0.072635351311393 +Drift Chamber 2 has 13 hits. + Layer[0] : time 34.367171978925 (nsec) --- local (x,y) -82.627128755056, 0.37861786104169 + Layer[1] : time 36.035907615534 (nsec) --- local (x,y) -99.1784104034, 0.41062208520941 + Layer[2] : time 37.704643396416 (nsec) --- local (x,y) -115.73100361403, 0.44029994069447 + Layer[3] : time 39.373379212584 (nsec) --- local (x,y) -132.28391605469, 0.4702303326989 + Layer[3] : time 39.469745795164 (nsec) --- local (x,y) -140.47244026579, -22.634930178229 + Layer[3] : time 39.471955341543 (nsec) --- local (x,y) -140.27254976308, -22.050388246948 + Layer[3] : time 39.472768843243 (nsec) --- local (x,y) -140.28156910961, -22.054390092533 + Layer[3] : time 39.473594370476 (nsec) --- local (x,y) -140.28706563788, -22.064029211745 + Layer[3] : time 39.474510112167 (nsec) --- local (x,y) -140.29620250448, -22.081503859448 + Layer[3] : time 39.475733015836 (nsec) --- local (x,y) -140.29819325465, -22.116204348481 + Layer[3] : time 39.477006082014 (nsec) --- local (x,y) -140.2558809921, -22.118345013201 + Layer[4] : time 41.042115233533 (nsec) --- local (x,y) -148.83868011974, 0.50207417250738 + Layer[4] : time 69.448371829629 (nsec) --- local (x,y) -629.797672962, 272.25995641105 +EM Calorimeter has 70 hits. Total Edep is 22842.93635341 (MeV) +Hadron Calorimeter has 17 hits. Total Edep is 2954.2365187477 (MeV) ... write file : B5.root - done ... write file : B5ntuple.root - done ... close file : B5.root - done @@ -1177,7 +1192,7 @@ There are 2 h1 histograms 1 with 5 entries: Drift Chamber 2 # Hits There are 2 h2 histograms 0 with 25 entries: Drift Chamber 1 X vs Y - 1 with 28 entries: Drift Chamber 2 X vs Y + 1 with 48 entries: Drift Chamber 2 X vs Y List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". ### Run 2 starts. @@ -1189,25 +1204,43 @@ View them with "/vis/plot" or "/vis/reviewPlots". >>> Event 0 >>> Simulation truth : e+ (-0,0,100000) Hodoscope 1 has 1 hits. - Hodoscope[7] 4.9867832233818 (nsec) -Hodoscope 2 has 3 hits. - Hodoscope[9] 43.185893236412 (nsec) - Hodoscope[5] 530.70566168443 (nsec) - Hodoscope[6] 540.1334717844 (nsec) -Drift Chamber 1 has 5 hits. - Layer[0] : time 6.6709483402952 (nsec) --- local (x,y) 0.0071106934533801, 0.017710507600474 - Layer[1] : time 8.3387688164396 (nsec) --- local (x,y) 0.011356842834377, 0.022864354854366 - Layer[2] : time 10.006589292487 (nsec) --- local (x,y) 0.012381024649148, 0.026849006290784 - Layer[3] : time 11.674409768544 (nsec) --- local (x,y) 0.012575448038472, 0.031133266889442 - Layer[4] : time 13.342230244586 (nsec) --- local (x,y) 0.01182194383742, 0.03486467527059 + Hodoscope[7] 4.9867832234043 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[8] 43.190696388341 (nsec) +Drift Chamber 1 has 6 hits. + Layer[0] : time 6.6709483401196 (nsec) --- local (x,y) 0.0016154198787196, 0.0093846377149814 + Layer[0] : time 8.1886268289788 (nsec) --- local (x,y) 4.7535937532564, 150.63659282206 + Layer[1] : time 8.3387688161443 (nsec) --- local (x,y) 0.0027254029041876, 0.010755021298588 + Layer[2] : time 10.006589292168 (nsec) --- local (x,y) 0.0042401180767799, 0.011463107217922 + Layer[3] : time 11.674409768191 (nsec) --- local (x,y) 0.0041411531295479, 0.011639900418066 + Layer[4] : time 13.342230244213 (nsec) --- local (x,y) 0.0043025248277636, 0.010222223309773 Drift Chamber 2 has 5 hits. - Layer[0] : time 34.848661495446 (nsec) --- local (x,y) -147.53170189072, 0.054804337659369 - Layer[1] : time 36.519382262481 (nsec) --- local (x,y) -177.0315551953, 0.061145529409952 - Layer[2] : time 38.190103415396 (nsec) --- local (x,y) -206.53337267063, 0.067196853643514 - Layer[3] : time 39.860824505668 (nsec) --- local (x,y) -236.03487148292, 0.072278309215978 - Layer[4] : time 41.531545529344 (nsec) --- local (x,y) -265.53603167715, 0.074539575952965 -EM Calorimeter has 54 hits. Total Edep is 81933.518963298 (MeV) -Hadron Calorimeter has 8 hits. Total Edep is 128.62340212089 (MeV) + Layer[0] : time 34.847321503363 (nsec) --- local (x,y) -176.04097528602, 0.0035808605853596 + Layer[1] : time 36.519273316522 (nsec) --- local (x,y) -211.2557114237, 0.011671722726596 + Layer[2] : time 38.191225436586 (nsec) --- local (x,y) -246.47175737072, 0.01880335470067 + Layer[3] : time 39.863177317524 (nsec) --- local (x,y) -281.68678327134, 0.024152793919158 + Layer[4] : time 41.535129652476 (nsec) --- local (x,y) -316.90374562916, 0.033482148578163 +EM Calorimeter has 45 hits. Total Edep is 89130.952075927 (MeV) +Hadron Calorimeter has 7 hits. Total Edep is 51.712072716656 (MeV) + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : GeomNav1002 + issued by : G4Navigator::ComputeStep() +Stuck Track: potential geometry or navigation problem. + Track stuck, not moving for 10 steps. + Current phys volume: 'worldPhysical' + - at position : (256.8447378427963,106.7280836472216,-966.4526789462923) + in direction: (0.830955475515521,0.4683372009728602,0.3002886343098609) + (local position: (256.8447378427963,106.7280836472216,-966.4526789462923)) + (local direction: (0.830955475515521,0.4683372009728602,0.3002886343098609)). + Previous phys volume: 'magneticPhysical' + + Likely geometry overlap - else navigation problem ! + *** Trying to get *unstuck* using a push - expanding step to 1e-07 (mm) ... Potential overlap in geometry ! + +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + ... write file : B5.root - done ... write file : B5ntuple.root - done ... close file : B5.root - done @@ -1216,8 +1249,8 @@ There are 2 h1 histograms 0 with 5 entries: Drift Chamber 1 # Hits 1 with 5 entries: Drift Chamber 2 # Hits There are 2 h2 histograms - 0 with 30 entries: Drift Chamber 1 X vs Y - 1 with 25 entries: Drift Chamber 2 X vs Y + 0 with 26 entries: Drift Chamber 1 X vs Y + 1 with 24 entries: Drift Chamber 2 X vs Y List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". ### Run 3 starts. @@ -1229,23 +1262,23 @@ View them with "/vis/plot" or "/vis/reviewPlots". >>> Event 0 >>> Simulation truth : proton (-0,0,10000) Hodoscope 1 has 1 hits. - Hodoscope[7] 5.0086863493852 (nsec) + Hodoscope[7] 5.0086867864829 (nsec) Hodoscope 2 has 1 hits. - Hodoscope[9] 43.375256957676 (nsec) + Hodoscope[9] 43.371389318768 (nsec) Drift Chamber 1 has 5 hits. - Layer[0] : time 6.7002516450106 (nsec) --- local (x,y) 0.027078129147213, 0.23075494870474 - Layer[1] : time 8.3754006795469 (nsec) --- local (x,y) -0.0019971037848794, 0.42334902153428 - Layer[2] : time 10.050549887076 (nsec) --- local (x,y) -0.033363695797101, 0.61938883525508 - Layer[3] : time 11.725699231616 (nsec) --- local (x,y) -0.054676345830224, 0.81261321763877 - Layer[4] : time 13.400848699971 (nsec) --- local (x,y) -0.078024131867053, 0.98785802570401 + Layer[0] : time 6.7002531375698 (nsec) --- local (x,y) -0.1460554297821, 0.17151155476643 + Layer[1] : time 8.3754034028492 (nsec) --- local (x,y) -0.28862089071368, 0.32341623461762 + Layer[2] : time 10.050553853491 (nsec) --- local (x,y) -0.44579623285736, 0.50012817124628 + Layer[3] : time 11.725704498744 (nsec) --- local (x,y) -0.61574364717187, 0.6866593363354 + Layer[4] : time 13.400855241618 (nsec) --- local (x,y) -0.77343138472636, 0.86017035241204 Drift Chamber 2 has 5 hits. - Layer[0] : time 35.001323618792 (nsec) --- local (x,y) -148.08732537185, 2.4092158421253 - Layer[1] : time 36.679399459546 (nsec) --- local (x,y) -177.64310036965, 2.5723485665003 - Layer[2] : time 38.357472265547 (nsec) --- local (x,y) -207.18277500486, 2.7407709790555 - Layer[3] : time 40.035545504277 (nsec) --- local (x,y) -236.72402439218, 2.912347597932 - Layer[4] : time 41.713622360592 (nsec) --- local (x,y) -266.2826692539, 3.0680186710967 -EM Calorimeter has 3 hits. Total Edep is 215.15953610717 (MeV) -Hadron Calorimeter has 9 hits. Total Edep is 473.62794169123 (MeV) + Layer[0] : time 34.997397284964 (nsec) --- local (x,y) -150.9084812523, 3.8512765012741 + Layer[1] : time 36.675486321426 (nsec) --- local (x,y) -180.52596590137, 4.0611790087952 + Layer[2] : time 38.353577072367 (nsec) --- local (x,y) -210.15168395531, 4.2638601079926 + Layer[3] : time 40.031656924164 (nsec) --- local (x,y) -239.72202110482, 4.3961608210453 + Layer[4] : time 41.709744143014 (nsec) --- local (x,y) -269.32899825636, 4.4948146896374 +EM Calorimeter has 48 hits. Total Edep is 3850.2074376522 (MeV) +Hadron Calorimeter has 9 hits. Total Edep is 152.75896692419 (MeV) ... write file : B5.root - done ... write file : B5ntuple.root - done ... close file : B5.root - done @@ -1265,25 +1298,25 @@ View them with "/vis/plot" or "/vis/reviewPlots". ... open analysis file : B5.root - done --> Event 0 starts. ->>> Event 0 >>> Simulation truth : pi+ (-0,0,10000) +>>> Event 0 >>> Simulation truth : pi+ (0,0,10000) Hodoscope 1 has 1 hits. - Hodoscope[7] 4.9872689227119 (nsec) + Hodoscope[7] 4.9872689261197 (nsec) Hodoscope 2 has 1 hits. - Hodoscope[10] 42.696818419734 (nsec) + Hodoscope[10] 42.701463030466 (nsec) Drift Chamber 1 has 5 hits. - Layer[0] : time 6.6715981986817 (nsec) --- local (x,y) -0.039348401260298, -0.14658450096636 - Layer[1] : time 8.3395812403403 (nsec) --- local (x,y) -0.068303647031072, -0.28049871006372 - Layer[2] : time 10.007564284578 (nsec) --- local (x,y) -0.089441415314357, -0.41470653229214 - Layer[3] : time 11.675547320421 (nsec) --- local (x,y) -0.095024341519753, -0.53712512247964 - Layer[4] : time 13.343530366673 (nsec) --- local (x,y) -0.13973030583212, -0.65974258700924 + Layer[0] : time 6.6715981924411 (nsec) --- local (x,y) 0.081228001280494, -0.07615722168592 + Layer[1] : time 8.3395812213161 (nsec) --- local (x,y) 0.20192904962018, -0.10407023528524 + Layer[2] : time 10.007564271394 (nsec) --- local (x,y) 0.34239921098865, -0.12789664764659 + Layer[3] : time 11.675547329794 (nsec) --- local (x,y) 0.49096755955065, -0.1362320415514 + Layer[4] : time 13.343530390021 (nsec) --- local (x,y) 0.63848130830785, -0.13845728825786 Drift Chamber 2 has 5 hits. - Layer[0] : time 34.368676396163 (nsec) --- local (x,y) -83.39141502054, -2.7221787887118 - Layer[1] : time 36.037579549026 (nsec) --- local (x,y) -100.000223768, -2.9216223922712 - Layer[2] : time 37.706484751895 (nsec) --- local (x,y) -116.62724286436, -3.1413027296978 - Layer[3] : time 39.375389165965 (nsec) --- local (x,y) -133.24708200554, -3.3629870719305 - Layer[4] : time 41.044282550947 (nsec) --- local (x,y) -149.7652411276, -3.6849444707331 -EM Calorimeter has 6 hits. Total Edep is 203.11392936698 (MeV) -Hadron Calorimeter has 9 hits. Total Edep is 358.49535257082 (MeV) + Layer[0] : time 34.373972904508 (nsec) --- local (x,y) -83.030086889928, 0.39616541498863 + Layer[1] : time 36.042907957522 (nsec) --- local (x,y) -99.925655104618, 0.42968502332957 + Layer[2] : time 37.711647595029 (nsec) --- local (x,y) -115.26336228278, 0.16103561631177 + Layer[3] : time 39.380370710545 (nsec) --- local (x,y) -130.47056865692, -0.13429693832064 + Layer[4] : time 41.04909308024 (nsec) --- local (x,y) -145.66967780939, -0.46375492018868 +EM Calorimeter has 2 hits. Total Edep is 182.55179581951 (MeV) +Hadron Calorimeter has 2 hits. Total Edep is 42.255980433698 (MeV) ... write file : B5.root - done ... write file : B5ntuple.root - done ... close file : B5.root - done @@ -1303,27 +1336,26 @@ View them with "/vis/plot" or "/vis/reviewPlots". ... open analysis file : B5.root - done --> Event 0 starts. ->>> Event 0 >>> Simulation truth : e+ (-0,0,10000) +>>> Event 0 >>> Simulation truth : e+ (0,0,10000) Hodoscope 1 has 1 hits. - Hodoscope[7] 4.9867832354429 (nsec) -Hodoscope 2 has 1 hits. - Hodoscope[5] 43.266116170643 (nsec) -Drift Chamber 1 has 7 hits. - Layer[0] : time 6.6709483635123 (nsec) --- local (x,y) 0.13617602537117, -0.012835258825709 - Layer[1] : time 8.338768849031 (nsec) --- local (x,y) 0.18621548487428, -0.025789227145981 - Layer[2] : time 10.006589326245 (nsec) --- local (x,y) 0.20224573751072, -0.035057357472812 - Layer[2] : time 17.346633318171 (nsec) --- local (x,y) -996.81363279979, -149.69677421867 - Layer[3] : time 11.674409805316 (nsec) --- local (x,y) 0.22844053334522, -0.026097559617902 - Layer[3] : time 14.658611523404 (nsec) --- local (x,y) -550.94592512662, -109.29558689645 - Layer[4] : time 13.342230309283 (nsec) --- local (x,y) 0.30239013987494, 0.017554019763001 + Hodoscope[7] 4.9867832546962 (nsec) +Hodoscope 2 has 2 hits. + Hodoscope[9] 43.184072799747 (nsec) + Hodoscope[7] 56.112378099769 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.6709484527152 (nsec) --- local (x,y) -0.14765628338004, -0.078146027248105 + Layer[1] : time 8.3387690283714 (nsec) --- local (x,y) -0.21514720729188, -0.23506928793186 + Layer[2] : time 10.006589602551 (nsec) --- local (x,y) -0.28428861520892, -0.38993719447868 + Layer[3] : time 11.674410136718 (nsec) --- local (x,y) -0.36065300790436, -0.49417843342758 + Layer[4] : time 13.342230663082 (nsec) --- local (x,y) -0.42520696712251, -0.59546442547437 Drift Chamber 2 has 5 hits. - Layer[0] : time 34.861845159188 (nsec) --- local (x,y) -348.93840446507, 0.059098043638269 - Layer[1] : time 36.545986863448 (nsec) --- local (x,y) -419.0591721348, 0.040866313012192 - Layer[2] : time 38.230136452955 (nsec) --- local (x,y) -489.19694655559, -0.0042093148190374 - Layer[3] : time 39.9143026602 (nsec) --- local (x,y) -559.37058096167, -0.037566276177211 - Layer[4] : time 41.598463751586 (nsec) --- local (x,y) -629.5331819513, -0.066403754387262 -EM Calorimeter has 15 hits. Total Edep is 8275.7570937438 (MeV) -Hadron Calorimeter has 3 hits. Total Edep is 3.295730224609 (MeV) + Layer[0] : time 34.846758149734 (nsec) --- local (x,y) -148.87452278712, -1.3718070080457 + Layer[1] : time 36.517484088699 (nsec) --- local (x,y) -178.40060446262, -1.4369854622858 + Layer[2] : time 38.188214270747 (nsec) --- local (x,y) -207.9483021509, -1.4743608097198 + Layer[3] : time 39.858951365121 (nsec) --- local (x,y) -237.53112866997, -1.4901416245997 + Layer[4] : time 41.52969663966 (nsec) --- local (x,y) -267.1554367809, -1.522807501765 +EM Calorimeter has 17 hits. Total Edep is 9398.4966655565 (MeV) +Hadron Calorimeter has 1 hits. Total Edep is 0.83564937448599 (MeV) ... write file : B5.root - done ... write file : B5ntuple.root - done ... close file : B5.root - done @@ -1332,8 +1364,8 @@ There are 2 h1 histograms 0 with 5 entries: Drift Chamber 1 # Hits 1 with 5 entries: Drift Chamber 2 # Hits There are 2 h2 histograms - 0 with 27 entries: Drift Chamber 1 X vs Y - 1 with 20 entries: Drift Chamber 2 X vs Y + 0 with 26 entries: Drift Chamber 1 X vs Y + 1 with 25 entries: Drift Chamber 2 X vs Y List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". ### Run 6 starts. @@ -1344,23 +1376,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". --> Event 0 starts. >>> Event 0 >>> Simulation truth : proton (-0,0,1000) -Hodoscope 1 has 1 hits. - Hodoscope[7] 6.8389388262766 (nsec) -Hodoscope 2 has 1 hits. - Hodoscope[9] 59.365767286095 (nsec) +Hodoscope 1 has 2 hits. + Hodoscope[7] 6.8394461683353 (nsec) + Hodoscope[8] 7.5323142076831 (nsec) +Hodoscope 2 has 0 hits. Drift Chamber 1 has 5 hits. - Layer[0] : time 9.1531725202455 (nsec) --- local (x,y) 0.29462302630927, 0.74458156029906 - Layer[1] : time 11.445260422885 (nsec) --- local (x,y) -0.41371591042648, 1.6711389459824 - Layer[2] : time 13.737510251957 (nsec) --- local (x,y) -1.2597452645744, 2.2309904737155 - Layer[3] : time 16.029981464867 (nsec) --- local (x,y) -2.1137979951543, 2.6785853155447 - Layer[4] : time 18.322670600914 (nsec) --- local (x,y) -2.933891070986, 3.1983272430613 -Drift Chamber 2 has 5 hits. - Layer[0] : time 47.880138260533 (nsec) --- local (x,y) -173.86107086413, -1.0242143547039 - Layer[1] : time 50.181471083121 (nsec) --- local (x,y) -206.17341354731, -2.4105194507864 - Layer[2] : time 52.482998185176 (nsec) --- local (x,y) -238.49018061173, -3.9072961413987 - Layer[3] : time 54.784757651185 (nsec) --- local (x,y) -270.77140802506, -5.6722879270542 - Layer[4] : time 57.086514682481 (nsec) --- local (x,y) -302.36908138682, -7.0104796730269 -EM Calorimeter has 1 hits. Total Edep is 310.49587800639 (MeV) + Layer[0] : time 10.086912283212 (nsec) --- local (x,y) -80.990234069463, 53.885112985004 + Layer[1] : time 13.31431314404 (nsec) --- local (x,y) -159.97040180169, 107.4837889282 + Layer[2] : time 16.543362938017 (nsec) --- local (x,y) -239.0187564561, 160.59799682208 + Layer[3] : time 19.773711548972 (nsec) --- local (x,y) -317.45929587251, 213.15011137527 + Layer[4] : time 23.004892916952 (nsec) --- local (x,y) -395.47005386515, 264.66629208904 +Drift Chamber 2 has 0 hits. +EM Calorimeter has 0 hits. Total Edep is 0 (MeV) Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) ... write file : B5.root - done ... write file : B5ntuple.root - done @@ -1370,8 +1397,8 @@ There are 2 h1 histograms 0 with 5 entries: Drift Chamber 1 # Hits 1 with 5 entries: Drift Chamber 2 # Hits There are 2 h2 histograms - 0 with 32 entries: Drift Chamber 1 X vs Y - 1 with 31 entries: Drift Chamber 2 X vs Y + 0 with 28 entries: Drift Chamber 1 X vs Y + 1 with 21 entries: Drift Chamber 2 X vs Y List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". ### Run 7 starts. @@ -1383,23 +1410,23 @@ View them with "/vis/plot" or "/vis/reviewPlots". >>> Event 0 >>> Simulation truth : pi+ (-0,0,1000) Hodoscope 1 has 1 hits. - Hodoscope[7] 5.0351308913705 (nsec) + Hodoscope[7] 5.0351308887812 (nsec) Hodoscope 2 has 1 hits. - Hodoscope[10] 43.033969895202 (nsec) + Hodoscope[10] 43.12543168625 (nsec) Drift Chamber 1 has 5 hits. - Layer[0] : time 6.7356895057962 (nsec) --- local (x,y) -1.9243103359162, -0.16659035004293 - Layer[1] : time 8.4197496239465 (nsec) --- local (x,y) -3.2762803951305, 0.14988073848325 - Layer[2] : time 10.10381342643 (nsec) --- local (x,y) -4.7027274608042, 0.489344843536 - Layer[3] : time 11.787880194597 (nsec) --- local (x,y) -6.0599255991409, 0.88781356029248 - Layer[4] : time 13.471951407615 (nsec) --- local (x,y) -7.5448288782199, 1.4186881575363 + Layer[0] : time 6.7356851726432 (nsec) --- local (x,y) 0.89854899204058, -0.23695587313731 + Layer[1] : time 8.4197403901916 (nsec) --- local (x,y) 1.0487794201795, -0.71770868799393 + Layer[2] : time 10.103800726262 (nsec) --- local (x,y) 1.0293317268778, -1.3051027739321 + Layer[3] : time 11.787863966064 (nsec) --- local (x,y) 0.8391333248813, -1.7518558288069 + Layer[4] : time 13.471929718095 (nsec) --- local (x,y) 1.0117735572913, -2.0923887860158 Drift Chamber 2 has 5 hits. - Layer[0] : time 34.626921894997 (nsec) --- local (x,y) -92.220239145719, -2.4680612541139 - Layer[1] : time 36.311661668974 (nsec) --- local (x,y) -105.97706067781, -3.2220045837939 - Layer[2] : time 37.996382698575 (nsec) --- local (x,y) -119.51045799482, -3.6715051855412 - Layer[3] : time 39.681093733382 (nsec) --- local (x,y) -132.8949165246, -4.209247280649 - Layer[4] : time 41.365794906265 (nsec) --- local (x,y) -146.12852235324, -4.9010469571028 -EM Calorimeter has 15 hits. Total Edep is 828.07335551586 (MeV) -Hadron Calorimeter has 1 hits. Total Edep is 0.18563725141848 (MeV) + Layer[0] : time 34.715772263077 (nsec) --- local (x,y) -87.20109227483, -5.0492259938799 + Layer[1] : time 36.401000587527 (nsec) --- local (x,y) -105.4761382953, -5.1063230011713 + Layer[2] : time 38.086241243955 (nsec) --- local (x,y) -123.82380011979, -4.665960825673 + Layer[3] : time 39.771465006687 (nsec) --- local (x,y) -142.00989746853, -4.2061534478478 + Layer[4] : time 41.456678084557 (nsec) --- local (x,y) -160.08510913084, -3.7772169735911 +EM Calorimeter has 24 hits. Total Edep is 198.26940998496 (MeV) +Hadron Calorimeter has 8 hits. Total Edep is 25.015150415126 (MeV) ... write file : B5.root - done ... write file : B5ntuple.root - done ... close file : B5.root - done @@ -1409,7 +1436,7 @@ There are 2 h1 histograms 1 with 5 entries: Drift Chamber 2 # Hits There are 2 h2 histograms 0 with 25 entries: Drift Chamber 1 X vs Y - 1 with 22 entries: Drift Chamber 2 X vs Y + 1 with 31 entries: Drift Chamber 2 X vs Y List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". ### Run 8 starts. @@ -1421,24 +1448,23 @@ View them with "/vis/plot" or "/vis/reviewPlots". >>> Event 0 >>> Simulation truth : e+ (0,0,1000) Hodoscope 1 has 1 hits. - Hodoscope[7] 4.9867834713155 (nsec) + Hodoscope[7] 4.9867850409513 (nsec) Hodoscope 2 has 1 hits. - Hodoscope[9] 43.225787681672 (nsec) -Drift Chamber 1 has 5 hits. - Layer[0] : time 6.67095389191 (nsec) --- local (x,y) 1.417364716337, -0.42281086330569 - Layer[1] : time 8.338779134259 (nsec) --- local (x,y) 2.6097292143916, -0.43266888328246 - Layer[2] : time 10.006608563896 (nsec) --- local (x,y) 4.2350397416231, -0.63103814179918 - Layer[3] : time 11.674438665567 (nsec) --- local (x,y) 5.9311245143204, -0.67237623692779 - Layer[4] : time 13.342271055635 (nsec) --- local (x,y) 7.8189633187215, -0.71572374150155 -Drift Chamber 2 has 7 hits. - Layer[0] : time 34.885800794656 (nsec) --- local (x,y) -133.30795568018, -6.2417610591214 - Layer[0] : time 35.034052600278 (nsec) --- local (x,y) -15.067606947884, 0.060906167980974 - Layer[1] : time 36.557083521977 (nsec) --- local (x,y) -165.53112350832, -7.0777184368595 - Layer[1] : time 37.205819856759 (nsec) --- local (x,y) 321.60573993998, 63.697628686074 - Layer[2] : time 38.228368555491 (nsec) --- local (x,y) -197.76022543856, -8.0774862286587 - Layer[3] : time 39.899623417614 (nsec) --- local (x,y) -229.84559562044, -9.1653293066159 - Layer[4] : time 41.570906131442 (nsec) --- local (x,y) -262.06165635618, -10.236265070065 -EM Calorimeter has 8 hits. Total Edep is 968.51747219744 (MeV) + Hodoscope[0] 43.396047753028 (nsec) +Drift Chamber 1 has 6 hits. + Layer[0] : time 6.6709784647384 (nsec) --- local (x,y) -3.8108973393543, 0.017741450873075 + Layer[0] : time 6.7592518099866 (nsec) --- local (x,y) 16.616635850825, -4.8294789678438 + Layer[1] : time 8.338830370782 (nsec) --- local (x,y) -6.8170572773981, -0.49723324351644 + Layer[2] : time 10.006682257875 (nsec) --- local (x,y) -9.8409641292456, -0.89175767088477 + Layer[3] : time 11.674538477886 (nsec) --- local (x,y) -13.089104594349, -1.0663867743299 + Layer[4] : time 13.342397259649 (nsec) --- local (x,y) -16.458609560389, -1.1893641017606 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.850825452701 (nsec) --- local (x,y) -615.07931170748, 9.3470369342005 + Layer[1] : time 36.563042875257 (nsec) --- local (x,y) -731.17940005856, 12.065732967429 + Layer[2] : time 38.275428226059 (nsec) --- local (x,y) -847.50558184478, 14.673756188588 + Layer[3] : time 39.987715161054 (nsec) --- local (x,y) -963.70290618917, 17.217507962996 + Layer[4] : time 41.700177233954 (nsec) --- local (x,y) -1080.1076738769, 20.692490354153 +EM Calorimeter has 0 hits. Total Edep is 0 (MeV) Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) ... write file : B5.root - done ... write file : B5ntuple.root - done @@ -1448,8 +1474,8 @@ There are 2 h1 histograms 0 with 5 entries: Drift Chamber 1 # Hits 1 with 5 entries: Drift Chamber 2 # Hits There are 2 h2 histograms - 0 with 33 entries: Drift Chamber 1 X vs Y - 1 with 27 entries: Drift Chamber 2 X vs Y + 0 with 26 entries: Drift Chamber 1 X vs Y + 1 with 16 entries: Drift Chamber 2 X vs Y List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". Graphics systems deleted. diff --git a/examples/basic/B5/include/ActionInitialization.hh b/examples/basic/B5/include/ActionInitialization.hh index 91ae3598a8..fb109a69b2 100644 --- a/examples/basic/B5/include/ActionInitialization.hh +++ b/examples/basic/B5/include/ActionInitialization.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.hh +/// \file B5/include/ActionInitialization.hh /// \brief Definition of the B5::ActionInitialization class #ifndef B5ActionInitialization_h @@ -40,8 +40,8 @@ namespace B5 class ActionInitialization : public G4VUserActionInitialization { public: - ActionInitialization(); - ~ActionInitialization() override; + ActionInitialization() = default; + ~ActionInitialization() override = default; void BuildForMaster() const override; void Build() const override; diff --git a/examples/basic/B5/include/CellParameterisation.hh b/examples/basic/B5/include/CellParameterisation.hh index 353df7a776..e4dda0a064 100644 --- a/examples/basic/B5/include/CellParameterisation.hh +++ b/examples/basic/B5/include/CellParameterisation.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file CellParameterisation.hh +/// \file B5/include/CellParameterisation.hh /// \brief Definition of the B5::CellParameterisation class #ifndef B5CellParameterisation_H @@ -48,7 +48,7 @@ class CellParameterisation : public G4VPVParameterisation { public: CellParameterisation(); - ~CellParameterisation() override; + ~CellParameterisation() override = default; void ComputeTransformation( const G4int copyNo,G4VPhysicalVolume *physVol) const override; diff --git a/examples/basic/B5/include/Constants.hh b/examples/basic/B5/include/Constants.hh index e7ef36cd28..61cb29f3ec 100644 --- a/examples/basic/B5/include/Constants.hh +++ b/examples/basic/B5/include/Constants.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file Constants.hh +/// \file B5/include/Constants.hh /// \brief Definition of B5 example constants. #ifndef B5Constants_h diff --git a/examples/basic/B5/include/DetectorConstruction.hh b/examples/basic/B5/include/DetectorConstruction.hh index 7a1f6e733c..5c2db2bb12 100644 --- a/examples/basic/B5/include/DetectorConstruction.hh +++ b/examples/basic/B5/include/DetectorConstruction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.hh +/// \file B5/include/DetectorConstruction.hh /// \brief Definition of the B5::DetectorConstruction class #ifndef B5DetectorConstruction_h diff --git a/examples/basic/B5/include/DriftChamberHit.hh b/examples/basic/B5/include/DriftChamberHit.hh index 542189f7d0..98d0011813 100644 --- a/examples/basic/B5/include/DriftChamberHit.hh +++ b/examples/basic/B5/include/DriftChamberHit.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DriftChamberHit.hh +/// \file B5/include/DriftChamberHit.hh /// \brief Definition of the B5::DriftChamberHit class #ifndef B5DriftChamberHit_h @@ -54,10 +54,10 @@ namespace B5 class DriftChamberHit : public G4VHit { public: - DriftChamberHit(); + DriftChamberHit() = default; DriftChamberHit(G4int layerID); DriftChamberHit(const DriftChamberHit &right) = default; - ~DriftChamberHit() override; + ~DriftChamberHit() override = default; DriftChamberHit& operator=(const DriftChamberHit &right) = default; G4bool operator==(const DriftChamberHit &right) const; diff --git a/examples/basic/B5/include/DriftChamberSD.hh b/examples/basic/B5/include/DriftChamberSD.hh index 0f8513d7e3..43b9508fc0 100644 --- a/examples/basic/B5/include/DriftChamberSD.hh +++ b/examples/basic/B5/include/DriftChamberSD.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DriftChamberSD.hh +/// \file B5/include/DriftChamberSD.hh /// \brief Definition of the B5::DriftChamberSD class #ifndef B5DriftChamberSD_h @@ -47,7 +47,7 @@ class DriftChamberSD : public G4VSensitiveDetector { public: DriftChamberSD(G4String name); - ~DriftChamberSD() override; + ~DriftChamberSD() override = default; void Initialize(G4HCofThisEvent*HCE) override; G4bool ProcessHits(G4Step* aStep, G4TouchableHistory* ROhist) override; diff --git a/examples/basic/B5/include/EmCalorimeterHit.hh b/examples/basic/B5/include/EmCalorimeterHit.hh index 9074302495..bb3150a993 100644 --- a/examples/basic/B5/include/EmCalorimeterHit.hh +++ b/examples/basic/B5/include/EmCalorimeterHit.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EmCalorimeterHit.hh +/// \file B5/include/EmCalorimeterHit.hh /// \brief Definition of the B5::EmCalorimeterHit class #ifndef B5EmCalorimeterHit_h @@ -54,10 +54,10 @@ namespace B5 class EmCalorimeterHit : public G4VHit { public: - EmCalorimeterHit(); + EmCalorimeterHit() = default; EmCalorimeterHit(G4int cellID); EmCalorimeterHit(const EmCalorimeterHit &right) = default; - ~EmCalorimeterHit() override; + ~EmCalorimeterHit() override = default; EmCalorimeterHit& operator=(const EmCalorimeterHit &right) = default; G4bool operator==(const EmCalorimeterHit &right) const; diff --git a/examples/basic/B5/include/EmCalorimeterSD.hh b/examples/basic/B5/include/EmCalorimeterSD.hh index fe98f1eddc..9a39c6fd52 100644 --- a/examples/basic/B5/include/EmCalorimeterSD.hh +++ b/examples/basic/B5/include/EmCalorimeterSD.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EmCalorimeterSD.hh +/// \file B5/include/EmCalorimeterSD.hh /// \brief Definition of the B5::EmCalorimeterSD class #ifndef B5EmCalorimeterSD_h @@ -47,7 +47,7 @@ class EmCalorimeterSD : public G4VSensitiveDetector { public: EmCalorimeterSD(G4String name); - ~EmCalorimeterSD() override; + ~EmCalorimeterSD() override = default; void Initialize(G4HCofThisEvent*HCE) override; G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) override; diff --git a/examples/basic/B5/include/EventAction.hh b/examples/basic/B5/include/EventAction.hh index dbce56397d..31f172901b 100644 --- a/examples/basic/B5/include/EventAction.hh +++ b/examples/basic/B5/include/EventAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.hh +/// \file B5/include/EventAction.hh /// \brief Definition of the B5::EventAction class #ifndef B5EventAction_h @@ -54,7 +54,7 @@ class EventAction : public G4UserEventAction { public: EventAction(); - ~EventAction() override; + ~EventAction() override = default; void BeginOfEventAction(const G4Event*) override; void EndOfEventAction(const G4Event*) override; diff --git a/examples/basic/B5/include/HadCalorimeterHit.hh b/examples/basic/B5/include/HadCalorimeterHit.hh index e5aef6ede6..b97e5182a0 100644 --- a/examples/basic/B5/include/HadCalorimeterHit.hh +++ b/examples/basic/B5/include/HadCalorimeterHit.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file HadCalorimeterHit.hh +/// \file B5/include/HadCalorimeterHit.hh /// \brief Definition of the B5::HadCalorimeterHit class #ifndef B5HadCalorimeterHit_h @@ -54,10 +54,10 @@ namespace B5 class HadCalorimeterHit : public G4VHit { public: - HadCalorimeterHit(); + HadCalorimeterHit() = default; HadCalorimeterHit(G4int iCol,G4int iRow); HadCalorimeterHit(const HadCalorimeterHit &right) = default; - ~HadCalorimeterHit() override; + ~HadCalorimeterHit() override = default; HadCalorimeterHit& operator=(const HadCalorimeterHit &right) = default; G4bool operator==(const HadCalorimeterHit &right) const; diff --git a/examples/basic/B5/include/HadCalorimeterSD.hh b/examples/basic/B5/include/HadCalorimeterSD.hh index 161db6b2de..600a2c86e3 100644 --- a/examples/basic/B5/include/HadCalorimeterSD.hh +++ b/examples/basic/B5/include/HadCalorimeterSD.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file HadCalorimeterSD.hh +/// \file B5/include/HadCalorimeterSD.hh /// \brief Definition of the B5::HadCalorimeterSD class #ifndef B5HadCalorimeterSD_h @@ -47,7 +47,7 @@ class HadCalorimeterSD : public G4VSensitiveDetector { public: HadCalorimeterSD(G4String name); - ~HadCalorimeterSD() override; + ~HadCalorimeterSD() override = default; void Initialize(G4HCofThisEvent*HCE) override; G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) override; diff --git a/examples/basic/B5/include/HodoscopeHit.hh b/examples/basic/B5/include/HodoscopeHit.hh index 5391870be2..80c884bbb4 100644 --- a/examples/basic/B5/include/HodoscopeHit.hh +++ b/examples/basic/B5/include/HodoscopeHit.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file HodoscopeHit.hh +/// \file B5/include/HodoscopeHit.hh /// \brief Definition of the B5::HodoscopeHit class #ifndef B5HodoscopeHit_h @@ -56,7 +56,7 @@ class HodoscopeHit : public G4VHit public: HodoscopeHit(G4int i,G4double t); HodoscopeHit(const HodoscopeHit &right) = default; - ~HodoscopeHit() override; + ~HodoscopeHit() override = default; HodoscopeHit& operator=(const HodoscopeHit &right) = default; G4bool operator==(const HodoscopeHit &right) const; diff --git a/examples/basic/B5/include/HodoscopeSD.hh b/examples/basic/B5/include/HodoscopeSD.hh index 093b3482d6..e915d92e69 100644 --- a/examples/basic/B5/include/HodoscopeSD.hh +++ b/examples/basic/B5/include/HodoscopeSD.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file HodoscopeSD.hh +/// \file B5/include/HodoscopeSD.hh /// \brief Definition of the B5::HodoscopeSD class #ifndef B5HodoscopeSD_h @@ -46,7 +46,7 @@ class HodoscopeSD : public G4VSensitiveDetector { public: HodoscopeSD(G4String name); - ~HodoscopeSD() override; + ~HodoscopeSD() override = default; void Initialize(G4HCofThisEvent*HCE) override; G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) override; diff --git a/examples/basic/B5/include/MagneticField.hh b/examples/basic/B5/include/MagneticField.hh index e0f1d4c7aa..12ee1fa15f 100644 --- a/examples/basic/B5/include/MagneticField.hh +++ b/examples/basic/B5/include/MagneticField.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file MagneticField.hh +/// \file B5/include/MagneticField.hh /// \brief Definition of the B5::MagneticField class #ifndef B5MagneticField_H diff --git a/examples/basic/B5/include/PrimaryGeneratorAction.hh b/examples/basic/B5/include/PrimaryGeneratorAction.hh index aeb5529fe1..073ed4983e 100644 --- a/examples/basic/B5/include/PrimaryGeneratorAction.hh +++ b/examples/basic/B5/include/PrimaryGeneratorAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.hh +/// \file B5/include/PrimaryGeneratorAction.hh /// \brief Definition of the B5::PrimaryGeneratorAction class #ifndef B5PrimaryGeneratorAction_h diff --git a/examples/basic/B5/include/RunAction.hh b/examples/basic/B5/include/RunAction.hh index 933d0222c1..578c0071e4 100644 --- a/examples/basic/B5/include/RunAction.hh +++ b/examples/basic/B5/include/RunAction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.hh +/// \file B5/include/RunAction.hh /// \brief Definition of the B5::RunAction class #ifndef B5RunAction_h @@ -46,7 +46,7 @@ class RunAction : public G4UserRunAction { public: RunAction(EventAction* eventAction); - ~RunAction() override; + ~RunAction() override = default; void BeginOfRunAction(const G4Run*) override; void EndOfRunAction(const G4Run*) override; diff --git a/examples/basic/B5/src/ActionInitialization.cc b/examples/basic/B5/src/ActionInitialization.cc index ff7ce6c2c8..cf258b199b 100644 --- a/examples/basic/B5/src/ActionInitialization.cc +++ b/examples/basic/B5/src/ActionInitialization.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ActionInitialization.cc +/// \file B5/src/ActionInitialization.cc /// \brief Implementation of the B5::ActionInitialization class #include "ActionInitialization.hh" @@ -37,19 +37,9 @@ namespace B5 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ActionInitialization::~ActionInitialization() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ActionInitialization::BuildForMaster() const { - EventAction* eventAction = new EventAction; + auto eventAction = new EventAction; SetUserAction(new RunAction(eventAction)); } diff --git a/examples/basic/B5/src/CellParameterisation.cc b/examples/basic/B5/src/CellParameterisation.cc index 87eb52e489..a1f0c34d00 100644 --- a/examples/basic/B5/src/CellParameterisation.cc +++ b/examples/basic/B5/src/CellParameterisation.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file CellParameterisation.cc +/// \file B5/src/CellParameterisation.cc /// \brief Implementation of the B5::CellParameterisation class #include "CellParameterisation.hh" @@ -51,11 +51,6 @@ CellParameterisation::CellParameterisation() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -CellParameterisation::~CellParameterisation() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void CellParameterisation::ComputeTransformation( const G4int copyNo,G4VPhysicalVolume *physVol) const { diff --git a/examples/basic/B5/src/DetectorConstruction.cc b/examples/basic/B5/src/DetectorConstruction.cc index 2015b1212c..2dcd97468a 100644 --- a/examples/basic/B5/src/DetectorConstruction.cc +++ b/examples/basic/B5/src/DetectorConstruction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DetectorConstruction.cc +/// \file B5/src/DetectorConstruction.cc /// \brief Implementation of the B5::DetectorConstruction class #include "DetectorConstruction.hh" @@ -70,8 +70,8 @@ namespace B5 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4ThreadLocal MagneticField* DetectorConstruction::fMagneticField = 0; -G4ThreadLocal G4FieldManager* DetectorConstruction::fFieldMgr = 0; +G4ThreadLocal MagneticField* DetectorConstruction::fMagneticField = nullptr; +G4ThreadLocal G4FieldManager* DetectorConstruction::fFieldMgr = nullptr; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -119,9 +119,8 @@ G4VPhysicalVolume* DetectorConstruction::Construct() = new G4Box("worldBox",10.*m,3.*m,10.*m); auto worldLogical = new G4LogicalVolume(worldSolid,air,"worldLogical"); - auto worldPhysical - = new G4PVPlacement(0,G4ThreeVector(),worldLogical,"worldPhysical",0, - false,0,checkOverlaps); + auto worldPhysical = new G4PVPlacement( + nullptr, G4ThreeVector(), worldLogical, "worldPhysical", nullptr, false, 0, checkOverlaps); // Tube with Local Magnetic field @@ -133,14 +132,14 @@ G4VPhysicalVolume* DetectorConstruction::Construct() // placement of Tube - G4RotationMatrix* fieldRot = new G4RotationMatrix(); + auto fieldRot = new G4RotationMatrix(); fieldRot->rotateX(90.*deg); new G4PVPlacement(fieldRot,G4ThreeVector(),fMagneticLogical, "magneticPhysical",worldLogical, false,0,checkOverlaps); // set step limit in tube with magnetic field - G4UserLimits* userLimits = new G4UserLimits(1*m); + auto userLimits = new G4UserLimits(1 * m); fMagneticLogical->SetUserLimits(userLimits); // first arm @@ -148,9 +147,8 @@ G4VPhysicalVolume* DetectorConstruction::Construct() = new G4Box("firstArmBox",1.5*m,1.*m,3.*m); auto firstArmLogical = new G4LogicalVolume(firstArmSolid,air,"firstArmLogical"); - new G4PVPlacement(0,G4ThreeVector(0.,0.,-5.*m),firstArmLogical, - "firstArmPhysical",worldLogical, - false,0,checkOverlaps); + new G4PVPlacement(nullptr, G4ThreeVector(0., 0., -5. * m), firstArmLogical, "firstArmPhysical", + worldLogical, false, 0, checkOverlaps); // second arm auto secondArmSolid @@ -172,9 +170,8 @@ G4VPhysicalVolume* DetectorConstruction::Construct() for (auto i=0;i* DriftChamberHitAllocator; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -DriftChamberHit::DriftChamberHit() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - DriftChamberHit::DriftChamberHit(G4int layerID) : fLayerID(layerID) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -DriftChamberHit::~DriftChamberHit() -{} - -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// DriftChamberHit::DriftChamberHit(const DriftChamberHit &right) -// : G4VHit(), -// fLayerID(right.fLayerID), -// fTime(right.fTime), -// fLocalPos(right.fLocalPos), -// fWorldPos(right.fWorldPos) -// {} - -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// const DriftChamberHit& DriftChamberHit::operator=(const DriftChamberHit &right) -// { -// fLayerID = right.fLayerID; -// fTime = right.fTime; -// fLocalPos = right.fLocalPos; -// fWorldPos = right.fWorldPos; -// return *this; -// } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4bool DriftChamberHit::operator==(const DriftChamberHit &/*right*/) const { return false; diff --git a/examples/basic/B5/src/DriftChamberSD.cc b/examples/basic/B5/src/DriftChamberSD.cc index f379c343c6..a59e44e1e6 100644 --- a/examples/basic/B5/src/DriftChamberSD.cc +++ b/examples/basic/B5/src/DriftChamberSD.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file DriftChamberSD.cc +/// \file B5/src/DriftChamberSD.cc /// \brief Implementation of the B5::DriftChamber class #include "DriftChamberSD.hh" @@ -50,11 +50,6 @@ DriftChamberSD::DriftChamberSD(G4String name) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -DriftChamberSD::~DriftChamberSD() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void DriftChamberSD::Initialize(G4HCofThisEvent* hce) { fHitsCollection diff --git a/examples/basic/B5/src/EmCalorimeterHit.cc b/examples/basic/B5/src/EmCalorimeterHit.cc index 5d556cc95c..aa5adea820 100644 --- a/examples/basic/B5/src/EmCalorimeterHit.cc +++ b/examples/basic/B5/src/EmCalorimeterHit.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EmCalorimeterHit.cc +/// \file B5/src/EmCalorimeterHit.cc /// \brief Implementation of the B5::EmCalorimeterHit class #include "EmCalorimeterHit.hh" @@ -49,46 +49,12 @@ G4ThreadLocal G4Allocator* EmCalorimeterHitAllocator; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EmCalorimeterHit::EmCalorimeterHit() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - EmCalorimeterHit::EmCalorimeterHit(G4int cellID) : fCellID(cellID) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EmCalorimeterHit::~EmCalorimeterHit() -{} - -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// EmCalorimeterHit::EmCalorimeterHit(const EmCalorimeterHit &right) -// : G4VHit(), -// fCellID(right.fCellID), -// fEdep(right.fEdep), -// fPos(right.fPos), -// fRot(right.fRot), -// fPLogV(right.fPLogV) -// {} - -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// const EmCalorimeterHit& EmCalorimeterHit::operator=(const EmCalorimeterHit -// &right) -// { -// fCellID = right.fCellID; -// fEdep = right.fEdep; -// fPos = right.fPos; -// fRot = right.fRot; -// fPLogV = right.fPLogV; -// return *this; -// } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4bool EmCalorimeterHit::operator==(const EmCalorimeterHit &right) const { return (fCellID==right.fCellID); diff --git a/examples/basic/B5/src/EmCalorimeterSD.cc b/examples/basic/B5/src/EmCalorimeterSD.cc index e206afd5f5..dffd1bd218 100644 --- a/examples/basic/B5/src/EmCalorimeterSD.cc +++ b/examples/basic/B5/src/EmCalorimeterSD.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EmCalorimeterSD.cc +/// \file B5/src/EmCalorimeterSD.cc /// \brief Implementation of the B5::EmCalorimeterSD class #include "EmCalorimeterSD.hh" @@ -51,11 +51,6 @@ EmCalorimeterSD::EmCalorimeterSD(G4String name) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EmCalorimeterSD::~EmCalorimeterSD() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void EmCalorimeterSD::Initialize(G4HCofThisEvent* hce) { fHitsCollection diff --git a/examples/basic/B5/src/EventAction.cc b/examples/basic/B5/src/EventAction.cc index 673da9815b..b9c3d26b1d 100644 --- a/examples/basic/B5/src/EventAction.cc +++ b/examples/basic/B5/src/EventAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file EventAction.cc +/// \file B5/src/EventAction.cc /// \brief Implementation of the B5::EventAction class #include "EventAction.hh" @@ -79,15 +79,6 @@ namespace B5 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... EventAction::EventAction() -// : G4UserEventAction(), -// fHodHCID {{ -1, -1 }}, -// fDriftHCID{{ -1, -1 }}, -// fCalHCID {{ -1, -1 }}, -// fDriftHistoID{{ {{ -1, -1 }}, {{ -1, -1 }} }}, -// fCalEdep{{ vector(kNofEmCells, 0.), vector(kNofHadCells, 0.) }} -// // std::array is an aggregate that contains a C array. -// // To initialize it, we need outer braces for the class itself -// // and inner braces for the C array { // set printing per each event G4RunManager::GetRunManager()->SetPrintProgress(1); @@ -95,11 +86,6 @@ EventAction::EventAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::~EventAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void EventAction::BeginOfEventAction(const G4Event*) { // Find hit collections and histogram Ids by names (just once) diff --git a/examples/basic/B5/src/HadCalorimeterHit.cc b/examples/basic/B5/src/HadCalorimeterHit.cc index 36f5c05698..1fe131a587 100644 --- a/examples/basic/B5/src/HadCalorimeterHit.cc +++ b/examples/basic/B5/src/HadCalorimeterHit.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file HadCalorimeterHit.cc +/// \file B5/src/HadCalorimeterHit.cc /// \brief Implementation of the B5::HadCalorimeterHit class #include "HadCalorimeterHit.hh" @@ -51,46 +51,12 @@ G4ThreadLocal G4Allocator* HadCalorimeterHitAllocator; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -HadCalorimeterHit::HadCalorimeterHit() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - HadCalorimeterHit::HadCalorimeterHit(G4int columnID,G4int rowID) : fColumnID(columnID), fRowID(rowID) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -HadCalorimeterHit::~HadCalorimeterHit() -{} - -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// HadCalorimeterHit::HadCalorimeterHit(const HadCalorimeterHit &right) -// : G4VHit(), -// fColumnID(right.fColumnID), -// fRowID(right.fRowID), -// fEdep(right.fEdep), -// fPos(right.fPos), -// fRot(right.fRot) -// {} - -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// const HadCalorimeterHit& HadCalorimeterHit::operator=( -// const HadCalorimeterHit &right) -// { -// fColumnID = right.fColumnID; -// fRowID = right.fRowID; -// fEdep = right.fEdep; -// fPos = right.fPos; -// fRot = right.fRot; -// return *this; -// } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4bool HadCalorimeterHit::operator==(const HadCalorimeterHit &right) const { return ( fColumnID==right.fColumnID && fRowID==right.fRowID ); diff --git a/examples/basic/B5/src/HadCalorimeterSD.cc b/examples/basic/B5/src/HadCalorimeterSD.cc index a49986ef40..c6a0939d14 100644 --- a/examples/basic/B5/src/HadCalorimeterSD.cc +++ b/examples/basic/B5/src/HadCalorimeterSD.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file HadCalorimeterSD.cc +/// \file B5/src/HadCalorimeterSD.cc /// \brief Implementation of the B5::HadCalorimeterSD class #include "HadCalorimeterSD.hh" @@ -51,11 +51,6 @@ HadCalorimeterSD::HadCalorimeterSD(G4String name) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -HadCalorimeterSD::~HadCalorimeterSD() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void HadCalorimeterSD::Initialize(G4HCofThisEvent* hce) { fHitsCollection diff --git a/examples/basic/B5/src/HodoscopeHit.cc b/examples/basic/B5/src/HodoscopeHit.cc index a105f19563..49904c785f 100644 --- a/examples/basic/B5/src/HodoscopeHit.cc +++ b/examples/basic/B5/src/HodoscopeHit.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file HodoscopeHit.cc +/// \file B5/src/HodoscopeHit.cc /// \brief Implementation of the B5::HodoscopeHit class #include "HodoscopeHit.hh" @@ -56,34 +56,6 @@ HodoscopeHit::HodoscopeHit(G4int id,G4double time) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -HodoscopeHit::~HodoscopeHit() -{} - -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// HodoscopeHit::HodoscopeHit(const HodoscopeHit &right) -// : G4VHit(), -// fId(right.fId), -// fTime(right.fTime), -// fPos(right.fPos), -// fRot(right.fRot), -// fPLogV(right.fPLogV) -// {} - -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// const HodoscopeHit& HodoscopeHit::operator=(const HodoscopeHit &right) -// { -// fId = right.fId; -// fTime = right.fTime; -// fPos = right.fPos; -// fRot = right.fRot; -// fPLogV = right.fPLogV; -// return *this; -// } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4bool HodoscopeHit::operator==(const HodoscopeHit &/*right*/) const { return false; diff --git a/examples/basic/B5/src/HodoscopeSD.cc b/examples/basic/B5/src/HodoscopeSD.cc index a7fcbb4517..5b3e4a8f3b 100644 --- a/examples/basic/B5/src/HodoscopeSD.cc +++ b/examples/basic/B5/src/HodoscopeSD.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file HodoscopeSD.cc +/// \file B5/src/HodoscopeSD.cc /// \brief Implementation of the B5::HodoscopeSD class #include "HodoscopeSD.hh" @@ -50,11 +50,6 @@ HodoscopeSD::HodoscopeSD(G4String name) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -HodoscopeSD::~HodoscopeSD() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void HodoscopeSD::Initialize(G4HCofThisEvent* hce) { fHitsCollection = new HodoscopeHitsCollection diff --git a/examples/basic/B5/src/MagneticField.cc b/examples/basic/B5/src/MagneticField.cc index c4453a3a17..664510ab5d 100644 --- a/examples/basic/B5/src/MagneticField.cc +++ b/examples/basic/B5/src/MagneticField.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file MagneticField.cc +/// \file B5/src/MagneticField.cc /// \brief Implementation of the B5::MagneticField class #include "MagneticField.hh" diff --git a/examples/basic/B5/src/PrimaryGeneratorAction.cc b/examples/basic/B5/src/PrimaryGeneratorAction.cc index 1dac6c08bb..73eddb3d34 100644 --- a/examples/basic/B5/src/PrimaryGeneratorAction.cc +++ b/examples/basic/B5/src/PrimaryGeneratorAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file PrimaryGeneratorAction.cc +/// \file B5/src/PrimaryGeneratorAction.cc /// \brief Implementation of the B5::PrimaryGeneratorAction class #include "PrimaryGeneratorAction.hh" @@ -84,7 +84,7 @@ void PrimaryGeneratorAction::GeneratePrimaries(G4Event* event) { G4ParticleDefinition* particle; if (fRandomizePrimary) { - G4int i = (int)(5.*G4UniformRand()); + auto i = (int)(5. * G4UniformRand()); switch(i) { case 0: particle = fPositron; diff --git a/examples/basic/B5/src/RunAction.cc b/examples/basic/B5/src/RunAction.cc index 0da789f671..8843f7f34a 100644 --- a/examples/basic/B5/src/RunAction.cc +++ b/examples/basic/B5/src/RunAction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file RunAction.cc +/// \file B5/src/RunAction.cc /// \brief Implementation of the B5::RunAction class #include "RunAction.hh" @@ -93,12 +93,6 @@ RunAction::RunAction(EventAction* eventAction) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::~RunAction() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void RunAction::BeginOfRunAction(const G4Run* /*run*/) { //inform the runManager to save random number seed diff --git a/examples/basic/History b/examples/basic/History index 4010eb20a7..4ae356ba60 100644 --- a/examples/basic/History +++ b/examples/basic/History @@ -5,6 +5,13 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-04 I. Hrivnacova (exbasic-V11-00-02) +- Fixed Doxygen file descriptions: + since removing class prefixes the filenames must be provided with a path + +## 2022-08-02 I. Hrivnacova (exbasic-V11-00-01) +- Applied clang-tidy checks + ## 2021-12-10 Ben Morgan (exbasic-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/.README.txt b/examples/extended/.README.txt index a0611ecafa..68711ed19a 100644 --- a/examples/extended/.README.txt +++ b/examples/extended/.README.txt @@ -20,7 +20,7 @@ Webified README pages are not yet available for all examples. - A set of common classes which can be reused in other examples demonstrating just a particular feature - \link Examples_electromagnetic electromagnetic \endlink - Specific EM physics simulation with histogramming -- \link Exampleerrorpropagation errorpropagation \endlink +- \link Examples_errorpropagation errorpropagation \endlink - Use of the error propagation utility (Geant4e) - \link Examples_eventgenerator eventgenerator \endlink - Applications demonstrating various ways of primary event generation: diff --git a/examples/extended/analysis/.README.txt b/examples/extended/analysis/.README.txt index b221e0ce0e..706fa95038 100644 --- a/examples/extended/analysis/.README.txt +++ b/examples/extended/analysis/.README.txt @@ -13,7 +13,13 @@ \link ExampleAnaEx02 AnaEx02 \endlink As AnaEx01, but direct interface to ROOT. - + +\link ExampleAnaEx03 AnaEx03 \endlink + + Demonstrates usage of analysis commands for file management + (new since Geant4 11.1), in particular writing histograms and ntuples in a file + multiple times. + \link ExampleB1Con B1Con \endlink B1Con shows how to use the statistical tool G4ConvergenceTester. diff --git a/examples/extended/analysis/AnaEx01/.README.txt b/examples/extended/analysis/AnaEx01/.README.txt index 545dc15634..307106c267 100644 --- a/examples/extended/analysis/AnaEx01/.README.txt +++ b/examples/extended/analysis/AnaEx01/.README.txt @@ -96,9 +96,29 @@ One can control the name of the histograms file and its format: - default name : AnaEx01 The format of the histogram file can be : root (default), - xml, csv. Include correct g4nnn.hh in HistoManager.hh + xml, csv. -\section AnaEx01_s7 How to build + We can define the default file type and set it to the analysis manager via +\verbatim +/analysis/setDefaultFileType root # or csv hdf5 xml +\endverbatim + + The file names then need not to be provided with the file extension and the same macro + can be used with different output types. + + \section AnaEx03_s7 Macros + + - The AnaEx01.in macro uses the defaultFileType parameter (alias), which default value, + "root" is defined in main. + + - AnaEx01-csv.in, AnaEx01-hdf5.in, AnaEx01-root.in, AnaEx01-xml.in: + In these macros, the default value of the defaultFileType is overritten with +\verbatim +/control/alias defaultFileType cvs # or hdf5 root xml +\endverbatim + and then the AnaEx01.in macro is called. + +\section AnaEx01_s8 How to build An additional step is needed when building the example with GNUmake due to using the extra shared directory: @@ -114,7 +134,7 @@ % gmake clean_setup \endverbatim -\section AnaEx01_s8 HOW TO RUN +\section AnaEx01_s9 HOW TO RUN - Execute AnaEx01 in the 'interactive mode' with visualization \verbatim diff --git a/examples/extended/analysis/AnaEx01/AnaEx01-csv.in b/examples/extended/analysis/AnaEx01/AnaEx01-csv.in new file mode 100644 index 0000000000..9e6fc96722 --- /dev/null +++ b/examples/extended/analysis/AnaEx01/AnaEx01-csv.in @@ -0,0 +1,8 @@ +# +# Macro file for the test of AnaEx01 example +# with csv file type +# + +/control/alias defaultFileType csv + +/control/execute AnaEx01.in diff --git a/examples/extended/analysis/AnaEx01/AnaEx01-csv.out b/examples/extended/analysis/AnaEx01/AnaEx01-csv.out new file mode 100644 index 0000000000..92b6bc7eb6 --- /dev/null +++ b/examples/extended/analysis/AnaEx01/AnaEx01-csv.out @@ -0,0 +1,1110 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + + +***** Table : Nb of materials = 3 ***** + + Material: G4_Galactic density: 0.000 mg/cm3 RadL: 204310098.490 pc Nucl.Int.Length: 113427284.261 pc + Imean: 21.800 eV temperature: 2.73 K pressure: 0.00 atm + + ---> Element: H (H) Z = 1.0 N = 1 A = 1.008 g/mole + ---> Isotope: H1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.989 % + ---> Isotope: H2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.011 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.248 cm + Imean: 823.000 eV temperature: 293.15 K pressure: 1.00 atm + + ---> Element: Pb (Pb) Z = 82.0 N = 207 A = 207.217 g/mole + ---> Isotope: Pb204 Z = 82 N = 204 A = 203.97 g/mole abundance: 1.400 % + ---> Isotope: Pb206 Z = 82 N = 206 A = 205.97 g/mole abundance: 24.100 % + ---> Isotope: Pb207 Z = 82 N = 207 A = 206.98 g/mole abundance: 22.100 % + ---> Isotope: Pb208 Z = 82 N = 208 A = 207.98 g/mole abundance: 52.400 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + Material: G4_lAr density: 1.396 g/cm3 RadL: 14.003 cm Nucl.Int.Length: 85.706 cm + Imean: 188.000 eV temperature: 293.15 K pressure: 1.00 atm + + ---> Element: Ar (Ar) Z = 18.0 N = 40 A = 39.948 g/mole + ---> Isotope: Ar36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.337 % + ---> Isotope: Ar38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.063 % + ---> Isotope: Ar40 Z = 18 N = 40 A = 39.96 g/mole abundance: 99.600 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + +<<< Geant4 Physics List simulation engine: FTFP_BERT + +Visualization Manager instantiating with verbosity "warnings (3)"... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully registered the following graphics systems. +Registered graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML2FILE (VRML2FILE) + gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) + OpenGLImmediateQt (OGLIQt, OGLI) + OpenGLStoredQt (OGLSQt, OGL, OGLS) + OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) + OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK) + OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK) + OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK) + RayTracerX (RayTracerX) + Qt3D (Qt3D) + TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK) + TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK) + TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG) + +Registering model factories... + +You have successfully registered the following model factories. +Registered model factories: + generic + drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByEncounteredVolume + +Registered models: + None + +Registered filter factories: + attributeFilter + chargeFilter + originVolumeFilter + particleFilter + encounteredVolumeFilter + +Registered filters: + None + +You have successfully registered the following user vis actions. +Run Duration User Vis Actions: none +End of Event User Vis Actions: none +End of Run User Vis Actions: none + +Some /vis commands (optionally) take a string to specify colour. +"/vis/list" to see available colours. + +------------------------------------------------------------ +---> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of G4_lAr ] +------------------------------------------------------------ + + hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval + for pions : 3 to 6 GeV + for kaons : 3 to 6 GeV + for proton : 3 to 6 GeV + for neutron : 3 to 6 GeV + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 +# +/det/setAbsMat G4_Al +/det/setGapMat G4_Air +/det/setAbsThick 20. mm +/run/reinitializeGeometry +/det/setGapThick 10. mm +/run/reinitializeGeometry +/det/setSizeYZ 30. mm +/run/reinitializeGeometry +/det/setNbOfLayers 20 +/run/reinitializeGeometry +# +/run/beamOn 1 + +------------------------------------------------------------ +---> The calorimeter is 20 layers of: [ 20mm of G4_Al + 10mm of G4_lAr ] +------------------------------------------------------------ +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 7 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 1 mm) +Step function for muons/hadrons (0.2, 0.1 mm) +Step function for light ions (0.2, 0.1 mm) +Step function for general ions (0.2, 0.1 mm) +Lowest e+e- kinetic energy 1 keV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 0 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 0 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 0 eV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 1 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 0 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.04 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 1 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 0 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 61 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 56 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Klein-Nishina : Emin= 0 eV Emax= 100 TeV + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + Stopping Power data for 17 ion/material pairs + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + + Process: nKiller + +--------------------------------------------------- + Hadronic Processes for B- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: B-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for D- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: D-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_He3Inelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_alphaInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_deuteronInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: anti_lambdaInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_neutronInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_protonInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_tritonInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: dInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for e+ + + Process: positronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for e- + + Process: electronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: GammaNPreco: 0 eV ---> 200 MeV + Model: BertiniCascade: 199 MeV ---> 6 GeV + Model: TheoFSGenerator: 3 GeV ---> 100 TeV + Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: lambdaInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu+ + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + + Process: muMinusCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: protonInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for sigma- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: sigma-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: tInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +================================================================ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Pre-compound model active 1 +Pre-compound excitation low energy 100 keV +Pre-compound excitation high energy 30 MeV +Type of de-excitation inverse x-section 3 +Type of de-excitation factory Evaporation+GEM +Number of de-excitation channels 68 +Min excitation energy 10 eV +Min energy per nucleon for multifragmentation 200 GeV +Limit excitation energy for Fermi BreakUp 20 MeV +Level density (1/MeV) 0.075 +Use simple level density model 1 +Use discrete excitation energy of the residual 1 +Time limit for long lived isomeres 1 ns +Isomer production flag 1 +Internal e- conversion flag 1 +Store e- internal conversion data 0 +Correlated gamma emission flag 0 +Max 2J for sampling of angular correlations 10 +======================================================================= +G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. +See commands in /vis/modeling/trajectories/ for other options. +### Run 0 start. +... open analysis file : AnaEx01.csv - done +... create file : ./ntuple/AnaEx01_nt_Ntuple1.csv - done +... create file : ./ntuple/AnaEx01_nt_Ntuple2.csv - done + +----> Output file is open in AnaEx01.csv. + +---> Begin of event: 0 + +--------------------End of Run------------------------------ + + mean Energy in Absorber : 256.274 MeV +- 0 eV + mean Energy in Gap : 50.16 MeV +- 0 eV + + mean trackLength in Absorber : 63.8594 cm +- 0 fm + mean trackLength in Gap : 26.1088 cm +- 0 fm +------------------------------------------------------------ + + + ----> print histograms statistic + +EAbs: mean = 256.274 MeV rms = 0 eV +EGap: mean = 50.16 MeV rms = 0 eV +LAbs: mean = 63.8594 cm rms = 0 fm +LGap: mean = 26.1088 cm rms = 0 fm +... create file : ./histo/AnaEx01_h1_EAbs.csv - done +... create file : ./histo/AnaEx01_h1_EGap.csv - done +... create file : ./histo/AnaEx01_h1_LAbs.csv - done +... create file : ./histo/AnaEx01_h1_LGap.csv - done +... write file : ./histo/AnaEx01_h1_EAbs.csv - done +... write file : ./histo/AnaEx01_h1_EGap.csv - done +... write file : ./histo/AnaEx01_h1_LAbs.csv - done +... write file : ./histo/AnaEx01_h1_LGap.csv - done +... write file : ./ntuple/AnaEx01_nt_Ntuple1.csv - done +... write file : ./ntuple/AnaEx01_nt_Ntuple2.csv - done +... close file : ./histo/AnaEx01_h1_EAbs.csv - done +... close file : ./histo/AnaEx01_h1_EGap.csv - done +... close file : ./histo/AnaEx01_h1_LAbs.csv - done +... close file : ./histo/AnaEx01_h1_LGap.csv - done +... close file : ./ntuple/AnaEx01_nt_Ntuple1.csv - done +... close file : ./ntuple/AnaEx01_nt_Ntuple2.csv - done + +----> Histograms and ntuples are saved + +There are 4 h1 histograms + 0 with 0 entries: Edep in absorber (MeV) + 1 with 0 entries: Edep in gap (MeV) + 2 with 0 entries: trackL in absorber (mm) + 3 with 0 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +# e- 500MeV +/gun/particle e- +/gun/energy 500 MeV +/run/beamOn 1000 +### Run 1 start. +... open analysis file : AnaEx01.csv - done +... create file : ./ntuple/AnaEx01_nt_Ntuple1.csv - done +... create file : ./ntuple/AnaEx01_nt_Ntuple2.csv - done + +----> Output file is open in AnaEx01.csv. + +---> 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 + +--------------------End of Run------------------------------ + + mean Energy in Absorber : 188.96 MeV +- 48.8659 MeV + mean Energy in Gap : 46.7177 MeV +- 12.7612 MeV + + mean trackLength in Absorber : 46.7149 cm +- 12.1118 cm + mean trackLength in Gap : 23.7187 cm +- 6.51829 cm +------------------------------------------------------------ + + + ----> print histograms statistic + +EAbs: mean = 188.96 MeV rms = 48.8659 MeV +EGap: mean = 46.7177 MeV rms = 12.7612 MeV +LAbs: mean = 46.7149 cm rms = 12.1118 cm +LGap: mean = 23.7187 cm rms = 6.51829 cm +... create file : ./histo/AnaEx01_h1_EAbs.csv - done +... create file : ./histo/AnaEx01_h1_EGap.csv - done +... create file : ./histo/AnaEx01_h1_LAbs.csv - done +... create file : ./histo/AnaEx01_h1_LGap.csv - done +... write file : ./histo/AnaEx01_h1_EAbs.csv - done +... write file : ./histo/AnaEx01_h1_EGap.csv - done +... write file : ./histo/AnaEx01_h1_LAbs.csv - done +... write file : ./histo/AnaEx01_h1_LGap.csv - done +... write file : ./ntuple/AnaEx01_nt_Ntuple1.csv - done +... write file : ./ntuple/AnaEx01_nt_Ntuple2.csv - done +... close file : ./histo/AnaEx01_h1_EAbs.csv - done +... close file : ./histo/AnaEx01_h1_EGap.csv - done +... close file : ./histo/AnaEx01_h1_LAbs.csv - done +... close file : ./histo/AnaEx01_h1_LGap.csv - done +... close file : ./ntuple/AnaEx01_nt_Ntuple1.csv - done +... close file : ./ntuple/AnaEx01_nt_Ntuple2.csv - done + +----> Histograms and ntuples are saved + +There are 4 h1 histograms + 0 with 0 entries: Edep in absorber (MeV) + 1 with 0 entries: Edep in gap (MeV) + 2 with 0 entries: trackL in absorber (mm) + 3 with 0 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +Graphics systems deleted. +Visualization Manager deleting... diff --git a/examples/extended/analysis/AnaEx01/AnaEx01-hdf5.in b/examples/extended/analysis/AnaEx01/AnaEx01-hdf5.in new file mode 100644 index 0000000000..a601d180c7 --- /dev/null +++ b/examples/extended/analysis/AnaEx01/AnaEx01-hdf5.in @@ -0,0 +1,8 @@ +# +# Macro file for the test of AnaEx01 example +# with hdf5 file type +# + +/control/alias defaultFileType hdf5 + +/control/execute AnaEx01.in diff --git a/examples/extended/analysis/AnaEx01/AnaEx01-hdf5.out b/examples/extended/analysis/AnaEx01/AnaEx01-hdf5.out new file mode 100644 index 0000000000..107142ec96 --- /dev/null +++ b/examples/extended/analysis/AnaEx01/AnaEx01-hdf5.out @@ -0,0 +1,1080 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + + +***** Table : Nb of materials = 3 ***** + + Material: G4_Galactic density: 0.000 mg/cm3 RadL: 204310098.490 pc Nucl.Int.Length: 113427284.261 pc + Imean: 21.800 eV temperature: 2.73 K pressure: 0.00 atm + + ---> Element: H (H) Z = 1.0 N = 1 A = 1.008 g/mole + ---> Isotope: H1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.989 % + ---> Isotope: H2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.011 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.248 cm + Imean: 823.000 eV temperature: 293.15 K pressure: 1.00 atm + + ---> Element: Pb (Pb) Z = 82.0 N = 207 A = 207.217 g/mole + ---> Isotope: Pb204 Z = 82 N = 204 A = 203.97 g/mole abundance: 1.400 % + ---> Isotope: Pb206 Z = 82 N = 206 A = 205.97 g/mole abundance: 24.100 % + ---> Isotope: Pb207 Z = 82 N = 207 A = 206.98 g/mole abundance: 22.100 % + ---> Isotope: Pb208 Z = 82 N = 208 A = 207.98 g/mole abundance: 52.400 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + Material: G4_lAr density: 1.396 g/cm3 RadL: 14.003 cm Nucl.Int.Length: 85.706 cm + Imean: 188.000 eV temperature: 293.15 K pressure: 1.00 atm + + ---> Element: Ar (Ar) Z = 18.0 N = 40 A = 39.948 g/mole + ---> Isotope: Ar36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.337 % + ---> Isotope: Ar38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.063 % + ---> Isotope: Ar40 Z = 18 N = 40 A = 39.96 g/mole abundance: 99.600 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + +<<< Geant4 Physics List simulation engine: FTFP_BERT + +Visualization Manager instantiating with verbosity "warnings (3)"... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully registered the following graphics systems. +Registered graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML2FILE (VRML2FILE) + gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) + OpenGLImmediateQt (OGLIQt, OGLI) + OpenGLStoredQt (OGLSQt, OGL, OGLS) + OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) + OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK) + OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK) + OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK) + RayTracerX (RayTracerX) + Qt3D (Qt3D) + TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK) + TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK) + TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG) + +Registering model factories... + +You have successfully registered the following model factories. +Registered model factories: + generic + drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByEncounteredVolume + +Registered models: + None + +Registered filter factories: + attributeFilter + chargeFilter + originVolumeFilter + particleFilter + encounteredVolumeFilter + +Registered filters: + None + +You have successfully registered the following user vis actions. +Run Duration User Vis Actions: none +End of Event User Vis Actions: none +End of Run User Vis Actions: none + +Some /vis commands (optionally) take a string to specify colour. +"/vis/list" to see available colours. + +------------------------------------------------------------ +---> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of G4_lAr ] +------------------------------------------------------------ + + hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval + for pions : 3 to 6 GeV + for kaons : 3 to 6 GeV + for proton : 3 to 6 GeV + for neutron : 3 to 6 GeV + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 +# +/det/setAbsMat G4_Al +/det/setGapMat G4_Air +/det/setAbsThick 20. mm +/run/reinitializeGeometry +/det/setGapThick 10. mm +/run/reinitializeGeometry +/det/setSizeYZ 30. mm +/run/reinitializeGeometry +/det/setNbOfLayers 20 +/run/reinitializeGeometry +# +/run/beamOn 1 + +------------------------------------------------------------ +---> The calorimeter is 20 layers of: [ 20mm of G4_Al + 10mm of G4_lAr ] +------------------------------------------------------------ +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 7 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 1 mm) +Step function for muons/hadrons (0.2, 0.1 mm) +Step function for light ions (0.2, 0.1 mm) +Step function for general ions (0.2, 0.1 mm) +Lowest e+e- kinetic energy 1 keV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 0 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 0 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 0 eV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 1 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 0 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.04 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 1 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 0 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 61 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 56 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Klein-Nishina : Emin= 0 eV Emax= 100 TeV + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + Stopping Power data for 17 ion/material pairs + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + + Process: nKiller + +--------------------------------------------------- + Hadronic Processes for B- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: B-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for D- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: D-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_He3Inelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_alphaInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_deuteronInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: anti_lambdaInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_neutronInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_protonInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_tritonInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: dInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for e+ + + Process: positronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for e- + + Process: electronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: GammaNPreco: 0 eV ---> 200 MeV + Model: BertiniCascade: 199 MeV ---> 6 GeV + Model: TheoFSGenerator: 3 GeV ---> 100 TeV + Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: lambdaInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu+ + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + + Process: muMinusCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: protonInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for sigma- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: sigma-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: tInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +================================================================ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Pre-compound model active 1 +Pre-compound excitation low energy 100 keV +Pre-compound excitation high energy 30 MeV +Type of de-excitation inverse x-section 3 +Type of de-excitation factory Evaporation+GEM +Number of de-excitation channels 68 +Min excitation energy 10 eV +Min energy per nucleon for multifragmentation 200 GeV +Limit excitation energy for Fermi BreakUp 20 MeV +Level density (1/MeV) 0.075 +Use simple level density model 1 +Use discrete excitation energy of the residual 1 +Time limit for long lived isomeres 1 ns +Isomer production flag 1 +Internal e- conversion flag 1 +Store e- internal conversion data 0 +Correlated gamma emission flag 0 +Max 2J for sampling of angular correlations 10 +======================================================================= +G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. +See commands in /vis/modeling/trajectories/ for other options. +### Run 0 start. +... create file : AnaEx01.hdf5 - done +... open analysis file : AnaEx01.hdf5 - done + +----> Output file is open in AnaEx01.hdf5. + +---> Begin of event: 0 + +--------------------End of Run------------------------------ + + mean Energy in Absorber : 256.274 MeV +- 0 eV + mean Energy in Gap : 50.16 MeV +- 0 eV + + mean trackLength in Absorber : 63.8594 cm +- 0 fm + mean trackLength in Gap : 26.1088 cm +- 0 fm +------------------------------------------------------------ + + + ----> print histograms statistic + +EAbs: mean = 256.274 MeV rms = 0 eV +EGap: mean = 50.16 MeV rms = 0 eV +LAbs: mean = 63.8594 cm rms = 0 fm +LGap: mean = 26.1088 cm rms = 0 fm +... write file : AnaEx01.hdf5 - done +... close file : AnaEx01.hdf5 - done + +----> Histograms and ntuples are saved + +There are 4 h1 histograms + 0 with 0 entries: Edep in absorber (MeV) + 1 with 0 entries: Edep in gap (MeV) + 2 with 0 entries: trackL in absorber (mm) + 3 with 0 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +# e- 500MeV +/gun/particle e- +/gun/energy 500 MeV +/run/beamOn 1000 +### Run 1 start. +... create file : AnaEx01.hdf5 - done +... open analysis file : AnaEx01.hdf5 - done + +----> Output file is open in AnaEx01.hdf5. + +---> 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 + +--------------------End of Run------------------------------ + + mean Energy in Absorber : 188.96 MeV +- 48.8659 MeV + mean Energy in Gap : 46.7177 MeV +- 12.7612 MeV + + mean trackLength in Absorber : 46.7149 cm +- 12.1118 cm + mean trackLength in Gap : 23.7187 cm +- 6.51829 cm +------------------------------------------------------------ + + + ----> print histograms statistic + +EAbs: mean = 188.96 MeV rms = 48.8659 MeV +EGap: mean = 46.7177 MeV rms = 12.7612 MeV +LAbs: mean = 46.7149 cm rms = 12.1118 cm +LGap: mean = 23.7187 cm rms = 6.51829 cm +... write file : AnaEx01.hdf5 - done +... close file : AnaEx01.hdf5 - done + +----> Histograms and ntuples are saved + +There are 4 h1 histograms + 0 with 0 entries: Edep in absorber (MeV) + 1 with 0 entries: Edep in gap (MeV) + 2 with 0 entries: trackL in absorber (mm) + 3 with 0 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +Graphics systems deleted. +Visualization Manager deleting... diff --git a/examples/extended/analysis/AnaEx01/AnaEx01-root.in b/examples/extended/analysis/AnaEx01/AnaEx01-root.in new file mode 100644 index 0000000000..a6592edc7a --- /dev/null +++ b/examples/extended/analysis/AnaEx01/AnaEx01-root.in @@ -0,0 +1,8 @@ +# +# Macro file for the test of AnaEx01 example +# with root file type (default) +# + +/control/alias defaultFileType root + +/control/execute AnaEx01.in diff --git a/examples/extended/analysis/AnaEx01/AnaEx01.out b/examples/extended/analysis/AnaEx01/AnaEx01-root.out similarity index 97% rename from examples/extended/analysis/AnaEx01/AnaEx01.out rename to examples/extended/analysis/AnaEx01/AnaEx01-root.out index 12fb09cbc6..e1f94e90fe 100644 --- a/examples/extended/analysis/AnaEx01/AnaEx01.out +++ b/examples/extended/analysis/AnaEx01/AnaEx01-root.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -67,6 +67,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -122,6 +124,23 @@ Some /vis commands (optionally) take a string to specify colour. for neutron : 3 to 6 GeV ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 +# +/det/setAbsMat G4_Al +/det/setGapMat G4_Air +/det/setAbsThick 20. mm +/run/reinitializeGeometry +/det/setGapThick 10. mm +/run/reinitializeGeometry +/det/setSizeYZ 30. mm +/run/reinitializeGeometry +/det/setNbOfLayers 20 +/run/reinitializeGeometry +# +/run/beamOn 1 + +------------------------------------------------------------ +---> The calorimeter is 20 layers of: [ 20mm of G4_Al + 10mm of G4_lAr ] +------------------------------------------------------------ ======================================================================= ====== Electromagnetic Physics Parameters ======== ======================================================================= @@ -131,6 +150,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -158,7 +178,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -209,8 +229,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -692,6 +712,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -967,6 +992,47 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 0 +--------------------End of Run------------------------------ + + mean Energy in Absorber : 256.274 MeV +- 0 eV + mean Energy in Gap : 50.16 MeV +- 0 eV + + mean trackLength in Absorber : 63.8594 cm +- 0 fm + mean trackLength in Gap : 26.1088 cm +- 0 fm +------------------------------------------------------------ + + + ----> print histograms statistic + +EAbs: mean = 256.274 MeV rms = 0 eV +EGap: mean = 50.16 MeV rms = 0 eV +LAbs: mean = 63.8594 cm rms = 0 fm +LGap: mean = 26.1088 cm rms = 0 fm +... write file : AnaEx01.root - done +... close file : AnaEx01.root - done + +----> Histograms and ntuples are saved + +There are 4 h1 histograms + 0 with 0 entries: Edep in absorber (MeV) + 1 with 0 entries: Edep in gap (MeV) + 2 with 0 entries: trackL in absorber (mm) + 3 with 0 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +# e- 500MeV +/gun/particle e- +/gun/energy 500 MeV +/run/beamOn 1000 +### Run 1 start. +... create file : AnaEx01.root - done +... open analysis file : AnaEx01.root - done +... open analysis file : AnaEx01.root - done + +----> Output file is open in AnaEx01.root. + +---> Begin of event: 0 + ---> Begin of event: 100 ---> Begin of event: 200 @@ -987,74 +1053,20 @@ See commands in /vis/modeling/trajectories/ for other options. --------------------End of Run------------------------------ - mean Energy in Absorber : 453.656 MeV +- 12.4449 MeV - mean Energy in Gap : 24.7474 MeV +- 7.52057 MeV + mean Energy in Absorber : 188.96 MeV +- 48.8659 MeV + mean Energy in Gap : 46.7177 MeV +- 12.7612 MeV - mean trackLength in Absorber : 32.6632 cm +- 9.51264 mm - mean trackLength in Gap : 12.2578 cm +- 3.86035 cm + mean trackLength in Absorber : 46.7149 cm +- 12.1118 cm + mean trackLength in Gap : 23.7187 cm +- 6.51829 cm ------------------------------------------------------------ ----> print histograms statistic -EAbs: mean = 453.656 MeV rms = 12.4449 MeV -EGap: mean = 24.7474 MeV rms = 7.52057 MeV -LAbs: mean = 32.6632 cm rms = 9.51264 mm -LGap: mean = 12.2578 cm rms = 3.86035 cm -... write file : AnaEx01.root - done -... close file : AnaEx01.root - done - -----> Histograms and ntuples are saved - -There are 4 h1 histograms - 0 with 0 entries: Edep in absorber (MeV) - 1 with 0 entries: Edep in gap (MeV) - 2 with 0 entries: trackL in absorber (mm) - 3 with 0 entries: trackL in gap (mm) -List them with "/analysis/list". -View them with "/vis/plot" or "/vis/reviewPlots". -# -/det/setAbsMat G4_Al -/det/setGapMat G4_Air -/det/setAbsThick 20. mm -/run/reinitializeGeometry -/det/setGapThick 10. mm -/run/reinitializeGeometry -/det/setSizeYZ 30. mm -/run/reinitializeGeometry -/det/setNbOfLayers 20 -/run/reinitializeGeometry -# -/run/beamOn 1 - ------------------------------------------------------------- ----> The calorimeter is 20 layers of: [ 20mm of G4_Al + 10mm of G4_lAr ] ------------------------------------------------------------- -### Run 1 start. -... create file : AnaEx01.root - done -... open analysis file : AnaEx01.root - done -... open analysis file : AnaEx01.root - done - -----> Output file is open in AnaEx01.root. - ----> Begin of event: 0 - ---------------------End of Run------------------------------ - - mean Energy in Absorber : 135.077 MeV +- 0 eV - mean Energy in Gap : 45.3511 MeV +- 0 eV - - mean trackLength in Absorber : 33.6513 cm +- 0 fm - mean trackLength in Gap : 22.1697 cm +- 0 fm ------------------------------------------------------------- - - - ----> print histograms statistic - -EAbs: mean = 135.077 MeV rms = 0 eV -EGap: mean = 45.3511 MeV rms = 0 eV -LAbs: mean = 33.6513 cm rms = 0 fm -LGap: mean = 22.1697 cm rms = 0 fm +EAbs: mean = 188.96 MeV rms = 48.8659 MeV +EGap: mean = 46.7177 MeV rms = 12.7612 MeV +LAbs: mean = 46.7149 cm rms = 12.1118 cm +LGap: mean = 23.7187 cm rms = 6.51829 cm ... write file : AnaEx01.root - done ... close file : AnaEx01.root - done diff --git a/examples/extended/analysis/AnaEx01/AnaEx01-xml.in b/examples/extended/analysis/AnaEx01/AnaEx01-xml.in new file mode 100644 index 0000000000..4bfe607d9b --- /dev/null +++ b/examples/extended/analysis/AnaEx01/AnaEx01-xml.in @@ -0,0 +1,8 @@ +# +# Macro file for the test of AnaEx01 example +# with xml file type +# + +/control/alias defaultFileType xml + +/control/execute AnaEx01.in diff --git a/examples/extended/analysis/AnaEx01/AnaEx01-xml.out b/examples/extended/analysis/AnaEx01/AnaEx01-xml.out new file mode 100644 index 0000000000..2e57d4e810 --- /dev/null +++ b/examples/extended/analysis/AnaEx01/AnaEx01-xml.out @@ -0,0 +1,1092 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + + +***** Table : Nb of materials = 3 ***** + + Material: G4_Galactic density: 0.000 mg/cm3 RadL: 204310098.490 pc Nucl.Int.Length: 113427284.261 pc + Imean: 21.800 eV temperature: 2.73 K pressure: 0.00 atm + + ---> Element: H (H) Z = 1.0 N = 1 A = 1.008 g/mole + ---> Isotope: H1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.989 % + ---> Isotope: H2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.011 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.248 cm + Imean: 823.000 eV temperature: 293.15 K pressure: 1.00 atm + + ---> Element: Pb (Pb) Z = 82.0 N = 207 A = 207.217 g/mole + ---> Isotope: Pb204 Z = 82 N = 204 A = 203.97 g/mole abundance: 1.400 % + ---> Isotope: Pb206 Z = 82 N = 206 A = 205.97 g/mole abundance: 24.100 % + ---> Isotope: Pb207 Z = 82 N = 207 A = 206.98 g/mole abundance: 22.100 % + ---> Isotope: Pb208 Z = 82 N = 208 A = 207.98 g/mole abundance: 52.400 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + Material: G4_lAr density: 1.396 g/cm3 RadL: 14.003 cm Nucl.Int.Length: 85.706 cm + Imean: 188.000 eV temperature: 293.15 K pressure: 1.00 atm + + ---> Element: Ar (Ar) Z = 18.0 N = 40 A = 39.948 g/mole + ---> Isotope: Ar36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.337 % + ---> Isotope: Ar38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.063 % + ---> Isotope: Ar40 Z = 18 N = 40 A = 39.96 g/mole abundance: 99.600 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + +<<< Geant4 Physics List simulation engine: FTFP_BERT + +Visualization Manager instantiating with verbosity "warnings (3)"... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully registered the following graphics systems. +Registered graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML2FILE (VRML2FILE) + gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) + OpenGLImmediateQt (OGLIQt, OGLI) + OpenGLStoredQt (OGLSQt, OGL, OGLS) + OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) + OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK) + OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK) + OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK) + RayTracerX (RayTracerX) + Qt3D (Qt3D) + TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK) + TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK) + TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG) + +Registering model factories... + +You have successfully registered the following model factories. +Registered model factories: + generic + drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByEncounteredVolume + +Registered models: + None + +Registered filter factories: + attributeFilter + chargeFilter + originVolumeFilter + particleFilter + encounteredVolumeFilter + +Registered filters: + None + +You have successfully registered the following user vis actions. +Run Duration User Vis Actions: none +End of Event User Vis Actions: none +End of Run User Vis Actions: none + +Some /vis commands (optionally) take a string to specify colour. +"/vis/list" to see available colours. + +------------------------------------------------------------ +---> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of G4_lAr ] +------------------------------------------------------------ + + hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval + for pions : 3 to 6 GeV + for kaons : 3 to 6 GeV + for proton : 3 to 6 GeV + for neutron : 3 to 6 GeV + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 +# +/det/setAbsMat G4_Al +/det/setGapMat G4_Air +/det/setAbsThick 20. mm +/run/reinitializeGeometry +/det/setGapThick 10. mm +/run/reinitializeGeometry +/det/setSizeYZ 30. mm +/run/reinitializeGeometry +/det/setNbOfLayers 20 +/run/reinitializeGeometry +# +/run/beamOn 1 + +------------------------------------------------------------ +---> The calorimeter is 20 layers of: [ 20mm of G4_Al + 10mm of G4_lAr ] +------------------------------------------------------------ +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 7 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 1 mm) +Step function for muons/hadrons (0.2, 0.1 mm) +Step function for light ions (0.2, 0.1 mm) +Step function for general ions (0.2, 0.1 mm) +Lowest e+e- kinetic energy 1 keV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 0 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 0 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 0 eV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 1 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 0 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.04 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 1 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 0 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 61 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 56 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Klein-Nishina : Emin= 0 eV Emax= 100 TeV + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + Stopping Power data for 17 ion/material pairs + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + + Process: nKiller + +--------------------------------------------------- + Hadronic Processes for B- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: B-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for D- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: D-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_He3Inelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_alphaInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_deuteronInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: anti_lambdaInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_neutronInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_protonInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_tritonInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: dInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for e+ + + Process: positronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for e- + + Process: electronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: GammaNPreco: 0 eV ---> 200 MeV + Model: BertiniCascade: 199 MeV ---> 6 GeV + Model: TheoFSGenerator: 3 GeV ---> 100 TeV + Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: lambdaInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu+ + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + + Process: muMinusCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: protonInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for sigma- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: sigma-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: tInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +================================================================ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Pre-compound model active 1 +Pre-compound excitation low energy 100 keV +Pre-compound excitation high energy 30 MeV +Type of de-excitation inverse x-section 3 +Type of de-excitation factory Evaporation+GEM +Number of de-excitation channels 68 +Min excitation energy 10 eV +Min energy per nucleon for multifragmentation 200 GeV +Limit excitation energy for Fermi BreakUp 20 MeV +Level density (1/MeV) 0.075 +Use simple level density model 1 +Use discrete excitation energy of the residual 1 +Time limit for long lived isomeres 1 ns +Isomer production flag 1 +Internal e- conversion flag 1 +Store e- internal conversion data 0 +Correlated gamma emission flag 0 +Max 2J for sampling of angular correlations 10 +======================================================================= +G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. +See commands in /vis/modeling/trajectories/ for other options. +### Run 0 start. +... create file : AnaEx01.xml - done +... open analysis file : AnaEx01.xml - done +... create file : AnaEx01_nt_Ntuple1.xml - done +... create file : AnaEx01_nt_Ntuple2.xml - done + +----> Output file is open in AnaEx01.xml. + +---> Begin of event: 0 + +--------------------End of Run------------------------------ + + mean Energy in Absorber : 256.274 MeV +- 0 eV + mean Energy in Gap : 50.16 MeV +- 0 eV + + mean trackLength in Absorber : 63.8594 cm +- 0 fm + mean trackLength in Gap : 26.1088 cm +- 0 fm +------------------------------------------------------------ + + + ----> print histograms statistic + +EAbs: mean = 256.274 MeV rms = 0 eV +EGap: mean = 50.16 MeV rms = 0 eV +LAbs: mean = 63.8594 cm rms = 0 fm +LGap: mean = 26.1088 cm rms = 0 fm +... write file : AnaEx01.xml - done +... write file : AnaEx01_nt_Ntuple1.xml - done +... write file : AnaEx01_nt_Ntuple2.xml - done +... close file : AnaEx01.xml - done +... close file : AnaEx01_nt_Ntuple1.xml - done +... close file : AnaEx01_nt_Ntuple2.xml - done + +----> Histograms and ntuples are saved + +There are 4 h1 histograms + 0 with 0 entries: Edep in absorber (MeV) + 1 with 0 entries: Edep in gap (MeV) + 2 with 0 entries: trackL in absorber (mm) + 3 with 0 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +# e- 500MeV +/gun/particle e- +/gun/energy 500 MeV +/run/beamOn 1000 +### Run 1 start. +... create file : AnaEx01.xml - done +... open analysis file : AnaEx01.xml - done +... create file : AnaEx01_nt_Ntuple1.xml - done +... create file : AnaEx01_nt_Ntuple2.xml - done + +----> Output file is open in AnaEx01.xml. + +---> 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 + +--------------------End of Run------------------------------ + + mean Energy in Absorber : 188.96 MeV +- 48.8659 MeV + mean Energy in Gap : 46.7177 MeV +- 12.7612 MeV + + mean trackLength in Absorber : 46.7149 cm +- 12.1118 cm + mean trackLength in Gap : 23.7187 cm +- 6.51829 cm +------------------------------------------------------------ + + + ----> print histograms statistic + +EAbs: mean = 188.96 MeV rms = 48.8659 MeV +EGap: mean = 46.7177 MeV rms = 12.7612 MeV +LAbs: mean = 46.7149 cm rms = 12.1118 cm +LGap: mean = 23.7187 cm rms = 6.51829 cm +... write file : AnaEx01.xml - done +... write file : AnaEx01_nt_Ntuple1.xml - done +... write file : AnaEx01_nt_Ntuple2.xml - done +... close file : AnaEx01.xml - done +... close file : AnaEx01_nt_Ntuple1.xml - done +... close file : AnaEx01_nt_Ntuple2.xml - done + +----> Histograms and ntuples are saved + +There are 4 h1 histograms + 0 with 0 entries: Edep in absorber (MeV) + 1 with 0 entries: Edep in gap (MeV) + 2 with 0 entries: trackL in absorber (mm) + 3 with 0 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +Graphics systems deleted. +Visualization Manager deleting... diff --git a/examples/extended/analysis/AnaEx01/AnaEx01.cc b/examples/extended/analysis/AnaEx01/AnaEx01.cc index ce9764c9f4..ddb09f0198 100644 --- a/examples/extended/analysis/AnaEx01/AnaEx01.cc +++ b/examples/extended/analysis/AnaEx01/AnaEx01.cc @@ -49,7 +49,7 @@ int main(int argc,char** argv) { // Detect interactive mode (if no arguments) and define UI session // - G4UIExecutive* ui = 0; + G4UIExecutive* ui = nullptr; if ( argc == 1 ) { ui = new G4UIExecutive(argc, argv); } @@ -62,7 +62,7 @@ int main(int argc,char** argv) // Set mandatory initialization classes // - DetectorConstruction* detector = new DetectorConstruction; + auto detector = new DetectorConstruction; runManager->SetUserInitialization(detector); runManager->SetUserInitialization(new FTFP_BERT); runManager->SetUserInitialization(new ActionInitialization(detector)); @@ -76,10 +76,12 @@ int main(int argc,char** argv) // G4UImanager* UImanager = G4UImanager::GetUIpointer(); - if ( ! ui ) { + if ( ui == nullptr ) { // batch mode G4String command = "/control/execute "; G4String fileName = argv[1]; + UImanager->ApplyCommand("/control/alias defaultFileType root"); + // define the default value for alias used in AnaEx01.in UImanager->ApplyCommand(command+fileName); } else { diff --git a/examples/extended/analysis/AnaEx01/AnaEx01.in b/examples/extended/analysis/AnaEx01/AnaEx01.in index c351e843a3..3f1726e055 100644 --- a/examples/extended/analysis/AnaEx01/AnaEx01.in +++ b/examples/extended/analysis/AnaEx01/AnaEx01.in @@ -2,16 +2,17 @@ # Macro file for the test of AnaEx01 example # +#/run/numberOfThreads 2 + # reduce output in MT /control/cout/ignoreThreadsExcept 0 # initialize /run/initialize -# e- 500MeV -/gun/particle e- -/gun/energy 500 MeV -/run/beamOn 1000 +# set file type via parameter passed from calling macro +# or use the default value "root" set in main +/analysis/setDefaultFileType {defaultFileType} # Test commands defined in this example /control/verbose 2 @@ -24,3 +25,8 @@ /det/setNbOfLayers 20 # /run/beamOn 1 + +# e- 500MeV +/gun/particle e- +/gun/energy 500 MeV +/run/beamOn 1000 diff --git a/examples/extended/analysis/AnaEx01/CMakeLists.txt b/examples/extended/analysis/AnaEx01/CMakeLists.txt index 01b5b8c3c3..14c8a809a0 100644 --- a/examples/extended/analysis/AnaEx01/CMakeLists.txt +++ b/examples/extended/analysis/AnaEx01/CMakeLists.txt @@ -23,8 +23,8 @@ include(${Geant4_USE_FILE}) #---------------------------------------------------------------------------- # Locate sources and headers for this project # -include_directories(${PROJECT_SOURCE_DIR}/include - ${PROJECT_SOURCE_DIR}/shared/include +include_directories(${PROJECT_SOURCE_DIR}/include + ${PROJECT_SOURCE_DIR}/shared/include ${Geant4_INCLUDE_DIR}) file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc ${PROJECT_SOURCE_DIR}/shared/src/*.cc) @@ -34,8 +34,8 @@ file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh #---------------------------------------------------------------------------- # Add the executable, and link it to the Geant4 libraries # -add_executable(AnaEx01 AnaEx01.cc - ${sources} ${add_sources} ${fortran_sources} +add_executable(AnaEx01 AnaEx01.cc + ${sources} ${add_sources} ${fortran_sources} ${headers} ${add_headers}) target_link_libraries(AnaEx01 ${Geant4_LIBRARIES} ${HBOOK_LIBRARIES}) @@ -44,16 +44,12 @@ target_link_libraries(AnaEx01 ${Geant4_LIBRARIES} ${HBOOK_LIBRARIES}) # build AnaEx01. This is so that we can run the executable directly because it # relies on these scripts being in the current working directory. # -set(AnaEx01_SCRIPTS - AnaEx01.in run.mac init_vis.mac vis.mac - ) +set(AnaEx01_FILES + AnaEx01.in AnaEx01-csv.in AnaEx01-hdf5.in AnaEx01-root.in AnaEx01-xml.in run.mac init_vis.mac vis.mac + histo ntuple) -foreach(_script ${AnaEx01_SCRIPTS}) - configure_file( - ${PROJECT_SOURCE_DIR}/${_script} - ${PROJECT_BINARY_DIR}/${_script} - COPYONLY - ) +foreach(_file ${AnaEx01_FILES}) + file(COPY ${PROJECT_SOURCE_DIR}/${_file} DESTINATION ${PROJECT_BINARY_DIR}) endforeach() #---------------------------------------------------------------------------- diff --git a/examples/extended/analysis/AnaEx01/History b/examples/extended/analysis/AnaEx01/History index 9a1760c7ff..1353be7689 100644 --- a/examples/extended/analysis/AnaEx01/History +++ b/examples/extended/analysis/AnaEx01/History @@ -5,6 +5,14 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-04 I. Hrivnacova (AnaEx01-V11-00-02) +- Updated README files (new macros description) + +## 2022-11-03 I. Hrivnacova (AnaEx01-V11-00-01) +- Added test macros for all supported file types + and moved instatiating of G4AnalysisManager in the HistoManager class + constructor to get analysis commands available before run initialization + ## 2021-12-10 Ben Morgan (AnaEx01-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/analysis/AnaEx01/README b/examples/extended/analysis/AnaEx01/README index c6f0cd92d1..40def47da7 100644 --- a/examples/extended/analysis/AnaEx01/README +++ b/examples/extended/analysis/AnaEx01/README @@ -6,35 +6,35 @@ AnaEx01 ------- - + Examples AnaEx01 and AnaEx02 show the usage of histogram and tuple manipulations using G4Analysis and ROOT compliant systems on the same - scenario. All analysis manipulations (histo booking, filling, saving histos - in a file, etc...) are located in one class : HistoManager, implementation of - which is different in each example. All the other classes are same in all + scenario. All analysis manipulations (histo booking, filling, saving histos + in a file, etc...) are located in one class : HistoManager, implementation of + which is different in each example. All the other classes are same in all three examples. - - This example shows the usage of histogram and tuple manipulations using - G4Analysis system. - - The example is an adaptation of examples/novice/N03. It describes a simple + + This example shows the usage of histogram and tuple manipulations using + G4Analysis system. + + The example is an adaptation of examples/novice/N03. It describes a simple sampling calorimeter setup. - + 1- Detector description ----------------------- - + The calorimeter is a box made of a given number of layers. A layer consists of an absorber plate and of a detection gap. The layer is replicated. - + Six parameters define the calorimeter : - the material of the absorber, - the thickness of an absorber plate, - the material of the detection gap, - the thickness of a gap, - the number of layers, - - the transverse size of the calorimeter (the input face is a square). - + - the transverse size of the calorimeter (the input face is a square). + The default geometry is constructed in DetectorConstruction class, but all of the above parameters can be modified interactively via the commands defined in the DetectorMessenger class. @@ -48,66 +48,87 @@ ======> || | || | || | || || | || | || | || ========================================================================== - - + + 2- Physics list --------------- - + The particle's type and the physic processes which will be available in this example are set in the FTFP_BERT physics list. - + 3- Action Initialization ------------------------ - A newly introduced class, ActionInitialization, - instantiates and registers to Geant4 kernel all user action classes + A newly introduced class, ActionInitialization, + instantiates and registers to Geant4 kernel all user action classes which are defined thread-local and a run action class which is defined both thread-local and global. - - The thread-local action classes are defined in - ActionInitialization::Build() - and the global run action class is defined in + + The thread-local action classes are defined in + ActionInitialization::Build() + and the global run action class is defined in ActionInitialization::BuildForMaster(). - Note that ActionInitialization::Build() is also used to + Note that ActionInitialization::Build() is also used to instatiate user action clasess in sequential mode. - + 4- An event : PrimaryGeneratorAction ------------------------------------ - + The primary kinematic consists of a single particle which hits the calorimeter 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. 5- Histograms - ------------- + ------------- AnaEx01 can produce 4 histograms : - + EAbs : total energy deposit in absorber per event - EGap : total energy deposit in gap per event - LAbs : total track length of charged particles in absorber per event - LGap : total track length of charged particles in gap per event - + EGap : total energy deposit in gap per event + LAbs : total track length of charged particles in absorber per event + LGap : total track length of charged particles in gap per event + And 2 Ntuples : - Ntuple1: - one row per event : EnergyAbs EnergyGap - Ntuple2: - one row per event : TrackLAbs TrackLGap - - These histos and ntuples are booked in HistoManager and filled from + + These histos and ntuples are booked in HistoManager and filled from EventAction. - + One can control the name of the histograms file and its format: - default name : AnaEx01 + default name : AnaEx01 The format of the histogram file can be : root (default), - xml, csv. Include correct g4nnn.hh in HistoManager.hh - - 6- How to build - --------------- + xml, csv. + + We can define the default file type and set it to the analysis manager via + /analysis/setDefaultFileType root # or csv hdf5 xml + + The file names then need not to be provided with the file extension and the same macro + can be used with different output types. + + + 6- Macros: + ---------- + + The AnaEx01.in macro uses the defaultFileType parameter (alias), which default value, + "root" is defined in main. + + AnaEx01-csv.in, AnaEx01-hdf5.in, AnaEx01-root.in, AnaEx01-xml.in: + + In these macros, the default value of the defaultFileType is overritten with + + /control/alias defaultFileType cvs # or hdf5 root xml + + and then the AnaEx01.in macro is called. + + 7- How to build + --------------- An additional step is needed when building the example with GNUmake - due to using the extra shared directory: + due to using the extra shared directory: % cd path_to_AnaEx01/AnaEx01 % gmake setup % gmake @@ -116,15 +137,15 @@ to remove these files: % gmake clean_setup - 7- How to run + 8- How to run -------------- - Execute AnaEx01 in the 'interactive mode' with visualization % ./AnaEx01 - and type in the commands from run.mac line by line: + and type in the commands from run.mac line by line: Idle> /control/verbose 2 Idle> /tracking/verbose 1 - Idle> /run/beamOn 10 + Idle> /run/beamOn 10 Idle> ... Idle> exit or diff --git a/examples/extended/analysis/AnaEx01/histo/README b/examples/extended/analysis/AnaEx01/histo/README new file mode 100644 index 0000000000..0dc4da0fbe --- /dev/null +++ b/examples/extended/analysis/AnaEx01/histo/README @@ -0,0 +1,2 @@ +This directory will be used for saving histogram files +when running AnaEx01 example with the Csv output type diff --git a/examples/extended/analysis/AnaEx01/include/HistoManager.hh b/examples/extended/analysis/AnaEx01/include/HistoManager.hh index ade9cf015e..aed2451992 100644 --- a/examples/extended/analysis/AnaEx01/include/HistoManager.hh +++ b/examples/extended/analysis/AnaEx01/include/HistoManager.hh @@ -27,9 +27,9 @@ /// \brief Definition of the HistoManager class // // -// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #ifndef HistoManager_h #define HistoManager_h 1 @@ -47,17 +47,17 @@ class HistoManager void Book(); void Save(); - + void FillHisto(G4int id, G4double e, G4double weight = 1.0); - void Normalize(G4int id, G4double fac); + void Normalize(G4int id, G4double fac); void FillNtuple(G4double EnergyAbs, G4double EnergyGap, G4double TrackLAbs, G4double TrackLGap); - - void PrintStatistic(); - + + void PrintStatistic(); + private: - G4bool fFactoryOn; + G4bool fFactoryOn = false; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx01/ntuple/README b/examples/extended/analysis/AnaEx01/ntuple/README new file mode 100644 index 0000000000..38749c3d17 --- /dev/null +++ b/examples/extended/analysis/AnaEx01/ntuple/README @@ -0,0 +1,2 @@ +This directory will be used for saving ntuple files +when running AnaEx01 example with the Csv output type diff --git a/examples/extended/analysis/AnaEx01/plotHisto.C b/examples/extended/analysis/AnaEx01/plotHisto.C index 7eb82c4898..4bd1d181ec 100644 --- a/examples/extended/analysis/AnaEx01/plotHisto.C +++ b/examples/extended/analysis/AnaEx01/plotHisto.C @@ -1,22 +1,22 @@ { gROOT->Reset(); - - // Draw histos filled by Geant4 simulation - // - TFile f = TFile("AnaEx01.root"); + + // Draw histos filled by Geant4 simulation + // + TFile f = TFile("AnaEx01.root"); TCanvas* c1 = new TCanvas("c1", " "); - + TDirectory* dir = f.Get("histo"); - - TH1D* hist1 = (TH1D*)dir->Get("1"); + + TH1D* hist1 = (TH1D*)dir->Get("1"); hist1->Draw("HIST"); - - TH1D* hist2 = (TH1D*)dir->Get("2"); + + TH1D* hist2 = (TH1D*)dir->Get("2"); hist2->Draw("HIST"); - - TH1D* hist3 = (TH1D*)dir->Get("3"); + + TH1D* hist3 = (TH1D*)dir->Get("3"); hist3->Draw("HIST"); - - TH1D* hist4 = (TH1D*)dir->Get("4"); - hist4->Draw("HIST"); -} + + TH1D* hist4 = (TH1D*)dir->Get("4"); + hist4->Draw("HIST"); +} diff --git a/examples/extended/analysis/AnaEx01/shared/History b/examples/extended/analysis/AnaEx01/shared/History index 19eba7b2bd..c94df7b1ef 100644 --- a/examples/extended/analysis/AnaEx01/shared/History +++ b/examples/extended/analysis/AnaEx01/shared/History @@ -21,7 +21,7 @@ be used as a substitute for writing good git commit messages! 03-07-18 I. Hrivnacova (analysisShared-V10-04-00) - Macro & commands review: - Removed obsolete /N03 top command directory - - Added protection against warnings issued from ReinitializeGeometry() if + - Added protection against warnings issued from ReinitializeGeometry() if called in PreInit phase 04-07-16 I. Hrivnacova (analysisShared-V10-02-01) @@ -33,9 +33,9 @@ be used as a substitute for writing good git commit messages! 27-08-15 I. Hrivnacova (analysisShared-V10-01-00) - Updated histogram ids in FillHiso (now starting from 0); updated for changed function names in HistoManager classes - + 06-11-14 I. Hrivnacova (analysisShared-V10-00-01) - Moved scripts from upper directory in shared - + 05-11-14 I. Hrivnacova (analysisShared-V10-00-00) - Tagged version which will be included in AnaEx0N examples diff --git a/examples/extended/analysis/AnaEx01/shared/include/ActionInitialization.hh b/examples/extended/analysis/AnaEx01/shared/include/ActionInitialization.hh index 797b2917e7..d897750a33 100644 --- a/examples/extended/analysis/AnaEx01/shared/include/ActionInitialization.hh +++ b/examples/extended/analysis/AnaEx01/shared/include/ActionInitialization.hh @@ -41,15 +41,15 @@ class ActionInitialization : public G4VUserActionInitialization { public: ActionInitialization(DetectorConstruction* detector); - virtual ~ActionInitialization(); + ~ActionInitialization() override; - virtual void BuildForMaster() const; - virtual void Build() const; + void BuildForMaster() const override; + void Build() const override; private: - DetectorConstruction* fDetector; + DetectorConstruction* fDetector = nullptr; }; #endif - + diff --git a/examples/extended/analysis/AnaEx01/shared/include/DetectorConstruction.hh b/examples/extended/analysis/AnaEx01/shared/include/DetectorConstruction.hh index 682d37091c..040bf4c9e6 100644 --- a/examples/extended/analysis/AnaEx01/shared/include/DetectorConstruction.hh +++ b/examples/extended/analysis/AnaEx01/shared/include/DetectorConstruction.hh @@ -25,10 +25,6 @@ // /// \file DetectorConstruction.hh /// \brief Definition of the DetectorConstruction class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -39,6 +35,8 @@ #include "G4VUserDetectorConstruction.hh" #include "globals.hh" +#include "CLHEP/Units/SystemOfUnits.h" + class G4Box; class G4LogicalVolume; class G4VPhysicalVolume; @@ -50,90 +48,82 @@ class DetectorMessenger; class DetectorConstruction : public G4VUserDetectorConstruction { public: - - DetectorConstruction(); - virtual ~DetectorConstruction(); + + DetectorConstruction(); + ~DetectorConstruction() override; public: - - void SetAbsorberMaterial (G4String); - void SetAbsorberThickness(G4double); + G4VPhysicalVolume* Construct() override; - void SetGapMaterial (G4String); - void SetGapThickness(G4double); - - void SetCalorSizeYZ(G4double); - void SetNbOfLayers (G4int); - - virtual G4VPhysicalVolume* Construct(); + void SetAbsorberMaterial (const G4String&); + void SetAbsorberThickness(G4double); + + void SetGapMaterial (const G4String&); + void SetGapThickness(G4double); + + void SetCalorSizeYZ(G4double); + void SetNbOfLayers (G4int); + + void PrintCalorParameters(); + + G4double GetWorldSizeX() { return fWorldSizeX; } + G4double GetWorldSizeYZ() { return fWorldSizeYZ; } + + G4double GetCalorThickness() { return fCalorThickness; } + G4double GetCalorSizeYZ() { return fCalorSizeYZ; } + + G4int GetNbOfLayers() { return fNbOfLayers; } + + G4Material* GetAbsorberMaterial() { return fAbsorberMaterial; } + G4double GetAbsorberThickness() { return fAbsorberThickness; } + + G4Material* GetGapMaterial() { return fGapMaterial; } + G4double GetGapThickness() { return fGapThickness; } + + const G4VPhysicalVolume* GetphysiWorld() { return fPhysiWorld; } + const G4VPhysicalVolume* GetAbsorber() { return fPhysiAbsorber; } + const G4VPhysicalVolume* GetGap() { return fPhysiGap; } - public: - - void PrintCalorParameters(); - - G4double GetWorldSizeX() {return fWorldSizeX;}; - G4double GetWorldSizeYZ() {return fWorldSizeYZ;}; - - G4double GetCalorThickness() {return fCalorThickness;}; - G4double GetCalorSizeYZ() {return fCalorSizeYZ;}; - - G4int GetNbOfLayers() {return fNbOfLayers;}; - - G4Material* GetAbsorberMaterial() {return fAbsorberMaterial;}; - G4double GetAbsorberThickness() {return fAbsorberThickness;}; - - G4Material* GetGapMaterial() {return fGapMaterial;}; - G4double GetGapThickness() {return fGapThickness;}; - - const G4VPhysicalVolume* GetphysiWorld() {return fPhysiWorld;}; - const G4VPhysicalVolume* GetAbsorber() {return fPhysiAbsorber;}; - const G4VPhysicalVolume* GetGap() {return fPhysiGap;}; - private: - - G4Material* fAbsorberMaterial; - G4double fAbsorberThickness; - - G4Material* fGapMaterial; - G4double fGapThickness; - - G4int fNbOfLayers; - G4double fLayerThickness; - - G4double fCalorSizeYZ; - G4double fCalorThickness; - - G4Material* fDefaultMaterial; - G4double fWorldSizeYZ; - G4double fWorldSizeX; - - G4Box* fSolidWorld; //pointer to the solid World - G4LogicalVolume* fLogicWorld; //pointer to the logical World - G4VPhysicalVolume* fPhysiWorld; //pointer to the physical World + void DefineMaterials(); + void ComputeCalorParameters(); + G4VPhysicalVolume* ConstructCalorimeter(); - G4Box* fSolidCalor; //pointer to the solid Calor - G4LogicalVolume* fLogicCalor; //pointer to the logical Calor - G4VPhysicalVolume* fPhysiCalor; //pointer to the physical Calor - - G4Box* fSolidLayer; //pointer to the solid Layer - G4LogicalVolume* fLogicLayer; //pointer to the logical Layer - G4VPhysicalVolume* fPhysiLayer; //pointer to the physical Layer - - G4Box* fSolidAbsorber; //pointer to the solid Absorber - G4LogicalVolume* fLogicAbsorber; //pointer to the logical Absorber - G4VPhysicalVolume* fPhysiAbsorber; //pointer to the physical Absorber - - G4Box* fSolidGap; //pointer to the solid Gap - G4LogicalVolume* fLogicGap; //pointer to the logical Gap - G4VPhysicalVolume* fPhysiGap; //pointer to the physical Gap - - DetectorMessenger* fDetectorMessenger; //pointer to the Messenger - - private: - - void DefineMaterials(); - void ComputeCalorParameters(); - G4VPhysicalVolume* ConstructCalorimeter(); + G4Material* fAbsorberMaterial = nullptr; + G4Material* fGapMaterial = nullptr; + G4Material* fDefaultMaterial = nullptr; + + G4int fNbOfLayers = 10; + G4double fAbsorberThickness = 10.*CLHEP::mm; + G4double fGapThickness = 5.*CLHEP::mm; + G4double fCalorSizeYZ = 10.*CLHEP::cm; + + G4double fCalorThickness = 0.; // will be computed + G4double fLayerThickness= 0.; // will be computed + G4double fWorldSizeYZ = 0.; // will be computed; + G4double fWorldSizeX = 0.; // will be computed; + + G4Box* fSolidWorld = nullptr; //pointer to the solid World + G4LogicalVolume* fLogicWorld = nullptr; //pointer to the logical World + G4VPhysicalVolume* fPhysiWorld = nullptr; //pointer to the physical World + + G4Box* fSolidCalor = nullptr; //pointer to the solid Calor + G4LogicalVolume* fLogicCalor = nullptr; //pointer to the logical Calor + G4VPhysicalVolume* fPhysiCalor = nullptr; //pointer to the physical Calor + + G4Box* fSolidLayer = nullptr; //pointer to the solid Layer + G4LogicalVolume* fLogicLayer = nullptr; //pointer to the logical Layer + G4VPhysicalVolume* fPhysiLayer = nullptr; //pointer to the physical Layer + + G4Box* fSolidAbsorber = nullptr; //pointer to the solid Absorber + G4LogicalVolume* fLogicAbsorber = nullptr; //pointer to the logical Absorber + G4VPhysicalVolume* fPhysiAbsorber = nullptr; //pointer to the physical Absorber + + G4Box* fSolidGap = nullptr; //pointer to the solid Gap + G4LogicalVolume* fLogicGap = nullptr; //pointer to the logical Gap + G4VPhysicalVolume* fPhysiGap = nullptr; //pointer to the physical Gap + + DetectorMessenger* fDetectorMessenger = nullptr; //pointer to the Messenger }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -141,10 +131,10 @@ class DetectorConstruction : public G4VUserDetectorConstruction inline void DetectorConstruction::ComputeCalorParameters() { // Compute derived parameters of the calorimeter - fLayerThickness = fAbsorberThickness + fGapThickness; - fCalorThickness = fNbOfLayers*fLayerThickness; - - fWorldSizeX = 1.2*fCalorThickness; fWorldSizeYZ = 1.2*fCalorSizeYZ; + fLayerThickness = fAbsorberThickness + fGapThickness; + fCalorThickness = fNbOfLayers*fLayerThickness; + + fWorldSizeX = 1.2*fCalorThickness; fWorldSizeYZ = 1.2*fCalorSizeYZ; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx01/shared/include/DetectorMessenger.hh b/examples/extended/analysis/AnaEx01/shared/include/DetectorMessenger.hh index d18799417f..df4790e77d 100644 --- a/examples/extended/analysis/AnaEx01/shared/include/DetectorMessenger.hh +++ b/examples/extended/analysis/AnaEx01/shared/include/DetectorMessenger.hh @@ -25,10 +25,6 @@ // /// \file DetectorMessenger.hh /// \brief Definition of the DetectorMessenger class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -44,7 +40,6 @@ class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; class G4UIcmdWithADoubleAndUnit; -class G4UIcmdWithoutParameter; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -52,23 +47,22 @@ class DetectorMessenger: public G4UImessenger { public: DetectorMessenger(DetectorConstruction* ); - virtual ~DetectorMessenger(); - - virtual void SetNewValue(G4UIcommand*, G4String); - + ~DetectorMessenger() override; + + void SetNewValue(G4UIcommand*, G4String) override; + private: - DetectorConstruction* fDetector; - - G4UIdirectory* fDetDir; - G4UIcmdWithAString* fAbsMaterCmd; - G4UIcmdWithAString* fGapMaterCmd; - G4UIcmdWithADoubleAndUnit* fAbsThickCmd; - G4UIcmdWithADoubleAndUnit* fGapThickCmd; - G4UIcmdWithADoubleAndUnit* fSizeYZCmd; - G4UIcmdWithAnInteger* fNbLayersCmd; + DetectorConstruction* fDetector = nullptr; + + G4UIdirectory* fDetDir = nullptr; + G4UIcmdWithAString* fAbsMaterCmd = nullptr; + G4UIcmdWithAString* fGapMaterCmd = nullptr; + G4UIcmdWithADoubleAndUnit* fAbsThickCmd = nullptr; + G4UIcmdWithADoubleAndUnit* fGapThickCmd = nullptr; + G4UIcmdWithADoubleAndUnit* fSizeYZCmd = nullptr; + G4UIcmdWithAnInteger* fNbLayersCmd = nullptr; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - diff --git a/examples/extended/analysis/AnaEx01/shared/include/EventAction.hh b/examples/extended/analysis/AnaEx01/shared/include/EventAction.hh index 93ced7f5b4..943fff1125 100644 --- a/examples/extended/analysis/AnaEx01/shared/include/EventAction.hh +++ b/examples/extended/analysis/AnaEx01/shared/include/EventAction.hh @@ -28,7 +28,7 @@ // // // -// +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,26 +48,28 @@ class EventAction : public G4UserEventAction { public: EventAction(RunAction*, HistoManager*); - virtual ~EventAction(); + ~EventAction() override; + + void BeginOfEventAction(const G4Event*) override; + void EndOfEventAction(const G4Event*) override; - virtual void BeginOfEventAction(const G4Event*); - virtual void EndOfEventAction(const G4Event*); - void AddAbs(G4double de, G4double dl) {fEnergyAbs += de; fTrackLAbs += dl;}; void AddGap(G4double de, G4double dl) {fEnergyGap += de; fTrackLGap += dl;}; - + private: - RunAction* fRunAct; - HistoManager* fHistoManager; - - G4double fEnergyAbs, fEnergyGap; - G4double fTrackLAbs, fTrackLGap; - - G4int fPrintModulo; + RunAction* fRunAct = nullptr; + HistoManager* fHistoManager = nullptr; + + G4double fEnergyAbs = 0.; + G4double fEnergyGap = 0; + G4double fTrackLAbs = 0; + G4double fTrackLGap = 0; + + G4int fPrintModulo = 100; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - + diff --git a/examples/extended/analysis/AnaEx01/shared/include/PrimaryGeneratorAction.hh b/examples/extended/analysis/AnaEx01/shared/include/PrimaryGeneratorAction.hh index 8da549b116..e4d51bdddb 100644 --- a/examples/extended/analysis/AnaEx01/shared/include/PrimaryGeneratorAction.hh +++ b/examples/extended/analysis/AnaEx01/shared/include/PrimaryGeneratorAction.hh @@ -25,10 +25,6 @@ // /// \file PrimaryGeneratorAction.hh /// \brief Definition of the PrimaryGeneratorAction class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,14 +44,14 @@ class DetectorConstruction; class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: - PrimaryGeneratorAction(DetectorConstruction*); - virtual ~PrimaryGeneratorAction(); + PrimaryGeneratorAction(DetectorConstruction*); + ~PrimaryGeneratorAction() override; - virtual void GeneratePrimaries(G4Event*); + void GeneratePrimaries(G4Event*) override; private: - G4ParticleGun* fParticleGun; //pointer a to G4 class - DetectorConstruction* fDetector; //pointer to the geometry + G4ParticleGun* fParticleGun = nullptr; //pointer a to G4 class + DetectorConstruction* fDetector = nullptr; //pointer to the geometry }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx01/shared/include/RunAction.hh b/examples/extended/analysis/AnaEx01/shared/include/RunAction.hh index 15bf61a2e0..28c1dc28a5 100644 --- a/examples/extended/analysis/AnaEx01/shared/include/RunAction.hh +++ b/examples/extended/analysis/AnaEx01/shared/include/RunAction.hh @@ -28,7 +28,7 @@ // // // -// +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -37,6 +37,7 @@ #define RunAction_h 1 #include "G4UserRunAction.hh" +#include "G4Accumulable.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,21 +49,25 @@ class RunAction : public G4UserRunAction { public: RunAction(HistoManager*); - virtual ~RunAction(); + ~RunAction() override; - virtual void BeginOfRunAction(const G4Run*); - virtual void EndOfRunAction(const G4Run*); - - void FillPerEvent(G4double, G4double, G4double, G4double); + void BeginOfRunAction(const G4Run*) override; + void EndOfRunAction(const G4Run*) override; + + void FillPerEvent(G4double, G4double, G4double, G4double); private: - HistoManager* fHistoManager; + HistoManager* fHistoManager = nullptr; - G4double fSumEAbs, fSum2EAbs; - G4double fSumEGap, fSum2EGap; - - G4double fSumLAbs, fSum2LAbs; - G4double fSumLGap, fSum2LGap; + G4Accumulable fSumEAbs = 0.; + G4Accumulable fSum2EAbs = 0.; + G4Accumulable fSumEGap = 0.; + G4Accumulable fSum2EGap = 0.; + + G4Accumulable fSumLAbs = 0.; + G4Accumulable fSum2LAbs = 0.; + G4Accumulable fSumLGap = 0.; + G4Accumulable fSum2LGap = 0.; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx01/shared/include/SteppingAction.hh b/examples/extended/analysis/AnaEx01/shared/include/SteppingAction.hh index b7a9a421a9..6939abd3e5 100644 --- a/examples/extended/analysis/AnaEx01/shared/include/SteppingAction.hh +++ b/examples/extended/analysis/AnaEx01/shared/include/SteppingAction.hh @@ -25,10 +25,6 @@ // /// \file SteppingAction.hh /// \brief Definition of the SteppingAction class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -47,13 +43,13 @@ class SteppingAction : public G4UserSteppingAction { public: SteppingAction(DetectorConstruction*, EventAction*); - virtual ~SteppingAction(); + ~SteppingAction() override; + + void UserSteppingAction(const G4Step*) override; - virtual void UserSteppingAction(const G4Step*); - private: - DetectorConstruction* fDetector; - EventAction* fEventAction; + DetectorConstruction* fDetector = nullptr; + EventAction* fEventAction = nullptr; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx01/shared/scripts/History b/examples/extended/analysis/AnaEx01/shared/scripts/History index b777673b51..a302463de0 100644 --- a/examples/extended/analysis/AnaEx01/shared/scripts/History +++ b/examples/extended/analysis/AnaEx01/shared/scripts/History @@ -11,6 +11,6 @@ be used as a substitute for writing good git commit messages! --- # History entries prior to 11.0 - + 05-11-14 I. Hrivnacova (analysisScripts-V10-00-00) - Tagged version which will be included in AnaEx0N examples diff --git a/examples/extended/analysis/AnaEx01/shared/scripts/clean_files.sh b/examples/extended/analysis/AnaEx01/shared/scripts/clean_files.sh index b40a301436..062bcece65 100755 --- a/examples/extended/analysis/AnaEx01/shared/scripts/clean_files.sh +++ b/examples/extended/analysis/AnaEx01/shared/scripts/clean_files.sh @@ -9,10 +9,10 @@ DIRNAME=$1 for FILE in `ls $DIRNAME/include`; do rm -f include/$FILE -done +done for FILE in `ls $DIRNAME/src`; do rm -f src/$FILE -done +done echo "... clean_files.sh from $1 finished" diff --git a/examples/extended/analysis/AnaEx01/shared/src/ActionInitialization.cc b/examples/extended/analysis/AnaEx01/shared/src/ActionInitialization.cc index 0bc86b90b0..f301b3ee67 100644 --- a/examples/extended/analysis/AnaEx01/shared/src/ActionInitialization.cc +++ b/examples/extended/analysis/AnaEx01/shared/src/ActionInitialization.cc @@ -37,22 +37,20 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... ActionInitialization::ActionInitialization(DetectorConstruction* detector) - : G4VUserActionInitialization(), - fDetector(detector) + : fDetector(detector) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::~ActionInitialization() -{} +ActionInitialization::~ActionInitialization() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void ActionInitialization::BuildForMaster() const { // Histo manager - HistoManager* histo = new HistoManager(); - + auto histo = new HistoManager(); + // Actions SetUserAction(new RunAction(histo)); } @@ -62,20 +60,20 @@ void ActionInitialization::BuildForMaster() const void ActionInitialization::Build() const { // Histo manager - HistoManager* histo = new HistoManager(); - + auto histo = new HistoManager(); + // Actions // SetUserAction(new PrimaryGeneratorAction(fDetector)); - - RunAction* runAction = new RunAction(histo); + + auto runAction = new RunAction(histo); SetUserAction(runAction); - - EventAction* eventAction = new EventAction(runAction, histo); + + auto eventAction = new EventAction(runAction, histo); SetUserAction(eventAction); - SteppingAction* steppingAction = new SteppingAction(fDetector, eventAction); + auto steppingAction = new SteppingAction(fDetector, eventAction); SetUserAction(steppingAction); -} +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx01/shared/src/DetectorConstruction.cc b/examples/extended/analysis/AnaEx01/shared/src/DetectorConstruction.cc index 11c8bb186e..8be67a6d51 100644 --- a/examples/extended/analysis/AnaEx01/shared/src/DetectorConstruction.cc +++ b/examples/extended/analysis/AnaEx01/shared/src/DetectorConstruction.cc @@ -25,10 +25,6 @@ // /// \file DetectorConstruction.cc /// \brief Implementation of the DetectorConstruction class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -58,27 +54,14 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorConstruction::DetectorConstruction() -:G4VUserDetectorConstruction(), - fAbsorberMaterial(0),fGapMaterial(0),fDefaultMaterial(0), - fSolidWorld(0),fLogicWorld(0),fPhysiWorld(0), - fSolidCalor(0),fLogicCalor(0),fPhysiCalor(0), - fSolidLayer(0),fLogicLayer(0),fPhysiLayer(0), - fSolidAbsorber(0),fLogicAbsorber(0),fPhysiAbsorber(0), - fSolidGap (0),fLogicGap (0),fPhysiGap (0), - fDetectorMessenger(0) { - // default parameter values of the calorimeter - fAbsorberThickness = 10.*mm; - fGapThickness = 5.*mm; - fNbOfLayers = 10; - fCalorSizeYZ = 10.*cm; ComputeCalorParameters(); - + // materials DefineMaterials(); SetAbsorberMaterial("G4_Pb"); SetGapMaterial("G4_lAr"); - + // create commands for interactive definition of the calorimeter fDetectorMessenger = new DetectorMessenger(this); } @@ -86,7 +69,9 @@ DetectorConstruction::DetectorConstruction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorConstruction::~DetectorConstruction() -{ delete fDetectorMessenger;} +{ + delete fDetectorMessenger; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -98,24 +83,23 @@ G4VPhysicalVolume* DetectorConstruction::Construct() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void DetectorConstruction::DefineMaterials() -{ -// use G4-NIST materials data base -// -G4NistManager* man = G4NistManager::Instance(); -fDefaultMaterial = man->FindOrBuildMaterial("G4_Galactic"); -man->FindOrBuildMaterial("G4_Pb"); -man->FindOrBuildMaterial("G4_lAr"); +{ + // use G4-NIST materials data base + // + G4NistManager* man = G4NistManager::Instance(); + fDefaultMaterial = man->FindOrBuildMaterial("G4_Galactic"); + man->FindOrBuildMaterial("G4_Pb"); + man->FindOrBuildMaterial("G4_lAr"); -// print table -// -G4cout << *(G4Material::GetMaterialTable()) << G4endl; + // print table + // + G4cout << *(G4Material::GetMaterialTable()) << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4VPhysicalVolume* DetectorConstruction::ConstructCalorimeter() { - // Clean old geometry, if any // G4GeometryManager::GetInstance()->OpenGeometry(); @@ -125,126 +109,128 @@ G4VPhysicalVolume* DetectorConstruction::ConstructCalorimeter() // complete the Calor parameters definition ComputeCalorParameters(); - - // + + // // World // - fSolidWorld = new G4Box("World", //its name - fWorldSizeX/2,fWorldSizeYZ/2,fWorldSizeYZ/2); //its size - + fSolidWorld = new G4Box("World", //its name + fWorldSizeX/2,fWorldSizeYZ/2,fWorldSizeYZ/2); //its size + fLogicWorld = new G4LogicalVolume(fSolidWorld, //its solid fDefaultMaterial, //its material "World"); //its name - - fPhysiWorld = new G4PVPlacement(0, //no rotation + + fPhysiWorld = new G4PVPlacement(nullptr, //no rotation G4ThreeVector(), //at (0,0,0) - fLogicWorld, //its logical volume + fLogicWorld, //its logical volume "World", //its name - 0, //its mother volume - false, //no boolean operation + nullptr, //its mother volume + false, //no boolean operation 0); //copy number - - // - // Calorimeter - // - fSolidCalor=0; fLogicCalor=0; fPhysiCalor=0; - fSolidLayer=0; fLogicLayer=0; fPhysiLayer=0; - - if (fCalorThickness > 0.) - { fSolidCalor = new G4Box("Calorimeter", //its name - fCalorThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2);//size - - fLogicCalor = new G4LogicalVolume(fSolidCalor, //its solid - fDefaultMaterial, //its material - "Calorimeter"); //its name - - fPhysiCalor = new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - fLogicCalor, //its logical volume - "Calorimeter", //its name - fLogicWorld, //its mother volume - false, //no boolean operation - 0); //copy number - - // - // Layer + + // + // Calorimeter + // + fSolidCalor = nullptr; fLogicCalor = nullptr; fPhysiCalor = nullptr; + fSolidLayer = nullptr; fLogicLayer = nullptr; fPhysiLayer = nullptr; + + if (fCalorThickness > 0.) { + fSolidCalor = new G4Box("Calorimeter", //its name + fCalorThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); //size + + fLogicCalor = new G4LogicalVolume(fSolidCalor, //its solid + fDefaultMaterial, //its material + "Calorimeter"); //its name + + fPhysiCalor = new G4PVPlacement(nullptr, //no rotation + G4ThreeVector(), //at (0,0,0) + fLogicCalor, //its logical volume + "Calorimeter", //its name + fLogicWorld, //its mother volume + false, //no boolean operation + 0); //copy number + + // + // Layer + // + fSolidLayer = new G4Box("Layer", //its name + fLayerThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); //size + + fLogicLayer = new G4LogicalVolume(fSolidLayer, //its solid + fDefaultMaterial, //its material + "Layer"); //its name + if (fNbOfLayers > 1) { + fPhysiLayer = new G4PVReplica("Layer", //its name + fLogicLayer, //its logical volume + fLogicCalor, //its mother + kXAxis, //axis of replication + fNbOfLayers, //number of replica + fLayerThickness); //witdth of replica + } + else { + fPhysiLayer = new G4PVPlacement(nullptr, //no rotation + G4ThreeVector(), //at (0,0,0) + fLogicLayer, //its logical volume + "Layer", //its name + fLogicCalor, //its mother volume + false, //no boolean operation + 0); //copy number + } + } + // - fSolidLayer = new G4Box("Layer", //its name - fLayerThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); //size - - fLogicLayer = new G4LogicalVolume(fSolidLayer, //its solid - fDefaultMaterial, //its material - "Layer"); //its name - if (fNbOfLayers > 1) - fPhysiLayer = new G4PVReplica("Layer", //its name - fLogicLayer, //its logical volume - fLogicCalor, //its mother - kXAxis, //axis of replication - fNbOfLayers, //number of replica - fLayerThickness); //witdth of replica - else - fPhysiLayer = new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - fLogicLayer, //its logical volume - "Layer", //its name - fLogicCalor, //its mother volume - false, //no boolean operation - 0); //copy number - } - - // // Absorber // - fSolidAbsorber=0; fLogicAbsorber=0; fPhysiAbsorber=0; - - if (fAbsorberThickness > 0.) - { fSolidAbsorber = new G4Box("Absorber", //its name - fAbsorberThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); - - fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, //its solid - fAbsorberMaterial, //its material - fAbsorberMaterial->GetName());//name - - fPhysiAbsorber = new G4PVPlacement(0, //no rotation - G4ThreeVector(-fGapThickness/2,0.,0.), //its position - fLogicAbsorber, //its logical volume - fAbsorberMaterial->GetName(), //its name - fLogicLayer, //its mother - false, //no boulean operat - 0); //copy number - - } - - // + fSolidAbsorber = nullptr; fLogicAbsorber = nullptr; fPhysiAbsorber = nullptr; + + if (fAbsorberThickness > 0.) { + fSolidAbsorber = new G4Box("Absorber", //its name + fAbsorberThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); //size + + fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, //its solid + fAbsorberMaterial, //its material + fAbsorberMaterial->GetName()); //name + + fPhysiAbsorber = new G4PVPlacement(nullptr, //no rotation + G4ThreeVector(-fGapThickness/2,0.,0.), //its position + fLogicAbsorber, //its logical volume + fAbsorberMaterial->GetName(), //its name + fLogicLayer, //its mother + false, //no boulean operat + 0); //copy number + + } + + // // Gap // - fSolidGap=0; fLogicGap=0; fPhysiGap=0; - - if (fGapThickness > 0.) - { fSolidGap = new G4Box("Gap", - fGapThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); - - fLogicGap = new G4LogicalVolume(fSolidGap, - fGapMaterial, - fGapMaterial->GetName()); - - fPhysiGap = new G4PVPlacement(0, //no rotation - G4ThreeVector(fAbsorberThickness/2,0.,0.), //its position - fLogicGap, //its logical volume - fGapMaterial->GetName(), //its name - fLogicLayer, //its mother - false, //no boulean operat - 0); //copy number - } - - PrintCalorParameters(); - - // + fSolidGap = nullptr; fLogicGap = nullptr; fPhysiGap = nullptr; + + if (fGapThickness > 0.) { + fSolidGap = new G4Box("Gap", + fGapThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); + + fLogicGap = new G4LogicalVolume(fSolidGap, + fGapMaterial, + fGapMaterial->GetName()); + + fPhysiGap = new G4PVPlacement(nullptr, //no rotation + G4ThreeVector(fAbsorberThickness/2,0.,0.), //its position + fLogicGap, //its logical volume + fGapMaterial->GetName(), //its name + fLogicLayer, //its mother + false, //no boulean operat + 0); //copy number + } + + PrintCalorParameters(); + + // // Visualization attributes // fLogicWorld->SetVisAttributes (G4VisAttributes::GetInvisible()); - G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + auto simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); simpleBoxVisAtt->SetVisibility(true); fLogicCalor->SetVisAttributes(simpleBoxVisAtt); @@ -260,54 +246,47 @@ void DetectorConstruction::PrintCalorParameters() { G4cout << "\n------------------------------------------------------------" << "\n---> The calorimeter is " << fNbOfLayers << " layers of: [ " - << fAbsorberThickness/mm << "mm of " << fAbsorberMaterial->GetName() + << fAbsorberThickness/mm << "mm of " << fAbsorberMaterial->GetName() << " + " - << fGapThickness/mm << "mm of " << fGapMaterial->GetName() << " ] " + << fGapThickness/mm << "mm of " << fGapMaterial->GetName() << " ] " << "\n------------------------------------------------------------\n"; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetAbsorberMaterial(G4String materialChoice) -{ - // search the material by its name - G4Material* pttoMaterial = - G4NistManager::Instance()->FindOrBuildMaterial(materialChoice); - if (pttoMaterial) - { - fAbsorberMaterial = pttoMaterial; - if ( fLogicAbsorber ) - { - fLogicAbsorber->SetMaterial(fAbsorberMaterial); - G4RunManager::GetRunManager()->PhysicsHasBeenModified(); - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::SetGapMaterial(G4String materialChoice) +void DetectorConstruction::SetAbsorberMaterial(const G4String& materialChoice) { // search the material by its name - G4Material* pttoMaterial = - G4NistManager::Instance()->FindOrBuildMaterial(materialChoice); - if (pttoMaterial) - { - fGapMaterial = pttoMaterial; - if ( fLogicGap ) - { - fLogicGap->SetMaterial(fGapMaterial); - G4RunManager::GetRunManager()->PhysicsHasBeenModified(); - } + auto material = G4NistManager::Instance()->FindOrBuildMaterial(materialChoice); + if (material != nullptr) { + fAbsorberMaterial = material; + if (fLogicAbsorber != nullptr) { + fLogicAbsorber->SetMaterial(fAbsorberMaterial); + G4RunManager::GetRunManager()->PhysicsHasBeenModified(); + } } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetAbsorberThickness(G4double val) +void DetectorConstruction::SetGapMaterial(const G4String& materialChoice) +{ + auto material = G4NistManager::Instance()->FindOrBuildMaterial(materialChoice); + if (material != nullptr) { + fGapMaterial = material; + if ( fLogicGap != nullptr) { + fLogicGap->SetMaterial(fGapMaterial); + G4RunManager::GetRunManager()->PhysicsHasBeenModified(); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetAbsorberThickness(G4double value) { // change Absorber thickness and recompute the calorimeter parameters - fAbsorberThickness = val; + fAbsorberThickness = value; if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { G4RunManager::GetRunManager()->ReinitializeGeometry(); } @@ -315,10 +294,10 @@ void DetectorConstruction::SetAbsorberThickness(G4double val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetGapThickness(G4double val) +void DetectorConstruction::SetGapThickness(G4double value) { // change Gap thickness and recompute the calorimeter parameters - fGapThickness = val; + fGapThickness = value; if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { G4RunManager::GetRunManager()->ReinitializeGeometry(); } @@ -326,10 +305,10 @@ void DetectorConstruction::SetGapThickness(G4double val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetCalorSizeYZ(G4double val) +void DetectorConstruction::SetCalorSizeYZ(G4double value) { // change the transverse size and recompute the calorimeter parameters - fCalorSizeYZ = val; + fCalorSizeYZ = value; if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { G4RunManager::GetRunManager()->ReinitializeGeometry(); } @@ -337,9 +316,9 @@ void DetectorConstruction::SetCalorSizeYZ(G4double val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetNbOfLayers(G4int val) +void DetectorConstruction::SetNbOfLayers(G4int value) { - fNbOfLayers = val; + fNbOfLayers = value; if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { G4RunManager::GetRunManager()->ReinitializeGeometry(); } diff --git a/examples/extended/analysis/AnaEx01/shared/src/DetectorMessenger.cc b/examples/extended/analysis/AnaEx01/shared/src/DetectorMessenger.cc index f3634f0bd9..c7775c5fe2 100644 --- a/examples/extended/analysis/AnaEx01/shared/src/DetectorMessenger.cc +++ b/examples/extended/analysis/AnaEx01/shared/src/DetectorMessenger.cc @@ -25,10 +25,6 @@ // /// \file DetectorMessenger.cc /// \brief Implementation of the DetectorMessenger class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,57 +41,48 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorMessenger::DetectorMessenger( DetectorConstruction* Det) -: G4UImessenger(), - fDetector(Det), - fDetDir(0), - fAbsMaterCmd(0), - fGapMaterCmd(0), - fAbsThickCmd(0), - fGapThickCmd(0), - fSizeYZCmd(0), - fNbLayersCmd(0) -{ +: fDetector(Det) +{ G4bool broadcast = false; fDetDir = new G4UIdirectory("/det/",broadcast); fDetDir->SetGuidance("Detector control"); - + fAbsMaterCmd = new G4UIcmdWithAString("/det/setAbsMat",this); fAbsMaterCmd->SetGuidance("Select Material of the Absorber."); - fAbsMaterCmd->SetParameterName("choice",false); + fAbsMaterCmd->SetParameterName("AbsMat",false); fAbsMaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fGapMaterCmd = new G4UIcmdWithAString("/det/setGapMat",this); fGapMaterCmd->SetGuidance("Select Material of the Gap."); - fGapMaterCmd->SetParameterName("choice",false); + fGapMaterCmd->SetParameterName("GapMat",false); fGapMaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fAbsThickCmd = new G4UIcmdWithADoubleAndUnit("/det/setAbsThick",this); fAbsThickCmd->SetGuidance("Set Thickness of the Absorber"); - fAbsThickCmd->SetParameterName("Size",false); - fAbsThickCmd->SetRange("Size>=0."); + fAbsThickCmd->SetParameterName("AbsThick",false); + fAbsThickCmd->SetRange("AbsThick>=0."); fAbsThickCmd->SetUnitCategory("Length"); fAbsThickCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fGapThickCmd = new G4UIcmdWithADoubleAndUnit("/det/setGapThick",this); fGapThickCmd->SetGuidance("Set Thickness of the Gap"); - fGapThickCmd->SetParameterName("Size",false); - fGapThickCmd->SetRange("Size>=0."); - fGapThickCmd->SetUnitCategory("Length"); + fGapThickCmd->SetParameterName("GapThick",false); + fGapThickCmd->SetRange("GapThick>=0."); + fGapThickCmd->SetUnitCategory("Length"); fGapThickCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fSizeYZCmd = new G4UIcmdWithADoubleAndUnit("/det/setSizeYZ",this); fSizeYZCmd->SetGuidance("Set tranverse size of the calorimeter"); - fSizeYZCmd->SetParameterName("Size",false); - fSizeYZCmd->SetRange("Size>0."); - fSizeYZCmd->SetUnitCategory("Length"); + fSizeYZCmd->SetParameterName("SizeYZ",false); + fSizeYZCmd->SetRange("SizeYZ>0."); + fSizeYZCmd->SetUnitCategory("Length"); fSizeYZCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fNbLayersCmd = new G4UIcmdWithAnInteger("/det/setNbOfLayers",this); fNbLayersCmd->SetGuidance("Set number of layers."); fNbLayersCmd->SetParameterName("NbLayers",false); fNbLayersCmd->SetRange("NbLayers>0 && NbLayers<500"); fNbLayersCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -103,34 +90,46 @@ DetectorMessenger::DetectorMessenger( DetectorConstruction* Det) DetectorMessenger::~DetectorMessenger() { delete fNbLayersCmd; - delete fAbsMaterCmd; delete fGapMaterCmd; - delete fAbsThickCmd; delete fGapThickCmd; - delete fSizeYZCmd; + delete fAbsMaterCmd; + delete fGapMaterCmd; + delete fAbsThickCmd; + delete fGapThickCmd; + delete fSizeYZCmd; delete fDetDir; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - if( command == fAbsMaterCmd ) { +void DetectorMessenger::SetNewValue(G4UIcommand* command, G4String newValue) +{ + if( command == fAbsMaterCmd ) { fDetector->SetAbsorberMaterial(newValue); - } - else if( command == fGapMaterCmd ) { + return; + } + + if( command == fGapMaterCmd ) { fDetector->SetGapMaterial(newValue); + return; } - else if( command == fAbsThickCmd ) { - fDetector - ->SetAbsorberThickness(fAbsThickCmd->GetNewDoubleValue(newValue)); - } - else if( command == fGapThickCmd ) { + + if( command == fAbsThickCmd ) { + fDetector->SetAbsorberThickness(fAbsThickCmd->GetNewDoubleValue(newValue)); + return; + } + + if( command == fGapThickCmd ) { fDetector->SetGapThickness(fGapThickCmd->GetNewDoubleValue(newValue)); + return; } - else if( command == fSizeYZCmd ) { + + if( command == fSizeYZCmd ) { fDetector->SetCalorSizeYZ(fSizeYZCmd->GetNewDoubleValue(newValue)); - } - else if( command == fNbLayersCmd ) { + return; + } + + if( command == fNbLayersCmd ) { fDetector->SetNbOfLayers(fNbLayersCmd->GetNewIntValue(newValue)); + return; } } diff --git a/examples/extended/analysis/AnaEx01/shared/src/EventAction.cc b/examples/extended/analysis/AnaEx01/shared/src/EventAction.cc index a8b153ef0f..230ca29aeb 100644 --- a/examples/extended/analysis/AnaEx01/shared/src/EventAction.cc +++ b/examples/extended/analysis/AnaEx01/shared/src/EventAction.cc @@ -28,7 +28,7 @@ // // // -// +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -43,30 +43,25 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... EventAction::EventAction(RunAction* run, HistoManager* histo) -:G4UserEventAction(), - fRunAct(run),fHistoManager(histo), - fEnergyAbs(0.), fEnergyGap(0.), - fTrackLAbs(0.), fTrackLGap(0.), - fPrintModulo(0) -{ - fPrintModulo = 100; } +: fRunAct(run),fHistoManager(histo) +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::~EventAction() -{ } +EventAction::~EventAction() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void EventAction::BeginOfEventAction(const G4Event* evt) -{ +{ G4int evtNb = evt->GetEventID(); - if (evtNb%fPrintModulo == 0) + if (evtNb%fPrintModulo == 0) { G4cout << "\n---> Begin of event: " << evtNb << G4endl; - - // initialisation per event - fEnergyAbs = fEnergyGap = 0.; - fTrackLAbs = fTrackLGap = 0.; + } + + // initialisation per event + fEnergyAbs = fEnergyGap = 0.; + fTrackLAbs = fTrackLGap = 0.; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -76,17 +71,17 @@ void EventAction::EndOfEventAction(const G4Event*) //accumulates statistic // fRunAct->FillPerEvent(fEnergyAbs, fEnergyGap, fTrackLAbs, fTrackLGap); - + //fill histograms // fHistoManager->FillHisto(0, fEnergyAbs); fHistoManager->FillHisto(1, fEnergyGap); fHistoManager->FillHisto(2, fTrackLAbs); fHistoManager->FillHisto(3, fTrackLGap); - + //fill ntuple // fHistoManager->FillNtuple(fEnergyAbs, fEnergyGap, fTrackLAbs, fTrackLGap); -} +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx01/shared/src/PrimaryGeneratorAction.cc b/examples/extended/analysis/AnaEx01/shared/src/PrimaryGeneratorAction.cc index 779587b9bd..3e80341794 100644 --- a/examples/extended/analysis/AnaEx01/shared/src/PrimaryGeneratorAction.cc +++ b/examples/extended/analysis/AnaEx01/shared/src/PrimaryGeneratorAction.cc @@ -25,10 +25,7 @@ // /// \file PrimaryGeneratorAction.cc /// \brief Implementation of the PrimaryGeneratorAction class -// -// -// -// + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -44,10 +41,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* DC) -: G4VUserPrimaryGeneratorAction(), - fParticleGun(0), - fDetector(DC) +PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* dc) +: fDetector(dc) { G4int n_particle = 1; fParticleGun = new G4ParticleGun(n_particle); @@ -56,8 +51,7 @@ PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* DC) G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); G4String particleName; - G4ParticleDefinition* particle - = particleTable->FindParticle(particleName="e-"); + G4ParticleDefinition* particle = particleTable->FindParticle(particleName="e-"); fParticleGun->SetParticleDefinition(particle); fParticleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); fParticleGun->SetParticleEnergy(500.*MeV); @@ -78,7 +72,7 @@ PrimaryGeneratorAction::~PrimaryGeneratorAction() void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { //this function is called at the begining of event - // + // fParticleGun->GeneratePrimaryVertex(anEvent); } diff --git a/examples/extended/analysis/AnaEx01/shared/src/RunAction.cc b/examples/extended/analysis/AnaEx01/shared/src/RunAction.cc index 4398f45039..9ae0771d84 100644 --- a/examples/extended/analysis/AnaEx01/shared/src/RunAction.cc +++ b/examples/extended/analysis/AnaEx01/shared/src/RunAction.cc @@ -36,105 +36,136 @@ #include "G4Run.hh" #include "G4RunManager.hh" +#include "G4AccumulableManager.hh" #include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RunAction::RunAction(HistoManager* histo) -: G4UserRunAction(), - fHistoManager(histo), - fSumEAbs(0.), fSum2EAbs(0.), - fSumEGap(0.), fSum2EGap(0.), - fSumLAbs(0.), fSum2LAbs(0.), - fSumLGap(0.), fSum2LGap(0.) -{} +: fHistoManager(histo) +{ + // Register accumulable to the accumulable manager + G4AccumulableManager* accumulableManager = G4AccumulableManager::Instance(); + accumulableManager->RegisterAccumulable(fSumEAbs); + accumulableManager->RegisterAccumulable(fSum2EAbs); + accumulableManager->RegisterAccumulable(fSumEGap); + accumulableManager->RegisterAccumulable(fSum2EGap); + accumulableManager->RegisterAccumulable(fSumLAbs); + accumulableManager->RegisterAccumulable(fSum2LAbs); + accumulableManager->RegisterAccumulable(fSumLGap); + accumulableManager->RegisterAccumulable(fSum2LGap); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::~RunAction() -{} +RunAction::~RunAction() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void RunAction::BeginOfRunAction(const G4Run* aRun) -{ +{ G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; - - //initialize cumulative quantities - // - fSumEAbs = fSum2EAbs =fSumEGap = fSum2EGap = 0.; - fSumLAbs = fSum2LAbs =fSumLGap = fSum2LGap = 0.; - + + // reset accumulables to their initial values + G4AccumulableManager::Instance()->Reset(); + //histograms // - fHistoManager->Book(); + fHistoManager->Book(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void RunAction::FillPerEvent(G4double EAbs, G4double EGap, - G4double LAbs, G4double LGap) + G4double LAbs, G4double LGap) { //accumulate statistic // fSumEAbs += EAbs; fSum2EAbs += EAbs*EAbs; fSumEGap += EGap; fSum2EGap += EGap*EGap; - + fSumLAbs += LAbs; fSum2LAbs += LAbs*LAbs; - fSumLGap += LGap; fSum2LGap += LGap*LGap; + fSumLGap += LGap; fSum2LGap += LGap*LGap; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void RunAction::EndOfRunAction(const G4Run* aRun) { - G4int NbOfEvents = aRun->GetNumberOfEvent(); - if (NbOfEvents == 0) { + // Merge accumulables + G4AccumulableManager::Instance()->Merge(); + + G4int nofEvents = aRun->GetNumberOfEvent(); + if (nofEvents == 0) { // close open files fHistoManager->Save(); return; } - + //compute statistics: mean and rms // - fSumEAbs /= NbOfEvents; fSum2EAbs /= NbOfEvents; - G4double rmsEAbs = fSum2EAbs - fSumEAbs*fSumEAbs; - if (rmsEAbs >0.) rmsEAbs = std::sqrt(rmsEAbs); else rmsEAbs = 0.; - - fSumEGap /= NbOfEvents; fSum2EGap /= NbOfEvents; - G4double rmsEGap = fSum2EGap - fSumEGap*fSumEGap; - if (rmsEGap >0.) rmsEGap = std::sqrt(rmsEGap); else rmsEGap = 0.; - - fSumLAbs /= NbOfEvents; fSum2LAbs /= NbOfEvents; - G4double rmsLAbs = fSum2LAbs - fSumLAbs*fSumLAbs; - if (rmsLAbs >0.) rmsLAbs = std::sqrt(rmsLAbs); else rmsLAbs = 0.; - - fSumLGap /= NbOfEvents; fSum2LGap /= NbOfEvents; - G4double rmsLGap = fSum2LGap - fSumLGap*fSumLGap; - if (rmsLGap >0.) rmsLGap = std::sqrt(rmsLGap); else rmsLGap = 0.; - + auto sumEAbs = fSumEAbs.GetValue(); + auto sum2EAbs = fSum2EAbs.GetValue(); + sumEAbs /= nofEvents; sum2EAbs /= nofEvents; + auto rmsEAbs = sum2EAbs - sumEAbs*sumEAbs; + if (rmsEAbs >0.) { + rmsEAbs = std::sqrt(rmsEAbs); + } else { + rmsEAbs = 0.; + } + + auto sumEGap = fSumEGap.GetValue(); + auto sum2EGap = fSum2EGap.GetValue(); + sumEGap /= nofEvents; sum2EGap /= nofEvents; + auto rmsEGap = sum2EGap - sumEGap*sumEGap; + if (rmsEGap >0.) { + rmsEGap = std::sqrt(rmsEGap); + } else { + rmsEGap = 0.; + } + + auto sumLAbs = fSumLAbs.GetValue(); + auto sum2LAbs = fSum2LAbs.GetValue(); + sumLAbs /= nofEvents; sum2LAbs /= nofEvents; + auto rmsLAbs = sum2LAbs - sumLAbs*sumLAbs; + if (rmsLAbs >0.) { + rmsLAbs = std::sqrt(rmsLAbs); + } else { + rmsLAbs = 0.; + } + + auto sumLGap = fSumLGap.GetValue(); + auto sum2LGap = fSum2LGap.GetValue(); + sumLGap /= nofEvents; sum2LGap /= nofEvents; + G4double rmsLGap = sum2LGap - sumLGap*sumLGap; + if (rmsLGap >0.) { + rmsLGap = std::sqrt(rmsLGap); + } else { + rmsLGap = 0.; + } + //print // G4cout << "\n--------------------End of Run------------------------------\n" - << "\n mean Energy in Absorber : " << G4BestUnit(fSumEAbs,"Energy") - << " +- " << G4BestUnit(rmsEAbs,"Energy") - << "\n mean Energy in Gap : " << G4BestUnit(fSumEGap,"Energy") + << "\n mean Energy in Absorber : " << G4BestUnit(sumEAbs,"Energy") + << " +- " << G4BestUnit(rmsEAbs,"Energy") + << "\n mean Energy in Gap : " << G4BestUnit(sumEGap,"Energy") << " +- " << G4BestUnit(rmsEGap,"Energy") << G4endl; - + G4cout - << "\n mean trackLength in Absorber : " << G4BestUnit(fSumLAbs,"Length") - << " +- " << G4BestUnit(rmsLAbs,"Length") - << "\n mean trackLength in Gap : " << G4BestUnit(fSumLGap,"Length") + << "\n mean trackLength in Absorber : " << G4BestUnit(sumLAbs,"Length") + << " +- " << G4BestUnit(rmsLAbs,"Length") + << "\n mean trackLength in Gap : " << G4BestUnit(sumLGap,"Length") << " +- " << G4BestUnit(rmsLGap,"Length") << "\n------------------------------------------------------------\n" << G4endl; - + //save histograms // fHistoManager->PrintStatistic(); - fHistoManager->Save(); + fHistoManager->Save(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx01/shared/src/SteppingAction.cc b/examples/extended/analysis/AnaEx01/shared/src/SteppingAction.cc index 8363ef6709..ec8d92a988 100644 --- a/examples/extended/analysis/AnaEx01/shared/src/SteppingAction.cc +++ b/examples/extended/analysis/AnaEx01/shared/src/SteppingAction.cc @@ -25,10 +25,7 @@ // /// \file SteppingAction.cc /// \brief Implementation of the SteppingAction class -// -// -// -// + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,34 +38,32 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::SteppingAction(DetectorConstruction* det, - EventAction* evt) -: G4UserSteppingAction(), - fDetector(det), fEventAction(evt) -{ } +SteppingAction::SteppingAction(DetectorConstruction* det, EventAction* evt) +: fDetector(det), fEventAction(evt) +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::~SteppingAction() -{ } +SteppingAction::~SteppingAction() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void SteppingAction::UserSteppingAction(const G4Step* aStep) { // get volume of the current step - G4VPhysicalVolume* volume - = aStep->GetPreStepPoint()->GetTouchableHandle()->GetVolume(); - + G4VPhysicalVolume* volume = + aStep->GetPreStepPoint()->GetTouchableHandle()->GetVolume(); + // collect energy and track length step by step G4double edep = aStep->GetTotalEnergyDeposit(); - + G4double stepl = 0.; - if (aStep->GetTrack()->GetDefinition()->GetPDGCharge() != 0.) + if (aStep->GetTrack()->GetDefinition()->GetPDGCharge() != 0.) { stepl = aStep->GetStepLength(); - - if (volume == fDetector->GetAbsorber()) fEventAction->AddAbs(edep,stepl); - if (volume == fDetector->GetGap()) fEventAction->AddGap(edep,stepl); + } + + if (volume == fDetector->GetAbsorber()) { fEventAction->AddAbs(edep,stepl); } + if (volume == fDetector->GetGap()) { fEventAction->AddGap(edep,stepl); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx01/src/HistoManager.cc b/examples/extended/analysis/AnaEx01/src/HistoManager.cc index a8e8c5c54c..cd2128c39b 100644 --- a/examples/extended/analysis/AnaEx01/src/HistoManager.cc +++ b/examples/extended/analysis/AnaEx01/src/HistoManager.cc @@ -38,26 +38,26 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... HistoManager::HistoManager() - : fFactoryOn(false) -{} +{ + // Create or get analysis manager + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + analysisManager->SetDefaultFileType("root"); + // the default file type can be overriden in run macro +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -HistoManager::~HistoManager() -{} +HistoManager::~HistoManager() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void HistoManager::Book() { // Create or get analysis manager - // The choice of analysis technology is done via selection of a namespace - // in HistoManager.hh G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); if ( ! fFactoryOn ) { // - analysisManager->SetDefaultFileType("root"); analysisManager->SetVerboseLevel(1); // Only merge in MT mode to avoid warning when running in Sequential mode #ifdef G4MULTITHREADED @@ -123,7 +123,7 @@ void HistoManager::Book() void HistoManager::Save() { - if (! fFactoryOn) return; + if (! fFactoryOn) { return; } G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); analysisManager->Write(); @@ -146,7 +146,8 @@ void HistoManager::Normalize(G4int ih, G4double fac) { G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); auto h1 = analysisManager->GetH1(ih); - if (h1) h1->scale(fac); + if (h1 != nullptr) { h1->scale(fac); +} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -169,7 +170,7 @@ void HistoManager::FillNtuple(G4double energyAbs, G4double energyGap, void HistoManager::PrintStatistic() { - if (! fFactoryOn) return; + if (! fFactoryOn) { return; } G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); @@ -179,8 +180,8 @@ void HistoManager::PrintStatistic() auto h1 = analysisManager->GetH1(i); G4String unitCategory; - if (name[0U] == 'E' ) unitCategory = "Energy"; - if (name[0U] == 'L' ) unitCategory = "Length"; + if (name[0U] == 'E' ) { unitCategory = "Energy"; } + if (name[0U] == 'L' ) { unitCategory = "Length"; } // we use an explicit unsigned int type for operator [] argument // to avoid problems with windows compiler diff --git a/examples/extended/analysis/AnaEx02/.README.txt b/examples/extended/analysis/AnaEx02/.README.txt index 204ed5507c..2d12946611 100644 --- a/examples/extended/analysis/AnaEx02/.README.txt +++ b/examples/extended/analysis/AnaEx02/.README.txt @@ -6,16 +6,16 @@ Examples AnaEx01 and AnaEx02 show the usage of histogram and tuple manipulations using G4Analysis and ROOT compliant systems on the same - scenario. All analysis manipulations (histo booking, filling, saving histos - in a file, etc...) are located in one class : HistoManager, implementation of - which is different in each example. All the other classes are same in all + scenario. All analysis manipulations (histo booking, filling, saving histos + in a file, etc...) are located in one class : HistoManager, implementation of + which is different in each example. All the other classes are same in all three examples. - - This example shows the usage of histogram and tuple manipulations using - ROOT system. Please install ROOT before building this example: + + This example shows the usage of histogram and tuple manipulations using + ROOT system. Please install ROOT before building this example: http://root.cern.ch - The example is an adaptation of examples/novice/N03. It describes a simple + The example is an adaptation of examples/novice/N03. It describes a simple sampling calorimeter setup. \section AnaEx02_s1 Detector description @@ -30,7 +30,7 @@ - the material of the detection gap, - the thickness of a gap, - the number of layers, - - the transverse size of the calorimeter (the input face is a square). + - the transverse size of the calorimeter (the input face is a square). The default geometry is constructed in DetectorConstruction class, but all of the above parameters can be modified interactively via @@ -56,20 +56,20 @@ \section AnaEx02_s3 Action Initialization - A newly introduced class, ActionInitialization, - instantiates and registers to Geant4 kernel all user action classes + A newly introduced class, ActionInitialization, + instantiates and registers to Geant4 kernel all user action classes which are defined thread-local and a run action class which is defined both thread-local and global. - - The thread-local action classes are defined in - ActionInitialization::Build() - and the global run action class is defined in + + The thread-local action classes are defined in + ActionInitialization::Build() + and the global run action class is defined in ActionInitialization::BuildForMaster(). - Note that ActionInitialization::Build() is also used to + Note that ActionInitialization::Build() is also used to instatiate user action clasess in sequential mode. \section AnaEx02_s4 An event : PrimaryGeneratorAction - + The primary kinematic consists of a single particle which hits the calorimeter perpendicular to the input face. The type of the particle and its energy are set in the PrimaryGeneratorAction class, and can @@ -79,34 +79,34 @@ \section AnaEx02_s5 Histograms To produce histograms, ROOT system must be installed - + AnaEx02 can produce 4 histograms : - + - EAbs : total energy deposit in absorber per event - - EGap : total energy deposit in gap per event - - LAbs : total track length of charged particles in absorber per event - - LGap : total track length of charged particles in gap per event - + - EGap : total energy deposit in gap per event + - LAbs : total track length of charged particles in absorber per event + - LGap : total track length of charged particles in gap per event + And 2 Ntuples : - Ntuple1: - one row per event : EnergyAbs EnergyGap - Ntuple2: - one row per event : TrackLAbs TrackLGap - - These histos and ntuples are booked in HistoManager and filled from + + These histos and ntuples are booked in HistoManager and filled from EventAction. - + One can control the name of the histograms file : - default name : AnaEx02 Format : root - + See HistoManager constructor \section AnaEx02_s6 How to build An additional step is needed when building the example with GNUmake - due to using the extra shared directory: -\verbatim + due to using the extra shared directory: +\verbatim % cd path_to_AnaEx02/AnaEx02 % gmake setup % gmake @@ -114,7 +114,7 @@ This will copy the files from shared in the example include and src; to remove these files: -\verbatim +\verbatim % gmake clean_setup \endverbatim @@ -126,23 +126,23 @@ and type in the commands from run.mac line by line: Idle> /control/verbose 2 Idle> /tracking/verbose 1 -Idle> /run/beamOn 10 +Idle> /run/beamOn 10 Idle> ... Idle> exit -\endverbatim +\endverbatim or \verbatim Idle> /control/execute run.mac .... Idle> exit -\endverbatim +\endverbatim -- Execute AnaEx02 in the 'batch' mode from macro files +- Execute AnaEx02 in the 'batch' mode from macro files (without visualization) \verbatim % ./AnaEx02 run.mac % ./AnaEx02 run.mac > run.out -\endverbatim +\endverbatim The AnaEx02.in macro is used in Geant4 testing. diff --git a/examples/extended/analysis/AnaEx02/AnaEx02.cc b/examples/extended/analysis/AnaEx02/AnaEx02.cc index 3d70ab9db3..16fa1a953d 100644 --- a/examples/extended/analysis/AnaEx02/AnaEx02.cc +++ b/examples/extended/analysis/AnaEx02/AnaEx02.cc @@ -32,10 +32,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4RunManagerFactory.hh" -#include "G4UImanager.hh" -#include "FTFP_BERT.hh" - +#include "ActionInitialization.hh" #include "DetectorConstruction.hh" #include "PrimaryGeneratorAction.hh" #include "RunAction.hh" @@ -43,6 +40,10 @@ #include "SteppingAction.hh" #include "HistoManager.hh" +#include "G4RunManagerFactory.hh" +#include "G4UImanager.hh" +#include "FTFP_BERT.hh" + #include "G4VisExecutive.hh" #include "G4UIExecutive.hh" @@ -52,7 +53,7 @@ int main(int argc,char** argv) { // Detect interactive mode (if no arguments) and define UI session // - G4UIExecutive* ui = 0; + G4UIExecutive* ui = nullptr; if ( argc == 1 ) { ui = new G4UIExecutive(argc, argv); } @@ -63,34 +64,14 @@ int main(int argc,char** argv) // Set mandatory initialization classes // - DetectorConstruction* detector = new DetectorConstruction; + auto detector = new DetectorConstruction; runManager->SetUserInitialization(detector); - // runManager->SetUserInitialization(new FTFP_BERT); - - // set an HistoManager - // - HistoManager* histo = new HistoManager(); - - // Set user action classes - // - PrimaryGeneratorAction* gen_action = - new PrimaryGeneratorAction(detector); - runManager->SetUserAction(gen_action); - // - RunAction* run_action = new RunAction(histo); - runManager->SetUserAction(run_action); - // - EventAction* event_action = new EventAction(run_action,histo); - runManager->SetUserAction(event_action); - // - SteppingAction* stepping_action = - new SteppingAction(detector, event_action); - runManager->SetUserAction(stepping_action); + runManager->SetUserInitialization(new ActionInitialization(detector)); // Initialize G4 kernel // - runManager->Initialize(); + // runManager->Initialize(); // Initialize visualization // @@ -101,7 +82,7 @@ int main(int argc,char** argv) // G4UImanager* UImanager = G4UImanager::GetUIpointer(); - if ( ! ui ) { + if ( ui == nullptr ) { // batch mode G4String command = "/control/execute "; G4String fileName = argv[1]; @@ -116,7 +97,6 @@ int main(int argc,char** argv) // Job termination delete visManager; - delete histo; delete runManager; return 0; diff --git a/examples/extended/analysis/AnaEx02/AnaEx02.in b/examples/extended/analysis/AnaEx02/AnaEx02.in index c071f26f8f..4568fa6a98 100644 --- a/examples/extended/analysis/AnaEx02/AnaEx02.in +++ b/examples/extended/analysis/AnaEx02/AnaEx02.in @@ -8,11 +8,6 @@ # initialize /run/initialize -# e- 500MeV -/gun/particle e- -/gun/energy 500 MeV -/run/beamOn 1000 - # Test commands defined in this example /control/verbose 2 # @@ -25,3 +20,7 @@ # /run/beamOn 1 +# e- 500MeV +/gun/particle e- +/gun/energy 500 MeV +/run/beamOn 1000 diff --git a/examples/extended/analysis/AnaEx02/AnaEx02.out b/examples/extended/analysis/AnaEx02/AnaEx02.out index f6e393f1ea..b33c2d6561 100644 --- a/examples/extended/analysis/AnaEx02/AnaEx02.out +++ b/examples/extended/analysis/AnaEx02/AnaEx02.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -54,18 +54,6 @@ <<< Geant4 Physics List simulation engine: FTFP_BERT - ------------------------------------------------------------- ----> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of G4_lAr ] ------------------------------------------------------------- - - hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval - for pions : 3 to 6 GeV - for kaons : 3 to 6 GeV - for proton : 3 to 6 GeV - for neutron : 3 to 6 GeV - -### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... Registering graphics systems... @@ -78,6 +66,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -121,6 +111,35 @@ End of Run User Vis Actions: none Some /vis commands (optionally) take a string to specify colour. "/vis/list" to see available colours. + +------------------------------------------------------------ +---> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of G4_lAr ] +------------------------------------------------------------ + + hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval + for pions : 3 to 6 GeV + for kaons : 3 to 6 GeV + for proton : 3 to 6 GeV + for neutron : 3 to 6 GeV + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 +# +/det/setAbsMat G4_Al +/det/setGapMat G4_Air +/det/setAbsThick 20. mm +/run/reinitializeGeometry +/det/setGapThick 10. mm +/run/reinitializeGeometry +/det/setSizeYZ 30. mm +/run/reinitializeGeometry +/det/setNbOfLayers 20 +/run/reinitializeGeometry +# +/run/beamOn 1 + +------------------------------------------------------------ +---> The calorimeter is 20 layers of: [ 20mm of G4_Al + 10mm of G4_lAr ] +------------------------------------------------------------ ======================================================================= ====== Electromagnetic Physics Parameters ======== ======================================================================= @@ -130,6 +149,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -157,7 +177,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -208,8 +228,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -691,6 +711,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -962,6 +987,35 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 0 +--------------------End of Run------------------------------ + + mean Energy in Absorber : 256.274 MeV +- 0 eV + mean Energy in Gap : 50.16 MeV +- 0 eV + + mean trackLength in Absorber : 63.8594 cm +- 0 fm + mean trackLength in Gap : 26.1088 cm +- 0 fm +------------------------------------------------------------ + + + ----> print histograms statistic + +EAbs: mean = 256.274 MeV rms = 0 eV +EGap: mean = 50.16 MeV rms = 0 eV +LAbs: mean = 63.8594 cm rms = 0 fm +LGap: mean = 26.1088 cm rms = 0 fm + +----> Histograms and ntuples are saved + +# e- 500MeV +/gun/particle e- +/gun/energy 500 MeV +/run/beamOn 1000 +### Run 1 start. + +----> Output file is open in AnaEx02.root + +---> Begin of event: 0 + ---> Begin of event: 100 ---> Begin of event: 200 @@ -982,62 +1036,20 @@ See commands in /vis/modeling/trajectories/ for other options. --------------------End of Run------------------------------ - mean Energy in Absorber : 453.656 MeV +- 12.4449 MeV - mean Energy in Gap : 24.7474 MeV +- 7.52057 MeV + mean Energy in Absorber : 188.96 MeV +- 48.8659 MeV + mean Energy in Gap : 46.7177 MeV +- 12.7612 MeV - mean trackLength in Absorber : 32.6632 cm +- 9.51264 mm - mean trackLength in Gap : 12.2578 cm +- 3.86035 cm + mean trackLength in Absorber : 46.7149 cm +- 12.1118 cm + mean trackLength in Gap : 23.7187 cm +- 6.51829 cm ------------------------------------------------------------ ----> print histograms statistic -EAbs: mean = 453.656 MeV rms = 12.4449 MeV -EGap: mean = 24.7474 MeV rms = 7.52057 MeV -LAbs: mean = 32.6632 cm rms = 9.51264 mm -LGap: mean = 12.2578 cm rms = 3.86035 cm - -----> Histograms and ntuples are saved - -# -/det/setAbsMat G4_Al -/det/setGapMat G4_Air -/det/setAbsThick 20. mm -/run/reinitializeGeometry -/det/setGapThick 10. mm -/run/reinitializeGeometry -/det/setSizeYZ 30. mm -/run/reinitializeGeometry -/det/setNbOfLayers 20 -/run/reinitializeGeometry -# -/run/beamOn 1 - ------------------------------------------------------------- ----> The calorimeter is 20 layers of: [ 20mm of G4_Al + 10mm of G4_lAr ] ------------------------------------------------------------- -### Run 1 start. - -----> Output file is open in AnaEx02.root - ----> Begin of event: 0 - ---------------------End of Run------------------------------ - - mean Energy in Absorber : 135.077 MeV +- 0 eV - mean Energy in Gap : 45.3511 MeV +- 0 eV - - mean trackLength in Absorber : 33.6513 cm +- 0 fm - mean trackLength in Gap : 22.1697 cm +- 0 fm ------------------------------------------------------------- - - - ----> print histograms statistic - -EAbs: mean = 135.077 MeV rms = 0 eV -EGap: mean = 45.3511 MeV rms = 0 eV -LAbs: mean = 33.6513 cm rms = 0 fm -LGap: mean = 22.1697 cm rms = 0 fm +EAbs: mean = 188.96 MeV rms = 48.8659 MeV +EGap: mean = 46.7177 MeV rms = 12.7612 MeV +LAbs: mean = 46.7149 cm rms = 12.1118 cm +LGap: mean = 23.7187 cm rms = 6.51829 cm ----> Histograms and ntuples are saved diff --git a/examples/extended/analysis/AnaEx02/README b/examples/extended/analysis/AnaEx02/README index 87cb7623e2..5971d91bd4 100644 --- a/examples/extended/analysis/AnaEx02/README +++ b/examples/extended/analysis/AnaEx02/README @@ -8,33 +8,33 @@ ------- Examples AnaEx01 and AnaEx02 show the usage of histogram and tuple manipulations using G4Analysis and ROOT compliant systems on the same - scenario. All analysis manipulations (histo booking, filling, saving histos - in a file, etc...) are located in one class : HistoManager, implementation of - which is different in each example. All the other classes are same in all + scenario. All analysis manipulations (histo booking, filling, saving histos + in a file, etc...) are located in one class : HistoManager, implementation of + which is different in each example. All the other classes are same in all three examples. - - This example shows the usage of histogram and tuple manipulations using - ROOT system. Please install ROOT before building this example: + + This example shows the usage of histogram and tuple manipulations using + ROOT system. Please install ROOT before building this example: http://root.cern.ch - - The example is an adaptation of examples/novice/N03. It describes a simple + + The example is an adaptation of examples/novice/N03. It describes a simple sampling calorimeter setup. 1- Detector description ----------------------- - + The calorimeter is a box made of a given number of layers. A layer consists of an absorber plate and of a detection gap. The layer is replicated. - + Six parameters define the calorimeter : - the material of the absorber, - the thickness of an absorber plate, - the material of the detection gap, - the thickness of a gap, - the number of layers, - - the transverse size of the calorimeter (the input face is a square). - + - the transverse size of the calorimeter (the input face is a square). + The default geometry is constructed in DetectorConstruction class, but all of the above parameters can be modified interactively via the commands defined in the DetectorMessenger class. @@ -51,28 +51,28 @@ 2- Physics list --------------- - + The particle's type and the physic processes which will be available in this example are set in the FTFP_BERT physics list. - + 3- Action Initialization ------------------------ - A newly introduced class, ActionInitialization, - instantiates and registers to Geant4 kernel all user action classes + A newly introduced class, ActionInitialization, + instantiates and registers to Geant4 kernel all user action classes which are defined thread-local and a run action class which is defined both thread-local and global. - - The thread-local action classes are defined in - ActionInitialization::Build() - and the global run action class is defined in + + The thread-local action classes are defined in + ActionInitialization::Build() + and the global run action class is defined in ActionInitialization::BuildForMaster(). - Note that ActionInitialization::Build() is also used to + Note that ActionInitialization::Build() is also used to instatiate user action clasess in sequential mode. - + 4- An event : PrimaryGeneratorAction ------------------------------------ - + The primary kinematic consists of a single particle which hits the calorimeter perpendicular to the input face. The type of the particle and its energy are set in the PrimaryGeneratorAction class, and can @@ -80,36 +80,36 @@ 5- Histograms - ------------- + ------------- To produce histograms, ROOT system must be installed - + AnaEx02 can produce 4 histograms : - + EAbs : total energy deposit in absorber per event - EGap : total energy deposit in gap per event - LAbs : total track length of charged particles in absorber per event - LGap : total track length of charged particles in gap per event - + EGap : total energy deposit in gap per event + LAbs : total track length of charged particles in absorber per event + LGap : total track length of charged particles in gap per event + And 2 Ntuples : - Ntuple1: - one row per event : EnergyAbs EnergyGap - Ntuple2: - one row per event : TrackLAbs TrackLGap - - These histos and ntuples are booked in HistoManager and filled from + + These histos and ntuples are booked in HistoManager and filled from EventAction. - + One can control the name of the histograms file : default name : AnaEx02 format : root - + See HistoManager constructor - + 6- How to build - --------------- + --------------- An additional step is needed when building the example with GNUmake - due to using the extra shared directory: + due to using the extra shared directory: % cd path_to_AnaEx02/AnaEx02 % gmake setup % gmake @@ -123,10 +123,10 @@ - Execute AnaEx02 in the 'interactive mode' with visualization: % ./AnaEx02 - and type in the commands from run.mac line by line: + and type in the commands from run.mac line by line: Idle> /control/verbose 2 Idle> /tracking/verbose 1 - Idle> /run/beamOn 10 + Idle> /run/beamOn 10 Idle> ... Idle> exit or @@ -141,5 +141,5 @@ The AnaEx02.in macro is used in Geant4 testing. - - + + diff --git a/examples/extended/analysis/AnaEx02/include/HistoManager.hh b/examples/extended/analysis/AnaEx02/include/HistoManager.hh index 5cedccbb8f..eda272ba7a 100644 --- a/examples/extended/analysis/AnaEx02/include/HistoManager.hh +++ b/examples/extended/analysis/AnaEx02/include/HistoManager.hh @@ -35,6 +35,8 @@ #include "globals.hh" +#include + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class TFile; @@ -50,28 +52,28 @@ class HistoManager public: HistoManager(); ~HistoManager(); - + void Book(); void Save(); void FillHisto(G4int id, G4double bin, G4double weight = 1.0); - void Normalize(G4int id, G4double fac); + void Normalize(G4int id, G4double fac); void FillNtuple(G4double energyAbs, G4double energyGap, G4double trackLAbs, G4double trackLGap); - - void PrintStatistic(); - - private: - TFile* fRootFile; - TH1D* fHisto[kMaxHisto]; - TTree* fNtuple1; - TTree* fNtuple2; - G4double fEabs; - G4double fEgap; - G4double fLabs; - G4double fLgap; + void PrintStatistic(); + + private: + TFile* fRootFile = nullptr; + std::array fHisto = {nullptr, nullptr, nullptr, nullptr}; + TTree* fNtuple1 = nullptr; + TTree* fNtuple2 = nullptr; + + G4double fEabs = 0.; + G4double fEgap = 0.; + G4double fLabs = 0.; + G4double fLgap = 0.; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx02/plotHisto.C b/examples/extended/analysis/AnaEx02/plotHisto.C index ed0c79dd1f..c71581ee3b 100644 --- a/examples/extended/analysis/AnaEx02/plotHisto.C +++ b/examples/extended/analysis/AnaEx02/plotHisto.C @@ -1,20 +1,20 @@ { gROOT->Reset(); - - // Draw histos filled by Geant4 simulation - // - TFile f = TFile("AnaEx02.root"); + + // Draw histos filled by Geant4 simulation + // + TFile f = TFile("AnaEx02.root"); TCanvas* c1 = new TCanvas("c1", " "); - + TH1D* hist1 = (TH1D*)f.Get("1"); hist1->Draw("HIST"); - + TH1D* hist2 = (TH1D*)f.Get("2"); hist2->Draw("HIST"); - + TH1D* hist3 = (TH1D*)f.Get("3"); c1->SetLogy(1); c1->cd(); - c1->Update(); - hist3->Draw("HIST"); -} + c1->Update(); + hist3->Draw("HIST"); +} diff --git a/examples/extended/analysis/AnaEx02/shared/History b/examples/extended/analysis/AnaEx02/shared/History index 19eba7b2bd..c94df7b1ef 100644 --- a/examples/extended/analysis/AnaEx02/shared/History +++ b/examples/extended/analysis/AnaEx02/shared/History @@ -21,7 +21,7 @@ be used as a substitute for writing good git commit messages! 03-07-18 I. Hrivnacova (analysisShared-V10-04-00) - Macro & commands review: - Removed obsolete /N03 top command directory - - Added protection against warnings issued from ReinitializeGeometry() if + - Added protection against warnings issued from ReinitializeGeometry() if called in PreInit phase 04-07-16 I. Hrivnacova (analysisShared-V10-02-01) @@ -33,9 +33,9 @@ be used as a substitute for writing good git commit messages! 27-08-15 I. Hrivnacova (analysisShared-V10-01-00) - Updated histogram ids in FillHiso (now starting from 0); updated for changed function names in HistoManager classes - + 06-11-14 I. Hrivnacova (analysisShared-V10-00-01) - Moved scripts from upper directory in shared - + 05-11-14 I. Hrivnacova (analysisShared-V10-00-00) - Tagged version which will be included in AnaEx0N examples diff --git a/examples/extended/analysis/AnaEx02/shared/include/ActionInitialization.hh b/examples/extended/analysis/AnaEx02/shared/include/ActionInitialization.hh index 797b2917e7..d897750a33 100644 --- a/examples/extended/analysis/AnaEx02/shared/include/ActionInitialization.hh +++ b/examples/extended/analysis/AnaEx02/shared/include/ActionInitialization.hh @@ -41,15 +41,15 @@ class ActionInitialization : public G4VUserActionInitialization { public: ActionInitialization(DetectorConstruction* detector); - virtual ~ActionInitialization(); + ~ActionInitialization() override; - virtual void BuildForMaster() const; - virtual void Build() const; + void BuildForMaster() const override; + void Build() const override; private: - DetectorConstruction* fDetector; + DetectorConstruction* fDetector = nullptr; }; #endif - + diff --git a/examples/extended/analysis/AnaEx02/shared/include/DetectorConstruction.hh b/examples/extended/analysis/AnaEx02/shared/include/DetectorConstruction.hh index 682d37091c..040bf4c9e6 100644 --- a/examples/extended/analysis/AnaEx02/shared/include/DetectorConstruction.hh +++ b/examples/extended/analysis/AnaEx02/shared/include/DetectorConstruction.hh @@ -25,10 +25,6 @@ // /// \file DetectorConstruction.hh /// \brief Definition of the DetectorConstruction class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -39,6 +35,8 @@ #include "G4VUserDetectorConstruction.hh" #include "globals.hh" +#include "CLHEP/Units/SystemOfUnits.h" + class G4Box; class G4LogicalVolume; class G4VPhysicalVolume; @@ -50,90 +48,82 @@ class DetectorMessenger; class DetectorConstruction : public G4VUserDetectorConstruction { public: - - DetectorConstruction(); - virtual ~DetectorConstruction(); + + DetectorConstruction(); + ~DetectorConstruction() override; public: - - void SetAbsorberMaterial (G4String); - void SetAbsorberThickness(G4double); + G4VPhysicalVolume* Construct() override; - void SetGapMaterial (G4String); - void SetGapThickness(G4double); - - void SetCalorSizeYZ(G4double); - void SetNbOfLayers (G4int); - - virtual G4VPhysicalVolume* Construct(); + void SetAbsorberMaterial (const G4String&); + void SetAbsorberThickness(G4double); + + void SetGapMaterial (const G4String&); + void SetGapThickness(G4double); + + void SetCalorSizeYZ(G4double); + void SetNbOfLayers (G4int); + + void PrintCalorParameters(); + + G4double GetWorldSizeX() { return fWorldSizeX; } + G4double GetWorldSizeYZ() { return fWorldSizeYZ; } + + G4double GetCalorThickness() { return fCalorThickness; } + G4double GetCalorSizeYZ() { return fCalorSizeYZ; } + + G4int GetNbOfLayers() { return fNbOfLayers; } + + G4Material* GetAbsorberMaterial() { return fAbsorberMaterial; } + G4double GetAbsorberThickness() { return fAbsorberThickness; } + + G4Material* GetGapMaterial() { return fGapMaterial; } + G4double GetGapThickness() { return fGapThickness; } + + const G4VPhysicalVolume* GetphysiWorld() { return fPhysiWorld; } + const G4VPhysicalVolume* GetAbsorber() { return fPhysiAbsorber; } + const G4VPhysicalVolume* GetGap() { return fPhysiGap; } - public: - - void PrintCalorParameters(); - - G4double GetWorldSizeX() {return fWorldSizeX;}; - G4double GetWorldSizeYZ() {return fWorldSizeYZ;}; - - G4double GetCalorThickness() {return fCalorThickness;}; - G4double GetCalorSizeYZ() {return fCalorSizeYZ;}; - - G4int GetNbOfLayers() {return fNbOfLayers;}; - - G4Material* GetAbsorberMaterial() {return fAbsorberMaterial;}; - G4double GetAbsorberThickness() {return fAbsorberThickness;}; - - G4Material* GetGapMaterial() {return fGapMaterial;}; - G4double GetGapThickness() {return fGapThickness;}; - - const G4VPhysicalVolume* GetphysiWorld() {return fPhysiWorld;}; - const G4VPhysicalVolume* GetAbsorber() {return fPhysiAbsorber;}; - const G4VPhysicalVolume* GetGap() {return fPhysiGap;}; - private: - - G4Material* fAbsorberMaterial; - G4double fAbsorberThickness; - - G4Material* fGapMaterial; - G4double fGapThickness; - - G4int fNbOfLayers; - G4double fLayerThickness; - - G4double fCalorSizeYZ; - G4double fCalorThickness; - - G4Material* fDefaultMaterial; - G4double fWorldSizeYZ; - G4double fWorldSizeX; - - G4Box* fSolidWorld; //pointer to the solid World - G4LogicalVolume* fLogicWorld; //pointer to the logical World - G4VPhysicalVolume* fPhysiWorld; //pointer to the physical World + void DefineMaterials(); + void ComputeCalorParameters(); + G4VPhysicalVolume* ConstructCalorimeter(); - G4Box* fSolidCalor; //pointer to the solid Calor - G4LogicalVolume* fLogicCalor; //pointer to the logical Calor - G4VPhysicalVolume* fPhysiCalor; //pointer to the physical Calor - - G4Box* fSolidLayer; //pointer to the solid Layer - G4LogicalVolume* fLogicLayer; //pointer to the logical Layer - G4VPhysicalVolume* fPhysiLayer; //pointer to the physical Layer - - G4Box* fSolidAbsorber; //pointer to the solid Absorber - G4LogicalVolume* fLogicAbsorber; //pointer to the logical Absorber - G4VPhysicalVolume* fPhysiAbsorber; //pointer to the physical Absorber - - G4Box* fSolidGap; //pointer to the solid Gap - G4LogicalVolume* fLogicGap; //pointer to the logical Gap - G4VPhysicalVolume* fPhysiGap; //pointer to the physical Gap - - DetectorMessenger* fDetectorMessenger; //pointer to the Messenger - - private: - - void DefineMaterials(); - void ComputeCalorParameters(); - G4VPhysicalVolume* ConstructCalorimeter(); + G4Material* fAbsorberMaterial = nullptr; + G4Material* fGapMaterial = nullptr; + G4Material* fDefaultMaterial = nullptr; + + G4int fNbOfLayers = 10; + G4double fAbsorberThickness = 10.*CLHEP::mm; + G4double fGapThickness = 5.*CLHEP::mm; + G4double fCalorSizeYZ = 10.*CLHEP::cm; + + G4double fCalorThickness = 0.; // will be computed + G4double fLayerThickness= 0.; // will be computed + G4double fWorldSizeYZ = 0.; // will be computed; + G4double fWorldSizeX = 0.; // will be computed; + + G4Box* fSolidWorld = nullptr; //pointer to the solid World + G4LogicalVolume* fLogicWorld = nullptr; //pointer to the logical World + G4VPhysicalVolume* fPhysiWorld = nullptr; //pointer to the physical World + + G4Box* fSolidCalor = nullptr; //pointer to the solid Calor + G4LogicalVolume* fLogicCalor = nullptr; //pointer to the logical Calor + G4VPhysicalVolume* fPhysiCalor = nullptr; //pointer to the physical Calor + + G4Box* fSolidLayer = nullptr; //pointer to the solid Layer + G4LogicalVolume* fLogicLayer = nullptr; //pointer to the logical Layer + G4VPhysicalVolume* fPhysiLayer = nullptr; //pointer to the physical Layer + + G4Box* fSolidAbsorber = nullptr; //pointer to the solid Absorber + G4LogicalVolume* fLogicAbsorber = nullptr; //pointer to the logical Absorber + G4VPhysicalVolume* fPhysiAbsorber = nullptr; //pointer to the physical Absorber + + G4Box* fSolidGap = nullptr; //pointer to the solid Gap + G4LogicalVolume* fLogicGap = nullptr; //pointer to the logical Gap + G4VPhysicalVolume* fPhysiGap = nullptr; //pointer to the physical Gap + + DetectorMessenger* fDetectorMessenger = nullptr; //pointer to the Messenger }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -141,10 +131,10 @@ class DetectorConstruction : public G4VUserDetectorConstruction inline void DetectorConstruction::ComputeCalorParameters() { // Compute derived parameters of the calorimeter - fLayerThickness = fAbsorberThickness + fGapThickness; - fCalorThickness = fNbOfLayers*fLayerThickness; - - fWorldSizeX = 1.2*fCalorThickness; fWorldSizeYZ = 1.2*fCalorSizeYZ; + fLayerThickness = fAbsorberThickness + fGapThickness; + fCalorThickness = fNbOfLayers*fLayerThickness; + + fWorldSizeX = 1.2*fCalorThickness; fWorldSizeYZ = 1.2*fCalorSizeYZ; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx02/shared/include/DetectorMessenger.hh b/examples/extended/analysis/AnaEx02/shared/include/DetectorMessenger.hh index d18799417f..df4790e77d 100644 --- a/examples/extended/analysis/AnaEx02/shared/include/DetectorMessenger.hh +++ b/examples/extended/analysis/AnaEx02/shared/include/DetectorMessenger.hh @@ -25,10 +25,6 @@ // /// \file DetectorMessenger.hh /// \brief Definition of the DetectorMessenger class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -44,7 +40,6 @@ class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; class G4UIcmdWithADoubleAndUnit; -class G4UIcmdWithoutParameter; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -52,23 +47,22 @@ class DetectorMessenger: public G4UImessenger { public: DetectorMessenger(DetectorConstruction* ); - virtual ~DetectorMessenger(); - - virtual void SetNewValue(G4UIcommand*, G4String); - + ~DetectorMessenger() override; + + void SetNewValue(G4UIcommand*, G4String) override; + private: - DetectorConstruction* fDetector; - - G4UIdirectory* fDetDir; - G4UIcmdWithAString* fAbsMaterCmd; - G4UIcmdWithAString* fGapMaterCmd; - G4UIcmdWithADoubleAndUnit* fAbsThickCmd; - G4UIcmdWithADoubleAndUnit* fGapThickCmd; - G4UIcmdWithADoubleAndUnit* fSizeYZCmd; - G4UIcmdWithAnInteger* fNbLayersCmd; + DetectorConstruction* fDetector = nullptr; + + G4UIdirectory* fDetDir = nullptr; + G4UIcmdWithAString* fAbsMaterCmd = nullptr; + G4UIcmdWithAString* fGapMaterCmd = nullptr; + G4UIcmdWithADoubleAndUnit* fAbsThickCmd = nullptr; + G4UIcmdWithADoubleAndUnit* fGapThickCmd = nullptr; + G4UIcmdWithADoubleAndUnit* fSizeYZCmd = nullptr; + G4UIcmdWithAnInteger* fNbLayersCmd = nullptr; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - diff --git a/examples/extended/analysis/AnaEx02/shared/include/EventAction.hh b/examples/extended/analysis/AnaEx02/shared/include/EventAction.hh index 93ced7f5b4..943fff1125 100644 --- a/examples/extended/analysis/AnaEx02/shared/include/EventAction.hh +++ b/examples/extended/analysis/AnaEx02/shared/include/EventAction.hh @@ -28,7 +28,7 @@ // // // -// +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,26 +48,28 @@ class EventAction : public G4UserEventAction { public: EventAction(RunAction*, HistoManager*); - virtual ~EventAction(); + ~EventAction() override; + + void BeginOfEventAction(const G4Event*) override; + void EndOfEventAction(const G4Event*) override; - virtual void BeginOfEventAction(const G4Event*); - virtual void EndOfEventAction(const G4Event*); - void AddAbs(G4double de, G4double dl) {fEnergyAbs += de; fTrackLAbs += dl;}; void AddGap(G4double de, G4double dl) {fEnergyGap += de; fTrackLGap += dl;}; - + private: - RunAction* fRunAct; - HistoManager* fHistoManager; - - G4double fEnergyAbs, fEnergyGap; - G4double fTrackLAbs, fTrackLGap; - - G4int fPrintModulo; + RunAction* fRunAct = nullptr; + HistoManager* fHistoManager = nullptr; + + G4double fEnergyAbs = 0.; + G4double fEnergyGap = 0; + G4double fTrackLAbs = 0; + G4double fTrackLGap = 0; + + G4int fPrintModulo = 100; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - + diff --git a/examples/extended/analysis/AnaEx02/shared/include/PrimaryGeneratorAction.hh b/examples/extended/analysis/AnaEx02/shared/include/PrimaryGeneratorAction.hh index 8da549b116..e4d51bdddb 100644 --- a/examples/extended/analysis/AnaEx02/shared/include/PrimaryGeneratorAction.hh +++ b/examples/extended/analysis/AnaEx02/shared/include/PrimaryGeneratorAction.hh @@ -25,10 +25,6 @@ // /// \file PrimaryGeneratorAction.hh /// \brief Definition of the PrimaryGeneratorAction class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,14 +44,14 @@ class DetectorConstruction; class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: - PrimaryGeneratorAction(DetectorConstruction*); - virtual ~PrimaryGeneratorAction(); + PrimaryGeneratorAction(DetectorConstruction*); + ~PrimaryGeneratorAction() override; - virtual void GeneratePrimaries(G4Event*); + void GeneratePrimaries(G4Event*) override; private: - G4ParticleGun* fParticleGun; //pointer a to G4 class - DetectorConstruction* fDetector; //pointer to the geometry + G4ParticleGun* fParticleGun = nullptr; //pointer a to G4 class + DetectorConstruction* fDetector = nullptr; //pointer to the geometry }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx02/shared/include/RunAction.hh b/examples/extended/analysis/AnaEx02/shared/include/RunAction.hh index 15bf61a2e0..28c1dc28a5 100644 --- a/examples/extended/analysis/AnaEx02/shared/include/RunAction.hh +++ b/examples/extended/analysis/AnaEx02/shared/include/RunAction.hh @@ -28,7 +28,7 @@ // // // -// +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -37,6 +37,7 @@ #define RunAction_h 1 #include "G4UserRunAction.hh" +#include "G4Accumulable.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,21 +49,25 @@ class RunAction : public G4UserRunAction { public: RunAction(HistoManager*); - virtual ~RunAction(); + ~RunAction() override; - virtual void BeginOfRunAction(const G4Run*); - virtual void EndOfRunAction(const G4Run*); - - void FillPerEvent(G4double, G4double, G4double, G4double); + void BeginOfRunAction(const G4Run*) override; + void EndOfRunAction(const G4Run*) override; + + void FillPerEvent(G4double, G4double, G4double, G4double); private: - HistoManager* fHistoManager; + HistoManager* fHistoManager = nullptr; - G4double fSumEAbs, fSum2EAbs; - G4double fSumEGap, fSum2EGap; - - G4double fSumLAbs, fSum2LAbs; - G4double fSumLGap, fSum2LGap; + G4Accumulable fSumEAbs = 0.; + G4Accumulable fSum2EAbs = 0.; + G4Accumulable fSumEGap = 0.; + G4Accumulable fSum2EGap = 0.; + + G4Accumulable fSumLAbs = 0.; + G4Accumulable fSum2LAbs = 0.; + G4Accumulable fSumLGap = 0.; + G4Accumulable fSum2LGap = 0.; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx02/shared/include/SteppingAction.hh b/examples/extended/analysis/AnaEx02/shared/include/SteppingAction.hh index b7a9a421a9..6939abd3e5 100644 --- a/examples/extended/analysis/AnaEx02/shared/include/SteppingAction.hh +++ b/examples/extended/analysis/AnaEx02/shared/include/SteppingAction.hh @@ -25,10 +25,6 @@ // /// \file SteppingAction.hh /// \brief Definition of the SteppingAction class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -47,13 +43,13 @@ class SteppingAction : public G4UserSteppingAction { public: SteppingAction(DetectorConstruction*, EventAction*); - virtual ~SteppingAction(); + ~SteppingAction() override; + + void UserSteppingAction(const G4Step*) override; - virtual void UserSteppingAction(const G4Step*); - private: - DetectorConstruction* fDetector; - EventAction* fEventAction; + DetectorConstruction* fDetector = nullptr; + EventAction* fEventAction = nullptr; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx02/shared/scripts/History b/examples/extended/analysis/AnaEx02/shared/scripts/History index b777673b51..a302463de0 100644 --- a/examples/extended/analysis/AnaEx02/shared/scripts/History +++ b/examples/extended/analysis/AnaEx02/shared/scripts/History @@ -11,6 +11,6 @@ be used as a substitute for writing good git commit messages! --- # History entries prior to 11.0 - + 05-11-14 I. Hrivnacova (analysisScripts-V10-00-00) - Tagged version which will be included in AnaEx0N examples diff --git a/examples/extended/analysis/AnaEx02/shared/scripts/clean_files.sh b/examples/extended/analysis/AnaEx02/shared/scripts/clean_files.sh index b40a301436..062bcece65 100755 --- a/examples/extended/analysis/AnaEx02/shared/scripts/clean_files.sh +++ b/examples/extended/analysis/AnaEx02/shared/scripts/clean_files.sh @@ -9,10 +9,10 @@ DIRNAME=$1 for FILE in `ls $DIRNAME/include`; do rm -f include/$FILE -done +done for FILE in `ls $DIRNAME/src`; do rm -f src/$FILE -done +done echo "... clean_files.sh from $1 finished" diff --git a/examples/extended/analysis/AnaEx02/shared/src/ActionInitialization.cc b/examples/extended/analysis/AnaEx02/shared/src/ActionInitialization.cc index 0bc86b90b0..f301b3ee67 100644 --- a/examples/extended/analysis/AnaEx02/shared/src/ActionInitialization.cc +++ b/examples/extended/analysis/AnaEx02/shared/src/ActionInitialization.cc @@ -37,22 +37,20 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... ActionInitialization::ActionInitialization(DetectorConstruction* detector) - : G4VUserActionInitialization(), - fDetector(detector) + : fDetector(detector) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::~ActionInitialization() -{} +ActionInitialization::~ActionInitialization() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void ActionInitialization::BuildForMaster() const { // Histo manager - HistoManager* histo = new HistoManager(); - + auto histo = new HistoManager(); + // Actions SetUserAction(new RunAction(histo)); } @@ -62,20 +60,20 @@ void ActionInitialization::BuildForMaster() const void ActionInitialization::Build() const { // Histo manager - HistoManager* histo = new HistoManager(); - + auto histo = new HistoManager(); + // Actions // SetUserAction(new PrimaryGeneratorAction(fDetector)); - - RunAction* runAction = new RunAction(histo); + + auto runAction = new RunAction(histo); SetUserAction(runAction); - - EventAction* eventAction = new EventAction(runAction, histo); + + auto eventAction = new EventAction(runAction, histo); SetUserAction(eventAction); - SteppingAction* steppingAction = new SteppingAction(fDetector, eventAction); + auto steppingAction = new SteppingAction(fDetector, eventAction); SetUserAction(steppingAction); -} +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx02/shared/src/DetectorConstruction.cc b/examples/extended/analysis/AnaEx02/shared/src/DetectorConstruction.cc index 11c8bb186e..8be67a6d51 100644 --- a/examples/extended/analysis/AnaEx02/shared/src/DetectorConstruction.cc +++ b/examples/extended/analysis/AnaEx02/shared/src/DetectorConstruction.cc @@ -25,10 +25,6 @@ // /// \file DetectorConstruction.cc /// \brief Implementation of the DetectorConstruction class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -58,27 +54,14 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorConstruction::DetectorConstruction() -:G4VUserDetectorConstruction(), - fAbsorberMaterial(0),fGapMaterial(0),fDefaultMaterial(0), - fSolidWorld(0),fLogicWorld(0),fPhysiWorld(0), - fSolidCalor(0),fLogicCalor(0),fPhysiCalor(0), - fSolidLayer(0),fLogicLayer(0),fPhysiLayer(0), - fSolidAbsorber(0),fLogicAbsorber(0),fPhysiAbsorber(0), - fSolidGap (0),fLogicGap (0),fPhysiGap (0), - fDetectorMessenger(0) { - // default parameter values of the calorimeter - fAbsorberThickness = 10.*mm; - fGapThickness = 5.*mm; - fNbOfLayers = 10; - fCalorSizeYZ = 10.*cm; ComputeCalorParameters(); - + // materials DefineMaterials(); SetAbsorberMaterial("G4_Pb"); SetGapMaterial("G4_lAr"); - + // create commands for interactive definition of the calorimeter fDetectorMessenger = new DetectorMessenger(this); } @@ -86,7 +69,9 @@ DetectorConstruction::DetectorConstruction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorConstruction::~DetectorConstruction() -{ delete fDetectorMessenger;} +{ + delete fDetectorMessenger; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -98,24 +83,23 @@ G4VPhysicalVolume* DetectorConstruction::Construct() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void DetectorConstruction::DefineMaterials() -{ -// use G4-NIST materials data base -// -G4NistManager* man = G4NistManager::Instance(); -fDefaultMaterial = man->FindOrBuildMaterial("G4_Galactic"); -man->FindOrBuildMaterial("G4_Pb"); -man->FindOrBuildMaterial("G4_lAr"); +{ + // use G4-NIST materials data base + // + G4NistManager* man = G4NistManager::Instance(); + fDefaultMaterial = man->FindOrBuildMaterial("G4_Galactic"); + man->FindOrBuildMaterial("G4_Pb"); + man->FindOrBuildMaterial("G4_lAr"); -// print table -// -G4cout << *(G4Material::GetMaterialTable()) << G4endl; + // print table + // + G4cout << *(G4Material::GetMaterialTable()) << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4VPhysicalVolume* DetectorConstruction::ConstructCalorimeter() { - // Clean old geometry, if any // G4GeometryManager::GetInstance()->OpenGeometry(); @@ -125,126 +109,128 @@ G4VPhysicalVolume* DetectorConstruction::ConstructCalorimeter() // complete the Calor parameters definition ComputeCalorParameters(); - - // + + // // World // - fSolidWorld = new G4Box("World", //its name - fWorldSizeX/2,fWorldSizeYZ/2,fWorldSizeYZ/2); //its size - + fSolidWorld = new G4Box("World", //its name + fWorldSizeX/2,fWorldSizeYZ/2,fWorldSizeYZ/2); //its size + fLogicWorld = new G4LogicalVolume(fSolidWorld, //its solid fDefaultMaterial, //its material "World"); //its name - - fPhysiWorld = new G4PVPlacement(0, //no rotation + + fPhysiWorld = new G4PVPlacement(nullptr, //no rotation G4ThreeVector(), //at (0,0,0) - fLogicWorld, //its logical volume + fLogicWorld, //its logical volume "World", //its name - 0, //its mother volume - false, //no boolean operation + nullptr, //its mother volume + false, //no boolean operation 0); //copy number - - // - // Calorimeter - // - fSolidCalor=0; fLogicCalor=0; fPhysiCalor=0; - fSolidLayer=0; fLogicLayer=0; fPhysiLayer=0; - - if (fCalorThickness > 0.) - { fSolidCalor = new G4Box("Calorimeter", //its name - fCalorThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2);//size - - fLogicCalor = new G4LogicalVolume(fSolidCalor, //its solid - fDefaultMaterial, //its material - "Calorimeter"); //its name - - fPhysiCalor = new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - fLogicCalor, //its logical volume - "Calorimeter", //its name - fLogicWorld, //its mother volume - false, //no boolean operation - 0); //copy number - - // - // Layer + + // + // Calorimeter + // + fSolidCalor = nullptr; fLogicCalor = nullptr; fPhysiCalor = nullptr; + fSolidLayer = nullptr; fLogicLayer = nullptr; fPhysiLayer = nullptr; + + if (fCalorThickness > 0.) { + fSolidCalor = new G4Box("Calorimeter", //its name + fCalorThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); //size + + fLogicCalor = new G4LogicalVolume(fSolidCalor, //its solid + fDefaultMaterial, //its material + "Calorimeter"); //its name + + fPhysiCalor = new G4PVPlacement(nullptr, //no rotation + G4ThreeVector(), //at (0,0,0) + fLogicCalor, //its logical volume + "Calorimeter", //its name + fLogicWorld, //its mother volume + false, //no boolean operation + 0); //copy number + + // + // Layer + // + fSolidLayer = new G4Box("Layer", //its name + fLayerThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); //size + + fLogicLayer = new G4LogicalVolume(fSolidLayer, //its solid + fDefaultMaterial, //its material + "Layer"); //its name + if (fNbOfLayers > 1) { + fPhysiLayer = new G4PVReplica("Layer", //its name + fLogicLayer, //its logical volume + fLogicCalor, //its mother + kXAxis, //axis of replication + fNbOfLayers, //number of replica + fLayerThickness); //witdth of replica + } + else { + fPhysiLayer = new G4PVPlacement(nullptr, //no rotation + G4ThreeVector(), //at (0,0,0) + fLogicLayer, //its logical volume + "Layer", //its name + fLogicCalor, //its mother volume + false, //no boolean operation + 0); //copy number + } + } + // - fSolidLayer = new G4Box("Layer", //its name - fLayerThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); //size - - fLogicLayer = new G4LogicalVolume(fSolidLayer, //its solid - fDefaultMaterial, //its material - "Layer"); //its name - if (fNbOfLayers > 1) - fPhysiLayer = new G4PVReplica("Layer", //its name - fLogicLayer, //its logical volume - fLogicCalor, //its mother - kXAxis, //axis of replication - fNbOfLayers, //number of replica - fLayerThickness); //witdth of replica - else - fPhysiLayer = new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - fLogicLayer, //its logical volume - "Layer", //its name - fLogicCalor, //its mother volume - false, //no boolean operation - 0); //copy number - } - - // // Absorber // - fSolidAbsorber=0; fLogicAbsorber=0; fPhysiAbsorber=0; - - if (fAbsorberThickness > 0.) - { fSolidAbsorber = new G4Box("Absorber", //its name - fAbsorberThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); - - fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, //its solid - fAbsorberMaterial, //its material - fAbsorberMaterial->GetName());//name - - fPhysiAbsorber = new G4PVPlacement(0, //no rotation - G4ThreeVector(-fGapThickness/2,0.,0.), //its position - fLogicAbsorber, //its logical volume - fAbsorberMaterial->GetName(), //its name - fLogicLayer, //its mother - false, //no boulean operat - 0); //copy number - - } - - // + fSolidAbsorber = nullptr; fLogicAbsorber = nullptr; fPhysiAbsorber = nullptr; + + if (fAbsorberThickness > 0.) { + fSolidAbsorber = new G4Box("Absorber", //its name + fAbsorberThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); //size + + fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, //its solid + fAbsorberMaterial, //its material + fAbsorberMaterial->GetName()); //name + + fPhysiAbsorber = new G4PVPlacement(nullptr, //no rotation + G4ThreeVector(-fGapThickness/2,0.,0.), //its position + fLogicAbsorber, //its logical volume + fAbsorberMaterial->GetName(), //its name + fLogicLayer, //its mother + false, //no boulean operat + 0); //copy number + + } + + // // Gap // - fSolidGap=0; fLogicGap=0; fPhysiGap=0; - - if (fGapThickness > 0.) - { fSolidGap = new G4Box("Gap", - fGapThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); - - fLogicGap = new G4LogicalVolume(fSolidGap, - fGapMaterial, - fGapMaterial->GetName()); - - fPhysiGap = new G4PVPlacement(0, //no rotation - G4ThreeVector(fAbsorberThickness/2,0.,0.), //its position - fLogicGap, //its logical volume - fGapMaterial->GetName(), //its name - fLogicLayer, //its mother - false, //no boulean operat - 0); //copy number - } - - PrintCalorParameters(); - - // + fSolidGap = nullptr; fLogicGap = nullptr; fPhysiGap = nullptr; + + if (fGapThickness > 0.) { + fSolidGap = new G4Box("Gap", + fGapThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); + + fLogicGap = new G4LogicalVolume(fSolidGap, + fGapMaterial, + fGapMaterial->GetName()); + + fPhysiGap = new G4PVPlacement(nullptr, //no rotation + G4ThreeVector(fAbsorberThickness/2,0.,0.), //its position + fLogicGap, //its logical volume + fGapMaterial->GetName(), //its name + fLogicLayer, //its mother + false, //no boulean operat + 0); //copy number + } + + PrintCalorParameters(); + + // // Visualization attributes // fLogicWorld->SetVisAttributes (G4VisAttributes::GetInvisible()); - G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + auto simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); simpleBoxVisAtt->SetVisibility(true); fLogicCalor->SetVisAttributes(simpleBoxVisAtt); @@ -260,54 +246,47 @@ void DetectorConstruction::PrintCalorParameters() { G4cout << "\n------------------------------------------------------------" << "\n---> The calorimeter is " << fNbOfLayers << " layers of: [ " - << fAbsorberThickness/mm << "mm of " << fAbsorberMaterial->GetName() + << fAbsorberThickness/mm << "mm of " << fAbsorberMaterial->GetName() << " + " - << fGapThickness/mm << "mm of " << fGapMaterial->GetName() << " ] " + << fGapThickness/mm << "mm of " << fGapMaterial->GetName() << " ] " << "\n------------------------------------------------------------\n"; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetAbsorberMaterial(G4String materialChoice) -{ - // search the material by its name - G4Material* pttoMaterial = - G4NistManager::Instance()->FindOrBuildMaterial(materialChoice); - if (pttoMaterial) - { - fAbsorberMaterial = pttoMaterial; - if ( fLogicAbsorber ) - { - fLogicAbsorber->SetMaterial(fAbsorberMaterial); - G4RunManager::GetRunManager()->PhysicsHasBeenModified(); - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::SetGapMaterial(G4String materialChoice) +void DetectorConstruction::SetAbsorberMaterial(const G4String& materialChoice) { // search the material by its name - G4Material* pttoMaterial = - G4NistManager::Instance()->FindOrBuildMaterial(materialChoice); - if (pttoMaterial) - { - fGapMaterial = pttoMaterial; - if ( fLogicGap ) - { - fLogicGap->SetMaterial(fGapMaterial); - G4RunManager::GetRunManager()->PhysicsHasBeenModified(); - } + auto material = G4NistManager::Instance()->FindOrBuildMaterial(materialChoice); + if (material != nullptr) { + fAbsorberMaterial = material; + if (fLogicAbsorber != nullptr) { + fLogicAbsorber->SetMaterial(fAbsorberMaterial); + G4RunManager::GetRunManager()->PhysicsHasBeenModified(); + } } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetAbsorberThickness(G4double val) +void DetectorConstruction::SetGapMaterial(const G4String& materialChoice) +{ + auto material = G4NistManager::Instance()->FindOrBuildMaterial(materialChoice); + if (material != nullptr) { + fGapMaterial = material; + if ( fLogicGap != nullptr) { + fLogicGap->SetMaterial(fGapMaterial); + G4RunManager::GetRunManager()->PhysicsHasBeenModified(); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetAbsorberThickness(G4double value) { // change Absorber thickness and recompute the calorimeter parameters - fAbsorberThickness = val; + fAbsorberThickness = value; if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { G4RunManager::GetRunManager()->ReinitializeGeometry(); } @@ -315,10 +294,10 @@ void DetectorConstruction::SetAbsorberThickness(G4double val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetGapThickness(G4double val) +void DetectorConstruction::SetGapThickness(G4double value) { // change Gap thickness and recompute the calorimeter parameters - fGapThickness = val; + fGapThickness = value; if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { G4RunManager::GetRunManager()->ReinitializeGeometry(); } @@ -326,10 +305,10 @@ void DetectorConstruction::SetGapThickness(G4double val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetCalorSizeYZ(G4double val) +void DetectorConstruction::SetCalorSizeYZ(G4double value) { // change the transverse size and recompute the calorimeter parameters - fCalorSizeYZ = val; + fCalorSizeYZ = value; if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { G4RunManager::GetRunManager()->ReinitializeGeometry(); } @@ -337,9 +316,9 @@ void DetectorConstruction::SetCalorSizeYZ(G4double val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetNbOfLayers(G4int val) +void DetectorConstruction::SetNbOfLayers(G4int value) { - fNbOfLayers = val; + fNbOfLayers = value; if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { G4RunManager::GetRunManager()->ReinitializeGeometry(); } diff --git a/examples/extended/analysis/AnaEx02/shared/src/DetectorMessenger.cc b/examples/extended/analysis/AnaEx02/shared/src/DetectorMessenger.cc index f3634f0bd9..c7775c5fe2 100644 --- a/examples/extended/analysis/AnaEx02/shared/src/DetectorMessenger.cc +++ b/examples/extended/analysis/AnaEx02/shared/src/DetectorMessenger.cc @@ -25,10 +25,6 @@ // /// \file DetectorMessenger.cc /// \brief Implementation of the DetectorMessenger class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,57 +41,48 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorMessenger::DetectorMessenger( DetectorConstruction* Det) -: G4UImessenger(), - fDetector(Det), - fDetDir(0), - fAbsMaterCmd(0), - fGapMaterCmd(0), - fAbsThickCmd(0), - fGapThickCmd(0), - fSizeYZCmd(0), - fNbLayersCmd(0) -{ +: fDetector(Det) +{ G4bool broadcast = false; fDetDir = new G4UIdirectory("/det/",broadcast); fDetDir->SetGuidance("Detector control"); - + fAbsMaterCmd = new G4UIcmdWithAString("/det/setAbsMat",this); fAbsMaterCmd->SetGuidance("Select Material of the Absorber."); - fAbsMaterCmd->SetParameterName("choice",false); + fAbsMaterCmd->SetParameterName("AbsMat",false); fAbsMaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fGapMaterCmd = new G4UIcmdWithAString("/det/setGapMat",this); fGapMaterCmd->SetGuidance("Select Material of the Gap."); - fGapMaterCmd->SetParameterName("choice",false); + fGapMaterCmd->SetParameterName("GapMat",false); fGapMaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fAbsThickCmd = new G4UIcmdWithADoubleAndUnit("/det/setAbsThick",this); fAbsThickCmd->SetGuidance("Set Thickness of the Absorber"); - fAbsThickCmd->SetParameterName("Size",false); - fAbsThickCmd->SetRange("Size>=0."); + fAbsThickCmd->SetParameterName("AbsThick",false); + fAbsThickCmd->SetRange("AbsThick>=0."); fAbsThickCmd->SetUnitCategory("Length"); fAbsThickCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fGapThickCmd = new G4UIcmdWithADoubleAndUnit("/det/setGapThick",this); fGapThickCmd->SetGuidance("Set Thickness of the Gap"); - fGapThickCmd->SetParameterName("Size",false); - fGapThickCmd->SetRange("Size>=0."); - fGapThickCmd->SetUnitCategory("Length"); + fGapThickCmd->SetParameterName("GapThick",false); + fGapThickCmd->SetRange("GapThick>=0."); + fGapThickCmd->SetUnitCategory("Length"); fGapThickCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fSizeYZCmd = new G4UIcmdWithADoubleAndUnit("/det/setSizeYZ",this); fSizeYZCmd->SetGuidance("Set tranverse size of the calorimeter"); - fSizeYZCmd->SetParameterName("Size",false); - fSizeYZCmd->SetRange("Size>0."); - fSizeYZCmd->SetUnitCategory("Length"); + fSizeYZCmd->SetParameterName("SizeYZ",false); + fSizeYZCmd->SetRange("SizeYZ>0."); + fSizeYZCmd->SetUnitCategory("Length"); fSizeYZCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fNbLayersCmd = new G4UIcmdWithAnInteger("/det/setNbOfLayers",this); fNbLayersCmd->SetGuidance("Set number of layers."); fNbLayersCmd->SetParameterName("NbLayers",false); fNbLayersCmd->SetRange("NbLayers>0 && NbLayers<500"); fNbLayersCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -103,34 +90,46 @@ DetectorMessenger::DetectorMessenger( DetectorConstruction* Det) DetectorMessenger::~DetectorMessenger() { delete fNbLayersCmd; - delete fAbsMaterCmd; delete fGapMaterCmd; - delete fAbsThickCmd; delete fGapThickCmd; - delete fSizeYZCmd; + delete fAbsMaterCmd; + delete fGapMaterCmd; + delete fAbsThickCmd; + delete fGapThickCmd; + delete fSizeYZCmd; delete fDetDir; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - if( command == fAbsMaterCmd ) { +void DetectorMessenger::SetNewValue(G4UIcommand* command, G4String newValue) +{ + if( command == fAbsMaterCmd ) { fDetector->SetAbsorberMaterial(newValue); - } - else if( command == fGapMaterCmd ) { + return; + } + + if( command == fGapMaterCmd ) { fDetector->SetGapMaterial(newValue); + return; } - else if( command == fAbsThickCmd ) { - fDetector - ->SetAbsorberThickness(fAbsThickCmd->GetNewDoubleValue(newValue)); - } - else if( command == fGapThickCmd ) { + + if( command == fAbsThickCmd ) { + fDetector->SetAbsorberThickness(fAbsThickCmd->GetNewDoubleValue(newValue)); + return; + } + + if( command == fGapThickCmd ) { fDetector->SetGapThickness(fGapThickCmd->GetNewDoubleValue(newValue)); + return; } - else if( command == fSizeYZCmd ) { + + if( command == fSizeYZCmd ) { fDetector->SetCalorSizeYZ(fSizeYZCmd->GetNewDoubleValue(newValue)); - } - else if( command == fNbLayersCmd ) { + return; + } + + if( command == fNbLayersCmd ) { fDetector->SetNbOfLayers(fNbLayersCmd->GetNewIntValue(newValue)); + return; } } diff --git a/examples/extended/analysis/AnaEx02/shared/src/EventAction.cc b/examples/extended/analysis/AnaEx02/shared/src/EventAction.cc index a8b153ef0f..230ca29aeb 100644 --- a/examples/extended/analysis/AnaEx02/shared/src/EventAction.cc +++ b/examples/extended/analysis/AnaEx02/shared/src/EventAction.cc @@ -28,7 +28,7 @@ // // // -// +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -43,30 +43,25 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... EventAction::EventAction(RunAction* run, HistoManager* histo) -:G4UserEventAction(), - fRunAct(run),fHistoManager(histo), - fEnergyAbs(0.), fEnergyGap(0.), - fTrackLAbs(0.), fTrackLGap(0.), - fPrintModulo(0) -{ - fPrintModulo = 100; } +: fRunAct(run),fHistoManager(histo) +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::~EventAction() -{ } +EventAction::~EventAction() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void EventAction::BeginOfEventAction(const G4Event* evt) -{ +{ G4int evtNb = evt->GetEventID(); - if (evtNb%fPrintModulo == 0) + if (evtNb%fPrintModulo == 0) { G4cout << "\n---> Begin of event: " << evtNb << G4endl; - - // initialisation per event - fEnergyAbs = fEnergyGap = 0.; - fTrackLAbs = fTrackLGap = 0.; + } + + // initialisation per event + fEnergyAbs = fEnergyGap = 0.; + fTrackLAbs = fTrackLGap = 0.; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -76,17 +71,17 @@ void EventAction::EndOfEventAction(const G4Event*) //accumulates statistic // fRunAct->FillPerEvent(fEnergyAbs, fEnergyGap, fTrackLAbs, fTrackLGap); - + //fill histograms // fHistoManager->FillHisto(0, fEnergyAbs); fHistoManager->FillHisto(1, fEnergyGap); fHistoManager->FillHisto(2, fTrackLAbs); fHistoManager->FillHisto(3, fTrackLGap); - + //fill ntuple // fHistoManager->FillNtuple(fEnergyAbs, fEnergyGap, fTrackLAbs, fTrackLGap); -} +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx02/shared/src/PrimaryGeneratorAction.cc b/examples/extended/analysis/AnaEx02/shared/src/PrimaryGeneratorAction.cc index 779587b9bd..3e80341794 100644 --- a/examples/extended/analysis/AnaEx02/shared/src/PrimaryGeneratorAction.cc +++ b/examples/extended/analysis/AnaEx02/shared/src/PrimaryGeneratorAction.cc @@ -25,10 +25,7 @@ // /// \file PrimaryGeneratorAction.cc /// \brief Implementation of the PrimaryGeneratorAction class -// -// -// -// + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -44,10 +41,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* DC) -: G4VUserPrimaryGeneratorAction(), - fParticleGun(0), - fDetector(DC) +PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* dc) +: fDetector(dc) { G4int n_particle = 1; fParticleGun = new G4ParticleGun(n_particle); @@ -56,8 +51,7 @@ PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* DC) G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); G4String particleName; - G4ParticleDefinition* particle - = particleTable->FindParticle(particleName="e-"); + G4ParticleDefinition* particle = particleTable->FindParticle(particleName="e-"); fParticleGun->SetParticleDefinition(particle); fParticleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); fParticleGun->SetParticleEnergy(500.*MeV); @@ -78,7 +72,7 @@ PrimaryGeneratorAction::~PrimaryGeneratorAction() void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { //this function is called at the begining of event - // + // fParticleGun->GeneratePrimaryVertex(anEvent); } diff --git a/examples/extended/analysis/AnaEx02/shared/src/RunAction.cc b/examples/extended/analysis/AnaEx02/shared/src/RunAction.cc index 5ddaf26430..9ae0771d84 100644 --- a/examples/extended/analysis/AnaEx02/shared/src/RunAction.cc +++ b/examples/extended/analysis/AnaEx02/shared/src/RunAction.cc @@ -36,101 +36,136 @@ #include "G4Run.hh" #include "G4RunManager.hh" +#include "G4AccumulableManager.hh" #include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RunAction::RunAction(HistoManager* histo) -: G4UserRunAction(), - fHistoManager(histo), - fSumEAbs(0.), fSum2EAbs(0.), - fSumEGap(0.), fSum2EGap(0.), - fSumLAbs(0.), fSum2LAbs(0.), - fSumLGap(0.), fSum2LGap(0.) -{} +: fHistoManager(histo) +{ + // Register accumulable to the accumulable manager + G4AccumulableManager* accumulableManager = G4AccumulableManager::Instance(); + accumulableManager->RegisterAccumulable(fSumEAbs); + accumulableManager->RegisterAccumulable(fSum2EAbs); + accumulableManager->RegisterAccumulable(fSumEGap); + accumulableManager->RegisterAccumulable(fSum2EGap); + accumulableManager->RegisterAccumulable(fSumLAbs); + accumulableManager->RegisterAccumulable(fSum2LAbs); + accumulableManager->RegisterAccumulable(fSumLGap); + accumulableManager->RegisterAccumulable(fSum2LGap); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::~RunAction() -{} +RunAction::~RunAction() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void RunAction::BeginOfRunAction(const G4Run* aRun) -{ +{ G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; - - //initialize cumulative quantities - // - fSumEAbs = fSum2EAbs =fSumEGap = fSum2EGap = 0.; - fSumLAbs = fSum2LAbs =fSumLGap = fSum2LGap = 0.; - + + // reset accumulables to their initial values + G4AccumulableManager::Instance()->Reset(); + //histograms // - fHistoManager->Book(); + fHistoManager->Book(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void RunAction::FillPerEvent(G4double EAbs, G4double EGap, - G4double LAbs, G4double LGap) + G4double LAbs, G4double LGap) { //accumulate statistic // fSumEAbs += EAbs; fSum2EAbs += EAbs*EAbs; fSumEGap += EGap; fSum2EGap += EGap*EGap; - + fSumLAbs += LAbs; fSum2LAbs += LAbs*LAbs; - fSumLGap += LGap; fSum2LGap += LGap*LGap; + fSumLGap += LGap; fSum2LGap += LGap*LGap; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void RunAction::EndOfRunAction(const G4Run* aRun) { - G4int NbOfEvents = aRun->GetNumberOfEvent(); - if (NbOfEvents == 0) return; - + // Merge accumulables + G4AccumulableManager::Instance()->Merge(); + + G4int nofEvents = aRun->GetNumberOfEvent(); + if (nofEvents == 0) { + // close open files + fHistoManager->Save(); + return; + } + //compute statistics: mean and rms // - fSumEAbs /= NbOfEvents; fSum2EAbs /= NbOfEvents; - G4double rmsEAbs = fSum2EAbs - fSumEAbs*fSumEAbs; - if (rmsEAbs >0.) rmsEAbs = std::sqrt(rmsEAbs); else rmsEAbs = 0.; - - fSumEGap /= NbOfEvents; fSum2EGap /= NbOfEvents; - G4double rmsEGap = fSum2EGap - fSumEGap*fSumEGap; - if (rmsEGap >0.) rmsEGap = std::sqrt(rmsEGap); else rmsEGap = 0.; - - fSumLAbs /= NbOfEvents; fSum2LAbs /= NbOfEvents; - G4double rmsLAbs = fSum2LAbs - fSumLAbs*fSumLAbs; - if (rmsLAbs >0.) rmsLAbs = std::sqrt(rmsLAbs); else rmsLAbs = 0.; - - fSumLGap /= NbOfEvents; fSum2LGap /= NbOfEvents; - G4double rmsLGap = fSum2LGap - fSumLGap*fSumLGap; - if (rmsLGap >0.) rmsLGap = std::sqrt(rmsLGap); else rmsLGap = 0.; - + auto sumEAbs = fSumEAbs.GetValue(); + auto sum2EAbs = fSum2EAbs.GetValue(); + sumEAbs /= nofEvents; sum2EAbs /= nofEvents; + auto rmsEAbs = sum2EAbs - sumEAbs*sumEAbs; + if (rmsEAbs >0.) { + rmsEAbs = std::sqrt(rmsEAbs); + } else { + rmsEAbs = 0.; + } + + auto sumEGap = fSumEGap.GetValue(); + auto sum2EGap = fSum2EGap.GetValue(); + sumEGap /= nofEvents; sum2EGap /= nofEvents; + auto rmsEGap = sum2EGap - sumEGap*sumEGap; + if (rmsEGap >0.) { + rmsEGap = std::sqrt(rmsEGap); + } else { + rmsEGap = 0.; + } + + auto sumLAbs = fSumLAbs.GetValue(); + auto sum2LAbs = fSum2LAbs.GetValue(); + sumLAbs /= nofEvents; sum2LAbs /= nofEvents; + auto rmsLAbs = sum2LAbs - sumLAbs*sumLAbs; + if (rmsLAbs >0.) { + rmsLAbs = std::sqrt(rmsLAbs); + } else { + rmsLAbs = 0.; + } + + auto sumLGap = fSumLGap.GetValue(); + auto sum2LGap = fSum2LGap.GetValue(); + sumLGap /= nofEvents; sum2LGap /= nofEvents; + G4double rmsLGap = sum2LGap - sumLGap*sumLGap; + if (rmsLGap >0.) { + rmsLGap = std::sqrt(rmsLGap); + } else { + rmsLGap = 0.; + } + //print // G4cout << "\n--------------------End of Run------------------------------\n" - << "\n mean Energy in Absorber : " << G4BestUnit(fSumEAbs,"Energy") - << " +- " << G4BestUnit(rmsEAbs,"Energy") - << "\n mean Energy in Gap : " << G4BestUnit(fSumEGap,"Energy") + << "\n mean Energy in Absorber : " << G4BestUnit(sumEAbs,"Energy") + << " +- " << G4BestUnit(rmsEAbs,"Energy") + << "\n mean Energy in Gap : " << G4BestUnit(sumEGap,"Energy") << " +- " << G4BestUnit(rmsEGap,"Energy") << G4endl; - + G4cout - << "\n mean trackLength in Absorber : " << G4BestUnit(fSumLAbs,"Length") - << " +- " << G4BestUnit(rmsLAbs,"Length") - << "\n mean trackLength in Gap : " << G4BestUnit(fSumLGap,"Length") + << "\n mean trackLength in Absorber : " << G4BestUnit(sumLAbs,"Length") + << " +- " << G4BestUnit(rmsLAbs,"Length") + << "\n mean trackLength in Gap : " << G4BestUnit(sumLGap,"Length") << " +- " << G4BestUnit(rmsLGap,"Length") << "\n------------------------------------------------------------\n" << G4endl; - + //save histograms // fHistoManager->PrintStatistic(); - fHistoManager->Save(); + fHistoManager->Save(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx02/shared/src/SteppingAction.cc b/examples/extended/analysis/AnaEx02/shared/src/SteppingAction.cc index 8363ef6709..ec8d92a988 100644 --- a/examples/extended/analysis/AnaEx02/shared/src/SteppingAction.cc +++ b/examples/extended/analysis/AnaEx02/shared/src/SteppingAction.cc @@ -25,10 +25,7 @@ // /// \file SteppingAction.cc /// \brief Implementation of the SteppingAction class -// -// -// -// + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,34 +38,32 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::SteppingAction(DetectorConstruction* det, - EventAction* evt) -: G4UserSteppingAction(), - fDetector(det), fEventAction(evt) -{ } +SteppingAction::SteppingAction(DetectorConstruction* det, EventAction* evt) +: fDetector(det), fEventAction(evt) +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::~SteppingAction() -{ } +SteppingAction::~SteppingAction() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void SteppingAction::UserSteppingAction(const G4Step* aStep) { // get volume of the current step - G4VPhysicalVolume* volume - = aStep->GetPreStepPoint()->GetTouchableHandle()->GetVolume(); - + G4VPhysicalVolume* volume = + aStep->GetPreStepPoint()->GetTouchableHandle()->GetVolume(); + // collect energy and track length step by step G4double edep = aStep->GetTotalEnergyDeposit(); - + G4double stepl = 0.; - if (aStep->GetTrack()->GetDefinition()->GetPDGCharge() != 0.) + if (aStep->GetTrack()->GetDefinition()->GetPDGCharge() != 0.) { stepl = aStep->GetStepLength(); - - if (volume == fDetector->GetAbsorber()) fEventAction->AddAbs(edep,stepl); - if (volume == fDetector->GetGap()) fEventAction->AddGap(edep,stepl); + } + + if (volume == fDetector->GetAbsorber()) { fEventAction->AddAbs(edep,stepl); } + if (volume == fDetector->GetGap()) { fEventAction->AddGap(edep,stepl); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx02/src/HistoManager.cc b/examples/extended/analysis/AnaEx02/src/HistoManager.cc index 2b528c4b43..0506a46577 100644 --- a/examples/extended/analysis/AnaEx02/src/HistoManager.cc +++ b/examples/extended/analysis/AnaEx02/src/HistoManager.cc @@ -26,7 +26,7 @@ /// \file analysis/AnaEx02/src/HistoManager.cc /// \brief Implementation of the HistoManager class // -// +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,42 +41,35 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... HistoManager::HistoManager() -:fRootFile(0), - fNtuple1(0), fNtuple2(0), - fEabs(0.), fEgap(0.) ,fLabs(0.), fLgap(0.) { - - // histograms - for (G4int k=0; kBranch("Eabs", &fEabs, "Eabs/D"); fNtuple1->Branch("Egap", &fEgap, "Egap/D"); - // create 2nd ntuple + // create 2nd ntuple fNtuple2 = new TTree("Ntuple2", "TrackL"); fNtuple2->Branch("Labs", &fLabs, "Labs/D"); fNtuple2->Branch("Lgap", &fLgap, "Lgap/D"); - + G4cout << "\n----> Output file is open in " << fileName << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void HistoManager::Save() -{ - if (! fRootFile) return; - +{ + if (fRootFile == nullptr) { return; +} + fRootFile->Write(); // Writing the histograms to the file fRootFile->Close(); // and closing the tree (and the file) - + G4cout << "\n----> Histograms and ntuples are saved\n" << G4endl; } @@ -125,7 +121,7 @@ void HistoManager::FillHisto(G4int ih, G4double xbin, G4double weight) << G4endl; return; } - if (fHisto[ih]) { fHisto[ih]->Fill(xbin, weight); } + if (fHisto[ih] != nullptr) { fHisto[ih]->Fill(xbin, weight); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -137,7 +133,9 @@ void HistoManager::Normalize(G4int ih, G4double fac) << " does not exist. (fac=" << fac << ")" << G4endl; return; } - if (fHisto[ih]) fHisto[ih]->Scale(fac); + if (fHisto[ih] != nullptr) { + fHisto[ih]->Scale(fac); + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -150,8 +148,8 @@ void HistoManager::FillNtuple(G4double energyAbs, G4double energyGap, fLabs = trackLAbs; fLgap = trackLGap; - if (fNtuple1) fNtuple1->Fill(); - if (fNtuple2) fNtuple2->Fill(); + if (fNtuple1 != nullptr) { fNtuple1->Fill(); } + if (fNtuple2 != nullptr) { fNtuple2->Fill(); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -159,17 +157,16 @@ void HistoManager::FillNtuple(G4double energyAbs, G4double energyGap, void HistoManager::PrintStatistic() { G4cout << "\n ----> print histograms statistic \n" << G4endl; - for ( G4int i=0; iGetName(); + for (auto h1 : fHisto) { + const G4String name = h1->GetName(); G4String unitCategory; - if (name[0] == 'E' ) unitCategory = "Energy"; - if (name[0] == 'L' ) unitCategory = "Length"; + if (name[0] == 'E' ) { unitCategory = "Energy"; } + if (name[0] == 'L' ) { unitCategory = "Length"; } G4cout << name - << ": mean = " << G4BestUnit(h1->GetMean(), unitCategory) - << " rms = " << G4BestUnit(h1->GetRMS(), unitCategory ) + << ": mean = " << G4BestUnit(h1->GetMean(), unitCategory) + << " rms = " << G4BestUnit(h1->GetRMS(), unitCategory ) << G4endl; } } diff --git a/examples/extended/analysis/AnaEx03/.README.txt b/examples/extended/analysis/AnaEx03/.README.txt new file mode 100644 index 0000000000..77a6246e46 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/.README.txt @@ -0,0 +1,96 @@ + +///\file "analysis/AnaEx03/.README.txt" +///\brief Example AnaEx03 README page + +/*! \page ExampleAnaEx03 Example AnaEx03 + + Example AnaEx03 demonstrates usage of analysis commands for file management + (new since Geant4 11.1), in particular writing histograms and ntuples in a file + multiple times. + + It uses the same scenario (detector description, primary generator + and physics) as \link ExampleAnaEx01 AnaEx01 \endlink and \link ExampleAnaEx02 AnaEx02 \endlink. + In difference from these examples + the analysis manipulations (histograms and ntuples booking and filling) + are performed directly with G4AnalysisManager. The classes that are same + in all three examples are located in shared directory. + + For detector description, primary generator, physics and the example output + see \link ExampleAnaEx01 README in AnaEx01 \endlink example. + + \section AnaEx03_s1 Histograms, Ntuple: + + The example produces the same 4 histograms and 2 ntuples as in AnaEx01. + + These histos and ntuples are booked in the RunAction constructor and filled from + EventAction. + + The file managent in this example, usually performed via calls to G4AnalysisManager + OpenFile(), Write() and CloseFile() in the code, is in this example performed + via UI commands in a macro: +\verbatim +/analysis/openFile +/analysis/write +/analysis/closeFile +\endverbatim + + Note that the file does not need to be closed at each end of run and the histograms and ntuples + can be saved in the same file multiple time. In that case we need to reset the histograms + and ntuples data before a new run: +\verbatim +/analysis/reset +\endverbatim + + We can define the default file type and set it to the analysis manager via +\verbatim +/analysis/setDefaultFileType root # or csv hdf5 xml +\endverbatim + + The file names then need not to be provided with the file extension and the same macro + can be used with different output types. + + It should be notes that using UI commands for writing histograms and ntuples in a file + multiple times is not necessary, the same can be achieved by calls to G4AnalysisManager + functions from the code using conditional statements. + + \section AnaEx03_s2 Macros + + - The AnaEx03.in macro performs 5 runs and produces 2 files: e-.root, containg data from first + 3 runs, and proton.root, containing data from the next 2 runs. + The macro uses the defaultFileType parameter (alias), which default value, "root" is + defined in main. + + - AnaEx03-csv.in, AnaEx03-hdf5.in, AnaEx03-root.in, AnaEx03-xml.in: + In these macros, the default value of the defaultFileType is overritten with +\verbatim +/control/alias defaultFileType cvs # or hdf5 root xml +\endverbatim + and then the AnaEx03.in macro is called. + + + \section AnaEx03_s3 How to run + + - It is preferable to execute the exampole in the 'batch' mode from macro files: +\verbatim +% ./AnaEx03 AnaEx03.in +% ./AnaEx03 AnaEx03.in >& output +\endverbatim + + - When executing AnaEx03 in the 'interactive mode' with visualization, be careful not + to forget to issue the /analysis/openFile command befor starting a run: +\verbatim +% ./AnaEx03 +and type in the commands from AnaEx03[-xyz].mac line by line: + Idle> /analysis/openFile myFile + Idle> /tracking/verbose 1 + Idle> /run/beamOn 10 + Idle> ... + Idle> /analysis/write + Idle> /analysis/closeFile + .... + Idle> exit +\endverbatim + +All AnaEx03-*.in macros are used in Geant4 testing. + +*/ diff --git a/examples/extended/analysis/AnaEx03/AnaEx03-csv.in b/examples/extended/analysis/AnaEx03/AnaEx03-csv.in new file mode 100644 index 0000000000..b8b4ce2a4b --- /dev/null +++ b/examples/extended/analysis/AnaEx03/AnaEx03-csv.in @@ -0,0 +1,8 @@ +# +# Macro file for the test of AnaEx03 example +# with csv file type +# + +/control/alias defaultFileType csv + +/control/execute AnaEx03.in diff --git a/examples/extended/analysis/AnaEx03/AnaEx03-csv.out b/examples/extended/analysis/AnaEx03/AnaEx03-csv.out new file mode 100644 index 0000000000..4e5518bcc1 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/AnaEx03-csv.out @@ -0,0 +1,1170 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + + +***** Table : Nb of materials = 3 ***** + + Material: G4_Galactic density: 0.000 mg/cm3 RadL: 204310098.490 pc Nucl.Int.Length: 113427284.261 pc + Imean: 21.800 eV temperature: 2.73 K pressure: 0.00 atm + + ---> Element: H (H) Z = 1.0 N = 1 A = 1.008 g/mole + ---> Isotope: H1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.989 % + ---> Isotope: H2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.011 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.248 cm + Imean: 823.000 eV temperature: 293.15 K pressure: 1.00 atm + + ---> Element: Pb (Pb) Z = 82.0 N = 207 A = 207.217 g/mole + ---> Isotope: Pb204 Z = 82 N = 204 A = 203.97 g/mole abundance: 1.400 % + ---> Isotope: Pb206 Z = 82 N = 206 A = 205.97 g/mole abundance: 24.100 % + ---> Isotope: Pb207 Z = 82 N = 207 A = 206.98 g/mole abundance: 22.100 % + ---> Isotope: Pb208 Z = 82 N = 208 A = 207.98 g/mole abundance: 52.400 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + Material: G4_lAr density: 1.396 g/cm3 RadL: 14.003 cm Nucl.Int.Length: 85.706 cm + Imean: 188.000 eV temperature: 293.15 K pressure: 1.00 atm + + ---> Element: Ar (Ar) Z = 18.0 N = 40 A = 39.948 g/mole + ---> Isotope: Ar36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.337 % + ---> Isotope: Ar38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.063 % + ---> Isotope: Ar40 Z = 18 N = 40 A = 39.96 g/mole abundance: 99.600 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + +<<< Geant4 Physics List simulation engine: FTFP_BERT + +Visualization Manager instantiating with verbosity "warnings (3)"... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully registered the following graphics systems. +Registered graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML2FILE (VRML2FILE) + gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) + OpenGLImmediateQt (OGLIQt, OGLI) + OpenGLStoredQt (OGLSQt, OGL, OGLS) + OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) + OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK) + OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK) + OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK) + RayTracerX (RayTracerX) + Qt3D (Qt3D) + TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK) + TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK) + TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG) + +Registering model factories... + +You have successfully registered the following model factories. +Registered model factories: + generic + drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByEncounteredVolume + +Registered models: + None + +Registered filter factories: + attributeFilter + chargeFilter + originVolumeFilter + particleFilter + encounteredVolumeFilter + +Registered filters: + None + +You have successfully registered the following user vis actions. +Run Duration User Vis Actions: none +End of Event User Vis Actions: none +End of Run User Vis Actions: none + +Some /vis commands (optionally) take a string to specify colour. +"/vis/list" to see available colours. + +------------------------------------------------------------ +---> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of G4_lAr ] +------------------------------------------------------------ + + hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval + for pions : 3 to 6 GeV + for kaons : 3 to 6 GeV + for proton : 3 to 6 GeV + for neutron : 3 to 6 GeV + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 +... open analysis file : e-.csv - done +... create file : ./ntuple/e-_nt_Ntuple1.csv - done +... create file : ./ntuple/e-_nt_Ntuple2.csv - done +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 7 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 1 mm) +Step function for muons/hadrons (0.2, 0.1 mm) +Step function for light ions (0.2, 0.1 mm) +Step function for general ions (0.2, 0.1 mm) +Lowest e+e- kinetic energy 1 keV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 0 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 0 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 0 eV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 1 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 0 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.04 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 1 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 0 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 61 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 56 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Klein-Nishina : Emin= 0 eV Emax= 100 TeV + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + Stopping Power data for 17 ion/material pairs + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + + Process: nKiller + +--------------------------------------------------- + Hadronic Processes for B- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: B-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for D- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: D-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_He3Inelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_alphaInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_deuteronInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: anti_lambdaInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_neutronInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_protonInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_tritonInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: dInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for e+ + + Process: positronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for e- + + Process: electronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: GammaNPreco: 0 eV ---> 200 MeV + Model: BertiniCascade: 199 MeV ---> 6 GeV + Model: TheoFSGenerator: 3 GeV ---> 100 TeV + Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: lambdaInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu+ + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + + Process: muMinusCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: protonInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for sigma- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: sigma-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: tInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +================================================================ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Pre-compound model active 1 +Pre-compound excitation low energy 100 keV +Pre-compound excitation high energy 30 MeV +Type of de-excitation inverse x-section 3 +Type of de-excitation factory Evaporation+GEM +Number of de-excitation channels 68 +Min excitation energy 10 eV +Min energy per nucleon for multifragmentation 200 GeV +Limit excitation energy for Fermi BreakUp 20 MeV +Level density (1/MeV) 0.075 +Use simple level density model 1 +Use discrete excitation energy of the residual 1 +Time limit for long lived isomeres 1 ns +Isomer production flag 1 +Internal e- conversion flag 1 +Store e- internal conversion data 0 +Correlated gamma emission flag 0 +Max 2J for sampling of angular correlations 10 +======================================================================= +G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. +See commands in /vis/modeling/trajectories/ for other options. +### Run 0 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 90.5308 MeV rms = 6.0806 MeV +EGap: mean = 3.64449 MeV rms = 2.14406 MeV +LAbs: mean = 6.56523 cm rms = 5.55053 mm +LGap: mean = 1.78048 cm rms = 1.0768 cm +There are 4 h1 histograms + 0 with 10 entries: Edep in absorber (MeV) + 1 with 10 entries: Edep in gap (MeV) + 2 with 10 entries: trackL in absorber (mm) + 3 with 10 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... create file : ./histo/e-_h1_EAbs.csv - done +... create file : ./histo/e-_h1_EGap.csv - done +... create file : ./histo/e-_h1_LAbs.csv - done +... create file : ./histo/e-_h1_LGap.csv - done +... write file : ./histo/e-_h1_EAbs.csv - done +... write file : ./histo/e-_h1_EGap.csv - done +... write file : ./histo/e-_h1_LAbs.csv - done +... write file : ./histo/e-_h1_LGap.csv - done +... write file : ./ntuple/e-_nt_Ntuple1.csv - done +... write file : ./ntuple/e-_nt_Ntuple2.csv - done +### Run 1 start. + +---> Begin of event: 0 +... create file : ./ntuple/e-_nt_Ntuple1_v1.csv - done +... create file : ./ntuple/e-_nt_Ntuple2_v1.csv - done + + ----> print histograms statistic + +EAbs: mean = 179.468 MeV rms = 10.6369 MeV +EGap: mean = 9.19591 MeV rms = 5.07079 MeV +LAbs: mean = 12.938 cm rms = 8.44399 mm +LGap: mean = 4.536 cm rms = 2.64611 cm +There are 4 h1 histograms + 0 with 20 entries: Edep in absorber (MeV) + 1 with 20 entries: Edep in gap (MeV) + 2 with 20 entries: trackL in absorber (mm) + 3 with 20 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... create file : ./histo/e-_h1_EAbs_v1.csv - done +... create file : ./histo/e-_h1_EGap_v1.csv - done +... create file : ./histo/e-_h1_LAbs_v1.csv - done +... create file : ./histo/e-_h1_LGap_v1.csv - done +... write file : ./histo/e-_h1_EAbs.csv - done +... write file : ./histo/e-_h1_EAbs_v1.csv - done +... write file : ./histo/e-_h1_EGap.csv - done +... write file : ./histo/e-_h1_EGap_v1.csv - done +... write file : ./histo/e-_h1_LAbs.csv - done +... write file : ./histo/e-_h1_LAbs_v1.csv - done +... write file : ./histo/e-_h1_LGap.csv - done +... write file : ./histo/e-_h1_LGap_v1.csv - done +... write file : ./ntuple/e-_nt_Ntuple1.csv - done +... write file : ./ntuple/e-_nt_Ntuple1_v1.csv - done +... write file : ./ntuple/e-_nt_Ntuple2.csv - done +... write file : ./ntuple/e-_nt_Ntuple2_v1.csv - done +### Run 2 start. + +---> Begin of event: 0 +... create file : ./ntuple/e-_nt_Ntuple1_v2.csv - done +... create file : ./ntuple/e-_nt_Ntuple2_v2.csv - done + + ----> print histograms statistic + +EAbs: mean = 272.05 MeV rms = 9.23393 MeV +EGap: mean = 14.0337 MeV rms = 5.20653 MeV +LAbs: mean = 19.596 cm rms = 7.90909 mm +LGap: mean = 6.90508 cm rms = 2.73617 cm +There are 4 h1 histograms + 0 with 30 entries: Edep in absorber (MeV) + 1 with 30 entries: Edep in gap (MeV) + 2 with 30 entries: trackL in absorber (mm) + 3 with 30 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... create file : ./histo/e-_h1_EAbs_v2.csv - done +... create file : ./histo/e-_h1_EGap_v2.csv - done +... create file : ./histo/e-_h1_LAbs_v2.csv - done +... create file : ./histo/e-_h1_LGap_v2.csv - done +... write file : ./histo/e-_h1_EAbs.csv - done +... write file : ./histo/e-_h1_EAbs_v1.csv - done +... write file : ./histo/e-_h1_EAbs_v2.csv - done +... write file : ./histo/e-_h1_EGap.csv - done +... write file : ./histo/e-_h1_EGap_v1.csv - done +... write file : ./histo/e-_h1_EGap_v2.csv - done +... write file : ./histo/e-_h1_LAbs.csv - done +... write file : ./histo/e-_h1_LAbs_v1.csv - done +... write file : ./histo/e-_h1_LAbs_v2.csv - done +... write file : ./histo/e-_h1_LGap.csv - done +... write file : ./histo/e-_h1_LGap_v1.csv - done +... write file : ./histo/e-_h1_LGap_v2.csv - done +... write file : ./ntuple/e-_nt_Ntuple1.csv - done +... write file : ./ntuple/e-_nt_Ntuple1_v1.csv - done +... write file : ./ntuple/e-_nt_Ntuple1_v2.csv - done +... write file : ./ntuple/e-_nt_Ntuple2.csv - done +... write file : ./ntuple/e-_nt_Ntuple2_v1.csv - done +... write file : ./ntuple/e-_nt_Ntuple2_v2.csv - done +... close file : ./histo/e-_h1_EAbs.csv - done +... close file : ./histo/e-_h1_EAbs_v1.csv - done +... close file : ./histo/e-_h1_EAbs_v2.csv - done +... close file : ./histo/e-_h1_EGap.csv - done +... close file : ./histo/e-_h1_EGap_v1.csv - done +... close file : ./histo/e-_h1_EGap_v2.csv - done +... close file : ./histo/e-_h1_LAbs.csv - done +... close file : ./histo/e-_h1_LAbs_v1.csv - done +... close file : ./histo/e-_h1_LAbs_v2.csv - done +... close file : ./histo/e-_h1_LGap.csv - done +... close file : ./histo/e-_h1_LGap_v1.csv - done +... close file : ./histo/e-_h1_LGap_v2.csv - done +... close file : ./ntuple/e-_nt_Ntuple1.csv - done +... close file : ./ntuple/e-_nt_Ntuple1_v1.csv - done +... close file : ./ntuple/e-_nt_Ntuple1_v2.csv - done +... close file : ./ntuple/e-_nt_Ntuple2.csv - done +... close file : ./ntuple/e-_nt_Ntuple2_v1.csv - done +... close file : ./ntuple/e-_nt_Ntuple2_v2.csv - done +... open analysis file : proton.csv - done +... create file : ./ntuple/proton_nt_Ntuple1.csv - done +... create file : ./ntuple/proton_nt_Ntuple2.csv - done +### Run 3 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 199.356 MeV rms = 50.7758 MeV +EGap: mean = 19.0703 MeV rms = 8.10234 MeV +LAbs: mean = 8.63977 cm rms = 2.54192 cm +LGap: mean = 4.44924 cm rms = 1.40914 cm +There are 4 h1 histograms + 0 with 40 entries: Edep in absorber (MeV) + 1 with 40 entries: Edep in gap (MeV) + 2 with 40 entries: trackL in absorber (mm) + 3 with 40 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... create file : ./histo/proton_h1_EAbs.csv - done +... create file : ./histo/proton_h1_EGap.csv - done +... create file : ./histo/proton_h1_LAbs.csv - done +... create file : ./histo/proton_h1_LGap.csv - done +... write file : ./histo/proton_h1_EAbs.csv - done +... write file : ./histo/proton_h1_EGap.csv - done +... write file : ./histo/proton_h1_LAbs.csv - done +... write file : ./histo/proton_h1_LGap.csv - done +... write file : ./ntuple/proton_nt_Ntuple1.csv - done +... write file : ./ntuple/proton_nt_Ntuple2.csv - done +### Run 4 start. + +---> Begin of event: 0 +... create file : ./ntuple/proton_nt_Ntuple1_v1.csv - done +... create file : ./ntuple/proton_nt_Ntuple2_v1.csv - done + + ----> print histograms statistic + +EAbs: mean = 192.132 MeV rms = 64.2554 MeV +EGap: mean = 17.8005 MeV rms = 12.5426 MeV +LAbs: mean = 8.82292 cm rms = 2.51538 cm +LGap: mean = 4.4112 cm rms = 1.63167 cm +There are 4 h1 histograms + 0 with 50 entries: Edep in absorber (MeV) + 1 with 50 entries: Edep in gap (MeV) + 2 with 50 entries: trackL in absorber (mm) + 3 with 50 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... create file : ./histo/proton_h1_EAbs_v1.csv - done +... create file : ./histo/proton_h1_EGap_v1.csv - done +... create file : ./histo/proton_h1_LAbs_v1.csv - done +... create file : ./histo/proton_h1_LGap_v1.csv - done +... write file : ./histo/proton_h1_EAbs.csv - done +... write file : ./histo/proton_h1_EAbs_v1.csv - done +... write file : ./histo/proton_h1_EGap.csv - done +... write file : ./histo/proton_h1_EGap_v1.csv - done +... write file : ./histo/proton_h1_LAbs.csv - done +... write file : ./histo/proton_h1_LAbs_v1.csv - done +... write file : ./histo/proton_h1_LGap.csv - done +... write file : ./histo/proton_h1_LGap_v1.csv - done +... write file : ./ntuple/proton_nt_Ntuple1.csv - done +... write file : ./ntuple/proton_nt_Ntuple1_v1.csv - done +... write file : ./ntuple/proton_nt_Ntuple2.csv - done +... write file : ./ntuple/proton_nt_Ntuple2_v1.csv - done +... close file : ./histo/proton_h1_EAbs.csv - done +... close file : ./histo/proton_h1_EAbs_v1.csv - done +... close file : ./histo/proton_h1_EGap.csv - done +... close file : ./histo/proton_h1_EGap_v1.csv - done +... close file : ./histo/proton_h1_LAbs.csv - done +... close file : ./histo/proton_h1_LAbs_v1.csv - done +... close file : ./histo/proton_h1_LGap.csv - done +... close file : ./histo/proton_h1_LGap_v1.csv - done +... close file : ./ntuple/proton_nt_Ntuple1.csv - done +... close file : ./ntuple/proton_nt_Ntuple1_v1.csv - done +... close file : ./ntuple/proton_nt_Ntuple2.csv - done +... close file : ./ntuple/proton_nt_Ntuple2_v1.csv - done +Graphics systems deleted. +Visualization Manager deleting... diff --git a/examples/extended/analysis/AnaEx03/AnaEx03-hdf5.in b/examples/extended/analysis/AnaEx03/AnaEx03-hdf5.in new file mode 100644 index 0000000000..9c2e35dcd3 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/AnaEx03-hdf5.in @@ -0,0 +1,8 @@ +# +# Macro file for the test of AnaEx03 example +# with hdf5 file type +# + +/control/alias defaultFileType hdf5 + +/control/execute AnaEx03.in diff --git a/examples/extended/analysis/AnaEx03/AnaEx03-hdf5.out b/examples/extended/analysis/AnaEx03/AnaEx03-hdf5.out new file mode 100644 index 0000000000..10961cdbd9 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/AnaEx03-hdf5.out @@ -0,0 +1,1065 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + + +***** Table : Nb of materials = 3 ***** + + Material: G4_Galactic density: 0.000 mg/cm3 RadL: 204310098.490 pc Nucl.Int.Length: 113427284.261 pc + Imean: 21.800 eV temperature: 2.73 K pressure: 0.00 atm + + ---> Element: H (H) Z = 1.0 N = 1 A = 1.008 g/mole + ---> Isotope: H1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.989 % + ---> Isotope: H2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.011 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.248 cm + Imean: 823.000 eV temperature: 293.15 K pressure: 1.00 atm + + ---> Element: Pb (Pb) Z = 82.0 N = 207 A = 207.217 g/mole + ---> Isotope: Pb204 Z = 82 N = 204 A = 203.97 g/mole abundance: 1.400 % + ---> Isotope: Pb206 Z = 82 N = 206 A = 205.97 g/mole abundance: 24.100 % + ---> Isotope: Pb207 Z = 82 N = 207 A = 206.98 g/mole abundance: 22.100 % + ---> Isotope: Pb208 Z = 82 N = 208 A = 207.98 g/mole abundance: 52.400 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + Material: G4_lAr density: 1.396 g/cm3 RadL: 14.003 cm Nucl.Int.Length: 85.706 cm + Imean: 188.000 eV temperature: 293.15 K pressure: 1.00 atm + + ---> Element: Ar (Ar) Z = 18.0 N = 40 A = 39.948 g/mole + ---> Isotope: Ar36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.337 % + ---> Isotope: Ar38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.063 % + ---> Isotope: Ar40 Z = 18 N = 40 A = 39.96 g/mole abundance: 99.600 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + +<<< Geant4 Physics List simulation engine: FTFP_BERT + +Visualization Manager instantiating with verbosity "warnings (3)"... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully registered the following graphics systems. +Registered graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML2FILE (VRML2FILE) + gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) + OpenGLImmediateQt (OGLIQt, OGLI) + OpenGLStoredQt (OGLSQt, OGL, OGLS) + OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) + OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK) + OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK) + OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK) + RayTracerX (RayTracerX) + Qt3D (Qt3D) + TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK) + TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK) + TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG) + +Registering model factories... + +You have successfully registered the following model factories. +Registered model factories: + generic + drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByEncounteredVolume + +Registered models: + None + +Registered filter factories: + attributeFilter + chargeFilter + originVolumeFilter + particleFilter + encounteredVolumeFilter + +Registered filters: + None + +You have successfully registered the following user vis actions. +Run Duration User Vis Actions: none +End of Event User Vis Actions: none +End of Run User Vis Actions: none + +Some /vis commands (optionally) take a string to specify colour. +"/vis/list" to see available colours. + +------------------------------------------------------------ +---> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of G4_lAr ] +------------------------------------------------------------ + + hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval + for pions : 3 to 6 GeV + for kaons : 3 to 6 GeV + for proton : 3 to 6 GeV + for neutron : 3 to 6 GeV + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 +... create file : e-.hdf5 - done +... open analysis file : e-.hdf5 - done +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 7 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 1 mm) +Step function for muons/hadrons (0.2, 0.1 mm) +Step function for light ions (0.2, 0.1 mm) +Step function for general ions (0.2, 0.1 mm) +Lowest e+e- kinetic energy 1 keV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 0 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 0 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 0 eV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 1 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 0 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.04 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 1 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 0 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 61 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 56 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Klein-Nishina : Emin= 0 eV Emax= 100 TeV + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + Stopping Power data for 17 ion/material pairs + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + + Process: nKiller + +--------------------------------------------------- + Hadronic Processes for B- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: B-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for D- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: D-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_He3Inelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_alphaInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_deuteronInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: anti_lambdaInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_neutronInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_protonInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_tritonInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: dInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for e+ + + Process: positronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for e- + + Process: electronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: GammaNPreco: 0 eV ---> 200 MeV + Model: BertiniCascade: 199 MeV ---> 6 GeV + Model: TheoFSGenerator: 3 GeV ---> 100 TeV + Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: lambdaInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu+ + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + + Process: muMinusCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: protonInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for sigma- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: sigma-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: tInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +================================================================ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Pre-compound model active 1 +Pre-compound excitation low energy 100 keV +Pre-compound excitation high energy 30 MeV +Type of de-excitation inverse x-section 3 +Type of de-excitation factory Evaporation+GEM +Number of de-excitation channels 68 +Min excitation energy 10 eV +Min energy per nucleon for multifragmentation 200 GeV +Limit excitation energy for Fermi BreakUp 20 MeV +Level density (1/MeV) 0.075 +Use simple level density model 1 +Use discrete excitation energy of the residual 1 +Time limit for long lived isomeres 1 ns +Isomer production flag 1 +Internal e- conversion flag 1 +Store e- internal conversion data 0 +Correlated gamma emission flag 0 +Max 2J for sampling of angular correlations 10 +======================================================================= +G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. +See commands in /vis/modeling/trajectories/ for other options. +### Run 0 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 90.5308 MeV rms = 6.0806 MeV +EGap: mean = 3.64449 MeV rms = 2.14406 MeV +LAbs: mean = 6.56523 cm rms = 5.55053 mm +LGap: mean = 1.78048 cm rms = 1.0768 cm +There are 4 h1 histograms + 0 with 10 entries: Edep in absorber (MeV) + 1 with 10 entries: Edep in gap (MeV) + 2 with 10 entries: trackL in absorber (mm) + 3 with 10 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : e-.hdf5 - done +### Run 1 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 179.468 MeV rms = 10.6369 MeV +EGap: mean = 9.19591 MeV rms = 5.07079 MeV +LAbs: mean = 12.938 cm rms = 8.44399 mm +LGap: mean = 4.536 cm rms = 2.64611 cm +There are 4 h1 histograms + 0 with 20 entries: Edep in absorber (MeV) + 1 with 20 entries: Edep in gap (MeV) + 2 with 20 entries: trackL in absorber (mm) + 3 with 20 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : e-.hdf5 - done +### Run 2 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 272.05 MeV rms = 9.23393 MeV +EGap: mean = 14.0337 MeV rms = 5.20653 MeV +LAbs: mean = 19.596 cm rms = 7.90909 mm +LGap: mean = 6.90508 cm rms = 2.73617 cm +There are 4 h1 histograms + 0 with 30 entries: Edep in absorber (MeV) + 1 with 30 entries: Edep in gap (MeV) + 2 with 30 entries: trackL in absorber (mm) + 3 with 30 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : e-.hdf5 - done +... close file : e-.hdf5 - done +... create file : proton.hdf5 - done +... open analysis file : proton.hdf5 - done +### Run 3 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 199.356 MeV rms = 50.7758 MeV +EGap: mean = 19.0703 MeV rms = 8.10234 MeV +LAbs: mean = 8.63977 cm rms = 2.54192 cm +LGap: mean = 4.44924 cm rms = 1.40914 cm +There are 4 h1 histograms + 0 with 40 entries: Edep in absorber (MeV) + 1 with 40 entries: Edep in gap (MeV) + 2 with 40 entries: trackL in absorber (mm) + 3 with 40 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : proton.hdf5 - done +### Run 4 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 192.132 MeV rms = 64.2554 MeV +EGap: mean = 17.8005 MeV rms = 12.5426 MeV +LAbs: mean = 8.82292 cm rms = 2.51538 cm +LGap: mean = 4.4112 cm rms = 1.63167 cm +There are 4 h1 histograms + 0 with 50 entries: Edep in absorber (MeV) + 1 with 50 entries: Edep in gap (MeV) + 2 with 50 entries: trackL in absorber (mm) + 3 with 50 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : proton.hdf5 - done +... close file : proton.hdf5 - done +Graphics systems deleted. +Visualization Manager deleting... diff --git a/examples/extended/analysis/AnaEx03/AnaEx03-root.in b/examples/extended/analysis/AnaEx03/AnaEx03-root.in new file mode 100644 index 0000000000..7be533888e --- /dev/null +++ b/examples/extended/analysis/AnaEx03/AnaEx03-root.in @@ -0,0 +1,8 @@ +# +# Macro file for the test of AnaEx03 example +# with root file type (default) +# + +/control/alias defaultFileType root + +/control/execute AnaEx03.in diff --git a/examples/extended/analysis/AnaEx03/AnaEx03-root.out b/examples/extended/analysis/AnaEx03/AnaEx03-root.out new file mode 100644 index 0000000000..80d6e3e94a --- /dev/null +++ b/examples/extended/analysis/AnaEx03/AnaEx03-root.out @@ -0,0 +1,1068 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + + +***** Table : Nb of materials = 3 ***** + + Material: G4_Galactic density: 0.000 mg/cm3 RadL: 204310098.490 pc Nucl.Int.Length: 113427284.261 pc + Imean: 21.800 eV temperature: 2.73 K pressure: 0.00 atm + + ---> Element: H (H) Z = 1.0 N = 1 A = 1.008 g/mole + ---> Isotope: H1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.989 % + ---> Isotope: H2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.011 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.248 cm + Imean: 823.000 eV temperature: 293.15 K pressure: 1.00 atm + + ---> Element: Pb (Pb) Z = 82.0 N = 207 A = 207.217 g/mole + ---> Isotope: Pb204 Z = 82 N = 204 A = 203.97 g/mole abundance: 1.400 % + ---> Isotope: Pb206 Z = 82 N = 206 A = 205.97 g/mole abundance: 24.100 % + ---> Isotope: Pb207 Z = 82 N = 207 A = 206.98 g/mole abundance: 22.100 % + ---> Isotope: Pb208 Z = 82 N = 208 A = 207.98 g/mole abundance: 52.400 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + Material: G4_lAr density: 1.396 g/cm3 RadL: 14.003 cm Nucl.Int.Length: 85.706 cm + Imean: 188.000 eV temperature: 293.15 K pressure: 1.00 atm + + ---> Element: Ar (Ar) Z = 18.0 N = 40 A = 39.948 g/mole + ---> Isotope: Ar36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.337 % + ---> Isotope: Ar38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.063 % + ---> Isotope: Ar40 Z = 18 N = 40 A = 39.96 g/mole abundance: 99.600 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + +<<< Geant4 Physics List simulation engine: FTFP_BERT + +Visualization Manager instantiating with verbosity "warnings (3)"... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully registered the following graphics systems. +Registered graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML2FILE (VRML2FILE) + gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) + OpenGLImmediateQt (OGLIQt, OGLI) + OpenGLStoredQt (OGLSQt, OGL, OGLS) + OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) + OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK) + OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK) + OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK) + RayTracerX (RayTracerX) + Qt3D (Qt3D) + TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK) + TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK) + TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG) + +Registering model factories... + +You have successfully registered the following model factories. +Registered model factories: + generic + drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByEncounteredVolume + +Registered models: + None + +Registered filter factories: + attributeFilter + chargeFilter + originVolumeFilter + particleFilter + encounteredVolumeFilter + +Registered filters: + None + +You have successfully registered the following user vis actions. +Run Duration User Vis Actions: none +End of Event User Vis Actions: none +End of Run User Vis Actions: none + +Some /vis commands (optionally) take a string to specify colour. +"/vis/list" to see available colours. + +------------------------------------------------------------ +---> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of G4_lAr ] +------------------------------------------------------------ + + hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval + for pions : 3 to 6 GeV + for kaons : 3 to 6 GeV + for proton : 3 to 6 GeV + for neutron : 3 to 6 GeV + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 +... set ntuple merging row mode : row-wise - done +... create file : e-.root - done +... open analysis file : e-.root - done +... open analysis file : e-.root - done +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 7 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 1 mm) +Step function for muons/hadrons (0.2, 0.1 mm) +Step function for light ions (0.2, 0.1 mm) +Step function for general ions (0.2, 0.1 mm) +Lowest e+e- kinetic energy 1 keV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 0 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 0 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 0 eV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 1 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 0 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.04 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 1 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 0 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 61 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 56 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Klein-Nishina : Emin= 0 eV Emax= 100 TeV + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + Stopping Power data for 17 ion/material pairs + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + + Process: nKiller + +--------------------------------------------------- + Hadronic Processes for B- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: B-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for D- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: D-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_He3Inelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_alphaInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_deuteronInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: anti_lambdaInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_neutronInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_protonInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_tritonInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: dInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for e+ + + Process: positronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for e- + + Process: electronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: GammaNPreco: 0 eV ---> 200 MeV + Model: BertiniCascade: 199 MeV ---> 6 GeV + Model: TheoFSGenerator: 3 GeV ---> 100 TeV + Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: lambdaInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu+ + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + + Process: muMinusCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: protonInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for sigma- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: sigma-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: tInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +================================================================ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Pre-compound model active 1 +Pre-compound excitation low energy 100 keV +Pre-compound excitation high energy 30 MeV +Type of de-excitation inverse x-section 3 +Type of de-excitation factory Evaporation+GEM +Number of de-excitation channels 68 +Min excitation energy 10 eV +Min energy per nucleon for multifragmentation 200 GeV +Limit excitation energy for Fermi BreakUp 20 MeV +Level density (1/MeV) 0.075 +Use simple level density model 1 +Use discrete excitation energy of the residual 1 +Time limit for long lived isomeres 1 ns +Isomer production flag 1 +Internal e- conversion flag 1 +Store e- internal conversion data 0 +Correlated gamma emission flag 0 +Max 2J for sampling of angular correlations 10 +======================================================================= +G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. +See commands in /vis/modeling/trajectories/ for other options. +### Run 0 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 90.5308 MeV rms = 6.0806 MeV +EGap: mean = 3.64449 MeV rms = 2.14406 MeV +LAbs: mean = 6.56523 cm rms = 5.55053 mm +LGap: mean = 1.78048 cm rms = 1.0768 cm +There are 4 h1 histograms + 0 with 10 entries: Edep in absorber (MeV) + 1 with 10 entries: Edep in gap (MeV) + 2 with 10 entries: trackL in absorber (mm) + 3 with 10 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : e-.root - done +### Run 1 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 179.468 MeV rms = 10.6369 MeV +EGap: mean = 9.19591 MeV rms = 5.07079 MeV +LAbs: mean = 12.938 cm rms = 8.44399 mm +LGap: mean = 4.536 cm rms = 2.64611 cm +There are 4 h1 histograms + 0 with 20 entries: Edep in absorber (MeV) + 1 with 20 entries: Edep in gap (MeV) + 2 with 20 entries: trackL in absorber (mm) + 3 with 20 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : e-.root - done +### Run 2 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 272.05 MeV rms = 9.23393 MeV +EGap: mean = 14.0337 MeV rms = 5.20653 MeV +LAbs: mean = 19.596 cm rms = 7.90909 mm +LGap: mean = 6.90508 cm rms = 2.73617 cm +There are 4 h1 histograms + 0 with 30 entries: Edep in absorber (MeV) + 1 with 30 entries: Edep in gap (MeV) + 2 with 30 entries: trackL in absorber (mm) + 3 with 30 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : e-.root - done +... close file : e-.root - done +... create file : proton.root - done +... open analysis file : proton.root - done +... open analysis file : proton.root - done +### Run 3 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 199.356 MeV rms = 50.7758 MeV +EGap: mean = 19.0703 MeV rms = 8.10234 MeV +LAbs: mean = 8.63977 cm rms = 2.54192 cm +LGap: mean = 4.44924 cm rms = 1.40914 cm +There are 4 h1 histograms + 0 with 40 entries: Edep in absorber (MeV) + 1 with 40 entries: Edep in gap (MeV) + 2 with 40 entries: trackL in absorber (mm) + 3 with 40 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : proton.root - done +### Run 4 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 192.132 MeV rms = 64.2554 MeV +EGap: mean = 17.8005 MeV rms = 12.5426 MeV +LAbs: mean = 8.82292 cm rms = 2.51538 cm +LGap: mean = 4.4112 cm rms = 1.63167 cm +There are 4 h1 histograms + 0 with 50 entries: Edep in absorber (MeV) + 1 with 50 entries: Edep in gap (MeV) + 2 with 50 entries: trackL in absorber (mm) + 3 with 50 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : proton.root - done +... close file : proton.root - done +Graphics systems deleted. +Visualization Manager deleting... diff --git a/examples/extended/analysis/AnaEx03/AnaEx03-xml.in b/examples/extended/analysis/AnaEx03/AnaEx03-xml.in new file mode 100644 index 0000000000..f04e9943d3 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/AnaEx03-xml.in @@ -0,0 +1,8 @@ +# +# Macro file for the test of AnaEx03 example +# with xml file type +# + +/control/alias defaultFileType xml + +/control/execute AnaEx03.in diff --git a/examples/extended/analysis/AnaEx03/AnaEx03-xml.out b/examples/extended/analysis/AnaEx03/AnaEx03-xml.out new file mode 100644 index 0000000000..0a9c67e6f4 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/AnaEx03-xml.out @@ -0,0 +1,1083 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + + +***** Table : Nb of materials = 3 ***** + + Material: G4_Galactic density: 0.000 mg/cm3 RadL: 204310098.490 pc Nucl.Int.Length: 113427284.261 pc + Imean: 21.800 eV temperature: 2.73 K pressure: 0.00 atm + + ---> Element: H (H) Z = 1.0 N = 1 A = 1.008 g/mole + ---> Isotope: H1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.989 % + ---> Isotope: H2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.011 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.248 cm + Imean: 823.000 eV temperature: 293.15 K pressure: 1.00 atm + + ---> Element: Pb (Pb) Z = 82.0 N = 207 A = 207.217 g/mole + ---> Isotope: Pb204 Z = 82 N = 204 A = 203.97 g/mole abundance: 1.400 % + ---> Isotope: Pb206 Z = 82 N = 206 A = 205.97 g/mole abundance: 24.100 % + ---> Isotope: Pb207 Z = 82 N = 207 A = 206.98 g/mole abundance: 22.100 % + ---> Isotope: Pb208 Z = 82 N = 208 A = 207.98 g/mole abundance: 52.400 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + Material: G4_lAr density: 1.396 g/cm3 RadL: 14.003 cm Nucl.Int.Length: 85.706 cm + Imean: 188.000 eV temperature: 293.15 K pressure: 1.00 atm + + ---> Element: Ar (Ar) Z = 18.0 N = 40 A = 39.948 g/mole + ---> Isotope: Ar36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.337 % + ---> Isotope: Ar38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.063 % + ---> Isotope: Ar40 Z = 18 N = 40 A = 39.96 g/mole abundance: 99.600 % + ElmMassFraction: 100.00 % ElmAbundance 100.00 % + + + +<<< Geant4 Physics List simulation engine: FTFP_BERT + +Visualization Manager instantiating with verbosity "warnings (3)"... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully registered the following graphics systems. +Registered graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML2FILE (VRML2FILE) + gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) + OpenGLImmediateQt (OGLIQt, OGLI) + OpenGLStoredQt (OGLSQt, OGL, OGLS) + OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) + OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK) + OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK) + OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK) + RayTracerX (RayTracerX) + Qt3D (Qt3D) + TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK) + TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK) + TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG) + +Registering model factories... + +You have successfully registered the following model factories. +Registered model factories: + generic + drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByEncounteredVolume + +Registered models: + None + +Registered filter factories: + attributeFilter + chargeFilter + originVolumeFilter + particleFilter + encounteredVolumeFilter + +Registered filters: + None + +You have successfully registered the following user vis actions. +Run Duration User Vis Actions: none +End of Event User Vis Actions: none +End of Run User Vis Actions: none + +Some /vis commands (optionally) take a string to specify colour. +"/vis/list" to see available colours. + +------------------------------------------------------------ +---> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of G4_lAr ] +------------------------------------------------------------ + + hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval + for pions : 3 to 6 GeV + for kaons : 3 to 6 GeV + for proton : 3 to 6 GeV + for neutron : 3 to 6 GeV + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 +... create file : e-.xml - done +... open analysis file : e-.xml - done +... create file : e-_nt_Ntuple1.xml - done +... create file : e-_nt_Ntuple2.xml - done +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 7 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 1 mm) +Step function for muons/hadrons (0.2, 0.1 mm) +Step function for light ions (0.2, 0.1 mm) +Step function for general ions (0.2, 0.1 mm) +Lowest e+e- kinetic energy 1 keV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 0 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 0 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 0 eV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 1 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 0 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.04 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 1 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 0 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 61 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 56 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Klein-Nishina : Emin= 0 eV Emax= 100 TeV + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + Stopping Power data for 17 ion/material pairs + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + + Process: nKiller + +--------------------------------------------------- + Hadronic Processes for B- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: B-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for D- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: D-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_He3Inelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_alphaInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_deuteronInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: anti_lambdaInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_neutronInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_protonInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_tritonInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: dInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for e+ + + Process: positronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for e- + + Process: electronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: GammaNPreco: 0 eV ---> 200 MeV + Model: BertiniCascade: 199 MeV ---> 6 GeV + Model: TheoFSGenerator: 3 GeV ---> 100 TeV + Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: lambdaInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu+ + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + + Process: muMinusCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: protonInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for sigma- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: sigma-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: tInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +================================================================ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Pre-compound model active 1 +Pre-compound excitation low energy 100 keV +Pre-compound excitation high energy 30 MeV +Type of de-excitation inverse x-section 3 +Type of de-excitation factory Evaporation+GEM +Number of de-excitation channels 68 +Min excitation energy 10 eV +Min energy per nucleon for multifragmentation 200 GeV +Limit excitation energy for Fermi BreakUp 20 MeV +Level density (1/MeV) 0.075 +Use simple level density model 1 +Use discrete excitation energy of the residual 1 +Time limit for long lived isomeres 1 ns +Isomer production flag 1 +Internal e- conversion flag 1 +Store e- internal conversion data 0 +Correlated gamma emission flag 0 +Max 2J for sampling of angular correlations 10 +======================================================================= +G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. +See commands in /vis/modeling/trajectories/ for other options. +### Run 0 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 90.5308 MeV rms = 6.0806 MeV +EGap: mean = 3.64449 MeV rms = 2.14406 MeV +LAbs: mean = 6.56523 cm rms = 5.55053 mm +LGap: mean = 1.78048 cm rms = 1.0768 cm +There are 4 h1 histograms + 0 with 10 entries: Edep in absorber (MeV) + 1 with 10 entries: Edep in gap (MeV) + 2 with 10 entries: trackL in absorber (mm) + 3 with 10 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : e-.xml - done +... write file : e-_nt_Ntuple1.xml - done +... write file : e-_nt_Ntuple2.xml - done +### Run 1 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 179.468 MeV rms = 10.6369 MeV +EGap: mean = 9.19591 MeV rms = 5.07079 MeV +LAbs: mean = 12.938 cm rms = 8.44399 mm +LGap: mean = 4.536 cm rms = 2.64611 cm +There are 4 h1 histograms + 0 with 20 entries: Edep in absorber (MeV) + 1 with 20 entries: Edep in gap (MeV) + 2 with 20 entries: trackL in absorber (mm) + 3 with 20 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : e-.xml - done +... write file : e-_nt_Ntuple1.xml - done +... write file : e-_nt_Ntuple2.xml - done +### Run 2 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 272.05 MeV rms = 9.23393 MeV +EGap: mean = 14.0337 MeV rms = 5.20653 MeV +LAbs: mean = 19.596 cm rms = 7.90909 mm +LGap: mean = 6.90508 cm rms = 2.73617 cm +There are 4 h1 histograms + 0 with 30 entries: Edep in absorber (MeV) + 1 with 30 entries: Edep in gap (MeV) + 2 with 30 entries: trackL in absorber (mm) + 3 with 30 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : e-.xml - done +... write file : e-_nt_Ntuple1.xml - done +... write file : e-_nt_Ntuple2.xml - done +... close file : e-.xml - done +... close file : e-_nt_Ntuple1.xml - done +... close file : e-_nt_Ntuple2.xml - done +... create file : proton.xml - done +... open analysis file : proton.xml - done +... create file : proton_nt_Ntuple1.xml - done +... create file : proton_nt_Ntuple2.xml - done +### Run 3 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 199.356 MeV rms = 50.7758 MeV +EGap: mean = 19.0703 MeV rms = 8.10234 MeV +LAbs: mean = 8.63977 cm rms = 2.54192 cm +LGap: mean = 4.44924 cm rms = 1.40914 cm +There are 4 h1 histograms + 0 with 40 entries: Edep in absorber (MeV) + 1 with 40 entries: Edep in gap (MeV) + 2 with 40 entries: trackL in absorber (mm) + 3 with 40 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : proton.xml - done +... write file : proton_nt_Ntuple1.xml - done +... write file : proton_nt_Ntuple2.xml - done +### Run 4 start. + +---> Begin of event: 0 + + ----> print histograms statistic + +EAbs: mean = 192.132 MeV rms = 64.2554 MeV +EGap: mean = 17.8005 MeV rms = 12.5426 MeV +LAbs: mean = 8.82292 cm rms = 2.51538 cm +LGap: mean = 4.4112 cm rms = 1.63167 cm +There are 4 h1 histograms + 0 with 50 entries: Edep in absorber (MeV) + 1 with 50 entries: Edep in gap (MeV) + 2 with 50 entries: trackL in absorber (mm) + 3 with 50 entries: trackL in gap (mm) +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +... write file : proton.xml - done +... write file : proton_nt_Ntuple1.xml - done +... write file : proton_nt_Ntuple2.xml - done +... close file : proton.xml - done +... close file : proton_nt_Ntuple1.xml - done +... close file : proton_nt_Ntuple2.xml - done +Graphics systems deleted. +Visualization Manager deleting... diff --git a/examples/extended/analysis/AnaEx03/AnaEx03.cc b/examples/extended/analysis/AnaEx03/AnaEx03.cc new file mode 100644 index 0000000000..890d6e5c9e --- /dev/null +++ b/examples/extended/analysis/AnaEx03/AnaEx03.cc @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +/// \file analysis/AnaEx03/AnaEx03.cc +/// \brief Main program of the analysis/AnaEx03 example +// +// +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "DetectorConstruction.hh" +#include "ActionInitialization.hh" + +#include "G4RunManagerFactory.hh" + +#include "G4UImanager.hh" +#include "FTFP_BERT.hh" + +#include "G4VisExecutive.hh" +#include "G4UIExecutive.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +int main(int argc,char** argv) +{ + // Detect interactive mode (if no arguments) and define UI session + // + G4UIExecutive* ui = nullptr; + if ( argc == 1 ) { + ui = new G4UIExecutive(argc, argv); + } + + // Construct the default run manager + // + auto* runManager = G4RunManagerFactory::CreateRunManager(); + G4int nThreads = 4; + runManager->SetNumberOfThreads(nThreads); + + // Set mandatory initialization classes + // + auto detector = new DetectorConstruction; + runManager->SetUserInitialization(detector); + runManager->SetUserInitialization(new FTFP_BERT); + runManager->SetUserInitialization(new ActionInitialization(detector)); + + // Initialize visualization + // + G4VisManager* visManager = new G4VisExecutive; + visManager->Initialize(); + + // Get the pointer to the User Interface manager + // + G4UImanager* UImanager = G4UImanager::GetUIpointer(); + + if ( ui == nullptr ) { + // batch mode + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UImanager->ApplyCommand("/control/alias defaultFileType root"); + // define the default value for alias used in AnaEx03.in + UImanager->ApplyCommand(command+fileName); + } + else { + // interactive mode + UImanager->ApplyCommand("/control/execute init_vis.mac"); + ui->SessionStart(); + delete ui; + } + + // Job termination + delete visManager; + delete runManager; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx03/AnaEx03.in b/examples/extended/analysis/AnaEx03/AnaEx03.in new file mode 100644 index 0000000000..ff234a0be9 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/AnaEx03.in @@ -0,0 +1,58 @@ +# +# Macro file for the test of AnaEx03 example +# +# + +#/run/numberOfThreads 2 + +# reduce output in MT +/control/cout/ignoreThreadsExcept 0 + +# initialize +/run/initialize + +# set file type via parameter passed from calling macro +# or use the default value "root" set in main +/analysis/setDefaultFileType {defaultFileType} + +# open analysis file +/analysis/openFile e- + +# e- 100MeV +/gun/particle e- +/gun/energy 100 MeV +/run/beamOn 10 +/analysis/write +/analysis/reset + +# e- 200MeV +/gun/energy 200 MeV +# +/run/beamOn 20 +/analysis/write +/analysis/reset +# +# e- 300MeV +/gun/energy 300 MeV +# +/run/beamOn 30 +/analysis/write +/analysis/closeFile + +# open analysis file +/analysis/openFile proton + +# proton 400MeV +/gun/particle proton +/gun/energy 400 MeV +/run/beamOn 40 +/analysis/write +/analysis/reset + +# proton 500MeV +/gun/energy 500 MeV +# +/run/beamOn 50 +/analysis/write +/analysis/closeFile +# diff --git a/examples/extended/analysis/AnaEx03/CMakeLists.txt b/examples/extended/analysis/AnaEx03/CMakeLists.txt new file mode 100644 index 0000000000..d975aef611 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/CMakeLists.txt @@ -0,0 +1,59 @@ +#---------------------------------------------------------------------------- +# Setup the project +cmake_minimum_required(VERSION 3.16...3.21) +project(AnaEx03) + +#---------------------------------------------------------------------------- +# Find Geant4 package, activating all available UI and Vis drivers by default +# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui +# to build a batch mode only executable +# +option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON) +if(WITH_GEANT4_UIVIS) + find_package(Geant4 REQUIRED ui_all vis_all) +else() + find_package(Geant4 REQUIRED) +endif() + +#---------------------------------------------------------------------------- +# Setup Geant4 include directories and compile definitions +# +include(${Geant4_USE_FILE}) + +#---------------------------------------------------------------------------- +# Locate sources and headers for this project +# +include_directories(${PROJECT_SOURCE_DIR}/include + ${PROJECT_SOURCE_DIR}/shared/include + ${Geant4_INCLUDE_DIR}) +file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc + ${PROJECT_SOURCE_DIR}/shared/src/*.cc) +file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh + ${PROJECT_SOURCE_DIR}/shared/include/*.hh) + +#---------------------------------------------------------------------------- +# Add the executable, and link it to the Geant4 libraries +# +add_executable(AnaEx03 AnaEx03.cc + ${sources} ${add_sources} ${fortran_sources} + ${headers} ${add_headers}) +target_link_libraries(AnaEx03 ${Geant4_LIBRARIES} ${HBOOK_LIBRARIES}) + +#---------------------------------------------------------------------------- +# Copy all scripts to the build directory, i.e. the directory in which we +# build AnaEx03. This is so that we can run the executable directly because it +# relies on these scripts being in the current working directory. +# +set(AnaEx03_FILES + AnaEx03.in AnaEx03-csv.in AnaEx03-hdf5.in AnaEx03-root.in AnaEx03-xml.in init_vis.mac vis.mac + histo ntuple) + +foreach(_file ${AnaEx03_FILES}) + file(COPY ${PROJECT_SOURCE_DIR}/${_file} DESTINATION ${PROJECT_BINARY_DIR}) +endforeach() + +#---------------------------------------------------------------------------- +# Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX +# +install(TARGETS AnaEx03 DESTINATION bin) + diff --git a/examples/extended/analysis/AnaEx03/GNUmakefile b/examples/extended/analysis/AnaEx03/GNUmakefile new file mode 100644 index 0000000000..be2088f2a6 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/GNUmakefile @@ -0,0 +1,33 @@ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := AnaEx03 +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../.. +endif + +.PHONY: setup clean_setup all +all: lib bin + +setup: + @echo "Copying files from shared" + @./shared/scripts/copy_files.sh shared + +clean_setup: + @echo "Removing files copied from shared" + @./shared/scripts/clean_files.sh shared + +include $(G4INSTALL)/config/binmake.gmk + +CPPFLAGS += -I./shared/include + +visclean: + rm -f g4*.prim g4*.eps g4*.wrl + rm -f .DAWN_* + +histclean: + rm ${G4WORKDIR}/tmp/${G4SYSTEM}/${G4TARGET}/HistoManager.o diff --git a/examples/extended/analysis/AnaEx03/History b/examples/extended/analysis/AnaEx03/History new file mode 100644 index 0000000000..d8615625d7 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/History @@ -0,0 +1,12 @@ +# Example AnaEx03 History + +See `CONTRIBUTING.rst` for details of **required** info/format for each entry, +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + + +## 2022-11-09 I. Hrivnacova (AnaEx03-V11-00-01) +- Fixed README files + +## 2022-10-19 I. Hrivnacova (AnaEx03-V11-00-00) +- First version diff --git a/examples/extended/analysis/AnaEx03/README b/examples/extended/analysis/AnaEx03/README new file mode 100644 index 0000000000..98030e6a04 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/README @@ -0,0 +1,91 @@ +-------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + AnaEx03 + ------- + + Example AnaEx03 demonstrates usage of analysis commands for file management + (new since Geant4 11.1), in particular writing histograms and ntuples in a file + multiple times. + + It uses the same scenario (detector description, primary generator + and physics) as AnaEx02 and AnaEx02. In difference from these examples + the analysis manipulations (histograms and ntuples booking and filling) + are performed directly with G4AnalysisManager. The classes that are same + in all three examples are located in shared directory. + + For detector description, primary generator, physics and the example output + see README in AnaEx01 example. + + Histograms, Ntuple: + -------------------- + + The example produces the same 4 histograms and 2 ntuples as in AnaEx01. + + These histos and ntuples are booked in the RunAction constructor and filled from + EventAction. + + The file managent in this example, usually performed via calls to G4AnalysisManager + OpenFile(), Write() and CloseFile() in the code, is in this example performed + via UI commands in a macro: + /analysis/openFile + /analysis/write + /analysis/closeFile + + Note that the file need not to be closed at each end of run, but the histograms and ntuples + can be saved in the same file multiple time. In that case we need to reset the histograms + and ntuples data before a new run: + /analysis/reset + + We can define the default file type and set it to the analysis manager via + /analysis/setDefaultFileType root # or csv hdf5 xml + + The file names then need not to be provided with the file extension and the same macro + can be used with different output types. + + It should be notes that using UI commands for writing histograms and ntuples in a file + multiple times is not necessary, the same can be achieved by calls to G4AnalysisManager + functions from the code using conditional statements. + + Macros: + -------- + + The AnaEx03.in macro performs 5 runs and produces 2 files: e-.root, containg data from first + 3 runs, and proton.root, containing data from the next 2 runs. + The macro uses the defaultFileType parameter (alias), which default value, "root" is + defined in main. + + AnaEx03-csv.in, AnaEx03-hdf5.in, AnaEx03-root.in, AnaEx03-xml.in: + + In these macros, the default value of the defaultFileType is overritten with + + /control/alias defaultFileType cvs # or hdf5 root xml + + and then the AnaEx03.in macro is called. + + + How to run + -------------- + + - It is preferable to execute the exampole in the 'batch' mode from macro files: + % ./AnaEx03 AnaEx03.in + % ./AnaEx03 AnaEx03.in >& output + + - When executing AnaEx03 in the 'interactive mode' with visualization, be careful not + to forget to issue the /analysis/openFile command befor starting a run: + + % ./AnaEx03 + and type in the commands from AnaEx03[-xyz].mac line by line: + Idle> /analysis/openFile myFile + Idle> /tracking/verbose 1 + Idle> /run/beamOn 10 + Idle> ... + Idle> /analysis/write + Idle> /analysis/closeFile + .... + Idle> exit + + All AnaEx03-*.in macros are used in Geant4 testing. diff --git a/examples/extended/analysis/AnaEx03/histo/README b/examples/extended/analysis/AnaEx03/histo/README new file mode 100644 index 0000000000..0dc4da0fbe --- /dev/null +++ b/examples/extended/analysis/AnaEx03/histo/README @@ -0,0 +1,2 @@ +This directory will be used for saving histogram files +when running AnaEx01 example with the Csv output type diff --git a/examples/extended/analysis/shared/include/ActionInitialization.hh b/examples/extended/analysis/AnaEx03/include/ActionInitialization.hh similarity index 94% rename from examples/extended/analysis/shared/include/ActionInitialization.hh rename to examples/extended/analysis/AnaEx03/include/ActionInitialization.hh index 797b2917e7..1dd2cd483e 100644 --- a/examples/extended/analysis/shared/include/ActionInitialization.hh +++ b/examples/extended/analysis/AnaEx03/include/ActionInitialization.hh @@ -41,10 +41,10 @@ class ActionInitialization : public G4VUserActionInitialization { public: ActionInitialization(DetectorConstruction* detector); - virtual ~ActionInitialization(); + ~ActionInitialization() override; - virtual void BuildForMaster() const; - virtual void Build() const; + void BuildForMaster() const override; + void Build() const override; private: DetectorConstruction* fDetector; @@ -52,4 +52,4 @@ class ActionInitialization : public G4VUserActionInitialization #endif - + diff --git a/examples/extended/analysis/shared/include/EventAction.hh b/examples/extended/analysis/AnaEx03/include/EventAction.hh similarity index 85% rename from examples/extended/analysis/shared/include/EventAction.hh rename to examples/extended/analysis/AnaEx03/include/EventAction.hh index 93ced7f5b4..30b8a80614 100644 --- a/examples/extended/analysis/shared/include/EventAction.hh +++ b/examples/extended/analysis/AnaEx03/include/EventAction.hh @@ -28,7 +28,7 @@ // // // -// +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -47,27 +47,26 @@ class HistoManager; class EventAction : public G4UserEventAction { public: - EventAction(RunAction*, HistoManager*); - virtual ~EventAction(); + EventAction(); + ~EventAction() override; + + void BeginOfEventAction(const G4Event*) override; + void EndOfEventAction(const G4Event*) override; - virtual void BeginOfEventAction(const G4Event*); - virtual void EndOfEventAction(const G4Event*); - void AddAbs(G4double de, G4double dl) {fEnergyAbs += de; fTrackLAbs += dl;}; void AddGap(G4double de, G4double dl) {fEnergyGap += de; fTrackLGap += dl;}; - + private: - RunAction* fRunAct; - HistoManager* fHistoManager; - - G4double fEnergyAbs, fEnergyGap; - G4double fTrackLAbs, fTrackLGap; - - G4int fPrintModulo; + G4double fEnergyAbs = 0; + G4double fEnergyGap = 0; + G4double fTrackLAbs = 0; + G4double fTrackLGap = 0; + + G4int fPrintModulo = 100; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - + diff --git a/examples/extended/analysis/shared/include/RunAction.hh b/examples/extended/analysis/AnaEx03/include/RunAction.hh similarity index 84% rename from examples/extended/analysis/shared/include/RunAction.hh rename to examples/extended/analysis/AnaEx03/include/RunAction.hh index 15bf61a2e0..d3e55414ff 100644 --- a/examples/extended/analysis/shared/include/RunAction.hh +++ b/examples/extended/analysis/AnaEx03/include/RunAction.hh @@ -28,7 +28,7 @@ // // // -// +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -42,30 +42,20 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class G4Run; -class HistoManager; class RunAction : public G4UserRunAction { public: - RunAction(HistoManager*); - virtual ~RunAction(); + RunAction(); + ~RunAction() override; - virtual void BeginOfRunAction(const G4Run*); - virtual void EndOfRunAction(const G4Run*); - - void FillPerEvent(G4double, G4double, G4double, G4double); + void BeginOfRunAction(const G4Run*) override; + void EndOfRunAction(const G4Run*) override; private: - HistoManager* fHistoManager; - - G4double fSumEAbs, fSum2EAbs; - G4double fSumEGap, fSum2EGap; - - G4double fSumLAbs, fSum2LAbs; - G4double fSumLGap, fSum2LGap; + void PrintStatistic(); }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - diff --git a/examples/extended/analysis/AnaEx03/init_vis.mac b/examples/extended/analysis/AnaEx03/init_vis.mac new file mode 100644 index 0000000000..8e460329fb --- /dev/null +++ b/examples/extended/analysis/AnaEx03/init_vis.mac @@ -0,0 +1,16 @@ +# Macro file for the initialization of example B1 +# in interactive session +# +# Set some default verbose +/control/verbose 2 +/control/saveHistory +/run/verbose 2 +# +# Change the default number of threads (in multi-threaded mode) +#/run/numberOfThreads 4 +# +# Initialize kernel +/run/initialize +# +# Visualization setting +/control/execute vis.mac diff --git a/examples/extended/analysis/AnaEx03/ntuple/README b/examples/extended/analysis/AnaEx03/ntuple/README new file mode 100644 index 0000000000..38749c3d17 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/ntuple/README @@ -0,0 +1,2 @@ +This directory will be used for saving ntuple files +when running AnaEx01 example with the Csv output type diff --git a/examples/extended/analysis/AnaEx03/plotHisto.C b/examples/extended/analysis/AnaEx03/plotHisto.C new file mode 100644 index 0000000000..d99f697ea2 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/plotHisto.C @@ -0,0 +1,27 @@ +{ + gROOT->Reset(); + + // Draw histos filled by Geant4 simulation + // + TFile f = TFile("e-.root"); + TCanvas* c1 = new TCanvas("c1", " "); + c1->Divide(2,2); + + TDirectory* dir = (TDirectory*)f.Get("histo"); + + c1->cd(1); + TH1D* hist1 = (TH1D*)dir->Get("EAbs"); + hist1->Draw("HIST"); + + c1->cd(2); + TH1D* hist2 = (TH1D*)dir->Get("EGap"); + hist2->Draw("HIST"); + + c1->cd(3); + TH1D* hist3 = (TH1D*)dir->Get("LAbs"); + hist3->Draw("HIST"); + + c1->cd(4); + TH1D* hist4 = (TH1D*)dir->Get("LGap"); + hist4->Draw("HIST"); +} diff --git a/examples/extended/analysis/AnaEx03/shared/include/DetectorConstruction.hh b/examples/extended/analysis/AnaEx03/shared/include/DetectorConstruction.hh new file mode 100644 index 0000000000..040bf4c9e6 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/shared/include/DetectorConstruction.hh @@ -0,0 +1,143 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +/// \file DetectorConstruction.hh +/// \brief Definition of the DetectorConstruction class + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef DetectorConstruction_h +#define DetectorConstruction_h 1 + +#include "G4VUserDetectorConstruction.hh" +#include "globals.hh" + +#include "CLHEP/Units/SystemOfUnits.h" + +class G4Box; +class G4LogicalVolume; +class G4VPhysicalVolume; +class G4Material; +class DetectorMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class DetectorConstruction : public G4VUserDetectorConstruction +{ + public: + + DetectorConstruction(); + ~DetectorConstruction() override; + + public: + G4VPhysicalVolume* Construct() override; + + void SetAbsorberMaterial (const G4String&); + void SetAbsorberThickness(G4double); + + void SetGapMaterial (const G4String&); + void SetGapThickness(G4double); + + void SetCalorSizeYZ(G4double); + void SetNbOfLayers (G4int); + + void PrintCalorParameters(); + + G4double GetWorldSizeX() { return fWorldSizeX; } + G4double GetWorldSizeYZ() { return fWorldSizeYZ; } + + G4double GetCalorThickness() { return fCalorThickness; } + G4double GetCalorSizeYZ() { return fCalorSizeYZ; } + + G4int GetNbOfLayers() { return fNbOfLayers; } + + G4Material* GetAbsorberMaterial() { return fAbsorberMaterial; } + G4double GetAbsorberThickness() { return fAbsorberThickness; } + + G4Material* GetGapMaterial() { return fGapMaterial; } + G4double GetGapThickness() { return fGapThickness; } + + const G4VPhysicalVolume* GetphysiWorld() { return fPhysiWorld; } + const G4VPhysicalVolume* GetAbsorber() { return fPhysiAbsorber; } + const G4VPhysicalVolume* GetGap() { return fPhysiGap; } + + private: + void DefineMaterials(); + void ComputeCalorParameters(); + G4VPhysicalVolume* ConstructCalorimeter(); + + G4Material* fAbsorberMaterial = nullptr; + G4Material* fGapMaterial = nullptr; + G4Material* fDefaultMaterial = nullptr; + + G4int fNbOfLayers = 10; + G4double fAbsorberThickness = 10.*CLHEP::mm; + G4double fGapThickness = 5.*CLHEP::mm; + G4double fCalorSizeYZ = 10.*CLHEP::cm; + + G4double fCalorThickness = 0.; // will be computed + G4double fLayerThickness= 0.; // will be computed + G4double fWorldSizeYZ = 0.; // will be computed; + G4double fWorldSizeX = 0.; // will be computed; + + G4Box* fSolidWorld = nullptr; //pointer to the solid World + G4LogicalVolume* fLogicWorld = nullptr; //pointer to the logical World + G4VPhysicalVolume* fPhysiWorld = nullptr; //pointer to the physical World + + G4Box* fSolidCalor = nullptr; //pointer to the solid Calor + G4LogicalVolume* fLogicCalor = nullptr; //pointer to the logical Calor + G4VPhysicalVolume* fPhysiCalor = nullptr; //pointer to the physical Calor + + G4Box* fSolidLayer = nullptr; //pointer to the solid Layer + G4LogicalVolume* fLogicLayer = nullptr; //pointer to the logical Layer + G4VPhysicalVolume* fPhysiLayer = nullptr; //pointer to the physical Layer + + G4Box* fSolidAbsorber = nullptr; //pointer to the solid Absorber + G4LogicalVolume* fLogicAbsorber = nullptr; //pointer to the logical Absorber + G4VPhysicalVolume* fPhysiAbsorber = nullptr; //pointer to the physical Absorber + + G4Box* fSolidGap = nullptr; //pointer to the solid Gap + G4LogicalVolume* fLogicGap = nullptr; //pointer to the logical Gap + G4VPhysicalVolume* fPhysiGap = nullptr; //pointer to the physical Gap + + DetectorMessenger* fDetectorMessenger = nullptr; //pointer to the Messenger +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline void DetectorConstruction::ComputeCalorParameters() +{ + // Compute derived parameters of the calorimeter + fLayerThickness = fAbsorberThickness + fGapThickness; + fCalorThickness = fNbOfLayers*fLayerThickness; + + fWorldSizeX = 1.2*fCalorThickness; fWorldSizeYZ = 1.2*fCalorSizeYZ; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/analysis/shared/include/DetectorMessenger.hh b/examples/extended/analysis/AnaEx03/shared/include/DetectorMessenger.hh similarity index 82% rename from examples/extended/analysis/shared/include/DetectorMessenger.hh rename to examples/extended/analysis/AnaEx03/shared/include/DetectorMessenger.hh index d18799417f..df4790e77d 100644 --- a/examples/extended/analysis/shared/include/DetectorMessenger.hh +++ b/examples/extended/analysis/AnaEx03/shared/include/DetectorMessenger.hh @@ -25,10 +25,6 @@ // /// \file DetectorMessenger.hh /// \brief Definition of the DetectorMessenger class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -44,7 +40,6 @@ class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; class G4UIcmdWithADoubleAndUnit; -class G4UIcmdWithoutParameter; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -52,23 +47,22 @@ class DetectorMessenger: public G4UImessenger { public: DetectorMessenger(DetectorConstruction* ); - virtual ~DetectorMessenger(); - - virtual void SetNewValue(G4UIcommand*, G4String); - + ~DetectorMessenger() override; + + void SetNewValue(G4UIcommand*, G4String) override; + private: - DetectorConstruction* fDetector; - - G4UIdirectory* fDetDir; - G4UIcmdWithAString* fAbsMaterCmd; - G4UIcmdWithAString* fGapMaterCmd; - G4UIcmdWithADoubleAndUnit* fAbsThickCmd; - G4UIcmdWithADoubleAndUnit* fGapThickCmd; - G4UIcmdWithADoubleAndUnit* fSizeYZCmd; - G4UIcmdWithAnInteger* fNbLayersCmd; + DetectorConstruction* fDetector = nullptr; + + G4UIdirectory* fDetDir = nullptr; + G4UIcmdWithAString* fAbsMaterCmd = nullptr; + G4UIcmdWithAString* fGapMaterCmd = nullptr; + G4UIcmdWithADoubleAndUnit* fAbsThickCmd = nullptr; + G4UIcmdWithADoubleAndUnit* fGapThickCmd = nullptr; + G4UIcmdWithADoubleAndUnit* fSizeYZCmd = nullptr; + G4UIcmdWithAnInteger* fNbLayersCmd = nullptr; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - diff --git a/examples/extended/analysis/shared/include/PrimaryGeneratorAction.hh b/examples/extended/analysis/AnaEx03/shared/include/PrimaryGeneratorAction.hh similarity index 89% rename from examples/extended/analysis/shared/include/PrimaryGeneratorAction.hh rename to examples/extended/analysis/AnaEx03/shared/include/PrimaryGeneratorAction.hh index 8da549b116..e4d51bdddb 100644 --- a/examples/extended/analysis/shared/include/PrimaryGeneratorAction.hh +++ b/examples/extended/analysis/AnaEx03/shared/include/PrimaryGeneratorAction.hh @@ -25,10 +25,6 @@ // /// \file PrimaryGeneratorAction.hh /// \brief Definition of the PrimaryGeneratorAction class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,14 +44,14 @@ class DetectorConstruction; class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: - PrimaryGeneratorAction(DetectorConstruction*); - virtual ~PrimaryGeneratorAction(); + PrimaryGeneratorAction(DetectorConstruction*); + ~PrimaryGeneratorAction() override; - virtual void GeneratePrimaries(G4Event*); + void GeneratePrimaries(G4Event*) override; private: - G4ParticleGun* fParticleGun; //pointer a to G4 class - DetectorConstruction* fDetector; //pointer to the geometry + G4ParticleGun* fParticleGun = nullptr; //pointer a to G4 class + DetectorConstruction* fDetector = nullptr; //pointer to the geometry }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/shared/include/SteppingAction.hh b/examples/extended/analysis/AnaEx03/shared/include/SteppingAction.hh similarity index 93% rename from examples/extended/analysis/shared/include/SteppingAction.hh rename to examples/extended/analysis/AnaEx03/shared/include/SteppingAction.hh index b7a9a421a9..6939abd3e5 100644 --- a/examples/extended/analysis/shared/include/SteppingAction.hh +++ b/examples/extended/analysis/AnaEx03/shared/include/SteppingAction.hh @@ -25,10 +25,6 @@ // /// \file SteppingAction.hh /// \brief Definition of the SteppingAction class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -47,13 +43,13 @@ class SteppingAction : public G4UserSteppingAction { public: SteppingAction(DetectorConstruction*, EventAction*); - virtual ~SteppingAction(); + ~SteppingAction() override; + + void UserSteppingAction(const G4Step*) override; - virtual void UserSteppingAction(const G4Step*); - private: - DetectorConstruction* fDetector; - EventAction* fEventAction; + DetectorConstruction* fDetector = nullptr; + EventAction* fEventAction = nullptr; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/shared/scripts/clean_files.sh b/examples/extended/analysis/AnaEx03/shared/scripts/clean_files.sh similarity index 95% rename from examples/extended/analysis/shared/scripts/clean_files.sh rename to examples/extended/analysis/AnaEx03/shared/scripts/clean_files.sh index b40a301436..062bcece65 100755 --- a/examples/extended/analysis/shared/scripts/clean_files.sh +++ b/examples/extended/analysis/AnaEx03/shared/scripts/clean_files.sh @@ -9,10 +9,10 @@ DIRNAME=$1 for FILE in `ls $DIRNAME/include`; do rm -f include/$FILE -done +done for FILE in `ls $DIRNAME/src`; do rm -f src/$FILE -done +done echo "... clean_files.sh from $1 finished" diff --git a/examples/extended/analysis/shared/scripts/copy_files.sh b/examples/extended/analysis/AnaEx03/shared/scripts/copy_files.sh similarity index 100% rename from examples/extended/analysis/shared/scripts/copy_files.sh rename to examples/extended/analysis/AnaEx03/shared/scripts/copy_files.sh diff --git a/examples/extended/analysis/AnaEx03/shared/src/DetectorConstruction.cc b/examples/extended/analysis/AnaEx03/shared/src/DetectorConstruction.cc new file mode 100644 index 0000000000..8be67a6d51 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/shared/src/DetectorConstruction.cc @@ -0,0 +1,327 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +/// \file DetectorConstruction.cc +/// \brief Implementation of the DetectorConstruction class + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "DetectorConstruction.hh" +#include "DetectorMessenger.hh" + +#include "G4Material.hh" +#include "G4NistManager.hh" + +#include "G4Box.hh" +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVReplica.hh" + +#include "G4StateManager.hh" +#include "G4GeometryManager.hh" +#include "G4PhysicalVolumeStore.hh" +#include "G4LogicalVolumeStore.hh" +#include "G4SolidStore.hh" + +#include "G4VisAttributes.hh" +#include "G4Colour.hh" +#include "G4SystemOfUnits.hh" +#include "G4RunManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorConstruction::DetectorConstruction() +{ + ComputeCalorParameters(); + + // materials + DefineMaterials(); + SetAbsorberMaterial("G4_Pb"); + SetGapMaterial("G4_lAr"); + + // create commands for interactive definition of the calorimeter + fDetectorMessenger = new DetectorMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorConstruction::~DetectorConstruction() +{ + delete fDetectorMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* DetectorConstruction::Construct() +{ + return ConstructCalorimeter(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::DefineMaterials() +{ + // use G4-NIST materials data base + // + G4NistManager* man = G4NistManager::Instance(); + fDefaultMaterial = man->FindOrBuildMaterial("G4_Galactic"); + man->FindOrBuildMaterial("G4_Pb"); + man->FindOrBuildMaterial("G4_lAr"); + + // print table + // + G4cout << *(G4Material::GetMaterialTable()) << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* DetectorConstruction::ConstructCalorimeter() +{ + // Clean old geometry, if any + // + G4GeometryManager::GetInstance()->OpenGeometry(); + G4PhysicalVolumeStore::GetInstance()->Clean(); + G4LogicalVolumeStore::GetInstance()->Clean(); + G4SolidStore::GetInstance()->Clean(); + + // complete the Calor parameters definition + ComputeCalorParameters(); + + // + // World + // + fSolidWorld = new G4Box("World", //its name + fWorldSizeX/2,fWorldSizeYZ/2,fWorldSizeYZ/2); //its size + + fLogicWorld = new G4LogicalVolume(fSolidWorld, //its solid + fDefaultMaterial, //its material + "World"); //its name + + fPhysiWorld = new G4PVPlacement(nullptr, //no rotation + G4ThreeVector(), //at (0,0,0) + fLogicWorld, //its logical volume + "World", //its name + nullptr, //its mother volume + false, //no boolean operation + 0); //copy number + + // + // Calorimeter + // + fSolidCalor = nullptr; fLogicCalor = nullptr; fPhysiCalor = nullptr; + fSolidLayer = nullptr; fLogicLayer = nullptr; fPhysiLayer = nullptr; + + if (fCalorThickness > 0.) { + fSolidCalor = new G4Box("Calorimeter", //its name + fCalorThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); //size + + fLogicCalor = new G4LogicalVolume(fSolidCalor, //its solid + fDefaultMaterial, //its material + "Calorimeter"); //its name + + fPhysiCalor = new G4PVPlacement(nullptr, //no rotation + G4ThreeVector(), //at (0,0,0) + fLogicCalor, //its logical volume + "Calorimeter", //its name + fLogicWorld, //its mother volume + false, //no boolean operation + 0); //copy number + + // + // Layer + // + fSolidLayer = new G4Box("Layer", //its name + fLayerThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); //size + + fLogicLayer = new G4LogicalVolume(fSolidLayer, //its solid + fDefaultMaterial, //its material + "Layer"); //its name + if (fNbOfLayers > 1) { + fPhysiLayer = new G4PVReplica("Layer", //its name + fLogicLayer, //its logical volume + fLogicCalor, //its mother + kXAxis, //axis of replication + fNbOfLayers, //number of replica + fLayerThickness); //witdth of replica + } + else { + fPhysiLayer = new G4PVPlacement(nullptr, //no rotation + G4ThreeVector(), //at (0,0,0) + fLogicLayer, //its logical volume + "Layer", //its name + fLogicCalor, //its mother volume + false, //no boolean operation + 0); //copy number + } + } + + // + // Absorber + // + fSolidAbsorber = nullptr; fLogicAbsorber = nullptr; fPhysiAbsorber = nullptr; + + if (fAbsorberThickness > 0.) { + fSolidAbsorber = new G4Box("Absorber", //its name + fAbsorberThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); //size + + fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, //its solid + fAbsorberMaterial, //its material + fAbsorberMaterial->GetName()); //name + + fPhysiAbsorber = new G4PVPlacement(nullptr, //no rotation + G4ThreeVector(-fGapThickness/2,0.,0.), //its position + fLogicAbsorber, //its logical volume + fAbsorberMaterial->GetName(), //its name + fLogicLayer, //its mother + false, //no boulean operat + 0); //copy number + + } + + // + // Gap + // + fSolidGap = nullptr; fLogicGap = nullptr; fPhysiGap = nullptr; + + if (fGapThickness > 0.) { + fSolidGap = new G4Box("Gap", + fGapThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); + + fLogicGap = new G4LogicalVolume(fSolidGap, + fGapMaterial, + fGapMaterial->GetName()); + + fPhysiGap = new G4PVPlacement(nullptr, //no rotation + G4ThreeVector(fAbsorberThickness/2,0.,0.), //its position + fLogicGap, //its logical volume + fGapMaterial->GetName(), //its name + fLogicLayer, //its mother + false, //no boulean operat + 0); //copy number + } + + PrintCalorParameters(); + + // + // Visualization attributes + // + fLogicWorld->SetVisAttributes (G4VisAttributes::GetInvisible()); + + auto simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + simpleBoxVisAtt->SetVisibility(true); + fLogicCalor->SetVisAttributes(simpleBoxVisAtt); + + // + //always return the physical World + // + return fPhysiWorld; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::PrintCalorParameters() +{ + G4cout << "\n------------------------------------------------------------" + << "\n---> The calorimeter is " << fNbOfLayers << " layers of: [ " + << fAbsorberThickness/mm << "mm of " << fAbsorberMaterial->GetName() + << " + " + << fGapThickness/mm << "mm of " << fGapMaterial->GetName() << " ] " + << "\n------------------------------------------------------------\n"; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetAbsorberMaterial(const G4String& materialChoice) +{ + // search the material by its name + auto material = G4NistManager::Instance()->FindOrBuildMaterial(materialChoice); + if (material != nullptr) { + fAbsorberMaterial = material; + if (fLogicAbsorber != nullptr) { + fLogicAbsorber->SetMaterial(fAbsorberMaterial); + G4RunManager::GetRunManager()->PhysicsHasBeenModified(); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetGapMaterial(const G4String& materialChoice) +{ + auto material = G4NistManager::Instance()->FindOrBuildMaterial(materialChoice); + if (material != nullptr) { + fGapMaterial = material; + if ( fLogicGap != nullptr) { + fLogicGap->SetMaterial(fGapMaterial); + G4RunManager::GetRunManager()->PhysicsHasBeenModified(); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetAbsorberThickness(G4double value) +{ + // change Absorber thickness and recompute the calorimeter parameters + fAbsorberThickness = value; + if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { + G4RunManager::GetRunManager()->ReinitializeGeometry(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetGapThickness(G4double value) +{ + // change Gap thickness and recompute the calorimeter parameters + fGapThickness = value; + if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { + G4RunManager::GetRunManager()->ReinitializeGeometry(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetCalorSizeYZ(G4double value) +{ + // change the transverse size and recompute the calorimeter parameters + fCalorSizeYZ = value; + if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { + G4RunManager::GetRunManager()->ReinitializeGeometry(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetNbOfLayers(G4int value) +{ + fNbOfLayers = value; + if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { + G4RunManager::GetRunManager()->ReinitializeGeometry(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/shared/src/DetectorMessenger.cc b/examples/extended/analysis/AnaEx03/shared/src/DetectorMessenger.cc similarity index 79% rename from examples/extended/analysis/shared/src/DetectorMessenger.cc rename to examples/extended/analysis/AnaEx03/shared/src/DetectorMessenger.cc index f3634f0bd9..c7775c5fe2 100644 --- a/examples/extended/analysis/shared/src/DetectorMessenger.cc +++ b/examples/extended/analysis/AnaEx03/shared/src/DetectorMessenger.cc @@ -25,10 +25,6 @@ // /// \file DetectorMessenger.cc /// \brief Implementation of the DetectorMessenger class -// -// -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,57 +41,48 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorMessenger::DetectorMessenger( DetectorConstruction* Det) -: G4UImessenger(), - fDetector(Det), - fDetDir(0), - fAbsMaterCmd(0), - fGapMaterCmd(0), - fAbsThickCmd(0), - fGapThickCmd(0), - fSizeYZCmd(0), - fNbLayersCmd(0) -{ +: fDetector(Det) +{ G4bool broadcast = false; fDetDir = new G4UIdirectory("/det/",broadcast); fDetDir->SetGuidance("Detector control"); - + fAbsMaterCmd = new G4UIcmdWithAString("/det/setAbsMat",this); fAbsMaterCmd->SetGuidance("Select Material of the Absorber."); - fAbsMaterCmd->SetParameterName("choice",false); + fAbsMaterCmd->SetParameterName("AbsMat",false); fAbsMaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fGapMaterCmd = new G4UIcmdWithAString("/det/setGapMat",this); fGapMaterCmd->SetGuidance("Select Material of the Gap."); - fGapMaterCmd->SetParameterName("choice",false); + fGapMaterCmd->SetParameterName("GapMat",false); fGapMaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fAbsThickCmd = new G4UIcmdWithADoubleAndUnit("/det/setAbsThick",this); fAbsThickCmd->SetGuidance("Set Thickness of the Absorber"); - fAbsThickCmd->SetParameterName("Size",false); - fAbsThickCmd->SetRange("Size>=0."); + fAbsThickCmd->SetParameterName("AbsThick",false); + fAbsThickCmd->SetRange("AbsThick>=0."); fAbsThickCmd->SetUnitCategory("Length"); fAbsThickCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fGapThickCmd = new G4UIcmdWithADoubleAndUnit("/det/setGapThick",this); fGapThickCmd->SetGuidance("Set Thickness of the Gap"); - fGapThickCmd->SetParameterName("Size",false); - fGapThickCmd->SetRange("Size>=0."); - fGapThickCmd->SetUnitCategory("Length"); + fGapThickCmd->SetParameterName("GapThick",false); + fGapThickCmd->SetRange("GapThick>=0."); + fGapThickCmd->SetUnitCategory("Length"); fGapThickCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fSizeYZCmd = new G4UIcmdWithADoubleAndUnit("/det/setSizeYZ",this); fSizeYZCmd->SetGuidance("Set tranverse size of the calorimeter"); - fSizeYZCmd->SetParameterName("Size",false); - fSizeYZCmd->SetRange("Size>0."); - fSizeYZCmd->SetUnitCategory("Length"); + fSizeYZCmd->SetParameterName("SizeYZ",false); + fSizeYZCmd->SetRange("SizeYZ>0."); + fSizeYZCmd->SetUnitCategory("Length"); fSizeYZCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + fNbLayersCmd = new G4UIcmdWithAnInteger("/det/setNbOfLayers",this); fNbLayersCmd->SetGuidance("Set number of layers."); fNbLayersCmd->SetParameterName("NbLayers",false); fNbLayersCmd->SetRange("NbLayers>0 && NbLayers<500"); fNbLayersCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -103,34 +90,46 @@ DetectorMessenger::DetectorMessenger( DetectorConstruction* Det) DetectorMessenger::~DetectorMessenger() { delete fNbLayersCmd; - delete fAbsMaterCmd; delete fGapMaterCmd; - delete fAbsThickCmd; delete fGapThickCmd; - delete fSizeYZCmd; + delete fAbsMaterCmd; + delete fGapMaterCmd; + delete fAbsThickCmd; + delete fGapThickCmd; + delete fSizeYZCmd; delete fDetDir; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - if( command == fAbsMaterCmd ) { +void DetectorMessenger::SetNewValue(G4UIcommand* command, G4String newValue) +{ + if( command == fAbsMaterCmd ) { fDetector->SetAbsorberMaterial(newValue); - } - else if( command == fGapMaterCmd ) { + return; + } + + if( command == fGapMaterCmd ) { fDetector->SetGapMaterial(newValue); + return; } - else if( command == fAbsThickCmd ) { - fDetector - ->SetAbsorberThickness(fAbsThickCmd->GetNewDoubleValue(newValue)); - } - else if( command == fGapThickCmd ) { + + if( command == fAbsThickCmd ) { + fDetector->SetAbsorberThickness(fAbsThickCmd->GetNewDoubleValue(newValue)); + return; + } + + if( command == fGapThickCmd ) { fDetector->SetGapThickness(fGapThickCmd->GetNewDoubleValue(newValue)); + return; } - else if( command == fSizeYZCmd ) { + + if( command == fSizeYZCmd ) { fDetector->SetCalorSizeYZ(fSizeYZCmd->GetNewDoubleValue(newValue)); - } - else if( command == fNbLayersCmd ) { + return; + } + + if( command == fNbLayersCmd ) { fDetector->SetNbOfLayers(fNbLayersCmd->GetNewIntValue(newValue)); + return; } } diff --git a/examples/extended/analysis/shared/src/PrimaryGeneratorAction.cc b/examples/extended/analysis/AnaEx03/shared/src/PrimaryGeneratorAction.cc similarity index 94% rename from examples/extended/analysis/shared/src/PrimaryGeneratorAction.cc rename to examples/extended/analysis/AnaEx03/shared/src/PrimaryGeneratorAction.cc index 779587b9bd..3e80341794 100644 --- a/examples/extended/analysis/shared/src/PrimaryGeneratorAction.cc +++ b/examples/extended/analysis/AnaEx03/shared/src/PrimaryGeneratorAction.cc @@ -25,10 +25,7 @@ // /// \file PrimaryGeneratorAction.cc /// \brief Implementation of the PrimaryGeneratorAction class -// -// -// -// + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -44,10 +41,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* DC) -: G4VUserPrimaryGeneratorAction(), - fParticleGun(0), - fDetector(DC) +PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* dc) +: fDetector(dc) { G4int n_particle = 1; fParticleGun = new G4ParticleGun(n_particle); @@ -56,8 +51,7 @@ PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* DC) G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); G4String particleName; - G4ParticleDefinition* particle - = particleTable->FindParticle(particleName="e-"); + G4ParticleDefinition* particle = particleTable->FindParticle(particleName="e-"); fParticleGun->SetParticleDefinition(particle); fParticleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); fParticleGun->SetParticleEnergy(500.*MeV); @@ -78,7 +72,7 @@ PrimaryGeneratorAction::~PrimaryGeneratorAction() void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { //this function is called at the begining of event - // + // fParticleGun->GeneratePrimaryVertex(anEvent); } diff --git a/examples/extended/analysis/shared/src/SteppingAction.cc b/examples/extended/analysis/AnaEx03/shared/src/SteppingAction.cc similarity index 81% rename from examples/extended/analysis/shared/src/SteppingAction.cc rename to examples/extended/analysis/AnaEx03/shared/src/SteppingAction.cc index 8363ef6709..ec8d92a988 100644 --- a/examples/extended/analysis/shared/src/SteppingAction.cc +++ b/examples/extended/analysis/AnaEx03/shared/src/SteppingAction.cc @@ -25,10 +25,7 @@ // /// \file SteppingAction.cc /// \brief Implementation of the SteppingAction class -// -// -// -// + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,34 +38,32 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::SteppingAction(DetectorConstruction* det, - EventAction* evt) -: G4UserSteppingAction(), - fDetector(det), fEventAction(evt) -{ } +SteppingAction::SteppingAction(DetectorConstruction* det, EventAction* evt) +: fDetector(det), fEventAction(evt) +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::~SteppingAction() -{ } +SteppingAction::~SteppingAction() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void SteppingAction::UserSteppingAction(const G4Step* aStep) { // get volume of the current step - G4VPhysicalVolume* volume - = aStep->GetPreStepPoint()->GetTouchableHandle()->GetVolume(); - + G4VPhysicalVolume* volume = + aStep->GetPreStepPoint()->GetTouchableHandle()->GetVolume(); + // collect energy and track length step by step G4double edep = aStep->GetTotalEnergyDeposit(); - + G4double stepl = 0.; - if (aStep->GetTrack()->GetDefinition()->GetPDGCharge() != 0.) + if (aStep->GetTrack()->GetDefinition()->GetPDGCharge() != 0.) { stepl = aStep->GetStepLength(); - - if (volume == fDetector->GetAbsorber()) fEventAction->AddAbs(edep,stepl); - if (volume == fDetector->GetGap()) fEventAction->AddGap(edep,stepl); + } + + if (volume == fDetector->GetAbsorber()) { fEventAction->AddAbs(edep,stepl); } + if (volume == fDetector->GetGap()) { fEventAction->AddGap(edep,stepl); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/shared/src/ActionInitialization.cc b/examples/extended/analysis/AnaEx03/src/ActionInitialization.cc similarity index 83% rename from examples/extended/analysis/shared/src/ActionInitialization.cc rename to examples/extended/analysis/AnaEx03/src/ActionInitialization.cc index 0bc86b90b0..42f72c78b6 100644 --- a/examples/extended/analysis/shared/src/ActionInitialization.cc +++ b/examples/extended/analysis/AnaEx03/src/ActionInitialization.cc @@ -28,7 +28,6 @@ /// \brief Implementation of the ActionInitialization class #include "ActionInitialization.hh" -#include "HistoManager.hh" #include "PrimaryGeneratorAction.hh" #include "RunAction.hh" #include "EventAction.hh" @@ -37,45 +36,36 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... ActionInitialization::ActionInitialization(DetectorConstruction* detector) - : G4VUserActionInitialization(), - fDetector(detector) + : fDetector(detector) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::~ActionInitialization() -{} +ActionInitialization::~ActionInitialization() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void ActionInitialization::BuildForMaster() const { - // Histo manager - HistoManager* histo = new HistoManager(); - // Actions - SetUserAction(new RunAction(histo)); + SetUserAction(new RunAction()); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void ActionInitialization::Build() const { - // Histo manager - HistoManager* histo = new HistoManager(); - // Actions // SetUserAction(new PrimaryGeneratorAction(fDetector)); - - RunAction* runAction = new RunAction(histo); - SetUserAction(runAction); - - EventAction* eventAction = new EventAction(runAction, histo); + + SetUserAction(new RunAction()); + + auto eventAction = new EventAction(); SetUserAction(eventAction); - SteppingAction* steppingAction = new SteppingAction(fDetector, eventAction); + auto steppingAction = new SteppingAction(fDetector, eventAction); SetUserAction(steppingAction); -} +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/shared/src/EventAction.cc b/examples/extended/analysis/AnaEx03/src/EventAction.cc similarity index 75% rename from examples/extended/analysis/shared/src/EventAction.cc rename to examples/extended/analysis/AnaEx03/src/EventAction.cc index a8b153ef0f..21ebae2618 100644 --- a/examples/extended/analysis/shared/src/EventAction.cc +++ b/examples/extended/analysis/AnaEx03/src/EventAction.cc @@ -28,65 +28,60 @@ // // // -// +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "EventAction.hh" - #include "RunAction.hh" -#include "HistoManager.hh" +#include "G4AnalysisManager.hh" #include "G4Event.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::EventAction(RunAction* run, HistoManager* histo) -:G4UserEventAction(), - fRunAct(run),fHistoManager(histo), - fEnergyAbs(0.), fEnergyGap(0.), - fTrackLAbs(0.), fTrackLGap(0.), - fPrintModulo(0) -{ - fPrintModulo = 100; } +EventAction::EventAction() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::~EventAction() -{ } +EventAction::~EventAction() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void EventAction::BeginOfEventAction(const G4Event* evt) -{ +{ G4int evtNb = evt->GetEventID(); - if (evtNb%fPrintModulo == 0) + if (evtNb%fPrintModulo == 0) { G4cout << "\n---> Begin of event: " << evtNb << G4endl; - - // initialisation per event - fEnergyAbs = fEnergyGap = 0.; - fTrackLAbs = fTrackLGap = 0.; + } + + // initialisation per event + fEnergyAbs = fEnergyGap = 0.; + fTrackLAbs = fTrackLGap = 0.; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void EventAction::EndOfEventAction(const G4Event*) { - //accumulates statistic - // - fRunAct->FillPerEvent(fEnergyAbs, fEnergyGap, fTrackLAbs, fTrackLGap); - - //fill histograms - // - fHistoManager->FillHisto(0, fEnergyAbs); - fHistoManager->FillHisto(1, fEnergyGap); - fHistoManager->FillHisto(2, fTrackLAbs); - fHistoManager->FillHisto(3, fTrackLGap); - + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + + analysisManager->FillH1(0, fEnergyAbs); + analysisManager->FillH1(1, fEnergyGap); + analysisManager->FillH1(2, fTrackLAbs); + analysisManager->FillH1(3, fTrackLGap); + //fill ntuple // - fHistoManager->FillNtuple(fEnergyAbs, fEnergyGap, fTrackLAbs, fTrackLGap); -} + // Fill 1st ntuple ( id = 0) + analysisManager->FillNtupleDColumn(0, 0, fEnergyAbs); + analysisManager->FillNtupleDColumn(0, 1, fEnergyGap); + analysisManager->AddNtupleRow(0); + // Fill 2nd ntuple ( id = 1) + analysisManager->FillNtupleDColumn(1, 0, fTrackLAbs); + analysisManager->FillNtupleDColumn(1, 1, fTrackLGap); + analysisManager->AddNtupleRow(1); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx03/src/RunAction.cc b/examples/extended/analysis/AnaEx03/src/RunAction.cc new file mode 100644 index 0000000000..7011e4f8e0 --- /dev/null +++ b/examples/extended/analysis/AnaEx03/src/RunAction.cc @@ -0,0 +1,136 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +/// \file RunAction.cc +/// \brief Implementation of the RunAction class +// +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "RunAction.hh" + +#include "G4AnalysisManager.hh" +#include "G4Run.hh" +#include "G4RunManager.hh" +#include "G4UnitsTable.hh" +#include "G4SystemOfUnits.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +RunAction::RunAction() +{ + // Create or get analysis manager + // The choice of analysis technology is done via selection of a namespace + // in HistoManager.hh + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + analysisManager->SetDefaultFileType("root"); + analysisManager->SetVerboseLevel(1); + // Only merge in MT mode to avoid warning when running in Sequential mode + #ifdef G4MULTITHREADED + analysisManager->SetNtupleMerging(true); + #endif + + // Create directories + analysisManager->SetHistoDirectoryName("histo"); + analysisManager->SetNtupleDirectoryName("ntuple"); + + // Create histograms. + // Histogram ids are generated automatically starting from 0. + // The start value can be changed by: + // analysisManager->SetFirstHistoId(1); + + // id = 0 + analysisManager->CreateH1("EAbs","Edep in absorber (MeV)", 100, 0., 800*MeV); + // id = 1 + analysisManager->CreateH1("EGap","Edep in gap (MeV)", 100, 0., 100*MeV); + // id = 2 + analysisManager->CreateH1("LAbs","trackL in absorber (mm)", 100, 0., 1*m); + // id = 3 + analysisManager->CreateH1("LGap","trackL in gap (mm)", 100, 0., 50*cm); + + // Create ntuples. + // Ntuples ids are generated automatically starting from 0. + // The start value can be changed by: + // analysisManager->SetFirstMtupleId(1); + + // Create 1st ntuple (id = 0) + analysisManager->CreateNtuple("Ntuple1", "Edep"); + analysisManager->CreateNtupleDColumn("Eabs"); // column Id = 0 + analysisManager->CreateNtupleDColumn("Egap"); // column Id = 1 + analysisManager->FinishNtuple(); + + // Create 2nd ntuple (id = 1) + // + analysisManager->CreateNtuple("Ntuple2", "TrackL"); + analysisManager->CreateNtupleDColumn("Labs"); // column Id = 0 + analysisManager->CreateNtupleDColumn("Lgap"); // column Id = 1 + analysisManager->FinishNtuple(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +RunAction::~RunAction() = default; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::BeginOfRunAction(const G4Run* run) +{ + G4cout << "### Run " << run->GetRunID() << " start." << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::EndOfRunAction(const G4Run* /*run*/) +{ + PrintStatistic(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::PrintStatistic() +{ + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + + G4cout << "\n ----> print histograms statistic \n" << G4endl; + for ( G4int i=0; iGetNofH1s(); ++i ) { + G4String name = analysisManager->GetH1Name(i); + auto h1 = analysisManager->GetH1(i); + + G4String unitCategory; + if (name[0U] == 'E' ) { unitCategory = "Energy"; } + if (name[0U] == 'L' ) { unitCategory = "Length"; } + // we use an explicit unsigned int type for operator [] argument + // to avoid problems with windows compiler + + G4cout << name + << ": mean = " << G4BestUnit(h1->mean(), unitCategory) + << " rms = " << G4BestUnit(h1->rms(), unitCategory ) + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/AnaEx03/vis.mac b/examples/extended/analysis/AnaEx03/vis.mac new file mode 100644 index 0000000000..b2a23560eb --- /dev/null +++ b/examples/extended/analysis/AnaEx03/vis.mac @@ -0,0 +1,76 @@ +# Macro file for the initialization phase of "exampleN03.cc" +# when running in interactive mode +# +# Sets some default verbose +# +/control/verbose 2 +/run/verbose 2 +# +# Use this open statement to create an OpenGL view: +/vis/open OGL 600x600-0+0 +# +# Use this open statement to create a .prim file suitable for +# viewing in DAWN: +#/vis/open DAWNFILE +# +# Use this open statement to create a .heprep file suitable for +# viewing in HepRApp: +#/vis/open HepRepFile +# +# Use this open statement to create a .wrl file suitable for +# viewing in a VRML viewer: +#/vis/open VRML2FILE +# +# Disable auto refresh and quieten vis messages whilst scene and +# trajectories are established: +/vis/viewer/set/autoRefresh false +/vis/verbose errors +# +# Draw geometry: +/vis/drawVolume +# +# Specify view angle: +#/vis/viewer/set/viewpointThetaPhi 90. 0. +# +# Specify zoom value: +#/vis/viewer/zoom 2. +# +# Specify style (surface or wireframe): +#/vis/viewer/set/style wireframe +# +# Draw coordinate axes: +#/vis/scene/add/axes 0 0 0 1 m +# +# Draw smooth trajectories at end of event, showing trajectory points +# as markers 2 pixels wide: +/vis/scene/add/trajectories smooth +/vis/modeling/trajectories/create/drawByCharge +/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true +/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2 +# (if too many tracks cause core dump => /tracking/storeTrajectory 0) +# +# Draw hits at end of event: +#/vis/scene/add/hits +# +# To draw only gammas: +#/vis/filtering/trajectories/create/particleFilter +#/vis/filtering/trajectories/particleFilter-0/add gamma +# +# To invert the above, drawing all particles except gammas, +# keep the above two lines but also add: +#/vis/filtering/trajectories/particleFilter-0/invert true +# +# Many other options are available with /vis/modeling and /vis/filtering. +# For example, to select colour by particle ID: +#/vis/modeling/trajectories/create/drawByParticleID +#/vis/modeling/trajectories/drawByParticleID-0/set e- blue +# +# To superimpose all of the events from a given run: +/vis/scene/endOfEventAction accumulate +# +# Re-establish auto refreshing and verbosity: +/vis/viewer/set/autoRefresh true +/vis/verbose warnings +# +# For file-based drivers, use this to create an empty detector view: +#/vis/viewer/flush diff --git a/examples/extended/analysis/B1Con/.README.txt b/examples/extended/analysis/B1Con/.README.txt index 6680220af2..c0f44c1d9b 100644 --- a/examples/extended/analysis/B1Con/.README.txt +++ b/examples/extended/analysis/B1Con/.README.txt @@ -5,7 +5,7 @@ /*! \page ExampleB1Con Example B1Con -Example of Convergence Tester +Example of Convergence Tester Koi, Tatsumi \n SLAC National Accelerator Laboratory / PPA \n @@ -13,25 +13,25 @@ Example of Convergence Tester This example shows how to use convergece tester in Geant4. The aim of Convergence Tester -- After a Monte Carlo simulation, we get an answer. However how to estimate quality of the answer. -The answer is usually given in a form of average value. -But sometimes the value is strongly affected by single or a few events in the full calculation. +- After a Monte Carlo simulation, we get an answer. However how to estimate quality of the answer. +The answer is usually given in a form of average value. +But sometimes the value is strongly affected by single or a few events in the full calculation. In such case, we must concern about quality of the value. What we must remember is - Large number of history does not valid result of simulation. - Small Relative Error does not valid result of simulation -Convergence tester provides statistical information +Convergence tester provides statistical information to assist establishing valid confidence intervals for Monte Carlo results for users. -Geometry and Physics are same to exampleB1. Please see \ref ExampleB1. +Geometry and Physics are same to exampleB1. Please see \ref ExampleB1. Note that in this example, the classes with the code added for the purpose of demonstration of the Convergence Tester start with a prefix B1Con instead of B1 and also the executable and the test macro names are changed -in exampleB1Con and exampleB1Con.in. +in exampleB1Con and exampleB1Con.in. Known problem: -Computing time of T cannot be gotten properly in current MT migration of example of B1Con. Therefore +Computing time of T cannot be gotten properly in current MT migration of example of B1Con. Therefore FOM (=1/(R^2T) where R is relative error and T is computing time) relates numbers are unusable. \verbatim @@ -39,7 +39,7 @@ FOM (=1/(R^2T) where R is relative error and T is computing time) relates number Output example // Part I.A -// Basic statistics values +// Basic statistics values G4ConvergenceTester Output Result of DOSE_TALLY EFFICIENCY = 0.601 @@ -52,7 +52,7 @@ G4ConvergenceTester Output Result of DOSE_TALLY FOM = 1238.68 // Part I.B -// If the largeset scored events happen at next to the last event, +// If the largeset scored events happen at next to the last event, // then how much the event effects the statistics values of the calculation THE LARGEST SCORE = 1.07301e-11 and it happend at 487th event @@ -67,16 +67,16 @@ THE LARGEST SCORE = 1.07301e-11 and it happend at 487th event MEAN distribution is RANDOM r follows 1/std::sqrt(N) -r is monotonically decrease +r is monotonically decrease r is less than 0.1. r = 0.0304622 VOV follows 1/std::sqrt(N) -VOV is monotonically decrease +VOV is monotonically decrease FOM distribution is not RANDOM SLOPE is not large enough This result passes 6 / 8 Convergence Test. // Part II -// Profile of statistics values in the history +// Profile of statistics values in the history G4ConvergenceTester Output History of DOSE_TALLY i/16 till_ith mean var sd r vov fom shift e r2eff r2int @@ -108,6 +108,6 @@ Judith F. Briesmeister, Editor \n LA-12625-M, Issued: March 1997, UC 705 and UC 700 \n CHAPTER 2. GEOMETRY, DATA, PHYSICS, AND MATHEMATICS \n VI. ESTIMATION OF THE MONTE CARLO PRECISION \n - -*/ + +*/ diff --git a/examples/extended/analysis/B1Con/README b/examples/extended/analysis/B1Con/README index 2652a80e9c..6ea9e99129 100644 --- a/examples/extended/analysis/B1Con/README +++ b/examples/extended/analysis/B1Con/README @@ -1,5 +1,5 @@ -Example of Convergence Tester +Example of Convergence Tester Koi, Tatsumi SLAC National Accelerator Laboratory / PPA @@ -8,30 +8,30 @@ Example of Convergence Tester This example shows how to use convergece tester in Geant4. The aim of Convergence Tester After a Monte Carlo simulation, we get an answer. However how to estimate quality of the answer. -The answer is usually given in a form of average value. -But sometimes the value is strongly affected by single or a few events in the full calculation. +The answer is usually given in a form of average value. +But sometimes the value is strongly affected by single or a few events in the full calculation. In such case, we must concern about quality of the value. What we must remember is Large number of history does not valid result of simulation. Small Relative Error does not valid result of simulation -Convergence tester provides statistical information +Convergence tester provides statistical information to assist establishing valid confidence intervals for Monte Carlo results for users. Geometry and Physics are same to exampleB1. Please see README.B1 Note that in this example, the classes with the code added for the purpose of demonstration of the Convergence Tester start with a prefix B1Con instead of B1 and also the executable and the test macro names are changed -in exampleB1Con and exampleB1Con.in. +in exampleB1Con and exampleB1Con.in. Known problem: -Computing time of T cannot be gotten properly in current MT migration of example of B1Con. Therefore +Computing time of T cannot be gotten properly in current MT migration of example of B1Con. Therefore FOM (=1/(R^2T) where R is relative error and T is computing time) relates numbers are unusable. *********************************************************************************************************************** Output example // Part I.A -// Basic statistics values +// Basic statistics values G4ConvergenceTester Output Result of DOSE_TALLY EFFICIENCY = 0.601 @@ -44,7 +44,7 @@ G4ConvergenceTester Output Result of DOSE_TALLY FOM = 1238.68 // Part I.B -// If the largeset scored events happen at next to the last event, +// If the largeset scored events happen at next to the last event, // then how much the event effects the statistics values of the calculation THE LARGEST SCORE = 1.07301e-11 and it happend at 487th event @@ -59,17 +59,17 @@ THE LARGEST SCORE = 1.07301e-11 and it happend at 487th event MEAN distribution is RANDOM r follows 1/std::sqrt(N) -r is monotonically decrease +r is monotonically decrease r is less than 0.1. r = 0.0304622 VOV follows 1/std::sqrt(N) -VOV is monotonically decrease +VOV is monotonically decrease FOM distribution is not RANDOM SLOPE is not large enough This result passes 6 / 8 Convergence Test. // Part II -// Profile of statistics values in the history +// Profile of statistics values in the history G4ConvergenceTester Output History of DOSE_TALLY i/16 till_ith mean var sd r vov fom shift e r2eff r2int diff --git a/examples/extended/analysis/B1Con/exampleB01Con.out b/examples/extended/analysis/B1Con/exampleB01Con.out index d6d95755ff..a75e560588 100644 --- a/examples/extended/analysis/B1Con/exampleB01Con.out +++ b/examples/extended/analysis/B1Con/exampleB01Con.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -27,7 +27,6 @@ Checking overlaps for volume Shape2:0 (G4Trd) ... OK! Emin(FTFP)= 3 GeV Emax(FTFP)= 100000 GeV Emin(BERT)= 1 GeV Emax(BERT)= 6 GeV Emax(BERTpions)= 12 GeV Emin(BIC) = 0 GeV Emax(BIC)= 1.5 GeV. -### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... Registering graphics systems... @@ -40,6 +39,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -92,6 +93,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -119,7 +121,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -170,8 +172,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -521,28 +523,6 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 ==================================================================== HADRONIC PROCESSES SUMMARY (verbose level 1) ---------------------------------------------------- - Hadronic Processes for neutron - - Process: hadElastic - Model: hElasticCHIPS: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV - - - Process: neutronInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 1 GeV ---> 6 GeV - Model: Binary Cascade: 0 eV ---> 1.5 GeV - Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV - - - Process: nCapture - Model: nRadCapture: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV - - - Process: nKiller - --------------------------------------------------- Hadronic Processes for B- @@ -659,6 +639,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -824,6 +809,28 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: muMinusCaptureAtRest +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 1 GeV ---> 6 GeV + Model: Binary Cascade: 0 eV ---> 1.5 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + --------------------------------------------------- Hadronic Processes for pi+ @@ -950,53 +957,53 @@ See commands in /vis/modeling/trajectories/ for other options. ---> Begin of event: 900 G4ConvergenceTester Output Result of DOSE_TALLY - EFFICIENCY = 0.19 - MEAN = 4.54775e-14 - VAR = 1.54621e-26 - SD = 1.24347e-13 - R = 0.0864645 - SHIFT = 1.75356e-13 - VOV = 0.00879621 - FOM = 4458.64 -THE LARGEST SCORE = 5.55155e-13 and it happened at 725th event - Affected Mean = 4.59866e-14 and its ratio to original is 1.0112 - Affected VAR = 1.57062e-26 and its ratio to original is 1.01578 - Affected R = 0.0861363 and its ratio to original is 0.996204 - Affected SHIFT = 1.75907e-13 and its ratio to original is 1.00314 - Affected FOM = 4458.64 and its ratio to original is 1 -MEAN distribution is RANDOM + EFFICIENCY = 0.187 + MEAN = 4.59908e-14 + VAR = 1.60687e-26 + SD = 1.26762e-13 + R = 0.0871604 + SHIFT = 1.78107e-13 + VOV = 0.00865677 + FOM = 3290.8 +THE LARGEST SCORE = 5.43178e-13 and it happened at 566th event + Affected Mean = 4.64875e-14 and its ratio to original is 1.0108 + Affected VAR = 1.62996e-26 and its ratio to original is 1.01437 + Affected R = 0.086803 and its ratio to original is 0.9959 + Affected SHIFT = 1.78431e-13 and its ratio to original is 1.00182 + Affected FOM = 3290.8 and its ratio to original is 1 +MEAN distribution is not RANDOM r follows 1/std::sqrt(N) r is monotonically decrease -r is less than 0.1. r = 0.0864645 +r is less than 0.1. r = 0.0871604 VOV follows 1/std::sqrt(N) VOV is monotonically decrease FOM distribution is not RANDOM Number of non zero history too small to calculate SLOPE -This result passes 6 / 8 Convergence Test. +This result passes 5 / 8 Convergence Test. G4ConvergenceTester Output History of DOSE_TALLY i/16 till_ith mean var sd r vov fom shift e r2eff r2int - 1 62 7.16942e-14 2.75139e-26 1.65873e-13 0.291489 0.0664873 392.316 1.61682e-13 0.206349 0.0610501 0.0225668 - 2 124 5.40386e-14 2.03785e-26 1.42753e-13 0.23628 0.0521791 597.07 1.75589e-13 0.184 0.0354783 0.0199033 - 3 187 5.11409e-14 1.80672e-26 1.34414e-13 0.191689 0.0389492 907.159 1.73027e-13 0.191489 0.0224586 0.0140907 - 4 249 4.49395e-14 1.58686e-26 1.25971e-13 0.177285 0.0349351 1060.56 1.77492e-13 0.176 0.0187273 0.0125769 - 5 312 4.69861e-14 1.59837e-26 1.26426e-13 0.152088 0.0267992 1441.07 1.73426e-13 0.194888 0.0131986 0.00985845 - 6 374 4.36141e-14 1.49871e-26 1.22422e-13 0.144949 0.0252672 1586.52 1.78908e-13 0.186667 0.011619 0.00933524 - 7 437 4.09933e-14 1.38469e-26 1.17673e-13 0.13716 0.0230905 1771.85 1.77323e-13 0.178082 0.0105374 0.00823238 - 8 499 4.33581e-14 1.45829e-26 1.2076e-13 0.124557 0.0186101 2148.55 1.74337e-13 0.18 0.00911111 0.00637222 - 9 562 4.51372e-14 1.52048e-26 1.23308e-13 0.115134 0.015558 2514.63 1.72778e-13 0.181172 0.00802772 0.00520448 - 10 624 4.5396e-14 1.54863e-26 1.24444e-13 0.109652 0.013967 2772.35 1.745e-13 0.1856 0.00702069 0.00498359 - 11 687 4.43339e-14 1.50662e-26 1.22745e-13 0.105553 0.0129051 2991.82 1.73675e-13 0.178779 0.00667659 0.0044487 - 12 749 4.43717e-14 1.49613e-26 1.22316e-13 0.100658 0.0120126 3289.9 1.73805e-13 0.184 0.00591304 0.00420546 - 13 812 4.48656e-14 1.53437e-26 1.2387e-13 0.096829 0.0109964 3555.23 1.75899e-13 0.183272 0.0054814 0.00388293 - 14 874 4.44551e-14 1.51349e-26 1.23024e-13 0.0935542 0.0104713 3808.48 1.76899e-13 0.186286 0.00499211 0.00375028 - 15 937 4.4108e-14 1.49933e-26 1.22447e-13 0.0906421 0.00980923 4057.13 1.76433e-13 0.184435 0.00471425 0.00349298 - 16 999 4.54775e-14 1.54621e-26 1.24347e-13 0.0864645 0.00879621 4458.64 1.75356e-13 0.19 0.00426316 0.00320548 + 1 62 6.0424e-14 2.12694e-26 1.4584e-13 0.304087 0.085229 270.361 1.58047e-13 0.253968 0.046627 0.0443743 + 2 124 4.34522e-14 1.48629e-26 1.21913e-13 0.250949 0.0715801 396.982 1.72666e-13 0.2 0.032 0.0304714 + 3 187 4.30264e-14 1.42936e-26 1.19556e-13 0.202655 0.0493 608.732 1.71213e-13 0.191489 0.0224586 0.0183919 + 4 249 3.87796e-14 1.29331e-26 1.13724e-13 0.185471 0.0425375 726.751 1.75121e-13 0.18 0.0182222 0.0160398 + 5 312 4.56897e-14 1.50775e-26 1.22791e-13 0.151906 0.0276474 1083.4 1.70399e-13 0.201278 0.0126781 0.0103236 + 6 374 4.42641e-14 1.49653e-26 1.22333e-13 0.142717 0.0239222 1227.41 1.73651e-13 0.189333 0.0114178 0.00889589 + 7 437 4.66551e-14 1.62359e-26 1.2742e-13 0.130498 0.019391 1468.03 1.76608e-13 0.189498 0.00976509 0.00722566 + 8 499 4.4408e-14 1.54392e-26 1.24254e-13 0.125131 0.0183329 1596.64 1.79065e-13 0.188 0.0086383 0.00698825 + 9 562 4.52784e-14 1.55386e-26 1.24654e-13 0.116027 0.0157509 1857.03 1.76339e-13 0.186501 0.00774761 0.0056908 + 10 624 4.44384e-14 1.55239e-26 1.24595e-13 0.112151 0.0146302 1987.63 1.79489e-13 0.184 0.00709565 0.00546203 + 11 687 4.50037e-14 1.5803e-26 1.2571e-13 0.106495 0.013151 2204.37 1.80261e-13 0.184593 0.00642053 0.00490412 + 12 749 4.56328e-14 1.59111e-26 1.26139e-13 0.100935 0.0118922 2453.89 1.79403e-13 0.186667 0.00580952 0.00436478 + 13 812 4.54608e-14 1.57597e-26 1.25538e-13 0.0968483 0.0109613 2665.36 1.78444e-13 0.186962 0.00534894 0.00401913 + 14 874 4.62163e-14 1.60542e-26 1.26705e-13 0.0926819 0.00992813 2910.38 1.77974e-13 0.187429 0.0049547 0.00362541 + 15 937 4.637e-14 1.62631e-26 1.27527e-13 0.0897973 0.00916043 3100.37 1.78559e-13 0.186567 0.00464819 0.00340676 + 16 999 4.59908e-14 1.60687e-26 1.26762e-13 0.0871604 0.00865677 3290.8 1.78107e-13 0.187 0.00434759 0.00324175 --------------------End of Global Run----------------------- The run consists of 1000 gamma of 6 MeV - Dose in scoring volume : 45.4775 picoGy +- 3.93022 picoGy + Dose in scoring volume : 45.9908 picoGy +- 4.00657 picoGy ------------------------------------------------------------ ### Run 1 start. @@ -1022,24 +1029,24 @@ i/16 till_ith mean var sd r vov ---> Begin of event: 900 G4ConvergenceTester Output Result of DOSE_TALLY - EFFICIENCY = 0.64 - MEAN = 5.10447e-12 - VAR = 2.13111e-23 - SD = 4.61639e-12 - R = 0.0285991 - SHIFT = -4.78482e-14 - VOV = 0.00016569 - FOM = 5094.3 -THE LARGEST SCORE = 1.07652e-11 and it happened at 228th event - Affected Mean = 5.11012e-12 and its ratio to original is 1.00111 - Affected VAR = 2.13218e-23 and its ratio to original is 1.0005 - Affected R = 0.0285603 and its ratio to original is 0.998645 - Affected SHIFT = -5.20011e-14 and its ratio to original is 1.08679 - Affected FOM = 5094.3 and its ratio to original is 1 + EFFICIENCY = 0.613 + MEAN = 5.03e-12 + VAR = 2.16051e-23 + SD = 4.64813e-12 + R = 0.029222 + SHIFT = 1.12337e-14 + VOV = 0.000152853 + FOM = 4504.09 +THE LARGEST SCORE = 1.09115e-11 and it happened at 970th event + Affected Mean = 5.03588e-12 and its ratio to original is 1.00117 + Affected VAR = 2.1618e-23 and its ratio to original is 1.0006 + Affected R = 0.029182 and its ratio to original is 0.998633 + Affected SHIFT = 7.11202e-15 and its ratio to original is 0.633098 + Affected FOM = 4504.09 and its ratio to original is 1 MEAN distribution is RANDOM r follows 1/std::sqrt(N) r is monotonically decrease -r is less than 0.1. r = 0.0285991 +r is less than 0.1. r = 0.029222 VOV follows 1/std::sqrt(N) VOV is monotonically decrease FOM distribution is not RANDOM @@ -1049,26 +1056,26 @@ This result passes 6 / 8 Convergence Test. G4ConvergenceTester Output History of DOSE_TALLY i/16 till_ith mean var sd r vov fom shift e r2eff r2int - 1 62 4.49813e-12 2.09595e-23 4.57815e-12 0.12823 0.00381591 253.403 5.33992e-13 0.603175 0.0104428 0.00573908 - 2 124 5.14072e-12 2.10419e-23 4.58714e-12 0.0798111 0.00157584 654.128 3.7877e-15 0.672 0.00390476 0.00241408 - 3 187 5.32525e-12 2.15455e-23 4.64171e-12 0.063571 0.000906649 1031.03 -1.73863e-13 0.664894 0.00268085 0.00133893 - 4 249 5.45452e-12 2.13379e-23 4.6193e-12 0.0535611 0.000751368 1452.41 -3.31636e-13 0.664 0.0020241 0.000833219 - 5 312 5.40777e-12 2.14486e-23 4.63126e-12 0.048407 0.000560306 1778.16 -3.0573e-13 0.658147 0.00165948 0.000676274 - 6 374 5.41566e-12 2.17557e-23 4.6643e-12 0.0444753 0.000429505 2106.45 -3.15575e-13 0.653333 0.00141497 0.000557815 - 7 437 5.37251e-12 2.16427e-23 4.65217e-12 0.0413753 0.000367841 2433.92 -2.7235e-13 0.6621 0.00116517 0.000542835 - 8 499 5.25137e-12 2.17514e-23 4.66384e-12 0.0397179 0.000306128 2641.29 -1.59002e-13 0.652 0.00106748 0.000506872 - 9 562 5.30997e-12 2.18373e-23 4.67304e-12 0.0370897 0.000265608 3028.89 -2.27085e-13 0.650089 0.000956042 0.000417158 - 10 624 5.41442e-12 2.19472e-23 4.68478e-12 0.0346096 0.000244466 3478.52 -3.26037e-13 0.6576 0.00083309 0.000362821 - 11 687 5.29339e-12 2.18842e-23 4.67805e-12 0.0336928 0.000212531 3670.41 -2.11648e-13 0.649709 0.000783648 0.000349907 - 12 749 5.26785e-12 2.17321e-23 4.66177e-12 0.0323138 0.000202458 3990.38 -1.98013e-13 0.649333 0.000720055 0.000322732 - 13 812 5.20103e-12 2.15545e-23 4.64268e-12 0.0313065 0.000193264 4251.29 -1.40443e-13 0.645756 0.00067475 0.00030414 - 14 874 5.18393e-12 2.1532e-23 4.64026e-12 0.0302607 0.000179549 4550.2 -1.28579e-13 0.642286 0.000636502 0.000278162 - 15 937 5.09562e-12 2.14802e-23 4.63467e-12 0.0296976 0.000167938 4724.4 -4.25787e-14 0.636461 0.000608944 0.000272062 - 16 999 5.10447e-12 2.13111e-23 4.61639e-12 0.0285991 0.00016569 5094.3 -4.78482e-14 0.64 0.0005625 0.00025459 + 1 62 5.17325e-12 1.91457e-23 4.37558e-12 0.106562 0.00460568 338.706 -9.94916e-14 0.666667 0.00793651 0.00323868 + 2 124 5.21664e-12 2.11758e-23 4.60171e-12 0.0788994 0.00139208 617.845 -1.28923e-13 0.656 0.00419512 0.00198019 + 3 187 5.63365e-12 2.06542e-23 4.54469e-12 0.058835 0.00129701 1111.11 -4.982e-13 0.702128 0.00225661 0.00118653 + 4 249 5.44228e-12 2.05638e-23 4.53473e-12 0.0526988 0.00090394 1384.92 -3.59016e-13 0.684 0.00184795 0.000918103 + 5 312 5.36346e-12 2.04973e-23 4.5274e-12 0.0477124 0.000706708 1689.52 -3.13672e-13 0.667732 0.0015898 0.0006794 + 6 374 5.28963e-12 2.07052e-23 4.55029e-12 0.044422 0.000543349 1949.08 -2.47357e-13 0.653333 0.00141497 0.000553086 + 7 437 5.38497e-12 2.10041e-23 4.58302e-12 0.040666 0.000449805 2325.75 -3.23752e-13 0.657534 0.00118912 0.000460831 + 8 499 5.35824e-12 2.11797e-23 4.60214e-12 0.0384108 0.000373434 2606.88 -3.01996e-13 0.648 0.00108642 0.000386017 + 9 562 5.25664e-12 2.13136e-23 4.61666e-12 0.0370139 0.00030316 2807.35 -1.95838e-13 0.642984 0.000986232 0.000381367 + 10 624 5.15986e-12 2.13723e-23 4.62302e-12 0.0358383 0.000263087 2994.55 -1.08052e-13 0.632 0.000931646 0.000350686 + 11 687 5.14883e-12 2.14194e-23 4.62812e-12 0.034269 0.000233601 3275.1 -1.06822e-13 0.627907 0.000861326 0.000311329 + 12 749 5.18583e-12 2.13857e-23 4.62447e-12 0.0325621 0.000218672 3627.44 -1.31044e-13 0.633333 0.00077193 0.00028695 + 13 812 5.11885e-12 2.15172e-23 4.63866e-12 0.0317815 0.000192976 3807.82 -6.7404e-14 0.626076 0.000734624 0.000274199 + 14 874 5.11608e-12 2.1523e-23 4.63929e-12 0.0306556 0.00017978 4092.66 -6.72313e-14 0.625143 0.000685296 0.000253397 + 15 937 5.08077e-12 2.16073e-23 4.64836e-12 0.0298723 0.000162726 4310.12 -3.59028e-14 0.618337 0.00065804 0.000233363 + 16 999 5.03e-12 2.16051e-23 4.64813e-12 0.029222 0.000152853 4504.09 1.12337e-14 0.613 0.000631321 0.000221749 --------------------End of Global Run----------------------- The run consists of 1000 proton of 210 MeV - Dose in scoring volume : 5.10447 nanoGy +- 145.91 picoGy + Dose in scoring volume : 5.03 nanoGy +- 146.913 picoGy ------------------------------------------------------------ Graphics systems deleted. diff --git a/examples/extended/analysis/B1Con/include/B1ConActionInitialization.hh b/examples/extended/analysis/B1Con/include/B1ConActionInitialization.hh index 4db1a4842d..50eedc0e16 100644 --- a/examples/extended/analysis/B1Con/include/B1ConActionInitialization.hh +++ b/examples/extended/analysis/B1Con/include/B1ConActionInitialization.hh @@ -48,4 +48,4 @@ class B1ConActionInitialization : public G4VUserActionInitialization #endif - + diff --git a/examples/extended/analysis/B1Con/include/B1ConRun.hh b/examples/extended/analysis/B1Con/include/B1ConRun.hh index e0a1ef1a23..0149b2afa1 100644 --- a/examples/extended/analysis/B1Con/include/B1ConRun.hh +++ b/examples/extended/analysis/B1Con/include/B1ConRun.hh @@ -46,7 +46,7 @@ class B1ConRun : public B1Run // method from the base class virtual void Merge(const G4Run*); - virtual void AddEdep (G4double edep); + virtual void AddEdep (G4double edep); // get methods G4int GetNumberOfEvent() const { return (G4int)fEdepEventVector.size(); } diff --git a/examples/extended/analysis/B1Con/include/B1ConRunAction.hh b/examples/extended/analysis/B1Con/include/B1ConRunAction.hh index b6cfaeff24..6606e3a5d4 100644 --- a/examples/extended/analysis/B1Con/include/B1ConRunAction.hh +++ b/examples/extended/analysis/B1Con/include/B1ConRunAction.hh @@ -39,7 +39,7 @@ class G4LogicalVolume; /// Run action class /// -/// In EndOfRunAction(), it calculates the dose in the selected volume +/// In EndOfRunAction(), it calculates the dose in the selected volume /// from the energy deposit accumulated via stepping and event actions. /// The computed dose is then printed on the screen. @@ -53,7 +53,7 @@ class B1ConRunAction : public G4UserRunAction virtual void BeginOfRunAction(const G4Run*); virtual void EndOfRunAction(const G4Run*); private: - G4ConvergenceTester* fdose_tally; + G4ConvergenceTester* fdose_tally; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/B1Con/include/B1DetectorConstruction.hh b/examples/extended/analysis/B1Con/include/B1DetectorConstruction.hh index 8758fac826..74dc556eca 100644 --- a/examples/extended/analysis/B1Con/include/B1DetectorConstruction.hh +++ b/examples/extended/analysis/B1Con/include/B1DetectorConstruction.hh @@ -45,7 +45,7 @@ class B1DetectorConstruction : public G4VUserDetectorConstruction virtual ~B1DetectorConstruction(); virtual G4VPhysicalVolume* Construct(); - + G4LogicalVolume* GetScoringVolume() const { return fScoringVolume; } protected: diff --git a/examples/extended/analysis/B1Con/include/B1EventAction.hh b/examples/extended/analysis/B1Con/include/B1EventAction.hh index c6e8820575..034ad45ca1 100644 --- a/examples/extended/analysis/B1Con/include/B1EventAction.hh +++ b/examples/extended/analysis/B1Con/include/B1EventAction.hh @@ -43,7 +43,7 @@ class B1EventAction : public G4UserEventAction public: B1EventAction(); virtual ~B1EventAction(); - + virtual void BeginOfEventAction(const G4Event* event); virtual void EndOfEventAction(const G4Event* event); @@ -59,4 +59,4 @@ class B1EventAction : public G4UserEventAction #endif - + diff --git a/examples/extended/analysis/B1Con/include/B1PrimaryGeneratorAction.hh b/examples/extended/analysis/B1Con/include/B1PrimaryGeneratorAction.hh index ac224726bd..5f3bd064d2 100644 --- a/examples/extended/analysis/B1Con/include/B1PrimaryGeneratorAction.hh +++ b/examples/extended/analysis/B1Con/include/B1PrimaryGeneratorAction.hh @@ -40,21 +40,21 @@ class G4Box; /// The primary generator action class with particle gun. /// -/// The default kinematic is a 6 MeV gamma, randomly distribued +/// The default kinematic is a 6 MeV gamma, randomly distribued /// in front of the phantom across 80% of the (X,Y) phantom size. class B1PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: - B1PrimaryGeneratorAction(); + B1PrimaryGeneratorAction(); virtual ~B1PrimaryGeneratorAction(); // method from the base class - virtual void GeneratePrimaries(G4Event*); - + virtual void GeneratePrimaries(G4Event*); + // method to access particle gun const G4ParticleGun* GetParticleGun() const { return fParticleGun; } - + private: G4ParticleGun* fParticleGun; // pointer a to G4 gun class G4Box* fEnvelopeBox; diff --git a/examples/extended/analysis/B1Con/include/B1Run.hh b/examples/extended/analysis/B1Con/include/B1Run.hh index 2286e629db..cff79a5c0f 100644 --- a/examples/extended/analysis/B1Con/include/B1Run.hh +++ b/examples/extended/analysis/B1Con/include/B1Run.hh @@ -46,8 +46,8 @@ class B1Run : public G4Run // method from the base class virtual void Merge(const G4Run*); - - virtual void AddEdep (G4double edep); + + virtual void AddEdep (G4double edep); // get methods G4double GetEdep() const { return fEdep; } diff --git a/examples/extended/analysis/B1Con/include/B1SteppingAction.hh b/examples/extended/analysis/B1Con/include/B1SteppingAction.hh index 72561eaa3a..b8ee3f5d8d 100644 --- a/examples/extended/analysis/B1Con/include/B1SteppingAction.hh +++ b/examples/extended/analysis/B1Con/include/B1SteppingAction.hh @@ -38,7 +38,7 @@ class B1EventAction; class G4LogicalVolume; /// Stepping action class -/// +/// class B1SteppingAction : public G4UserSteppingAction { diff --git a/examples/extended/analysis/B1Con/src/B1ConActionInitialization.cc b/examples/extended/analysis/B1Con/src/B1ConActionInitialization.cc index dd4390db38..0bc7b5ddf7 100644 --- a/examples/extended/analysis/B1Con/src/B1ConActionInitialization.cc +++ b/examples/extended/analysis/B1Con/src/B1ConActionInitialization.cc @@ -60,8 +60,8 @@ void B1ConActionInitialization::Build() const B1EventAction* eventAction = new B1EventAction; SetUserAction(eventAction); - + SetUserAction(new B1SteppingAction(eventAction)); -} +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/B1Con/src/B1ConRun.cc b/examples/extended/analysis/B1Con/src/B1ConRun.cc index da5ec7c89d..9894b95a26 100644 --- a/examples/extended/analysis/B1Con/src/B1ConRun.cc +++ b/examples/extended/analysis/B1Con/src/B1ConRun.cc @@ -39,20 +39,20 @@ B1ConRun::B1ConRun() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... B1ConRun::~B1ConRun() -{} +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void B1ConRun::Merge(const G4Run* aRun) { // Merge data in base class - B1Run::Merge(aRun); + B1Run::Merge(aRun); const B1ConRun* localRun = static_cast(aRun); for ( size_t i = 0 ; i != localRun->fEdepEventVector.size() ; i++ ) { fEdepEventVector.push_back( localRun->fEdepEventVector[i] ); } -} +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/B1Con/src/B1ConRunAction.cc b/examples/extended/analysis/B1Con/src/B1ConRunAction.cc index edb24e48c4..1d74163297 100644 --- a/examples/extended/analysis/B1Con/src/B1ConRunAction.cc +++ b/examples/extended/analysis/B1Con/src/B1ConRunAction.cc @@ -42,18 +42,18 @@ B1ConRunAction::B1ConRunAction() : G4UserRunAction() -{ +{ // add new units for dose - // + // const G4double milligray = 1.e-3*gray; const G4double microgray = 1.e-6*gray; - const G4double nanogray = 1.e-9*gray; + const G4double nanogray = 1.e-9*gray; const G4double picogray = 1.e-12*gray; - + new G4UnitDefinition("milligray", "milliGy" , "Dose", milligray); new G4UnitDefinition("microgray", "microGy" , "Dose", microgray); new G4UnitDefinition("nanogray" , "nanoGy" , "Dose", nanogray); - new G4UnitDefinition("picogray" , "picoGy" , "Dose", picogray); + new G4UnitDefinition("picogray" , "picoGy" , "Dose", picogray); } @@ -65,19 +65,19 @@ B1ConRunAction::~B1ConRunAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4Run* B1ConRunAction::GenerateRun() -{ - return new B1ConRun; +{ + return new B1ConRun; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void B1ConRunAction::BeginOfRunAction(const G4Run* aRun) -{ +{ G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; //inform the runManager to save random number seed G4RunManager::GetRunManager()->SetRandomNumberStore(false); - + if (IsMaster()) { fdose_tally = new G4ConvergenceTester("DOSE_TALLY"); //fdose_tally = new G4ConvergenceTester(); @@ -91,7 +91,7 @@ void B1ConRunAction::EndOfRunAction(const G4Run* aRun) { G4int nofEvents = aRun->GetNumberOfEvent(); if (nofEvents == 0) return; - + const B1ConRun* b1ConRun = static_cast(aRun); // Compute dose @@ -123,15 +123,15 @@ void B1ConRunAction::EndOfRunAction(const G4Run* aRun) G4double particleEnergy = particleGun->GetParticleEnergy(); runCondition += G4BestUnit(particleEnergy,"Energy"); } - + // Print - // + // if (IsMaster()) { for ( G4int i = 0 ; i != b1ConRun->GetNumberOfEvent(); i++ ) { - G4double aDose = b1ConRun->GetEdepPerEvent(i)/mass/gray; - fdose_tally->AddScore( aDose ); + G4double aDose = b1ConRun->GetEdepPerEvent(i)/mass/gray; + fdose_tally->AddScore( aDose ); } fdose_tally->ShowResult(); @@ -148,7 +148,7 @@ void B1ConRunAction::EndOfRunAction(const G4Run* aRun) } G4cout << "\n The run consists of " << nofEvents << " "<< runCondition - << "\n Dose in scoring volume : " + << "\n Dose in scoring volume : " << G4BestUnit(dose,"Dose") << " +- " << G4BestUnit(rmsDose,"Dose") << "\n------------------------------------------------------------\n" << G4endl; diff --git a/examples/extended/analysis/B1Con/src/B1DetectorConstruction.cc b/examples/extended/analysis/B1Con/src/B1DetectorConstruction.cc index 52d533d58e..2e9c7ebe71 100644 --- a/examples/extended/analysis/B1Con/src/B1DetectorConstruction.cc +++ b/examples/extended/analysis/B1Con/src/B1DetectorConstruction.cc @@ -55,36 +55,36 @@ B1DetectorConstruction::~B1DetectorConstruction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4VPhysicalVolume* B1DetectorConstruction::Construct() -{ +{ // Get nist material manager G4NistManager* nist = G4NistManager::Instance(); - + // Envelope parameters // G4double env_sizeXY = 20*cm, env_sizeZ = 30*cm; G4Material* env_mat = nist->FindOrBuildMaterial("G4_WATER"); - + // Option to switch on/off checking of volumes overlaps // G4bool checkOverlaps = true; - // + // // World // G4double world_sizeXY = 1.2*env_sizeXY; G4double world_sizeZ = 1.2*env_sizeZ; G4Material* world_mat = nist->FindOrBuildMaterial("G4_AIR"); - - G4Box* solidWorld = + + G4Box* solidWorld = new G4Box("World", //its name 0.5*world_sizeXY, 0.5*world_sizeXY, 0.5*world_sizeZ); //its size - - G4LogicalVolume* logicWorld = + + G4LogicalVolume* logicWorld = new G4LogicalVolume(solidWorld, //its solid world_mat, //its material "World"); //its name - - G4VPhysicalVolume* physWorld = + + G4VPhysicalVolume* physWorld = new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) logicWorld, //its logical volume @@ -93,19 +93,19 @@ G4VPhysicalVolume* B1DetectorConstruction::Construct() false, //no boolean operation 0, //copy number checkOverlaps); //overlaps checking - - // + + // // Envelope - // - G4Box* solidEnv = + // + G4Box* solidEnv = new G4Box("Envelope", //its name 0.5*env_sizeXY, 0.5*env_sizeXY, 0.5*env_sizeZ); //its size - - G4LogicalVolume* logicEnv = + + G4LogicalVolume* logicEnv = new G4LogicalVolume(solidEnv, //its solid env_mat, //its material "Envelope"); //its name - + new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) logicEnv, //its logical volume @@ -114,52 +114,52 @@ G4VPhysicalVolume* B1DetectorConstruction::Construct() false, //no boolean operation 0, //copy number checkOverlaps); //overlaps checking - - // + + // // Shape 1 // - + G4Material* shape1_mat = nist->FindOrBuildMaterial("G4_A-150_TISSUE"); G4ThreeVector pos1 = G4ThreeVector(0, 2*cm, -7*cm); - - // Conical section shape + + // Conical section shape G4double shape1_rmina = 0.*cm, shape1_rmaxa = 2.*cm; G4double shape1_rminb = 0.*cm, shape1_rmaxb = 4.*cm; G4double shape1_hz = 3.*cm; G4double shape1_phimin = 0.*deg, shape1_phimax = 360.*deg; - G4Cons* solidShape1 = - new G4Cons("Shape1", + G4Cons* solidShape1 = + new G4Cons("Shape1", shape1_rmina, shape1_rmaxa, shape1_rminb, shape1_rmaxb, shape1_hz, shape1_phimin, shape1_phimax); /* // Full sphere shape G4double shape1_rmax = 4*cm; - G4Orb* solidShape1 = + G4Orb* solidShape1 = new G4Orb("Shape1", //its name shape1_rmax); //its size // Sphere shape G4double shape1_rmin = 0*cm, shape1_rmax = 4*cm; - G4double shape1_thetamin = 0.*deg, shape1_thetamax = 180.*deg; - G4double shape1_phimin = 0.*deg, shape1_phimax = 360.*deg; - G4Sphere* solidShape1 = + G4double shape1_thetamin = 0.*deg, shape1_thetamax = 180.*deg; + G4double shape1_phimin = 0.*deg, shape1_phimax = 360.*deg; + G4Sphere* solidShape1 = new G4Sphere("Shape1", //its name shape1_rmin, shape1_rmax, //its size shape1_phimin, shape1_phimax, //phi angle shape1_thetamin, shape1_thetamax); //theta angle - + // Box shape - G4double shape1_dx = 8*cm, shape1_dy = 8*cm, shape1_dz = 8*cm; - G4Box* solidShape1 = + G4double shape1_dx = 8*cm, shape1_dy = 8*cm, shape1_dz = 8*cm; + G4Box* solidShape1 = new G4Box("Shape1", //its name 0.5*shape1_dx, 0.5*shape1_dy, 0.5*shape1_dz); //its size */ - - G4LogicalVolume* logicShape1 = + + G4LogicalVolume* logicShape1 = new G4LogicalVolume(solidShape1, //its solid shape1_mat, //its material "Shape1"); //its name - + new G4PVPlacement(0, //no rotation pos1, //at position logicShape1, //its logical volume @@ -170,37 +170,37 @@ G4VPhysicalVolume* B1DetectorConstruction::Construct() checkOverlaps); //overlaps checking - // + // // Shape 2 // G4Material* shape2_mat = nist->FindOrBuildMaterial("G4_BONE_COMPACT_ICRU"); G4ThreeVector pos2 = G4ThreeVector(0, -1*cm, 7*cm); /* - // Shape 2 - conical section shape + // Shape 2 - conical section shape G4double shape2_rmina = 0.*cm, shape2_rmaxa = 5.*cm; G4double shape2_rminb = 0.*cm, shape2_rmaxb = 8.*cm; G4double shape2_hz = 3.*cm; G4double shape2_phimin = 0.*deg, shape2_phimax = 360.*deg; - G4Cons* solidShape2 = - new G4Cons("Shape2", + G4Cons* solidShape2 = + new G4Cons("Shape2", shape2_rmina, shape2_rmaxa, shape2_rminb, shape2_rmaxb, shape2_hz, shape2_phimin, shape2_phimax); */ - // Trapezoid shape + // Trapezoid shape G4double shape2_dxa = 12*cm, shape2_dxb = 12*cm; G4double shape2_dya = 10*cm, shape2_dyb = 16*cm; - G4double shape2_dz = 6*cm; - G4Trd* solidShape2 = + G4double shape2_dz = 6*cm; + G4Trd* solidShape2 = new G4Trd("Shape2", //its name - 0.5*shape2_dxa, 0.5*shape2_dxb, + 0.5*shape2_dxa, 0.5*shape2_dxb, 0.5*shape2_dya, 0.5*shape2_dyb, 0.5*shape2_dz); //its size - - G4LogicalVolume* logicShape2 = + + G4LogicalVolume* logicShape2 = new G4LogicalVolume(solidShape2, //its solid shape2_mat, //its material "Shape2"); //its name - + new G4PVPlacement(0, //no rotation pos2, //at position logicShape2, //its logical volume @@ -209,7 +209,7 @@ G4VPhysicalVolume* B1DetectorConstruction::Construct() false, //no boolean operation 0, //copy number checkOverlaps); //overlaps checking - + // Set Shape2 as scoring volume // fScoringVolume = logicShape2; diff --git a/examples/extended/analysis/B1Con/src/B1EventAction.cc b/examples/extended/analysis/B1Con/src/B1EventAction.cc index 9f7a0391d0..6ace5e9c91 100644 --- a/examples/extended/analysis/B1Con/src/B1EventAction.cc +++ b/examples/extended/analysis/B1Con/src/B1EventAction.cc @@ -39,7 +39,7 @@ B1EventAction::B1EventAction() : G4UserEventAction(), fPrintModulo(100), fEdep(0.) -{} +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -49,21 +49,21 @@ B1EventAction::~B1EventAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void B1EventAction::BeginOfEventAction(const G4Event* event) -{ +{ G4int eventNb = event->GetEventID(); - if (eventNb%fPrintModulo == 0) { + if (eventNb%fPrintModulo == 0) { G4cout << "\n---> Begin of event: " << eventNb << G4endl; } - + fEdep = 0.; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void B1EventAction::EndOfEventAction(const G4Event*) -{ +{ // accumulate statistics in B1Run - B1Run* run + B1Run* run = static_cast( G4RunManager::GetRunManager()->GetNonConstCurrentRun()); run->AddEdep(fEdep); diff --git a/examples/extended/analysis/B1Con/src/B1PrimaryGeneratorAction.cc b/examples/extended/analysis/B1Con/src/B1PrimaryGeneratorAction.cc index f3b05b4107..40ac758422 100644 --- a/examples/extended/analysis/B1Con/src/B1PrimaryGeneratorAction.cc +++ b/examples/extended/analysis/B1Con/src/B1PrimaryGeneratorAction.cc @@ -43,7 +43,7 @@ B1PrimaryGeneratorAction::B1PrimaryGeneratorAction() : G4VUserPrimaryGeneratorAction(), - fParticleGun(0), + fParticleGun(0), fEnvelopeBox(0) { G4int n_particle = 1; @@ -76,7 +76,7 @@ void B1PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) // In order to avoid dependence of PrimaryGeneratorAction // on DetectorConstruction class we get Envelope volume // from G4LogicalVolumeStore. - + G4double envSizeXY = 0; G4double envSizeZ = 0; @@ -90,21 +90,21 @@ void B1PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) if ( fEnvelopeBox ) { envSizeXY = fEnvelopeBox->GetXHalfLength()*2.; envSizeZ = fEnvelopeBox->GetZHalfLength()*2.; - } + } else { G4ExceptionDescription msg; - msg << "Envelope volume of box shape not found.\n"; + msg << "Envelope volume of box shape not found.\n"; msg << "Perhaps you have changed geometry.\n"; msg << "The gun will be place at the center."; G4Exception("B1PrimaryGeneratorAction::GeneratePrimaries()", "MyCode0002",JustWarning,msg); } - G4double size = 0.8; + G4double size = 0.8; G4double x0 = size * envSizeXY * (G4UniformRand()-0.5); G4double y0 = size * envSizeXY * (G4UniformRand()-0.5); G4double z0 = -0.5 * envSizeZ; - + fParticleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); fParticleGun->GeneratePrimaryVertex(anEvent); diff --git a/examples/extended/analysis/B1Con/src/B1Run.cc b/examples/extended/analysis/B1Con/src/B1Run.cc index a21e66b9d9..43710a1647 100644 --- a/examples/extended/analysis/B1Con/src/B1Run.cc +++ b/examples/extended/analysis/B1Con/src/B1Run.cc @@ -33,15 +33,15 @@ B1Run::B1Run() : G4Run(), - fEdep(0.), + fEdep(0.), fEdep2(0.) -{} +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... B1Run::~B1Run() -{} - +{} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void B1Run::Merge(const G4Run* run) @@ -50,8 +50,8 @@ void B1Run::Merge(const G4Run* run) fEdep += localRun->fEdep; fEdep2 += localRun->fEdep2; - G4Run::Merge(run); -} + G4Run::Merge(run); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/B1Con/src/B1SteppingAction.cc b/examples/extended/analysis/B1Con/src/B1SteppingAction.cc index 619b116049..c8b1e7a3e7 100644 --- a/examples/extended/analysis/B1Con/src/B1SteppingAction.cc +++ b/examples/extended/analysis/B1Con/src/B1SteppingAction.cc @@ -53,24 +53,24 @@ B1SteppingAction::~B1SteppingAction() void B1SteppingAction::UserSteppingAction(const G4Step* step) { - if (!fScoringVolume) { + if (!fScoringVolume) { const B1DetectorConstruction* detectorConstruction = static_cast (G4RunManager::GetRunManager()->GetUserDetectorConstruction()); - fScoringVolume = detectorConstruction->GetScoringVolume(); + fScoringVolume = detectorConstruction->GetScoringVolume(); } // get volume of the current step - G4LogicalVolume* volume + G4LogicalVolume* volume = step->GetPreStepPoint()->GetTouchableHandle() ->GetVolume()->GetLogicalVolume(); - + // check if we are in scoring volume if (volume != fScoringVolume) return; // collect energy deposited in this step G4double edepStep = step->GetTotalEnergyDeposit(); - fEventAction->AddEdep(edepStep); + fEventAction->AddEdep(edepStep); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/CMakeLists.txt b/examples/extended/analysis/CMakeLists.txt index 13af6fec41..9b655363f7 100644 --- a/examples/extended/analysis/CMakeLists.txt +++ b/examples/extended/analysis/CMakeLists.txt @@ -1,4 +1,4 @@ -#---Adding all analysis examples subdirectories explicitly +#---Adding all analysis examples subdirectories explicitly cmake_minimum_required(VERSION 3.16...3.21) @@ -8,6 +8,7 @@ include(${Geant4_USE_FILE}) #---------------------------------------------------------------------------- add_subdirectory(AnaEx01) +add_subdirectory(AnaEx03) add_subdirectory(B1Con) #---------------------------------------------------------------------------- @@ -17,5 +18,5 @@ find_package(ROOT QUIET) if(ROOT_FOUND) add_subdirectory(AnaEx02) else() - message(STATUS "G4 Examples: ROOT package not found. AnaEx02 disabled.") -endif() + message(STATUS "G4 Examples: ROOT package not found. AnaEx02 disabled.") +endif() diff --git a/examples/extended/analysis/History b/examples/extended/analysis/History index d7663eef9c..4a5b492cec 100644 --- a/examples/extended/analysis/History +++ b/examples/extended/analysis/History @@ -5,6 +5,26 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-14 I. Hrivnacova (analysisExample-V11-00-04) +- Use G4Accummulables for RunAction summary data in AnaEx01 and AnaEx02 + to get them merged in MT mode +- Reordered runs in test macro (run the test run first to get meaningful output + at the end) + +## 2022-10-24 I. Hrivnacova (analysisExample-V11-00-03) +- Updated AnaEx01 and AnaEx02 classes in shared with modifications + applied in AnaEx03 +- Applied new coding guidelines and clang-tidy checks in all + AnaEx* examples + +## 2022-10-24 I. Hrivnacova (analysisExample-V11-00-02) +- Removed shared directory + - Not useful since moving from svnt to git +- Removed trailing whitespaces + +## 2022-10-21 I. Hrivnacova (analysisExample-V11-00-01) +- Added new example AnaEx03 + ## 2021-12-10 Ben Morgan (analysisExample-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/analysis/README b/examples/extended/analysis/README index 8e9c8ec42f..a112a5a2e0 100644 --- a/examples/extended/analysis/README +++ b/examples/extended/analysis/README @@ -13,7 +13,14 @@ AnaEx02 -------- As AnaEx01, but direct interface to ROOT. - + +AnaEx03 +-------- + + Demonstrates usage of analysis commands for file management + (new since Geant4 11.1), in particular writing histograms and ntuples in a file + multiple times. + B1Con ------ diff --git a/examples/extended/analysis/shared/History b/examples/extended/analysis/shared/History deleted file mode 100644 index 19eba7b2bd..0000000000 --- a/examples/extended/analysis/shared/History +++ /dev/null @@ -1,41 +0,0 @@ -# Example shared History - -See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! - - -## 2021-12-10 Ben Morgan (analysisShared-V11-00-00) -- Change to new Markdown History format - ---- - -# History entries prior to 11.0 - -15-10-18 G. Cosmo (analysisShared-V10-04-02) -- Added missing include of G4SteateManager.hh in DetectorConstruction source. - -04-07-18 I. Hrivnacova (analysisShared-V10-04-01) -- Fixed compilation error introduced in previous tag - -03-07-18 I. Hrivnacova (analysisShared-V10-04-00) -- Macro & commands review: - - Removed obsolete /N03 top command directory - - Added protection against warnings issued from ReinitializeGeometry() if - called in PreInit phase - -04-07-16 I. Hrivnacova (analysisShared-V10-02-01) -- Fixes for Doxygen documentation - -01-07-16 I. Hrivnacova (analysisShared-V10-02-00) -- Coding guidelines (function names) - -27-08-15 I. Hrivnacova (analysisShared-V10-01-00) -- Updated histogram ids in FillHiso (now starting from 0); - updated for changed function names in HistoManager classes - -06-11-14 I. Hrivnacova (analysisShared-V10-00-01) -- Moved scripts from upper directory in shared - -05-11-14 I. Hrivnacova (analysisShared-V10-00-00) -- Tagged version which will be included in AnaEx0N examples diff --git a/examples/extended/analysis/shared/include/DetectorConstruction.hh b/examples/extended/analysis/shared/include/DetectorConstruction.hh deleted file mode 100644 index 682d37091c..0000000000 --- a/examples/extended/analysis/shared/include/DetectorConstruction.hh +++ /dev/null @@ -1,153 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -/// \file DetectorConstruction.hh -/// \brief Definition of the DetectorConstruction class -// -// -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef DetectorConstruction_h -#define DetectorConstruction_h 1 - -#include "G4VUserDetectorConstruction.hh" -#include "globals.hh" - -class G4Box; -class G4LogicalVolume; -class G4VPhysicalVolume; -class G4Material; -class DetectorMessenger; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class DetectorConstruction : public G4VUserDetectorConstruction -{ - public: - - DetectorConstruction(); - virtual ~DetectorConstruction(); - - public: - - void SetAbsorberMaterial (G4String); - void SetAbsorberThickness(G4double); - - void SetGapMaterial (G4String); - void SetGapThickness(G4double); - - void SetCalorSizeYZ(G4double); - void SetNbOfLayers (G4int); - - virtual G4VPhysicalVolume* Construct(); - - public: - - void PrintCalorParameters(); - - G4double GetWorldSizeX() {return fWorldSizeX;}; - G4double GetWorldSizeYZ() {return fWorldSizeYZ;}; - - G4double GetCalorThickness() {return fCalorThickness;}; - G4double GetCalorSizeYZ() {return fCalorSizeYZ;}; - - G4int GetNbOfLayers() {return fNbOfLayers;}; - - G4Material* GetAbsorberMaterial() {return fAbsorberMaterial;}; - G4double GetAbsorberThickness() {return fAbsorberThickness;}; - - G4Material* GetGapMaterial() {return fGapMaterial;}; - G4double GetGapThickness() {return fGapThickness;}; - - const G4VPhysicalVolume* GetphysiWorld() {return fPhysiWorld;}; - const G4VPhysicalVolume* GetAbsorber() {return fPhysiAbsorber;}; - const G4VPhysicalVolume* GetGap() {return fPhysiGap;}; - - private: - - G4Material* fAbsorberMaterial; - G4double fAbsorberThickness; - - G4Material* fGapMaterial; - G4double fGapThickness; - - G4int fNbOfLayers; - G4double fLayerThickness; - - G4double fCalorSizeYZ; - G4double fCalorThickness; - - G4Material* fDefaultMaterial; - G4double fWorldSizeYZ; - G4double fWorldSizeX; - - G4Box* fSolidWorld; //pointer to the solid World - G4LogicalVolume* fLogicWorld; //pointer to the logical World - G4VPhysicalVolume* fPhysiWorld; //pointer to the physical World - - G4Box* fSolidCalor; //pointer to the solid Calor - G4LogicalVolume* fLogicCalor; //pointer to the logical Calor - G4VPhysicalVolume* fPhysiCalor; //pointer to the physical Calor - - G4Box* fSolidLayer; //pointer to the solid Layer - G4LogicalVolume* fLogicLayer; //pointer to the logical Layer - G4VPhysicalVolume* fPhysiLayer; //pointer to the physical Layer - - G4Box* fSolidAbsorber; //pointer to the solid Absorber - G4LogicalVolume* fLogicAbsorber; //pointer to the logical Absorber - G4VPhysicalVolume* fPhysiAbsorber; //pointer to the physical Absorber - - G4Box* fSolidGap; //pointer to the solid Gap - G4LogicalVolume* fLogicGap; //pointer to the logical Gap - G4VPhysicalVolume* fPhysiGap; //pointer to the physical Gap - - DetectorMessenger* fDetectorMessenger; //pointer to the Messenger - - private: - - void DefineMaterials(); - void ComputeCalorParameters(); - G4VPhysicalVolume* ConstructCalorimeter(); -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -inline void DetectorConstruction::ComputeCalorParameters() -{ - // Compute derived parameters of the calorimeter - fLayerThickness = fAbsorberThickness + fGapThickness; - fCalorThickness = fNbOfLayers*fLayerThickness; - - fWorldSizeX = 1.2*fCalorThickness; fWorldSizeYZ = 1.2*fCalorSizeYZ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - diff --git a/examples/extended/analysis/shared/scripts/History b/examples/extended/analysis/shared/scripts/History deleted file mode 100644 index b777673b51..0000000000 --- a/examples/extended/analysis/shared/scripts/History +++ /dev/null @@ -1,16 +0,0 @@ -# Example scripts History - -See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! - - -## 2021-12-10 Ben Morgan (analysisScripts-V11-00-00) -- Change to new Markdown History format - ---- - -# History entries prior to 11.0 - -05-11-14 I. Hrivnacova (analysisScripts-V10-00-00) -- Tagged version which will be included in AnaEx0N examples diff --git a/examples/extended/analysis/shared/src/DetectorConstruction.cc b/examples/extended/analysis/shared/src/DetectorConstruction.cc deleted file mode 100644 index 11c8bb186e..0000000000 --- a/examples/extended/analysis/shared/src/DetectorConstruction.cc +++ /dev/null @@ -1,348 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -/// \file DetectorConstruction.cc -/// \brief Implementation of the DetectorConstruction class -// -// -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "DetectorConstruction.hh" -#include "DetectorMessenger.hh" - -#include "G4Material.hh" -#include "G4NistManager.hh" - -#include "G4Box.hh" -#include "G4LogicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4PVReplica.hh" - -#include "G4StateManager.hh" -#include "G4GeometryManager.hh" -#include "G4PhysicalVolumeStore.hh" -#include "G4LogicalVolumeStore.hh" -#include "G4SolidStore.hh" - -#include "G4VisAttributes.hh" -#include "G4Colour.hh" -#include "G4SystemOfUnits.hh" -#include "G4RunManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -DetectorConstruction::DetectorConstruction() -:G4VUserDetectorConstruction(), - fAbsorberMaterial(0),fGapMaterial(0),fDefaultMaterial(0), - fSolidWorld(0),fLogicWorld(0),fPhysiWorld(0), - fSolidCalor(0),fLogicCalor(0),fPhysiCalor(0), - fSolidLayer(0),fLogicLayer(0),fPhysiLayer(0), - fSolidAbsorber(0),fLogicAbsorber(0),fPhysiAbsorber(0), - fSolidGap (0),fLogicGap (0),fPhysiGap (0), - fDetectorMessenger(0) -{ - // default parameter values of the calorimeter - fAbsorberThickness = 10.*mm; - fGapThickness = 5.*mm; - fNbOfLayers = 10; - fCalorSizeYZ = 10.*cm; - ComputeCalorParameters(); - - // materials - DefineMaterials(); - SetAbsorberMaterial("G4_Pb"); - SetGapMaterial("G4_lAr"); - - // create commands for interactive definition of the calorimeter - fDetectorMessenger = new DetectorMessenger(this); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -DetectorConstruction::~DetectorConstruction() -{ delete fDetectorMessenger;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4VPhysicalVolume* DetectorConstruction::Construct() -{ - return ConstructCalorimeter(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::DefineMaterials() -{ -// use G4-NIST materials data base -// -G4NistManager* man = G4NistManager::Instance(); -fDefaultMaterial = man->FindOrBuildMaterial("G4_Galactic"); -man->FindOrBuildMaterial("G4_Pb"); -man->FindOrBuildMaterial("G4_lAr"); - -// print table -// -G4cout << *(G4Material::GetMaterialTable()) << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4VPhysicalVolume* DetectorConstruction::ConstructCalorimeter() -{ - - // Clean old geometry, if any - // - G4GeometryManager::GetInstance()->OpenGeometry(); - G4PhysicalVolumeStore::GetInstance()->Clean(); - G4LogicalVolumeStore::GetInstance()->Clean(); - G4SolidStore::GetInstance()->Clean(); - - // complete the Calor parameters definition - ComputeCalorParameters(); - - // - // World - // - fSolidWorld = new G4Box("World", //its name - fWorldSizeX/2,fWorldSizeYZ/2,fWorldSizeYZ/2); //its size - - fLogicWorld = new G4LogicalVolume(fSolidWorld, //its solid - fDefaultMaterial, //its material - "World"); //its name - - fPhysiWorld = new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - fLogicWorld, //its logical volume - "World", //its name - 0, //its mother volume - false, //no boolean operation - 0); //copy number - - // - // Calorimeter - // - fSolidCalor=0; fLogicCalor=0; fPhysiCalor=0; - fSolidLayer=0; fLogicLayer=0; fPhysiLayer=0; - - if (fCalorThickness > 0.) - { fSolidCalor = new G4Box("Calorimeter", //its name - fCalorThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2);//size - - fLogicCalor = new G4LogicalVolume(fSolidCalor, //its solid - fDefaultMaterial, //its material - "Calorimeter"); //its name - - fPhysiCalor = new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - fLogicCalor, //its logical volume - "Calorimeter", //its name - fLogicWorld, //its mother volume - false, //no boolean operation - 0); //copy number - - // - // Layer - // - fSolidLayer = new G4Box("Layer", //its name - fLayerThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); //size - - fLogicLayer = new G4LogicalVolume(fSolidLayer, //its solid - fDefaultMaterial, //its material - "Layer"); //its name - if (fNbOfLayers > 1) - fPhysiLayer = new G4PVReplica("Layer", //its name - fLogicLayer, //its logical volume - fLogicCalor, //its mother - kXAxis, //axis of replication - fNbOfLayers, //number of replica - fLayerThickness); //witdth of replica - else - fPhysiLayer = new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - fLogicLayer, //its logical volume - "Layer", //its name - fLogicCalor, //its mother volume - false, //no boolean operation - 0); //copy number - } - - // - // Absorber - // - fSolidAbsorber=0; fLogicAbsorber=0; fPhysiAbsorber=0; - - if (fAbsorberThickness > 0.) - { fSolidAbsorber = new G4Box("Absorber", //its name - fAbsorberThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); - - fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, //its solid - fAbsorberMaterial, //its material - fAbsorberMaterial->GetName());//name - - fPhysiAbsorber = new G4PVPlacement(0, //no rotation - G4ThreeVector(-fGapThickness/2,0.,0.), //its position - fLogicAbsorber, //its logical volume - fAbsorberMaterial->GetName(), //its name - fLogicLayer, //its mother - false, //no boulean operat - 0); //copy number - - } - - // - // Gap - // - fSolidGap=0; fLogicGap=0; fPhysiGap=0; - - if (fGapThickness > 0.) - { fSolidGap = new G4Box("Gap", - fGapThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2); - - fLogicGap = new G4LogicalVolume(fSolidGap, - fGapMaterial, - fGapMaterial->GetName()); - - fPhysiGap = new G4PVPlacement(0, //no rotation - G4ThreeVector(fAbsorberThickness/2,0.,0.), //its position - fLogicGap, //its logical volume - fGapMaterial->GetName(), //its name - fLogicLayer, //its mother - false, //no boulean operat - 0); //copy number - } - - PrintCalorParameters(); - - // - // Visualization attributes - // - fLogicWorld->SetVisAttributes (G4VisAttributes::GetInvisible()); - - G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); - simpleBoxVisAtt->SetVisibility(true); - fLogicCalor->SetVisAttributes(simpleBoxVisAtt); - - // - //always return the physical World - // - return fPhysiWorld; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::PrintCalorParameters() -{ - G4cout << "\n------------------------------------------------------------" - << "\n---> The calorimeter is " << fNbOfLayers << " layers of: [ " - << fAbsorberThickness/mm << "mm of " << fAbsorberMaterial->GetName() - << " + " - << fGapThickness/mm << "mm of " << fGapMaterial->GetName() << " ] " - << "\n------------------------------------------------------------\n"; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::SetAbsorberMaterial(G4String materialChoice) -{ - // search the material by its name - G4Material* pttoMaterial = - G4NistManager::Instance()->FindOrBuildMaterial(materialChoice); - if (pttoMaterial) - { - fAbsorberMaterial = pttoMaterial; - if ( fLogicAbsorber ) - { - fLogicAbsorber->SetMaterial(fAbsorberMaterial); - G4RunManager::GetRunManager()->PhysicsHasBeenModified(); - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::SetGapMaterial(G4String materialChoice) -{ - // search the material by its name - G4Material* pttoMaterial = - G4NistManager::Instance()->FindOrBuildMaterial(materialChoice); - if (pttoMaterial) - { - fGapMaterial = pttoMaterial; - if ( fLogicGap ) - { - fLogicGap->SetMaterial(fGapMaterial); - G4RunManager::GetRunManager()->PhysicsHasBeenModified(); - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::SetAbsorberThickness(G4double val) -{ - // change Absorber thickness and recompute the calorimeter parameters - fAbsorberThickness = val; - if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { - G4RunManager::GetRunManager()->ReinitializeGeometry(); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::SetGapThickness(G4double val) -{ - // change Gap thickness and recompute the calorimeter parameters - fGapThickness = val; - if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { - G4RunManager::GetRunManager()->ReinitializeGeometry(); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::SetCalorSizeYZ(G4double val) -{ - // change the transverse size and recompute the calorimeter parameters - fCalorSizeYZ = val; - if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { - G4RunManager::GetRunManager()->ReinitializeGeometry(); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::SetNbOfLayers(G4int val) -{ - fNbOfLayers = val; - if ( G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ) { - G4RunManager::GetRunManager()->ReinitializeGeometry(); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/analysis/shared/src/RunAction.cc b/examples/extended/analysis/shared/src/RunAction.cc deleted file mode 100644 index 5ddaf26430..0000000000 --- a/examples/extended/analysis/shared/src/RunAction.cc +++ /dev/null @@ -1,136 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -/// \file RunAction.cc -/// \brief Implementation of the RunAction class -// -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "RunAction.hh" -#include "HistoManager.hh" - -#include "G4Run.hh" -#include "G4RunManager.hh" -#include "G4UnitsTable.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -RunAction::RunAction(HistoManager* histo) -: G4UserRunAction(), - fHistoManager(histo), - fSumEAbs(0.), fSum2EAbs(0.), - fSumEGap(0.), fSum2EGap(0.), - fSumLAbs(0.), fSum2LAbs(0.), - fSumLGap(0.), fSum2LGap(0.) -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -RunAction::~RunAction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void RunAction::BeginOfRunAction(const G4Run* aRun) -{ - G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; - - //initialize cumulative quantities - // - fSumEAbs = fSum2EAbs =fSumEGap = fSum2EGap = 0.; - fSumLAbs = fSum2LAbs =fSumLGap = fSum2LGap = 0.; - - //histograms - // - fHistoManager->Book(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void RunAction::FillPerEvent(G4double EAbs, G4double EGap, - G4double LAbs, G4double LGap) -{ - //accumulate statistic - // - fSumEAbs += EAbs; fSum2EAbs += EAbs*EAbs; - fSumEGap += EGap; fSum2EGap += EGap*EGap; - - fSumLAbs += LAbs; fSum2LAbs += LAbs*LAbs; - fSumLGap += LGap; fSum2LGap += LGap*LGap; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void RunAction::EndOfRunAction(const G4Run* aRun) -{ - G4int NbOfEvents = aRun->GetNumberOfEvent(); - if (NbOfEvents == 0) return; - - //compute statistics: mean and rms - // - fSumEAbs /= NbOfEvents; fSum2EAbs /= NbOfEvents; - G4double rmsEAbs = fSum2EAbs - fSumEAbs*fSumEAbs; - if (rmsEAbs >0.) rmsEAbs = std::sqrt(rmsEAbs); else rmsEAbs = 0.; - - fSumEGap /= NbOfEvents; fSum2EGap /= NbOfEvents; - G4double rmsEGap = fSum2EGap - fSumEGap*fSumEGap; - if (rmsEGap >0.) rmsEGap = std::sqrt(rmsEGap); else rmsEGap = 0.; - - fSumLAbs /= NbOfEvents; fSum2LAbs /= NbOfEvents; - G4double rmsLAbs = fSum2LAbs - fSumLAbs*fSumLAbs; - if (rmsLAbs >0.) rmsLAbs = std::sqrt(rmsLAbs); else rmsLAbs = 0.; - - fSumLGap /= NbOfEvents; fSum2LGap /= NbOfEvents; - G4double rmsLGap = fSum2LGap - fSumLGap*fSumLGap; - if (rmsLGap >0.) rmsLGap = std::sqrt(rmsLGap); else rmsLGap = 0.; - - //print - // - G4cout - << "\n--------------------End of Run------------------------------\n" - << "\n mean Energy in Absorber : " << G4BestUnit(fSumEAbs,"Energy") - << " +- " << G4BestUnit(rmsEAbs,"Energy") - << "\n mean Energy in Gap : " << G4BestUnit(fSumEGap,"Energy") - << " +- " << G4BestUnit(rmsEGap,"Energy") - << G4endl; - - G4cout - << "\n mean trackLength in Absorber : " << G4BestUnit(fSumLAbs,"Length") - << " +- " << G4BestUnit(rmsLAbs,"Length") - << "\n mean trackLength in Gap : " << G4BestUnit(fSumLGap,"Length") - << " +- " << G4BestUnit(rmsLGap,"Length") - << "\n------------------------------------------------------------\n" - << G4endl; - - //save histograms - // - fHistoManager->PrintStatistic(); - fHistoManager->Save(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/biasing/B01/exampleB01.out b/examples/extended/biasing/B01/exampleB01.out index 6672eb4552..4c27986ace 100644 --- a/examples/extended/biasing/B01/exampleB01.out +++ b/examples/extended/biasing/B01/exampleB01.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -112,6 +112,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -139,7 +140,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -190,8 +191,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -673,6 +674,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -953,24 +959,24 @@ Max 2J for sampling of angular correlations 10 ============================================================= ============================================================= Volume | Tr.Entering | Population | Collisions | Coll*WGT | NumWGTedE | FluxWGTedE | Av.Tr.WGT | SL | SLW | SLW_v | SLWE | SLWE_v | - cell_00 | 48 | 139 | 48 | 48 | 0.0128634 | 2.13093 | 1 | 8409.81 | 8409.81 | 51103.3 | 17920.8 | 657.361 | - cell_01 | 143 | 183 | 711 | 711 | 0.0228203 | 3.84569 | 1 | 28643.3 | 28643.3 | 139975 | 110153 | 3194.26 | - cell_02 | 146 | 239 | 1201 | 600.5 | 0.00957028 | 2.67546 | 0.5 | 42183.6 | 21091.8 | 189258 | 56430.2 | 1811.25 | - cell_03 | 167 | 273 | 1658 | 414.5 | 0.0060463 | 1.91887 | 0.25 | 53513 | 13378.3 | 148520 | 25671.2 | 897.999 | - cell_04 | 163 | 255 | 1566 | 195.75 | 0.00492689 | 1.9615 | 0.125 | 48406.5 | 6050.81 | 83751.6 | 11868.7 | 412.635 | - cell_05 | 183 | 253 | 1560 | 97.5 | 0.00395311 | 1.52006 | 0.0625 | 50066 | 3129.13 | 44951 | 4756.48 | 177.696 | - cell_06 | 224 | 318 | 1835 | 57.3438 | 0.00386795 | 1.40115 | 0.03125 | 57196.9 | 1787.4 | 25916 | 2504.42 | 100.242 | - cell_07 | 238 | 331 | 2228 | 34.8125 | 0.00396538 | 1.22528 | 0.015625 | 67631 | 1056.73 | 13862.3 | 1294.8 | 54.9691 | - cell_08 | 227 | 351 | 2158 | 16.8594 | 0.00257078 | 1.01681 | 0.0078125 | 63401.1 | 495.321 | 8723.43 | 503.648 | 22.426 | - cell_09 | 189 | 270 | 1829 | 7.14453 | 0.00209681 | 0.806062 | 0.00390625 | 49717.8 | 194.21 | 3490.37 | 156.545 | 7.31863 | - cell_10 | 167 | 235 | 1849 | 3.61133 | 0.00173753 | 0.73757 | 0.00195312 | 46394.6 | 90.6145 | 1799.06 | 66.8346 | 3.12593 | - cell_11 | 116 | 169 | 1211 | 1.18262 | 0.0020181 | 0.772235 | 0.000976562 | 32534.2 | 31.7717 | 600.973 | 24.5352 | 1.21282 | - cell_12 | 72 | 109 | 882 | 0.430664 | 0.00263563 | 0.954362 | 0.000488281 | 23749.8 | 11.5966 | 192.738 | 11.0673 | 0.507985 | - cell_13 | 57 | 95 | 609 | 0.148682 | 0.00175928 | 0.74891 | 0.000244141 | 17390.5 | 4.24574 | 86.1453 | 3.17968 | 0.151554 | - cell_14 | 35 | 57 | 403 | 0.0491943 | 0.00254169 | 0.81817 | 0.00012207 | 10803.4 | 1.31878 | 20.037 | 1.07898 | 0.0509279 | - cell_15 | 39 | 55 | 341 | 0.020813 | 0.00183974 | 0.791047 | 6.10352e-05 | 9886.42 | 0.603419 | 11.9235 | 0.477333 | 0.0219362 | - cell_16 | 33 | 50 | 313 | 0.009552 | 0.00182371 | 0.835361 | 3.05176e-05 | 9488.92 | 0.289579 | 6.48297 | 0.241903 | 0.0118231 | - cell_17 | 21 | 37 | 187 | 0.00285339 | 0.000981763 | 0.53031 | 1.52588e-05 | 5375.17 | 0.0820186 | 2.68645 | 0.0434953 | 0.00263745 | - cell_18 | 7 | 13 | 71 | 0.000541687 | 0.00108854 | 0.483589 | 7.62939e-06 | 2427.84 | 0.018523 | 0.597731 | 0.0089575 | 0.000650655 | - cell_19 | 4 | 4 | 4 | 3.05176e-05 | 0.849069 | 0.91437 | 7.62939e-06 | 810.506 | 0.00618367 | 0.000494363 | 0.00565416 | 0.000419748 | + cell_00 | 48 | 136 | 48 | 48 | 0.0769214 | 4.09244 | 1 | 9315.69 | 9315.69 | 15355 | 38123.9 | 1181.13 | + cell_01 | 150 | 183 | 612 | 612 | 0.0182529 | 4.19076 | 1 | 25368.5 | 25368.5 | 162796 | 106313 | 2971.51 | + cell_02 | 163 | 249 | 1175 | 587.5 | 0.0070412 | 2.80138 | 0.5 | 43836.2 | 21918.1 | 271226 | 61401 | 1909.76 | + cell_03 | 203 | 306 | 1718 | 429.5 | 0.00636407 | 2.10262 | 0.25 | 56734.6 | 14183.6 | 158419 | 29822.7 | 1008.19 | + cell_04 | 210 | 328 | 1778 | 222.25 | 0.00458458 | 1.86972 | 0.125 | 55525.8 | 6940.72 | 96295.2 | 12977.2 | 441.473 | + cell_05 | 222 | 349 | 2401 | 150.062 | 0.00359087 | 1.3712 | 0.0625 | 69036.1 | 4314.75 | 61528.5 | 5916.4 | 220.941 | + cell_06 | 227 | 331 | 2077 | 64.9062 | 0.00319247 | 1.4803 | 0.03125 | 62700.2 | 1959.38 | 33910.6 | 2900.48 | 108.259 | + cell_07 | 259 | 377 | 2433 | 38.0156 | 0.00343717 | 1.43071 | 0.015625 | 70952.2 | 1108.63 | 16954 | 1586.12 | 58.2738 | + cell_08 | 245 | 388 | 2228 | 17.4062 | 0.0033329 | 1.58348 | 0.0078125 | 68532.8 | 535.412 | 9610.19 | 847.816 | 32.0298 | + cell_09 | 240 | 344 | 2481 | 9.69141 | 0.00378169 | 1.23145 | 0.00390625 | 74273 | 290.129 | 3843.65 | 357.279 | 14.5355 | + cell_10 | 234 | 342 | 2160 | 4.21875 | 0.00276281 | 1.35049 | 0.00195312 | 64176.5 | 125.345 | 2321.55 | 169.276 | 6.414 | + cell_11 | 241 | 336 | 2301 | 2.24707 | 0.00290774 | 1.09542 | 0.000976562 | 67023.1 | 65.4523 | 1060.08 | 71.6976 | 3.08243 | + cell_12 | 238 | 332 | 2159 | 1.0542 | 0.00292506 | 1.12803 | 0.000488281 | 61647.2 | 30.1012 | 493.718 | 33.9552 | 1.44415 | + cell_13 | 230 | 323 | 1881 | 0.459229 | 0.00378766 | 1.23119 | 0.000244141 | 58188.5 | 14.2062 | 191.908 | 17.4906 | 0.726883 | + cell_14 | 205 | 303 | 2096 | 0.255859 | 0.00257731 | 0.928554 | 0.00012207 | 60298.7 | 7.36068 | 120.683 | 6.83479 | 0.311038 | + cell_15 | 164 | 252 | 1567 | 0.0956421 | 0.00267485 | 0.9898 | 6.10352e-05 | 44505.8 | 2.71642 | 45.6613 | 2.68871 | 0.122137 | + cell_16 | 135 | 190 | 1222 | 0.0372925 | 0.00422798 | 1.16652 | 3.05176e-05 | 38355 | 1.1705 | 14.4346 | 1.36541 | 0.0610291 | + cell_17 | 142 | 206 | 1444 | 0.0220337 | 0.00259124 | 0.883869 | 1.52588e-05 | 41150 | 0.6279 | 10.2281 | 0.554981 | 0.0265034 | + cell_18 | 99 | 179 | 1158 | 0.00883484 | 0.00316369 | 0.906968 | 7.62939e-06 | 34742.3 | 0.265063 | 3.57971 | 0.240404 | 0.0113251 | + cell_19 | 76 | 76 | 76 | 0.000579834 | 0.00292151 | 1.41525 | 7.62939e-06 | 10861.9 | 0.0828695 | 1.66658 | 0.117281 | 0.00486894 | ============================================= diff --git a/examples/extended/biasing/B02/exampleB02.out b/examples/extended/biasing/B02/exampleB02.out index 1184b26268..2d5b0c33d4 100644 --- a/examples/extended/biasing/B02/exampleB02.out +++ b/examples/extended/biasing/B02/exampleB02.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -139,6 +139,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -166,7 +167,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -217,8 +218,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -700,6 +701,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -980,24 +986,24 @@ Max 2J for sampling of angular correlations 10 ============================================================= ============================================================= Volume | Tr.Entering | Population | Collisions | Coll*WGT | NumWGTedE | FluxWGTedE | Av.Tr.WGT | SL | SLW | SLW_v | SLWE | SLWE_v | - cell_00 | 43 | 132 | 0 | 0 | 0.0465943 | 2.85793 | 1 | 9636.08 | 9636.08 | 20028.1 | 27539.2 | 933.197 | - cell_01 | 162 | 180 | 541 | 541 | 0.052856 | 4.20469 | 1 | 25519.8 | 25519.8 | 58231.4 | 107303 | 3077.88 | - cell_02 | 185 | 289 | 1463 | 731.5 | 0.00748019 | 2.621 | 0.5 | 50194.5 | 25097.2 | 282630 | 65779.9 | 2114.12 | - cell_03 | 252 | 384 | 2185 | 546.25 | 0.00491574 | 1.88091 | 0.25 | 70272.7 | 17568.2 | 234461 | 33044.1 | 1152.55 | - cell_04 | 301 | 438 | 2858 | 357.25 | 0.00360845 | 1.38122 | 0.125 | 83930.7 | 10491.3 | 149616 | 14490.8 | 539.882 | - cell_05 | 279 | 434 | 2850 | 178.125 | 0.00316488 | 1.37642 | 0.0625 | 84265.2 | 5266.58 | 88137.4 | 7249.03 | 278.945 | - cell_06 | 252 | 375 | 2294 | 71.6875 | 0.00294608 | 1.3735 | 0.03125 | 70317.4 | 2197.42 | 39564.8 | 3018.14 | 116.561 | - cell_07 | 272 | 387 | 2424 | 37.875 | 0.00283841 | 1.18218 | 0.015625 | 70045 | 1094.45 | 18346.7 | 1293.84 | 52.0754 | - cell_08 | 288 | 391 | 2501 | 19.5391 | 0.00316734 | 1.22151 | 0.0078125 | 75641.7 | 590.95 | 9403.41 | 721.851 | 29.7838 | - cell_09 | 288 | 395 | 2704 | 10.5625 | 0.00301484 | 1.16036 | 0.00390625 | 77862.1 | 304.149 | 4851.65 | 352.921 | 14.627 | - cell_10 | 249 | 373 | 2277 | 4.44727 | 0.002071 | 1.04751 | 0.00195312 | 68488.8 | 133.767 | 2941.94 | 140.122 | 6.09276 | - cell_11 | 187 | 285 | 1737 | 1.69629 | 0.00315834 | 1.09596 | 0.000976562 | 52683.8 | 51.449 | 753.604 | 56.3861 | 2.38014 | - cell_12 | 156 | 237 | 1566 | 0.764648 | 0.00281175 | 0.954563 | 0.000488281 | 42704.2 | 20.8516 | 305.598 | 19.9042 | 0.859264 | - cell_13 | 149 | 221 | 1510 | 0.368652 | 0.00210972 | 0.980988 | 0.000244141 | 43837.5 | 10.7025 | 214.711 | 10.499 | 0.452979 | - cell_14 | 126 | 193 | 1295 | 0.158081 | 0.0030131 | 1.2988 | 0.00012207 | 36933.6 | 4.5085 | 79.765 | 5.85561 | 0.24034 | - cell_15 | 105 | 159 | 917 | 0.0559692 | 0.00453518 | 1.55862 | 6.10352e-05 | 27846.6 | 1.69962 | 22.5206 | 2.64906 | 0.102135 | - cell_16 | 102 | 143 | 1149 | 0.0350647 | 0.00301458 | 1.10945 | 3.05176e-05 | 32411.4 | 0.989118 | 14.9182 | 1.09738 | 0.0449722 | - cell_17 | 105 | 151 | 939 | 0.014328 | 0.00240482 | 1.01905 | 1.52588e-05 | 26149.5 | 0.39901 | 7.12045 | 0.406612 | 0.0171234 | - cell_18 | 66 | 110 | 761 | 0.00580597 | 0.00195438 | 1.24471 | 7.62939e-06 | 20307.4 | 0.154933 | 3.77361 | 0.192846 | 0.00737508 | - cell_19 | 31 | 31 | 0 | 0 | 0.0131733 | 2.77072 | 7.62939e-06 | 4410.83 | 0.033652 | 0.213985 | 0.09324 | 0.0028189 | + cell_00 | 40 | 133 | 0 | 0 | 0.0230164 | 3.22283 | 1 | 8667.46 | 8667.46 | 40642.2 | 27933.8 | 935.436 | + cell_01 | 141 | 177 | 481 | 481 | 0.0477986 | 4.55339 | 1 | 23838.7 | 23838.7 | 64550.5 | 108547 | 3085.42 | + cell_02 | 166 | 271 | 1303 | 651.5 | 0.0111115 | 2.80371 | 0.5 | 46931.1 | 23465.5 | 188829 | 65790.6 | 2098.16 | + cell_03 | 259 | 380 | 2175 | 543.75 | 0.00404841 | 2.01562 | 0.25 | 68743.1 | 17185.8 | 287240 | 34640.1 | 1162.87 | + cell_04 | 283 | 431 | 2530 | 316.25 | 0.00493617 | 1.86083 | 0.125 | 80504.1 | 10063 | 132044 | 18725.6 | 651.793 | + cell_05 | 331 | 482 | 2716 | 169.75 | 0.00423192 | 1.81681 | 0.0625 | 89335.5 | 5583.47 | 86488.5 | 10144.1 | 366.013 | + cell_06 | 340 | 516 | 3363 | 105.094 | 0.00370707 | 1.52017 | 0.03125 | 99237.8 | 3101.18 | 47130 | 4714.33 | 174.714 | + cell_07 | 322 | 488 | 3224 | 50.375 | 0.00291467 | 1.24953 | 0.015625 | 91797.2 | 1434.33 | 23678.8 | 1792.24 | 69.016 | + cell_08 | 307 | 465 | 2950 | 23.0469 | 0.00319184 | 1.24026 | 0.0078125 | 87136.5 | 680.754 | 10523.5 | 844.31 | 33.5892 | + cell_09 | 306 | 454 | 2784 | 10.875 | 0.00250435 | 1.12476 | 0.00390625 | 81770.7 | 319.417 | 5853.02 | 359.268 | 14.658 | + cell_10 | 284 | 416 | 2607 | 5.0918 | 0.0032397 | 1.27154 | 0.00195312 | 77143.8 | 150.671 | 2355.46 | 191.584 | 7.63098 | + cell_11 | 246 | 376 | 2293 | 2.23926 | 0.00279744 | 1.23579 | 0.000976562 | 70106.3 | 68.4632 | 1232.41 | 84.6063 | 3.44759 | + cell_12 | 241 | 336 | 2114 | 1.03223 | 0.00454045 | 1.28172 | 0.000488281 | 66300.8 | 32.3735 | 393.692 | 41.4939 | 1.78754 | + cell_13 | 248 | 352 | 2257 | 0.551025 | 0.00283646 | 1.03518 | 0.000244141 | 63953.5 | 15.6136 | 250.843 | 16.1629 | 0.711507 | + cell_14 | 227 | 316 | 2260 | 0.275879 | 0.00276701 | 0.889448 | 0.00012207 | 63333.6 | 7.73115 | 115.32 | 6.87646 | 0.319091 | + cell_15 | 186 | 270 | 2036 | 0.124268 | 0.00171044 | 0.770574 | 6.10352e-05 | 54441.5 | 3.32285 | 69.0135 | 2.5605 | 0.118044 | + cell_16 | 128 | 199 | 1377 | 0.0420227 | 0.00164586 | 0.761464 | 3.05176e-05 | 37674.4 | 1.14973 | 24.2389 | 0.875479 | 0.0398938 | + cell_17 | 129 | 185 | 1173 | 0.0178986 | 0.00218584 | 1.00028 | 1.52588e-05 | 34502.9 | 0.526472 | 10.1086 | 0.526622 | 0.0220958 | + cell_18 | 83 | 156 | 816 | 0.00622559 | 0.00316383 | 1.32707 | 7.62939e-06 | 24794.8 | 0.189169 | 3.13348 | 0.251041 | 0.00991379 | + cell_19 | 62 | 62 | 0 | 0 | 0.0143802 | 2.10772 | 7.62939e-06 | 8666.09 | 0.066117 | 0.350544 | 0.139356 | 0.00504088 | ============================================= diff --git a/examples/extended/biasing/B03/exampleB03.out b/examples/extended/biasing/B03/exampleB03.out index d3f3f74cda..dacb0f8b87 100644 --- a/examples/extended/biasing/B03/exampleB03.out +++ b/examples/extended/biasing/B03/exampleB03.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -101,6 +101,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -128,7 +129,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 diff --git a/examples/extended/biasing/GB01/exampleGB01.out b/examples/extended/biasing/GB01/exampleGB01.out index b2c4913a1a..20b54e43e3 100644 --- a/examples/extended/biasing/GB01/exampleGB01.out +++ b/examples/extended/biasing/GB01/exampleGB01.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -45,6 +45,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -97,6 +99,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -124,7 +127,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -175,8 +178,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -658,6 +661,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -935,10 +943,10 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 3 -39.1 6.68 128 0.685 0 90.6 637 test.phys compt 4 -39.2 7.37 130 0.194 0 1.6 639 test.phys compt 5 -28 -19.9 106 0.121 0 37.6 676 test.phys compt - 6 -48.9 -9.48 106 0.119 0 23.4 700 test.phys compt - 7 -56.6 -5.84 102 0.106 0 9.32 709 test.phys compt - 8 -161 31.5 182 0.0927 0 137 846 test.phys compt - 9 -172 2.38 200 0.0927 0 35.9 882 World Transportation + 6 -49 -9.44 106 0.119 0 23.5 700 test.phys compt + 7 -56.7 -5.79 102 0.106 0 9.35 709 test.phys compt + 8 -161 31.6 182 0.0927 0 137 846 test.phys compt + 9 -172 2.41 200 0.0927 0 35.9 882 World Transportation 10 -3.87e+03 -1e+04 6.35e+03 0.0927 0 1.23e+04 1.32e+04 OutOfWorld Transportation ********************************************************************************************************* @@ -946,24 +954,24 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -161 31.5 182 0.0135 0 0 0 test.phys initStep - 1 -161 31.5 182 0 0.0135 0.00601 0.00601 test.phys eIoni + 0 -161 31.6 182 0.0135 0 0 0 test.phys initStep + 1 -161 31.6 182 0 0.0135 0.00601 0.00601 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -56.6 -5.84 102 0.0125 0 0 0 test.phys initStep - 1 -56.6 -5.84 102 0 0.0125 0.00524 0.00524 test.phys eIoni + 0 -56.7 -5.79 102 0.0125 0 0 0 test.phys initStep + 1 -56.7 -5.79 102 0 0.0125 0.00524 0.00524 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -48.9 -9.48 106 0.00243 0 0 0 test.phys initStep - 1 -48.9 -9.48 106 0 0.00243 0.000323 0.000323 test.phys eIoni + 0 -49 -9.44 106 0.00243 0 0 0 test.phys initStep + 1 -49 -9.44 106 0 0.00243 0.000323 0.000323 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 @@ -1008,11 +1016,11 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 2 0 0 108 0.566 0 108 608 test.phys compt 3 -1.78 1.08 110 0.242 0 2.62 611 test.phys compt 4 -0.183 -11.9 115 0.135 0 14.2 625 test.phys compt - 5 -0.609 -3.99 119 0.13 0 8.66 633 test.phys compt - 6 0.0279 -2.85 119 0.103 0 1.35 635 test.phys compt - 7 51.5 -46.4 166 0.0947 0 82 717 test.phys compt - 8 82.6 -30.2 185 0.0726 0 39.8 757 test.phys compt - 9 -37.1 47.4 0 0.0726 0 233 990 World Transportation + 5 -0.61 -3.96 119 0.13 0 8.69 634 test.phys compt + 6 0.0287 -2.82 119 0.103 0 1.35 635 test.phys compt + 7 51.6 -46.4 166 0.0947 0 82.1 717 test.phys compt + 8 82.8 -30.2 185 0.0726 0 40 757 test.phys compt + 9 -37.1 47.5 0 0.0726 0 234 991 World Transportation 10 -6.52e+03 4.25e+03 -1e+04 0.0726 0 1.26e+04 1.36e+04 OutOfWorld Transportation ********************************************************************************************************* @@ -1020,32 +1028,32 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 82.6 -30.2 185 0.0221 0 0 0 test.phys initStep - 1 82.6 -30.2 185 0 0.0221 0.0143 0.0143 test.phys eIoni + 0 82.8 -30.2 185 0.0221 0 0 0 test.phys initStep + 1 82.8 -30.2 185 0 0.0221 0.0143 0.0143 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 51.5 -46.4 166 0.00871 0 0 0 test.phys initStep - 1 51.5 -46.4 166 0 0.00871 0.0028 0.0028 test.phys eIoni + 0 51.6 -46.4 166 0.00871 0 0 0 test.phys initStep + 1 51.6 -46.4 166 0 0.00871 0.0028 0.0028 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0279 -2.85 119 0.0264 0 0 0 test.phys initStep - 1 0.0277 -2.84 119 0 0.0264 0.0197 0.0197 test.phys eIoni + 0 0.0287 -2.82 119 0.0264 0 0 0 test.phys initStep + 1 0.0285 -2.81 119 0 0.0264 0.0197 0.0197 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.609 -3.99 119 0.00516 0 0 0 test.phys initStep - 1 -0.609 -3.99 119 0 0.00516 0.00113 0.00113 test.phys eIoni + 0 -0.61 -3.96 119 0.00516 0 0 0 test.phys initStep + 1 -0.611 -3.96 119 0 0.00516 0.00113 0.00113 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 @@ -1083,9 +1091,9 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 2 0 0 69.8 0.793 0 69.8 570 test.phys compt 3 -6.97 2.41 82.6 0.352 0 14.8 585 test.phys compt 4 19.3 21 102 0.255 0 37.4 622 test.phys compt - 5 40.1 -1.04 132 0.143 0 43.2 665 test.phys compt - 6 -54.7 26.1 136 0.104 0 98.7 764 test.phys compt - 7 -37.8 -84.2 200 0.104 0 129 893 World Transportation + 5 40.1 -1.03 132 0.143 0 43.2 665 test.phys compt + 6 -54.9 26.1 136 0.104 0 98.9 764 test.phys compt + 7 -38 -84.1 200 0.104 0 129 893 World Transportation 8 1.48e+03 -1e+04 5.97e+03 0.104 0 1.16e+04 1.25e+04 OutOfWorld Transportation ********************************************************************************************************* @@ -1093,15 +1101,15 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -54.7 26.1 136 0.039 0 0 0 test.phys initStep - 1 -54.8 26.1 136 0 0.039 0.039 0.039 test.phys eIoni + 0 -54.9 26.1 136 0.039 0 0 0 test.phys initStep + 1 -54.9 26.1 136 0 0.039 0.039 0.039 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 40.1 -1.04 132 0.113 0 0 0 test.phys initStep + 0 40.1 -1.03 132 0.113 0 0 0 test.phys initStep 1 40.2 -1.09 133 0 0.113 0.244 0.244 test.phys eIoni ********************************************************************************************************* @@ -1169,8 +1177,8 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 3 0.42 -0.00874 39.7 0.791 0 3.74 540 test.phys compt 4 -8.64 -65.8 165 0.241 0 142 682 test.phys compt 5 11.2 -28.9 163 0.132 0 42 723 test.phys compt - 6 14.3 -42.3 163 0.105 0 13.8 737 test.phys compt - 7 20.4 -41.3 200 0.105 0 37.5 775 World Transportation + 6 14.3 -42.4 163 0.105 0 13.8 737 test.phys compt + 7 20.4 -41.4 200 0.105 0 37.5 775 World Transportation 8 1.64e+03 225 1e+04 0.105 0 9.94e+03 1.07e+04 OutOfWorld Transportation ********************************************************************************************************* @@ -1178,7 +1186,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 14.3 -42.3 163 0.0271 0 0 0 test.phys initStep + 0 14.3 -42.4 163 0.0271 0 0 0 test.phys initStep 1 14.3 -42.4 163 0 0.0271 0.0205 0.0205 test.phys eIoni ********************************************************************************************************* @@ -1252,62 +1260,62 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 1 0 0 0 1 0 500 500 test.phys Transportation 2 0 0 144 0.703 0 144 644 test.phys compt 3 -5.11 3.73 152 0.198 0 10.2 654 test.phys compt - 4 -0.996 -6.57 145 0.198 0 13 667 test.phys Rayl + 4 -0.997 -6.57 145 0.198 0 13 667 test.phys Rayl 5 17.2 -45.6 122 0.124 0 48.9 716 test.phys compt - 6 -6.93 -19.4 104 0.12 0 40 756 test.phys compt - 7 -118 85.7 110 0.0893 0 153 909 test.phys compt - 8 -126 15.5 157 0.0755 0 84.9 994 test.phys compt - 9 -117 10.2 150 0.0594 0 12.9 1.01e+03 test.phys compt - 10 -165 23.7 153 0.0492 0 50.8 1.06e+03 test.phys compt - 11 -131 36.9 144 0 0.000403 37.9 1.1e+03 test.phys phot + 6 -7.02 -19.3 104 0.12 0 40.2 756 test.phys compt + 7 -118 86.2 110 0.0893 0 153 910 test.phys compt + 8 -126 15.7 157 0.0755 0 85.2 995 test.phys compt + 9 -117 10.4 150 0.0594 0 12.9 1.01e+03 test.phys compt + 10 -166 23.9 153 0.0492 0 50.9 1.06e+03 test.phys compt + 11 -131 37.1 144 0 0.000403 37.9 1.1e+03 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -131 36.9 144 0.0488 0 0 0 test.phys initStep - 1 -131 36.8 144 0 0.0488 0.0578 0.0578 test.phys eIoni + 0 -131 37.1 144 0.0488 0 0 0 test.phys initStep + 1 -131 37.1 144 0 0.0488 0.0578 0.0578 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -165 23.7 153 0.0103 0 0 0 test.phys initStep - 1 -165 23.7 153 0 0.0103 0.00373 0.00373 test.phys eIoni + 0 -166 23.9 153 0.0103 0 0 0 test.phys initStep + 1 -166 23.9 153 0 0.0103 0.00373 0.00373 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -117 10.2 150 0.0161 0 0 0 test.phys initStep - 1 -117 10.2 150 0 0.0161 0.00817 0.00817 test.phys eIoni + 0 -117 10.4 150 0.0161 0 0 0 test.phys initStep + 1 -117 10.4 150 0 0.0161 0.00817 0.00817 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -126 15.5 157 0.0138 0 0 0 test.phys initStep - 1 -126 15.5 157 0 0.0138 0.00623 0.00623 test.phys eIoni + 0 -126 15.7 157 0.0138 0 0 0 test.phys initStep + 1 -126 15.7 157 0 0.0138 0.00623 0.00623 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -118 85.7 110 0.031 0 0 0 test.phys initStep - 1 -118 85.7 110 0 0.031 0.0261 0.0261 test.phys eIoni + 0 -118 86.2 110 0.031 0 0 0 test.phys initStep + 1 -118 86.2 110 0 0.031 0.0261 0.0261 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.93 -19.4 104 0.00387 0 0 0 test.phys initStep - 1 -6.93 -19.4 104 0 0.00387 0.000697 0.000697 test.phys eIoni + 0 -7.02 -19.3 104 0.00387 0 0 0 test.phys initStep + 1 -7.02 -19.3 104 0 0.00387 0.000697 0.000697 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 @@ -1315,7 +1323,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 17.2 -45.6 122 0.0734 0 0 0 test.phys initStep - 1 17.2 -45.7 122 0 0.0734 0.118 0.118 test.phys eIoni + 1 17.2 -45.6 122 0 0.0734 0.118 0.118 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 @@ -1345,92 +1353,92 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 2 0 0 31.4 0.506 0 31.4 531 test.phys compt 3 -39.6 -14.8 55.9 0.229 0 48.8 580 test.phys compt 4 -40.5 -14.8 53.3 0.187 0 2.75 583 test.phys compt - 5 -102 14.5 37.3 0.181 0 69.6 653 test.phys compt + 5 -101 14.5 37.3 0.181 0 69.6 653 test.phys compt 6 -103 14.7 36.4 0.13 0 1.8 654 test.phys compt - 7 -110 25.8 55.1 0.102 0 22.7 677 test.phys compt - 8 -110 26 54.8 0.102 0 0.484 678 test.phys Rayl - 9 -133 27.3 8.71 0.0843 0 51.5 729 test.phys compt - 10 -135 -77.6 11.6 0.0797 0 105 834 test.phys compt - 11 -130 -83.7 7.28 0.0627 0 9.04 843 test.phys compt - 12 -151 -83.3 23.9 0.061 0 26.8 870 test.phys compt - 13 -162 -72.9 64.5 0.055 0 43.3 913 test.phys compt - 14 -138 -121 88.1 0.0508 0 58.5 972 test.phys compt - 15 -131 -140 61 0.0456 0 34.1 1.01e+03 test.phys compt - 16 -54.9 -117 78.9 0.0443 0 81.8 1.09e+03 test.phys compt - 17 -46.3 -98 88 0.0443 0 22.8 1.11e+03 test.phys Rayl - 18 -44.4 -91.8 92.2 0 0.000403 7.77 1.12e+03 test.phys phot + 7 -110 25.8 55.1 0.102 0 22.8 677 test.phys compt + 8 -110 26 54.9 0.102 0 0.485 678 test.phys Rayl + 9 -133 27.4 8.7 0.0843 0 51.6 729 test.phys compt + 10 -135 -78 11.6 0.0797 0 105 835 test.phys compt + 11 -130 -84.1 7.27 0.0627 0 9.06 844 test.phys compt + 12 -151 -83.6 24 0.061 0 26.9 871 test.phys compt + 13 -162 -73.3 64.6 0.055 0 43.4 914 test.phys compt + 14 -138 -121 88.2 0.0508 0 58.5 972 test.phys compt + 15 -131 -141 61.2 0.0456 0 34 1.01e+03 test.phys compt + 16 -54.9 -117 79 0.0443 0 81.9 1.09e+03 test.phys compt + 17 -46.4 -98.3 88.2 0.0443 0 22.8 1.11e+03 test.phys Rayl + 18 -44.5 -92 92.4 0 0.000403 7.77 1.12e+03 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -44.4 -91.8 92.2 0.0439 0 0 0 test.phys initStep - 1 -44.4 -91.8 92.3 0 0.0439 0.0481 0.0481 test.phys eIoni + 0 -44.5 -92 92.4 0.0439 0 0 0 test.phys initStep + 1 -44.5 -92 92.4 0 0.0439 0.0481 0.0481 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -54.9 -117 78.9 0.00128 0 0 0 test.phys initStep - 1 -54.9 -117 78.9 0 0.00128 0.000119 0.000119 test.phys eIoni + 0 -54.9 -117 79 0.00128 0 0 0 test.phys initStep + 1 -54.9 -117 79 0 0.00128 0.000119 0.000119 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -131 -140 61 0.00521 0 0 0 test.phys initStep - 1 -131 -140 61 0 0.00521 0.00115 0.00115 test.phys eIoni + 0 -131 -141 61.2 0.00521 0 0 0 test.phys initStep + 1 -131 -141 61.2 0 0.00521 0.00115 0.00115 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -138 -121 88.1 0.00421 0 0 0 test.phys initStep - 1 -138 -121 88.1 0 0.00421 0.000804 0.000804 test.phys eIoni + 0 -138 -121 88.2 0.00421 0 0 0 test.phys initStep + 1 -138 -121 88.2 0 0.00421 0.000804 0.000804 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -162 -72.9 64.5 0.00604 0 0 0 test.phys initStep - 1 -162 -72.9 64.5 0 0.00604 0.00149 0.00149 test.phys eIoni + 0 -162 -73.3 64.6 0.00604 0 0 0 test.phys initStep + 1 -162 -73.3 64.6 0 0.00604 0.00149 0.00149 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -151 -83.3 23.9 0.00162 0 0 0 test.phys initStep - 1 -151 -83.3 23.9 0 0.00162 0.000171 0.000171 test.phys eIoni + 0 -151 -83.6 24 0.00162 0 0 0 test.phys initStep + 1 -151 -83.6 24 0 0.00162 0.000171 0.000171 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -130 -83.7 7.28 0.0171 0 0 0 test.phys initStep - 1 -130 -83.7 7.27 0 0.0171 0.00911 0.00911 test.phys eIoni + 0 -130 -84.1 7.27 0.0171 0 0 0 test.phys initStep + 1 -130 -84.1 7.26 0 0.0171 0.00911 0.00911 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -135 -77.6 11.6 0.00455 0 0 0 test.phys initStep - 1 -135 -77.6 11.6 0 0.00455 0.000918 0.000918 test.phys eIoni + 0 -135 -78 11.6 0.00455 0 0 0 test.phys initStep + 1 -135 -78 11.6 0 0.00455 0.000918 0.000918 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -133 27.3 8.71 0.0175 0 0 0 test.phys initStep - 1 -133 27.3 8.71 0 0.0175 0.00953 0.00953 test.phys eIoni + 0 -133 27.4 8.7 0.0175 0 0 0 test.phys initStep + 1 -133 27.4 8.7 0 0.0175 0.00953 0.00953 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 @@ -1438,7 +1446,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -110 25.8 55.1 0.0285 0 0 0 test.phys initStep - 1 -110 25.8 55.1 0 0.0285 0.0224 0.0224 test.phys eIoni + 1 -110 25.8 55.2 0 0.0285 0.0224 0.0224 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 @@ -1453,8 +1461,8 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -102 14.5 37.3 0.00562 0 0 0 test.phys initStep - 1 -102 14.5 37.3 0 0.00562 0.00131 0.00131 test.phys eIoni + 0 -101 14.5 37.3 0.00562 0 0 0 test.phys initStep + 1 -101 14.5 37.3 0 0.00562 0.00131 0.00131 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 @@ -1496,12 +1504,12 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 7 -139 -114 142 0.185 0 49.7 812 test.phys compt 8 -140 -114 142 0.113 0 1.18 813 test.phys compt 9 -133 -102 138 0.103 0 14.7 828 test.phys compt - 10 -131 -98.5 141 0.0906 0 4.9 833 test.phys compt - 11 -127 -103 149 0.0699 0 9.77 843 test.phys compt - 12 -109 -44.3 113 0.0574 0 70.8 913 test.phys compt - 13 -10.8 -326 56.8 0.05 0 304 1.22e+03 test.phys compt - 14 -38.4 -312 20.1 0.0485 0 48 1.27e+03 test.phys compt - 15 -54.2 -262 7.11e-15 0.0485 0 56.5 1.32e+03 World Transportation + 10 -131 -98.4 141 0.0906 0 4.91 833 test.phys compt + 11 -127 -103 149 0.0699 0 9.81 843 test.phys compt + 12 -109 -44.2 113 0.0574 0 70.9 914 test.phys compt + 13 -10.7 -326 56.7 0.05 0 304 1.22e+03 test.phys compt + 14 -38.2 -312 20 0.0485 0 48 1.27e+03 test.phys compt + 15 -54 -262 0 0.0485 0 56.2 1.32e+03 World Transportation 16 -3.29e+03 1e+04 -4.09e+03 0.0485 0 1.15e+04 1.28e+04 OutOfWorld Transportation ********************************************************************************************************* @@ -1509,24 +1517,24 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -38.4 -312 20.1 0.00144 0 0 0 test.phys initStep - 1 -38.4 -312 20.1 0 0.00144 0.000143 0.000143 test.phys eIoni + 0 -38.2 -312 20 0.00144 0 0 0 test.phys initStep + 1 -38.2 -312 20 0 0.00144 0.000143 0.000143 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -10.8 -326 56.8 0.0074 0 0 0 test.phys initStep - 1 -10.8 -326 56.8 0 0.0074 0.00211 0.00211 test.phys eIoni + 0 -10.7 -326 56.7 0.0074 0 0 0 test.phys initStep + 1 -10.7 -326 56.7 0 0.0074 0.00211 0.00211 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -109 -44.3 113 0.0125 0 0 0 test.phys initStep - 1 -109 -44.3 113 0 0.0125 0.00525 0.00525 test.phys eIoni + 0 -109 -44.2 113 0.0125 0 0 0 test.phys initStep + 1 -109 -44.2 113 0 0.0125 0.00525 0.00525 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 @@ -1541,8 +1549,8 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -131 -98.5 141 0.0123 0 0 0 test.phys initStep - 1 -131 -98.5 141 0 0.0123 0.00513 0.00513 test.phys eIoni + 0 -131 -98.4 141 0.0123 0 0 0 test.phys initStep + 1 -131 -98.4 141 0 0.0123 0.00513 0.00513 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 @@ -1616,7 +1624,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -0.825 -0.585 95.4 0.00439 0 0 0 test.phys initStep - 1 -0.825 -0.585 95.4 0 0.00439 0.000864 0.000864 test.phys eIoni + 1 -0.826 -0.585 95.4 0 0.00439 0.000864 0.000864 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 @@ -2021,7 +2029,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 37 0.243 0 0 0 test.phys initStep 1 -3.96 -23.9 1.6 0.157 0 42.9 42.9 test.phys compt - 2 -3.57 -20.6 0 0.157 0 3.74 46.7 World Transportation + 2 -3.56 -20.6 7.11e-15 0.157 0 3.75 46.7 World Transportation 3 1.18e+03 1e+04 -4.77e+03 0.157 0 1.12e+04 1.12e+04 OutOfWorld Transportation ********************************************************************************************************* @@ -2462,33 +2470,33 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -86.8 191 144 0.0726 0 0 0 test.phys initStep - 1 11.2 146 96.6 0.0718 0 118 118 test.phys compt - 2 86.2 77.1 12.6 0.0616 0 132 250 test.phys compt - 3 102 123 3.14 0 0.000403 48.9 299 test.phys phot + 1 11.3 146 96.5 0.0718 0 118 118 test.phys compt + 2 86.4 76.9 12.5 0.0616 0 132 250 test.phys compt + 3 102 123 2.98 0 0.000403 49.1 299 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 31, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 102 123 3.14 0.0612 0 0 0 test.phys initStep - 1 102 123 3.14 0 0.0612 0.0859 0.0859 test.phys eIoni + 0 102 123 2.98 0.0612 0 0 0 test.phys initStep + 1 102 123 2.98 0 0.0612 0.0859 0.0859 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 30, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 86.2 77.1 12.6 0.0103 0 0 0 test.phys initStep - 1 86.2 77.1 12.6 0 0.0103 0.00372 0.00372 test.phys eIoni + 0 86.4 76.9 12.5 0.0103 0 0 0 test.phys initStep + 1 86.4 76.9 12.5 0 0.0103 0.00372 0.00372 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 29, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 11.2 146 96.6 0.000722 0 0 0 test.phys initStep - 1 11.2 146 96.6 0 0.000722 5.33e-05 5.33e-05 test.phys eIoni + 0 11.3 146 96.5 0.000722 0 0 0 test.phys initStep + 1 11.3 146 96.5 0 0.000722 5.33e-05 5.33e-05 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 26, Parent ID = 19 @@ -2671,16 +2679,16 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 2 301 4.12 184 1.4 0 63 333 test.phys compt 3 445 29.1 137 0.218 0 154 487 test.phys compt 4 426 22.2 141 0.14 0 20.9 508 test.phys compt - 5 433 18 91.7 0.136 0 49.7 558 test.phys compt - 6 434 21.2 84.2 0.0956 0 8.24 566 test.phys compt - 7 396 2.99 101 0.0725 0 44.9 611 test.phys compt + 5 433 18 91.6 0.136 0 49.8 558 test.phys compt + 6 434 21.2 84 0.0956 0 8.27 566 test.phys compt + 7 396 2.92 101 0.0725 0 45.1 611 test.phys compt 8 495 236 102 0.0697 0 253 864 test.phys compt - 9 478 279 108 0.0688 0 46 910 test.phys compt - 10 467 301 124 0.0666 0 29.9 940 test.phys compt - 11 455 337 117 0.0623 0 37.9 978 test.phys compt - 12 483 371 67.4 0.0612 0 66.4 1.04e+03 test.phys compt - 13 483 374 53.8 0.0573 0 13.9 1.06e+03 test.phys compt - 14 490 309 0 0.0573 0 84.7 1.14e+03 World Transportation + 9 478 279 108 0.0688 0 46.1 911 test.phys compt + 10 467 302 124 0.0666 0 29.9 940 test.phys compt + 11 455 337 117 0.0623 0 38 978 test.phys compt + 12 483 371 67.2 0.0612 0 66.5 1.04e+03 test.phys compt + 13 483 375 53.6 0.0573 0 14 1.06e+03 test.phys compt + 14 490 310 0 0.0573 0 84.4 1.14e+03 World Transportation 15 1.61e+03 -1e+04 -8.53e+03 0.0573 0 1.34e+04 1.46e+04 OutOfWorld Transportation ********************************************************************************************************* @@ -2688,16 +2696,16 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 483 374 53.8 0.00391 0 0 0 test.phys initStep - 1 483 374 53.8 0 0.00391 0.000709 0.000709 test.phys eIoni + 0 483 375 53.6 0.00391 0 0 0 test.phys initStep + 1 483 375 53.6 0 0.00391 0.000709 0.000709 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 58, Parent ID = 37 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 483 371 67.4 0.00112 0 0 0 test.phys initStep - 1 483 371 67.4 0 0.00112 9.85e-05 9.85e-05 test.phys eIoni + 0 483 371 67.2 0.00112 0 0 0 test.phys initStep + 1 483 371 67.2 0 0.00112 9.85e-05 9.85e-05 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 57, Parent ID = 37 @@ -2712,8 +2720,8 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 467 301 124 0.00228 0 0 0 test.phys initStep - 1 467 301 124 0 0.00228 0.000294 0.000294 test.phys eIoni + 0 467 302 124 0.00228 0 0 0 test.phys initStep + 1 467 302 124 0 0.00228 0.000294 0.000294 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 55, Parent ID = 37 @@ -2736,24 +2744,24 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 396 2.99 101 0.023 0 0 0 test.phys initStep - 1 396 2.98 101 0 0.023 0.0154 0.0154 test.phys eIoni + 0 396 2.92 101 0.023 0 0 0 test.phys initStep + 1 396 2.92 101 0 0.023 0.0154 0.0154 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 52, Parent ID = 37 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 434 21.2 84.2 0.0403 0 0 0 test.phys initStep - 1 434 21.2 84.1 0 0.0403 0.0414 0.0414 test.phys eIoni + 0 434 21.2 84 0.0403 0 0 0 test.phys initStep + 1 434 21.2 84 0 0.0403 0.0414 0.0414 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 51, Parent ID = 37 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 433 18 91.7 0.00444 0 0 0 test.phys initStep - 1 433 18 91.7 0 0.00444 0.000878 0.000878 test.phys eIoni + 0 433 18 91.6 0.00444 0 0 0 test.phys initStep + 1 433 18 91.6 0 0.00444 0.000878 0.000878 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 50, Parent ID = 37 diff --git a/examples/extended/biasing/GB01/include/GB01DetectorConstruction.hh b/examples/extended/biasing/GB01/include/GB01DetectorConstruction.hh index f331bef668..5e8f5106fc 100644 --- a/examples/extended/biasing/GB01/include/GB01DetectorConstruction.hh +++ b/examples/extended/biasing/GB01/include/GB01DetectorConstruction.hh @@ -32,13 +32,6 @@ #include "G4VUserDetectorConstruction.hh" #include "globals.hh" -class G4Box; -class G4LogicalVolume; -class G4VPhysicalVolume; -class G4Material; -class G4UniformMagField; -class DetectorMessenger; - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class GB01DetectorConstruction : public G4VUserDetectorConstruction diff --git a/examples/extended/biasing/GB02/exampleGB02.out b/examples/extended/biasing/GB02/exampleGB02.out index da2f2b7e49..0e35de9dc8 100644 --- a/examples/extended/biasing/GB02/exampleGB02.out +++ b/examples/extended/biasing/GB02/exampleGB02.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -45,6 +45,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -97,6 +99,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -124,7 +127,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -175,8 +178,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -658,6 +661,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -944,12 +952,12 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 1 0 0 74.5 0.264 0 74.5 574 test.phys compt 2 54.2 -26.8 45.9 0.166 0 66.9 641 test.phys compt 3 38.5 -22.9 22.3 0.138 0 28.6 670 test.phys compt - 4 -0.137 31.9 26.7 0.0953 0 67.2 737 test.phys compt - 5 3.68 31.2 24.6 0.0699 0 4.43 742 test.phys compt - 6 -18.5 33.6 28.7 0.055 0 22.7 764 test.phys compt - 7 29 24.8 29.1 0.05 0 48.4 813 test.phys compt - 8 27 -1.88 6.59 0.0473 0 34.9 848 test.phys compt - 9 25.4 0.0937 0 0.0473 0 7.05 855 World Transportation + 4 -0.246 32 26.8 0.0953 0 67.4 737 test.phys compt + 5 3.59 31.4 24.6 0.0699 0 4.45 742 test.phys compt + 6 -18.7 33.8 28.7 0.055 0 22.8 765 test.phys compt + 7 28.8 24.9 29.1 0.05 0 48.3 813 test.phys compt + 8 26.8 -1.72 6.6 0.0473 0 34.9 848 test.phys compt + 9 25.3 0.262 0 0.0473 0 7.07 855 World Transportation 10 -2.33e+03 3e+03 -1e+04 0.0473 0 1.07e+04 1.16e+04 OutOfWorld Transportation ********************************************************************************************************* @@ -957,40 +965,40 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 27 -1.88 6.59 0.00277 0 0 0 test.phys initStep - 1 27 -1.88 6.59 0 0.00277 0.000402 0.000402 test.phys eIoni + 0 26.8 -1.72 6.6 0.00277 0 0 0 test.phys initStep + 1 26.8 -1.72 6.6 0 0.00277 0.000402 0.000402 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 29 24.8 29.1 0.00497 0 0 0 test.phys initStep - 1 29 24.8 29.1 0 0.00497 0.00106 0.00106 test.phys eIoni + 0 28.8 24.9 29.1 0.00497 0 0 0 test.phys initStep + 1 28.8 24.9 29.1 0 0.00497 0.00106 0.00106 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.5 33.6 28.7 0.0149 0 0 0 test.phys initStep - 1 -18.5 33.6 28.7 0 0.0149 0.00716 0.00716 test.phys eIoni + 0 -18.7 33.8 28.7 0.0149 0 0 0 test.phys initStep + 1 -18.7 33.8 28.7 0 0.0149 0.00716 0.00716 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.68 31.2 24.6 0.0254 0 0 0 test.phys initStep - 1 3.69 31.2 24.6 0 0.0254 0.0183 0.0183 test.phys eIoni + 0 3.59 31.4 24.6 0.0254 0 0 0 test.phys initStep + 1 3.6 31.4 24.6 0 0.0254 0.0183 0.0183 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.137 31.9 26.7 0.0423 0 0 0 test.phys initStep - 1 -0.153 31.9 26.7 0 0.0423 0.0451 0.0451 test.phys eIoni + 0 -0.246 32 26.8 0.0423 0 0 0 test.phys initStep + 1 -0.263 32.1 26.8 0 0.0423 0.0451 0.0451 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 @@ -1135,7 +1143,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 1 0 0 110 0.917 0 110 610 test.phys compt 2 14.8 17 181 0.253 0 75.1 685 test.phys compt 3 33 26.5 162 0.131 0 28.5 713 test.phys compt - 4 32.8 26.5 162 0.121 0 0.706 714 test.phys compt + 4 32.8 26.5 162 0.121 0 0.709 714 test.phys compt 5 34.9 60.2 200 0.121 0 50.6 765 World Transportation 6 589 8.81e+03 1e+04 0.121 0 1.32e+04 1.39e+04 OutOfWorld Transportation @@ -1316,16 +1324,16 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 1 0 0 131 0.619 0 131 631 test.phys compt 2 50.9 -35.9 189 0.374 0 85.5 716 test.phys compt 3 63.2 -61.3 183 0.158 0 29.1 745 test.phys compt - 4 39.2 0.0335 164 0.125 0 68.3 814 test.phys compt - 5 144 47.3 118 0.113 0 124 938 test.phys compt - 6 145 51.9 117 0.101 0 4.84 943 test.phys compt - 7 149 57.3 91.1 0.0879 0 26.4 969 test.phys compt - 8 154 61.2 91.1 0.0876 0 6.79 976 test.phys compt - 9 211 96 78.1 0.0729 0 68.1 1.04e+03 test.phys compt - 10 151 174 128 0.0611 0 110 1.15e+03 test.phys compt - 11 138 171 69.8 0.0601 0 59.3 1.21e+03 test.phys compt - 12 153 152 9.83 0.0573 0 64.8 1.28e+03 test.phys compt - 13 177 149 7.11e-15 0.0573 0 26.2 1.3e+03 World Transportation + 4 39.2 0.035 164 0.125 0 68.3 814 test.phys compt + 5 145 47.4 118 0.113 0 125 938 test.phys compt + 6 145 52.1 116 0.101 0 4.85 943 test.phys compt + 7 149 57.5 90.8 0.0879 0 26.5 970 test.phys compt + 8 155 61.4 90.9 0.0876 0 6.82 976 test.phys compt + 9 212 96.3 77.8 0.0729 0 68.4 1.04e+03 test.phys compt + 10 152 175 127 0.0611 0 110 1.16e+03 test.phys compt + 11 139 171 69.4 0.0601 0 59.5 1.21e+03 test.phys compt + 12 154 152 9.32 0.0573 0 64.9 1.28e+03 test.phys compt + 13 177 149 7.11e-15 0.0573 0 24.9 1.3e+03 World Transportation 14 1e+04 -958 -3.99e+03 0.0573 0 1.07e+04 1.2e+04 OutOfWorld Transportation ********************************************************************************************************* @@ -1333,72 +1341,72 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 153 152 9.83 0.00276 0 0 0 test.phys initStep - 1 153 152 9.83 0 0.00276 0.000399 0.000399 test.phys eIoni + 0 154 152 9.32 0.00276 0 0 0 test.phys initStep + 1 154 152 9.32 0 0.00276 0.000399 0.000399 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 13, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 138 171 69.8 0.000954 0 0 0 test.phys initStep - 1 138 171 69.8 0 0.000954 7.8e-05 7.8e-05 test.phys eIoni + 0 139 171 69.4 0.000954 0 0 0 test.phys initStep + 1 139 171 69.4 0 0.000954 7.8e-05 7.8e-05 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 12, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 151 174 128 0.0118 0 0 0 test.phys initStep - 1 151 174 128 0 0.0118 0.00476 0.00476 test.phys eIoni + 0 152 175 127 0.0118 0 0 0 test.phys initStep + 1 152 175 127 0 0.0118 0.00476 0.00476 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 11, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 211 96 78.1 0.0147 0 0 0 test.phys initStep - 1 211 96 78.1 0 0.0147 0.00701 0.00701 test.phys eIoni + 0 212 96.3 77.8 0.0147 0 0 0 test.phys initStep + 1 212 96.3 77.8 0 0.0147 0.00701 0.00701 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 10, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 154 61.2 91.1 0.000341 0 0 0 test.phys initStep - 1 154 61.2 91.1 0 0.000341 2.16e-05 2.16e-05 test.phys eIoni + 0 155 61.4 90.9 0.000341 0 0 0 test.phys initStep + 1 155 61.4 90.9 0 0.000341 2.16e-05 2.16e-05 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 149 57.3 91.1 0.0135 0 0 0 test.phys initStep - 1 149 57.3 91.1 0 0.0135 0.00605 0.00605 test.phys eIoni + 0 149 57.5 90.8 0.0135 0 0 0 test.phys initStep + 1 149 57.5 90.8 0 0.0135 0.00605 0.00605 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 145 51.9 117 0.0114 0 0 0 test.phys initStep - 1 145 51.9 117 0 0.0114 0.00446 0.00446 test.phys eIoni + 0 145 52.1 116 0.0114 0 0 0 test.phys initStep + 1 145 52.1 116 0 0.0114 0.00446 0.00446 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 144 47.3 118 0.012 0 0 0 test.phys initStep - 1 144 47.3 118 0 0.012 0.00486 0.00486 test.phys eIoni + 0 145 47.4 118 0.012 0 0 0 test.phys initStep + 1 145 47.4 118 0 0.012 0.00486 0.00486 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 39.2 0.0335 164 0.033 0 0 0 test.phys initStep - 1 39.2 0.0406 164 0 0.033 0.029 0.029 test.phys eIoni + 0 39.2 0.035 164 0.033 0 0 0 test.phys initStep + 1 39.2 0.0421 164 0 0.033 0.029 0.029 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 @@ -1446,61 +1454,61 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 2 -31.9 23.3 166 0.212 0 39.5 705 test.phys compt 3 -283 -262 110 0.162 0 384 1.09e+03 test.phys compt 4 -285 -261 105 0.107 0 5.75 1.09e+03 test.phys compt - 5 -285 -262 105 0.0975 0 0.979 1.1e+03 test.phys compt - 6 -206 -301 51.9 0.0804 0 103 1.2e+03 test.phys compt - 7 -228 -300 26 0.0683 0 34.1 1.23e+03 test.phys compt - 8 -268 -323 70.2 0.0555 0 64.1 1.3e+03 test.phys compt - 9 -259 -301 63.8 0.0552 0 25.2 1.32e+03 test.phys compt - 10 -241 -273 61.2 0.0542 0 33.2 1.36e+03 test.phys compt - 11 -240 -271 62.1 0 0.000403 2.49 1.36e+03 test.phys phot + 5 -285 -262 105 0.0975 0 0.98 1.1e+03 test.phys compt + 6 -206 -301 51.7 0.0804 0 104 1.2e+03 test.phys compt + 7 -228 -300 25.8 0.0683 0 34.2 1.23e+03 test.phys compt + 8 -268 -324 70.1 0.0555 0 64.2 1.3e+03 test.phys compt + 9 -259 -301 63.6 0.0552 0 25.2 1.32e+03 test.phys compt + 10 -241 -274 61.1 0.0542 0 33.2 1.36e+03 test.phys compt + 11 -240 -271 62 0 0.000403 2.49 1.36e+03 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 13, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -240 -271 62.1 0.0538 0 0 0 test.phys initStep - 1 -240 -271 62.1 0 0.0538 0.0687 0.0687 test.phys eIoni + 0 -240 -271 62 0.0538 0 0 0 test.phys initStep + 1 -240 -271 62 0 0.0538 0.0687 0.0687 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 12, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -241 -273 61.2 0.000995 0 0 0 test.phys initStep - 1 -241 -273 61.2 0 0.000995 8.28e-05 8.28e-05 test.phys eIoni + 0 -241 -274 61.1 0.000995 0 0 0 test.phys initStep + 1 -241 -274 61.1 0 0.000995 8.28e-05 8.28e-05 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 11, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -259 -301 63.8 0.000248 0 0 0 test.phys initStep - 1 -259 -301 63.8 0 0.000248 1.58e-05 1.58e-05 test.phys eIoni + 0 -259 -301 63.6 0.000248 0 0 0 test.phys initStep + 1 -259 -301 63.6 0 0.000248 1.58e-05 1.58e-05 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 10, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -268 -323 70.2 0.0128 0 0 0 test.phys initStep - 1 -268 -323 70.2 0 0.0128 0.00547 0.00547 test.phys eIoni + 0 -268 -324 70.1 0.0128 0 0 0 test.phys initStep + 1 -268 -324 70.1 0 0.0128 0.00547 0.00547 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -228 -300 26 0.0121 0 0 0 test.phys initStep - 1 -228 -300 26 0 0.0121 0.005 0.005 test.phys eIoni + 0 -228 -300 25.8 0.0121 0 0 0 test.phys initStep + 1 -228 -300 25.8 0 0.0121 0.005 0.005 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -206 -301 51.9 0.0171 0 0 0 test.phys initStep - 1 -206 -301 51.9 0 0.0171 0.00914 0.00914 test.phys eIoni + 0 -206 -301 51.7 0.0171 0 0 0 test.phys initStep + 1 -206 -301 51.7 0 0.0171 0.00914 0.00914 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 @@ -1739,10 +1747,10 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0.0323 -1.59 138 0.156 0 0 0 test.phys initStep 1 -11.3 -44 135 0.108 0 44 44 test.phys compt - 2 21.3 -7.25 59.8 0.0774 0 90.1 134 test.phys compt - 3 19.8 -8.87 89.9 0.0665 0 30.1 164 test.phys compt - 4 -42.6 -19.5 81.1 0.064 0 63.9 228 test.phys compt - 5 -207 1.98 200 0.064 0 204 432 World Transportation + 2 21.3 -7.23 59.8 0.0774 0 90.2 134 test.phys compt + 3 19.8 -8.85 89.8 0.0665 0 30.1 164 test.phys compt + 4 -42.8 -19.5 81 0.064 0 64.1 228 test.phys compt + 5 -207 1.99 200 0.064 0 204 433 World Transportation 6 -1e+04 1.28e+03 7.27e+03 0.064 0 1.21e+04 1.26e+04 OutOfWorld Transportation ********************************************************************************************************* @@ -1750,24 +1758,24 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.6 -19.5 81.1 0.00258 0 0 0 test.phys initStep - 1 -42.6 -19.5 81.1 0 0.00258 0.000358 0.000358 test.phys eIoni + 0 -42.8 -19.5 81 0.00258 0 0 0 test.phys initStep + 1 -42.8 -19.5 81 0 0.00258 0.000358 0.000358 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 12, Parent ID = 9 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 19.8 -8.87 89.9 0.0109 0 0 0 test.phys initStep - 1 19.8 -8.87 89.9 0 0.0109 0.00412 0.00412 test.phys eIoni + 0 19.8 -8.85 89.8 0.0109 0 0 0 test.phys initStep + 1 19.8 -8.85 89.8 0 0.0109 0.00412 0.00412 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 11, Parent ID = 9 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 21.3 -7.25 59.8 0.0307 0 0 0 test.phys initStep - 1 21.3 -7.25 59.8 0 0.0307 0.0257 0.0257 test.phys eIoni + 0 21.3 -7.23 59.8 0.0307 0 0 0 test.phys initStep + 1 21.3 -7.22 59.8 0 0.0307 0.0257 0.0257 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 10, Parent ID = 9 @@ -1968,7 +1976,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -0.47 0.904 54 0.00316 0 0 0 test.phys initStep - 1 -0.47 0.904 54 0 0.00316 0.000499 0.000499 test.phys eIoni + 1 -0.471 0.904 54 0 0.00316 0.000499 0.000499 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 @@ -2077,15 +2085,15 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 2.17 0.0331 76.2 0.0112 0 0 0 test.phys initStep - 1 9.32 -6.45 71.8 0 0.000403 10.6 10.6 test.phys phot + 1 9.33 -6.46 71.8 0 0.000403 10.6 10.6 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 28, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 9.32 -6.45 71.8 0.0108 0 0 0 test.phys initStep - 1 9.32 -6.45 71.8 0 0.0108 0.00408 0.00408 test.phys eIoni + 0 9.33 -6.46 71.8 0.0108 0 0 0 test.phys initStep + 1 9.33 -6.46 71.8 0 0.0108 0.00408 0.00408 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 3 @@ -2093,7 +2101,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0.174 0.202 49.1 0.00778 0 0 0 test.phys initStep - 1 0.177 0.204 49.2 0 0.000403 0.0986 0.0986 test.phys phot + 1 0.177 0.204 49.2 0 0.000403 0.0988 0.0988 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 29, Parent ID = 17 @@ -2169,16 +2177,16 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -0.803 0.511 171 0.00994 0 0 0 test.phys initStep 1 -0.937 0.54 175 0.00994 0 3.37 3.37 test.phys Rayl - 2 -3.07 1.4 178 0.00994 0 4.34 7.7 test.phys Rayl - 3 -3.19 1.57 178 0 0.000403 0.278 7.98 test.phys phot + 2 -3.07 1.4 178 0.00991 3.08e-05 4.34 7.71 test.phys compt + 3 -3.31 1.35 178 0 0.000403 0.302 8.01 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 5 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.19 1.57 178 0.00954 0 0 0 test.phys initStep - 1 -3.19 1.57 178 0 0.00954 0.00328 0.00328 test.phys eIoni + 0 -3.31 1.35 178 0.00951 0 0 0 test.phys initStep + 1 -3.31 1.35 178 0 0.00951 0.00326 0.00326 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 @@ -2186,14 +2194,15 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 139 4.12 0 0 0 test.phys initStep - 1 -0.178 -1.12 146 3.06 1.07 7.86 7.86 test.phys eIoni - 2 0.684 -2.05 152 2.23 0.83 6.12 14 test.phys eIoni - 3 1.99 -2.44 156 1.59 0.635 4.76 18.7 test.phys eIoni - 4 0.276 -1.44 158 1.2 0.39 3.71 22.4 test.phys eIoni - 5 -1.06 0.528 159 0.901 0.3 3.05 25.5 test.phys eIoni - 6 -2.38 0.658 161 0.546 0.355 2.54 28 test.phys eIoni - 7 -3.27 0.679 162 0.283 0.263 1.87 29.9 test.phys eIoni - 8 -3.78 0.5 162 0 0.283 1.07 31 test.phys eIoni + 1 -0.178 -1.12 146 3.14 0.987 7.86 7.86 test.phys eIoni + 2 -1.31 -2.52 152 2.45 0.692 6.25 14.1 test.phys eIoni + 3 -1.56 -3.79 156 1.77 0.676 5.12 19.2 test.phys eIoni + 4 -3.08 -6.42 158 1.33 0.435 4 23.2 test.phys eIoni + 5 -2.8 -7.34 161 0.975 0.36 3.28 26.5 test.phys eIoni + 6 -2.55 -6.88 163 0.56 0.415 2.67 29.2 test.phys eIoni + 7 -3.56 -7 164 0.279 0.281 1.9 31.1 test.phys eIoni + 8 -3.5 -7.24 164 0.0301 0.249 1.05 32.1 test.phys eIoni + 9 -3.5 -7.25 164 0 0.0301 0.0248 32.1 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 @@ -2212,1369 +2221,133 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 165 0 0 165 665 test.phys conv + 1 0 0 105 0 0 105 605 test.phys conv ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 165 73.5 0 0 0 test.phys initStep - 1 0.322 -0.303 184 70.6 2.65 18.5 18.5 test.phys eIoni - 2 0.592 -1.16 200 68.7 1.86 16.4 34.9 World Transportation - 3 -69.9 -960 1e+04 68.7 3.51e-22 9.85e+03 9.88e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.322 -0.303 184 0.283 0 0 0 test.phys initStep - 1 0.817 -0.311 184 0.0316 0.252 1.07 1.07 test.phys eIoni - 2 0.823 -0.3 184 0 0.0316 0.027 1.1 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 165 25.4 0 0 0 test.phys initStep - 1 0.0116 0.0105 167 24.8 0.175 1.59 1.59 test.phys eBrem - 2 -0.156 0.469 177 23.4 1.31 10.8 12.4 test.phys eBrem - 3 -0.15 0.472 178 23 0.0814 0.434 12.8 test.phys eBrem - 4 -0.356 0.494 183 21.2 0.814 5.36 18.2 test.phys eIoni - 5 -0.547 0.594 185 20.6 0.21 1.9 20 test.phys eIoni - 6 -1.79 0.769 194 19 1.09 8.54 28.6 test.phys eIoni - 7 -2.94 0.899 198 18.1 0.559 4.81 33.4 test.phys eIoni - 8 -3.33 0.879 200 17.9 0.208 1.8 35.2 World Transportation - 9 -1.79e+03 -332 1e+04 17.9 3.15e-22 9.97e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.94 0.899 198 0.334 0 0 0 test.phys initStep - 1 -3.26 1.47 199 0.0439 0.29 1.3 1.3 test.phys eIoni - 2 -3.28 1.47 199 0 0.0439 0.048 1.34 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.79 0.769 194 0.436 0 0 0 test.phys initStep - 1 -2.14 1.59 194 0.183 0.253 1.61 1.61 test.phys eIoni - 2 -2.11 1.86 194 0 0.183 0.543 2.15 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.547 0.594 185 0.442 0 0 0 test.phys initStep - 1 -0.8 1.44 186 0.132 0.311 1.63 1.63 test.phys eIoni - 2 -0.918 1.44 186 0 0.132 0.318 1.95 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.356 0.494 183 0.958 0 0 0 test.phys initStep - 1 0.93 -0.163 185 0.643 0.315 2.64 2.64 test.phys eIoni - 2 2.29 -0.646 185 0.38 0.263 2.07 4.7 test.phys eIoni - 3 2.99 -1.13 185 0.138 0.242 1.46 6.16 test.phys eIoni - 4 3.16 -1.15 185 0 0.138 0.343 6.5 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.15 0.472 178 0.296 0 0 0 test.phys initStep - 1 -0.277 0.666 200 0.296 0 22.1 22.1 World Transportation - 2 -56.6 86.7 1e+04 0.296 0 9.8e+03 9.82e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.156 0.469 177 0.101 0 0 0 test.phys initStep - 1 -0.306 0.411 200 0.101 0 22.5 22.5 World Transportation - 2 -65.6 -24.5 1e+04 0.101 0 9.8e+03 9.82e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0116 0.0105 167 0.491 0 0 0 test.phys initStep - 1 0.396 -0.489 200 0.491 0 33.3 33.3 World Transportation - 2 114 -148 1e+04 0.491 0 9.8e+03 9.84e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 100 0 0 0 World initStep - 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 100 0 200 700 World Transportation - 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 167 0 0 167 667 test.phys conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 167 33.8 0 0 0 test.phys initStep - 1 -0.0463 -0.31 200 29.6 4.2 33.1 33.1 World Transportation - 2 -3.03e+03 1.53e+03 1e+04 29.6 3.43e-22 1.04e+04 1.04e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 167 65.2 0 0 0 test.phys initStep - 1 -0.562 0.00271 186 62.5 2.51 19.1 19.1 test.phys eBrem - 2 -0.44 0.0667 198 60.8 1.24 11.3 30.5 test.phys eIoni - 3 -0.446 0.117 200 60.6 0.214 2.41 32.9 World Transportation - 4 -155 438 1e+04 60.6 3.46e-22 9.81e+03 9.84e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.44 0.0667 198 0.444 0 0 0 test.phys initStep - 1 0.0338 -0.649 198 0.165 0.279 1.63 1.63 test.phys eIoni - 2 -0.139 -0.65 198 0 0.165 0.457 2.09 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.562 0.00271 186 0.137 0 0 0 test.phys initStep - 1 -1.01 0.121 200 0.137 0 13.8 13.8 World Transportation - 2 -320 84.7 1e+04 0.137 0 9.81e+03 9.82e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 100 0 0 0 World initStep - 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 100 0 200 700 World Transportation - 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 146 0.299 0 146 646 test.phys compt - 2 7.87 -2.5 138 0.145 0 11.6 657 test.phys compt - 3 1.66 3.85 179 0.142 0 42 699 test.phys compt - 4 4.18 0.805 200 0.142 0 21.7 721 World Transportation - 5 1.16e+03 -1.4e+03 1e+04 0.142 0 9.97e+03 1.07e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.66 3.85 179 0.00311 0 0 0 test.phys initStep - 1 1.66 3.85 179 0 0.00311 0.000484 0.000484 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.87 -2.5 138 0.154 0 0 0 test.phys initStep - 1 7.97 -2.54 137 0 0.154 0.412 0.412 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 146 99.7 0 0 0 test.phys initStep - 1 0.000777 -0.00112 147 97.3 0.0658 0.715 0.715 test.phys eBrem - 2 0.0852 -0.135 157 96.1 1.24 10.1 10.8 test.phys eBrem - 3 1.12 -1.53 200 90.6 5.51 43.4 54.3 World Transportation - 4 564 -695 1e+04 90.6 3.59e-22 9.84e+03 9.89e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0852 -0.135 157 0.0101 0 0 0 test.phys initStep - 1 0.133 -0.2 159 0 0.000403 1.91 1.91 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.133 -0.2 159 0.00965 0 0 0 test.phys initStep - 1 0.133 -0.201 159 0 0.00965 0.00334 0.00334 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.000777 -0.00112 147 2.29 0 0 0 test.phys initStep - 1 -0.168 0.00291 167 0.325 0 20.5 20.5 test.phys compt - 2 -12.1 28.7 155 0.322 0 33.3 53.8 test.phys compt - 3 -95.3 238 108 0.194 0 230 284 test.phys compt - 4 -93 223 51.6 0.15 0 58 342 test.phys compt - 5 -118 202 48.2 0.0979 0 33.2 375 test.phys compt - 6 -117 208 49.1 0.0918 0 6.4 382 test.phys compt - 7 -99.5 219 43.6 0.0909 0 20.9 403 test.phys compt - 8 38.8 251 15.4 0.0766 0 145 547 test.phys compt - 9 50.9 218 50.7 0.076 0 49.3 597 test.phys compt - 10 56.8 198 97.3 0.076 0 51.2 648 test.phys Rayl - 11 56.1 183 109 0.0736 0 18.6 666 test.phys compt - 12 55 177 109 0.061 0 6.67 673 test.phys compt - 13 62.9 186 128 0.0529 0 23 696 test.phys compt - 14 -3.41 116 156 0.0454 0 100 796 test.phys compt - 15 2.18 115 155 0.0454 0 5.73 802 test.phys Rayl - 16 42.7 125 124 0.0415 0 51.9 854 test.phys compt - 17 10.3 121 84.7 0.0388 0 50.7 905 test.phys compt - 18 54.6 75.3 35.9 0 0.000403 80.1 985 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 54.6 75.3 35.9 0.0384 0 0 0 test.phys initStep - 1 54.6 75.3 35.9 0 0.0384 0.0381 0.0381 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 10.3 121 84.7 0.00265 0 0 0 test.phys initStep - 1 10.3 121 84.7 0 0.00265 0.000372 0.000372 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.7 125 124 0.00389 0 0 0 test.phys initStep - 1 42.7 125 124 0 0.00389 0.000703 0.000703 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.41 116 156 0.00752 0 0 0 test.phys initStep - 1 -3.42 116 156 0 0.00752 0.00217 0.00217 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 62.9 186 128 0.00806 0 0 0 test.phys initStep - 1 62.9 186 128 0 0.00806 0.00244 0.00244 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 55 177 109 0.0126 0 0 0 test.phys initStep - 1 55 177 109 0 0.0126 0.00537 0.00537 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 56.1 183 109 0.00235 0 0 0 test.phys initStep - 1 56.1 183 109 0 0.00235 0.000307 0.000307 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 50.9 218 50.7 0.000689 0 0 0 test.phys initStep - 1 50.9 218 50.7 0 0.000689 5.01e-05 5.01e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 38.8 251 15.4 0.0143 0 0 0 test.phys initStep - 1 38.8 251 15.4 0 0.0143 0.00667 0.00667 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -99.5 219 43.6 0.000834 0 0 0 test.phys initStep - 1 -99.5 219 43.6 0 0.000834 6.47e-05 6.47e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -117 208 49.1 0.00609 0 0 0 test.phys initStep - 1 -117 208 49.1 0 0.00609 0.00151 0.00151 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -118 202 48.2 0.0524 0 0 0 test.phys initStep - 1 -118 202 48.2 0 0.0524 0.0656 0.0656 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -93 223 51.6 0.0437 0 0 0 test.phys initStep - 1 -93 223 51.5 0 0.0437 0.0478 0.0478 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -95.3 238 108 0.128 0 0 0 test.phys initStep - 1 -95.3 238 108 0 0.128 0.304 0.304 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -12.1 28.7 155 0.00243 0 0 0 test.phys initStep - 1 -12.1 28.7 155 0 0.00243 0.000324 0.000324 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.168 0.00291 167 1.97 0 0 0 test.phys initStep - 1 -0.145 -0.0656 168 1.87 0.0673 0.601 0.601 test.phys eBrem - 2 -0.0907 0.0433 168 1.79 0.022 0.266 0.868 test.phys eBrem - 3 0.659 1.66 171 1.33 0.456 4.03 4.9 test.phys eIoni - 4 2.28 3.46 172 0.828 0.503 3.27 8.17 test.phys eIoni - 5 2.41 4.04 174 0.552 0.276 2.41 10.6 test.phys eIoni - 6 2.34 3.52 175 0.0883 0.463 1.88 12.5 test.phys eIoni - 7 2.27 3.49 175 0 0.0883 0.162 12.6 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 26, Parent ID = 9 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0907 0.0433 168 0.0577 0 0 0 test.phys initStep - 1 0.311 1.41 170 0.0497 0 2.84 2.84 test.phys compt - 2 -5.64 3.22 167 0.048 0 7.12 9.96 test.phys compt - 3 -7.23 1.56 164 0.0479 2.35e-05 3.97 13.9 test.phys compt - 4 -18.8 -8.94 137 0.043 0 31.2 45.2 test.phys compt - 5 -0.203 -17.9 137 0.039 0 20.7 65.8 test.phys compt - 6 -55.2 -58.8 0 0.039 0 153 219 World Transportation - 7 -4.06e+03 -3.04e+03 -1e+04 0.039 0 1.12e+04 1.14e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.203 -17.9 137 0.00406 0 0 0 test.phys initStep - 1 -0.203 -17.9 137 0 0.00406 0.000756 0.000756 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.8 -8.94 137 0.00491 0 0 0 test.phys initStep - 1 -18.8 -8.94 137 0 0.00491 0.00104 0.00104 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.64 3.22 167 0.00176 0 0 0 test.phys initStep - 1 -5.64 3.22 167 0 0.00176 0.000194 0.000194 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.311 1.41 170 0.00795 0 0 0 test.phys initStep - 1 0.312 1.41 170 0 0.00795 0.00239 0.00239 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 9 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.145 -0.0656 168 0.0356 0 0 0 test.phys initStep - 1 2.33 12.5 200 0.0356 0 34.8 34.8 World Transportation - 2 751 3.82e+03 1e+04 0.0356 0 1.05e+04 1.06e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 100 0 0 0 World initStep - 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 100 0 200 700 World Transportation - 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 30.1 0 0 30.1 530 test.phys conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 30.1 69 0 0 0 test.phys initStep - 1 0.154 0.302 46.1 67 1.94 16 16 test.phys eBrem - 2 0.658 1.38 71.9 63.6 3.09 25.8 41.8 test.phys eIoni - 3 1.39 1.86 75.5 62.4 0.428 3.71 45.5 test.phys eIoni - 4 2.73 2.9 83.5 60.9 0.867 8.25 53.8 test.phys eIoni - 5 3.84 3.69 90.6 59.7 0.821 7.23 61 test.phys eIoni - 6 5.07 4.39 98.6 58.5 0.859 8.11 69.1 test.phys eIoni - 7 6.04 4.93 105 57.5 0.777 6.11 75.2 test.phys eBrem - 8 6.43 5.17 107 57.1 0.256 2.31 77.5 test.phys eIoni - 9 7.62 6.23 114 53.8 1.1 7.46 85 test.phys eIoni - 10 14.4 18.2 166 46.5 6.46 53.8 139 test.phys eBrem - 11 18 27.6 199 32.3 4.51 34.2 173 test.phys eBrem - 12 18.2 27.9 200 32.1 0.197 1.38 174 World Transportation - 13 2.47e+03 2.43e+03 1e+04 32.1 3.46e-22 1.04e+04 1.06e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 18 27.6 199 9.66 0 0 0 test.phys initStep - 1 18.2 27.9 200 9.66 0 1.37 1.37 World Transportation - 2 2.13e+03 2.21e+03 1e+04 9.66 0 1.03e+04 1.03e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 14.4 18.2 166 0.824 0 0 0 test.phys initStep - 1 17.1 28.8 200 0.824 0 35.6 35.6 World Transportation - 2 817 3.09e+03 1e+04 0.824 0 1.03e+04 1.03e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.62 6.23 114 2.16 0 0 0 test.phys initStep - 1 8.93 4.51 118 1.6 0.559 4.65 4.65 test.phys eIoni - 2 10.4 2.1 119 1.18 0.42 3.73 8.38 test.phys eIoni - 3 11.6 0.096 121 0.857 0.326 3.02 11.4 test.phys eIoni - 4 11.8 -0.922 122 0.381 0.476 2.46 13.9 test.phys eIoni - 5 11.7 -0.722 123 0.113 0.269 1.46 15.3 test.phys eIoni - 6 11.8 -0.698 123 0 0.113 0.244 15.6 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.43 5.17 107 0.223 0 0 0 test.phys initStep - 1 6.77 5.07 107 0 0.223 0.743 0.743 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.04 4.93 105 0.175 0 0 0 test.phys initStep - 1 16.2 11.9 170 0.167 0 66.9 66.9 test.phys compt - 2 37.8 5.41 200 0.167 0 37.2 104 World Transportation - 3 7.19e+03 -2.13e+03 1e+04 0.167 0 1.23e+04 1.24e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 11 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 16.2 11.9 170 0.00845 0 0 0 test.phys initStep - 1 16.2 11.9 170 0 0.00845 0.00265 0.00265 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.07 4.39 98.6 0.319 0 0 0 test.phys initStep - 1 5.46 3.94 98.9 0.0728 0.246 1.24 1.24 test.phys eIoni - 2 5.47 3.93 99 0 0.0728 0.116 1.35 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.84 3.69 90.6 0.424 0 0 0 test.phys initStep - 1 3.18 4.1 91.2 0.188 0.236 1.58 1.58 test.phys eIoni - 2 2.97 4.27 91.3 0 0.188 0.567 2.15 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.73 2.9 83.5 0.63 0 0 0 test.phys initStep - 1 3.92 2.5 84.3 0.383 0.246 2.04 2.04 test.phys eIoni - 2 4.06 2.23 85.1 0.15 0.234 1.46 3.5 test.phys eIoni - 3 3.91 2.36 85.1 0 0.15 0.391 3.9 test.phys eIoni + 0 0 0 105 88.2 0 0 0 test.phys initStep + 1 -0.0116 0.097 110 86.9 0.705 5.77 5.77 test.phys eBrem + 2 -0.0161 0.145 117 85.8 0.913 6.53 12.3 test.phys eBrem + 3 -1.57 -0.653 170 79.1 6.27 53.5 65.8 test.phys eIoni + 4 -1.83 -0.804 200 75.6 3.54 29.5 95.4 World Transportation + 5 -70.3 62.2 1e+04 75.6 3.52e-22 9.8e+03 9.9e+03 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.39 1.86 75.5 0.808 0 0 0 test.phys initStep - 1 1.05 0.785 76.9 0.356 0.452 2.37 2.37 test.phys eIoni - 2 1.22 0.0301 77 0.0998 0.256 1.37 3.75 test.phys eIoni - 3 1.29 0.0974 77 0 0.0998 0.199 3.95 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.658 1.38 71.9 0.248 0 0 0 test.phys initStep - 1 0.306 1.35 72.1 0 0.248 0.876 0.876 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.154 0.302 46.1 0.123 0 0 0 test.phys initStep - 1 -0.0502 0.512 69.8 0.089 0 23.7 23.7 test.phys compt - 2 -81.4 20.8 7.71 0.0799 0 104 128 test.phys compt - 3 -134 -3.45 32 0.0769 0 62.7 191 test.phys compt - 4 -222 -179 47.3 0.0741 0 197 388 test.phys compt - 5 -279 -306 191 0.0677 0 200 588 test.phys compt - 6 -297 -299 200 0.0677 0 20.9 609 World Transportation - 7 -1e+04 3.41e+03 5.13e+03 0.0677 0 1.15e+04 1.21e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -279 -306 191 0.00643 0 0 0 test.phys initStep - 1 -279 -306 191 0 0.00643 0.00165 0.00165 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -222 -179 47.3 0.0028 0 0 0 test.phys initStep - 1 -222 -179 47.3 0 0.0028 0.000408 0.000408 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -134 -3.45 32 0.00302 0 0 0 test.phys initStep - 1 -134 -3.45 32 0 0.00302 0.000462 0.000462 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -81.4 20.8 7.71 0.00908 0 0 0 test.phys initStep - 1 -81.4 20.8 7.7 0 0.00908 0.00301 0.00301 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0502 0.512 69.8 0.034 0 0 0 test.phys initStep - 1 -0.0449 0.511 69.8 0 0.034 0.0306 0.0306 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 30.1 29.9 0 0 0 test.phys initStep - 1 0.943 -0.0416 40.5 28.2 1.35 10.4 10.4 test.phys eIoni - 2 7.6 2.4 75.6 22 4.39 36 46.4 test.phys eBrem - 3 11 10 111 17.3 4.73 36.4 82.8 test.phys eIoni - 4 10.8 15.8 139 13.8 3.47 28.9 112 test.phys eIoni - 5 8.54 21.1 145 12.6 0.992 8.4 120 test.phys eIoni - 6 6 33.1 162 10 2.54 21.4 142 test.phys eIoni - 7 5.52 40.4 178 7.67 2.34 17.3 159 test.phys eIoni - 8 5.18 42.8 185 6.73 0.924 8.3 167 test.phys eBrem - 9 4.05 47 195 5.45 1.28 10.4 178 test.phys eBrem - 10 -2.57 42.4 200 4.18 1.28 10 188 test.phys eIoni - 11 -2.71 42.3 200 4.14 0.0324 0.212 188 World Transportation - 12 -1e+04 -6.48e+03 7.64e+03 4.14 3.9e-22 1.41e+04 1.43e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 26, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.05 47 195 0.0071 0 0 0 test.phys initStep - 1 2.32 45.6 197 0 0.000403 2.86 2.86 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.32 45.6 197 0.0067 0 0 0 test.phys initStep - 1 2.32 45.6 197 0 0.0067 0.00177 0.00177 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.18 42.8 185 0.0131 0 0 0 test.phys initStep - 1 5.55 44.3 190 0 0.000403 4.85 4.85 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 25 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.55 44.3 190 0.0127 0 0 0 test.phys initStep - 1 5.56 44.3 190 0 0.0127 0.0054 0.0054 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 8.54 21.1 145 0.252 0 0 0 test.phys initStep - 1 8.54 21.6 145 0 0.252 0.898 0.898 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.6 2.4 75.6 1.81 0 0 0 test.phys initStep - 1 33.8 18.5 200 1.81 0 128 128 World Transportation - 2 2.09e+03 1.29e+03 1e+04 1.81 0 1.01e+04 1.02e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.943 -0.0416 40.5 0.371 0 0 0 test.phys initStep - 1 0.329 0.197 41 0.15 0.221 1.43 1.43 test.phys eIoni - 2 0.32 0.394 41 0 0.15 0.393 1.82 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 100 0 0 0 World initStep - 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 100 0 200 700 World Transportation - 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 145 42.8 0 145 645 test.phys compt - 2 3.8 -5.29 200 42.8 0 55.8 700 World Transportation - 3 676 -940 1e+04 42.8 0 9.87e+03 1.06e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 145 57.2 0 0 0 test.phys initStep - 1 -1.04 1.18 158 54.1 1.63 13.8 13.8 test.phys eIoni - 2 -4.87 5.11 193 49.5 4.33 35.1 48.9 test.phys eIoni - 3 -6.08 6.02 200 48.7 0.812 7.26 56.2 World Transportation - 4 -1.39e+03 1.61e+03 1e+04 48.7 3.47e-22 1e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.87 5.11 193 0.25 0 0 0 test.phys initStep - 1 -4.81 4.74 193 0 0.25 0.891 0.891 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.04 1.18 158 1.5 0 0 0 test.phys initStep - 1 -2.44 -0.13 161 1.07 0.435 3.56 3.56 test.phys eIoni - 2 -3.91 0.456 162 0.662 0.405 2.82 6.38 test.phys eIoni - 3 -4.05 0.535 164 0.197 0.465 2.1 8.49 test.phys eIoni - 4 -3.9 0.543 164 0 0.197 0.614 9.1 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 100 0 0 0 World initStep - 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 100 0 200 700 World Transportation - 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 88 0 0 88 588 test.phys conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 88 2.54 0 0 0 test.phys initStep - 1 0.984 -0.761 92.7 2.04 0.505 5.31 5.31 test.phys eIoni - 2 0.604 2.13 95.5 1.57 0.474 4.48 9.79 test.phys eIoni - 3 1.62 5.18 96 0.868 0.697 3.68 13.5 test.phys eIoni - 4 2.26 6.82 96.9 0.541 0.328 2.49 16 test.phys eIoni - 5 2.58 8.08 96.8 0.303 0.237 1.86 17.8 test.phys eIoni - 6 2.13 8.45 96.6 0.0776 0.226 1.15 19 test.phys eIoni - 7 2.12 8.5 96.5 0 0.0776 0.122 19.1 test.phys eIoni - 8 2.12 8.5 96.5 0 0 0 19.1 test.phys annihil + 0 -1.57 -0.653 170 0.422 0 0 0 test.phys initStep + 1 -1.68 0.162 171 0.196 0.227 1.58 1.58 test.phys eIoni + 2 -1.86 0.0066 171 0 0.196 0.605 2.18 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.12 8.5 96.5 0.511 0 0 0 test.phys initStep - 1 -2.48 12.8 98.8 0.489 0 6.71 6.71 test.phys compt - 2 -104 103 105 0.469 0 136 142 test.phys compt - 3 -130 119 115 0.255 0 32.1 175 test.phys compt - 4 -103 174 116 0.138 0 61.4 236 test.phys compt - 5 -181 90.8 0 0.138 0 162 398 World Transportation - 6 -6.85e+03 -7.03e+03 -1e+04 0.138 0 1.4e+04 1.44e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -103 174 116 0.116 0 0 0 test.phys initStep - 1 -103 174 116 0 0.116 0.258 0.258 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -130 119 115 0.214 0 0 0 test.phys initStep - 1 -131 119 115 0 0.214 0.696 0.696 test.phys eIoni + 0 -0.0161 0.145 117 0.164 0 0 0 test.phys initStep + 1 0.287 1 170 0.148 0 52.6 52.6 test.phys compt + 2 19.1 -5.11 187 0.148 0 26 78.7 test.phys Rayl + 3 33.8 -8.94 200 0.148 0 20.3 98.9 World Transportation + 4 1e+04 -2.61e+03 9.35e+03 0.148 0 1.38e+04 1.39e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 6 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -104 103 105 0.0207 0 0 0 test.phys initStep - 1 -104 103 105 0 0.0207 0.0128 0.0128 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.48 12.8 98.8 0.0218 0 0 0 test.phys initStep - 1 -2.48 12.8 98.8 0 0.0218 0.014 0.014 test.phys eIoni + 0 0.287 1 170 0.0167 0 0 0 test.phys initStep + 1 0.284 1 170 0 0.0167 0.00872 0.00872 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.12 8.5 96.5 0.511 0 0 0 test.phys initStep - 1 38.5 -25.7 78.5 0.476 0 53.1 53.1 test.phys compt - 2 162 -184 80.4 0.368 0 201 254 test.phys compt - 3 183 -278 0 0.368 0 125 379 World Transportation - 4 2.34e+03 -1e+04 -8.36e+03 0.368 0 1.3e+04 1.34e+04 OutOfWorld Transportation + 0 -0.0116 0.097 110 0.588 0 0 0 test.phys initStep + 1 -0.15 0.813 138 0.248 0 27.1 27.1 test.phys compt + 2 -42 80.7 118 0.234 0 92.4 119 test.phys compt + 3 -108 135 126 0.231 0 86 205 test.phys compt + 4 -112 140 125 0.195 0 6.41 212 test.phys compt + 5 -114 161 101 0.111 0 32 244 test.phys compt + 6 -88.4 46.8 200 0.111 0 153 397 World Transportation + 7 2.13e+03 -1e+04 8.88e+03 0.111 0 1.35e+04 1.39e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -114 161 101 0.0837 0 0 0 test.phys initStep + 1 -114 161 101 0 0.0837 0.147 0.147 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 12, Parent ID = 5 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 162 -184 80.4 0.108 0 0 0 test.phys initStep - 1 162 -184 80.5 0 0.108 0.227 0.227 test.phys eIoni + 0 -112 140 125 0.0367 0 0 0 test.phys initStep + 1 -112 140 125 0 0.0367 0.0351 0.0351 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 11, Parent ID = 5 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 38.5 -25.7 78.5 0.0352 0 0 0 test.phys initStep - 1 38.6 -25.7 78.5 0 0.0352 0.0326 0.0326 test.phys eIoni + 0 -108 135 126 0.00292 0 0 0 test.phys initStep + 1 -108 135 126 0 0.00292 0.000438 0.000438 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -42 80.7 118 0.0141 0 0 0 test.phys initStep + 1 -42 80.7 118 0 0.0141 0.00647 0.00647 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.15 0.813 138 0.34 0 0 0 test.phys initStep + 1 -0.0325 0.599 138 0.0172 0.322 1.32 1.32 test.phys eIoni + 2 -0.0289 0.598 138 0 0.0172 0.00919 1.33 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 88 96.4 0 0 0 test.phys initStep - 1 -0.211 0.243 103 94.4 1.75 14.7 14.7 test.phys eIoni - 2 -0.21 0.324 108 93.6 0.568 5.1 19.8 test.phys eIoni - 3 0.258 0.13 136 90.2 3.38 28.5 48.2 test.phys eBrem - 4 0.457 0.179 144 89.3 0.843 7.89 56.1 test.phys eBrem - 5 0.474 0.186 145 88.8 0.0628 0.519 56.7 test.phys eIoni - 6 0.778 -0.0363 170 84.9 3.55 24.9 81.6 test.phys eBrem - 7 1.66 -0.607 191 81.9 2.59 22 104 test.phys eIoni - 8 1.95 -0.827 200 80.9 0.978 8.52 112 World Transportation - 9 -41.9 -207 1e+04 80.9 3.54e-22 9.8e+03 9.91e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.66 -0.607 191 0.457 0 0 0 test.phys initStep - 1 1.44 0.24 192 0.193 0.263 1.67 1.67 test.phys eIoni - 2 1.18 0.327 192 0 0.193 0.593 2.26 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.778 -0.0363 170 0.34 0 0 0 test.phys initStep - 1 1.75 -0.0754 200 0.34 0 30.5 30.5 World Transportation - 2 314 -12.6 1e+04 0.34 0 9.8e+03 9.84e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.474 0.186 145 0.402 0 0 0 test.phys initStep - 1 1.26 0.236 145 0.158 0.243 1.52 1.52 test.phys eIoni - 2 1.47 0.297 145 0 0.158 0.429 1.95 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.457 0.179 144 0.0215 0 0 0 test.phys initStep - 1 0.976 0.47 162 0 0.000403 17.4 17.4 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 16 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.976 0.47 162 0.0211 0 0 0 test.phys initStep - 1 0.977 0.465 162 0 0.0211 0.0132 0.0132 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.258 0.13 136 0.0174 0 0 0 test.phys initStep - 1 0.514 0.37 152 0.0174 0 15.4 15.4 test.phys Rayl - 2 9.99 -4.37 157 0 0.000403 11.8 27.2 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 9.99 -4.37 157 0.017 0 0 0 test.phys initStep - 1 9.99 -4.37 157 0 0.017 0.00903 0.00903 test.phys eIoni + 0 0 0 105 10.8 0 0 0 test.phys initStep + 1 0.225 -0.219 123 8.5 2.32 18.6 18.6 test.phys eIoni + 2 -7.21 2.17 135 6.42 2.08 14.9 33.5 test.phys eIoni + 3 -10.3 3.92 141 5.27 0.875 7.35 40.9 test.phys eIoni + 4 -10.6 8.15 149 3.91 1.36 9.71 50.6 test.phys eIoni + 5 -9.96 12.6 155 3.04 0.867 7.19 57.8 test.phys eBrem + 6 -9.18 14.6 160 2.25 0.791 6.09 63.9 test.phys eIoni + 7 -10.6 15.1 164 1.7 0.556 4.8 68.7 test.phys eIoni + 8 -12.8 16 166 1.21 0.489 3.88 72.5 test.phys eIoni + 9 -12.8 17.2 169 0.803 0.404 3.06 75.6 test.phys eIoni + 10 -13.3 18.4 170 0.513 0.289 2.36 78 test.phys eIoni + 11 -12.2 18.9 170 0.176 0.337 1.8 79.8 test.phys eIoni + 12 -12.1 19.1 170 0 0.176 0.512 80.3 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 14, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.21 0.324 108 0.252 0 0 0 test.phys initStep - 1 -0.241 0.737 108 0 0.252 0.901 0.901 test.phys eIoni + 0 -10.3 3.92 141 0.275 0 0 0 test.phys initStep + 1 -10.7 4.3 141 0.0222 0.253 1.03 1.03 test.phys eIoni + 2 -10.7 4.3 141 0 0.0222 0.0145 1.04 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.211 0.243 103 0.298 0 0 0 test.phys initStep - 1 -0.557 0.38 103 0.219 0.076 0.539 0.539 test.phys eBrem - 2 -0.92 0.362 103 0 0.219 0.721 1.26 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 13 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.557 0.38 103 0.00326 0 0 0 test.phys initStep - 1 -0.632 0.351 103 0 0.000403 0.0849 0.0849 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 22 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.632 0.351 103 0.00286 0 0 0 test.phys initStep - 1 -0.632 0.351 103 0 0.00286 0.000422 0.000422 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 1 0 0 0 World initStep - 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 1 0 200 700 World Transportation - 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 1 0 0 500 test.phys initStep - 1 0 0 60 0.98 0.0195 60 560 test.phys biasWrapper(hadElastic) - 2 1.44 -3.07 65.8 0.83 0 6.71 567 test.phys biasWrapper(hadElastic) - 3 62.2 -1.51 40.1 0.748 0 65.9 633 test.phys biasWrapper(hadElastic) - 4 64.3 53 0 0.748 0 67.7 700 World Transportation - 5 458 1e+04 -7.31e+03 0.748 0 1.24e+04 1.31e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 62.2 -1.51 40.1 0.0821 0 0 0 test.phys initStep - 1 62.2 -1.51 40.1 0 0.0821 0.000846 0.000846 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.44 -3.07 65.8 0.15 0 0 0 test.phys initStep - 1 1.44 -3.07 65.8 0 0.15 0.00118 0.00118 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 1 0 0 0 World initStep - 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 1 0 200 700 World Transportation - 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 1 0 0 500 test.phys initStep - 1 0 0 113 0.971 0.029 113 613 test.phys biasWrapper(hadElastic) - 2 2.83 20 140 0.926 0.0446 33.3 647 test.phys biasWrapper(hadElastic) - 3 -18.9 194 161 0.745 0 177 824 test.phys biasWrapper(hadElastic) - 4 8.5 182 163 0.657 0 30.1 854 test.phys biasWrapper(hadElastic) - 5 40 235 200 0.657 0 72 926 World Transportation - 6 5.84e+03 1e+04 7.09e+03 0.657 0 1.33e+04 1.42e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 8.5 182 163 0.0882 0 0 0 test.phys initStep - 1 8.5 182 163 0 0.0882 0.000878 0.000878 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -18.9 194 161 0.181 0 0 0 test.phys initStep - 1 -18.9 194 161 0 0.181 0.00132 0.00132 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 1 0 0 0 World initStep - 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 1 0 200 700 World Transportation - 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 1 0 0 500 test.phys initStep - 1 0 0 108 0.999 0.00107 108 608 test.phys biasWrapper(hadElastic) - 2 -10.9 -3.06 200 0.999 0 93 701 World Transportation - 3 -1.17e+03 -328 1e+04 0.999 0 9.87e+03 1.06e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 1 0 0 0 World initStep - 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 1 0 200 700 World Transportation - 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 1 0 0 500 test.phys initStep - 1 0 0 98.4 0.809 0 98.4 598 test.phys biasWrapper(hadElastic) - 2 5.88 4.32 94.5 0.757 0.0518 8.25 607 test.phys biasWrapper(hadElastic) - 3 76.8 44.9 140 0.664 0 93.4 700 test.phys biasWrapper(hadElastic) - 4 52 34.1 200 0.664 0 65.9 766 World Transportation - 5 -3.99e+03 -1.73e+03 1e+04 0.664 0 1.07e+04 1.15e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 76.8 44.9 140 0.0936 0 0 0 test.phys initStep - 1 76.8 44.9 140 0 0.0936 0.000906 0.000906 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 98.4 0.191 0 0 0 test.phys initStep - 1 -0.00049 -0.00036 98.4 0 0.191 0.00135 0.00135 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 1 0 0 0 World initStep - 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 1 0 200 700 World Transportation - 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 1 0 0 500 test.phys initStep - 1 0 0 70.5 0.92 0 70.5 571 test.phys biasWrapper(hadElastic) - 2 44.8 -62.2 106 0.895 0.0256 84.5 655 test.phys biasWrapper(hadElastic) - 3 80.1 -74 148 0.771 0 56.3 711 test.phys biasWrapper(hadElastic) - 4 23.3 -511 55.2 0.615 0 450 1.16e+03 test.phys biasWrapper(hadElastic) - 5 52.2 -496 58.1 0.495 0 32.5 1.19e+03 test.phys biasWrapper(hadElastic) - 6 27.9 -521 103 0.462 0.0326 56.7 1.25e+03 test.phys biasWrapper(hadElastic) - 7 110 -623 200 0.462 0 163 1.41e+03 World Transportation - 8 7.67e+03 -1e+04 9.08e+03 0.462 0 1.5e+04 1.64e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 52.2 -496 58.1 0.12 0 0 0 test.phys initStep - 1 52.2 -496 58.1 0 0.12 0.00104 0.00104 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 23.3 -511 55.2 0.156 0 0 0 test.phys initStep - 1 23.3 -511 55.2 0 0.156 0.00121 0.00121 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 80.1 -74 148 0.124 0 0 0 test.phys initStep - 1 80.1 -74 148 0 0.124 0.00106 0.00106 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 70.5 0.0799 0 0 0 test.phys initStep - 1 -0.000319 0.000443 70.5 0 0.0799 0.000834 0.000834 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 1 0 0 0 World initStep - 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 1 0 200 700 World Transportation - 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 1 0 0 500 test.phys initStep - 1 0 0 37.2 0.929 0 37.2 537 test.phys biasWrapper(hadElastic) - 2 18.5 -29.9 56.8 0.696 0 40.3 577 test.phys biasWrapper(hadElastic) - 3 -28.5 49.6 5.76 0.691 0.00503 106 683 test.phys biasWrapper(hadElastic) - 4 -30.1 55.9 0 0.691 0 8.68 692 World Transportation - 5 -2.57e+03 1e+04 -9.1e+03 0.691 0 1.37e+04 1.44e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 18.5 -29.9 56.8 0.233 0 0 0 test.phys initStep - 1 18.5 -29.9 56.8 0 0.233 0.00146 0.00146 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 37.2 0.0713 0 0 0 test.phys initStep - 1 -0.000268 0.000434 37.2 0 0.0713 0.000787 0.000787 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 1 0 0 0 World initStep - 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 1 0 200 700 World Transportation - 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 1 0 0 500 test.phys initStep - 1 0 0 24.1 0.798 0 24.1 524 test.phys biasWrapper(hadElastic) - 2 8.68 34.1 3.55e-15 0.798 0 42.7 567 World Transportation - 3 2.55e+03 1e+04 -7.05e+03 0.798 0 1.25e+04 1.3e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 24.1 0.202 0 0 0 test.phys initStep - 1 -0.000139 -0.000546 24.1 0 0.202 0.00138 0.00138 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 1 0 0 0 World initStep - 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 1 0 200 700 World Transportation - 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 1 0 0 500 test.phys initStep - 1 0 0 86.2 0.909 0 86.2 586 test.phys biasWrapper(hadElastic) - 2 51.6 -46.2 111 0.826 0 73.7 660 test.phys biasWrapper(hadElastic) - 3 80.1 -23 143 0.794 0.0321 48.2 708 test.phys biasWrapper(hadElastic) - 4 118 -26.8 156 0.738 0.056 40.9 749 test.phys biasWrapper(hadElastic) - 5 126 -26.2 200 0.738 0 44.4 793 World Transportation - 6 1.88e+03 97.8 1e+04 0.738 0 9.96e+03 1.07e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 51.6 -46.2 111 0.0834 0 0 0 test.phys initStep - 1 51.6 -46.2 111 0 0.0834 0.000853 0.000853 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 86.2 0.0906 0 0 0 test.phys initStep - 1 -0.000435 0.000389 86.2 0 0.0906 0.000891 0.000891 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 1 0 0 0 World initStep - 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 1 0 200 700 World Transportation - 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 1 0 0 500 test.phys initStep - 1 0 0 27.3 0.782 0 27.3 527 test.phys biasWrapper(hadElastic) - 2 -27.2 -4.57 -1.07e-14 0.782 0 38.8 566 World Transportation - 3 -1e+04 -1.68e+03 -9.98e+03 0.782 0 1.42e+04 1.48e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 27.3 0.218 0 0 0 test.phys initStep - 1 0.000475 7.97e-05 27.3 0 0.218 0.00142 0.00142 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 1 0 0 0 World initStep - 1 0 0 0 1 0 500 500 test.phys Transportation - 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 1 0 200 700 World Transportation - 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 1 0 0 500 test.phys initStep - 1 0 0 187 0.889 0 187 687 test.phys biasWrapper(hadElastic) - 2 38.7 -27.3 196 0.808 0 48.3 735 test.phys biasWrapper(hadElastic) - 3 93.8 -16.9 137 0.771 0.0369 81.8 817 test.phys biasWrapper(hadElastic) - 4 131 52.7 104 0.628 0 85.4 902 test.phys biasWrapper(hadElastic) - 5 100 45.5 90.9 0.622 0.00641 33.7 936 test.phys biasWrapper(hadElastic) - 6 -2.13 42.2 0 0.622 0 137 1.07e+03 World Transportation - 7 -1e+04 -277 -8.87e+03 0.622 0 1.34e+04 1.44e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 131 52.7 104 0.143 0 0 0 test.phys initStep - 1 131 52.7 104 0 0.143 0.00115 0.00115 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 38.7 -27.3 196 0.0819 0 0 0 test.phys initStep - 1 38.7 -27.3 196 0 0.0819 0.000845 0.000845 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 187 0.111 0 0 0 test.phys initStep - 1 -0.000519 0.000366 187 0 0.111 0.000993 0.000993 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName @@ -3585,239 +2358,54 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 106 0 0 106 606 test.phys biasWrapper(neutronInelastic) + 1 0 0 184 0 0 184 684 test.phys conv ********************************************************************************************************* -* G4Track Information: Particle = C12, Track ID = 9, Parent ID = 2 +* G4Track Information: Particle = e+, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 106 7.33 0 0 0 test.phys initStep - 1 -0.00539 0.00177 106 0 7.33 0.00695 0.00695 test.phys ionIoni + 0 0 0 184 85 0 0 0 test.phys initStep + 1 -0.113 0.176 191 83.9 0.865 6.62 6.62 test.phys eBrem + 2 -0.186 0.315 200 82.8 1.11 9.01 15.6 World Transportation + 3 133 137 1e+04 82.8 3.55e-22 9.8e+03 9.82e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 2 +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 106 0.257 0 0 0 test.phys initStep - 1 -130 153 20.2 0.18 0 218 218 test.phys compt - 2 -491 -73.7 7.08 0.165 0 426 644 test.phys compt - 3 -515 -71.8 16.6 0.108 0 26.5 671 test.phys compt - 4 -446 -9.6 22 0.106 0 93.6 764 test.phys compt - 5 -405 71.3 26.8 0.0793 0 90.5 855 test.phys compt - 6 -448 56.5 -7.11e-15 0.0793 0 52.6 907 World Transportation - 7 -1e+04 -3.25e+03 -6e+03 0.0793 0 1.18e+04 1.27e+04 OutOfWorld Transportation + 0 -0.113 0.176 191 0.192 0 0 0 test.phys initStep + 1 -0.14 0.322 200 0.192 0 9 9 World Transportation + 2 -30.5 159 1e+04 0.192 0 9.8e+03 9.81e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 8 +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -405 71.3 26.8 0.0271 0 0 0 test.phys initStep - 1 -405 71.3 26.8 0 0.0271 0.0206 0.0206 test.phys eIoni + 0 0 0 184 14 0 0 0 test.phys initStep + 1 0.394 -0.175 190 12.7 0.665 5.17 5.17 test.phys eIoni + 2 0.752 -0.651 200 11.4 1.33 10.6 15.8 World Transportation + 3 1.7e+03 292 1e+04 11.4 3.02e-22 9.95e+03 9.97e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 8 +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -446 -9.6 22 0.0016 0 0 0 test.phys initStep - 1 -446 -9.6 22 0 0.0016 0.000168 0.000168 test.phys eIoni + 0 0.394 -0.175 190 0.611 0 0 0 test.phys initStep + 1 1.46 0.326 190 0.366 0.245 2 2 test.phys eIoni + 2 0.693 0.0694 190 0.0889 0.277 1.41 3.41 test.phys eIoni + 3 0.764 0.0793 190 0 0.0889 0.164 3.58 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -515 -71.8 16.6 0.0566 0 0 0 test.phys initStep - 1 -515 -71.8 16.6 0 0.0566 0.075 0.075 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -491 -73.7 7.08 0.0151 0 0 0 test.phys initStep - 1 -491 -73.7 7.08 0 0.0151 0.00735 0.00735 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -130 153 20.2 0.0773 0 0 0 test.phys initStep - 1 -130 153 20.2 0 0.0773 0.129 0.129 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 106 0.428 0 0 0 test.phys initStep - 1 -9.96 3.92 113 0.198 0 12.9 12.9 test.phys compt - 2 -25.4 5.45 37 0.184 0 77.9 90.8 test.phys compt - 3 -15.8 -0.513 13.7 0.154 0 25.9 117 test.phys compt - 4 -19.7 10.8 7.11e-15 0.154 0 18.2 135 World Transportation - 5 -2.88e+03 8.3e+03 -1e+04 0.154 0 1.33e+04 1.34e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -15.8 -0.513 13.7 0.0303 0 0 0 test.phys initStep - 1 -15.8 -0.522 13.7 0 0.0303 0.0251 0.0251 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -25.4 5.45 37 0.0141 0 0 0 test.phys initStep - 1 -25.4 5.45 37 0 0.0141 0.00651 0.00651 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.96 3.92 113 0.23 0 0 0 test.phys initStep - 1 -10.2 4.01 114 0 0.23 0.783 0.783 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 106 1.55 0 0 0 test.phys initStep - 1 -17.2 68.9 106 1.33 0 71 71 test.phys compt - 2 -34.8 135 82.9 0.936 0 72.4 143 test.phys compt - 3 7.29 383 99.1 0.587 0 252 396 test.phys compt - 4 -143 581 81.9 0.395 0 249 645 test.phys compt - 5 -117 664 67.8 0.243 0 88.4 733 test.phys compt - 6 -37 657 75 0.242 0 80.6 814 test.phys compt - 7 123 658 75.6 0 0.000403 159 973 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 123 658 75.6 0.242 0 0 0 test.phys initStep - 1 123 658 75.4 0 0.242 0.845 0.845 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -37 657 75 0.00103 0 0 0 test.phys initStep - 1 -37 657 75 0 0.00103 8.66e-05 8.66e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -117 664 67.8 0.152 0 0 0 test.phys initStep - 1 -117 664 67.7 0 0.152 0.4 0.4 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -143 581 81.9 0.192 0 0 0 test.phys initStep - 1 -144 581 82 0 0.192 0.587 0.587 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.29 383 99.1 0.349 0 0 0 test.phys initStep - 1 7.85 384 99.3 0.00341 0.346 1.35 1.35 test.phys eIoni - 2 7.85 384 99.3 0 0.00341 0.000565 1.35 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -34.8 135 82.9 0.394 0 0 0 test.phys initStep - 1 -35.4 135 82.3 0.147 0.247 1.5 1.5 test.phys eIoni - 2 -35.4 135 82.2 0 0.147 0.382 1.88 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.2 68.9 106 0.223 0 0 0 test.phys initStep - 1 -17.3 69.1 107 0 0.223 0.743 0.743 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 106 4.36 0 0 0 test.phys initStep - 1 -11.6 4.14 108 3.34 0 12.4 12.4 test.phys biasWrapper(hadElastic) - 2 1.25 1.34 96.5 2.7 0 17.4 29.8 test.phys biasWrapper(hadElastic) - 3 27.2 8.05 200 2.7 0 107 137 World Transportation - 4 2.49e+03 644 1e+04 2.7 0 1.01e+04 1.03e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 26, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.25 1.34 96.5 0.639 0 0 0 test.phys initStep - 1 1.25 1.34 96.5 0 0.639 0.00202 0.00202 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 25, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.6 4.14 108 1.02 0 0 0 test.phys initStep - 1 -11.6 4.14 108 0 1.02 0.00229 0.00229 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 106 19.5 0 0 0 test.phys initStep - 1 0.748 -1 106 16.8 2.74 1.3 1.3 test.phys hIoni - 2 1.34 -1.79 107 14.5 2.31 1.03 2.33 test.phys hIoni - 3 1.82 -2.42 107 12.3 2.18 0.826 3.16 test.phys hIoni - 4 2.2 -2.93 107 10.3 2 0.656 3.81 test.phys hIoni - 5 2.52 -3.32 107 8.49 1.81 0.52 4.33 test.phys hIoni - 6 2.77 -3.63 107 6.74 1.76 0.413 4.74 test.phys hIoni - 7 2.97 -3.87 107 5.12 1.62 0.323 5.07 test.phys hIoni - 8 3.13 -4.05 108 3.56 1.56 0.252 5.32 test.phys hIoni - 9 3.26 -4.19 108 1.85 1.71 0.189 5.51 test.phys hIoni - 10 3.32 -4.26 108 0.00481 1.84 0.0941 5.6 test.phys hIoni - 11 3.32 -4.26 108 0 0.00481 0.000429 5.6 test.phys hIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 106 54 0 0 0 test.phys initStep - 1 187 8.63 200 54 0 210 210 World Transportation - 2 1e+04 461 5.12e+03 54 0 1.1e+04 1.12e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName @@ -3828,221 +2416,176 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 85.7 0 0 85.7 586 test.phys biasWrapper(neutronInelastic) + 1 0 0 194 0.749 0 194 694 test.phys compt + 2 2.11 -2.23 195 0.429 0 3.25 697 test.phys compt + 3 0.179 -6.72 200 0.429 0 7.03 704 World Transportation + 4 -3.74e+03 -8.69e+03 1e+04 0.429 0 1.36e+04 1.43e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = C12, Track ID = 9, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 85.7 1.13 0 0 0 test.phys initStep - 1 0.00248 4.07e-05 85.7 0 1.13 0.0025 0.0025 test.phys ionIoni + 0 2.11 -2.23 195 0.319 0 0 0 test.phys initStep + 1 2.73 -2.48 195 0.0358 0.284 1.24 1.24 test.phys eIoni + 2 2.71 -2.47 195 0 0.0358 0.0336 1.27 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 85.7 0.391 0 0 0 test.phys initStep - 1 134 34.6 106 0.234 0 140 140 test.phys compt - 2 136 66.4 77.7 0.234 0 42.6 182 test.phys compt - 3 137 75.1 68 0.22 0 13.2 196 test.phys compt - 4 186 114 0 0.22 0 92.6 288 World Transportation - 5 7.43e+03 5.88e+03 -1e+04 0.22 0 1.36e+04 1.39e+04 OutOfWorld Transportation + 0 0 0 194 99.3 0 0 0 test.phys initStep + 1 -0.0298 0.0315 200 98.5 0.753 6.11 6.11 World Transportation + 2 148 -37.5 1e+04 98.5 3.6e-22 9.8e+03 9.81e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 8 +* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 137 75.1 68 0.0136 0 0 0 test.phys initStep - 1 137 75.1 68 0 0.0136 0.00607 0.00607 test.phys eIoni + 0 0 0 -500 100 0 0 0 World initStep + 1 0 0 0 100 0 500 500 test.phys Transportation + 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 100 0 200 700 World Transportation + 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 8 +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 136 66.4 77.7 0.000697 0 0 0 test.phys initStep - 1 136 66.4 77.7 0 0.000697 5.09e-05 5.09e-05 test.phys eIoni + 0 0 0 0 100 0 0 500 test.phys initStep + 1 0 0 144 0 0 144 644 test.phys conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 8 +* G4Track Information: Particle = e+, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 134 34.6 106 0.157 0 0 0 test.phys initStep - 1 134 34.6 106 0 0.157 0.423 0.423 test.phys eIoni + 0 0 0 144 78.1 0 0 0 test.phys initStep + 1 0.189 1.43 191 71.7 6.1 47 47 test.phys eIoni + 2 0.671 2.23 200 70.7 1.01 8.98 56 World Transportation + 3 644 863 1e+04 70.7 3.52e-22 9.86e+03 9.91e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 85.7 0.473 0 0 0 test.phys initStep - 1 36.9 21.7 104 0.459 0 46.6 46.6 test.phys compt - 2 166 155 200 0.459 0 209 255 World Transportation - 3 9.74e+03 1e+04 7.3e+03 0.459 0 1.55e+04 1.57e+04 OutOfWorld Transportation + 0 0.189 1.43 191 0.251 0 0 0 test.phys initStep + 1 0.54 1.67 191 0 0.251 0.893 0.893 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 144 20.9 0 0 0 test.phys initStep + 1 0.484 -0.0598 153 18.9 1.11 8.77 8.77 test.phys eIoni + 2 0.812 -0.866 160 18.2 0.771 6.75 15.5 test.phys eBrem + 3 0.815 -0.869 160 17.5 0.0019 0.0349 15.6 test.phys eIoni + 4 0.888 -0.964 161 14.2 0.123 1.15 16.7 test.phys eIoni + 5 7.26 -3.28 183 11.2 2.94 24 40.7 test.phys eIoni + 6 9.54 -4.25 188 10.3 0.612 5.26 45.9 test.phys eIoni + 7 10.5 -4.8 190 9.79 0.239 1.98 47.9 test.phys eIoni + 8 17.3 -8.35 197 8.36 1.14 10.7 58.7 test.phys eIoni + 9 20.6 -10.8 200 7.75 0.607 5.06 63.7 World Transportation + 10 1e+04 -5.64e+03 6.89e+03 7.75 3.88e-22 1.33e+04 1.33e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 17.3 -8.35 197 0.295 0 0 0 test.phys initStep + 1 17.6 -8.04 198 0.0634 0.231 1.13 1.13 test.phys eIoni + 2 17.6 -8.09 198 0 0.0634 0.0915 1.22 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 10.5 -4.8 190 0.269 0 0 0 test.phys initStep + 1 10.3 -4.72 190 0 0.269 0.996 0.996 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 9.54 -4.25 188 0.322 0 0 0 test.phys initStep + 1 9.52 -3.81 189 0 0.322 1.25 1.25 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.888 -0.964 161 3.2 0 0 0 test.phys initStep + 1 -0.836 -3.08 166 2.52 0.676 6.35 6.35 test.phys eIoni + 2 -1.35 -5.13 170 1.79 0.738 5.25 11.6 test.phys eIoni + 3 -2.25 -8.43 169 1.04 0.742 4.03 15.6 test.phys eIoni + 4 -2.79 -10.4 168 0.701 0.343 2.79 18.4 test.phys eIoni + 5 -3.88 -11.6 168 0.44 0.261 2.18 20.6 test.phys eIoni + 6 -3.35 -12.1 168 0.189 0.251 1.62 22.2 test.phys eIoni + 7 -3.29 -11.9 168 0 0.189 0.571 22.8 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.815 -0.869 160 0.657 0 0 0 test.phys initStep + 1 2.05 -0.661 160 0.288 0.369 2.09 2.09 test.phys eIoni + 2 2.41 -0.996 160 0.0573 0.231 1.1 3.19 test.phys eIoni + 3 2.4 -0.963 160 0 0.0573 0.0766 3.27 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.812 -0.866 160 0.0136 0 0 0 test.phys initStep + 1 1.4 -1.46 166 0.0136 0 7.01 7.01 test.phys Rayl + 2 0.145 2.68 163 0.013 0 5.55 12.6 test.phys compt + 3 -2 1.81 171 0.013 0 8.38 20.9 test.phys Rayl + 4 -1.99 1.77 171 0 0.000403 0.135 21.1 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.99 1.77 171 0.0126 0 0 0 test.phys initStep + 1 -1.99 1.77 171 0 0.0126 0.00533 0.00533 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 13, Parent ID = 7 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 36.9 21.7 104 0.0134 0 0 0 test.phys initStep - 1 36.9 21.7 104 0 0.0134 0.00597 0.00597 test.phys eIoni + 0 0.145 2.68 163 0.000559 0 0 0 test.phys initStep + 1 0.145 2.68 163 0 0.000559 3.83e-05 3.83e-05 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 6, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 85.7 3.81 0 0 0 test.phys initStep - 1 -0.135 -0.143 85.7 2.17 1.64 0.199 0.199 test.phys hIoni - 2 -0.221 -0.223 85.7 0.146 2.02 0.119 0.319 test.phys hIoni - 3 -0.223 -0.225 85.7 0.00683 0.14 0.00306 0.322 test.phys hIoni - 4 -0.223 -0.225 85.7 0 0.00683 0.000512 0.322 test.phys hIoni + 0 0.484 -0.0598 153 0.867 0 0 0 test.phys initStep + 1 0.549 1.34 154 0.518 0.349 2.48 2.48 test.phys eIoni + 2 0.589 2.45 155 0.266 0.252 1.81 4.29 test.phys eIoni + 3 0.159 2.58 155 0 0.266 0.979 5.26 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 85.7 5.27 0 0 0 test.phys initStep - 1 185 29.5 200 5.27 0 219 219 World Transportation - 2 1e+04 1.6e+03 6.27e+03 5.27 0 1.16e+04 1.19e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 85.7 28.6 0 0 0 test.phys initStep - 1 7.73 13.9 112 0 0 30.8 30.8 test.phys biasWrapper(neutronInelastic) - -********************************************************************************************************* -* G4Track Information: Particle = C13, Track ID = 18, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.73 13.9 112 5.4 0 0 0 test.phys initStep - 1 7.73 13.9 112 0 5.4 0.00518 0.00518 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.73 13.9 112 1.3 0 0 0 test.phys initStep - 1 19 -6.54 144 0.48 0 39.9 39.9 test.phys compt - 2 -32 -41.2 167 0.451 0 65.7 106 test.phys compt - 3 -124 -116 165 0.168 0 118 224 test.phys compt - 4 -70.1 -7.92 150 0.118 0 122 345 test.phys compt - 5 -73.5 -11.6 175 0.117 0 26 371 test.phys compt - 6 -81.3 -16.4 200 0.117 0 26.4 398 World Transportation - 7 -3.16e+03 -1.92e+03 1e+04 0.117 0 1.04e+04 1.08e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -73.5 -11.6 175 0.0004 0 0 0 test.phys initStep - 1 -73.5 -11.6 175 0 0.0004 2.57e-05 2.57e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -70.1 -7.92 150 0.0507 0 0 0 test.phys initStep - 1 -70.1 -7.9 150 0 0.0507 0.062 0.062 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -124 -116 165 0.282 0 0 0 test.phys initStep - 1 -124 -116 165 0.0457 0.237 1.07 1.07 test.phys eIoni - 2 -124 -116 165 0 0.0457 0.0516 1.12 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -32 -41.2 167 0.0295 0 0 0 test.phys initStep - 1 -32 -41.2 167 0 0.0295 0.0239 0.0239 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 19 -6.54 144 0.823 0 0 0 test.phys initStep - 1 20.2 -7.18 146 0.465 0.358 2.4 2.4 test.phys eIoni - 2 20.1 -7.03 147 0.173 0.292 1.69 4.08 test.phys eIoni - 3 20.3 -7.23 147 0 0.173 0.494 4.58 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 16, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.73 13.9 112 1.89 0 0 0 test.phys initStep - 1 -17.4 -31 149 1.81 0 63 63 test.phys biasWrapper(hadElastic) - 2 -131 -105 143 1.79 0.0242 136 199 test.phys biasWrapper(hadElastic) - 3 -135 -110 146 1.74 0.05 6.81 206 test.phys biasWrapper(hadElastic) - 4 -141 -208 200 1.74 0 112 318 World Transportation - 5 -684 -1e+04 5.64e+03 1.74 0 1.12e+04 1.15e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 24, Parent ID = 16 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.4 -31 149 0.0797 0 0 0 test.phys initStep - 1 -17.3 -31 149 0 0.0797 0.000833 0.000833 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.73 13.9 112 2.9 0 0 0 test.phys initStep - 1 73.2 -75.2 0 2.9 0 157 157 World Transportation - 2 5.91e+03 -8.03e+03 -1e+04 2.9 0 1.4e+04 1.42e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 14, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.73 13.9 112 9.49 0 0 0 test.phys initStep - 1 7.55 13.8 112 7.76 1.73 0.47 0.47 test.phys hIoni - 2 7.41 13.8 111 6.11 1.65 0.373 0.843 test.phys hIoni - 3 7.31 13.7 111 4.57 1.54 0.294 1.14 test.phys hIoni - 4 7.23 13.7 111 2.88 1.69 0.23 1.37 test.phys hIoni - 5 7.17 13.6 111 1.08 1.8 0.16 1.53 test.phys hIoni - 6 7.16 13.6 111 0 1.08 0.0395 1.57 test.phys hIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 85.7 47.8 0 0 0 test.phys initStep - 1 -75.5 -22.1 200 47.8 0 139 139 World Transportation - 2 -6.55e+03 -1.92e+03 1e+04 47.8 0 1.19e+04 1.2e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName @@ -4053,561 +2596,183 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 68.3 0 0 68.3 568 test.phys biasWrapper(neutronInelastic) + 1 0 0 85.9 0 0 85.9 586 test.phys conv ********************************************************************************************************* -* G4Track Information: Particle = B11, Track ID = 9, Parent ID = 2 +* G4Track Information: Particle = e+, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 68.3 13 0 0 0 test.phys initStep - 1 -0.0113 -0.00736 68.3 0 13 0.0204 0.0204 test.phys ionIoni + 0 0 0 85.9 13.8 0 0 0 test.phys initStep + 1 0.211 -0.742 109 11 2.72 23.4 23.4 test.phys eIoni + 2 0.335 4.77 122 8.34 1.78 14.8 38.2 test.phys eIoni + 3 2.59 9.74 131 7.04 1.28 10.3 48.6 test.phys eBrem + 4 2.71 10.2 132 5.95 0.0983 0.976 49.5 test.phys eIoni + 5 4.25 16.1 140 4.66 1.29 10.9 60.4 test.phys eIoni + 6 10.8 16.1 135 3.33 1.33 8.78 69.2 test.phys eIoni + 7 14.2 14.8 135 2.7 0.415 3.75 72.9 test.phys eIoni + 8 16.9 10.4 135 2.04 0.656 5.57 78.5 test.phys eIoni + 9 17.7 6.75 137 1.43 0.608 4.48 83 test.phys eIoni + 10 18.4 3.82 137 0.774 0.658 3.46 86.4 test.phys eIoni + 11 18.5 2.1 137 0.498 0.276 2.32 88.8 test.phys eIoni + 12 18.9 1.72 138 0.269 0.229 1.76 90.5 test.phys eIoni + 13 18.9 1.64 138 0.243 0.0221 0.165 90.7 test.phys eBrem + 14 18.9 1.58 138 0 0.243 0.825 91.5 test.phys eIoni + 15 18.9 1.58 138 0 0 0 91.5 test.phys annihil ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 2 +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 68.3 0.142 0 0 0 test.phys initStep - 1 -10.4 -10.4 47.6 0.128 0 25.3 25.3 test.phys compt - 2 -47.2 -26.9 43.9 0.122 0 40.5 65.9 test.phys compt - 3 -53.1 -25.4 42.6 0.122 0 6.26 72.1 test.phys Rayl - 4 -142 0.86 23.9 0.0832 0 94.2 166 test.phys compt - 5 -77 -6.4 17.3 0.0812 0 65.4 232 test.phys compt - 6 -55.8 -21.8 7.67 0.0651 0 27.9 260 test.phys compt - 7 -64.5 -23.8 29.8 0.0521 0 23.9 284 test.phys compt - 8 -61.6 -23.4 3.55e-15 0.0521 0 30 314 World Transportation - 9 913 112 -1e+04 0.0521 0 1e+04 1.04e+04 OutOfWorld Transportation + 0 18.9 1.58 138 0.511 0 0 0 test.phys initStep + 1 43 56.8 200 0.511 0 86.5 86.5 World Transportation + 2 3.85e+03 8.76e+03 1e+04 0.511 0 1.36e+04 1.37e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 8 +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -64.5 -23.8 29.8 0.013 0 0 0 test.phys initStep - 1 -64.5 -23.8 29.8 0 0.013 0.00564 0.00564 test.phys eIoni + 0 18.9 1.58 138 0.511 0 0 0 test.phys initStep + 1 -8.49 -61.1 67.3 0.196 0 98.3 98.3 test.phys compt + 2 -0.589 -84.2 200 0.196 0 135 233 World Transportation + 3 583 -1.79e+03 1e+04 0.196 0 9.96e+03 1.02e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 8 +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 10 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -55.8 -21.8 7.67 0.016 0 0 0 test.phys initStep - 1 -55.8 -21.8 7.66 0 0.016 0.00816 0.00816 test.phys eIoni + 0 -8.49 -61.1 67.3 0.315 0 0 0 test.phys initStep + 1 -8.65 -61.4 66.7 0.0364 0.279 1.22 1.22 test.phys eIoni + 2 -8.64 -61.4 66.7 0 0.0364 0.0345 1.26 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 8 +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -77 -6.4 17.3 0.00203 0 0 0 test.phys initStep - 1 -77 -6.4 17.3 0 0.00203 0.000243 0.000243 test.phys eIoni + 0 18.9 1.64 138 0.00395 0 0 0 test.phys initStep + 1 18.9 1.62 138 0 0.000403 0.21 0.21 test.phys phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 8 +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 9 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -142 0.86 23.9 0.0384 0 0 0 test.phys initStep - 1 -142 0.864 23.9 0 0.0384 0.038 0.038 test.phys eIoni + 0 18.9 1.62 138 0.00355 0 0 0 test.phys initStep + 1 18.9 1.62 138 0 0.00355 0.000604 0.000604 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 8 +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -47.2 -26.9 43.9 0.00667 0 0 0 test.phys initStep - 1 -47.2 -26.9 43.9 0 0.00667 0.00176 0.00176 test.phys eIoni + 0 14.2 14.8 135 0.224 0 0 0 test.phys initStep + 1 14.5 14.8 135 0 0.224 0.747 0.747 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 8 +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -10.4 -10.4 47.6 0.0138 0 0 0 test.phys initStep - 1 -10.4 -10.4 47.6 0 0.0138 0.00622 0.00622 test.phys eIoni + 0 2.71 10.2 132 0.991 0 0 0 test.phys initStep + 1 2.68 9.67 134 0.691 0.3 2.69 2.69 test.phys eIoni + 2 1.43 10.4 134 0.364 0.327 2.16 4.85 test.phys eIoni + 3 1.23 11 135 0.0844 0.28 1.4 6.26 test.phys eIoni + 4 1.2 11.1 135 0 0.0844 0.15 6.41 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 7, Parent ID = 2 +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 68.3 1.1 0 0 0 test.phys initStep - 1 -1.11 -15 62.7 1.08 0.0206 16.1 16.1 test.phys biasWrapper(hadElastic) - 2 44.8 -107 0 1.08 0 121 137 World Transportation - 3 4.98e+03 -1e+04 -6.74e+03 1.08 0 1.29e+04 1.31e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 68.3 5.47 0 0 0 test.phys initStep - 1 51.8 -18.7 71.7 4.42 0 55.1 55.1 test.phys biasWrapper(hadElastic) - 2 30.2 58.9 0 4.42 0 108 163 World Transportation - 3 -2.74e+03 1e+04 -9.2e+03 4.42 0 1.38e+04 1.4e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 16, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 51.8 -18.7 71.7 1.05 0 0 0 test.phys initStep - 1 51.8 -18.7 71.7 0 1.05 0.00231 0.00231 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 68.3 10.1 0 0 0 test.phys initStep - 1 40.8 45.4 162 0.575 0 112 112 test.phys compt - 2 41.4 142 135 0.217 0 101 213 test.phys compt - 3 51.6 135 165 0.204 0 32.3 245 test.phys compt - 4 73.7 103 194 0.181 0 48.5 294 test.phys compt - 5 86.6 68.6 189 0.106 0 37.2 331 test.phys compt - 6 86 70.2 189 0.103 0 1.76 333 test.phys compt - 7 44 185 103 0.0894 0 150 482 test.phys compt - 8 77.1 265 148 0.0698 0 97.4 580 test.phys compt - 9 -33.1 257 45.2 0.0695 0 151 731 test.phys compt - 10 -74.8 270 0 0.0695 0 63 794 World Transportation - 11 -9.3e+03 3.25e+03 -1e+04 0.0695 0 1.39e+04 1.47e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 257 45.2 0.000359 0 0 0 test.phys initStep - 1 -33.1 257 45.2 0 0.000359 2.28e-05 2.28e-05 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 77.1 265 148 0.0196 0 0 0 test.phys initStep - 1 77.1 265 148 0 0.0196 0.0116 0.0116 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 44 185 103 0.0132 0 0 0 test.phys initStep - 1 44 185 103 0 0.0132 0.00581 0.00581 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 86 70.2 189 0.00351 0 0 0 test.phys initStep - 1 86 70.2 189 0 0.00351 0.000594 0.000594 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 86.6 68.6 189 0.0746 0 0 0 test.phys initStep - 1 86.7 68.5 189 0 0.0746 0.121 0.121 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 73.7 103 194 0.0228 0 0 0 test.phys initStep - 1 73.7 103 194 0 0.0228 0.0152 0.0152 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 51.6 135 165 0.013 0 0 0 test.phys initStep - 1 51.6 135 165 0 0.013 0.00561 0.00561 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 41.4 142 135 0.359 0 0 0 test.phys initStep - 1 41.3 143 135 0.0145 0.344 1.38 1.38 test.phys eIoni - 2 41.3 143 135 0 0.0145 0.00687 1.39 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 40.8 45.4 162 9.55 0 0 0 test.phys initStep - 1 44.3 52.5 177 7.47 2.08 16.6 16.6 test.phys eIoni - 2 49.8 57.7 187 5.77 1.7 13.3 29.8 test.phys eIoni - 3 56.6 62.5 193 4.56 1.21 10.5 40.4 test.phys eIoni - 4 60.3 65 192 4.01 0.542 4.62 45 test.phys eBrem - 5 66.2 68.1 189 3.16 0.855 7.68 52.7 test.phys eIoni - 6 69.3 68.7 184 2.18 0.983 6.28 58.9 test.phys eIoni - 7 72 69.4 181 1.66 0.52 4.67 63.6 test.phys eIoni - 8 70 68.6 178 1.14 0.515 3.81 67.4 test.phys eIoni - 9 69.9 68.4 178 0.777 0.0295 0.289 67.7 test.phys eIoni - 10 69.3 66.9 177 0.448 0.329 2.32 70 test.phys eIoni - 11 70.1 66.6 177 0.222 0.226 1.64 71.7 test.phys eIoni - 12 70.3 66.7 178 0 0.222 0.739 72.4 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 69.9 68.4 178 0.336 0 0 0 test.phys initStep - 1 69.8 68.5 177 0.118 0.217 1.3 1.3 test.phys eIoni - 2 69.7 68.6 177 0 0.118 0.264 1.57 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 26, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 60.3 65 192 0.00703 0 0 0 test.phys initStep - 1 60.5 65.2 192 0 0.000403 0.298 0.298 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 60.5 65.2 192 0.00662 0 0 0 test.phys initStep - 1 60.5 65.2 192 0 0.00662 0.00174 0.00174 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 68.3 19.1 0 0 0 test.phys initStep - 1 1.01 0.622 67.9 16.5 2.57 1.26 1.26 test.phys hIoni - 2 1.84 1.1 67.6 14.1 2.43 1 2.26 test.phys hIoni - 3 2.5 1.48 67.4 12.1 2.01 0.794 3.05 test.phys hIoni - 4 3.03 1.78 67.2 10 2.08 0.641 3.7 test.phys hIoni - 5 3.44 2.02 67 8.38 1.64 0.502 4.2 test.phys hIoni - 6 3.78 2.21 66.9 6.7 1.68 0.407 4.6 test.phys hIoni - 7 4.04 2.36 66.8 5.02 1.68 0.321 4.93 test.phys hIoni - 8 4.25 2.49 66.7 3.37 1.65 0.248 5.17 test.phys hIoni - 9 4.39 2.58 66.7 1.65 1.72 0.181 5.35 test.phys hIoni - 10 4.46 2.63 66.7 0.00402 1.64 0.0779 5.43 test.phys hIoni - 11 4.46 2.63 66.7 0 0.00402 0.000393 5.43 test.phys hIoni - -********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 68.3 22.6 0 0 0 test.phys initStep - 1 0.295 1.31 69.3 19.6 3.02 1.64 1.64 test.phys hIoni - 2 0.53 2.34 70 17 2.54 1.31 2.95 test.phys hIoni - 3 0.752 3.16 70.6 14.6 2.4 1.05 4 test.phys hIoni - 4 0.941 3.8 71.2 12.5 2.1 0.839 4.84 test.phys hIoni - 5 1.09 4.3 71.6 10.6 1.94 0.673 5.51 test.phys hIoni - 6 1.23 4.7 71.9 8.67 1.92 0.539 6.05 test.phys hIoni - 7 1.34 5.03 72.1 7.08 1.59 0.423 6.47 test.phys hIoni - 8 1.44 5.29 72.3 5.43 1.65 0.339 6.81 test.phys hIoni - 9 1.51 5.49 72.5 3.82 1.61 0.265 7.08 test.phys hIoni - 10 1.57 5.64 72.6 2.18 1.64 0.2 7.28 test.phys hIoni - 11 1.61 5.73 72.7 0.162 2.02 0.12 7.4 test.phys hIoni - 12 1.61 5.74 72.7 0 0.162 0.00334 7.4 test.phys hIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 100 0 0 0 World initStep - 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 100 0 200 700 World Transportation - 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 117 99.6 0 117 617 test.phys biasWrapper(hadElastic) - 2 18.9 -1.7 200 99.6 0 85 702 World Transportation - 3 2.25e+03 -203 1e+04 99.6 0 1.01e+04 1.08e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 117 0.382 0 0 0 test.phys initStep - 1 -0.00165 0.000148 117 0 0.382 0.00171 0.00171 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 100 0 0 0 World initStep - 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 100 0 200 700 World Transportation - 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 186 0 0 186 686 test.phys biasWrapper(neutronInelastic) - -********************************************************************************************************* -* G4Track Information: Particle = N13, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 186 0.244 0 0 0 test.phys initStep - 1 -0.00125 -0.000487 186 0 0.244 0.00141 0.00141 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 186 0.523 0 0 0 test.phys initStep - 1 -32.9 29 200 0.523 0 45.9 45.9 World Transportation - 2 -1e+04 8.8e+03 4.34e+03 0.523 0 1.39e+04 1.4e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 186 1.27 0 0 0 test.phys initStep - 1 448 224 2.84e-14 1.27 0 535 535 World Transportation - 2 1e+04 4.99e+03 -3.97e+03 1.27 0 1.14e+04 1.19e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 186 16.4 0 0 0 test.phys initStep - 1 -12.3 -3.35 200 16.4 0 18.7 18.7 World Transportation - 2 -8.84e+03 -2.4e+03 1e+04 16.4 0 1.34e+04 1.34e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 186 71 0 0 0 test.phys initStep - 1 8.09 2.53 200 71 0 16.1 16.1 World Transportation - 2 5.8e+03 1.82e+03 1e+04 71 0 1.15e+04 1.15e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 100 0 0 0 World initStep - 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 100 0 200 700 World Transportation - 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 84 99.8 0 84 584 test.phys biasWrapper(hadElastic) - 2 -16.7 2.71 200 99.8 0 117 701 World Transportation - 3 -1.43e+03 231 1e+04 99.8 0 9.9e+03 1.06e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 84 0.159 0 0 0 test.phys initStep - 1 0.00109 -0.000177 84 0 0.159 0.00122 0.00122 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 100 0 0 0 World initStep - 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 100 0 200 700 World Transportation - 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 196 0 0 196 696 test.phys biasWrapper(neutronInelastic) - -********************************************************************************************************* -* G4Track Information: Particle = alpha, Track ID = 10, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 196 2.96 0 0 0 test.phys initStep - 1 -0.0176 -0.0181 196 0 2.96 0.0255 0.0255 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = alpha, Track ID = 9, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 196 3.13 0 0 0 test.phys initStep - 1 0.00603 0.0117 196 0 3.13 0.0275 0.0275 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = alpha, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 196 16.4 0 0 0 test.phys initStep - 1 0.0643 0.0119 196 9.98 6.42 0.212 0.212 test.phys ionIoni - 2 0.109 0.0153 196 2.44 7.54 0.142 0.354 test.phys ionIoni - 3 0.116 0.015 196 0 2.44 0.0201 0.374 test.phys ionIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 196 0.169 0 0 0 test.phys initStep - 1 60.9 9.31 190 0.16 0 61.8 61.8 test.phys compt - 2 128 55 144 0.155 0 93.5 155 test.phys compt - 3 181 163 70.8 0.152 0 141 296 test.phys compt - 4 188 263 0 0.152 0 122 419 World Transportation - 5 854 1e+04 -6.93e+03 0.152 0 1.2e+04 1.24e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 181 163 70.8 0.00253 0 0 0 test.phys initStep - 1 181 163 70.8 0 0.00253 0.000347 0.000347 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 128 55 144 0.00465 0 0 0 test.phys initStep - 1 128 55 144 0 0.00465 0.000952 0.000952 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 60.9 9.31 190 0.00944 0 0 0 test.phys initStep - 1 60.9 9.31 190 0 0.00944 0.00322 0.00322 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 196 0.275 0 0 0 test.phys initStep - 1 -147 5.25 76.7 0.268 0 189 189 test.phys compt - 2 -226 39.3 12.9 0.161 0 107 296 test.phys compt - 3 -221 66.6 39.9 0.149 0 38.7 335 test.phys compt - 4 -251 302 60.9 0.0951 0 238 573 test.phys compt - 5 -244 170 0 0.0951 0 145 718 World Transportation - 6 255 -1e+04 -4.69e+03 0.0951 0 1.12e+04 1.19e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -251 302 60.9 0.0537 0 0 0 test.phys initStep - 1 -251 302 60.9 0 0.0537 0.0684 0.0684 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -221 66.6 39.9 0.0119 0 0 0 test.phys initStep - 1 -221 66.6 39.9 0 0.0119 0.00483 0.00483 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -226 39.3 12.9 0.108 0 0 0 test.phys initStep - 1 -226 39.3 12.8 0 0.108 0.227 0.227 test.phys eIoni + 0 2.59 9.74 131 0.016 0 0 0 test.phys initStep + 1 2.61 9.83 131 0 0.000403 0.175 0.175 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 14, Parent ID = 6 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -147 5.25 76.7 0.00633 0 0 0 test.phys initStep - 1 -147 5.25 76.7 0 0.00633 0.00161 0.00161 test.phys eIoni + 0 2.61 9.83 131 0.0156 0 0 0 test.phys initStep + 1 2.61 9.83 131 0 0.0156 0.00772 0.00772 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 5, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 196 0.649 0 0 0 test.phys initStep - 1 -0.00348 0.00946 196 0 0.649 0.0182 0.0182 test.phys hIoni + 0 0.335 4.77 122 0.92 0 0 0 test.phys initStep + 1 -0.248 4.42 124 0.654 0.266 2.57 2.57 test.phys eIoni + 2 -0.126 3.98 126 0.404 0.25 2.09 4.66 test.phys eIoni + 3 -0.853 3.82 126 0.197 0.207 1.53 6.19 test.phys eIoni + 4 -0.898 3.86 126 0 0.197 0.613 6.8 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 4, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 196 23.6 0 0 0 test.phys initStep - 1 259 -67.8 29.9 19.3 0 314 314 test.phys biasWrapper(hadElastic) - 2 223 -29.5 0 19.3 0 60 374 World Transportation - 3 -9e+03 1e+04 -7.82e+03 19.3 0 1.57e+04 1.61e+04 OutOfWorld Transportation + 0 0 0 85.9 85.2 0 0 0 test.phys initStep + 1 -0.0452 -0.0109 91.5 84.1 0.754 5.67 5.67 test.phys eIoni + 2 2.35 3.05 179 72.8 11.3 87.7 93.4 test.phys eBrem + 3 2.45 3.43 185 71.8 0.676 5.84 99.2 test.phys eIoni + 4 2.95 4.33 197 68.7 1.41 12.4 112 test.phys eBrem + 5 3.06 4.54 200 68.4 0.306 2.77 114 World Transportation + 6 184 815 1e+04 68.4 3.5e-22 9.84e+03 9.95e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 18, Parent ID = 4 +* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 259 -67.8 29.9 4.24 0 0 0 test.phys initStep - 1 259 -67.8 29.9 0 4.24 0.00366 0.00366 test.phys ionIoni + 0 2.95 4.33 197 1.69 0 0 0 test.phys initStep + 1 3.06 4.54 200 1.69 0 2.77 2.77 World Transportation + 2 413 747 1e+04 1.69 0 9.84e+03 9.84e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 3, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 196 33.1 0 0 0 test.phys initStep - 1 -6.6 1.56 200 33.1 0 8.12 8.12 World Transportation - 2 -1e+04 2.36e+03 6.96e+03 33.1 0 1.23e+04 1.23e+04 OutOfWorld Transportation + 0 2.45 3.43 185 0.33 0 0 0 test.phys initStep + 1 3 3.18 185 0.0919 0.238 1.28 1.28 test.phys eIoni + 2 3.07 3.23 185 0 0.0919 0.173 1.45 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.35 3.05 179 0.0135 0 0 0 test.phys initStep + 1 2.35 3.05 179 0 0.000403 0.0289 0.0289 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 16 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.35 3.05 179 0.0131 0 0 0 test.phys initStep + 1 2.34 3.05 179 0 0.0131 0.00567 0.00567 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0452 -0.0109 91.5 0.325 0 0 0 test.phys initStep + 1 -0.569 0.278 91.9 0.0762 0.248 1.26 1.26 test.phys eIoni + 2 -0.63 0.273 91.8 0 0.0762 0.126 1.38 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName @@ -4618,182 +2783,610 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 195 0 0 195 695 test.phys biasWrapper(neutronInelastic) + 1 0 0 132 0 0 132 632 test.phys conv ********************************************************************************************************* -* G4Track Information: Particle = alpha, Track ID = 11, Parent ID = 2 +* G4Track Information: Particle = e+, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 195 9.5 0 0 0 test.phys initStep - 1 -0.105 0.029 195 1.28 8.22 0.135 0.135 test.phys ionIoni - 2 -0.114 0.0309 195 0 1.28 0.0105 0.145 test.phys ionIoni + 0 0 0 132 84.5 0 0 0 test.phys initStep + 1 0.124 -0.106 140 82.1 0.987 8 8 test.phys eIoni + 2 0.622 0.505 149 18 1.33 8.98 17 test.phys eBrem + 3 -0.877 -0.458 179 14.5 3.52 30.2 47.2 test.phys eIoni + 4 -3.41 -6.12 196 11.9 2.32 18.8 66 test.phys eIoni + 5 -4.05 -5.47 200 11.3 0.638 3.78 69.8 World Transportation + 6 -3.05e+03 565 1e+04 11.3 3.11e-22 1.03e+04 1.03e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = alpha, Track ID = 10, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 195 4.7 0 0 0 test.phys initStep - 1 0.00815 0.0368 195 0 4.7 0.0486 0.0486 test.phys ionIoni + 0 -3.41 -6.12 196 0.318 0 0 0 test.phys initStep + 1 -3.26 -6.6 197 0.11 0.208 1.23 1.23 test.phys eIoni + 2 -3.31 -6.65 197 0 0.11 0.235 1.47 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = triton, Track ID = 9, Parent ID = 2 +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 195 21 0 0 0 test.phys initStep - 1 -0.0948 -0.253 196 17.7 3.32 0.712 0.712 test.phys hIoni - 2 -0.167 -0.444 196 14.7 2.94 0.567 1.28 test.phys hIoni - 3 -0.225 -0.599 197 11.9 2.83 0.454 1.73 test.phys hIoni - 4 -0.272 -0.725 197 9.33 2.59 0.36 2.09 test.phys hIoni - 5 -0.309 -0.824 198 6.83 2.5 0.285 2.38 test.phys hIoni - 6 -0.339 -0.898 198 4.18 2.65 0.22 2.6 test.phys hIoni - 7 -0.361 -0.948 198 1.25 2.94 0.151 2.75 test.phys hIoni - 8 -0.365 -0.958 198 0 1.25 0.029 2.78 test.phys hIoni - 9 -0.365 -0.958 198 0 0 0 2.78 test.phys Decay + 0 0.622 0.505 149 62.7 0 0 0 test.phys initStep + 1 2.53 4.66 200 62.7 0 51.4 51.4 World Transportation + 2 368 800 1e+04 62.7 0 9.84e+03 9.89e+03 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = deuteron, Track ID = 8, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 195 11.2 0 0 0 test.phys initStep - 1 0.246 0.0773 196 8.87 2.33 0.403 0.403 test.phys hIoni - 2 0.438 0.139 196 6.81 2.07 0.317 0.721 test.phys hIoni - 3 0.593 0.187 196 4.66 2.15 0.251 0.972 test.phys hIoni - 4 0.711 0.225 196 2.38 2.28 0.187 1.16 test.phys hIoni - 5 0.765 0.256 196 0 2.38 0.0924 1.25 test.phys hIoni + 0 0.124 -0.106 140 1.46 0 0 0 test.phys initStep + 1 -1.02 1.5 142 1.09 0.372 3.49 3.49 test.phys eIoni + 2 -1.26 1.03 145 0.802 0.29 2.87 6.36 test.phys eIoni + 3 -0.69 -0.716 145 0.317 0.485 2.36 8.72 test.phys eIoni + 4 -0.725 -1.31 145 0.0884 0.229 1.23 9.95 test.phys eIoni + 5 -0.661 -1.35 145 0 0.0884 0.162 10.1 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 195 0.824 0 0 0 test.phys initStep - 1 20.8 -15.6 200 0.824 0 26.5 26.5 World Transportation - 2 1e+04 -7.5e+03 2.45e+03 0.824 0 1.27e+04 1.27e+04 OutOfWorld Transportation + 0 0 0 132 14.5 0 0 0 test.phys initStep + 1 1.18 0.465 144 12.7 1.43 12.2 12.2 test.phys eIoni + 2 0.909 0.461 165 10.2 2.57 21.7 33.9 test.phys eIoni + 3 2.42 -1.52 177 5.78 1.48 12.1 46 test.phys eBrem + 4 5.57 -4.1 179 5 0.551 4.69 50.7 test.phys eIoni + 5 6.39 -4.79 180 4.47 0.124 1.18 51.9 test.phys eIoni + 6 7.19 -5.48 180 4.32 0.114 1.07 52.9 test.phys eBrem + 7 9.05 -7 181 3.28 0.281 2.48 55.4 test.phys eBrem + 8 12.9 -10.8 183 2.44 0.842 6.49 61.9 test.phys eIoni + 9 14.4 -14.5 186 1.66 0.781 5.11 67 test.phys eIoni + 10 15.5 -17.5 187 1.25 0.415 3.82 70.8 test.phys eIoni + 11 15.9 -20.2 187 0.846 0.4 3.13 74 test.phys eIoni + 12 16.2 -21.7 188 0.582 0.264 2.44 76.4 test.phys eIoni + 13 17.1 -22.4 189 0.29 0.292 1.94 78.3 test.phys eIoni + 14 17.7 -22.3 189 0.0147 0.275 1.11 79.5 test.phys eIoni + 15 17.7 -22.3 189 0 0.0147 0.00702 79.5 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 2 +* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 195 1.22 0 0 0 test.phys initStep - 1 2.89 -2.76 200 1.22 0 6.17 6.17 World Transportation - 2 6.03e+03 -5.74e+03 1e+04 1.22 0 1.29e+04 1.29e+04 OutOfWorld Transportation + 0 9.05 -7 181 0.757 0 0 0 test.phys initStep + 1 52.2 -41.7 191 0.741 0 56.4 56.4 test.phys compt + 2 73.9 -65.5 200 0.741 0 33.3 89.8 World Transportation + 3 9.1e+03 -1e+04 3.85e+03 0.741 0 1.39e+04 1.4e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = neutron, Track ID = 5, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 13 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 195 2.42 0 0 0 test.phys initStep - 1 172 -14.9 176 2.34 0 173 173 test.phys biasWrapper(hadElastic) - 2 215 -1.95 200 2.34 0 50.9 224 World Transportation - 3 1e+04 2.94e+03 5.63e+03 2.34 0 1.16e+04 1.18e+04 OutOfWorld Transportation + 0 52.2 -41.7 191 0.0159 0 0 0 test.phys initStep + 1 52.2 -41.7 191 0 0.0159 0.00804 0.00804 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = N14, Track ID = 12, Parent ID = 5 +* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 172 -14.9 176 0.0813 0 0 0 test.phys initStep - 1 172 -14.9 176 0 0.0813 0.000841 0.000841 test.phys ionIoni + 0 7.19 -5.48 180 0.0363 0 0 0 test.phys initStep + 1 8.66 -6.26 181 0.0325 0 1.75 1.75 test.phys compt + 2 0.778 -6.26 184 0.0311 0 8.66 10.4 test.phys compt + 3 -5.82 6.85 180 0.0278 0 15.2 25.6 test.phys compt + 4 -4.82 -3.15 184 0.0278 0 10.8 36.4 test.phys Rayl + 5 2.21 -54.7 196 0.0266 0 53.4 89.8 test.phys compt + 6 42.1 -66.3 163 0 0.000403 53.1 143 test.phys phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 12 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 195 3.08 0 0 0 test.phys initStep - 1 -16.5 -27.7 197 0.644 0 32.3 32.3 test.phys compt - 2 -4.34 -113 57.1 0.622 0 164 196 test.phys compt - 3 16.3 -156 1.64 0.567 0 73.2 270 test.phys compt - 4 16.1 -158 0 0.567 0 2.23 272 World Transportation - 5 -1.44e+03 -9.24e+03 -1e+04 0.567 0 1.36e+04 1.39e+04 OutOfWorld Transportation + 0 42.1 -66.3 163 0.0262 0 0 0 test.phys initStep + 1 42.1 -66.3 163 0 0.0262 0.0194 0.0194 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 4 +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 12 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 16.3 -156 1.64 0.0549 0 0 0 test.phys initStep - 1 16.4 -156 1.64 0 0.0549 0.0711 0.0711 test.phys eIoni + 0 2.21 -54.7 196 0.0012 0 0 0 test.phys initStep + 1 2.21 -54.7 196 0 0.0012 0.000108 0.000108 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 4 +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 12 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.34 -113 57.1 0.0221 0 0 0 test.phys initStep - 1 -4.34 -113 57.1 0 0.0221 0.0144 0.0144 test.phys eIoni + 0 -5.82 6.85 180 0.00328 0 0 0 test.phys initStep + 1 -5.82 6.85 180 0 0.00328 0.000529 0.000529 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 4 +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 12 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.5 -27.7 197 2.43 0 0 0 test.phys initStep - 1 -19.4 -30.9 199 1.72 0.712 5.1 5.1 test.phys eIoni - 2 -19.3 -31.7 200 1.6 0.124 1.26 6.35 World Transportation - 3 2.75e+03 -1e+04 6.13e+03 1.6 3.17e-22 1.19e+04 1.19e+04 OutOfWorld Transportation + 0 0.778 -6.26 184 0.00142 0 0 0 test.phys initStep + 1 0.778 -6.26 184 0 0.00142 0.000139 0.000139 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = proton, Track ID = 3, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 12 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 195 8.66 0 0 0 test.phys initStep - 1 0.102 -0.353 195 6.98 1.68 0.422 0.422 test.phys hIoni - 2 0.186 -0.631 195 5.46 1.52 0.335 0.757 test.phys hIoni - 3 0.244 -0.856 195 3.89 1.57 0.266 1.02 test.phys hIoni - 4 0.295 -1.02 195 2.23 1.65 0.203 1.23 test.phys hIoni - 5 0.325 -1.12 195 0.238 2 0.124 1.35 test.phys hIoni - 6 0.326 -1.13 195 0 0.238 0.0049 1.35 test.phys hIoni + 0 8.66 -6.26 181 0.00375 0 0 0 test.phys initStep + 1 8.66 -6.26 181 0 0.00375 0.000662 0.000662 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 6.39 -4.79 180 0.403 0 0 0 test.phys initStep + 1 6.71 -4.82 181 0.189 0.214 1.52 1.52 test.phys eIoni + 2 6.78 -5.04 181 0 0.189 0.574 2.1 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 5.57 -4.1 179 0.226 0 0 0 test.phys initStep + 1 5.94 -4.02 179 0 0.226 0.758 0.758 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 2.42 -1.52 177 2.92 0 0 0 test.phys initStep + 1 25.3 -16.9 200 2.92 0 35.8 35.8 World Transportation + 2 9.83e+03 -6.59e+03 1e+04 2.92 0 1.53e+04 1.54e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.18 0.465 144 0.287 0 0 0 test.phys initStep + 1 0.851 0.144 144 0.0194 0.267 1.09 1.09 test.phys eIoni + 2 0.854 0.148 144 0 0.0194 0.0113 1.1 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -500 100 0 0 0 World initStep - 1 0 0 0 100 0 500 500 test.phys Transportation - 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) - 3 0 0 200 100 0 200 700 World Transportation - 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation + 0 0 0 -500 1 0 0 0 World initStep + 1 0 0 0 1 0 500 500 test.phys Transportation + 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 1 0 200 700 World Transportation + 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 34.8 99.8 0 34.8 535 test.phys biasWrapper(hadElastic) - 2 16.9 -8.36 160 99.4 0 126 661 test.phys biasWrapper(hadElastic) - 3 23.3 -20.7 200 99.4 0 42.7 704 World Transportation - 4 1.59e+03 -3.01e+03 1e+04 99.4 0 1.04e+04 1.11e+04 OutOfWorld Transportation + 0 0 0 0 1 0 0 500 test.phys initStep + 1 0 0 42.4 0.922 0 42.4 542 test.phys biasWrapper(hadElastic) + 2 85.8 3.5 84 0.816 0 95.5 638 test.phys biasWrapper(hadElastic) + 3 80.9 32.9 105 0.763 0.0526 36.2 674 test.phys biasWrapper(hadElastic) + 4 163 121 113 0.622 0 121 795 test.phys biasWrapper(hadElastic) + 5 194 38.5 129 0.541 0 89.1 884 test.phys biasWrapper(hadElastic) + 6 351 85.4 99.9 0.425 0 166 1.05e+03 test.phys biasWrapper(hadElastic) + 7 328 77.4 80.7 0.342 0 31.1 1.08e+03 test.phys biasWrapper(hadElastic) + 8 453 -67 157 0.315 0.0275 206 1.29e+03 test.phys biasWrapper(hadElastic) + 9 531 -75.9 114 0.308 0.00706 89.7 1.38e+03 test.phys biasWrapper(hadElastic) + 10 534 -78.5 112 0.28 0.0275 4.16 1.38e+03 test.phys biasWrapper(hadElastic) + 11 503 -123 66.4 0.258 0.0218 71.3 1.45e+03 test.phys biasWrapper(hadElastic) + 12 432 -119 61.3 0.228 0.0305 71.5 1.52e+03 test.phys biasWrapper(hadElastic) + 13 403 -124 200 0.228 0 142 1.67e+03 World Transportation + 14 -1.63e+03 -494 1e+04 0.228 0 1e+04 1.17e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 328 77.4 80.7 0.0828 0 0 0 test.phys initStep + 1 328 77.4 80.7 0 0.0828 0.00085 0.00085 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 351 85.4 99.9 0.116 0 0 0 test.phys initStep + 1 351 85.4 99.9 0 0.116 0.00102 0.00102 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 194 38.5 129 0.081 0 0 0 test.phys initStep + 1 194 38.5 129 0 0.081 0.00084 0.00084 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 163 121 113 0.142 0 0 0 test.phys initStep + 1 163 121 113 0 0.142 0.00114 0.00114 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 16.9 -8.36 160 0.39 0 0 0 test.phys initStep - 1 16.9 -8.36 160 0 0.39 0.00172 0.00172 test.phys ionIoni + 0 85.8 3.5 84 0.106 0 0 0 test.phys initStep + 1 85.8 3.5 84 0 0.106 0.00097 0.00097 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 34.8 0.17 0 0 0 test.phys initStep - 1 -0.00104 0.000513 34.8 0 0.17 0.00127 0.00127 test.phys ionIoni + 0 0 0 42.4 0.0781 0 0 0 test.phys initStep + 1 -0.000538 -2.2e-05 42.4 0 0.0781 0.000824 0.000824 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 1 0 0 0 World initStep + 1 0 0 0 1 0 500 500 test.phys Transportation + 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 1 0 200 700 World Transportation + 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 1 0 0 500 test.phys initStep + 1 0 0 6.13 0.89 0 6.13 506 test.phys biasWrapper(hadElastic) + 2 -7.53 -161 37.7 0.812 0 164 670 test.phys biasWrapper(hadElastic) + 3 -48.7 -176 31.6 0.677 0 44.5 714 test.phys biasWrapper(hadElastic) + 4 -13.5 -228 84.4 0.568 0 81.8 796 test.phys biasWrapper(hadElastic) + 5 64.1 -201 25 0.564 0.00333 101 898 test.phys biasWrapper(hadElastic) + 6 104 -201 0 0.564 0 47 945 World Transportation + 7 1e+04 -197 -6.21e+03 0.564 0 1.17e+04 1.26e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -13.5 -228 84.4 0.109 0 0 0 test.phys initStep + 1 -13.5 -228 84.4 0 0.109 0.000986 0.000986 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -48.7 -176 31.6 0.135 0 0 0 test.phys initStep + 1 -48.7 -176 31.6 0 0.135 0.00111 0.00111 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -7.53 -161 37.7 0.0779 0 0 0 test.phys initStep + 1 -7.53 -161 37.7 0 0.0779 0.000823 0.000823 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 6.13 0.11 0 0 0 test.phys initStep + 1 2.97e-05 0.000633 6.13 0 0.11 0.00099 0.00099 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 1 0 0 0 World initStep + 1 0 0 0 1 0 500 500 test.phys Transportation + 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 1 0 200 700 World Transportation + 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 1 0 0 500 test.phys initStep + 1 0 0 141 0.954 0.0457 141 641 test.phys biasWrapper(hadElastic) + 2 60.7 22.8 200 0.954 0 88 729 World Transportation + 3 1e+04 3.75e+03 9.94e+03 0.954 0 1.44e+04 1.51e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 1 0 0 0 World initStep + 1 0 0 0 1 0 500 500 test.phys Transportation + 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 1 0 200 700 World Transportation + 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 1 0 0 500 test.phys initStep + 1 0 0 68.3 0.855 0 68.3 568 test.phys biasWrapper(hadElastic) + 2 37.3 -17.2 64.8 0.772 0 41.2 610 test.phys biasWrapper(hadElastic) + 3 74.4 21.1 80.5 0.667 0 55.6 665 test.phys biasWrapper(hadElastic) + 4 44.8 80.6 0 0.667 0 104 770 World Transportation + 5 -3.63e+03 7.48e+03 -1e+04 0.667 0 1.3e+04 1.37e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 74.4 21.1 80.5 0.105 0 0 0 test.phys initStep + 1 74.4 21.1 80.5 0 0.105 0.000965 0.000965 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 37.3 -17.2 64.8 0.0832 0 0 0 test.phys initStep + 1 37.3 -17.2 64.8 0 0.0832 0.000851 0.000851 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 68.3 0.145 0 0 0 test.phys initStep + 1 -0.000611 0.000283 68.3 0 0.145 0.00116 0.00116 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 1 0 0 0 World initStep + 1 0 0 0 1 0 500 500 test.phys Transportation + 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 1 0 200 700 World Transportation + 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 1 0 0 500 test.phys initStep + 1 0 0 158 0.884 0 158 658 test.phys biasWrapper(hadElastic) + 2 23.8 -7.65 161 0.722 0 25.3 683 test.phys biasWrapper(hadElastic) + 3 -9.33 -45.3 120 0.698 0.0244 64.7 748 test.phys biasWrapper(hadElastic) + 4 -17.5 -67.9 0 0.698 0 123 870 World Transportation + 5 -693 -1.95e+03 -1e+04 0.698 0 1.02e+04 1.11e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 23.8 -7.65 161 0.162 0 0 0 test.phys initStep + 1 23.8 -7.65 161 0 0.162 0.00124 0.00124 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 158 0.116 0 0 0 test.phys initStep + 1 -0.000614 0.000197 158 0 0.116 0.00102 0.00102 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 1 0 0 0 World initStep + 1 0 0 0 1 0 500 500 test.phys Transportation + 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 1 0 200 700 World Transportation + 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 1 0 0 500 test.phys initStep + 1 0 0 8.1 0.891 0 8.1 508 test.phys biasWrapper(hadElastic) + 2 -33.8 -34 18.1 0.846 0.0451 49 557 test.phys biasWrapper(hadElastic) + 3 -44 -59.6 0 0.846 0 33 590 World Transportation + 4 -3.98e+03 -1e+04 -7.02e+03 0.846 0 1.28e+04 1.34e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 8.1 0.109 0 0 0 test.phys initStep + 1 0.000445 0.000447 8.11 0 0.109 0.000983 0.000983 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 1 0 0 0 World initStep + 1 0 0 0 1 0 500 500 test.phys Transportation + 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 1 0 200 700 World Transportation + 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 1 0 0 500 test.phys initStep + 1 0 0 149 0.985 0.0148 149 649 test.phys biasWrapper(hadElastic) + 2 -22.8 -10.6 200 0.985 0 56.7 706 World Transportation + 3 -4.42e+03 -2.05e+03 1e+04 0.985 0 1.09e+04 1.16e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 1 0 0 0 World initStep + 1 0 0 0 1 0 500 500 test.phys Transportation + 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 1 0 200 700 World Transportation + 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 1 0 0 500 test.phys initStep + 1 0 0 146 0.782 0 146 646 test.phys biasWrapper(hadElastic) + 2 0.364 -0.185 145 0 0 0.573 646 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = C14, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.364 -0.185 145 0.0908 0 0 0 test.phys initStep + 1 0.363 -0.185 145 0 0.0908 0.00104 0.00104 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.364 -0.185 145 1.26 0 0 0 test.phys initStep + 1 0.408 -0.201 145 0.00253 1.26 0.0509 0.0509 test.phys hIoni + 2 0.408 -0.201 145 0 0.00253 0.000312 0.0512 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 146 0.218 0 0 0 test.phys initStep + 1 -0.00043 0.000219 146 0 0.218 0.00142 0.00142 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 1 0 0 0 World initStep + 1 0 0 0 1 0 500 500 test.phys Transportation + 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 1 0 200 700 World Transportation + 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 1 0 0 500 test.phys initStep + 1 0 0 146 0.875 0 146 646 test.phys biasWrapper(hadElastic) + 2 5.41 -5.11 147 0.754 0 7.46 654 test.phys biasWrapper(hadElastic) + 3 22.3 21.7 200 0.754 0 61.9 716 World Transportation + 4 3.14e+03 4.96e+03 1e+04 0.754 0 1.14e+04 1.21e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 5.41 -5.11 147 0.121 0 0 0 test.phys initStep + 1 5.41 -5.11 147 0 0.121 0.00105 0.00105 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 146 0.125 0 0 0 test.phys initStep + 1 -0.000479 0.000452 146 0 0.125 0.00106 0.00106 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 1 0 0 0 World initStep + 1 0 0 0 1 0 500 500 test.phys Transportation + 2 0 0 0 1 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 1 0 200 700 World Transportation + 4 0 0 1e+04 1 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 1 0 0 500 test.phys initStep + 1 0 0 76.4 0.865 0 76.4 576 test.phys biasWrapper(hadElastic) + 2 -95.3 -308 74.1 0.778 0 323 899 test.phys biasWrapper(hadElastic) + 3 -95.4 -309 72.2 0.771 0.00788 2.03 901 test.phys biasWrapper(hadElastic) + 4 -100 -315 60.6 0.658 0 13.9 915 test.phys biasWrapper(hadElastic) + 5 -101 -222 21.2 0.603 0.0547 101 1.02e+03 test.phys biasWrapper(hadElastic) + 6 -94.7 -221 -7.11e-15 0.603 0 22.1 1.04e+03 World Transportation + 7 2.86e+03 102 -1e+04 0.603 0 1.04e+04 1.15e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -100 -315 60.6 0.113 0 0 0 test.phys initStep + 1 -100 -315 60.6 0 0.113 0.001 0.001 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -95.3 -308 74.1 0.0861 0 0 0 test.phys initStep + 1 -95.3 -308 74.1 0 0.0861 0.000867 0.000867 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 76.4 0.135 0 0 0 test.phys initStep + 1 0.000198 0.000639 76.4 0 0.135 0.00111 0.00111 test.phys ionIoni ********************************************************************************************************* * G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 @@ -4812,16 +3405,1699 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 0 100 0 0 500 test.phys initStep - 1 0 0 183 99.3 0 183 683 test.phys biasWrapper(hadElastic) - 2 4.15 -3.07 200 99.3 0 17.3 701 World Transportation - 3 2.46e+03 -1.82e+03 1e+04 99.3 0 1.03e+04 1.1e+04 OutOfWorld Transportation + 1 0 0 127 99.5 0 127 627 test.phys biasWrapper(hadElastic) + 2 -9.78 -17.6 200 99.5 0 76.1 703 World Transportation + 3 -1.32e+03 -2.37e+03 1e+04 99.5 0 1.02e+04 1.09e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 183 0.685 0 0 0 test.phys initStep - 1 -0.00162 0.0012 183 0 0.685 0.00206 0.00206 test.phys ionIoni + 0 0 0 127 0.539 0 0 0 test.phys initStep + 1 0.000908 0.00163 127 0 0.539 0.00192 0.00192 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 100 0 0 0 World initStep + 1 0 0 0 100 0 500 500 test.phys Transportation + 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 100 0 200 700 World Transportation + 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 100 0 0 500 test.phys initStep + 1 0 0 110 99.9 0.0574 110 610 test.phys biasWrapper(hadElastic) + 2 -7.85 0.849 200 99.9 0 90.8 700 World Transportation + 3 -858 92.8 1e+04 99.9 0 9.84e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 100 0 0 0 World initStep + 1 0 0 0 100 0 500 500 test.phys Transportation + 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 100 0 200 700 World Transportation + 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 100 0 0 500 test.phys initStep + 1 0 0 91.3 0 0 91.3 591 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = C12, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 91.3 0.534 0 0 0 test.phys initStep + 1 0.00109 -0.00089 91.3 0 0.534 0.00203 0.00203 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = deuteron, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 91.3 4.82 0 0 0 test.phys initStep + 1 -0.177 -0.0725 91.2 2.55 2.27 0.192 0.192 test.phys hIoni + 2 -0.273 -0.11 91.2 0 2.55 0.103 0.295 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 91.3 0.503 0 0 0 test.phys initStep + 1 18.3 1.34 86 0.363 0 19.1 19.1 test.phys compt + 2 61.4 -35.3 0 0.363 0 103 122 World Transportation + 3 5.08e+03 -4.3e+03 -1e+04 0.363 0 1.2e+04 1.21e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 18.3 1.34 86 0.14 0 0 0 test.phys initStep + 1 18.4 1.42 86 0 0.14 0.35 0.35 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 91.3 6.89 0 0 0 test.phys initStep + 1 65.1 118 200 6.89 0 173 173 World Transportation + 2 5.54e+03 1e+04 9.34e+03 6.89 0 1.45e+04 1.47e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 91.3 77 0 0 0 test.phys initStep + 1 18.1 27.8 200 77 0 114 114 World Transportation + 2 1.65e+03 2.53e+03 1e+04 77 0 1.02e+04 1.04e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 100 0 0 0 World initStep + 1 0 0 0 100 0 500 500 test.phys Transportation + 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 100 0 200 700 World Transportation + 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 100 0 0 500 test.phys initStep + 1 0 0 25.8 99.1 0 25.8 526 test.phys biasWrapper(hadElastic) + 2 36 -19.4 139 0 0 120 646 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = C12, Track ID = 10, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 36 -19.4 139 1.21 0 0 0 test.phys initStep + 1 36 -19.4 139 0 1.21 0.00254 0.00254 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 36 -19.4 139 0.395 0 0 0 test.phys initStep + 1 41.6 -8.47 200 0.395 0 62.3 62.3 World Transportation + 2 951 1.75e+03 1e+04 0.395 0 1e+04 1.01e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 36 -19.4 139 1 0 0 0 test.phys initStep + 1 131 134 6.24 0.834 0 224 224 test.phys biasWrapper(hadElastic) + 2 95.3 152 19 0.799 0.0352 42.2 267 test.phys biasWrapper(hadElastic) + 3 74.6 160 62.3 0.798 0.00108 48.6 315 test.phys biasWrapper(hadElastic) + 4 69.2 164 75.3 0.762 0.0359 14.8 330 test.phys biasWrapper(hadElastic) + 5 55.3 154 90 0.744 0.018 22.5 352 test.phys biasWrapper(hadElastic) + 6 -165 -13.9 126 0.704 0.0405 279 631 test.phys biasWrapper(hadElastic) + 7 -228 -13.9 200 0.704 0 97.4 729 World Transportation + 8 -8.66e+03 -25.2 1e+04 0.704 0 1.29e+04 1.37e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 11, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 131 134 6.24 0.166 0 0 0 test.phys initStep + 1 131 134 6.24 0 0.166 0.00126 0.00126 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 36 -19.4 139 1.11 0 0 0 test.phys initStep + 1 361 99.1 16.8 0.278 0 367 367 test.phys compt + 2 347 96 0.474 0.205 0 21.9 389 test.phys compt + 3 347 96.4 0 0.205 0 0.618 390 World Transportation + 4 3.09e+03 8e+03 -1e+04 0.205 0 1.3e+04 1.34e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 347 96 0.474 0.0728 0 0 0 test.phys initStep + 1 347 96 0.464 0 0.0728 0.116 0.116 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 361 99.1 16.8 0.831 0 0 0 test.phys initStep + 1 363 99.7 16.5 0.475 0.356 2.41 2.41 test.phys eIoni + 2 364 99.7 16.8 0.363 0.106 0.711 3.13 test.phys eBrem + 3 364 100 16.9 0.0302 0.333 1.4 4.52 test.phys eIoni + 4 364 100 16.8 0 0.0302 0.0249 4.55 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 364 99.7 16.8 0.00637 0 0 0 test.phys initStep + 1 364 99.2 16.8 0 0.000403 0.524 0.524 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 14 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 364 99.2 16.8 0.00597 0 0 0 test.phys initStep + 1 364 99.2 16.8 0 0.00597 0.00146 0.00146 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 36 -19.4 139 5.37 0 0 0 test.phys initStep + 1 36.1 -19.6 139 3.82 1.55 0.262 0.262 test.phys hIoni + 2 36.2 -19.8 139 2.19 1.63 0.2 0.462 test.phys hIoni + 3 36.3 -19.8 139 0.15 2.04 0.121 0.583 test.phys hIoni + 4 36.3 -19.8 139 0.00302 0.147 0.00313 0.586 test.phys hIoni + 5 36.3 -19.8 139 0 0.00302 0.00034 0.586 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 36 -19.4 139 5.55 0 0 0 test.phys initStep + 1 199 103 200 5.55 0 213 213 World Transportation + 2 1e+04 7.48e+03 3.87e+03 5.55 0 1.28e+04 1.3e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 36 -19.4 139 71.9 0 0 0 test.phys initStep + 1 48.2 -55.8 200 71.9 0 72.1 72.1 World Transportation + 2 2.01e+03 -5.89e+03 1e+04 71.9 0 1.16e+04 1.16e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 25.8 0.9 0 0 0 test.phys initStep + 1 -0.00191 0.00103 25.8 0 0.9 0.00222 0.00222 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 100 0 0 0 World initStep + 1 0 0 0 100 0 500 500 test.phys Transportation + 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 100 0 200 700 World Transportation + 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 100 0 0 500 test.phys initStep + 1 0 0 122 0 0 122 622 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = alpha, Track ID = 9, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 122 7.45 0 0 0 test.phys initStep + 1 0.00709 -0.0938 122 0 7.45 0.0988 0.0988 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = alpha, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 122 6.29 0 0 0 test.phys initStep + 1 0.0746 0.00297 122 0 6.29 0.0756 0.0756 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = alpha, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 122 21.9 0 0 0 test.phys initStep + 1 -0.161 0.0283 122 15.4 6.41 0.267 0.267 test.phys ionIoni + 2 -0.28 0.0526 122 8.89 6.55 0.203 0.47 test.phys ionIoni + 3 -0.352 0.0652 122 0.898 7.99 0.126 0.596 test.phys ionIoni + 4 -0.357 0.0659 122 0 0.898 0.00798 0.604 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 122 0.491 0 0 0 test.phys initStep + 1 -12.2 10.4 52.1 0.183 0 71.7 71.7 test.phys compt + 2 -24.4 25.4 88.3 0.115 0 41.1 113 test.phys compt + 3 59.3 -35.8 64.6 0.106 0 106 219 test.phys compt + 4 85.8 -68.8 95.1 0.08 0 52.2 271 test.phys compt + 5 90.9 -62.2 84.2 0.0737 0 13.7 285 test.phys compt + 6 88.6 -60.9 82 0.0737 0 3.46 288 test.phys Rayl + 7 79.8 -56.6 82.7 0.0737 8.76e-06 9.78 298 test.phys compt + 8 35.1 -32.4 85.8 0.0578 0 50.9 349 test.phys compt + 9 89.5 -64.2 52.3 0.0534 0 71.3 420 test.phys compt + 10 109 -109 90.9 0.0479 0 62.6 483 test.phys compt + 11 121 -130 54.9 0.0478 0 43.2 526 test.phys compt + 12 126 -167 2.95 0 0.000403 64 590 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 126 -167 2.95 0.0474 0 0 0 test.phys initStep + 1 126 -167 2.95 0 0.0474 0.055 0.055 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 121 -130 54.9 0.000132 0 0 0 test.phys initStep + 1 121 -130 54.9 0 0.000132 1e-05 1e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 109 -109 90.9 0.00543 0 0 0 test.phys initStep + 1 109 -109 90.9 0 0.00543 0.00124 0.00124 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 89.5 -64.2 52.3 0.00439 0 0 0 test.phys initStep + 1 89.5 -64.2 52.3 0 0.00439 0.000864 0.000864 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.1 -32.4 85.8 0.0159 0 0 0 test.phys initStep + 1 35.1 -32.4 85.8 0 0.0159 0.00802 0.00802 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 90.9 -62.2 84.2 0.00635 0 0 0 test.phys initStep + 1 90.9 -62.2 84.2 0 0.00635 0.00162 0.00162 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 85.8 -68.8 95.1 0.0263 0 0 0 test.phys initStep + 1 85.8 -68.8 95.1 0 0.0263 0.0195 0.0195 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 59.3 -35.8 64.6 0.0088 0 0 0 test.phys initStep + 1 59.3 -35.8 64.6 0 0.0088 0.00285 0.00285 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -24.4 25.4 88.3 0.0676 0 0 0 test.phys initStep + 1 -24.4 25.4 88.4 0 0.0676 0.102 0.102 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.2 10.4 52.1 0.308 0 0 0 test.phys initStep + 1 -12.2 10.4 51.5 0 0.308 1.19 1.19 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 122 12.8 0 0 0 test.phys initStep + 1 -26.1 140 91.9 0 0 145 145 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = C13, Track ID = 23, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -26.1 140 91.9 1.62 0 0 0 test.phys initStep + 1 -26.1 140 91.9 0 1.62 0.00292 0.00292 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -26.1 140 91.9 0.0598 0 0 0 test.phys initStep + 1 -18.2 154 66.5 0.0504 0 30.3 30.3 test.phys compt + 2 -16.5 156 71.8 0.0448 0 5.73 36 test.phys compt + 3 21.1 147 48.3 0.0392 0 45.1 81.2 test.phys compt + 4 -93.4 308 45.4 0 0.000403 198 279 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 22 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -93.4 308 45.4 0.0388 0 0 0 test.phys initStep + 1 -93.4 308 45.4 0 0.0388 0.0387 0.0387 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 22 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 21.1 147 48.3 0.00562 0 0 0 test.phys initStep + 1 21.1 147 48.3 0 0.00562 0.00131 0.00131 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 22 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -16.5 156 71.8 0.00561 0 0 0 test.phys initStep + 1 -16.5 156 71.8 0 0.00561 0.00131 0.00131 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 22 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -18.2 154 66.5 0.00939 0 0 0 test.phys initStep + 1 -18.2 154 66.5 0 0.00939 0.00319 0.00319 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 21, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -26.1 140 91.9 1.07 0 0 0 test.phys initStep + 1 42.3 204 200 1.07 0 143 143 World Transportation + 2 6.25e+03 6.06e+03 1e+04 1.07 0 1.3e+04 1.31e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 20, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -26.1 140 91.9 2.4 0 0 0 test.phys initStep + 1 -26.2 140 92 0.461 1.94 0.134 0.134 test.phys hIoni + 2 -26.2 140 92 0 0.461 0.0111 0.145 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 122 15.6 0 0 0 test.phys initStep + 1 -0.209 -0.416 123 13.3 2.31 0.924 0.924 test.phys hIoni + 2 -0.373 -0.746 123 11.4 1.93 0.733 1.66 test.phys hIoni + 3 -0.514 -1.01 124 9.52 1.88 0.592 2.25 test.phys hIoni + 4 -0.614 -1.22 124 7.76 1.76 0.471 2.72 test.phys hIoni + 5 -0.695 -1.4 125 6.19 1.57 0.373 3.09 test.phys hIoni + 6 -0.767 -1.54 125 4.63 1.55 0.298 3.39 test.phys hIoni + 7 -0.821 -1.65 125 3.07 1.57 0.232 3.62 test.phys hIoni + 8 -0.855 -1.72 125 1.3 1.77 0.168 3.79 test.phys hIoni + 9 -0.862 -1.75 125 0.0144 1.28 0.0531 3.84 test.phys hIoni + 10 -0.861 -1.75 125 0 0.0144 0.000719 3.85 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 122 15.8 0 0 0 test.phys initStep + 1 53.9 67.7 200 15.8 0 117 117 World Transportation + 2 6.82e+03 8.56e+03 1e+04 15.8 0 1.46e+04 1.47e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 100 0 0 0 World initStep + 1 0 0 0 100 0 500 500 test.phys Transportation + 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 100 0 200 700 World Transportation + 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 100 0 0 500 test.phys initStep + 1 0 0 177 0 0 177 677 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = C12, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 177 0.533 0 0 0 test.phys initStep + 1 -0.00139 0.000792 177 0 0.533 0.00202 0.00202 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 177 0.088 0 0 0 test.phys initStep + 1 18.6 102 122 0.087 0 118 118 test.phys compt + 2 -28.1 288 0 0.087 0 227 345 World Transportation + 3 -2.47e+03 1e+04 -6.38e+03 0.087 0 1.19e+04 1.22e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 18.6 102 122 0.00105 0 0 0 test.phys initStep + 1 18.6 102 122 0 0.00105 8.9e-05 8.9e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 177 1.07 0 0 0 test.phys initStep + 1 0.00942 -0.0241 177 0 1.07 0.0391 0.0391 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 177 26.6 0 0 0 test.phys initStep + 1 22.1 28.3 200 26.6 0 42.7 42.7 World Transportation + 2 7.81e+03 1e+04 8.36e+03 26.6 0 1.51e+04 1.51e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 177 59.1 0 0 0 test.phys initStep + 1 -3.79 -12.1 198 59.1 0.027 24.9 24.9 test.phys biasWrapper(hadElastic) + 2 -4.16 -13 200 59.1 0 1.91 26.8 World Transportation + 3 -2.13e+03 -4.71e+03 1e+04 59.1 0 1.11e+04 1.11e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 100 0 0 0 World initStep + 1 0 0 0 100 0 500 500 test.phys Transportation + 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 100 0 200 700 World Transportation + 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 100 0 0 500 test.phys initStep + 1 0 0 106 100 0.014 106 606 test.phys biasWrapper(hadElastic) + 2 0.975 1.49 147 0 0 41.5 647 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = C12, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.975 1.49 147 3.79 0 0 0 test.phys initStep + 1 0.977 1.49 147 0 3.79 0.00392 0.00392 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.975 1.49 147 0.256 0 0 0 test.phys initStep + 1 -0.106 -66.9 0 0.256 0 162 162 World Transportation + 2 -73.4 -4.71e+03 -1e+04 0.256 0 1.1e+04 1.12e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.975 1.49 147 2.8 0 0 0 test.phys initStep + 1 -190 66.4 200 2.8 0 208 208 World Transportation + 2 -1e+04 3.4e+03 2.9e+03 2.8 0 1.07e+04 1.09e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.975 1.49 147 14.6 0 0 0 test.phys initStep + 1 -179 -22.5 0 14.6 0 234 234 World Transportation + 2 -1e+04 -1.33e+03 -8.03e+03 14.6 0 1.28e+04 1.3e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.975 1.49 147 16.8 0 0 0 test.phys initStep + 1 1.29 1.65 148 14.6 2.27 1.03 1.03 test.phys hIoni + 2 1.54 1.78 149 12.4 2.14 0.834 1.87 test.phys hIoni + 3 1.77 1.89 150 10.5 1.98 0.666 2.53 test.phys hIoni + 4 1.96 1.97 150 8.66 1.8 0.53 3.06 test.phys hIoni + 5 2.13 1.97 151 6.96 1.7 0.422 3.49 test.phys hIoni + 6 2.29 1.88 151 5.34 1.62 0.334 3.82 test.phys hIoni + 7 2.4 1.8 151 3.78 1.56 0.261 4.08 test.phys hIoni + 8 2.48 1.75 151 2.09 1.69 0.198 4.28 test.phys hIoni + 9 2.54 1.72 151 0.0544 2.04 0.114 4.39 test.phys hIoni + 10 2.54 1.72 151 0 0.0544 0.00153 4.39 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.975 1.49 147 49.1 0 0 0 test.phys initStep + 1 -1.21 -50.8 200 49.1 0 74.2 74.2 World Transportation + 2 -408 -9.79e+03 1e+04 49.1 0 1.38e+04 1.39e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 100 0 0 0 World initStep + 1 0 0 0 100 0 500 500 test.phys Transportation + 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 100 0 200 700 World Transportation + 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 100 0 0 500 test.phys initStep + 1 0 0 108 0 0 108 608 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = B10, Track ID = 9, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 108 12.1 0 0 0 test.phys initStep + 1 -0.000694 -0.00461 108 0 12.1 0.0191 0.0191 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = deuteron, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 108 2.44 0 0 0 test.phys initStep + 1 0.0127 0.0353 108 0 2.44 0.0964 0.0964 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 108 0.123 0 0 0 test.phys initStep + 1 35 -71.3 136 0.0979 0 84.1 84.1 test.phys compt + 2 56.4 -57.1 141 0.0953 0 26.2 110 test.phys compt + 3 143 36.4 104 0.0934 0 133 243 test.phys compt + 4 147 46.7 96.9 0.0698 0 13.4 256 test.phys compt + 5 150 18.7 148 0.0659 0 58.1 314 test.phys compt + 6 169 26.3 170 0.0532 0 30.5 345 test.phys compt + 7 115 39.1 137 0.0462 0 64.9 410 test.phys compt + 8 116 27.8 142 0.0442 0 12.4 422 test.phys compt + 9 161 11.2 157 0.0378 0 50.3 472 test.phys compt + 10 69.7 82.2 102 0.0331 0 128 600 test.phys compt + 11 112 25.4 115 0 0.000403 72.1 673 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 112 25.4 115 0.0327 0 0 0 test.phys initStep + 1 112 25.4 115 0 0.0327 0.0286 0.0286 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 69.7 82.2 102 0.00473 0 0 0 test.phys initStep + 1 69.7 82.2 102 0 0.00473 0.000979 0.000979 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 161 11.2 157 0.00636 0 0 0 test.phys initStep + 1 161 11.2 157 0 0.00636 0.00162 0.00162 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 116 27.8 142 0.00204 0 0 0 test.phys initStep + 1 116 27.8 142 0 0.00204 0.000245 0.000245 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 115 39.1 137 0.00699 0 0 0 test.phys initStep + 1 115 39.1 137 0 0.00699 0.00191 0.00191 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 169 26.3 170 0.0127 0 0 0 test.phys initStep + 1 169 26.3 170 0 0.0127 0.0054 0.0054 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 150 18.7 148 0.00393 0 0 0 test.phys initStep + 1 150 18.7 148 0 0.00393 0.000716 0.000716 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 147 46.7 96.9 0.0236 0 0 0 test.phys initStep + 1 147 46.7 96.9 0 0.0236 0.0161 0.0161 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 143 36.4 104 0.00185 0 0 0 test.phys initStep + 1 143 36.4 104 0 0.00185 0.000211 0.000211 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 56.4 -57.1 141 0.0026 0 0 0 test.phys initStep + 1 56.4 -57.1 141 0 0.0026 0.000362 0.000362 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35 -71.3 136 0.0247 0 0 0 test.phys initStep + 1 35 -71.3 136 0 0.0247 0.0175 0.0175 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 108 3.81 0 0 0 test.phys initStep + 1 -91.4 234 110 2.74 0 251 251 test.phys compt + 2 -194 382 70.5 0 0 184 436 test.phys conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 23, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -194 382 70.5 1.59 0 0 0 test.phys initStep + 1 -197 383 72 1.13 0.464 3.73 3.73 test.phys eIoni + 2 -197 385 70 0.805 0.326 2.95 6.68 test.phys eIoni + 3 -198 385 68.2 0.537 0.268 2.38 9.06 test.phys eIoni + 4 -198 386 68.3 0.295 0.242 1.85 10.9 test.phys eIoni + 5 -197 386 68.6 0.0179 0.277 1.11 12 test.phys eIoni + 6 -197 386 68.6 0 0.0179 0.00899 12 test.phys eIoni + 7 -197 386 68.6 0 0 0 12 test.phys annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 23 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -197 386 68.6 0.511 0 0 0 test.phys initStep + 1 -262 273 65.1 0.252 0 130 130 test.phys compt + 2 -260 272 68.1 0.234 0 3.79 134 test.phys compt + 3 -246 241 92.4 0.133 0 41.6 176 test.phys compt + 4 -249 272 98 0.111 0 32.1 208 test.phys compt + 5 -370 313 16.2 0.102 0 152 360 test.phys compt + 6 -397 375 12.2 0.0838 0 67.8 428 test.phys compt + 7 -410 369 16.8 0.068 0 15.5 443 test.phys compt + 8 -410 368 16.8 0.0676 0 0.818 444 test.phys compt + 9 -390 345 20.6 0.0662 0 30.2 474 test.phys compt + 10 -340 328 19.4 0.0628 0 52.9 527 test.phys compt + 11 -331 298 12.1 0.0626 0 32.4 560 test.phys compt + 12 -301 242 0 0.0626 0 65.1 625 World Transportation + 13 5.18e+03 -1e+04 -2.2e+03 0.0626 0 1.18e+04 1.24e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 25 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -331 298 12.1 0.000143 0 0 0 test.phys initStep + 1 -331 298 12.1 0 0.000143 1.05e-05 1.05e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 25 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -340 328 19.4 0.00344 0 0 0 test.phys initStep + 1 -340 328 19.4 0 0.00344 0.000574 0.000574 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 25 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -390 345 20.6 0.00133 0 0 0 test.phys initStep + 1 -390 345 20.6 0 0.00133 0.000127 0.000127 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 25 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -410 368 16.8 0.000394 0 0 0 test.phys initStep + 1 -410 368 16.8 0 0.000394 2.53e-05 2.53e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 25 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -410 369 16.8 0.0158 0 0 0 test.phys initStep + 1 -410 369 16.8 0 0.0158 0.00795 0.00795 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 25 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -397 375 12.2 0.0181 0 0 0 test.phys initStep + 1 -397 375 12.2 0 0.0181 0.0101 0.0101 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 25 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -370 313 16.2 0.00893 0 0 0 test.phys initStep + 1 -370 313 16.2 0 0.00893 0.00292 0.00292 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 25 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -249 272 98 0.0223 0 0 0 test.phys initStep + 1 -249 272 98 0 0.0223 0.0146 0.0146 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 25 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -246 241 92.4 0.101 0 0 0 test.phys initStep + 1 -246 240 92.5 0 0.101 0.203 0.203 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 25 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -260 272 68.1 0.0175 0 0 0 test.phys initStep + 1 -260 272 68.1 0 0.0175 0.00954 0.00954 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 25 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -262 273 65.1 0.259 0 0 0 test.phys initStep + 1 -262 272 64.9 0 0.259 0.942 0.942 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 24, Parent ID = 23 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -197 386 68.6 0.511 0 0 0 test.phys initStep + 1 -187 405 69.1 0.267 0 21.8 21.8 test.phys compt + 2 -49.2 341 119 0.213 0 159 181 test.phys compt + 3 212 506 118 0.197 0 309 490 test.phys compt + 4 235 565 114 0.156 0 63.3 553 test.phys compt + 5 78.6 696 117 0.141 0 204 757 test.phys compt + 6 76 706 110 0.14 0 12.5 769 test.phys compt + 7 56.8 800 75.7 0.116 0 103 872 test.phys compt + 8 66.1 809 82.4 0.0941 0 14.1 886 test.phys compt + 9 81 794 78.8 0.0941 0 21.3 908 test.phys Rayl + 10 112 760 59.3 0.0828 0 49.9 957 test.phys compt + 11 109 749 65.2 0.0685 0 13 970 test.phys compt + 12 201 802 132 0.0563 0 125 1.1e+03 test.phys compt + 13 210 701 45.7 0.0476 0 133 1.23e+03 test.phys compt + 14 196 767 37.5 0.0465 0 67.2 1.3e+03 test.phys compt + 15 97.6 867 86 0.043 0 148 1.44e+03 test.phys compt + 16 51.4 879 0 0.043 0 98.4 1.54e+03 World Transportation + 17 -5.31e+03 2.27e+03 -1e+04 0.043 0 1.14e+04 1.3e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 97.6 867 86 0.0035 0 0 0 test.phys initStep + 1 97.6 867 86 0 0.0035 0.000589 0.000589 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 196 767 37.5 0.00106 0 0 0 test.phys initStep + 1 196 767 37.5 0 0.00106 9e-05 9e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 210 701 45.7 0.00874 0 0 0 test.phys initStep + 1 210 701 45.7 0 0.00874 0.00282 0.00282 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 201 802 132 0.0122 0 0 0 test.phys initStep + 1 201 802 132 0 0.0122 0.00502 0.00502 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 109 749 65.2 0.0143 0 0 0 test.phys initStep + 1 109 749 65.2 0 0.0143 0.00665 0.00665 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 112 760 59.3 0.0114 0 0 0 test.phys initStep + 1 112 760 59.3 0 0.0114 0.00445 0.00445 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 66.1 809 82.4 0.0218 0 0 0 test.phys initStep + 1 66.1 809 82.4 0 0.0218 0.014 0.014 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 56.8 800 75.7 0.0237 0 0 0 test.phys initStep + 1 56.8 800 75.7 0 0.0237 0.0163 0.0163 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 76 706 110 0.00146 0 0 0 test.phys initStep + 1 76 706 110 0 0.00146 0.000145 0.000145 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 78.6 696 117 0.0146 0 0 0 test.phys initStep + 1 78.6 696 117 0 0.0146 0.00692 0.00692 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 235 565 114 0.0413 0 0 0 test.phys initStep + 1 235 565 114 0 0.0413 0.0432 0.0432 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 212 506 118 0.0159 0 0 0 test.phys initStep + 1 212 506 118 0 0.0159 0.00802 0.00802 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -49.2 341 119 0.0541 0 0 0 test.phys initStep + 1 -49.2 341 119 0 0.0541 0.0693 0.0693 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 24 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -187 405 69.1 0.244 0 0 0 test.phys initStep + 1 -187 405 69.1 0 0.244 0.856 0.856 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -194 382 70.5 0.119 0 0 0 test.phys initStep + 1 -195 382 70.4 0 0.119 0.268 0.268 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -91.4 234 110 1.07 0 0 0 test.phys initStep + 1 -91.3 235 110 1.01 0.0621 0.685 0.685 test.phys eIoni + 2 -92.3 236 112 0.638 0.374 2.73 3.42 test.phys eIoni + 3 -92.9 236 113 0.31 0.328 2.06 5.47 test.phys eIoni + 4 -93.2 236 114 0.0872 0.222 1.2 6.67 test.phys eIoni + 5 -93.2 236 114 0 0.0872 0.158 6.83 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 108 7 0 0 0 test.phys initStep + 1 -0.133 -0.273 108 5.36 1.63 0.335 0.335 test.phys hIoni + 2 -0.242 -0.484 108 3.73 1.63 0.262 0.597 test.phys hIoni + 3 -0.318 -0.644 108 2.07 1.66 0.196 0.794 test.phys hIoni + 4 -0.361 -0.736 108 0.0851 1.99 0.113 0.906 test.phys hIoni + 5 -0.362 -0.737 108 0 0.0851 0.00203 0.908 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 108 16.8 0 0 0 test.phys initStep + 1 8.46 -3.64 83.6 0 0 26.2 26.2 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = C13, Track ID = 53, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 8.46 -3.64 83.6 1.31 0 0 0 test.phys initStep + 1 8.46 -3.64 83.6 0 1.31 0.00275 0.00275 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 52, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 8.46 -3.64 83.6 0.882 0 0 0 test.phys initStep + 1 63.7 -145 27.1 0.798 0 162 162 test.phys biasWrapper(hadElastic) + 2 59.7 -145 -7.11e-15 0.798 0 27.4 189 World Transportation + 3 -1.38e+03 -236 -1e+04 0.798 0 1.01e+04 1.03e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 54, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 63.7 -145 27.1 0.0842 0 0 0 test.phys initStep + 1 63.7 -145 27.1 0 0.0842 0.000857 0.000857 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 51, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 8.46 -3.64 83.6 6.99 0 0 0 test.phys initStep + 1 8.2 -3.47 83.5 5.45 1.55 0.335 0.335 test.phys hIoni + 2 8 -3.34 83.4 3.84 1.6 0.265 0.601 test.phys hIoni + 3 7.85 -3.23 83.3 2.2 1.64 0.201 0.801 test.phys hIoni + 4 7.75 -3.17 83.2 0.226 1.98 0.122 0.923 test.phys hIoni + 5 7.75 -3.17 83.2 0.00676 0.22 0.00463 0.928 test.phys hIoni + 6 7.75 -3.17 83.2 0 0.00676 0.000509 0.928 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 108 20 0 0 0 test.phys initStep + 1 -0.0957 3.02 108 0 0 3.03 3.03 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = C13, Track ID = 59, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0957 3.02 108 1.96 0 0 0 test.phys initStep + 1 -0.0969 3.02 108 0 1.96 0.00308 0.00308 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 58, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0957 3.02 108 0.112 0 0 0 test.phys initStep + 1 4.97 -1.66 110 0.0837 0 7.15 7.15 test.phys compt + 2 -5.12 31.7 135 0.0769 0 42.9 50.1 test.phys compt + 3 169 281 113 0.0681 0 305 355 test.phys compt + 4 187 273 120 0.0681 0 20.5 375 test.phys Rayl + 5 203 264 130 0.0623 0 20.9 396 test.phys compt + 6 187 258 200 0.0623 0 72.3 469 World Transportation + 7 -2.08e+03 -643 1e+04 0.0623 0 1.01e+04 1.06e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 58 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 203 264 130 0.0058 0 0 0 test.phys initStep + 1 203 264 130 0 0.0058 0.00138 0.00138 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 58 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 169 281 113 0.00883 0 0 0 test.phys initStep + 1 169 281 113 0 0.00883 0.00286 0.00286 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 58 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -5.12 31.7 135 0.00684 0 0 0 test.phys initStep + 1 -5.12 31.7 135 0 0.00684 0.00184 0.00184 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 58 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 4.97 -1.66 110 0.0278 0 0 0 test.phys initStep + 1 4.98 -1.67 110 0 0.0278 0.0216 0.0216 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 57, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0957 3.02 108 0.359 0 0 0 test.phys initStep + 1 -40.5 -87.1 7.48 0.206 0 141 141 test.phys compt + 2 -33.1 -81 0 0.206 0 12.2 153 World Transportation + 3 9.84e+03 8.12e+03 -1e+04 0.206 0 1.63e+04 1.64e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 57 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -40.5 -87.1 7.48 0.153 0 0 0 test.phys initStep + 1 -40.6 -87.3 7.42 0 0.153 0.407 0.407 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 56, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0957 3.02 108 4.32 0 0 0 test.phys initStep + 1 0.0892 3.08 108 2.72 1.6 0.22 0.22 test.phys hIoni + 2 0.217 3.12 108 0.86 1.86 0.152 0.372 test.phys hIoni + 3 0.24 3.13 109 0.0102 0.85 0.0278 0.399 test.phys hIoni + 4 0.24 3.13 109 0 0.0102 0.00061 0.4 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 55, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0957 3.02 108 5.73 0 0 0 test.phys initStep + 1 3.4 -7.2 41.9 5.61 0 67.2 67.2 test.phys biasWrapper(hadElastic) + 2 25.2 -15.5 10.3 0 0 39.3 107 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = C14, Track ID = 69, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 25.2 -15.5 10.3 0.183 0 0 0 test.phys initStep + 1 25.2 -15.5 10.3 0 0.183 0.00153 0.00153 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 68, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 25.2 -15.5 10.3 0.234 0 0 0 test.phys initStep + 1 193 -194 89.3 0.133 0 257 257 test.phys compt + 2 174 -156 0 0.133 0 98.8 356 World Transportation + 3 -1.99e+03 4.05e+03 -1e+04 0.133 0 1.11e+04 1.14e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 68 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 193 -194 89.3 0.101 0 0 0 test.phys initStep + 1 193 -194 89.4 0 0.101 0.204 0.204 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 67, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 25.2 -15.5 10.3 2.81 0 0 0 test.phys initStep + 1 237 309 45.6 1.27 0 389 389 test.phys compt + 2 274 321 54 0.299 0 39.8 429 test.phys compt + 3 274 300 0 0.299 0 58.1 487 World Transportation + 4 314 -3.67e+03 -1e+04 0.299 0 1.08e+04 1.12e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 274 321 54 0.974 0 0 0 test.phys initStep + 1 275 322 54.8 0.525 0.448 2.66 2.66 test.phys eIoni + 2 276 323 55.4 0.248 0.277 1.83 4.49 test.phys eIoni + 3 276 323 55 0 0.248 0.878 5.37 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 237 309 45.6 1.54 0 0 0 test.phys initStep + 1 237 312 45.6 1 0.539 3.62 3.62 test.phys eIoni + 2 237 314 44.2 0.697 0.304 2.71 6.33 test.phys eIoni + 3 238 314 45.4 0.454 0.243 2.17 8.5 test.phys eIoni + 4 237 314 46.3 0.21 0.245 1.66 10.2 test.phys eIoni + 5 237 314 46.4 0 0.21 0.674 10.8 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 66, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 25.2 -15.5 10.3 3 0 0 0 test.phys initStep + 1 25.2 -15.5 10.1 1.23 1.77 0.165 0.165 test.phys hIoni + 2 25.2 -15.5 10 0 1.23 0.0486 0.214 test.phys hIoni + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 65, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 3.4 -7.2 41.9 0.118 0 0 0 test.phys initStep + 1 3.4 -7.2 41.9 0 0.118 0.00103 0.00103 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 100 0 0 0 World initStep + 1 0 0 0 100 0 500 500 test.phys Transportation + 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 100 0 200 700 World Transportation + 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 100 0 0 500 test.phys initStep + 1 0 0 117 0 0 117 617 test.phys biasWrapper(neutronInelastic) + +********************************************************************************************************* +* G4Track Information: Particle = C14, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 117 0.399 0 0 0 test.phys initStep + 1 -0.000881 0.00172 117 0 0.399 0.00203 0.00203 test.phys ionIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 117 4.04 0 0 0 test.phys initStep + 1 44.4 182 73.8 0 0 193 193 test.phys conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 7, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 44.4 182 73.8 2.42 0 0 0 test.phys initStep + 1 45.6 187 73.2 1.35 0.765 4.91 4.91 test.phys eBrem + 2 46.9 188 75.2 0.949 0.402 3.32 8.23 test.phys eIoni + 3 47.8 188 77.1 0.469 0.48 2.63 10.9 test.phys eIoni + 4 47.9 188 77.4 0.43 0.036 0.29 11.2 test.phys eBrem + 5 48.5 188 78.1 0.15 0.28 1.59 12.7 test.phys eIoni + 6 48.7 188 78.1 0 0.15 0.376 13.1 test.phys eIoni + 7 48.7 188 78.1 0 0 0 13.1 test.phys annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.7 188 78.1 0.511 0 0 0 test.phys initStep + 1 45.3 229 83.8 0.437 0 41.7 41.7 test.phys compt + 2 7.79 276 96.2 0.356 0 61.4 103 test.phys compt + 3 -161 298 143 0.277 0 177 280 test.phys compt + 4 -202 376 158 0.145 0 89.3 369 test.phys compt + 5 -224 313 145 0.137 0 67.8 437 test.phys compt + 6 -344 239 102 0.117 0 147 584 test.phys compt + 7 -362 256 80.4 0.109 0 33.3 618 test.phys compt + 8 -470 252 58.6 0.0799 0 110 728 test.phys compt + 9 -396 332 54.5 0.0799 0 109 837 test.phys Rayl + 10 -382 347 51.8 0.0766 0 20.8 858 test.phys compt + 11 -284 353 37.7 0.0683 0 99.6 958 test.phys compt + 12 -226 156 74.4 0.0672 0 209 1.17e+03 test.phys compt + 13 -240 88.7 99.7 0.0583 0 72.8 1.24e+03 test.phys compt + 14 -235 82.2 72.5 0.0557 0 28.4 1.27e+03 test.phys compt + 15 -194 -7.16 36.8 0.0544 0 105 1.37e+03 test.phys compt + 16 -180 -90.5 60.3 0.0507 0 87.7 1.46e+03 test.phys compt + 17 12.2 -124 50.5 0.0488 0 195 1.66e+03 test.phys compt + 18 12.8 -124 51.1 0.0474 0 0.906 1.66e+03 test.phys compt + 19 13.9 -124 51 0.0407 0 1.16 1.66e+03 test.phys compt + 20 -33.2 -105 52.1 0.0367 0 50.6 1.71e+03 test.phys compt + 21 -10.2 -102 0 0.0367 0 57 1.77e+03 World Transportation + 22 4.39e+03 490 -1e+04 0.0367 0 1.09e+04 1.27e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.2 -105 52.1 0.00402 0 0 0 test.phys initStep + 1 -33.2 -105 52.1 0 0.00402 0.000744 0.000744 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 13.9 -124 51 0.00663 0 0 0 test.phys initStep + 1 13.9 -124 51 0 0.00663 0.00174 0.00174 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 12.8 -124 51.1 0.00145 0 0 0 test.phys initStep + 1 12.8 -124 51.1 0 0.00145 0.000145 0.000145 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 12.2 -124 50.5 0.00187 0 0 0 test.phys initStep + 1 12.2 -124 50.5 0 0.00187 0.000213 0.000213 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -180 -90.5 60.3 0.00372 0 0 0 test.phys initStep + 1 -180 -90.5 60.3 0 0.00372 0.000654 0.000654 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -194 -7.16 36.8 0.00128 0 0 0 test.phys initStep + 1 -194 -7.16 36.8 0 0.00128 0.000119 0.000119 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -235 82.2 72.5 0.00263 0 0 0 test.phys initStep + 1 -235 82.2 72.5 0 0.00263 0.000369 0.000369 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -240 88.7 99.7 0.00888 0 0 0 test.phys initStep + 1 -240 88.7 99.7 0 0.00888 0.00289 0.00289 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -226 156 74.4 0.0011 0 0 0 test.phys initStep + 1 -226 156 74.4 0 0.0011 9.56e-05 9.56e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -284 353 37.7 0.00831 0 0 0 test.phys initStep + 1 -284 353 37.7 0 0.00831 0.00258 0.00258 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -382 347 51.8 0.00329 0 0 0 test.phys initStep + 1 -382 347 51.8 0 0.00329 0.000533 0.000533 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -470 252 58.6 0.0286 0 0 0 test.phys initStep + 1 -470 252 58.5 0 0.0286 0.0227 0.0227 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -362 256 80.4 0.00857 0 0 0 test.phys initStep + 1 -362 256 80.4 0 0.00857 0.00272 0.00272 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -344 239 102 0.0195 0 0 0 test.phys initStep + 1 -344 239 102 0 0.0195 0.0115 0.0115 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -224 313 145 0.00803 0 0 0 test.phys initStep + 1 -224 313 145 0 0.00803 0.00243 0.00243 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -202 376 158 0.132 0 0 0 test.phys initStep + 1 -202 376 158 0 0.132 0.32 0.32 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -161 298 143 0.0793 0 0 0 test.phys initStep + 1 -161 298 143 0 0.0793 0.134 0.134 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 7.79 276 96.2 0.0812 0 0 0 test.phys initStep + 1 7.81 276 96.2 0 0.0812 0.14 0.14 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 45.3 229 83.8 0.0736 0 0 0 test.phys initStep + 1 45.4 229 83.8 0 0.0736 0.118 0.118 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.7 188 78.1 0.511 0 0 0 test.phys initStep + 1 57.2 82.1 63.4 0.372 0 107 107 test.phys compt + 2 88.4 42 0 0.372 0 81.2 188 World Transportation + 3 5.02e+03 -6.27e+03 -1e+04 0.372 0 1.28e+04 1.3e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 57.2 82.1 63.4 0.139 0 0 0 test.phys initStep + 1 57.1 81.9 63.5 0 0.139 0.349 0.349 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47.9 188 77.4 0.0028 0 0 0 test.phys initStep + 1 47.9 188 77.4 0 0.000403 0.0307 0.0307 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 9 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 47.9 188 77.4 0.0024 0 0 0 test.phys initStep + 1 47.9 188 77.4 0 0.0024 0.000318 0.000318 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 45.6 187 73.2 0.303 0 0 0 test.phys initStep + 1 96.6 229 47.4 0.205 0 71.2 71.2 test.phys compt + 2 98.1 230 49.8 0.19 0 2.92 74.1 test.phys compt + 3 110 249 64.7 0.141 0 27.2 101 test.phys compt + 4 191 185 96.6 0.106 0 108 210 test.phys compt + 5 129 153 140 0.0759 0 82.4 292 test.phys compt + 6 143 154 132 0 0.000403 16.3 308 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 143 154 132 0.0755 0 0 0 test.phys initStep + 1 143 154 132 0 0.0755 0.123 0.123 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 129 153 140 0.0303 0 0 0 test.phys initStep + 1 129 153 140 0 0.0303 0.0251 0.0251 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 191 185 96.6 0.0348 0 0 0 test.phys initStep + 1 191 185 96.6 0 0.0348 0.032 0.032 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 110 249 64.7 0.0494 0 0 0 test.phys initStep + 1 110 249 64.7 0 0.0494 0.0591 0.0591 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 98.1 230 49.8 0.0143 0 0 0 test.phys initStep + 1 98.1 230 49.8 0 0.0143 0.00663 0.00663 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 96.6 229 47.4 0.0985 0 0 0 test.phys initStep + 1 96.6 229 47.4 0 0.0985 0.195 0.195 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 44.4 182 73.8 0.596 0 0 0 test.phys initStep + 1 44.5 184 73.2 0.27 0.326 1.97 1.97 test.phys eIoni + 2 44.3 184 73 0.0514 0.219 1 2.97 test.phys eIoni + 3 44.3 184 73 0 0.0514 0.0633 3.04 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = proton, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 117 96.2 0 0 0 test.phys initStep + 1 2.06 -4.29 137 85.2 11 20.2 20.2 test.phys hIoni + 2 3.99 -7.29 153 74.2 11 16.3 36.5 test.phys hIoni + 3 5.48 -9.45 165 65 9.17 12.8 49.3 test.phys hIoni + 4 6.79 -11.1 175 57.5 7.55 10.1 59.5 test.phys hIoni + 5 7.84 -12.4 183 50.4 7.12 8.15 67.6 test.phys hIoni + 6 8.75 -13.3 189 44.2 6.21 6.46 74.1 test.phys hIoni + 7 9.52 -14 194 38.7 5.48 5.13 79.2 test.phys hIoni + 8 10.2 -14.5 198 34.3 4.43 4.07 83.3 test.phys hIoni + 9 10.5 -14.8 200 32.4 1.87 1.74 85 World Transportation + 10 1.5e+03 -1.29e+03 1e+04 32.4 2.76e-21 9.99e+03 1.01e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -500 100 0 0 0 World initStep + 1 0 0 0 100 0 500 500 test.phys Transportation + 2 0 0 0 100 0 0 500 test.phys biasWrapper(0) + 3 0 0 200 100 0 200 700 World Transportation + 4 0 0 1e+04 100 0 9.8e+03 1.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = neutron, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 100 0 0 500 test.phys initStep + 1 0 0 75.6 99.8 0 75.6 576 test.phys biasWrapper(hadElastic) + 2 -1.01 -10.1 144 99.8 0.025 69.5 645 test.phys biasWrapper(hadElastic) + 3 -1.63 -21.7 200 99.8 0 56.9 702 World Transportation + 4 -110 -2.05e+03 1e+04 99.8 0 1e+04 1.07e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = N14, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 75.6 0.164 0 0 0 test.phys initStep + 1 0.000112 0.00112 75.6 0 0.164 0.00125 0.00125 test.phys ionIoni Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/biasing/GB02/include/GB02DetectorConstruction.hh b/examples/extended/biasing/GB02/include/GB02DetectorConstruction.hh index 8f08142c77..75878d42af 100644 --- a/examples/extended/biasing/GB02/include/GB02DetectorConstruction.hh +++ b/examples/extended/biasing/GB02/include/GB02DetectorConstruction.hh @@ -32,13 +32,6 @@ #include "G4VUserDetectorConstruction.hh" #include "globals.hh" -class G4Box; -class G4LogicalVolume; -class G4VPhysicalVolume; -class G4Material; -class G4UniformMagField; -class DetectorMessenger; - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class GB02DetectorConstruction : public G4VUserDetectorConstruction diff --git a/examples/extended/biasing/GB02/src/GB02DetectorConstruction.cc b/examples/extended/biasing/GB02/src/GB02DetectorConstruction.cc index b8b5444432..0a1f282f36 100644 --- a/examples/extended/biasing/GB02/src/GB02DetectorConstruction.cc +++ b/examples/extended/biasing/GB02/src/GB02DetectorConstruction.cc @@ -36,12 +36,6 @@ #include "G4LogicalVolume.hh" #include "G4LogicalVolumeStore.hh" #include "G4PVPlacement.hh" -#include "G4UniformMagField.hh" - -#include "G4VisAttributes.hh" -#include "G4Colour.hh" - -#include "G4NistManager.hh" #include "GB02BOptrMultiParticleForceCollision.hh" diff --git a/examples/extended/biasing/GB02/src/GB02PrimaryGeneratorAction.cc b/examples/extended/biasing/GB02/src/GB02PrimaryGeneratorAction.cc index 6913bb0297..cbb9068622 100644 --- a/examples/extended/biasing/GB02/src/GB02PrimaryGeneratorAction.cc +++ b/examples/extended/biasing/GB02/src/GB02PrimaryGeneratorAction.cc @@ -33,7 +33,6 @@ #include "G4ParticleGun.hh" #include "G4ParticleTable.hh" #include "G4ParticleDefinition.hh" -#include "Randomize.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/biasing/GB03/exampleGB03.out b/examples/extended/biasing/GB03/exampleGB03.out index b111b3cc47..8f24f86d67 100644 --- a/examples/extended/biasing/GB03/exampleGB03.out +++ b/examples/extended/biasing/GB03/exampleGB03.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -103,6 +105,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -130,7 +133,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -181,8 +184,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -664,6 +667,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -989,7 +997,7 @@ GB03BOptrGeometryBasedBiasing : starting run with splitting factor = 2, and prob Run terminated. Run Summary Number of events processed : 10 - User=0.120000s Real=0.120379s Sys=0.000000s + User=0.100000s Real=0.097602s Sys=0.000000s Region -- -- appears in world volume This region is in the mass world. @@ -1049,7 +1057,7 @@ GB03BOptrGeometryBasedBiasing : starting run with splitting factor = 2, and prob Run terminated. Run Summary Number of events processed : 10 - User=0.150000s Real=0.157866s Sys=0.000000s + User=0.130000s Real=0.133383s Sys=0.000000s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. @@ -1065,10 +1073,10 @@ G4SDManager deleted. EventManager deleted. Units table cleared. TransportationManager deleted. -Total navigation history collections cleaned: 30 +Total navigation history collections cleaned: 26 G4RNGHelper object is deleted. ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.0433 MB +Pool ID '20G4NavigationLevelRep', size : 0.0375 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB Pool ID '17G4DynamicParticle', size : 0.00481 MB Pool ID '16G4SmartVoxelNode', size : 0.000961 MB @@ -1077,12 +1085,12 @@ Pool ID '7G4Event', size : 0.000961 MB Pool ID '15G4PrimaryVertex', size : 0.000961 MB Pool ID '17G4PrimaryParticle', size : 0.000961 MB Pool ID '15G4HCofThisEvent', size : 0.000961 MB -Pool ID '7G4Track', size : 0.00865 MB -Pool ID '18G4TouchableHistory', size : 0.00385 MB +Pool ID '7G4Track', size : 0.00961 MB +Pool ID '18G4TouchableHistory', size : 0.00288 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB Pool ID '10G4Fragment', size : 0.000961 MB Number of memory pools allocated: 13 of which, static: 0 -Dynamic pools deleted: 13 / Total memory freed: 0.069 MB +Dynamic pools deleted: 13 / Total memory freed: 0.063 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/extended/biasing/GB03/include/GB03DetectorMessenger.hh b/examples/extended/biasing/GB03/include/GB03DetectorMessenger.hh index 9338b4df71..b14c877cd9 100644 --- a/examples/extended/biasing/GB03/include/GB03DetectorMessenger.hh +++ b/examples/extended/biasing/GB03/include/GB03DetectorMessenger.hh @@ -36,7 +36,6 @@ class GB03DetectorConstruction; class G4UIdirectory; class G4UIcmdWithAString; -class G4UIcmdWithABool; class G4UIcmdWithAnInteger; class GB03DetectorMessenger: public G4UImessenger diff --git a/examples/extended/biasing/GB03/src/GB03DetectorMessenger.cc b/examples/extended/biasing/GB03/src/GB03DetectorMessenger.cc index 0b0d40b8d5..88eec88fc7 100644 --- a/examples/extended/biasing/GB03/src/GB03DetectorMessenger.cc +++ b/examples/extended/biasing/GB03/src/GB03DetectorMessenger.cc @@ -32,7 +32,6 @@ #include "GB03DetectorConstruction.hh" #include "G4UIdirectory.hh" #include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithABool.hh" #include "G4UIcmdWithAnInteger.hh" #include "G4Material.hh" diff --git a/examples/extended/biasing/GB04/exampleGB04.out b/examples/extended/biasing/GB04/exampleGB04.out index 76729470bc..a69ea333f6 100644 --- a/examples/extended/biasing/GB04/exampleGB04.out +++ b/examples/extended/biasing/GB04/exampleGB04.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -45,6 +45,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -97,6 +99,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -124,7 +127,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -175,8 +178,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -658,6 +661,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -986,7 +994,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -0.395 -0.429 9.45 0.0228 0 0 0 test.phys initStep - 1 -0.398 -0.433 9.52 0 0.00156 0.0694 0.0694 test.phys phot + 1 -0.398 -0.433 9.52 0 0.00156 0.0696 0.0696 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 8 @@ -1048,7 +1056,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -0.0359 -0.0971 3.5 0.148 0 0 0 test.phys initStep - 1 -0.0602 -0.162 5.34 0.137 0 1.84 1.84 test.phys compt + 1 -0.0602 -0.162 5.35 0.137 0 1.84 1.84 test.phys compt 2 -1.05 3.77 10 0.137 0 6.17 8.02 World Transportation 3 -2.13e+03 8.44e+03 1e+04 0.137 0 1.32e+04 1.33e+04 OutOfWorld Transportation @@ -1057,8 +1065,8 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0602 -0.162 5.34 0.0106 0 0 0 test.phys initStep - 1 -0.0601 -0.162 5.34 0 0.0106 0.00146 0.00146 test.phys eIoni + 0 -0.0602 -0.162 5.35 0.0106 0 0 0 test.phys initStep + 1 -0.0601 -0.162 5.35 0 0.0106 0.00146 0.00146 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 @@ -1093,7 +1101,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -0.138 -0.19 7.81 0.0261 0 0 0 test.phys initStep - 1 -0.151 -0.197 8.07 0 0.00156 0.268 0.268 test.phys phot + 1 -0.151 -0.197 8.07 0 0.00156 0.267 0.267 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 @@ -1212,7 +1220,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -0.00809 -0.00703 0.997 0.0363 0 0 0 test.phys initStep - 1 -0.00715 -0.00725 1.16 0 0.00156 0.161 0.161 test.phys phot + 1 -0.00715 -0.00725 1.16 0 0.00156 0.16 0.16 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 @@ -1249,15 +1257,15 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -0.00188 -0.0227 1.65 0.0345 0 0 0 test.phys initStep - 1 0.0306 -0.0759 6.85 0 0.00156 5.2 5.2 test.phys phot + 1 0.0306 -0.0759 6.86 0 0.00156 5.21 5.21 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0306 -0.0759 6.85 0.033 0 0 0 test.phys initStep - 1 0.0309 -0.0729 6.85 0 0.033 0.0103 0.0103 test.phys eIoni + 0 0.0306 -0.0759 6.86 0.033 0 0 0 test.phys initStep + 1 0.0309 -0.0729 6.86 0 0.033 0.0103 0.0103 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1293,15 +1301,15 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -0.000157 -0.00016 0.0757 0.0269 0 0 0 test.phys initStep - 1 0.0294 -0.0226 4.74 0 0.00156 4.66 4.66 test.phys phot + 1 0.0294 -0.0225 4.73 0 0.00156 4.65 4.65 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0294 -0.0226 4.74 0.0253 0 0 0 test.phys initStep - 1 0.0302 -0.0238 4.74 0 0.0253 0.00655 0.00655 test.phys eIoni + 0 0.0294 -0.0225 4.73 0.0253 0 0 0 test.phys initStep + 1 0.0302 -0.0238 4.73 0 0.0253 0.00655 0.00655 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1331,7 +1339,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0.77 0.0262 9.23 0.0147 0 0 0 test.phys initStep - 1 0.832 0.0511 9.38 0 0.00156 0.163 0.163 test.phys phot + 1 0.832 0.0511 9.38 0 0.00156 0.164 0.164 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 @@ -1347,9 +1355,17 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0.108 -0.0965 7.21 0.0419 0 0 0 test.phys initStep - 1 0.27 -0.128 7.7 0.0419 0 0.518 0.518 test.phys Rayl - 2 1.01 -0.274 10 0.0419 0 2.42 2.94 World Transportation - 3 3.24e+03 -634 1e+04 0.0419 0 1.05e+04 1.05e+04 OutOfWorld Transportation + 1 0.271 -0.128 7.7 0.036 0 0.519 0.519 test.phys compt + 2 -3.58 0.612 8.88e-16 0.036 0 8.64 9.16 World Transportation + 3 -5e+03 962 -1e+04 0.036 0 1.12e+04 1.12e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.271 -0.128 7.7 0.00588 0 0 0 test.phys initStep + 1 0.271 -0.128 7.7 0 0.00588 0.000544 0.000544 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1358,22 +1374,32 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 -1e+03 100 0 0 0 World initStep 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 -0.0138 0.013 1.46 96 0.663 1.46 1e+03 test.phys biasWrapper(eBrem) - 3 -0.247 0.1 10 92.5 3.53 8.55 1.01e+03 World Transportation - 4 -439 1.24e+03 1e+04 92.5 3.68e-22 1.01e+04 1.11e+04 OutOfWorld Transportation + 2 0.13 0.121 6.48 96.4 2.9 6.49 1.01e+03 test.phys biasWrapper(eBrem) + 3 0.123 0.118 6.72 96.2 0.0626 0.239 1.01e+03 test.phys biasWrapper(eBrem) + 4 0.00589 0.0736 10 95.1 1.14 3.28 1.01e+03 World Transportation + 5 -365 -529 1e+04 95.1 3.67e-22 1e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.123 0.118 6.72 0.0527 0 0 0 test.phys initStep + 1 -0.000227 0.0835 10 0.0527 0 3.28 3.28 World Transportation + 2 -375 -104 1e+04 0.0527 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0138 0.013 1.46 3.35 0 0 0 test.phys initStep - 1 -0.281 -0.0247 10 3.35 0 8.54 8.54 World Transportation - 2 -313 -44.1 1e+04 3.35 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.13 0.121 6.48 0.736 0 0 0 test.phys initStep + 1 -0.00641 0.0403 10 0.736 0 3.52 3.52 World Transportation + 2 -388 -230 1e+04 0.736 0 1e+04 1e+04 OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.003378s Sys=0.000000s + User=0.010000s Real=0.003381s Sys=0.000000s Region -- -- appears in world volume This region is in the mass world. @@ -1416,1109 +1442,1274 @@ BremSplittingOperator : starting run with brem. splitting factor = 10, biasing o Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 -1e+03 100 0 0 0 World initStep 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 0.0267 0.0941 4.35 93.6 1.53 4.36 1e+03 test.phys biasWrapper(eBrem) - 3 0.0617 0.136 5.75 92.6 0.487 1.39 1.01e+03 test.phys eIoni - 4 0.216 0.186 10 91 1.6 4.26 1.01e+03 World Transportation - 5 796 339 1e+04 91 3.66e-22 1e+04 1.1e+04 OutOfWorld Transportation + 2 0 0 10 96.1 3.87 10 1.01e+03 World Transportation + 3 -488 -528 1e+04 96.1 3.67e-22 1e+04 1.1e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0617 0.136 5.75 0.577 0 0 0 test.phys initStep - 1 -0.066 0.417 5.98 0.101 0.475 1.02 1.02 test.phys eIoni - 2 -0.0468 0.432 5.98 0 0.101 0.071 1.09 test.phys eIoni + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 0.0155 0.0827 3.94 98.5 1.5 3.94 1e+03 test.phys biasWrapper(eBrem) + 3 0.114 0.201 10 96.4 2.13 6.07 1.01e+03 World Transportation + 4 39.8 307 1e+04 96.4 3.66e-22 9.99e+03 1.1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0267 0.0941 4.35 17.9 0 0 0 test.phys initStep - 1 0.115 0.354 10 17.9 0 5.65 5.65 World Transportation - 2 157 460 1e+04 17.9 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0155 0.0827 3.94 0.639 0 0 0 test.phys initStep + 1 0.067 0.191 9.87 0.575 0 5.94 5.94 test.phys compt + 2 0.0118 0.185 10 0.575 0 0.138 6.08 World Transportation + 3 -4.37e+03 -467 1e+04 0.575 0 1.09e+04 1.09e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.067 0.191 9.87 0.0641 0 0 0 test.phys initStep + 1 0.0768 0.193 9.88 0 0.0641 0.0326 0.0326 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0267 0.0941 4.35 0.0103 0 0 0 test.phys initStep - 1 0.0278 0.0966 4.42 0 0.00156 0.0652 0.0652 test.phys phot + 0 0.0155 0.0827 3.94 0.086 0 0 0 test.phys initStep + 1 0.0506 0.127 5.86 0.0839 0 1.92 1.92 test.phys compt + 2 0.343 -2.27 10 0.0839 0 4.8 6.72 World Transportation + 3 706 -5.79e+03 1e+04 0.0839 0 1.16e+04 1.16e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 13, Parent ID = 10 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0278 0.0966 4.42 0.0087 0 0 0 test.phys initStep - 1 0.0277 0.0969 4.42 0 0.0087 0.00105 0.00105 test.phys eIoni + 0 0.0506 0.127 5.86 0.00208 0 0 0 test.phys initStep + 1 0.0506 0.127 5.86 0 0.00208 0.000105 0.000105 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0267 0.0941 4.35 0.0531 0 0 0 test.phys initStep - 1 0.0816 0.371 10 0.0531 0 5.65 5.65 World Transportation - 2 97.1 490 1e+04 0.0531 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0155 0.0827 3.94 0.0396 0 0 0 test.phys initStep + 1 0.113 0.228 10 0.0396 0 6.07 6.07 World Transportation + 2 160 239 1e+04 0.0396 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0267 0.0941 4.35 0.18 0 0 0 test.phys initStep - 1 0.0937 0.383 10 0.18 0 5.65 5.65 World Transportation - 2 119 511 1e+04 0.18 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0155 0.0827 3.94 0.0747 0 0 0 test.phys initStep + 1 0.119 0.26 10 0.0747 0 6.07 6.07 World Transportation + 2 171 293 1e+04 0.0747 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0267 0.0941 4.35 1.53 0 0 0 test.phys initStep - 1 0.135 0.277 10 1.53 0 5.65 5.65 World Transportation - 2 192 323 1e+04 1.53 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0267 0.0941 4.35 4.38 0 0 0 test.phys initStep - 1 0.048 0.35 10 4.38 0 5.65 5.65 World Transportation - 2 37.8 453 1e+04 4.38 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0267 0.0941 4.35 1.98 0 0 0 test.phys initStep - 1 0.118 0.316 10 1.98 0 5.65 5.65 World Transportation - 2 161 393 1e+04 1.98 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0267 0.0941 4.35 0.204 0 0 0 test.phys initStep - 1 0.105 0.327 10 0.204 0 5.65 5.65 World Transportation - 2 138 412 1e+04 0.204 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0267 0.0941 4.35 0.0288 0 0 0 test.phys initStep - 1 0.0927 0.349 10 0.0288 0 5.65 5.65 World Transportation - 2 117 451 1e+04 0.0288 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0267 0.0941 4.35 4.84 0 0 0 test.phys initStep - 1 0.0835 0.364 10 4.84 0 5.65 5.65 World Transportation - 2 101 477 1e+04 4.84 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 0 0 10 96 4 10 1.01e+03 World Transportation - 3 90.2 -805 1e+04 96 3.67e-22 1e+04 1.1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 -0.172 -0.0576 6.57 95 2.57 6.57 1.01e+03 test.phys biasWrapper(eBrem) - 3 -0.274 -0.0818 10 93.7 1.3 3.44 1.01e+03 World Transportation - 4 -1.24e+03 157 1e+04 93.7 3.68e-22 1.01e+04 1.11e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.172 -0.0576 6.57 2.11 0 0 0 test.phys initStep - 1 -0.289 -0.0837 10 2.11 0 3.43 3.43 World Transportation - 2 -341 -76 1e+04 2.11 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.172 -0.0576 6.57 0.0106 0 0 0 test.phys initStep - 1 -0.177 -0.0582 6.73 0 0.000121 0.167 0.167 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.177 -0.0582 6.73 0.0105 0 0 0 test.phys initStep - 1 -0.177 -0.0583 6.74 0 0.0105 0.00144 0.00144 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.172 -0.0576 6.57 35.7 0 0 0 test.phys initStep - 1 -0.275 -0.0627 10 35.7 0 3.43 3.43 World Transportation - 2 -300 -14.8 1e+04 35.7 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.172 -0.0576 6.57 0.0166 0 0 0 test.phys initStep - 1 -0.177 -0.0603 6.79 0 0.00156 0.223 0.223 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.177 -0.0603 6.79 0.0151 0 0 0 test.phys initStep - 1 -0.178 -0.0608 6.79 0 0.0151 0.00267 0.00267 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.172 -0.0576 6.57 11.1 0 0 0 test.phys initStep - 1 -0.277 -0.0846 10 11.1 0 3.43 3.43 World Transportation - 2 -305 -78.5 1e+04 11.1 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.172 -0.0576 6.57 0.799 0 0 0 test.phys initStep - 1 -0.278 -0.0817 10 0.799 0 3.43 3.43 World Transportation - 2 -309 -70 1e+04 0.799 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.172 -0.0576 6.57 0.342 0 0 0 test.phys initStep - 1 -0.258 -0.0441 10 0.342 0 3.43 3.43 World Transportation - 2 -251 39.4 1e+04 0.342 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.172 -0.0576 6.57 4.94 0 0 0 test.phys initStep - 1 -0.252 -0.0741 10 4.94 0 3.43 3.43 World Transportation - 2 -233 -47.8 1e+04 4.94 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.172 -0.0576 6.57 0.161 0 0 0 test.phys initStep - 1 -0.294 -0.0572 10 0.161 0 3.43 3.43 World Transportation - 2 -355 1.35 1e+04 0.161 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.172 -0.0576 6.57 2.47 0 0 0 test.phys initStep - 1 -0.271 -0.0598 10 2.47 0 3.43 3.43 World Transportation - 2 -290 -6.4 1e+04 2.47 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 0.0667 0.0653 4.22 86.5 1.78 4.22 1e+03 test.phys biasWrapper(eBrem) - 3 0.0918 0.0633 5.35 82.1 0.382 1.13 1.01e+03 test.phys eIoni - 4 0.134 -0.0234 10 80.3 1.85 4.65 1.01e+03 World Transportation - 5 -52.6 198 1e+04 80.3 3.61e-22 9.99e+03 1.1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0918 0.0633 5.35 4.01 0 0 0 test.phys initStep - 1 0.601 0.219 7.68 3.12 0.887 2.51 2.51 test.phys msc - 2 0.675 0.266 8.79 2.39 0.351 1.15 3.66 test.phys biasWrapper(eBrem) - 3 0.895 0.484 10 1.85 0.544 1.44 5.1 World Transportation - 4 -302 -2.48e+03 1e+04 1.85 2.74e-22 1.03e+04 1.03e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 12 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.675 0.266 8.79 0.378 0 0 0 test.phys initStep - 1 0.636 0.726 10 0.378 0 1.29 1.29 World Transportation - 2 -316 3.81e+03 1e+04 0.378 0 1.07e+04 1.07e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0667 0.0653 4.22 3.03 0 0 0 test.phys initStep - 1 0.0888 0.0715 6.03 1.3 0 1.81 1.81 test.phys compt - 2 2.9 -1.63 10 1.3 0 5.16 6.97 World Transportation - 3 7.08e+03 -4.29e+03 1e+04 1.3 0 1.3e+04 1.3e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 11 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0888 0.0715 6.03 1.73 0 0 0 test.phys initStep - 1 -0.252 0.295 7.06 1.06 0.66 1.4 1.4 test.phys biasWrapper(eBrem) - 2 -0.644 0.0149 7.78 0.192 0.865 1.68 3.09 test.phys eIoni - 3 -0.604 -0.0409 7.8 0 0.192 0.202 3.29 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 14 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.252 0.295 7.06 0.0109 0 0 0 test.phys initStep - 1 -0.287 0.281 7.11 0 0.00156 0.0685 0.0685 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 15 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.287 0.281 7.11 0.00938 0 0 0 test.phys initStep - 1 -0.287 0.282 7.11 0 0.00938 0.00119 0.00119 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0667 0.0653 4.22 0.0288 0 0 0 test.phys initStep - 1 0.0964 0.0646 5.38 0 0.000121 1.16 1.16 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0964 0.0646 5.38 0.0286 0 0 0 test.phys initStep - 1 0.0948 0.0628 5.38 0 0.0286 0.00811 0.00811 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0667 0.0653 4.22 17.4 0 0 0 test.phys initStep - 1 0.232 0.184 10 17.4 0 5.78 5.78 World Transportation - 2 286 205 1e+04 17.4 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0667 0.0653 4.22 5.72 0 0 0 test.phys initStep - 1 -0.00916 0.184 10 5.72 0 5.78 5.78 World Transportation - 2 -131 206 1e+04 5.72 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0667 0.0653 4.22 2.79 0 0 0 test.phys initStep - 1 0.141 0.116 10 2.79 0 5.78 5.78 World Transportation - 2 128 87.5 1e+04 2.79 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0667 0.0653 4.22 0.098 0 0 0 test.phys initStep - 1 0.159 0.0599 10 0.098 0 5.78 5.78 World Transportation - 2 159 -9.3 1e+04 0.098 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0667 0.0653 4.22 0.0132 0 0 0 test.phys initStep - 1 0.0695 0.0644 4.42 0 0.00156 0.196 0.196 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0695 0.0644 4.42 0.0116 0 0 0 test.phys initStep - 1 0.0694 0.0639 4.42 0 0.0116 0.00171 0.00171 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0667 0.0653 4.22 9.17 0 0 0 test.phys initStep - 1 0.126 0.0981 10 9.17 0 5.78 5.78 World Transportation - 2 102 56.7 1e+04 9.17 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0667 0.0653 4.22 0.0269 0 0 0 test.phys initStep - 1 0.071 0.0649 4.45 0 0.00156 0.229 0.229 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.071 0.0649 4.45 0.0253 0 0 0 test.phys initStep - 1 0.072 0.0634 4.45 0 0.0253 0.00655 0.00655 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0667 0.0653 4.22 11.7 0 0 0 test.phys initStep - 1 0.119 0.0422 10 11.7 0 5.78 5.78 World Transportation - 2 90.6 -39.8 1e+04 11.7 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 0.0157 -0.156 5.96 87.9 2.26 5.96 1.01e+03 test.phys biasWrapper(eBrem) - 3 0.0261 -0.184 6.53 87 0.196 0.574 1.01e+03 test.phys eIoni - 4 0.0306 -0.201 6.86 86.6 0.0988 0.332 1.01e+03 test.phys biasWrapper(eBrem) - 5 0.0871 -0.347 9.96 85.4 1.22 3.11 1.01e+03 test.phys biasWrapper(eBrem) - 6 0.0881 -0.349 10 85.3 0.0158 0.0377 1.01e+03 World Transportation - 7 309 -570 1e+04 85.3 3.63e-22 1e+04 1.1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0871 -0.347 9.96 0.0404 0 0 0 test.phys initStep - 1 0.088 -0.35 10 0.0404 0 0.0377 0.0377 World Transportation - 2 233 -620 1e+04 0.0404 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0306 -0.201 6.86 0.332 0 0 0 test.phys initStep - 1 0.105 -0.403 10 0.332 0 3.15 3.15 World Transportation - 2 238 -644 1e+04 0.332 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0261 -0.184 6.53 0.663 0 0 0 test.phys initStep - 1 0.289 -0.46 6.81 0.0199 0.643 1.19 1.19 test.phys eIoni - 2 0.289 -0.461 6.81 0 0.0199 0.00433 1.2 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0157 -0.156 5.96 0.104 0 0 0 test.phys initStep - 1 0.107 -0.459 10 0.104 0 4.06 4.06 World Transportation - 2 227 -749 1e+04 0.104 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0157 -0.156 5.96 40.9 0 0 0 test.phys initStep - 1 0.05 -0.343 10 40.9 0 4.05 4.05 World Transportation - 2 84.6 -462 1e+04 40.9 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0157 -0.156 5.96 0.0663 0 0 0 test.phys initStep - 1 0.0409 -0.229 7.57 0.0555 0 1.62 1.62 test.phys compt - 2 8.57 -8.96 0 0.0555 0 14.4 16 World Transportation - 3 9.77e+03 -1e+04 -8.66e+03 0.0555 0 1.64e+04 1.65e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 9 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0409 -0.229 7.57 0.0107 0 0 0 test.phys initStep - 1 0.0407 -0.229 7.57 0 0.0107 0.00149 0.00149 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0157 -0.156 5.96 28.1 0 0 0 test.phys initStep - 1 0.0302 -0.21 7.2 22.3 0 1.25 1.25 test.phys compt - 2 -0.198 -0.409 10 22.3 0 2.81 4.06 World Transportation - 3 -816 -713 1e+04 22.3 0 1e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0302 -0.21 7.2 5.76 0 0 0 test.phys initStep - 1 1.05 -0.0352 10 4.61 1.14 3.22 3.22 World Transportation - 2 5.73e+03 6.29e+03 1e+04 4.61 3.67e-22 1.31e+04 1.31e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0157 -0.156 5.96 0.0108 0 0 0 test.phys initStep - 1 0.0172 -0.158 6.02 0 0.00156 0.0633 0.0633 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0172 -0.158 6.02 0.00924 0 0 0 test.phys initStep - 1 0.017 -0.158 6.02 0 0.00924 0.00116 0.00116 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0157 -0.156 5.96 7.64 0 0 0 test.phys initStep - 1 0.0512 -0.361 10 7.64 0 4.05 4.05 World Transportation - 2 87.6 -508 1e+04 7.64 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0157 -0.156 5.96 0.0248 0 0 0 test.phys initStep - 1 0.0153 -0.155 6.53 0 0.00156 0.574 0.574 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0153 -0.155 6.53 0.0232 0 0 0 test.phys initStep - 1 0.0135 -0.156 6.53 0 0.0232 0.00562 0.00562 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0157 -0.156 5.96 3.15 0 0 0 test.phys initStep - 1 0.0507 -0.324 10 3.15 0 4.05 4.05 World Transportation - 2 86.6 -417 1e+04 3.15 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0157 -0.156 5.96 36 0 0 0 test.phys initStep - 1 0.0255 -0.351 10 36 0 4.05 4.05 World Transportation - 2 24.1 -483 1e+04 36 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0157 -0.156 5.96 9.84 0 0 0 test.phys initStep - 1 0.0615 -0.319 10 9.84 0 4.05 4.05 World Transportation - 2 113 -404 1e+04 9.84 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 -0.0211 -0.0146 1.78 98.3 0.912 1.78 1e+03 test.phys eIoni - 3 -0.00297 -0.114 4.85 91.9 1.14 3.06 1e+03 test.phys biasWrapper(eBrem) - 4 -0.01 -0.389 10 89.7 2.17 5.17 1.01e+03 World Transportation - 5 101 -573 1e+04 89.7 3.65e-22 1e+04 1.1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00297 -0.114 4.85 0.957 0 0 0 test.phys initStep - 1 0.0073 -0.417 10 0.957 0 5.16 5.16 World Transportation - 2 19.9 -588 1e+04 0.957 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00297 -0.114 4.85 2.98 0 0 0 test.phys initStep - 1 0.0389 -0.419 10 2.98 0 5.16 5.16 World Transportation - 2 81.2 -593 1e+04 2.98 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00297 -0.114 4.85 0.0728 0 0 0 test.phys initStep - 1 -0.0214 -0.37 10 0.0728 0 5.16 5.16 World Transportation - 2 -35.7 -497 1e+04 0.0728 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00297 -0.114 4.85 0.209 0 0 0 test.phys initStep - 1 -0.0217 -0.381 10 0.209 0 5.16 5.16 World Transportation - 2 -36.3 -518 1e+04 0.209 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00297 -0.114 4.85 1.44 0 0 0 test.phys initStep - 1 -0.0126 -0.403 10 1.44 0 5.16 5.16 World Transportation - 2 -18.7 -561 1e+04 1.44 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00297 -0.114 4.85 27.6 0 0 0 test.phys initStep - 1 -0.021 -0.421 10 27.6 0 5.16 5.16 World Transportation - 2 -34.9 -596 1e+04 27.6 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00297 -0.114 4.85 0.0582 0 0 0 test.phys initStep - 1 -0.00892 -0.387 10 0.0582 0 5.16 5.16 World Transportation - 2 -11.5 -531 1e+04 0.0582 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00297 -0.114 4.85 3.64 0 0 0 test.phys initStep - 1 -0.0411 -0.348 10 3.64 0 5.16 5.16 World Transportation - 2 -73.9 -454 1e+04 3.64 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00297 -0.114 4.85 0.0524 0 0 0 test.phys initStep - 1 0.226 -0.408 10 0.0524 0 5.17 5.17 World Transportation - 2 444 -571 1e+04 0.0524 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00297 -0.114 4.85 5.26 0 0 0 test.phys initStep - 1 -0.0161 -0.381 10 5.26 0 5.16 5.16 World Transportation - 2 -25.4 -518 1e+04 5.26 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0211 -0.0146 1.78 0.793 0 0 0 test.phys initStep - 1 -0.37 0.271 2.19 0.208 0.585 1.39 1.39 test.phys eIoni - 2 -0.414 0.299 2.25 0 0.208 0.229 1.62 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 0 0 10 96.4 3.56 10 1.01e+03 World Transportation - 3 145 -268 1e+04 96.4 3.66e-22 9.99e+03 1.1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 -0.0238 -0.156 5.98 95.5 2.32 5.99 1.01e+03 test.phys biasWrapper(eBrem) - 3 -0.0138 -0.214 10 93.9 1.55 4.02 1.01e+03 World Transportation - 4 81.3 -423 1e+04 93.9 3.66e-22 1e+04 1.1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0238 -0.156 5.98 0.0119 0 0 0 test.phys initStep - 1 -0.0239 -0.156 6.06 0 0.00156 0.0749 0.0749 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 11 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0239 -0.156 6.06 0.0103 0 0 0 test.phys initStep - 1 -0.024 -0.157 6.06 0 0.0103 0.00139 0.00139 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0238 -0.156 5.98 4.01 0 0 0 test.phys initStep - 1 0.0541 -0.258 10 4.01 0 4.02 4.02 World Transportation - 2 194 -253 1e+04 4.01 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0238 -0.156 5.98 0.0163 0 0 0 test.phys initStep - 1 -0.0205 -0.169 6.43 0 0.00156 0.446 0.446 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 9 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0205 -0.169 6.43 0.0147 0 0 0 test.phys initStep - 1 -0.0206 -0.168 6.43 0 0.0147 0.00256 0.00256 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0238 -0.156 5.98 0.117 0 0 0 test.phys initStep - 1 -0.0191 -0.205 10 0.117 0 4.02 4.02 World Transportation - 2 11.6 -123 1e+04 0.117 0 9.99e+03 9.99e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0238 -0.156 5.98 0.428 0 0 0 test.phys initStep - 1 -0.0367 -0.212 10 0.428 0 4.02 4.02 World Transportation - 2 -32.3 -140 1e+04 0.428 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0238 -0.156 5.98 0.0484 0 0 0 test.phys initStep - 1 -0.0244 -0.219 10 0.0484 0 4.02 4.02 World Transportation - 2 -1.5 -157 1e+04 0.0484 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0238 -0.156 5.98 0.0386 0 0 0 test.phys initStep - 1 0.0159 -0.198 8.55 0.0386 0 2.57 2.57 test.phys Rayl - 2 0.0263 -0.492 10 0.0386 0 1.48 4.05 World Transportation - 3 71.5 -2.02e+03 1e+04 0.0386 0 1.02e+04 1.02e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0238 -0.156 5.98 0.156 0 0 0 test.phys initStep - 1 -0.0223 -0.228 10 0.156 0 4.02 4.02 World Transportation - 2 3.71 -180 1e+04 0.156 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0238 -0.156 5.98 0.0442 0 0 0 test.phys initStep - 1 -0.0235 -0.188 8.77 0 0.00156 2.79 2.79 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0235 -0.188 8.77 0.0427 0 0 0 test.phys initStep - 1 -0.0193 -0.191 8.77 0 0.0427 0.0162 0.0162 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0238 -0.156 5.98 2.2 0 0 0 test.phys initStep - 1 -0.0194 -0.217 10 2.2 0 4.02 4.02 World Transportation - 2 10.9 -152 1e+04 2.2 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 -0.00116 -0.0228 1.65 98.9 0.739 1.65 1e+03 test.phys biasWrapper(eBrem) - 3 0.103 -0.342 10 95.3 3.59 8.36 1.01e+03 World Transportation - 4 102 -345 1e+04 95.3 3.66e-22 1e+04 1.1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00116 -0.0228 1.65 0.0257 0 0 0 test.phys initStep - 1 0.0174 -0.0896 3.07 0.0257 0 1.43 1.43 test.phys Rayl - 2 -2.03 0.441 1.98 0 0.00156 2.39 3.81 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 11 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.03 0.441 1.98 0.0241 0 0 0 test.phys initStep - 1 -2.04 0.442 1.98 0 0.0241 0.00603 0.00603 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00116 -0.0228 1.65 0.443 0 0 0 test.phys initStep - 1 0.159 -0.359 10 0.443 0 8.36 8.36 World Transportation - 2 191 -403 1e+04 0.443 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00116 -0.0228 1.65 6.86 0 0 0 test.phys initStep - 1 0.107 -0.247 10 6.86 0 8.35 8.35 World Transportation - 2 130 -268 1e+04 6.86 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00116 -0.0228 1.65 0.00595 0 0 0 test.phys initStep - 1 -0.00117 -0.0228 1.65 0 0.00156 0.00139 0.00139 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00117 -0.0228 1.65 0.00439 0 0 0 test.phys initStep - 1 -0.00125 -0.0229 1.65 0 0.00439 0.000337 0.000337 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00116 -0.0228 1.65 21 0 0 0 test.phys initStep - 1 0.0942 -0.57 10 21 0 8.37 8.37 World Transportation - 2 114 -656 1e+04 21 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00116 -0.0228 1.65 0.00621 0 0 0 test.phys initStep - 1 -0.00013 -0.0259 1.73 0.00621 0 0.0794 0.0794 test.phys Rayl - 2 0.0144 -0.0476 1.77 0 0.00156 0.045 0.124 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0144 -0.0476 1.77 0.00464 0 0 0 test.phys initStep - 1 0.0143 -0.0477 1.77 0 0.00464 0.00037 0.00037 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00116 -0.0228 1.65 0.0705 0 0 0 test.phys initStep - 1 0.131 -0.282 10 0.0705 0 8.35 8.35 World Transportation - 2 158 -310 1e+04 0.0705 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00116 -0.0228 1.65 1.33 0 0 0 test.phys initStep - 1 0.0275 -0.266 10 1.33 0 8.35 8.35 World Transportation - 2 34.3 -291 1e+04 1.33 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00116 -0.0228 1.65 0.0534 0 0 0 test.phys initStep - 1 0.0838 -0.383 10 0.0534 0 8.36 8.36 World Transportation - 2 102 -431 1e+04 0.0534 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00116 -0.0228 1.65 0.33 0 0 0 test.phys initStep - 1 0.0189 -0.0739 2.87 0.228 0 1.22 1.22 test.phys compt - 2 -15.5 12.2 10 0.228 0 21 22.2 World Transportation - 3 -1e+04 7.87e+03 4.59e+03 0.228 0 1.35e+04 1.35e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0189 -0.0739 2.87 0.103 0 0 0 test.phys initStep - 1 0.0315 -0.0845 2.89 0 0.103 0.0726 0.0726 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 0.0579 -0.123 5.42 97.6 2.4 5.43 1.01e+03 test.phys biasWrapper(eBrem) - 3 0.115 -0.361 9.2 92 1.44 3.78 1.01e+03 test.phys biasWrapper(eBrem) - 4 0.136 -0.424 10 91.7 0.314 0.808 1.01e+03 World Transportation - 5 3.9 -928 1e+04 91.7 3.66e-22 1e+04 1.1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.115 -0.361 9.2 4.11 0 0 0 test.phys initStep - 1 0.138 -0.424 10 4.11 0 0.808 0.808 World Transportation - 2 286 -781 1e+04 4.11 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0579 -0.123 5.42 53 0 0 0 test.phys initStep - 1 0.138 -0.314 10 53 0 4.58 4.58 World Transportation - 2 174 -417 1e+04 53 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0579 -0.123 5.42 87.4 0 0 0 test.phys initStep - 1 0.154 -0.302 10 87.4 0 4.58 4.58 World Transportation - 2 210 -391 1e+04 87.4 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0579 -0.123 5.42 0.0156 0 0 0 test.phys initStep - 1 0.0605 -0.126 5.51 0 0.00156 0.0869 0.0869 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 9 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0605 -0.126 5.51 0.014 0 0 0 test.phys initStep - 1 0.0608 -0.127 5.51 0 0.014 0.00236 0.00236 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0579 -0.123 5.42 2.26 0 0 0 test.phys initStep - 1 0.161 -0.321 10 2.26 0 4.58 4.58 World Transportation - 2 225 -432 1e+04 2.26 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0579 -0.123 5.42 0.386 0 0 0 test.phys initStep - 1 0.13 -0.265 9.09 0.366 0 3.68 3.68 test.phys compt - 2 -0.176 -0.129 10 0.366 0 0.965 4.64 World Transportation - 3 -3.37e+03 1.5e+03 1e+04 0.366 0 1.06e+04 1.07e+04 OutOfWorld Transportation + 0 0.0155 0.0827 3.94 0.0097 0 0 0 test.phys initStep + 1 0.017 0.0906 4.27 0 0.00156 0.33 0.33 test.phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 14, Parent ID = 7 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.13 -0.265 9.09 0.0205 0 0 0 test.phys initStep - 1 0.131 -0.265 9.09 0 0.0205 0.00455 0.00455 test.phys eIoni + 0 0.017 0.0906 4.27 0.00813 0 0 0 test.phys initStep + 1 0.0173 0.0907 4.27 0 0.00813 0.000933 0.000933 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0579 -0.123 5.42 2.11 0 0 0 test.phys initStep - 1 0.145 -0.298 10 2.11 0 4.58 4.58 World Transportation - 2 189 -382 1e+04 2.11 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0155 0.0827 3.94 2.84 0 0 0 test.phys initStep + 1 0.126 0.274 10 2.84 0 6.07 6.07 World Transportation + 2 182 315 1e+04 2.84 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0579 -0.123 5.42 21.2 0 0 0 test.phys initStep - 1 0.207 -0.384 10 21.2 0 4.59 4.59 World Transportation - 2 326 -569 1e+04 21.2 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.0155 0.0827 3.94 5.86 0 0 0 test.phys initStep + 1 0.139 0.195 10 5.86 0 6.07 6.07 World Transportation + 2 204 185 1e+04 5.86 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0579 -0.123 5.42 0.00647 0 0 0 test.phys initStep - 1 0.0581 -0.124 5.44 0.00647 0 0.016 0.016 test.phys Rayl - 2 0.0557 -0.131 5.46 0 0.00156 0.021 0.037 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0557 -0.131 5.46 0.0049 0 0 0 test.phys initStep - 1 0.0557 -0.131 5.46 0 0.0049 0.000403 0.000403 test.phys eIoni + 0 0.0155 0.0827 3.94 6.19 0 0 0 test.phys initStep + 1 0.132 0.236 10 6.19 0 6.07 6.07 World Transportation + 2 192 253 1e+04 6.19 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0579 -0.123 5.42 0.329 0 0 0 test.phys initStep - 1 0.0651 -0.143 5.89 0.288 0 0.471 0.471 test.phys compt - 2 1.41 2.68 10 0.288 0 5.16 5.63 World Transportation - 3 3.27e+03 6.86e+03 1e+04 0.288 0 1.25e+04 1.26e+04 OutOfWorld Transportation + 0 0.0155 0.0827 3.94 0.00881 0 0 0 test.phys initStep + 1 0.0157 0.0839 3.97 0 0.00156 0.0308 0.0308 test.phys phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 3 +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0651 -0.143 5.89 0.0415 0 0 0 test.phys initStep - 1 0.0634 -0.147 5.89 0 0.0415 0.0154 0.0154 test.phys eIoni + 0 0.0157 0.0839 3.97 0.00724 0 0 0 test.phys initStep + 1 0.0158 0.0837 3.97 0 0.00724 0.000769 0.000769 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0579 -0.123 5.42 0.0173 0 0 0 test.phys initStep - 1 0.0607 -0.13 5.6 0.0173 0 0.178 0.178 test.phys Rayl - 2 0.0775 -0.123 5.65 0.0173 0 0.0516 0.23 test.phys Rayl - 3 0.183 -0.0846 5.78 0 0.00156 0.173 0.403 test.phys phot + 0 0.0155 0.0827 3.94 0.0134 0 0 0 test.phys initStep + 1 0.0219 0.0944 4.5 0 0.00156 0.566 0.566 test.phys phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.183 -0.0846 5.78 0.0157 0 0 0 test.phys initStep - 1 0.183 -0.084 5.78 0 0.0157 0.00286 0.00286 test.phys eIoni + 0 0.0219 0.0944 4.5 0.0119 0 0 0 test.phys initStep + 1 0.0219 0.0949 4.5 0 0.0119 0.00177 0.00177 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 -0.0141 -0.0111 1.4 88.2 0.572 1.4 1e+03 test.phys biasWrapper(eBrem) + 3 -0.169 -0.0642 10 85.2 2.95 8.61 1.01e+03 World Transportation + 4 284 -54.9 1e+04 85.2 3.63e-22 9.99e+03 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0141 -0.0111 1.4 4.18 0 0 0 test.phys initStep + 1 -0.205 -0.0732 10 4.18 0 8.6 8.6 World Transportation + 2 -222 -72.3 1e+04 4.18 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0141 -0.0111 1.4 3.25 0 0 0 test.phys initStep + 1 -0.246 0.377 10 3.25 0 8.61 8.61 World Transportation + 2 -270 451 1e+04 3.25 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0141 -0.0111 1.4 0.29 0 0 0 test.phys initStep + 1 -0.205 -0.0792 10 0.29 0 8.6 8.6 World Transportation + 2 -222 -79.3 1e+04 0.29 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0141 -0.0111 1.4 0.0163 0 0 0 test.phys initStep + 1 -0.0191 -0.0133 1.68 0 0.00156 0.273 0.273 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0191 -0.0133 1.68 0.0148 0 0 0 test.phys initStep + 1 -0.0198 -0.0136 1.68 0 0.0148 0.00258 0.00258 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0141 -0.0111 1.4 0.0553 0 0 0 test.phys initStep + 1 -0.159 -0.0841 10 0.0553 0 8.6 8.6 World Transportation + 2 -168 -85 1e+04 0.0553 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0141 -0.0111 1.4 2.15 0 0 0 test.phys initStep + 1 -0.207 -0.0755 10 2.15 0 8.6 8.6 World Transportation + 2 -224 -74.9 1e+04 2.15 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0141 -0.0111 1.4 0.0107 0 0 0 test.phys initStep + 1 -0.0162 -0.0115 1.53 0 0.00156 0.124 0.124 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0162 -0.0115 1.53 0.00917 0 0 0 test.phys initStep + 1 -0.0162 -0.0111 1.53 0 0.00917 0.00114 0.00114 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0141 -0.0111 1.4 36.4 0 0 0 test.phys initStep + 1 -0.177 -0.0204 10 36.4 0 8.6 8.6 World Transportation + 2 -190 -10.9 1e+04 36.4 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0141 -0.0111 1.4 0.0168 0 0 0 test.phys initStep + 1 -0.0142 -0.0112 1.42 0 0.00156 0.0144 0.0144 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0142 -0.0112 1.42 0.0152 0 0 0 test.phys initStep + 1 -0.014 -0.012 1.42 0 0.0152 0.00272 0.00272 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0141 -0.0111 1.4 11.3 0 0 0 test.phys initStep + 1 -0.176 -0.0743 10 11.3 0 8.6 8.6 World Transportation + 2 -189 -73.6 1e+04 11.3 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 -0.0192 0.00548 1.51 99 0.541 1.51 1e+03 test.phys biasWrapper(eBrem) + 3 -0.0279 -0.0108 3.32 98.3 0.672 1.81 1e+03 test.phys biasWrapper(eBrem) + 4 -0.0262 -0.0181 4.05 15.6 0.236 0.735 1e+03 test.phys biasWrapper(eBrem) + 5 -0.007 0.000867 4.7 15.3 0.253 0.648 1e+03 test.phys biasWrapper(eBrem) + 6 -0.114 0.0212 7.02 14.3 0.903 2.34 1.01e+03 test.phys biasWrapper(eBrem) + 7 -1.37 -0.304 10 12.7 1.59 3.3 1.01e+03 World Transportation + 8 -2.38e+03 -1.08e+03 1e+04 12.7 3.16e-22 1.03e+04 1.13e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.114 0.0212 7.02 0.00876 0 0 0 test.phys initStep + 1 -0.388 -0.136 7.64 0 0.00156 0.691 0.691 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 15 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.388 -0.136 7.64 0.0072 0 0 0 test.phys initStep + 1 -0.388 -0.136 7.64 0 0.0072 0.000761 0.000761 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.007 0.000867 4.7 0.0676 0 0 0 test.phys initStep + 1 0.351 0.275 10 0.0676 0 5.32 5.32 World Transportation + 2 675 517 1e+04 0.0676 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0262 -0.0181 4.05 82.4 0 0 0 test.phys initStep + 1 -0.0632 -0.0712 10 82.4 0 5.95 5.95 World Transportation + 2 -62.3 -89.4 1e+04 82.4 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0279 -0.0108 3.32 0.108 0 0 0 test.phys initStep + 1 -0.131 -0.0237 10 0.108 0 6.68 6.68 World Transportation + 2 -154 -19.4 1e+04 0.108 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0192 0.00548 1.51 0.0745 0 0 0 test.phys initStep + 1 -0.0849 0.064 10 0.0745 0 8.49 8.49 World Transportation + 2 -77.5 68.9 1e+04 0.0745 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0192 0.00548 1.51 0.0364 0 0 0 test.phys initStep + 1 -0.0295 0.0108 2.79 0.0361 0 1.28 1.28 test.phys compt + 2 -0.4 -4.42 10 0.0361 0 8.47 9.75 World Transportation + 3 -514 -6.14e+03 1e+04 0.0361 0 1.17e+04 1.17e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0295 0.0108 2.79 0.000387 0 0 0 test.phys initStep + 1 -0.0295 0.0108 2.79 0 0.000387 1.16e-05 1.16e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0192 0.00548 1.51 2.53 0 0 0 test.phys initStep + 1 -0.116 0.0442 10 2.53 0 8.49 8.49 World Transportation + 2 -114 45.6 1e+04 2.53 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0192 0.00548 1.51 25.3 0 0 0 test.phys initStep + 1 -0.222 0.256 10 25.3 0 8.5 8.5 World Transportation + 2 -239 295 1e+04 25.3 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0192 0.00548 1.51 0.01 0 0 0 test.phys initStep + 1 -0.0192 0.00549 1.51 0 0.000121 0.0012 0.0012 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0192 0.00549 1.51 0.0099 0 0 0 test.phys initStep + 1 -0.0192 0.00584 1.51 0 0.0099 0.0013 0.0013 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0192 0.00548 1.51 30 0 0 0 test.phys initStep + 1 -0.0954 0.0487 10 30 0 8.49 8.49 World Transportation + 2 -89.8 50.9 1e+04 30 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0192 0.00548 1.51 0.0122 0 0 0 test.phys initStep + 1 -0.0254 0.00866 1.88 0 0.00156 0.367 0.367 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0254 0.00866 1.88 0.0107 0 0 0 test.phys initStep + 1 -0.0256 0.0087 1.88 0 0.0107 0.00148 0.00148 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0192 0.00548 1.51 0.216 0 0 0 test.phys initStep + 1 -0.111 0.0324 10 0.216 0 8.49 8.49 World Transportation + 2 -108 31.7 1e+04 0.216 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0192 0.00548 1.51 0.0273 0 0 0 test.phys initStep + 1 -0.0261 0.00784 2.01 0 0.00156 0.505 0.505 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0261 0.00784 2.01 0.0257 0 0 0 test.phys initStep + 1 -0.0259 0.00953 2.01 0 0.0257 0.00672 0.00672 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0192 0.00548 1.51 0.421 0 0 0 test.phys initStep + 1 -0.0953 0.0389 10 0.421 0 8.49 8.49 World Transportation + 2 -89.6 39.4 1e+04 0.421 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 -0.0294 -0.0189 2.19 77 0.795 2.19 1e+03 test.phys biasWrapper(eBrem) + 3 -0.215 -0.14 10 74.2 2.82 7.82 1.01e+03 World Transportation + 4 198 -901 1e+04 74.2 3.6e-22 1e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0294 -0.0189 2.19 0.0131 0 0 0 test.phys initStep + 1 -0.0338 -0.0201 2.29 0 0.00156 0.101 0.101 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0338 -0.0201 2.29 0.0115 0 0 0 test.phys initStep + 1 -0.0341 -0.0198 2.29 0 0.0115 0.00169 0.00169 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0294 -0.0189 2.19 26.6 0 0 0 test.phys initStep + 1 -0.249 -0.0847 10 26.6 0 7.81 7.81 World Transportation + 2 -282 -84.3 1e+04 26.6 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0294 -0.0189 2.19 3.89 0 0 0 test.phys initStep + 1 -0.168 -0.133 10 3.89 0 7.81 7.81 World Transportation + 2 -178 -146 1e+04 3.89 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0294 -0.0189 2.19 22.4 0 0 0 test.phys initStep + 1 -0.246 -0.132 10 22.4 0 7.81 7.81 World Transportation + 2 -278 -145 1e+04 22.4 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0294 -0.0189 2.19 0.0646 0 0 0 test.phys initStep + 1 -0.167 0.0771 10 0.0646 0 7.81 7.81 World Transportation + 2 -177 123 1e+04 0.0646 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0294 -0.0189 2.19 0.105 0 0 0 test.phys initStep + 1 -0.315 -0.195 7.51 0.0773 0 5.33 5.33 test.phys compt + 2 6.91 1.57 -8.88e-16 0.0773 0 10.6 15.9 World Transportation + 3 9.62e+03 2.35e+03 -1e+04 0.0773 0 1.41e+04 1.41e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.315 -0.195 7.51 0.0279 0 0 0 test.phys initStep + 1 -0.316 -0.195 7.52 0 0.0279 0.00773 0.00773 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0294 -0.0189 2.19 41.4 0 0 0 test.phys initStep + 1 -0.261 -0.118 10 41.4 0 7.81 7.81 World Transportation + 2 -297 -126 1e+04 41.4 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0294 -0.0189 2.19 18.9 0 0 0 test.phys initStep + 1 -0.314 -0.0651 10 18.9 0 7.81 7.81 World Transportation + 2 -364 -59.1 1e+04 18.9 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0294 -0.0189 2.19 0.681 0 0 0 test.phys initStep + 1 -0.214 0.045 10 0.681 0 7.81 7.81 World Transportation + 2 -237 81.8 1e+04 0.681 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0294 -0.0189 2.19 22.2 0 0 0 test.phys initStep + 1 -0.347 -0.0888 10 22.2 0 7.81 7.81 World Transportation + 2 -407 -89.5 1e+04 22.2 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 0.129 -0.096 6.07 95.8 2.19 6.07 1.01e+03 test.phys biasWrapper(eBrem) + 3 0.255 -0.182 10 94 1.8 3.94 1.01e+03 World Transportation + 4 381 -397 1e+04 94 3.66e-22 1e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.129 -0.096 6.07 29.7 0 0 0 test.phys initStep + 1 0.247 -0.184 10 29.7 0 3.94 3.94 World Transportation + 2 300 -223 1e+04 29.7 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.129 -0.096 6.07 76.6 0 0 0 test.phys initStep + 1 0.258 -0.216 10 76.6 0 3.94 3.94 World Transportation + 2 328 -305 1e+04 76.6 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.129 -0.096 6.07 4.02 0 0 0 test.phys initStep + 1 0.289 -0.0942 10 4.02 0 3.94 3.94 World Transportation + 2 405 4.38 1e+04 4.02 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.129 -0.096 6.07 6.04 0 0 0 test.phys initStep + 1 0.269 -0.186 10 6.04 0 3.94 3.94 World Transportation + 2 355 -229 1e+04 6.04 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.129 -0.096 6.07 0.0116 0 0 0 test.phys initStep + 1 0.177 -0.134 7.51 0 0.000121 1.44 1.44 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.177 -0.134 7.51 0.0115 0 0 0 test.phys initStep + 1 0.177 -0.134 7.51 0 0.0115 0.00168 0.00168 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.129 -0.096 6.07 0.398 0 0 0 test.phys initStep + 1 0.251 -0.127 10 0.398 0 3.94 3.94 World Transportation + 2 309 -79.9 1e+04 0.398 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.129 -0.096 6.07 0.139 0 0 0 test.phys initStep + 1 0.248 -0.186 10 0.139 0 3.94 3.94 World Transportation + 2 303 -228 1e+04 0.139 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.129 -0.096 6.07 0.0359 0 0 0 test.phys initStep + 1 0.247 -0.169 10 0.0359 0 3.94 3.94 World Transportation + 2 298 -185 1e+04 0.0359 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.129 -0.096 6.07 20.8 0 0 0 test.phys initStep + 1 0.262 -0.193 10 20.8 0 3.94 3.94 World Transportation + 2 338 -246 1e+04 20.8 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.129 -0.096 6.07 1.98 0 0 0 test.phys initStep + 1 0.243 -0.182 10 1.98 0 3.94 3.94 World Transportation + 2 290 -220 1e+04 1.98 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 -0.0441 -0.0201 2.72 99 0.959 2.73 1e+03 test.phys biasWrapper(eBrem) + 3 -0.0454 -0.0334 3.28 98.7 0.197 0.552 1e+03 test.phys biasWrapper(eBrem) + 4 -0.0298 -0.19 10 96.2 2.54 6.73 1.01e+03 World Transportation + 5 -1.33 -46.9 1e+04 96.2 3.66e-22 9.99e+03 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0454 -0.0334 3.28 0.0474 0 0 0 test.phys initStep + 1 -0.00158 -0.222 9.63 0.0449 0 6.36 6.36 test.phys compt + 2 0.878 -0.429 10 0.0449 0 0.976 7.33 World Transportation + 3 1e+04 -2.35e+03 4.21e+03 0.0449 0 1.11e+04 1.11e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00158 -0.222 9.63 0.00254 0 0 0 test.phys initStep + 1 -0.00161 -0.222 9.63 0 0.00254 0.000142 0.000142 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0441 -0.0201 2.72 9.13 0 0 0 test.phys initStep + 1 -0.166 -0.129 10 9.13 0 7.28 7.28 World Transportation + 2 -167 -149 1e+04 9.13 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0441 -0.0201 2.72 19.9 0 0 0 test.phys initStep + 1 -0.104 -0.146 10 19.9 0 7.28 7.28 World Transportation + 2 -83 -173 1e+04 19.9 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0441 -0.0201 2.72 52.8 0 0 0 test.phys initStep + 1 -0.124 -0.142 10 52.8 0 7.28 7.28 World Transportation + 2 -110 -167 1e+04 52.8 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0441 -0.0201 2.72 0.972 0 0 0 test.phys initStep + 1 -0.0796 -0.189 10 0.972 0 7.28 7.28 World Transportation + 2 -48.9 -232 1e+04 0.972 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0441 -0.0201 2.72 3.03 0 0 0 test.phys initStep + 1 -0.0396 -0.206 10 3.03 0 7.28 7.28 World Transportation + 2 6.16 -256 1e+04 3.03 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0441 -0.0201 2.72 0.0737 0 0 0 test.phys initStep + 1 -0.0964 -0.115 10 0.0737 0 7.28 7.28 World Transportation + 2 -71.9 -130 1e+04 0.0737 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0441 -0.0201 2.72 0.212 0 0 0 test.phys initStep + 1 -0.102 -0.129 10 0.212 0 7.28 7.28 World Transportation + 2 -79 -149 1e+04 0.212 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0441 -0.0201 2.72 1.46 0 0 0 test.phys initStep + 1 -0.0996 -0.162 10 1.46 0 7.28 7.28 World Transportation + 2 -76.4 -195 1e+04 1.46 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0441 -0.0201 2.72 28.1 0 0 0 test.phys initStep + 1 -0.119 -0.182 10 28.1 0 7.28 7.28 World Transportation + 2 -102 -222 1e+04 28.1 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0441 -0.0201 2.72 0.0589 0 0 0 test.phys initStep + 1 -0.0877 -0.143 10 0.0589 0 7.28 7.28 World Transportation + 2 -60 -169 1e+04 0.0589 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 -0.00451 -0.0134 1.2 99.5 0.464 1.2 1e+03 test.phys biasWrapper(eBrem) + 3 0.0107 -0.0361 2.6 98.3 0.669 1.4 1e+03 test.phys biasWrapper(eBrem) + 4 0.0485 -0.0539 4.73 97.4 0.783 2.13 1e+03 test.phys biasWrapper(eBrem) + 5 0.0955 -0.112 10 95.3 2.07 5.27 1.01e+03 World Transportation + 6 -747 -167 1e+04 95.3 3.67e-22 1e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0485 -0.0539 4.73 0.099 0 0 0 test.phys initStep + 1 0.0624 -0.125 10 0.099 0 5.27 5.27 World Transportation + 2 26.5 -136 1e+04 0.099 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0107 -0.0361 2.6 0.573 0 0 0 test.phys initStep + 1 0.0183 -0.112 10 0.573 0 7.4 7.4 World Transportation + 2 10.4 -103 1e+04 0.573 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00451 -0.0134 1.2 0.00851 0 0 0 test.phys initStep + 1 -0.00447 -0.0137 1.25 0 0.00156 0.0528 0.0528 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00447 -0.0137 1.25 0.00694 0 0 0 test.phys initStep + 1 -0.00438 -0.0139 1.25 0 0.00694 0.000717 0.000717 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00451 -0.0134 1.2 0.0239 0 0 0 test.phys initStep + 1 -0.0701 -0.0855 7.97 0 0.00156 6.77 6.77 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0701 -0.0855 7.97 0.0223 0 0 0 test.phys initStep + 1 -0.0687 -0.0847 7.97 0 0.0223 0.00527 0.00527 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00451 -0.0134 1.2 0.00646 0 0 0 test.phys initStep + 1 -0.00474 -0.0139 1.24 0 0.00156 0.0371 0.0371 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 9 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00474 -0.0139 1.24 0.0049 0 0 0 test.phys initStep + 1 -0.00467 -0.014 1.24 0 0.0049 0.000403 0.000403 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00451 -0.0134 1.2 0.0244 0 0 0 test.phys initStep + 1 -0.0308 -0.0458 3.02 0 0.00156 1.82 1.82 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0308 -0.0458 3.02 0.0229 0 0 0 test.phys initStep + 1 -0.0299 -0.0445 3.02 0 0.0229 0.00548 0.00548 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00451 -0.0134 1.2 0.0225 0 0 0 test.phys initStep + 1 0.00681 -0.0179 2.02 0 0.00156 0.825 0.825 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00681 -0.0179 2.02 0.021 0 0 0 test.phys initStep + 1 0.00706 -0.0164 2.02 0 0.021 0.00472 0.00472 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00451 -0.0134 1.2 0.0129 0 0 0 test.phys initStep + 1 -0.00379 -0.0138 1.49 0 0.00156 0.289 0.289 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00379 -0.0138 1.49 0.0113 0 0 0 test.phys initStep + 1 -0.00353 -0.0135 1.49 0 0.0113 0.00163 0.00163 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00451 -0.0134 1.2 1.01 0 0 0 test.phys initStep + 1 0.0285 -0.183 5.77 0.481 0 4.57 4.57 test.phys compt + 2 3.95 -8.74 10 0.481 0 10.3 14.9 World Transportation + 3 4.59e+03 -1e+04 4.96e+03 0.481 0 1.21e+04 1.21e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0285 -0.183 5.77 0.528 0 0 0 test.phys initStep + 1 -0.0372 -0.0479 6.07 0 0.528 0.906 0.906 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00451 -0.0134 1.2 0.0372 0 0 0 test.phys initStep + 1 0.00499 -0.0304 3.04 0 0.00156 1.84 1.84 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00499 -0.0304 3.04 0.0356 0 0 0 test.phys initStep + 1 0.00718 -0.0272 3.04 0 0.0356 0.0118 0.0118 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00451 -0.0134 1.2 11 0 0 0 test.phys initStep + 1 -0.0162 -0.118 10 11 0 8.8 8.8 World Transportation + 2 -13.3 -118 1e+04 11 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00451 -0.0134 1.2 0.0295 0 0 0 test.phys initStep + 1 0.157 -0.213 7.76 0 0.00156 6.56 6.56 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.157 -0.213 7.76 0.0279 0 0 0 test.phys initStep + 1 0.158 -0.215 7.76 0 0.0279 0.00777 0.00777 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 -0.115 0.185 7.43 91.6 2.95 7.44 1.01e+03 test.phys biasWrapper(eBrem) + 3 -0.178 0.261 10 90.6 0.958 2.57 1.01e+03 World Transportation + 4 -155 244 1e+04 90.6 3.64e-22 9.99e+03 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.115 0.185 7.43 0.269 0 0 0 test.phys initStep + 1 -0.186 0.263 10 0.269 0 2.57 2.57 World Transportation + 2 -277 304 1e+04 0.269 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.115 0.185 7.43 2.41 0 0 0 test.phys initStep + 1 -0.177 0.265 10 2.41 0 2.57 2.57 World Transportation + 2 -242 312 1e+04 2.41 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.115 0.185 7.43 4.69 0 0 0 test.phys initStep + 1 -0.218 0.255 10 4.69 0 2.57 2.57 World Transportation + 2 -400 272 1e+04 4.69 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.115 0.185 7.43 1.98 0 0 0 test.phys initStep + 1 -0.18 0.251 10 1.98 0 2.57 2.57 World Transportation + 2 -252 255 1e+04 1.98 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.115 0.185 7.43 0.288 0 0 0 test.phys initStep + 1 -0.179 0.26 10 0.288 0 2.57 2.57 World Transportation + 2 -248 289 1e+04 0.288 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.115 0.185 7.43 0.0192 0 0 0 test.phys initStep + 1 -0.124 0.191 8.02 0 0.00156 0.592 0.592 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.124 0.191 8.02 0.0176 0 0 0 test.phys initStep + 1 -0.124 0.19 8.02 0 0.0176 0.0035 0.0035 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.115 0.185 7.43 0.929 0 0 0 test.phys initStep + 1 -0.203 0.263 10 0.929 0 2.57 2.57 World Transportation + 2 -344 302 1e+04 0.929 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.115 0.185 7.43 0.89 0 0 0 test.phys initStep + 1 -0.216 0.269 10 0.89 0 2.57 2.57 World Transportation + 2 -394 324 1e+04 0.89 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.115 0.185 7.43 1.22 0 0 0 test.phys initStep + 1 -0.178 0.265 10 1.22 0 2.57 2.57 World Transportation + 2 -243 309 1e+04 1.22 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.115 0.185 7.43 5.45 0 0 0 test.phys initStep + 1 -0.202 0.261 10 5.45 0 2.57 2.57 World Transportation + 2 -339 293 1e+04 5.45 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 0.00243 0.0017 0.423 99.7 0.265 0.423 1e+03 test.phys biasWrapper(eBrem) + 3 -0.00478 0.0124 1.1 99.1 0.363 0.68 1e+03 test.phys biasWrapper(eBrem) + 4 -0.0773 -0.113 8.31 95.3 3.79 7.21 1.01e+03 test.phys biasWrapper(eBrem) + 5 -0.0915 -0.17 10 94.6 0.698 1.69 1.01e+03 World Transportation + 6 -185 -128 1e+04 94.6 3.66e-22 9.99e+03 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0773 -0.113 8.31 0.043 0 0 0 test.phys initStep + 1 -0.083 -0.127 8.8 0 0.00156 0.495 0.495 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.083 -0.127 8.8 0.0414 0 0 0 test.phys initStep + 1 -0.0875 -0.126 8.81 0 0.0414 0.0154 0.0154 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.00478 0.0124 1.1 0.221 0 0 0 test.phys initStep + 1 -0.216 0.209 6.25 0.198 0 5.16 5.16 test.phys compt + 2 -1.28 3.89 10 0.198 0 5.36 10.5 World Transportation + 3 -2.83e+03 9.82e+03 1e+04 0.198 0 1.43e+04 1.43e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.216 0.209 6.25 0.0229 0 0 0 test.phys initStep + 1 -0.216 0.208 6.25 0 0.0229 0.00551 0.00551 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00243 0.0017 0.423 0.0673 0 0 0 test.phys initStep + 1 0.0449 0.111 10 0.0673 0 9.58 9.58 World Transportation + 2 44.3 114 1e+04 0.0673 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00243 0.0017 0.423 0.0258 0 0 0 test.phys initStep + 1 -0.0343 0.021 3.78 0 0.00156 3.36 3.36 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0343 0.021 3.78 0.0242 0 0 0 test.phys initStep + 1 -0.0335 0.0227 3.78 0 0.0242 0.00606 0.00606 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00243 0.0017 0.423 0.0395 0 0 0 test.phys initStep + 1 -0.0417 0.0953 7.11 0.0386 0 6.69 6.69 test.phys compt + 2 0.272 1.02 8.1 0.0346 0 1.39 8.08 test.phys compt + 3 1.37 1.2 5.24 0 0.00156 3.07 11.2 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 9 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.37 1.2 5.24 0.033 0 0 0 test.phys initStep + 1 1.37 1.19 5.24 0 0.033 0.0104 0.0104 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 9 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.272 1.02 8.1 0.00405 0 0 0 test.phys initStep + 1 0.272 1.02 8.1 0 0.00405 0.000296 0.000296 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 9 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0417 0.0953 7.11 0.000826 0 0 0 test.phys initStep + 1 -0.0417 0.0953 7.11 0 0.000826 2.88e-05 2.88e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00243 0.0017 0.423 0.00614 0 0 0 test.phys initStep + 1 0.00146 0.00218 0.484 0 0.00156 0.0613 0.0613 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00146 0.00218 0.484 0.00458 0 0 0 test.phys initStep + 1 0.00143 0.00208 0.484 0 0.00458 0.000361 0.000361 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00243 0.0017 0.423 0.065 0 0 0 test.phys initStep + 1 -0.119 0.0913 10 0.065 0 9.58 9.58 World Transportation + 2 -127 93.5 1e+04 0.065 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00243 0.0017 0.423 2.7 0 0 0 test.phys initStep + 1 -0.126 0.0738 10 2.7 0 9.58 9.58 World Transportation + 2 -135 75.2 1e+04 2.7 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00243 0.0017 0.423 1.95 0 0 0 test.phys initStep + 1 -0.175 0.242 10 1.95 0 9.58 9.58 World Transportation + 2 -186 251 1e+04 1.95 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00243 0.0017 0.423 0.123 0 0 0 test.phys initStep + 1 -0.153 0.0341 10 0.123 0 9.58 9.58 World Transportation + 2 -162 33.9 1e+04 0.123 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00243 0.0017 0.423 9.77 0 0 0 test.phys initStep + 1 -0.133 0.0783 10 9.77 0 9.58 9.58 World Transportation + 2 -142 80 1e+04 9.77 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00243 0.0017 0.423 0.0242 0 0 0 test.phys initStep + 1 -0.0108 0.00499 2.04 0 0.00156 1.62 1.62 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0108 0.00499 2.04 0.0226 0 0 0 test.phys initStep + 1 -0.00992 0.00361 2.04 0 0.0226 0.00539 0.00539 test.phys eIoni Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.005722s Sys=0.000000s + User=0.000000s Real=0.006364s Sys=0.000000s Region -- -- appears in world volume This region is in the mass world. @@ -2561,265 +2752,407 @@ BremSplittingOperator : starting run with brem. splitting factor = 10, biasing p Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 -1e+03 100 0 0 0 World initStep 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 0.00821 -0.0642 3.31 98.6 1.32 3.31 1e+03 test.phys biasWrapper(eBrem) - 3 0.0143 -0.0918 4.44 60.5 0.395 1.13 1e+03 test.phys biasWrapper(eBrem) - 4 0.105 -0.259 10 58.7 1.89 5.57 1.01e+03 World Transportation - 5 -446 -1.04e+03 1e+04 58.7 3.53e-22 1.01e+04 1.11e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0143 -0.0918 4.44 0.0711 0 0 0 test.phys initStep - 1 0.147 -0.27 10 0.0711 0 5.56 5.56 World Transportation - 2 238 -320 1e+04 0.0711 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0143 -0.0918 4.44 0.209 0 0 0 test.phys initStep - 1 -0.0265 -0.265 10 0.209 0 5.56 5.56 World Transportation - 2 -73.2 -312 1e+04 0.209 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0143 -0.0918 4.44 0.296 0 0 0 test.phys initStep - 1 0.0878 -0.25 10 0.296 0 5.56 5.56 World Transportation - 2 132 -285 1e+04 0.296 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0143 -0.0918 4.44 0.374 0 0 0 test.phys initStep - 1 0.0617 -0.174 6.94 0.266 0 2.5 2.5 test.phys compt - 2 4.26 1.76 9.24 0.178 0 5.16 7.67 test.phys compt - 3 10.9 -0.177 0 0.178 0 11.6 19.2 World Transportation - 4 7.24e+03 -2.1e+03 -1e+04 0.178 0 1.25e+04 1.25e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.26 1.76 9.24 0.088 0 0 0 test.phys initStep - 1 4.27 1.77 9.25 0 0.088 0.056 0.056 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0617 -0.174 6.94 0.108 0 0 0 test.phys initStep - 1 0.0456 -0.183 6.96 0 0.108 0.0787 0.0787 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0143 -0.0918 4.44 0.0193 0 0 0 test.phys initStep - 1 0.02 -0.105 4.81 0 0.00156 0.369 0.369 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.02 -0.105 4.81 0.0178 0 0 0 test.phys initStep - 1 0.0203 -0.106 4.81 0 0.0178 0.00355 0.00355 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0143 -0.0918 4.44 42.8 0 0 0 test.phys initStep - 1 0.0752 -0.225 8.88 0 0 4.44 4.44 test.phys conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 26, Parent ID = 16 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0752 -0.225 8.88 22.9 0 0 0 test.phys initStep - 1 0.101 -0.234 10 22.5 0.338 1.13 1.13 World Transportation - 2 683 110 1e+04 22.5 3.23e-22 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 16 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0752 -0.225 8.88 18.9 0 0 0 test.phys initStep - 1 0.0631 -0.327 10 18.5 0.409 1.13 1.13 World Transportation - 2 -418 208 1e+04 18.5 3.17e-22 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0143 -0.0918 4.44 0.281 0 0 0 test.phys initStep - 1 0.126 -0.239 10 0.281 0 5.56 5.56 World Transportation - 2 202 -265 1e+04 0.281 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0143 -0.0918 4.44 4.59 0 0 0 test.phys initStep - 1 0.0934 -0.306 10 4.59 0 5.57 5.57 World Transportation - 2 142 -384 1e+04 4.59 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0143 -0.0918 4.44 0.0172 0 0 0 test.phys initStep - 1 0.0376 -0.139 6.14 0 0.00156 1.7 1.7 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 13 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0376 -0.139 6.14 0.0156 0 0 0 test.phys initStep - 1 0.0369 -0.139 6.14 0 0.0156 0.00285 0.00285 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0143 -0.0918 4.44 37.6 0 0 0 test.phys initStep - 1 0.0955 -0.261 10 37.6 0 5.56 5.56 World Transportation - 2 146 -304 1e+04 37.6 0 1e+04 1e+04 OutOfWorld Transportation + 2 0.00837 -0.0104 1.16 98.6 0.485 1.16 1e+03 test.phys biasWrapper(eBrem) + 3 0.0922 -0.145 10 95.3 3.34 8.85 1.01e+03 World Transportation + 4 186 -244 1e+04 95.3 3.66e-22 9.99e+03 1.1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00821 -0.0642 3.31 1.42 0 0 0 test.phys initStep - 1 0.000922 -0.136 10 1.42 0 6.69 6.69 World Transportation - 2 -10.9 -107 1e+04 1.42 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.00837 -0.0104 1.16 0.0399 0 0 0 test.phys initStep + 1 0.0292 -0.0283 2.43 0.0358 0 1.27 1.27 test.phys compt + 2 -2.77 -3.38 0 0.0358 0 5 6.27 World Transportation + 3 -8.35e+03 -1e+04 -7.24e+03 0.0358 0 1.49e+04 1.49e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0292 -0.0283 2.43 0.00415 0 0 0 test.phys initStep + 1 0.0292 -0.0283 2.43 0 0.00415 0.000309 0.000309 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00821 -0.0642 3.31 0.062 0 0 0 test.phys initStep - 1 -0.0667 -0.21 10 0.062 0 6.7 6.7 World Transportation - 2 -112 -217 1e+04 0.062 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.00837 -0.0104 1.16 14.2 0 0 0 test.phys initStep + 1 0.0508 -0.0688 3.83 4.96 0 2.68 2.68 test.phys compt + 2 0.226 -2.61 10 4.96 0 6.67 9.35 World Transportation + 3 283 -4.11e+03 1e+04 4.96 0 1.08e+04 1.08e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0508 -0.0688 3.83 9.27 0 0 0 test.phys initStep + 1 0.0353 -0.0177 4.29 6.38 0.184 0.466 0.466 test.phys eIoni + 2 -0.0568 0.22 5.25 6.05 0.325 1 1.47 test.phys biasWrapper(eBrem) + 3 -0.365 0.99 9.43 4.35 1.69 4.61 6.08 test.phys eIoni + 4 1.37 2.39 10 3.43 0.927 2.53 8.61 World Transportation + 5 1.37 2.39 10 3.43 0 0 8.61 test.phys Transportation + 6 1.34 3.58 9.4 2.98 0.442 1.4 10 test.phys msc + 7 1.35 4.52 8.46 2.51 0.478 1.39 11.4 test.phys msc + 8 1.09 4.56 8.21 2.32 0.171 0.361 11.8 test.phys biasWrapper(eBrem) + 9 0.538 4.17 7.36 1.93 0.398 1.15 12.9 test.phys msc + 10 0.0107 3.18 6.27 1.4 0.525 1.73 14.6 test.phys msc + 11 -0.197 2.46 5.34 0.708 0.693 1.96 16.6 test.phys eIoni + 12 -0.359 2.14 4.97 0 0.708 1.27 17.9 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 34, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.09 4.56 8.21 0.489 0 0 0 test.phys initStep + 1 -1.04 2.43 0 0.489 0 8.75 8.75 World Transportation + 2 -2.6e+03 -2.59e+03 -1e+04 0.489 0 1.07e+04 1.07e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 33, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.09 4.56 8.21 0.00797 0 0 0 test.phys initStep + 1 1.09 4.56 8.21 0 0.00156 0.00619 0.00619 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 33 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.09 4.56 8.21 0.0064 0 0 0 test.phys initStep + 1 1.09 4.56 8.21 0 0.0064 0.000626 0.000626 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 32, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.09 4.56 8.21 0.054 0 0 0 test.phys initStep + 1 -5.6 3.74 0 0.054 0 10.6 10.6 World Transportation + 2 -8.16e+03 -996 -1e+04 0.054 0 1.29e+04 1.3e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 31, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.09 4.56 8.21 0.694 0 0 0 test.phys initStep + 1 -3.05 4.96 4.19 0.615 0 5.79 5.79 test.phys compt + 2 -4.47 4.22 1.51 0.614 0 3.12 8.91 test.phys compt + 3 -5.2 3.87 0 0.614 0 1.71 10.6 World Transportation + 4 -4.84e+03 -2.3e+03 -1e+04 0.614 0 1.13e+04 1.14e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -4.47 4.22 1.51 0.000948 0 0 0 test.phys initStep + 1 -4.47 4.22 1.51 0 0.000948 3.45e-05 3.45e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -3.05 4.96 4.19 0.0792 0 0 0 test.phys initStep + 1 -3.06 4.97 4.19 0 0.0792 0.0469 0.0469 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 30, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.09 4.56 8.21 1.07 0 0 0 test.phys initStep + 1 -5.69 3.34 0 1.07 0 10.7 10.7 World Transportation + 2 -8.27e+03 -1.49e+03 -1e+04 1.07 0 1.31e+04 1.31e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 29, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.09 4.56 8.21 0.332 0 0 0 test.phys initStep + 1 -8.51 4.35 0 0.332 0 12.6 12.6 World Transportation + 2 -1e+04 -217 -8.54e+03 0.332 0 1.31e+04 1.32e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 28, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.09 4.56 8.21 0.00929 0 0 0 test.phys initStep + 1 1.07 4.55 8.19 0 0.00156 0.0332 0.0332 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 28 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.07 4.55 8.19 0.00773 0 0 0 test.phys initStep + 1 1.07 4.55 8.19 0 0.00773 0.000857 0.000857 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 27, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.09 4.56 8.21 0.0128 0 0 0 test.phys initStep + 1 0.488 4.92 8.07 0 0.00156 0.718 0.718 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 27 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.488 4.92 8.07 0.0113 0 0 0 test.phys initStep + 1 0.489 4.92 8.07 0 0.0113 0.00163 0.00163 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 26, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.09 4.56 8.21 0.0639 0 0 0 test.phys initStep + 1 0.987 0.0065 0 0.0639 0 9.39 9.39 World Transportation + 2 -129 -5.54e+03 -1e+04 0.0639 0 1.14e+04 1.14e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.09 4.56 8.21 0.00994 0 0 0 test.phys initStep + 1 0.908 4.54 8.05 0 0.00156 0.249 0.249 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 25 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.908 4.54 8.05 0.00837 0 0 0 test.phys initStep + 1 0.907 4.54 8.05 0 0.00837 0.00098 0.00098 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 24, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0568 0.22 5.25 0.558 0 0 0 test.phys initStep + 1 -0.734 1.92 10 0.558 0 5.09 5.09 World Transportation + 2 -1.43e+03 3.59e+03 1e+04 0.558 0 1.07e+04 1.07e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0568 0.22 5.25 0.287 0 0 0 test.phys initStep + 1 -1.3 1.55 10 0.287 0 5.08 5.08 World Transportation + 2 -2.61e+03 2.8e+03 1e+04 0.287 0 1.07e+04 1.07e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0568 0.22 5.25 0.167 0 0 0 test.phys initStep + 1 -1.52 1.66 10 0.167 0 5.17 5.17 World Transportation + 2 -3.09e+03 3.02e+03 1e+04 0.167 0 1.09e+04 1.09e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0568 0.22 5.25 0.162 0 0 0 test.phys initStep + 1 -1.64 2.1 10 0.162 0 5.34 5.34 World Transportation + 2 -3.33e+03 3.96e+03 1e+04 0.162 0 1.12e+04 1.13e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0568 0.22 5.25 0.318 0 0 0 test.phys initStep + 1 -1.41 2.12 10 0.318 0 5.29 5.29 World Transportation + 2 -2.85e+03 3.99e+03 1e+04 0.318 0 1.11e+04 1.11e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0568 0.22 5.25 0.0274 0 0 0 test.phys initStep + 1 -0.373 0.514 6.35 0 0.00156 1.17 1.17 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 19 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.373 0.514 6.35 0.0258 0 0 0 test.phys initStep + 1 -0.374 0.512 6.35 0 0.0258 0.00676 0.00676 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0568 0.22 5.25 0.00972 0 0 0 test.phys initStep + 1 -0.0935 0.265 5.53 0 0.00156 0.279 0.279 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 18 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0935 0.265 5.53 0.00815 0 0 0 test.phys initStep + 1 -0.0937 0.265 5.53 0 0.00815 0.000938 0.000938 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0568 0.22 5.25 0.0177 0 0 0 test.phys initStep + 1 -0.0648 0.243 5.28 0 0.00156 0.0341 0.0341 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 17 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0648 0.243 5.28 0.0161 0 0 0 test.phys initStep + 1 -0.0655 0.242 5.28 0 0.0161 0.00301 0.00301 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0568 0.22 5.25 0.939 0 0 0 test.phys initStep + 1 -1.04 1.96 10 0.939 0 5.15 5.15 World Transportation + 2 -2.07e+03 3.67e+03 1e+04 0.939 0 1.08e+04 1.08e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0568 0.22 5.25 0.00953 0 0 0 test.phys initStep + 1 -0.0667 0.242 5.33 0 0.00156 0.0773 0.0773 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 15 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0667 0.242 5.33 0.00797 0 0 0 test.phys initStep + 1 -0.0666 0.242 5.33 0 0.00797 0.000902 0.000902 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0353 -0.0177 4.29 2.71 0 0 0 test.phys initStep + 1 -1.1 -1.6 5.68 1.78 0.934 2.62 2.62 test.phys msc + 2 -1.34 -2.34 6.98 0.993 0.783 2.22 4.85 test.phys eIoni + 3 -1.77 -1.65 6.99 0.428 0.566 1.62 6.47 test.phys eIoni + 4 -1.88 -1.44 7.04 0 0.428 0.677 7.14 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00821 -0.0642 3.31 0.66 0 0 0 test.phys initStep - 1 0.0267 -0.191 10 0.66 0 6.69 6.69 World Transportation - 2 27.6 -189 1e+04 0.66 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.00837 -0.0104 1.16 0.348 0 0 0 test.phys initStep + 1 0.288 -0.103 10 0.348 0 8.85 8.85 World Transportation + 2 316 -105 1e+04 0.348 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00821 -0.0642 3.31 0.142 0 0 0 test.phys initStep - 1 0.0405 -0.26 10 0.142 0 6.7 6.7 World Transportation - 2 48.2 -293 1e+04 0.142 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.00837 -0.0104 1.16 0.0225 0 0 0 test.phys initStep + 1 0.00888 -0.0107 1.21 0 0.00156 0.0582 0.0582 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00888 -0.0107 1.21 0.021 0 0 0 test.phys initStep + 1 0.0103 -0.0103 1.21 0 0.021 0.00472 0.00472 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00821 -0.0642 3.31 0.0512 0 0 0 test.phys initStep - 1 0.00467 -0.0857 4.37 0.0512 0 1.07 1.07 test.phys Rayl - 2 2.02 0.0189 1.34 0 0.00156 3.64 4.71 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 2.02 0.0189 1.34 0.0496 0 0 0 test.phys initStep - 1 2.02 0.012 1.34 0 0.0496 0.021 0.021 test.phys eIoni + 0 0.00837 -0.0104 1.16 1.26 0 0 0 test.phys initStep + 1 0.0703 -0.149 10 1.26 0 8.84 8.84 World Transportation + 2 70 -157 1e+04 1.26 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00821 -0.0642 3.31 0.481 0 0 0 test.phys initStep - 1 -0.0311 -0.196 10 0.481 0 6.69 6.69 World Transportation - 2 -58.6 -198 1e+04 0.481 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.00837 -0.0104 1.16 0.306 0 0 0 test.phys initStep + 1 0.0604 -0.274 10 0.306 0 8.85 8.85 World Transportation + 2 58.8 -298 1e+04 0.306 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00821 -0.0642 3.31 1.65 0 0 0 test.phys initStep - 1 -0.0362 -0.186 10 1.65 0 6.69 6.69 World Transportation - 2 -66.4 -182 1e+04 1.65 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.00837 -0.0104 1.16 0.0224 0 0 0 test.phys initStep + 1 0.0141 -0.0275 3.04 0 0.00156 1.89 1.89 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0141 -0.0275 3.04 0.0209 0 0 0 test.phys initStep + 1 0.0145 -0.026 3.04 0 0.0209 0.00468 0.00468 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00821 -0.0642 3.31 0.622 0 0 0 test.phys initStep - 1 -0.0288 -0.21 10 0.622 0 6.7 6.7 World Transportation - 2 -55.2 -218 1e+04 0.622 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.00837 -0.0104 1.16 0.24 0 0 0 test.phys initStep + 1 0.067 -0.133 10 0.24 0 8.84 8.84 World Transportation + 2 66.3 -139 1e+04 0.24 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00821 -0.0642 3.31 7.49 0 0 0 test.phys initStep - 1 -0.0167 -0.162 10 7.49 0 6.69 6.69 World Transportation - 2 -37.2 -146 1e+04 7.49 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.00837 -0.0104 1.16 29.9 0 0 0 test.phys initStep + 1 0.0871 -0.0989 10 29.9 0 8.84 8.84 World Transportation + 2 89 -100 1e+04 29.9 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00821 -0.0642 3.31 0.0952 0 0 0 test.phys initStep - 1 -0.00765 -0.138 6.67 0.0708 0 3.36 3.36 test.phys compt - 2 1.26 -0.677 4.44 0.0707 0 2.62 5.98 test.phys compt - 3 4.9 -2.35 0 0.0707 0 5.98 12 World Transportation - 4 8.2e+03 -3.76e+03 -1e+04 0.0707 0 1.35e+04 1.35e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.26 -0.677 4.44 0.000158 0 0 0 test.phys initStep - 1 1.26 -0.677 4.44 0 0.000158 5.61e-06 5.61e-06 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00765 -0.138 6.67 0.0244 0 0 0 test.phys initStep - 1 -0.00808 -0.138 6.67 0 0.0244 0.00613 0.00613 test.phys eIoni + 0 0.00837 -0.0104 1.16 0.906 0 0 0 test.phys initStep + 1 0.0465 -0.0748 10 0.906 0 8.84 8.84 World Transportation + 2 43.2 -72.8 1e+04 0.906 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2828,732 +3161,330 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 -1e+03 100 0 0 0 World initStep 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 -0.0344 -0.0406 2.9 98.2 1.13 2.9 1e+03 test.phys biasWrapper(eBrem) - 3 -0.101 -0.118 5.63 74.4 1.13 2.73 1.01e+03 test.phys eIoni - 4 -0.263 -0.399 8.95 73.4 1.06 3.33 1.01e+03 test.phys biasWrapper(eBrem) - 5 -0.298 -0.511 10 73 0.377 1.06 1.01e+03 World Transportation - 6 -308 -1.29e+03 1e+04 73 3.61e-22 1.01e+04 1.11e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.263 -0.399 8.95 0.0267 0 0 0 test.phys initStep - 1 -0.292 -0.508 10 0.0267 0 1.06 1.06 World Transportation - 2 -275 -1.04e+03 1e+04 0.0267 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.263 -0.399 8.95 14.9 0 0 0 test.phys initStep - 1 -0.289 -0.504 10 14.9 0 1.06 1.06 World Transportation - 2 -241 -1e+03 1e+04 14.9 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.263 -0.399 8.95 0.0711 0 0 0 test.phys initStep - 1 -0.3 -0.514 10 0.0711 0 1.06 1.06 World Transportation - 2 -352 -1.09e+03 1e+04 0.0711 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.263 -0.399 8.95 6.68 0 0 0 test.phys initStep - 1 -0.294 -0.533 10 6.68 0 1.06 1.06 World Transportation - 2 -295 -1.27e+03 1e+04 6.68 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.263 -0.399 8.95 0.0111 0 0 0 test.phys initStep - 1 -0.27 -0.427 9.16 0 0.00156 0.216 0.216 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 18 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.27 -0.427 9.16 0.00957 0 0 0 test.phys initStep - 1 -0.27 -0.427 9.16 0 0.00957 0.00123 0.00123 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.263 -0.399 8.95 13.5 0 0 0 test.phys initStep - 1 -0.298 -0.507 10 13.5 0 1.06 1.06 World Transportation - 2 -326 -1.03e+03 1e+04 13.5 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.263 -0.399 8.95 11.4 0 0 0 test.phys initStep - 1 -0.303 -0.509 10 11.4 0 1.06 1.06 World Transportation - 2 -372 -1.04e+03 1e+04 11.4 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.263 -0.399 8.95 22.2 0 0 0 test.phys initStep - 1 -0.296 -0.515 10 22.2 0 1.06 1.06 World Transportation - 2 -312 -1.1e+03 1e+04 22.2 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.263 -0.399 8.95 3.69 0 0 0 test.phys initStep - 1 -0.298 -0.507 10 3.69 0 1.06 1.06 World Transportation - 2 -333 -1.03e+03 1e+04 3.69 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.263 -0.399 8.95 0.0146 0 0 0 test.phys initStep - 1 -0.264 -0.402 8.97 0 0.00156 0.0281 0.0281 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 13 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.264 -0.402 8.97 0.013 0 0 0 test.phys initStep - 1 -0.265 -0.401 8.97 0 0.013 0.00207 0.00207 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.101 -0.118 5.63 22.6 0 0 0 test.phys initStep - 1 0.419 0.308 10 21.1 1.46 4.46 4.46 World Transportation - 2 3.6e+03 538 1e+04 21.1 3.41e-22 1.06e+04 1.06e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0344 -0.0406 2.9 0.061 0 0 0 test.phys initStep - 1 -0.162 -0.184 10 0.061 0 7.1 7.1 World Transportation - 2 -179 -202 1e+04 0.061 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0344 -0.0406 2.9 2.09 0 0 0 test.phys initStep - 1 -0.131 -0.144 10 2.09 0 7.1 7.1 World Transportation - 2 -136 -146 1e+04 2.09 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0344 -0.0406 2.9 6.19 0 0 0 test.phys initStep - 1 -0.167 -0.0826 10 6.19 0 7.1 7.1 World Transportation - 2 -187 -59.2 1e+04 6.19 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0344 -0.0406 2.9 12.4 0 0 0 test.phys initStep - 1 -0.295 -0.24 10 12.4 0 7.11 7.11 World Transportation - 2 -367 -281 1e+04 12.4 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0344 -0.0406 2.9 0.0101 0 0 0 test.phys initStep - 1 -0.0386 -0.0455 3.11 0 0.00156 0.209 0.209 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0386 -0.0455 3.11 0.00853 0 0 0 test.phys initStep - 1 -0.0385 -0.0458 3.11 0 0.00853 0.00101 0.00101 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0344 -0.0406 2.9 0.0387 0 0 0 test.phys initStep - 1 -0.0622 -0.09 5.3 0 0.00156 2.39 2.39 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 6 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0622 -0.09 5.3 0.0372 0 0 0 test.phys initStep - 1 -0.0658 -0.0897 5.3 0 0.0372 0.0128 0.0128 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0344 -0.0406 2.9 0.00668 0 0 0 test.phys initStep - 1 -0.0351 -0.041 2.94 0 0.00156 0.0396 0.0396 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0351 -0.041 2.94 0.00512 0 0 0 test.phys initStep - 1 -0.035 -0.041 2.94 0 0.00512 0.000433 0.000433 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0344 -0.0406 2.9 0.0433 0 0 0 test.phys initStep - 1 -0.0391 -0.0433 3.25 0 0.00156 0.344 0.344 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0391 -0.0433 3.25 0.0417 0 0 0 test.phys initStep - 1 -0.0348 -0.0456 3.25 0 0.0417 0.0156 0.0156 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0344 -0.0406 2.9 0.0804 0 0 0 test.phys initStep - 1 -0.133 -0.113 10 0.0804 0 7.1 7.1 World Transportation - 2 -139 -102 1e+04 0.0804 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0344 -0.0406 2.9 0.711 0 0 0 test.phys initStep - 1 -0.0898 -0.126 10 0.711 0 7.1 7.1 World Transportation - 2 -78 -120 1e+04 0.711 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 -0.214 0.24 9.61 96 3.95 9.62 1.01e+03 test.phys biasWrapper(eBrem) - 3 -0.261 0.268 10 95.9 0.118 0.39 1.01e+03 World Transportation - 4 -1.36e+03 718 1e+04 95.9 3.7e-22 1.01e+04 1.11e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.214 0.24 9.61 7.71 0 0 0 test.phys initStep - 1 -0.254 0.27 10 7.71 0 0.39 0.39 World Transportation - 2 -1.05e+03 791 1e+04 7.71 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.214 0.24 9.61 1.3 0 0 0 test.phys initStep - 1 -0.261 0.267 10 1.3 0 0.39 0.39 World Transportation - 2 -1.24e+03 711 1e+04 1.3 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.214 0.24 9.61 0.365 0 0 0 test.phys initStep - 1 -0.26 0.274 10 0.365 0 0.391 0.391 World Transportation - 2 -1.21e+03 892 1e+04 0.365 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.214 0.24 9.61 0.112 0 0 0 test.phys initStep - 1 -0.261 0.267 10 0.112 0 0.39 0.39 World Transportation - 2 -1.22e+03 716 1e+04 0.112 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.214 0.24 9.61 0.0313 0 0 0 test.phys initStep - 1 -0.259 0.272 10 0.0313 0 0.39 0.39 World Transportation - 2 -1.19e+03 831 1e+04 0.0313 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.214 0.24 9.61 0.219 0 0 0 test.phys initStep - 1 -0.262 0.27 10 0.219 0 0.39 0.39 World Transportation - 2 -1.26e+03 769 1e+04 0.219 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.214 0.24 9.61 0.0261 0 0 0 test.phys initStep - 1 -0.255 0.268 9.96 0.0261 0 0.345 0.345 test.phys Rayl - 2 -0.257 0.256 10 0.0261 0 0.0463 0.391 World Transportation - 3 -521 -2.45e+03 1e+04 0.0261 0 1.03e+04 1.03e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.214 0.24 9.61 24.3 0 0 0 test.phys initStep - 1 -0.268 0.269 10 24.3 0 0.391 0.391 World Transportation - 2 -1.4e+03 756 1e+04 24.3 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.214 0.24 9.61 1.42 0 0 0 test.phys initStep - 1 -0.262 0.274 10 1.42 0 0.391 0.391 World Transportation - 2 -1.26e+03 872 1e+04 1.42 0 1.01e+04 1.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.214 0.24 9.61 0.00965 0 0 0 test.phys initStep - 1 -0.226 0.247 9.71 0 0.00156 0.101 0.101 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.226 0.247 9.71 0.00809 0 0 0 test.phys initStep - 1 -0.226 0.247 9.71 0 0.00809 0.000925 0.000925 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 0.0529 -0.0012 2.89 97.8 1.14 2.89 1e+03 test.phys biasWrapper(eBrem) - 3 0.104 0.0527 5.74 96.4 1.31 2.85 1.01e+03 test.phys biasWrapper(eBrem) - 4 0.104 0.0589 5.99 78.1 0.0945 0.245 1.01e+03 test.phys biasWrapper(eBrem) - 5 0.118 0.171 10 76.6 1.43 4.02 1.01e+03 World Transportation - 6 -106 439 1e+04 76.6 3.6e-22 1e+04 1.1e+04 OutOfWorld Transportation + 2 0.0094 0.0155 1.42 99.5 0.443 1.42 1e+03 test.phys biasWrapper(eBrem) + 3 0.164 0.129 6.37 95.1 2.2 4.95 1.01e+03 test.phys biasWrapper(eBrem) + 4 0.269 0.229 9.38 1.92 1.38 3.02 1.01e+03 test.phys biasWrapper(eBrem) + 5 0.324 0.288 10 1.64 0.281 0.688 1.01e+03 World Transportation + 6 -881 -10.7 1e+04 1.64 2.66e-22 1e+04 1.1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 31, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0589 5.99 0.0107 0 0 0 test.phys initStep - 1 0.104 0.0643 6.16 0 0.00156 0.178 0.178 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 31 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0643 6.16 0.00914 0 0 0 test.phys initStep - 1 0.104 0.0646 6.16 0 0.00914 0.00114 0.00114 test.phys eIoni + 0 0.269 0.229 9.38 17.8 0 0 0 test.phys initStep + 1 0.289 0.245 10 17.8 0 0.623 0.623 World Transportation + 2 318 252 1e+04 17.8 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 30, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0589 5.99 0.0231 0 0 0 test.phys initStep - 1 0.116 0.131 7.74 0 0.00156 1.76 1.76 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 30 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.116 0.131 7.74 0.0216 0 0 0 test.phys initStep - 1 0.117 0.129 7.74 0 0.0216 0.00495 0.00495 test.phys eIoni + 0 0.269 0.229 9.38 1.31 0 0 0 test.phys initStep + 1 0.293 0.246 10 1.31 0 0.623 0.623 World Transportation + 2 378 275 1e+04 1.31 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 29, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0589 5.99 0.0725 0 0 0 test.phys initStep - 1 0.0816 0.144 10 0.0725 0 4.01 4.01 World Transportation - 2 -56.6 213 1e+04 0.0725 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.269 0.229 9.38 9.22 0 0 0 test.phys initStep + 1 0.289 0.241 10 9.22 0 0.623 0.623 World Transportation + 2 315 200 1e+04 9.22 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 28, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0589 5.99 0.239 0 0 0 test.phys initStep - 1 0.0557 0.0894 9.17 0.239 0 3.18 3.18 test.phys compt - 2 -0.0102 0.0758 10 0.239 0 0.837 4.02 World Transportation - 3 -789 -163 1e+04 0.239 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0557 0.0894 9.17 0.000263 0 0 0 test.phys initStep - 1 0.0557 0.0894 9.17 0 0.000263 8.1e-06 8.1e-06 test.phys eIoni + 0 0.269 0.229 9.38 0.595 0 0 0 test.phys initStep + 1 0.291 0.246 10 0.595 0 0.623 0.623 World Transportation + 2 351 272 1e+04 0.595 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 27, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0589 5.99 0.359 0 0 0 test.phys initStep - 1 0.201 0.101 10 0.359 0 4.02 4.02 World Transportation - 2 241 105 1e+04 0.359 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.269 0.229 9.38 0.00911 0 0 0 test.phys initStep + 1 0.269 0.229 9.38 0 0.00156 0.00341 0.00341 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 27 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.269 0.229 9.38 0.00755 0 0 0 test.phys initStep + 1 0.269 0.229 9.38 0 0.00755 0.000824 0.000824 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 26, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0589 5.99 1.65 0 0 0 test.phys initStep - 1 0.101 0.161 10 1.65 0 4.02 4.02 World Transportation - 2 -8.48 255 1e+04 1.65 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.269 0.229 9.38 1.4 0 0 0 test.phys initStep + 1 0.298 0.239 10 1.4 0 0.623 0.623 World Transportation + 2 470 161 1e+04 1.4 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0589 5.99 0.0223 0 0 0 test.phys initStep - 1 0.106 0.0954 7.21 0 0.00156 1.22 1.22 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 25 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.106 0.0954 7.21 0.0207 0 0 0 test.phys initStep - 1 0.105 0.0952 7.21 0 0.0207 0.00463 0.00463 test.phys eIoni + 0 0.269 0.229 9.38 0.598 0 0 0 test.phys initStep + 1 0.286 0.242 10 0.598 0 0.623 0.623 World Transportation + 2 274 215 1e+04 0.598 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 24, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0589 5.99 28.1 0 0 0 test.phys initStep - 1 0.2 0.294 10 28.1 0 4.02 4.02 World Transportation - 2 237 585 1e+04 28.1 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.269 0.229 9.38 0.0208 0 0 0 test.phys initStep + 1 0.289 0.247 10 0.0208 0 0.623 0.623 World Transportation + 2 325 288 1e+04 0.0208 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0589 5.99 0.328 0 0 0 test.phys initStep - 1 0.108 0.169 10 0.328 0 4.02 4.02 World Transportation - 2 8.07 273 1e+04 0.328 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.269 0.229 9.38 0.0151 0 0 0 test.phys initStep + 1 0.292 0.247 10 0.0151 0 0.623 0.623 World Transportation + 2 368 287 1e+04 0.0151 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0589 5.99 18.3 0 0 0 test.phys initStep - 1 0.117 0.15 10 18.3 0 4.01 4.01 World Transportation - 2 31 226 1e+04 18.3 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.269 0.229 9.38 91.8 0 0 0 test.phys initStep + 1 0.29 0.245 10 91.8 0 0.623 0.623 World Transportation + 2 337 263 1e+04 91.8 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0527 5.74 0.00715 0 0 0 test.phys initStep - 1 0.104 0.0528 5.75 0 0.000121 0.0104 0.0104 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 21 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0528 5.75 0.00703 0 0 0 test.phys initStep - 1 0.104 0.0526 5.75 0 0.00703 0.000731 0.000731 test.phys eIoni + 0 0.164 0.129 6.37 2.94 0 0 0 test.phys initStep + 1 0.281 0.185 10 2.94 0 3.64 3.64 World Transportation + 2 323 154 1e+04 2.94 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0527 5.74 10.9 0 0 0 test.phys initStep - 1 0.152 0.105 10 10.9 0 4.26 4.26 World Transportation - 2 113 123 1e+04 10.9 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.164 0.129 6.37 4.24 0 0 0 test.phys initStep + 1 0.247 0.213 10 4.24 0 3.64 3.64 World Transportation + 2 230 231 1e+04 4.24 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0527 5.74 0.0105 0 0 0 test.phys initStep - 1 0.105 0.0595 6.02 0 0.00156 0.278 0.278 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 19 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.105 0.0595 6.02 0.00891 0 0 0 test.phys initStep - 1 0.105 0.0593 6.02 0 0.00891 0.00109 0.00109 test.phys eIoni + 0 0.164 0.129 6.37 3.58 0 0 0 test.phys initStep + 1 0.242 0.169 10 3.58 0 3.64 3.64 World Transportation + 2 215 109 1e+04 3.58 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0527 5.74 0.227 0 0 0 test.phys initStep - 1 0.139 0.149 10 0.227 0 4.26 4.26 World Transportation - 2 80.6 226 1e+04 0.227 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.164 0.129 6.37 0.0972 0 0 0 test.phys initStep + 1 0.278 0.204 10 0.0972 0 3.64 3.64 World Transportation + 2 316 205 1e+04 0.0972 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0527 5.74 56.9 0 0 0 test.phys initStep - 1 0.14 0.188 10 56.9 0 4.26 4.26 World Transportation - 2 83 317 1e+04 56.9 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.164 0.129 6.37 1 0 0 0 test.phys initStep + 1 0.225 0.195 10 1 0 3.64 3.64 World Transportation + 2 169 182 1e+04 1 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0527 5.74 1.27 0 0 0 test.phys initStep - 1 0.15 0.113 10 1.27 0 4.26 4.26 World Transportation - 2 107 141 1e+04 1.27 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.164 0.129 6.37 3.99 0 0 0 test.phys initStep + 1 0.252 0.196 10 3.99 0 3.64 3.64 World Transportation + 2 243 185 1e+04 3.99 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0527 5.74 1.87 0 0 0 test.phys initStep - 1 0.14 0.181 10 1.87 0 4.26 4.26 World Transportation - 2 85.1 301 1e+04 1.87 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.164 0.129 6.37 0.114 0 0 0 test.phys initStep + 1 0.23 0.278 10 0.114 0 3.64 3.64 World Transportation + 2 183 408 1e+04 0.114 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0527 5.74 0.00633 0 0 0 test.phys initStep - 1 0.105 0.0548 5.83 0 0.00156 0.0859 0.0859 test.phys phot + 0 0.164 0.129 6.37 0.0233 0 0 0 test.phys initStep + 1 0.167 0.138 6.55 0 0.00156 0.187 0.187 test.phys phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 14 +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 14 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.105 0.0548 5.83 0.00476 0 0 0 test.phys initStep - 1 0.105 0.0548 5.83 0 0.00476 0.000385 0.000385 test.phys eIoni + 0 0.167 0.138 6.55 0.0217 0 0 0 test.phys initStep + 1 0.169 0.137 6.55 0 0.0217 0.00501 0.00501 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0527 5.74 0.836 0 0 0 test.phys initStep - 1 0.141 0.135 10 0.836 0 4.26 4.26 World Transportation - 2 86.1 192 1e+04 0.836 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.164 0.129 6.37 0.0254 0 0 0 test.phys initStep + 1 0.209 0.15 8.07 0 0.00156 1.7 1.7 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.209 0.15 8.07 0.0239 0 0 0 test.phys initStep + 1 0.208 0.149 8.07 0 0.0239 0.0059 0.0059 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.104 0.0527 5.74 0.0294 0 0 0 test.phys initStep - 1 0.116 0.097 7.79 0 0.00156 2.05 2.05 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 12 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.116 0.097 7.79 0.0279 0 0 0 test.phys initStep - 1 0.118 0.0977 7.79 0 0.0279 0.00773 0.00773 test.phys eIoni + 0 0.164 0.129 6.37 2.25 0 0 0 test.phys initStep + 1 0.251 0.189 10 2.25 0 3.64 3.64 World Transportation + 2 240 164 1e+04 2.25 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0529 -0.0012 2.89 1.02 0 0 0 test.phys initStep - 1 0.0397 0.0361 10 1.02 0 7.11 7.11 World Transportation - 2 -18.5 52.5 1e+04 1.02 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0094 0.0155 1.42 0.695 0 0 0 test.phys initStep + 1 0.102 0.0576 10 0.695 0 8.59 8.59 World Transportation + 2 108 49.1 1e+04 0.695 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0529 -0.0012 2.89 4.04 0 0 0 test.phys initStep - 1 0.0853 0.0615 10 4.04 0 7.11 7.11 World Transportation - 2 45.7 88.2 1e+04 4.04 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0094 0.0155 1.42 4.77 0 0 0 test.phys initStep + 1 0.0921 0.0273 3.34 2.27 0 1.93 1.93 test.phys compt + 2 2.41 -2.9 10 2.27 0 7.63 9.56 World Transportation + 3 3.48e+03 -4.4e+03 1e+04 2.27 0 1.15e+04 1.15e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0921 0.0273 3.34 2.5 0 0 0 test.phys initStep + 1 -1.07 0.817 4.77 1.84 0.659 2.19 2.19 test.phys msc + 2 -2.26 1.69 5.28 0.916 0.925 2.26 4.45 test.phys eIoni + 3 -2.67 1.98 5.81 0.25 0.667 1.54 5.99 test.phys eIoni + 4 -2.77 2.02 5.81 0 0.25 0.305 6.3 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0529 -0.0012 2.89 0.116 0 0 0 test.phys initStep - 1 0.0332 0.0455 4.71 0.0798 0 1.82 1.82 test.phys compt - 2 0.463 -0.336 2.3 0.065 0 2.48 4.3 test.phys compt - 3 -4.5 -11.5 10 0.065 0 14.5 18.8 World Transportation - 4 -4.43e+03 -1e+04 6.89e+03 0.065 0 1.29e+04 1.29e+04 OutOfWorld Transportation + 0 0.0094 0.0155 1.42 0.0386 0 0 0 test.phys initStep + 1 0.0589 0.0767 4.87 0 0.00156 3.46 3.46 test.phys phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 9 +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 9 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.463 -0.336 2.3 0.0148 0 0 0 test.phys initStep - 1 0.464 -0.336 2.3 0 0.0148 0.00259 0.00259 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 9 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0332 0.0455 4.71 0.0357 0 0 0 test.phys initStep - 1 0.0329 0.0458 4.71 0 0.0357 0.0119 0.0119 test.phys eIoni + 0 0.0589 0.0767 4.87 0.037 0 0 0 test.phys initStep + 1 0.0562 0.0779 4.88 0 0.037 0.0126 0.0126 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0529 -0.0012 2.89 0.0235 0 0 0 test.phys initStep - 1 0.0475 0.0129 3.33 0.0235 0 0.443 0.443 test.phys Rayl - 2 -0.0889 0.0908 3.11 0 0.00156 0.27 0.713 test.phys phot + 0 0.0094 0.0155 1.42 0.0852 0 0 0 test.phys initStep + 1 0.0518 0.14 8.27 0.0772 0 6.85 6.85 test.phys compt + 2 -2.53 -2.97 10 0.0772 0 4.39 11.2 World Transportation + 3 -8.29e+03 -1e+04 5.58e+03 0.0772 0 1.41e+04 1.41e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 8 +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 8 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0889 0.0908 3.11 0.0219 0 0 0 test.phys initStep - 1 -0.0888 0.0909 3.11 0 0.0219 0.00509 0.00509 test.phys eIoni + 0 0.0518 0.14 8.27 0.00801 0 0 0 test.phys initStep + 1 0.052 0.14 8.27 0 0.00801 0.00091 0.00091 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0529 -0.0012 2.89 0.0256 0 0 0 test.phys initStep - 1 0.0972 0.0201 7.73 0 0.00156 4.84 4.84 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0972 0.0201 7.73 0.0241 0 0 0 test.phys initStep - 1 0.0981 0.0212 7.73 0 0.0241 0.006 0.006 test.phys eIoni + 0 0.0094 0.0155 1.42 4.65 0 0 0 test.phys initStep + 1 0.284 0.308 10 4.65 0 8.59 8.59 World Transportation + 2 320 341 1e+04 4.65 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0529 -0.0012 2.89 16.6 0 0 0 test.phys initStep - 1 0.0769 0.0565 10 16.6 0 7.11 7.11 World Transportation - 2 33.9 81.1 1e+04 16.6 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0094 0.0155 1.42 0.243 0 0 0 test.phys initStep + 1 0.199 0.151 10 0.243 0 8.59 8.59 World Transportation + 2 221 158 1e+04 0.243 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0529 -0.0012 2.89 18.1 0 0 0 test.phys initStep - 1 0.0837 0.0731 10 18.1 0 7.11 7.11 World Transportation - 2 43.3 104 1e+04 18.1 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0094 0.0155 1.42 0.293 0 0 0 test.phys initStep + 1 0.167 0.136 10 0.293 0 8.59 8.59 World Transportation + 2 184 141 1e+04 0.293 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0529 -0.0012 2.89 0.394 0 0 0 test.phys initStep - 1 0.0487 -0.0172 10 0.394 0 7.11 7.11 World Transportation - 2 -5.84 -22.5 1e+04 0.394 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0094 0.0155 1.42 0.0534 0 0 0 test.phys initStep + 1 0.0696 0.164 10 0.0534 0 8.59 8.59 World Transportation + 2 70.2 173 1e+04 0.0534 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0529 -0.0012 2.89 0.0213 0 0 0 test.phys initStep - 1 0.0591 -0.00216 4.4 0 0.00156 1.51 1.51 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0591 -0.00216 4.4 0.0197 0 0 0 test.phys initStep - 1 0.059 -0.000808 4.4 0 0.0197 0.00425 0.00425 test.phys eIoni + 0 0.0094 0.0155 1.42 13.5 0 0 0 test.phys initStep + 1 0.0688 0.154 10 13.5 0 8.59 8.59 World Transportation + 2 69.2 162 1e+04 13.5 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0529 -0.0012 2.89 1.07 0 0 0 test.phys initStep - 1 0.0763 0.0436 10 1.07 0 7.11 7.11 World Transportation - 2 32.9 62.9 1e+04 1.07 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0094 0.0155 1.42 0.0352 0 0 0 test.phys initStep + 1 0.137 0.161 10 0.0352 0 8.59 8.59 World Transportation + 2 149 169 1e+04 0.0352 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3562,420 +3493,339 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 -1e+03 100 0 0 0 World initStep 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 0.00195 0.0018 0.393 99.3 0.13 0.393 1e+03 test.phys eIoni - 3 0.00711 -0.00134 1.28 98.9 0.356 0.882 1e+03 test.phys biasWrapper(eBrem) - 4 0.22 -0.0839 7.41 96.7 2.21 6.14 1.01e+03 test.phys biasWrapper(eBrem) - 5 0.521 0.0444 10 95.7 0.954 2.61 1.01e+03 World Transportation - 6 1.42e+03 416 1e+04 95.7 3.7e-22 1.01e+04 1.11e+04 OutOfWorld Transportation + 2 0.0539 0.0896 4.55 98 1.55 4.55 1e+03 test.phys biasWrapper(eBrem) + 3 0.131 0.118 6.59 94.4 0.663 2.04 1.01e+03 test.phys biasWrapper(eBrem) + 4 0.192 0.164 8.51 92.7 0.615 1.92 1.01e+03 test.phys biasWrapper(eBrem) + 5 0.246 0.195 10 92.1 0.575 1.5 1.01e+03 World Transportation + 6 187 46 1e+04 92.1 3.65e-22 9.99e+03 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 31, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.192 0.164 8.51 32 0 0 0 test.phys initStep + 1 0.247 0.187 10 32 0 1.5 1.5 World Transportation + 2 371 160 1e+04 32 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 30, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.192 0.164 8.51 10.4 0 0 0 test.phys initStep + 1 0.242 0.195 10 10.4 0 1.5 1.5 World Transportation + 2 334 213 1e+04 10.4 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.192 0.164 8.51 0.0228 0 0 0 test.phys initStep + 1 0.194 0.165 8.58 0 0.00156 0.0705 0.0705 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.194 0.165 8.58 0.0212 0 0 0 test.phys initStep + 1 0.195 0.164 8.58 0 0.0212 0.00483 0.00483 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 28, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.192 0.164 8.51 0.163 0 0 0 test.phys initStep + 1 0.25 0.211 10 0.163 0 1.5 1.5 World Transportation + 2 386 319 1e+04 0.163 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 27, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.192 0.164 8.51 0.599 0 0 0 test.phys initStep + 1 0.252 0.187 10 0.599 0 1.5 1.5 World Transportation + 2 404 158 1e+04 0.599 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.192 0.164 8.51 1.02 0 0 0 test.phys initStep + 1 0.244 0.2 10 1.02 0 1.5 1.5 World Transportation + 2 351 244 1e+04 1.02 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.192 0.164 8.51 8.86 0 0 0 test.phys initStep + 1 0.248 0.127 10 8.86 0 1.5 1.5 World Transportation + 2 375 -246 1e+04 8.86 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.192 0.164 8.51 50.3 0 0 0 test.phys initStep + 1 0.255 0.199 10 50.3 0 1.5 1.5 World Transportation + 2 424 236 1e+04 50.3 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.192 0.164 8.51 0.0115 0 0 0 test.phys initStep + 1 0.192 0.164 8.51 0 0.00156 0.00676 0.00676 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 23 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.192 0.164 8.51 0.00997 0 0 0 test.phys initStep + 1 0.192 0.164 8.51 0 0.00997 0.00132 0.00132 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.22 -0.0839 7.41 63.7 0 0 0 test.phys initStep - 1 0.534 0.0141 10 63.7 0 2.61 2.61 World Transportation - 2 1.21e+03 378 1e+04 63.7 0 1.01e+04 1.01e+04 OutOfWorld Transportation + 0 0.192 0.164 8.51 1.17 0 0 0 test.phys initStep + 1 0.254 0.202 10 1.17 0 1.5 1.5 World Transportation + 2 417 254 1e+04 1.17 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.22 -0.0839 7.41 6.68 0 0 0 test.phys initStep - 1 0.52 0.0615 10 6.68 0 2.61 2.61 World Transportation - 2 1.16e+03 560 1e+04 6.68 0 1.01e+04 1.01e+04 OutOfWorld Transportation + 0 0.131 0.118 6.59 0.0246 0 0 0 test.phys initStep + 1 0.142 0.122 6.84 0 0.00156 0.252 0.252 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 21 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.142 0.122 6.84 0.023 0 0 0 test.phys initStep + 1 0.143 0.121 6.84 0 0.023 0.00554 0.00554 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.22 -0.0839 7.41 0.00674 0 0 0 test.phys initStep - 1 0.222 -0.0826 7.43 0 0.00156 0.0242 0.0242 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 20 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.222 -0.0826 7.43 0.00518 0 0 0 test.phys initStep - 1 0.222 -0.0826 7.43 0 0.00518 0.000441 0.000441 test.phys eIoni + 0 0.131 0.118 6.59 0.622 0 0 0 test.phys initStep + 1 0.207 0.0846 10 0.622 0 3.41 3.41 World Transportation + 2 223 -97.8 1e+04 0.622 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.22 -0.0839 7.41 0.0367 0 0 0 test.phys initStep - 1 0.245 -0.0711 7.63 0 0.000121 0.222 0.222 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 19 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.245 -0.0711 7.63 0.0366 0 0 0 test.phys initStep - 1 0.247 -0.0675 7.63 0 0.0366 0.0124 0.0124 test.phys eIoni + 0 0.131 0.118 6.59 0.224 0 0 0 test.phys initStep + 1 0.288 0.19 10 0.224 0 3.42 3.42 World Transportation + 2 460 211 1e+04 0.224 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.22 -0.0839 7.41 1.64 0 0 0 test.phys initStep - 1 0.518 0.0455 10 1.64 0 2.61 2.61 World Transportation - 2 1.15e+03 499 1e+04 1.64 0 1.01e+04 1.01e+04 OutOfWorld Transportation + 0 0.131 0.118 6.59 4.38 0 0 0 test.phys initStep + 1 0.287 0.171 10 4.38 0 3.42 3.42 World Transportation + 2 457 154 1e+04 4.38 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.22 -0.0839 7.41 0.0108 0 0 0 test.phys initStep - 1 0.242 -0.075 7.6 0 0.00156 0.191 0.191 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 17 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.242 -0.075 7.6 0.00924 0 0 0 test.phys initStep - 1 0.242 -0.0748 7.6 0 0.00924 0.00116 0.00116 test.phys eIoni + 0 0.131 0.118 6.59 0.248 0 0 0 test.phys initStep + 1 0.313 0.155 10 0.248 0 3.42 3.42 World Transportation + 2 533 108 1e+04 0.248 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.22 -0.0839 7.41 0.033 0 0 0 test.phys initStep - 1 0.519 0.0285 10 0.033 0 2.61 2.61 World Transportation - 2 1.15e+03 433 1e+04 0.033 0 1.01e+04 1.01e+04 OutOfWorld Transportation + 0 0.131 0.118 6.59 0.0203 0 0 0 test.phys initStep + 1 0.186 0.13 7.52 0 0.00156 0.931 0.931 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 16 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.186 0.13 7.52 0.0188 0 0 0 test.phys initStep + 1 0.186 0.131 7.52 0 0.0188 0.0039 0.0039 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.22 -0.0839 7.41 0.0312 0 0 0 test.phys initStep - 1 0.271 -0.0669 7.9 0.0312 0 0.496 0.496 test.phys Rayl - 2 4.34 2.95 9.97 0.0312 0 5.47 5.97 test.phys Rayl - 3 4.41 3.01 10 0.0312 0 0.0952 6.06 World Transportation - 4 1e+04 9.51e+03 4.84e+03 0.0312 0 1.46e+04 1.46e+04 OutOfWorld Transportation + 0 0.131 0.118 6.59 0.062 0 0 0 test.phys initStep + 1 0.182 0.153 10 0.062 0 3.41 3.41 World Transportation + 2 151 104 1e+04 0.062 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.22 -0.0839 7.41 4.08 0 0 0 test.phys initStep - 1 0.513 0.0602 10 4.08 0 2.61 2.61 World Transportation - 2 1.13e+03 555 1e+04 4.08 0 1.01e+04 1.01e+04 OutOfWorld Transportation + 0 0.131 0.118 6.59 0.174 0 0 0 test.phys initStep + 1 0.29 0.179 10 0.174 0 3.42 3.42 World Transportation + 2 465 179 1e+04 0.174 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.22 -0.0839 7.41 0.00986 0 0 0 test.phys initStep - 1 0.225 -0.0818 7.46 0 0.00156 0.0516 0.0516 test.phys phot + 0 0.131 0.118 6.59 0.0151 0 0 0 test.phys initStep + 1 0.133 0.119 6.65 0 0.00156 0.0589 0.0589 test.phys phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 13 +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 13 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.225 -0.0818 7.46 0.0083 0 0 0 test.phys initStep - 1 0.225 -0.0817 7.46 0 0.0083 0.000966 0.000966 test.phys eIoni + 0 0.133 0.119 6.65 0.0135 0 0 0 test.phys initStep + 1 0.133 0.119 6.65 0 0.0135 0.00222 0.00222 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00711 -0.00134 1.28 0.963 0 0 0 test.phys initStep - 1 0.0247 -0.29 10 0.963 0 8.73 8.73 World Transportation - 2 20.2 -331 1e+04 0.963 0 1e+04 1e+04 OutOfWorld Transportation + 0 0.131 0.118 6.59 2.86 0 0 0 test.phys initStep + 1 0.286 0.18 10 2.86 0 3.42 3.42 World Transportation + 2 454 183 1e+04 2.86 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00711 -0.00134 1.28 0.378 0 0 0 test.phys initStep - 1 0.072 -0.0643 10 0.378 0 8.72 8.72 World Transportation - 2 74.4 -72.2 1e+04 0.378 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0539 0.0896 4.55 0.0662 0 0 0 test.phys initStep + 1 0.303 0.251 10 0.0662 0 5.46 5.46 World Transportation + 2 457 297 1e+04 0.0662 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00711 -0.00134 1.28 0.0278 0 0 0 test.phys initStep - 1 0.0249 -0.0158 3.01 0 0.000121 1.73 1.73 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0249 -0.0158 3.01 0.0277 0 0 0 test.phys initStep - 1 0.0229 -0.0158 3.01 0 0.0277 0.00766 0.00766 test.phys eIoni + 0 0.0539 0.0896 4.55 0.326 0 0 0 test.phys initStep + 1 0.278 0.257 10 0.326 0 5.45 5.45 World Transportation + 2 412 308 1e+04 0.326 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00711 -0.00134 1.28 0.106 0 0 0 test.phys initStep - 1 0.15 -0.0929 10 0.106 0 8.73 8.73 World Transportation - 2 164 -105 1e+04 0.106 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0539 0.0896 4.55 13 0 0 0 test.phys initStep + 1 0.273 0.25 10 13 0 5.45 5.45 World Transportation + 2 402 295 1e+04 13 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00711 -0.00134 1.28 0.0248 0 0 0 test.phys initStep - 1 0.0407 -0.00486 4.41 0 0.00156 3.14 3.14 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 8 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0407 -0.00486 4.41 0.0232 0 0 0 test.phys initStep - 1 0.04 -0.00347 4.41 0 0.0232 0.00564 0.00564 test.phys eIoni + 0 0.0539 0.0896 4.55 0.149 0 0 0 test.phys initStep + 1 0.338 0.244 10 0.149 0 5.46 5.46 World Transportation + 2 522 284 1e+04 0.149 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00711 -0.00134 1.28 0.629 0 0 0 test.phys initStep - 1 -0.193 -0.0979 10 0.629 0 8.73 8.73 World Transportation - 2 -229 -111 1e+04 0.629 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0539 0.0896 4.55 0.0136 0 0 0 test.phys initStep + 1 0.0551 0.091 4.59 0 0.00156 0.0416 0.0416 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0551 0.091 4.59 0.0121 0 0 0 test.phys initStep + 1 0.0555 0.0908 4.59 0 0.0121 0.00182 0.00182 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00711 -0.00134 1.28 0.227 0 0 0 test.phys initStep - 1 0.122 0.0122 10 0.227 0 8.73 8.73 World Transportation - 2 132 15.5 1e+04 0.227 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0539 0.0896 4.55 0.0742 0 0 0 test.phys initStep + 1 0.143 0.161 7.58 0.0735 0 3.03 3.03 test.phys compt + 2 0.268 0.205 7.88 0 0.00156 0.327 3.36 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.268 0.205 7.88 0.0719 0 0 0 test.phys initStep + 1 0.277 0.214 7.88 0 0.0719 0.0398 0.0398 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.143 0.161 7.58 0.000777 0 0 0 test.phys initStep + 1 0.143 0.161 7.58 0 0.000777 2.66e-05 2.66e-05 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00711 -0.00134 1.28 1.09 0 0 0 test.phys initStep - 1 0.0486 -0.0726 10 1.09 0 8.72 8.72 World Transportation - 2 47.6 -81.7 1e+04 1.09 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0539 0.0896 4.55 2.97 0 0 0 test.phys initStep + 1 0.279 0.242 10 2.97 0 5.45 5.45 World Transportation + 2 412 280 1e+04 2.97 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00711 -0.00134 1.28 0.127 0 0 0 test.phys initStep - 1 0.0379 -0.000594 7.86 0.119 0 6.59 6.59 test.phys compt - 2 0.581 -2.02 10 0.119 0 2.99 9.58 World Transportation - 3 2.54e+03 -9.44e+03 1e+04 0.119 0 1.4e+04 1.4e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0379 -0.000594 7.86 0.00845 0 0 0 test.phys initStep - 1 0.0379 -0.000332 7.86 0 0.00845 0.000995 0.000995 test.phys eIoni + 0 0.0539 0.0896 4.55 94.8 0 0 0 test.phys initStep + 1 0.225 0.315 10 94.8 0 5.45 5.45 World Transportation + 2 314 413 1e+04 94.8 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00711 -0.00134 1.28 0.0343 0 0 0 test.phys initStep - 1 0.0251 0.0121 5.78 0 0.00156 4.51 4.51 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0251 0.0121 5.78 0.0328 0 0 0 test.phys initStep - 1 0.0218 0.0119 5.78 0 0.0328 0.0102 0.0102 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.00195 0.0018 0.393 0.584 0 0 0 test.phys initStep - 1 -0.212 0.0627 0.432 0.495 0.0888 0.246 0.246 test.phys msc - 2 -0.279 0.0424 0.235 0.386 0.11 0.232 0.477 test.phys msc - 3 -0.326 -0.0168 0.141 0.245 0.141 0.131 0.609 test.phys msc - 4 -0.267 -0.0552 0.116 0.187 0.0582 0.083 0.692 test.phys msc - 5 -0.217 -0.0851 0.102 0.147 0.0398 0.0694 0.761 test.phys msc - 6 -0.173 -0.0823 0.115 0 0.147 0.131 0.892 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 -0.00409 0.0546 2.96 98.4 0.969 2.96 1e+03 test.phys biasWrapper(eBrem) - 3 0.0969 0.348 9.07 95.3 2.21 6.12 1.01e+03 test.phys eIoni - 4 0.115 0.387 10 95 0.311 0.929 1.01e+03 World Transportation - 5 216 176 1e+04 95 3.66e-22 9.99e+03 1.1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0969 0.348 9.07 0.946 0 0 0 test.phys initStep - 1 0.0247 0.101 9.56 0.68 0.266 0.607 0.607 test.phys msc - 2 0.0527 -0.0193 9.77 0.596 0.0844 0.271 0.878 test.phys msc - 3 0.139 -0.0251 9.87 0.502 0.0935 0.134 1.01 test.phys msc - 4 0.157 -0.0491 9.95 0.472 0.0307 0.0898 1.1 test.phys msc - 5 0.149 -0.0534 10 0.455 0.0164 0.056 1.16 World Transportation - 6 4.28e+03 -6.81e+03 1e+04 0.455 4.01e-22 1.28e+04 1.28e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00409 0.0546 2.96 0.575 0 0 0 test.phys initStep - 1 -0.0482 0.278 10 0.575 0 7.04 7.04 World Transportation - 2 -62.6 318 1e+04 0.575 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00409 0.0546 2.96 0.0722 0 0 0 test.phys initStep - 1 -0.0338 0.141 5.99 0.0572 0 3.04 3.04 test.phys compt - 2 -0.0396 -0.0293 5.74 0.0518 0 0.309 3.34 test.phys compt - 3 7.5 -7.99 10 0.0518 0 11.8 15.1 World Transportation - 4 9.47e+03 -1e+04 5.36e+03 0.0518 0 1.48e+04 1.48e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0396 -0.0293 5.74 0.00546 0 0 0 test.phys initStep - 1 -0.0397 -0.0293 5.74 0 0.00546 0.000481 0.000481 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0338 0.141 5.99 0.0149 0 0 0 test.phys initStep - 1 -0.0338 0.141 5.99 0 0.0149 0.00263 0.00263 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00409 0.0546 2.96 0.152 0 0 0 test.phys initStep - 1 -0.024 0.238 10 0.152 0 7.04 7.04 World Transportation - 2 -28.2 260 1e+04 0.152 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00409 0.0546 2.96 1.48 0 0 0 test.phys initStep - 1 -0.0347 0.28 10 1.48 0 7.04 7.04 World Transportation - 2 -43.4 321 1e+04 1.48 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00409 0.0546 2.96 0.769 0 0 0 test.phys initStep - 1 -0.0058 0.176 6.98 0.271 0 4.03 4.03 test.phys compt - 2 -29.5 3.72 0 0.271 0 30.5 34.6 World Transportation - 3 -1e+04 1.2e+03 -2.36e+03 0.271 0 1.03e+04 1.03e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0058 0.176 6.98 0.499 0 0 0 test.phys initStep - 1 0.0876 0.173 7.28 0 0.499 0.838 0.838 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00409 0.0546 2.96 2.01 0 0 0 test.phys initStep - 1 0.00767 0.238 10 2.01 0 7.04 7.04 World Transportation - 2 16.7 260 1e+04 2.01 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00409 0.0546 2.96 0.00929 0 0 0 test.phys initStep - 1 -0.00405 0.0566 3.03 0 0.00156 0.0689 0.0689 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00405 0.0566 3.03 0.00773 0 0 0 test.phys initStep - 1 -0.00424 0.0564 3.03 0 0.00773 0.000857 0.000857 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00409 0.0546 2.96 41.5 0 0 0 test.phys initStep - 1 -0.0173 0.262 10 41.5 0 7.04 7.04 World Transportation - 2 -18.8 295 1e+04 41.5 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00409 0.0546 2.96 0.022 0 0 0 test.phys initStep - 1 -0.00601 0.0587 3.14 0 0.00156 0.177 0.177 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00601 0.0587 3.14 0.0204 0 0 0 test.phys initStep - 1 -0.00538 0.058 3.14 0 0.0204 0.00451 0.00451 test.phys eIoni + 0 0.0539 0.0896 4.55 8.72 0 0 0 test.phys initStep + 1 0.289 0.247 10 8.72 0 5.45 5.45 World Transportation + 2 431 289 1e+04 8.72 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00409 0.0546 2.96 0.584 0 0 0 test.phys initStep - 1 -0.0184 0.247 10 0.584 0 7.04 7.04 World Transportation - 2 -20.3 274 1e+04 0.584 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 0.0539 0.0896 4.55 0.477 0 0 0 test.phys initStep + 1 0.278 0.243 10 0.477 0 5.45 5.45 World Transportation + 2 411 281 1e+04 0.477 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3984,640 +3834,1503 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 -1e+03 100 0 0 0 World initStep 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 0.0955 0.00118 4.29 96.8 2.06 4.29 1e+03 test.phys biasWrapper(eBrem) - 3 0.284 -0.0581 9.19 93.8 1.76 4.91 1.01e+03 test.phys eIoni - 4 0.242 -0.0873 10 93.5 0.384 0.814 1.01e+03 World Transportation - 5 -615 -318 1e+04 93.5 3.66e-22 1e+04 1.1e+04 OutOfWorld Transportation + 2 -0.0102 -0.0172 1.51 88.2 0.508 1.51 1e+03 test.phys biasWrapper(eBrem) + 3 -0.0262 -0.0182 2.38 87.8 0.337 0.87 1e+03 test.phys biasWrapper(eBrem) + 4 -0.0686 -0.0504 4.11 86.6 0.974 1.73 1e+03 test.phys biasWrapper(eBrem) + 5 -0.121 -0.118 6.67 85.2 0.815 2.56 1.01e+03 test.phys biasWrapper(eBrem) + 6 -0.351 -0.266 10 83.8 1.35 3.35 1.01e+03 World Transportation + 7 -674 -393 1e+04 83.8 3.63e-22 1e+04 1.1e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 41, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.284 -0.0581 9.19 1.24 0 0 0 test.phys initStep - 1 0.379 0.0949 9.7 0.724 0.513 0.582 0.582 test.phys msc - 2 0.407 0.0448 9.88 0.631 0.0933 0.194 0.776 test.phys msc - 3 0.44 -0.0389 9.97 0.569 0.0621 0.142 0.918 test.phys msc - 4 0.457 -0.062 10 0.56 0.00926 0.0432 0.961 World Transportation - 5 7.4e+03 -6.35e+03 1e+04 0.56 4.14e-22 1.4e+04 1.4e+04 OutOfWorld Transportation + 0 -0.121 -0.118 6.67 1.27 0 0 0 test.phys initStep + 1 -0.349 -0.257 10 1.27 0 3.34 3.34 World Transportation + 2 -684 -417 1e+04 1.27 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 40, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0955 0.00118 4.29 0.699 0 0 0 test.phys initStep - 1 0.165 -0.0968 10 0.699 0 5.72 5.72 World Transportation - 2 121 -171 1e+04 0.699 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 -0.121 -0.118 6.67 0.019 0 0 0 test.phys initStep + 1 -0.174 -0.17 7.61 0 0.00156 0.943 0.943 test.phys phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0955 0.00118 4.29 0.215 0 0 0 test.phys initStep - 1 0.135 -0.0455 6.79 0.139 0 2.5 2.5 test.phys compt - 2 10.8 -6.78 2.69 0.118 0 13.2 15.7 test.phys compt - 3 8.52 -13.5 0 0.118 0 7.59 23.3 World Transportation - 4 -3.34e+03 -1e+04 -3.99e+03 0.118 0 1.13e+04 1.13e+04 OutOfWorld Transportation + 0 -0.174 -0.17 7.61 0.0174 0 0 0 test.phys initStep + 1 -0.174 -0.17 7.61 0 0.0174 0.00344 0.00344 test.phys eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 10 +* G4Track Information: Particle = gamma, Track ID = 39, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 10.8 -6.78 2.69 0.0218 0 0 0 test.phys initStep - 1 10.8 -6.78 2.69 0 0.0218 0.00504 0.00504 test.phys eIoni + 0 -0.121 -0.118 6.67 0.127 0 0 0 test.phys initStep + 1 -0.339 -0.263 10 0.127 0 3.34 3.34 World Transportation + 2 -656 -434 1e+04 0.127 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 10 +* G4Track Information: Particle = gamma, Track ID = 38, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.135 -0.0455 6.79 0.0755 0 0 0 test.phys initStep - 1 0.13 -0.0421 6.8 0 0.0755 0.0432 0.0432 test.phys eIoni + 0 -0.121 -0.118 6.67 0.318 0 0 0 test.phys initStep + 1 -0.364 -0.266 10 0.318 0 3.34 3.34 World Transportation + 2 -730 -444 1e+04 0.318 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 37, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0955 0.00118 4.29 0.0219 0 0 0 test.phys initStep - 1 0.111 -0.0303 5.69 0 0.00156 1.41 1.41 test.phys phot + 0 -0.121 -0.118 6.67 1.17 0 0 0 test.phys initStep + 1 -0.341 -0.297 10 1.17 0 3.34 3.34 World Transportation + 2 -660 -538 1e+04 1.17 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 9 +* G4Track Information: Particle = gamma, Track ID = 36, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.111 -0.0303 5.69 0.0203 0 0 0 test.phys initStep - 1 0.11 -0.0304 5.69 0 0.0203 0.00446 0.00446 test.phys eIoni + 0 -0.121 -0.118 6.67 5.54 0 0 0 test.phys initStep + 1 -0.356 -0.289 10 5.54 0 3.35 3.35 World Transportation + 2 -705 -512 1e+04 5.54 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 35, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0955 0.00118 4.29 19.4 0 0 0 test.phys initStep - 1 0.181 -0.0779 10 19.4 0 5.72 5.72 World Transportation - 2 150 -138 1e+04 19.4 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 -0.121 -0.118 6.67 2.05 0 0 0 test.phys initStep + 1 -0.485 -0.233 10 2.05 0 3.35 3.35 World Transportation + 2 -1.09e+03 -346 1e+04 2.05 0 1.01e+04 1.01e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 34, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0955 0.00118 4.29 0.181 0 0 0 test.phys initStep - 1 0.161 -0.105 10 0.181 0 5.72 5.72 World Transportation - 2 114 -186 1e+04 0.181 0 9.99e+03 1e+04 OutOfWorld Transportation + 0 -0.121 -0.118 6.67 14 0 0 0 test.phys initStep + 1 -0.354 -0.258 10 14 0 3.34 3.34 World Transportation + 2 -700 -421 1e+04 14 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 33, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0955 0.00118 4.29 0.32 0 0 0 test.phys initStep - 1 0.144 -0.137 10 0.32 0 5.72 5.72 World Transportation - 2 85 -242 1e+04 0.32 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0955 0.00118 4.29 0.341 0 0 0 test.phys initStep - 1 0.1 -0.00557 4.68 0.313 0 0.398 0.398 test.phys compt - 2 1.19 -2.99 10 0.313 0 6.19 6.59 World Transportation - 3 2.06e+03 -5.61e+03 1e+04 0.313 0 1.16e+04 1.16e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 5 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.1 -0.00557 4.68 0.0274 0 0 0 test.phys initStep - 1 0.0997 -0.00348 4.68 0 0.0274 0.00753 0.00753 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0955 0.00118 4.29 39.7 0 0 0 test.phys initStep - 1 0.171 -0.0799 10 39.7 0 5.72 5.72 World Transportation - 2 133 -142 1e+04 39.7 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0955 0.00118 4.29 0.0537 0 0 0 test.phys initStep - 1 0.363 -0.012 10 0.0537 0 5.72 5.72 World Transportation - 2 468 -23.1 1e+04 0.0537 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0955 0.00118 4.29 1.09 0 0 0 test.phys initStep - 1 0.172 -0.0819 10 1.09 0 5.72 5.72 World Transportation - 2 134 -145 1e+04 1.09 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 0.166 0.0456 6.34 97.5 2.4 6.35 1.01e+03 test.phys biasWrapper(eBrem) - 3 0.22 0.0252 10 96.1 1.36 3.66 1.01e+03 World Transportation - 4 -221 -53.5 1e+04 96.1 3.66e-22 9.99e+03 1.1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.166 0.0456 6.34 6.83 0 0 0 test.phys initStep - 1 0.217 0.0278 10 6.83 0 3.66 3.66 World Transportation - 2 141 -48.6 1e+04 6.83 0 9.99e+03 9.99e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.166 0.0456 6.34 0.0127 0 0 0 test.phys initStep - 1 0.182 0.0563 6.93 0 0.00156 0.589 0.589 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 10 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.182 0.0563 6.93 0.0111 0 0 0 test.phys initStep - 1 0.182 0.0567 6.93 0 0.0111 0.00158 0.00158 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.166 0.0456 6.34 0.0319 0 0 0 test.phys initStep - 1 0.193 0.00931 8.65 0.0319 0 2.31 2.31 test.phys Rayl - 2 0.0774 0.019 10 0.0319 0 1.36 3.66 World Transportation - 3 -856 71.7 1e+04 0.0319 0 1e+04 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.166 0.0456 6.34 0.374 0 0 0 test.phys initStep - 1 0.231 0.017 10 0.374 0 3.66 3.66 World Transportation - 2 178 -78.1 1e+04 0.374 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.166 0.0456 6.34 1.43 0 0 0 test.phys initStep - 1 0.218 0.0312 10 1.43 0 3.66 3.66 World Transportation - 2 143 -39.2 1e+04 1.43 0 9.99e+03 9.99e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.166 0.0456 6.34 0.0378 0 0 0 test.phys initStep - 1 0.232 0.0259 10 0.0378 0 3.66 3.66 World Transportation - 2 181 -53.7 1e+04 0.0378 0 9.99e+03 1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.166 0.0456 6.34 8.2 0 0 0 test.phys initStep - 1 0.221 0.0243 10 8.2 0 3.66 3.66 World Transportation - 2 150 -58.3 1e+04 8.2 0 9.99e+03 9.99e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.166 0.0456 6.34 5.34 0 0 0 test.phys initStep - 1 0.216 0.0296 10 5.34 0 3.66 3.66 World Transportation - 2 138 -43.6 1e+04 5.34 0 9.99e+03 9.99e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.166 0.0456 6.34 0.345 0 0 0 test.phys initStep - 1 0.208 0.0143 10 0.345 0 3.66 3.66 World Transportation - 2 115 -85.6 1e+04 0.345 0 9.99e+03 9.99e+03 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.166 0.0456 6.34 0.135 0 0 0 test.phys initStep - 1 0.205 0.0224 9.36 0.125 0 3.02 3.02 test.phys compt - 2 0.829 0.0553 10 0.125 0 0.892 3.91 World Transportation - 3 9.8e+03 517 1e+04 0.125 0 1.4e+04 1.4e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.205 0.0224 9.36 0.00919 0 0 0 test.phys initStep - 1 0.205 0.0224 9.36 0 0.00919 0.00115 0.00115 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 0.108 0.0614 5.1 97.4 1.96 5.11 1.01e+03 test.phys eIoni - 3 0.171 0.201 8.31 95.5 1.21 3.21 1.01e+03 test.phys eIoni - 4 0.229 0.266 10 94.8 0.687 1.69 1.01e+03 World Transportation - 5 406 253 1e+04 94.8 3.66e-22 1e+04 1.1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.171 0.201 8.31 0.683 0 0 0 test.phys initStep - 1 -0.101 -0.0431 8.64 0.111 0.571 1.23 1.23 test.phys eIoni - 2 -0.109 -0.0702 8.64 0 0.111 0.0831 1.31 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.108 0.0614 5.1 0.647 0 0 0 test.phys initStep - 1 0.0488 0.419 5.38 0.113 0.534 1.17 1.17 test.phys eIoni - 2 0.0566 0.41 5.35 0 0.113 0.0848 1.25 test.phys eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -1e+03 100 0 0 0 World initStep - 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation - 2 -0.0726 0.095 4.98 96.9 1.82 4.98 1e+03 test.phys eIoni - 3 -0.077 0.116 5.31 96.6 0.111 0.335 1.01e+03 test.phys biasWrapper(eBrem) - 4 -0.128 0.304 7.91 95.1 1.43 2.61 1.01e+03 test.phys biasWrapper(eBrem) - 5 -0.137 0.366 8.93 92.1 0.42 1.02 1.01e+03 test.phys biasWrapper(eBrem) - 6 -0.143 0.431 10 91.7 0.393 1.07 1.01e+03 World Transportation - 7 -156 587 1e+04 91.7 3.65e-22 1e+04 1.1e+04 OutOfWorld Transportation + 0 -0.121 -0.118 6.67 6.53 0 0 0 test.phys initStep + 1 -0.338 -0.264 10 6.53 0 3.34 3.34 World Transportation + 2 -651 -437 1e+04 6.53 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 32, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.137 0.366 8.93 0.32 0 0 0 test.phys initStep - 1 -0.146 0.432 10 0.32 0 1.07 1.07 World Transportation - 2 -84.5 613 1e+04 0.32 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.121 -0.118 6.67 0.614 0 0 0 test.phys initStep + 1 -0.356 -0.276 10 0.614 0 3.34 3.34 World Transportation + 2 -705 -474 1e+04 0.614 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 31, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.137 0.366 8.93 0.0218 0 0 0 test.phys initStep - 1 -0.146 0.438 10 0.0218 0 1.07 1.07 World Transportation - 2 -91.6 670 1e+04 0.0218 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0686 -0.0504 4.11 20 0 0 0 test.phys initStep + 1 -0.211 -0.102 10 20 0 5.9 5.9 World Transportation + 2 -241 -87.9 1e+04 20 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 30, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.137 0.366 8.93 0.00721 0 0 0 test.phys initStep - 1 -0.137 0.366 8.93 0 0.00156 0.00345 0.00345 test.phys phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 30 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.137 0.366 8.93 0.00565 0 0 0 test.phys initStep - 1 -0.137 0.366 8.93 0 0.00565 0.000509 0.000509 test.phys eIoni + 0 -0.0686 -0.0504 4.11 0.0863 0 0 0 test.phys initStep + 1 -0.265 -0.14 10 0.0863 0 5.9 5.9 World Transportation + 2 -333 -151 1e+04 0.0863 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 29, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.137 0.366 8.93 0.00907 0 0 0 test.phys initStep - 1 -0.136 0.37 9.01 0 0.00156 0.0798 0.0798 test.phys phot + 0 -0.0686 -0.0504 4.11 0.00975 0 0 0 test.phys initStep + 1 -0.0693 -0.0503 4.14 0 0.00156 0.0375 0.0375 test.phys phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 29 +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 29 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.136 0.37 9.01 0.00751 0 0 0 test.phys initStep - 1 -0.136 0.371 9.01 0 0.00751 0.000816 0.000816 test.phys eIoni + 0 -0.0693 -0.0503 4.14 0.00819 0 0 0 test.phys initStep + 1 -0.0693 -0.0501 4.14 0 0.00819 0.000944 0.000944 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 28, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.137 0.366 8.93 13.9 0 0 0 test.phys initStep - 1 -0.134 0.427 10 13.9 0 1.07 1.07 World Transportation - 2 22.3 566 1e+04 13.9 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0686 -0.0504 4.11 0.0205 0 0 0 test.phys initStep + 1 -0.105 -0.0794 5.32 0 0.00156 1.22 1.22 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 28 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.105 -0.0794 5.32 0.0189 0 0 0 test.phys initStep + 1 -0.106 -0.0796 5.32 0 0.0189 0.00395 0.00395 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 27, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.137 0.366 8.93 0.0149 0 0 0 test.phys initStep - 1 -0.13 0.383 9.27 0 0.00156 0.34 0.34 test.phys phot + 0 -0.0686 -0.0504 4.11 0.264 0 0 0 test.phys initStep + 1 -0.195 -0.0844 8.43 0.208 0 4.33 4.33 test.phys compt + 2 1.52 2.01 10 0.208 0 3.13 7.46 World Transportation + 3 8.2e+03 1e+04 7.48e+03 0.208 0 1.49e+04 1.49e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 27 +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 27 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.13 0.383 9.27 0.0133 0 0 0 test.phys initStep - 1 -0.13 0.382 9.27 0 0.0133 0.00215 0.00215 test.phys eIoni + 0 -0.195 -0.0844 8.43 0.0562 0 0 0 test.phys initStep + 1 -0.199 -0.0894 8.44 0 0.0562 0.026 0.026 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 26, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.137 0.366 8.93 0.203 0 0 0 test.phys initStep - 1 -0.145 0.433 10 0.203 0 1.07 1.07 World Transportation - 2 -74.6 626 1e+04 0.203 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0686 -0.0504 4.11 2.03 0 0 0 test.phys initStep + 1 -0.213 -0.0988 10 2.03 0 5.9 5.9 World Transportation + 2 -245 -82.2 1e+04 2.03 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.137 0.366 8.93 0.00883 0 0 0 test.phys initStep - 1 -0.137 0.367 8.93 0 0.00156 0.00432 0.00432 test.phys phot + 0 -0.0686 -0.0504 4.11 0.317 0 0 0 test.phys initStep + 1 -0.109 -0.066 5.73 0.268 0 1.62 1.62 test.phys compt + 2 2.8 -0.648 8.86 0.261 0 4.32 5.94 test.phys compt + 3 3.53 -1.24 10 0.261 0 1.47 7.41 World Transportation + 4 6.4e+03 -5.16e+03 1e+04 0.261 0 1.29e+04 1.29e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 25 +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 25 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.137 0.367 8.93 0.00726 0 0 0 test.phys initStep - 1 -0.137 0.367 8.93 0 0.00726 0.000772 0.000772 test.phys eIoni + 0 2.8 -0.648 8.86 0.00715 0 0 0 test.phys initStep + 1 2.8 -0.648 8.86 0 0.00715 0.000752 0.000752 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 25 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.109 -0.066 5.73 0.0482 0 0 0 test.phys initStep + 1 -0.114 -0.065 5.73 0 0.0482 0.02 0.02 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 24, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.137 0.366 8.93 7.08 0 0 0 test.phys initStep - 1 -0.151 0.435 10 7.08 0 1.07 1.07 World Transportation - 2 -138 641 1e+04 7.08 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0686 -0.0504 4.11 0.379 0 0 0 test.phys initStep + 1 -0.371 -0.204 10 0.379 0 5.9 5.9 World Transportation + 2 -513 -261 1e+04 0.379 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.137 0.366 8.93 2.57 0 0 0 test.phys initStep - 1 -0.144 0.427 10 2.57 0 1.07 1.07 World Transportation - 2 -69.8 572 1e+04 2.57 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0686 -0.0504 4.11 53 0 0 0 test.phys initStep + 1 -0.219 -0.106 10 53 0 5.9 5.9 World Transportation + 2 -256 -94.9 1e+04 53 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.128 0.304 7.91 0.377 0 0 0 test.phys initStep - 1 -0.145 0.457 10 0.377 0 2.09 2.09 World Transportation - 2 -83.5 732 1e+04 0.377 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0686 -0.0504 4.11 0.238 0 0 0 test.phys initStep + 1 -0.222 -0.19 10 0.238 0 5.9 5.9 World Transportation + 2 -260 -237 1e+04 0.238 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.128 0.304 7.91 9.19 0 0 0 test.phys initStep - 1 -0.168 0.435 10 9.19 0 2.09 2.09 World Transportation - 2 -193 629 1e+04 9.19 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0262 -0.0182 2.38 0.703 0 0 0 test.phys initStep + 1 -0.281 -0.0335 10 0.703 0 7.62 7.62 World Transportation + 2 -334 -20 1e+04 0.703 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.128 0.304 7.91 1.72 0 0 0 test.phys initStep - 1 -0.155 0.443 10 1.72 0 2.09 2.09 World Transportation - 2 -127 664 1e+04 1.72 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0262 -0.0182 2.38 1.82 0 0 0 test.phys initStep + 1 -0.247 -0.0139 10 1.82 0 7.62 7.62 World Transportation + 2 -290 5.71 1e+04 1.82 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.128 0.304 7.91 1.26 0 0 0 test.phys initStep - 1 -0.151 0.439 10 1.26 0 2.09 2.09 World Transportation - 2 -111 647 1e+04 1.26 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0262 -0.0182 2.38 0.00894 0 0 0 test.phys initStep + 1 -0.0281 -0.0183 2.44 0 0.00156 0.0599 0.0599 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 19 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0281 -0.0183 2.44 0.00738 0 0 0 test.phys initStep + 1 -0.0283 -0.0182 2.44 0 0.00738 0.000793 0.000793 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.128 0.304 7.91 0.0548 0 0 0 test.phys initStep - 1 -0.173 0.463 10 0.0548 0 2.09 2.09 World Transportation - 2 -216 763 1e+04 0.0548 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0262 -0.0182 2.38 37 0 0 0 test.phys initStep + 1 -0.275 -0.0457 10 37 0 7.62 7.62 World Transportation + 2 -327 -36.1 1e+04 37 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.128 0.304 7.91 83.6 0 0 0 test.phys initStep - 1 -0.159 0.443 10 83.6 0 2.09 2.09 World Transportation - 2 -147 666 1e+04 83.6 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0262 -0.0182 2.38 0.0206 0 0 0 test.phys initStep + 1 -0.0347 -0.0228 2.72 0 0.00156 0.343 0.343 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 17 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0347 -0.0228 2.72 0.0191 0 0 0 test.phys initStep + 1 -0.0357 -0.0235 2.72 0 0.0191 0.004 0.004 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.128 0.304 7.91 0.674 0 0 0 test.phys initStep - 1 -0.164 0.458 10 0.674 0 2.09 2.09 World Transportation - 2 -175 738 1e+04 0.674 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0262 -0.0182 2.38 0.535 0 0 0 test.phys initStep + 1 -0.257 -0.0462 10 0.535 0 7.62 7.62 World Transportation + 2 -303 -36.7 1e+04 0.535 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.128 0.304 7.91 0.448 0 0 0 test.phys initStep - 1 -0.168 0.45 10 0.448 0 2.09 2.09 World Transportation - 2 -192 698 1e+04 0.448 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0262 -0.0182 2.38 0.268 0 0 0 test.phys initStep + 1 -0.216 0.0548 10 0.268 0 7.62 7.62 World Transportation + 2 -250 95.8 1e+04 0.268 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.128 0.304 7.91 59.7 0 0 0 test.phys initStep - 1 -0.161 0.465 10 59.7 0 2.09 2.09 World Transportation - 2 -156 770 1e+04 59.7 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0262 -0.0182 2.38 4.37 0 0 0 test.phys initStep + 1 -0.147 0.0801 10 4.37 0 7.62 7.62 World Transportation + 2 -158 129 1e+04 4.37 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.128 0.304 7.91 0.0753 0 0 0 test.phys initStep - 1 -0.16 0.448 10 0.0753 0 2.09 2.09 World Transportation - 2 -151 691 1e+04 0.0753 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0262 -0.0182 2.38 28.4 0 0 0 test.phys initStep + 1 -0.274 -0.077 10 28.4 0 7.62 7.62 World Transportation + 2 -325 -77.1 1e+04 28.4 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.077 0.116 5.31 0.139 0 0 0 test.phys initStep - 1 -0.0832 0.374 10 0.139 0 4.7 4.7 World Transportation - 2 -13.2 551 1e+04 0.139 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0262 -0.0182 2.38 0.016 0 0 0 test.phys initStep + 1 -0.0266 -0.0182 2.39 0 0.00156 0.0115 0.0115 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0266 -0.0182 2.39 0.0144 0 0 0 test.phys initStep + 1 -0.0269 -0.0177 2.39 0 0.0144 0.00248 0.00248 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.077 0.116 5.31 6.25 0 0 0 test.phys initStep - 1 -0.0787 0.126 5.5 0.334 0 0.194 0.194 test.phys compt - 2 4.48 8.77 0 0.334 0 11.2 11.4 World Transportation - 3 5.27e+03 1e+04 -6.36e+03 0.334 0 1.3e+04 1.3e+04 OutOfWorld Transportation + 0 -0.0102 -0.0172 1.51 0.0169 0 0 0 test.phys initStep + 1 -0.0121 -0.0198 1.84 0 0.00156 0.331 0.331 test.phys phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 11 +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 11 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0787 0.126 5.5 5.92 0 0 0 test.phys initStep - 1 -0.215 0.592 9.58 4.31 1.61 4.55 4.55 test.phys eIoni - 2 -0.164 0.904 10 4.16 0.156 0.533 5.08 World Transportation - 3 1.95e+03 1e+04 7.74e+03 4.16 3.55e-22 1.28e+04 1.28e+04 OutOfWorld Transportation + 0 -0.0121 -0.0198 1.84 0.0153 0 0 0 test.phys initStep + 1 -0.0128 -0.0193 1.84 0 0.0153 0.00274 0.00274 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.077 0.116 5.31 31.5 0 0 0 test.phys initStep - 1 -0.15 0.366 10 31.5 0 4.7 4.7 World Transportation - 2 -156 533 1e+04 31.5 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0102 -0.0172 1.51 1.6 0 0 0 test.phys initStep + 1 -0.0827 -0.0771 10 1.6 0 8.49 8.49 World Transportation + 2 -85.4 -70.6 1e+04 1.6 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.077 0.116 5.31 0.807 0 0 0 test.phys initStep - 1 -0.143 0.375 10 0.807 0 4.7 4.7 World Transportation - 2 -140 553 1e+04 0.807 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0102 -0.0172 1.51 49.4 0 0 0 test.phys initStep + 1 -0.00956 -0.166 10 49.4 0 8.49 8.49 World Transportation + 2 0.787 -175 1e+04 49.4 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.077 0.116 5.31 76 0 0 0 test.phys initStep - 1 0.167 0.504 10 76 0 4.71 4.71 World Transportation - 2 520 827 1e+04 76 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0102 -0.0172 1.51 0.318 0 0 0 test.phys initStep + 1 0.0202 -0.197 9.87 0.295 0 8.36 8.36 test.phys compt + 2 -0.0373 -0.16 10 0.295 0 0.146 8.51 World Transportation + 3 -4.47e+03 2.9e+03 1e+04 0.295 0 1.13e+04 1.13e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0202 -0.197 9.87 0.0229 0 0 0 test.phys initStep + 1 0.0215 -0.198 9.87 0 0.0229 0.00548 0.00548 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.077 0.116 5.31 0.0699 0 0 0 test.phys initStep - 1 -0.0838 0.15 5.9 0.0561 0 0.591 0.591 test.phys compt - 2 -4.26 -1.26 0 0.0561 0 7.37 7.96 World Transportation - 3 -7.09e+03 -2.4e+03 -1e+04 0.0561 0 1.25e+04 1.25e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 7 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0838 0.15 5.9 0.0138 0 0 0 test.phys initStep - 1 -0.0836 0.15 5.9 0 0.0138 0.00231 0.00231 test.phys eIoni + 0 -0.0102 -0.0172 1.51 0.153 0 0 0 test.phys initStep + 1 0.111 0.0524 10 0.153 0 8.49 8.49 World Transportation + 2 143 81.9 1e+04 0.153 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.077 0.116 5.31 11.2 0 0 0 test.phys initStep - 1 -0.161 0.364 10 11.2 0 4.7 4.7 World Transportation - 2 -179 530 1e+04 11.2 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0102 -0.0172 1.51 2.05 0 0 0 test.phys initStep + 1 -0.0777 -0.0951 10 2.05 0 8.49 8.49 World Transportation + 2 -79.4 -91.8 1e+04 2.05 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.077 0.116 5.31 0.0739 0 0 0 test.phys initStep - 1 -0.146 0.363 10 0.0739 0 4.7 4.7 World Transportation - 2 -148 528 1e+04 0.0739 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0102 -0.0172 1.51 0.918 0 0 0 test.phys initStep + 1 -0.104 -0.0508 10 0.918 0 8.49 8.49 World Transportation + 2 -110 -39.7 1e+04 0.918 0 9.99e+03 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.077 0.116 5.31 5.97 0 0 0 test.phys initStep - 1 -0.177 0.383 10 5.97 0 4.7 4.7 World Transportation - 2 -213 571 1e+04 5.97 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0102 -0.0172 1.51 0.0585 0 0 0 test.phys initStep + 1 0.157 -0.0773 8.73 0 0.00156 7.22 7.22 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.157 -0.0773 8.73 0.0569 0 0 0 test.phys initStep + 1 0.161 -0.085 8.73 0 0.0569 0.0266 0.0266 test.phys eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.077 0.116 5.31 0.183 0 0 0 test.phys initStep - 1 -0.136 0.345 10 0.183 0 4.7 4.7 World Transportation - 2 -125 490 1e+04 0.183 0 1e+04 1e+04 OutOfWorld Transportation + 0 -0.0102 -0.0172 1.51 0.272 0 0 0 test.phys initStep + 1 0.0166 -0.0489 7.58 0.198 0 6.07 6.07 test.phys compt + 2 5.73 -5.94 10 0.198 0 8.55 14.6 World Transportation + 3 9.7e+03 -1e+04 4.12e+03 0.198 0 1.45e+04 1.45e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0166 -0.0489 7.58 0.0749 0 0 0 test.phys initStep + 1 0.0101 -0.0421 7.59 0 0.0749 0.0426 0.0426 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0102 -0.0172 1.51 11.3 0 0 0 test.phys initStep + 1 -0.0228 -0.0378 10 11.3 0 8.49 8.49 World Transportation + 2 -14.8 -24.3 1e+04 11.3 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 0.0132 0.0768 3.74 87.3 1.75 3.74 1e+03 test.phys biasWrapper(eBrem) + 3 0.0383 0.191 10 85.1 2.26 6.27 1.01e+03 World Transportation + 4 -82.7 538 1e+04 85.1 3.63e-22 1e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0132 0.0768 3.74 9.04 0 0 0 test.phys initStep + 1 0.128 0.193 10 9.04 0 6.26 6.26 World Transportation + 2 183 185 1e+04 9.04 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0132 0.0768 3.74 0.166 0 0 0 test.phys initStep + 1 0.028 0.116 6 0.117 0 2.26 2.26 test.phys compt + 2 0.66 11.6 2.02 0.101 0 12.1 14.4 test.phys compt + 3 5.91 12.4 0 0.101 0 5.69 20.1 World Transportation + 4 1e+04 1.66e+03 -3.85e+03 0.101 0 1.08e+04 1.09e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.66 11.6 2.02 0.0159 0 0 0 test.phys initStep + 1 0.659 11.6 2.02 0 0.0159 0.00293 0.00293 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.028 0.116 6 0.0498 0 0 0 test.phys initStep + 1 0.0278 0.113 6 0 0.0498 0.0211 0.0211 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0132 0.0768 3.74 8.73 0 0 0 test.phys initStep + 1 0.0915 0.175 10 8.73 0 6.26 6.26 World Transportation + 2 125 156 1e+04 8.73 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0132 0.0768 3.74 0.0671 0 0 0 test.phys initStep + 1 0.04 0.171 10 0.0671 0 6.26 6.26 World Transportation + 2 42.8 150 1e+04 0.0671 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0132 0.0768 3.74 0.286 0 0 0 test.phys initStep + 1 0.0762 0.184 10 0.286 0 6.26 6.26 World Transportation + 2 101 171 1e+04 0.286 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0132 0.0768 3.74 0.106 0 0 0 test.phys initStep + 1 0.0194 0.226 10 0.106 0 6.26 6.26 World Transportation + 2 9.8 238 1e+04 0.106 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0132 0.0768 3.74 9.68 0 0 0 test.phys initStep + 1 0.0779 0.196 10 9.68 0 6.26 6.26 World Transportation + 2 103 190 1e+04 9.68 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0132 0.0768 3.74 0.387 0 0 0 test.phys initStep + 1 0.0416 0.196 10 0.387 0 6.26 6.26 World Transportation + 2 45.3 190 1e+04 0.387 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0132 0.0768 3.74 4.63 0 0 0 test.phys initStep + 1 0.0403 0.237 10 4.63 0 6.26 6.26 World Transportation + 2 43.2 256 1e+04 4.63 0 9.99e+03 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0132 0.0768 3.74 10.9 0 0 0 test.phys initStep + 1 0.0702 0.268 10 10.9 0 6.26 6.26 World Transportation + 2 91 305 1e+04 10.9 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 0.00107 -0.000753 0.246 96.5 0.0963 0.246 1e+03 test.phys eIoni + 3 -0.127 -0.0517 4.14 89.7 1.6 3.9 1e+03 test.phys biasWrapper(eBrem) + 4 -0.153 -0.13 7.72 88.5 1.17 3.58 1.01e+03 test.phys biasWrapper(eBrem) + 5 -0.131 -0.156 10 87.7 0.837 2.28 1.01e+03 World Transportation + 6 -173 -405 1e+04 87.7 3.64e-22 1e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.153 -0.13 7.72 20 0 0 0 test.phys initStep + 1 -0.157 -0.116 10 20 0 2.28 2.28 World Transportation + 2 -16.5 61.1 1e+04 20 0 9.99e+03 9.99e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.153 -0.13 7.72 0.0302 0 0 0 test.phys initStep + 1 -0.13 -0.163 10 0.0302 0 2.28 2.28 World Transportation + 2 99.6 -141 1e+04 0.0302 0 9.99e+03 9.99e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.153 -0.13 7.72 0.0833 0 0 0 test.phys initStep + 1 -0.125 -0.135 10 0.0833 0 2.28 2.28 World Transportation + 2 122 -18.6 1e+04 0.0833 0 9.99e+03 9.99e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.153 -0.13 7.72 2.44 0 0 0 test.phys initStep + 1 -0.125 -0.172 10 2.44 0 2.28 2.28 World Transportation + 2 121 -182 1e+04 2.44 0 9.99e+03 9.99e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.153 -0.13 7.72 0.154 0 0 0 test.phys initStep + 1 -0.134 -0.152 10 0.154 0 2.28 2.28 World Transportation + 2 84.4 -94.7 1e+04 0.154 0 9.99e+03 9.99e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.153 -0.13 7.72 57 0 0 0 test.phys initStep + 1 -0.123 -0.163 10 57 0 2.28 2.28 World Transportation + 2 129 -145 1e+04 57 0 9.99e+03 9.99e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.153 -0.13 7.72 0.0453 0 0 0 test.phys initStep + 1 -0.134 -0.135 10 0.0453 0 2.28 2.28 World Transportation + 2 83.7 -20.8 1e+04 0.0453 0 9.99e+03 9.99e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.153 -0.13 7.72 0.0301 0 0 0 test.phys initStep + 1 -0.153 -0.131 8.41 0.0275 0 0.694 0.694 test.phys compt + 2 5.34 2.97 3.73 0 0.00156 7.85 8.55 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 15 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 5.34 2.97 3.73 0.026 0 0 0 test.phys initStep + 1 5.34 2.97 3.73 0 0.026 0.00684 0.00684 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 15 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.153 -0.131 8.41 0.00259 0 0 0 test.phys initStep + 1 -0.153 -0.131 8.41 0 0.00259 0.000147 0.000147 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.153 -0.13 7.72 0.616 0 0 0 test.phys initStep + 1 -0.144 -0.139 10 0.616 0 2.28 2.28 World Transportation + 2 38.4 -37.5 1e+04 0.616 0 9.99e+03 9.99e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.153 -0.13 7.72 0.0473 0 0 0 test.phys initStep + 1 -0.0662 -0.154 10 0.0473 0 2.28 2.28 World Transportation + 2 380 -105 1e+04 0.0473 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.127 -0.0517 4.14 0.0397 0 0 0 test.phys initStep + 1 -0.277 -0.258 10 0.0397 0 5.86 5.86 World Transportation + 2 -256 -351 1e+04 0.0397 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.127 -0.0517 4.14 1.45 0 0 0 test.phys initStep + 1 -0.376 -0.0833 10 1.45 0 5.86 5.86 World Transportation + 2 -425 -53.9 1e+04 1.45 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.127 -0.0517 4.14 6.67 0 0 0 test.phys initStep + 1 -0.293 -0.154 10 6.67 0 5.86 5.86 World Transportation + 2 -283 -175 1e+04 6.67 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.127 -0.0517 4.14 0.0125 0 0 0 test.phys initStep + 1 -0.129 -0.0547 4.21 0 0.00156 0.0696 0.0696 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 9 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.129 -0.0547 4.21 0.0109 0 0 0 test.phys initStep + 1 -0.128 -0.0549 4.21 0 0.0109 0.00154 0.00154 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.127 -0.0517 4.14 0.0314 0 0 0 test.phys initStep + 1 -0.171 -0.0624 5.36 0.0314 0 1.22 1.22 test.phys Rayl + 2 -0.179 -0.0604 5.39 0 0.00156 0.0306 1.25 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.179 -0.0604 5.39 0.0298 0 0 0 test.phys initStep + 1 -0.179 -0.063 5.39 0 0.0298 0.0087 0.0087 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.127 -0.0517 4.14 0.367 0 0 0 test.phys initStep + 1 -0.321 -0.161 10 0.367 0 5.86 5.86 World Transportation + 2 -330 -186 1e+04 0.367 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.127 -0.0517 4.14 1.4 0 0 0 test.phys initStep + 1 -0.289 -0.159 10 1.4 0 5.86 5.86 World Transportation + 2 -277 -183 1e+04 1.4 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.127 -0.0517 4.14 0.0372 0 0 0 test.phys initStep + 1 -0.229 -0.118 7.41 0 0.00156 3.27 3.27 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.229 -0.118 7.41 0.0356 0 0 0 test.phys initStep + 1 -0.231 -0.115 7.41 0 0.0356 0.0118 0.0118 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.127 -0.0517 4.14 8 0 0 0 test.phys initStep + 1 -0.301 -0.155 10 8 0 5.86 5.86 World Transportation + 2 -297 -177 1e+04 8 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.127 -0.0517 4.14 5.21 0 0 0 test.phys initStep + 1 -0.29 -0.155 10 5.21 0 5.86 5.86 World Transportation + 2 -277 -176 1e+04 5.21 0 1e+04 1e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0726 0.095 4.98 1.33 0 0 0 test.phys initStep - 1 -0.815 -0.00325 5.82 0.593 0.736 1.91 1.91 test.phys eIoni - 2 -1.06 0.277 5.67 0.111 0.482 1.06 2.97 test.phys eIoni - 3 -1.08 0.297 5.68 0 0.111 0.0828 3.05 test.phys eIoni + 0 0.00107 -0.000753 0.246 3.39 0 0 0 test.phys initStep + 1 0.488 0.417 0.97 2.98 0.41 0.991 0.991 test.phys msc + 2 0.967 0.897 1.88 2.51 0.47 1.18 2.17 test.phys msc + 3 1.04 0.921 2.02 2.38 0.0519 0.155 2.32 test.phys biasWrapper(eBrem) + 4 1.3 0.886 3.17 1.96 0.418 1.25 3.57 test.phys msc + 5 1.42 0.635 5.02 1.08 0.882 2.12 5.69 test.phys msc + 6 1.07 -0.157 4.81 0.435 0.644 1.7 7.39 test.phys eIoni + 7 1.02 0.0205 4.98 0 0.435 0.692 8.08 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 37, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.04 0.921 2.02 0.146 0 0 0 test.phys initStep + 1 3.97 3.34 10 0.146 0 8.84 8.84 World Transportation + 2 3.68e+03 3.03e+03 1e+04 0.146 0 1.11e+04 1.11e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 36, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.04 0.921 2.02 0.0124 0 0 0 test.phys initStep + 1 1.25 1.07 2.31 0 0.00156 0.39 0.39 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 36 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.25 1.07 2.31 0.0109 0 0 0 test.phys initStep + 1 1.25 1.07 2.31 0 0.0109 0.00153 0.00153 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 35, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.04 0.921 2.02 0.0812 0 0 0 test.phys initStep + 1 0.672 1.55 5.38 0.0624 0 3.44 3.44 test.phys compt + 2 -0.591 -1.55 0 0.0624 0 6.34 9.78 World Transportation + 3 -2.35e+03 -5.78e+03 -1e+04 0.0624 0 1.18e+04 1.18e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 35 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.672 1.55 5.38 0.0188 0 0 0 test.phys initStep + 1 0.672 1.55 5.38 0 0.0188 0.00391 0.00391 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 34, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.04 0.921 2.02 0.0119 0 0 0 test.phys initStep + 1 1.29 1.1 2.57 0 0.00156 0.628 0.628 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 34 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.29 1.1 2.57 0.0103 0 0 0 test.phys initStep + 1 1.29 1.1 2.57 0 0.0103 0.00139 0.00139 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 33, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.04 0.921 2.02 0.027 0 0 0 test.phys initStep + 1 1.2 1.03 2.36 0.0269 0 0.393 0.393 test.phys compt + 2 1.26 1.03 2.43 0 0.00156 0.0997 0.493 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 33 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.26 1.03 2.43 0.0253 0 0 0 test.phys initStep + 1 1.26 1.03 2.43 0 0.0253 0.00655 0.00655 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 33 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.2 1.03 2.36 0.00013 0 0 0 test.phys initStep + 1 1.2 1.03 2.36 0 0.00013 4.97e-06 4.97e-06 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 32, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.04 0.921 2.02 0.00646 0 0 0 test.phys initStep + 1 1.04 0.926 2.03 0 0.00156 0.0159 0.0159 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.04 0.926 2.03 0.0049 0 0 0 test.phys initStep + 1 1.04 0.926 2.03 0 0.0049 0.000403 0.000403 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 31, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.04 0.921 2.02 0.114 0 0 0 test.phys initStep + 1 6.65 4.41 10 0.114 0 10.4 10.4 World Transportation + 2 7.03e+03 4.37e+03 1e+04 0.114 0 1.3e+04 1.3e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 30, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.04 0.921 2.02 0.00865 0 0 0 test.phys initStep + 1 1.24 0.823 2.36 0 0.00156 0.408 0.408 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.24 0.823 2.36 0.00709 0 0 0 test.phys initStep + 1 1.24 0.823 2.36 0 0.00709 0.000741 0.000741 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 29, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.04 0.921 2.02 0.017 0 0 0 test.phys initStep + 1 1.21 0.999 2.28 0 0.00156 0.324 0.324 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.21 0.999 2.28 0.0154 0 0 0 test.phys initStep + 1 1.21 0.999 2.28 0 0.0154 0.00278 0.00278 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 28, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.04 0.921 2.02 0.0751 0 0 0 test.phys initStep + 1 5.46 1.5 10 0.0751 0 9.14 9.14 World Transportation + 2 5.54e+03 730 1e+04 0.0751 0 1.14e+04 1.15e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 -0.0263 -0.193 9.8 94.7 4.48 9.81 1.01e+03 test.phys biasWrapper(eBrem) + 3 -0.037 -0.197 10 94.7 0.0722 0.197 1.01e+03 World Transportation + 4 -447 -187 1e+04 94.7 3.66e-22 1e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0263 -0.193 9.8 0.0146 0 0 0 test.phys initStep + 1 -0.038 -0.192 10 0.0146 0 0.197 0.197 World Transportation + 2 -598 39.9 1e+04 0.0146 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0263 -0.193 9.8 0.507 0 0 0 test.phys initStep + 1 -0.0362 -0.197 10 0.507 0 0.197 0.197 World Transportation + 2 -503 -179 1e+04 0.507 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0263 -0.193 9.8 0.367 0 0 0 test.phys initStep + 1 -0.0372 -0.198 10 0.367 0 0.197 0.197 World Transportation + 2 -555 -233 1e+04 0.367 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0263 -0.193 9.8 0.22 0 0 0 test.phys initStep + 1 -0.0343 -0.199 10 0.22 0 0.197 0.197 World Transportation + 2 -409 -291 1e+04 0.22 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0263 -0.193 9.8 0.153 0 0 0 test.phys initStep + 1 -0.0413 -0.19 10 0.153 0 0.197 0.197 World Transportation + 2 -764 138 1e+04 0.153 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0263 -0.193 9.8 0.203 0 0 0 test.phys initStep + 1 -0.0367 -0.197 10 0.203 0 0.197 0.197 World Transportation + 2 -529 -179 1e+04 0.203 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0263 -0.193 9.8 2.46 0 0 0 test.phys initStep + 1 -0.0352 -0.197 10 2.46 0 0.197 0.197 World Transportation + 2 -455 -184 1e+04 2.46 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0263 -0.193 9.8 0.0885 0 0 0 test.phys initStep + 1 -0.0369 -0.197 10 0.0885 0 0.197 0.197 World Transportation + 2 -542 -190 1e+04 0.0885 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0263 -0.193 9.8 3.56 0 0 0 test.phys initStep + 1 -0.0366 -0.197 10 3.56 0 0.197 0.197 World Transportation + 2 -526 -174 1e+04 3.56 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0263 -0.193 9.8 0.774 0 0 0 test.phys initStep + 1 -0.0268 -0.195 10 0.774 0 0.197 0.197 World Transportation + 2 -27 -107 1e+04 0.774 0 9.99e+03 9.99e+03 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 0.12 -0.182 7.41 96.6 2.59 7.42 1.01e+03 test.phys eIoni + 3 0.124 -0.186 7.51 96.6 0.0221 0.0941 1.01e+03 test.phys biasWrapper(eBrem) + 4 0.161 -0.236 8.56 96.2 0.357 1.05 1.01e+03 test.phys biasWrapper(eBrem) + 5 0.212 -0.312 10 95.7 0.529 1.44 1.01e+03 World Transportation + 6 -163 -289 1e+04 95.7 3.66e-22 1e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.161 -0.236 8.56 0.0217 0 0 0 test.phys initStep + 1 0.196 -0.299 10 0.0217 0 1.44 1.44 World Transportation + 2 242 -433 1e+04 0.0217 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.161 -0.236 8.56 32.8 0 0 0 test.phys initStep + 1 0.24 -0.332 10 32.8 0 1.45 1.45 World Transportation + 2 551 -660 1e+04 32.8 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.161 -0.236 8.56 0.68 0 0 0 test.phys initStep + 1 0.213 -0.317 10 0.68 0 1.44 1.44 World Transportation + 2 363 -560 1e+04 0.68 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.161 -0.236 8.56 34.1 0 0 0 test.phys initStep + 1 0.213 -0.316 10 34.1 0 1.44 1.44 World Transportation + 2 365 -550 1e+04 34.1 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.161 -0.236 8.56 0.767 0 0 0 test.phys initStep + 1 0.183 -0.288 10 0.767 0 1.44 1.44 World Transportation + 2 156 -357 1e+04 0.767 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.161 -0.236 8.56 0.0394 0 0 0 test.phys initStep + 1 0.217 -0.314 10 0.0394 0 1.44 1.44 World Transportation + 2 392 -539 1e+04 0.0394 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.161 -0.236 8.56 0.023 0 0 0 test.phys initStep + 1 0.175 -0.254 8.91 0.023 0 0.351 0.351 test.phys Rayl + 2 -0.429 -1.59 9.63 0 0.00156 1.64 1.99 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 16 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.429 -1.59 9.63 0.0214 0 0 0 test.phys initStep + 1 -0.428 -1.6 9.63 0 0.0214 0.0049 0.0049 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.161 -0.236 8.56 0.436 0 0 0 test.phys initStep + 1 0.198 -0.287 9.56 0.17 0 1.01 1.01 test.phys compt + 2 3.8 -4.4 0 0.17 0 11 12 World Transportation + 3 3.77e+03 -4.31e+03 -1e+04 0.17 0 1.15e+04 1.15e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 15 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.198 -0.287 9.56 0.266 0 0 0 test.phys initStep + 1 0.19 -0.279 9.68 0 0.266 0.337 0.337 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.161 -0.236 8.56 9.5 0 0 0 test.phys initStep + 1 0.206 -0.329 10 9.5 0 1.44 1.44 World Transportation + 2 316 -642 1e+04 9.5 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.161 -0.236 8.56 0.00886 0 0 0 test.phys initStep + 1 0.163 -0.24 8.65 0 0.00156 0.0886 0.0886 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.163 -0.24 8.65 0.0073 0 0 0 test.phys initStep + 1 0.163 -0.241 8.65 0 0.0073 0.000779 0.000779 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.124 -0.186 7.51 3.32 0 0 0 test.phys initStep + 1 0.26 -0.308 10 3.32 0 2.5 2.5 World Transportation + 2 546 -489 1e+04 3.32 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.124 -0.186 7.51 0.0324 0 0 0 test.phys initStep + 1 0.136 -0.199 7.77 0 0.00156 0.268 0.268 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.136 -0.199 7.77 0.0308 0 0 0 test.phys initStep + 1 0.137 -0.198 7.78 0 0.0308 0.00921 0.00921 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.124 -0.186 7.51 0.0129 0 0 0 test.phys initStep + 1 0.126 -0.189 7.57 0 0.00156 0.0594 0.0594 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 10 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.126 -0.189 7.57 0.0113 0 0 0 test.phys initStep + 1 0.126 -0.189 7.57 0 0.0113 0.00164 0.00164 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.124 -0.186 7.51 0.902 0 0 0 test.phys initStep + 1 0.238 -0.301 10 0.902 0 2.5 2.5 World Transportation + 2 457 -462 1e+04 0.902 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.124 -0.186 7.51 2.2 0 0 0 test.phys initStep + 1 0.243 -0.299 10 2.2 0 2.5 2.5 World Transportation + 2 480 -453 1e+04 2.2 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.124 -0.186 7.51 0.0561 0 0 0 test.phys initStep + 1 0.259 -0.305 10 0.0561 0 2.5 2.5 World Transportation + 2 541 -477 1e+04 0.0561 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.124 -0.186 7.51 0.0331 0 0 0 test.phys initStep + 1 0.276 -0.253 10 0.0331 0 2.5 2.5 World Transportation + 2 611 -267 1e+04 0.0331 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.124 -0.186 7.51 0.0251 0 0 0 test.phys initStep + 1 0.253 -0.212 8.94 0 0.00156 1.44 1.44 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 5 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.253 -0.212 8.94 0.0235 0 0 0 test.phys initStep + 1 0.252 -0.214 8.94 0 0.0235 0.00575 0.00575 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.124 -0.186 7.51 0.986 0 0 0 test.phys initStep + 1 0.153 -0.4 10 0.986 0 2.5 2.5 World Transportation + 2 118 -856 1e+04 0.986 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.124 -0.186 7.51 0.00844 0 0 0 test.phys initStep + 1 0.127 -0.189 7.58 0 0.00156 0.0691 0.0691 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 3 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.127 -0.189 7.58 0.00687 0 0 0 test.phys initStep + 1 0.127 -0.189 7.58 0 0.00687 0.000705 0.000705 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.12 -0.182 7.41 0.763 0 0 0 test.phys initStep + 1 0.121 0.236 7.81 0.0958 0.667 1.35 1.35 test.phys eIoni + 2 0.113 0.236 7.79 0 0.0958 0.0647 1.42 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 0 0 10 96.1 3.86 10 1.01e+03 World Transportation + 3 -444 78.6 1e+04 96.1 3.66e-22 1e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 -1e+03 100 0 0 0 World initStep + 1 0 0 0 100 3.68e-23 1e+03 1e+03 test.phys Transportation + 2 -0.0894 -0.126 5.91 93.2 2.1 5.91 1.01e+03 test.phys biasWrapper(eBrem) + 3 -0.249 -0.455 10 91.2 2.05 4.11 1.01e+03 World Transportation + 4 162 -472 1e+04 91.2 3.65e-22 1e+04 1.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0894 -0.126 5.91 0.0156 0 0 0 test.phys initStep + 1 -0.129 -0.225 6.95 0.0152 0 1.05 1.05 test.phys compt + 2 -0.319 -0.218 6.96 0 0.00156 0.19 1.24 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.319 -0.218 6.96 0.0136 0 0 0 test.phys initStep + 1 -0.32 -0.219 6.96 0 0.0136 0.00225 0.00225 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 11 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.129 -0.225 6.95 0.000428 0 0 0 test.phys initStep + 1 -0.129 -0.225 6.95 0 0.000428 1.3e-05 1.3e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0894 -0.126 5.91 1.8 0 0 0 test.phys initStep + 1 -0.279 -0.439 10 1.8 0 4.11 4.11 World Transportation + 2 -464 -763 1e+04 1.8 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0894 -0.126 5.91 84 0 0 0 test.phys initStep + 1 -0.161 -0.476 10 84 0 4.11 4.11 World Transportation + 2 -174 -855 1e+04 84 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0894 -0.126 5.91 0.015 0 0 0 test.phys initStep + 1 -0.127 -0.201 6.81 0 0.00156 0.906 0.906 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 8 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.127 -0.201 6.81 0.0134 0 0 0 test.phys initStep + 1 -0.127 -0.201 6.81 0 0.0134 0.00218 0.00218 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0894 -0.126 5.91 0.00655 0 0 0 test.phys initStep + 1 -0.0894 -0.126 5.91 0 0.00156 0.000824 0.000824 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0894 -0.126 5.91 0.00499 0 0 0 test.phys initStep + 1 -0.0895 -0.126 5.91 0 0.00499 0.000415 0.000415 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0894 -0.126 5.91 0.0329 0 0 0 test.phys initStep + 1 -0.172 -0.282 7.83 0.0324 0 1.93 1.93 test.phys compt + 2 -0.757 -2.37 10 0.0324 0 3.07 5 World Transportation + 3 -2.69e+03 -9.59e+03 1e+04 0.0324 0 1.41e+04 1.41e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 6 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.172 -0.282 7.83 0.000484 0 0 0 test.phys initStep + 1 -0.172 -0.282 7.83 0 0.000484 1.49e-05 1.49e-05 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0894 -0.126 5.91 2.94 0 0 0 test.phys initStep + 1 -0.24 -0.427 10 2.94 0 4.11 4.11 World Transportation + 2 -368 -734 1e+04 2.94 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0894 -0.126 5.91 0.017 0 0 0 test.phys initStep + 1 -0.233 -0.422 9.75 0 0.00156 3.86 3.86 test.phys phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 4 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.233 -0.422 9.75 0.0154 0 0 0 test.phys initStep + 1 -0.233 -0.423 9.75 0 0.0154 0.00278 0.00278 test.phys eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0894 -0.126 5.91 0.404 0 0 0 test.phys initStep + 1 -0.245 -0.456 10 0.404 0 4.11 4.11 World Transportation + 2 -379 -806 1e+04 0.404 0 1e+04 1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0894 -0.126 5.91 4.65 0 0 0 test.phys initStep + 1 -0.248 -0.44 10 4.65 0 4.11 4.11 World Transportation + 2 -387 -767 1e+04 4.65 0 1e+04 1e+04 OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.011376s Sys=0.000000s + User=0.010000s Real=0.013900s Sys=0.010000s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. @@ -4638,15 +5351,15 @@ G4RNGHelper object is deleted. ================== Deleting memory pools =================== Pool ID '20G4NavigationLevelRep', size : 0.00769 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.00577 MB +Pool ID '17G4DynamicParticle', size : 0.00673 MB Pool ID '7G4Event', size : 0.000961 MB Pool ID '15G4PrimaryVertex', size : 0.000961 MB Pool ID '17G4PrimaryParticle', size : 0.000961 MB -Pool ID '7G4Track', size : 0.0106 MB +Pool ID '7G4Track', size : 0.0135 MB Pool ID '18G4TouchableHistory', size : 0.000961 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB Number of memory pools allocated: 9 of which, static: 0 -Dynamic pools deleted: 9 / Total memory freed: 0.03 MB +Dynamic pools deleted: 9 / Total memory freed: 0.034 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/extended/biasing/GB04/include/GB04DetectorConstruction.hh b/examples/extended/biasing/GB04/include/GB04DetectorConstruction.hh index d8dd71bced..52097995fb 100644 --- a/examples/extended/biasing/GB04/include/GB04DetectorConstruction.hh +++ b/examples/extended/biasing/GB04/include/GB04DetectorConstruction.hh @@ -33,13 +33,6 @@ #include "G4VUserDetectorConstruction.hh" #include "globals.hh" -class G4Box; -class G4LogicalVolume; -class G4VPhysicalVolume; -class G4Material; -class G4UniformMagField; -class DetectorMessenger; - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class GB04DetectorConstruction : public G4VUserDetectorConstruction diff --git a/examples/extended/biasing/GB05/exampleGB05.out b/examples/extended/biasing/GB05/exampleGB05.out index d1914a9fff..bfc45160de 100644 --- a/examples/extended/biasing/GB05/exampleGB05.out +++ b/examples/extended/biasing/GB05/exampleGB05.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -47,6 +47,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -99,6 +101,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -126,7 +129,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -177,8 +180,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -660,6 +663,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -925,1316 +933,1864 @@ Max 2J for sampling of angular correlations 10 ======================================================================= G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. - gamma, kinetic energy (MeV) = 0.205166, position (cm) = (-30.9039,113.576,200), weight = 0.03125 - neutron, kinetic energy (MeV) = 98.2955, position (cm) = (-81.073,68.7184,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 98.2955, position (cm) = (-81.073,68.7184,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 98.2955, position (cm) = (-81.073,68.7184,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 98.0462, position (cm) = (-81.2019,68.501,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 98.2955, position (cm) = (-81.073,68.7184,200), weight = 0.015625 - neutron, kinetic energy (MeV) = 97.9179, position (cm) = (-88.1053,62.7885,200), weight = 0.015625 - neutron, kinetic energy (MeV) = 97.6122, position (cm) = (-86.8871,66.7869,200), weight = 0.015625 - gamma, kinetic energy (MeV) = 2.22315, position (cm) = (59.5437,-74.7707,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 6.01946, position (cm) = (36.7918,-77.6237,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.16412, position (cm) = (22.8554,-58.6666,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 22.5179, position (cm) = (29.9128,-75.7599,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.156923, position (cm) = (24.2282,-73.0441,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 2.36474, position (cm) = (34.0526,-68.4997,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 23.4919, position (cm) = (31.985,-77.2704,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 23.4919, position (cm) = (31.985,-77.2704,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 21.2026, position (cm) = (31.9817,-77.2047,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 23.4919, position (cm) = (31.985,-77.2704,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 0.0328138, position (cm) = (30.5212,-74.9553,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.45271, position (cm) = (52.8084,-95.7234,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 6.43458e-06, position (cm) = (52.9543,-59.7211,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 3.59333, position (cm) = (49.7664,-53.1674,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 0.688823, position (cm) = (44.3198,-37.701,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 0.273779, position (cm) = (29.0372,-38.9317,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 4.5917, position (cm) = (43.4944,-19.0253,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 1.31451, position (cm) = (42.2979,-43.287,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 10.3315, position (cm) = (39.9976,-51.0203,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 6.36677, position (cm) = (62.0993,9.43016,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 3.84946, position (cm) = (4.86375,-43.3518,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 4.3694, position (cm) = (36.6451,-33.2412,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 0.00338637, position (cm) = (36.7257,-11.5558,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 3.34896, position (cm) = (68.3081,-4.37746,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.0572165, position (cm) = (68.7635,-1.28968,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.479978, position (cm) = (51.966,1.60782,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 2.89942, position (cm) = (10.6441,111.926,200), weight = 0.0078125 - gamma, kinetic energy (MeV) = 2.0531, position (cm) = (78.7927,55.7491,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 0.089688, position (cm) = (90.6114,67.1099,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 3.02488, position (cm) = (57.7193,112.32,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.373765, position (cm) = (82.4401,62.9141,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 0.000193784, position (cm) = (91.6354,62.7938,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 0.000418104, position (cm) = (67.5805,80.0619,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 0.0103176, position (cm) = (96.893,81.9871,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 1.22191, position (cm) = (137.112,85.3008,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 0.00142467, position (cm) = (81.9983,102.462,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 5.04996, position (cm) = (104.337,113.494,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 56.651, position (cm) = (50.6464,89.1509,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 1.36959, position (cm) = (44.4955,83.6062,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 2.54958, position (cm) = (54.0927,81.7868,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 5.52433, position (cm) = (41.3124,74.72,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 2.52542, position (cm) = (53.4881,50.6856,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.109684, position (cm) = (71.9928,11.8228,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 0.00986216, position (cm) = (68.5469,5.86599,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.436901, position (cm) = (64.9257,-18.5011,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 8.84468, position (cm) = (22.8029,59.6371,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 8.84468, position (cm) = (22.8029,59.6371,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 0.000805782, position (cm) = (30.548,48.4621,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 1.07736e-05, position (cm) = (21.0364,41.596,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 9.88802, position (cm) = (23.9614,60.6248,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.263645, position (cm) = (31.0066,54.9549,200), weight = 0.000244141 - e-, kinetic energy (MeV) = 2.55205, position (cm) = (30.1621,55.1734,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 46.9999, position (cm) = (34.9615,64.7486,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.310208, position (cm) = (69.1046,95.6456,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 3.18795, position (cm) = (51.6426,66.4328,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 34.3429, position (cm) = (37.276,58.4946,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 34.3429, position (cm) = (37.276,58.4946,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.219811, position (cm) = (36.4358,60.3575,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 29.577, position (cm) = (36.1949,60.4792,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 34.0056, position (cm) = (14.1551,60.7162,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 35.684, position (cm) = (25.6125,57.862,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 35.684, position (cm) = (25.6125,57.862,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.0652181, position (cm) = (-14.8847,51.6682,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 5.32389, position (cm) = (-20.4879,56.2151,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 1.11079, position (cm) = (102.919,-87.2187,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 0.596127, position (cm) = (88.7613,-129.242,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.88726, position (cm) = (86.6906,-124.946,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 3.19087, position (cm) = (89.7548,-127.882,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 5.57214, position (cm) = (86.6553,-124.902,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 12.3895, position (cm) = (86.3463,-129.367,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 65.6889, position (cm) = (92.5992,-124.054,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 0.0278771, position (cm) = (88.6744,-168.282,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 14.4973, position (cm) = (92.2831,-223.307,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 8.44546, position (cm) = (81.6571,-173.087,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 26.2732, position (cm) = (81.4439,-152.018,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 3.06333, position (cm) = (95.8688,-145.467,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 2.17115e-05, position (cm) = (88.3234,-130.293,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 2.60658, position (cm) = (127.229,-93.3763,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 3.49182, position (cm) = (139.04,-128.68,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 5.64732, position (cm) = (132.935,-115.281,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 0.316364, position (cm) = (132.751,-114.479,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.171258, position (cm) = (138.323,-123.487,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 6.53897e-06, position (cm) = (116.448,-92.7706,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.105288, position (cm) = (74.2346,-70.6975,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 3.62168, position (cm) = (98.4817,-105.918,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 1.92683e-06, position (cm) = (98.639,-91.6642,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 1.26574, position (cm) = (107.702,-2.97864,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.274004, position (cm) = (43.0347,-79.0653,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.446319, position (cm) = (105.056,-161.042,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 0.0291621, position (cm) = (70.6814,37.5768,200), weight = 0.0078125 - neutron, kinetic energy (MeV) = 22.516, position (cm) = (52.3759,27.1398,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 21.5639, position (cm) = (52.358,27.429,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 21.5071, position (cm) = (29.0557,23.7915,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.456827, position (cm) = (41.0486,38.5096,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.190244, position (cm) = (56.6221,32.7114,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.161839, position (cm) = (47.956,30.0197,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.447865, position (cm) = (50.5362,32.5045,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.0853942, position (cm) = (51.7152,33.6032,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 12.0955, position (cm) = (44.8084,31.4242,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 7.00971, position (cm) = (37.6301,30.6591,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 72.0244, position (cm) = (18.5914,88.8826,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 1.13173, position (cm) = (-16.5781,144.39,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 0.00105349, position (cm) = (-46.7433,208.187,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 0.00151943, position (cm) = (-12.0375,127.621,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.229616, position (cm) = (-16.8953,104.451,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 1.26869e-06, position (cm) = (-32.87,145.922,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 17.8288, position (cm) = (13.3806,85.7416,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 0.81423, position (cm) = (-1.86645,48.5343,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 71.9395, position (cm) = (39.626,46.9101,200), weight = 0.0078125 - gamma, kinetic energy (MeV) = 0.0847571, position (cm) = (53.9719,63.6812,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.532565, position (cm) = (55.2007,68.047,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 40.0709, position (cm) = (61.9147,75.3116,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 40.0709, position (cm) = (61.9147,75.3116,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 39.9743, position (cm) = (61.9171,75.3104,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 2.34494, position (cm) = (50.793,61.4257,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.0610743, position (cm) = (52.233,53.7257,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.0477933, position (cm) = (51.6869,62.2535,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 0.000237944, position (cm) = (62.9232,50.4091,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 72.8584, position (cm) = (55.2557,68.154,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 11.7453, position (cm) = (72.2136,58.693,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.162184, position (cm) = (81.9028,70.0433,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 11.1439, position (cm) = (63.7447,43.9425,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 11.4409, position (cm) = (61.0279,43.7568,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 11.4409, position (cm) = (61.0279,43.7568,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 11.6107, position (cm) = (57.8524,37.2718,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 11.8465, position (cm) = (56.2186,40.1966,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.151986, position (cm) = (54.9194,41.5103,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 2.97705, position (cm) = (36.2209,56.9388,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.0591777, position (cm) = (46.115,48.9923,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 0.596606, position (cm) = (46.7882,46.9754,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 2.47661, position (cm) = (53.5343,46.9406,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 2.4842, position (cm) = (69.5967,77.4917,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 62.5432, position (cm) = (70.3868,38.6603,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.150393, position (cm) = (79.7491,40.4542,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 0.610173, position (cm) = (78.8678,39.3717,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.268734, position (cm) = (67.9684,39.3838,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 63.0465, position (cm) = (72.3995,31.8043,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 6.67783, position (cm) = (82.0966,31.3905,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 30.9967, position (cm) = (72.3462,33.1786,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 2.66702, position (cm) = (44.0568,27.0714,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 2.66702, position (cm) = (44.0568,27.0714,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 0.873759, position (cm) = (35.3392,48.2474,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 3.18352, position (cm) = (45.0357,-22.3927,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.0833645, position (cm) = (48.0948,27.4883,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 2.14793, position (cm) = (49.9321,34.4561,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 4.99395, position (cm) = (48.5832,24.4053,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.16071, position (cm) = (30.2462,40.6959,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 0.121947, position (cm) = (59.094,24.499,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.237988, position (cm) = (68.2603,35.8699,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 1.55673, position (cm) = (40.6164,43.4468,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.510999, position (cm) = (69.5296,44.3309,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 40.1843, position (cm) = (66.1151,35.2066,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 5.90431, position (cm) = (53.0136,57.7177,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 38.6572, position (cm) = (62.0857,39.863,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 38.6572, position (cm) = (62.0857,39.863,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 38.6572, position (cm) = (62.0857,39.863,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 63.3948, position (cm) = (68.2834,38.3696,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 5.53912, position (cm) = (50.0067,44.2973,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 26.4063, position (cm) = (52.8503,44.7602,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 45.4782, position (cm) = (41.6402,43.4076,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 44.4512, position (cm) = (41.6411,47.3894,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 1.17426, position (cm) = (41.3621,27.5581,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 28.8603, position (cm) = (17.5659,31.2686,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 28.8603, position (cm) = (17.5659,31.2686,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 28.8603, position (cm) = (17.5659,31.2686,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 7.13896, position (cm) = (37.1944,50.2881,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 7.86426, position (cm) = (36.9369,50.9635,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 6.80316, position (cm) = (38.3667,28.7621,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.421799, position (cm) = (39.4924,37.9534,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 0.697072, position (cm) = (18.9615,26.1122,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 63.2354, position (cm) = (62.7966,31.3112,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 63.596, position (cm) = (64.3387,34.3541,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 1.04625, position (cm) = (53.0672,75.3283,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 62.9003, position (cm) = (63.1545,47.2812,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 62.9892, position (cm) = (63.405,46.6942,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.318765, position (cm) = (63.275,46.4679,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 3.16329, position (cm) = (63.7445,46.4629,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 4.43129, position (cm) = (63.7581,52.7379,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 36.5801, position (cm) = (63.4735,46.5294,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 1.90239, position (cm) = (17.7258,52.0183,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 0.884753, position (cm) = (30.6364,53.8241,200), weight = 0.015625 - neutron, kinetic energy (MeV) = 2.39071, position (cm) = (43.3255,66.2061,200), weight = 0.015625 - neutron, kinetic energy (MeV) = 1.09706, position (cm) = (-8.69869,-12.1742,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 10.7515, position (cm) = (9.89145,-103.479,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.0902805, position (cm) = (-13.5552,-76.7962,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 48.019, position (cm) = (22.3646,-96.6599,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 1.80231, position (cm) = (4.64948,-97.3701,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 14.0254, position (cm) = (-38.6,-113.91,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 14.0254, position (cm) = (-38.6,-113.91,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 1.69661, position (cm) = (-22.1749,-121.782,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.134453, position (cm) = (-39.5287,-91.1308,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 0.115215, position (cm) = (-24.1513,-92.7761,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.177587, position (cm) = (-21.6993,-90.5216,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 2.32847, position (cm) = (-46.6459,-113.658,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 5.07295, position (cm) = (-60.1373,-120.875,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 61.105, position (cm) = (-32.3488,23.8639,200), weight = 0.015625 - neutron, kinetic energy (MeV) = 61.1148, position (cm) = (-32.3348,23.4428,200), weight = 0.015625 - neutron, kinetic energy (MeV) = 30.9104, position (cm) = (-76.3042,14.8953,200), weight = 0.015625 - gamma, kinetic energy (MeV) = 4.62806, position (cm) = (99.7197,41.4026,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 6.27729e-06, position (cm) = (36.1095,24.4572,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 3.46993, position (cm) = (86.3358,47.3494,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.255887, position (cm) = (95.3076,44.7987,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.349984, position (cm) = (-94.7461,-95.5797,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.185406, position (cm) = (-78.8172,-88.1402,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 1.28384, position (cm) = (-67.631,-62.5555,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.696685, position (cm) = (-65.0764,-102.777,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.129525, position (cm) = (-69.2504,-104.113,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 2.52733, position (cm) = (-43.2348,-101.848,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.26437, position (cm) = (-59.7104,-79.3817,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 0.527904, position (cm) = (-73.6669,-86.9145,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 1.50263, position (cm) = (-78.0689,-77.4812,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 0.162731, position (cm) = (-63.4111,-57.8107,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 1.89699, position (cm) = (-60.0095,-74.1175,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 7.52496, position (cm) = (-70.5666,-80.787,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 7.52496, position (cm) = (-70.5666,-80.787,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 4.72323, position (cm) = (-74.2073,-78.73,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 1.71946, position (cm) = (-59.2444,-64.9178,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 1.34791, position (cm) = (-54.5523,-78.8892,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 0.0344507, position (cm) = (-90.2053,304.651,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 0.169981, position (cm) = (-82.9235,244.74,200), weight = 2.38419e-07 - e-, kinetic energy (MeV) = 6.65353, position (cm) = (-83.2641,244.11,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.226632, position (cm) = (-81.7658,239.242,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 24.3413, position (cm) = (-66.7614,262.62,200), weight = 2.98023e-08 - gamma, kinetic energy (MeV) = 2.76941, position (cm) = (-51.3842,258.483,200), weight = 2.98023e-08 - neutron, kinetic energy (MeV) = 0.00214227, position (cm) = (-64.286,259.552,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 10.5409, position (cm) = (-67.0964,281.614,200), weight = 3.72529e-09 - neutron, kinetic energy (MeV) = 10.5409, position (cm) = (-67.0964,281.614,200), weight = 3.72529e-09 - neutron, kinetic energy (MeV) = 12.8591, position (cm) = (-73.4247,279.228,200), weight = 3.72529e-09 - gamma, kinetic energy (MeV) = 0.115542, position (cm) = (-59.5973,273.78,200), weight = 3.72529e-09 - neutron, kinetic energy (MeV) = 1.41449, position (cm) = (-63.9598,266.468,200), weight = 3.72529e-09 - neutron, kinetic energy (MeV) = 1.77917, position (cm) = (-66.3116,258.38,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 0.162394, position (cm) = (-42.5123,253.458,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 0.926173, position (cm) = (-55.0237,254.531,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 0.000945725, position (cm) = (-101.26,217.62,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 73.3235, position (cm) = (1.14177,74.9086,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 73.3235, position (cm) = (1.14177,74.9086,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 73.3235, position (cm) = (1.14177,74.9086,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.174731, position (cm) = (14.5548,73.5174,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.966577, position (cm) = (30.7912,64.7957,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 4.24708, position (cm) = (-2.21051,84.3543,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 35.3625, position (cm) = (1.42477,75.8438,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 73.3235, position (cm) = (1.14177,74.9086,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 73.3235, position (cm) = (1.14177,74.9086,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.0666741, position (cm) = (-22.7719,8.21535,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.754437, position (cm) = (-47.4428,-16.7877,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 20.916, position (cm) = (-38.0057,89.2804,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 20.916, position (cm) = (-38.0057,89.2804,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 20.916, position (cm) = (-38.0057,89.2804,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 2.54784, position (cm) = (-23.4068,98.138,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 3.02516, position (cm) = (-67.5381,110.101,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 20.8534, position (cm) = (-55.5931,121.424,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.264489, position (cm) = (-54.277,116.44,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 1.58486, position (cm) = (-54.8922,118.677,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 0.561108, position (cm) = (-42.9479,111.259,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 3.92162, position (cm) = (-34.7738,112.8,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 1.998, position (cm) = (-19.4896,20.6301,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 1.00924, position (cm) = (4.75621,112.695,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 4.2683, position (cm) = (13.6777,118.17,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 4.17417, position (cm) = (5.36584,52.7713,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.156044, position (cm) = (-21.244,85.4423,200), weight = 0.0078125 - gamma, kinetic energy (MeV) = 0.215148, position (cm) = (-5.53428,115.915,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 2.04317e-05, position (cm) = (-17.4005,121.898,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 0.0527525, position (cm) = (-25.9539,98.1399,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 28.7793, position (cm) = (-14.6697,170.104,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 28.7793, position (cm) = (-14.6697,170.104,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 28.7099, position (cm) = (-14.4671,169.095,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 28.2241, position (cm) = (-16.0892,168.185,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 28.3359, position (cm) = (-5.74446,176.206,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 7.88312e-05, position (cm) = (-15.4172,161.715,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.129595, position (cm) = (-7.51487,158.675,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.864045, position (cm) = (-39.8124,181.703,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 8.55116e-07, position (cm) = (-3.01709,202.906,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.0863812, position (cm) = (-11.0081,183.984,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.543489, position (cm) = (-13.127,185.351,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 7.61533, position (cm) = (-11.1624,186.529,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 1.95501, position (cm) = (-12.149,191.892,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 2.69963, position (cm) = (-12.9898,192.349,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 1.95115, position (cm) = (-5.66444,184.171,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 22.9781, position (cm) = (-10.5754,184.485,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 22.9781, position (cm) = (-10.5754,184.485,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 2.47404, position (cm) = (-3.95366,190.139,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 3.91739, position (cm) = (-11.2991,186.67,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.334472, position (cm) = (1.32642,191.747,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 2.03956, position (cm) = (-3.18492,197.116,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 15.8958, position (cm) = (-2.68503,211.469,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 16.3228, position (cm) = (-2.78618,211.473,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 17.3557, position (cm) = (6.36868,212.313,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 17.272, position (cm) = (0.445505,203.324,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 0.234107, position (cm) = (5.25094,213.999,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 17.3557, position (cm) = (6.36868,212.313,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 0.0608552, position (cm) = (1.11614,199.09,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 4.34457, position (cm) = (-0.115351,193.475,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.245302, position (cm) = (22.3304,215.262,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.491063, position (cm) = (4.31828,197.742,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 0.993152, position (cm) = (-30.1552,167.474,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 7.78527, position (cm) = (-43.7472,161.365,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 0.551088, position (cm) = (-37.1631,156.188,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 5.29551, position (cm) = (-32.6126,151.456,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 7.75758, position (cm) = (-55.2101,157.873,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 7.75758, position (cm) = (-55.2101,157.873,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 6.7207, position (cm) = (-66.0668,161.354,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 7.96972, position (cm) = (-70.9359,157.181,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 4.77043e-05, position (cm) = (-62.2738,157.395,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.0781776, position (cm) = (-59.0194,168.818,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 2.68748, position (cm) = (-55.251,161.359,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 3.1235, position (cm) = (-59.3011,156.304,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 51.8379, position (cm) = (179.473,-22.4753,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 0.000129139, position (cm) = (180.71,84.228,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 8.19946, position (cm) = (195.015,96.5296,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.199604, position (cm) = (182.577,95.9353,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.419877, position (cm) = (186.016,91.7964,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 1.10423, position (cm) = (202.39,120.34,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.797588, position (cm) = (148.295,110.326,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.39288, position (cm) = (144.182,76.8766,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 0.812072, position (cm) = (163.532,114.576,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 0.775855, position (cm) = (214.532,114.534,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 2.82127, position (cm) = (191.979,85.635,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 0.285821, position (cm) = (152.46,69.7987,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.2003, position (cm) = (197.104,129.241,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 4.68014, position (cm) = (193.529,129.967,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 9.82034, position (cm) = (198.112,129.686,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 6.85256, position (cm) = (193.801,135.89,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.093167, position (cm) = (196.328,136.668,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 2.61921, position (cm) = (191.804,139.067,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 4.11482, position (cm) = (192.575,136.258,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 4.90577e-08, position (cm) = (205.991,139.206,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 7.06533e-06, position (cm) = (171.624,5.20964,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 43.6191, position (cm) = (248.114,33.5896,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 43.3544, position (cm) = (246.006,27.297,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 0.0281415, position (cm) = (200.046,-15.4388,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 8.0877e-05, position (cm) = (169.62,-18.9008,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 50.8317, position (cm) = (178.623,26.2987,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 0.00604916, position (cm) = (147.196,58.5529,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 58.8405, position (cm) = (202.742,1.35716,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 58.8405, position (cm) = (202.742,1.35716,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.200783, position (cm) = (208.227,4.09725,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 4.89442, position (cm) = (190.868,8.39563,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 0.493246, position (cm) = (290.3,-12.0321,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 6.31116, position (cm) = (261.447,12.2975,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 2.80012, position (cm) = (265.73,16.6133,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 62.7172, position (cm) = (308.949,13.3484,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 62.9455, position (cm) = (316.619,7.45439,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 62.9455, position (cm) = (316.619,7.45439,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 91.3559, position (cm) = (-2.13841,-27.3113,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 92.1959, position (cm) = (-2.70508,-23.4483,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 90.6557, position (cm) = (-0.844706,-25.9207,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 99.2874, position (cm) = (6.9399,-10.6786,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 0.986549, position (cm) = (-2.73202,-7.22467,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 34.9007, position (cm) = (10.2748,-8.98181,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.198035, position (cm) = (24.6511,-13.2553,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 73.7898, position (cm) = (3.76035,-25.1223,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 74.0707, position (cm) = (3.48709,-24.9572,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.0613192, position (cm) = (-40.3855,-43.4694,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 2.44479, position (cm) = (-6.72852,-13.8219,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 5.73537, position (cm) = (-0.740845,-18.3124,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 8.0686, position (cm) = (27.0073,-32.2116,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 2.71261, position (cm) = (0.461804,-20.8892,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.257362, position (cm) = (11.0455,-26.9355,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 4.85723, position (cm) = (17.2558,-20.3469,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 1.42196, position (cm) = (18.026,-66.8051,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 0.0189933, position (cm) = (25.6153,-109.232,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.458525, position (cm) = (24.2262,-88.0314,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.811703, position (cm) = (30.9777,-98.681,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 1.97965, position (cm) = (35.7908,-88.5664,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 2.15218, position (cm) = (6.49368,-67.8511,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 6.44488, position (cm) = (33.39,-78.882,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.00318022, position (cm) = (34.9993,-118.705,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 1.27991e-06, position (cm) = (27.0845,-144.138,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 1.67919, position (cm) = (19.9857,-148.604,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 8.95873, position (cm) = (23.2014,-146.426,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 20.8474, position (cm) = (29.8887,-143.285,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 20.3592, position (cm) = (31.8394,-144.359,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.0066601, position (cm) = (37.1951,-87.8431,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.141293, position (cm) = (59.971,-122.161,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.309237, position (cm) = (27.2969,-164.519,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 0.556635, position (cm) = (44.8275,-126.259,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 1.72168e-08, position (cm) = (32.2915,-168.516,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 0.2757, position (cm) = (34.1275,-164.142,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 6.15476, position (cm) = (31.2542,-138.675,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 0.163742, position (cm) = (42.9709,-174.467,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 0.221563, position (cm) = (37.0479,-173.873,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 0.306345, position (cm) = (32.5902,-175.668,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 0.510999, position (cm) = (35.2408,-134.377,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 2.88045, position (cm) = (23.8226,-178.773,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.123083, position (cm) = (-24.3087,-61.4234,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.517141, position (cm) = (-17.0095,-63.2924,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.143602, position (cm) = (-24.8925,-50.4533,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 39.2151, position (cm) = (-23.7,-61.4478,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.707753, position (cm) = (-23.1947,-61.3018,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 0.00491798, position (cm) = (-19.9115,-31.6844,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 1.74385, position (cm) = (-7.52048,-91.0007,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 38.9573, position (cm) = (-31.7497,-67.6355,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.559434, position (cm) = (-4.2501,-60.991,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 6.69484, position (cm) = (-27.3907,-59.2291,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 0.283934, position (cm) = (-36.2503,-94.8299,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.122102, position (cm) = (-25.7309,-81.597,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 39.3678, position (cm) = (-21.9456,-62.7115,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.224558, position (cm) = (-22.2374,-61.922,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 6.53878, position (cm) = (-21.2148,-62.2145,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 29.9848, position (cm) = (-26.801,-60.079,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 29.9848, position (cm) = (-26.801,-60.079,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 39.7701, position (cm) = (-26.177,-69.479,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 27.4803, position (cm) = (-56.9261,-21.5554,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 27.4803, position (cm) = (-56.9261,-21.5554,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 0.0344869, position (cm) = (-55.0454,-9.69626,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 1.5003, position (cm) = (-54.728,-19.6784,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 1.42992, position (cm) = (-30.3785,-43.4674,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 3.33964, position (cm) = (-62.7397,-12.8945,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 21.5741, position (cm) = (-55.3491,-11.5962,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 21.5741, position (cm) = (-55.3491,-11.5962,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 21.433, position (cm) = (-55.7042,-11.0786,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 21.9309, position (cm) = (-55.1318,-13.9377,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.212451, position (cm) = (-51.5082,-9.41617,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 2.09429, position (cm) = (-51.6301,17.57,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 0.0326458, position (cm) = (-26.282,-67.1509,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 1.37586, position (cm) = (-60.5647,-23.0668,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 14.8182, position (cm) = (-23.9676,-25.2969,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 3.31572, position (cm) = (-24.1728,-25.1655,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 14.8182, position (cm) = (-23.9676,-25.2969,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 61.9138, position (cm) = (-29.3644,18.1229,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 61.9138, position (cm) = (-29.3644,18.1229,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 71.5304, position (cm) = (-30.0343,14.065,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 72.4488, position (cm) = (-29.8521,13.5902,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 72.4488, position (cm) = (-29.8521,13.5902,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.586759, position (cm) = (-30.7618,-14.6098,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 1.09202, position (cm) = (-36.6033,-8.2025,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 1.52392, position (cm) = (-48.6799,-25.5955,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 4.32756, position (cm) = (-47.4763,-36.3881,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.726961, position (cm) = (-34.0434,-40.4607,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 0.0976944, position (cm) = (-48.2423,-39.1938,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 0.634571, position (cm) = (-46.6283,-16.7399,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 5.04196, position (cm) = (-41.5323,-14.6571,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.436023, position (cm) = (-54.4304,-42.8803,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 0.993388, position (cm) = (-63.4642,-35.9735,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 50.7381, position (cm) = (1.64287,43.4828,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 51.2849, position (cm) = (0.628925,39.9036,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 24.6639, position (cm) = (-8.41815,30.4909,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 24.788, position (cm) = (-4.36397,30.0941,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.0919495, position (cm) = (-1.27985,30.9724,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 2.76203, position (cm) = (2.13593,28.8266,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 0.0208438, position (cm) = (5.4104,29.3236,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 1.31294, position (cm) = (0.332664,27.9588,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.291384, position (cm) = (-3.39584,24.7382,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 50.4445, position (cm) = (-5.96641,59.591,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 5.56797, position (cm) = (-26.6207,44.7757,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 2.68607, position (cm) = (-45.8462,47.1156,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 0.00453659, position (cm) = (-48.135,47.9933,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.282227, position (cm) = (-30.4962,41.0327,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.189023, position (cm) = (-6.9439,17.3658,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 0.700679, position (cm) = (-0.980868,19.5118,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 2.47468, position (cm) = (-9.8491,3.83438,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 3.87925, position (cm) = (-1.02085,17.5102,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 1.08996, position (cm) = (-2.94783,18.634,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 1.49048, position (cm) = (-13.0698,26.1364,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 4.87163, position (cm) = (-6.19335,22.1998,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 51.0779, position (cm) = (-3.39553,25.7049,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 7.36735, position (cm) = (-0.986598,25.0955,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.177262, position (cm) = (-2.04454,35.4512,200), weight = 0.0078125 - neutron, kinetic energy (MeV) = 30.6999, position (cm) = (69.7057,-36.2229,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.464224, position (cm) = (62.5428,-28.0013,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 0.00556589, position (cm) = (54.5955,-44.8154,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.112157, position (cm) = (57.6405,-32.7068,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.958507, position (cm) = (64.8182,-57.0207,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 3.26988, position (cm) = (58.344,-61.6959,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.137648, position (cm) = (134.412,5.06736,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.199947, position (cm) = (53.3716,-41.6794,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.38499, position (cm) = (72.3304,-62.0355,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 0.0136809, position (cm) = (101.884,-53.4965,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 1.04589, position (cm) = (93.6908,-59.6086,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 1.08038, position (cm) = (92.7643,-56.6136,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 6.12938, position (cm) = (92.1072,-63.4504,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 0.97687, position (cm) = (123.884,-116.931,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.5044, position (cm) = (87.0605,-121.132,200), weight = 2.98023e-08 - neutron, kinetic energy (MeV) = 0.819861, position (cm) = (112.895,-95.9592,200), weight = 2.98023e-08 - gamma, kinetic energy (MeV) = 3.3032, position (cm) = (103.149,-108.115,200), weight = 2.98023e-08 - neutron, kinetic energy (MeV) = 6.53568, position (cm) = (108.761,-97.9568,200), weight = 2.98023e-08 - neutron, kinetic energy (MeV) = 6.53568, position (cm) = (108.761,-97.9568,200), weight = 2.98023e-08 - gamma, kinetic energy (MeV) = 0.132461, position (cm) = (89.946,-106.174,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 2.26207, position (cm) = (88.5712,-103.438,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 1.35707, position (cm) = (152.634,-80.0553,200), weight = 1.19209e-07 - neutron, kinetic energy (MeV) = 4.83199, position (cm) = (149.221,-55.5026,200), weight = 2.98023e-08 - gamma, kinetic energy (MeV) = 0.167083, position (cm) = (147.385,-67.9376,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 0.0824008, position (cm) = (103.661,-53.0841,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.514261, position (cm) = (94.7486,-54.3125,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 11.1525, position (cm) = (91.6614,-61.7839,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 0.643784, position (cm) = (45.6928,-13.4804,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 19.3775, position (cm) = (52.5547,-15.268,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 20.4011, position (cm) = (53.8403,-15.8125,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 20.3201, position (cm) = (55.0196,-15.9086,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.111516, position (cm) = (32.6576,-8.09121,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.507869, position (cm) = (58.2396,-7.78678,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 5.09001, position (cm) = (59.836,-18.2766,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 29.4099, position (cm) = (68.3521,-11.2012,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 29.4099, position (cm) = (68.3521,-11.2012,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.372036, position (cm) = (127.685,0.292134,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.46034, position (cm) = (128.036,4.46111,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 3.1116, position (cm) = (135.756,-0.576798,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 7.81299, position (cm) = (112.245,6.42869,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 7.81299, position (cm) = (112.245,6.42869,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 0.0738126, position (cm) = (118.773,4.41555,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 0.111523, position (cm) = (111.906,2.46178,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.502434, position (cm) = (107.523,2.89283,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 2.34175, position (cm) = (108.634,10.7752,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 1.91731, position (cm) = (110.69,-0.521011,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 1.12044, position (cm) = (104.039,6.06969,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 1.15235, position (cm) = (94.8518,17.085,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.0932433, position (cm) = (124.534,14.9645,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 6.76088, position (cm) = (97.6842,-1.40617,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.104703, position (cm) = (104.359,26.8194,200), weight = 1.19209e-07 - neutron, kinetic energy (MeV) = 5.72201, position (cm) = (107.29,11.1941,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 1.01476, position (cm) = (156.981,55.9036,200), weight = 2.98023e-08 - gamma, kinetic energy (MeV) = 0.175615, position (cm) = (151.211,53.4447,200), weight = 2.98023e-08 - neutron, kinetic energy (MeV) = 8.71654, position (cm) = (167.612,74.9409,200), weight = 1.49012e-08 - gamma, kinetic energy (MeV) = 0.20816, position (cm) = (168.175,83.6076,200), weight = 1.49012e-08 - gamma, kinetic energy (MeV) = 0.877196, position (cm) = (161.83,90.9987,200), weight = 1.49012e-08 - gamma, kinetic energy (MeV) = 3.44797, position (cm) = (163.997,82.3139,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 9.62692e-05, position (cm) = (153.449,54.8938,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 4.02903, position (cm) = (123.852,24.6101,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 3.48958, position (cm) = (96.2216,13.1053,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 17.1772, position (cm) = (97.7831,9.15429,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 0.779997, position (cm) = (70.7592,20.295,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.386757, position (cm) = (116.437,5.94036,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 0.0878548, position (cm) = (108.84,-29.8227,200), weight = 1.19209e-07 - neutron, kinetic energy (MeV) = 3.05285, position (cm) = (105.313,-29.9014,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 0.295346, position (cm) = (106.458,-29.9456,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 6.074, position (cm) = (79.0596,-38.8912,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 0.454426, position (cm) = (125.456,-30.925,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 0.265275, position (cm) = (133.091,-33.2786,200), weight = 1.19209e-07 - neutron, kinetic energy (MeV) = 9.80314, position (cm) = (154.224,-10.7963,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 5.05564, position (cm) = (122.736,-33.7443,200), weight = 2.98023e-08 - neutron, kinetic energy (MeV) = 12.01, position (cm) = (131.262,-30.1127,200), weight = 2.98023e-08 - neutron, kinetic energy (MeV) = 12.01, position (cm) = (131.262,-30.1127,200), weight = 2.98023e-08 - neutron, kinetic energy (MeV) = 12.01, position (cm) = (131.262,-30.1127,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 0.101224, position (cm) = (89.7724,-23.9924,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.201008, position (cm) = (91.9359,-30.6545,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.191256, position (cm) = (94.9806,-15.1383,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 0.0628593, position (cm) = (80.419,-31.3835,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.2675, position (cm) = (90.8242,-20.9268,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 5.69204, position (cm) = (110.09,-29.3705,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 0.0803012, position (cm) = (44.0352,61.4336,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 0.0179135, position (cm) = (36.5113,67.4754,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.351661, position (cm) = (34.2483,74.1763,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 1.1044, position (cm) = (34.4985,58.3753,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 24.9124, position (cm) = (30.4458,73.3447,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 3.65398, position (cm) = (32.1462,65.7773,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.230837, position (cm) = (96.3365,100.61,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 0.553783, position (cm) = (95.6564,106.423,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.131462, position (cm) = (86.6879,97.8154,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 4.14099, position (cm) = (88.4447,108.54,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 22.2598, position (cm) = (125.042,130.65,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 22.5876, position (cm) = (125.955,130.515,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 0.0243977, position (cm) = (110.118,135.305,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 28.5961, position (cm) = (102.877,137.326,200), weight = 1.49012e-08 - gamma, kinetic energy (MeV) = 0.115041, position (cm) = (108.982,133.821,200), weight = 1.49012e-08 - gamma, kinetic energy (MeV) = 1.0013, position (cm) = (104.068,140.971,200), weight = 1.49012e-08 - gamma, kinetic energy (MeV) = 0.0821155, position (cm) = (97.7067,135.583,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 6.03152, position (cm) = (103.792,137.733,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 28.9256, position (cm) = (103.211,137.857,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 28.9256, position (cm) = (103.211,137.857,200), weight = 1.49012e-08 - gamma, kinetic energy (MeV) = 0.0865973, position (cm) = (112.085,132.795,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 0.313837, position (cm) = (106.588,133.723,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 0.132925, position (cm) = (92.1803,129.707,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 1.79563, position (cm) = (98.4472,133.87,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 4.77111, position (cm) = (105.236,130.021,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 28.7835, position (cm) = (102.121,134.333,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 0.881456, position (cm) = (109.057,117.854,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 0.194765, position (cm) = (112.732,116.63,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.1245, position (cm) = (129.003,138.431,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.21493, position (cm) = (147.252,140.678,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.236043, position (cm) = (151.162,135.435,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.549009, position (cm) = (133.771,143.972,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 19.047, position (cm) = (123.29,130.001,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 0.198084, position (cm) = (128.004,141.32,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 0.134233, position (cm) = (138.68,118.436,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 11.2787, position (cm) = (122.871,143.098,200), weight = 2.98023e-08 - neutron, kinetic energy (MeV) = 11.2787, position (cm) = (122.871,143.098,200), weight = 2.98023e-08 - gamma, kinetic energy (MeV) = 0.116155, position (cm) = (127.949,122.561,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 3.59484, position (cm) = (126.785,129.409,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 2.50313, position (cm) = (92.5836,94.8964,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 0.251513, position (cm) = (79.5433,91.5198,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 1.43863, position (cm) = (98.4015,102.563,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 0.184506, position (cm) = (108.486,104.138,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.585871, position (cm) = (109.876,109.734,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 11.5286, position (cm) = (104.394,106.441,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 57.8068, position (cm) = (74.3604,83.1508,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 57.8068, position (cm) = (74.3604,83.1508,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 57.8068, position (cm) = (74.3604,83.1508,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 57.8068, position (cm) = (74.3604,83.1508,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 57.135, position (cm) = (74.2893,83.0738,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 57.8068, position (cm) = (74.3604,83.1508,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 58.0253, position (cm) = (78.2568,86.4759,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 58.0253, position (cm) = (78.2568,86.4759,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.128769, position (cm) = (80.2858,81.1047,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.304632, position (cm) = (99.8667,95.7066,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 58.0253, position (cm) = (78.2568,86.4759,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 0.967403, position (cm) = (75.5422,83.7707,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 9.17356e-06, position (cm) = (85.8208,85.1004,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 3.51752e-05, position (cm) = (90.275,86.9033,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 56.6867, position (cm) = (78.1304,122.265,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.0943086, position (cm) = (77.2548,118.972,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.163633, position (cm) = (102.786,111.915,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 8.67016, position (cm) = (81.0123,122.156,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 0.263236, position (cm) = (61.0853,61.3267,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 0.000670063, position (cm) = (63.7111,64.2122,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.111378, position (cm) = (75.3084,50.9638,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 3.23229, position (cm) = (76.0531,54.8975,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.370546, position (cm) = (74.6139,60.1501,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 2.55216, position (cm) = (73.9652,60.3357,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 35.298, position (cm) = (77.2664,52.0924,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.379168, position (cm) = (69.6424,51.8946,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 4.49866, position (cm) = (68.0772,58.0515,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 1.65615, position (cm) = (84.2006,45.3506,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 36.0683, position (cm) = (64.0615,49.4565,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 36.0683, position (cm) = (64.0615,49.4565,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 36.2686, position (cm) = (67.5272,49.7947,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 0.00192085, position (cm) = (83.47,71.819,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 10.0552, position (cm) = (70.652,91.4136,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.17496, position (cm) = (16.1842,170.422,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 5.20008, position (cm) = (50.7853,36.1201,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 54.584, position (cm) = (-2.05675,40.0882,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 0.00168574, position (cm) = (-4.333,57.626,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 4.82066, position (cm) = (16.6717,54.1606,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 8.96817, position (cm) = (16.3607,59.8874,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 8.96817, position (cm) = (16.3607,59.8874,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 8.96817, position (cm) = (16.3607,59.8874,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 0.320693, position (cm) = (16.5223,59.6314,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 2.66588, position (cm) = (23.9211,53.4505,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 4.43026, position (cm) = (17.9067,57.5263,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 8.96817, position (cm) = (16.3607,59.8874,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 4.87143, position (cm) = (15.4184,8.42278,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.599552, position (cm) = (14.4432,62.0219,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 6.62255, position (cm) = (4.40369,61.1931,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 2.65931, position (cm) = (34.4353,-3.71481,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 4.591, position (cm) = (28.4875,-0.157064,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 56.9348, position (cm) = (28.8195,54.0147,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.362883, position (cm) = (31.0673,57.2445,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 1.14979, position (cm) = (28.626,58.8724,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 0.758137, position (cm) = (15.7583,61.7616,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.625233, position (cm) = (20.9833,56.6336,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 4.71232, position (cm) = (31.2456,58.0214,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.574466, position (cm) = (27.0001,57.5715,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.580926, position (cm) = (27.1384,56.9678,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.212124, position (cm) = (17.9023,62.3063,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 56.5714, position (cm) = (24.661,55.1878,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.131511, position (cm) = (32.5767,51.8788,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.0686864, position (cm) = (36.9057,80.9873,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 5.58186, position (cm) = (26.8343,64.2986,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 5.84404, position (cm) = (28.6899,65.9919,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 6.7803, position (cm) = (28.6476,66.7054,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 2.48252, position (cm) = (27.1586,75.816,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 8.96279, position (cm) = (36.6697,63.4106,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.331209, position (cm) = (41.1283,54.4184,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 5.47564e-08, position (cm) = (31.6422,92.77,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 3.40973, position (cm) = (44.5702,35.517,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 1.62849, position (cm) = (56.1527,33.1779,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.154909, position (cm) = (50.8563,89.1037,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 1.34895, position (cm) = (17.6066,90.4053,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 0.480184, position (cm) = (68.836,99.6537,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 0.42907, position (cm) = (115.737,59.439,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.220282, position (cm) = (114.706,58.1311,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.348464, position (cm) = (132.588,42.0323,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 3.34584, position (cm) = (114.534,56.6423,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 11.4114, position (cm) = (118.454,59.4727,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 47.4312, position (cm) = (105.436,57.9963,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.468759, position (cm) = (106.396,52.7385,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 2.51731, position (cm) = (72.9657,33.9848,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 8.08696, position (cm) = (61.0591,87.5851,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 7.93934, position (cm) = (61.9894,87.8843,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 1.51642, position (cm) = (72.3453,90.855,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.132714, position (cm) = (-72.4615,-45.4268,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.0732262, position (cm) = (-69.0872,-49.2078,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 1.97666, position (cm) = (-66.4211,-44.7407,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 1.76412, position (cm) = (-64.9946,-45.4023,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 3.00485, position (cm) = (-70.6161,-37.7835,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.674332, position (cm) = (-60.3307,-26.6631,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 57.4478, position (cm) = (-81.5955,-50.5539,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 56.89, position (cm) = (-99.068,-39.3234,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 6.31175e-06, position (cm) = (-95.1376,-35.1721,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 4.34347, position (cm) = (-92.953,-55.5278,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 56.1615, position (cm) = (-109.645,-35.2517,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.131928, position (cm) = (-94.8292,-68.3816,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 57.4664, position (cm) = (-82.0219,-49.421,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.465153, position (cm) = (-58.2223,-34.9505,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 0.3163, position (cm) = (-104.121,-55.7456,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.327378, position (cm) = (-93.2839,-67.4661,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 9.29301e-06, position (cm) = (-105.074,-81.77,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 57.5529, position (cm) = (-98.0483,-63.7532,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 57.5459, position (cm) = (-99.0483,-63.2442,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 57.5529, position (cm) = (-98.0483,-63.7532,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 57.0508, position (cm) = (-94.7049,-72.4978,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 2.00628e-06, position (cm) = (-65.2352,-40.2412,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.0798585, position (cm) = (-89.6071,-60.1009,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 0.153621, position (cm) = (-51.6274,-52.0191,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.292108, position (cm) = (-86.4038,-18.6882,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.914132, position (cm) = (-70.1952,-132.723,200), weight = 0.015625 - neutron, kinetic energy (MeV) = 60.8985, position (cm) = (-155.612,-166.944,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 2.3111, position (cm) = (-161.659,-191.14,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 48.5327, position (cm) = (-7.18114,-28.8995,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 48.5327, position (cm) = (-7.18114,-28.8995,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.879838, position (cm) = (-39.4568,-46.0738,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 78.7331, position (cm) = (26.8209,-16.8325,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 78.7331, position (cm) = (26.8209,-16.8325,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 54.5957, position (cm) = (1.00561,-70.345,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 55.5621, position (cm) = (-26.3558,-70.8795,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 55.5621, position (cm) = (-26.3558,-70.8795,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 54.9553, position (cm) = (-24.2623,-69.932,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.303999, position (cm) = (3.39183,-60.4714,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 2.5682, position (cm) = (11.7467,-77.9579,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.245443, position (cm) = (11.6413,-72.776,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 2.77814, position (cm) = (10.5561,-72.8962,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 2.7365, position (cm) = (10.3782,-71.5659,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 4.99193, position (cm) = (11.9059,-73.1511,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 10.989, position (cm) = (9.68075,-76.5305,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.131901, position (cm) = (-6.71731,-96.4234,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 1.06422, position (cm) = (-2.60136,-112.688,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 2.83843, position (cm) = (27.8947,-95.2117,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 1.49509e-06, position (cm) = (13.0262,-92.0502,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 2.5151, position (cm) = (12.8212,-87.4465,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 1.82571, position (cm) = (20.0302,-93.1805,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 2.57517, position (cm) = (21.5558,-87.3994,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 2.86243, position (cm) = (21.1377,-94.6626,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 38.8465, position (cm) = (12.1316,-93.6666,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 1.26266, position (cm) = (19.03,-116.686,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 1.56712, position (cm) = (-6.49834,-77.3096,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 24.7596, position (cm) = (-5.40932,-69.6675,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.0774269, position (cm) = (-80.3101,-59.6945,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 21.666, position (cm) = (-68.0294,-71.1145,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 99.2379, position (cm) = (-37.5745,28.8894,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 99.2224, position (cm) = (-38.1171,28.715,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 99.2379, position (cm) = (-37.5745,28.8894,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 99.2379, position (cm) = (-37.5745,28.8894,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 98.9797, position (cm) = (-37.7326,28.3916,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.0568929, position (cm) = (-25.1448,36.7178,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 47.9778, position (cm) = (-32.7858,35.2009,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.135908, position (cm) = (-30.6035,20.4261,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.111926, position (cm) = (-35.701,36.1722,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 98.5541, position (cm) = (-28.2135,45.405,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 1.95306, position (cm) = (-22.0835,39.3815,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.50909, position (cm) = (-20.0189,32.4606,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.262575, position (cm) = (-19.6188,35.8213,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 0.0662679, position (cm) = (-70.308,15.7604,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 4.05851, position (cm) = (-29.1765,52.9444,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 17.9578, position (cm) = (-30.6163,50.924,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 17.2713, position (cm) = (-31.4299,47.6863,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 19.6204, position (cm) = (-35.6044,46.417,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.51409, position (cm) = (-28.4692,20.3962,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 2, position (cm) = (-40.2828,30.4763,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 2.71996, position (cm) = (-36.6231,28.5063,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 0.000223022, position (cm) = (-27.3585,29.9136,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 99.2334, position (cm) = (-38.845,29.9816,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 3.55424, position (cm) = (-40.7669,22.5587,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 99.2334, position (cm) = (-38.845,29.9816,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 0.243454, position (cm) = (-73.7355,-6.97587,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 5.26951, position (cm) = (-57.8421,14.4268,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 5.26951, position (cm) = (-57.8421,14.4268,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 5.26951, position (cm) = (-57.8421,14.4268,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 0.24095, position (cm) = (-53.9037,0.0390338,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 62.1967, position (cm) = (-68.8147,14.0994,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 3.55175, position (cm) = (-5.38422,-4.07732,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 48.0314, position (cm) = (-5.06807,-4.05651,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 1.45493, position (cm) = (-6.68563,-5.29878,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 25.9929, position (cm) = (-5.66311,-4.81812,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 9.9835, position (cm) = (-18.9119,8.69524,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 9.9835, position (cm) = (-18.9119,8.69524,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 9.9835, position (cm) = (-18.9119,8.69524,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 1.04656, position (cm) = (-14.1558,11.5546,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 6.38648, position (cm) = (-21.2318,85.3799,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 2.66078e-06, position (cm) = (-12.429,97.3051,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 1.56885e-05, position (cm) = (-14.7271,103.303,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 1.30351, position (cm) = (-11.2384,86.7415,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 1.59449, position (cm) = (-9.56803,102.875,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 17.8252, position (cm) = (26.2106,102.623,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 1.8059, position (cm) = (20.7511,101.872,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 2.24443e-06, position (cm) = (24.6319,92.8154,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 0.000148826, position (cm) = (41.1746,61.3438,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 17.8079, position (cm) = (17.931,70.5127,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 1.15662, position (cm) = (23.8891,79.9671,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 18.0687, position (cm) = (21.9172,77.8417,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 18.0687, position (cm) = (21.9172,77.8417,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.245168, position (cm) = (22.9283,66.0252,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 1.8634, position (cm) = (31.4742,77.5144,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 40.8021, position (cm) = (7.79382,160.6,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 1.15638, position (cm) = (34.2432,86.0966,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.322111, position (cm) = (23.5237,128.633,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 3.00707, position (cm) = (29.0178,130.609,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 0.00146104, position (cm) = (55.7518,-56.6924,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 1.04838, position (cm) = (64.9119,-36.0782,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 1.71046, position (cm) = (67.3481,-25.932,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 0.492814, position (cm) = (88.8722,-57.9101,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 2.16894, position (cm) = (73.3561,-62.5921,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.115513, position (cm) = (83.3345,14.9018,200), weight = 0.0078125 - gamma, kinetic energy (MeV) = 4.12948, position (cm) = (75.1524,12.7355,200), weight = 0.0078125 - neutron, kinetic energy (MeV) = 9.92606, position (cm) = (81.9312,4.27971,200), weight = 0.0078125 - gamma, kinetic energy (MeV) = 0.311395, position (cm) = (81.7553,-1.64094,200), weight = 0.0078125 - neutron, kinetic energy (MeV) = 0.426626, position (cm) = (83.8205,-15.1135,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 2.71203, position (cm) = (99.0865,15.7466,200), weight = 0.03125 - gamma, kinetic energy (MeV) = 2.34327, position (cm) = (84.8582,5.67868,200), weight = 0.0078125 - neutron, kinetic energy (MeV) = 0.117133, position (cm) = (79.5007,-21.928,200), weight = 0.0078125 - gamma, kinetic energy (MeV) = 1.28887, position (cm) = (78.6897,-0.559491,200), weight = 0.0078125 - neutron, kinetic energy (MeV) = 43.99, position (cm) = (100.423,-49.5481,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 44.001, position (cm) = (99.92,-50.6912,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 42.615, position (cm) = (86.9069,-53.7006,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 42.6636, position (cm) = (86.6863,-53.6778,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.218208, position (cm) = (90.3819,-47.6195,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 1.07164, position (cm) = (91.2419,-49.6176,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 2.01416, position (cm) = (91.8757,-51.1057,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 16.9664, position (cm) = (92.3803,-49.5477,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 16.9664, position (cm) = (92.3803,-49.5477,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 2.17919, position (cm) = (112.756,-36.1671,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 65.763, position (cm) = (123.239,-46.2952,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 6.10885, position (cm) = (119.076,-28.5142,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 5.88878, position (cm) = (100.319,-33.7387,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 42.2177, position (cm) = (48.4117,-16.9383,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 42.2177, position (cm) = (48.4117,-16.9383,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 0.0296964, position (cm) = (70.013,-12.4331,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 1.97982, position (cm) = (67.5335,-28.2926,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 43.0958, position (cm) = (56.5062,-17.9379,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 43.174, position (cm) = (56.5104,-17.7416,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 43.174, position (cm) = (56.5104,-17.7416,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 43.174, position (cm) = (56.5104,-17.7416,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 43.174, position (cm) = (56.5104,-17.7416,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.315414, position (cm) = (49.6918,-30.831,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.0728489, position (cm) = (69.1206,-30.3132,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 2.20892e-06, position (cm) = (53.4693,-15.5247,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.143844, position (cm) = (49.7514,-15.437,200), weight = 0.00195312 - e+, kinetic energy (MeV) = 1.72255, position (cm) = (55.804,-56.7899,200), weight = 0.00195312 - e-, kinetic energy (MeV) = 1.7127, position (cm) = (55.6221,-56.9763,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 1.28213, position (cm) = (4.01871,-21.1168,200), weight = 0.0078125 - gamma, kinetic energy (MeV) = 0.0685866, position (cm) = (16.0877,-15.7982,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 0.808689, position (cm) = (14.557,-25.7931,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.0952204, position (cm) = (27.2352,-13.8735,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 1.18123, position (cm) = (27.8591,-18.6977,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.171991, position (cm) = (34.4019,-83.6121,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 0.00685896, position (cm) = (22.485,-85.0118,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 39.07, position (cm) = (43.6452,-68.2267,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.679905, position (cm) = (20.5517,-7.12861,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 4.48658, position (cm) = (45.941,-22.546,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 99.4112, position (cm) = (42.7502,-30.7542,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 99.7268, position (cm) = (42.6258,-30.0944,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.435614, position (cm) = (49.4855,-0.00749047,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.126744, position (cm) = (48.1371,-2.87973,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 0.735261, position (cm) = (54.4661,-11.9255,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 0.0666479, position (cm) = (36.3031,-11.2102,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 0.801537, position (cm) = (48.8101,-3.89767,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 3.00184, position (cm) = (42.3244,-27.7239,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 7.68377, position (cm) = (63.404,-10.3719,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 0.0631345, position (cm) = (38.4703,-53.0548,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 83.8998, position (cm) = (60.0679,4.86264,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 98.8931, position (cm) = (72.6798,9.34242,200), weight = 0.015625 - neutron, kinetic energy (MeV) = 1.12061e-07, position (cm) = (6.53583,-137.877,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.143516, position (cm) = (-51.8336,-108.331,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 3.10179, position (cm) = (-85.2661,-130.765,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 18.2186, position (cm) = (-95.5279,-130.706,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 1.42487, position (cm) = (-62.7793,-94.3835,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 4.07433, position (cm) = (-58.1335,-106.893,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 4.15191, position (cm) = (-8.91909,-59.7684,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.818442, position (cm) = (-36.6624,-75.0787,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.188079, position (cm) = (-68.9558,-114.453,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 6.06592, position (cm) = (-44.9927,-88.8802,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 5.28673e-05, position (cm) = (-34.6282,-78.8133,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.380052, position (cm) = (-10.2205,-51.9987,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 23.0764, position (cm) = (-34.1179,-28.9927,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 23.0764, position (cm) = (-34.1179,-28.9927,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 2.63553, position (cm) = (39.641,-48.9014,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 42.4658, position (cm) = (48.585,-36.4611,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 17.3681, position (cm) = (35.3488,-32.2345,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 17.3681, position (cm) = (35.3488,-32.2345,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 37.4777, position (cm) = (36.9048,-60.6109,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 37.4777, position (cm) = (36.9048,-60.6109,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 98.4803, position (cm) = (61.4593,-14.4588,200), weight = 0.0078125 - neutron, kinetic energy (MeV) = 98.4803, position (cm) = (61.4593,-14.4588,200), weight = 0.0078125 - neutron, kinetic energy (MeV) = 98.8574, position (cm) = (58.0553,-21.0343,200), weight = 0.0078125 - neutron, kinetic energy (MeV) = 97.9845, position (cm) = (60.6959,-19.3634,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 2.02441, position (cm) = (55.811,-24.0235,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 16.4882, position (cm) = (58.4834,-21.166,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 18.6225, position (cm) = (58.5569,-21.665,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 0.173053, position (cm) = (104.48,62.0498,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 0.000567456, position (cm) = (92.7547,77.7443,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 3.18108, position (cm) = (109.983,66.1317,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 1.31816, position (cm) = (111.622,58.6724,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.082604, position (cm) = (61.0311,79.3638,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 3.07749, position (cm) = (9.16088,-30.7042,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 1.03695, position (cm) = (44.9306,-36.1804,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 31.387, position (cm) = (55.2687,-40.1768,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 31.387, position (cm) = (55.2687,-40.1768,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 0.429776, position (cm) = (36.2535,-5.74073,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 33.7087, position (cm) = (35.5119,-27.2947,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 0.000775918, position (cm) = (43.8999,-33.3381,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 35.4821, position (cm) = (22.1167,1.43208,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 0.590669, position (cm) = (7.82585,-27.9937,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 35.03, position (cm) = (23.6984,2.27135,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 35.03, position (cm) = (23.6984,2.27135,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 34.7608, position (cm) = (28.1092,-1.14363,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.78462, position (cm) = (31.3869,-18.9619,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.245274, position (cm) = (22.6619,-17.6423,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 2.22305, position (cm) = (-26.9633,-6.91825,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 3.37979, position (cm) = (-24.7155,-28.0486,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 4.5637, position (cm) = (-15.0618,-42.5429,200), weight = 2.98023e-08 - gamma, kinetic energy (MeV) = 0.29792, position (cm) = (-9.92576,-30.9422,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 1.22093, position (cm) = (-22.3627,-44.3204,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 0.139755, position (cm) = (-30.9044,-3.41854,200), weight = 2.98023e-08 - gamma, kinetic energy (MeV) = 5.80495, position (cm) = (-42.5003,-27.1099,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 2.73382e-05, position (cm) = (-19.9637,-56.5749,200), weight = 7.45058e-09 - gamma, kinetic energy (MeV) = 0.168346, position (cm) = (-55.9705,-47.5747,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 0.257969, position (cm) = (-62.4702,-70.6437,200), weight = 1.19209e-07 - neutron, kinetic energy (MeV) = 9.03708e-05, position (cm) = (-60.542,-38.3136,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 3.00473, position (cm) = (-40.7138,-39.4442,200), weight = 2.98023e-08 - neutron, kinetic energy (MeV) = 26.219, position (cm) = (-32.0838,-33.829,200), weight = 1.19209e-07 - neutron, kinetic energy (MeV) = 2.43412, position (cm) = (-18.5786,-2.15585,200), weight = 1.19209e-07 - neutron, kinetic energy (MeV) = 1.6072, position (cm) = (-19.6895,7.81538,200), weight = 1.19209e-07 - neutron, kinetic energy (MeV) = 7.53912e-06, position (cm) = (-16.7182,-0.686657,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 2.8109, position (cm) = (-19.19,-6.84491,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.105309, position (cm) = (-57.0551,17.5885,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 4.6508e-06, position (cm) = (-62.1369,-28.788,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 1.65516, position (cm) = (54.1821,-97.2731,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 5.53615, position (cm) = (38.3629,-87.1213,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 33.1625, position (cm) = (65.8618,-153.945,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.613597, position (cm) = (79.7437,-127.59,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 1.60913, position (cm) = (71.7802,-129.203,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 2.85718, position (cm) = (49.9685,-162.556,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 0.443464, position (cm) = (52.409,-159.044,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 1.52883, position (cm) = (67.7473,-141.239,200), weight = 1.19209e-07 - neutron, kinetic energy (MeV) = 0.513418, position (cm) = (54.4496,-148.859,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 8.25677, position (cm) = (122.983,-109.145,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 0.530172, position (cm) = (107.647,-140.235,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 1.64117, position (cm) = (113.154,-152.452,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 0.0932928, position (cm) = (136.06,-142.663,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 3.22662, position (cm) = (121.681,-118.858,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 0.609596, position (cm) = (99.4468,-119.466,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 3.69887, position (cm) = (119.641,-115.538,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 2.1837, position (cm) = (125.325,-108.163,200), weight = 2.98023e-08 - gamma, kinetic energy (MeV) = 0.132823, position (cm) = (125.562,-133.797,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 0.27465, position (cm) = (135.107,-124.328,200), weight = 1.49012e-08 - gamma, kinetic energy (MeV) = 0.253516, position (cm) = (134.97,-133.324,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 1.20438, position (cm) = (128.061,-125.835,200), weight = 1.49012e-08 - gamma, kinetic energy (MeV) = 0.501206, position (cm) = (131.885,-144.295,200), weight = 2.98023e-08 - gamma, kinetic energy (MeV) = 0.247586, position (cm) = (140.352,-95.6285,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 5.72173, position (cm) = (75.2215,-150.243,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 22.9485, position (cm) = (74.4727,-150.016,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 0.163367, position (cm) = (79.1146,-159.152,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 1.14627, position (cm) = (86.1639,-152.191,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 31.8525, position (cm) = (74.6787,-159.107,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 32.3258, position (cm) = (75.2927,-155.403,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 10.5179, position (cm) = (64.3935,-141.202,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 10.5179, position (cm) = (64.3935,-141.202,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 10.5179, position (cm) = (64.3935,-141.202,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 31.1056, position (cm) = (40.0636,-121.718,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 31.1056, position (cm) = (40.0636,-121.718,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 30.6536, position (cm) = (41.3036,-119.595,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 30.5987, position (cm) = (46.2478,-122.806,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 0.343012, position (cm) = (40.8763,-115.012,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 38.9356, position (cm) = (93.2225,-65.4837,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.162597, position (cm) = (89.8496,-54.416,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 5.81704, position (cm) = (79.1778,-55.2744,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 38.0242, position (cm) = (94.4295,-66.1626,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 38.6618, position (cm) = (89.6527,-63.9938,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 38.5672, position (cm) = (88.5136,-63.0595,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 0.317834, position (cm) = (60.8691,-42.9519,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 0.829391, position (cm) = (62.2149,-33.1411,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 97.1599, position (cm) = (-22.3071,-5.95117,200), weight = 0.0078125 - gamma, kinetic energy (MeV) = 0.0988457, position (cm) = (-21.1304,-8.31821,200), weight = 0.0078125 - neutron, kinetic energy (MeV) = 0.772354, position (cm) = (-17.3404,-11.8279,200), weight = 0.0078125 - neutron, kinetic energy (MeV) = 67.0026, position (cm) = (-19.4099,-7.72128,200), weight = 0.0078125 - neutron, kinetic energy (MeV) = 1.31637, position (cm) = (-68.1121,47.6973,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.115806, position (cm) = (-77.1124,45.3086,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.16956, position (cm) = (-21.1882,35.6533,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 0.00444714, position (cm) = (-39.9348,47.9514,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 1.90286, position (cm) = (-45.2144,56.1531,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 1.90286, position (cm) = (-45.2144,56.1531,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 8.01625, position (cm) = (-45.5583,59.8524,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 9.05207, position (cm) = (-39.9321,61.6645,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 9.05207, position (cm) = (-39.9321,61.6645,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.337516, position (cm) = (-57.1031,88.8177,200), weight = 0.00390625 - e-, kinetic energy (MeV) = 2.01771, position (cm) = (-65.7674,75.5491,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 36.6428, position (cm) = (-54.5087,-139.364,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 36.6428, position (cm) = (-54.5087,-139.364,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 4.77076e-07, position (cm) = (-68.9407,-132.693,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 38.611, position (cm) = (68.4585,-10.9506,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 1.53771, position (cm) = (67.1972,-11.327,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 6.62658, position (cm) = (68.651,-13.853,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 6.41821, position (cm) = (60.3385,-20.5588,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.596596, position (cm) = (63.844,-0.680783,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 3.16203, position (cm) = (35.8019,14.3191,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 4.80909, position (cm) = (41.9451,-5.69287,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.22096, position (cm) = (38.8268,13.3101,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 1.33548, position (cm) = (36.6908,10.3851,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 3.96507, position (cm) = (38.7782,4.46087,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 0.00544074, position (cm) = (40.4605,24.2941,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 4.0858, position (cm) = (45.5307,19.0189,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.245696, position (cm) = (69.3497,3.10402,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.409119, position (cm) = (72.2578,2.78371,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 19.7571, position (cm) = (67.6644,5.33141,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 5.41542, position (cm) = (57.7082,-4.31303,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.339224, position (cm) = (51.4762,-44.0594,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.523347, position (cm) = (49.4268,-45.319,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 26.6942, position (cm) = (38.425,-51.2426,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 9.42602, position (cm) = (49.6342,-43.1285,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.0557418, position (cm) = (30.3057,-63.8167,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 0.0725494, position (cm) = (18.1081,-41.7127,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 2.6201, position (cm) = (63.8601,-10.3792,200), weight = 0.125 - neutron, kinetic energy (MeV) = 2.20698, position (cm) = (63.222,-41.0803,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 2.47495, position (cm) = (55.929,-59.6672,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 0.000928784, position (cm) = (56.5828,-35.9553,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 1.56326, position (cm) = (0.516397,-4.99213,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 0.357145, position (cm) = (34.9518,-12.8947,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 5.67003, position (cm) = (23.2539,-17.7615,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.0854843, position (cm) = (1.95875,-22.2973,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.138362, position (cm) = (8.41044,-28.5077,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 9.22747, position (cm) = (10.582,-27.067,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.186322, position (cm) = (-5.28506,-4.0074,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 14.5953, position (cm) = (-4.6236,-29.9259,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 14.628, position (cm) = (-4.94024,-30.9376,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.232732, position (cm) = (-5.02376,-25.3018,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.845743, position (cm) = (-10.7744,-27.8393,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 10.5627, position (cm) = (7.67547,-8.78722,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 0.00464789, position (cm) = (-4.86135,-10.4883,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 6.62518, position (cm) = (1.30492,-15.9631,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 40.7491, position (cm) = (18.5208,-29.5339,200), weight = 0.0078125 - neutron, kinetic energy (MeV) = 39.5051, position (cm) = (11.9248,-25.2203,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 0.0909852, position (cm) = (8.24374,-38.2756,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.138405, position (cm) = (6.46874,-36.5885,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.43529, position (cm) = (17.6234,-45.9886,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 8.32358, position (cm) = (8.65742,-38.5606,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 8.32358, position (cm) = (8.65742,-38.5606,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 8.32358, position (cm) = (8.65742,-38.5606,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 2.34009, position (cm) = (36.5149,-6.27806,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 2.35265, position (cm) = (34.243,-8.85811,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 4.97172e-05, position (cm) = (26.6196,-20.7401,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 10.2793, position (cm) = (22.9431,-37.8827,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 0.0575151, position (cm) = (36.7875,-53.5048,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 0.365018, position (cm) = (34.1418,-59.8257,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 8.62603, position (cm) = (13.9869,-22.3559,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 4.31496, position (cm) = (12.0356,-27.7079,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.563445, position (cm) = (5.06589,-50.9737,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.384032, position (cm) = (-5.52662,-37.3623,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 5.42082, position (cm) = (14.8365,-30.4332,200), weight = 0.0078125 - gamma, kinetic energy (MeV) = 2.4255, position (cm) = (-29.8924,-122.782,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.162701, position (cm) = (97.4227,-17.3171,200), weight = 0.0078125 - neutron, kinetic energy (MeV) = 1.45936, position (cm) = (110.081,41.1259,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 1.6627, position (cm) = (72.6654,26.4558,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 0.722981, position (cm) = (41.594,35.9005,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 2.24891, position (cm) = (31.0669,26.9521,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 1.78765e-05, position (cm) = (84.0714,22.2497,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 0.33899, position (cm) = (69.0499,-47.0994,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.218386, position (cm) = (53.4338,-21.541,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 5.15021, position (cm) = (83.3207,26.4813,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 2.85333, position (cm) = (74.5346,38.3709,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 2.85333, position (cm) = (74.5346,38.3709,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 25.6693, position (cm) = (85.4318,24.4777,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 3.41742, position (cm) = (126.225,52.9657,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 33.528, position (cm) = (88.2288,23.1124,200), weight = 0.015625 - neutron, kinetic energy (MeV) = 32.9846, position (cm) = (60.3781,33.9892,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 63.5634, position (cm) = (67.8799,10.9278,200), weight = 0.015625 - neutron, kinetic energy (MeV) = 35.3083, position (cm) = (83.5339,22.648,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 35.0706, position (cm) = (82.6744,17.0558,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 35.0706, position (cm) = (82.6744,17.0558,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 34.5801, position (cm) = (78.2128,18.8999,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 35.2463, position (cm) = (80.1483,22.1904,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 35.1209, position (cm) = (80.7365,22.1079,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.168574, position (cm) = (-10.4087,-36.8081,200), weight = 0.0078125 - gamma, kinetic energy (MeV) = 0.295248, position (cm) = (-10.1856,-28.1577,200), weight = 0.0078125 - gamma, kinetic energy (MeV) = 2.57772, position (cm) = (-5.09333,5.68278,200), weight = 0.0078125 - gamma, kinetic energy (MeV) = 0.132508, position (cm) = (-27.2546,-28.7576,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 14.7847, position (cm) = (-26.2682,-36.2423,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 15.8524, position (cm) = (-26.0904,-39.8287,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.159025, position (cm) = (-20.6472,-37.9741,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.3731, position (cm) = (-43.7105,9.43574,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 99.492, position (cm) = (42.6685,29.3089,200), weight = 0.03125 - neutron, kinetic energy (MeV) = 99.5079, position (cm) = (42.4044,29.4908,200), weight = 0.03125 - gamma, kinetic energy (MeV) = 5.66998, position (cm) = (54.3697,7.17936,200), weight = 0.0625 - neutron, kinetic energy (MeV) = 57.2374, position (cm) = (26.4616,-22.7383,200), weight = 0.0625 - gamma, kinetic energy (MeV) = 0.594255, position (cm) = (15.0787,-8.20452,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 6.39784e-06, position (cm) = (21.4331,-17.2134,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.542833, position (cm) = (43.2364,-25.9024,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 17.16, position (cm) = (39.31,-42.817,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.202562, position (cm) = (34.4103,-30.1328,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 2.53195, position (cm) = (33.8989,-31.599,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 4.96795, position (cm) = (1.99583,6.1647,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 0.11587, position (cm) = (2.74202,5.52582,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 0.933462, position (cm) = (3.35887,4.71331,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 0.00010789, position (cm) = (39.0632,-36.0724,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.711817, position (cm) = (14.5097,-32.4447,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 7.31005, position (cm) = (23.0897,-33.074,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 18.7388, position (cm) = (42.9917,-36.3313,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.102628, position (cm) = (53.2972,-41.3256,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 18.7388, position (cm) = (42.9917,-36.3313,200), weight = 1.19209e-07 - neutron, kinetic energy (MeV) = 18.7388, position (cm) = (42.9917,-36.3313,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 18.7388, position (cm) = (42.9917,-36.3313,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 18.7388, position (cm) = (42.9917,-36.3313,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 0.0984878, position (cm) = (28.4189,-41.3749,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 18.3098, position (cm) = (27.5636,-24.7455,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 0.00154728, position (cm) = (37.6974,-12.1075,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 0.306664, position (cm) = (40.7601,-8.20731,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.181212, position (cm) = (45.0817,-2.41635,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 1.67675, position (cm) = (9.51376,-25.0582,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 5.93449, position (cm) = (43.0733,-44.7454,200), weight = 3.05176e-05 - gamma, kinetic energy (MeV) = 3.52546, position (cm) = (52.8121,-39.3704,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 0.101087, position (cm) = (52.9669,-34.4551,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.331885, position (cm) = (59.1982,-55.467,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 4.03156e-07, position (cm) = (50.3895,-32.3103,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.329175, position (cm) = (41.8551,-5.00139,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.142406, position (cm) = (20.7185,-14.1868,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 2.01865, position (cm) = (25.0143,0.31836,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 3.53058e-05, position (cm) = (42.9752,-44.532,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 1.76478, position (cm) = (24.5001,-5.66162,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.0876293, position (cm) = (-0.710942,42.4689,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 5.40594, position (cm) = (-11.2086,30.5925,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 1.74147, position (cm) = (19.4404,38.4578,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 6.32945, position (cm) = (8.44527,32.986,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 40.0714, position (cm) = (23.9449,59.6995,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 40.9446, position (cm) = (27.7415,58.0712,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 2.44502, position (cm) = (43.2188,56.7278,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 3.78148, position (cm) = (21.1827,71.703,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 40.9127, position (cm) = (17.9348,51.2111,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 40.2673, position (cm) = (21.7371,49.075,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 39.0985, position (cm) = (16.0447,43.6812,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 2.81469, position (cm) = (1.13726,21.8652,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 34.2517, position (cm) = (-5.62785,54.8235,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 0.618393, position (cm) = (17.7368,29.4224,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.119064, position (cm) = (14.8719,26.8014,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 35.5016, position (cm) = (17.8493,34.0909,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 41.3401, position (cm) = (18.5865,40.6091,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.114986, position (cm) = (9.51302,46.1526,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 4.36248, position (cm) = (12.7158,47.4827,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 1.24725e-08, position (cm) = (15.9496,22.3277,200), weight = 0.0078125 - gamma, kinetic energy (MeV) = 5.90505, position (cm) = (143.551,-194.979,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 2.47605, position (cm) = (151.888,-142.838,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 0.468048, position (cm) = (196.587,-252.346,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 10.2585, position (cm) = (194.278,-244.128,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 21.6181, position (cm) = (198.752,-251.623,200), weight = 7.45058e-09 - gamma, kinetic energy (MeV) = 1.06861, position (cm) = (198.943,-251.498,200), weight = 7.45058e-09 - gamma, kinetic energy (MeV) = 1.75858, position (cm) = (199.793,-251.628,200), weight = 7.45058e-09 - e+, kinetic energy (MeV) = 4.91206, position (cm) = (198.647,-251.028,200), weight = 7.45058e-09 - neutron, kinetic energy (MeV) = 8.74527, position (cm) = (198.67,-249.822,200), weight = 7.45058e-09 - neutron, kinetic energy (MeV) = 21.6181, position (cm) = (198.752,-251.623,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 19.1701, position (cm) = (201.325,-241.718,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 21.4958, position (cm) = (199.203,-251.052,200), weight = 7.45058e-09 - neutron, kinetic energy (MeV) = 21.4958, position (cm) = (199.203,-251.052,200), weight = 7.45058e-09 - gamma, kinetic energy (MeV) = 0.210955, position (cm) = (165.675,-248.038,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 8.91037e-08, position (cm) = (248.223,-240.403,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.14861, position (cm) = (234.846,-225.816,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 0.00167718, position (cm) = (204.728,-226.329,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 0.097195, position (cm) = (162.229,-261.3,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 0.042101, position (cm) = (162.486,-259.29,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 1.64912, position (cm) = (162.771,-259.603,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 3.02854, position (cm) = (162.031,-258.999,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 1.54128, position (cm) = (104.832,-183.063,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 48.0646, position (cm) = (74.7524,-130.861,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 1.45301e-06, position (cm) = (50.4861,27.9157,200), weight = 0.0625 - neutron, kinetic energy (MeV) = 3.54072e-06, position (cm) = (44.4162,11.5151,200), weight = 0.03125 - neutron, kinetic energy (MeV) = 2.25937e-06, position (cm) = (57.8642,35.7133,200), weight = 0.03125 - gamma, kinetic energy (MeV) = 6.95016, position (cm) = (23.5144,21.4902,200), weight = 0.03125 - neutron, kinetic energy (MeV) = 99.7145, position (cm) = (10.8397,12.742,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 99.7145, position (cm) = (10.8397,12.742,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 99.7145, position (cm) = (10.8397,12.742,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 99.7145, position (cm) = (10.8397,12.742,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 99.7145, position (cm) = (10.8397,12.742,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 99.7145, position (cm) = (10.8397,12.742,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 31.2494, position (cm) = (10.1879,20.5912,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 31.2494, position (cm) = (10.1879,20.5912,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 1.57844, position (cm) = (29.3006,3.51151,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 7.75544e-06, position (cm) = (29.0182,-22.5656,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 4.5426, position (cm) = (38.0268,-10.6647,200), weight = 0.000488281 - gamma, kinetic energy (MeV) = 0.609232, position (cm) = (19.2734,-15.8299,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.323748, position (cm) = (16.1867,-2.95159,200), weight = 0.000976562 - neutron, kinetic energy (MeV) = 28.3084, position (cm) = (12.1791,6.43947,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 3.35467, position (cm) = (-4.31632,-30.7831,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 98.5916, position (cm) = (7.91674,-17.7492,200), weight = 0.00195312 - neutron, kinetic energy (MeV) = 99.4521, position (cm) = (2.02312,-8.33312,200), weight = 0.00195312 - gamma, kinetic energy (MeV) = 0.270032, position (cm) = (7.12793,0.576027,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 3.0227, position (cm) = (9.65948,-8.69256,200), weight = 0.00390625 - neutron, kinetic energy (MeV) = 21.6302, position (cm) = (10.6401,-11.0785,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 0.546779, position (cm) = (3.40275,-8.75134,200), weight = 0.00390625 - gamma, kinetic energy (MeV) = 0.0773649, position (cm) = (-23.1687,49.3723,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 73.1131, position (cm) = (-29.6326,29.5971,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 72.1586, position (cm) = (-29.6359,29.4392,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 2.11806, position (cm) = (15.4431,68.7294,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 4.48056, position (cm) = (43.6818,31.973,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 8.47263e-07, position (cm) = (57.4953,32.0112,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 2.54894e-05, position (cm) = (44.7898,36.1207,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.150008, position (cm) = (56.9689,34.579,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 3.17815, position (cm) = (52.5806,48.9407,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.0710014, position (cm) = (62.5147,47.1939,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.06301, position (cm) = (67.0272,40.0428,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.0946968, position (cm) = (36.9682,17.1742,200), weight = 1.52588e-05 - neutron, kinetic energy (MeV) = 0.00032242, position (cm) = (36.1208,37.2276,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 0.0541984, position (cm) = (4.7596,34.7181,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.510999, position (cm) = (-8.80084,75.3276,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 2.92767, position (cm) = (-18.2541,104.983,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 1.25243, position (cm) = (-15.464,105.156,200), weight = 1.52588e-05 - gamma, kinetic energy (MeV) = 2.63, position (cm) = (-10.653,107.328,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 2.44685, position (cm) = (-2.06556,110.108,200), weight = 3.05176e-05 - neutron, kinetic energy (MeV) = 16.2536, position (cm) = (-2.55398,56.8024,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.241145, position (cm) = (-9.46963,70.5395,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.342103, position (cm) = (-0.147989,66.4208,200), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.11983, position (cm) = (-3.35274,69.2266,200), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 10.8094, position (cm) = (5.86517,55.1332,200), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 2.54451, position (cm) = (21.5684,49.9311,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 11.3935, position (cm) = (2.61816,70.9214,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 1.55441, position (cm) = (-0.982566,42.7885,200), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 3.05841, position (cm) = (-6.37113,60.9834,200), weight = 7.62939e-06 - gamma, kinetic energy (MeV) = 0.155008, position (cm) = (19.5478,68.5792,200), weight = 7.62939e-06 - neutron, kinetic energy (MeV) = 42.6869, position (cm) = (51.0289,101.99,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.0888792, position (cm) = (85.1841,152.609,200), weight = 1.49012e-08 - gamma, kinetic energy (MeV) = 0.364251, position (cm) = (58.5198,117.565,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 2.48128e-07, position (cm) = (71.5938,157.607,200), weight = 2.98023e-08 - neutron, kinetic energy (MeV) = 2.97606, position (cm) = (71.3497,164.34,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 1.47772, position (cm) = (53.1436,157.461,200), weight = 3.72529e-09 - neutron, kinetic energy (MeV) = 5.0244, position (cm) = (55.5766,155.067,200), weight = 3.72529e-09 - neutron, kinetic energy (MeV) = 25.8085, position (cm) = (62.8431,149.224,200), weight = 7.45058e-09 - neutron, kinetic energy (MeV) = 2.13394, position (cm) = (22.1875,166.543,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 6.76455, position (cm) = (29.0542,180.003,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 2.31884, position (cm) = (71.4728,135.829,200), weight = 1.19209e-07 - neutron, kinetic energy (MeV) = 2.8231, position (cm) = (45.9422,80.8249,200), weight = 2.38419e-07 - neutron, kinetic energy (MeV) = 6.45575, position (cm) = (54.1576,70.6654,200), weight = 1.19209e-07 - neutron, kinetic energy (MeV) = 0.814927, position (cm) = (64.358,81.3145,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 0.347789, position (cm) = (64.038,51.1855,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 43.8017, position (cm) = (50.4101,100.03,200), weight = 9.53674e-07 - neutron, kinetic energy (MeV) = 0.00309603, position (cm) = (58.3821,108.553,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 0.398814, position (cm) = (41.0421,101.156,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 1.16898, position (cm) = (45.6253,97.2806,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 0.127304, position (cm) = (51.5918,96.9721,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 3.09491, position (cm) = (51.5065,108.899,200), weight = 5.96046e-08 - gamma, kinetic energy (MeV) = 0.207873, position (cm) = (51.4963,107.548,200), weight = 2.98023e-08 - gamma, kinetic energy (MeV) = 0.281299, position (cm) = (55.0296,94.0775,200), weight = 2.98023e-08 - neutron, kinetic energy (MeV) = 0.751796, position (cm) = (56.1545,108.124,200), weight = 2.98023e-08 - gamma, kinetic energy (MeV) = 0.0738226, position (cm) = (56.4016,98.3488,200), weight = 1.49012e-08 - gamma, kinetic energy (MeV) = 2.8094, position (cm) = (65.4288,98.5386,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 5.52526e-05, position (cm) = (72.2942,85.3035,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 33.9078, position (cm) = (50.0288,113.838,200), weight = 7.45058e-09 - neutron, kinetic energy (MeV) = 43.5988, position (cm) = (45.7583,109.992,200), weight = 3.72529e-09 - neutron, kinetic energy (MeV) = 43.5988, position (cm) = (45.7583,109.992,200), weight = 3.72529e-09 - neutron, kinetic energy (MeV) = 42.964, position (cm) = (41.9937,114.198,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 1.66513, position (cm) = (30.8749,122.965,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 5.65648, position (cm) = (39.4868,93.585,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 5.54049, position (cm) = (39.8788,93.1525,200), weight = 1.49012e-08 - gamma, kinetic energy (MeV) = 0.476218, position (cm) = (27.4789,92.0165,200), weight = 2.98023e-08 - neutron, kinetic energy (MeV) = 0.135751, position (cm) = (37.3523,102.179,200), weight = 1.49012e-08 - gamma, kinetic energy (MeV) = 0.955252, position (cm) = (42.2769,108.221,200), weight = 1.49012e-08 - neutron, kinetic energy (MeV) = 43.0222, position (cm) = (47.591,111.858,200), weight = 1.49012e-08 - gamma, kinetic energy (MeV) = 0.987869, position (cm) = (26.1963,138.026,200), weight = 7.45058e-09 - gamma, kinetic energy (MeV) = 5.72155, position (cm) = (11.6686,141.698,200), weight = 9.31323e-10 - neutron, kinetic energy (MeV) = 3.48582, position (cm) = (13.4562,141.273,200), weight = 9.31323e-10 - neutron, kinetic energy (MeV) = 24.0288, position (cm) = (9.87003,136.441,200), weight = 9.31323e-10 - gamma, kinetic energy (MeV) = 0.100269, position (cm) = (2.50125,140.055,200), weight = 9.31323e-10 - gamma, kinetic energy (MeV) = 0.137663, position (cm) = (9.06543,142.077,200), weight = 1.86265e-09 - neutron, kinetic energy (MeV) = 4.7016, position (cm) = (13.8387,140.256,200), weight = 9.31323e-10 - neutron, kinetic energy (MeV) = 0.00613894, position (cm) = (0.205168,76.2436,200), weight = 9.31323e-10 - gamma, kinetic energy (MeV) = 2.86578, position (cm) = (9.46301,130.92,200), weight = 1.86265e-09 - neutron, kinetic energy (MeV) = 18.9672, position (cm) = (9.71729,146.964,200), weight = 3.72529e-09 - gamma, kinetic energy (MeV) = 10.6756, position (cm) = (19.7029,160.147,200), weight = 3.72529e-09 - gamma, kinetic energy (MeV) = 0.776777, position (cm) = (26.934,149.11,200), weight = 3.72529e-09 - gamma, kinetic energy (MeV) = 0.190899, position (cm) = (15.2518,150.241,200), weight = 3.72529e-09 - gamma, kinetic energy (MeV) = 0.201944, position (cm) = (-1.729,158.538,200), weight = 3.72529e-09 - neutron, kinetic energy (MeV) = 1.32681, position (cm) = (14.4615,150.927,200), weight = 3.72529e-09 - gamma, kinetic energy (MeV) = 0.354696, position (cm) = (2.95395,138.895,200), weight = 7.45058e-09 - gamma, kinetic energy (MeV) = 0.661633, position (cm) = (29.8423,153.471,200), weight = 1.86265e-09 - neutron, kinetic energy (MeV) = 23.1154, position (cm) = (14.2893,145.211,200), weight = 9.31323e-10 - gamma, kinetic energy (MeV) = 0.164013, position (cm) = (16.7943,144.367,200), weight = 4.65661e-10 - gamma, kinetic energy (MeV) = 0.128048, position (cm) = (29.3573,142.107,200), weight = 4.65661e-10 - neutron, kinetic energy (MeV) = 2.63181, position (cm) = (8.23062,143.389,200), weight = 4.65661e-10 - gamma, kinetic energy (MeV) = 3.65729, position (cm) = (15.8735,144.674,200), weight = 4.65661e-10 - neutron, kinetic energy (MeV) = 22.893, position (cm) = (15.8936,144.841,200), weight = 4.65661e-10 - gamma, kinetic energy (MeV) = 0.203879, position (cm) = (29.2127,130.156,200), weight = 9.31323e-10 - neutron, kinetic energy (MeV) = 2.88292, position (cm) = (15.1651,138.368,200), weight = 9.31323e-10 - neutron, kinetic energy (MeV) = 8.79156e-05, position (cm) = (19.1197,133.201,200), weight = 1.86265e-09 - gamma, kinetic energy (MeV) = 0.333958, position (cm) = (19.2397,150.268,200), weight = 4.65661e-10 - gamma, kinetic energy (MeV) = 2.8403, position (cm) = (20.7856,153.241,200), weight = 4.65661e-10 - neutron, kinetic energy (MeV) = 0.555622, position (cm) = (13.4476,152.249,200), weight = 4.65661e-10 - gamma, kinetic energy (MeV) = 0.0726366, position (cm) = (-3.83826,153.058,200), weight = 4.65661e-10 - neutron, kinetic energy (MeV) = 23.7605, position (cm) = (20.2277,161.422,200), weight = 9.31323e-10 - gamma, kinetic energy (MeV) = 0.474475, position (cm) = (5.05801,163.983,200), weight = 1.86265e-09 - gamma, kinetic energy (MeV) = 0.560647, position (cm) = (10.0002,166.499,200), weight = 1.86265e-09 - gamma, kinetic energy (MeV) = 2.03537, position (cm) = (14.6918,169.486,200), weight = 1.86265e-09 - gamma, kinetic energy (MeV) = 0.235522, position (cm) = (17.9184,147.759,200), weight = 3.72529e-09 - gamma, kinetic energy (MeV) = 0.134456, position (cm) = (26.5088,50.586,200), weight = 4.76837e-07 - gamma, kinetic energy (MeV) = 0.768394, position (cm) = (56.8359,57.9996,200), weight = 2.38419e-07 - gamma, kinetic energy (MeV) = 0.188494, position (cm) = (0.311003,50.6488,200), weight = 1.19209e-07 - gamma, kinetic energy (MeV) = 0.156086, position (cm) = (0.68632,55.6698,200), weight = 1.19209e-07 - neutron, kinetic energy (MeV) = 5.30605e-05, position (cm) = (15.8738,73.7565,200), weight = 1.19209e-07 - neutron, kinetic energy (MeV) = 2.89084, position (cm) = (-3.43976,47.6894,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 2.89084, position (cm) = (-3.43976,47.6894,200), weight = 5.96046e-08 - neutron, kinetic energy (MeV) = 4.12582, position (cm) = (5.57843,52.0871,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 0.076291, position (cm) = (56.1464,103.014,200), weight = 9.53674e-07 - gamma, kinetic energy (MeV) = 3.12049, position (cm) = (19.2415,52.0347,200), weight = 4.76837e-07 - neutron, kinetic energy (MeV) = 6.92895e-07, position (cm) = (-35.3866,52.2529,200), weight = 6.10352e-05 - gamma, kinetic energy (MeV) = 0.126151, position (cm) = (-78.0057,53.0188,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.0952463, position (cm) = (-78.4598,84.8209,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 69.7333, position (cm) = (-85.9058,89.3171,200), weight = 6.10352e-05 - neutron, kinetic energy (MeV) = 68.3353, position (cm) = (-46.1131,74.1069,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 1.81678, position (cm) = (3.57644,34.3848,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 49.9176, position (cm) = (-13.2342,54.9457,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 34.133, position (cm) = (-31.0359,104.481,200), weight = 0.000244141 - neutron, kinetic energy (MeV) = 34.133, position (cm) = (-31.0359,104.481,200), weight = 0.000244141 - gamma, kinetic energy (MeV) = 3.56763, position (cm) = (-13.4376,52.4079,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.311107, position (cm) = (-5.1175,39.7438,200), weight = 0.000976562 - gamma, kinetic energy (MeV) = 0.306107, position (cm) = (-35.2664,47.2655,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 4.87951, position (cm) = (-4.44953,64.0618,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.574378, position (cm) = (-14.8377,50.0293,200), weight = 0.00012207 - neutron, kinetic energy (MeV) = 36.0309, position (cm) = (-17.4496,64.9989,200), weight = 0.00012207 - gamma, kinetic energy (MeV) = 0.211267, position (cm) = (-9.1022,47.4802,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 4.19944, position (cm) = (-1.72191,39.4506,200), weight = 0.000488281 - neutron, kinetic energy (MeV) = 18.0704, position (cm) = (-9.02481,49.5827,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 5.38108, position (cm) = (-94.3206,49.642,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 3.53495, position (cm) = (-128.042,51.594,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 5.59702, position (cm) = (-100.118,125.41,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.176601, position (cm) = (-99.0989,87.5723,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 44.6335, position (cm) = (-130.579,81.9776,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 44.8746, position (cm) = (-129.631,81.7306,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 44.8746, position (cm) = (-129.631,81.7306,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 98.0573, position (cm) = (-80.1747,92.6703,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 4.35484, position (cm) = (-81.8058,91.9268,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 6.92983, position (cm) = (-80.9982,89.0008,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 22.3824, position (cm) = (-80.6009,90.1108,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 0.771263, position (cm) = (-77.141,81.4327,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 2.4179, position (cm) = (-87.1297,78.689,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 1.88057, position (cm) = (-84.6944,86.9951,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 4.02041, position (cm) = (-79.1303,95.6976,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 97.6135, position (cm) = (-71.9716,79.1867,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 97.6773, position (cm) = (-71.9912,79.1083,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 67.3433, position (cm) = (-72.6364,81.3583,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 44.6638, position (cm) = (-68.8483,76.6158,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 97.6773, position (cm) = (-71.9912,79.1083,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 97.0494, position (cm) = (-70.273,81.7345,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 97.359, position (cm) = (-71.3061,80.7564,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.518967, position (cm) = (-64.7318,66.9336,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 87.6065, position (cm) = (-66.5258,78.9045,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 1.81809, position (cm) = (75.4275,27.5159,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.955373, position (cm) = (125.217,55.4562,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 2.04459, position (cm) = (130.148,66.0785,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 0.034731, position (cm) = (127.399,49.3033,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.315007, position (cm) = (101.637,50.3936,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.0864716, position (cm) = (106.241,69.0204,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.201697, position (cm) = (113.119,86.4377,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 57.9575, position (cm) = (147.685,60.0893,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.3107, position (cm) = (188.886,54.2157,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.238238, position (cm) = (205.779,61.9613,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 2.02252, position (cm) = (203.077,60.9105,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 4.17299, position (cm) = (203.843,63.1387,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 2.98611, position (cm) = (177.962,56.7207,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 31.4415, position (cm) = (199.456,54.4494,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 31.4415, position (cm) = (199.456,54.4494,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 31.6665, position (cm) = (190.595,52.9398,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.925858, position (cm) = (208.894,67.7408,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 1.22137, position (cm) = (203.811,68.9704,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 0.00226575, position (cm) = (196.407,71.1583,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.157375, position (cm) = (243.612,100.958,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.353323, position (cm) = (226.539,78.2953,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 1.57167, position (cm) = (215.646,66.3748,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.273061, position (cm) = (215.42,74.4671,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 1.40449e-07, position (cm) = (212.381,73.7735,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 5.51197, position (cm) = (57.3856,200.326,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 5.51197, position (cm) = (57.3856,200.326,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 1.14431, position (cm) = (80.7466,181.373,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 7.77603, position (cm) = (57.2163,247.659,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 9.03184, position (cm) = (58.5164,249.545,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 2.91753e-05, position (cm) = (55.6692,244.269,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 2.85206, position (cm) = (47.0013,230.585,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.0143548, position (cm) = (-1.17186,196.42,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.065168, position (cm) = (234.965,73.5763,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 0.736349, position (cm) = (137.598,147.13,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.0656632, position (cm) = (152.608,107.25,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 1.49998, position (cm) = (169.184,121.076,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 17.6889, position (cm) = (154.155,116.362,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 3.9262, position (cm) = (164.947,145.039,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 3.08692, position (cm) = (111.15,214.409,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 3.02804, position (cm) = (153.984,162.553,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 26.0085, position (cm) = (142.144,175.845,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.160572, position (cm) = (129.914,168.63,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 8.53118, position (cm) = (132.906,165.455,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 1.92049, position (cm) = (118.535,176.41,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 7.62216, position (cm) = (141.625,167.643,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 7.62216, position (cm) = (141.625,167.643,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 26.4188, position (cm) = (130.569,171.873,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.0838121, position (cm) = (90.1705,34.9056,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 83.6857, position (cm) = (60.8616,24.0898,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 0.328822, position (cm) = (62.7387,19.4451,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 29.8179, position (cm) = (59.9668,24.3688,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 3.31083e-08, position (cm) = (41.3835,32.3492,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.397072, position (cm) = (33.3018,-1.07055,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 0.344462, position (cm) = (37.3636,2.48901,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 3.36587, position (cm) = (29.1582,-1.88415,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 8.36029, position (cm) = (23.5438,-6.62156,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 0.000286481, position (cm) = (27.7726,9.96966,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.307977, position (cm) = (25.2567,-9.25406,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 83.6857, position (cm) = (60.8616,24.0898,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.392088, position (cm) = (58.7686,-21.6337,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.0763162, position (cm) = (63.7757,-32.9068,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 0.665658, position (cm) = (72.5787,-31.1585,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 0.000300235, position (cm) = (23.0787,9.43684,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 1.9749e-07, position (cm) = (0.575289,-13.221,200), weight = 7.45058e-09 + neutron, kinetic energy (MeV) = 2.16003, position (cm) = (14.6482,-38.8232,200), weight = 3.72529e-09 + neutron, kinetic energy (MeV) = 0.131444, position (cm) = (19.8689,-26.7971,200), weight = 1.86265e-09 + gamma, kinetic energy (MeV) = 0.0841474, position (cm) = (32.2336,-48.8628,200), weight = 1.86265e-09 + gamma, kinetic energy (MeV) = 0.45812, position (cm) = (43.1967,-49.0092,200), weight = 1.86265e-09 + neutron, kinetic energy (MeV) = 0.00731242, position (cm) = (44.4415,-61.0074,200), weight = 1.86265e-09 + neutron, kinetic energy (MeV) = 4.06143e-07, position (cm) = (45.4449,-72.3345,200), weight = 1.86265e-09 + gamma, kinetic energy (MeV) = 0.138983, position (cm) = (29.5181,-66.898,200), weight = 1.86265e-09 + gamma, kinetic energy (MeV) = 0.143379, position (cm) = (-18.5238,-24.2914,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 19.9933, position (cm) = (-25.3652,29.6356,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 0.381315, position (cm) = (-29.4771,28.9371,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 5.33687, position (cm) = (-29.7348,27.8764,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 19.8562, position (cm) = (-29.5055,27.803,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 20.0018, position (cm) = (-26.9389,28.9778,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 20.0018, position (cm) = (-26.9389,28.9778,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 1.14803, position (cm) = (-1.48002,27.0829,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.196183, position (cm) = (8.43491,49.6501,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 5.10683, position (cm) = (-5.18379,60.1209,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 0.844556, position (cm) = (-7.28483,79.5613,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 2.93955, position (cm) = (116.624,38.1717,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 4.15404, position (cm) = (98.3285,43.6165,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.514697, position (cm) = (114.725,72.4993,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 9.64802e-07, position (cm) = (-10.8439,24.4557,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.801197, position (cm) = (-22.1056,-12.8837,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 33.5588, position (cm) = (-84.2314,-11.6978,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 33.4507, position (cm) = (-84.8789,-11.7507,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 33.5588, position (cm) = (-84.2314,-11.6978,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 33.5588, position (cm) = (-84.2314,-11.6978,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 33.5588, position (cm) = (-84.2314,-11.6978,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.280624, position (cm) = (-62.3025,-31.9476,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.213194, position (cm) = (-68.1875,-5.90588,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 0.812301, position (cm) = (-70.0671,-3.70319,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 2.29679, position (cm) = (-69.0775,-6.41382,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 32.9893, position (cm) = (-68.2349,-7.61218,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 3.53324e-06, position (cm) = (-72.1861,-4.93775,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 34.3807, position (cm) = (-68.6436,-8.88029,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 34.3807, position (cm) = (-68.6436,-8.88029,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 34.3807, position (cm) = (-68.6436,-8.88029,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 33.9492, position (cm) = (-68.8878,-9.45394,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 33.4443, position (cm) = (-77.3905,-13.0946,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 33.4443, position (cm) = (-77.3905,-13.0946,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 34.3807, position (cm) = (-68.6436,-8.88029,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 34.3807, position (cm) = (-68.6436,-8.88029,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 34.0937, position (cm) = (-77.5199,-3.00127,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 34.6471, position (cm) = (-73.933,3.70528,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 34.6471, position (cm) = (-73.933,3.70528,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 34.6471, position (cm) = (-73.933,3.70528,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 0.697659, position (cm) = (-84.5814,0.38147,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 34.464, position (cm) = (-82.0526,-4.47255,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.0567295, position (cm) = (-66.0483,11.5804,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 0.271303, position (cm) = (-68.7579,14.6684,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 4.53742, position (cm) = (-68.2032,15.6178,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 31.4884, position (cm) = (-68.3213,15.5682,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 15.2965, position (cm) = (-68.9398,12.9664,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 34.1649, position (cm) = (-69.1352,9.87603,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.154932, position (cm) = (-65.8552,10.4962,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 5.36359, position (cm) = (-68.5343,10.2396,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 8.41106, position (cm) = (-67.936,8.38045,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 9.78776e-07, position (cm) = (-37.5989,16.9605,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.0721467, position (cm) = (-20.0106,40.5555,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 4.51212e-07, position (cm) = (-45.2187,36.1477,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 0.0178662, position (cm) = (-67.9472,25.3895,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 17.0726, position (cm) = (35.4835,-21.199,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 16.9839, position (cm) = (41.1413,-29.3858,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 17.0133, position (cm) = (40.1442,-29.0738,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.35264, position (cm) = (45.2498,-25.8548,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.0989678, position (cm) = (43.4937,-18.9617,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 2.5332, position (cm) = (49.2305,-19.3883,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 16.4764, position (cm) = (37.8056,-26.303,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 0.325853, position (cm) = (-3.06904,12.8723,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.105259, position (cm) = (-61.1875,-60.9183,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 1.92239e-05, position (cm) = (-116.384,89.7614,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 0.106219, position (cm) = (-117.732,103.799,200), weight = 2.98023e-08 + neutron, kinetic energy (MeV) = 4.94047, position (cm) = (-114.172,101.719,200), weight = 2.98023e-08 + gamma, kinetic energy (MeV) = 0.989472, position (cm) = (-123.595,93.3688,200), weight = 2.98023e-08 + gamma, kinetic energy (MeV) = 2.1933, position (cm) = (-108.82,62.8751,200), weight = 9.31323e-10 + neutron, kinetic energy (MeV) = 4.63084, position (cm) = (-91.6727,70.3102,200), weight = 9.31323e-10 + neutron, kinetic energy (MeV) = 0.0568504, position (cm) = (-107.979,79.4457,200), weight = 1.86265e-09 + gamma, kinetic energy (MeV) = 0.0971699, position (cm) = (-59.8724,107.222,200), weight = 1.86265e-09 + neutron, kinetic energy (MeV) = 0.302464, position (cm) = (-102.789,85.2218,200), weight = 7.45058e-09 + gamma, kinetic energy (MeV) = 0.50979, position (cm) = (-87.192,88.5345,200), weight = 7.45058e-09 + gamma, kinetic energy (MeV) = 3.06604, position (cm) = (8.44335,19.8608,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 0.00209847, position (cm) = (2.68351,14.4543,200), weight = 7.45058e-09 + gamma, kinetic energy (MeV) = 0.15964, position (cm) = (12.0645,-3.19041,200), weight = 7.45058e-09 + gamma, kinetic energy (MeV) = 0.654826, position (cm) = (2.41155,-0.369218,200), weight = 7.45058e-09 + neutron, kinetic energy (MeV) = 0.204288, position (cm) = (18.2867,11.4018,200), weight = 7.45058e-09 + neutron, kinetic energy (MeV) = 1.54836, position (cm) = (11.3891,7.89448,200), weight = 7.45058e-09 + neutron, kinetic energy (MeV) = 0.337012, position (cm) = (-20.4791,33.4033,200), weight = 3.72529e-09 + neutron, kinetic energy (MeV) = 0.823663, position (cm) = (28.9875,-2.02707,200), weight = 7.45058e-09 + neutron, kinetic energy (MeV) = 13.927, position (cm) = (-165.26,14.8252,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 72.6909, position (cm) = (20.2587,56.0354,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 0.390775, position (cm) = (-4.09847,-99.0289,200), weight = 0.25 + neutron, kinetic energy (MeV) = 43.9834, position (cm) = (4.00929,-103.899,200), weight = 0.25 + gamma, kinetic energy (MeV) = 4.28115, position (cm) = (-36.9367,-71.9065,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 2.92238, position (cm) = (-45.9503,-110.536,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 4.47701, position (cm) = (-45.5341,-105.385,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 1.03043, position (cm) = (-49.3162,-106.28,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 0.158734, position (cm) = (-54.027,-98.7544,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 4.51505, position (cm) = (-50.595,-108.032,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 0.240702, position (cm) = (-48.3492,-69.2892,200), weight = 0.03125 + gamma, kinetic energy (MeV) = 1.23065, position (cm) = (-70.5142,-65.8183,200), weight = 0.03125 + neutron, kinetic energy (MeV) = 1.04423e-06, position (cm) = (-52.0737,-73.9093,200), weight = 0.03125 + neutron, kinetic energy (MeV) = 0.804601, position (cm) = (-57.5751,-76.9247,200), weight = 0.0625 + gamma, kinetic energy (MeV) = 3.96148, position (cm) = (-51.6172,-75.7095,200), weight = 0.0625 + gamma, kinetic energy (MeV) = 0.0810429, position (cm) = (-23.3353,-86.8525,200), weight = 0.5 + gamma, kinetic energy (MeV) = 0.0964848, position (cm) = (-6.83767,16.0035,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 48.8893, position (cm) = (0.641214,36.8185,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 48.8893, position (cm) = (0.641214,36.8185,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.665475, position (cm) = (5.22332,40.1574,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 48.8893, position (cm) = (0.641214,36.8185,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 48.8893, position (cm) = (0.641214,36.8185,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 42.6812, position (cm) = (-2.25529,41.3373,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 49.002, position (cm) = (-5.71281,50.9931,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 48.7983, position (cm) = (12.6214,67.6922,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 48.7983, position (cm) = (12.6214,67.6922,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 0.0625368, position (cm) = (28.7318,66.7667,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.462369, position (cm) = (36.6263,-65.6559,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 2.90027, position (cm) = (10.8182,-25.4938,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 0.00136046, position (cm) = (54.6317,-26.4588,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 14.2921, position (cm) = (48.6404,-50.721,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 2.61494, position (cm) = (-39.8252,1.64956,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 83.5433, position (cm) = (14.3036,-24.726,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 82.9778, position (cm) = (25.946,-31.5882,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 83.1216, position (cm) = (25.6825,-31.0646,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 82.9374, position (cm) = (25.8549,-31.1528,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 1.57595, position (cm) = (1.63144,-27.3491,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 0.114059, position (cm) = (-16.8671,-7.90909,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (-42.7799,5.24387,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.791166, position (cm) = (-43.8571,5.3643,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 1.36144, position (cm) = (-23.9355,4.27118,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.000374384, position (cm) = (-25.5086,21.1505,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 17.1868, position (cm) = (-12.2659,3.5844,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 18.814, position (cm) = (-36.5057,-1.0666,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 0.236483, position (cm) = (7.16334,-26.3454,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 80.2773, position (cm) = (-7.05035,11.4415,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 87.1099, position (cm) = (-59.7071,-7.93951,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 99.525, position (cm) = (8.3392,2.88092,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 98.955, position (cm) = (20.3423,3.28274,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 0.000600943, position (cm) = (-72.6268,41.0894,200), weight = 1.49012e-08 + gamma, kinetic energy (MeV) = 0.217753, position (cm) = (-57.5263,56.6587,200), weight = 7.45058e-09 + neutron, kinetic energy (MeV) = 4.14737, position (cm) = (-53.4786,47.7741,200), weight = 7.45058e-09 + gamma, kinetic energy (MeV) = 8.19039, position (cm) = (-79.7067,53.8587,200), weight = 7.45058e-09 + gamma, kinetic energy (MeV) = 0.20809, position (cm) = (-58.5388,58.0072,200), weight = 7.45058e-09 + gamma, kinetic energy (MeV) = 4.82959, position (cm) = (-64.7707,60.7753,200), weight = 7.45058e-09 + gamma, kinetic energy (MeV) = 0.223707, position (cm) = (10.3631,220.026,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 36.2062, position (cm) = (-17.9714,214.43,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 36.3591, position (cm) = (-17.6965,214.607,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 36.3591, position (cm) = (-17.6965,214.607,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 29.2368, position (cm) = (-24.2646,210.498,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 0.201116, position (cm) = (-24.0355,210.366,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 1.09189, position (cm) = (-22.2914,209.584,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 3.52799, position (cm) = (-23.7014,210.36,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 9.05838, position (cm) = (-86.9542,-91.5807,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 0.660672, position (cm) = (-84.5273,-85.0624,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 0.662411, position (cm) = (-81.1052,-81.7928,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 0.58095, position (cm) = (-85.6616,-84.5395,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 0.0542541, position (cm) = (-65.3188,-74.8679,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 1.72041, position (cm) = (-62.3516,-72.3212,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 0.80038, position (cm) = (-77.8032,-47.4116,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 9.62602, position (cm) = (-2.41262,6.99292,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.866081, position (cm) = (-4.36503,3.56965,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 1.57551, position (cm) = (-5.4221,5.64466,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 2.30693, position (cm) = (-5.10316,7.9873,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 4.28547, position (cm) = (-7.33757,7.50282,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 9.62602, position (cm) = (-2.41262,6.99292,200), weight = 1.49012e-08 + neutron, kinetic energy (MeV) = 9.62602, position (cm) = (-2.41262,6.99292,200), weight = 1.49012e-08 + neutron, kinetic energy (MeV) = 9.62602, position (cm) = (-2.41262,6.99292,200), weight = 2.98023e-08 + gamma, kinetic energy (MeV) = 0.635542, position (cm) = (-9.13559,5.5533,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 1.49579, position (cm) = (-8.8696,4.03759,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.0820993, position (cm) = (3.57386,-25.5387,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.110331, position (cm) = (-13.6788,19.1102,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 2.72405, position (cm) = (-16.6437,-2.22559,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 4.9328, position (cm) = (-14.0182,4.7057,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 0.521792, position (cm) = (-8.10211,8.76288,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 0.725266, position (cm) = (-9.31377,8.80235,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 0.655748, position (cm) = (-15.5394,17.1645,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 0.153938, position (cm) = (-10.3207,15.8949,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 1.33563, position (cm) = (-14.0519,6.42795,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 1.50098, position (cm) = (-14.8788,10.2004,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 0.00394518, position (cm) = (-2.14102,7.18643,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 0.00570142, position (cm) = (7.72939,10.2239,200), weight = 1.49012e-08 + gamma, kinetic energy (MeV) = 1.22781, position (cm) = (6.97368,6.43309,200), weight = 1.49012e-08 + gamma, kinetic energy (MeV) = 0.100286, position (cm) = (-2.34364,7.7128,200), weight = 1.49012e-08 + neutron, kinetic energy (MeV) = 8.01878, position (cm) = (1.81392,16.8133,200), weight = 7.45058e-09 + neutron, kinetic energy (MeV) = 8.01878, position (cm) = (1.81392,16.8133,200), weight = 7.45058e-09 + gamma, kinetic energy (MeV) = 0.0821464, position (cm) = (-10.0915,3.59568,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 0.000520048, position (cm) = (-12.898,11.6041,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 0.800791, position (cm) = (-25.919,-6.95437,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0870808, position (cm) = (-37.0891,3.86204,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 5.29185, position (cm) = (-46.2071,-9.05438,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.000279489, position (cm) = (-40.9606,-3.38609,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.338608, position (cm) = (-41.1802,-22.0372,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 4.40204, position (cm) = (-43.9822,21.9385,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 52.3853, position (cm) = (-104.271,-13.4494,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 52.5551, position (cm) = (-104.808,-13.7662,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 52.5551, position (cm) = (-104.808,-13.7662,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.667582, position (cm) = (-97.6092,-0.78834,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 53.9448, position (cm) = (-81.0604,8.68754,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 53.9448, position (cm) = (-81.0604,8.68754,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 20.4318, position (cm) = (-83.4855,-4.68824,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.597384, position (cm) = (-86.7392,-12.3761,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 8.07032, position (cm) = (-81.6114,-11.9864,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 42.526, position (cm) = (-95.9375,24.116,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 43.4316, position (cm) = (-94.9448,23.3878,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.361689, position (cm) = (-103.003,7.62594,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 5.24658, position (cm) = (-98.9183,0.281643,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 1.06059, position (cm) = (-83.7144,24.0561,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.922876, position (cm) = (-112.176,38.3741,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 5.94925, position (cm) = (-110.341,39.8574,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 34.1797, position (cm) = (-115.803,38.0274,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 33.8309, position (cm) = (-115.763,38.0439,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.154852, position (cm) = (-116.823,30.6735,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 41.6674, position (cm) = (-170.519,42.8975,200), weight = 1.49012e-08 + neutron, kinetic energy (MeV) = 41.6674, position (cm) = (-170.519,42.8975,200), weight = 1.49012e-08 + neutron, kinetic energy (MeV) = 41.8748, position (cm) = (-170.554,43.4861,200), weight = 2.98023e-08 + neutron, kinetic energy (MeV) = 0.000232599, position (cm) = (-127.178,41.8435,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 3.53456, position (cm) = (-124.538,33.6876,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 6.45651, position (cm) = (-130.94,36.6006,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 2.55421, position (cm) = (-124.525,34.1167,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 2.66673, position (cm) = (-127.876,33.1694,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.121701, position (cm) = (-117.516,41.7771,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 1.12034, position (cm) = (-115.971,36.6077,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 1.53051, position (cm) = (-95.0281,26.3761,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 41.74, position (cm) = (-120.109,39.4527,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.115607, position (cm) = (-105.898,34.9794,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.350513, position (cm) = (-117.072,23.8739,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 34.3436, position (cm) = (-111.497,36.0819,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.174938, position (cm) = (-126.3,62.797,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.537839, position (cm) = (-85.1733,28.0304,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0777343, position (cm) = (-69.5185,-37.6524,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 0.167655, position (cm) = (-61.6906,-32.1776,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 54.2768, position (cm) = (-81.5057,-29.6819,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 53.1382, position (cm) = (-79.6093,-30.8455,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.533821, position (cm) = (-83.3563,-31.3179,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 13.909, position (cm) = (-80.7816,-35.2689,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 13.8717, position (cm) = (-81.2353,-35.603,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 13.909, position (cm) = (-80.7816,-35.2689,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 13.8165, position (cm) = (-81.3205,-34.7938,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 13.909, position (cm) = (-80.7816,-35.2689,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 53.9611, position (cm) = (-84.6425,-35.1319,200), weight = 4.76837e-07 + e-, kinetic energy (MeV) = 1.71079, position (cm) = (-119.151,-3.82429,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 3.56859, position (cm) = (-123.742,24.8564,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.309569, position (cm) = (-106.839,22.2749,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0699237, position (cm) = (-98.1822,26.9792,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.512606, position (cm) = (-105.548,28.283,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 8.10607, position (cm) = (-104.783,29.0359,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.359858, position (cm) = (-82.5846,-21.0021,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 3.75189, position (cm) = (-67.1665,3.12662,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 8.5896e-07, position (cm) = (-65.7437,-12.621,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 1.49116, position (cm) = (-96.7568,-7.42781,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 2.41089, position (cm) = (-99.3233,-3.21822,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 2.41089, position (cm) = (-99.3233,-3.21822,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.155841, position (cm) = (-116.364,17.0602,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.089305, position (cm) = (-117.548,37.9628,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.218583, position (cm) = (-84.0094,33.0707,200), weight = 1.90735e-06 + proton, kinetic energy (MeV) = 28.9236, position (cm) = (-155.615,17.1852,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.610065, position (cm) = (-88.2913,1.18297,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 32.459, position (cm) = (-39.7896,-0.515964,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 1.44653, position (cm) = (-53.3742,-15.469,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 0.255166, position (cm) = (-48.7593,-11.8063,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 32.0568, position (cm) = (-42.1143,1.29826,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 32.1544, position (cm) = (-37.4552,1.13733,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 32.473, position (cm) = (-40.3009,-0.885135,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 32.503, position (cm) = (-40.6175,-0.606005,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.123884, position (cm) = (-47.2174,-93.5547,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 3.45347, position (cm) = (-52.3468,-89.5897,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 2.60315, position (cm) = (-50.5969,-110.551,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 2.60315, position (cm) = (-50.5969,-110.551,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 0.243559, position (cm) = (-45.4123,-122.276,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.144677, position (cm) = (-47.0778,-121.15,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.000135486, position (cm) = (-26.5768,-115.733,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 8.15589, position (cm) = (-46.9176,-119.153,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 4.93291, position (cm) = (-46.233,-98.5871,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 58.069, position (cm) = (-44.9424,-118.155,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.50048, position (cm) = (-40.0896,-115.207,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.768178, position (cm) = (-49.5137,-116.09,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 4.59664, position (cm) = (-45.0693,-116.561,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 11.3853, position (cm) = (-49.1734,-128.63,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 10.9081, position (cm) = (-49.1438,-128.608,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 1.22483, position (cm) = (-48.5657,-127.925,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 3.16065, position (cm) = (-55.7423,-127.333,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 63.621, position (cm) = (-53.3525,-112.124,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.950426, position (cm) = (-39.918,-101.967,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 1.23819, position (cm) = (-41.0539,-98.1451,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 1.0993, position (cm) = (-44.4328,-128.982,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 63.5662, position (cm) = (-49.5484,-106.657,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 63.4804, position (cm) = (-49.3101,-106.365,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 63.4804, position (cm) = (-49.3101,-106.365,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 3.8196, position (cm) = (-64.5213,-109.223,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.560258, position (cm) = (-56.1593,-152.673,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 0.125055, position (cm) = (12.9438,31.4792,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 12.2598, position (cm) = (15.2724,32.2813,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 98.5259, position (cm) = (12.5455,29.8768,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 98.5259, position (cm) = (12.5455,29.8768,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 31.866, position (cm) = (92.3457,58.5295,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 15.2844, position (cm) = (109.295,100.642,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 15.2844, position (cm) = (109.295,100.642,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 15.2844, position (cm) = (109.295,100.642,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.317904, position (cm) = (104.754,112.052,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.110664, position (cm) = (93.7617,86.4269,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 2.3536, position (cm) = (96.0869,89.0229,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 2.1344, position (cm) = (84.5162,126.357,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 2.79004, position (cm) = (68.54,100.943,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 5.2249, position (cm) = (-63.4723,-46.4979,200), weight = 0.03125 + gamma, kinetic energy (MeV) = 0.508305, position (cm) = (-47.2992,-51.2049,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 20.4689, position (cm) = (-49.4903,-52.3807,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.0851923, position (cm) = (-52.1898,-35.7015,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 5.46705, position (cm) = (-34.0721,-36.1282,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 42.1593, position (cm) = (-43.9654,-36.8342,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 42.1593, position (cm) = (-43.9654,-36.8342,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 35.4977, position (cm) = (-12.1659,-20.6452,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 1.17656, position (cm) = (6.83823,-52.6986,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 1.71278, position (cm) = (-10.0282,-80.4241,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (3.05007,-59.7824,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 4.81021, position (cm) = (-4.1379,-52.6642,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.406712, position (cm) = (-27.6259,-57.6179,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 5.77414, position (cm) = (-32.9007,-49.6013,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 0.797335, position (cm) = (-57.7445,-64.5902,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.165059, position (cm) = (-58.8105,-60.8452,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 3.17449, position (cm) = (-52.9692,-64.59,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 7.17748, position (cm) = (-42.2485,-43.6842,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 4.44222, position (cm) = (-31.0068,-78.0648,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 3.86359e-05, position (cm) = (-13.9963,-79.43,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 1.47297, position (cm) = (-61.5673,-66.0929,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 0.900496, position (cm) = (-52.7828,-63.3786,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 4.77754, position (cm) = (-5.81041,-59.2073,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 34.0975, position (cm) = (23.3153,-50.674,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.289636, position (cm) = (0.781331,-52.0377,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 14.8339, position (cm) = (15.5397,-49.0842,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.406722, position (cm) = (20.0361,-48.5212,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 1.16718, position (cm) = (16.6298,-50.1243,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 2.8029, position (cm) = (36.6674,-72.7908,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 0.827124, position (cm) = (18.9741,-52.6392,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 1.64561, position (cm) = (35.1005,-51.4465,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 16.9936, position (cm) = (34.2967,-51.3514,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 2.73641, position (cm) = (29.8288,-50.567,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.964508, position (cm) = (32.4729,-57.0459,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 34.6632, position (cm) = (21.2442,-52.7896,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 34.5511, position (cm) = (26.8499,-72.2261,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 34.3362, position (cm) = (30.6712,-71.1015,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.119843, position (cm) = (10.2443,-36.6469,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.105066, position (cm) = (-5.29236,-80.5007,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.00137786, position (cm) = (-37.7858,-9.591,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 69.423, position (cm) = (-36.8817,-18.256,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 69.5512, position (cm) = (-35.7648,-16.7337,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 0.00328633, position (cm) = (-5.40357,-45.6843,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 5.14295, position (cm) = (-25.6006,-31.6459,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 0.380524, position (cm) = (-17.7316,-35.0437,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.917001, position (cm) = (-22.108,-36.1006,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.484825, position (cm) = (-23.5651,-39.7951,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 21.5665, position (cm) = (-33.0909,0.229484,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 0.298511, position (cm) = (-23.814,-3.97502,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 0.230609, position (cm) = (-86.3346,-30.4749,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 3.05708, position (cm) = (-24.343,-3.90085,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 0.314034, position (cm) = (-22.8141,-13.7709,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 7.22381, position (cm) = (-24.1997,-3.84085,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 21.6418, position (cm) = (-34.4031,1.83734,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 50.8324, position (cm) = (4.65141,10.6636,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 5.16709, position (cm) = (3.51799,13.2672,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.120605, position (cm) = (-9.36786,9.42649,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 76.2777, position (cm) = (28.5564,-18.9362,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 84.16, position (cm) = (26.8955,10.9456,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 84.16, position (cm) = (26.8955,10.9456,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 84.16, position (cm) = (26.8955,10.9456,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 98.6925, position (cm) = (0.117911,8.13212,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 98.8105, position (cm) = (-7.65268,3.77646,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 98.8105, position (cm) = (-7.65268,3.77646,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 99.2262, position (cm) = (-3.58988,3.35301,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.649225, position (cm) = (-19.5687,2.85526,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 1.70814, position (cm) = (-11.2987,1.87731,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 2.68593, position (cm) = (-7.26616,-3.46297,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 24.006, position (cm) = (14.0418,35.6742,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 24.006, position (cm) = (14.0418,35.6742,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 2.94747, position (cm) = (25.3537,26.629,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 23.2273, position (cm) = (11.0329,42.1648,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 99.0959, position (cm) = (-7.16641,4.93157,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 98.9778, position (cm) = (3.98042,12.2601,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 98.9778, position (cm) = (3.98042,12.2601,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.0895048, position (cm) = (3.1176,-1.64319,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 17.5378, position (cm) = (-20.1044,7.67738,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 14.7357, position (cm) = (-22.8711,5.81888,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.830511, position (cm) = (-16.3513,-2.10132,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 6.77341, position (cm) = (-22.5608,4.10111,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 98.2592, position (cm) = (-8.97718,-15.0837,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 0.821592, position (cm) = (-2.94393,-17.217,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 3.25529, position (cm) = (-11.3442,-3.73938,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 55.4978, position (cm) = (-9.47575,-0.425585,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.890086, position (cm) = (45.0225,-132.723,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 41.7805, position (cm) = (45.5438,-76.0448,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 41.9593, position (cm) = (47.4076,-69.6053,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 41.4186, position (cm) = (47.1929,-68.3022,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 41.9593, position (cm) = (47.4076,-69.6053,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 41.7025, position (cm) = (45.8921,-73.1139,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.0812634, position (cm) = (41.586,-61.0695,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 41.9109, position (cm) = (39.646,-61.0363,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 40.9497, position (cm) = (55.8599,-76.1072,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 4.03661, position (cm) = (31.2079,-65.3281,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.611326, position (cm) = (22.8327,24.6403,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.534252, position (cm) = (-5.38051,23.9659,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 0.0164114, position (cm) = (19.4525,29.463,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.089498, position (cm) = (7.49885,18.2353,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 2.74865, position (cm) = (10.5494,44.1867,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 2.78895, position (cm) = (10.5075,44.7024,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 16.8616, position (cm) = (6.06537,28.1367,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 7.94281e-06, position (cm) = (27.1931,37.9899,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 2.05606, position (cm) = (1.54471,28.0486,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 4.82879, position (cm) = (3.87006,23.2953,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 16.3891, position (cm) = (24.3135,-0.351332,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 16.3891, position (cm) = (24.3135,-0.351332,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 1.78211, position (cm) = (11.1892,5.5342,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 1.16597, position (cm) = (16.4993,5.10342,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.112605, position (cm) = (4.64158,-14.942,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0732221, position (cm) = (132.573,-11.3541,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 5.48823, position (cm) = (111.961,-0.199831,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 20.9299, position (cm) = (156.934,-3.7249,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 0.650244, position (cm) = (157.166,-5.20573,200), weight = 1.49012e-08 + gamma, kinetic energy (MeV) = 1.66372, position (cm) = (157.197,-4.98552,200), weight = 1.49012e-08 + neutron, kinetic energy (MeV) = 0.582074, position (cm) = (158.671,5.53033,200), weight = 1.49012e-08 + gamma, kinetic energy (MeV) = 0.112302, position (cm) = (177.264,23.1508,200), weight = 1.49012e-08 + neutron, kinetic energy (MeV) = 14.1243, position (cm) = (157.205,-5.03451,200), weight = 7.45058e-09 + neutron, kinetic energy (MeV) = 14.1243, position (cm) = (157.205,-5.03451,200), weight = 7.45058e-09 + neutron, kinetic energy (MeV) = 19.5533, position (cm) = (156.213,-8.12189,200), weight = 2.98023e-08 + neutron, kinetic energy (MeV) = 2.33505, position (cm) = (163.576,-7.57768,200), weight = 1.49012e-08 + neutron, kinetic energy (MeV) = 2.07961, position (cm) = (148.25,-8.31391,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 0.0802892, position (cm) = (149.428,-13.8047,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 2.78607, position (cm) = (112.05,-12.2808,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.173621, position (cm) = (112.363,-10.163,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 20.0954, position (cm) = (110.733,-7.24956,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 18.6275, position (cm) = (120.685,14.1888,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 44.4967, position (cm) = (99.7703,-13.3049,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 44.0446, position (cm) = (99.5616,-13.2228,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 44.4967, position (cm) = (99.7703,-13.3049,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.309754, position (cm) = (120.076,-22.3226,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.171278, position (cm) = (118.128,-17.5473,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.221862, position (cm) = (125.56,-12.4255,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 0.00127796, position (cm) = (112.376,-6.36882,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.529756, position (cm) = (118.65,-11.6921,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 1.29957, position (cm) = (117.763,-12.6185,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.138112, position (cm) = (97.1312,-16.1052,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 4.92742, position (cm) = (99.4246,-16.434,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 7.65524, position (cm) = (97.4463,-13.0235,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 44.6621, position (cm) = (98.5478,-16.2939,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 44.2407, position (cm) = (97.7983,-21.4936,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 43.9219, position (cm) = (96.6737,-17.827,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 44.5335, position (cm) = (92.9241,-14.9718,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 1.90677, position (cm) = (33.6095,4.79959,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.156136, position (cm) = (106.915,-30.2024,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 58.884, position (cm) = (100.183,-52.6026,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 58.884, position (cm) = (100.183,-52.6026,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 58.884, position (cm) = (100.183,-52.6026,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 58.884, position (cm) = (100.183,-52.6026,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 40.6775, position (cm) = (64.6563,-80.0412,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 2.89556, position (cm) = (59.2756,-85.8196,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 7.77006e-05, position (cm) = (64.9024,-99.9338,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.427082, position (cm) = (45.4553,-103.92,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 4.92433, position (cm) = (59.2547,-84.9716,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 7.42952, position (cm) = (56.3937,-81.8609,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 81.487, position (cm) = (61.7399,-81.5126,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 82.2626, position (cm) = (64.6155,-86.1476,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.281933, position (cm) = (59.0679,-75.7934,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.280862, position (cm) = (71.014,-89.5622,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 0.000747388, position (cm) = (67.5112,-74.1214,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 10.6758, position (cm) = (60.0898,-64.3457,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 10.6758, position (cm) = (60.0898,-64.3457,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 10.6758, position (cm) = (60.0898,-64.3457,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 2.05754, position (cm) = (41.3567,10.1238,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.801351, position (cm) = (60.405,-71.7167,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 0.635547, position (cm) = (85.927,-51.8978,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 13.3832, position (cm) = (69.7631,-24.6785,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.0694335, position (cm) = (67.3874,-32.5011,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 0.0822851, position (cm) = (62.5681,-23.6714,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 9.40708, position (cm) = (24.9851,-30.0987,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.718176, position (cm) = (19.2784,-55.9691,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.125438, position (cm) = (13.9341,-55.4716,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.303983, position (cm) = (32.5051,-56.3905,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 83.9972, position (cm) = (18.3471,-61.5209,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.0882325, position (cm) = (-82.1948,-87.0349,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 99.1699, position (cm) = (24.6424,-47.95,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 99.3807, position (cm) = (23.703,-48.8117,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 97.8363, position (cm) = (15.9079,-50.336,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 8.27917, position (cm) = (22.8604,-49.3483,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 65.1396, position (cm) = (24.1468,-46.7955,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 99.4263, position (cm) = (22.5678,-47.8419,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 99.4246, position (cm) = (23.3926,-49.254,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 41.4401, position (cm) = (-7.23788,-61.2852,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 98.7759, position (cm) = (19.8479,-46.9099,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 99.3832, position (cm) = (22.5295,-47.0947,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 99.4143, position (cm) = (22.5347,-46.7651,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 1.51125, position (cm) = (8.58225,-63.7332,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 67.3452, position (cm) = (21.2584,-40.104,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.121978, position (cm) = (26.9222,-43.369,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 1.19792, position (cm) = (20.4726,-53.988,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 2.47974, position (cm) = (33.9407,-38.9608,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 10.9594, position (cm) = (27.1774,-40.9134,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 15.6737, position (cm) = (27.733,-41.8633,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 17.1738, position (cm) = (-25.8538,50.0547,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 0.314681, position (cm) = (-37.0787,42.3762,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.161001, position (cm) = (-19.1402,58.4744,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 17.2769, position (cm) = (-25.8131,49.5132,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 8.29474, position (cm) = (4.91787,89.678,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 33.4823, position (cm) = (47.1878,-33.1746,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 77.4949, position (cm) = (1.82567,-17.7178,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 98.8302, position (cm) = (5.50971,-19.2134,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 21.4538, position (cm) = (37.4946,-58.4664,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 21.2333, position (cm) = (37.1062,-57.3061,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 21.4538, position (cm) = (37.4946,-58.4664,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 21.9255, position (cm) = (30.2696,-64.3716,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 1.18614, position (cm) = (32.4851,-64.5798,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 1.17042, position (cm) = (31.7205,-63.6586,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 5.10506, position (cm) = (31.1689,-63.4761,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 21.9255, position (cm) = (30.2696,-64.3716,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 21.9255, position (cm) = (30.2696,-64.3716,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 21.9255, position (cm) = (30.2696,-64.3716,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 21.9255, position (cm) = (30.2696,-64.3716,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 21.9255, position (cm) = (30.2696,-64.3716,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 95.598, position (cm) = (44.772,-73.4673,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 0.000955382, position (cm) = (36.8866,-66.1934,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 3.68591, position (cm) = (10.1958,-47.9777,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 96.5164, position (cm) = (84.0002,-98.6727,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 3.12595e-05, position (cm) = (71.0797,-72.4568,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 1.21186, position (cm) = (75.8328,-68.2421,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 16.9597, position (cm) = (76.463,-68.1865,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 4.50267, position (cm) = (77.6046,-70.2161,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 19.0625, position (cm) = (75.6366,-61.5154,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 19.0625, position (cm) = (75.6366,-61.5154,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.503644, position (cm) = (89.0346,-84.103,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 2.21078, position (cm) = (80.2403,-96.7508,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 29.9815, position (cm) = (58.1692,-51.9727,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.75391, position (cm) = (49.0556,-52.7505,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 17.1545, position (cm) = (44.8827,-52.1746,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 17.1545, position (cm) = (44.8827,-52.1746,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 32.423, position (cm) = (51.8492,-66.0834,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.190056, position (cm) = (-30.9011,82.4587,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 1.47102, position (cm) = (-25.5711,91.3084,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 0.182526, position (cm) = (-32.258,92.5314,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 0.161661, position (cm) = (-33.3537,94.8728,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 1.97415, position (cm) = (-31.5166,94.6174,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 4.04635, position (cm) = (-22.473,97.0483,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 0.133009, position (cm) = (48.3664,140.468,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.441708, position (cm) = (47.4608,144.55,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.719208, position (cm) = (45.7934,144.715,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.340172, position (cm) = (33.3022,126.547,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.278001, position (cm) = (43.8394,125.715,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 20.4428, position (cm) = (46.5718,138.173,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 30.3104, position (cm) = (45.7901,142.275,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 1.84942, position (cm) = (-25.454,84.0448,200), weight = 0.0625 + neutron, kinetic energy (MeV) = 18.709, position (cm) = (-27.6101,88.4092,200), weight = 0.0625 + gamma, kinetic energy (MeV) = 0.0661008, position (cm) = (-34.1196,15.8274,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 13.409, position (cm) = (-33.2621,15.286,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.18132, position (cm) = (-49.7829,11.9761,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.0874251, position (cm) = (-31.7337,16.9973,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 0.0599065, position (cm) = (-28.4242,19.3698,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 0.777303, position (cm) = (-33.2187,13.2573,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 0.777303, position (cm) = (-33.2187,13.2573,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 0.0344109, position (cm) = (-38.951,11.1024,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 19.8704, position (cm) = (-38.7543,15.3999,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.426436, position (cm) = (-50.7798,5.88585,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.0790706, position (cm) = (-53.3864,9.5837,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 88.6786, position (cm) = (-41.7804,17.2105,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 2.49619, position (cm) = (-54.8246,-41.9741,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 2.66299, position (cm) = (10.7015,65.6337,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 0.00586281, position (cm) = (-39.9962,90.8773,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.124922, position (cm) = (-53.0224,121.237,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.0771552, position (cm) = (-47.4167,49.399,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.828814, position (cm) = (-45.6421,50.041,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.208581, position (cm) = (-50.6485,38.52,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.798189, position (cm) = (-47.0043,34.9936,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 4.71488, position (cm) = (-42.9328,39.4929,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.331912, position (cm) = (-44.1598,47.4995,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.324071, position (cm) = (-43.836,50.1964,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 3.09605e-06, position (cm) = (-38.2551,47.7717,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.47825, position (cm) = (-41.3489,47.1249,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 1.95898, position (cm) = (-38.761,59.48,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 36.0101, position (cm) = (-40.9341,42.8483,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 36.0101, position (cm) = (-40.9341,42.8483,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 0.269998, position (cm) = (-50.9261,111.476,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.599587, position (cm) = (-53.2178,130.188,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 59.4009, position (cm) = (-46.62,45.1433,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 60.2514, position (cm) = (-46.9545,46.2116,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.26986, position (cm) = (-54.8654,72.6359,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 1.832, position (cm) = (-45.1486,77.7629,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 6.86103e-05, position (cm) = (-13.1677,58.8663,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 1.49368e-05, position (cm) = (-7.38332,70.8403,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.0632822, position (cm) = (-58.7798,61.4941,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.0853702, position (cm) = (-39.845,63.4778,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.0910249, position (cm) = (-64.6244,49.6556,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 1.9587, position (cm) = (-68.0043,63.7956,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.19721, position (cm) = (-50.0405,66.8198,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 0.00731781, position (cm) = (-67.2799,43.4961,200), weight = 0.03125 + gamma, kinetic energy (MeV) = 0.344674, position (cm) = (-65.237,50.2001,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.655128, position (cm) = (-70.9591,54.03,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.0909381, position (cm) = (-77.6055,52.2359,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.143408, position (cm) = (-83.25,56.707,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 1.19057, position (cm) = (-100.088,5.91992,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.183387, position (cm) = (-73.9753,54.6465,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 1.33054, position (cm) = (-63.9025,50.0803,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 6.36725, position (cm) = (-63.5038,53.4317,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.0701944, position (cm) = (-68.7357,45.0641,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.234164, position (cm) = (-57.3886,57.8809,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.307071, position (cm) = (-64.9163,48.425,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 1.29261, position (cm) = (-65.8104,48.4455,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 1.59482, position (cm) = (-56.1494,55.7601,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.146418, position (cm) = (-65.2369,48.6949,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 7.08359, position (cm) = (-68.4634,48.9544,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 74.3419, position (cm) = (-6.77884,60.9561,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 74.9769, position (cm) = (-5.56347,61.5366,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.170478, position (cm) = (-8.306,52.7905,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 9.63271, position (cm) = (-7.75296,54.5727,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 7.20085, position (cm) = (-53.5021,36.2167,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 85.081, position (cm) = (-13.2364,47.9452,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 0.357535, position (cm) = (-30.7174,89.6043,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.153894, position (cm) = (-38.5763,80.4906,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 2.3465, position (cm) = (-28.0637,112.117,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 4.9096, position (cm) = (-17.1729,104.65,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 97.426, position (cm) = (-32.61,78.2108,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.169696, position (cm) = (-8.78116,82.4589,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 1.22505, position (cm) = (-7.48464,78.0155,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 1.77833, position (cm) = (-12.3942,72.4865,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 3.64652, position (cm) = (-15.9167,81.0156,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.100176, position (cm) = (-19.0046,79.184,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 4.82912, position (cm) = (-9.95343,74.4412,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 6.03549, position (cm) = (-10.9453,75.4384,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 5.82736, position (cm) = (-40.074,66.3753,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 4.61884, position (cm) = (-18.0502,67.1815,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 3.37854, position (cm) = (-16.9279,64.5393,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 13.2825, position (cm) = (-31.7384,65.681,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 12.6235, position (cm) = (-26.9706,69.3318,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 13.2825, position (cm) = (-31.7384,65.681,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 97.9157, position (cm) = (-57.9758,64.1752,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 97.9006, position (cm) = (-58.2498,64.6544,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 97.8237, position (cm) = (-57.1107,64.6154,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 97.8237, position (cm) = (-57.1107,64.6154,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 97.8237, position (cm) = (-57.1107,64.6154,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 97.8237, position (cm) = (-57.1107,64.6154,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 97.8237, position (cm) = (-57.1107,64.6154,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 98.1448, position (cm) = (-56.7488,71.1451,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 98.0279, position (cm) = (-56.5742,73.6624,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 2.44033, position (cm) = (-58.3625,76.9472,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.18535, position (cm) = (-54.3981,76.5782,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 0.360895, position (cm) = (-52.1562,75.5161,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 1.17374, position (cm) = (-54.558,76.4096,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 5.44155, position (cm) = (-55.2911,75.7982,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 47.557, position (cm) = (-55.1479,69.2244,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 7.64536, position (cm) = (-50.8917,59.4723,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 8.0817, position (cm) = (-18.6146,35.7458,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 8.1655, position (cm) = (-23.0102,43.2123,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 8.1655, position (cm) = (-23.0102,43.2123,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.295819, position (cm) = (-20.0797,43.6435,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 2.27966, position (cm) = (-21.743,43.3335,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 2.66514, position (cm) = (-22.4007,40.5469,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 7.521, position (cm) = (-26.3113,46.847,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 4.81836, position (cm) = (-9.21084,29.5188,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.0493966, position (cm) = (-38.793,53.9037,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 49.9362, position (cm) = (-27.0235,52.7721,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 0.603541, position (cm) = (-78.3812,60.6217,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 26.2977, position (cm) = (-75.8071,78.5452,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 6.23753, position (cm) = (-71.5373,75.2925,200), weight = 3.05176e-05 + proton, kinetic energy (MeV) = 5.57621, position (cm) = (-71.7587,75.0739,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.289434, position (cm) = (-71.5946,75.2525,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 1.99199, position (cm) = (-71.1799,75.1944,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 2.19766, position (cm) = (-71.6803,75.6006,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 20.352, position (cm) = (-71.5308,74.1818,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 26.3902, position (cm) = (-76.655,79.3696,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.287896, position (cm) = (-98.5617,77.1002,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 6.59438, position (cm) = (-76.1394,89.3563,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.148849, position (cm) = (-55.5445,63.3169,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.483496, position (cm) = (-69.7288,52.3487,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 2.90253, position (cm) = (-72.1063,73.3949,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 2.28218, position (cm) = (-100.774,55.4557,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 45.1005, position (cm) = (-101.96,52.8872,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 39.5775, position (cm) = (-99.6054,69.8052,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 39.5775, position (cm) = (-99.6054,69.8052,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 45.3988, position (cm) = (-108.69,62.9163,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 45.3988, position (cm) = (-108.69,62.9163,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.320884, position (cm) = (-90.9421,35.1281,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 19.5752, position (cm) = (-96,59.046,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 44.9403, position (cm) = (-96.635,60.7982,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 67.3158, position (cm) = (-82.7078,89.3198,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 67.3158, position (cm) = (-82.7078,89.3198,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 66.7673, position (cm) = (-82.938,87.7794,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 4.00091, position (cm) = (-87.0102,75.0588,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 2.45349, position (cm) = (-77.6378,87.3759,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.171222, position (cm) = (-72.4775,112.929,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 67.3158, position (cm) = (-82.7078,89.3198,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 67.3158, position (cm) = (-82.7078,89.3198,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.11231, position (cm) = (-88.9374,99.3942,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 17.9886, position (cm) = (-89.2338,99.6407,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 3.51392, position (cm) = (-86.2272,100.304,200), weight = 1.52588e-05 + proton, kinetic energy (MeV) = 34.7517, position (cm) = (-89.2553,99.689,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 64.9947, position (cm) = (-47.8378,110.467,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 30.3314, position (cm) = (-37.9391,-75.8722,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 30.549, position (cm) = (-38.7638,-76.3624,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 12.5324, position (cm) = (-32.5706,-39.9527,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 0.0906554, position (cm) = (-32.7314,-36.9098,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 1.18838, position (cm) = (-52.6532,-35.3755,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (-5.75183,-34.351,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 3.09962, position (cm) = (-32.3052,-38.0046,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 14.3241, position (cm) = (-58.1158,-29.4562,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 14.3241, position (cm) = (-58.1158,-29.4562,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 0.179509, position (cm) = (-74.7153,15.2434,200), weight = 0.0625 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (-66.703,-26.9866,200), weight = 0.03125 + neutron, kinetic energy (MeV) = 2.69579, position (cm) = (3.02048,46.6326,200), weight = 0.03125 + neutron, kinetic energy (MeV) = 99.335, position (cm) = (-10.3652,45.5253,200), weight = 0.03125 + gamma, kinetic energy (MeV) = 5.43798, position (cm) = (29.4215,60.5616,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 1.57762, position (cm) = (19.7271,49.3283,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 1.05725, position (cm) = (12.0646,43.0916,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.298788, position (cm) = (26.5285,53.8385,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 1.76146, position (cm) = (19.0851,44.5742,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 1.29611, position (cm) = (33.3361,38.1947,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 4.34961, position (cm) = (11.3933,76.8252,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 10.0614, position (cm) = (23.8151,75.4559,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.166404, position (cm) = (23.2749,48.2852,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 0.676882, position (cm) = (22.404,59.3336,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 23.1433, position (cm) = (19.7866,73.1785,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.0784271, position (cm) = (39.4353,75.4605,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 0.106743, position (cm) = (31.7965,83.7098,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 1.05104, position (cm) = (18.4516,81.6109,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 5.72418, position (cm) = (31.7975,70.2094,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 21.9124, position (cm) = (22.6831,76.2932,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 22.2118, position (cm) = (21.8232,74.5095,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.599226, position (cm) = (27.7073,21.6351,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 8.23619, position (cm) = (46.2428,46.1732,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.117983, position (cm) = (48.9656,23.4833,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.422939, position (cm) = (-23.3507,56.6853,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 3.21303e-05, position (cm) = (1.47386,52.9964,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 8.00153, position (cm) = (21.3541,73.4636,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.131052, position (cm) = (-59.7269,81.7997,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 0.229659, position (cm) = (-17.7829,57.4702,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 0.00012668, position (cm) = (-6.46994,61.2546,200), weight = 0.03125 + gamma, kinetic energy (MeV) = 1.38815, position (cm) = (-3.48644,65.5302,200), weight = 0.03125 + neutron, kinetic energy (MeV) = 1.24086, position (cm) = (15.8426,83.4362,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 6.71336, position (cm) = (23.18,87.2676,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 24.1898, position (cm) = (38.6839,94.1142,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 15.1495, position (cm) = (45.187,99.9833,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 15.1495, position (cm) = (45.187,99.9833,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 15.3185, position (cm) = (42.4054,103.925,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 0.805738, position (cm) = (126.601,-51.7138,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.058431, position (cm) = (142.758,-92.1108,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 5.63238, position (cm) = (129.554,-63.5515,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 0.0785715, position (cm) = (133.333,-74.8411,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 32.5766, position (cm) = (121.177,-79.4697,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.514141, position (cm) = (152.661,-41.5328,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.286105, position (cm) = (150.796,-40.7773,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 7.48323e-07, position (cm) = (145.506,-39.5818,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 2.80467, position (cm) = (156.906,-50.6227,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 68.9754, position (cm) = (153.309,-52.3861,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 68.9963, position (cm) = (150.651,-52.0961,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 69.3422, position (cm) = (150.277,-52.5117,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 51.3866, position (cm) = (147.837,-46.0967,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.109159, position (cm) = (180.339,-31.6472,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 62.8908, position (cm) = (175.186,-34.5128,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 0.616183, position (cm) = (183.934,-26.9187,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 0.221802, position (cm) = (181.513,-25.5518,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 70.1064, position (cm) = (162.545,-32.7286,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 69.771, position (cm) = (152.866,-33.9674,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.148939, position (cm) = (23.9213,-68.5962,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.779233, position (cm) = (17.444,-83.5815,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.0735418, position (cm) = (-9.50855,-95.6446,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.206873, position (cm) = (-5.42199,-85.4327,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 48.275, position (cm) = (67.8446,-150.242,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.223712, position (cm) = (62.3745,-141.877,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 35.5953, position (cm) = (65.9218,-138.813,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.113607, position (cm) = (67.984,-125.961,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.0905654, position (cm) = (47.1838,-70.2372,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 0.000219171, position (cm) = (55.2647,-107.582,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.122572, position (cm) = (56.7616,-92.0942,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.0516209, position (cm) = (53.5988,-74.8817,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.120207, position (cm) = (50.0668,-76.7333,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 0.252111, position (cm) = (58.819,-81.9746,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 48.1128, position (cm) = (67.0156,-75.7707,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 48.1882, position (cm) = (69.6271,-74.0437,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 1.37391, position (cm) = (17.361,-68.4217,200), weight = 0.03125 + gamma, kinetic energy (MeV) = 0.0614689, position (cm) = (33.526,-71.9168,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 4.6396, position (cm) = (45.4745,-52.5948,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.832296, position (cm) = (54.893,-87.9941,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.644746, position (cm) = (62.3195,-98.2691,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.251495, position (cm) = (54.8058,-89.388,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 1.90472, position (cm) = (42.2824,-89.9531,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 5.50593, position (cm) = (30.3494,-94.1581,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 18.6209, position (cm) = (41.3366,-66.1519,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 2.90622, position (cm) = (56.1639,-81.7448,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 2.89484, position (cm) = (48.0658,-61.6886,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 6.40473, position (cm) = (47.1584,-67.5887,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 0.431321, position (cm) = (53.8533,-32.3233,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 3.61475, position (cm) = (21.7781,-54.595,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 0.000707408, position (cm) = (38.881,-13.2834,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 0.0244677, position (cm) = (-11.9384,66.55,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 0.000206331, position (cm) = (-28.3102,46.2518,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 0.224363, position (cm) = (-72.9309,35.8241,200), weight = 2.98023e-08 + neutron, kinetic energy (MeV) = 20.9314, position (cm) = (-35.4621,59.1536,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 8.33161, position (cm) = (-45.4334,37.5,200), weight = 2.98023e-08 + neutron, kinetic energy (MeV) = 8.33161, position (cm) = (-45.4334,37.5,200), weight = 2.98023e-08 + gamma, kinetic energy (MeV) = 0.889714, position (cm) = (-23.766,39.2863,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 0.153683, position (cm) = (-25.7921,7.62551,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 0.00266043, position (cm) = (-15.5106,-12.2317,200), weight = 1.86265e-09 + neutron, kinetic energy (MeV) = 8.59852, position (cm) = (-22.7398,-23.9128,200), weight = 1.86265e-09 + neutron, kinetic energy (MeV) = 2.07905, position (cm) = (-17.6691,-32.4892,200), weight = 3.72529e-09 + gamma, kinetic energy (MeV) = 0.478528, position (cm) = (-23.7502,-16.3,200), weight = 1.49012e-08 + neutron, kinetic energy (MeV) = 1.78186, position (cm) = (-15.0069,-8.63411,200), weight = 2.98023e-08 + neutron, kinetic energy (MeV) = 1.41443, position (cm) = (-33.1238,1.25561,200), weight = 2.98023e-08 + gamma, kinetic energy (MeV) = 6.44998, position (cm) = (42.5679,-25.8662,200), weight = 1.49012e-08 + neutron, kinetic energy (MeV) = 51.05, position (cm) = (66.5796,179.483,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 51.05, position (cm) = (66.5796,179.483,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 2.12589, position (cm) = (82.9959,162.851,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 1.82383, position (cm) = (54.3498,143.767,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.182037, position (cm) = (59.3002,157.941,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 0.456589, position (cm) = (57.598,160.86,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 8.27421, position (cm) = (50.2395,155.316,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 1.00192, position (cm) = (77.6215,165.57,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 0.579133, position (cm) = (87.7949,126.525,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 0.0927514, position (cm) = (53.7493,84.3829,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 0.268239, position (cm) = (-31.8451,132.158,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 2.29823, position (cm) = (-26.4988,129.22,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 6.71773, position (cm) = (-67.6824,128.032,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 97.7664, position (cm) = (62.8119,22.6031,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 98.6789, position (cm) = (60.4066,30.781,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.205222, position (cm) = (54.9156,25.7127,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.388546, position (cm) = (62.0157,32.2374,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.0969506, position (cm) = (57.4758,33.045,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 7.64018, position (cm) = (49.1808,35.9643,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 1.68355, position (cm) = (68.851,29.8576,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 46.2585, position (cm) = (58.5966,35.7504,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.0693619, position (cm) = (31.6805,-72.1527,200), weight = 0.0625 + neutron, kinetic energy (MeV) = 10.3195, position (cm) = (61.5682,-64.0598,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 3.02733, position (cm) = (69.8276,-77.0983,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 4.20694, position (cm) = (98.2045,-93.086,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 7.78153, position (cm) = (116.876,-90.3065,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 6.92915, position (cm) = (102.163,-98.7296,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 1.09964, position (cm) = (116.088,-84.0036,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 8.61615e-07, position (cm) = (70.7016,-110.032,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 12.4868, position (cm) = (59.9228,-70.8841,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.0797296, position (cm) = (61.5745,-70.6268,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.660577, position (cm) = (44.8855,-57.5982,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 0.0045531, position (cm) = (62.3586,-67.7924,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.521502, position (cm) = (43.2751,-147.652,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.394268, position (cm) = (69.6573,-181.563,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 1.49001, position (cm) = (77.3803,-157.002,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 3.77556, position (cm) = (71.0254,-161.436,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 6.38216, position (cm) = (71.9388,-165.015,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 3.24621, position (cm) = (58.9471,-190.914,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 60.9555, position (cm) = (52.4827,-192.495,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 7.51764, position (cm) = (-23.3143,59.2183,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 1.56348, position (cm) = (31.6129,-66.5394,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 5.34585, position (cm) = (36.2972,-88.0818,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 9.15772e-06, position (cm) = (21.5193,-76.4406,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 31.5349, position (cm) = (42.5997,-65.9279,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 29.0043, position (cm) = (147.498,-97.9311,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 29.5826, position (cm) = (146.483,-96.6958,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 0.139543, position (cm) = (140.831,-99.5993,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 6.85393, position (cm) = (157.123,-109.97,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 13.8887, position (cm) = (136.554,-77.335,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 11.6109, position (cm) = (138.65,-81.0273,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 31.5683, position (cm) = (142.042,-82.1211,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 0.296772, position (cm) = (144.221,-72.8113,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.0558276, position (cm) = (120.51,-71.7474,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 2.36723, position (cm) = (18.4656,-126.961,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 10.1668, position (cm) = (12.2975,-147.297,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.316839, position (cm) = (-113.72,-59.7168,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.0562797, position (cm) = (-62.9515,-32.5343,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.308649, position (cm) = (-60.7186,-31.9424,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 3.65419, position (cm) = (-57.4337,-33.6273,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 4.73849, position (cm) = (-62.453,-32.7832,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 2.22923, position (cm) = (-53.7287,-43.5774,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.0632144, position (cm) = (-51.3083,-66.5873,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.0634442, position (cm) = (-50.0954,-53.4539,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 47.2897, position (cm) = (-57.8265,-55.0348,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 55.9715, position (cm) = (-57.9912,-55.6453,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.0926218, position (cm) = (-53.2526,-55.031,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 6.4574, position (cm) = (-55.0299,-51.4888,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 43.7133, position (cm) = (21.7267,-56.2181,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 2.69708, position (cm) = (18.0805,-59.6017,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 43.7133, position (cm) = (21.7267,-56.2181,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 41.7394, position (cm) = (23.694,-42.1374,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.170382, position (cm) = (41.8703,-35.2326,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 3.88806, position (cm) = (30.4179,-47.3616,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 6.6914, position (cm) = (27.0075,-29.8946,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.066139, position (cm) = (21.745,-12.8235,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 3.72356, position (cm) = (30.7954,-5.5198,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 5.21572, position (cm) = (44.0197,3.50822,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.118567, position (cm) = (26.965,-45.9226,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 0.0075585, position (cm) = (-4.75197,38.7326,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 1.03903e-05, position (cm) = (34.6977,12.9016,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 0.0755868, position (cm) = (30.0284,-3.45218,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.053881, position (cm) = (29.0297,-16.8376,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 1.54565, position (cm) = (34.0427,-33.791,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 6.04395, position (cm) = (-9.47683,-58.8995,200), weight = 0.000488281 + e-, kinetic energy (MeV) = 1.95484, position (cm) = (-9.44333,-58.7732,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 2.83215, position (cm) = (2.36548,-62.0122,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.0974612, position (cm) = (81.0574,-38.2829,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 2.61259, position (cm) = (79.6285,-38.6317,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.176588, position (cm) = (95.151,-48.1157,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 3.5599, position (cm) = (89.9249,-36.5099,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 5.50734, position (cm) = (89.3706,-43.6856,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 5.50734, position (cm) = (89.3706,-43.6856,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 1.62283, position (cm) = (77.6535,-48.8489,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.0594477, position (cm) = (46.7619,-41.7564,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 1.15823e-06, position (cm) = (24.3011,-31.6885,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 42.7638, position (cm) = (58.9216,-25.1054,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 42.2072, position (cm) = (60.2509,-18.3039,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 17.3346, position (cm) = (56.4837,-25.0699,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 42.2072, position (cm) = (60.2509,-18.3039,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 2.24545, position (cm) = (-85.0623,-91.1037,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 0.168086, position (cm) = (2.8648,-11.3461,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 0.000235817, position (cm) = (-9.81401,-10.9436,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.130047, position (cm) = (-12.1825,-6.20115,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.638013, position (cm) = (-7.82892,-14.9893,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 1.55792, position (cm) = (-16.386,-10.5078,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 1.91064, position (cm) = (8.25799,-23.995,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 4.56985, position (cm) = (7.52766,-25.2295,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 21.2219, position (cm) = (7.48834,-23.5329,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 29.3412, position (cm) = (7.57668,-24.4901,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 91.0237, position (cm) = (21.3619,-18.1964,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 91.0237, position (cm) = (21.3619,-18.1964,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 1.04678, position (cm) = (27.4992,-11.2758,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 49.2391, position (cm) = (25.5239,-4.19527,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 73.2636, position (cm) = (47.1499,-4.25753,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 58.9004, position (cm) = (49.2592,-1.24688,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 58.9004, position (cm) = (49.2592,-1.24688,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 2.30696, position (cm) = (19.1776,-14.4277,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 58.2426, position (cm) = (26.6705,-3.19327,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 89.7315, position (cm) = (25.2359,-4.99605,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 89.7315, position (cm) = (25.2359,-4.99605,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 91.0881, position (cm) = (23.4837,-7.08155,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 1.17834e-06, position (cm) = (11.346,-33.9226,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 2.56369, position (cm) = (15.8716,-6.62054,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.517026, position (cm) = (36.3853,-5.00775,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 26.2424, position (cm) = (37.5861,-14.717,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 26.2317, position (cm) = (39.1372,-16.5779,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 26.203, position (cm) = (39.0229,-16.1788,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.455417, position (cm) = (80.5474,-91.364,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 4.11097, position (cm) = (31.3969,-85.2051,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.0728177, position (cm) = (22.469,-69.4966,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.490775, position (cm) = (-35.8117,-87.9055,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.72756, position (cm) = (17.6393,-49.95,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 3.09106, position (cm) = (-1.71317,-51.7411,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 9.44362, position (cm) = (7.28918,-52.6992,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 5.24836, position (cm) = (-5.4262,-41.2104,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 13.4254, position (cm) = (-4.12676,-32.9419,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 9.0796, position (cm) = (-5.54366,-53.7262,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 2.79523, position (cm) = (-45.563,-29.8999,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 1.02431, position (cm) = (-3.77995,-37.5528,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 5.62734, position (cm) = (119.955,-188.661,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 0.217421, position (cm) = (113.259,-191.463,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.206634, position (cm) = (114.725,-178.705,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 5.25946, position (cm) = (115.086,-180.339,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 5.7552, position (cm) = (113.135,-185.982,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 3.04086, position (cm) = (163.195,-205.436,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.490291, position (cm) = (27.6178,-67.9398,200), weight = 6.10352e-05 + e-, kinetic energy (MeV) = 2.7232, position (cm) = (50.2459,-108.423,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 9.54464e-08, position (cm) = (-16.674,19.559,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 93.2807, position (cm) = (-0.822068,-14.6959,200), weight = 0.125 + neutron, kinetic energy (MeV) = 99.1394, position (cm) = (13.558,-7.02678,200), weight = 0.03125 + neutron, kinetic energy (MeV) = 99.3524, position (cm) = (19.7163,-13.9286,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 99.3524, position (cm) = (19.7163,-13.9286,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 99.3524, position (cm) = (19.7163,-13.9286,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 99.8296, position (cm) = (12.7147,-12.8545,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 7.47391, position (cm) = (-24.5527,19.7212,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 97.8966, position (cm) = (-55.3485,13.9887,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 97.8966, position (cm) = (-55.3485,13.9887,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 97.8966, position (cm) = (-55.3485,13.9887,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 97.8123, position (cm) = (-53.6817,14.7372,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 98.7726, position (cm) = (-52.4785,28.8001,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.202445, position (cm) = (-42.5311,26.0386,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.912351, position (cm) = (-35.8733,28.601,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 0.285655, position (cm) = (-47.0336,22.2826,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 2.87416, position (cm) = (15.3974,25.4126,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 41.9435, position (cm) = (10.0345,20.6463,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 5.50162, position (cm) = (31.6543,-14.1763,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 2.01056, position (cm) = (-42.1907,40.6625,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 24.0372, position (cm) = (-38.3955,38.2277,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.0860762, position (cm) = (-33.157,43.8215,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 2.5306, position (cm) = (-32.7416,43.6539,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 47.7711, position (cm) = (-32.5453,43.1842,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.924275, position (cm) = (4.4095,-28.3341,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 9.70587e-06, position (cm) = (100.073,12.0601,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 0.419018, position (cm) = (106.706,2.64104,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 1.47463, position (cm) = (72.761,1.18868,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 1.21538, position (cm) = (45.9686,7.58429,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 2.05244, position (cm) = (58.2344,24.8901,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 1.54794, position (cm) = (81.7794,-18.3306,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 8.62275e-06, position (cm) = (97.2248,-26.0942,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 1.79821, position (cm) = (90.9851,-19.4606,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 70.0893, position (cm) = (87.2062,-35.5012,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 70.0893, position (cm) = (87.2062,-35.5012,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 70.0893, position (cm) = (87.2062,-35.5012,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 8.23443, position (cm) = (129.418,-32.4772,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 8.23443, position (cm) = (129.418,-32.4772,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 10.6419, position (cm) = (130.024,-38.7924,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.0727025, position (cm) = (100.661,-11.3212,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 52.6805, position (cm) = (99.3189,-9.26243,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 52.5307, position (cm) = (99.4073,-9.02892,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 73.9747, position (cm) = (119.278,7.19307,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 74.2474, position (cm) = (127.747,15.7459,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 74.1808, position (cm) = (127.695,14.2832,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 73.6902, position (cm) = (109.953,5.34729,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 0.590195, position (cm) = (107.29,-1.43454,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 5.62248, position (cm) = (133.738,25.6355,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.342432, position (cm) = (109.597,23.3805,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 39.6275, position (cm) = (113.986,16.358,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 0.000297649, position (cm) = (106.173,7.93177,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 2.10785, position (cm) = (70.2166,14.7836,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 15.6734, position (cm) = (76.6028,17.4724,200), weight = 2.98023e-08 + neutron, kinetic energy (MeV) = 15.6734, position (cm) = (76.6028,17.4724,200), weight = 1.49012e-08 + neutron, kinetic energy (MeV) = 15.6734, position (cm) = (76.6028,17.4724,200), weight = 7.45058e-09 + neutron, kinetic energy (MeV) = 15.6734, position (cm) = (76.6028,17.4724,200), weight = 7.45058e-09 + gamma, kinetic energy (MeV) = 0.234958, position (cm) = (97.2645,7.29533,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 1.29252, position (cm) = (89.6164,6.36803,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 0.131901, position (cm) = (70.9863,0.112167,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 1.2147, position (cm) = (67.2759,-0.79971,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 33.2245, position (cm) = (88.3226,6.24074,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 33.2245, position (cm) = (88.3226,6.24074,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 1.00944, position (cm) = (27.5947,-8.02348,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 0.275515, position (cm) = (59.6379,37.6246,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 0.719067, position (cm) = (93.3037,-20.6309,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.447914, position (cm) = (101.476,7.11416,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 1.06195, position (cm) = (89.9045,24.4095,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 1.78875, position (cm) = (106.541,0.707442,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 31.4318, position (cm) = (93.377,11.7375,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 0.639041, position (cm) = (102.224,-52.2293,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.10464, position (cm) = (92.6231,-42.9399,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 0.736562, position (cm) = (103.056,-48.9159,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.438768, position (cm) = (117.398,-47.0484,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 0.0361345, position (cm) = (120.383,-39.4511,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.26498, position (cm) = (67.6996,-19.0272,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 54.5716, position (cm) = (88.6013,-27.296,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 16.9523, position (cm) = (90.6226,-26.9967,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 0.077661, position (cm) = (92.4092,-25.9301,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 0.101007, position (cm) = (89.7692,-19.4951,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 6.55768, position (cm) = (106.024,-38.113,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 16.2234, position (cm) = (103.695,-39.9147,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 75.638, position (cm) = (94.3704,-27.3873,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 75.638, position (cm) = (94.3704,-27.3873,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 75.638, position (cm) = (94.3704,-27.3873,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 40.8428, position (cm) = (115.531,-38.2015,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.0775416, position (cm) = (105.466,-28.3324,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 34.6546, position (cm) = (104.249,-37.8674,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 40.74, position (cm) = (125.531,-41.7285,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 40.74, position (cm) = (125.531,-41.7285,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 40.9102, position (cm) = (125.138,-37.2787,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 40.9102, position (cm) = (125.138,-37.2787,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 40.1928, position (cm) = (122.24,-34.0913,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 1.0815, position (cm) = (119.337,-32.5857,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 3.42291, position (cm) = (126.589,-36.2551,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 0.517782, position (cm) = (132.89,-30.6223,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.209785, position (cm) = (121.087,-37.8149,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 6.68266, position (cm) = (116.623,-36.5447,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 15.505, position (cm) = (118.576,-37.404,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 40.7686, position (cm) = (122.197,-33.0853,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 40.819, position (cm) = (121.934,-36.5488,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.57538, position (cm) = (59.9882,-33.6796,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 16.0339, position (cm) = (122.095,4.5939,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 0.0101919, position (cm) = (101.29,-22.5366,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 71.7087, position (cm) = (89.3492,34.6542,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 71.8649, position (cm) = (84.522,28.0159,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 71.8649, position (cm) = (84.522,28.0159,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 30.4732, position (cm) = (82.4435,25.2199,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 71.699, position (cm) = (82.3775,25.2892,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 99.0184, position (cm) = (56.4601,5.39684,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 1.94872, position (cm) = (-14.9995,13.2912,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 9.71334, position (cm) = (-8.87453,3.59996,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 31.6887, position (cm) = (-16.844,8.62764,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 30.8859, position (cm) = (-17.1803,7.12223,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 55.3416, position (cm) = (-17.1299,23.4658,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 55.9647, position (cm) = (-16.7374,17.0411,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 55.9647, position (cm) = (-16.7374,17.0411,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 83.3511, position (cm) = (4.81867,30.8383,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 83.4019, position (cm) = (2.45807,35.4526,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 83.5355, position (cm) = (0.578526,37.3994,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 83.5355, position (cm) = (0.578526,37.3994,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.47524, position (cm) = (0.748293,29.1367,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 0.605535, position (cm) = (-4.23325,31.2843,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 2.45961, position (cm) = (26.165,45.0085,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.896865, position (cm) = (15.2494,6.79298,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 2.55938e-05, position (cm) = (-24.6803,21.2505,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.609755, position (cm) = (-5.78712,68.0722,200), weight = 0.03125 + neutron, kinetic energy (MeV) = 35.7334, position (cm) = (-6.26345,68.0915,200), weight = 0.03125 + neutron, kinetic energy (MeV) = 3.7782, position (cm) = (-23.8831,16.9559,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 3.36589e-06, position (cm) = (-58.1244,-6.36576,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 1.12523e-06, position (cm) = (-63.1,-19.4956,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 2.71677, position (cm) = (-69.2898,-26.8536,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 4.96738, position (cm) = (-69.207,-29.0442,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.0794981, position (cm) = (-72.0289,-48.5203,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 16.0963, position (cm) = (-53.7589,-78.2286,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 16.291, position (cm) = (-53.7905,-78.7472,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0691245, position (cm) = (-62.2667,-63.1143,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 2.46842, position (cm) = (-59.8253,-69.7086,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 3.13033, position (cm) = (-60.9506,-68.4356,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 1.80616, position (cm) = (-55.3506,-69.9459,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 2.18095, position (cm) = (-34.78,-89.8978,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 3.59714, position (cm) = (-19.3557,-111.973,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 0.250846, position (cm) = (-28.2722,-107.499,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.127817, position (cm) = (-72.4482,-68.9561,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 1.45055e-05, position (cm) = (-63.1182,-61.5407,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.56815, position (cm) = (-63.489,-69.1054,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 5.80707, position (cm) = (-81.8089,-68.3236,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.275831, position (cm) = (-89.3262,-10.5011,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.261592, position (cm) = (-88.4461,-6.10998,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 12.5586, position (cm) = (-95.0502,-12.6231,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 12.5586, position (cm) = (-95.0502,-12.6231,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 1.21243, position (cm) = (-65.1204,-34.3387,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 56.0558, position (cm) = (-65.697,-52.0369,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.673131, position (cm) = (-61.568,-44.8618,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 5.01065, position (cm) = (-64.9957,-45.3975,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 5.06948, position (cm) = (-58.0486,-51.4593,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 6.95187, position (cm) = (-60.7832,-49.671,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 12.8885, position (cm) = (-67.8981,-36.6224,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 17.1856, position (cm) = (-65.4529,-36.4998,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.884232, position (cm) = (-75.2047,-50.4755,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 56.1854, position (cm) = (-84.0704,-64.6135,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.0799657, position (cm) = (-87.5172,-23.5046,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.0583481, position (cm) = (-55.6109,-0.503666,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.611598, position (cm) = (-85.2542,-22.8488,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 52.9059, position (cm) = (-92.4538,-26.0997,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 6.87335, position (cm) = (-88.3207,-16.9957,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 0.000243834, position (cm) = (-145.478,7.20947,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.264942, position (cm) = (-195.306,14.6025,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 2.76952, position (cm) = (-197.784,11.2096,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.256625, position (cm) = (-195.181,14.5707,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 1.3957, position (cm) = (-198.582,15.1828,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.11558, position (cm) = (-203.91,7.10567,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 12.3872, position (cm) = (-195.455,9.99794,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 43.3379, position (cm) = (-199.872,12.4529,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 43.1828, position (cm) = (-198.783,12.8869,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.179296, position (cm) = (-202.874,8.71548,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 0.643164, position (cm) = (-201.213,15.9916,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 2.97267, position (cm) = (-199.32,12.4462,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.326274, position (cm) = (-212.959,13.8037,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.293915, position (cm) = (-201.06,11.488,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 43.1192, position (cm) = (-204.026,11.7069,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.0947517, position (cm) = (-192.963,13.5325,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.735554, position (cm) = (-183.666,-4.18331,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 38.8188, position (cm) = (-183.721,-4.18899,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 38.8188, position (cm) = (-183.721,-4.18899,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 2.25336, position (cm) = (-99.142,-73.9675,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 3.26366, position (cm) = (-123.961,-77.9334,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.358095, position (cm) = (-100.921,-18.7622,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 0.720498, position (cm) = (-46.5699,9.75455,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.330253, position (cm) = (-41.0853,10.1864,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 2.0073, position (cm) = (-49.864,8.22005,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 3.17938, position (cm) = (-45.2879,11.2622,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.266575, position (cm) = (-11.7796,47.052,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.921315, position (cm) = (-135.305,0.605697,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.0807686, position (cm) = (-126.161,1.9799,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 3.33461, position (cm) = (-140.143,13.5769,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 0.339343, position (cm) = (-155.459,-11.8564,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 13.0669, position (cm) = (-141.877,14.0973,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 55.1236, position (cm) = (-105.633,2.60041,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.59289, position (cm) = (-104.858,5.6297,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.104698, position (cm) = (-111.342,20.9509,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 44.0587, position (cm) = (-110.825,-0.0974112,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 44.0587, position (cm) = (-110.825,-0.0974112,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.21137, position (cm) = (-50.4909,5.12075,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 6.80055e-05, position (cm) = (-13.1612,-43.5691,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 1.41799, position (cm) = (-23.3202,-15.5705,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 4.30555, position (cm) = (-57.4795,-1.47067,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.274463, position (cm) = (-70.4302,9.21617,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 5.98322e-05, position (cm) = (-82.7657,6.33602,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 6.51458, position (cm) = (-20.6399,40.5625,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 17.0472, position (cm) = (-34.9362,15.8907,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 17.0472, position (cm) = (-34.9362,15.8907,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 17.5512, position (cm) = (-28.1185,25.7944,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 17.5512, position (cm) = (-28.1185,25.7944,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 1.70256, position (cm) = (-28.9639,9.73797,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 1.60444, position (cm) = (-22.8344,19.6356,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.709044, position (cm) = (-24.1606,26.6008,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 0.0120472, position (cm) = (13.2243,15.8509,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 76.6454, position (cm) = (8.71933,57.6462,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 78.7612, position (cm) = (-36.628,42.2023,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 77.987, position (cm) = (-36.0048,44.7145,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 77.987, position (cm) = (-36.0048,44.7145,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 9.55444, position (cm) = (-108.068,13.8515,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 0.846945, position (cm) = (-54.0737,19.8928,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 0.267041, position (cm) = (-45.1795,22.9363,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.0586006, position (cm) = (-69.8684,35.7079,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 3.94635, position (cm) = (-79.5997,40.3801,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 79.2649, position (cm) = (-64.892,23.0771,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 4.74521, position (cm) = (123.856,-5.22669,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.861821, position (cm) = (118.467,-6.04491,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 3.20153, position (cm) = (121.419,-13.2193,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 3.6995, position (cm) = (128.757,5.67316,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.544548, position (cm) = (122.644,19.0695,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.3815, position (cm) = (123.625,7.60294,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 4.36565, position (cm) = (97.9444,22.3884,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 6.66291, position (cm) = (100.422,21.0548,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 6.66291, position (cm) = (100.422,21.0548,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 0.805149, position (cm) = (100.029,7.70682,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 0.734193, position (cm) = (137.529,0.623941,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 1.483, position (cm) = (87.3722,31.2156,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 5.88083, position (cm) = (75.7963,20.3759,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 2.46923, position (cm) = (109.637,-102.127,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 1.59884, position (cm) = (-6.15505,94.602,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 1.1072, position (cm) = (-19.6752,129.933,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.0934604, position (cm) = (-22.186,123.869,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.446513, position (cm) = (-15.0891,110.191,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 2.02171, position (cm) = (-21.8986,119.538,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.359443, position (cm) = (-32.766,132.141,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 2.90883, position (cm) = (-32.5308,132.011,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 7.68124, position (cm) = (-32.7996,131.923,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 11.5559, position (cm) = (-26.6304,136.122,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 0.000206877, position (cm) = (-32.3863,131.599,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.112385, position (cm) = (-20.1091,124.027,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.417286, position (cm) = (-32.9882,123.382,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 1.80171, position (cm) = (-33.6232,121.751,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 7.97862, position (cm) = (-28.8607,115.722,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 5.86148, position (cm) = (-48.0263,131.863,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.0852892, position (cm) = (-17.5009,162.362,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 0.00287863, position (cm) = (-29.3427,174.838,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.0462146, position (cm) = (-64.7226,246.615,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 12.5681, position (cm) = (-63.7399,247.551,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 12.4128, position (cm) = (-61.0478,248.451,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.634559, position (cm) = (-30.0383,132.049,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 41.113, position (cm) = (4.97555,128.746,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.0863881, position (cm) = (12.0328,160.369,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.20195, position (cm) = (80.4631,178.926,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 3.16795, position (cm) = (78.8758,150.103,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 2.08224, position (cm) = (78.9573,164.151,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 1.36498, position (cm) = (73.9627,164.978,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 6.53561, position (cm) = (70.3622,152.544,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 0.00150059, position (cm) = (62.8539,144.948,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 1.78982, position (cm) = (79.4656,152.116,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 30.9377, position (cm) = (100.288,133.496,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 33.0383, position (cm) = (90.7654,144.061,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 2.01222, position (cm) = (61.2203,131.723,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 1.50963, position (cm) = (44.4746,111.774,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 3.80218, position (cm) = (57.9713,129.003,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 33.565, position (cm) = (60.0359,138.392,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.266611, position (cm) = (58.2389,138.65,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 2.54258, position (cm) = (65.9021,141.2,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 2.28154, position (cm) = (58.4121,136.336,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.111758, position (cm) = (65.554,138.606,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 0.661255, position (cm) = (64.0577,129.189,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 0.508242, position (cm) = (51.4825,125.622,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 1.30898, position (cm) = (70.0791,134.392,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 3.19337, position (cm) = (70.0818,136.026,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 13.3587, position (cm) = (74.3986,133.67,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 34.0048, position (cm) = (65.6445,143.71,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 34.0259, position (cm) = (66.1926,144.253,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 0.0435914, position (cm) = (60.5899,133.667,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.244058, position (cm) = (70.7598,128.513,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 5.05584, position (cm) = (62.2466,149.283,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 1.08224, position (cm) = (196.565,137.511,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 6.48231e-05, position (cm) = (95.8166,174.476,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 2.39997, position (cm) = (112.023,150.894,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.327703, position (cm) = (93.2915,193.705,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 27.0066, position (cm) = (169.982,179.792,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 1.41047, position (cm) = (167.498,175.992,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 0.488948, position (cm) = (161.684,180.914,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 21.7494, position (cm) = (163.682,179.207,200), weight = 1.49012e-08 + neutron, kinetic energy (MeV) = 21.7494, position (cm) = (163.682,179.207,200), weight = 1.49012e-08 + neutron, kinetic energy (MeV) = 21.7494, position (cm) = (163.682,179.207,200), weight = 2.98023e-08 + gamma, kinetic energy (MeV) = 5.42612, position (cm) = (160.665,169.763,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 0.258707, position (cm) = (168.906,175.566,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 0.14863, position (cm) = (153.033,140.611,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 0.147666, position (cm) = (174.609,184.256,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 0.00280553, position (cm) = (180.523,159.348,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 0.213468, position (cm) = (194.027,197.041,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 3.06048, position (cm) = (160.276,164.083,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 1.04705e-05, position (cm) = (149.413,170.79,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 0.208195, position (cm) = (153.009,171.311,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 0.351512, position (cm) = (130.148,160.964,200), weight = 1.19209e-07 + gamma, kinetic energy (MeV) = 0.0939137, position (cm) = (78.9456,153.394,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 2.5951, position (cm) = (76.9951,211.264,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 24.2588, position (cm) = (112.29,222.641,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.777066, position (cm) = (118.137,151.875,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 27.1361, position (cm) = (116.607,150.093,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 1.70913, position (cm) = (66.7119,201.861,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.0884481, position (cm) = (39.1902,143.06,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 5.80687, position (cm) = (37.0803,141.079,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 3.69799, position (cm) = (37.9583,140.735,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 0.149238, position (cm) = (39.9576,92.6541,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 1.49617, position (cm) = (34.5121,120.941,200), weight = 4.76837e-07 + e-, kinetic energy (MeV) = 3.04503, position (cm) = (41.9019,114.491,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 9.74517, position (cm) = (41.0471,120.446,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 7.53157, position (cm) = (53.9549,132.323,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 12.5759, position (cm) = (77.7669,153.21,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.143776, position (cm) = (66.0001,146.805,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.725881, position (cm) = (73.0718,148.542,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 7.49338e-05, position (cm) = (48.1834,168.977,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.909186, position (cm) = (49.7277,169.612,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 6.692, position (cm) = (51.4158,174.523,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 13.9722, position (cm) = (59.7741,164.483,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.250125, position (cm) = (35.2863,191.213,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 2.94975, position (cm) = (66.2456,167.076,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 0.747064, position (cm) = (63.4161,163.989,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.195226, position (cm) = (53.1197,176.679,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 1.36036, position (cm) = (60.4402,170.194,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 15.2857, position (cm) = (66.6338,172.512,200), weight = 4.76837e-07 + neutron, kinetic energy (MeV) = 15.2857, position (cm) = (66.6338,172.512,200), weight = 4.76837e-07 + gamma, kinetic energy (MeV) = 0.0883564, position (cm) = (-51.7381,38.446,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.157716, position (cm) = (-2.50176,52.7332,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 1.55459, position (cm) = (-21.3657,31.7762,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 32.9046, position (cm) = (-19.1852,45.2405,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 34.0457, position (cm) = (-9.79772,49.1763,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 34.0218, position (cm) = (-9.86421,48.6525,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.680691, position (cm) = (-1.34927,47.4805,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.47702, position (cm) = (-13.5437,53.5288,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.171254, position (cm) = (-3.3372,55.4588,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.0801599, position (cm) = (-50.7652,4.71962,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 4.2576, position (cm) = (-3.24531,31.7807,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 1.07713, position (cm) = (7.72415,34.1759,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 22.7472, position (cm) = (12.0494,27.1609,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.0723796, position (cm) = (4.06117,52.6267,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 0.0174435, position (cm) = (24.8569,75.0919,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.00123398, position (cm) = (23.5387,77.5896,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.0961695, position (cm) = (59.5313,93.4956,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.118424, position (cm) = (26.3057,60.3304,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 2.0557, position (cm) = (26.7644,65.0097,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 2.29885, position (cm) = (34.7636,59.1967,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 3.73119, position (cm) = (68.4009,81.2616,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 0.318595, position (cm) = (29.3731,58.7684,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 0.148666, position (cm) = (46.2631,67.5674,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 7.78611, position (cm) = (40.177,66.5934,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 5.32661, position (cm) = (16.6628,50.2655,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 8.0449, position (cm) = (-6.91499,61.6645,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 54.2297, position (cm) = (0.835558,44.7078,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 54.331, position (cm) = (-0.874036,43.9139,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 8.79129e-07, position (cm) = (59.5589,34.5976,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 15.8422, position (cm) = (11.9379,13.7843,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 15.7781, position (cm) = (12.3824,13.7732,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 15.9505, position (cm) = (18.8806,11.5515,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 12.5789, position (cm) = (17.0416,13.638,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 12.5789, position (cm) = (17.0416,13.638,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 0.0246378, position (cm) = (16.3431,11.0632,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 8.48826, position (cm) = (14.9306,11.8799,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 9.268, position (cm) = (17.9596,12.1145,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 4.23884, position (cm) = (9.15826,24.2485,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.123327, position (cm) = (-25.8329,-21.5998,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.408686, position (cm) = (21.9867,24.0432,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.852031, position (cm) = (29.0106,28.3023,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.29934, position (cm) = (29.9113,15.4807,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.141891, position (cm) = (36.8523,53.4029,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.501156, position (cm) = (34.8837,52.773,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 6.52712, position (cm) = (28.9343,52.3566,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.428571, position (cm) = (34.4886,46.4613,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.449764, position (cm) = (28.4682,57.175,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.169326, position (cm) = (26.1556,54.965,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 0.479702, position (cm) = (31.3852,44.6543,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 1.91054, position (cm) = (50.6772,69.7166,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.227843, position (cm) = (-18.5541,53.0231,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.297156, position (cm) = (-16.0501,38.7776,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.53174, position (cm) = (-20.4305,67.9217,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 54.8578, position (cm) = (106.397,47.8341,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 16.879, position (cm) = (99.6451,47.6567,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 16.879, position (cm) = (99.6451,47.6567,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 55.3309, position (cm) = (103.74,57.0085,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 55.6897, position (cm) = (114.596,54.9858,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 4.44183, position (cm) = (79.3179,29.8456,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 0.303035, position (cm) = (113.202,1.22373,200), weight = 3.05176e-05 + e-, kinetic energy (MeV) = 4.75936, position (cm) = (79.7039,47.7971,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 54.0463, position (cm) = (88.0126,72.0035,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 54.5947, position (cm) = (88.3197,63.2069,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 0.587532, position (cm) = (84.5297,65.7516,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 38.2985, position (cm) = (87.2405,62.0643,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 55.0278, position (cm) = (92.2967,60.5097,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.137902, position (cm) = (92.4926,57.8386,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 35.3059, position (cm) = (92.307,60.3884,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 1.55755, position (cm) = (139.6,36.4786,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 35.9752, position (cm) = (42.9586,45.4936,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.352467, position (cm) = (8.65408,53.4196,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.0633905, position (cm) = (55.5039,12.7244,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.698321, position (cm) = (24.007,26.3535,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 84.0551, position (cm) = (3.27103,-11.8812,200), weight = 0.125 + gamma, kinetic energy (MeV) = 3.193, position (cm) = (-73.9928,-106.222,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 0.00114226, position (cm) = (-59.9178,-106.229,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 3.97972, position (cm) = (-50.0205,-74.5743,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 0.105268, position (cm) = (-36.1978,-55.0846,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.102449, position (cm) = (-82.5666,-44.9088,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 7.40183, position (cm) = (-63.8274,-71.533,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 0.175921, position (cm) = (-72.5068,-45.0288,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 21.8104, position (cm) = (-68.8352,-57.1219,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 15.2433, position (cm) = (-79.4936,-38.2288,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 0.0049219, position (cm) = (-71.3136,-44.9861,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 5.5424, position (cm) = (-82.686,-43.5545,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 32.0928, position (cm) = (33.14,-11.5046,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 32.0928, position (cm) = (33.14,-11.5046,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 32.5555, position (cm) = (34.5063,-10.0309,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.0787916, position (cm) = (28.4443,-7.31592,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.215391, position (cm) = (31.8681,-7.9421,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 5.36247, position (cm) = (3.66146,-32.9044,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 10.8029, position (cm) = (43.0249,-5.08585,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 10.8029, position (cm) = (43.0249,-5.08585,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 32.2792, position (cm) = (33.361,-9.75591,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 32.5455, position (cm) = (34.5546,-10.0083,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 2.6058, position (cm) = (-8.90144,-3.22917,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 7.40039, position (cm) = (-13.1577,-12.4839,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 19.3077, position (cm) = (-5.84803,6.69582,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.214545, position (cm) = (-16.7633,-5.7213,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 0.106007, position (cm) = (-15.2196,-66.7963,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.531017, position (cm) = (-3.4871,-27.7498,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 9.45397, position (cm) = (-8.08516,-38.7454,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 34.9796, position (cm) = (-4.35693,-30.9829,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 30.4846, position (cm) = (-10.6639,-47.0075,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 35.0724, position (cm) = (-0.549347,-37.3598,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 0.146385, position (cm) = (-3.24447,-37.3759,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 1.01923e-05, position (cm) = (-6.11951,-52.6817,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 1.58009, position (cm) = (-2.72506,-15.2395,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 33.5405, position (cm) = (3.97747,-38.6304,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 24.6653, position (cm) = (-25.4772,-35.215,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 1.29381, position (cm) = (-26.1215,-38.0402,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 0.0359062, position (cm) = (-17.612,-32.9544,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 20.7665, position (cm) = (-11.9487,-50.9555,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 0.000147071, position (cm) = (-17.7148,-61.3795,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.0967748, position (cm) = (-170.692,-143.439,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 23.4019, position (cm) = (-210.288,-128.145,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.212566, position (cm) = (-205.512,-148.817,200), weight = 2.38419e-07 + gamma, kinetic energy (MeV) = 0.21637, position (cm) = (-161.338,-141.929,200), weight = 2.38419e-07 + neutron, kinetic energy (MeV) = 3.12946, position (cm) = (-160.495,-115.106,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 1.10728, position (cm) = (-207.33,-186.984,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 2.35296, position (cm) = (-119.963,-252.155,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 0.000122754, position (cm) = (-128.487,-219.2,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.104867, position (cm) = (-94.7614,-218.804,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.0721374, position (cm) = (-89.2134,-221.977,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.204459, position (cm) = (-101.72,-217.289,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 3.54164, position (cm) = (-104.947,-169.788,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.228753, position (cm) = (-101.787,-163.184,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 53.8173, position (cm) = (-130.65,-214.007,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.0657044, position (cm) = (-89.3173,101.497,200), weight = 9.53674e-07 + gamma, kinetic energy (MeV) = 7.08435, position (cm) = (-72.8413,115.418,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 25.302, position (cm) = (-84.2773,8.43039,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 2.65404e-06, position (cm) = (-86.8266,-8.1034,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 6.92412, position (cm) = (-15.919,-80.2283,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 53.7334, position (cm) = (35.6096,-164.395,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 0.151601, position (cm) = (37.7934,-171.441,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 13.9032, position (cm) = (32.7622,-163.695,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 53.7334, position (cm) = (35.6096,-164.395,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 53.8153, position (cm) = (30.774,-140.481,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 0.0327241, position (cm) = (62.9969,-141.77,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 53.7285, position (cm) = (29.5686,-138.559,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 2.40885, position (cm) = (11.9823,-115.184,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.0601556, position (cm) = (19.9912,-74.4688,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.692916, position (cm) = (3.96068,-85.9829,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 2.19524, position (cm) = (10.3884,-99.3587,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 8.81709, position (cm) = (9.1884,-101.657,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 6.54372, position (cm) = (-30.3258,-68.8469,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.134177, position (cm) = (-55.5747,-103.264,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 13.2095, position (cm) = (-47.1287,-83.5043,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.317236, position (cm) = (-19.3203,-94.5198,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 1.29372, position (cm) = (-27.564,-82.3213,200), weight = 0.000488281 + e-, kinetic energy (MeV) = 5.82759, position (cm) = (-27.0016,-82.27,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 7.81435, position (cm) = (-11.3308,-63.0325,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 98.552, position (cm) = (-82.0933,13.2705,200), weight = 0.0625 + neutron, kinetic energy (MeV) = 98.4855, position (cm) = (-87.3505,9.65374,200), weight = 0.03125 + neutron, kinetic energy (MeV) = 1.5777, position (cm) = (-66.0703,-0.473482,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 98.2966, position (cm) = (-64.8967,15.9372,200), weight = 0.0625 + neutron, kinetic energy (MeV) = 6.24215, position (cm) = (-84.0412,46.7594,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 51.3615, position (cm) = (-138.777,51.0502,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 0.302177, position (cm) = (-142.982,46.9464,200), weight = 0.0078125 + e-, kinetic energy (MeV) = 5.38336, position (cm) = (-142.936,46.853,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 10.8168, position (cm) = (-144.135,52.7463,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 51.6759, position (cm) = (-148.126,54.6209,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 0.0116353, position (cm) = (-127.973,23.3485,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.0584768, position (cm) = (-74.4359,54.4441,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 0.849083, position (cm) = (-79.4575,46.1937,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.162002, position (cm) = (-63.8184,48.5655,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 5.67637e-05, position (cm) = (-102.566,56.7162,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 0.00919631, position (cm) = (-100.641,47.1717,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 2.01159, position (cm) = (-119.559,15.3525,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 11.2774, position (cm) = (-89.038,40.7671,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.305919, position (cm) = (-94.0401,43.5795,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.33196, position (cm) = (-98.3051,33.3894,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 5.93384, position (cm) = (-91.0621,40.8744,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 11.2774, position (cm) = (-89.038,40.7671,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 1.53164, position (cm) = (-90.5417,33.404,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 5.8197, position (cm) = (-88.6331,44.3624,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.0406122, position (cm) = (-94.9419,10.6292,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 97.9235, position (cm) = (-32.1697,82.2202,200), weight = 0.03125 + neutron, kinetic energy (MeV) = 1.37273, position (cm) = (-2.62254,-81.5257,200), weight = 2.98023e-08 + neutron, kinetic energy (MeV) = 10.0778, position (cm) = (0.439228,-82.5822,200), weight = 1.19209e-07 + neutron, kinetic energy (MeV) = 1.7027, position (cm) = (-1.59537,-78.4306,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 0.0693703, position (cm) = (26.604,-69.9253,200), weight = 1.49012e-08 + gamma, kinetic energy (MeV) = 0.215027, position (cm) = (39.1387,-77.6311,200), weight = 1.49012e-08 + neutron, kinetic energy (MeV) = 2.67564e-06, position (cm) = (38.0241,-82.3111,200), weight = 1.49012e-08 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (28.3183,-67.5434,200), weight = 1.49012e-08 + gamma, kinetic energy (MeV) = 0.0704169, position (cm) = (38.6722,-66.5391,200), weight = 7.45058e-09 + gamma, kinetic energy (MeV) = 0.0882348, position (cm) = (36.6456,-68.9669,200), weight = 7.45058e-09 + gamma, kinetic energy (MeV) = 3.2817, position (cm) = (37.8787,-59.778,200), weight = 7.45058e-09 + neutron, kinetic energy (MeV) = 7.24074, position (cm) = (40.444,-67.3782,200), weight = 7.45058e-09 + neutron, kinetic energy (MeV) = 6.42787, position (cm) = (22.5432,-62.5567,200), weight = 2.98023e-08 + gamma, kinetic energy (MeV) = 0.256478, position (cm) = (6.90931,-58.5964,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 0.220629, position (cm) = (8.19605,-76.3141,200), weight = 2.98023e-08 + gamma, kinetic energy (MeV) = 0.404133, position (cm) = (30.9284,-78.4757,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 1.1927, position (cm) = (32.0299,-86.8603,200), weight = 5.96046e-08 + gamma, kinetic energy (MeV) = 0.432509, position (cm) = (38.3546,-41.1442,200), weight = 3.72529e-09 + gamma, kinetic energy (MeV) = 1.44708, position (cm) = (33.8751,-31.2726,200), weight = 3.72529e-09 + neutron, kinetic energy (MeV) = 11.7587, position (cm) = (37.9314,-31.1301,200), weight = 9.31323e-10 + neutron, kinetic energy (MeV) = 11.7587, position (cm) = (37.9314,-31.1301,200), weight = 9.31323e-10 + neutron, kinetic energy (MeV) = 11.8468, position (cm) = (39.0405,-33.2854,200), weight = 1.86265e-09 + gamma, kinetic energy (MeV) = 0.112211, position (cm) = (40.8395,-34.3129,200), weight = 1.86265e-09 + gamma, kinetic energy (MeV) = 0.979184, position (cm) = (40.9047,-34.5484,200), weight = 1.86265e-09 + gamma, kinetic energy (MeV) = 0.386714, position (cm) = (54.9465,-57.8523,200), weight = 3.72529e-09 + gamma, kinetic energy (MeV) = 0.785192, position (cm) = (72.2482,-66.2619,200), weight = 9.31323e-10 + gamma, kinetic energy (MeV) = 5.19726, position (cm) = (53.9723,-23.4097,200), weight = 5.96046e-08 + neutron, kinetic energy (MeV) = 0.575873, position (cm) = (12.0463,1.93006,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 6.05172, position (cm) = (-1.97419,-5.17108,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 6.36513, position (cm) = (-6.94694,-2.77579,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 36.5852, position (cm) = (-3.75964,-5.79413,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 36.5852, position (cm) = (-3.75964,-5.79413,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 36.5852, position (cm) = (-3.75964,-5.79413,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 36.5852, position (cm) = (-3.75964,-5.79413,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 6.37568, position (cm) = (-0.551633,9.43424,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 87.7241, position (cm) = (7.19024,34.1008,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 13.4361, position (cm) = (46.9979,-29.566,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.5242, position (cm) = (20.4604,16.8117,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 0.00611097, position (cm) = (18.3615,17.4286,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 3.79454, position (cm) = (20.499,17.6781,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 10.9541, position (cm) = (1.99974,43.7049,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 10.9541, position (cm) = (1.99974,43.7049,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 10.9541, position (cm) = (1.99974,43.7049,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 9.02227, position (cm) = (7.49901,33.4911,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 3.06703, position (cm) = (33.5517,-20.3956,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 42.2985, position (cm) = (15.8287,5.45696,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.059127, position (cm) = (23.2244,10.8864,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.0823406, position (cm) = (26.5548,21.553,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 1.06919, position (cm) = (25.8091,14.9135,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 1.63581e-07, position (cm) = (58.2953,14.6703,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 1.49678, position (cm) = (39.4249,19.4267,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 2.25552, position (cm) = (36.5306,16.451,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 0.0499221, position (cm) = (7.18294,12.8636,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.247773, position (cm) = (18.7213,8.04345,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.166571, position (cm) = (30.3666,31.3408,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 6.20067, position (cm) = (33.7917,16.3592,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 5.15804, position (cm) = (4.89688,10.7211,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 7.11568, position (cm) = (10.6887,15.2435,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 38.7194, position (cm) = (-98.075,-59.387,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 9.34986, position (cm) = (-94.1028,-57.8634,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.0864011, position (cm) = (-114.31,-52.4664,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.130505, position (cm) = (-101.638,-8.33451,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 0.0716746, position (cm) = (-104.956,-55.5383,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 2.56517, position (cm) = (-106.066,-61.1491,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 1.14223, position (cm) = (-70.5307,-46.944,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 0.907395, position (cm) = (-112.326,-44.8138,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 15.9822, position (cm) = (-140.434,-78.9612,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.956418, position (cm) = (-129.701,-74.4926,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 3.03432, position (cm) = (-128.9,-74.5428,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 3.01174, position (cm) = (-100.464,-52.6046,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 15.5516, position (cm) = (-108.988,-56.4122,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.467483, position (cm) = (-91.4418,-47.8305,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 0.00758118, position (cm) = (-60.0109,-70.2176,200), weight = 0.0078125 + gamma, kinetic energy (MeV) = 1.65798, position (cm) = (-39.4602,11.5641,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 0.0317008, position (cm) = (-31.2759,-28.9524,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 33.9481, position (cm) = (-10.4947,-63.269,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 31.6154, position (cm) = (-15.2057,-65.3539,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 31.6154, position (cm) = (-15.2057,-65.3539,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 31.6154, position (cm) = (-15.2057,-65.3539,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.694315, position (cm) = (-1.07285,-60.4444,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 32.3076, position (cm) = (-22.3409,-62.2122,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 1.19498, position (cm) = (-17.742,-60.2409,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 0.990365, position (cm) = (-21.591,-59.8159,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.281037, position (cm) = (-8.85552,-58.38,200), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 2.45588, position (cm) = (-10.7065,-60.5602,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.461542, position (cm) = (-8.00405,-56.5865,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.39727, position (cm) = (-10.5497,-68.8289,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.0469441, position (cm) = (-7.45089,-68.0547,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 8.29625, position (cm) = (-3.47712,-75.7974,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.14403, position (cm) = (-15.7516,-60.8496,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.469147, position (cm) = (-13.9626,-60.0157,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 0.00249021, position (cm) = (-12.2035,-51.3951,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 1.51462, position (cm) = (-33.6498,-53.8452,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 2.87246, position (cm) = (-30.3828,-56.7613,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.0784463, position (cm) = (9.47944,-67.4176,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 0.142443, position (cm) = (4.49784,-78.8001,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 1.77824, position (cm) = (-3.78763,-79.6125,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.843621, position (cm) = (-4.93349,-91.2881,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.783526, position (cm) = (-8.84812,-63.2447,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 0.09403, position (cm) = (-9.1809,-69.2617,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 1.0462, position (cm) = (80.4186,17.5984,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 2.62784, position (cm) = (71.423,17.3593,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.102553, position (cm) = (82.4431,12.4538,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 2.38272, position (cm) = (73.1837,11.1463,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 57.4142, position (cm) = (83.3212,28.1557,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 56.8112, position (cm) = (80.9971,27.8327,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 26.5005, position (cm) = (74.9893,31.6365,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 1.03042, position (cm) = (82.7887,28.0119,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 4.55748, position (cm) = (82.6693,27.9259,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 9.01009, position (cm) = (82.9043,28.0699,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 55.9564, position (cm) = (57.6165,34.2569,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 55.9564, position (cm) = (57.6165,34.2569,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 1.41522, position (cm) = (55.3413,52.8629,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 4.14818, position (cm) = (60.9283,50.0586,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 51.4188, position (cm) = (73.8694,42.2695,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.183052, position (cm) = (72.6962,41.3939,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 0.00528351, position (cm) = (57.5537,39.652,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 18.5493, position (cm) = (75.1948,42.2022,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 55.9564, position (cm) = (57.6165,34.2569,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 55.9564, position (cm) = (57.6165,34.2569,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 0.0301256, position (cm) = (53.8141,26.1317,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 56.3119, position (cm) = (4.10573,-34.1872,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 56.2546, position (cm) = (4.20133,-33.6739,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 1.31337, position (cm) = (14.7964,-19.7321,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 12.2465, position (cm) = (-10.8265,3.64785,200), weight = 0.00195312 + neutron, kinetic energy (MeV) = 54.666, position (cm) = (-10.1802,3.82243,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.0748071, position (cm) = (-3.87851,-15.2654,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.0686814, position (cm) = (2.42549,-19.6054,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 55.907, position (cm) = (-5.56306,-15.0726,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 1.36107, position (cm) = (-1.40512,-3.71428,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 15.1567, position (cm) = (2.02647,3.23153,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 46.9284, position (cm) = (7.49478,-63.4961,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 46.9284, position (cm) = (7.49478,-63.4961,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.266041, position (cm) = (7.7694,29.7509,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.17526, position (cm) = (0.78922,30.7152,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.0852364, position (cm) = (-0.778733,32.8232,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 37.7499, position (cm) = (2.69366,-41.0205,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 38.0573, position (cm) = (2.782,-41.8252,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 0.58795, position (cm) = (1.79196,-35.2589,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.27792, position (cm) = (6.2411,-33.7337,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 4.52939, position (cm) = (3.13787,-43.9154,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 6.88653, position (cm) = (-1.11739,-38.6304,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 3.11584, position (cm) = (-5.64235,-41.7314,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 19.0379, position (cm) = (-5.54341,-41.4531,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 46.348, position (cm) = (1.21881,-50.5821,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.152528, position (cm) = (-1.51011,-49.216,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.246392, position (cm) = (5.96528,-45.3169,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.0805284, position (cm) = (-5.17584,-48.4323,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 3.25194, position (cm) = (-30.9187,17.2699,200), weight = 0.0625 + neutron, kinetic energy (MeV) = 15.6142, position (cm) = (-67.2198,21.158,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.2307, position (cm) = (-61.0868,19.2697,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 10.5021, position (cm) = (-59.4217,18.178,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.258785, position (cm) = (-68.9083,-60.4735,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 0.230842, position (cm) = (-32.4522,16.1142,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.196487, position (cm) = (-31.9803,1.72123,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 0.00125041, position (cm) = (-63.1752,10.5764,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 14.0563, position (cm) = (-74.9775,14.3193,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 14.0659, position (cm) = (-82.5985,9.68442,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 15.8523, position (cm) = (-82.7377,9.55246,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 15.8523, position (cm) = (-82.7377,9.55246,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 15.8523, position (cm) = (-82.7377,9.55246,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 7.98683, position (cm) = (-89.0705,-17.8378,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.829637, position (cm) = (-84.7778,-8.75507,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 3.42897, position (cm) = (-84.2802,-13.0758,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.175127, position (cm) = (-92.0845,-17.8029,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 2.41819, position (cm) = (-82.6868,-8.06666,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 1.08511, position (cm) = (-80.8633,-7.96678,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 2.33159, position (cm) = (6.31589,1.76852,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 0.262626, position (cm) = (-3.35081,-33.3508,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 0.0163708, position (cm) = (-31.4982,3.07788,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 2.74703, position (cm) = (-9.30784,2.23549,200), weight = 0.00390625 + neutron, kinetic energy (MeV) = 99.6275, position (cm) = (1.69638,1.5566,200), weight = 0.015625 + neutron, kinetic energy (MeV) = 99.9948, position (cm) = (1.96752,0.590908,200), weight = 0.03125 + gamma, kinetic energy (MeV) = 0.130307, position (cm) = (-10.0664,-8.75168,200), weight = 0.03125 + neutron, kinetic energy (MeV) = 72.9519, position (cm) = (-42.9472,-8.15772,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 72.9229, position (cm) = (-42.6961,-8.10719,200), weight = 0.0078125 + neutron, kinetic energy (MeV) = 72.9519, position (cm) = (-42.9472,-8.15772,200), weight = 0.015625 + gamma, kinetic energy (MeV) = 0.779297, position (cm) = (-12.2546,-61.6175,200), weight = 0.5 + gamma, kinetic energy (MeV) = 0.737231, position (cm) = (-1.79383,-35.9181,200), weight = 0.5 + neutron, kinetic energy (MeV) = 78.8849, position (cm) = (42.7391,-55.7352,200), weight = 0.125 + neutron, kinetic energy (MeV) = 78.8849, position (cm) = (42.7391,-55.7352,200), weight = 0.125 + gamma, kinetic energy (MeV) = 0.952083, position (cm) = (45.0374,-66.3683,200), weight = 0.25 + neutron, kinetic energy (MeV) = 1.8576, position (cm) = (39.651,-75.3022,200), weight = 0.25 + neutron, kinetic energy (MeV) = 55.6254, position (cm) = (55.1104,-62.5441,200), weight = 0.125 + neutron, kinetic energy (MeV) = 55.6254, position (cm) = (55.1104,-62.5441,200), weight = 0.125 + gamma, kinetic energy (MeV) = 4.30425, position (cm) = (0.787936,-88.6592,200), weight = 0.00195312 + gamma, kinetic energy (MeV) = 0.346364, position (cm) = (-22.0253,-22.5739,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 7.13364, position (cm) = (4.21355,-7.28638,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 7.23346, position (cm) = (4.24791,-6.89653,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 2.11059, position (cm) = (3.12783,-15.8992,200), weight = 0.00012207 + gamma, kinetic energy (MeV) = 0.291681, position (cm) = (-5.42044,-73.8386,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.33397, position (cm) = (-9.32403,-62.2068,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 23.1887, position (cm) = (-11.436,-55.1394,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 2.93035, position (cm) = (-13.2792,-32.7906,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 25.8022, position (cm) = (-2.08876,-25.6864,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 25.8022, position (cm) = (-2.08876,-25.6864,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 2.7288, position (cm) = (-7.38255,-23.2002,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 3.18735e-05, position (cm) = (-6.01765,-21.5578,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.633325, position (cm) = (-31.1965,-63.0788,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 9.99246, position (cm) = (-34.0642,-43.4577,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.432172, position (cm) = (-56.9761,-36.3274,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 3.25138, position (cm) = (-46.1103,-24.2326,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 26.1441, position (cm) = (-59.1403,-47.2999,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 2.08883, position (cm) = (-46.3117,-44.4279,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 0.161425, position (cm) = (-55.7978,-53.3536,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 1.47071, position (cm) = (-54.0704,-49.9382,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.394038, position (cm) = (-47.1803,-45.8248,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 5.37615, position (cm) = (-42.1009,-40.4315,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 53.2438, position (cm) = (-29.2063,53.0987,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 18.2489, position (cm) = (-53.277,26.9424,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.364091, position (cm) = (-46.4001,14.4626,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 20.034, position (cm) = (-54.0809,37.0346,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 20.034, position (cm) = (-54.0809,37.0346,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 64.2026, position (cm) = (-48.4309,60.2678,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.166595, position (cm) = (-62.1696,77.6999,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 1.74804, position (cm) = (-65.8575,78.3249,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 16.0293, position (cm) = (-62.0168,77.8639,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 63.4704, position (cm) = (-57.9297,74.7786,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 63.3016, position (cm) = (-74.5362,88.6762,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 62.4727, position (cm) = (-81.8948,88.7659,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 62.4727, position (cm) = (-81.8948,88.7659,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 62.4727, position (cm) = (-81.8948,88.7659,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.364796, position (cm) = (-91.0057,116.675,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.193025, position (cm) = (-89.9987,113.196,200), weight = 3.8147e-06 + e-, kinetic energy (MeV) = 1.21029, position (cm) = (-90.915,115.766,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.721256, position (cm) = (-90.9634,115.615,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 45.36, position (cm) = (-91.8611,117.914,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 62.6737, position (cm) = (-91.0939,104.067,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.517024, position (cm) = (-85.2815,96.6754,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.198303, position (cm) = (-92.5806,110.062,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.181283, position (cm) = (-100.544,108.951,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 32.2882, position (cm) = (-86.562,101.012,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 64.4017, position (cm) = (-21.2786,58.624,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 64.4017, position (cm) = (-21.2786,58.624,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 99.4297, position (cm) = (-34.5973,43.7155,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 83.3631, position (cm) = (-22.5417,39.5658,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.110809, position (cm) = (-11.9031,45.2701,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.0939255, position (cm) = (-21.6931,38.8038,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 5.89668e-06, position (cm) = (-32.0864,29.3069,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 56.9057, position (cm) = (-22.9757,39.8937,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.828351, position (cm) = (-24.0981,40.296,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 53.7448, position (cm) = (-17.375,38.957,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 97.6127, position (cm) = (-24.1785,39.9278,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 98.4488, position (cm) = (-25.5711,39.8676,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 98.4488, position (cm) = (-25.5711,39.8676,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 98.848, position (cm) = (-21.6572,39.6279,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 98.0571, position (cm) = (-40.656,27.0475,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 1.44592, position (cm) = (-34.4804,63.2764,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 9.44515, position (cm) = (-29.6739,64.483,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 43.2434, position (cm) = (-28.4838,45.4267,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 44.1112, position (cm) = (-24.3261,40.7674,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 44.1948, position (cm) = (-24.1366,40.9774,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 27.9271, position (cm) = (-29.6311,54.7919,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 27.9271, position (cm) = (-29.6311,54.7919,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 27.9271, position (cm) = (-29.6311,54.7919,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 27.9271, position (cm) = (-29.6311,54.7919,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 1.84858, position (cm) = (-11.445,46.9046,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 1.40152, position (cm) = (-36.2595,48.6044,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.0885828, position (cm) = (-13.4542,44.6889,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 8.44634, position (cm) = (-19.7042,50.2045,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 83.0663, position (cm) = (-35.9595,67.3247,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 98.0698, position (cm) = (-43.8172,57.7555,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 31.4248, position (cm) = (15.454,75.107,200), weight = 0.00390625 + gamma, kinetic energy (MeV) = 0.129173, position (cm) = (8.53896,41.6948,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (5.85683,38.8088,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 7.58942, position (cm) = (5.6774,36.3973,200), weight = 1.52588e-05 + gamma, kinetic energy (MeV) = 7.34633, position (cm) = (9.0351,43.2469,200), weight = 1.52588e-05 + neutron, kinetic energy (MeV) = 1.48628e-07, position (cm) = (-0.477844,26.9075,200), weight = 7.62939e-06 + neutron, kinetic energy (MeV) = 0.0828479, position (cm) = (-9.72183,15.5233,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 1.18499, position (cm) = (-10.2219,13.783,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 2.84598, position (cm) = (-14.8682,37.8113,200), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 5.81963, position (cm) = (-4.78992,26.4728,200), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 9.36278, position (cm) = (-14.6646,33.0137,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 1.4106, position (cm) = (12.2376,45.3532,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.471592, position (cm) = (44.8047,61.9685,200), weight = 0.000976562 + gamma, kinetic energy (MeV) = 0.133758, position (cm) = (-43.2463,116.169,200), weight = 0.000488281 + neutron, kinetic energy (MeV) = 13.8038, position (cm) = (-44.1461,121.516,200), weight = 0.000488281 + gamma, kinetic energy (MeV) = 0.0790303, position (cm) = (-1.38323,86.5265,200), weight = 0.000244141 + gamma, kinetic energy (MeV) = 0.426438, position (cm) = (-3.47074,94.0569,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 0.0248718, position (cm) = (24.9913,12.6917,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 0.000777324, position (cm) = (-99.2975,96.6252,200), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.14181, position (cm) = (47.9318,-48.3206,200), weight = 0.000976562 + neutron, kinetic energy (MeV) = 21.1901, position (cm) = (73.1081,-53.1438,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 1.66375, position (cm) = (77.444,-95.4691,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 0.000889698, position (cm) = (79.8019,-86.7312,200), weight = 9.53674e-07 + neutron, kinetic energy (MeV) = 6.4705e-05, position (cm) = (27.4463,-83.4184,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.424018, position (cm) = (33.1367,-45.2114,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.192211, position (cm) = (13.1258,-69.2402,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.141231, position (cm) = (2.3573,-65.8383,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 4.50548, position (cm) = (1.3527,-65.9758,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.51673, position (cm) = (-0.469424,-108.64,200), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 1.38062, position (cm) = (-53.5469,-159.67,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 70.8178, position (cm) = (38.6542,165.114,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 70.8178, position (cm) = (38.6542,165.114,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 1.54141, position (cm) = (38.1303,162.022,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 7.7317e-05, position (cm) = (43.871,181.161,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 1.59394, position (cm) = (37.738,162.736,200), weight = 0.000244141 + neutron, kinetic energy (MeV) = 44.4088, position (cm) = (43.4129,128.247,200), weight = 6.10352e-05 + neutron, kinetic energy (MeV) = 26.6892, position (cm) = (52.3932,138.487,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 43.223, position (cm) = (9.12811,172.192,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.109673, position (cm) = (21.1118,139.505,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.0501763, position (cm) = (9.24291,155.626,200), weight = 6.10352e-05 + gamma, kinetic energy (MeV) = 0.115431, position (cm) = (57.9135,138.433,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 10.9536, position (cm) = (9.11479,155.918,200), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 11.1665, position (cm) = (9.63683,155.712,200), weight = 3.05176e-05 + gamma, kinetic energy (MeV) = 0.118147, position (cm) = (38.6131,159.432,200), weight = 0.00012207 + neutron, kinetic energy (MeV) = 3.91466, position (cm) = (-26.0261,129.47,200), weight = 0.000244141 Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/biasing/GB06/exampleGB06.out b/examples/extended/biasing/GB06/exampleGB06.out index 949af7da28..4544efd913 100644 --- a/examples/extended/biasing/GB06/exampleGB06.out +++ b/examples/extended/biasing/GB06/exampleGB06.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -57,6 +57,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -109,6 +111,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -136,7 +139,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -187,8 +190,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -670,6 +673,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -935,214 +943,270 @@ Max 2J for sampling of angular correlations 10 ======================================================================= G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. - gamma, kinetic energy (MeV) = 0.770259, position (cm) = (3.9557,26.3025,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.0939614, position (cm) = (15.5451,26.8438,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 17.6216, position (cm) = (-21.7912,30.0031,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 25.2694, position (cm) = (-122.869,47.9118,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 2.71333, position (cm) = (-110.158,-11.0141,500), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.0579762, position (cm) = (109.761,-11.4566,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 3.62996, position (cm) = (119.136,-21.1653,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.941882, position (cm) = (110.557,-41.4554,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 78.8518, position (cm) = (149.068,-10.0899,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.266322, position (cm) = (142.162,5.13571,500), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.145371, position (cm) = (144.293,3.73076,500), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.0894162, position (cm) = (143.445,-37.525,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 4.16281, position (cm) = (141.648,-33.6243,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.198111, position (cm) = (142.335,-33.0375,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.665957, position (cm) = (139.998,-20.4145,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.304654, position (cm) = (63.2506,-40.843,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 47.8734, position (cm) = (67.5702,-36.0192,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 78.229, position (cm) = (70.3407,-38.3906,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 26.8586, position (cm) = (65.281,-99.8767,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 77.6478, position (cm) = (47.0135,-95.4848,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.495285, position (cm) = (42.0211,-91.03,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 49.6442, position (cm) = (32.2328,-102.238,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.335755, position (cm) = (32.3304,-75.2877,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 8.54277, position (cm) = (52.671,-74.6198,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 45.416, position (cm) = (21.4642,-91.4163,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 8.17681e-07, position (cm) = (113.199,-70.3859,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.0160103, position (cm) = (98.2942,-31.0372,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 5.04102, position (cm) = (92.1909,-31.3888,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.180454, position (cm) = (93.151,-19.7292,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.0837734, position (cm) = (96.0918,-25.3833,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.928515, position (cm) = (99.0326,-23.0114,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 41.0431, position (cm) = (99.483,-26.5282,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.773389, position (cm) = (86.1202,4.0828,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.508781, position (cm) = (81.1447,-15.3204,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.000549728, position (cm) = (99.8503,-12.1594,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.0892188, position (cm) = (81.5376,-16.6592,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.242006, position (cm) = (82.4027,-16.3898,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.140607, position (cm) = (85.4593,-7.14462,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 4.84969, position (cm) = (55.5647,-33.3742,500), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 6.30314e-05, position (cm) = (43.0247,-55.0857,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.0916337, position (cm) = (49.9028,-49.5145,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.0206757, position (cm) = (43.9584,-59.254,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.118562, position (cm) = (41.8397,-46.7652,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 32.1233, position (cm) = (44.4723,-57.4636,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.105343, position (cm) = (93.2493,88.2912,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 1.20189, position (cm) = (93.4864,87.6028,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 30.0544, position (cm) = (93.8772,87.0548,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.0305597, position (cm) = (89.7497,112.179,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.887906, position (cm) = (102.518,85.1546,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.239998, position (cm) = (107.271,76.8034,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 5.76716, position (cm) = (50.6601,56.4154,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 2.30812, position (cm) = (117.324,124.713,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.0883977, position (cm) = (115.617,87.816,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 75.5443, position (cm) = (106.786,16.2615,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 2.3764, position (cm) = (83.0704,42.7888,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 2.25692, position (cm) = (137.5,78.8002,500), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 0.000123135, position (cm) = (90.7107,2.4559,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 1.80925, position (cm) = (82.7006,42.9563,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.0741734, position (cm) = (71.4055,67.4738,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 1.16664, position (cm) = (89.229,64.5553,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 5.59404, position (cm) = (78.5133,52.2591,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 49.8372, position (cm) = (102.694,68.4009,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 27.5731, position (cm) = (87.3538,81.4765,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 70.8852, position (cm) = (93.4293,81.4339,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.797738, position (cm) = (82.9145,99.3872,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 2.08621, position (cm) = (-12.7277,99.6812,500), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 1.53301, position (cm) = (71.5949,93.1976,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.160351, position (cm) = (52.9376,113.37,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 9.95453e-09, position (cm) = (12.0896,107.2,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 6.11166, position (cm) = (39.3641,111.492,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.0117916, position (cm) = (32.403,135.197,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.408588, position (cm) = (17.6809,123.441,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 75.0209, position (cm) = (40.6439,104.962,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 2.57491, position (cm) = (35.1723,130.618,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 4.01296, position (cm) = (51.8213,139.475,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 43.0618, position (cm) = (77.5482,136.375,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 94.1116, position (cm) = (144.869,115.821,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 38.0109, position (cm) = (-95.2364,76.3772,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.0878697, position (cm) = (-110.546,101.165,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.177594, position (cm) = (-109.099,97.963,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 5.83552, position (cm) = (-106.83,96.9679,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 2.39295, position (cm) = (-135.717,120.973,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 35.1704, position (cm) = (-134.265,52.1746,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 5.5866, position (cm) = (-141.37,73.7473,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 12.7423, position (cm) = (-141.071,77.1352,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 71.383, position (cm) = (-125.798,67.0687,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.278288, position (cm) = (-106.647,34.9688,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 10.2777, position (cm) = (-107.434,35.0043,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 32.8262, position (cm) = (-106.903,34.8822,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 54.1212, position (cm) = (-113.637,55.7449,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.299774, position (cm) = (-116.563,71.3258,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 8.56046, position (cm) = (-113.471,57.075,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 4.84969, position (cm) = (-87.7365,59.0742,500), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 5.10359, position (cm) = (-96.5027,30.9098,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.156266, position (cm) = (-126.013,133.105,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.0767912, position (cm) = (-128.815,125.309,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.223672, position (cm) = (-119.406,125.236,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 33.2924, position (cm) = (-140.077,137.78,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.23207, position (cm) = (-30.9407,94.1912,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.305319, position (cm) = (-23.3097,97.2586,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.0987782, position (cm) = (-36.9954,110.071,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 2.60941, position (cm) = (-47.5934,99.1938,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 1.16341e-07, position (cm) = (-21.5686,94.693,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.10986, position (cm) = (-48.2203,-144.338,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 5.39905e-06, position (cm) = (-19.5798,-71.3591,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.837911, position (cm) = (-87.2437,31.2727,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.141774, position (cm) = (-123.253,18.3557,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.0660425, position (cm) = (94.7511,117.987,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 55.0933, position (cm) = (92.0888,95.69,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.244618, position (cm) = (99.7971,95.3521,500), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 5.03241, position (cm) = (96.1544,83.1534,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 3.51462, position (cm) = (99.2639,90.0476,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.77726, position (cm) = (94.9568,90.5119,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 89.8168, position (cm) = (99.5625,108.948,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 89.413, position (cm) = (99.4913,102.774,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 2.61368e-07, position (cm) = (46.7663,121.279,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.636269, position (cm) = (27.4884,132.567,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 1.14628, position (cm) = (41.0431,131.517,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 1.61721, position (cm) = (115.421,122.257,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 8.86897, position (cm) = (88.9353,113.754,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 92.3705, position (cm) = (127.774,131.603,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.399939, position (cm) = (133.446,117.343,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 43.0885, position (cm) = (110.862,122.283,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.708736, position (cm) = (109.328,144.213,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 63.379, position (cm) = (114.477,137.151,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 63.7907, position (cm) = (116.783,132.903,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 46.7574, position (cm) = (-63.7253,-48.3901,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 46.7232, position (cm) = (-68.7831,-53.4025,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.389494, position (cm) = (-52.7462,-23.2392,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 84.8078, position (cm) = (-52.9634,-27.8431,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 41.4405, position (cm) = (-76.8944,33.7316,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.832154, position (cm) = (-70.4943,10.7361,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 33.4851, position (cm) = (-72.2042,20.9115,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.131728, position (cm) = (-88.717,20.4956,500), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 82.8539, position (cm) = (-123.508,-26.6628,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.0690777, position (cm) = (-146.703,2.11144,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 2.80555, position (cm) = (-74.8232,29.7471,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 2.69316, position (cm) = (-82.5468,25.1301,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 5.46356, position (cm) = (-77.5212,29.629,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 1.59728, position (cm) = (-87.2923,60.0906,500), weight = 1.90735e-06 - e-, kinetic energy (MeV) = 0.710467, position (cm) = (-87.5578,59.9228,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 2.34536e-10, position (cm) = (-77.3489,31.6946,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 2.34239, position (cm) = (-97.379,54.9891,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.118409, position (cm) = (-52.4619,58.7856,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 52.4137, position (cm) = (-81.8446,71.0224,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 1.15848, position (cm) = (32.3101,-69.7571,500), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.577652, position (cm) = (62.4131,-125.156,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.152362, position (cm) = (50.5138,-120.783,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 1.31673, position (cm) = (80.5753,-95.3068,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.0655647, position (cm) = (81.7448,-94.8156,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 4.40251, position (cm) = (65.0987,-121.746,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.778278, position (cm) = (62.4682,-83.5734,500), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 37.2506, position (cm) = (51.0261,-85.1732,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.000213216, position (cm) = (41.1679,-97.1918,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 7.72211, position (cm) = (31.0039,-76.5798,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 65.5618, position (cm) = (34.2812,-95.7737,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 68.2488, position (cm) = (43.6124,-88.4725,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 94.7294, position (cm) = (-139.252,-109.385,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 75.162, position (cm) = (-123.702,-113.234,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.338029, position (cm) = (-95.2085,-98.2064,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.289229, position (cm) = (-114.235,-83.6938,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 4.25161, position (cm) = (-119.917,-86.5228,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 25.5457, position (cm) = (-124.918,-85.4137,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 94.7431, position (cm) = (-137.477,-119.557,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 94.7736, position (cm) = (-136.748,-118.446,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 95.1546, position (cm) = (-141.673,-111.579,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.0938307, position (cm) = (-135.985,-116.84,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 10.9826, position (cm) = (-145.72,-105.825,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 0.248758, position (cm) = (135.963,-138.024,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 3.73702, position (cm) = (-54.3667,-13.788,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 45.9556, position (cm) = (-39.1122,72.4776,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.367217, position (cm) = (-35.2219,39.5534,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.0866677, position (cm) = (-40.892,34.8312,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 14.2064, position (cm) = (-37.7883,34.6098,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 78.7888, position (cm) = (3.42881,25.0024,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 78.6328, position (cm) = (2.92082,24.6251,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 7.54642e-08, position (cm) = (-9.4416,36.825,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.218769, position (cm) = (-66.1127,87.0875,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 28.747, position (cm) = (-83.3848,103.46,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 1.20133e-09, position (cm) = (-72.7178,140.248,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 2.22147, position (cm) = (-56.2653,135.552,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 91.7104, position (cm) = (-69.7678,49.8527,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 91.8517, position (cm) = (-64.9796,53.4137,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.164734, position (cm) = (-64.2249,45.1218,500), weight = 3.8147e-06 - neutron, kinetic energy (MeV) = 2.02819, position (cm) = (-55.8587,61.2028,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 2.37744, position (cm) = (-47.0332,63.2643,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.14529, position (cm) = (-52.9979,64.3495,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 86.766, position (cm) = (-37.1938,67.2809,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 95.2351, position (cm) = (-37.9104,62.3144,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 3.64332, position (cm) = (-42.1325,40.9453,500), weight = 1.90735e-06 - e-, kinetic energy (MeV) = 1.63226, position (cm) = (-41.9188,40.7894,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 67.8908, position (cm) = (-15.9121,60.77,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 1.28692, position (cm) = (-31.2351,74.6303,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.244901, position (cm) = (-36.7182,67.6394,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 2.49575, position (cm) = (-21.6459,38.6076,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.845106, position (cm) = (-19.5357,41.3091,500), weight = 3.8147e-06 - gamma, kinetic energy (MeV) = 0.571937, position (cm) = (49.1375,95.2464,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.48499, position (cm) = (49.6513,117.214,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.190448, position (cm) = (46.8166,104.4,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 1.44041e-10, position (cm) = (89.8092,72.6307,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 0.277072, position (cm) = (-46.6695,114.222,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 45.0919, position (cm) = (-40.0002,54.7854,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 3.64946, position (cm) = (-9.7712,129.302,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 2.67445, position (cm) = (-62.141,133.55,500), weight = 1.90735e-06 - gamma, kinetic energy (MeV) = 7.11743, position (cm) = (-22.3842,110.226,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 70.8629, position (cm) = (-2.32623,125.912,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 49.3955, position (cm) = (-24.4124,108.771,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 49.2364, position (cm) = (-24.6743,106.779,500), weight = 1.90735e-06 - neutron, kinetic energy (MeV) = 7.25051e-06, position (cm) = (12.8888,99.5356,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.209843, position (cm) = (-56.6779,57.8416,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.129544, position (cm) = (-0.802153,64.1525,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 24.4836, position (cm) = (-0.379311,78.3723,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 76.9956, position (cm) = (5.65745,76.8836,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.199099, position (cm) = (-57.4827,94.9327,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.636063, position (cm) = (125.874,96.3389,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 2.42857, position (cm) = (119.554,90.5893,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 6.2189, position (cm) = (120.348,91.2951,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 39.5351, position (cm) = (121.33,90.0421,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 75.7178, position (cm) = (115.184,105.981,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.0154739, position (cm) = (1.64697,-14.4656,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 6.04697, position (cm) = (22.5006,-53.5417,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 4.98181, position (cm) = (11.4412,-25.797,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 4.34284, position (cm) = (14.8203,-31.378,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 2.16755, position (cm) = (9.8282,8.74478,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 3.12299, position (cm) = (10.2077,11.0646,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 97.4548, position (cm) = (16.4676,-18.3801,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 3.55725, position (cm) = (-32.4363,-28.8705,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.370129, position (cm) = (-51.1888,31.4207,500), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 45.4429, position (cm) = (-7.02144,65.2783,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.108661, position (cm) = (-30.1643,111.052,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.145538, position (cm) = (-33.1845,122.306,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 7.30528, position (cm) = (-29.7069,104.094,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 50.3578, position (cm) = (13.0085,57.2016,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 50.5729, position (cm) = (4.46248,54.6654,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 3.80692, position (cm) = (-21.5304,48.9829,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 3.06066e-07, position (cm) = (-49.0009,67.8942,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 98.6861, position (cm) = (-11.6548,78.5702,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 90.4465, position (cm) = (-4.98652,76.5871,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 98.5237, position (cm) = (4.94351,62.4609,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 1.45168e-08, position (cm) = (-11.4865,46.0494,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 75.9349, position (cm) = (3.84417,42.2249,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 2.22306, position (cm) = (-15.4337,87.9969,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 25.4024, position (cm) = (-21.042,58.267,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 56.6735, position (cm) = (-31.8685,58.7986,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 61.6688, position (cm) = (-46.4504,76.4786,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 9.70702, position (cm) = (-52.3089,102.511,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 7.03527, position (cm) = (-125.755,87.6139,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.100952, position (cm) = (83.2917,89.4826,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 1.71482, position (cm) = (29.7691,56.124,500), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 15.8081, position (cm) = (24.496,63.9709,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.251695, position (cm) = (-5.68216,94.9588,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (37.386,87.7305,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.130169, position (cm) = (-22.1138,92.7617,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 64.8943, position (cm) = (-13.7919,121.501,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.0182992, position (cm) = (20.0893,63.2125,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 71.4213, position (cm) = (22.1505,54.3608,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 74.6497, position (cm) = (25.5636,53.543,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 74.1807, position (cm) = (27.481,56.2964,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0810526, position (cm) = (-76.984,3.42518,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 2.15802, position (cm) = (-29.2625,-73.1579,500), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 0.318645, position (cm) = (-18.5967,-29.668,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0708264, position (cm) = (-42.4548,-33.1662,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 53.581, position (cm) = (-31.7336,-39.3144,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.182779, position (cm) = (-19.9979,-20.8448,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 8.2062, position (cm) = (-3.43032,-58.9232,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.108058, position (cm) = (1.02988,-59.6676,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 2.80924, position (cm) = (5.97904,-54.2635,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0881602, position (cm) = (-22.2212,-57.0038,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 4.39336, position (cm) = (-18.6283,-63.0417,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.143408, position (cm) = (-25.4072,-70.1068,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0635231, position (cm) = (-26.0204,-66.2028,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 34.633, position (cm) = (-19.1807,-52.4047,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.368502, position (cm) = (-38.9453,-86.1485,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 4.1594, position (cm) = (-69.7555,-109.296,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.589538, position (cm) = (-62.6885,-74.3758,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.335944, position (cm) = (-92.3953,-81.3931,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.102399, position (cm) = (-59.3759,-109.715,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.851156, position (cm) = (-65.2901,-104.837,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.528611, position (cm) = (-51.6453,-88.9246,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 6.15549, position (cm) = (-137.588,-86.4117,500), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 18.885, position (cm) = (82.4744,-108.047,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 2.40299, position (cm) = (67.0948,-125.822,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 44.8666, position (cm) = (89.3886,-128.007,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 87.533, position (cm) = (53.0291,-119.251,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 87.3694, position (cm) = (55.6628,-117.946,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.386864, position (cm) = (33.8631,-100.248,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 4.34019, position (cm) = (47.253,-123.53,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0496475, position (cm) = (39.557,-85.0201,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 1.90508, position (cm) = (47.7575,-107.366,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 77.963, position (cm) = (-44.1764,57.4418,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 2.06048, position (cm) = (-52.2645,45.6449,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.345263, position (cm) = (-50.9422,43.417,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.72171, position (cm) = (-45.7232,63.9605,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 3.91134, position (cm) = (-15.073,51.6878,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 4.39336, position (cm) = (-74.7522,52.5663,500), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 1.44886, position (cm) = (-7.45531,63.4028,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.124829, position (cm) = (-33.5317,73.5062,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.148226, position (cm) = (44.752,67.4596,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 1.84804, position (cm) = (56.0321,24.1202,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.990776, position (cm) = (-4.72446,35.0018,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.186689, position (cm) = (32.5325,9.15332,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 3.43639, position (cm) = (2.24039,22.5745,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 3.08655, position (cm) = (-11.8524,-1.40534,500), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.0531639, position (cm) = (-11.8487,-1.43046,500), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 3.94612e-06, position (cm) = (-8.88923,-0.756166,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 10.9287, position (cm) = (14.1046,-3.8495,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 1.64433, position (cm) = (6.60688,-40.1466,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.921036, position (cm) = (11.9836,7.91273,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 4.60765, position (cm) = (10.3544,8.6085,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.17104, position (cm) = (15.9534,-6.6992,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.205073, position (cm) = (13.5924,-3.92181,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 5.97181, position (cm) = (21.4506,11.0728,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 3.4365, position (cm) = (8.43065,8.66359,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 3.30731, position (cm) = (8.3507,6.51311,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.346989, position (cm) = (-5.68884,41.6294,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 2.32992, position (cm) = (-3.12791,28.6412,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 43.4866, position (cm) = (-6.60971,37.9534,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.19232, position (cm) = (18.0522,23.0467,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0751882, position (cm) = (13.5455,20.2443,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 19.997, position (cm) = (26.5003,16.4233,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.637789, position (cm) = (5.66029,2.99066,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 1.80066, position (cm) = (-29.2049,31.7665,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 97.9593, position (cm) = (13.4131,9.15138,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 97.7712, position (cm) = (15.5361,14.5249,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 2.83727, position (cm) = (20.4231,10.4547,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.15247, position (cm) = (2.0243,31.1703,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 61.8795, position (cm) = (-24.35,87.9116,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 66.5184, position (cm) = (-22.4159,111.785,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 5.7372, position (cm) = (-43.2929,33.983,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 38.0738, position (cm) = (47.1108,104.663,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 38.7556, position (cm) = (49.2718,118.636,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.260894, position (cm) = (-71.1654,-42.9309,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 3.91197, position (cm) = (-76.2713,-50.7664,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.788356, position (cm) = (-45.5268,-46.2542,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0673396, position (cm) = (-52.625,-40.8059,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 56.7217, position (cm) = (-93.8178,-92.2452,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 5.44718, position (cm) = (-72.213,-51.1864,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 15.3314, position (cm) = (-69.3196,-50.3806,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.10272, position (cm) = (-67.8986,-39.4011,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 2.79137e-07, position (cm) = (-58.8369,-53.2859,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 2.46693, position (cm) = (-76.5878,-48.9646,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.285844, position (cm) = (-35.8847,-51.757,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 91.3283, position (cm) = (-59.4616,-54.4705,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 91.1812, position (cm) = (-66.0892,-51.6084,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.129026, position (cm) = (-59.1204,-56.3533,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 17.0369, position (cm) = (-64.2226,-52.5659,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 3.14724, position (cm) = (-99.6831,-48.3028,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.115749, position (cm) = (-27.586,-49.5565,500), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 0.189706, position (cm) = (-37.1094,-34.7212,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.242707, position (cm) = (-49.7959,-32.5567,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 9.98207, position (cm) = (-37.3008,-35.1842,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.00139794, position (cm) = (-24.9769,-36.7449,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 90.7683, position (cm) = (-37.7631,-35.3753,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 90.5081, position (cm) = (-43.371,-42.5249,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0945575, position (cm) = (-20.0435,-30.9099,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 50.809, position (cm) = (-0.0984717,-45.4682,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 7.23814, position (cm) = (-128.579,25.3756,500), weight = 3.05176e-05 + neutron, kinetic energy (MeV) = 39.1647, position (cm) = (-61.5683,14.8567,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 1.3052, position (cm) = (-112.198,-0.505596,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.331531, position (cm) = (-111.98,-115.173,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0297384, position (cm) = (-112.308,-116.108,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0580939, position (cm) = (-112.454,-116.689,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 36.7539, position (cm) = (-35.0755,130.155,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 2.40702e-07, position (cm) = (-83.262,134.495,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 1.88566e-05, position (cm) = (-78.3956,65.7628,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 2.63689, position (cm) = (-49.1867,117.621,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.542962, position (cm) = (-65.4437,133.116,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 43.9143, position (cm) = (-56.356,130.914,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 5.40594, position (cm) = (-45.186,145.867,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 33.7227, position (cm) = (91.4943,35.9914,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (-39.1889,46.3028,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.454072, position (cm) = (68.7262,-0.131049,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 5.53674, position (cm) = (-14.1988,27.0754,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0931331, position (cm) = (-27.7191,73.3875,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.256092, position (cm) = (18.2166,53.5179,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 2.75633, position (cm) = (37.0827,54.2635,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.00651672, position (cm) = (35.744,37.2543,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 40.5121, position (cm) = (14.1594,46.251,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 5.44677, position (cm) = (-39.1116,92.0131,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 38.6033, position (cm) = (-40.3828,64.7637,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 38.1022, position (cm) = (-47.8672,71.0803,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 38.9593, position (cm) = (-55.3065,72.9204,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.0266486, position (cm) = (18.1176,43.1632,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 10.9814, position (cm) = (2.94195,35.0176,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.624097, position (cm) = (-26.1687,85.0884,500), weight = 3.8147e-06 + gamma, kinetic energy (MeV) = 0.0660738, position (cm) = (-28.3491,88.83,500), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 2.74723, position (cm) = (126.276,38.7812,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.132616, position (cm) = (114.352,39.1107,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 31.1192, position (cm) = (132.218,52.4255,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.355746, position (cm) = (149.614,64.2088,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.0779686, position (cm) = (93.971,8.2509,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0574323, position (cm) = (129.231,40.564,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 96.6099, position (cm) = (115.174,42.6261,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.357951, position (cm) = (97.8604,15.7414,500), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 1.07625, position (cm) = (110.249,65.4248,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 2.33097, position (cm) = (138.28,44.3923,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 27.825, position (cm) = (111.799,27.7409,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 1.17317, position (cm) = (108.735,19.9675,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.619365, position (cm) = (116.507,17.3815,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.380958, position (cm) = (72.8967,-65.5727,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 5.04645, position (cm) = (37.4695,-61.9708,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 63.5875, position (cm) = (101.46,-41.2301,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 63.8817, position (cm) = (97.5447,-38.664,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 63.3147, position (cm) = (90.5372,-30.354,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.135877, position (cm) = (100.804,-25.181,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.713201, position (cm) = (74.0935,-15.2893,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.550717, position (cm) = (45.7213,119.641,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 63.4216, position (cm) = (45.1229,119.716,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 93.2152, position (cm) = (48.3317,122.776,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.100667, position (cm) = (99.5201,49.0998,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 20.5603, position (cm) = (84.6104,56.044,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 2.56677, position (cm) = (70.2154,53.0204,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 82.7965, position (cm) = (87.4231,50.3805,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 69.9375, position (cm) = (73.4629,47.9818,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 97.3272, position (cm) = (71.4451,39.687,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 1.10199e-06, position (cm) = (129.13,24.0022,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.319612, position (cm) = (110.705,-30.7219,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 40.2057, position (cm) = (77.1939,-15.6289,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 3.67674, position (cm) = (89.3246,-31.4611,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 4.68555, position (cm) = (74.0525,-16.5289,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 5.61684, position (cm) = (78.7656,-35.8318,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 97.3911, position (cm) = (104.246,-15.1632,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 2.22305, position (cm) = (13.7995,31.3235,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 6.04697, position (cm) = (25.1071,-15.8138,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 97.2331, position (cm) = (23.2143,23.1016,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 97.249, position (cm) = (23.7834,23.6329,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 97.2914, position (cm) = (21.8925,25.3938,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 67.8889, position (cm) = (-17.7533,62.4748,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 1.01805e-06, position (cm) = (-2.6553,34.7979,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 1.64653, position (cm) = (27.1903,57.4892,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 54.1784, position (cm) = (-5.71962,76.7896,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.105659, position (cm) = (54.2639,1.20954,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.103364, position (cm) = (33.8185,41.5224,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 15.9843, position (cm) = (26.6039,32.5272,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 4.84838e-06, position (cm) = (30.9427,27.4441,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 4.71014e-08, position (cm) = (28.4099,31.491,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.99818, position (cm) = (-1.05508,31.398,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 1.55345, position (cm) = (2.7059,9.86976,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 3.87559, position (cm) = (34.3617,36.5009,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.239606, position (cm) = (49.7039,-63.7847,500), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 2.8669, position (cm) = (42.1686,74.4832,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.86894, position (cm) = (30.699,57.8628,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 28.4416, position (cm) = (35.9953,60.0362,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0966349, position (cm) = (37.69,49.9684,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 2.90633, position (cm) = (33.0435,48.7359,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0743584, position (cm) = (37.1524,54.2452,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 1.43978, position (cm) = (33.9654,56.6486,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 3.93151, position (cm) = (38.6229,54.3853,500), weight = 1.90735e-06 + proton, kinetic energy (MeV) = 35.5136, position (cm) = (37.3191,54.1653,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 4.07299, position (cm) = (-14.127,0.896229,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 9.40444, position (cm) = (-13.7081,37.0052,500), weight = 7.62939e-06 + gamma, kinetic energy (MeV) = 2.25778, position (cm) = (16.6828,59.9148,500), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 0.130672, position (cm) = (31.9761,17.8285,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 3.30604, position (cm) = (17.7097,22.6856,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.652604, position (cm) = (26.5812,23.2093,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 1.27312, position (cm) = (36.5567,10.8439,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 5.40594, position (cm) = (24.8538,7.10479,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 86.3992, position (cm) = (11.1165,117.223,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 86.8251, position (cm) = (16.0228,112.224,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.660614, position (cm) = (55.9719,105.228,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 65.0546, position (cm) = (54.6553,-3.09014,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0729747, position (cm) = (51.8164,-1.6049,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 44.5383, position (cm) = (49.9592,3.05135,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 0.000953118, position (cm) = (55.0962,11.299,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0777286, position (cm) = (-33.7254,-14.022,500), weight = 3.8147e-06 + neutron, kinetic energy (MeV) = 0.603, position (cm) = (38.9579,-29.5715,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 0.0729923, position (cm) = (37.0237,-17.6628,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 2.49579, position (cm) = (36.721,-39.8613,500), weight = 1.90735e-06 + gamma, kinetic energy (MeV) = 2.51572, position (cm) = (32.0806,-33.8546,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 18.503, position (cm) = (36.1435,-18.8862,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 92.7225, position (cm) = (49.722,-23.5933,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 93.1857, position (cm) = (56.3726,-26.1092,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 93.4308, position (cm) = (54.5514,-25.004,500), weight = 1.90735e-06 + neutron, kinetic energy (MeV) = 93.4308, position (cm) = (54.5514,-25.004,500), weight = 1.90735e-06 Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/biasing/GB06/include/GB06DetectorConstruction.hh b/examples/extended/biasing/GB06/include/GB06DetectorConstruction.hh index 6986e9e71b..3ff36a0183 100644 --- a/examples/extended/biasing/GB06/include/GB06DetectorConstruction.hh +++ b/examples/extended/biasing/GB06/include/GB06DetectorConstruction.hh @@ -32,13 +32,6 @@ #include "G4VUserDetectorConstruction.hh" #include "globals.hh" -class G4Box; -class G4LogicalVolume; -class G4VPhysicalVolume; -class G4Material; -class G4UniformMagField; -class DetectorMessenger; - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class GB06DetectorConstruction : public G4VUserDetectorConstruction diff --git a/examples/extended/biasing/GB07/exampleGB07.out b/examples/extended/biasing/GB07/exampleGB07.out index 8b83b098ac..030c6658ee 100644 --- a/examples/extended/biasing/GB07/exampleGB07.out +++ b/examples/extended/biasing/GB07/exampleGB07.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -45,6 +45,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -97,6 +99,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -124,7 +127,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -175,8 +178,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -658,6 +661,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -923,387 +931,465 @@ Max 2J for sampling of angular correlations 10 ======================================================================= G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. - gamma, kinetic energy (MeV) = 0.133815, position (cm) = (-34.031,37.9068,200), weight = 3 - gamma, kinetic energy (MeV) = 5.27595, position (cm) = (-29.3561,-16.6948,200), weight = 1 - gamma, kinetic energy (MeV) = 1.39525, position (cm) = (-31.1916,-15.5102,200), weight = 1 - gamma, kinetic energy (MeV) = 0.744774, position (cm) = (-36.1465,-11.2508,200), weight = 1 - gamma, kinetic energy (MeV) = 0.542315, position (cm) = (-35.6114,-11.9152,200), weight = 1 - gamma, kinetic energy (MeV) = 1.43549, position (cm) = (-21.611,-1.74286,200), weight = 1 - gamma, kinetic energy (MeV) = 0.425414, position (cm) = (-25.8511,-9.52343,200), weight = 1 - gamma, kinetic energy (MeV) = 11.3146, position (cm) = (5.6515,12.9134,200), weight = 1 - gamma, kinetic energy (MeV) = 4.26229, position (cm) = (-6.08152,20.4691,200), weight = 1 - gamma, kinetic energy (MeV) = 0.359523, position (cm) = (34.9774,13.6287,200), weight = 1 - gamma, kinetic energy (MeV) = 15.485, position (cm) = (8.84583,12.5426,200), weight = 1 - gamma, kinetic energy (MeV) = 2.75816, position (cm) = (3.46439,8.01774,200), weight = 1 - gamma, kinetic energy (MeV) = 0.0765881, position (cm) = (-35.0425,22.9948,200), weight = 1 - gamma, kinetic energy (MeV) = 0.501549, position (cm) = (-30.7449,29.3634,200), weight = 1 - pi-, kinetic energy (MeV) = 1368.6, position (cm) = (-8.5325,5.85327,200), weight = 1 - e-, kinetic energy (MeV) = 18.0189, position (cm) = (19.993,10.7736,200), weight = 1 - e+, kinetic energy (MeV) = 23.742, position (cm) = (18.5884,11.36,200), weight = 1 - gamma, kinetic energy (MeV) = 0.163666, position (cm) = (19.1954,11.4263,200), weight = 1 - gamma, kinetic energy (MeV) = 22.8075, position (cm) = (16.7898,12.2088,200), weight = 1 - e-, kinetic energy (MeV) = 2.3931, position (cm) = (22.9462,1.54207,200), weight = 1 - gamma, kinetic energy (MeV) = 0.17684, position (cm) = (13.5275,-4.86362,200), weight = 1 - gamma, kinetic energy (MeV) = 0.510999, position (cm) = (13.2597,-3.24511,200), weight = 1 - gamma, kinetic energy (MeV) = 0.359588, position (cm) = (39.0174,39.162,200), weight = 1 - neutron, kinetic energy (MeV) = 275.329, position (cm) = (31.0199,-28.9892,200), weight = 1 - kaon0L, kinetic energy (MeV) = 570.925, position (cm) = (-5.26384,-4.49565,200), weight = 1 - neutron, kinetic energy (MeV) = 135.511, position (cm) = (12.9605,10.144,200), weight = 6 - gamma, kinetic energy (MeV) = 152.726, position (cm) = (-2.85698,13.5422,200), weight = 1 - neutron, kinetic energy (MeV) = 49.4785, position (cm) = (-8.21131,-17.7093,200), weight = 3 - nu_e, kinetic energy (MeV) = 20.5019, position (cm) = (9.81481,-51.3877,200), weight = 3 - nu_mu, kinetic energy (MeV) = 29.7919, position (cm) = (-67.1307,-37.7818,200), weight = 3 - gamma, kinetic energy (MeV) = 0.934004, position (cm) = (-77.7365,-12.0122,200), weight = 3 - gamma, kinetic energy (MeV) = 1.92818, position (cm) = (-73.5578,-20.3392,200), weight = 3 - gamma, kinetic energy (MeV) = 1.27586, position (cm) = (-94.8028,-12.7639,200), weight = 3 - neutron, kinetic energy (MeV) = 1.48454, position (cm) = (-41.9323,-10.8467,200), weight = 1 - gamma, kinetic energy (MeV) = 2.71522, position (cm) = (-38.0194,1.5261,200), weight = 1 - gamma, kinetic energy (MeV) = 0.520752, position (cm) = (-38.4465,-12.6686,200), weight = 1 - nu_e, kinetic energy (MeV) = 28.9523, position (cm) = (42.5364,-2.51454,200), weight = 1 - nu_mu, kinetic energy (MeV) = 29.7919, position (cm) = (-14.1061,-70.1275,200), weight = 1 - gamma, kinetic energy (MeV) = 81.8927, position (cm) = (-24.1199,23.3066,200), weight = 2 - gamma, kinetic energy (MeV) = 0.47998, position (cm) = (-2.2104,-1.32305,200), weight = 2 - gamma, kinetic energy (MeV) = 0.785399, position (cm) = (-17.9385,23.2975,200), weight = 2 - gamma, kinetic energy (MeV) = 5.54166, position (cm) = (-26.7613,-53.4267,200), weight = 4 - neutron, kinetic energy (MeV) = 551.634, position (cm) = (26.3328,-28.8388,200), weight = 4 - gamma, kinetic energy (MeV) = 1.72235, position (cm) = (-14.0232,-9.60447,200), weight = 2 - gamma, kinetic energy (MeV) = 14.6336, position (cm) = (-62.6634,-45.6707,200), weight = 2 - gamma, kinetic energy (MeV) = 1.13555, position (cm) = (-40.2217,-88.4569,200), weight = 6 - gamma, kinetic energy (MeV) = 22.0045, position (cm) = (-16.5073,-15.1513,200), weight = 2 - gamma, kinetic energy (MeV) = 1.42822, position (cm) = (-24.0826,-5.31101,200), weight = 2 - gamma, kinetic energy (MeV) = 0.0766643, position (cm) = (-10.9782,-9.41342,200), weight = 2 - gamma, kinetic energy (MeV) = 37.0818, position (cm) = (-21.831,-17.9703,200), weight = 2 - e+, kinetic energy (MeV) = 7.7492, position (cm) = (-29.0754,-18.9007,200), weight = 2 - e-, kinetic energy (MeV) = 9.90334, position (cm) = (-29.0794,-18.8993,200), weight = 2 - gamma, kinetic energy (MeV) = 9.66982, position (cm) = (-23.5762,-17.6011,200), weight = 2 - gamma, kinetic energy (MeV) = 0.448131, position (cm) = (-18.7646,-14.9318,200), weight = 2 - gamma, kinetic energy (MeV) = 0.134546, position (cm) = (-19.9394,-15.8599,200), weight = 2 - gamma, kinetic energy (MeV) = 0.560158, position (cm) = (-27.5281,-9.69527,200), weight = 2 - gamma, kinetic energy (MeV) = 11.6234, position (cm) = (-24.9009,-12.2146,200), weight = 2 - gamma, kinetic energy (MeV) = 0.114311, position (cm) = (-17.9825,-20.2051,200), weight = 2 - gamma, kinetic energy (MeV) = 53.3846, position (cm) = (-24.3334,-12.4334,200), weight = 2 - gamma, kinetic energy (MeV) = 0.546431, position (cm) = (-20.2649,-7.07165,200), weight = 2 - gamma, kinetic energy (MeV) = 11.1351, position (cm) = (-28.2108,-12.0116,200), weight = 2 - gamma, kinetic energy (MeV) = 0.800718, position (cm) = (-23.712,-13.307,200), weight = 2 - gamma, kinetic energy (MeV) = 0.626066, position (cm) = (-17.4555,-19.903,200), weight = 2 - gamma, kinetic energy (MeV) = 0.324598, position (cm) = (-25.6709,-19.5962,200), weight = 2 - gamma, kinetic energy (MeV) = 0.508156, position (cm) = (-19.1372,-8.09283,200), weight = 2 - gamma, kinetic energy (MeV) = 6.38158, position (cm) = (-23.2274,-26.1658,200), weight = 2 - gamma, kinetic energy (MeV) = 0.945533, position (cm) = (-30.1106,-34.4241,200), weight = 2 - proton, kinetic energy (MeV) = 2057.32, position (cm) = (-8.40771,6.5923,200), weight = 1 - mu-, kinetic energy (MeV) = 27.6337, position (cm) = (-45.111,-1.82819,200), weight = 3 - anti_nu_mu, kinetic energy (MeV) = 285.083, position (cm) = (-40.7764,-24.0344,200), weight = 3 - neutron, kinetic energy (MeV) = 12.976, position (cm) = (-51.8866,-22.9219,200), weight = 2 - neutron, kinetic energy (MeV) = 61.7215, position (cm) = (-78.4442,-55.7086,200), weight = 2 - neutron, kinetic energy (MeV) = 70.3364, position (cm) = (-71.4246,-7.12311,200), weight = 2 - nu_mu, kinetic energy (MeV) = 29.7919, position (cm) = (-14.5004,-25.7122,200), weight = 1 - gamma, kinetic energy (MeV) = 0.10865, position (cm) = (-22.696,16.1398,200), weight = 1 - gamma, kinetic energy (MeV) = 0.510999, position (cm) = (8.94508,-30.085,200), weight = 3 - gamma, kinetic energy (MeV) = 0.0860015, position (cm) = (9.88721,-27.3663,200), weight = 3 - e+, kinetic energy (MeV) = 63.1382, position (cm) = (14.7153,-22.634,200), weight = 1 - gamma, kinetic energy (MeV) = 0.139212, position (cm) = (14.7151,-22.6253,200), weight = 1 - gamma, kinetic energy (MeV) = 8.50353, position (cm) = (14.8118,-22.5706,200), weight = 1 - gamma, kinetic energy (MeV) = 0.825479, position (cm) = (14.2479,-22.1222,200), weight = 1 - gamma, kinetic energy (MeV) = 11.1236, position (cm) = (14.2852,-22.1173,200), weight = 1 - gamma, kinetic energy (MeV) = 3.08084, position (cm) = (14.4542,-22.0318,200), weight = 1 - gamma, kinetic energy (MeV) = 0.170944, position (cm) = (13.0007,-13.0727,200), weight = 1 - gamma, kinetic energy (MeV) = 3.99179, position (cm) = (15.3824,-21.1181,200), weight = 1 - gamma, kinetic energy (MeV) = 0.0874232, position (cm) = (9.93554,-11.435,200), weight = 1 - gamma, kinetic energy (MeV) = 20.9998, position (cm) = (11.1482,-15.3759,200), weight = 1 - gamma, kinetic energy (MeV) = 5.28322, position (cm) = (10.922,-15.3773,200), weight = 1 - gamma, kinetic energy (MeV) = 0.207271, position (cm) = (6.06495,-22.5847,200), weight = 1 - gamma, kinetic energy (MeV) = 4.98355, position (cm) = (20.6091,-24.0034,200), weight = 1 - gamma, kinetic energy (MeV) = 31.6158, position (cm) = (13.9062,-16.5443,200), weight = 1 - gamma, kinetic energy (MeV) = 9.43123, position (cm) = (11.8759,-15.6611,200), weight = 1 - gamma, kinetic energy (MeV) = 0.601147, position (cm) = (17.4835,-21.2844,200), weight = 1 - e-, kinetic energy (MeV) = 1.83689, position (cm) = (17.8197,-21.2518,200), weight = 1 - gamma, kinetic energy (MeV) = 1.05453, position (cm) = (24.6177,-20.5225,200), weight = 1 - anti_nu_mu, kinetic energy (MeV) = 44.3052, position (cm) = (43.8943,-1.55697,200), weight = 3 - nu_mu, kinetic energy (MeV) = 15.4106, position (cm) = (-2.93997,-9.99172,200), weight = 3 - pi-, kinetic energy (MeV) = 2392.14, position (cm) = (-2.04481,5.29522,200), weight = 1 - proton, kinetic energy (MeV) = 1714.25, position (cm) = (0.99824,-0.616607,200), weight = 4 - gamma, kinetic energy (MeV) = 0.0388235, position (cm) = (0.646543,-0.842913,200), weight = 4 - gamma, kinetic energy (MeV) = 8.66291, position (cm) = (-8.18961,0.0592969,200), weight = 1 - neutron, kinetic energy (MeV) = 151.884, position (cm) = (-41.5767,42.0786,200), weight = 6 - neutron, kinetic energy (MeV) = 194.457, position (cm) = (-35.3465,48.2393,200), weight = 6 - gamma, kinetic energy (MeV) = 11.5708, position (cm) = (-30.5203,9.08805,200), weight = 3 - gamma, kinetic energy (MeV) = 0.137331, position (cm) = (-33.2583,4.37527,200), weight = 3 - gamma, kinetic energy (MeV) = 0.779627, position (cm) = (-26.5671,8.22129,200), weight = 3 - gamma, kinetic energy (MeV) = 0.968491, position (cm) = (-14.9177,-18.4589,200), weight = 3 - gamma, kinetic energy (MeV) = 6.58638, position (cm) = (-8.06276,-11.8005,200), weight = 3 - gamma, kinetic energy (MeV) = 2.45918, position (cm) = (-31.111,9.73394,200), weight = 3 - gamma, kinetic energy (MeV) = 1.5496, position (cm) = (-12.1395,-1.89975,200), weight = 3 - gamma, kinetic energy (MeV) = 0.725271, position (cm) = (17.571,-8.96091,200), weight = 3 - gamma, kinetic energy (MeV) = 0.407991, position (cm) = (-35.6246,-12.2842,200), weight = 3 - proton, kinetic energy (MeV) = 1707.9, position (cm) = (6.57943,-16.0358,200), weight = 1 - gamma, kinetic energy (MeV) = 32.8861, position (cm) = (72.5101,-60.4859,200), weight = 2 - gamma, kinetic energy (MeV) = 23.0228, position (cm) = (63.6982,-57.2766,200), weight = 2 - gamma, kinetic energy (MeV) = 30.8019, position (cm) = (63.3922,-57.9357,200), weight = 2 - gamma, kinetic energy (MeV) = 1.448, position (cm) = (55.7109,-66.3195,200), weight = 2 - gamma, kinetic energy (MeV) = 12.9473, position (cm) = (61.6201,-51.8512,200), weight = 2 - gamma, kinetic energy (MeV) = 0.516728, position (cm) = (58.8091,-39.2298,200), weight = 2 - gamma, kinetic energy (MeV) = 0.348225, position (cm) = (-18.6693,5.6563,200), weight = 2 - neutron, kinetic energy (MeV) = 2.20745, position (cm) = (26.6956,-3.49744,200), weight = 3 - gamma, kinetic energy (MeV) = 4.41807, position (cm) = (37.0649,-14.9754,200), weight = 2 - neutron, kinetic energy (MeV) = 170.137, position (cm) = (30.6574,5.15409,200), weight = 1 - proton, kinetic energy (MeV) = 8096.69, position (cm) = (1.34558,-0.331478,200), weight = 1 - gamma, kinetic energy (MeV) = 0.149003, position (cm) = (0.184699,1.12753,200), weight = 1 - gamma, kinetic energy (MeV) = 0.409996, position (cm) = (0.519842,-0.490029,200), weight = 1 - pi+, kinetic energy (MeV) = 777.344, position (cm) = (0.310234,-2.32096,200), weight = 1 - gamma, kinetic energy (MeV) = 0.378378, position (cm) = (-5.6307,-24.8772,200), weight = 3 - neutron, kinetic energy (MeV) = 1.54526, position (cm) = (3.12231,-21.6761,200), weight = 3 - nu_e, kinetic energy (MeV) = 28.3521, position (cm) = (23.1439,-33.197,200), weight = 1 - nu_mu, kinetic energy (MeV) = 29.7919, position (cm) = (49.8102,-59.0548,200), weight = 1 - gamma, kinetic energy (MeV) = 20.0686, position (cm) = (86.6382,-62.7693,200), weight = 1 - gamma, kinetic energy (MeV) = 0.521205, position (cm) = (23.0597,-38.2593,200), weight = 1 - neutron, kinetic energy (MeV) = 23.1625, position (cm) = (46.4028,-5.76066,200), weight = 1 - neutron, kinetic energy (MeV) = 293.487, position (cm) = (-38.487,53.2204,200), weight = 4 - neutron, kinetic energy (MeV) = 0.0958381, position (cm) = (-49.0385,-3.84575,200), weight = 12 - proton, kinetic energy (MeV) = 485.172, position (cm) = (20.6354,-18.4216,200), weight = 1 - gamma, kinetic energy (MeV) = 0.0915346, position (cm) = (18.1036,-17.8987,200), weight = 1 - neutron, kinetic energy (MeV) = 1.64124, position (cm) = (-11.5028,2.85167,200), weight = 12 - gamma, kinetic energy (MeV) = 5.39642, position (cm) = (-27.709,8.67249,200), weight = 24 - nu_e, kinetic energy (MeV) = 40.6333, position (cm) = (-25.8285,-11.9116,200), weight = 1 - gamma, kinetic energy (MeV) = 4.11538, position (cm) = (-14.5413,-36.2515,200), weight = 2 - gamma, kinetic energy (MeV) = 6.84986, position (cm) = (-28.0753,1.7808,200), weight = 1 - gamma, kinetic energy (MeV) = 3.60841, position (cm) = (-23.8202,-1.24786,200), weight = 1 - gamma, kinetic energy (MeV) = 4.09242, position (cm) = (-41.0442,5.05885,200), weight = 1 - gamma, kinetic energy (MeV) = 37.228, position (cm) = (-28.6655,-1.23096,200), weight = 1 - gamma, kinetic energy (MeV) = 3.25412, position (cm) = (-27.2114,-7.88922,200), weight = 1 - gamma, kinetic energy (MeV) = 2.04386, position (cm) = (-27.6404,13.3223,200), weight = 1 - gamma, kinetic energy (MeV) = 16.8998, position (cm) = (-31.8178,-2.61283,200), weight = 1 - gamma, kinetic energy (MeV) = 0.04455, position (cm) = (-44.2763,10.294,200), weight = 1 - gamma, kinetic energy (MeV) = 2.43368, position (cm) = (-35.2355,0.276099,200), weight = 1 - gamma, kinetic energy (MeV) = 0.103765, position (cm) = (-35.1824,-4.22133,200), weight = 1 - gamma, kinetic energy (MeV) = 1.00236, position (cm) = (-36.5918,-5.36436,200), weight = 1 - gamma, kinetic energy (MeV) = 0.36784, position (cm) = (-23.2128,5.3372,200), weight = 1 - gamma, kinetic energy (MeV) = 15.908, position (cm) = (-32.6557,0.521941,200), weight = 1 - gamma, kinetic energy (MeV) = 439.215, position (cm) = (-11.6291,27.9012,200), weight = 1 - neutron, kinetic energy (MeV) = 1024.62, position (cm) = (-13.5485,24.5422,200), weight = 1 - proton, kinetic energy (MeV) = 1033.53, position (cm) = (-16.3872,37.1475,200), weight = 1 - nu_mu, kinetic energy (MeV) = 29.7919, position (cm) = (30.3266,60.787,200), weight = 1 - gamma, kinetic energy (MeV) = 12.4769, position (cm) = (20.3272,-35.0367,200), weight = 1 - neutron, kinetic energy (MeV) = 36.6501, position (cm) = (-9.02599,5.2282,200), weight = 5 - gamma, kinetic energy (MeV) = 3248.82, position (cm) = (-1.07969,-2.85003,200), weight = 1 - neutron, kinetic energy (MeV) = 0.00648618, position (cm) = (6.44099,-18.0487,200), weight = 8 - pi+, kinetic energy (MeV) = 477.879, position (cm) = (0.87386,4.81481,200), weight = 1 - neutron, kinetic energy (MeV) = 65.9924, position (cm) = (3.31691,-17.4053,200), weight = 1 - gamma, kinetic energy (MeV) = 6.03391, position (cm) = (-9.72165,5.20674,200), weight = 1 - gamma, kinetic energy (MeV) = 53.8322, position (cm) = (2.95005,-16.7625,200), weight = 1 - gamma, kinetic energy (MeV) = 0.481923, position (cm) = (-7.95994,-22.7046,200), weight = 1 - gamma, kinetic energy (MeV) = 0.444737, position (cm) = (7.25933,66.0556,200), weight = 1 - gamma, kinetic energy (MeV) = 0.229907, position (cm) = (6.34573,51.7937,200), weight = 1 - gamma, kinetic energy (MeV) = 0.317359, position (cm) = (-30.8937,60.6608,200), weight = 2 - gamma, kinetic energy (MeV) = 0.136637, position (cm) = (-11.519,-7.54489,200), weight = 1 - neutron, kinetic energy (MeV) = 236.805, position (cm) = (-4.93039,-8.45537,200), weight = 1 - gamma, kinetic energy (MeV) = 4.22685, position (cm) = (9.06701,20.9861,200), weight = 1 - gamma, kinetic energy (MeV) = 30.5558, position (cm) = (5.67424,9.07505,200), weight = 1 - gamma, kinetic energy (MeV) = 0.120405, position (cm) = (-12.044,11.9719,200), weight = 1 - gamma, kinetic energy (MeV) = 2.41854, position (cm) = (22.7785,-4.73304,200), weight = 1 - gamma, kinetic energy (MeV) = 6.24652, position (cm) = (2.30763,-3.78696,200), weight = 1 - gamma, kinetic energy (MeV) = 8.82988, position (cm) = (4.49499,-6.17197,200), weight = 1 - gamma, kinetic energy (MeV) = 4.91229, position (cm) = (-21.5606,-11.9342,200), weight = 1 - gamma, kinetic energy (MeV) = 1.05104, position (cm) = (7.26832,-12.2673,200), weight = 1 - gamma, kinetic energy (MeV) = 9.80654, position (cm) = (-2.20702,-4.30213,200), weight = 1 - gamma, kinetic energy (MeV) = 0.510999, position (cm) = (20.2263,-5.24145,200), weight = 1 - e-, kinetic energy (MeV) = 4.79754, position (cm) = (20.1996,-5.09252,200), weight = 1 - gamma, kinetic energy (MeV) = 0.366193, position (cm) = (-13.037,39.0496,200), weight = 1 - gamma, kinetic energy (MeV) = 0.61869, position (cm) = (-10.0434,-2.29907,200), weight = 1 - gamma, kinetic energy (MeV) = 6.49357, position (cm) = (38.9511,-36.8769,200), weight = 1 - gamma, kinetic energy (MeV) = 12.1301, position (cm) = (-0.742944,-9.69563,200), weight = 1 - gamma, kinetic energy (MeV) = 30.4199, position (cm) = (4.661,13.2292,200), weight = 1 - e+, kinetic energy (MeV) = 7.66597, position (cm) = (-0.148705,1.20301,200), weight = 1 - gamma, kinetic energy (MeV) = 1.36775, position (cm) = (-0.945978,1.04,200), weight = 1 - gamma, kinetic energy (MeV) = 0.382736, position (cm) = (-0.609975,0.823264,200), weight = 1 - gamma, kinetic energy (MeV) = 26.5963, position (cm) = (-0.0545154,0.70824,200), weight = 1 - gamma, kinetic energy (MeV) = 0.267888, position (cm) = (0.0727763,0.576458,200), weight = 1 - gamma, kinetic energy (MeV) = 7.92934, position (cm) = (0.213995,0.418666,200), weight = 1 - gamma, kinetic energy (MeV) = 21.1981, position (cm) = (0.282743,0.586641,200), weight = 1 - gamma, kinetic energy (MeV) = 1.12207, position (cm) = (0.282335,0.773296,200), weight = 1 - gamma, kinetic energy (MeV) = 0.251973, position (cm) = (0.271925,0.737204,200), weight = 1 - gamma, kinetic energy (MeV) = 23.235, position (cm) = (0.682717,1.3509,200), weight = 1 - e-, kinetic energy (MeV) = 19.3671, position (cm) = (0.730073,-0.246062,200), weight = 1 - gamma, kinetic energy (MeV) = 0.50569, position (cm) = (0.409368,-0.269002,200), weight = 1 - gamma, kinetic energy (MeV) = 3.58154, position (cm) = (0.838292,0.438543,200), weight = 1 - gamma, kinetic energy (MeV) = 0.510999, position (cm) = (4.20582,1.28993,200), weight = 1 - e-, kinetic energy (MeV) = 237.617, position (cm) = (0.336846,0.582262,200), weight = 1 - gamma, kinetic energy (MeV) = 2.08315, position (cm) = (0.401864,0.5523,200), weight = 1 - gamma, kinetic energy (MeV) = 21.0701, position (cm) = (0.30498,0.287845,200), weight = 1 - gamma, kinetic energy (MeV) = 1.33923, position (cm) = (0.449512,0.6496,200), weight = 1 - gamma, kinetic energy (MeV) = 2.87677, position (cm) = (-3.24264,0.32489,200), weight = 1 - gamma, kinetic energy (MeV) = 6.88633, position (cm) = (0.348689,0.523985,200), weight = 1 - gamma, kinetic energy (MeV) = 0.0694912, position (cm) = (11.9386,-3.17657,200), weight = 1 - gamma, kinetic energy (MeV) = 1.87175, position (cm) = (-2.9653,-0.180503,200), weight = 1 - gamma, kinetic energy (MeV) = 43.959, position (cm) = (0.055868,0.668493,200), weight = 1 - gamma, kinetic energy (MeV) = 0.0871572, position (cm) = (5.79617,-4.12052,200), weight = 1 - gamma, kinetic energy (MeV) = 630.974, position (cm) = (0.629105,0.379517,200), weight = 1 - gamma, kinetic energy (MeV) = 0.376615, position (cm) = (13.1013,7.20488,200), weight = 1 - gamma, kinetic energy (MeV) = 6.0021, position (cm) = (0.457435,4.12898,200), weight = 1 - gamma, kinetic energy (MeV) = 0.18066, position (cm) = (9.9352,-2.64331,200), weight = 1 - gamma, kinetic energy (MeV) = 0.271975, position (cm) = (0.600752,0.0997565,200), weight = 1 - gamma, kinetic energy (MeV) = 31.8576, position (cm) = (0.0134792,-0.538969,200), weight = 1 - gamma, kinetic energy (MeV) = 0.188734, position (cm) = (2.4302,-11.2909,200), weight = 1 - gamma, kinetic energy (MeV) = 0.102708, position (cm) = (0.306923,6.65019,200), weight = 1 - gamma, kinetic energy (MeV) = 2.71842, position (cm) = (-0.241274,-0.066187,200), weight = 1 - gamma, kinetic energy (MeV) = 0.55802, position (cm) = (-0.912364,1.16522,200), weight = 1 - gamma, kinetic energy (MeV) = 0.128862, position (cm) = (0.367491,-0.286785,200), weight = 1 - gamma, kinetic energy (MeV) = 4.03276, position (cm) = (4.93963,-3.60457,200), weight = 1 - gamma, kinetic energy (MeV) = 3.41691, position (cm) = (-0.309062,0.690943,200), weight = 1 - gamma, kinetic energy (MeV) = 0.0870252, position (cm) = (1.89078,2.6061,200), weight = 1 - gamma, kinetic energy (MeV) = 4.89483, position (cm) = (1.07241,0.124671,200), weight = 1 - gamma, kinetic energy (MeV) = 4.71745, position (cm) = (3.52534,3.12523,200), weight = 1 - gamma, kinetic energy (MeV) = 1.63476, position (cm) = (1.7107,3.36056,200), weight = 1 - gamma, kinetic energy (MeV) = 2.3209, position (cm) = (10.4381,-5.89133,200), weight = 1 - gamma, kinetic energy (MeV) = 0.129713, position (cm) = (4.63267,-9.01226,200), weight = 1 - gamma, kinetic energy (MeV) = 3.50931, position (cm) = (-1.29164,0.697339,200), weight = 1 - gamma, kinetic energy (MeV) = 0.0527007, position (cm) = (-7.35902,-4.38769,200), weight = 1 - gamma, kinetic energy (MeV) = 0.334338, position (cm) = (4.47871,-3.47533,200), weight = 1 - gamma, kinetic energy (MeV) = 2.13948, position (cm) = (-1.66469,-1.10006,200), weight = 1 - gamma, kinetic energy (MeV) = 8.96383, position (cm) = (-1.40025,0.106714,200), weight = 1 - gamma, kinetic energy (MeV) = 2.76704, position (cm) = (1.69791,-37.2341,200), weight = 1 - gamma, kinetic energy (MeV) = 3.2187, position (cm) = (-1.57099,15.7096,200), weight = 1 - gamma, kinetic energy (MeV) = 8.28826, position (cm) = (4.05139,3.86836,200), weight = 1 - gamma, kinetic energy (MeV) = 0.663369, position (cm) = (2.99963,3.85209,200), weight = 1 - gamma, kinetic energy (MeV) = 1.32511, position (cm) = (13.303,-5.16996,200), weight = 1 - gamma, kinetic energy (MeV) = 8.0853, position (cm) = (-2.31024,0.282929,200), weight = 1 - gamma, kinetic energy (MeV) = 0.172322, position (cm) = (0.919561,-2.6264,200), weight = 1 - gamma, kinetic energy (MeV) = 5.39032, position (cm) = (-2.67901,1.3337,200), weight = 1 - gamma, kinetic energy (MeV) = 0.293873, position (cm) = (-1.49521,2.47142,200), weight = 1 - gamma, kinetic energy (MeV) = 0.320487, position (cm) = (-18.8063,-9.16466,200), weight = 1 - gamma, kinetic energy (MeV) = 1.01438, position (cm) = (1.17806,4.45461,200), weight = 1 - e+, kinetic energy (MeV) = 4.65044, position (cm) = (-1.97113,1.31984,200), weight = 1 - e-, kinetic energy (MeV) = 3.79929, position (cm) = (-1.79466,0.868766,200), weight = 1 - gamma, kinetic energy (MeV) = 5.97183, position (cm) = (-2.15654,1.12718,200), weight = 1 - gamma, kinetic energy (MeV) = 103.217, position (cm) = (0.236735,0.51674,200), weight = 1 - e-, kinetic energy (MeV) = 33.4842, position (cm) = (0.340539,1.0442,200), weight = 1 - gamma, kinetic energy (MeV) = 1.14264, position (cm) = (0.0830532,0.795184,200), weight = 1 - gamma, kinetic energy (MeV) = 0.223559, position (cm) = (-0.322656,1.41379,200), weight = 1 - gamma, kinetic energy (MeV) = 0.646316, position (cm) = (0.416322,1.00208,200), weight = 1 - gamma, kinetic energy (MeV) = 6.42186, position (cm) = (0.613734,0.87645,200), weight = 1 - gamma, kinetic energy (MeV) = 3.59798, position (cm) = (0.473611,1.00622,200), weight = 1 - gamma, kinetic energy (MeV) = 3.88386, position (cm) = (0.57034,0.970998,200), weight = 1 - gamma, kinetic energy (MeV) = 39.5437, position (cm) = (0.239227,1.25245,200), weight = 1 - gamma, kinetic energy (MeV) = 42.6389, position (cm) = (0.168814,1.38387,200), weight = 1 - gamma, kinetic energy (MeV) = 2.35475, position (cm) = (-0.146956,1.6626,200), weight = 1 - gamma, kinetic energy (MeV) = 0.160904, position (cm) = (-7.5294,-2.7558,200), weight = 1 - gamma, kinetic energy (MeV) = 0.101199, position (cm) = (0.768387,4.90694,200), weight = 1 - gamma, kinetic energy (MeV) = 0.344433, position (cm) = (8.16642,-7.95945,200), weight = 1 - gamma, kinetic energy (MeV) = 0.154531, position (cm) = (0.253126,0.52372,200), weight = 1 - gamma, kinetic energy (MeV) = 13.0061, position (cm) = (0.481802,-1.24024,200), weight = 1 - gamma, kinetic energy (MeV) = 0.127436, position (cm) = (-0.310987,-0.295241,200), weight = 1 - gamma, kinetic energy (MeV) = 80.2585, position (cm) = (-0.185132,0.941319,200), weight = 1 - gamma, kinetic energy (MeV) = 0.152473, position (cm) = (-9.29219,4.47274,200), weight = 1 - gamma, kinetic energy (MeV) = 18.7045, position (cm) = (-0.530506,1.54907,200), weight = 1 - gamma, kinetic energy (MeV) = 13.0518, position (cm) = (-0.451396,1.61124,200), weight = 1 - gamma, kinetic energy (MeV) = 57.8742, position (cm) = (0.500375,0.525369,200), weight = 1 - gamma, kinetic energy (MeV) = 0.693326, position (cm) = (-13.6419,23.0645,200), weight = 1 - gamma, kinetic energy (MeV) = 3.09537, position (cm) = (4.46807,2.5439,200), weight = 1 - gamma, kinetic energy (MeV) = 25.1638, position (cm) = (-9.45873,7.24707,200), weight = 1 - gamma, kinetic energy (MeV) = 5.8848, position (cm) = (-0.0796492,17.3683,200), weight = 1 - gamma, kinetic energy (MeV) = 11.0147, position (cm) = (-0.320004,-2.52708,200), weight = 1 - e+, kinetic energy (MeV) = 9.33859, position (cm) = (-2.95288,0.0653397,200), weight = 1 - gamma, kinetic energy (MeV) = 5.35417, position (cm) = (-3.00481,0.0331343,200), weight = 1 - gamma, kinetic energy (MeV) = 0.557973, position (cm) = (-2.98448,0.290216,200), weight = 1 - gamma, kinetic energy (MeV) = 73.4601, position (cm) = (-2.81661,-0.049368,200), weight = 1 - e-, kinetic energy (MeV) = 11.5312, position (cm) = (-2.85848,0.243582,200), weight = 1 - gamma, kinetic energy (MeV) = 8.69648, position (cm) = (1.92159,4.19479,200), weight = 1 - gamma, kinetic energy (MeV) = 0.259979, position (cm) = (-1.67263,-17.9655,200), weight = 1 - gamma, kinetic energy (MeV) = 3.27745, position (cm) = (-44.8489,-8.94966,200), weight = 1 - gamma, kinetic energy (MeV) = 0.51336, position (cm) = (3.75698,-27.1323,200), weight = 1 - gamma, kinetic energy (MeV) = 1.41249, position (cm) = (26.1965,-10.5653,200), weight = 1 - gamma, kinetic energy (MeV) = 0.318161, position (cm) = (10.8348,-3.84246,200), weight = 1 - gamma, kinetic energy (MeV) = 5.36583, position (cm) = (-23.6364,-3.51462,200), weight = 1 - gamma, kinetic energy (MeV) = 1.93798, position (cm) = (-19.9552,32.0411,200), weight = 1 - gamma, kinetic energy (MeV) = 0.089289, position (cm) = (1.18192,-20.5561,200), weight = 1 - gamma, kinetic energy (MeV) = 0.807054, position (cm) = (-13.1572,-22.8809,200), weight = 1 - gamma, kinetic energy (MeV) = 0.370893, position (cm) = (-0.0652729,-40.1634,200), weight = 1 - gamma, kinetic energy (MeV) = 6.04503, position (cm) = (-0.623671,-29.0507,200), weight = 1 - gamma, kinetic energy (MeV) = 5.82971, position (cm) = (-8.63458,-3.96511,200), weight = 1 - gamma, kinetic energy (MeV) = 2.58123, position (cm) = (0.757234,-12.0053,200), weight = 1 - gamma, kinetic energy (MeV) = 2.65191, position (cm) = (18.1587,-4.66523,200), weight = 1 - gamma, kinetic energy (MeV) = 2.74817, position (cm) = (8.90617,-1.15232,200), weight = 1 - gamma, kinetic energy (MeV) = 1.23454, position (cm) = (-6.36876,9.46981,200), weight = 1 - gamma, kinetic energy (MeV) = 0.390276, position (cm) = (-24.1068,-22.6822,200), weight = 1 - gamma, kinetic energy (MeV) = 0.258548, position (cm) = (-17.4751,-19.034,200), weight = 1 - gamma, kinetic energy (MeV) = 2.91308, position (cm) = (-6.60333,0.249242,200), weight = 1 - gamma, kinetic energy (MeV) = 1.05644, position (cm) = (17.9416,21.9724,200), weight = 1 - gamma, kinetic energy (MeV) = 1.06548, position (cm) = (11.661,-16.2486,200), weight = 1 - gamma, kinetic energy (MeV) = 2.54057, position (cm) = (-13.4835,21.4152,200), weight = 1 - gamma, kinetic energy (MeV) = 2.19096, position (cm) = (-0.575638,13.2543,200), weight = 1 - gamma, kinetic energy (MeV) = 0.426412, position (cm) = (-6.05389,-12.0091,200), weight = 1 - gamma, kinetic energy (MeV) = 0.202803, position (cm) = (-10.1014,-5.42079,200), weight = 1 - gamma, kinetic energy (MeV) = 0.0891187, position (cm) = (-17.0407,-11.5743,200), weight = 1 - gamma, kinetic energy (MeV) = 8.74466, position (cm) = (-30.0603,22.1071,200), weight = 1 - gamma, kinetic energy (MeV) = 6.7395, position (cm) = (-6.09564,8.17734,200), weight = 1 - gamma, kinetic energy (MeV) = 3.65923, position (cm) = (1.01687,50.546,200), weight = 1 - gamma, kinetic energy (MeV) = 36.3918, position (cm) = (-10.8546,4.70862,200), weight = 1 - gamma, kinetic energy (MeV) = 31.9081, position (cm) = (-13.9989,9.86663,200), weight = 1 - gamma, kinetic energy (MeV) = 2.57261, position (cm) = (-5.44324,-10.1022,200), weight = 1 - gamma, kinetic energy (MeV) = 0.755327, position (cm) = (30.455,-3.87725,200), weight = 1 - gamma, kinetic energy (MeV) = 0.247837, position (cm) = (-5.94911,37.4951,200), weight = 1 - gamma, kinetic energy (MeV) = 29.9639, position (cm) = (-1.05639,-1.85609,200), weight = 1 - gamma, kinetic energy (MeV) = 0.961805, position (cm) = (13.8799,13.409,200), weight = 1 - gamma, kinetic energy (MeV) = 0.708393, position (cm) = (4.47268,-4.09386,200), weight = 1 - gamma, kinetic energy (MeV) = 0.671713, position (cm) = (-14.1722,17.6335,200), weight = 1 - gamma, kinetic energy (MeV) = 4.6701, position (cm) = (-0.753239,-0.654792,200), weight = 1 - gamma, kinetic energy (MeV) = 18.8392, position (cm) = (-1.7836,0.0322892,200), weight = 1 - gamma, kinetic energy (MeV) = 0.130678, position (cm) = (20.0795,-11.852,200), weight = 1 - gamma, kinetic energy (MeV) = 0.536078, position (cm) = (8.50827,18.056,200), weight = 1 - gamma, kinetic energy (MeV) = 8.0584, position (cm) = (-0.208924,7.40951,200), weight = 1 - gamma, kinetic energy (MeV) = 1.12668, position (cm) = (3.24189,0.456759,200), weight = 1 - gamma, kinetic energy (MeV) = 1.01585, position (cm) = (-17.6436,7.39841,200), weight = 1 - gamma, kinetic energy (MeV) = 10.8251, position (cm) = (-25.9189,-0.141886,200), weight = 1 - gamma, kinetic energy (MeV) = 0.921014, position (cm) = (-10.0986,-5.79627,200), weight = 1 - gamma, kinetic energy (MeV) = 16.9237, position (cm) = (-8.56484,-11.3133,200), weight = 1 - e+, kinetic energy (MeV) = 7.53586, position (cm) = (-6.73645,-8.72858,200), weight = 1 - gamma, kinetic energy (MeV) = 1.09411, position (cm) = (-6.37125,-6.62163,200), weight = 1 - gamma, kinetic energy (MeV) = 0.406835, position (cm) = (-6.60343,-10.7479,200), weight = 1 - e-, kinetic energy (MeV) = 1.86917, position (cm) = (-4.57031,-8.6544,200), weight = 1 - gamma, kinetic energy (MeV) = 0.101722, position (cm) = (-4.32315,-8.8251,200), weight = 1 - e+, kinetic energy (MeV) = 10.004, position (cm) = (-5.81056,-7.25642,200), weight = 1 - gamma, kinetic energy (MeV) = 0.234031, position (cm) = (-5.86475,-6.94155,200), weight = 1 - e-, kinetic energy (MeV) = 9.72795, position (cm) = (-5.96678,-7.34961,200), weight = 1 - gamma, kinetic energy (MeV) = 0.438773, position (cm) = (-5.98002,-7.33273,200), weight = 1 - gamma, kinetic energy (MeV) = 2.82751, position (cm) = (-5.92144,-7.08967,200), weight = 1 - gamma, kinetic energy (MeV) = 10.9051, position (cm) = (-3.72481,-0.96201,200), weight = 1 - gamma, kinetic energy (MeV) = 7.22361, position (cm) = (-7.92662,-8.79152,200), weight = 1 - gamma, kinetic energy (MeV) = 15.8513, position (cm) = (-2.75721,-1.91785,200), weight = 1 - gamma, kinetic energy (MeV) = 17.6345, position (cm) = (-3.1244,-2.38561,200), weight = 1 - gamma, kinetic energy (MeV) = 0.127854, position (cm) = (0.19072,-4.61868,200), weight = 1 - gamma, kinetic energy (MeV) = 1.66973, position (cm) = (1.85573,-3.01086,200), weight = 1 - gamma, kinetic energy (MeV) = 0.560973, position (cm) = (0.666701,-4.54141,200), weight = 1 - gamma, kinetic energy (MeV) = 0.490124, position (cm) = (3.55376,-0.856809,200), weight = 1 - gamma, kinetic energy (MeV) = 2.74272, position (cm) = (3.22573,-1.19142,200), weight = 1 - gamma, kinetic energy (MeV) = 0.449155, position (cm) = (-4.50216,0.597898,200), weight = 1 - gamma, kinetic energy (MeV) = 0.137676, position (cm) = (3.38227,3.16789,200), weight = 1 - gamma, kinetic energy (MeV) = 0.981464, position (cm) = (10.6061,4.04847,200), weight = 1 - gamma, kinetic energy (MeV) = 1.5248, position (cm) = (15.4808,10.2011,200), weight = 1 - gamma, kinetic energy (MeV) = 0.456662, position (cm) = (-39.5589,-11.6394,200), weight = 1 - gamma, kinetic energy (MeV) = 1.4786, position (cm) = (23.1812,-13.389,200), weight = 1 - gamma, kinetic energy (MeV) = 5.09161, position (cm) = (0.576839,3.07709,200), weight = 1 - gamma, kinetic energy (MeV) = 13.2194, position (cm) = (2.60766,1.56713,200), weight = 1 - gamma, kinetic energy (MeV) = 0.155849, position (cm) = (-5.67921,-3.48347,200), weight = 1 - gamma, kinetic energy (MeV) = 0.223525, position (cm) = (-12.9014,5.68627,200), weight = 1 - gamma, kinetic energy (MeV) = 0.722078, position (cm) = (-5.34462,-5.52078,200), weight = 1 - gamma, kinetic energy (MeV) = 7.46108, position (cm) = (-9.12512,1.619,200), weight = 1 - gamma, kinetic energy (MeV) = 0.282755, position (cm) = (-3.98619,-8.10452,200), weight = 1 - gamma, kinetic energy (MeV) = 0.332184, position (cm) = (-31.455,6.90411,200), weight = 1 - gamma, kinetic energy (MeV) = 0.65166, position (cm) = (-2.96915,-15.9061,200), weight = 1 - gamma, kinetic energy (MeV) = 0.219379, position (cm) = (-2.75115,17.4367,200), weight = 1 - gamma, kinetic energy (MeV) = 2.95129, position (cm) = (-3.66568,2.75694,200), weight = 1 - gamma, kinetic energy (MeV) = 3.76529, position (cm) = (46.0464,-7.77595,200), weight = 1 - gamma, kinetic energy (MeV) = 104.306, position (cm) = (-0.500602,-1.82616,200), weight = 1 - gamma, kinetic energy (MeV) = 0.225962, position (cm) = (5.33501,-12.8406,200), weight = 1 - gamma, kinetic energy (MeV) = 8.99337, position (cm) = (-1.77081,0.391818,200), weight = 1 - gamma, kinetic energy (MeV) = 0.847068, position (cm) = (17.2124,8.84808,200), weight = 1 - gamma, kinetic energy (MeV) = 0.117518, position (cm) = (-27.522,-19.5143,200), weight = 1 - gamma, kinetic energy (MeV) = 0.180186, position (cm) = (-6.22934,-5.63998,200), weight = 1 - gamma, kinetic energy (MeV) = 0.723761, position (cm) = (-18.4718,-3.33845,200), weight = 1 - gamma, kinetic energy (MeV) = 3.79695, position (cm) = (2.24205,-6.7246,200), weight = 1 - gamma, kinetic energy (MeV) = 0.101633, position (cm) = (2.88288,-4.96217,200), weight = 1 - gamma, kinetic energy (MeV) = 24.1533, position (cm) = (2.40118,-5.33584,200), weight = 1 - gamma, kinetic energy (MeV) = 17.0843, position (cm) = (17.1317,34.3081,200), weight = 1 - gamma, kinetic energy (MeV) = 10.3159, position (cm) = (-24.0147,49.7542,200), weight = 1 - gamma, kinetic energy (MeV) = 1.50228, position (cm) = (0.523832,-2.52364,200), weight = 1 + neutron, kinetic energy (MeV) = 142.696, position (cm) = (43.404,7.62719,200), weight = 2 + gamma, kinetic energy (MeV) = 0.0909121, position (cm) = (86.8028,40.7594,200), weight = 8 + neutron, kinetic energy (MeV) = 2.21988, position (cm) = (74.4051,43.1299,200), weight = 4 + gamma, kinetic energy (MeV) = 0.283804, position (cm) = (85.7133,28.6589,200), weight = 1 + gamma, kinetic energy (MeV) = 0.425557, position (cm) = (7.36914,0.802965,200), weight = 3 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (-27.7594,-17.2098,200), weight = 1 + gamma, kinetic energy (MeV) = 0.169495, position (cm) = (-24.23,-13.9907,200), weight = 1 + e+, kinetic energy (MeV) = 10.7979, position (cm) = (-33.7645,-19.8324,200), weight = 1 + gamma, kinetic energy (MeV) = 8.96255, position (cm) = (-33.76,-19.8434,200), weight = 1 + gamma, kinetic energy (MeV) = 1.35829, position (cm) = (-33.6173,-19.4575,200), weight = 1 + gamma, kinetic energy (MeV) = 0.488841, position (cm) = (-33.1185,-18.7674,200), weight = 1 + gamma, kinetic energy (MeV) = 3.93676, position (cm) = (-33.2279,-18.9607,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0614801, position (cm) = (-31.3881,-15.1436,200), weight = 1 + e-, kinetic energy (MeV) = 10.0919, position (cm) = (-32.6464,-19.0121,200), weight = 1 + gamma, kinetic energy (MeV) = 1.34456, position (cm) = (-32.4991,-19.1654,200), weight = 1 + gamma, kinetic energy (MeV) = 0.695655, position (cm) = (-32.6191,-18.5651,200), weight = 1 + gamma, kinetic energy (MeV) = 1.54366, position (cm) = (-32.9659,-18.8869,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0777105, position (cm) = (-32.689,-18.7982,200), weight = 1 + gamma, kinetic energy (MeV) = 9.14205, position (cm) = (-32.0156,-18.7836,200), weight = 1 + gamma, kinetic energy (MeV) = 0.388574, position (cm) = (-26.074,-16.447,200), weight = 1 + gamma, kinetic energy (MeV) = 0.684657, position (cm) = (-27.8112,-9.83769,200), weight = 1 + gamma, kinetic energy (MeV) = 0.201289, position (cm) = (-27.9173,-11.0564,200), weight = 1 + gamma, kinetic energy (MeV) = 0.160729, position (cm) = (-27.687,-16.7589,200), weight = 1 + neutron, kinetic energy (MeV) = 671.969, position (cm) = (1.39749,13.3475,200), weight = 1 + gamma, kinetic energy (MeV) = 1.23458, position (cm) = (-23.6608,-10.1847,200), weight = 1 + gamma, kinetic energy (MeV) = 0.171718, position (cm) = (-25.6475,7.0653,200), weight = 1 + gamma, kinetic energy (MeV) = 0.429901, position (cm) = (-22.2572,11.34,200), weight = 1 + e-, kinetic energy (MeV) = 2.56481, position (cm) = (-26.5093,10.0364,200), weight = 1 + gamma, kinetic energy (MeV) = 7.57587, position (cm) = (-19.2423,17.5611,200), weight = 1 + gamma, kinetic energy (MeV) = 0.454286, position (cm) = (-21.455,6.08934,200), weight = 1 + gamma, kinetic energy (MeV) = 3.4717, position (cm) = (-19.851,11.0047,200), weight = 1 + gamma, kinetic energy (MeV) = 17.8116, position (cm) = (-20.9303,9.18452,200), weight = 1 + gamma, kinetic energy (MeV) = 0.171236, position (cm) = (-24.8064,16.4012,200), weight = 1 + gamma, kinetic energy (MeV) = 0.12721, position (cm) = (-24.5383,10.3374,200), weight = 1 + gamma, kinetic energy (MeV) = 2.49671, position (cm) = (-24.7928,10.5425,200), weight = 1 + gamma, kinetic energy (MeV) = 0.67288, position (cm) = (-25.17,11.3851,200), weight = 1 + gamma, kinetic energy (MeV) = 0.12734, position (cm) = (-23.3964,21.6577,200), weight = 1 + gamma, kinetic energy (MeV) = 0.34405, position (cm) = (-26.0358,7.31551,200), weight = 1 + gamma, kinetic energy (MeV) = 0.182216, position (cm) = (-16.7505,42.1127,200), weight = 1 + gamma, kinetic energy (MeV) = 20.7757, position (cm) = (-17.6417,11.3963,200), weight = 1 + gamma, kinetic energy (MeV) = 1.5913, position (cm) = (-10.9951,12.0074,200), weight = 1 + nu_e, kinetic energy (MeV) = 28.2962, position (cm) = (-22.9927,-46.4561,200), weight = 1 + anti_nu_mu, kinetic energy (MeV) = 24.9734, position (cm) = (-81.1566,38.1876,200), weight = 1 + proton, kinetic energy (MeV) = 644.316, position (cm) = (-13.4585,-11.865,200), weight = 1 + nu_e, kinetic energy (MeV) = 46.3017, position (cm) = (25.5274,-31.0929,200), weight = 4 + nu_mu, kinetic energy (MeV) = 29.7919, position (cm) = (95.8162,85.2067,200), weight = 4 + neutron, kinetic energy (MeV) = 47.0003, position (cm) = (-38.1502,-86.6079,200), weight = 10 + neutron, kinetic energy (MeV) = 68.1366, position (cm) = (-31.0636,-86.3299,200), weight = 5 + gamma, kinetic energy (MeV) = 6.86609, position (cm) = (-26.8625,-12.0984,200), weight = 3 + gamma, kinetic energy (MeV) = 165.787, position (cm) = (-13.8019,-22.1327,200), weight = 3 + gamma, kinetic energy (MeV) = 10.8379, position (cm) = (-18.4268,-21.2303,200), weight = 3 + gamma, kinetic energy (MeV) = 23.0848, position (cm) = (-8.40171,-18.8419,200), weight = 3 + neutron, kinetic energy (MeV) = 3937.84, position (cm) = (-6.06758,6.06176,200), weight = 1 + anti_nu_mu, kinetic energy (MeV) = 32.5049, position (cm) = (60.3637,48.9346,200), weight = 3 + proton, kinetic energy (MeV) = 261.082, position (cm) = (11.0205,9.44554,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0960682, position (cm) = (30.9872,39.0504,200), weight = 1 + e+, kinetic energy (MeV) = 4.60411, position (cm) = (41.6484,54.2261,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0573472, position (cm) = (41.6154,54.1817,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0989533, position (cm) = (41.9035,54.1983,200), weight = 1 + gamma, kinetic energy (MeV) = 0.633063, position (cm) = (41.5273,54.1126,200), weight = 1 + gamma, kinetic energy (MeV) = 0.290566, position (cm) = (41.8661,54.3506,200), weight = 1 + gamma, kinetic energy (MeV) = 2.45912, position (cm) = (42.0597,54.4292,200), weight = 1 + gamma, kinetic energy (MeV) = 0.084384, position (cm) = (45.3579,50.944,200), weight = 1 + e-, kinetic energy (MeV) = 0.723352, position (cm) = (43.7221,56.5359,200), weight = 1 + gamma, kinetic energy (MeV) = 0.17969, position (cm) = (31.8978,47.0489,200), weight = 1 + gamma, kinetic energy (MeV) = 2.16151, position (cm) = (39.0885,54.2366,200), weight = 1 + gamma, kinetic energy (MeV) = 0.308028, position (cm) = (39.7993,32.301,200), weight = 1 + pi+, kinetic energy (MeV) = 139.656, position (cm) = (-25.1682,-0.0936466,200), weight = 2 + gamma, kinetic energy (MeV) = 8.89203, position (cm) = (-2.56658,7.52085,200), weight = 1 + pi+, kinetic energy (MeV) = 132.961, position (cm) = (8.42369,9.34351,200), weight = 1 + neutron, kinetic energy (MeV) = 358.175, position (cm) = (-2.03932,7.52423,200), weight = 1 + neutron, kinetic energy (MeV) = 1391.8, position (cm) = (3.35052,5.65992,200), weight = 1 + nu_e, kinetic energy (MeV) = 36.9424, position (cm) = (-89.3438,68.6726,200), weight = 1 + gamma, kinetic energy (MeV) = 0.152931, position (cm) = (-10.1044,-0.900106,200), weight = 1 + gamma, kinetic energy (MeV) = 5.13002, position (cm) = (7.53476,-8.99334,200), weight = 1 + gamma, kinetic energy (MeV) = 9.1265, position (cm) = (5.92997,-1.4392,200), weight = 1 + gamma, kinetic energy (MeV) = 7.04049, position (cm) = (8.32211,-1.37518,200), weight = 1 + gamma, kinetic energy (MeV) = 0.137698, position (cm) = (15.3716,-20.859,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0796083, position (cm) = (15.0315,-2.87887,200), weight = 1 + gamma, kinetic energy (MeV) = 4.71826, position (cm) = (15.6648,1.04405,200), weight = 1 + e-, kinetic energy (MeV) = 0.57458, position (cm) = (15.1194,0.912216,200), weight = 1 + gamma, kinetic energy (MeV) = 3.20917, position (cm) = (12.7345,-15.8846,200), weight = 1 + proton, kinetic energy (MeV) = 408.016, position (cm) = (-17.6381,-19.3027,200), weight = 1 + proton, kinetic energy (MeV) = 3241.42, position (cm) = (-7.00762,-13.6145,200), weight = 1 + gamma, kinetic energy (MeV) = 0.785558, position (cm) = (4.26145,-23.8408,200), weight = 3 + gamma, kinetic energy (MeV) = 4.10955, position (cm) = (-24.8747,-28.9989,200), weight = 1 + gamma, kinetic energy (MeV) = 22.3672, position (cm) = (-12.0913,-25.7771,200), weight = 1 + gamma, kinetic energy (MeV) = 1.22594, position (cm) = (-15.4668,-23.8025,200), weight = 1 + gamma, kinetic energy (MeV) = 7.57363, position (cm) = (-12.4521,-20.9486,200), weight = 1 + gamma, kinetic energy (MeV) = 2.98623, position (cm) = (-17.7975,-21.1758,200), weight = 1 + gamma, kinetic energy (MeV) = 7.72437, position (cm) = (-18.3945,-23.8113,200), weight = 1 + gamma, kinetic energy (MeV) = 0.459742, position (cm) = (-22.4754,-21.1393,200), weight = 1 + gamma, kinetic energy (MeV) = 3.06165, position (cm) = (-24.9949,-20.7817,200), weight = 1 + neutron, kinetic energy (MeV) = 40.0063, position (cm) = (22.001,-8.37985,200), weight = 1 + neutron, kinetic energy (MeV) = 39.1867, position (cm) = (-27.2714,17.7061,200), weight = 4 + gamma, kinetic energy (MeV) = 0.542421, position (cm) = (5.03563,5.87324,200), weight = 4 + neutron, kinetic energy (MeV) = 11.2461, position (cm) = (13.6245,9.4222,200), weight = 2 + neutron, kinetic energy (MeV) = 171.794, position (cm) = (-43.0767,-60.1616,200), weight = 2 + gamma, kinetic energy (MeV) = 6.16453, position (cm) = (29.3067,19.4725,200), weight = 2 + neutron, kinetic energy (MeV) = 0.000301575, position (cm) = (23.3479,21.8031,200), weight = 2 + neutron, kinetic energy (MeV) = 0.000143526, position (cm) = (30.1624,37.4454,200), weight = 4 + gamma, kinetic energy (MeV) = 5.84605, position (cm) = (8.87978,65.9241,200), weight = 1 + gamma, kinetic energy (MeV) = 39.1131, position (cm) = (-73.1932,-12.6799,200), weight = 1 + nu_mu, kinetic energy (MeV) = 29.7919, position (cm) = (-9.30063,68.7114,200), weight = 1 + gamma, kinetic energy (MeV) = 0.312043, position (cm) = (38.0319,57.6501,200), weight = 1 + gamma, kinetic energy (MeV) = 0.644941, position (cm) = (42.1858,51.7627,200), weight = 1 + gamma, kinetic energy (MeV) = 12.1468, position (cm) = (-68.8006,15.4729,200), weight = 3 + gamma, kinetic energy (MeV) = 7.13441, position (cm) = (-69.8027,18.2041,200), weight = 3 + gamma, kinetic energy (MeV) = 1.66524, position (cm) = (-55.1726,31.7472,200), weight = 3 + gamma, kinetic energy (MeV) = 0.363566, position (cm) = (-70.4568,23.5555,200), weight = 3 + gamma, kinetic energy (MeV) = 0.216886, position (cm) = (-67.1603,16.8854,200), weight = 3 + pi+, kinetic energy (MeV) = 577.286, position (cm) = (-13.1663,17.3263,200), weight = 2 + gamma, kinetic energy (MeV) = 1.08648, position (cm) = (29.9844,11.618,200), weight = 5 + gamma, kinetic energy (MeV) = 0.151278, position (cm) = (-0.539915,19.4298,200), weight = 1 + gamma, kinetic energy (MeV) = 0.096346, position (cm) = (-12.8593,5.62989,200), weight = 1 + gamma, kinetic energy (MeV) = 20.5903, position (cm) = (-16.4941,10.6733,200), weight = 1 + gamma, kinetic energy (MeV) = 0.239655, position (cm) = (-17.9542,10.8632,200), weight = 1 + gamma, kinetic energy (MeV) = 1.41464, position (cm) = (-17.5779,8.15953,200), weight = 1 + neutron, kinetic energy (MeV) = 2.57771, position (cm) = (-3.66038,26.0542,200), weight = 2 + gamma, kinetic energy (MeV) = 0.0841402, position (cm) = (19.4197,33.3952,200), weight = 2 + neutron, kinetic energy (MeV) = 7.9705, position (cm) = (3.0931,21.0932,200), weight = 2 + gamma, kinetic energy (MeV) = 0.14433, position (cm) = (2.36852,28.3093,200), weight = 4 + gamma, kinetic energy (MeV) = 0.283929, position (cm) = (5.67836,28.9342,200), weight = 2 + proton, kinetic energy (MeV) = 97.3902, position (cm) = (-6.6093,26.0884,200), weight = 2 + gamma, kinetic energy (MeV) = 516.095, position (cm) = (-7.83137,29.6179,200), weight = 2 + gamma, kinetic energy (MeV) = 0.330828, position (cm) = (-6.8197,36.6619,200), weight = 6 + gamma, kinetic energy (MeV) = 0.169007, position (cm) = (-14.6947,18.7863,200), weight = 6 + gamma, kinetic energy (MeV) = 0.592828, position (cm) = (-5.34647,39.6862,200), weight = 6 + gamma, kinetic energy (MeV) = 0.661291, position (cm) = (-4.80919,30.1375,200), weight = 6 + gamma, kinetic energy (MeV) = 1.21155, position (cm) = (-4.93866,39.0137,200), weight = 6 + proton, kinetic energy (MeV) = 2128.34, position (cm) = (-6.81858,7.0732,200), weight = 1 + gamma, kinetic energy (MeV) = 2.66137, position (cm) = (-10.6251,9.10252,200), weight = 1 + nu_e, kinetic energy (MeV) = 43.8649, position (cm) = (46.2769,-53.0455,200), weight = 3 + gamma, kinetic energy (MeV) = 0.275278, position (cm) = (-4.87507,2.64649,200), weight = 4 + neutron, kinetic energy (MeV) = 0.500386, position (cm) = (-2.52517,4.76031,200), weight = 4 + gamma, kinetic energy (MeV) = 1.29467, position (cm) = (-6.43869,6.64536,200), weight = 4 + gamma, kinetic energy (MeV) = 0.331581, position (cm) = (-27.4799,48.6126,200), weight = 3 + gamma, kinetic energy (MeV) = 0.58916, position (cm) = (-13.9596,47.7737,200), weight = 3 + gamma, kinetic energy (MeV) = 10.5601, position (cm) = (-19.9389,54.0054,200), weight = 3 + gamma, kinetic energy (MeV) = 1.4538, position (cm) = (-20.2519,52.2706,200), weight = 3 + gamma, kinetic energy (MeV) = 18.0378, position (cm) = (-18.7228,57.7511,200), weight = 3 + gamma, kinetic energy (MeV) = 16.4267, position (cm) = (-34.0872,48.2678,200), weight = 1 + gamma, kinetic energy (MeV) = 0.258552, position (cm) = (-42.2466,91.2627,200), weight = 1 + gamma, kinetic energy (MeV) = 6.92537, position (cm) = (-35.9942,49.029,200), weight = 1 + gamma, kinetic energy (MeV) = 1.86759, position (cm) = (-24.882,43.9707,200), weight = 1 + e-, kinetic energy (MeV) = 2.06343, position (cm) = (-24.7946,43.9483,200), weight = 1 + neutron, kinetic energy (MeV) = 5.24213, position (cm) = (-10.1962,34.1244,200), weight = 4 + gamma, kinetic energy (MeV) = 1.93616, position (cm) = (44.9112,-8.91257,200), weight = 2 + neutron, kinetic energy (MeV) = 5.96937, position (cm) = (-8.33096,-12.8297,200), weight = 8 + neutron, kinetic energy (MeV) = 310.113, position (cm) = (-8.42619,-12.9195,200), weight = 4 + e+, kinetic energy (MeV) = 87.9349, position (cm) = (-0.679929,-0.287355,200), weight = 1 + gamma, kinetic energy (MeV) = 4.22956, position (cm) = (-0.678064,-0.28904,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0564579, position (cm) = (-0.577675,-0.453671,200), weight = 1 + e-, kinetic energy (MeV) = 22.143, position (cm) = (-0.704464,-0.254448,200), weight = 1 + gamma, kinetic energy (MeV) = 0.100758, position (cm) = (-1.77812,-0.229173,200), weight = 1 + gamma, kinetic energy (MeV) = 0.201737, position (cm) = (-0.691307,-0.282036,200), weight = 1 + gamma, kinetic energy (MeV) = 2.16837, position (cm) = (-0.727515,-0.29635,200), weight = 1 + gamma, kinetic energy (MeV) = 0.104308, position (cm) = (-7.42537,-2.10052,200), weight = 1 + gamma, kinetic energy (MeV) = 0.430683, position (cm) = (-15.9083,-0.986612,200), weight = 1 + gamma, kinetic energy (MeV) = 0.170953, position (cm) = (-0.711052,-0.111528,200), weight = 1 + e-, kinetic energy (MeV) = 348.144, position (cm) = (-0.818745,-0.38932,200), weight = 1 + gamma, kinetic energy (MeV) = 5.00708, position (cm) = (-0.819015,-0.389201,200), weight = 1 + gamma, kinetic energy (MeV) = 0.921972, position (cm) = (-0.818414,-0.38114,200), weight = 1 + gamma, kinetic energy (MeV) = 4.43792, position (cm) = (-0.820708,-0.379359,200), weight = 1 + gamma, kinetic energy (MeV) = 0.277133, position (cm) = (-0.807681,-0.39789,200), weight = 1 + gamma, kinetic energy (MeV) = 97.3071, position (cm) = (-0.821065,-0.468571,200), weight = 1 + gamma, kinetic energy (MeV) = 234.661, position (cm) = (-0.822254,-0.443518,200), weight = 1 + gamma, kinetic energy (MeV) = 23.3285, position (cm) = (-0.820527,-0.448616,200), weight = 1 + gamma, kinetic energy (MeV) = 0.467368, position (cm) = (-0.120815,-1.1712,200), weight = 1 + gamma, kinetic energy (MeV) = 71.8706, position (cm) = (-0.79772,-0.447961,200), weight = 1 + gamma, kinetic energy (MeV) = 4.0914, position (cm) = (0.270582,0.462927,200), weight = 1 + gamma, kinetic energy (MeV) = 74.9102, position (cm) = (-9.99813,-11.7687,200), weight = 3 + gamma, kinetic energy (MeV) = 147.386, position (cm) = (7.24885,-23.0833,200), weight = 1 + gamma, kinetic energy (MeV) = 8.45959, position (cm) = (-5.24244,-0.28631,200), weight = 3 + gamma, kinetic energy (MeV) = 0.0672785, position (cm) = (-4.62606,-0.97416,200), weight = 3 + pi+, kinetic energy (MeV) = 33.586, position (cm) = (-5.3244,2.15135,200), weight = 3 + gamma, kinetic energy (MeV) = 150.623, position (cm) = (-4.33285,1.71635,200), weight = 2 + gamma, kinetic energy (MeV) = 0.0902086, position (cm) = (-2.4845,0.253608,200), weight = 6 + gamma, kinetic energy (MeV) = 0.22004, position (cm) = (-3.50035,6.46896,200), weight = 6 + gamma, kinetic energy (MeV) = 0.117011, position (cm) = (-5.95843,0.847499,200), weight = 6 + gamma, kinetic energy (MeV) = 0.683658, position (cm) = (4.0114,0.403428,200), weight = 12 + pi+, kinetic energy (MeV) = 1523.29, position (cm) = (-4.3719,1.04611,200), weight = 1 + gamma, kinetic energy (MeV) = 0.809483, position (cm) = (-19.0959,50.2917,200), weight = 1 + pi+, kinetic energy (MeV) = 2688.63, position (cm) = (2.31532,-9.53609,200), weight = 1 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (32.9188,0.414886,200), weight = 2 + gamma, kinetic energy (MeV) = 0.166524, position (cm) = (39.9694,15.0579,200), weight = 2 + gamma, kinetic energy (MeV) = 0.302057, position (cm) = (39.001,1.66133,200), weight = 2 + gamma, kinetic energy (MeV) = 0.271641, position (cm) = (48.9081,7.99888,200), weight = 2 + gamma, kinetic energy (MeV) = 0.972909, position (cm) = (59.918,18.9552,200), weight = 2 + gamma, kinetic energy (MeV) = 4.03855, position (cm) = (42.9106,3.91057,200), weight = 2 + gamma, kinetic energy (MeV) = 15.9751, position (cm) = (42.0602,5.44117,200), weight = 2 + gamma, kinetic energy (MeV) = 2.00803, position (cm) = (41.0904,4.61296,200), weight = 2 + gamma, kinetic energy (MeV) = 88.2856, position (cm) = (40.724,4.60388,200), weight = 2 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (40.5658,4.86698,200), weight = 2 + gamma, kinetic energy (MeV) = 0.0523782, position (cm) = (40.5157,4.43055,200), weight = 2 + e-, kinetic energy (MeV) = 4.75552, position (cm) = (40.5967,5.19003,200), weight = 2 + gamma, kinetic energy (MeV) = 0.123759, position (cm) = (35.0109,5.05608,200), weight = 2 + neutron, kinetic energy (MeV) = 240.208, position (cm) = (-62.179,63.6723,200), weight = 4 + gamma, kinetic energy (MeV) = 16.3675, position (cm) = (-14.5922,46.9738,200), weight = 1 + anti_nu_mu, kinetic energy (MeV) = 47.96, position (cm) = (89.6432,63.1844,200), weight = 3 + gamma, kinetic energy (MeV) = 10.4188, position (cm) = (7.13814,26.0601,200), weight = 1 + gamma, kinetic energy (MeV) = 15.1052, position (cm) = (2.26186,-2.59104,200), weight = 1 + e+, kinetic energy (MeV) = 158.234, position (cm) = (1.70367,-0.239225,200), weight = 1 + e-, kinetic energy (MeV) = 15.5044, position (cm) = (1.70491,-0.226425,200), weight = 1 + gamma, kinetic energy (MeV) = 0.214226, position (cm) = (5.83812,-15.1049,200), weight = 1 + gamma, kinetic energy (MeV) = 1.53609, position (cm) = (29.6998,38.1556,200), weight = 1 + gamma, kinetic energy (MeV) = 106.232, position (cm) = (8.05709,6.04875,200), weight = 1 + gamma, kinetic energy (MeV) = 6.03272, position (cm) = (22.1283,-25.2744,200), weight = 1 + gamma, kinetic energy (MeV) = 11.5605, position (cm) = (17.8594,-15.8782,200), weight = 1 + gamma, kinetic energy (MeV) = 1.39126, position (cm) = (-21.7514,-14.06,200), weight = 1 + gamma, kinetic energy (MeV) = 2.70122, position (cm) = (2.40451,-2.79035,200), weight = 1 + gamma, kinetic energy (MeV) = 0.472407, position (cm) = (-14.4351,5.40549,200), weight = 1 + gamma, kinetic energy (MeV) = 0.412537, position (cm) = (14.1452,-3.91619,200), weight = 1 + gamma, kinetic energy (MeV) = 1.38944, position (cm) = (-7.95702,-8.49917,200), weight = 1 + e-, kinetic energy (MeV) = 11.4688, position (cm) = (-0.901237,-5.16444,200), weight = 1 + gamma, kinetic energy (MeV) = 0.365546, position (cm) = (-0.91822,-5.14786,200), weight = 1 + gamma, kinetic energy (MeV) = 6.41017, position (cm) = (-0.656164,-4.72775,200), weight = 1 + gamma, kinetic energy (MeV) = 7.52751, position (cm) = (-0.78562,-4.70738,200), weight = 1 + gamma, kinetic energy (MeV) = 4.68561, position (cm) = (-0.777691,-4.72114,200), weight = 1 + gamma, kinetic energy (MeV) = 73.4566, position (cm) = (-2.77579,-3.56092,200), weight = 1 + gamma, kinetic energy (MeV) = 0.573824, position (cm) = (-3.6161,-2.83445,200), weight = 1 + gamma, kinetic energy (MeV) = 10.4816, position (cm) = (-22.3408,-8.2405,200), weight = 1 + gamma, kinetic energy (MeV) = 2.78335, position (cm) = (4.13679,6.04314,200), weight = 1 + gamma, kinetic energy (MeV) = 6.55758, position (cm) = (4.08591,-2.51632,200), weight = 1 + gamma, kinetic energy (MeV) = 3.00428, position (cm) = (11.6357,8.85419,200), weight = 1 + gamma, kinetic energy (MeV) = 32.556, position (cm) = (0.385443,1.70695,200), weight = 1 + gamma, kinetic energy (MeV) = 1.79981, position (cm) = (-8.42414,-6.40018,200), weight = 1 + gamma, kinetic energy (MeV) = 1.55825, position (cm) = (-2.78351,10.9884,200), weight = 1 + gamma, kinetic energy (MeV) = 1.65915, position (cm) = (9.60612,8.43909,200), weight = 1 + gamma, kinetic energy (MeV) = 12.0085, position (cm) = (6.42261,-1.1895,200), weight = 1 + gamma, kinetic energy (MeV) = 0.822357, position (cm) = (-11.0459,9.73887,200), weight = 1 + gamma, kinetic energy (MeV) = 2.56649, position (cm) = (6.30767,-2.05215,200), weight = 1 + gamma, kinetic energy (MeV) = 1.94793, position (cm) = (-3.81093,1.98158,200), weight = 1 + e-, kinetic energy (MeV) = 6.37098, position (cm) = (-1.585,0.914097,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0710264, position (cm) = (-1.58022,0.916065,200), weight = 1 + gamma, kinetic energy (MeV) = 3.17894, position (cm) = (-11.021,26.0974,200), weight = 1 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (-2.4759,-0.987652,200), weight = 1 + gamma, kinetic energy (MeV) = 0.127071, position (cm) = (-4.02206,2.95481,200), weight = 1 + gamma, kinetic energy (MeV) = 10.9163, position (cm) = (-4.97449,4.97328,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0827965, position (cm) = (5.47555,-5.35192,200), weight = 1 + gamma, kinetic energy (MeV) = 6.94768, position (cm) = (-3.2108,-1.4402,200), weight = 1 + gamma, kinetic energy (MeV) = 3.78082, position (cm) = (-5.78026,-3.59195,200), weight = 1 + gamma, kinetic energy (MeV) = 1.71224, position (cm) = (-4.11168,-1.99398,200), weight = 1 + gamma, kinetic energy (MeV) = 0.229908, position (cm) = (9.08561,11.078,200), weight = 1 + gamma, kinetic energy (MeV) = 0.666227, position (cm) = (1.61805,5.81464,200), weight = 1 + gamma, kinetic energy (MeV) = 0.26756, position (cm) = (-0.765481,19.9402,200), weight = 1 + gamma, kinetic energy (MeV) = 3.71358, position (cm) = (-15.9662,-7.9998,200), weight = 1 + gamma, kinetic energy (MeV) = 0.312625, position (cm) = (-4.47162,1.91415,200), weight = 1 + gamma, kinetic energy (MeV) = 0.438521, position (cm) = (0.492198,-0.99958,200), weight = 1 + gamma, kinetic energy (MeV) = 0.787225, position (cm) = (-1.2097,-2.3483,200), weight = 1 + gamma, kinetic energy (MeV) = 0.635995, position (cm) = (0.145349,-3.16689,200), weight = 1 + gamma, kinetic energy (MeV) = 5.33064, position (cm) = (-11.6369,0.119645,200), weight = 1 + gamma, kinetic energy (MeV) = 9.70688, position (cm) = (-1.4015,0.427812,200), weight = 1 + gamma, kinetic energy (MeV) = 0.218292, position (cm) = (-8.13132,-0.41113,200), weight = 1 + gamma, kinetic energy (MeV) = 1.86506, position (cm) = (1.99565,-19.3947,200), weight = 1 + gamma, kinetic energy (MeV) = 7.01385, position (cm) = (9.4986,-18.4657,200), weight = 1 + gamma, kinetic energy (MeV) = 1.45422, position (cm) = (-16.0702,-12.3536,200), weight = 3 + gamma, kinetic energy (MeV) = 0.0437175, position (cm) = (4.71561,-2.20354,200), weight = 1 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (7.5695,3.04323,200), weight = 1 + gamma, kinetic energy (MeV) = 0.156654, position (cm) = (3.22078,7.32207,200), weight = 1 + gamma, kinetic energy (MeV) = 0.282201, position (cm) = (8.762,4.93699,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0613105, position (cm) = (7.48582,1.4277,200), weight = 1 + e-, kinetic energy (MeV) = 41.9488, position (cm) = (7.55607,1.49791,200), weight = 1 + e-, kinetic energy (MeV) = 0.840115, position (cm) = (7.54482,1.51954,200), weight = 1 + gamma, kinetic energy (MeV) = 0.549944, position (cm) = (7.63407,1.48931,200), weight = 1 + gamma, kinetic energy (MeV) = 1.80239, position (cm) = (7.6514,1.45769,200), weight = 1 + gamma, kinetic energy (MeV) = 12.7219, position (cm) = (1.42009,3.68093,200), weight = 1 + gamma, kinetic energy (MeV) = 0.102425, position (cm) = (5.57948,6.12162,200), weight = 1 + gamma, kinetic energy (MeV) = 0.209254, position (cm) = (-16.6832,18.0941,200), weight = 1 + gamma, kinetic energy (MeV) = 1.9846, position (cm) = (2.14497,2.38758,200), weight = 1 + gamma, kinetic energy (MeV) = 0.476484, position (cm) = (-32.6367,20.1384,200), weight = 1 + gamma, kinetic energy (MeV) = 18.0279, position (cm) = (0.987267,-0.890291,200), weight = 1 + gamma, kinetic energy (MeV) = 2.34875, position (cm) = (19.1873,-21.8469,200), weight = 1 + gamma, kinetic energy (MeV) = 4.79523, position (cm) = (-15.0917,-7.95359,200), weight = 1 + gamma, kinetic energy (MeV) = 1.76897, position (cm) = (-7.21001,-21.4685,200), weight = 1 + gamma, kinetic energy (MeV) = 0.237499, position (cm) = (45.9577,-11.8335,200), weight = 1 + gamma, kinetic energy (MeV) = 24.2755, position (cm) = (6.4733,-10.7205,200), weight = 1 + gamma, kinetic energy (MeV) = 1.32367, position (cm) = (7.62084,40.1604,200), weight = 1 + gamma, kinetic energy (MeV) = 49.7612, position (cm) = (15.0946,2.26911,200), weight = 1 + gamma, kinetic energy (MeV) = 0.899231, position (cm) = (8.11032,13.8682,200), weight = 1 + gamma, kinetic energy (MeV) = 0.269576, position (cm) = (0.215042,6.11326,200), weight = 1 + gamma, kinetic energy (MeV) = 5.36783, position (cm) = (6.68294,4.89077,200), weight = 1 + gamma, kinetic energy (MeV) = 2.53694, position (cm) = (-31.8633,16.3664,200), weight = 1 + gamma, kinetic energy (MeV) = 75.4529, position (cm) = (-2.31944,3.51797,200), weight = 1 + gamma, kinetic energy (MeV) = 6.88086, position (cm) = (-5.18887,-8.37504,200), weight = 1 + gamma, kinetic energy (MeV) = 2.91633, position (cm) = (-16.6436,7.80654,200), weight = 1 + gamma, kinetic energy (MeV) = 3.53581, position (cm) = (14.0313,-5.41406,200), weight = 1 + gamma, kinetic energy (MeV) = 10.0761, position (cm) = (10.1729,-0.184822,200), weight = 1 + gamma, kinetic energy (MeV) = 5.23962, position (cm) = (7.18617,-2.44953,200), weight = 1 + gamma, kinetic energy (MeV) = 7.62345, position (cm) = (-2.27763,-4.77463,200), weight = 1 + gamma, kinetic energy (MeV) = 0.248591, position (cm) = (0.986536,-10.8238,200), weight = 1 + gamma, kinetic energy (MeV) = 0.323556, position (cm) = (-2.97371,-7.9945,200), weight = 1 + gamma, kinetic energy (MeV) = 24.3751, position (cm) = (-0.0815829,-2.92694,200), weight = 1 + gamma, kinetic energy (MeV) = 0.549008, position (cm) = (-0.553345,-1.2044,200), weight = 1 + gamma, kinetic energy (MeV) = 24.2601, position (cm) = (-4.52711,2.24652,200), weight = 1 + gamma, kinetic energy (MeV) = 5.01878, position (cm) = (0.289325,-0.110107,200), weight = 1 + gamma, kinetic energy (MeV) = 1.69976, position (cm) = (-5.38314,-7.7033,200), weight = 1 + gamma, kinetic energy (MeV) = 0.843889, position (cm) = (-12.451,10.542,200), weight = 1 + gamma, kinetic energy (MeV) = 0.274299, position (cm) = (-10.1213,-9.09457,200), weight = 1 + e+, kinetic energy (MeV) = 2.47616, position (cm) = (-27.1466,4.62065,200), weight = 1 + e-, kinetic energy (MeV) = 0.725479, position (cm) = (-26.8596,4.37893,200), weight = 1 + gamma, kinetic energy (MeV) = 5.86921, position (cm) = (18.7117,-9.4964,200), weight = 1 + gamma, kinetic energy (MeV) = 0.712363, position (cm) = (5.79276,12.7699,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0584214, position (cm) = (-2.17059,-14.3229,200), weight = 1 + gamma, kinetic energy (MeV) = 6.2283, position (cm) = (-11.6585,7.65462,200), weight = 1 + gamma, kinetic energy (MeV) = 0.631062, position (cm) = (7.26957,7.42673,200), weight = 1 + gamma, kinetic energy (MeV) = 0.630781, position (cm) = (7.81424,33.7248,200), weight = 1 + gamma, kinetic energy (MeV) = 9.21139, position (cm) = (-13.7856,6.44437,200), weight = 1 + gamma, kinetic energy (MeV) = 9.57813, position (cm) = (-1.5155,-1.62653,200), weight = 1 + gamma, kinetic energy (MeV) = 0.289156, position (cm) = (-1.56994,22.6216,200), weight = 1 + gamma, kinetic energy (MeV) = 10.5831, position (cm) = (1.73903,0.948834,200), weight = 1 + gamma, kinetic energy (MeV) = 5.69714, position (cm) = (1.37683,-6.90585,200), weight = 1 + gamma, kinetic energy (MeV) = 0.12185, position (cm) = (-0.0537913,-21.0266,200), weight = 1 + gamma, kinetic energy (MeV) = 5.00407, position (cm) = (4.63739,-4.04866,200), weight = 1 + gamma, kinetic energy (MeV) = 1.05605, position (cm) = (-6.05792,-1.56001,200), weight = 1 + gamma, kinetic energy (MeV) = 1.97636, position (cm) = (-9.55986,-3.80445,200), weight = 1 + gamma, kinetic energy (MeV) = 0.192321, position (cm) = (-1.92141,-5.10701,200), weight = 1 + gamma, kinetic energy (MeV) = 21.3619, position (cm) = (-2.78867,2.54829,200), weight = 1 + gamma, kinetic energy (MeV) = 1.96088, position (cm) = (-2.58533,2.98336,200), weight = 1 + gamma, kinetic energy (MeV) = 37.2165, position (cm) = (-4.14476,2.33366,200), weight = 1 + gamma, kinetic energy (MeV) = 4.65321, position (cm) = (-3.31057,2.85053,200), weight = 1 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (-1.01324,2.50538,200), weight = 1 + e-, kinetic energy (MeV) = 26.9649, position (cm) = (-3.51007,1.20265,200), weight = 1 + gamma, kinetic energy (MeV) = 6.50365, position (cm) = (-3.49951,1.20396,200), weight = 1 + gamma, kinetic energy (MeV) = 42.1509, position (cm) = (-3.18042,0.98849,200), weight = 1 + gamma, kinetic energy (MeV) = 9.10193, position (cm) = (-3.47729,1.32112,200), weight = 1 + gamma, kinetic energy (MeV) = 1.02575, position (cm) = (-1.69507,-4.58327,200), weight = 1 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (-6.92664,-4.59759,200), weight = 1 + gamma, kinetic energy (MeV) = 4.26857, position (cm) = (2.41427,-0.765419,200), weight = 1 + gamma, kinetic energy (MeV) = 1.77606, position (cm) = (-8.50359,-24.7661,200), weight = 1 + gamma, kinetic energy (MeV) = 0.09888, position (cm) = (-22.3047,11.5292,200), weight = 1 + gamma, kinetic energy (MeV) = 1.56456, position (cm) = (7.34018,33.0707,200), weight = 1 + gamma, kinetic energy (MeV) = 2.19778, position (cm) = (2.00513,3.84936,200), weight = 1 + gamma, kinetic energy (MeV) = 1.62336, position (cm) = (9.33152,13.8512,200), weight = 1 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (1.50207,3.50542,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0549317, position (cm) = (5.16312,2.48216,200), weight = 1 + gamma, kinetic energy (MeV) = 0.447372, position (cm) = (1.07013,3.13694,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0762218, position (cm) = (1.74462,2.6068,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0639455, position (cm) = (-1.55108,1.41677,200), weight = 1 + gamma, kinetic energy (MeV) = 0.127122, position (cm) = (3.71332,3.14867,200), weight = 1 + e-, kinetic energy (MeV) = 155.17, position (cm) = (0.87804,1.56661,200), weight = 1 + gamma, kinetic energy (MeV) = 35.3253, position (cm) = (0.885357,1.57059,200), weight = 1 + gamma, kinetic energy (MeV) = 163.827, position (cm) = (0.0895141,1.60998,200), weight = 1 + gamma, kinetic energy (MeV) = 0.133498, position (cm) = (-10.9197,13.7979,200), weight = 1 + gamma, kinetic energy (MeV) = 0.175441, position (cm) = (11.0701,-24.7275,200), weight = 1 + gamma, kinetic energy (MeV) = 39.2465, position (cm) = (-3.68314,-2.2108,200), weight = 1 + e-, kinetic energy (MeV) = 5.17522, position (cm) = (-2.5025,4.60924,200), weight = 1 + e-, kinetic energy (MeV) = 0.528656, position (cm) = (-2.48423,4.64462,200), weight = 1 + gamma, kinetic energy (MeV) = 8.51602, position (cm) = (5.00059,3.51214,200), weight = 1 + gamma, kinetic energy (MeV) = 10.1296, position (cm) = (11.5767,-8.53261,200), weight = 1 + gamma, kinetic energy (MeV) = 0.333089, position (cm) = (4.89055,11.6165,200), weight = 1 + gamma, kinetic energy (MeV) = 0.284126, position (cm) = (16.7779,-2.36735,200), weight = 1 + gamma, kinetic energy (MeV) = 0.910068, position (cm) = (-29.8808,16.8484,200), weight = 1 + gamma, kinetic energy (MeV) = 1.88427, position (cm) = (-26.6211,23.4233,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0510385, position (cm) = (-22.3687,-29.1695,200), weight = 1 + gamma, kinetic energy (MeV) = 4.53041, position (cm) = (-20.2967,-2.9628,200), weight = 1 + gamma, kinetic energy (MeV) = 1.54312, position (cm) = (1.03649,13.7659,200), weight = 1 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (1.87744,4.18152,200), weight = 1 + gamma, kinetic energy (MeV) = 3.90418, position (cm) = (-14.297,-0.334425,200), weight = 1 + gamma, kinetic energy (MeV) = 10.3609, position (cm) = (-0.385363,-12.4238,200), weight = 1 + gamma, kinetic energy (MeV) = 1.17632, position (cm) = (-25.4441,23.3297,200), weight = 1 + gamma, kinetic energy (MeV) = 6.60847, position (cm) = (-14.025,-30.2109,200), weight = 1 + gamma, kinetic energy (MeV) = 2.74583, position (cm) = (-6.20261,-16.419,200), weight = 1 + gamma, kinetic energy (MeV) = 2.59223, position (cm) = (-4.43214,9.4536,200), weight = 1 + gamma, kinetic energy (MeV) = 12.9071, position (cm) = (-3.21485,7.06238,200), weight = 1 + gamma, kinetic energy (MeV) = 0.208253, position (cm) = (-1.21138,10.8816,200), weight = 1 + gamma, kinetic energy (MeV) = 0.610977, position (cm) = (-3.58035,-2.19088,200), weight = 1 + e+, kinetic energy (MeV) = 28.5508, position (cm) = (2.07076,-2.24774,200), weight = 1 + gamma, kinetic energy (MeV) = 1.38853, position (cm) = (2.07354,-2.24905,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0749351, position (cm) = (2.60485,-2.4381,200), weight = 1 + gamma, kinetic energy (MeV) = 5.01783, position (cm) = (2.26836,-1.67456,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0875767, position (cm) = (-7.77775,-14.1767,200), weight = 1 + gamma, kinetic energy (MeV) = 0.1235, position (cm) = (-15.1241,16.5205,200), weight = 1 + gamma, kinetic energy (MeV) = 1.73325, position (cm) = (3.32299,12.7004,200), weight = 1 + gamma, kinetic energy (MeV) = 0.142776, position (cm) = (3.2439,7.05816,200), weight = 1 + gamma, kinetic energy (MeV) = 2.06411, position (cm) = (3.21766,6.75924,200), weight = 1 + gamma, kinetic energy (MeV) = 1.81877, position (cm) = (4.75657,-4.9009,200), weight = 1 + gamma, kinetic energy (MeV) = 0.598866, position (cm) = (-0.155419,-0.621494,200), weight = 1 + gamma, kinetic energy (MeV) = 1.97666, position (cm) = (5.28591,2.76045,200), weight = 1 + gamma, kinetic energy (MeV) = 40.9552, position (cm) = (-0.557354,0.563925,200), weight = 1 + gamma, kinetic energy (MeV) = 51.1477, position (cm) = (-1.76948,-14.5825,200), weight = 1 + gamma, kinetic energy (MeV) = 7.52404, position (cm) = (16.4218,-2.21231,200), weight = 1 + gamma, kinetic energy (MeV) = 0.237881, position (cm) = (-14.82,-9.51422,200), weight = 1 + gamma, kinetic energy (MeV) = 5.70358, position (cm) = (-2.1405,-1.20389,200), weight = 1 + gamma, kinetic energy (MeV) = 7.80017, position (cm) = (3.45761,0.354849,200), weight = 1 + gamma, kinetic energy (MeV) = 9.46186, position (cm) = (4.55546,8.99223,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0714662, position (cm) = (-14.9761,1.52144,200), weight = 1 + gamma, kinetic energy (MeV) = 0.419181, position (cm) = (-3.55448,-3.52302,200), weight = 1 + gamma, kinetic energy (MeV) = 7.4717, position (cm) = (-5.18973,-5.51098,200), weight = 1 + gamma, kinetic energy (MeV) = 9.6277, position (cm) = (5.43011,0.780091,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0820771, position (cm) = (-16.087,25.7908,200), weight = 1 + gamma, kinetic energy (MeV) = 1.30506, position (cm) = (-4.61358,1.99875,200), weight = 1 + gamma, kinetic energy (MeV) = 38.5582, position (cm) = (8.61788,-5.51295,200), weight = 1 + gamma, kinetic energy (MeV) = 13.9467, position (cm) = (4.01212,-8.76424,200), weight = 1 + gamma, kinetic energy (MeV) = 18.9623, position (cm) = (-1.89663,-0.868517,200), weight = 1 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (-2.45969,1.64856,200), weight = 1 + gamma, kinetic energy (MeV) = 1.48388, position (cm) = (-2.45427,1.3529,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0879333, position (cm) = (-2.9043,0.929662,200), weight = 1 + gamma, kinetic energy (MeV) = 1.14919, position (cm) = (-1.08199,0.844316,200), weight = 1 + gamma, kinetic energy (MeV) = 0.176421, position (cm) = (-0.0565455,-2.04162,200), weight = 1 + gamma, kinetic energy (MeV) = 0.081646, position (cm) = (-1.629,-0.572413,200), weight = 1 + gamma, kinetic energy (MeV) = 30.0392, position (cm) = (-1.57323,0.264642,200), weight = 1 + gamma, kinetic energy (MeV) = 0.139732, position (cm) = (-6.81592,16.37,200), weight = 1 + gamma, kinetic energy (MeV) = 0.195639, position (cm) = (0.392872,2.20049,200), weight = 1 + gamma, kinetic energy (MeV) = 0.070981, position (cm) = (0.566001,-0.0130982,200), weight = 1 + gamma, kinetic energy (MeV) = 1.83468, position (cm) = (1.87017,0.894974,200), weight = 1 + gamma, kinetic energy (MeV) = 35.061, position (cm) = (-1.14628,0.028584,200), weight = 1 + gamma, kinetic energy (MeV) = 4.62996, position (cm) = (-1.54535,-0.911126,200), weight = 1 + gamma, kinetic energy (MeV) = 1.01785, position (cm) = (-0.885802,-5.55122,200), weight = 1 + gamma, kinetic energy (MeV) = 1.77914, position (cm) = (-18.1449,-10.289,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0941822, position (cm) = (-1.36577,6.64882,200), weight = 1 + gamma, kinetic energy (MeV) = 3.82057, position (cm) = (52.0404,16.1702,200), weight = 1 + gamma, kinetic energy (MeV) = 12.4961, position (cm) = (-16.3475,5.29276,200), weight = 1 + gamma, kinetic energy (MeV) = 1.85496, position (cm) = (2.39374,-5.0545,200), weight = 1 + gamma, kinetic energy (MeV) = 0.187247, position (cm) = (-2.61744,-15.0253,200), weight = 1 + gamma, kinetic energy (MeV) = 0.301382, position (cm) = (-25.2312,-2.27348,200), weight = 1 + gamma, kinetic energy (MeV) = 5.84067, position (cm) = (-9.48521,-12.2021,200), weight = 1 + gamma, kinetic energy (MeV) = 1.82666, position (cm) = (5.04236,21.8524,200), weight = 1 + gamma, kinetic energy (MeV) = 0.105411, position (cm) = (10.327,20.6545,200), weight = 1 + gamma, kinetic energy (MeV) = 0.272656, position (cm) = (14.8093,-7.75243,200), weight = 1 + gamma, kinetic energy (MeV) = 0.160028, position (cm) = (-26.5702,24.8311,200), weight = 1 + gamma, kinetic energy (MeV) = 0.226705, position (cm) = (-3.5572,21.6901,200), weight = 1 + gamma, kinetic energy (MeV) = 0.328009, position (cm) = (7.71366,42.7558,200), weight = 1 + gamma, kinetic energy (MeV) = 6.11796, position (cm) = (-0.0769127,20.7224,200), weight = 1 + gamma, kinetic energy (MeV) = 1.66162, position (cm) = (24.1453,-14.1825,200), weight = 1 + gamma, kinetic energy (MeV) = 16.1586, position (cm) = (7.15082,-7.55351,200), weight = 1 + gamma, kinetic energy (MeV) = 0.0889151, position (cm) = (-26.1495,1.78314,200), weight = 1 + gamma, kinetic energy (MeV) = 1.31405, position (cm) = (46.4279,18.3201,200), weight = 1 + gamma, kinetic energy (MeV) = 2.35142, position (cm) = (-10.2322,7.76067,200), weight = 1 + gamma, kinetic energy (MeV) = 0.360543, position (cm) = (-6.59803,0.0628969,200), weight = 1 + gamma, kinetic energy (MeV) = 3.78213, position (cm) = (-6.81684,-2.85767,200), weight = 1 + gamma, kinetic energy (MeV) = 10.7681, position (cm) = (-9.92123,1.14535,200), weight = 1 + gamma, kinetic energy (MeV) = 0.186999, position (cm) = (8.3406,-3.60092,200), weight = 1 + gamma, kinetic energy (MeV) = 27.8576, position (cm) = (-4.68553,-5.95936,200), weight = 1 + gamma, kinetic energy (MeV) = 5.0488, position (cm) = (2.46731,-14.8185,200), weight = 1 + gamma, kinetic energy (MeV) = 0.308574, position (cm) = (3.59569,-18.6456,200), weight = 1 + gamma, kinetic energy (MeV) = 0.151468, position (cm) = (9.49254,-31.9649,200), weight = 1 + gamma, kinetic energy (MeV) = 12.3926, position (cm) = (-4.94074,2.12649,200), weight = 1 + gamma, kinetic energy (MeV) = 0.510999, position (cm) = (-0.561367,0.713598,200), weight = 3 + gamma, kinetic energy (MeV) = 0.0976432, position (cm) = (9.95,14.3078,200), weight = 1 + gamma, kinetic energy (MeV) = 0.134347, position (cm) = (6.98865,-25.64,200), weight = 1 + gamma, kinetic energy (MeV) = 0.21651, position (cm) = (24.4657,-16.6714,200), weight = 1 + gamma, kinetic energy (MeV) = 9.18986, position (cm) = (41.4929,29.7593,200), weight = 1 + gamma, kinetic energy (MeV) = 1.61429, position (cm) = (-42.0247,0.0349266,200), weight = 1 + gamma, kinetic energy (MeV) = 1.12119, position (cm) = (-6.69256,-2.34574,200), weight = 1 + gamma, kinetic energy (MeV) = 0.330815, position (cm) = (13.2165,-12.3326,200), weight = 1 + gamma, kinetic energy (MeV) = 6.51905, position (cm) = (-9.55169,-3.31383,200), weight = 1 + gamma, kinetic energy (MeV) = 9.84672, position (cm) = (13.4901,-6.88791,200), weight = 1 + gamma, kinetic energy (MeV) = 1.04166, position (cm) = (-0.960897,-4.66073,200), weight = 1 + gamma, kinetic energy (MeV) = 76.1755, position (cm) = (3.0115,-2.68595,200), weight = 1 + gamma, kinetic energy (MeV) = 9.06949, position (cm) = (-3.53513,8.87766,200), weight = 1 + gamma, kinetic energy (MeV) = 4.75647, position (cm) = (-11.7416,2.67347,200), weight = 1 + gamma, kinetic energy (MeV) = 19.5014, position (cm) = (22.9249,18.9296,200), weight = 1 + gamma, kinetic energy (MeV) = 1.54177, position (cm) = (8.83528,-10.9394,200), weight = 1 + gamma, kinetic energy (MeV) = 41.6437, position (cm) = (-8.35207,-0.740924,200), weight = 1 + gamma, kinetic energy (MeV) = 0.676771, position (cm) = (-3.07692,26.8471,200), weight = 1 + gamma, kinetic energy (MeV) = 4.20062, position (cm) = (9.95906,1.80465,200), weight = 1 + gamma, kinetic energy (MeV) = 0.203341, position (cm) = (3.17775,12.2437,200), weight = 1 + gamma, kinetic energy (MeV) = 8.35064, position (cm) = (40.8347,16.757,200), weight = 1 + gamma, kinetic energy (MeV) = 11.6266, position (cm) = (-11.8977,-8.46773,200), weight = 1 Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/biasing/GB07/include/GB07DetectorConstruction.hh b/examples/extended/biasing/GB07/include/GB07DetectorConstruction.hh index 9b9dbf82de..153320f884 100644 --- a/examples/extended/biasing/GB07/include/GB07DetectorConstruction.hh +++ b/examples/extended/biasing/GB07/include/GB07DetectorConstruction.hh @@ -32,10 +32,6 @@ #include "G4VUserDetectorConstruction.hh" #include "globals.hh" -class G4Box; -class G4LogicalVolume; -class G4VPhysicalVolume; - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class GB07DetectorConstruction : public G4VUserDetectorConstruction diff --git a/examples/extended/biasing/History b/examples/extended/biasing/History index 5406320944..1c910cbfa1 100644 --- a/examples/extended/biasing/History +++ b/examples/extended/biasing/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2021-12-10 I. Hrivnacova (exbiasing-V11-00-01) +- Removed redundant code (forward declarations, includes) from GB* examples + ## 2021-12-10 Ben Morgan (exbiasing-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/biasing/ReverseMC01/run_adjoint_simulation_electron.out b/examples/extended/biasing/ReverseMC01/run_adjoint_simulation_electron.out index 1ec5c91184..5900d3f718 100644 --- a/examples/extended/biasing/ReverseMC01/run_adjoint_simulation_electron.out +++ b/examples/extended/biasing/ReverseMC01/run_adjoint_simulation_electron.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -30,6 +30,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -100,6 +102,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -127,7 +130,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -407,7 +410,7 @@ nb event 175000 Run terminated. Run Summary Run Aborted after 175200 events processed. - User=71.110000s Real=85.568780s Sys=0.190000s + User=75.440000s Real=76.316975s Sys=0.100000s Results of reverse/adjoint simulation! normalised edep [MeV] = 0.0016474 error[MeV] = 1.64738e-05 diff --git a/examples/extended/common/.README.txt b/examples/extended/common/.README.txt index a4fb856d0b..a661acbd0e 100644 --- a/examples/extended/common/.README.txt +++ b/examples/extended/common/.README.txt @@ -4,21 +4,30 @@ /*! \page Examples_common Category "common" - In order to reduce code duplication and to reduce the number of variants of - the code of same kind, we define a set of common classes which - can be reused in "feature" examples demonstrating just a particular feature. - This module may be enhanced in future. Currently it provides - the following sets of classes: + This example includes a set of classes independent on each other which + can be reused in "feature" examples demonstrating just a particular feature + or users applications. + + It provides the following sets of classes: - Detector construction classes - two simple detector construction classes with a messenger - + - Physics list classes - GeantinoPhysicsList - physics list with geantino and chargedgeantino only - + - Primary generator classes - two simple primary generator classes (with G4ParticleGun and G4ParticleGeneralSource) + These classes can be tested with the following programs: + - testCommon.cc - only instantiates all classes + - exampleCommonNoVis.cc - Geant4 application without visualization, that can be run + both interactively or in batch (with the run.mac macro) + - exampleCommonNoVis.cc - Geant4 application with visualization, that can be run + both interactively or in batch (with the run.mac macro) + + Building examples programs can be disabled with the CMake option: -DEXAMPLES_COMMON=OFF. + */ diff --git a/examples/extended/common/CMakeLists.txt b/examples/extended/common/CMakeLists.txt index 2904865dc0..1a8641285d 100644 --- a/examples/extended/common/CMakeLists.txt +++ b/examples/extended/common/CMakeLists.txt @@ -4,9 +4,21 @@ cmake_minimum_required(VERSION 3.16...3.21) project(${common_prefix}common) #---------------------------------------------------------------------------- -# Find Geant4 package, no UI and Vis drivers activated +# Find Geant4 package, activating all available UI and Vis drivers by default +# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui +# to build a batch mode only executable # -find_package(Geant4 REQUIRED) +option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON) +if(WITH_GEANT4_UIVIS) + find_package(Geant4 REQUIRED ui_all vis_all) +else() + find_package(Geant4 REQUIRED) +endif() + +#---------------------------------------------------------------------------- +# Option to build examples in addition to test +# +option(COMMON_EXAMPLES "Activate building example executables" ON) #---------------------------------------------------------------------------- # Setup Geant4 include directories and compile definitions @@ -16,7 +28,7 @@ include(${Geant4_USE_FILE}) #---------------------------------------------------------------------------- # Locate sources and headers for this project # -include_directories(${PROJECT_SOURCE_DIR}/include +include_directories(${PROJECT_SOURCE_DIR}/include ${Geant4_INCLUDE_DIR}) file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) @@ -28,26 +40,36 @@ add_library(${common_prefix}common ${sources} ${headers}) target_link_libraries(${common_prefix}common ${Geant4_LIBRARIES} ) #---------------------------------------------------------------------------- -# Add the executable, and link it to the Geant4 libraries and common library +# Add the test executable, and link it to the Geant4 libraries and common library # add_executable(${common_prefix}testCommon testCommon.cc ) target_link_libraries(${common_prefix}testCommon ${common_prefix}common ${Geant4_LIBRARIES}) +#---------------------------------------------------------------------------- +# Optionally, add the example executables, and link it to the Geant4 libraries and common library +# +if(COMMON_EXAMPLES) + add_executable(exampleCommon exampleCommon.cc ) + target_link_libraries(exampleCommon ${common_prefix}common ${Geant4_LIBRARIES}) + add_executable(exampleCommonNoVis exampleCommonNoVis.cc ) + target_link_libraries(exampleCommonNoVis ${common_prefix}common ${Geant4_LIBRARIES}) +endif(COMMON_EXAMPLES) + #---------------------------------------------------------------------------- # Copy all scripts to the build directory, i.e. the directory in which we # build detectorConstruction. This is so that we can run the executable directly because it # relies on these scripts being in the current working directory. # set(detectorConstruction_SCRIPTS - - ) + init.mac init_vis.mac run.mac vis.mac +) foreach(_script ${detectorConstruction_SCRIPTS}) configure_file( ${PROJECT_SOURCE_DIR}/${_script} ${PROJECT_BINARY_DIR}/${_script} COPYONLY - ) + ) endforeach() #---------------------------------------------------------------------------- @@ -55,4 +77,8 @@ endforeach() # and the library to 'lib' directory under CMAKE_INSTALL_PREFIX # install(TARGETS ${common_prefix}testCommon DESTINATION bin) +if (COMMON_EXAMPLES) + install(TARGETS exampleCommon DESTINATION bin) + install(TARGETS exampleCommonNoVis DESTINATION bin) +endif(COMMON_EXAMPLES) install(TARGETS ${common_prefix}common DESTINATION lib) diff --git a/examples/extended/common/History b/examples/extended/common/History index ee277a437f..8281c61765 100644 --- a/examples/extended/common/History +++ b/examples/extended/common/History @@ -5,6 +5,18 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-09 I. Hrivnacova (excommon-V11-00-02) +- Fixed file descriptions in the top directory + +## 2022-11-07 I. Hrivnacova (excommon-V11-00-01) +New coding guidelines, added tests: +- Added exampleCommon.cc and exampleCommonNoVis.cc +- Added namespace Common +- Override keywords +- Data members initialization in .hh +- Updated README files +- Removed trailing whitespaces + ## 2021-12-10 Ben Morgan (excommon-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/common/README b/examples/extended/common/README index 3da6d98573..7e2ef36e96 100644 --- a/examples/extended/common/README +++ b/examples/extended/common/README @@ -7,20 +7,28 @@ Common Classes for Extended Examples ------------------------------------- - In order to reduce code duplication and to reduce the number of variants of - the code of same kind, we define a set of common classes which - can be reused in "feature" examples demonstrating just a particular feature. - This module may be enhanced in future. Currently it provides - the following sets of classes: + This example includes a set of classes independent on each other which + can be reused in "feature" examples demonstrating just a particular feature + or users applications. + + It provides the following sets of classes: - Detector construction classes - two simple detector construction classes with a messenger - + - Physics list classes - GeantinoPhysicsList - physics list with geantino and chargedgeantino only - + - Primary generator classes - two simple primary generator classes (with G4ParticleGun and G4ParticleGeneralSource) + These classes can be tested with the following programs: + - testCommon.cc - only instantiates all classes + - exampleCommonNoVis.cc - Geant4 application without visualization, that can be run + both interactively or in batch (with the run.mac macro) + - exampleCommonNoVis.cc - Geant4 application with visualization, that can be run + both interactively or in batch (with the run.mac macro) + + Building examples programs can be disabled with the CMake option: -DEXAMPLES_COMMON=OFF. diff --git a/examples/extended/common/common.out b/examples/extended/common/common.out new file mode 100644 index 0000000000..16830bbbc5 --- /dev/null +++ b/examples/extended/common/common.out @@ -0,0 +1,152 @@ + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + +Visualization Manager instantiating with verbosity "warnings (3)"... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully registered the following graphics systems. +Registered graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML2FILE (VRML2FILE) + gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) + OpenGLImmediateQt (OGLIQt, OGLI) + OpenGLStoredQt (OGLSQt, OGL, OGLS) + OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) + OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK) + OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK) + OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK) + RayTracerX (RayTracerX) + Qt3D (Qt3D) + TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK) + TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK) + TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG) + +Registering model factories... + +You have successfully registered the following model factories. +Registered model factories: + generic + drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByEncounteredVolume + +Registered models: + None + +Registered filter factories: + attributeFilter + chargeFilter + originVolumeFilter + particleFilter + encounteredVolumeFilter + +Registered filters: + None + +You have successfully registered the following user vis actions. +Run Duration User Vis Actions: none +End of Event User Vis Actions: none +End of Run User Vis Actions: none + +Some /vis commands (optionally) take a string to specify colour. +"/vis/list" to see available colours. +/run/verbose 2 +# +/run/beamOn 10 + +Region -- -- appears in world volume + This region is in the mass world. + Root logical volume(s) : World + Pointers : G4VUserRegionInformation[0], G4UserLimits[0], G4FastSimulationManager[0], G4UserSteppingAction[0] + Materials : G4_AIR + Production cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm + +Region -- -- is not associated to any world. + Root logical volume(s) : + Pointers : G4VUserRegionInformation[0], G4UserLimits[0], G4FastSimulationManager[0], G4UserSteppingAction[0] + Materials : + Production cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_AIR + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm + Energy thresholds : gamma -1 MeV e- -1 MeV e+ -1 MeV proton -1 MeV + 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 +G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. +See commands in /vis/modeling/trajectories/ for other options. +### Run 0 starts. + Run terminated. +Run Summary + Number of events processed : 10 + User=0.000000s Real=0.000275s Sys=0.000000s +Graphics systems deleted. +Visualization Manager deleting... +G4 kernel has come to Quit state. +UserDetectorConstruction deleted. +UserPhysicsList deleted. +UserActionInitialization deleted. +UserWorkerInitialization deleted. +UserWorkerThreadInitialization deleted. +UserRunAction deleted. +UserPrimaryGenerator deleted. +RunManager is deleting RunManagerKernel. +G4SDManager deleted. +EventManager deleted. +Units table cleared. +TransportationManager deleted. +Total navigation history collections cleaned: 6 +G4RNGHelper object is deleted. +================== Deleting memory pools =================== +Pool ID '20G4NavigationLevelRep', size : 0.00769 MB +Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB +Pool ID '7G4Event', size : 0.000961 MB +Pool ID '15G4PrimaryVertex', size : 0.000961 MB +Pool ID '17G4PrimaryParticle', size : 0.000961 MB +Pool ID '17G4DynamicParticle', size : 0.000961 MB +Pool ID '7G4Track', size : 0.000961 MB +Pool ID '18G4TouchableHistory', size : 0.000961 MB +Pool ID '15G4CountedObjectIvE', size : 0.000961 MB +Number of memory pools allocated: 9 of which, static: 0 +Dynamic pools deleted: 9 / Total memory freed: 0.015 MB +============================================================ +G4Allocator objects are deleted. +UImanager deleted. +StateManager deleted. +RunManagerKernel is deleted. Good bye :) +RunManager is deleted. diff --git a/examples/extended/common/exampleCommon.cc b/examples/extended/common/exampleCommon.cc new file mode 100644 index 0000000000..62d8eb300e --- /dev/null +++ b/examples/extended/common/exampleCommon.cc @@ -0,0 +1,89 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +/// \file common/exampleCommon.cc +/// \brief Main program of the Common example + +#include "DetectorConstruction.hh" +#include "GeantinoPhysicsList.hh" +#include "GpsPrimaryGeneratorAction.hh" + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIExecutive.hh" +#include "G4VisExecutive.hh" + +using namespace Common; + +int main(int argc,char** argv) +{ + // Detect interactive mode (if no arguments) and define UI session + // + G4UIExecutive* ui = nullptr; + if ( argc == 1 ) { ui = new G4UIExecutive(argc, argv); } + + // Construct the default run manager + G4RunManager* runManager = new G4RunManager; + + // Set mandatory initialization classes + runManager->SetUserInitialization(new DetectorConstruction); + runManager->SetUserInitialization(new GeantinoPhysicsList); + + // Set mandatory user action class + runManager->SetUserAction(new GpsPrimaryGeneratorAction); + + // Initialize visualization + // + G4VisManager* visManager = new G4VisExecutive; + // G4VisExecutive can take a verbosity argument - see /vis/verbose guidance. + // G4VisManager* visManager = new G4VisExecutive("Quiet"); + visManager->Initialize(); + + // Get the pointer to the User Interface manager + G4UImanager* UImanager = G4UImanager::GetUIpointer(); + + // Process macro or start UI session + // + if ( ! ui ) { + // batch mode + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UImanager->ApplyCommand(command+fileName); + } + else { + // interactive mode + UImanager->ApplyCommand("/control/execute init_vis.mac"); + ui->SessionStart(); + delete ui; + } + + // Job termination + // Free the store: user actions, physics_list and detector_description are + // owned and deleted by the run manager, so they should not be deleted + // in the main() program ! + delete visManager; + delete runManager; +} diff --git a/examples/extended/common/exampleCommonNoVis.cc b/examples/extended/common/exampleCommonNoVis.cc new file mode 100644 index 0000000000..fc7bbbbe17 --- /dev/null +++ b/examples/extended/common/exampleCommonNoVis.cc @@ -0,0 +1,80 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +/// \file common/exampleCommonNoVis.cc +/// \brief Main program of the Common example without visualization + +#include "DetectorConstruction.hh" +#include "GeantinoPhysicsList.hh" +#include "GpsPrimaryGeneratorAction.hh" + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIExecutive.hh" + +using namespace Common; + +int main(int argc,char** argv) +{ + // Detect interactive mode (if no arguments) and define UI session + // + G4UIExecutive* ui = nullptr; + if ( argc == 1 ) { ui = new G4UIExecutive(argc, argv); } + + // Construct the default run manager + G4RunManager* runManager = new G4RunManager; + + // Set mandatory initialization classes + runManager->SetUserInitialization(new DetectorConstruction); + runManager->SetUserInitialization(new GeantinoPhysicsList); + + // Set mandatory user action class + runManager->SetUserAction(new GpsPrimaryGeneratorAction); + + // Get the pointer to the User Interface manager + G4UImanager* UImanager = G4UImanager::GetUIpointer(); + + // Process macro or start UI session + // + if ( ! ui ) { + // batch mode + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UImanager->ApplyCommand(command+fileName); + } + else { + // interactive mode + UImanager->ApplyCommand("/control/execute init.mac"); + ui->SessionStart(); + delete ui; + } + + // Job termination + // Free the store: user actions, physics_list and detector_description are + // owned and deleted by the run manager, so they should not be deleted + // in the main() program ! + delete runManager; +} diff --git a/examples/extended/common/include/DetectorConstruction.hh b/examples/extended/common/include/DetectorConstruction.hh index a84899b411..19677a4148 100644 --- a/examples/extended/common/include/DetectorConstruction.hh +++ b/examples/extended/common/include/DetectorConstruction.hh @@ -23,9 +23,9 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -/// \file DetectorConstruction.hh -/// \brief Definition of the DetectorConstruction class +// +/// \file common/include/DetectorConstruction.hh +/// \brief Definition of the Common::DetectorConstruction class #ifndef DetectorConstruction_h #define DetectorConstruction_h 1 @@ -40,40 +40,45 @@ class G4GenericMessenger; /// Simple detector construction with a box volume placed in a world +namespace Common +{ + class DetectorConstruction : public G4VUserDetectorConstruction { public: DetectorConstruction( const G4String& boxMaterialName = "G4_AIR", - G4double boxHx = 40*CLHEP::cm, - G4double boxHy = 40*CLHEP::cm, + G4double boxHx = 40*CLHEP::cm, + G4double boxHy = 40*CLHEP::cm, G4double boxHz = 40*CLHEP::cm, const G4String& worldMaterialName = "G4_AIR", G4double worldSizeFactor = 1.25); - ~DetectorConstruction(); + ~DetectorConstruction() override; public: - // methods from base class - virtual G4VPhysicalVolume* Construct(); + // methods from base class + G4VPhysicalVolume* Construct() override; // set methods void SetBoxMaterial(const G4String& materialName); void SetWorldMaterial(const G4String& materialName); void SetBoxDimensions(G4ThreeVector dimensions); void SetWorldSizeFactor(G4double factor); - + private: void DefineCommands(); - G4GenericMessenger* fMessenger; + G4GenericMessenger* fMessenger = nullptr; G4String fBoxMaterialName; G4String fWorldMaterialName; G4ThreeVector fBoxDimensions; - G4double fWorldSizeFactor; - G4LogicalVolume* fBoxVolume; - G4LogicalVolume* fWorldVolume; + G4double fWorldSizeFactor = 0.; + G4LogicalVolume* fBoxVolume = nullptr; + G4LogicalVolume* fWorldVolume = nullptr; }; +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif diff --git a/examples/extended/common/include/DetectorConstruction0.hh b/examples/extended/common/include/DetectorConstruction0.hh index 9746272dde..049847dd82 100644 --- a/examples/extended/common/include/DetectorConstruction0.hh +++ b/examples/extended/common/include/DetectorConstruction0.hh @@ -23,9 +23,9 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -/// \file DetectorConstruction0.hh -/// \brief Definition of the DetectorConstruction0 class +// +/// \file common/include/DetectorConstruction0.hh +/// \brief Definition of the Common::DetectorConstruction0 class #ifndef DetectorConstruction0_h #define DetectorConstruction0_h 1 @@ -40,33 +40,38 @@ class G4GenericMessenger; /// Simple detector construction with only a world volume +namespace Common +{ + class DetectorConstruction0 : public G4VUserDetectorConstruction { public: DetectorConstruction0( const G4String& materialName = "G4_AIR", - G4double hx = 50*CLHEP::cm, - G4double hy = 50*CLHEP::cm, + G4double hx = 50*CLHEP::cm, + G4double hy = 50*CLHEP::cm, G4double hz = 50*CLHEP::cm); - ~DetectorConstruction0(); + ~DetectorConstruction0() override; public: - // methods from base class - virtual G4VPhysicalVolume* Construct(); + // methods from base class + G4VPhysicalVolume* Construct() override; // set methods void SetMaterial(const G4String& materialName); void SetDimensions(G4ThreeVector dimensions); - + private: void DefineCommands(); - G4GenericMessenger* fMessenger; + G4GenericMessenger* fMessenger = nullptr; G4String fMaterialName; G4ThreeVector fDimensions; - G4LogicalVolume* fWorldVolume; + G4LogicalVolume* fWorldVolume = nullptr; }; +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif diff --git a/examples/extended/common/include/GeantinoPhysicsList.hh b/examples/extended/common/include/GeantinoPhysicsList.hh index e0522aa41d..487f6ac651 100644 --- a/examples/extended/common/include/GeantinoPhysicsList.hh +++ b/examples/extended/common/include/GeantinoPhysicsList.hh @@ -23,9 +23,9 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -/// \file GeantinoPhysicsList.hh -/// \brief Definition of the GeantinoPhysicsList class +// +/// \file common/include/GeantinoPhysicsList.hh +/// \brief Definition of the Common::GeantinoPhysicsList class #ifndef GeantinoPhysicsList_h #define GeantinoPhysicsList_h 1 @@ -34,17 +34,22 @@ /// Physics list with geantino and charged geantino only +namespace Common +{ + class GeantinoPhysicsList: public G4VUserPhysicsList { public: GeantinoPhysicsList(); - ~GeantinoPhysicsList(); + ~GeantinoPhysicsList() override; protected: // Construct particle and physics process - void ConstructParticle(); - void ConstructProcess(); + void ConstructParticle() override; + void ConstructProcess() override; }; +} + #endif diff --git a/examples/extended/common/include/GpsPrimaryGeneratorAction.hh b/examples/extended/common/include/GpsPrimaryGeneratorAction.hh index ca3a467932..e5aad89e54 100644 --- a/examples/extended/common/include/GpsPrimaryGeneratorAction.hh +++ b/examples/extended/common/include/GpsPrimaryGeneratorAction.hh @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file GpsPrimaryGeneratorAction.hh -/// \brief Definition of the GpsPrimaryGeneratorActionclass +/// \file common/include/GpsPrimaryGeneratorAction.hh +/// \brief Definition of the Common::GpsPrimaryGeneratorAction class // #ifndef GpsPrimaryGeneratorAction_h @@ -42,23 +42,24 @@ class G4Event; /// /// \author I. Hrivnacova; IPN Orsay +namespace Common +{ + class GpsPrimaryGeneratorAction: public G4VUserPrimaryGeneratorAction { public: - GpsPrimaryGeneratorAction(); - ~GpsPrimaryGeneratorAction(); + GpsPrimaryGeneratorAction(); + ~GpsPrimaryGeneratorAction() override; // methods - virtual void GeneratePrimaries(G4Event*); + void GeneratePrimaries(G4Event*) override; private: - // static data members - static const G4String fgkDefaultParticleName; - static const G4double fgkDefaultEnergy; - // data members - G4GeneralParticleSource* fGeneralParticleSource; + G4GeneralParticleSource* fGeneralParticleSource = nullptr; }; +} + #endif diff --git a/examples/extended/common/include/GunPrimaryGeneratorAction.hh b/examples/extended/common/include/GunPrimaryGeneratorAction.hh index 1679409c2e..add3049171 100644 --- a/examples/extended/common/include/GunPrimaryGeneratorAction.hh +++ b/examples/extended/common/include/GunPrimaryGeneratorAction.hh @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file GunPrimaryGeneratorAction.hh -/// \brief Definition of the GunPrimaryGeneratorAction class +/// \file common/include/GunPrimaryGeneratorAction.hh +/// \brief Definition of the Common::GunPrimaryGeneratorAction class #ifndef GunPrimaryGeneratorAction_h #define GunPrimaryGeneratorAction_h 1 @@ -44,6 +44,9 @@ class G4Event; /// /// \author I. Hrivnacova; IPN Orsay +namespace Common +{ + class GunPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: @@ -51,15 +54,17 @@ class GunPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction const G4String& particleName = "geantino", G4double energy = 1.*CLHEP::MeV, G4ThreeVector position= G4ThreeVector(0,0,0), - G4ThreeVector momentumDirection = G4ThreeVector(0,0,1)); - ~GunPrimaryGeneratorAction(); + G4ThreeVector momentumDirection = G4ThreeVector(0,0,1)); + ~GunPrimaryGeneratorAction() override; // methods - virtual void GeneratePrimaries(G4Event*); + void GeneratePrimaries(G4Event*) override; private: // data members - G4ParticleGun* fParticleGun; + G4ParticleGun* fParticleGun = nullptr; }; +} + #endif diff --git a/examples/extended/common/init.mac b/examples/extended/common/init.mac new file mode 100644 index 0000000000..978e19c4af --- /dev/null +++ b/examples/extended/common/init.mac @@ -0,0 +1,13 @@ +# Macro file for the initialization of example B1 +# in interactive session +# +# Set some default verbose +/control/verbose 2 +/control/saveHistory +/run/verbose 2 +# +# Change the default number of threads (in multi-threaded mode) +#/run/numberOfThreads 4 +# +# Initialize kernel +/run/initialize diff --git a/examples/extended/common/init_vis.mac b/examples/extended/common/init_vis.mac new file mode 100644 index 0000000000..8e460329fb --- /dev/null +++ b/examples/extended/common/init_vis.mac @@ -0,0 +1,16 @@ +# Macro file for the initialization of example B1 +# in interactive session +# +# Set some default verbose +/control/verbose 2 +/control/saveHistory +/run/verbose 2 +# +# Change the default number of threads (in multi-threaded mode) +#/run/numberOfThreads 4 +# +# Initialize kernel +/run/initialize +# +# Visualization setting +/control/execute vis.mac diff --git a/examples/extended/common/run.mac b/examples/extended/common/run.mac new file mode 100644 index 0000000000..2804407277 --- /dev/null +++ b/examples/extended/common/run.mac @@ -0,0 +1,12 @@ +# Macro file for example common +# +# To be run preferably in batch +# % ./exampleCommon[NoVis] run.mac +# +#/run/numberOfThreads 4 +/run/initialize +# +/control/verbose 2 +/run/verbose 2 +# +/run/beamOn 10 diff --git a/examples/extended/common/src/DetectorConstruction.cc b/examples/extended/common/src/DetectorConstruction.cc index 185d5f38d3..272f602697 100644 --- a/examples/extended/common/src/DetectorConstruction.cc +++ b/examples/extended/common/src/DetectorConstruction.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file DetectorConstruction.cc -/// \brief Implementation of the DetectorConstruction class +/// \file common/src/DetectorConstruction.cc +/// \brief Implementation of the Common::DetectorConstruction class #include "DetectorConstruction.hh" @@ -36,6 +36,9 @@ #include "G4PVPlacement.hh" #include "G4GenericMessenger.hh" +namespace Common +{ + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorConstruction::DetectorConstruction( @@ -43,14 +46,10 @@ DetectorConstruction::DetectorConstruction( G4double boxHx, G4double boxHy, G4double boxHz, const G4String& worldMaterialName, G4double worldSizeFactor) - : G4VUserDetectorConstruction(), - fMessenger(nullptr), - fBoxMaterialName(boxMaterialName), + : fBoxMaterialName(boxMaterialName), fWorldMaterialName(worldMaterialName), fBoxDimensions(boxHx*2, boxHy*2, boxHz*2), - fWorldSizeFactor(worldSizeFactor), - fBoxVolume(nullptr), - fWorldVolume(nullptr) + fWorldSizeFactor(worldSizeFactor) { DefineCommands(); } @@ -72,25 +71,25 @@ G4VPhysicalVolume* DetectorConstruction::Construct() auto worldMaterial = nistManager->FindOrBuildMaterial(fWorldMaterialName); auto boxMaterial = nistManager->FindOrBuildMaterial(fBoxMaterialName); - + // Geometry parameters // G4ThreeVector worldDimensions = fBoxDimensions * fWorldSizeFactor; - + // World // - auto sWorld + auto sWorld = new G4Box("World", //name worldDimensions.x(), //dimensions (half-lentghs) - worldDimensions.y(), + worldDimensions.y(), worldDimensions.z()); - fWorldVolume + fWorldVolume = new G4LogicalVolume(sWorld, //shape worldMaterial, //material "World"); //name - auto pWorld + auto pWorld = new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) fWorldVolume, //logical volume @@ -98,23 +97,23 @@ G4VPhysicalVolume* DetectorConstruction::Construct() 0, //mother volume false, //no boolean operation 0); //copy number - + // Box - // - auto sBox + // + auto sBox = new G4Box("Box", //its name fBoxDimensions.x(), //dimensions (half-lengths) - fBoxDimensions.y(), + fBoxDimensions.y(), fBoxDimensions.z()); - - fBoxVolume + + fBoxVolume = new G4LogicalVolume(sBox, //its shape boxMaterial, //its material "Box"); //its name new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) - fBoxVolume, //its logical volume + fBoxVolume, //its logical volume "Box", //its name fWorldVolume, //its mother volume false, //no boolean operation @@ -126,7 +125,7 @@ G4VPhysicalVolume* DetectorConstruction::Construct() } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + void DetectorConstruction::SetBoxMaterial(const G4String& materialName) { auto nistManager = G4NistManager::Instance(); @@ -136,14 +135,14 @@ void DetectorConstruction::SetBoxMaterial(const G4String& materialName) G4cerr << "Material " << materialName << " not found." << G4endl; G4cerr << "The box material was not changed." << G4endl; return; - } - + } + if ( fBoxVolume ) fBoxVolume->SetMaterial(newMaterial); G4cout << "Material of box changed to " << materialName << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + void DetectorConstruction::SetWorldMaterial(const G4String& materialName) { auto nistManager = G4NistManager::Instance(); @@ -153,45 +152,45 @@ void DetectorConstruction::SetWorldMaterial(const G4String& materialName) G4cerr << "Material " << materialName << " not found." << G4endl; G4cerr << "The box material was not changed." << G4endl; return; - } - + } + if ( fWorldVolume ) fWorldVolume->SetMaterial(newMaterial); G4cout << "Material of box changed to " << materialName << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::SetBoxDimensions(G4ThreeVector dimensions) + +void DetectorConstruction::SetBoxDimensions(G4ThreeVector dimensions) { /// Set box dimension (in half lengths). /// This setting has effect only if called in PreInit> phase fBoxDimensions = dimensions; -} - +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetWorldSizeFactor(G4double factor) +void DetectorConstruction::SetWorldSizeFactor(G4double factor) { /// Set the multiplication factor from box dimensions to world dimensions. /// This setting has effect only if called in PreInit> phase fWorldSizeFactor = factor; -} - +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void DetectorConstruction::DefineCommands() { // Define /B5/detector command directory using generic messenger class - fMessenger = new G4GenericMessenger(this, - "/detector/", + fMessenger = new G4GenericMessenger(this, + "/detector/", "Detector control"); // setBoxMaterial command auto& setBoxMaterialCmd = fMessenger->DeclareMethod("setBoxMaterial", - &DetectorConstruction::SetBoxMaterial, + &DetectorConstruction::SetBoxMaterial, "Set box material name."); setBoxMaterialCmd.SetParameterName("boxMaterialName", false); setBoxMaterialCmd.SetDefaultValue("G4_AIR"); @@ -199,7 +198,7 @@ void DetectorConstruction::DefineCommands() // setWorldMaterial command auto& setWorldMaterialCmd = fMessenger->DeclareMethod("setWorldMaterial", - &DetectorConstruction::SetWorldMaterial, + &DetectorConstruction::SetWorldMaterial, "Set world material name."); setWorldMaterialCmd.SetParameterName("worldMaterialName", false); setWorldMaterialCmd.SetDefaultValue("G4_AIR"); @@ -207,19 +206,21 @@ void DetectorConstruction::DefineCommands() // setBoxDimensions command auto& setBoxDimensionsCmd = fMessenger->DeclareMethodWithUnit("setBoxDimensions", "mm", - &DetectorConstruction::SetBoxDimensions, + &DetectorConstruction::SetBoxDimensions, "Set box dimensions (in half lentgh)."); setBoxDimensionsCmd.SetParameterName("boxDimensions", false); setBoxDimensionsCmd.SetStates(G4State_PreInit); // setWorldSizeFactor command - auto& setWorldSizeFactorCmd + auto& setWorldSizeFactorCmd = fMessenger->DeclareMethod("setWorldSizeFactor", - &DetectorConstruction::SetWorldSizeFactor, + &DetectorConstruction::SetWorldSizeFactor, "Set the multiplication factor from box dimensions to world dimensions."); setWorldSizeFactorCmd.SetParameterName("worldSizeFactor", false); setWorldSizeFactorCmd.SetRange("WorldSizeFactor >= 1"); setWorldSizeFactorCmd.SetStates(G4State_PreInit); } - + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} diff --git a/examples/extended/common/src/DetectorConstruction0.cc b/examples/extended/common/src/DetectorConstruction0.cc index b84e8319e6..86b58026d0 100644 --- a/examples/extended/common/src/DetectorConstruction0.cc +++ b/examples/extended/common/src/DetectorConstruction0.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file DetectorConstruction0.cc -/// \brief Implementation of the DetectorConstruction0 class +/// \file common/src/DetectorConstruction0.cc +/// \brief Implementation of the Common::DetectorConstruction0 class #include "DetectorConstruction0.hh" @@ -36,16 +36,16 @@ #include "G4PVPlacement.hh" #include "G4GenericMessenger.hh" +namespace Common +{ + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorConstruction0::DetectorConstruction0( const G4String& materialName, G4double hx, G4double hy, G4double hz) - : G4VUserDetectorConstruction(), - fMessenger(nullptr), - fMaterialName(materialName), - fDimensions(hx, hy, hz), - fWorldVolume(nullptr) + : fMaterialName(materialName), + fDimensions(hx, hy, hz) { DefineCommands(); } @@ -66,21 +66,21 @@ G4VPhysicalVolume* DetectorConstruction0::Construct() auto nistManager = G4NistManager::Instance(); auto material = nistManager->FindOrBuildMaterial(fMaterialName); - + // World // - auto sWorld + auto sWorld = new G4Box("World", //name fDimensions.x(), //dimensions (half-lentghs) - fDimensions.y(), + fDimensions.y(), fDimensions.z()); - fWorldVolume + fWorldVolume = new G4LogicalVolume(sWorld, //shape material, //material "World"); //name - auto pWorld + auto pWorld = new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) fWorldVolume, //logical volume @@ -95,7 +95,7 @@ G4VPhysicalVolume* DetectorConstruction0::Construct() } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + void DetectorConstruction0::SetMaterial(const G4String& materialName) { auto nistManager = G4NistManager::Instance(); @@ -105,35 +105,35 @@ void DetectorConstruction0::SetMaterial(const G4String& materialName) G4cerr << "Material " << materialName << " not found." << G4endl; G4cerr << "The box material was not changed." << G4endl; return; - } - + } + if ( fWorldVolume ) fWorldVolume->SetMaterial(newMaterial); G4cout << "Material of box changed to " << materialName << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + void DetectorConstruction0::SetDimensions(G4ThreeVector dimensions) { /// Set world dimension (in half lengths). /// This setting has effect only if called in PreInit> phase fDimensions = dimensions; -} - +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void DetectorConstruction0::DefineCommands() { // Define /B5/detector command directory using generic messenger class - fMessenger = new G4GenericMessenger(this, - "/detector/", + fMessenger = new G4GenericMessenger(this, + "/detector/", "Detector control"); // setMaterial command auto& setMaterialCmd = fMessenger->DeclareMethod("setMaterial", - &DetectorConstruction0::SetMaterial, + &DetectorConstruction0::SetMaterial, "Set world material name."); setMaterialCmd.SetParameterName("materialName", false); setMaterialCmd.SetDefaultValue("G4_AIR"); @@ -142,10 +142,12 @@ void DetectorConstruction0::DefineCommands() // setDimensions command auto& setDimensionsCmd = fMessenger->DeclareMethodWithUnit("setDimensions", "mm", - &DetectorConstruction0::SetDimensions, + &DetectorConstruction0::SetDimensions, "Set world dimensions (in half lentgh)."); setDimensionsCmd.SetParameterName("dimensions", false); setDimensionsCmd.SetStates(G4State_PreInit); } - + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} diff --git a/examples/extended/common/src/GeantinoPhysicsList.cc b/examples/extended/common/src/GeantinoPhysicsList.cc index fde873904d..bd47a847c0 100644 --- a/examples/extended/common/src/GeantinoPhysicsList.cc +++ b/examples/extended/common/src/GeantinoPhysicsList.cc @@ -24,23 +24,23 @@ // ******************************************************************** // // -/// \file GeantinoPhysicsList.cc -/// \brief Implementation of the GeantinoPhysicsList class +/// \file common/src/GeantinoPhysicsList.cc +/// \brief Implementation of the Common::GeantinoPhysicsList class #include "GeantinoPhysicsList.hh" #include "G4Geantino.hh" #include "G4ChargedGeantino.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -GeantinoPhysicsList::GeantinoPhysicsList() - : G4VUserPhysicsList() -{} +namespace Common +{ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -GeantinoPhysicsList::~GeantinoPhysicsList() -{} +GeantinoPhysicsList::GeantinoPhysicsList() = default; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +GeantinoPhysicsList::~GeantinoPhysicsList() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -49,7 +49,7 @@ void GeantinoPhysicsList::ConstructParticle() // In this method, static member functions should be called // for all particles which you want to use. // This ensures that objects of these particle types will be - // created in the program. + // created in the program. G4Geantino::GeantinoDefinition(); G4ChargedGeantino::ChargedGeantinoDefinition(); @@ -65,3 +65,5 @@ void GeantinoPhysicsList::ConstructProcess() } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} diff --git a/examples/extended/common/src/GpsPrimaryGeneratorAction.cc b/examples/extended/common/src/GpsPrimaryGeneratorAction.cc index 2ac18e0294..b07a277e47 100644 --- a/examples/extended/common/src/GpsPrimaryGeneratorAction.cc +++ b/examples/extended/common/src/GpsPrimaryGeneratorAction.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file GpsPrimaryGeneratorAction.cc -/// \brief Implementation of the GpsPrimaryGeneratorActionclass +/// \file common/src/GpsPrimaryGeneratorAction.cc +/// \brief Implementation of the Common::GpsPrimaryGeneratorActionclass #include "GpsPrimaryGeneratorAction.hh" @@ -33,14 +33,12 @@ #include "G4GeneralParticleSource.hh" #include "G4SystemOfUnits.hh" -const G4String GpsPrimaryGeneratorAction::fgkDefaultParticleName = "e-"; -const G4double GpsPrimaryGeneratorAction::fgkDefaultEnergy = 1.*MeV; +namespace Common +{ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... GpsPrimaryGeneratorAction::GpsPrimaryGeneratorAction() - : G4VUserPrimaryGeneratorAction(), - fGeneralParticleSource(nullptr) { fGeneralParticleSource = new G4GeneralParticleSource(); } @@ -61,3 +59,7 @@ void GpsPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) fGeneralParticleSource->GeneratePrimaryVertex(anEvent); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} + diff --git a/examples/extended/common/src/GunPrimaryGeneratorAction.cc b/examples/extended/common/src/GunPrimaryGeneratorAction.cc index 6a10df48c7..6d48726ca9 100644 --- a/examples/extended/common/src/GunPrimaryGeneratorAction.cc +++ b/examples/extended/common/src/GunPrimaryGeneratorAction.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file GunPrimaryGeneratorAction.cc -/// \brief Implementation of the GunPrimaryGeneratorAction class +/// \file common/src/GunPrimaryGeneratorAction.cc +/// \brief Implementation of the Common::GunPrimaryGeneratorAction class #include "GunPrimaryGeneratorAction.hh" @@ -34,15 +34,16 @@ #include "G4ParticleTable.hh" #include "G4ParticleDefinition.hh" +namespace Common +{ + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -GunPrimaryGeneratorAction::GunPrimaryGeneratorAction( - const G4String& particleName, +GunPrimaryGeneratorAction::GunPrimaryGeneratorAction( + const G4String& particleName, G4double energy, - G4ThreeVector position, + G4ThreeVector position, G4ThreeVector momentumDirection) - : G4VUserPrimaryGeneratorAction(), - fParticleGun(nullptr) { G4int nofParticles = 1; fParticleGun = new G4ParticleGun(nofParticles); @@ -73,3 +74,7 @@ void GunPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) fParticleGun->GeneratePrimaryVertex(anEvent); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} + diff --git a/examples/extended/common/testCommon.cc b/examples/extended/common/testCommon.cc index a62ef77fab..08cefe1f9e 100644 --- a/examples/extended/common/testCommon.cc +++ b/examples/extended/common/testCommon.cc @@ -25,7 +25,7 @@ // // // -/// \file testCommon.cc +/// \file common/testCommon.cc /// \brief Test program for the common classes #include "DetectorConstruction.hh" @@ -37,6 +37,8 @@ #include "G4RunManager.hh" #include "FTFP_BERT.hh" +using namespace Common; + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // Test program which only instantiates classes defined in diff --git a/examples/extended/common/vis.mac b/examples/extended/common/vis.mac new file mode 100644 index 0000000000..6992af6e6c --- /dev/null +++ b/examples/extended/common/vis.mac @@ -0,0 +1,121 @@ +# Macro file for the visualization setting in the initialization phase +# of the B1 example when running in interactive mode +# + +# Use these open statements to open selected visualization +# +# Use this open statement to create an OpenGL view: +/vis/open OGL 600x600-0+0 +# +# Use this open statement to create an OpenInventor view: +#/vis/open OI +# +# Use this open statement to create a .prim file suitable for +# viewing in DAWN: +#/vis/open DAWNFILE +# +# Use this open statement to create a .heprep file suitable for +# viewing in HepRApp: +#/vis/open HepRepFile +# +# Use this open statement to create a .wrl file suitable for +# viewing in a VRML viewer: +#/vis/open VRML2FILE +# +# Use this open statement to create an offscreen file with TSG: +#/vis/open TSG_OFFSCREEN 1200x1200 +# See the tsg_offscreen.mac file for more commands to change +# the file format, file name, picture size, etc. +# +# Disable auto refresh and quieten vis messages whilst scene and +# trajectories are established: +/vis/viewer/set/autoRefresh false +/vis/verbose errors +# +# Draw geometry: +/vis/drawVolume +# +# Specify view angle: +/vis/viewer/set/viewpointVector -1 0 0 +/vis/viewer/set/lightsVector -1 0 0 +# +# Specify style (surface, wireframe, auxiliary edges,...) +/vis/viewer/set/style wireframe +/vis/viewer/set/auxiliaryEdge true +/vis/viewer/set/lineSegmentsPerCircle 100 +# +# Draw smooth trajectories at end of event, showing trajectory points +# as markers 2 pixels wide: +/vis/scene/add/trajectories smooth +/vis/modeling/trajectories/create/drawByCharge +/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true +/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2 +# (if too many tracks cause core dump => /tracking/storeTrajectory 0) +# +# Draw hits at end of event: +#/vis/scene/add/hits +# +# To draw only gammas: +#/vis/filtering/trajectories/create/particleFilter +#/vis/filtering/trajectories/particleFilter-0/add gamma +# +# To invert the above, drawing all particles except gammas, +# keep the above two lines but also add: +#/vis/filtering/trajectories/particleFilter-0/invert true +# +# Many other options are available with /vis/modeling and /vis/filtering. +# For example, to select colour by particle ID: +#/vis/modeling/trajectories/create/drawByParticleID +#/vis/modeling/trajectories/drawByParticleID-0/default/setDrawStepPts true +# To select or override default colours (note: e+ is blue by default): +#/vis/modeling/trajectories/list +#/vis/modeling/trajectories/drawByParticleID-0/set e+ yellow +# +# To superimpose all of the events from a given run: +/vis/scene/endOfEventAction accumulate +# +# Decorations +# Name +/vis/set/textColour green +/vis/set/textLayout right +/vis/scene/add/text2D 0.9 -.9 24 ! ! exampleB1 +# or, if your system does not support right-adjustment +#/vis/scene/add/text2D 0 -.9 24 ! ! exampleB1 +/vis/set/textLayout # Revert to normal (left adjusted) layout +/vis/set/textColour # Revert to default text colour (blue) +# +# Axes, scale, etc. +/vis/scene/add/scale # Simple scale line +/vis/scene/add/axes # Simple axes: x=red, y=green, z=blue. +/vis/scene/add/eventID # Drawn at end of event +/vis/scene/add/date # Date stamp +/vis/scene/add/logo2D # Simple logo +/vis/scene/add/logo # 3D logo +# +# Frame +/vis/set/colour red +/vis/set/lineWidth 2 +/vis/scene/add/frame # Simple frame around the view +/vis/set/colour # Revert to default colour (white) +/vis/set/lineWidth # Revert to default line width (1.) +# +# Attach text to one edge of Shape1, with a small, fixed offset +/vis/scene/add/text 0 6 -4 cm 18 4 4 Shape1 +# Attach text to one corner of Shape2, with a small, fixed offset +/vis/scene/add/text 6 7 10 cm 18 4 4 Shape2 +# +# To get nice view +# Make the "World" box invisible +/vis/geometry/set/visibility World 0 false +# "Envelope" is transparent blue to represent water +#/vis/geometry/set/colour Envelope 0 0 0 1 .3 +/vis/viewer/set/style surface +/vis/viewer/set/hiddenMarker true +/vis/viewer/set/viewpointThetaPhi 120 150 +# +# Re-establish auto refreshing and verbosity: +/vis/viewer/set/autoRefresh true +/vis/verbose warnings +# +# For file-based drivers, use this to create an empty detector view: +#/vis/viewer/flush diff --git a/examples/extended/electromagnetic/TestEm0/TestEm0.out b/examples/extended/electromagnetic/TestEm0/TestEm0.out index 49db26653e..ec36ca56c6 100644 --- a/examples/extended/electromagnetic/TestEm0/TestEm0.out +++ b/examples/extended/electromagnetic/TestEm0/TestEm0.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -41,6 +41,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -68,7 +69,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 1 Use cut as a final range enabled 0 @@ -104,8 +105,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -146,18 +146,18 @@ Index : 0 used in the geometry : Yes compCrossSectionPerVolume: 0.0761496 cm^-1 0.489918 cm^-1 0 cm^-1 0.0341792 cm^-1 0.600247 cm^-1 - cross section per volume : 0.076168 cm^-1 0.489918 cm^-1 0 cm^-1 0.0341803 cm^-1 0.600266 cm^-1 - cross section per mass : 1.43092 mm2/g 9.20379 mm2/g 0 um2/mg 642.126 um2/mg 11.2768 mm2/g + cross section per volume : 0.076168 cm^-1 0.489918 cm^-1 0 cm^-1 0.0341792 cm^-1 0.600265 cm^-1 + cross section per mass : 1.43092 mm2/g 9.20379 mm2/g 0 um2/mg 642.104 um2/mg 11.2768 mm2/g - mean free path : 13.1289 cm 2.04116 cm 5.82593e+288 pc 29.2566 cm 1.66593 cm - (g/cm2) : 69.885 g/cm2 10.8651 g/cm2 2.88022e+285 kg/cm2 155.733 g/cm2 8.86773 g/cm2 + mean free path : 13.1289 cm 2.04116 cm 5.82593e+288 pc 29.2575 cm 1.66593 cm + (g/cm2) : 69.885 g/cm2 10.8651 g/cm2 2.88022e+285 kg/cm2 155.738 g/cm2 8.86775 g/cm2 ----------------------------------------------------------- Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.001107s Sys=0.000000s + User=0.000000s Real=0.000520s Sys=0.000000s Material: Water density: 1.000 g/cm3 RadL: 36.092 cm Nucl.Int.Length: 75.356 cm Imean: 78.000 eV temperature: 293.15 K pressure: 1.00 atm @@ -227,7 +227,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000183s Sys=0.000000s + User=0.000000s Real=0.000131s Sys=0.000000s G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 9 of which, static: 0 diff --git a/examples/extended/electromagnetic/TestEm1/.README.txt b/examples/extended/electromagnetic/TestEm1/.README.txt index a2f27dd1e7..854a40ef29 100644 --- a/examples/extended/electromagnetic/TestEm1/.README.txt +++ b/examples/extended/electromagnetic/TestEm1/.README.txt @@ -115,6 +115,8 @@ Idle> exit - radioactive.mac: use radioactive ion as primary particle - range.mac: compute the csda range of the primary particle with or without fluctuations + - erange.mac, pRange.mac, alphaRange.mac, ionRange.mac: variants of range.mac + to play with StepFunction() - runs.mac: electron 100 MeV; all processes Macros to be run interactively: diff --git a/examples/extended/electromagnetic/TestEm1/CMakeLists.txt b/examples/extended/electromagnetic/TestEm1/CMakeLists.txt index e7d8e924f5..3841c95df1 100644 --- a/examples/extended/electromagnetic/TestEm1/CMakeLists.txt +++ b/examples/extended/electromagnetic/TestEm1/CMakeLists.txt @@ -40,9 +40,9 @@ target_link_libraries(TestEm1 ${Geant4_LIBRARIES} ${HBOOK_LIBRARIES}) # relies on these scripts being in the current working directory. # set(TestEm1_SCRIPTS - annihil.mac brems.mac decayinfly.mac erange.mac gammaconversion.mac - geantino.mac photoelec.mac photon.mac radioactive.mac range.mac runs.mac - stepMax.mac TestEm1.in TestEm1.out vis.mac + alphaRange.mac annihil.mac brems.mac decayinfly.mac erange.mac gammaconversion.mac + geantino.mac ionRange.mac photoelec.mac photon.mac radioactive.mac range.mac runs.mac + pRange.mac stepMax.mac TestEm1.in TestEm1.out vis.mac ) foreach(_script ${TestEm1_SCRIPTS}) diff --git a/examples/extended/electromagnetic/TestEm1/History b/examples/extended/electromagnetic/TestEm1/History index 02a38a17c2..1536ab5a1b 100644 --- a/examples/extended/electromagnetic/TestEm1/History +++ b/examples/extended/electromagnetic/TestEm1/History @@ -5,6 +5,19 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-10-31 Vladimir Ivanchenko (testem1-V11-00-04) +- PhysicsList::AddRadioactiveDecay(): enable atomic de-excitation + in order to fix problem #2494 + +## 2022-10-11 Michel Maire (testem1-V11-00-03) +- PhysicsList::AddRadioactiveDecay(): update lifeTime threshold + +## 2022-10-02 Michel Maire (testem1-V11-00-02) +- update photoelec.mac + +## 2022-08-24 Michel Maire (testem1-V11-00-01) +- add 3 new macros to play with StepFunction() : pRange, alphaRange, ionRange + ## 2021-12-10 Ben Morgan (testem1-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/electromagnetic/TestEm1/README b/examples/extended/electromagnetic/TestEm1/README index 2e887537f7..9d03daa780 100644 --- a/examples/extended/electromagnetic/TestEm1/README +++ b/examples/extended/electromagnetic/TestEm1/README @@ -112,6 +112,8 @@ - radioactive.mac: use radioactive ion as primary particle - range.mac: compute the csda range of the primary particle with or without fluctuations + - erange.mac, pRange.mac, alphaRange.mac, ionRange.mac: variants of range.mac + to play with StepFunction() - runs.mac: electron 100 MeV; all processes Macros to be run interactively: diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.out b/examples/extended/electromagnetic/TestEm1/TestEm1.out index fe59a065ab..62c4ce635e 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.out +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -59,6 +59,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -86,7 +87,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 1 Use cut as a final range enabled 0 @@ -119,6 +120,16 @@ Type of electron single scattering model 0 Type of nuclear form-factor 1 Screening factor 1 ======================================================================= +====== Atomic Deexcitation Parameters ======== +======================================================================= +Fluorescence enabled 1 +Directory in G4LEDATA for fluorescence data files fluor +Auger electron cascade enabled 1 +PIXE atomic de-excitation enabled 0 +De-excitation module ignores cuts 1 +Type of PIXE cross section for hadrons Empirical +Type of PIXE cross section for e+- Livermore +======================================================================= # ##/globalField/setValue 0 0 5 tesla # @@ -137,6 +148,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -164,7 +176,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 1 Use cut as a final range enabled 0 @@ -197,6 +209,21 @@ Type of electron single scattering model 0 Type of nuclear form-factor 1 Screening factor 1 ======================================================================= +====== Atomic Deexcitation Parameters ======== +======================================================================= +Fluorescence enabled 1 +Directory in G4LEDATA for fluorescence data files fluor +Auger electron cascade enabled 1 +PIXE atomic de-excitation enabled 0 +De-excitation module ignores cuts 1 +Type of PIXE cross section for hadrons Empirical +Type of PIXE cross section for e+- Livermore +======================================================================= + +### === Deexcitation model UAtomDeexcitation is activated for 1 region: + DefaultRegionForTheWorld 1 1 0 +### === Auger flag: 1 +### === Ignore cuts flag: 1 phot: for gamma SubType=12 BuildTable=0 LambdaPrime table from 200 keV to 100 TeV in 61 bins @@ -215,8 +242,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -332,15 +359,16 @@ ionIoni: for GenericIon XStype:1 SubType=2 ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 0.14427 ps +min MeanLife (from G4NuclideTable) 1 ps Max life time (from G4DeexPrecoParameters) 1 ns Internal e- conversion flag 1 Stored internal conversion coefficients 0 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 -Atomic de-excitation enabled 0 -Auger electron emission enabled 0 -Check EM cuts disabled for atomic de-excitation 0 +Atomic de-excitation enabled 1 +Auger electron emission enabled 1 +Check EM cuts disabled for atomic de-excitation 1 Use Bearden atomic level energies 0 Use ANSTO fluorescence model 0 Threshold for very long decay time at rest 3.171e+10 y @@ -622,31 +650,31 @@ N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008 Run terminated. Run Summary Number of events processed : 2000 - User=1.220000s Real=1.243710s Sys=0.000000s + User=1.800000s Real=1.819667s Sys=0.000000s ======================== run summary ====================== The run is: 2000 e- of 100 MeV through 10 m of Aluminium (density: 2.7 g/cm3 ) - Total energy deposit: 99.812 MeV + Total energy deposit: 99.817 MeV NIEL energy calculated: 0 eV - Nb tracks/event neutral: 25.463 charged: 138.26 - Nb steps/event neutral: 140.51 charged: 204.32 + Nb tracks/event neutral: 26.266 charged: 213.24 + Nb steps/event neutral: 140.46 charged: 279.25 Process calls frequency : - CoulombScat= 1 Rayl= 17705 Transportation= 1877 - annihil= 2855 compt= 212384 conv= 2843 - eBrem= 46343 eIoni= 359084 msc= 341 - phot= 46218 + CoulombScat= 1 Rayl= 17869 Transportation= 1803 + annihil= 2770 compt= 210513 conv= 2755 + eBrem= 46487 eIoni= 508883 msc= 349 + phot= 47979 --------------------------------------------------------- Primary particle : - true Range = 11.015 cm rms = 3.7708 cm - proj Range = 9.5256 cm rms = 3.4716 cm - proj/true = 0.86482 - transverse dispersion at end = 1.6495 cm - mass true Range from simulation = 29.739 g/cm2 + true Range = 11.053 cm rms = 3.8363 cm + proj Range = 9.6034 cm rms = 3.5551 cm + proj/true = 0.86882 + transverse dispersion at end = 1.6103 cm + mass true Range from simulation = 29.844 g/cm2 from PhysicsTable (csda range) = 32.101 g/cm2 --------------------------------------------------------- @@ -654,7 +682,7 @@ Run Summary ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={298195347322050362, 377162314956681423, 1447041953751850220, 820017327307924846, 563394911621704075, 1779362139862319236, 1119598109281490304, 943712282904557481, 574987401755135719, 1300561144833418332, 10746752241443683, 246367271859313009, 2118032409884854416, 2151255124739040337, 525695242994713200, 485469822262530518, 35667118537042959} counter= 13sumtot= 962208620833906414 +N=17 V[N]={690198723536179998, 579348065020758353, 1232261265139153084, 165787043733624689, 748937011550919510, 879415774404578847, 2110754935832426187, 1748976034684396008, 1365227957530309923, 1135855280823101212, 359509110872997255, 2259881656703777725, 1810625495170997845, 2089662706748706929, 1984193456088473829, 1436347530539347210, 1011961977761377040} counter= 15sumtot= 856356943217880085 --------------------------------------- # /gun/particle proton @@ -676,7 +704,7 @@ Index : 0 used in the geometry : Yes ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={298195347322050362, 377162314956681423, 1447041953751850220, 820017327307924846, 563394911621704075, 1779362139862319236, 1119598109281490304, 943712282904557481, 574987401755135719, 1300561144833418332, 10746752241443683, 246367271859313009, 2118032409884854416, 2151255124739040337, 525695242994713200, 485469822262530518, 35667118537042959} counter= 13sumtot= 962208620833906414 +N=17 V[N]={690198723536179998, 579348065020758353, 1232261265139153084, 165787043733624689, 748937011550919510, 879415774404578847, 2110754935832426187, 1748976034684396008, 1365227957530309923, 1135855280823101212, 359509110872997255, 2259881656703777725, 1810625495170997845, 2089662706748706929, 1984193456088473829, 1436347530539347210, 1011961977761377040} counter= 15sumtot= 856356943217880085 --------------------------------------- --> Event 0 starts. --> Event 200 starts. @@ -691,28 +719,28 @@ N=17 V[N]={298195347322050362, 377162314956681423, 1447041953751850220, 82001732 Run terminated. Run Summary Number of events processed : 2000 - User=0.070000s Real=0.065042s Sys=0.000000s + User=0.080000s Real=0.074767s Sys=0.000000s ======================== run summary ====================== The run is: 2000 proton of 100 MeV through 10 m of Aluminium (density: 2.7 g/cm3 ) Total energy deposit: 100 MeV - NIEL energy calculated: 168.91 eV + NIEL energy calculated: 168.14 eV - Nb tracks/event neutral: 0 charged: 1.008 - Nb steps/event neutral: 0 charged: 19.076 + Nb tracks/event neutral: 0 charged: 1.0065 + Nb steps/event neutral: 0 charged: 19.073 Process calls frequency : - CoulombScat= 40 NoProcess= 16 hIoni= 38081 - ionIoni= 16 + CoulombScat= 46 NoProcess= 13 hIoni= 38074 + ionIoni= 13 --------------------------------------------------------- Primary particle : - true Range = 3.7109 cm rms = 414.55 um - proj Range = 3.7027 cm rms = 421.77 um - proj/true = 0.99778 - transverse dispersion at end = 1.1102 mm + true Range = 3.7109 cm rms = 415.06 um + proj Range = 3.7026 cm rms = 431.69 um + proj/true = 0.99775 + transverse dispersion at end = 1.1267 mm mass true Range from simulation = 10.019 g/cm2 from PhysicsTable (csda range) = 10.012 g/cm2 --------------------------------------------------------- @@ -721,7 +749,7 @@ Run Summary ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={1963692197878496392, 622168023948953357, 2089546183435143766, 753496098915486054, 2242623049372405584, 1955456684500380770, 206222095247760546, 227210730902721457, 1492029148174856020, 2036465380689031490, 2102770914763652064, 1950838336433853929, 128057754058570785, 681315585358317074, 1619110221249686914, 1008309735332188886, 1939323789642781919} counter= 15sumtot= 2266048846981041448 +N=17 V[N]={1022057284471871571, 2182122990961787818, 22661610049818286, 1167058904645161636, 1057523812732912072, 448833241231062584, 265784209780802524, 272334288315472262, 2207680454799403809, 1653502782966459341, 1990026467855209068, 1157980319271137565, 496108903690270821, 1002644507988024922, 1781101410953333273, 759600882143407906, 1560436312506735844} counter= 8sumtot= 600714310653319694 --------------------------------------- # G4 kernel has come to Quit state. diff --git a/examples/extended/electromagnetic/TestEm1/alphaRange.mac b/examples/extended/electromagnetic/TestEm1/alphaRange.mac new file mode 100644 index 0000000000..34f626e4b9 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/alphaRange.mac @@ -0,0 +1,38 @@ +# +# Macro file for "TestEm1.cc" +# +# compute csda range of primary particle +# +/control/verbose 1 +/run/verbose 1 +# +/testem/det/setMat Water +# +/testem/phys/addPhysics local +###/testem/phys/addPhysics emstandard_opt4 +# +/process/em/verbose 0 +/run/initialize +# +# prevent any secondary production +/run/setCut 1 km +# +# (no) step limitation from eLoss. +# to test StepFunction, play with this command +###/process/eLoss/StepFunctionLightIons 1 1 mm +# +# eliminate straggling +/process/eLoss/fluct false +/process/inactivate msc +# +/process/em/printParameters +# +/testem/gun/setDefault +/gun/particle alpha +/gun/energy 200 MeV +# +/tracking/verbose 2 +/run/beamOn 2 +/tracking/verbose 0 +# +/run/beamOn 10000 diff --git a/examples/extended/electromagnetic/TestEm1/erange.mac b/examples/extended/electromagnetic/TestEm1/erange.mac index c39b349d53..b3e2d46454 100644 --- a/examples/extended/electromagnetic/TestEm1/erange.mac +++ b/examples/extended/electromagnetic/TestEm1/erange.mac @@ -1,38 +1,38 @@ # # Macro file for "TestEm1.cc" # -# compute the csda range of primary particle +# compute csda range of primary particle # -/control/verbose 2 -/run/verbose 2 +/control/verbose 1 +/run/verbose 1 # /testem/det/setMat Water # /testem/phys/addPhysics local -###/testem/phys/addPhysics empenelope -###/testem/phys/addPhysics emlivermore +###/testem/phys/addPhysics emstandard_opt4 # +/process/em/verbose 0 /run/initialize # -# csda condition +# prevent any secondary production /run/setCut 1 km # -# no step limitation from eLoss -/process/eLoss/StepFunction 1 100 um +# (no) step limitation from eLoss +# to test StepFunction, play with this command +###/process/eLoss/StepFunction 1 1 mm # # eliminate straggling /process/eLoss/fluct false /process/inactivate msc # +/process/em/printParameters +# /testem/gun/setDefault /gun/particle e- -/gun/energy 100 keV +/gun/energy 1 MeV # -/tracking/verbose 1 -/run/beamOn 5 +/tracking/verbose 2 +/run/beamOn 2 +/tracking/verbose 0 # -###/analysis/setFileName std.1km -###/analysis/h1/set 1 200 0 2000 um # csda range -###/analysis/h1/set 1 250 0 5000 um -# -###/run/beamOn 20000 +/run/beamOn 10000 diff --git a/examples/extended/electromagnetic/TestEm1/ionRange.mac b/examples/extended/electromagnetic/TestEm1/ionRange.mac new file mode 100644 index 0000000000..c5e83c37dc --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/ionRange.mac @@ -0,0 +1,39 @@ +# +# Macro file for "TestEm1.cc" +# +# compute csda range of primary particle. +# +/control/verbose 1 +/run/verbose 1 +# +/testem/det/setMat Water +# +/testem/phys/addPhysics local +###/testem/phys/addPhysics emstandard_opt4 +# +/process/em/verbose 0 +/run/initialize +# +# prevent any secondary production +/run/setCut 1 km +# +# (no) step limitation from eLoss. +# to test StepFunction, play with this command +/process/eLoss/StepFunctionIons 1 1 mm +# +# eliminate straggling +/process/eLoss/fluct false +/process/inactivate msc +# +/process/em/printParameters +# +/testem/gun/setDefault +/gun/particle ion +/gun/ion 6 12 +/gun/energy 500 MeV +# +/tracking/verbose 2 +/run/beamOn 2 +/tracking/verbose 0 +# +/run/beamOn 10000 diff --git a/examples/extended/electromagnetic/TestEm1/pRange.mac b/examples/extended/electromagnetic/TestEm1/pRange.mac new file mode 100644 index 0000000000..8e01bdfd1e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/pRange.mac @@ -0,0 +1,38 @@ +# +# Macro file for "TestEm1.cc" +# +# compute csda range of primary particle +# +/control/verbose 1 +/run/verbose 1 +# +/testem/det/setMat Water +# +/testem/phys/addPhysics local +###/testem/phys/addPhysics emstandard_opt4 +# +/process/em/verbose 0 +/run/initialize +# +# prevent any secondary production +/run/setCut 1 km +# +# (no) step limitation from eLoss. +# to test StepFunction, play with this command +###/process/eLoss/StepFunctionMuHad 1 1 mm +# +# eliminate straggling +/process/eLoss/fluct false +/process/inactivate msc +# +/process/em/printParameters +# +/testem/gun/setDefault +/gun/particle proton +/gun/energy 100 MeV +# +/tracking/verbose 2 +/run/beamOn 2 +/tracking/verbose 0 +# +/run/beamOn 10000 diff --git a/examples/extended/electromagnetic/TestEm1/photoelec.mac b/examples/extended/electromagnetic/TestEm1/photoelec.mac index f87a6f08b4..234eaa3441 100644 --- a/examples/extended/electromagnetic/TestEm1/photoelec.mac +++ b/examples/extended/electromagnetic/TestEm1/photoelec.mac @@ -1,28 +1,32 @@ # # Macro file for "TestEm1.cc" # -# Photon 100 keV; photoelectric effect +# check energy conservation in photoelectric process # -/control/verbose 2 -/run/verbose 2 +/control/verbose 1 +/run/verbose 1 # /testem/det/setMat G4_Gd -/testem/det/setSize 100 m +/testem/det/setSize 10 m # /testem/phys/addPhysics local +###/testem/phys/addPhysics emstandard_opt4 # /run/initialize # -# no Compton nor conversion +/process/em/verbose 0 +# +# photoelectric alone : no Compton nor conversion /process/inactivate compt /process/inactivate conv # -/process/em/deexcitation world true true true -/process/em/fluo true +# atomic deexcitation +/process/em/fluo true /process/em/auger true +/process/em/deexcitationIgnoreCut true # -# prevent ionisation and bremsstrahlung production -/run/setCut 1 um +# no delta rays or bremsstrahlung production +/run/setCut 1 mm # # no multiple scattering /process/inactivate msc @@ -32,9 +36,11 @@ /gun/energy 80 keV /gun/position 0 0 0 mm # -/analysis/setFileName photoelec -/analysis/h1/set 4 100 0 100 keV #total edep -# +/tracking/verbose 2 +/run/beamOn 1 /tracking/verbose 0 # +/analysis/setFileName photoelec +/analysis/h1/set 4 100 0 100 keV #total edep +# /run/beamOn 10000 diff --git a/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc index 49e47a5e18..8786fd7ce9 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc @@ -265,13 +265,18 @@ void PhysicsList::AddRadioactiveDecay() G4RadioactiveDecay* radioactiveDecay = new G4RadioactiveDecay(); radioactiveDecay->SetARM(true); //Atomic Rearangement + + // atomic de-excitation module + G4EmParameters::Instance()->SetAuger(true); + G4EmParameters::Instance()->SetDeexcitationIgnoreCut(true); G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); ph->RegisterProcess(radioactiveDecay, G4GenericIon::GenericIon()); // mandatory for G4NuclideTable // - G4NuclideTable::GetInstance()->SetThresholdOfHalfLife(0.1*picosecond); + const G4double meanLife = 1*picosecond, halfLife = meanLife*std::log(2); + G4NuclideTable::GetInstance()->SetThresholdOfHalfLife(halfLife); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.out b/examples/extended/electromagnetic/TestEm10/TestEm10.out index 5d38b22048..25000e5632 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.out +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -50,6 +50,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -77,7 +78,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -128,8 +129,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -214,10 +215,10 @@ Lorentz Factor XTR photon number 8.085e+04 3.154 9.283e+04 3.154 -total time for build X-ray TR energy loss tables = 0.62 s +total time for build X-ray TR energy loss tables = 0.67 s Build angle for energy distribution according the current radiator -total time for build X-ray TR angle for energy loss tables = 2.02 s +total time for build X-ray TR angle for energy loss tables = 2.19 s msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -304,10 +305,10 @@ Lorentz Factor XTR photon number 8.085e+04 3.154 9.283e+04 3.154 -total time for build X-ray TR energy loss tables = 0.62 s +total time for build X-ray TR energy loss tables = 0.67 s Build angle for energy distribution according the current radiator -total time for build X-ray TR angle for energy loss tables = 2.03 s +total time for build X-ray TR angle for energy loss tables = 2.2 s msc: for proton SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -632,22 +633,22 @@ Index : 2 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=0.230000s Real=0.230743s Sys=0.000000s + User=0.250000s Real=0.251837s Sys=0.000000s ================== run summary ===================== End of Run TotNbofEvents = 1000 - Mean energy deposit in absorber = 0.0485156 +-0.0186259 MeV - Total number of XTR gammas = 2737 - Total number of all gammas = 2824 + Mean energy deposit in absorber = 0.0469696 +-0.0185724 MeV + Total number of XTR gammas = 2677 + Total number of all gammas = 2759 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 204941822, 1862216165 + Current couple of seeds = 1520903769, 1468394322 ---------------------------------------- ... write file : testem10.root - done ... close file : testem10.root - done G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 12 of which, static: 0 -Dynamic pools deleted: 12 / Total memory freed: 0.042 MB +Dynamic pools deleted: 12 / Total memory freed: 0.054 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/electromagnetic/TestEm11/History b/examples/extended/electromagnetic/TestEm11/History index 9f2126fa8d..8f203db062 100644 --- a/examples/extended/electromagnetic/TestEm11/History +++ b/examples/extended/electromagnetic/TestEm11/History @@ -4,7 +4,9 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! - +## 2022-10-11 Michel Maire (testem11-V11-00-01) +- PhysicsList::AddRadioactiveDecay(): update lifeTime threshold + ## 2021-12-10 Ben Morgan (testem11-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/electromagnetic/TestEm11/TestEm11.out b/examples/extended/electromagnetic/TestEm11/TestEm11.out index b245039812..5f092232e5 100644 --- a/examples/extended/electromagnetic/TestEm11/TestEm11.out +++ b/examples/extended/electromagnetic/TestEm11/TestEm11.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -81,6 +81,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -108,7 +109,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 1 Use cut as a final range enabled 0 @@ -144,8 +145,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -174,8 +174,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 10 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -278,7 +278,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 10 eV to 100 TeV in 260 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI CSDA range table up to 1 GeV in 160 bins @@ -289,10 +289,11 @@ nuclearStopping: for GenericIon SubType=8 BuildTable=0 ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 0.14427 ps +min MeanLife (from G4NuclideTable) 1 ps Max life time (from G4DeexPrecoParameters) 1 ns Internal e- conversion flag 1 Stored internal conversion coefficients 0 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -539,23 +540,23 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 20000 - User=0.740000s Real=0.756535s Sys=0.000000s + User=0.800000s Real=0.810507s Sys=0.000000s ======================== run summary ===================== The run is 20000 e- of 500.00 keV through 1 absorbers: 1 1.00 mm of G4_Si (density: 2.33 g/cm3 ) - Edep in absorber 1 = 448.293 keV (13.860 keV-->500.000 keV) + Edep in absorber 1 = 448.476 keV (13.860 keV-->500.000 keV) - Track length of primary track = 884.033 um +- 189.759 um + Track length of primary track = 884.384 um +- 189.614 um Range from EmCalculator = 942.776 um (from full dE/dx) - Projected range = 324.059 um +- 194.351 um + Projected range = 324.324 um +- 194.185 um - Nb of steps of primary track = 12.02 +- 2.92 Step size= 75.868 um +- 19.094 um + Nb of steps of primary track = 12.02 +- 2.92 Step size= 75.905 um +- 19.096 um - absorbed = 77.60 % transmit = 5.93 % reflected = 16.47 % + absorbed = 77.66 % transmit = 5.93 % reflected = 16.41 % --------- Ranecu engine status --------- Initial seed (index) = 0 diff --git a/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc index 19d987d09f..ff206d657e 100644 --- a/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc @@ -257,7 +257,8 @@ void PhysicsList::AddRadioactiveDecay() // mandatory for G4NuclideTable // - G4NuclideTable::GetInstance()->SetThresholdOfHalfLife(0.1*picosecond); + const G4double meanLife = 1*picosecond, halfLife = meanLife*std::log(2); + G4NuclideTable::GetInstance()->SetThresholdOfHalfLife(halfLife); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm12/TestEm12.out b/examples/extended/electromagnetic/TestEm12/TestEm12.out index 293fbe422f..524f959f6f 100644 --- a/examples/extended/electromagnetic/TestEm12/TestEm12.out +++ b/examples/extended/electromagnetic/TestEm12/TestEm12.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -74,6 +74,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -101,7 +102,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 1 Use cut as a final range enabled 0 @@ -152,8 +153,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -542,24 +543,24 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.770000s Real=0.808605s Sys=0.000000s + User=0.990000s Real=1.022767s Sys=0.010000s ======================== run summary ===================== The run is 10000 e- of 4.00 MeV through 3.00 cm of G4_WATER (density: 1.00 g/cm3 ) - Total Energy deposited = 3.947 MeV +- 207.171 keV + Total Energy deposited = 3.944 MeV +- 210.924 keV - Track length of primary track = 2.045 cm +- 2.788 mm + Track length of primary track = 2.046 cm +- 2.800 mm Range from EmCalculator = 2.045 cm (from full dE/dx) - Projected range = 1.325 cm +- 3.644 mm + Projected range = 1.321 cm +- 3.669 mm - Nb of steps of primary track = 16.53 +- 3.06 Step size= 1.274 mm +- 274.285 um + Nb of steps of primary track = 16.53 +- 3.03 Step size= 1.274 mm +- 274.282 um --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1731519801, 1589337773 + Current couple of seeds = 967874980, 672079861 ---------------------------------------- G4 kernel has come to Quit state. ================== Deleting memory pools =================== diff --git a/examples/extended/electromagnetic/TestEm13/TestEm13.out b/examples/extended/electromagnetic/TestEm13/TestEm13.out index dc0971d504..147e9aae54 100644 --- a/examples/extended/electromagnetic/TestEm13/TestEm13.out +++ b/examples/extended/electromagnetic/TestEm13/TestEm13.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -28,6 +28,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -55,7 +56,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -181,7 +182,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 1000000 - User=2.030000s Real=2.046492s Sys=0.000000s + User=2.130000s Real=2.146248s Sys=0.010000s ======================== run summary ====================== @@ -248,7 +249,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000000 - User=2.330000s Real=2.347976s Sys=0.000000s + User=2.620000s Real=2.631683s Sys=0.000000s ======================== run summary ====================== diff --git a/examples/extended/electromagnetic/TestEm14/TestEm14.out b/examples/extended/electromagnetic/TestEm14/TestEm14.out index 1a51a386ba..881c5e1d08 100644 --- a/examples/extended/electromagnetic/TestEm14/TestEm14.out +++ b/examples/extended/electromagnetic/TestEm14/TestEm14.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -28,6 +28,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -55,7 +56,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -181,7 +182,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 1000000 - User=3.020000s Real=3.042654s Sys=0.000000s + User=3.790000s Real=3.843792s Sys=0.020000s ======================== run summary ====================== @@ -251,7 +252,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000000 - User=2.840000s Real=2.875040s Sys=0.000000s + User=3.600000s Real=3.632823s Sys=0.000000s ======================== run summary ====================== diff --git a/examples/extended/electromagnetic/TestEm15/TestEm15.out b/examples/extended/electromagnetic/TestEm15/TestEm15.out index 4f92a98777..f82339b484 100644 --- a/examples/extended/electromagnetic/TestEm15/TestEm15.out +++ b/examples/extended/electromagnetic/TestEm15/TestEm15.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -239,6 +239,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -266,7 +267,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 0 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -563,7 +564,7 @@ N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008 Run terminated. Run Summary Number of events processed : 10000 - User=0.030000s Real=0.035696s Sys=0.000000s + User=0.050000s Real=0.050336s Sys=0.000000s The run consists of 10000 e- of 5 MeV through 100 m of Water (density: 1 g/cm3 ) @@ -635,7 +636,7 @@ N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008 Run terminated. Run Summary Number of events processed : 10000 - User=0.050000s Real=0.054672s Sys=0.000000s + User=0.070000s Real=0.072311s Sys=0.000000s The run consists of 10000 e- of 100 keV through 100 m of Water (density: 1 g/cm3 ) diff --git a/examples/extended/electromagnetic/TestEm16/History b/examples/extended/electromagnetic/TestEm16/History index 9221836baf..00a7a31bdc 100644 --- a/examples/extended/electromagnetic/TestEm16/History +++ b/examples/extended/electromagnetic/TestEm16/History @@ -4,6 +4,9 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-08-11 H.Burkhardt (testem16-V11-00-01) +- minor cleanup in vis.mac and run01.mac to make output + with multi threading more readable ## 2021-12-10 Ben Morgan (testem16-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/electromagnetic/TestEm16/TestEm16.out b/examples/extended/electromagnetic/TestEm16/TestEm16.out index acad518219..6036e8f6ea 100644 --- a/examples/extended/electromagnetic/TestEm16/TestEm16.out +++ b/examples/extended/electromagnetic/TestEm16/TestEm16.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -109,6 +109,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -136,7 +137,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -187,8 +188,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -330,7 +331,7 @@ G4SynchrotronRadiation::GetRandomEnergySR : Run terminated. Run Summary Number of events processed : 100 - User=0.170000s Real=0.166450s Sys=0.000000s + User=0.260000s Real=0.258221s Sys=0.000000s Summary for synchrotron radiation : Number of photons = 65086 Emean = 20.39 +/- 0.1444 keV diff --git a/examples/extended/electromagnetic/TestEm16/run01.mac b/examples/extended/electromagnetic/TestEm16/run01.mac index 350243a14e..674b55d5f8 100644 --- a/examples/extended/electromagnetic/TestEm16/run01.mac +++ b/examples/extended/electromagnetic/TestEm16/run01.mac @@ -3,6 +3,7 @@ # (can be run in batch, without graphic) # # +/control/cout/ignoreThreadsExcept 0 /control/verbose 2 /run/verbose 2 # diff --git a/examples/extended/electromagnetic/TestEm16/vis.mac b/examples/extended/electromagnetic/TestEm16/vis.mac index 9b4937e209..02c9dcbb0a 100644 --- a/examples/extended/electromagnetic/TestEm16/vis.mac +++ b/examples/extended/electromagnetic/TestEm16/vis.mac @@ -93,5 +93,3 @@ # For file-based drivers, use this to create an empty detector view: #/vis/viewer/flush # -/run/beamOn 1 -# diff --git a/examples/extended/electromagnetic/TestEm17/.README.txt b/examples/extended/electromagnetic/TestEm17/.README.txt index 9932493004..ba33f717a4 100644 --- a/examples/extended/electromagnetic/TestEm17/.README.txt +++ b/examples/extended/electromagnetic/TestEm17/.README.txt @@ -4,11 +4,11 @@ /*! \page ExampleTestEm17 Example TestEm17 - This example is intended to check implementation of the processes - of muon interactions: ionization, direct (e+,e-) production, - bremsstrahlung, mu-nuclear interaction. + This example is intended to check implementation of the processes + of muon interactions: ionization, direct (e+,e-) production, mu+mu- + pair production, bremsstrahlung, and mu-nuclear interaction. It allows to compute differential cross sections (as function of the - energy transfered to secondaries), total cross sections and to compare + energy transfered to secondaries), total cross sections, and to compare with analytic calculations. \section TestEm17_s1 GEOMETRY DEFINITION @@ -24,11 +24,10 @@ \section TestEm17_s2 PHYSICS LIST - The Physics List of the example uses the main local physics constructor - (builder) which called "standard". In this builder a limited set - of physics processes are defined for muons, pions and proton: - ionisation, bremsstrahlung and e+e- pair production. Energy range - for these processes is from 100*eV to 1000*PeV. + The Physics List of the example uses the main physics constructor + (builder) called "local", which includes only muon, pion, and proton + processes under study. As an alternative standard "emstandard_opt0" + and "emstandard_opt4" constructors may be used. Optionally "muNucl" builder, MuNuclearBuilder, may be added activating muon-nuclear inelastic interaction. @@ -51,9 +50,9 @@ The total number of interactions is recorded, and the total cross section computed from this. - At RunAction::EndOfRunAction(), the above results are compared with analytic calculations. - The functions which compute the theoretical cross sections have been - provided by the G4 MEPhI group, and grouped in MuCrossSections class. + At RunAction::EndOfRun(..), the above results are compared with analytical + calculations. The functions computing the theoretical cross sections have been + provided by the G4 MEPhI group, and implemented in MuCrossSections class. \section TestEm17_s5 HISTOGRAMS @@ -65,6 +64,11 @@ - 2 ... direct (e+,e-) pair production - 3 ... bremsstrahlung - 4 ... nuclear interaction + - 5 ... ionistion for hadrons + - 6 ... (e+,e-) pair production by hadrons + - 7 ... bremsstrahlung by hadrons + - 8 ... direct mu+,mu- pair production by muons + The histos can be activated individually with the command : \verbatim @@ -72,8 +76,8 @@ \endverbatim min and max values of log10(eps/Emu kin). - At RunAction::EndOfRunAction() the corresponding histos for analytic calculations are - automatically created and filled (histo 11 to 14). + At RunAction::EndOfRunAction() the corresponding histos for analytic calculations are + automatically created and filled (histo 11 to 14, and 18). One can control the name and the type of the histograms file with the command: diff --git a/examples/extended/electromagnetic/TestEm17/History b/examples/extended/electromagnetic/TestEm17/History index ed8a0262fb..4c2f34f3b3 100644 --- a/examples/extended/electromagnetic/TestEm17/History +++ b/examples/extended/electromagnetic/TestEm17/History @@ -5,13 +5,21 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-10-24 I. Hrivnacova (testem17-V11-00-02) +- Coding guidelines: start data members with 'f' (MuCrossSections); + use G4int, G4double + +## 2022-07-20 Vladimir Ivanchenko (testem17-V11-00-01) +- Added new process of muon pair production by muons; + analysis extended and new histograms are added by Siddharth Yajaman + ## 2021-12-10 Ben Morgan (testem17-V11-00-00) - Change to new Markdown History format --- # History entries prior to 11.0 - + 07-11-21 I. Hrivnacova (testem17-V10-07-03) - Added analysis manager Clear() call instead of deleting in the end of run (removed on July 19) diff --git a/examples/extended/electromagnetic/TestEm17/README b/examples/extended/electromagnetic/TestEm17/README index c59329defd..05c8bafe35 100644 --- a/examples/extended/electromagnetic/TestEm17/README +++ b/examples/extended/electromagnetic/TestEm17/README @@ -7,10 +7,10 @@ TestEm17 -------- This example is intended to check implementation of the processes - of muon interactions: ionization, direct (e+,e-) production, - bremsstrahlung, mu-nuclear interaction. + of muon interactions: ionization, direct (e+,e-) production, mu+mu- + pair production, bremsstrahlung, and mu-nuclear interaction. It allows to compute differential cross sections (as function of the - energy transfered to secondaries), total cross sections and to compare + energy transfered to secondaries), total cross sections, and to compare with analytic calculations. 1- GEOMETRY DEFINITION @@ -27,10 +27,9 @@ 2- PHYSICS LIST The Physics List of the example uses the main physics constructor - (builder) called "emstandard_opt0". As an alternative "local" - constructor is provided in which only a limited set - of physics processes are defined for muons, pions and proton: - ionisation, bremsstrahlung and e+e- pair production. + (builder) called "local", which includes only muon, pion, and proton + processes under study. As an alternative standard "emstandard_opt0" + and "emstandard_opt4" constructors may be used. Default energy range for EM processes in this example is from 100*eV to 1000*PeV. @@ -56,9 +55,9 @@ The total number of interactions is recorded, and the total cross section computed from this. - At EndOfRun, the above results are compared with analytic calculations. - The functions which compute the theoretical cross sections have been - provided by the G4 MEPhI group, and grouped in MuCrossSections class. + At RunAction::EndOfRun(..), the above results are compared with analytical + calculations. The functions computing the theoretical cross sections have been + provided by the G4 MEPhI group, and implemented in MuCrossSections class. 5- HISTOGRAMS @@ -74,13 +73,14 @@ 5 ionistion for hadrons 6 (e+,e-) pair production by hadrons 7 bremsstrahlung by hadrons + 8 direct mu+,mu- pair production by muons The histos can be activated individually with the command : /testem/histo/setHisto id nbBins valMin valMax : min and max values of log10(eps/Emu kin). At EndOfRun the corresponding histos for analytic calculations are - automatically created and filled (histo 11 to 14). + automatically created and filled (histo 11 to 14, and 18). One can control the name and the type of the histograms file with the command: diff --git a/examples/extended/electromagnetic/TestEm17/TestEm17.out b/examples/extended/electromagnetic/TestEm17/TestEm17.out index 1bc353c6db..2519e1e8da 100644 --- a/examples/extended/electromagnetic/TestEm17/TestEm17.out +++ b/examples/extended/electromagnetic/TestEm17/TestEm17.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -153,6 +153,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -180,7 +181,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -231,8 +232,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 1000 PeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 1000 PeV in 91 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 1000 PeV in 90 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -629,12 +630,11 @@ N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008 Run terminated. Run Summary Number of events processed : 10000 - User=1.440000s Real=1.457015s Sys=0.010000s + User=1.500000s Real=1.510269s Sys=0.010000s The run consists of 10000 mu+ of 10 TeV through 1 m of Iron (density: 7.9 g/cm3 ) Number of process calls ---> CoulombScat : 5620 muIoni : 465037 muPairProd : 63681 muBrems : 674 - Simulation: total CrossSection = 0.53501 /cm MeanFreePath = 1.8691 cm massicCrossSection = 0.067981 cm2/g Theory: total CrossSection = 0.52947 /cm MeanFreePath = 1.8887 cm massicCrossSection = 0.067277 cm2/g # @@ -686,12 +686,11 @@ N=17 V[N]={1111323058175034053, 2219571529747864716, 1069225865531133458, 178650 Run terminated. Run Summary Number of events processed : 10000 - User=1.340000s Real=1.358147s Sys=0.000000s + User=1.410000s Real=1.423440s Sys=0.000000s The run consists of 10000 pi+ of 10 TeV through 1 m of Iron (density: 7.9 g/cm3 ) Number of process calls ---> hIoni : 437237 hPairProd : 59690 CoulombScat : 5590 hBrems : 367 - Simulation: total CrossSection = 0.50288 /cm MeanFreePath = 1.9885 cm massicCrossSection = 0.063899 cm2/g # /gun/particle proton @@ -742,12 +741,11 @@ N=17 V[N]={537023527533468854, 703812045741405464, 171213233908340175, 933330624 Run terminated. Run Summary Number of events processed : 10000 - User=1.390000s Real=1.428053s Sys=0.010000s + User=1.320000s Real=1.327165s Sys=0.000000s The run consists of 10000 proton of 10 TeV through 1 m of Iron (density: 7.9 g/cm3 ) Number of process calls ---> hIoni : 436366 hPairProd : 33766 CoulombScat : 5659 hBrems : 7 - Simulation: total CrossSection = 0.4758 /cm MeanFreePath = 2.1017 cm massicCrossSection = 0.060457 cm2/g # G4 kernel has come to Quit state. diff --git a/examples/extended/electromagnetic/TestEm17/allproc.mac b/examples/extended/electromagnetic/TestEm17/allproc.mac index c38db44cf7..8321445ab1 100644 --- a/examples/extended/electromagnetic/TestEm17/allproc.mac +++ b/examples/extended/electromagnetic/TestEm17/allproc.mac @@ -8,7 +8,7 @@ /testem/det/setMat Iron /testem/det/setSize 1 m # -/testem/phys/addPhysics emstandard_opt0 +/testem/phys/addPhysics local # /run/setCut 1 mm # @@ -18,12 +18,18 @@ /gun/energy 100 TeV # /testem/histo/setFileName allproc -/testem/histo/setHisto 1 100 -10. 0. -/testem/histo/setHisto 2 100 -10. 0. -/testem/histo/setHisto 3 100 -10. 0. -/testem/histo/setHisto 11 100 -10. 0. -/testem/histo/setHisto 12 100 -10. 0. -/testem/histo/setHisto 13 100 -10. 0. +/testem/histo/setHisto 1 100 -10. 0. # muIonisation simulation +/testem/histo/setHisto 2 100 -10. 0. # muPair simulation +/testem/histo/setHisto 3 100 -10. 0. # muBrems simulation +/testem/histo/setHisto 8 100 -10. 0. # muToMuonPair simulation +/testem/histo/setHisto 11 100 -10. 0. # muIonisation theory +/testem/histo/setHisto 12 100 -10. 0. # muPair theory +/testem/histo/setHisto 13 100 -10. 0. # muBrems theory +/testem/histo/setHisto 18 100 -10. 0. # muToMuonPair theory +#/testem/histo/setHisto 21 100 0. 10000. # muIonisation cross section vs log10(ekin) +#/testem/histo/setHisto 22 100 0. 10000. # muPair cross section vs log10(ekin) +#/testem/histo/setHisto 23 100 0. 10000. # muBrems cross section vs log10(ekin) +#/testem/histo/setHisto 28 100 0 10000. # muToMuonPair cross section vs log10(ekin) # /run/printProgress 10000 # diff --git a/examples/extended/electromagnetic/TestEm17/brem.mac b/examples/extended/electromagnetic/TestEm17/brem.mac index 3e259d7203..13218186de 100644 --- a/examples/extended/electromagnetic/TestEm17/brem.mac +++ b/examples/extended/electromagnetic/TestEm17/brem.mac @@ -8,7 +8,7 @@ /testem/det/setMat Iron /testem/det/setSize 1 m # -/testem/phys/addPhysics emstandard_opt0 +/testem/phys/addPhysics local # /run/setCut 1 mm # @@ -16,6 +16,7 @@ # /process/inactivate muIoni /process/inactivate muPairProd +/process/inactivate muToMuonPairProd # /gun/particle mu+ /gun/energy 10 TeV diff --git a/examples/extended/electromagnetic/TestEm17/include/HistoManager.hh b/examples/extended/electromagnetic/TestEm17/include/HistoManager.hh index 30abedf8ad..c53e67a713 100644 --- a/examples/extended/electromagnetic/TestEm17/include/HistoManager.hh +++ b/examples/extended/electromagnetic/TestEm17/include/HistoManager.hh @@ -42,7 +42,7 @@ class HistoMessenger; -const G4int kMaxHisto = 15; +const G4int kMaxHisto = 30; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm17/include/MuCrossSections.hh b/examples/extended/electromagnetic/TestEm17/include/MuCrossSections.hh index de01bdff5f..bc35cd897a 100644 --- a/examples/extended/electromagnetic/TestEm17/include/MuCrossSections.hh +++ b/examples/extended/electromagnetic/TestEm17/include/MuCrossSections.hh @@ -37,30 +37,34 @@ class G4Material; class G4Element; +class G4NistManager; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class MuCrossSections { - public: - MuCrossSections(); - ~MuCrossSections(); +public: + MuCrossSections(); + ~MuCrossSections() = default; - public: - G4double CR_Macroscopic (const G4String&, const G4Material*, - G4double, G4double); - G4double CR_PerAtom (const G4String&, const G4Element*, - G4double, G4double); + G4double CR_Macroscopic(const G4String&, const G4Material*, + G4double, G4double); + G4double CR_PerAtom(const G4String&, const G4Element*, G4double, G4double); - private: - G4double CRB_Mephi (G4double, G4double, G4double, G4double); - G4double CRK_Mephi (G4double, G4double, G4double, G4double); - G4double CRN_Mephi (G4double, G4double, G4double, G4double); - G4double CRP_Mephi (G4double, G4double, G4double, G4double); +private: + G4double CRB_Mephi (G4double, G4double, G4double, G4double); + G4double CRK_Mephi (G4double, G4double, G4double, G4double); + G4double CRN_Mephi (G4double, G4double, G4double, G4double); + G4double CRP_Mephi (G4double, G4double, G4double, G4double); + G4double CRM_Mephi (G4double, G4double, G4double); + G4double U_func(G4double Z, G4double rho2, G4double xi, + G4double Y, G4double pairEnergy, const G4double B=183.); + + G4NistManager* fNist; + G4double fMuonMass; + G4double fMueRatio; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - - diff --git a/examples/extended/electromagnetic/TestEm17/include/RunAction.hh b/examples/extended/electromagnetic/TestEm17/include/RunAction.hh index abb7f4b291..2204a6a57f 100644 --- a/examples/extended/electromagnetic/TestEm17/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm17/include/RunAction.hh @@ -65,6 +65,7 @@ class RunAction : public G4UserRunAction private: G4double ComputeTheory (const G4String&, G4int); G4double GetEnergyCut (const G4Material*, G4int); + void FillCrossSectionHisto (const G4String&, G4int); DetectorConstruction* fDetector; PrimaryGeneratorAction* fPrimary; diff --git a/examples/extended/electromagnetic/TestEm17/ioni.mac b/examples/extended/electromagnetic/TestEm17/ioni.mac index e363ce938a..5655b1e772 100644 --- a/examples/extended/electromagnetic/TestEm17/ioni.mac +++ b/examples/extended/electromagnetic/TestEm17/ioni.mac @@ -8,7 +8,7 @@ /testem/det/setMat Iron /testem/det/setSize 1 m # -/testem/phys/addPhysics emstandard_opt0 +/testem/phys/addPhysics local # /run/setCut 1 mm # @@ -16,6 +16,7 @@ # /process/inactivate muPairProd /process/inactivate muBrems +/process/inactivate muToMuonPairProd # /gun/particle mu+ /gun/energy 10 TeV diff --git a/examples/extended/electromagnetic/TestEm17/munucl.mac b/examples/extended/electromagnetic/TestEm17/munucl.mac index d5258d36a1..2493acb6f6 100644 --- a/examples/extended/electromagnetic/TestEm17/munucl.mac +++ b/examples/extended/electromagnetic/TestEm17/munucl.mac @@ -9,7 +9,7 @@ /testem/det/setMat Iron /testem/det/setSize 1 m # -/testem/phys/addPhysics emstandard_opt0 +/testem/phys/addPhysics local /testem/phys/addPhysics muNucl # /run/setCut 1 mm @@ -19,6 +19,7 @@ /process/inactivate muIoni /process/inactivate muPairProd /process/inactivate muBrems +/process/inactivate muToMuonPairProd # /gun/particle mu+ /gun/energy 10 TeV diff --git a/examples/extended/electromagnetic/TestEm17/pair.mac b/examples/extended/electromagnetic/TestEm17/pair.mac index ccb832ec7d..dacc97d9f7 100644 --- a/examples/extended/electromagnetic/TestEm17/pair.mac +++ b/examples/extended/electromagnetic/TestEm17/pair.mac @@ -9,7 +9,7 @@ /testem/det/setMat Iron /testem/det/setSize 1 m # -/testem/phys/addPhysics emstandard_opt0 +/testem/phys/addPhysics local # /run/setCut 1 mm # @@ -17,6 +17,7 @@ # /process/inactivate muIoni /process/inactivate muBrems +/process/inactivate muToMuonPairProd # /gun/particle mu+ /gun/energy 10 TeV diff --git a/examples/extended/electromagnetic/TestEm17/src/HistoManager.cc b/examples/extended/electromagnetic/TestEm17/src/HistoManager.cc index 5b4324abff..d0c192341e 100644 --- a/examples/extended/electromagnetic/TestEm17/src/HistoManager.cc +++ b/examples/extended/electromagnetic/TestEm17/src/HistoManager.cc @@ -150,7 +150,8 @@ void HistoManager::SetHisto(G4int ih, } const G4String id[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", - "10", "11", "12", "13", "14"}; + "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", + "20", "21", "22", "23", "24", "25", "26", "27", "28", "29"}; const G4String title[] = { "dummy", // 0 "log10(Eloss/Emu) muIonization", //1 "log10(Eloss/Emu) muPair", //2 @@ -159,13 +160,28 @@ void HistoManager::SetHisto(G4int ih, "log10(Eloss/Emu) hIonization", //5 "log10(Eloss/Emu) hPair", //6 "log10(Eloss/Emu) hBrems", //7 - "dummy", //8 + "log10(Eloss/Emu) muToMuonPair", //8 "dummy", //9 "dummy", //10 "log10(Eloss/Emu) muIonization", //11 "log10(Eloss/Emu) muPair", //12 "log10(Eloss/Emu) muBrems", //13 - "log10(Eloss/Emu) muNuclear" //14 + "log10(Eloss/Emu) muNuclear", //14 + "dummy", //15 + "dummy", //16 + "dummy", //17 + "log10(Eloss/Emu) muToMuonPair", //18 + "dummy", //19 + "dummy", //20 + "CS(1/mm) vs ekin muIonisation", //21 + "CS(1/mm) vs ekin muPair", //22 + "CS(1/mm) vs ekin muBrems", //23 + "CS(1/mm) vs ekin muNuclear", //24 + "dummy", //25 + "dummy", //26 + "dummy", //27 + "CS(1/mm) vs ekin muToMuonPair", //28 + "dummy" //29 }; G4String titl = title[ih]; diff --git a/examples/extended/electromagnetic/TestEm17/src/MuCrossSections.cc b/examples/extended/electromagnetic/TestEm17/src/MuCrossSections.cc index 6f0338c7c1..1c9b92994e 100644 --- a/examples/extended/electromagnetic/TestEm17/src/MuCrossSections.cc +++ b/examples/extended/electromagnetic/TestEm17/src/MuCrossSections.cc @@ -35,25 +35,28 @@ #include "G4Material.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" +#include "G4MuonMinus.hh" +#include "G4DataVector.hh" +#include "G4NistManager.hh" +#include "G4Log.hh" +#include "G4Exp.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... using namespace std; - + MuCrossSections::MuCrossSections() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -MuCrossSections::~MuCrossSections() -{ } +{ + fNist = G4NistManager::Instance(); + fMuonMass = G4MuonMinus::MuonMinus()->GetPDGMass(); + fMueRatio = fMuonMass/CLHEP::electron_mass_c2; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4double MuCrossSections::CR_Macroscopic(const G4String& process, const G4Material* material, G4double tkin, G4double ep) - // return the macroscopic cross section (1/L) in GEANT4 internal units { const G4ElementVector* theElementVector = material->GetElementVector(); @@ -75,29 +78,32 @@ G4double MuCrossSections::CR_PerAtom(const G4String& process, const G4Element* element, G4double tkin, G4double ep) { - G4double z = element->GetZ(); - G4double a = element->GetA(); + G4double z = element->GetZ(); + G4double a = element->GetA(); + G4double sigma = 0.; + if (process == "muBrems") + sigma = CRB_Mephi(z,a/(g/mole),tkin/GeV,ep/GeV)*(cm2/(g*GeV))*a/Avogadro; + + else if (process == "muIoni") + sigma = CRK_Mephi(z,a/(g/mole),tkin/GeV,ep/GeV)*(cm2/(g*GeV))*a/Avogadro; + + //else if (process == "muNucl") + else if (process == "muonNuclear") + sigma = CRN_Mephi(z,a/(g/mole),tkin/GeV,ep/GeV)*(cm2/(g*GeV))*a/Avogadro; + + else if (process == "muPairProd") + sigma = CRP_Mephi(z,a/(g/mole),tkin/GeV,ep/GeV)*(cm2/(g*GeV))*a/Avogadro; - G4double sigma = 0.; - if (process == "muBrems") - sigma = CRB_Mephi(z,a/(g/mole),tkin/GeV,ep/GeV)*(cm2/(g*GeV))*a/Avogadro; - - else if (process == "muIoni") - sigma = CRK_Mephi(z,a/(g/mole),tkin/GeV,ep/GeV)*(cm2/(g*GeV))*a/Avogadro; - - //else if (process == "muNucl") - else if (process == "muonNuclear") - sigma = CRN_Mephi(z,a/(g/mole),tkin/GeV,ep/GeV)*(cm2/(g*GeV))*a/Avogadro; - - else if (process == "muPairProd") - sigma = CRP_Mephi(z,a/(g/mole),tkin/GeV,ep/GeV)*(cm2/(g*GeV))*a/Avogadro; - - return sigma; + else if (process == "muToMuonPairProd") + sigma = CRM_Mephi(z, tkin, ep); + + return sigma; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -double MuCrossSections::CRB_Mephi(double z,double a,double tkin,double ep) +G4double MuCrossSections::CRB_Mephi(G4double z, G4double a, + G4double tkin, G4double ep) //*********************************************************************** //*** crb_g4_1.inc in comparison with crb_.inc, following @@ -113,71 +119,70 @@ double MuCrossSections::CRB_Mephi(double z,double a,double tkin,double ep) //*** Bugaev's inelatic nuclear correction (28) for Z > 1. //*********************************************************************** { -// G4double Z,A,Tkin,EP; - G4double crb_g4; - G4double e,v,delta,rab0,z_13,dn,b,b1,dn_star,rab1,fn,epmax1,fe,rab2; -// - G4double ame=0.51099907e-3; // GeV - G4double lamu=0.105658389; // GeV - G4double re=2.81794092e-13; // cm - G4double avno=6.022137e23; - G4double alpha=1./137.036; - G4double rmass=lamu/ame; // "207" - G4double coeff=16./3.*alpha*avno*(re/rmass)*(re/rmass); // cm^2 - G4double sqrte=1.64872127; // sqrt(2.71828...) - G4double btf=183.; - G4double btf1=1429.; - G4double bh=202.4; - G4double bh1=446.; -//*** - if(ep >= tkin) - { - crb_g4=0.; - return crb_g4; - } - e=tkin+lamu; - v=ep/e; - delta=lamu*lamu*v/(2.*(e-ep)); // qmin - rab0=delta*sqrte; - z_13=pow(z,-0.3333333); // -//*** nuclear size and excitation, screening parameters - dn=1.54*pow(a,0.27); - if(z <= 1.5) // special case for hydrogen - { - b=bh; - b1=bh1; - dn_star=dn; - } - else - { - b=btf; - b1=btf1; - dn_star=pow(dn,(1.-1./z)); // with Bugaev's correction - } -//*** nucleus contribution logarithm - rab1=b*z_13; - fn=log(rab1/(dn_star*(ame+rab0*rab1))*(lamu+delta*(dn_star*sqrte-2.))); - if(fn < 0.) fn=0.; -//*** electron contribution logarithm - epmax1=e/(1.+lamu*rmass/(2.*e)); - if(ep >= epmax1) - { - fe=0.; - goto label10; - } - rab2=b1*z_13*z_13; - fe=log(rab2*lamu/((1.+delta*rmass/(ame*sqrte))*(ame+rab0*rab2))); - if(fe < 0.) fe=0.; -//*** -label10: - crb_g4=coeff*(1.-v*(1.-0.75*v))*z*(z*fn+fe)/(a*ep); - return crb_g4; + // G4double Z,A,Tkin,EP; + G4double crb_g4; + G4double e,v,delta,rab0,z_13,dn,b,b1,dn_star,rab1,fn,epmax1,fe,rab2; + // + G4double ame=0.51099907e-3; // GeV + G4double lamu=0.105658389; // GeV + G4double re=2.81794092e-13; // cm + G4double avno=6.022137e23; + G4double alpha=1./137.036; + G4double rmass=lamu/ame; // "207" + G4double coeff=16./3.*alpha*avno*(re/rmass)*(re/rmass); // cm^2 + G4double sqrte=1.64872127; // sqrt(2.71828...) + G4double btf=183.; + G4double btf1=1429.; + G4double bh=202.4; + G4double bh1=446.; + //*** + if(ep >= tkin) { + return 0.; + } + e=tkin+lamu; + v=ep/e; + delta=lamu*lamu*v/(2.*(e-ep)); // qmin + rab0=delta*sqrte; + G4int Z = G4lrint(z); + z_13= 1./fNist->GetZ13(z); // + //*** nuclear size and excitation, screening parameters + dn=1.54*fNist->GetA27(Z); + if(z <= 1.5) // special case for hydrogen + { + b=bh; + b1=bh1; + dn_star=dn; + } + else + { + b=btf; + b1=btf1; + dn_star=pow(dn,(1.-1./z)); // with Bugaev's correction + } + //*** nucleus contribution logarithm + rab1=b*z_13; + fn=G4Log(rab1/(dn_star*(ame+rab0*rab1))*(lamu+delta*(dn_star*sqrte-2.))); + if(fn < 0.) fn=0.; + //*** electron contribution logarithm + epmax1=e/(1.+lamu*rmass/(2.*e)); + if(ep >= epmax1) + { + fe=0.; + } + else + { + rab2=b1*z_13*z_13; + fe=G4Log(rab2*lamu/((1.+delta*rmass/(ame*sqrte))*(ame+rab0*rab2))); + if(fe < 0.) fe=0.; + } + crb_g4=coeff*(1.-v*(1.-0.75*v))*z*(z*fn+fe)/(a*ep); + return crb_g4; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double MuCrossSections::CRK_Mephi(G4double z,G4double a,G4double tkin,G4double ep) - +G4double MuCrossSections::CRK_Mephi(G4double z, G4double a, + G4double tkin, G4double ep) //*********************************************************************** //*** Cross section for knock-on electron production by fast muons //*** (including bremsstrahlung e-diagrams and rad. correction). @@ -187,42 +192,38 @@ G4double MuCrossSections::CRK_Mephi(G4double z,G4double a,G4double tkin,G4double //*** (a bit simplified Kelner's version of Eq.30 - with 2 logarithms). //*** { -// G4double Z,A,Tkin,EP; - G4double crk_g4; - G4double v,sigma0,a1,a3; -// - G4double ame=0.51099907e-3; // GeV - G4double lamu=0.105658389; // GeV - G4double re=2.81794092e-13; // cm - G4double avno=6.022137e23; - G4double alpha=1./137.036; - G4double lpi=3.141592654; - G4double bmu=lamu*lamu/(2.*ame); - G4double coeff0=avno*2.*lpi*ame*re*re; - G4double coeff1=alpha/(2.*lpi); -//*** + // G4double Z,A,Tkin,EP; + G4double crk_g4; + G4double v,sigma0,a1,a3; + // + G4double ame=0.51099907e-3; // GeV + G4double lamu=0.105658389; // GeV + G4double re=2.81794092e-13; // cm + G4double avno=6.022137e23; + G4double alpha=1./137.036; + G4double lpi=3.141592654; + G4double bmu=lamu*lamu/(2.*ame); + G4double coeff0=avno*2.*lpi*ame*re*re; + G4double coeff1=alpha/(2.*lpi); + //*** - G4double e=tkin+lamu; - if(e < 0.) { - G4cout << "CRK: " << tkin << " " << ep << " " << e << G4endl; - } - G4double epmax=e/(1.+bmu/e); - if(ep >= epmax) - { - crk_g4=0.; - return crk_g4; - } - v=ep/e; - sigma0=coeff0*(z/a)*(1.-ep/epmax+0.5*v*v)/(ep*ep); - a1=std::log(1.+2.*ep/ame); - a3=std::log(4.*e*(e-ep)/(lamu*lamu)); - crk_g4=sigma0*(1.+coeff1*a1*(a3-a1)); - return crk_g4; + G4double e=tkin+lamu; + G4double epmax=e/(1.+bmu/e); + if(ep >= epmax) { + return 0.0; + } + v=ep/e; + sigma0=coeff0*(z/a)*(1.-ep/epmax+0.5*v*v)/(ep*ep); + a1=G4Log(1.+2.*ep/ame); + a3=G4Log(4.*e*(e-ep)/(lamu*lamu)); + crk_g4=sigma0*(1.+coeff1*a1*(a3-a1)); + return crk_g4; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double MuCrossSections::CRN_Mephi(G4double /* z */,G4double a,G4double tkin,G4double ep) +G4double MuCrossSections::CRN_Mephi(G4double, G4double a, + G4double tkin,G4double ep) //*********************************************************************** //*** Differential cross section for photonuclear muon interaction. @@ -233,41 +234,41 @@ G4double MuCrossSections::CRN_Mephi(G4double /* z */,G4double a,G4double tkin,G4 //*** CRN_G4_1.inc January 31st, 1998 R.P.Kokoulin //*********************************************************************** { -// G4double Z,A,Tkin,EP; - G4double crn_g4; - G4double e,aeff,sigph,v,v1,v2,amu2,up,down; -//*** - G4double lamu=0.105658389; // GeV - G4double avno=6.022137e23; - G4double amp=0.9382723; // GeV - G4double lpi=3.14159265; - G4double alpha=1./137.036; -//*** - G4double epmin_phn=0.20; // GeV - G4double alam2=0.400000; // GeV**2 - G4double alam =0.632456; // sqrt(alam2) - G4double coeffn=alpha/lpi*avno*1e-30; // cm^2/microbarn -//*** - e=tkin+lamu; - crn_g4=0.; - if(ep >= e-0.5*amp) return crn_g4; - if(ep <= epmin_phn) return crn_g4; - aeff=0.22*a+0.78*pow(a,0.89); // shadowing - sigph=49.2+11.1*log(ep)+151.8/sqrt(ep); // microbarn - v=ep/e; - v1=1.-v; - v2=v*v; - amu2=lamu*lamu; - up=e*e*v1/amu2*(1.+amu2*v2/(alam2*v1)); - down=1.+ep/alam*(1.+alam/(2.*amp)+ep/alam); - crn_g4=coeffn*aeff/a*sigph/ep*(-v1+(v1+0.5*v2*(1.+2.*amu2/alam2))*log(up/down)); - if(crn_g4 < 0.) crn_g4=0.; - return crn_g4; + // G4double Z,A,Tkin,EP; + G4double crn_g4; + G4double e,aeff,sigph,v,v1,v2,amu2,up,down; + //*** + G4double lamu=0.105658389; // GeV + G4double avno=6.022137e23; + G4double amp=0.9382723; // GeV + G4double lpi=3.14159265; + G4double alpha=1./137.036; + //*** + G4double epmin_phn=0.20; // GeV + G4double alam2=0.400000; // GeV**2 + G4double alam =0.632456; // sqrt(alam2) + G4double coeffn=alpha/lpi*avno*1e-30; // cm^2/microbarn + //*** + e=tkin+lamu; + crn_g4=0.; + if(ep >= e-0.5*amp || ep <= epmin_phn) return crn_g4; + aeff=0.22*a+0.78*pow(a,0.89); // shadowing + sigph=49.2+11.1*G4Log(ep)+151.8/std::sqrt(ep); // microbarn + v=ep/e; + v1=1.-v; + v2=v*v; + amu2=lamu*lamu; + up=e*e*v1/amu2*(1.+amu2*v2/(alam2*v1)); + down=1.+ep/alam*(1.+alam/(2.*amp)+ep/alam); + crn_g4=coeffn*aeff/a*sigph/ep*(-v1+(v1+0.5*v2*(1.+2.*amu2/alam2))*log(up/down)); + if(crn_g4 < 0.) crn_g4=0.; + return crn_g4; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double MuCrossSections::CRP_Mephi(G4double z,G4double a,G4double tkin,G4double ep) +G4double MuCrossSections::CRP_Mephi(G4double z,G4double a, + G4double tkin, G4double ep) //********************************************************************** //*** crp_g4_1.inc in comparison with crp_m.inc, following @@ -283,124 +284,218 @@ G4double MuCrossSections::CRP_Mephi(G4double z,G4double a,G4double tkin,G4double //*** By R.P.Kokoulin, December 1997 //*** Formulae from Kokoulin & Petrukhin 1971, Hobart, Eqs.(1,8,9,10) { -// G4double Z,A,Tkin,EP; - G4double crp_g4; - G4double bbbtf,bbbh,g1tf,g2tf,g1h,g2h,e,z13,e1,alf,a3,bbb; - G4double g1,g2,zeta1,zeta2,zeta,z2,screen0,a0,a1,bet,xi0,del; - G4double tmn,sum,a4,a5,a6,a7,a9,xi,xii,xi1,screen,yeu,yed,ye1; - G4double ale,cre,be,fe,ymu,ymd,ym1,alm_crm,a10,bm,fm; -// - G4double ame=0.51099907e-3; // GeV - G4double lamu=0.105658389; // GeV - G4double re=2.81794092e-13; // cm - G4double avno=6.022137e23; - G4double lpi=3.14159265; - G4double alpha=1./137.036; - G4double rmass=lamu/ame; // "207" - G4double coeff=4./(3.*lpi)*(alpha*re)*(alpha*re)*avno; // cm^2 - G4double sqrte=1.64872127; // sqrt(2.71828...) - G4double c3=3.*sqrte*lamu/4.; // for limits - G4double c7=4.*ame; // -"- - G4double c8=6.*lamu*lamu; // -"- + // G4double Z,A,Tkin,EP; + G4double crp_g4; + G4double bbbtf,bbbh,g1tf,g2tf,g1h,g2h,e,z13,e1,alf,a3,bbb; + G4double g1,g2,zeta1,zeta2,zeta,z2,screen0,a0,a1,bet,xi0,del; + G4double tmn,sum,a4,a5,a6,a7,a9,xi,xii,xi1,screen,yeu,yed,ye1; + G4double ale,cre,be,fe,ymu,ymd,ym1,alm_crm,a10,bm,fm; + // + G4double ame=0.51099907e-3; // GeV + G4double lamu=0.105658389; // GeV + G4double re=2.81794092e-13; // cm + G4double avno=6.022137e23; + G4double lpi=3.14159265; + G4double alpha=1./137.036; + G4double rmass=lamu/ame; // "207" + G4double coeff=4./(3.*lpi)*(alpha*re)*(alpha*re)*avno; // cm^2 + G4double sqrte=1.64872127; // sqrt(2.71828...) + G4double c3=3.*sqrte*lamu/4.; // for limits + G4double c7=4.*ame; // -"- + G4double c8=6.*lamu*lamu; // -"- - G4double xgi[8]={.0199,.1017,.2372,.4083,.5917,.7628,.8983,.9801}; // Gauss, 8 - G4double wgi[8]={.0506,.1112,.1569,.1813,.1813,.1569,.1112,.0506}; // Gauss, 8 - bbbtf=183.; // for the moment... - bbbh=202.4; // for the moment... - g1tf=1.95e-5; - g2tf=5.3e-5; - g1h=4.4e-5; - g2h=4.8e-5; + G4double xgi[8]={.0199,.1017,.2372,.4083,.5917,.7628,.8983,.9801}; // Gauss, 8 + G4double wgi[8]={.0506,.1112,.1569,.1813,.1813,.1569,.1112,.0506}; // Gauss, 8 + bbbtf=183.; // for the moment... + bbbh=202.4; // for the moment... + g1tf=1.95e-5; + g2tf=5.3e-5; + g1h=4.4e-5; + g2h=4.8e-5; - e=tkin+lamu; - z13=pow(z,0.3333333); - e1=e-ep; - crp_g4=0.; - if(e1 <= c3*z13) return crp_g4; // ep > max - alf=c7/ep; // 4m/ep - a3=1.-alf; - if(a3 <= 0.) return crp_g4; // ep < min -//*** zeta calculation - if(z <= 1.5) // special case of hidrogen - { - bbb=bbbh; - g1=g1h; - g2=g2h; - } - else - { - bbb=bbbtf; - g1=g1tf; - g2=g2tf; - } - zeta1=0.073*log(e/(lamu+g1*z13*z13*e))-0.26; - if(zeta1 > 0.) - { - zeta2=0.058*log(e/(lamu+g2*z13*e))-0.14; - zeta=zeta1/zeta2; - } - else - { - zeta=0.; - } - z2=z*(z+zeta); // -//*** just to check (for comparison with crp_m) -// z2=z*(z+1.) -// bbb=189. -//*** - screen0=2.*ame*sqrte*bbb/(z13*ep); // be careful with "ame" - a0=e*e1; - a1=ep*ep/a0; // 2*beta - bet=0.5*a1; // beta - xi0=0.25*rmass*rmass*a1; // xi0 - del=c8/a0; // 6mu^2/EE' - tmn=log((alf+2.*del*a3)/(1.+(1.-del)*sqrt(a3))); // log(1-rmax) - sum=0.; - for(int i=0; i<=7; i++) // integration - { - a4=exp(tmn*xgi[i]); // 1-r - a5=a4*(2.-a4); // 1-r2 - a6=1.-a5; // r2 - a7=1.+a6; // 1+r2 - a9=3.+a6; // 3+r2 - xi=xi0*a5; - xii=1./xi; - xi1=1.+xi; - screen=screen0*xi1/a5; - yeu=5.-a6+4.*bet*a7; - yed=2.*(1.+3.*bet)*log(3.+xii)-a6-a1*(2.-a6); - ye1=1.+yeu/yed; - ale=log(bbb/z13*sqrt(xi1*ye1)/(1.+screen*ye1)); - cre=0.5*log(1.+(1.5/rmass*z13)*(1.5/rmass*z13)*xi1*ye1); - if(xi <= 1e3) // - { - be=((2.+a6)*(1.+bet)+xi*a9)*log(1.+xii)+(a5-bet)/xi1-a9; - } - else - { - be=(3.-a6+a1*a7)/(2.*xi); // -(6.-5.*a6+3.*bet*a6)/(6.*xi*xi); - } - fe=max(0.,(ale-cre)*be); - ymu=4.+a6+3.*bet*a7; - ymd=a7*(1.5+a1)*log(3.+xi)+1.-1.5*a6; - ym1=1.+ymu/ymd; - alm_crm=log(bbb*rmass/(1.5*z13*z13*(1.+screen*ym1))); - if(xi >= 1e-3) // - { - a10=(1.+a1)*a5; // (1+2b)(1-r2) - bm=(a7*(1.+1.5*bet)-a10*xii)*log(xi1)+xi*(a5-bet)/xi1+a10; - } - else - { - bm=(5.-a6+bet*a9)*(xi/2.); // -(11.-5.*a6+.5*bet*(5.+a6))*(xi*xi/6.) - } - fm=max(0.,(alm_crm)*bm); -//*** - sum=sum+a4*(fe+fm/(rmass*rmass))*wgi[i]; - } - crp_g4=-tmn*sum*(z2/a)*coeff*e1/(e*ep); - return crp_g4; + e=tkin+lamu; + z13=fNist->GetZ13(G4lrint(z)); + e1=e-ep; + crp_g4=0.; + if(e1 <= c3*z13) return crp_g4; // ep > max + alf=c7/ep; // 4m/ep + a3=1.-alf; + if(a3 <= 0.) return crp_g4; // ep < min + //*** zeta calculation + if(z <= 1.5) // special case of hidrogen + { + bbb=bbbh; + g1=g1h; + g2=g2h; + } + else + { + bbb=bbbtf; + g1=g1tf; + g2=g2tf; + } + zeta1=0.073*G4Log(e/(lamu+g1*z13*z13*e))-0.26; + if(zeta1 > 0.) + { + zeta2=0.058*log(e/(lamu+g2*z13*e))-0.14; + zeta=zeta1/zeta2; + } + else + { + zeta=0.; + } + z2=z*(z+zeta); // + //*** just to check (for comparison with crp_m) + // z2=z*(z+1.) + // bbb=189. + //*** + screen0=2.*ame*sqrte*bbb/(z13*ep); // be careful with "ame" + a0=e*e1; + a1=ep*ep/a0; // 2*beta + bet=0.5*a1; // beta + xi0=0.25*rmass*rmass*a1; // xi0 + del=c8/a0; // 6mu^2/EE' + tmn=G4Log((alf+2.*del*a3)/(1.+(1.-del)*sqrt(a3))); // log(1-rmax) + sum=0.; + for(G4int i=0; i<8; ++i) { + a4=G4Exp(tmn*xgi[i]); // 1-r + a5=a4*(2.-a4); // 1-r2 + a6=1.-a5; // r2 + a7=1.+a6; // 1+r2 + a9=3.+a6; // 3+r2 + xi=xi0*a5; + xii=1./xi; + xi1=1.+xi; + screen=screen0*xi1/a5; + yeu=5.-a6+4.*bet*a7; + yed=2.*(1.+3.*bet)*G4Log(3.+xii)-a6-a1*(2.-a6); + ye1=1.+yeu/yed; + ale=G4Log(bbb/z13*std::sqrt(xi1*ye1)/(1.+screen*ye1)); + cre=0.5*G4Log(1.+(1.5/rmass*z13)*(1.5/rmass*z13)*xi1*ye1); + if(xi <= 1e3) { + be=((2.+a6)*(1.+bet)+xi*a9)*G4Log(1.+xii)+(a5-bet)/xi1-a9; + } else { + be=(3.-a6+a1*a7)/(2.*xi); // -(6.-5.*a6+3.*bet*a6)/(6.*xi*xi); + } + fe=std::max(0.,(ale-cre)*be); + ymu=4.+a6+3.*bet*a7; + ymd=a7*(1.5+a1)*G4Log(3.+xi)+1.-1.5*a6; + ym1=1.+ymu/ymd; + alm_crm=G4Log(bbb*rmass/(1.5*z13*z13*(1.+screen*ym1))); + if(xi >= 1e-3) { + a10=(1.+a1)*a5; // (1+2b)(1-r2) + bm=(a7*(1.+1.5*bet)-a10*xii)*G4Log(xi1)+xi*(a5-bet)/xi1+a10; + } else { + bm=(5.-a6+bet*a9)*(xi/2.); // -(11.-5.*a6+.5*bet*(5.+a6))*(xi*xi/6.) + } + fm=max(0.,(alm_crm)*bm); + //*** + sum=sum+a4*(fe+fm/(rmass*rmass))*wgi[i]; + } + crp_g4=-tmn*sum*(z2/a)*coeff*e1/(e*ep); + return crp_g4; } + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +G4double MuCrossSections::CRM_Mephi(G4double Z, G4double tkin, + G4double pairEnergy) +{ + /* + ||Cross section for pair production of muons by fast muon + ||By Siddharth Yajaman 19-07-2022 + ||Based on the formulae from Kelner, Kokoulin and Petrukhin, + ||Physics of Atomic Nuclei, Vol. 63, No. 9, 2000, pp. 1603-1611 + ||Equations (15) - (22) + */ + const G4double xgi[] = { 0.0198550717512320, 0.1016667612931865, 0.2372337950418355, 0.4082826787521750, + 0.5917173212478250, 0.7627662049581645, 0.8983332387068135, 0.9801449282487680 }; + + const G4double wgi[] = { 0.0506142681451880, 0.1111905172266870, 0.1568533229389435, 0.1813418916891810, + 0.1813418916891810, 0.1568533229389435, 0.1111905172266870, 0.0506142681451880 }; + + static const G4double factorForCross = 2./(3*CLHEP::pi)*pow(CLHEP::fine_structure_const*CLHEP::classic_electr_radius/fMueRatio, 2); + + if (pairEnergy <= 2. * fMuonMass) + return 0.0; + + G4double totalEnergy = tkin + fMuonMass; + G4double residEnergy = totalEnergy - pairEnergy; + + if (residEnergy <= fMuonMass) + return 0.0; + + G4double a0 = 1.0 / (totalEnergy * residEnergy); + G4double rhomax = 1.0 - 2*fMuonMass/pairEnergy; + G4double tmnexp = 1. - rhomax; + + if(tmnexp >= 1.0) { return 0.0; } + + G4double tmn = G4Log(tmnexp); + + G4double z2 = Z*Z; + G4double beta = 0.5*pairEnergy*pairEnergy*a0; + G4double xi0 = 0.5*beta; + + // Gaussian integration in ln(1-ro) ( with 8 points) + G4double rho[8]; + G4double rho2[8]; + G4double xi[8]; + G4double xi1[8]; + G4double xii[8]; + + for (G4int i = 0; i < 8; ++i) + { + rho[i] = G4Exp(tmn*xgi[i]) - 1.0; // rho = -asymmetry + rho2[i] = rho[i] * rho[i]; + xi[i] = xi0*(1.0-rho2[i]); + xi1[i] = 1.0 + xi[i]; + xii[i] = 1.0 / xi[i]; + } + + G4double ximax = xi0*(1. - rhomax*rhomax); + + G4double Y = 10 * sqrt(fMuonMass/totalEnergy); + G4double U[8]; + + for (G4int i = 0; i < 8; ++i) + { + U[i] = U_func(Z, rho2[i], xi[i], Y, pairEnergy); + } + + G4double UMax = U_func(Z, rhomax*rhomax, ximax, Y, pairEnergy); + + G4double sum = 0.0; + + for (G4int i = 0; i < 8; ++i) + { + G4double X = 1 + U[i] - UMax; + G4double lnX = G4Log(X); + G4double phi = ((2 + rho2[i])*(1 + beta) + xi[i]*(3 + rho2[i]))* + G4Log(1 + xii[i]) - 1 - 3*rho2[i] + beta*(1 - 2*rho2[i]) + + ((1 + rho2[i])*(1 + 1.5*beta) - xii[i]*(1 + 2*beta) + *(1 - rho2[i]))*G4Log(xi1[i]); + sum += wgi[i]*(1.0 + rho[i])*phi*lnX; + } + + return -tmn*sum*factorForCross*z2*residEnergy/(totalEnergy*pairEnergy); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double MuCrossSections::U_func(G4double Z, G4double rho2, + G4double xi, G4double Y, + G4double pairEnergy, const G4double B) +{ + G4int z = G4lrint(Z); + G4double A27 = fNist->GetA27(z); + G4double Z13 = fNist->GetZ13(z); + static const G4double sqe = 2*std::sqrt(G4Exp(1.0))*fMuonMass*fMuonMass; + G4double res = (0.65 * B / (A27*Z13) * fMueRatio)/ + (1 + (sqe*B*(1 + xi)*(1 + Y))/ + (Z13*CLHEP::electron_mass_c2*pairEnergy*(1 - rho2))); + return res; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm17/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm17/src/PhysListEmStandard.cc index 8a70e210e2..9b8247fd7b 100644 --- a/examples/extended/electromagnetic/TestEm17/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm17/src/PhysListEmStandard.cc @@ -44,6 +44,7 @@ #include "G4MuIonisation.hh" #include "G4MuBremsstrahlung.hh" #include "G4MuPairProduction.hh" +#include "G4MuonToMuonPairProduction.hh" #include "G4hIonisation.hh" #include "G4hBremsstrahlung.hh" #include "G4hPairProduction.hh" @@ -77,6 +78,7 @@ void PhysListEmStandard::ConstructProcess() pmanager->AddProcess(new G4MuIonisation(), -1, 2, 2); pmanager->AddProcess(new G4MuBremsstrahlung(), -1, 3, 3); pmanager->AddProcess(new G4MuPairProduction(), -1, 4, 4); + pmanager->AddProcess(new G4MuonToMuonPairProduction(), -1, 5, 5); // mu- particle = G4MuonMinus::MuonMinus(); @@ -84,6 +86,7 @@ void PhysListEmStandard::ConstructProcess() pmanager->AddProcess(new G4MuIonisation(), -1, 2, 2); pmanager->AddProcess(new G4MuBremsstrahlung(), -1, 3, 3); pmanager->AddProcess(new G4MuPairProduction(), -1, 4, 4); + pmanager->AddProcess(new G4MuonToMuonPairProduction(), -1, 5, 5); // pi+ particle = G4PionPlus::PionPlus(); diff --git a/examples/extended/electromagnetic/TestEm17/src/RunAction.cc b/examples/extended/electromagnetic/TestEm17/src/RunAction.cc index 5ac940dd77..d8462ec4d2 100644 --- a/examples/extended/electromagnetic/TestEm17/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm17/src/RunAction.cc @@ -41,6 +41,7 @@ #include "G4Run.hh" #include "G4RunManager.hh" #include "G4UnitsTable.hh" +#include "G4EmCalculator.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" @@ -128,7 +129,6 @@ void RunAction::EndOfRunAction(const G4Run* aRun) countTot += count; } } - G4cout << G4endl; //compute totalCrossSection, meanFreePath and massicCrossSection // @@ -151,6 +151,7 @@ void RunAction::EndOfRunAction(const G4Run* aRun) G4String procName = (*fProcCounter)[i]->GetName(); if (procName != "Transportation") { totalCrossSection += ComputeTheory(procName, NbOfEvents); + FillCrossSectionHisto(procName, NbOfEvents); } } @@ -184,6 +185,7 @@ G4double RunAction::ComputeTheory(const G4String& process, G4int NbOfMu) { const G4Material* material = fDetector->GetMaterial(); G4double ekin = fPrimary->GetParticleGun()->GetParticleEnergy(); + G4double particleMass = fPrimary->GetParticleGun()->GetParticleDefinition()->GetPDGMass(); G4int id = 0; G4double cut = 1.e-10*ekin; if (process == "muIoni") {id = 11; cut = GetEnergyCut(material,1);} @@ -191,6 +193,7 @@ G4double RunAction::ComputeTheory(const G4String& process, G4int NbOfMu) + electron_mass_c2); } else if (process == "muBrems") {id = 13; cut = GetEnergyCut(material,0);} else if (process == "muonNuclear"){id = 14; cut = 100*MeV;} + else if (process == "muToMuonPairProd"){id = 18; cut = 2*particleMass;} if (id == 0) { return 0.; } G4int nbOfBins = 100; @@ -244,6 +247,53 @@ G4double RunAction::ComputeTheory(const G4String& process, G4int NbOfMu) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +void RunAction::FillCrossSectionHisto(const G4String& process, G4int) +{ + const G4Material* material = fDetector->GetMaterial(); + G4double ekin = fPrimary->GetParticleGun()->GetParticleEnergy(); + G4ParticleDefinition *particle = fPrimary->GetParticleGun()->GetParticleDefinition(); + G4double particleMass = particle->GetPDGMass(); + + G4EmCalculator emCal; + + G4int id = 0; G4double cut = 1.e-10*ekin; + if (process == "muIoni") {id = 21; cut = GetEnergyCut(material,1);} + else if (process == "muPairProd") {id = 22; cut = 2*(GetEnergyCut(material,1) + + electron_mass_c2); } + else if (process == "muBrems") {id = 23; cut = GetEnergyCut(material,0);} + else if (process == "muonNuclear"){id = 24; cut = 100*MeV;} + else if (process == "muToMuonPairProd"){id = 28; cut = 2*particleMass;} + if (id == 0) { return; } + + G4int nbOfBins = 100; + G4double binMin = cut; + G4double binMax = ekin; + G4double binWidth = (binMax-binMin)/G4double(nbOfBins); + + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + + G4H1* histoTh = 0; + if (fHistoManager->HistoExist(id)) { + histoTh = analysisManager->GetH1(fHistoManager->GetHistoID(id)); + nbOfBins = fHistoManager->GetNbins(id); + binMin = fHistoManager->GetVmin (id); + binMax = fHistoManager->GetVmax (id); + binWidth = fHistoManager->GetBinWidth(id); + } + + G4double sigma, primaryEnergy; + + for(G4int ibin=0; ibinfill(primaryEnergy, sigma); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + G4double RunAction::GetEnergyCut(const G4Material* material, G4int idParticle) { G4ProductionCutsTable* table = G4ProductionCutsTable::GetProductionCutsTable(); diff --git a/examples/extended/electromagnetic/TestEm17/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm17/src/SteppingAction.cc index a58405ca47..43bf9ec739 100644 --- a/examples/extended/electromagnetic/TestEm17/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm17/src/SteppingAction.cc @@ -78,6 +78,7 @@ void SteppingAction::UserSteppingAction(const G4Step* aStep) else if (procName == "hIoni") id = 5; else if (procName == "hPairProd") id = 6; else if (procName == "hBrems") id = 7; + else if (procName == "muToMuonPairProd") id = 8; fHistoManager->FillHisto(id,lgepsE); } diff --git a/examples/extended/electromagnetic/TestEm18/TestEm18.out b/examples/extended/electromagnetic/TestEm18/TestEm18.out index 4d191350ed..670eaf11b5 100644 --- a/examples/extended/electromagnetic/TestEm18/TestEm18.out +++ b/examples/extended/electromagnetic/TestEm18/TestEm18.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -28,6 +28,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -55,7 +56,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 1 Use cut as a final range enabled 0 @@ -109,6 +110,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -136,7 +138,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 1 Use cut as a final range enabled 0 @@ -213,7 +215,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100000 - User=0.470000s Real=0.479451s Sys=0.000000s + User=0.620000s Real=0.622088s Sys=0.000000s ======================== run summary ====================== diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.out b/examples/extended/electromagnetic/TestEm2/TestEm2.out index 8725901182..bd7bcb82e3 100644 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.out +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -42,6 +42,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -69,7 +70,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -144,6 +145,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -171,7 +173,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -222,8 +224,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -598,51 +600,51 @@ N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008 Run terminated. Run Summary Number of events processed : 100 - User=2.240000s Real=2.268257s Sys=0.000000s + User=2.390000s Real=2.416164s Sys=0.000000s LOGITUDINAL PROFILE CUMULATIVE LOGITUDINAL PROFILE bin Mean rms bin Mean rms - 0.00-> 0.50 radl: 0.20% 0.14% 0-> 0.50 radl: 0.20% 0.14% - 0.50-> 1.00 radl: 0.46% 0.36% 0-> 1.00 radl: 0.66% 0.44% - 1.00-> 1.50 radl: 0.96% 0.64% 0-> 1.50 radl: 1.62% 1.03% - 1.50-> 2.00 radl: 1.69% 1.01% 0-> 2.00 radl: 3.31% 1.92% - 2.00-> 2.50 radl: 2.32% 1.07% 0-> 2.50 radl: 5.63% 2.84% - 2.50-> 3.00 radl: 3.18% 1.34% 0-> 3.00 radl: 8.81% 3.99% - 3.00-> 3.50 radl: 3.70% 1.42% 0-> 3.50 radl: 12.51% 5.13% - 3.50-> 4.00 radl: 4.37% 1.55% 0-> 4.00 radl: 16.88% 6.41% - 4.00-> 4.50 radl: 4.91% 1.56% 0-> 4.50 radl: 21.79% 7.52% - 4.50-> 5.00 radl: 5.13% 1.50% 0-> 5.00 radl: 26.92% 8.59% - 5.00-> 5.50 radl: 5.42% 1.56% 0-> 5.50 radl: 32.34% 9.50% - 5.50-> 6.00 radl: 5.33% 1.47% 0-> 6.00 radl: 37.67% 10.30% - 6.00-> 6.50 radl: 5.48% 1.33% 0-> 6.50 radl: 43.15% 10.74% - 6.50-> 7.00 radl: 5.40% 1.13% 0-> 7.00 radl: 48.55% 10.86% - 7.00-> 7.50 radl: 5.02% 0.90% 0-> 7.50 radl: 53.57% 10.98% - 7.50-> 8.00 radl: 4.83% 1.04% 0-> 8.00 radl: 58.40% 10.68% - 8.00-> 8.50 radl: 4.46% 1.10% 0-> 8.50 radl: 62.86% 10.18% - 8.50-> 9.00 radl: 4.14% 1.04% 0-> 9.00 radl: 67.00% 9.52% - 9.00-> 9.50 radl: 3.80% 1.18% 0-> 9.50 radl: 70.80% 8.78% - 9.50->10.00 radl: 3.23% 1.03% 0->10.00 radl: 74.03% 8.12% - 10.00->10.50 radl: 2.83% 1.02% 0->10.50 radl: 76.86% 7.38% - 10.50->11.00 radl: 2.61% 0.99% 0->11.00 radl: 79.47% 6.64% - 11.00->11.50 radl: 2.20% 0.91% 0->11.50 radl: 81.66% 6.00% - 11.50->12.00 radl: 1.96% 0.87% 0->12.00 radl: 83.63% 5.33% - 12.00->12.50 radl: 1.80% 0.83% 0->12.50 radl: 85.42% 4.71% - 12.50->13.00 radl: 1.51% 0.70% 0->13.00 radl: 86.93% 4.18% - 13.00->13.50 radl: 1.36% 0.67% 0->13.50 radl: 88.29% 3.67% - 13.50->14.00 radl: 1.21% 0.66% 0->14.00 radl: 89.50% 3.13% - 14.00->14.50 radl: 0.97% 0.48% 0->14.50 radl: 90.47% 2.79% - 14.50->15.00 radl: 0.84% 0.44% 0->15.00 radl: 91.32% 2.47% - 15.00->15.50 radl: 0.72% 0.43% 0->15.50 radl: 92.04% 2.15% - 15.50->16.00 radl: 0.57% 0.33% 0->16.00 radl: 92.61% 1.94% - 16.00->16.50 radl: 0.54% 0.33% 0->16.50 radl: 93.14% 1.73% - 16.50->17.00 radl: 0.44% 0.35% 0->17.00 radl: 93.58% 1.50% - 17.00->17.50 radl: 0.36% 0.25% 0->17.50 radl: 93.94% 1.35% - 17.50->18.00 radl: 0.33% 0.23% 0->18.00 radl: 94.27% 1.21% - 18.00->18.50 radl: 0.27% 0.21% 0->18.50 radl: 94.54% 1.09% - 18.50->19.00 radl: 0.24% 0.18% 0->19.00 radl: 94.78% 1.01% - 19.00->19.50 radl: 0.19% 0.15% 0->19.50 radl: 94.97% 0.96% - 19.50->20.00 radl: 0.15% 0.17% 0->20.00 radl: 95.12% 0.88% + 0.00-> 0.50 radl: 0.18% 0.08% 0-> 0.50 radl: 0.18% 0.08% + 0.50-> 1.00 radl: 0.42% 0.24% 0-> 1.00 radl: 0.59% 0.28% + 1.00-> 1.50 radl: 0.84% 0.45% 0-> 1.50 radl: 1.43% 0.65% + 1.50-> 2.00 radl: 1.44% 0.81% 0-> 2.00 radl: 2.87% 1.37% + 2.00-> 2.50 radl: 2.14% 1.03% 0-> 2.50 radl: 5.00% 2.24% + 2.50-> 3.00 radl: 2.79% 1.22% 0-> 3.00 radl: 7.80% 3.28% + 3.00-> 3.50 radl: 3.53% 1.32% 0-> 3.50 radl: 11.33% 4.36% + 3.50-> 4.00 radl: 4.31% 1.55% 0-> 4.00 radl: 15.64% 5.56% + 4.00-> 4.50 radl: 4.78% 1.43% 0-> 4.50 radl: 20.42% 6.46% + 4.50-> 5.00 radl: 5.28% 1.40% 0-> 5.00 radl: 25.70% 7.37% + 5.00-> 5.50 radl: 5.50% 1.43% 0-> 5.50 radl: 31.19% 8.23% + 5.50-> 6.00 radl: 5.63% 1.38% 0-> 6.00 radl: 36.83% 8.97% + 6.00-> 6.50 radl: 5.52% 1.30% 0-> 6.50 radl: 42.35% 9.60% + 6.50-> 7.00 radl: 5.20% 1.25% 0-> 7.00 radl: 47.55% 10.10% + 7.00-> 7.50 radl: 5.15% 1.31% 0-> 7.50 radl: 52.70% 10.37% + 7.50-> 8.00 radl: 4.94% 1.12% 0-> 8.00 radl: 57.65% 10.55% + 8.00-> 8.50 radl: 4.48% 1.04% 0-> 8.50 radl: 62.13% 10.38% + 8.50-> 9.00 radl: 4.00% 1.01% 0-> 9.00 radl: 66.12% 10.09% + 9.00-> 9.50 radl: 3.61% 0.90% 0-> 9.50 radl: 69.73% 9.75% + 9.50->10.00 radl: 3.23% 0.92% 0->10.00 radl: 72.96% 9.36% + 10.00->10.50 radl: 3.03% 1.00% 0->10.50 radl: 75.99% 8.85% + 10.50->11.00 radl: 2.54% 0.85% 0->11.00 radl: 78.54% 8.35% + 11.00->11.50 radl: 2.40% 0.94% 0->11.50 radl: 80.93% 7.76% + 11.50->12.00 radl: 2.05% 1.00% 0->12.00 radl: 82.98% 7.15% + 12.00->12.50 radl: 1.80% 0.96% 0->12.50 radl: 84.77% 6.54% + 12.50->13.00 radl: 1.59% 0.82% 0->13.00 radl: 86.36% 5.90% + 13.00->13.50 radl: 1.36% 0.77% 0->13.50 radl: 87.72% 5.29% + 13.50->14.00 radl: 1.21% 0.60% 0->14.00 radl: 88.93% 4.81% + 14.00->14.50 radl: 1.05% 0.65% 0->14.50 radl: 89.98% 4.29% + 14.50->15.00 radl: 0.84% 0.58% 0->15.00 radl: 90.82% 3.83% + 15.00->15.50 radl: 0.73% 0.50% 0->15.50 radl: 91.56% 3.46% + 15.50->16.00 radl: 0.65% 0.54% 0->16.00 radl: 92.21% 3.03% + 16.00->16.50 radl: 0.55% 0.44% 0->16.50 radl: 92.75% 2.66% + 16.50->17.00 radl: 0.54% 0.47% 0->17.00 radl: 93.30% 2.27% + 17.00->17.50 radl: 0.46% 0.39% 0->17.50 radl: 93.76% 1.96% + 17.50->18.00 radl: 0.34% 0.28% 0->18.00 radl: 94.10% 1.74% + 18.00->18.50 radl: 0.28% 0.31% 0->18.50 radl: 94.38% 1.49% + 18.50->19.00 radl: 0.26% 0.25% 0->19.00 radl: 94.64% 1.30% + 19.00->19.50 radl: 0.21% 0.22% 0->19.50 radl: 94.86% 1.15% + 19.50->20.00 radl: 0.14% 0.15% 0->20.00 radl: 95.00% 1.07% @@ -650,80 +652,80 @@ Run Summary bin Mean rms bin Mean rms - 0.00-> 0.10 radl: 17.89% 2.05% 0-> 0.10 radl: 17.89% 2.05% - 0.10-> 0.20 radl: 13.34% 1.26% 0-> 0.20 radl: 31.23% 2.50% - 0.20-> 0.30 radl: 10.20% 1.06% 0-> 0.30 radl: 41.43% 2.70% - 0.30-> 0.40 radl: 7.76% 0.89% 0-> 0.40 radl: 49.19% 2.65% - 0.40-> 0.50 radl: 6.20% 0.80% 0-> 0.50 radl: 55.39% 2.43% - 0.50-> 0.60 radl: 4.84% 0.64% 0-> 0.60 radl: 60.22% 2.22% - 0.60-> 0.70 radl: 3.93% 0.65% 0-> 0.70 radl: 64.16% 2.11% - 0.70-> 0.80 radl: 3.24% 0.53% 0-> 0.80 radl: 67.40% 2.00% - 0.80-> 0.90 radl: 2.68% 0.46% 0-> 0.90 radl: 70.07% 1.94% - 0.90-> 1.00 radl: 2.27% 0.39% 0-> 1.00 radl: 72.35% 1.87% - 1.00-> 1.10 radl: 1.98% 0.40% 0-> 1.10 radl: 74.33% 1.72% - 1.10-> 1.20 radl: 1.77% 0.38% 0-> 1.20 radl: 76.09% 1.65% - 1.20-> 1.30 radl: 1.55% 0.32% 0-> 1.30 radl: 77.65% 1.63% - 1.30-> 1.40 radl: 1.37% 0.32% 0-> 1.40 radl: 79.01% 1.55% - 1.40-> 1.50 radl: 1.26% 0.31% 0-> 1.50 radl: 80.27% 1.53% - 1.50-> 1.60 radl: 1.11% 0.25% 0-> 1.60 radl: 81.38% 1.51% - 1.60-> 1.70 radl: 1.03% 0.27% 0-> 1.70 radl: 82.41% 1.46% - 1.70-> 1.80 radl: 0.96% 0.23% 0-> 1.80 radl: 83.37% 1.43% - 1.80-> 1.90 radl: 0.89% 0.21% 0-> 1.90 radl: 84.26% 1.42% - 1.90-> 2.00 radl: 0.82% 0.22% 0-> 2.00 radl: 85.08% 1.37% - 2.00-> 2.10 radl: 0.72% 0.19% 0-> 2.10 radl: 85.80% 1.33% - 2.10-> 2.20 radl: 0.71% 0.20% 0-> 2.20 radl: 86.51% 1.27% - 2.20-> 2.30 radl: 0.63% 0.18% 0-> 2.30 radl: 87.14% 1.25% - 2.30-> 2.40 radl: 0.61% 0.18% 0-> 2.40 radl: 87.74% 1.23% - 2.40-> 2.50 radl: 0.54% 0.17% 0-> 2.50 radl: 88.29% 1.21% - 2.50-> 2.60 radl: 0.52% 0.14% 0-> 2.60 radl: 88.80% 1.18% - 2.60-> 2.70 radl: 0.48% 0.16% 0-> 2.70 radl: 89.28% 1.14% - 2.70-> 2.80 radl: 0.44% 0.16% 0-> 2.80 radl: 89.73% 1.11% - 2.80-> 2.90 radl: 0.43% 0.17% 0-> 2.90 radl: 90.16% 1.07% - 2.90-> 3.00 radl: 0.39% 0.14% 0-> 3.00 radl: 90.55% 1.02% - 3.00-> 3.10 radl: 0.39% 0.15% 0-> 3.10 radl: 90.94% 1.00% - 3.10-> 3.20 radl: 0.36% 0.13% 0-> 3.20 radl: 91.29% 0.99% - 3.20-> 3.30 radl: 0.34% 0.12% 0-> 3.30 radl: 91.63% 0.99% - 3.30-> 3.40 radl: 0.33% 0.13% 0-> 3.40 radl: 91.97% 0.99% - 3.40-> 3.50 radl: 0.30% 0.12% 0-> 3.50 radl: 92.26% 1.00% - 3.50-> 3.60 radl: 0.27% 0.11% 0-> 3.60 radl: 92.54% 1.00% - 3.60-> 3.70 radl: 0.25% 0.10% 0-> 3.70 radl: 92.79% 0.99% - 3.70-> 3.80 radl: 0.24% 0.10% 0-> 3.80 radl: 93.02% 0.97% - 3.80-> 3.90 radl: 0.23% 0.10% 0-> 3.90 radl: 93.25% 0.96% - 3.90-> 4.00 radl: 0.21% 0.10% 0-> 4.00 radl: 93.46% 0.95% - 4.00-> 4.10 radl: 0.20% 0.10% 0-> 4.10 radl: 93.67% 0.95% - 4.10-> 4.20 radl: 0.20% 0.09% 0-> 4.20 radl: 93.87% 0.94% - 4.20-> 4.30 radl: 0.19% 0.09% 0-> 4.30 radl: 94.06% 0.93% - 4.30-> 4.40 radl: 0.16% 0.08% 0-> 4.40 radl: 94.22% 0.92% - 4.40-> 4.50 radl: 0.17% 0.08% 0-> 4.50 radl: 94.39% 0.90% - 4.50-> 4.60 radl: 0.16% 0.09% 0-> 4.60 radl: 94.56% 0.89% - 4.60-> 4.70 radl: 0.15% 0.08% 0-> 4.70 radl: 94.71% 0.89% - 4.70-> 4.80 radl: 0.14% 0.07% 0-> 4.80 radl: 94.85% 0.88% - 4.80-> 4.90 radl: 0.15% 0.09% 0-> 4.90 radl: 95.00% 0.88% - 4.90-> 5.00 radl: 0.11% 0.06% 0-> 5.00 radl: 95.12% 0.88% + 0.00-> 0.10 radl: 17.68% 1.86% 0-> 0.10 radl: 17.68% 1.86% + 0.10-> 0.20 radl: 13.49% 1.36% 0-> 0.20 radl: 31.17% 2.13% + 0.20-> 0.30 radl: 10.18% 1.10% 0-> 0.30 radl: 41.35% 2.40% + 0.30-> 0.40 radl: 7.77% 0.80% 0-> 0.40 radl: 49.12% 2.40% + 0.40-> 0.50 radl: 6.04% 0.71% 0-> 0.50 radl: 55.16% 2.58% + 0.50-> 0.60 radl: 4.86% 0.67% 0-> 0.60 radl: 60.02% 2.46% + 0.60-> 0.70 radl: 3.97% 0.63% 0-> 0.70 radl: 64.00% 2.37% + 0.70-> 0.80 radl: 3.28% 0.54% 0-> 0.80 radl: 67.27% 2.30% + 0.80-> 0.90 radl: 2.74% 0.47% 0-> 0.90 radl: 70.01% 2.16% + 0.90-> 1.00 radl: 2.34% 0.50% 0-> 1.00 radl: 72.35% 2.01% + 1.00-> 1.10 radl: 1.97% 0.45% 0-> 1.10 radl: 74.32% 1.82% + 1.10-> 1.20 radl: 1.74% 0.38% 0-> 1.20 radl: 76.06% 1.70% + 1.20-> 1.30 radl: 1.50% 0.33% 0-> 1.30 radl: 77.56% 1.59% + 1.30-> 1.40 radl: 1.35% 0.29% 0-> 1.40 radl: 78.91% 1.56% + 1.40-> 1.50 radl: 1.22% 0.29% 0-> 1.50 radl: 80.13% 1.51% + 1.50-> 1.60 radl: 1.12% 0.28% 0-> 1.60 radl: 81.25% 1.48% + 1.60-> 1.70 radl: 1.02% 0.25% 0-> 1.70 radl: 82.27% 1.45% + 1.70-> 1.80 radl: 0.98% 0.25% 0-> 1.80 radl: 83.24% 1.43% + 1.80-> 1.90 radl: 0.90% 0.25% 0-> 1.90 radl: 84.14% 1.40% + 1.90-> 2.00 radl: 0.82% 0.24% 0-> 2.00 radl: 84.96% 1.39% + 2.00-> 2.10 radl: 0.72% 0.18% 0-> 2.10 radl: 85.69% 1.37% + 2.10-> 2.20 radl: 0.67% 0.22% 0-> 2.20 radl: 86.36% 1.34% + 2.20-> 2.30 radl: 0.63% 0.19% 0-> 2.30 radl: 86.99% 1.34% + 2.30-> 2.40 radl: 0.59% 0.20% 0-> 2.40 radl: 87.59% 1.31% + 2.40-> 2.50 radl: 0.57% 0.15% 0-> 2.50 radl: 88.16% 1.31% + 2.50-> 2.60 radl: 0.50% 0.16% 0-> 2.60 radl: 88.66% 1.31% + 2.60-> 2.70 radl: 0.50% 0.15% 0-> 2.70 radl: 89.16% 1.29% + 2.70-> 2.80 radl: 0.46% 0.17% 0-> 2.80 radl: 89.62% 1.25% + 2.80-> 2.90 radl: 0.42% 0.14% 0-> 2.90 radl: 90.04% 1.24% + 2.90-> 3.00 radl: 0.39% 0.12% 0-> 3.00 radl: 90.43% 1.24% + 3.00-> 3.10 radl: 0.37% 0.13% 0-> 3.10 radl: 90.79% 1.22% + 3.10-> 3.20 radl: 0.35% 0.13% 0-> 3.20 radl: 91.14% 1.21% + 3.20-> 3.30 radl: 0.34% 0.13% 0-> 3.30 radl: 91.48% 1.17% + 3.30-> 3.40 radl: 0.32% 0.13% 0-> 3.40 radl: 91.80% 1.15% + 3.40-> 3.50 radl: 0.31% 0.13% 0-> 3.50 radl: 92.10% 1.15% + 3.50-> 3.60 radl: 0.28% 0.10% 0-> 3.60 radl: 92.38% 1.14% + 3.60-> 3.70 radl: 0.26% 0.10% 0-> 3.70 radl: 92.64% 1.14% + 3.70-> 3.80 radl: 0.22% 0.10% 0-> 3.80 radl: 92.87% 1.13% + 3.80-> 3.90 radl: 0.25% 0.10% 0-> 3.90 radl: 93.12% 1.09% + 3.90-> 4.00 radl: 0.23% 0.10% 0-> 4.00 radl: 93.35% 1.08% + 4.00-> 4.10 radl: 0.21% 0.10% 0-> 4.10 radl: 93.56% 1.08% + 4.10-> 4.20 radl: 0.20% 0.10% 0-> 4.20 radl: 93.77% 1.08% + 4.20-> 4.30 radl: 0.18% 0.09% 0-> 4.30 radl: 93.94% 1.08% + 4.30-> 4.40 radl: 0.18% 0.10% 0-> 4.40 radl: 94.12% 1.08% + 4.40-> 4.50 radl: 0.17% 0.08% 0-> 4.50 radl: 94.29% 1.07% + 4.50-> 4.60 radl: 0.17% 0.09% 0-> 4.60 radl: 94.45% 1.05% + 4.60-> 4.70 radl: 0.14% 0.08% 0-> 4.70 radl: 94.60% 1.04% + 4.70-> 4.80 radl: 0.16% 0.08% 0-> 4.80 radl: 94.76% 1.06% + 4.80-> 4.90 radl: 0.14% 0.08% 0-> 4.90 radl: 94.90% 1.07% + 4.90-> 5.00 radl: 0.10% 0.05% 0-> 5.00 radl: 95.00% 1.07% ===== SUMMARY ===== Total number of events: 100 - Mean number of charged steps: 7249.57 - Mean number of neutral steps: 4116.32 + Mean number of charged steps: 7251.36 + Mean number of neutral steps: 4113.26 - energy deposit : 95.12 % E0 +- 0.88 % E0 - charged traklen: 484.73 radl +- 4.76 radl - neutral traklen: 4227.98 radl +- 115.39 radl + energy deposit : 95.00 % E0 +- 1.07 % E0 + charged traklen: 484.06 radl +- 5.59 radl + neutral traklen: 4204.35 radl +- 122.48 radl - 90.00 % confinement: radius = 2.86 radl (2.55 cm ) + 90.00 % confinement: radius = 2.89 radl (2.58 cm ) <<<>>> 100 events for Total Energy in Absorber -Edep: 0.951152 delEdep= 0.00215181 nrms= 2.62416 -Erms: 0.00875608 delErms= 0.000556078 nrms= 0.678143 +Edep: 0.949982 delEdep= 0.000981825 nrms= 1.19735 +Erms: 0.0107345 delErms= 0.00253445 nrms= 3.0908 <<<>>> IS ACCEPTED ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={252581437622061049, 260573040885698056, 1203428877015396787, 1457477569064705541, 2298720486721854442, 1548099740133005029, 1821432650369258508, 46561342147813492, 19581887728669476, 662499685298117693, 1800279875956190846, 1791142181750811574, 419627446083762511, 610033586264287295, 1240811160532606190, 63384539253849655, 1834413008370389797} counter= 12sumtot= 1189747450702620284 +N=17 V[N]={361321420877048618, 554786381671741085, 923204730180075713, 653520139043486636, 1419719948418791371, 1329365653395800180, 2105109492189455942, 346937733242020002, 1078950172930912791, 1662255175276436863, 173037477673007135, 632407609306360719, 1457821341578574702, 1242211937465852605, 1341944455345203339, 2271027155638727229, 2085831826184861184} counter= 4sumtot= 1192708576708804506 --------------------------------------- ... write file : testem2.root - done ... close file : testem2.root - done @@ -731,6 +733,6 @@ N=17 V[N]={252581437622061049, 260573040885698056, 1203428877015396787, 14574775 G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 9 of which, static: 0 -Dynamic pools deleted: 9 / Total memory freed: 0.063 MB +Dynamic pools deleted: 9 / Total memory freed: 0.062 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3-geom.out b/examples/extended/electromagnetic/TestEm3/TestEm3-geom.out index 7e2e942712..0a9259700e 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3-geom.out +++ b/examples/extended/electromagnetic/TestEm3/TestEm3-geom.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -71,6 +71,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -98,7 +99,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -134,8 +135,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -165,8 +165,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -290,7 +290,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.out b/examples/extended/electromagnetic/TestEm3/TestEm3.out index 74f6abf30a..010bfc277a 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.out +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -90,6 +90,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -117,7 +118,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -168,8 +169,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -547,28 +548,28 @@ Index : 2 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=1.370000s Real=1.409343s Sys=0.000000s + User=1.660000s Real=1.678080s Sys=0.000000s ------------------------------------------------------------ material Edep RMS sqrt(E0(GeV))*rmsE/Emean total tracklen - G4_Pb: 775.14 MeV : 15.89 MeV 2.05 +- 0.205 % 54.8 cm +- 1.26 cm - G4_lAr: 213.75 MeV : 14.62 MeV 6.839 +- 0.6839 % 1.05 m +- 7.63 cm + G4_Pb: 775.36 MeV : 17.79 MeV 2.295 +- 0.2295 % 54.7 cm +- 1.37 cm + G4_lAr: 213.68 MeV : 16.63 MeV 7.783 +- 0.7783 % 1.05 m +- 8.45 cm ------------------------------------------------------------ Beam particle e- E = 1 GeV - Mean number of gamma 510 - Mean number of e- 871 - Mean number of e+ 53.4 - Mean number of charged steps 3665.7 - Mean number of neutral steps 3720.75 + Mean number of gamma 507 + Mean number of e- 870 + Mean number of e+ 53.7 + Mean number of charged steps 3659.12 + Mean number of neutral steps 3651.52 ------------------------------------------------------------ Energy deposition from Energy flow balance : material Total Edep - G4_Pb: 775.131 MeV - G4_lAr: 213.76 MeV + G4_Pb: 775.372 MeV + G4_lAr: 213.651 MeV ------------------------------------------------------------ @@ -619,28 +620,28 @@ Index : 2 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=1.160000s Real=1.192525s Sys=0.000000s + User=1.370000s Real=1.391094s Sys=0.000000s ------------------------------------------------------------ material Edep RMS sqrt(E0(GeV))*rmsE/Emean total tracklen - G4_Pb: 772.98 MeV : 22.39 MeV 2.896 +- 0.2896 % 52 cm +- 1.27 cm - G4_lAr: 215.77 MeV : 17.22 MeV 7.981 +- 0.7981 % 1.02 m +- 8.43 cm + G4_Pb: 773.86 MeV : 20.77 MeV 2.683 +- 0.2683 % 52 cm +- 1.36 cm + G4_lAr: 215.88 MeV : 17.59 MeV 8.15 +- 0.815 % 1.02 m +- 8.23 cm ------------------------------------------------------------ Beam particle e- E = 1 GeV - Mean number of gamma 292 - Mean number of e- 554 - Mean number of e+ 54.1 - Mean number of charged steps 3142.23 - Mean number of neutral steps 2940.92 + Mean number of gamma 290 + Mean number of e- 556 + Mean number of e+ 53.2 + Mean number of charged steps 3103.77 + Mean number of neutral steps 2939.75 ------------------------------------------------------------ Energy deposition from Energy flow balance : material Total Edep - G4_Pb: 772.779 MeV - G4_lAr: 217.969 MeV + G4_Pb: 773.503 MeV + G4_lAr: 217.71 MeV ------------------------------------------------------------ @@ -648,6 +649,6 @@ Run Summary G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 11 of which, static: 0 -Dynamic pools deleted: 11 / Total memory freed: 0.094 MB +Dynamic pools deleted: 11 / Total memory freed: 0.11 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.out b/examples/extended/electromagnetic/TestEm4/TestEm4.out index 2991550c42..c33d8eb308 100644 --- a/examples/extended/electromagnetic/TestEm4/TestEm4.out +++ b/examples/extended/electromagnetic/TestEm4/TestEm4.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -47,6 +47,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -74,7 +75,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -208,7 +209,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 100000 - User=0.620000s Real=0.626887s Sys=0.000000s + User=0.710000s Real=0.711899s Sys=0.000000s --------- Ranecu engine status --------- Initial seed (index) = 0 diff --git a/examples/extended/electromagnetic/TestEm5/History b/examples/extended/electromagnetic/TestEm5/History index eef218a203..63d93b2234 100644 --- a/examples/extended/electromagnetic/TestEm5/History +++ b/examples/extended/electromagnetic/TestEm5/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-07-06 Vladimir Ivanchenko (testem5-V11-00-02) +- Added summary on gamma processes + ## 2022-04-08 Vladimir Ivanchenko (testem5-V11-00-01) - Allow change gun position via UI command diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5-geom.out b/examples/extended/electromagnetic/TestEm5/TestEm5-geom.out index b2a049fa7f..b2a994114a 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5-geom.out +++ b/examples/extended/electromagnetic/TestEm5/TestEm5-geom.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -105,7 +105,7 @@ Step# X Y Z KineE dEStep StepLeng T Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000556s Sys=0.000000s + User=0.000000s Real=0.000476s Sys=0.000000s ======================== run summary ====================== @@ -140,6 +140,11 @@ Run Summary rms proj angle of transmit primary particle = 0 mrad (central part only) computed theta0 (Highland formula) = 0 mrad central part defined as +- 0 mrad Tail ratio = 0 % +## Gamma process counts: + Photoeffect 0 + Compton 0 + Conversion 0 + Rayleigh 0 ------- MixMaxRng engine status ------- Current state vector is: @@ -179,7 +184,7 @@ N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008 Run terminated. Run Summary Number of events processed : 6 - User=0.000000s Real=0.000089s Sys=0.000000s + User=0.000000s Real=0.000147s Sys=0.000000s ======================== run summary ====================== @@ -214,6 +219,11 @@ Run Summary rms proj angle of transmit primary particle = 0 mrad (central part only) computed theta0 (Highland formula) = 0 mrad central part defined as +- 0 mrad Tail ratio = 0 % +## Gamma process counts: + Photoeffect 0 + Compton 0 + Conversion 0 + Rayleigh 0 ------- MixMaxRng engine status ------- Current state vector is: diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5-pixe_ANSTO.out b/examples/extended/electromagnetic/TestEm5/TestEm5-pixe_ANSTO.out index 26da2292e4..6ebc746e55 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5-pixe_ANSTO.out +++ b/examples/extended/electromagnetic/TestEm5/TestEm5-pixe_ANSTO.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -60,6 +60,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -87,7 +88,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -123,8 +124,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 1 +Directory in G4LEDATA for fluorescence data files fluor_ANSTO Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 1 De-excitation module ignores cuts 1 @@ -165,7 +165,6 @@ Type of PIXE cross section for e+- Livermore ###/run/beamOn 1 # /analysis/setFileName pixe -Set file name: pixe /analysis/h1/set 3 1000 0 100 keV /analysis/h1/set 51 1000 0 100 keV /analysis/h1/set 55 1000 0 100 keV @@ -181,7 +180,6 @@ Set file name: pixe /tracking/verbose 0 /run/printProgress 10000 /run/beamOn 100000 -The ANSTO fluorescence radiation yields substitute the EADL data libraries ### === G4UAtomicDeexcitation::InitialiseForNewRun() Using ANSTO K Cross Sections! @@ -238,48 +236,53 @@ N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008 Run terminated. Run Summary Number of events processed : 100000 - User=68.150000s Real=78.655958s Sys=0.020000s + User=81.290000s Real=84.773830s Sys=0.020000s ======================== run summary ====================== The run was 100000 proton of 3 MeV through 50 um of Gold (density: 19.3 g/cm3 ) - Total energy deposit in absorber per event = 3 MeV +- 33.77 eV + Total energy deposit in absorber per event = 3 MeV +- 36.45 eV - -----> Mean dE/dx = 600 MeV/cm (31.06 MeV*cm2/g) + -----> Mean dE/dx = 600 MeV/cm (31.05 MeV*cm2/g) From formulas : restricted dEdx = 676.4 MeV/cm (35.01 MeV*cm2/g) full dEdx = 676.5 MeV/cm (35.01 MeV*cm2/g) - Leakage : primary = 52.45 eV +- 33.51 eV secondaries = 14.26 eV +- 1.184 eV + Leakage : primary = 65.74 eV +- 35.92 eV secondaries = 14.07 eV +- 1.179 eV Energy balance : edep + eleak = 3 MeV - Total track length (charged) in absorber per event = 31.06 um +- 1.079 nm - Total track length (neutral) in absorber per event = 362.3 nm +- 3.164 nm + Total track length (charged) in absorber per event = 31.06 um +- 1.083 nm + Total track length (neutral) in absorber per event = 362.7 nm +- 3.184 nm - Number of steps (charged) in absorber per event = 141.8 +- 0.1264 - Number of steps (neutral) in absorber per event = 0.587 +- 0.002453 + Number of steps (charged) in absorber per event = 141.8 +- 0.1263 + Number of steps (neutral) in absorber per event = 0.5861 +- 0.002446 - Number of secondaries per event : Gammas = 0.5845 electrons = 109.7 positrons = 0 + Number of secondaries per event : Gammas = 0.5839 electrons = 109.6 positrons = 0 Number of events with the primary particle transmitted = 0 % Number of events with at least 1 particle transmitted (same charge as primary) = 0 % - Number of events with the primary particle reflected = 0.003 % - Number of events with at least 1 particle reflected (same charge as primary) = 0.003 % + Number of events with the primary particle reflected = 0.005 % + Number of events with at least 1 particle reflected (same charge as primary) = 0.005 % MultipleScattering: rms proj angle of transmit primary particle = 0 mrad (central part only) computed theta0 (Highland formula) = 233.3 mrad central part defined as +- 699.8 mrad Tail ratio = 0 % +## Gamma process counts: + Photoeffect 58109 + Compton 3 + Conversion 0 + Rayleigh 218 ... write file : pixe.root - done ... close file : pixe.root - done ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={1575258209681380324, 502268587721984320, 1265333753759368, 474264208644985106, 1151878254013493547, 1483930652511092178, 2145339813694232495, 149443267521788243, 598331707926294923, 205239878707861393, 1658426149017994571, 261898008556819608, 1328410559873084242, 346152083954518470, 442818399680857434, 1302852778065642940, 971632776144456411} counter= 2sumtot= 764352614188081867 +N=17 V[N]={944671353633884230, 300194246912256983, 1338926093308238266, 1441599044978111444, 559828476273747537, 976665045002376518, 1655586542061687849, 1507013437582523992, 2052944524787068341, 2173254900581545545, 733849232472135636, 379249519059016924, 877093410379007237, 1488918075031648810, 1263787258307413205, 589725557209658928, 749180548014423557} counter= 14sumtot= 585743191885193394 --------------------------------------- G4 kernel has come to Quit state. ================== Deleting memory pools =================== diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.out b/examples/extended/electromagnetic/TestEm5/TestEm5.out index 95387352a8..21dcf62637 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.out +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -76,6 +76,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -103,7 +104,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -139,8 +140,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -169,8 +169,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 10 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -270,7 +270,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 10 eV to 100 TeV in 260 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -515,30 +515,30 @@ N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008 Run terminated. Run Summary Number of events processed : 100000 - User=0.920000s Real=0.984331s Sys=0.010000s + User=0.960000s Real=0.963480s Sys=0.000000s ======================== run summary ====================== The run was 100000 pi+ of 5 GeV through 20 um of Silicon (density: 2.33 g/cm3 ) - Total energy deposit in absorber per event = 6.344 keV +- 16.23 eV + Total energy deposit in absorber per event = 6.358 keV +- 16.34 eV - -----> Mean dE/dx = 3.172 MeV/cm (1.361 MeV*cm2/g) + -----> Mean dE/dx = 3.179 MeV/cm (1.364 MeV*cm2/g) From formulas : restricted dEdx = 2.96 MeV/cm (1.27 MeV*cm2/g) full dEdx = 4.726 MeV/cm (2.028 MeV*cm2/g) - Leakage : primary = 5 GeV +- 330.9 eV secondaries = 2.183 keV +- 329.4 eV + Leakage : primary = 5 GeV +- 252.7 eV secondaries = 1.76 keV +- 250.9 eV Energy balance : edep + eleak = 5 GeV - Total track length (charged) in absorber per event = 20.26 um +- 7.739 nm - Total track length (neutral) in absorber per event = 1.446 Ang +- 1.369 Ang + Total track length (charged) in absorber per event = 20.26 um +- 7.827 nm + Total track length (neutral) in absorber per event = 2.713 Ang +- 1.915 Ang - Number of steps (charged) in absorber per event = 1.151 +- 0.004616 - Number of steps (neutral) in absorber per event = 2e-05 +- 1.414e-05 + Number of steps (charged) in absorber per event = 1.115 +- 0.003493 + Number of steps (neutral) in absorber per event = 4e-05 +- 2.449e-05 - Number of secondaries per event : Gammas = 2e-05 electrons = 0.01703 positrons = 0 + Number of secondaries per event : Gammas = 4e-05 electrons = 0.01744 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 % @@ -547,14 +547,19 @@ Run Summary Number of events with at least 1 particle reflected (same charge as primary) = 0 % MultipleScattering: - rms proj angle of transmit primary particle = 0.0251 mrad (central part only) + rms proj angle of transmit primary particle = 0.02505 mrad (central part only) computed theta0 (Highland formula) = 0.02627 mrad - central part defined as +- 0.07881 mrad Tail ratio = 1.96 % + central part defined as +- 0.07881 mrad Tail ratio = 1.956 % +## Gamma process counts: + Photoeffect 3 + Compton 0 + Conversion 0 + Rayleigh 0 ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={66873640600104076, 1664130866611224563, 1821404642353466391, 1381679152197532650, 633167218250527369, 935365736700687032, 509076805541974342, 597152642238294470, 81890275252596581, 1461652086190194735, 139704010867341155, 740634118972346892, 547945356951771348, 543374600020673977, 1188299565848571166, 1190353628902227503, 2189384419383216375} counter= 9sumtot= 1857030711600586919 +N=17 V[N]={387689516187099455, 1947743697759783307, 984698709684866192, 1557125090261443253, 1405971494381235133, 1859809124663893344, 323808230424620918, 1155813367203726096, 1585121702309265979, 736197285369872686, 1017405277539546920, 1970751509882679426, 952356149280055994, 2058573618419247016, 1384973780729597446, 681322386937888161, 1407651762910572314} counter= 7sumtot= 664425621022148081 --------------------------------------- # /testem/det/setAbsMat Gold @@ -599,7 +604,7 @@ Index : 2 used in the geometry : Yes ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={66873640600104076, 1664130866611224563, 1821404642353466391, 1381679152197532650, 633167218250527369, 935365736700687032, 509076805541974342, 597152642238294470, 81890275252596581, 1461652086190194735, 139704010867341155, 740634118972346892, 547945356951771348, 543374600020673977, 1188299565848571166, 1190353628902227503, 2189384419383216375} counter= 9sumtot= 1857030711600586919 +N=17 V[N]={387689516187099455, 1947743697759783307, 984698709684866192, 1557125090261443253, 1405971494381235133, 1859809124663893344, 323808230424620918, 1155813367203726096, 1585121702309265979, 736197285369872686, 1017405277539546920, 1970751509882679426, 952356149280055994, 2058573618419247016, 1384973780729597446, 681322386937888161, 1407651762910572314} counter= 7sumtot= 664425621022148081 --------------------------------------- --> Event 0 starts. --> Event 10000 starts. @@ -609,46 +614,51 @@ N=17 V[N]={66873640600104076, 1664130866611224563, 1821404642353466391, 13816791 Run terminated. Run Summary Number of events processed : 50000 - User=0.500000s Real=0.508463s Sys=0.010000s + User=0.500000s Real=0.501066s Sys=0.000000s ======================== run summary ====================== The run was 50000 e- of 15.7 MeV through 9.66 um of Gold (density: 19.3 g/cm3 ) - Total energy deposit in absorber per event = 18.44 keV +- 65.57 eV + Total energy deposit in absorber per event = 18.41 keV +- 65.31 eV - -----> Mean dE/dx = 19.1 MeV/cm (0.9884 MeV*cm2/g) + -----> Mean dE/dx = 19.07 MeV/cm (0.9869 MeV*cm2/g) From formulas : restricted dEdx = 17.91 MeV/cm (0.927 MeV*cm2/g) full dEdx = 61.41 MeV/cm (3.179 MeV*cm2/g) - Leakage : primary = 15.64 MeV +- 2.135 keV secondaries = 41.41 keV +- 2.117 keV + Leakage : primary = 15.64 MeV +- 2.385 keV secondaries = 46.45 keV +- 2.377 keV Energy balance : edep + eleak = 15.7 MeV - Total track length (charged) in absorber per event = 9.932 um +- 12.94 nm - Total track length (neutral) in absorber per event = 130.8 nm +- 4.814 nm + Total track length (charged) in absorber per event = 9.92 um +- 12.63 nm + Total track length (neutral) in absorber per event = 125.1 nm +- 4.368 nm - Number of steps (charged) in absorber per event = 1.369 +- 0.01121 - Number of steps (neutral) in absorber per event = 0.0292 +- 0.0007862 + Number of steps (charged) in absorber per event = 1.198 +- 0.006958 + Number of steps (neutral) in absorber per event = 0.02818 +- 0.000778 - Number of secondaries per event : Gammas = 0.02896 electrons = 0.02286 positrons = 0 + Number of secondaries per event : Gammas = 0.0281 electrons = 0.02222 positrons = 0 Number of events with the primary particle transmitted = 99.99 % Number of events with at least 1 particle transmitted (same charge as primary) = 99.99 % - Number of events with the primary particle reflected = 0.008 % - Number of events with at least 1 particle reflected (same charge as primary) = 0.316 % + Number of events with the primary particle reflected = 0.006 % + Number of events with at least 1 particle reflected (same charge as primary) = 0.318 % MultipleScattering: - rms proj angle of transmit primary particle = 34.88 mrad (central part only) + rms proj angle of transmit primary particle = 34.89 mrad (central part only) computed theta0 (Highland formula) = 35.1 mrad - central part defined as +- 105.3 mrad Tail ratio = 2.91 % + central part defined as +- 105.3 mrad Tail ratio = 2.933 % +## Gamma process counts: + Photoeffect 222 + Compton 1 + Conversion 0 + Rayleigh 3 ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={2040813008079180887, 2137127123440284753, 1634531189318432211, 2170440267252135859, 1547403494041137486, 152448672671363305, 324899158662066949, 591366558582678401, 566407348989114902, 72974661993974464, 1090186446854907992, 184127948904830994, 1013967144332953249, 948692464963852883, 156835884824215219, 328640472166602001, 1443652867319087095} counter= 17sumtot= 263613647900960993 +N=17 V[N]={1239212255599460965, 1328488509436437337, 1766244005004820777, 289170208098684937, 771140316716661411, 849263891296505433, 1791436233008270765, 682837236660786757, 519159570131443593, 420727770183332605, 338116080993397566, 1570479464120553909, 2261538915773229492, 1643374505935178138, 1841001653776451323, 1523663052794115716, 1070398953769415373} counter= 13sumtot= 1459508549589194489 --------------------------------------- # /run/setCut 10 um @@ -698,7 +708,7 @@ Index : 3 used in the geometry : Yes ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={2040813008079180887, 2137127123440284753, 1634531189318432211, 2170440267252135859, 1547403494041137486, 152448672671363305, 324899158662066949, 591366558582678401, 566407348989114902, 72974661993974464, 1090186446854907992, 184127948904830994, 1013967144332953249, 948692464963852883, 156835884824215219, 328640472166602001, 1443652867319087095} counter= 17sumtot= 263613647900960993 +N=17 V[N]={1239212255599460965, 1328488509436437337, 1766244005004820777, 289170208098684937, 771140316716661411, 849263891296505433, 1791436233008270765, 682837236660786757, 519159570131443593, 420727770183332605, 338116080993397566, 1570479464120553909, 2261538915773229492, 1643374505935178138, 1841001653776451323, 1523663052794115716, 1070398953769415373} counter= 13sumtot= 1459508549589194489 --------------------------------------- --> Event 0 starts. --> Event 10000 starts. @@ -708,46 +718,51 @@ N=17 V[N]={2040813008079180887, 2137127123440284753, 1634531189318432211, 217044 Run terminated. Run Summary Number of events processed : 50000 - User=1.970000s Real=2.066171s Sys=0.010000s + User=1.910000s Real=1.921789s Sys=0.000000s ======================== run summary ====================== The run was 50000 mu+ of 96.2 MeV through 4.74 mm of G4_POLYETHYLENE (density: 940 mg/cm3) - Total energy deposit in absorber per event = 1.048 MeV +- 992.6 eV + Total energy deposit in absorber per event = 1.049 MeV +- 1.009 keV - -----> Mean dE/dx = 2.211 MeV/cm (2.353 MeV*cm2/g) + -----> Mean dE/dx = 2.212 MeV/cm (2.354 MeV*cm2/g) From formulas : restricted dEdx = 1.749 MeV/cm (1.861 MeV*cm2/g) full dEdx = 2.265 MeV/cm (2.41 MeV*cm2/g) - Leakage : primary = 95.12 MeV +- 1.358 keV secondaries = 27.41 keV +- 723.2 eV + Leakage : primary = 95.12 MeV +- 2.333 keV secondaries = 30.17 keV +- 3.13 keV Energy balance : edep + eleak = 96.2 MeV - Total track length (charged) in absorber per event = 5.173 mm +- 3.78 um - Total track length (neutral) in absorber per event = 20.34 um +- 2.311 um + Total track length (charged) in absorber per event = 5.175 mm +- 3.834 um + Total track length (neutral) in absorber per event = 22.43 um +- 2.426 um - Number of steps (charged) in absorber per event = 11.45 +- 0.03104 - Number of steps (neutral) in absorber per event = 0.00928 +- 0.0004586 + Number of steps (charged) in absorber per event = 11.16 +- 0.02807 + Number of steps (neutral) in absorber per event = 0.00932 +- 0.000462 - Number of secondaries per event : Gammas = 0.0088 electrons = 4.193 positrons = 0 + Number of secondaries per event : Gammas = 0.00878 electrons = 4.194 positrons = 2e-05 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 % + Number of events with the primary particle reflected = 0.002 % + Number of events with at least 1 particle reflected (same charge as primary) = 0.002 % MultipleScattering: - rms proj angle of transmit primary particle = 7.362 mrad (central part only) + rms proj angle of transmit primary particle = 7.366 mrad (central part only) computed theta0 (Highland formula) = 7.636 mrad - central part defined as +- 22.91 mrad Tail ratio = 1.228 % + central part defined as +- 22.91 mrad Tail ratio = 1.258 % +## Gamma process counts: + Photoeffect 289 + Compton 19 + Conversion 0 + Rayleigh 6 ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={1713044798250223297, 48908071946349271, 775883315495221504, 391610705858356267, 664588191128834417, 1626059320328267459, 1456292069466550727, 1116893346533496927, 1469056562141529631, 429999451075930835, 1186861095219433018, 1929141116803196950, 994589744921584543, 908860157143090929, 897051768244884441, 574482396586399043, 279173454104139953} counter= 7sumtot= 321594500751631555 +N=17 V[N]={536854359441855123, 1009932311112986142, 1367456349214626552, 296515631841918939, 1945008116823094570, 1207116737531648682, 1277087404455360660, 628163819928597573, 1087430661817678910, 761745502824348962, 1612040051454149122, 1120049113972527537, 435968693369216435, 1243355685529661340, 1170000614029906197, 1324448633003502500, 1392366212685334356} counter= 11sumtot= 2274638834540555943 --------------------------------------- # /run/setCut 1 mm @@ -803,7 +818,7 @@ Index : 4 used in the geometry : Yes ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={1713044798250223297, 48908071946349271, 775883315495221504, 391610705858356267, 664588191128834417, 1626059320328267459, 1456292069466550727, 1116893346533496927, 1469056562141529631, 429999451075930835, 1186861095219433018, 1929141116803196950, 994589744921584543, 908860157143090929, 897051768244884441, 574482396586399043, 279173454104139953} counter= 7sumtot= 321594500751631555 +N=17 V[N]={536854359441855123, 1009932311112986142, 1367456349214626552, 296515631841918939, 1945008116823094570, 1207116737531648682, 1277087404455360660, 628163819928597573, 1087430661817678910, 761745502824348962, 1612040051454149122, 1120049113972527537, 435968693369216435, 1243355685529661340, 1170000614029906197, 1324448633003502500, 1392366212685334356} counter= 11sumtot= 2274638834540555943 --------------------------------------- --> Event 0 starts. --> Event 10000 starts. @@ -813,30 +828,30 @@ N=17 V[N]={1713044798250223297, 48908071946349271, 775883315495221504, 391610705 Run terminated. Run Summary Number of events processed : 50000 - User=0.460000s Real=0.493105s Sys=0.000000s + User=0.520000s Real=0.515694s Sys=0.000000s ======================== run summary ====================== The run was 50000 proton of 175 GeV through 8 mm of Aluminium (density: 2.7 g/cm3 ) - Total energy deposit in absorber per event = 5.062 MeV +- 289.2 keV + Total energy deposit in absorber per event = 4.929 MeV +- 282.1 keV - -----> Mean dE/dx = 6.324 MeV/cm (2.342 MeV*cm2/g) + -----> Mean dE/dx = 6.159 MeV/cm (2.281 MeV*cm2/g) From formulas : restricted dEdx = 4.024 MeV/cm (1.49 MeV*cm2/g) full dEdx = 6.048 MeV/cm (2.24 MeV*cm2/g) - Leakage : primary = 174.7 GeV +- 289.2 keV secondaries = 0 eV +- 0 eV + Leakage : primary = 174.7 GeV +- 282.1 keV secondaries = 0 eV +- 0 eV Energy balance : edep + eleak = 174.7 GeV Total track length (charged) in absorber per event = 8.004 mm +- 0 fm Total track length (neutral) in absorber per event = 0 fm +- 0 fm - Number of steps (charged) in absorber per event = 1.268 +- 0.002306 + Number of steps (charged) in absorber per event = 1.269 +- 0.002321 Number of steps (neutral) in absorber per event = 0 +- 0 - Number of secondaries per event : Gammas = 0 electrons = 0.2681 positrons = 0.00094 + Number of secondaries per event : Gammas = 0 electrons = 0.2695 positrons = 0.00084 Number of events with the primary particle transmitted = 100 % Number of events with at least 1 particle transmitted (same charge as primary) = 100 % @@ -845,14 +860,19 @@ Run Summary Number of events with at least 1 particle reflected (same charge as primary) = 0 % MultipleScattering: - rms proj angle of transmit primary particle = 0.02065 mrad (central part only) + rms proj angle of transmit primary particle = 0.02057 mrad (central part only) computed theta0 (Highland formula) = 0.02111 mrad - central part defined as +- 0.06333 mrad Tail ratio = 1.306 % + central part defined as +- 0.06333 mrad Tail ratio = 1.274 % +## Gamma process counts: + Photoeffect 0 + Compton 0 + Conversion 0 + Rayleigh 0 ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={788816828322221604, 1954669624823471393, 557035488327220833, 1750771929206801859, 1355908047992822515, 1644388157675705702, 834094816068999921, 1549358775559347394, 186139917523423888, 1447422695690325009, 1232715695167601482, 1830963091149917722, 238280361653180636, 1983330854229598240, 1833757122092510050, 1849015162887315540, 1584797372858323738} counter= 5sumtot= 1868878858305541967 +N=17 V[N]={841703379855331740, 1160090687504734640, 968124569867711035, 1015729442736271829, 110291220627398616, 897091775881445973, 1940191567319486436, 374987352215883774, 2145359352825164785, 1848921451090203562, 632081604845479671, 2191521819734966939, 221688059177771397, 2081642112283026882, 2271182121773485595, 232878733694585983, 424070808877045087} counter= 11sumtot= 910811986600442336 --------------------------------------- # /testem/det/setAbsMat Iron @@ -909,7 +929,7 @@ Index : 5 used in the geometry : Yes ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={788816828322221604, 1954669624823471393, 557035488327220833, 1750771929206801859, 1355908047992822515, 1644388157675705702, 834094816068999921, 1549358775559347394, 186139917523423888, 1447422695690325009, 1232715695167601482, 1830963091149917722, 238280361653180636, 1983330854229598240, 1833757122092510050, 1849015162887315540, 1584797372858323738} counter= 5sumtot= 1868878858305541967 +N=17 V[N]={841703379855331740, 1160090687504734640, 968124569867711035, 1015729442736271829, 110291220627398616, 897091775881445973, 1940191567319486436, 374987352215883774, 2145359352825164785, 1848921451090203562, 632081604845479671, 2191521819734966939, 221688059177771397, 2081642112283026882, 2271182121773485595, 232878733694585983, 424070808877045087} counter= 11sumtot= 910811986600442336 --------------------------------------- --> Event 0 starts. --> Event 10000 starts. @@ -919,30 +939,30 @@ N=17 V[N]={788816828322221604, 1954669624823471393, 557035488327220833, 17507719 Run terminated. Run Summary Number of events processed : 50000 - User=7.130000s Real=7.363158s Sys=0.000000s + User=7.990000s Real=8.052453s Sys=0.000000s ======================== run summary ====================== The run was 50000 mu+ of 100 GeV through 1 m of Iron (density: 7.87 g/cm3 ) - Total energy deposit in absorber per event = 2.144 GeV +- 14.2 MeV + Total energy deposit in absorber per event = 2.125 GeV +- 13.57 MeV - -----> Mean dE/dx = 21.44 MeV/cm (2.724 MeV*cm2/g) + -----> Mean dE/dx = 21.25 MeV/cm (2.7 MeV*cm2/g) From formulas : restricted dEdx = 11.21 MeV/cm (1.425 MeV*cm2/g) full dEdx = 21.61 MeV/cm (2.745 MeV*cm2/g) - Leakage : primary = 97.86 GeV +- 14.2 MeV secondaries = 0 eV +- 0 eV + Leakage : primary = 97.87 GeV +- 13.57 MeV secondaries = 0 eV +- 0 eV Energy balance : edep + eleak = 100 GeV - Total track length (charged) in absorber per event = 1 m +- 9.475 nm + Total track length (charged) in absorber per event = 1 m +- 5.573 nm Total track length (neutral) in absorber per event = 0 fm +- 0 fm - Number of steps (charged) in absorber per event = 47.66 +- 0.03076 + Number of steps (charged) in absorber per event = 47.63 +- 0.0306 Number of steps (neutral) in absorber per event = 0 +- 0 - Number of secondaries per event : Gammas = 0.04972 electrons = 46.6 positrons = 1.254 + Number of secondaries per event : Gammas = 0.04884 electrons = 46.58 positrons = 1.261 Number of events with the primary particle transmitted = 100 % Number of events with at least 1 particle transmitted (same charge as primary) = 100 % @@ -951,19 +971,24 @@ Run Summary Number of events with at least 1 particle reflected (same charge as primary) = 0 % MultipleScattering: - rms proj angle of transmit primary particle = 1.174 mrad (central part only) + rms proj angle of transmit primary particle = 1.176 mrad (central part only) computed theta0 (Highland formula) = 1.182 mrad - central part defined as +- 3.546 mrad Tail ratio = 0.562 % + central part defined as +- 3.546 mrad Tail ratio = 0.534 % +## Gamma process counts: + Photoeffect 0 + Compton 0 + Conversion 0 + Rayleigh 0 ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={1052507478572400972, 513978324622627446, 1761720875909078424, 1584382347563499097, 1782211465198428451, 360693561008781165, 1210602200795637167, 48760424586785978, 2178320337607834465, 2024629093025727846, 1730076796452832682, 1574730978560884679, 339670379066513317, 2021117528059068829, 1220290001325646274, 407365320630841543, 1983360063014923549} counter= 8sumtot= 1041830093078266325 +N=17 V[N]={617661458496339327, 1853949536333809702, 576578364478647478, 412964137124411421, 1032844685672237211, 1031821778618090704, 544078291082236998, 194159493452279161, 171481080002404738, 70495838368000371, 205172618800321456, 1143344309854547675, 1442959377549137764, 1052598822626686356, 1979034980715068385, 1710881825679836342, 1632809550286451542} counter= 16sumtot= 1837778093858342925 --------------------------------------- # G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 9 of which, static: 0 -Dynamic pools deleted: 9 / Total memory freed: 0.053 MB +Dynamic pools deleted: 9 / Total memory freed: 0.054 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/electromagnetic/TestEm5/include/EventAction.hh b/examples/extended/electromagnetic/TestEm5/include/EventAction.hh index f61e3ab80f..e99ed93979 100644 --- a/examples/extended/electromagnetic/TestEm5/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/EventAction.hh @@ -38,34 +38,36 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +class G4VProcess; + class EventAction : public G4UserEventAction { - public: - EventAction(); - ~EventAction(); +public: + EventAction(); + ~EventAction() = default; - public: - virtual void BeginOfEventAction(const G4Event*); - virtual void EndOfEventAction(const G4Event*); + void BeginOfEventAction(const G4Event*) override; + void EndOfEventAction(const G4Event*) override; - void AddEnergy (G4double edep) {fEnergyDeposit += edep;}; - void AddTrakLenCharg(G4double length) {fTrakLenCharged += length;}; - void AddTrakLenNeutr(G4double length) {fTrakLenNeutral += length;}; + void AddEnergy (G4double edep) {fEnergyDeposit += edep;}; + void AddTrakLenCharg(G4double length) {fTrakLenCharged += length;}; + void AddTrakLenNeutr(G4double length) {fTrakLenNeutral += length;}; - void CountStepsCharg () {fNbStepsCharged++ ;}; - void CountStepsNeutr () {fNbStepsNeutral++ ;}; - - void SetTransmitFlag (G4int flag) - {if (flag > fTransmitFlag) fTransmitFlag = flag;}; - void SetReflectFlag (G4int flag) - {if (flag > fReflectFlag) fReflectFlag = flag;}; + void CountStepsCharg () {++fNbStepsCharged;}; + void CountStepsNeutr (const G4VProcess*); + + void SetTransmitFlag (G4int flag) + {if (flag > fTransmitFlag) fTransmitFlag = flag;}; + void SetReflectFlag (G4int flag) + {if (flag > fReflectFlag) fReflectFlag = flag;}; - private: - G4double fEnergyDeposit; - G4double fTrakLenCharged, fTrakLenNeutral; - G4int fNbStepsCharged, fNbStepsNeutral; - G4int fTransmitFlag, fReflectFlag; +private: + G4double fEnergyDeposit; + G4double fTrakLenCharged, fTrakLenNeutral; + G4int fNbStepsCharged, fNbStepsNeutral; + G4int fTransmitFlag, fReflectFlag; + G4int fTypes[4]; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/Run.hh b/examples/extended/electromagnetic/TestEm5/include/Run.hh index 7991869391..e77aabf049 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Run.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Run.hh @@ -48,74 +48,75 @@ class G4ParticleDefinition; class Run : public G4Run { - public: - Run(DetectorConstruction*); - ~Run(); +public: + Run(DetectorConstruction*); + ~Run() = default; - public: + void SetPrimary(G4ParticleDefinition* particle, G4double energy); + + void AddEnergy (G4double edep) + {fEnergyDeposit += edep; fEnergyDeposit2 += edep*edep;}; + + void AddTrakLenCharg (G4double length) + {fTrakLenCharged += length; fTrakLenCharged2 += length*length;}; + + void AddTrakLenNeutr (G4double length) + {fTrakLenNeutral += length; fTrakLenNeutral2 += length*length;}; + + void AddMscProjTheta (G4double theta) + { if (std::abs(theta) <= fMscThetaCentral) { fMscEntryCentral++; + fMscProjecTheta += theta; fMscProjecTheta2 += theta*theta;} + }; + + void CountStepsCharg (G4int nSteps) + {fNbStepsCharged += nSteps; fNbStepsCharged2 += nSteps*nSteps;}; + + void CountStepsNeutr (G4int nSteps) + {fNbStepsNeutral += nSteps; fNbStepsNeutral2 += nSteps*nSteps;}; + + void CountParticles (G4ParticleDefinition* part) + { if (part == G4Gamma::Gamma()) ++fNbGamma; + else if (part == G4Electron::Electron()) ++fNbElect; + else if (part == G4Positron::Positron()) ++fNbPosit; }; + + void CountTransmit (G4int flag) + { if (flag == 1) ++fTransmit[0]; + else if (flag == 2) { ++fTransmit[0]; ++fTransmit[1]; }}; + + void CountReflect (G4int flag) + { if (flag == 1) ++fReflect[0]; + else if (flag == 2) { ++fReflect[0]; ++fReflect[1]; }}; - void SetPrimary(G4ParticleDefinition* particle, G4double energy); - - void AddEnergy (G4double edep) - {fEnergyDeposit += edep; fEnergyDeposit2 += edep*edep;}; - - void AddTrakLenCharg (G4double length) - {fTrakLenCharged += length; fTrakLenCharged2 += length*length;}; - - void AddTrakLenNeutr (G4double length) - {fTrakLenNeutral += length; fTrakLenNeutral2 += length*length;}; - - void AddMscProjTheta (G4double theta) - {if (std::abs(theta) <= fMscThetaCentral) { fMscEntryCentral++; - fMscProjecTheta += theta; fMscProjecTheta2 += theta*theta;} - }; - - void CountStepsCharg (G4int nSteps) - {fNbStepsCharged += nSteps; fNbStepsCharged2 += nSteps*nSteps;}; - - void CountStepsNeutr (G4int nSteps) - {fNbStepsNeutral += nSteps; fNbStepsNeutral2 += nSteps*nSteps;}; - - void CountParticles (G4ParticleDefinition* part) - { if (part == G4Gamma::Gamma()) fNbGamma++ ; - else if (part == G4Electron::Electron()) fNbElect++ ; - else if (part == G4Positron::Positron()) fNbPosit++ ; }; - - void CountTransmit (G4int flag) - { if (flag == 1) fTransmit[0]++; - else if (flag == 2) {fTransmit[0]++; fTransmit[1]++; }}; - - void CountReflect (G4int flag) - { if (flag == 1) fReflect[0]++; - else if (flag == 2) {fReflect[0]++; fReflect[1]++; }}; - - void AddEnergyLeak (G4double eleak, G4int index) - {fEnergyLeak[index] += eleak; fEnergyLeak2[index] += eleak*eleak;}; + void AddEnergyLeak (G4double eleak, G4int index) + {fEnergyLeak[index] += eleak; fEnergyLeak2[index] += eleak*eleak;}; - G4double ComputeMscHighland(); - - virtual void Merge(const G4Run*); - - void EndOfRun(); + G4double ComputeMscHighland(); - private: - DetectorConstruction* fDetector; - G4ParticleDefinition* fParticle; - G4double fEkin; + void CountGammaProcesses(G4int* type) + { for(G4int i=0; i<4; ++i) { fTypes[i] += type[i]; }} + + void Merge(const G4Run*) override; + + void EndOfRun(); + +private: + DetectorConstruction* fDetector; + G4ParticleDefinition* fParticle; + G4double fEkin; - G4double fEnergyDeposit, fEnergyDeposit2; - G4double fTrakLenCharged, fTrakLenCharged2; - G4double fTrakLenNeutral, fTrakLenNeutral2; - G4double fNbStepsCharged, fNbStepsCharged2; - G4double fNbStepsNeutral, fNbStepsNeutral2; - G4double fMscProjecTheta, fMscProjecTheta2; - G4double fMscThetaCentral; + G4double fEnergyDeposit, fEnergyDeposit2; + G4double fTrakLenCharged, fTrakLenCharged2; + G4double fTrakLenNeutral, fTrakLenNeutral2; + G4double fNbStepsCharged, fNbStepsCharged2; + G4double fNbStepsNeutral, fNbStepsNeutral2; + G4double fMscProjecTheta, fMscProjecTheta2; + G4double fMscThetaCentral; - G4int fNbGamma, fNbElect, fNbPosit; - G4int fTransmit[2], fReflect[2]; - G4int fMscEntryCentral; + G4int fNbGamma, fNbElect, fNbPosit; + G4int fTransmit[2], fReflect[2]; + G4int fMscEntryCentral, fTypes[4]; - G4double fEnergyLeak[2], fEnergyLeak2[2]; + G4double fEnergyLeak[2], fEnergyLeak2[2]; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/EventAction.cc b/examples/extended/electromagnetic/TestEm5/src/EventAction.cc index a505d73f23..696c10f725 100644 --- a/examples/extended/electromagnetic/TestEm5/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/EventAction.cc @@ -37,6 +37,7 @@ #include "G4RunManager.hh" #include "G4Event.hh" +#include "G4VProcess.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -46,22 +47,18 @@ EventAction::EventAction() fTrakLenCharged(0.), fTrakLenNeutral(0.), fNbStepsCharged(0), fNbStepsNeutral(0), fTransmitFlag(0), fReflectFlag(0) -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -EventAction::~EventAction() -{ } +{ + fTypes[0] = fTypes[1] = fTypes[2] = fTypes[3] = 0; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void EventAction::BeginOfEventAction(const G4Event* ) { - // initialisation per event - fEnergyDeposit = 0.; - fTrakLenCharged = fTrakLenNeutral = 0.; - fNbStepsCharged = fNbStepsNeutral = 0; - fTransmitFlag = fReflectFlag = 0; + // initialisation per event + fEnergyDeposit = fTrakLenCharged = fTrakLenNeutral = 0.; + fNbStepsCharged = fNbStepsNeutral = fTransmitFlag = fReflectFlag = 0; + fTypes[0] = fTypes[1] = fTypes[2] = fTypes[3] = 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -78,12 +75,27 @@ void EventAction::EndOfEventAction(const G4Event*) run->CountStepsCharg(fNbStepsCharged); run->CountStepsNeutr(fNbStepsNeutral); - run->CountTransmit (fTransmitFlag); - run->CountReflect (fReflectFlag); - + run->CountTransmit(fTransmitFlag); + run->CountReflect(fReflectFlag); + run->CountGammaProcesses(fTypes); + if (fEnergyDeposit > 0.) G4AnalysisManager::Instance()->FillH1(1,fEnergyDeposit); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +void EventAction::CountStepsNeutr(const G4VProcess* ptr) +{ + ++fNbStepsNeutral; + if(nullptr != ptr) { + G4int type = ptr->GetProcessSubType(); + if(type == 11) { ++fTypes[3]; } + else if(type == 12) { ++fTypes[0]; } + else if(type == 13) { ++fTypes[1]; } + else if(type == 14) { ++fTypes[2]; } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm5/src/Run.cc b/examples/extended/electromagnetic/TestEm5/src/Run.cc index 79c91fdf43..aec351ec69 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Run.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Run.cc @@ -61,17 +61,13 @@ Run::Run(DetectorConstruction* det) fTransmit[0] = fTransmit[1] = fReflect[0] = fReflect[1] = 0; fMscEntryCentral = 0; + fTypes[0] = fTypes[1] = fTypes[2] = fTypes[3] = 0; fEnergyLeak[0] = fEnergyLeak[1] = fEnergyLeak2[0] = fEnergyLeak2[1] = 0.; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Run::~Run() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void Run::SetPrimary(G4ParticleDefinition* particle, G4double energy) { fParticle = particle; @@ -108,6 +104,10 @@ void Run::Merge(const G4Run* run) fMscProjecTheta += localRun->fMscProjecTheta; fMscProjecTheta2 += localRun->fMscProjecTheta2; + fTypes[0] += localRun->fTypes[0]; + fTypes[1] += localRun->fTypes[1]; + fTypes[2] += localRun->fTypes[2]; + fTypes[3] += localRun->fTypes[3]; fNbGamma += localRun->fNbGamma; fNbElect += localRun->fNbElect; @@ -303,6 +303,12 @@ void Run::EndOfRun() G4cout << " central part defined as +- " << fMscThetaCentral/mrad << " mrad; " << " Tail ratio = " << tailMsc << " %" << G4endl; + + G4cout << "## Gamma process counts:" << G4endl; + G4cout << " Photoeffect " << fTypes[0] << G4endl; + G4cout << " Compton " << fTypes[1] << G4endl; + G4cout << " Conversion " << fTypes[2] << G4endl; + G4cout << " Rayleigh " << fTypes[3] << G4endl; // normalize histograms // diff --git a/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc index 631be645db..7f4f8ee31c 100644 --- a/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc @@ -66,7 +66,7 @@ void SteppingAction::UserSteppingAction(const G4Step* aStep) fEventAction->CountStepsCharg(); } else { fEventAction->AddTrakLenNeutr(aStep->GetStepLength()); - fEventAction->CountStepsNeutr(); + fEventAction->CountStepsNeutr(aStep->GetPostStepPoint()->GetProcessDefinedStep()); } } diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.out b/examples/extended/electromagnetic/TestEm6/TestEm6.out index e0db15fe07..277118d5a2 100644 --- a/examples/extended/electromagnetic/TestEm6/TestEm6.out +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -85,6 +85,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -112,7 +113,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -207,23 +208,23 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics ### Run 0 starts. ### Run 0 start. ###RunAction::BeginOfRunAction Material:Iron -... create H1 : h1 - done -... create H1 : h2 - done -... create H1 : h3 - done -... create H1 : h4 - done -... create H1 : h5 - done -... create H1 : h6 - done -... create H1 : h7 - done -... create H1 : h8 - done -... create H1 : h9 - done -... create H1 : h10 - done -... create H1 : h11 - done -... create H1 : h12 - done -... create H1 : h13 - done -... create H1 : h14 - done -... create H1 : h15 - done -... create H1 : h16 - done -... create H1 : h17 - done +... create h1 : h1 - done +... create h1 : h2 - done +... create h1 : h3 - done +... create h1 : h4 - done +... create h1 : h5 - done +... create h1 : h6 - done +... create h1 : h7 - done +... create h1 : h8 - done +... create h1 : h9 - done +... create h1 : h10 - done +... create h1 : h11 - done +... create h1 : h12 - done +... create h1 : h13 - done +... create h1 : h14 - done +... create h1 : h15 - done +... create h1 : h16 - done +... create h1 : h17 - done ----> Histogram file is opened in testem6_0 @@ -269,7 +270,7 @@ Step# X Y Z KineE dEStep StepLeng T Run terminated. Run Summary Number of events processed : 5 - User=0.000000s Real=0.000801s Sys=0.000000s + User=0.000000s Real=0.000893s Sys=0.000000s ### RunAction::EndOfRunAction Number of process calls ---> GammaToMuPair : 5 @@ -325,23 +326,23 @@ Index : 0 used in the geometry : Yes ... create file : testem6_1.root - done ... open analysis file : testem6_1.root - done ... open analysis file : testem6_1.root - done -... create H1 : h1 - done -... create H1 : h2 - done -... create H1 : h3 - done -... create H1 : h4 - done -... create H1 : h5 - done -... create H1 : h6 - done -... create H1 : h7 - done -... create H1 : h8 - done -... create H1 : h9 - done -... create H1 : h10 - done -... create H1 : h11 - done -... create H1 : h12 - done -... create H1 : h13 - done -... create H1 : h14 - done -... create H1 : h15 - done -... create H1 : h16 - done -... create H1 : h17 - done +... create h1 : h1 - done +... create h1 : h2 - done +... create h1 : h3 - done +... create h1 : h4 - done +... create h1 : h5 - done +... create h1 : h6 - done +... create h1 : h7 - done +... create h1 : h8 - done +... create h1 : h9 - done +... create h1 : h10 - done +... create h1 : h11 - done +... create h1 : h12 - done +... create h1 : h13 - done +... create h1 : h14 - done +... create h1 : h15 - done +... create h1 : h16 - done +... create h1 : h17 - done ----> Histogram file is opened in testem6_1 @@ -387,7 +388,7 @@ Step# X Y Z KineE dEStep StepLeng T Run terminated. Run Summary Number of events processed : 5 - User=0.000000s Real=0.000502s Sys=0.000000s + User=0.000000s Real=0.000530s Sys=0.000000s ### RunAction::EndOfRunAction Number of process calls ---> AnnihiToMuPair : 2 ee2hadr : 3 diff --git a/examples/extended/electromagnetic/TestEm7/History b/examples/extended/electromagnetic/TestEm7/History index dd19ea1365..dc9a7a63ab 100644 --- a/examples/extended/electromagnetic/TestEm7/History +++ b/examples/extended/electromagnetic/TestEm7/History @@ -5,6 +5,10 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-10-18 V. Ivanchenko (testem7-V11-00-01) +- Make local EM physics the same as EM physics option3 + with G4IonParameterizedModel + ## 2021-12-10 Ben Morgan (testem7-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/electromagnetic/TestEm7/TestEm7.out b/examples/extended/electromagnetic/TestEm7/TestEm7.out index 8f87c7ccca..4af5f07d79 100644 --- a/examples/extended/electromagnetic/TestEm7/TestEm7.out +++ b/examples/extended/electromagnetic/TestEm7/TestEm7.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -149,6 +149,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -176,7 +177,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -212,8 +213,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -242,8 +242,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 10 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -343,7 +343,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 10 eV to 100 TeV in 260 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -589,21 +589,21 @@ N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008 Run terminated. Run Summary Number of events processed : 10000 - User=5.000000s Real=5.075001s Sys=0.010000s + User=6.870000s Real=6.920041s Sys=0.010000s The run consists of 10000 proton of 160 MeV through 20 cm of G4_WATER (density: 1 g/cm3 ) - Projected Range= 17.7723 cm rms= 2.04985 mm - Mean number of primary steps = 188.648 - Total energy deposit= 160 MeV - niel energy deposit = 211.874 eV + Projected Range= 17.7711 cm rms= 2.70779 mm + Mean number of primary steps = 188.672 + Total energy deposit= 159.991 MeV + niel energy deposit = 200.754 eV --------------------------------------------------------- Cumulated Doses : Edep Edep/Ebeam Dose - tally 0: 4.56969 GeV 0.285605 % 9.15181e-05 Gy - tally 1: 4.86103 GeV 0.303814 % 9.73528e-05 Gy - tally 2: 3.09017 GeV 0.193136 % 6.18875e-05 Gy - tally 3: 1.77761 GeV 0.111101 % 3.56006e-05 Gy + tally 0: 4.56943 GeV 0.285589 % 9.15128e-05 Gy + tally 1: 4.89139 GeV 0.305712 % 9.79609e-05 Gy + tally 2: 3.19267 GeV 0.199542 % 6.39403e-05 Gy + tally 3: 1.86029 GeV 0.116268 % 3.72564e-05 Gy --------------------------------------------------------- @@ -611,7 +611,7 @@ Run Summary ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={2240668093075474401, 1241303336773080550, 436831951086215187, 1512830194700865318, 1411933395385169672, 203565231530440126, 1422369817632610707, 1737671032422363871, 2006509277761853899, 391202303190422754, 594213723703228336, 1692957201402197843, 1448929112118492635, 286137472960875450, 1639919067011338440, 2025668185166743756, 1490257025626933634} counter= 11sumtot= 1030379338625061020 +N=17 V[N]={1688224171856633815, 1204397957432844994, 970316653270356218, 2007108838279963520, 1355352758253744969, 238070959558161433, 194812629545793269, 1245385537869589661, 1060554935641088942, 1360172160108689287, 131188915086715362, 488728272194409523, 675129076341361952, 193434760953387947, 1953886095392242541, 2240442317776638725, 1010802352521828454} counter= 16sumtot= 1877107327587592955 --------------------------------------- /gun/particle ion /gun/ion 6 12 6 @@ -643,27 +643,27 @@ Index : 1 used in the geometry : Yes ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={2240668093075474401, 1241303336773080550, 436831951086215187, 1512830194700865318, 1411933395385169672, 203565231530440126, 1422369817632610707, 1737671032422363871, 2006509277761853899, 391202303190422754, 594213723703228336, 1692957201402197843, 1448929112118492635, 286137472960875450, 1639919067011338440, 2025668185166743756, 1490257025626933634} counter= 11sumtot= 1030379338625061020 +N=17 V[N]={1688224171856633815, 1204397957432844994, 970316653270356218, 2007108838279963520, 1355352758253744969, 238070959558161433, 194812629545793269, 1245385537869589661, 1060554935641088942, 1360172160108689287, 131188915086715362, 488728272194409523, 675129076341361952, 193434760953387947, 1953886095392242541, 2240442317776638725, 1010802352521828454} counter= 16sumtot= 1877107327587592955 --------------------------------------- --> Event 0 starts. Run terminated. Run Summary Number of events processed : 1000 - User=1.590000s Real=1.617858s Sys=0.000000s + User=2.240000s Real=2.266308s Sys=0.000000s The run consists of 1000 C12 of 3.5 GeV through 20 cm of G4_WATER (density: 1 g/cm3 ) - Projected Range= 16.5389 cm rms= 531.145 um - Mean number of primary steps = 122.492 - Total energy deposit= 3.49997 GeV - niel energy deposit = 234.712 keV + Projected Range= 16.5422 cm rms= 535.539 um + Mean number of primary steps = 156.685 + Total energy deposit= 3.49998 GeV + niel energy deposit = 291.094 keV --------------------------------------------------------- Cumulated Doses : Edep Edep/Ebeam Dose - tally 0: 11.5185 GeV 0.329101 % 0.000230684 Gy - tally 1: 13.2085 GeV 0.377387 % 0.00026453 Gy - tally 2: 15.4063 GeV 0.440181 % 0.000308546 Gy - tally 3: 21.5475 GeV 0.615643 % 0.000431537 Gy + tally 0: 11.426 GeV 0.326457 % 0.000228831 Gy + tally 1: 12.7834 GeV 0.365241 % 0.000256016 Gy + tally 2: 15.2416 GeV 0.435474 % 0.000305247 Gy + tally 3: 22.2325 GeV 0.635213 % 0.000445254 Gy --------------------------------------------------------- @@ -671,7 +671,7 @@ Run Summary ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={1762584816771225610, 2154703881771458587, 1173851301641697770, 381406634252624963, 1521293381408104200, 148133837619212766, 2154796913630061932, 1273759432801067516, 2111465416446287457, 1100376553035897938, 2057709171221537247, 1637317170455656302, 1271051785783237035, 282850495476641373, 969511049129299571, 914102499624838228, 907201794914033803} counter= 8sumtot= 1069529053059636739 +N=17 V[N]={1649824727118647661, 1046390055990695993, 1480625329608636178, 1464081956272961574, 690398189349009815, 1387920628077919840, 1805855177575327470, 889528290669479374, 481729531693366248, 1412514200587325633, 1276571729738571688, 2113172881940251241, 1071669001935448011, 1396820044800673496, 195159062383107426, 2263764457198372112, 1930759182272215021} counter= 3sumtot= 1804197364288763222 --------------------------------------- /testem/det/tallyNumber 0 /testem/det/setMat G4_Cu @@ -714,25 +714,25 @@ Index : 2 used in the geometry : Yes ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={1762584816771225610, 2154703881771458587, 1173851301641697770, 381406634252624963, 1521293381408104200, 148133837619212766, 2154796913630061932, 1273759432801067516, 2111465416446287457, 1100376553035897938, 2057709171221537247, 1637317170455656302, 1271051785783237035, 282850495476641373, 969511049129299571, 914102499624838228, 907201794914033803} counter= 8sumtot= 1069529053059636739 +N=17 V[N]={1649824727118647661, 1046390055990695993, 1480625329608636178, 1464081956272961574, 690398189349009815, 1387920628077919840, 1805855177575327470, 889528290669479374, 481729531693366248, 1412514200587325633, 1276571729738571688, 2113172881940251241, 1071669001935448011, 1396820044800673496, 195159062383107426, 2263764457198372112, 1930759182272215021} counter= 3sumtot= 1804197364288763222 --------------------------------------- --> Event 0 starts. Run terminated. Run Summary Number of events processed : 1000 - User=0.990000s Real=1.009933s Sys=0.010000s + User=1.150000s Real=1.166945s Sys=0.000000s The run consists of 1000 kaon+ of 100 MeV through 20 cm of G4_Cu (density: 8.96 g/cm3 ) - Projected Range= 2.14766 cm rms= 1.56688 mm - Mean number of primary steps = 20.184 - Total energy deposit= 288.138 MeV + Projected Range= 2.15528 cm rms= 1.15412 mm + Mean number of primary steps = 20.214 + Total energy deposit= 281.108 MeV niel energy deposit = 0 eV ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={1261897851289163972, 878796522000234631, 33942722161398260, 956507415361483452, 1774606947007577603, 2157352878319003607, 2119905803332652718, 926811200396515986, 216841099071527767, 1936816463537651538, 1947780179479895822, 2183710891311171733, 2265989270141784809, 406909207948280857, 517331216042700249, 956857366377773881, 454200931832907265} counter= 7sumtot= 243670882688478591 +N=17 V[N]={1933654448227140629, 1457435173727069612, 1930983674723996504, 139968334832931166, 321915334657586393, 198050298954934499, 824407054321419117, 177663160651886545, 272833708589235254, 849177198025465057, 1522299965994627137, 1090332125718583053, 389288022713849481, 1679888907265434944, 1024835678810961358, 309735575689495581, 2271528564791882934} counter= 8sumtot= 253096163200641607 --------------------------------------- /testem/det/setMat TechVacuum /gun/particle alpha @@ -779,13 +779,13 @@ Index : 3 used in the geometry : Yes ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={1261897851289163972, 878796522000234631, 33942722161398260, 956507415361483452, 1774606947007577603, 2157352878319003607, 2119905803332652718, 926811200396515986, 216841099071527767, 1936816463537651538, 1947780179479895822, 2183710891311171733, 2265989270141784809, 406909207948280857, 517331216042700249, 956857366377773881, 454200931832907265} counter= 7sumtot= 243670882688478591 +N=17 V[N]={1933654448227140629, 1457435173727069612, 1930983674723996504, 139968334832931166, 321915334657586393, 198050298954934499, 824407054321419117, 177663160651886545, 272833708589235254, 849177198025465057, 1522299965994627137, 1090332125718583053, 389288022713849481, 1679888907265434944, 1024835678810961358, 309735575689495581, 2271528564791882934} counter= 8sumtot= 253096163200641607 --------------------------------------- --> Event 0 starts. Run terminated. Run Summary Number of events processed : 100 - User=0.000000s Real=0.000530s Sys=0.000000s + User=0.000000s Real=0.000524s Sys=0.000000s The run consists of 100 alpha of 265 eV through 20 cm of TechVacuum (density: 0.01 mg/cm3) @@ -797,7 +797,7 @@ Run Summary ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={3419896075297885, 1951781031037977070, 2210304551233612733, 1807794810424210351, 879937965561726928, 2237159123048561014, 990493004491546925, 2067659011753027446, 1966189998434472881, 2209962778879779350, 896584746823195972, 2056785492069935886, 87646654099743704, 1714464364365591811, 1680398785441088121, 1623488157648334983, 917815783076570927} counter= 15sumtot= 2243456062327734477 +N=17 V[N]={338928760304083625, 441887219544588962, 851684438601283227, 1817987484827937180, 1159436035507008579, 2250982510064750426, 428191275905355336, 1655753707302913134, 1596304501530477774, 2137638257992607652, 297423786042245159, 1211461843073150226, 910086290912509156, 674649788378540977, 643000731617450453, 892667639589976765, 946714002643445715} counter= 16sumtot= 2113897209342466689 --------------------------------------- /testem/det/setMat G4_WATER /gun/particle alpha @@ -842,25 +842,25 @@ Index : 3 used in the geometry : No ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={3419896075297885, 1951781031037977070, 2210304551233612733, 1807794810424210351, 879937965561726928, 2237159123048561014, 990493004491546925, 2067659011753027446, 1966189998434472881, 2209962778879779350, 896584746823195972, 2056785492069935886, 87646654099743704, 1714464364365591811, 1680398785441088121, 1623488157648334983, 917815783076570927} counter= 15sumtot= 2243456062327734477 +N=17 V[N]={338928760304083625, 441887219544588962, 851684438601283227, 1817987484827937180, 1159436035507008579, 2250982510064750426, 428191275905355336, 1655753707302913134, 1596304501530477774, 2137638257992607652, 297423786042245159, 1211461843073150226, 910086290912509156, 674649788378540977, 643000731617450453, 892667639589976765, 946714002643445715} counter= 16sumtot= 2113897209342466689 --------------------------------------- --> Event 0 starts. Run terminated. Run Summary Number of events processed : 100 - User=0.010000s Real=0.008646s Sys=0.000000s + User=0.010000s Real=0.011792s Sys=0.000000s The run consists of 100 alpha of 100 MeV through 20 cm of G4_WATER (density: 1 g/cm3 ) - Projected Range= 6.45155 mm rms= 42.3367 um - Mean number of primary steps = 30.5 + Projected Range= 6.46145 mm rms= 46.5428 um + Mean number of primary steps = 30.44 Total energy deposit= 100 MeV - niel energy deposit = 10.5953 keV + niel energy deposit = 10.5573 keV ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={2071981819767556287, 1179110943106877282, 1634969956125369195, 1684460160095941118, 1955420741018873120, 293851660535295641, 899337214494373612, 1619122262543859105, 40490399918652944, 432126555243091409, 2182258594538948051, 1900732488210856031, 1352797688709815696, 1147370700400186758, 2279919383778043954, 2239109450864675034, 2183763166966666176} counter= 16sumtot= 2038393094182141903 +N=17 V[N]={2080744500207456733, 1944926083755594869, 710688226310155038, 2297318243066993899, 1247577656773167168, 620673806240104498, 769351771706101578, 910187047393043345, 224791321024784370, 610207624252623772, 1537402686433635203, 1764701403553745435, 1189035687858514099, 412562457742156602, 271518160371550114, 2244600600676981768, 87273758235602283} counter= 13sumtot= 476816961892659166 --------------------------------------- /testem/det/setMat G4_Si /gun/particle ion @@ -914,25 +914,25 @@ Index : 4 used in the geometry : Yes ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={2071981819767556287, 1179110943106877282, 1634969956125369195, 1684460160095941118, 1955420741018873120, 293851660535295641, 899337214494373612, 1619122262543859105, 40490399918652944, 432126555243091409, 2182258594538948051, 1900732488210856031, 1352797688709815696, 1147370700400186758, 2279919383778043954, 2239109450864675034, 2183763166966666176} counter= 16sumtot= 2038393094182141903 +N=17 V[N]={2080744500207456733, 1944926083755594869, 710688226310155038, 2297318243066993899, 1247577656773167168, 620673806240104498, 769351771706101578, 910187047393043345, 224791321024784370, 610207624252623772, 1537402686433635203, 1764701403553745435, 1189035687858514099, 412562457742156602, 271518160371550114, 2244600600676981768, 87273758235602283} counter= 13sumtot= 476816961892659166 --------------------------------------- --> Event 0 starts. Run terminated. Run Summary Number of events processed : 10 - User=5.750000s Real=9.428543s Sys=0.070000s + User=3.520000s Real=3.599527s Sys=0.060000s The run consists of 10 Xe131 of 1.217 GeV through 20 cm of G4_Si (density: 2.33 g/cm3 ) - Projected Range= 145.611 um rms= 83.411 um - Mean number of primary steps = 96829 - Total energy deposit= 1.21694 GeV - niel energy deposit = 3.65168 MeV + Projected Range= 102.92 um rms= 21.5413 um + Mean number of primary steps = 44902.4 + Total energy deposit= 1.21744 GeV + niel energy deposit = 8.64958 MeV ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={1397714199752469290, 2050813288471206089, 2168648443525936630, 4505745208668765, 571578980704684706, 1373601706202484757, 1294400663965895376, 1464915351915886670, 370461277101719717, 2159201359125069225, 649918230043539263, 731261677401732233, 1289294683781608014, 522665772539881656, 848411053211521742, 1166737211229343808, 799939400757664672} counter= 8sumtot= 417324971229761005 +N=17 V[N]={987077746800997428, 2082610003558889367, 593302383828085190, 109500966082923303, 1895624508566552438, 1336221603731834272, 1149121910930981094, 1082963007991210816, 264354698456808715, 135493131574335760, 868258989621331595, 307082230068886089, 602592755957445596, 1004141008072681110, 564936928765396393, 206407416552654232, 373159235629199863} counter= 16sumtot= 2033633480121743506 --------------------------------------- /testem/det/setMat Water_1.05 /gun/particle proton @@ -992,29 +992,29 @@ Index : 5 used in the geometry : Yes ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={1397714199752469290, 2050813288471206089, 2168648443525936630, 4505745208668765, 571578980704684706, 1373601706202484757, 1294400663965895376, 1464915351915886670, 370461277101719717, 2159201359125069225, 649918230043539263, 731261677401732233, 1289294683781608014, 522665772539881656, 848411053211521742, 1166737211229343808, 799939400757664672} counter= 8sumtot= 417324971229761005 +N=17 V[N]={987077746800997428, 2082610003558889367, 593302383828085190, 109500966082923303, 1895624508566552438, 1336221603731834272, 1149121910930981094, 1082963007991210816, 264354698456808715, 135493131574335760, 868258989621331595, 307082230068886089, 602592755957445596, 1004141008072681110, 564936928765396393, 206407416552654232, 373159235629199863} counter= 16sumtot= 2033633480121743506 --------------------------------------- --> Event 0 starts. Run terminated. Run Summary Number of events processed : 1000 - User=0.490000s Real=0.786898s Sys=0.000000s + User=0.660000s Real=0.660069s Sys=0.000000s The run consists of 1000 proton of 160 MeV through 20 cm of Water_1.05 (density: 1.05 g/cm3 ) - Projected Range= 16.9375 cm rms= 1.79912 mm - Mean number of primary steps = 180.334 + Projected Range= 16.927 cm rms= 1.8208 mm + Mean number of primary steps = 180.172 Total energy deposit= 160 MeV - niel energy deposit = 176.467 eV + niel energy deposit = 181.586 eV ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={523130301909089991, 1494645976750184763, 418090302754885485, 1079962040887520903, 1955454364248225464, 251962764863159288, 645429398763120188, 68568756836198637, 1471714866361642334, 2001151317485243200, 1230301318075332398, 1433127449841602085, 1164541342183044907, 272922019850466839, 2241196911746032098, 1814742720912658296, 2018291116986620750} counter= 4sumtot= 1638488896745476018 +N=17 V[N]={869322257438941195, 384251251088241991, 2180024558785132357, 853258939912875777, 176205193257164154, 1881574772054670531, 1781061241614129969, 1557037857960190014, 3008773993715497, 1252849085205759056, 1318002576626930808, 2123391528790226507, 2148130426532606502, 816744514228099003, 1633700286528463369, 415258349704432768, 1236702284415004523} counter= 13sumtot= 2183779824427032413 --------------------------------------- G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 12 of which, static: 0 -Dynamic pools deleted: 12 / Total memory freed: 80 MB +Dynamic pools deleted: 12 / Total memory freed: 56 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/electromagnetic/TestEm7/c12.mac b/examples/extended/electromagnetic/TestEm7/c12.mac new file mode 100644 index 0000000000..b0d875aaf1 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm7/c12.mac @@ -0,0 +1,57 @@ +# +# Macro file for "TestEm7.cc" +# (can be run in batch, without graphic) +# +/control/verbose 2 +/run/verbose 2 +/tracking/verbose 0 +# +/testem/det/setMat G4_WATER +/testem/det/setSizeX 20 cm +/testem/det/setSizeYZ 20 cm +# +/testem/det/tallyNumber 4 +/testem/det/tallyDefinition 0 2. 2. 2. mm +/testem/det/tallyDefinition 1 2. 2. 2. mm +/testem/det/tallyDefinition 2 2. 2. 2. mm +/testem/det/tallyDefinition 3 2. 2. 2. mm +/testem/det/tallyPosition 0 -9.9 0. 0. cm +/testem/det/tallyPosition 1 -5. 0. 0. cm +/testem/det/tallyPosition 2 0. 0. 0. cm +/testem/det/tallyPosition 3 5. 0. 0. cm +# +/testem/phys/addPhysics emstandard_opt0 +#/testem/phys/addPhysics emstandard_opt3 +#/testem/phys/addPhysics emstandard_opt4 +#/testem/phys/addPhysics ionGasModels +#/testem/phys/addPhysics local +# +#/process/eLoss/UseICRU90 true +# +# +/run/initialize +# +#/gun/particle ion +#/gun/ion 6 12 6 +#/gun/energy 2.4 GeV +#/gun/energy 240 MeV +# +/gun/particle ion +/gun/ion 18 40 18 +/gun/energy 4 GeV +#/gun/energy 400 MeV +# +# step limit +/run/setCut 0.5 mm +# +#/run/printProgress 100 +# +#/analysis/setFileName c12 +#/analysis/h1/set 2 100 80 90 mm +#/analysis/h1/set 3 100 80 90 mm +# +/run/beamOn 1000 +# +#/control/shell mkdir zphys3 +#/run/particle/storePhysicsTable zphys3 +# diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc index a66cf99235..141deaf48b 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc @@ -82,9 +82,16 @@ PhysListEmStandard::PhysListEmStandard(const G4String&) param->SetLowestElectronEnergy(100*eV); param->SetNumberOfBinsPerDecade(20); param->ActivateAngularGeneratorForIonisation(true); - param->SetMscRangeFactor(0.04); + param->SetUseMottCorrection(true); + param->SetStepFunction(0.2, 100*CLHEP::um); + param->SetStepFunctionMuHad(0.2, 50*CLHEP::um); + param->SetStepFunctionLightIons(0.1, 20*CLHEP::um); + param->SetStepFunctionIons(0.1, 1*CLHEP::um); + param->SetMscRangeFactor(0.03); + param->SetLateralDisplacementAlg96(true); param->SetMscStepLimitType(fUseDistanceToBoundary); param->SetMuHadLateralDisplacement(true); + param->SetFluctuationType(fUrbanFluctuation); param->SetFluo(true); SetPhysicsType(bElectromagnetic); } @@ -122,7 +129,6 @@ void PhysListEmStandard::ConstructProcess() ph->RegisterProcess(new G4eMultipleScattering(), particle); // G4eIonisation* eIoni = new G4eIonisation(); - eIoni->SetStepFunction(0.1, 100*um); ph->RegisterProcess(eIoni, particle); // ph->RegisterProcess(new G4eBremsstrahlung(), particle); @@ -132,7 +138,6 @@ void PhysListEmStandard::ConstructProcess() ph->RegisterProcess(new G4eMultipleScattering(), particle); // G4eIonisation* eIoni = new G4eIonisation(); - eIoni->SetStepFunction(0.1, 100*um); ph->RegisterProcess(eIoni, particle); // ph->RegisterProcess(new G4eBremsstrahlung(), particle); @@ -144,7 +149,6 @@ void PhysListEmStandard::ConstructProcess() ph->RegisterProcess(new G4MuMultipleScattering(), particle); G4MuIonisation* muIoni = new G4MuIonisation(); - muIoni->SetStepFunction(0.1, 50*um); ph->RegisterProcess(muIoni, particle); ph->RegisterProcess(new G4MuBremsstrahlung(), particle); ph->RegisterProcess(new G4MuPairProduction(), particle); @@ -155,7 +159,6 @@ void PhysListEmStandard::ConstructProcess() ph->RegisterProcess(new G4hMultipleScattering(), particle); G4hIonisation* hIoni = new G4hIonisation(); - hIoni->SetStepFunction(0.1, 20*um); ph->RegisterProcess(hIoni, particle); ph->RegisterProcess(new G4hBremsstrahlung(), particle); ph->RegisterProcess(new G4hPairProduction(), particle); @@ -165,7 +168,6 @@ void PhysListEmStandard::ConstructProcess() ph->RegisterProcess(new G4hMultipleScattering(), particle); G4ionIonisation* ionIoni = new G4ionIonisation(); - ionIoni->SetStepFunction(0.1, 1*um); ph->RegisterProcess(ionIoni, particle); ph->RegisterProcess(new G4NuclearStopping(), particle); @@ -174,7 +176,6 @@ void PhysListEmStandard::ConstructProcess() ph->RegisterProcess(new G4hMultipleScattering(), particle); G4ionIonisation* ionIoni = new G4ionIonisation(); ionIoni->SetEmModel(new G4IonParametrisedLossModel()); - ionIoni->SetStepFunction(0.1, 1*um); ph->RegisterProcess(ionIoni, particle); ph->RegisterProcess(new G4NuclearStopping(), particle); diff --git a/examples/extended/electromagnetic/TestEm8/History b/examples/extended/electromagnetic/TestEm8/History index b76136af62..495442359d 100644 --- a/examples/extended/electromagnetic/TestEm8/History +++ b/examples/extended/electromagnetic/TestEm8/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-10-26 I. Hrivnacova (testem8-V11-00-01) +- Coding guidelines: start data members with 'f' (StepMax) + ## 2021-12-10 Ben Morgan (testem8-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.out b/examples/extended/electromagnetic/TestEm8/TestEm8.out index 03e95ead66..7763bd5574 100644 --- a/examples/extended/electromagnetic/TestEm8/TestEm8.out +++ b/examples/extended/electromagnetic/TestEm8/TestEm8.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -531,14 +531,14 @@ Index : 0 used in the geometry : Yes Index : 1 used in the geometry : Yes Material : G4_MYLAR Range cuts : gamma 500 um e- 500 um e+ 500 um proton 0 fm - Energy thresholds : gamma 2.28699 keV e- 264.86 keV e+ 258.447 keV proton 0 eV + Energy thresholds : gamma 2.28689 keV e- 264.843 keV e+ 258.466 keV proton 0 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes Material : XeCH4C3H8 Range cuts : gamma 1.8 mm e- 1.8 mm e+ 1.8 mm proton 1.8 mm - Energy thresholds : gamma 25 eV e- 5.46873 keV e+ 5.35456 keV proton 180 keV + Energy thresholds : gamma 25 eV e- 5.46873 keV e+ 5.35479 keV proton 180 keV Region(s) which use this couple : GasDetector @@ -555,8 +555,8 @@ Index : 2 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=0.070000s Real=0.066498s Sys=0.000000s -RunAction: End of run actions are started 1 Nevt= 1000 Edep= 0.0168737 + User=0.070000s Real=0.068840s Sys=0.000000s +RunAction: End of run actions are started 1 Nevt= 1000 Edep= 0.0167496 ==================================================== Beam Particle: proton Ekin(MeV) = 200000 @@ -565,23 +565,23 @@ RunAction: End of run actions are started 1 Nevt= 1000 Edep= 0.0168737 End of Run TotNbofEvents = 1000 Energy(keV) per ADC channel = 3.0769 - Mean energy deposit in absorber = 16.874 +- 0.44599 keV RMS/Emean = 0.83583 - Mean number of steps in absorber= 1.264 mean number of ion-clusters = 844.03 MeanCluster= 843.64 + Mean energy deposit in absorber = 16.75 +- 0.42583 keV RMS/Emean = 0.80396 + Mean number of steps in absorber= 1.263 mean number of ion-clusters = 837.9 MeanCluster= 837.44 - ====== Energy deposit distribution Noverflows= 0.017 ====== + ====== Energy deposit distribution Noverflows= 0.016 ====== bin nb Elow entries normalized 0 0 0 0 1 3 3 0.003 - 2 6 89 0.089 - 3 9 262 0.262 - 4 12 233 0.233 - 5 15 155 0.155 - 6 18 105 0.105 - 7 21 48 0.048 - 8 24 26 0.026 + 2 6 92 0.092 + 3 9 257 0.257 + 4 12 232 0.232 + 5 15 160 0.16 + 6 18 102 0.102 + 7 21 52 0.052 + 8 24 25 0.025 9 27 14 0.014 10 30 8 0.008 - 11 33 12 0.012 + 11 33 11 0.011 12 36 7 0.007 13 39 7 0.007 14 42 3 0.003 diff --git a/examples/extended/electromagnetic/TestEm8/include/StepMax.hh b/examples/extended/electromagnetic/TestEm8/include/StepMax.hh index 15d488bce3..a7fec81152 100644 --- a/examples/extended/electromagnetic/TestEm8/include/StepMax.hh +++ b/examples/extended/electromagnetic/TestEm8/include/StepMax.hh @@ -68,7 +68,7 @@ private: DetectorConstruction* fDetector; G4VPhysicalVolume* fWorld; - G4bool isInitialised; + G4bool fIsInitialised; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/StepMax.cc b/examples/extended/electromagnetic/TestEm8/src/StepMax.cc index bc4128bf6e..e769aa6829 100644 --- a/examples/extended/electromagnetic/TestEm8/src/StepMax.cc +++ b/examples/extended/electromagnetic/TestEm8/src/StepMax.cc @@ -36,7 +36,7 @@ StepMax::StepMax(DetectorConstruction* ptr, const G4String& processName) : G4VEmProcess(processName, fGeneral),fMaxChargedStep(DBL_MAX), - fDetector(ptr),fWorld(nullptr),isInitialised(false) + fDetector(ptr),fWorld(nullptr),fIsInitialised(false) { SetProcessSubType(static_cast(STEP_LIMITER)); } @@ -57,8 +57,8 @@ G4bool StepMax::IsApplicable(const G4ParticleDefinition& part) void StepMax::PreparePhysicsTable(const G4ParticleDefinition&) { - if(isInitialised) { - isInitialised = false; + if(fIsInitialised) { + fIsInitialised = false; } } @@ -66,10 +66,10 @@ void StepMax::PreparePhysicsTable(const G4ParticleDefinition&) void StepMax::BuildPhysicsTable(const G4ParticleDefinition&) { - if(!isInitialised) { + if(!fIsInitialised) { fMaxChargedStep = fDetector->GetMaxChargedStep(); fWorld = fDetector->GetWorldPhysVol(); - isInitialised = true; + fIsInitialised = true; if(fMaxChargedStep < DBL_MAX) { G4cout << GetProcessName() << ": SubType= " << GetProcessSubType() << " Step limit(mm)= " << fMaxChargedStep << G4endl; diff --git a/examples/extended/electromagnetic/TestEm9/History b/examples/extended/electromagnetic/TestEm9/History index 8dff208202..21d96ba0e1 100644 --- a/examples/extended/electromagnetic/TestEm9/History +++ b/examples/extended/electromagnetic/TestEm9/History @@ -4,6 +4,9 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-10-26 I. Hrivnacova (testem9-V11-00-02) +- Removed PhysListEmStandard::verbose data member, + use the verboseLevel defined in the base class for this purpose. ## 2022-05-05 Vladimir Ivanchenko (testem9-V11-00-01) - Updated all user actions: more correct count of creator process; diff --git a/examples/extended/electromagnetic/TestEm9/TestEm9.out b/examples/extended/electromagnetic/TestEm9/TestEm9.out index 82f646a66d..9fb34fea92 100644 --- a/examples/extended/electromagnetic/TestEm9/TestEm9.out +++ b/examples/extended/electromagnetic/TestEm9/TestEm9.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -56,6 +56,7 @@ Apply cuts on all EM processes 1 Use combined TransportationWithMsc Enabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -83,7 +84,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -119,8 +120,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -156,8 +156,8 @@ conv: for gamma applyCuts:1 SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma applyCuts:1 SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== DummyModel : Emin= 0 eV Emax= 100 TeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm @@ -603,39 +603,39 @@ Index : 7 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=0.690000s Real=0.704085s Sys=0.010000s + User=0.750000s Real=0.760085s Sys=0.000000s RunAction: End of run actions are started HistoManager: End of run actions are started RunID# 0 ================================================================= Number of events 100 -Average number of e- 404.9 -Average number of gamma 641 -Average number of e+ 49.13 -Average number of steps 2966 -Edep 1x1 = 0.8312 +- 0.002901 res= 3.49 % 100 -Edep 3x3 = 0.9573 +- 0.001504 res= 1.571 % 100 -Edep 5x5 = 0.9793 +- 0.0011 res= 1.124 % 100 +Average number of e- 401.7 +Average number of gamma 636.9 +Average number of e+ 47.98 +Average number of steps 2964 +Edep 1x1 = 0.8358 +- 0.002757 res= 3.298 % 100 +Edep 3x3 = 0.9585 +- 0.001534 res= 1.601 % 100 +Edep 5x5 = 0.9789 +- 0.001311 res= 1.339 % 100 =========== Ratios without trancating =========================== - E1/E9 = 0.8683 +- 0.002759 - E1/E25 = 0.8487 +- 0.002864 - E9/E25 = 0.9775 +- 0.0009826 + E1/E9 = 0.872 +- 0.002481 + E1/E25 = 0.8538 +- 0.002643 + E9/E25 = 0.9791 +- 0.0009064 Beam Energy 1 GeV ================================================================== <<<<>>>> 100 events for Crystal Calorimeter -Edep1x1: 0.8312 delEdep1x1= -0.1688 nrms= -1.688 -Erms1x1: 0.02901 delErms1x1= -0.971 nrms= -9.71 -Edep3x3: 0.9573 delEdep3x3= -0.04272 nrms= -0.4272 -Erms3x3: 0.01504 delErms3x3= -0.985 nrms= -9.85 -Edep5x5: 0.9793 delEdep5x5= -0.02067 nrms= -0.2067 -Erms5x5: 0.011 delErms5x5= -0.989 nrms= -9.89 +Edep1x1: 0.8358 delEdep1x1= -0.1642 nrms= -1.642 +Erms1x1: 0.02757 delErms1x1= -0.9724 nrms= -9.724 +Edep3x3: 0.9585 delEdep3x3= -0.04154 nrms= -0.4154 +Erms3x3: 0.01534 delErms3x3= -0.9847 nrms= -9.847 +Edep5x5: 0.9789 delEdep5x5= -0.02112 nrms= -0.2112 +Erms5x5: 0.01311 delErms5x5= -0.9869 nrms= -9.869 <<<<>>>> IS ACCEPTED Z bremsstrahlung photoeffect compton conversion 13 0 0 156 0 - 53 263 42 0 45 - 55 278 49 0 50 + 53 259 41 0 45 + 55 280 49 0 48 # /testem/det/acceptance1 0.0136 0.0001 500 /testem/det/acceptance9 0.0139 0.0001 500 @@ -713,22 +713,22 @@ Index : 7 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=1.290000s Real=1.301496s Sys=0.000000s + User=1.270000s Real=1.272901s Sys=0.000000s RunAction: End of run actions are started HistoManager: End of run actions are started RunID# 1 ================================================================= Number of events 1000 -Average number of e- 79.87 -Average number of gamma 81 -Average number of e+ 4.964 -Average number of steps 526.3 -Edep 1x1 = 0.01534 +- 0.0005436 -Edep 3x3 = 0.0158 +- 0.0006 -Edep 5x5 = 0.01588 +- 0.0006086 +Average number of e- 74.03 +Average number of gamma 72.31 +Average number of e+ 4.241 +Average number of steps 477.8 +Edep 1x1 = 0.01462 +- 0.0003045 +Edep 3x3 = 0.01501 +- 0.0003404 +Edep 5x5 = 0.01508 +- 0.0003454 =========== Ratios without trancating =========================== - E1/E9 = 0.9834 +- 0.0007118 - E1/E25 = 0.9805 +- 0.0008062 - E9/E25 = 0.997 +- 0.000177 + E1/E9 = 0.9831 +- 0.0007335 + E1/E25 = 0.9801 +- 0.0008386 + E9/E25 = 0.9969 +- 0.0001891 Beam Energy 20 GeV ================================================================== @@ -836,22 +836,22 @@ Index : 7 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=0.470000s Real=0.487755s Sys=0.010000s + User=0.490000s Real=0.488397s Sys=0.000000s RunAction: End of run actions are started HistoManager: End of run actions are started RunID# 2 ================================================================= Number of events 100 -Average number of e- 171.8 -Average number of gamma 223.8 -Average number of e+ 47.83 -Average number of steps 1851 -Edep 1x1 = 0.841 +- 0.004117 res= 4.895 % 100 -Edep 3x3 = 0.9671 +- 0.003483 res= 3.601 % 100 -Edep 5x5 = 0.9898 +- 0.003477 res= 3.513 % 100 +Average number of e- 170.6 +Average number of gamma 222.4 +Average number of e+ 47.8 +Average number of steps 1843 +Edep 1x1 = 0.8358 +- 0.003939 res= 4.712 % 100 +Edep 3x3 = 0.9635 +- 0.003571 res= 3.707 % 100 +Edep 5x5 = 0.9851 +- 0.003567 res= 3.621 % 100 =========== Ratios without trancating =========================== - E1/E9 = 0.8697 +- 0.003057 - E1/E25 = 0.8498 +- 0.003181 - E9/E25 = 0.9771 +- 0.001089 + E1/E9 = 0.8676 +- 0.002876 + E1/E25 = 0.8487 +- 0.003055 + E9/E25 = 0.9781 +- 0.0009992 Beam Energy 1 GeV ================================================================== @@ -959,22 +959,22 @@ Index : 7 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=0.820000s Real=0.830651s Sys=0.010000s + User=0.760000s Real=0.760738s Sys=0.000000s RunAction: End of run actions are started HistoManager: End of run actions are started RunID# 3 ================================================================= Number of events 100 -Average number of e- 171.1 -Average number of gamma 363 -Average number of e+ 47.12 -Average number of steps 1984 -Edep 1x1 = 0.8354 +- 0.004051 res= 4.849 % 100 -Edep 3x3 = 0.9663 +- 0.00346 res= 3.581 % 100 -Edep 5x5 = 0.986 +- 0.003278 res= 3.324 % 100 +Average number of e- 173.2 +Average number of gamma 360.9 +Average number of e+ 46.97 +Average number of steps 1996 +Edep 1x1 = 0.8224 +- 0.003949 res= 4.802 % 100 +Edep 3x3 = 0.9507 +- 0.003548 res= 3.732 % 100 +Edep 5x5 = 0.9722 +- 0.003616 res= 3.719 % 100 =========== Ratios without trancating =========================== - E1/E9 = 0.8648 +- 0.003431 - E1/E25 = 0.8475 +- 0.003624 - E9/E25 = 0.9799 +- 0.001168 + E1/E9 = 0.8653 +- 0.003264 + E1/E25 = 0.8461 +- 0.003283 + E9/E25 = 0.9779 +- 0.001047 Beam Energy 1 GeV ================================================================== @@ -982,6 +982,6 @@ Beam Energy 1 GeV G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 11 of which, static: 0 -Dynamic pools deleted: 11 / Total memory freed: 0.15 MB +Dynamic pools deleted: 11 / Total memory freed: 0.14 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListEmStandard.hh index 0901285e2d..87de503e61 100644 --- a/examples/extended/electromagnetic/TestEm9/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListEmStandard.hh @@ -53,15 +53,12 @@ class PhysListEmStandard : public G4VPhysicsConstructor { public: - explicit PhysListEmStandard(G4int ver = 1); + explicit PhysListEmStandard(G4int verbose = 1); ~PhysListEmStandard() override; void ConstructParticle() override; void ConstructProcess() override; - -private: - G4int verbose; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc index da7ee62d22..6b8cc47742 100644 --- a/examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc @@ -73,13 +73,14 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PhysListEmStandard::PhysListEmStandard(G4int ver) - : G4VPhysicsConstructor("local"), verbose(ver) +PhysListEmStandard::PhysListEmStandard(G4int verbose) + : G4VPhysicsConstructor("local") { G4EmParameters* param = G4EmParameters::Instance(); param->SetDefaults(); param->SetVerbose(verbose); SetPhysicsType(bElectromagnetic); + SetVerboseLevel(verbose); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -99,7 +100,7 @@ void PhysListEmStandard::ConstructParticle() void PhysListEmStandard::ConstructProcess() { - if(verbose > 1) { + if(verboseLevel > 1) { G4cout << "### " << GetPhysicsName() << " Construct Processes " << G4endl; } G4EmBuilder::PrepareEMPhysics(); diff --git a/examples/extended/errorpropagation/.README.txt b/examples/extended/errorpropagation/.README.txt index b2f4f19776..fae3532093 100644 --- a/examples/extended/errorpropagation/.README.txt +++ b/examples/extended/errorpropagation/.README.txt @@ -1,37 +1,14 @@ ///\file "errorpropagation/.README.txt" -///\brief Exampleerrorpropagation README page +///\brief Examples errorpropagation README page -/*! \page Exampleerrorpropagation Category/example "errorpropagation" +/*! \page Examples_errorpropagation Category "errorpropagation" -This is an example illustrating the use of the error propagation utility. + Examples in this directory demonstrate use of the use of the error propagation utility. + Currently, only one example is provided: -A G4ErrorFreeTrajState is created to simulate a muon track of 20 GeV along the X axis. Then the track is propagated until the target is reached. +\link ExampleerrProp errProp \endlink -The geometry is a simplified typical HEP detector: - - An air beamline ( BEAM ) - - An air central detector ( CDET ) - - A copper calorimeter, divided in four ( ECAL ) - - An aluminium calorimeter, divided in ten ( HCAL ) - - An air muon detector ( MUON ) - -It is inmersed in a magnetic field along the Z axis with default value -1 kilogauss. This value can be changed with the command "/exerror/setField. - - -The type of target can be chosen with the enviromental variable G4ERROR_TARGET: - - PLANE_SURFACE : use a G4ErrorPlaneSurfaceTarget perpendicular to X at (2241. mm, 0, 0) - - CYL_SURFACE : use a G4ErrorCylSurfaceTarget parallel to Z of radius 2220 mm - - VOLUME : use a G4ErrorGeomVolumeTarget with volume name "MUON" - - TRKLEN : use a G4ErrorTrackLengthTarget with track length 2230 mm - - -The user may also choose if the propagation is done forwards (the natural way, loosing energy) or backwards (in opposite direction, gaining energy), with the enviromental variable G4ERROR_MODE: - - FORWARDS : propagate in the forward direction - - BACKWARDS : propagate in the backward direction - - -There are also two modes of propagation, that can be chosen with the enviromental variable G4ERROR_PROP - - UNTIL_TARGET : propagate until target, all steps in one go - - STEP_BY_STEP propagate until target, returning control to the user at each step +This example demonstrates how to use the error propagation utility. */ diff --git a/examples/extended/errorpropagation/CMakeLists.txt b/examples/extended/errorpropagation/CMakeLists.txt index 756343f5d6..1ae6e41fe8 100644 --- a/examples/extended/errorpropagation/CMakeLists.txt +++ b/examples/extended/errorpropagation/CMakeLists.txt @@ -1,58 +1,5 @@ -#---------------------------------------------------------------------------- -# Setup the project +#---Adding all polarisation examples subdirectories explicitly + cmake_minimum_required(VERSION 3.16...3.21) -project(errorpropagation) - -#---------------------------------------------------------------------------- -# Find Geant4 package, no UI and Vis drivers activated -# -find_package(Geant4 REQUIRED) - -#---------------------------------------------------------------------------- -# Setup Geant4 include directories and compile definitions -# -include(${Geant4_USE_FILE}) - - -#---------------------------------------------------------------------------- -# Locate sources and headers for this project -# -include_directories(${PROJECT_SOURCE_DIR}/include - ${Geant4_INCLUDE_DIR}) -file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) -file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) - -#---------------------------------------------------------------------------- -# Add the executable, and link it to the Geant4 libraries -# -add_executable(errprop errprop.cc ${sources} ${headers}) -target_link_libraries(errprop ${Geant4_LIBRARIES} ) - -#---------------------------------------------------------------------------- -# Copy all scripts to the build directory, i.e. the directory in which we -# build errorpropagation. This is so that we can run the executable directly because it -# relies on these scripts being in the current working directory. -# -set(errorpropagation_SCRIPTS - - ) - -foreach(_script ${errorpropagation_SCRIPTS}) - configure_file( - ${PROJECT_SOURCE_DIR}/${_script} - ${PROJECT_BINARY_DIR}/${_script} - COPYONLY - ) -endforeach() - -#---------------------------------------------------------------------------- -# Add program to the project targets -# (this avoids the need of typing the program name after make) -# -add_custom_target(errorpropagation DEPENDS errprop) - -#---------------------------------------------------------------------------- -# Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX -# -install(TARGETS errprop DESTINATION bin) +add_subdirectory(errProp) diff --git a/examples/extended/errorpropagation/Doxyfile b/examples/extended/errorpropagation/Doxyfile deleted file mode 100644 index 6f5b106724..0000000000 --- a/examples/extended/errorpropagation/Doxyfile +++ /dev/null @@ -1,1726 +0,0 @@ -# Doxyfile 1.7.3 - -# 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 (" "). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# http://www.gnu.org/software/libiconv for the list of possible encodings. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = "Geant4 examples" - -# 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 = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = - -# With the PROJECT_LOGO tag one can specify an logo or icon that is -# included in the documentation. The maximum height of the logo should not -# exceed 55 pixels and the maximum width should not exceed 200 pixels. -# Doxygen will copy the logo to the output directory. - -PROJECT_LOGO = - -# 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 = - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# 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: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, -# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English -# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, -# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, -# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. - -OUTPUT_LANGUAGE = English - -# 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 - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# 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 = YES - -# 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. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = /home/work/packages/geant4/geant4_ref/examples/ - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful if your file system -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# 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 regular Qt-style comments -# (thus requiring an explicit @brief command for a brief description.) - -JAVADOC_AUTOBRIEF = YES - -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will -# interpret the first line (until the first dot) of a Qt-style -# comment as the brief description. If set to NO, the comments -# will behave just like regular Qt-style comments (thus requiring -# an explicit \brief command for a brief description.) - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = 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 -# re-implements. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. - -SEPARATE_MEMBER_PAGES = 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 - -# 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 = - -# 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 OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for -# Java. For instance, namespaces will be presented as packages, qualified -# scopes will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources only. Doxygen will then generate output that is more tailored for -# Fortran. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for -# VHDL. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given extension. -# Doxygen has a built-in mapping, but you can override or extend it using this -# tag. The format is ext=language, where ext is a file extension, and language -# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, -# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions -# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also makes the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. -# Doxygen will parse them like normal C++ but will assume all classes use public -# instead of private inheritance when no explicit protection keyword is present. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate getter -# and setter methods for a property. Setting this option to YES (the default) -# will make doxygen replace the get and set methods by a property in the -# documentation. This will only work if the methods are indeed getting or -# setting a simple type. If this is not the case, or you want to show the -# methods anyway, you should set this option to NO. - -IDL_PROPERTY_SUPPORT = 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 - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum -# is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically -# be useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. - -TYPEDEF_HIDES_STRUCT = NO - -# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to -# determine which symbols to keep in memory and which to flush to disk. -# When the cache is full, less often used symbols will be written to disk. -# For small to medium size projects (<1000 input files) the default value is -# probably good enough. For larger projects a too small cache size can cause -# doxygen to be busy swapping symbols to and from disk most of the time -# causing a significant performance penalty. -# If the system has enough physical memory increasing the cache will improve the -# performance by keeping more symbols in memory. Note that the value works on -# a logarithmic scale so increasing the size by one will roughly double the -# memory usage. The cache size is given by this formula: -# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols - -SYMBOL_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# 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 = YES - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = YES - -# 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 - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = YES - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base -# name of the file that contains the anonymous namespace. By default -# anonymous namespaces are hidden. - -EXTRACT_ANON_NSPACES = NO - -# 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 classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# 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 - -# 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 -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = YES - -# 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 SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen -# will list include files with double quotes in the documentation -# rather than with sharp brackets. - -FORCE_LOCAL_INCLUDES = NO - -# 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 = NO - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen -# will sort the (brief and detailed) documentation of class members so that -# constructors and destructors are listed first. If set to NO (the default) -# the constructors will appear in the respective orders defined by -# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. -# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO -# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the -# hierarchy of group names into alphabetical order. If set to NO (the default) -# the group names will appear in their defined order. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a -# match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen -# will still accept a match between prototype and implementation in such cases. - -STRICT_PROTO_MATCHING = NO - -# 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 - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# 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 macro consists 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 macros in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# 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 - -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. The default is NO. - -SHOW_DIRECTORIES = NO - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. -# This will remove the Files entry from the Quick Index and from the -# Folder Tree View (if specified). The default is YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the -# Namespaces page. -# This will remove the Namespaces entry from the Quick Index -# and from the Folder Tree View (if specified). The default is YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command , where is the value of -# the FILE_VERSION_FILTER tag, and is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. The create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. -# You can optionally specify a file name after the option, if omitted -# DoxygenLayout.xml will be used as the name of the layout file. - -LAYOUT_FILE = - -#--------------------------------------------------------------------------- -# 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 - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# The WARN_NO_PARAMDOC option can be enabled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. - -WARN_NO_PARAMDOC = NO - -# 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. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) - -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. - -# trunk -#INPUT = Doxymain.h Doxymodules_basic.h \ -# Doxymodules_common.h Doxymodules_new.h \ -# ../basic/.README ../extended/.README \ -# ../basic/B1 ../basic/B2 ../basic/B3 ../basic/B4 \ -# ../extended/common ../extended/new - -# release -INPUT = . - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is -# also the default input encoding. Doxygen uses libiconv (or the iconv built -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for -# the list of possible encodings. - -INPUT_ENCODING = UTF-8 - -# 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++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh -# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py -# *.f90 *.f *.for *.vhd *.vhdl - -FILE_PATTERNS = *.hh *.icc *.cc .README - -# 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 = YES - -# 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 = ../basic/B2/B2b/include/B2EventAction.hh \ - ../basic/B2/B2b/include/B2MagneticField.hh \ - ../basic/B2/B2b/include/B2PrimaryGeneratorAction.hh \ - ../basic/B2/B2b/include/B2RunAction.hh \ - ../basic/B2/B2b/include/B2TrackerHit.hh \ - ../basic/B2/B2b/include/B2TrackerSD.hh \ - ../basic/B2/B2b/src/B2EventAction.cc \ - ../basic/B2/B2b/src/B2MagneticField.cc \ - ../basic/B2/B2b/src/B2PrimaryGeneratorAction.cc \ - ../basic/B2/B2b/src/B2RunAction.cc \ - ../basic/B2/B2b/src/B2TrackerHit.cc \ - ../basic/B2/B2b/src/B2TrackerSD.cc \ - ../basic/B4/B4b/include/B4Analysis.hh \ - ../basic/B4/B4c/include/B4Analysis.hh \ - ../basic/B4/B4d/include/B4Analysis.hh \ - ../basic/B4/B4b/include/B4DetectorConstruction.hh \ - ../basic/B4/B4b/include/B4DetectorMessenger.hh \ - ../basic/B4/B4b/src/B4DetectorConstruction.cc \ - ../basic/B4/B4b/src/B4DetectorMessenger.cc \ - ../basic/B4/B4b/include/B4PrimaryGeneratorAction.hh \ - ../basic/B4/B4c/include/B4PrimaryGeneratorAction.hh \ - ../basic/B4/B4d/include/B4PrimaryGeneratorAction.hh \ - ../basic/B4/B4b/src/B4PrimaryGeneratorAction.cc \ - ../basic/B4/B4c/src/B4PrimaryGeneratorAction.cc \ - ../basic/B4/B4d/src/B4PrimaryGeneratorAction.cc \ - ../basic/B4/B4b/include/B4RunAction.hh \ - ../basic/B4/B4c/include/B4RunAction.hh \ - ../basic/B4/B4d/include/B4RunAction.hh \ - ../basic/B4/B4b/src/B4RunAction.cc \ - ../basic/B4/B4c/src/B4RunAction.cc \ - ../basic/B4/B4d/src/B4RunAction.cc - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or -# directories that are symbolic links (a Unix file system 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. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test - -EXCLUDE_SYMBOLS = - -# 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. -# If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. -# Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. -# The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty or if -# non of the patterns match the file name, INPUT_FILTER is applied. - -FILTER_PATTERNS = - -# 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 (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) -# and it is also possible to disable source filtering for a specific pattern -# using *.ext= (so without naming a filter). This option only has effect when -# FILTER_SOURCE_FILES is enabled. - -FILTER_SOURCE_PATTERNS = - -#--------------------------------------------------------------------------- -# 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. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = YES - -# 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 REFERENCED_BY_RELATION tag is set to YES -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. -# Otherwise they will link to the documentation. - -REFERENCES_LINK_SOURCE = YES - -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. - -USE_HTAGS = 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 - -#--------------------------------------------------------------------------- -# 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 = YES - -# 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 = - -# If the HTML_TIMESTAMP tag is set to YES then the generated HTML -# documentation will contain the timesstamp. - -HTML_TIMESTAMP = NO - -# 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. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. -# Doxygen will adjust the colors in the stylesheet and background images -# according to this color. Hue is specified as an angle on a colorwheel, -# see http://en.wikipedia.org/wiki/Hue for more information. -# For instance the value 0 represents red, 60 is yellow, 120 is green, -# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. -# The allowed range is 0 to 359. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of -# the colors in the HTML output. For a value of 0 the output will use -# grayscales only. A value of 255 will produce the most vivid colors. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to -# the luminance component of the colors in the HTML output. Values below -# 100 gradually make the output lighter, whereas values above 100 make -# the output darker. The value divided by 100 is the actual gamma applied, -# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, -# and 100 does not change the gamma. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting -# this to NO can help when comparing the output of multiple runs. - -HTML_TIMESTAMP = YES - -# 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 HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. For this to work a browser that supports -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). - -HTML_DYNAMIC_SECTIONS = NO - -# If the GENERATE_DOCSET tag is set to YES, additional index files -# will be generated that can be used as input for Apple's Xcode 3 -# integrated development environment, introduced with OSX 10.5 (Leopard). -# To create a documentation set, doxygen will generate a Makefile in the -# HTML output directory. Running make will produce the docset in that -# directory and running "make install" will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find -# it at startup. -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. - -GENERATE_DOCSET = NO - -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the -# feed. A documentation feed provides an umbrella under which multiple -# documentation sets from a single provider (such as a company or product suite) -# can be grouped. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that -# should uniquely identify the documentation set bundle. This should be a -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen -# will append .docset to the name. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. - -DOCSET_PUBLISHER_NAME = Publisher - -# 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 compiled HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# 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 CHM_INDEX_ENCODING -# is used to encode HtmlHelp index (hhk), content (hhc) and project file -# content. - -CHM_INDEX_ENCODING = - -# 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 - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated -# that can be used as input for Qt's qhelpgenerator to generate a -# Qt Compressed Help (.qch) of the generated HTML documentation. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can -# be used to specify the file name of the resulting .qch file. -# The path specified is relative to the HTML output folder. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#namespace - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#virtual-folders - -QHP_VIRTUAL_FOLDER = doc - -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to -# add. For more information please see -# http://doc.trolltech.com/qthelpproject.html#custom-filters - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see -# -# Qt Help Project / Custom Filters. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's -# filter section matches. -# -# Qt Help Project / Filter Attributes. - -QHP_SECT_FILTER_ATTRS = - -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can -# be used to specify the location of Qt's qhelpgenerator. -# If non-empty doxygen will try to run qhelpgenerator on the generated -# .qhp file. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files -# will be generated, which together with the HTML files, form an Eclipse help -# plugin. To install this plugin and make it available under the help contents -# menu in Eclipse, the contents of the directory containing the HTML and XML -# files needs to be copied into the plugins directory of eclipse. The name of -# the directory within the plugins directory should be the same as -# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before -# the help appears. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have -# this name. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# 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 [0,1..20]) -# that doxygen will group on one line in the generated HTML documentation. -# Note that a value of 0 will completely suppress the enum values from appearing in the overview section. - -ENUM_VALUES_PER_LINE = 4 - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. -# If the tag value 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, DHTML, CSS and frames is required (i.e. any modern browser). -# Windows users are probably better off using the HTML help feature. - -GENERATE_TREEVIEW = NO - -# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, -# and Class Hierarchy pages using a tree view instead of an ordered list. - -USE_INLINE_TREES = 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 - -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open -# links to external symbols imported via tag files in a separate window. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of Latex formulas included -# as images in the HTML documentation. The default is 10. Note that -# when you change the font size after a successful doxygen run you need -# to manually remove any form_*.png images from the HTML output directory -# to force them to be regenerated. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are -# not supported properly for IE 6.0, but are supported on all modern browsers. -# Note that when changing this option you need to delete any form_*.png files -# in the HTML output before the changes have effect. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax -# (see http://www.mathjax.org) which uses client side Javascript for the -# rendering instead of using prerendered bitmaps. Use this if you do not -# have LaTeX installed or if you want to formulas look prettier in the HTML -# output. When enabled you also need to install MathJax separately and -# configure the path to it using the MATHJAX_RELPATH option. - -USE_MATHJAX = NO - -# When MathJax is enabled you need to specify the location relative to the -# HTML output directory using the MATHJAX_RELPATH option. The destination -# directory should contain the MathJax.js script. For instance, if the mathjax -# directory is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing -# MathJax, but it is strongly recommended to install a local copy of MathJax -# before deployment. - -MATHJAX_RELPATH = http://www.mathjax.org/mathjax - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box -# for the HTML output. The underlying search engine uses javascript -# and DHTML and should work on any modern browser. Note that when using -# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets -# (GENERATE_DOCSET) there is already a search function so this one should -# typically be disabled. For large projects the javascript based search engine -# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. - -SEARCHENGINE = YES - -# When the SERVER_BASED_SEARCH tag is enabled the search engine will be -# implemented using a PHP enabled web server instead of at the web client -# using Javascript. Doxygen will generate the search PHP script and index -# file to put on the web server. The advantage of the server -# based approach is that it scales better to large projects and allows -# full text search. The disadvantages are that it is more difficult to setup -# and does not have live searching capabilities. - -SERVER_BASED_SEARCH = NO - -#--------------------------------------------------------------------------- -# 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 = NO - -# 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 - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. -# Note that when enabling USE_PDFLATEX this option is only used for -# generating bitmaps for formulas in the HTML output, but not in the -# Makefile that is written to the output directory. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# 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, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4 - -# 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 = YES - -# 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 = YES - -# 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 - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -# If LATEX_SOURCE_CODE is set to YES then doxygen will include -# source code with syntax highlighting in the LaTeX output. -# Note that which sources are shown also depends on other settings -# such as SOURCE_BROWSER. - -LATEX_SOURCE_CODE = 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 optimized 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 assignments. 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. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML 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 `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# 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 Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. -# This is useful -# if you want to understand what is going on. -# On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# 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_DEFINED 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. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. - -PREDEFINED = G4_USE_HBOOK - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF 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 that overrules the definition found in the source code. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all references to function-like macros -# that are alone on a line, have an all uppercase name, and do not end with a -# semicolon, because these will confuse the parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -# The geant4.tag file has to be downloaded from: -# http://www-geant4.kek.jp/Reference/"version number"/geant4.tag -# before generation of documentation -# -TAGFILES = geant4.tag=http://www-geant4.kek.jp/Reference/9.4.p02 - -# 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 also works with HAVE_DOT disabled, but it is recommended to -# install and use dot, since it yields more powerful graphs. - -CLASS_DIAGRAMS = YES - -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -MSCGEN_PATH = - -# 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 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 - -# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is -# allowed to run in parallel. When set to 0 (the default) doxygen will -# base this on the number of processors available in the system. You can set it -# explicitly to a value larger than 0 to get control over the balance -# between CPU load and processing speed. - -DOT_NUM_THREADS = 0 - -# By default doxygen will write a font called Helvetica to the output -# directory and reference it in all dot files that doxygen generates. -# When you want a differently looking font you can specify the font name -# using DOT_FONTNAME. You need to make sure dot is able to find the font, -# which can be done by putting it in a standard location or by setting the -# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory -# containing the font. - -DOT_FONTNAME = Helvetica - -# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. -# The default size is 10pt. - -DOT_FONTSIZE = 10 - -# By default doxygen will tell dot to use the output directory to look for the -# FreeSans.ttf font (which doxygen will put there itself). If you specify a -# different font using DOT_FONTNAME you can set the path where dot -# can find it using this tag. - -DOT_FONTPATH = - -# 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 the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies - -GROUP_GRAPHS = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# 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 CALL_GRAPH and HAVE_DOT options are set to YES then -# doxygen will generate a call dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable call graphs -# for selected functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then -# doxygen will generate a caller dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable caller -# graphs for selected functions only using the \callergraph command. - -CALLER_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will generate a graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. - -DIRECTORY_GRAPH = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, svg, gif or svg. -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# 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 in 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 MSCFILE_DIRS tag can be used to specify one or more directories that -# contain msc files that are included in the documentation (see the -# \mscfile command). - -MSCFILE_DIRS = - -# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of -# nodes that will be shown in the graph. If the number of nodes in a graph -# becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the -# number of direct children of the root node in a graph is already larger than -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. - -DOT_GRAPH_MAX_NODES = 50 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that the size of a graph can be further restricted by -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. - -MAX_DOT_GRAPH_DEPTH = 0 - -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not -# seem to support this out of the box. Warning: Depending on the platform used, -# enabling this option may lead to badly anti-aliased labels on the edges of -# a graph (i.e. they become hard to read). - -DOT_TRANSPARENT = NO - -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. - -DOT_MULTI_TARGETS = NO - -# 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 intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES diff --git a/examples/extended/errorpropagation/History b/examples/extended/errorpropagation/History index b3afca4255..bac0d319d1 100644 --- a/examples/extended/errorpropagation/History +++ b/examples/extended/errorpropagation/History @@ -5,58 +5,6 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! -## 2021-12-10 Ben Morgan (exerrprop-V11-00-00) -- Change to new Markdown History format - ---- - -# History entries prior to 11.0 - -May 24, 2021 B. Morgan (exerrprop-V10-07-00) -- Bump required CMake version range to 3.12...3.20, matching core Geant4 - -Nov 03, 2020 B.Morgan (exerrprop-V10-06-00) -- Support same CMake version range as core Geant4 - -Jun 13, 2018 G.Cosmo (exerrprop-V10-04-00) -- Use implicit destructor in ExErrorMagneticField. -- Updated README. - -Oct 16, 2014 I.Hrivnacova (exerrprop-V10-00-00) -- Fixed coding guidelines (long lines) in errprop.cc, ExErrorDetectorConstruction.cc - -Feb 13, 2013 I.Hrivnacova (exerrprop-V09-06-00) -- Applied coding guidelines (virtual keyword, data member initialization) - -Sep 4, 2012 I.Hrivnacova (exerrprop-V09-05-05) -- Adding explicit includes of G4SystemOfUnits.hh and G4PhysicalConstants.hh - where needed -- Replaced tabulators with space characters - -Sep 4, 2012 I.Hrivnacova (exerrprop-V09-05-04) -- Updated CMakeLists.txt: - adding copying macros (empty), install target and comment lines - -Jul 17, 2012 I.Hrivnacova (exerrprop-V09-05-03) -- Restored files descriptions and moved class descriptions in .hh - at the right place - -Jul 17, 2012 I.Hrivnacova (exerrprop-V09-05-02) -- Improved .README file - -Jul 6, 2012 P.Arce (exerrprop-V09-05-01) -- Reviewed examples according to coding guidelines - -Oct 3, 2011 G.Folger (exerrprop-V09-04-01) -- Fix one left old style G4Exception. - -Oct 3, 2011 G.Folger (exerrprop-V09-04-00) -- Fix gcc46 compilation warning in errprop.cc - -Mar 6, 2009 G.Barrand (exerrprop-V09-02-00) -- GNUmakefile: removed logic for setting AIDA with G4ANALYSIS_USE. - since it already handled in the internal configuration scripts. -- Replaced usare of 'uint' with 'size_t' in errprop.cc (G.Cosmo). - -May 28, 2007 P.Arce -- First version +## 2022-13-09 I. Hrivnacova (exErrorpropagation-V11-00-00) +- Introduced 'errorpropagation' category to avoid having the errProp + example directly in 'extended' category diff --git a/examples/extended/errorpropagation/README b/examples/extended/errorpropagation/README index d84b9b2844..1937054b0a 100644 --- a/examples/extended/errorpropagation/README +++ b/examples/extended/errorpropagation/README @@ -1,33 +1,11 @@ -This is an example illustrating the use of the error propagation utility. -A G4ErrorFreeTrajState is created to simulate a muon track of 20 GeV along the X axis. Then the track is propagated until the target is reached. + Geant4 extended examples - errorpropagation + ------------------------------------------- -The geometry is a simplified typical HEP detector: - An air beamline ( BEAM ) - An air central detector ( CDET ) - A copper calorimeter, divided in four ( ECAL ) - An aluminium calorimeter, divided in ten ( HCAL ) - An air muon detector ( MUON ) + Examples in this directory demonstrate the use of the error propagation utility. + Currently, only one example is provided: -It is inmersed in a magnetic field along the Z axis with default value -1 kilogauss. This value can be changed with the command "/exerror/setField. - - -The type of target can be chosen with the enviromental variable G4ERROR_TARGET: - - PLANE_SURFACE : use a G4ErrorPlaneSurfaceTarget perpendicular to X at (2241. mm, 0, 0) - CYL_SURFACE : use a G4ErrorCylSurfaceTarget parallel to Z of radius 2220 mm - VOLUME : use a G4ErrorGeomVolumeTarget with volume name "MUON" - TRKLEN : use a G4ErrorTrackLengthTarget with track length 2230 mm - - -The user may also choose if the propagation is done forwards (the natural way, loosing energy) or backwards (in opposite direction, gaining energy), with the enviromental variable G4ERROR_MODE: - - FORWARDS : propagate in the forward direction - BACKWARDS : propagate in the backward direction - - -There are also two modes of propagation, that can be chosen with the enviromental variable G4ERROR_PROP - - UNTIL_TARGET : propagate until target, all steps in one go - STEP_BY_STEP propagate until target, returning control to the user at each step +errProp +------- +This example demonstrates how to use the error propagation utility. diff --git a/examples/extended/errorpropagation/errProp/.README.txt b/examples/extended/errorpropagation/errProp/.README.txt new file mode 100644 index 0000000000..308016fd27 --- /dev/null +++ b/examples/extended/errorpropagation/errProp/.README.txt @@ -0,0 +1,37 @@ + +///\file "errorpropagation/errProp/.README.txt" +///\brief Example errProp README page + +/*! \page ExampleerrProp Example errProp + +This is an example illustrating the use of the error propagation utility. + +A G4ErrorFreeTrajState is created to simulate a muon track of 20 GeV along the X axis. Then the track is propagated until the target is reached. + +The geometry is a simplified typical HEP detector: + - An air beamline ( BEAM ) + - An air central detector ( CDET ) + - A copper calorimeter, divided in four ( ECAL ) + - An aluminium calorimeter, divided in ten ( HCAL ) + - An air muon detector ( MUON ) + +It is inmersed in a magnetic field along the Z axis with default value -1 kilogauss. This value can be changed with the command "/exerror/setField. + + +The type of target can be chosen with the enviromental variable G4ERROR_TARGET: + - PLANE_SURFACE : use a G4ErrorPlaneSurfaceTarget perpendicular to X at (2241. mm, 0, 0) + - CYL_SURFACE : use a G4ErrorCylSurfaceTarget parallel to Z of radius 2220 mm + - VOLUME : use a G4ErrorGeomVolumeTarget with volume name "MUON" + - TRKLEN : use a G4ErrorTrackLengthTarget with track length 2230 mm + + +The user may also choose if the propagation is done forwards (the natural way, loosing energy) or backwards (in opposite direction, gaining energy), with the enviromental variable G4ERROR_MODE: + - FORWARDS : propagate in the forward direction + - BACKWARDS : propagate in the backward direction + + +There are also two modes of propagation, that can be chosen with the enviromental variable G4ERROR_PROP + - UNTIL_TARGET : propagate until target, all steps in one go + - STEP_BY_STEP propagate until target, returning control to the user at each step + +*/ diff --git a/examples/extended/errorpropagation/errProp/CMakeLists.txt b/examples/extended/errorpropagation/errProp/CMakeLists.txt new file mode 100644 index 0000000000..c400ac6034 --- /dev/null +++ b/examples/extended/errorpropagation/errProp/CMakeLists.txt @@ -0,0 +1,58 @@ +#---------------------------------------------------------------------------- +# Setup the project +cmake_minimum_required(VERSION 3.16...3.21) +project(errProp) + +#---------------------------------------------------------------------------- +# Find Geant4 package, no UI and Vis drivers activated +# +find_package(Geant4 REQUIRED) + +#---------------------------------------------------------------------------- +# Setup Geant4 include directories and compile definitions +# +include(${Geant4_USE_FILE}) + + +#---------------------------------------------------------------------------- +# Locate sources and headers for this project +# +include_directories(${PROJECT_SOURCE_DIR}/include + ${Geant4_INCLUDE_DIR}) +file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) +file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) + +#---------------------------------------------------------------------------- +# Add the executable, and link it to the Geant4 libraries +# +add_executable(errProp errProp.cc ${sources} ${headers}) +target_link_libraries(errProp ${Geant4_LIBRARIES} ) + +#---------------------------------------------------------------------------- +# Copy all scripts to the build directory, i.e. the directory in which we +# build errorpropagation. This is so that we can run the executable directly because it +# relies on these scripts being in the current working directory. +# +set(errorpropagation_SCRIPTS + + ) + +foreach(_script ${errorpropagation_SCRIPTS}) + configure_file( + ${PROJECT_SOURCE_DIR}/${_script} + ${PROJECT_BINARY_DIR}/${_script} + COPYONLY + ) +endforeach() + +#---------------------------------------------------------------------------- +# Add program to the project targets +# (this avoids the need of typing the program name after make) +# +add_custom_target(errorpropagation DEPENDS errProp) + +#---------------------------------------------------------------------------- +# Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX +# +install(TARGETS errProp DESTINATION bin) + diff --git a/examples/extended/errorpropagation/GNUmakefile b/examples/extended/errorpropagation/errProp/GNUmakefile similarity index 96% rename from examples/extended/errorpropagation/GNUmakefile rename to examples/extended/errorpropagation/errProp/GNUmakefile index 13c183fc94..be3eaca019 100644 --- a/examples/extended/errorpropagation/GNUmakefile +++ b/examples/extended/errorpropagation/errProp/GNUmakefile @@ -2,7 +2,7 @@ # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- -name := errprop +name := errProp G4TARGET := $(name) G4EXLIB := true diff --git a/examples/extended/errorpropagation/errProp/History b/examples/extended/errorpropagation/errProp/History new file mode 100644 index 0000000000..2584713179 --- /dev/null +++ b/examples/extended/errorpropagation/errProp/History @@ -0,0 +1,69 @@ +# Example errorpropagation History + +See `CONTRIBUTING.rst` for details of **required** info/format for each entry, +which **must** added in reverse chronological order (newest at the top). It must **not** +be used as a substitute for writing good git commit messages! + + +## 2022-11-04 I. Hrivnacova (exerrprop-V11-00-02) +- Fixed Doxygen file descriptions + +## 2022-13-09 I. Hrivnacova (exerrprop-V11-00-01) +- Moved the example in the new errProp directory and renamed the executable + from errprop in errProp. + +## 2021-12-10 Ben Morgan (exerrprop-V11-00-00) +- Change to new Markdown History format + +--- + +# History entries prior to 11.0 + +May 24, 2021 B. Morgan (exerrprop-V10-07-00) +- Bump required CMake version range to 3.12...3.20, matching core Geant4 + +Nov 03, 2020 B.Morgan (exerrprop-V10-06-00) +- Support same CMake version range as core Geant4 + +Jun 13, 2018 G.Cosmo (exerrprop-V10-04-00) +- Use implicit destructor in ExErrorMagneticField. +- Updated README. + +Oct 16, 2014 I.Hrivnacova (exerrprop-V10-00-00) +- Fixed coding guidelines (long lines) in errprop.cc, ExErrorDetectorConstruction.cc + +Feb 13, 2013 I.Hrivnacova (exerrprop-V09-06-00) +- Applied coding guidelines (virtual keyword, data member initialization) + +Sep 4, 2012 I.Hrivnacova (exerrprop-V09-05-05) +- Adding explicit includes of G4SystemOfUnits.hh and G4PhysicalConstants.hh + where needed +- Replaced tabulators with space characters + +Sep 4, 2012 I.Hrivnacova (exerrprop-V09-05-04) +- Updated CMakeLists.txt: + adding copying macros (empty), install target and comment lines + +Jul 17, 2012 I.Hrivnacova (exerrprop-V09-05-03) +- Restored files descriptions and moved class descriptions in .hh + at the right place + +Jul 17, 2012 I.Hrivnacova (exerrprop-V09-05-02) +- Improved .README file + +Jul 6, 2012 P.Arce (exerrprop-V09-05-01) +- Reviewed examples according to coding guidelines + +Oct 3, 2011 G.Folger (exerrprop-V09-04-01) +- Fix one left old style G4Exception. + +Oct 3, 2011 G.Folger (exerrprop-V09-04-00) +- Fix gcc46 compilation warning in errprop.cc + +Mar 6, 2009 G.Barrand (exerrprop-V09-02-00) +- GNUmakefile: removed logic for setting AIDA with G4ANALYSIS_USE. + since it already handled in the internal configuration scripts. +- Replaced usare of 'uint' with 'size_t' in errprop.cc (G.Cosmo). + +May 28, 2007 P.Arce +- First version diff --git a/examples/extended/errorpropagation/errProp/README b/examples/extended/errorpropagation/errProp/README new file mode 100644 index 0000000000..d84b9b2844 --- /dev/null +++ b/examples/extended/errorpropagation/errProp/README @@ -0,0 +1,33 @@ +This is an example illustrating the use of the error propagation utility. + +A G4ErrorFreeTrajState is created to simulate a muon track of 20 GeV along the X axis. Then the track is propagated until the target is reached. + +The geometry is a simplified typical HEP detector: + An air beamline ( BEAM ) + An air central detector ( CDET ) + A copper calorimeter, divided in four ( ECAL ) + An aluminium calorimeter, divided in ten ( HCAL ) + An air muon detector ( MUON ) + +It is inmersed in a magnetic field along the Z axis with default value -1 kilogauss. This value can be changed with the command "/exerror/setField. + + +The type of target can be chosen with the enviromental variable G4ERROR_TARGET: + + PLANE_SURFACE : use a G4ErrorPlaneSurfaceTarget perpendicular to X at (2241. mm, 0, 0) + CYL_SURFACE : use a G4ErrorCylSurfaceTarget parallel to Z of radius 2220 mm + VOLUME : use a G4ErrorGeomVolumeTarget with volume name "MUON" + TRKLEN : use a G4ErrorTrackLengthTarget with track length 2230 mm + + +The user may also choose if the propagation is done forwards (the natural way, loosing energy) or backwards (in opposite direction, gaining energy), with the enviromental variable G4ERROR_MODE: + + FORWARDS : propagate in the forward direction + BACKWARDS : propagate in the backward direction + + +There are also two modes of propagation, that can be chosen with the enviromental variable G4ERROR_PROP + + UNTIL_TARGET : propagate until target, all steps in one go + STEP_BY_STEP propagate until target, returning control to the user at each step + diff --git a/examples/extended/errorpropagation/errprop.cc b/examples/extended/errorpropagation/errProp/errProp.cc similarity index 99% rename from examples/extended/errorpropagation/errprop.cc rename to examples/extended/errorpropagation/errProp/errProp.cc index d1476c2cf3..cc5888bdc0 100644 --- a/examples/extended/errorpropagation/errprop.cc +++ b/examples/extended/errorpropagation/errProp/errProp.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file errorpropagation/errprop.cc +/// \file errProp/errProp.cc /// \brief Main program of the errorpropagation example // // ------------------------------------------------------------ diff --git a/examples/extended/errorpropagation/errorprop.out b/examples/extended/errorpropagation/errProp/errProp.out similarity index 96% rename from examples/extended/errorpropagation/errorprop.out rename to examples/extended/errorpropagation/errProp/errProp.out index 4009c58896..6a83016ac8 100644 --- a/examples/extended/errorpropagation/errorprop.out +++ b/examples/extended/errorpropagation/errProp/errProp.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -18,7 +18,7 @@ WWW : http://geant4.org/ ************************************************************** - creating G4RunManagerKernel 0x1907420 + creating G4RunManagerKernel 0x24ca110 The materials defined are : @@ -88,20 +88,16 @@ e+ e- gamma geantino mu+ mu- pi+ pi- proton Current application state is PreInit Warning : Geant4 kernel is not Init state : Assuming Init state. physicsList->Construct() start. -G4Transportation: Current values for thresholds related to the killing of looping tracks: - Warning Energy = 100 MeV ( below this tracks are killed without warning ) - Important Energy = 250 ( above this tracks are given multiple chances ) - Extra Trials = 10 'important' tracks, i.e. those above 'important' energy G4Transportation constructor> set fShortStepOptimisation to false -0x1b24800G4ErrorPhysicsList:: particle process manager e+ = 0x1b29510 -0x1b24660G4ErrorPhysicsList:: particle process manager e- = 0x1b2dad0 -0x1b244c0G4ErrorPhysicsList:: particle process manager gamma = 0x1b2dc00 -0x1b25b40G4ErrorPhysicsList:: particle process manager geantino = 0x1b2de50 -0x1b249a0G4ErrorPhysicsList:: particle process manager mu+ = 0x1b2e0a0 -0x1b24c90G4ErrorPhysicsList:: particle process manager mu- = 0x1b2e2f0 -0x1b250a0G4ErrorPhysicsList:: particle process manager pi+ = 0x1b2e540 -0x1b254f0G4ErrorPhysicsList:: particle process manager pi- = 0x1b2e790 -0x1b25910G4ErrorPhysicsList:: particle process manager proton = 0x1b2e9e0 +0x277dfe0G4ErrorPhysicsList:: particle process manager e+ = 0x2782cf0 +0x277de40G4ErrorPhysicsList:: particle process manager e- = 0x27872b0 +0x277dca0G4ErrorPhysicsList:: particle process manager gamma = 0x27873e0 +0x277f320G4ErrorPhysicsList:: particle process manager geantino = 0x2787630 +0x277e180G4ErrorPhysicsList:: particle process manager mu+ = 0x2787880 +0x277e470G4ErrorPhysicsList:: particle process manager mu- = 0x2787ad0 +0x277e880G4ErrorPhysicsList:: particle process manager pi+ = 0x2787d20 +0x277ecd0G4ErrorPhysicsList:: particle process manager pi- = 0x2787f70 +0x277f0f0G4ErrorPhysicsList:: particle process manager proton = 0x27881c0 physicsList->CheckParticleList() start. physicsList->setCut() start. ======================================================================= @@ -113,6 +109,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -140,7 +137,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 diff --git a/examples/extended/errorpropagation/include/ExErrorDetectorConstruction.hh b/examples/extended/errorpropagation/errProp/include/ExErrorDetectorConstruction.hh similarity index 97% rename from examples/extended/errorpropagation/include/ExErrorDetectorConstruction.hh rename to examples/extended/errorpropagation/errProp/include/ExErrorDetectorConstruction.hh index 3163674d40..52fc251311 100644 --- a/examples/extended/errorpropagation/include/ExErrorDetectorConstruction.hh +++ b/examples/extended/errorpropagation/errProp/include/ExErrorDetectorConstruction.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file errorpropagation/include/ExErrorDetectorConstruction.hh +/// \file errProp/include/ExErrorDetectorConstruction.hh /// \brief Definition of the ExErrorDetectorConstruction class // diff --git a/examples/extended/errorpropagation/include/ExErrorDetectorMessenger.hh b/examples/extended/errorpropagation/errProp/include/ExErrorDetectorMessenger.hh similarity index 97% rename from examples/extended/errorpropagation/include/ExErrorDetectorMessenger.hh rename to examples/extended/errorpropagation/errProp/include/ExErrorDetectorMessenger.hh index bfbfe2466f..334b38db00 100644 --- a/examples/extended/errorpropagation/include/ExErrorDetectorMessenger.hh +++ b/examples/extended/errorpropagation/errProp/include/ExErrorDetectorMessenger.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file errorpropagation/include/ExErrorDetectorMessenger.hh +/// \file errProp/include/ExErrorDetectorMessenger.hh /// \brief Definition of the ExErrorDetectorMessenger class // diff --git a/examples/extended/errorpropagation/include/ExErrorMagneticField.hh b/examples/extended/errorpropagation/errProp/include/ExErrorMagneticField.hh similarity index 97% rename from examples/extended/errorpropagation/include/ExErrorMagneticField.hh rename to examples/extended/errorpropagation/errProp/include/ExErrorMagneticField.hh index 03cab355c8..5997907b93 100644 --- a/examples/extended/errorpropagation/include/ExErrorMagneticField.hh +++ b/examples/extended/errorpropagation/errProp/include/ExErrorMagneticField.hh @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file errorpropagation/include/ExErrorMagneticField.hh +/// \file errProp/include/ExErrorMagneticField.hh /// \brief Definition of the ExErrorMagneticField class // diff --git a/examples/extended/errorpropagation/src/ExErrorDetectorConstruction.cc b/examples/extended/errorpropagation/errProp/src/ExErrorDetectorConstruction.cc similarity index 99% rename from examples/extended/errorpropagation/src/ExErrorDetectorConstruction.cc rename to examples/extended/errorpropagation/errProp/src/ExErrorDetectorConstruction.cc index aa6b748d0c..77dd706440 100644 --- a/examples/extended/errorpropagation/src/ExErrorDetectorConstruction.cc +++ b/examples/extended/errorpropagation/errProp/src/ExErrorDetectorConstruction.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ExErrorDetectorConstruction.cc +/// \file errProp/src/ExErrorDetectorConstruction.cc /// \brief Implementation of the ExErrorDetectorConstruction class // diff --git a/examples/extended/errorpropagation/src/ExErrorDetectorMessenger.cc b/examples/extended/errorpropagation/errProp/src/ExErrorDetectorMessenger.cc similarity index 98% rename from examples/extended/errorpropagation/src/ExErrorDetectorMessenger.cc rename to examples/extended/errorpropagation/errProp/src/ExErrorDetectorMessenger.cc index 152a797bd0..433d1bdeda 100644 --- a/examples/extended/errorpropagation/src/ExErrorDetectorMessenger.cc +++ b/examples/extended/errorpropagation/errProp/src/ExErrorDetectorMessenger.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ExErrorDetectorMessenger.cc +/// \file errProp/src/ExErrorDetectorMessenger.cc /// \brief Implementation of the ExErrorDetectorMessenger class // diff --git a/examples/extended/errorpropagation/src/ExErrorMagneticField.cc b/examples/extended/errorpropagation/errProp/src/ExErrorMagneticField.cc similarity index 98% rename from examples/extended/errorpropagation/src/ExErrorMagneticField.cc rename to examples/extended/errorpropagation/errProp/src/ExErrorMagneticField.cc index fba73a825b..0b3db41443 100644 --- a/examples/extended/errorpropagation/src/ExErrorMagneticField.cc +++ b/examples/extended/errorpropagation/errProp/src/ExErrorMagneticField.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file ExErrorMagneticField.cc +/// \file errProp/src/ExErrorMagneticField.cc /// \brief Implementation of the ExErrorMagneticField class // diff --git a/examples/extended/eventgenerator/exgps/exgps_batch.out b/examples/extended/eventgenerator/exgps/exgps_batch.out index b27ae4bf7c..339b05c70f 100644 --- a/examples/extended/eventgenerator/exgps/exgps_batch.out +++ b/examples/extended/eventgenerator/exgps/exgps_batch.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -19,7 +19,38 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo WWW : http://geant4.org/ ************************************************************** -Set file name: exgps + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of x bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of x (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of number of y bins: nbins <= 0. +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : Analysis_W001 + issued by : G4Analysis::CheckDimension +Illegal value of y (min >= max) +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + ### Run 0 starts. ... set ntuple merging row mode : row-wise - done ... create file : exgps.root - done diff --git a/examples/extended/eventgenerator/particleGun/particleGun_run1.out b/examples/extended/eventgenerator/particleGun/particleGun_run1.out index f944b3b2f7..68229fdbcf 100644 --- a/examples/extended/eventgenerator/particleGun/particleGun_run1.out +++ b/examples/extended/eventgenerator/particleGun/particleGun_run1.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -67,7 +67,7 @@ Step# X Y Z KineE dEStep StepLeng T Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000378s Sys=0.000000s + User=0.000000s Real=0.000418s Sys=0.000000s # /tracking/verbose 0 /run/beamOn 5 @@ -87,7 +87,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 5 - User=0.000000s Real=0.000041s Sys=0.000000s + User=0.000000s Real=0.000035s Sys=0.000000s G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 9 of which, static: 0 diff --git a/examples/extended/eventgenerator/particleGun/particleGun_run2.out b/examples/extended/eventgenerator/particleGun/particleGun_run2.out index 8dad3a0f03..840111330f 100644 --- a/examples/extended/eventgenerator/particleGun/particleGun_run2.out +++ b/examples/extended/eventgenerator/particleGun/particleGun_run2.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -26,7 +26,6 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo /gunExample/selectGunAction 2 # /analysis/setFileName run2 -Set file name: run2 /analysis/h1/set 1 100 0. 200. keV # /run/beamOn 100000 @@ -50,7 +49,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100000 - User=0.160000s Real=0.162199s Sys=0.000000s + User=0.220000s Real=0.218705s Sys=0.000000s ... write file : run2.root - done ... close file : run2.root - done G4 kernel has come to Quit state. diff --git a/examples/extended/eventgenerator/particleGun/particleGun_run3.out b/examples/extended/eventgenerator/particleGun/particleGun_run3.out index 5ee6834ff4..4792a175c1 100644 --- a/examples/extended/eventgenerator/particleGun/particleGun_run3.out +++ b/examples/extended/eventgenerator/particleGun/particleGun_run3.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -26,7 +26,6 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo /gunExample/selectGunAction 3 # /analysis/setFileName run3 -Set file name: run3 /analysis/h1/set 5 110 -1.1 1.1 none /analysis/h1/set 6 130 -15. 375 deg # @@ -51,7 +50,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100000 - User=0.180000s Real=0.183169s Sys=0.010000s + User=0.250000s Real=0.255834s Sys=0.000000s ... write file : run3.root - done ... close file : run3.root - done G4 kernel has come to Quit state. diff --git a/examples/extended/eventgenerator/particleGun/particleGun_run4.out b/examples/extended/eventgenerator/particleGun/particleGun_run4.out index 9d846f7d62..075d7aa491 100644 --- a/examples/extended/eventgenerator/particleGun/particleGun_run4.out +++ b/examples/extended/eventgenerator/particleGun/particleGun_run4.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -26,7 +26,6 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo /gunExample/selectGunAction 4 # /analysis/setFileName run4 -Set file name: run4 /analysis/h1/set 2 100 0. 10. mm /analysis/h1/set 3 110 -1.1 1.1 none /analysis/h1/set 4 130 -15. 375 deg @@ -66,7 +65,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000000 - User=2.650000s Real=2.687306s Sys=0.000000s + User=3.700000s Real=3.724015s Sys=0.000000s ... write file : run4.root - done ... close file : run4.root - done G4 kernel has come to Quit state. diff --git a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt index 64c9619548..c9a6a46872 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt +++ b/examples/extended/eventgenerator/pythia/decayer6/CMakeLists.txt @@ -36,8 +36,11 @@ file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc ${PROJECT_SOURCE_DIR}/src/*.c) file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) #---------------------------------------------------------------------------- -# Add common subdirectory +# Add common subdirectory and +# - disable building examples in common +# - add a unique prefix to the common library built in this example # +set (EXAMPLES_COMMON OFF) set (common_prefix decayer6_) add_subdirectory(common) diff --git a/examples/extended/eventgenerator/pythia/decayer6/History b/examples/extended/eventgenerator/pythia/decayer6/History index 154dfe6524..4b32c20a47 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/History +++ b/examples/extended/eventgenerator/pythia/decayer6/History @@ -5,6 +5,16 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-07 I. Hrivnacova (p6decayer-V11-00-02) +- Updated common directory (excommon-V11-00-01) +- Fixed P6DExtDecayerPhysics compilation + +## 2022-10-26 I. Hrivnacova (p6decayer-V11-00-01) +- P6DExtDecayerPhysics.cc: + Make sure that the ext decayer is set to G4Decay process only once + to avoid potential misleading. + (Inspired by M. Asai update in p8decayer-V11-00-01.) + ## 2021-12-10 Ben Morgan (p6decayer-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/.README.txt b/examples/extended/eventgenerator/pythia/decayer6/common/.README.txt index a4fb856d0b..a661acbd0e 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/.README.txt +++ b/examples/extended/eventgenerator/pythia/decayer6/common/.README.txt @@ -4,21 +4,30 @@ /*! \page Examples_common Category "common" - In order to reduce code duplication and to reduce the number of variants of - the code of same kind, we define a set of common classes which - can be reused in "feature" examples demonstrating just a particular feature. - This module may be enhanced in future. Currently it provides - the following sets of classes: + This example includes a set of classes independent on each other which + can be reused in "feature" examples demonstrating just a particular feature + or users applications. + + It provides the following sets of classes: - Detector construction classes - two simple detector construction classes with a messenger - + - Physics list classes - GeantinoPhysicsList - physics list with geantino and chargedgeantino only - + - Primary generator classes - two simple primary generator classes (with G4ParticleGun and G4ParticleGeneralSource) + These classes can be tested with the following programs: + - testCommon.cc - only instantiates all classes + - exampleCommonNoVis.cc - Geant4 application without visualization, that can be run + both interactively or in batch (with the run.mac macro) + - exampleCommonNoVis.cc - Geant4 application with visualization, that can be run + both interactively or in batch (with the run.mac macro) + + Building examples programs can be disabled with the CMake option: -DEXAMPLES_COMMON=OFF. + */ diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/CMakeLists.txt b/examples/extended/eventgenerator/pythia/decayer6/common/CMakeLists.txt index 2904865dc0..1a8641285d 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/CMakeLists.txt +++ b/examples/extended/eventgenerator/pythia/decayer6/common/CMakeLists.txt @@ -4,9 +4,21 @@ cmake_minimum_required(VERSION 3.16...3.21) project(${common_prefix}common) #---------------------------------------------------------------------------- -# Find Geant4 package, no UI and Vis drivers activated +# Find Geant4 package, activating all available UI and Vis drivers by default +# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui +# to build a batch mode only executable # -find_package(Geant4 REQUIRED) +option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON) +if(WITH_GEANT4_UIVIS) + find_package(Geant4 REQUIRED ui_all vis_all) +else() + find_package(Geant4 REQUIRED) +endif() + +#---------------------------------------------------------------------------- +# Option to build examples in addition to test +# +option(COMMON_EXAMPLES "Activate building example executables" ON) #---------------------------------------------------------------------------- # Setup Geant4 include directories and compile definitions @@ -16,7 +28,7 @@ include(${Geant4_USE_FILE}) #---------------------------------------------------------------------------- # Locate sources and headers for this project # -include_directories(${PROJECT_SOURCE_DIR}/include +include_directories(${PROJECT_SOURCE_DIR}/include ${Geant4_INCLUDE_DIR}) file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) @@ -28,26 +40,36 @@ add_library(${common_prefix}common ${sources} ${headers}) target_link_libraries(${common_prefix}common ${Geant4_LIBRARIES} ) #---------------------------------------------------------------------------- -# Add the executable, and link it to the Geant4 libraries and common library +# Add the test executable, and link it to the Geant4 libraries and common library # add_executable(${common_prefix}testCommon testCommon.cc ) target_link_libraries(${common_prefix}testCommon ${common_prefix}common ${Geant4_LIBRARIES}) +#---------------------------------------------------------------------------- +# Optionally, add the example executables, and link it to the Geant4 libraries and common library +# +if(COMMON_EXAMPLES) + add_executable(exampleCommon exampleCommon.cc ) + target_link_libraries(exampleCommon ${common_prefix}common ${Geant4_LIBRARIES}) + add_executable(exampleCommonNoVis exampleCommonNoVis.cc ) + target_link_libraries(exampleCommonNoVis ${common_prefix}common ${Geant4_LIBRARIES}) +endif(COMMON_EXAMPLES) + #---------------------------------------------------------------------------- # Copy all scripts to the build directory, i.e. the directory in which we # build detectorConstruction. This is so that we can run the executable directly because it # relies on these scripts being in the current working directory. # set(detectorConstruction_SCRIPTS - - ) + init.mac init_vis.mac run.mac vis.mac +) foreach(_script ${detectorConstruction_SCRIPTS}) configure_file( ${PROJECT_SOURCE_DIR}/${_script} ${PROJECT_BINARY_DIR}/${_script} COPYONLY - ) + ) endforeach() #---------------------------------------------------------------------------- @@ -55,4 +77,8 @@ endforeach() # and the library to 'lib' directory under CMAKE_INSTALL_PREFIX # install(TARGETS ${common_prefix}testCommon DESTINATION bin) +if (COMMON_EXAMPLES) + install(TARGETS exampleCommon DESTINATION bin) + install(TARGETS exampleCommonNoVis DESTINATION bin) +endif(COMMON_EXAMPLES) install(TARGETS ${common_prefix}common DESTINATION lib) diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/History b/examples/extended/eventgenerator/pythia/decayer6/common/History index 2f056c6ffa..1227c7745a 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/History +++ b/examples/extended/eventgenerator/pythia/decayer6/common/History @@ -5,6 +5,15 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-07 I. Hrivnacova (excommon-V11-00-01) +New coding guidelines, added tests: +- Added exampleCommon.cc and exampleCommonNoVis.cc +- Added namespace Common +- Override keywords +- Data members initialization in .hh +- Updated README files +- Removed trailing whitespaces + ## 2021-12-10 Ben Morgan (excommon-V11-00-00) - Change to new Markdown History format @@ -12,6 +21,12 @@ be used as a substitute for writing good git commit messages! # History entries prior to 11.0 +24/05/21 B. Morgan (excommon-V10-07-00) +- Bump required CMake version range to 3.12...3.20, matching core Geant4 + +03/11/20 B. Morgan (excommon-V10-06-00) +- Support same CMake version range as core Geant4 + 29/09/17 I. Hrivnacova (excommon-V10-03-00,01) - Removed generic class names prefix (ExG4) and introduced a meaningful one when appropriate @@ -26,7 +41,7 @@ be used as a substitute for writing good git commit messages! - Fix for Doxygen documentation 09/06/15 I. Hrivnacova (excommon-V10-01-00) -- Added a client-specific prefix to common library and test +- Added a client-specific prefix to common library and test to avoid name clashes when building all extended examples at once 06/11/14 I. Hrivnacova (excommon-V10-00-06) @@ -48,18 +63,18 @@ be used as a substitute for writing good git commit messages! 04/11/14 I. Hrivnacova (excommon-V10-00-01) - Modifications to facilitate use of common directory via svn:externals: merging user classes in the top directoy (include and src), - added testCommon.cc for all classes altogether and + added testCommon.cc for all classes altogether and added building common library 28/05/14 I. Hrivnacova (excommon-V10-00-00) - Removed fPrintModulo from ExG4EventAction01 and fSetPrintModuloCmd from ExG4EventAction01Messenger, now obsolete. -- Fixed long lines, separators in userActions classes +- Fixed long lines, separators in userActions classes 28/02/13 I. Hrivnacova (excommon-V09-06-00) - When building materials with NistManager - do not set fromIsotopes argument (which was set to false), + do not set fromIsotopes argument (which was set to false), as since 9.6 all materials have to be built from isotopes. Thanks to V. Ivantchenko for pointing at this. diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/README b/examples/extended/eventgenerator/pythia/decayer6/common/README index 3da6d98573..7e2ef36e96 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/README +++ b/examples/extended/eventgenerator/pythia/decayer6/common/README @@ -7,20 +7,28 @@ Common Classes for Extended Examples ------------------------------------- - In order to reduce code duplication and to reduce the number of variants of - the code of same kind, we define a set of common classes which - can be reused in "feature" examples demonstrating just a particular feature. - This module may be enhanced in future. Currently it provides - the following sets of classes: + This example includes a set of classes independent on each other which + can be reused in "feature" examples demonstrating just a particular feature + or users applications. + + It provides the following sets of classes: - Detector construction classes - two simple detector construction classes with a messenger - + - Physics list classes - GeantinoPhysicsList - physics list with geantino and chargedgeantino only - + - Primary generator classes - two simple primary generator classes (with G4ParticleGun and G4ParticleGeneralSource) + These classes can be tested with the following programs: + - testCommon.cc - only instantiates all classes + - exampleCommonNoVis.cc - Geant4 application without visualization, that can be run + both interactively or in batch (with the run.mac macro) + - exampleCommonNoVis.cc - Geant4 application with visualization, that can be run + both interactively or in batch (with the run.mac macro) + + Building examples programs can be disabled with the CMake option: -DEXAMPLES_COMMON=OFF. diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/exampleCommon.cc b/examples/extended/eventgenerator/pythia/decayer6/common/exampleCommon.cc new file mode 100644 index 0000000000..4497d91afe --- /dev/null +++ b/examples/extended/eventgenerator/pythia/decayer6/common/exampleCommon.cc @@ -0,0 +1,89 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +/// \file exampleCommon.cc +/// \brief Main program of the Common example + +#include "DetectorConstruction.hh" +#include "GeantinoPhysicsList.hh" +#include "GpsPrimaryGeneratorAction.hh" + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIExecutive.hh" +#include "G4VisExecutive.hh" + +using namespace Common; + +int main(int argc,char** argv) +{ + // Detect interactive mode (if no arguments) and define UI session + // + G4UIExecutive* ui = nullptr; + if ( argc == 1 ) { ui = new G4UIExecutive(argc, argv); } + + // Construct the default run manager + G4RunManager* runManager = new G4RunManager; + + // Set mandatory initialization classes + runManager->SetUserInitialization(new DetectorConstruction); + runManager->SetUserInitialization(new GeantinoPhysicsList); + + // Set mandatory user action class + runManager->SetUserAction(new GpsPrimaryGeneratorAction); + + // Initialize visualization + // + G4VisManager* visManager = new G4VisExecutive; + // G4VisExecutive can take a verbosity argument - see /vis/verbose guidance. + // G4VisManager* visManager = new G4VisExecutive("Quiet"); + visManager->Initialize(); + + // Get the pointer to the User Interface manager + G4UImanager* UImanager = G4UImanager::GetUIpointer(); + + // Process macro or start UI session + // + if ( ! ui ) { + // batch mode + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UImanager->ApplyCommand(command+fileName); + } + else { + // interactive mode + UImanager->ApplyCommand("/control/execute init_vis.mac"); + ui->SessionStart(); + delete ui; + } + + // Job termination + // Free the store: user actions, physics_list and detector_description are + // owned and deleted by the run manager, so they should not be deleted + // in the main() program ! + delete visManager; + delete runManager; +} diff --git a/environments/g4py/tests/g4pytest/ExN01geom/pyExN01geom.cc b/examples/extended/eventgenerator/pythia/decayer6/common/exampleCommonNoVis.cc similarity index 53% rename from environments/g4py/tests/g4pytest/ExN01geom/pyExN01geom.cc rename to examples/extended/eventgenerator/pythia/decayer6/common/exampleCommonNoVis.cc index ddf290ec23..e2e2f8233a 100644 --- a/environments/g4py/tests/g4pytest/ExN01geom/pyExN01geom.cc +++ b/examples/extended/eventgenerator/pythia/decayer6/common/exampleCommonNoVis.cc @@ -23,49 +23,58 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// pyExN01geom.cc // -// [Qgeom] -// a site-module of Geant4Py -// -// geometry presented in ExN01 of Geant4 example -// -// 2005 Q -// ==================================================================== -#include +/// \file exampleCommonNoVis.cc +/// \brief Main program of the Common example without visualization + +#include "DetectorConstruction.hh" +#include "GeantinoPhysicsList.hh" +#include "GpsPrimaryGeneratorAction.hh" + #include "G4RunManager.hh" -#include "ExN01DetectorConstruction.hh" +#include "G4UImanager.hh" +#include "G4UIExecutive.hh" -using namespace boost::python; +using namespace Common; -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyExN03geom { - -void Construct() +int main(int argc,char** argv) { - G4RunManager* runMgr= G4RunManager::GetRunManager(); - runMgr-> SetUserInitialization(new ExN01DetectorConstruction); + // Detect interactive mode (if no arguments) and define UI session + // + G4UIExecutive* ui = nullptr; + if ( argc == 1 ) { ui = new G4UIExecutive(argc, argv); } + + // Construct the default run manager + G4RunManager* runManager = new G4RunManager; + + // Set mandatory initialization classes + runManager->SetUserInitialization(new DetectorConstruction); + runManager->SetUserInitialization(new GeantinoPhysicsList); + + // Set mandatory user action class + runManager->SetUserAction(new GpsPrimaryGeneratorAction); + + // Get the pointer to the User Interface manager + G4UImanager* UImanager = G4UImanager::GetUIpointer(); + + // Process macro or start UI session + // + if ( ! ui ) { + // batch mode + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UImanager->ApplyCommand(command+fileName); + } + else { + // interactive mode + UImanager->ApplyCommand("/control/execute init.mac"); + ui->SessionStart(); + delete ui; + } + + // Job termination + // Free the store: user actions, physics_list and detector_description are + // owned and deleted by the run manager, so they should not be deleted + // in the main() program ! + delete runManager; } - -} - -using namespace pyExN03geom; - -// ==================================================================== -// Expose to Python -// ==================================================================== - -BOOST_PYTHON_MODULE(_ExN01geom) { - - class_ > - ("ExN01DetectorConstruction", "ExN01 detector") - ; - - // --- - def("Construct", Construct); -} - diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/include/DetectorConstruction.hh b/examples/extended/eventgenerator/pythia/decayer6/common/include/DetectorConstruction.hh index a84899b411..19677a4148 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/include/DetectorConstruction.hh +++ b/examples/extended/eventgenerator/pythia/decayer6/common/include/DetectorConstruction.hh @@ -23,9 +23,9 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -/// \file DetectorConstruction.hh -/// \brief Definition of the DetectorConstruction class +// +/// \file common/include/DetectorConstruction.hh +/// \brief Definition of the Common::DetectorConstruction class #ifndef DetectorConstruction_h #define DetectorConstruction_h 1 @@ -40,40 +40,45 @@ class G4GenericMessenger; /// Simple detector construction with a box volume placed in a world +namespace Common +{ + class DetectorConstruction : public G4VUserDetectorConstruction { public: DetectorConstruction( const G4String& boxMaterialName = "G4_AIR", - G4double boxHx = 40*CLHEP::cm, - G4double boxHy = 40*CLHEP::cm, + G4double boxHx = 40*CLHEP::cm, + G4double boxHy = 40*CLHEP::cm, G4double boxHz = 40*CLHEP::cm, const G4String& worldMaterialName = "G4_AIR", G4double worldSizeFactor = 1.25); - ~DetectorConstruction(); + ~DetectorConstruction() override; public: - // methods from base class - virtual G4VPhysicalVolume* Construct(); + // methods from base class + G4VPhysicalVolume* Construct() override; // set methods void SetBoxMaterial(const G4String& materialName); void SetWorldMaterial(const G4String& materialName); void SetBoxDimensions(G4ThreeVector dimensions); void SetWorldSizeFactor(G4double factor); - + private: void DefineCommands(); - G4GenericMessenger* fMessenger; + G4GenericMessenger* fMessenger = nullptr; G4String fBoxMaterialName; G4String fWorldMaterialName; G4ThreeVector fBoxDimensions; - G4double fWorldSizeFactor; - G4LogicalVolume* fBoxVolume; - G4LogicalVolume* fWorldVolume; + G4double fWorldSizeFactor = 0.; + G4LogicalVolume* fBoxVolume = nullptr; + G4LogicalVolume* fWorldVolume = nullptr; }; +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/include/DetectorConstruction0.hh b/examples/extended/eventgenerator/pythia/decayer6/common/include/DetectorConstruction0.hh index 9746272dde..049847dd82 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/include/DetectorConstruction0.hh +++ b/examples/extended/eventgenerator/pythia/decayer6/common/include/DetectorConstruction0.hh @@ -23,9 +23,9 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -/// \file DetectorConstruction0.hh -/// \brief Definition of the DetectorConstruction0 class +// +/// \file common/include/DetectorConstruction0.hh +/// \brief Definition of the Common::DetectorConstruction0 class #ifndef DetectorConstruction0_h #define DetectorConstruction0_h 1 @@ -40,33 +40,38 @@ class G4GenericMessenger; /// Simple detector construction with only a world volume +namespace Common +{ + class DetectorConstruction0 : public G4VUserDetectorConstruction { public: DetectorConstruction0( const G4String& materialName = "G4_AIR", - G4double hx = 50*CLHEP::cm, - G4double hy = 50*CLHEP::cm, + G4double hx = 50*CLHEP::cm, + G4double hy = 50*CLHEP::cm, G4double hz = 50*CLHEP::cm); - ~DetectorConstruction0(); + ~DetectorConstruction0() override; public: - // methods from base class - virtual G4VPhysicalVolume* Construct(); + // methods from base class + G4VPhysicalVolume* Construct() override; // set methods void SetMaterial(const G4String& materialName); void SetDimensions(G4ThreeVector dimensions); - + private: void DefineCommands(); - G4GenericMessenger* fMessenger; + G4GenericMessenger* fMessenger = nullptr; G4String fMaterialName; G4ThreeVector fDimensions; - G4LogicalVolume* fWorldVolume; + G4LogicalVolume* fWorldVolume = nullptr; }; +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/include/GeantinoPhysicsList.hh b/examples/extended/eventgenerator/pythia/decayer6/common/include/GeantinoPhysicsList.hh index e0522aa41d..487f6ac651 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/include/GeantinoPhysicsList.hh +++ b/examples/extended/eventgenerator/pythia/decayer6/common/include/GeantinoPhysicsList.hh @@ -23,9 +23,9 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -/// \file GeantinoPhysicsList.hh -/// \brief Definition of the GeantinoPhysicsList class +// +/// \file common/include/GeantinoPhysicsList.hh +/// \brief Definition of the Common::GeantinoPhysicsList class #ifndef GeantinoPhysicsList_h #define GeantinoPhysicsList_h 1 @@ -34,17 +34,22 @@ /// Physics list with geantino and charged geantino only +namespace Common +{ + class GeantinoPhysicsList: public G4VUserPhysicsList { public: GeantinoPhysicsList(); - ~GeantinoPhysicsList(); + ~GeantinoPhysicsList() override; protected: // Construct particle and physics process - void ConstructParticle(); - void ConstructProcess(); + void ConstructParticle() override; + void ConstructProcess() override; }; +} + #endif diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/include/GpsPrimaryGeneratorAction.hh b/examples/extended/eventgenerator/pythia/decayer6/common/include/GpsPrimaryGeneratorAction.hh index ca3a467932..e5aad89e54 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/include/GpsPrimaryGeneratorAction.hh +++ b/examples/extended/eventgenerator/pythia/decayer6/common/include/GpsPrimaryGeneratorAction.hh @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file GpsPrimaryGeneratorAction.hh -/// \brief Definition of the GpsPrimaryGeneratorActionclass +/// \file common/include/GpsPrimaryGeneratorAction.hh +/// \brief Definition of the Common::GpsPrimaryGeneratorAction class // #ifndef GpsPrimaryGeneratorAction_h @@ -42,23 +42,24 @@ class G4Event; /// /// \author I. Hrivnacova; IPN Orsay +namespace Common +{ + class GpsPrimaryGeneratorAction: public G4VUserPrimaryGeneratorAction { public: - GpsPrimaryGeneratorAction(); - ~GpsPrimaryGeneratorAction(); + GpsPrimaryGeneratorAction(); + ~GpsPrimaryGeneratorAction() override; // methods - virtual void GeneratePrimaries(G4Event*); + void GeneratePrimaries(G4Event*) override; private: - // static data members - static const G4String fgkDefaultParticleName; - static const G4double fgkDefaultEnergy; - // data members - G4GeneralParticleSource* fGeneralParticleSource; + G4GeneralParticleSource* fGeneralParticleSource = nullptr; }; +} + #endif diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/include/GunPrimaryGeneratorAction.hh b/examples/extended/eventgenerator/pythia/decayer6/common/include/GunPrimaryGeneratorAction.hh index 1679409c2e..add3049171 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/include/GunPrimaryGeneratorAction.hh +++ b/examples/extended/eventgenerator/pythia/decayer6/common/include/GunPrimaryGeneratorAction.hh @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file GunPrimaryGeneratorAction.hh -/// \brief Definition of the GunPrimaryGeneratorAction class +/// \file common/include/GunPrimaryGeneratorAction.hh +/// \brief Definition of the Common::GunPrimaryGeneratorAction class #ifndef GunPrimaryGeneratorAction_h #define GunPrimaryGeneratorAction_h 1 @@ -44,6 +44,9 @@ class G4Event; /// /// \author I. Hrivnacova; IPN Orsay +namespace Common +{ + class GunPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: @@ -51,15 +54,17 @@ class GunPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction const G4String& particleName = "geantino", G4double energy = 1.*CLHEP::MeV, G4ThreeVector position= G4ThreeVector(0,0,0), - G4ThreeVector momentumDirection = G4ThreeVector(0,0,1)); - ~GunPrimaryGeneratorAction(); + G4ThreeVector momentumDirection = G4ThreeVector(0,0,1)); + ~GunPrimaryGeneratorAction() override; // methods - virtual void GeneratePrimaries(G4Event*); + void GeneratePrimaries(G4Event*) override; private: // data members - G4ParticleGun* fParticleGun; + G4ParticleGun* fParticleGun = nullptr; }; +} + #endif diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/init.mac b/examples/extended/eventgenerator/pythia/decayer6/common/init.mac new file mode 100644 index 0000000000..978e19c4af --- /dev/null +++ b/examples/extended/eventgenerator/pythia/decayer6/common/init.mac @@ -0,0 +1,13 @@ +# Macro file for the initialization of example B1 +# in interactive session +# +# Set some default verbose +/control/verbose 2 +/control/saveHistory +/run/verbose 2 +# +# Change the default number of threads (in multi-threaded mode) +#/run/numberOfThreads 4 +# +# Initialize kernel +/run/initialize diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/init_vis.mac b/examples/extended/eventgenerator/pythia/decayer6/common/init_vis.mac new file mode 100644 index 0000000000..8e460329fb --- /dev/null +++ b/examples/extended/eventgenerator/pythia/decayer6/common/init_vis.mac @@ -0,0 +1,16 @@ +# Macro file for the initialization of example B1 +# in interactive session +# +# Set some default verbose +/control/verbose 2 +/control/saveHistory +/run/verbose 2 +# +# Change the default number of threads (in multi-threaded mode) +#/run/numberOfThreads 4 +# +# Initialize kernel +/run/initialize +# +# Visualization setting +/control/execute vis.mac diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/run.mac b/examples/extended/eventgenerator/pythia/decayer6/common/run.mac new file mode 100644 index 0000000000..2804407277 --- /dev/null +++ b/examples/extended/eventgenerator/pythia/decayer6/common/run.mac @@ -0,0 +1,12 @@ +# Macro file for example common +# +# To be run preferably in batch +# % ./exampleCommon[NoVis] run.mac +# +#/run/numberOfThreads 4 +/run/initialize +# +/control/verbose 2 +/run/verbose 2 +# +/run/beamOn 10 diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/src/DetectorConstruction.cc b/examples/extended/eventgenerator/pythia/decayer6/common/src/DetectorConstruction.cc index 185d5f38d3..272f602697 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/src/DetectorConstruction.cc +++ b/examples/extended/eventgenerator/pythia/decayer6/common/src/DetectorConstruction.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file DetectorConstruction.cc -/// \brief Implementation of the DetectorConstruction class +/// \file common/src/DetectorConstruction.cc +/// \brief Implementation of the Common::DetectorConstruction class #include "DetectorConstruction.hh" @@ -36,6 +36,9 @@ #include "G4PVPlacement.hh" #include "G4GenericMessenger.hh" +namespace Common +{ + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorConstruction::DetectorConstruction( @@ -43,14 +46,10 @@ DetectorConstruction::DetectorConstruction( G4double boxHx, G4double boxHy, G4double boxHz, const G4String& worldMaterialName, G4double worldSizeFactor) - : G4VUserDetectorConstruction(), - fMessenger(nullptr), - fBoxMaterialName(boxMaterialName), + : fBoxMaterialName(boxMaterialName), fWorldMaterialName(worldMaterialName), fBoxDimensions(boxHx*2, boxHy*2, boxHz*2), - fWorldSizeFactor(worldSizeFactor), - fBoxVolume(nullptr), - fWorldVolume(nullptr) + fWorldSizeFactor(worldSizeFactor) { DefineCommands(); } @@ -72,25 +71,25 @@ G4VPhysicalVolume* DetectorConstruction::Construct() auto worldMaterial = nistManager->FindOrBuildMaterial(fWorldMaterialName); auto boxMaterial = nistManager->FindOrBuildMaterial(fBoxMaterialName); - + // Geometry parameters // G4ThreeVector worldDimensions = fBoxDimensions * fWorldSizeFactor; - + // World // - auto sWorld + auto sWorld = new G4Box("World", //name worldDimensions.x(), //dimensions (half-lentghs) - worldDimensions.y(), + worldDimensions.y(), worldDimensions.z()); - fWorldVolume + fWorldVolume = new G4LogicalVolume(sWorld, //shape worldMaterial, //material "World"); //name - auto pWorld + auto pWorld = new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) fWorldVolume, //logical volume @@ -98,23 +97,23 @@ G4VPhysicalVolume* DetectorConstruction::Construct() 0, //mother volume false, //no boolean operation 0); //copy number - + // Box - // - auto sBox + // + auto sBox = new G4Box("Box", //its name fBoxDimensions.x(), //dimensions (half-lengths) - fBoxDimensions.y(), + fBoxDimensions.y(), fBoxDimensions.z()); - - fBoxVolume + + fBoxVolume = new G4LogicalVolume(sBox, //its shape boxMaterial, //its material "Box"); //its name new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) - fBoxVolume, //its logical volume + fBoxVolume, //its logical volume "Box", //its name fWorldVolume, //its mother volume false, //no boolean operation @@ -126,7 +125,7 @@ G4VPhysicalVolume* DetectorConstruction::Construct() } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + void DetectorConstruction::SetBoxMaterial(const G4String& materialName) { auto nistManager = G4NistManager::Instance(); @@ -136,14 +135,14 @@ void DetectorConstruction::SetBoxMaterial(const G4String& materialName) G4cerr << "Material " << materialName << " not found." << G4endl; G4cerr << "The box material was not changed." << G4endl; return; - } - + } + if ( fBoxVolume ) fBoxVolume->SetMaterial(newMaterial); G4cout << "Material of box changed to " << materialName << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + void DetectorConstruction::SetWorldMaterial(const G4String& materialName) { auto nistManager = G4NistManager::Instance(); @@ -153,45 +152,45 @@ void DetectorConstruction::SetWorldMaterial(const G4String& materialName) G4cerr << "Material " << materialName << " not found." << G4endl; G4cerr << "The box material was not changed." << G4endl; return; - } - + } + if ( fWorldVolume ) fWorldVolume->SetMaterial(newMaterial); G4cout << "Material of box changed to " << materialName << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::SetBoxDimensions(G4ThreeVector dimensions) + +void DetectorConstruction::SetBoxDimensions(G4ThreeVector dimensions) { /// Set box dimension (in half lengths). /// This setting has effect only if called in PreInit> phase fBoxDimensions = dimensions; -} - +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetWorldSizeFactor(G4double factor) +void DetectorConstruction::SetWorldSizeFactor(G4double factor) { /// Set the multiplication factor from box dimensions to world dimensions. /// This setting has effect only if called in PreInit> phase fWorldSizeFactor = factor; -} - +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void DetectorConstruction::DefineCommands() { // Define /B5/detector command directory using generic messenger class - fMessenger = new G4GenericMessenger(this, - "/detector/", + fMessenger = new G4GenericMessenger(this, + "/detector/", "Detector control"); // setBoxMaterial command auto& setBoxMaterialCmd = fMessenger->DeclareMethod("setBoxMaterial", - &DetectorConstruction::SetBoxMaterial, + &DetectorConstruction::SetBoxMaterial, "Set box material name."); setBoxMaterialCmd.SetParameterName("boxMaterialName", false); setBoxMaterialCmd.SetDefaultValue("G4_AIR"); @@ -199,7 +198,7 @@ void DetectorConstruction::DefineCommands() // setWorldMaterial command auto& setWorldMaterialCmd = fMessenger->DeclareMethod("setWorldMaterial", - &DetectorConstruction::SetWorldMaterial, + &DetectorConstruction::SetWorldMaterial, "Set world material name."); setWorldMaterialCmd.SetParameterName("worldMaterialName", false); setWorldMaterialCmd.SetDefaultValue("G4_AIR"); @@ -207,19 +206,21 @@ void DetectorConstruction::DefineCommands() // setBoxDimensions command auto& setBoxDimensionsCmd = fMessenger->DeclareMethodWithUnit("setBoxDimensions", "mm", - &DetectorConstruction::SetBoxDimensions, + &DetectorConstruction::SetBoxDimensions, "Set box dimensions (in half lentgh)."); setBoxDimensionsCmd.SetParameterName("boxDimensions", false); setBoxDimensionsCmd.SetStates(G4State_PreInit); // setWorldSizeFactor command - auto& setWorldSizeFactorCmd + auto& setWorldSizeFactorCmd = fMessenger->DeclareMethod("setWorldSizeFactor", - &DetectorConstruction::SetWorldSizeFactor, + &DetectorConstruction::SetWorldSizeFactor, "Set the multiplication factor from box dimensions to world dimensions."); setWorldSizeFactorCmd.SetParameterName("worldSizeFactor", false); setWorldSizeFactorCmd.SetRange("WorldSizeFactor >= 1"); setWorldSizeFactorCmd.SetStates(G4State_PreInit); } - + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/src/DetectorConstruction0.cc b/examples/extended/eventgenerator/pythia/decayer6/common/src/DetectorConstruction0.cc index b84e8319e6..86b58026d0 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/src/DetectorConstruction0.cc +++ b/examples/extended/eventgenerator/pythia/decayer6/common/src/DetectorConstruction0.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file DetectorConstruction0.cc -/// \brief Implementation of the DetectorConstruction0 class +/// \file common/src/DetectorConstruction0.cc +/// \brief Implementation of the Common::DetectorConstruction0 class #include "DetectorConstruction0.hh" @@ -36,16 +36,16 @@ #include "G4PVPlacement.hh" #include "G4GenericMessenger.hh" +namespace Common +{ + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorConstruction0::DetectorConstruction0( const G4String& materialName, G4double hx, G4double hy, G4double hz) - : G4VUserDetectorConstruction(), - fMessenger(nullptr), - fMaterialName(materialName), - fDimensions(hx, hy, hz), - fWorldVolume(nullptr) + : fMaterialName(materialName), + fDimensions(hx, hy, hz) { DefineCommands(); } @@ -66,21 +66,21 @@ G4VPhysicalVolume* DetectorConstruction0::Construct() auto nistManager = G4NistManager::Instance(); auto material = nistManager->FindOrBuildMaterial(fMaterialName); - + // World // - auto sWorld + auto sWorld = new G4Box("World", //name fDimensions.x(), //dimensions (half-lentghs) - fDimensions.y(), + fDimensions.y(), fDimensions.z()); - fWorldVolume + fWorldVolume = new G4LogicalVolume(sWorld, //shape material, //material "World"); //name - auto pWorld + auto pWorld = new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) fWorldVolume, //logical volume @@ -95,7 +95,7 @@ G4VPhysicalVolume* DetectorConstruction0::Construct() } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + void DetectorConstruction0::SetMaterial(const G4String& materialName) { auto nistManager = G4NistManager::Instance(); @@ -105,35 +105,35 @@ void DetectorConstruction0::SetMaterial(const G4String& materialName) G4cerr << "Material " << materialName << " not found." << G4endl; G4cerr << "The box material was not changed." << G4endl; return; - } - + } + if ( fWorldVolume ) fWorldVolume->SetMaterial(newMaterial); G4cout << "Material of box changed to " << materialName << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + void DetectorConstruction0::SetDimensions(G4ThreeVector dimensions) { /// Set world dimension (in half lengths). /// This setting has effect only if called in PreInit> phase fDimensions = dimensions; -} - +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void DetectorConstruction0::DefineCommands() { // Define /B5/detector command directory using generic messenger class - fMessenger = new G4GenericMessenger(this, - "/detector/", + fMessenger = new G4GenericMessenger(this, + "/detector/", "Detector control"); // setMaterial command auto& setMaterialCmd = fMessenger->DeclareMethod("setMaterial", - &DetectorConstruction0::SetMaterial, + &DetectorConstruction0::SetMaterial, "Set world material name."); setMaterialCmd.SetParameterName("materialName", false); setMaterialCmd.SetDefaultValue("G4_AIR"); @@ -142,10 +142,12 @@ void DetectorConstruction0::DefineCommands() // setDimensions command auto& setDimensionsCmd = fMessenger->DeclareMethodWithUnit("setDimensions", "mm", - &DetectorConstruction0::SetDimensions, + &DetectorConstruction0::SetDimensions, "Set world dimensions (in half lentgh)."); setDimensionsCmd.SetParameterName("dimensions", false); setDimensionsCmd.SetStates(G4State_PreInit); } - + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/src/GeantinoPhysicsList.cc b/examples/extended/eventgenerator/pythia/decayer6/common/src/GeantinoPhysicsList.cc index fde873904d..bd47a847c0 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/src/GeantinoPhysicsList.cc +++ b/examples/extended/eventgenerator/pythia/decayer6/common/src/GeantinoPhysicsList.cc @@ -24,23 +24,23 @@ // ******************************************************************** // // -/// \file GeantinoPhysicsList.cc -/// \brief Implementation of the GeantinoPhysicsList class +/// \file common/src/GeantinoPhysicsList.cc +/// \brief Implementation of the Common::GeantinoPhysicsList class #include "GeantinoPhysicsList.hh" #include "G4Geantino.hh" #include "G4ChargedGeantino.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -GeantinoPhysicsList::GeantinoPhysicsList() - : G4VUserPhysicsList() -{} +namespace Common +{ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -GeantinoPhysicsList::~GeantinoPhysicsList() -{} +GeantinoPhysicsList::GeantinoPhysicsList() = default; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +GeantinoPhysicsList::~GeantinoPhysicsList() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -49,7 +49,7 @@ void GeantinoPhysicsList::ConstructParticle() // In this method, static member functions should be called // for all particles which you want to use. // This ensures that objects of these particle types will be - // created in the program. + // created in the program. G4Geantino::GeantinoDefinition(); G4ChargedGeantino::ChargedGeantinoDefinition(); @@ -65,3 +65,5 @@ void GeantinoPhysicsList::ConstructProcess() } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/src/GpsPrimaryGeneratorAction.cc b/examples/extended/eventgenerator/pythia/decayer6/common/src/GpsPrimaryGeneratorAction.cc index 2ac18e0294..b07a277e47 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/src/GpsPrimaryGeneratorAction.cc +++ b/examples/extended/eventgenerator/pythia/decayer6/common/src/GpsPrimaryGeneratorAction.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file GpsPrimaryGeneratorAction.cc -/// \brief Implementation of the GpsPrimaryGeneratorActionclass +/// \file common/src/GpsPrimaryGeneratorAction.cc +/// \brief Implementation of the Common::GpsPrimaryGeneratorActionclass #include "GpsPrimaryGeneratorAction.hh" @@ -33,14 +33,12 @@ #include "G4GeneralParticleSource.hh" #include "G4SystemOfUnits.hh" -const G4String GpsPrimaryGeneratorAction::fgkDefaultParticleName = "e-"; -const G4double GpsPrimaryGeneratorAction::fgkDefaultEnergy = 1.*MeV; +namespace Common +{ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... GpsPrimaryGeneratorAction::GpsPrimaryGeneratorAction() - : G4VUserPrimaryGeneratorAction(), - fGeneralParticleSource(nullptr) { fGeneralParticleSource = new G4GeneralParticleSource(); } @@ -61,3 +59,7 @@ void GpsPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) fGeneralParticleSource->GeneratePrimaryVertex(anEvent); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} + diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/src/GunPrimaryGeneratorAction.cc b/examples/extended/eventgenerator/pythia/decayer6/common/src/GunPrimaryGeneratorAction.cc index 6a10df48c7..6d48726ca9 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/src/GunPrimaryGeneratorAction.cc +++ b/examples/extended/eventgenerator/pythia/decayer6/common/src/GunPrimaryGeneratorAction.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file GunPrimaryGeneratorAction.cc -/// \brief Implementation of the GunPrimaryGeneratorAction class +/// \file common/src/GunPrimaryGeneratorAction.cc +/// \brief Implementation of the Common::GunPrimaryGeneratorAction class #include "GunPrimaryGeneratorAction.hh" @@ -34,15 +34,16 @@ #include "G4ParticleTable.hh" #include "G4ParticleDefinition.hh" +namespace Common +{ + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -GunPrimaryGeneratorAction::GunPrimaryGeneratorAction( - const G4String& particleName, +GunPrimaryGeneratorAction::GunPrimaryGeneratorAction( + const G4String& particleName, G4double energy, - G4ThreeVector position, + G4ThreeVector position, G4ThreeVector momentumDirection) - : G4VUserPrimaryGeneratorAction(), - fParticleGun(nullptr) { G4int nofParticles = 1; fParticleGun = new G4ParticleGun(nofParticles); @@ -73,3 +74,7 @@ void GunPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) fParticleGun->GeneratePrimaryVertex(anEvent); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} + diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/testCommon.cc b/examples/extended/eventgenerator/pythia/decayer6/common/testCommon.cc index a62ef77fab..591caaeeaa 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/common/testCommon.cc +++ b/examples/extended/eventgenerator/pythia/decayer6/common/testCommon.cc @@ -37,6 +37,8 @@ #include "G4RunManager.hh" #include "FTFP_BERT.hh" +using namespace Common; + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // Test program which only instantiates classes defined in diff --git a/examples/extended/eventgenerator/pythia/decayer6/common/vis.mac b/examples/extended/eventgenerator/pythia/decayer6/common/vis.mac new file mode 100644 index 0000000000..6992af6e6c --- /dev/null +++ b/examples/extended/eventgenerator/pythia/decayer6/common/vis.mac @@ -0,0 +1,121 @@ +# Macro file for the visualization setting in the initialization phase +# of the B1 example when running in interactive mode +# + +# Use these open statements to open selected visualization +# +# Use this open statement to create an OpenGL view: +/vis/open OGL 600x600-0+0 +# +# Use this open statement to create an OpenInventor view: +#/vis/open OI +# +# Use this open statement to create a .prim file suitable for +# viewing in DAWN: +#/vis/open DAWNFILE +# +# Use this open statement to create a .heprep file suitable for +# viewing in HepRApp: +#/vis/open HepRepFile +# +# Use this open statement to create a .wrl file suitable for +# viewing in a VRML viewer: +#/vis/open VRML2FILE +# +# Use this open statement to create an offscreen file with TSG: +#/vis/open TSG_OFFSCREEN 1200x1200 +# See the tsg_offscreen.mac file for more commands to change +# the file format, file name, picture size, etc. +# +# Disable auto refresh and quieten vis messages whilst scene and +# trajectories are established: +/vis/viewer/set/autoRefresh false +/vis/verbose errors +# +# Draw geometry: +/vis/drawVolume +# +# Specify view angle: +/vis/viewer/set/viewpointVector -1 0 0 +/vis/viewer/set/lightsVector -1 0 0 +# +# Specify style (surface, wireframe, auxiliary edges,...) +/vis/viewer/set/style wireframe +/vis/viewer/set/auxiliaryEdge true +/vis/viewer/set/lineSegmentsPerCircle 100 +# +# Draw smooth trajectories at end of event, showing trajectory points +# as markers 2 pixels wide: +/vis/scene/add/trajectories smooth +/vis/modeling/trajectories/create/drawByCharge +/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true +/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2 +# (if too many tracks cause core dump => /tracking/storeTrajectory 0) +# +# Draw hits at end of event: +#/vis/scene/add/hits +# +# To draw only gammas: +#/vis/filtering/trajectories/create/particleFilter +#/vis/filtering/trajectories/particleFilter-0/add gamma +# +# To invert the above, drawing all particles except gammas, +# keep the above two lines but also add: +#/vis/filtering/trajectories/particleFilter-0/invert true +# +# Many other options are available with /vis/modeling and /vis/filtering. +# For example, to select colour by particle ID: +#/vis/modeling/trajectories/create/drawByParticleID +#/vis/modeling/trajectories/drawByParticleID-0/default/setDrawStepPts true +# To select or override default colours (note: e+ is blue by default): +#/vis/modeling/trajectories/list +#/vis/modeling/trajectories/drawByParticleID-0/set e+ yellow +# +# To superimpose all of the events from a given run: +/vis/scene/endOfEventAction accumulate +# +# Decorations +# Name +/vis/set/textColour green +/vis/set/textLayout right +/vis/scene/add/text2D 0.9 -.9 24 ! ! exampleB1 +# or, if your system does not support right-adjustment +#/vis/scene/add/text2D 0 -.9 24 ! ! exampleB1 +/vis/set/textLayout # Revert to normal (left adjusted) layout +/vis/set/textColour # Revert to default text colour (blue) +# +# Axes, scale, etc. +/vis/scene/add/scale # Simple scale line +/vis/scene/add/axes # Simple axes: x=red, y=green, z=blue. +/vis/scene/add/eventID # Drawn at end of event +/vis/scene/add/date # Date stamp +/vis/scene/add/logo2D # Simple logo +/vis/scene/add/logo # 3D logo +# +# Frame +/vis/set/colour red +/vis/set/lineWidth 2 +/vis/scene/add/frame # Simple frame around the view +/vis/set/colour # Revert to default colour (white) +/vis/set/lineWidth # Revert to default line width (1.) +# +# Attach text to one edge of Shape1, with a small, fixed offset +/vis/scene/add/text 0 6 -4 cm 18 4 4 Shape1 +# Attach text to one corner of Shape2, with a small, fixed offset +/vis/scene/add/text 6 7 10 cm 18 4 4 Shape2 +# +# To get nice view +# Make the "World" box invisible +/vis/geometry/set/visibility World 0 false +# "Envelope" is transparent blue to represent water +#/vis/geometry/set/colour Envelope 0 0 0 1 .3 +/vis/viewer/set/style surface +/vis/viewer/set/hiddenMarker true +/vis/viewer/set/viewpointThetaPhi 120 150 +# +# Re-establish auto refreshing and verbosity: +/vis/viewer/set/autoRefresh true +/vis/verbose warnings +# +# For file-based drivers, use this to create an empty detector view: +#/vis/viewer/flush diff --git a/examples/extended/eventgenerator/pythia/decayer6/pythia6_decayer.cc b/examples/extended/eventgenerator/pythia/decayer6/pythia6_decayer.cc index 084605008a..302c11b936 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/pythia6_decayer.cc +++ b/examples/extended/eventgenerator/pythia/decayer6/pythia6_decayer.cc @@ -62,7 +62,7 @@ int main(int argc,char** argv) // Set mandatory initialization classes // - runManager->SetUserInitialization(new DetectorConstruction); + runManager->SetUserInitialization(new Common::DetectorConstruction); // G4VModularPhysicsList* physicsList = new QGSP_BERT; @@ -72,7 +72,7 @@ int main(int argc,char** argv) // Set user action classes // runManager->SetUserAction( - new GunPrimaryGeneratorAction("B-", 50.*MeV)); + new Common::GunPrimaryGeneratorAction("B-", 50.*MeV)); // B- meson has not defined decay in Geant4 // Initialize visualization diff --git a/examples/extended/eventgenerator/pythia/decayer6/src/P6DExtDecayerPhysics.cc b/examples/extended/eventgenerator/pythia/decayer6/src/P6DExtDecayerPhysics.cc index 58776ba000..1fe29d84b2 100644 --- a/examples/extended/eventgenerator/pythia/decayer6/src/P6DExtDecayerPhysics.cc +++ b/examples/extended/eventgenerator/pythia/decayer6/src/P6DExtDecayerPhysics.cc @@ -74,10 +74,16 @@ void P6DExtDecayerPhysics::ConstructProcess() extDecayer->SetVerboseLevel(1); // The extDecayer will be deleted in G4Decay destructor + G4bool isSet = false; + // One G4Decay object is shared by all unstable particles (per thread). + // Thus, we need to set the external decayer only once. + auto particleIterator=GetParticleIterator(); particleIterator->reset(); while ((*particleIterator)()) - { + { + if (isSet) break; + G4ParticleDefinition* particle = particleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); @@ -88,10 +94,13 @@ void P6DExtDecayerPhysics::ConstructProcess() } G4ProcessVector* processVector = pmanager->GetProcessList(); - for (G4int i=0; ilength(); i++) { + for (std::size_t i=0; ilength(); i++) { G4Decay* decay = dynamic_cast((*processVector)[i]); - if ( decay ) decay->SetExtDecayer(extDecayer); + if ( decay ) { + decay->SetExtDecayer(extDecayer); + isSet = true; + } } } diff --git a/examples/extended/eventgenerator/pythia/py8decayer/.README.txt b/examples/extended/eventgenerator/pythia/py8decayer/.README.txt index 2f87a7f833..c68dc0619e 100644 --- a/examples/extended/eventgenerator/pythia/py8decayer/.README.txt +++ b/examples/extended/eventgenerator/pythia/py8decayer/.README.txt @@ -30,45 +30,57 @@ examples/extended/eventgenerator/pythia/py8decayer - Installation of Pythia8: + ## Installation of Pythia8: - NOTE: As of June 2021, pythia8.3.0.5 is the most current version, - this it is used in this example. + NOTE: As of October 2022, pythia8.3.0.7 is the most current version, + thus it is used in this example. In the future, please check updates at Pythia8 site: https://pythia.org - 1. cd path/to/your/pythia8/area - 2. Download desired version of Pythia8 and un-tar it, e.g. \verbatim -wget http://home.thep.lu.se/~torbjorn/pythia8/pythia8305.tgz -tar xzf pythia8305.tgz +wget https://pythia.org/download/pythia83/pythia8307.tgz +tar xzf pythia8307.tgz \endverbatim - 3. Build/install Pythia8 \verbatim -cd pythia8305 +cd pythia8307 export CXX=\`which g++\` ./configure --prefix=$PWD --cxx=$CXX make \endverbatim - NOTE: By default, Pythia8 (as of 8.3.0.5) builds with C++11 standards. + NOTE: By default, Pythia8 (as of 8.3.0.7) builds with C++11 standards. If one wants to turn to e.g. C++17 standard, one needs to override flags via --cxx-common argument to configure script. + Alternatively, one can setup CXX_COMMON environment variable. + As of pythia8307, the default flags are the following: + -O2 -std=c++11 -pedantic -W -Wall -Wshadow -pthread + Please note use of -pthread which was not among default flags in earlier + relesaes of Pythia8. + Example of specifying C++17 standards by overriding the default flags via + use of --cxx_common argument to configure script: +\verbatim +./configure --prefix=$PWD --cxx=$CXX \ + --cxx-common='-O2 -std=c++17 -pedantic -W -Wall -Wshadow -fPIC -pthread' +\endverbatim - 4. Setup PYTHIA8 environment variable to point to the area where Pythia8 +- 4. Setup PYTHIA8 environment variable to point to the area where Pythia8 is built/installed: \verbatim export PYTHIA8=$PWD \endverbatim - Building example: + + ## Building example: Upon setup of PYTHIA8 environment variable to point to the area where Pythia8 package is installed, the pythia/py8decayer example will be compiled together with several other features of the eventgenerator example. - Description of classes: + ## Description of classes: Py8Decayer class provides implementation of the G4VExternalDecayer interface with the use of PYTHIA8. @@ -99,22 +111,28 @@ export PYTHIA8=$PWD Class SingleParticleGun demonstrates how to implement generaton of the primary particle. + + Class ActionInitialization instantiates and registers to Geant4 kernel all user + action classes; in this case it is SingleParticleGun. - Main program: + ## Main program: pythia8_decayer.cc + + This application explicitly uses SerialOnly RunManager. + Transition to MT/Tasking operation is in the plans. - Executable: + ## Executable: pythia8_decayer - Execution: + ## Execution: At present, the pythia8_decayer executable does not take any input arguments. - Everything, including the choine of primary particle, is hardcoded in the main. + Everything, including the choine of primary particle, is hardcoded. Although in the future some configurability may be added. By default it'll run 5 single tau events using Pythia8 to decays them. @@ -125,4 +143,62 @@ export PYTHIA8=$PWD and make Geant4 decay them. + ## Additional notes on the contents of Geant4 and Pythia8 Particle Data Tables (PDT) : + + In their default form, PDT's in Geant4 and Pythia8 (v3.0.7) have a number + of differences that need to be kept in mind. + + In the case of the Geant4 py8decayer example those differences are unlikely + to cause any major issues. + + But Pythia8 can, in principle, be used within Geant4 in more ways that just + as an external decayer. + Thus, if one is potentially interested in more sophisticated use of Pythia8 + in Geant4, one may want to consider whatever differences exist between (default) + Geant4 and Pythia8 PDT's. + + To be more precise, by default Pythia8 PDT contains 669 entries, of which + 525 particles have an antiparticle (it looks like antiparticles do not make + separate entries in Pythia8 PDT, but the total number of available species + should be considered as 1194). + + Geant4 PDT contains 508 entries. + + Of those, 239 particles/antiparticles match by Particle ID's (on the Geant4 side + it is explicitly called "PDG encoding" while on Pythia8 side it is just "id"). + + Many of Pythia8 PDT's entries are not available in Geant4 PDT, e.g. Z or W bosons + are not in Geant4. + + Some of the species in the Geant4 PDT do not seem to be in the Pythia8 PDT + (e.g. excited nucleons do not seem to be in the Pythia8 PDT). + + Also, there are entries in both PDT's that mean the same particles but are + marked with different ID's. + For example, excited Delta(s) are present in both PDT's but in Geant4 each one + is marked with a 4-digit number as an ID (PDG encoding) while in Pythia8 an ID + for such particle would be a 6-digit number starting with "20" and the last + 4 digits would be the same as the Geant4 ID for such particle. + + Speaking of the 239 particles that match by ID (PDG ID), there may be further + differences, e.g. by mass, either central value or width, or both (there might be + other aspects but they have not been checked for). + + As of October 2022, check has been made for differences larger that 1 keV in + either mass central value or width. + + The largest differences have been observed for quarks/diquarks. + It appears that Geant4 sets (at least) masses of quarks as listed in PDG. + For details on default settings for the quark masses in Pythia8 please refer + to the Pythia8 manual: + https://pythia.org/manuals/pythia8307/Welcome.html + See Particles and Decays section, Particle Data subsection. + + Beyond quarks/diquarks some differences in mass central values or width have also + been observed, mainly for resonances. + But even for such particles as proton or muon there may be differences on the order + of a few keV (e.g. central value of the proton mass is 938.27 MeV in Pythia8 and + 938.272 MeV in Geant4) + + */ diff --git a/examples/extended/eventgenerator/pythia/py8decayer/History b/examples/extended/eventgenerator/pythia/py8decayer/History index 6cf95fcccf..93f1e97586 100644 --- a/examples/extended/eventgenerator/pythia/py8decayer/History +++ b/examples/extended/eventgenerator/pythia/py8decayer/History @@ -4,6 +4,28 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-10-20 Julia Yarba (p8decayer-V11-00-05) +- Minor cleanups in .README.txt + +## 2022-10-19 Julia Yarba (p8decayer-V11-00-04) +- Update README and .README.txt to include information on comparing + contents of Geant4 and Pythia8 Particle Data Tables + +## 2022-08-26 Julia Yarba (p8decayer-V11-00-03) +- Replace ActionInit class with ActionInitialization class +- Update pythia8_decayer.cc +- Cleanup typos +- Cleanup README +- Properly update .README.txt + +## 2022-08-25 Julia Yarba (p8decayer-V11-00-02) +- Add ActionInit class +- Update pythia8_decayer.cc to use ActionInit +- Update README to reflect use of Pythia8.3.0.7 + +## 2022-07-15 Makoto Asai (p8decayer-V11-00-01) +- Py8DecayerPhysics.cc: + Code cleanup to avoid potential misleading. ## 2021-12-10 Ben Morgan (p8decayer-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/eventgenerator/pythia/py8decayer/README b/examples/extended/eventgenerator/pythia/py8decayer/README index 734f1773ff..c4711adee5 100644 --- a/examples/extended/eventgenerator/pythia/py8decayer/README +++ b/examples/extended/eventgenerator/pythia/py8decayer/README @@ -30,24 +30,33 @@ Installation of Pythia8: - NOTE: As of June 2021, pythia8.3.0.5 is the most current version, - this it is used in this example. + NOTE: As of October 2022, pythia8.3.0.7 is the most current version, + thus it is used in this example. In the future, please check updates at Pythi8 site: https://pythia.org 1. cd path/to/your/pythia8/area 2. Download desired version of Pythia8 and un-tar it, e.g. - wget http://home.thep.lu.se/~torbjorn/pythia8/pythia8305.tgz - tar xzf pythia8305.tgz + wget https://pythia.org/download/pythia83/pythia8307.tgz + tar xzf pythia8307.tgz 3. Build/install Pythia8 - cd pythia8305 + cd pythia8307 export CXX=\`which g++\` ./configure --prefix=$PWD --cxx=$CXX make - NOTE: By default, Pythia8 (as of 8.3.0.5) builds with C++11 standards. + NOTE: By default, Pythia8 (as of 8.3.0.7) builds with C++11 standards. If one wants to turn to e.g. C++17 standard, one needs to override flags via --cxx-common argument to configure script. + Alternatively, one can setup CXX_COMMON environment variable. + As of pythia8307, the default flags are the following: + -O2 -std=c++11 -pedantic -W -Wall -Wshadow -pthread + Please note use of -pthread which was not among default flags in earlier + relesaes of Pythia8. + Example of specifying C++17 standards by overriding the default flags via + use of --cxx_common argument to configure script: + ./configure --prefix=$PWD --cxx=$CXX \ + --cxx-common='-O2 -std=c++17 -pedantic -W -Wall -Wshadow -fPIC -pthread' 4. Setup PYTHIA8 environment variable to point to the area where Pythia8 is built/installed: @@ -93,10 +102,15 @@ Class SingleParticleGun demonstrates how to implement generaton of the primary particle. - + Class ActionInitialization instantiates and registers to Geant4 kernel all user + action classes; in this case it is SingleParticleGun. + Main program: pythia8_decayer.cc + + This application explicitly uses SerialOnly RunManager. + Transition to MT/Tasking operation is in the plans. Executable: @@ -107,7 +121,7 @@ Execution: At present, the pythia8_decayer executable does not take any input arguments. - Everything, including the choine of primary particle, is hardcoded in the main. + Everything, including the choine of primary particle, is hardcoded. Although in the future some configurability may be added. By default it'll run 5 single tau events using Pythia8 to decays them. @@ -118,3 +132,59 @@ and make Geant4 decay them. + Additional notes on the contents of Geant4 and Pythia8 Particle Data Tables (PDT) : + + In their default form, PDT's in Geant4 and Pythia8 (v3.0.7) have a number + of differences that need to be kept in mind. + + In the case of the Geant4 py8decayer example those differences are unlikely + to cause any major issues. + + But Pythia8 can, in principle, be used within Geant4 in more ways that just + as an external decayer. + Thus, if one is potentially interested in more sophisticated use of Pythia8 + in Geant4, one may want to consider whatever differences exist between (default) + Geant4 and Pythia8 PDT's. + + To be more precise, by default Pythia8 PDT contains 669 entries, of which + 525 particles have an antiparticle (it looks like antiparticles do not make + separate entries in Pythia8 PDT, but the total number of available species + should be considered as 1194). + + Geant4 PDT contains 508 entries. + + Of those, 239 particles/antiparticles match by Particle ID's (on the Geant4 side + it is explicitly called "PDG encoding" while on Pythia8 side it is just "id"). + + Many of Pythia8 PDT's entries are not available in Geant4 PDT, e.g. Z or W bosons + are not in Geant4. + + Some of the species in the Geant4 PDT do not seem to be in the Pythia8 PDT + (e.g. excited nucleons do not seem to be in the Pythia8 PDT). + + Also, there are entries in both PDT's that mean the same particles but are + marked with different ID's. + For example, excited Delta(s) are present in both PDT's but in Geant4 each one + is marked with a 4-digit number as an ID (PDG encoding) while in Pythia8 an ID + for such particle would be a 6-digit number starting with "20" and the last + 4 digits would be the same as the Geant4 ID for such particle. + + Speaking of the 239 particles that match by ID (PDG ID), there may be further + differences, e.g. by mass, either central value or width, or both (there might be + other aspects but they have not been checked for). + + As of October 2022, check has been made for differences larger that 1 keV in + either mass central value or width. + + The largest differences have been observed for quarks/diquarks. + It appears that Geant4 sets (at least) masses of quarks as listed in PDG. + For details on default settings for the quark masses in Pythia8 please refer + to the Pythia8 manual: + https://pythia.org/manuals/pythia8307/Welcome.html + See Particles and Decays section, Particle Data subsection. + + Beyond quarks/diquarks some differences in mass central values or width have also + been observed, mainly for resonances. + But even for such particles as proton or muon there may be differences on the order + of a few keV (e.g. central value of the proton mass is 938.27 MeV in Pythia8 and + 938.272 MeV in Geant4) diff --git a/examples/extended/eventgenerator/pythia/py8decayer/include/ActionInitialization.hh b/examples/extended/eventgenerator/pythia/py8decayer/include/ActionInitialization.hh new file mode 100644 index 0000000000..64740bc8bd --- /dev/null +++ b/examples/extended/eventgenerator/pythia/py8decayer/include/ActionInitialization.hh @@ -0,0 +1,49 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +/// \file eventgenerator/pythia/pythia8decayer/include/ActionInitialization.hh +/// \brief Definition of the ActionInitialization class + +#ifndef ActionInitialization_H +#define ActionInitialization_H 1 + +#include "G4VUserActionInitialization.hh" + +/// Action initialization class. + +class ActionInitialization : public G4VUserActionInitialization +{ + public: + ActionInitialization(); + ~ActionInitialization() override; + + // NOTE: NO need to implement BuildForMaster + void Build() const override; +}; + +#endif + + diff --git a/examples/extended/eventgenerator/pythia/py8decayer/pythia8_decayer.cc b/examples/extended/eventgenerator/pythia/py8decayer/pythia8_decayer.cc index ae39676bcd..ad0e47c8b8 100644 --- a/examples/extended/eventgenerator/pythia/py8decayer/pythia8_decayer.cc +++ b/examples/extended/eventgenerator/pythia/py8decayer/pythia8_decayer.cc @@ -34,6 +34,7 @@ #include "DetConstruction.hh" #include "SingleParticleGun.hh" +#include "ActionInitialization.hh" #include "G4RunManagerFactory.hh" #include "FTFP_BERT.hh" @@ -56,13 +57,13 @@ void PrintAvailable(G4int verb=1); int main(int argc,char** argv) { - // pick physics list - std::string physListName = "FTFP_BERT+PY8DK"; + // pick physics list + std::string physListName = "FTFP_BERT+PY8DK"; - for ( G4int i=1; iSetNumberOfThreads(5); + // Set mandatory initialization classes // // Geometry // runManager->SetUserInitialization(new DetConstruction); - runManager->GeometryHasBeenModified(); // // Physics // @@ -111,14 +116,14 @@ int main(int argc,char** argv) runManager->SetUserInitialization(physicsList); // // Set user action classes, e.g. prim.generator (tau- gun), etc. - // NOTE: one can also set tau+, or B+/- - for all those particles - // Geant4 native decay tables are overriden with Pythia8-bases ones + // NOTE: setting particle gun (prim. generator) is done in + // ActionInit class (see src/ActionInitialization.cc) // - // prt_name prt_mom - runManager->SetUserAction( new SingleParticleGun( "tau-", 25.0 ) ); + runManager->SetUserInitialization( new ActionInitialization() ); // Run initialization // + runManager->GeometryHasBeenModified(); runManager->InitializeGeometry(); runManager->InitializePhysics(); runManager->Initialize(); @@ -136,14 +141,14 @@ int main(int argc,char** argv) // It speaks for itself ^_^ // runManager->RunTermination(); + + // Job termination + // Free the store: user actions, physics_list and detector_description are + // owned and deleted by the run manager, so they should not + // be deleted in the main() program ! + delete runManager; - // Job termination - // Free the store: user actions, physics_list and detector_description are - // owned and deleted by the run manager, so they should not - // be deleted in the main() program ! - delete runManager; - - return 0; + return 0; } diff --git a/environments/g4py/examples/demos/TestEm0/module/PhysListEmStandard.hh b/examples/extended/eventgenerator/pythia/py8decayer/src/ActionInitialization.cc similarity index 75% rename from environments/g4py/examples/demos/TestEm0/module/PhysListEmStandard.hh rename to examples/extended/eventgenerator/pythia/py8decayer/src/ActionInitialization.cc index 3d406bee7b..959beb84d2 100644 --- a/environments/g4py/examples/demos/TestEm0/module/PhysListEmStandard.hh +++ b/examples/extended/eventgenerator/pythia/py8decayer/src/ActionInitialization.cc @@ -24,42 +24,40 @@ // ******************************************************************** // // -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +/// \file eventgenerator/pythia/pythia8decayer/src/ActionInitialization.cc +/// \brief Implementation of the ActionInitialization class -#ifndef PhysListEmStandard_h -#define PhysListEmStandard_h 1 +#include "ActionInitialization.hh" +#include "SingleParticleGun.hh" -#include "G4VPhysicsConstructor.hh" -#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class PhysListEmStandard : public G4VPhysicsConstructor +ActionInitialization::ActionInitialization() + : G4VUserActionInitialization() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ActionInitialization::~ActionInitialization() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + +void ActionInitialization::Build() const { - 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(); -}; + // NOTE: one can also set tau+, or B+/- - for all those particles + // Geant4 native decay tables are overriden with Pythia8-bases ones + // + // prt_name prt_mom + SetUserAction( new SingleParticleGun("tau-", 25.0) ); + + return; + +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#endif - - - - - - - diff --git a/examples/extended/eventgenerator/pythia/py8decayer/src/Py8DecayerPhysics.cc b/examples/extended/eventgenerator/pythia/py8decayer/src/Py8DecayerPhysics.cc index 4bc64d96da..ce27fc89cf 100644 --- a/examples/extended/eventgenerator/pythia/py8decayer/src/Py8DecayerPhysics.cc +++ b/examples/extended/eventgenerator/pythia/py8decayer/src/Py8DecayerPhysics.cc @@ -69,59 +69,66 @@ void Py8DecayerPhysics::ConstructParticle() void Py8DecayerPhysics::ConstructProcess() { + // Adding external decayer to G4Decay process (per each thread). + // G4Decay will use the external decayer if G4Decay process is + // assigned to an unstable particle and that particle does not + // have its decay table. - // Loop over all particles instantiated and add external decayer - // to all decay processes where there's no decay table, plus tau's + // Loop over all particles instantiated and remove already-assigned + // decay table for tau's and B+/- so that they will decay through + // the external decayer (Pythia8). - // Create external decayer for G4Decay process // NOTE: The extDecayer will be deleted in G4Decay destructor + Py8Decayer* extDecayer = new Py8Decayer(); + G4bool setOnce = true; auto particleIterator=GetParticleIterator(); particleIterator->reset(); while ((*particleIterator)()) { G4ParticleDefinition* particle = particleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); + + // remove native/existing decay table for + // a)tau's + // b) B+/- + // so that G4Decay will use the external decayer + if ( std::abs(particle->GetPDGEncoding()) == 15 || + std::abs(particle->GetPDGEncoding()) == 521 ) + { + if ( particle->GetDecayTable() ) + { + delete particle->GetDecayTable(); + particle->SetDecayTable(nullptr); /* - if ( verboseLevel > 1 ) { - G4cout << "Setting ext decayer for: " + if ( verboseLevel > 1 ) { + G4cout << "Use ext decayer for: " << particleIterator->value()->GetParticleName() << G4endl; - } + } */ - G4ProcessVector* processVector = pmanager->GetProcessList(); - for ( size_t i=0; ilength(); ++i ) - { - G4Decay* decay = dynamic_cast((*processVector)[i]); - if ( decay ) - { - // remove native/existing decay table for - // a)tau's - // b) B+/- - // and replace with external decayer - if ( std::abs(particle->GetPDGEncoding()) == 15 || - std::abs(particle->GetPDGEncoding()) == 521 ) - { - if ( particle->GetDecayTable() ) - { - delete particle->GetDecayTable(); - particle->SetDecayTable(nullptr); - } - decay->SetExtDecayer(extDecayer); - } - // now set external decayer to all particles - // that don't yet have a decay table - if ( !particle->GetDecayTable() ) - { - decay->SetExtDecayer(extDecayer); - } - } + } + } + + if(setOnce) + // One G4Decay object is shared by all unstable particles (per thread). + // Thus, we set the external decayer only once. + { + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4ProcessVector* processVector = pmanager->GetProcessList(); + for ( size_t i=0; ilength(); ++i ) + { + G4Decay* decay = dynamic_cast((*processVector)[i]); + if ( decay ) + { + decay->SetExtDecayer(extDecayer); + setOnce = false; + } + } } } return; - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/userPrimaryGenerator/userPrimaryGenerator.out b/examples/extended/eventgenerator/userPrimaryGenerator/userPrimaryGenerator.out index 6bffd0a9fc..b61134a179 100644 --- a/examples/extended/eventgenerator/userPrimaryGenerator/userPrimaryGenerator.out +++ b/examples/extended/eventgenerator/userPrimaryGenerator/userPrimaryGenerator.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -50,7 +50,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100000 - User=0.340000s Real=0.348498s Sys=0.000000s + User=0.380000s Real=0.379409s Sys=0.000000s G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 9 of which, static: 0 diff --git a/examples/extended/exoticphysics/channeling/History b/examples/extended/exoticphysics/channeling/History index 40d2333bcc..58234fda17 100644 --- a/examples/extended/exoticphysics/channeling/History +++ b/examples/extended/exoticphysics/channeling/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-02 Vladimir Ivanchenko (channelingExample-V11-00-01) +- Use SS EM physics instead of Opt4 and disable Coulomb scattering + ## 2021-12-10 Ben Morgan (channelingExample-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/exoticphysics/channeling/channeling.cc b/examples/extended/exoticphysics/channeling/channeling.cc index 101de9edc8..617d2d37b1 100644 --- a/examples/extended/exoticphysics/channeling/channeling.cc +++ b/examples/extended/exoticphysics/channeling/channeling.cc @@ -43,6 +43,7 @@ #include "FTFP_BERT.hh" #include "G4EmStandardPhysics_option4.hh" +#include "G4EmStandardPhysicsSS.hh" #include "G4ChannelingPhysics.hh" #include "G4GenericBiasingPhysics.hh" @@ -68,8 +69,8 @@ int main(int argc,char** argv) // Set mandatory initialization classes G4VModularPhysicsList* physlist= new FTFP_BERT(); G4GenericBiasingPhysics* biasingPhysics = new G4GenericBiasingPhysics(); + physlist->ReplacePhysics(new G4EmStandardPhysicsSS()); physlist->RegisterPhysics(new G4ChannelingPhysics()); - physlist->ReplacePhysics(new G4EmStandardPhysics_option4()); biasingPhysics->PhysicsBiasAllCharged(); physlist->RegisterPhysics(biasingPhysics); runManager->SetUserInitialization(physlist); diff --git a/examples/extended/exoticphysics/channeling/channeling.out b/examples/extended/exoticphysics/channeling/channeling.out index f3cea04c7f..8c448190d5 100644 --- a/examples/extended/exoticphysics/channeling/channeling.out +++ b/examples/extended/exoticphysics/channeling/channeling.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -21,7 +21,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo <<< Geant4 Physics List simulation engine: FTFP_BERT -G4VModularPhysicsList::ReplacePhysics: G4EmStandard with type : 2 is replaced with G4EmStandard_opt4 +G4VModularPhysicsList::ReplacePhysics: G4EmStandard with type : 2 is replaced with G4EmStandardSS Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... Registering graphics systems... @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -97,6 +99,22 @@ data/Si220pl_eld.txt for neutron : 3 to 6 GeV ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 + G4ProcessTable::SetProcessActivation() - The Process[CoulombScat] + for e- Index = 4 + for e+ Index = 4 + for GenericIon Index = 2 + for mu+ Index = 4 + for mu- Index = 4 + for pi+ Index = 4 + for pi- Index = 4 + for kaon+ Index = 4 + for kaon- Index = 4 + for proton Index = 4 + for anti_proton Index = 4 + for deuteron Index = 2 + for triton Index = 2 + for alpha Index = 2 + for He3 Index = 2 ======================================================================= ====== Electromagnetic Physics Parameters ======== ======================================================================= @@ -104,13 +122,14 @@ LPM effect enabled 1 Enable creation and use of sampling tables 0 Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled -Use general process 1 +Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV Max kinetic energy for tables 100 TeV -Number of bins per decade of a table 20 +Number of bins per decade of a table 7 Verbose level 1 Verbose level for worker thread 0 Bremsstrahlung energy threshold above which @@ -125,42 +144,42 @@ Livermore data directory epics_2017 ======================================================================= ====== Ionisation Parameters ======== ======================================================================= -Step function for e+- (0.2, 0.01 mm) -Step function for muons/hadrons (0.1, 0.05 mm) -Step function for light ions (0.1, 0.02 mm) -Step function for general ions (0.1, 0.001 mm) -Lowest e+e- kinetic energy 100 eV +Step function for e+- (0.2, 1 mm) +Step function for muons/hadrons (0.2, 0.1 mm) +Step function for light ions (0.2, 0.1 mm) +Step function for general ions (0.2, 0.1 mm) +Lowest e+e- kinetic energy 10 eV Lowest muon/hadron kinetic energy 1 keV -Use ICRU90 data 1 +Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 -Enable angular generator interface 1 +Enable angular generator interface 0 Max kinetic energy for CSDA tables 1 GeV -Max kinetic energy for NIEL computation 1 MeV +Max kinetic energy for NIEL computation 0 eV Linear loss limit 0.01 Read data from file for e+e- pair production by mu 0 ======================================================================= ====== Multiple Scattering Parameters ======== ======================================================================= -Type of msc step limit algorithm for e+- 2 +Type of msc step limit algorithm for e+- 1 Type of msc step limit algorithm for muons/hadrons 0 Msc lateral displacement for e+- enabled 1 -Msc lateral displacement for muons and hadrons 1 +Msc lateral displacement for muons and hadrons 0 Urban msc model lateral displacement alg96 1 -Range factor for msc step limit for e+- 0.08 +Range factor for msc step limit for e+- 0.04 Range factor for msc step limit for muons/hadrons 0.2 Geometry factor for msc step limitation of e+- 2.5 Safety factor for msc step limit for e+- 0.6 -Skin parameter for msc step limitation of e+- 3 +Skin parameter for msc step limitation of e+- 1 Lambda limit for msc step limit for e+- 1 mm Use Mott correction for e- scattering 1 Factor used for dynamic computation of angular limit between single and multiple scattering 1 Fixed angular limit between single - and multiple scattering 3.1416 rad + and multiple scattering 0 rad Upper energy limit for e+- multiple scattering 100 MeV Type of electron single scattering model 0 Type of nuclear form-factor 1 @@ -169,408 +188,343 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 -Auger electron cascade enabled 0 -PIXE atomic de-excitation enabled 0 +Directory in G4LEDATA for fluorescence data files fluor +Auger electron cascade enabled 1 +PIXE atomic de-excitation enabled 1 De-excitation module ignores cuts 0 Type of PIXE cross section for hadrons Empirical Type of PIXE cross section for e+- Livermore ======================================================================= ### === Deexcitation model UAtomDeexcitation is activated for 1 region: - DefaultRegionForTheWorld 1 0 0 + DefaultRegionForTheWorld 1 1 1 + +### === G4UAtomicDeexcitation::InitialiseForNewRun() +### === Auger flag: 1 ### === Ignore cuts flag: 0 +### === PIXE model for hadrons: Empirical +### === PIXE model for e+-: Livermore phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 TeV in 174 bins + LambdaPrime table from 200 keV to 100 TeV in 61 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 100 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 TeV in 160 bins + Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 56 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 TeV Fluo + KleinNishina : Emin= 0 eV Emax= 100 TeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 TeV, 20 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator -msc: for e- SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV - StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm - WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV - StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm - eIoni: for e- XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - PenIoni : Emin= 0 eV Emax= 100 keV - MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 100 TeV eBrem: for e- XStype:4 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS - eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai ePairProd: for e- XStype:3 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 Sampling table 25x1001 from 0.1 GeV to 100 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== ePairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi -CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 - Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 0 - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 +CoulombScat: for e- XStype:3 SubType=1 BuildTable=1 + Lambda table from 100 eV to 100 TeV, 7 bins/decade, spline: 0 + 0 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 100 MeV Emax= 100 TeV - -msc: for e+ SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV - StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm - WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV - StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm +eDPWACoulombScattering : Emin= 0 eV Emax= 100 MeV eIoni: for e+ XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - PenIoni : Emin= 0 eV Emax= 100 keV - MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 100 TeV eBrem: for e+ XStype:4 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS - eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai ePairProd: for e+ XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 Sampling table 25x1001 from 0.1 GeV to 100 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== ePairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi +CoulombScat: for e+ XStype:3 SubType=1 BuildTable=1 + Lambda table from 100 eV to 100 TeV, 7 bins/decade, spline: 0 + 0 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +eDPWACoulombScattering : Emin= 0 eV Emax= 100 MeV + annihil: for e+ XStype:2 SubType=5 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eplus2gg : Emin= 0 eV Emax= 100 TeV -CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 - Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 0 - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 100 MeV Emax= 100 TeV - -msc: for proton SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm - hIoni: for proton XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Bragg : Emin= 0 eV Emax= 2 MeV deltaVI - BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + Bragg : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV hBrems: for proton XStype:3 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi hPairProd: for proton XStype:3 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 Sampling table 17x1001 from 7.50618 GeV to 100 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi -CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 - Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 +CoulombScat: for proton XStype:3 SubType=1 BuildTable=1 + Lambda table from 100 eV to 100 TeV, 7 bins/decade, spline: 0 + 0 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eCoulombScattering : Emin= 0 eV Emax= 100 TeV -nuclearStopping: for proton SubType=8 BuildTable=0 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV - -msc: for GenericIon SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm - ionIoni: for GenericIon XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI + LindhardSorensen : Emin= 0 eV Emax= 100 TeV -nuclearStopping: for GenericIon SubType=8 BuildTable=0 +CoulombScat: for GenericIon XStype:3 SubType=1 BuildTable=0 + 0 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV - -msc: for alpha SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm +IonCoulombScattering : Emin= 0 eV Emax= 100 TeV ionIoni: for alpha XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BraggIon : Emin= 0 eV Emax=7.9452 MeV deltaVI - BetheBloch : Emin=7.9452 MeV Emax= 100 TeV deltaVI + BraggIon : Emin= 0 eV Emax=7.9452 MeV + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV -nuclearStopping: for alpha SubType=8 BuildTable=0 +CoulombScat: for alpha XStype:3 SubType=1 BuildTable=0 + 0 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV - -msc: for anti_proton SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm +IonCoulombScattering : Emin= 0 eV Emax= 100 TeV hIoni: for anti_proton XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI - BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV hBrems: for anti_proton XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi hPairProd: for anti_proton XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 Sampling table 17x1001 from 7.50618 GeV to 100 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi -CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 - Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 +CoulombScat: for anti_proton XStype:3 SubType=1 BuildTable=1 + Lambda table from 100 eV to 100 TeV, 7 bins/decade, spline: 0 + 0 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eCoulombScattering : Emin= 0 eV Emax= 100 TeV -msc: for kaon+ SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm - hIoni: for kaon+ XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI - BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI + Bragg : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV hBrems: for kaon+ XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi hPairProd: for kaon+ XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 Sampling table 18x1001 from 3.94942 GeV to 100 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi -CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 - Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 +CoulombScat: for kaon+ XStype:3 SubType=1 BuildTable=1 + Lambda table from 100 eV to 100 TeV, 7 bins/decade, spline: 0 + 0 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eCoulombScattering : Emin= 0 eV Emax= 100 TeV -msc: for kaon- SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm - hIoni: for kaon- XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI - BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV hBrems: for kaon- XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi hPairProd: for kaon- XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 Sampling table 18x1001 from 3.94942 GeV to 100 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi -CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 - Used Lambda table of kaon+ - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 +CoulombScat: for kaon- XStype:3 SubType=1 BuildTable=1 + Lambda table from 100 eV to 100 TeV, 7 bins/decade, spline: 0 + 0 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eCoulombScattering : Emin= 0 eV Emax= 100 TeV -msc: for mu+ SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm - muIoni: for mu+ XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Bragg : Emin= 0 eV Emax= 200 keV deltaVI + Bragg : Emin= 0 eV Emax= 200 keV MuBetheBloch : Emin= 200 keV Emax= 100 TeV muBrems: for mu+ XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi muPairProd: for mu+ XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 Sampling table 21x1001 from 0.85 GeV to 100 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi -CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 - Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 +CoulombScat: for mu+ XStype:3 SubType=1 BuildTable=1 + Lambda table from 100 eV to 100 TeV, 7 bins/decade, spline: 0 + 0 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eCoulombScattering : Emin= 0 eV Emax= 100 TeV -msc: for mu- SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm - muIoni: for mu- XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI + ICRU73QO : Emin= 0 eV Emax= 200 keV MuBetheBloch : Emin= 200 keV Emax= 100 TeV muBrems: for mu- XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi muPairProd: for mu- XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 Sampling table 21x1001 from 0.85 GeV to 100 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi -CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 +CoulombScat: for mu- XStype:3 SubType=1 BuildTable=1 Used Lambda table of mu+ - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + 0 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eCoulombScattering : Emin= 0 eV Emax= 100 TeV -msc: for pi+ SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm - hIoni: for pi+ XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Bragg : Emin= 0 eV Emax=297.505 keV deltaVI - BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI + Bragg : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV hBrems: for pi+ XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi hPairProd: for pi+ XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 Sampling table 20x1001 from 1.11656 GeV to 100 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi -CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 - Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 +CoulombScat: for pi+ XStype:3 SubType=1 BuildTable=1 + Lambda table from 100 eV to 100 TeV, 7 bins/decade, spline: 0 + 0 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eCoulombScattering : Emin= 0 eV Emax= 100 TeV -msc: for pi- SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm - hIoni: for pi- XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI - BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI + ICRU73QO : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV hBrems: for pi- XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi hPairProd: for pi- XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 240 bins - Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 Sampling table 20x1001 from 1.11656 GeV to 100 TeV ===== EM models for the G4Region DefaultRegionForTheWorld ====== hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi -CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 - Used Lambda table of pi+ - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 +CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1 + Lambda table from 100 eV to 100 TeV, 7 bins/decade, spline: 0 + 0 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eCoulombScattering : Emin= 0 eV Emax= 100 TeV @@ -709,6 +663,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -972,6 +931,32 @@ Store e- internal conversion data 0 Correlated gamma emission flag 0 Max 2J for sampling of angular correlations 10 ======================================================================= + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 2 used in the geometry : Yes + Material : crystal.material + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. ### Run 0 starts. @@ -1980,7 +1965,17 @@ Using --> Event 997 starts. --> Event 998 starts. --> Event 999 starts. + Run terminated. +Run Summary + Number of events processed : 1000 + User=89.510000s Real=99.074248s Sys=0.060000s ... write file : ExExCh.root - done ... close file : ExExCh.root - done Graphics systems deleted. Visualization Manager deleting... +G4 kernel has come to Quit state. +================== Deleting memory pools =================== +Number of memory pools allocated: 16 of which, static: 1 +Dynamic pools deleted: 15 / Total memory freed: 0.059 MB +============================================================ +RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/exoticphysics/channeling/mac/2009_PLB680_129.mac b/examples/extended/exoticphysics/channeling/mac/2009_PLB680_129.mac index f25a61ea3e..0aadfab48a 100644 --- a/examples/extended/exoticphysics/channeling/mac/2009_PLB680_129.mac +++ b/examples/extended/exoticphysics/channeling/mac/2009_PLB680_129.mac @@ -1,4 +1,4 @@ - +/run/verbose 1 #detector geometry /xtal/setMaterial G4_Si /xtal/setAngle 0. -25.25E-6 0. rad diff --git a/examples/extended/exoticphysics/channeling/src/G4ChannelingPhysics.cc b/examples/extended/exoticphysics/channeling/src/G4ChannelingPhysics.cc index 2e66044648..cf8301a94f 100644 --- a/examples/extended/exoticphysics/channeling/src/G4ChannelingPhysics.cc +++ b/examples/extended/exoticphysics/channeling/src/G4ChannelingPhysics.cc @@ -38,6 +38,7 @@ #include "G4BosonConstructor.hh" #include "G4BaryonConstructor.hh" #include "G4IonConstructor.hh" +#include "G4ProcessTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -72,6 +73,12 @@ void G4ChannelingPhysics::ConstructParticle(){ void G4ChannelingPhysics::ConstructProcess() { + auto ptable = G4ProcessTable::GetProcessTable(); + G4int verb = ptable->GetVerboseLevel(); + ptable->SetVerboseLevel(2); + ptable->SetProcessActivation("CoulombScat", false); + ptable->SetVerboseLevel(verb); + G4Channeling* channeling = new G4Channeling(); G4ParticleTable::G4PTblDicIterator* aParticleIterator = diff --git a/examples/extended/exoticphysics/dmparticle/dmparticle.out b/examples/extended/exoticphysics/dmparticle/dmparticle.out index ceccaec9f2..dbc1b3f5d2 100644 --- a/examples/extended/exoticphysics/dmparticle/dmparticle.out +++ b/examples/extended/exoticphysics/dmparticle/dmparticle.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -102,6 +104,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -129,7 +132,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -180,8 +183,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -576,550 +579,558 @@ Event = 0 z0 = -779.999 Primary direction = (0,0,1) ### New exotic particle produced: ldmphoton Ekin(GeV)= 16.4038 Mass(GeV)= 0.5 TrackId= 30 ### New exotic particle produced: ldmphoton Ekin(GeV)= 0.688632 Mass(GeV)= 0.5 TrackId= 42 ### New exotic particle produced: ldmphoton Ekin(GeV)= 45.2599 Mass(GeV)= 0.5 TrackId= 54 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.87119 Mass(GeV)= 0.5 TrackId= 7 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.36848 Mass(GeV)= 0.5 TrackId= 47 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.20312 Mass(GeV)= 0.5 TrackId= 48 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.60289 Mass(GeV)= 0.5 TrackId= 50 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.05422 Mass(GeV)= 0.5 TrackId= 63 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.04293 Mass(GeV)= 0.5 TrackId= 66 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.36963 Mass(GeV)= 0.5 TrackId= 91 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.61243 Mass(GeV)= 0.5 TrackId= 12 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.48298 Mass(GeV)= 0.5 TrackId= 46 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.33854 Mass(GeV)= 0.5 TrackId= 58 -### New exotic particle produced: ldmphoton Ekin(GeV)= 59.9034 Mass(GeV)= 0.5 TrackId= 67 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.660604 Mass(GeV)= 0.5 TrackId= 76 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.96381 Mass(GeV)= 0.5 TrackId= 3 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.63685 Mass(GeV)= 0.5 TrackId= 12 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.81285 Mass(GeV)= 0.5 TrackId= 13 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.06219 Mass(GeV)= 0.5 TrackId= 20 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.07529 Mass(GeV)= 0.5 TrackId= 67 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.20961 Mass(GeV)= 0.5 TrackId= 74 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.14306 Mass(GeV)= 0.5 TrackId= 30 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.7059 Mass(GeV)= 0.5 TrackId= 34 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.31733 Mass(GeV)= 0.5 TrackId= 51 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.45423 Mass(GeV)= 0.5 TrackId= 58 -### New exotic particle produced: ldmphoton Ekin(GeV)= 28.3036 Mass(GeV)= 0.5 TrackId= 66 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.16444 Mass(GeV)= 0.5 TrackId= 70 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.740984 Mass(GeV)= 0.5 TrackId= 7 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.18437 Mass(GeV)= 0.5 TrackId= 15 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.32723 Mass(GeV)= 0.5 TrackId= 18 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.813319 Mass(GeV)= 0.5 TrackId= 27 -### New exotic particle produced: ldmphoton Ekin(GeV)= 14.4257 Mass(GeV)= 0.5 TrackId= 53 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.769183 Mass(GeV)= 0.5 TrackId= 75 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.908283 Mass(GeV)= 0.5 TrackId= 80 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.814114 Mass(GeV)= 0.5 TrackId= 81 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.47974 Mass(GeV)= 0.5 TrackId= 83 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.42827 Mass(GeV)= 0.5 TrackId= 87 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.13207 Mass(GeV)= 0.5 TrackId= 11 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.43079 Mass(GeV)= 0.5 TrackId= 25 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.20789 Mass(GeV)= 0.5 TrackId= 48 -### New exotic particle produced: ldmphoton Ekin(GeV)= 15.8664 Mass(GeV)= 0.5 TrackId= 50 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.31794 Mass(GeV)= 0.5 TrackId= 62 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.46107 Mass(GeV)= 0.5 TrackId= 4 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.629892 Mass(GeV)= 0.5 TrackId= 5 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.06222 Mass(GeV)= 0.5 TrackId= 24 -### New exotic particle produced: ldmphoton Ekin(GeV)= 15.2595 Mass(GeV)= 0.5 TrackId= 26 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.02979 Mass(GeV)= 0.5 TrackId= 33 -### New exotic particle produced: ldmphoton Ekin(GeV)= 7.26204 Mass(GeV)= 0.5 TrackId= 36 -### New exotic particle produced: ldmphoton Ekin(GeV)= 36.7537 Mass(GeV)= 0.5 TrackId= 50 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.08365 Mass(GeV)= 0.5 TrackId= 62 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.1302 Mass(GeV)= 0.5 TrackId= 66 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.07676 Mass(GeV)= 0.5 TrackId= 67 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.11203 Mass(GeV)= 0.5 TrackId= 44 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.15563 Mass(GeV)= 0.5 TrackId= 48 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.71693 Mass(GeV)= 0.5 TrackId= 49 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.40222 Mass(GeV)= 0.5 TrackId= 59 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.42323 Mass(GeV)= 0.5 TrackId= 68 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.55966 Mass(GeV)= 0.5 TrackId= 6 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.05465 Mass(GeV)= 0.5 TrackId= 39 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.26122 Mass(GeV)= 0.5 TrackId= 53 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.99173 Mass(GeV)= 0.5 TrackId= 56 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.52632 Mass(GeV)= 0.5 TrackId= 60 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.05128 Mass(GeV)= 0.5 TrackId= 70 -### New exotic particle produced: ldmphoton Ekin(GeV)= 5.07532 Mass(GeV)= 0.5 TrackId= 77 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.9473 Mass(GeV)= 0.5 TrackId= 78 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.934378 Mass(GeV)= 0.5 TrackId= 6 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.932 Mass(GeV)= 0.5 TrackId= 11 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.31778 Mass(GeV)= 0.5 TrackId= 22 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.94546 Mass(GeV)= 0.5 TrackId= 23 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.93943 Mass(GeV)= 0.5 TrackId= 25 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.67843 Mass(GeV)= 0.5 TrackId= 35 +### New exotic particle produced: ldmphoton Ekin(GeV)= 10.1067 Mass(GeV)= 0.5 TrackId= 15 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.671282 Mass(GeV)= 0.5 TrackId= 35 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.85252 Mass(GeV)= 0.5 TrackId= 43 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.01335 Mass(GeV)= 0.5 TrackId= 44 +### New exotic particle produced: ldmphoton Ekin(GeV)= 25.1995 Mass(GeV)= 0.5 TrackId= 54 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.792736 Mass(GeV)= 0.5 TrackId= 75 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.51755 Mass(GeV)= 0.5 TrackId= 36 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.2549 Mass(GeV)= 0.5 TrackId= 41 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.07842 Mass(GeV)= 0.5 TrackId= 56 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.833884 Mass(GeV)= 0.5 TrackId= 63 +### New exotic particle produced: ldmphoton Ekin(GeV)= 19.4543 Mass(GeV)= 0.5 TrackId= 84 +### New exotic particle produced: ldmphoton Ekin(GeV)= 12.8398 Mass(GeV)= 0.5 TrackId= 2 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.68184 Mass(GeV)= 0.5 TrackId= 4 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.5562 Mass(GeV)= 0.5 TrackId= 18 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.25768 Mass(GeV)= 0.5 TrackId= 19 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.48397 Mass(GeV)= 0.5 TrackId= 28 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.13121 Mass(GeV)= 0.5 TrackId= 73 +### New exotic particle produced: ldmphoton Ekin(GeV)= 12.1146 Mass(GeV)= 0.5 TrackId= 14 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.36812 Mass(GeV)= 0.5 TrackId= 17 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.613397 Mass(GeV)= 0.5 TrackId= 68 +### New exotic particle produced: ldmphoton Ekin(GeV)= 12.5077 Mass(GeV)= 0.5 TrackId= 36 +### New exotic particle produced: ldmphoton Ekin(GeV)= 11.3916 Mass(GeV)= 0.5 TrackId= 42 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.943645 Mass(GeV)= 0.5 TrackId= 60 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.3074 Mass(GeV)= 0.5 TrackId= 6 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.29995 Mass(GeV)= 0.5 TrackId= 20 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.5629 Mass(GeV)= 0.5 TrackId= 26 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.8291 Mass(GeV)= 0.5 TrackId= 33 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.708201 Mass(GeV)= 0.5 TrackId= 36 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.728092 Mass(GeV)= 0.5 TrackId= 37 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.32469 Mass(GeV)= 0.5 TrackId= 40 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.10807 Mass(GeV)= 0.5 TrackId= 41 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.94339 Mass(GeV)= 0.5 TrackId= 46 +### New exotic particle produced: ldmphoton Ekin(GeV)= 7.95046 Mass(GeV)= 0.5 TrackId= 51 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.28581 Mass(GeV)= 0.5 TrackId= 86 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.00817 Mass(GeV)= 0.5 TrackId= 62 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.19878 Mass(GeV)= 0.5 TrackId= 71 +### New exotic particle produced: ldmphoton Ekin(GeV)= 42.324 Mass(GeV)= 0.5 TrackId= 74 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.55636 Mass(GeV)= 0.5 TrackId= 5 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.795986 Mass(GeV)= 0.5 TrackId= 13 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.43581 Mass(GeV)= 0.5 TrackId= 29 +### New exotic particle produced: ldmphoton Ekin(GeV)= 7.85392 Mass(GeV)= 0.5 TrackId= 32 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.713693 Mass(GeV)= 0.5 TrackId= 77 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.942534 Mass(GeV)= 0.5 TrackId= 78 --> Event 10 starts. -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.677279 Mass(GeV)= 0.5 TrackId= 12 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.35761 Mass(GeV)= 0.5 TrackId= 35 -### New exotic particle produced: ldmphoton Ekin(GeV)= 31.1562 Mass(GeV)= 0.5 TrackId= 50 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.16973 Mass(GeV)= 0.5 TrackId= 66 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.61456 Mass(GeV)= 0.5 TrackId= 29 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.6886 Mass(GeV)= 0.5 TrackId= 47 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.02733 Mass(GeV)= 0.5 TrackId= 50 -### New exotic particle produced: ldmphoton Ekin(GeV)= 19.078 Mass(GeV)= 0.5 TrackId= 59 -### New exotic particle produced: ldmphoton Ekin(GeV)= 7.32998 Mass(GeV)= 0.5 TrackId= 2 -### New exotic particle produced: ldmphoton Ekin(GeV)= 13.5559 Mass(GeV)= 0.5 TrackId= 25 -### New exotic particle produced: ldmphoton Ekin(GeV)= 45.3412 Mass(GeV)= 0.5 TrackId= 54 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.21756 Mass(GeV)= 0.5 TrackId= 68 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.89234 Mass(GeV)= 0.5 TrackId= 19 -### New exotic particle produced: ldmphoton Ekin(GeV)= 37.4162 Mass(GeV)= 0.5 TrackId= 27 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.867894 Mass(GeV)= 0.5 TrackId= 49 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.76512 Mass(GeV)= 0.5 TrackId= 75 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.13209 Mass(GeV)= 0.5 TrackId= 11 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.767966 Mass(GeV)= 0.5 TrackId= 31 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.65396 Mass(GeV)= 0.5 TrackId= 36 -### New exotic particle produced: ldmphoton Ekin(GeV)= 5.86827 Mass(GeV)= 0.5 TrackId= 38 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.964697 Mass(GeV)= 0.5 TrackId= 45 -### New exotic particle produced: ldmphoton Ekin(GeV)= 7.45889 Mass(GeV)= 0.5 TrackId= 49 -### New exotic particle produced: ldmphoton Ekin(GeV)= 8.7389 Mass(GeV)= 0.5 TrackId= 52 -### New exotic particle produced: ldmphoton Ekin(GeV)= 11.2637 Mass(GeV)= 0.5 TrackId= 54 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.859021 Mass(GeV)= 0.5 TrackId= 61 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.84784 Mass(GeV)= 0.5 TrackId= 12 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.65258 Mass(GeV)= 0.5 TrackId= 15 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.03585 Mass(GeV)= 0.5 TrackId= 16 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.12451 Mass(GeV)= 0.5 TrackId= 20 -### New exotic particle produced: ldmphoton Ekin(GeV)= 32.1126 Mass(GeV)= 0.5 TrackId= 53 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.9052 Mass(GeV)= 0.5 TrackId= 55 -### New exotic particle produced: ldmphoton Ekin(GeV)= 9.06327 Mass(GeV)= 0.5 TrackId= 58 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.704974 Mass(GeV)= 0.5 TrackId= 12 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.842421 Mass(GeV)= 0.5 TrackId= 13 -### New exotic particle produced: ldmphoton Ekin(GeV)= 11.4557 Mass(GeV)= 0.5 TrackId= 19 -### New exotic particle produced: ldmphoton Ekin(GeV)= 10.1441 Mass(GeV)= 0.5 TrackId= 27 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.763879 Mass(GeV)= 0.5 TrackId= 36 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.28561 Mass(GeV)= 0.5 TrackId= 40 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.06987 Mass(GeV)= 0.5 TrackId= 49 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.48611 Mass(GeV)= 0.5 TrackId= 53 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.969312 Mass(GeV)= 0.5 TrackId= 8 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.17392 Mass(GeV)= 0.5 TrackId= 44 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.15894 Mass(GeV)= 0.5 TrackId= 55 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.989105 Mass(GeV)= 0.5 TrackId= 58 -### New exotic particle produced: ldmphoton Ekin(GeV)= 24.2097 Mass(GeV)= 0.5 TrackId= 71 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.74114 Mass(GeV)= 0.5 TrackId= 3 -### New exotic particle produced: ldmphoton Ekin(GeV)= 79.9697 Mass(GeV)= 0.5 TrackId= 10 -### New exotic particle produced: ldmphoton Ekin(GeV)= 8.56585 Mass(GeV)= 0.5 TrackId= 20 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.91901 Mass(GeV)= 0.5 TrackId= 38 -### New exotic particle produced: ldmphoton Ekin(GeV)= 21.5914 Mass(GeV)= 0.5 TrackId= 39 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.618209 Mass(GeV)= 0.5 TrackId= 51 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.40228 Mass(GeV)= 0.5 TrackId= 52 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.97128 Mass(GeV)= 0.5 TrackId= 33 +### New exotic particle produced: ldmphoton Ekin(GeV)= 27.249 Mass(GeV)= 0.5 TrackId= 52 +### New exotic particle produced: ldmphoton Ekin(GeV)= 31.7579 Mass(GeV)= 0.5 TrackId= 57 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.23769 Mass(GeV)= 0.5 TrackId= 4 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.689954 Mass(GeV)= 0.5 TrackId= 5 +### New exotic particle produced: ldmphoton Ekin(GeV)= 11.9153 Mass(GeV)= 0.5 TrackId= 14 +### New exotic particle produced: ldmphoton Ekin(GeV)= 32.2321 Mass(GeV)= 0.5 TrackId= 22 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.20894 Mass(GeV)= 0.5 TrackId= 26 +### New exotic particle produced: ldmphoton Ekin(GeV)= 24.4807 Mass(GeV)= 0.5 TrackId= 3 +### New exotic particle produced: ldmphoton Ekin(GeV)= 14.7906 Mass(GeV)= 0.5 TrackId= 14 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.60678 Mass(GeV)= 0.5 TrackId= 36 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.929058 Mass(GeV)= 0.5 TrackId= 23 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.06253 Mass(GeV)= 0.5 TrackId= 33 +### New exotic particle produced: ldmphoton Ekin(GeV)= 10.1757 Mass(GeV)= 0.5 TrackId= 26 +### New exotic particle produced: ldmphoton Ekin(GeV)= 33.9858 Mass(GeV)= 0.5 TrackId= 67 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.7398 Mass(GeV)= 0.5 TrackId= 70 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.2544 Mass(GeV)= 0.5 TrackId= 74 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.6306 Mass(GeV)= 0.5 TrackId= 82 +### New exotic particle produced: ldmphoton Ekin(GeV)= 18.6818 Mass(GeV)= 0.5 TrackId= 85 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.30149 Mass(GeV)= 0.5 TrackId= 5 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.46922 Mass(GeV)= 0.5 TrackId= 6 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.09537 Mass(GeV)= 0.5 TrackId= 24 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.92213 Mass(GeV)= 0.5 TrackId= 30 +### New exotic particle produced: ldmphoton Ekin(GeV)= 7.33724 Mass(GeV)= 0.5 TrackId= 39 +### New exotic particle produced: ldmphoton Ekin(GeV)= 7.41962 Mass(GeV)= 0.5 TrackId= 69 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.991172 Mass(GeV)= 0.5 TrackId= 3 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.57634 Mass(GeV)= 0.5 TrackId= 13 +### New exotic particle produced: ldmphoton Ekin(GeV)= 11.1006 Mass(GeV)= 0.5 TrackId= 40 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.72782 Mass(GeV)= 0.5 TrackId= 54 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.754554 Mass(GeV)= 0.5 TrackId= 3 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.1834 Mass(GeV)= 0.5 TrackId= 26 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.723112 Mass(GeV)= 0.5 TrackId= 33 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.688558 Mass(GeV)= 0.5 TrackId= 34 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.6559 Mass(GeV)= 0.5 TrackId= 44 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.48459 Mass(GeV)= 0.5 TrackId= 62 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.04803 Mass(GeV)= 0.5 TrackId= 66 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.18214 Mass(GeV)= 0.5 TrackId= 3 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.82731 Mass(GeV)= 0.5 TrackId= 13 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.36886 Mass(GeV)= 0.5 TrackId= 22 +### New exotic particle produced: ldmphoton Ekin(GeV)= 48.7415 Mass(GeV)= 0.5 TrackId= 33 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.806108 Mass(GeV)= 0.5 TrackId= 52 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.859433 Mass(GeV)= 0.5 TrackId= 57 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.91171 Mass(GeV)= 0.5 TrackId= 66 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.51138 Mass(GeV)= 0.5 TrackId= 20 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.21022 Mass(GeV)= 0.5 TrackId= 25 +### New exotic particle produced: ldmphoton Ekin(GeV)= 37.202 Mass(GeV)= 0.5 TrackId= 28 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.01293 Mass(GeV)= 0.5 TrackId= 51 +### New exotic particle produced: ldmphoton Ekin(GeV)= 10.1369 Mass(GeV)= 0.5 TrackId= 72 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.726743 Mass(GeV)= 0.5 TrackId= 75 --> Event 20 starts. -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.724191 Mass(GeV)= 0.5 TrackId= 27 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.43446 Mass(GeV)= 0.5 TrackId= 36 -### New exotic particle produced: ldmphoton Ekin(GeV)= 31.9112 Mass(GeV)= 0.5 TrackId= 52 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.77319 Mass(GeV)= 0.5 TrackId= 32 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.21273 Mass(GeV)= 0.5 TrackId= 51 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.85057 Mass(GeV)= 0.5 TrackId= 59 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.755992 Mass(GeV)= 0.5 TrackId= 60 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.03879 Mass(GeV)= 0.5 TrackId= 64 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.21949 Mass(GeV)= 0.5 TrackId= 73 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.62967 Mass(GeV)= 0.5 TrackId= 17 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.600426 Mass(GeV)= 0.5 TrackId= 41 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.42658 Mass(GeV)= 0.5 TrackId= 45 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.33183 Mass(GeV)= 0.5 TrackId= 82 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.17761 Mass(GeV)= 0.5 TrackId= 3 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.623476 Mass(GeV)= 0.5 TrackId= 42 -### New exotic particle produced: ldmphoton Ekin(GeV)= 39.2532 Mass(GeV)= 0.5 TrackId= 46 -### New exotic particle produced: ldmphoton Ekin(GeV)= 22.8133 Mass(GeV)= 0.5 TrackId= 52 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.730254 Mass(GeV)= 0.5 TrackId= 61 -### New exotic particle produced: ldmphoton Ekin(GeV)= 5.44651 Mass(GeV)= 0.5 TrackId= 67 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.05302 Mass(GeV)= 0.5 TrackId= 6 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.917846 Mass(GeV)= 0.5 TrackId= 17 -### New exotic particle produced: ldmphoton Ekin(GeV)= 12.23 Mass(GeV)= 0.5 TrackId= 31 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.19957 Mass(GeV)= 0.5 TrackId= 38 -### New exotic particle produced: ldmphoton Ekin(GeV)= 20.6949 Mass(GeV)= 0.5 TrackId= 45 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.914396 Mass(GeV)= 0.5 TrackId= 57 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.12332 Mass(GeV)= 0.5 TrackId= 8 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.715293 Mass(GeV)= 0.5 TrackId= 33 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.35395 Mass(GeV)= 0.5 TrackId= 52 -### New exotic particle produced: ldmphoton Ekin(GeV)= 5.82493 Mass(GeV)= 0.5 TrackId= 57 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.91913 Mass(GeV)= 0.5 TrackId= 62 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.72013 Mass(GeV)= 0.5 TrackId= 70 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.74087 Mass(GeV)= 0.5 TrackId= 17 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.30863 Mass(GeV)= 0.5 TrackId= 25 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.14018 Mass(GeV)= 0.5 TrackId= 26 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.6308 Mass(GeV)= 0.5 TrackId= 33 -### New exotic particle produced: ldmphoton Ekin(GeV)= 28.486 Mass(GeV)= 0.5 TrackId= 51 -### New exotic particle produced: ldmphoton Ekin(GeV)= 15.4904 Mass(GeV)= 0.5 TrackId= 54 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.86119 Mass(GeV)= 0.5 TrackId= 18 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.642758 Mass(GeV)= 0.5 TrackId= 43 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.872369 Mass(GeV)= 0.5 TrackId= 13 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.46503 Mass(GeV)= 0.5 TrackId= 30 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.80553 Mass(GeV)= 0.5 TrackId= 38 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.30423 Mass(GeV)= 0.5 TrackId= 80 -### New exotic particle produced: ldmphoton Ekin(GeV)= 11.0633 Mass(GeV)= 0.5 TrackId= 84 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.70021 Mass(GeV)= 0.5 TrackId= 7 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.830344 Mass(GeV)= 0.5 TrackId= 11 -### New exotic particle produced: ldmphoton Ekin(GeV)= 12.925 Mass(GeV)= 0.5 TrackId= 13 -### New exotic particle produced: ldmphoton Ekin(GeV)= 11.8924 Mass(GeV)= 0.5 TrackId= 14 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.606295 Mass(GeV)= 0.5 TrackId= 37 -### New exotic particle produced: ldmphoton Ekin(GeV)= 9.60267 Mass(GeV)= 0.5 TrackId= 41 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.609376 Mass(GeV)= 0.5 TrackId= 51 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.02124 Mass(GeV)= 0.5 TrackId= 58 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.12028 Mass(GeV)= 0.5 TrackId= 63 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.863979 Mass(GeV)= 0.5 TrackId= 17 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.29207 Mass(GeV)= 0.5 TrackId= 23 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.742891 Mass(GeV)= 0.5 TrackId= 44 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.971433 Mass(GeV)= 0.5 TrackId= 48 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.23542 Mass(GeV)= 0.5 TrackId= 6 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.85828 Mass(GeV)= 0.5 TrackId= 11 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.72402 Mass(GeV)= 0.5 TrackId= 12 +### New exotic particle produced: ldmphoton Ekin(GeV)= 11.3723 Mass(GeV)= 0.5 TrackId= 14 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.927415 Mass(GeV)= 0.5 TrackId= 16 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.35251 Mass(GeV)= 0.5 TrackId= 31 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.37621 Mass(GeV)= 0.5 TrackId= 68 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.895309 Mass(GeV)= 0.5 TrackId= 70 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.72226 Mass(GeV)= 0.5 TrackId= 46 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.0047 Mass(GeV)= 0.5 TrackId= 59 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.48333 Mass(GeV)= 0.5 TrackId= 74 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.76385 Mass(GeV)= 0.5 TrackId= 12 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.8755 Mass(GeV)= 0.5 TrackId= 20 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.09735 Mass(GeV)= 0.5 TrackId= 29 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.930721 Mass(GeV)= 0.5 TrackId= 33 +### New exotic particle produced: ldmphoton Ekin(GeV)= 22.0701 Mass(GeV)= 0.5 TrackId= 54 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.73508 Mass(GeV)= 0.5 TrackId= 14 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.31176 Mass(GeV)= 0.5 TrackId= 23 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.83787 Mass(GeV)= 0.5 TrackId= 37 +### New exotic particle produced: ldmphoton Ekin(GeV)= 14.3798 Mass(GeV)= 0.5 TrackId= 39 +### New exotic particle produced: ldmphoton Ekin(GeV)= 7.90009 Mass(GeV)= 0.5 TrackId= 42 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.16936 Mass(GeV)= 0.5 TrackId= 61 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.35952 Mass(GeV)= 0.5 TrackId= 17 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.961539 Mass(GeV)= 0.5 TrackId= 25 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.752889 Mass(GeV)= 0.5 TrackId= 63 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.83365 Mass(GeV)= 0.5 TrackId= 66 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.16567 Mass(GeV)= 0.5 TrackId= 78 +### New exotic particle produced: ldmphoton Ekin(GeV)= 8.30358 Mass(GeV)= 0.5 TrackId= 80 +### New exotic particle produced: ldmphoton Ekin(GeV)= 13.052 Mass(GeV)= 0.5 TrackId= 87 +### New exotic particle produced: ldmphoton Ekin(GeV)= 29.779 Mass(GeV)= 0.5 TrackId= 3 +### New exotic particle produced: ldmphoton Ekin(GeV)= 7.38227 Mass(GeV)= 0.5 TrackId= 29 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.639196 Mass(GeV)= 0.5 TrackId= 35 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.752987 Mass(GeV)= 0.5 TrackId= 38 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.67782 Mass(GeV)= 0.5 TrackId= 40 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.4259 Mass(GeV)= 0.5 TrackId= 63 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.14859 Mass(GeV)= 0.5 TrackId= 79 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.61781 Mass(GeV)= 0.5 TrackId= 26 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.66811 Mass(GeV)= 0.5 TrackId= 33 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.63803 Mass(GeV)= 0.5 TrackId= 48 +### New exotic particle produced: ldmphoton Ekin(GeV)= 61.2002 Mass(GeV)= 0.5 TrackId= 41 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.15562 Mass(GeV)= 0.5 TrackId= 54 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.679335 Mass(GeV)= 0.5 TrackId= 72 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.08026 Mass(GeV)= 0.5 TrackId= 2 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.24981 Mass(GeV)= 0.5 TrackId= 8 +### New exotic particle produced: ldmphoton Ekin(GeV)= 26.3291 Mass(GeV)= 0.5 TrackId= 29 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.753737 Mass(GeV)= 0.5 TrackId= 31 --> Event 30 starts. -### New exotic particle produced: ldmphoton Ekin(GeV)= 12.4181 Mass(GeV)= 0.5 TrackId= 6 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.70443 Mass(GeV)= 0.5 TrackId= 23 -### New exotic particle produced: ldmphoton Ekin(GeV)= 24.759 Mass(GeV)= 0.5 TrackId= 49 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.12758 Mass(GeV)= 0.5 TrackId= 71 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.41125 Mass(GeV)= 0.5 TrackId= 22 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.76958 Mass(GeV)= 0.5 TrackId= 27 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.22244 Mass(GeV)= 0.5 TrackId= 34 -### New exotic particle produced: ldmphoton Ekin(GeV)= 9.27182 Mass(GeV)= 0.5 TrackId= 39 -### New exotic particle produced: ldmphoton Ekin(GeV)= 5.59065 Mass(GeV)= 0.5 TrackId= 54 -### New exotic particle produced: ldmphoton Ekin(GeV)= 24.0732 Mass(GeV)= 0.5 TrackId= 59 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.67036 Mass(GeV)= 0.5 TrackId= 60 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.73324 Mass(GeV)= 0.5 TrackId= 4 -### New exotic particle produced: ldmphoton Ekin(GeV)= 10.9216 Mass(GeV)= 0.5 TrackId= 20 -### New exotic particle produced: ldmphoton Ekin(GeV)= 22.6443 Mass(GeV)= 0.5 TrackId= 39 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.97568 Mass(GeV)= 0.5 TrackId= 45 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.64595 Mass(GeV)= 0.5 TrackId= 62 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.69106 Mass(GeV)= 0.5 TrackId= 75 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.18688 Mass(GeV)= 0.5 TrackId= 6 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.95447 Mass(GeV)= 0.5 TrackId= 52 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.32397 Mass(GeV)= 0.5 TrackId= 69 -### New exotic particle produced: ldmphoton Ekin(GeV)= 27.8778 Mass(GeV)= 0.5 TrackId= 21 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.38636 Mass(GeV)= 0.5 TrackId= 53 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.738407 Mass(GeV)= 0.5 TrackId= 54 -### New exotic particle produced: ldmphoton Ekin(GeV)= 7.28178 Mass(GeV)= 0.5 TrackId= 17 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.902177 Mass(GeV)= 0.5 TrackId= 18 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.7394 Mass(GeV)= 0.5 TrackId= 27 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.95792 Mass(GeV)= 0.5 TrackId= 37 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.30363 Mass(GeV)= 0.5 TrackId= 47 -### New exotic particle produced: ldmphoton Ekin(GeV)= 8.05769 Mass(GeV)= 0.5 TrackId= 63 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.776187 Mass(GeV)= 0.5 TrackId= 3 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.55296 Mass(GeV)= 0.5 TrackId= 7 -### New exotic particle produced: ldmphoton Ekin(GeV)= 20.2119 Mass(GeV)= 0.5 TrackId= 10 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.54012 Mass(GeV)= 0.5 TrackId= 42 -### New exotic particle produced: ldmphoton Ekin(GeV)= 10.6246 Mass(GeV)= 0.5 TrackId= 62 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.63086 Mass(GeV)= 0.5 TrackId= 5 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.01446 Mass(GeV)= 0.5 TrackId= 9 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.610828 Mass(GeV)= 0.5 TrackId= 37 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.97597 Mass(GeV)= 0.5 TrackId= 56 -### New exotic particle produced: ldmphoton Ekin(GeV)= 28.6954 Mass(GeV)= 0.5 TrackId= 3 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.51545 Mass(GeV)= 0.5 TrackId= 14 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.68145 Mass(GeV)= 0.5 TrackId= 17 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.3157 Mass(GeV)= 0.5 TrackId= 24 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.51616 Mass(GeV)= 0.5 TrackId= 29 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.75655 Mass(GeV)= 0.5 TrackId= 12 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.996844 Mass(GeV)= 0.5 TrackId= 15 -### New exotic particle produced: ldmphoton Ekin(GeV)= 10.0257 Mass(GeV)= 0.5 TrackId= 17 -### New exotic particle produced: ldmphoton Ekin(GeV)= 57.5406 Mass(GeV)= 0.5 TrackId= 27 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.759369 Mass(GeV)= 0.5 TrackId= 45 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.04086 Mass(GeV)= 0.5 TrackId= 58 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.996406 Mass(GeV)= 0.5 TrackId= 14 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.804382 Mass(GeV)= 0.5 TrackId= 16 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.861538 Mass(GeV)= 0.5 TrackId= 26 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.653444 Mass(GeV)= 0.5 TrackId= 55 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.868515 Mass(GeV)= 0.5 TrackId= 61 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.41651 Mass(GeV)= 0.5 TrackId= 69 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.885783 Mass(GeV)= 0.5 TrackId= 10 +### New exotic particle produced: ldmphoton Ekin(GeV)= 58.4155 Mass(GeV)= 0.5 TrackId= 18 +### New exotic particle produced: ldmphoton Ekin(GeV)= 16.2218 Mass(GeV)= 0.5 TrackId= 60 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.629974 Mass(GeV)= 0.5 TrackId= 62 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.61358 Mass(GeV)= 0.5 TrackId= 7 +### New exotic particle produced: ldmphoton Ekin(GeV)= 17.3071 Mass(GeV)= 0.5 TrackId= 18 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.41845 Mass(GeV)= 0.5 TrackId= 29 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.985892 Mass(GeV)= 0.5 TrackId= 30 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.66243 Mass(GeV)= 0.5 TrackId= 35 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.00546 Mass(GeV)= 0.5 TrackId= 37 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.61097 Mass(GeV)= 0.5 TrackId= 39 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.27149 Mass(GeV)= 0.5 TrackId= 51 +### New exotic particle produced: ldmphoton Ekin(GeV)= 25.1636 Mass(GeV)= 0.5 TrackId= 61 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.720589 Mass(GeV)= 0.5 TrackId= 67 +### New exotic particle produced: ldmphoton Ekin(GeV)= 8.18306 Mass(GeV)= 0.5 TrackId= 2 +### New exotic particle produced: ldmphoton Ekin(GeV)= 9.81846 Mass(GeV)= 0.5 TrackId= 12 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.782307 Mass(GeV)= 0.5 TrackId= 34 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.02115 Mass(GeV)= 0.5 TrackId= 47 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.41588 Mass(GeV)= 0.5 TrackId= 49 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.14638 Mass(GeV)= 0.5 TrackId= 59 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.14757 Mass(GeV)= 0.5 TrackId= 83 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.75307 Mass(GeV)= 0.5 TrackId= 6 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.73792 Mass(GeV)= 0.5 TrackId= 10 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.36845 Mass(GeV)= 0.5 TrackId= 46 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.30931 Mass(GeV)= 0.5 TrackId= 54 +### New exotic particle produced: ldmphoton Ekin(GeV)= 31.7803 Mass(GeV)= 0.5 TrackId= 73 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.82999 Mass(GeV)= 0.5 TrackId= 5 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.841259 Mass(GeV)= 0.5 TrackId= 16 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.698088 Mass(GeV)= 0.5 TrackId= 17 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.94563 Mass(GeV)= 0.5 TrackId= 22 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.840831 Mass(GeV)= 0.5 TrackId= 25 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.68854 Mass(GeV)= 0.5 TrackId= 27 +### New exotic particle produced: ldmphoton Ekin(GeV)= 16.781 Mass(GeV)= 0.5 TrackId= 54 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.04784 Mass(GeV)= 0.5 TrackId= 85 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.706546 Mass(GeV)= 0.5 TrackId= 11 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.63838 Mass(GeV)= 0.5 TrackId= 18 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.48445 Mass(GeV)= 0.5 TrackId= 44 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.78064 Mass(GeV)= 0.5 TrackId= 55 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.69159 Mass(GeV)= 0.5 TrackId= 59 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.78826 Mass(GeV)= 0.5 TrackId= 61 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.11677 Mass(GeV)= 0.5 TrackId= 73 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.38827 Mass(GeV)= 0.5 TrackId= 15 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.02296 Mass(GeV)= 0.5 TrackId= 32 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.855751 Mass(GeV)= 0.5 TrackId= 38 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.967638 Mass(GeV)= 0.5 TrackId= 40 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.09699 Mass(GeV)= 0.5 TrackId= 60 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.77455 Mass(GeV)= 0.5 TrackId= 2 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.93705 Mass(GeV)= 0.5 TrackId= 18 +### New exotic particle produced: ldmphoton Ekin(GeV)= 19.5474 Mass(GeV)= 0.5 TrackId= 20 --> Event 40 starts. -### New exotic particle produced: ldmphoton Ekin(GeV)= 8.98069 Mass(GeV)= 0.5 TrackId= 13 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.750808 Mass(GeV)= 0.5 TrackId= 34 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.50748 Mass(GeV)= 0.5 TrackId= 62 -### New exotic particle produced: ldmphoton Ekin(GeV)= 23.8009 Mass(GeV)= 0.5 TrackId= 52 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.994033 Mass(GeV)= 0.5 TrackId= 56 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.13321 Mass(GeV)= 0.5 TrackId= 66 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.621327 Mass(GeV)= 0.5 TrackId= 70 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.74225 Mass(GeV)= 0.5 TrackId= 4 -### New exotic particle produced: ldmphoton Ekin(GeV)= 17.0851 Mass(GeV)= 0.5 TrackId= 5 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.945135 Mass(GeV)= 0.5 TrackId= 20 -### New exotic particle produced: ldmphoton Ekin(GeV)= 16.3973 Mass(GeV)= 0.5 TrackId= 28 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.40639 Mass(GeV)= 0.5 TrackId= 41 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.6674 Mass(GeV)= 0.5 TrackId= 8 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.57619 Mass(GeV)= 0.5 TrackId= 23 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.17007 Mass(GeV)= 0.5 TrackId= 25 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.50518 Mass(GeV)= 0.5 TrackId= 31 -### New exotic particle produced: ldmphoton Ekin(GeV)= 5.14103 Mass(GeV)= 0.5 TrackId= 37 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.60014 Mass(GeV)= 0.5 TrackId= 38 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.714261 Mass(GeV)= 0.5 TrackId= 40 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.05149 Mass(GeV)= 0.5 TrackId= 54 -### New exotic particle produced: ldmphoton Ekin(GeV)= 37.6374 Mass(GeV)= 0.5 TrackId= 56 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.35836 Mass(GeV)= 0.5 TrackId= 4 -### New exotic particle produced: ldmphoton Ekin(GeV)= 19.8383 Mass(GeV)= 0.5 TrackId= 11 -### New exotic particle produced: ldmphoton Ekin(GeV)= 7.53593 Mass(GeV)= 0.5 TrackId= 56 -### New exotic particle produced: ldmphoton Ekin(GeV)= 10.946 Mass(GeV)= 0.5 TrackId= 3 -### New exotic particle produced: ldmphoton Ekin(GeV)= 9.10088 Mass(GeV)= 0.5 TrackId= 5 -### New exotic particle produced: ldmphoton Ekin(GeV)= 30.3241 Mass(GeV)= 0.5 TrackId= 31 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.644802 Mass(GeV)= 0.5 TrackId= 41 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.603123 Mass(GeV)= 0.5 TrackId= 56 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.54447 Mass(GeV)= 0.5 TrackId= 67 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.909144 Mass(GeV)= 0.5 TrackId= 13 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.11774 Mass(GeV)= 0.5 TrackId= 14 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.10563 Mass(GeV)= 0.5 TrackId= 28 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.25953 Mass(GeV)= 0.5 TrackId= 46 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.56417 Mass(GeV)= 0.5 TrackId= 48 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.13106 Mass(GeV)= 0.5 TrackId= 52 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.63376 Mass(GeV)= 0.5 TrackId= 64 -### New exotic particle produced: ldmphoton Ekin(GeV)= 26.9468 Mass(GeV)= 0.5 TrackId= 65 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.793465 Mass(GeV)= 0.5 TrackId= 75 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.864513 Mass(GeV)= 0.5 TrackId= 83 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.07659 Mass(GeV)= 0.5 TrackId= 11 -### New exotic particle produced: ldmphoton Ekin(GeV)= 8.62995 Mass(GeV)= 0.5 TrackId= 21 -### New exotic particle produced: ldmphoton Ekin(GeV)= 44.7733 Mass(GeV)= 0.5 TrackId= 26 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.30937 Mass(GeV)= 0.5 TrackId= 44 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.57335 Mass(GeV)= 0.5 TrackId= 69 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.5782 Mass(GeV)= 0.5 TrackId= 6 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.761889 Mass(GeV)= 0.5 TrackId= 16 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.75583 Mass(GeV)= 0.5 TrackId= 23 -### New exotic particle produced: ldmphoton Ekin(GeV)= 10.3358 Mass(GeV)= 0.5 TrackId= 38 -### New exotic particle produced: ldmphoton Ekin(GeV)= 19.4868 Mass(GeV)= 0.5 TrackId= 39 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.25265 Mass(GeV)= 0.5 TrackId= 73 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.86225 Mass(GeV)= 0.5 TrackId= 30 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.600411 Mass(GeV)= 0.5 TrackId= 34 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.18267 Mass(GeV)= 0.5 TrackId= 58 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.89148 Mass(GeV)= 0.5 TrackId= 70 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.27774 Mass(GeV)= 0.5 TrackId= 74 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.610285 Mass(GeV)= 0.5 TrackId= 3 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.91309 Mass(GeV)= 0.5 TrackId= 10 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.8606 Mass(GeV)= 0.5 TrackId= 21 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.96477 Mass(GeV)= 0.5 TrackId= 43 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.98432 Mass(GeV)= 0.5 TrackId= 53 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.688447 Mass(GeV)= 0.5 TrackId= 62 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.667156 Mass(GeV)= 0.5 TrackId= 77 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.18877 Mass(GeV)= 0.5 TrackId= 80 +### New exotic particle produced: ldmphoton Ekin(GeV)= 14.2366 Mass(GeV)= 0.5 TrackId= 3 +### New exotic particle produced: ldmphoton Ekin(GeV)= 23.6836 Mass(GeV)= 0.5 TrackId= 20 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.11822 Mass(GeV)= 0.5 TrackId= 35 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.748598 Mass(GeV)= 0.5 TrackId= 40 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.12613 Mass(GeV)= 0.5 TrackId= 68 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.05951 Mass(GeV)= 0.5 TrackId= 71 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.749979 Mass(GeV)= 0.5 TrackId= 10 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.00187 Mass(GeV)= 0.5 TrackId= 15 +### New exotic particle produced: ldmphoton Ekin(GeV)= 23.0014 Mass(GeV)= 0.5 TrackId= 18 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.64522 Mass(GeV)= 0.5 TrackId= 29 +### New exotic particle produced: ldmphoton Ekin(GeV)= 41.5137 Mass(GeV)= 0.5 TrackId= 53 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.58952 Mass(GeV)= 0.5 TrackId= 66 +### New exotic particle produced: ldmphoton Ekin(GeV)= 27.0556 Mass(GeV)= 0.5 TrackId= 11 +### New exotic particle produced: ldmphoton Ekin(GeV)= 13.2997 Mass(GeV)= 0.5 TrackId= 41 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.956043 Mass(GeV)= 0.5 TrackId= 3 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.17378 Mass(GeV)= 0.5 TrackId= 43 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.35246 Mass(GeV)= 0.5 TrackId= 53 +### New exotic particle produced: ldmphoton Ekin(GeV)= 9.21076 Mass(GeV)= 0.5 TrackId= 56 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.983175 Mass(GeV)= 0.5 TrackId= 3 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.03793 Mass(GeV)= 0.5 TrackId= 9 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.78457 Mass(GeV)= 0.5 TrackId= 10 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.83021 Mass(GeV)= 0.5 TrackId= 11 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.21593 Mass(GeV)= 0.5 TrackId= 16 +### New exotic particle produced: ldmphoton Ekin(GeV)= 13.7992 Mass(GeV)= 0.5 TrackId= 29 +### New exotic particle produced: ldmphoton Ekin(GeV)= 30.2947 Mass(GeV)= 0.5 TrackId= 40 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.30929 Mass(GeV)= 0.5 TrackId= 57 +### New exotic particle produced: ldmphoton Ekin(GeV)= 49.4048 Mass(GeV)= 0.5 TrackId= 2 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.742756 Mass(GeV)= 0.5 TrackId= 7 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.808044 Mass(GeV)= 0.5 TrackId= 20 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.622528 Mass(GeV)= 0.5 TrackId= 25 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.91844 Mass(GeV)= 0.5 TrackId= 31 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.94272 Mass(GeV)= 0.5 TrackId= 45 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.05171 Mass(GeV)= 0.5 TrackId= 52 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.81232 Mass(GeV)= 0.5 TrackId= 56 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.757093 Mass(GeV)= 0.5 TrackId= 13 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.08765 Mass(GeV)= 0.5 TrackId= 7 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.3459 Mass(GeV)= 0.5 TrackId= 49 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.02247 Mass(GeV)= 0.5 TrackId= 51 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.00228 Mass(GeV)= 0.5 TrackId= 53 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.26046 Mass(GeV)= 0.5 TrackId= 71 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.36661 Mass(GeV)= 0.5 TrackId= 5 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.77511 Mass(GeV)= 0.5 TrackId= 13 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.70068 Mass(GeV)= 0.5 TrackId= 15 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.69239 Mass(GeV)= 0.5 TrackId= 23 +### New exotic particle produced: ldmphoton Ekin(GeV)= 9.67422 Mass(GeV)= 0.5 TrackId= 39 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.12751 Mass(GeV)= 0.5 TrackId= 50 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.97544 Mass(GeV)= 0.5 TrackId= 60 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.19703 Mass(GeV)= 0.5 TrackId= 65 --> Event 50 starts. -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.18341 Mass(GeV)= 0.5 TrackId= 11 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.93648 Mass(GeV)= 0.5 TrackId= 17 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.746057 Mass(GeV)= 0.5 TrackId= 34 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.604555 Mass(GeV)= 0.5 TrackId= 49 -### New exotic particle produced: ldmphoton Ekin(GeV)= 13.3974 Mass(GeV)= 0.5 TrackId= 52 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.68783 Mass(GeV)= 0.5 TrackId= 72 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.55452 Mass(GeV)= 0.5 TrackId= 10 -### New exotic particle produced: ldmphoton Ekin(GeV)= 8.06888 Mass(GeV)= 0.5 TrackId= 14 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.46219 Mass(GeV)= 0.5 TrackId= 48 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.12774 Mass(GeV)= 0.5 TrackId= 58 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.20934 Mass(GeV)= 0.5 TrackId= 60 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.08896 Mass(GeV)= 0.5 TrackId= 71 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.953597 Mass(GeV)= 0.5 TrackId= 11 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.899598 Mass(GeV)= 0.5 TrackId= 17 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.79891 Mass(GeV)= 0.5 TrackId= 23 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.8141 Mass(GeV)= 0.5 TrackId= 47 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.53027 Mass(GeV)= 0.5 TrackId= 58 -### New exotic particle produced: ldmphoton Ekin(GeV)= 5.89705 Mass(GeV)= 0.5 TrackId= 60 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.81215 Mass(GeV)= 0.5 TrackId= 12 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.69491 Mass(GeV)= 0.5 TrackId= 29 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.07199 Mass(GeV)= 0.5 TrackId= 42 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.24734 Mass(GeV)= 0.5 TrackId= 49 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.45983 Mass(GeV)= 0.5 TrackId= 52 -### New exotic particle produced: ldmphoton Ekin(GeV)= 15.2295 Mass(GeV)= 0.5 TrackId= 58 -### New exotic particle produced: ldmphoton Ekin(GeV)= 8.7121 Mass(GeV)= 0.5 TrackId= 69 -### New exotic particle produced: ldmphoton Ekin(GeV)= 15.2326 Mass(GeV)= 0.5 TrackId= 26 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.717882 Mass(GeV)= 0.5 TrackId= 30 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.25537 Mass(GeV)= 0.5 TrackId= 40 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.05753 Mass(GeV)= 0.5 TrackId= 50 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.46443 Mass(GeV)= 0.5 TrackId= 61 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.605833 Mass(GeV)= 0.5 TrackId= 30 -### New exotic particle produced: ldmphoton Ekin(GeV)= 10.4121 Mass(GeV)= 0.5 TrackId= 43 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.958579 Mass(GeV)= 0.5 TrackId= 49 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.14732 Mass(GeV)= 0.5 TrackId= 61 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.61782 Mass(GeV)= 0.5 TrackId= 70 -### New exotic particle produced: ldmphoton Ekin(GeV)= 29.9055 Mass(GeV)= 0.5 TrackId= 80 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.3945 Mass(GeV)= 0.5 TrackId= 44 -### New exotic particle produced: ldmphoton Ekin(GeV)= 5.68539 Mass(GeV)= 0.5 TrackId= 68 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.96374 Mass(GeV)= 0.5 TrackId= 70 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.87504 Mass(GeV)= 0.5 TrackId= 13 -### New exotic particle produced: ldmphoton Ekin(GeV)= 17.8145 Mass(GeV)= 0.5 TrackId= 55 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.985095 Mass(GeV)= 0.5 TrackId= 56 -### New exotic particle produced: ldmphoton Ekin(GeV)= 17.31 Mass(GeV)= 0.5 TrackId= 57 -### New exotic particle produced: ldmphoton Ekin(GeV)= 7.01754 Mass(GeV)= 0.5 TrackId= 64 -### New exotic particle produced: ldmphoton Ekin(GeV)= 45.3814 Mass(GeV)= 0.5 TrackId= 83 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.62923 Mass(GeV)= 0.5 TrackId= 6 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.29499 Mass(GeV)= 0.5 TrackId= 10 -### New exotic particle produced: ldmphoton Ekin(GeV)= 15.5831 Mass(GeV)= 0.5 TrackId= 15 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.14041 Mass(GeV)= 0.5 TrackId= 20 -### New exotic particle produced: ldmphoton Ekin(GeV)= 22.254 Mass(GeV)= 0.5 TrackId= 21 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.979088 Mass(GeV)= 0.5 TrackId= 26 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.37235 Mass(GeV)= 0.5 TrackId= 29 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.40277 Mass(GeV)= 0.5 TrackId= 50 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.51468 Mass(GeV)= 0.5 TrackId= 58 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.23556 Mass(GeV)= 0.5 TrackId= 3 -### New exotic particle produced: ldmphoton Ekin(GeV)= 47.8518 Mass(GeV)= 0.5 TrackId= 6 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.29273 Mass(GeV)= 0.5 TrackId= 43 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.65344 Mass(GeV)= 0.5 TrackId= 65 -### New exotic particle produced: ldmphoton Ekin(GeV)= 9.91187 Mass(GeV)= 0.5 TrackId= 71 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.939063 Mass(GeV)= 0.5 TrackId= 11 +### New exotic particle produced: ldmphoton Ekin(GeV)= 9.74707 Mass(GeV)= 0.5 TrackId= 12 +### New exotic particle produced: ldmphoton Ekin(GeV)= 7.84627 Mass(GeV)= 0.5 TrackId= 13 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.88605 Mass(GeV)= 0.5 TrackId= 17 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.29403 Mass(GeV)= 0.5 TrackId= 31 +### New exotic particle produced: ldmphoton Ekin(GeV)= 34.9113 Mass(GeV)= 0.5 TrackId= 56 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.83859 Mass(GeV)= 0.5 TrackId= 77 +### New exotic particle produced: ldmphoton Ekin(GeV)= 12.2459 Mass(GeV)= 0.5 TrackId= 3 +### New exotic particle produced: ldmphoton Ekin(GeV)= 10.2614 Mass(GeV)= 0.5 TrackId= 7 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.1831 Mass(GeV)= 0.5 TrackId= 10 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.15171 Mass(GeV)= 0.5 TrackId= 43 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.16605 Mass(GeV)= 0.5 TrackId= 47 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.18251 Mass(GeV)= 0.5 TrackId= 51 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.777538 Mass(GeV)= 0.5 TrackId= 52 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.23644 Mass(GeV)= 0.5 TrackId= 66 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.10837 Mass(GeV)= 0.5 TrackId= 82 +### New exotic particle produced: ldmphoton Ekin(GeV)= 7.9752 Mass(GeV)= 0.5 TrackId= 18 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.74269 Mass(GeV)= 0.5 TrackId= 40 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.89326 Mass(GeV)= 0.5 TrackId= 49 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.7509 Mass(GeV)= 0.5 TrackId= 50 +### New exotic particle produced: ldmphoton Ekin(GeV)= 29.9268 Mass(GeV)= 0.5 TrackId= 59 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.797401 Mass(GeV)= 0.5 TrackId= 11 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.00598 Mass(GeV)= 0.5 TrackId= 13 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.785794 Mass(GeV)= 0.5 TrackId= 25 +### New exotic particle produced: ldmphoton Ekin(GeV)= 9.61311 Mass(GeV)= 0.5 TrackId= 50 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.59553 Mass(GeV)= 0.5 TrackId= 6 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.10837 Mass(GeV)= 0.5 TrackId= 26 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.752585 Mass(GeV)= 0.5 TrackId= 34 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.822775 Mass(GeV)= 0.5 TrackId= 55 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.7365 Mass(GeV)= 0.5 TrackId= 72 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.61176 Mass(GeV)= 0.5 TrackId= 76 +### New exotic particle produced: ldmphoton Ekin(GeV)= 12.5162 Mass(GeV)= 0.5 TrackId= 81 +### New exotic particle produced: ldmphoton Ekin(GeV)= 7.12231 Mass(GeV)= 0.5 TrackId= 18 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.31593 Mass(GeV)= 0.5 TrackId= 35 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.929064 Mass(GeV)= 0.5 TrackId= 44 +### New exotic particle produced: ldmphoton Ekin(GeV)= 8.11103 Mass(GeV)= 0.5 TrackId= 46 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.57 Mass(GeV)= 0.5 TrackId= 49 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.4301 Mass(GeV)= 0.5 TrackId= 51 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.47379 Mass(GeV)= 0.5 TrackId= 57 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.603898 Mass(GeV)= 0.5 TrackId= 60 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.35537 Mass(GeV)= 0.5 TrackId= 67 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.682019 Mass(GeV)= 0.5 TrackId= 12 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.20133 Mass(GeV)= 0.5 TrackId= 49 +### New exotic particle produced: ldmphoton Ekin(GeV)= 15.2581 Mass(GeV)= 0.5 TrackId= 59 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.27935 Mass(GeV)= 0.5 TrackId= 63 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.695642 Mass(GeV)= 0.5 TrackId= 70 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.737959 Mass(GeV)= 0.5 TrackId= 14 +### New exotic particle produced: ldmphoton Ekin(GeV)= 27.2888 Mass(GeV)= 0.5 TrackId= 16 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.0129 Mass(GeV)= 0.5 TrackId= 27 +### New exotic particle produced: ldmphoton Ekin(GeV)= 8.87528 Mass(GeV)= 0.5 TrackId= 29 +### New exotic particle produced: ldmphoton Ekin(GeV)= 8.88335 Mass(GeV)= 0.5 TrackId= 38 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.994834 Mass(GeV)= 0.5 TrackId= 42 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.851141 Mass(GeV)= 0.5 TrackId= 66 +### New exotic particle produced: ldmphoton Ekin(GeV)= 21.0097 Mass(GeV)= 0.5 TrackId= 25 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.2182 Mass(GeV)= 0.5 TrackId= 30 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.651799 Mass(GeV)= 0.5 TrackId= 33 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.86603 Mass(GeV)= 0.5 TrackId= 34 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.20693 Mass(GeV)= 0.5 TrackId= 37 +### New exotic particle produced: ldmphoton Ekin(GeV)= 13.0614 Mass(GeV)= 0.5 TrackId= 78 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.4096 Mass(GeV)= 0.5 TrackId= 6 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.693604 Mass(GeV)= 0.5 TrackId= 20 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.89265 Mass(GeV)= 0.5 TrackId= 40 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.01465 Mass(GeV)= 0.5 TrackId= 42 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.62236 Mass(GeV)= 0.5 TrackId= 50 +### New exotic particle produced: ldmphoton Ekin(GeV)= 24.696 Mass(GeV)= 0.5 TrackId= 64 --> Event 60 starts. -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.57097 Mass(GeV)= 0.5 TrackId= 34 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.752681 Mass(GeV)= 0.5 TrackId= 54 -### New exotic particle produced: ldmphoton Ekin(GeV)= 42.9877 Mass(GeV)= 0.5 TrackId= 55 -### New exotic particle produced: ldmphoton Ekin(GeV)= 11.1762 Mass(GeV)= 0.5 TrackId= 4 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.33258 Mass(GeV)= 0.5 TrackId= 19 -### New exotic particle produced: ldmphoton Ekin(GeV)= 29.2139 Mass(GeV)= 0.5 TrackId= 20 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.60067 Mass(GeV)= 0.5 TrackId= 33 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.17831 Mass(GeV)= 0.5 TrackId= 44 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.749901 Mass(GeV)= 0.5 TrackId= 54 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.4394 Mass(GeV)= 0.5 TrackId= 56 -### New exotic particle produced: ldmphoton Ekin(GeV)= 25.2577 Mass(GeV)= 0.5 TrackId= 59 -### New exotic particle produced: ldmphoton Ekin(GeV)= 7.88796 Mass(GeV)= 0.5 TrackId= 76 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.60622 Mass(GeV)= 0.5 TrackId= 77 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.768611 Mass(GeV)= 0.5 TrackId= 18 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.8083 Mass(GeV)= 0.5 TrackId= 25 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.63141 Mass(GeV)= 0.5 TrackId= 63 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.08157 Mass(GeV)= 0.5 TrackId= 68 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.772895 Mass(GeV)= 0.5 TrackId= 76 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.61038 Mass(GeV)= 0.5 TrackId= 88 -### New exotic particle produced: ldmphoton Ekin(GeV)= 21.1299 Mass(GeV)= 0.5 TrackId= 33 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.0769 Mass(GeV)= 0.5 TrackId= 37 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.93895 Mass(GeV)= 0.5 TrackId= 43 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.29414 Mass(GeV)= 0.5 TrackId= 15 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.96114 Mass(GeV)= 0.5 TrackId= 17 -### New exotic particle produced: ldmphoton Ekin(GeV)= 8.77777 Mass(GeV)= 0.5 TrackId= 49 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.78909 Mass(GeV)= 0.5 TrackId= 54 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.97944 Mass(GeV)= 0.5 TrackId= 73 -### New exotic particle produced: ldmphoton Ekin(GeV)= 18.0777 Mass(GeV)= 0.5 TrackId= 25 -### New exotic particle produced: ldmphoton Ekin(GeV)= 41.2576 Mass(GeV)= 0.5 TrackId= 68 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.8298 Mass(GeV)= 0.5 TrackId= 2 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.17506 Mass(GeV)= 0.5 TrackId= 13 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.98892 Mass(GeV)= 0.5 TrackId= 14 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.22901 Mass(GeV)= 0.5 TrackId= 22 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.10398 Mass(GeV)= 0.5 TrackId= 24 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.25566 Mass(GeV)= 0.5 TrackId= 35 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.77522 Mass(GeV)= 0.5 TrackId= 44 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.38808 Mass(GeV)= 0.5 TrackId= 45 -### New exotic particle produced: ldmphoton Ekin(GeV)= 53.8307 Mass(GeV)= 0.5 TrackId= 50 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.82771 Mass(GeV)= 0.5 TrackId= 65 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.81998 Mass(GeV)= 0.5 TrackId= 8 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.86445 Mass(GeV)= 0.5 TrackId= 50 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.956625 Mass(GeV)= 0.5 TrackId= 58 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.686665 Mass(GeV)= 0.5 TrackId= 6 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.60207 Mass(GeV)= 0.5 TrackId= 10 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.63173 Mass(GeV)= 0.5 TrackId= 34 -### New exotic particle produced: ldmphoton Ekin(GeV)= 11.7698 Mass(GeV)= 0.5 TrackId= 69 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.66172 Mass(GeV)= 0.5 TrackId= 80 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.89419 Mass(GeV)= 0.5 TrackId= 3 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.83386 Mass(GeV)= 0.5 TrackId= 14 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.22746 Mass(GeV)= 0.5 TrackId= 21 +### New exotic particle produced: ldmphoton Ekin(GeV)= 17.8661 Mass(GeV)= 0.5 TrackId= 27 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.1102 Mass(GeV)= 0.5 TrackId= 29 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.43326 Mass(GeV)= 0.5 TrackId= 35 +### New exotic particle produced: ldmphoton Ekin(GeV)= 15.1362 Mass(GeV)= 0.5 TrackId= 38 +### New exotic particle produced: ldmphoton Ekin(GeV)= 11.9039 Mass(GeV)= 0.5 TrackId= 52 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.18727 Mass(GeV)= 0.5 TrackId= 12 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.38625 Mass(GeV)= 0.5 TrackId= 24 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.57912 Mass(GeV)= 0.5 TrackId= 62 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.4502 Mass(GeV)= 0.5 TrackId= 70 +### New exotic particle produced: ldmphoton Ekin(GeV)= 25.8826 Mass(GeV)= 0.5 TrackId= 86 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.821187 Mass(GeV)= 0.5 TrackId= 8 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.279 Mass(GeV)= 0.5 TrackId= 24 +### New exotic particle produced: ldmphoton Ekin(GeV)= 15.4584 Mass(GeV)= 0.5 TrackId= 31 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.845409 Mass(GeV)= 0.5 TrackId= 50 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.289 Mass(GeV)= 0.5 TrackId= 65 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.00828 Mass(GeV)= 0.5 TrackId= 82 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.58901 Mass(GeV)= 0.5 TrackId= 12 +### New exotic particle produced: ldmphoton Ekin(GeV)= 64.2554 Mass(GeV)= 0.5 TrackId= 18 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.8827 Mass(GeV)= 0.5 TrackId= 59 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.98703 Mass(GeV)= 0.5 TrackId= 63 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.45558 Mass(GeV)= 0.5 TrackId= 4 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.31682 Mass(GeV)= 0.5 TrackId= 7 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.55471 Mass(GeV)= 0.5 TrackId= 17 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.04181 Mass(GeV)= 0.5 TrackId= 34 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.30605 Mass(GeV)= 0.5 TrackId= 50 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.748337 Mass(GeV)= 0.5 TrackId= 54 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.65694 Mass(GeV)= 0.5 TrackId= 65 +### New exotic particle produced: ldmphoton Ekin(GeV)= 30.0807 Mass(GeV)= 0.5 TrackId= 4 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.0427 Mass(GeV)= 0.5 TrackId= 18 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.07533 Mass(GeV)= 0.5 TrackId= 2 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.49707 Mass(GeV)= 0.5 TrackId= 9 +### New exotic particle produced: ldmphoton Ekin(GeV)= 16.7118 Mass(GeV)= 0.5 TrackId= 13 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.31423 Mass(GeV)= 0.5 TrackId= 14 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.26542 Mass(GeV)= 0.5 TrackId= 26 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.68342 Mass(GeV)= 0.5 TrackId= 27 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.23596 Mass(GeV)= 0.5 TrackId= 56 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.56933 Mass(GeV)= 0.5 TrackId= 62 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.18012 Mass(GeV)= 0.5 TrackId= 7 +### New exotic particle produced: ldmphoton Ekin(GeV)= 15.2321 Mass(GeV)= 0.5 TrackId= 11 +### New exotic particle produced: ldmphoton Ekin(GeV)= 16.6103 Mass(GeV)= 0.5 TrackId= 27 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.40452 Mass(GeV)= 0.5 TrackId= 73 +### New exotic particle produced: ldmphoton Ekin(GeV)= 8.85063 Mass(GeV)= 0.5 TrackId= 77 --> Event 70 starts. -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.53918 Mass(GeV)= 0.5 TrackId= 8 -### New exotic particle produced: ldmphoton Ekin(GeV)= 7.57157 Mass(GeV)= 0.5 TrackId= 12 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.21087 Mass(GeV)= 0.5 TrackId= 26 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.53361 Mass(GeV)= 0.5 TrackId= 39 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.933815 Mass(GeV)= 0.5 TrackId= 54 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.90783 Mass(GeV)= 0.5 TrackId= 23 -### New exotic particle produced: ldmphoton Ekin(GeV)= 5.27899 Mass(GeV)= 0.5 TrackId= 27 -### New exotic particle produced: ldmphoton Ekin(GeV)= 18.8099 Mass(GeV)= 0.5 TrackId= 58 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.71792 Mass(GeV)= 0.5 TrackId= 12 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.63344 Mass(GeV)= 0.5 TrackId= 37 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.766374 Mass(GeV)= 0.5 TrackId= 4 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.752851 Mass(GeV)= 0.5 TrackId= 23 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.24582 Mass(GeV)= 0.5 TrackId= 30 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.15228 Mass(GeV)= 0.5 TrackId= 31 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.38934 Mass(GeV)= 0.5 TrackId= 54 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.641541 Mass(GeV)= 0.5 TrackId= 23 -### New exotic particle produced: ldmphoton Ekin(GeV)= 14.7966 Mass(GeV)= 0.5 TrackId= 36 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.77139 Mass(GeV)= 0.5 TrackId= 41 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.59067 Mass(GeV)= 0.5 TrackId= 52 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.753794 Mass(GeV)= 0.5 TrackId= 59 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.935329 Mass(GeV)= 0.5 TrackId= 65 -### New exotic particle produced: ldmphoton Ekin(GeV)= 28.6773 Mass(GeV)= 0.5 TrackId= 2 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.67134 Mass(GeV)= 0.5 TrackId= 26 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.00018 Mass(GeV)= 0.5 TrackId= 36 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.73511 Mass(GeV)= 0.5 TrackId= 38 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.90658 Mass(GeV)= 0.5 TrackId= 32 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.677076 Mass(GeV)= 0.5 TrackId= 47 -### New exotic particle produced: ldmphoton Ekin(GeV)= 13.8562 Mass(GeV)= 0.5 TrackId= 74 -### New exotic particle produced: ldmphoton Ekin(GeV)= 15.0235 Mass(GeV)= 0.5 TrackId= 91 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.37528 Mass(GeV)= 0.5 TrackId= 7 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.876487 Mass(GeV)= 0.5 TrackId= 26 -### New exotic particle produced: ldmphoton Ekin(GeV)= 55.599 Mass(GeV)= 0.5 TrackId= 32 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.433 Mass(GeV)= 0.5 TrackId= 45 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.58356 Mass(GeV)= 0.5 TrackId= 61 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.41705 Mass(GeV)= 0.5 TrackId= 5 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.28927 Mass(GeV)= 0.5 TrackId= 7 -### New exotic particle produced: ldmphoton Ekin(GeV)= 8.74282 Mass(GeV)= 0.5 TrackId= 9 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.18386 Mass(GeV)= 0.5 TrackId= 40 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.36512 Mass(GeV)= 0.5 TrackId= 54 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.3829 Mass(GeV)= 0.5 TrackId= 9 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.66646 Mass(GeV)= 0.5 TrackId= 15 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.53186 Mass(GeV)= 0.5 TrackId= 22 +### New exotic particle produced: ldmphoton Ekin(GeV)= 13.5775 Mass(GeV)= 0.5 TrackId= 31 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.95065 Mass(GeV)= 0.5 TrackId= 33 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.626778 Mass(GeV)= 0.5 TrackId= 4 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.09833 Mass(GeV)= 0.5 TrackId= 7 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.627242 Mass(GeV)= 0.5 TrackId= 31 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.13026 Mass(GeV)= 0.5 TrackId= 40 +### New exotic particle produced: ldmphoton Ekin(GeV)= 10.15 Mass(GeV)= 0.5 TrackId= 46 +### New exotic particle produced: ldmphoton Ekin(GeV)= 14.9992 Mass(GeV)= 0.5 TrackId= 22 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.7061 Mass(GeV)= 0.5 TrackId= 26 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.948721 Mass(GeV)= 0.5 TrackId= 70 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.85915 Mass(GeV)= 0.5 TrackId= 82 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.86165 Mass(GeV)= 0.5 TrackId= 15 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.95423 Mass(GeV)= 0.5 TrackId= 28 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.41977 Mass(GeV)= 0.5 TrackId= 31 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.608871 Mass(GeV)= 0.5 TrackId= 41 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.18611 Mass(GeV)= 0.5 TrackId= 47 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.19155 Mass(GeV)= 0.5 TrackId= 57 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.34018 Mass(GeV)= 0.5 TrackId= 6 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.06421 Mass(GeV)= 0.5 TrackId= 15 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.723601 Mass(GeV)= 0.5 TrackId= 28 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.99541 Mass(GeV)= 0.5 TrackId= 6 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.885209 Mass(GeV)= 0.5 TrackId= 66 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.90529 Mass(GeV)= 0.5 TrackId= 68 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.52273 Mass(GeV)= 0.5 TrackId= 70 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.62847 Mass(GeV)= 0.5 TrackId= 14 +### New exotic particle produced: ldmphoton Ekin(GeV)= 15.0991 Mass(GeV)= 0.5 TrackId= 22 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.03268 Mass(GeV)= 0.5 TrackId= 50 +### New exotic particle produced: ldmphoton Ekin(GeV)= 15.435 Mass(GeV)= 0.5 TrackId= 5 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.73975 Mass(GeV)= 0.5 TrackId= 22 +### New exotic particle produced: ldmphoton Ekin(GeV)= 16.2082 Mass(GeV)= 0.5 TrackId= 47 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.02797 Mass(GeV)= 0.5 TrackId= 62 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.691866 Mass(GeV)= 0.5 TrackId= 66 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.950869 Mass(GeV)= 0.5 TrackId= 72 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.88124 Mass(GeV)= 0.5 TrackId= 81 +### New exotic particle produced: ldmphoton Ekin(GeV)= 19.3042 Mass(GeV)= 0.5 TrackId= 5 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.610433 Mass(GeV)= 0.5 TrackId= 10 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.88291 Mass(GeV)= 0.5 TrackId= 15 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.726332 Mass(GeV)= 0.5 TrackId= 20 +### New exotic particle produced: ldmphoton Ekin(GeV)= 26.6351 Mass(GeV)= 0.5 TrackId= 27 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.605971 Mass(GeV)= 0.5 TrackId= 32 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.16658 Mass(GeV)= 0.5 TrackId= 61 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.65827 Mass(GeV)= 0.5 TrackId= 12 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.07707 Mass(GeV)= 0.5 TrackId= 31 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.31022 Mass(GeV)= 0.5 TrackId= 36 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.962105 Mass(GeV)= 0.5 TrackId= 41 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.70881 Mass(GeV)= 0.5 TrackId= 51 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.09555 Mass(GeV)= 0.5 TrackId= 62 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.723278 Mass(GeV)= 0.5 TrackId= 68 --> Event 80 starts. -### New exotic particle produced: ldmphoton Ekin(GeV)= 5.79954 Mass(GeV)= 0.5 TrackId= 4 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.32345 Mass(GeV)= 0.5 TrackId= 12 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.27927 Mass(GeV)= 0.5 TrackId= 16 -### New exotic particle produced: ldmphoton Ekin(GeV)= 11.1973 Mass(GeV)= 0.5 TrackId= 46 -### New exotic particle produced: ldmphoton Ekin(GeV)= 8.20287 Mass(GeV)= 0.5 TrackId= 62 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.42035 Mass(GeV)= 0.5 TrackId= 64 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.840952 Mass(GeV)= 0.5 TrackId= 74 -### New exotic particle produced: ldmphoton Ekin(GeV)= 13.1501 Mass(GeV)= 0.5 TrackId= 76 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.17015 Mass(GeV)= 0.5 TrackId= 5 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.07772 Mass(GeV)= 0.5 TrackId= 15 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.64769 Mass(GeV)= 0.5 TrackId= 25 -### New exotic particle produced: ldmphoton Ekin(GeV)= 10.2548 Mass(GeV)= 0.5 TrackId= 32 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.78794 Mass(GeV)= 0.5 TrackId= 54 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.79027 Mass(GeV)= 0.5 TrackId= 65 -### New exotic particle produced: ldmphoton Ekin(GeV)= 16.6648 Mass(GeV)= 0.5 TrackId= 66 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.37457 Mass(GeV)= 0.5 TrackId= 73 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.619708 Mass(GeV)= 0.5 TrackId= 25 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.680268 Mass(GeV)= 0.5 TrackId= 61 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.96607 Mass(GeV)= 0.5 TrackId= 66 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.733275 Mass(GeV)= 0.5 TrackId= 12 -### New exotic particle produced: ldmphoton Ekin(GeV)= 19.6094 Mass(GeV)= 0.5 TrackId= 22 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.19053 Mass(GeV)= 0.5 TrackId= 27 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.667706 Mass(GeV)= 0.5 TrackId= 49 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.57597 Mass(GeV)= 0.5 TrackId= 51 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.20315 Mass(GeV)= 0.5 TrackId= 52 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.38011 Mass(GeV)= 0.5 TrackId= 5 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.89325 Mass(GeV)= 0.5 TrackId= 39 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.5064 Mass(GeV)= 0.5 TrackId= 40 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.34331 Mass(GeV)= 0.5 TrackId= 47 -### New exotic particle produced: ldmphoton Ekin(GeV)= 8.90701 Mass(GeV)= 0.5 TrackId= 54 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.664693 Mass(GeV)= 0.5 TrackId= 75 -### New exotic particle produced: ldmphoton Ekin(GeV)= 5.20081 Mass(GeV)= 0.5 TrackId= 4 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.92725 Mass(GeV)= 0.5 TrackId= 16 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.38099 Mass(GeV)= 0.5 TrackId= 42 -### New exotic particle produced: ldmphoton Ekin(GeV)= 5.27744 Mass(GeV)= 0.5 TrackId= 45 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.866875 Mass(GeV)= 0.5 TrackId= 47 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.842807 Mass(GeV)= 0.5 TrackId= 73 -### New exotic particle produced: ldmphoton Ekin(GeV)= 23.4782 Mass(GeV)= 0.5 TrackId= 75 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.84212 Mass(GeV)= 0.5 TrackId= 91 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.838824 Mass(GeV)= 0.5 TrackId= 2 -### New exotic particle produced: ldmphoton Ekin(GeV)= 15.3497 Mass(GeV)= 0.5 TrackId= 29 -### New exotic particle produced: ldmphoton Ekin(GeV)= 19.0516 Mass(GeV)= 0.5 TrackId= 47 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.9541 Mass(GeV)= 0.5 TrackId= 4 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.54062 Mass(GeV)= 0.5 TrackId= 26 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.660647 Mass(GeV)= 0.5 TrackId= 28 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.15748 Mass(GeV)= 0.5 TrackId= 44 -### New exotic particle produced: ldmphoton Ekin(GeV)= 13.0977 Mass(GeV)= 0.5 TrackId= 46 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.952983 Mass(GeV)= 0.5 TrackId= 56 -### New exotic particle produced: ldmphoton Ekin(GeV)= 17.9279 Mass(GeV)= 0.5 TrackId= 80 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.2059 Mass(GeV)= 0.5 TrackId= 8 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.96734 Mass(GeV)= 0.5 TrackId= 20 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.49876 Mass(GeV)= 0.5 TrackId= 25 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.57689 Mass(GeV)= 0.5 TrackId= 40 -### New exotic particle produced: ldmphoton Ekin(GeV)= 10.0288 Mass(GeV)= 0.5 TrackId= 46 -### New exotic particle produced: ldmphoton Ekin(GeV)= 5.05569 Mass(GeV)= 0.5 TrackId= 52 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.70439 Mass(GeV)= 0.5 TrackId= 18 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.439 Mass(GeV)= 0.5 TrackId= 24 -### New exotic particle produced: ldmphoton Ekin(GeV)= 7.92656 Mass(GeV)= 0.5 TrackId= 36 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.700516 Mass(GeV)= 0.5 TrackId= 42 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.87878 Mass(GeV)= 0.5 TrackId= 2 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.82794 Mass(GeV)= 0.5 TrackId= 7 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.17031 Mass(GeV)= 0.5 TrackId= 21 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.87983 Mass(GeV)= 0.5 TrackId= 27 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.83839 Mass(GeV)= 0.5 TrackId= 76 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.83897 Mass(GeV)= 0.5 TrackId= 6 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.61669 Mass(GeV)= 0.5 TrackId= 20 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.812282 Mass(GeV)= 0.5 TrackId= 42 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.760714 Mass(GeV)= 0.5 TrackId= 49 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.09876 Mass(GeV)= 0.5 TrackId= 62 +### New exotic particle produced: ldmphoton Ekin(GeV)= 10.5268 Mass(GeV)= 0.5 TrackId= 64 +### New exotic particle produced: ldmphoton Ekin(GeV)= 15.5158 Mass(GeV)= 0.5 TrackId= 20 +### New exotic particle produced: ldmphoton Ekin(GeV)= 10.8099 Mass(GeV)= 0.5 TrackId= 45 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.0512 Mass(GeV)= 0.5 TrackId= 54 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.624049 Mass(GeV)= 0.5 TrackId= 72 +### New exotic particle produced: ldmphoton Ekin(GeV)= 17.8604 Mass(GeV)= 0.5 TrackId= 20 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.69491 Mass(GeV)= 0.5 TrackId= 21 +### New exotic particle produced: ldmphoton Ekin(GeV)= 7.93139 Mass(GeV)= 0.5 TrackId= 23 +### New exotic particle produced: ldmphoton Ekin(GeV)= 24.0363 Mass(GeV)= 0.5 TrackId= 26 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.05065 Mass(GeV)= 0.5 TrackId= 29 +### New exotic particle produced: ldmphoton Ekin(GeV)= 8.12748 Mass(GeV)= 0.5 TrackId= 31 +### New exotic particle produced: ldmphoton Ekin(GeV)= 7.54722 Mass(GeV)= 0.5 TrackId= 57 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.14035 Mass(GeV)= 0.5 TrackId= 8 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.96224 Mass(GeV)= 0.5 TrackId= 12 +### New exotic particle produced: ldmphoton Ekin(GeV)= 9.27571 Mass(GeV)= 0.5 TrackId= 19 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.694083 Mass(GeV)= 0.5 TrackId= 27 +### New exotic particle produced: ldmphoton Ekin(GeV)= 19.7404 Mass(GeV)= 0.5 TrackId= 57 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.33894 Mass(GeV)= 0.5 TrackId= 61 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.84183 Mass(GeV)= 0.5 TrackId= 33 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.1961 Mass(GeV)= 0.5 TrackId= 38 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.40377 Mass(GeV)= 0.5 TrackId= 40 +### New exotic particle produced: ldmphoton Ekin(GeV)= 39.4992 Mass(GeV)= 0.5 TrackId= 45 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.0114 Mass(GeV)= 0.5 TrackId= 77 +### New exotic particle produced: ldmphoton Ekin(GeV)= 12.1182 Mass(GeV)= 0.5 TrackId= 84 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.602716 Mass(GeV)= 0.5 TrackId= 87 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.3747 Mass(GeV)= 0.5 TrackId= 6 +### New exotic particle produced: ldmphoton Ekin(GeV)= 17.4398 Mass(GeV)= 0.5 TrackId= 22 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.17689 Mass(GeV)= 0.5 TrackId= 67 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.635565 Mass(GeV)= 0.5 TrackId= 20 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.88762 Mass(GeV)= 0.5 TrackId= 22 +### New exotic particle produced: ldmphoton Ekin(GeV)= 10.3036 Mass(GeV)= 0.5 TrackId= 25 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.03464 Mass(GeV)= 0.5 TrackId= 36 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.03299 Mass(GeV)= 0.5 TrackId= 38 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.5585 Mass(GeV)= 0.5 TrackId= 40 +### New exotic particle produced: ldmphoton Ekin(GeV)= 17.6058 Mass(GeV)= 0.5 TrackId= 47 +### New exotic particle produced: ldmphoton Ekin(GeV)= 9.85662 Mass(GeV)= 0.5 TrackId= 57 +### New exotic particle produced: ldmphoton Ekin(GeV)= 14.5272 Mass(GeV)= 0.5 TrackId= 8 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.08468 Mass(GeV)= 0.5 TrackId= 35 +### New exotic particle produced: ldmphoton Ekin(GeV)= 23.365 Mass(GeV)= 0.5 TrackId= 36 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.692385 Mass(GeV)= 0.5 TrackId= 38 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.61481 Mass(GeV)= 0.5 TrackId= 41 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.742059 Mass(GeV)= 0.5 TrackId= 63 +### New exotic particle produced: ldmphoton Ekin(GeV)= 35.1865 Mass(GeV)= 0.5 TrackId= 71 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.94667 Mass(GeV)= 0.5 TrackId= 30 +### New exotic particle produced: ldmphoton Ekin(GeV)= 7.27418 Mass(GeV)= 0.5 TrackId= 80 --> Event 90 starts. -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.00772 Mass(GeV)= 0.5 TrackId= 5 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.681323 Mass(GeV)= 0.5 TrackId= 11 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.59902 Mass(GeV)= 0.5 TrackId= 14 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.06813 Mass(GeV)= 0.5 TrackId= 17 -### New exotic particle produced: ldmphoton Ekin(GeV)= 55.2869 Mass(GeV)= 0.5 TrackId= 28 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.86426 Mass(GeV)= 0.5 TrackId= 41 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.670921 Mass(GeV)= 0.5 TrackId= 66 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.0886 Mass(GeV)= 0.5 TrackId= 26 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.49869 Mass(GeV)= 0.5 TrackId= 38 -### New exotic particle produced: ldmphoton Ekin(GeV)= 8.45864 Mass(GeV)= 0.5 TrackId= 45 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.27269 Mass(GeV)= 0.5 TrackId= 16 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.48034 Mass(GeV)= 0.5 TrackId= 39 -### New exotic particle produced: ldmphoton Ekin(GeV)= 22.714 Mass(GeV)= 0.5 TrackId= 40 -### New exotic particle produced: ldmphoton Ekin(GeV)= 5.41974 Mass(GeV)= 0.5 TrackId= 49 -### New exotic particle produced: ldmphoton Ekin(GeV)= 6.32244 Mass(GeV)= 0.5 TrackId= 57 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.63133 Mass(GeV)= 0.5 TrackId= 69 -### New exotic particle produced: ldmphoton Ekin(GeV)= 10.0303 Mass(GeV)= 0.5 TrackId= 29 -### New exotic particle produced: ldmphoton Ekin(GeV)= 7.25689 Mass(GeV)= 0.5 TrackId= 31 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.75767 Mass(GeV)= 0.5 TrackId= 38 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.4326 Mass(GeV)= 0.5 TrackId= 44 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.9131 Mass(GeV)= 0.5 TrackId= 46 -### New exotic particle produced: ldmphoton Ekin(GeV)= 13.2805 Mass(GeV)= 0.5 TrackId= 18 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.24136 Mass(GeV)= 0.5 TrackId= 19 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.03358 Mass(GeV)= 0.5 TrackId= 26 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.3382 Mass(GeV)= 0.5 TrackId= 32 -### New exotic particle produced: ldmphoton Ekin(GeV)= 7.0514 Mass(GeV)= 0.5 TrackId= 38 -### New exotic particle produced: ldmphoton Ekin(GeV)= 7.2951 Mass(GeV)= 0.5 TrackId= 56 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.99783 Mass(GeV)= 0.5 TrackId= 64 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.54834 Mass(GeV)= 0.5 TrackId= 70 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.78539 Mass(GeV)= 0.5 TrackId= 81 -### New exotic particle produced: ldmphoton Ekin(GeV)= 4.5932 Mass(GeV)= 0.5 TrackId= 19 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.67055 Mass(GeV)= 0.5 TrackId= 22 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.47446 Mass(GeV)= 0.5 TrackId= 37 -### New exotic particle produced: ldmphoton Ekin(GeV)= 41.913 Mass(GeV)= 0.5 TrackId= 38 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.630193 Mass(GeV)= 0.5 TrackId= 46 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.04351 Mass(GeV)= 0.5 TrackId= 52 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.58618 Mass(GeV)= 0.5 TrackId= 71 -### New exotic particle produced: ldmphoton Ekin(GeV)= 3.96928 Mass(GeV)= 0.5 TrackId= 6 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.71908 Mass(GeV)= 0.5 TrackId= 13 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.93003 Mass(GeV)= 0.5 TrackId= 47 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.07972 Mass(GeV)= 0.5 TrackId= 53 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.636139 Mass(GeV)= 0.5 TrackId= 55 -### New exotic particle produced: ldmphoton Ekin(GeV)= 15.7059 Mass(GeV)= 0.5 TrackId= 56 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.784 Mass(GeV)= 0.5 TrackId= 63 -### New exotic particle produced: ldmphoton Ekin(GeV)= 30.2258 Mass(GeV)= 0.5 TrackId= 72 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.602285 Mass(GeV)= 0.5 TrackId= 3 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.09078 Mass(GeV)= 0.5 TrackId= 8 -### New exotic particle produced: ldmphoton Ekin(GeV)= 75.872 Mass(GeV)= 0.5 TrackId= 14 -### New exotic particle produced: ldmphoton Ekin(GeV)= 1.23284 Mass(GeV)= 0.5 TrackId= 45 -### New exotic particle produced: ldmphoton Ekin(GeV)= 2.74269 Mass(GeV)= 0.5 TrackId= 48 -### New exotic particle produced: ldmphoton Ekin(GeV)= 18.1412 Mass(GeV)= 0.5 TrackId= 2 -### New exotic particle produced: ldmphoton Ekin(GeV)= 40.867 Mass(GeV)= 0.5 TrackId= 42 -### New exotic particle produced: ldmphoton Ekin(GeV)= 85.7121 Mass(GeV)= 0.5 TrackId= 6 -### New exotic particle produced: ldmphoton Ekin(GeV)= 0.75588 Mass(GeV)= 0.5 TrackId= 63 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.41617 Mass(GeV)= 0.5 TrackId= 9 +### New exotic particle produced: ldmphoton Ekin(GeV)= 10.1827 Mass(GeV)= 0.5 TrackId= 14 +### New exotic particle produced: ldmphoton Ekin(GeV)= 7.4036 Mass(GeV)= 0.5 TrackId= 32 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.72249 Mass(GeV)= 0.5 TrackId= 50 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.05173 Mass(GeV)= 0.5 TrackId= 52 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.72668 Mass(GeV)= 0.5 TrackId= 71 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.48566 Mass(GeV)= 0.5 TrackId= 79 +### New exotic particle produced: ldmphoton Ekin(GeV)= 12.2689 Mass(GeV)= 0.5 TrackId= 3 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.90533 Mass(GeV)= 0.5 TrackId= 12 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.02317 Mass(GeV)= 0.5 TrackId= 19 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.734897 Mass(GeV)= 0.5 TrackId= 34 +### New exotic particle produced: ldmphoton Ekin(GeV)= 8.23976 Mass(GeV)= 0.5 TrackId= 37 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.80317 Mass(GeV)= 0.5 TrackId= 59 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.47575 Mass(GeV)= 0.5 TrackId= 64 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.618134 Mass(GeV)= 0.5 TrackId= 2 +### New exotic particle produced: ldmphoton Ekin(GeV)= 27.0776 Mass(GeV)= 0.5 TrackId= 27 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.57751 Mass(GeV)= 0.5 TrackId= 40 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.66354 Mass(GeV)= 0.5 TrackId= 60 +### New exotic particle produced: ldmphoton Ekin(GeV)= 20.277 Mass(GeV)= 0.5 TrackId= 78 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.0427 Mass(GeV)= 0.5 TrackId= 12 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.622264 Mass(GeV)= 0.5 TrackId= 16 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.49267 Mass(GeV)= 0.5 TrackId= 17 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.629575 Mass(GeV)= 0.5 TrackId= 40 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.63702 Mass(GeV)= 0.5 TrackId= 64 +### New exotic particle produced: ldmphoton Ekin(GeV)= 43.5431 Mass(GeV)= 0.5 TrackId= 69 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.647987 Mass(GeV)= 0.5 TrackId= 80 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.786577 Mass(GeV)= 0.5 TrackId= 16 +### New exotic particle produced: ldmphoton Ekin(GeV)= 22.007 Mass(GeV)= 0.5 TrackId= 17 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.644618 Mass(GeV)= 0.5 TrackId= 22 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.39147 Mass(GeV)= 0.5 TrackId= 39 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.30423 Mass(GeV)= 0.5 TrackId= 43 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.66986 Mass(GeV)= 0.5 TrackId= 60 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.21768 Mass(GeV)= 0.5 TrackId= 8 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.95705 Mass(GeV)= 0.5 TrackId= 15 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.67986 Mass(GeV)= 0.5 TrackId= 22 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.05102 Mass(GeV)= 0.5 TrackId= 28 +### New exotic particle produced: ldmphoton Ekin(GeV)= 8.04254 Mass(GeV)= 0.5 TrackId= 60 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.38133 Mass(GeV)= 0.5 TrackId= 6 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.880832 Mass(GeV)= 0.5 TrackId= 15 +### New exotic particle produced: ldmphoton Ekin(GeV)= 7.09059 Mass(GeV)= 0.5 TrackId= 49 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.70714 Mass(GeV)= 0.5 TrackId= 51 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.35009 Mass(GeV)= 0.5 TrackId= 71 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.787902 Mass(GeV)= 0.5 TrackId= 73 +### New exotic particle produced: ldmphoton Ekin(GeV)= 22.2594 Mass(GeV)= 0.5 TrackId= 74 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.61972 Mass(GeV)= 0.5 TrackId= 29 +### New exotic particle produced: ldmphoton Ekin(GeV)= 21.9029 Mass(GeV)= 0.5 TrackId= 30 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.20695 Mass(GeV)= 0.5 TrackId= 34 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.26101 Mass(GeV)= 0.5 TrackId= 62 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.91774 Mass(GeV)= 0.5 TrackId= 72 +### New exotic particle produced: ldmphoton Ekin(GeV)= 1.67256 Mass(GeV)= 0.5 TrackId= 79 +### New exotic particle produced: ldmphoton Ekin(GeV)= 0.642933 Mass(GeV)= 0.5 TrackId= 84 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.13289 Mass(GeV)= 0.5 TrackId= 4 +### New exotic particle produced: ldmphoton Ekin(GeV)= 10.2893 Mass(GeV)= 0.5 TrackId= 18 +### New exotic particle produced: ldmphoton Ekin(GeV)= 6.19983 Mass(GeV)= 0.5 TrackId= 34 +### New exotic particle produced: ldmphoton Ekin(GeV)= 12.6634 Mass(GeV)= 0.5 TrackId= 42 +### New exotic particle produced: ldmphoton Ekin(GeV)= 5.27533 Mass(GeV)= 0.5 TrackId= 48 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.93737 Mass(GeV)= 0.5 TrackId= 68 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.07536 Mass(GeV)= 0.5 TrackId= 85 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.86367 Mass(GeV)= 0.5 TrackId= 20 +### New exotic particle produced: ldmphoton Ekin(GeV)= 2.41649 Mass(GeV)= 0.5 TrackId= 27 +### New exotic particle produced: ldmphoton Ekin(GeV)= 4.28712 Mass(GeV)= 0.5 TrackId= 42 +### New exotic particle produced: ldmphoton Ekin(GeV)= 3.64722 Mass(GeV)= 0.5 TrackId= 77 +### New exotic particle produced: ldmphoton Ekin(GeV)= 10.1865 Mass(GeV)= 0.5 TrackId= 80 Run terminated. Run Summary Number of events processed : 100 - User=0.690000s Real=0.712889s Sys=0.000000s -RunAction: End of run actions are started 1 Nevt= 100 Edep= 4060.95 + User=0.720000s Real=0.722665s Sys=0.010000s +RunAction: End of run actions are started 1 Nevt= 100 Edep= 4138.8 ==================================================== Beam Particle: proton Ekin(GeV) = 100 @@ -1127,8 +1138,8 @@ RunAction: End of run actions are started 1 Nevt= 100 Edep= 4060.95 ================== run summary ===================== End of Run TotNbofEvents = 100 - Mean energy deposit in absorber = 4.0609 +- 0.074073 GeV RMS/Emean = 0.1824 - Mean number of steps in absorber= 85.53 + Mean energy deposit in absorber = 4.1388 +- 0.078674 GeV RMS/Emean = 0.19009 + Mean number of steps in absorber= 86.3 ================== run end ========================== ... write file : dmp.root - done @@ -1139,6 +1150,6 @@ Visualization Manager deleting... G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 10 of which, static: 0 -Dynamic pools deleted: 10 / Total memory freed: 0.077 MB +Dynamic pools deleted: 10 / Total memory freed: 0.084 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/exoticphysics/monopole/History b/examples/extended/exoticphysics/monopole/History index 210ac13dc3..b195b500bb 100644 --- a/examples/extended/exoticphysics/monopole/History +++ b/examples/extended/exoticphysics/monopole/History @@ -5,6 +5,10 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-10-24 I. Hrivnacova (monopole-V11-00-03) +- Coding guidelines: start data members with 'f' (PrimaryGeneratorAction); + use G4int, G4double + ## 2022-04-19 Jonas Hahnfeld (monopole-V11-00-02) - `G4MonopoleTransportation`: Set step status on volume boundary diff --git a/examples/extended/exoticphysics/monopole/include/G4MonopoleFieldSetup.hh b/examples/extended/exoticphysics/monopole/include/G4MonopoleFieldSetup.hh index 44d55800ec..0c4b2f2b43 100644 --- a/examples/extended/exoticphysics/monopole/include/G4MonopoleFieldSetup.hh +++ b/examples/extended/exoticphysics/monopole/include/G4MonopoleFieldSetup.hh @@ -73,7 +73,7 @@ public: void ConstructMagField (); // static G4MonopoleFieldSetup* GetMonopoleFieldSetup(); - double GetZmagFieldValue() const { return fZmagFieldValue; } + G4double GetZmagFieldValue() const { return fZmagFieldValue; } private: diff --git a/examples/extended/exoticphysics/monopole/include/PrimaryGeneratorAction.hh b/examples/extended/exoticphysics/monopole/include/PrimaryGeneratorAction.hh index cbd648b19b..a2a804a869 100644 --- a/examples/extended/exoticphysics/monopole/include/PrimaryGeneratorAction.hh +++ b/examples/extended/exoticphysics/monopole/include/PrimaryGeneratorAction.hh @@ -57,7 +57,7 @@ private: G4ParticleGun* fParticleGun; DetectorConstruction* fDetector; - G4bool bPrimPositionDefined; + G4bool fPrimPositionDefined; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/exoticphysics/monopole/include/Run.hh b/examples/extended/exoticphysics/monopole/include/Run.hh index 2ecea5333e..69e4ee3596 100644 --- a/examples/extended/exoticphysics/monopole/include/Run.hh +++ b/examples/extended/exoticphysics/monopole/include/Run.hh @@ -49,7 +49,7 @@ public: ~Run(); virtual void Merge(const G4Run*); - void EndOfRun(double binLength); + void EndOfRun(G4double binLength); void FillHisto(G4int id, G4double x, G4double weight = 1.0); diff --git a/examples/extended/exoticphysics/monopole/monopole.out b/examples/extended/exoticphysics/monopole/monopole.out index c40e8f2f21..ce8df921da 100644 --- a/examples/extended/exoticphysics/monopole/monopole.out +++ b/examples/extended/exoticphysics/monopole/monopole.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -86,6 +86,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -113,7 +114,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -165,8 +166,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -648,6 +649,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -949,7 +955,7 @@ Index : 1 used in the geometry : Yes The run consists of 100 monopole of 100 GeV through 10 cm of G4_Si (density: 2.33 g/cm3 ) - Projected Range= 7.7947 cm rms= 188.45 um + Projected Range= 7.7953 cm rms= 228.45 um ################################################################## ### Stopping Powers and Cross Sections diff --git a/examples/extended/exoticphysics/monopole/src/PrimaryGeneratorAction.cc b/examples/extended/exoticphysics/monopole/src/PrimaryGeneratorAction.cc index 4ebfde3b5c..2d89d9f994 100644 --- a/examples/extended/exoticphysics/monopole/src/PrimaryGeneratorAction.cc +++ b/examples/extended/exoticphysics/monopole/src/PrimaryGeneratorAction.cc @@ -41,7 +41,7 @@ PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* det) :G4VUserPrimaryGeneratorAction(),fParticleGun(0),fDetector(det), - bPrimPositionDefined(false) + fPrimPositionDefined(false) { fParticleGun = new G4ParticleGun(1); fParticleGun->SetParticleEnergy(100 * GeV); @@ -60,10 +60,10 @@ PrimaryGeneratorAction::~PrimaryGeneratorAction() void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { //this function is called at the begining of event - if(0 == anEvent->GetEventID() || !bPrimPositionDefined) { + if(0 == anEvent->GetEventID() || !fPrimPositionDefined) { G4double x0 = -0.5*(fDetector->GetWorldSizeX()) + 1*um; fParticleGun->SetParticlePosition(G4ThreeVector(x0,0.0,0.0)); - bPrimPositionDefined = true; + fPrimPositionDefined = true; } fParticleGun->GeneratePrimaryVertex(anEvent); diff --git a/examples/extended/exoticphysics/monopole/src/Run.cc b/examples/extended/exoticphysics/monopole/src/Run.cc index 6b371d9f47..041b4ea6bb 100644 --- a/examples/extended/exoticphysics/monopole/src/Run.cc +++ b/examples/extended/exoticphysics/monopole/src/Run.cc @@ -74,7 +74,7 @@ void Run::Merge(const G4Run* run) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Run::EndOfRun(double binLength) +void Run::EndOfRun(G4double binLength) { if ( ! G4Threading::IsMultithreadedApplication() ) { diff --git a/examples/extended/exoticphysics/saxs/saxs-slits.out b/examples/extended/exoticphysics/saxs/saxs-slits.out index 02292e80e7..cf2a0e3a51 100644 --- a/examples/extended/exoticphysics/saxs/saxs-slits.out +++ b/examples/extended/exoticphysics/saxs/saxs-slits.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -49,6 +49,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -76,7 +77,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -112,8 +113,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 1 De-excitation module ignores cuts 0 @@ -161,8 +161,8 @@ conv: for gamma SubType=14 BuildTable=1 PenConversion : Emin= 0 eV Emax= 100 TeV Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== PenRayleighMI : Emin= 0 eV Emax= 100 GeV @@ -556,7 +556,7 @@ Setting was ignored. Run terminated. Run Summary Number of events processed : 1000000 - User=16.410000s Real=20.091896s Sys=0.060000s + User=17.550000s Real=17.727146s Sys=0.050000s --------------------End of Global Run----------------------- The run had 1000000 events... write file : output.root - done @@ -568,4 +568,4 @@ Dynamic pools deleted: 14 / Total memory freed: 0.028 MB ============================================================ RunManagerKernel is deleted. Good bye :) Execution completed -User=18.110000s Real=22.260035s Sys=0.120000s +User=19.360000s Real=19.790403s Sys=0.130000s diff --git a/examples/extended/exoticphysics/saxs/saxs.out b/examples/extended/exoticphysics/saxs/saxs.out index 275f6d56f2..582aa9792c 100644 --- a/examples/extended/exoticphysics/saxs/saxs.out +++ b/examples/extended/exoticphysics/saxs/saxs.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -40,6 +40,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -67,7 +68,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -103,8 +104,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 1 De-excitation module ignores cuts 0 @@ -151,8 +151,8 @@ conv: for gamma SubType=14 BuildTable=1 PenConversion : Emin= 0 eV Emax= 100 TeV Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== PenRayleighMI : Emin= 0 eV Emax= 100 GeV @@ -539,7 +539,7 @@ Setting was ignored. Run terminated. Run Summary Number of events processed : 1000000 - User=25.630000s Real=37.236154s Sys=0.450000s + User=25.040000s Real=25.590978s Sys=0.340000s --------------------End of Global Run----------------------- The run had 1000000 events... write file : output.root - done @@ -551,4 +551,4 @@ Dynamic pools deleted: 14 / Total memory freed: 0.025 MB ============================================================ RunManagerKernel is deleted. Good bye :) Execution completed -User=27.270000s Real=39.585138s Sys=0.540000s +User=26.820000s Real=27.718090s Sys=0.420000s diff --git a/examples/extended/exoticphysics/ucn/ExUCN.out b/examples/extended/exoticphysics/ucn/ExUCN.out index becf3669ee..eeb01bcfdb 100644 --- a/examples/extended/exoticphysics/ucn/ExUCN.out +++ b/examples/extended/exoticphysics/ucn/ExUCN.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -44,6 +44,8 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo +G4FieldManager/SetEpsMin : eps_min = 2.5e-07 +G4FieldManager/SetEpsMax : eps_max = 0.001 ( Note: unchanged eps_min= 2.5e-07 ) Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... Registering graphics systems... @@ -56,6 +58,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -1496,7 +1500,7 @@ Terminate current event processing. Run terminated. Run Summary Number of events processed : 1 - User=0.030000s Real=0.031131s Sys=0.000000s + User=0.030000s Real=0.033863s Sys=0.010000s Sum NoMT: 0 Sum NoMRT: 0 Sum NoMRCondition: 0 diff --git a/examples/extended/exoticphysics/ucn/History b/examples/extended/exoticphysics/ucn/History index 25d67f4b15..fe326f66ac 100644 --- a/examples/extended/exoticphysics/ucn/History +++ b/examples/extended/exoticphysics/ucn/History @@ -4,6 +4,11 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-16 John Apostolakis (ExUCN-V11-00-02) +- DetectorConstruction: Corrected epsMax=0.001 . Also epsMin is dimensionless! + +## 2022-11-04 I. Hrivnacova (ExUCN-V11-00-01) +- Fixed Doxygen file descriptions ## 2021-12-10 Ben Morgan (ExUCN-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/exoticphysics/ucn/src/ExUCNActionInitialization.cc b/examples/extended/exoticphysics/ucn/src/ExUCNActionInitialization.cc index 17326c6592..91a1222753 100644 --- a/examples/extended/exoticphysics/ucn/src/ExUCNActionInitialization.cc +++ b/examples/extended/exoticphysics/ucn/src/ExUCNActionInitialization.cc @@ -25,7 +25,7 @@ // // /// \file ExUCNActionInitialization.cc -/// \brief Implementation of the F04ActionInitialization class +/// \brief Implementation of the ExUCNActionInitialization class #include "ExUCNActionInitialization.hh" #include "ExUCNPrimaryGeneratorAction.hh" diff --git a/examples/extended/exoticphysics/ucn/src/ExUCNDetectorConstruction.cc b/examples/extended/exoticphysics/ucn/src/ExUCNDetectorConstruction.cc index 7a59f1257e..193f66a378 100644 --- a/examples/extended/exoticphysics/ucn/src/ExUCNDetectorConstruction.cc +++ b/examples/extended/exoticphysics/ucn/src/ExUCNDetectorConstruction.cc @@ -247,8 +247,13 @@ void ExUCNDetectorConstruction::ConstructSDandField() G4PropagatorInField* fieldPropagator = transportManager->GetPropagatorInField(); - G4double epsMin = 2.5e-7*mm; - G4double epsMax = 0.05*mm; + // Dimensionless limits for relative accuracy of integration + G4double epsMin = 2.5e-7; + G4double epsMax = 0.001; // Will soon be maximum without warning. + // The relative accuracy used for a step of length 'l' + // a.) epsMin if deltaOneStep / l < epsMin + // epsilon_step = b.) epsMax if deltaOneStep / l > epsMax + // c.) deltaOneStep / l otherwise fieldPropagator->SetMinimumEpsilonStep(epsMin); fieldPropagator->SetMaximumEpsilonStep(epsMax); diff --git a/examples/extended/field/BlineTracer/BlineTracer.out b/examples/extended/field/BlineTracer/BlineTracer.out index 3efc5f0a26..de8a52e8a4 100644 --- a/examples/extended/field/BlineTracer/BlineTracer.out +++ b/examples/extended/field/BlineTracer/BlineTracer.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 diff --git a/examples/extended/field/field01/CMakeLists.txt b/examples/extended/field/field01/CMakeLists.txt index 9e671d053f..5748ce897e 100644 --- a/examples/extended/field/field01/CMakeLists.txt +++ b/examples/extended/field/field01/CMakeLists.txt @@ -40,7 +40,7 @@ target_link_libraries(field01 ${Geant4_LIBRARIES} ) # relies on these scripts being in the current working directory. # set(field01_SCRIPTS - field01.in field01.out init_vis.mac vis.mac gui.mac + field01.in field01.out init_vis.mac vis.mac gui.mac boris.in ) foreach(_script ${field01_SCRIPTS}) diff --git a/examples/extended/field/field01/History b/examples/extended/field/field01/History index af351c34c2..eb6561769e 100644 --- a/examples/extended/field/field01/History +++ b/examples/extended/field/field01/History @@ -4,6 +4,19 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-05 J. Apostolakis (fieldex01-V11-00-03) +- field01.cc: Demonstrate using G4TransporationParameters to set looper values for Transportation. +- F01FieldSetup: + * Show how to control Epsilon Min/Max + * Boris method is now available only by modifying the source code (search for 'Boris') + +## 2022-11-05 J. Apostolakis (fieldex01-V11-00-02) +- Added Boris integration method (temporarily as default) as an option. + +## 2022-10-24 I. Hrivnacova fieldex01-V11-00-01) +- Coding guidelines: start data member with 'f' (RunAction) + function members with a capital letter (DetectorConstruction); + use G4int, G4double ## 2021-12-10 Ben Morgan (fieldex01-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/field/field01/boris.in b/examples/extended/field/field01/boris.in new file mode 100644 index 0000000000..0aa5844e77 --- /dev/null +++ b/examples/extended/field/field01/boris.in @@ -0,0 +1,69 @@ +# +# Macro file for the test of field01 example +# +# It creates the default geometry (simple absorber cylinder ) +# +/tracking/verbose 1 +/run/verbose 1 +# +# ****** Start of initialisation of classes for field propagation +# +# /field/setMinStep 0.1 mm +# +# Initialise the field classes - parameters, stepper, ... +# +# /field/update +# +# ****** Initialisation of classes for field propagation is done +# +/run/initialize +# +/gun/particle e- +# +# /gun/particle proton +# /gun/particle chargedgeantino +# +/gun/energy 500.0 MeV +/run/beamOn 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 +# +# Change the value of the B-field +# +/field/update +/field/setField 0.1 0 0 tesla +/run/beamOn 1 +# +/gun/energy 500.0 MeV +/tracking/verbose 0 +/run/printProgress 10 +/run/beamOn 100 +# +# Test commands defined in this example +/control/verbose 2 +# +/calor/setAbsMat Xe20CO2 # default Air +/calor/setWorldMat Kr20CO2 # default Air +/calor/setAbsThick 0.8 mm # default 1 mm +/calor/setAbsRad 1900 mm # default 20000.*mm +/calor/setAbsZpos 20990 mm # default 21990.0*mm +/calor/setWorldZ 45000 mm # default 44000.*mm +/calor/setWorldR 23000 mm # default 22000.*mm +/field/setFieldZ 1.0 kG # default field 3*tesla in X-direction +# +/gun/random on # default "off" +/gun/xvertex 100 mm # default 0 +/gun/yvertex 100 mm # default 0 +/gun/zvertex 100 mm # default 0 +# +/run/beamOn 1 diff --git a/examples/extended/field/field01/field01.cc b/examples/extended/field/field01/field01.cc index eb991b01ca..5a44df843c 100644 --- a/examples/extended/field/field01/field01.cc +++ b/examples/extended/field/field01/field01.cc @@ -35,16 +35,8 @@ #include "G4Types.hh" -#ifdef G4MULTITHREADED -// #define USE_MULTITHREADED -#endif - -#ifdef USE_MULTITHREADED -#include "G4MTRunManager.hh" -#else #include "F01SteppingVerbose.hh" -#include "G4RunManager.hh" -#endif +#include "G4RunManagerFactory.hh" #include "F01DetectorConstruction.hh" #include "F01ActionInitialization.hh" @@ -53,8 +45,9 @@ #include "G4UImanager.hh" +// To control verbosity #include "G4EmParameters.hh" -#include "G4HadronicProcessStore.hh" +#include "G4HadronicParameters.hh" #include "G4PhysicsListHelper.hh" @@ -70,6 +63,8 @@ #include "G4Transportation.hh" #include "G4CoupledTransportation.hh" +#include "G4TransportationParameters.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... int main(int argc,char** argv) @@ -84,15 +79,15 @@ int main(int argc,char** argv) // G4Random::setTheEngine(new CLHEP::RanecuEngine); - // Construct the default run manager - // -#ifdef USE_MULTITHREADED - G4MTRunManager * runManager = new G4MTRunManager; -#else G4VSteppingVerbose::SetInstance(new F01SteppingVerbose); - G4RunManager * runManager = new G4RunManager; -#endif + + // Construct the sequential (or default) run manager + auto* runManager = + G4RunManagerFactory::CreateRunManager(G4RunManagerType::Serial); + // G4TransportationWithMscType: fDisabled, fEnabled, fMultipleSteps + // G4EmParameters::Instance()->SetTransportationWithMsc(G4TransportationWithMscType::fEnabled); + // Set mandatory initialization classes // // Detector construction @@ -103,10 +98,24 @@ int main(int argc,char** argv) // Configure the use of low thresholds for looping particles // ( appropriate for typical applications using low-energy physics. ) - auto plHelper = G4PhysicsListHelper::GetPhysicsListHelper(); - plHelper->UseLowLooperThresholds(); + // auto plHelper = G4PhysicsListHelper::GetPhysicsListHelper(); + // plHelper->UseLowLooperThresholds(); + // plHelper->UseHighLooperThresholds(); // Request a set of pre-selected values of the parameters for looping - // particles + // particles: + // - High for collider HEP applications, + // - Low for 'low-E' applications, medical, .. + // Note: If helper is used select low or high thresholds , it will overwrite + // values from TransportationParameters! + + // They are currently applied in the following order: + // 1. Transportation Parameters - fine grained control in Transportation construction + // 2. Physics List Helper - impose a fixed set of new values in Transport classes + // 3. Run Action (F01RunAction) - revise values at Start of Run + // 4. Tracking Action - could revise value at start of each track (not shown) + // Note that this also could customise by particle type, e.g. giving different values + // to mu-/mu+ , e-/e+ vs others) + // If multiple are present, later methods overwrite previous ones in this list. // Physics list G4VModularPhysicsList* physicsList = new FTFP_BERT; @@ -116,24 +125,43 @@ int main(int argc,char** argv) // User action initialization runManager->SetUserInitialization(new F01ActionInitialization(detector)); - // Fine grained control of thresholds for looping particles - auto runAction= new F01RunAction(); - runAction->SetWarningEnergy( 10.0 * CLHEP::keV ); - // Looping particles with E < 10 keV will be killed after 1 step - // with warning. - // Looping particles with E > 10 keV will generate a warning. - runAction->SetImportantEnergy( 0.1 * CLHEP::MeV ); - runAction->SetNumberOfTrials( 30 ); - // Looping particles with E > 0.1 MeV will survive for up to - // 30 'tracking' steps, and only be killed if they still loop. + G4double warningE = 10.0 * CLHEP::keV; + G4double importantE = 0.1 * CLHEP::MeV; + G4int numTrials = 30; + + G4bool useTransportParams= true; // Use the new way - Nov 2022 + + if( useTransportParams ) + { + auto transportParams= G4TransportationParameters::Instance(); + transportParams->SetWarningEnergy( warningE ); + transportParams->SetImportantEnergy( importantE ); + transportParams->SetNumberOfTrials( numTrials ); + G4cout << "field01: Using G4TransportationParameters to set looper parameters." << G4endl; + } + else + { + // Fine grained control of thresholds for looping particles + auto runAction= new F01RunAction(); + runAction->SetWarningEnergy( warningE ); + // Looping particles with E < 10 keV will be killed after 1 step + // with warning. + // Looping particles with E > 10 keV will generate a warning. + runAction->SetImportantEnergy( importantE ); + runAction->SetNumberOfTrials( numTrials ); + // Looping particles with E > 0.1 MeV will survive for up to + // 30 'tracking' steps, and only be killed if they still loop. + + G4cout << "field01: Using F01RunAction to set looper parameters." << G4endl; + runManager->SetUserAction(runAction); + } + // Note: this mechanism overwrites the thresholds established by // the call to UseLowLooperThresholds() above. - - runManager->SetUserAction(runAction); // Suppress large verbosity from EM & hadronic processes - G4EmParameters::Instance()->SetVerbose(-1); - G4HadronicProcessStore::Instance()->SetVerbose(0); + G4EmParameters::Instance()->SetVerbose(0); + G4HadronicParameters::Instance()->SetVerboseLevel(0); // Initialize G4 kernel // @@ -141,9 +169,8 @@ int main(int argc,char** argv) // Initialize visualization // - G4VisManager* visManager = new G4VisExecutive; // G4VisExecutive can take a verbosity argument - see /vis/verbose - // G4VisManager* visManager = new G4VisExecutive("Quiet"); + G4VisManager* visManager = new G4VisExecutive("Quiet"); visManager->Initialize(); // Get the pointer to the User Interface manager diff --git a/examples/extended/field/field01/field01.in b/examples/extended/field/field01/field01.in index 43df7c4992..ac7a383edf 100644 --- a/examples/extended/field/field01/field01.in +++ b/examples/extended/field/field01/field01.in @@ -40,9 +40,38 @@ # # # Control the mininum step size for integration in field +# with a value of 10 um ==> accept any amount of integration error in smaller steps! # -/field/setMinStep 0.1 mm +/field/setMinStep 0.01 mm # +# Control the (relative) accuracy of the integration. +# --------------------------------------------------- +# 1. DeltaOneStep: +## Errors of this size in an integration sub-step are acceptable except when +# it is limited by the relative integration error limits (epsilon_min/max) +# +/field/setDeltaOneStep 2.0e-05 mm +# +# DeltaOneStep is used to obtain a relative accuracy for the step: +# relative_eps = DeltaOneStep / step-length +# To ensure robustness the value of this is kept within the following limits: +# 2. Epsilon Min: the minimum value of the relative integration error (EpsilonMin) - +# +/field/setEpsilonMin 5.0e-06 +# +# This Limit to ensure that large steps do NOT result in a very low value of relative_eps +# (ie very high accuracy) that would result in integration requiring many steps and CPU cycles. +# Note: it is a dimensionless number +# +# 3. Epsilon Max: +# +/field/setEpsilonMax 5.0e-04 +# +# A minimum value of the relative integration error (EpsilonMax). Also a dimensionless number"); +# This Limit serves to ensure that a very small step does NOT result in a large relative error +# (ie low accuracy) and unreliable results."); +# + # Initialise the field classes - parameters, stepper, ... # /field/update diff --git a/examples/extended/field/field01/field01.out b/examples/extended/field/field01/field01.out index 478b373f02..d35c66a561 100644 --- a/examples/extended/field/field01/field01.out +++ b/examples/extended/field/field01/field01.out @@ -1,3 +1,4 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... ############################################ !!! WARNING - FPE detection is activated !!! @@ -10,7 +11,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -18,678 +19,41 @@ WWW : http://geant4.org/ ************************************************************** - -***** Table : Nb of materials = 11 ***** - - Material: Mylar density: 1.390 g/cm3 RadL: 28.743 cm Nucl.Int.Length: 56.319 cm - Imean: 74.266 eV temperature: 293.15 K pressure: 1.00 atm - - ---> Element: Oxygen (O) Z = 8.0 N = 16 A = 16.000 g/mole - ---> Isotope: O16 Z = 8 N = 16 A = 15.99 g/mole abundance: 99.757 % - ---> Isotope: O17 Z = 8 N = 17 A = 17.00 g/mole abundance: 0.038 % - ---> Isotope: O18 Z = 8 N = 18 A = 18.00 g/mole abundance: 0.205 % - ElmMassFraction: 33.30 % ElmAbundance 18.18 % - - ---> Element: Carbon (C) Z = 6.0 N = 12 A = 12.010 g/mole - ---> Isotope: C12 Z = 6 N = 12 A = 12.00 g/mole abundance: 98.930 % - ---> Isotope: C13 Z = 6 N = 13 A = 13.00 g/mole abundance: 1.070 % - ElmMassFraction: 62.49 % ElmAbundance 45.45 % - - ---> Element: Hydrogen (H) Z = 1.0 N = 1 A = 1.010 g/mole - ---> Isotope: H1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.989 % - ---> Isotope: H2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.011 % - ElmMassFraction: 4.20 % ElmAbundance 36.36 % - - - Material: Polypropelene density: 910.000 mg/cm3 RadL: 49.214 cm Nucl.Int.Length: 74.282 cm - Imean: 54.941 eV temperature: 293.15 K pressure: 1.00 atm - - ---> Element: Hydrogen (H) Z = 1.0 N = 1 A = 1.010 g/mole - ---> Isotope: H1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.989 % - ---> Isotope: H2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.011 % - ElmMassFraction: 14.40 % ElmAbundance 66.67 % - - ---> Element: Carbon (C) Z = 6.0 N = 12 A = 12.010 g/mole - ---> Isotope: C12 Z = 6 N = 12 A = 12.00 g/mole abundance: 98.930 % - ---> Isotope: C13 Z = 6 N = 13 A = 13.00 g/mole abundance: 1.070 % - ElmMassFraction: 85.60 % ElmAbundance 33.33 % - - - Material: Kr density: 3.700 mg/cm3 RadL: 30.736 m Nucl.Int.Length: 413.949 m - Imean: 352.000 eV temperature: 293.15 K pressure: 1.00 atm - - ---> Element: Kr (Kr) Z = 36.0 N = 84 A = 83.799 g/mole - ---> Isotope: Kr78 Z = 36 N = 78 A = 77.92 g/mole abundance: 0.350 % - ---> Isotope: Kr80 Z = 36 N = 80 A = 79.92 g/mole abundance: 2.280 % - ---> Isotope: Kr82 Z = 36 N = 82 A = 81.91 g/mole abundance: 11.580 % - ---> Isotope: Kr83 Z = 36 N = 83 A = 82.91 g/mole abundance: 11.490 % - ---> Isotope: Kr84 Z = 36 N = 84 A = 83.91 g/mole abundance: 57.000 % - ---> Isotope: Kr86 Z = 36 N = 86 A = 85.91 g/mole abundance: 17.300 % - ElmMassFraction: 100.00 % ElmAbundance 100.00 % - - - Material: Argon density: 1.784 mg/cm3 RadL: 109.604 m Nucl.Int.Length: 670.814 m - Imean: 188.000 eV temperature: 293.15 K pressure: 1.00 atm - - ---> Element: Argon (Ar) Z = 18.0 N = 40 A = 39.948 g/mole - ---> Isotope: Ar36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.337 % - ---> Isotope: Ar38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.063 % - ---> Isotope: Ar40 Z = 18 N = 40 A = 39.96 g/mole abundance: 99.600 % - ElmMassFraction: 100.00 % ElmAbundance 100.00 % - - - Material: N2 density: 1.251 mg/cm3 RadL: 303.846 m Nucl.Int.Length: 674.714 m - Imean: 82.000 eV temperature: 293.15 K pressure: 1.00 atm - - ---> Element: Nitrogen (N) Z = 7.0 N = 14 A = 14.010 g/mole - ---> Isotope: N14 Z = 7 N = 14 A = 14.00 g/mole abundance: 99.632 % - ---> Isotope: N15 Z = 7 N = 15 A = 15.00 g/mole abundance: 0.368 % - ElmMassFraction: 100.00 % ElmAbundance 100.00 % - - - Material: O2 density: 1.429 mg/cm3 RadL: 239.621 m Nucl.Int.Length: 617.219 m - Imean: 95.000 eV temperature: 293.15 K pressure: 1.00 atm - - ---> Element: Oxygen (O) Z = 8.0 N = 16 A = 16.000 g/mole - ---> Isotope: O16 Z = 8 N = 16 A = 15.99 g/mole abundance: 99.757 % - ---> Isotope: O17 Z = 8 N = 17 A = 17.00 g/mole abundance: 0.038 % - ---> Isotope: O18 Z = 8 N = 18 A = 18.00 g/mole abundance: 0.205 % - ElmMassFraction: 100.00 % ElmAbundance 100.00 % - - - Material: Air density: 0.000 mg/cm3 RadL: 28329262.634 km Nucl.Int.Length: 66178558.148 km - Imean: 85.664 eV temperature: 273.15 K pressure: 0.00 atm - - ---> Element: Nitrogen (N) Z = 7.0 N = 14 A = 14.010 g/mole - ---> Isotope: N14 Z = 7 N = 14 A = 14.00 g/mole abundance: 99.632 % - ---> Isotope: N15 Z = 7 N = 15 A = 15.00 g/mole abundance: 0.368 % - ElmMassFraction: 75.57 % ElmAbundance 78.48 % - - ---> Element: Oxygen (O) Z = 8.0 N = 16 A = 16.000 g/mole - ---> Isotope: O16 Z = 8 N = 16 A = 15.99 g/mole abundance: 99.757 % - ---> Isotope: O17 Z = 8 N = 17 A = 17.00 g/mole abundance: 0.038 % - ---> Isotope: O18 Z = 8 N = 18 A = 18.00 g/mole abundance: 0.205 % - ElmMassFraction: 23.15 % ElmAbundance 21.05 % - - ---> Element: Argon (Ar) Z = 18.0 N = 40 A = 39.948 g/mole - ---> Isotope: Ar36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.337 % - ---> Isotope: Ar38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.063 % - ---> Isotope: Ar40 Z = 18 N = 40 A = 39.96 g/mole abundance: 99.600 % - ElmMassFraction: 1.28 % ElmAbundance 0.47 % - - - Material: Xenon density: 5.858 mg/cm3 RadL: 14.478 m Nucl.Int.Length: 303.668 m - Imean: 482.000 eV temperature: 293.15 K pressure: 1.00 atm - - ---> Element: Xe (Xe) Z = 54.0 N = 131 A = 131.292 g/mole - ---> Isotope: Xe124 Z = 54 N = 124 A = 123.91 g/mole abundance: 0.090 % - ---> Isotope: Xe126 Z = 54 N = 126 A = 125.90 g/mole abundance: 0.090 % - ---> Isotope: Xe128 Z = 54 N = 128 A = 127.90 g/mole abundance: 1.920 % - ---> Isotope: Xe129 Z = 54 N = 129 A = 128.91 g/mole abundance: 26.440 % - ---> Isotope: Xe130 Z = 54 N = 130 A = 129.90 g/mole abundance: 4.080 % - ---> Isotope: Xe131 Z = 54 N = 131 A = 130.91 g/mole abundance: 21.180 % - ---> Isotope: Xe132 Z = 54 N = 132 A = 131.90 g/mole abundance: 26.890 % - ---> Isotope: Xe134 Z = 54 N = 134 A = 133.91 g/mole abundance: 10.440 % - ---> Isotope: Xe136 Z = 54 N = 136 A = 135.91 g/mole abundance: 8.870 % - ElmMassFraction: 100.00 % ElmAbundance 100.00 % - - - Material: CO2 density: 1.842 mg/cm3 RadL: 196.501 m Nucl.Int.Length: 466.037 m - Imean: 90.026 eV temperature: 293.15 K pressure: 1.00 atm - - ---> Element: Carbon (C) Z = 6.0 N = 12 A = 12.010 g/mole - ---> Isotope: C12 Z = 6 N = 12 A = 12.00 g/mole abundance: 98.930 % - ---> Isotope: C13 Z = 6 N = 13 A = 13.00 g/mole abundance: 1.070 % - ElmMassFraction: 27.29 % ElmAbundance 33.33 % - - ---> Element: Oxygen (O) Z = 8.0 N = 16 A = 16.000 g/mole - ---> Isotope: O16 Z = 8 N = 16 A = 15.99 g/mole abundance: 99.757 % - ---> Isotope: O17 Z = 8 N = 17 A = 17.00 g/mole abundance: 0.038 % - ---> Isotope: O18 Z = 8 N = 18 A = 18.00 g/mole abundance: 0.205 % - ElmMassFraction: 72.71 % ElmAbundance 66.67 % - - - Material: Xe20CO2 density: 5.082 mg/cm3 RadL: 17.750 m Nucl.Int.Length: 323.034 m - Imean: 412.201 eV temperature: 293.15 K pressure: 1.00 atm - - ---> Element: Xe (Xe) Z = 54.0 N = 131 A = 131.292 g/mole - ---> Isotope: Xe124 Z = 54 N = 124 A = 123.91 g/mole abundance: 0.090 % - ---> Isotope: Xe126 Z = 54 N = 126 A = 125.90 g/mole abundance: 0.090 % - ---> Isotope: Xe128 Z = 54 N = 128 A = 127.90 g/mole abundance: 1.920 % - ---> Isotope: Xe129 Z = 54 N = 129 A = 128.91 g/mole abundance: 26.440 % - ---> Isotope: Xe130 Z = 54 N = 130 A = 129.90 g/mole abundance: 4.080 % - ---> Isotope: Xe131 Z = 54 N = 131 A = 130.91 g/mole abundance: 21.180 % - ---> Isotope: Xe132 Z = 54 N = 132 A = 131.90 g/mole abundance: 26.890 % - ---> Isotope: Xe134 Z = 54 N = 134 A = 133.91 g/mole abundance: 10.440 % - ---> Isotope: Xe136 Z = 54 N = 136 A = 135.91 g/mole abundance: 8.870 % - ElmMassFraction: 92.20 % ElmAbundance 56.91 % - - ---> Element: Carbon (C) Z = 6.0 N = 12 A = 12.010 g/mole - ---> Isotope: C12 Z = 6 N = 12 A = 12.00 g/mole abundance: 98.930 % - ---> Isotope: C13 Z = 6 N = 13 A = 13.00 g/mole abundance: 1.070 % - ElmMassFraction: 2.13 % ElmAbundance 14.36 % - - ---> Element: Oxygen (O) Z = 8.0 N = 16 A = 16.000 g/mole - ---> Isotope: O16 Z = 8 N = 16 A = 15.99 g/mole abundance: 99.757 % - ---> Isotope: O17 Z = 8 N = 17 A = 17.00 g/mole abundance: 0.038 % - ---> Isotope: O18 Z = 8 N = 18 A = 18.00 g/mole abundance: 0.205 % - ElmMassFraction: 5.67 % ElmAbundance 28.73 % - - - Material: Kr20CO2 density: 3.601 mg/cm3 RadL: 34.157 m Nucl.Int.Length: 391.554 m - Imean: 296.542 eV temperature: 293.15 K pressure: 1.00 atm - - ---> Element: Kr (Kr) Z = 36.0 N = 84 A = 83.799 g/mole - ---> Isotope: Kr78 Z = 36 N = 78 A = 77.92 g/mole abundance: 0.350 % - ---> Isotope: Kr80 Z = 36 N = 80 A = 79.92 g/mole abundance: 2.280 % - ---> Isotope: Kr82 Z = 36 N = 82 A = 81.91 g/mole abundance: 11.580 % - ---> Isotope: Kr83 Z = 36 N = 83 A = 82.91 g/mole abundance: 11.490 % - ---> Isotope: Kr84 Z = 36 N = 84 A = 83.91 g/mole abundance: 57.000 % - ---> Isotope: Kr86 Z = 36 N = 86 A = 85.91 g/mole abundance: 17.300 % - ElmMassFraction: 89.00 % ElmAbundance 58.62 % - - ---> Element: Carbon (C) Z = 6.0 N = 12 A = 12.010 g/mole - ---> Isotope: C12 Z = 6 N = 12 A = 12.00 g/mole abundance: 98.930 % - ---> Isotope: C13 Z = 6 N = 13 A = 13.00 g/mole abundance: 1.070 % - ElmMassFraction: 3.00 % ElmAbundance 13.79 % - - ---> Element: Oxygen (O) Z = 8.0 N = 16 A = 16.000 g/mole - ---> Isotope: O16 Z = 8 N = 16 A = 15.99 g/mole abundance: 99.757 % - ---> Isotope: O17 Z = 8 N = 17 A = 17.00 g/mole abundance: 0.038 % - ---> Isotope: O18 Z = 8 N = 18 A = 18.00 g/mole abundance: 0.205 % - ElmMassFraction: 8.00 % ElmAbundance 27.59 % - - - +F01DetectorConstruction: not printing material table - to see it edit the source. <<< Geant4 Physics List simulation engine: FTFP_BERT +field01: Using G4TransportationParameters to set looper parameters. +-- Calorimeter Absorber z-coords: Start= 21989.5 End= 21990.5 The WORLD is made of 44000mm of Air, the transverse size (R) of the world is 22000 mm. The ABSORBER is made of 1mm of Air, the transverse size (R) is 20000 mm. Z position of the (middle of the) absorber 21990 mm. - F01FieldSetup: magnetic field set to Uniform( (0.0033,0,0) ) + F01FieldSetup: magnetic field set to Uniform( (0,0,0.0033) ) F01FieldSetup::CreateStepperAndChordFinder() called. - 1. Creating Stepper. + 1. Creating Stepper. G4ExplicitEuler is chosen. -The minimal step is equal to 1 mm - 2. Creating ChordFinder. - 3. Updating Field Manager. - 4. Updating Field Manager. - - hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval - for pions : 3 to 6 GeV - for kaons : 3 to 6 GeV - for proton : 3 to 6 GeV - for neutron : 3 to 6 GeV - +The minimal step is equal to 0.003 mm + 2. Creating ChordFinder. + 3. Updating Field Manager (chord finder, field-ptr). + 4/5. Updating eps_min and eps_max in Field Manager. +G4FieldManager/SetEpsMin : eps_min = 1e-05 +F01FieldSetup: requesting Max(imum) Epsilon = 0.005 +G4FieldManager/SetEpsMax : eps_max = 0.005 ( Note: unchanged eps_min= 1e-05 ) + Changed FieldManager epsilon values to epsilon_min= 1e-05 and epsilon_max= 0.005 ### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 -Visualization Manager instantiating with verbosity "warnings (3)"... -Visualization Manager initialising... -Registering graphics systems... - -You have successfully registered the following graphics systems. -Registered graphics systems are: - ASCIITree (ATree) - DAWNFILE (DAWNFILE) - G4HepRepFile (HepRepFile) - RayTracer (RayTracer) - VRML2FILE (VRML2FILE) - gMocrenFile (gMocrenFile) - OpenGLImmediateQt (OGLIQt, OGLI) - OpenGLStoredQt (OGLSQt, OGL, OGLS) - OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) - OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK) - OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK) - OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK) - RayTracerX (RayTracerX) - Qt3D (Qt3D) - TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK) - TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK) - TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG) - -Registering model factories... - -You have successfully registered the following model factories. -Registered model factories: - generic - drawByAttribute - drawByCharge - drawByOriginVolume - drawByParticleID - drawByEncounteredVolume - -Registered models: - None - -Registered filter factories: - attributeFilter - chargeFilter - originVolumeFilter - particleFilter - encounteredVolumeFilter - -Registered filters: - None - -You have successfully registered the following user vis actions. -Run Duration User Vis Actions: none -End of Event User Vis Actions: none -End of Run User Vis Actions: none - -Some /vis commands (optionally) take a string to specify colour. -"/vis/list" to see available colours. F01FieldSetup::CreateStepperAndChordFinder() called. - 1. Creating Stepper. + 1. Creating Stepper. G4DormandPrince745 Stepper is chosen -The minimal step is equal to 1 mm - 2. Creating ChordFinder. - 3. Updating Field Manager. +The minimal step is equal to 0.003 mm + 2. Creating ChordFinder. + 3. Updating Field Manager (chord finder, field-ptr). F01FieldSetup::CreateStepperAndChordFinder() called. - 1. Creating Stepper. + 1. Creating Stepper. G4DormandPrince745 Stepper is chosen -The minimal step is equal to 0.1 mm - 2. Creating ChordFinder. - 3. Updating Field Manager. - -==================================================================== - HADRONIC PROCESSES SUMMARY (verbose level 1) - ---------------------------------------------------- - Hadronic Processes for neutron - - Process: hadElastic - Model: hElasticCHIPS: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV - - - Process: neutronInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV - - - Process: nCapture - Model: nRadCapture: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV - - - Process: nKiller - ---------------------------------------------------- - Hadronic Processes for B- - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: B-Inelastic - Model: FTFP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for D- - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: D-Inelastic - Model: FTFP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for GenericIon - - Process: ionInelastic - Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n - Model: FTFP: 3 GeV/n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - ---------------------------------------------------- - Hadronic Processes for He3 - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - - Process: He3Inelastic - Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n - Model: FTFP: 3 GeV/n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - ---------------------------------------------------- - Hadronic Processes for alpha - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - - Process: alphaInelastic - Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n - Model: FTFP: 3 GeV/n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - ---------------------------------------------------- - Hadronic Processes for anti_He3 - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n - Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: anti_He3Inelastic - Model: FTFP: 0 eV /n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for anti_alpha - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n - Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: anti_alphaInelastic - Model: FTFP: 0 eV /n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for anti_deuteron - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n - Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: anti_deuteronInelastic - Model: FTFP: 0 eV /n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for anti_lambda - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: anti_lambdaInelastic - Model: FTFP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for anti_neutron - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100.1 MeV - Model: AntiAElastic: 100 MeV ---> 100 TeV - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: anti_neutronInelastic - Model: FTFP: 0 eV ---> 100 TeV - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for anti_proton - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100.1 MeV - Model: AntiAElastic: 100 MeV ---> 100 TeV - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: anti_protonInelastic - Model: FTFP: 0 eV ---> 100 TeV - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for anti_triton - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n - Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: anti_tritonInelastic - Model: FTFP: 0 eV /n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for deuteron - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - - Process: dInelastic - Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n - Model: FTFP: 3 GeV/n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - ---------------------------------------------------- - Hadronic Processes for e+ - - Process: positronNuclear - Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV - Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for e- - - Process: electronNuclear - Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV - Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for gamma - - Process: photonNuclear - Model: GammaNPreco: 0 eV ---> 200 MeV - Model: BertiniCascade: 199 MeV ---> 6 GeV - Model: TheoFSGenerator: 3 GeV ---> 100 TeV - Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for kaon+ - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: kaon+Inelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for kaon- - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: kaon-Inelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: hBertiniCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for lambda - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: lambdaInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for mu+ - - Process: muonNuclear - Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV - Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for mu- - - Process: muonNuclear - Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV - Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV - - - Process: muMinusCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for pi+ - - Process: hadElastic - Model: hElasticGlauber: 0 eV ---> 100 TeV - Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV - - - Process: pi+Inelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for pi- - - Process: hadElastic - Model: hElasticGlauber: 0 eV ---> 100 TeV - Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV - - - Process: pi-Inelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV - - - Process: hBertiniCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for proton - - Process: hadElastic - Model: hElasticCHIPS: 0 eV ---> 100 TeV - Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV - - - Process: protonInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for sigma- - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: sigma-Inelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: hBertiniCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for triton - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - - Process: tInelastic - Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n - Model: FTFP: 3 GeV/n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - -================================================================ -======================================================================= -====== Pre-compound/De-excitation Physics Parameters ======== -======================================================================= -Type of pre-compound inverse x-section 3 -Pre-compound model active 1 -Pre-compound excitation low energy 100 keV -Pre-compound excitation high energy 30 MeV -Type of de-excitation inverse x-section 3 -Type of de-excitation factory Evaporation+GEM -Number of de-excitation channels 68 -Min excitation energy 10 eV -Min energy per nucleon for multifragmentation 200 GeV -Limit excitation energy for Fermi BreakUp 20 MeV -Level density (1/MeV) 0.075 -Use simple level density model 1 -Use discrete excitation energy of the residual 1 -Time limit for long lived isomeres 1 ns -Isomer production flag 1 -Internal e- conversion flag 1 -Store e- internal conversion data 0 -Correlated gamma emission flag 0 -Max 2J for sampling of angular correlations 10 -======================================================================= +The minimal step is equal to 0.01 mm + 2. Creating ChordFinder. + 3. Updating Field Manager (chord finder, field-ptr). ========= Table of registered couples ============================ @@ -702,11 +66,7 @@ Index : 0 used in the geometry : Yes ================================================================== -G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. -See commands in /vis/modeling/trajectories/ for other options. ### Run 0 starts. -### Run 0 start. - Calling F01RunAction::ChangeLooperParameters() ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -714,15 +74,11 @@ See commands in /vis/modeling/trajectories/ for other options. 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.14791e-13 1 500 MeV3.8748 meV 1.58938 m 1.58938 m World Transportation - 2 0 fm 1.01183 m 21.9905 m 0 -0.00197661 0.999998 500 MeV0.00243793 meV 1 mm 1.59038 m Absorber Transportation - 3 0 fm 1.01172 m 22 m 0 -0.0207544 0.999785 500 MeV0.0231622 meV 9.50075 mm 1.59988 m OutOfWorld Transportation + 1 0 fm 0 fm -22 m 0 0 -1 500 MeV 107.243 meV 43.9895 m 43.9895 m OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000720s Sys=0.000000s - G4Transportation: Statistics for looping particles - No looping tracks found or killed. + User=0.000000s Real=0.000766s Sys=0.000000s ========= Table of registered couples ============================ @@ -736,8 +92,6 @@ Index : 0 used in the geometry : Yes ================================================================== ### Run 1 starts. -### Run 1 start. - Calling F01RunAction::ChangeLooperParameters() ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -745,15 +99,11 @@ Index : 0 used in the geometry : Yes 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.19203e-09 1 250 MeV1.8303 meV 79.5502 cm 79.5502 cm World Transportation - 2 0 fm 50.643 cm 21.9905 m 0 -0.0039492 0.999992 250 MeV0.00230082 meV 1 mm 79.6502 cm Absorber Transportation - 3 0 fm 50.6214 cm 22 m 0 -0.0414666 0.99914 250 MeV0.0218647 meV 9.50301 mm 80.6005 cm OutOfWorld Transportation + 1 0 fm 0 fm -22 m 0 0 -1 250 MeV 101.212 meV 43.9895 m 43.9895 m OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000149s Sys=0.000000s - G4Transportation: Statistics for looping particles - No looping tracks found or killed. + User=0.000000s Real=0.000129s Sys=0.000000s ========= Table of registered couples ============================ @@ -767,8 +117,6 @@ Index : 0 used in the geometry : Yes ================================================================== ### Run 2 starts. -### Run 2 start. - Calling F01RunAction::ChangeLooperParameters() ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -776,15 +124,11 @@ Index : 0 used in the geometry : Yes 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.20161e-09 1 200 MeV1.43689 meV 63.6725 cm 63.6725 cm World Transportation - 2 0 fm 40.5349 cm 21.9905 m 0 -0.00493399 0.999988 200 MeV0.0022567 meV 1 mm 63.7725 cm Absorber Transportation - 3 0 fm 40.5079 cm 22 m 0 -0.0518069 0.998657 200 MeV0.0214492 meV 9.50471 mm 64.723 cm OutOfWorld Transportation + 1 0 fm 0 fm -22 m 0 0 -1 200 MeV 99.2707 meV 43.9895 m 43.9895 m OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000136s Sys=0.000000s - G4Transportation: Statistics for looping particles - No looping tracks found or killed. + User=0.000000s Real=0.000088s Sys=0.000000s ========= Table of registered couples ============================ @@ -798,8 +142,6 @@ Index : 0 used in the geometry : Yes ================================================================== ### Run 3 starts. -### Run 3 start. - Calling F01RunAction::ChangeLooperParameters() ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -807,15 +149,11 @@ Index : 0 used in the geometry : Yes 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 5.03276e-08 3.37364e-08 1 100 MeV0.676633 meV 31.9182 cm 31.9182 cm World Transportation - 2 50328.4 fm 20.3185 cm 21.9905 m 5.03276e-08 -0.00984295 0.999952 100 MeV0.00221968 meV 1.04707 mm 32.0229 cm Absorber Transportation - 3 5.29388 Ang 20.2645 cm 22 m 1.48908e-07 -0.103352 0.994645 100 MeV0.0203471 meV 9.59814 mm 32.9827 cm OutOfWorld Transportation + 1 0 fm 0 fm -22 m -6.91047e-07 -1.81478e-07 -1 100 MeV 93.2533 meV 43.9895 m 43.9895 m OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000174s Sys=0.000000s - G4Transportation: Statistics for looping particles - No looping tracks found or killed. + User=0.000000s Real=0.000109s Sys=0.000000s ========= Table of registered couples ============================ @@ -829,8 +167,6 @@ Index : 0 used in the geometry : Yes ================================================================== ### Run 4 starts. -### Run 4 start. - Calling F01RunAction::ChangeLooperParameters() ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -838,21 +174,17 @@ Index : 0 used in the geometry : Yes 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 -8.42505e-09 -9.58672e-08 1 50 MeV0.318184 meV 16.0398 cm 16.0398 cm World Transportation - 2 -8425.59 fm 10.2098 cm 21.9905 m -2.94296e-08 -0.0195872 0.999808 50 MeV0.00202385 meV 1.02023 mm 16.1418 cm Absorber Transportation - 3 -2.90229 Ang 10.1016 cm 22 m -2.94296e-08 -0.205667 0.978622 50 MeV0.0190066 meV 9.58127 mm 17.0999 cm OutOfWorld Transportation + 1 0 fm 0 fm -22 m 4.699e-07 -6.20965e-07 -1 50 MeV 87.263 meV 43.9895 m 43.9895 m OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000131s Sys=0.000000s - G4Transportation: Statistics for looping particles - No looping tracks found or killed. + User=0.000000s Real=0.000110s Sys=0.000000s F01FieldSetup::CreateStepperAndChordFinder() called. - 1. Creating Stepper. + 1. Creating Stepper. G4DormandPrince745 Stepper is chosen -The minimal step is equal to 0.1 mm - 2. Creating ChordFinder. - 3. Updating Field Manager. +The minimal step is equal to 0.01 mm + 2. Creating ChordFinder. + 3. Updating Field Manager (chord finder, field-ptr). Setting Field strength to (1000,0,0) Gauss. ========= Table of registered couples ============================ @@ -867,8 +199,6 @@ Index : 0 used in the geometry : Yes ================================================================== ### Run 5 starts. -### Run 5 start. - Calling F01RunAction::ChangeLooperParameters() ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -876,15 +206,13 @@ Index : 0 used in the geometry : Yes 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 3.36956 m 21.9895 m 5.03344e-08 4.10621e-08 1 50 MeV10.4996 meV 5.2929 m 5.2929 m World Transportation - 2 50334.4 fm 3.36956 m 21.9905 m 2.97687e-07 -0.000593498 1 50 MeV0.00202385 meV 1.02023 mm 5.29392 m Absorber Transportation - 3 2.87839 nm 3.36953 m 22 m 5.20032e-07 -0.00623232 0.999981 50 MeV0.0188455 meV 9.50007 mm 5.30342 m OutOfWorld Transportation + 1 0 fm 3.36956 m 21.9895 m -1.33249e-07 -1.51702e-08 1 50 MeV 10.4996 meV 5.2929 m 5.2929 m World Transportation + 2 -1.33249 Ang 3.36956 m 21.9905 m -9.9725e-08 -0.000593579 1 50 MeV 0.00202385 meV 1.02023 mm 5.29392 m Absorber Transportation + 3 -1.08064 nm 3.36953 m 22 m -5.57875e-08 -0.00623227 0.999981 50 MeV 0.0188455 meV 9.50007 mm 5.30342 m OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000155s Sys=0.000000s - G4Transportation: Statistics for looping particles - No looping tracks found or killed. + User=0.000000s Real=0.000240s Sys=0.000000s ========= Table of registered couples ============================ @@ -898,8 +226,6 @@ Index : 0 used in the geometry : Yes ================================================================== ### Run 6 starts. -### Run 6 start. - Calling F01RunAction::ChangeLooperParameters() --> Event 0 starts. --> Event 10 starts. --> Event 20 starts. @@ -913,21 +239,24 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=0.000000s Real=0.009047s Sys=0.010000s - G4Transportation: Statistics for looping particles - No looping tracks found or killed. + User=0.010000s Real=0.008705s Sys=0.000000s # /calor/setAbsMat Xe20CO2 /calor/setWorldMat Kr20CO2 /calor/setAbsThick 0.8 mm +-- Calorimeter Absorber z-coords: Start= 21989.6 End= 21990.4 /run/reinitializeGeometry /calor/setAbsRad 1900 mm +-- Calorimeter Absorber z-coords: Start= 21989.6 End= 21990.4 /run/reinitializeGeometry /calor/setAbsZpos 20990 mm +-- Calorimeter Absorber z-coords: Start= 20989.6 End= 20990.4 /run/reinitializeGeometry /calor/setWorldZ 45000 mm +-- Calorimeter Absorber z-coords: Start= 20989.6 End= 20990.4 /run/reinitializeGeometry /calor/setWorldR 23000 mm +-- Calorimeter Absorber z-coords: Start= 20989.6 End= 20990.4 /run/reinitializeGeometry /field/setFieldZ 1.0 kG Setting Field strength to (0,0,1000) Gauss. @@ -944,6 +273,7 @@ Setting Field strength to (0,0,1000) Gauss. Start re-initialization because Geometry has been modified since last Run. +-- Calorimeter Absorber z-coords: Start= 20989.6 End= 20990.4 The WORLD is made of 45000mm of Kr20CO2, the transverse size (R) of the world is 23000 mm. The ABSORBER is made of 0.8mm of Xe20CO2, the transverse size (R) is 1900 mm. @@ -974,20 +304,14 @@ Index : 2 used in the geometry : Yes ================================================================== ### Run 7 starts. -### Run 7 start. - Calling F01RunAction::ChangeLooperParameters() --> Event 0 starts. Run terminated. Run Summary Number of events processed : 1 - User=0.010000s Real=0.007814s Sys=0.000000s - G4Transportation: Statistics for looping particles - No looping tracks found or killed. -Graphics systems deleted. -Visualization Manager deleting... + User=0.030000s Real=0.030045s Sys=0.000000s G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 12 of which, static: 0 -Dynamic pools deleted: 12 / Total memory freed: 0.28 MB +Dynamic pools deleted: 12 / Total memory freed: 0.52 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/field/field01/include/F01DetectorConstruction.hh b/examples/extended/field/field01/include/F01DetectorConstruction.hh index 4341dad442..7e8d326772 100644 --- a/examples/extended/field/field01/include/F01DetectorConstruction.hh +++ b/examples/extended/field/field01/include/F01DetectorConstruction.hh @@ -139,6 +139,9 @@ inline void F01DetectorConstruction::ComputeCalorParameters() fZStartAbs = fZAbsorber-0.5*fAbsorberThickness; fZEndAbs = fZAbsorber+0.5*fAbsorberThickness; + + G4cout << "-- Calorimeter Absorber z-coords: Start= " + << fZStartAbs << " End= " << fZEndAbs << G4endl; } #endif diff --git a/examples/extended/field/field01/include/F01FieldMessenger.hh b/examples/extended/field/field01/include/F01FieldMessenger.hh index 2de2d80743..eae0499f60 100644 --- a/examples/extended/field/field01/include/F01FieldMessenger.hh +++ b/examples/extended/field/field01/include/F01FieldMessenger.hh @@ -24,10 +24,12 @@ // ******************************************************************** // /// \file field/field01/include/F01FieldMessenger.hh -/// \brief Definition of the F01FieldMessenger class -// -// -// +/// \brief F01FieldMessenger allows interactive user control of +// - the strength of the (uniform) magnetic field +// - the key parameters for the accuracy of integration +// - the integration method used - a choice between +// * different embedded Runge-Kutta methods or 'tableaus' +// * the symplectic Boris method for accelerator setups // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -40,6 +42,7 @@ class F01FieldSetup; class G4UIdirectory; class G4UIcmdWithAnInteger; +class G4UIcmdWithADouble; class G4UIcmdWithADoubleAndUnit; class G4UIcmdWith3VectorAndUnit; class G4UIcmdWithoutParameter; @@ -51,9 +54,9 @@ class F01FieldMessenger: public G4UImessenger public: F01FieldMessenger(F01FieldSetup* ); virtual ~F01FieldMessenger(); - + virtual void SetNewValue(G4UIcommand*, G4String); - + private: F01FieldSetup* fEMfieldSetup; @@ -64,6 +67,9 @@ class F01FieldMessenger: public G4UImessenger G4UIcmdWithADoubleAndUnit* fMagFieldZCmd; G4UIcmdWith3VectorAndUnit* fMagFieldCmd; G4UIcmdWithADoubleAndUnit* fMinStepCmd; + G4UIcmdWithADoubleAndUnit* fDeltaOneStepCmd; + G4UIcmdWithADouble* fEpsMinCmd; + G4UIcmdWithADouble* fEpsMaxCmd; G4UIcmdWithoutParameter* fUpdateCmd; }; diff --git a/examples/extended/field/field01/include/F01FieldSetup.hh b/examples/extended/field/field01/include/F01FieldSetup.hh index ce9461579a..e211c674b9 100644 --- a/examples/extended/field/field01/include/F01FieldSetup.hh +++ b/examples/extended/field/field01/include/F01FieldSetup.hh @@ -62,11 +62,11 @@ public: G4bool useFSALstepper= false ); F01FieldSetup(); // A zero field - F01FieldSetup( F01FieldSetup & ) = delete; + F01FieldSetup( F01FieldSetup & ) = delete; virtual ~F01FieldSetup(); - void SetStepperType( G4int i ) + void SetStepperType( G4int i ) { fStepperType = i; CreateStepperAndChordFinder(); } void SetStepper(); @@ -75,26 +75,41 @@ public: void InitialiseAll(); // Set parameters and call method below - // Original method - + // Original method void CreateStepperAndChordFinder(); - // New method - create FSAL stepper and driver - void CreateFSALStepperAndChordFinder(); + // Create FSAL stepper and driver + void CreateFSALStepperAndChordFinder(); + // Create Boris driver ( 2nd order Symplectic integration ) + void CreateAndSetupBorisDriver(); + + void SetUseFSALstepper(G4bool val= true) { fUseFSALstepper = val; } + G4bool GetUseFSALstepper() { return fUseFSALstepper; } + + // Parameters for integration accuracy : get / control + // ------------------------------------------------------- + G4double GetEpsilonMin(){ return fDesiredEpsilonMin; } + G4double GetEpsilonMax(){ return fDesiredEpsilonMax; } + + void SetEpsilonMin(G4double val){ fDesiredEpsilonMin= val; } + void SetEpsilonMax(G4double val){ fDesiredEpsilonMax= val; } + + void SetDeltaOneStep(G4double val){ fDeltaOneStep= val; } + + // Special for this setup only + // ---------------------------- void SetFieldValue(G4ThreeVector fieldVector); void SetFieldZValue(G4double fieldValue); G4ThreeVector GetConstantFieldValue(); - void SetUseFSALstepper(G4bool val= true) { fUseFSALstepper = val; } - G4bool GetUseFSALstepper() { return fUseFSALstepper; } - protected: // Implementation methods G4VIntegrationDriver* CreateFSALStepperAndDriver(); // Find the global Field Manager G4FieldManager* GetGlobalFieldManager(); - + protected: G4FieldManager* fFieldManager = nullptr; @@ -106,11 +121,13 @@ protected: G4bool fUseFSALstepper = false; G4VIntegrationDriver* fDriver = nullptr; // If non-null, its new type (FSAL) G4int fStepperType = -1; - - G4double fMinStep = -1.0; - F01FieldMessenger* fFieldMessenger = nullptr; + // Parameters / Invariant during tracking loop + G4double fMinStep = -1.0; + G4double fDeltaOneStep= -1.0; + G4double fDesiredEpsilonMin = 1.0e-05; // tight: 1.0e-8 std: 1.0e-5 to 1.e-6 loose: 1.0e-4 + G4double fDesiredEpsilonMax = 0.005; // tight: 1.0e-5 std: 1.0e-4 to 5.e-3 loose: 1.0e-3+ }; #endif diff --git a/examples/extended/field/field01/include/F01RunAction.hh b/examples/extended/field/field01/include/F01RunAction.hh index 49a95e3fcd..c405974470 100644 --- a/examples/extended/field/field01/include/F01RunAction.hh +++ b/examples/extended/field/field01/include/F01RunAction.hh @@ -48,26 +48,26 @@ public: void ChangeLooperParameters(const G4ParticleDefinition* particleDef ); // Helper method to find the Transportation process for a particle type - std::pair - findTransportation( const G4ParticleDefinition * particleDef, + G4Transportation* + FindTransportation( const G4ParticleDefinition * particleDef, bool reportError= true ); public: - void SetNumberOfTrials( G4int val ) { theNumberOfTrials = val; } - void SetWarningEnergy( double val ) { theWarningEnergy = val; } - void SetImportantEnergy( double val ) { theImportantEnergy = val; } - G4int GetNumberOfTrials() { return theNumberOfTrials; } - G4double GetWarningEnergy() { return theWarningEnergy; } - G4double GetImportantEnergy() { return theImportantEnergy; } + void SetNumberOfTrials( G4int val ) { fNumberOfTrials = val; } + void SetWarningEnergy( G4double val ) { fWarningEnergy = val; } + void SetImportantEnergy( G4double val ) { fImportantEnergy = val; } + G4int GetNumberOfTrials() { return fNumberOfTrials; } + G4double GetWarningEnergy() { return fWarningEnergy; } + G4double GetImportantEnergy() { return fImportantEnergy; } private: // Values for initialising 'loopers' parameters of Transport process - G4int theNumberOfTrials = 0; // Default will not overwrite - G4double theWarningEnergy = -1.0; // Default values - non operational - G4double theImportantEnergy = -1.0; // Default - will not overwrite + G4int fNumberOfTrials = 0; // Default will not overwrite + G4double fWarningEnergy = -1.0; // Default values - non operational + G4double fImportantEnergy = -1.0; // Default - will not overwrite - int theVerboseLevel = 0; + G4int fVerboseLevel = 0; }; #endif diff --git a/examples/extended/field/field01/src/F01DetectorConstruction.cc b/examples/extended/field/field01/src/F01DetectorConstruction.cc index a8f539022a..bf2d2cd9f0 100644 --- a/examples/extended/field/field01/src/F01DetectorConstruction.cc +++ b/examples/extended/field/field01/src/F01DetectorConstruction.cc @@ -208,8 +208,11 @@ void F01DetectorConstruction::DefineMaterials() Kr20CO2->AddMaterial( Kr, fractionmass = 0.89 ); Kr20CO2->AddMaterial( CarbonDioxide, fractionmass = 0.11 ); - G4cout << *(G4Material::GetMaterialTable()) << G4endl; - + // Print material table -- silence it for now + // G4cout << *(G4Material::GetMaterialTable()) << G4endl; + G4cout << "F01DetectorConstruction: not printing material table - to see it edit the source." + << G4endl; + // default materials of the calorimeter fAbsorberMaterial = air; // Kr20CO2; // XeCO2CF4; @@ -379,6 +382,7 @@ void F01DetectorConstruction::SetAbsorberZpos(G4double val) } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#include "G4FieldManager.hh" void F01DetectorConstruction::ConstructSDandField() { @@ -390,11 +394,11 @@ void F01DetectorConstruction::ConstructSDandField() } G4SDManager::GetSDMpointer()->AddNewDetector(fCalorimeterSD.Get()); SetSensitiveDetector(fLogicAbsorber, fCalorimeterSD.Get()); - + // Construct the field creator - this will register the field it creates if (!fEmFieldSetup.Get()) { F01FieldSetup* fieldSetup - = new F01FieldSetup(G4ThreeVector( 3.3*tesla, 0.0, 0.0 ), + = new F01FieldSetup(G4ThreeVector( 0.0, 0.0, 3.3*tesla ), fUseFSALstepper ); G4AutoDelete::Register(fieldSetup); // Kernel will delete the F01FieldSetup fEmFieldSetup.Put(fieldSetup); diff --git a/examples/extended/field/field01/src/F01FieldMessenger.cc b/examples/extended/field/field01/src/F01FieldMessenger.cc index 987785473b..406ef4554c 100644 --- a/examples/extended/field/field01/src/F01FieldMessenger.cc +++ b/examples/extended/field/field01/src/F01FieldMessenger.cc @@ -36,10 +36,13 @@ #include "F01FieldSetup.hh" #include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithADouble.hh" #include "G4UIcmdWithADoubleAndUnit.hh" #include "G4UIcmdWith3VectorAndUnit.hh" #include "G4UIcmdWithoutParameter.hh" +#include "G4FieldManager.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... F01FieldMessenger::F01FieldMessenger(F01FieldSetup* fieldSetup) @@ -66,7 +69,7 @@ F01FieldMessenger::F01FieldMessenger(F01FieldSetup* fieldSetup) fUpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" "); fUpdateCmd->SetGuidance("if you changed geometrical value(s)."); fUpdateCmd->AvailableForStates(G4State_Idle); - + fMagFieldZCmd = new G4UIcmdWithADoubleAndUnit("/field/setFieldZ",this); fMagFieldZCmd->SetGuidance("Define magnetic field."); fMagFieldZCmd->SetGuidance("Magnetic field will be in Z direction."); @@ -83,9 +86,38 @@ F01FieldMessenger::F01FieldMessenger(F01FieldSetup* fieldSetup) fMinStepCmd = new G4UIcmdWithADoubleAndUnit("/field/setMinStep",this); fMinStepCmd->SetGuidance("Define minimal step"); fMinStepCmd->SetGuidance("Magnetic field will be in Z direction."); - fMinStepCmd->SetParameterName("min step",false,false); + fMinStepCmd->SetParameterName("minStep",false,false); fMinStepCmd->SetDefaultUnit("mm"); fMinStepCmd->AvailableForStates(G4State_Idle); + + // Commands for integration accuracy + // 1. Delta One Step = length of potential error in each integration substep + // Recall that there can be up to 300 substeps in a physics step !! + fDeltaOneStepCmd = new G4UIcmdWithADoubleAndUnit("/field/setDeltaOneStep",this); + fDeltaOneStepCmd->SetGuidance("Define minimal step"); + fDeltaOneStepCmd->SetGuidance("Magnetic field will be in Z direction."); + fDeltaOneStepCmd->SetParameterName("minStep",false,false); + fDeltaOneStepCmd->SetDefaultUnit("mm"); + fDeltaOneStepCmd->AvailableForStates(G4State_Idle); + + // A choice: Allow the user to reset the Eps Min/Max values to our default + G4bool omitable= true, currentAsDefault= false; + fEpsMinCmd = new G4UIcmdWithADouble("/field/setEpsilonMin",this); + fEpsMinCmd->SetGuidance("Define minimum value of the relative integration error (EpsilonMin) - a dimensionless number"); + fEpsMinCmd->SetGuidance("Limit to ensure that large steps do NOT result in a very low value (ie high accuracy) that integration needs many steps and CPU cycles."); + fEpsMinCmd->SetParameterName("minEpsilon",omitable,currentAsDefault); + fEpsMinCmd->SetDefaultValue(1.0e-4); // A default eps_min + fEpsMinCmd->AvailableForStates(G4State_Idle); + + fEpsMaxCmd = new G4UIcmdWithADouble("/field/setEpsilonMax",this); + fEpsMaxCmd->SetGuidance("Define minimum value of the relative integration error (EpsilonMax) - a dimensionless number"); + fEpsMaxCmd->SetGuidance("Limit to ensure a very small step does NOT result in a large relative error (ie low accuracy) with unreliable results."); + fEpsMaxCmd->SetParameterName("maxEpsilon",omitable,currentAsDefault); + fEpsMinCmd->SetDefaultValue(1.0e-5); // A default eps_max + fEpsMaxCmd->AvailableForStates(G4State_Idle); + + // HOW to Ensure that its value is val < G4FieldManager::GetMaxAcceptedEpsilon() ?? + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -96,6 +128,9 @@ F01FieldMessenger::~F01FieldMessenger() delete fMagFieldZCmd; delete fMagFieldCmd; delete fMinStepCmd; + delete fDeltaOneStepCmd; + delete fEpsMinCmd; + delete fEpsMaxCmd; delete fFieldDir; delete fUpdateCmd; } @@ -114,6 +149,12 @@ void F01FieldMessenger::SetNewValue( G4UIcommand* command, G4String newValue) fEMfieldSetup->SetFieldValue(fMagFieldCmd->GetNew3VectorValue(newValue)); if( command == fMinStepCmd ) fEMfieldSetup->SetMinStep(fMinStepCmd->GetNewDoubleValue(newValue)); + if( command == fDeltaOneStepCmd ) + fEMfieldSetup->SetDeltaOneStep(fDeltaOneStepCmd->GetNewDoubleValue(newValue)); + if( command == fEpsMinCmd ) + fEMfieldSetup->SetEpsilonMin(fEpsMinCmd->GetNewDoubleValue(newValue)); + if( command == fEpsMaxCmd ) + fEMfieldSetup->SetEpsilonMax(fEpsMaxCmd->GetNewDoubleValue(newValue)); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/field/field01/src/F01FieldSetup.cc b/examples/extended/field/field01/src/F01FieldSetup.cc index 6800120cbe..53ddee10dd 100644 --- a/examples/extended/field/field01/src/F01FieldSetup.cc +++ b/examples/extended/field/field01/src/F01FieldSetup.cc @@ -60,7 +60,6 @@ #include "G4HelixMixedStepper.hh" #include "G4ExactHelixStepper.hh" -// Newest steppers - from Release 10.3-beta (June 2013) #include "G4BogackiShampine23.hh" #include "G4BogackiShampine45.hh" #include "G4DormandPrince745.hh" @@ -86,8 +85,7 @@ F01FieldSetup::F01FieldSetup(G4ThreeVector fieldVector, G4bool useFSALstepper ) : fMagneticField(new G4UniformMagField(fieldVector)), fUseFSALstepper(useFSALstepper), - fStepperType(0), - fMinStep(0.) + fStepperType(0) { G4cout << " F01FieldSetup: magnetic field set to Uniform( " << fieldVector << " ) " << G4endl; @@ -106,10 +104,9 @@ F01FieldSetup::F01FieldSetup(G4ThreeVector fieldVector, if( stepperNum > 0 ) fStepperType = stepperNum; else - fStepperType = - stepperNum; - + fStepperType = - stepperNum; } - + InitialiseAll(); } @@ -118,8 +115,7 @@ F01FieldSetup::F01FieldSetup(G4ThreeVector fieldVector, F01FieldSetup::F01FieldSetup() : fMagneticField(new G4UniformMagField(G4ThreeVector())), fUseFSALstepper(false), - fStepperType(17), // Use Dormand Prince (7) 4/5 as default stepper - fMinStep(0.) + fStepperType(17) // Use Dormand Prince (7) 4/5 as default stepper { G4cout << " F01FieldSetup: magnetic field set to Uniform( 0.0, 0, 0 ) " << G4endl; @@ -134,8 +130,11 @@ void F01FieldSetup::InitialiseAll() fEquation = new G4Mag_UsualEqRhs(fMagneticField); - fMinStep = 1.0*mm; // minimal step of 1 mm is default - + fMinStep = 3.0e-3*mm; // minimal step of 1 um is default ==> accept any error for smaller steps! + fDeltaOneStep = 1.0e-5*mm; // Errors of this size in an integration sub-step are acceptable + // except limited by the relative integration error limits (epsilon_min/max) + // Notes: - their initial values are set in the header. + // - both this and the eps min/max can be changed using Set methods. fFieldManager = G4TransportationManager::GetTransportationManager() ->GetFieldManager(); @@ -145,11 +144,58 @@ void F01FieldSetup::InitialiseAll() else { CreateStepperAndChordFinder(); + // To try the symplectic method (Boris Scheme/Driver) replace the line above with the one below: + // CreateAndSetupBorisDriver(); } - - G4cout << " 4. Updating Field Manager." << G4endl; + + G4cout << " 4/5. Updating eps_min and eps_max in Field Manager." << G4endl; fFieldManager->SetChordFinder( fChordFinder ); fFieldManager->SetDetectorField(fMagneticField ); + + // For controling the accurancy + fFieldManager -> SetMinimumEpsilonStep( fDesiredEpsilonMin ) ; + // + // const G4double increaseFactor = 3.0 ; // typical rangle 1.0 - 10.0 + // maxEpsilon must not exceed a ceiling, ideally 0.001 -- above this integration is unreliable + // const G4double maxEpsilon = increaseFactor * fDesiredEpsilonMin; + // fFieldManager -> SetMaximumEpsilonStep( maxEpsilon ); + + // For now, though, let's demonstrate how to extend the ceiling, if needed: + if( fDesiredEpsilonMax < G4FieldManager::GetMaxAcceptedEpsilon() ) + { + G4cout << "F01FieldSetup: requesting Max(imum) Epsilon = " << fDesiredEpsilonMax << G4endl; + fFieldManager -> SetMaximumEpsilonStep( fDesiredEpsilonMax ); + } + else + { + G4bool softFail= true; + G4bool good= G4FieldManager::SetMaxAcceptedEpsilon(fDesiredEpsilonMax, softFail); + + if( good ) { + G4cout << "F01FieldSetup: requested increase Max(imum) Accepted Epsilon to " + << fDesiredEpsilonMax << " succeeded." << G4endl; + fFieldManager -> SetMaximumEpsilonStep( fDesiredEpsilonMax ); + } else { + G4double maxEpsAllowed = G4FieldManager::GetMaxAcceptedEpsilon(); + fFieldManager -> SetMaximumEpsilonStep( maxEpsAllowed ); + G4cout << "F01FieldSetup: requested increase Max(imum) Accepted Epsilon to " + << fDesiredEpsilonMax << " FAILED." << G4endl + << " Setting it to max allowed = " << maxEpsAllowed << G4endl; + } + } + // To demonstrate that it is now possible to change the maximum accepted epsilon + + // Note: The values of both epsilon parameters must be between + // fMaxAcceptedEpsilon = 0.001 + // to ensure robustness of integration (adequate accuracy of intermediate results) + // and (much bigger than) + // fMinAcceptedEpsilon ~= 2.2e-13 ( 1000.0 * std::numeric_limits::epsilon() ) + // which even the best integration methods would struggle greatly to achieve. + + G4cout << " Changed FieldManager epsilon values to epsilon_min= " + << fFieldManager -> GetMinimumEpsilonStep() + << " and epsilon_max= " + << fFieldManager -> GetMaximumEpsilonStep() << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -171,15 +217,15 @@ void F01FieldSetup::CreateStepperAndChordFinder() // Update field G4cout << " F01FieldSetup::CreateStepperAndChordFinder() called. " << G4endl - << " 1. Creating Stepper." << G4endl; + << " 1. Creating Stepper." << G4endl; SetStepper(); G4cout<<"The minimal step is equal to "<SetChordFinder( fChordFinder ); fFieldManager->SetDetectorField(fMagneticField ); } @@ -314,13 +360,13 @@ F01FieldSetup::CreateFSALStepperAndDriver() fStepper = nullptr; G4cout << " F01FieldSetup::CreateFSALStepperAndDriver() called. " << G4endl; - G4cout << " 1. Creating Stepper." << G4endl; + G4cout << " 1. Creating Stepper." << G4endl; // auto fsalStepper = new FsalStepperType( fEquation ); G4RK547FEq1* stepper1 = nullptr; G4RK547FEq2* stepper2 = nullptr; G4RK547FEq3* stepper3 = nullptr; - G4cout << " 2. Creating FSAL Driver." << G4endl; + G4cout << " 2. Creating FSAL Driver." << G4endl; G4VIntegrationDriver* fsalDriver = nullptr; switch ( fStepperType ) { @@ -388,7 +434,7 @@ void F01FieldSetup::CreateFSALStepperAndChordFinder() fDriver = FSALdriver; G4cout<<"The minimal step is equal to "<SetFieldChangesEnergy(true); // To test energy conservation!! + + G4cout << " 3. Creating ChordFinder." << G4endl; + fChordFinder = new G4ChordFinder( driver ); + + G4cout << " 4. Updating Field Manager (with ChordFinder, field)." << G4endl; + fFieldManager->SetChordFinder( fChordFinder ); + fFieldManager->SetDetectorField(fMagneticField ); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/field/field01/src/F01RunAction.cc b/examples/extended/field/field01/src/F01RunAction.cc index 5424e5f3d4..0d60f4c7e4 100644 --- a/examples/extended/field/field01/src/F01RunAction.cc +++ b/examples/extended/field/field01/src/F01RunAction.cc @@ -35,9 +35,9 @@ #include "G4CoupledTransportation.hh" F01RunAction::F01RunAction() { - theWarningEnergy = 1.0 * CLHEP::kiloelectronvolt; // Arbitrary - theImportantEnergy = 10.0 * CLHEP::kiloelectronvolt; // Arbitrary - theNumberOfTrials = 15; // Arbitrary + fWarningEnergy = 1.0 * CLHEP::kiloelectronvolt; // Arbitrary + fImportantEnergy = 10.0 * CLHEP::kiloelectronvolt; // Arbitrary + fNumberOfTrials = 15; // Arbitrary // Applications should determine these thresholds according to // - physics requirements, and // - the computing cost of continuing integration for looping tracks @@ -45,7 +45,8 @@ F01RunAction::F01RunAction() { F01RunAction::~F01RunAction() {} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... +//------------------------------------------------------------------------------ + void F01RunAction::BeginOfRunAction( const G4Run* aRun ) { G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; @@ -54,60 +55,81 @@ void F01RunAction::BeginOfRunAction( const G4Run* aRun ) { ChangeLooperParameters( G4Electron::Definition() ); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... +//------------------------------------------------------------------------------ void F01RunAction:: ChangeLooperParameters(const G4ParticleDefinition* particleDef ) { if( particleDef == nullptr ) particleDef = G4Electron::Definition(); - auto transportPair= findTransportation( particleDef ); - auto transport = transportPair.first; - auto coupledTransport = transportPair.second; + auto transport= FindTransportation( particleDef ); - if( transport != nullptr ) - { - // Change the values of the looping particle parameters of Transportation - if( theWarningEnergy >= 0.0 ) - transport->SetThresholdWarningEnergy( theWarningEnergy ); - if( theImportantEnergy >= 0.0 ) - transport->SetThresholdImportantEnergy( theImportantEnergy ); - if( theNumberOfTrials > 0 ) - transport->SetThresholdTrials( theNumberOfTrials ); + // Note that all particles that share the same Transportation + // (or Coupled Transportation) process (with this particle) + // will be affected by this change + // -- to change these parameters by particle type, the values + // must instead be changed/reset in a (Start) Tracking Action. + + G4cout << " ChangeLooperParameters called with particle type " + << particleDef->GetParticleName() + << " transport process: "; + if( transport != nullptr ) { + G4cout << transport->GetProcessName(); + } else { + G4cout << " UNKNOWN -- it is neither G4Transportation nor G4CoupledTransportation"; } - else if( coupledTransport != nullptr ) - { - // Change the values for Coupled Transport - if( theWarningEnergy >= 0.0 ) - coupledTransport->SetThresholdWarningEnergy( theWarningEnergy ); - if( theImportantEnergy >= 0.0 ) - coupledTransport->SetThresholdImportantEnergy( theImportantEnergy ); - if( theNumberOfTrials > 0 ) - coupledTransport->SetThresholdTrials( theNumberOfTrials ); + G4cout << G4endl; + + if( transport != nullptr ) { + if( fWarningEnergy >= 0.0 ){ + transport->SetThresholdWarningEnergy( fWarningEnergy ); + G4cout << "-- Changed Threshold Warning Energy (for loopers) = " + << fWarningEnergy / CLHEP::MeV << " MeV " << G4endl; + } + if( fImportantEnergy >= 0.0 ) { + transport->SetThresholdImportantEnergy( fImportantEnergy ); + + G4cout << "-- Changed Threshold Important Energy (for loopers) = " + << fImportantEnergy / CLHEP::MeV << " MeV " << G4endl; + } + + if( fNumberOfTrials > 0 ) { + transport->SetThresholdTrials( fNumberOfTrials ); + + G4cout << "-- Changed number of Trials (for loopers) = " << fNumberOfTrials << G4endl; + } + } + + if( transport == nullptr ) { + if( fWarningEnergy >= 0.0 ) + G4cerr << " Unknown transport process> Cannot change Warning Energy. " << G4endl; + if( fImportantEnergy >= 0.0 ) + G4cerr << " Unknown transport process> Cannot change 'Important' Energy. " << G4endl; + if( fNumberOfTrials > 0 ) + G4cerr << " Unknown transport process> Cannot change number of trials. " << G4endl; } } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... +//------------------------------------------------------------------------------ void F01RunAction::EndOfRunAction( const G4Run* ) { - if( theVerboseLevel > 1 ) + if( fVerboseLevel > 1 ) G4cout << G4endl << G4endl << " ########### Track Statistics for Transportation process(es) " << " ########### " << G4endl << " ############################################## " << " ####################### " << G4endl << G4endl; - auto transportPair= findTransportation( G4Electron::Definition() ); - auto transport = transportPair.first; - auto coupledTransport = transportPair.second; - if( transport) { transport->PrintStatistics(G4cout); } - else if( coupledTransport) { coupledTransport->PrintStatistics(G4cout); } + auto transport= FindTransportation( G4Electron::Definition() ); + if( transport) { + transport->PrintStatistics(G4cout); + } } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//------------------------------------------------------------------------------ -std::pair -F01RunAction::findTransportation( const G4ParticleDefinition* particleDef, +G4Transportation* +F01RunAction::FindTransportation( const G4ParticleDefinition* particleDef, bool reportError ) { const auto *partPM= particleDef->GetProcessManager(); @@ -115,11 +137,23 @@ F01RunAction::findTransportation( const G4ParticleDefinition* particleDef, G4VProcess* partTransport = partPM->GetProcess("Transportation"); auto transport= dynamic_cast(partTransport); - partTransport = partPM->GetProcess("CoupledTransportation"); - auto coupledTransport= - dynamic_cast(partTransport); - - if( reportError && !transport && !coupledTransport ) + if( !transport ){ + partTransport = partPM->GetProcess("CoupledTransportation"); + auto coupledTransport= + dynamic_cast(partTransport); + if( coupledTransport ) { + transport= coupledTransport; + } else { + partTransport = partPM->GetProcess("TransportationWithMsc"); + auto transportWithMsc= + dynamic_cast(partTransport); + if( transportWithMsc ) { + transport= transportWithMsc; + } + } + } + + if( reportError && !transport ) { G4cerr << "Unable to find Transportation process for particle type " << particleDef->GetParticleName() @@ -127,7 +161,5 @@ F01RunAction::findTransportation( const G4ParticleDefinition* particleDef, << G4endl; } - return - std::make_pair( transport, coupledTransport ); - // + return transport; } diff --git a/examples/extended/field/field01/src/F01SteppingVerbose.cc b/examples/extended/field/field01/src/F01SteppingVerbose.cc index b2c055e052..cf33ccae25 100644 --- a/examples/extended/field/field01/src/F01SteppingVerbose.cc +++ b/examples/extended/field/field01/src/F01SteppingVerbose.cc @@ -67,10 +67,10 @@ void F01SteppingVerbose::StepInfo() << 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) << "dEStep" << " " + << std::setw(10) << "StepLeng" << " " + << std::setw(10) << "TrakLeng" << " " + << std::setw(10) << "NextVolu" << " " << std::setw(10) << "Process" << " " << G4endl; } @@ -82,11 +82,11 @@ void F01SteppingVerbose::StepInfo() 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"); + G4cout << std::setw( 8) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") << " " + << std::setw(10) << G4BestUnit( + fStep->GetTotalEnergyDeposit(),"Energy") << " " + << std::setw(10) << G4BestUnit(fStep->GetStepLength(),"Length") << " " + << std::setw(10) << G4BestUnit(fTrack->GetTrackLength(),"Length") << " "; if( fTrack->GetNextVolume() != 0 ) { G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); diff --git a/examples/extended/field/field02/field02.out b/examples/extended/field/field02/field02.out index 95a995c0c9..eb756f0c42 100644 --- a/examples/extended/field/field02/field02.out +++ b/examples/extended/field/field02/field02.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -230,6 +230,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -285,6 +287,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -312,7 +315,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -363,8 +366,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -846,6 +849,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -5934,7 +5942,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Run terminated. Run Summary Number of events processed : 100 - User=0.040000s Real=0.041441s Sys=0.010000s + User=0.030000s Real=0.049036s Sys=0.020000s # /calor/setAbsMat Air /calor/setWorldMat Xe20CO2 @@ -7307,7 +7315,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Run terminated. Run Summary Number of events processed : 1 - User=0.020000s Real=0.012372s Sys=0.000000s + User=0.010000s Real=0.014396s Sys=0.000000s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/field/field03/field03.out b/examples/extended/field/field03/field03.out index 99c1b4c52a..d522e0ca84 100644 --- a/examples/extended/field/field03/field03.out +++ b/examples/extended/field/field03/field03.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -241,6 +241,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -296,6 +298,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -323,7 +326,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -374,8 +377,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -857,6 +860,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1158,7 +1166,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.001155s Sys=0.000000s + User=0.000000s Real=0.001115s Sys=0.000000s ========= Table of registered couples ============================ @@ -1177,7 +1185,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=0.010000s Real=0.012040s Sys=0.000000s + User=0.010000s Real=0.010971s Sys=0.000000s Set global field value to (0,0,1000) Gauss ========= Table of registered couples ============================ @@ -1196,7 +1204,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.001369s Sys=0.000000s + User=0.010000s Real=0.001552s Sys=0.000000s Set global field value to (33000,0,0) Gauss F03FieldSetup::UpdateField> The minimal step is equal to 10 mm Stepper Type chosen = 4 @@ -1239,7 +1247,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000279s Sys=0.000000s + User=0.000000s Real=0.000388s Sys=0.000000s /tracking/verbose 0 # /calor/setAbsMat Xe20CO2 @@ -1312,7 +1320,7 @@ Index : 2 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1 - User=0.270000s Real=0.268463s Sys=0.000000s + User=0.140000s Real=0.135294s Sys=0.000000s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/field/field04/History b/examples/extended/field/field04/History index f3962af5bc..10c8e21139 100644 --- a/examples/extended/field/field04/History +++ b/examples/extended/field/field04/History @@ -1,9 +1,18 @@ # Example field04 History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- +## 2022-11-16 John Apostolakis (fieldex04-V11-00-03) +- Corrected assignement of epsMax=0.001 . Also epsMin is dimensionless! + +## 2022-10-04 Ben Morgan (fieldex04-V11-00-02) +- Replace sprintf with std::to_string to fix deprecation warnings on macOS 13 + +## 2022-08-26 Gabriele Cosmo (fieldex04-V11-00-01) +- Fixed compilation warning on gcc-12.1 in F04TrajectoryPoint constructor. ## 2021-12-10 Ben Morgan (fieldex04-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/field/field04/field04.out b/examples/extended/field/field04/field04.out index 33c7f2cb0f..39e8d411c8 100644 --- a/examples/extended/field/field04/field04.out +++ b/examples/extended/field/field04/field04.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -40,6 +40,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -127,8 +129,8 @@ New material nComponents= 2 G4NistElementBuilder: Build Element Z= 4 Aeff= 9.01218 with natural isotope composition G4NistMaterialBuilder::FindOrBuildMaterial Scintillator G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found. -New material Scintillator is prepared nMaterials= 309 nComponents= 777 nCurrent= 2 -G4NistMaterialBuilder: BuildMaterial #308 +New material Scintillator is prepared nMaterials= 310 nComponents= 780 nCurrent= 2 +G4NistMaterialBuilder: BuildMaterial #309 New material nComponents= 2 The materials defined are: @@ -228,8 +230,10 @@ G4NistMaterialBuilder::FindOrBuildMaterial G4_AIR G4NistMaterialBuilder::FindOrBuildMaterial G4_Pb G4NistMaterialBuilder::FindOrBuildMaterial G4_W G4ClassicalRK4 (default) is called +G4FieldManager/SetEpsMin : eps_min = 2.5e-07 +G4FieldManager/SetEpsMax : eps_max = 0.001 ( Note: unchanged eps_min= 2.5e-07 ) Accuracy Parameters: MinStep=0.01 DeltaChord=3 DeltaOneStep=0.01 - DeltaIntersection=0.1 EpsMin=2.5e-07 EpsMax=0.05 + DeltaIntersection=0.1 EpsMin=2.5e-07 EpsMax=0.001 hInelastic QGSP_BERT Thresholds: 1) between BERT and FTF/P over the interval 3 to 6 GeV. @@ -282,6 +286,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -309,7 +314,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -360,8 +365,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -846,6 +851,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1200,7 +1210,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.913556(mm),-0.77060002(mm),78.957121(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.963374(mm),-0.46423097(mm),78.948336(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1209,7 +1219,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.394752(mm),2.0490604(mm),78.695946(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.080857(mm),0.5286627(mm),78.751294(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1218,7 +1228,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.269263(mm),2.9062499(mm),78.365419(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.106573(mm),-0.50628941(mm),78.217779(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1227,7 +1237,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.558295(mm),0.79476996(mm),78.843436(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.589819(mm),2.6507364(mm),78.66155(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1236,7 +1246,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.837233(mm),0.47204805(mm),78.617924(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-9.9998038(mm),-0.24995371(mm),79.470894(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1245,7 +1255,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.044517(mm),2.4319757(mm),79.286683(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.178158(mm),2.1128081(mm),79.086791(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1254,7 +1264,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.493382(mm),-0.39075152(mm),78.149574(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.683249(mm),-0.015375739(mm),79.350384(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1263,7 +1273,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.326569(mm),0.84392222(mm),78.178987(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.231234(mm),-1.0559922(mm),78.548451(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1272,7 +1282,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.336859(mm),-1.4104101(mm),78.882481(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.442756(mm),-3.1174555(mm),78.511154(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1281,7 +1291,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.814482(mm),-2.534654(mm),79.150917(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.907413(mm),-2.5297493(mm),78.60555(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1290,7 +1300,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.23928(mm),1.8591592(mm),79.076014(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.255659(mm),1.5208337(mm),78.896799(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1299,7 +1309,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.691302(mm),-1.477966(mm),78.99631(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.741712(mm),0.33143398(mm),78.105786(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1308,7 +1318,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.744043(mm),1.8132843(mm),78.281702(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.551523(mm),-0.63199782(mm),79.373611(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1317,7 +1327,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.179951(mm),1.9666394(mm),78.557494(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.594067(mm),-0.04657421(mm),79.366109(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1326,7 +1336,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.772187(mm),0.50689429(mm),78.805721(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.498101(mm),1.1147998(mm),78.677723(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1335,7 +1345,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.051854(mm),-2.3885738(mm),78.403754(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.267571(mm),-3.1482261(mm),78.894698(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1344,7 +1354,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.169558(mm),1.3101438(mm),78.206673(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.061969(mm),0.70441594(mm),78.578298(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1353,7 +1363,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.458015(mm),-2.3452317(mm),78.332137(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.412415(mm),3.2263689(mm),78.869158(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1362,7 +1372,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.07084(mm),-2.9679987(mm),79.105714(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.097501(mm),-0.7498789(mm),78.572032(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1371,7 +1381,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.824423(mm),1.2051109(mm),78.443856(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.363642(mm),2.8483965(mm),79.230412(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1380,7 +1390,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.774725(mm),-0.20145965(mm),78.452619(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.028342(mm),0.98877404(mm),78.231573(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1389,7 +1399,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.905879(mm),-2.7751676(mm),78.782147(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.022843(mm),-1.6337201(mm),79.114177(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1398,7 +1408,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.444549(mm),0.79626644(mm),78.687165(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.637829(mm),-1.0442765(mm),78.829412(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1407,7 +1417,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.756408(mm),-2.1731186(mm),78.279522(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.893256(mm),-0.36719105(mm),78.255392(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1416,7 +1426,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.890615(mm),-0.32621779(mm),79.31382(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.608321(mm),3.4176845(mm),78.481961(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1425,7 +1435,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.551964(mm),-1.0219109(mm),79.020879(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.533819(mm),-2.8489724(mm),79.200406(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1434,7 +1444,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.196187(mm),-0.59935541(mm),78.201977(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.891358(mm),3.1868653(mm),79.137362(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1443,7 +1453,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.150759(mm),-0.077321011(mm),78.915295(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.4539(mm),-1.5694651(mm),79.390824(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1452,7 +1462,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.931075(mm),-2.8998012(mm),78.425051(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.018719(mm),2.988149(mm),78.938578(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1461,7 +1471,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.576368(mm),-3.0175447(mm),79.016576(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.578017(mm),1.9115409(mm),78.663631(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1470,7 +1480,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.741058(mm),-1.0578983(mm),78.458556(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.72766(mm),-2.5089962(mm),79.166226(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1479,7 +1489,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.990797(mm),-1.9225959(mm),78.943501(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.055188(mm),1.4780622(mm),78.579493(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1488,7 +1498,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.158321(mm),-0.30617302(mm),78.737635(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.131311(mm),-0.004413238(mm),79.271378(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1497,7 +1507,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.03644(mm),-0.74925079(mm),79.11178(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.043597(mm),1.0961227(mm),78.40521(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1506,7 +1516,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.010733(mm),-0.62297415(mm),78.234678(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.756863(mm),-1.5176643(mm),78.98475(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1515,7 +1525,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.342722(mm),1.5352468(mm),78.881447(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.300964(mm),-0.018122221(mm),79.241464(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1524,7 +1534,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.813975(mm),3.3115426(mm),78.622025(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.713378(mm),-2.6299133(mm),79.168744(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1533,7 +1543,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.044431(mm),1.6884854(mm),78.228736(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.38025(mm),1.0905664(mm),78.345849(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1542,7 +1552,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.749274(mm),-0.13420477(mm),78.633434(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.543031(mm),1.5641645(mm),78.317146(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1551,7 +1561,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.187427(mm),0.93249276(mm),78.556176(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.776949(mm),-1.0469957(mm),78.628554(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1560,7 +1570,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.187594(mm),3.7647009(mm),78.732473(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.229102(mm),-0.94920273(mm),78.3725(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1569,7 +1579,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.60744(mm),1.7060695(mm),78.482116(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.455078(mm),-3.6244014(mm),78.508982(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1578,7 +1588,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.599112(mm),-0.49019879(mm),78.483585(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.251982(mm),0.51731836(mm),78.72112(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1587,7 +1597,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.081788(mm),-1.5707089(mm),78.75113(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.498754(mm),-1.3460173(mm),79.206588(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1596,7 +1606,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.829387(mm),-3.0300946(mm),78.795635(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.077276(mm),-0.88510344(mm),78.399271(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1605,7 +1615,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.464923(mm),-1.2939862(mm),79.212554(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.110695(mm),3.5723515(mm),78.92236(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1614,7 +1624,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.793481(mm),-2.322371(mm),78.978293(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.792226(mm),-2.7496633(mm),78.802187(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1623,7 +1633,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.377989(mm),-2.2121582(mm),78.698902(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.112629(mm),1.1389996(mm),78.393038(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1632,7 +1642,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.824429(mm),0.46904947(mm),78.443855(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.273406(mm),-2.2361385(mm),79.246323(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1641,7 +1651,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.089453(mm),1.6542917(mm),78.573451(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.063785(mm),-1.4799955(mm),78.930631(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1650,7 +1660,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.69965(mm),-0.47082228(mm),78.465857(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.591755(mm),1.6839702(mm),79.19019(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1659,7 +1669,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.852773(mm),-1.6034955(mm),78.438857(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.614736(mm),-3.663372(mm),79.009811(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1668,7 +1678,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.532004(mm),2.9878673(mm),78.848072(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.076485(mm),-0.53945976(mm),79.457373(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1677,7 +1687,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.26791(mm),-2.4849636(mm),78.718311(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.430902(mm),3.6074418(mm),78.689572(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1686,7 +1696,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.119924(mm),2.0339539(mm),78.744405(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.924383(mm),2.9483888(mm),78.602558(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1695,7 +1705,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.25163(mm),-0.58387935(mm),79.250163(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.861291(mm),3.7648832(mm),78.613682(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1704,7 +1714,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.138775(mm),0.38140009(mm),79.093735(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.262795(mm),-1.1940141(mm),78.190232(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1713,7 +1723,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.42952(mm),1.47779(mm),78.513488(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.640773(mm),0.69756076(mm),79.00522(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1722,7 +1732,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.939096(mm),-0.012364441(mm),78.77629(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.527413(mm),-1.9104296(mm),78.496227(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1731,7 +1741,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.922472(mm),0.90162098(mm),78.250241(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.882147(mm),3.3220203(mm),78.433678(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1740,7 +1750,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.05084(mm),0.35518111(mm),79.109241(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.590821(mm),-0.28705504(mm),78.661374(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1749,7 +1759,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.879695(mm),-1.7793112(mm),78.610437(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.450947(mm),-1.6795464(mm),79.215018(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1758,7 +1768,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.265897(mm),2.6683908(mm),79.247647(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.351881(mm),-1.82029(mm),78.879832(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1767,7 +1777,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.894595(mm),-0.7560169(mm),79.136791(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.819475(mm),-1.2773325(mm),79.326364(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1776,7 +1786,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.502953(mm),0.5615364(mm),78.147886(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.339499(mm),3.0689639(mm),78.529361(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1785,7 +1795,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.578077(mm),-1.5657151(mm),78.663621(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.966026(mm),-2.3498381(mm),78.242561(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1794,7 +1804,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.534155(mm),0.048295741(mm),79.024019(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.238334(mm),1.9643212(mm),79.252507(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1803,7 +1813,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.401707(mm),-0.1736292(mm),79.2237(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.464741(mm),-2.7868107(mm),78.859932(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1812,7 +1822,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.577977(mm),-3.0215981(mm),78.487311(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.365994(mm),-0.17946291(mm),78.701017(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -1821,379 +1831,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.216225(mm),1.6336861(mm),78.903752(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.812048(mm),0.33486603(mm),78.798692(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.791521(mm),-0.40127372(mm),78.625985(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.491741(mm),-1.6754193(mm),78.32619(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-17.089734(mm),2.29282(mm),78.220748(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.942(mm),0.29880803(mm),78.246797(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.100348(mm),-1.2055692(mm),79.100511(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.082033(mm),1.984499(mm),78.751087(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.033917(mm),1.3995045(mm),78.583244(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-17.671081(mm),0.11410955(mm),78.118241(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-17.392387(mm),-0.8656794(mm),78.167382(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.404068(mm),-1.4204182(mm),79.046957(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.086442(mm),0.92117508(mm),78.397655(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.774163(mm),-2.2873025(mm),78.981699(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-17.07607(mm),2.1654278(mm),78.223157(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.255813(mm),2.2515756(mm),79.249425(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 - -********************************************************************************************************* -* G4Track Information: Particle = pi+, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.89 mm 2.24 mm 6.58 cm 140 MeV 0 eV 0 fm 0 fm Target initStep - 1 -7.9681988 mm 3.0264434 mm 6.0251745 cm 127.18253 MeV 13.08115 MeV 5.7277011 mm 5.7277011 mm Target Transportation - 2 -7.9681988 mm 3.0264434 mm 6.0251745 cm 127.18253 MeV 0 eV 0 fm 5.7277011 mm CaptureMgnt Transportation - 3 -7.2037638 mm 3.414051 mm 5.2846282 cm 110.18001 MeV 17.002523 MeV 7.499294 mm 1.3226995 cm Target msc - 4 -6.4185329 mm 3.3892095 mm 4.6816535 cm 94.50253 MeV 15.677475 MeV 6.1182126 mm 1.9345208 cm Target msc - 5 -6.016963 mm 2.8405122 mm 4.183904 cm 80.647868 MeV 13.854662 MeV 5.0568241 mm 2.4402032 cm Target hIoni - 6 -6.5076448 mm 2.8556921 mm 3.7866994 cm 70.009118 MeV 10.63875 MeV 4.0294933 mm 2.8431525 cm Target hIoni - 7 -7.1399805 mm 3.14528 mm 3.4683154 cm 60.310115 MeV 9.6990027 MeV 3.281634 mm 3.1713159 cm Target hIoni - 8 -7.6850954 mm 3.5726523 mm 3.3224707 cm 55.253605 MeV 5.0565102 MeV 1.6214001 mm 3.3334559 cm Target Transportation - 9 1.0218482 cm 4.5143785 cm -2 m 55.253613 MeV1.0159566e-13 meV 2.3108738 m 2.3442084 m CaptureMgnt Transportation - 10 -9.0784626 mm 6.6914375 cm -2.0538589 m 55.23856 MeV 11.615717 keV 6.1213686 cm 2.405422 m World hIoni - 11 -3.7512351 cm 9.8779773 cm -2.1327461 m 55.215987 MeV 21.479909 keV 8.9705624 cm 2.4951277 m World hIoni - 12 -7.607606 cm 14.20582 cm -2.2400313 m 55.186179 MeV 28.56878 keV 12.194403 cm 2.6170717 m World hIoni - 13 -8.6906484 cm 15.433702 cm -2.270185 m 55.173154 MeV 9.0171601 keV 3.4312019 cm 2.6513837 m World hIoni - 14 -14.102144 cm 21.607953 cm -2.4211836 m 55.121412 MeV 41.734954 keV 17.187581 cm 2.8232595 m World hIoni - 15 -14.523048 cm 22.089204 cm -2.4328678 m 55.117114 MeV 3.1268916 keV 1.3319009 cm 2.8365785 m World hIoni - 16 -16.61358 cm 24.467278 cm -2.4906451 m 55.094612 MeV 15.088371 keV 6.5884557 cm 2.9024631 m World hIoni - 17 -17.280703 cm 25.230433 cm -2.5092364 m 55.089707 MeV 3.4915839 keV 2.1175081 cm 2.9236382 m World hIoni - 18 -17.784737 cm 25.80909 cm -2.5233239 m 55.082611 MeV 5.8747756 keV 1.604201 cm 2.9396802 m World hIoni - 19 -17.858847 cm 25.8941 cm -2.5253962 m 55.075956 MeV 552.46678 eV 2.3593527 mm 2.9420395 m World hIoni - 20 -18.890682 cm 27.074647 cm -2.5541993 m 55.067907 MeV 6.044562 keV 3.279419 cm 2.9748337 m World hIoni - 21 -18.915697 cm 27.103242 cm -2.554896 m 55.067746 MeV 160.5063 eV 793.50551 um 2.9756272 m World hIoni - 22 -18.967277 cm 27.162215 cm -2.5563327 m 55.064511 MeV 505.48905 eV 1.6364565 mm 2.9772637 m World hIoni - 23 -21.309945 cm 29.84323 cm -2.6216495 m 55.052801 MeV 11.710357 keV 7.4390094 cm 3.0516538 m World Decay -Track (trackID 2, parentID 1) is processed with stopping code 2 - -********************************************************************************************************* -* G4Track Information: Particle = mu+, Track ID = 34, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -21.3 cm 29.8 cm -2.62 m 65.3 MeV 0 eV 0 fm 0 fm World initStep - 1 -22.583793 cm 33.206518 cm -2.7027086 m 65.276063 MeV 16.490886 keV 8.8679378 cm 8.8679378 cm World muIoni - 2 -22.653457 cm 33.389766 cm -2.7071421 m 65.273751 MeV 1.1091872 keV 4.8476167 mm 9.3526994 cm World muIoni - 3 -22.82241 cm 33.833531 cm -2.717882 m 65.270146 MeV 1.4714245 keV 1.1742797 cm 10.526979 cm World muIoni - 4 -23.20972 cm 34.853904 cm -2.7425622 m 65.264862 MeV 4.0504515 keV 2.6985717 cm 13.225551 cm World muIoni - 5 -23.808432 cm 36.434138 cm -2.7807546 m 65.255135 MeV 8.189609 keV 4.1763844 cm 17.401935 cm World muIoni - 6 -24.86026 cm 39.219085 cm -2.847925 m 65.238924 MeV 14.273083 keV 7.3471734 cm 24.749109 cm World muIoni - 7 -26.414287 cm 43.318523 cm -2.9464431 m 65.215401 MeV 20.522836 keV 10.783269 cm 35.532378 cm World muIoni - 8 -28.901211 cm 49.798254 cm -3.103572 m 65.183897 MeV 30.084089 keV 17.177535 cm 52.709913 cm World muIoni - 9 -29.005971 cm 50.068653 cm -3.1101399 m 65.183604 MeV 292.77443 eV 7.1795554 mm 53.427869 cm World muIoni - 10 -29.952711 cm 52.514032 cm -3.1695167 m 65.168603 MeV 11.366021 keV 6.4909375 cm 59.918806 cm World muIoni - 11 -30.456833 cm 53.825349 cm -3.2012019 m 65.160229 MeV 7.2997442 keV 3.4660112 cm 63.384817 cm World muIoni - 12 -31.719252 cm 57.067403 cm -3.2803448 m 65.121887 MeV 16.711575 keV 8.6453722 cm 72.030189 cm World muIoni - 13 -32.118264 cm 58.069296 cm -3.3051312 m 65.115895 MeV 5.9917725 keV 2.7030805 cm 74.73327 cm World muIoni - 14 -33.299744 cm 61.076316 cm -3.3797153 m 65.101748 MeV 12.496272 keV 8.1281056 cm 82.861376 cm World muIoni - 15 -33.714221 cm 62.131079 cm -3.4058116 m 65.094798 MeV 4.6610694 keV 2.8450792 cm 85.706455 cm World muIoni - 16 -35.646181 cm 67.075115 cm -3.528474 m 65.069722 MeV 21.479525 keV 13.365524 cm 99.071979 cm World muIoni - 17 -35.889026 cm 67.6872 cm -3.5437849 m 65.064839 MeV 1.3890493 keV 1.6666908 cm 1.0073867 m World muIoni - 18 -36.244469 cm 68.576992 cm -3.5660674 m 65.057922 MeV 5.8474229 keV 2.4255208 cm 1.0316419 m World muIoni - 19 -37.577552 cm 71.91103 cm -3.6495056 m 65.040037 MeV 15.963684 keV 9.0836345 cm 1.1224782 m World muIoni - 20 -37.78402 cm 72.429895 cm -3.6625429 m 65.000075 MeV 1.7483152 keV 1.4182948 cm 1.1366612 m World muIoni - 21 -38.066341 cm 73.135001 cm -3.6803077 m 64.995445 MeV 3.3834622 keV 1.9320393 cm 1.1559816 m World muIoni - 22 -38.657418 cm 74.598275 cm -3.7171348 m 64.971901 MeV 4.5007584 keV 4.0066048 cm 1.1960476 m World muIoni - 23 -39.369682 cm 76.362062 cm -3.7614624 m 64.961601 MeV 6.4072273 keV 4.8236633 cm 1.2442843 m World muIoni - 24 -39.552559 cm 76.813407 cm -3.772815 m 64.957862 MeV 1.5681952 keV 1.2352972 cm 1.2566372 m World muIoni - 25 -41.145987 cm 80.73473 cm -3.8716942 m 64.933201 MeV 23.05106 keV 10.75579 cm 1.3641951 m World muIoni - 26 -47.093707 cm 95.54423 cm -4.2421603 m 64.85383 MeV 58.298466 keV 40.338125 cm 1.7675764 m World muIoni - 27 -47.78678 cm 97.315244 cm -4.286079 m 64.842729 MeV 11.100422 keV 4.7859585 cm 1.815436 m World muIoni - 28 -49.940502 cm 1.0283778 m -4.4229705 m 64.814976 MeV 26.669691 keV 14.917455 cm 1.9646105 m World muIoni - 29 -50.093263 cm 1.0323022 m -4.4327692 m 64.812398 MeV 1.2513244 keV 1.0665295 cm 1.9752758 m World muIoni - 30 -50.989126 cm 1.0553564 m -4.4902775 m 64.798611 MeV 9.5497306 keV 6.2601634 cm 2.0378775 m World muIoni - 31 -51.029937 cm 1.0564143 m -4.4929117 m 64.796278 MeV 610.74254 eV 2.8678765 mm 2.0407453 m World muIoni - 32 -51.179305 cm 1.0603037 m -4.5025832 m 64.791209 MeV 886.86105 eV 1.0530745 cm 2.0512761 m World muIoni - 33 -53.100814 cm 1.1104401 m -4.627043 m 64.768272 MeV 21.653762 keV 13.554764 cm 2.1868237 m World muIoni - 34 -53.7319 cm 1.1269114 m -4.6678946 m 64.760076 MeV 8.1962223 keV 4.4496996 cm 2.2313207 m World muIoni - 35 -55.591623 cm 1.1754057 m -4.7876119 m 64.733368 MeV 23.849296 keV 13.049847 cm 2.3618192 m World muIoni - 36 -55.971296 cm 1.1852185 m -4.8118809 m 64.702839 MeV 4.4032776 keV 2.6451647 cm 2.3882708 m World muIoni - 37 -58.708672 cm 1.255692 m -4.9845473 m 64.672804 MeV 28.232389 keV 18.849315 cm 2.576764 m World muIoni - 38 -61.23743 cm 1.3214343 m -5.1441099 m 64.63505 MeV 36.000408 keV 17.441861 cm 2.7511826 m World muIoni - 39 -61.290463 cm 1.3228513 m -5.1475207 m 64.633254 MeV 729.24854 eV 3.7312867 mm 2.7549139 m World muIoni - 40 -61.308788 cm 1.3233411 m -5.1487002 m 64.631055 MeV 155.4406 eV 1.2903397 mm 2.7562042 m World muIoni - 41 -61.351874 cm 1.3244906 m -5.1514684 m 64.628662 MeV 477.55147 eV 3.028145 mm 2.7592324 m World muIoni - 42 -62.737148 cm 1.3613788 m -5.2402984 m 64.609806 MeV 18.856257 keV 9.7177306 cm 2.8564097 m World muIoni - 43 -63.478927 cm 1.3810548 m -5.2879151 m 64.58628 MeV 9.9903859 keV 5.2053024 cm 2.9084627 m World muIoni - 44 -64.556924 cm 1.4094463 m -5.3563503 m 64.567564 MeV 16.378489 keV 7.4871061 cm 2.9833338 m World muIoni - 45 -64.841638 cm 1.4169922 m -5.3744735 m 64.562802 MeV 3.5133124 keV 1.9836762 cm 3.0031705 m World muIoni - 46 -65.653213 cm 1.4385733 m -5.4262587 m 64.552921 MeV 9.8806901 keV 5.6686136 cm 3.0598567 m World muIoni - 47 -65.79412 cm 1.4423148 m -5.4352171 m 64.544595 MeV 3.9307635 keV 9.8100115 mm 3.0696667 m World muIoni - 48 -65.955389 cm 1.4465982 m -5.4454878 m 64.541329 MeV 2.089961 keV 1.1244436 cm 3.0809111 m World muIoni - 49 -66.74599 cm 1.4675562 m -5.4957819 m 64.529876 MeV 9.9292731 keV 5.5056712 cm 3.1359678 m World muIoni - 50 -67.325922 cm 1.4829181 m -5.5327096 m 64.518785 MeV 11.090575 keV 4.0413722 cm 3.1763815 m World muIoni - 51 -68.086562 cm 1.5030339 m -5.5810164 m 64.507645 MeV 9.0783043 keV 5.2877787 cm 3.2292593 m World muIoni - 52 -68.493557 cm 1.5137887 m -5.60703 m 64.501232 MeV 4.388595 keV 2.8441861 cm 3.2577012 m World muIoni - 53 -70.364798 cm 1.5632523 m -5.7268416 m 64.474557 MeV 25.63956 keV 13.096435 cm 3.3886655 m World muIoni - 54 -70.493602 cm 1.5665658 m -5.734892 m 64.470591 MeV 1.5942391 keV 8.8003858 mm 3.3974659 m World muIoni - 55 -71.387224 cm 1.5896131 m -5.7908738 m 64.460008 MeV 10.583914 keV 6.1196436 cm 3.4586624 m World muIoni - 56 -71.576861 cm 1.5945282 m -5.8028648 m 64.458324 MeV 1.6832951 keV 1.3097292 cm 3.4717597 m World muIoni - 57 -75.323964 cm 1.6913465 m -6.0388209 m 64.414231 MeV 43.080685 keV 25.778587 cm 3.7295455 m World muIoni - 58 -75.393598 cm 1.6931673 m -6.0432859 m 64.412077 MeV 1.0779246 keV 4.8719713 mm 3.7344175 m World muIoni - 59 -75.946722 cm 1.7076528 m -6.0788247 m 64.404816 MeV 6.1991788 keV 3.8774066 cm 3.7731916 m World muIoni - 60 -76.382762 cm 1.719041 m -6.106734 m 64.399129 MeV 4.551437 keV 3.0457094 cm 3.8036487 m World muIoni - 61 -77.300478 cm 1.7430413 m -6.1655597 m 64.353181 MeV 11.685538 keV 6.4192725 cm 3.8678414 m World muIoni - 62 -77.355667 cm 1.7444931 m -6.1691088 m 64.352019 MeV 1.1615357 keV 3.8741036 mm 3.8717155 m World muIoni - 63 -78.356532 cm 1.7708085 m -6.2334806 m 64.339572 MeV 11.221153 keV 7.0259528 cm 3.941975 m World muIoni - 64 -80.749637 cm 1.8334947 m -6.3864299 m 64.31326 MeV 26.31202 keV 16.702056 cm 4.1089956 m World muIoni - 65 -81.281719 cm 1.847437 m -6.4203782 m 64.30499 MeV 5.5017999 keV 3.7083454 cm 4.146079 m World muIoni - 66 -82.096926 cm 1.8688354 m -6.472537 m 64.291425 MeV 10.358501 keV 5.6963998 cm 4.203043 m World muIoni - 67 -83.159991 cm 1.8965313 m -6.5400862 m 64.271079 MeV 14.57631 keV 7.3776502 cm 4.2768195 m World muIoni - 68 -84.942468 cm 1.9433772 m -6.6544033 m 64.243528 MeV 24.939178 keV 12.48227 cm 4.4016422 m World muIoni - 69 -85.232315 cm 1.9509977 m -6.6728782 m 64.236027 MeV 3.4973046 keV 2.0193919 cm 4.4218361 m World muIoni - 70 -85.241747 cm 1.9512466 m -6.6734804 m 64.234506 MeV 190.25556 eV 658.38083 um 4.4224945 m World muIoni - 71 -87.255169 cm 2.0043355 m -6.8020435 m 64.205959 MeV 26.217742 keV 14.054305 cm 4.5630376 m World muIoni - 72 -87.674651 cm 2.0154333 m -6.8288846 m 64.20289 MeV 3.0693702 keV 2.9346309 cm 4.5923839 m World muIoni - 73 -89.314741 cm 2.0585125 m -6.9332425 m 64.185786 MeV 15.952407 keV 11.408508 cm 4.706469 m World muIoni - 74 -91.808497 cm 2.123946 m -7.0916086 m 64.153871 MeV 28.525803 keV 17.315701 cm 4.879626 m World muIoni - 75 -91.917445 cm 2.1267771 m -7.0985132 m 64.149576 MeV 1.3197119 keV 7.5416042 mm 4.8871676 m World muIoni - 76 -94.427108 cm 2.1921365 m -7.257866 m 64.108747 MeV 27.833915 keV 17.405497 cm 5.0612226 m World muIoni - 77 -95.559656 cm 2.2221156 m -7.3303379 m 64.093837 MeV 13.655963 keV 7.9241401 cm 5.140464 m World muIoni - 78 -95.958738 cm 2.2327371 m -7.3558732 m 64.087695 MeV 6.1420239 keV 2.7942659 cm 5.1684066 m World muIoni - 79 -96.918873 cm 2.2581926 m -7.4171273 m 64.075557 MeV 10.363564 keV 6.7024256 cm 5.2354309 m World muIoni - 80 -1.0051815 m 2.3548544 m -7.6501876 m 64.026338 MeV 44.548089 keV 25.486557 cm 5.4902964 m World muIoni - 81 -1.0148579 m 2.3806562 m -7.7126039 m 64.013576 MeV 12.762641 keV 6.8228768 cm 5.5585252 m World muIoni - 82 -1.0488463 m 2.4725491 m -7.9349294 m 63.971475 MeV 40.56243 keV 24.295779 cm 5.801483 m World muIoni - 83 -1.0580502 m 2.4973858 m -7.9948096 m 63.958219 MeV 10.134206 keV 6.5476824 cm 5.8669598 m World muIoni - 84 -1.0623216 m 2.5089244 m -8.0225512 m 63.951376 MeV 6.8428835 keV 3.0347644 cm 5.8973075 m World muIoni - 85 -1.081205 m 2.559238 m -8.1435493 m 63.923642 MeV 25.984775 keV 13.239579 cm 6.0297033 m World muIoni - 86 -1.0896003 m 2.5818704 m -8.1979955 m 63.913785 MeV 9.8567453 keV 5.9557567 cm 6.0892608 m World muIoni - 87 -1.098475 m 2.6056937 m -8.2551605 m 63.900419 MeV 10.672105 keV 6.2563144 cm 6.151824 m World muIoni - 88 -1.1076968 m 2.6307296 m -8.3153975 m 63.888214 MeV 10.331977 keV 6.588124 cm 6.2177052 m World muIoni - 89 -1.1179786 m 2.6588309 m -8.3826708 m 63.87493 MeV 12.130509 keV 7.3628161 cm 6.2913334 m World muIoni - 90 -1.1240604 m 2.6754362 m -8.4222788 m 63.864011 MeV 9.458476 keV 4.3376475 cm 6.3347098 m World muIoni - 91 -1.1246701 m 2.677103 m -8.4262408 m 63.859332 MeV 695.47228 eV 4.3413834 mm 6.3390512 m World muIoni - 92 -1.1354473 m 2.7066128 m -8.4962831 m 63.833236 MeV 14.71786 keV 7.6765284 cm 6.4158165 m World muIoni - 93 -1.144669 m 2.7320464 m -8.5562695 m 63.82268 MeV 8.989083 keV 6.5804857 cm 6.4816214 m World muIoni - 94 -1.1781656 m 2.825824 m -8.7785519 m 63.78062 MeV 40.793851 keV 24.35694 cm 6.7251908 m World muIoni - 95 -1.1816354 m 2.8354259 m -8.8012348 m 63.774566 MeV 4.6739048 keV 2.4874751 cm 6.7500655 m World muIoni - 96 -1.2190951 m 2.9393523 m -9.0471617 m 63.7168 MeV 52.252278 keV 26.960053 cm 7.0196661 m World muIoni - 97 -1.2351123 m 2.9843175 m -9.1532824 m 63.69763 MeV 18.010338 keV 11.636168 cm 7.1360277 m World muIoni - 98 -1.2352751 m 2.9847665 m -9.1543456 m 63.69751 MeV 119.86369 eV 1.1655954 mm 7.1371933 m World muIoni - 99 -1.2410525 m 3.0007012 m -9.1920822 m 63.688658 MeV 5.6061241 keV 4.1368438 cm 7.1785618 m World muIoni - 100 -1.2462099 m 3.0150277 m -9.2260841 m 63.674762 MeV 12.464772 keV 3.7255486 cm 7.2158173 m World muIoni - 101 -1.2633343 m 3.0622648 m -9.3383131 m 63.652705 MeV 19.349603 keV 12.29634 cm 7.3387807 m World muIoni - 102 -1.2711057 m 3.0834626 m -9.3887436 m 63.638875 MeV 9.6960946 keV 5.5253794 cm 7.3940344 m World muIoni - 103 -1.2769661 m 3.0995379 m -9.4268857 m 63.631929 MeV 5.8530976 keV 4.1804055 cm 7.4358385 m World muIoni - 104 -1.2847155 m 3.1210376 m -9.4778795 m 63.621666 MeV 8.6140688 keV 5.5880764 cm 7.4917193 m World muIoni - 105 -1.2937683 m 3.1454176 m -9.5356692 m 63.603494 MeV 9.4307156 keV 6.3371903 cm 7.5550912 m World muIoni - 106 -1.2991694 m 3.1600801 m -9.5704338 m 63.596443 MeV 5.952051 keV 3.8114746 cm 7.5932059 m World muIoni - 107 -1.3174183 m 3.2095764 m -9.6874947 m 63.577308 MeV 17.343242 keV 12.839864 cm 7.7216046 m World muIoni - 108 -1.3185033 m 3.212474 m -9.694333 m 63.56541 MeV 1.9050319 keV 7.505712 mm 7.7291103 m World muIoni - 109 -1.3274965 m 3.2365596 m -9.751055 m 63.557107 MeV 8.3034228 keV 6.2276659 cm 7.7913869 m World muIoni - 110 -1.3296761 m 3.242385 m -9.7647374 m 63.55212 MeV 2.9326214 keV 1.5029784 cm 7.8064167 m World muIoni - 111 -1.3302179 m 3.2438472 m -9.7681728 m 63.549951 MeV 390.58314 eV 3.7727802 mm 7.8101895 m World muIoni - 112 -1.3305852 m 3.244838 m -9.7705007 m 63.547512 MeV 669.72184 eV 2.5564418 mm 7.8127459 m World muIoni - 113 -1.3499789 m 3.2970704 m -9.893287 m 63.525463 MeV 20.98495 keV 13.483644 cm 7.9475824 m World muIoni - 114 -1.3573841 m 3.3166231 m -9.9391476 m 63.518795 MeV 6.6682166 keV 5.0401811 cm 7.9979842 m World muIoni - 115 -1.3588852 m 3.3206076 m -9.9484984 m 63.516107 MeV 1.5065228 keV 1.0274636 cm 8.0082588 m World muIoni - 116 -1.3959397 m 3.4188663 m -10.179121 m 63.464654 MeV 46.577817 keV 25.340662 cm 8.2616654 m World muIoni - 117 -1.4019183 m 3.4347673 m -10.21629 m 63.457701 MeV 5.7710457 keV 4.0866821 cm 8.3025323 m World muIoni - 118 -1.4161226 m 3.4726562 m -10.30503 m 63.438263 MeV 17.778227 keV 9.7530336 cm 8.4000626 m World muIoni - 119 -1.4337606 m 3.5206179 m -10.417234 m 63.420376 MeV 16.872924 keV 12.329318 cm 8.5233558 m World muIoni - 120 -1.4375884 m 3.530839 m -10.441333 m 63.413474 MeV 4.6743439 keV 2.6455563 cm 8.5498113 m World muIoni - 121 -1.4426163 m 3.5443409 m -10.473075 m 63.404107 MeV 8.205209 keV 3.4858491 cm 8.5846698 m World muIoni - 122 -1.4607845 m 3.5931141 m -10.587515 m 63.380309 MeV 20.968842 keV 12.571986 cm 8.7103897 m World muIoni - 123 -1.46133 m 3.5945411 m -10.590856 m 63.377993 MeV 328.82343 eV 3.6744319 mm 8.7140641 m World muIoni - 124 -1.4654099 m 3.6052176 m -10.615806 m 63.370644 MeV 6.3222849 keV 2.7443269 cm 8.7415074 m World muIoni - 125 -1.4769032 m 3.6352419 m -10.685681 m 63.354995 MeV 14.449978 keV 7.6915709 cm 8.8184231 m World muIoni - 126 -1.4782866 m 3.6388406 m -10.694022 m 63.352454 MeV 1.216217 keV 9.1893548 mm 8.8276125 m World muIoni - 127 -1.490034 m 3.6694487 m -10.764935 m 63.336818 MeV 12.05154 keV 7.8124235 cm 8.9057367 m World muIoni - 128 -1.5249237 m 3.760765 m -10.973781 m 63.293991 MeV 39.582928 keV 23.059252 cm 9.1363292 m World muIoni - 129 -1.5277968 m 3.7680581 m -10.990748 m 63.28742 MeV 4.7249677 keV 1.869059 cm 9.1550198 m World muIoni - 130 -1.5295823 m 3.7725718 m -11.001262 m 63.269964 MeV 3.0190881 keV 1.1580473 cm 9.1666003 m World muIoni - 131 -1.5551237 m 3.8366241 m -11.150563 m 63.240273 MeV 28.046928 keV 16.445612 cm 9.3310564 m World muIoni - 132 -1.5598176 m 3.8482871 m -11.177961 m 63.231522 MeV 7.4093351 keV 3.0145 cm 9.3612014 m World muIoni - 133 -1.5639808 m 3.858594 m -11.202236 m 63.227392 MeV 2.8023066 keV 2.6699322 cm 9.3879007 m World muIoni - 134 -1.5905863 m 3.9245011 m -11.357381 m 63.191995 MeV 33.75372 keV 17.065045 cm 9.5585512 m World muIoni - 135 -1.5981967 m 3.9431012 m -11.401131 m 63.180945 MeV 8.0319985 keV 4.8145298 cm 9.6066965 m World muIoni - 136 -1.5993062 m 3.945856 m -11.407567 m 63.178672 MeV 715.3722 eV 7.0881757 mm 9.6137846 m World muIoni - 137 -1.6057473 m 3.9618856 m -11.44506 m 63.173399 MeV 5.2730846 keV 4.128185 cm 9.6550665 m World muIoni - 138 -1.6088329 m 3.9695948 m -11.463199 m 63.152609 MeV 4.1979715 keV 1.9948945 cm 9.6750154 m World muIoni - 139 -1.6170394 m 3.9902238 m -11.511643 m 63.141856 MeV 8.142837 keV 5.3289331 cm 9.7283048 m World muIoni - 140 -1.6314057 m 4.026799 m -11.596828 m 63.11969 MeV 21.085144 keV 9.3811302 cm 9.8221161 m World muIoni - 141 -1.6510995 m 4.0766426 m -11.713392 m 63.094297 MeV 22.530784 keV 12.829408 cm 9.9504101 m World muIoni - 142 -1.6549712 m 4.0864778 m -11.736448 m 63.087112 MeV 3.4084774 keV 2.5363768 cm 9.9757739 m World muIoni - 143 -1.6599073 m 4.0990777 m -11.765922 m 63.079845 MeV 6.2144942 keV 3.2432335 cm 10.008206 m World muIoni - 144 -1.6626505 m 4.1060842 m -11.782298 m 63.075407 MeV 2.3121262 keV 1.8021595 cm 10.026228 m World muIoni - 145 -1.6666766 m 4.1162985 m -11.806249 m 63.067973 MeV 5.2333282 keV 2.6347554 cm 10.052575 m World muIoni - 146 -1.6748922 m 4.1371704 m -11.855195 m 63.055003 MeV 11.421621 keV 5.3841166 cm 10.106417 m World muIoni - 147 -1.6777625 m 4.1444681 m -11.87236 m 63.049574 MeV 1.9388428 keV 1.8870962 cm 10.125288 m World muIoni - 148 -1.6916387 m 4.1799083 m -11.955658 m 63.031396 MeV 16.93177 keV 9.1581676 cm 10.216869 m World muIoni - 149 -1.6929267 m 4.1831292 m -11.963236 m 63.027541 MeV 1.5406658 keV 8.3343695 mm 10.225204 m World muIoni - 150 -1.6997706 m 4.2002421 m -12.003468 m 63.020313 MeV 5.8705222 keV 4.4252461 cm 10.269456 m World muIoni - 151 -1.7081589 m 4.2212838 m -12.052914 m 63.005188 MeV 10.847868 keV 5.4387958 cm 10.323844 m World muIoni - 152 -1.7204192 m 4.2517891 m -12.124616 m 62.992711 MeV 11.422128 keV 7.8880245 cm 10.402724 m World muIoni - 153 -1.7288062 m 4.2727588 m -12.173901 m 62.980725 MeV 9.508038 keV 5.4212701 cm 10.456937 m World muIoni - 154 -1.7487707 m 4.3220293 m -12.290625 m 62.95496 MeV 23.855043 keV 12.826063 cm 10.585198 m World muIoni - 155 -1.7566523 m 4.3414762 m -12.337082 m 62.931073 MeV 9.0398433 keV 5.0976271 cm 10.636174 m World muIoni - 156 -1.758657 m 4.3463693 m -12.348834 m 62.927568 MeV 2.0624932 keV 1.2886586 cm 10.64906 m World muIoni - 157 -1.7716 m 4.3781192 m -12.425034 m 62.914334 MeV 12.0907 keV 8.3559056 cm 10.732619 m World muIoni - 158 -1.7812245 m 4.4015864 m -12.481651 m 62.904532 MeV 8.6416604 keV 6.2038582 cm 10.794658 m World muIoni - 159 -1.7891267 m 4.4208253 m -12.528206 m 62.889672 MeV 11.030756 keV 5.0989743 cm 10.845648 m World muIoni - 160 -1.7952103 m 4.4358368 m -12.564421 m 62.885188 MeV 3.3094254 keV 3.9672013 cm 10.88532 m World muIoni - 161 -1.8016693 m 4.451744 m -12.602929 m 62.876517 MeV 6.8542434 keV 4.2162453 cm 10.927482 m World muIoni - 162 -1.808994 m 4.4696492 m -12.646361 m 62.86874 MeV 6.1305048 keV 4.7545598 cm 10.975028 m World muIoni - 163 -1.8099872 m 4.4720749 m -12.652233 m 62.866561 MeV 864.21951 eV 6.43013 mm 10.981458 m World muIoni - 164 -1.8139664 m 4.4817797 m -12.675718 m 62.860159 MeV 5.2395164 keV 2.5721001 cm 11.007179 m World muIoni - 165 -1.8163392 m 4.4875695 m -12.689731 m 62.855716 MeV 2.6106695 keV 1.5346238 cm 11.022525 m World muIoni - 166 -1.830834 m 4.5228406 m -12.775132 m 62.83631 MeV 16.473543 keV 9.3528845 cm 11.116054 m World muIoni - 167 -1.8334276 m 4.5292391 m -12.790493 m 62.828706 MeV 2.2996532 keV 1.6841168 cm 11.132895 m World muIoni - 168 -1.8407453 m 4.547341 m -12.833786 m 62.630146 MeV 8.1334679 keV 4.7491794 cm 11.180387 m World muIoni - 169 -1.8522363 m 4.5753042 m -12.901229 m 62.609491 MeV 15.848286 keV 7.3909415 cm 11.254296 m World muIoni - 170 -1.8753531 m 4.6306349 m -13.035681 m 62.570155 MeV 24.200796 keV 14.721813 cm 11.401515 m World muIoni - 171 -1.8769155 m 4.6343487 m -13.044701 m 62.568528 MeV 1.6274163 keV 9.8794651 mm 11.411394 m OutOfWorld Transportation -Track (trackID 34, parentID 2) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.381994729698(mm),0.35356875875243(mm),78.874522224315(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.999213(mm),-0.4182491(mm),79.118344(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.198178(mm),0.027139696(mm),79.083261(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.954237(mm),2.2051955(mm),78.77362(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2203,346 +1841,39 @@ Track (trackID 1, parentID 0) is processed with stopping code 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.01 cm 18.5 um 6.72 cm 61.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.191835 cm 233.63327 um 6.9188918 cm 52.727548 MeV 8.6710513 MeV 2.7077348 mm 2.7077348 mm Target hIoni - 2 -1.3307638 cm 628.641 um 7.0779854 cm 44.664474 MeV 8.0630735 MeV 2.1645351 mm 4.8722699 mm Target hIoni - 3 -1.4297898 cm 1.332193 mm 7.1945685 cm 37.47077 MeV 7.1937045 MeV 1.6964513 mm 6.5687212 mm Target hIoni - 4 -1.4880678 cm 1.9888676 mm 7.2910036 cm 32.089746 MeV 5.3810233 MeV 1.3144814 mm 7.8832026 mm Target hIoni - 5 -1.5267334 cm 2.6113397 mm 7.3655529 cm 27.74268 MeV 4.3470658 MeV 1.0539939 mm 8.9371964 mm Target hIoni - 6 -1.5576528 cm 2.8635072 mm 7.4410491 cm 23.974234 MeV 3.7684465 MeV 861.34181 um 9.7985383 mm Target hIoni - 7 -1.5853643 cm 3.014679 mm 7.4770593 cm 20.966858 MeV 3.0073758 MeV 481.77889 um 1.0280317 cm Target Transportation - 8 -6.1534922 cm 4.8361502 cm 2 m 20.966864 MeV2.2696355e-13 meV 2.7530823 m 2.7633626 m CaptureMgnt Transportation - 9 -7.2379954 cm 7.803168 cm 2.0309038 m 20.947801 MeV 17.807141 keV 4.4192683 cm 2.8075553 m World hIoni - 10 -7.6168712 cm 8.8428359 cm 2.0417908 m 20.941568 MeV 5.0700393 keV 1.5523265 cm 2.8230786 m World hIoni - 11 -8.0785851 cm 10.107137 cm 2.0550396 m 20.930354 MeV 5.6580724 keV 1.8886381 cm 2.841965 m World hIoni - 12 -8.1522546 cm 10.309053 cm 2.0571503 m 20.92549 MeV 816.08084 eV 3.0124653 mm 2.8449774 m World hIoni - 13 -8.6386503 cm 11.644929 cm 2.0711288 m 20.914134 MeV 6.4570384 keV 1.9937739 cm 2.8649152 m World hIoni - 14 -9.4557845 cm 13.870886 cm 2.0945562 m 20.899981 MeV 12.158387 keV 3.3333288 cm 2.8982485 m World hIoni - 15 -10.110529 cm 15.310424 cm 2.1104706 m 20.88922 MeV 9.6252237 keV 2.2448386 cm 2.9206968 m World hIoni - 16 -10.232703 cm 15.559759 cm 2.113295 m 20.887827 MeV 1.3924212 keV 3.9606421 mm 2.9246575 m World hIoni - 17 -10.664157 cm 16.440196 cm 2.1232738 m 20.876296 MeV 10.446464 keV 1.3989595 cm 2.9386471 m World hIoni - 18 -11.564019 cm 18.280228 cm 2.144217 m 20.863886 MeV 11.246461 keV 2.9294486 cm 2.9679416 m World hIoni - 19 -11.671395 cm 18.499222 cm 2.1467254 m 20.860624 MeV 1.5615189 keV 3.4987059 mm 2.9714403 m World hIoni - 20 -11.686647 cm 18.530336 cm 2.1470821 m 20.858533 MeV 104.34063 eV 497.31469 um 2.9719376 m World hIoni - 21 -11.849919 cm 18.863815 cm 2.1509078 m 20.854617 MeV 1.4605005 keV 5.3313015 mm 2.9772689 m World hIoni - 22 -12.57139 cm 20.325799 cm 2.1676862 m 20.843093 MeV 9.3107136 keV 2.3394585 cm 3.0006635 m World hIoni - 23 -14.024003 cm 23.252048 cm 2.2012863 m 20.81448 MeV 23.156351 keV 4.6864534 cm 3.047528 m World hIoni - 24 -15.047916 cm 25.349595 cm 2.2251709 m 20.80024 MeV 13.066497 keV 3.3395933 cm 3.0809239 m World hIoni - 25 -15.296077 cm 25.861898 cm 2.2309681 m 20.795529 MeV 3.0141234 keV 8.1247855 mm 3.0890487 m World hIoni - 26 -15.299471 cm 25.868891 cm 2.2310472 m 20.793735 MeV 0 eV 110.91518 um 3.0891596 m World hIoni - 27 -15.750793 cm 26.799508 cm 2.241586 m 20.785019 MeV 7.0922611 keV 1.4766161 cm 3.1039258 m World hIoni - 28 -16.648973 cm 28.644585 cm 2.2624948 m 20.768679 MeV 11.650046 keV 2.9296483 cm 3.1332223 m World hIoni - 29 -17.238432 cm 29.845938 cm 2.2761541 m 20.75235 MeV 11.585853 keV 1.9121975 cm 3.1523443 m World hIoni - 30 -17.412412 cm 30.201613 cm 2.280176 m 20.742545 MeV 2.2842727 keV 5.6438225 mm 3.1579881 m World hIoni - 31 -18.297755 cm 32.004533 cm 2.3005694 m 20.72719 MeV 14.28572 keV 2.8623948 cm 3.186612 m World hIoni - 32 -18.780306 cm 32.985462 cm 2.3117023 m 20.720796 MeV 5.3819572 keV 1.5602899 cm 3.2022149 m World hIoni - 33 -18.811465 cm 33.048919 cm 2.3124216 m 20.718485 MeV 229.67776 eV 1.0085376 mm 3.2032235 m World hIoni - 34 -19.086907 cm 33.609312 cm 2.3187684 m 20.707182 MeV 7.2905543 keV 8.9035284 mm 3.212127 m World hIoni - 35 -19.179246 cm 33.799184 cm 2.3209135 m 20.706276 MeV 906.00444 eV 3.0098377 mm 3.2151368 m World hIoni - 36 -19.424342 cm 34.305119 cm 2.3266284 m 20.701418 MeV 3.7023417 keV 8.0165309 mm 3.2231534 m World hIoni - 37 -19.809135 cm 35.097992 cm 2.3355927 m 20.691287 MeV 8.2991973 keV 1.2570968 cm 3.2357243 m World hIoni - 38 -19.905848 cm 35.296575 cm 2.3378421 m 20.68572 MeV 1.0302154 keV 3.1526105 mm 3.2388769 m World hIoni - 39 -20.535693 cm 36.593723 cm 2.3525337 m 20.673515 MeV 9.381435 keV 2.0585762 cm 3.2594627 m World hIoni - 40 -20.639168 cm 36.805632 cm 2.3549236 m 20.672731 MeV 783.88805 eV 3.3575004 mm 3.2628202 m World hIoni - 41 -20.72252 cm 36.9764 cm 2.3568481 m 20.670485 MeV 441.85137 eV 2.7045197 mm 3.2655247 m World hIoni - 42 -20.863905 cm 37.267026 cm 2.3601242 m 20.661313 MeV 4.2770424 keV 4.6020313 mm 3.2701268 m World hIoni - 43 -21.750872 cm 39.09081 cm 2.3806897 m 20.649582 MeV 10.652365 keV 2.888304 cm 3.2990098 m World hIoni - 44 -22.097202 cm 39.798292 cm 2.3886818 m 20.644832 MeV 4.7503843 keV 1.1221528 cm 3.3102313 m World hIoni - 45 -22.687157 cm 41.009624 cm 2.4023205 m 20.636636 MeV 8.1961946 keV 1.9171607 cm 3.3294029 m World hIoni - 46 -23.744034 cm 43.173492 cm 2.4267167 m 20.623884 MeV 11.565778 keV 3.4279944 cm 3.3636829 m World hIoni - 47 -24.22659 cm 44.175108 cm 2.4379511 m 20.615185 MeV 7.6048581 keV 1.5805722 cm 3.3794886 m World hIoni - 48 -24.915073 cm 45.602596 cm 2.4539215 m 20.600624 MeV 13.127413 keV 2.2499522 cm 3.4019881 m World hIoni - 49 -25.137047 cm 46.064034 cm 2.4591026 m 20.596832 MeV 2.6933533 keV 7.2844994 mm 3.4092726 m World hIoni - 50 -25.682415 cm 47.199612 cm 2.4719033 m 20.590672 MeV 6.159987 keV 1.7959799 cm 3.4272324 m World hIoni - 51 -27.499866 cm 50.994793 cm 2.514846 m 20.56787 MeV 19.469234 keV 6.0122877 cm 3.4873553 m World hIoni - 52 -28.346096 cm 52.769082 cm 2.5348627 m 20.556356 MeV 9.66741 keV 2.8055152 cm 3.5154104 m World hIoni - 53 -28.366561 cm 52.811342 cm 2.5353403 m 20.554376 MeV 194.59907 eV 669.79894 um 3.5160802 m World hIoni - 54 -28.39259 cm 52.8652 cm 2.5359484 m 20.547986 MeV 1.6252941 keV 852.957 um 3.5169332 m World hIoni - 55 -29.657577 cm 55.480208 cm 2.5655297 m 20.529457 MeV 17.090905 keV 4.1459793 cm 3.558393 m World hIoni - 56 -30.719872 cm 57.669305 cm 2.5906303 m 20.515488 MeV 13.969009 keV 3.4958641 cm 3.5933516 m World hIoni - 57 -31.127444 cm 58.510048 cm 2.600281 m 20.510755 MeV 3.3110077 keV 1.3432488 cm 3.6067841 m World hIoni - 58 -31.923736 cm 60.16188 cm 2.6191627 m 20.49575 MeV 13.620339 keV 2.6320853 cm 3.633105 m World hIoni - 59 -32.041973 cm 60.409701 cm 2.6219806 m 20.493642 MeV 2.107823 keV 3.9344346 mm 3.6370394 m World Decay + 0 -1.37 cm 2.21 mm 7.76 cm 26.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.3917101 cm 1.6488612 mm 7.70561 cm 22.505218 MeV 3.831364 MeV 802.69378 um 802.69378 um Target hIoni + 2 -1.4063879 cm 1.1576367 mm 7.6662385 cm 18.927678 MeV 3.5775398 MeV 652.57493 um 1.4552687 mm Target hIoni + 3 -1.4224036 cm 819.09538 um 7.6300919 cm 15.236547 MeV 3.6911311 MeV 525.93242 um 1.9812011 mm Target hIoni + 4 -1.4383941 cm 569.0048 um 7.6025346 cm 12.520087 MeV 2.7164599 MeV 409.90982 um 2.3911109 mm Target hIoni + 5 -1.4564004 cm 355.5224 um 7.5849638 cm 9.4411251 MeV 3.0789624 MeV 334.59266 um 2.7257036 mm Target hIoni + 6 -1.4685655 cm 198.55204 um 7.5690826 cm 6.670516 MeV 2.770609 MeV 258.94589 um 2.9846495 mm Target hIoni + 7 -1.4798231 cm 128.29458 um 7.5552919 cm 4.0358553 MeV 2.6346608 MeV 196.49362 um 3.1811431 mm Target hIoni + 8 -1.482378 cm 52.176941 um 7.5483597 cm 860.44218 keV 3.1754131 MeV 125.6221 um 3.3067652 mm Target hIoni + 9 -1.482395 cm 48.924739 um 7.5491009 cm 20.151002 keV 840.29118 keV 10.834118 um 3.3175993 mm Target hIoni + 10 -1.4823957 cm 48.908969 um 7.5491013 cm 3.469447e-09 meV 20.151002 keV 134.47143 nm 3.3177338 mm Target hIoni + 11 -1.4823957 cm 48.908969 um 7.5491013 cm 0 eV 3.469447e-09 meV 1.5725803 fm 3.3177338 mm Target hIoni + 12 -1.4823957 cm 48.908969 um 7.5491013 cm 0 eV 0 eV 0 fm 3.3177338 mm Target Decay Track (trackID 3, parentID 1) is processed with stopping code 2 ********************************************************************************************************* -* G4Track Information: Particle = mu+, Track ID = 64, Parent ID = 3 +* G4Track Information: Particle = mu+, Track ID = 22, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -32 cm 60.4 cm 2.62 m 22 MeV 0 eV 0 fm 0 fm World initStep - 1 -32.038367 cm 60.42877 cm 2.6222158 m 22.037478 MeV 105.65457 eV 304.97946 um 304.97946 um World muIoni - 2 -30.657821 cm 67.7538 cm 2.7126316 m 21.998482 MeV 37.795419 keV 11.718132 cm 11.74863 cm World muIoni - 3 -30.520131 cm 68.511392 cm 2.722046 m 21.991707 MeV 4.9279236 keV 1.2162279 cm 12.964858 cm World muIoni - 4 -30.379827 cm 69.269363 cm 2.7314532 m 21.989888 MeV 1.8190314 keV 1.2162093 cm 14.181067 cm World muIoni - 5 -29.970443 cm 71.450189 cm 2.7585167 m 21.972851 MeV 14.296854 keV 3.4997116 cm 17.680779 cm World muIoni - 6 -29.572268 cm 73.565859 cm 2.7848569 m 21.959088 MeV 10.236911 keV 3.4018726 cm 21.082651 cm World muIoni - 7 -29.277353 cm 75.119668 cm 2.8042245 m 21.951127 MeV 5.9721805 keV 2.500472 cm 23.583123 cm World muIoni - 8 -28.454229 cm 79.402241 cm 2.8577506 m 21.919653 MeV 29.375647 keV 6.904265 cm 30.487388 cm World muIoni - 9 -28.174668 cm 80.870897 cm 2.8763118 m 21.911782 MeV 6.0740535 keV 2.3833342 cm 32.870723 cm World muIoni - 10 -28.035831 cm 81.592273 cm 2.8854227 m 21.906255 MeV 2.2748312 keV 1.1703653 cm 34.041088 cm World muIoni - 11 -27.48586 cm 84.43072 cm 2.9212354 m 21.891091 MeV 15.164249 keV 4.6027019 cm 38.64379 cm World muIoni - 12 -27.101281 cm 86.411948 cm 2.9461427 m 21.881581 MeV 8.072833 keV 3.2057666 cm 41.849557 cm World muIoni - 13 -26.550175 cm 89.200589 cm 2.9811581 m 21.862288 MeV 15.353241 keV 4.5101192 cm 46.359676 cm World muIoni - 14 -25.199332 cm 95.977582 cm 3.0665782 m 21.825081 MeV 34.296227 keV 10.987362 cm 57.347038 cm World muIoni - 15 -24.834118 cm 98.147712 cm 3.0933366 m 21.814115 MeV 9.1763297 keV 3.464536 cm 60.811574 cm World muIoni - 16 -24.793856 cm 98.389168 cm 3.0963015 m 21.804099 MeV 2.4994668 keV 3.8448689 mm 61.196061 cm World muIoni - 17 -24.577671 cm 99.696289 cm 3.1123238 m 21.794937 MeV 9.1617036 keV 2.0790507 cm 63.275112 cm World muIoni - 18 -24.542056 cm 99.912813 cm 3.1149713 m 21.793412 MeV 351.92794 eV 3.4386907 mm 63.618981 cm World muIoni - 19 -24.439393 cm 1.0053291 m 3.1225568 m 21.789243 MeV 2.4898719 keV 9.8511828 mm 64.604099 cm World muIoni - 20 -24.276997 cm 1.0151065 m 3.1345511 m 21.780147 MeV 6.0575263 keV 1.555944 cm 66.160043 cm World muIoni - 21 -24.276889 cm 1.0151129 m 3.134559 m 21.778107 MeV 3.256138 eV 10.266413 um 66.16107 cm World muIoni - 22 -24.258022 cm 1.0162427 m 3.1359475 m 21.777984 MeV 123.18431 eV 1.8000359 mm 66.341073 cm World muIoni - 23 -23.784462 cm 1.0446178 m 3.1708235 m 21.754231 MeV 17.104444 keV 4.5209707 cm 70.862044 cm World muIoni - 24 -23.740789 cm 1.0472441 m 3.1740639 m 21.748734 MeV 3.06021 keV 4.1938736 mm 71.281431 cm World muIoni - 25 -23.6553 cm 1.0524038 m 3.1804245 m 21.742627 MeV 1.4159606 keV 8.2346901 mm 72.1049 cm World muIoni - 26 -23.522159 cm 1.060298 m 3.1901518 m 21.730572 MeV 5.6110058 keV 1.2598084 cm 73.364709 cm World muIoni - 27 -23.463037 cm 1.0637591 m 3.1944366 m 21.720661 MeV 2.4937767 keV 5.5397652 mm 73.918685 cm World muIoni - 28 -23.397314 cm 1.0675542 m 3.1991329 m 21.7169 MeV 1.3859645 keV 6.0736763 mm 74.526053 cm World muIoni - 29 -23.26982 cm 1.0749374 m 3.2082841 m 21.714063 MeV 2.837274 keV 1.1827203 cm 75.708773 cm World muIoni - 30 -23.1625 cm 1.0811405 m 3.2159666 m 21.708089 MeV 4.8162762 keV 9.9322443 mm 76.701998 cm World muIoni - 31 -22.938279 cm 1.0939614 m 3.2318461 m 21.699552 MeV 6.6489974 keV 2.0532 cm 78.755198 cm World muIoni - 32 -22.433593 cm 1.1229833 m 3.2678391 m 21.679182 MeV 17.750088 keV 4.6510845 cm 83.406282 cm World muIoni - 33 -22.049329 cm 1.1449173 m 3.2950483 m 21.657326 MeV 8.8364938 keV 3.5159702 cm 86.922252 cm World muIoni - 34 -21.359766 cm 1.1848463 m 3.3446848 m 21.635664 MeV 19.128654 keV 6.4075746 cm 93.329827 cm World muIoni - 35 -21.338468 cm 1.1860729 m 3.3462136 m 21.634362 MeV 252.57805 eV 1.9716336 mm 93.52699 cm World muIoni - 36 -19.943739 cm 1.2666343 m 3.446602 m 21.58929 MeV 45.071382 keV 12.947145 cm 1.0647414 m World muIoni - 37 -19.78095 cm 1.2765226 m 3.4589805 m 21.581803 MeV 6.4031209 keV 1.5926534 cm 1.0806679 m World muIoni - 38 -19.465609 cm 1.295936 m 3.4831912 m 21.570834 MeV 9.8938726 keV 3.1192724 cm 1.1118606 m World muIoni - 39 -19.104361 cm 1.3186139 m 3.5113409 m 21.557418 MeV 11.386849 keV 3.6328341 cm 1.148189 m World muIoni - 40 -18.82618 cm 1.3357831 m 3.5327607 m 21.547029 MeV 10.388502 keV 2.7592199 cm 1.1757812 m World muIoni - 41 -18.778575 cm 1.3387385 m 3.5364545 m 21.544066 MeV 1.0450509 keV 4.7544876 mm 1.1805356 m World muIoni - 42 -18.506676 cm 1.3556899 m 3.5576801 m 21.532418 MeV 8.6626192 keV 2.7299662 cm 1.2078353 m World muIoni - 43 -18.449995 cm 1.3592453 m 3.5621143 m 21.525461 MeV 1.5498015 keV 5.7117833 mm 1.2135471 m World muIoni - 44 -18.333201 cm 1.3665105 m 3.5711749 m 21.520489 MeV 2.8818134 keV 1.1672324 cm 1.2252194 m World muIoni - 45 -18.001961 cm 1.387576 m 3.5975399 m 21.507345 MeV 13.144735 keV 3.390935 cm 1.2591288 m World muIoni - 46 -17.891669 cm 1.3944704 m 3.60621 m 21.5038 MeV 3.5451512 keV 1.1131994 cm 1.2702608 m World muIoni - 47 -17.759476 cm 1.4027029 m 3.6165581 m 21.46717 MeV 6.3170572 keV 1.3289206 cm 1.28355 m World muIoni - 48 -17.654747 cm 1.4092297 m 3.6247926 m 21.46117 MeV 4.0246609 keV 1.0559489 cm 1.2941094 m World muIoni - 49 -17.383201 cm 1.4261619 m 3.6461042 m 21.452725 MeV 8.4447174 keV 2.7354424 cm 1.3214639 m World muIoni - 50 -16.676988 cm 1.4698451 m 3.7011288 m 21.42509 MeV 26.277121 keV 7.0610557 cm 1.3920744 m World muIoni - 51 -16.167308 cm 1.5048152 m 3.7460953 m 21.404729 MeV 20.360845 keV 5.7191825 cm 1.4492663 m World muIoni - 52 -15.803661 cm 1.5289382 m 3.7769216 m 21.390824 MeV 10.668985 keV 3.9311694 cm 1.4885779 m World muIoni - 53 -15.79907 cm 1.5292404 m 3.7773062 m 21.387919 MeV 131.34491 eV 491.33423 um 1.4890693 m World muIoni - 54 -15.599809 cm 1.5424206 m 3.7940548 m 21.380387 MeV 6.5160423 keV 2.1405714 cm 1.510475 m World muIoni - 55 -15.561795 cm 1.5449063 m 3.7972261 m 21.374519 MeV 2.609141 keV 4.0472785 mm 1.5145223 m World muIoni - 56 -15.221905 cm 1.5673317 m 3.825827 m 21.362044 MeV 10.130206 keV 3.6502956 cm 1.5510252 m World muIoni - 57 -14.762803 cm 1.5976668 m 3.864449 m 21.336522 MeV 18.339948 keV 4.9325231 cm 1.6003505 m World muIoni - 58 -14.701459 cm 1.6016055 m 3.8694923 m 21.332322 MeV 2.6021742 keV 6.4283608 mm 1.6067788 m World muIoni - 59 -14.237729 cm 1.630597 m 3.9066149 m 21.314371 MeV 16.533961 keV 4.7329842 cm 1.6541087 m World muIoni - 60 -14.093446 cm 1.639389 m 3.9179268 m 21.309746 MeV 3.1808464 keV 1.4399338 cm 1.668508 m World muIoni - 61 -13.993379 cm 1.6455277 m 3.9258295 m 21.303013 MeV 3.8457718 keV 1.0056787 cm 1.6785648 m World muIoni - 62 -13.834407 cm 1.6562058 m 3.9392211 m 21.295432 MeV 7.5816369 keV 1.7202605 cm 1.6957674 m World muIoni - 63 -13.386471 cm 1.6890914 m 3.9796218 m 21.276174 MeV 15.983612 keV 5.2285477 cm 1.7480529 m World muIoni - 64 -13.304262 cm 1.6955551 m 3.9876187 m 21.272438 MeV 2.3407498 keV 1.0315269 cm 1.7583681 m World muIoni - 65 -12.958185 cm 1.7225393 m 4.0209951 m 21.25564 MeV 11.268871 keV 4.3059454 cm 1.8014276 m World muIoni - 66 -12.910933 cm 1.7261886 m 4.0255202 m 21.252631 MeV 1.2445578 keV 5.8324614 mm 1.8072601 m World muIoni - 67 -12.763853 cm 1.737595 m 4.0396861 m 21.243471 MeV 6.3920994 keV 1.8246686 cm 1.8255067 m World muIoni - 68 -12.554559 cm 1.7537416 m 4.059596 m 21.234287 MeV 7.8004463 keV 2.571964 cm 1.8512264 m World muIoni - 69 -12.343092 cm 1.7694834 m 4.0789641 m 21.220874 MeV 9.6743177 keV 2.5048002 cm 1.8762744 m World muIoni - 70 -12.050212 cm 1.7915723 m 4.1059607 m 21.20693 MeV 12.300387 keV 3.500455 cm 1.9112789 m World muIoni - 71 -11.857496 cm 1.8067138 m 4.1244779 m 21.1672 MeV 6.826475 keV 2.399724 cm 1.9352762 m World muIoni - 72 -11.842093 cm 1.8079604 m 4.1259956 m 21.165007 MeV 155.43402 eV 1.9700732 mm 1.9372462 m World muIoni - 73 -11.421696 cm 1.8420432 m 4.1675511 m 21.136742 MeV 16.009245 keV 5.3909163 cm 1.9911554 m World muIoni - 74 -11.367715 cm 1.8463286 m 4.1727873 m 21.135104 MeV 1.6382549 keV 6.7877578 mm 1.9979432 m World muIoni - 75 -11.314916 cm 1.8504976 m 4.1778802 m 21.130561 MeV 2.5864781 keV 6.6027693 mm 2.0045459 m World muIoni - 76 -11.177085 cm 1.8611612 m 4.1909139 m 21.123837 MeV 5.2425259 keV 1.6896416 cm 2.0214424 m World muIoni - 77 -11.097805 cm 1.8673182 m 4.1984446 m 21.117688 MeV 2.6786728 keV 9.7595852 mm 2.0312019 m World muIoni - 78 -11.01059 cm 1.8739555 m 4.2065881 m 21.111809 MeV 4.7018497 keV 1.0541912 cm 2.0417438 m World muIoni - 79 -10.994044 cm 1.8752159 m 4.2081371 m 21.071959 MeV 634.93448 eV 2.0038615 mm 2.0437477 m World muIoni - 80 -10.792512 cm 1.8904752 m 4.2269943 m 21.06369 MeV 7.2064272 keV 2.4341375 cm 2.0680891 m World muIoni - 81 -10.707551 cm 1.8969793 m 4.2350577 m 21.057467 MeV 1.6059245 keV 1.0394407 cm 2.0784835 m World muIoni - 82 -10.664569 cm 1.9004757 m 4.239364 m 21.054392 MeV 1.3463145 keV 5.5636491 mm 2.0840471 m World muIoni - 83 -9.9941411 cm 1.9551453 m 4.3066838 m 21.027914 MeV 25.452865 keV 8.6981414 cm 2.1710286 m World muIoni - 84 -9.6529093 cm 1.9829113 m 4.3404996 m 21.014545 MeV 13.36873 keV 4.3887501 cm 2.2149161 m World muIoni - 85 -9.3093888 cm 2.010815 m 4.3744651 m 21.001358 MeV 11.472399 keV 4.4091805 cm 2.2590079 m World muIoni - 86 -9.2079218 cm 2.0191943 m 4.3847052 m 20.762714 MeV 4.796741 keV 1.3270421 cm 2.2722783 m World muIoni - 87 -8.8156554 cm 2.0531557 m 4.4259479 m 20.744213 MeV 18.500686 keV 5.3569978 cm 2.3258483 m World muIoni - 88 -8.7121038 cm 2.0618198 m 4.4364979 m 20.734758 MeV 5.3363019 keV 1.369098 cm 2.3395392 m World muIoni - 89 -8.529487 cm 2.077304 m 4.4553098 m 20.723577 MeV 9.6014332 keV 2.4433193 cm 2.3639724 m World muIoni - 90 -8.2547337 cm 2.1002326 m 4.483305 m 20.709206 MeV 13.316971 keV 3.6290659 cm 2.4002631 m World muIoni - 91 -8.2076225 cm 2.1042639 m 4.488227 m 20.704125 MeV 975.83894 eV 6.3795901 mm 2.4066427 m World muIoni - 92 -7.9787502 cm 2.1240391 m 4.5123169 m 20.691799 MeV 11.315894 keV 3.1251 cm 2.4378937 m World muIoni - 93 -7.9003672 cm 2.1307047 m 4.5204264 m 20.687973 MeV 2.7556281 keV 1.0526605 cm 2.4484203 m World muIoni - 94 -7.5006519 cm 2.163805 m 4.5606511 m 20.670558 MeV 14.130294 keV 5.2246071 cm 2.5006664 m World muIoni - 95 -7.4288463 cm 2.1699708 m 4.5681205 m 20.665499 MeV 4.0418702 keV 9.7121205 mm 2.5103785 m World muIoni - 96 -7.4246941 cm 2.1703305 m 4.5685566 m 20.663228 MeV 15.092872 eV 566.74657 um 2.5109452 m World muIoni - 97 -7.2583713 cm 2.1845967 m 4.5858531 m 20.656224 MeV 7.0043794 keV 2.2482524 cm 2.5334277 m World muIoni - 98 -6.7880922 cm 2.2263537 m 4.6364954 m 20.631594 MeV 21.754299 keV 6.5806223 cm 2.599234 m World muIoni - 99 -6.6327636 cm 2.2401188 m 4.6534556 m 20.621479 MeV 6.4139564 keV 2.1898338 cm 2.6211323 m World muIoni - 100 -6.6126181 cm 2.2419217 m 4.6556781 m 20.617555 MeV 1.3044942 keV 2.8689131 mm 2.6240012 m World muIoni - 101 -6.4769364 cm 2.2539759 m 4.6705431 m 20.578219 MeV 6.6858504 keV 1.918632 cm 2.6431875 m World muIoni - 102 -6.3419672 cm 2.2658744 m 4.6852174 m 20.560909 MeV 5.4512609 keV 1.8940221 cm 2.6621278 m World muIoni - 103 -6.2459727 cm 2.2747496 m 4.6961478 m 20.540654 MeV 4.6252352 keV 1.411259 cm 2.6762404 m World muIoni - 104 -6.2336345 cm 2.2758783 m 4.697541 m 20.538879 MeV 599.31878 eV 1.7971857 mm 2.6780375 m World muIoni - 105 -5.9143217 cm 2.3052718 m 4.7338531 m 20.526518 MeV 11.157041 keV 4.6826931 cm 2.7248645 m World muIoni - 106 -5.8753112 cm 2.3088292 m 4.7382557 m 20.524955 MeV 1.5636463 keV 5.6736846 mm 2.7305382 m World muIoni - 107 -5.7278508 cm 2.322249 m 4.7548401 m 20.517043 MeV 6.6874047 keV 2.1384799 cm 2.751923 m World muIoni - 108 -5.4845823 cm 2.3434551 m 4.7811386 m 20.500824 MeV 12.467375 keV 3.3870738 cm 2.7857937 m World muIoni - 109 -5.3379022 cm 2.3561034 m 4.7968015 m 20.49492 MeV 5.9042225 keV 2.018565 cm 2.8059793 m World muIoni - 110 -4.7938599 cm 2.4037673 m 4.8558833 m 20.462807 MeV 29.074746 keV 7.610638 cm 2.8820857 m World muIoni - 111 -4.4750946 cm 2.4321966 m 4.8913627 m 20.448017 MeV 13.720433 keV 4.5576212 cm 2.9276619 m World muIoni - 112 -4.4357312 cm 2.4357885 m 4.8958701 m 20.4431 MeV 1.0454996 keV 5.7769355 mm 2.9334389 m World muIoni - 113 -3.8453492 cm 2.4887786 m 4.9623725 m 20.411932 MeV 28.555233 keV 8.5237752 cm 3.0186766 m World muIoni - 114 -3.6467776 cm 2.5069044 m 4.9847227 m 20.400629 MeV 10.145462 keV 2.8844822 cm 3.0475214 m World muIoni - 115 -3.3835172 cm 2.5312327 m 5.0148256 m 20.381303 MeV 16.033665 keV 3.8794204 cm 3.0863156 m World muIoni - 116 -3.3298135 cm 2.5357727 m 5.02045 m 20.375921 MeV 1.5236793 keV 7.248103 mm 3.0935638 m World muIoni - 117 -2.7419513 cm 2.5852785 m 5.0816285 m 20.348033 MeV 27.888213 keV 7.8919379 cm 3.1724831 m World muIoni - 118 -2.4074832 cm 2.6130652 m 5.1158909 m 20.334385 MeV 12.293417 keV 4.4240419 cm 3.2167235 m World muIoni - 119 -2.3585994 cm 2.6168586 m 5.1205818 m 20.33025 MeV 3.0509154 keV 6.0526097 mm 3.2227762 m World muIoni - 120 -1.8761995 cm 2.6536341 m 5.1660889 m 20.305954 MeV 23.019584 keV 5.8707997 cm 3.2814842 m World muIoni - 121 -1.6703475 cm 2.6681606 m 5.1839207 m 20.295499 MeV 9.0642153 keV 2.3091855 cm 3.304576 m World muIoni - 122 -1.6130855 cm 2.6722103 m 5.1888886 m 20.291612 MeV 2.252565 keV 6.4349141 mm 3.3110109 m World muIoni - 123 -1.016102 cm 2.7145379 m 5.2406715 m 20.267921 MeV 23.690793 keV 6.714746 cm 3.3781584 m World muIoni - 124 -4.954327 mm 2.7531169 m 5.2877925 m 20.245584 MeV 20.922989 keV 6.1121804 cm 3.4392802 m World muIoni - 125 -4.1628791 mm 2.7588878 m 5.2948665 m 20.238612 MeV 2.5663353 keV 9.1635909 mm 3.4484438 m World muIoni - 126 -3.5136966 mm 2.7637168 m 5.3007917 m 20.211295 MeV 1.5298828 keV 7.6712737 mm 3.4561151 m World muIoni - 127 -2.3721816 mm 2.7719887 m 5.3109051 m 20.157203 MeV 3.6655954 keV 1.3115254 cm 3.4692303 m World muIoni - 128 -1.5962554 mm 2.7777019 m 5.3178457 m 20.148748 MeV 6.0225241 keV 9.0229876 mm 3.4782533 m World muIoni - 129 -23.717941 um 2.7890546 m 5.331621 m 20.140005 MeV 7.533992 keV 1.791967 cm 3.496173 m World muIoni - 130 2.2053347 mm 2.8047649 m 5.3508443 m 20.126642 MeV 11.793795 keV 2.4926937 cm 3.5210999 m World muIoni - 131 2.5937367 mm 2.8071129 m 5.3537655 m 20.124666 MeV 1.9755766 keV 3.7680257 mm 3.5248679 m World muIoni - 132 7.2917133 mm 2.8353739 m 5.388935 m 20.082514 MeV 14.912872 keV 4.5361496 cm 3.5702294 m World muIoni - 133 7.748601 mm 2.8380602 m 5.3922647 m 20.080608 MeV 386.25502 eV 4.3024819 mm 3.5745319 m World muIoni - 134 1.9761568 cm 2.9088747 m 5.4800548 m 20.037485 MeV 41.155438 keV 11.343009 cm 3.687962 m World muIoni - 135 2.014571 cm 2.9109926 m 5.4827166 m 20.033436 MeV 1.0093436 keV 3.4232112 mm 3.6913852 m World muIoni - 136 2.0892029 cm 2.9151071 m 5.4879026 m 20.030558 MeV 1.1539691 keV 6.6618685 mm 3.6980471 m World muIoni - 137 2.1096893 cm 2.9162173 m 5.4893018 m 20.027326 MeV 456.78065 eV 1.79786 mm 3.6998449 m World muIoni - 138 2.3448569 cm 2.9289546 m 5.5053835 m 20.01624 MeV 9.3131032 keV 2.0649247 cm 3.7204942 m World muIoni - 139 3.0520346 cm 2.9659715 m 5.5527615 m 19.988716 MeV 21.638071 keV 6.0543035 cm 3.7810372 m World muIoni - 140 3.1432451 cm 2.9702831 m 5.5584847 m 19.983958 MeV 1.9276042 keV 7.2233953 mm 3.7882606 m World muIoni - 141 3.2274705 cm 2.974209 m 5.5637579 m 19.979264 MeV 1.7254612 keV 6.6280157 mm 3.7948886 m World muIoni - 142 3.5749168 cm 2.9901701 m 5.5855238 m 19.967343 MeV 9.3374304 keV 2.7213714 cm 3.8221023 m World muIoni - 143 4.0713948 cm 3.0130844 m 5.6166418 m 19.883974 MeV 14.572512 keV 3.8962206 cm 3.8610646 m World muIoni - 144 4.9100364 cm 3.0535338 m 5.6713963 m 19.862579 MeV 21.394418 keV 6.8590085 cm 3.9296546 m World muIoni - 145 6.2227002 cm 3.1171846 m 5.7581109 m 19.820835 MeV 40.329392 keV 10.83669 cm 4.0380215 m World muIoni - 146 6.9208418 cm 3.1527658 m 5.8063041 m 19.800377 MeV 18.768488 keV 6.0310767 cm 4.0983323 m World muIoni - 147 7.0790306 cm 3.1608554 m 5.8174043 m 19.794063 MeV 3.8624576 keV 1.3826016 cm 4.1121583 m World muIoni - 148 7.0977335 cm 3.16182 m 5.8187262 m 19.787629 MeV 2.0562034 keV 1.6470856 mm 4.1138054 m World muIoni - 149 7.2948577 cm 3.1719737 m 5.8326615 m 19.598991 MeV 5.1710397 keV 1.7354426 cm 4.1311598 m World muIoni - 150 7.3326472 cm 3.1738715 m 5.8352726 m 19.59556 MeV 716.68716 eV 3.2499713 mm 4.1344098 m World muIoni - 151 7.3619695 cm 3.1753306 m 5.8372845 m 19.592719 MeV 799.66297 eV 2.5024825 mm 4.1369123 m World muIoni - 152 7.4676786 cm 3.180534 m 5.8444633 m 19.586524 MeV 2.7443739 keV 8.9290936 mm 4.1458414 m World muIoni - 153 7.5115437 cm 3.1826862 m 5.8474264 m 19.581039 MeV 953.52484 eV 3.6883826 mm 4.1495298 m World muIoni - 154 7.5115619 cm 3.182687 m 5.8474276 m 19.578197 MeV 516.41606 meV 1.514013 um 4.1495313 m World muIoni - 155 7.5525279 cm 3.1846554 m 5.850136 m 19.574353 MeV 3.8447995 keV 3.3730389 mm 4.1529043 m World muIoni - 156 7.6778141 cm 3.1906518 m 5.8583836 m 19.570267 MeV 2.6651379 keV 1.0273722 cm 4.163178 m World muIoni - 157 7.7818432 cm 3.1956841 m 5.8652774 m 19.56404 MeV 2.6265683 keV 8.5983629 mm 4.1717764 m World muIoni - 158 9.3578294 cm 3.2721166 m 5.9699174 m 19.517133 MeV 46.907272 keV 13.053837 cm 4.3023148 m World muIoni - 159 9.550015 cm 3.2816159 m 5.9827417 m 19.510786 MeV 4.9294566 keV 1.6074682 cm 4.3183895 m World muIoni - 160 9.6606026 cm 3.2869392 m 5.9899751 m 19.506959 MeV 3.8273711 keV 9.0488952 mm 4.3274384 m World muIoni - 161 9.6643806 cm 3.2871198 m 5.9902211 m 19.506934 MeV 24.573618 eV 307.46252 um 4.3277458 m World muIoni - 162 9.806682 cm 3.2939221 m 5.999485 m 19.504386 MeV 2.5482475 keV 1.1580938 cm 4.3393268 m World muIoni - 163 9.9020137 cm 3.2985124 m 6.0057524 m 19.499142 MeV 2.1557587 keV 7.8268464 mm 4.3471536 m World muIoni - 164 9.9673103 cm 3.3016253 m 6.0100225 m 19.496653 MeV 2.4893242 keV 5.3245251 mm 4.3524781 m World muIoni - 165 10.417979 cm 3.3230641 m 6.0394772 m 19.482754 MeV 9.2524587 keV 3.6708506 cm 4.3891866 m World muIoni - 166 10.497451 cm 3.3268835 m 6.0447019 m 19.472112 MeV 3.3125254 keV 6.5205227 mm 4.3957072 m World muIoni - 167 10.857712 cm 3.3437788 m 6.0677948 m 19.458011 MeV 11.353475 keV 2.8839453 cm 4.4245466 m World muIoni - 168 10.974249 cm 3.3492564 m 6.0752957 m 19.439028 MeV 3.396359 keV 9.3608995 mm 4.4339075 m World muIoni - 169 11.205638 cm 3.360226 m 6.0902949 m 19.427667 MeV 9.6600758 keV 1.8726056 cm 4.4526336 m World muIoni - 170 11.600206 cm 3.3790491 m 6.1160492 m 19.401228 MeV 11.327033 keV 3.2142871 cm 4.4847764 m World muIoni - 171 11.66439 cm 3.3821472 m 6.1202297 m 19.392365 MeV 2.9772487 keV 5.2427378 mm 4.4900192 m World muIoni - 172 11.957574 cm 3.3958434 m 6.1388009 m 19.385421 MeV 5.2742732 keV 2.3260992 cm 4.5132802 m World muIoni - 173 12.560814 cm 3.4239387 m 6.1769389 m 19.366871 MeV 17.292144 keV 4.7752151 cm 4.5610323 m World muIoni - 174 12.783788 cm 3.4340678 m 6.1906533 m 19.361103 MeV 5.7680529 keV 1.719458 cm 4.5782269 m World muIoni - 175 13.507789 cm 3.4667702 m 6.2348609 m 19.336426 MeV 22.551359 keV 5.5463611 cm 4.6336905 m World muIoni - 176 13.782178 cm 3.4789683 m 6.2512932 m 19.325124 MeV 7.8847333 keV 2.064812 cm 4.6543386 m World muIoni - 177 14.43394 cm 3.5075381 m 6.2901098 m 19.299099 MeV 24.204869 keV 4.8635959 cm 4.7029746 m World muIoni - 178 15.130801 cm 3.5373074 m 6.3301898 m 19.281083 MeV 16.977637 keV 5.0410307 cm 4.7533849 m World muIoni - 179 15.748088 cm 3.5636426 m 6.3655328 m 19.257863 MeV 12.256244 keV 4.4506151 cm 4.797891 m World muIoni - 180 15.938532 cm 3.5715221 m 6.3761262 m 19.252226 MeV 3.0519803 keV 1.3339153 cm 4.8112302 m World muIoni - 181 16.079495 cm 3.577347 m 6.3839467 m 19.245136 MeV 5.6961563 keV 9.8527943 mm 4.821083 m World muIoni - 182 17.165623 cm 3.6217963 m 6.4436678 m 19.220703 MeV 24.433089 keV 7.5235635 cm 4.8963186 m World muIoni - 183 18.414299 cm 3.6755018 m 6.5156885 m 19.184859 MeV 33.458347 keV 9.0704543 cm 4.9870232 m World muIoni - 184 18.869026 cm 3.6960375 m 6.5434052 m 19.172862 MeV 10.77929 keV 3.4793923 cm 5.0218171 m World muIoni - 185 19.38675 cm 3.719527 m 6.5752748 m 19.157701 MeV 13.253448 keV 3.9927996 cm 5.0617451 m World muIoni - 186 19.789753 cm 3.7373056 m 6.5994339 m 19.150065 MeV 5.7951626 keV 3.0265288 cm 5.0920104 m World muIoni - 187 19.806092 cm 3.7380368 m 6.6004308 m 19.148571 MeV 439.21341 eV 1.2470386 mm 5.0932574 m World muIoni - 188 20.080356 cm 3.7502914 m 6.6171239 m 19.141649 MeV 5.5913396 keV 2.0889164 cm 5.1141466 m World muIoni - 189 20.925443 cm 3.788843 m 6.6696765 m 19.115093 MeV 23.757967 keV 6.5722759 cm 5.1798693 m World muIoni - 190 21.072717 cm 3.7955099 m 6.6788239 m 19.110433 MeV 4.6597624 keV 1.141451 cm 5.1912838 m World muIoni - 191 21.233434 cm 3.8026815 m 6.6886384 m 19.100825 MeV 3.5326243 keV 1.2261265 cm 5.2035451 m World muIoni - 192 21.46339 cm 3.8130057 m 6.7027384 m 19.086105 MeV 7.9188575 keV 1.7626351 cm 5.2211715 m World muIoni - 193 21.676361 cm 3.822471 m 6.7156906 m 19.070462 MeV 4.152941 keV 1.6182944 cm 5.2373544 m World muIoni - 194 22.879314 cm 3.8765373 m 6.7897572 m 19.019809 MeV 28.643037 keV 9.2487304 cm 5.3298417 m World muIoni - 195 22.886676 cm 3.8768722 m 6.7902042 m 19.015579 MeV 1.2994935 keV 563.29066 um 5.330405 m World muIoni - 196 23.125085 cm 3.8876979 m 6.8046817 m 19.009751 MeV 4.1455828 keV 1.8234104 cm 5.3486391 m World muIoni - 197 25.653753 cm 4.0031601 m 6.9584046 m 18.934731 MeV 73.773254 keV 19.391563 cm 5.5425547 m World muIoni - 198 25.687851 cm 4.0048171 m 6.9606822 m 18.931914 MeV 1.7503016 keV 2.8371353 mm 5.5453919 m World muIoni - 199 26.736985 cm 4.0559392 m 7.0310012 m 18.90468 MeV 25.537895 keV 8.7569607 cm 5.6329615 m World muIoni - 200 26.926435 cm 4.0656464 m 7.0444888 m 18.896076 MeV 6.8776926 keV 1.6725227 cm 5.6496867 m World muIoni - 201 26.969152 cm 4.0678671 m 7.0475631 m 18.894248 MeV 804.82089 eV 3.8165638 mm 5.6535033 m World muIoni - 202 26.993661 cm 4.0691426 m 7.0493255 m 18.845641 MeV 943.01752 eV 2.1892754 mm 5.6556925 m World muIoni - 203 27.177787 cm 4.078709 m 7.0626286 m 18.837117 MeV 7.4717961 keV 1.6488761 cm 5.6721813 m World muIoni - 204 27.678552 cm 4.1048196 m 7.0986866 m 18.818302 MeV 17.446823 keV 4.4799969 cm 5.7169813 m World muIoni - 205 28.275651 cm 4.1348519 m 7.1408479 m 18.794841 MeV 23.461502 keV 5.2107485 cm 5.7690888 m World muIoni - 206 28.477329 cm 4.1449408 m 7.1549149 m 18.784141 MeV 7.5057685 keV 1.7427988 cm 5.7865167 m World muIoni - 207 28.936198 cm 4.1671107 m 7.1857629 m 18.773803 MeV 10.338196 keV 3.8264456 cm 5.8247812 m World muIoni - 208 29.083705 cm 4.1741874 m 7.1956838 m 18.767833 MeV 5.9694687 keV 1.2275163 cm 5.8370564 m World muIoni - 209 29.199091 cm 4.179761 m 7.2034803 m 18.763552 MeV 3.2102841 keV 9.6531651 mm 5.8467095 m World muIoni - 210 29.601676 cm 4.1988277 m 7.2301852 m 18.750223 MeV 11.897708 keV 3.3059014 cm 5.8797685 m World muIoni - 211 30.519959 cm 4.2430452 m 7.2918963 m 18.723164 MeV 25.142253 keV 7.6471351 cm 5.9562399 m World muIoni - 212 30.896534 cm 4.2610839 m 7.3170105 m 18.709935 MeV 10.807274 keV 3.1149704 cm 5.9873896 m World muIoni - 213 31.956621 cm 4.3117942 m 7.3872088 m 18.677791 MeV 30.977724 keV 8.724588 cm 6.0746355 m World muIoni - 214 32.289475 cm 4.3279474 m 7.4095182 m 18.66827 MeV 9.5213278 keV 2.7743801 cm 6.1023793 m World muIoni - 215 32.523883 cm 4.339337 m 7.4252949 m 18.660375 MeV 6.7975922 keV 1.9599082 cm 6.1219784 m World muIoni - 216 32.629404 cm 4.3443763 m 7.4322651 m 18.654758 MeV 3.8440539 keV 8.6655379 mm 6.1306439 m World muIoni - 217 32.683732 cm 4.3469827 m 7.4358588 m 18.650393 MeV 2.2398245 keV 4.4725386 mm 6.1351164 m World muIoni - 218 32.934795 cm 4.359051 m 7.4525082 m 18.641251 MeV 8.1459328 keV 2.0715978 cm 6.1558324 m World muIoni - 219 33.689585 cm 4.3955043 m 7.5027861 m 18.618088 MeV 22.120106 keV 6.2559795 cm 6.2183922 m World muIoni - 220 34.082769 cm 4.4150067 m 7.5297698 m 18.602868 MeV 15.219463 keV 3.3525096 cm 6.2519173 m World muIoni - 221 34.172881 cm 4.4194505 m 7.5359585 m 18.598006 MeV 3.7533383 keV 7.6719177 mm 6.2595892 m World muIoni - 222 34.544931 cm 4.4377425 m 7.5613851 m 18.587259 MeV 10.747355 keV 3.1542943 cm 6.2911322 m World muIoni - 223 34.643782 cm 4.4425812 m 7.5680807 m 18.583689 MeV 2.3926056 keV 8.3199139 mm 6.2994521 m World muIoni - 224 34.732055 cm 4.4468472 m 7.5739769 m 18.579111 MeV 3.2866118 keV 7.331008 mm 6.3067831 m World muIoni - 225 34.858365 cm 4.4530318 m 7.5825037 m 18.550982 MeV 1.6817647 keV 1.0609021 cm 6.3173921 m World muIoni - 226 34.888356 cm 4.4545493 m 7.5845915 m 18.550446 MeV 535.2046 eV 2.5983653 mm 6.3199905 m World muIoni - 227 34.974353 cm 4.4589021 m 7.5905811 m 18.546045 MeV 3.1150194 keV 7.453972 mm 6.3274444 m World muIoni - 228 35.409409 cm 4.4812508 m 7.621249 m 18.532962 MeV 11.557392 keV 3.8195894 cm 6.3656403 m World muIoni - 229 35.495803 cm 4.4856072 m 7.6272564 m 18.529339 MeV 2.0566218 keV 7.4708246 mm 6.3731112 m World muIoni - 230 35.683797 cm 4.4951468 m 7.6404108 m 18.509057 MeV 5.6599984 keV 1.635777 cm 6.3894689 m World muIoni - 231 36.054461 cm 4.5135251 m 7.6658949 m 18.494371 MeV 12.42173 keV 3.1637768 cm 6.4211067 m World muIoni - 232 36.29756 cm 4.5254826 m 7.6824612 m 18.486507 MeV 6.3205512 keV 2.0575143 cm 6.4416818 m World muIoni - 233 36.452808 cm 4.5331401 m 7.6930568 m 18.480358 MeV 5.0871704 keV 1.3164844 cm 6.4548467 m World muIoni - 234 36.643101 cm 4.5424847 m 7.7059663 m 18.473987 MeV 6.3715089 keV 1.6049851 cm 6.4708965 m World muIoni - 235 36.66449 cm 4.543536 m 7.7074137 m 18.471538 MeV 590.44586 eV 1.801655 mm 6.4726982 m World muIoni - 236 36.790636 cm 4.5497401 m 7.7159485 m 18.46592 MeV 4.61975 keV 1.0626625 cm 6.4833248 m World muIoni - 237 36.977285 cm 4.5589622 m 7.7286022 m 18.45139 MeV 4.5744768 keV 1.576857 cm 6.4990934 m World muIoni - 238 37.00287 cm 4.5602102 m 7.7303305 m 18.450866 MeV 523.68912 eV 2.1471203 mm 6.5012405 m World muIoni - 239 37.363849 cm 4.5777958 m 7.7546832 m 18.439355 MeV 9.2915479 keV 3.0254628 cm 6.5314951 m World muIoni - 240 38.748872 cm 4.6464924 m 7.8497592 m 18.398599 MeV 39.63018 keV 11.811379 cm 6.6496089 m World muIoni - 241 38.89154 cm 4.6535334 m 7.8594849 m 18.3882 MeV 4.5727521 keV 1.2091301 cm 6.6617002 m World muIoni - 242 38.947661 cm 4.6563067 m 7.8633236 m 18.38541 MeV 1.4477634 keV 4.7688517 mm 6.6664691 m World muIoni - 243 39.14044 cm 4.6659048 m 7.8765967 m 18.076626 MeV 6.5575519 keV 1.649292 cm 6.682962 m World muIoni - 244 40.005201 cm 4.7097991 m 7.9377992 m 18.044714 MeV 26.734314 keV 7.581117 cm 6.7587732 m World muIoni - 245 40.49869 cm 4.7365718 m 7.9750622 m 18.02358 MeV 15.6594 keV 4.614844 cm 6.8049216 m World muIoni - 246 41.033476 cm 4.7639586 m 8.0132981 m 18.001788 MeV 20.687444 keV 4.7335409 cm 6.852257 m World muIoni - 247 41.456926 cm 4.7853949 m 8.0430203 m 17.986858 MeV 13.043645 keV 3.6889904 cm 6.8891469 m World muIoni - 248 41.476019 cm 4.7863637 m 8.0443499 m 17.982808 MeV 1.5765412 keV 1.6562177 mm 6.8908031 m World muIoni - 249 41.541123 cm 4.7896834 m 8.0489102 m 17.980765 MeV 2.0437439 keV 5.6780783 mm 6.8964812 m World muIoni - 250 41.6016 cm 4.792773 m 8.0531572 m 17.978779 MeV 810.97149 eV 5.2865738 mm 6.9017678 m World muIoni - 251 41.718831 cm 4.7987101 m 8.0613192 m 17.975396 MeV 1.8132283 keV 1.0160853 cm 6.9119286 m World muIoni - 252 42.150229 cm 4.8207402 m 8.0913439 m 17.959413 MeV 14.606246 keV 3.7489063 cm 6.9494177 m World muIoni - 253 42.175033 cm 4.8220113 m 8.0930745 m 17.950289 MeV 801.54625 eV 2.1614618 mm 6.9515792 m World muIoni - 254 42.811532 cm 4.8546614 m 8.1373902 m 17.92624 MeV 18.230018 keV 5.5411754 cm 7.0069909 m World muIoni - 255 43.340385 cm 4.8820218 m 8.1743015 m 17.903906 MeV 16.983527 keV 4.6249555 cm 7.0532405 m World muIoni - 256 43.434268 cm 4.8869735 m 8.1809556 m 17.900474 MeV 2.3069404 keV 8.3473367 mm 7.0615878 m World muIoni - 257 43.855613 cm 4.9089402 m 8.2105233 m 17.887924 MeV 12.549653 keV 3.7074874 cm 7.0986627 m World muIoni - 258 44.513231 cm 4.9426206 m 8.2558692 m 17.866142 MeV 20.737606 keV 5.6867479 cm 7.1555302 m World muIoni - 259 44.522202 cm 4.9430671 m 8.2564685 m 17.864761 MeV 138.54331 eV 752.67751 um 7.1562828 m World muIoni - 260 44.59242 cm 4.9465637 m 8.2611608 m 17.861012 MeV 3.7491333 keV 5.893788 mm 7.1621766 m World muIoni - 261 44.736096 cm 4.9538006 m 8.2708591 m 17.855924 MeV 3.6165606 keV 1.2185899 cm 7.1743625 m World muIoni - 262 44.78181 cm 4.9561361 m 8.2739735 m 17.853157 MeV 1.0849704 keV 3.9195788 mm 7.1782821 m World muIoni - 263 44.962608 cm 4.9652499 m 8.2861425 m 17.845135 MeV 5.4225411 keV 1.5310626 cm 7.1935927 m World muIoni - 264 45.202619 cm 4.9771658 m 8.3020318 m 17.831877 MeV 9.6899303 keV 2.00055 cm 7.2135982 m World muIoni - 265 45.249987 cm 4.9794823 m 8.3051292 m 17.831165 MeV 711.83352 eV 3.8967225 mm 7.217495 m OutOfWorld Transportation -Track (trackID 64, parentID 3) is processed with stopping code 2 + 0 -1.48 cm 48.9 um 7.55 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.4731993 cm 32.013675 um 7.5451692 cm 1.2757782 MeV 2.8440344 MeV 143.89929 um 143.89929 um Target muIoni + 2 -1.4726153 cm 15.596106 um 7.545232 cm 87.242825 keV 1.1885354 MeV 23.444017 um 167.34331 um Target muIoni + 3 -1.4726184 cm 15.377803 um 7.5452386 cm 1.3877788e-08 meV 87.242825 keV 516.86881 nm 167.86018 um Target muIoni + 4 -1.4726184 cm 15.377803 um 7.5452386 cm 0 eV 1.3877788e-08 meV 2.7365197 fm 167.86018 um Target muIoni + 5 -1.4726184 cm 15.377803 um 7.5452386 cm 0 eV 0 eV 0 fm 167.86018 um Target DecayWithSpin +Track (trackID 22, parentID 3) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.535797861247(mm),0.41532944436106(mm),78.142094659672(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.131227(mm),1.4820707(mm),78.213431(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2551,7 +1882,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.602871(mm),0.20339615(mm),79.364557(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.263057(mm),-2.561254(mm),78.895494(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2560,7 +1891,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.907983(mm),3.0074315(mm),78.958103(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.381591(mm),-0.55133028(mm),78.169286(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2569,7 +1900,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.993859(mm),0.044283543(mm),78.237653(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.414884(mm),0.21372278(mm),79.221377(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2578,7 +1909,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.574844(mm),2.4465183(mm),78.664191(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.485982(mm),-1.9126863(mm),78.856186(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2587,7 +1918,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.72482(mm),-1.6685428(mm),78.461419(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.906458(mm),-2.2435934(mm),79.134699(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2596,7 +1927,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.100435(mm),-3.1679538(mm),78.747842(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.926973(mm),1.9513716(mm),78.778428(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2605,7 +1936,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.668896(mm),0.46103021(mm),78.647607(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.567645(mm),2.8456226(mm),78.312806(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2614,7 +1945,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.793651(mm),2.3366716(mm),79.15459(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.893591(mm),-0.32196434(mm),79.136968(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2623,7 +1954,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.036231(mm),-0.13025439(mm),78.582836(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.225163(mm),1.8583492(mm),79.078503(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2632,7 +1963,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.737203(mm),-1.0671378(mm),78.459235(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.138587(mm),-2.3681826(mm),78.388461(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2641,7 +1972,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.004718(mm),2.7921237(mm),78.412065(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.370723(mm),1.7412031(mm),79.405491(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2650,7 +1981,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.589746(mm),-0.94858982(mm),78.485236(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.995565(mm),2.2688267(mm),79.295314(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2659,7 +1990,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.036732(mm),-2.2237915(mm),78.230093(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.426174(mm),-1.0201441(mm),78.514078(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2668,7 +1999,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.603054(mm),1.2485782(mm),78.306563(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.194418(mm),-2.9435853(mm),78.907597(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2677,7 +2008,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.240386(mm),-0.34727448(mm),79.428473(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.681529(mm),1.9399548(mm),78.998033(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2686,7 +2017,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.222028(mm),-1.4477144(mm),78.373748(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.206785(mm),1.0391861(mm),79.25807(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2695,7 +2026,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.585014(mm),1.092841(mm),79.191378(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.468398(mm),-2.3439138(mm),79.211941(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2704,7 +2035,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.801333(mm),-3.0633966(mm),78.976909(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.528557(mm),-0.36188116(mm),78.672352(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2713,7 +2044,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.378717(mm),-2.0226359(mm),78.8751(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.204544(mm),2.3181708(mm),78.376831(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2722,7 +2053,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.082844(mm),-2.1870877(mm),78.927271(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.901161(mm),1.4435645(mm),79.135633(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2731,7 +2062,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.073673(mm),1.7839754(mm),78.928888(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.949976(mm),-3.7397852(mm),78.774372(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2740,7 +2071,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.548588(mm),-2.0657301(mm),79.374128(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.030822(mm),2.0483299(mm),78.936443(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2749,7 +2080,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.191637(mm),1.7540229(mm),79.084414(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.786008(mm),0.10659531(mm),78.626957(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -2758,732 +2089,235 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.289096(mm),-2.0341594(mm),78.361922(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.101952(mm),-0.98696089(mm),79.100228(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.398844(mm),2.6238166(mm),78.518897(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.352257(mm),3.1035904(mm),79.056093(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.858098(mm),-2.057177(mm),78.614245(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.822311(mm),-2.4754216(mm),78.796883(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.279448(mm),0.85445365(mm),78.892604(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.162112(mm),2.3987011(mm),78.384312(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.793147(mm),3.2509147(mm),78.449371(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.865983(mm),-0.81111906(mm),79.141836(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.575255(mm),-2.3225826(mm),78.840445(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.45946(mm),-2.8880701(mm),78.331882(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.614583(mm),0.23390802(mm),78.30453(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.451909(mm),1.1529498(mm),78.862194(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.421233(mm),1.8734691(mm),78.338623(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.153434(mm),2.8599566(mm),78.385843(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.827512(mm),-3.7296039(mm),78.972292(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-17.355719(mm),-0.54581362(mm),78.173847(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.938682(mm),-2.2852473(mm),78.423709(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.051231(mm),-0.33423548(mm),79.285499(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.980054(mm),2.2449687(mm),79.121722(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.498262(mm),1.0828244(mm),78.501367(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.652133(mm),3.6673973(mm),79.003217(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 ********************************************************************************************************* -* G4Track Information: Particle = pi+, Track ID = 4, Parent ID = 1 +* G4Track Information: Particle = pi+, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.4 cm -2.19 mm 6.43 cm 35.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.4901644 cm -1.5277273 mm 6.4005586 cm 29.992376 MeV 5.1691563 MeV 1.1998696 mm 1.1998696 mm Target hIoni - 2 -1.5074516 cm -1.4041398 mm 6.3922646 cm 29.117825 MeV 874.55062 keV 228.52069 um 1.4283903 mm Target Transportation - 3 12.728236 cm 8.6299233 cm -1.3384154 m 29.117843 MeV2.2181419e-13 meV 3.4031082 m 3.4045366 m CaptureMgnt Decay -Track (trackID 4, parentID 1) is processed with stopping code 2 + 0 -1.13 cm 3.66 mm 7.16 cm 19 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.144155 cm 3.6544354 mm 7.2099922 cm 16.066676 MeV 2.9252497 MeV 528.08683 um 528.08683 um Target hIoni + 2 -1.153266 cm 3.6460332 mm 7.2519736 cm 12.968856 MeV 3.0978204 MeV 434.64688 um 962.73371 um Target hIoni + 3 -1.1715334 cm 3.6758523 mm 7.2807062 cm 9.8480769 MeV 3.1207789 MeV 346.4452 um 1.3091789 mm Target hIoni + 4 -1.1853211 cm 3.6982481 mm 7.3030852 cm 6.919308 MeV 2.9287689 MeV 268.44134 um 1.5776202 mm Target hIoni + 5 -1.2018217 cm 3.7153149 mm 7.3137186 cm 3.7143595 MeV 3.2049485 MeV 202.09086 um 1.7797111 mm Target hIoni + 6 -1.2107114 cm 3.7113331 mm 7.3168735 cm 401.95215 keV 3.3124073 MeV 113.14408 um 1.8928552 mm Target hIoni + 7 -1.2109332 cm 3.7112962 mm 7.3169841 cm 1.3113959 keV 400.64076 keV 3.5072707 um 1.8963625 mm Target hIoni + 8 -1.2109332 cm 3.7112963 mm 7.3169841 cm 6.505213e-10 meV 1.3113959 keV 30.589803 nm 1.896393 mm Target hIoni + 9 -1.2109332 cm 3.7112963 mm 7.3169841 cm 0 eV 6.505213e-10 meV0.68094722 fm 1.896393 mm Target hIoni + 10 -1.2109332 cm 3.7112963 mm 7.3169841 cm 0 eV 0 eV 0 fm 1.896393 mm Target Decay +Track (trackID 5, parentID 1) is processed with stopping code 2 ********************************************************************************************************* -* G4Track Information: Particle = mu+, Track ID = 19, Parent ID = 4 +* G4Track Information: Particle = mu+, Track ID = 21, Parent ID = 5 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 12.7 cm 8.63 cm -1.34 m 8.93 MeV 0 eV 0 fm 0 fm CaptureMgnt initStep - 1 12.227389 cm 9.1777819 cm -2 m 8.9280909 MeV5.4900816e-13 meV 4.2505793 m 4.2505793 m CaptureMgnt Transportation - 2 12.063985 cm 7.1379247 cm -2.0032244 m 8.9124167 MeV 12.945535 keV 2.0716546 cm 4.2712959 m World muIoni - 3 11.978084 cm 6.0705393 cm -2.0048832 m 8.9049013 MeV 7.5154137 keV 1.0836168 cm 4.2821321 m World muIoni - 4 11.299743 cm -1.7788504 cm -2.0166046 m 8.8379223 MeV 48.330831 keV 7.9656473 cm 4.3617885 m World muIoni - 5 11.27569 cm -2.0680259 cm -2.0170421 m 8.830887 MeV 1.9068787 keV 2.9345483 mm 4.3647231 m World muIoni - 6 11.253071 cm -2.341274 cm -2.0174496 m 8.8295616 MeV 1.3253891 keV 2.7719405 mm 4.367495 m World muIoni - 7 10.974729 cm -5.6967415 cm -2.0224889 m 8.8041686 MeV 25.392985 keV 3.4045415 cm 4.4015404 m World muIoni - 8 10.889542 cm -6.8091802 cm -2.0241397 m 8.7942539 MeV 7.8892703 keV 1.1278463 cm 4.4128189 m World muIoni - 9 10.815173 cm -7.7892858 cm -2.0255639 m 8.7126922 MeV 5.6006553 keV 9.9319143 mm 4.4227508 m World muIoni - 10 10.756735 cm -8.5884412 cm -2.0267389 m 8.705942 MeV 5.6929646 keV 8.0986006 mm 4.4308494 m World muIoni - 11 10.592224 cm -10.919931 cm -2.0301244 m 8.681603 MeV 16.847039 keV 2.3617007 cm 4.4544664 m World muIoni - 12 10.554463 cm -11.508264 cm -2.0309853 m 8.678919 MeV 2.6840403 keV 5.9579717 mm 4.4604244 m World muIoni - 13 10.540768 cm -11.719331 cm -2.0312883 m 8.6780904 MeV 828.58488 eV 2.1366998 mm 4.4625611 m World muIoni - 14 10.510146 cm -12.190555 cm -2.0319639 m 8.6752415 MeV 2.8488668 keV 4.7702665 mm 4.4673314 m World muIoni - 15 10.160351 cm -17.560371 cm -2.0396379 m 8.6398896 MeV 33.369131 keV 5.4357745 cm 4.5216891 m World muIoni - 16 10.13064 cm -18.020604 cm -2.0402999 m 8.6360339 MeV 2.4287905 keV 4.6591771 mm 4.5263483 m World muIoni - 17 10.110127 cm -18.339446 cm -2.040751 m 8.6342652 MeV 1.7686887 keV 3.2267142 mm 4.529575 m World muIoni - 18 10.091716 cm -18.613133 cm -2.0411355 m 8.6329804 MeV 1.2848041 keV 2.7698665 mm 4.5323449 m World muIoni - 19 10.052294 cm -19.194248 cm -2.0419527 m 8.6194114 MeV 3.3050129 keV 5.8815747 mm 4.5382264 m World muIoni - 20 10.017168 cm -19.687125 cm -2.0426758 m 8.6138884 MeV 2.4303444 keV 4.9939091 mm 4.5432203 m World muIoni - 21 10.011369 cm -19.768928 cm -2.0427966 m 8.6107685 MeV 711.06439 eV 828.91488 um 4.5440493 m World muIoni - 22 9.9693611 cm -20.369558 cm -2.0436765 m 8.6062594 MeV 2.7930211 keV 6.0849543 mm 4.5501342 m World muIoni - 23 9.9042611 cm -21.274443 cm -2.0449799 m 8.5952276 MeV 8.6226692 keV 9.1654186 mm 4.5592996 m World muIoni - 24 9.828465 cm -22.319809 cm -2.0464769 m 8.5878894 MeV 7.3382101 keV 1.0587501 cm 4.5698871 m World muIoni - 25 9.8009868 cm -22.694246 cm -2.0470155 m 8.5845325 MeV 1.2964068 keV 3.7928877 mm 4.57368 m World muIoni - 26 9.7518644 cm -23.358074 cm -2.0479604 m 8.5808491 MeV 3.6834031 keV 6.7231737 mm 4.5804032 m World muIoni - 27 9.746781 cm -23.427519 cm -2.0480598 m 8.5794969 MeV 216.15402 eV 703.36459 um 4.5811066 m World muIoni - 28 9.669585 cm -24.491075 cm -2.0495875 m 8.5691356 MeV 6.374448 keV 1.0772458 cm 4.591879 m World muIoni - 29 9.6641374 cm -24.566941 cm -2.0496942 m 8.5685993 MeV 536.30298 eV 768.05706 um 4.5926471 m World muIoni - 30 9.5958526 cm -25.51791 cm -2.0510313 m 8.5502293 MeV 4.097025 keV 9.627508 mm 4.6022746 m World muIoni - 31 9.5942441 cm -25.538953 cm -2.0510611 m 8.5491084 MeV 111.77279 eV 213.14142 um 4.6024877 m World muIoni - 32 9.3920382 cm -28.209089 cm -2.054833 m 8.5347123 MeV 12.559025 keV 2.704248 cm 4.6295302 m World muIoni - 33 9.1538596 cm -31.204269 cm -2.0593747 m 8.5055936 MeV 20.964678 keV 3.0388062 cm 4.6599183 m World muIoni - 34 9.0455132 cm -32.590315 cm -2.0615472 m 8.4616013 MeV 9.1408643 keV 1.4071531 cm 4.6739898 m World muIoni - 35 9.0163676 cm -32.922705 cm -2.0620855 m 8.4539186 MeV 1.2407359 keV 3.3797994 mm 4.6773696 m World muIoni - 36 8.9960769 cm -33.15088 cm -2.0624496 m 8.4511147 MeV 1.49438 keV 2.319509 mm 4.6796891 m World muIoni - 37 8.9659185 cm -33.487442 cm -2.0629806 m 8.4483379 MeV 1.7273258 keV 3.4205667 mm 4.6831097 m World muIoni - 38 8.7382098 cm -36.040194 cm -2.0669134 m 8.4376292 MeV 10.708723 keV 2.5929167 cm 4.7090388 m World muIoni - 39 8.5783974 cm -37.776728 cm -2.069749 m 8.4258825 MeV 11.746728 keV 1.7667881 cm 4.7267067 m World muIoni - 40 8.4473925 cm -39.238349 cm -2.0720532 m 8.4146039 MeV 11.278561 keV 1.4854698 cm 4.7415614 m World muIoni - 41 8.1856199 cm -42.221797 cm -2.0764647 m 8.3924487 MeV 16.765103 keV 3.0272665 cm 4.7718341 m World muIoni - 42 8.1336385 cm -42.863411 cm -2.0774305 m 8.3823956 MeV 5.7972227 keV 6.5092222 mm 4.7783433 m World muIoni - 43 7.8896987 cm -46.045626 cm -2.0822457 m 8.3628504 MeV 18.422231 keV 3.2277182 cm 4.8106205 m World muIoni - 44 7.8771206 cm -46.216631 cm -2.0825108 m 8.3583706 MeV 1.221773 keV 1.7350422 mm 4.8123555 m World muIoni - 45 7.871706 cm -46.290892 cm -2.0826267 m 8.3562684 MeV 302.11743 eV 753.54898 um 4.8131091 m World muIoni - 46 7.8325154 cm -46.832303 cm -2.0834685 m 8.3503947 MeV 4.0525621 keV 5.4931612 mm 4.8186022 m World muIoni - 47 7.7878642 cm -47.437965 cm -2.084405 m 8.3455743 MeV 3.1937395 keV 6.144869 mm 4.8247471 m World muIoni - 48 7.7539576 cm -47.913093 cm -2.085121 m 8.3416525 MeV 1.8215376 keV 4.8168776 mm 4.829564 m World muIoni - 49 7.7394622 cm -48.117283 cm -2.0854341 m 8.3385224 MeV 1.9127674 keV 2.0708476 mm 4.8316348 m World muIoni - 50 7.7218517 cm -48.36641 cm -2.0858177 m 8.3253042 MeV 1.1502399 keV 2.5267739 mm 4.8341616 m World muIoni - 51 7.641812 cm -49.533132 cm -2.0876214 m 8.3161303 MeV 6.4915169 keV 1.1832976 cm 4.8459946 m World muIoni - 52 7.630129 cm -49.715622 cm -2.0879057 m 8.3132889 MeV 1.0025999 keV 1.8506029 mm 4.8478452 m World muIoni - 53 7.6263534 cm -49.775381 cm -2.0879993 m 8.3122513 MeV 24.413704 eV 606.05557 um 4.8484512 m World muIoni - 54 7.6205295 cm -49.867036 cm -2.0881423 m 8.3091309 MeV 1.1085268 keV 929.46786 um 4.8493807 m World muIoni - 55 7.5025194 cm -51.754329 cm -2.0910937 m 8.297043 MeV 10.060022 keV 1.9138873 cm 4.8685196 m World muIoni - 56 7.4233686 cm -53.032868 cm -2.0930349 m 8.2868653 MeV 9.1245828 keV 1.2956273 cm 4.8814759 m World muIoni - 57 7.39315 cm -53.56156 cm -2.0938019 m 8.2828179 MeV 2.8169224 keV 5.3508254 mm 4.8868267 m World muIoni - 58 7.3435127 cm -54.452675 cm -2.0950915 m 8.27748 MeV 4.286926 keV 9.0176766 mm 4.8958444 m World muIoni - 59 7.3232053 cm -54.807975 cm -2.0956255 m 8.2748385 MeV 2.6415181 keV 3.5987374 mm 4.8994431 m World muIoni - 60 7.1379031 cm -57.890863 cm -2.1003609 m 8.2564921 MeV 15.279432 keV 3.124589 cm 4.930689 m World muIoni - 61 7.1375862 cm -57.896747 cm -2.1003702 m 8.2551031 MeV 0 eV 59.660431 um 4.9307486 m World muIoni - 62 7.1060223 cm -58.480974 cm -2.1013041 m 8.2467092 MeV 7.3356648 keV 5.9248559 mm 4.9366735 m World muIoni - 63 7.1036423 cm -58.523757 cm -2.1013706 m 8.1658753 MeV 424.66457 eV 433.62081 um 4.9371071 m World muIoni - 64 6.8786672 cm -62.567489 cm -2.1074556 m 8.1406582 MeV 22.583165 keV 4.095527 cm 4.9780624 m World muIoni - 65 6.6269968 cm -67.525329 cm -2.1146398 m 8.1057284 MeV 33.451881 keV 5.0160672 cm 5.0282231 m World muIoni - 66 6.5885441 cm -68.352275 cm -2.1158191 m 8.0981233 MeV 6.2993299 keV 8.3620007 mm 5.0365851 m World muIoni - 67 6.539405 cm -69.3534 cm -2.1172415 m 8.0873182 MeV 9.6676886 keV 1.0123761 cm 5.0467088 m World muIoni - 68 6.3641339 cm -72.726781 cm -2.122153 m 8.0604262 MeV 24.5127 keV 3.4135085 cm 5.0808439 m World muIoni - 69 6.2179672 cm -75.344312 cm -2.1259365 m 8.0300522 MeV 19.252626 keV 2.648803 cm 5.1073319 m World muIoni - 70 6.1853674 cm -75.982043 cm -2.126846 m 8.0230077 MeV 5.1389257 keV 6.45009 mm 5.113782 m World muIoni - 71 6.1722373 cm -76.252537 cm -2.1272282 m 8.0163502 MeV 1.6015524 keV 2.7349724 mm 5.116517 m World muIoni - 72 6.1489341 cm -76.708584 cm -2.1278682 m 8.0128354 MeV 2.0050775 keV 4.6110553 mm 5.1211281 m World muIoni - 73 6.0811052 cm -77.976634 cm -2.1296529 m 7.9972534 MeV 9.2641014 keV 1.2823491 cm 5.1339515 m World muIoni - 74 6.0416633 cm -78.880278 cm -2.1309266 m 7.9905755 MeV 5.3710568 keV 9.1343252 mm 5.1430859 m World muIoni - 75 6.0167671 cm -79.572746 cm -2.131893 m 7.9833429 MeV 7.2326757 keV 6.9962364 mm 5.1500821 m World muIoni - 76 5.9765342 cm -80.834268 cm -2.1336657 m 7.973578 MeV 8.6906273 keV 1.2745589 cm 5.1628277 m World muIoni - 77 5.9657821 cm -81.164573 cm -2.134117 m 7.9220728 MeV 3.2736058 keV 3.3354682 mm 5.1661632 m World muIoni - 78 5.8380062 cm -84.820294 cm -2.1391902 m 7.8981485 MeV 22.300148 keV 3.6930375 cm 5.2030935 m World muIoni - 79 5.8313147 cm -85.026255 cm -2.139476 m 7.8917078 MeV 2.3813208 keV 2.0804174 mm 5.205174 m World muIoni - 80 5.7879207 cm -86.415724 cm -2.1414193 m 7.8830288 MeV 8.679044 keV 1.4036717 cm 5.2192107 m World muIoni - 81 5.7555417 cm -87.502987 cm -2.1429174 m 7.8730844 MeV 6.7526589 keV 1.0980178 cm 5.2301909 m World muIoni - 82 5.7447378 cm -87.916029 cm -2.1434879 m 7.8504622 MeV 2.4681536 keV 4.1710386 mm 5.2343619 m World muIoni - 83 5.7398857 cm -88.109481 cm -2.1437606 m 7.8472233 MeV 1.5167984 keV 1.9542559 mm 5.2363161 m World muIoni - 84 5.732454 cm -88.396492 cm -2.1441655 m 7.8458981 MeV 1.3252517 keV 2.8994805 mm 5.2392156 m World muIoni - 85 5.721368 cm -88.870882 cm -2.1448344 m 7.8401923 MeV 1.6534898 keV 4.7921197 mm 5.2440077 m World muIoni - 86 5.6952027 cm -90.315795 cm -2.1468537 m 7.8244959 MeV 14.127326 keV 1.4591993 cm 5.2585997 m World muIoni - 87 5.693503 cm -90.43543 cm -2.1470171 m 7.8221476 MeV 982.9516 eV 1.2075784 mm 5.2598073 m World muIoni - 88 5.6838786 cm -91.146971 cm -2.1479874 m 7.8178493 MeV 4.2983926 keV 7.1819255 mm 5.2669892 m World muIoni - 89 5.6722036 cm -92.004032 cm -2.1491754 m 7.8084689 MeV 7.7212495 keV 8.6533818 mm 5.2756426 m World muIoni - 90 5.6583933 cm -93.006231 cm -2.1505503 m 7.8012319 MeV 4.6025942 keV 1.011684 cm 5.2857595 m World muIoni - 91 5.6515927 cm -93.599753 cm -2.1513462 m 7.7974597 MeV 2.5443593 keV 5.9887517 mm 5.2917482 m World muIoni - 92 5.6497507 cm -93.829866 cm -2.1516525 m 7.7948903 MeV 1.350467 keV 2.3215036 mm 5.2940697 m World muIoni - 93 5.6495298 cm -93.858178 cm -2.1516901 m 7.7913881 MeV 92.838911 eV 285.61013 um 5.2943553 m World muIoni - 94 5.6448577 cm -94.364622 cm -2.152362 m 7.78843 MeV 2.9581378 keV 5.1090336 mm 5.2994644 m World muIoni - 95 5.6393633 cm -94.854628 cm -2.1529945 m 7.7848174 MeV 2.1518495 keV 4.9410527 mm 5.3044054 m World muIoni - 96 5.5695216 cm -1.004003 m -2.1599068 m 7.7433422 MeV 39.733406 keV 5.5892036 cm 5.3602975 m World muIoni - 97 5.583418 cm -1.018363 m -2.1617933 m 7.7309329 MeV 10.239329 keV 1.4484124 cm 5.3747816 m World muIoni - 98 5.5912504 cm -1.0237955 m -2.1624702 m 7.7256944 MeV 4.2294338 keV 5.4750359 mm 5.3802566 m World muIoni - 99 5.5958677 cm -1.0281213 m -2.1630137 m 7.7182401 MeV 3.5784547 keV 4.3601326 mm 5.3846167 m World muIoni - 100 5.5966754 cm -1.028861 m -2.1631029 m 7.7169224 MeV 281.49237 eV 745.03191 um 5.3853618 m World muIoni - 101 5.6205209 cm -1.050735 m -2.1657591 m 7.7003671 MeV 14.724097 keV 2.2036237 cm 5.407398 m World muIoni - 102 5.623377 cm -1.0525408 m -2.1659813 m 7.69917 MeV 1.1970748 keV 1.8196706 mm 5.4092177 m World muIoni - 103 5.6241123 cm -1.0529846 m -2.1660364 m 7.6939421 MeV 947.39879 eV 447.25544 um 5.4096649 m World muIoni - 104 5.6563996 cm -1.0739281 m -2.1686598 m 7.6778528 MeV 14.889481 keV 2.1109827 cm 5.4307748 m World muIoni - 105 5.6665959 cm -1.0804047 m -2.1695158 m 7.672402 MeV 3.8528283 keV 6.5337893 mm 5.4373086 m World muIoni - 106 5.667584 cm -1.0808897 m -2.1695801 m 7.6698759 MeV 32.441007 eV 489.32316 um 5.4377979 m World muIoni - 107 5.682972 cm -1.088512 m -2.1705814 m 7.6657327 MeV 4.1432286 keV 7.6893217 mm 5.4454872 m World muIoni - 108 5.6886993 cm -1.0913064 m -2.1709328 m 7.6622886 MeV 1.5253268 keV 2.8169951 mm 5.4483042 m World muIoni - 109 5.7001816 cm -1.0961225 m -2.1715344 m 7.6583406 MeV 2.7584509 keV 4.8549556 mm 5.4531592 m World muIoni - 110 5.7067284 cm -1.0990657 m -2.1719087 m 7.6539115 MeV 2.6266179 keV 2.9676111 mm 5.4561268 m World muIoni - 111 5.7328561 cm -1.111905 m -2.1735142 m 7.6398268 MeV 12.079337 keV 1.2941946 cm 5.4690687 m World muIoni - 112 5.7740188 cm -1.1275318 m -2.1754533 m 7.6273272 MeV 12.499574 keV 1.5752198 cm 5.4848209 m World muIoni - 113 5.804707 cm -1.1388541 m -2.176865 m 7.6054029 MeV 6.8364022 keV 1.1414145 cm 5.4962351 m World muIoni - 114 5.8231589 cm -1.1451827 m -2.1776702 m 7.5989688 MeV 3.9242571 keV 6.3822819 mm 5.5026173 m World muIoni - 115 5.8360644 cm -1.1498942 m -2.1782713 m 7.5942501 MeV 3.3227452 keV 4.7514823 mm 5.5073688 m World muIoni - 116 5.8880975 cm -1.1683837 m -2.1806544 m 7.5829221 MeV 11.327985 keV 1.864987 cm 5.5260187 m World muIoni - 117 5.9042677 cm -1.1745964 m -2.1814757 m 7.5692231 MeV 1.8290892 keV 6.2688833 mm 5.5322876 m World muIoni - 118 5.9433337 cm -1.1904087 m -2.1834784 m 7.5519796 MeV 15.748516 keV 1.5943519 cm 5.5482311 m World muIoni - 119 5.9565731 cm -1.1958687 m -2.1841516 m 7.5464824 MeV 4.3675562 keV 5.5029176 mm 5.553734 m World muIoni - 120 5.9661555 cm -1.199733 m -2.1846192 m 7.5409556 MeV 3.5872274 keV 3.8937458 mm 5.5576277 m World muIoni - 121 5.9667528 cm -1.1999912 m -2.1846503 m 7.5264561 MeV 91.987049 eV 260.12244 um 5.5578879 m World muIoni - 122 6.0730849 cm -1.2423268 m -2.1896857 m 7.4974878 MeV 26.995899 keV 4.2648786 cm 5.6005367 m World muIoni - 123 6.0863818 cm -1.2465438 m -2.1902698 m 7.4952257 MeV 2.2620642 keV 4.2593282 mm 5.604796 m World muIoni - 124 6.1040048 cm -1.2517239 m -2.1909878 m 7.4898843 MeV 3.6915445 keV 5.2325828 mm 5.6100286 m World muIoni - 125 6.1399804 cm -1.2616571 m -2.1923624 m 7.4820644 MeV 4.7208742 keV 1.0034406 cm 5.620063 m World muIoni - 126 6.2052544 cm -1.2807151 m -2.1951257 m 7.4610692 MeV 14.836269 keV 1.9268465 cm 5.6393314 m World muIoni - 127 6.2706037 cm -1.2985118 m -2.1977463 m 7.4491304 MeV 10.483309 keV 1.8000675 cm 5.6573321 m World muIoni - 128 6.2708215 cm -1.2985839 m -2.1977567 m 7.4460174 MeV 1.5272728 keV 72.851256 um 5.657405 m World muIoni - 129 6.2934856 cm -1.3063288 m -2.1988721 m 7.4394876 MeV 6.5298958 keV 7.8281819 mm 5.6652331 m World muIoni - 130 6.3616459 cm -1.328499 m -2.2020669 m 7.4228923 MeV 10.939376 keV 2.2409853 cm 5.687643 m World muIoni - 131 6.4378488 cm -1.3533027 m -2.2056277 m 7.398617 MeV 21.917853 keV 2.5069911 cm 5.7127129 m World muIoni - 132 6.4575158 cm -1.3604416 m -2.2066621 m 7.2698518 MeV 4.824844 keV 7.2161564 mm 5.7199291 m World muIoni - 133 6.4696585 cm -1.3645352 m -2.2072601 m 7.2585721 MeV 3.8485124 keV 4.1388127 mm 5.7240679 m World muIoni - 134 6.5047723 cm -1.3766152 m -2.2090296 m 7.2470105 MeV 10.239967 keV 1.2214035 cm 5.7362819 m World muIoni - 135 6.5052456 cm -1.3767694 m -2.2090528 m 7.2469176 MeV 92.905568 eV 156.04214 um 5.736438 m World muIoni - 136 6.5171183 cm -1.3806173 m -2.2096336 m 7.2419593 MeV 3.7535142 keV 3.8932718 mm 5.7403312 m World muIoni - 137 6.5813522 cm -1.4026317 m -2.2129413 m 7.2265437 MeV 15.415614 keV 2.2271062 cm 5.7626023 m World muIoni - 138 6.5827667 cm -1.4030932 m -2.2130134 m 7.2190567 MeV 468.37989 eV 467.32471 um 5.7630696 m World muIoni - 139 6.5989403 cm -1.4086964 m -2.2138844 m 7.2148851 MeV 2.9669162 keV 5.6728425 mm 5.7687425 m World muIoni - 140 6.6063419 cm -1.4110717 m -2.2142511 m 7.2125544 MeV 1.0211535 keV 2.4045593 mm 5.771147 m World muIoni - 141 6.6648681 cm -1.4296795 m -2.2170751 m 7.1965444 MeV 16.010019 keV 1.8830105 cm 5.7899771 m World muIoni - 142 6.6817645 cm -1.4357224 m -2.2179956 m 7.1899431 MeV 5.529467 keV 6.1150076 mm 5.7960921 m World muIoni - 143 6.7044017 cm -1.4432518 m -2.2191378 m 7.1783639 MeV 8.2047955 keV 7.6189864 mm 5.8037111 m World muIoni - 144 6.7320365 cm -1.4514392 m -2.2203732 m 7.1688899 MeV 8.4568233 keV 8.2847169 mm 5.8119958 m World muIoni - 145 6.7504838 cm -1.4568417 m -2.2212012 m 7.1640918 MeV 3.306666 keV 5.468688 mm 5.8174645 m World muIoni - 146 6.7650734 cm -1.4610638 m -2.2218507 m 7.1586064 MeV 4.3866934 keV 4.2742672 mm 5.8217388 m World muIoni - 147 6.7704686 cm -1.4625422 m -2.2220786 m 7.1571188 MeV 468.21703 eV 1.4967805 mm 5.8232356 m World muIoni - 148 6.8025828 cm -1.4713616 m -2.2234446 m 7.152325 MeV 3.6001046 keV 8.930356 mm 5.8321659 m World muIoni - 149 6.808621 cm -1.4731079 m -2.2237092 m 7.1507018 MeV 609.7898 eV 1.767353 mm 5.8339333 m World muIoni - 150 6.9148333 cm -1.5035361 m -2.2283371 m 7.1286521 MeV 20.841741 keV 3.0797024 cm 5.8647303 m World muIoni - 151 7.0006326 cm -1.5326281 m -2.2327026 m 7.1067296 MeV 20.645942 keV 2.9430754 cm 5.8941611 m World muIoni - 152 7.0092394 cm -1.5349806 m -2.2330643 m 7.1055349 MeV 1.1947723 keV 2.3816416 mm 5.8965427 m World muIoni - 153 7.0643636 cm -1.550061 m -2.2353736 m 7.0944782 MeV 8.6736243 keV 1.5266268 cm 5.911809 m World muIoni - 154 7.0721338 cm -1.5525895 m -2.2357683 m 7.0927385 MeV 1.7397523 keV 2.5603349 mm 5.9143693 m World muIoni - 155 7.0993812 cm -1.5612964 m -2.2371294 m 7.0830385 MeV 7.0293587 keV 8.8168764 mm 5.9231862 m World muIoni - 156 7.1109735 cm -1.5653508 m -2.2377732 m 7.0782469 MeV 3.2179919 keV 4.1068594 mm 5.927293 m World muIoni - 157 7.1244208 cm -1.5699229 m -2.2384979 m 7.0657926 MeV 5.1168465 keV 4.6311689 mm 5.9319242 m World muIoni - 158 7.1590485 cm -1.5826102 m -2.2405288 m 7.0551625 MeV 8.5780912 keV 1.2853511 cm 5.9447777 m World muIoni - 159 7.1732779 cm -1.589926 m -2.2416185 m 6.9737428 MeV 6.8373915 keV 7.3979547 mm 5.9521757 m World muIoni - 160 7.1958883 cm -1.6020179 m -2.2434469 m 6.9620228 MeV 10.338741 keV 1.2231554 cm 5.9644072 m World muIoni - 161 7.2084261 cm -1.6073961 m -2.244269 m 6.9537842 MeV 2.5427964 keV 5.442079 mm 5.9698493 m World muIoni - 162 7.2441637 cm -1.623733 m -2.2467536 m 6.9456032 MeV 8.1810804 keV 1.6528824 cm 5.9863781 m World muIoni - 163 7.2874605 cm -1.6458036 m -2.2501109 m 6.9290433 MeV 15.427812 keV 2.2328971 cm 6.0087071 m World muIoni - 164 7.2990101 cm -1.6504751 m -2.2508217 m 6.9232021 MeV 4.6248171 keV 4.7266634 mm 6.0134338 m World muIoni - 165 7.3134438 cm -1.6563487 m -2.2517067 m 6.9183665 MeV 4.8356468 keV 5.9416563 mm 6.0193754 m World muIoni - 166 7.4029478 cm -1.6867244 m -2.2562952 m 6.8880295 MeV 28.460856 keV 3.0733983 cm 6.0501094 m World muIoni - 167 7.4616301 cm -1.7117669 m -2.2600417 m 6.8634631 MeV 20.311443 keV 2.5328464 cm 6.0754379 m World muIoni - 168 7.4700631 cm -1.7156558 m -2.260632 m 6.8599246 MeV 2.4119371 keV 3.9343128 mm 6.0793722 m World muIoni - 169 7.4769621 cm -1.7193034 m -2.2611912 m 6.8564248 MeV 2.4603021 keV 3.6909031 mm 6.0830631 m World muIoni - 170 7.4819388 cm -1.7218967 m -2.2615869 m 6.8543028 MeV 1.095684 keV 2.6237459 mm 6.0856868 m World muIoni - 171 7.5098148 cm -1.7348838 m -2.2635797 m 6.8413655 MeV 10.512172 keV 1.3142236 cm 6.0988291 m World muIoni - 172 7.5146714 cm -1.73706 m -2.2639112 m 6.8385761 MeV 1.7663892 keV 2.2017654 mm 6.1010308 m World muIoni - 173 7.5186233 cm -1.7388348 m -2.2641794 m 6.8368253 MeV 588.32939 eV 1.795411 mm 6.1028262 m World muIoni - 174 7.5336377 cm -1.7457871 m -2.2652258 m 6.8295428 MeV 5.7290778 keV 7.0322526 mm 6.1098585 m World muIoni - 175 7.56183 cm -1.7594142 m -2.2673176 m 6.8167648 MeV 8.6516319 keV 1.3789701 cm 6.1236482 m World muIoni - 176 7.5672908 cm -1.7618604 m -2.2676939 m 6.813811 MeV 1.8841584 keV 2.4756097 mm 6.1261238 m World muIoni - 177 7.5755985 cm -1.7656516 m -2.2682797 m 6.804234 MeV 4.9684235 keV 3.8370831 mm 6.1299609 m World muIoni - 178 7.5877948 cm -1.7709202 m -2.2690958 m 6.8000783 MeV 3.0285873 keV 5.3328566 mm 6.1352937 m World muIoni - 179 7.5939528 cm -1.7731691 m -2.2694402 m 6.794026 MeV 2.1899106 keV 2.275888 mm 6.1375696 m World muIoni - 180 7.638104 cm -1.7898458 m -2.272019 m 6.7815285 MeV 11.42535 keV 1.6880953 cm 6.1544506 m World muIoni - 181 7.6528209 cm -1.7954298 m -2.272876 m 6.7761934 MeV 5.3351568 keV 5.651243 mm 6.1601018 m World muIoni - 182 7.6540978 cm -1.7958365 m -2.2729377 m 6.7750292 MeV 149.56378 eV 411.53235 um 6.1605134 m World muIoni - 183 7.6656448 cm -1.7996024 m -2.2735067 m 6.7726565 MeV 1.1757814 keV 3.8104727 mm 6.1643238 m World muIoni - 184 7.6972779 cm -1.8103172 m -2.2751279 m 6.7630674 MeV 8.4718385 keV 1.0841377 cm 6.1751652 m World muIoni - 185 7.7025398 cm -1.812083 m -2.2753879 m 6.7581172 MeV 2.2288827 keV 1.7856221 mm 6.1769508 m World muIoni - 186 7.7713317 cm -1.8339953 m -2.2785853 m 6.7316164 MeV 18.457931 keV 2.2155334 cm 6.1991062 m World muIoni - 187 7.801059 cm -1.8432034 m -2.2799375 m 6.7194996 MeV 7.3456626 keV 9.3117058 mm 6.2084179 m World muIoni - 188 7.8481995 cm -1.8562121 m -2.2818733 m 6.7106017 MeV 8.8979034 keV 1.3160799 cm 6.2215787 m World muIoni - 189 7.8491493 cm -1.8564242 m -2.281906 m 6.7073579 MeV 477.8901 eV 214.77263 um 6.2217934 m World muIoni - 190 7.8576252 cm -1.8582623 m -2.2821919 m 6.6615026 MeV 1.745078 keV 1.8621186 mm 6.2236556 m World muIoni - 191 7.9017769 cm -1.8684713 m -2.2838113 m 6.6541128 MeV 5.0539686 keV 1.0346126 cm 6.2340017 m World muIoni - 192 7.9188231 cm -1.8732361 m -2.2845882 m 6.6454971 MeV 5.518703 keV 4.8307901 mm 6.2388325 m World muIoni - 193 7.9199458 cm -1.8735201 m -2.2846343 m 6.6439504 MeV 119.01162 eV 287.90152 um 6.2391204 m World muIoni - 194 8.0688831 cm -1.9119446 m -2.2908473 m 6.6122315 MeV 29.453175 keV 3.8953209 cm 6.2780736 m World muIoni - 195 8.1223904 cm -1.9317997 m -2.2942392 m 6.5940608 MeV 16.823676 keV 2.0150095 cm 6.2982237 m World muIoni - 196 8.1427669 cm -1.939702 m -2.2955243 m 6.5838562 MeV 6.9589283 keV 8.008761 mm 6.3062324 m World muIoni - 197 8.1676161 cm -1.9491725 m -2.297079 m 6.5701727 MeV 8.8420797 keV 9.6005426 mm 6.315833 m World muIoni - 198 8.175963 cm -1.9532334 m -2.2977308 m 6.564121 MeV 2.1075447 keV 4.1137651 mm 6.3199468 m World muIoni - 199 8.1780873 cm -1.9542031 m -2.2978884 m 6.55932 MeV 729.6402 eV 982.61768 um 6.3209294 m World muIoni - 200 8.1814653 cm -1.9557876 m -2.2981477 m 6.5560855 MeV 979.4596 eV 1.6059926 mm 6.3225354 m World muIoni - 201 8.1947212 cm -1.9622534 m -2.299218 m 6.537271 MeV 4.9021041 keV 6.5551357 mm 6.3290905 m World muIoni - 202 8.2332035 cm -1.9793178 m -2.302127 m 6.5178179 MeV 16.700854 keV 1.731505 cm 6.3464055 m World muIoni - 203 8.2755937 cm -2.0016783 m -2.305994 m 6.5003734 MeV 16.34472 keV 2.2696738 cm 6.3691023 m World muIoni - 204 8.2956524 cm -2.0097524 m -2.3074385 m 6.4740268 MeV 4.0930493 keV 8.2047853 mm 6.3773071 m World muIoni - 205 8.3592294 cm -2.0371509 m -2.312299 m 6.4468066 MeV 27.220169 keV 2.7834108 cm 6.4051412 m World muIoni - 206 8.3749388 cm -2.0445768 m -2.3135722 m 6.4374828 MeV 7.453416 keV 7.5359395 mm 6.4126771 m World muIoni - 207 8.4062814 cm -2.0569445 m -2.3156752 m 6.4247976 MeV 9.4584366 keV 1.2549246 cm 6.4252264 m World muIoni - 208 8.433241 cm -2.0645097 m -2.316952 m 6.4183763 MeV 6.4213879 keV 7.6769804 mm 6.4329033 m World muIoni - 209 8.5832477 cm -2.1001044 m -2.3229692 m 6.3772806 MeV 31.473618 keV 3.613184 cm 6.4690352 m World muIoni - 210 8.6112555 cm -2.1075951 m -2.324341 m 6.3677654 MeV 4.5422921 keV 7.6205557 mm 6.4766557 m World muIoni - 211 8.6387773 cm -2.1154821 m -2.3258314 m 6.3596599 MeV 8.1054626 keV 8.0313047 mm 6.484687 m World muIoni - 212 8.6757083 cm -2.1264776 m -2.3278024 m 6.3457619 MeV 11.161595 keV 1.1176938 cm 6.495864 m World muIoni - 213 8.6877184 cm -2.1294732 m -2.3283432 m 6.3421141 MeV 2.2648804 keV 3.0463558 mm 6.4989103 m World muIoni - 214 8.8640654 cm -2.1740595 m -2.3365053 m 6.3051002 MeV 35.852563 keV 4.5363332 cm 6.5442737 m World muIoni - 215 8.8714042 cm -2.1768822 m -2.3370037 m 6.3021983 MeV 1.7787884 keV 2.8672598 mm 6.5471409 m World muIoni - 216 8.8940745 cm -2.1846553 m -2.3383841 m 6.2973937 MeV 4.8046318 keV 7.8979808 mm 6.5550389 m World muIoni - 217 8.9686106 cm -2.208231 m -2.342586 m 6.2769323 MeV 20.461361 keV 2.3959312 cm 6.5789982 m World muIoni - 218 8.9699983 cm -2.2088312 m -2.3426888 m 6.2718789 MeV 726.37413 eV 609.08574 um 6.5796073 m World muIoni - 219 8.9775767 cm -2.2122852 m -2.3432757 m 6.2689047 MeV 2.9741636 keV 3.5043286 mm 6.5831116 m World muIoni - 220 8.9826211 cm -2.2144284 m -2.3436427 m 6.2683647 MeV 539.98044 eV 2.1750118 mm 6.5852866 m World muIoni - 221 8.9937696 cm -2.2199521 m -2.3446045 m 6.2592723 MeV 6.000305 keV 5.6079012 mm 6.5908946 m World muIoni - 222 9.0013409 cm -2.2227654 m -2.3450984 m 6.2565291 MeV 1.3817889 keV 2.8573595 mm 6.5937519 m World muIoni - 223 9.0034758 cm -2.2235387 m -2.3452363 m 6.2562203 MeV 308.75598 eV 785.77453 um 6.5945377 m World muIoni - 224 9.0490518 cm -2.2393508 m -2.348073 m 6.2444122 MeV 11.808071 keV 1.6071169 cm 6.6106089 m World muIoni - 225 9.0782126 cm -2.2482229 m -2.3497496 m 6.2330697 MeV 9.9519695 keV 9.0338978 mm 6.6196428 m World muIoni - 226 9.1038612 cm -2.254696 m -2.3509848 m 6.2260366 MeV 7.0331215 keV 6.5948839 mm 6.6262376 m World muIoni - 227 9.1355383 cm -2.2618376 m -2.3523602 m 6.2209282 MeV 2.6136859 keV 7.279819 mm 6.6335175 m World muIoni - 228 9.1652526 cm -2.2685995 m -2.3536516 m 6.2150206 MeV 4.8819148 keV 6.8905829 mm 6.640408 m World muIoni - 229 9.175204 cm -2.2706448 m -2.3540389 m 6.210015 MeV 3.7379377 keV 2.0839433 mm 6.642492 m World muIoni - 230 9.257158 cm -2.287618 m -2.357266 m 6.2000942 MeV 9.9208348 keV 1.7296993 cm 6.659789 m World muIoni - 231 9.2780551 cm -2.2919102 m -2.358066 m 6.1944651 MeV 3.12407 keV 4.3710621 mm 6.66416 m World muIoni - 232 9.4149829 cm -2.3227552 m -2.3637783 m 6.1661113 MeV 27.056328 keV 3.1400252 cm 6.6955603 m World muIoni - 233 9.4526348 cm -2.3314928 m -2.3653721 m 6.1581293 MeV 7.9819859 keV 8.8897239 mm 6.70445 m World muIoni - 234 9.4753299 cm -2.3368438 m -2.3663209 m 6.1529393 MeV 4.109487 keV 5.4392863 mm 6.7098893 m World muIoni - 235 9.4816683 cm -2.3384646 m -2.3665982 m 6.1507522 MeV 920.97544 eV 1.6455817 mm 6.7115349 m World muIoni - 236 9.5042775 cm -2.3436215 m -2.3675112 m 6.1464334 MeV 4.3187631 keV 5.242071 mm 6.716777 m World muIoni - 237 9.5802333 cm -2.3614806 m -2.3707539 m 6.1288334 MeV 16.281046 keV 1.8167275 cm 6.7349442 m World muIoni - 238 9.5958884 cm -2.3645232 m -2.3713102 m 6.1263893 MeV 2.44403 keV 3.0969961 mm 6.7380412 m World muIoni - 239 9.6538251 cm -2.3764537 m -2.3734906 m 6.1125463 MeV 11.08931 keV 1.2141976 cm 6.7501832 m World muIoni - 240 9.6557439 cm -2.3768508 m -2.3735648 m 6.1101473 MeV 555.14492 eV 404.4767 um 6.7505877 m World muIoni - 241 9.6950129 cm -2.3851093 m -2.3751055 m 6.1047718 MeV 5.3755013 keV 8.4102201 mm 6.7589979 m World muIoni - 242 9.7093604 cm -2.388236 m -2.3756991 m 6.1009783 MeV 2.7634997 keV 3.185782 mm 6.7621837 m World muIoni - 243 9.8823405 cm -2.4244551 m -2.3825308 m 6.070105 MeV 29.334103 keV 3.6899488 cm 6.7990832 m World muIoni - 244 9.8858416 cm -2.4252363 m -2.382682 m 6.0667386 MeV 1.7503361 keV 796.52521 um 6.7998797 m World muIoni - 245 9.9279661 cm -2.4343959 m -2.3844501 m 6.0569403 MeV 7.9028948 keV 9.3382693 mm 6.809218 m World muIoni - 246 9.9482509 cm -2.4390662 m -2.3853582 m 6.0496527 MeV 5.7916044 keV 4.7620518 mm 6.81398 m World muIoni - 247 9.951516 cm -2.4398835 m -2.385519 m 6.0464028 MeV 508.6954 eV 833.58847 um 6.8148136 m World muIoni - 248 9.9763094 cm -2.4459425 m -2.3867156 m 6.041608 MeV 4.7948774 keV 6.1810799 mm 6.8209947 m World muIoni - 249 9.9935389 cm -2.4504966 m -2.3876199 m 6.0269822 MeV 3.7338019 keV 4.6462338 mm 6.8256409 m World muIoni - 250 9.9954746 cm -2.4510501 m -2.387725 m 6.0253779 MeV 412.21063 eV 563.71809 um 6.8262046 m World muIoni - 251 10.000022 cm -2.4523332 m -2.3879672 m 6.0246239 MeV 753.98584 eV 1.3065582 mm 6.8275112 m World muIoni - 252 10.013993 cm -2.4563498 m -2.3887225 m 6.0215463 MeV 3.077635 keV 4.089412 mm 6.8316006 m World muIoni - 253 10.086703 cm -2.4789615 m -2.3929081 m 5.991655 MeV 17.166259 keV 2.300771 cm 6.8546083 m World muIoni - 254 10.128355 cm -2.4964674 m -2.3962678 m 5.9701735 MeV 12.132645 keV 1.7830488 cm 6.8724388 m World muIoni - 255 10.133075 cm -2.4982563 m -2.3966036 m 5.9641121 MeV 1.1515689 keV 1.8207999 mm 6.8742596 m World muIoni - 256 10.140609 cm -2.5012849 m -2.3971668 m 5.9598606 MeV 1.4997467 keV 3.0814754 mm 6.8773411 m World muIoni - 257 10.143309 cm -2.5025985 m -2.3974117 m 5.9516865 MeV 1.0547975 keV 1.3364938 mm 6.8786776 m World muIoni - 258 10.154197 cm -2.508305 m -2.3984856 m 5.9426128 MeV 4.4467065 keV 5.8077026 mm 6.8844853 m World muIoni - 259 10.176409 cm -2.5214448 m -2.4010077 m 5.9328514 MeV 8.7481804 keV 1.3381674 cm 6.8978669 m World muIoni - 260 10.180104 cm -2.523655 m -2.4014376 m 5.9208554 MeV 784.53972 eV 2.2519241 mm 6.9001189 m World muIoni - 261 10.192387 cm -2.5348616 m -2.4036008 m 5.9119409 MeV 8.9145485 keV 1.1414247 cm 6.9115331 m World muIoni - 262 10.205789 cm -2.5554003 m -2.4076634 m 5.8912731 MeV 19.473349 keV 2.0937391 cm 6.9324705 m World muIoni - 263 10.201343 cm -2.5664969 m -2.4097988 m 5.8777872 MeV 12.425602 keV 1.1300455 cm 6.943771 m World muIoni - 264 10.197885 cm -2.5707988 m -2.4106087 m 5.8721956 MeV 4.4124942 keV 4.3776246 mm 6.9481486 m World muIoni - 265 10.189249 cm -2.5911498 m -2.4145338 m 5.8482985 MeV 22.046609 keV 2.0726568 cm 6.9688752 m World muIoni - 266 10.192105 cm -2.6070134 m -2.4176336 m 5.8229481 MeV 14.495259 keV 1.6163916 cm 6.9850391 m World muIoni - 267 10.19167 cm -2.6084535 m -2.4179253 m 5.8208601 MeV 924.85897 eV 1.4693236 mm 6.9865084 m World muIoni - 268 10.184931 cm -2.6233164 m -2.4209151 m 5.801963 MeV 13.021738 keV 1.5160938 cm 7.0016693 m World muIoni - 269 10.182528 cm -2.6297321 m -2.4222179 m 5.7950034 MeV 6.9595476 keV 6.5467576 mm 7.0082161 m World muIoni - 270 10.182442 cm -2.6309101 m -2.4224628 m 5.7915572 MeV 1.3490969 keV 1.2032229 mm 7.0094193 m World muIoni - 271 10.182423 cm -2.631114 m -2.4225051 m 5.790406 MeV 0 eV 208.22427 um 7.0096275 m World muIoni - 272 10.181929 cm -2.6335291 m -2.4230031 m 5.7874834 MeV 1.8529946 keV 2.465909 mm 7.0120934 m World muIoni - 273 10.181674 cm -2.6344741 m -2.4231979 m 5.784646 MeV 855.15884 eV 964.83932 um 7.0130583 m World muIoni - 274 10.179052 cm -2.6420938 m -2.4247779 m 5.7829232 MeV 1.7227856 keV 7.7818388 mm 7.0208401 m World muIoni - 275 10.177782 cm -2.6565331 m -2.427643 m 5.7685751 MeV 14.348116 keV 1.4721986 cm 7.0355621 m World muIoni - 276 10.178514 cm -2.6581294 m -2.4279486 m 5.7652186 MeV 1.7245256 keV 1.6252267 mm 7.0371873 m World muIoni - 277 10.183149 cm -2.6672779 m -2.4296988 m 5.7581469 MeV 6.0269712 keV 9.314666 mm 7.046502 m World muIoni - 278 10.208126 cm -2.7106116 m -2.4376682 m 5.7179747 MeV 38.146662 keV 4.406305 cm 7.0905651 m World muIoni - 279 10.216065 cm -2.7178932 m -2.439043 m 5.7103894 MeV 6.5621916 keV 7.4107665 mm 7.0979758 m World muIoni - 280 10.242367 cm -2.7427921 m -2.4436703 m 5.6865825 MeV 20.955284 keV 2.5327138 cm 7.123303 m World muIoni - 281 10.242498 cm -2.7457354 m -2.444201 m 5.6837126 MeV 1.1993868 keV 2.9908317 mm 7.1262938 m World muIoni - 282 10.242561 cm -2.7474059 m -2.444491 m 5.6799941 MeV 838.40379 eV 1.6954982 mm 7.1279893 m World muIoni - 283 10.242621 cm -2.748738 m -2.4447181 m 5.6783318 MeV 589.1052 eV 1.3512572 mm 7.1293405 m World muIoni - 284 10.242055 cm -2.7717654 m -2.4486513 m 5.6587883 MeV 19.543485 keV 2.3361417 cm 7.152702 m World muIoni - 285 10.244714 cm -2.774819 m -2.4491659 m 5.654719 MeV 2.0739566 keV 3.0968054 mm 7.1557988 m World muIoni - 286 10.255977 cm -2.7853734 m -2.45092 m 5.6292919 MeV 6.6416702 keV 1.0699864 cm 7.1664986 m World muIoni - 287 10.264436 cm -2.7907602 m -2.4518141 m 5.6239991 MeV 5.2927854 keV 5.4611782 mm 7.1719598 m World muIoni - 288 10.281313 cm -2.8001822 m -2.4534239 m 5.6140556 MeV 6.8226677 keV 9.5601231 mm 7.1815199 m World muIoni - 289 10.309873 cm -2.8187082 m -2.4564309 m 5.5934898 MeV 18.760818 keV 1.8770903 cm 7.2002908 m World muIoni - 290 10.311475 cm -2.8197826 m -2.4566148 m 5.5919441 MeV 299.703 eV 1.090212 mm 7.201381 m World muIoni - 291 10.316799 cm -2.8232701 m -2.457214 m 5.5836026 MeV 3.3885618 keV 3.5389497 mm 7.20492 m World muIoni - 292 10.333108 cm -2.8371103 m -2.4596584 m 5.5681319 MeV 11.688441 keV 1.4055524 cm 7.2189755 m World muIoni - 293 10.350397 cm -2.8466521 m -2.4613315 m 5.557159 MeV 8.5058153 keV 9.6890262 mm 7.2286645 m World muIoni - 294 10.351543 cm -2.8472157 m -2.4614301 m 5.5566534 MeV 505.575 eV 572.25463 um 7.2292368 m World muIoni - 295 10.355983 cm -2.8493993 m -2.4618123 m 5.5534157 MeV 1.9358604 keV 2.217224 mm 7.231454 m World muIoni - 296 10.356821 cm -2.8498346 m -2.4618881 m 5.552174 MeV 156.31133 eV 441.93708 um 7.231896 m World muIoni - 297 10.375715 cm -2.8578707 m -2.4632535 m 5.5426698 MeV 7.600962 keV 8.1536322 mm 7.2400496 m World muIoni - 298 10.428155 cm -2.8766181 m -2.4663611 m 5.5228749 MeV 18.709745 keV 1.9010848 cm 7.2590604 m World muIoni - 299 10.47177 cm -2.8989387 m -2.4700193 m 5.4887537 MeV 23.183393 keV 2.2623084 cm 7.2816835 m World muIoni - 300 10.48892 cm -2.9078256 m -2.4713441 m 5.4807655 MeV 6.9863977 keV 8.9867756 mm 7.2906703 m World muIoni - 301 10.502113 cm -2.9191333 m -2.4730171 m 5.4637204 MeV 15.248478 keV 1.1431656 cm 7.302102 m World muIoni - 302 10.520718 cm -2.9332094 m -2.4751999 m 5.4511276 MeV 10.907378 keV 1.4245841 cm 7.3163478 m World muIoni - 303 10.524436 cm -2.9397058 m -2.4761525 m 5.4440049 MeV 5.9136649 keV 6.565962 mm 7.3229138 m World muIoni - 304 10.524745 cm -2.9401812 m -2.4762239 m 5.4438095 MeV 195.39052 eV 480.71161 um 7.3233945 m World muIoni - 305 10.525877 cm -2.9417079 m -2.476458 m 5.437143 MeV 736.72851 eV 1.5445848 mm 7.3249391 m World muIoni - 306 10.528712 cm -2.9458539 m -2.4770919 m 5.4275301 MeV 3.639312 keV 4.1943314 mm 7.3291334 m World muIoni - 307 10.536185 cm -2.9558698 m -2.4786212 m 5.4157085 MeV 8.3235195 keV 1.0132339 cm 7.3392657 m World muIoni - 308 10.54017 cm -2.9593779 m -2.479154 m 5.4110107 MeV 3.084413 keV 3.5485972 mm 7.3428143 m World muIoni - 309 10.54264 cm -2.9621071 m -2.4795665 m 5.4072893 MeV 2.6769958 keV 2.7603157 mm 7.3455746 m World muIoni - 310 10.544405 cm -2.9640341 m -2.4798581 m 5.4047646 MeV 1.3057456 keV 1.9489937 mm 7.3475236 m World muIoni - 311 10.546203 cm -2.9658537 m -2.4801361 m 5.4018278 MeV 1.1962514 keV 1.8407874 mm 7.3493644 m World muIoni - 312 10.556397 cm -2.9748394 m -2.4815058 m 5.3897949 MeV 8.4443595 keV 9.0901248 mm 7.3584545 m World muIoni - 313 10.560404 cm -2.9808529 m -2.4824087 m 5.3806164 MeV 6.4228978 keV 6.0810887 mm 7.3645356 m World muIoni - 314 10.573246 cm -2.9910007 m -2.4839513 m 5.368427 MeV 10.729397 keV 1.0265273 cm 7.3748009 m World muIoni - 315 10.573454 cm -2.9911769 m -2.4839778 m 5.3665398 MeV 68.00408 eV 178.23443 um 7.3749791 m World muIoni - 316 10.588052 cm -3.004238 m -2.4859635 m 5.3517784 MeV 12.849537 keV 1.3212104 cm 7.3881912 m World muIoni - 317 10.600719 cm -3.0212532 m -2.4884632 m 5.334153 MeV 15.831015 keV 1.7198645 cm 7.4053899 m World muIoni - 318 10.612002 cm -3.037379 m -2.4907751 m 5.3121167 MeV 17.090569 keV 1.6291341 cm 7.4216812 m World muIoni - 319 10.617446 cm -3.043087 m -2.4916143 m 5.3028088 MeV 3.3867196 keV 5.7696854 mm 7.4274509 m World muIoni - 320 10.618415 cm -3.0437906 m -2.4917199 m 5.2998542 MeV 1.1088832 keV 711.51276 um 7.4281624 m World muIoni - 321 10.621514 cm -3.0461578 m -2.4920736 m 5.2949052 MeV 1.7447915 keV 2.393691 mm 7.4305561 m World muIoni - 322 10.624598 cm -3.0488034 m -2.4924673 m 5.2906633 MeV 1.977493 keV 2.6748726 mm 7.433231 m World muIoni - 323 10.625042 cm -3.0492138 m -2.492528 m 5.2899816 MeV 681.71059 eV 414.95253 um 7.4336459 m World muIoni - 324 10.626389 cm -3.0504696 m -2.4927131 m 5.2844988 MeV 845.34126 eV 1.2694084 mm 7.4349154 m World muIoni - 325 10.632138 cm -3.0563646 m -2.4935905 m 5.2757679 MeV 5.5914289 keV 5.9602541 mm 7.4408756 m World muIoni - 326 10.644431 cm -3.0699621 m -2.4955753 m 5.2369003 MeV 14.670741 keV 1.3742305 cm 7.4546179 m World muIoni - 327 10.661213 cm -3.0778195 m -2.4966839 m 5.2238103 MeV 8.9133534 keV 7.9370532 mm 7.462555 m World muIoni - 328 10.665007 cm -3.0795499 m -2.4969344 m 5.2209798 MeV 1.474157 keV 1.7488973 mm 7.4643039 m World muIoni - 329 10.693287 cm -3.0910169 m -2.4986074 m 5.2022578 MeV 11.770401 keV 1.1591953 cm 7.4758958 m World muIoni - 330 10.693413 cm -3.0910732 m -2.4986151 m 5.2022578 MeV 0 eV 56.855666 um 7.4759527 m World muIoni - 331 10.701651 cm -3.0947541 m -2.4991183 m 5.187183 MeV 3.6604547 keV 3.7160862 mm 7.4796688 m World muIoni - 332 10.733903 cm -3.110957 m -2.501356 m 5.1745537 MeV 11.15228 keV 1.6360133 cm 7.4960289 m World muIoni - 333 10.737379 cm -3.1123216 m -2.501544 m 5.1720561 MeV 2.4975836 keV 1.3779599 mm 7.4974069 m World muIoni - 334 10.856931 cm -3.1607939 m -2.5082515 m 5.1258036 MeV 43.928384 keV 4.8951855 cm 7.5463587 m World muIoni - 335 10.880303 cm -3.168731 m -2.5093469 m 5.1171988 MeV 7.5996578 keV 8.015806 mm 7.5543745 m World muIoni - 336 10.889786 cm -3.1719124 m -2.509774 m 5.1128964 MeV 4.302474 keV 3.2113116 mm 7.5575858 m World muIoni - 337 10.91336 cm -3.1797945 m -2.5107946 m 5.1041412 MeV 6.6249691 keV 7.9514668 mm 7.5655373 m World muIoni - 338 10.933216 cm -3.1872275 m -2.5117153 m 5.0942391 MeV 9.9020805 keV 7.492648 mm 7.5730299 m World muIoni - 339 10.944904 cm -3.1940788 m -2.5125817 m 5.047158 MeV 8.0695696 keV 6.9068826 mm 7.5799368 m World muIoni - 340 10.952211 cm -3.1985094 m -2.5131621 m 5.0396147 MeV 5.6926936 keV 4.4690103 mm 7.5844058 m World muIoni - 341 10.964016 cm -3.2048288 m -2.5139951 m 5.0328685 MeV 6.7462289 keV 6.3752309 mm 7.5907811 m World muIoni - 342 11.28696 cm -3.2270597 m -2.5156997 m 5.0111615 MeV 18.891121 keV 2.253264 cm 7.6133137 m World muIoni - 343 11.291337 cm -3.2273796 m -2.5157228 m 4.9925346 MeV 345.66606 eV 323.68609 um 7.6136374 m World muIoni - 344 11.574864 cm -3.2485259 m -2.5171884 m 4.9726076 MeV 19.927004 keV 2.138635 cm 7.6350237 m World muIoni - 345 11.629095 cm -3.252741 m -2.5174859 m 4.9657108 MeV 5.1973288 keV 4.2602189 mm 7.639284 m World muIoni - 346 11.817149 cm -3.2672754 m -2.5184787 m 4.9523859 MeV 11.772125 keV 1.4689402 cm 7.6539734 m World muIoni - 347 12.016276 cm -3.2820508 m -2.5193663 m 4.9384255 MeV 13.960364 keV 1.4935684 cm 7.668909 m World muIoni - 348 12.052651 cm -3.2848023 m -2.5195287 m 4.9336662 MeV 2.2156377 keV 2.7802133 mm 7.6716893 m World muIoni - 349 12.098201 cm -3.2882699 m -2.5197219 m 4.9292288 MeV 3.0378532 keV 3.502761 mm 7.675192 m World muIoni - 350 12.118804 cm -3.2898373 m -2.5198069 m 4.9267438 MeV 1.2542065 keV 1.5831388 mm 7.6767752 m World muIoni - 351 12.164507 cm -3.2932917 m -2.5199947 m 4.9216668 MeV 3.728557 keV 3.4895322 mm 7.6802647 m World muIoni - 352 12.24668 cm -3.299553 m -2.5203094 m 4.9110397 MeV 7.6974574 keV 6.3229355 mm 7.6865876 m World muIoni - 353 12.381249 cm -3.3097645 m -2.5208378 m 4.8994641 MeV 10.523846 keV 1.0313472 cm 7.6969011 m World muIoni - 354 12.39871 cm -3.3110838 m -2.5209008 m 4.8345944 MeV 1.0733952 keV 1.3322998 mm 7.6982334 m World muIoni - 355 12.764408 cm -3.3378573 m -2.522168 m 4.8062511 MeV 26.810667 keV 2.7052788 cm 7.7252862 m World muIoni - 356 12.839535 cm -3.3430972 m -2.5223899 m 4.7996449 MeV 5.1052636 keV 5.2980878 mm 7.7305843 m World muIoni - 357 12.992365 cm -3.353749 m -2.5229015 m 4.7849748 MeV 13.486571 keV 1.0773167 cm 7.7413574 m World muIoni - 358 13.124468 cm -3.3620361 m -2.5233074 m 4.7652082 MeV 7.902739 keV 8.4016654 mm 7.7497591 m World muIoni - 359 13.392063 cm -3.3790794 m -2.5240467 m 4.7439649 MeV 17.918742 keV 1.7268298 cm 7.7670274 m World muIoni - 360 13.804443 cm -3.4057809 m -2.5250567 m 4.7140198 MeV 29.945075 keV 2.7038015 cm 7.7940654 m World muIoni - 361 13.909422 cm -3.4131052 m -2.5254022 m 4.7048734 MeV 5.4329218 keV 7.4072846 mm 7.8014727 m World muIoni - 362 13.942768 cm -3.4154159 m -2.5255092 m 4.6996055 MeV 3.788347 keV 2.3370345 mm 7.8038097 m World muIoni - 363 13.97236 cm -3.4174885 m -2.5256051 m 4.6955028 MeV 2.8548682 keV 2.0958322 mm 7.8059056 m World muIoni - 364 13.997536 cm -3.4192104 m -2.5256812 m 4.6908177 MeV 1.5201094 keV 1.7419082 mm 7.8076475 m World muIoni - 365 14.185923 cm -3.4323277 m -2.5262746 m 4.6770064 MeV 12.762846 keV 1.3265324 cm 7.8209128 m World muIoni - 366 14.368591 cm -3.4455037 m -2.5268463 m 4.6665081 MeV 10.49833 keV 1.3314619 cm 7.8342274 m World muIoni - 367 14.399533 cm -3.4477634 m -2.5269491 m 4.6597061 MeV 2.5805523 keV 2.2830327 mm 7.8365105 m World muIoni - 368 14.446802 cm -3.4510764 m -2.527091 m 4.653911 MeV 2.86466 keV 3.3496191 mm 7.8398601 m World muIoni - 369 14.462021 cm -3.4521415 m -2.5271389 m 4.6523603 MeV 555.91426 eV 1.0769695 mm 7.840937 m World muIoni - 370 14.63471 cm -3.4642351 m -2.52767 m 4.5727753 MeV 15.853807 keV 1.222804 cm 7.8531651 m World muIoni - 371 14.675946 cm -3.4672837 m -2.5277931 m 4.5705719 MeV 2.2034095 keV 3.0788484 mm 7.8562439 m World muIoni - 372 14.869003 cm -3.4817179 m -2.5284767 m 4.5456043 MeV 23.726994 keV 1.4579044 cm 7.870823 m World muIoni - 373 14.902891 cm -3.4843781 m -2.5286169 m 4.541545 MeV 4.0593116 keV 2.6852969 mm 7.8735083 m World muIoni - 374 14.986275 cm -3.4911285 m -2.5289902 m 4.5328497 MeV 5.9202246 keV 6.8120479 mm 7.8803203 m World muIoni - 375 15.041327 cm -3.4960143 m -2.5292553 m 4.5230952 MeV 4.0792256 keV 4.9238657 mm 7.8852442 m World muIoni - 376 15.348079 cm -3.5237105 m -2.5308504 m 4.4057461 MeV 30.009163 keV 2.7912433 cm 7.9131566 m World muIoni - 377 15.364793 cm -3.5250889 m -2.5309288 m 4.3972601 MeV 2.0910494 keV 1.3906905 mm 7.9145473 m World muIoni - 378 15.618864 cm -3.5467122 m -2.5322136 m 4.3732328 MeV 22.02996 keV 2.181072 cm 7.936358 m World muIoni - 379 15.731306 cm -3.5561383 m -2.5327938 m 4.3598591 MeV 10.169483 keV 9.5107449 mm 7.9458688 m World muIoni - 380 15.81043 cm -3.5630522 m -2.5331969 m 4.3474324 MeV 8.8497212 keV 6.9707758 mm 7.9528395 m World muIoni - 381 15.862558 cm -3.5675114 m -2.5334622 m 4.3417441 MeV 4.2952489 keV 4.4973744 mm 7.9573369 m World muIoni - 382 15.932939 cm -3.5734731 m -2.5338087 m 4.3336204 MeV 5.6881593 keV 6.0132153 mm 7.9633501 m World muIoni - 383 16.313811 cm -3.6052767 m -2.5355323 m 4.3043699 MeV 28.014739 keV 3.2078987 cm 7.9954291 m World muIoni - 384 16.351368 cm -3.6082935 m -2.5357644 m 4.2999975 MeV 1.8560407 keV 3.0491265 mm 7.9984782 m World muIoni - 385 16.41709 cm -3.6131206 m -2.5361706 m 4.2954131 MeV 4.5844037 keV 4.888605 mm 8.0033669 m World muIoni - 386 16.506986 cm -3.6197458 m -2.5367243 m 4.2792596 MeV 6.8046676 keV 6.7088531 mm 8.0100757 m World muIoni - 387 16.50916 cm -3.6199317 m -2.5367385 m 4.2774664 MeV 323.2947 eV 187.70531 um 8.0102634 m World muIoni - 388 16.602609 cm -3.6292872 m -2.5374651 m 4.2659672 MeV 10.344419 keV 9.4301823 mm 8.0196936 m World muIoni - 389 16.671888 cm -3.6365191 m -2.5380646 m 4.2565043 MeV 8.456334 keV 7.2898036 mm 8.0269834 m World muIoni - 390 16.753494 cm -3.644568 m -2.5387522 m 4.2467734 MeV 9.7308743 keV 8.1194496 mm 8.0351028 m World muIoni - 391 16.769773 cm -3.6463363 m -2.5389083 m 4.238442 MeV 1.44619 keV 1.7825922 mm 8.0368854 m World muIoni - 392 16.790806 cm -3.6486696 m -2.5390956 m 4.2327718 MeV 4.3224598 keV 2.3502864 mm 8.0392357 m World muIoni - 393 17.009004 cm -3.6733069 m -2.5410223 m 4.2008923 MeV 30.165146 keV 2.4809756 cm 8.0640455 m World muIoni - 394 17.085928 cm -3.6834011 m -2.5416253 m 4.1892091 MeV 10.614388 keV 1.0141664 cm 8.0741871 m World muIoni - 395 17.117228 cm -3.6872738 m -2.541832 m 4.1853663 MeV 3.8428305 keV 3.890821 mm 8.078078 m World muIoni - 396 17.122232 cm -3.6878897 m -2.5418644 m 4.1851214 MeV 244.82446 eV 618.78472 um 8.0786968 m World muIoni - 397 17.178937 cm -3.6947861 m -2.5422333 m 4.1741025 MeV 8.7947376 keV 6.9295906 mm 8.0856263 m World muIoni - 398 17.201165 cm -3.6973216 m -2.542365 m 4.1681751 MeV 4.3436207 keV 2.548644 mm 8.088175 m World muIoni - 399 17.288092 cm -3.7078636 m -2.5429004 m 4.1552965 MeV 11.783533 keV 1.0591404 cm 8.0987664 m World muIoni - 400 17.351564 cm -3.7160706 m -2.5432762 m 4.1469455 MeV 8.3509822 keV 8.2402826 mm 8.1070067 m World muIoni - 401 17.377615 cm -3.7192178 m -2.5434073 m 4.143572 MeV 2.3049094 keV 3.1606891 mm 8.1101674 m World muIoni - 402 17.390481 cm -3.7207476 m -2.5434731 m 4.1338966 MeV 1.4023435 keV 1.5365701 mm 8.1117039 m World muIoni - 403 17.404757 cm -3.7224646 m -2.5435427 m 4.133305 MeV 591.57548 eV 1.7243816 mm 8.1134283 m World muIoni - 404 17.405413 cm -3.7225439 m -2.5435458 m 4.1321193 MeV 0 eV 79.550652 um 8.1135079 m World muIoni - 405 17.45074 cm -3.7280702 m -2.5437645 m 4.1243954 MeV 7.7238594 keV 5.5492379 mm 8.1190571 m World muIoni - 406 17.452725 cm -3.7283045 m -2.5437733 m 4.122042 MeV 182.02208 eV 235.31943 um 8.1192924 m World muIoni - 407 17.500191 cm -3.7334129 m -2.5439555 m 4.1138412 MeV 8.2007855 keV 5.1339167 mm 8.1244263 m World muIoni - 408 17.50252 cm -3.733652 m -2.543964 m 4.1070967 MeV 220.44604 eV 240.37057 um 8.1246667 m World muIoni - 409 17.549484 cm -3.7383599 m -2.5441352 m 4.100615 MeV 6.4816625 keV 4.734416 mm 8.1294011 m World muIoni - 410 17.601117 cm -3.7436442 m -2.5443348 m 4.0930899 MeV 4.3401781 keV 5.3131878 mm 8.1347143 m World muIoni - 411 17.616427 cm -3.7451924 m -2.5443973 m 4.0809061 MeV 2.5955009 keV 1.5570742 mm 8.1362714 m World muIoni - 412 17.618848 cm -3.7454337 m -2.5444063 m 4.0775735 MeV 205.91879 eV 242.62883 um 8.136514 m World muIoni - 413 17.754056 cm -3.7586855 m -2.5449129 m 4.0637993 MeV 13.77422 keV 1.3330566 cm 8.1498446 m World muIoni - 414 17.757491 cm -3.7590337 m -2.5449271 m 4.0621625 MeV 104.51375 eV 350.16785 um 8.1501948 m World muIoni - 415 17.791386 cm -3.762474 m -2.5450658 m 4.0570236 MeV 3.6947294 keV 3.459718 mm 8.1536545 m World muIoni - 416 17.871816 cm -3.7701053 m -2.5453268 m 4.0510844 MeV 5.9391661 keV 7.6781285 mm 8.1613326 m World muIoni - 417 17.905313 cm -3.7730118 m -2.5454071 m 4.04612 MeV 3.2061575 keV 2.9268374 mm 8.1642594 m World muIoni - 418 17.968615 cm -3.7787242 m -2.5455739 m 4.038563 MeV 7.5570525 keV 5.7498607 mm 8.1700093 m World muIoni - 419 18.235731 cm -3.8030258 m -2.5462505 m 4.007685 MeV 29.821757 keV 2.4458522 cm 8.1944678 m World muIoni - 420 18.353081 cm -3.813352 m -2.5465747 m 3.9913505 MeV 13.896717 keV 1.0397875 cm 8.2048657 m World muIoni - 421 18.495633 cm -3.8259677 m -2.5470974 m 3.9755477 MeV 15.802837 keV 1.2707035 cm 8.2175727 m World muIoni - 422 18.624332 cm -3.8374808 m -2.5477578 m 3.9637952 MeV 9.9547188 keV 1.160388 cm 8.2291766 m World muIoni - 423 18.658444 cm -3.8404025 m -2.5479355 m 3.9598157 MeV 2.8832368 keV 2.9469131 mm 8.2321235 m World muIoni - 424 18.708139 cm -3.8447513 m -2.5482152 m 3.9552988 MeV 3.2751898 keV 4.3860613 mm 8.2365096 m World muIoni - 425 18.796292 cm -3.8521409 m -2.5486359 m 3.9471976 MeV 6.512839 keV 7.4540196 mm 8.2439636 m World muIoni - 426 18.798689 cm -3.8523495 m -2.5486489 m 3.9471073 MeV 90.267082 eV 210.33578 um 8.2441739 m World muIoni - 427 18.867899 cm -3.858366 m -2.5490258 m 3.938563 MeV 5.9961364 keV 6.0679848 mm 8.2502419 m World muIoni - 428 19.071714 cm -3.8753871 m -2.5500557 m 3.911686 MeV 20.972743 keV 1.7174099 cm 8.267416 m World muIoni - 429 19.151157 cm -3.882224 m -2.5504137 m 3.9045072 MeV 4.8372538 keV 6.8923223 mm 8.2743083 m World muIoni - 430 19.224868 cm -3.8884816 m -2.5507435 m 3.8944946 MeV 10.012665 keV 6.3095686 mm 8.2806179 m World muIoni - 431 19.295408 cm -3.8941103 m -2.5510122 m 3.8863514 MeV 7.0178554 keV 5.6791066 mm 8.286297 m World muIoni - 432 19.335688 cm -3.8973154 m -2.5511587 m 3.8801981 MeV 4.023771 keV 3.2336954 mm 8.2895307 m World muIoni - 433 19.388895 cm -3.901692 m -2.551336 m 3.875546 MeV 4.6520646 keV 4.4123522 mm 8.2939431 m World muIoni - 434 19.420876 cm -3.9044702 m -2.5514668 m 3.8698647 MeV 4.0667926 keV 2.7996493 mm 8.2967427 m World muIoni - 435 19.573485 cm -3.9175004 m -2.5520522 m 3.852631 MeV 17.233701 keV 1.3132624 cm 8.3098753 m World muIoni - 436 19.667853 cm -3.9255368 m -2.5524588 m 3.8407127 MeV 8.9973252 keV 8.1019825 mm 8.3179773 m World muIoni - 437 19.705901 cm -3.9286752 m -2.552636 m 3.8353559 MeV 4.2859564 keV 3.1663178 mm 8.3211436 m World muIoni - 438 19.865879 cm -3.9424181 m -2.5533899 m 3.814267 MeV 15.83147 keV 1.3856671 cm 8.3350003 m World muIoni - 439 19.983252 cm -3.9533618 m -2.5539302 m 3.7995441 MeV 14.722888 keV 1.1019949 cm 8.3460203 m World muIoni - 440 20.018373 cm -3.9566928 m -2.5541148 m 3.7919835 MeV 4.9393838 keV 3.3545019 mm 8.3493748 m World muIoni - 441 20.125701 cm -3.9667147 m -2.5546563 m 3.7834025 MeV 8.5809925 keV 1.0093949 cm 8.3594687 m World muIoni - 442 20.212733 cm -3.9746923 m -2.5550572 m 3.7638198 MeV 12.437771 keV 8.0350674 mm 8.3675038 m World muIoni - 443 20.326276 cm -3.9849212 m -2.5555085 m 3.745849 MeV 17.970828 keV 1.0301877 cm 8.3778057 m World muIoni - 444 20.32841 cm -3.9851084 m -2.5555163 m 3.7435051 MeV 1.3459412 keV 188.53885 um 8.3779942 m World muIoni - 445 20.452136 cm -3.9959871 m -2.5559595 m 3.7304536 MeV 12.038399 keV 1.0958023 cm 8.3889522 m World muIoni - 446 20.847364 cm -4.0298536 m -2.557692 m 3.6890367 MeV 39.304291 keV 3.4143122 cm 8.4230953 m World muIoni - 447 20.892357 cm -4.0335584 m -2.5579014 m 3.6855506 MeV 3.4860472 keV 3.7379942 mm 8.4268333 m World muIoni - 448 20.916539 cm -4.0356854 m -2.5579922 m 3.6833148 MeV 2.2358417 keV 2.1426168 mm 8.4289759 m World muIoni - 449 20.941925 cm -4.0380244 m -2.5580911 m 3.6761211 MeV 4.746922 keV 2.3548705 mm 8.4313308 m World muIoni - 450 20.966791 cm -4.0404043 m -2.5581968 m 3.6749456 MeV 1.1755436 keV 2.3951425 mm 8.433726 m World muIoni - 451 20.972901 cm -4.0409896 m -2.5582238 m 3.6742989 MeV 646.7174 eV 589.13858 um 8.4343151 m World muIoni - 452 21.079318 cm -4.0512554 m -2.5586914 m 3.6567209 MeV 13.395851 keV 1.0331607 cm 8.4446467 m World muIoni - 453 21.130274 cm -4.0568815 m -2.5589872 m 3.6450482 MeV 5.9727189 keV 5.6569463 mm 8.4503037 m World muIoni - 454 21.15878 cm -4.0603136 m -2.5591773 m 3.6373457 MeV 5.4787809 keV 3.4491575 mm 8.4537528 m World muIoni - 455 21.16804 cm -4.0615607 m -2.5592428 m 3.6360168 MeV 1.3288928 keV 1.2522145 mm 8.455005 m World muIoni - 456 21.351913 cm -4.0862372 m -2.5605128 m 3.6044633 MeV 30.19334 keV 2.477905 cm 8.4797841 m World muIoni - 457 21.373829 cm -4.0924533 m -2.5608112 m 3.5937682 MeV 10.695097 keV 6.227158 mm 8.4860112 m World muIoni - 458 21.416132 cm -4.1035771 m -2.5613289 m 3.5458495 MeV 13.498068 keV 1.1144127 cm 8.4971554 m World muIoni - 459 21.469756 cm -4.1182482 m -2.562066 m 3.5240509 MeV 19.678754 keV 1.4699913 cm 8.5118553 m World muIoni - 460 21.474013 cm -4.1191532 m -2.5621171 m 3.5194148 MeV 926.11661 eV 907.4234 um 8.5127627 m World muIoni - 461 21.508928 cm -4.1265786 m -2.5625594 m 3.5102582 MeV 9.1566241 keV 7.4469329 mm 8.5202096 m World muIoni - 462 21.521395 cm -4.1289175 m -2.5627194 m 3.5047613 MeV 4.2050842 keV 2.3476086 mm 8.5225572 m World muIoni - 463 21.531353 cm -4.1308077 m -2.5628521 m 3.5000267 MeV 2.3350858 keV 1.8975221 mm 8.5244548 m World muIoni - 464 21.622595 cm -4.1482263 m -2.5640263 m 3.4750166 MeV 25.010143 keV 1.7482741 cm 8.5419375 m World muIoni - 465 21.642903 cm -4.1519262 m -2.5642709 m 3.4654155 MeV 2.3254616 keV 3.7134892 mm 8.545651 m World muIoni - 466 21.650906 cm -4.1534576 m -2.5643628 m 3.4635371 MeV 1.8784227 keV 1.5362497 mm 8.5471872 m World muIoni - 467 21.660683 cm -4.1553631 m -2.5644734 m 3.4525032 MeV 3.4921688 keV 1.9113132 mm 8.5490986 m World muIoni - 468 21.66785 cm -4.1570564 m -2.5645814 m 3.4509091 MeV 1.5941775 keV 1.6982555 mm 8.5507968 m World muIoni - 469 21.688554 cm -4.1623496 m -2.5649105 m 3.4414195 MeV 8.074346 keV 5.3074597 mm 8.5561043 m World muIoni - 470 21.701564 cm -4.1655305 m -2.565124 m 3.433665 MeV 3.8085039 keV 3.1907727 mm 8.559295 m World muIoni - 471 21.721573 cm -4.1710395 m -2.5654816 m 3.417535 MeV 10.619302 keV 5.5242456 mm 8.5648193 m World muIoni - 472 21.743583 cm -4.1797262 m -2.5660248 m 3.4012896 MeV 15.204759 keV 8.7066185 mm 8.5735259 m World muIoni - 473 21.75291 cm -4.1825761 m -2.5661773 m 3.393017 MeV 6.5180449 keV 2.8555179 mm 8.5763814 m World muIoni - 474 21.769544 cm -4.1879672 m -2.5664586 m 3.3840072 MeV 7.7797782 keV 5.4010716 mm 8.5817825 m World muIoni - 475 21.770354 cm -4.1882771 m -2.5664753 m 3.3721635 MeV 110.88594 eV 310.44594 um 8.5820929 m World muIoni - 476 21.772855 cm -4.1891108 m -2.5665198 m 3.3679867 MeV 1.0244346 keV 835.28076 um 8.5829282 m World muIoni - 477 21.777218 cm -4.1905475 m -2.5665939 m 3.362325 MeV 4.6262828 keV 1.4392517 mm 8.5843675 m World muIoni - 478 21.778978 cm -4.1911215 m -2.5666238 m 3.360434 MeV 655.06865 eV 575.06766 um 8.5849425 m World muIoni - 479 21.779172 cm -4.1911813 m -2.5666268 m 3.360434 MeV 0 eV 59.949938 um 8.5850025 m World muIoni - 480 21.792965 cm -4.195407 m -2.5668443 m 3.3537449 MeV 6.6891282 keV 4.2335717 mm 8.5892361 m World muIoni - 481 21.820461 cm -4.2025674 m -2.5671928 m 3.3075484 MeV 10.15346 keV 7.1742331 mm 8.5964103 m World muIoni - 482 21.85285 cm -4.2104911 m -2.5675524 m 3.2907885 MeV 11.742299 keV 7.938591 mm 8.6043489 m World muIoni - 483 21.853023 cm -4.2105284 m -2.5675535 m 3.2893205 MeV 62.46414 eV 37.368171 um 8.6043863 m World muIoni - 484 21.877757 cm -4.2158992 m -2.5677033 m 3.2774725 MeV 10.46486 keV 5.3787031 mm 8.609765 m World muIoni - 485 21.878894 cm -4.2161725 m -2.5677098 m 3.2774482 MeV 24.250026 eV 273.60939 um 8.6100386 m World muIoni - 486 21.887118 cm -4.2181587 m -2.5677568 m 3.2726481 MeV 3.3568266 keV 1.9884306 mm 8.612027 m World muIoni - 487 21.887443 cm -4.2182365 m -2.5677584 m 3.2708062 MeV 0 eV 77.874963 um 8.6121049 m World muIoni - 488 21.89733 cm -4.2205091 m -2.5678006 m 3.2667461 MeV 2.8607773 keV 2.2751674 mm 8.61438 m World muIoni - 489 21.945757 cm -4.2307235 m -2.5680028 m 3.2475333 MeV 16.505163 keV 1.0228143 cm 8.6246082 m World muIoni - 490 21.948152 cm -4.2312154 m -2.5680141 m 3.2446197 MeV 594.70761 eV 492.64871 um 8.6251008 m World muIoni - 491 21.960311 cm -4.2336415 m -2.5680711 m 3.24153 MeV 1.7139664 keV 2.4298096 mm 8.6275306 m World muIoni - 492 21.986628 cm -4.2395236 m -2.5682111 m 3.2295508 MeV 5.5579107 keV 5.8896868 mm 8.6334203 m World muIoni - 493 21.993515 cm -4.2411624 m -2.5682456 m 3.2258453 MeV 3.7055029 keV 1.6406905 mm 8.635061 m World muIoni - 494 22.031751 cm -4.2502471 m -2.5684681 m 3.211715 MeV 12.685159 keV 9.0956386 mm 8.6441567 m World muIoni - 495 22.049439 cm -4.2548397 m -2.5685161 m 3.2055989 MeV 6.1160948 keV 4.5962767 mm 8.6487529 m World muIoni - 496 22.087429 cm -4.2644024 m -2.5686586 m 3.1858708 MeV 18.375874 keV 9.5715931 mm 8.6583245 m World muIoni - 497 22.087642 cm -4.26448 m -2.56866 m 3.1856749 MeV 195.87674 eV 77.652489 um 8.6584022 m World muIoni - 498 22.093714 cm -4.2666911 m -2.5687008 m 3.182168 MeV 2.3015432 keV 2.212272 mm 8.6606145 m World muIoni - 499 22.114077 cm -4.2735047 m -2.5687934 m 3.1716042 MeV 8.2197282 keV 6.8174098 mm 8.6674319 m World muIoni - 500 22.12007 cm -4.2759936 m -2.5688331 m 3.1648869 MeV 5.4915877 keV 2.4899884 mm 8.6699219 m World muIoni - 501 22.121265 cm -4.2764765 m -2.5688408 m 3.164234 MeV 652.88906 eV 483.1165 um 8.670405 m World muIoni - 502 22.138359 cm -4.2834116 m -2.5689535 m 3.1530992 MeV 10.127897 keV 6.9382185 mm 8.6773432 m World muIoni - 503 22.139014 cm -4.2837094 m -2.5689577 m 3.1515499 MeV 541.86501 eV 297.96764 um 8.6776412 m World muIoni - 504 22.173566 cm -4.3000062 m -2.5691908 m 3.1265921 MeV 23.781967 keV 1.6302922 cm 8.6939441 m World muIoni - 505 22.176902 cm -4.3020041 m -2.5692134 m 3.1217975 MeV 3.7585314 keV 1.9983165 mm 8.6959424 m World muIoni - 506 22.177539 cm -4.3023876 m -2.5692171 m 3.120217 MeV 355.34327 eV 383.58561 um 8.696326 m World muIoni - 507 22.190589 cm -4.3103934 m -2.569309 m 3.0752751 MeV 11.572973 keV 8.0075658 mm 8.7043335 m World muIoni - 508 22.192337 cm -4.3123434 m -2.5693279 m 3.0686979 MeV 1.4410664 keV 1.9501065 mm 8.7062837 m World muIoni - 509 22.193462 cm -4.3142748 m -2.569357 m 3.065413 MeV 1.9607032 keV 1.9316638 mm 8.7082153 m World muIoni - 510 22.195379 cm -4.3163503 m -2.5693837 m 3.0622124 MeV 2.1499427 keV 2.0758373 mm 8.7102912 m World muIoni - 511 22.195668 cm -4.3169876 m -2.5693938 m 3.0615494 MeV 662.91293 eV 637.36855 um 8.7109285 m World muIoni - 512 22.205071 cm -4.3314703 m -2.5696148 m 3.0408325 MeV 19.652499 keV 1.4485397 cm 8.7254139 m World muIoni - 513 22.204718 cm -4.331892 m -2.5696228 m 3.0383707 MeV 1.1671563 keV 421.77632 um 8.7258357 m World muIoni - 514 22.193249 cm -4.3445135 m -2.5698576 m 3.0206086 MeV 17.762064 keV 1.2624727 cm 8.7384604 m World muIoni - 515 22.156718 cm -4.3595146 m -2.5703139 m 2.9876667 MeV 23.834947 keV 1.5013225 cm 8.7534736 m World muIoni - 516 22.139431 cm -4.3658398 m -2.5705388 m 2.9585273 MeV 9.4973011 keV 6.3316132 mm 8.7598053 m World muIoni - 517 22.133157 cm -4.3686752 m -2.5706498 m 2.9428877 MeV 5.8556784 keV 2.8382976 mm 8.7626436 m World muIoni - 518 22.100154 cm -4.384982 m -2.571304 m 2.9068477 MeV 24.259791 keV 1.6324241 cm 8.7789678 m World muIoni - 519 22.09103 cm -4.3893353 m -2.571523 m 2.9005065 MeV 6.3411716 keV 4.3598216 mm 8.7833276 m World muIoni - 520 22.08267 cm -4.3941543 m -2.5717944 m 2.8948264 MeV 4.4878581 keV 4.8273543 mm 8.788155 m World muIoni - 521 22.07492 cm -4.3989985 m -2.5720538 m 2.8723704 MeV 6.2662452 keV 4.8519059 mm 8.7930069 m World muIoni - 522 22.066678 cm -4.4029772 m -2.5722903 m 2.8658933 MeV 6.4771473 keV 3.9865954 mm 8.7969935 m World muIoni - 523 22.058013 cm -4.4080037 m -2.5726062 m 2.8492812 MeV 10.194635 keV 5.0372037 mm 8.8020307 m World muIoni - 524 22.051793 cm -4.4137658 m -2.5729616 m 2.8389779 MeV 10.303299 keV 5.7735651 mm 8.8078042 m World muIoni - 525 22.049871 cm -4.4150357 m -2.5730416 m 2.8366018 MeV 1.3386274 keV 1.2725182 mm 8.8090768 m World muIoni - 526 22.0465 cm -4.4171847 m -2.5731789 m 2.8330373 MeV 2.0331315 keV 2.1536314 mm 8.8112304 m World muIoni - 527 22.045697 cm -4.4179618 m -2.5732312 m 2.8307984 MeV 790.14863 eV 778.98208 um 8.8120094 m World muIoni - 528 22.043467 cm -4.4204553 m -2.5733961 m 2.816525 MeV 5.4808142 keV 2.498991 mm 8.8145084 m World muIoni - 529 22.031824 cm -4.4407065 m -2.5748543 m 2.7830956 MeV 33.429432 keV 2.0305675 cm 8.834814 m World muIoni - 530 22.028259 cm -4.4436294 m -2.5751248 m 2.7771972 MeV 4.1690807 keV 2.9356242 mm 8.8377497 m World muIoni - 531 22.022702 cm -4.4467878 m -2.5754347 m 2.769706 MeV 6.0395257 keV 3.1740253 mm 8.8409237 m World muIoni - 532 22.004169 cm -4.4552773 m -2.5762807 m 2.7523539 MeV 15.608679 keV 8.5338642 mm 8.8494576 m World muIoni - 533 21.998094 cm -4.4570724 m -2.5764437 m 2.7381172 MeV 4.4842555 keV 1.8035516 mm 8.8512611 m World muIoni - 534 21.979662 cm -4.4626598 m -2.5769063 m 2.7281955 MeV 8.637556 keV 5.6096578 mm 8.8568708 m World muIoni - 535 21.977749 cm -4.4632163 m -2.5769518 m 2.7206325 MeV 636.87762 eV 558.60072 um 8.8574294 m World muIoni - 536 21.961694 cm -4.4675322 m -2.5773159 m 2.7119224 MeV 8.7100677 keV 4.3342868 mm 8.8617637 m World muIoni - 537 21.94467 cm -4.471167 m -2.5776306 m 2.7038362 MeV 6.4520363 keV 3.6524101 mm 8.8654161 m World muIoni - 538 21.930315 cm -4.4745427 m -2.5779199 m 2.696288 MeV 5.063569 keV 3.3911971 mm 8.8688073 m World muIoni - 539 21.922804 cm -4.4765895 m -2.5781114 m 2.6834382 MeV 3.1350103 keV 2.0571564 mm 8.8708644 m World muIoni - 540 21.914491 cm -4.4790348 m -2.5783475 m 2.6782027 MeV 3.5990953 keV 2.4580192 mm 8.8733224 m World muIoni - 541 21.895356 cm -4.4837746 m -2.5787861 m 2.6688549 MeV 7.3240933 keV 4.7640167 mm 8.8780865 m World muIoni - 542 21.887472 cm -4.4855908 m -2.5789497 m 2.6608104 MeV 4.5161304 keV 1.8252621 mm 8.8799117 m World muIoni - 543 21.862032 cm -4.4907928 m -2.5794058 m 2.6529287 MeV 6.8521483 keV 5.2282589 mm 8.88514 m World muIoni - 544 21.858857 cm -4.4913986 m -2.5794568 m 2.6498018 MeV 1.5608049 keV 608.79006 um 8.8857488 m World muIoni - 545 21.856683 cm -4.4918003 m -2.5794902 m 2.6461048 MeV 768.62085 eV 403.6582 um 8.8861524 m World muIoni - 546 21.808335 cm -4.5003764 m -2.5802006 m 2.6248696 MeV 17.612813 keV 8.6193395 mm 8.8947718 m World muIoni - 547 21.741938 cm -4.5114366 m -2.5811903 m 2.6061916 MeV 18.678041 keV 1.1124736 cm 8.9058965 m World muIoni - 548 21.7337 cm -4.5128974 m -2.5813162 m 2.6032742 MeV 1.8035505 keV 1.4685292 mm 8.907365 m World muIoni - 549 21.680966 cm -4.5220334 m -2.5821234 m 2.5843896 MeV 17.332552 keV 9.1871358 mm 8.9165522 m World muIoni - 550 21.611531 cm -4.5347204 m -2.5832813 m 2.558138 MeV 22.95985 keV 1.2759324 cm 8.9293115 m World muIoni - 551 21.587036 cm -4.5409304 m -2.5838626 m 2.5463052 MeV 10.782583 keV 6.242076 mm 8.9355536 m World muIoni - 552 21.585912 cm -4.541308 m -2.5838934 m 2.5445008 MeV 382.70938 eV 379.11614 um 8.9359327 m World muIoni - 553 21.580957 cm -4.5429678 m -2.5840262 m 2.5399174 MeV 3.551337 keV 1.665758 mm 8.9375984 m World muIoni - 554 21.576344 cm -4.5442743 m -2.5841294 m 2.533817 MeV 3.4443284 keV 1.3114154 mm 8.9389099 m World muIoni - 555 21.566501 cm -4.5469588 m -2.5843341 m 2.5275469 MeV 5.2498765 keV 2.6941401 mm 8.941604 m World muIoni - 556 21.544398 cm -4.5525379 m -2.5846926 m 2.5137007 MeV 12.606467 keV 5.595126 mm 8.9471991 m World muIoni - 557 21.532244 cm -4.5560235 m -2.584936 m 2.505418 MeV 6.4589566 keV 3.4962364 mm 8.9506954 m World muIoni - 558 21.508981 cm -4.5622277 m -2.5853766 m 2.491585 MeV 13.833011 keV 6.2242993 mm 8.9569197 m World muIoni - 559 21.500751 cm -4.5642909 m -2.5855042 m 2.4537141 MeV 2.6060772 keV 2.0688558 mm 8.9589885 m World muIoni - 560 21.496764 cm -4.5653899 m -2.5855751 m 2.4507439 MeV 655.50271 eV 1.1019183 mm 8.9600904 m World muIoni - 561 21.487956 cm -4.5689235 m -2.5857942 m 2.4396902 MeV 9.7883279 keV 3.5416132 mm 8.963632 m World muIoni - 562 21.479543 cm -4.5723649 m -2.5859927 m 2.4266623 MeV 4.687848 keV 3.448171 mm 8.9670802 m World muIoni - 563 21.474047 cm -4.5749315 m -2.5861411 m 2.4227755 MeV 3.8867558 keV 2.5714543 mm 8.9696517 m World muIoni - 564 21.458172 cm -4.5825025 m -2.586583 m 2.4043245 MeV 13.533999 keV 7.5858307 mm 8.9772375 m World muIoni - 565 21.452895 cm -4.5850754 m -2.5866901 m 2.3978077 MeV 5.1663684 keV 2.5756938 mm 8.9798132 m World muIoni - 566 21.407255 cm -4.6035034 m -2.5874414 m 2.3621179 MeV 33.61666 keV 1.8450906 cm 8.9982641 m World muIoni - 567 21.399935 cm -4.6125403 m -2.5877982 m 2.33613 MeV 16.25489 keV 9.0446125 mm 9.0073087 m World muIoni - 568 21.399929 cm -4.6150883 m -2.5879147 m 2.3304435 MeV 3.1734451 keV 2.5506435 mm 9.0098594 m World muIoni - 569 21.399382 cm -4.6163443 m -2.5879791 m 2.323369 MeV 2.2212282 keV 1.2576884 mm 9.011117 m World muIoni - 570 21.399385 cm -4.6173096 m -2.5880313 m 2.3196509 MeV 2.5034952 keV 966.75902 um 9.0120838 m World muIoni - 571 21.398926 cm -4.6194835 m -2.5881488 m 2.3116891 MeV 5.6059995 keV 2.1770458 mm 9.0142608 m World muIoni - 572 21.398741 cm -4.6201252 m -2.5881896 m 2.3093261 MeV 1.3085863 keV 643.04093 um 9.0149039 m World muIoni - 573 21.398481 cm -4.6207339 m -2.5882273 m 2.3081595 MeV 1.1666532 keV 609.81308 um 9.0155137 m World muIoni - 574 21.397607 cm -4.6220632 m -2.5883079 m 2.3028658 MeV 2.2146748 keV 1.3318676 mm 9.0168456 m World muIoni - 575 21.394504 cm -4.6258538 m -2.5885329 m 2.2923057 MeV 9.3403138 keV 3.7974373 mm 9.020643 m World muIoni - 576 21.393837 cm -4.6272325 m -2.5886223 m 2.28498 MeV 3.0768921 keV 1.3815755 mm 9.0220246 m World muIoni - 577 21.392923 cm -4.6287489 m -2.5887184 m 2.2796608 MeV 4.1852479 keV 1.5194889 mm 9.0235441 m World muIoni - 578 21.390782 cm -4.6307445 m -2.5888472 m 2.2752762 MeV 2.6647059 keV 1.9998939 mm 9.025544 m World muIoni - 579 21.390061 cm -4.6313212 m -2.5888865 m 2.2673243 MeV 682.45244 eV 578.12821 um 9.0261221 m World muIoni - 580 21.386181 cm -4.6338178 m -2.5890535 m 2.2594594 MeV 6.6883193 keV 2.5024733 mm 9.0286246 m World muIoni - 581 21.381873 cm -4.6361366 m -2.5892002 m 2.2547856 MeV 4.6737979 keV 2.323855 mm 9.0309484 m World muIoni - 582 21.381784 cm -4.636191 m -2.5892036 m 2.2536421 MeV 43.7574 eV 54.515831 um 9.0310029 m World muIoni - 583 21.375243 cm -4.6401736 m -2.5894467 m 2.2391541 MeV 8.9740226 keV 3.9906149 mm 9.0349935 m World muIoni - 584 21.351822 cm -4.6563872 m -2.5902982 m 2.2118514 MeV 26.150918 keV 1.6239262 cm 9.0512328 m World muIoni - 585 21.351551 cm -4.6567881 m -2.5903279 m 2.2096939 MeV 700.9834 eV 402.06137 um 9.0516349 m World muIoni - 586 21.349791 cm -4.6592959 m -2.5905195 m 2.2009966 MeV 4.111964 keV 2.5151929 mm 9.0541501 m World muIoni - 587 21.34913 cm -4.659674 m -2.5905474 m 2.2005709 MeV 425.71067 eV 379.20378 um 9.0545293 m World muIoni - 588 21.343303 cm -4.6631427 m -2.5908019 m 2.192997 MeV 7.573934 keV 3.478576 mm 9.0580078 m World muIoni - 589 21.332636 cm -4.6679898 m -2.5911631 m 2.183628 MeV 9.3689682 keV 4.8617834 mm 9.0628696 m World muIoni - 590 21.329483 cm -4.6696128 m -2.5912784 m 2.1801975 MeV 3.4304627 keV 1.6274434 mm 9.0644971 m World muIoni - 591 21.324263 cm -4.6720477 m -2.5914533 m 2.17413 MeV 4.3141663 keV 2.4416976 mm 9.0669388 m World muIoni - 592 21.312955 cm -4.6773144 m -2.5918554 m 2.1605597 MeV 12.182523 keV 5.2834763 mm 9.0722222 m World muIoni - 593 21.306453 cm -4.6805786 m -2.5921065 m 2.1521292 MeV 7.4303467 keV 3.2745533 mm 9.0754968 m World muIoni - 594 21.29186 cm -4.6856584 m -2.5924879 m 2.1425666 MeV 8.4502748 keV 5.096323 mm 9.0805931 m World muIoni - 595 21.287466 cm -4.6870057 m -2.5926182 m 2.1379071 MeV 2.2130809 keV 1.3542513 mm 9.0819474 m World muIoni - 596 21.285928 cm -4.6875572 m -2.5926747 m 2.1373429 MeV 564.16358 eV 554.6743 um 9.082502 m World muIoni - 597 21.285891 cm -4.6875704 m -2.592676 m 2.1363182 MeV 17.90143 eV 13.234119 um 9.0825153 m World muIoni - 598 21.277945 cm -4.6904682 m -2.5929698 m 2.1301497 MeV 6.1684449 keV 2.9137451 mm 9.085429 m World muIoni - 599 21.277425 cm -4.6906984 m -2.5929918 m 2.1279428 MeV 111.56732 eV 231.3851 um 9.0856604 m World muIoni - 600 21.27624 cm -4.6912748 m -2.5930473 m 2.1262509 MeV 530.26261 eV 579.18264 um 9.0862396 m World muIoni - 601 21.260777 cm -4.6987551 m -2.5937461 m 2.1134065 MeV 12.844415 keV 7.5147761 mm 9.0937544 m World muIoni - 602 21.252623 cm -4.7030363 m -2.5941317 m 2.1009999 MeV 11.133309 keV 4.2993717 mm 9.0980537 m World muIoni - 603 21.238482 cm -4.7101664 m -2.5947379 m 2.0845595 MeV 12.693174 keV 7.1575437 mm 9.1052113 m World muIoni - 604 21.226248 cm -4.7159243 m -2.5951855 m 2.0635872 MeV 10.607415 keV 5.7768996 mm 9.1109882 m World muIoni - 605 21.225429 cm -4.7162449 m -2.5952198 m 2.0616355 MeV 559.58139 eV 322.4643 um 9.1113107 m World muIoni - 606 21.223797 cm -4.7169612 m -2.5952962 m 2.0587995 MeV 1.5639094 keV 720.56132 um 9.1120312 m World muIoni - 607 21.186629 cm -4.7351881 m -2.5972603 m 2.0182048 MeV 35.463094 keV 1.8338777 cm 9.13037 m World muIoni - 608 21.174622 cm -4.7424042 m -2.5981892 m 1.9771551 MeV 15.122306 keV 7.2769856 mm 9.137647 m World muIoni - 609 21.172973 cm -4.7510449 m -2.5994027 m 1.959574 MeV 16.456789 keV 8.7261065 mm 9.1463731 m World muIoni - 610 21.17347 cm -4.7525338 m -2.5995649 m 1.9519227 MeV 5.6103107 keV 1.4976791 mm 9.1478708 m World muIoni - 611 21.173538 cm -4.7527006 m -2.5995828 m 1.95036 MeV 306.46031 eV 167.80653 um 9.1480386 m World muIoni - 612 21.175688 cm -4.7567406 m -2.6000206 m 1.9358265 MeV 9.1999387 keV 4.0638091 mm 9.1521024 m World muIoni - 613 21.179337 cm -4.7600666 m -2.6003437 m 1.9156352 MeV 8.3733571 keV 3.341892 mm 9.1554443 m World muIoni - 614 21.181446 cm -4.761951 m -2.600523 m 1.912431 MeV 3.2041827 keV 1.8930507 mm 9.1573373 m World muIoni - 615 21.183215 cm -4.7635221 m -2.6006737 m 1.9038839 MeV 4.8939917 keV 1.5784521 mm 9.1589158 m World muIoni - 616 21.194738 cm -4.7703319 m -2.6013912 m 1.8893195 MeV 12.714099 keV 6.8488386 mm 9.1657646 m World muIoni - 617 21.194862 cm -4.7703998 m -2.6013981 m 1.8871308 MeV 193.37524 eV 68.199018 um 9.1658328 m World muIoni - 618 21.205262 cm -4.7759074 m -2.6019712 m 1.8746635 MeV 10.856294 keV 5.5385406 mm 9.1713713 m World muIoni - 619 21.211478 cm -4.777837 m -2.6021496 m 1.8653777 MeV 5.2228479 keV 1.9389165 mm 9.1733103 m World muIoni - 620 21.217548 cm -4.7800024 m -2.6023535 m 1.8484023 MeV 4.1283882 keV 2.1758688 mm 9.1754861 m World muIoni - 621 21.234256 cm -4.7842074 m -2.6027368 m 1.8413509 MeV 7.051353 keV 4.2257957 mm 9.1797119 m World muIoni - 622 21.242997 cm -4.786403 m -2.6029174 m 1.8347211 MeV 5.058193 keV 2.2048615 mm 9.1819168 m World muIoni - 623 21.259789 cm -4.7913196 m -2.6033178 m 1.8189748 MeV 11.437296 keV 4.9358596 mm 9.1868527 m World muIoni - 624 21.275308 cm -4.7957438 m -2.6037247 m 1.807361 MeV 10.348157 keV 4.4458152 mm 9.1912985 m World muIoni - 625 21.288058 cm -4.7988305 m -2.6040461 m 1.7979074 MeV 8.1787752 keV 3.1060405 mm 9.1944045 m World muIoni - 626 21.291006 cm -4.7995888 m -2.6041252 m 1.7938264 MeV 1.2667125 keV 762.9663 um 9.1951675 m World muIoni - 627 21.29622 cm -4.8010121 m -2.6042712 m 1.787393 MeV 3.7324399 keV 1.4317825 mm 9.1965993 m World muIoni - 628 21.298705 cm -4.8017675 m -2.6043454 m 1.7837485 MeV 3.6445 keV 759.40516 um 9.1973587 m World muIoni - 629 21.298936 cm -4.8018377 m -2.6043524 m 1.7837485 MeV 0 eV 70.544949 um 9.1974292 m World muIoni - 630 21.304386 cm -4.8034913 m -2.6045177 m 1.7787284 MeV 3.2852698 keV 1.6627673 mm 9.199092 m World muIoni - 631 21.305362 cm -4.8037225 m -2.604541 m 1.7687836 MeV 1.061295 keV 232.58103 um 9.1993246 m World muIoni - 632 21.339325 cm -4.8121375 m -2.6054223 m 1.7376719 MeV 16.870218 keV 8.4684833 mm 9.207793 m World muIoni - 633 21.345373 cm -4.814827 m -2.6057663 m 1.7297645 MeV 6.7844197 keV 2.7121801 mm 9.2105052 m World muIoni - 634 21.352778 cm -4.8184378 m -2.6061988 m 1.7144675 MeV 10.292951 keV 3.6374923 mm 9.2141427 m World muIoni - 635 21.358536 cm -4.8233748 m -2.6067897 m 1.6977593 MeV 9.4982215 keV 4.9727634 mm 9.2191155 m World muIoni - 636 21.361763 cm -4.8289378 m -2.6074381 m 1.6858289 MeV 11.930403 keV 5.6010393 mm 9.2247165 m World muIoni - 637 21.357992 cm -4.8343055 m -2.6080595 m 1.6694081 MeV 13.942529 keV 5.4039936 mm 9.2301205 m World muIoni - 638 21.351016 cm -4.8381738 m -2.6085886 m 1.6588162 MeV 7.5250684 keV 3.9050395 mm 9.2340255 m World muIoni - 639 21.345504 cm -4.843882 m -2.6093331 m 1.6426015 MeV 13.581872 keV 5.7571539 mm 9.2397827 m World muIoni - 640 21.341641 cm -4.8481807 m -2.6099934 m 1.6307781 MeV 9.5853606 keV 4.349807 mm 9.2441325 m World muIoni - 641 21.335183 cm -4.8532809 m -2.6107919 m 1.6115401 MeV 16.006309 keV 5.1629612 mm 9.2492955 m World muIoni - 642 21.325455 cm -4.8629588 m -2.612205 m 1.5869664 MeV 23.235506 keV 9.78213 mm 9.2590776 m World muIoni - 643 21.325413 cm -4.8629787 m -2.6122073 m 1.5852592 MeV 24.314398 eV 19.981213 um 9.2590976 m World muIoni - 644 21.316527 cm -4.8669486 m -2.6126749 m 1.5745361 MeV 9.5206377 keV 3.998488 mm 9.2630961 m World muIoni - 645 21.313765 cm -4.8679882 m -2.6127953 m 1.5656792 MeV 3.0699916 keV 1.0469476 mm 9.264143 m World muIoni - 646 21.312024 cm -4.8687676 m -2.6128824 m 1.5626784 MeV 1.8117524 keV 784.43088 um 9.2649274 m World muIoni - 647 21.311048 cm -4.8691637 m -2.6129264 m 1.5596777 MeV 714.6252 eV 398.66981 um 9.2653261 m World muIoni - 648 21.310218 cm -4.869477 m -2.6129618 m 1.5558458 MeV 1.2891051 keV 315.39167 um 9.2656415 m World muIoni - 649 21.293296 cm -4.8756367 m -2.6136715 m 1.5356909 MeV 18.584599 keV 6.2032632 mm 9.2718448 m World muIoni - 650 21.277082 cm -4.8809056 m -2.6143618 m 1.5185006 MeV 15.684869 keV 5.3167502 mm 9.2771615 m World muIoni - 651 21.264362 cm -4.8917546 m -2.6157141 m 1.4836432 MeV 32.332952 keV 1.0935221 cm 9.2880967 m World muIoni - 652 21.264109 cm -4.8922861 m -2.6157805 m 1.4801024 MeV 1.1445233 keV 535.68463 um 9.2886324 m World muIoni - 653 21.264116 cm -4.8938348 m -2.6159786 m 1.4710577 MeV 5.088911 keV 1.5613176 mm 9.2901937 m World muIoni - 654 21.263865 cm -4.8940746 m -2.6160118 m 1.4703071 MeV 750.64183 eV 242.086 um 9.2904358 m World muIoni - 655 21.262693 cm -4.8952846 m -2.6161792 m 1.4658071 MeV 3.2958027 keV 1.221579 mm 9.2916574 m World muIoni - 656 21.257204 cm -4.9008254 m -2.6169975 m 1.4495553 MeV 16.251794 keV 5.6016179 mm 9.297259 m World muIoni - 657 21.256934 cm -4.9008881 m -2.6170082 m 1.4479492 MeV 137.11357 eV 63.597752 um 9.2973226 m World muIoni - 658 21.249478 cm -4.9026835 m -2.6173118 m 1.4419409 MeV 4.8352216 keV 1.8224936 mm 9.2991451 m World muIoni - 659 21.239179 cm -4.9058637 m -2.6178462 m 1.4310916 MeV 9.6447049 keV 3.2265278 mm 9.3023716 m World muIoni - 660 21.233184 cm -4.9072748 m -2.6180576 m 1.4227867 MeV 5.124262 keV 1.4281961 mm 9.3037998 m World muIoni - 661 21.232514 cm -4.9074344 m -2.6180806 m 1.4213824 MeV 207.60696 eV 161.31361 um 9.3039612 m World muIoni - 662 21.226738 cm -4.9088441 m -2.6182827 m 1.4153663 MeV 4.7376431 keV 1.4253728 mm 9.3053865 m World muIoni - 663 21.208019 cm -4.9132879 m -2.6189064 m 1.3928841 MeV 13.511426 keV 4.4915361 mm 9.3098781 m World muIoni - 664 21.202412 cm -4.9146214 m -2.619074 m 1.3884113 MeV 3.4545341 keV 1.3451171 mm 9.3112232 m World muIoni - 665 21.188628 cm -4.9171244 m -2.6193757 m 1.3812616 MeV 5.6954037 keV 2.5253877 mm 9.3137486 m World muIoni - 666 21.151826 cm -4.9209667 m -2.6197013 m 1.3539296 MeV 12.546 keV 3.8738218 mm 9.3176224 m World muIoni - 667 21.086718 cm -4.9279172 m -2.6202404 m 1.3296292 MeV 23.154055 keV 7.0024655 mm 9.3246249 m World muIoni - 668 21.030699 cm -4.9330785 m -2.6207721 m 1.3071542 MeV 17.074619 keV 5.2200206 mm 9.3298449 m World muIoni - 669 20.964378 cm -4.9419663 m -2.6217062 m 1.2760233 MeV 29.856373 keV 8.9627686 mm 9.3388076 m World muIoni - 670 20.949212 cm -4.9444386 m -2.621892 m 1.2694796 MeV 5.3205494 keV 2.4839902 mm 9.3412916 m World muIoni - 671 20.945569 cm -4.945105 m -2.6219437 m 1.266145 MeV 1.0459947 keV 669.39735 um 9.341961 m World muIoni - 672 20.943727 cm -4.9454115 m -2.6219649 m 1.2568866 MeV 268.87151 eV 307.74986 um 9.3422688 m World muIoni - 673 20.933487 cm -4.9471909 m -2.6220816 m 1.2483715 MeV 6.9809881 keV 1.7862265 mm 9.344055 m World muIoni - 674 20.928238 cm -4.9482036 m -2.622147 m 1.2411204 MeV 3.2214487 keV 1.0161511 mm 9.3450712 m World muIoni - 675 20.909603 cm -4.9515259 m -2.6223415 m 1.2300572 MeV 8.8821574 keV 3.333407 mm 9.3484046 m World muIoni - 676 20.90284 cm -4.9531368 m -2.6224481 m 1.2232157 MeV 4.2778248 keV 1.6158897 mm 9.3500205 m World muIoni - 677 20.891866 cm -4.9548901 m -2.6225838 m 1.2150123 MeV 6.1207975 keV 1.761994 mm 9.3517825 m World muIoni - 678 20.888448 cm -4.9555278 m -2.6226311 m 1.2126483 MeV 1.3702152 keV 640.39233 um 9.3524228 m World muIoni - 679 20.880963 cm -4.9573138 m -2.622765 m 1.2034951 MeV 6.4672856 keV 1.7926657 mm 9.3542155 m World muIoni - 680 20.87531 cm -4.9587191 m -2.6228773 m 1.1965203 MeV 6.9748035 keV 1.4109547 mm 9.3556265 m World muIoni - 681 20.867938 cm -4.9602987 m -2.6230158 m 1.1893806 MeV 5.6338884 keV 1.5873316 mm 9.3572138 m World muIoni - 682 20.814361 cm -4.969577 m -2.6238162 m 1.1544628 MeV 34.917854 keV 9.3300989 mm 9.3665439 m World muIoni - 683 20.78205 cm -4.9776541 m -2.6244527 m 1.1264939 MeV 26.626965 keV 8.1100381 mm 9.3746539 m World muIoni - 684 20.778951 cm -4.9784114 m -2.6245058 m 1.1190898 MeV 2.5408969 keV 759.80981 um 9.3754137 m World muIoni - 685 20.771765 cm -4.9802075 m -2.6246279 m 1.1120961 MeV 6.9937383 keV 1.8017607 mm 9.3772155 m World muIoni - 686 20.769717 cm -4.9806802 m -2.6246591 m 1.1092751 MeV 1.7046083 keV 474.11428 um 9.3776896 m World muIoni - 687 20.763136 cm -4.982251 m -2.6247596 m 1.1018917 MeV 5.2127824 keV 1.5754685 mm 9.3792651 m World muIoni - 688 20.75967 cm -4.983221 m -2.6248215 m 1.097688 MeV 3.1068815 keV 972.63003 um 9.3802377 m World muIoni - 689 20.755755 cm -4.9840324 m -2.6248675 m 1.0922909 MeV 1.169488 keV 813.623 um 9.3810513 m World muIoni - 690 20.751861 cm -4.9849564 m -2.6249193 m 1.0816425 MeV 2.3891179 keV 926.24276 um 9.3819776 m World muIoni - 691 20.737827 cm -4.9880586 m -2.6250707 m 1.0549102 MeV 11.772676 keV 3.1092729 mm 9.3850869 m World muIoni - 692 20.733071 cm -4.9890579 m -2.6251369 m 1.0498606 MeV 3.2319629 keV 1.002661 mm 9.3860895 m World muIoni - 693 20.731527 cm -4.9894062 m -2.6251613 m 1.0302018 MeV 1.6980824 keV 349.46351 um 9.386439 m World muIoni - 694 20.725641 cm -4.990669 m -2.6252561 m 1.0245004 MeV 5.7013554 keV 1.267902 mm 9.3877069 m World muIoni - 695 20.712201 cm -4.9932967 m -2.6255195 m 1.0113846 MeV 12.119641 keV 2.6444247 mm 9.3903513 m World muIoni - 696 20.700472 cm -4.9955385 m -2.6257232 m 999.69948 keV 9.0285016 keV 2.2541937 mm 9.3926055 m World muIoni - 697 20.699946 cm -4.9957133 m -2.6257402 m 999.25757 keV 441.9129 eV 175.73056 um 9.3927812 m OutOfWorld Transportation -Track (trackID 19, parentID 4) is processed with stopping code 2 + 0 -1.21 cm 3.71 mm 7.32 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.219114 cm 3.6500355 mm 7.3097674 cm 1.2363282 MeV 2.8834845 MeV 143.89929 um 143.89929 um Target muIoni + 2 -1.2206749 cm 3.6526851 mm 7.3093185 cm 99.238667 keV 1.1370895 MeV 22.295506 um 166.1948 um Target muIoni + 3 -1.2206912 cm 3.6529171 mm 7.3093167 cm 0 eV 99.238667 keV 606.99047 nm 166.80179 um Target muIoni + 4 -1.2206912 cm 3.6529171 mm 7.3093167 cm 0 eV 0 eV 0 fm 166.80179 um Target DecayWithSpin +Track (trackID 21, parentID 5) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.889306953347(mm),1.7159904425959(mm),78.961396372351(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.272984(mm),-3.7987873(mm),78.893744(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3492,7 +2326,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.233364(mm),-0.22740952(mm),79.253384(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.415629(mm),2.2085554(mm),78.515938(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3501,7 +2335,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.330593(mm),-1.1243787(mm),78.883586(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.746498(mm),-0.9959396(mm),78.457596(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3510,7 +2344,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.232944(mm),-3.0893885(mm),78.371823(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.347394(mm),-1.5728683(mm),79.05695(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3519,7 +2353,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.426445(mm),-0.89170895(mm),78.161376(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.943284(mm),-2.5903428(mm),79.128206(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3528,7 +2362,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.194059(mm),1.5539494(mm),78.731333(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.746609(mm),-1.1290223(mm),78.457577(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3537,7 +2371,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.087259(mm),0.14856914(mm),79.102819(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.1603(mm),2.0436422(mm),78.384632(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3546,7 +2380,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.812379(mm),-0.82615926(mm),78.622307(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.38045(mm),-1.7257724(mm),78.522141(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3555,7 +2389,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.13545(mm),-2.8248511(mm),79.094322(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.949328(mm),-2.5933596(mm),78.950813(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3564,7 +2398,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.330957(mm),-0.50794387(mm),79.412502(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.883188(mm),3.1788845(mm),79.138802(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3573,7 +2407,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.602803(mm),3.6330394(mm),78.659261(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.027391(mm),-2.4182025(mm),79.113375(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3582,7 +2416,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.06822(mm),0.78819843(mm),79.282503(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.984558(mm),-1.3693866(mm),78.768274(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3591,7 +2425,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.193322(mm),-3.169713(mm),78.731463(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.048945(mm),0.27933893(mm),78.580594(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3600,7 +2434,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.583423(mm),3.1466167(mm),78.486351(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.764946(mm),-1.5959629(mm),78.983325(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3609,7 +2443,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.288634(mm),0.55174264(mm),78.53833(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.371749(mm),-3.962496(mm),78.700002(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3618,7 +2452,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.953761(mm),1.5199235(mm),78.244723(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.890874(mm),-2.031211(mm),78.432139(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3627,7 +2461,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.509219(mm),2.7810177(mm),79.028416(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.314442(mm),-0.84912649(mm),78.710107(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3636,7 +2470,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.971144(mm),-0.38742876(mm),78.770639(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.420146(mm),-1.5456282(mm),78.691468(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3645,7 +2479,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.736127(mm),0.52065638(mm),78.459425(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.531125(mm),1.2122806(mm),79.024554(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3654,7 +2488,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.14698(mm),-1.4644977(mm),78.386981(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.939593(mm),1.1369084(mm),78.95253(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3663,7 +2497,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.033734(mm),2.9891975(mm),78.583276(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.726687(mm),0.77203529(mm),78.284763(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3672,7 +2506,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.916104(mm),-2.5141984(mm),78.956671(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.126138(mm),-0.96805756(mm),79.448618(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3681,7 +2515,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.315808(mm),2.1781414(mm),79.238847(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.979901(mm),-2.3205174(mm),79.121749(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3690,7 +2524,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.325001(mm),2.1355353(mm),78.355591(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.920784(mm),-1.0694913(mm),78.955846(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3699,7 +2533,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.278112(mm),-0.92386006(mm),78.187532(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.015304(mm),3.1405341(mm),78.586526(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3708,7 +2542,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.122986(mm),2.7500737(mm),78.920192(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.956218(mm),2.0037033(mm),78.420617(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3717,7 +2551,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.08483(mm),2.1315942(mm),78.574266(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.041028(mm),-1.0855405(mm),79.287298(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3726,7 +2560,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.474659(mm),3.1074059(mm),79.03451(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.938449(mm),1.1605713(mm),78.600077(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3735,7 +2569,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.853901(mm),1.1172983(mm),78.967639(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.865052(mm),1.7849596(mm),78.613019(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3744,7 +2578,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.616711(mm),0.42520762(mm),79.362116(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.744986(mm),-3.6655599(mm),78.986844(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3753,7 +2587,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.283(mm),0.65095768(mm),78.715651(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.024158(mm),-1.4318686(mm),78.584965(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3762,7 +2596,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.962168(mm),-1.2072432(mm),78.772222(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.220881(mm),0.36808(mm),78.197623(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3771,7 +2605,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.51532(mm),-1.5937897(mm),78.498359(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.19309(mm),-0.59159587(mm),78.202523(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3780,7 +2614,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.51386(mm),-2.1520453(mm),78.498617(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.19671(mm),1.109253(mm),78.201885(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3789,7 +2623,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.601321(mm),0.036995468(mm),78.659522(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.925416(mm),-2.7054505(mm),78.602375(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3798,7 +2632,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.77631(mm),2.3703083(mm),78.981321(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.837998(mm),1.6222299(mm),79.146771(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3807,7 +2641,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.463599(mm),-0.212742(mm),79.212787(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.620953(mm),1.7445683(mm),78.656061(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3816,7 +2650,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.199984(mm),-1.4374706(mm),78.553962(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.981763(mm),-1.986377(mm),78.768767(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3825,7 +2659,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.017132(mm),-2.8812239(mm),78.938857(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.586509(mm),-0.77628296(mm),78.133153(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3834,7 +2668,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.146367(mm),-1.8117678(mm),79.268724(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.607871(mm),-0.3343165(mm),78.305713(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3843,7 +2677,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.021937(mm),-3.8413095(mm),78.93801(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.66922(mm),2.9299606(mm),78.823877(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3852,7 +2686,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.404372(mm),1.6634344(mm),78.694249(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.719296(mm),2.5876973(mm),79.167701(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3861,7 +2695,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.611263(mm),0.30324498(mm),78.128788(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.978585(mm),0.36007043(mm),78.240346(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3870,7 +2704,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.533763(mm),0.19222248(mm),78.142453(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.015367(mm),-1.7060199(mm),78.762842(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3879,7 +2713,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.906002(mm),-2.8760547(mm),78.782126(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.465423(mm),-1.8901343(mm),78.330831(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3888,7 +2722,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.166581(mm),-0.1653552(mm),79.088832(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.783572(mm),0.27165013(mm),78.451059(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3897,7 +2731,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.158042(mm),1.8016123(mm),78.38503(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.529446(mm),1.8006881(mm),79.377503(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3906,7 +2740,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.527857(mm),-2.0770318(mm),79.377784(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.199408(mm),-3.7766705(mm),78.73039(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3915,7 +2749,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.362621(mm),3.9006108(mm),78.877938(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.418348(mm),-0.37297076(mm),78.162804(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3924,7 +2758,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.31416(mm),-2.5815729(mm),78.357502(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.927831(mm),-1.8752995(mm),79.130931(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3933,7 +2767,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.248772(mm),0.66375019(mm),79.07434(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.245989(mm),3.0838546(mm),78.369523(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3942,7 +2776,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.936781(mm),-2.4338652(mm),79.305679(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.488532(mm),3.0598547(mm),79.032064(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3951,7 +2785,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.219724(mm),0.46255249(mm),79.255789(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.256364(mm),0.56528817(mm),78.367693(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3960,7 +2794,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.657919(mm),0.78298995(mm),79.178523(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.072534(mm),2.2555102(mm),79.105416(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3969,7 +2803,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.521589(mm),1.0387978(mm),78.673581(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.554976(mm),1.8230512(mm),78.31504(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3978,7 +2812,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.594089(mm),-2.6315886(mm),78.837124(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.177415(mm),-0.3289064(mm),78.205287(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3987,7 +2821,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.625603(mm),0.84709625(mm),78.12626(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.237907(mm),-2.5840387(mm),78.723602(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -3996,7 +2830,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.819575(mm),1.6887332(mm),78.797365(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.711606(mm),-1.2967405(mm),78.640076(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4005,7 +2839,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.716265(mm),1.4975987(mm),78.639254(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.614808(mm),-3.5977948(mm),78.833471(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4014,7 +2848,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.156206(mm),1.9648333(mm),78.385354(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.238603(mm),1.9285543(mm),79.25246(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4023,7 +2857,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.854472(mm),2.954846(mm),78.438558(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.427172(mm),-3.0254581(mm),79.21921(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4032,7 +2866,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.452448(mm),-1.2485252(mm),79.39108(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.532619(mm),-1.2628841(mm),79.376944(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4041,7 +2875,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.017394(mm),1.6486784(mm),78.586157(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.841743(mm),-1.6202854(mm),79.322437(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4050,7 +2884,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.515033(mm),3.3358101(mm),78.49841(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.295183(mm),1.4303172(mm),78.537176(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4059,7 +2893,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.339597(mm),1.3578033(mm),78.529344(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.279947(mm),-0.3306101(mm),79.24517(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4068,7 +2902,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.660483(mm),0.806323(mm),79.354398(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.788437(mm),1.1028269(mm),79.155509(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4077,7 +2911,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.803531(mm),0.84199147(mm),79.152848(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.800053(mm),0.39222001(mm),79.153461(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4086,7 +2920,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.748404(mm),1.0198476(mm),79.162568(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.360191(mm),-1.8703233(mm),78.878367(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4095,7 +2929,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.278758(mm),1.0835898(mm),79.24538(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.800039(mm),-2.0228058(mm),79.153464(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4104,7 +2938,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.009672(mm),2.9005453(mm),78.940173(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.054604(mm),-1.440501(mm),79.108577(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4113,7 +2947,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.107208(mm),-1.073104(mm),79.099302(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.744709(mm),0.090693982(mm),78.634239(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4122,7 +2956,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.730091(mm),1.08672(mm),78.98947(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.884067(mm),0.31108408(mm),79.138647(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4131,7 +2965,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.845266(mm),3.8169268(mm),78.969162(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.833618(mm),-3.6023602(mm),78.794889(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4140,7 +2974,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.94595(mm),0.54302132(mm),78.598755(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.149772(mm),1.4980849(mm),78.386488(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4149,7 +2983,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.939831(mm),-1.6066202(mm),78.423507(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.280223(mm),0.25921156(mm),79.245121(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4158,457 +2992,471 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.846264(mm),0.53872779(mm),79.32164(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.819715(mm),3.3387955(mm),78.621013(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.10159(mm),-1.347441(mm),78.394984(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.449405(mm),0.44765188(mm),78.509982(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.271073(mm),-0.57517021(mm),78.541427(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.871514(mm),2.3980643(mm),78.788207(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.183732(mm),0.18310169(mm),78.3805(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.013693(mm),1.2134403(mm),78.410483(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-17.219201(mm),-1.1249851(mm),78.197919(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.042451(mm),3.2157604(mm),79.11072(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.979691(mm),3.9644168(mm),78.769132(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.864135(mm),2.9027377(mm),78.789508(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.132111(mm),-0.45956765(mm),78.565929(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-17.330476(mm),-1.9046146(mm),78.178298(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.176592(mm),0.59423794(mm),78.734413(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.743117(mm),1.8241546(mm),78.987174(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.11869(mm),-3.7913182(mm),78.744623(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-10.972256(mm),2.6353361(mm),79.299424(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.774794(mm),-1.4920921(mm),78.981588(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.755042(mm),2.274975(mm),78.808744(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.608398(mm),2.19354(mm),78.658274(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.439965(mm),-2.6158526(mm),79.216954(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.615452(mm),1.3008409(mm),78.480703(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.103044(mm),-1.9407458(mm),78.394728(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-10.895027(mm),-2.5731472(mm),79.313042(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.789992(mm),1.2917902(mm),78.449927(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.865776(mm),-3.5895404(mm),78.965546(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-10.349714(mm),0.87420816(mm),79.409195(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.876343(mm),-3.6175548(mm),78.611028(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.388896(mm),2.3259522(mm),79.049632(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-17.281124(mm),-1.5452744(mm),78.187(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.051107(mm),1.2185256(mm),79.285521(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.910785(mm),-3.6570274(mm),78.781282(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.505202(mm),-1.814159(mm),79.205451(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.250287(mm),1.5678143(mm),78.545092(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-10.833662(mm),-1.7212261(mm),79.323862(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.780245(mm),-1.7047544(mm),78.451646(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.812551(mm),1.6678513(mm),78.44595(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.603234(mm),-2.8291573(mm),78.306531(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.236637(mm),0.29980221(mm),78.547499(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.890765(mm),-0.63282644(mm),78.255831(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.867543(mm),-3.1109694(mm),78.788907(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.99857(mm),-1.0513634(mm),79.118457(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.099643(mm),2.1641384(mm),78.571654(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.671724(mm),-1.0210876(mm),79.176089(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.393492(mm),2.7579927(mm),78.519841(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.048817(mm),3.4052141(mm),78.580617(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.653886(mm),-3.9518143(mm),78.82658(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.575237(mm),-2.7370512(mm),78.840448(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 ********************************************************************************************************* -* G4Track Information: Particle = pi+, Track ID = 4, Parent ID = 1 +* G4Track Information: Particle = pi+, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.59 mm 792 um 5.49 cm 28.7 MeV 0 eV 0 fm 0 fm Target initStep - 1 -6.3339543 mm 862.10656 um 5.4086584 cm 24.352706 MeV 4.3780963 MeV 903.65144 um 903.65144 um Target hIoni - 2 -5.9773469 mm 903.09381 um 5.3466401 cm 20.473366 MeV 3.87934 MeV 723.15199 um 1.6268034 mm Target hIoni - 3 -5.6954807 mm 979.36301 um 5.2973079 cm 16.650532 MeV 3.8228341 MeV 578.99246 um 2.2057959 mm Target hIoni - 4 -5.4904212 mm 1.0393407 mm 5.2579918 cm 13.903385 MeV 2.747147 MeV 452.52337 um 2.6583193 mm Target hIoni - 5 -5.3419687 mm 1.1664553 mm 5.2269123 cm 10.663383 MeV 3.2400017 MeV 371.87002 um 3.0301893 mm Target hIoni - 6 -5.3303173 mm 1.1880112 mm 5.2225392 cm 10.138918 MeV 524.4653 keV 50.24566 um 3.0804349 mm Target Transportation - 7 -652.23534 um -1.6364833 cm -93.35476 cm 10.138923 MeV1.5761935e-13 meV 1.0772373 m 1.0803177 m CaptureMgnt Decay -Track (trackID 4, parentID 1) is processed with stopping code 2 + 0 -9.35 mm -2.81 mm 5.32 cm 31.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -9.0232656 mm -2.8001991 mm 5.2279865 cm 27.024928 MeV 4.1573679 MeV 1.0124067 mm 1.0124067 mm Target hIoni + 2 -8.8763105 mm -2.9701379 mm 5.148716 cm 23.120069 MeV 3.9048593 MeV 831.17339 um 1.8435801 mm Target hIoni + 3 -8.7499592 mm -3.2360287 mm 5.088598 cm 19.315001 MeV 3.8050679 MeV 675.68104 um 2.5192611 mm Target hIoni + 4 -8.7285781 mm -3.4502114 mm 5.0397907 cm 15.99593 MeV 3.3190706 MeV 538.98811 um 3.0582492 mm Target hIoni + 5 -8.7789539 mm -3.6238265 mm 5.0010467 cm 13.153158 MeV 2.8427727 MeV 432.5075 um 3.4907568 mm Target hIoni + 6 -8.8661851 mm -3.7131957 mm 4.9687035 cm 10.310125 MeV 2.8430327 MeV 351.3793 um 3.842136 mm Target hIoni + 7 -8.9442442 mm -3.7765991 mm 4.9431328 cm 7.6031676 MeV 2.7069572 MeV 279.38616 um 4.1215222 mm Target hIoni + 8 -8.9641945 mm -3.8536447 mm 4.9234348 cm 4.5429958 MeV 3.0601719 MeV 217.35434 um 4.3388765 mm Target hIoni + 9 -8.9648801 mm -3.898155 mm 4.9104172 cm 1.0231941 MeV 3.5198017 MeV 143.09445 um 4.481971 mm Target hIoni + 10 -8.9660496 mm -3.9031566 mm 4.9094946 cm 85.00873 keV 938.18533 keV 14.157402 um 4.4961284 mm Target hIoni + 11 -8.9660107 mm -3.9033101 mm 4.9094808 cm 0 eV 85.00873 keV 474.1603 nm 4.4966026 mm Target hIoni + 12 -8.9660107 mm -3.9033101 mm 4.9094808 cm 0 eV 0 eV 0 fm 4.4966026 mm Target Decay +Track (trackID 5, parentID 1) is processed with stopping code 2 ********************************************************************************************************* -* G4Track Information: Particle = mu+, Track ID = 18, Parent ID = 4 +* G4Track Information: Particle = mu+, Track ID = 21, Parent ID = 5 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -652 um -1.64 cm -93.4 cm 20.6 MeV 0 eV 0 fm 0 fm CaptureMgnt initStep - 1 4.2729292 cm 4.2610586 mm -2 m 20.607364 MeV8.2223515e-14 meV 1.2040301 m 1.2040301 m CaptureMgnt Transportation - 2 4.2823475 cm 2.6388963 mm -2.003097 m 20.602744 MeV 1.1018867 keV 3.4973759 mm 1.2075275 m World muIoni - 3 4.539035 cm -4.3246608 cm -2.0909875 m 20.566146 MeV 35.531463 keV 9.9181541 cm 1.306709 m World muIoni - 4 4.5514851 cm -4.5276389 cm -2.0948666 m 20.560566 MeV 894.65507 eV 4.3798102 mm 1.3110888 m World muIoni - 5 4.6359383 cm -5.8616691 cm -2.1203991 m 20.552312 MeV 8.2541683 keV 2.881995 cm 1.3399088 m World muIoni - 6 4.8567888 cm -9.7406067 cm -2.1952776 m 20.52786 MeV 23.459465 keV 8.4358728 cm 1.4242675 m World muIoni - 7 4.9996899 cm -12.101628 cm -2.2397947 m 20.506985 MeV 16.411797 keV 5.0411082 cm 1.4746786 m World muIoni - 8 5.0505198 cm -12.82286 cm -2.2533904 m 20.374875 MeV 5.6515692 keV 1.5398643 cm 1.4900772 m World muIoni - 9 5.0686456 cm -13.081918 cm -2.258325 m 20.369708 MeV 1.7227478 keV 5.5762501 mm 1.4956535 m World muIoni - 10 5.1066 cm -13.640384 cm -2.2689668 m 20.357503 MeV 4.8294216 keV 1.2024155 cm 1.5076776 m World muIoni - 11 5.3068746 cm -16.577747 cm -2.3248794 m 20.335544 MeV 21.959095 keV 6.3190865 cm 1.5708685 m World muIoni - 12 5.3975331 cm -17.827427 cm -2.3485574 m 20.323732 MeV 9.0769093 keV 2.6788803 cm 1.5976573 m World muIoni - 13 5.4546745 cm -18.645693 cm -2.36402 m 20.315058 MeV 7.2823208 keV 1.750361 cm 1.6151609 m World muIoni - 14 5.5263069 cm -19.634183 cm -2.3827596 m 20.310998 MeV 4.0600255 keV 2.1198989 cm 1.6363599 m World muIoni - 15 5.7206672 cm -22.46931 cm -2.4365771 m 20.286001 MeV 21.072204 keV 6.0859981 cm 1.6972199 m World muIoni - 16 5.8432698 cm -24.120212 cm -2.4682285 m 20.276308 MeV 8.3264563 keV 3.5719322 cm 1.7329392 m World muIoni - 17 5.8553409 cm -24.306187 cm -2.471765 m 20.272292 MeV 1.7293491 keV 3.997502 mm 1.7369367 m World muIoni - 18 5.8949923 cm -24.925126 cm -2.4834973 m 20.266556 MeV 3.7216727 keV 1.3270749 cm 1.7502074 m World muIoni - 19 5.9281658 cm -25.476474 cm -2.493886 m 20.26205 MeV 4.5058297 keV 1.1765767 cm 1.7619732 m World muIoni - 20 5.9421585 cm -25.699506 cm -2.4980852 m 20.258928 MeV 2.0581982 keV 4.756777 mm 1.76673 m World muIoni - 21 6.1148554 cm -28.399129 cm -2.5488943 m 20.23842 MeV 20.507682 keV 5.7561936 cm 1.8242919 m World muIoni - 22 6.2678924 cm -30.201827 cm -2.5833729 m 20.224244 MeV 13.033499 keV 3.8937439 cm 1.8632294 m World muIoni - 23 6.4354988 cm -32.216038 cm -2.6220097 m 20.211739 MeV 12.504482 keV 4.3604231 cm 1.9068336 m World muIoni - 24 6.5510352 cm -33.677892 cm -2.6501419 m 20.198465 MeV 12.199734 keV 3.1724801 cm 1.9385584 m World muIoni - 25 6.6408919 cm -34.79326 cm -2.671851 m 20.182995 MeV 7.6489712 keV 2.4423346 cm 1.9629817 m World muIoni - 26 6.6636441 cm -35.095617 cm -2.6777338 m 20.180366 MeV 1.1298147 keV 6.6182251 mm 1.9696 m World muIoni - 27 6.8817342 cm -38.019608 cm -2.734559 m 20.158727 MeV 21.638342 keV 6.3944345 cm 2.0335443 m World muIoni - 28 6.957122 cm -38.963615 cm -2.7527825 m 20.151186 MeV 6.1832879 keV 2.0537243 cm 2.0540816 m World muIoni - 29 7.1992671 cm -41.786928 cm -2.8073318 m 20.129374 MeV 20.695324 keV 6.1470696 cm 2.1155523 m World muIoni - 30 7.202174 cm -41.825381 cm -2.808067 m 20.126969 MeV 222.82925 eV 830.17283 um 2.1163824 m World muIoni - 31 7.3420779 cm -43.648877 cm -2.8429706 m 20.088991 MeV 12.215925 keV 3.9404832 cm 2.1557873 m World muIoni - 32 7.3858401 cm -44.263401 cm -2.8547584 m 20.069536 MeV 5.7701631 keV 1.3300687 cm 2.1690879 m World muIoni - 33 7.4774917 cm -45.628595 cm -2.8810879 m 20.057961 MeV 9.8841548 keV 2.9672544 cm 2.1987605 m World muIoni - 34 7.4959274 cm -45.903639 cm -2.8864022 m 20.054186 MeV 2.3849807 keV 5.9867857 mm 2.2047473 m World muIoni - 35 7.5443551 cm -46.624755 cm -2.9003533 m 20.043919 MeV 8.1260131 keV 1.5712079 cm 2.2204594 m World muIoni - 36 7.6272346 cm -47.88512 cm -2.9248106 m 20.032108 MeV 10.722419 keV 2.7526294 cm 2.2479856 m World muIoni - 37 7.6989405 cm -48.878154 cm -2.944213 m 20.02599 MeV 4.7567537 keV 2.1807821 cm 2.2697935 m World muIoni - 38 7.7842574 cm -49.986397 cm -2.9658143 m 20.004914 MeV 7.1158705 keV 2.4293336 cm 2.2940868 m World muIoni - 39 7.8210958 cm -50.455969 cm -2.9749354 m 20.000782 MeV 3.1192536 keV 1.0265536 cm 2.3043523 m World muIoni - 40 7.9365013 cm -51.878656 cm -3.0025721 m 19.98566 MeV 13.564009 keV 3.1105067 cm 2.3354574 m World muIoni - 41 7.9913147 cm -52.556883 cm -3.0157433 m 19.979335 MeV 5.317313 keV 1.4825055 cm 2.3502825 m World muIoni - 42 7.9992728 cm -52.659233 cm -3.0177315 m 19.97676 MeV 873.95167 eV 2.2375748 mm 2.35252 m World muIoni - 43 8.0984247 cm -53.933606 cm -3.042517 m 19.96176 MeV 12.064154 keV 2.7887461 cm 2.3804075 m World muIoni - 44 8.1928875 cm -55.170208 cm -3.0665767 m 19.949982 MeV 11.778582 keV 2.7068091 cm 2.4074756 m World muIoni - 45 8.4819413 cm -59.193949 cm -3.1444909 m 19.917666 MeV 22.712814 keV 8.7739115 cm 2.4952147 m World muIoni - 46 8.5098176 cm -59.656943 cm -3.1533986 m 19.914976 MeV 2.6905624 keV 1.0042989 cm 2.5052577 m World muIoni - 47 8.6798429 cm -62.552528 cm -3.2088755 m 19.880701 MeV 25.086645 keV 6.2602414 cm 2.5678601 m World muIoni - 48 8.7256295 cm -63.395978 cm -3.2249531 m 19.863113 MeV 6.4003329 keV 1.8161482 cm 2.5860216 m World muIoni - 49 8.8267565 cm -65.372563 cm -3.2626072 m 19.84768 MeV 12.820598 keV 4.2538838 cm 2.6285604 m World muIoni - 50 8.8692524 cm -66.074031 cm -3.2760705 m 19.841305 MeV 6.3753652 keV 1.5187139 cm 2.6437476 m World muIoni - 51 8.8778535 cm -66.210812 cm -3.2786867 m 19.802172 MeV 453.83359 eV 2.9534094 mm 2.646701 m World muIoni - 52 8.9044641 cm -66.647116 cm -3.2869501 m 19.798143 MeV 4.0291259 keV 9.3483187 mm 2.6560493 m World muIoni - 53 8.9264466 cm -67.02363 cm -3.2941154 m 19.794772 MeV 2.2757602 keV 8.0972464 mm 2.6641465 m World muIoni - 54 8.9913594 cm -68.173486 cm -3.3158698 m 19.786145 MeV 7.2198981 keV 2.4614912 cm 2.6887615 m World muIoni - 55 8.9947639 cm -68.231564 cm -3.3169714 m 19.783352 MeV 896.73307 eV 1.2457912 mm 2.6900072 m World muIoni - 56 9.0080401 cm -68.458732 cm -3.3212922 m 19.781044 MeV 2.3075517 keV 4.8834638 mm 2.6948907 m World muIoni - 57 9.0422898 cm -69.049114 cm -3.3325123 m 19.775708 MeV 5.3366114 keV 1.2683143 cm 2.7075739 m World muIoni - 58 9.098567 cm -69.998083 cm -3.3505222 m 19.766777 MeV 6.9364585 keV 2.0364871 cm 2.7279387 m World muIoni - 59 9.3674394 cm -74.196591 cm -3.4301334 m 19.739004 MeV 27.77316 keV 9.0044759 cm 2.8179835 m World muIoni - 60 9.3816332 cm -74.390818 cm -3.4338022 m 19.724575 MeV 1.1615124 keV 4.1536259 mm 2.8221371 m World muIoni - 61 9.4820288 cm -75.723985 cm -3.4590644 m 19.71177 MeV 8.8544031 keV 2.8581854 cm 2.850719 m World muIoni - 62 9.5514796 cm -76.695399 cm -3.4773544 m 19.707237 MeV 4.5329404 keV 2.0721325 cm 2.8714403 m World muIoni - 63 9.6389912 cm -77.956376 cm -3.5009143 m 19.701416 MeV 5.8210405 keV 2.6736587 cm 2.8981769 m World muIoni - 64 9.7466018 cm -79.745215 cm -3.5348198 m 19.690886 MeV 10.529941 keV 3.8350425 cm 2.9365273 m World muIoni - 65 9.7565672 cm -79.91049 cm -3.5379418 m 19.689741 MeV 1.1456019 keV 3.5338591 mm 2.9400612 m World muIoni - 66 9.7683509 cm -80.107359 cm -3.5416613 m 19.684435 MeV 1.8083423 keV 4.210102 mm 2.9442713 m World muIoni - 67 9.7865728 cm -80.417221 cm -3.547482 m 19.680107 MeV 2.967457 keV 6.596662 mm 2.9508679 m World muIoni - 68 9.8440404 cm -81.413421 cm -3.5656452 m 19.666386 MeV 10.33319 keV 2.0723697 cm 2.9715916 m World muIoni - 69 9.8533451 cm -81.578932 cm -3.5686654 m 19.662178 MeV 1.1327958 keV 3.4452929 mm 2.9750369 m World muIoni - 70 9.9546476 cm -83.343569 cm -3.6009006 m 19.645441 MeV 10.249112 keV 3.6763215 cm 3.0118001 m World muIoni - 71 9.9554184 cm -83.355893 cm -3.6011242 m 19.644229 MeV 0 eV 255.46463 um 3.0120556 m World muIoni - 72 9.977658 cm -83.705612 cm -3.6074728 m 19.627359 MeV 2.4448253 keV 7.2515027 mm 3.0193071 m World muIoni - 73 10.239966 cm -87.536754 cm -3.6769031 m 19.601724 MeV 24.130898 keV 7.9342938 cm 3.09865 m World muIoni - 74 10.363647 cm -89.276064 cm -3.7086654 m 19.589193 MeV 10.435474 keV 3.6233965 cm 3.134884 m World muIoni - 75 10.468165 cm -90.636333 cm -3.7334511 m 19.577854 MeV 10.288859 keV 2.8292396 cm 3.1631764 m World muIoni - 76 10.498918 cm -91.031589 cm -3.7406255 m 19.564051 MeV 2.7308949 keV 8.1969553 mm 3.1713733 m World muIoni - 77 10.586276 cm -92.194685 cm -3.7618038 m 19.555413 MeV 6.9937959 keV 2.4177798 cm 3.1955511 m World muIoni - 78 10.68838 cm -93.569808 cm -3.7868766 m 19.542522 MeV 10.134302 keV 2.8614489 cm 3.2241656 m World muIoni - 79 10.709942 cm -93.865296 cm -3.7922793 m 19.539733 MeV 1.3088785 keV 6.1616743 mm 3.2303273 m World muIoni - 80 10.851547 cm -95.663577 cm -3.8247345 m 19.525512 MeV 13.226033 keV 3.7131563 cm 3.2674589 m World muIoni - 81 10.93722 cm -96.657472 cm -3.8424662 m 19.514854 MeV 9.5901925 keV 2.0345301 cm 3.2878042 m World muIoni - 82 11.258172 cm -1.0037678 m -3.9087307 m 19.485042 MeV 28.492032 keV 7.6057125 cm 3.3638613 m World muIoni - 83 11.418089 cm -1.0228546 m -3.9425276 m 19.472825 MeV 7.8491531 keV 3.8847244 cm 3.4027085 m World muIoni - 84 11.461369 cm -1.0278329 m -3.9513163 m 19.46976 MeV 1.9073274 keV 1.0109937 cm 3.4128185 m World muIoni - 85 11.462558 cm -1.0279679 m -3.9515556 m 19.469589 MeV 170.92488 eV 275.08145 um 3.4130936 m World muIoni - 86 11.508302 cm -1.0331654 m -3.9607674 m 19.465314 MeV 3.0686017 keV 1.0586837 cm 3.4236804 m World muIoni - 87 11.554687 cm -1.0383085 m -3.9698825 m 19.454102 MeV 3.1745801 keV 1.047623 cm 3.4341566 m World muIoni - 88 11.627075 cm -1.0465059 m -3.9844372 m 19.444867 MeV 3.7308082 keV 1.672002 cm 3.4508766 m World muIoni - 89 11.630663 cm -1.0469032 m -3.9851414 m 19.443079 MeV 285.42436 eV 809.35578 um 3.451686 m World muIoni - 90 11.638358 cm -1.0477588 m -3.986655 m 19.442637 MeV 441.5876 eV 1.7404376 mm 3.4534264 m World muIoni - 91 11.793618 cm -1.0650401 m -4.0172253 m 19.432181 MeV 9.079128 keV 3.5151138 cm 3.4885776 m World muIoni - 92 11.889732 cm -1.0763732 m -4.0373197 m 19.422085 MeV 8.9585091 keV 2.3090106 cm 3.5116677 m World muIoni - 93 11.909532 cm -1.0785944 m -4.0412656 m 19.415911 MeV 1.8210709 keV 4.5323506 mm 3.5162 m World muIoni - 94 11.994439 cm -1.0880767 m -4.0580673 m 19.408514 MeV 7.3966474 keV 1.9311525 cm 3.5355116 m World muIoni - 95 12.173183 cm -1.1078531 m -4.092888 m 19.395914 MeV 12.599852 keV 4.008478 cm 3.5755963 m World muIoni - 96 12.200071 cm -1.1110299 m -4.0984719 m 19.39164 MeV 3.0847046 keV 6.4300102 mm 3.5820263 m World muIoni - 97 12.38347 cm -1.1330432 m -4.1372049 m 19.374918 MeV 11.884794 keV 4.4589321 cm 3.6266157 m World muIoni - 98 12.47036 cm -1.1468261 m -4.1611418 m 19.359688 MeV 11.148183 keV 2.7635185 cm 3.6542509 m World muIoni - 99 12.762683 cm -1.1945118 m -4.2452489 m 19.32384 MeV 34.566206 keV 9.6729767 cm 3.7509806 m World muIoni - 100 12.992026 cm -1.23844 m -4.3226951 m 19.290599 MeV 32.249735 keV 8.9067446 cm 3.8400481 m World muIoni - 101 12.997988 cm -1.2396488 m -4.3247978 m 19.289228 MeV 337.98693 eV 2.4260595 mm 3.8424741 m World muIoni - 102 13.039448 cm -1.248118 m -4.3395176 m 19.28219 MeV 6.0437582 keV 1.698744 cm 3.8594616 m World muIoni - 103 13.061324 cm -1.2529159 m -4.3478284 m 19.277441 MeV 2.8981112 keV 9.5988202 mm 3.8690604 m World muIoni - 104 13.301565 cm -1.3049299 m -4.4381824 m 19.24295 MeV 33.109915 keV 10.428469 cm 3.9733451 m World muIoni - 105 13.324507 cm -1.3120056 m -4.450475 m 19.235428 MeV 7.5215701 keV 1.4185397 cm 3.9875305 m World muIoni - 106 13.325635 cm -1.3123339 m -4.4510475 m 19.234134 MeV 0 eV 660.10495 um 3.9881906 m World muIoni - 107 13.387297 cm -1.3307493 m -4.4831571 m 19.217367 MeV 14.807132 keV 3.7020777 cm 4.0252114 m World muIoni - 108 13.394157 cm -1.3334312 m -4.4878299 m 19.214274 MeV 1.901519 keV 5.3882277 mm 4.0305996 m World muIoni - 109 13.397004 cm -1.334522 m -4.4897328 m 19.211193 MeV 258.56747 eV 2.1935583 mm 4.0327931 m World muIoni - 110 13.401834 cm -1.3365605 m -4.4932863 m 19.208719 MeV 692.78801 eV 4.096936 mm 4.0368901 m World muIoni - 111 13.427138 cm -1.3480667 m -4.513342 m 19.201075 MeV 7.6445345 keV 2.3123383 cm 4.0600135 m World muIoni - 112 13.482549 cm -1.3732989 m -4.5570355 m 19.183331 MeV 17.743339 keV 5.0459009 cm 4.1104725 m World muIoni - 113 13.492306 cm -1.3771624 m -4.56375 m 19.180333 MeV 2.9985579 keV 7.7473493 mm 4.1182198 m World muIoni - 114 13.552549 cm -1.4008337 m -4.604816 m 19.160997 MeV 17.103905 keV 4.7403921 cm 4.1656237 m World muIoni - 115 13.569931 cm -1.4084812 m -4.6180363 m 19.154693 MeV 6.3044316 keV 1.5273862 cm 4.1808976 m World muIoni - 116 13.582589 cm -1.4133149 m -4.6264079 m 19.151815 MeV 2.877688 keV 9.6676776 mm 4.1905653 m World muIoni - 117 13.583231 cm -1.4135821 m -4.6268708 m 19.147645 MeV 115.11385 eV 534.53346 um 4.1910998 m World muIoni - 118 13.585828 cm -1.4145855 m -4.6286113 m 19.147049 MeV 596.55125 eV 2.0091511 mm 4.193109 m World muIoni - 119 13.660499 cm -1.4435588 m -4.6788644 m 19.120133 MeV 24.868982 keV 5.8012274 cm 4.2511212 m World muIoni - 120 13.722352 cm -1.4724421 m -4.7285082 m 19.096037 MeV 20.677859 keV 5.7438372 cm 4.3085596 m World muIoni - 121 13.741418 cm -1.4779364 m -4.7379676 m 19.089861 MeV 4.5493202 keV 1.0940926 cm 4.3195005 m World muIoni - 122 13.764312 cm -1.4844653 m -4.7492565 m 19.084823 MeV 3.8321147 keV 1.304303 cm 4.3325436 m World muIoni - 123 13.898679 cm -1.5227301 m -4.8156907 m 19.065186 MeV 18.462558 keV 7.6678497 cm 4.4092221 m World muIoni - 124 13.968261 cm -1.5530253 m -4.868935 m 19.041397 MeV 23.789146 keV 6.1263995 cm 4.4704861 m World muIoni - 125 13.970147 cm -1.5536685 m -4.8700734 m 19.035809 MeV 175.54086 eV 1.3077263 mm 4.4717938 m World muIoni - 126 13.978425 cm -1.5562827 m -4.8746907 m 19.031251 MeV 1.3159001 keV 5.306613 mm 4.4771004 m World muIoni - 127 13.997843 cm -1.5622292 m -4.8852155 m 19.027016 MeV 4.235723 keV 1.2090014 cm 4.4891904 m World muIoni - 128 14.109221 cm -1.5969259 m -4.9464505 m 18.997323 MeV 27.877864 keV 7.039107 cm 4.5595815 m World muIoni - 129 14.116984 cm -1.5992741 m -4.9505876 m 18.996274 MeV 1.0489049 keV 4.7577263 mm 4.5643392 m World muIoni - 130 14.144914 cm -1.6081249 m -4.9661708 m 18.986982 MeV 8.3008249 keV 1.7923417 cm 4.5822626 m World muIoni - 131 14.187946 cm -1.6217094 m -4.9901205 m 18.974711 MeV 9.2309083 keV 2.7537703 cm 4.6098003 m World muIoni - 132 14.198658 cm -1.6249012 m -4.9957985 m 18.966202 MeV 2.1968988 keV 6.5144924 mm 4.6163148 m World muIoni - 133 14.2169 cm -1.630544 m -5.0058037 m 18.960478 MeV 4.4851743 keV 1.1488245 cm 4.6278031 m World muIoni - 134 14.274233 cm -1.6481739 m -5.0370553 m 18.949821 MeV 10.656662 keV 3.5886041 cm 4.6636891 m World muIoni - 135 14.320586 cm -1.6610017 m -5.0596951 m 18.942694 MeV 6.0649371 keV 2.6025593 cm 4.6897147 m World muIoni - 136 14.392369 cm -1.6800685 m -5.0933511 m 18.925838 MeV 15.220855 keV 3.8688467 cm 4.7284032 m World muIoni - 137 14.411711 cm -1.685172 m -5.1023884 m 18.919428 MeV 4.0894164 keV 1.0380563 cm 4.7387837 m World muIoni - 138 14.459118 cm -1.6968022 m -5.1229576 m 18.903974 MeV 9.736848 keV 2.3634289 cm 4.762418 m World muIoni - 139 14.47716 cm -1.7009352 m -5.1303175 m 18.885161 MeV 4.3697191 keV 8.4428611 mm 4.7708609 m World muIoni - 140 14.514316 cm -1.7093689 m -5.1453139 m 18.877269 MeV 7.8919285 keV 1.7209239 cm 4.7880701 m World muIoni - 141 14.784649 cm -1.771517 m -5.2564484 m 18.825402 MeV 51.866674 keV 12.736174 cm 4.9154319 m World muIoni - 142 14.846674 cm -1.7855073 m -5.2810947 m 18.812771 MeV 11.028001 keV 2.8347107 cm 4.943779 m World muIoni - 143 14.963525 cm -1.8143242 m -5.3321405 m 18.794882 MeV 17.889457 keV 5.8630108 cm 5.0024091 m World muIoni - 144 15.03561 cm -1.8412361 m -5.3793622 m 18.774899 MeV 18.381579 keV 5.4357137 cm 5.0567662 m World muIoni - 145 15.078809 cm -1.8580092 m -5.40857 m 18.758141 MeV 11.1941 keV 3.3684204 cm 5.0904504 m World muIoni - 146 15.091895 cm -1.8654113 m -5.4214511 m 18.74849 MeV 6.8567833 keV 1.4857015 cm 5.1053074 m World muIoni - 147 15.202394 cm -1.9351146 m -5.5424164 m 18.700205 MeV 46.6903 keV 13.961724 cm 5.2449247 m World muIoni - 148 15.249999 cm -1.9580921 m -5.5827812 m 18.681951 MeV 16.583287 keV 4.6449158 cm 5.2913738 m World muIoni - 149 15.268047 cm -1.9699986 m -5.6037305 m 18.662079 MeV 6.6783283 keV 2.4097203 cm 5.315471 m World muIoni - 150 15.272906 cm -1.9752136 m -5.6128563 m 18.648095 MeV 5.6759907 keV 1.0510927 cm 5.325982 m World muIoni - 151 15.285925 cm -1.9918278 m -5.6419912 m 18.632171 MeV 14.28144 keV 3.3539474 cm 5.3595214 m World muIoni - 152 15.286053 cm -1.992605 m -5.6433685 m 18.629982 MeV 485.96953 eV 1.5814349 mm 5.3611029 m World muIoni - 153 15.288112 cm -2.0017785 m -5.6596485 m 18.620131 MeV 7.2561188 keV 1.8686721 cm 5.3797896 m World muIoni - 154 15.288146 cm -2.0020252 m -5.6600879 m 18.614223 MeV 131.25187 eV 503.92787 um 5.3802935 m World muIoni - 155 15.288058 cm -2.0032007 m -5.6621815 m 18.613548 MeV 674.71649 eV 2.4010252 mm 5.3826945 m World muIoni - 156 15.287792 cm -2.0184004 m -5.6892349 m 18.601974 MeV 11.574308 keV 3.1030994 cm 5.4137255 m World muIoni - 157 15.288423 cm -2.0203251 m -5.6926586 m 18.600259 MeV 1.7149214 keV 3.9275652 mm 5.4176531 m World muIoni - 158 15.288665 cm -2.0210177 m -5.6938915 m 18.596156 MeV 531.53079 eV 1.4141484 mm 5.4190673 m World muIoni - 159 15.290733 cm -2.0263165 m -5.7033509 m 18.592774 MeV 2.3166452 keV 1.0842441 cm 5.4299097 m World muIoni - 160 15.293086 cm -2.0372052 m -5.7226992 m 18.583633 MeV 7.0371835 keV 2.2201965 cm 5.4521117 m World muIoni - 161 15.324942 cm -2.0521499 m -5.7489082 m 18.573888 MeV 8.1152683 keV 3.0172178 cm 5.4822838 m World muIoni - 162 15.33447 cm -2.0569313 m -5.7573406 m 18.551778 MeV 2.1873939 keV 9.6941897 mm 5.491978 m World muIoni - 163 15.341963 cm -2.061972 m -5.7662315 m 18.546681 MeV 3.8532456 keV 1.0220692 cm 5.5021987 m World muIoni - 164 15.384007 cm -2.0880514 m -5.8121376 m 18.528238 MeV 16.243394 keV 5.2798719 cm 5.5549974 m World muIoni - 165 15.39168 cm -2.0954609 m -5.8250844 m 18.495454 MeV 5.2686646 keV 1.491736 cm 5.5699148 m World muIoni - 166 15.397558 cm -2.0985848 m -5.8305649 m 18.489858 MeV 3.9349626 keV 6.3085964 mm 5.5762234 m World muIoni - 167 15.548156 cm -2.1723873 m -5.9600318 m 18.438566 MeV 51.292129 keV 14.90352 cm 5.7252586 m World muIoni - 168 15.550306 cm -2.1760865 m -5.9666816 m 18.434375 MeV 2.9988675 keV 7.6095419 mm 5.7328681 m World muIoni - 169 15.558154 cm -2.1917746 m -5.9949222 m 18.423496 MeV 9.7744871 keV 3.2305696 cm 5.7651738 m World muIoni - 170 15.583062 cm -2.2205245 m -6.0464863 m 18.400761 MeV 22.734657 keV 5.903832 cm 5.8242122 m World muIoni - 171 15.591359 cm -2.2284529 m -6.0607457 m 18.392976 MeV 4.9947447 keV 1.6315503 cm 5.8405277 m World muIoni - 172 15.592556 cm -2.2296922 m -6.0630001 m 18.380759 MeV 557.7675 eV 2.5726498 mm 5.8431003 m World muIoni - 173 15.601152 cm -2.2375651 m -6.0772808 m 18.374527 MeV 6.2316706 keV 1.6307345 cm 5.8594077 m World muIoni - 174 15.610569 cm -2.2439254 m -6.088789 m 18.364578 MeV 4.7822406 keV 1.314914 cm 5.8725568 m World muIoni - 175 15.546981 cm -2.3063437 m -6.202845 m 18.317422 MeV 47.155378 keV 13.0025 cm 6.0025818 m World muIoni - 176 15.552884 cm -2.3178382 m -6.2239399 m 18.303131 MeV 12.592191 keV 2.4023479 cm 6.0266053 m World muIoni - 177 15.553402 cm -2.3227451 m -6.2329175 m 18.299105 MeV 4.0260082 keV 1.0231085 cm 6.0368364 m World muIoni - 178 15.556088 cm -2.337025 m -6.2590931 m 18.282561 MeV 13.757438 keV 2.9817483 cm 6.0666538 m World muIoni - 179 15.554649 cm -2.3398905 m -6.2643582 m 18.280173 MeV 1.3032543 keV 5.9943459 mm 6.0726482 m World muIoni - 180 15.538617 cm -2.3662307 m -6.3128416 m 18.258021 MeV 19.919877 keV 5.5177027 cm 6.1278252 m World muIoni - 181 15.538018 cm -2.3671335 m -6.3145028 m 18.257192 MeV 829.47387 eV 1.8907348 mm 6.1297159 m World muIoni - 182 15.524488 cm -2.3874099 m -6.3518221 m 18.234326 MeV 16.96844 keV 4.2472257 cm 6.1721882 m World muIoni - 183 15.521147 cm -2.3898857 m -6.3563775 m 18.231073 MeV 2.213223 keV 5.1848435 mm 6.177373 m World muIoni - 184 15.437652 cm -2.4565827 m -6.4792463 m 18.175938 MeV 53.80991 keV 13.980901 cm 6.3171821 m World muIoni - 185 15.424602 cm -2.4627859 m -6.4907469 m 18.166248 MeV 4.5012024 keV 1.3067509 cm 6.3302496 m World muIoni - 186 15.422503 cm -2.463784 m -6.4926026 m 18.163689 MeV 822.8243 eV 2.1072733 mm 6.3323568 m World muIoni - 187 15.408268 cm -2.4705124 m -6.505109 m 18.156711 MeV 5.7262545 keV 1.4202183 cm 6.346559 m World muIoni - 188 15.392647 cm -2.4758364 m -6.5149672 m 18.151816 MeV 3.8251113 keV 1.1205057 cm 6.3577641 m World muIoni - 189 15.386729 cm -2.4777847 m -6.5185694 m 18.147705 MeV 2.146093 keV 4.0957285 mm 6.3618598 m World muIoni - 190 15.384331 cm -2.4786252 m -6.5201219 m 18.145673 MeV 467.86864 eV 1.7655938 mm 6.3636254 m World muIoni - 191 15.365064 cm -2.4848039 m -6.531533 m 18.137488 MeV 8.1857534 keV 1.2977956 cm 6.3766034 m World muIoni - 192 15.309616 cm -2.5073077 m -6.5730434 m 18.124061 MeV 13.426875 keV 4.7221449 cm 6.4238248 m World muIoni - 193 15.262091 cm -2.528975 m -6.6128901 m 18.104586 MeV 16.172945 keV 4.5359421 cm 6.4691842 m World muIoni - 194 15.252699 cm -2.5347374 m -6.6234865 m 18.099389 MeV 4.0448833 keV 1.2062254 cm 6.4812465 m World muIoni - 195 15.245195 cm -2.5389953 m -6.631271 m 18.094533 MeV 3.0708588 keV 8.8731766 mm 6.4901197 m World muIoni - 196 15.209753 cm -2.5665499 m -6.6817215 m 18.061598 MeV 24.441934 keV 5.7486272 cm 6.5476059 m World muIoni - 197 15.200092 cm -2.5723216 m -6.6922598 m 18.057841 MeV 3.7575785 keV 1.2015737 cm 6.5596217 m World muIoni - 198 15.181306 cm -2.5865719 m -6.7183 m 18.044834 MeV 11.169416 keV 2.9685109 cm 6.5893068 m World muIoni - 199 15.171975 cm -2.5951746 m -6.7339574 m 18.036903 MeV 6.6832896 keV 1.786532 cm 6.6071721 m World muIoni - 200 15.171434 cm -2.5957262 m -6.7349583 m 18.032468 MeV 965.75421 eV 1.1428619 mm 6.608315 m World muIoni - 201 15.150692 cm -2.6228169 m -6.7840844 m 18.008761 MeV 18.990947 keV 5.610131 cm 6.6644163 m World muIoni - 202 15.150278 cm -2.6231491 m -6.7846898 m 17.949691 MeV 96.737893 eV 690.53104 um 6.6651068 m World muIoni - 203 15.136447 cm -2.6301714 m -6.797503 m 17.944436 MeV 3.8137678 keV 1.4612062 cm 6.6797189 m World muIoni - 204 15.115241 cm -2.6387834 m -6.8133482 m 17.937829 MeV 5.4803257 keV 1.8035623 cm 6.6977545 m World muIoni - 205 15.07681 cm -2.6573796 m -6.8476041 m 17.923904 MeV 10.338809 keV 3.8979983 cm 6.7367345 m World muIoni - 206 15.064192 cm -2.666336 m -6.8641089 m 17.907282 MeV 10.565594 keV 1.8778766 cm 6.7555132 m World muIoni - 207 15.035551 cm -2.6798634 m -6.8888056 m 17.896376 MeV 8.2855877 keV 2.8160372 cm 6.7836736 m World muIoni - 208 15.032578 cm -2.6821627 m -6.8929767 m 17.894356 MeV 2.0204058 keV 4.7629775 mm 6.7884366 m World muIoni - 209 15.018685 cm -2.6927569 m -6.9121911 m 17.886093 MeV 6.5191118 keV 2.1941923 cm 6.8103785 m World muIoni - 210 15.013557 cm -2.6959605 m -6.9179418 m 17.880311 MeV 1.934413 keV 6.5830407 mm 6.8169615 m World muIoni - 211 14.99425 cm -2.7116097 m -6.9460492 m 17.866549 MeV 9.4219437 keV 3.2170908 cm 6.8491324 m World muIoni - 212 14.988149 cm -2.7170778 m -6.9557916 m 17.860761 MeV 4.5701809 keV 1.1172302 cm 6.8603048 m World muIoni - 213 14.986844 cm -2.7179971 m -6.9574347 m 17.856909 MeV 1.4373346 keV 1.8827335 mm 6.8621875 m World muIoni - 214 14.985262 cm -2.7190884 m -6.9593852 m 17.853999 MeV 1.020207 keV 2.2351625 mm 6.8644226 m World muIoni - 215 14.956474 cm -2.7380876 m -6.9934561 m 17.842396 MeV 11.602752 keV 3.9011414 cm 6.9034341 m World muIoni - 216 14.949561 cm -2.7417264 m -6.9999912 m 17.836491 MeV 4.5640708 keV 7.4801534 mm 6.9109142 m World muIoni - 217 14.924391 cm -2.7531009 m -7.0204654 m 17.824887 MeV 10.011244 keV 2.342307 cm 6.9343373 m World muIoni - 218 14.893988 cm -2.7642297 m -7.0404378 m 17.813605 MeV 7.3974034 keV 2.2865657 cm 6.9572029 m World muIoni - 219 14.834148 cm -2.7841577 m -7.076505 m 17.792019 MeV 17.954536 keV 4.1210936 cm 6.9984139 m World muIoni - 220 14.780007 cm -2.8108028 m -7.124918 m 17.771391 MeV 20.627955 keV 5.5263998 cm 7.0536779 m World muIoni - 221 14.77594 cm -2.8133322 m -7.1295163 m 17.765332 MeV 1.6404692 keV 5.2482433 mm 7.0589261 m World muIoni - 222 14.773213 cm -2.8150892 m -7.1327093 m 17.764411 MeV 921.47046 eV 3.644627 mm 7.0625707 m World muIoni - 223 14.769974 cm -2.8172407 m -7.1366176 m 17.756159 MeV 2.1432273 keV 4.4614737 mm 7.0670322 m World muIoni - 224 14.763244 cm -2.8216983 m -7.1447309 m 17.726632 MeV 3.7090421 keV 9.2574245 mm 7.0762896 m World muIoni - 225 14.755029 cm -2.8271048 m -7.1545615 m 17.716789 MeV 3.1979417 keV 1.1219541 cm 7.0875092 m World muIoni - 226 14.740516 cm -2.8422656 m -7.1821619 m 17.703688 MeV 13.101217 keV 3.1490654 cm 7.1189998 m World muIoni - 227 14.740398 cm -2.8423967 m -7.1823991 m 17.701928 MeV 37.49977 eV 270.99059 um 7.1192708 m World muIoni - 228 14.595427 cm -2.8889086 m -7.2658423 m 17.666976 MeV 31.446056 keV 9.5548182 cm 7.214819 m World muIoni - 229 14.374152 cm -2.9162665 m -7.3144519 m 17.642961 MeV 19.943523 keV 5.5823723 cm 7.2706427 m World muIoni - 230 14.283231 cm -2.9273872 m -7.3342027 m 17.629155 MeV 7.5738071 keV 2.2684621 cm 7.2933274 m World muIoni - 231 14.133036 cm -2.9478032 m -7.3705106 m 17.597965 MeV 16.727716 keV 4.1681431 cm 7.3350088 m World muIoni - 232 14.074357 cm -2.9568291 m -7.3864881 m 17.589777 MeV 8.1875852 keV 1.8360196 cm 7.353369 m World muIoni - 233 13.96816 cm -2.9736801 m -7.4163587 m 17.57534 MeV 13.342703 keV 3.4312441 cm 7.3876814 m World muIoni - 234 13.912166 cm -2.9824615 m -7.4318966 m 17.56329 MeV 8.1975373 keV 1.7856466 cm 7.4055379 m World muIoni - 235 13.758136 cm -3.0056359 m -7.4730933 m 17.538923 MeV 17.629204 keV 4.7292846 cm 7.4528307 m World muIoni - 236 13.697239 cm -3.0151718 m -7.4900145 m 17.532125 MeV 5.6284638 keV 1.9432814 cm 7.4722635 m World muIoni - 237 13.570624 cm -3.035441 m -7.5258555 m 17.462504 MeV 14.826518 keV 4.1195088 cm 7.5134586 m World muIoni - 238 13.565557 cm -3.036554 m -7.5278241 m 17.460863 MeV 159.39475 eV 2.2619731 mm 7.5157206 m World muIoni - 239 13.557212 cm -3.0383248 m -7.5309586 m 17.457041 MeV 1.6135949 keV 3.6011076 mm 7.5193217 m World muIoni - 240 13.552947 cm -3.0392113 m -7.5325246 m 17.45407 MeV 1.0894767 keV 1.7999994 mm 7.5211217 m World muIoni - 241 13.473635 cm -3.0559031 m -7.561976 m 17.430082 MeV 9.6168919 keV 3.386202 cm 7.5549837 m World muIoni - 242 13.439183 cm -3.0627227 m -7.574011 m 17.424398 MeV 4.3660769 keV 1.3837193 cm 7.5688209 m World muIoni - 243 13.428401 cm -3.0649735 m -7.5780113 m 17.419431 MeV 2.0954348 keV 4.5913882 mm 7.5734123 m World muIoni - 244 13.408631 cm -3.0691643 m -7.5854743 m 17.412228 MeV 2.9897382 keV 8.5613704 mm 7.5819737 m World muIoni - 245 13.400193 cm -3.0709411 m -7.5886242 m 17.408602 MeV 1.7731102 keV 3.6175199 mm 7.5855912 m World muIoni - 246 13.388347 cm -3.0733555 m -7.5929018 m 17.392194 MeV 1.9707394 keV 4.9133382 mm 7.5905045 m World muIoni - 247 13.381329 cm -3.0746846 m -7.5952737 m 17.391636 MeV 557.82319 eV 2.7197448 mm 7.5932243 m World muIoni - 248 13.359788 cm -3.0787735 m -7.6025812 m 17.390728 MeV 908.3916 eV 8.3765151 mm 7.6016008 m World muIoni - 249 13.347764 cm -3.0810091 m -7.6065808 m 17.388193 MeV 926.0009 eV 4.5835365 mm 7.6061843 m World muIoni - 250 13.329282 cm -3.0845608 m -7.6129179 m 17.380767 MeV 2.0004218 keV 7.2669138 mm 7.6134513 m World muIoni - 251 13.157 cm -3.1174085 m -7.6714865 m 17.358395 MeV 21.263514 keV 6.7173536 cm 7.6806248 m World muIoni - 252 13.138721 cm -3.1210193 m -7.6779503 m 17.347851 MeV 3.6662352 keV 7.406258 mm 7.6880311 m World muIoni - 253 13.119305 cm -3.1247632 m -7.6846883 m 17.341909 MeV 3.6933666 keV 7.7107308 mm 7.6957418 m World muIoni - 254 13.10484 cm -3.1278118 m -7.6901742 m 17.338686 MeV 1.6546117 keV 6.2777231 mm 7.7020195 m World muIoni - 255 13.104759 cm -3.1278302 m -7.6902072 m 17.337546 MeV 0 eV 37.815379 um 7.7020573 m World muIoni - 256 13.007144 cm -3.1501493 m -7.7302038 m 17.319465 MeV 16.503412 keV 4.5813197 cm 7.7478705 m World muIoni - 257 12.998305 cm -3.1520163 m -7.7335641 m 17.316217 MeV 2.0012677 keV 3.8450503 mm 7.7517156 m World muIoni - 258 12.886485 cm -3.1735318 m -7.7722383 m 17.286032 MeV 16.939616 keV 4.4270576 cm 7.7959861 m World muIoni - 259 12.837123 cm -3.1830144 m -7.7893433 m 17.272621 MeV 7.6992007 keV 1.9563941 cm 7.8155501 m World muIoni - 260 12.834314 cm -3.1836036 m -7.7904073 m 17.231963 MeV 112.19901 eV 1.2164884 mm 7.8167666 m World muIoni - 261 12.83019 cm -3.1846061 m -7.7922228 m 17.225678 MeV 1.6424482 keV 2.0743796 mm 7.818841 m World muIoni - 262 12.786416 cm -3.194978 m -7.8109873 m 17.213964 MeV 7.7746042 keV 2.1444735 cm 7.8402857 m World muIoni - 263 12.786158 cm -3.1950286 m -7.8110794 m 17.211348 MeV 0 eV 105.09637 um 7.8403908 m World muIoni - 264 12.785309 cm -3.1951892 m -7.8113721 m 17.210039 MeV 0 eV 333.92042 um 7.8407247 m World muIoni - 265 12.759862 cm -3.2000513 m -7.8202379 m 17.202332 MeV 2.9679031 keV 1.0114727 cm 7.8508394 m World muIoni - 266 12.758387 cm -3.2003365 m -7.8207581 m 17.189297 MeV 443.26222 eV 593.41779 um 7.8514328 m World muIoni - 267 12.71735 cm -3.2088829 m -7.8363403 m 17.184871 MeV 3.4062983 keV 1.7776806 cm 7.8692097 m World muIoni - 268 12.708145 cm -3.2109012 m -7.8400176 m 17.178963 MeV 2.1701491 keV 4.1957917 mm 7.8734054 m World muIoni - 269 12.662924 cm -3.2205655 m -7.8576132 m 17.169014 MeV 6.3329286 keV 2.0080127 cm 7.8934856 m World muIoni - 270 12.65758 cm -3.2219252 m -7.8600839 m 17.166792 MeV 1.1723539 keV 2.8206201 mm 7.8963062 m World muIoni - 271 12.542712 cm -3.2522512 m -7.9151004 m 17.137688 MeV 25.881623 keV 6.2832037 cm 7.9591382 m World muIoni - 272 12.456175 cm -3.2747672 m -7.9557797 m 17.114705 MeV 21.818198 keV 4.6503155 cm 8.0056414 m World muIoni - 273 12.456163 cm -3.2747694 m -7.9557837 m 17.114703 MeV 1.7211421 eV 4.5932046 um 8.005646 m World muIoni - 274 12.247209 cm -3.3139826 m -8.0269638 m 17.079436 MeV 33.567968 keV 8.1294412 cm 8.0869404 m World muIoni - 275 12.232417 cm -3.316568 m -8.0317047 m 17.063013 MeV 1.4695285 keV 5.4020369 mm 8.0923424 m World muIoni - 276 12.120809 cm -3.3345168 m -8.0646796 m 17.039591 MeV 16.73303 keV 3.756008 cm 8.1299025 m World muIoni - 277 11.920825 cm -3.3624514 m -8.1163084 m 17.019184 MeV 20.407248 keV 5.8736035 cm 8.1886385 m World muIoni - 278 11.916174 cm -3.3630029 m -8.1173255 m 17.017164 MeV 401.16314 eV 1.1579551 mm 8.1897965 m World muIoni - 279 11.856785 cm -3.3701524 m -8.1305037 m 17.0064 MeV 8.6827668 keV 1.5004445 cm 8.2048009 m World muIoni - 280 11.816017 cm -3.3750611 m -8.1396007 m 17.002372 MeV 2.8163923 keV 1.0344855 cm 8.2151458 m World muIoni - 281 11.785407 cm -3.3786054 m -8.1461423 m 16.998282 MeV 4.089678 keV 7.446389 mm 8.2225922 m World muIoni - 282 11.635558 cm -3.3955362 m -8.1774185 m 16.988457 MeV 7.6371955 keV 3.5596531 cm 8.2581887 m World muIoni - 283 11.629608 cm -3.3962033 m -8.1786421 m 16.986702 MeV 181.53672 eV 1.3948901 mm 8.2595836 m World muIoni - 284 11.352541 cm -3.4269995 m -8.2351963 m 16.962005 MeV 23.404576 keV 6.4455535 cm 8.3240391 m World muIoni - 285 11.150339 cm -3.4510406 m -8.2795827 m 16.937604 MeV 22.277442 keV 5.0519787 cm 8.3745589 m World muIoni - 286 11.054217 cm -3.461671 m -8.2992056 m 16.910305 MeV 9.7718143 keV 2.2338078 cm 8.396897 m World muIoni - 287 10.947308 cm -3.4737641 m -8.3215222 m 16.898014 MeV 10.693875 keV 2.5405118 cm 8.4223021 m World muIoni - 288 10.805029 cm -3.4941439 m -8.3587044 m 16.879942 MeV 16.52804 keV 4.2425445 cm 8.4647276 m World muIoni - 289 10.673432 cm -3.5116069 m -8.3900815 m 16.866825 MeV 11.884154 keV 3.5934668 cm 8.5006622 m World muIoni - 290 10.506144 cm -3.5295902 m -8.4221963 m 16.848096 MeV 17.492368 keV 3.6845134 cm 8.5375074 m World muIoni - 291 10.400515 cm -3.5419295 m -8.4442483 m 16.83707 MeV 7.6913275 keV 2.5291707 cm 8.5627991 m World muIoni - 292 10.39179 cm -3.5430396 m -8.4462215 m 16.836429 MeV 640.25892 eV 2.2657221 mm 8.5650648 m World muIoni - 293 10.368766 cm -3.5459803 m -8.4514479 m 16.818635 MeV 2.1701975 keV 6.0013164 mm 8.5710661 m World muIoni - 294 10.248381 cm -3.561873 m -8.4797214 m 16.805681 MeV 10.19384 keV 3.2456534 cm 8.6035227 m World muIoni - 295 10.233466 cm -3.5639412 m -8.4834036 m 16.803393 MeV 1.1236571 keV 4.2259251 mm 8.6077486 m World muIoni - 296 10.20965 cm -3.5672581 m -8.4893326 m 16.79833 MeV 3.0011484 keV 6.7979339 mm 8.6145465 m World muIoni - 297 10.158341 cm -3.5745323 m -8.5022695 m 16.791846 MeV 5.4189449 keV 1.4850581 cm 8.6293971 m World muIoni - 298 10.149396 cm -3.5757292 m -8.5043997 m 16.788923 MeV 1.6324269 keV 2.4450466 mm 8.6318421 m World muIoni - 299 10.040685 cm -3.5901509 m -8.5300747 m 16.767396 MeV 15.266453 keV 2.9468257 cm 8.6613104 m World muIoni - 300 9.824487 cm -3.618122 m -8.5795933 m 16.745283 MeV 20.525495 keV 5.6913931 cm 8.7182243 m World muIoni - 301 9.6918388 cm -3.6353498 m -8.6102519 m 16.73099 MeV 12.631614 keV 3.5192556 cm 8.7534169 m World muIoni - 302 9.5681716 cm -3.6511231 m -8.6382957 m 16.712438 MeV 13.627773 keV 3.2199154 cm 8.785616 m World muIoni - 303 9.4830349 cm -3.6618323 m -8.6574383 m 16.699415 MeV 8.6449101 keV 2.1951196 cm 8.8075672 m World muIoni - 304 9.4522181 cm -3.6658069 m -8.6645451 m 16.694231 MeV 3.1835872 keV 8.148557 mm 8.8157158 m World muIoni - 305 9.409644 cm -3.671286 m -8.674443 m 16.690704 MeV 3.5275832 keV 1.1321237 cm 8.827037 m World muIoni - 306 9.3031117 cm -3.684984 m -8.6992655 m 16.681153 MeV 8.2805699 keV 2.8371276 cm 8.8554083 m World muIoni - 307 9.2066555 cm -3.697395 m -8.7215913 m 16.668669 MeV 11.324178 keV 2.5561897 cm 8.8809702 m World muIoni - 308 9.1992899 cm -3.6982987 m -8.7232114 m 16.666484 MeV 776.79607 eV 1.856619 mm 8.8828268 m World muIoni - 309 9.147288 cm -3.7047447 m -8.7347764 m 16.659808 MeV 5.5326492 keV 1.3250267 cm 8.8960771 m World muIoni - 310 9.1433245 cm -3.705282 m -8.7357343 m 16.654407 MeV 1.8701983 keV 1.0990278 mm 8.8971761 m World muIoni - 311 9.1407353 cm -3.7056302 m -8.7363567 m 16.650728 MeV 189.43313 eV 713.59656 um 8.8978897 m World muIoni - 312 9.1303181 cm -3.7070227 m -8.7388501 m 16.646444 MeV 1.4694209 keV 2.8578338 mm 8.9007475 m World muIoni - 313 9.1014246 cm -3.7109038 m -8.745815 m 16.641177 MeV 3.9885669 keV 7.9784827 mm 8.908726 m World muIoni - 314 8.9680872 cm -3.7277365 m -8.7760566 m 16.613379 MeV 13.94256 keV 3.4636433 cm 8.9433625 m World muIoni - 315 8.9414267 cm -3.7315824 m -8.7829757 m 16.604642 MeV 5.1110341 keV 7.920561 mm 8.951283 m World muIoni - 316 8.8731535 cm -3.7413139 m -8.8004703 m 16.594035 MeV 9.5441976 keV 2.0030799 cm 8.9713138 m World muIoni - 317 8.8660207 cm -3.7423322 m -8.8023122 m 16.591084 MeV 1.8928438 keV 2.1058675 mm 8.9734197 m World muIoni - 318 8.8087898 cm -3.7505833 m -8.8174271 m 16.580388 MeV 8.8573645 keV 1.7229866 cm 8.9906496 m World muIoni - 319 8.7706628 cm -3.7561199 m -8.8276167 m 16.574066 MeV 4.9001749 keV 1.1602943 cm 9.0022525 m World muIoni - 320 8.7510191 cm -3.7590906 m -8.8330865 m 16.565082 MeV 2.4692502 keV 6.2275453 mm 9.00848 m World muIoni - 321 8.641964 cm -3.7769128 m -8.8660219 m 16.552108 MeV 10.843503 keV 3.746431 cm 9.0459444 m World muIoni - 322 8.5115618 cm -3.7964442 m -8.9023664 m 16.530939 MeV 18.776517 keV 4.1280924 cm 9.0872253 m World muIoni - 323 8.4855686 cm -3.7999128 m -8.9087831 m 16.508055 MeV 2.7523327 keV 7.298757 mm 9.094524 m World muIoni - 324 8.4633791 cm -3.8026566 m -8.9138905 m 16.502935 MeV 1.3782448 keV 5.8020785 mm 9.1003261 m World muIoni - 325 8.4060984 cm -3.8100098 m -8.9275421 m 16.492993 MeV 5.3407952 keV 1.551659 cm 9.1158427 m World muIoni - 326 8.3671474 cm -3.8149159 m -8.9366588 m 16.485721 MeV 4.4258166 keV 1.0360332 cm 9.126203 m World muIoni - 327 8.3370752 cm -3.8184544 m -8.9432555 m 16.480869 MeV 2.4229414 keV 7.4918413 mm 9.1336949 m World muIoni - 328 8.0828455 cm -3.8482747 m -8.9985148 m 16.454263 MeV 25.140975 keV 6.284397 cm 9.1965388 m World muIoni - 329 8.0657061 cm -3.8505516 m -9.0027295 m 16.447849 MeV 2.8427333 keV 4.7934315 mm 9.2013323 m World muIoni - 330 7.9756926 cm -3.862445 m -9.0246974 m 16.434631 MeV 9.2419812 keV 2.4997133 cm 9.2263294 m World muIoni - 331 7.7354626 cm -3.8945525 m -9.0843319 m 16.406338 MeV 26.27609 keV 6.7771787 cm 9.2941012 m World muIoni - 332 7.7039288 cm -3.8986496 m -9.0918487 m 16.402601 MeV 2.3654688 keV 8.5667159 mm 9.3026679 m World muIoni - 333 7.6974981 cm -3.8994708 m -9.0933505 m 16.400537 MeV 455.01308 eV 1.712856 mm 9.3043808 m World muIoni - 334 7.5843018 cm -3.914212 m -9.1204149 m 16.389819 MeV 10.718215 keV 3.0839432 cm 9.3352202 m World muIoni - 335 7.5616008 cm -3.9174376 m -9.1263707 m 16.387021 MeV 1.4415669 keV 6.7770445 mm 9.3419972 m World muIoni - 336 7.5526349 cm -3.9186629 m -9.1286367 m 16.38434 MeV 324.25101 eV 2.5775992 mm 9.3445748 m World muIoni - 337 7.172296 cm -3.9696797 m -9.223031 m 16.330106 MeV 53.176843 keV 10.736765 cm 9.4519425 m World muIoni - 338 6.9514273 cm -3.9910227 m -9.2627467 m 16.311552 MeV 17.50604 keV 4.5141516 cm 9.497084 m World muIoni - 339 6.9133613 cm -3.9951204 m -9.2703691 m 16.306769 MeV 3.3859733 keV 8.6624661 mm 9.5057465 m World muIoni - 340 6.8843143 cm -3.9982082 m -9.2760966 m 16.305396 MeV 1.3725178 keV 6.5133028 mm 9.5122598 m World muIoni - 341 6.7094707 cm -4.0161707 m -9.3093665 m 16.287402 MeV 14.675542 keV 3.7849754 cm 9.5501095 m World muIoni - 342 6.6539765 cm -4.0217707 m -9.3197466 m 16.280958 MeV 6.4439285 keV 1.1807442 cm 9.561917 m World muIoni - 343 6.5328809 cm -4.0341746 m -9.3427237 m 16.26616 MeV 12.817489 keV 2.6139457 cm 9.5880564 m World muIoni - 344 6.3904014 cm -4.0488134 m -9.3701058 m 16.226298 MeV 12.219415 keV 3.1082374 cm 9.6191388 m World muIoni - 345 6.2675848 cm -4.0613596 m -9.3938009 m 16.212364 MeV 8.7762797 keV 2.6839847 cm 9.6459787 m World muIoni - 346 6.2335381 cm -4.0647662 m -9.4002336 m 16.204011 MeV 3.3073701 keV 7.2869827 mm 9.6532656 m World muIoni - 347 6.1502102 cm -4.0732615 m -9.4162069 m 16.194515 MeV 9.4959957 keV 1.8111112 cm 9.6713768 m World muIoni - 348 5.9847384 cm -4.0900405 m -9.4476113 m 16.178691 MeV 13.47343 keV 3.5644397 cm 9.7070211 m World muIoni - 349 5.864848 cm -4.1019191 m -9.4695401 m 16.170115 MeV 8.5762568 keV 2.4968272 cm 9.7319894 m World muIoni - 350 5.7215951 cm -4.1165767 m -9.4966733 m 16.156035 MeV 14.080363 keV 3.0872488 cm 9.7628619 m World muIoni - 351 5.7030699 cm -4.1184114 m -9.5000563 m 16.153326 MeV 458.73698 eV 3.8529817 mm 9.7667149 m World muIoni - 352 5.6852269 cm -4.1202047 m -9.5033637 m 16.15098 MeV 1.2690967 keV 3.7664814 mm 9.7704814 m World muIoni - 353 5.3286846 cm -4.1561716 m -9.56985 m 16.123944 MeV 22.894644 keV 7.5676119 cm 9.8461575 m World muIoni - 354 5.2103011 cm -4.1701599 m -9.5954393 m 16.10934 MeV 13.609462 keV 2.9187241 cm 9.8753447 m World muIoni - 355 5.1745486 cm -4.1743926 m -9.6032334 m 16.106387 MeV 2.9530156 keV 8.8764149 mm 9.8842211 m World muIoni - 356 5.1581856 cm -4.1763086 m -9.6067403 m 16.099007 MeV 1.0062901 keV 3.9995532 mm 9.8882207 m World muIoni - 357 5.0350568 cm -4.1904136 m -9.6324917 m 16.088124 MeV 10.883486 keV 2.9387256 cm 9.917608 m World muIoni - 358 4.9659797 cm -4.1980471 m -9.6465188 m 16.081379 MeV 3.6339052 keV 1.5984541 cm 9.9335925 m World muIoni - 359 4.9502715 cm -4.199782 m -9.6496997 m 16.080109 MeV 1.2696563 keV 3.6266896 mm 9.9372192 m World muIoni - 360 4.6546293 cm -4.2322971 m -9.7093197 m 16.052828 MeV 27.281218 keV 6.7975045 cm 10.005194 m World muIoni - 361 4.6171161 cm -4.2367776 m -9.7175708 m 16.046222 MeV 4.6012261 keV 9.396563 mm 10.014591 m World muIoni - 362 4.4636111 cm -4.2558944 m -9.7525889 m 16.02583 MeV 13.315842 keV 3.9926153 cm 10.054517 m World muIoni - 363 4.3751655 cm -4.2702663 m -9.7783838 m 16.009037 MeV 12.367499 keV 2.9541757 cm 10.084059 m World muIoni - 364 3.9929963 cm -4.3361887 m -9.8960039 m 15.952683 MeV 56.354269 keV 13.489103 cm 10.21895 m World muIoni - 365 3.981849 cm -4.3383729 m -9.899898 m 15.94965 MeV 1.7566035 keV 4.466197 mm 10.223416 m World muIoni - 366 3.9181658 cm -4.3509014 m -9.9222802 m 15.933649 MeV 7.9692992 keV 2.5658027 cm 10.249074 m World muIoni - 367 3.9175991 cm -4.3510264 m -9.9225025 m 15.932646 MeV 0 eV 255.09398 um 10.249329 m World muIoni - 368 3.9086029 cm -4.3530391 m -9.9260779 m 15.93108 MeV 1.5663022 keV 4.1039387 mm 10.253433 m World muIoni - 369 3.8881498 cm -4.3576223 m -9.9342172 m 15.92721 MeV 3.8697792 keV 9.3433213 mm 10.262776 m World muIoni - 370 3.6583086 cm -4.4085265 m -10.024812 m 15.881063 MeV 35.320789 keV 10.394344 cm 10.36672 m World muIoni - 371 3.6210928 cm -4.4151896 m -10.036698 m 15.874575 MeV 4.9410698 keV 1.3631141 cm 10.380351 m World muIoni - 372 3.4124189 cm -4.4567049 m -10.110628 m 15.839724 MeV 32.552612 keV 8.4815807 cm 10.465167 m World muIoni - 373 3.3844958 cm -4.4635409 m -10.122914 m 15.834351 MeV 5.3734232 keV 1.4062465 cm 10.479229 m World muIoni - 374 3.3492857 cm -4.4730672 m -10.140015 m 15.822916 MeV 7.7383528 keV 1.9579121 cm 10.498808 m World muIoni - 375 3.2653002 cm -4.496738 m -10.182429 m 15.803853 MeV 19.062536 keV 4.8579279 cm 10.547388 m World muIoni - 376 3.254704 cm -4.5007771 m -10.189728 m 15.799902 MeV 2.6406055 keV 8.3429261 mm 10.55573 m World muIoni - 377 3.2464843 cm -4.5037635 m -10.195108 m 15.7964 MeV 2.5099041 keV 6.1534688 mm 10.561884 m World muIoni - 378 3.1273619 cm -4.5442318 m -10.268233 m 15.766032 MeV 29.041047 keV 8.3586105 cm 10.64547 m World muIoni - 379 3.0355298 cm -4.5776416 m -10.328601 m 15.733673 MeV 29.454689 keV 6.9002985 cm 10.714473 m World muIoni - 380 2.8964672 cm -4.6380087 m -10.436632 m 15.689936 MeV 41.535263 keV 12.37637 cm 10.838237 m World muIoni - 381 2.8925493 cm -4.6439809 m -10.447117 m 15.681421 MeV 4.0816775 keV 1.2066565 cm 10.850303 m World muIoni - 382 2.8853841 cm -4.6784273 m -10.507433 m 15.654726 MeV 25.128361 keV 6.9459287 cm 10.919763 m World muIoni - 383 2.888117 cm -4.6838454 m -10.516794 m 15.639012 MeV 5.3617685 keV 1.0816306 cm 10.930579 m World muIoni - 384 2.8881863 cm -4.6840661 m -10.517175 m 15.636846 MeV 90.050322 eV 440.10775 um 10.931019 m World muIoni - 385 2.8887713 cm -4.6866582 m -10.521641 m 15.629805 MeV 1.5760338 keV 5.1642263 mm 10.936183 m World muIoni - 386 2.895833 cm -4.6969451 m -10.539362 m 15.61575 MeV 7.6693672 keV 2.0489861 cm 10.956673 m World muIoni - 387 2.9050656 cm -4.7056264 m -10.554421 m 15.607153 MeV 5.8762533 keV 1.7383212 cm 10.974056 m World muIoni - 388 2.9070066 cm -4.7067289 m -10.556321 m 15.605588 MeV 474.20432 eV 2.1966729 mm 10.976253 m World muIoni - 389 2.9323648 cm -4.7208838 m -10.580745 m 15.582571 MeV 15.044658 keV 2.8230052 cm 11.004483 m World muIoni - 390 2.9737398 cm -4.739154 m -10.612117 m 15.566942 MeV 13.894228 keV 3.63069 cm 11.04079 m World muIoni - 391 2.9741208 cm -4.7393521 m -10.612455 m 15.564965 MeV 68.038961 eV 392.13365 um 11.041182 m World muIoni - 392 2.9986967 cm -4.7520006 m -10.634082 m 15.551704 MeV 10.961855 keV 2.5055178 cm 11.066237 m World muIoni - 393 3.0073945 cm -4.7591116 m -10.646252 m 15.545564 MeV 5.0145593 keV 1.4095786 cm 11.080333 m World muIoni - 394 3.0078283 cm -4.7593697 m -10.646694 m 15.541096 MeV 1.1308754 keV 511.45146 um 11.080844 m World muIoni - 395 3.0083717 cm -4.7596932 m -10.647246 m 15.539492 MeV 76.674843 eV 640.45486 um 11.081485 m World muIoni - 396 3.052229 cm -4.7872293 m -10.694233 m 15.518078 MeV 21.414708 keV 5.446293 cm 11.135948 m World muIoni - 397 3.0524015 cm -4.7873689 m -10.694467 m 15.518078 MeV 0 eV 272.64687 um 11.136221 m World muIoni - 398 3.0546206 cm -4.7892719 m -10.697663 m 15.511989 MeV 3.4001978 keV 3.7191394 mm 11.13994 m World muIoni - 399 3.0676422 cm -4.8021913 m -10.719393 m 15.499731 MeV 10.958331 keV 2.5281548 cm 11.165221 m World muIoni - 400 3.0721415 cm -4.806968 m -10.727498 m 15.486721 MeV 3.5903114 keV 9.4078673 mm 11.174629 m World muIoni - 401 3.0878071 cm -4.8173169 m -10.744633 m 15.47687 MeV 7.7352716 keV 2.0018578 cm 11.194648 m World muIoni - 402 3.1034113 cm -4.8246876 m -10.756698 m 15.472062 MeV 2.9951853 keV 1.4139193 cm 11.208787 m World muIoni - 403 3.131153 cm -4.8367664 m -10.776559 m 15.463949 MeV 8.1129415 keV 2.3246965 cm 11.232034 m World muIoni - 404 3.151207 cm -4.8465955 m -10.792795 m 15.452433 MeV 8.8157608 keV 1.8980502 cm 11.251014 m World muIoni - 405 3.1568908 cm -4.8492224 m -10.797144 m 15.450796 MeV 1.6365235 keV 5.0816131 mm 11.256096 m World muIoni - 406 3.1731984 cm -4.8578487 m -10.811435 m 15.443428 MeV 7.3680063 keV 1.6693392 cm 11.272789 m World muIoni - 407 3.181045 cm -4.86144 m -10.817388 m 15.439413 MeV 2.846108 keV 6.9531963 mm 11.279743 m World muIoni - 408 3.2300548 cm -4.8840997 m -10.855047 m 15.424926 MeV 14.487284 keV 4.3953356 cm 11.323696 m World muIoni - 409 3.2372147 cm -4.8873593 m -10.860479 m 15.420681 MeV 2.541463 keV 6.33487 mm 11.330031 m World muIoni - 410 3.279769 cm -4.9033042 m -10.8871 m 15.401847 MeV 11.415025 keV 3.1034194 cm 11.361065 m World muIoni - 411 3.2877491 cm -4.9068286 m -10.893031 m 15.395879 MeV 3.6092638 keV 6.8994207 mm 11.367964 m World muIoni - 412 3.2932356 cm -4.909117 m -10.896875 m 15.391868 MeV 1.9972759 keV 4.4743644 mm 11.372439 m World muIoni - 413 3.3215873 cm -4.9209304 m -10.916767 m 15.380796 MeV 9.1412043 keV 2.3136783 cm 11.395575 m World muIoni - 414 3.3456403 cm -4.9301627 m -10.932345 m 15.373089 MeV 6.1947654 keV 1.8110522 cm 11.413686 m World muIoni - 415 3.3923498 cm -4.9473793 m -10.96144 m 15.361623 MeV 11.466007 keV 3.3810068 cm 11.447496 m World muIoni - 416 3.4879804 cm -4.9789136 m -11.014667 m 15.278987 MeV 25.092919 keV 6.187512 cm 11.509371 m World muIoni - 417 3.4969134 cm -4.9826355 m -11.021017 m 15.267277 MeV 1.918171 keV 7.361469 mm 11.516733 m World muIoni - 418 3.5348288 cm -4.999875 m -11.050661 m 15.258628 MeV 8.6491763 keV 3.4294301 cm 11.551027 m OutOfWorld Transportation -Track (trackID 18, parentID 4) is processed with stopping code 2 + 0 -8.97 mm -3.9 mm 4.91 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -9.000459 mm -3.7848512 mm 4.9060483 cm 977.32026 keV 3.1424924 MeV 143.89929 um 143.89929 um Target muIoni + 2 -9.0063196 mm -3.7759755 mm 4.9055582 cm 185.76729 keV 791.55298 keV 15.348555 um 159.24785 um Target muIoni + 3 -9.0058545 mm -3.7759882 mm 4.9055143 cm 0 eV 185.76729 keV 1.3449863 um 160.59283 um Target muIoni + 4 -9.0058545 mm -3.7759882 mm 4.9055143 cm 0 eV 0 eV 0 fm 160.59283 um Target DecayWithSpin +Track (trackID 21, parentID 5) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.231251871871(mm),-1.5859603384821(mm),78.724775276591(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.441881(mm),0.28068291(mm),78.158655(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4617,7 +3465,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.538021(mm),-0.032184464(mm),78.494357(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.627088(mm),0.40450997(mm),78.831306(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4626,7 +3474,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.353353(mm),2.0396295(mm),78.526918(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.466102(mm),-1.4908353(mm),78.859692(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4635,7 +3483,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.910861(mm),0.77122393(mm),79.31025(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.230626(mm),-1.6918471(mm),79.07754(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4644,7 +3492,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.419235(mm),2.4315553(mm),79.044283(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.720094(mm),-0.33398674(mm),78.814906(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4653,7 +3501,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.346237(mm),-2.308584(mm),79.057154(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.238417(mm),-3.5467214(mm),78.723512(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4662,7 +3510,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.320673(mm),0.57449418(mm),78.885335(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.552892(mm),-2.8631843(mm),78.668061(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4671,7 +3519,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.417957(mm),-1.3864082(mm),79.397162(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.060572(mm),2.3683841(mm),78.22589(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4680,7 +3528,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.339088(mm),2.3703852(mm),78.705761(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.865961(mm),1.0359659(mm),78.965513(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4689,7 +3537,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.11516(mm),-0.60385064(mm),79.450553(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.252202(mm),-0.13397313(mm),78.1921(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4698,7 +3546,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.149575(mm),3.5617421(mm),78.915504(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.066426(mm),-2.1210858(mm),78.577512(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4707,7 +3555,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.145017(mm),-2.8203051(mm),78.563654(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.114824(mm),2.9548486(mm),78.568978(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4716,7 +3564,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.00367(mm),1.6014984(mm),79.117558(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.557326(mm),-1.0902881(mm),78.138299(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4725,7 +3573,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.660512(mm),-0.026025412(mm),79.354393(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.807752(mm),0.06712476(mm),78.623123(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4734,7 +3582,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.577643(mm),-3.10157(mm),79.192678(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.468452(mm),3.6214518(mm),79.035604(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4743,7 +3591,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.411288(mm),-1.7832747(mm),78.516703(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.603061(mm),1.0981653(mm),78.130234(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4752,7 +3600,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.675782(mm),2.0772575(mm),78.999046(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.799728(mm),0.12734267(mm),78.095557(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4761,7 +3609,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.514428(mm),-2.7969011(mm),79.203825(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.85878(mm),-3.3294883(mm),78.790452(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4770,7 +3618,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.593834(mm),-3.0914506(mm),79.013496(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.435228(mm),2.3434202(mm),79.21779(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4779,7 +3627,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.695987(mm),2.3772261(mm),79.171811(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.727237(mm),1.8833447(mm),78.63732(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4788,7 +3636,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.461104(mm),0.75813229(mm),78.684246(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.517684(mm),-0.84606693(mm),78.850597(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4797,7 +3645,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.579409(mm),1.6235959(mm),79.01604(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.35061(mm),-1.3454883(mm),79.409037(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4806,7 +3654,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.716427(mm),-2.3678486(mm),78.99188(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.098973(mm),-1.3255958(mm),78.7481(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4815,7 +3663,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.026932(mm),-0.62801877(mm),78.584475(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.80918(mm),-0.56355506(mm),79.151852(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4824,7 +3672,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.704383(mm),0.37765322(mm),78.465023(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.570077(mm),0.61885201(mm),79.370339(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4833,7 +3681,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.314373(mm),-1.4399872(mm),78.710119(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.943754(mm),-1.9178163(mm),78.951796(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4842,7 +3690,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.189522(mm),-0.60838563(mm),79.437441(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.635087(mm),-3.762367(mm),78.653568(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -4851,1607 +3699,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.423225(mm),-0.84211941(mm),78.161944(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.623343(mm),2.8977169(mm),78.655639(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.971489(mm),2.2952079(mm),78.241597(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.486261(mm),-1.0729094(mm),79.385118(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.446083(mm),0.85569451(mm),78.334241(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.38685(mm),0.93789493(mm),78.697339(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.361643(mm),2.2451371(mm),79.054438(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.008046(mm),-0.40208985(mm),79.46944(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.581964(mm),-2.6583741(mm),78.839262(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.034278(mm),1.0277021(mm),78.759507(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.566447(mm),-2.7318272(mm),78.841998(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.842028(mm),3.1985106(mm),78.440752(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.420022(mm),1.2074297(mm),79.044144(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.056347(mm),3.5718384(mm),78.931943(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.173808(mm),3.0071983(mm),78.558577(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.418014(mm),2.2335247(mm),79.220825(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.720988(mm),1.1554465(mm),78.991076(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.662539(mm),0.4524161(mm),79.001382(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.516967(mm),0.098642891(mm),78.674396(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.561393(mm),-1.995877(mm),78.666563(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.376845(mm),1.0661609(mm),78.346449(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.819106(mm),-0.40276056(mm),78.268467(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 - -********************************************************************************************************* -* G4Track Information: Particle = pi+, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.49 cm -471 um 6.71 cm 61.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.4172321 cm -1.7169954 mm 6.8983347 cm 52.923115 MeV 8.4551828 MeV 2.4224385 mm 2.4224385 mm Target CoulombScat - 2 -1.375907 cm -2.9387465 mm 7.0716668 cm 45.795997 MeV 7.1271186 MeV 2.1763566 mm 4.5987951 mm Target hIoni - 3 -1.3732299 cm -3.867419 mm 7.1998257 cm 39.190643 MeV 6.6053533 MeV 1.5936426 mm 6.1924378 mm Target Transportation - 4 -18.227527 cm -726.07469 um 2 m 39.190644 MeV1.2545182e-13 meV 2.3378786 m 2.3440711 m CaptureMgnt Transportation - 5 -18.199451 cm 3.1726882 cm 2.0473202 m 39.177094 MeV 13.55171 keV 5.738019 cm 2.4014513 m World hIoni - 6 -18.182215 cm 5.9215419 cm 2.0874651 m 39.116301 MeV 13.183045 keV 4.8654538 cm 2.4501058 m World hIoni - 7 -18.172351 cm 7.6181938 cm 2.1124106 m 39.108636 MeV 6.4321794 keV 3.0168707 cm 2.4802745 m World hIoni - 8 -18.169545 cm 8.0830028 cm 2.1192289 m 39.107079 MeV 1.5560342 keV 8.2520073 mm 2.4885265 m World hIoni - 9 -18.166377 cm 8.505599 cm 2.1254223 m 39.105395 MeV 1.6845734 keV 7.4978699 mm 2.4960244 m World hIoni - 10 -18.14314 cm 11.316771 cm 2.1665892 m 39.090842 MeV 10.698803 keV 4.9850168 cm 2.5458745 m World hIoni - 11 -18.136311 cm 12.04115 cm 2.1771392 m 39.087131 MeV 3.7112946 keV 1.2797653 cm 2.5586722 m World hIoni - 12 -18.100092 cm 15.777233 cm 2.2316301 m 39.062982 MeV 17.299162 keV 6.6069881 cm 2.6247421 m World hIoni - 13 -18.086697 cm 17.13767 cm 2.2515211 m 39.055293 MeV 6.6599512 keV 2.4098764 cm 2.6488408 m World hIoni - 14 -18.054656 cm 20.619898 cm 2.3024515 m 39.033343 MeV 17.166106 keV 6.1697714 cm 2.7105386 m World hIoni - 15 -18.042678 cm 22.023576 cm 2.3230422 m 39.02547 MeV 6.5251694 keV 2.492032 cm 2.7354589 m World hIoni - 16 -18.072075 cm 27.044649 cm 2.3955789 m 38.999346 MeV 23.809693 keV 8.8221015 cm 2.8236799 m World hIoni - 17 -18.072611 cm 28.708073 cm 2.4196643 m 38.992996 MeV 5.2136539 keV 2.9271245 cm 2.8529511 m World hIoni - 18 -18.076594 cm 29.535223 cm 2.4316333 m 38.988366 MeV 3.0147338 keV 1.4549078 cm 2.8675002 m World hIoni - 19 -18.079463 cm 30.22289 cm 2.441594 m 38.983888 MeV 1.4240679 keV 1.2103958 cm 2.8796042 m World hIoni - 20 -18.084048 cm 31.752035 cm 2.4637623 m 38.973722 MeV 6.6954524 keV 2.693072 cm 2.9065349 m World hIoni - 21 -18.084787 cm 32.664718 cm 2.4769388 m 38.965115 MeV 5.5229321 keV 1.6028671 cm 2.9225636 m World hIoni - 22 -18.083953 cm 33.014954 cm 2.4819861 m 38.961672 MeV 2.0065114 keV 6.1434651 mm 2.928707 m World hIoni - 23 -18.080494 cm 34.46994 cm 2.5029692 m 38.952935 MeV 7.4655698 keV 2.553407 cm 2.9542411 m World hIoni - 24 -18.075998 cm 37.660364 cm 2.5491025 m 38.933 MeV 18.845671 keV 5.6090778 cm 3.0103319 m World hIoni - 25 -18.074892 cm 38.294007 cm 2.5582347 m 38.930363 MeV 2.6371435 keV 1.1115203 cm 3.0214471 m World hIoni - 26 -18.067717 cm 40.619923 cm 2.5916591 m 38.92206 MeV 8.3030274 keV 4.0720836 cm 3.0621679 m World hIoni - 27 -18.062248 cm 41.343526 cm 2.6020688 m 38.917454 MeV 2.835736 keV 1.2677795 cm 3.0748457 m World hIoni - 28 -18.059564 cm 41.750708 cm 2.6079355 m 38.912667 MeV 2.0861566 keV 7.141332 mm 3.081987 m World hIoni - 29 -18.029837 cm 46.004134 cm 2.6691742 m 38.893542 MeV 14.804864 keV 7.4561652 cm 3.1565487 m World hIoni - 30 -18.026029 cm 46.540071 cm 2.6769303 m 38.715145 MeV 1.5679369 keV 9.4277405 mm 3.1659764 m World hIoni - 31 -18.007312 cm 48.600806 cm 2.7069583 m 38.706066 MeV 7.6653339 keV 3.6419491 cm 3.2023959 m World hIoni - 32 -18.006405 cm 48.957114 cm 2.7121405 m 38.702551 MeV 1.2286377 keV 6.2889609 mm 3.2086849 m World hIoni - 33 -18.005127 cm 49.401571 cm 2.7186083 m 38.696362 MeV 5.0169528 keV 7.84774 mm 3.2165326 m World hIoni - 34 -18.004084 cm 49.917336 cm 2.7261314 m 38.693242 MeV 2.0753169 keV 9.1212815 mm 3.2256539 m World hIoni - 35 -18.003397 cm 50.260842 cm 2.7311409 m 38.691767 MeV 1.4744067 keV 6.0741215 mm 3.231728 m World hIoni - 36 -18.001883 cm 51.26406 cm 2.7457779 m 38.685295 MeV 4.7460716 keV 1.7745052 cm 3.2494731 m World hIoni - 37 -17.997265 cm 54.0053 cm 2.7858231 m 38.67182 MeV 13.474895 keV 4.8528987 cm 3.2980021 m World hIoni - 38 -17.970457 cm 58.688539 cm 2.8547554 m 38.65043 MeV 20.172467 keV 8.3336892 cm 3.381339 m World hIoni - 39 -17.967808 cm 60.225067 cm 2.8775114 m 38.643307 MeV 7.1234527 keV 2.7457812 cm 3.4087968 m World hIoni - 40 -17.96624 cm 61.031855 cm 2.8894547 m 38.63107 MeV 2.6231646 keV 1.4412915 cm 3.4232097 m World hIoni - 41 -17.965451 cm 61.275618 cm 2.8930713 m 38.629852 MeV 1.2183175 keV 4.3614157 mm 3.4275711 m World hIoni - 42 -17.964336 cm 61.557995 cm 2.8972629 m 38.626607 MeV 2.0786181 keV 5.0540494 mm 3.4326252 m World hIoni - 43 -17.947982 cm 65.146884 cm 2.9505205 m 38.601797 MeV 20.171985 keV 6.4221654 cm 3.4968468 m World hIoni - 44 -17.946801 cm 65.312453 cm 2.9529906 m 38.600053 MeV 395.43299 eV 2.9737305 mm 3.4998205 m World hIoni - 45 -17.94019 cm 66.103141 cm 2.9647913 m 38.593941 MeV 5.0674964 keV 1.4204895 cm 3.5140254 m World hIoni - 46 -17.931269 cm 67.636693 cm 2.987651 m 38.582701 MeV 9.3319442 keV 2.7527333 cm 3.5415528 m World hIoni - 47 -17.928601 cm 68.096414 cm 2.9945222 m 38.579847 MeV 1.3461147 keV 8.2673086 mm 3.5498201 m World hIoni - 48 -17.909499 cm 71.767938 cm 3.049326 m 38.55951 MeV 18.17842 keV 6.5966048 cm 3.6157861 m World hIoni - 49 -17.879328 cm 76.620098 cm 3.1217717 m 38.538275 MeV 21.235231 keV 8.7194288 cm 3.7029804 m World hIoni - 50 -17.869223 cm 78.871917 cm 3.1555753 m 38.525413 MeV 11.566128 keV 4.0617321 cm 3.7435977 m World hIoni - 51 -17.861673 cm 79.992958 cm 3.1724694 m 38.513571 MeV 5.2101265 keV 2.0275299 cm 3.763873 m World hIoni - 52 -17.850707 cm 81.706879 cm 3.1983574 m 38.503277 MeV 9.1297123 keV 3.1047668 cm 3.7949207 m World hIoni - 53 -17.849361 cm 82.073269 cm 3.2038982 m 38.501479 MeV 1.7982071 keV 6.6426719 mm 3.8015634 m World hIoni - 54 -17.847324 cm 82.660435 cm 3.2127761 m 38.498277 MeV 3.2025056 keV 1.0643947 cm 3.8122073 m World hIoni - 55 -17.839766 cm 84.22422 cm 3.2364102 m 38.491711 MeV 5.568396 keV 2.8339365 cm 3.8405467 m World hIoni - 56 -17.826117 cm 86.923131 cm 3.2773576 m 38.474155 MeV 13.289514 keV 4.904207 cm 3.8895888 m World hIoni - 57 -17.825716 cm 86.985568 cm 3.2783008 m 38.473888 MeV 266.88429 eV 1.1311662 mm 3.8907199 m World hIoni - 58 -17.825624 cm 87.000009 cm 3.278519 m 38.469309 MeV 0 eV 261.6299 um 3.8909816 m World hIoni - 59 -17.806733 cm 90.531148 cm 3.3318402 m 38.449529 MeV 17.953529 keV 6.395382 cm 3.9549354 m World hIoni - 60 -17.805658 cm 90.632615 cm 3.3333647 m 38.448098 MeV 275.32866 eV 1.831374 mm 3.9567667 m World hIoni - 61 -17.790793 cm 92.061779 cm 3.3548517 m 38.43911 MeV 7.3330282 keV 2.5806224 cm 3.982573 m World hIoni - 62 -17.777902 cm 93.371769 cm 3.3746124 m 38.417101 MeV 7.234123 keV 2.3708908 cm 4.0062819 m World hIoni - 63 -17.758159 cm 94.783855 cm 3.3959849 m 38.406499 MeV 8.506351 keV 2.5616857 cm 4.0318987 m World hIoni - 64 -17.726468 cm 96.664582 cm 3.4243774 m 38.396294 MeV 9.18951 keV 3.4057982 cm 4.0659567 m World hIoni - 65 -17.696452 cm 98.723262 cm 3.4554459 m 38.379771 MeV 12.411592 keV 3.7271411 cm 4.1032281 m World hIoni - 66 -17.695846 cm 98.760934 cm 3.4560154 m 38.378459 MeV 168.44116 eV 682.86484 um 4.103911 m World hIoni - 67 -17.692354 cm 98.988514 cm 3.4594544 m 38.374961 MeV 405.57918 eV 4.1240172 mm 4.108035 m World hIoni - 68 -17.683391 cm 99.59641 cm 3.4686494 m 38.369527 MeV 5.4344265 keV 1.1023147 cm 4.1190582 m World hIoni - 69 -17.611037 cm 1.045541 m 3.5435182 m 38.341614 MeV 26.774084 keV 8.9798476 cm 4.2088566 m World hIoni - 70 -17.575401 cm 1.0717661 m 3.5832967 m 38.32374 MeV 14.649712 keV 4.7646831 cm 4.2565035 m World hIoni - 71 -17.458143 cm 1.1332435 m 3.6771144 m 38.290577 MeV 31.58234 keV 11.217247 cm 4.3686759 m World hIoni - 72 -17.446586 cm 1.141533 m 3.6897788 m 38.286867 MeV 2.2600575 keV 1.5136617 cm 4.3838125 m World hIoni - 73 -17.420609 cm 1.1640952 m 3.7242741 m 38.273888 MeV 11.514002 keV 4.1219511 cm 4.4250321 m World hIoni - 74 -17.419245 cm 1.1653714 m 3.7262273 m 38.273464 MeV 424.29252 eV 2.3332481 mm 4.4273653 m World hIoni - 75 -17.395223 cm 1.1883215 m 3.7613574 m 38.259854 MeV 13.609584 keV 4.1962991 cm 4.4693283 m World hIoni - 76 -17.392749 cm 1.1925905 m 3.7678935 m 38.257236 MeV 1.2801908 keV 7.8067102 mm 4.477135 m World hIoni - 77 -17.389703 cm 1.1981334 m 3.7763858 m 38.254089 MeV 1.8177961 keV 1.0141202 cm 4.4872762 m World hIoni - 78 -17.364585 cm 1.2317947 m 3.8279975 m 38.235809 MeV 15.353461 keV 6.1619226 cm 4.5488954 m World hIoni - 79 -17.348306 cm 1.2415158 m 3.8429022 m 38.229072 MeV 5.1271599 keV 1.7795407 cm 4.5666908 m World hIoni - 80 -17.318338 cm 1.2594974 m 3.870425 m 38.221265 MeV 6.4663543 keV 3.2877562 cm 4.5995684 m World hIoni - 81 -17.29917 cm 1.2705634 m 3.887304 m 38.214306 MeV 6.9585584 keV 2.0183993 cm 4.6197524 m World hIoni - 82 -17.281674 cm 1.2822014 m 3.9051577 m 38.206695 MeV 6.3281382 keV 2.1312635 cm 4.641065 m World hIoni - 83 -17.253035 cm 1.2999916 m 3.9324643 m 38.195337 MeV 9.7175918 keV 3.2591824 cm 4.6736569 m World hIoni - 84 -17.180875 cm 1.3470331 m 4.0046505 m 38.173489 MeV 21.847509 keV 8.6164397 cm 4.7598213 m World hIoni - 85 -17.085327 cm 1.3891948 m 4.0694472 m 38.15063 MeV 17.231476 keV 7.7312066 cm 4.8371333 m World hIoni - 86 -17.014088 cm 1.4259347 m 4.1260012 m 38.081307 MeV 22.760797 keV 6.7444045 cm 4.9045774 m World hIoni - 87 -17.006764 cm 1.4288532 m 4.130519 m 38.078822 MeV 1.486605 keV 5.379003 mm 4.9099564 m World hIoni - 88 -16.81413 cm 1.5042335 m 4.2472759 m 38.037637 MeV 39.485901 keV 13.898999 cm 5.0489464 m World hIoni - 89 -16.687875 cm 1.5508254 m 4.3187787 m 38.013622 MeV 24.014981 keV 8.535264 cm 5.134299 m World hIoni - 90 -16.669714 cm 1.5588551 m 4.3311441 m 38.00777 MeV 5.8522696 keV 1.4744947 cm 5.1490439 m World hIoni - 91 -16.666462 cm 1.5603558 m 4.3334582 m 37.99755 MeV 680.94266 eV 2.7582865 mm 5.1518022 m World hIoni - 92 -16.631391 cm 1.5775898 m 4.3600649 m 37.984665 MeV 6.0261029 keV 3.1702562 cm 5.1835048 m World hIoni - 93 -16.603163 cm 1.5929627 m 4.3839679 m 37.966641 MeV 15.528009 keV 2.8421105 cm 5.2119259 m World hIoni - 94 -16.577556 cm 1.6083931 m 4.407981 m 37.954542 MeV 8.2098732 keV 2.8544619 cm 5.2404705 m World hIoni - 95 -16.556904 cm 1.6212828 m 4.4281011 m 37.947396 MeV 5.0338761 keV 2.3895677 cm 5.2643662 m World hIoni - 96 -16.469152 cm 1.667312 m 4.5001577 m 37.926213 MeV 21.183238 keV 8.5508171 cm 5.3498744 m World hIoni - 97 -16.466984 cm 1.6683099 m 4.5017256 m 37.925344 MeV 868.61768 eV 1.8586488 mm 5.351733 m World hIoni - 98 -16.419339 cm 1.6903658 m 4.5363757 m 37.90903 MeV 9.4759207 keV 4.1077076 cm 5.3928101 m World hIoni - 99 -16.355732 cm 1.7295149 m 4.5979738 m 37.891218 MeV 16.66081 keV 7.2989043 cm 5.4657991 m World hIoni - 100 -16.328196 cm 1.7459095 m 4.6237796 m 37.882264 MeV 7.8133215 keV 3.0574419 cm 5.4963735 m World hIoni - 101 -16.320813 cm 1.7505343 m 4.6310586 m 37.87325 MeV 2.2942405 keV 8.6242984 mm 5.5049978 m World hIoni - 102 -16.295601 cm 1.7686224 m 4.6595953 m 37.854544 MeV 8.8692159 keV 3.3787463 cm 5.5387853 m World hIoni - 103 -16.278956 cm 1.7800538 m 4.6776355 m 37.843106 MeV 8.5866923 keV 2.1357662 cm 5.560143 m World hIoni - 104 -16.238536 cm 1.8084905 m 4.722444 m 37.824617 MeV 17.44672 keV 5.3071824 cm 5.6132148 m World hIoni - 105 -16.235294 cm 1.8113795 m 4.7269686 m 37.820735 MeV 1.2695207 keV 5.3683924 mm 5.6185832 m World hIoni - 106 -16.22492 cm 1.8199624 m 4.7404157 m 37.808402 MeV 4.0194851 keV 1.5953082 cm 5.6345363 m World hIoni - 107 -16.19305 cm 1.8442406 m 4.7785636 m 37.79399 MeV 10.909108 keV 4.5219488 cm 5.6797558 m World hIoni - 108 -16.174785 cm 1.8641139 m 4.8096945 m 37.781229 MeV 11.72546 keV 3.6933954 cm 5.7166897 m World hIoni - 109 -16.171115 cm 1.8694575 m 4.8180147 m 37.776522 MeV 1.1085991 keV 9.888393 mm 5.7265781 m World hIoni - 110 -16.16541 cm 1.8775203 m 4.8305328 m 37.770738 MeV 4.6994301 keV 1.4890159 cm 5.7414683 m World hIoni - 111 -16.152637 cm 1.8932463 m 4.8549473 m 37.761528 MeV 6.9872908 keV 2.9041174 cm 5.7705094 m World hIoni - 112 -16.151663 cm 1.8944343 m 4.8567948 m 37.759569 MeV 460.6388 eV 2.1965259 mm 5.772706 m World hIoni - 113 -16.121919 cm 1.9285727 m 4.9098384 m 37.742714 MeV 15.752359 keV 6.3080549 cm 5.8357865 m World hIoni - 114 -16.111313 cm 1.9359864 m 4.9213902 m 37.737538 MeV 3.8257409 keV 1.3726536 cm 5.849513 m World hIoni - 115 -16.07074 cm 1.9602101 m 4.9590288 m 37.724509 MeV 10.543717 keV 4.4761892 cm 5.8942749 m World hIoni - 116 -15.984351 cm 2.0155141 m 5.0448214 m 37.696522 MeV 27.98709 keV 10.207691 cm 5.9963518 m World hIoni - 117 -15.872094 cm 2.0564394 m 5.1084604 m 37.676092 MeV 18.168501 keV 7.5670952 cm 6.0720228 m World hIoni - 118 -15.807897 cm 2.0901109 m 5.1611735 m 37.647079 MeV 20.487437 keV 6.255285 cm 6.1345756 m World hIoni - 119 -15.80533 cm 2.0911487 m 5.162805 m 37.646547 MeV 532.04144 eV 1.9337764 mm 6.1365094 m World hIoni - 120 -15.776605 cm 2.1027631 m 5.1810608 m 37.630949 MeV 4.7957056 keV 2.1639129 cm 6.1581486 m World hIoni - 121 -15.764337 cm 2.1072732 m 5.1881492 m 37.629341 MeV 1.6071963 keV 8.4024637 mm 6.166551 m World hIoni - 122 -15.657772 cm 2.1467669 m 5.2501458 m 37.60785 MeV 20.283207 keV 7.3515228 cm 6.2400662 m World hIoni - 123 -15.474006 cm 2.2340953 m 5.3872159 m 37.559256 MeV 46.593681 keV 16.253641 cm 6.4026027 m World hIoni - 124 -15.382309 cm 2.275762 m 5.4523576 m 37.536519 MeV 20.541198 keV 7.7333153 cm 6.4799358 m World hIoni - 125 -15.35918 cm 2.2853177 m 5.4673506 m 37.513108 MeV 3.6421069 keV 1.7780772 cm 6.4977166 m World hIoni - 126 -15.305277 cm 2.3079131 m 5.5028442 m 37.503084 MeV 10.02474 keV 4.2078978 cm 6.5397956 m World hIoni - 127 -15.272088 cm 2.3200564 m 5.5219356 m 37.493408 MeV 7.7452655 keV 2.262856 cm 6.5624241 m World hIoni - 128 -15.270189 cm 2.3207639 m 5.5230456 m 37.491138 MeV 176.31984 eV 1.3164469 mm 6.5637406 m World hIoni - 129 -15.173681 cm 2.3577827 m 5.5811616 m 37.473969 MeV 15.842631 keV 6.8911603 cm 6.6326522 m World hIoni - 130 -15.099081 cm 2.3855379 m 5.624613 m 37.459865 MeV 13.073327 keV 5.1564924 cm 6.6842171 m World hIoni - 131 -14.998283 cm 2.4219004 m 5.6812186 m 37.44009 MeV 17.658965 keV 6.7286369 cm 6.7515035 m World hIoni - 132 -14.966458 cm 2.4377338 m 5.7059366 m 37.431138 MeV 7.1149773 keV 2.9356122 cm 6.7808596 m World hIoni - 133 -14.9483 cm 2.4470216 m 5.720542 m 37.425149 MeV 4.6288581 keV 1.7309286 cm 6.7981689 m World hIoni - 134 -14.823321 cm 2.5067343 m 5.8142571 m 37.393215 MeV 30.089368 keV 11.112947 cm 6.9092983 m World hIoni - 135 -14.794908 cm 2.521232 m 5.8372273 m 37.387455 MeV 5.7595257 keV 2.716428 cm 6.9364626 m World hIoni - 136 -14.785014 cm 2.5275676 m 5.8472783 m 37.375971 MeV 1.942034 keV 1.1881577 cm 6.9483442 m World hIoni - 137 -14.7663 cm 2.5377657 m 5.8635357 m 37.370678 MeV 3.2459485 keV 1.9192184 cm 6.9675364 m World hIoni - 138 -14.745828 cm 2.5497251 m 5.8825743 m 37.364688 MeV 5.9906062 keV 2.2484144 cm 6.9900205 m World hIoni - 139 -14.714225 cm 2.5641534 m 5.9055206 m 37.355171 MeV 9.5168222 keV 2.7107339 cm 7.0171279 m World hIoni - 140 -14.563422 cm 2.6402718 m 6.0265491 m 37.319464 MeV 31.651283 keV 14.298403 cm 7.1601119 m World hIoni - 141 -14.587873 cm 2.6703811 m 6.0744037 m 37.303178 MeV 15.271619 keV 5.653939 cm 7.2166513 m World hIoni - 142 -14.600763 cm 2.6960207 m 6.1151082 m 37.285086 MeV 10.092695 keV 4.8106869 cm 7.2647582 m World hIoni - 143 -14.603345 cm 2.7017408 m 6.1241877 m 37.266373 MeV 3.197879 keV 1.0731109 cm 7.2754893 m World hIoni - 144 -14.617238 cm 2.7467238 m 6.1955324 m 37.243926 MeV 21.378315 keV 8.4342097 cm 7.3598314 m World hIoni - 145 -14.580856 cm 2.792173 m 6.2679576 m 37.220135 MeV 23.7908 keV 8.5505544 cm 7.4453369 m World hIoni - 146 -14.553994 cm 2.8141832 m 6.3031206 m 37.208582 MeV 11.553911 keV 4.1484532 cm 7.4868214 m World hIoni - 147 -14.522206 cm 2.8363125 m 6.3385802 m 37.19109 MeV 10.5173 keV 4.1799458 cm 7.5286209 m World hIoni - 148 -14.481718 cm 2.8603499 m 6.3769286 m 37.177166 MeV 11.752524 keV 4.5261045 cm 7.5738819 m World hIoni - 149 -14.469993 cm 2.8671426 m 6.3878056 m 37.172582 MeV 3.4011023 keV 1.2824319 cm 7.5867063 m World hIoni - 150 -14.465378 cm 2.8698437 m 6.3921323 m 37.168846 MeV 2.3565121 keV 5.10082 mm 7.5918071 m World hIoni - 151 -14.449132 cm 2.8785911 m 6.4061479 m 37.163171 MeV 4.5005589 keV 1.6522171 cm 7.6083292 m World hIoni - 152 -14.42951 cm 2.8896579 m 6.4238711 m 37.155652 MeV 5.9745751 keV 2.0895582 cm 7.6292248 m World hIoni - 153 -14.371782 cm 2.9216382 m 6.4750069 m 37.133369 MeV 15.767447 keV 6.0315428 cm 7.6895403 m World hIoni - 154 -14.295932 cm 2.9636808 m 6.5421173 m 37.10888 MeV 22.634525 keV 7.9195895 cm 7.7687361 m World hIoni - 155 -14.235523 cm 2.9988109 m 6.5986068 m 37.087885 MeV 19.652562 keV 6.6525063 cm 7.8352612 m World hIoni - 156 -14.205798 cm 3.0261055 m 6.6430209 m 37.071681 MeV 14.061521 keV 5.2131561 cm 7.8873928 m World hIoni - 157 -14.20469 cm 3.0285387 m 6.6469902 m 37.065676 MeV 769.30391 eV 4.6557056 mm 7.8920485 m World hIoni - 158 -14.173564 cm 3.0800507 m 6.7310325 m 37.035071 MeV 28.0777 keV 9.857359 cm 7.9906221 m World hIoni - 159 -14.095065 cm 3.1188998 m 6.7945842 m 37.01631 MeV 16.792122 keV 7.4489662 cm 8.0651117 m World hIoni - 160 -14.076676 cm 3.1294392 m 6.8117619 m 37.008223 MeV 5.4685028 keV 2.0154035 cm 8.0852658 m World hIoni - 161 -14.068091 cm 3.1348327 m 6.8205683 m 36.99257 MeV 1.799331 keV 1.0327176 cm 8.0955929 m World hIoni - 162 -14.007543 cm 3.1779044 m 6.8907778 m 36.970118 MeV 21.19145 keV 8.2370733 cm 8.1779637 m World hIoni - 163 -13.98516 cm 3.1961964 m 6.920657 m 36.960165 MeV 8.6947787 keV 3.5034524 cm 8.2129982 m World hIoni - 164 -13.948852 cm 3.2217412 m 6.9624174 m 36.938308 MeV 14.144628 keV 4.8955126 cm 8.2619533 m World hIoni - 165 -13.946556 cm 3.2236246 m 6.9654812 m 36.936205 MeV 620.9977 eV 3.5965108 mm 8.2655498 m World hIoni - 166 -13.93588 cm 3.2325766 m 6.9800427 m 36.929039 MeV 5.9256374 keV 1.7093483 cm 8.2826433 m World hIoni - 167 -13.917224 cm 3.247148 m 7.0037199 m 36.918558 MeV 9.4127207 keV 2.7802317 cm 8.3104456 m World hIoni - 168 -13.910994 cm 3.2528749 m 7.0130168 m 36.914582 MeV 1.5524519 keV 1.0919418 cm 8.3213651 m World hIoni - 169 -13.898113 cm 3.2647905 m 7.0323994 m 36.906441 MeV 4.8539777 keV 2.2752679 cm 8.3441177 m World hIoni - 170 -13.884209 cm 3.2782392 m 7.0543519 m 36.897212 MeV 5.7810842 keV 2.5744912 cm 8.3698626 m World hIoni - 171 -13.826779 cm 3.3349537 m 7.1468675 m 36.864558 MeV 32.654082 keV 10.851757 cm 8.4783802 m World hIoni - 172 -13.825356 cm 3.3379783 m 7.1518219 m 36.856604 MeV 1.4084304 keV 5.804738 mm 8.4841849 m World hIoni - 173 -13.818448 cm 3.3520364 m 7.1748631 m 36.84256 MeV 6.3018087 keV 2.6991348 cm 8.5111763 m World hIoni - 174 -13.817198 cm 3.3545735 m 7.1789991 m 36.839899 MeV 1.4748199 keV 4.8521226 mm 8.5160284 m World hIoni - 175 -13.813838 cm 3.3608191 m 7.1891847 m 36.830656 MeV 2.7615369 keV 1.194807 cm 8.5279765 m World hIoni - 176 -13.810334 cm 3.3691351 m 7.2027139 m 36.826676 MeV 3.9799712 keV 1.5880691 cm 8.5438572 m World hIoni - 177 -13.800361 cm 3.4116915 m 7.2720301 m 36.802425 MeV 22.94437 keV 8.1337694 cm 8.6251949 m World hIoni - 178 -13.800318 cm 3.4126461 m 7.2735805 m 36.800506 MeV 64.165367 eV 1.8206867 mm 8.6270156 m World hIoni - 179 -13.799813 cm 3.4198245 m 7.2852326 m 36.790181 MeV 3.3450947 keV 1.3685831 cm 8.6407014 m World hIoni - 180 -13.805724 cm 3.4657653 m 7.3595829 m 36.764535 MeV 24.555167 keV 8.7398897 cm 8.7281003 m World hIoni - 181 -13.79818 cm 3.4779541 m 7.3792203 m 36.758333 MeV 4.8547774 keV 2.311276 cm 8.751213 m World hIoni - 182 -13.769534 cm 3.5149881 m 7.4389069 m 36.733757 MeV 19.936547 keV 7.0243207 cm 8.8214563 m World hIoni - 183 -13.759131 cm 3.5231642 m 7.4520806 m 36.728452 MeV 3.0777837 keV 1.5504988 cm 8.8369612 m World hIoni - 184 -13.751892 cm 3.5299455 m 7.4629861 m 36.723437 MeV 2.9265653 keV 1.2842188 cm 8.8498034 m World hIoni - 185 -13.736832 cm 3.5466062 m 7.4897587 m 36.711365 MeV 9.714586 keV 3.1533698 cm 8.8813371 m World hIoni - 186 -13.716362 cm 3.5806321 m 7.5445403 m 36.689808 MeV 20.429339 keV 6.4489071 cm 8.9458262 m World hIoni - 187 -13.713413 cm 3.5990575 m 7.5743925 m 36.679919 MeV 8.7136935 keV 3.5080731 cm 8.9809069 m World hIoni - 188 -13.713851 cm 3.6038946 m 7.5822332 m 36.669141 MeV 2.4394466 keV 9.212652 mm 8.9901196 m World hIoni - 189 -13.714026 cm 3.6072428 m 7.5876614 m 36.66806 MeV 1.081272 keV 6.3777628 mm 8.9964973 m World hIoni - 190 -13.714799 cm 3.617922 m 7.6049659 m 36.659603 MeV 7.2843562 keV 2.0334524 cm 9.0168319 m World hIoni - 191 -13.732254 cm 3.6635902 m 7.6788303 m 36.633307 MeV 25.170882 keV 8.6842373 cm 9.1036742 m World hIoni - 192 -13.733707 cm 3.6665976 m 7.6837093 m 36.628397 MeV 928.8029 eV 5.7314182 mm 9.1094057 m World hIoni - 193 -13.73663 cm 3.6712281 m 7.6912252 m 36.625084 MeV 2.1921314 keV 8.8279423 mm 9.1182336 m World hIoni - 194 -13.795351 cm 3.740021 m 7.8026509 m 36.582278 MeV 33.090288 keV 13.095267 cm 9.2491863 m World hIoni - 195 -13.824128 cm 3.7687376 m 7.8491785 m 36.561786 MeV 15.99058 keV 5.4676886 cm 9.3038632 m World hIoni - 196 -13.832397 cm 3.7795126 m 7.8665549 m 36.555187 MeV 6.5992208 keV 2.0446184 cm 9.3243093 m World hIoni - 197 -13.836916 cm 3.7846363 m 7.8748123 m 36.551229 MeV 2.1243717 keV 9.7179918 mm 9.3340273 m World hIoni - 198 -13.840619 cm 3.7909309 m 7.8849618 m 36.548325 MeV 1.8590517 keV 1.1943032 cm 9.3459704 m World hIoni - 199 -13.844032 cm 3.7970485 m 7.8948159 m 36.542491 MeV 2.2943522 keV 1.1598729 cm 9.3575691 m World hIoni - 200 -13.848175 cm 3.8022184 m 7.903158 m 36.536363 MeV 4.7062039 keV 9.8141761 mm 9.3673833 m World hIoni - 201 -13.863449 cm 3.8230692 m 7.9367715 m 36.524088 MeV 9.6083956 keV 3.9555725 cm 9.406939 m World hIoni - 202 -13.869987 cm 3.8351487 m 7.9561294 m 36.519553 MeV 4.5354149 keV 2.2817679 cm 9.4297567 m World hIoni - 203 -13.895735 cm 3.8936951 m 8.0500158 m 36.489222 MeV 28.212088 keV 11.064575 cm 9.5404024 m World hIoni - 204 -13.899678 cm 3.9078557 m 8.0729212 m 36.482109 MeV 7.1132514 keV 2.6929223 cm 9.5673316 m World hIoni - 205 -13.904246 cm 3.9159024 m 8.0859067 m 36.478202 MeV 2.0675233 keV 1.5276601 cm 9.5826082 m World hIoni - 206 -13.913409 cm 3.9362204 m 8.1186805 m 36.465766 MeV 12.435814 keV 3.8561024 cm 9.6211693 m World hIoni - 207 -13.932677 cm 3.9801258 m 8.1898879 m 36.445844 MeV 19.921439 keV 8.365554 cm 9.7048248 m World hIoni - 208 -13.939084 cm 3.9949506 m 8.2141021 m 36.434685 MeV 7.9119191 keV 2.839203 cm 9.7332168 m World hIoni - 209 -13.939522 cm 3.9959223 m 8.2156909 m 36.247128 MeV 519.51577 eV 1.862417 mm 9.7350793 m World hIoni - 210 -13.943297 cm 3.9999481 m 8.2223068 m 36.242965 MeV 2.890016 keV 7.7445725 mm 9.7428238 m World hIoni - 211 -13.945327 cm 4.0018907 m 8.2255011 m 36.238808 MeV 1.7032468 keV 3.7386106 mm 9.7465624 m World hIoni - 212 -13.966731 cm 4.0202543 m 8.2557269 m 36.223317 MeV 13.626402 keV 3.5367725 cm 9.7819302 m World hIoni - 213 -13.969113 cm 4.0223332 m 8.2591407 m 36.219107 MeV 1.0159478 keV 3.9970326 mm 9.7859272 m World hIoni - 214 -13.979363 cm 4.0312829 m 8.2738527 m 36.211594 MeV 6.3310164 keV 1.7220598 cm 9.8031478 m World hIoni - 215 -13.98837 cm 4.0399987 m 8.2882194 m 36.20225 MeV 3.1606316 keV 1.6804035 cm 9.8199518 m World hIoni - 216 -13.993754 cm 4.0526883 m 8.3091889 m 36.192888 MeV 5.6431227 keV 2.4510205 cm 9.844462 m World hIoni - 217 -13.993945 cm 4.054651 m 8.3124255 m 36.18494 MeV 710.17195 eV 3.7852586 mm 9.8482473 m World hIoni - 218 -13.993992 cm 4.0584728 m 8.3187244 m 36.183543 MeV 1.3969085 keV 7.3675982 mm 9.8556149 m World hIoni - 219 -13.993559 cm 4.0676009 m 8.3338284 m 36.178403 MeV 3.2988867 keV 1.7648067 cm 9.873263 m World hIoni - 220 -13.992961 cm 4.0719878 m 8.3411081 m 36.174823 MeV 1.763017 keV 8.4993252 mm 9.8817623 m World hIoni - 221 -13.983343 cm 4.0964855 m 8.3818064 m 36.160775 MeV 12.944526 keV 4.7502705 cm 9.929265 m World hIoni - 222 -13.981807 cm 4.1019971 m 8.3909956 m 36.158029 MeV 2.7465411 keV 1.0715368 cm 9.9399804 m World hIoni - 223 -13.956669 cm 4.1565131 m 8.4820636 m 36.126193 MeV 28.516507 keV 10.613907 cm 10.046119 m World hIoni - 224 -13.953727 cm 4.185196 m 8.5296445 m 36.110105 MeV 13.758708 keV 5.5557819 cm 10.101677 m World hIoni - 225 -13.953329 cm 4.1963481 m 8.5480346 m 36.10453 MeV 5.5750312 keV 2.1507289 cm 10.123185 m World hIoni - 226 -13.955542 cm 4.2064554 m 8.5647312 m 36.097778 MeV 5.6560952 keV 1.9517516 cm 10.142702 m World hIoni - 227 -13.953181 cm 4.238302 m 8.6174064 m 36.072507 MeV 13.150837 keV 6.1553996 cm 10.204256 m World hIoni - 228 -13.9504 cm 4.2540871 m 8.6437492 m 36.062533 MeV 5.5358693 keV 3.0710157 cm 10.234966 m World hIoni - 229 -13.949095 cm 4.2612736 m 8.6557557 m 36.056883 MeV 2.3001067 keV 1.3993 cm 10.248959 m World hIoni - 230 -13.933366 cm 4.3230956 m 8.7591452 m 36.031941 MeV 23.24736 keV 12.046353 cm 10.369423 m World hIoni - 231 -13.914048 cm 4.3505142 m 8.8051554 m 36.014491 MeV 16.220865 keV 5.3560882 cm 10.422984 m World hIoni - 232 -13.903015 cm 4.3611194 m 8.8229818 m 36.009365 MeV 5.1261967 keV 2.0742756 cm 10.443726 m World hIoni - 233 -13.900019 cm 4.3651165 m 8.8297016 m 35.998277 MeV 2.9551058 keV 7.8188968 mm 10.451545 m World hIoni - 234 -13.895869 cm 4.372358 m 8.8418776 m 35.992669 MeV 5.6078508 keV 1.4166663 cm 10.465712 m World hIoni - 235 -13.892796 cm 4.3769041 m 8.8495217 m 35.986142 MeV 2.3274045 keV 8.8937925 mm 10.474606 m World hIoni - 236 -13.847663 cm 4.4221021 m 8.925692 m 35.959828 MeV 24.272363 keV 8.8572131 cm 10.563178 m World hIoni - 237 -13.842757 cm 4.4259906 m 8.9322617 m 35.954977 MeV 1.6410788 keV 7.6344025 mm 10.570812 m World hIoni - 238 -13.839413 cm 4.4285774 m 8.9366235 m 35.95161 MeV 931.07224 eV 5.0712797 mm 10.575884 m World hIoni - 239 -13.816356 cm 4.4466008 m 8.9669875 m 35.934737 MeV 10.617857 keV 3.5311075 cm 10.611195 m World hIoni - 240 -13.812692 cm 4.4495266 m 8.9719127 m 35.933698 MeV 1.0397969 keV 5.7288041 mm 10.616923 m World hIoni - 241 -13.806349 cm 4.4548302 m 8.9808419 m 35.930054 MeV 2.0079625 keV 1.0385729 cm 10.627309 m World hIoni - 242 -13.782148 cm 4.4713865 m 9.0087001 m 35.916877 MeV 10.441186 keV 3.240756 cm 10.659717 m World hIoni - 243 -13.751899 cm 4.4899936 m 9.039999 m 35.906384 MeV 10.492701 keV 3.641341 cm 10.69613 m World Decay -Track (trackID 2, parentID 1) is processed with stopping code 2 - -********************************************************************************************************* -* G4Track Information: Particle = mu+, Track ID = 218, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -13.8 cm 4.49 m 9.04 m 33.6 MeV 0 eV 0 fm 0 fm World initStep - 1 -12.212963 cm 4.5087439 m 9.082428 m 33.547208 MeV 16.180544 keV 4.8873655 cm 4.8873655 cm World muIoni - 2 -11.153744 cm 4.5216107 m 9.1116053 m 33.533478 MeV 8.571562 keV 3.3601561 cm 8.2475215 cm World muIoni - 3 -10.845643 cm 4.5253991 m 9.1202087 m 33.527701 MeV 1.5364015 keV 9.8926326 mm 9.2367848 cm World muIoni - 4 -10.786711 cm 4.5261242 m 9.1218616 m 33.50817 MeV 705.6506 eV 1.8987056 mm 9.4266554 cm World muIoni - 5 -10.271243 cm 4.5324844 m 9.1363047 m 33.502664 MeV 3.5304311 keV 1.6601955 cm 11.086851 cm World muIoni - 6 -9.3423781 cm 4.543977 m 9.1624612 m 33.49175 MeV 9.8290746 keV 3.0042035 cm 14.091054 cm World muIoni - 7 -9.0611526 cm 4.5474821 m 9.1704247 m 33.488462 MeV 1.9174737 keV 9.1440089 mm 15.005455 cm World muIoni - 8 -7.1116238 cm 4.5721054 m 9.2260345 m 33.470815 MeV 16.367769 keV 6.3865753 cm 21.392031 cm World muIoni - 9 -6.5821764 cm 4.5787552 m 9.2411088 m 33.463275 MeV 6.1765475 keV 1.7305704 cm 23.122601 cm World muIoni - 10 -3.9427583 cm 4.6119377 m 9.3163458 m 33.437181 MeV 22.842104 keV 8.6361877 cm 31.758789 cm World muIoni - 11 -3.0111434 cm 4.6235088 m 9.3426615 m 33.426902 MeV 9.2574688 keV 3.0219257 cm 34.780714 cm World muIoni - 12 -2.5524102 cm 4.6291836 m 9.3555986 m 33.418115 MeV 5.5022173 keV 1.4853126 cm 36.266027 cm World muIoni - 13 -1.8778754 cm 4.6375034 m 9.3745421 m 33.412442 MeV 5.6728863 keV 2.1761753 cm 38.442202 cm World muIoni - 14 -9.0479338 mm 4.6495487 m 9.4019723 m 33.404862 MeV 6.4182021 keV 3.1499131 cm 41.592115 cm World muIoni - 15 7.013529 mm 4.6694845 m 9.4473 m 33.390215 MeV 12.773856 keV 5.2057817 cm 46.797897 cm World muIoni - 16 7.2516982 mm 4.6697804 m 9.4479747 m 33.386527 MeV 38.132012 eV 774.28219 um 46.875325 cm World muIoni - 17 1.0071936 cm 4.6732888 m 9.4559603 m 33.383959 MeV 1.1982563 keV 9.1668765 mm 47.792013 cm World muIoni - 18 1.7183286 cm 4.6821411 m 9.4761205 m 33.375025 MeV 7.342491 keV 2.3138093 cm 50.105822 cm World muIoni - 19 2.6289163 cm 4.6934124 m 9.5018114 m 33.366706 MeV 8.3188923 keV 2.9495502 cm 53.055372 cm World muIoni - 20 4.2732767 cm 4.7135893 m 9.5478689 m 33.349525 MeV 16.116206 keV 5.290368 cm 58.34574 cm World muIoni - 21 4.3235869 cm 4.7142083 m 9.5492691 m 33.341725 MeV 464.17372 eV 1.61143 mm 58.506883 cm World muIoni - 22 4.6443668 cm 4.7181396 m 9.5581723 m 33.298673 MeV 3.1508357 keV 1.0247558 cm 59.531639 cm World muIoni - 23 6.0361402 cm 4.7353938 m 9.5969762 m 33.286751 MeV 10.297338 keV 4.4689629 cm 64.000602 cm World muIoni - 24 6.2355585 cm 4.7378678 m 9.6025235 m 33.282905 MeV 2.4771398 keV 6.3929356 mm 64.639896 cm World muIoni - 25 8.4237358 cm 4.7650528 m 9.6633625 m 33.266322 MeV 15.175025 keV 7.0137269 cm 71.653623 cm World muIoni - 26 8.4908562 cm 4.7658915 m 9.6652404 m 33.26443 MeV 324.75822 eV 2.1634241 mm 71.869965 cm World muIoni - 27 9.6740572 cm 4.7807049 m 9.698332 m 33.2536 MeV 7.2933289 keV 3.8137832 cm 75.683748 cm World muIoni - 28 13.255692 cm 4.8260123 m 9.798029 m 33.21886 MeV 29.478864 keV 11.521794 cm 87.205542 cm World muIoni - 29 15.372571 cm 4.8529576 m 9.8570195 m 33.145623 MeV 20.580427 keV 6.8220734 cm 94.027616 cm World muIoni - 30 16.583876 cm 4.8682599 m 9.8904276 m 33.133254 MeV 11.063413 keV 3.8690955 cm 97.896711 cm World muIoni - 31 17.37043 cm 4.8782251 m 9.9121499 m 33.126092 MeV 7.1622447 keV 2.5160126 cm 1.0041272 m World muIoni - 32 18.428261 cm 4.8916285 m 9.9413988 m 33.115115 MeV 8.5564221 keV 3.3868167 cm 1.0379954 m World muIoni - 33 19.0259 cm 4.8992469 m 9.9579842 m 33.109428 MeV 5.6873955 keV 1.9205008 cm 1.0572004 m World muIoni - 34 19.322046 cm 4.9029915 m 9.9661574 m 33.096961 MeV 2.721144 keV 9.4654429 mm 1.0666659 m World muIoni - 35 20.477806 cm 4.9176702 m 9.9980964 m 33.089612 MeV 7.3490466 keV 3.7001959 cm 1.1036678 m World muIoni - 36 20.583433 cm 4.9190061 m 10.001006 m 33.088997 MeV 614.33311 eV 3.3709842 mm 1.1070388 m World muIoni - 37 20.756163 cm 4.92119 m 10.005767 m 33.07753 MeV 2.0679108 keV 5.5157758 mm 1.1125546 m World muIoni - 38 21.972577 cm 4.936625 m 10.039329 m 33.067093 MeV 10.437622 keV 3.8892447 cm 1.151447 m World muIoni - 39 23.023036 cm 4.9498417 m 10.068278 m 33.032661 MeV 7.6321411 keV 3.3511858 cm 1.1849589 m World muIoni - 40 26.478605 cm 4.9929839 m 10.16343 m 33.00222 MeV 30.440957 keV 11.004269 cm 1.2950016 m OutOfWorld Transportation -Track (trackID 218, parentID 2) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.281084929164(mm),1.5272219832206(mm),79.068642325476(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.02702(mm),0.56766161(mm),78.760787(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.406855(mm),-1.7215519(mm),78.341158(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.84701(mm),2.5425162(mm),78.968854(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.474294(mm),-3.0163394(mm),78.68192(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.824148(mm),-1.8906225(mm),78.972886(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.409311(mm),-1.4992878(mm),79.22236(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.485347(mm),2.5671033(mm),78.856298(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.869975(mm),3.6077122(mm),78.612151(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.229485(mm),3.480159(mm),78.901414(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.845319(mm),-0.98979017(mm),78.616499(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.630571(mm),2.0449876(mm),79.359672(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 - -********************************************************************************************************* -* G4Track Information: Particle = pi+, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.01 mm 2.02 mm 5.89 cm 95.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 -7.0715829 mm 2.4234155 mm 5.8431097 cm 93.783823 MeV 1.2817525 MeV 587.24836 um 587.24836 um Target Transportation - 2 17.810451 cm -5.7281578 cm -2 m 93.783825 MeV9.992444e-14 meV 2.8993591 m 2.8999464 m CaptureMgnt Transportation - 3 11.752566 cm -6.2606546 cm -2.0613063 m 93.763874 MeV 12.540672 keV 8.6351745 cm 2.9862981 m World hIoni - 4 11.281134 cm -6.302464 cm -2.066078 m 93.756453 MeV 864.86073 eV 6.7207407 mm 2.9930189 m World hIoni - 5 8.1117062 cm -6.5838106 cm -2.0981832 m 93.746667 MeV 7.3228145 keV 4.5201614 cm 3.0382205 m World hIoni - 6 1.9616615 mm -7.2889039 cm -2.1783861 m 93.726549 MeV 20.11782 keV 11.290622 cm 3.1511267 m World hIoni - 7 -5.8790244 cm -7.8167642 cm -2.2401184 m 93.710216 MeV 14.713419 keV 8.6772951 cm 3.2378996 m World hIoni - 8 -10.565091 cm -8.2178937 cm -2.2878732 m 93.691238 MeV 11.592465 keV 6.7026402 cm 3.304926 m World hIoni - 9 -20.927514 cm -9.1281958 cm -2.3933777 m 93.664982 MeV 24.477898 keV 14.816233 cm 3.4530884 m World hIoni - 10 -27.203317 cm -9.6838752 cm -2.4572713 m 93.643327 MeV 18.437424 keV 8.9732108 cm 3.5428205 m World hIoni - 11 -36.532142 cm -10.527753 cm -2.5522106 m 93.620611 MeV 21.502898 keV 13.336943 cm 3.6761899 m World hIoni - 12 -42.453608 cm -11.064282 cm -2.6125103 m 93.603836 MeV 15.357456 keV 8.4683048 cm 3.760873 m World hIoni - 13 -44.657912 cm -11.262755 cm -2.6349005 m 93.591432 MeV 5.7005903 keV 3.148262 cm 3.7923556 m World hIoni - 14 -48.27145 cm -11.5898 cm -2.671663 m 93.582897 MeV 7.1506321 keV 5.1652192 cm 3.8440078 m World hIoni - 15 -48.777959 cm -11.634967 cm -2.6768194 m 93.580102 MeV 1.1801104 keV 7.242022 mm 3.8512498 m World hIoni - 16 -51.113747 cm -11.843444 cm -2.7006063 m 93.573868 MeV 4.6320586 keV 3.3402884 cm 3.8846527 m World hIoni - 17 -52.59948 cm -11.976451 cm -2.7157219 m 93.569414 MeV 3.3773275 keV 2.1236595 cm 3.9058893 m World hIoni - 18 -55.457024 cm -12.233289 cm -2.7448259 m 93.562127 MeV 5.8097234 keV 4.0867976 cm 3.9467573 m World hIoni - 19 -55.561254 cm -12.242559 cm -2.745887 m 93.554858 MeV 240.3304 eV 1.490278 mm 3.9482475 m World hIoni - 20 -56.038296 cm -12.284701 cm -2.7507429 m 93.552 MeV 628.64161 eV 6.8201868 mm 3.9550677 m World hIoni - 21 -59.432305 cm -12.584753 cm -2.7852724 m 93.542786 MeV 7.6462774 keV 4.850998 cm 4.0035777 m World hIoni - 22 -60.204099 cm -12.653913 cm -2.7931368 m 93.54072 MeV 1.0350598 keV 1.1040524 cm 4.0146182 m World hIoni - 23 -60.356952 cm -12.667587 cm -2.7946945 m 93.537615 MeV 135.46672 eV 2.1867215 mm 4.0168049 m World hIoni - 24 -63.4623 cm -12.944218 cm -2.8263448 m 93.531084 MeV 6.5311809 keV 4.4426476 cm 4.0612314 m World hIoni - 25 -64.486533 cm -13.035152 cm -2.8367914 m 93.524879 MeV 4.8174557 keV 1.4658198 cm 4.0758896 m World hIoni - 26 -78.114022 cm -14.241722 cm -2.9759575 m 93.497514 MeV 27.364934 keV 19.515048 cm 4.2710401 m World hIoni - 27 -79.795293 cm -14.388956 cm -2.9931235 m 93.492777 MeV 3.6364188 keV 2.4072938 cm 4.295113 m World hIoni - 28 -81.961328 cm -14.579532 cm -3.0152701 m 93.482866 MeV 4.6968262 keV 3.1036719 cm 4.3261498 m World hIoni - 29 -92.023033 cm -15.460978 cm -3.1181032 m 93.452772 MeV 27.776323 keV 14.413937 cm 4.4702891 m World hIoni - 30 -98.86163 cm -16.035416 cm -3.1877973 m 93.434322 MeV 17.066136 keV 9.7810627 cm 4.5680998 m World hIoni - 31 -1.0269684 m -16.361155 cm -3.2268035 m 93.423695 MeV 8.8857286 keV 5.4799402 cm 4.6228992 m World hIoni - 32 -1.0382016 m -16.457897 cm -3.2382303 m 93.419733 MeV 2.3680676 keV 1.6052885 cm 4.6389521 m World hIoni - 33 -1.1196793 m -17.166059 cm -3.3210712 m 93.395146 MeV 23.053989 keV 11.641038 cm 4.7553624 m World hIoni - 34 -1.1231139 m -17.195874 cm -3.3245606 m 93.388906 MeV 519.96612 eV 4.9052073 mm 4.7602676 m World hIoni - 35 -1.1237846 m -17.201678 cm -3.3252425 m 93.386111 MeV 67.027415 eV 958.24881 um 4.7612259 m World hIoni - 36 -1.2490224 m -18.280177 cm -3.4525923 m 93.350603 MeV 29.933351 keV 17.893822 cm 4.9401641 m World hIoni - 37 -1.3037236 m -18.750416 cm -3.5081718 m 93.334535 MeV 14.824976 keV 7.8124336 cm 5.0182884 m World hIoni - 38 -1.3204378 m -18.891375 cm -3.5251078 m 93.325358 MeV 2.5601006 keV 2.3836566 cm 5.042125 m World hIoni - 39 -1.3491003 m -19.133982 cm -3.5541085 m 93.313675 MeV 9.6032137 keV 4.0846837 cm 5.0829718 m World hIoni - 40 -1.3602056 m -19.228212 cm -3.5653447 m 93.306671 MeV 4.1333894 keV 1.5826141 cm 5.098798 m World hIoni - 41 -1.3614844 m -19.239052 cm -3.5666386 m 93.305004 MeV 71.732398 eV 1.8224699 mm 5.1006205 m World hIoni - 42 -1.3738474 m -19.343611 cm -3.5791516 m 93.298312 MeV 3.7716873 keV 1.7621322 cm 5.1182418 m World hIoni - 43 -1.4286646 m -19.808259 cm -3.634502 m 93.286614 MeV 9.7795854 keV 7.8039593 cm 5.1962814 m World hIoni - 44 -1.4743993 m -20.200517 cm -3.6806333 m 93.275769 MeV 9.5646888 keV 6.5078084 cm 5.2613595 m World hIoni - 45 -1.5566271 m -20.913769 cm -3.7637151 m 93.255102 MeV 18.581933 keV 11.711057 cm 5.37847 m World hIoni - 46 -1.5589499 m -20.933733 cm -3.7660642 m 93.243917 MeV 1.1252059 keV 3.3096253 mm 5.3817797 m World hIoni - 47 -1.7413645 m -22.496738 cm -3.9503557 m 93.199376 MeV 40.82934 keV 25.977478 cm 5.6415544 m World hIoni - 48 -1.8250347 m -23.219825 cm -4.0346039 m 93.180596 MeV 18.780081 keV 11.895696 cm 5.7605114 m World hIoni - 49 -1.8271113 m -23.237212 cm -4.0366943 m 93.178629 MeV 146.79789 eV 2.9516714 mm 5.7634631 m World hIoni - 50 -1.8613756 m -23.522695 cm -4.0711944 m 93.157559 MeV 5.4929527 keV 4.8707854 cm 5.8121709 m World hIoni - 51 -1.8897314 m -23.759398 cm -4.0997407 m 93.148816 MeV 5.946298 keV 4.0305605 cm 5.8524765 m World hIoni - 52 -1.8984315 m -23.832238 cm -4.1085189 m 93.142152 MeV 1.885417 keV 1.2380601 cm 5.8648571 m World hIoni - 53 -1.9085392 m -23.917016 cm -4.1187229 m 93.139514 MeV 1.6445239 keV 1.4387677 cm 5.8792448 m World hIoni - 54 -1.9487616 m -24.253819 cm -4.1593626 m 93.126795 MeV 8.8410139 keV 5.7278044 cm 5.9365228 m World hIoni - 55 -1.9709461 m -24.441702 cm -4.181806 m 93.114214 MeV 6.5215367 keV 3.1613103 cm 5.9681359 m World hIoni - 56 -2.0635897 m -25.233861 cm -4.2755937 m 93.084315 MeV 23.322899 keV 13.206717 cm 6.1002031 m World hIoni - 57 -2.1086318 m -25.636505 cm -4.3210402 m 93.067297 MeV 14.402727 keV 6.4112329 cm 6.1643154 m World hIoni - 58 -2.1137849 m -25.682724 cm -4.3262438 m 93.061204 MeV 786.3966 eV 7.3379472 mm 6.1716534 m World hIoni - 59 -2.1174189 m -25.715477 cm -4.329914 m 93.056866 MeV 486.04778 eV 5.1753135 mm 6.1768287 m World hIoni - 60 -2.2241362 m -26.673099 cm -4.43772 m 93.029421 MeV 25.956492 keV 15.199493 cm 6.3288236 m World hIoni - 61 -2.2412848 m -26.829879 cm -4.4550201 m 93.025066 MeV 4.3549967 keV 2.4409565 cm 6.3532332 m World hIoni - 62 -2.2699762 m -27.093721 cm -4.4840093 m 93.014212 MeV 9.5377339 keV 4.0872122 cm 6.3941053 m World hIoni - 63 -2.2951088 m -27.321161 cm -4.5093999 m 93.007667 MeV 4.0486106 keV 3.5798104 cm 6.4299034 m World hIoni - 64 -2.3129264 m -27.481155 cm -4.5273971 m 93.003161 MeV 4.5057702 keV 2.5375724 cm 6.4552791 m World hIoni - 65 -2.3612716 m -27.914887 cm -4.5761967 m 92.98592 MeV 14.935809 keV 6.8829352 cm 6.5241085 m World hIoni - 66 -2.3735792 m -28.024057 cm -4.5885898 m 92.980621 MeV 4.1585426 keV 1.7500209 cm 6.5416087 m World hIoni - 67 -2.4169094 m -28.409338 cm -4.6322439 m 92.972178 MeV 5.984517 keV 6.1628168 cm 6.6032369 m World hIoni - 68 -2.4488396 m -28.693857 cm -4.6645932 m 92.962864 MeV 6.1912677 keV 4.5542401 cm 6.6487793 m World hIoni - 69 -2.4538843 m -28.738735 cm -4.6697009 m 92.940545 MeV 509.42645 eV 7.1929397 mm 6.6559722 m World hIoni - 70 -2.4851524 m -29.013383 cm -4.7013854 m 92.934983 MeV 4.3592218 keV 4.4599876 cm 6.7005721 m World hIoni - 71 -2.5076192 m -29.210983 cm -4.7240588 m 92.928393 MeV 5.2336072 keV 3.1980417 cm 6.7325525 m World hIoni - 72 -2.5831629 m -29.868177 cm -4.8000027 m 92.907588 MeV 19.356524 keV 10.732009 cm 6.8398726 m World hIoni - 73 -2.7025244 m -30.857147 cm -4.9193766 m 92.875994 MeV 31.593282 keV 16.910111 cm 7.0089737 m World hIoni - 74 -2.7545829 m -31.288947 cm -4.9715664 m 92.861366 MeV 13.365317 keV 7.3841085 cm 7.0828148 m World hIoni - 75 -2.790618 m -31.587649 cm -5.0075606 m 92.855096 MeV 6.269303 keV 5.1019911 cm 7.1338347 m World hIoni - 76 -2.8036838 m -31.696227 cm -5.0206054 m 92.851941 MeV 2.0035065 keV 1.8494905 cm 7.1523296 m World hIoni - 77 -2.8170205 m -31.806367 cm -5.0339293 m 92.850553 MeV 1.3878964 keV 1.88841 cm 7.1712137 m World hIoni - 78 -2.8193485 m -31.825642 cm -5.0362539 m 92.847974 MeV 477.86553 eV 3.2955077 mm 7.1745092 m World hIoni - 79 -2.8455485 m -32.042966 cm -5.0624281 m 92.843344 MeV 3.6117836 keV 3.709779 cm 7.211607 m World hIoni - 80 -2.9487561 m -32.904888 cm -5.1655647 m 92.817718 MeV 24.004599 keV 14.616192 cm 7.3577689 m World hIoni - 81 -2.9644513 m -33.034405 cm -5.1812308 m 92.812819 MeV 3.904339 keV 2.2213583 cm 7.3799825 m World hIoni - 82 -2.9912315 m -33.253861 cm -5.20795 m 92.806615 MeV 5.1672451 keV 3.7893451 cm 7.417876 m World hIoni - 83 -3.0282672 m -33.555949 cm -5.2448453 m 92.796925 MeV 9.6898612 keV 5.2364354 cm 7.4702403 m World hIoni - 84 -3.0527096 m -33.758859 cm -5.2691928 m 92.790738 MeV 4.9823982 keV 3.4559385 cm 7.5047997 m World hIoni - 85 -3.1083027 m -34.218319 cm -5.3244081 m 92.75784 MeV 12.836254 keV 7.8488456 cm 7.5832882 m World hIoni - 86 -3.1176024 m -34.294608 cm -5.3336474 m 92.738842 MeV 1.0083014 keV 1.3131289 cm 7.5964194 m World hIoni - 87 -3.1434125 m -34.509301 cm -5.3592648 m 92.731901 MeV 5.5372131 keV 3.6428362 cm 7.6328478 m World hIoni - 88 -3.204141 m -35.02568 cm -5.4195167 m 92.621519 MeV 14.362835 keV 8.5702446 cm 7.7185503 m World hIoni - 89 -3.2057242 m -35.039206 cm -5.4210856 m 92.620043 MeV 68.877768 eV 2.2330078 mm 7.7207833 m World hIoni - 90 -3.211151 m -35.086019 cm -5.4264669 m 92.618802 MeV 1.2412601 keV 7.6568425 mm 7.7284401 m World hIoni - 91 -3.2204376 m -35.166641 cm -5.4356788 m 92.616201 MeV 1.268806 keV 1.3105335 cm 7.7415454 m World hIoni - 92 -3.2263577 m -35.218303 cm -5.4415517 m 92.609736 MeV 1.0667433 keV 8.3549809 mm 7.7499004 m World hIoni - 93 -3.2813964 m -35.698851 cm -5.496106 m 92.589522 MeV 14.821775 keV 7.7643629 cm 7.827544 m World hIoni - 94 -3.3101499 m -35.948594 cm -5.5245746 m 92.584881 MeV 4.6411827 keV 4.0539594 cm 7.8680836 m World hIoni - 95 -3.3448734 m -36.247685 cm -5.5588732 m 92.572684 MeV 7.6290285 keV 4.8898518 cm 7.9169822 m World hIoni - 96 -3.3748286 m -36.505371 cm -5.588427 m 92.56494 MeV 6.5677937 keV 4.2159025 cm 7.9591412 m World hIoni - 97 -3.396285 m -36.689475 cm -5.609654 m 92.558439 MeV 5.3413883 keV 3.0238284 cm 7.9893795 m World hIoni - 98 -3.4376918 m -37.044505 cm -5.6505971 m 92.546634 MeV 10.060428 keV 5.8339187 cm 8.0477187 m World hIoni - 99 -3.4416758 m -37.078476 cm -5.6545449 m 92.54413 MeV 1.0589405 keV 5.6189366 mm 8.0533376 m World hIoni - 100 -3.4497053 m -37.146847 cm -5.6624997 m 92.541736 MeV 2.3939402 keV 1.1323442 cm 8.064661 m World hIoni - 101 -3.4789106 m -37.395989 cm -5.6914341 m 92.531739 MeV 6.7084468 keV 4.1186892 cm 8.1058479 m World hIoni - 102 -3.5795586 m -38.258233 cm -5.7910905 m 92.507187 MeV 22.758184 keV 14.190079 cm 8.2477487 m World hIoni - 103 -3.604804 m -38.480493 cm -5.8159737 m 92.499394 MeV 6.7417958 keV 3.5516779 cm 8.2832655 m World hIoni - 104 -3.616245 m -38.580422 cm -5.8272529 m 92.495483 MeV 2.8737126 keV 1.6097097 cm 8.2993626 m World hIoni - 105 -3.6675912 m -39.028336 cm -5.8779202 m 92.463489 MeV 14.825965 keV 7.2274976 cm 8.3716376 m World hIoni - 106 -3.7000928 m -39.309966 cm -5.9100175 m 92.455004 MeV 7.4369654 keV 4.5765994 cm 8.4174036 m World hIoni - 107 -3.7302815 m -39.568419 cm -5.9398802 m 92.439901 MeV 6.687305 keV 4.254194 cm 8.4599455 m World hIoni - 108 -3.7429719 m -39.676774 cm -5.952425 m 92.435572 MeV 2.8803058 keV 1.7877127 cm 8.4778226 m World hIoni - 109 -3.8267838 m -40.38741 cm -6.0352858 m 92.412348 MeV 19.62336 keV 11.807147 cm 8.5958941 m World hIoni - 110 -3.8543016 m -40.624697 cm -6.0625441 m 92.392401 MeV 5.7381609 keV 3.8805578 cm 8.6346997 m World hIoni - 111 -4.0043677 m -41.900266 cm -6.2110973 m 92.357554 MeV 34.846937 keV 21.154368 cm 8.8462433 m World hIoni - 112 -4.0400179 m -42.205302 cm -6.2462183 m 92.348102 MeV 7.4262076 keV 5.0137066 cm 8.8963804 m World hIoni - 113 -4.0570491 m -42.349015 cm -6.2629805 m 92.327853 MeV 2.0362975 keV 2.393942 cm 8.9203198 m World hIoni - 114 -4.0679549 m -42.443378 cm -6.2737063 m 92.326093 MeV 1.7607838 keV 1.5325486 cm 8.9356453 m World hIoni - 115 -4.2499645 m -44.01872 cm -6.4529422 m 92.263786 MeV 45.029645 keV 25.59324 cm 9.1915777 m World hIoni - 116 -4.3292613 m -44.734054 cm -6.5306147 m 92.237823 MeV 24.73692 keV 11.12303 cm 9.302808 m World hIoni - 117 -4.4680722 m -45.977428 cm -6.6668664 m 92.204036 MeV 32.371325 keV 19.490485 cm 9.4977129 m World hIoni - 118 -4.5368853 m -46.570738 cm -6.7344404 m 92.188886 MeV 15.149351 keV 9.6626608 cm 9.5943395 m World hIoni - 119 -4.585131 m -46.991613 cm -6.7818649 m 92.17867 MeV 8.7602676 keV 6.7782395 cm 9.6621219 m World hIoni - 120 -4.6344846 m -47.426519 cm -6.830475 m 92.139374 MeV 13.195909 keV 6.9409155 cm 9.731531 m World hIoni - 121 -4.6923441 m -47.947974 cm -6.8874168 m 92.119924 MeV 17.180684 keV 8.1346699 cm 9.8128777 m World hIoni - 122 -4.7007025 m -48.024964 cm -6.8956319 m 92.087657 MeV 1.4234154 keV 1.1744891 cm 9.8246226 m World hIoni - 123 -4.7283834 m -48.280569 cm -6.9227936 m 92.081703 MeV 4.8889446 keV 3.8865526 cm 9.8634881 m World hIoni - 124 -4.7726096 m -48.682673 cm -6.9662076 m 92.06004 MeV 9.5935978 keV 6.2103972 cm 9.9255921 m World hIoni - 125 -4.8061523 m -48.978852 cm -6.9990893 m 91.941641 MeV 10.281107 keV 4.7064761 cm 9.9726569 m World hIoni - 126 -4.8608849 m -49.468838 cm -7.0526947 m 91.923922 MeV 16.412588 keV 7.6767227 cm 10.049424 m World hIoni - 127 -4.8977749 m -49.792417 cm -7.0888753 m 91.910604 MeV 11.025007 keV 5.1772371 cm 10.101196 m World hIoni - 128 -4.9084209 m -49.885513 cm -7.0993186 m 91.906046 MeV 3.2313323 keV 1.4942122 cm 10.116139 m World hIoni - 129 -4.9457702 m -50.212407 cm -7.1359668 m 91.895535 MeV 9.433344 keV 5.2428475 cm 10.168567 m World hIoni - 130 -4.9607045 m -50.345376 cm -7.1506307 m 91.890421 MeV 3.561351 keV 2.097215 cm 10.189539 m World hIoni - 131 -4.9728529 m -50.454739 cm -7.1625718 m 91.884227 MeV 2.1743001 keV 1.7069599 cm 10.206609 m World hIoni - 132 -4.9744635 m -50.469073 cm -7.1641544 m 91.883972 MeV 254.6855 eV 2.2625843 mm 10.208871 m OutOfWorld Transportation -Track (trackID 2, parentID 1) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.183101720752(mm),-1.9015469716973(mm),78.55693846665(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.309796(mm),0.95051877(mm),78.887253(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.911484(mm),-1.8269741(mm),78.604832(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.070724(mm),-2.0229662(mm),78.576754(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.072141(mm),-0.3182851(mm),78.576504(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.91562(mm),3.0030308(mm),78.956757(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.252578(mm),-0.47820131(mm),79.073669(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.991931(mm),1.61987(mm),78.943301(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.210871(mm),1.5437564(mm),79.081023(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.816568(mm),1.3148229(mm),78.797895(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.851322(mm),-1.4199123(mm),79.144421(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.660291(mm),-2.523283(mm),78.825451(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.384819(mm),-0.76450535(mm),79.050351(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.425939(mm),-1.5295522(mm),78.51412(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.109846(mm),2.11098(mm),78.746182(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.346246(mm),-3.0408987(mm),78.704499(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.096387(mm),0.24393445(mm),79.277536(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.061252(mm),-1.2299043(mm),78.931078(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.184586(mm),-2.2205756(mm),78.733004(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.436374(mm),-3.5437365(mm),78.688607(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.791112(mm),-0.45851963(mm),78.44973(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.300535(mm),2.9212766(mm),78.359905(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.552989(mm),-3.0008883(mm),78.844371(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.718744(mm),3.6705046(mm),78.638817(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.85919(mm),0.81832805(mm),78.261399(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.375328(mm),-0.98441751(mm),79.404679(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.680396(mm),-1.7330013(mm),79.17456(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-17.342375(mm),1.5990394(mm),78.1762(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.699246(mm),-1.6206189(mm),78.289601(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.93169(mm),0.43052866(mm),78.248615(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.566072(mm),-2.0504053(mm),79.018391(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.803423(mm),1.3805331(mm),78.623886(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.983328(mm),-1.505313(mm),79.121145(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.388105(mm),2.1325045(mm),78.873445(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.048847(mm),1.5414626(mm),78.404284(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.405871(mm),-0.017505345(mm),79.399293(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.650747(mm),3.802382(mm),78.650807(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-17.192857(mm),-0.73882852(mm),78.202564(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.559169(mm),-1.3833719(mm),79.372263(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.754097(mm),1.808013(mm),78.456257(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.007975(mm),1.3323677(mm),78.587818(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.475849(mm),-3.6072864(mm),79.0343(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.403348(mm),3.1077729(mm),78.518103(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.354618(mm),3.6504067(mm),78.879349(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.893628(mm),-3.0269005(mm),78.960634(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.758139(mm),-2.0854422(mm),79.337179(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.246924(mm),-1.2721723(mm),79.074666(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.887876(mm),1.0228513(mm),78.432668(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.700739(mm),-2.1981146(mm),78.641992(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.607715(mm),0.48457596(mm),78.834722(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.638402(mm),-2.164277(mm),79.005638(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.118077(mm),3.5529942(mm),79.097385(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.180679(mm),-0.025579003(mm),78.557366(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.984454(mm),-2.2199217(mm),78.591965(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.910638(mm),1.3963223(mm),78.957635(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.002234(mm),2.9034645(mm),78.58883(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.817196(mm),-2.7217697(mm),78.621458(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.862162(mm),-2.7233355(mm),79.14251(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.551232(mm),-1.0062854(mm),78.492027(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-17.43693(mm),0.44267466(mm),78.159528(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.350301(mm),3.3285966(mm),78.703784(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.791908(mm),-1.0864671(mm),78.44959(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.243953(mm),-0.89630696(mm),78.546209(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.206515(mm),-2.6185606(mm),78.55281(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.279238(mm),2.9429476(mm),78.716314(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.482692(mm),2.3969017(mm),78.504113(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.976986(mm),-0.16386933(mm),78.416955(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.329172(mm),-2.9346491(mm),79.060163(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.635385(mm),2.6240507(mm),78.477189(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.815216(mm),1.5627934(mm),78.44548(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.017333(mm),-0.027336762(mm),79.115149(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.029818(mm),3.9027543(mm),78.760293(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.766922(mm),-3.1727234(mm),78.806649(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.813672(mm),-0.66841547(mm),78.269425(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.745853(mm),1.3516885(mm),79.163018(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.406323(mm),1.5579159(mm),79.399213(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.86084(mm),-2.7307347(mm),78.437435(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.349359(mm),1.6227139(mm),79.232931(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.492303(mm),-2.4028188(mm),78.502418(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.119225(mm),3.9031289(mm),78.744529(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.374468(mm),0.39077768(mm),79.052176(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.571735(mm),-1.1498131(mm),79.19372(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.181309(mm),-1.0030741(mm),78.557255(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.61378(mm),2.1899492(mm),78.304671(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-17.17604(mm),-1.5407665(mm),78.20553(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.953636(mm),-1.4792502(mm),78.950053(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.437771(mm),0.89970802(mm),78.335706(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.618359(mm),3.7090632(mm),79.009172(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.598334(mm),2.9434519(mm),78.483722(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.140962(mm),2.0161832(mm),79.269677(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.005562(mm),-1.3986156(mm),78.940897(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.57726(mm),2.6745975(mm),78.311111(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.410555(mm),0.47577829(mm),78.516832(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.87268(mm),-1.1665006(mm),79.316982(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.832296(mm),1.9931888(mm),78.266141(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.581407(mm),2.808947(mm),78.663034(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.019072(mm),-2.541881(mm),78.409534(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6461,104 +3709,37 @@ Track (trackID 1, parentID 0) is processed with stopping code 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.34 cm 2.81 mm 7.18 cm 52.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.4512895 cm 3.5111599 mm 7.1271863 cm 47.293956 MeV 5.1034313 MeV 1.4455046 mm 1.4455046 mm Target Transportation - 2 -3.5609434 cm 7.6572173 cm -70.018726 cm 47.293976 MeV8.9433334e-14 meV 1.8660954 m 1.8675409 m CaptureMgnt Decay + 0 -1.53 cm -2.54 mm 7.44 cm 19.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.4799364 cm -2.5802719 mm 7.4255893 cm 16.183284 MeV 3.4701056 MeV 550.52637 um 550.52637 um Target hIoni + 2 -1.4396148 cm -2.6976746 mm 7.4149648 cm 13.219201 MeV 2.9640833 MeV 438.18577 um 988.71214 um Target hIoni + 3 -1.4065469 cm -2.7449625 mm 7.4050391 cm 10.206778 MeV 3.0124225 MeV 353.15689 um 1.341869 mm Target hIoni + 4 -1.3796811 cm -2.7230491 mm 7.4011766 cm 7.6299224 MeV 2.5768556 MeV 276.92226 um 1.6187913 mm Target hIoni + 5 -1.3785925 cm -2.721771 mm 7.4009415 cm 7.4822565 MeV 147.66597 keV 11.218982 um 1.6300103 mm Target CoulombScat + 6 -1.364626 cm -2.7267847 mm 7.4165799 cm 4.5821503 MeV 2.9001061 MeV 214.66003 um 1.8446703 mm Target hIoni + 7 -1.3565298 cm -2.7862515 mm 7.4261508 cm 984.77401 keV 3.5973763 MeV 144.2691 um 1.9889394 mm Target hIoni + 8 -1.3558656 cm -2.7885071 mm 7.4266407 cm 70.13442 keV 914.63959 keV 13.341383 um 2.0022808 mm Target hIoni + 9 -1.3558534 cm -2.7885872 mm 7.4266457 cm 0 eV 70.13442 keV 381.89616 nm 2.0026627 mm Target hIoni + 10 -1.3558534 cm -2.7885872 mm 7.4266457 cm 0 eV 0 eV 0 fm 2.0026627 mm Target Decay Track (trackID 3, parentID 1) is processed with stopping code 2 ********************************************************************************************************* -* G4Track Information: Particle = mu+, Track ID = 23, Parent ID = 3 +* G4Track Information: Particle = mu+, Track ID = 17, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.56 cm 7.66 cm -70 cm 66.6 MeV 0 eV 0 fm 0 fm CaptureMgnt initStep - 1 -1.7956324 cm 12.519639 cm -2 m 66.627993 MeV9.7567224e-14 meV 2.7617103 m 2.7617103 m CaptureMgnt Transportation - 2 -2.7118028 cm 15.684985 cm -2.017578 m 66.620754 MeV 6.0432465 keV 3.7347879 cm 2.7990582 m World muIoni - 3 -5.997518 cm 26.854337 cm -2.0800907 m 66.590275 MeV 25.632402 keV 13.214755 cm 2.9312058 m World muIoni - 4 -6.1325984 cm 27.307112 cm -2.0826372 m 66.588338 MeV 628.72747 eV 5.367522 mm 2.9365733 m World muIoni - 5 -7.5204872 cm 31.966976 cm -2.1088368 m 66.578219 MeV 8.9806841 keV 5.5231144 cm 2.9918044 m World muIoni - 6 -9.7398516 cm 39.425415 cm -2.1509177 m 66.557748 MeV 18.273065 keV 8.8465826 cm 3.0802703 m World muIoni - 7 -11.54847 cm 45.468347 cm -2.1851172 m 66.541953 MeV 14.563369 keV 7.1752537 cm 3.1520228 m World muIoni - 8 -11.866487 cm 46.532293 cm -2.1911188 m 66.539844 MeV 2.10938 keV 1.2622596 cm 3.1646454 m World muIoni - 9 -14.334768 cm 54.795026 cm -2.2376946 m 66.520346 MeV 18.006714 keV 9.8009379 cm 3.2626548 m World muIoni - 10 -14.780556 cm 56.277167 cm -2.2460416 m 66.513759 MeV 3.2789726 keV 1.7584659 cm 3.2802394 m World muIoni - 11 -18.553748 cm 68.77079 cm -2.3164276 m 66.476967 MeV 22.420332 keV 14.82802 cm 3.4285196 m World muIoni - 12 -19.529783 cm 72.009781 cm -2.3344374 m 66.468635 MeV 5.4392872 keV 3.8323945 cm 3.4668436 m World muIoni - 13 -22.519622 cm 81.927078 cm -2.389504 m 66.451338 MeV 16.148623 keV 11.730966 cm 3.5841532 m World muIoni - 14 -23.423486 cm 84.933292 cm -2.4061559 m 66.440408 MeV 3.4003904 keV 3.5534704 cm 3.6196879 m World muIoni - 15 -26.273879 cm 94.427057 cm -2.458617 m 66.415668 MeV 23.338073 keV 11.215092 cm 3.7318388 m World muIoni - 16 -26.975865 cm 96.758115 cm -2.4715306 m 66.410367 MeV 3.491162 keV 2.7557614 cm 3.7593965 m World muIoni - 17 -27.339757 cm 97.964538 cm -2.4782263 m 66.403248 MeV 1.7451354 keV 1.4269544 cm 3.773666 m World muIoni - 18 -30.445597 cm 1.0828552 m -2.5355565 m 66.377473 MeV 23.106703 keV 12.208065 cm 3.8957467 m World muIoni - 19 -34.37263 cm 1.213508 m -2.6080235 m 66.347136 MeV 29.308954 keV 15.447929 cm 4.0502259 m World muIoni - 20 -41.885346 cm 1.4651698 m -2.7479409 m 66.285937 MeV 56.634278 keV 29.758229 cm 4.3478082 m World muIoni - 21 -44.353895 cm 1.5488064 m -2.7942742 m 66.270814 MeV 13.827218 keV 9.8748475 cm 4.4465567 m World muIoni - 22 -46.276506 cm 1.6140755 m -2.8304503 m 66.254165 MeV 14.294622 keV 7.7061048 cm 4.5236178 m World muIoni - 23 -46.602196 cm 1.6250913 m -2.8365722 m 66.249609 MeV 1.9255862 keV 1.3016683 cm 4.5366344 m World muIoni - 24 -47.549917 cm 1.6571579 m -2.8543689 m 66.240568 MeV 5.3776767 keV 3.7878825 cm 4.5745133 m World muIoni - 25 -49.454178 cm 1.7216295 m -2.8902026 m 66.221969 MeV 15.536277 keV 7.6179242 cm 4.6506925 m World muIoni - 26 -52.213755 cm 1.8148592 m -2.9422525 m 66.194769 MeV 18.331269 keV 11.02838 cm 4.7609763 m World muIoni - 27 -55.09385 cm 1.9122557 m -2.99655 m 66.166813 MeV 23.073217 keV 11.516863 cm 4.8761449 m World muIoni - 28 -56.958993 cm 1.9756551 m -3.0318831 m 66.150311 MeV 15.046208 keV 7.4938716 cm 4.9510837 m World muIoni - 29 -59.106549 cm 2.0486288 m -3.0724635 m 66.136361 MeV 12.710524 keV 8.6215554 cm 5.0372992 m World muIoni - 30 -60.454247 cm 2.0946215 m -3.0980042 m 66.126283 MeV 8.9461954 keV 5.4307367 cm 5.0916066 m World muIoni - 31 -60.633959 cm 2.1007998 m -3.1014536 m 66.117905 MeV 2.0739205 keV 7.3007078 mm 5.0989073 m World muIoni - 32 -62.390247 cm 2.1612473 m -3.1351551 m 66.103455 MeV 13.367471 keV 7.1401304 cm 5.1703086 m World muIoni - 33 -62.927752 cm 2.1797408 m -3.1454296 m 66.096483 MeV 4.8439361 keV 2.182812 cm 5.1921367 m World muIoni - 34 -65.792203 cm 2.2784067 m -3.2002606 m 66.077494 MeV 17.976215 keV 11.645572 cm 5.3085924 m World muIoni - 35 -72.182157 cm 2.4971401 m -3.3218498 m 66.030043 MeV 43.220266 keV 25.828619 cm 5.5668786 m World muIoni - 36 -73.437959 cm 2.5404582 m -3.3458845 m 66.020266 MeV 9.7772874 keV 5.1106136 cm 5.6179848 m World muIoni - 37 -75.314274 cm 2.6050688 m -3.3817738 m 65.999478 MeV 17.085553 keV 7.6253793 cm 5.6942386 m World muIoni - 38 -77.167906 cm 2.6688243 m -3.4172657 m 65.986415 MeV 11.988786 keV 7.5286332 cm 5.7695249 m World muIoni - 39 -79.234526 cm 2.7392719 m -3.456324 m 65.965765 MeV 18.282664 keV 8.3159599 cm 5.8526845 m World muIoni - 40 -80.638302 cm 2.7869862 m -3.4827726 m 65.940557 MeV 10.132024 keV 5.6331587 cm 5.9090161 m World muIoni - 41 -82.11025 cm 2.8370752 m -3.5104569 m 65.926957 MeV 12.457984 keV 5.909308 cm 5.9681092 m World muIoni - 42 -82.887237 cm 2.8634708 m -3.5250542 m 65.920528 MeV 6.4289541 keV 3.1147815 cm 5.999257 m World muIoni - 43 -83.069327 cm 2.8696031 m -3.5284404 m 65.917452 MeV 1.0948791 keV 7.2378206 mm 6.0064948 m World muIoni - 44 -84.067151 cm 2.9031932 m -3.5469831 m 65.909879 MeV 5.0114151 keV 3.9644649 cm 6.0461394 m World muIoni - 45 -85.28431 cm 2.9441605 m -3.5696872 m 65.898581 MeV 9.9602538 keV 4.839363 cm 6.0945331 m World muIoni - 46 -85.928849 cm 2.9658502 m -3.5816701 m 65.892723 MeV 4.2465798 keV 2.5604252 cm 6.1201373 m World muIoni - 47 -87.261909 cm 3.0106389 m -3.6064191 m 65.883155 MeV 8.5553387 keV 5.2879577 cm 6.1730169 m World muIoni - 48 -87.318397 cm 3.0125319 m -3.6074649 m 65.880089 MeV 623.70355 eV 2.2352154 mm 6.1752521 m World muIoni - 49 -87.885206 cm 3.0315496 m -3.6179659 m 65.874155 MeV 4.9058909 keV 2.2451523 cm 6.1977036 m World muIoni - 50 -88.46277 cm 3.0508637 m -3.628645 m 65.866667 MeV 5.9480161 keV 2.281305 cm 6.2205167 m World muIoni - 51 -88.610079 cm 3.0558062 m -3.6313802 m 65.86653 MeV 137.27906 eV 5.8377632 mm 6.2263544 m World muIoni - 52 -88.840749 cm 3.0635474 m -3.6356645 m 65.863748 MeV 1.4418902 keV 9.1434068 mm 6.2354979 m World muIoni - 53 -89.151082 cm 3.0739582 m -3.6414306 m 65.85979 MeV 2.7221819 keV 1.2298888 cm 6.2477967 m World muIoni - 54 -95.208347 cm 3.2774702 m -3.7542539 m 65.817487 MeV 41.226467 keV 24.044879 cm 6.4882455 m World muIoni - 55 -95.222798 cm 3.2779561 m -3.7545215 m 65.815024 MeV 0 eV 573.2635 um 6.4888188 m World muIoni - 56 -96.368944 cm 3.3165496 m -3.7757883 m 65.80591 MeV 7.4000982 keV 4.5531267 cm 6.5343501 m World muIoni - 57 -96.574414 cm 3.3234865 m -3.7796124 m 65.800487 MeV 2.5875573 keV 8.1832928 mm 6.5425334 m World muIoni - 58 -96.799005 cm 3.3310741 m -3.7837975 m 65.797693 MeV 1.5050895 keV 8.9515962 mm 6.5514849 m World muIoni - 59 -97.629286 cm 3.3591014 m -3.799232 m 65.792542 MeV 3.3803726 keV 3.3055859 cm 6.5845408 m World muIoni - 60 -1.007722 m 3.4649829 m -3.8575721 m 65.77133 MeV 20.023462 keV 12.490915 cm 6.70945 m World muIoni - 61 -1.0233981 m 3.5181969 m -3.8868545 m 65.76245 MeV 7.6974472 keV 6.272904 cm 6.772179 m World muIoni - 62 -1.0243612 m 3.5214456 m -3.8886399 m 65.762186 MeV 264.65271 eV 3.8300622 mm 6.7760091 m World muIoni - 63 -1.0509311 m 3.6110894 m -3.9379136 m 65.742122 MeV 18.213926 keV 10.568769 cm 6.8816968 m World muIoni - 64 -1.0575899 m 3.6336958 m -3.950312 m 65.737514 MeV 3.4236516 keV 2.6629129 cm 6.9083259 m World muIoni - 65 -1.0632325 m 3.6529533 m -3.9608828 m 65.733061 MeV 3.4543899 keV 2.2681082 cm 6.931007 m World muIoni - 66 -1.0652975 m 3.6600106 m -3.9647532 m 65.693287 MeV 576.31943 eV 8.3095774 mm 6.9393165 m World muIoni - 67 -1.1004477 m 3.7795797 m -4.0306059 m 65.665159 MeV 26.769332 keV 14.095725 cm 7.0802738 m World muIoni - 68 -1.1083058 m 3.8062402 m -4.0452327 m 65.655211 MeV 6.9301433 keV 3.1408267 cm 7.1116821 m World muIoni - 69 -1.1169191 m 3.8355857 m -4.0613504 m 65.645984 MeV 5.890954 keV 3.4570594 cm 7.1462527 m World muIoni - 70 -1.1192259 m 3.8434511 m -4.0656602 m 65.638679 MeV 2.7091969 keV 9.2606535 mm 7.1555133 m World muIoni - 71 -1.1247038 m 3.8621357 m -4.0759105 m 65.635088 MeV 2.2379191 keV 2.2004325 cm 7.1775176 m World muIoni - 72 -1.1322468 m 3.8878957 m -4.0900376 m 65.627128 MeV 6.2427821 keV 3.0332378 cm 7.20785 m World muIoni - 73 -1.162733 m 3.9914571 m -4.1469446 m 65.581876 MeV 17.147705 keV 12.203614 cm 7.3298862 m World muIoni - 74 -1.1900007 m 4.0844825 m -4.1979385 m 65.559291 MeV 20.899186 keV 10.953378 cm 7.4394199 m World muIoni - 75 -1.1967727 m 4.1076415 m -4.2107017 m 65.552039 MeV 5.8010368 keV 2.7296516 cm 7.4667165 m World muIoni - 76 -1.2081781 m 4.1466799 m -4.2322337 m 65.542773 MeV 7.6793594 keV 4.6018507 cm 7.512735 m World muIoni - 77 -1.2379805 m 4.248898 m -4.2887188 m 65.519508 MeV 21.425492 keV 12.05294 cm 7.6332644 m World muIoni - 78 -1.2698511 m 4.3573961 m -4.348698 m 65.494822 MeV 24.686207 keV 12.80044 cm 7.7612688 m World muIoni - 79 -1.3657747 m 4.6854922 m -4.530265 m 65.426106 MeV 64.043709 keV 38.70612 cm 8.14833 m World muIoni - 80 -1.3993468 m 4.8001905 m -4.5935922 m 65.403715 MeV 22.391968 keV 13.52522 cm 8.2835822 m OutOfWorld Transportation -Track (trackID 23, parentID 3) is processed with stopping code 2 + 0 -1.36 cm -2.79 mm 7.43 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.3541159 cm -2.8167733 mm 7.4144345 cm 1.47275 MeV 2.6470627 MeV 143.89929 um 143.89929 um Target muIoni + 2 -1.3544173 cm -2.824345 mm 7.4127449 cm 101.46036 keV 1.3712896 MeV 29.544547 um 173.44384 um Target muIoni + 3 -1.3544072 cm -2.8245782 mm 7.41273 cm 1.3877788e-08 meV 101.46036 keV 624.22231 nm 174.06806 um Target muIoni + 4 -1.3544072 cm -2.8245782 mm 7.41273 cm 0 eV 1.3877788e-08 meV 2.7365197 fm 174.06806 um Target muIoni + 5 -1.3544072 cm -2.8245782 mm 7.41273 cm 0 eV 0 eV 0 fm 174.06806 um Target DecayWithSpin +Track (trackID 17, parentID 3) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.159794921824(mm),0.97331325147606(mm),78.208394122718(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.190342(mm),-1.6848065(mm),78.908316(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6567,7 +3748,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.942689(mm),1.3467597(mm),78.951984(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.066674(mm),0.14023092(mm),78.930122(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6576,7 +3757,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.801562(mm),3.2029174(mm),79.153195(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.794462(mm),-3.0524763(mm),78.625466(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6585,7 +3766,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.566391(mm),1.2088624(mm),79.018335(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.322287(mm),1.9369457(mm),78.532396(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6594,7 +3775,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.143003(mm),1.7112363(mm),78.740336(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.861171(mm),-0.065403072(mm),79.142684(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6603,7 +3784,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.590366(mm),0.80623594(mm),79.366762(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.808379(mm),3.6037471(mm),78.623012(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6612,7 +3793,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.089659(mm),-1.4063339(mm),78.397088(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.817926(mm),-2.247797(mm),78.797656(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6621,7 +3802,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.024284(mm),1.3082165(mm),78.232288(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.570434(mm),-1.3826282(mm),78.664968(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6630,7 +3811,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.538509(mm),-2.4450076(mm),78.846925(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.735462(mm),-1.4135636(mm),78.988523(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6639,7 +3820,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.268005(mm),2.8849658(mm),78.718295(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.357831(mm),2.1873122(mm),79.05511(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6648,7 +3829,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.019692(mm),-0.21803727(mm),79.29106(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.385235(mm),1.3354512(mm),78.521297(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6657,7 +3838,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.521723(mm),0.99928818(mm),79.202538(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.967878(mm),-0.81851287(mm),78.242234(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6666,7 +3847,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.324516(mm),-1.8080693(mm),78.532003(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.930311(mm),0.012471092(mm),78.248858(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6675,7 +3856,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.340327(mm),2.6735287(mm),78.881869(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.196504(mm),-0.79639273(mm),78.378248(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6684,7 +3865,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.567764(mm),-2.693121(mm),78.841766(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.187876(mm),2.7298381(mm),78.732424(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6693,7 +3874,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.135956(mm),2.4224311(mm),78.917905(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.212216(mm),0.82696356(mm),79.257113(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6702,7 +3883,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.409908(mm),3.1794758(mm),78.8696(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.536067(mm),3.0552003(mm),79.023682(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6711,7 +3892,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.416544(mm),-1.6286885(mm),78.692103(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.112359(mm),-2.0181805(mm),78.216758(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6720,7 +3901,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.339344(mm),3.9299409(mm),78.705716(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.665982(mm),-3.2324981(mm),78.471794(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6729,7 +3910,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.564588(mm),2.890198(mm),78.313345(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.951687(mm),1.8959069(mm),78.421416(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6738,7 +3919,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.557802(mm),1.2254414(mm),78.138215(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.470558(mm),0.741487(mm),78.858906(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6747,7 +3928,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.37101(mm),0.72681577(mm),79.40544(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.011253(mm),-0.25746589(mm),78.939894(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6756,7 +3937,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.587972(mm),0.16566053(mm),78.661876(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.879301(mm),2.1691436(mm),78.963161(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6765,7 +3946,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.229258(mm),-2.338359(mm),79.077781(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.974386(mm),-1.3414185(mm),78.241087(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6774,7 +3955,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.104148(mm),1.3078915(mm),79.099841(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.317651(mm),2.6266875(mm),78.356887(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6783,7 +3964,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.855838(mm),-1.1148481(mm),79.143625(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.469926(mm),1.4608397(mm),79.211671(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6792,7 +3973,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.047243(mm),1.2377741(mm),78.580894(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.647189(mm),2.5643219(mm),78.651434(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6801,7 +3982,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.163495(mm),2.4902749(mm),78.560396(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.185422(mm),2.3098474(mm),79.261837(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6810,7 +3991,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.426688(mm),-0.18908457(mm),78.690315(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.866689(mm),-0.032313721(mm),78.789058(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6819,7 +4000,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.216824(mm),-3.3590929(mm),78.727319(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.024562(mm),3.295024(mm),78.76122(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6828,7 +4009,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.946039(mm),-2.1171391(mm),78.951393(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.554558(mm),-2.8168614(mm),79.020422(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6837,7 +4018,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.959405(mm),-2.4113821(mm),78.949036(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.014988(mm),-1.5800505(mm),79.115562(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6846,7 +4027,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.604333(mm),-1.4520988(mm),79.011645(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.409856(mm),-0.32698209(mm),78.516956(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6855,7 +4036,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.369943(mm),0.62968462(mm),79.229301(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.184004(mm),2.0217376(mm),78.204125(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6864,7 +4045,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.621421(mm),2.9594353(mm),78.832305(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.319058(mm),1.4372646(mm),78.532966(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6873,7 +4054,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.256646(mm),2.061016(mm),78.543971(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.953682(mm),-2.8215696(mm),78.597391(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6882,7 +4063,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.957518(mm),3.1078052(mm),78.596715(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.594302(mm),3.0117423(mm),79.013414(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6891,7 +4072,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.15571(mm),2.0251865(mm),78.738095(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.293914(mm),-3.2681868(mm),78.713726(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6900,7 +4081,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.710327(mm),2.2564793(mm),78.287647(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.619727(mm),1.6335381(mm),79.185258(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6909,7 +4090,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.84796(mm),0.86201469(mm),78.968687(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.537995(mm),-1.0696964(mm),78.670688(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6918,7 +4099,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.191754(mm),-1.2129443(mm),78.73174(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.133713(mm),-3.123984(mm),78.918301(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6927,7 +4108,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.393269(mm),3.1203309(mm),78.51988(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.472314(mm),-3.0488176(mm),78.68227(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6936,7 +4117,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.104677(mm),-3.0078605(mm),78.923421(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.767272(mm),-1.2496582(mm),78.982914(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6945,7 +4126,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.020227(mm),-3.6018821(mm),78.585658(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.389912(mm),1.6942969(mm),78.873126(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6954,7 +4135,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.406521(mm),0.23253607(mm),78.693871(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.772217(mm),0.49418144(mm),78.100408(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6963,7 +4144,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.627158(mm),2.911501(mm),78.654966(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.476317(mm),1.9760558(mm),78.32891(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6972,7 +4153,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.238197(mm),1.7580114(mm),79.076205(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.730114(mm),-1.7641211(mm),79.34212(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6981,7 +4162,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.592996(mm),3.6104525(mm),78.837317(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.878731(mm),2.517864(mm),78.963261(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6990,7 +4171,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.095165(mm),-1.0245729(mm),78.925098(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.219134(mm),0.43963572(mm),79.255893(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -6999,7 +4180,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.028056(mm),-1.4400507(mm),79.289585(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.922896(mm),0.057554853(mm),78.779147(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7008,7 +4189,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.277662(mm),-3.9084038(mm),78.716592(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.948837(mm),-0.046704386(mm),78.421919(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7017,7 +4198,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.551444(mm),-0.066813485(mm),78.315663(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.568372(mm),0.42077479(mm),78.665332(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7026,7 +4207,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.425782(mm),1.7025478(mm),78.33782(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.413483(mm),-1.8150802(mm),78.692643(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7035,7 +4216,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.600483(mm),2.9601654(mm),78.483343(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.041167(mm),-3.0113453(mm),78.405638(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7044,7 +4225,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.135262(mm),0.9404767(mm),78.565374(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.755476(mm),2.9282926(mm),79.161321(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7053,7 +4234,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.198345(mm),-0.85252594(mm),79.435885(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.704682(mm),1.9367023(mm),78.817624(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7062,7 +4243,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.89819(mm),1.5625477(mm),78.254522(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.98698(mm),2.9235173(mm),78.415193(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7071,7 +4252,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.136329(mm),1.0729537(mm),78.741513(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.789209(mm),-1.5609136(mm),79.155373(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7080,7 +4261,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.048787(mm),3.9596962(mm),78.756949(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.661686(mm),-1.4480292(mm),79.177859(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7089,7 +4270,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.186619(mm),-0.66872761(mm),78.908972(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.470235(mm),-2.9225504(mm),79.211617(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7098,7 +4279,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.386291(mm),-1.1663248(mm),78.521111(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.304435(mm),2.0860928(mm),79.240852(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7107,7 +4288,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.547912(mm),3.2173387(mm),78.66894(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.991653(mm),1.6884807(mm),79.119677(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7116,7 +4297,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.62427(mm),-0.86219015(mm),79.360784(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.122129(mm),3.569828(mm),79.09667(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7125,7 +4306,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.724757(mm),2.376575(mm),78.990411(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.839959(mm),1.7070005(mm),78.793771(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7134,7 +4315,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.6769(mm),-1.6859133(mm),79.175176(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.175438(mm),1.2180717(mm),78.381963(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7143,7 +4324,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.014865(mm),-1.1867049(mm),79.115584(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.102103(mm),-0.0030886499(mm),78.571221(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7152,7 +4333,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.444298(mm),-2.8770859(mm),79.039864(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.944584(mm),0.707468(mm),79.127977(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7161,7 +4342,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.147015(mm),-0.2564928(mm),78.563302(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.957484(mm),-2.815263(mm),79.125702(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7170,7 +4351,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.825443(mm),-3.2810152(mm),78.79633(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.634028(mm),1.5275482(mm),78.653755(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7179,7 +4360,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.524275(mm),-2.6728978(mm),78.320453(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.945662(mm),0.51284232(mm),79.304113(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7188,7 +4369,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.331975(mm),-2.2612523(mm),78.530688(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.954871(mm),3.4223245(mm),78.773509(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7197,7 +4378,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.040813(mm),-1.1967844(mm),78.934682(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.325248(mm),-2.9245464(mm),78.884528(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7206,7 +4387,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.840634(mm),-1.2153078(mm),78.969979(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.579558(mm),3.1367929(mm),78.487032(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7215,7 +4396,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.625036(mm),0.36711653(mm),78.655341(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.591172(mm),0.46102523(mm),79.013966(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7224,7 +4405,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.118492(mm),0.43510786(mm),78.568331(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.520947(mm),-0.57792422(mm),79.202675(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7233,7 +4414,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.023612(mm),-1.7138807(mm),78.408734(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.752878(mm),3.1703603(mm),78.456472(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7242,7 +4423,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.987881(mm),0.57993891(mm),78.238707(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.874591(mm),2.421328(mm),78.787664(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7251,7 +4432,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.694086(mm),-0.44190908(mm),79.348473(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.983656(mm),-1.545334(mm),78.768433(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7260,7 +4441,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.739347(mm),-1.7855658(mm),79.164165(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.494767(mm),0.91005971(mm),78.149329(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7269,7 +4450,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.684269(mm),0.62368002(mm),78.292242(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.814683(mm),3.3235078(mm),78.445574(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7278,7 +4459,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.581988(mm),3.2592839(mm),78.662931(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.282606(mm),1.2065798(mm),79.068374(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7287,7 +4468,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.174239(mm),-1.9267785(mm),78.205847(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.467279(mm),-1.4732432(mm),78.859484(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7296,7 +4477,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.339841(mm),2.3276952(mm),79.234609(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.448355(mm),-2.4040132(mm),78.33384(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7305,7 +4486,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.87694(mm),-2.4722461(mm),79.139904(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.953599(mm),-2.6710596(mm),78.95006(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7314,7 +4495,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.12659(mm),3.7514521(mm),78.74323(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.805319(mm),-1.5790107(mm),78.447225(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7323,7 +4504,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.828969(mm),-0.62393903(mm),78.972036(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.439743(mm),-2.7486661(mm),78.335359(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7332,7 +4513,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.377229(mm),-2.5432378(mm),78.875363(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.447728(mm),0.73526201(mm),78.333951(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7341,7 +4522,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.632646(mm),2.6744737(mm),78.653999(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.351861(mm),-0.72255606(mm),78.527182(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7350,7 +4531,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.084705(mm),2.8883075(mm),78.397962(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.520938(mm),-3.2476543(mm),79.02635(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7359,7 +4540,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.181774(mm),3.7792348(mm),78.909826(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.155239(mm),3.1203951(mm),78.561851(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7368,7 +4549,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.866133(mm),-1.3433965(mm),78.612829(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.409196(mm),-1.1518763(mm),78.340745(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7377,7 +4558,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.220278(mm),1.829737(mm),78.903037(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.01173(mm),1.9795021(mm),78.93981(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7386,7 +4567,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.640553(mm),2.2033271(mm),79.357912(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.997182(mm),1.0911829(mm),78.589721(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7395,7 +4576,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.118444(mm),-0.77462108(mm),78.568339(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.341994(mm),-0.64221752(mm),79.410556(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7404,7 +4585,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.425491(mm),-1.0417058(mm),78.161545(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.330638(mm),-1.739243(mm),78.707251(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7413,7 +4594,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.374005(mm),-1.5600708(mm),78.34695(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.185205(mm),2.8983717(mm),79.085549(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7422,7 +4603,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.663615(mm),-0.32168566(mm),78.648538(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.190141(mm),0.44207292(mm),78.203043(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7431,7 +4612,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.072885(mm),2.8508582(mm),79.105354(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.998828(mm),-1.950036(mm),78.413104(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7440,7 +4621,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.367597(mm),0.89326418(mm),78.877061(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.900318(mm),2.301291(mm),78.959455(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7449,7 +4630,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.543677(mm),-0.79700234(mm),79.02234(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.230603(mm),-3.7990047(mm),78.901217(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7458,7 +4639,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.394647(mm),-3.0895402(mm),79.224945(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.288831(mm),0.21674953(mm),78.538296(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7467,7 +4648,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.688916(mm),0.40744257(mm),78.46775(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.272615(mm),-2.6755759(mm),78.717482(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7476,7 +4657,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.226338(mm),-1.0100493(mm),78.901969(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.223724(mm),-2.9754125(mm),78.373449(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7485,7 +4666,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.975414(mm),1.7982846(mm),78.946213(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.113673(mm),1.5664781(mm),78.392854(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7494,7 +4675,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.974186(mm),0.38623532(mm),78.593776(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.55759(mm),-2.1044913(mm),79.019887(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7503,7 +4684,1367 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.675184(mm),1.0602642(mm),78.646498(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.445429(mm),2.0375797(mm),79.215991(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.063055(mm),3.3165787(mm),78.754433(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.272446(mm),-2.1386804(mm),78.541185(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.10771(mm),-1.2477738(mm),79.27554(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.417282(mm),0.54366298(mm),79.044627(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.240511(mm),1.0516082(mm),78.723143(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.654037(mm),-2.8452146(mm),78.826554(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.093248(mm),-0.035856515(mm),79.27809(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.773713(mm),1.8626564(mm),78.452798(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.7281(mm),-0.31258023(mm),78.284514(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.061859(mm),2.0601418(mm),78.930971(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.227881(mm),0.80376895(mm),79.254351(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-17.038788(mm),-0.47672239(mm),78.229731(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.325721(mm),-0.40974828(mm),78.884445(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.559378(mm),-2.4575742(mm),78.314264(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.447607(mm),1.9744122(mm),78.510299(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.192172(mm),-2.1684483(mm),78.555339(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.597446(mm),-3.4044712(mm),78.483878(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.639205(mm),-0.8254063(mm),78.476515(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.351213(mm),-1.0182263(mm),79.056277(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.369474(mm),0.85220575(mm),78.700403(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-17.162071(mm),2.0741793(mm),78.207993(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.5217(mm),3.2741324(mm),78.849888(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.526919(mm),0.052423903(mm),78.672641(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.656351(mm),1.8593599(mm),78.826146(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.775647(mm),2.514974(mm),78.805111(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.883591(mm),-2.744486(mm),78.962404(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.900785(mm),3.0137287(mm),78.959372(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.338603(mm),2.996405(mm),78.705846(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.638051(mm),-2.2828503(mm),78.829373(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-17.126867(mm),2.0846717(mm),78.2142(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.882539(mm),-2.3844285(mm),78.433609(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.628916(mm),2.6703215(mm),78.302002(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.906701(mm),0.50791444(mm),79.134656(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.161599(mm),2.8556417(mm),78.737057(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.391188(mm),-1.2674084(mm),78.34392(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.639301(mm),1.0689665(mm),78.300171(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.870089(mm),-2.0664592(mm),78.964785(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.923329(mm),-2.3915594(mm),79.131724(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.966093(mm),-2.8937227(mm),79.124184(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-17.133509(mm),-1.6892315(mm),78.213029(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.933177(mm),1.4910421(mm),78.953661(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.719662(mm),1.320901(mm),78.991309(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-10.087516(mm),-0.90152416(mm),79.455428(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.058665(mm),2.7632846(mm),78.57888(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.112298(mm),1.1958049(mm),78.922077(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.21168(mm),0.46784523(mm),78.728226(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.232102(mm),3.836317(mm),78.900952(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.134041(mm),0.54989782(mm),79.09457(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.330037(mm),1.3466272(mm),78.53103(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.633722(mm),2.6616191(mm),78.477482(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.637971(mm),-0.83159493(mm),78.829387(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.365125(mm),1.3263165(mm),78.348516(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.888281(mm),-2.9808818(mm),78.78525(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.246647(mm),-3.0895096(mm),78.369407(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.677725(mm),0.95530785(mm),78.469723(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.963698(mm),-1.7238331(mm),78.948279(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-17.451644(mm),-0.35890909(mm),78.156933(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-10.703415(mm),-0.29721397(mm),79.346828(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.432488(mm),-3.1339249(mm),78.512965(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.612494(mm),3.253492(mm),78.657552(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.75317(mm),-0.026218882(mm),78.45642(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.615558(mm),0.39556248(mm),78.833339(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.301044(mm),3.0736608(mm),78.712469(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.724458(mm),1.1769625(mm),78.814137(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.250109(mm),-1.8568967(mm),78.72145(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.689621(mm),0.61946268(mm),78.643952(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.365105(mm),-0.92713624(mm),78.348519(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.854026(mm),-2.7141591(mm),78.967617(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.954908(mm),-2.4569734(mm),78.949829(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.35271(mm),2.4664092(mm),79.23234(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.314002(mm),3.4983827(mm),78.886511(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.144191(mm),-1.1308129(mm),78.740126(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.326091(mm),-3.6489521(mm),78.708053(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.422631(mm),-3.0747361(mm),79.220011(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-10.925493(mm),1.2583055(mm),79.30767(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.168903(mm),-2.6175535(mm),79.26475(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.573017(mm),3.1576162(mm),78.488186(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.92785(mm),-0.43471166(mm),78.249292(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.800484(mm),-2.228618(mm),79.153385(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.186544(mm),-3.7082445(mm),78.908986(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-17.484796(mm),-1.063431(mm),78.151088(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.505489(mm),1.4634742(mm),78.852747(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.245149(mm),2.1185651(mm),79.074979(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.260831(mm),2.4554687(mm),79.248541(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.169899(mm),-3.2251578(mm),79.088247(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.921208(mm),2.9520565(mm),79.132098(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.643966(mm),1.5250959(mm),79.180984(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.041852(mm),-0.80346437(mm),78.405518(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.665606(mm),-0.84941947(mm),78.648187(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.592697(mm),1.7217207(mm),79.190024(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-10.851076(mm),1.6059318(mm),79.320791(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.399035(mm),1.1716332(mm),78.695191(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.768588(mm),0.47784887(mm),79.159009(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.943406(mm),2.5936354(mm),78.77553(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.763156(mm),-3.8709914(mm),78.807313(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.876761(mm),1.185358(mm),79.139936(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-17.753848(mm),0.19306914(mm),78.103647(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-10.189979(mm),0.63189473(mm),79.437361(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.494921(mm),0.55721075(mm),78.85461(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.93514(mm),-0.098125293(mm),78.600661(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.743704(mm),-2.2043951(mm),78.810743(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.664417(mm),0.10163727(mm),78.824724(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.188422(mm),-0.89898107(mm),78.379673(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.892289(mm),3.184633(mm),79.137198(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.661743(mm),3.7639756(mm),78.648868(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-17.40418(mm),-0.21274197(mm),78.165302(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.416888(mm),0.43242324(mm),79.221024(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.238028(mm),0.94001915(mm),78.72358(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.46682(mm),3.0839682(mm),78.859565(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.992607(mm),2.8812087(mm),78.414201(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.447476(mm),-1.2349663(mm),79.21563(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.612713(mm),1.2887629(mm),79.010167(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.487013(mm),1.2034652(mm),78.503351(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.982669(mm),2.3894663(mm),78.944934(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.791027(mm),3.8614688(mm),78.626072(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.254471(mm),3.0580936(mm),78.897008(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = pi+, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.27 cm 3.06 mm 7.59 cm 23.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.2463195 cm 2.5569527 mm 7.5594642 cm 19.449863 MeV 3.6026124 MeV 673.12207 um 673.12207 um Target hIoni + 2 -1.2158081 cm 2.1666017 mm 7.5384835 cm 15.960689 MeV 3.4891739 MeV 543.57188 um 1.2166939 mm Target hIoni + 3 -1.1916751 cm 1.8844638 mm 7.517497 cm 12.548564 MeV 3.4121249 MeV 431.44396 um 1.6481379 mm Target hIoni + 4 -1.1685875 cm 1.6902793 mm 7.5039505 cm 9.6343058 MeV 2.9142583 MeV 335.33801 um 1.9834759 mm Target hIoni + 5 -1.1483875 cm 1.5602562 mm 7.4943269 cm 6.4450927 MeV 3.1892131 MeV 263.4372 um 2.2469131 mm Target hIoni + 6 -1.1341179 cm 1.4676788 mm 7.4885246 cm 3.309379 MeV 3.1357137 MeV 191.37797 um 2.4382911 mm Target hIoni + 7 -1.1269743 cm 1.4409551 mm 7.4864896 cm 144.84974 keV 3.1645292 MeV 94.595924 um 2.532887 mm Target hIoni + 8 -1.126958 cm 1.440723 mm 7.486504 cm 0 eV 144.84974 keV 888.96154 nm 2.533776 mm Target hIoni + 9 -1.126958 cm 1.440723 mm 7.486504 cm 0 eV 0 eV 0 fm 2.533776 mm Target Decay +Track (trackID 4, parentID 1) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 14, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.13 cm 1.44 mm 7.49 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.1383214 cm 1.4950234 mm 7.4850396 cm 1.3712328 MeV 2.7485799 MeV 143.89929 um 143.89929 um Target muIoni + 2 -1.1399813 cm 1.4979227 mm 7.4856742 cm 156.00734 keV 1.2152254 MeV 26.315436 um 170.21473 um Target muIoni + 3 -1.1400313 cm 1.4976924 mm 7.4856753 cm 0 eV 156.00734 keV 1.0703424 um 171.28507 um Target muIoni + 4 -1.1400313 cm 1.4976924 mm 7.4856753 cm 0 eV 0 eV 0 fm 171.28507 um Target DecayWithSpin +Track (trackID 14, parentID 4) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-10.918121(mm),1.6794507(mm),79.30897(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.130837(mm),2.9117861(mm),78.918808(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.437403(mm),-3.4253857(mm),78.864752(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.787652(mm),1.0052341(mm),78.45034(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.397155(mm),1.5813761(mm),78.342868(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.692238(mm),-2.1482959(mm),79.172472(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.105785(mm),1.8788007(mm),78.570571(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.690126(mm),-0.74189604(mm),78.467536(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.216408(mm),-2.1048685(mm),79.256374(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.812793(mm),1.7062428(mm),78.445907(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.47015(mm),0.20924709(mm),78.329997(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.654754(mm),-2.7824535(mm),78.473773(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.942532(mm),3.4003731(mm),78.775684(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.820535(mm),-0.29799725(mm),78.620869(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.119859(mm),-3.536531(mm),78.56809(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.858276(mm),1.4147176(mm),78.614214(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.244112(mm),-3.5766138(mm),79.075162(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = pi+, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.01 cm -3.59 mm 6.68 cm 38.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.0934259 cm -3.1924869 mm 6.7747717 cm 33.244681 MeV 5.3444536 MeV 1.3714405 mm 1.3714405 mm Target hIoni + 2 -1.1541504 cm -2.8121086 mm 6.8580913 cm 28.336285 MeV 4.9083958 MeV 1.1079304 mm 2.4793709 mm Target hIoni + 3 -1.1849362 cm -2.2654425 mm 6.9196643 cm 23.804938 MeV 4.5313473 MeV 886.65182 um 3.3660227 mm Target hIoni + 4 -1.1903521 cm -1.7868586 mm 6.969195 cm 19.674225 MeV 4.1307124 MeV 701.86885 um 4.0678916 mm Target hIoni + 5 -1.1883691 cm -1.3176415 mm 6.996979 cm 16.903014 MeV 2.7712112 MeV 551.24083 um 4.6191324 mm Target hIoni + 6 -1.1787099 cm -928.58174 um 7.0185612 cm 13.70683 MeV 3.1961837 MeV 460.37507 um 5.0795075 mm Target hIoni + 7 -1.1660611 cm -684.59249 um 7.0420799 cm 10.709217 MeV 2.9976138 MeV 366.43816 um 5.4459457 mm Target hIoni + 8 -1.1553134 cm -473.68024 um 7.0578409 cm 8.0043916 MeV 2.704825 MeV 288.99185 um 5.7349375 mm Target hIoni + 9 -1.1449187 cm -326.95482 um 7.0707707 cm 5.0726534 MeV 2.9317382 MeV 226.30846 um 5.961246 mm Target hIoni + 10 -1.1364773 cm -237.1676 um 7.0797643 cm 1.7896818 MeV 3.2829716 MeV 158.05736 um 6.1193033 mm Target hIoni + 11 -1.1346019 cm -222.76525 um 7.0811141 cm 221.87923 keV 1.5678026 MeV 34.224331 um 6.1535277 mm Target hIoni + 12 -1.1345534 cm -222.03347 um 7.0811422 cm 17.284533 keV 204.5947 keV 1.5368753 um 6.1550645 mm Target hIoni + 13 -1.1345534 cm -222.02499 um 7.0811412 cm 0 eV 17.284533 keV 122.09584 nm 6.1551866 mm Target hIoni + 14 -1.1345534 cm -222.02499 um 7.0811412 cm 0 eV 0 eV 0 fm 6.1551866 mm Target Decay +Track (trackID 2, parentID 1) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 30, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.13 cm -222 um 7.08 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.1319178 cm -104.15527 um 7.0848677 cm 1.1948936 MeV 2.924919 MeV 143.89929 um 143.89929 um Target muIoni + 2 -1.1322039 cm -102.01376 um 7.0861509 cm 175.62398 keV 1.0192697 MeV 21.11414 um 165.01343 um Target muIoni + 3 -1.1322234 cm -102.1395 um 7.0862161 cm 2.7755576e-08 meV 175.62398 keV 1.2486105 um 166.26204 um Target muIoni + 4 -1.1322234 cm -102.1395 um 7.0862161 cm 0 eV 2.7755576e-08 meV 3.8700232 fm 166.26204 um Target muIoni + 5 -1.1322234 cm -102.1395 um 7.0862161 cm 0 eV 0 eV 0 fm 166.26204 um Target DecayWithSpin +Track (trackID 30, parentID 2) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-10.168496(mm),-0.030734158(mm),79.441149(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.797547(mm),-3.2782816(mm),78.801249(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.915905(mm),-1.8495506(mm),78.251398(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.633495(mm),-0.37907052(mm),79.18283(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-10.48627(mm),0.04948984(mm),79.385117(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-10.893717(mm),-1.6298825(mm),79.313273(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.487858(mm),-1.141654(mm),78.855856(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.04114(mm),-2.5821494(mm),78.58197(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.642573(mm),3.4798991(mm),78.828575(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.833424(mm),-0.41912519(mm),78.442269(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.21837(mm),-3.4077013(mm),78.55072(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7935,7 +6476,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.439036(mm),1.2833315(mm),78.688137(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.199789(mm),-0.086248761(mm),79.082977(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7944,7 +6485,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.1244(mm),-1.6610216(mm),79.272597(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.410356(mm),3.4475743(mm),78.693194(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7953,7 +6494,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.635292(mm),-2.3170997(mm),79.182513(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.250846(mm),3.4067514(mm),78.72132(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7962,7 +6503,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.393665(mm),-1.765209(mm),78.519811(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.957601(mm),-3.2957009(mm),78.5967(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7971,7 +6512,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.78361(mm),-0.63266479(mm),78.980034(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.181393(mm),-1.1529288(mm),79.086221(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7980,7 +6521,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.591839(mm),1.6305186(mm),79.190175(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.739381(mm),3.3242861(mm),78.811505(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7989,7 +6530,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.923893(mm),0.89252408(mm),78.955298(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.598416(mm),0.6287922(mm),78.30738(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -7998,7 +6539,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.780101(mm),-3.1900045(mm),78.627998(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.795993(mm),1.8724417(mm),78.801523(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8007,7 +6548,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.550472(mm),-0.94132759(mm),78.492161(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.948605(mm),-1.5029484(mm),78.950941(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8016,7 +6557,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.985833(mm),-0.55462638(mm),79.29703(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.382323(mm),0.24936448(mm),78.698137(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8025,7 +6566,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.238071(mm),-0.40419501(mm),78.194592(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.524987(mm),0.41764291(mm),78.496655(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8034,7 +6575,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.06957(mm),0.048230438(mm),78.576957(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.536663(mm),2.5107555(mm),78.318269(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8043,7 +6584,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.585119(mm),-3.2728229(mm),78.662379(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.959296(mm),-1.578294(mm),79.301709(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8052,7 +6593,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.446296(mm),-1.3763716(mm),78.686857(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.375062(mm),1.0520047(mm),79.404726(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8061,7 +6602,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.640215(mm),2.4738672(mm),78.652664(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.497218(mm),1.0010277(mm),78.501551(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8070,16 +6611,47 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.777995(mm),-0.161821(mm),78.099389(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.312967(mm),1.9820438(mm),78.710367(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = pi+, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.37 cm 1.98 mm 7.51 cm 22.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.3626712 cm 1.3889073 mm 7.4905258 cm 18.656952 MeV 3.4637903 MeV 638.3227 um 638.3227 um Target hIoni + 2 -1.3683903 cm 894.33108 um 7.4787899 cm 15.16539 MeV 3.4915623 MeV 516.90349 um 1.1552262 mm Target hIoni + 3 -1.3640982 cm 494.39302 um 7.4812113 cm 12.059264 MeV 3.106126 MeV 407.82677 um 1.563053 mm Target hIoni + 4 -1.3628677 cm 176.73223 um 7.4802676 cm 9.1198071 MeV 2.9394564 MeV 322.65657 um 1.8857095 mm Target hIoni + 5 -1.3689964 cm -62.384309 um 7.4803341 cm 6.5534912 MeV 2.5663159 MeV 251.53696 um 2.1372465 mm Target hIoni + 6 -1.3719056 cm -246.95201 um 7.477692 cm 3.7867586 MeV 2.7667326 MeV 193.84422 um 2.3310907 mm Target hIoni + 7 -1.3752518 cm -333.22025 um 7.473981 cm 356.17677 keV 3.4305818 MeV 116.1114 um 2.4472021 mm Target hIoni + 8 -1.3753728 cm -333.44591 um 7.4740702 cm 34.909236 keV 321.26753 keV 2.9530734 um 2.4501552 mm Target hIoni + 9 -1.3753734 cm -333.39899 um 7.4740698 cm 0 eV 34.909236 keV 198.66235 nm 2.4503539 mm Target hIoni + 10 -1.3753734 cm -333.39899 um 7.4740698 cm 0 eV 0 eV 0 fm 2.4503539 mm Target Decay +Track (trackID 4, parentID 1) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 15, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.38 cm -333 um 7.47 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.3766621 cm -380.01883 um 7.4623607 cm 938.92123 keV 3.1808914 MeV 143.89929 um 143.89929 um Target muIoni + 2 -1.3773179 cm -379.66628 um 7.4618134 cm 122.18131 keV 816.73993 keV 14.409646 um 158.30894 um Target muIoni + 3 -1.3773222 cm -379.65426 um 7.4618287 cm 2.7755576e-08 meV 122.18131 keV 790.36449 nm 159.0993 um Target muIoni + 4 -1.3773222 cm -379.65426 um 7.4618287 cm 0 eV 2.7755576e-08 meV 3.8700232 fm 159.0993 um Target muIoni + 5 -1.3773222 cm -379.65426 um 7.4618287 cm 0 eV 0 eV 0 fm 159.0993 um Target DecayWithSpin +Track (trackID 15, parentID 4) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.551131(mm),1.3513218(mm),78.315718(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.922962(mm),0.35747392(mm),78.779135(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8088,7 +6660,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.267682(mm),0.17208151(mm),79.071006(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.580065(mm),0.43435539(mm),79.368578(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8097,7 +6669,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.486897(mm),2.3402922(mm),78.327044(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.6806(mm),-3.022466(mm),79.174524(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8106,7 +6678,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.21984(mm),1.2686158(mm),79.432095(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.315143(mm),3.3121865(mm),79.062637(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8115,7 +6687,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.082739(mm),1.2086472(mm),79.279943(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.957351(mm),0.85964578(mm),78.596744(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8124,7 +6696,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.976086(mm),-2.6931921(mm),79.122422(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.589189(mm),-0.66165153(mm),79.190642(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8133,7 +6705,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.868278(mm),-0.72971388(mm),78.259796(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.89253(mm),1.0679947(mm),79.137155(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8142,7 +6714,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.628136(mm),-1.3033174(mm),78.30214(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.119159(mm),-0.62765186(mm),78.74454(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8151,7 +6723,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.919532(mm),-0.68090405(mm),78.956067(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.414468(mm),0.18666155(mm),78.868796(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8160,7 +6732,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.995137(mm),1.9634238(mm),78.237428(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.819642(mm),2.4452805(mm),78.621026(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8169,7 +6741,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.989686(mm),3.4003282(mm),78.591043(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.886939(mm),-2.9603217(mm),78.785487(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8178,7 +6750,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.569416(mm),1.0329933(mm),79.370456(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.318212(mm),-1.5980942(mm),78.709442(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8187,7 +6759,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.36289(mm),1.6699369(mm),78.877891(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.361825(mm),0.49254997(mm),79.230733(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8196,7 +6768,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.555418(mm),-2.7806024(mm),78.843943(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.057438(mm),-0.91295775(mm),78.755423(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8205,7 +6777,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.297316(mm),-0.9679153(mm),78.889453(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.34356(mm),-0.96367229(mm),79.057626(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8214,7 +6786,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.431847(mm),-0.65166642(mm),78.336751(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.9224(mm),0.065127115(mm),78.250253(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8223,7 +6795,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.367269(mm),-1.2449936(mm),78.348138(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.310301(mm),-0.32436996(mm),79.239818(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8232,7 +6804,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.885686(mm),2.078543(mm),79.138362(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.957628(mm),-2.3258343(mm),79.302003(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8241,7 +6813,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.227759(mm),-0.27939354(mm),78.901718(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.422742(mm),1.594261(mm),78.162029(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8250,7 +6822,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.037768(mm),0.87851523(mm),78.935219(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.432466(mm),-0.50266338(mm),79.394604(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8259,7 +6831,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.166721(mm),0.34215905(mm),79.088808(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.490296(mm),-1.3270413(mm),78.502772(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8268,7 +6840,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.974303(mm),-3.380171(mm),78.593755(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.658554(mm),1.3597637(mm),79.002084(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8277,7 +6849,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.266475(mm),-3.6431211(mm),78.542237(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.698465(mm),-0.69655654(mm),78.289739(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8286,7 +6858,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.945758(mm),2.578418(mm),79.304097(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.451146(mm),-3.2608607(mm),78.686002(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8295,7 +6867,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.938831(mm),-0.66432151(mm),78.247356(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.006074(mm),0.091252022(mm),78.235499(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8304,7 +6876,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.930931(mm),1.4830146(mm),78.248749(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.514297(mm),-1.1798374(mm),78.851194(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8313,7 +6885,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.606226(mm),-3.3122768(mm),78.834984(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.445716(mm),-2.792165(mm),78.510632(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8322,7 +6894,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.528325(mm),2.4142003(mm),79.025047(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.952741(mm),2.6185885(mm),79.302865(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8331,7 +6903,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.649123(mm),3.2370856(mm),78.474766(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.26974(mm),-0.85086573(mm),78.189008(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8340,7 +6912,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.939118(mm),-2.308331(mm),78.423632(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.408389(mm),-3.5850949(mm),78.869868(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8349,7 +6921,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.817158(mm),1.1550549(mm),78.26881(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.871477(mm),2.3017406(mm),78.435559(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8358,7 +6930,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.452726(mm),2.0425898(mm),78.86205(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.06738(mm),2.0013817(mm),79.106324(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8367,7 +6939,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.420401(mm),3.1367652(mm),79.044077(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.823738(mm),-0.67848409(mm),78.26765(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8376,7 +6948,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.135365(mm),3.3254619(mm),79.094337(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.031412(mm),1.6714251(mm),78.583685(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8385,7 +6957,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.081636(mm),-2.9758011(mm),78.398503(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.397321(mm),-0.98224707(mm),78.166512(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8394,7 +6966,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.830236(mm),0.38831127(mm),78.266504(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.777727(mm),3.1487194(mm),78.45209(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8403,7 +6975,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.642699(mm),1.9254871(mm),79.357534(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.005915(mm),0.29408796(mm),78.940835(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8412,7 +6984,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.953944(mm),-2.6244593(mm),78.421018(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.550175(mm),-1.9609932(mm),78.844868(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8421,7 +6993,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.59829(mm),1.7649078(mm),78.660057(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.410901(mm),2.969254(mm),78.516771(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8430,7 +7002,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.290945(mm),2.2080513(mm),78.537923(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.798578(mm),-0.41458301(mm),78.62474(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8439,241 +7011,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.521413(mm),-2.3562611(mm),78.673612(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.915261(mm),0.58116177(mm),79.309474(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.860843(mm),3.2959204(mm),78.790088(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.541926(mm),-0.84298804(mm),78.669995(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.453829(mm),-1.1299343(mm),78.685529(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.298195(mm),3.7510333(mm),78.889298(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.940387(mm),-3.1507962(mm),78.423409(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.870202(mm),1.1596542(mm),79.317419(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.711585(mm),-0.33199874(mm),78.287426(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.517389(mm),2.6770426(mm),79.203303(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.066739(mm),3.3020997(mm),78.753783(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.573498(mm),2.3116087(mm),78.311774(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.619118(mm),-1.7177876(mm),79.361692(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.638099(mm),2.6880839(mm),78.653037(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.571313(mm),1.9514477(mm),79.370121(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.141637(mm),0.21140657(mm),78.387923(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.199093(mm),3.4939888(mm),78.730446(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.132581(mm),-2.685621(mm),78.38952(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.609404(mm),-1.0090369(mm),79.010751(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.668816(mm),2.170189(mm),79.176602(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.006809(mm),-0.33139438(mm),78.940678(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.240764(mm),1.0447621(mm),78.546771(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.189849(mm),-0.54670764(mm),79.08473(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.993437(mm),-2.3467844(mm),78.766708(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.962609(mm),0.37262853(mm),78.243163(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.469924(mm),-0.33864153(mm),78.859018(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.189824(mm),0.59601419(mm),78.908407(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.302803(mm),-1.2035982(mm),78.712159(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8683,151 +7021,33 @@ Track (trackID 1, parentID 0) is processed with stopping code 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.02 cm 578 um 6.2 cm 72.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -9.2617217 mm 2.3075567 mm 5.9194117 cm 62.288826 MeV 9.8686212 MeV 3.429454 mm 3.429454 mm Target hIoni - 2 -8.5774698 mm 3.6804878 mm 5.7666523 cm 55.483804 MeV 6.8050214 MeV 2.1767672 mm 5.6062212 mm Target Transportation - 3 11.783516 cm -2.7205239 cm -2 m 55.483816 MeV1.1065912e-13 meV 2.5226632 m 2.5282694 m CaptureMgnt Transportation - 4 12.65595 cm -3.8423879 cm -2.0200377 m 55.475884 MeV 5.4528717 keV 2.4565834 cm 2.5528352 m World hIoni - 5 12.926015 cm -4.1895197 cm -2.0262371 m 55.472642 MeV 3.2425154 keV 7.6011025 mm 2.5604363 m World hIoni - 6 15.16572 cm -7.0689666 cm -2.0776021 m 55.453517 MeV 13.70172 keV 6.300094 cm 2.6234373 m World hIoni - 7 15.537604 cm -7.545432 cm -2.0861044 m 55.450136 MeV 2.3796029 keV 1.0431677 cm 2.6338689 m World hIoni - 8 18.619362 cm -11.50169 cm -2.1567646 m 55.430752 MeV 18.16809 keV 8.6647613 cm 2.7205165 m World hIoni - 9 23.611954 cm -17.939682 cm -2.2710921 m 55.400707 MeV 30.044446 keV 14.0386 cm 2.8609025 m World Decay + 0 -1.14 cm -1.22 mm 6.23 cm 10.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.1318027 cm -1.4781471 mm 6.2186996 cm 7.7939131 MeV 2.9177793 MeV 289.05191 um 289.05191 um Target hIoni + 2 -1.1240434 cm -1.6607028 mm 6.2099657 cm 4.7366696 MeV 3.0572436 MeV 221.60736 um 510.65926 um Target hIoni + 3 -1.1176489 cm -1.7836504 mm 6.2063337 cm 1.6135444 MeV 3.1231252 MeV 148.7866 um 659.44586 um Target hIoni + 4 -1.1178982 cm -1.8037461 mm 6.206855 cm 103.26596 keV 1.5102784 MeV 29.001447 um 688.44731 um Target hIoni + 5 -1.1179082 cm -1.8040062 mm 6.2068624 cm 0 eV 103.26596 keV 597.23522 nm 689.04454 um Target hIoni + 6 -1.1179082 cm -1.8040062 mm 6.2068624 cm 0 eV 0 eV 0 fm 689.04454 um Target Decay Track (trackID 3, parentID 1) is processed with stopping code 2 ********************************************************************************************************* -* G4Track Information: Particle = mu+, Track ID = 16, Parent ID = 3 +* G4Track Information: Particle = mu+, Track ID = 15, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 23.6 cm -17.9 cm -2.27 m 57 MeV 0 eV 0 fm 0 fm World initStep - 1 23.645888 cm -17.972061 cm -2.2715256 m 56.941853 MeV 133.03471 eV 638.66358 um 638.66358 um World muIoni - 2 26.409969 cm -20.604084 cm -2.3067705 m 56.929182 MeV 10.123497 keV 5.1951682 cm 5.2590346 cm World muIoni - 3 31.07023 cm -25.041048 cm -2.3661012 m 56.918383 MeV 10.798717 keV 8.7524944 cm 14.011529 cm World muIoni - 4 33.006857 cm -26.883689 cm -2.3907466 m 56.908142 MeV 6.1138037 keV 3.6359065 cm 17.647435 cm World muIoni - 5 36.898225 cm -30.579412 cm -2.4402761 m 56.890273 MeV 15.644263 keV 7.3029405 cm 24.950376 cm World muIoni - 6 42.302311 cm -35.734667 cm -2.5093914 m 56.867478 MeV 20.409255 keV 10.175967 cm 35.126343 cm World muIoni - 7 43.123711 cm -36.520065 cm -2.519907 m 56.860772 MeV 3.5820036 keV 1.5483259 cm 36.674669 cm World muIoni - 8 43.258399 cm -36.648866 cm -2.5216331 m 56.858997 MeV 260.61611 eV 2.5402262 mm 36.928691 cm World muIoni - 9 45.764714 cm -39.047222 cm -2.553789 m 56.845331 MeV 8.2204034 keV 4.7300925 cm 41.658784 cm World muIoni - 10 46.91268 cm -40.143811 cm -2.5684949 m 56.840992 MeV 4.3388842 keV 2.164013 cm 43.822797 cm World muIoni - 11 47.684119 cm -40.880602 cm -2.5783702 m 56.792203 MeV 1.0817769 keV 1.4536818 cm 45.276479 cm World muIoni - 12 50.970918 cm -44.026125 cm -2.6204077 m 56.779763 MeV 11.002406 keV 6.1942691 cm 51.470748 cm World muIoni - 13 52.406644 cm -45.399558 cm -2.6387044 m 56.773778 MeV 4.1919775 keV 2.7009884 cm 54.171736 cm World muIoni - 14 52.5209 cm -45.509321 cm -2.6401623 m 56.772302 MeV 442.78673 eV 2.1530457 mm 54.387041 cm World muIoni - 15 58.28133 cm -51.039744 cm -2.7136404 m 56.753724 MeV 17.529667 keV 10.851673 cm 65.238714 cm World muIoni - 16 61.293768 cm -53.949719 cm -2.7521925 m 56.743381 MeV 9.2273454 keV 5.6925772 cm 70.931291 cm World muIoni - 17 67.109891 cm -59.593834 cm -2.8268414 m 56.723535 MeV 18.79008 keV 11.018541 cm 81.949832 cm World muIoni - 18 70.98788 cm -63.331909 cm -2.8764463 m 56.707879 MeV 14.377295 keV 7.3224701 cm 89.272302 cm World muIoni - 19 71.454399 cm -63.784423 cm -2.8824255 m 56.703577 MeV 1.0890851 keV 8.8312931 mm 90.155431 cm World muIoni - 20 75.853999 cm -68.053896 cm -2.9389651 m 56.68766 MeV 14.890018 keV 8.3397995 cm 98.495231 cm World muIoni - 21 77.206338 cm -69.357853 cm -2.9563373 m 56.67923 MeV 4.8720511 keV 2.5587252 cm 1.0105396 m World muIoni - 22 82.286182 cm -74.247929 cm -3.0215214 m 56.654884 MeV 22.979599 keV 9.6024745 cm 1.1065643 m World muIoni - 23 84.650605 cm -76.539389 cm -3.0519039 m 56.64452 MeV 8.8835018 keV 4.4802106 cm 1.1513664 m World muIoni - 24 87.391895 cm -79.188872 cm -3.0870875 m 56.633608 MeV 9.2366478 keV 5.1878054 cm 1.2032445 m World muIoni - 25 89.184847 cm -80.92699 cm -3.1101329 m 56.626387 MeV 5.5595161 keV 3.3980299 cm 1.2372248 m World muIoni - 26 91.128826 cm -82.805984 cm -3.1350766 m 56.618077 MeV 6.961078 keV 3.6785328 cm 1.2740101 m World muIoni - 27 92.214568 cm -83.853446 cm -3.1489658 m 56.611425 MeV 4.3067563 keV 2.0506309 cm 1.2945164 m World muIoni - 28 95.351894 cm -86.879016 cm -3.1891113 m 56.600583 MeV 10.842402 keV 5.925673 cm 1.3537731 m World muIoni - 29 97.446696 cm -88.897716 cm -3.2157127 m 56.589865 MeV 9.6270358 keV 3.9420447 cm 1.3931936 m World muIoni - 30 1.0050642 m -91.858994 cm -3.2547363 m 56.573253 MeV 8.4568781 keV 5.7757664 cm 1.4509512 m World muIoni - 31 1.0273461 m -94.017144 cm -3.2832737 m 56.553899 MeV 7.9811377 keV 4.2150071 cm 1.4931013 m World muIoni - 32 1.0829982 m -99.41496 cm -3.3545407 m 56.530122 MeV 21.975438 keV 10.530824 cm 1.5984096 m World muIoni - 33 1.2298472 m -1.1373718 m -3.5435532 m 56.475632 MeV 53.183938 keV 27.893295 cm 1.8773425 m World muIoni - 34 1.2321783 m -1.1396438 m -3.5465474 m 56.467162 MeV 647.48605 eV 4.4228335 mm 1.8817653 m World muIoni - 35 1.24335 m -1.1505315 m -3.5608776 m 56.463279 MeV 2.6901622 keV 2.11826 cm 1.9029479 m World muIoni - 36 1.2462103 m -1.1533127 m -3.5645516 m 56.460127 MeV 1.1033899 keV 5.4235615 mm 1.9083715 m World muIoni - 37 1.250405 m -1.157397 m -3.5699416 m 56.456205 MeV 985.15749 eV 7.9579423 mm 1.9163294 m World muIoni - 38 1.2688594 m -1.1753742 m -3.5936742 m 56.449059 MeV 5.6493754 keV 3.5028322 cm 1.9513578 m World muIoni - 39 1.2931943 m -1.1989657 m -3.6249469 m 56.437425 MeV 8.2625323 keV 4.6116503 cm 1.9974743 m World muIoni - 40 1.3062829 m -1.2116748 m -3.6418214 m 56.430844 MeV 4.2251796 keV 2.4851118 cm 2.0223254 m World muIoni - 41 1.3594167 m -1.2632374 m -3.7103686 m 56.408508 MeV 18.070434 keV 10.089921 cm 2.1232246 m World muIoni - 42 1.3644828 m -1.2681444 m -3.7168757 m 56.406721 MeV 733.31715 eV 9.5961488 mm 2.1328207 m World muIoni - 43 1.4116643 m -1.3139079 m -3.7775031 m 56.393812 MeV 11.836959 keV 8.9420922 cm 2.2222417 m World muIoni - 44 1.4531967 m -1.3544146 m -3.8311656 m 56.379749 MeV 12.667419 keV 7.9027871 cm 2.3012695 m World muIoni - 45 1.4560864 m -1.3572258 m -3.8349031 m 56.37588 MeV 899.87462 eV 5.4974477 mm 2.306767 m World muIoni - 46 1.4811632 m -1.3816239 m -3.8673728 m 56.361955 MeV 9.6736862 keV 4.7732552 cm 2.3544995 m World muIoni - 47 1.4852919 m -1.3856144 m -3.8726917 m 56.357336 MeV 1.0523998 keV 7.8269967 mm 2.3623265 m World muIoni - 48 1.4867908 m -1.3870643 m -3.8746241 m 56.355014 MeV 612.06765 eV 2.8431097 mm 2.3651696 m World muIoni - 49 1.4875722 m -1.3878202 m -3.8756308 m 56.352523 MeV 660.76839 eV 1.4816561 mm 2.3666513 m World muIoni - 50 1.4956868 m -1.3956642 m -3.8860839 m 56.346443 MeV 2.4475592 keV 1.5383157 cm 2.3820345 m World muIoni - 51 1.5119967 m -1.4114212 m -3.9070812 m 56.336968 MeV 7.1225426 keV 3.09061 cm 2.4129406 m World muIoni - 52 1.5887717 m -1.4853721 m -4.0057091 m 56.308896 MeV 26.629622 keV 14.522628 cm 2.5581668 m World muIoni - 53 1.6345968 m -1.5294364 m -4.0645871 m 56.284259 MeV 16.88205 keV 8.6650104 cm 2.6448169 m World muIoni - 54 1.6719482 m -1.5653456 m -4.1125714 m 56.274649 MeV 9.610553 keV 7.0619384 cm 2.7154363 m World muIoni - 55 1.8042639 m -1.6917567 m -4.2819092 m 56.218571 MeV 52.19009 keV 24.932501 cm 2.9647613 m World muIoni - 56 1.8263781 m -1.7129518 m -4.3102125 m 56.208996 MeV 7.7786011 keV 4.1705528 cm 3.0064669 m World muIoni - 57 1.8560523 m -1.7413408 m -4.3482524 m 56.199715 MeV 9.2806827 keV 5.5977905 cm 3.0624448 m World muIoni - 58 1.8601242 m -1.7452213 m -4.3534504 m 56.1938 MeV 1.161569 keV 7.6588444 mm 3.0701036 m World muIoni - 59 1.8974309 m -1.7808221 m -4.4011364 m 56.178408 MeV 14.397167 keV 7.0236535 cm 3.1403401 m World muIoni - 60 1.9009796 m -1.7842048 m -4.4056718 m 56.173977 MeV 755.683 eV 6.6787893 mm 3.1470189 m World muIoni - 61 1.9299705 m -1.81186 m -4.4427428 m 56.142526 MeV 10.830289 keV 5.4585218 cm 3.2016042 m World muIoni - 62 1.9564716 m -1.8371781 m -4.4764605 m 56.131613 MeV 9.0113036 keV 4.9801546 cm 3.2514057 m World muIoni - 63 2.0918889 m -1.9664848 m -4.6484531 m 56.082258 MeV 48.182402 keV 25.424408 cm 3.5056498 m World muIoni - 64 2.1303819 m -2.0032107 m -4.6975234 m 56.061847 MeV 17.959898 keV 7.2376837 cm 3.5780266 m World muIoni - 65 2.1306819 m -2.003498 m -4.6979084 m 56.059852 MeV 98.979392 eV 566.33773 um 3.578593 m World muIoni - 66 2.2677127 m -2.1348323 m -4.8737978 m 56.003341 MeV 50.371033 keV 25.877353 cm 3.8373665 m World muIoni - 67 2.2869102 m -2.1530399 m -4.8982881 m 55.997609 MeV 5.7322065 keV 3.6053265 cm 3.8734198 m World muIoni - 68 2.3198915 m -2.1842803 m -4.9404558 m 55.979908 MeV 14.566936 keV 6.198266 cm 3.9354024 m World muIoni - 69 2.3402343 m -2.2035595 m -4.9664428 m 55.952482 MeV 9.3407239 keV 3.8220921 cm 3.9736233 m World muIoni - 70 2.3745899 m -2.2361773 m -5.0103112 m 55.937969 MeV 13.510532 keV 6.4565233 cm 4.0381886 m World muIoni - 71 2.3749097 m -2.2364832 m -5.0107206 m 55.937969 MeV 0 eV 602.92985 um 4.0387915 m World muIoni - 72 2.3878786 m -2.2489837 m -5.0274392 m 55.932939 MeV 3.4766142 keV 2.4575764 cm 4.0633673 m World muIoni - 73 2.5403199 m -2.3969284 m -5.2248212 m 55.875266 MeV 56.38819 keV 28.997662 cm 4.3533439 m World muIoni - 74 2.5501839 m -2.4064905 m -5.2375305 m 55.871442 MeV 2.2774295 keV 1.8715174 cm 4.3720591 m World muIoni - 75 2.5911 m -2.4462222 m -5.290221 m 55.856304 MeV 10.170109 keV 7.7646885 cm 4.4497059 m World muIoni - 76 2.6579416 m -2.5111746 m -5.3768946 m 55.829732 MeV 25.464585 keV 12.727522 cm 4.5769812 m World muIoni - 77 2.6692499 m -2.5222541 m -5.3915547 m 55.822319 MeV 4.1050602 keV 2.1576647 cm 4.5985578 m World muIoni - 78 2.7060471 m -2.5584286 m -5.4394852 m 55.806366 MeV 14.358795 keV 7.0427484 cm 4.6689853 m World muIoni - 79 2.7105462 m -2.5628736 m -5.4454022 m 55.789781 MeV 1.019456 keV 8.6608165 mm 4.6776461 m World muIoni - 80 2.7204268 m -2.5726187 m -5.4584055 m 55.785108 MeV 3.313929 keV 1.901791 cm 4.696664 m World muIoni - 81 2.7275227 m -2.5796126 m -5.4677437 m 55.476108 MeV 2.1670017 keV 1.3655344 cm 4.7103194 m World muIoni - 82 2.746845 m -2.5984352 m -5.4931374 m 55.467557 MeV 7.4993884 keV 3.7046986 cm 4.7473663 m World muIoni - 83 2.755155 m -2.6064958 m -5.504022 m 55.463479 MeV 2.5653879 keV 1.5890397 cm 4.7632567 m World muIoni - 84 2.759435 m -2.6106467 m -5.5096313 m 55.462235 MeV 1.2440928 keV 8.1861697 mm 4.7714429 m World muIoni - 85 2.7697935 m -2.6206969 m -5.5232032 m 55.457394 MeV 4.8409361 keV 1.9811615 cm 4.7912545 m World muIoni - 86 2.7907655 m -2.6411272 m -5.5507471 m 55.446984 MeV 6.5700171 keV 4.0198132 cm 4.8314527 m World muIoni - 87 2.8051935 m -2.6551985 m -5.5696969 m 55.444421 MeV 2.562716 keV 2.7663437 cm 4.8591161 m World muIoni - 88 2.814512 m -2.6642566 m -5.5819253 m 55.318181 MeV 3.0467363 keV 1.7844217 cm 4.8769603 m World muIoni - 89 2.8506439 m -2.6993634 m -5.6295973 m 55.304306 MeV 12.285345 keV 6.9358671 cm 4.946319 m World muIoni - 90 2.8921937 m -2.7397777 m -5.6844329 m 55.285351 MeV 17.2785 keV 7.9791435 cm 5.0261104 m World muIoni - 91 2.8965674 m -2.7440167 m -5.6901894 m 55.283425 MeV 1.926654 keV 8.3806636 mm 5.0344911 m World muIoni - 92 2.9097043 m -2.7567502 m -5.7074802 m 55.275745 MeV 4.8431304 keV 2.5173201 cm 5.0596643 m World muIoni - 93 2.9223191 m -2.7689418 m -5.7241369 m 55.266757 MeV 4.3149888 keV 2.4191224 cm 5.0838555 m World muIoni - 94 2.9344716 m -2.7806607 m -5.740173 m 55.261317 MeV 3.3499362 keV 2.3284657 cm 5.1071402 m World muIoni - 95 2.9499151 m -2.7955424 m -5.7605618 m 55.25654 MeV 2.5646814 keV 2.9591661 cm 5.1367318 m World muIoni - 96 3.000081 m -2.8438443 m -5.8268984 m 55.236084 MeV 15.055543 keV 9.6178273 cm 5.2329101 m World muIoni - 97 3.0008026 m -2.8445456 m -5.8278628 m 55.235669 MeV 414.85375 eV 1.393779 mm 5.2343039 m World muIoni - 98 3.0011672 m -2.8448999 m -5.8283502 m 55.233177 MeV 0 eV 704.24821 um 5.2350081 m World muIoni - 99 3.0075796 m -2.8511331 m -5.8369289 m 55.230909 MeV 2.2674977 keV 1.2392217 cm 5.2474003 m World muIoni - 100 3.0772152 m -2.9187945 m -5.9300227 m 55.204113 MeV 23.395698 keV 13.451278 cm 5.3819131 m World muIoni - 101 3.1657504 m -3.0052734 m -6.0486747 m 55.172181 MeV 29.009862 keV 17.145127 cm 5.5533644 m World muIoni - 102 3.1828978 m -3.0220344 m -6.0716484 m 55.16469 MeV 5.5449974 keV 3.320782 cm 5.5865722 m World muIoni - 103 3.229446 m -3.0674778 m -6.1340918 m 55.144219 MeV 18.944875 keV 9.017222 cm 5.6767444 m World muIoni - 104 3.3211072 m -3.1569615 m -6.2568568 m 55.105194 MeV 35.244155 keV 17.74275 cm 5.8541719 m World muIoni - 105 3.3263625 m -3.1620795 m -6.2639074 m 55.101748 MeV 1.176662 keV 1.0174614 cm 5.8643466 m World muIoni - 106 3.3481173 m -3.1832479 m -6.2930779 m 55.094962 MeV 6.7861205 keV 4.2098617 cm 5.9064452 m World muIoni - 107 3.3517945 m -3.1868294 m -6.2980173 m 55.094308 MeV 654.26277 eV 7.1236372 mm 5.9135688 m World muIoni - 108 3.3527618 m -3.187772 m -6.2993171 m 55.092247 MeV 208.27083 eV 1.8745212 mm 5.9154433 m World muIoni - 109 3.3925152 m -3.2265324 m -6.3527813 m 55.079516 MeV 12.730443 keV 7.7078754 cm 5.9925221 m World muIoni - 110 3.4230814 m -3.2565575 m -6.3939221 m 55.060763 MeV 17.292441 keV 5.9400004 cm 6.0519221 m World muIoni - 111 3.4303272 m -3.2637229 m -6.4037761 m 55.054552 MeV 3.0167741 keV 1.4175579 cm 6.0660977 m World muIoni - 112 3.4768809 m -3.3097083 m -6.4670309 m 55.034764 MeV 18.215592 keV 9.1011574 cm 6.1571092 m World muIoni - 113 3.4830215 m -3.3157621 m -6.4754329 m 55.028842 MeV 2.2010753 keV 1.2039403 cm 6.1691486 m World muIoni - 114 3.483672 m -3.3164043 m -6.4763225 m 55.02849 MeV 352.19403 eV 1.2755942 mm 6.1704242 m World muIoni - 115 3.5036396 m -3.3361182 m -6.5036337 m 55.017827 MeV 5.9990409 keV 3.9156682 cm 6.2095809 m World muIoni - 116 3.5447703 m -3.3768238 m -6.5600766 m 55.006066 MeV 10.194449 keV 8.0836215 cm 6.2904171 m World muIoni - 117 3.5578506 m -3.3897421 m -6.5780254 m 55.001933 MeV 2.9872971 keV 2.5693097 cm 6.3161102 m World muIoni - 118 3.5631564 m -3.3949815 m -6.5853082 m 54.998629 MeV 2.0589997 keV 1.0423125 cm 6.3265334 m World muIoni - 119 3.6156599 m -3.4469012 m -6.6574712 m 54.928818 MeV 21.435861 keV 10.324635 cm 6.4297797 m World muIoni - 120 3.6189288 m -3.4501238 m -6.6619317 m 54.926768 MeV 2.0498423 keV 6.4005354 mm 6.4361802 m OutOfWorld Transportation -Track (trackID 16, parentID 3) is processed with stopping code 2 + 0 -1.12 cm -1.8 mm 6.21 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.1119796 cm -1.7805025 mm 6.1958563 cm 1.2541427 MeV 2.86567 MeV 143.89929 um 143.89929 um Target muIoni + 2 -1.1112868 cm -1.7697279 mm 6.194657 cm 124.13034 keV 1.1300123 MeV 22.811305 um 166.7106 um Target muIoni + 3 -1.1112903 cm -1.7695194 mm 6.1946235 cm 58.766803 keV 65.363539 keV 805.44173 nm 167.51604 um Target muIoni + 4 -1.1112927 cm -1.7695093 mm 6.1946119 cm 0 eV 58.766803 keV 323.52248 nm 167.83956 um Target muIoni + 5 -1.1112927 cm -1.7695093 mm 6.1946119 cm 0 eV 0 eV 0 fm 167.83956 um Target DecayWithSpin +Track (trackID 15, parentID 3) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.832896104575(mm),1.1909945452821(mm),79.323997088411(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.922772(mm),-2.0656002(mm),78.602842(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8836,7 +7056,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.53491(mm),1.4649295(mm),79.023886(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.973912(mm),-0.42571801(mm),79.299132(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8845,7 +7065,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.845197(mm),-2.735511(mm),78.969174(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.982523(mm),3.3446151(mm),78.415979(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8854,7 +7074,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.186748(mm),-1.1826348(mm),79.261604(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.046186(mm),0.88148929(mm),78.404754(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8863,7 +7083,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.381282(mm),3.111469(mm),78.521994(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.500065(mm),0.91889572(mm),78.677376(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8872,7 +7092,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.487824(mm),0.54117864(mm),79.384843(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.693922(mm),2.1184683(mm),79.172175(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8881,7 +7101,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.245551(mm),-2.544675(mm),78.722254(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.176381(mm),1.2520096(mm),78.20547(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8890,7 +7110,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.862266(mm),-3.2473925(mm),79.142491(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.137222(mm),0.87891495(mm),79.270336(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8899,7 +7119,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.464005(mm),3.8731494(mm),78.683735(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.703742(mm),-0.61519699(mm),78.112482(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8908,7 +7128,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.101932(mm),-1.0374846(mm),78.571251(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.976006(mm),-2.2478682(mm),78.946109(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8917,7 +7137,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.944132(mm),1.5967211(mm),78.599075(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.561598(mm),3.7762181(mm),78.842853(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8926,7 +7146,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.493528(mm),-0.32162005(mm),79.20751(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.290707(mm),3.0785608(mm),79.066946(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8935,7 +7155,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.504426(mm),-3.2000988(mm),79.029261(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.767968(mm),3.4640246(mm),78.453811(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8944,7 +7164,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.025009(mm),-0.22397855(mm),79.466449(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.859521(mm),-1.7575163(mm),78.437667(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8953,7 +7173,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.490749(mm),1.1606336(mm),78.326365(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.061905(mm),-0.53959437(mm),79.283617(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8962,7 +7182,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.728882(mm),0.44752365(mm),79.342338(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.869274(mm),-0.1604066(mm),78.435948(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8971,7 +7191,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.785223(mm),-1.7265234(mm),79.156076(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.279996(mm),2.5063035(mm),78.363526(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8980,7 +7200,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.376578(mm),-1.9584268(mm),78.346496(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.797138(mm),-2.3834945(mm),78.624994(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8989,7 +7209,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.018545(mm),-0.45441741(mm),78.2333(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.636893(mm),-1.027998(mm),78.829577(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -8998,7 +7218,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.080941(mm),1.2297388(mm),78.222298(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.133839(mm),-1.0472183(mm),78.565625(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9007,7 +7227,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.198733(mm),-0.15160773(mm),79.25949(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.169527(mm),-0.39499658(mm),79.26464(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9016,7 +7236,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.912055(mm),1.3833315(mm),78.252077(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.618835(mm),0.17468633(mm),78.30378(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9025,7 +7245,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.783991(mm),-3.7101217(mm),78.80364(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.826813(mm),-0.59216179(mm),79.148743(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9034,7 +7254,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.886397(mm),1.4697211(mm),79.314563(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.742425(mm),-2.6173719(mm),78.458315(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9043,7 +7263,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.368207(mm),0.3223061(mm),78.171645(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.214754(mm),-1.5882415(mm),78.37503(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9052,7 +7272,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.270693(mm),0.0085298835(mm),79.246802(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.938699(mm),-0.33266769(mm),79.305341(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9061,7 +7281,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.143955(mm),1.0486956(mm),78.387514(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.932854(mm),0.39026557(mm),78.24841(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9070,7 +7290,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.63969(mm),-3.0090512(mm),78.47643(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.806209(mm),0.51407079(mm),78.447068(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9079,7 +7299,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.985568(mm),1.653807(mm),78.239115(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.029383(mm),-2.5582446(mm),78.584043(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9088,7 +7308,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.529678(mm),-1.1629013(mm),78.495828(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.813679(mm),-2.653171(mm),79.151059(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9097,7 +7317,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.740902(mm),0.77442482(mm),78.105929(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.753249(mm),2.1237417(mm),79.338041(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9106,7 +7326,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.792979(mm),2.3509795(mm),78.978382(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.11982(mm),0.18163936(mm),78.920751(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9115,7 +7335,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.467842(mm),-0.88005889(mm),79.212039(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.646749(mm),-0.084415706(mm),79.35682(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9124,7 +7344,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.518255(mm),-3.2474534(mm),78.850496(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.569927(mm),-0.02183283(mm),79.370366(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9133,7 +7353,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.977109(mm),2.9940727(mm),78.416934(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.900715(mm),-1.7120145(mm),78.959385(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9142,7 +7362,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.806187(mm),1.5916412(mm),78.799726(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.573151(mm),-0.82338148(mm),78.311835(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9151,7 +7371,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.562241(mm),-0.94878283(mm),79.195394(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.126855(mm),-1.3554898(mm),78.91951(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9160,7 +7380,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.643109(mm),-1.3925199(mm),78.2995(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.631339(mm),-1.2742692(mm),78.477902(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9169,7 +7389,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.719741(mm),2.3099504(mm),78.638642(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.86512(mm),-1.8146845(mm),78.789334(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9178,7 +7398,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.112146(mm),1.0521463(mm),78.922104(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.084847(mm),-0.027142073(mm),79.279571(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9187,7 +7407,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.621179(mm),-1.1360269(mm),79.185002(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.573571(mm),-0.90157391(mm),78.840742(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9196,7 +7416,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.01452(mm),-2.3407127(mm),78.410337(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.783211(mm),0.77631019(mm),79.156431(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9205,7 +7425,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.361743(mm),-0.28356028(mm),78.701766(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.52923(mm),-1.8274197(mm),79.024888(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9214,7 +7434,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.302923(mm),-1.3822898(mm),79.064792(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.409664(mm),1.6093608(mm),78.340662(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9223,7 +7443,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.935461(mm),-1.5828087(mm),79.305912(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.015303(mm),-0.40577866(mm),78.586526(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9232,7 +7452,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.23319(mm),-1.3135897(mm),78.195453(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.242357(mm),-0.33689233(mm),78.54649(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9241,7 +7461,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.440428(mm),1.4648331(mm),78.864219(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.541343(mm),-0.27238183(mm),79.375406(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9250,7 +7470,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.06264(mm),-2.0573779(mm),78.578179(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.089625(mm),0.95606476(mm),79.278729(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9259,7 +7479,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.326089(mm),-0.78970767(mm),79.413361(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.671773(mm),-2.9041713(mm),79.17608(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9268,7 +7488,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.959914(mm),3.2059523(mm),79.125273(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.525854(mm),-0.55880539(mm),78.143848(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9277,7 +7497,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.428843(mm),-2.0854143(mm),78.689935(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.987691(mm),0.28400122(mm),78.944049(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9286,7 +7506,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.266526(mm),0.92146775(mm),79.247536(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.267938(mm),-2.701223(mm),78.365653(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9295,7 +7515,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.415055(mm),-3.6637782(mm),79.04502(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.005581(mm),1.361848(mm),79.293548(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9304,7 +7524,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.915273(mm),2.3101084(mm),78.25151(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.785616(mm),-2.4331857(mm),78.450699(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9313,7 +7533,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.20027(mm),-1.3527692(mm),79.435546(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.479137(mm),0.36228586(mm),79.210047(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9322,7 +7542,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.778233(mm),3.0146014(mm),79.157309(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.58352(mm),3.1508526(mm),78.662661(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9331,7 +7551,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.912627(mm),-0.72885418(mm),78.428304(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.928675(mm),-2.1328846(mm),78.249147(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9340,7 +7560,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.218847(mm),2.876774(mm),78.903289(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.584997(mm),0.43626653(mm),78.486073(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9349,7 +7569,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.651497(mm),-2.9839299(mm),78.650675(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.602673(mm),2.3466392(mm),78.659284(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9358,7 +7578,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.808636(mm),-2.3917077(mm),79.328275(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.161464(mm),-1.5136762(mm),78.913408(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9367,7 +7587,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.099217(mm),2.1695031(mm),78.219076(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.370997(mm),-3.3590152(mm),78.876461(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9376,7 +7596,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.649201(mm),2.579911(mm),79.180061(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.884875(mm),1.3966357(mm),78.609524(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9385,7 +7605,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.786535(mm),2.6385584(mm),78.27421(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.60445(mm),0.31782621(mm),78.835297(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9394,7 +7614,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.686937(mm),1.1105318(mm),79.349734(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.611284(mm),1.9993364(mm),79.010419(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9403,7 +7623,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.941406(mm),0.061831794(mm),78.775883(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.989425(mm),1.1692183(mm),78.767416(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9412,7 +7632,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.218302(mm),-1.5623412(mm),78.374405(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.854955(mm),-0.55258624(mm),78.6148(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9421,7 +7641,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.109324(mm),2.0720777(mm),78.393621(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.081187(mm),2.3399588(mm),78.574909(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9430,7 +7650,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.7622(mm),-1.1242659(mm),78.807482(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.332182(mm),1.1341635(mm),78.177998(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9439,7 +7659,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.078014(mm),1.3214589(mm),78.575468(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.549601(mm),-0.95045904(mm),78.668642(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9448,7 +7668,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.075106(mm),-0.79486746(mm),78.928635(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.200479(mm),0.16305695(mm),78.730201(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9457,7 +7677,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.125086(mm),-2.5422001(mm),78.390841(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.450497(mm),-0.61561377(mm),78.157136(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9466,7 +7686,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.497333(mm),-1.8757027(mm),78.854185(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.806292(mm),1.0809999(mm),78.62338(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9475,7 +7695,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.703132(mm),-1.7875453(mm),78.994224(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.529017(mm),2.6991426(mm),78.495944(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9484,7 +7704,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.184215(mm),0.22383878(mm),78.204088(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.923196(mm),0.16117871(mm),79.131748(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9493,7 +7713,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.730302(mm),-3.0080941(mm),79.16576(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.652936(mm),-0.84139977(mm),78.12144(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9502,7 +7722,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.208844(mm),3.8272476(mm),78.905053(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.419691(mm),-1.5874787(mm),78.338894(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9511,7 +7731,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.001701(mm),-2.7737993(mm),78.588924(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.749137(mm),1.2677604(mm),78.986112(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9520,7 +7740,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.793981(mm),2.4437014(mm),79.330859(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.352591(mm),0.74878293(mm),78.174399(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9529,7 +7749,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.455583(mm),0.95085399(mm),78.68522(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.66743(mm),0.59695192(mm),79.000519(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9538,7 +7758,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.595775(mm),3.4475658(mm),78.836827(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.38652(mm),-1.6201085(mm),78.52107(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9547,7 +7767,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.83534(mm),0.097164725(mm),78.970912(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.989711(mm),-0.88807805(mm),78.414712(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9556,7 +7776,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.713944(mm),1.5723995(mm),78.28701(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.693562(mm),3.4208789(mm),78.466931(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9565,7 +7785,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.188937(mm),1.8973694(mm),79.084891(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.824962(mm),0.8443471(mm),79.149069(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9574,7 +7794,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.968808(mm),-3.5414208(mm),78.594724(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.490675(mm),3.3166094(mm),79.031686(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9583,7 +7803,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.332701(mm),0.85528022(mm),78.706887(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.704674(mm),0.82667904(mm),78.641298(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9592,7 +7812,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.456888(mm),-3.0624084(mm),78.68499(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.204986(mm),1.1420477(mm),78.376753(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9601,7 +7821,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.867662(mm),-2.7743899(mm),78.965213(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.645199(mm),-1.0701265(mm),79.004439(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9610,7 +7830,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.617771(mm),-2.120479(mm),79.361929(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.936048(mm),-1.0190031(mm),78.776828(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9619,7 +7839,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.82535(mm),3.38959(mm),78.972674(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.368024(mm),2.2571404(mm),78.876986(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9628,7 +7848,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.050751(mm),1.8377244(mm),79.109256(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.229199(mm),1.8201484(mm),78.725137(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9637,7 +7857,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.748421(mm),1.088974(mm),79.162565(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.974732(mm),1.3706941(mm),78.59368(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9646,7 +7866,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.132658(mm),-1.6723448(mm),79.271141(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.99927(mm),-0.39431559(mm),78.413026(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9655,7 +7875,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.693693(mm),0.9814832(mm),78.643234(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.575582(mm),-0.76766004(mm),78.13508(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9664,7 +7884,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.125398(mm),-0.31103081(mm),79.272421(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.998498(mm),-1.3138499(mm),78.413162(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9673,7 +7893,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.660432(mm),-0.77604599(mm),79.001753(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.186049(mm),3.7407202(mm),78.556419(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9682,7 +7902,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.93611(mm),2.38735(mm),78.60049(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.753444(mm),-1.8947263(mm),78.456372(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9691,7 +7911,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.702342(mm),1.6443332(mm),79.17069(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.281352(mm),-0.11281321(mm),78.363287(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9700,16 +7920,48 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.616985(mm),2.6628669(mm),78.304106(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.803684(mm),-2.8152812(mm),78.62384(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = pi+, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.36 cm -2.82 mm 7.17 cm 29.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.2963718 cm -2.328975 mm 7.117827 cm 25.151418 MeV 4.6433386 MeV 950.19732 um 950.19732 um Target hIoni + 2 -1.2309672 cm -2.1189356 mm 7.0882423 cm 21.100794 MeV 4.0506239 MeV 754.71627 um 1.7049136 mm Target hIoni + 3 -1.1772615 cm -1.938773 mm 7.0699091 cm 17.667899 MeV 3.4328942 MeV 601.25471 um 2.3061683 mm Target hIoni + 4 -1.1491346 cm -1.6910834 mm 7.0400181 cm 14.665962 MeV 3.0019373 MeV 484.60355 um 2.7907718 mm Target hIoni + 5 -1.1276626 cm -1.4065062 mm 7.0245601 cm 11.560041 MeV 3.1059215 MeV 393.37364 um 3.1841455 mm Target hIoni + 6 -1.111773 cm -1.1983269 mm 7.0088528 cm 8.7187365 MeV 2.8413041 MeV 309.98729 um 3.4941328 mm Target hIoni + 7 -1.0992221 cm -1.0048593 mm 7.0031103 cm 5.8124439 MeV 2.9062927 MeV 242.38763 um 3.7365204 mm Target hIoni + 8 -1.0879366 cm -891.94561 um 6.9968977 cm 2.9181587 MeV 2.8942852 MeV 176.63702 um 3.9131574 mm Target hIoni + 9 -1.0829938 cm -864.53045 um 6.997389 cm 136.38556 keV 2.7817731 MeV 76.596877 um 3.9897543 mm Target hIoni + 10 -1.0829638 cm -864.64475 um 6.9974155 cm 0 eV 136.38556 keV 826.74476 nm 3.990581 mm Target hIoni + 11 -1.0829638 cm -864.64475 um 6.9974155 cm 0 eV 0 eV 0 fm 3.990581 mm Target Decay +Track (trackID 4, parentID 1) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 21, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.08 cm -865 um 7 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.0731769 cm -886.23337 um 6.9898949 cm 1.1835864 MeV 2.9362262 MeV 143.89929 um 143.89929 um Target muIoni + 2 -1.0722864 cm -883.00128 um 6.988714 cm 117.87159 keV 1.0657148 MeV 20.796258 um 164.69555 um Target muIoni + 3 -1.0722503 cm -882.90983 um 6.988709 cm 2.7755576e-08 meV 117.87159 keV 756.57643 nm 165.45213 um Target muIoni + 4 -1.0722503 cm -882.90983 um 6.988709 cm 0 eV 2.7755576e-08 meV 3.8700232 fm 165.45213 um Target muIoni + 5 -1.0722503 cm -882.90983 um 6.988709 cm 0 eV 0 eV 0 fm 165.45213 um Target DecayWithSpin +Track (trackID 21, parentID 4) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.603202(mm),-1.4024437(mm),79.011844(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.937745(mm),-1.4945225(mm),78.776529(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9718,7 +7970,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.627004(mm),1.0429151(mm),78.302339(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.064158(mm),-2.0693427(mm),78.754238(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9727,7 +7979,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.064906(mm),-1.0309881(mm),78.57778(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.342023(mm),2.5671381(mm),78.352589(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9736,7 +7988,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.751564(mm),1.7719423(mm),79.162011(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.692478(mm),-2.7107795(mm),78.467122(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9745,7 +7997,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.440581(mm),-3.5531941(mm),78.687865(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.518906(mm),1.2927083(mm),78.850381(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9754,7 +8006,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.417655(mm),-2.8870825(mm),79.044561(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.761823(mm),0.21497296(mm),78.807548(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9763,7 +8015,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.724195(mm),0.9704847(mm),78.814183(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.86419(mm),-1.8769375(mm),78.260517(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9772,7 +8024,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.693014(mm),2.7526477(mm),79.172335(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.466566(mm),-1.3728246(mm),78.506956(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9781,7 +8033,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.273721(mm),-0.63414046(mm),78.364633(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.72365(mm),-0.9455255(mm),78.990606(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9790,7 +8042,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.676198(mm),-1.4990231(mm),79.351627(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.29846(mm),-0.52267529(mm),78.712925(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9799,7 +8051,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.670194(mm),2.3695688(mm),79.000032(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.694507(mm),1.5173941(mm),79.348399(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9808,7 +8060,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.874767(mm),-2.4575744(mm),78.258652(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.035431(mm),-1.8921369(mm),78.935631(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9817,7 +8069,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.36456(mm),1.1762697(mm),79.23025(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.567665(mm),0.17222229(mm),79.018111(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9826,7 +8078,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.375257(mm),-1.2780782(mm),78.170402(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.498116(mm),-0.37441253(mm),79.383028(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9835,7 +8087,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.425849(mm),2.016245(mm),79.219444(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.152928(mm),1.8728832(mm),78.562259(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9844,7 +8096,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.433246(mm),-2.4973187(mm),79.218139(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.039156(mm),0.43664192(mm),79.463955(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9853,7 +8105,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.211428(mm),0.35446243(mm),78.19929(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.600398(mm),3.4971458(mm),78.659685(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9862,7 +8114,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.730525(mm),-1.3417945(mm),78.813067(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.961244(mm),-1.0134012(mm),78.243404(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9871,7 +8123,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.887615(mm),1.5196363(mm),79.314349(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.309107(mm),1.3668698(mm),79.416355(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9880,7 +8132,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.748877(mm),2.7454705(mm),78.809831(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.070106(mm),3.1796274(mm),78.75319(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9889,7 +8141,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.852854(mm),-1.6295418(mm),78.61517(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.565969(mm),2.223466(mm),78.489429(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9898,7 +8150,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.445743(mm),0.31264651(mm),79.039609(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.85669(mm),0.98668316(mm),79.319802(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9907,7 +8159,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.289629(mm),2.9681678(mm),78.361828(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.391068(mm),0.59275072(mm),78.872922(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9916,7 +8168,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.976134(mm),-2.7114476(mm),78.593432(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.338821(mm),0.063063645(mm),78.529481(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9925,7 +8177,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.13158(mm),1.2958004(mm),79.271331(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.249572(mm),-0.098491986(mm),79.074199(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9934,7 +8186,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.048159(mm),2.4151905(mm),78.757059(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.213766(mm),1.4291842(mm),78.198878(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9943,7 +8195,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.333905(mm),0.44087422(mm),79.411983(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.072149(mm),2.3398485(mm),79.28181(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9952,7 +8204,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.050097(mm),3.2311986(mm),78.580391(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.105013(mm),-0.31779203(mm),79.276016(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9961,7 +8213,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.142688(mm),-1.6056894(mm),78.916718(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.663716(mm),1.2220914(mm),79.001174(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9970,7 +8222,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.021871(mm),0.66972312(mm),78.938022(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.513894(mm),-0.15306582(mm),79.203919(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9979,7 +8231,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.901367(mm),1.2254311(mm),78.606616(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.211357(mm),3.4512539(mm),78.551956(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9988,7 +8240,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.208595(mm),0.6790978(mm),79.257751(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.745721(mm),1.4622697(mm),78.281407(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -9997,7 +8249,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.648139(mm),0.30511541(mm),78.298613(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.89566(mm),-0.64518908(mm),78.254968(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10006,7 +8258,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.562443(mm),-3.3339196(mm),78.49005(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.974985(mm),2.1965177(mm),78.593635(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10015,7 +8267,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.736603(mm),0.85126291(mm),78.106687(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.848877(mm),1.4074915(mm),78.263217(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10024,7 +8276,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.319709(mm),-0.78589624(mm),78.180197(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.228575(mm),-1.0001164(mm),78.901574(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10033,7 +8285,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.634343(mm),2.8279331(mm),78.301046(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.80021(mm),-0.49044788(mm),79.153434(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10042,7 +8294,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.435131(mm),-0.49277133(mm),79.04148(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.158846(mm),1.1460249(mm),78.913869(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10051,7 +8303,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.503712(mm),-3.1543931(mm),78.500406(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.19346(mm),2.281404(mm),79.084093(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10060,7 +8312,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.012017(mm),-1.884715(mm),79.116086(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.365278(mm),0.56712002(mm),78.172162(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10069,7 +8321,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.503266(mm),-1.3959459(mm),78.500485(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.194649(mm),-0.508056(mm),78.731229(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10078,7 +8330,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.419155(mm),0.80440726(mm),78.338989(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.66255(mm),-3.0544778(mm),79.00138(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10087,7 +8339,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.383236(mm),0.89557483(mm),78.168995(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.928785(mm),-2.2481443(mm),78.954435(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10096,7 +8348,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.224981(mm),1.3873981(mm),78.1969(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.213005(mm),-0.18390999(mm),78.551666(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10105,7 +8357,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.286165(mm),2.611895(mm),78.362439(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.356607(mm),-0.40510447(mm),78.526345(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10114,7 +8366,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.511575(mm),-3.1968855(mm),79.028001(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.085699(mm),3.6599788(mm),78.75044(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10123,7 +8375,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.405685(mm),-0.78552571(mm),79.222999(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.549734(mm),0.48464461(mm),78.668618(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10132,7 +8384,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.262289(mm),1.4037665(mm),79.071957(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.23182(mm),-1.6376522(mm),79.077329(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10141,7 +8393,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.536457(mm),0.097130526(mm),78.847286(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.752554(mm),-1.4577846(mm),78.632856(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10150,7 +8402,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.083947(mm),0.067729948(mm),78.398095(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.067583(mm),2.1055674(mm),78.224653(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10159,7 +8411,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.910544(mm),1.0732756(mm),78.428671(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.697971(mm),3.8370214(mm),78.818807(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10168,7 +8420,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.22182(mm),-1.0416777(mm),79.079092(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.516982(mm),-3.2322601(mm),78.674393(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10177,7 +8429,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.841018(mm),3.3345962(mm),78.793584(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.564376(mm),1.7967644(mm),78.666037(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10186,7 +8438,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.523766(mm),1.9409553(mm),78.849524(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.788554(mm),1.1118091(mm),78.979162(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10195,7 +8447,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.089072(mm),-2.5706563(mm),78.573518(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.813128(mm),2.3263073(mm),78.974829(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10204,7 +8456,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.615192(mm),0.75310365(mm),78.833403(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.395879(mm),-3.0768061(mm),78.343093(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10213,7 +8465,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.386232(mm),-3.6146052(mm),78.697448(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.339963(mm),1.3657383(mm),79.410915(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10222,7 +8474,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.777826(mm),-1.0791854(mm),79.333707(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.590901(mm),1.9437318(mm),78.485032(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10231,7 +8483,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.605853(mm),-3.1309177(mm),78.83505(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.067753(mm),-3.1915495(mm),79.106259(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10240,7 +8492,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.506224(mm),0.70651992(mm),78.852617(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.738598(mm),-1.5735363(mm),78.811643(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10249,7 +8501,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.574291(mm),0.21445706(mm),78.487961(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.550982(mm),1.7171106(mm),79.373706(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10258,7 +8510,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.334014(mm),1.8143693(mm),79.059309(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.604054(mm),1.4256863(mm),78.306386(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10267,7 +8519,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.668768(mm),1.2869398(mm),79.17661(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.669491(mm),3.2671146(mm),79.000156(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10276,7 +8528,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.889837(mm),-3.3055504(mm),79.13763(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.659176(mm),0.20055434(mm),78.649321(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10285,7 +8537,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.619808(mm),0.10253561(mm),79.185243(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.001526(mm),-2.5137656(mm),79.117936(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10294,7 +8546,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.830327(mm),3.621755(mm),78.619142(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.130161(mm),0.26917216(mm),79.271581(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10303,7 +8555,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.694483(mm),-3.5516142(mm),78.819422(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.699011(mm),-2.2651385(mm),79.347605(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10312,7 +8564,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.344948(mm),3.0190372(mm),78.352074(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.163987(mm),0.60375623(mm),79.265617(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10321,7 +8573,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.450852(mm),-0.75807724(mm),78.157073(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.696172(mm),2.6855566(mm),78.642797(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10330,7 +8582,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.299537(mm),1.2702694(mm),78.360081(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.650944(mm),-0.70438191(mm),79.179753(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10339,7 +8591,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.587671(mm),-3.5816199(mm),78.485602(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.358688(mm),-3.1368118(mm),79.054959(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10348,7 +8600,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.430985(mm),-3.0036655(mm),78.336903(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.194277(mm),-0.76499924(mm),78.731295(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10357,7 +8609,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.519985(mm),1.637644(mm),78.673864(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.791117(mm),1.7413183(mm),79.331364(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10366,7 +8618,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.951288(mm),1.5884783(mm),78.950467(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.151996(mm),2.2476443(mm),78.386096(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10375,7 +8627,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.382308(mm),-1.3215448(mm),79.050794(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.037699(mm),-2.4222726(mm),78.40625(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10384,7 +8636,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.008552(mm),-3.1978865(mm),78.764043(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.885942(mm),0.51970892(mm),78.96199(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10393,7 +8645,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.259842(mm),0.32947666(mm),79.248715(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.708641(mm),-1.3631232(mm),78.464272(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10402,7 +8654,179 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.839039(mm),-0.046327245(mm),78.441279(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.745168(mm),-3.024617(mm),78.986812(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.298257(mm),0.54618132(mm),78.71296(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-11.95255(mm),2.5853168(mm),79.126572(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.399957(mm),1.7099408(mm),78.342374(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.19205(mm),-0.44247569(mm),78.555361(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = pi+, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.47 cm -443 um 7.58 cm 59.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.4822809 cm -839.32846 um 7.4604938 cm 55.689158 MeV 4.1653365 MeV 1.2888737 mm 1.2888737 mm Target CoulombScat + 2 -1.4177633 cm -1.3458312 mm 7.2425314 cm 48.266747 MeV 7.4224117 MeV 2.3457557 mm 3.6346295 mm Target hIoni + 3 -1.3634504 cm -1.5312554 mm 7.0628053 cm 42.033598 MeV 6.2331484 MeV 1.9007478 mm 5.5353773 mm Target hIoni + 4 -1.3283105 cm -1.8229784 mm 6.9156581 cm 34.987338 MeV 7.0462598 MeV 1.5525685 mm 7.0879458 mm Target hIoni + 5 -1.3206811 cm -1.9581712 mm 6.798496 cm 30.618062 MeV 4.3692767 MeV 1.1913925 mm 8.2793383 mm Target hIoni + 6 -1.294865 cm -2.3029862 mm 6.7106172 cm 26.105093 MeV 4.5129687 MeV 986.90638 um 9.2662447 mm Target hIoni + 7 -1.2802866 cm -2.6302413 mm 6.6406335 cm 22.296603 MeV 3.8084896 MeV 793.21686 um 1.0059462 cm Target hIoni + 8 -1.2522684 cm -2.8996914 mm 6.5899532 cm 18.155683 MeV 4.1409206 MeV 644.8229 um 1.0704284 cm Target hIoni + 9 -1.2243614 cm -3.1220507 mm 6.5556314 cm 14.428977 MeV 3.7267061 MeV 500.39786 um 1.1204682 cm Target hIoni + 10 -1.2031655 cm -3.3375297 mm 6.532299 cm 11.539672 MeV 2.8893044 MeV 386.6178 um 1.15913 cm Target hIoni + 11 -1.1852987 cm -3.5361735 mm 6.517614 cm 8.6012523 MeV 2.93842 MeV 309.47603 um 1.1900776 cm Target hIoni + 12 -1.1722154 cm -3.6984056 mm 6.506761 cm 5.6339089 MeV 2.9673434 MeV 239.7261 um 1.2140502 cm Target hIoni + 13 -1.1603443 cm -3.7862786 mm 6.498978 cm 2.6219307 MeV 3.0119782 MeV 172.32372 um 1.2312826 cm Target hIoni + 14 -1.1573875 cm -3.8302868 mm 6.4986379 cm 215.20509 keV 2.4067256 MeV 64.075813 um 1.2376902 cm Target hIoni + 15 -1.1573665 cm -3.8310536 mm 6.4986609 cm 8.3266727e-08 meV 215.20509 keV 1.4755371 um 1.2378377 cm Target hIoni + 16 -1.1573665 cm -3.8310536 mm 6.4986609 cm 0 eV 8.3266727e-08 meV 7.7040384 fm 1.2378377 cm Target hIoni + 17 -1.1573665 cm -3.8310536 mm 6.4986609 cm 0 eV 0 eV 0 fm 1.2378377 cm Target Decay +Track (trackID 4, parentID 1) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 14, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.16 cm -3.83 mm 6.5 cm 4.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.1522067 cm -3.7351601 mm 6.4919564 cm 1.3719039 MeV 2.7479087 MeV 143.89929 um 143.89929 um Target muIoni + 2 -1.1517942 cm -3.727447 mm 6.4901166 cm 157.16601 keV 1.2147379 MeV 26.336075 um 170.23537 um Target muIoni + 3 -1.1518019 cm -3.7269583 mm 6.4901054 cm 0 eV 157.16601 keV 1.0805645 um 171.31593 um Target muIoni + 4 -1.1518019 cm -3.7269583 mm 6.4901054 cm 0 eV 0 eV 0 fm 171.31593 um Target DecayWithSpin +Track (trackID 14, parentID 4) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-15.77393(mm),-1.833715(mm),78.45276(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.870115(mm),0.0022455916(mm),78.259472(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-10.630719(mm),-1.0294862(mm),79.359646(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-13.162751(mm),-1.0611233(mm),78.913181(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-12.431478(mm),-2.7810913(mm),79.042124(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-17.118537(mm),0.87016208(mm),78.215669(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.993592(mm),1.8313412(mm),78.2377(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-16.945599(mm),0.93176142(mm),78.246163(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.886892(mm),-0.50458425(mm),78.609168(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-17.254767(mm),-0.05089917(mm),78.191648(mm),0(nsec)) +1 primaries are passed from G4EventTransformer. +!!!!!!! Now start processing an event !!!!!!! +Track (trackID 1, parentID 0) is processed with stopping code 2 +NULL returned from G4StackManager. +Terminate current event processing. +===================================== + G4EventManager::ProcessOneEvent() +===================================== +G4PrimaryTransformer::PrimaryVertex (-14.549019(mm),0.52158656(mm),78.668744(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10843,7 +9267,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.098316(mm),-2.3520559(mm),78.395562(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.632538(mm),0.41047991(mm),79.359326(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10852,7 +9276,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.471221(mm),3.0243666(mm),78.858789(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.293071(mm),-2.8720748(mm),78.537548(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10861,7 +9285,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.979556(mm),-1.2539887(mm),78.240175(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.844133(mm),-0.8318515(mm),79.322016(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10870,7 +9294,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.922936(mm),-3.4172611(mm),78.602813(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.571873(mm),2.1371186(mm),79.017369(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10879,7 +9303,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.15427(mm),3.7707819(mm),78.738349(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.066631(mm),1.5908063(mm),78.224821(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10888,7 +9312,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.581452(mm),1.177398(mm),79.01568(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.815716(mm),-2.8215476(mm),78.798045(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10897,7 +9321,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.075735(mm),-2.176566(mm),78.752197(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.70033(mm),-3.760493(mm),78.994718(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10906,7 +9330,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.970198(mm),-2.1719717(mm),78.594479(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.177565(mm),0.81671682(mm),78.205261(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10915,7 +9339,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.632415(mm),-1.810339(mm),79.359347(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.894181(mm),-2.3562955(mm),78.960537(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10924,7 +9348,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.674132(mm),2.9002648(mm),78.823011(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.715949(mm),-0.29046817(mm),78.110329(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10933,7 +9357,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.392107(mm),-2.277861(mm),78.872739(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.532508(mm),1.8825896(mm),79.200637(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10942,7 +9366,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.868886(mm),2.7805468(mm),78.78867(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.330147(mm),1.4423456(mm),78.354683(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10951,7 +9375,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.127535(mm),-0.73848951(mm),79.272044(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.961236(mm),-0.67599096(mm),78.419732(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10960,7 +9384,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.695058(mm),-1.092863(mm),78.819321(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.911727(mm),3.299523(mm),78.604789(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10969,7 +9393,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.452181(mm),3.6802252(mm),78.862146(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.747237(mm),3.4039782(mm),78.81012(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10978,7 +9402,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.769002(mm),0.57020431(mm),78.277301(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.091098(mm),0.22813745(mm),79.454796(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10987,7 +9411,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.585625(mm),3.7007906(mm),78.838617(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.961071(mm),1.0124896(mm),79.125069(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -10996,7 +9420,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.228198(mm),-0.31198479(mm),78.37266(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.741881(mm),-0.1392399(mm),79.340046(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11005,7 +9429,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.695431(mm),-1.5890035(mm),78.819255(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.337688(mm),-1.3740645(mm),78.177027(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11014,7 +9438,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.696407(mm),1.9761199(mm),79.171737(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.574617(mm),-2.7202685(mm),78.487904(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11023,7 +9447,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.499091(mm),-2.0828657(mm),78.501221(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.744216(mm),0.83598593(mm),78.98698(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11032,7 +9456,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.160969(mm),1.8381078(mm),79.266149(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.828165(mm),0.81945012(mm),78.443196(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11041,7 +9465,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.716526(mm),-3.5600355(mm),78.991862(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.196251(mm),-0.30735039(mm),79.083601(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11050,7 +9474,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.422223(mm),3.127554(mm),78.691102(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.715045(mm),-2.5776368(mm),78.639469(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11059,7 +9483,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.315639(mm),0.2248678(mm),78.709896(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.277578(mm),-0.66767214(mm),79.069261(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11068,7 +9492,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.560062(mm),-2.3576456(mm),79.019451(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.426965(mm),1.3844324(mm),79.04292(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11077,7 +9501,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.114294(mm),0.15015111(mm),78.569071(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.655612(mm),1.7427575(mm),79.17893(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11086,7 +9510,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.300538(mm),-3.1972955(mm),78.888885(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.21256(mm),1.85842(mm),78.904398(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11095,7 +9519,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.756758(mm),2.7952595(mm),78.455787(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.876194(mm),-2.1583932(mm),79.140036(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11104,7 +9528,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.588965(mm),-2.677313(mm),78.485374(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.296885(mm),2.0653594(mm),78.536875(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11113,7 +9537,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.463236(mm),2.7129042(mm),78.68387(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.424165(mm),-1.2043131(mm),78.867086(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11122,7 +9546,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.609294(mm),-3.2531254(mm),78.658116(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.957696(mm),-0.051201659(mm),78.420357(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11131,7 +9555,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.290369(mm),1.3258633(mm),78.714351(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.385939(mm),-1.1683073(mm),79.050154(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11140,7 +9564,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.690666(mm),2.7708498(mm),78.467441(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.295723(mm),0.32962453(mm),78.889734(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11149,7 +9573,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.385524(mm),3.031638(mm),79.050227(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.003558(mm),-2.3753742(mm),78.235943(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11158,7 +9582,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.682489(mm),-1.5901147(mm),78.468883(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.513462(mm),-0.58307588(mm),78.498687(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11167,7 +9591,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.139991(mm),-0.61843752(mm),79.269848(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.171097(mm),0.75405124(mm),78.735382(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11176,7 +9600,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.729614(mm),0.69930404(mm),78.460574(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.535597(mm),0.9023587(mm),79.376419(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11185,7 +9609,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.78282(mm),-3.0520292(mm),78.803846(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.028095(mm),-0.032194269(mm),78.231616(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11194,7 +9618,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.521689(mm),-3.7965254(mm),78.673563(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.624729(mm),1.3597908(mm),79.184376(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11203,7 +9627,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.952481(mm),2.6651364(mm),78.77393(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.978835(mm),-2.4169678(mm),78.416629(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11212,7 +9636,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.229026(mm),-1.7902718(mm),78.196187(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.357423(mm),-2.5037025(mm),78.349874(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11221,7 +9645,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.800157(mm),2.470039(mm),78.977116(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.285583(mm),-3.3210478(mm),78.715195(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11230,7 +9654,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.363322(mm),2.2037592(mm),78.348834(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.632886(mm),2.0898672(mm),79.359264(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11239,7 +9663,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.884409(mm),-2.1910191(mm),79.314914(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.521804(mm),-0.42631446(mm),78.84987(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11248,7 +9672,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.918458(mm),0.47424833(mm),79.132583(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.621642(mm),3.0892894(mm),79.008593(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11257,7 +9681,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.895195(mm),3.0720169(mm),78.784031(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.361896(mm),2.2806596(mm),78.525412(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11266,7 +9690,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.316943(mm),0.48385452(mm),78.709666(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.475412(mm),0.74959453(mm),78.681723(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11275,7 +9699,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.496233(mm),1.5917021(mm),78.854379(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.895511(mm),-2.943306(mm),78.960303(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11284,7 +9708,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.853864(mm),-0.31271093(mm),79.3203(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.153831(mm),-2.3328966(mm),79.091081(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11293,7 +9717,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.16255(mm),3.330135(mm),78.560562(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.41982(mm),-3.453473(mm),78.691526(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11302,7 +9726,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.946564(mm),0.38802551(mm),78.245993(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.466662(mm),-0.31920967(mm),79.03592(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11311,7 +9735,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.44385(mm),1.2403931(mm),78.863616(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.119988(mm),1.2610955(mm),78.39174(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11320,7 +9744,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.080971(mm),-1.1655282(mm),78.39862(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.013399(mm),-2.3615341(mm),78.939516(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11329,7 +9753,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.522233(mm),-2.9588099(mm),79.026121(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.411017(mm),1.4221346(mm),78.869405(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11338,7 +9762,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.270343(mm),1.3134739(mm),79.070536(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.027053(mm),-0.70578571(mm),78.584454(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11347,7 +9771,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.275319(mm),-2.0635522(mm),78.717005(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.00928(mm),0.81607921(mm),78.940242(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11356,7 +9780,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-10.927919(mm),-1.5533694(mm),79.307242(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.955076(mm),-2.5136835(mm),78.420819(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11365,7 +9789,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.774426(mm),3.7361134(mm),78.805326(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.822566(mm),-0.72034944(mm),79.149492(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11374,7 +9798,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.043854(mm),-1.2022966(mm),79.110473(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.820579(mm),-3.5205756(mm),78.620861(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11383,7 +9807,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.427383(mm),-2.3942072(mm),78.690192(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.525461(mm),-1.322129(mm),78.320244(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11392,7 +9816,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.671558(mm),1.4126147(mm),78.647137(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.280494(mm),0.29157418(mm),79.4214(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11401,7 +9825,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.966574(mm),2.2186404(mm),79.124099(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.636455(mm),-0.72406366(mm),79.182308(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11410,7 +9834,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.419584(mm),-2.5542451(mm),78.51524(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.457015(mm),-1.7457517(mm),78.50864(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11419,7 +9843,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.250113(mm),1.011761(mm),78.897777(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.558783(mm),-0.22232281(mm),78.667023(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11428,7 +9852,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.472771(mm),3.1830948(mm),79.034843(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.793257(mm),2.5433219(mm),78.625679(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11437,7 +9861,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.465202(mm),-1.8041755(mm),78.33087(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.232616(mm),1.5404624(mm),78.371881(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11446,7 +9870,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.245957(mm),-0.30848502(mm),79.074836(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.338052(mm),1.4580326(mm),78.88227(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11455,7 +9879,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.2719(mm),-0.77905446(mm),78.541281(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.409142(mm),1.456542(mm),78.693409(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11464,7 +9888,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.819521(mm),3.4177357(mm),78.797374(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.599524(mm),0.83740389(mm),79.18882(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11473,7 +9897,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.196349(mm),1.9592147(mm),78.378276(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.562475(mm),-0.74856241(mm),78.842699(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11482,7 +9906,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.199202(mm),1.1344202(mm),78.730427(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.970213(mm),-1.8862884(mm),78.594476(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11491,7 +9915,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.09134(mm),-1.4342046(mm),78.925772(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.290725(mm),2.6222933(mm),78.890616(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11500,7 +9924,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.736252(mm),-2.268753(mm),78.283076(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.480509(mm),-0.14769526(mm),79.386133(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11509,7 +9933,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.488681(mm),-1.3615599(mm),78.85571(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.703966(mm),-1.239574(mm),78.288769(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11518,7 +9942,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.874171(mm),-0.66338677(mm),78.787738(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.116357(mm),3.4733275(mm),79.097688(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11527,7 +9951,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.405119(mm),-2.4246369(mm),79.046772(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.015544(mm),0.76679805(mm),78.586483(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11536,7 +9960,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.253067(mm),-0.49083641(mm),78.544602(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.628019(mm),-0.12863654(mm),78.654815(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11545,7 +9969,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.693125(mm),-0.30089966(mm),78.114354(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.024544(mm),0.18334333(mm),78.408569(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11554,7 +9978,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.423986(mm),-1.7572718(mm),79.219772(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.591586(mm),-1.2981362(mm),78.484912(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11563,7 +9987,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.532646(mm),-1.85482(mm),78.847958(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.258279(mm),-0.50567592(mm),78.896337(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11572,7 +9996,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.775221(mm),2.8527273(mm),78.805186(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.29772(mm),-3.1966746(mm),78.536728(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11581,7 +10005,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.624884(mm),-1.7206272(mm),78.302713(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.306674(mm),-1.5863052(mm),78.887803(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11590,7 +10014,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.568033(mm),1.6107559(mm),79.018046(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.000455(mm),0.84301571(mm),79.118125(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11599,7 +10023,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.20483(mm),0.94105918(mm),79.258415(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.669305(mm),2.2916626(mm),79.176516(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11608,7 +10032,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.88421(mm),1.4110358(mm),78.609641(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.699009(mm),1.9144725(mm),79.347605(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11617,7 +10041,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.773076(mm),1.2055633(mm),78.45291(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.099601(mm),-0.69546552(mm),79.27697(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11626,16 +10050,25 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.998255(mm),-3.680884(mm),78.589532(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.425768(mm),-0.89581896(mm),78.690477(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 + +********************************************************************************************************* +* G4Track Information: Particle = pi+, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.89 mm -83.1 um 4.34 cm 68.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.8296094 mm -178.95432 um 4.3487386 cm 0 eV 425.30823 keV 172.59196 um 172.59196 um Target pi+Inelastic +Track (trackID 2, parentID 1) is processed with stopping code 2 NULL returned from G4StackManager. Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.771357(mm),-3.2721213(mm),78.62954(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.974477(mm),-3.0776796(mm),78.946379(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11644,7 +10077,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.214204(mm),-0.59413918(mm),79.256762(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.094636(mm),-0.45528691(mm),78.39621(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11653,7 +10086,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.831778(mm),0.018926188(mm),79.147867(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.295242(mm),1.6177069(mm),78.184511(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11662,7 +10095,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.285606(mm),0.84412304(mm),78.538864(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.742437(mm),-0.14526104(mm),78.281986(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11671,7 +10104,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.890686(mm),-0.21459132(mm),78.608499(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.94448(mm),3.2335641(mm),79.127995(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11680,7 +10113,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.218375(mm),-3.3321224(mm),78.903373(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.332673(mm),-0.22968083(mm),79.235873(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11689,7 +10122,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.964369(mm),-1.3073874(mm),78.771834(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.781357(mm),-0.86474925(mm),78.804104(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11698,7 +10131,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.064261(mm),2.0326435(mm),79.283201(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.951157(mm),-1.1617831(mm),78.245183(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11707,7 +10140,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.551313(mm),0.9509349(mm),78.66834(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.560542(mm),-0.99424653(mm),78.666713(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11716,7 +10149,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.872164(mm),3.756722(mm),78.964419(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.489992(mm),1.3726954(mm),79.208133(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11725,7 +10158,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.01143(mm),0.65917175(mm),79.292517(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.899435(mm),-2.8764296(mm),79.135937(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11734,7 +10167,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.668016(mm),-3.7822298(mm),79.000416(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.53542(mm),-1.8685019(mm),79.200123(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11743,7 +10176,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.019831(mm),-1.0909262(mm),78.585728(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.524115(mm),1.2103977(mm),78.144155(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11752,7 +10185,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.618127(mm),-1.8403151(mm),78.480232(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.700318(mm),-0.70713276(mm),79.347374(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11761,7 +10194,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.946027(mm),-1.8069312(mm),78.951395(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.428829(mm),2.5317125(mm),78.337283(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11770,7 +10203,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.975299(mm),1.9894524(mm),78.59358(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.713053(mm),-3.8023784(mm),78.992475(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11779,7 +10212,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.217779(mm),0.76703369(mm),78.903478(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.565555(mm),-0.28277252(mm),78.842156(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11788,7 +10221,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.792057(mm),1.523231(mm),78.449563(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.077958(mm),-2.7313121(mm),79.104459(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11797,7 +10230,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.908962(mm),0.63413882(mm),78.957931(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.718799(mm),1.2078766(mm),78.815134(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11806,7 +10239,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.91377(mm),-1.9383235(mm),79.13341(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.343212(mm),1.6335197(mm),78.528707(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11815,7 +10248,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.641709(mm),-2.7070801(mm),79.005055(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.853064(mm),-1.0036494(mm),78.967787(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11824,7 +10257,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.797146(mm),3.6268575(mm),78.977647(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.858721(mm),-0.45051078(mm),78.614136(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11833,7 +10266,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-11.842846(mm),-1.9851217(mm),79.145916(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.87446(mm),-2.3299666(mm),79.316668(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11842,7 +10275,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.565342(mm),2.4657284(mm),78.665866(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.376371(mm),-2.4780494(mm),78.52286(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11851,7 +10284,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.300882(mm),1.5416921(mm),78.888825(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.086348(mm),3.0897837(mm),78.573999(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11860,7 +10293,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.422754(mm),0.7947642(mm),79.043662(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.745534(mm),0.24176418(mm),78.105112(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11869,7 +10302,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.097227(mm),2.0318701(mm),78.748407(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.395128(mm),1.346948(mm),78.343226(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11878,7 +10311,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.388092(mm),-3.4756351(mm),78.873447(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.266741(mm),3.1304657(mm),78.365864(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11887,7 +10320,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.400275(mm),-0.42938904(mm),78.871299(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.036605(mm),-3.2797831(mm),78.935424(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11896,7 +10329,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.539941(mm),2.6759153(mm),78.494018(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.894761(mm),0.60377824(mm),78.607781(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11905,7 +10338,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.940151(mm),0.75966161(mm),78.952431(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.353599(mm),3.2376658(mm),79.055856(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11914,7 +10347,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.197284(mm),1.8854179(mm),78.378111(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.773257(mm),-2.1302296(mm),78.805532(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11923,7 +10356,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.695797(mm),2.5302236(mm),78.290209(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.973881(mm),-2.1577642(mm),79.122811(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11932,7 +10365,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.953571(mm),-2.1610961(mm),78.597411(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.816091(mm),2.1332206(mm),78.445325(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11941,7 +10374,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.762506(mm),0.83648256(mm),78.807428(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.187668(mm),3.7367609(mm),78.908787(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11950,7 +10383,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.279568(mm),0.006141094(mm),78.716256(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.294156(mm),-2.5930948(mm),78.713684(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11959,7 +10392,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.215074(mm),0.16755133(mm),78.374974(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.028093(mm),-1.57611(mm),78.760598(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11968,7 +10401,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.09807(mm),-2.8513951(mm),78.924586(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.748777(mm),-2.9561571(mm),78.809849(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11977,7 +10410,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.755985(mm),0.34709672(mm),78.984905(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.371962(mm),-0.50282094(mm),78.876291(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11986,7 +10419,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.411441(mm),2.8092229(mm),78.86933(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.937637(mm),-1.1731146(mm),78.423893(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -11995,7 +10428,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.032029(mm),1.6442576(mm),78.230923(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.900057(mm),-3.2806018(mm),78.783174(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -12004,7 +10437,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.772247(mm),3.8773224(mm),78.80571(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.623905(mm),-2.3553967(mm),78.65554(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -12013,7 +10446,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.617546(mm),1.6069504(mm),78.832988(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.434698(mm),-2.4803029(mm),79.041556(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -12022,493 +10455,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.654581(mm),-0.98248127(mm),78.473804(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.238037(mm),0.36879985(mm),78.899906(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.674426(mm),2.8851521(mm),78.470305(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.41439(mm),-3.3591436(mm),79.045137(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-17.386178(mm),1.7560761(mm),78.168477(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.345509(mm),2.7075188(mm),79.057283(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.061798(mm),0.57256212(mm),79.107309(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.139396(mm),0.34666524(mm),79.269953(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.881317(mm),0.76982531(mm),78.786478(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.614327(mm),1.527298(mm),78.657229(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.126814(mm),3.9688978(mm),78.74319(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.447068(mm),-2.7362909(mm),78.510394(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.676713(mm),0.87368791(mm),78.646228(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.665004(mm),-1.5761802(mm),79.353601(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.743232(mm),-0.17191054(mm),79.16348(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.99711(mm),-2.5787777(mm),78.589734(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.645813(mm),-1.5059141(mm),79.004331(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-17.073872(mm),-0.61782626(mm),78.223545(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.021376(mm),-3.8009908(mm),78.585455(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.266896(mm),-1.3612643(mm),78.71849(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.698099(mm),-3.4945004(mm),78.466131(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.849239(mm),-2.4228625(mm),78.968461(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.835131(mm),0.380825(mm),78.794622(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.987723(mm),-3.8456886(mm),78.944043(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.012845(mm),3.0587839(mm),78.939613(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.420179(mm),2.6811004(mm),78.691462(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.519982(mm),-0.58585975(mm),79.026518(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.189607(mm),-2.5349041(mm),79.261099(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.668313(mm),3.2103375(mm),78.824037(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-10.873475(mm),-2.4469644(mm),79.316842(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.99273(mm),2.6824676(mm),78.414179(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.438119(mm),0.43556063(mm),78.864626(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.482507(mm),-2.0418371(mm),78.327818(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.096684(mm),1.0294175(mm),79.277484(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.602582(mm),-2.6604152(mm),78.306646(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.620096(mm),0.99139849(mm),78.303558(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.337939(mm),1.9940825(mm),78.705963(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.955331(mm),-1.8707672(mm),78.949755(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.415843(mm),3.1571812(mm),78.692227(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.92307(mm),-2.4045423(mm),78.955443(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-11.62686(mm),-2.1552144(mm),79.184(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.164354(mm),-0.92634305(mm),78.560244(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.094608(mm),-1.5397826(mm),78.925196(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.292463(mm),1.2774686(mm),78.361328(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.799086(mm),2.6592489(mm),78.448324(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.333503(mm),2.2125868(mm),78.530419(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.643739(mm),1.7445306(mm),78.299389(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-16.027444(mm),-2.6394606(mm),78.408058(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-14.051509(mm),-1.8031461(mm),78.756469(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.884357(mm),1.1203923(mm),78.433288(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-12.028128(mm),0.29558649(mm),79.113245(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.482609(mm),-3.7158496(mm),78.856781(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.044985(mm),0.56261062(mm),78.933946(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-13.557148(mm),1.9886917(mm),78.843638(mm),0(nsec)) -1 primaries are passed from G4EventTransformer. -!!!!!!! Now start processing an event !!!!!!! -Track (trackID 1, parentID 0) is processed with stopping code 2 -NULL returned from G4StackManager. -Terminate current event processing. -===================================== - G4EventManager::ProcessOneEvent() -===================================== -G4PrimaryTransformer::PrimaryVertex (-15.764821(mm),-1.9890108(mm),78.454366(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-12.75881(mm),-0.74275879(mm),78.984407(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -12538,12 +10485,12 @@ G4NistMaterialBuilder::FindOrBuildMaterial G4_W --------- Ranecu engine status --------- Initial seed (index) = 159 - Current couple of seeds = 2122931433, 185052265 + Current couple of seeds = 1111114837, 967581141 ---------------------------------------- ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.997786(mm),0.59187489(mm),78.765942(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.361535(mm),1.784006(mm),78.172822(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -12552,7 +10499,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.003073(mm),1.8960661(mm),78.765009(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-11.099425(mm),2.3165325(mm),79.277001(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -12561,7 +10508,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-14.02631(mm),0.017491419(mm),78.760912(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.767923(mm),-0.89056809(mm),79.335454(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -12570,7 +10517,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-17.585392(mm),-1.1380401(mm),78.13335(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.521326(mm),-2.3818305(mm),78.673627(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -12579,7 +10526,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.520986(mm),0.14364269(mm),78.49736(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-15.332513(mm),2.609243(mm),78.530593(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -12588,7 +10535,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-12.691766(mm),-0.53958076(mm),78.996228(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-17.683168(mm),0.99730952(mm),78.116109(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -12597,7 +10544,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.988065(mm),0.63290279(mm),78.415002(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-14.929092(mm),0.075878116(mm),78.601727(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -12606,7 +10553,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-15.676619(mm),1.1577411(mm),78.469918(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.35772(mm),-1.6262058(mm),79.407784(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -12615,7 +10562,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.294821(mm),2.355196(mm),78.889893(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-13.5353(mm),-3.2738791(mm),78.84749(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -12624,7 +10571,7 @@ Terminate current event processing. ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-16.62031(mm),-0.70201741(mm),78.30352(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-16.58383(mm),-0.567103(mm),78.309952(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 @@ -12647,12 +10594,12 @@ G4NistMaterialBuilder::FindOrBuildMaterial G4_W --------- Ranecu engine status --------- Initial seed (index) = 159 - Current couple of seeds = 1211906975, 1164582658 + Current couple of seeds = 1643709279, 529660991 ---------------------------------------- ===================================== G4EventManager::ProcessOneEvent() ===================================== -G4PrimaryTransformer::PrimaryVertex (-13.321598(mm),-1.1991641(mm),78.885172(mm),0(nsec)) +G4PrimaryTransformer::PrimaryVertex (-10.728955(mm),-1.6041563(mm),79.342325(mm),0(nsec)) 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! Track (trackID 1, parentID 0) is processed with stopping code 2 diff --git a/examples/extended/field/field04/include/F04GlobalField.hh b/examples/extended/field/field04/include/F04GlobalField.hh index 2dcd7f55ce..a32b0b15d1 100644 --- a/examples/extended/field/field04/include/F04GlobalField.hh +++ b/examples/extended/field/field04/include/F04GlobalField.hh @@ -153,30 +153,37 @@ private: private: + // A. INVARIANTS: + // -------------- + // INVARIANT: an integer to indicate the type of RK integration method ('stepper') used G4int fStepperType; + // INVARIANTS: Accuracy parameters of field propagation (and the integration it uses.) + // 1. These values are lengths - initialised in src G4double fMinStep; G4double fDeltaChord; G4double fDeltaOneStep; G4double fDeltaIntersection; - G4double fEpsMin; - G4double fEpsMax; + // 2. Dimensionless numbers - can initialise here + G4double fEpsMin = 2.5e-7; // Relative accuracy of integration (minimum) + G4double fEpsMax = 0.001; // Relative accuracy of integration (maximum) + // B. STATE: objects which carry out the propagation and are modified during tracking + // -------- // G4Mag_EqRhs* fEquation; // G4Mag_SpinEqRhs* fEquation; // G4EqMagElectricField* fEquation; - G4EqEMFieldWithSpin* fEquation; + G4EqEMFieldWithSpin* fEquation = nullptr; - G4FieldManager* fFieldManager; - G4PropagatorInField* fFieldPropagator; - G4MagIntegratorStepper* fStepper; - G4ChordFinder* fChordFinder; - - F04FieldMessenger* fFieldMessenger; - - F04DetectorConstruction* fDetectorConstruction; + G4FieldManager* fFieldManager = nullptr; + G4PropagatorInField* fFieldPropagator = nullptr; + G4MagIntegratorStepper* fStepper = nullptr; + G4ChordFinder* fChordFinder = nullptr; + // INVARIANTS during tracking: Auxiliary class & information - used for setup + F04FieldMessenger* fFieldMessenger; + F04DetectorConstruction* fDetectorConstruction= nullptr; }; #endif diff --git a/examples/extended/field/field04/src/F04DetectorConstruction.cc b/examples/extended/field/field04/src/F04DetectorConstruction.cc index 2df4d19c87..46dd1bd821 100644 --- a/examples/extended/field/field04/src/F04DetectorConstruction.cc +++ b/examples/extended/field/field04/src/F04DetectorConstruction.cc @@ -246,9 +246,7 @@ G4VPhysicalVolume* F04DetectorConstruction::ConstructDetector() G4int i = GetTargetAngle(); - char c[4]; - sprintf(c,"%d",i); - G4String angle = c; + G4String angle = std::to_string(i); G4StrUtil::strip(angle); angle = "Y" + angle; diff --git a/examples/extended/field/field04/src/F04GlobalField.cc b/examples/extended/field/field04/src/F04GlobalField.cc index 250f77cd8f..0297206bd8 100644 --- a/examples/extended/field/field04/src/F04GlobalField.cc +++ b/examples/extended/field/field04/src/F04GlobalField.cc @@ -52,21 +52,13 @@ G4ThreadLocal F04GlobalField* F04GlobalField::fObject = 0; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... F04GlobalField::F04GlobalField(F04DetectorConstruction* det) - : G4ElectroMagneticField(), + : G4ElectroMagneticField(), // old : G4MagneticField(), fMinStep(0.01*mm), fDeltaChord(3.0*mm), fDeltaOneStep(0.01*mm), fDeltaIntersection(0.1*mm), - fEpsMin(2.5e-7*mm), fEpsMax(0.05*mm), - fEquation(0), fFieldManager(0), - fFieldPropagator(0), fStepper(0), fChordFinder(0), + // fEpsMin(2.5e-7), fEpsMax(0.001), // These are pure numbers -- relative values + // fEquation(0), fFieldManager(0), + // fFieldPropagator(0), fStepper(0), fChordFinder(0), fDetectorConstruction(det) -//F04GlobalField::F04GlobalField(F04DetectorConstruction* det) -// : G4MagneticField(), -// fMinStep(0.01*mm), fDeltaChord(3.0*mm), -// fDeltaOneStep(0.01*mm), fDeltaIntersection(0.1*mm), -// fEpsMin(2.5e-7*mm), fEpsMax(0.05*mm), -// fEquation(0), fFieldManager(0), -// fFieldPropagator(0), fStepper(0), fChordFinder(0), -// fDetectorConstruction(det) { fFieldMessenger = new F04FieldMessenger(this,det); diff --git a/examples/extended/field/field04/src/F04TrajectoryPoint.cc b/examples/extended/field/field04/src/F04TrajectoryPoint.cc index 97cbd75876..75ba7da09e 100644 --- a/examples/extended/field/field04/src/F04TrajectoryPoint.cc +++ b/examples/extended/field/field04/src/F04TrajectoryPoint.cc @@ -69,7 +69,7 @@ F04TrajectoryPoint::F04TrajectoryPoint(const G4Step* aStep) fVolumeName = aStep->GetPostStepPoint()-> GetPhysicalVolume()->GetName(); } else { - fVolumeName = " "; + fVolumeName = G4String(" "); } } diff --git a/examples/extended/field/field05/History b/examples/extended/field/field05/History index 8b208b3237..ff55fbd442 100644 --- a/examples/extended/field/field05/History +++ b/examples/extended/field/field05/History @@ -4,6 +4,8 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-16 John Apostolakis (fieldex05-V11-00-01) +- Corrected assignement of epsMax=0.001 . Also epsMin is dimensionless! ## 2021-12-10 Ben Morgan (fieldex05-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/field/field05/field05.out b/examples/extended/field/field05/field05.out index dbb1696729..a3f542ed40 100644 --- a/examples/extended/field/field05/field05.out +++ b/examples/extended/field/field05/field05.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -43,6 +43,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -91,6 +93,8 @@ Some /vis commands (optionally) take a string to specify colour. # # Initialize G4 kernel /run/initialize +G4FieldManager/SetEpsMin : eps_min = 2.5e-07 +G4FieldManager/SetEpsMax : eps_max = 0.001 ( Note: unchanged eps_min= 2.5e-07 ) # # Run one event /run/beamOn 1 diff --git a/examples/extended/field/field05/src/F05DetectorConstruction.cc b/examples/extended/field/field05/src/F05DetectorConstruction.cc index a768512249..ad34f482d8 100644 --- a/examples/extended/field/field05/src/F05DetectorConstruction.cc +++ b/examples/extended/field/field05/src/F05DetectorConstruction.cc @@ -166,6 +166,7 @@ void F05DetectorConstruction::ConstructSDandField() G4double deltaChord = 3.0*mm; chordFinder->SetDeltaChord( deltaChord ); + // Maximum allowed integration error in one integration sub-step G4double deltaOneStep = 0.01*mm; fieldManager->SetAccuraciesWithDeltaOneStep(deltaOneStep); @@ -178,8 +179,9 @@ void F05DetectorConstruction::ConstructSDandField() G4PropagatorInField* fieldPropagator = transportManager->GetPropagatorInField(); - G4double epsMin = 2.5e-7*mm; - G4double epsMax = 0.05*mm; + // Limits for relative accuracy of integration + G4double epsMin = 2.5e-7; + G4double epsMax = 0.001; fieldPropagator->SetMinimumEpsilonStep(epsMin); fieldPropagator->SetMaximumEpsilonStep(epsMax); diff --git a/examples/extended/field/field06/field06.out b/examples/extended/field/field06/field06.out index e191bda669..58edcd028b 100644 --- a/examples/extended/field/field06/field06.out +++ b/examples/extended/field/field06/field06.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -56,6 +56,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -104,6 +106,8 @@ Some /vis commands (optionally) take a string to specify colour. # # Initialize G4 kernel /run/initialize +G4FieldManager/SetEpsMin : eps_min = 2.5e-07 +G4FieldManager/SetEpsMax : eps_max = 0.0001 ( Note: unchanged eps_min= 2.5e-07 ) # # Run one event /run/beamOn 1 @@ -2322,7 +2326,7 @@ Terminate current event processing. Run terminated. Run Summary Number of events processed : 1 - User=0.010000s Real=0.018593s Sys=0.010000s + User=0.020000s Real=0.024327s Sys=0.000000s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/g3tog4/History b/examples/extended/g3tog4/History index 4409ddc3f6..acda7157e4 100644 --- a/examples/extended/g3tog4/History +++ b/examples/extended/g3tog4/History @@ -5,6 +5,13 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-09 I. Hrivnacova (g3tog4Tests-V11-00-02) +- Removed common examples and test from the top clGeometry directory + (added by mistake in the previous update) + +## 2022-11-07 I. Hrivnacova (g3tog4Tests-V11-00-01) +- Updated common directory (excommon-V11-00-01) + ## 2021-12-10 Ben Morgan (g3tog4Tests-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/g3tog4/clGeometry/CMakeLists.txt b/examples/extended/g3tog4/clGeometry/CMakeLists.txt index c212830f5a..c2ef98a480 100644 --- a/examples/extended/g3tog4/clGeometry/CMakeLists.txt +++ b/examples/extended/g3tog4/clGeometry/CMakeLists.txt @@ -30,8 +30,11 @@ file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) #---------------------------------------------------------------------------- -# Add common subdirectory +# Add common subdirectory and +# - disable building examples in common +# - add a unique prefix to the common library built in this example # +set (EXAMPLES_COMMON OFF) set (common_prefix clGeometry_) add_subdirectory(common) diff --git a/examples/extended/g3tog4/clGeometry/clGeometry.out b/examples/extended/g3tog4/clGeometry/clGeometry.out index 1fd658f6cb..eaded3a04d 100644 --- a/examples/extended/g3tog4/clGeometry/clGeometry.out +++ b/examples/extended/g3tog4/clGeometry/clGeometry.out @@ -14,7 +14,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -37,6 +37,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -148,6 +150,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -175,7 +178,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -226,8 +229,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -709,6 +712,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1002,7 +1010,7 @@ Start closing geometry. G4GeometryManager::ReportVoxelStats -- Voxel Statistics Total memory consumed for geometry optimisation: 5 kByte - Total CPU time elapsed for geometry optimisation: 0.01 seconds + Total CPU time elapsed for geometry optimisation: 0 seconds Voxelisation: top CPU users: Percent Total CPU System CPU Memory Volume @@ -1031,7 +1039,7 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000420s Sys=0.000000s + User=0.000000s Real=0.000374s Sys=0.000000s Region -- -- appears in world volume This region is in the mass world. @@ -1061,7 +1069,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000044s Sys=0.000000s + User=0.000000s Real=0.000040s Sys=0.000000s Region -- -- appears in world volume This region is in the mass world. @@ -1091,7 +1099,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000053s Sys=0.000000s + User=0.000000s Real=0.000070s Sys=0.000000s Region -- -- appears in world volume This region is in the mass world. @@ -1121,7 +1129,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000046s Sys=0.000000s + User=0.000000s Real=0.000039s Sys=0.000000s Region -- -- appears in world volume This region is in the mass world. @@ -1151,7 +1159,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000079s Sys=0.000000s + User=0.000000s Real=0.000116s Sys=0.000000s Region -- -- appears in world volume This region is in the mass world. @@ -1181,7 +1189,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000052s Sys=0.000000s + User=0.000000s Real=0.000067s Sys=0.000000s Region -- -- appears in world volume This region is in the mass world. @@ -1211,7 +1219,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000048s Sys=0.000000s + User=0.000000s Real=0.000057s Sys=0.000000s Region -- -- appears in world volume This region is in the mass world. @@ -1241,7 +1249,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000047s Sys=0.000000s + User=0.000000s Real=0.000043s Sys=0.000000s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/g3tog4/clGeometry/common/.README.txt b/examples/extended/g3tog4/clGeometry/common/.README.txt index a4fb856d0b..a661acbd0e 100644 --- a/examples/extended/g3tog4/clGeometry/common/.README.txt +++ b/examples/extended/g3tog4/clGeometry/common/.README.txt @@ -4,21 +4,30 @@ /*! \page Examples_common Category "common" - In order to reduce code duplication and to reduce the number of variants of - the code of same kind, we define a set of common classes which - can be reused in "feature" examples demonstrating just a particular feature. - This module may be enhanced in future. Currently it provides - the following sets of classes: + This example includes a set of classes independent on each other which + can be reused in "feature" examples demonstrating just a particular feature + or users applications. + + It provides the following sets of classes: - Detector construction classes - two simple detector construction classes with a messenger - + - Physics list classes - GeantinoPhysicsList - physics list with geantino and chargedgeantino only - + - Primary generator classes - two simple primary generator classes (with G4ParticleGun and G4ParticleGeneralSource) + These classes can be tested with the following programs: + - testCommon.cc - only instantiates all classes + - exampleCommonNoVis.cc - Geant4 application without visualization, that can be run + both interactively or in batch (with the run.mac macro) + - exampleCommonNoVis.cc - Geant4 application with visualization, that can be run + both interactively or in batch (with the run.mac macro) + + Building examples programs can be disabled with the CMake option: -DEXAMPLES_COMMON=OFF. + */ diff --git a/examples/extended/g3tog4/clGeometry/common/CMakeLists.txt b/examples/extended/g3tog4/clGeometry/common/CMakeLists.txt index 2904865dc0..1a8641285d 100644 --- a/examples/extended/g3tog4/clGeometry/common/CMakeLists.txt +++ b/examples/extended/g3tog4/clGeometry/common/CMakeLists.txt @@ -4,9 +4,21 @@ cmake_minimum_required(VERSION 3.16...3.21) project(${common_prefix}common) #---------------------------------------------------------------------------- -# Find Geant4 package, no UI and Vis drivers activated +# Find Geant4 package, activating all available UI and Vis drivers by default +# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui +# to build a batch mode only executable # -find_package(Geant4 REQUIRED) +option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON) +if(WITH_GEANT4_UIVIS) + find_package(Geant4 REQUIRED ui_all vis_all) +else() + find_package(Geant4 REQUIRED) +endif() + +#---------------------------------------------------------------------------- +# Option to build examples in addition to test +# +option(COMMON_EXAMPLES "Activate building example executables" ON) #---------------------------------------------------------------------------- # Setup Geant4 include directories and compile definitions @@ -16,7 +28,7 @@ include(${Geant4_USE_FILE}) #---------------------------------------------------------------------------- # Locate sources and headers for this project # -include_directories(${PROJECT_SOURCE_DIR}/include +include_directories(${PROJECT_SOURCE_DIR}/include ${Geant4_INCLUDE_DIR}) file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) @@ -28,26 +40,36 @@ add_library(${common_prefix}common ${sources} ${headers}) target_link_libraries(${common_prefix}common ${Geant4_LIBRARIES} ) #---------------------------------------------------------------------------- -# Add the executable, and link it to the Geant4 libraries and common library +# Add the test executable, and link it to the Geant4 libraries and common library # add_executable(${common_prefix}testCommon testCommon.cc ) target_link_libraries(${common_prefix}testCommon ${common_prefix}common ${Geant4_LIBRARIES}) +#---------------------------------------------------------------------------- +# Optionally, add the example executables, and link it to the Geant4 libraries and common library +# +if(COMMON_EXAMPLES) + add_executable(exampleCommon exampleCommon.cc ) + target_link_libraries(exampleCommon ${common_prefix}common ${Geant4_LIBRARIES}) + add_executable(exampleCommonNoVis exampleCommonNoVis.cc ) + target_link_libraries(exampleCommonNoVis ${common_prefix}common ${Geant4_LIBRARIES}) +endif(COMMON_EXAMPLES) + #---------------------------------------------------------------------------- # Copy all scripts to the build directory, i.e. the directory in which we # build detectorConstruction. This is so that we can run the executable directly because it # relies on these scripts being in the current working directory. # set(detectorConstruction_SCRIPTS - - ) + init.mac init_vis.mac run.mac vis.mac +) foreach(_script ${detectorConstruction_SCRIPTS}) configure_file( ${PROJECT_SOURCE_DIR}/${_script} ${PROJECT_BINARY_DIR}/${_script} COPYONLY - ) + ) endforeach() #---------------------------------------------------------------------------- @@ -55,4 +77,8 @@ endforeach() # and the library to 'lib' directory under CMAKE_INSTALL_PREFIX # install(TARGETS ${common_prefix}testCommon DESTINATION bin) +if (COMMON_EXAMPLES) + install(TARGETS exampleCommon DESTINATION bin) + install(TARGETS exampleCommonNoVis DESTINATION bin) +endif(COMMON_EXAMPLES) install(TARGETS ${common_prefix}common DESTINATION lib) diff --git a/examples/extended/g3tog4/clGeometry/common/History b/examples/extended/g3tog4/clGeometry/common/History index 2f056c6ffa..1227c7745a 100644 --- a/examples/extended/g3tog4/clGeometry/common/History +++ b/examples/extended/g3tog4/clGeometry/common/History @@ -5,6 +5,15 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-07 I. Hrivnacova (excommon-V11-00-01) +New coding guidelines, added tests: +- Added exampleCommon.cc and exampleCommonNoVis.cc +- Added namespace Common +- Override keywords +- Data members initialization in .hh +- Updated README files +- Removed trailing whitespaces + ## 2021-12-10 Ben Morgan (excommon-V11-00-00) - Change to new Markdown History format @@ -12,6 +21,12 @@ be used as a substitute for writing good git commit messages! # History entries prior to 11.0 +24/05/21 B. Morgan (excommon-V10-07-00) +- Bump required CMake version range to 3.12...3.20, matching core Geant4 + +03/11/20 B. Morgan (excommon-V10-06-00) +- Support same CMake version range as core Geant4 + 29/09/17 I. Hrivnacova (excommon-V10-03-00,01) - Removed generic class names prefix (ExG4) and introduced a meaningful one when appropriate @@ -26,7 +41,7 @@ be used as a substitute for writing good git commit messages! - Fix for Doxygen documentation 09/06/15 I. Hrivnacova (excommon-V10-01-00) -- Added a client-specific prefix to common library and test +- Added a client-specific prefix to common library and test to avoid name clashes when building all extended examples at once 06/11/14 I. Hrivnacova (excommon-V10-00-06) @@ -48,18 +63,18 @@ be used as a substitute for writing good git commit messages! 04/11/14 I. Hrivnacova (excommon-V10-00-01) - Modifications to facilitate use of common directory via svn:externals: merging user classes in the top directoy (include and src), - added testCommon.cc for all classes altogether and + added testCommon.cc for all classes altogether and added building common library 28/05/14 I. Hrivnacova (excommon-V10-00-00) - Removed fPrintModulo from ExG4EventAction01 and fSetPrintModuloCmd from ExG4EventAction01Messenger, now obsolete. -- Fixed long lines, separators in userActions classes +- Fixed long lines, separators in userActions classes 28/02/13 I. Hrivnacova (excommon-V09-06-00) - When building materials with NistManager - do not set fromIsotopes argument (which was set to false), + do not set fromIsotopes argument (which was set to false), as since 9.6 all materials have to be built from isotopes. Thanks to V. Ivantchenko for pointing at this. diff --git a/examples/extended/g3tog4/clGeometry/common/README b/examples/extended/g3tog4/clGeometry/common/README index 3da6d98573..7e2ef36e96 100644 --- a/examples/extended/g3tog4/clGeometry/common/README +++ b/examples/extended/g3tog4/clGeometry/common/README @@ -7,20 +7,28 @@ Common Classes for Extended Examples ------------------------------------- - In order to reduce code duplication and to reduce the number of variants of - the code of same kind, we define a set of common classes which - can be reused in "feature" examples demonstrating just a particular feature. - This module may be enhanced in future. Currently it provides - the following sets of classes: + This example includes a set of classes independent on each other which + can be reused in "feature" examples demonstrating just a particular feature + or users applications. + + It provides the following sets of classes: - Detector construction classes - two simple detector construction classes with a messenger - + - Physics list classes - GeantinoPhysicsList - physics list with geantino and chargedgeantino only - + - Primary generator classes - two simple primary generator classes (with G4ParticleGun and G4ParticleGeneralSource) + These classes can be tested with the following programs: + - testCommon.cc - only instantiates all classes + - exampleCommonNoVis.cc - Geant4 application without visualization, that can be run + both interactively or in batch (with the run.mac macro) + - exampleCommonNoVis.cc - Geant4 application with visualization, that can be run + both interactively or in batch (with the run.mac macro) + + Building examples programs can be disabled with the CMake option: -DEXAMPLES_COMMON=OFF. diff --git a/examples/extended/g3tog4/clGeometry/common/exampleCommon.cc b/examples/extended/g3tog4/clGeometry/common/exampleCommon.cc new file mode 100644 index 0000000000..4497d91afe --- /dev/null +++ b/examples/extended/g3tog4/clGeometry/common/exampleCommon.cc @@ -0,0 +1,89 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +/// \file exampleCommon.cc +/// \brief Main program of the Common example + +#include "DetectorConstruction.hh" +#include "GeantinoPhysicsList.hh" +#include "GpsPrimaryGeneratorAction.hh" + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIExecutive.hh" +#include "G4VisExecutive.hh" + +using namespace Common; + +int main(int argc,char** argv) +{ + // Detect interactive mode (if no arguments) and define UI session + // + G4UIExecutive* ui = nullptr; + if ( argc == 1 ) { ui = new G4UIExecutive(argc, argv); } + + // Construct the default run manager + G4RunManager* runManager = new G4RunManager; + + // Set mandatory initialization classes + runManager->SetUserInitialization(new DetectorConstruction); + runManager->SetUserInitialization(new GeantinoPhysicsList); + + // Set mandatory user action class + runManager->SetUserAction(new GpsPrimaryGeneratorAction); + + // Initialize visualization + // + G4VisManager* visManager = new G4VisExecutive; + // G4VisExecutive can take a verbosity argument - see /vis/verbose guidance. + // G4VisManager* visManager = new G4VisExecutive("Quiet"); + visManager->Initialize(); + + // Get the pointer to the User Interface manager + G4UImanager* UImanager = G4UImanager::GetUIpointer(); + + // Process macro or start UI session + // + if ( ! ui ) { + // batch mode + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UImanager->ApplyCommand(command+fileName); + } + else { + // interactive mode + UImanager->ApplyCommand("/control/execute init_vis.mac"); + ui->SessionStart(); + delete ui; + } + + // Job termination + // Free the store: user actions, physics_list and detector_description are + // owned and deleted by the run manager, so they should not be deleted + // in the main() program ! + delete visManager; + delete runManager; +} diff --git a/environments/g4py/tests/g4pytest/ExN01pl/pyExN01pl.cc b/examples/extended/g3tog4/clGeometry/common/exampleCommonNoVis.cc similarity index 53% rename from environments/g4py/tests/g4pytest/ExN01pl/pyExN01pl.cc rename to examples/extended/g3tog4/clGeometry/common/exampleCommonNoVis.cc index 6ce4846307..e2e2f8233a 100644 --- a/environments/g4py/tests/g4pytest/ExN01pl/pyExN01pl.cc +++ b/examples/extended/g3tog4/clGeometry/common/exampleCommonNoVis.cc @@ -23,53 +23,58 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// pyExN01pl.cc // -// [ExN01pl] -// a site-module of Geant4Py -// -// minimal physics list, which is presnted in ExN01 of Geant4 example -// -// 2005 Q -// ==================================================================== -#include +/// \file exampleCommonNoVis.cc +/// \brief Main program of the Common example without visualization + +#include "DetectorConstruction.hh" +#include "GeantinoPhysicsList.hh" +#include "GpsPrimaryGeneratorAction.hh" + #include "G4RunManager.hh" -#include "ExN01PhysicsList.hh" +#include "G4UImanager.hh" +#include "G4UIExecutive.hh" -using namespace boost::python; +using namespace Common; -// ==================================================================== -// thin wrappers -// ==================================================================== -namespace pyExN01pl { - -ExN01PhysicsList* Construct() +int main(int argc,char** argv) { - ExN01PhysicsList* pl= new ExN01PhysicsList; + // Detect interactive mode (if no arguments) and define UI session + // + G4UIExecutive* ui = nullptr; + if ( argc == 1 ) { ui = new G4UIExecutive(argc, argv); } - G4RunManager* runMgr= G4RunManager::GetRunManager(); - runMgr-> SetUserInitialization(pl); - - return pl; -} - -} - -using namespace pyExN01pl; - -// ==================================================================== -// Expose to Python -// ==================================================================== - -BOOST_PYTHON_MODULE(_ExN01pl) { - - class_ > - ("ExN01PhysicsList", "ExN01 physics list") - ; - - // --- - def("Construct", Construct, - return_value_policy()); + // Construct the default run manager + G4RunManager* runManager = new G4RunManager; + // Set mandatory initialization classes + runManager->SetUserInitialization(new DetectorConstruction); + runManager->SetUserInitialization(new GeantinoPhysicsList); + + // Set mandatory user action class + runManager->SetUserAction(new GpsPrimaryGeneratorAction); + + // Get the pointer to the User Interface manager + G4UImanager* UImanager = G4UImanager::GetUIpointer(); + + // Process macro or start UI session + // + if ( ! ui ) { + // batch mode + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UImanager->ApplyCommand(command+fileName); + } + else { + // interactive mode + UImanager->ApplyCommand("/control/execute init.mac"); + ui->SessionStart(); + delete ui; + } + + // Job termination + // Free the store: user actions, physics_list and detector_description are + // owned and deleted by the run manager, so they should not be deleted + // in the main() program ! + delete runManager; } diff --git a/examples/extended/g3tog4/clGeometry/common/include/DetectorConstruction.hh b/examples/extended/g3tog4/clGeometry/common/include/DetectorConstruction.hh index a84899b411..19677a4148 100644 --- a/examples/extended/g3tog4/clGeometry/common/include/DetectorConstruction.hh +++ b/examples/extended/g3tog4/clGeometry/common/include/DetectorConstruction.hh @@ -23,9 +23,9 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -/// \file DetectorConstruction.hh -/// \brief Definition of the DetectorConstruction class +// +/// \file common/include/DetectorConstruction.hh +/// \brief Definition of the Common::DetectorConstruction class #ifndef DetectorConstruction_h #define DetectorConstruction_h 1 @@ -40,40 +40,45 @@ class G4GenericMessenger; /// Simple detector construction with a box volume placed in a world +namespace Common +{ + class DetectorConstruction : public G4VUserDetectorConstruction { public: DetectorConstruction( const G4String& boxMaterialName = "G4_AIR", - G4double boxHx = 40*CLHEP::cm, - G4double boxHy = 40*CLHEP::cm, + G4double boxHx = 40*CLHEP::cm, + G4double boxHy = 40*CLHEP::cm, G4double boxHz = 40*CLHEP::cm, const G4String& worldMaterialName = "G4_AIR", G4double worldSizeFactor = 1.25); - ~DetectorConstruction(); + ~DetectorConstruction() override; public: - // methods from base class - virtual G4VPhysicalVolume* Construct(); + // methods from base class + G4VPhysicalVolume* Construct() override; // set methods void SetBoxMaterial(const G4String& materialName); void SetWorldMaterial(const G4String& materialName); void SetBoxDimensions(G4ThreeVector dimensions); void SetWorldSizeFactor(G4double factor); - + private: void DefineCommands(); - G4GenericMessenger* fMessenger; + G4GenericMessenger* fMessenger = nullptr; G4String fBoxMaterialName; G4String fWorldMaterialName; G4ThreeVector fBoxDimensions; - G4double fWorldSizeFactor; - G4LogicalVolume* fBoxVolume; - G4LogicalVolume* fWorldVolume; + G4double fWorldSizeFactor = 0.; + G4LogicalVolume* fBoxVolume = nullptr; + G4LogicalVolume* fWorldVolume = nullptr; }; +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif diff --git a/examples/extended/g3tog4/clGeometry/common/include/DetectorConstruction0.hh b/examples/extended/g3tog4/clGeometry/common/include/DetectorConstruction0.hh index 9746272dde..049847dd82 100644 --- a/examples/extended/g3tog4/clGeometry/common/include/DetectorConstruction0.hh +++ b/examples/extended/g3tog4/clGeometry/common/include/DetectorConstruction0.hh @@ -23,9 +23,9 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -/// \file DetectorConstruction0.hh -/// \brief Definition of the DetectorConstruction0 class +// +/// \file common/include/DetectorConstruction0.hh +/// \brief Definition of the Common::DetectorConstruction0 class #ifndef DetectorConstruction0_h #define DetectorConstruction0_h 1 @@ -40,33 +40,38 @@ class G4GenericMessenger; /// Simple detector construction with only a world volume +namespace Common +{ + class DetectorConstruction0 : public G4VUserDetectorConstruction { public: DetectorConstruction0( const G4String& materialName = "G4_AIR", - G4double hx = 50*CLHEP::cm, - G4double hy = 50*CLHEP::cm, + G4double hx = 50*CLHEP::cm, + G4double hy = 50*CLHEP::cm, G4double hz = 50*CLHEP::cm); - ~DetectorConstruction0(); + ~DetectorConstruction0() override; public: - // methods from base class - virtual G4VPhysicalVolume* Construct(); + // methods from base class + G4VPhysicalVolume* Construct() override; // set methods void SetMaterial(const G4String& materialName); void SetDimensions(G4ThreeVector dimensions); - + private: void DefineCommands(); - G4GenericMessenger* fMessenger; + G4GenericMessenger* fMessenger = nullptr; G4String fMaterialName; G4ThreeVector fDimensions; - G4LogicalVolume* fWorldVolume; + G4LogicalVolume* fWorldVolume = nullptr; }; +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif diff --git a/examples/extended/g3tog4/clGeometry/common/include/GeantinoPhysicsList.hh b/examples/extended/g3tog4/clGeometry/common/include/GeantinoPhysicsList.hh index e0522aa41d..487f6ac651 100644 --- a/examples/extended/g3tog4/clGeometry/common/include/GeantinoPhysicsList.hh +++ b/examples/extended/g3tog4/clGeometry/common/include/GeantinoPhysicsList.hh @@ -23,9 +23,9 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -/// \file GeantinoPhysicsList.hh -/// \brief Definition of the GeantinoPhysicsList class +// +/// \file common/include/GeantinoPhysicsList.hh +/// \brief Definition of the Common::GeantinoPhysicsList class #ifndef GeantinoPhysicsList_h #define GeantinoPhysicsList_h 1 @@ -34,17 +34,22 @@ /// Physics list with geantino and charged geantino only +namespace Common +{ + class GeantinoPhysicsList: public G4VUserPhysicsList { public: GeantinoPhysicsList(); - ~GeantinoPhysicsList(); + ~GeantinoPhysicsList() override; protected: // Construct particle and physics process - void ConstructParticle(); - void ConstructProcess(); + void ConstructParticle() override; + void ConstructProcess() override; }; +} + #endif diff --git a/examples/extended/g3tog4/clGeometry/common/include/GpsPrimaryGeneratorAction.hh b/examples/extended/g3tog4/clGeometry/common/include/GpsPrimaryGeneratorAction.hh index ca3a467932..e5aad89e54 100644 --- a/examples/extended/g3tog4/clGeometry/common/include/GpsPrimaryGeneratorAction.hh +++ b/examples/extended/g3tog4/clGeometry/common/include/GpsPrimaryGeneratorAction.hh @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file GpsPrimaryGeneratorAction.hh -/// \brief Definition of the GpsPrimaryGeneratorActionclass +/// \file common/include/GpsPrimaryGeneratorAction.hh +/// \brief Definition of the Common::GpsPrimaryGeneratorAction class // #ifndef GpsPrimaryGeneratorAction_h @@ -42,23 +42,24 @@ class G4Event; /// /// \author I. Hrivnacova; IPN Orsay +namespace Common +{ + class GpsPrimaryGeneratorAction: public G4VUserPrimaryGeneratorAction { public: - GpsPrimaryGeneratorAction(); - ~GpsPrimaryGeneratorAction(); + GpsPrimaryGeneratorAction(); + ~GpsPrimaryGeneratorAction() override; // methods - virtual void GeneratePrimaries(G4Event*); + void GeneratePrimaries(G4Event*) override; private: - // static data members - static const G4String fgkDefaultParticleName; - static const G4double fgkDefaultEnergy; - // data members - G4GeneralParticleSource* fGeneralParticleSource; + G4GeneralParticleSource* fGeneralParticleSource = nullptr; }; +} + #endif diff --git a/examples/extended/g3tog4/clGeometry/common/include/GunPrimaryGeneratorAction.hh b/examples/extended/g3tog4/clGeometry/common/include/GunPrimaryGeneratorAction.hh index 1679409c2e..add3049171 100644 --- a/examples/extended/g3tog4/clGeometry/common/include/GunPrimaryGeneratorAction.hh +++ b/examples/extended/g3tog4/clGeometry/common/include/GunPrimaryGeneratorAction.hh @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file GunPrimaryGeneratorAction.hh -/// \brief Definition of the GunPrimaryGeneratorAction class +/// \file common/include/GunPrimaryGeneratorAction.hh +/// \brief Definition of the Common::GunPrimaryGeneratorAction class #ifndef GunPrimaryGeneratorAction_h #define GunPrimaryGeneratorAction_h 1 @@ -44,6 +44,9 @@ class G4Event; /// /// \author I. Hrivnacova; IPN Orsay +namespace Common +{ + class GunPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: @@ -51,15 +54,17 @@ class GunPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction const G4String& particleName = "geantino", G4double energy = 1.*CLHEP::MeV, G4ThreeVector position= G4ThreeVector(0,0,0), - G4ThreeVector momentumDirection = G4ThreeVector(0,0,1)); - ~GunPrimaryGeneratorAction(); + G4ThreeVector momentumDirection = G4ThreeVector(0,0,1)); + ~GunPrimaryGeneratorAction() override; // methods - virtual void GeneratePrimaries(G4Event*); + void GeneratePrimaries(G4Event*) override; private: // data members - G4ParticleGun* fParticleGun; + G4ParticleGun* fParticleGun = nullptr; }; +} + #endif diff --git a/examples/extended/g3tog4/clGeometry/common/init.mac b/examples/extended/g3tog4/clGeometry/common/init.mac new file mode 100644 index 0000000000..978e19c4af --- /dev/null +++ b/examples/extended/g3tog4/clGeometry/common/init.mac @@ -0,0 +1,13 @@ +# Macro file for the initialization of example B1 +# in interactive session +# +# Set some default verbose +/control/verbose 2 +/control/saveHistory +/run/verbose 2 +# +# Change the default number of threads (in multi-threaded mode) +#/run/numberOfThreads 4 +# +# Initialize kernel +/run/initialize diff --git a/examples/extended/g3tog4/clGeometry/common/init_vis.mac b/examples/extended/g3tog4/clGeometry/common/init_vis.mac new file mode 100644 index 0000000000..8e460329fb --- /dev/null +++ b/examples/extended/g3tog4/clGeometry/common/init_vis.mac @@ -0,0 +1,16 @@ +# Macro file for the initialization of example B1 +# in interactive session +# +# Set some default verbose +/control/verbose 2 +/control/saveHistory +/run/verbose 2 +# +# Change the default number of threads (in multi-threaded mode) +#/run/numberOfThreads 4 +# +# Initialize kernel +/run/initialize +# +# Visualization setting +/control/execute vis.mac diff --git a/examples/extended/g3tog4/clGeometry/common/run.mac b/examples/extended/g3tog4/clGeometry/common/run.mac new file mode 100644 index 0000000000..2804407277 --- /dev/null +++ b/examples/extended/g3tog4/clGeometry/common/run.mac @@ -0,0 +1,12 @@ +# Macro file for example common +# +# To be run preferably in batch +# % ./exampleCommon[NoVis] run.mac +# +#/run/numberOfThreads 4 +/run/initialize +# +/control/verbose 2 +/run/verbose 2 +# +/run/beamOn 10 diff --git a/examples/extended/g3tog4/clGeometry/common/src/DetectorConstruction.cc b/examples/extended/g3tog4/clGeometry/common/src/DetectorConstruction.cc index 185d5f38d3..272f602697 100644 --- a/examples/extended/g3tog4/clGeometry/common/src/DetectorConstruction.cc +++ b/examples/extended/g3tog4/clGeometry/common/src/DetectorConstruction.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file DetectorConstruction.cc -/// \brief Implementation of the DetectorConstruction class +/// \file common/src/DetectorConstruction.cc +/// \brief Implementation of the Common::DetectorConstruction class #include "DetectorConstruction.hh" @@ -36,6 +36,9 @@ #include "G4PVPlacement.hh" #include "G4GenericMessenger.hh" +namespace Common +{ + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorConstruction::DetectorConstruction( @@ -43,14 +46,10 @@ DetectorConstruction::DetectorConstruction( G4double boxHx, G4double boxHy, G4double boxHz, const G4String& worldMaterialName, G4double worldSizeFactor) - : G4VUserDetectorConstruction(), - fMessenger(nullptr), - fBoxMaterialName(boxMaterialName), + : fBoxMaterialName(boxMaterialName), fWorldMaterialName(worldMaterialName), fBoxDimensions(boxHx*2, boxHy*2, boxHz*2), - fWorldSizeFactor(worldSizeFactor), - fBoxVolume(nullptr), - fWorldVolume(nullptr) + fWorldSizeFactor(worldSizeFactor) { DefineCommands(); } @@ -72,25 +71,25 @@ G4VPhysicalVolume* DetectorConstruction::Construct() auto worldMaterial = nistManager->FindOrBuildMaterial(fWorldMaterialName); auto boxMaterial = nistManager->FindOrBuildMaterial(fBoxMaterialName); - + // Geometry parameters // G4ThreeVector worldDimensions = fBoxDimensions * fWorldSizeFactor; - + // World // - auto sWorld + auto sWorld = new G4Box("World", //name worldDimensions.x(), //dimensions (half-lentghs) - worldDimensions.y(), + worldDimensions.y(), worldDimensions.z()); - fWorldVolume + fWorldVolume = new G4LogicalVolume(sWorld, //shape worldMaterial, //material "World"); //name - auto pWorld + auto pWorld = new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) fWorldVolume, //logical volume @@ -98,23 +97,23 @@ G4VPhysicalVolume* DetectorConstruction::Construct() 0, //mother volume false, //no boolean operation 0); //copy number - + // Box - // - auto sBox + // + auto sBox = new G4Box("Box", //its name fBoxDimensions.x(), //dimensions (half-lengths) - fBoxDimensions.y(), + fBoxDimensions.y(), fBoxDimensions.z()); - - fBoxVolume + + fBoxVolume = new G4LogicalVolume(sBox, //its shape boxMaterial, //its material "Box"); //its name new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) - fBoxVolume, //its logical volume + fBoxVolume, //its logical volume "Box", //its name fWorldVolume, //its mother volume false, //no boolean operation @@ -126,7 +125,7 @@ G4VPhysicalVolume* DetectorConstruction::Construct() } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + void DetectorConstruction::SetBoxMaterial(const G4String& materialName) { auto nistManager = G4NistManager::Instance(); @@ -136,14 +135,14 @@ void DetectorConstruction::SetBoxMaterial(const G4String& materialName) G4cerr << "Material " << materialName << " not found." << G4endl; G4cerr << "The box material was not changed." << G4endl; return; - } - + } + if ( fBoxVolume ) fBoxVolume->SetMaterial(newMaterial); G4cout << "Material of box changed to " << materialName << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + void DetectorConstruction::SetWorldMaterial(const G4String& materialName) { auto nistManager = G4NistManager::Instance(); @@ -153,45 +152,45 @@ void DetectorConstruction::SetWorldMaterial(const G4String& materialName) G4cerr << "Material " << materialName << " not found." << G4endl; G4cerr << "The box material was not changed." << G4endl; return; - } - + } + if ( fWorldVolume ) fWorldVolume->SetMaterial(newMaterial); G4cout << "Material of box changed to " << materialName << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorConstruction::SetBoxDimensions(G4ThreeVector dimensions) + +void DetectorConstruction::SetBoxDimensions(G4ThreeVector dimensions) { /// Set box dimension (in half lengths). /// This setting has effect only if called in PreInit> phase fBoxDimensions = dimensions; -} - +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetWorldSizeFactor(G4double factor) +void DetectorConstruction::SetWorldSizeFactor(G4double factor) { /// Set the multiplication factor from box dimensions to world dimensions. /// This setting has effect only if called in PreInit> phase fWorldSizeFactor = factor; -} - +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void DetectorConstruction::DefineCommands() { // Define /B5/detector command directory using generic messenger class - fMessenger = new G4GenericMessenger(this, - "/detector/", + fMessenger = new G4GenericMessenger(this, + "/detector/", "Detector control"); // setBoxMaterial command auto& setBoxMaterialCmd = fMessenger->DeclareMethod("setBoxMaterial", - &DetectorConstruction::SetBoxMaterial, + &DetectorConstruction::SetBoxMaterial, "Set box material name."); setBoxMaterialCmd.SetParameterName("boxMaterialName", false); setBoxMaterialCmd.SetDefaultValue("G4_AIR"); @@ -199,7 +198,7 @@ void DetectorConstruction::DefineCommands() // setWorldMaterial command auto& setWorldMaterialCmd = fMessenger->DeclareMethod("setWorldMaterial", - &DetectorConstruction::SetWorldMaterial, + &DetectorConstruction::SetWorldMaterial, "Set world material name."); setWorldMaterialCmd.SetParameterName("worldMaterialName", false); setWorldMaterialCmd.SetDefaultValue("G4_AIR"); @@ -207,19 +206,21 @@ void DetectorConstruction::DefineCommands() // setBoxDimensions command auto& setBoxDimensionsCmd = fMessenger->DeclareMethodWithUnit("setBoxDimensions", "mm", - &DetectorConstruction::SetBoxDimensions, + &DetectorConstruction::SetBoxDimensions, "Set box dimensions (in half lentgh)."); setBoxDimensionsCmd.SetParameterName("boxDimensions", false); setBoxDimensionsCmd.SetStates(G4State_PreInit); // setWorldSizeFactor command - auto& setWorldSizeFactorCmd + auto& setWorldSizeFactorCmd = fMessenger->DeclareMethod("setWorldSizeFactor", - &DetectorConstruction::SetWorldSizeFactor, + &DetectorConstruction::SetWorldSizeFactor, "Set the multiplication factor from box dimensions to world dimensions."); setWorldSizeFactorCmd.SetParameterName("worldSizeFactor", false); setWorldSizeFactorCmd.SetRange("WorldSizeFactor >= 1"); setWorldSizeFactorCmd.SetStates(G4State_PreInit); } - + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} diff --git a/examples/extended/g3tog4/clGeometry/common/src/DetectorConstruction0.cc b/examples/extended/g3tog4/clGeometry/common/src/DetectorConstruction0.cc index b84e8319e6..86b58026d0 100644 --- a/examples/extended/g3tog4/clGeometry/common/src/DetectorConstruction0.cc +++ b/examples/extended/g3tog4/clGeometry/common/src/DetectorConstruction0.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file DetectorConstruction0.cc -/// \brief Implementation of the DetectorConstruction0 class +/// \file common/src/DetectorConstruction0.cc +/// \brief Implementation of the Common::DetectorConstruction0 class #include "DetectorConstruction0.hh" @@ -36,16 +36,16 @@ #include "G4PVPlacement.hh" #include "G4GenericMessenger.hh" +namespace Common +{ + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorConstruction0::DetectorConstruction0( const G4String& materialName, G4double hx, G4double hy, G4double hz) - : G4VUserDetectorConstruction(), - fMessenger(nullptr), - fMaterialName(materialName), - fDimensions(hx, hy, hz), - fWorldVolume(nullptr) + : fMaterialName(materialName), + fDimensions(hx, hy, hz) { DefineCommands(); } @@ -66,21 +66,21 @@ G4VPhysicalVolume* DetectorConstruction0::Construct() auto nistManager = G4NistManager::Instance(); auto material = nistManager->FindOrBuildMaterial(fMaterialName); - + // World // - auto sWorld + auto sWorld = new G4Box("World", //name fDimensions.x(), //dimensions (half-lentghs) - fDimensions.y(), + fDimensions.y(), fDimensions.z()); - fWorldVolume + fWorldVolume = new G4LogicalVolume(sWorld, //shape material, //material "World"); //name - auto pWorld + auto pWorld = new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) fWorldVolume, //logical volume @@ -95,7 +95,7 @@ G4VPhysicalVolume* DetectorConstruction0::Construct() } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + void DetectorConstruction0::SetMaterial(const G4String& materialName) { auto nistManager = G4NistManager::Instance(); @@ -105,35 +105,35 @@ void DetectorConstruction0::SetMaterial(const G4String& materialName) G4cerr << "Material " << materialName << " not found." << G4endl; G4cerr << "The box material was not changed." << G4endl; return; - } - + } + if ( fWorldVolume ) fWorldVolume->SetMaterial(newMaterial); G4cout << "Material of box changed to " << materialName << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + void DetectorConstruction0::SetDimensions(G4ThreeVector dimensions) { /// Set world dimension (in half lengths). /// This setting has effect only if called in PreInit> phase fDimensions = dimensions; -} - +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void DetectorConstruction0::DefineCommands() { // Define /B5/detector command directory using generic messenger class - fMessenger = new G4GenericMessenger(this, - "/detector/", + fMessenger = new G4GenericMessenger(this, + "/detector/", "Detector control"); // setMaterial command auto& setMaterialCmd = fMessenger->DeclareMethod("setMaterial", - &DetectorConstruction0::SetMaterial, + &DetectorConstruction0::SetMaterial, "Set world material name."); setMaterialCmd.SetParameterName("materialName", false); setMaterialCmd.SetDefaultValue("G4_AIR"); @@ -142,10 +142,12 @@ void DetectorConstruction0::DefineCommands() // setDimensions command auto& setDimensionsCmd = fMessenger->DeclareMethodWithUnit("setDimensions", "mm", - &DetectorConstruction0::SetDimensions, + &DetectorConstruction0::SetDimensions, "Set world dimensions (in half lentgh)."); setDimensionsCmd.SetParameterName("dimensions", false); setDimensionsCmd.SetStates(G4State_PreInit); } - + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} diff --git a/examples/extended/g3tog4/clGeometry/common/src/GeantinoPhysicsList.cc b/examples/extended/g3tog4/clGeometry/common/src/GeantinoPhysicsList.cc index fde873904d..bd47a847c0 100644 --- a/examples/extended/g3tog4/clGeometry/common/src/GeantinoPhysicsList.cc +++ b/examples/extended/g3tog4/clGeometry/common/src/GeantinoPhysicsList.cc @@ -24,23 +24,23 @@ // ******************************************************************** // // -/// \file GeantinoPhysicsList.cc -/// \brief Implementation of the GeantinoPhysicsList class +/// \file common/src/GeantinoPhysicsList.cc +/// \brief Implementation of the Common::GeantinoPhysicsList class #include "GeantinoPhysicsList.hh" #include "G4Geantino.hh" #include "G4ChargedGeantino.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -GeantinoPhysicsList::GeantinoPhysicsList() - : G4VUserPhysicsList() -{} +namespace Common +{ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -GeantinoPhysicsList::~GeantinoPhysicsList() -{} +GeantinoPhysicsList::GeantinoPhysicsList() = default; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +GeantinoPhysicsList::~GeantinoPhysicsList() = default; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -49,7 +49,7 @@ void GeantinoPhysicsList::ConstructParticle() // In this method, static member functions should be called // for all particles which you want to use. // This ensures that objects of these particle types will be - // created in the program. + // created in the program. G4Geantino::GeantinoDefinition(); G4ChargedGeantino::ChargedGeantinoDefinition(); @@ -65,3 +65,5 @@ void GeantinoPhysicsList::ConstructProcess() } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} diff --git a/examples/extended/g3tog4/clGeometry/common/src/GpsPrimaryGeneratorAction.cc b/examples/extended/g3tog4/clGeometry/common/src/GpsPrimaryGeneratorAction.cc index 2ac18e0294..b07a277e47 100644 --- a/examples/extended/g3tog4/clGeometry/common/src/GpsPrimaryGeneratorAction.cc +++ b/examples/extended/g3tog4/clGeometry/common/src/GpsPrimaryGeneratorAction.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file GpsPrimaryGeneratorAction.cc -/// \brief Implementation of the GpsPrimaryGeneratorActionclass +/// \file common/src/GpsPrimaryGeneratorAction.cc +/// \brief Implementation of the Common::GpsPrimaryGeneratorActionclass #include "GpsPrimaryGeneratorAction.hh" @@ -33,14 +33,12 @@ #include "G4GeneralParticleSource.hh" #include "G4SystemOfUnits.hh" -const G4String GpsPrimaryGeneratorAction::fgkDefaultParticleName = "e-"; -const G4double GpsPrimaryGeneratorAction::fgkDefaultEnergy = 1.*MeV; +namespace Common +{ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... GpsPrimaryGeneratorAction::GpsPrimaryGeneratorAction() - : G4VUserPrimaryGeneratorAction(), - fGeneralParticleSource(nullptr) { fGeneralParticleSource = new G4GeneralParticleSource(); } @@ -61,3 +59,7 @@ void GpsPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) fGeneralParticleSource->GeneratePrimaryVertex(anEvent); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} + diff --git a/examples/extended/g3tog4/clGeometry/common/src/GunPrimaryGeneratorAction.cc b/examples/extended/g3tog4/clGeometry/common/src/GunPrimaryGeneratorAction.cc index 6a10df48c7..6d48726ca9 100644 --- a/examples/extended/g3tog4/clGeometry/common/src/GunPrimaryGeneratorAction.cc +++ b/examples/extended/g3tog4/clGeometry/common/src/GunPrimaryGeneratorAction.cc @@ -24,8 +24,8 @@ // ******************************************************************** // // -/// \file GunPrimaryGeneratorAction.cc -/// \brief Implementation of the GunPrimaryGeneratorAction class +/// \file common/src/GunPrimaryGeneratorAction.cc +/// \brief Implementation of the Common::GunPrimaryGeneratorAction class #include "GunPrimaryGeneratorAction.hh" @@ -34,15 +34,16 @@ #include "G4ParticleTable.hh" #include "G4ParticleDefinition.hh" +namespace Common +{ + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -GunPrimaryGeneratorAction::GunPrimaryGeneratorAction( - const G4String& particleName, +GunPrimaryGeneratorAction::GunPrimaryGeneratorAction( + const G4String& particleName, G4double energy, - G4ThreeVector position, + G4ThreeVector position, G4ThreeVector momentumDirection) - : G4VUserPrimaryGeneratorAction(), - fParticleGun(nullptr) { G4int nofParticles = 1; fParticleGun = new G4ParticleGun(nofParticles); @@ -73,3 +74,7 @@ void GunPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) fParticleGun->GeneratePrimaryVertex(anEvent); } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +} + diff --git a/examples/extended/g3tog4/clGeometry/common/testCommon.cc b/examples/extended/g3tog4/clGeometry/common/testCommon.cc index a62ef77fab..591caaeeaa 100644 --- a/examples/extended/g3tog4/clGeometry/common/testCommon.cc +++ b/examples/extended/g3tog4/clGeometry/common/testCommon.cc @@ -37,6 +37,8 @@ #include "G4RunManager.hh" #include "FTFP_BERT.hh" +using namespace Common; + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // Test program which only instantiates classes defined in diff --git a/examples/extended/g3tog4/clGeometry/common/vis.mac b/examples/extended/g3tog4/clGeometry/common/vis.mac new file mode 100644 index 0000000000..6992af6e6c --- /dev/null +++ b/examples/extended/g3tog4/clGeometry/common/vis.mac @@ -0,0 +1,121 @@ +# Macro file for the visualization setting in the initialization phase +# of the B1 example when running in interactive mode +# + +# Use these open statements to open selected visualization +# +# Use this open statement to create an OpenGL view: +/vis/open OGL 600x600-0+0 +# +# Use this open statement to create an OpenInventor view: +#/vis/open OI +# +# Use this open statement to create a .prim file suitable for +# viewing in DAWN: +#/vis/open DAWNFILE +# +# Use this open statement to create a .heprep file suitable for +# viewing in HepRApp: +#/vis/open HepRepFile +# +# Use this open statement to create a .wrl file suitable for +# viewing in a VRML viewer: +#/vis/open VRML2FILE +# +# Use this open statement to create an offscreen file with TSG: +#/vis/open TSG_OFFSCREEN 1200x1200 +# See the tsg_offscreen.mac file for more commands to change +# the file format, file name, picture size, etc. +# +# Disable auto refresh and quieten vis messages whilst scene and +# trajectories are established: +/vis/viewer/set/autoRefresh false +/vis/verbose errors +# +# Draw geometry: +/vis/drawVolume +# +# Specify view angle: +/vis/viewer/set/viewpointVector -1 0 0 +/vis/viewer/set/lightsVector -1 0 0 +# +# Specify style (surface, wireframe, auxiliary edges,...) +/vis/viewer/set/style wireframe +/vis/viewer/set/auxiliaryEdge true +/vis/viewer/set/lineSegmentsPerCircle 100 +# +# Draw smooth trajectories at end of event, showing trajectory points +# as markers 2 pixels wide: +/vis/scene/add/trajectories smooth +/vis/modeling/trajectories/create/drawByCharge +/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true +/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2 +# (if too many tracks cause core dump => /tracking/storeTrajectory 0) +# +# Draw hits at end of event: +#/vis/scene/add/hits +# +# To draw only gammas: +#/vis/filtering/trajectories/create/particleFilter +#/vis/filtering/trajectories/particleFilter-0/add gamma +# +# To invert the above, drawing all particles except gammas, +# keep the above two lines but also add: +#/vis/filtering/trajectories/particleFilter-0/invert true +# +# Many other options are available with /vis/modeling and /vis/filtering. +# For example, to select colour by particle ID: +#/vis/modeling/trajectories/create/drawByParticleID +#/vis/modeling/trajectories/drawByParticleID-0/default/setDrawStepPts true +# To select or override default colours (note: e+ is blue by default): +#/vis/modeling/trajectories/list +#/vis/modeling/trajectories/drawByParticleID-0/set e+ yellow +# +# To superimpose all of the events from a given run: +/vis/scene/endOfEventAction accumulate +# +# Decorations +# Name +/vis/set/textColour green +/vis/set/textLayout right +/vis/scene/add/text2D 0.9 -.9 24 ! ! exampleB1 +# or, if your system does not support right-adjustment +#/vis/scene/add/text2D 0 -.9 24 ! ! exampleB1 +/vis/set/textLayout # Revert to normal (left adjusted) layout +/vis/set/textColour # Revert to default text colour (blue) +# +# Axes, scale, etc. +/vis/scene/add/scale # Simple scale line +/vis/scene/add/axes # Simple axes: x=red, y=green, z=blue. +/vis/scene/add/eventID # Drawn at end of event +/vis/scene/add/date # Date stamp +/vis/scene/add/logo2D # Simple logo +/vis/scene/add/logo # 3D logo +# +# Frame +/vis/set/colour red +/vis/set/lineWidth 2 +/vis/scene/add/frame # Simple frame around the view +/vis/set/colour # Revert to default colour (white) +/vis/set/lineWidth # Revert to default line width (1.) +# +# Attach text to one edge of Shape1, with a small, fixed offset +/vis/scene/add/text 0 6 -4 cm 18 4 4 Shape1 +# Attach text to one corner of Shape2, with a small, fixed offset +/vis/scene/add/text 6 7 10 cm 18 4 4 Shape2 +# +# To get nice view +# Make the "World" box invisible +/vis/geometry/set/visibility World 0 false +# "Envelope" is transparent blue to represent water +#/vis/geometry/set/colour Envelope 0 0 0 1 .3 +/vis/viewer/set/style surface +/vis/viewer/set/hiddenMarker true +/vis/viewer/set/viewpointThetaPhi 120 150 +# +# Re-establish auto refreshing and verbosity: +/vis/viewer/set/autoRefresh true +/vis/verbose warnings +# +# For file-based drivers, use this to create an empty detector view: +#/vis/viewer/flush diff --git a/examples/extended/g3tog4/clGeometry/init.mac b/examples/extended/g3tog4/clGeometry/init.mac new file mode 100644 index 0000000000..978e19c4af --- /dev/null +++ b/examples/extended/g3tog4/clGeometry/init.mac @@ -0,0 +1,13 @@ +# Macro file for the initialization of example B1 +# in interactive session +# +# Set some default verbose +/control/verbose 2 +/control/saveHistory +/run/verbose 2 +# +# Change the default number of threads (in multi-threaded mode) +#/run/numberOfThreads 4 +# +# Initialize kernel +/run/initialize diff --git a/examples/extended/g3tog4/clGeometry/run.mac b/examples/extended/g3tog4/clGeometry/run.mac new file mode 100644 index 0000000000..2804407277 --- /dev/null +++ b/examples/extended/g3tog4/clGeometry/run.mac @@ -0,0 +1,12 @@ +# Macro file for example common +# +# To be run preferably in batch +# % ./exampleCommon[NoVis] run.mac +# +#/run/numberOfThreads 4 +/run/initialize +# +/control/verbose 2 +/run/verbose 2 +# +/run/beamOn 10 diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4ActionInitialization.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4ActionInitialization.cc index 9ca63e328e..6266b54adf 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4ActionInitialization.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4ActionInitialization.cc @@ -30,10 +30,10 @@ #include "G3toG4ActionInitialization.hh" // common package includes -// #include "ExG4EventAction01.hh" -// #include "ExG4RunAction01.hh" #include "GunPrimaryGeneratorAction.hh" +using namespace Common; + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G3toG4ActionInitialization::G3toG4ActionInitialization() diff --git a/examples/extended/geometry/transforms/batch.out b/examples/extended/geometry/transforms/batch.out index dd4054ed04..e84d68fe28 100644 --- a/examples/extended/geometry/transforms/batch.out +++ b/examples/extended/geometry/transforms/batch.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 diff --git a/examples/extended/geometry/vecGeomNavigation/History b/examples/extended/geometry/vecGeomNavigation/History index f9f5dbae22..780c19196e 100644 --- a/examples/extended/geometry/vecGeomNavigation/History +++ b/examples/extended/geometry/vecGeomNavigation/History @@ -6,6 +6,9 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-04 I. Hrivnacova (VecGeomNavigation-V11-00-03) +- Fixed Doxygen file descriptions + ## 2022-04-07 Ben Morgan (VecGeomNavigation-V11-00-02) - Build g4vecgeomnav as a static library if only Geant4 static libs are available diff --git a/examples/extended/geometry/vecGeomNavigation/include/VG01DetectorConstruction.hh b/examples/extended/geometry/vecGeomNavigation/include/VG01DetectorConstruction.hh index 702034db6b..8db33ffafa 100644 --- a/examples/extended/geometry/vecGeomNavigation/include/VG01DetectorConstruction.hh +++ b/examples/extended/geometry/vecGeomNavigation/include/VG01DetectorConstruction.hh @@ -23,6 +23,10 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +// +/// \file VG01DetectorConstruction.hh +/// \brief Definition of the VG01DetectorConstruction class + #ifndef VG01DetectorConstruction_h #define VG01DetectorConstruction_h 1 diff --git a/examples/extended/geometry/vecGeomNavigation/include/VG01DetectorMessenger.hh b/examples/extended/geometry/vecGeomNavigation/include/VG01DetectorMessenger.hh index bd3942beb5..143fc49a89 100644 --- a/examples/extended/geometry/vecGeomNavigation/include/VG01DetectorMessenger.hh +++ b/examples/extended/geometry/vecGeomNavigation/include/VG01DetectorMessenger.hh @@ -23,10 +23,9 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file geometry/VecGeomNavigation/src/VG01DetectorMessenger.hh -/// \brief Implementation of the VG01PrimaryGeneratorAction class -// // +/// \file VG01DetectorMessenger.hh +/// \brief Implementation of the VG01DetectorMessenger class #ifndef VG01DetectorMessenger_hh #define VG01DetectorMessenger_hh 1 diff --git a/examples/extended/geometry/vecGeomNavigation/include/VG01PrimaryGeneratorAction.hh b/examples/extended/geometry/vecGeomNavigation/include/VG01PrimaryGeneratorAction.hh index 9e6796f431..5ad9dc12fa 100644 --- a/examples/extended/geometry/vecGeomNavigation/include/VG01PrimaryGeneratorAction.hh +++ b/examples/extended/geometry/vecGeomNavigation/include/VG01PrimaryGeneratorAction.hh @@ -23,8 +23,11 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file persistency/gdml/G01/include/VG01PrimaryGeneratorAction.hh -/// \brief Generator with multiple modes: uniform, free, axis, fixed) +// +/// \file VG01PrimaryGeneratorAction.hh +/// \brief Definition of the VG01PrimaryGeneratorAction class + +// Generator with multiple modes: uniform, free, axis, fixed) // // Primary generator that can be configured using modes to either: // - 'uniform' direction secondaries (default) diff --git a/examples/extended/geometry/vecGeomNavigation/include/VG01SteppingVerboseWithDir.hh b/examples/extended/geometry/vecGeomNavigation/include/VG01SteppingVerboseWithDir.hh index 47e133690f..5d13539b8c 100644 --- a/examples/extended/geometry/vecGeomNavigation/include/VG01SteppingVerboseWithDir.hh +++ b/examples/extended/geometry/vecGeomNavigation/include/VG01SteppingVerboseWithDir.hh @@ -23,6 +23,10 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +// +/// \file VG01SteppingVerboseWithDir.hh +/// \brief Definition of the VG01SteppingVerboseWithDir class +// // Alternative Stepping Verbose method that prints out: // - momentum direction // - safety ( distance to nearest boundary at pre-step point ) diff --git a/examples/extended/geometry/vecGeomNavigation/src/VG01DetectorConstruction.cc b/examples/extended/geometry/vecGeomNavigation/src/VG01DetectorConstruction.cc index e6d5c1b5ac..9b2def08f8 100644 --- a/examples/extended/geometry/vecGeomNavigation/src/VG01DetectorConstruction.cc +++ b/examples/extended/geometry/vecGeomNavigation/src/VG01DetectorConstruction.cc @@ -23,6 +23,10 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +// +/// \file VG01DetectorConstruction.cc +/// \brief Implementation of the VG01DetectorConstruction class + // Authors: J. Apostolakis & S. Wenzel (CERN) 2018-2021 // // Derived from FullCMS code by Mihaly Novak (2017-18) diff --git a/examples/extended/geometry/vecGeomNavigation/src/VG01DetectorMessenger.cc b/examples/extended/geometry/vecGeomNavigation/src/VG01DetectorMessenger.cc index c02a768939..7845339793 100644 --- a/examples/extended/geometry/vecGeomNavigation/src/VG01DetectorMessenger.cc +++ b/examples/extended/geometry/vecGeomNavigation/src/VG01DetectorMessenger.cc @@ -23,6 +23,10 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +// +/// \file VG01DetectorMessenger.cc +/// \brief Implementation of the VG01DetectorMessenger class + // Authors: J. Apostolakis & S. Wenzel (CERN) 2018-2021 // // Started from FullCMS code by Mihaly Novak (CERN) 2017 diff --git a/examples/extended/geometry/vecGeomNavigation/src/VG01PrimaryGeneratorAction.cc b/examples/extended/geometry/vecGeomNavigation/src/VG01PrimaryGeneratorAction.cc index d6ed0a4929..c33d84f3e4 100644 --- a/examples/extended/geometry/vecGeomNavigation/src/VG01PrimaryGeneratorAction.cc +++ b/examples/extended/geometry/vecGeomNavigation/src/VG01PrimaryGeneratorAction.cc @@ -23,7 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file geometry/VecGeomNavigation/src/VG01PrimaryGeneratorAction.cc +// +/// \file VG01PrimaryGeneratorAction.cc /// \brief Implementation of the VG01PrimaryGeneratorAction class // // Authors: J. Apostolakis & S. Wenzel (CERN) 2018-2021 diff --git a/examples/extended/geometry/vecGeomNavigation/src/VG01SteppingVerboseWithDir.cc b/examples/extended/geometry/vecGeomNavigation/src/VG01SteppingVerboseWithDir.cc index 72d1e32a08..5f1bfcacfc 100644 --- a/examples/extended/geometry/vecGeomNavigation/src/VG01SteppingVerboseWithDir.cc +++ b/examples/extended/geometry/vecGeomNavigation/src/VG01SteppingVerboseWithDir.cc @@ -23,6 +23,10 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +//s +/// \file VG01SteppingVerboseWithDir.cc +/// \brief Implementation of the VG01SteppingVerboseWithDir class + // Author : J. Apostolakis, (EP/SFT CERN) 2019-21 // // Refines the existing G4SteppingVerbose, adding: diff --git a/examples/extended/geometry/vecGeomNavigation/vecGeomNav.out b/examples/extended/geometry/vecGeomNavigation/vecGeomNav.out index 1e4489eb02..f5c0b84129 100644 --- a/examples/extended/geometry/vecGeomNavigation/vecGeomNav.out +++ b/examples/extended/geometry/vecGeomNavigation/vecGeomNav.out @@ -18,7 +18,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -46,90 +46,79 @@ Stripping off GDML names of materials, solids and volumes ... Enabled Check mode in G4Navigator *** SETTING MAGNETIC FIELD in Z direction : fieldValue = 2 tesla *** -*** Conversion of G4 -> VecGeom finished (0.00343814 s) *** -*** Closing VecGeom geometry finished (0.000745792 s) *** -*** Setup of syncing lookup structure finished (2.7572e-05 s) *** +*** Conversion of G4 -> VecGeom finished (0.0110709 s) *** +*** Closing VecGeom geometry finished (0.00233708 s) *** +*** Setup of syncing lookup structure finished (3.5409e-05 s) *** TG4VecGeomNavigator created and registered to G4TransportationManager Setting up safety voxels for Svt_log with 340 daughters Uncontained capacity for Svt_log: 8.83002e+07 units +VolUtil: FillUncontPts: Volume Construct() start. World is registered to the default region. physicsList->Construct() start. -### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 ### HadronInelasticQBBC Construct Process: Emin(FTFP)= 3 GeV Emax(FTFP)= 100000 GeV Emin(BERT)= 1 GeV Emax(BERT)= 6 GeV Emax(BERTpions)= 12 GeV @@ -136,6 +135,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -163,7 +163,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -214,8 +214,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -565,28 +565,6 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 ==================================================================== HADRONIC PROCESSES SUMMARY (verbose level 1) ---------------------------------------------------- - Hadronic Processes for neutron - - Process: hadElastic - Model: hElasticCHIPS: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV - - - Process: neutronInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 1 GeV ---> 6 GeV - Model: Binary Cascade: 0 eV ---> 1.5 GeV - Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV - - - Process: nCapture - Model: nRadCapture: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV - - - Process: nKiller - --------------------------------------------------- Hadronic Processes for B- @@ -703,6 +681,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -868,6 +851,28 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: muMinusCaptureAtRest +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 1 GeV ---> 6 GeV + Model: Binary Cascade: 0 eV ---> 1.5 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + --------------------------------------------------- Hadronic Processes for pi+ @@ -1018,7 +1023,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics 100.00 10k 1 197 200 0.00 Check ### Run 0 starts. ### Run 0 start -Initialisation time: User=1.780000s Real=15.329440s Sys=0.150000s +Initialisation time: User=1.920000s Real=11.422591s Sys=0.280000s EventAction: Event # 0 started EventAction: Event # 10 started EventAction: Event # 20 started @@ -1032,34 +1037,34 @@ EventAction: Event # 90 started Run terminated. Run Summary Number of events processed : 100 - User=0.920000s Real=0.939916s Sys=0.000000s -RunAction::EndOfRunAction: User=0.920000s Real=0.939989s Sys=0.000000s + User=1.100000s Real=1.108479s Sys=0.000000s +RunAction::EndOfRunAction: User=1.100000s Real=1.108585s Sys=0.000000s RunAction: End of run actions are started HistoManager: End of run actions are started ======================================================== Beam particle proton Beam Energy(MeV) 3000 Number of events 100 -Average energy deposit (MeV) 587.7 RMS(MeV) 385.2 -Average number of steps 906.5 -Average number of gamma 57.91 -Average number of e- 74.03 -Average number of e+ 4.31 -Average number of neutrons 20.6 -Average number of protons 4.8 +Average energy deposit (MeV) 566.3 RMS(MeV) 363.5 +Average number of steps 1089 +Average number of gamma 75.65 +Average number of e- 95.3 +Average number of e+ 5.74 +Average number of neutrons 22.67 +Average number of protons 4.43 Average number of antiprotons 0 -Average number of pi+ & pi- 0.67 -Average number of pi0 0.31 -Average number of kaons 0.01 -Average number of muons 0.04 -Average number of deuterons+tritons 2.54 -Average number of He3+alpha 1.77 -Average number of ions 4.99 -Average number of forward neutrons 1.34 -Average number of reflected neutrons 15.29 -Average number of leaked neutrons 0.67 -Average number of proton leak 1.15 -Average number of pion leak 0.45 +Average number of pi+ & pi- 0.61 +Average number of pi0 0.41 +Average number of kaons 0 +Average number of muons 0.08 +Average number of deuterons+tritons 1.98 +Average number of He3+alpha 1.07 +Average number of ions 6.02 +Average number of forward neutrons 0.75 +Average number of reflected neutrons 16.78 +Average number of leaked neutrons 0.86 +Average number of proton leak 0.97 +Average number of pion leak 0.38 ======================================================== # @@ -1076,10 +1081,10 @@ G4SDManager deleted. EventManager deleted. Units table cleared. TransportationManager deleted. -Total navigation history collections cleaned: 26 +Total navigation history collections cleaned: 24 G4RNGHelper object is deleted. ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.0385 MB +Pool ID '20G4NavigationLevelRep', size : 0.0356 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB Pool ID '17G4DynamicParticle', size : 0.0125 MB Pool ID '16G4SmartVoxelNode', size : 0.00673 MB @@ -1088,7 +1093,7 @@ Pool ID '7G4Event', size : 0.000961 MB Pool ID '15G4PrimaryVertex', size : 0.000961 MB Pool ID '17G4PrimaryParticle', size : 0.000961 MB Pool ID '15G4HCofThisEvent', size : 0.000961 MB -Pool ID '7G4Track', size : 0.024 MB +Pool ID '7G4Track', size : 0.025 MB Pool ID '18G4TouchableHistory', size : 0.00288 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB Pool ID '10G4Fragment', size : 0.00769 MB diff --git a/examples/extended/hadronic/Hadr01/hyper.in b/examples/extended/hadronic/Hadr01/hyper.in new file mode 100644 index 0000000000..239964cfd5 --- /dev/null +++ b/examples/extended/hadronic/Hadr01/hyper.in @@ -0,0 +1,27 @@ +#================================================ +# Macro file for hadr01 +# 06.06.2006 V.Ivanchneko +#================================================ +/control/verbose 2 +/run/verbose 2 +/tracking/verbose 0 +# +/testhadr/TargetMat G4_PbWO4 +/testhadr/TargetRadius 1 cm +/testhadr/TargetLength 10 cm +/testhadr/NumberDivZ 100 +/testhadr/PrintModulo 10 +# +/run/setCut 1 mm +# +/testhadr/BCParticles true +/testhadr/HyperNuclei true +# +/run/initialize +# +/gun/particle hyperalpha +/gun/energy 100. GeV +/run/beamOn 100 +/gun/particle anti_hyperalpha +/run/beamOn 100 +# diff --git a/examples/extended/hadronic/Hadr01/include/DetectorMessenger.hh b/examples/extended/hadronic/Hadr01/include/DetectorMessenger.hh index 04cfca4597..2a9f48fbef 100644 --- a/examples/extended/hadronic/Hadr01/include/DetectorMessenger.hh +++ b/examples/extended/hadronic/Hadr01/include/DetectorMessenger.hh @@ -79,6 +79,8 @@ private: G4UIcmdWithAnInteger* fNOfAbsCmd; G4UIcmdWithAnInteger* fVerbCmd; G4UIcmdWithABool* fBeamCmd; + G4UIcmdWithABool* fBCCmd; + G4UIcmdWithABool* fHNCmd; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr01/include/PhysicsListMessenger.hh b/examples/extended/hadronic/Hadr01/include/PhysicsListMessenger.hh index 54f7ae8d1b..70d770b951 100644 --- a/examples/extended/hadronic/Hadr01/include/PhysicsListMessenger.hh +++ b/examples/extended/hadronic/Hadr01/include/PhysicsListMessenger.hh @@ -61,14 +61,14 @@ public: PhysicsListMessenger(PhysicsList* p = 0); virtual ~PhysicsListMessenger(); - virtual void SetNewValue(G4UIcommand*, G4String); - + void SetNewValue(G4UIcommand*, G4String) override; + private: PhysicsList* fPhysicsList; - G4UIcmdWithAString* fPListCmd; - G4UIcmdWithoutParameter* fListCmd; + G4UIcmdWithAString* fPListCmd; + G4UIcmdWithoutParameter* fListCmd; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr01/src/DetectorMessenger.cc b/examples/extended/hadronic/Hadr01/src/DetectorMessenger.cc index 91250d04da..dc78230608 100644 --- a/examples/extended/hadronic/Hadr01/src/DetectorMessenger.cc +++ b/examples/extended/hadronic/Hadr01/src/DetectorMessenger.cc @@ -50,6 +50,7 @@ #include "G4UIcmdWith3Vector.hh" #include "G4UIcmdWithADoubleAndUnit.hh" #include "G4UIcmdWithoutParameter.hh" +#include "G4HadronicParameters.hh" #include "HistoManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -119,6 +120,16 @@ DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) fVerbCmd->SetGuidance("Set verbose for "); fVerbCmd->SetParameterName("verb",false); fVerbCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + fBCCmd = new G4UIcmdWithABool("/testhadr/BCParticles",this); + fBCCmd->SetGuidance("Enable b-, c- hadronic physics"); + fBCCmd->SetParameterName("BCparticles",false); + fBCCmd->AvailableForStates(G4State_PreInit); + + fHNCmd = new G4UIcmdWithABool("/testhadr/HyperNuclei",this); + fHNCmd->SetGuidance("Enable hyper-nuclei hadronic physics"); + fHNCmd->SetParameterName("HyperNuclei",false); + fHNCmd->AvailableForStates(G4State_PreInit); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -135,6 +146,8 @@ DetectorMessenger::~DetectorMessenger() delete fBeamCmd; delete fVerbCmd; delete fEdepCmd; + delete fBCCmd; + delete fHNCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -160,6 +173,10 @@ void DetectorMessenger::SetNewValue(G4UIcommand* command, G4String newValue) h->SetDefaultBeamPositionFlag(fBeamCmd->GetNewBoolValue(newValue)); } else if (command == fEdepCmd) { h->SetMaxEnergyDeposit(fEdepCmd->GetNewDoubleValue(newValue)); + } else if( command == fBCCmd ) { + G4HadronicParameters::Instance()->SetEnableBCParticles(fBCCmd->GetNewBoolValue(newValue)); + } else if( command == fHNCmd ) { + G4HadronicParameters::Instance()->SetEnableHyperNuclei(fHNCmd->GetNewBoolValue(newValue)); } } diff --git a/examples/extended/hadronic/Hadr02/History b/examples/extended/hadronic/Hadr02/History index fedaf851f5..feda93fc76 100644 --- a/examples/extended/hadronic/Hadr02/History +++ b/examples/extended/hadronic/Hadr02/History @@ -5,6 +5,10 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-10-24 I. Hrivnacova (exhadr02-V11-00-01) +- Coding guidelines: start data member with 'f' + (HadronPhysicsCRMC_FTFP_BERT) + ## 2021-12-10 Ben Morgan (exhadr02-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/hadronic/Hadr02/hadr02.out b/examples/extended/hadronic/Hadr02/hadr02.out index 1b00ae464f..15bc4149e1 100644 --- a/examples/extended/hadronic/Hadr02/hadr02.out +++ b/examples/extended/hadronic/Hadr02/hadr02.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -112,7 +114,6 @@ Some /vis commands (optionally) take a string to specify colour. Emin(FTFP)= 3 GeV Emax(FTFP)= 100000 GeV Emin(BERT)= 1 GeV Emax(BERT)= 6 GeV Emax(BERTpions)= 12 GeV Emin(BIC) = 0 GeV Emax(BIC)= 1.5 GeV. -### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 /run/setCut 1 km /gun/particle ion /gun/ion 16 32 @@ -129,6 +130,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -156,7 +158,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -207,8 +209,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -558,28 +560,6 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 ==================================================================== HADRONIC PROCESSES SUMMARY (verbose level 1) ---------------------------------------------------- - Hadronic Processes for neutron - - Process: hadElastic - Model: hElasticCHIPS: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV - - - Process: neutronInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 1 GeV ---> 6 GeV - Model: Binary Cascade: 0 eV ---> 1.5 GeV - Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV - - - Process: nCapture - Model: nRadCapture: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV - - - Process: nKiller - --------------------------------------------------- Hadronic Processes for B- @@ -696,6 +676,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -861,6 +846,28 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: muMinusCaptureAtRest +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 1 GeV ---> 6 GeV + Model: Binary Cascade: 0 eV ---> 1.5 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + --------------------------------------------------- Hadronic Processes for pi+ @@ -999,28 +1006,28 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 100 - User=0.090000s Real=0.405665s Sys=0.000000s + User=0.120000s Real=0.185613s Sys=0.000000s RunAction: End of run action is starting HistoManager: End of run actions are started ======================================================== Beam particle S32 Beam Energy(GeV) 200 Number of events 100 -Average energy deposit (GeV) 6.14 RMS(GeV) 4.371 -Average number of steps 53 -Average number of gamma 0.58 +Average energy deposit (GeV) 6.677 RMS(GeV) 4.026 +Average number of steps 58.24 +Average number of gamma 0.62 Average number of e- 0 Average number of e+ 0 -Average number of neutrons 13.11 -Average number of protons 12.47 +Average number of neutrons 13.29 +Average number of protons 12.39 Average number of antiprotons 0 -Average number of pi+ & pi- 7.69 -Average number of pi0 4.23 -Average number of kaons 0.16 +Average number of pi+ & pi- 7.59 +Average number of pi0 4.13 +Average number of kaons 0.07 Average number of muons 0 -Average number of deuterons+tritons 2.28 -Average number of He3+alpha 1.63 -Average number of ions 0.47 +Average number of deuterons+tritons 2.67 +Average number of He3+alpha 1.54 +Average number of ions 0.45 ======================================================== Graphics systems deleted. @@ -1028,6 +1035,6 @@ Visualization Manager deleting... G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 14 of which, static: 0 -Dynamic pools deleted: 14 / Total memory freed: 0.1 MB +Dynamic pools deleted: 14 / Total memory freed: 0.095 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/hadronic/Hadr02/include/HadronPhysicsCRMC_FTFP_BERT.hh b/examples/extended/hadronic/Hadr02/include/HadronPhysicsCRMC_FTFP_BERT.hh index d8dcc62278..d176f1c026 100644 --- a/examples/extended/hadronic/Hadr02/include/HadronPhysicsCRMC_FTFP_BERT.hh +++ b/examples/extended/hadronic/Hadr02/include/HadronPhysicsCRMC_FTFP_BERT.hh @@ -69,10 +69,10 @@ class HadronPhysicsCRMC_FTFP_BERT : public G4HadronPhysicsFTFP_BERT { virtual void Kaon() override; private: - G4int model; // 0:EPOS-LHC, 1:EPOS-1.99, 2:QGSJET:01, 6:SIBYLL-2.3, - static const std::array< std::string, 13 > modelNames; // 7:QGSJETII-04, 11:QGSJETII-03, 12:DPMJET-3.06 - G4double minCRMC; - G4double maxFTFP; + G4int fModel; // 0:EPOS-LHC, 1:EPOS-1.99, 2:QGSJET:01, 6:SIBYLL-2.3, + static const std::array< std::string, 13 > fModelNames; // 7:QGSJETII-04, 11:QGSJETII-03, 12:DPMJET-3.06 + G4double fMinCRMC; + G4double fMaxFTFP; }; #endif diff --git a/examples/extended/hadronic/Hadr02/src/HadronPhysicsCRMC_FTFP_BERT.cc b/examples/extended/hadronic/Hadr02/src/HadronPhysicsCRMC_FTFP_BERT.cc index c4d46c4023..7642dd38ed 100644 --- a/examples/extended/hadronic/Hadr02/src/HadronPhysicsCRMC_FTFP_BERT.cc +++ b/examples/extended/hadronic/Hadr02/src/HadronPhysicsCRMC_FTFP_BERT.cc @@ -75,7 +75,7 @@ G4_DECLARE_PHYSCONSTR_FACTORY( HadronPhysicsCRMC_FTFP_BERT ); -const std::array< std::string, 13 > HadronPhysicsCRMC_FTFP_BERT::modelNames = { +const std::array< std::string, 13 > HadronPhysicsCRMC_FTFP_BERT::fModelNames = { "EPOS-LHC", "EPOS-1.99", "QGSJET-01", "", "", "", "SIBYLL-2.3", "QGSJETII-04", "", "", "", "QGSJETII-03", "DPMJET-3.06" }; @@ -86,10 +86,10 @@ HadronPhysicsCRMC_FTFP_BERT::HadronPhysicsCRMC_FTFP_BERT( G4int ) HadronPhysicsCRMC_FTFP_BERT::HadronPhysicsCRMC_FTFP_BERT( const G4String& name, G4bool qe ) : G4HadronPhysicsFTFP_BERT( name, qe ) { - model = 0; //***LOOKHERE*** CRMC model: 0:EPOS-LHC, 1:EPOS-1.99, 2:QGSJET:01, 6:SIBYLL-2.3, + fModel = 0; //***LOOKHERE*** CRMC model: 0:EPOS-LHC, 1:EPOS-1.99, 2:QGSJET:01, 6:SIBYLL-2.3, // 7:QGSJETII-04, 11:QGSJETII-03, 12:DPMJET-3.06 - minCRMC = 100.0*GeV; //***LOOKHERE*** CRMC model is applied only above this projectile lab energy - maxFTFP = 110.0*GeV; //***LOOKHERE*** FTFP model is applied only below this projectile lab energy + fMinCRMC = 100.0*GeV; //***LOOKHERE*** CRMC model is applied only above this projectile lab energy + fMaxFTFP = 110.0*GeV; //***LOOKHERE*** FTFP model is applied only below this projectile lab energy } @@ -101,15 +101,15 @@ void HadronPhysicsCRMC_FTFP_BERT::Neutron() { AddBuilder( neutronBuilder ); auto ftfpnBuilder = new G4FTFPNeutronBuilder( QuasiElastic ); ftfpnBuilder->SetMinEnergy( minFTFP_neutron ); - ftfpnBuilder->SetMaxEnergy( maxFTFP ); + ftfpnBuilder->SetMaxEnergy( fMaxFTFP ); AddBuilder( ftfpnBuilder ); neutronBuilder->RegisterMe( ftfpnBuilder ); auto bertnBuilder = new G4BertiniNeutronBuilder; bertnBuilder->SetMaxEnergy( maxBERT_neutron ); AddBuilder( bertnBuilder ); neutronBuilder->RegisterMe( bertnBuilder ); - auto crmcnBuilder = new CRMCNeutronBuilder( model, modelNames[model] ); - crmcnBuilder->SetMinEnergy( minCRMC ); + auto crmcnBuilder = new CRMCNeutronBuilder( fModel, fModelNames[fModel] ); + crmcnBuilder->SetMinEnergy( fMinCRMC ); AddBuilder( crmcnBuilder ); neutronBuilder->RegisterMe( crmcnBuilder ); neutronBuilder->Build(); @@ -126,15 +126,15 @@ void HadronPhysicsCRMC_FTFP_BERT::Proton() { AddBuilder( protonBuilder ); auto ftfppBuilder = new G4FTFPProtonBuilder( QuasiElastic ); ftfppBuilder->SetMinEnergy( minFTFP_proton ); - ftfppBuilder->SetMaxEnergy( maxFTFP ); + ftfppBuilder->SetMaxEnergy( fMaxFTFP ); AddBuilder( ftfppBuilder ); protonBuilder->RegisterMe( ftfppBuilder ); auto bertpBuilder = new G4BertiniProtonBuilder; bertpBuilder->SetMaxEnergy( maxBERT_proton ); AddBuilder( bertpBuilder ); protonBuilder->RegisterMe( bertpBuilder ); - auto crmcpBuilder = new CRMCProtonBuilder( model, modelNames[model] ); - crmcpBuilder->SetMinEnergy( minCRMC ); + auto crmcpBuilder = new CRMCProtonBuilder( fModel, fModelNames[fModel] ); + crmcpBuilder->SetMinEnergy( fMinCRMC ); AddBuilder( crmcpBuilder ); protonBuilder->RegisterMe( crmcpBuilder ); protonBuilder->Build(); @@ -146,15 +146,15 @@ void HadronPhysicsCRMC_FTFP_BERT::Pion() { AddBuilder( pionBuilder ); auto ftfppiBuilder = new G4FTFPPionBuilder( QuasiElastic ); ftfppiBuilder->SetMinEnergy( minFTFP_pion ); - ftfppiBuilder->SetMaxEnergy( maxFTFP ); + ftfppiBuilder->SetMaxEnergy( fMaxFTFP ); AddBuilder( ftfppiBuilder ); pionBuilder->RegisterMe( ftfppiBuilder ); auto bertpiBuilder = new G4BertiniPionBuilder; bertpiBuilder->SetMaxEnergy( maxBERT_pion ); AddBuilder( bertpiBuilder ); pionBuilder->RegisterMe( bertpiBuilder ); - auto crmcpiBuilder = new CRMCPionBuilder( model, modelNames[model] ); - crmcpiBuilder->SetMinEnergy( minCRMC ); + auto crmcpiBuilder = new CRMCPionBuilder( fModel, fModelNames[fModel] ); + crmcpiBuilder->SetMinEnergy( fMinCRMC ); AddBuilder( crmcpiBuilder ); pionBuilder->RegisterMe( crmcpiBuilder ); pionBuilder->Build(); @@ -166,15 +166,15 @@ void HadronPhysicsCRMC_FTFP_BERT::Kaon() { AddBuilder( kaonBuilder ); auto ftfpkBuilder = new G4FTFPKaonBuilder( QuasiElastic ); ftfpkBuilder->SetMinEnergy( minFTFP_kaon ); - ftfpkBuilder->SetMaxEnergy( maxFTFP ); + ftfpkBuilder->SetMaxEnergy( fMaxFTFP ); AddBuilder( ftfpkBuilder ); kaonBuilder->RegisterMe( ftfpkBuilder ); auto bertkBuilder = new G4BertiniKaonBuilder; bertkBuilder->SetMaxEnergy( maxBERT_kaon ); AddBuilder( bertkBuilder ); kaonBuilder->RegisterMe( bertkBuilder ); - auto crmckBuilder = new CRMCKaonBuilder( model, modelNames[model] ); - crmckBuilder->SetMinEnergy( minCRMC ); + auto crmckBuilder = new CRMCKaonBuilder( fModel, fModelNames[fModel] ); + crmckBuilder->SetMinEnergy( fMinCRMC ); AddBuilder( crmckBuilder ); kaonBuilder->RegisterMe( crmckBuilder ); kaonBuilder->Build(); diff --git a/examples/extended/hadronic/Hadr03/Hadr03.cc b/examples/extended/hadronic/Hadr03/Hadr03.cc index a23311dd51..2a393703aa 100644 --- a/examples/extended/hadronic/Hadr03/Hadr03.cc +++ b/examples/extended/hadronic/Hadr03/Hadr03.cc @@ -55,9 +55,6 @@ int main(int argc,char** argv) { G4UIExecutive* ui = nullptr; if (argc == 1) ui = new G4UIExecutive(argc,argv); - //choose the Random engine - G4Random::setTheEngine(new CLHEP::RanecuEngine); - //use G4SteppingVerboseWithUnits G4int precision = 4; G4SteppingVerbose::UseBestUnit(precision); @@ -92,18 +89,18 @@ int main(int argc,char** argv) { //get the pointer to the User Interface manager G4UImanager* UImanager = G4UImanager::GetUIpointer(); - if (ui) { - //interactive mode - visManager = new G4VisExecutive; - visManager->Initialize(); - ui->SessionStart(); - delete ui; + if (ui) { + //interactive mode + visManager = new G4VisExecutive; + visManager->Initialize(); + ui->SessionStart(); + delete ui; } else { - //batch mode - G4String command = "/control/execute "; - G4String fileName = argv[1]; - UImanager->ApplyCommand(command+fileName); + //batch mode + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UImanager->ApplyCommand(command+fileName); } //job termination diff --git a/examples/extended/hadronic/Hadr03/History b/examples/extended/hadronic/Hadr03/History index afc19fd4ee..4704be1dac 100644 --- a/examples/extended/hadronic/Hadr03/History +++ b/examples/extended/hadronic/Hadr03/History @@ -4,6 +4,16 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! + +## 2022-11-17 V. Ivanchenko (exhadr03-V11-00-02) +- Hadr03.cc - removed RanecuEngine +- PhysicsList: use G4NuclideTable::SetMeanLifeThreshold(1ns); + use QBBC as the default configuration +- Run - added protection for the case when G4NeutronGeneralProcess is + used - in that case it is not possible to access cross section + via G4HadronicProcessStore, this may be resolved for the next release; + fixed problem 2517 + ## 2022-04-01 mma (exhadr03-V11-00-01) - PhysicsList: add G4NuclideTable::SetThresholdOfHalfLife(1ns*log2) diff --git a/examples/extended/hadronic/Hadr03/hadr03.out b/examples/extended/hadronic/Hadr03/hadr03.out index e79d69029f..e6f3d658cc 100644 --- a/examples/extended/hadronic/Hadr03/hadr03.out +++ b/examples/extended/hadronic/Hadr03/hadr03.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -40,12 +40,10 @@ Command is ignored. ---> Isotope: Mo98 Z = 42 N = 98 A = 97.91 g/mole abundance: 100.000 % ElmMassFraction: 100.00 % ElmAbundance 100.00 % -/cvmfs/geant4.cern.ch/share/data/G4NDL4.7 -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic -@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.7 -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic/CrossSection/6_nat_Carbon +### HadronInelasticQBBC Construct Process: + Emin(FTFP)= 3 GeV Emax(FTFP)= 100000 GeV + Emin(BERT)= 1 GeV Emax(BERT)= 6 GeV Emax(BERTpions)= 12 GeV + Emin(BIC) = 0 GeV Emax(BIC)= 1.5 GeV. ======================================================================= ====== Electromagnetic Physics Parameters ======== ======================================================================= @@ -55,6 +53,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -82,7 +81,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -118,8 +117,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -139,10 +137,11 @@ Type of PIXE cross section for e+- Livermore ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 1 ns -Max life time (from G4DeexPrecoParameters) 1 ns +min MeanLife (from G4NuclideTable) 1 ps +Max life time (from G4DeexPrecoParameters) 1 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -152,29 +151,36 @@ Use Bearden atomic level energies 0 Use ANSTO fluorescence model 0 Threshold for very long decay time at rest 3.171e+10 y ====================================================================== -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon -NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic/CrossSection/6_nat_Carbon -NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon - -======================================================= -====== ParticleHP Physics Parameters ======== -======================================================= - UseOnlyPhotoEvaporation ? 1 - SkipMissingIsotopes ? 0 - NeglectDoppler ? 0 - DoNotAdjustFinalState ? 1 - ProduceFissionFragments ? 0 - UseWendtFissionModel ? 0 - UseNRESP71Model ? 0 -======================================================= - -@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic -NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon ==================================================================== HADRONIC PROCESSES SUMMARY (verbose level 1) +--------------------------------------------------- + Hadronic Processes for B- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: B-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for D- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: D-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + --------------------------------------------------- Hadronic Processes for GenericIon @@ -270,8 +276,7 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use / Process: anti_lambdaInelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 0 eV ---> 25 GeV + Model: FTFP: 0 eV ---> 100 TeV Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV @@ -349,8 +354,7 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use / Process: kaon+Inelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 3 GeV ---> 25 GeV + Model: FTFP: 3 GeV ---> 100 TeV Model: BertiniCascade: 0 eV ---> 6 GeV Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV @@ -364,8 +368,7 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use / Process: kaon-Inelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 3 GeV ---> 25 GeV + Model: FTFP: 3 GeV ---> 100 TeV Model: BertiniCascade: 0 eV ---> 6 GeV Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV @@ -379,8 +382,7 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use / Process: lambdaInelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 3 GeV ---> 25 GeV + Model: FTFP: 3 GeV ---> 100 TeV Model: BertiniCascade: 0 eV ---> 6 GeV Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV @@ -389,37 +391,22 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use / Hadronic Processes for neutron Process: hadElastic - Model: hElasticCHIPS: 19.5 MeV ---> 100 TeV - Model: NeutronHPElastic: 0 eV ---> 20 MeV - Cr_sctns: NeutronHPElasticXS: 0 eV ---> 20 MeV - + Model: hElasticCHIPS: 0 eV ---> 100 TeV Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV Process: neutronInelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 3 GeV ---> 25 GeV - Model: Binary Cascade: 19.9 MeV ---> 6 GeV - Model: NeutronHPInelastic: 0 eV ---> 20 MeV - Cr_sctns: NeutronHPInelasticXS: 0 eV ---> 20 MeV - + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 1 GeV ---> 6 GeV + Model: Binary Cascade: 0 eV ---> 1.5 GeV Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV Process: nCapture - Model: NeutronHPCapture: 0 eV ---> 20 MeV - Model: nRadCapture: 19.9 MeV ---> 100 TeV - Cr_sctns: NeutronHPCaptureXS: 0 eV ---> 20 MeV - + Model: nRadCapture: 0 eV ---> 100 TeV Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV - - Process: nFission - Model: NeutronHPFission: 0 eV ---> 20 MeV - Model: G4LFission: 19.9 MeV ---> 100 TeV - Cr_sctns: NeutronHPFissionXS: 0 eV ---> 20 MeV - - Cr_sctns: ZeroXS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV --------------------------------------------------- @@ -431,9 +418,9 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use / Process: pi+Inelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 3 GeV ---> 25 GeV - Model: BertiniCascade: 0 eV ---> 6 GeV + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 1 GeV ---> 12 GeV + Model: Binary Cascade: 0 eV ---> 1.5 GeV Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV @@ -446,9 +433,9 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use / Process: pi-Inelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 3 GeV ---> 25 GeV - Model: BertiniCascade: 0 eV ---> 6 GeV + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 1 GeV ---> 12 GeV + Model: Binary Cascade: 0 eV ---> 1.5 GeV Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV @@ -461,10 +448,10 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use / Process: protonInelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 3 GeV ---> 25 GeV - Model: Binary Cascade: 0 eV ---> 6 GeV - Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 1 GeV ---> 6 GeV + Model: Binary Cascade: 0 eV ---> 1.5 GeV + Cr_sctns: G4ParticleInelasticXS: 0 eV ---> 100 TeV --------------------------------------------------- @@ -476,8 +463,7 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use / Process: sigma-Inelastic - Model: QGSP: 12 GeV ---> 100 TeV - Model: FTFP: 3 GeV ---> 25 GeV + Model: FTFP: 3 GeV ---> 100 TeV Model: BertiniCascade: 0 eV ---> 6 GeV Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV @@ -513,7 +499,7 @@ Limit excitation energy for Fermi BreakUp 20 MeV Level density (1/MeV) 0.075 Use simple level density model 1 Use discrete excitation energy of the residual 1 -Time limit for long lived isomeres 1 ns +Time limit for long lived isomeres 1 ps Isomer production flag 1 Internal e- conversion flag 1 Store e- internal conversion data 1 @@ -534,10 +520,11 @@ Index : 0 used in the geometry : Yes ### Run 0 starts. ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 9876, 54321 ----------------------------------------- +------- MixMaxRng engine status ------- + Current state vector is: +mixmax state, file version 1.0 +N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008233404568, 2262190991329242458, 2266470399991071809, 1976726662926872232, 245458862506414172, 1955974201201518530, 2155248512522080758, 604170912935414061, 1116171330120743511, 1861018313684488333, 1296715403254578286, 1549011045957234151, 370819759640195970, 2230139271784837643} counter= 17sumtot= 1977567618660788324 +--------------------------------------- --> Event 0 starts. --> Event 1000 starts. --> Event 2000 starts. @@ -551,71 +538,75 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.140000s Real=0.141653s Sys=0.000000s + User=0.180000s Real=0.181400s Sys=0.000000s The run is 10000 proton of 10 MeV through 10 m of Molybdenum98 (density: 10.28 g/cm3 ) Process calls frequency: - hadElastic= 8153 protonInelastic= 1847 + hadElastic= 7818 protonInelastic= 2182 - MeanFreePath: 4.9197 cm +- 4.9361 cm massic: 50.575 g/cm2 - CrossSection: 0.20326 cm^-1 massic: 1.9773 mm2/g - crossSection per atom: 3.2146 barn + MeanFreePath: 4.7785 cm +- 4.7263 cm massic: 49.123 g/cm2 + CrossSection: 0.20927 cm^-1 massic: 2.0357 mm2/g + crossSection per atom: 3.3096 barn - Verification: crossSections from G4HadronicProcessStore: - hadElastic= 1.5946 mm2/g 2.5924 barn - protonInelastic= 371.67 um2/mg 604.25 mbarn - total= 1.9663 mm2/g 3.1967 barn + Verification: crossSections from G4HadronicProcessStore + + hadElastic = 1.5946 mm2/g 2.5924 barn + protonInelastic = 449.13 um2/mg 730.17 mbarn total = 2.0437 mm2/g 3.3226 barn List of nuclear reactions: - proton + Mo98 --> N gamma or e- + Tc99: 1 Q = 6.4945 MeV - proton + Mo98 --> N gamma or e- + Tc99[142.683]: 1 Q = 6.3518 MeV - proton + Mo98 --> N gamma or e- + alpha + Nb95: 5 Q = 3.5405 MeV - proton + Mo98 --> N gamma or e- + alpha + Nb95[235.690]: 2 Q = 3.3048 MeV - proton + Mo98 --> N gamma or e- + neutron + Tc98: 1574 Q = -2.4768 MeV - proton + Mo98 --> N gamma or e- + neutron + Tc98[138.550]: 34 Q = -2.6123 MeV - proton + Mo98 --> N gamma or e- + neutron + Tc98[152.090]: 12 Q = -2.6246 MeV - proton + Mo98 --> N gamma or e- + neutron + Tc98[190.210]: 29 Q = -2.6627 MeV - proton + Mo98 --> N gamma or e- + neutron + Tc98[203.670]: 41 Q = -2.6762 MeV - proton + Mo98 --> N gamma or e- + neutron + Tc98[21.800]: 54 Q = -2.4943 MeV - proton + Mo98 --> N gamma or e- + neutron + Tc98[65.430]: 63 Q = -2.5379 MeV - proton + Mo98 --> N gamma or e- + neutron + Tc98[81.680]: 5 Q = -2.5542 MeV - proton + Mo98 --> N gamma or e- + proton + Mo98: 18 Q = -0.00098874 meV - proton + Mo98 --> N gamma or e- + proton + Mo98[734.750]: 8 Q = -734.75 keV - proton + Mo98 --> proton + Mo98: 8153 Q = -0.0056929 meV + proton + Mo98 --> N gamma or e- + Tc99[761.950]: 1 Q = 5.7325 MeV + proton + Mo98 --> N gamma or e- + neutron + Tc98: 1907 Q = -2.477 MeV + proton + Mo98 --> N gamma or e- + neutron + Tc98[138.550]: 35 Q = -2.6122 MeV + proton + Mo98 --> N gamma or e- + neutron + Tc98[152.090]: 17 Q = -2.6246 MeV + proton + Mo98 --> N gamma or e- + neutron + Tc98[190.210]: 44 Q = -2.6627 MeV + proton + Mo98 --> N gamma or e- + neutron + Tc98[203.670]: 32 Q = -2.6762 MeV + proton + Mo98 --> N gamma or e- + neutron + Tc98[21.800]: 44 Q = -2.4943 MeV + proton + Mo98 --> N gamma or e- + neutron + Tc98[65.430]: 60 Q = -2.5386 MeV + proton + Mo98 --> N gamma or e- + neutron + Tc98[81.680]: 7 Q = -2.5542 MeV + proton + Mo98 --> N gamma or e- + proton + Mo98: 8 Q = -0.0072636 meV + proton + Mo98 --> N gamma or e- + proton + Mo98[1432.206]: 6 Q = -1.4322 MeV + proton + Mo98 --> N gamma or e- + proton + Mo98[1510.039]: 2 Q = -1.51 MeV + proton + Mo98 --> N gamma or e- + proton + Mo98[1758.480]: 3 Q = -1.7585 MeV + proton + Mo98 --> N gamma or e- + proton + Mo98[2343.610]: 1 Q = -2.3436 MeV + proton + Mo98 --> N gamma or e- + proton + Mo98[734.750]: 3 Q = -734.75 keV + proton + Mo98 --> N gamma or e- + proton + Mo98[787.384]: 12 Q = -787.38 keV + proton + Mo98 --> proton + Mo98: 7818 Q = -0.0056122 meV number of gamma or e- (ic): N = 1 --> 10 List of generated particles: - Mo98: 8171 Emean = 32.25 keV ( 3.0808 eV --> 405.01 keV) - Mo98[734.750]: 8 Emean = 157.87 keV ( 946.9 eV --> 283.24 keV) - Nb95: 5 Emean = 601.67 keV ( 305.57 keV --> 923.45 keV) - Nb95[235.690]: 2 Emean = 784.85 keV ( 688.21 keV --> 881.48 keV) - Tc98: 1574 Emean = 117.29 keV ( 18.619 keV --> 279.89 keV) - Tc98[138.550]: 34 Emean = 139.71 keV ( 26.301 keV --> 260.02 keV) - Tc98[152.090]: 12 Emean = 127.18 keV ( 44.762 keV --> 287.76 keV) - Tc98[190.210]: 29 Emean = 131.77 keV ( 27.319 keV --> 287.13 keV) - Tc98[203.670]: 41 Emean = 110.16 keV ( 6.0166 keV --> 303.34 keV) - Tc98[21.800]: 54 Emean = 113.37 keV ( 32.026 keV --> 210.36 keV) - Tc98[65.430]: 63 Emean = 129.95 keV ( 27.207 keV --> 283.69 keV) - Tc98[81.680]: 5 Emean = 158.69 keV ( 46.56 keV --> 252.45 keV) - Tc99: 1 Emean = 107.75 keV ( 107.75 keV --> 107.75 keV) - Tc99[142.683]: 1 Emean = 93.139 keV ( 93.139 keV --> 93.139 keV) - alpha: 7 Emean = 9.6177 MeV ( 8.5748 MeV --> 11.085 MeV) - e-: 385 Emean = 110.24 keV ( 84.761 keV --> 806.31 keV) - gamma: 10762 Emean = 975.88 keV ( 7.8554 keV --> 12.222 MeV) - neutron: 1812 Emean = 1.6388 MeV ( 55.776 keV --> 7.0091 MeV) - proton: 26 Emean = 7.0403 MeV ( 3.769 MeV --> 9.5704 MeV) + Mo98: 7826 Emean = 33.222 keV ( 518.57 meV --> 405.32 keV) + Mo98[1432.206]: 6 Emean = 165.57 keV ( 21.409 keV --> 341.51 keV) + Mo98[1510.039]: 2 Emean = 145.28 keV ( 18.524 keV --> 272.04 keV) + Mo98[1758.480]: 3 Emean = 71.318 keV ( 13.92 keV --> 181.72 keV) + Mo98[2343.610]: 1 Emean = 36.963 keV ( 36.963 keV --> 36.963 keV) + Mo98[734.750]: 3 Emean = 153.54 keV ( 66.149 keV --> 231.68 keV) + Mo98[787.384]: 12 Emean = 146.07 keV ( 31.877 keV --> 279.38 keV) + Tc98: 1907 Emean = 116.62 keV ( 14.658 keV --> 274.97 keV) + Tc98[138.550]: 35 Emean = 118.45 keV ( 12.678 keV --> 261.05 keV) + Tc98[152.090]: 17 Emean = 142.42 keV ( 35.387 keV --> 261.28 keV) + Tc98[190.210]: 44 Emean = 144.17 keV ( 33.248 keV --> 266.75 keV) + Tc98[203.670]: 32 Emean = 142.86 keV ( 41.605 keV --> 298.43 keV) + Tc98[21.800]: 44 Emean = 125.66 keV ( 21.659 keV --> 231.97 keV) + Tc98[65.430]: 60 Emean = 132.06 keV ( 38.601 keV --> 268.33 keV) + Tc98[81.680]: 7 Emean = 160.97 keV ( 27.194 keV --> 247.45 keV) + Tc99[761.950]: 1 Emean = 104.51 keV ( 104.51 keV --> 104.51 keV) + e-: 473 Emean = 110.06 keV ( 84.762 keV --> 806.59 keV) + gamma: 12901 Emean = 960.17 keV ( 7.8419 keV --> 12.214 MeV) + neutron: 2146 Emean = 1.6388 MeV ( 58.385 keV --> 7.0739 MeV) + proton: 35 Emean = 6.7599 MeV ( 4.0174 MeV --> 9.3731 MeV) - Momentum balance: Pmean = 29.752 eV ( 0.00156 meV --> 1.9714 keV) + Momentum balance: Pmean = 36.092 eV ( 0.00079635 meV --> 2.0456 keV) ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 951332687, 2125471326 ----------------------------------------- +------- MixMaxRng engine status ------- + Current state vector is: +mixmax state, file version 1.0 +N=17 V[N]={1778184878595597097, 490839719696109760, 1795636378797985139, 724265205952420050, 186692711742091506, 1740349965354549304, 150176419925325636, 2015144202567626119, 1829156676318289330, 463382076856931107, 473792035389981632, 1139332937110680876, 1434785253413254801, 678894643109774082, 813977053751020918, 1369367491946283346, 582182315345334364} counter= 5sumtot= 1525258901377397410 +--------------------------------------- G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 11 of which, static: 0 diff --git a/examples/extended/hadronic/Hadr03/include/Run.hh b/examples/extended/hadronic/Hadr03/include/Run.hh index 3aa1987966..121f5b1cdb 100644 --- a/examples/extended/hadronic/Hadr03/include/Run.hh +++ b/examples/extended/hadronic/Hadr03/include/Run.hh @@ -40,6 +40,9 @@ class DetectorConstruction; class G4ParticleDefinition; +class G4HadronicProcessStore; +class G4Material; +class G4Element; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -63,6 +66,11 @@ class Run : public G4Run void EndOfRun(G4bool); private: + + void PrintXS(const G4VProcess*, const G4Material*, const G4Element*, + G4HadronicProcessStore*, G4double dens, + G4double& sum1, G4double& sum2); + struct ParticleData { ParticleData() : fCount(0), fEmean(0.), fEmin(0.), fEmax(0.) {} diff --git a/examples/extended/hadronic/Hadr03/src/PhysicsList.cc b/examples/extended/hadronic/Hadr03/src/PhysicsList.cc index 697e6e2c9a..36c72e2159 100644 --- a/examples/extended/hadronic/Hadr03/src/PhysicsList.cc +++ b/examples/extended/hadronic/Hadr03/src/PhysicsList.cc @@ -73,7 +73,7 @@ PhysicsList::PhysicsList() :G4VModularPhysicsList() { - G4int verb = 0; + G4int verb = 1; SetVerboseLevel(verb); //add new units for cross sections @@ -83,21 +83,21 @@ PhysicsList::PhysicsList() // mandatory for G4NuclideTable // - const G4double meanLife = 1*nanosecond, halfLife = meanLife*std::log(2); - G4NuclideTable::GetInstance()->SetThresholdOfHalfLife(halfLife); + const G4double meanLife = 1*picosecond; + G4NuclideTable::GetInstance()->SetMeanLifeThreshold(meanLife); // Hadron Elastic scattering // - RegisterPhysics( new G4HadronElasticPhysicsHP(verb)); - ///RegisterPhysics( new G4HadronElasticPhysicsXS(verb)); + // RegisterPhysics( new G4HadronElasticPhysicsHP(verb)); + RegisterPhysics( new G4HadronElasticPhysicsXS(verb)); // Hadron Inelastic physics // ////RegisterPhysics( new G4HadronPhysicsFTFP_BERT_HP(verb)); - RegisterPhysics( new G4HadronPhysicsQGSP_BIC_HP(verb)); + // RegisterPhysics( new G4HadronPhysicsQGSP_BIC_HP(verb)); ////RegisterPhysics( new G4HadronPhysicsQGSP_BIC_AllHP(verb)); ////RegisterPhysics( new G4HadronPhysicsQGSP_BIC(verb)); - ////RegisterPhysics( new G4HadronInelasticQBBC(verb)); + RegisterPhysics( new G4HadronInelasticQBBC(verb)); ////RegisterPhysics( new G4HadronPhysicsINCLXX(verb)); ////RegisterPhysics( new G4HadronPhysicsShielding(verb)); @@ -153,7 +153,7 @@ void PhysicsList::ConstructParticle() void PhysicsList::SetCuts() { - SetCutValue(0.*mm, "proton"); + SetCutValue(0.*mm, "proton"); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr03/src/Run.cc b/examples/extended/hadronic/Hadr03/src/Run.cc index e1226b2c30..5920614267 100644 --- a/examples/extended/hadronic/Hadr03/src/Run.cc +++ b/examples/extended/hadronic/Hadr03/src/Run.cc @@ -37,8 +37,10 @@ #include "G4ProcessTable.hh" #include "G4HadronicProcessStore.hh" +#include "G4HadronicProcess.hh" #include "G4UnitsTable.hh" #include "G4SystemOfUnits.hh" +#include "G4Neutron.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -88,6 +90,7 @@ void Run::CountProcesses(G4VProcess* process) fProcCounter[procName]++; } } + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void Run::SumTrack(G4double trackl) @@ -253,7 +256,7 @@ void Run::EndOfRun(G4bool print) //run condition // - G4Material* material = fDetector->GetMaterial(); + const G4Material* material = fDetector->GetMaterial(); G4double density = material->GetDensity(); G4String Particle = fParticle->GetParticleName(); @@ -315,51 +318,32 @@ void Run::EndOfRun(G4bool print) //check cross section from G4HadronicProcessStore // G4cout << "\n Verification: " - << "crossSections from G4HadronicProcessStore:"; + << "crossSections from G4HadronicProcessStore" << G4endl; G4ProcessTable* processTable = G4ProcessTable::GetProcessTable(); G4HadronicProcessStore* store = G4HadronicProcessStore::Instance(); G4double sumc1 = 0.0, sumc2 = 0.0; - if (material->GetNumberOfElements() == 1) { - const G4Element* element = material->GetElement(0); - for (it = fProcCounter.begin(); it != fProcCounter.end(); it++) { - G4String procName = it->first; - G4VProcess* process = processTable->FindProcess(procName, fParticle); - G4double xs1 = - store->GetCrossSectionPerVolume(fParticle,fEkin,process,material); - G4double massSigma = xs1/density; - sumc1 += massSigma; - G4double xs2 = - store->GetCrossSectionPerAtom(fParticle,fEkin,process,element,material); - sumc2 += xs2; - G4cout << "\n" << std::setw(20) << procName << "= " - << G4BestUnit(massSigma, "Surface/Mass") << "\t" - << G4BestUnit(xs2, "Surface"); - - } - G4cout << "\n" << std::setw(20) << "total" << "= " - << G4BestUnit(sumc1, "Surface/Mass") << "\t" - << G4BestUnit(sumc2, "Surface") << G4endl; + const G4Element* element = (material->GetNumberOfElements() == 1) + ? material->GetElement(0) : nullptr; + for (it = fProcCounter.begin(); it != fProcCounter.end(); ++it) { + G4String procName = it->first; + const G4VProcess* process = processTable->FindProcess(procName, fParticle); + PrintXS(process, material, element, store, density, sumc1, sumc2); + } + if(sumc1 > 0.0) { + G4cout << std::setw(20) << "total" << " = " + << G4BestUnit(sumc1, "Surface/Mass") << "\t"; + if(sumc2 > 0.0) { G4cout << G4BestUnit(sumc2, "Surface"); } + G4cout << G4endl; } else { - for (it = fProcCounter.begin(); it != fProcCounter.end(); it++) { - G4String procName = it->first; - G4VProcess* process = processTable->FindProcess(procName, fParticle); - G4double xs = - store->GetCrossSectionPerVolume(fParticle,fEkin,process,material); - G4double massSigma = xs/density; - sumc1 += massSigma; - G4cout << "\n" << std::setw(20) << procName << "= " - << G4BestUnit(massSigma, "Surface/Mass"); - } - G4cout << "\n" << std::setw(20) << "total" << "= " - << G4BestUnit(sumc1, "Surface/Mass") << G4endl; + G4cout << " not available" << G4endl; } - //nuclear channel count - // - G4cout << "\n List of nuclear reactions: \n" << G4endl; - std::map::iterator ic; - for (ic = fNuclChannelMap.begin(); ic != fNuclChannelMap.end(); ic++) { + //nuclear channel count + // + G4cout << "\n List of nuclear reactions: \n" << G4endl; + std::map::iterator ic; + for (ic = fNuclChannelMap.begin(); ic != fNuclChannelMap.end(); ic++) { G4String name = ic->first; NuclChannel data = ic->second; G4int count = data.fCount; @@ -368,27 +352,27 @@ void Run::EndOfRun(G4bool print) G4cout << " " << std::setw(60) << name << ": " << std::setw(7) << count << " Q = " << std::setw(wid) << G4BestUnit(Q, "Energy") << G4endl; - } + } - //Gamma count - // - if (print && (fGammaCount > 0)) { - G4cout << "\n" << std::setw(58) << "number of gamma or e- (ic): N = " + //Gamma count + // + if (print && (fGammaCount > 0)) { + G4cout << "\n" << std::setw(58) << "number of gamma or e- (ic): N = " << fNbGamma[1] << " --> " << fNbGamma[2] << G4endl; - } + } - if (print && fTargetXXX) { - G4cout - << "\n --> NOTE: XXXX because neutronHP is unable to return target nucleus" - << G4endl; - } + if (print && fTargetXXX) { + G4cout + << "\n --> NOTE: XXXX because neutronHP is unable to return target nucleus" + << G4endl; + } - //particles count - // - G4cout << "\n List of generated particles:" << G4endl; + //particles count + // + G4cout << "\n List of generated particles:" << G4endl; - std::map::iterator itn; - for (itn = fParticleDataMap.begin(); itn != fParticleDataMap.end(); itn++) { + std::map::iterator itn; + for (itn = fParticleDataMap.begin(); itn != fParticleDataMap.end(); itn++) { G4String name = itn->first; ParticleData data = itn->second; G4int count = data.fCount; @@ -401,18 +385,18 @@ void Run::EndOfRun(G4bool print) << "\t( " << G4BestUnit(eMin, "Energy") << " --> " << G4BestUnit(eMax, "Energy") << ")" << G4endl; - } + } - //energy momentum balance - // - if (fTotalCount > 1) { + //energy momentum balance + // + if (fTotalCount > 1) { G4double Pbmean = fPbalance[0]/fTotalCount; G4cout << "\n Momentum balance: Pmean = " << std::setw(wid) << G4BestUnit(Pbmean, "Energy") << "\t( " << G4BestUnit(fPbalance[1], "Energy") << " --> " << G4BestUnit(fPbalance[2], "Energy") << ") \n" << G4endl; - } + } //normalize histograms ////G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); @@ -429,3 +413,26 @@ void Run::EndOfRun(G4bool print) } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::PrintXS(const G4VProcess* proc, + const G4Material* mat, const G4Element* elm, + G4HadronicProcessStore* store, G4double density, + G4double& sum1, G4double& sum2) +{ + if(nullptr == proc) { return; } + G4double xs1 = store->GetCrossSectionPerVolume(fParticle, fEkin, proc, mat); + G4double massSigma = xs1/density; + sum1 += massSigma; + if(nullptr != elm) { + G4double xs2 = store->GetCrossSectionPerAtom(fParticle, fEkin, proc, elm, mat); + sum2 += xs2; + G4cout << "\n" << std::setw(20) << proc->GetProcessName() << " = " + << G4BestUnit(massSigma, "Surface/Mass") << "\t" + << G4BestUnit(xs2, "Surface"); + } else { + G4cout << "\n" << std::setw(20) << proc->GetProcessName() << " = " + << G4BestUnit(massSigma, "Surface/Mass"); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/Hadr04/hadr04.out b/examples/extended/hadronic/Hadr04/hadr04.out index b94d2470d2..9d78ca2deb 100644 --- a/examples/extended/hadronic/Hadr04/hadr04.out +++ b/examples/extended/hadronic/Hadr04/hadr04.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -181,7 +181,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 1000 - User=9.780000s Real=12.425638s Sys=0.000000s + User=10.090000s Real=11.646302s Sys=0.000000s The run is 1000 neutron of 2 MeV through 50 cm of Water_ts (density: 1 g/cm3 ) diff --git a/examples/extended/hadronic/Hadr05/hadr05.out b/examples/extended/hadronic/Hadr05/hadr05.out index b435ec0f36..6eb4b4e386 100644 --- a/examples/extended/hadronic/Hadr05/hadr05.out +++ b/examples/extended/hadronic/Hadr05/hadr05.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -119,33 +119,33 @@ Index : 2 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=78.650000s Real=84.688196s Sys=0.210000s + User=87.340000s Real=92.194527s Sys=0.050000s ---> The run is 1000 proton of 5 GeV through calorimeter Process calls frequency : - Decay= 3745 He3Inelastic= 2 NoProcess= 4052062 - Radioactivation= 80759 Rayl= 215969 Transportation= 3998258 - alphaInelastic= 3 annihil= 57916 compt= 2649589 - conv= 54627 dInelastic= 78 eBrem= 389207 - eIoni= 6188997 hBertiniCaptureAtRest= 467 hIoni= 1425675 - hadElastic= 4492144 ionElastic= 2 ionIoni= 4140715 - kaon+Inelastic= 16 kaon-Inelastic= 2 kaon0LInelastic= 13 - kaon0SInelastic= 3 lambdaInelastic= 12 msc= 257743 - muIoni= 8017 muMinusCaptureAtRest= 12 nCapture= 52834 - neutronInelastic= 91833 phot= 849821 photonNuclear= 212 - pi+Inelastic= 1006 pi-Inelastic= 928 protonInelastic= 4181 - sigma-Inelastic= 1 tInelastic= 9 + Decay= 3650 He3Inelastic= 3 NoProcess= 4066419 + Radioactivation= 81190 Rayl= 219865 Transportation= 4002565 + alphaInelastic= 5 annihil= 57840 compt= 2660404 + conv= 54581 dInelastic= 123 eBrem= 383877 + eIoni= 6188225 hBertiniCaptureAtRest= 529 hIoni= 1434390 + hadElastic= 4508608 ionIoni= 4160978 kaon+Inelastic= 11 + kaon0LInelastic= 8 kaon0SInelastic= 1 lambdaInelastic= 5 + msc= 260952 muIoni= 7310 muMinusCaptureAtRest= 6 + nCapture= 53035 neutronInelastic= 93136 phot= 848626 + photonNuclear= 197 pi+Inelastic= 1082 pi-Inelastic= 913 + protonInelastic= 4037 sigma-Inelastic= 1 tInelastic= 12 + ------------------------------------------------------------ material Edep rmsE sqrt(E0(GeV))*rmsE/Edep total tracklen - 1 Iron 4.0414 GeV 297.7 MeV 16.47 +- 0.521 % 2.172 m +- 48 cm - 2 Scintillator 115.45 MeV 33.47 MeV 64.82 +- 2.05 % 22.64 cm +- 6.84 cm + 1 Iron 4.0273 GeV 291.1 MeV 16.16 +- 0.511 % 2.141 m +- 47.4 cm + 2 Scintillator 114 MeV 32.9 MeV 64.53 +- 2.04 % 22.05 cm +- 6.69 cm - Total Edep = 4.157 GeV - Leakage : primary = 0 eV secondaries = 191.1 MeV ---> total = 191.1 MeV - Total energy released : Edep + Eleak = 4.348 GeV + Total Edep = 4.141 GeV + Leakage : primary = 0 eV secondaries = 198.9 MeV ---> total = 198.9 MeV + Total energy released : Edep + Eleak = 4.34 GeV ------------------------------------------------------------ G4 kernel has come to Quit state. ================== Deleting memory pools =================== diff --git a/examples/extended/hadronic/Hadr06/hadr06.out b/examples/extended/hadronic/Hadr06/hadr06.out index 8125261005..5276a55b4b 100644 --- a/examples/extended/hadronic/Hadr06/hadr06.out +++ b/examples/extended/hadronic/Hadr06/hadr06.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -54,6 +54,7 @@ min MeanLife (from G4NuclideTable) 1 ns Max life time (from G4DeexPrecoParameters) 1 ns Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 0 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 0 @@ -163,6 +164,11 @@ NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use / Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -465,47 +471,50 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=3.420000s Real=3.474103s Sys=0.010000s + User=3.890000s Real=3.924373s Sys=0.000000s The run is 10000 neutron of 14.1 MeV through 30 cm of Li7 (density: 1.85 g/cm3 ) Process calls frequency : - Decay= 8049 NoProcess= 179947 Radioactivation= 30 - Rayl= 2319 Transportation= 23806 compt= 40811 - eIoni= 44865 hIoni= 35894 hadElastic= 171491 - ionElastic= 1 ionIoni= 191727 nCapture= 15 - neutronInelastic= 16507 phot= 823 tInelastic= 3 + Decay= 8157 NoProcess= 178922 Radioactivation= 48 + Rayl= 2094 Transportation= 23700 annihil= 1 + compt= 38845 conv= 1 eIoni= 42961 + hIoni= 36546 hadElastic= 170852 ionIoni= 249450 + nCapture= 24 neutronInelastic= 16237 phot= 789 + tInelastic= 11 + Mean energy deposit per event = 11.046 MeV rms = 2.6327 MeV + Mean energy leakage per event = 1.0568 MeV rms = 2.8918 MeV - Mean energy deposit per event = 11.049 MeV rms = 2.6034 MeV - Mean energy leakage per event = 1.0609 MeV rms = 2.9094 MeV - - total energy: Edep + Eleak = 12.11 MeV + total energy: Edep + Eleak = 12.103 MeV List of particles at creation : - Be8[3030.000]: 15 Emean = 7.6597 keV ( 1.7427 keV --> 11.702 keV) mean life = 0 ps - Li6: 47 Emean = 1.7213 MeV ( 244.36 keV --> 4.0596 MeV) stable - Li7: 179900 Emean = 308.25 keV ( 2.0831 meV --> 6.2241 MeV) stable - Li8: 15 Emean = 292.72 eV ( 10.399 eV --> 863.97 eV ) mean life = 1.2117 s - alpha: 8088 Emean = 2.7437 MeV ( 3.9355 keV --> 8.8316 MeV) stable - anti_nu_e: 15 Emean = 7.9832 MeV ( 5.1073 MeV --> 11.127 MeV) stable - e-: 40388 Emean = 27.44 keV ( 100 eV --> 7.8585 MeV) stable - gamma: 2673 Emean = 485.74 keV ( 458.14 keV --> 2.0431 MeV) stable - neutron: 16560 Emean = 3.5788 MeV ( 4.0149 keV --> 14.097 MeV) mean life = 14.67 min - triton: 8052 Emean = 3.9336 MeV ( 7.3962 keV --> 10.253 MeV) mean life = 12.32 y + Be8[3030.000]: 24 Emean = 6.8652 keV ( 1.3565 keV --> 12.031 keV) mean life = 0 ps + Be9: 1 Emean = 2.9094 MeV ( 2.9094 MeV --> 2.9094 MeV) stable + Li6: 50 Emean = 1.539 MeV ( 138.04 keV --> 3.3473 MeV) stable + Li7: 178871 Emean = 304.11 keV ( 0.35712 meV --> 6.2225 MeV) stable + Li8: 24 Emean = 2.6424 keV ( 6.9729 eV --> 21.75 keV) mean life = 1.2117 s + alpha: 8236 Emean = 2.7417 MeV ( 2.6404 keV --> 9.6881 MeV) stable + anti_nu_e: 24 Emean = 6.167 MeV ( 1.4391 MeV --> 11.932 MeV) stable + e+: 1 Emean = 211.75 keV ( 211.75 keV --> 211.75 keV) stable + e-: 38492 Emean = 29.982 keV ( 100.02 eV --> 11.527 MeV) stable + gamma: 2568 Emean = 489.31 keV ( 458.45 keV --> 2.0324 MeV) stable + neutron: 16308 Emean = 3.5394 MeV ( 4.2641 keV --> 14.093 MeV) mean life = 14.67 min + triton: 8168 Emean = 3.9543 MeV ( 18.185 keV --> 10.243 MeV) mean life = 17.774 y List of particles emerging from the absorber : - anti_nu_e: 15 Emean = 7.9832 MeV ( 5.1073 MeV --> 11.127 MeV) Eleak/event = 11.975 keV - gamma: 1850 Emean = 143.13 keV ( 11.746 keV --> 2.0324 MeV) Eleak/event = 26.48 keV - neutron: 10038 Emean = 1.0186 MeV ( 18.784 meV --> 14.1 MeV) Eleak/event = 1.0225 MeV + anti_nu_e: 24 Emean = 6.167 MeV ( 1.4391 MeV --> 11.932 MeV) Eleak/event = 14.801 keV + e-: 1 Emean = 4.8459 MeV ( 4.8459 MeV --> 4.8459 MeV) Eleak/event = 484.59 eV + gamma: 1778 Emean = 148.68 keV ( 12.633 keV --> 2.0324 MeV) Eleak/event = 26.436 keV + neutron: 10047 Emean = 1.0103 MeV ( 20.236 meV --> 14.1 MeV) Eleak/event = 1.0151 MeV --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1592173356, 237181160 + Current couple of seeds = 694179371, 1671448937 ---------------------------------------- G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 11 of which, static: 0 -Dynamic pools deleted: 11 / Total memory freed: 0.059 MB +Dynamic pools deleted: 11 / Total memory freed: 0.058 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/hadronic/Hadr07/hadr07.out b/examples/extended/hadronic/Hadr07/hadr07.out index f0543de3a1..65ff8c1202 100644 --- a/examples/extended/hadronic/Hadr07/hadr07.out +++ b/examples/extended/hadronic/Hadr07/hadr07.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -60,6 +60,7 @@ min MeanLife (from G4NuclideTable) 1 ns Max life time (from G4DeexPrecoParameters) 1 ns Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 0 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 0 @@ -475,7 +476,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=4.250000s Real=4.755143s Sys=0.000000s + User=4.930000s Real=4.975338s Sys=0.000000s ======================== run summary ===================== @@ -483,38 +484,39 @@ Run Summary 1 30 cm of Li7 (density: 1.85 g/cm3 ) Process calls frequency : - NoProcess= 99602 Radioactivation= 172 Rayl= 2219 - Transportation= 56886 compt= 77809 eBrem= 89 - eIoni= 94993 hIoni= 168 hadElastic= 86255 - ionIoni= 100077 msc= 70 nCapture= 2 - neutronInelastic= 14181 phot= 679 + NoProcess= 100918 Radioactivation= 139 Rayl= 2304 + Transportation= 57242 compt= 78867 eBrem= 99 + eIoni= 95985 hIoni= 135 hadElastic= 87440 + ionElastic= 1 ionIoni= 163253 msc= 85 + nCapture= 2 neutronInelastic= 14335 phot= 694 - Edep in absorber 1 = 5.99 MeV (8.37 keV-->23.3 MeV) + + Edep in absorber 1 = 5.98 MeV (2.15 keV-->15.1 MeV) List of created particles in absorber 1: - Be8[3030.000]: 2 Emean = 9.51 keV ( 8.92 keV --> 10.1 keV) mean life = 0 ps - He6: 168 Emean = 1.3 MeV ( 954 keV --> 1.34 MeV) mean life = 1.16 s - Li6: 168 Emean = 794 eV ( 29.2 eV --> 1.4 keV) stable - Li7: 99434 Emean = 559 keV ( 57.3 meV --> 6.22 MeV) stable - Li8: 2 Emean = 12.5 keV ( 8.42 keV --> 16.7 keV) mean life = 1.21 s - alpha: 298 Emean = 1.15 MeV ( 80 keV --> 3.81 MeV) stable - anti_nu_e: 170 Emean = 2.05 MeV ( 254 keV --> 9.99 MeV) stable - deuteron: 168 Emean = 433 keV ( 319 keV --> 447 keV) stable - e-: 77454 Emean = 47.3 keV ( 100 eV --> 9.15 MeV) stable - gamma: 13271 Emean = 475 keV ( 1.54 keV --> 2.14 MeV) stable - neutron: 14848 Emean = 3.63 MeV ( 2.85 keV --> 13.6 MeV) mean life = 14.7 min + Be8[3030.000]: 2 Emean = 10.1 keV ( 8.4 keV --> 11.8 keV) mean life = 0 ps + He6: 135 Emean = 1.29 MeV ( 1.01 MeV --> 1.34 MeV) mean life = 1.16 s + Li6: 135 Emean = 807 eV ( 31.7 eV --> 1.34 keV) stable + Li7: 100783 Emean = 552 keV ( 73.1 meV --> 6.19 MeV) stable + Li8: 2 Emean = 889 keV ( 14.9 keV --> 1.76 MeV) mean life = 1.21 s + alpha: 310 Emean = 1.12 MeV ( 130 keV --> 4.12 MeV) stable + anti_nu_e: 137 Emean = 2.1 MeV ( 443 keV --> 9.11 MeV) stable + deuteron: 135 Emean = 431 keV ( 339 keV --> 447 keV) stable + e-: 78491 Emean = 46.7 keV ( 100 eV --> 5.45 MeV) stable + gamma: 13441 Emean = 475 keV ( 1.58 keV --> 12.3 MeV) stable + neutron: 15058 Emean = 3.61 MeV ( 15 keV --> 13.6 MeV) mean life = 14.7 min List of particles emerging from absorbers : - anti_nu_e: 170 Emean = 2.05 MeV ( 254 keV --> 9.99 MeV) - e-: 16 Emean = 453 keV ( 56.1 keV --> 2.26 MeV) - gamma: 12592 Emean = 231 keV ( 9.79 keV --> 981 keV) - neutron: 10665 Emean = 2.23 MeV ( 757 meV --> 14.1 MeV) + anti_nu_e: 137 Emean = 2.1 MeV ( 443 keV --> 9.11 MeV) + e-: 16 Emean = 278 keV ( 30.6 keV --> 1.65 MeV) + gamma: 12747 Emean = 231 keV ( 8.1 keV --> 12.3 MeV) + neutron: 10721 Emean = 2.19 MeV ( 3.08 eV --> 14.1 MeV) - Nb of events with primary absorbed = 87 %, transmit = 7 %, reflected = 6.1 % + Nb of events with primary absorbed = 87 %, transmit = 6.8 %, reflected = 6.2 % --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1176989738, 551011292 + Current couple of seeds = 285070795, 1106169631 ---------------------------------------- G4 kernel has come to Quit state. ================== Deleting memory pools =================== diff --git a/examples/extended/hadronic/Hadr08/Hadr08.cc b/examples/extended/hadronic/Hadr08/Hadr08.cc index f3111840da..ac125f4fb9 100644 --- a/examples/extended/hadronic/Hadr08/Hadr08.cc +++ b/examples/extended/hadronic/Hadr08/Hadr08.cc @@ -69,8 +69,6 @@ int main( int argc, char** argv ) { runManager->SetUserInitialization( physicsList ); runManager->SetUserInitialization( new ActionInitialization ); - runManager->Initialize(); - if ( ui ) { ui->SessionStart(); delete ui; diff --git a/examples/extended/hadronic/Hadr08/History b/examples/extended/hadronic/Hadr08/History index 80056d6263..7d20295399 100644 --- a/examples/extended/hadronic/Hadr08/History +++ b/examples/extended/hadronic/Hadr08/History @@ -5,6 +5,17 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-09-07 Vladimir Ivanchenko (exhadr08-V11-00-02) +- BiasingOperation - used the Bertini cascade instead of pre-compound + model, the last was not applicable for pion interactions. The Bertini + cascade is applied from 0 to 41 MeV, INCLXX from 40 MeV to 12 GeV + +## 2022-09-05 Vladimir Ivanchenko (exhadr08-V11-00-01) +- BiasingOperation - transition from pre-compound model to INCL++ + is changed from 1-2 MeV to 20-21 MeV in order to fix infinite + loops happens in nightly tests +- Hadr08.cc - run initialisation is moved to macro files + ## 2021-12-10 Ben Morgan (exhadr08-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/hadronic/Hadr08/hadr08.in b/examples/extended/hadronic/Hadr08/hadr08.in index 3bbb2241ea..b638178b91 100644 --- a/examples/extended/hadronic/Hadr08/hadr08.in +++ b/examples/extended/hadronic/Hadr08/hadr08.in @@ -1,3 +1,6 @@ +/run/verbose 1 +/run/numberOfThreads 4 +/run/initialize /gun/particle pi+ /gun/energy 5.0 GeV /run/beamOn 100 diff --git a/examples/extended/hadronic/Hadr08/hadr08.out b/examples/extended/hadronic/Hadr08/hadr08.out index 53fd4f43f4..9f51a4e54f 100644 --- a/examples/extended/hadronic/Hadr08/hadr08.out +++ b/examples/extended/hadronic/Hadr08/hadr08.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -21,16 +21,12 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo <<< Geant4 Physics List simulation engine: FTFP_BERT +*** /run/numberOfThreads command is issued in sequential mode. +Command is ignored. DetectorConstruction.... -================================================================================ - INCL++ WARNING -INCL++/G4ExcitationHandler could not use its own level-density parameter for fission -================================================================================ - - ================================================================================ INCL++ WARNING INCL++/G4ExcitationHandler could not use its own level-density parameter for fission @@ -53,6 +49,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -80,7 +77,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -131,8 +128,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -614,6 +611,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -877,77 +879,47 @@ Store e- internal conversion data 0 Correlated gamma emission flag 0 Max 2J for sampling of angular correlations 10 ======================================================================= -======================================================================= -====== Pre-compound/De-excitation Physics Parameters ======== -======================================================================= -Type of pre-compound inverse x-section 3 -Pre-compound model active 1 -Pre-compound excitation low energy 100 keV -Pre-compound excitation high energy 30 MeV -Type of de-excitation inverse x-section 3 -Type of de-excitation factory Evaporation+GEM -Number of de-excitation channels 68 -Min excitation energy 10 eV -Min energy per nucleon for multifragmentation 200 GeV -Limit excitation energy for Fermi BreakUp 20 MeV -Level density (1/MeV) 0.075 -Use simple level density model 1 -Use discrete excitation energy of the residual 1 -Time limit for long lived isomeres 1 ns -Isomer production flag 1 -Internal e- conversion flag 1 -Store e- internal conversion data 0 -Correlated gamma emission flag 0 -Max 2J for sampling of angular correlations 10 -======================================================================= -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50112-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si29 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] Warning: maximum number of tries exceeded for the proposed 6.50089-MeV pi- + Si28 inelastic reaction, in direct kinematics. -[INCL++] INCL++ has already emitted 50 warnings and will emit no more. + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_AIR + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes + Material : G4_Si + Range cuts : gamma 10 cm e- 10 cm e+ 10 cm proton 10 cm + Energy thresholds : gamma 72.7508 keV e- 49.9671 MeV e+ 46.9556 MeV proton 10 MeV + Region(s) which use this couple : + Tracker_region + +Index : 2 used in the geometry : Yes + Material : G4_CESIUM_IODIDE + Range cuts : gamma 20 cm e- 20 cm e+ 20 cm proton 20 cm + Energy thresholds : gamma 1.28343 MeV e- 256.866 MeV e+ 240.813 MeV proton 20 MeV + Region(s) which use this couple : + EM_calo_region + +Index : 3 used in the geometry : Yes + Material : G4_Fe + Range cuts : gamma 50 cm e- 50 cm e+ 50 cm proton 50 cm + Energy thresholds : gamma 9.54965 GeV e- 5.18966 GeV e+ 4.89888 GeV proton 50 MeV + Region(s) which use this couple : + HAD_calo_region + +================================================================== + +### Run 0 starts. + Run terminated. +Run Summary + Number of events processed : 100 + User=5.860000s Real=5.928715s Sys=0.010000s +G4 kernel has come to Quit state. +================== Deleting memory pools =================== +Number of memory pools allocated: 13 of which, static: 0 +Dynamic pools deleted: 13 / Total memory freed: 0.2 MB +============================================================ +RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/hadronic/Hadr08/src/BiasingOperation.cc b/examples/extended/hadronic/Hadr08/src/BiasingOperation.cc index ebf9e0cc92..4a2bc9170c 100644 --- a/examples/extended/hadronic/Hadr08/src/BiasingOperation.cc +++ b/examples/extended/hadronic/Hadr08/src/BiasingOperation.cc @@ -41,8 +41,7 @@ #include "G4ExcitedStringDecay.hh" #include "G4GeneratorPrecompoundInterface.hh" #include "G4TheoFSGenerator.hh" -#include "G4HadronicInteractionRegistry.hh" -#include "G4VPreCompoundModel.hh" +#include "G4CascadeInterface.hh" #include "G4INCLXXInterface.hh" #include "G4BGGNucleonInelasticXS.hh" #include "G4NeutronInelasticXS.hh" @@ -59,15 +58,14 @@ BiasingOperation::BiasingOperation( G4String name ) : G4VBiasingOperation( name fNeutronInelasticProcess = new G4HadronInelasticProcess( "neutronInelastic", G4Neutron::Definition() ); fPionPlusInelasticProcess = - new G4HadronInelasticProcess( "pi+Inelastic", G4PionPlus::Definition() ); + new G4HadronInelasticProcess( "pi+Inelastic", G4PionPlus::Definition() ); fPionMinusInelasticProcess = new G4HadronInelasticProcess( "pi-Inelastic", G4PionMinus::Definition() ); // Set the energy ranges - const G4double minPreco = 0.0; - const G4double maxPreco = 2.0 * CLHEP::MeV; - const G4double maxBERT = 12.0 * CLHEP::GeV; - const G4double minINCLXX = 1.0 * CLHEP::MeV; + const G4double maxBERT = 41.0 * CLHEP::MeV; + const G4double maxINCLXX = 12.0 * CLHEP::GeV; + const G4double minINCLXX = 40.0 * CLHEP::MeV; const G4double minFTFP = 3.0 * CLHEP::GeV; const G4double maxFTFP = G4HadronicParameters::Instance()->GetMaxEnergy(); @@ -87,32 +85,30 @@ BiasingOperation::BiasingOperation( G4String name ) : G4VBiasingOperation( name theHighEnergyModel->SetTransport( thePrecoInterface ); theHighEnergyModel->SetMinEnergy( minFTFP ); theHighEnergyModel->SetMaxEnergy( maxFTFP ); - // Preco : create a new model to be used only for INCLXX for nucleons - G4VPreCompoundModel* thePreCompoundModel = new G4PreCompoundModel; - thePreCompoundModel->SetMinEnergy( minPreco ); - thePreCompoundModel->SetMaxEnergy( maxPreco ); + // Bertini : create a new model to be used below INCLXX limit + G4CascadeInterface* theBertiniModel = new G4CascadeInterface(); + theBertiniModel->SetMinEnergy( 0.0 ); + theBertiniModel->SetMaxEnergy( maxBERT ); // --- Preco --- // --- INCLXX model --- // The instance for nucleons: - G4INCLXXInterface* theInclxxModel = new G4INCLXXInterface( thePreCompoundModel ); + G4INCLXXInterface* theInclxxModel = new G4INCLXXInterface(); theInclxxModel->SetMinEnergy( minINCLXX ); - theInclxxModel->SetMaxEnergy( maxBERT ); // Use the same as for Bertini - // The instance for pions: - G4INCLXXInterface* theInclxxModel_forPions = new G4INCLXXInterface; - theInclxxModel_forPions->SetMinEnergy( minPreco ); - theInclxxModel_forPions->SetMaxEnergy( maxBERT ); // Use the same as for Bertini + theInclxxModel->SetMaxEnergy( maxINCLXX ); // Use the same as for FTFP_BERT // Register the models fProtonInelasticProcess->RegisterMe( theHighEnergyModel ); fProtonInelasticProcess->RegisterMe( theInclxxModel ); - fProtonInelasticProcess->RegisterMe( thePreCompoundModel ); + fProtonInelasticProcess->RegisterMe( theBertiniModel ); fNeutronInelasticProcess->RegisterMe( theHighEnergyModel ); fNeutronInelasticProcess->RegisterMe( theInclxxModel ); - fNeutronInelasticProcess->RegisterMe( thePreCompoundModel ); + fNeutronInelasticProcess->RegisterMe( theBertiniModel ); fPionPlusInelasticProcess->RegisterMe( theHighEnergyModel ); - fPionPlusInelasticProcess->RegisterMe( theInclxxModel_forPions ); + fPionPlusInelasticProcess->RegisterMe( theInclxxModel ); + fPionPlusInelasticProcess->RegisterMe( theBertiniModel ); fPionMinusInelasticProcess->RegisterMe( theHighEnergyModel ); - fPionMinusInelasticProcess->RegisterMe( theInclxxModel_forPions ); + fPionMinusInelasticProcess->RegisterMe( theInclxxModel ); + fPionMinusInelasticProcess->RegisterMe( theBertiniModel ); G4VCrossSectionDataSet* theProtonXSdata = new G4BGGNucleonInelasticXS( G4Proton::Definition() ); theProtonXSdata->BuildPhysicsTable( *(G4Proton::Definition()) ); diff --git a/examples/extended/hadronic/Hadr09/Hadr09.cc b/examples/extended/hadronic/Hadr09/Hadr09.cc index d52cba66d9..c82915ceab 100644 --- a/examples/extended/hadronic/Hadr09/Hadr09.cc +++ b/examples/extended/hadronic/Hadr09/Hadr09.cc @@ -88,6 +88,7 @@ #include "G4IonTable.hh" #include "CLHEP/Random/Randomize.h" #include "CLHEP/Random/Ranlux64Engine.h" +#include "G4HadronicParameters.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -95,6 +96,9 @@ int main( int , char** ) { G4cout << "=== Test of the HadronicGenerator ===" << G4endl; + // Enable light hypernuclei and anti-hypernuclei + G4HadronicParameters::Instance()->SetEnableHyperNuclei( true ); + // See the HadronicGenerator class for the possibilities and meaning of the "physics cases". // ( In short, it is the name of the Geant4 hadronic model used for the simulation of // the collision, with the possibility of having a transition between two models in @@ -125,7 +129,9 @@ int main( int , char** ) { const G4int printingGap = 100; //***LOOKHERE*** GAP IN PRINTING // Vector of Geant4 names of hadron projectiles: one of this will be sampled randomly - // (with uniform probability) for each collision, when the projectile is not an ion. + // (with uniform probability) for each collision, when the projectile is not a generic ion + // (note that the 6 light hypernuclei and anti-hypernuclei are treated here as for the + // other hadrons, not as generic ions). // Note: comment out the corresponding line in order to exclude a particle. std::vector< G4String > vecProjectiles; //***LOOKHERE*** POSSIBLE HADRON PROJECTILES vecProjectiles.push_back( "pi-" ); @@ -163,53 +169,86 @@ int main( int , char** ) { vecProjectiles.push_back( "anti_triton" ); vecProjectiles.push_back( "anti_He3" ); vecProjectiles.push_back( "anti_alpha" ); - // Charm and bottom hadrons - vecProjectiles.push_back( "D+" ); - vecProjectiles.push_back( "D-" ); - vecProjectiles.push_back( "D0" ); - vecProjectiles.push_back( "anti_D0" ); - vecProjectiles.push_back( "Ds+" ); - vecProjectiles.push_back( "Ds-" ); - //Note: vecProjectiles.push_back( "etac" ); // Excluded because too short-lived - //Note: vecProjectiles.push_back( "J/psi" ); // Excluded because too short-lived - vecProjectiles.push_back( "B+" ); - vecProjectiles.push_back( "B-" ); - vecProjectiles.push_back( "B0" ); - vecProjectiles.push_back( "anti_B0" ); - vecProjectiles.push_back( "Bs0" ); - vecProjectiles.push_back( "anti_Bs0" ); - vecProjectiles.push_back( "Bc+" ); - vecProjectiles.push_back( "Bc-" ); - //Note: vecProjectiles.push_back( "Upsilon" ); // Excluded because too short-lived - vecProjectiles.push_back( "lambda_c+" ); - vecProjectiles.push_back( "anti_lambda_c+" ); - //Note: vecProjectiles.push_back( "sigma_c+" ); // Excluded because too short-lived - //Note: vecProjectiles.push_back( "anti_sigma_c+" ); // Excluded because too short-lived - //Note: vecProjectiles.push_back( "sigma_c0" ); // Excluded because too short-lived - //Note: vecProjectiles.push_back( "anti_sigma_c0" ); // Excluded because too short-lived - //Note: vecProjectiles.push_back( "sigma_c++" ); // Excluded because too short-lived - //Note: vecProjectiles.push_back( "anti_sigma_c++" ); // Excluded because too short-lived - vecProjectiles.push_back( "xi_c+" ); - vecProjectiles.push_back( "anti_xi_c+" ); - vecProjectiles.push_back( "xi_c0" ); - vecProjectiles.push_back( "anti_xi_c0" ); - vecProjectiles.push_back( "omega_c0" ); - vecProjectiles.push_back( "anti_omega_c0" ); - vecProjectiles.push_back( "lambda_b" ); - vecProjectiles.push_back( "anti_lambda_b" ); - //Note: vecProjectiles.push_back( "sigma_b+" ); // Excluded because too short-lived - //Note: vecProjectiles.push_back( "anti_sigma_b+" ); // Excluded because too short-lived - //Note: vecProjectiles.push_back( "sigma_b0" ); // Excluded because too short-lived - //Note: vecProjectiles.push_back( "sigma_b0" ); // Excluded because too short-lived - //Note: vecProjectiles.push_back( "sigma_b-" ); // Excluded because too short-lived - //Note: vecProjectiles.push_back( "anti_sigma_b-" ); // Excluded because too short-lived - vecProjectiles.push_back( "xi_b0" ); - vecProjectiles.push_back( "anti_xi_b0" ); - vecProjectiles.push_back( "xi_b-" ); - vecProjectiles.push_back( "anti_xi_b-" ); - vecProjectiles.push_back( "omega_b-" ); - vecProjectiles.push_back( "anti_omega_b-" ); + // Only FTFP and QGSP can handle nuclear interaction of charm and bottom hadrons + if ( namePhysics == "FTFP_BERT" || namePhysics == "FTFP_BERT_ATL" || + namePhysics == "QGSP_BERT" || namePhysics == "QGSP_BIC" || + namePhysics == "FTFP" || namePhysics == "QGSP" ) { + // Charm and bottom hadrons + vecProjectiles.push_back( "D+" ); + vecProjectiles.push_back( "D-" ); + vecProjectiles.push_back( "D0" ); + vecProjectiles.push_back( "anti_D0" ); + vecProjectiles.push_back( "Ds+" ); + vecProjectiles.push_back( "Ds-" ); + //Note: vecProjectiles.push_back( "etac" ); // Excluded because too short-lived + //Note: vecProjectiles.push_back( "J/psi" ); // Excluded because too short-lived + vecProjectiles.push_back( "B+" ); + vecProjectiles.push_back( "B-" ); + vecProjectiles.push_back( "B0" ); + vecProjectiles.push_back( "anti_B0" ); + vecProjectiles.push_back( "Bs0" ); + vecProjectiles.push_back( "anti_Bs0" ); + vecProjectiles.push_back( "Bc+" ); + vecProjectiles.push_back( "Bc-" ); + //Note: vecProjectiles.push_back( "Upsilon" ); // Excluded because too short-lived + vecProjectiles.push_back( "lambda_c+" ); + vecProjectiles.push_back( "anti_lambda_c+" ); + //Note: vecProjectiles.push_back( "sigma_c+" ); // Excluded because too short-lived + //Note: vecProjectiles.push_back( "anti_sigma_c+" ); // Excluded because too short-lived + //Note: vecProjectiles.push_back( "sigma_c0" ); // Excluded because too short-lived + //Note: vecProjectiles.push_back( "anti_sigma_c0" ); // Excluded because too short-lived + //Note: vecProjectiles.push_back( "sigma_c++" ); // Excluded because too short-lived + //Note: vecProjectiles.push_back( "anti_sigma_c++" ); // Excluded because too short-lived + vecProjectiles.push_back( "xi_c+" ); + vecProjectiles.push_back( "anti_xi_c+" ); + vecProjectiles.push_back( "xi_c0" ); + vecProjectiles.push_back( "anti_xi_c0" ); + vecProjectiles.push_back( "omega_c0" ); + vecProjectiles.push_back( "anti_omega_c0" ); + vecProjectiles.push_back( "lambda_b" ); + vecProjectiles.push_back( "anti_lambda_b" ); + //Note: vecProjectiles.push_back( "sigma_b+" ); // Excluded because too short-lived + //Note: vecProjectiles.push_back( "anti_sigma_b+" ); // Excluded because too short-lived + //Note: vecProjectiles.push_back( "sigma_b0" ); // Excluded because too short-lived + //Note: vecProjectiles.push_back( "sigma_b0" ); // Excluded because too short-lived + //Note: vecProjectiles.push_back( "sigma_b-" ); // Excluded because too short-lived + //Note: vecProjectiles.push_back( "anti_sigma_b-" ); // Excluded because too short-lived + vecProjectiles.push_back( "xi_b0" ); + vecProjectiles.push_back( "anti_xi_b0" ); + vecProjectiles.push_back( "xi_b-" ); + vecProjectiles.push_back( "anti_xi_b-" ); + vecProjectiles.push_back( "omega_b-" ); + vecProjectiles.push_back( "anti_omega_b-" ); + } + + // If the hadronic interactions of light hypernuclei and anti-hypernuclei + // are swtiched on, then only FTFP and INCL can handle the nuclear interactions + // of light hypernuclei, and only FTFP is capable of handling the nuclear + // interactions of light anti-hypernuclei. + if ( G4HadronicParameters::Instance()->EnableHyperNuclei() ) { + if ( namePhysics == "FTFP_BERT" || namePhysics == "FTFP_INCLXX" || + namePhysics == "FTFP" || namePhysics == "INCL" ) { + // Light hypernuclei + vecProjectiles.push_back( "hypertriton" ); + vecProjectiles.push_back( "hyperalpha" ); + vecProjectiles.push_back( "hyperH4" ); + vecProjectiles.push_back( "doublehyperH4" ); + vecProjectiles.push_back( "doublehyperdoubleneutron" ); + vecProjectiles.push_back( "hyperHe5" ); + } + if ( namePhysics == "FTFP_BERT" || namePhysics == "FTFP_INCLXX" || + namePhysics == "FTFP" ) { + // Light anti-hypernuclei + vecProjectiles.push_back( "anti_hypertriton" ); + vecProjectiles.push_back( "anti_hyperalpha" ); + vecProjectiles.push_back( "anti_hyperH4" ); + vecProjectiles.push_back( "anti_doublehyperH4" ); + vecProjectiles.push_back( "anti_doublehyperdoubleneutron" ); + vecProjectiles.push_back( "anti_hyperHe5" ); + } + } + G4ParticleDefinition* projectileNucleus = nullptr; G4GenericIon* gion = G4GenericIon::GenericIon(); gion->SetProcessManager( new G4ProcessManager( gion ) ); @@ -219,7 +258,7 @@ int main( int , char** ) { ions->CreateAllIon(); ions->CreateAllIsomer(); - const G4bool isProjectileIon = false; //***LOOKHERE*** HADRON (false) OR ION (true) PROJECTILE ? + const G4bool isProjectileIon = false; //***LOOKHERE*** HADRON (false) OR ION (true) PROJECTILE? if ( isProjectileIon ) { minEnergy = 40.0*13.0*CLHEP::GeV; //***LOOKHERE*** ION PROJECTILE MIN Ekin maxEnergy = 40.0*13.0*CLHEP::GeV; //***LOOKHERE*** ION PROJECTILE MAX Ekin @@ -256,7 +295,7 @@ int main( int , char** ) { << "Number of collisions: " << numCollisions << G4endl << "Number of hadron projectiles: " << numProjectiles << G4endl << "Number of materials: " << numMaterials << G4endl - << "IsIonProjectile: " << ( projectileNucleus != nullptr ? "true \t" : "false" ) + << "IsIonProjectile: " << ( projectileNucleus != nullptr ? "true \t" : "false" ) << ( projectileNucleus != nullptr ? projectileNucleus->GetParticleName() : "") << G4endl << "===================================================" << G4endl << G4endl; @@ -296,8 +335,8 @@ int main( int , char** ) { if ( projectileEnergy <= 0.0 ) projectileEnergy = minEnergy; // Sample the projectile direction normalization = 1.0 / std::sqrt( rnd2*rnd2 + rnd3*rnd3 + rnd4*rnd4 ); - const G4bool isOnSmearingDirection = true ; //***LOOKHERE*** IF true THEN SMEAR DIRECTION - G4ThreeVector aDirection = G4ThreeVector( 0.0, 0.0, 1.0 ); //***LOOKHERE*** ELSE USE THIS FIXED DIRECTION + const G4bool isOnSmearingDirection = true ; //***LOOKHERE*** + G4ThreeVector aDirection = G4ThreeVector( 0.0, 0.0, 1.0 ); //***LOOKHERE*** if ( isOnSmearingDirection ) { aDirection = G4ThreeVector( normalization*rnd2, normalization*rnd3, normalization*rnd4 ); } @@ -322,7 +361,7 @@ int main( int , char** ) { G4cout << "\t Collision " << i << " ; projectile=" << nameProjectile; if ( projectileNucleus ) { G4cout << " ; Ekin[MeV]/nucleon=" << projectileEnergy / - static_cast< G4double >( std::abs( projectileNucleus->GetBaryonNumber() ) ); + static_cast< G4double >( std::abs( projectileNucleus->GetBaryonNumber() ) ); } else { G4cout << " ; Ekin[MeV]=" << projectileEnergy; } @@ -338,9 +377,11 @@ int main( int , char** ) { if ( isPrintingEnabled ) { G4cout << G4endl << "\t --> #secondaries=" << nsec << " ; impactParameter[fm]=" << theHadronicGenerator->GetImpactParameter() / fermi - << " ; #projectileSpectatorNucleons=" << theHadronicGenerator->GetNumberOfProjectileSpectatorNucleons() - << " ; #targetSpectatorNucleons=" << theHadronicGenerator->GetNumberOfTargetSpectatorNucleons() - << " ; #NNcollisions=" << theHadronicGenerator->GetNumberOfNNcollisions() << G4endl; + << " ; #projectileSpectatorNucleons=" + << theHadronicGenerator->GetNumberOfProjectileSpectatorNucleons() + << " ; #targetSpectatorNucleons=" + << theHadronicGenerator->GetNumberOfTargetSpectatorNucleons() + << " ; #NNcollisions=" << theHadronicGenerator->GetNumberOfNNcollisions() << G4endl; if ( i % printingGap == 0 ) { isPrintingOfSecondariesEnabled = true; G4cout << "\t \t List of produced secondaries: " << G4endl; diff --git a/examples/extended/hadronic/Hadr09/History b/examples/extended/hadronic/Hadr09/History index a9fe19295c..23f0db36f0 100644 --- a/examples/extended/hadronic/Hadr09/History +++ b/examples/extended/hadronic/Hadr09/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-17 Alberto Ribon (exhadr09-V11-00-01) +- Hadr09, HadronicGenerator : extended to hypernuclei and anti-hypernuclei + ## 2021-12-10 Ben Morgan (exhadr09-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/hadronic/Hadr09/hadr09.out b/examples/extended/hadronic/Hadr09/hadr09.out index 0593b64881..33654001a5 100644 --- a/examples/extended/hadronic/Hadr09/hadr09.out +++ b/examples/extended/hadronic/Hadr09/hadr09.out @@ -4,13 +4,13 @@ Model: FTFP_BERT Ekin: [ 1 , 30 ] GeV Number of collisions: 1000 -Number of hadron projectiles: 60 +Number of hadron projectiles: 72 Number of materials: 11 IsIonProjectile: false =================================================== - Initial seed = 1656510489 + Initial seed = 1670382253 ================================================================================ @@ -18,7 +18,7 @@ IsIonProjectile: false INCL++/G4ExcitationHandler could not use its own level-density parameter for fission ================================================================================ - Collision 0 projectile=xi_b0 Ekin[MeV]=11593.4 direction=(0.230908,0.704513,0.671076) material=G4_Fe======================================================================= + Collision 0 projectile=anti_lambda Ekin[MeV]=9765.96 direction=(0.40244,0.621687,0.671972) material=G4_W======================================================================= ====== Pre-compound/De-excitation Physics Parameters ======== ======================================================================= Type of pre-compound inverse x-section 3 @@ -42,119 +42,120 @@ Correlated gamma emission flag 0 Max 2J for sampling of angular correlations 10 ======================================================================= - --> #secondaries=12 impactParameter[fm]=2.18746 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=2 + --> #secondaries=51 impactParameter[fm]=1.30153 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=177 #NNcollisions=3 List of produced secondaries: - j=0 sigma_b- p=(1903.36,6059.93,6063.1310532.2) MeV - j=1 sigma0 p=(70.9896,283.485,274.4921258.23) MeV - j=2 proton p=(-328.367,984.351,122.5021404.33) MeV - j=3 pi+ p=(167.318,243.993,218.697393.492) MeV - j=4 proton p=(1607.76,4183.64,4585.296480.2) MeV - j=5 neutron p=(-154.755,-123.809,42.0691961.161) MeV - j=6 Sc45[12.400] p=(531.282,-85.0083,-577.38641872.9) MeV - j=7 proton p=(51.0542,-134.265,78.153952.416) MeV - j=8 alpha p=(-71.0141,30.037,197.1833733.39) MeV - j=9 neutron p=(-19.5058,99.6819,6.6414945.063) MeV - j=10 neutron p=(28.6327,6.07658,-10.4449940.079) MeV - j=11 gamma p=(-1.56434,0.74723,0.4130731.78217) MeV - Collision 1 projectile=anti_sigma- Ekin[MeV]=22241.4 direction=(0.58389,0.56762,0.580414) material=G4_Pb - --> #secondaries=5 impactParameter[fm]=6.63427 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=205 #NNcollisions=0 - Collision 2 projectile=anti_D0 Ekin[MeV]=10344.9 direction=(0.27666,0.243361,0.929642) material=G4_Al - --> #secondaries=7 impactParameter[fm]=3.47682 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 3 projectile=omega_c0 Ekin[MeV]=6908.12 direction=(0.65172,0.754357,0.0787851) material=G4_Cu - --> #secondaries=18 impactParameter[fm]=3.10077 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=1 - Collision 4 projectile=omega_b- Ekin[MeV]=17397.6 direction=(0.236806,0.765041,0.598862) material=G4_W - --> #secondaries=21 impactParameter[fm]=5.6207 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=1 - Collision 5 projectile=Ds+ Ekin[MeV]=13861.4 direction=(0.521461,0.436504,0.733173) material=G4_Al - --> #secondaries=14 impactParameter[fm]=5.80534 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 6 projectile=pi+ Ekin[MeV]=16663.7 direction=(0.389661,0.00714303,0.920931) material=G4_Cu - --> #secondaries=39 impactParameter[fm]=1.32745 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=59 #NNcollisions=3 - Collision 7 projectile=Ds+ Ekin[MeV]=17646 direction=(0.779251,0.626282,0.0231978) material=G4_H - --> #secondaries=2 impactParameter[fm]=0.706016 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 8 projectile=anti_xi_b0 Ekin[MeV]=15568.7 direction=(0.191367,0.921477,0.338021) material=G4_Fe - --> #secondaries=31 impactParameter[fm]=2.80469 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=49 #NNcollisions=3 - Collision 9 projectile=lambda_c+ Ekin[MeV]=4397.47 direction=(0.615669,0.767444,0.178833) material=G4_Si - --> #secondaries=19 impactParameter[fm]=1.92328 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 10 projectile=anti_xi- Ekin[MeV]=26491.3 direction=(0.0211258,0.942619,0.333201) material=G4_Pb - --> #secondaries=31 impactParameter[fm]=7.33128 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=1 - Collision 11 projectile=lambda_c+ Ekin[MeV]=10363.1 direction=(0.0417326,0.764537,0.643227) material=G4_Fe - --> #secondaries=25 impactParameter[fm]=0.203664 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=3 - Collision 12 projectile=D+ Ekin[MeV]=4947.58 direction=(0.116006,0.124116,0.985463) material=G4_Pb - --> #secondaries=28 impactParameter[fm]=5.58193 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=2 - Collision 13 projectile=anti_xi_b- Ekin[MeV]=2162.25 direction=(0.946544,0.296646,0.12671) material=G4_H - --> #secondaries=2 impactParameter[fm]=0.493069 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=0 - Collision 14 projectile=sigma- Ekin[MeV]=13982.1 direction=(0.121319,0.984939,0.123191) material=G4_Si - --> #secondaries=27 impactParameter[fm]=2.24839 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 15 projectile=lambda Ekin[MeV]=22967.4 direction=(0.225839,0.974163,0.0018026) material=G4_Fe - --> #secondaries=49 impactParameter[fm]=1.79332 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=3 - Collision 16 projectile=kaon+ Ekin[MeV]=15018.7 direction=(0.935049,0.0205283,0.353925) material=G4_W - --> #secondaries=34 impactParameter[fm]=6.39126 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=180 #NNcollisions=2 - Collision 17 projectile=anti_lambda_b Ekin[MeV]=13175.5 direction=(0.762868,0.095652,0.63944) material=G4_H - --> #secondaries=4 impactParameter[fm]=1.45818 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 18 projectile=anti_omega- Ekin[MeV]=7568.11 direction=(0.0494519,0.875221,0.481188) material=G4_C - --> #secondaries=16 impactParameter[fm]=1.3208 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=2 - Collision 19 projectile=anti_lambda Ekin[MeV]=11867.5 direction=(0.126283,0.962762,0.239045) material=G4_Be - --> #secondaries=8 impactParameter[fm]=1.4354 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=6 #NNcollisions=3 - Collision 20 projectile=anti_He3 Ekin[MeV]=18260.6 direction=(0.539423,0.16264,0.826179) material=G4_Ar - --> #secondaries=11 impactParameter[fm]=7.26505 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 21 projectile=D- Ekin[MeV]=9859.43 direction=(0.743412,0.646064,0.173029) material=G4_Fe - --> #secondaries=15 impactParameter[fm]=2.28536 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 22 projectile=kaon0S Ekin[MeV]=8468.1 direction=(0.817544,0.517367,0.25289) material=G4_Be - --> #secondaries=5 impactParameter[fm]=3.92252 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=0 - Collision 23 projectile=anti_xi_c0 Ekin[MeV]=27808.9 direction=(0.553939,0.791397,0.25854) material=G4_He - --> #secondaries=4 impactParameter[fm]=0.286394 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 24 projectile=kaon- Ekin[MeV]=4180.88 direction=(0.222559,0.756725,0.614683) material=G4_Be - --> #secondaries=10 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 25 projectile=xi- Ekin[MeV]=17900.9 direction=(0.608648,0.0439348,0.792223) material=G4_Pb - --> #secondaries=43 impactParameter[fm]=6.72279 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=0 - Collision 26 projectile=anti_B0 Ekin[MeV]=20060.7 direction=(0.827183,0.552886,0.100427) material=G4_W - --> #secondaries=60 impactParameter[fm]=2.21449 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=184 #NNcollisions=1 - Collision 27 projectile=xi_c+ Ekin[MeV]=11377.2 direction=(0.421222,0.870766,0.25365) material=G4_C - --> #secondaries=19 impactParameter[fm]=1.04286 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=4 - Collision 28 projectile=xi_b0 Ekin[MeV]=23409.6 direction=(0.642516,0.647504,0.409771) material=G4_Be - --> #secondaries=11 impactParameter[fm]=0.834352 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=7 #NNcollisions=2 - Collision 29 projectile=kaon0L Ekin[MeV]=5644.54 direction=(0.663448,0.525416,0.532706) material=G4_C - --> #secondaries=19 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 30 projectile=anti_D0 Ekin[MeV]=25714.3 direction=(0.18414,0.955398,0.230885) material=G4_W - --> #secondaries=34 impactParameter[fm]=4.13067 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=183 #NNcollisions=0 - Collision 31 projectile=triton Ekin[MeV]=20702.8 direction=(0.50258,0.466136,0.728101) material=G4_Ar - --> #secondaries=47 impactParameter[fm]=3.40333 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=35 #NNcollisions=5 - Collision 32 projectile=kaon0L Ekin[MeV]=18953.2 direction=(0.679436,0.591185,0.434589) material=G4_H - --> #secondaries=8 impactParameter[fm]=0.731712 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 33 projectile=sigma+ Ekin[MeV]=16776.4 direction=(0.727153,0.561959,0.394272) material=G4_Fe - --> #secondaries=15 impactParameter[fm]=4.90661 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=0 - Collision 34 projectile=anti_deuteron Ekin[MeV]=29690.8 direction=(0.100283,0.774017,0.625173) material=G4_Ar - --> #secondaries=19 impactParameter[fm]=4.18814 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=2 - Collision 35 projectile=lambda_c+ Ekin[MeV]=17675 direction=(0.491202,0.311671,0.813377) material=G4_Si - --> #secondaries=18 impactParameter[fm]=2.3066 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 36 projectile=xi_c0 Ekin[MeV]=18089.2 direction=(0.105403,0.981288,0.161135) material=G4_He - --> #secondaries=4 impactParameter[fm]=0.442802 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 37 projectile=sigma- Ekin[MeV]=22749.7 direction=(0.330172,0.886338,0.32464) material=G4_Fe - --> #secondaries=14 impactParameter[fm]=5.36141 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 38 projectile=anti_proton Ekin[MeV]=28056.2 direction=(0.621056,0.273612,0.734456) material=G4_He - --> #secondaries=10 impactParameter[fm]=1.40306 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 39 projectile=xi_b0 Ekin[MeV]=9809.4 direction=(0.493226,0.310144,0.812736) material=G4_He - --> #secondaries=7 impactParameter[fm]=0.894513 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=2 - Collision 40 projectile=anti_triton Ekin[MeV]=25365.8 direction=(0.16029,0.985454,0.0564522) material=G4_C - --> #secondaries=14 impactParameter[fm]=1.74446 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=10 #NNcollisions=2 - Collision 41 projectile=Ds+ Ekin[MeV]=2006.21 direction=(0.744132,0.357387,0.564395) material=G4_Ar - --> #secondaries=11 impactParameter[fm]=2.04461 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 42 projectile=anti_xi_b0 Ekin[MeV]=11022.8 direction=(0.671976,0.00680738,0.740541) material=G4_Be - --> #secondaries=8 impactParameter[fm]=2.57283 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 43 projectile=xi0 Ekin[MeV]=23198.9 direction=(0.192786,0.976153,0.0997902) material=G4_Be - --> #secondaries=13 impactParameter[fm]=2.48843 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=7 #NNcollisions=2 - Collision 44 projectile=anti_xi_b0 Ekin[MeV]=27801.7 direction=(0.137076,0.817747,0.559017) material=G4_C - --> #secondaries=15 impactParameter[fm]=2.48922 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=2 - Collision 45 projectile=omega_c0 Ekin[MeV]=5801.76 direction=(0.465176,0.691861,0.552213) material=G4_Fe - --> #secondaries=24 impactParameter[fm]=2.22962 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=2 - Collision 46 projectile=lambda Ekin[MeV]=12180 direction=(0.396231,0.587107,0.705908) material=G4_Ar - --> #secondaries=29 impactParameter[fm]=2.93708 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 47 projectile=xi0 Ekin[MeV]=20794.3 direction=(0.807803,0.583359,0.0845354) material=G4_Pb - --> #secondaries=14 impactParameter[fm]=6.97924 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=205 #NNcollisions=1 - Collision 48 projectile=anti_omega- Ekin[MeV]=19333.7 direction=(0.899058,0.181624,0.39838) material=G4_C - --> #secondaries=20 impactParameter[fm]=1.77226 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 49 projectile=anti_lambda Ekin[MeV]=4932.35 direction=(0.293054,0.202928,0.934312) material=G4_Cu - --> #secondaries=28 impactParameter[fm]=3.28051 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=3 - Collision 50 projectile=deuteron Ekin[MeV]=1905.02 direction=(0.771415,0.372512,0.515901) material=G4_Cu======================================================================= + j=0 kaon0L p=(-485.749,-261.149,-123.234752.966) MeV + j=1 pi+ p=(408.119,509.741,157.756686.122) MeV + j=2 neutron p=(35.8933,66.21,312.064992.894) MeV + j=3 neutron p=(273.225,1432.77,1643.82390.05) MeV + j=4 pi+ p=(251.29,406.977,582.036766.174) MeV + j=5 eta p=(1334.27,679.502,1376.352106.3) MeV + j=6 proton p=(33.228,-76.0658,216.171966.424) MeV + j=7 pi- p=(447.808,156.789,161.352520.22) MeV + j=8 pi0 p=(187.505,213.222,95.9674328.709) MeV + j=9 pi0 p=(104.534,1371.93,326.6681420.58) MeV + j=10 proton p=(117.525,-65.1169,163.652961.867) MeV + j=11 neutron p=(21.296,143.506,212.572974.175) MeV + j=12 proton p=(187.909,-70.2636,13.6057959.576) MeV + j=13 neutron p=(187.473,500.803,-153.3061091.9) MeV + j=14 neutron p=(-231.626,298.883,-34.26071013.38) MeV + j=15 neutron p=(-113.09,-98.3439,-305.291999.223) MeV + j=16 neutron p=(263.125,-213.634,111.1651004.99) MeV + j=17 neutron p=(0.134298,-113.69,31.9528946.958) MeV + j=18 neutron p=(-256.039,15.9892,-194.284993.147) MeV + j=19 proton p=(545.487,-105.185,30.07771090.82) MeV + j=20 proton p=(116.373,-171.008,120.366968.312) MeV + j=21 neutron p=(-286.091,-209.095,-76.97231007.11) MeV + j=22 neutron p=(-61.8148,206.079,-177.548980.1) MeV + j=23 neutron p=(-91.3001,160.657,-227.376984.19) MeV + j=24 pi- p=(-64.5785,-91.0642,125.1218.158) MeV + j=25 proton p=(-198.367,-321.083,-85.91421014.98) MeV + j=26 neutron p=(300.337,219.814,-158.8151023) MeV + j=27 neutron p=(-71.8266,203.306,-242.964994.136) MeV + j=28 proton p=(329.574,250.365,-289.8111065.67) MeV + j=29 neutron p=(86.6956,68.8473,354.1111010.17) MeV + j=30 neutron p=(1.35373,-465.993,368.3691111.59) MeV + j=31 proton p=(170.316,32.0286,268.69991.253) MeV + j=32 proton p=(109.529,478.014,-166.7131071.75) MeV + j=33 proton p=(-90.2343,125.691,283.352992.262) MeV + j=34 proton p=(139.101,143.301,-249.065991.096) MeV + j=35 neutron p=(179.263,66.8873,-135.386968.36) MeV + j=36 proton p=(-63.4689,361.505,370.7891073.57) MeV + j=37 proton p=(1404.42,358.607,-735.4481876.76) MeV + j=38 La137[10.590] p=(-2297.36,-505.496,3301.55127563) MeV + j=39 Li7 p=(1629.12,1097.05,-170.5836824.78) MeV + j=40 neutron p=(-41.5193,-53.9576,23.998942.334) MeV + j=41 neutron p=(115.064,8.2632,30.4543947.111) MeV + j=42 deuteron p=(-254.336,66.6138,23.71131894.1) MeV + j=43 neutron p=(-24.665,28.9422,108.934946.623) MeV + j=44 neutron p=(15.0672,-109.263,-35.0461946.666) MeV + j=45 neutron p=(-32.5421,5.10015,27.0757940.532) MeV + j=46 neutron p=(23.713,-19.5929,-4.45659940.079) MeV + j=47 gamma p=(1.94,2.26966,0.5251463.03162) MeV + j=48 gamma p=(0.450601,0.11425,-1.819941.87837) MeV + j=49 gamma p=(-0.379651,-0.795818,0.01701310.881902) MeV + j=50 gamma p=(-0.0392412,0.306586,-0.3573810.472499) MeV + Collision 1 projectile=deuteron Ekin[MeV]=8571.64 direction=(0.693142,0.123817,0.710087) material=G4_Pb + --> #secondaries=58 impactParameter[fm]=6.68698 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=202 #NNcollisions=2 + Collision 2 projectile=anti_omega_b- Ekin[MeV]=1277.72 direction=(0.390934,0.391836,0.832847) material=G4_Al + --> #secondaries=11 impactParameter[fm]=2.03087 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=0 + Collision 3 projectile=anti_hyperalpha Ekin[MeV]=24705.2 direction=(0.495279,0.389858,0.776344) material=G4_Pb + --> #secondaries=139 impactParameter[fm]=3.47615 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=204 #NNcollisions=5 + Collision 4 projectile=anti_D0 Ekin[MeV]=21171.1 direction=(0.4344,0.802857,0.408311) material=G4_W + --> #secondaries=53 impactParameter[fm]=6.37856 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=185 #NNcollisions=1 + Collision 5 projectile=Ds- Ekin[MeV]=9282.71 direction=(0.782159,0.0798723,0.617938) material=G4_Pb + --> #secondaries=12 impactParameter[fm]=6.40991 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=1 + Collision 6 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=2915.95 direction=(0.808292,0.52376,0.26896) material=G4_Pb + --> #secondaries=9 impactParameter[fm]=8.39268 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=207 #NNcollisions=0 + Collision 7 projectile=omega_b- Ekin[MeV]=16576.5 direction=(0.882899,0.408538,0.231488) material=G4_Si + --> #secondaries=16 impactParameter[fm]=2.11319 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 8 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=15132.3 direction=(0.0389187,0.524436,0.85056) material=G4_C + --> #secondaries=7 impactParameter[fm]=3.44613 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=11 #NNcollisions=0 + Collision 9 projectile=anti_sigma- Ekin[MeV]=27120.8 direction=(0.61858,0.690459,0.375001) material=G4_Cu + --> #secondaries=18 impactParameter[fm]=7.11377 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 10 projectile=xi_b0 Ekin[MeV]=2958.76 direction=(0.640528,0.0251659,0.767522) material=G4_Si + --> #secondaries=11 impactParameter[fm]=4.73938 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=0 + Collision 11 projectile=anti_lambda_c+ Ekin[MeV]=24766.7 direction=(0.475126,0.797575,0.371657) material=G4_Cu + --> #secondaries=40 impactParameter[fm]=5.35562 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=2 + Collision 12 projectile=Bc- Ekin[MeV]=20396.4 direction=(0.141873,0.952105,0.270865) material=G4_H + --> #secondaries=3 impactParameter[fm]=1.09635 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 13 projectile=D- Ekin[MeV]=26821.7 direction=(0.754306,0.599489,0.267648) material=G4_W + --> #secondaries=56 impactParameter[fm]=3.21783 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=183 #NNcollisions=3 + Collision 14 projectile=anti_hyperalpha Ekin[MeV]=13834 direction=(0.591867,0.643674,0.485157) material=G4_He + --> #secondaries=7 impactParameter[fm]=2.89987 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=4 #NNcollisions=1 + Collision 15 projectile=He3 Ekin[MeV]=22350.6 direction=(0.540862,0.493367,0.681218) material=G4_Al + --> #secondaries=20 impactParameter[fm]=2.03325 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=3 + Collision 16 projectile=xi_b- Ekin[MeV]=3746.61 direction=(0.141205,0.467479,0.872654) material=G4_W + --> #secondaries=11 impactParameter[fm]=7.92453 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=0 + Collision 17 projectile=anti_He3 Ekin[MeV]=12514.5 direction=(0.745668,0.47671,0.46554) material=G4_Be + --> #secondaries=11 impactParameter[fm]=2.87494 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 18 projectile=anti_neutron Ekin[MeV]=26774.1 direction=(0.581995,0.32567,0.745131) material=G4_Cu + --> #secondaries=33 impactParameter[fm]=5.13981 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=2 + Collision 19 projectile=doublehyperdoubleneutron Ekin[MeV]=23457.3 direction=(0.748311,0.587766,0.307509) material=G4_Ar + --> #secondaries=17 impactParameter[fm]=4.89943 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=39 #NNcollisions=3 + Collision 20 projectile=xi_c+ Ekin[MeV]=15486 direction=(0.0284523,0.775429,0.630794) material=G4_Al + --> #secondaries=29 impactParameter[fm]=1.07988 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=3 + Collision 21 projectile=anti_doublehyperH4 Ekin[MeV]=29108.9 direction=(0.520155,0.737369,0.430959) material=G4_Si + --> #secondaries=10 impactParameter[fm]=6.09066 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=27 #NNcollisions=0 + Collision 22 projectile=anti_lambda_c+ Ekin[MeV]=24598.4 direction=(0.415251,0.27613,0.866787) material=G4_Ar + --> #secondaries=25 impactParameter[fm]=3.39557 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=1 + Collision 23 projectile=triton Ekin[MeV]=29646.5 direction=(0.356086,0.93326,0.0472166) material=G4_C + --> #secondaries=35 impactParameter[fm]=0.85626 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=4 #NNcollisions=7 + Collision 24 projectile=anti_neutron Ekin[MeV]=5911.33 direction=(0.513031,0.732402,0.447645) material=G4_He + --> #secondaries=4 impactParameter[fm]=1.41426 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 25 projectile=doublehyperdoubleneutron Ekin[MeV]=28303.8 direction=(0.758394,0.306305,0.57534) material=G4_Al + --> #secondaries=16 impactParameter[fm]=3.1645 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=24 #NNcollisions=2 + Collision 26 projectile=anti_D0 Ekin[MeV]=24457.3 direction=(0.595574,0.4314,0.677632) material=G4_He + --> #secondaries=4 impactParameter[fm]=0.892741 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 27 projectile=kaon- Ekin[MeV]=4500.58 direction=(0.146413,0.929093,0.339632) material=G4_Pb + --> #secondaries=89 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 28 projectile=Bs0 Ekin[MeV]=29260.7 direction=(0.278306,0.693192,0.664853) material=G4_C + --> #secondaries=7 impactParameter[fm]=2.02907 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=10 #NNcollisions=2 + Collision 29 projectile=anti_D0 Ekin[MeV]=22413.4 direction=(0.906513,0.416502,0.0689999) material=G4_Pb + --> #secondaries=50 impactParameter[fm]=5.70999 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=204 #NNcollisions=2 + Collision 30 projectile=kaon0S Ekin[MeV]=2668.19 direction=(0.0984557,0.720043,0.686909) material=G4_Al + --> #secondaries=6 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 31 projectile=deuteron Ekin[MeV]=4242.52 direction=(0.566134,0.641842,0.517234) material=G4_Ar======================================================================= ====== Pre-compound/De-excitation Physics Parameters ======== ======================================================================= Type of pre-compound inverse x-section 3 @@ -178,2151 +179,2124 @@ Correlated gamma emission flag 0 Max 2J for sampling of angular correlations 10 ======================================================================= + --> #secondaries=9 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 32 projectile=triton Ekin[MeV]=27207.9 direction=(0.670825,0.615093,0.414312) material=G4_Ar + --> #secondaries=33 impactParameter[fm]=3.72841 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=37 #NNcollisions=4 + Collision 33 projectile=anti_hyperH4 Ekin[MeV]=2903.06 direction=(0.711806,0.0830324,0.697451) material=G4_Si + --> #secondaries=38 impactParameter[fm]=1.97183 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=20 #NNcollisions=4 + Collision 34 projectile=anti_hypertriton Ekin[MeV]=26979.4 direction=(0.00566208,0.877885,0.478838) material=G4_Cu + --> #secondaries=55 impactParameter[fm]=3.49753 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=4 + Collision 35 projectile=anti_lambda Ekin[MeV]=20511.9 direction=(0.548425,0.588464,0.594087) material=G4_W + --> #secondaries=57 impactParameter[fm]=5.48379 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=3 + Collision 36 projectile=anti_omega- Ekin[MeV]=17570.6 direction=(0.458779,0.884061,0.0892048) material=G4_Al + --> #secondaries=15 impactParameter[fm]=2.933 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 37 projectile=xi- Ekin[MeV]=26201.8 direction=(0.551506,0.573454,0.605799) material=G4_He + --> #secondaries=13 impactParameter[fm]=0.528385 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=1 #NNcollisions=3 + Collision 38 projectile=hyperalpha Ekin[MeV]=17778.7 direction=(0.191636,0.656349,0.729713) material=G4_Be + --> #secondaries=17 impactParameter[fm]=1.42874 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=6 #NNcollisions=3 + Collision 39 projectile=anti_deuteron Ekin[MeV]=6203.48 direction=(0.489747,0.630362,0.602322) material=G4_Cu + --> #secondaries=54 impactParameter[fm]=2.69747 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=4 + Collision 40 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=5926.05 direction=(0.609922,0.440918,0.658473) material=G4_He + --> #secondaries=5 impactParameter[fm]=4.36975 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 41 projectile=Bc+ Ekin[MeV]=2822.32 direction=(0.87926,0.384725,0.280871) material=G4_Be + --> #secondaries=5 impactParameter[fm]=2.35762 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 42 projectile=anti_doublehyperH4 Ekin[MeV]=26372.4 direction=(0.901504,0.41036,0.13746) material=G4_Al + --> #secondaries=36 impactParameter[fm]=0.634863 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=22 #NNcollisions=6 + Collision 43 projectile=deuteron Ekin[MeV]=26482.9 direction=(0.503949,0.726885,0.466555) material=G4_He + --> #secondaries=10 impactParameter[fm]=3.04073 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 44 projectile=Bs0 Ekin[MeV]=24552.7 direction=(0.554718,0.470321,0.686357) material=G4_C + --> #secondaries=14 impactParameter[fm]=1.03271 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=10 #NNcollisions=1 + Collision 45 projectile=anti_B0 Ekin[MeV]=18611.2 direction=(0.569962,0.45589,0.683599) material=G4_Al + --> #secondaries=12 impactParameter[fm]=3.60798 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 46 projectile=anti_lambda_b Ekin[MeV]=7890.1 direction=(0.0708877,0.45785,0.886199) material=G4_Si + --> #secondaries=8 impactParameter[fm]=1.92333 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 47 projectile=kaon+ Ekin[MeV]=26428.8 direction=(0.550041,0.820521,0.155564) material=G4_Cu + --> #secondaries=18 impactParameter[fm]=3.71683 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=64 #NNcollisions=1 + Collision 48 projectile=anti_lambda Ekin[MeV]=18533.8 direction=(0.64007,0.0568655,0.766209) material=G4_Fe + --> #secondaries=18 impactParameter[fm]=4.36572 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=56 #NNcollisions=1 + Collision 49 projectile=D0 Ekin[MeV]=26925.6 direction=(0.661443,0.607124,0.440334) material=G4_He + --> #secondaries=17 impactParameter[fm]=1.54532 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=2 #NNcollisions=2 + Collision 50 projectile=omega_c0 Ekin[MeV]=8046.62 direction=(0.860189,0.483624,0.161808) material=G4_He + --> #secondaries=5 impactParameter[fm]=0.801093 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=1 + Collision 51 projectile=xi0 Ekin[MeV]=11186.3 direction=(0.530716,0.361839,0.766429) material=G4_Si + --> #secondaries=13 impactParameter[fm]=2.50306 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=0 + Collision 52 projectile=sigma+ Ekin[MeV]=8668.02 direction=(0.483771,0.583036,0.652713) material=G4_Si + --> #secondaries=13 impactParameter[fm]=2.32351 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 53 projectile=B0 Ekin[MeV]=12192.3 direction=(0.515262,0.19649,0.834204) material=G4_C + --> #secondaries=4 impactParameter[fm]=1.31007 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 54 projectile=B- Ekin[MeV]=12289.4 direction=(0.705084,0.308894,0.638311) material=G4_Cu + --> #secondaries=11 impactParameter[fm]=3.37744 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 55 projectile=xi0 Ekin[MeV]=26742 direction=(0.539182,0.836793,0.095187) material=G4_C + --> #secondaries=6 impactParameter[fm]=2.69973 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 + Collision 56 projectile=anti_omega- Ekin[MeV]=20211 direction=(0.755556,0.505326,0.416871) material=G4_C + --> #secondaries=17 impactParameter[fm]=1.26409 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=1 + Collision 57 projectile=anti_lambda_b Ekin[MeV]=1606.71 direction=(0.53191,0.537067,0.654699) material=G4_C + --> #secondaries=7 impactParameter[fm]=2.14319 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 + Collision 58 projectile=Bs0 Ekin[MeV]=29440.6 direction=(0.964988,0.170797,0.199066) material=G4_He + --> #secondaries=5 impactParameter[fm]=2.10423 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 59 projectile=D- Ekin[MeV]=29769.2 direction=(0.488018,0.55402,0.674463) material=G4_Fe + --> #secondaries=13 impactParameter[fm]=5.79199 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 60 projectile=alpha Ekin[MeV]=12236.4 direction=(0.907639,0.339021,0.2475) material=G4_Be + --> #secondaries=7 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 61 projectile=hyperalpha Ekin[MeV]=27153.2 direction=(0.0351512,0.877366,0.478532) material=G4_Be + --> #secondaries=18 impactParameter[fm]=2.21074 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=6 #NNcollisions=3 + Collision 62 projectile=anti_hyperH4 Ekin[MeV]=12059.8 direction=(0.730777,0.40237,0.551419) material=G4_W + --> #secondaries=64 impactParameter[fm]=6.4902 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=180 #NNcollisions=4 + Collision 63 projectile=anti_deuteron Ekin[MeV]=9603.86 direction=(0.833101,0.153901,0.531278) material=G4_Pb + --> #secondaries=87 impactParameter[fm]=6.95086 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=208 #NNcollisions=2 + Collision 64 projectile=anti_xi_c0 Ekin[MeV]=21731.6 direction=(0.231366,0.960182,0.156592) material=G4_Si + --> #secondaries=7 impactParameter[fm]=3.90097 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=0 + Collision 65 projectile=anti_lambda_b Ekin[MeV]=15362.6 direction=(0.451626,0.750905,0.481846) material=G4_Pb + --> #secondaries=67 impactParameter[fm]=1.09589 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=202 #NNcollisions=4 + Collision 66 projectile=lambda Ekin[MeV]=8471.67 direction=(0.46393,0.466276,0.75323) material=G4_He + --> #secondaries=4 impactParameter[fm]=2.33568 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 67 projectile=anti_Bs0 Ekin[MeV]=26122.7 direction=(0.751114,0.65758,0.0584532) material=G4_H + --> #secondaries=6 impactParameter[fm]=0.69745 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 68 projectile=D- Ekin[MeV]=4818 direction=(0.0332034,0.461957,0.886281) material=G4_Fe + --> #secondaries=10 impactParameter[fm]=4.61321 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 69 projectile=anti_xi_c+ Ekin[MeV]=11914.7 direction=(0.893786,0.19731,0.402759) material=G4_Al + --> #secondaries=21 impactParameter[fm]=1.70363 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=2 + Collision 70 projectile=anti_omega- Ekin[MeV]=15752.1 direction=(0.629294,0.158568,0.760818) material=G4_Be + --> #secondaries=13 impactParameter[fm]=2.8812 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 71 projectile=anti_alpha Ekin[MeV]=10179.5 direction=(0.784944,0.565049,0.25413) material=G4_Cu + --> #secondaries=67 impactParameter[fm]=2.86832 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=4 + Collision 72 projectile=B+ Ekin[MeV]=23733.2 direction=(0.556608,0.586813,0.58808) material=G4_Be + --> #secondaries=9 impactParameter[fm]=1.11652 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 73 projectile=anti_B0 Ekin[MeV]=24715.9 direction=(0.559297,0.655955,0.506862) material=G4_Ar + --> #secondaries=10 impactParameter[fm]=3.68215 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 74 projectile=hyperHe5 Ekin[MeV]=28879.9 direction=(0.464289,0.345206,0.81564) material=G4_Be + --> #secondaries=13 impactParameter[fm]=4.34184 #projectileSpectatorNucleons=4 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 75 projectile=deuteron Ekin[MeV]=6606.25 direction=(0.649474,0.561856,0.512348) material=G4_Si + --> #secondaries=8 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 76 projectile=anti_xi_b0 Ekin[MeV]=29428.8 direction=(0.661027,0.0413665,0.749221) material=G4_W + --> #secondaries=82 impactParameter[fm]=5.38067 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=179 #NNcollisions=5 + Collision 77 projectile=B+ Ekin[MeV]=22431.7 direction=(0.0281109,0.896974,0.441189) material=G4_Pb + --> #secondaries=28 impactParameter[fm]=6.51387 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=1 + Collision 78 projectile=anti_xi_b0 Ekin[MeV]=8181.39 direction=(0.900584,0.420776,0.109065) material=G4_C + --> #secondaries=5 impactParameter[fm]=1.66284 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 79 projectile=anti_lambda Ekin[MeV]=21002.6 direction=(0.231593,0.658989,0.715611) material=G4_Cu + --> #secondaries=55 impactParameter[fm]=2.55291 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=60 #NNcollisions=3 + Collision 80 projectile=anti_omega- Ekin[MeV]=16643.8 direction=(0.703662,0.49205,0.512588) material=G4_Be + --> #secondaries=20 impactParameter[fm]=0.825034 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=5 #NNcollisions=4 + Collision 81 projectile=Bc+ Ekin[MeV]=5251.94 direction=(0.804441,0.502155,0.317355) material=G4_C + --> #secondaries=6 impactParameter[fm]=1.96848 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 82 projectile=anti_xi0 Ekin[MeV]=13449.1 direction=(0.864273,0.345616,0.365489) material=G4_Pb + --> #secondaries=67 impactParameter[fm]=5.21397 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=204 #NNcollisions=4 + Collision 83 projectile=anti_hyperalpha Ekin[MeV]=10709.3 direction=(0.608898,0.5304,0.589847) material=G4_W + --> #secondaries=119 impactParameter[fm]=4.05473 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=4 + Collision 84 projectile=proton Ekin[MeV]=16412.9 direction=(0.612723,0.688545,0.387912) material=G4_Cu + --> #secondaries=13 impactParameter[fm]=3.58316 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=63 #NNcollisions=2 + Collision 85 projectile=Ds- Ekin[MeV]=29122.3 direction=(0.583302,0.70891,0.396491) material=G4_Ar + --> #secondaries=19 impactParameter[fm]=2.20024 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=2 + Collision 86 projectile=lambda_b Ekin[MeV]=23182.8 direction=(0.747745,0.648745,0.141452) material=G4_W + --> #secondaries=34 impactParameter[fm]=4.20711 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=180 #NNcollisions=3 + Collision 87 projectile=xi_b- Ekin[MeV]=18819.3 direction=(0.457148,0.847919,0.268418) material=G4_Ar + --> #secondaries=8 impactParameter[fm]=4.27054 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=0 + Collision 88 projectile=anti_omega_c0 Ekin[MeV]=1528.33 direction=(0.595693,0.262551,0.75909) material=G4_Fe + --> #secondaries=15 impactParameter[fm]=3.78032 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=0 + Collision 89 projectile=omega- Ekin[MeV]=7177.6 direction=(0.607041,0.106628,0.787484) material=G4_Fe + --> #secondaries=25 impactParameter[fm]=2.73449 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=1 + Collision 90 projectile=anti_Bs0 Ekin[MeV]=19561.5 direction=(0.618328,0.555898,0.555561) material=G4_Ar + --> #secondaries=11 impactParameter[fm]=3.19107 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 91 projectile=pi- Ekin[MeV]=19854.1 direction=(0.600244,0.52093,0.606909) material=G4_Cu + --> #secondaries=32 impactParameter[fm]=3.03148 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=2 + Collision 92 projectile=sigma- Ekin[MeV]=13778.5 direction=(0.328902,0.152031,0.932046) material=G4_Si + --> #secondaries=26 impactParameter[fm]=1.8686 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 93 projectile=pi+ Ekin[MeV]=27907.9 direction=(0.98331,0.0855214,0.160583) material=G4_Al + --> #secondaries=21 impactParameter[fm]=1.57287 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=24 #NNcollisions=2 + Collision 94 projectile=anti_omega_c0 Ekin[MeV]=23354.8 direction=(0.756874,0.0433896,0.652119) material=G4_Fe + --> #secondaries=61 impactParameter[fm]=2.39747 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=48 #NNcollisions=6 + Collision 95 projectile=anti_hyperHe5 Ekin[MeV]=17826.5 direction=(0.988526,0.149812,0.0193177) material=G4_H + --> #secondaries=5 impactParameter[fm]=2.85703 #projectileSpectatorNucleons=4 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 96 projectile=deuteron Ekin[MeV]=23466.9 direction=(0.166382,0.830888,0.530982) material=G4_He + --> #secondaries=9 impactParameter[fm]=4.55726 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 97 projectile=anti_He3 Ekin[MeV]=21258.1 direction=(0.728209,0.636925,0.253056) material=G4_Al + --> #secondaries=28 impactParameter[fm]=3.42429 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=3 + Collision 98 projectile=Ds- Ekin[MeV]=27989.5 direction=(0.0992247,0.974043,0.203458) material=G4_Si + --> #secondaries=36 impactParameter[fm]=1.54873 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=24 #NNcollisions=4 + Collision 99 projectile=pi- Ekin[MeV]=19552.1 direction=(0.727241,0.685672,0.031229) material=G4_C + --> #secondaries=15 impactParameter[fm]=1.55286 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=3 + Collision 100 projectile=anti_lambda_c+ Ekin[MeV]=24713.1 direction=(0.549909,0.325398,0.769231) material=G4_Ar + --> #secondaries=43 impactParameter[fm]=1.63683 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=36 #NNcollisions=4 + List of produced secondaries: + j=0 anti_sigma_c0 p=(1954.34,1869.59,2492.244421.2) MeV + j=1 pi0 p=(372.02,290.253,1126.411228.68) MeV + j=2 pi- p=(125.65,42.7968,155.726247.689) MeV + j=3 proton p=(20.9722,172.26,72.4635956.932) MeV + j=4 pi- p=(16.1218,266.256,444.939537.217) MeV + j=5 proton p=(415.018,2032.68,2535.423407.74) MeV + j=6 pi- p=(3546.8,939.335,2634.094518.85) MeV + j=7 pi+ p=(733.314,336.268,653.9371047.83) MeV + j=8 neutron p=(450.154,439.772,616.4011287.93) MeV + j=9 pi+ p=(1295.85,905.374,2068.322606.98) MeV + j=10 neutron p=(189.564,-282.786,312.831047.16) MeV + j=11 pi+ p=(453.845,224.36,479.274710.983) MeV + j=12 neutron p=(391.398,-28.0371,-41.6061019.06) MeV + j=13 neutron p=(-29.5928,38.4065,-115.572947.888) MeV + j=14 proton p=(-7.75196,180.811,310.1571004.64) MeV + j=15 pi- p=(1030.01,394.752,252.3341140.13) MeV + j=16 pi0 p=(361.453,4.05727,350.172521.06) MeV + j=17 pi+ p=(391.588,67.9403,-35.7701422.749) MeV + j=18 pi- p=(561.938,14.6266,1468.31578.41) MeV + j=19 pi0 p=(741.714,426.944,1705.291912.76) MeV + j=20 pi+ p=(518.993,-121.577,1382.811488.55) MeV + j=21 pi- p=(-173.863,-33.6412,-142.811266.898) MeV + j=22 alpha p=(369.159,137.919,514.5193783.3) MeV + j=23 proton p=(-123.299,-72.4903,-106.948955.118) MeV + j=24 proton p=(27.7901,-111.671,240.786975.487) MeV + j=25 triton p=(781.923,91.0766,317.5392934.38) MeV + j=26 proton p=(-147.725,222.273,98.4995980.451) MeV + j=27 neutron p=(235.152,106.61,-180.423990.958) MeV + j=28 deuteron p=(-49.086,-86.2943,477.5261937.99) MeV + j=29 deuteron p=(-18.1226,-213.944,-12.94991887.91) MeV + j=30 proton p=(104.543,41.7217,-15.1381945.121) MeV + j=31 neutron p=(152.555,298.359,124.2431005.24) MeV + j=32 deuteron p=(280.575,-2.0954,28.47881896.7) MeV + j=33 neutron p=(-12.3329,-156,209.012975.17) MeV + j=34 proton p=(-65.3504,226.324,93.522971.902) MeV + j=35 neutron p=(-40.7083,322.254,4.86871994.139) MeV + j=36 neutron p=(-170.477,-116.786,-251.525994.359) MeV + j=37 proton p=(102.832,25.0979,143.243955.027) MeV + j=38 triton p=(295.302,151.212,8.240282828.46) MeV + j=39 neutron p=(314.493,136.772,143.4121010.43) MeV + j=40 neutron p=(81.2271,37.6624,-36.819944.54) MeV + j=41 deuteron p=(-427.541,94.1052,-130.5451930.44) MeV + j=42 deuteron p=(-256.58,-558.575,299.231996.32) MeV + Collision 101 projectile=xi_c+ Ekin[MeV]=25106.9 direction=(0.337526,0.585892,0.736754) material=G4_He + --> #secondaries=8 impactParameter[fm]=2.00571 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 102 projectile=anti_lambda_c+ Ekin[MeV]=11648.4 direction=(0.805307,0.504491,0.311398) material=G4_Al + --> #secondaries=24 impactParameter[fm]=2.79939 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=2 + Collision 103 projectile=B- Ekin[MeV]=15674.4 direction=(0.671148,0.520713,0.527654) material=G4_Cu + --> #secondaries=16 impactParameter[fm]=0.160485 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=0 + Collision 104 projectile=D- Ekin[MeV]=19128.3 direction=(0.15965,0.438339,0.884517) material=G4_Fe + --> #secondaries=27 impactParameter[fm]=1.81002 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=53 #NNcollisions=2 + Collision 105 projectile=anti_xi_b- Ekin[MeV]=4757.19 direction=(0.78799,0.404819,0.463889) material=G4_Al + --> #secondaries=17 impactParameter[fm]=2.12129 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=0 + Collision 106 projectile=doublehyperdoubleneutron Ekin[MeV]=11055.9 direction=(0.686151,0.702182,0.190099) material=G4_Ar + --> #secondaries=27 impactParameter[fm]=3.94636 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=35 #NNcollisions=2 + Collision 107 projectile=anti_omega_c0 Ekin[MeV]=24947.8 direction=(0.738435,0.0832816,0.669163) material=G4_W + --> #secondaries=49 impactParameter[fm]=2.66212 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=180 #NNcollisions=1 + Collision 108 projectile=omega- Ekin[MeV]=8222.72 direction=(0.147012,0.988915,0.020846) material=G4_Fe + --> #secondaries=12 impactParameter[fm]=5.37429 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 109 projectile=anti_Bs0 Ekin[MeV]=18609.1 direction=(0.496311,0.13632,0.857375) material=G4_Si + --> #secondaries=19 impactParameter[fm]=0.924675 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=1 + Collision 110 projectile=Ds- Ekin[MeV]=26380 direction=(0.253493,0.647521,0.71865) material=G4_Cu + --> #secondaries=29 impactParameter[fm]=1.46272 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 111 projectile=omega- Ekin[MeV]=11018.4 direction=(0.645477,0.0461553,0.762384) material=G4_W + --> #secondaries=43 impactParameter[fm]=7.15127 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=184 #NNcollisions=2 + Collision 112 projectile=anti_Bs0 Ekin[MeV]=3493.04 direction=(0.389599,0.646159,0.656271) material=G4_Be + --> #secondaries=7 impactParameter[fm]=1.78066 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 113 projectile=deuteron Ekin[MeV]=13810.4 direction=(0.514081,0.852924,0.0907836) material=G4_W + --> #secondaries=43 impactParameter[fm]=5.74554 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=182 #NNcollisions=2 + Collision 114 projectile=anti_xi0 Ekin[MeV]=27828.8 direction=(0.207173,0.357561,0.91062) material=G4_He + --> #secondaries=11 impactParameter[fm]=1.86074 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=4 #NNcollisions=1 + Collision 115 projectile=anti_xi0 Ekin[MeV]=13138.8 direction=(0.64686,0.698186,0.306771) material=G4_He + --> #secondaries=6 impactParameter[fm]=3.04477 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=4 #NNcollisions=1 + Collision 116 projectile=xi- Ekin[MeV]=14439.6 direction=(0.450981,0.612616,0.64909) material=G4_Be + --> #secondaries=8 impactParameter[fm]=0.299494 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=5 #NNcollisions=1 + Collision 117 projectile=anti_D0 Ekin[MeV]=15823.1 direction=(0.594966,0.53789,0.597235) material=G4_Si + --> #secondaries=22 impactParameter[fm]=1.80221 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 118 projectile=anti_neutron Ekin[MeV]=23779.6 direction=(0.417724,0.598518,0.683581) material=G4_Fe + --> #secondaries=21 impactParameter[fm]=3.19556 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=56 #NNcollisions=1 + Collision 119 projectile=alpha Ekin[MeV]=15776.7 direction=(0.923153,0.369598,0.105759) material=G4_Ar + --> #secondaries=48 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 120 projectile=D- Ekin[MeV]=23961.7 direction=(0.543642,0.403388,0.736024) material=G4_Be + --> #secondaries=14 impactParameter[fm]=1.20714 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 121 projectile=B- Ekin[MeV]=21530.3 direction=(0.66553,0.573145,0.478094) material=G4_Al + --> #secondaries=15 impactParameter[fm]=2.36277 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=1 + Collision 122 projectile=anti_xi0 Ekin[MeV]=26944.4 direction=(0.252314,0.910301,0.328161) material=G4_Cu + --> #secondaries=44 impactParameter[fm]=3.02253 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=63 #NNcollisions=2 + Collision 123 projectile=doublehyperdoubleneutron Ekin[MeV]=18851.8 direction=(0.578332,0.303064,0.757419) material=G4_W + --> #secondaries=140 impactParameter[fm]=1.95297 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=165 #NNcollisions=7 + Collision 124 projectile=xi_b- Ekin[MeV]=22185.1 direction=(0.283745,0.930417,0.231974) material=G4_Cu + --> #secondaries=40 impactParameter[fm]=1.65681 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=60 #NNcollisions=1 + Collision 125 projectile=hypertriton Ekin[MeV]=28978.7 direction=(0.608606,0.473576,0.636651) material=G4_Be + --> #secondaries=20 impactParameter[fm]=0.743983 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=6 #NNcollisions=3 + Collision 126 projectile=doublehyperdoubleneutron Ekin[MeV]=11421.6 direction=(0.807302,0.437168,0.396419) material=G4_W + --> #secondaries=42 impactParameter[fm]=9.2627 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=183 #NNcollisions=1 + Collision 127 projectile=xi- Ekin[MeV]=5102.34 direction=(0.728078,0.614843,0.303101) material=G4_Si + --> #secondaries=10 impactParameter[fm]=3.67147 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 128 projectile=omega- Ekin[MeV]=18938.7 direction=(0.563126,0.0691142,0.823475) material=G4_C + --> #secondaries=15 impactParameter[fm]=2.42475 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=2 + Collision 129 projectile=hyperH4 Ekin[MeV]=9185.65 direction=(0.943099,0.328023,0.0544525) material=G4_Fe + --> #secondaries=36 impactParameter[fm]=3.01731 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=52 #NNcollisions=2 + Collision 130 projectile=hyperalpha Ekin[MeV]=8030.3 direction=(0.492727,0.659945,0.567179) material=G4_C + --> #secondaries=10 impactParameter[fm]=5.24284 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 131 projectile=proton Ekin[MeV]=29051.7 direction=(0.717733,0.361008,0.595426) material=G4_Cu + --> #secondaries=21 impactParameter[fm]=3.19828 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=2 + Collision 132 projectile=xi_c+ Ekin[MeV]=10299.3 direction=(0.337477,0.585334,0.73722) material=G4_Pb + --> #secondaries=69 impactParameter[fm]=1.53093 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=201 #NNcollisions=4 + Collision 133 projectile=anti_sigma+ Ekin[MeV]=29580.5 direction=(0.731472,0.676455,0.0857746) material=G4_He + --> #secondaries=4 impactParameter[fm]=3.45064 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 134 projectile=anti_sigma- Ekin[MeV]=23201.8 direction=(0.0470858,0.662555,0.747532) material=G4_Ar + --> #secondaries=31 impactParameter[fm]=2.93635 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=36 #NNcollisions=1 + Collision 135 projectile=anti_sigma+ Ekin[MeV]=7770.77 direction=(0.153335,0.509298,0.84682) material=G4_Fe + --> #secondaries=21 impactParameter[fm]=3.66855 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 136 projectile=anti_xi_c0 Ekin[MeV]=8398.3 direction=(0.705522,0.0694801,0.705274) material=G4_Be + --> #secondaries=6 impactParameter[fm]=5.09246 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 137 projectile=lambda Ekin[MeV]=24772.2 direction=(0.616564,0.360908,0.69971) material=G4_C + --> #secondaries=23 impactParameter[fm]=2.93595 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=2 + Collision 138 projectile=anti_hyperH4 Ekin[MeV]=9308.3 direction=(0.392852,0.91854,0.0441741) material=G4_Al + --> #secondaries=10 impactParameter[fm]=4.35499 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 139 projectile=omega_b- Ekin[MeV]=21775.8 direction=(0.460638,0.684859,0.564607) material=G4_Al + --> #secondaries=10 impactParameter[fm]=1.94195 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 140 projectile=anti_proton Ekin[MeV]=1733.92 direction=(0.85883,0.374715,0.349286) material=G4_Al + --> #secondaries=17 impactParameter[fm]=3.64389 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 141 projectile=anti_lambda_b Ekin[MeV]=27082.2 direction=(0.70657,0.0372288,0.706663) material=G4_Pb + --> #secondaries=50 impactParameter[fm]=7.17197 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=2 + Collision 142 projectile=D0 Ekin[MeV]=18138.9 direction=(0.478258,0.397615,0.783053) material=G4_Pb + --> #secondaries=31 impactParameter[fm]=7.35932 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=1 + Collision 143 projectile=hyperalpha Ekin[MeV]=12773.3 direction=(0.838966,0.151054,0.5228) material=G4_He + --> #secondaries=6 impactParameter[fm]=2.50764 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 144 projectile=D0 Ekin[MeV]=21969.6 direction=(0.998672,0.0332995,0.0393056) material=G4_W + --> #secondaries=11 impactParameter[fm]=6.21613 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=185 #NNcollisions=1 + Collision 145 projectile=kaon0L Ekin[MeV]=29091.8 direction=(0.818613,0.516404,0.251394) material=G4_He + --> #secondaries=14 impactParameter[fm]=1.54771 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=2 #NNcollisions=2 + Collision 146 projectile=Bc+ Ekin[MeV]=14893.8 direction=(0.402058,0.913415,0.0634235) material=G4_Pb + --> #secondaries=7 impactParameter[fm]=5.47193 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=1 + Collision 147 projectile=omega_b- Ekin[MeV]=22012.5 direction=(0.752255,0.655898,0.0625384) material=G4_Fe + --> #secondaries=19 impactParameter[fm]=4.36932 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=0 + Collision 148 projectile=lambda Ekin[MeV]=3088.42 direction=(0.403298,0.669773,0.623502) material=G4_H + --> #secondaries=4 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 149 projectile=kaon+ Ekin[MeV]=6587.44 direction=(0.61266,0.213937,0.760841) material=G4_He + --> #secondaries=9 impactParameter[fm]=0.0961132 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=2 #NNcollisions=2 + Collision 150 projectile=B- Ekin[MeV]=10203.6 direction=(0.472077,0.471084,0.745133) material=G4_Cu + --> #secondaries=10 impactParameter[fm]=4.5379 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 151 projectile=anti_hypertriton Ekin[MeV]=15896.5 direction=(0.83847,0.173216,0.516685) material=G4_Fe + --> #secondaries=38 impactParameter[fm]=2.76683 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=52 #NNcollisions=3 + Collision 152 projectile=hyperH4 Ekin[MeV]=1148.61 direction=(0.0522451,0.708183,0.704093) material=G4_Pb + --> #secondaries=29 impactParameter[fm]=8.48455 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=205 #NNcollisions=0 + Collision 153 projectile=anti_xi- Ekin[MeV]=10352.2 direction=(0.729102,0.440103,0.524137) material=G4_Be + --> #secondaries=13 impactParameter[fm]=1.88589 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 154 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=2833.75 direction=(0.196184,0.980408,0.0176932) material=G4_Ar + --> #secondaries=44 impactParameter[fm]=2.29987 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=4 + Collision 155 projectile=Ds+ Ekin[MeV]=9359.19 direction=(0.407376,0.397243,0.82234) material=G4_W + --> #secondaries=38 impactParameter[fm]=6.22038 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=182 #NNcollisions=2 + Collision 156 projectile=deuteron Ekin[MeV]=28172.4 direction=(0.0580644,0.262317,0.963233) material=G4_Al + --> #secondaries=38 impactParameter[fm]=3.215 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=22 #NNcollisions=5 + Collision 157 projectile=hyperH4 Ekin[MeV]=4239.3 direction=(0.859094,0.454777,0.23481) material=G4_Be + --> #secondaries=7 impactParameter[fm]=3.04323 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 158 projectile=anti_He3 Ekin[MeV]=11793.9 direction=(0.638136,0.611365,0.46799) material=G4_Fe + --> #secondaries=53 impactParameter[fm]=2.09529 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=52 #NNcollisions=4 + Collision 159 projectile=anti_lambda Ekin[MeV]=12675.6 direction=(0.326897,0.167977,0.930012) material=G4_He + --> #secondaries=8 impactParameter[fm]=2.01348 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=4 #NNcollisions=1 + Collision 160 projectile=Bs0 Ekin[MeV]=22308.1 direction=(0.760803,0.61972,0.192681) material=G4_Pb + --> #secondaries=65 impactParameter[fm]=1.74251 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=2 + Collision 161 projectile=omega_c0 Ekin[MeV]=21322.4 direction=(0.617101,0.66138,0.426337) material=G4_Be + --> #secondaries=9 impactParameter[fm]=2.96084 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 162 projectile=anti_deuteron Ekin[MeV]=13267.1 direction=(0.804009,0.525764,0.277743) material=G4_Fe + --> #secondaries=14 impactParameter[fm]=6.28712 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=54 #NNcollisions=1 + Collision 163 projectile=D- Ekin[MeV]=16064.2 direction=(0.287566,0.748996,0.596918) material=G4_Al + --> #secondaries=22 impactParameter[fm]=1.65893 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=2 + Collision 164 projectile=D0 Ekin[MeV]=17490.4 direction=(0.836616,0.479832,0.264262) material=G4_Cu + --> #secondaries=16 impactParameter[fm]=2.28512 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=2 + Collision 165 projectile=sigma- Ekin[MeV]=24935.3 direction=(0.106947,0.65909,0.744421) material=G4_C + --> #secondaries=8 impactParameter[fm]=2.24293 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 166 projectile=anti_xi0 Ekin[MeV]=10652.4 direction=(0.649448,0.124993,0.750062) material=G4_Si + --> #secondaries=16 impactParameter[fm]=3.74062 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 167 projectile=Bs0 Ekin[MeV]=21554.9 direction=(0.378319,0.0910392,0.921188) material=G4_H + --> #secondaries=5 impactParameter[fm]=0.536393 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 168 projectile=lambda_b Ekin[MeV]=6673.56 direction=(0.963798,0.0378008,0.263941) material=G4_Fe + --> #secondaries=21 impactParameter[fm]=3.34234 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=2 + Collision 169 projectile=anti_xi_b0 Ekin[MeV]=16355.2 direction=(0.94509,0.192896,0.26381) material=G4_W + --> #secondaries=67 impactParameter[fm]=2.40858 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=4 + Collision 170 projectile=lambda_c+ Ekin[MeV]=4187.31 direction=(0.448837,0.727751,0.518579) material=G4_Cu + --> #secondaries=18 impactParameter[fm]=5.47554 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 171 projectile=anti_neutron Ekin[MeV]=5091.2 direction=(0.520065,0.708425,0.477144) material=G4_W + --> #secondaries=84 impactParameter[fm]=2.97287 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=180 #NNcollisions=1 + Collision 172 projectile=anti_triton Ekin[MeV]=27256.2 direction=(0.588967,0.241359,0.771274) material=G4_Cu + --> #secondaries=12 impactParameter[fm]=4.27872 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=65 #NNcollisions=1 + Collision 173 projectile=D0 Ekin[MeV]=4584.95 direction=(0.487299,0.813189,0.318217) material=G4_Cu + --> #secondaries=14 impactParameter[fm]=4.27571 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=1 + Collision 174 projectile=anti_hypertriton Ekin[MeV]=12081.4 direction=(0.829881,0.556276,0.0430676) material=G4_Si + --> #secondaries=12 impactParameter[fm]=4.29121 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=28 #NNcollisions=2 + Collision 175 projectile=neutron Ekin[MeV]=2117.68 direction=(0.682953,0.134934,0.717891) material=G4_C + --> #secondaries=8 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 176 projectile=xi_c0 Ekin[MeV]=7984 direction=(0.458077,0.392082,0.79777) material=G4_W + --> #secondaries=66 impactParameter[fm]=2.05747 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=180 #NNcollisions=1 + Collision 177 projectile=Bc- Ekin[MeV]=1163.8 direction=(0.340923,0.80057,0.492808) material=G4_Ar + --> #secondaries=12 impactParameter[fm]=2.47473 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=0 + Collision 178 projectile=anti_xi0 Ekin[MeV]=14368.5 direction=(0.282012,0.287583,0.915295) material=G4_H + --> #secondaries=6 impactParameter[fm]=0.430108 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 179 projectile=anti_lambda_b Ekin[MeV]=22948.1 direction=(0.693865,0.394333,0.602538) material=G4_Pb + --> #secondaries=21 impactParameter[fm]=6.85076 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=0 + Collision 180 projectile=anti_omega_c0 Ekin[MeV]=9906.67 direction=(0.937688,0.124768,0.324307) material=G4_Cu + --> #secondaries=24 impactParameter[fm]=3.74835 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=2 + Collision 181 projectile=anti_triton Ekin[MeV]=6189.85 direction=(0.772018,0.628473,0.0949187) material=G4_Ar + --> #secondaries=12 impactParameter[fm]=6.58703 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 182 projectile=anti_B0 Ekin[MeV]=17264.1 direction=(0.787342,0.520767,0.329992) material=G4_Fe + --> #secondaries=10 impactParameter[fm]=4.03882 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=0 + Collision 183 projectile=anti_xi- Ekin[MeV]=28039.2 direction=(0.522945,0.262865,0.810821) material=G4_Pb + --> #secondaries=92 impactParameter[fm]=2.27505 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=204 #NNcollisions=4 + Collision 184 projectile=lambda Ekin[MeV]=16594.3 direction=(0.613574,0.789504,0.0145024) material=G4_Be + --> #secondaries=10 impactParameter[fm]=2.30909 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 185 projectile=deuteron Ekin[MeV]=16264.6 direction=(0.282138,0.931656,0.228945) material=G4_Fe + --> #secondaries=38 impactParameter[fm]=4.61858 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=4 + Collision 186 projectile=Ds- Ekin[MeV]=17249.7 direction=(0.959301,0.10831,0.260789) material=G4_Al + --> #secondaries=28 impactParameter[fm]=3.39952 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=2 + Collision 187 projectile=anti_hypertriton Ekin[MeV]=7054.97 direction=(0.0827323,0.683264,0.725469) material=G4_He + --> #secondaries=7 impactParameter[fm]=1.65734 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=4 #NNcollisions=1 + Collision 188 projectile=hyperHe5 Ekin[MeV]=29801 direction=(0.664078,0.662584,0.346384) material=G4_C + --> #secondaries=24 impactParameter[fm]=1.2418 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=5 #NNcollisions=3 + Collision 189 projectile=anti_xi_b- Ekin[MeV]=9978.74 direction=(0.508589,0.860898,0.0138325) material=G4_Be + --> #secondaries=8 impactParameter[fm]=1.89487 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 190 projectile=doublehyperH4 Ekin[MeV]=1102.89 direction=(0.384342,0.874133,0.29694) material=G4_Fe + --> #secondaries=23 impactParameter[fm]=2.86217 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=50 #NNcollisions=0 + Collision 191 projectile=omega_b- Ekin[MeV]=20993.5 direction=(0.588647,0.594737,0.547524) material=G4_He + --> #secondaries=4 impactParameter[fm]=1.12766 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 192 projectile=hyperH4 Ekin[MeV]=5702.77 direction=(0.413046,0.297355,0.860798) material=G4_Pb + --> #secondaries=65 impactParameter[fm]=7.09827 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=196 #NNcollisions=2 + Collision 193 projectile=deuteron Ekin[MeV]=28768.5 direction=(0.115414,0.575723,0.809458) material=G4_W + --> #secondaries=102 impactParameter[fm]=3.64157 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=174 #NNcollisions=9 + Collision 194 projectile=B- Ekin[MeV]=17324.7 direction=(0.657523,0.584124,0.47588) material=G4_H + --> #secondaries=6 impactParameter[fm]=0.769152 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 195 projectile=anti_sigma+ Ekin[MeV]=14711.2 direction=(0.106305,0.827551,0.551234) material=G4_Be + --> #secondaries=10 impactParameter[fm]=2.26894 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 196 projectile=anti_lambda_c+ Ekin[MeV]=26659.3 direction=(0.520858,0.577876,0.628304) material=G4_Ar + --> #secondaries=50 impactParameter[fm]=0.994307 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=34 #NNcollisions=4 + Collision 197 projectile=sigma- Ekin[MeV]=25309.2 direction=(0.375565,0.845904,0.378679) material=G4_W + --> #secondaries=64 impactParameter[fm]=4.07602 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=4 + Collision 198 projectile=anti_lambda_b Ekin[MeV]=11808.4 direction=(0.00440158,0.967181,0.254049) material=G4_H + --> #secondaries=6 impactParameter[fm]=0.661966 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 199 projectile=D0 Ekin[MeV]=2803.94 direction=(0.580642,0.318693,0.749192) material=G4_C + --> #secondaries=8 impactParameter[fm]=2.11175 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=10 #NNcollisions=2 + Collision 200 projectile=lambda_c+ Ekin[MeV]=21504.7 direction=(0.643712,0.723472,0.249446) material=G4_C + --> #secondaries=17 impactParameter[fm]=1.49085 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=2 + List of produced secondaries: + j=0 sigma0 p=(3883.92,4537.36,2238.436488.88) MeV + j=1 kaon0S p=(760.601,1342.53,578.581721.42) MeV + j=2 pi0 p=(1408.64,1507.35,276.9842085.98) MeV + j=3 proton p=(850.647,1232.59,450.6271823.81) MeV + j=4 pi- p=(641.596,1133.23,169.671320.65) MeV + j=5 eta_prime p=(1494.24,635.708,148.7561891.12) MeV + j=6 sigma_c+ p=(1236.75,925.686,345.5532919.35) MeV + j=7 proton p=(-102.255,22.0913,200.413965.124) MeV + j=8 proton p=(-123.838,145.96,155.928970.21) MeV + j=9 pi- p=(1874.73,2104.53,777.7942927.13) MeV + j=10 pi0 p=(1903.7,2088.6,284.2242843.47) MeV + j=11 pi+ p=(625.065,897.294,145.8671112.02) MeV + j=12 triton p=(618.01,318.541,714.9942980.71) MeV + j=13 proton p=(122.727,-37.0843,-54.7895948.574) MeV + j=14 proton p=(46.8017,173.753,-126.628963.727) MeV + j=15 deuteron p=(-214.572,55.9058,-663.9822001.99) MeV + j=16 neutron p=(218.902,49.9181,265.2331001.77) MeV + Collision 201 projectile=xi- Ekin[MeV]=2813.01 direction=(0.773857,0.631233,0.0518699) material=G4_Fe --> #secondaries=24 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 51 projectile=anti_omega_c0 Ekin[MeV]=1109.83 direction=(0.707117,0.653058,0.271112) material=G4_H - --> #secondaries=2 impactParameter[fm]=0.619907 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=0 - Collision 52 projectile=B0 Ekin[MeV]=13180.2 direction=(0.659217,0.565805,0.495275) material=G4_He - --> #secondaries=6 impactParameter[fm]=1.53921 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 53 projectile=lambda Ekin[MeV]=22531.1 direction=(0.342092,0.935902,0.0840215) material=G4_Pb - --> #secondaries=70 impactParameter[fm]=4.94975 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=202 #NNcollisions=4 - Collision 54 projectile=kaon0L Ekin[MeV]=26092.8 direction=(0.711265,0.614105,0.34202) material=G4_Si - --> #secondaries=22 impactParameter[fm]=0.69034 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 55 projectile=anti_triton Ekin[MeV]=11715.6 direction=(0.0186945,0.909459,0.415373) material=G4_H - --> #secondaries=7 impactParameter[fm]=1.90084 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 56 projectile=lambda_b Ekin[MeV]=6971.92 direction=(0.854639,0.268596,0.444352) material=G4_Al - --> #secondaries=6 impactParameter[fm]=3.45113 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 57 projectile=xi_b0 Ekin[MeV]=11903.3 direction=(0.203683,0.75583,0.622281) material=G4_Si - --> #secondaries=20 impactParameter[fm]=1.07736 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=23 #NNcollisions=2 - Collision 58 projectile=xi_b0 Ekin[MeV]=2280.39 direction=(0.649756,0.451756,0.611338) material=G4_Al - --> #secondaries=11 impactParameter[fm]=3.68291 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=1 - Collision 59 projectile=D0 Ekin[MeV]=24693.3 direction=(0.147214,0.987448,0.0572169) material=G4_C - --> #secondaries=8 impactParameter[fm]=2.99517 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 60 projectile=sigma+ Ekin[MeV]=7029.41 direction=(0.741646,0.55382,0.378478) material=G4_Cu - --> #secondaries=8 impactParameter[fm]=5.49933 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=64 #NNcollisions=1 - Collision 61 projectile=anti_lambda Ekin[MeV]=1874.5 direction=(0.106993,0.512145,0.852209) material=G4_H - --> #secondaries=5 impactParameter[fm]=1.26192 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 62 projectile=Bc+ Ekin[MeV]=7548.7 direction=(0.508336,0.356503,0.783901) material=G4_Cu - --> #secondaries=13 impactParameter[fm]=4.68276 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=64 #NNcollisions=1 - Collision 63 projectile=D- Ekin[MeV]=1100.27 direction=(0.652632,0.327571,0.683204) material=G4_He - --> #secondaries=5 impactParameter[fm]=1.16364 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=2 #NNcollisions=0 - Collision 64 projectile=kaon- Ekin[MeV]=1789.24 direction=(0.30909,0.653713,0.690741) material=G4_Pb - --> #secondaries=56 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 65 projectile=xi_c+ Ekin[MeV]=2224.18 direction=(0.285488,0.916095,0.281543) material=G4_Al - --> #secondaries=10 impactParameter[fm]=4.13541 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 66 projectile=anti_lambda_b Ekin[MeV]=16653.2 direction=(0.350868,0.520528,0.778423) material=G4_H - --> #secondaries=6 impactParameter[fm]=1.19985 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 67 projectile=anti_deuteron Ekin[MeV]=16958.7 direction=(0.812732,0.05954,0.579588) material=G4_Be - --> #secondaries=12 impactParameter[fm]=1.83383 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=9 #NNcollisions=1 - Collision 68 projectile=Bs0 Ekin[MeV]=17492.1 direction=(0.178449,0.0719851,0.981312) material=G4_Al - --> #secondaries=6 impactParameter[fm]=2.95284 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 69 projectile=Bc- Ekin[MeV]=22112.6 direction=(0.363806,0.748483,0.554454) material=G4_He - --> #secondaries=4 impactParameter[fm]=0.769827 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 70 projectile=anti_sigma- Ekin[MeV]=5259.37 direction=(0.327874,0.791129,0.516346) material=G4_W - --> #secondaries=56 impactParameter[fm]=4.28245 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=182 #NNcollisions=1 - Collision 71 projectile=sigma+ Ekin[MeV]=12148.2 direction=(0.816887,0.0458085,0.574977) material=G4_Fe - --> #secondaries=25 impactParameter[fm]=3.62107 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=2 - Collision 72 projectile=anti_omega_c0 Ekin[MeV]=4719.86 direction=(0.616284,0.450482,0.645956) material=G4_H - --> #secondaries=2 impactParameter[fm]=0.969187 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 73 projectile=B- Ekin[MeV]=17007.5 direction=(0.781721,0.623571,0.00845134) material=G4_Fe - --> #secondaries=18 impactParameter[fm]=2.77804 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=54 #NNcollisions=1 - Collision 74 projectile=anti_triton Ekin[MeV]=28275 direction=(0.465429,0.307369,0.83) material=G4_H - --> #secondaries=12 impactParameter[fm]=3.92082 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=1 #NNcollisions=1 - Collision 75 projectile=anti_lambda_b Ekin[MeV]=7094.86 direction=(0.261516,0.703322,0.66102) material=G4_H - --> #secondaries=4 impactParameter[fm]=0.795913 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 76 projectile=Bc- Ekin[MeV]=1588.34 direction=(0.334879,0.892741,0.301445) material=G4_Ar - --> #secondaries=10 impactParameter[fm]=2.86871 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=0 - Collision 77 projectile=B+ Ekin[MeV]=11268.4 direction=(0.722965,0.645924,0.24516) material=G4_He - --> #secondaries=4 impactParameter[fm]=2.21581 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 78 projectile=Bc+ Ekin[MeV]=17693.5 direction=(0.0247567,0.385682,0.9223) material=G4_Al - --> #secondaries=7 impactParameter[fm]=1.10383 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 79 projectile=xi_b- Ekin[MeV]=26276.2 direction=(0.259486,0.749252,0.609335) material=G4_Si - --> #secondaries=8 impactParameter[fm]=2.92402 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 80 projectile=deuteron Ekin[MeV]=14560.6 direction=(0.537922,0.182449,0.823014) material=G4_Ar - --> #secondaries=41 impactParameter[fm]=2.64923 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=34 #NNcollisions=3 - Collision 81 projectile=kaon- Ekin[MeV]=23386.3 direction=(0.11373,0.259351,0.959063) material=G4_Ar - --> #secondaries=22 impactParameter[fm]=2.36158 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 82 projectile=anti_lambda_b Ekin[MeV]=8503.56 direction=(0.265185,0.671309,0.692114) material=G4_Al - --> #secondaries=7 impactParameter[fm]=4.23101 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 83 projectile=anti_omega- Ekin[MeV]=2742.73 direction=(0.319133,0.628115,0.709666) material=G4_C - --> #secondaries=8 impactParameter[fm]=1.39107 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 - Collision 84 projectile=anti_lambda_c+ Ekin[MeV]=8352.09 direction=(0.759951,0.174763,0.626045) material=G4_He - --> #secondaries=7 impactParameter[fm]=1.38212 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=1 #NNcollisions=2 - Collision 85 projectile=Ds+ Ekin[MeV]=3164.09 direction=(0.721939,0.354558,0.594216) material=G4_Be - --> #secondaries=5 impactParameter[fm]=2.17532 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 86 projectile=anti_xi0 Ekin[MeV]=15828.5 direction=(0.492568,0.604412,0.62615) material=G4_Cu - --> #secondaries=32 impactParameter[fm]=3.91111 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=64 #NNcollisions=1 - Collision 87 projectile=kaon- Ekin[MeV]=12415 direction=(0.422827,0.0566198,0.90444) material=G4_C - --> #secondaries=13 impactParameter[fm]=2.57673 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 88 projectile=xi_b- Ekin[MeV]=22145.6 direction=(0.721018,0.577442,0.383005) material=G4_H - --> #secondaries=4 impactParameter[fm]=0.643551 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 89 projectile=anti_omega- Ekin[MeV]=19069.6 direction=(0.739881,0.0337084,0.671893) material=G4_Ar - --> #secondaries=23 impactParameter[fm]=3.46161 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=37 #NNcollisions=3 - Collision 90 projectile=xi_c0 Ekin[MeV]=26309.8 direction=(0.865266,0.480922,0.141525) material=G4_Si - --> #secondaries=13 impactParameter[fm]=3.84574 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 91 projectile=omega_c0 Ekin[MeV]=4025.9 direction=(0.461659,0.551173,0.695039) material=G4_Al - --> #secondaries=5 impactParameter[fm]=3.30738 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 92 projectile=B- Ekin[MeV]=18334.2 direction=(0.0534855,0.786095,0.615788) material=G4_Al - --> #secondaries=12 impactParameter[fm]=0.148954 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 93 projectile=anti_D0 Ekin[MeV]=20483.9 direction=(0.730218,0.659116,0.179857) material=G4_C - --> #secondaries=11 impactParameter[fm]=2.50544 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 94 projectile=lambda Ekin[MeV]=17777.3 direction=(0.478819,0.705718,0.522201) material=G4_Pb - --> #secondaries=94 impactParameter[fm]=4.50404 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=199 #NNcollisions=6 - Collision 95 projectile=lambda_b Ekin[MeV]=9310.65 direction=(0.0470491,0.568139,0.821586) material=G4_Be - --> #secondaries=9 impactParameter[fm]=3.16888 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 96 projectile=kaon- Ekin[MeV]=24022.8 direction=(0.692193,0.337506,0.637933) material=G4_H - --> #secondaries=9 impactParameter[fm]=0.27945 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 97 projectile=triton Ekin[MeV]=20714.3 direction=(0.713813,0.514919,0.474688) material=G4_C - --> #secondaries=17 impactParameter[fm]=1.43605 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=8 #NNcollisions=3 - Collision 98 projectile=lambda Ekin[MeV]=14560.3 direction=(0.54925,0.71673,0.429677) material=G4_W - --> #secondaries=50 impactParameter[fm]=4.41578 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=3 - Collision 99 projectile=anti_Bs0 Ekin[MeV]=18141.3 direction=(0.390221,0.589991,0.706851) material=G4_H - --> #secondaries=5 impactParameter[fm]=1.39465 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 100 projectile=xi0 Ekin[MeV]=28835 direction=(0.687419,0.563023,0.458761) material=G4_He - --> #secondaries=12 impactParameter[fm]=0.697405 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - List of produced secondaries: - j=0 neutron p=(2568.29,2076.29,1795.063874.55) MeV - j=1 pi0 p=(704.904,812.96,223.4191107.22) MeV - j=2 proton p=(210.028,662.649,390.4761231.28) MeV - j=3 proton p=(-208.985,-112.241,-107.179973.712) MeV - j=4 pi- p=(7497.88,5996.74,4808.6410738.8) MeV - j=5 pi+ p=(1762.27,998.315,1030.072276.56) MeV - j=6 pi0 p=(822.778,550.116,755.8581252.65) MeV - j=7 kaon- p=(4654.6,3750.84,2816.426626.46) MeV - j=8 pi+ p=(475.333,482.631,697.584982.333) MeV - j=9 kaon- p=(1924.45,1606.26,1125.922791.95) MeV - j=10 proton p=(457.095,73.7445,167.9491059.69) MeV - j=11 neutron p=(-162.638,60.721,114.293962.281) MeV - Collision 101 projectile=anti_xi_c0 Ekin[MeV]=21657.8 direction=(0.622513,0.776152,0.100326) material=G4_Pb - --> #secondaries=54 impactParameter[fm]=5.43851 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=205 #NNcollisions=3 - Collision 102 projectile=anti_xi_c0 Ekin[MeV]=6404.56 direction=(0.262118,0.50237,0.823965) material=G4_W - --> #secondaries=54 impactParameter[fm]=2.20333 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=177 #NNcollisions=2 - Collision 103 projectile=anti_D0 Ekin[MeV]=19683.5 direction=(0.821773,0.569667,0.0129895) material=G4_W - --> #secondaries=40 impactParameter[fm]=1.42743 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=183 #NNcollisions=1 - Collision 104 projectile=triton Ekin[MeV]=7495.07 direction=(0.111476,0.075882,0.990866) material=G4_He - --> #secondaries=6 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 105 projectile=D0 Ekin[MeV]=11564.3 direction=(0.33037,0.664596,0.670199) material=G4_C - --> #secondaries=8 impactParameter[fm]=3.14332 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 106 projectile=anti_deuteron Ekin[MeV]=17051.6 direction=(0.145537,0.65178,0.744313) material=G4_C - --> #secondaries=15 impactParameter[fm]=2.43599 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=2 - Collision 107 projectile=anti_xi_b- Ekin[MeV]=9359.94 direction=(0.791771,0.248086,0.558168) material=G4_H - --> #secondaries=3 impactParameter[fm]=0.788482 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 108 projectile=triton Ekin[MeV]=26913.2 direction=(0.748617,0.227493,0.622752) material=G4_Fe - --> #secondaries=53 impactParameter[fm]=3.92389 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=49 #NNcollisions=7 - Collision 109 projectile=anti_Bs0 Ekin[MeV]=16942.9 direction=(0.579148,0.600164,0.551716) material=G4_Fe - --> #secondaries=18 impactParameter[fm]=1.28448 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=54 #NNcollisions=2 - Collision 110 projectile=anti_He3 Ekin[MeV]=19284.3 direction=(0.567528,0.713503,0.410883) material=G4_Ar - --> #secondaries=22 impactParameter[fm]=4.76574 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 111 projectile=alpha Ekin[MeV]=11712.5 direction=(0.173841,0.947239,0.269289) material=G4_Ar - --> #secondaries=6 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 112 projectile=kaon- Ekin[MeV]=14890.2 direction=(0.00962302,0.987142,0.159555) material=G4_Al - --> #secondaries=13 impactParameter[fm]=3.48005 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 113 projectile=xi_b- Ekin[MeV]=1869.12 direction=(0.383146,0.558621,0.735623) material=G4_H - --> #secondaries=2 impactParameter[fm]=0.857209 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=0 - Collision 114 projectile=anti_omega_b- Ekin[MeV]=15297.3 direction=(0.518761,0.472988,0.712159) material=G4_H - --> #secondaries=4 impactParameter[fm]=2.17178 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 115 projectile=omega- Ekin[MeV]=1417.7 direction=(0.221702,0.967871,0.118634) material=G4_Al - --> #secondaries=15 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 116 projectile=sigma- Ekin[MeV]=3892.86 direction=(0.0170496,0.699572,0.714358) material=G4_Cu - --> #secondaries=32 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 117 projectile=pi+ Ekin[MeV]=9898.14 direction=(0.0896572,0.98825,0.123792) material=G4_He - --> #secondaries=8 impactParameter[fm]=2.59901 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 118 projectile=B0 Ekin[MeV]=20331.5 direction=(0.224754,0.789508,0.571107) material=G4_Cu - --> #secondaries=18 impactParameter[fm]=3.40251 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=63 #NNcollisions=2 - Collision 119 projectile=anti_xi- Ekin[MeV]=7591.1 direction=(0.204154,0.789275,0.579108) material=G4_Cu - --> #secondaries=6 impactParameter[fm]=6.34774 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=0 - Collision 120 projectile=anti_omega_c0 Ekin[MeV]=4513.59 direction=(0.745769,0.566236,0.351006) material=G4_Be - --> #secondaries=9 impactParameter[fm]=2.13708 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 121 projectile=anti_D0 Ekin[MeV]=27245.1 direction=(0.426857,0.139504,0.893494) material=G4_Pb - --> #secondaries=38 impactParameter[fm]=5.57052 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=2 - Collision 122 projectile=anti_proton Ekin[MeV]=7996.55 direction=(0.434619,0.331663,0.837321) material=G4_W - --> #secondaries=26 impactParameter[fm]=6.03993 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=185 #NNcollisions=0 - Collision 123 projectile=Bs0 Ekin[MeV]=1810.86 direction=(0.138079,0.554751,0.820479) material=G4_H - --> #secondaries=2 impactParameter[fm]=1.51674 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 124 projectile=Ds+ Ekin[MeV]=24386.5 direction=(0.641077,0.634593,0.431639) material=G4_H - --> #secondaries=8 impactParameter[fm]=0.201985 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 125 projectile=anti_D0 Ekin[MeV]=8335.12 direction=(0.52724,0.815344,0.239232) material=G4_Ar - --> #secondaries=5 impactParameter[fm]=4.74515 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 126 projectile=anti_He3 Ekin[MeV]=19640.4 direction=(0.253749,0.109644,0.961036) material=G4_W - --> #secondaries=46 impactParameter[fm]=7.26035 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=182 #NNcollisions=3 - Collision 127 projectile=anti_He3 Ekin[MeV]=17369.9 direction=(0.19925,0.931996,0.302791) material=G4_Pb - --> #secondaries=55 impactParameter[fm]=6.57226 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=202 #NNcollisions=2 - Collision 128 projectile=Ds- Ekin[MeV]=11114.8 direction=(0.472965,0.59617,0.648758) material=G4_Cu - --> #secondaries=16 impactParameter[fm]=3.36475 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=64 #NNcollisions=1 - Collision 129 projectile=neutron Ekin[MeV]=10533.2 direction=(0.759495,0.591528,0.270669) material=G4_Si - --> #secondaries=17 impactParameter[fm]=4.58342 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 130 projectile=pi+ Ekin[MeV]=19962.5 direction=(0.231594,0.890739,0.391087) material=G4_Fe - --> #secondaries=18 impactParameter[fm]=3.90075 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 131 projectile=anti_xi0 Ekin[MeV]=7741.01 direction=(0.685529,0.334561,0.646621) material=G4_C - --> #secondaries=10 impactParameter[fm]=1.91972 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 132 projectile=anti_lambda_b Ekin[MeV]=19095.9 direction=(0.723013,0.657374,0.212394) material=G4_Al - --> #secondaries=10 impactParameter[fm]=4.63808 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 133 projectile=pi- Ekin[MeV]=1372.12 direction=(0.0343605,0.454703,0.88998) material=G4_Si - --> #secondaries=16 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 134 projectile=pi+ Ekin[MeV]=4089.86 direction=(0.21572,0.383352,0.898057) material=G4_Si - --> #secondaries=7 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 135 projectile=anti_He3 Ekin[MeV]=18881.7 direction=(0.103171,0.657756,0.746132) material=G4_Si - --> #secondaries=19 impactParameter[fm]=3.81008 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 136 projectile=anti_Bs0 Ekin[MeV]=24383.1 direction=(0.444927,0.890843,0.0918596) material=G4_Ar - --> #secondaries=22 impactParameter[fm]=1.37123 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=1 - Collision 137 projectile=kaon0S Ekin[MeV]=22727.8 direction=(0.664564,0.0503344,0.745534) material=G4_Be - --> #secondaries=16 impactParameter[fm]=0.9906 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=6 #NNcollisions=3 - Collision 138 projectile=anti_xi_c0 Ekin[MeV]=23204.6 direction=(0.375142,0.514034,0.771387) material=G4_Al - --> #secondaries=29 impactParameter[fm]=0.69967 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 139 projectile=anti_xi0 Ekin[MeV]=11601.1 direction=(0.646478,0.670891,0.363279) material=G4_Si - --> #secondaries=8 impactParameter[fm]=3.43289 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=0 - Collision 140 projectile=D0 Ekin[MeV]=16840.2 direction=(0.917493,0.134981,0.374148) material=G4_W - --> #secondaries=47 impactParameter[fm]=1.83878 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=181 #NNcollisions=1 - Collision 141 projectile=anti_omega_c0 Ekin[MeV]=17144.8 direction=(0.95727,0.251651,0.142501) material=G4_W - --> #secondaries=50 impactParameter[fm]=4.32044 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=184 #NNcollisions=2 - Collision 142 projectile=B+ Ekin[MeV]=29952.3 direction=(0.536796,0.116656,0.835608) material=G4_Si - --> #secondaries=21 impactParameter[fm]=2.61206 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=2 - Collision 143 projectile=pi- Ekin[MeV]=26322.2 direction=(0.555182,0.831469,0.020778) material=G4_H - --> #secondaries=9 impactParameter[fm]=0.887563 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 144 projectile=anti_neutron Ekin[MeV]=7643.1 direction=(0.601181,0.411914,0.684768) material=G4_Si - --> #secondaries=17 impactParameter[fm]=1.20409 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=28 #NNcollisions=1 - Collision 145 projectile=anti_lambda_b Ekin[MeV]=21121.1 direction=(0.599672,0.367753,0.71074) material=G4_W - --> #secondaries=62 impactParameter[fm]=3.06834 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=177 #NNcollisions=5 - Collision 146 projectile=anti_lambda_c+ Ekin[MeV]=20529.1 direction=(0.298037,0.94594,0.127949) material=G4_H - --> #secondaries=3 impactParameter[fm]=1.41414 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 147 projectile=anti_D0 Ekin[MeV]=26848.5 direction=(0.522215,0.430843,0.73598) material=G4_Si - --> #secondaries=19 impactParameter[fm]=1.94175 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=2 - Collision 148 projectile=neutron Ekin[MeV]=4155.39 direction=(0.158038,0.7791,0.606652) material=G4_He - --> #secondaries=11 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 149 projectile=neutron Ekin[MeV]=29385.5 direction=(0.305292,0.555217,0.773648) material=G4_Al - --> #secondaries=30 impactParameter[fm]=3.34174 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 150 projectile=anti_triton Ekin[MeV]=12070.7 direction=(0.673834,0.113219,0.730157) material=G4_Be - --> #secondaries=12 impactParameter[fm]=1.5557 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 151 projectile=Ds+ Ekin[MeV]=24864.4 direction=(0.845982,0.0171286,0.532936) material=G4_Fe - --> #secondaries=22 impactParameter[fm]=1.96814 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=54 #NNcollisions=2 - Collision 152 projectile=anti_Bs0 Ekin[MeV]=23606.1 direction=(0.46806,0.515709,0.71761) material=G4_H - --> #secondaries=5 impactParameter[fm]=0.292259 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 153 projectile=kaon+ Ekin[MeV]=29812.2 direction=(0.334371,0.493082,0.80316) material=G4_Be - --> #secondaries=7 impactParameter[fm]=2.30548 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 154 projectile=anti_xi_b- Ekin[MeV]=22450.9 direction=(0.285015,0.645441,0.708641) material=G4_Be - --> #secondaries=5 impactParameter[fm]=3.36165 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 155 projectile=xi0 Ekin[MeV]=14310.5 direction=(0.60174,0.470511,0.64539) material=G4_W - --> #secondaries=54 impactParameter[fm]=6.29311 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=1 - Collision 156 projectile=alpha Ekin[MeV]=29094.2 direction=(0.28328,0.0227837,0.958766) material=G4_Cu - --> #secondaries=13 impactParameter[fm]=6.3099 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=64 #NNcollisions=2 - Collision 157 projectile=anti_sigma- Ekin[MeV]=14699.1 direction=(0.50584,0.859605,0.0721419) material=G4_Be - --> #secondaries=10 impactParameter[fm]=2.63914 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 158 projectile=proton Ekin[MeV]=9634.77 direction=(0.404251,0.817568,0.410078) material=G4_Ar - --> #secondaries=11 impactParameter[fm]=7.4122 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 159 projectile=pi+ Ekin[MeV]=9545.59 direction=(0.68384,0.565418,0.461156) material=G4_Si - --> #secondaries=19 impactParameter[fm]=2.81657 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 160 projectile=D0 Ekin[MeV]=11479.2 direction=(0.737511,0.659993,0.143131) material=G4_Ar - --> #secondaries=29 impactParameter[fm]=1.95995 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=37 #NNcollisions=2 - Collision 161 projectile=B+ Ekin[MeV]=19173.9 direction=(0.68339,0.189526,0.705023) material=G4_Ar - --> #secondaries=12 impactParameter[fm]=4.15366 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 162 projectile=anti_omega_b- Ekin[MeV]=27491.9 direction=(0.753816,0.340498,0.56198) material=G4_C - --> #secondaries=9 impactParameter[fm]=2.47185 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 163 projectile=anti_xi_c0 Ekin[MeV]=28156.1 direction=(0.222609,0.344719,0.911929) material=G4_Cu - --> #secondaries=7 impactParameter[fm]=6.82648 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=64 #NNcollisions=0 - Collision 164 projectile=anti_xi- Ekin[MeV]=22826 direction=(0.573031,0.801562,0.170685) material=G4_Ar - --> #secondaries=46 impactParameter[fm]=1.52332 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=35 #NNcollisions=4 - Collision 165 projectile=lambda Ekin[MeV]=3493.98 direction=(0.447617,0.670246,0.591954) material=G4_Si - --> #secondaries=9 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 166 projectile=D+ Ekin[MeV]=11432 direction=(0.427313,0.454518,0.781548) material=G4_Si - --> #secondaries=20 impactParameter[fm]=1.11844 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 167 projectile=anti_Bs0 Ekin[MeV]=27320.1 direction=(0.7585,0.613203,0.220591) material=G4_H - --> #secondaries=3 impactParameter[fm]=0.881127 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 168 projectile=pi- Ekin[MeV]=7608.96 direction=(0.128387,0.223058,0.966313) material=G4_H - --> #secondaries=3 impactParameter[fm]=0.771183 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 169 projectile=anti_xi- Ekin[MeV]=14487.2 direction=(0.435429,0.42908,0.791386) material=G4_Al - --> #secondaries=18 impactParameter[fm]=3.48206 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 170 projectile=B- Ekin[MeV]=6547.84 direction=(0.368584,0.755461,0.541687) material=G4_Al - --> #secondaries=8 impactParameter[fm]=2.06859 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 171 projectile=anti_lambda Ekin[MeV]=14419.3 direction=(0.215573,0.789168,0.575102) material=G4_Al - --> #secondaries=16 impactParameter[fm]=3.13515 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 172 projectile=deuteron Ekin[MeV]=26770.9 direction=(0.272662,0.89329,0.357335) material=G4_C - --> #secondaries=18 impactParameter[fm]=2.41448 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=2 - Collision 173 projectile=Bs0 Ekin[MeV]=11850.4 direction=(0.358759,0.541141,0.760565) material=G4_C - --> #secondaries=5 impactParameter[fm]=2.9681 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 174 projectile=xi_c0 Ekin[MeV]=4766.84 direction=(0.723233,0.199602,0.66113) material=G4_Cu - --> #secondaries=14 impactParameter[fm]=2.78883 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=64 #NNcollisions=1 - Collision 175 projectile=anti_sigma- Ekin[MeV]=13794.7 direction=(0.655981,0.417129,0.629041) material=G4_Cu - --> #secondaries=40 impactParameter[fm]=2.30453 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=2 - Collision 176 projectile=anti_xi_c0 Ekin[MeV]=26968.3 direction=(0.93157,0.000616231,0.363561) material=G4_Si - --> #secondaries=15 impactParameter[fm]=3.29212 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 177 projectile=anti_B0 Ekin[MeV]=13842.2 direction=(0.748446,0.65733,0.0880063) material=G4_Si - --> #secondaries=12 impactParameter[fm]=4.57523 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 178 projectile=anti_deuteron Ekin[MeV]=20025.9 direction=(0.75702,0.150238,0.635885) material=G4_W - --> #secondaries=119 impactParameter[fm]=3.80446 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=176 #NNcollisions=6 - Collision 179 projectile=anti_xi_c+ Ekin[MeV]=3194.6 direction=(0.59239,0.412862,0.691823) material=G4_W - --> #secondaries=40 impactParameter[fm]=0.997394 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=178 #NNcollisions=2 - Collision 180 projectile=anti_omega_c0 Ekin[MeV]=28389 direction=(0.583021,0.115407,0.804219) material=G4_Cu - --> #secondaries=39 impactParameter[fm]=2.33221 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 181 projectile=Bs0 Ekin[MeV]=16242.5 direction=(0.918759,0.355156,0.172473) material=G4_Pb - --> #secondaries=37 impactParameter[fm]=5.13173 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=2 - Collision 182 projectile=xi_c0 Ekin[MeV]=28139.2 direction=(0.420647,0.772471,0.475757) material=G4_W - --> #secondaries=67 impactParameter[fm]=4.96829 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=179 #NNcollisions=3 - Collision 183 projectile=anti_triton Ekin[MeV]=28400.7 direction=(0.418421,0.903303,0.0946953) material=G4_H - --> #secondaries=9 impactParameter[fm]=1.9169 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=1 #NNcollisions=2 - Collision 184 projectile=triton Ekin[MeV]=19821.8 direction=(0.0142625,0.620416,0.784143) material=G4_Ar - --> #secondaries=16 impactParameter[fm]=6.33079 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 185 projectile=omega_b- Ekin[MeV]=6051.27 direction=(0.757467,0.558662,0.337846) material=G4_C - --> #secondaries=8 impactParameter[fm]=2.65417 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=0 - Collision 186 projectile=anti_lambda_b Ekin[MeV]=25400.7 direction=(0.265037,0.0911392,0.959921) material=G4_H - --> #secondaries=5 impactParameter[fm]=1.86377 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 187 projectile=B+ Ekin[MeV]=29276.3 direction=(0.854402,0.472372,0.216478) material=G4_He - --> #secondaries=5 impactParameter[fm]=1.54419 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 188 projectile=xi- Ekin[MeV]=7046.45 direction=(0.924303,0.258678,0.280623) material=G4_W - --> #secondaries=31 impactParameter[fm]=7.39393 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=182 #NNcollisions=1 - Collision 189 projectile=sigma+ Ekin[MeV]=3049.23 direction=(0.593829,0.775485,0.214453) material=G4_W - --> #secondaries=56 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 190 projectile=Bc+ Ekin[MeV]=3003.57 direction=(0.378742,0.702018,0.603096) material=G4_Cu - --> #secondaries=12 impactParameter[fm]=2.7389 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=0 - Collision 191 projectile=Ds+ Ekin[MeV]=9608.84 direction=(0.00462814,0.56789,0.823091) material=G4_Si - --> #secondaries=16 impactParameter[fm]=3.82858 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 192 projectile=Bc- Ekin[MeV]=14915.3 direction=(0.334292,0.854499,0.397594) material=G4_Al - --> #secondaries=12 impactParameter[fm]=1.82691 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=1 - Collision 193 projectile=anti_B0 Ekin[MeV]=2516.59 direction=(0.194399,0.248386,0.948954) material=G4_He - --> #secondaries=5 impactParameter[fm]=1.6233 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=2 #NNcollisions=0 - Collision 194 projectile=anti_omega_b- Ekin[MeV]=16972.6 direction=(0.671591,0.272055,0.689167) material=G4_Al - --> #secondaries=22 impactParameter[fm]=2.43065 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=1 - Collision 195 projectile=alpha Ekin[MeV]=21413.2 direction=(0.614916,0.385442,0.687977) material=G4_Si - --> #secondaries=30 impactParameter[fm]=2.2022 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=23 #NNcollisions=7 - Collision 196 projectile=deuteron Ekin[MeV]=28007.1 direction=(0.724476,0.640752,0.254107) material=G4_Ar - --> #secondaries=45 impactParameter[fm]=2.85642 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=35 #NNcollisions=4 - Collision 197 projectile=kaon0L Ekin[MeV]=12919.7 direction=(0.62621,0.609406,0.486298) material=G4_He - --> #secondaries=7 impactParameter[fm]=1.53546 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 198 projectile=anti_deuteron Ekin[MeV]=26481.2 direction=(0.669381,0.168823,0.723483) material=G4_W - --> #secondaries=94 impactParameter[fm]=4.61983 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=180 #NNcollisions=6 - Collision 199 projectile=omega_b- Ekin[MeV]=29960.9 direction=(0.617044,0.0965065,0.780989) material=G4_W - --> #secondaries=48 impactParameter[fm]=4.57006 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=2 - Collision 200 projectile=anti_He3 Ekin[MeV]=19192.3 direction=(0.373575,0.536899,0.756427) material=G4_C - --> #secondaries=18 impactParameter[fm]=2.51167 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=11 #NNcollisions=2 - List of produced secondaries: - j=0 kaon0L p=(157.013,372.049,370.238740.114) MeV - j=1 sigma+ p=(1323.78,2424.94,3267.694441.3) MeV - j=2 pi+ p=(221.673,444.187,706.056874.32) MeV - j=3 anti_sigma+ p=(526.151,1274.06,1149.922153.37) MeV - j=4 sigma0 p=(1869.85,1532.53,2067.363397.26) MeV - j=5 neutron p=(79.994,-64.1679,571.1991104.34) MeV - j=6 neutron p=(-106.35,140.692,-364.8151023.22) MeV - j=7 neutron p=(-53.3654,214.629,428.1861055.95) MeV - j=8 proton p=(119.2,3.47976,143.32956.617) MeV - j=9 pi- p=(397.01,-14.7635,719.018833.248) MeV - j=10 anti_neutron p=(833.537,406.947,450.7291395.11) MeV - j=11 pi- p=(46.5949,179.008,626.137667.639) MeV - j=12 pi0 p=(69.5672,441.956,561.052730.181) MeV - j=13 pi+ p=(171.279,231.344,69.1658327.292) MeV - j=14 He3 p=(112.311,-751.386,632.4912977.3) MeV - j=15 neutron p=(-381.003,103.871,29.36171019.61) MeV - j=16 deuteron p=(258.853,858.029,-517.2152142.11) MeV - j=17 anti_neutron p=(2505.63,3918.17,5595.967336.74) MeV - Collision 201 projectile=kaon+ Ekin[MeV]=27748.8 direction=(0.812344,0.556913,0.173048) material=G4_Cu - --> #secondaries=21 impactParameter[fm]=3.00592 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=2 - Collision 202 projectile=anti_lambda Ekin[MeV]=2860.95 direction=(0.0607083,0.494282,0.867179) material=G4_Si - --> #secondaries=19 impactParameter[fm]=2.09394 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=28 #NNcollisions=1 - Collision 203 projectile=B- Ekin[MeV]=14464.2 direction=(0.374157,0.770128,0.516632) material=G4_Si - --> #secondaries=7 impactParameter[fm]=2.20484 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 204 projectile=deuteron Ekin[MeV]=19027.9 direction=(0.431136,0.119542,0.894333) material=G4_Be - --> #secondaries=11 impactParameter[fm]=2.42608 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=6 #NNcollisions=3 - Collision 205 projectile=anti_xi_b0 Ekin[MeV]=7125.52 direction=(0.710509,0.565768,0.418429) material=G4_W - --> #secondaries=18 impactParameter[fm]=5.66847 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=1 - Collision 206 projectile=anti_deuteron Ekin[MeV]=7585.82 direction=(0.885111,0.0970433,0.45515) material=G4_W - --> #secondaries=39 impactParameter[fm]=6.31718 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=2 - Collision 207 projectile=Ds+ Ekin[MeV]=5163.9 direction=(0.993917,0.0905948,0.06262) material=G4_H - --> #secondaries=3 impactParameter[fm]=1.20528 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 208 projectile=anti_omega- Ekin[MeV]=23088.1 direction=(0.362368,0.50558,0.782993) material=G4_Al - --> #secondaries=20 impactParameter[fm]=2.31568 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 209 projectile=anti_B0 Ekin[MeV]=16870.5 direction=(0.355303,0.89942,0.254567) material=G4_Ar - --> #secondaries=38 impactParameter[fm]=2.19531 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=37 #NNcollisions=2 - Collision 210 projectile=anti_Bs0 Ekin[MeV]=25385.5 direction=(0.44588,0.889079,0.103585) material=G4_Al - --> #secondaries=16 impactParameter[fm]=2.89498 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 211 projectile=neutron Ekin[MeV]=29799.1 direction=(0.188586,0.278331,0.941789) material=G4_Fe - --> #secondaries=26 impactParameter[fm]=5.23691 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=2 - Collision 212 projectile=anti_Bs0 Ekin[MeV]=13151.1 direction=(0.667924,0.677631,0.307726) material=G4_Al - --> #secondaries=9 impactParameter[fm]=4.99721 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 213 projectile=pi+ Ekin[MeV]=11001.2 direction=(0.585398,0.630631,0.509523) material=G4_Ar - --> #secondaries=26 impactParameter[fm]=1.32897 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 214 projectile=lambda Ekin[MeV]=24552.6 direction=(0.672875,0.611644,0.416091) material=G4_Ar - --> #secondaries=39 impactParameter[fm]=2.2927 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 215 projectile=alpha Ekin[MeV]=7773.28 direction=(0.786083,0.119706,0.606419) material=G4_Ar - --> #secondaries=12 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 216 projectile=anti_He3 Ekin[MeV]=28712.7 direction=(0.682899,0.148813,0.715195) material=G4_Fe - --> #secondaries=28 impactParameter[fm]=5.2898 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 217 projectile=pi- Ekin[MeV]=3901.79 direction=(0.154355,0.679841,0.716931) material=G4_W - --> #secondaries=62 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 218 projectile=D- Ekin[MeV]=7411.47 direction=(0.703564,0.61837,0.350167) material=G4_He - --> #secondaries=13 impactParameter[fm]=0.267013 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=2 #NNcollisions=2 - Collision 219 projectile=sigma- Ekin[MeV]=19016.2 direction=(0.505698,0.632409,0.586795) material=G4_Al - --> #secondaries=34 impactParameter[fm]=2.21548 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=3 - Collision 220 projectile=anti_deuteron Ekin[MeV]=6377.08 direction=(0.552819,0.487137,0.676084) material=G4_C - --> #secondaries=11 impactParameter[fm]=3.53917 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=10 #NNcollisions=1 - Collision 221 projectile=xi0 Ekin[MeV]=21339.3 direction=(0.224308,0.623357,0.749074) material=G4_H - --> #secondaries=5 impactParameter[fm]=0.773886 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 222 projectile=kaon- Ekin[MeV]=21976.3 direction=(0.725114,0.580057,0.371138) material=G4_Cu - --> #secondaries=12 impactParameter[fm]=5.16237 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=64 #NNcollisions=1 - Collision 223 projectile=lambda Ekin[MeV]=14051.1 direction=(0.428275,0.773312,0.467514) material=G4_Be - --> #secondaries=15 impactParameter[fm]=2.18061 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=7 #NNcollisions=2 - Collision 224 projectile=D+ Ekin[MeV]=5306.95 direction=(0.532025,0.704317,0.469986) material=G4_Fe - --> #secondaries=7 impactParameter[fm]=4.68147 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=0 - Collision 225 projectile=He3 Ekin[MeV]=11205.5 direction=(0.648143,0.0462893,0.76011) material=G4_He - --> #secondaries=6 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 226 projectile=kaon+ Ekin[MeV]=4491.36 direction=(0.212117,0.948466,0.235414) material=G4_Si - --> #secondaries=9 impactParameter[fm]=5.43603 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 227 projectile=xi_b0 Ekin[MeV]=5919.38 direction=(0.044881,0.99769,0.0509984) material=G4_Pb - --> #secondaries=31 impactParameter[fm]=5.27841 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=203 #NNcollisions=2 - Collision 228 projectile=B0 Ekin[MeV]=28211 direction=(0.617775,0.629845,0.470796) material=G4_Cu - --> #secondaries=15 impactParameter[fm]=2.2537 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 229 projectile=He3 Ekin[MeV]=6076.94 direction=(0.829075,0.454409,0.325802) material=G4_H - --> #secondaries=4 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 230 projectile=Bs0 Ekin[MeV]=16373.9 direction=(0.00646392,0.090253,0.995898) material=G4_Si - --> #secondaries=15 impactParameter[fm]=1.44559 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=2 - Collision 231 projectile=alpha Ekin[MeV]=12169.5 direction=(0.626183,0.409368,0.663561) material=G4_H - --> #secondaries=6 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 232 projectile=pi+ Ekin[MeV]=5532.08 direction=(0.987205,0.0846405,0.135139) material=G4_He - --> #secondaries=8 impactParameter[fm]=2.05973 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 233 projectile=anti_D0 Ekin[MeV]=27166.6 direction=(0.032384,0.268087,0.96285) material=G4_Al - --> #secondaries=18 impactParameter[fm]=3.662 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 234 projectile=proton Ekin[MeV]=17666.2 direction=(0.191082,0.924427,0.330033) material=G4_Al - --> #secondaries=20 impactParameter[fm]=2.99811 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 235 projectile=deuteron Ekin[MeV]=19774.3 direction=(0.331027,0.307842,0.891994) material=G4_W - --> #secondaries=62 impactParameter[fm]=4.45834 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=177 #NNcollisions=7 - Collision 236 projectile=deuteron Ekin[MeV]=11735.2 direction=(0.155136,0.855547,0.493936) material=G4_Be - --> #secondaries=10 impactParameter[fm]=2.16462 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=7 #NNcollisions=2 - Collision 237 projectile=anti_He3 Ekin[MeV]=10785.8 direction=(0.540966,0.0106757,0.840977) material=G4_Si - --> #secondaries=37 impactParameter[fm]=0.952059 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=5 - Collision 238 projectile=Bs0 Ekin[MeV]=25288.1 direction=(0.783554,0.428284,0.450129) material=G4_H - --> #secondaries=2 impactParameter[fm]=0.547161 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 239 projectile=anti_neutron Ekin[MeV]=13247.5 direction=(0.494199,0.239374,0.835744) material=G4_W - --> #secondaries=13 impactParameter[fm]=8.46097 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=1 - Collision 240 projectile=kaon0L Ekin[MeV]=25929.6 direction=(0.393041,0.81462,0.426514) material=G4_Ar - --> #secondaries=18 impactParameter[fm]=1.9205 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=1 - Collision 241 projectile=B+ Ekin[MeV]=13438.6 direction=(0.61704,0.472043,0.629632) material=G4_Ar - --> #secondaries=20 impactParameter[fm]=0.904415 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=1 - Collision 242 projectile=anti_lambda_c+ Ekin[MeV]=25522.4 direction=(0.146255,0.576153,0.80415) material=G4_H - --> #secondaries=9 impactParameter[fm]=0.4963 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 243 projectile=anti_sigma- Ekin[MeV]=14174.7 direction=(0.661267,0.521084,0.539627) material=G4_C - --> #secondaries=9 impactParameter[fm]=2.58172 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 - Collision 244 projectile=Ds- Ekin[MeV]=11279.6 direction=(0.500143,0.76553,0.404747) material=G4_He - --> #secondaries=7 impactParameter[fm]=0.511325 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 245 projectile=omega- Ekin[MeV]=19552.7 direction=(0.217646,0.540526,0.812688) material=G4_W - --> #secondaries=71 impactParameter[fm]=4.73489 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=179 #NNcollisions=4 - Collision 246 projectile=kaon+ Ekin[MeV]=26458.9 direction=(0.492066,0.593621,0.636778) material=G4_Fe - --> #secondaries=20 impactParameter[fm]=6.57781 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 247 projectile=anti_lambda Ekin[MeV]=27831.7 direction=(0.678111,0.427119,0.598109) material=G4_Pb - --> #secondaries=79 impactParameter[fm]=0.712161 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=205 #NNcollisions=2 - Collision 248 projectile=proton Ekin[MeV]=4549.69 direction=(0.561749,0.818418,0.120952) material=G4_Be - --> #secondaries=9 impactParameter[fm]=1.79874 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 249 projectile=Ds- Ekin[MeV]=13146 direction=(0.119956,0.0143393,0.992676) material=G4_Cu - --> #secondaries=12 impactParameter[fm]=5.12797 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 250 projectile=lambda Ekin[MeV]=27822.3 direction=(0.0598955,0.73819,0.671928) material=G4_W - --> #secondaries=63 impactParameter[fm]=3.87188 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=2 - Collision 251 projectile=anti_xi_c+ Ekin[MeV]=24649.2 direction=(0.31489,0.560048,0.766283) material=G4_He - --> #secondaries=13 impactParameter[fm]=1.06091 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=1 - Collision 252 projectile=lambda_b Ekin[MeV]=1630.04 direction=(0.174082,0.684292,0.708125) material=G4_W - --> #secondaries=33 impactParameter[fm]=5.27388 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=180 #NNcollisions=1 - Collision 253 projectile=B0 Ekin[MeV]=24537 direction=(0.501639,0.370919,0.781523) material=G4_C - --> #secondaries=14 impactParameter[fm]=0.95274 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=10 #NNcollisions=2 - Collision 254 projectile=anti_lambda Ekin[MeV]=13713 direction=(0.591361,0.475737,0.651127) material=G4_Al - --> #secondaries=12 impactParameter[fm]=2.95665 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 255 projectile=anti_xi_c0 Ekin[MeV]=6625.46 direction=(0.152045,0.647187,0.747015) material=G4_He - --> #secondaries=7 impactParameter[fm]=2.07871 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 256 projectile=anti_xi_b0 Ekin[MeV]=23115.1 direction=(0.742913,0.388038,0.545442) material=G4_Fe - --> #secondaries=23 impactParameter[fm]=4.77087 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 257 projectile=anti_sigma+ Ekin[MeV]=19684.1 direction=(0.104109,0.0941451,0.9901) material=G4_Si - --> #secondaries=9 impactParameter[fm]=4.05968 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=0 - Collision 258 projectile=B+ Ekin[MeV]=24920.2 direction=(0.321266,0.395622,0.86039) material=G4_Be - --> #secondaries=6 impactParameter[fm]=1.73451 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 259 projectile=anti_xi_b0 Ekin[MeV]=17193.5 direction=(0.445394,0.104877,0.889171) material=G4_H - --> #secondaries=2 impactParameter[fm]=0.728212 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 260 projectile=omega- Ekin[MeV]=22362.2 direction=(0.16387,0.95728,0.238246) material=G4_H - --> #secondaries=4 impactParameter[fm]=0.295996 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 261 projectile=anti_omega_b- Ekin[MeV]=13259.3 direction=(0.273187,0.0405907,0.961104) material=G4_Pb - --> #secondaries=8 impactParameter[fm]=5.74497 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=205 #NNcollisions=0 - Collision 262 projectile=anti_B0 Ekin[MeV]=11791.8 direction=(0.734235,0.159985,0.659776) material=G4_Al - --> #secondaries=6 impactParameter[fm]=2.3027 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 263 projectile=anti_neutron Ekin[MeV]=17418.2 direction=(0.504948,0.121268,0.854589) material=G4_C - --> #secondaries=10 impactParameter[fm]=1.87725 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=12 #NNcollisions=1 - Collision 264 projectile=lambda_c+ Ekin[MeV]=20229.2 direction=(0.6367,0.727006,0.257053) material=G4_Si - --> #secondaries=19 impactParameter[fm]=4.15225 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 265 projectile=kaon0L Ekin[MeV]=25774.9 direction=(0.401226,0.353868,0.844864) material=G4_Cu - --> #secondaries=23 impactParameter[fm]=2.27292 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=2 - Collision 266 projectile=triton Ekin[MeV]=21292.6 direction=(0.284762,0.647653,0.706722) material=G4_Al - --> #secondaries=26 impactParameter[fm]=3.44013 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=22 #NNcollisions=3 - Collision 267 projectile=anti_omega_c0 Ekin[MeV]=24328.4 direction=(0.202802,0.922328,0.328909) material=G4_Be - --> #secondaries=6 impactParameter[fm]=1.78361 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 268 projectile=anti_xi_b0 Ekin[MeV]=26893.3 direction=(0.604629,0.730462,0.317568) material=G4_Si - --> #secondaries=13 impactParameter[fm]=3.44213 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=0 - Collision 269 projectile=lambda_b Ekin[MeV]=25524.4 direction=(0.877695,0.434043,0.203122) material=G4_Pb - --> #secondaries=41 impactParameter[fm]=6.03495 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=205 #NNcollisions=2 - Collision 270 projectile=anti_xi_b- Ekin[MeV]=2520.54 direction=(0.887865,0.206009,0.411406) material=G4_Si - --> #secondaries=8 impactParameter[fm]=3.98136 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=0 - Collision 271 projectile=kaon0S Ekin[MeV]=28475 direction=(0.566552,0.525921,0.634371) material=G4_C - --> #secondaries=15 impactParameter[fm]=2.15533 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 272 projectile=Ds+ Ekin[MeV]=7737.27 direction=(0.887739,0.420651,0.187009) material=G4_W - --> #secondaries=29 impactParameter[fm]=0.413393 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=184 #NNcollisions=1 - Collision 273 projectile=Ds+ Ekin[MeV]=5794.37 direction=(0.651138,0.563093,0.508867) material=G4_He - --> #secondaries=4 impactParameter[fm]=0.492803 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 274 projectile=kaon- Ekin[MeV]=6078.04 direction=(0.749054,0.470832,0.466085) material=G4_Be - --> #secondaries=9 impactParameter[fm]=2.88705 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 275 projectile=xi_c0 Ekin[MeV]=4529.69 direction=(0.787649,0.484945,0.380049) material=G4_He - --> #secondaries=4 impactParameter[fm]=1.74466 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 276 projectile=alpha Ekin[MeV]=22653.2 direction=(0.701146,0.584647,0.408144) material=G4_Be - --> #secondaries=17 impactParameter[fm]=3.82852 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=6 #NNcollisions=2 - Collision 277 projectile=neutron Ekin[MeV]=21810.4 direction=(0.455972,0.405867,0.792061) material=G4_Pb - --> #secondaries=106 impactParameter[fm]=0.956013 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=200 #NNcollisions=8 - Collision 278 projectile=anti_xi0 Ekin[MeV]=17014.2 direction=(0.814684,0.219717,0.53667) material=G4_H - --> #secondaries=11 impactParameter[fm]=2.03813 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 279 projectile=anti_sigma- Ekin[MeV]=15175.2 direction=(0.59796,0.380586,0.705407) material=G4_Si - --> #secondaries=22 impactParameter[fm]=3.99264 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 280 projectile=anti_omega_c0 Ekin[MeV]=27671.5 direction=(0.31078,0.653069,0.690592) material=G4_Be - --> #secondaries=7 impactParameter[fm]=2.99966 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=0 - Collision 281 projectile=xi- Ekin[MeV]=25922.7 direction=(0.742802,0.595149,0.306666) material=G4_H - --> #secondaries=3 impactParameter[fm]=0.65956 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 282 projectile=proton Ekin[MeV]=9311.34 direction=(0.649784,0.123754,0.749977) material=G4_Pb - --> #secondaries=79 impactParameter[fm]=2.70352 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=203 #NNcollisions=4 - Collision 283 projectile=anti_sigma- Ekin[MeV]=20883.5 direction=(0.30594,0.76693,0.564109) material=G4_He - --> #secondaries=7 impactParameter[fm]=0.927564 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=1 #NNcollisions=2 - Collision 284 projectile=Bc- Ekin[MeV]=27465.2 direction=(0.628322,0.671415,0.392954) material=G4_Al - --> #secondaries=7 impactParameter[fm]=2.99383 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 285 projectile=anti_lambda_b Ekin[MeV]=20177.2 direction=(0.772513,0.633803,0.0389519) material=G4_W - --> #secondaries=12 impactParameter[fm]=7.14565 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=185 #NNcollisions=1 - Collision 286 projectile=omega_c0 Ekin[MeV]=17247.2 direction=(0.676261,0.302245,0.671803) material=G4_Be - --> #secondaries=11 impactParameter[fm]=0.294573 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 287 projectile=kaon- Ekin[MeV]=8642.77 direction=(0.405304,0.0149716,0.914059) material=G4_Al - --> #secondaries=18 impactParameter[fm]=2.14524 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=24 #NNcollisions=3 - Collision 288 projectile=B0 Ekin[MeV]=19056.1 direction=(0.162963,0.973255,0.161917) material=G4_He - --> #secondaries=7 impactParameter[fm]=0.86095 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 289 projectile=anti_lambda_b Ekin[MeV]=26487.3 direction=(0.46308,0.0795663,0.882738) material=G4_Fe - --> #secondaries=34 impactParameter[fm]=2.36061 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=3 - Collision 290 projectile=anti_triton Ekin[MeV]=13414.7 direction=(0.603088,0.43591,0.668032) material=G4_Cu - --> #secondaries=29 impactParameter[fm]=5.2147 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=63 #NNcollisions=1 - Collision 291 projectile=kaon0L Ekin[MeV]=14569.9 direction=(0.572835,0.591263,0.567687) material=G4_Al - --> #secondaries=8 impactParameter[fm]=3.05092 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 292 projectile=xi_c0 Ekin[MeV]=22313.7 direction=(0.943401,0.304119,0.132314) material=G4_Al - --> #secondaries=20 impactParameter[fm]=1.85743 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=23 #NNcollisions=2 - Collision 293 projectile=xi_b0 Ekin[MeV]=27473.8 direction=(0.172608,0.953977,0.245224) material=G4_He - --> #secondaries=9 impactParameter[fm]=2.0828 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 294 projectile=anti_sigma- Ekin[MeV]=24324.7 direction=(0.853829,0.323922,0.407493) material=G4_He - --> #secondaries=19 impactParameter[fm]=1.18216 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=1 #NNcollisions=2 - Collision 295 projectile=xi0 Ekin[MeV]=19638.5 direction=(0.701106,0.564791,0.435272) material=G4_Fe - --> #secondaries=26 impactParameter[fm]=4.82948 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 296 projectile=kaon+ Ekin[MeV]=18404.4 direction=(0.0361657,0.76359,0.644687) material=G4_Ar - --> #secondaries=29 impactParameter[fm]=2.73912 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=36 #NNcollisions=4 - Collision 297 projectile=Bc- Ekin[MeV]=1161.97 direction=(0.539235,0.37204,0.755521) material=G4_Cu - --> #secondaries=11 impactParameter[fm]=4.85586 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=0 - Collision 298 projectile=Ds- Ekin[MeV]=7004.34 direction=(0.693576,0.693501,0.194958) material=G4_Ar - --> #secondaries=10 impactParameter[fm]=1.0474 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 299 projectile=lambda_b Ekin[MeV]=25188.4 direction=(0.0420444,0.837947,0.54413) material=G4_H - --> #secondaries=5 impactParameter[fm]=0.389442 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 300 projectile=xi_b- Ekin[MeV]=5013.81 direction=(0.628035,0.581437,0.517207) material=G4_Fe - --> #secondaries=12 impactParameter[fm]=5.02745 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=0 - List of produced secondaries: - j=0 xi_b- p=(5749.94,4439.39,3898.910077.1) MeV - j=1 proton p=(-92.6641,721.203,796.8781429.72) MeV - j=2 neutron p=(-138.629,-147.356,201.079981.91) MeV - j=3 neutron p=(78.8625,-178.931,124.129967.691) MeV - j=4 neutron p=(-193.899,-286.516,-77.27381004.21) MeV - j=5 proton p=(-19.3942,2.48479,93.6058943.132) MeV - j=6 neutron p=(48.2325,-37.2942,-33.7741942.147) MeV - j=7 deuteron p=(67.563,-39.5855,-97.1441879.76) MeV - j=8 gamma p=(-0.483746,5.7296,3.0316.49994) MeV - j=9 gamma p=(0.752437,0.418873,-0.8102811.18244) MeV - j=10 gamma p=(-0.0567884,-0.484169,-0.359220.605544) MeV - j=11 V48 p=(229.824,825.84,-189.3844664.1) MeV - Collision 301 projectile=xi_b0 Ekin[MeV]=16639.1 direction=(0.678075,0.472514,0.562978) material=G4_W - --> #secondaries=33 impactParameter[fm]=4.61165 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=3 - Collision 302 projectile=anti_xi_b- Ekin[MeV]=10023.6 direction=(0.591742,0.799903,0.0999827) material=G4_Pb - --> #secondaries=38 impactParameter[fm]=2.57604 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=203 #NNcollisions=3 - Collision 303 projectile=pi+ Ekin[MeV]=20866.1 direction=(0.732343,0.120886,0.67012) material=G4_Be - --> #secondaries=18 impactParameter[fm]=1.70827 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=7 #NNcollisions=2 - Collision 304 projectile=anti_deuteron Ekin[MeV]=25563.4 direction=(0.354107,0.71375,0.604293) material=G4_H - --> #secondaries=6 impactParameter[fm]=3.20754 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 305 projectile=xi_c+ Ekin[MeV]=8445.09 direction=(0.123481,0.825131,0.551282) material=G4_Pb - --> #secondaries=46 impactParameter[fm]=3.84185 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=203 #NNcollisions=3 - Collision 306 projectile=anti_omega- Ekin[MeV]=18345.8 direction=(0.552091,0.601277,0.577634) material=G4_Fe - --> #secondaries=49 impactParameter[fm]=1.91951 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=51 #NNcollisions=3 - Collision 307 projectile=anti_omega_c0 Ekin[MeV]=12586.3 direction=(0.39616,0.541362,0.741609) material=G4_Be - --> #secondaries=7 impactParameter[fm]=1.2427 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=0 - Collision 308 projectile=anti_B0 Ekin[MeV]=15849.5 direction=(0.78975,0.0728024,0.609093) material=G4_W - --> #secondaries=30 impactParameter[fm]=4.02153 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=182 #NNcollisions=1 - Collision 309 projectile=pi+ Ekin[MeV]=7071.83 direction=(0.0924952,0.283255,0.954574) material=G4_Si - --> #secondaries=24 impactParameter[fm]=2.25761 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=24 #NNcollisions=3 - Collision 310 projectile=anti_B0 Ekin[MeV]=14409.6 direction=(0.727369,0.589905,0.350638) material=G4_He - --> #secondaries=5 impactParameter[fm]=0.642301 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 311 projectile=D0 Ekin[MeV]=9952.67 direction=(0.662393,0.748885,0.0201913) material=G4_Pb - --> #secondaries=34 impactParameter[fm]=5.40427 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=204 #NNcollisions=2 - Collision 312 projectile=anti_omega_b- Ekin[MeV]=1894.34 direction=(0.917177,0.144535,0.371343) material=G4_Pb - --> #secondaries=34 impactParameter[fm]=3.70069 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=203 #NNcollisions=0 - Collision 313 projectile=xi_c0 Ekin[MeV]=24438.2 direction=(0.591431,0.706176,0.389262) material=G4_Cu - --> #secondaries=17 impactParameter[fm]=4.10934 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 314 projectile=kaon0L Ekin[MeV]=4955.33 direction=(0.912144,0.335427,0.235545) material=G4_Si - --> #secondaries=19 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 315 projectile=sigma+ Ekin[MeV]=23934.5 direction=(0.52287,0.462389,0.716103) material=G4_Cu - --> #secondaries=27 impactParameter[fm]=2.51929 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=2 - Collision 316 projectile=kaon0S Ekin[MeV]=17305.1 direction=(0.711392,0.272212,0.647936) material=G4_Si - --> #secondaries=14 impactParameter[fm]=3.88816 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=28 #NNcollisions=2 - Collision 317 projectile=anti_lambda Ekin[MeV]=23859.5 direction=(0.190814,0.866857,0.460597) material=G4_Al - --> #secondaries=31 impactParameter[fm]=1.23724 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 318 projectile=anti_xi_b- Ekin[MeV]=3649.58 direction=(0.426492,0.560721,0.709716) material=G4_He - --> #secondaries=4 impactParameter[fm]=0.321088 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 319 projectile=anti_B0 Ekin[MeV]=4848.97 direction=(0.710888,0.584555,0.391067) material=G4_Be - --> #secondaries=6 impactParameter[fm]=1.08984 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=0 - Collision 320 projectile=anti_xi_b- Ekin[MeV]=15429.2 direction=(0.923985,0.290386,0.248854) material=G4_C - --> #secondaries=9 impactParameter[fm]=1.89831 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 - Collision 321 projectile=sigma- Ekin[MeV]=21061.7 direction=(0.714687,0.0573978,0.697086) material=G4_Fe - --> #secondaries=27 impactParameter[fm]=2.78105 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 322 projectile=alpha Ekin[MeV]=17441.3 direction=(0.663113,0.671884,0.32993) material=G4_Ar - --> #secondaries=19 impactParameter[fm]=3.81512 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 323 projectile=anti_xi_b0 Ekin[MeV]=12622.2 direction=(0.471169,0.562167,0.679682) material=G4_W - --> #secondaries=20 impactParameter[fm]=4.59565 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=3 - Collision 324 projectile=B+ Ekin[MeV]=7966.11 direction=(0.272901,0.832203,0.482663) material=G4_C - --> #secondaries=5 impactParameter[fm]=1.37757 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=0 - Collision 325 projectile=B0 Ekin[MeV]=18516.7 direction=(0.0736744,0.452243,0.888847) material=G4_Cu - --> #secondaries=17 impactParameter[fm]=4.64037 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=2 - Collision 326 projectile=anti_xi_c+ Ekin[MeV]=13336.8 direction=(0.187525,0.650701,0.735814) material=G4_Be - --> #secondaries=7 impactParameter[fm]=1.87254 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 327 projectile=lambda_b Ekin[MeV]=16151.6 direction=(0.690352,0.325908,0.645909) material=G4_He - --> #secondaries=4 impactParameter[fm]=0.909812 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 328 projectile=xi_b0 Ekin[MeV]=25818.7 direction=(0.861286,0.424925,0.278614) material=G4_Ar - --> #secondaries=10 impactParameter[fm]=3.03629 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 329 projectile=Ds+ Ekin[MeV]=16685.4 direction=(0.882764,0.235617,0.406463) material=G4_Pb - --> #secondaries=20 impactParameter[fm]=8.10456 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=207 #NNcollisions=1 - Collision 330 projectile=omega_b- Ekin[MeV]=23740.1 direction=(0.594744,0.120417,0.794845) material=G4_Be - --> #secondaries=8 impactParameter[fm]=3.15678 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 331 projectile=kaon0S Ekin[MeV]=22129.2 direction=(0.263267,0.749522,0.607377) material=G4_Pb - --> #secondaries=24 impactParameter[fm]=7.43871 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=207 #NNcollisions=1 - Collision 332 projectile=sigma- Ekin[MeV]=29495.7 direction=(0.666866,0.723979,0.176476) material=G4_C - --> #secondaries=17 impactParameter[fm]=1.20445 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=5 #NNcollisions=7 - Collision 333 projectile=anti_xi0 Ekin[MeV]=11302.7 direction=(0.0119481,0.746778,0.664967) material=G4_Pb - --> #secondaries=34 impactParameter[fm]=6.92216 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=1 - Collision 334 projectile=anti_lambda Ekin[MeV]=9157.12 direction=(0.612464,0.70229,0.362873) material=G4_Be - --> #secondaries=10 impactParameter[fm]=1.31107 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 335 projectile=xi0 Ekin[MeV]=11856.9 direction=(0.569735,0.443649,0.691793) material=G4_He - --> #secondaries=4 impactParameter[fm]=2.12903 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 336 projectile=D- Ekin[MeV]=11546.5 direction=(0.437731,0.406625,0.801902) material=G4_Be - --> #secondaries=9 impactParameter[fm]=0.572511 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 337 projectile=anti_alpha Ekin[MeV]=19955.7 direction=(0.622303,0.400683,0.672452) material=G4_H - --> #secondaries=11 impactParameter[fm]=4.1139 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 338 projectile=anti_xi_c+ Ekin[MeV]=11162.9 direction=(0.0584813,0.462267,0.88481) material=G4_He - --> #secondaries=5 impactParameter[fm]=0.629519 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 339 projectile=anti_omega_c0 Ekin[MeV]=21307.3 direction=(0.404193,0.78126,0.475669) material=G4_Al - --> #secondaries=25 impactParameter[fm]=2.36676 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 340 projectile=neutron Ekin[MeV]=1986.62 direction=(0.694777,0.587718,0.414574) material=G4_He - --> #secondaries=6 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 341 projectile=anti_D0 Ekin[MeV]=17952.5 direction=(0.0221828,0.18536,0.98242) material=G4_Fe - --> #secondaries=15 impactParameter[fm]=2.09649 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 342 projectile=kaon+ Ekin[MeV]=26558.3 direction=(0.0790484,0.0583734,0.99516) material=G4_H - --> #secondaries=9 impactParameter[fm]=0.716078 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 343 projectile=anti_deuteron Ekin[MeV]=29045.1 direction=(0.795839,0.360409,0.486565) material=G4_Cu - --> #secondaries=64 impactParameter[fm]=0.72266 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=57 #NNcollisions=9 - Collision 344 projectile=kaon+ Ekin[MeV]=24670.8 direction=(0.431329,0.660795,0.614252) material=G4_C - --> #secondaries=20 impactParameter[fm]=0.0344759 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=10 #NNcollisions=2 - Collision 345 projectile=Bc+ Ekin[MeV]=21320.3 direction=(0.501588,0.61392,0.609517) material=G4_H - --> #secondaries=5 impactParameter[fm]=0.710886 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 346 projectile=D+ Ekin[MeV]=13806.9 direction=(0.160844,0.985124,0.06049) material=G4_Ar - --> #secondaries=22 impactParameter[fm]=1.67343 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 347 projectile=anti_B0 Ekin[MeV]=11528 direction=(0.80477,0.27038,0.528431) material=G4_Si - --> #secondaries=8 impactParameter[fm]=2.44704 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 348 projectile=kaon0L Ekin[MeV]=10916.2 direction=(0.279263,0.691991,0.665704) material=G4_H - --> #secondaries=7 impactParameter[fm]=0.515419 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 349 projectile=sigma- Ekin[MeV]=29979.6 direction=(0.0975815,0.00650994,0.995206) material=G4_C - --> #secondaries=9 impactParameter[fm]=2.019 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=2 - Collision 350 projectile=He3 Ekin[MeV]=20733.7 direction=(0.377215,0.0677603,0.923644) material=G4_H - --> #secondaries=8 impactParameter[fm]=2.21797 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 351 projectile=anti_He3 Ekin[MeV]=12652.5 direction=(0.424715,0.038293,0.904517) material=G4_Cu - --> #secondaries=19 impactParameter[fm]=4.58009 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=63 #NNcollisions=1 - Collision 352 projectile=anti_xi- Ekin[MeV]=17650.7 direction=(0.953778,0.263427,0.144613) material=G4_W - --> #secondaries=27 impactParameter[fm]=8.02213 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=182 #NNcollisions=1 - Collision 353 projectile=kaon0L Ekin[MeV]=11192.9 direction=(0.512614,0.660702,0.54836) material=G4_Be - --> #secondaries=18 impactParameter[fm]=0.36782 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=5 #NNcollisions=4 - Collision 354 projectile=anti_B0 Ekin[MeV]=7758.77 direction=(0.299008,0.397954,0.86731) material=G4_Pb - --> #secondaries=21 impactParameter[fm]=6.37083 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=1 - Collision 355 projectile=B+ Ekin[MeV]=29930 direction=(0.604795,0.404153,0.68621) material=G4_Cu - --> #secondaries=19 impactParameter[fm]=3.28911 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=1 - Collision 356 projectile=xi0 Ekin[MeV]=13088.1 direction=(0.264379,0.926304,0.268449) material=G4_He - --> #secondaries=11 impactParameter[fm]=1.05877 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=2 - Collision 357 projectile=anti_lambda Ekin[MeV]=25845 direction=(0.84687,0.492852,0.199771) material=G4_W - --> #secondaries=81 impactParameter[fm]=2.04891 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=2 - Collision 358 projectile=deuteron Ekin[MeV]=13624.8 direction=(0.824132,0.560519,0.0813902) material=G4_Si - --> #secondaries=20 impactParameter[fm]=4.39194 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=26 #NNcollisions=2 - Collision 359 projectile=anti_xi_b- Ekin[MeV]=8237.49 direction=(0.0725628,0.678681,0.73084) material=G4_H - --> #secondaries=4 impactParameter[fm]=1.24821 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 360 projectile=B+ Ekin[MeV]=20923.3 direction=(0.724637,0.668343,0.167985) material=G4_Fe - --> #secondaries=11 impactParameter[fm]=4.5576 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 361 projectile=lambda_b Ekin[MeV]=16549 direction=(0.656526,0.715264,0.23952) material=G4_Cu - --> #secondaries=25 impactParameter[fm]=4.49337 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=63 #NNcollisions=1 - Collision 362 projectile=anti_deuteron Ekin[MeV]=20851.7 direction=(0.264151,0.0567661,0.962809) material=G4_Ar - --> #secondaries=32 impactParameter[fm]=1.74994 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=40 #NNcollisions=2 - Collision 363 projectile=neutron Ekin[MeV]=2800.23 direction=(0.471563,0.807938,0.353362) material=G4_Be - --> #secondaries=9 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 364 projectile=xi_b0 Ekin[MeV]=1242.04 direction=(0.746615,0.660621,0.0784004) material=G4_Be - --> #secondaries=7 impactParameter[fm]=1.55935 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=0 - Collision 365 projectile=anti_omega_b- Ekin[MeV]=20270.3 direction=(0.836845,0.522422,0.163603) material=G4_He - --> #secondaries=5 impactParameter[fm]=0.329626 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=1 - Collision 366 projectile=sigma- Ekin[MeV]=1442.93 direction=(0.722942,0.537788,0.43375) material=G4_C + Collision 202 projectile=anti_neutron Ekin[MeV]=9061.15 direction=(0.8166,0.349114,0.459657) material=G4_W + --> #secondaries=13 impactParameter[fm]=6.78402 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=0 + Collision 203 projectile=proton Ekin[MeV]=28829 direction=(0.327085,0.549543,0.768777) material=G4_Fe + --> #secondaries=23 impactParameter[fm]=3.63513 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 204 projectile=anti_B0 Ekin[MeV]=24106.8 direction=(0.706359,0.539506,0.458247) material=G4_Be + --> #secondaries=10 impactParameter[fm]=3.08778 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 205 projectile=omega_b- Ekin[MeV]=4487.43 direction=(0.633228,0.773591,0.0240767) material=G4_H + --> #secondaries=2 impactParameter[fm]=0.704153 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=0 + Collision 206 projectile=anti_lambda Ekin[MeV]=29018.2 direction=(0.0650196,0.119251,0.990733) material=G4_Al + --> #secondaries=18 impactParameter[fm]=3.21656 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 207 projectile=anti_xi_b- Ekin[MeV]=5901.22 direction=(0.0298652,0.739885,0.67207) material=G4_Ar + --> #secondaries=6 impactParameter[fm]=3.64012 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=0 + Collision 208 projectile=kaon- Ekin[MeV]=7190.29 direction=(0.631627,0.384984,0.67293) material=G4_He + --> #secondaries=5 impactParameter[fm]=1.1899 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 209 projectile=kaon0S Ekin[MeV]=24545.1 direction=(0.67555,0.184294,0.713911) material=G4_Si + --> #secondaries=24 impactParameter[fm]=2.11993 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 210 projectile=hypertriton Ekin[MeV]=15901 direction=(0.651511,0.367117,0.663896) material=G4_Fe + --> #secondaries=37 impactParameter[fm]=4.82068 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=51 #NNcollisions=2 + Collision 211 projectile=anti_D0 Ekin[MeV]=26600.3 direction=(0.675262,0.732405,0.0871967) material=G4_H + --> #secondaries=8 impactParameter[fm]=0.552327 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 212 projectile=B- Ekin[MeV]=13486.1 direction=(0.360923,0.554165,0.750091) material=G4_Be + --> #secondaries=5 impactParameter[fm]=1.44965 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 213 projectile=anti_neutron Ekin[MeV]=26408.7 direction=(0.329429,0.93882,0.100464) material=G4_Fe + --> #secondaries=16 impactParameter[fm]=4.35788 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 214 projectile=hypertriton Ekin[MeV]=21555.3 direction=(0.63277,0.583766,0.508743) material=G4_Si + --> #secondaries=36 impactParameter[fm]=1.06139 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=18 #NNcollisions=6 + Collision 215 projectile=omega_b- Ekin[MeV]=7447.17 direction=(0.537846,0.241213,0.807798) material=G4_Ar + --> #secondaries=7 impactParameter[fm]=3.19459 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=0 + Collision 216 projectile=B- Ekin[MeV]=22452 direction=(0.104007,0.959461,0.261948) material=G4_Cu + --> #secondaries=15 impactParameter[fm]=3.44651 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 217 projectile=anti_hyperHe5 Ekin[MeV]=8300.6 direction=(0.331883,0.582866,0.741702) material=G4_Pb + --> #secondaries=111 impactParameter[fm]=3.14216 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=203 #NNcollisions=5 + Collision 218 projectile=doublehyperH4 Ekin[MeV]=1807.65 direction=(0.589168,0.241816,0.770978) material=G4_Fe + --> #secondaries=23 impactParameter[fm]=4.509 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=52 #NNcollisions=0 + Collision 219 projectile=hyperalpha Ekin[MeV]=1016.73 direction=(0.401948,0.358493,0.842568) material=G4_C + --> #secondaries=12 impactParameter[fm]=3.54844 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=11 #NNcollisions=0 + Collision 220 projectile=anti_hyperH4 Ekin[MeV]=15872.1 direction=(0.687392,0.545458,0.47955) material=G4_H + --> #secondaries=3 impactParameter[fm]=2.00338 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=0 #NNcollisions=0 + Collision 221 projectile=anti_omega- Ekin[MeV]=1400.74 direction=(0.520677,0.474243,0.709922) material=G4_Al + --> #secondaries=14 impactParameter[fm]=1.79034 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 222 projectile=D- Ekin[MeV]=1416.82 direction=(0.375838,0.650428,0.660068) material=G4_Pb + --> #secondaries=27 impactParameter[fm]=5.88456 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=1 + Collision 223 projectile=kaon0L Ekin[MeV]=7227.78 direction=(0.100394,0.726235,0.680076) material=G4_W + --> #secondaries=47 impactParameter[fm]=5.05731 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=181 #NNcollisions=2 + Collision 224 projectile=sigma+ Ekin[MeV]=26273.8 direction=(0.164065,0.981711,0.0965755) material=G4_H + --> #secondaries=9 impactParameter[fm]=0.320862 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 225 projectile=deuteron Ekin[MeV]=25494.7 direction=(0.184121,0.196022,0.963159) material=G4_C + --> #secondaries=15 impactParameter[fm]=2.24774 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=3 + Collision 226 projectile=kaon+ Ekin[MeV]=16410.8 direction=(0.634869,0.750663,0.182881) material=G4_H + --> #secondaries=10 impactParameter[fm]=0.186432 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 227 projectile=anti_omega_b- Ekin[MeV]=14372.7 direction=(0.541064,0.653127,0.529787) material=G4_Pb + --> #secondaries=40 impactParameter[fm]=3.63049 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=2 + Collision 228 projectile=anti_D0 Ekin[MeV]=1934.54 direction=(0.824661,0.53852,0.173006) material=G4_Cu + --> #secondaries=18 impactParameter[fm]=0.924611 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=1 + Collision 229 projectile=anti_deuteron Ekin[MeV]=17965.1 direction=(0.575687,0.791742,0.204278) material=G4_H + --> #secondaries=9 impactParameter[fm]=1.58857 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 230 projectile=anti_xi- Ekin[MeV]=17084.7 direction=(0.0589219,0.46657,0.882519) material=G4_Al + --> #secondaries=11 impactParameter[fm]=3.48274 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 231 projectile=anti_B0 Ekin[MeV]=19570.8 direction=(0.803488,0.395208,0.445216) material=G4_Be + --> #secondaries=11 impactParameter[fm]=1.18082 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 232 projectile=Bc+ Ekin[MeV]=28269.6 direction=(0.236017,0.592671,0.770089) material=G4_C + --> #secondaries=8 impactParameter[fm]=1.59562 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=0 + Collision 233 projectile=deuteron Ekin[MeV]=20013.8 direction=(0.174431,0.462101,0.869503) material=G4_He + --> #secondaries=14 impactParameter[fm]=3.11715 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 234 projectile=Bs0 Ekin[MeV]=6100.96 direction=(0.779366,0.340655,0.525873) material=G4_Pb + --> #secondaries=27 impactParameter[fm]=5.35078 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=1 + Collision 235 projectile=sigma- Ekin[MeV]=14877.2 direction=(0.252768,0.338725,0.906297) material=G4_Ar + --> #secondaries=18 impactParameter[fm]=2.28737 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 236 projectile=xi0 Ekin[MeV]=22154.9 direction=(0.982005,0.159745,0.10073) material=G4_C + --> #secondaries=7 impactParameter[fm]=2.60248 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 + Collision 237 projectile=anti_doublehyperH4 Ekin[MeV]=12192.6 direction=(0.321269,0.168259,0.93192) material=G4_Ar + --> #secondaries=18 impactParameter[fm]=5.46964 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 238 projectile=anti_omega- Ekin[MeV]=22476.8 direction=(0.776308,0.562059,0.285368) material=G4_W + --> #secondaries=90 impactParameter[fm]=2.01847 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=175 #NNcollisions=4 + Collision 239 projectile=doublehyperH4 Ekin[MeV]=3216.14 direction=(0.708496,0.00244031,0.70571) material=G4_Be + --> #secondaries=5 impactParameter[fm]=3.90208 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 240 projectile=anti_hyperalpha Ekin[MeV]=9158.81 direction=(0.548528,0.516266,0.657713) material=G4_Be + --> #secondaries=12 impactParameter[fm]=4.67993 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 241 projectile=D0 Ekin[MeV]=27983.8 direction=(0.751657,0.348238,0.560126) material=G4_W + --> #secondaries=25 impactParameter[fm]=3.96343 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=182 #NNcollisions=0 + Collision 242 projectile=anti_proton Ekin[MeV]=2211.54 direction=(0.779924,0.123163,0.613636) material=G4_C + --> #secondaries=12 impactParameter[fm]=2.64175 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=12 #NNcollisions=1 + Collision 243 projectile=anti_xi_c0 Ekin[MeV]=6614.66 direction=(0.197189,0.857082,0.475948) material=G4_H + --> #secondaries=5 impactParameter[fm]=1.1698 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 244 projectile=anti_xi_b0 Ekin[MeV]=6719.6 direction=(0.567641,0.432371,0.700599) material=G4_He + --> #secondaries=5 impactParameter[fm]=2.00614 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 245 projectile=anti_sigma- Ekin[MeV]=4448.63 direction=(0.506044,0.601894,0.617773) material=G4_Be + --> #secondaries=4 impactParameter[fm]=4.20622 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 246 projectile=Bc- Ekin[MeV]=11719.3 direction=(0.6114,0.788305,0.0690319) material=G4_W + --> #secondaries=8 impactParameter[fm]=5.2582 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=185 #NNcollisions=0 + Collision 247 projectile=anti_lambda Ekin[MeV]=7974.97 direction=(0.840144,0.50108,0.207551) material=G4_Cu + --> #secondaries=21 impactParameter[fm]=4.58841 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 248 projectile=anti_xi_c+ Ekin[MeV]=19171 direction=(0.616319,0.0949906,0.781746) material=G4_Ar + --> #secondaries=40 impactParameter[fm]=1.7832 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=37 #NNcollisions=2 + Collision 249 projectile=D0 Ekin[MeV]=29886.5 direction=(0.026783,0.999285,0.026673) material=G4_Be + --> #secondaries=11 impactParameter[fm]=2.72119 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 250 projectile=anti_proton Ekin[MeV]=22408.1 direction=(0.570397,0.187407,0.799704) material=G4_Al + --> #secondaries=13 impactParameter[fm]=1.25255 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 251 projectile=sigma- Ekin[MeV]=26387.5 direction=(0.964289,0.264708,0.00874701) material=G4_Al + --> #secondaries=26 impactParameter[fm]=2.59836 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=3 + Collision 252 projectile=anti_xi_b- Ekin[MeV]=21897.9 direction=(0.738931,0.195672,0.644743) material=G4_Ar + --> #secondaries=13 impactParameter[fm]=3.11919 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=0 + Collision 253 projectile=anti_hypertriton Ekin[MeV]=27471.6 direction=(0.628831,0.450148,0.633986) material=G4_Cu + --> #secondaries=58 impactParameter[fm]=4.60623 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=60 #NNcollisions=4 + Collision 254 projectile=neutron Ekin[MeV]=21224.4 direction=(0.200227,0.979305,0.0295097) material=G4_W + --> #secondaries=27 impactParameter[fm]=5.73548 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=1 + Collision 255 projectile=proton Ekin[MeV]=1008.46 direction=(0.988446,0.0525529,0.14217) material=G4_W + --> #secondaries=26 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 256 projectile=hypertriton Ekin[MeV]=24270.1 direction=(0.526329,0.619821,0.582065) material=G4_He + --> #secondaries=17 impactParameter[fm]=1.39714 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=1 #NNcollisions=5 + Collision 257 projectile=xi_c0 Ekin[MeV]=25942.2 direction=(0.554434,0.610748,0.565323) material=G4_Si + --> #secondaries=23 impactParameter[fm]=0.606066 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 258 projectile=anti_xi_c+ Ekin[MeV]=7860.18 direction=(0.502142,0.845915,0.17967) material=G4_Al + --> #secondaries=6 impactParameter[fm]=3.28062 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 259 projectile=omega_c0 Ekin[MeV]=7097.76 direction=(0.738481,0.602335,0.303047) material=G4_Si + --> #secondaries=21 impactParameter[fm]=1.09619 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=3 + Collision 260 projectile=alpha Ekin[MeV]=6225.32 direction=(0.358019,0.806599,0.470341) material=G4_He --> #secondaries=8 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 367 projectile=lambda_c+ Ekin[MeV]=27812.3 direction=(0.792653,0.430644,0.431564) material=G4_Ar - --> #secondaries=37 impactParameter[fm]=1.24829 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=37 #NNcollisions=3 - Collision 368 projectile=sigma- Ekin[MeV]=12389.9 direction=(0.519026,0.627346,0.580559) material=G4_H - --> #secondaries=5 impactParameter[fm]=1.10377 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 369 projectile=xi_c+ Ekin[MeV]=7668.42 direction=(0.601292,0.519521,0.60708) material=G4_H - --> #secondaries=3 impactParameter[fm]=0.611997 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 370 projectile=anti_lambda_c+ Ekin[MeV]=7818.46 direction=(0.372337,0.887329,0.272054) material=G4_Si - --> #secondaries=11 impactParameter[fm]=2.01905 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=0 - Collision 371 projectile=anti_proton Ekin[MeV]=15483 direction=(0.066483,0.90689,0.416089) material=G4_C - --> #secondaries=23 impactParameter[fm]=1.506 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=3 - Collision 372 projectile=anti_lambda_c+ Ekin[MeV]=26506.6 direction=(0.890722,0.0319966,0.453421) material=G4_Al - --> #secondaries=29 impactParameter[fm]=3.22964 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 373 projectile=anti_xi_c+ Ekin[MeV]=27935.9 direction=(0.373789,0.220832,0.900841) material=G4_He - --> #secondaries=5 impactParameter[fm]=1.52594 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=1 #NNcollisions=2 - Collision 374 projectile=anti_lambda Ekin[MeV]=26365.9 direction=(0.756332,0.616993,0.217445) material=G4_H - --> #secondaries=5 impactParameter[fm]=0.236923 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=1 #NNcollisions=1 - Collision 375 projectile=anti_lambda Ekin[MeV]=19153.8 direction=(0.67904,0.583523,0.445427) material=G4_W - --> #secondaries=72 impactParameter[fm]=4.28948 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=4 - Collision 376 projectile=sigma- Ekin[MeV]=26280 direction=(0.657448,0.445346,0.607807) material=G4_Be - --> #secondaries=6 impactParameter[fm]=1.67111 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=0 - Collision 377 projectile=anti_omega- Ekin[MeV]=28073.9 direction=(0.530614,0.709038,0.464451) material=G4_C - --> #secondaries=18 impactParameter[fm]=3.1906 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 378 projectile=lambda_b Ekin[MeV]=6746.26 direction=(0.280914,0.852316,0.441185) material=G4_He - --> #secondaries=5 impactParameter[fm]=2.33098 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 379 projectile=anti_lambda Ekin[MeV]=5462.23 direction=(0.200733,0.941354,0.271217) material=G4_Cu - --> #secondaries=42 impactParameter[fm]=2.90146 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=63 #NNcollisions=1 - Collision 380 projectile=omega- Ekin[MeV]=13042.6 direction=(0.179399,0.550589,0.815272) material=G4_Pb - --> #secondaries=108 impactParameter[fm]=2.3306 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=201 #NNcollisions=6 - Collision 381 projectile=kaon- Ekin[MeV]=24208.8 direction=(0.157488,0.596163,0.787266) material=G4_C - --> #secondaries=13 impactParameter[fm]=2.20245 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 382 projectile=xi_c+ Ekin[MeV]=18634.7 direction=(0.152777,0.578988,0.800894) material=G4_C - --> #secondaries=10 impactParameter[fm]=1.43871 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 - Collision 383 projectile=anti_xi_c0 Ekin[MeV]=27824.9 direction=(0.806476,0.283983,0.518605) material=G4_Ar - --> #secondaries=19 impactParameter[fm]=2.48947 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 384 projectile=anti_omega_c0 Ekin[MeV]=8011.86 direction=(0.152213,0.759976,0.631877) material=G4_Al - --> #secondaries=5 impactParameter[fm]=4.84393 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 385 projectile=Bc- Ekin[MeV]=29259.6 direction=(0.609786,0.164245,0.775361) material=G4_Cu - --> #secondaries=12 impactParameter[fm]=4.22293 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 386 projectile=kaon+ Ekin[MeV]=26997.2 direction=(0.17217,0.784981,0.595116) material=G4_Al - --> #secondaries=20 impactParameter[fm]=4.6757 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 387 projectile=anti_sigma- Ekin[MeV]=21228.7 direction=(0.84183,0.393537,0.369392) material=G4_Be - --> #secondaries=11 impactParameter[fm]=1.54738 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=6 #NNcollisions=2 - Collision 388 projectile=kaon0S Ekin[MeV]=21466.8 direction=(0.29618,0.136511,0.945327) material=G4_C - --> #secondaries=13 impactParameter[fm]=1.10223 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=10 #NNcollisions=2 - Collision 389 projectile=kaon0L Ekin[MeV]=19854.5 direction=(0.42251,0.703292,0.571721) material=G4_Fe - --> #secondaries=24 impactParameter[fm]=4.0102 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 390 projectile=lambda_b Ekin[MeV]=8398.05 direction=(0.646125,0.691381,0.323289) material=G4_Al - --> #secondaries=20 impactParameter[fm]=0.990635 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=23 #NNcollisions=1 - Collision 391 projectile=B0 Ekin[MeV]=15558.5 direction=(0.915364,0.0795693,0.394687) material=G4_C - --> #secondaries=11 impactParameter[fm]=2.41981 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 392 projectile=anti_xi_b- Ekin[MeV]=7398.87 direction=(0.454451,0.391977,0.799893) material=G4_Al - --> #secondaries=21 impactParameter[fm]=2.3824 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=3 - Collision 393 projectile=pi+ Ekin[MeV]=18825.6 direction=(0.141826,0.94827,0.284025) material=G4_W - --> #secondaries=63 impactParameter[fm]=4.43517 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=179 #NNcollisions=3 - Collision 394 projectile=D0 Ekin[MeV]=23642.4 direction=(0.437123,0.748628,0.498477) material=G4_C - --> #secondaries=19 impactParameter[fm]=1.01232 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 395 projectile=anti_B0 Ekin[MeV]=3446.4 direction=(0.0961248,0.878604,0.467776) material=G4_Be - --> #secondaries=6 impactParameter[fm]=1.81957 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 396 projectile=xi_c+ Ekin[MeV]=15478.4 direction=(0.734925,0.61265,0.290767) material=G4_C - --> #secondaries=8 impactParameter[fm]=1.90727 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 397 projectile=pi+ Ekin[MeV]=23425.1 direction=(0.521168,0.739949,0.425274) material=G4_Al - --> #secondaries=14 impactParameter[fm]=3.1827 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 398 projectile=xi_c0 Ekin[MeV]=20936.7 direction=(0.26428,0.841051,0.472005) material=G4_Al - --> #secondaries=19 impactParameter[fm]=2.58759 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 399 projectile=anti_xi_c+ Ekin[MeV]=27470.6 direction=(0.906726,0.40478,0.118323) material=G4_He - --> #secondaries=6 impactParameter[fm]=0.896136 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 400 projectile=anti_deuteron Ekin[MeV]=13205.2 direction=(0.431959,0.62293,0.652204) material=G4_W - --> #secondaries=52 impactParameter[fm]=5.57999 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=185 #NNcollisions=2 - List of produced secondaries: - j=0 pi+ p=(7.26936,-223.639,234.367352.81) MeV - j=1 pi0 p=(344.587,241.032,456.197634.957) MeV - j=2 pi- p=(224.602,200.198,298.844446.445) MeV - j=3 pi0 p=(-124.143,160.204,-208.145320.343) MeV - j=4 pi+ p=(34.8372,465.324,-49.277489.539) MeV - j=5 neutron p=(365.578,1359.95,587.7211792.02) MeV - j=6 pi+ p=(1012.65,1683.98,1416.352426.27) MeV - j=7 neutron p=(84.0723,45.0776,128.779953.135) MeV - j=8 pi+ p=(1701.18,2167.75,2507.353728.19) MeV - j=9 proton p=(-12.4738,-274.727,236.6421005.97) MeV - j=10 proton p=(-185.889,-48.2618,-251.813990.277) MeV - j=11 proton p=(71.9111,104.573,350.9031009.75) MeV - j=12 neutron p=(-66.5874,194.975,-19.9888962.098) MeV - j=13 neutron p=(54.7233,-136.263,272.547989.256) MeV - j=14 neutron p=(93.5863,252.368,-334.3991032.98) MeV - j=15 pi+ p=(55.38,-43.461,28.6606158.925) MeV - j=16 pi- p=(870.999,1437.84,1784.332455.47) MeV - j=17 pi- p=(710.871,325.71,329.352859.871) MeV - j=18 anti_proton p=(246.445,89.1395,1326.161645.52) MeV - j=19 pi- p=(-6.52528,-185.394,92.702249.974) MeV - j=20 proton p=(-82.6699,-456.891,58.4931048.5) MeV - j=21 neutron p=(26.9042,-135.155,-243.398980.314) MeV - j=22 proton p=(-72.7355,-102.534,-336.1551004.57) MeV - j=23 neutron p=(-209.87,-212.726,249.0851016.92) MeV - j=24 neutron p=(235.302,-293.341,-35.76471012.66) MeV - j=25 neutron p=(-59.5976,-118.168,95.8886953.674) MeV - j=26 neutron p=(-282.677,46.172,63.7863984.322) MeV - j=27 neutron p=(-31.6139,63.8465,255.963976.41) MeV - j=28 proton p=(-60.1069,-260.039,-57.0252977.159) MeV - j=29 neutron p=(45.5237,155.218,-13.871953.489) MeV - j=30 neutron p=(-62.4118,38.3824,-175.326958.588) MeV - j=31 neutron p=(-31.9778,204.122,-102.815967.493) MeV - j=32 neutron p=(2.80967,-140.698,-55.679951.676) MeV - j=33 neutron p=(129.87,56.8086,20.8081950.426) MeV - j=34 neutron p=(-51.3903,-61.7068,147.506954.458) MeV - j=35 neutron p=(116.466,78.6771,-122.991957.948) MeV - j=36 neutron p=(-179.776,143.165,-16.2325967.4) MeV - j=37 Pr139[821.980] p=(1792.54,2279.55,1262.6129402) MeV - j=38 neutron p=(64.4361,49.3747,57.8698944.84) MeV - j=39 Be9 p=(-178.345,-116.837,-544.2858413.08) MeV - j=40 neutron p=(11.3941,49.8433,45.6972942.064) MeV - j=41 neutron p=(-109.571,46.4858,110.375953.484) MeV - j=42 neutron p=(46.0477,48.2316,24.3555942.244) MeV - j=43 triton p=(-35.0287,-125.37,-99.42882813.69) MeV - j=44 proton p=(9.57278,134.652,-30.9051948.437) MeV - j=45 proton p=(-0.933085,107.98,-39.1122945.275) MeV - j=46 neutron p=(-3.8165,-39.2643,36.4378941.099) MeV - j=47 neutron p=(47.503,79.5954,9.31126944.173) MeV - j=48 proton p=(-98.3044,-13.8005,7.36115943.537) MeV - j=49 gamma p=(3.03923,0.00223599,-0.8549873.15721) MeV - j=50 gamma p=(-0.10944,0.189783,0.3469060.410291) MeV - j=51 gamma p=(0.187692,-0.758277,0.134450.792647) MeV - Collision 401 projectile=pi- Ekin[MeV]=13008.2 direction=(0.270335,0.568306,0.777141) material=G4_Si - --> #secondaries=19 impactParameter[fm]=1.59608 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 402 projectile=xi_c0 Ekin[MeV]=13868.8 direction=(0.635992,0.686844,0.351794) material=G4_H - --> #secondaries=3 impactParameter[fm]=0.985368 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 403 projectile=anti_alpha Ekin[MeV]=19245.3 direction=(0.597487,0.666611,0.445689) material=G4_W - --> #secondaries=76 impactParameter[fm]=5.76314 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=180 #NNcollisions=5 - Collision 404 projectile=anti_xi_c+ Ekin[MeV]=13669.4 direction=(0.726926,0.15699,0.66853) material=G4_Pb - --> #secondaries=73 impactParameter[fm]=3.20104 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=200 #NNcollisions=4 - Collision 405 projectile=sigma- Ekin[MeV]=27048.2 direction=(0.45249,0.880659,0.140329) material=G4_Pb - --> #secondaries=56 impactParameter[fm]=3.84032 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=2 - Collision 406 projectile=anti_lambda_c+ Ekin[MeV]=3398.62 direction=(0.269837,0.746529,0.60818) material=G4_Fe - --> #secondaries=20 impactParameter[fm]=1.74279 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=51 #NNcollisions=3 - Collision 407 projectile=xi_b0 Ekin[MeV]=2531.61 direction=(0.0280911,0.722121,0.691197) material=G4_Al - --> #secondaries=9 impactParameter[fm]=1.80561 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 408 projectile=kaon+ Ekin[MeV]=5952.74 direction=(0.422384,0.445379,0.789449) material=G4_Al - --> #secondaries=11 impactParameter[fm]=1.82601 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 409 projectile=anti_proton Ekin[MeV]=9903.11 direction=(0.965641,0.102216,0.238935) material=G4_Pb - --> #secondaries=17 impactParameter[fm]=8.52126 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=1 - Collision 410 projectile=anti_B0 Ekin[MeV]=5339.32 direction=(0.72548,0.57632,0.37621) material=G4_W - --> #secondaries=29 impactParameter[fm]=4.53798 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=179 #NNcollisions=2 - Collision 411 projectile=anti_sigma- Ekin[MeV]=12429.5 direction=(0.0174023,0.242757,0.969931) material=G4_Fe - --> #secondaries=44 impactParameter[fm]=3.26878 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 412 projectile=anti_xi_c0 Ekin[MeV]=11948.5 direction=(0.363678,0.467868,0.805505) material=G4_W - --> #secondaries=10 impactParameter[fm]=6.89391 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=1 - Collision 413 projectile=anti_proton Ekin[MeV]=7073.63 direction=(0.865249,0.46528,0.186704) material=G4_H - --> #secondaries=6 impactParameter[fm]=1.03079 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 414 projectile=xi_b- Ekin[MeV]=29133.1 direction=(0.444691,0.602916,0.662377) material=G4_Fe - --> #secondaries=17 impactParameter[fm]=4.83684 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 415 projectile=lambda_b Ekin[MeV]=25319.3 direction=(0.553649,0.631057,0.54336) material=G4_Pb - --> #secondaries=64 impactParameter[fm]=5.62965 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=204 #NNcollisions=2 - Collision 416 projectile=xi_b0 Ekin[MeV]=23908.5 direction=(0.268055,0.82465,0.498094) material=G4_Al - --> #secondaries=22 impactParameter[fm]=3.12294 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=1 - Collision 417 projectile=sigma- Ekin[MeV]=21073.2 direction=(0.587027,0.602822,0.540375) material=G4_H - --> #secondaries=5 impactParameter[fm]=1.01694 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 418 projectile=anti_xi_c0 Ekin[MeV]=13612 direction=(0.0308512,0.093134,0.995175) material=G4_Ar - --> #secondaries=22 impactParameter[fm]=2.2278 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 419 projectile=kaon- Ekin[MeV]=7531.2 direction=(0.482345,0.664839,0.57038) material=G4_Fe - --> #secondaries=14 impactParameter[fm]=4.32617 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 420 projectile=lambda Ekin[MeV]=29604.4 direction=(0.100243,0.685071,0.721546) material=G4_Fe - --> #secondaries=54 impactParameter[fm]=2.32356 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=3 - Collision 421 projectile=sigma+ Ekin[MeV]=18121.4 direction=(0.796528,0.0904238,0.597802) material=G4_Ar - --> #secondaries=34 impactParameter[fm]=1.27462 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=36 #NNcollisions=3 - Collision 422 projectile=anti_xi_c+ Ekin[MeV]=7017.62 direction=(0.155876,0.944642,0.28871) material=G4_Ar - --> #secondaries=9 impactParameter[fm]=4.64235 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=0 - Collision 423 projectile=lambda_b Ekin[MeV]=22378.4 direction=(0.535506,0.673157,0.509993) material=G4_Al - --> #secondaries=22 impactParameter[fm]=3.11241 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=1 - Collision 424 projectile=D0 Ekin[MeV]=1806.6 direction=(0.00588304,0.979052,0.203527) material=G4_Ar - --> #secondaries=23 impactParameter[fm]=1.77927 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=34 #NNcollisions=1 - Collision 425 projectile=anti_sigma+ Ekin[MeV]=10107.9 direction=(0.532619,0.649584,0.542548) material=G4_Ar - --> #secondaries=34 impactParameter[fm]=2.32034 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 426 projectile=pi+ Ekin[MeV]=20874.7 direction=(0.447723,0.552239,0.703261) material=G4_He - --> #secondaries=5 impactParameter[fm]=0.534002 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 427 projectile=lambda_b Ekin[MeV]=18384.9 direction=(0.251982,0.642616,0.723568) material=G4_Pb - --> #secondaries=5 impactParameter[fm]=7.26208 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=0 - Collision 428 projectile=anti_alpha Ekin[MeV]=15370.1 direction=(0.275253,0.499635,0.821341) material=G4_Ar - --> #secondaries=35 impactParameter[fm]=3.42668 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=35 #NNcollisions=3 - Collision 429 projectile=D0 Ekin[MeV]=13797.4 direction=(0.663247,0.671346,0.330754) material=G4_Cu - --> #secondaries=28 impactParameter[fm]=2.33439 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=2 - Collision 430 projectile=D- Ekin[MeV]=20979.5 direction=(0.365214,0.254127,0.895566) material=G4_C - --> #secondaries=8 impactParameter[fm]=1.08142 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=0 - Collision 431 projectile=anti_sigma- Ekin[MeV]=9877.41 direction=(0.682301,0.460069,0.568157) material=G4_Si - --> #secondaries=28 impactParameter[fm]=1.99681 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 432 projectile=xi_b0 Ekin[MeV]=20537.3 direction=(0.752577,0.637371,0.165488) material=G4_Pb - --> #secondaries=69 impactParameter[fm]=1.3975 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=205 #NNcollisions=2 - Collision 433 projectile=anti_lambda Ekin[MeV]=20166.2 direction=(0.484781,0.597468,0.638764) material=G4_Si - --> #secondaries=17 impactParameter[fm]=3.68339 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 434 projectile=B- Ekin[MeV]=11080.1 direction=(0.39073,0.674263,0.626657) material=G4_Si - --> #secondaries=5 impactParameter[fm]=2.65064 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 435 projectile=xi_b0 Ekin[MeV]=6537.01 direction=(0.823603,0.549554,0.140245) material=G4_Si - --> #secondaries=10 impactParameter[fm]=4.17009 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=0 - Collision 436 projectile=anti_omega_c0 Ekin[MeV]=5967.05 direction=(0.552046,0.552771,0.624251) material=G4_W - --> #secondaries=18 impactParameter[fm]=3.2954 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=185 #NNcollisions=1 - Collision 437 projectile=anti_xi0 Ekin[MeV]=10278.2 direction=(0.998617,0.0114307,0.0513115) material=G4_Cu - --> #secondaries=28 impactParameter[fm]=4.68055 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=2 - Collision 438 projectile=anti_sigma- Ekin[MeV]=29157.5 direction=(0.783188,0.497776,0.372608) material=G4_He - --> #secondaries=5 impactParameter[fm]=1.47002 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 439 projectile=anti_xi_b- Ekin[MeV]=3978.49 direction=(0.232188,0.488073,0.841352) material=G4_H - --> #secondaries=2 impactParameter[fm]=1.23557 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=0 - Collision 440 projectile=Bs0 Ekin[MeV]=20193.7 direction=(0.195982,0.58883,0.784137) material=G4_W - --> #secondaries=23 impactParameter[fm]=6.33232 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=181 #NNcollisions=1 - Collision 441 projectile=anti_xi0 Ekin[MeV]=14666.3 direction=(0.499492,0.772406,0.392296) material=G4_Cu - --> #secondaries=24 impactParameter[fm]=4.81573 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=2 - Collision 442 projectile=xi_b- Ekin[MeV]=17093.6 direction=(0.884249,0.136748,0.446545) material=G4_He - --> #secondaries=4 impactParameter[fm]=1.76501 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 443 projectile=kaon0L Ekin[MeV]=18733.8 direction=(0.499747,0.0693095,0.863394) material=G4_W - --> #secondaries=71 impactParameter[fm]=3.26694 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=178 #NNcollisions=4 - Collision 444 projectile=sigma- Ekin[MeV]=26819.8 direction=(0.560797,0.687732,0.461012) material=G4_Cu - --> #secondaries=26 impactParameter[fm]=5.00783 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 445 projectile=anti_xi_b0 Ekin[MeV]=5879.63 direction=(0.67968,0.718828,0.146019) material=G4_Ar - --> #secondaries=22 impactParameter[fm]=1.50545 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=0 - Collision 446 projectile=anti_neutron Ekin[MeV]=29715.4 direction=(0.314836,0.470313,0.82443) material=G4_Pb - --> #secondaries=70 impactParameter[fm]=5.55377 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=204 #NNcollisions=4 - Collision 447 projectile=kaon- Ekin[MeV]=20392.6 direction=(0.728898,0.667173,0.153584) material=G4_Cu - --> #secondaries=15 impactParameter[fm]=4.14795 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 448 projectile=omega_c0 Ekin[MeV]=11441.8 direction=(0.854668,0.0248554,0.518579) material=G4_Ar - --> #secondaries=37 impactParameter[fm]=2.00895 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=37 #NNcollisions=2 - Collision 449 projectile=lambda_c+ Ekin[MeV]=20828.1 direction=(0.55094,0.832914,0.0521441) material=G4_H - --> #secondaries=4 impactParameter[fm]=1.15026 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 450 projectile=B0 Ekin[MeV]=2138.28 direction=(0.0170945,0.0860456,0.996145) material=G4_Pb - --> #secondaries=25 impactParameter[fm]=5.94681 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=1 - Collision 451 projectile=anti_B0 Ekin[MeV]=8486.32 direction=(0.498707,0.769063,0.399793) material=G4_Pb - --> #secondaries=17 impactParameter[fm]=5.83461 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=207 #NNcollisions=1 - Collision 452 projectile=omega_c0 Ekin[MeV]=23966.7 direction=(0.444529,0.464466,0.76594) material=G4_H - --> #secondaries=9 impactParameter[fm]=1.04341 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 453 projectile=lambda_b Ekin[MeV]=6034.18 direction=(0.0413628,0.993048,0.110204) material=G4_H - --> #secondaries=2 impactParameter[fm]=1.19752 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 454 projectile=xi_c0 Ekin[MeV]=10355.8 direction=(0.056238,0.813989,0.578151) material=G4_Be - --> #secondaries=9 impactParameter[fm]=1.09255 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=7 #NNcollisions=1 - Collision 455 projectile=anti_xi_c0 Ekin[MeV]=12039.8 direction=(0.697189,0.698037,0.163312) material=G4_He - --> #secondaries=6 impactParameter[fm]=0.678776 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 456 projectile=xi_c+ Ekin[MeV]=19628.6 direction=(0.399539,0.690229,0.603284) material=G4_Fe - --> #secondaries=22 impactParameter[fm]=3.75717 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=1 - Collision 457 projectile=xi_c0 Ekin[MeV]=26840.4 direction=(0.512576,0.213028,0.831796) material=G4_H - --> #secondaries=3 impactParameter[fm]=0.865069 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 458 projectile=anti_deuteron Ekin[MeV]=25239.9 direction=(0.424266,0.704465,0.568971) material=G4_H - --> #secondaries=8 impactParameter[fm]=1.03067 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=1 #NNcollisions=1 - Collision 459 projectile=Bc- Ekin[MeV]=24189.5 direction=(0.291754,0.948958,0.119827) material=G4_W - --> #secondaries=36 impactParameter[fm]=2.89637 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=185 #NNcollisions=0 - Collision 460 projectile=anti_proton Ekin[MeV]=9632.25 direction=(0.669447,0.631963,0.390466) material=G4_Si - --> #secondaries=31 impactParameter[fm]=1.49668 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=3 - Collision 461 projectile=Bc- Ekin[MeV]=25458 direction=(0.619628,0.0937394,0.779278) material=G4_Si - --> #secondaries=9 impactParameter[fm]=3.80154 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=0 - Collision 462 projectile=anti_lambda_c+ Ekin[MeV]=2351.88 direction=(0.809615,0.569517,0.142032) material=G4_Fe - --> #secondaries=27 impactParameter[fm]=0.498484 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=51 #NNcollisions=0 - Collision 463 projectile=pi+ Ekin[MeV]=2242.03 direction=(0.214042,0.976713,0.0147387) material=G4_Si - --> #secondaries=9 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 464 projectile=B0 Ekin[MeV]=5346.84 direction=(0.578336,0.618083,0.532449) material=G4_Ar - --> #secondaries=11 impactParameter[fm]=3.21772 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 465 projectile=neutron Ekin[MeV]=25169.7 direction=(0.726717,0.317417,0.609204) material=G4_He - --> #secondaries=4 impactParameter[fm]=1.92065 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 466 projectile=xi_b- Ekin[MeV]=20056.9 direction=(0.843489,0.47618,0.248555) material=G4_Fe - --> #secondaries=14 impactParameter[fm]=3.22169 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 467 projectile=anti_lambda_c+ Ekin[MeV]=25513.9 direction=(0.880161,0.197283,0.431736) material=G4_C - --> #secondaries=6 impactParameter[fm]=0.896459 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 - Collision 468 projectile=anti_D0 Ekin[MeV]=7064.57 direction=(0.0103654,0.287276,0.957792) material=G4_W - --> #secondaries=24 impactParameter[fm]=6.13445 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=185 #NNcollisions=1 - Collision 469 projectile=anti_Bs0 Ekin[MeV]=26674.9 direction=(0.99668,0.08139,0.00191635) material=G4_Be - --> #secondaries=10 impactParameter[fm]=0.918857 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 470 projectile=anti_alpha Ekin[MeV]=17164 direction=(0.310181,0.868245,0.38722) material=G4_Al - --> #secondaries=17 impactParameter[fm]=6.13446 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 471 projectile=Bc- Ekin[MeV]=21645.8 direction=(0.106517,0.573157,0.812493) material=G4_W - --> #secondaries=34 impactParameter[fm]=3.38422 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=182 #NNcollisions=1 - Collision 472 projectile=kaon0L Ekin[MeV]=16231.8 direction=(0.552307,0.752789,0.358142) material=G4_W - --> #secondaries=74 impactParameter[fm]=3.65915 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=179 #NNcollisions=4 - Collision 473 projectile=lambda Ekin[MeV]=5560.99 direction=(0.533075,0.69572,0.481461) material=G4_Cu - --> #secondaries=53 impactParameter[fm]=2.34737 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=58 #NNcollisions=1 - Collision 474 projectile=anti_lambda_b Ekin[MeV]=6456.33 direction=(0.462877,0.312613,0.829468) material=G4_Pb - --> #secondaries=29 impactParameter[fm]=4.57482 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=201 #NNcollisions=5 - Collision 475 projectile=xi_b0 Ekin[MeV]=9638.35 direction=(0.117229,0.806796,0.579083) material=G4_Be - --> #secondaries=6 impactParameter[fm]=2.09545 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=0 - Collision 476 projectile=anti_omega- Ekin[MeV]=11427.2 direction=(0.190601,0.91576,0.353631) material=G4_C - --> #secondaries=17 impactParameter[fm]=2.06978 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 477 projectile=anti_omega_b- Ekin[MeV]=26731.8 direction=(0.141301,0.406421,0.902694) material=G4_Ar - --> #secondaries=18 impactParameter[fm]=2.67888 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 478 projectile=B0 Ekin[MeV]=20779.8 direction=(0.328317,0.58767,0.739494) material=G4_Si - --> #secondaries=12 impactParameter[fm]=3.63334 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 479 projectile=anti_B0 Ekin[MeV]=3470.91 direction=(0.632729,0.413286,0.654865) material=G4_C - --> #secondaries=5 impactParameter[fm]=2.63241 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 480 projectile=kaon+ Ekin[MeV]=15359.4 direction=(0.620525,0.354788,0.699339) material=G4_Al - --> #secondaries=21 impactParameter[fm]=1.84857 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 481 projectile=Ds- Ekin[MeV]=23462.7 direction=(0.0152027,0.0369402,0.999202) material=G4_Ar - --> #secondaries=6 impactParameter[fm]=3.57194 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 482 projectile=anti_neutron Ekin[MeV]=19613.1 direction=(0.40659,0.816916,0.409063) material=G4_Cu - --> #secondaries=11 impactParameter[fm]=5.32394 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=65 #NNcollisions=1 - Collision 483 projectile=Ds- Ekin[MeV]=3843.86 direction=(0.301005,0.641742,0.705381) material=G4_C - --> #secondaries=10 impactParameter[fm]=0.460301 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 484 projectile=xi_b- Ekin[MeV]=21002.3 direction=(0.592673,0.520268,0.614866) material=G4_Fe - --> #secondaries=22 impactParameter[fm]=3.11078 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=0 - Collision 485 projectile=xi_b0 Ekin[MeV]=24747 direction=(0.973567,0.207604,0.0952242) material=G4_W - --> #secondaries=55 impactParameter[fm]=5.64106 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=182 #NNcollisions=2 - Collision 486 projectile=anti_omega_c0 Ekin[MeV]=16079.6 direction=(0.683594,0.076972,0.725792) material=G4_Al - --> #secondaries=21 impactParameter[fm]=2.89736 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 487 projectile=pi- Ekin[MeV]=8119.64 direction=(0.499844,0.34955,0.792446) material=G4_Fe - --> #secondaries=28 impactParameter[fm]=0.945002 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=53 #NNcollisions=2 - Collision 488 projectile=anti_Bs0 Ekin[MeV]=26747.6 direction=(0.901402,0.177295,0.39502) material=G4_H - --> #secondaries=2 impactParameter[fm]=0.0739919 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 489 projectile=anti_omega_c0 Ekin[MeV]=29072.6 direction=(0.972882,0.212871,0.0904798) material=G4_Fe - --> #secondaries=38 impactParameter[fm]=2.94701 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=2 - Collision 490 projectile=anti_deuteron Ekin[MeV]=3530.58 direction=(0.792348,0.504811,0.342564) material=G4_C - --> #secondaries=12 impactParameter[fm]=3.89648 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 491 projectile=anti_lambda_b Ekin[MeV]=17917.5 direction=(0.57234,0.796677,0.194252) material=G4_H - --> #secondaries=5 impactParameter[fm]=0.928709 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 492 projectile=anti_neutron Ekin[MeV]=6093.97 direction=(0.226899,0.947205,0.226539) material=G4_W - --> #secondaries=8 impactParameter[fm]=6.91763 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=1 - Collision 493 projectile=anti_lambda Ekin[MeV]=17923.1 direction=(0.0228145,0.829475,0.558077) material=G4_Si - --> #secondaries=21 impactParameter[fm]=4.3785 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=2 - Collision 494 projectile=anti_lambda_b Ekin[MeV]=15117.7 direction=(0.404725,0.911559,0.0725119) material=G4_Si - --> #secondaries=15 impactParameter[fm]=0.980192 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 495 projectile=anti_D0 Ekin[MeV]=26843.6 direction=(0.552367,0.710498,0.435985) material=G4_Al - --> #secondaries=5 impactParameter[fm]=2.53453 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 496 projectile=D+ Ekin[MeV]=22767.6 direction=(0.68633,0.687626,0.2369) material=G4_Be - --> #secondaries=13 impactParameter[fm]=1.7906 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 497 projectile=anti_omega_c0 Ekin[MeV]=23690.1 direction=(0.409035,0.671851,0.6175) material=G4_Pb - --> #secondaries=30 impactParameter[fm]=6.68315 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=204 #NNcollisions=2 - Collision 498 projectile=anti_xi0 Ekin[MeV]=29176.9 direction=(0.718129,0.671906,0.181201) material=G4_Fe - --> #secondaries=24 impactParameter[fm]=3.00936 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 499 projectile=anti_xi_c0 Ekin[MeV]=9238.18 direction=(0.0406214,0.856909,0.513864) material=G4_He - --> #secondaries=4 impactParameter[fm]=1.70562 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 500 projectile=kaon- Ekin[MeV]=1515.71 direction=(0.404401,0.678172,0.613631) material=G4_W - --> #secondaries=59 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - List of produced secondaries: - j=0 neutron p=(284.943,960.24,16.67471373.43) MeV - j=1 proton p=(123.599,422.293,542.0071169.5) MeV - j=2 neutron p=(520.785,-8.8046,127.5241081.82) MeV - j=3 neutron p=(191.432,181.184,46.5948976.948) MeV - j=4 proton p=(138.833,61.0722,208.721973.1) MeV - j=5 proton p=(231.098,-70.942,6.47893968.935) MeV - j=6 lambda p=(-34.8089,-0.745869,248.8271143.62) MeV - j=7 neutron p=(-109.651,176.139,68.3125964.623) MeV - j=8 proton p=(11.4249,-64.6489,188.852959.338) MeV - j=9 proton p=(-86.0894,-127.126,-127.687959.287) MeV - j=10 proton p=(-36.8673,171.886,-65.6285956.852) MeV - j=11 neutron p=(7.24492,-157.792,-76.5348955.82) MeV - j=12 neutron p=(25.6756,-138.567,-73.7104952.93) MeV - j=13 neutron p=(-25.3856,-28.9391,149.465952.158) MeV - j=14 neutron p=(-42.6658,-20.0687,-139.852951.086) MeV - j=15 neutron p=(-127.363,42.527,53.5793950.623) MeV - j=16 neutron p=(-85.6777,-81.1436,69.3776949.485) MeV - j=17 proton p=(-16.0088,-132.617,15.5124947.86) MeV - j=18 neutron p=(-84.8143,57.3045,85.9753949.027) MeV - j=19 neutron p=(4.06685,123.944,44.0935948.739) MeV - j=20 neutron p=(-94.0796,-20.2201,78.3701947.726) MeV - j=21 neutron p=(-48.2994,-12.3159,-107.953947.059) MeV - j=22 proton p=(15.8677,79.9947,-83.4584945.5) MeV - j=23 neutron p=(-94.6051,-52.8304,41.3422946.696) MeV - j=24 proton p=(33.0205,-80.797,75.1533945.315) MeV - j=25 neutron p=(-47.7051,-36.3278,95.0303946.261) MeV - j=26 neutron p=(88.4632,37.9756,-32.2751945.036) MeV - j=27 neutron p=(59.4639,-18.8206,-79.8481945.013) MeV - j=28 neutron p=(19.6381,-68.4268,-70.9002944.922) MeV - j=29 neutron p=(31.9831,31.9067,87.5448944.716) MeV - j=30 neutron p=(27.2233,71.8048,-55.8241944.35) MeV - j=31 neutron p=(78.6913,-14.0394,-48.5719944.21) MeV - j=32 proton p=(-11.4904,-56.1564,68.1038942.485) MeV - j=33 neutron p=(-60.2335,31.2636,-53.9368943.556) MeV - j=34 proton p=(-55.2288,42.791,49.692942.181) MeV - j=35 neutron p=(-36.0235,-34.1595,-61.7861942.903) MeV - j=36 neutron p=(11.6465,-58.6229,44.5059942.516) MeV - j=37 neutron p=(-34.1664,-63.3297,18.3095942.495) MeV - j=38 neutron p=(-40.3054,-45.6894,42.2254942.485) MeV - j=39 neutron p=(67.0118,15.8052,11.6277942.156) MeV - j=40 neutron p=(-36.1804,49.462,-17.5174941.725) MeV - j=41 neutron p=(24.1155,-45.6733,32.9926941.562) MeV - j=42 neutron p=(-35.9935,-43.0342,-20.6761941.466) MeV - j=43 gamma p=(-0.657113,0.177543,1.477281.62655) MeV - j=44 gamma p=(1.10861,0.898483,0.6308481.56021) MeV - j=45 neutron p=(36.0398,-13.5991,-27.7652940.764) MeV - j=46 gamma p=(0.748043,0.328438,-0.4737430.94439) MeV - j=47 gamma p=(0.11198,0.378934,0.352070.529229) MeV - j=48 neutron p=(22.2333,5.34393,21.7004940.094) MeV - j=49 deuteron p=(-49.6229,68.1669,-451.0531930.93) MeV - j=50 triton p=(202.652,6.90368,-43.42852816.57) MeV - j=51 alpha p=(-294.242,39.1785,147.0983742.07) MeV - j=52 deuteron p=(-112.537,24.8218,-112.3851882.51) MeV - j=53 deuteron p=(146.833,-12.5935,-194.8311891.45) MeV - j=54 alpha p=(85.3962,372.702,-167.9173750.7) MeV - j=55 alpha p=(307.746,333.128,87.8223755.9) MeV - j=56 triton p=(-207.522,-16.489,246.1292827.36) MeV - j=57 deuteron p=(131.167,10.8857,-167.8451887.7) MeV - j=58 Sn111 p=(-234.346,-575.044,454.988103287) MeV - Collision 501 projectile=deuteron Ekin[MeV]=27921.2 direction=(0.147589,0.779364,0.608941) material=G4_H - --> #secondaries=3 impactParameter[fm]=1.9876 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=0 #NNcollisions=0 - Collision 502 projectile=pi- Ekin[MeV]=26230.7 direction=(0.215895,0.199675,0.955782) material=G4_Cu - --> #secondaries=27 impactParameter[fm]=5.52196 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=2 - Collision 503 projectile=Bc+ Ekin[MeV]=26083.8 direction=(0.584329,0.759757,0.285184) material=G4_Cu - --> #secondaries=14 impactParameter[fm]=0.75558 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 504 projectile=Bc- Ekin[MeV]=28325.8 direction=(0.234605,0.954889,0.182065) material=G4_Fe - --> #secondaries=24 impactParameter[fm]=2.22566 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=54 #NNcollisions=2 - Collision 505 projectile=lambda_c+ Ekin[MeV]=12219.2 direction=(0.00707043,0.618144,0.786033) material=G4_Al - --> #secondaries=33 impactParameter[fm]=0.623963 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=22 #NNcollisions=4 - Collision 506 projectile=anti_omega_c0 Ekin[MeV]=10377.2 direction=(0.0897199,0.713512,0.694874) material=G4_Cu - --> #secondaries=12 impactParameter[fm]=4.83319 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 507 projectile=xi_c0 Ekin[MeV]=9223.54 direction=(0.146431,0.112305,0.982825) material=G4_He - --> #secondaries=4 impactParameter[fm]=2.04237 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 508 projectile=xi0 Ekin[MeV]=8761.68 direction=(0.750797,0.36514,0.550433) material=G4_Be - --> #secondaries=9 impactParameter[fm]=2.11453 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 509 projectile=sigma- Ekin[MeV]=6656.56 direction=(0.633121,0.522862,0.570766) material=G4_Be - --> #secondaries=10 impactParameter[fm]=2.32536 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 510 projectile=anti_B0 Ekin[MeV]=19922.5 direction=(0.762782,0.322455,0.560523) material=G4_Cu - --> #secondaries=13 impactParameter[fm]=2.16783 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=0 - Collision 511 projectile=alpha Ekin[MeV]=7015.75 direction=(0.227457,0.73732,0.6361) material=G4_Be - --> #secondaries=11 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 512 projectile=omega_b- Ekin[MeV]=17656.8 direction=(0.195758,0.585571,0.786629) material=G4_Fe - --> #secondaries=20 impactParameter[fm]=3.10604 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=1 - Collision 513 projectile=anti_xi- Ekin[MeV]=10105.6 direction=(0.63518,0.705174,0.315079) material=G4_Be - --> #secondaries=9 impactParameter[fm]=1.90479 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=7 #NNcollisions=1 - Collision 514 projectile=anti_xi_c+ Ekin[MeV]=15162.8 direction=(0.0857596,0.720236,0.688408) material=G4_W - --> #secondaries=32 impactParameter[fm]=5.71128 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=184 #NNcollisions=2 - Collision 515 projectile=anti_omega_b- Ekin[MeV]=19653.6 direction=(0.708353,0.521215,0.475995) material=G4_He - --> #secondaries=7 impactParameter[fm]=0.515027 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=1 - Collision 516 projectile=anti_B0 Ekin[MeV]=6009.53 direction=(0.857003,0.127069,0.499398) material=G4_Al - --> #secondaries=17 impactParameter[fm]=3.43913 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 517 projectile=D+ Ekin[MeV]=20132.8 direction=(0.759639,0.115357,0.640032) material=G4_W - --> #secondaries=54 impactParameter[fm]=4.49725 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=184 #NNcollisions=2 - Collision 518 projectile=B+ Ekin[MeV]=27713.7 direction=(0.671608,0.409321,0.617575) material=G4_W - --> #secondaries=37 impactParameter[fm]=6.1448 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=183 #NNcollisions=2 - Collision 519 projectile=xi- Ekin[MeV]=10964.9 direction=(0.774434,0.564694,0.285258) material=G4_Al - --> #secondaries=24 impactParameter[fm]=2.32044 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=23 #NNcollisions=2 - Collision 520 projectile=sigma- Ekin[MeV]=10331.9 direction=(0.853255,0.353328,0.383556) material=G4_W - --> #secondaries=37 impactParameter[fm]=4.7034 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=1 - Collision 521 projectile=anti_proton Ekin[MeV]=2103.23 direction=(0.610501,0.76724,0.196547) material=G4_Si - --> #secondaries=16 impactParameter[fm]=2.7387 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 522 projectile=Ds- Ekin[MeV]=2999.4 direction=(0.593677,0.640212,0.48752) material=G4_H - --> #secondaries=4 impactParameter[fm]=0.736729 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 523 projectile=anti_deuteron Ekin[MeV]=3636.41 direction=(0.877287,0.460844,0.134129) material=G4_Si - --> #secondaries=20 impactParameter[fm]=3.02768 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 524 projectile=xi_b- Ekin[MeV]=4665.23 direction=(0.153574,0.0615792,0.986217) material=G4_Fe - --> #secondaries=14 impactParameter[fm]=3.82721 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=2 - Collision 525 projectile=kaon+ Ekin[MeV]=13531.6 direction=(0.629825,0.576318,0.520748) material=G4_C - --> #secondaries=15 impactParameter[fm]=1.74268 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 526 projectile=kaon- Ekin[MeV]=27776.7 direction=(0.795736,0.524482,0.302858) material=G4_Be - --> #secondaries=9 impactParameter[fm]=3.42165 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 527 projectile=xi_b0 Ekin[MeV]=29958.9 direction=(0.481659,0.757233,0.441138) material=G4_H - --> #secondaries=5 impactParameter[fm]=0.431741 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 528 projectile=anti_deuteron Ekin[MeV]=15030.3 direction=(0.556344,0.74833,0.361225) material=G4_Ar - --> #secondaries=13 impactParameter[fm]=3.89701 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=40 #NNcollisions=1 - Collision 529 projectile=B+ Ekin[MeV]=21096.8 direction=(0.795487,0.376758,0.474609) material=G4_Pb - --> #secondaries=54 impactParameter[fm]=3.39254 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=0 - Collision 530 projectile=neutron Ekin[MeV]=6377.74 direction=(0.598505,0.581246,0.551311) material=G4_Cu - --> #secondaries=44 impactParameter[fm]=1.97349 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=57 #NNcollisions=4 - Collision 531 projectile=anti_B0 Ekin[MeV]=15628.8 direction=(0.423685,0.105421,0.899654) material=G4_Fe - --> #secondaries=10 impactParameter[fm]=3.99906 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 532 projectile=anti_sigma+ Ekin[MeV]=1093.28 direction=(0.799288,0.20109,0.566305) material=G4_Cu - --> #secondaries=11 impactParameter[fm]=5.82279 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=0 - Collision 533 projectile=anti_B0 Ekin[MeV]=21207.2 direction=(0.747402,0.620734,0.236812) material=G4_Be - --> #secondaries=6 impactParameter[fm]=0.937868 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 534 projectile=Bc+ Ekin[MeV]=26426.6 direction=(0.285449,0.945736,0.15525) material=G4_He - --> #secondaries=9 impactParameter[fm]=2.27448 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=2 #NNcollisions=2 - Collision 535 projectile=lambda Ekin[MeV]=9669.77 direction=(0.581817,0.658154,0.477831) material=G4_Pb - --> #secondaries=47 impactParameter[fm]=5.59545 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=204 #NNcollisions=3 - Collision 536 projectile=D0 Ekin[MeV]=27885.7 direction=(0.715636,0.686743,0.127475) material=G4_C - --> #secondaries=12 impactParameter[fm]=2.30007 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 537 projectile=deuteron Ekin[MeV]=26001.9 direction=(0.770413,0.0168426,0.637323) material=G4_Ar - --> #secondaries=20 impactParameter[fm]=3.88627 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=1 - Collision 538 projectile=deuteron Ekin[MeV]=27405.7 direction=(0.612364,0.627462,0.480939) material=G4_Fe - --> #secondaries=37 impactParameter[fm]=2.43885 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=49 #NNcollisions=4 - Collision 539 projectile=D0 Ekin[MeV]=12934.4 direction=(0.958935,0.0975279,0.266332) material=G4_H - --> #secondaries=4 impactParameter[fm]=0.464964 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 540 projectile=proton Ekin[MeV]=20302.7 direction=(0.250595,0.518323,0.817645) material=G4_W - --> #secondaries=60 impactParameter[fm]=6.732 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=3 - Collision 541 projectile=anti_D0 Ekin[MeV]=21016.1 direction=(0.224476,0.0130244,0.974393) material=G4_Cu - --> #secondaries=8 impactParameter[fm]=4.48969 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 542 projectile=anti_B0 Ekin[MeV]=4924.33 direction=(0.270966,0.739532,0.616174) material=G4_Pb - --> #secondaries=7 impactParameter[fm]=5.89537 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=207 #NNcollisions=1 - Collision 543 projectile=D+ Ekin[MeV]=12338.3 direction=(0.984259,0.105051,0.142123) material=G4_He - --> #secondaries=5 impactParameter[fm]=1.49261 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 544 projectile=Ds- Ekin[MeV]=12583.6 direction=(0.923436,0.297311,0.242636) material=G4_Pb - --> #secondaries=13 impactParameter[fm]=6.93038 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=1 - Collision 545 projectile=Ds+ Ekin[MeV]=12667.5 direction=(0.202199,0.643194,0.738523) material=G4_Ar - --> #secondaries=17 impactParameter[fm]=3.35144 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 546 projectile=proton Ekin[MeV]=6104.93 direction=(0.191619,0.704771,0.683067) material=G4_W - --> #secondaries=64 impactParameter[fm]=3.90892 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=180 #NNcollisions=4 - Collision 547 projectile=D- Ekin[MeV]=11264.4 direction=(0.362723,0.615409,0.699789) material=G4_Cu - --> #secondaries=23 impactParameter[fm]=3.10882 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 548 projectile=xi- Ekin[MeV]=17582.5 direction=(0.494602,0.0412034,0.868143) material=G4_Ar - --> #secondaries=19 impactParameter[fm]=1.93408 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 549 projectile=triton Ekin[MeV]=11014.4 direction=(0.848184,0.0567547,0.526652) material=G4_Ar + Collision 261 projectile=xi0 Ekin[MeV]=20495.1 direction=(0.426908,0.648966,0.629757) material=G4_Al + --> #secondaries=17 impactParameter[fm]=3.96767 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 262 projectile=hyperHe5 Ekin[MeV]=15708.8 direction=(0.543396,0.323068,0.774821) material=G4_Cu + --> #secondaries=30 impactParameter[fm]=4.39115 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=62 #NNcollisions=3 + Collision 263 projectile=anti_xi0 Ekin[MeV]=7443.45 direction=(0.622171,0.764693,0.167774) material=G4_Si + --> #secondaries=20 impactParameter[fm]=2.38647 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 264 projectile=hyperalpha Ekin[MeV]=17103.6 direction=(0.286851,0.644295,0.708943) material=G4_Si + --> #secondaries=15 impactParameter[fm]=3.78839 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 265 projectile=anti_doublehyperH4 Ekin[MeV]=6692.56 direction=(0.350463,0.629257,0.693693) material=G4_Ar + --> #secondaries=23 impactParameter[fm]=6.26207 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=40 #NNcollisions=2 + Collision 266 projectile=omega_b- Ekin[MeV]=12614.4 direction=(0.420937,0.178048,0.889444) material=G4_Si + --> #secondaries=11 impactParameter[fm]=2.72817 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 267 projectile=neutron Ekin[MeV]=1771.46 direction=(0.706865,0.262249,0.656938) material=G4_Pb + --> #secondaries=34 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 268 projectile=kaon+ Ekin[MeV]=9756.82 direction=(0.473805,0.300142,0.827903) material=G4_C + --> #secondaries=13 impactParameter[fm]=2.48915 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=10 #NNcollisions=2 + Collision 269 projectile=anti_sigma+ Ekin[MeV]=5190.24 direction=(0.413488,0.850184,0.325906) material=G4_Pb + --> #secondaries=75 impactParameter[fm]=1.63862 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=2 + Collision 270 projectile=anti_neutron Ekin[MeV]=20972.1 direction=(0.620826,0.0579267,0.781805) material=G4_Al + --> #secondaries=24 impactParameter[fm]=4.95861 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 271 projectile=anti_lambda_c+ Ekin[MeV]=25294.8 direction=(0.312049,0.636742,0.705113) material=G4_Si + --> #secondaries=18 impactParameter[fm]=4.1365 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 272 projectile=alpha Ekin[MeV]=2756.45 direction=(0.391154,0.754504,0.526993) material=G4_Al --> #secondaries=18 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 550 projectile=anti_neutron Ekin[MeV]=5638.28 direction=(0.372999,0.619355,0.690848) material=G4_Pb - --> #secondaries=82 impactParameter[fm]=4.91636 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=1 - Collision 551 projectile=He3 Ekin[MeV]=16018.3 direction=(0.138192,0.86985,0.473566) material=G4_He - --> #secondaries=8 impactParameter[fm]=2.87836 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 552 projectile=Ds+ Ekin[MeV]=25369.8 direction=(0.628966,0.644781,0.434349) material=G4_Ar - --> #secondaries=21 impactParameter[fm]=1.26014 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 553 projectile=He3 Ekin[MeV]=5911.18 direction=(0.162428,0.618807,0.768567) material=G4_Cu - --> #secondaries=17 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 554 projectile=Bc+ Ekin[MeV]=1694.12 direction=(0.311122,0.317164,0.895885) material=G4_H - --> #secondaries=2 impactParameter[fm]=1.04976 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=0 - Collision 555 projectile=anti_xi_b- Ekin[MeV]=24774.9 direction=(0.1109,0.0350357,0.993214) material=G4_Fe - --> #secondaries=10 impactParameter[fm]=6.68225 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=0 - Collision 556 projectile=anti_sigma+ Ekin[MeV]=25238.9 direction=(0.729957,0.646544,0.221684) material=G4_Cu - --> #secondaries=18 impactParameter[fm]=5.13835 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=0 - Collision 557 projectile=anti_xi_b- Ekin[MeV]=1730.54 direction=(0.871509,0.474831,0.122509) material=G4_Pb - --> #secondaries=20 impactParameter[fm]=4.20514 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=205 #NNcollisions=0 - Collision 558 projectile=D+ Ekin[MeV]=4353.38 direction=(0.62283,0.399294,0.67279) material=G4_Fe - --> #secondaries=14 impactParameter[fm]=1.32137 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=54 #NNcollisions=1 - Collision 559 projectile=anti_deuteron Ekin[MeV]=18494.2 direction=(0.469507,0.145764,0.870814) material=G4_Ar - --> #secondaries=36 impactParameter[fm]=3.36082 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=4 - Collision 560 projectile=lambda_c+ Ekin[MeV]=29273.3 direction=(0.230215,0.737769,0.634585) material=G4_He - --> #secondaries=5 impactParameter[fm]=2.95659 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 561 projectile=He3 Ekin[MeV]=14523 direction=(0.653173,0.531288,0.539535) material=G4_Al - --> #secondaries=32 impactParameter[fm]=3.11194 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=16 #NNcollisions=7 - Collision 562 projectile=D+ Ekin[MeV]=5547.11 direction=(0.716035,0.508415,0.478338) material=G4_Ar - --> #secondaries=16 impactParameter[fm]=4.81308 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 563 projectile=lambda_c+ Ekin[MeV]=3342.88 direction=(0.0232463,0.993337,0.112879) material=G4_C - --> #secondaries=13 impactParameter[fm]=1.22573 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 564 projectile=D- Ekin[MeV]=12609.3 direction=(0.539237,0.636058,0.551954) material=G4_Pb - --> #secondaries=41 impactParameter[fm]=5.56898 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=207 #NNcollisions=1 - Collision 565 projectile=He3 Ekin[MeV]=9926.57 direction=(0.0420528,0.460289,0.886772) material=G4_Cu - --> #secondaries=37 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 566 projectile=Bc- Ekin[MeV]=29380.4 direction=(0.811585,0.104708,0.574775) material=G4_Pb - --> #secondaries=35 impactParameter[fm]=5.80619 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=1 - Collision 567 projectile=proton Ekin[MeV]=24407 direction=(0.58229,0.210415,0.785279) material=G4_He - --> #secondaries=11 impactParameter[fm]=2.0265 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 568 projectile=kaon0S Ekin[MeV]=12742.6 direction=(0.774721,0.566328,0.281213) material=G4_C - --> #secondaries=15 impactParameter[fm]=1.87923 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=10 #NNcollisions=2 - Collision 569 projectile=anti_neutron Ekin[MeV]=7817.56 direction=(0.128464,0.740112,0.6601) material=G4_Pb - --> #secondaries=52 impactParameter[fm]=2.80935 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=205 #NNcollisions=2 - Collision 570 projectile=He3 Ekin[MeV]=28157.1 direction=(0.654526,0.755985,0.00910183) material=G4_H - --> #secondaries=4 impactParameter[fm]=1.4745 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=0 #NNcollisions=0 - Collision 571 projectile=anti_xi0 Ekin[MeV]=12785 direction=(0.549574,0.346067,0.760398) material=G4_H - --> #secondaries=5 impactParameter[fm]=0.896616 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 572 projectile=lambda_c+ Ekin[MeV]=16936.7 direction=(0.417482,0.662692,0.62173) material=G4_He - --> #secondaries=6 impactParameter[fm]=1.16714 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 573 projectile=xi_c0 Ekin[MeV]=13806.5 direction=(0.972836,0.22987,0.0273937) material=G4_Si - --> #secondaries=15 impactParameter[fm]=4.91506 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 574 projectile=anti_proton Ekin[MeV]=9354.79 direction=(0.499622,0.219391,0.838001) material=G4_Pb - --> #secondaries=29 impactParameter[fm]=8.05489 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=1 - Collision 575 projectile=pi+ Ekin[MeV]=3616.15 direction=(0.781245,0.451768,0.430769) material=G4_Cu - --> #secondaries=12 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 576 projectile=anti_He3 Ekin[MeV]=28773.2 direction=(0.491256,0.329768,0.806176) material=G4_Si - --> #secondaries=29 impactParameter[fm]=4.65938 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=28 #NNcollisions=2 - Collision 577 projectile=anti_sigma+ Ekin[MeV]=12190 direction=(0.689847,0.587277,0.42334) material=G4_H - --> #secondaries=8 impactParameter[fm]=0.52998 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 578 projectile=Ds- Ekin[MeV]=23412 direction=(0.376767,0.70487,0.601004) material=G4_W - --> #secondaries=34 impactParameter[fm]=7.11511 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=181 #NNcollisions=1 - Collision 579 projectile=anti_D0 Ekin[MeV]=23575.2 direction=(0.913258,0.195714,0.357289) material=G4_W - --> #secondaries=83 impactParameter[fm]=1.58803 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=181 #NNcollisions=5 - Collision 580 projectile=xi0 Ekin[MeV]=20923 direction=(0.222341,0.373028,0.900785) material=G4_C - --> #secondaries=10 impactParameter[fm]=1.48081 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 581 projectile=anti_proton Ekin[MeV]=14063.3 direction=(0.632336,0.670945,0.387278) material=G4_C - --> #secondaries=13 impactParameter[fm]=1.17531 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=12 #NNcollisions=1 - Collision 582 projectile=anti_alpha Ekin[MeV]=2126.09 direction=(0.00903548,0.781143,0.624287) material=G4_W - --> #secondaries=56 impactParameter[fm]=5.94782 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=4 - Collision 583 projectile=anti_xi_b- Ekin[MeV]=22632.7 direction=(0.230825,0.855415,0.463665) material=G4_Al - --> #secondaries=29 impactParameter[fm]=1.56487 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=2 - Collision 584 projectile=kaon- Ekin[MeV]=14388.8 direction=(0.654284,0.680499,0.3299) material=G4_Al - --> #secondaries=21 impactParameter[fm]=1.15216 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=24 #NNcollisions=2 - Collision 585 projectile=anti_proton Ekin[MeV]=28856.7 direction=(0.61683,0.580796,0.531222) material=G4_Ar - --> #secondaries=28 impactParameter[fm]=2.95531 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 586 projectile=sigma- Ekin[MeV]=15852.7 direction=(0.637836,0.358598,0.681596) material=G4_W - --> #secondaries=48 impactParameter[fm]=6.222 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=179 #NNcollisions=4 - Collision 587 projectile=anti_omega_c0 Ekin[MeV]=27471.9 direction=(0.566977,0.812442,0.135924) material=G4_C - --> #secondaries=5 impactParameter[fm]=1.85591 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 588 projectile=D- Ekin[MeV]=15682.8 direction=(0.204613,0.968805,0.139825) material=G4_Be - --> #secondaries=5 impactParameter[fm]=2.39394 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=0 - Collision 589 projectile=lambda_b Ekin[MeV]=3650.03 direction=(0.0889727,0.848386,0.521848) material=G4_W - --> #secondaries=35 impactParameter[fm]=5.61774 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=179 #NNcollisions=1 - Collision 590 projectile=omega_b- Ekin[MeV]=13415.1 direction=(0.651765,0.594939,0.470373) material=G4_Ar - --> #secondaries=15 impactParameter[fm]=3.74583 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 591 projectile=xi0 Ekin[MeV]=20113.2 direction=(0.856983,0.0734669,0.510081) material=G4_Ar - --> #secondaries=7 impactParameter[fm]=4.34348 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=0 - Collision 592 projectile=anti_lambda Ekin[MeV]=20082.6 direction=(0.215813,0.692203,0.688679) material=G4_C - --> #secondaries=14 impactParameter[fm]=1.8069 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=12 #NNcollisions=1 - Collision 593 projectile=xi_c+ Ekin[MeV]=23362.3 direction=(0.391287,0.795284,0.463053) material=G4_Be - --> #secondaries=6 impactParameter[fm]=2.32227 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 594 projectile=omega- Ekin[MeV]=10228.8 direction=(0.776934,0.578529,0.24835) material=G4_Pb - --> #secondaries=25 impactParameter[fm]=5.5629 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=1 - Collision 595 projectile=anti_sigma- Ekin[MeV]=23599.4 direction=(0.051812,0.7004,0.711868) material=G4_Ar - --> #secondaries=31 impactParameter[fm]=2.80136 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=2 - Collision 596 projectile=xi_b- Ekin[MeV]=4115.38 direction=(0.732858,0.670001,0.1184) material=G4_Be - --> #secondaries=7 impactParameter[fm]=1.3452 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=6 #NNcollisions=1 - Collision 597 projectile=He3 Ekin[MeV]=16054.9 direction=(0.575356,0.567591,0.588903) material=G4_Cu - --> #secondaries=12 impactParameter[fm]=6.97324 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=62 #NNcollisions=0 - Collision 598 projectile=anti_xi_b- Ekin[MeV]=23094.7 direction=(0.0293243,0.821139,0.569974) material=G4_Cu - --> #secondaries=29 impactParameter[fm]=0.713442 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=2 - Collision 599 projectile=kaon- Ekin[MeV]=29986.9 direction=(0.86321,0.496858,0.0894471) material=G4_He - --> #secondaries=11 impactParameter[fm]=1.72276 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 600 projectile=anti_omega_c0 Ekin[MeV]=23677.1 direction=(0.266933,0.892394,0.36384) material=G4_W - --> #secondaries=34 impactParameter[fm]=5.6961 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=184 #NNcollisions=2 - List of produced secondaries: - j=0 anti_omega_c0 p=(4354.22,13504.3,6154.0715699.1) MeV - j=1 pi+ p=(589.704,1351.75,1014.811795.63) MeV - j=2 pi- p=(133.852,1403.68,425.5911479.47) MeV - j=3 pi0 p=(-51.1393,242.436,-27.6502283.502) MeV - j=4 proton p=(569.249,2455.34,900.4252836.17) MeV - j=5 pi- p=(311.663,541.2,145.075656.169) MeV - j=6 proton p=(-63.207,-274.976,277.7931018.4) MeV - j=7 pi- p=(-28.8989,101.87,-114.485209.283) MeV - j=8 proton p=(-122.111,1317.82,397.2591670.25) MeV - j=9 pi- p=(228.698,289.446,13.4365394.642) MeV - j=10 pi0 p=(726.857,521.324,112.913911.63) MeV - j=11 pi+ p=(138.898,163.904,-223.402339.92) MeV - j=12 pi- p=(-218.334,606.3,219.699694.994) MeV - j=13 pi+ p=(383.894,885.49,332.5991030.32) MeV - j=14 proton p=(-140.089,-22.0603,-219.112973.897) MeV - j=15 neutron p=(-85.6103,-28.5742,-32.6157944.454) MeV - j=16 neutron p=(57.0968,-24.5277,51.977943.052) MeV - j=17 neutron p=(-101.792,51.2572,-62.4682948.512) MeV - j=18 neutron p=(82.1405,68.1629,30.8359946.112) MeV - j=19 neutron p=(17.8618,28.7217,25.069940.508) MeV - j=20 neutron p=(-69.0682,42.564,-42.5388944.021) MeV - j=21 neutron p=(-62.9209,-18.0488,38.6789942.637) MeV - j=22 neutron p=(22.4574,25.3672,0.769344940.176) MeV - j=23 neutron p=(-12.0374,4.77781,-34.6309940.293) MeV - j=24 gamma p=(1.64163,0.495362,1.922042.57577) MeV - j=25 gamma p=(0.613622,-0.614673,0.5255161.01515) MeV - j=26 gamma p=(-0.903273,0.133327,0.2850360.956516) MeV - j=27 gamma p=(0.620561,-0.249785,0.6134480.907638) MeV - j=28 gamma p=(-0.0108459,-0.79332,-0.3181460.854805) MeV - j=29 gamma p=(-0.0913586,0.400063,-0.7001550.81155) MeV - j=30 gamma p=(-0.477964,-0.480989,0.370770.772833) MeV - j=31 gamma p=(-0.720678,0.124177,-0.02063240.731589) MeV - j=32 gamma p=(0.16811,0.54815,0.3898410.693329) MeV - j=33 Hf173 p=(340.517,174.022,157.824161057) MeV - Collision 601 projectile=anti_proton Ekin[MeV]=16578.9 direction=(0.331377,0.69083,0.642606) material=G4_Ar - --> #secondaries=35 impactParameter[fm]=1.32093 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 602 projectile=xi0 Ekin[MeV]=4936.84 direction=(0.0347245,0.979413,0.198856) material=G4_Al - --> #secondaries=8 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 603 projectile=anti_xi_c0 Ekin[MeV]=19486.9 direction=(0.105278,0.756923,0.644968) material=G4_C - --> #secondaries=14 impactParameter[fm]=1.53902 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=2 - Collision 604 projectile=D- Ekin[MeV]=12135.5 direction=(0.126525,0.676055,0.725907) material=G4_He - --> #secondaries=4 impactParameter[fm]=3.4735 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 605 projectile=anti_omega_b- Ekin[MeV]=20114.9 direction=(0.653847,0.517511,0.551966) material=G4_He - --> #secondaries=5 impactParameter[fm]=1.13981 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 606 projectile=kaon0L Ekin[MeV]=17824.3 direction=(0.234652,0.907654,0.347998) material=G4_He - --> #secondaries=12 impactParameter[fm]=0.980197 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=2 #NNcollisions=2 - Collision 607 projectile=neutron Ekin[MeV]=1536.57 direction=(0.32297,0.530442,0.783787) material=G4_Pb - --> #secondaries=36 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 608 projectile=kaon0S Ekin[MeV]=3518.39 direction=(0.731328,0.641123,0.232638) material=G4_He - --> #secondaries=8 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 609 projectile=anti_xi_c+ Ekin[MeV]=27357 direction=(0.391688,0.654164,0.647032) material=G4_Pb - --> #secondaries=51 impactParameter[fm]=5.33527 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=2 - Collision 610 projectile=anti_D0 Ekin[MeV]=9666.61 direction=(0.639273,0.0162718,0.768807) material=G4_Si - --> #secondaries=9 impactParameter[fm]=2.55013 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=2 - Collision 611 projectile=anti_alpha Ekin[MeV]=29243.7 direction=(0.324438,0.440461,0.837099) material=G4_H - --> #secondaries=5 impactParameter[fm]=3.91515 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=1 #NNcollisions=1 - Collision 612 projectile=kaon- Ekin[MeV]=12638.5 direction=(0.589418,0.80378,0.0807709) material=G4_He - --> #secondaries=4 impactParameter[fm]=2.86673 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 613 projectile=xi_b- Ekin[MeV]=15477.9 direction=(0.281572,0.958331,0.0481481) material=G4_H - --> #secondaries=4 impactParameter[fm]=1.39409 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 614 projectile=anti_triton Ekin[MeV]=6722.5 direction=(0.787334,0.562002,0.253494) material=G4_H - --> #secondaries=5 impactParameter[fm]=1.94444 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=1 #NNcollisions=1 - Collision 615 projectile=xi0 Ekin[MeV]=25188 direction=(0.0423963,0.982161,0.183199) material=G4_Al - --> #secondaries=12 impactParameter[fm]=5.31293 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 616 projectile=Bs0 Ekin[MeV]=21435.5 direction=(0.237212,0.799251,0.552203) material=G4_W - --> #secondaries=12 impactParameter[fm]=6.78483 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=185 #NNcollisions=1 - Collision 617 projectile=Bc+ Ekin[MeV]=14226.3 direction=(0.731123,0.359658,0.579746) material=G4_Be - --> #secondaries=7 impactParameter[fm]=1.60578 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 618 projectile=anti_Bs0 Ekin[MeV]=3543.23 direction=(0.816531,0.445994,0.36656) material=G4_He - --> #secondaries=4 impactParameter[fm]=1.19721 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 619 projectile=anti_proton Ekin[MeV]=18808.6 direction=(0.424635,0.785334,0.450483) material=G4_He - --> #secondaries=18 impactParameter[fm]=1.13239 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=2 - Collision 620 projectile=pi- Ekin[MeV]=17919.5 direction=(0.284059,0.694392,0.661159) material=G4_Ar - --> #secondaries=22 impactParameter[fm]=4.45043 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 621 projectile=anti_xi0 Ekin[MeV]=20199.2 direction=(0.750227,0.219974,0.623514) material=G4_C - --> #secondaries=7 impactParameter[fm]=2.54181 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 - Collision 622 projectile=anti_xi0 Ekin[MeV]=28726.2 direction=(0.224185,0.656004,0.720694) material=G4_Pb - --> #secondaries=46 impactParameter[fm]=6.19741 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=204 #NNcollisions=3 - Collision 623 projectile=anti_deuteron Ekin[MeV]=3316.23 direction=(0.614669,0.738544,0.27701) material=G4_Fe - --> #secondaries=37 impactParameter[fm]=2.93556 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=2 - Collision 624 projectile=anti_lambda_b Ekin[MeV]=17159.3 direction=(0.773892,0.571095,0.273755) material=G4_He - --> #secondaries=9 impactParameter[fm]=0.773792 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=2 - Collision 625 projectile=omega_b- Ekin[MeV]=21348.7 direction=(0.620602,0.505577,0.599371) material=G4_C - --> #secondaries=7 impactParameter[fm]=2.52911 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 - Collision 626 projectile=Ds+ Ekin[MeV]=14038.1 direction=(0.439767,0.539303,0.718162) material=G4_C - --> #secondaries=14 impactParameter[fm]=2.06085 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 627 projectile=D+ Ekin[MeV]=3702.53 direction=(0.0708893,0.862861,0.500445) material=G4_Pb - --> #secondaries=46 impactParameter[fm]=4.10424 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=200 #NNcollisions=1 - Collision 628 projectile=kaon+ Ekin[MeV]=20618.7 direction=(0.840154,0.540393,0.046001) material=G4_C - --> #secondaries=14 impactParameter[fm]=1.36739 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 629 projectile=kaon- Ekin[MeV]=13502.2 direction=(0.366269,0.644969,0.670718) material=G4_Ar - --> #secondaries=13 impactParameter[fm]=2.44955 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 630 projectile=anti_xi- Ekin[MeV]=24618.4 direction=(0.787903,0.353891,0.503955) material=G4_W - --> #secondaries=53 impactParameter[fm]=7.19652 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=184 #NNcollisions=2 - Collision 631 projectile=anti_sigma+ Ekin[MeV]=29483.6 direction=(0.681134,0.446763,0.580052) material=G4_W - --> #secondaries=47 impactParameter[fm]=5.9336 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=3 - Collision 632 projectile=anti_proton Ekin[MeV]=22714 direction=(0.675228,0.52121,0.521927) material=G4_He - --> #secondaries=16 impactParameter[fm]=0.74144 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 633 projectile=anti_xi_b0 Ekin[MeV]=24063.1 direction=(0.293229,0.0408615,0.955169) material=G4_Be - --> #secondaries=8 impactParameter[fm]=2.24678 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 634 projectile=anti_xi0 Ekin[MeV]=27818.3 direction=(0.628836,0.459516,0.627224) material=G4_Pb - --> #secondaries=112 impactParameter[fm]=2.67871 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=197 #NNcollisions=8 - Collision 635 projectile=B0 Ekin[MeV]=26417.7 direction=(0.771236,0.347405,0.533389) material=G4_Al - --> #secondaries=13 impactParameter[fm]=2.79764 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 636 projectile=kaon+ Ekin[MeV]=4163.53 direction=(0.672856,0.0222137,0.73944) material=G4_Cu - --> #secondaries=26 impactParameter[fm]=2.94439 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=1 - Collision 637 projectile=lambda_b Ekin[MeV]=9299.92 direction=(0.67933,0.721879,0.131915) material=G4_C - --> #secondaries=8 impactParameter[fm]=1.8661 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 - Collision 638 projectile=kaon- Ekin[MeV]=4389.41 direction=(0.550628,0.718697,0.424598) material=G4_He - --> #secondaries=9 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 639 projectile=anti_Bs0 Ekin[MeV]=8807.55 direction=(0.354829,0.279915,0.892045) material=G4_Pb - --> #secondaries=24 impactParameter[fm]=4.46436 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=1 - Collision 640 projectile=anti_B0 Ekin[MeV]=27541 direction=(0.68175,0.653021,0.329819) material=G4_Fe - --> #secondaries=21 impactParameter[fm]=3.89064 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 641 projectile=triton Ekin[MeV]=27868.5 direction=(0.518488,0.490067,0.700717) material=G4_Cu - --> #secondaries=56 impactParameter[fm]=1.95854 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=57 #NNcollisions=12 - Collision 642 projectile=anti_xi_b0 Ekin[MeV]=20511.1 direction=(0.520411,0.852788,0.0438657) material=G4_Si - --> #secondaries=24 impactParameter[fm]=2.755 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=3 - Collision 643 projectile=Ds+ Ekin[MeV]=12355 direction=(0.559266,0.765033,0.319291) material=G4_Pb - --> #secondaries=73 impactParameter[fm]=3.95125 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=3 - Collision 644 projectile=alpha Ekin[MeV]=7264.64 direction=(0.535213,0.82444,0.183974) material=G4_Pb - --> #secondaries=42 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 645 projectile=proton Ekin[MeV]=10854.3 direction=(0.398944,0.567168,0.720531) material=G4_He - --> #secondaries=8 impactParameter[fm]=2.88648 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 646 projectile=proton Ekin[MeV]=6043.26 direction=(0.966534,0.0168595,0.255984) material=G4_Cu - --> #secondaries=31 impactParameter[fm]=2.62401 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=2 - Collision 647 projectile=deuteron Ekin[MeV]=19674.4 direction=(0.303021,0.548696,0.779174) material=G4_Fe - --> #secondaries=62 impactParameter[fm]=1.77044 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=48 #NNcollisions=7 - Collision 648 projectile=triton Ekin[MeV]=6968.76 direction=(0.61656,0.572736,0.540211) material=G4_Fe - --> #secondaries=11 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 649 projectile=anti_sigma- Ekin[MeV]=17170.1 direction=(0.385242,0.109127,0.91634) material=G4_Fe - --> #secondaries=27 impactParameter[fm]=4.24492 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 650 projectile=xi_b0 Ekin[MeV]=14454 direction=(0.315289,0.927234,0.202066) material=G4_Ar - --> #secondaries=15 impactParameter[fm]=2.11998 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 651 projectile=anti_Bs0 Ekin[MeV]=22644.9 direction=(0.752195,0.366078,0.547895) material=G4_Al - --> #secondaries=5 impactParameter[fm]=1.9078 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 652 projectile=kaon0L Ekin[MeV]=7160.98 direction=(0.970504,0.215728,0.107632) material=G4_Cu - --> #secondaries=41 impactParameter[fm]=0.694982 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=3 - Collision 653 projectile=anti_deuteron Ekin[MeV]=28913.5 direction=(0.708119,0.668359,0.227738) material=G4_Pb - --> #secondaries=96 impactParameter[fm]=3.72723 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=203 #NNcollisions=5 - Collision 654 projectile=anti_neutron Ekin[MeV]=4337.2 direction=(0.569616,0.506895,0.64699) material=G4_W - --> #secondaries=36 impactParameter[fm]=6.79523 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=182 #NNcollisions=2 - Collision 655 projectile=kaon+ Ekin[MeV]=23440.7 direction=(0.256222,0.887853,0.382187) material=G4_Ar - --> #secondaries=23 impactParameter[fm]=2.31699 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 656 projectile=B- Ekin[MeV]=13777.8 direction=(0.794257,0.325997,0.51272) material=G4_Cu - --> #secondaries=13 impactParameter[fm]=2.22137 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=1 - Collision 657 projectile=lambda_c+ Ekin[MeV]=8304.27 direction=(0.651445,0.705122,0.28004) material=G4_H - --> #secondaries=4 impactParameter[fm]=0.854963 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 658 projectile=B0 Ekin[MeV]=17592.7 direction=(0.456284,0.424038,0.782302) material=G4_He - --> #secondaries=4 impactParameter[fm]=1.60088 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 659 projectile=Ds- Ekin[MeV]=27609.1 direction=(0.578876,0.639471,0.505944) material=G4_Pb - --> #secondaries=71 impactParameter[fm]=1.92496 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=1 - Collision 660 projectile=anti_lambda_b Ekin[MeV]=19484.7 direction=(0.774745,0.583544,0.243406) material=G4_C - --> #secondaries=8 impactParameter[fm]=2.64807 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 661 projectile=omega_b- Ekin[MeV]=16374.9 direction=(0.487484,0.0382136,0.872295) material=G4_H - --> #secondaries=2 impactParameter[fm]=1.26795 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 662 projectile=anti_xi_c+ Ekin[MeV]=27261.4 direction=(0.89763,0.318074,0.305105) material=G4_Fe - --> #secondaries=23 impactParameter[fm]=3.23966 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=1 - Collision 663 projectile=omega- Ekin[MeV]=26439.9 direction=(0.891153,0.29871,0.341496) material=G4_He - --> #secondaries=5 impactParameter[fm]=2.59681 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 664 projectile=lambda Ekin[MeV]=24117.7 direction=(0.625593,0.619436,0.474271) material=G4_Al - --> #secondaries=18 impactParameter[fm]=2.87409 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=0 - Collision 665 projectile=pi+ Ekin[MeV]=4997.7 direction=(0.402958,0.283808,0.870102) material=G4_Al - --> #secondaries=20 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 666 projectile=kaon0S Ekin[MeV]=16482.7 direction=(0.989504,0.0612113,0.130901) material=G4_Ar - --> #secondaries=19 impactParameter[fm]=3.22633 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 667 projectile=Ds+ Ekin[MeV]=19727.1 direction=(0.599469,0.471877,0.646505) material=G4_Pb - --> #secondaries=56 impactParameter[fm]=5.27438 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=2 - Collision 668 projectile=alpha Ekin[MeV]=24283 direction=(0.696115,0.615403,0.369733) material=G4_H - --> #secondaries=9 impactParameter[fm]=1.5346 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=0 #NNcollisions=2 - Collision 669 projectile=sigma+ Ekin[MeV]=20343.9 direction=(0.617187,0.413332,0.669505) material=G4_He - --> #secondaries=4 impactParameter[fm]=1.9067 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 670 projectile=xi_b0 Ekin[MeV]=5454.04 direction=(0.660258,0.302076,0.687612) material=G4_Cu - --> #secondaries=22 impactParameter[fm]=3.40127 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=58 #NNcollisions=2 - Collision 671 projectile=anti_omega- Ekin[MeV]=18986.4 direction=(0.813708,0.442764,0.376615) material=G4_Al - --> #secondaries=30 impactParameter[fm]=1.69243 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=2 - Collision 672 projectile=D0 Ekin[MeV]=23099.9 direction=(0.00461091,0.604425,0.796648) material=G4_Si - --> #secondaries=18 impactParameter[fm]=3.6116 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=2 - Collision 673 projectile=anti_xi_b0 Ekin[MeV]=12061.1 direction=(0.0729063,0.804734,0.589142) material=G4_Al - --> #secondaries=17 impactParameter[fm]=3.43364 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 674 projectile=omega_b- Ekin[MeV]=21144.4 direction=(0.640665,0.305585,0.704391) material=G4_Si - --> #secondaries=13 impactParameter[fm]=3.35572 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=2 - Collision 675 projectile=anti_xi_b- Ekin[MeV]=19860.1 direction=(0.0376451,0.942446,0.332232) material=G4_Cu - --> #secondaries=13 impactParameter[fm]=4.38541 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 676 projectile=omega_b- Ekin[MeV]=24340.5 direction=(0.804221,0.0196274,0.594006) material=G4_Al - --> #secondaries=22 impactParameter[fm]=3.4623 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 677 projectile=anti_lambda_b Ekin[MeV]=26258.7 direction=(0.95581,0.000753631,0.293985) material=G4_Ar - --> #secondaries=13 impactParameter[fm]=2.92903 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 678 projectile=pi+ Ekin[MeV]=2411.73 direction=(0.605859,0.67457,0.42177) material=G4_He - --> #secondaries=7 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 679 projectile=anti_lambda_c+ Ekin[MeV]=25248.6 direction=(0.796919,0.446786,0.406575) material=G4_Cu - --> #secondaries=45 impactParameter[fm]=1.85173 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=63 #NNcollisions=2 - Collision 680 projectile=deuteron Ekin[MeV]=20027.5 direction=(0.672341,0.231347,0.703161) material=G4_Si - --> #secondaries=40 impactParameter[fm]=1.0854 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=23 #NNcollisions=6 - Collision 681 projectile=xi_b- Ekin[MeV]=28940.7 direction=(0.496545,0.0354852,0.867285) material=G4_Si - --> #secondaries=27 impactParameter[fm]=2.98864 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=3 - Collision 682 projectile=B- Ekin[MeV]=15616.9 direction=(0.576829,0.816864,0.000455639) material=G4_Si - --> #secondaries=19 impactParameter[fm]=4.04121 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 683 projectile=Ds- Ekin[MeV]=2876.39 direction=(0.156333,0.328397,0.931512) material=G4_Si - --> #secondaries=6 impactParameter[fm]=5.13628 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 684 projectile=anti_xi- Ekin[MeV]=21157.7 direction=(0.136395,0.850881,0.507344) material=G4_Ar - --> #secondaries=39 impactParameter[fm]=2.78438 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=37 #NNcollisions=2 - Collision 685 projectile=anti_xi_c0 Ekin[MeV]=28390.6 direction=(0.584721,0.246922,0.772742) material=G4_Pb - --> #secondaries=54 impactParameter[fm]=5.97499 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=205 #NNcollisions=2 - Collision 686 projectile=anti_xi_c+ Ekin[MeV]=27755.9 direction=(0.19413,0.648817,0.735765) material=G4_Fe - --> #secondaries=23 impactParameter[fm]=3.19657 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 687 projectile=omega_c0 Ekin[MeV]=29167.6 direction=(0.51449,0.397015,0.760052) material=G4_Al - --> #secondaries=9 impactParameter[fm]=2.91609 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 688 projectile=lambda_c+ Ekin[MeV]=26340.9 direction=(0.414586,0.431131,0.801401) material=G4_H - --> #secondaries=6 impactParameter[fm]=0.972382 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 689 projectile=proton Ekin[MeV]=2817.35 direction=(0.326846,0.633464,0.701352) material=G4_Fe - --> #secondaries=17 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 690 projectile=anti_He3 Ekin[MeV]=27078 direction=(0.612535,0.561713,0.556129) material=G4_W - --> #secondaries=52 impactParameter[fm]=5.44296 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=180 #NNcollisions=5 - Collision 691 projectile=anti_xi0 Ekin[MeV]=9165.99 direction=(0.618519,0.612168,0.49263) material=G4_Al - --> #secondaries=27 impactParameter[fm]=1.90253 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=1 - Collision 692 projectile=anti_sigma+ Ekin[MeV]=29361.4 direction=(0.965357,0.0280347,0.259422) material=G4_C - --> #secondaries=11 impactParameter[fm]=0.308171 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 693 projectile=deuteron Ekin[MeV]=18159.4 direction=(0.681911,0.427117,0.593775) material=G4_C - --> #secondaries=18 impactParameter[fm]=0.840556 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=2 - Collision 694 projectile=anti_sigma+ Ekin[MeV]=21734.9 direction=(0.763055,0.64602,0.0201519) material=G4_C - --> #secondaries=17 impactParameter[fm]=1.70588 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=2 - Collision 695 projectile=anti_He3 Ekin[MeV]=19292.7 direction=(0.58996,0.329912,0.736957) material=G4_He - --> #secondaries=10 impactParameter[fm]=3.45362 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=4 #NNcollisions=1 - Collision 696 projectile=omega_c0 Ekin[MeV]=5879.46 direction=(0.69195,0.65573,0.302032) material=G4_W - --> #secondaries=19 impactParameter[fm]=4.24311 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=182 #NNcollisions=0 - Collision 697 projectile=anti_Bs0 Ekin[MeV]=24063.7 direction=(0.275407,0.829262,0.486288) material=G4_W - --> #secondaries=33 impactParameter[fm]=1.50049 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=182 #NNcollisions=1 - Collision 698 projectile=He3 Ekin[MeV]=16966.3 direction=(0.745585,0.657921,0.106034) material=G4_Al - --> #secondaries=34 impactParameter[fm]=2.32299 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=21 #NNcollisions=4 - Collision 699 projectile=anti_lambda Ekin[MeV]=22273 direction=(0.445528,0.362597,0.818553) material=G4_W - --> #secondaries=26 impactParameter[fm]=7.7617 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=182 #NNcollisions=0 - Collision 700 projectile=anti_He3 Ekin[MeV]=1965.38 direction=(0.667397,0.570478,0.478682) material=G4_W - --> #secondaries=19 impactParameter[fm]=8.72971 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=183 #NNcollisions=1 - List of produced secondaries: - j=0 pi0 p=(-167.503,-10.3657,-35.5673218.285) MeV - j=1 pi+ p=(190.507,230.757,73.1617338.192) MeV - j=2 pi- p=(30.8349,-340.468,-322.645490.356) MeV - j=3 proton p=(204.53,-95.1959,-171.341980.106) MeV - j=4 pi- p=(210.022,163.315,180.247350.357) MeV - j=5 pi0 p=(537.028,705.117,578.021066.73) MeV - j=6 Er164[91.380] p=(-243.912,-446.862,737.114152667) MeV - j=7 proton p=(-5.20488,85.0574,-79.3809945.472) MeV - j=8 neutron p=(-1.13412,58.0154,48.7499942.617) MeV - j=9 neutron p=(-50.1578,42.3067,48.0653943.08) MeV - j=10 neutron p=(25.5509,9.49906,29.2953940.417) MeV - j=11 neutron p=(-15.707,-27.1359,-68.0433942.548) MeV - j=12 neutron p=(34.4079,10.6339,42.8152941.23) MeV - j=13 neutron p=(-19.5718,-31.7279,28.5621940.738) MeV - j=14 neutron p=(38.589,6.2144,11.0278940.443) MeV - j=15 gamma p=(-0.617548,2.07487,-0.8610962.3298) MeV - j=16 Be10 p=(154.443,486.126,-374.4739346.95) MeV - j=17 anti_proton p=(870.517,468.273,467.7141440.9) MeV - j=18 anti_neutron p=(783.713,886.569,655.3871646.97) MeV - Collision 701 projectile=omega_b- Ekin[MeV]=16507.2 direction=(0.741401,0.230933,0.630075) material=G4_Al - --> #secondaries=6 impactParameter[fm]=3.74217 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 702 projectile=neutron Ekin[MeV]=3346.68 direction=(0.321678,0.781819,0.534118) material=G4_Al - --> #secondaries=12 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 703 projectile=anti_He3 Ekin[MeV]=16620.4 direction=(0.103452,0.829175,0.549332) material=G4_W - --> #secondaries=116 impactParameter[fm]=1.71328 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=185 #NNcollisions=4 - Collision 704 projectile=kaon0L Ekin[MeV]=16217.6 direction=(0.832652,0.0957642,0.545454) material=G4_Be - --> #secondaries=4 impactParameter[fm]=2.8025 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=0 - Collision 705 projectile=B+ Ekin[MeV]=29349.4 direction=(0.0884587,0.690949,0.717471) material=G4_Al - --> #secondaries=10 impactParameter[fm]=2.90814 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 706 projectile=Ds+ Ekin[MeV]=8539 direction=(0.171848,0.396692,0.901723) material=G4_W - --> #secondaries=36 impactParameter[fm]=4.95238 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=180 #NNcollisions=1 - Collision 707 projectile=lambda_c+ Ekin[MeV]=6090.93 direction=(0.0622186,0.985257,0.159365) material=G4_Fe - --> #secondaries=15 impactParameter[fm]=6.54892 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=0 - Collision 708 projectile=anti_omega_c0 Ekin[MeV]=22056.7 direction=(0.202389,0.504056,0.839622) material=G4_Pb - --> #secondaries=79 impactParameter[fm]=1.75598 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=200 #NNcollisions=4 - Collision 709 projectile=B+ Ekin[MeV]=15314.7 direction=(0.55748,0.77854,0.288256) material=G4_Be - --> #secondaries=8 impactParameter[fm]=1.60925 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 710 projectile=anti_xi0 Ekin[MeV]=15045.7 direction=(0.598561,0.785691,0.156253) material=G4_Al - --> #secondaries=26 impactParameter[fm]=1.83547 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 711 projectile=anti_Bs0 Ekin[MeV]=1871.98 direction=(0.120188,0.76852,0.628436) material=G4_Al - --> #secondaries=9 impactParameter[fm]=2.96836 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 712 projectile=B+ Ekin[MeV]=17026.1 direction=(0.611419,0.162738,0.774392) material=G4_Be - --> #secondaries=9 impactParameter[fm]=3.70801 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 713 projectile=anti_omega- Ekin[MeV]=12793.2 direction=(0.518179,0.854804,0.0283055) material=G4_Pb - --> #secondaries=68 impactParameter[fm]=5.24603 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=203 #NNcollisions=3 - Collision 714 projectile=xi_c+ Ekin[MeV]=28545.8 direction=(0.870387,0.48295,0.0958406) material=G4_H - --> #secondaries=8 impactParameter[fm]=1.4524 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 715 projectile=anti_omega_c0 Ekin[MeV]=7570 direction=(0.622148,0.722399,0.301781) material=G4_Cu - --> #secondaries=24 impactParameter[fm]=5.61538 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=2 - Collision 716 projectile=kaon+ Ekin[MeV]=7091.94 direction=(0.0346148,0.807216,0.58924) material=G4_H - --> #secondaries=3 impactParameter[fm]=1.1139 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 717 projectile=anti_xi0 Ekin[MeV]=11938.4 direction=(0.457306,0.8886,0.0355084) material=G4_Si - --> #secondaries=25 impactParameter[fm]=2.36476 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=3 - Collision 718 projectile=lambda_c+ Ekin[MeV]=16566.8 direction=(0.671977,0.288613,0.682018) material=G4_Al - --> #secondaries=20 impactParameter[fm]=1.07105 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=0 - Collision 719 projectile=sigma+ Ekin[MeV]=4231.57 direction=(0.946902,0.285703,0.147478) material=G4_Pb - --> #secondaries=11 impactParameter[fm]=5.99527 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=0 - Collision 720 projectile=Ds- Ekin[MeV]=25038.3 direction=(0.794592,0.328101,0.510855) material=G4_H - --> #secondaries=6 impactParameter[fm]=0.854664 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 721 projectile=xi_c+ Ekin[MeV]=28190 direction=(0.847187,0.365169,0.385908) material=G4_Pb - --> #secondaries=100 impactParameter[fm]=4.64464 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=201 #NNcollisions=5 - Collision 722 projectile=lambda_c+ Ekin[MeV]=5162.98 direction=(0.288495,0.744808,0.601691) material=G4_W - --> #secondaries=8 impactParameter[fm]=8.35447 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=182 #NNcollisions=1 - Collision 723 projectile=pi+ Ekin[MeV]=13600.5 direction=(0.39813,0.682275,0.613183) material=G4_Be - --> #secondaries=11 impactParameter[fm]=2.70069 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 724 projectile=kaon0S Ekin[MeV]=11356.9 direction=(0.286407,0.661212,0.693375) material=G4_C - --> #secondaries=11 impactParameter[fm]=2.4852 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 725 projectile=anti_xi_b0 Ekin[MeV]=29451.9 direction=(0.436542,0.134106,0.889633) material=G4_Si - --> #secondaries=11 impactParameter[fm]=4.68192 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 726 projectile=omega_c0 Ekin[MeV]=21921.7 direction=(0.972613,0.231921,0.0153837) material=G4_Be - --> #secondaries=9 impactParameter[fm]=0.623978 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 727 projectile=xi_c0 Ekin[MeV]=22252.2 direction=(0.620215,0.232575,0.749161) material=G4_H - --> #secondaries=5 impactParameter[fm]=0.60016 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 728 projectile=alpha Ekin[MeV]=23577 direction=(0.670409,0.583154,0.458785) material=G4_Be - --> #secondaries=10 impactParameter[fm]=2.76965 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=8 #NNcollisions=0 - Collision 729 projectile=D0 Ekin[MeV]=7092.42 direction=(0.80534,0.561894,0.188951) material=G4_C - --> #secondaries=5 impactParameter[fm]=3.06724 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 730 projectile=xi_c0 Ekin[MeV]=19946.7 direction=(0.430689,0.574232,0.69625) material=G4_Pb - --> #secondaries=15 impactParameter[fm]=8.44891 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=1 - Collision 731 projectile=anti_proton Ekin[MeV]=12009.2 direction=(0.863382,0.391537,0.318229) material=G4_H - --> #secondaries=8 impactParameter[fm]=0.89053 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 732 projectile=anti_sigma- Ekin[MeV]=22095.1 direction=(0.462669,0.603785,0.649139) material=G4_Al - --> #secondaries=26 impactParameter[fm]=3.50705 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 733 projectile=kaon+ Ekin[MeV]=22209.4 direction=(0.385281,0.769301,0.509642) material=G4_Pb - --> #secondaries=95 impactParameter[fm]=3.29701 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=203 #NNcollisions=4 - Collision 734 projectile=anti_Bs0 Ekin[MeV]=19794.9 direction=(0.327033,0.587039,0.740564) material=G4_H - --> #secondaries=2 impactParameter[fm]=1.01568 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 735 projectile=kaon0L Ekin[MeV]=25681.4 direction=(0.589165,0.724437,0.357875) material=G4_Al - --> #secondaries=10 impactParameter[fm]=2.15224 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 736 projectile=xi_b0 Ekin[MeV]=5946.96 direction=(0.998523,0.0263703,0.0474978) material=G4_H - --> #secondaries=3 impactParameter[fm]=0.68899 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 737 projectile=anti_B0 Ekin[MeV]=7851.38 direction=(0.826171,0.338386,0.450484) material=G4_Cu - --> #secondaries=17 impactParameter[fm]=2.56973 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=2 - Collision 738 projectile=B0 Ekin[MeV]=25958.3 direction=(0.532191,0.757615,0.377879) material=G4_He - --> #secondaries=6 impactParameter[fm]=2.91486 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 739 projectile=xi_b- Ekin[MeV]=12370.4 direction=(0.793251,0.172217,0.584033) material=G4_Pb - --> #secondaries=34 impactParameter[fm]=3.36236 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=202 #NNcollisions=2 - Collision 740 projectile=lambda_b Ekin[MeV]=17408.1 direction=(0.119194,0.467689,0.875819) material=G4_Be - --> #secondaries=11 impactParameter[fm]=1.6234 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=7 #NNcollisions=2 - Collision 741 projectile=D+ Ekin[MeV]=28754.5 direction=(0.187937,0.860528,0.473467) material=G4_Ar - --> #secondaries=7 impactParameter[fm]=2.1166 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 742 projectile=anti_sigma- Ekin[MeV]=29726 direction=(0.597657,0.479091,0.642867) material=G4_Al - --> #secondaries=28 impactParameter[fm]=2.02519 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 743 projectile=anti_omega_b- Ekin[MeV]=16332.4 direction=(0.12104,0.59768,0.792545) material=G4_C - --> #secondaries=13 impactParameter[fm]=0.923974 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=2 - Collision 744 projectile=anti_xi_b- Ekin[MeV]=25810.4 direction=(0.506255,0.214816,0.835201) material=G4_He - --> #secondaries=4 impactParameter[fm]=1.71416 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 745 projectile=Ds- Ekin[MeV]=11619.3 direction=(0.290882,0.941297,0.171311) material=G4_Si - --> #secondaries=17 impactParameter[fm]=2.78741 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=2 - Collision 746 projectile=anti_xi_b0 Ekin[MeV]=7654.5 direction=(0.476137,0.720451,0.504225) material=G4_C - --> #secondaries=9 impactParameter[fm]=2.18411 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 747 projectile=anti_lambda_b Ekin[MeV]=11821.4 direction=(0.756686,0.550022,0.353416) material=G4_He - --> #secondaries=4 impactParameter[fm]=0.679195 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=0 - Collision 748 projectile=kaon0L Ekin[MeV]=22677.7 direction=(0.794968,0.531888,0.291755) material=G4_Be - --> #secondaries=11 impactParameter[fm]=2.83894 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 749 projectile=anti_sigma- Ekin[MeV]=6787.65 direction=(0.0980404,0.396485,0.912791) material=G4_He - --> #secondaries=4 impactParameter[fm]=3.04317 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 750 projectile=anti_omega_c0 Ekin[MeV]=2692.23 direction=(0.969373,0.156836,0.188992) material=G4_Cu - --> #secondaries=20 impactParameter[fm]=3.08336 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=1 - Collision 751 projectile=B- Ekin[MeV]=4662.68 direction=(0.707433,0.421659,0.567223) material=G4_Ar - --> #secondaries=4 impactParameter[fm]=4.30513 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 752 projectile=B- Ekin[MeV]=28775.7 direction=(0.469862,0.0486069,0.881401) material=G4_He - --> #secondaries=9 impactParameter[fm]=2.1042 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 753 projectile=neutron Ekin[MeV]=2972.16 direction=(0.808607,0.0810038,0.582746) material=G4_Pb - --> #secondaries=12 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 754 projectile=anti_omega_c0 Ekin[MeV]=26772.5 direction=(0.434889,0.0975479,0.895185) material=G4_Pb - --> #secondaries=68 impactParameter[fm]=3.72982 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=202 #NNcollisions=4 - Collision 755 projectile=anti_B0 Ekin[MeV]=20805.1 direction=(0.717859,0.540007,0.439398) material=G4_C - --> #secondaries=8 impactParameter[fm]=1.95306 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 756 projectile=sigma+ Ekin[MeV]=28856.2 direction=(0.492994,0.627002,0.603179) material=G4_He - --> #secondaries=10 impactParameter[fm]=1.9799 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 757 projectile=anti_omega- Ekin[MeV]=5929.7 direction=(0.118771,0.0101512,0.99287) material=G4_Be - --> #secondaries=7 impactParameter[fm]=0.628302 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 758 projectile=anti_lambda_c+ Ekin[MeV]=6344.2 direction=(0.398538,0.419058,0.815817) material=G4_Be - --> #secondaries=9 impactParameter[fm]=2.33267 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=7 #NNcollisions=2 - Collision 759 projectile=Bs0 Ekin[MeV]=9552.32 direction=(0.156362,0.667984,0.727564) material=G4_Si - --> #secondaries=10 impactParameter[fm]=1.27524 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 760 projectile=anti_xi_b- Ekin[MeV]=10000.8 direction=(0.903423,0.218512,0.36889) material=G4_He - --> #secondaries=4 impactParameter[fm]=1.75831 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 761 projectile=D0 Ekin[MeV]=24243.6 direction=(0.428166,0.684411,0.590131) material=G4_Pb - --> #secondaries=79 impactParameter[fm]=3.07066 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=202 #NNcollisions=4 - Collision 762 projectile=sigma- Ekin[MeV]=5805.3 direction=(0.756229,0.429273,0.493803) material=G4_He - --> #secondaries=6 impactParameter[fm]=0.894333 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=2 - Collision 763 projectile=Bc+ Ekin[MeV]=2380.72 direction=(0.0842752,0.86462,0.495308) material=G4_H - --> #secondaries=2 impactParameter[fm]=1.35316 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=0 - Collision 764 projectile=anti_xi_c+ Ekin[MeV]=10854.7 direction=(0.821451,0.553916,0.13563) material=G4_H - --> #secondaries=5 impactParameter[fm]=1.33817 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 765 projectile=Bc+ Ekin[MeV]=28842.9 direction=(0.0408626,0.751154,0.658861) material=G4_He - --> #secondaries=10 impactParameter[fm]=1.3458 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=2 #NNcollisions=2 - Collision 766 projectile=anti_B0 Ekin[MeV]=14630.7 direction=(0.769577,0.1119,0.628672) material=G4_W - --> #secondaries=36 impactParameter[fm]=3.09564 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=180 #NNcollisions=1 - Collision 767 projectile=omega- Ekin[MeV]=11885.6 direction=(0.589087,0.712994,0.380285) material=G4_Cu - --> #secondaries=30 impactParameter[fm]=3.79173 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=60 #NNcollisions=3 - Collision 768 projectile=anti_B0 Ekin[MeV]=25929.9 direction=(0.335361,0.737391,0.586334) material=G4_W - --> #secondaries=42 impactParameter[fm]=3.77462 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=180 #NNcollisions=2 - Collision 769 projectile=deuteron Ekin[MeV]=4711.52 direction=(0.814799,0.0159497,0.579524) material=G4_H + Collision 273 projectile=anti_sigma+ Ekin[MeV]=13928.2 direction=(0.310138,0.488782,0.815418) material=G4_Be + --> #secondaries=13 impactParameter[fm]=0.986405 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=6 #NNcollisions=2 + Collision 274 projectile=doublehyperdoubleneutron Ekin[MeV]=12681.8 direction=(0.349648,0.928967,0.121516) material=G4_Ar + --> #secondaries=38 impactParameter[fm]=2.74763 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=32 #NNcollisions=4 + Collision 275 projectile=lambda_c+ Ekin[MeV]=17768.7 direction=(0.104199,0.715391,0.690911) material=G4_H + --> #secondaries=3 impactParameter[fm]=0.501072 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 276 projectile=lambda_c+ Ekin[MeV]=4373.5 direction=(0.809058,0.368401,0.457937) material=G4_He + --> #secondaries=7 impactParameter[fm]=1.70092 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 277 projectile=anti_He3 Ekin[MeV]=20350.1 direction=(0.52313,0.834075,0.175081) material=G4_Si + --> #secondaries=19 impactParameter[fm]=4.90788 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 278 projectile=anti_sigma+ Ekin[MeV]=19305.8 direction=(0.941041,0.335891,0.0402467) material=G4_H + --> #secondaries=4 impactParameter[fm]=0.238936 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 279 projectile=anti_Bs0 Ekin[MeV]=9691.86 direction=(0.434357,0.445094,0.783087) material=G4_H + --> #secondaries=4 impactParameter[fm]=0.0784408 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 280 projectile=anti_hyperalpha Ekin[MeV]=19619 direction=(0.143607,0.70607,0.693428) material=G4_Al + --> #secondaries=31 impactParameter[fm]=1.18766 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=22 #NNcollisions=6 + Collision 281 projectile=triton Ekin[MeV]=10211.3 direction=(0.906325,0.221796,0.359696) material=G4_H --> #secondaries=4 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 770 projectile=alpha Ekin[MeV]=23819.3 direction=(0.208632,0.600174,0.772181) material=G4_C - --> #secondaries=11 impactParameter[fm]=3.81962 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=10 #NNcollisions=1 - Collision 771 projectile=anti_D0 Ekin[MeV]=24527.2 direction=(0.933493,0.265981,0.240508) material=G4_Be - --> #secondaries=8 impactParameter[fm]=0.927265 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 772 projectile=B+ Ekin[MeV]=24792.2 direction=(0.311503,0.796368,0.518425) material=G4_Fe - --> #secondaries=14 impactParameter[fm]=2.98312 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=54 #NNcollisions=0 - Collision 773 projectile=anti_triton Ekin[MeV]=10474.8 direction=(0.95118,0.289261,0.107635) material=G4_W - --> #secondaries=51 impactParameter[fm]=7.83027 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=184 #NNcollisions=2 - Collision 774 projectile=deuteron Ekin[MeV]=18234.8 direction=(0.0693917,0.699327,0.711425) material=G4_Fe - --> #secondaries=34 impactParameter[fm]=4.25904 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=3 - Collision 775 projectile=omega- Ekin[MeV]=29410.9 direction=(0.304762,0.523979,0.79534) material=G4_C - --> #secondaries=11 impactParameter[fm]=3.0357 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 776 projectile=anti_proton Ekin[MeV]=20656.9 direction=(0.683319,0.28837,0.67076) material=G4_Fe - --> #secondaries=30 impactParameter[fm]=3.84749 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=2 - Collision 777 projectile=kaon0L Ekin[MeV]=24451.9 direction=(0.0404395,0.973609,0.22461) material=G4_Cu - --> #secondaries=38 impactParameter[fm]=1.44703 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=60 #NNcollisions=3 - Collision 778 projectile=pi- Ekin[MeV]=6644.46 direction=(0.0944075,0.989025,0.11365) material=G4_Al - --> #secondaries=14 impactParameter[fm]=3.3262 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 779 projectile=D0 Ekin[MeV]=6159.39 direction=(0.113424,0.0725694,0.990893) material=G4_Pb - --> #secondaries=29 impactParameter[fm]=5.47681 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=2 - Collision 780 projectile=neutron Ekin[MeV]=26681.2 direction=(0.735546,0.669334,0.104708) material=G4_C - --> #secondaries=18 impactParameter[fm]=1.81343 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=2 - Collision 781 projectile=triton Ekin[MeV]=11120.1 direction=(0.314555,0.244036,0.917334) material=G4_Si - --> #secondaries=26 impactParameter[fm]=4.92104 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 782 projectile=D- Ekin[MeV]=12168.2 direction=(0.743465,0.66561,0.0649872) material=G4_Cu - --> #secondaries=10 impactParameter[fm]=3.61808 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 783 projectile=lambda Ekin[MeV]=19227.2 direction=(0.244653,0.553546,0.796073) material=G4_W - --> #secondaries=55 impactParameter[fm]=3.44799 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=178 #NNcollisions=4 - Collision 784 projectile=anti_lambda_c+ Ekin[MeV]=16247.3 direction=(0.665586,0.518599,0.536703) material=G4_Pb - --> #secondaries=15 impactParameter[fm]=7.59343 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=1 - Collision 785 projectile=D0 Ekin[MeV]=19684.8 direction=(0.48269,0.554905,0.677562) material=G4_Si - --> #secondaries=7 impactParameter[fm]=3.76179 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=0 - Collision 786 projectile=kaon0L Ekin[MeV]=24964.9 direction=(0.044036,0.994527,0.0947463) material=G4_Pb - --> #secondaries=80 impactParameter[fm]=2.67307 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=203 #NNcollisions=3 - Collision 787 projectile=pi+ Ekin[MeV]=22358.5 direction=(0.467636,0.617526,0.632438) material=G4_Pb - --> #secondaries=53 impactParameter[fm]=5.22221 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=2 - Collision 788 projectile=kaon0L Ekin[MeV]=11983.7 direction=(0.896327,0.00236126,0.443387) material=G4_Al - --> #secondaries=12 impactParameter[fm]=3.98028 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 789 projectile=pi- Ekin[MeV]=19877.6 direction=(0.418305,0.711338,0.564818) material=G4_Be - --> #secondaries=11 impactParameter[fm]=1.70077 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=7 #NNcollisions=2 - Collision 790 projectile=anti_omega_c0 Ekin[MeV]=4898.51 direction=(0.628755,0.741135,0.235343) material=G4_Be - --> #secondaries=7 impactParameter[fm]=1.17954 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 791 projectile=kaon0S Ekin[MeV]=2289.39 direction=(0.890036,0.2274,0.395126) material=G4_Be - --> #secondaries=5 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 792 projectile=D- Ekin[MeV]=1241.44 direction=(0.172557,0.915214,0.364154) material=G4_Be - --> #secondaries=7 impactParameter[fm]=1.94956 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=0 - Collision 793 projectile=anti_triton Ekin[MeV]=8113.96 direction=(0.571848,0.531013,0.625312) material=G4_Pb - --> #secondaries=64 impactParameter[fm]=4.18402 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=3 - Collision 794 projectile=omega_b- Ekin[MeV]=6989.39 direction=(0.582789,0.796875,0.159212) material=G4_C - --> #secondaries=7 impactParameter[fm]=1.46285 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 795 projectile=deuteron Ekin[MeV]=27281.1 direction=(0.878655,0.0724922,0.471923) material=G4_H - --> #secondaries=9 impactParameter[fm]=1.75778 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 796 projectile=anti_deuteron Ekin[MeV]=1513.76 direction=(0.764296,0.450756,0.461162) material=G4_W - --> #secondaries=39 impactParameter[fm]=6.58543 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=2 - Collision 797 projectile=anti_xi_b0 Ekin[MeV]=1494.13 direction=(0.337859,0.180112,0.923803) material=G4_H - --> #secondaries=2 impactParameter[fm]=0.337048 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=0 - Collision 798 projectile=kaon- Ekin[MeV]=7337.18 direction=(0.697347,0.328909,0.636809) material=G4_Al - --> #secondaries=16 impactParameter[fm]=2.49433 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 799 projectile=deuteron Ekin[MeV]=13266.1 direction=(0.802661,0.461452,0.377884) material=G4_Al - --> #secondaries=22 impactParameter[fm]=2.14729 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=4 - Collision 800 projectile=anti_xi_c0 Ekin[MeV]=20140 direction=(0.670409,0.318336,0.670234) material=G4_Si - --> #secondaries=19 impactParameter[fm]=3.51073 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 282 projectile=doublehyperH4 Ekin[MeV]=4561.28 direction=(0.0992239,0.665647,0.739641) material=G4_W + --> #secondaries=55 impactParameter[fm]=4.16135 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=171 #NNcollisions=0 + Collision 283 projectile=xi- Ekin[MeV]=5300.64 direction=(0.0881855,0.863505,0.496571) material=G4_He + --> #secondaries=7 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 284 projectile=anti_xi- Ekin[MeV]=18506.3 direction=(0.819263,0.355858,0.449637) material=G4_Al + --> #secondaries=31 impactParameter[fm]=2.25899 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=23 #NNcollisions=4 + Collision 285 projectile=anti_hyperH4 Ekin[MeV]=12976.2 direction=(0.54866,0.659018,0.514459) material=G4_C + --> #secondaries=23 impactParameter[fm]=1.9472 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=5 + Collision 286 projectile=pi- Ekin[MeV]=14936.3 direction=(0.335719,0.653371,0.678527) material=G4_Be + --> #secondaries=11 impactParameter[fm]=1.84507 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 287 projectile=doublehyperdoubleneutron Ekin[MeV]=5907.06 direction=(0.453421,0.641971,0.61829) material=G4_He + --> #secondaries=7 impactParameter[fm]=1.67485 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 288 projectile=kaon+ Ekin[MeV]=26734.8 direction=(0.0996265,0.864365,0.492898) material=G4_W + --> #secondaries=29 impactParameter[fm]=6.54144 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=183 #NNcollisions=1 + Collision 289 projectile=pi- Ekin[MeV]=2301.43 direction=(0.84079,0.116156,0.528754) material=G4_Fe + --> #secondaries=10 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 290 projectile=B+ Ekin[MeV]=1216.28 direction=(0.159206,0.974539,0.15788) material=G4_Cu + --> #secondaries=18 impactParameter[fm]=3.90455 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=0 + Collision 291 projectile=Bc- Ekin[MeV]=10548.2 direction=(0.185037,0.88245,0.432485) material=G4_Si + --> #secondaries=14 impactParameter[fm]=1.52739 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 292 projectile=anti_hyperH4 Ekin[MeV]=25633.5 direction=(0.380391,0.683803,0.622668) material=G4_He + --> #secondaries=12 impactParameter[fm]=2.67766 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 293 projectile=anti_triton Ekin[MeV]=2596.76 direction=(0.125127,0.561444,0.818) material=G4_He + --> #secondaries=11 impactParameter[fm]=2.50229 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=3 #NNcollisions=2 + Collision 294 projectile=sigma- Ekin[MeV]=13625.5 direction=(0.627521,0.675034,0.388003) material=G4_W + --> #secondaries=34 impactParameter[fm]=6.47894 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=180 #NNcollisions=2 + Collision 295 projectile=doublehyperH4 Ekin[MeV]=24956.2 direction=(0.513053,0.668959,0.537839) material=G4_W + --> #secondaries=48 impactParameter[fm]=5.79154 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=178 #NNcollisions=7 + Collision 296 projectile=pi+ Ekin[MeV]=15750.4 direction=(0.497106,0.865926,0.0552985) material=G4_He + --> #secondaries=9 impactParameter[fm]=0.334586 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=2 #NNcollisions=1 + Collision 297 projectile=triton Ekin[MeV]=18911.5 direction=(0.657471,0.61726,0.432114) material=G4_Al + --> #secondaries=40 impactParameter[fm]=1.61674 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=17 #NNcollisions=8 + Collision 298 projectile=anti_omega_c0 Ekin[MeV]=27648.8 direction=(0.529293,0.577985,0.621114) material=G4_Cu + --> #secondaries=23 impactParameter[fm]=1.5462 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=64 #NNcollisions=0 + Collision 299 projectile=kaon0L Ekin[MeV]=10208.9 direction=(0.0769646,0.666497,0.741524) material=G4_He + --> #secondaries=11 impactParameter[fm]=1.00646 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 300 projectile=anti_lambda_b Ekin[MeV]=13198.9 direction=(0.6281,0.334293,0.702666) material=G4_He + --> #secondaries=3 impactParameter[fm]=0.477149 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 List of produced secondaries: - j=0 anti_sigma_c+ p=(6560.51,2467.74,7259.0510384.6) MeV - j=1 pi0 p=(895.285,175.32,563.9451080.98) MeV - j=2 pi+ p=(788.159,181.611,128.196830.718) MeV - j=3 kaon0S p=(1037.09,1240.49,671.231820.04) MeV - j=4 pi0 p=(1043.73,653.325,1430.191892.05) MeV - j=5 pi+ p=(391.928,-34.3977,513.608661.864) MeV - j=6 pi- p=(596.858,288.993,601.791906.305) MeV - j=7 pi+ p=(1055.46,408.099,508.9871248.64) MeV - j=8 proton p=(1120.74,642.66,1547.332223.43) MeV - j=9 pi0 p=(-53.0866,-169.269,104.122246.029) MeV - j=10 pi- p=(604.337,255.67,666.195945.455) MeV - j=11 pi- p=(-75.5299,132.621,154.736258.294) MeV - j=12 proton p=(1029.28,812.828,999.5721897.27) MeV - j=13 neutron p=(34.7853,128.989,0.78123949.016) MeV - j=14 O16 p=(103.35,218.286,-110.35914897.4) MeV - j=15 alpha p=(171.295,-92.002,-89.69893733.52) MeV - j=16 proton p=(-139.446,-51.9229,7.15071950.025) MeV - j=17 alpha p=(-101.468,-99.2657,108.4133731.66) MeV - j=18 gamma p=(4.58284,-4.96649,-1.283276.87861) MeV - Collision 801 projectile=kaon0L Ekin[MeV]=14790.7 direction=(0.0270003,0.689,0.724258) material=G4_Pb - --> #secondaries=57 impactParameter[fm]=3.27089 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=2 - Collision 802 projectile=xi- Ekin[MeV]=4613.29 direction=(0.737972,0.020559,0.674518) material=G4_H - --> #secondaries=3 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 803 projectile=xi_b0 Ekin[MeV]=19031.8 direction=(0.681281,0.664564,0.306938) material=G4_Al - --> #secondaries=9 impactParameter[fm]=2.23845 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=1 - Collision 804 projectile=sigma+ Ekin[MeV]=24096.7 direction=(0.95548,0.295021,0.00457003) material=G4_Cu - --> #secondaries=66 impactParameter[fm]=3.52492 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=58 #NNcollisions=7 - Collision 805 projectile=pi- Ekin[MeV]=14883.7 direction=(0.00328366,0.509404,0.860521) material=G4_Cu - --> #secondaries=14 impactParameter[fm]=4.04729 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=2 - Collision 806 projectile=anti_proton Ekin[MeV]=9035.53 direction=(0.533139,0.279301,0.798595) material=G4_Ar - --> #secondaries=30 impactParameter[fm]=0.323222 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=33 #NNcollisions=3 - Collision 807 projectile=anti_xi_c0 Ekin[MeV]=4517.96 direction=(0.488264,0.1108,0.865634) material=G4_Pb - --> #secondaries=22 impactParameter[fm]=5.50206 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=205 #NNcollisions=2 - Collision 808 projectile=anti_omega_c0 Ekin[MeV]=12086.9 direction=(0.0959026,0.908621,0.406461) material=G4_Fe - --> #secondaries=12 impactParameter[fm]=4.67758 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=0 - Collision 809 projectile=anti_lambda_b Ekin[MeV]=14928.3 direction=(0.705898,0.615302,0.350873) material=G4_Fe - --> #secondaries=13 impactParameter[fm]=1.97009 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 810 projectile=kaon+ Ekin[MeV]=11451.2 direction=(0.712936,0.622717,0.322407) material=G4_Cu - --> #secondaries=18 impactParameter[fm]=2.78793 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=63 #NNcollisions=2 - Collision 811 projectile=sigma- Ekin[MeV]=12178.8 direction=(0.42185,0.113518,0.899531) material=G4_Si - --> #secondaries=25 impactParameter[fm]=1.46311 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=3 - Collision 812 projectile=anti_He3 Ekin[MeV]=3594.5 direction=(0.585563,0.706008,0.398333) material=G4_W - --> #secondaries=42 impactParameter[fm]=6.32764 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=180 #NNcollisions=3 - Collision 813 projectile=xi0 Ekin[MeV]=21557.9 direction=(0.0200434,0.692253,0.721376) material=G4_He - --> #secondaries=7 impactParameter[fm]=2.17712 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 814 projectile=omega_b- Ekin[MeV]=18645.4 direction=(0.762908,0.284632,0.580479) material=G4_Si - --> #secondaries=16 impactParameter[fm]=1.01099 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 815 projectile=lambda Ekin[MeV]=2821.91 direction=(0.28132,0.642493,0.712784) material=G4_Pb - --> #secondaries=63 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 816 projectile=Bs0 Ekin[MeV]=10206.9 direction=(0.532152,0.11623,0.838632) material=G4_Be - --> #secondaries=7 impactParameter[fm]=1.75635 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 817 projectile=anti_triton Ekin[MeV]=16456.5 direction=(0.657997,0.744073,0.115739) material=G4_Si - --> #secondaries=13 impactParameter[fm]=4.09162 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=29 #NNcollisions=1 - Collision 818 projectile=neutron Ekin[MeV]=15141.5 direction=(0.125584,0.18917,0.97388) material=G4_Fe - --> #secondaries=25 impactParameter[fm]=3.90603 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=2 - Collision 819 projectile=pi+ Ekin[MeV]=10233.3 direction=(0.132363,0.887567,0.441254) material=G4_Be - --> #secondaries=6 impactParameter[fm]=1.31652 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=0 - Collision 820 projectile=anti_Bs0 Ekin[MeV]=3366.42 direction=(0.219114,0.865201,0.451016) material=G4_He - --> #secondaries=4 impactParameter[fm]=1.72985 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 821 projectile=anti_triton Ekin[MeV]=23654.7 direction=(0.274452,0.759363,0.589953) material=G4_Si - --> #secondaries=23 impactParameter[fm]=3.2571 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 822 projectile=pi- Ekin[MeV]=1132.03 direction=(0.713972,0.0365503,0.69922) material=G4_Al + j=0 anti_sigma_b0 p=(11221.4,5975.64,12494.718747.7) MeV + j=1 deuteron p=(-33.562,30.4287,344.9381907.61) MeV + j=2 deuteron p=(92.8015,-2.17596,-219.7581890.72) MeV + Collision 301 projectile=anti_triton Ekin[MeV]=26487.9 direction=(0.732306,0.55289,0.397544) material=G4_Si + --> #secondaries=22 impactParameter[fm]=3.56355 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=3 + Collision 302 projectile=lambda_b Ekin[MeV]=4882.41 direction=(0.697707,0.707416,0.112992) material=G4_Si + --> #secondaries=20 impactParameter[fm]=1.04961 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=1 + Collision 303 projectile=Bs0 Ekin[MeV]=8584.31 direction=(0.619249,0.0537838,0.783351) material=G4_He + --> #secondaries=5 impactParameter[fm]=3.13396 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 304 projectile=anti_deuteron Ekin[MeV]=20083.7 direction=(0.305427,0.879097,0.365928) material=G4_Al + --> #secondaries=29 impactParameter[fm]=3.49559 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 305 projectile=kaon0L Ekin[MeV]=7127.95 direction=(0.754064,0.12828,0.644152) material=G4_H + --> #secondaries=9 impactParameter[fm]=1.46735 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 306 projectile=anti_xi- Ekin[MeV]=21166.9 direction=(0.233545,0.162282,0.958708) material=G4_C + --> #secondaries=18 impactParameter[fm]=1.6547 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=1 + Collision 307 projectile=lambda_c+ Ekin[MeV]=15407.4 direction=(0.434957,0.44608,0.782192) material=G4_He + --> #secondaries=7 impactParameter[fm]=1.7486 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 308 projectile=He3 Ekin[MeV]=10369 direction=(0.546464,0.817846,0.180291) material=G4_W + --> #secondaries=30 impactParameter[fm]=7.49432 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=185 #NNcollisions=0 + Collision 309 projectile=anti_hypertriton Ekin[MeV]=1455.76 direction=(0.680569,0.133673,0.720387) material=G4_W + --> #secondaries=55 impactParameter[fm]=5.71747 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=3 + Collision 310 projectile=anti_alpha Ekin[MeV]=24613.6 direction=(0.878339,0.138664,0.457485) material=G4_He + --> #secondaries=9 impactParameter[fm]=1.57424 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=4 #NNcollisions=1 + Collision 311 projectile=alpha Ekin[MeV]=4761.2 direction=(0.450219,0.885321,0.11623) material=G4_Cu + --> #secondaries=7 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 312 projectile=xi0 Ekin[MeV]=21480.6 direction=(0.491589,0.852435,0.17803) material=G4_Cu + --> #secondaries=14 impactParameter[fm]=4.10118 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 313 projectile=Bc+ Ekin[MeV]=1752.95 direction=(0.293239,0.12336,0.948047) material=G4_He + --> #secondaries=4 impactParameter[fm]=1.22847 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 314 projectile=hyperalpha Ekin[MeV]=1266.45 direction=(0.200248,0.879471,0.431778) material=G4_Be + --> #secondaries=6 impactParameter[fm]=3.07273 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 315 projectile=xi0 Ekin[MeV]=3221.42 direction=(0.204304,0.592379,0.779324) material=G4_Be + --> #secondaries=4 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 316 projectile=anti_proton Ekin[MeV]=22173.9 direction=(0.565621,0.215925,0.795895) material=G4_Si + --> #secondaries=17 impactParameter[fm]=2.55881 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 317 projectile=anti_sigma+ Ekin[MeV]=19347 direction=(0.460232,0.712242,0.529998) material=G4_Pb + --> #secondaries=25 impactParameter[fm]=7.50242 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=2 + Collision 318 projectile=anti_hyperH4 Ekin[MeV]=5133.17 direction=(0.48301,0.176809,0.857578) material=G4_Cu + --> #secondaries=50 impactParameter[fm]=3.00658 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=58 #NNcollisions=3 + Collision 319 projectile=hyperH4 Ekin[MeV]=26193.7 direction=(0.169643,0.505659,0.84589) material=G4_Be + --> #secondaries=18 impactParameter[fm]=1.68752 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=6 #NNcollisions=3 + Collision 320 projectile=D+ Ekin[MeV]=12881 direction=(0.659877,0.394487,0.639486) material=G4_Be + --> #secondaries=7 impactParameter[fm]=1.05582 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 321 projectile=anti_lambda_b Ekin[MeV]=21214 direction=(0.575248,0.694577,0.432033) material=G4_H + --> #secondaries=5 impactParameter[fm]=1.65017 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 322 projectile=anti_Bs0 Ekin[MeV]=13083.1 direction=(0.00244427,0.999582,0.028813) material=G4_Be + --> #secondaries=7 impactParameter[fm]=2.97762 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 323 projectile=kaon+ Ekin[MeV]=10297.9 direction=(0.0330855,0.416022,0.908752) material=G4_Si + --> #secondaries=14 impactParameter[fm]=2.33076 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 324 projectile=anti_omega_b- Ekin[MeV]=28445.4 direction=(0.690771,0.277675,0.667632) material=G4_Fe + --> #secondaries=31 impactParameter[fm]=3.35779 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=2 + Collision 325 projectile=xi_c+ Ekin[MeV]=27586.9 direction=(0.608026,0.466698,0.64226) material=G4_H + --> #secondaries=5 impactParameter[fm]=0.645255 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 326 projectile=anti_lambda_b Ekin[MeV]=10048.6 direction=(0.591212,0.588232,0.551771) material=G4_Fe + --> #secondaries=25 impactParameter[fm]=3.41511 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=3 + Collision 327 projectile=deuteron Ekin[MeV]=9156.31 direction=(0.638158,0.496257,0.588628) material=G4_H + --> #secondaries=4 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 328 projectile=D0 Ekin[MeV]=9734.22 direction=(0.988766,0.11911,0.0903065) material=G4_Al + --> #secondaries=10 impactParameter[fm]=1.56051 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 329 projectile=anti_D0 Ekin[MeV]=10953.1 direction=(0.805328,0.182794,0.563944) material=G4_Pb + --> #secondaries=58 impactParameter[fm]=6.46906 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=2 + Collision 330 projectile=xi_c0 Ekin[MeV]=2113.58 direction=(0.665996,0.624029,0.408702) material=G4_Cu + --> #secondaries=14 impactParameter[fm]=3.66863 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=59 #NNcollisions=1 + Collision 331 projectile=alpha Ekin[MeV]=11973.8 direction=(0.817668,0.38416,0.428767) material=G4_Be + --> #secondaries=9 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 332 projectile=anti_proton Ekin[MeV]=22570.3 direction=(0.760139,0.406695,0.506742) material=G4_Ar + --> #secondaries=34 impactParameter[fm]=1.71306 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=35 #NNcollisions=4 + Collision 333 projectile=xi_b0 Ekin[MeV]=24582 direction=(0.423594,0.202615,0.882902) material=G4_Be + --> #secondaries=10 impactParameter[fm]=1.14519 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 334 projectile=anti_B0 Ekin[MeV]=20750.2 direction=(0.633122,0.282241,0.720761) material=G4_Pb + --> #secondaries=63 impactParameter[fm]=4.79984 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=2 + Collision 335 projectile=xi0 Ekin[MeV]=20755.3 direction=(0.817553,0.474716,0.325962) material=G4_H + --> #secondaries=4 impactParameter[fm]=1.23115 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 336 projectile=anti_xi_c+ Ekin[MeV]=18557.6 direction=(0.22308,0.939904,0.258488) material=G4_W + --> #secondaries=31 impactParameter[fm]=5.42577 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=184 #NNcollisions=1 + Collision 337 projectile=D0 Ekin[MeV]=15438 direction=(0.301654,0.213653,0.92917) material=G4_W + --> #secondaries=43 impactParameter[fm]=4.83459 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=182 #NNcollisions=1 + Collision 338 projectile=lambda_b Ekin[MeV]=5721.44 direction=(0.496659,0.466686,0.731802) material=G4_Ar + --> #secondaries=12 impactParameter[fm]=3.3112 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 339 projectile=kaon+ Ekin[MeV]=14938.4 direction=(0.588208,0.578955,0.564643) material=G4_He + --> #secondaries=10 impactParameter[fm]=1.3723 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 340 projectile=anti_omega_c0 Ekin[MeV]=15319.5 direction=(0.155384,0.884812,0.439277) material=G4_H + --> #secondaries=6 impactParameter[fm]=1.32542 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 341 projectile=anti_xi0 Ekin[MeV]=22111.7 direction=(0.763344,0.580702,0.283003) material=G4_Fe + --> #secondaries=36 impactParameter[fm]=3.63555 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=2 + Collision 342 projectile=doublehyperdoubleneutron Ekin[MeV]=13799.4 direction=(0.454429,0.641609,0.617926) material=G4_W + --> #secondaries=51 impactParameter[fm]=6.9123 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=177 #NNcollisions=1 + Collision 343 projectile=anti_Bs0 Ekin[MeV]=28349.5 direction=(0.422744,0.133976,0.896291) material=G4_Cu + --> #secondaries=15 impactParameter[fm]=3.02163 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=60 #NNcollisions=1 + Collision 344 projectile=D0 Ekin[MeV]=15298.6 direction=(0.826861,0.136148,0.545678) material=G4_Fe + --> #secondaries=4 impactParameter[fm]=5.51866 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 345 projectile=anti_hyperHe5 Ekin[MeV]=29175.6 direction=(0.809155,0.537334,0.237782) material=G4_Fe + --> #secondaries=30 impactParameter[fm]=5.46146 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=55 #NNcollisions=2 + Collision 346 projectile=xi_b0 Ekin[MeV]=25643.2 direction=(0.819321,0.418014,0.392399) material=G4_H + --> #secondaries=4 impactParameter[fm]=1.64645 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 347 projectile=deuteron Ekin[MeV]=16839.3 direction=(0.112794,0.430108,0.895703) material=G4_Si + --> #secondaries=25 impactParameter[fm]=2.74414 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=23 #NNcollisions=2 + Collision 348 projectile=anti_sigma- Ekin[MeV]=20104.6 direction=(0.883919,0.20333,0.421122) material=G4_W + --> #secondaries=51 impactParameter[fm]=5.94764 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=186 #NNcollisions=1 + Collision 349 projectile=xi_c+ Ekin[MeV]=8997.29 direction=(0.743098,0.299285,0.598526) material=G4_Be + --> #secondaries=9 impactParameter[fm]=2.62467 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 350 projectile=D0 Ekin[MeV]=3344.93 direction=(0.536223,0.0179136,0.843886) material=G4_W + --> #secondaries=18 impactParameter[fm]=5.73275 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=182 #NNcollisions=1 + Collision 351 projectile=anti_alpha Ekin[MeV]=12622.1 direction=(0.878872,0.442668,0.177846) material=G4_Fe + --> #secondaries=25 impactParameter[fm]=4.98528 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=54 #NNcollisions=1 + Collision 352 projectile=Bc- Ekin[MeV]=8698.07 direction=(0.899045,0.181653,0.398397) material=G4_H + --> #secondaries=3 impactParameter[fm]=1.09944 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 353 projectile=B+ Ekin[MeV]=25834 direction=(0.63944,0.75795,0.12895) material=G4_Pb + --> #secondaries=65 impactParameter[fm]=2.05411 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=204 #NNcollisions=3 + Collision 354 projectile=xi_c+ Ekin[MeV]=3813.41 direction=(0.73121,0.668495,0.135818) material=G4_Ar + --> #secondaries=23 impactParameter[fm]=2.52675 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=35 #NNcollisions=0 + Collision 355 projectile=alpha Ekin[MeV]=7655.26 direction=(0.60238,0.628478,0.492091) material=G4_Cu + --> #secondaries=34 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 356 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=16919.3 direction=(0.935267,0.345283,0.0778134) material=G4_Pb + --> #secondaries=144 impactParameter[fm]=2.56593 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=196 #NNcollisions=7 + Collision 357 projectile=sigma+ Ekin[MeV]=14916.4 direction=(0.924184,0.178635,0.337599) material=G4_Cu + --> #secondaries=21 impactParameter[fm]=3.63802 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 358 projectile=hyperH4 Ekin[MeV]=25831.5 direction=(0.582509,0.206923,0.786044) material=G4_Cu + --> #secondaries=31 impactParameter[fm]=4.65605 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=61 #NNcollisions=4 + Collision 359 projectile=triton Ekin[MeV]=29993.2 direction=(0.316469,0.705649,0.633962) material=G4_Ar + --> #secondaries=22 impactParameter[fm]=4.61063 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=38 #NNcollisions=2 + Collision 360 projectile=anti_sigma+ Ekin[MeV]=9277.43 direction=(0.59195,0.754451,0.283548) material=G4_C + --> #secondaries=16 impactParameter[fm]=1.61237 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 361 projectile=doublehyperH4 Ekin[MeV]=9200.77 direction=(0.326811,0.842049,0.429124) material=G4_Si + --> #secondaries=29 impactParameter[fm]=0.802817 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=16 #NNcollisions=4 + Collision 362 projectile=alpha Ekin[MeV]=25551 direction=(0.418487,0.871943,0.254133) material=G4_Fe + --> #secondaries=46 impactParameter[fm]=4.34426 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=52 #NNcollisions=3 + Collision 363 projectile=sigma+ Ekin[MeV]=14323.6 direction=(0.183566,0.155631,0.970609) material=G4_H + --> #secondaries=6 impactParameter[fm]=0.89645 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 364 projectile=anti_omega- Ekin[MeV]=19819.8 direction=(0.60549,0.595708,0.527744) material=G4_Fe + --> #secondaries=23 impactParameter[fm]=2.69971 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 365 projectile=anti_D0 Ekin[MeV]=20667.6 direction=(0.153826,0.783496,0.602056) material=G4_W + --> #secondaries=85 impactParameter[fm]=0.808977 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=183 #NNcollisions=3 + Collision 366 projectile=anti_doublehyperH4 Ekin[MeV]=1096.51 direction=(0.59777,0.54626,0.586746) material=G4_C + --> #secondaries=11 impactParameter[fm]=3.87173 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 367 projectile=B0 Ekin[MeV]=11948 direction=(0.548029,0.209818,0.809716) material=G4_Fe + --> #secondaries=9 impactParameter[fm]=1.30615 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 368 projectile=anti_deuteron Ekin[MeV]=5539.96 direction=(0.539505,0.673041,0.505915) material=G4_Cu + --> #secondaries=9 impactParameter[fm]=3.99795 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=63 #NNcollisions=1 + Collision 369 projectile=Bs0 Ekin[MeV]=1123.57 direction=(0.465465,0.0718429,0.882146) material=G4_H + --> #secondaries=2 impactParameter[fm]=0.91978 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 370 projectile=lambda Ekin[MeV]=26921.6 direction=(0.312308,0.609272,0.72887) material=G4_Cu + --> #secondaries=14 impactParameter[fm]=4.84344 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=64 #NNcollisions=1 + Collision 371 projectile=anti_hyperHe5 Ekin[MeV]=27393.6 direction=(0.154577,0.715455,0.681345) material=G4_H + --> #secondaries=3 impactParameter[fm]=2.82841 #projectileSpectatorNucleons=4 #targetSpectatorNucleons=0 #NNcollisions=0 + Collision 372 projectile=D+ Ekin[MeV]=5084.01 direction=(0.347689,0.351492,0.869233) material=G4_W + --> #secondaries=29 impactParameter[fm]=3.35086 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=179 #NNcollisions=1 + Collision 373 projectile=B+ Ekin[MeV]=11681.5 direction=(0.720527,0.0413408,0.692194) material=G4_Fe + --> #secondaries=7 impactParameter[fm]=5.46204 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 374 projectile=anti_xi_c0 Ekin[MeV]=26099.8 direction=(0.151257,0.206251,0.966738) material=G4_Si + --> #secondaries=18 impactParameter[fm]=2.00386 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 375 projectile=xi_b- Ekin[MeV]=10361.1 direction=(0.193917,0.509345,0.838429) material=G4_Pb + --> #secondaries=50 impactParameter[fm]=4.47539 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=201 #NNcollisions=2 + Collision 376 projectile=anti_lambda_b Ekin[MeV]=1198.65 direction=(0.606029,0.566377,0.558522) material=G4_He + --> #secondaries=4 impactParameter[fm]=0.857753 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 377 projectile=omega- Ekin[MeV]=25819.1 direction=(0.256875,0.565032,0.784063) material=G4_W + --> #secondaries=61 impactParameter[fm]=3.00571 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=179 #NNcollisions=3 + Collision 378 projectile=kaon+ Ekin[MeV]=13272.9 direction=(0.913458,0.235058,0.332178) material=G4_He + --> #secondaries=7 impactParameter[fm]=2.85047 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 379 projectile=anti_neutron Ekin[MeV]=16411.4 direction=(0.654391,0.351959,0.669251) material=G4_Pb + --> #secondaries=28 impactParameter[fm]=6.32658 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=1 + Collision 380 projectile=anti_alpha Ekin[MeV]=22422.1 direction=(0.236002,0.970414,0.0509844) material=G4_He + --> #secondaries=13 impactParameter[fm]=2.2199 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=3 #NNcollisions=2 + Collision 381 projectile=B+ Ekin[MeV]=26885.8 direction=(0.225978,0.406016,0.885486) material=G4_Pb + --> #secondaries=65 impactParameter[fm]=3.09637 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=203 #NNcollisions=4 + Collision 382 projectile=anti_xi_c0 Ekin[MeV]=7054.27 direction=(0.270359,0.715383,0.644309) material=G4_He + --> #secondaries=5 impactParameter[fm]=1.66142 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 383 projectile=He3 Ekin[MeV]=22334.8 direction=(0.133224,0.984532,0.113786) material=G4_Pb + --> #secondaries=64 impactParameter[fm]=3.70145 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=200 #NNcollisions=8 + Collision 384 projectile=xi_c+ Ekin[MeV]=15008.7 direction=(0.660751,0.166758,0.731847) material=G4_Pb + --> #secondaries=42 impactParameter[fm]=6.23499 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=205 #NNcollisions=1 + Collision 385 projectile=anti_lambda_b Ekin[MeV]=24292.8 direction=(0.342706,0.776819,0.528304) material=G4_Cu + --> #secondaries=49 impactParameter[fm]=2.6376 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=3 + Collision 386 projectile=anti_sigma- Ekin[MeV]=17469.1 direction=(0.860407,0.160161,0.483785) material=G4_Si + --> #secondaries=11 impactParameter[fm]=3.95306 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 387 projectile=anti_omega_c0 Ekin[MeV]=9493.06 direction=(0.865953,0.121423,0.485162) material=G4_He + --> #secondaries=6 impactParameter[fm]=0.137525 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 388 projectile=kaon0L Ekin[MeV]=22960.7 direction=(0.790196,0.515659,0.331187) material=G4_Pb + --> #secondaries=49 impactParameter[fm]=4.77874 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=203 #NNcollisions=4 + Collision 389 projectile=anti_lambda_c+ Ekin[MeV]=21251.3 direction=(0.326412,0.721591,0.610543) material=G4_W + --> #secondaries=84 impactParameter[fm]=3.67821 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=179 #NNcollisions=7 + Collision 390 projectile=anti_lambda Ekin[MeV]=26346.4 direction=(0.653397,0.756917,0.012199) material=G4_Pb + --> #secondaries=109 impactParameter[fm]=0.822571 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=1 + Collision 391 projectile=anti_alpha Ekin[MeV]=24122.1 direction=(0.491702,0.859611,0.138917) material=G4_Cu + --> #secondaries=66 impactParameter[fm]=1.7111 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=59 #NNcollisions=5 + Collision 392 projectile=anti_triton Ekin[MeV]=17615 direction=(0.549394,0.830888,0.0882697) material=G4_H + --> #secondaries=5 impactParameter[fm]=0.782442 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 393 projectile=anti_xi- Ekin[MeV]=17837.3 direction=(0.428159,0.825834,0.366985) material=G4_H + --> #secondaries=4 impactParameter[fm]=1.20653 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 394 projectile=hypertriton Ekin[MeV]=10917.5 direction=(0.692447,0.451128,0.563028) material=G4_W + --> #secondaries=31 impactParameter[fm]=5.7624 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=182 #NNcollisions=1 + Collision 395 projectile=anti_He3 Ekin[MeV]=25727.7 direction=(0.694702,0.650368,0.307263) material=G4_Cu + --> #secondaries=68 impactParameter[fm]=1.48167 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=57 #NNcollisions=6 + Collision 396 projectile=anti_B0 Ekin[MeV]=24089.8 direction=(0.359426,0.370762,0.856358) material=G4_Ar + --> #secondaries=19 impactParameter[fm]=3.51484 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 397 projectile=D+ Ekin[MeV]=19959.5 direction=(0.791593,0.611048,0.000806709) material=G4_C + --> #secondaries=14 impactParameter[fm]=1.44044 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 398 projectile=alpha Ekin[MeV]=25647.2 direction=(0.428235,0.180068,0.885545) material=G4_Be + --> #secondaries=11 impactParameter[fm]=5.81145 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 399 projectile=anti_hyperalpha Ekin[MeV]=13813.7 direction=(0.624151,0.373524,0.686232) material=G4_W + --> #secondaries=72 impactParameter[fm]=6.73797 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=176 #NNcollisions=5 + Collision 400 projectile=anti_xi_b0 Ekin[MeV]=27868.2 direction=(0.640884,0.225197,0.733863) material=G4_Al + --> #secondaries=12 impactParameter[fm]=4.73592 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + List of produced secondaries: + j=0 anti_lambda_b p=(16459.9,5304.09,19366.726565.2) MeV + j=1 pi- p=(197.636,-25.9889,36.8812246.121) MeV + j=2 kaon0L p=(904.524,708.168,480.171340.84) MeV + j=3 neutron p=(960.103,356.202,709.7121560.5) MeV + j=4 pi0 p=(1079.88,628.358,1163.791712.78) MeV + j=5 pi0 p=(89.3692,-135.569,97.4998232.574) MeV + j=6 pi+ p=(1535.15,494.437,2407.072900.8) MeV + j=7 Mg24 p=(-28.491,69.9723,102.80122336.2) MeV + j=8 proton p=(45.8168,90.7289,9.20621943.806) MeV + j=9 neutron p=(3.37201,-23.8704,-38.2234940.652) MeV + j=10 gamma p=(2.2226,-2.02481,1.186233.23217) MeV + j=11 gamma p=(1.11102,2.65776,-3.099224.23122) MeV + Collision 401 projectile=omega_b- Ekin[MeV]=29886.4 direction=(0.437865,0.0162619,0.898894) material=G4_Pb + --> #secondaries=90 impactParameter[fm]=1.12414 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=202 #NNcollisions=4 + Collision 402 projectile=omega_b- Ekin[MeV]=10861.5 direction=(0.800057,0.564557,0.202939) material=G4_H + --> #secondaries=4 impactParameter[fm]=0.526836 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 403 projectile=anti_hypertriton Ekin[MeV]=3565.81 direction=(0.674013,0.738714,0.00293092) material=G4_Fe + --> #secondaries=34 impactParameter[fm]=4.95582 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=52 #NNcollisions=2 + Collision 404 projectile=anti_xi_c+ Ekin[MeV]=15706.7 direction=(0.818128,0.0506319,0.572803) material=G4_Ar + --> #secondaries=17 impactParameter[fm]=1.86469 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=0 + Collision 405 projectile=lambda_b Ekin[MeV]=11995.2 direction=(0.563151,0.223488,0.795559) material=G4_Fe + --> #secondaries=7 impactParameter[fm]=7.2401 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=0 + Collision 406 projectile=anti_hyperHe5 Ekin[MeV]=25484.7 direction=(0.669634,0.733585,0.115943) material=G4_H + --> #secondaries=5 impactParameter[fm]=0.639938 #projectileSpectatorNucleons=4 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 407 projectile=anti_xi_c0 Ekin[MeV]=10311.7 direction=(0.209193,0.754513,0.622052) material=G4_Al + --> #secondaries=30 impactParameter[fm]=1.30712 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=22 #NNcollisions=5 + Collision 408 projectile=anti_lambda_b Ekin[MeV]=28511.5 direction=(0.177508,0.607508,0.774226) material=G4_Fe + --> #secondaries=32 impactParameter[fm]=2.64027 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=2 + Collision 409 projectile=anti_omega_c0 Ekin[MeV]=19232.5 direction=(0.0459735,0.484795,0.873419) material=G4_He + --> #secondaries=4 impactParameter[fm]=1.47544 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 410 projectile=anti_xi_b- Ekin[MeV]=12970.4 direction=(0.724187,0.604528,0.331812) material=G4_W + --> #secondaries=62 impactParameter[fm]=4.46157 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=175 #NNcollisions=6 + Collision 411 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=5790.27 direction=(0.718422,0.551729,0.423634) material=G4_He + --> #secondaries=13 impactParameter[fm]=2.18516 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=2 #NNcollisions=2 + Collision 412 projectile=xi_c0 Ekin[MeV]=12935.3 direction=(0.668863,0.511118,0.539797) material=G4_Al + --> #secondaries=12 impactParameter[fm]=2.99351 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=0 + Collision 413 projectile=xi_b0 Ekin[MeV]=9804.27 direction=(0.664273,0.400687,0.631024) material=G4_H + --> #secondaries=4 impactParameter[fm]=0.917465 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 414 projectile=anti_proton Ekin[MeV]=10286.8 direction=(0.744235,0.573406,0.342521) material=G4_Si + --> #secondaries=26 impactParameter[fm]=1.46273 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=4 + Collision 415 projectile=Ds- Ekin[MeV]=11816.1 direction=(0.708729,0.246699,0.660941) material=G4_W + --> #secondaries=67 impactParameter[fm]=0.359617 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=176 #NNcollisions=4 + Collision 416 projectile=lambda_c+ Ekin[MeV]=28662 direction=(0.505124,0.836946,0.210642) material=G4_Ar + --> #secondaries=42 impactParameter[fm]=1.5307 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=35 #NNcollisions=5 + Collision 417 projectile=triton Ekin[MeV]=17356 direction=(0.775672,0.174016,0.606673) material=G4_Al + --> #secondaries=29 impactParameter[fm]=1.30694 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=21 #NNcollisions=2 + Collision 418 projectile=neutron Ekin[MeV]=21109.1 direction=(0.48545,0.536812,0.690052) material=G4_Ar + --> #secondaries=35 impactParameter[fm]=2.91808 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=36 #NNcollisions=3 + Collision 419 projectile=sigma- Ekin[MeV]=16071.6 direction=(0.415738,0.731556,0.54036) material=G4_Fe + --> #secondaries=44 impactParameter[fm]=2.78178 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=50 #NNcollisions=3 + Collision 420 projectile=anti_triton Ekin[MeV]=16361.2 direction=(0.611731,0.380044,0.693795) material=G4_W + --> #secondaries=35 impactParameter[fm]=8.7948 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=184 #NNcollisions=0 + Collision 421 projectile=omega_b- Ekin[MeV]=5228.08 direction=(0.00796832,0.579293,0.815081) material=G4_Ar + --> #secondaries=19 impactParameter[fm]=0.829718 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=36 #NNcollisions=2 + Collision 422 projectile=pi- Ekin[MeV]=13223.5 direction=(0.758735,0.591033,0.273864) material=G4_Cu + --> #secondaries=35 impactParameter[fm]=3.63402 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=2 + Collision 423 projectile=hypertriton Ekin[MeV]=7248.28 direction=(0.777653,0.524288,0.346955) material=G4_H + --> #secondaries=4 impactParameter[fm]=1.38697 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=0 #NNcollisions=2 + Collision 424 projectile=Bc+ Ekin[MeV]=18050.3 direction=(0.567556,0.194197,0.800105) material=G4_W + --> #secondaries=27 impactParameter[fm]=5.82872 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=184 #NNcollisions=2 + Collision 425 projectile=anti_triton Ekin[MeV]=21996.6 direction=(0.975346,0.00803621,0.220533) material=G4_Cu + --> #secondaries=69 impactParameter[fm]=1.17421 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=6 + Collision 426 projectile=kaon+ Ekin[MeV]=13526.9 direction=(0.985265,0.15143,0.0795105) material=G4_Al + --> #secondaries=13 impactParameter[fm]=4.78029 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 427 projectile=hyperH4 Ekin[MeV]=7754.52 direction=(0.438002,0.772213,0.460262) material=G4_Al + --> #secondaries=28 impactParameter[fm]=2.1072 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=21 #NNcollisions=2 + Collision 428 projectile=deuteron Ekin[MeV]=12246.5 direction=(0.42213,0.265017,0.866933) material=G4_He + --> #secondaries=11 impactParameter[fm]=1.74083 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=2 #NNcollisions=1 + Collision 429 projectile=omega_b- Ekin[MeV]=26957.9 direction=(0.285227,0.410707,0.866005) material=G4_He + --> #secondaries=5 impactParameter[fm]=1.08807 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 430 projectile=anti_doublehyperH4 Ekin[MeV]=7726.62 direction=(0.271734,0.747594,0.606022) material=G4_Pb + --> #secondaries=105 impactParameter[fm]=5.7233 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=203 #NNcollisions=4 + Collision 431 projectile=anti_doublehyperH4 Ekin[MeV]=29548.5 direction=(0.742132,0.657122,0.132025) material=G4_Be + --> #secondaries=27 impactParameter[fm]=0.495504 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=4 + Collision 432 projectile=Ds- Ekin[MeV]=25234.3 direction=(0.756514,0.621472,0.203615) material=G4_C + --> #secondaries=15 impactParameter[fm]=1.10716 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 433 projectile=anti_xi_c0 Ekin[MeV]=18958.5 direction=(0.895023,0.0830121,0.438227) material=G4_W + --> #secondaries=59 impactParameter[fm]=3.14533 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=179 #NNcollisions=3 + Collision 434 projectile=alpha Ekin[MeV]=15283.8 direction=(0.590555,0.771293,0.237384) material=G4_W + --> #secondaries=25 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 435 projectile=anti_doublehyperH4 Ekin[MeV]=12405.1 direction=(0.736052,0.285577,0.613737) material=G4_Al + --> #secondaries=10 impactParameter[fm]=5.23609 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=26 #NNcollisions=0 + Collision 436 projectile=Ds+ Ekin[MeV]=3342.55 direction=(0.198308,0.736865,0.6463) material=G4_Al + --> #secondaries=15 impactParameter[fm]=1.83253 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=24 #NNcollisions=1 + Collision 437 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=25194.2 direction=(0.706767,0.704741,0.0618023) material=G4_Pb + --> #secondaries=76 impactParameter[fm]=6.30449 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=203 #NNcollisions=5 + Collision 438 projectile=sigma- Ekin[MeV]=1192.56 direction=(0.582643,0.634603,0.507747) material=G4_W + --> #secondaries=18 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 439 projectile=anti_deuteron Ekin[MeV]=8207.38 direction=(0.548721,0.542813,0.635814) material=G4_Ar + --> #secondaries=26 impactParameter[fm]=5.01624 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=40 #NNcollisions=1 + Collision 440 projectile=hyperH4 Ekin[MeV]=22202.3 direction=(0.0714613,0.704309,0.706287) material=G4_Cu + --> #secondaries=12 impactParameter[fm]=6.5974 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 441 projectile=anti_omega_b- Ekin[MeV]=2234.23 direction=(0.783968,0.551018,0.28596) material=G4_H + --> #secondaries=2 impactParameter[fm]=0.998541 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=0 + Collision 442 projectile=anti_omega_c0 Ekin[MeV]=11033.6 direction=(0.214978,0.976619,0.000422518) material=G4_C + --> #secondaries=10 impactParameter[fm]=0.318252 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=1 + Collision 443 projectile=sigma+ Ekin[MeV]=21750.8 direction=(0.620339,0.699174,0.355436) material=G4_He + --> #secondaries=16 impactParameter[fm]=1.38976 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=2 + Collision 444 projectile=xi- Ekin[MeV]=16010.1 direction=(0.655828,0.645064,0.392151) material=G4_Pb + --> #secondaries=23 impactParameter[fm]=7.92403 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=1 + Collision 445 projectile=kaon+ Ekin[MeV]=7543.15 direction=(0.392843,0.0856443,0.915609) material=G4_C + --> #secondaries=12 impactParameter[fm]=0.775397 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 446 projectile=anti_proton Ekin[MeV]=20514 direction=(0.274715,0.918813,0.283397) material=G4_Si + --> #secondaries=29 impactParameter[fm]=2.2428 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=22 #NNcollisions=5 + Collision 447 projectile=omega_b- Ekin[MeV]=17975.9 direction=(0.0941156,0.921025,0.377961) material=G4_W + --> #secondaries=33 impactParameter[fm]=5.13958 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=2 + Collision 448 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=8478.7 direction=(0.645165,0.44642,0.620057) material=G4_C + --> #secondaries=21 impactParameter[fm]=3.1018 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=10 #NNcollisions=3 + Collision 449 projectile=anti_xi_b0 Ekin[MeV]=12321 direction=(0.736636,0.114058,0.666602) material=G4_H + --> #secondaries=4 impactParameter[fm]=1.21087 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 450 projectile=anti_hyperH4 Ekin[MeV]=5222.76 direction=(0.968081,0.197588,0.154198) material=G4_Fe + --> #secondaries=38 impactParameter[fm]=4.05996 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=4 + Collision 451 projectile=B+ Ekin[MeV]=2702.56 direction=(0.64621,0.296209,0.703329) material=G4_Cu + --> #secondaries=22 impactParameter[fm]=2.86531 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=1 + Collision 452 projectile=anti_hypertriton Ekin[MeV]=7183.4 direction=(0.731239,0.523352,0.437485) material=G4_C + --> #secondaries=15 impactParameter[fm]=3.38546 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=12 #NNcollisions=1 + Collision 453 projectile=anti_xi_c0 Ekin[MeV]=17579.5 direction=(0.154352,0.113657,0.981457) material=G4_H + --> #secondaries=6 impactParameter[fm]=0.453937 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 454 projectile=B- Ekin[MeV]=6694.14 direction=(0.145851,0.395792,0.906684) material=G4_Fe + --> #secondaries=19 impactParameter[fm]=2.66628 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=50 #NNcollisions=3 + Collision 455 projectile=Ds- Ekin[MeV]=15358.1 direction=(0.166035,0.838113,0.519615) material=G4_He + --> #secondaries=4 impactParameter[fm]=1.3627 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 456 projectile=anti_sigma- Ekin[MeV]=6776.23 direction=(0.306368,0.576413,0.757553) material=G4_Pb + --> #secondaries=66 impactParameter[fm]=3.31642 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=2 + Collision 457 projectile=kaon- Ekin[MeV]=7528.29 direction=(0.249265,0.0724489,0.965722) material=G4_Pb + --> #secondaries=49 impactParameter[fm]=4.84476 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=203 #NNcollisions=3 + Collision 458 projectile=anti_omega_c0 Ekin[MeV]=5410.15 direction=(0.133982,0.768199,0.626034) material=G4_Be + --> #secondaries=7 impactParameter[fm]=1.17207 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 459 projectile=anti_xi_b- Ekin[MeV]=7601.75 direction=(0.372062,0.778463,0.505535) material=G4_Al + --> #secondaries=10 impactParameter[fm]=0.91781 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 460 projectile=anti_triton Ekin[MeV]=25111 direction=(0.568693,0.781969,0.255174) material=G4_Pb + --> #secondaries=86 impactParameter[fm]=4.52817 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=201 #NNcollisions=8 + Collision 461 projectile=proton Ekin[MeV]=8736.48 direction=(0.899595,0.376965,0.220515) material=G4_Pb + --> #secondaries=36 impactParameter[fm]=6.84407 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=1 + Collision 462 projectile=hyperalpha Ekin[MeV]=17152.2 direction=(0.329752,0.936469,0.119535) material=G4_W + --> #secondaries=44 impactParameter[fm]=7.45581 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=179 #NNcollisions=4 + Collision 463 projectile=kaon0L Ekin[MeV]=4309.11 direction=(0.850535,0.125159,0.510809) material=G4_Al + --> #secondaries=7 impactParameter[fm]=4.70887 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 464 projectile=xi0 Ekin[MeV]=3258.51 direction=(0.311832,0.940742,0.133288) material=G4_Cu + --> #secondaries=21 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 465 projectile=anti_alpha Ekin[MeV]=27291.8 direction=(0.617015,0.123289,0.777234) material=G4_He + --> #secondaries=9 impactParameter[fm]=2.0963 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 466 projectile=anti_sigma- Ekin[MeV]=21084.4 direction=(0.215703,0.345989,0.913107) material=G4_C + --> #secondaries=8 impactParameter[fm]=2.10557 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=0 + Collision 467 projectile=Bs0 Ekin[MeV]=24895.6 direction=(0.70546,0.0393914,0.707654) material=G4_Ar + --> #secondaries=10 impactParameter[fm]=2.01177 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 468 projectile=anti_sigma- Ekin[MeV]=23095.6 direction=(0.629505,0.572619,0.525196) material=G4_H + --> #secondaries=12 impactParameter[fm]=1.62446 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 469 projectile=doublehyperdoubleneutron Ekin[MeV]=13513.5 direction=(0.615169,0.612993,0.495789) material=G4_Be + --> #secondaries=15 impactParameter[fm]=1.87377 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=6 #NNcollisions=1 + Collision 470 projectile=anti_lambda Ekin[MeV]=23001 direction=(0.891421,0.444182,0.0898391) material=G4_Al + --> #secondaries=30 impactParameter[fm]=2.026 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=22 #NNcollisions=4 + Collision 471 projectile=D- Ekin[MeV]=21279.9 direction=(0.511682,0.581768,0.63224) material=G4_Al + --> #secondaries=12 impactParameter[fm]=1.54406 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 472 projectile=omega_c0 Ekin[MeV]=12132.3 direction=(0.209944,0.447249,0.86942) material=G4_Al + --> #secondaries=24 impactParameter[fm]=0.539709 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=1 + Collision 473 projectile=kaon0L Ekin[MeV]=10644.6 direction=(0.438355,0.811514,0.38638) material=G4_Be + --> #secondaries=4 impactParameter[fm]=0.846784 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 474 projectile=anti_xi0 Ekin[MeV]=9254.48 direction=(0.691707,0.229593,0.68471) material=G4_Cu + --> #secondaries=30 impactParameter[fm]=3.37427 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=2 + Collision 475 projectile=anti_sigma+ Ekin[MeV]=12291.2 direction=(0.789363,0.592199,0.161884) material=G4_H + --> #secondaries=4 impactParameter[fm]=0.243537 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 476 projectile=anti_xi_b- Ekin[MeV]=9583.65 direction=(0.433005,0.652903,0.621469) material=G4_Be + --> #secondaries=6 impactParameter[fm]=2.46723 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 477 projectile=anti_deuteron Ekin[MeV]=11972.4 direction=(0.614499,0.763862,0.197244) material=G4_Fe + --> #secondaries=19 impactParameter[fm]=5.06047 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 478 projectile=kaon0L Ekin[MeV]=26315.8 direction=(0.270459,0.124599,0.954634) material=G4_H + --> #secondaries=3 impactParameter[fm]=0.601113 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 479 projectile=xi0 Ekin[MeV]=3602.67 direction=(0.7,0.249641,0.669089) material=G4_Si + --> #secondaries=18 impactParameter[fm]=2.39107 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=29 #NNcollisions=0 + Collision 480 projectile=xi- Ekin[MeV]=16963.7 direction=(0.467794,0.776736,0.421722) material=G4_Fe + --> #secondaries=34 impactParameter[fm]=2.91556 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=3 + Collision 481 projectile=anti_hyperHe5 Ekin[MeV]=21714.8 direction=(0.595314,0.148784,0.789598) material=G4_H + --> #secondaries=8 impactParameter[fm]=1.48522 #projectileSpectatorNucleons=4 #targetSpectatorNucleons=1 #NNcollisions=1 + Collision 482 projectile=anti_lambda_c+ Ekin[MeV]=19909.6 direction=(0.214984,0.335979,0.917006) material=G4_C + --> #secondaries=15 impactParameter[fm]=3.04257 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 483 projectile=kaon+ Ekin[MeV]=12214.3 direction=(0.415511,0.860448,0.294924) material=G4_Al + --> #secondaries=18 impactParameter[fm]=2.73711 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=2 + Collision 484 projectile=lambda_b Ekin[MeV]=8161.59 direction=(0.49473,0.164316,0.853371) material=G4_H + --> #secondaries=4 impactParameter[fm]=1.46811 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 485 projectile=xi0 Ekin[MeV]=17546.4 direction=(0.281056,0.545153,0.78982) material=G4_Al + --> #secondaries=9 impactParameter[fm]=2.08486 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 486 projectile=kaon0L Ekin[MeV]=12868.7 direction=(0.446346,0.780929,0.43695) material=G4_Cu + --> #secondaries=23 impactParameter[fm]=3.66246 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=60 #NNcollisions=3 + Collision 487 projectile=xi0 Ekin[MeV]=1677.8 direction=(0.0961295,0.895582,0.434388) material=G4_He + --> #secondaries=8 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 488 projectile=D+ Ekin[MeV]=17205 direction=(0.725119,0.462747,0.509969) material=G4_H + --> #secondaries=4 impactParameter[fm]=0.491432 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 489 projectile=Bc+ Ekin[MeV]=1255.74 direction=(0.900387,0.190891,0.390978) material=G4_Al + --> #secondaries=13 impactParameter[fm]=2.05579 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=0 + Collision 490 projectile=lambda_c+ Ekin[MeV]=27693.7 direction=(0.503107,0.819868,0.273313) material=G4_Fe + --> #secondaries=42 impactParameter[fm]=0.968093 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=53 #NNcollisions=3 + Collision 491 projectile=anti_alpha Ekin[MeV]=27891.3 direction=(0.473795,0.774705,0.418749) material=G4_H + --> #secondaries=4 impactParameter[fm]=1.5414 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=1 #NNcollisions=1 + Collision 492 projectile=anti_doublehyperH4 Ekin[MeV]=1127.66 direction=(0.115034,0.884218,0.452686) material=G4_Ar + --> #secondaries=15 impactParameter[fm]=5.23698 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 493 projectile=xi- Ekin[MeV]=16899.7 direction=(0.859637,0.124984,0.495382) material=G4_H + --> #secondaries=2 impactParameter[fm]=1.15429 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 494 projectile=lambda Ekin[MeV]=26286.6 direction=(0.503776,0.0925094,0.858866) material=G4_Al + --> #secondaries=28 impactParameter[fm]=1.90982 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=23 #NNcollisions=3 + Collision 495 projectile=lambda_c+ Ekin[MeV]=17629.9 direction=(0.449763,0.527335,0.720854) material=G4_W + --> #secondaries=121 impactParameter[fm]=3.03128 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=176 #NNcollisions=5 + Collision 496 projectile=anti_neutron Ekin[MeV]=22757.2 direction=(0.625123,0.279657,0.728706) material=G4_C + --> #secondaries=14 impactParameter[fm]=2.1325 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 497 projectile=xi_b- Ekin[MeV]=24494.4 direction=(0.605359,0.532217,0.591849) material=G4_Fe + --> #secondaries=37 impactParameter[fm]=0.99051 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=52 #NNcollisions=3 + Collision 498 projectile=hyperHe5 Ekin[MeV]=5120.13 direction=(0.712652,0.212453,0.668574) material=G4_Si + --> #secondaries=18 impactParameter[fm]=3.02194 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=2 + Collision 499 projectile=anti_deuteron Ekin[MeV]=10642.8 direction=(0.0397881,0.575677,0.816708) material=G4_Fe + --> #secondaries=11 impactParameter[fm]=4.51386 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=57 #NNcollisions=1 + Collision 500 projectile=kaon0L Ekin[MeV]=6037.67 direction=(0.524519,0.572283,0.630375) material=G4_Al + --> #secondaries=21 impactParameter[fm]=1.46793 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=24 #NNcollisions=3 + List of produced secondaries: + j=0 pi+ p=(89.8536,296.972,354.355491.237) MeV + j=1 pi0 p=(228.418,731.471,622.395996.403) MeV + j=2 pi0 p=(65.8698,-27.9814,273.648313.407) MeV + j=3 proton p=(19.6158,-348.843,390.1911074.56) MeV + j=4 pi0 p=(1417.59,1686.13,1661.552762.53) MeV + j=5 proton p=(417.778,-97.5443,-46.51351032.75) MeV + j=6 pi- p=(446.804,585.807,425.106861.973) MeV + j=7 lambda p=(91.8398,47.1168,-140.6281129.24) MeV + j=8 pi+ p=(-166.716,-95.6778,144.192277.884) MeV + j=9 neutron p=(254.656,321.716,-56.30491026.79) MeV + j=10 alpha p=(365.375,280.148,-63.17663756.24) MeV + j=11 deuteron p=(-13.5266,133.237,108.8271883.53) MeV + j=12 neutron p=(17.0807,157.392,75.1933955.773) MeV + j=13 deuteron p=(-53.857,128.137,-124.741884.89) MeV + j=14 neutron p=(-122.004,233.272,-9.94731975.799) MeV + j=15 deuteron p=(278.868,91.9202,121.5611902.35) MeV + j=16 deuteron p=(-8.79343,-111.844,-82.39341880.77) MeV + j=17 neutron p=(2.57604,27.9899,-85.1336943.833) MeV + j=18 deuteron p=(-41.2522,-58.6022,226.061890.55) MeV + j=19 deuteron p=(17.8078,-118.347,37.5671879.8) MeV + j=20 alpha p=(109.974,-133.271,275.9453741.57) MeV + Collision 501 projectile=xi0 Ekin[MeV]=19499.5 direction=(0.897943,0.00826063,0.440035) material=G4_Ar + --> #secondaries=41 impactParameter[fm]=1.55129 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=37 #NNcollisions=2 + Collision 502 projectile=anti_xi_b0 Ekin[MeV]=11552.4 direction=(0.356072,0.700562,0.618406) material=G4_He + --> #secondaries=6 impactParameter[fm]=0.348801 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 503 projectile=kaon0S Ekin[MeV]=9585.29 direction=(0.336409,0.313471,0.888012) material=G4_Fe + --> #secondaries=13 impactParameter[fm]=3.75455 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 504 projectile=anti_lambda Ekin[MeV]=9583.1 direction=(0.240334,0.451599,0.859243) material=G4_Be + --> #secondaries=13 impactParameter[fm]=1.96448 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=7 #NNcollisions=1 + Collision 505 projectile=anti_neutron Ekin[MeV]=8921.28 direction=(0.0346744,0.978154,0.20497) material=G4_Fe + --> #secondaries=27 impactParameter[fm]=3.43242 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=2 + Collision 506 projectile=kaon0L Ekin[MeV]=13421.8 direction=(0.361578,0.741938,0.564614) material=G4_Al + --> #secondaries=12 impactParameter[fm]=2.94562 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 507 projectile=pi- Ekin[MeV]=16740.3 direction=(0.752423,0.407103,0.517809) material=G4_Ar + --> #secondaries=26 impactParameter[fm]=2.35495 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=36 #NNcollisions=4 + Collision 508 projectile=anti_xi- Ekin[MeV]=5258.23 direction=(0.531506,0.089739,0.842288) material=G4_Fe + --> #secondaries=48 impactParameter[fm]=1.13436 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=1 + Collision 509 projectile=kaon0L Ekin[MeV]=22174.7 direction=(0.660544,0.552789,0.508042) material=G4_H + --> #secondaries=10 impactParameter[fm]=0.498544 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 510 projectile=anti_hyperalpha Ekin[MeV]=25236.5 direction=(0.675286,0.00357951,0.737548) material=G4_Fe + --> #secondaries=37 impactParameter[fm]=3.63915 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=53 #NNcollisions=4 + Collision 511 projectile=Ds+ Ekin[MeV]=17011.5 direction=(0.0144669,0.391093,0.920237) material=G4_Cu + --> #secondaries=15 impactParameter[fm]=3.01438 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=1 + Collision 512 projectile=anti_xi_b- Ekin[MeV]=26073.2 direction=(0.325588,0.76619,0.554027) material=G4_Fe + --> #secondaries=22 impactParameter[fm]=4.81007 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=2 + Collision 513 projectile=Ds- Ekin[MeV]=25145.3 direction=(0.863513,0.370375,0.342298) material=G4_Be + --> #secondaries=8 impactParameter[fm]=0.694291 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=7 #NNcollisions=2 + Collision 514 projectile=kaon0S Ekin[MeV]=28770.8 direction=(0.660923,0.67297,0.332103) material=G4_He + --> #secondaries=17 impactParameter[fm]=1.52187 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 515 projectile=Bc+ Ekin[MeV]=17644.1 direction=(0.145596,0.707954,0.691088) material=G4_Be + --> #secondaries=7 impactParameter[fm]=0.76804 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 516 projectile=kaon+ Ekin[MeV]=4389.93 direction=(0.886022,0.460324,0.0553739) material=G4_W + --> #secondaries=70 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 517 projectile=Bc+ Ekin[MeV]=15533.8 direction=(0.565362,0.789263,0.239645) material=G4_Si + --> #secondaries=12 impactParameter[fm]=1.06064 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 518 projectile=B+ Ekin[MeV]=1452.46 direction=(0.251808,0.616419,0.74607) material=G4_Si + --> #secondaries=9 impactParameter[fm]=2.87079 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=28 #NNcollisions=1 + Collision 519 projectile=deuteron Ekin[MeV]=22121.2 direction=(0.443886,0.6932,0.567837) material=G4_He + --> #secondaries=7 impactParameter[fm]=0.552564 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 520 projectile=deuteron Ekin[MeV]=11070.8 direction=(0.468954,0.865072,0.178138) material=G4_Si + --> #secondaries=29 impactParameter[fm]=0.599178 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=20 #NNcollisions=4 + Collision 521 projectile=anti_lambda_c+ Ekin[MeV]=1420.25 direction=(0.890775,0.403785,0.208513) material=G4_He + --> #secondaries=5 impactParameter[fm]=2.07599 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=1 + Collision 522 projectile=B- Ekin[MeV]=28191.7 direction=(0.0361754,0.70139,0.711859) material=G4_Ar + --> #secondaries=34 impactParameter[fm]=0.384838 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=36 #NNcollisions=3 + Collision 523 projectile=anti_triton Ekin[MeV]=27612 direction=(0.247737,0.776101,0.579909) material=G4_Cu + --> #secondaries=79 impactParameter[fm]=2.74567 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=57 #NNcollisions=7 + Collision 524 projectile=anti_doublehyperH4 Ekin[MeV]=4045.43 direction=(0.938863,0.341548,0.0433709) material=G4_Al + --> #secondaries=24 impactParameter[fm]=3.16159 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 525 projectile=lambda_c+ Ekin[MeV]=8122.39 direction=(0.491905,0.67306,0.552286) material=G4_Ar + --> #secondaries=25 impactParameter[fm]=3.32354 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=2 + Collision 526 projectile=hypertriton Ekin[MeV]=29006.9 direction=(0.56888,0.423442,0.705034) material=G4_W + --> #secondaries=43 impactParameter[fm]=9.20135 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=185 #NNcollisions=1 + Collision 527 projectile=sigma- Ekin[MeV]=4593.56 direction=(0.533483,0.724973,0.435671) material=G4_Al + --> #secondaries=21 impactParameter[fm]=1.09254 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=2 + Collision 528 projectile=D+ Ekin[MeV]=13600.7 direction=(0.379522,0.522142,0.763761) material=G4_Be + --> #secondaries=11 impactParameter[fm]=1.94885 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 529 projectile=kaon- Ekin[MeV]=6337.06 direction=(0.939409,0.320435,0.121789) material=G4_Al + --> #secondaries=13 impactParameter[fm]=3.50622 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 530 projectile=alpha Ekin[MeV]=26589.2 direction=(0.245264,0.534385,0.808874) material=G4_Ar + --> #secondaries=22 impactParameter[fm]=6.59506 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 531 projectile=hypertriton Ekin[MeV]=11099.7 direction=(0.722584,0.406813,0.558906) material=G4_Fe + --> #secondaries=49 impactParameter[fm]=1.34579 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=47 #NNcollisions=5 + Collision 532 projectile=doublehyperH4 Ekin[MeV]=11896 direction=(0.340718,0.83534,0.431415) material=G4_C + --> #secondaries=14 impactParameter[fm]=3.55925 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=8 #NNcollisions=3 + Collision 533 projectile=Bs0 Ekin[MeV]=18128.4 direction=(0.728486,0.160902,0.665897) material=G4_Si + --> #secondaries=11 impactParameter[fm]=2.22597 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 534 projectile=anti_lambda_b Ekin[MeV]=11907.5 direction=(0.889421,0.34022,0.305254) material=G4_Pb + --> #secondaries=24 impactParameter[fm]=6.67304 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=1 + Collision 535 projectile=xi_b- Ekin[MeV]=18759.6 direction=(0.623716,0.126311,0.771378) material=G4_Be + --> #secondaries=6 impactParameter[fm]=2.52782 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 536 projectile=anti_lambda_b Ekin[MeV]=24190.7 direction=(0.708026,0.679759,0.191381) material=G4_W + --> #secondaries=67 impactParameter[fm]=3.16674 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=179 #NNcollisions=4 + Collision 537 projectile=anti_xi- Ekin[MeV]=6466.62 direction=(0.739111,0.0662246,0.67032) material=G4_Cu + --> #secondaries=19 impactParameter[fm]=4.54313 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=64 #NNcollisions=1 + Collision 538 projectile=proton Ekin[MeV]=3007.47 direction=(0.0355104,0.785822,0.617433) material=G4_W --> #secondaries=15 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 823 projectile=pi- Ekin[MeV]=26919.7 direction=(0.0306458,0.867814,0.495944) material=G4_Pb - --> #secondaries=87 impactParameter[fm]=0.717149 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=199 #NNcollisions=5 - Collision 824 projectile=Bc+ Ekin[MeV]=11665.8 direction=(0.0287765,0.930045,0.366318) material=G4_He - --> #secondaries=4 impactParameter[fm]=1.68243 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 825 projectile=anti_sigma+ Ekin[MeV]=26081.5 direction=(0.578286,0.812189,0.0770324) material=G4_W - --> #secondaries=35 impactParameter[fm]=6.87714 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=3 - Collision 826 projectile=xi0 Ekin[MeV]=7983.14 direction=(0.377031,0.892364,0.24806) material=G4_Cu - --> #secondaries=12 impactParameter[fm]=5.1542 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 827 projectile=anti_proton Ekin[MeV]=6879.97 direction=(0.203412,0.467412,0.86032) material=G4_Al - --> #secondaries=14 impactParameter[fm]=2.77007 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 828 projectile=anti_lambda_b Ekin[MeV]=4651.47 direction=(0.545817,0.53563,0.644348) material=G4_Ar - --> #secondaries=15 impactParameter[fm]=2.81231 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=37 #NNcollisions=2 - Collision 829 projectile=anti_xi_b- Ekin[MeV]=10168.7 direction=(0.145223,0.194872,0.970018) material=G4_He - --> #secondaries=7 impactParameter[fm]=0.516874 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 830 projectile=anti_sigma+ Ekin[MeV]=27370.7 direction=(0.631703,0.707816,0.316144) material=G4_Cu - --> #secondaries=55 impactParameter[fm]=2.76965 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=65 #NNcollisions=1 - Collision 831 projectile=anti_omega_b- Ekin[MeV]=26390 direction=(0.090233,0.0561265,0.994338) material=G4_H - --> #secondaries=5 impactParameter[fm]=0.760101 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 832 projectile=pi- Ekin[MeV]=3610.87 direction=(0.193277,0.961098,0.19732) material=G4_Be - --> #secondaries=12 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 833 projectile=omega_b- Ekin[MeV]=19234.1 direction=(0.114747,0.792624,0.598816) material=G4_He - --> #secondaries=6 impactParameter[fm]=0.953944 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=2 - Collision 834 projectile=xi- Ekin[MeV]=16475.5 direction=(0.761767,0.610124,0.217853) material=G4_Be - --> #secondaries=5 impactParameter[fm]=1.29651 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 835 projectile=anti_alpha Ekin[MeV]=23927 direction=(0.538419,0.824107,0.175933) material=G4_Cu - --> #secondaries=46 impactParameter[fm]=3.28539 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=59 #NNcollisions=4 - Collision 836 projectile=kaon0S Ekin[MeV]=20499 direction=(0.299346,0.235472,0.924632) material=G4_He - --> #secondaries=13 impactParameter[fm]=1.3498 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 837 projectile=B0 Ekin[MeV]=1097.83 direction=(0.627597,0.734395,0.258429) material=G4_Cu - --> #secondaries=9 impactParameter[fm]=4.75376 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=0 - Collision 838 projectile=anti_neutron Ekin[MeV]=24951.8 direction=(0.682685,0.383077,0.622249) material=G4_Fe - --> #secondaries=32 impactParameter[fm]=0.900495 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=1 - Collision 839 projectile=sigma- Ekin[MeV]=26766.2 direction=(0.7133,0.382747,0.587118) material=G4_Ar - --> #secondaries=22 impactParameter[fm]=3.56545 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=0 - Collision 840 projectile=He3 Ekin[MeV]=5633.49 direction=(0.443236,0.0305105,0.895886) material=G4_Fe - --> #secondaries=23 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 841 projectile=Ds- Ekin[MeV]=29471.8 direction=(0.677285,0.542575,0.496887) material=G4_Al - --> #secondaries=11 impactParameter[fm]=3.21562 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=0 - Collision 842 projectile=anti_He3 Ekin[MeV]=27796.1 direction=(0.878298,0.222798,0.42303) material=G4_Be - --> #secondaries=10 impactParameter[fm]=5.77366 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 843 projectile=anti_alpha Ekin[MeV]=18901.9 direction=(0.412405,0.708124,0.573133) material=G4_Be - --> #secondaries=34 impactParameter[fm]=0.635147 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=6 - Collision 844 projectile=D0 Ekin[MeV]=23492.7 direction=(0.475928,0.671021,0.568527) material=G4_Ar - --> #secondaries=11 impactParameter[fm]=5.12506 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 845 projectile=anti_lambda_c+ Ekin[MeV]=16775.2 direction=(0.364764,0.8582,0.361165) material=G4_Pb - --> #secondaries=63 impactParameter[fm]=5.36883 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=200 #NNcollisions=6 - Collision 846 projectile=anti_D0 Ekin[MeV]=11188.3 direction=(0.875835,0.340532,0.341982) material=G4_C - --> #secondaries=9 impactParameter[fm]=0.804373 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 847 projectile=anti_neutron Ekin[MeV]=9326.08 direction=(0.201139,0.800605,0.564424) material=G4_Be - --> #secondaries=6 impactParameter[fm]=2.32341 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 848 projectile=Bs0 Ekin[MeV]=6762.95 direction=(0.777298,0.518991,0.355607) material=G4_Cu - --> #secondaries=7 impactParameter[fm]=4.17186 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=64 #NNcollisions=0 - Collision 849 projectile=omega_c0 Ekin[MeV]=7644.1 direction=(0.262053,0.216503,0.940455) material=G4_C - --> #secondaries=7 impactParameter[fm]=0.552199 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=1 - Collision 850 projectile=neutron Ekin[MeV]=10516.8 direction=(0.544767,0.838324,0.0210154) material=G4_Cu - --> #secondaries=14 impactParameter[fm]=6.0721 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=64 #NNcollisions=1 - Collision 851 projectile=proton Ekin[MeV]=28973.4 direction=(0.448185,0.0797277,0.890378) material=G4_W - --> #secondaries=49 impactParameter[fm]=5.88952 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=182 #NNcollisions=2 - Collision 852 projectile=kaon0S Ekin[MeV]=23095.5 direction=(0.318852,0.654825,0.685229) material=G4_H - --> #secondaries=8 impactParameter[fm]=0.964484 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 853 projectile=B- Ekin[MeV]=19913 direction=(0.540494,0.551789,0.635134) material=G4_Ar - --> #secondaries=15 impactParameter[fm]=1.83459 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=37 #NNcollisions=1 - Collision 854 projectile=anti_xi_b- Ekin[MeV]=25211.5 direction=(0.454945,0.603253,0.655065) material=G4_Be - --> #secondaries=8 impactParameter[fm]=1.97178 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=0 - Collision 855 projectile=anti_triton Ekin[MeV]=15230.2 direction=(0.0275811,0.231266,0.9725) material=G4_H - --> #secondaries=6 impactParameter[fm]=2.14953 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 856 projectile=anti_lambda_b Ekin[MeV]=14825.3 direction=(0.378096,0.649997,0.659201) material=G4_Pb - --> #secondaries=76 impactParameter[fm]=2.81897 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=201 #NNcollisions=5 - Collision 857 projectile=He3 Ekin[MeV]=10120.4 direction=(0.343721,0.660972,0.667062) material=G4_Be - --> #secondaries=11 impactParameter[fm]=2.00844 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=7 #NNcollisions=1 - Collision 858 projectile=He3 Ekin[MeV]=20829 direction=(0.33844,0.573346,0.746145) material=G4_W - --> #secondaries=28 impactParameter[fm]=7.4645 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=3 - Collision 859 projectile=He3 Ekin[MeV]=9933.73 direction=(0.68005,0.657595,0.324194) material=G4_He - --> #secondaries=10 impactParameter[fm]=2.07109 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 860 projectile=sigma- Ekin[MeV]=24885.2 direction=(0.749142,0.479493,0.457027) material=G4_He - --> #secondaries=12 impactParameter[fm]=1.15242 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 861 projectile=B- Ekin[MeV]=19744.2 direction=(0.0183188,0.77763,0.628456) material=G4_Be - --> #secondaries=5 impactParameter[fm]=1.86246 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 862 projectile=D- Ekin[MeV]=21113.6 direction=(0.0161799,0.443638,0.89606) material=G4_Si - --> #secondaries=22 impactParameter[fm]=2.48686 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=2 - Collision 863 projectile=kaon- Ekin[MeV]=27429.4 direction=(0.900698,0.0415412,0.432455) material=G4_He - --> #secondaries=15 impactParameter[fm]=1.829 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 864 projectile=anti_omega- Ekin[MeV]=4595.28 direction=(0.146607,0.701116,0.697813) material=G4_Pb - --> #secondaries=24 impactParameter[fm]=8.44017 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=1 - Collision 865 projectile=pi- Ekin[MeV]=15146.8 direction=(0.192247,0.258951,0.946565) material=G4_Pb - --> #secondaries=94 impactParameter[fm]=5.28932 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=202 #NNcollisions=5 - Collision 866 projectile=kaon+ Ekin[MeV]=8584.81 direction=(0.643261,0.21656,0.734382) material=G4_Ar - --> #secondaries=13 impactParameter[fm]=3.58796 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 867 projectile=Bc- Ekin[MeV]=11844.9 direction=(0.255612,0.488545,0.834258) material=G4_C - --> #secondaries=8 impactParameter[fm]=2.38706 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 868 projectile=anti_omega- Ekin[MeV]=3320.78 direction=(0.337847,0.412841,0.845826) material=G4_W - --> #secondaries=24 impactParameter[fm]=6.16903 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=185 #NNcollisions=1 - Collision 869 projectile=anti_xi_b- Ekin[MeV]=8712.56 direction=(0.905058,0.394909,0.157853) material=G4_He - --> #secondaries=5 impactParameter[fm]=0.87 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 870 projectile=anti_xi0 Ekin[MeV]=17838.5 direction=(0.469159,0.646756,0.601328) material=G4_Si - --> #secondaries=18 impactParameter[fm]=2.7941 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 871 projectile=triton Ekin[MeV]=7634.66 direction=(0.189819,0.788019,0.585658) material=G4_H - --> #secondaries=5 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 872 projectile=Bs0 Ekin[MeV]=12322.6 direction=(0.606012,0.567558,0.557339) material=G4_He - --> #secondaries=5 impactParameter[fm]=1.95521 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 873 projectile=proton Ekin[MeV]=18653.2 direction=(0.964122,0.262981,0.0361797) material=G4_C - --> #secondaries=20 impactParameter[fm]=2.08875 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=3 - Collision 874 projectile=alpha Ekin[MeV]=16614 direction=(0.643868,0.213236,0.734823) material=G4_Cu - --> #secondaries=20 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 875 projectile=anti_D0 Ekin[MeV]=1578.35 direction=(0.69446,0.526265,0.490684) material=G4_He - --> #secondaries=4 impactParameter[fm]=1.07117 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 876 projectile=B- Ekin[MeV]=8094.12 direction=(0.749739,0.207336,0.628413) material=G4_Pb - --> #secondaries=25 impactParameter[fm]=6.17134 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=1 - Collision 877 projectile=xi_c+ Ekin[MeV]=20909.8 direction=(0.975993,0.136687,0.169569) material=G4_Be - --> #secondaries=15 impactParameter[fm]=0.865331 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=6 #NNcollisions=2 - Collision 878 projectile=anti_D0 Ekin[MeV]=24055.4 direction=(0.132751,0.131132,0.982437) material=G4_He - --> #secondaries=6 impactParameter[fm]=0.885647 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 879 projectile=omega- Ekin[MeV]=28947.1 direction=(0.782349,0.534938,0.319017) material=G4_W - --> #secondaries=14 impactParameter[fm]=7.06953 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=1 - Collision 880 projectile=anti_neutron Ekin[MeV]=18627.1 direction=(0.162101,0.738995,0.653919) material=G4_H - --> #secondaries=11 impactParameter[fm]=0.812687 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 881 projectile=anti_deuteron Ekin[MeV]=17080.3 direction=(0.40111,0.221853,0.888759) material=G4_W - --> #secondaries=60 impactParameter[fm]=5.31731 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=3 - Collision 882 projectile=anti_xi0 Ekin[MeV]=26421.4 direction=(0.132481,0.728903,0.671677) material=G4_Ar - --> #secondaries=12 impactParameter[fm]=5.26644 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 - Collision 883 projectile=anti_omega_c0 Ekin[MeV]=7342.15 direction=(0.0763744,0.429613,0.899777) material=G4_Cu - --> #secondaries=12 impactParameter[fm]=3.56405 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 884 projectile=anti_xi_b- Ekin[MeV]=27571.1 direction=(0.682328,0.624889,0.379398) material=G4_H - --> #secondaries=3 impactParameter[fm]=0.581163 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 885 projectile=pi- Ekin[MeV]=21740.7 direction=(0.766377,0.636642,0.0857504) material=G4_W - --> #secondaries=50 impactParameter[fm]=4.43087 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=181 #NNcollisions=2 - Collision 886 projectile=xi_b- Ekin[MeV]=4277.36 direction=(0.231601,0.669287,0.705985) material=G4_Al - --> #secondaries=9 impactParameter[fm]=4.019 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 887 projectile=kaon0S Ekin[MeV]=25789.4 direction=(0.298832,0.829124,0.472497) material=G4_H - --> #secondaries=8 impactParameter[fm]=1.31748 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 888 projectile=alpha Ekin[MeV]=9143.05 direction=(0.417861,0.0952643,0.903503) material=G4_Si - --> #secondaries=11 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 889 projectile=lambda_b Ekin[MeV]=29014.7 direction=(0.557281,0.694304,0.45539) material=G4_Ar - --> #secondaries=34 impactParameter[fm]=2.98272 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 890 projectile=anti_xi_b- Ekin[MeV]=13928.7 direction=(0.617666,0.485615,0.618601) material=G4_Al - --> #secondaries=9 impactParameter[fm]=2.02944 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 891 projectile=pi+ Ekin[MeV]=4036.04 direction=(0.600941,0.523861,0.603688) material=G4_Si + Collision 539 projectile=xi_c+ Ekin[MeV]=5550.63 direction=(0.591261,0.712398,0.37802) material=G4_C + --> #secondaries=4 impactParameter[fm]=2.70755 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 + Collision 540 projectile=xi_b- Ekin[MeV]=1392.5 direction=(0.881724,0.46772,0.0616526) material=G4_Si + --> #secondaries=13 impactParameter[fm]=2.52601 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=1 + Collision 541 projectile=anti_doublehyperH4 Ekin[MeV]=12978.1 direction=(0.738468,0.377498,0.558712) material=G4_W + --> #secondaries=73 impactParameter[fm]=4.12527 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=180 #NNcollisions=3 + Collision 542 projectile=pi- Ekin[MeV]=12042.8 direction=(0.539056,0.305482,0.78492) material=G4_Pb + --> #secondaries=54 impactParameter[fm]=6.79933 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=203 #NNcollisions=3 + Collision 543 projectile=anti_triton Ekin[MeV]=6250.32 direction=(0.649044,0.0596183,0.758411) material=G4_Fe + --> #secondaries=22 impactParameter[fm]=5.47245 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=56 #NNcollisions=2 + Collision 544 projectile=deuteron Ekin[MeV]=3434.01 direction=(0.342024,0.726912,0.595499) material=G4_Pb --> #secondaries=28 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 892 projectile=He3 Ekin[MeV]=5362.06 direction=(0.419428,0.838195,0.348582) material=G4_Fe - --> #secondaries=6 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 893 projectile=lambda Ekin[MeV]=20038.6 direction=(0.973639,0.224928,0.0378788) material=G4_C - --> #secondaries=15 impactParameter[fm]=2.09661 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 894 projectile=He3 Ekin[MeV]=10282.7 direction=(0.15035,0.260773,0.953621) material=G4_W - --> #secondaries=78 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 895 projectile=anti_deuteron Ekin[MeV]=25723 direction=(0.277022,0.934657,0.222881) material=G4_Be - --> #secondaries=11 impactParameter[fm]=3.82378 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 896 projectile=anti_B0 Ekin[MeV]=1133.9 direction=(0.326708,0.8543,0.404268) material=G4_Pb - --> #secondaries=22 impactParameter[fm]=1.44667 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=1 - Collision 897 projectile=triton Ekin[MeV]=4230.99 direction=(0.584077,0.367833,0.723569) material=G4_Ar - --> #secondaries=20 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 898 projectile=anti_omega_b- Ekin[MeV]=1123.79 direction=(0.310114,0.57448,0.757497) material=G4_Pb - --> #secondaries=8 impactParameter[fm]=7.14139 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=0 - Collision 899 projectile=triton Ekin[MeV]=3710.83 direction=(0.64345,0.0400198,0.764441) material=G4_Si - --> #secondaries=16 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 900 projectile=anti_omega_c0 Ekin[MeV]=4762.3 direction=(0.404609,0.907901,0.109578) material=G4_C - --> #secondaries=12 impactParameter[fm]=1.695 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=2 + Collision 545 projectile=doublehyperdoubleneutron Ekin[MeV]=12981.6 direction=(0.578884,0.618496,0.531371) material=G4_Ar + --> #secondaries=45 impactParameter[fm]=1.66705 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=31 #NNcollisions=5 + Collision 546 projectile=anti_doublehyperH4 Ekin[MeV]=29663.3 direction=(0.396045,0.865704,0.306111) material=G4_Ar + --> #secondaries=21 impactParameter[fm]=5.21607 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=39 #NNcollisions=2 + Collision 547 projectile=anti_omega- Ekin[MeV]=27788.9 direction=(0.219604,0.041672,0.974699) material=G4_Cu + --> #secondaries=21 impactParameter[fm]=1.67035 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=0 + Collision 548 projectile=hyperHe5 Ekin[MeV]=27209.6 direction=(0.163677,0.803581,0.572248) material=G4_Be + --> #secondaries=10 impactParameter[fm]=2.96434 #projectileSpectatorNucleons=4 #targetSpectatorNucleons=7 #NNcollisions=1 + Collision 549 projectile=hyperHe5 Ekin[MeV]=2541.28 direction=(0.55568,0.149841,0.817782) material=G4_H + --> #secondaries=3 impactParameter[fm]=3.40243 #projectileSpectatorNucleons=4 #targetSpectatorNucleons=0 #NNcollisions=0 + Collision 550 projectile=He3 Ekin[MeV]=9430.75 direction=(0.177428,0.980806,0.0808682) material=G4_C + --> #secondaries=18 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 551 projectile=doublehyperH4 Ekin[MeV]=2608.62 direction=(0.427638,0.115575,0.896531) material=G4_He + --> #secondaries=5 impactParameter[fm]=1.49048 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 552 projectile=hyperalpha Ekin[MeV]=25439.6 direction=(0.846422,0.178403,0.501739) material=G4_Al + --> #secondaries=36 impactParameter[fm]=1.97056 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=19 #NNcollisions=7 + Collision 553 projectile=D0 Ekin[MeV]=17850.2 direction=(0.512087,0.784945,0.348754) material=G4_Pb + --> #secondaries=48 impactParameter[fm]=4.54405 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=2 + Collision 554 projectile=neutron Ekin[MeV]=14502 direction=(0.348005,0.920366,0.178378) material=G4_Si + --> #secondaries=19 impactParameter[fm]=1.66438 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 555 projectile=triton Ekin[MeV]=14617.5 direction=(0.576441,0.207807,0.790273) material=G4_W + --> #secondaries=44 impactParameter[fm]=4.71965 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=177 #NNcollisions=1 + Collision 556 projectile=anti_alpha Ekin[MeV]=18170.5 direction=(0.904419,0.421322,0.0671861) material=G4_H + --> #secondaries=7 impactParameter[fm]=0.942504 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=1 #NNcollisions=1 + Collision 557 projectile=D+ Ekin[MeV]=27782.9 direction=(0.784974,0.108011,0.61004) material=G4_C + --> #secondaries=21 impactParameter[fm]=1.57458 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=10 #NNcollisions=2 + Collision 558 projectile=hyperalpha Ekin[MeV]=26631.8 direction=(0.529896,0.651594,0.542803) material=G4_C + --> #secondaries=17 impactParameter[fm]=3.92467 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=10 #NNcollisions=1 + Collision 559 projectile=anti_hypertriton Ekin[MeV]=20568.5 direction=(0.644898,0.660819,0.383958) material=G4_Al + --> #secondaries=20 impactParameter[fm]=3.24915 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=25 #NNcollisions=1 + Collision 560 projectile=anti_B0 Ekin[MeV]=3495.64 direction=(0.430773,0.870764,0.237075) material=G4_Fe + --> #secondaries=7 impactParameter[fm]=4.15883 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 561 projectile=anti_xi0 Ekin[MeV]=26733.1 direction=(0.130293,0.0819859,0.98808) material=G4_Al + --> #secondaries=23 impactParameter[fm]=3.64392 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 562 projectile=sigma+ Ekin[MeV]=14573.6 direction=(0.428026,0.0242324,0.903441) material=G4_Si + --> #secondaries=8 impactParameter[fm]=4.56294 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=0 + Collision 563 projectile=xi_b0 Ekin[MeV]=2790.72 direction=(0.991501,0.106162,0.0752062) material=G4_Al + --> #secondaries=7 impactParameter[fm]=3.25548 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=0 + Collision 564 projectile=He3 Ekin[MeV]=22270.6 direction=(0.601077,0.282181,0.747717) material=G4_Fe + --> #secondaries=62 impactParameter[fm]=0.83122 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=9 + Collision 565 projectile=anti_omega_c0 Ekin[MeV]=10845.6 direction=(0.238625,0.878269,0.414369) material=G4_C + --> #secondaries=13 impactParameter[fm]=1.16663 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=2 + Collision 566 projectile=anti_lambda_b Ekin[MeV]=7563.22 direction=(0.880226,0.373679,0.292518) material=G4_W + --> #secondaries=21 impactParameter[fm]=5.88039 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=1 + Collision 567 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=9842.65 direction=(0.535037,0.496896,0.683249) material=G4_He + --> #secondaries=14 impactParameter[fm]=1.42953 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=3 #NNcollisions=3 + Collision 568 projectile=anti_lambda Ekin[MeV]=7111.6 direction=(0.739185,0.640648,0.207785) material=G4_Si + --> #secondaries=17 impactParameter[fm]=1.33974 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 569 projectile=anti_B0 Ekin[MeV]=8565.29 direction=(0.482475,0.587238,0.6499) material=G4_Cu + --> #secondaries=7 impactParameter[fm]=5.74331 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=64 #NNcollisions=0 + Collision 570 projectile=lambda_b Ekin[MeV]=29733.3 direction=(0.950944,0.208506,0.22854) material=G4_He + --> #secondaries=10 impactParameter[fm]=2.1952 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 571 projectile=anti_xi_c0 Ekin[MeV]=16109.3 direction=(0.35062,0.890182,0.290933) material=G4_Be + --> #secondaries=10 impactParameter[fm]=2.18095 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 572 projectile=anti_xi_b- Ekin[MeV]=28613 direction=(0.539057,0.335278,0.772662) material=G4_W + --> #secondaries=79 impactParameter[fm]=4.39954 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=176 #NNcollisions=6 + Collision 573 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=10660.3 direction=(0.636273,0.573479,0.516021) material=G4_Fe + --> #secondaries=64 impactParameter[fm]=2.1528 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=49 #NNcollisions=7 + Collision 574 projectile=anti_Bs0 Ekin[MeV]=6863.17 direction=(0.663535,0.478359,0.575234) material=G4_H + --> #secondaries=3 impactParameter[fm]=0.846984 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 575 projectile=xi_b0 Ekin[MeV]=17853.2 direction=(0.890152,0.449422,0.0751632) material=G4_Cu + --> #secondaries=21 impactParameter[fm]=3.24224 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=60 #NNcollisions=1 + Collision 576 projectile=omega- Ekin[MeV]=29723.1 direction=(0.0707075,0.313902,0.946819) material=G4_Pb + --> #secondaries=67 impactParameter[fm]=4.00765 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=200 #NNcollisions=6 + Collision 577 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=28446.5 direction=(0.886793,0.358397,0.291805) material=G4_Al + --> #secondaries=13 impactParameter[fm]=3.34425 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 578 projectile=anti_Bs0 Ekin[MeV]=26147 direction=(0.811766,0.563223,0.154324) material=G4_Be + --> #secondaries=10 impactParameter[fm]=2.07026 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 579 projectile=anti_deuteron Ekin[MeV]=9492.2 direction=(0.0380839,0.854093,0.518723) material=G4_He + --> #secondaries=6 impactParameter[fm]=2.3826 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 580 projectile=xi0 Ekin[MeV]=8293.17 direction=(0.362585,0.292434,0.884881) material=G4_Cu + --> #secondaries=13 impactParameter[fm]=3.65837 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=0 + Collision 581 projectile=doublehyperH4 Ekin[MeV]=8926.86 direction=(0.814874,0.446269,0.369897) material=G4_He + --> #secondaries=7 impactParameter[fm]=2.81789 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 582 projectile=anti_sigma+ Ekin[MeV]=24463.9 direction=(0.892804,0.449604,0.0275135) material=G4_Ar + --> #secondaries=29 impactParameter[fm]=2.31393 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=2 + Collision 583 projectile=anti_Bs0 Ekin[MeV]=5982.81 direction=(0.522872,0.552641,0.648994) material=G4_Ar + --> #secondaries=11 impactParameter[fm]=4.38245 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=0 + Collision 584 projectile=D0 Ekin[MeV]=4906.35 direction=(0.297732,0.71144,0.63656) material=G4_He + --> #secondaries=5 impactParameter[fm]=1.34748 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 585 projectile=lambda Ekin[MeV]=27255.3 direction=(0.609349,0.792309,0.0306492) material=G4_H + --> #secondaries=6 impactParameter[fm]=0.851828 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 586 projectile=anti_sigma- Ekin[MeV]=9782.17 direction=(0.332401,0.913115,0.236072) material=G4_Ar + --> #secondaries=24 impactParameter[fm]=1.46558 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=37 #NNcollisions=2 + Collision 587 projectile=anti_hyperHe5 Ekin[MeV]=13876.7 direction=(0.333679,0.293234,0.89592) material=G4_C + --> #secondaries=22 impactParameter[fm]=1.60983 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=9 #NNcollisions=3 + Collision 588 projectile=anti_xi_b0 Ekin[MeV]=11899.1 direction=(0.0652336,0.461698,0.884635) material=G4_Al + --> #secondaries=8 impactParameter[fm]=2.80085 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 589 projectile=anti_xi_c0 Ekin[MeV]=19151.1 direction=(0.870381,0.0876869,0.484509) material=G4_C + --> #secondaries=14 impactParameter[fm]=1.7685 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 590 projectile=anti_hypertriton Ekin[MeV]=1930.33 direction=(0.798049,0.415655,0.436289) material=G4_Al + --> #secondaries=30 impactParameter[fm]=4.33186 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=23 #NNcollisions=2 + Collision 591 projectile=anti_proton Ekin[MeV]=13406.7 direction=(0.20448,0.893909,0.398891) material=G4_Si + --> #secondaries=18 impactParameter[fm]=3.26619 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 592 projectile=Bc- Ekin[MeV]=7102.26 direction=(0.973907,0.211207,0.0830521) material=G4_He + --> #secondaries=4 impactParameter[fm]=1.61903 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 593 projectile=anti_hyperalpha Ekin[MeV]=10769.6 direction=(0.380057,0.668641,0.639121) material=G4_Si + --> #secondaries=35 impactParameter[fm]=3.11812 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=3 + Collision 594 projectile=lambda_c+ Ekin[MeV]=23547.9 direction=(0.84697,0.424299,0.320331) material=G4_Be + --> #secondaries=11 impactParameter[fm]=0.950867 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=7 #NNcollisions=2 + Collision 595 projectile=B- Ekin[MeV]=13600.4 direction=(0.387712,0.888974,0.243732) material=G4_Al + --> #secondaries=6 impactParameter[fm]=1.86392 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 596 projectile=anti_hyperH4 Ekin[MeV]=2421.63 direction=(0.520189,0.828547,0.207154) material=G4_Be + --> #secondaries=11 impactParameter[fm]=5.15156 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 597 projectile=anti_doublehyperH4 Ekin[MeV]=22138.5 direction=(0.0222791,0.635378,0.77188) material=G4_Ar + --> #secondaries=54 impactParameter[fm]=0.603369 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=35 #NNcollisions=4 + Collision 598 projectile=anti_omega_b- Ekin[MeV]=12256.3 direction=(0.910717,0.14153,0.388025) material=G4_Be + --> #secondaries=7 impactParameter[fm]=3.87942 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 599 projectile=doublehyperH4 Ekin[MeV]=19514.9 direction=(0.640255,0.614626,0.460769) material=G4_Si + --> #secondaries=32 impactParameter[fm]=3.98226 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=22 #NNcollisions=3 + Collision 600 projectile=anti_D0 Ekin[MeV]=12472.3 direction=(0.061732,0.75943,0.647654) material=G4_Be + --> #secondaries=8 impactParameter[fm]=1.91675 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 List of produced secondaries: - j=0 anti_omega_c0 p=(1388.89,3243.23,506.8384468.62) MeV - j=1 neutron p=(447.768,-36.4445,-181.5511057.15) MeV - j=2 pi+ p=(172.37,385.874,-53.3542448.26) MeV - j=3 neutron p=(-318.242,1276.82,352.4241654.85) MeV - j=4 pi+ p=(737.76,608.016,103.635971.696) MeV - j=5 alpha p=(766.838,425.069,-583.0853873.25) MeV - j=6 neutron p=(153.154,51.3456,-21.2292953.586) MeV - j=7 neutron p=(103.492,115.239,-190.282971.072) MeV - j=8 neutron p=(243.867,-36.4519,331.841026.5) MeV - j=9 proton p=(86.0092,134.692,15.8659951.917) MeV - j=10 neutron p=(-251.394,171.039,20.8329987.76) MeV - j=11 proton p=(-717.121,-25.4388,4601267.62) MeV - Collision 901 projectile=triton Ekin[MeV]=8027.27 direction=(0.601631,0.680028,0.41905) material=G4_Be + j=0 anti_D0 p=(649.452,9158.3,7603.8312066.2) MeV + j=1 pi- p=(232.228,-18.03,92.0001286.703) MeV + j=2 pi0 p=(3.04002,788.581,1008.721287.48) MeV + j=3 pi+ p=(63.7801,-57.4657,151.704223.303) MeV + j=4 proton p=(-67.9617,976.118,214.8421372.57) MeV + j=5 neutron p=(96.7208,-7.4935,-72.6833947.353) MeV + j=6 triton p=(-165.517,-7.25747,26.94792813.93) MeV + j=7 alpha p=(65.8075,-37.0894,181.3573732.55) MeV + Collision 601 projectile=Ds- Ekin[MeV]=18327.2 direction=(0.15258,0.680337,0.716841) material=G4_Be + --> #secondaries=5 impactParameter[fm]=1.29023 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 602 projectile=Bc- Ekin[MeV]=2823.35 direction=(0.34652,0.86653,0.359234) material=G4_He + --> #secondaries=4 impactParameter[fm]=1.48643 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 603 projectile=kaon0S Ekin[MeV]=16446.9 direction=(0.883898,0.429046,0.186129) material=G4_W + --> #secondaries=31 impactParameter[fm]=4.94031 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=182 #NNcollisions=1 + Collision 604 projectile=omega- Ekin[MeV]=23960.3 direction=(0.585508,0.423416,0.691302) material=G4_Al + --> #secondaries=14 impactParameter[fm]=2.71569 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 605 projectile=kaon0S Ekin[MeV]=1713.29 direction=(0.271068,0.802988,0.530785) material=G4_Pb + --> #secondaries=4 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 606 projectile=xi0 Ekin[MeV]=22546.8 direction=(0.684588,0.196521,0.70194) material=G4_He + --> #secondaries=10 impactParameter[fm]=2.40234 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=2 + Collision 607 projectile=anti_doublehyperH4 Ekin[MeV]=5639.37 direction=(0.597405,0.109733,0.794397) material=G4_W + --> #secondaries=84 impactParameter[fm]=4.68925 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=182 #NNcollisions=4 + Collision 608 projectile=anti_lambda Ekin[MeV]=17846.5 direction=(0.76287,0.466492,0.447678) material=G4_Cu + --> #secondaries=33 impactParameter[fm]=4.24782 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=2 + Collision 609 projectile=neutron Ekin[MeV]=24822.6 direction=(0.866649,0.497378,0.0391854) material=G4_Si + --> #secondaries=41 impactParameter[fm]=1.26839 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=22 #NNcollisions=7 + Collision 610 projectile=anti_Bs0 Ekin[MeV]=11861.3 direction=(0.502735,0.282463,0.81699) material=G4_Ar + --> #secondaries=14 impactParameter[fm]=3.03064 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=1 + Collision 611 projectile=hyperHe5 Ekin[MeV]=11174 direction=(0.201636,0.723259,0.660484) material=G4_Ar + --> #secondaries=19 impactParameter[fm]=6.66652 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=38 #NNcollisions=1 + Collision 612 projectile=omega_b- Ekin[MeV]=1154.61 direction=(0.581366,0.698937,0.416534) material=G4_H + --> #secondaries=2 impactParameter[fm]=1.1262 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 613 projectile=hypertriton Ekin[MeV]=12403.5 direction=(0.7189,0.556821,0.416093) material=G4_W + --> #secondaries=73 impactParameter[fm]=5.94343 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=171 #NNcollisions=6 + Collision 614 projectile=lambda_c+ Ekin[MeV]=9721.88 direction=(0.129394,0.601058,0.788661) material=G4_Ar + --> #secondaries=22 impactParameter[fm]=3.96784 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=37 #NNcollisions=0 + Collision 615 projectile=sigma- Ekin[MeV]=5963.86 direction=(0.511216,0.27163,0.815399) material=G4_C + --> #secondaries=8 impactParameter[fm]=1.43784 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=1 + Collision 616 projectile=lambda_c+ Ekin[MeV]=11453.7 direction=(0.75499,0.379078,0.53506) material=G4_He + --> #secondaries=4 impactParameter[fm]=2.67025 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 617 projectile=anti_doublehyperH4 Ekin[MeV]=19588.4 direction=(0.39867,0.792117,0.462183) material=G4_H + --> #secondaries=11 impactParameter[fm]=2.95119 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 618 projectile=kaon- Ekin[MeV]=29138.6 direction=(0.145411,0.126026,0.981312) material=G4_W + --> #secondaries=15 impactParameter[fm]=7.47534 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=183 #NNcollisions=0 + Collision 619 projectile=sigma+ Ekin[MeV]=4034.45 direction=(0.250661,0.364607,0.896789) material=G4_Ar --> #secondaries=8 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 902 projectile=anti_lambda_c+ Ekin[MeV]=13471.5 direction=(0.637948,0.653477,0.407419) material=G4_W - --> #secondaries=23 impactParameter[fm]=9.3209 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=1 - Collision 903 projectile=anti_sigma+ Ekin[MeV]=4205.28 direction=(0.682385,0.522017,0.511712) material=G4_C - --> #secondaries=10 impactParameter[fm]=1.86977 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=1 - Collision 904 projectile=alpha Ekin[MeV]=25938.4 direction=(0.900054,0.1832,0.395399) material=G4_Si - --> #secondaries=16 impactParameter[fm]=3.62407 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=27 #NNcollisions=3 - Collision 905 projectile=Bs0 Ekin[MeV]=13779.7 direction=(0.795517,0.144965,0.588335) material=G4_H - --> #secondaries=6 impactParameter[fm]=1.02183 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 906 projectile=anti_xi_b- Ekin[MeV]=22446.6 direction=(0.939964,0.320006,0.118591) material=G4_Si - --> #secondaries=26 impactParameter[fm]=1.39636 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=2 - Collision 907 projectile=D0 Ekin[MeV]=1787.38 direction=(0.461495,0.717843,0.521271) material=G4_Si - --> #secondaries=8 impactParameter[fm]=3.16506 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=0 - Collision 908 projectile=omega_c0 Ekin[MeV]=6536.32 direction=(0.60444,0.255494,0.754569) material=G4_Al - --> #secondaries=6 impactParameter[fm]=3.26189 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 909 projectile=anti_deuteron Ekin[MeV]=22437.7 direction=(0.501336,0.850374,0.159769) material=G4_Ar - --> #secondaries=35 impactParameter[fm]=1.61403 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=3 - Collision 910 projectile=anti_triton Ekin[MeV]=15240 direction=(0.590328,0.586912,0.554119) material=G4_W - --> #secondaries=55 impactParameter[fm]=5.81301 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=185 #NNcollisions=2 - Collision 911 projectile=xi_b- Ekin[MeV]=5953.13 direction=(0.376059,0.850104,0.36865) material=G4_Be - --> #secondaries=9 impactParameter[fm]=0.356609 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=6 #NNcollisions=2 - Collision 912 projectile=anti_triton Ekin[MeV]=10567.7 direction=(0.599953,0.568209,0.5632) material=G4_Si - --> #secondaries=32 impactParameter[fm]=3.73748 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=3 - Collision 913 projectile=anti_xi0 Ekin[MeV]=19640.6 direction=(0.513542,0.766515,0.385654) material=G4_C - --> #secondaries=18 impactParameter[fm]=1.68527 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 914 projectile=sigma- Ekin[MeV]=5956.18 direction=(0.2634,0.672391,0.691745) material=G4_W - --> #secondaries=38 impactParameter[fm]=5.53512 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=184 #NNcollisions=1 - Collision 915 projectile=xi_c+ Ekin[MeV]=18089.1 direction=(0.258323,0.330743,0.907678) material=G4_He - --> #secondaries=5 impactParameter[fm]=1.55977 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 916 projectile=anti_sigma- Ekin[MeV]=8548.6 direction=(0.892308,0.205203,0.402093) material=G4_He - --> #secondaries=5 impactParameter[fm]=1.27848 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 917 projectile=Bs0 Ekin[MeV]=13068.9 direction=(0.369058,0.581853,0.724737) material=G4_He - --> #secondaries=4 impactParameter[fm]=2.09284 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 918 projectile=Bc+ Ekin[MeV]=29693.4 direction=(0.165864,0.110663,0.97992) material=G4_He - --> #secondaries=5 impactParameter[fm]=1.1541 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 919 projectile=D+ Ekin[MeV]=3850.41 direction=(0.305555,0.199305,0.931082) material=G4_Pb - --> #secondaries=41 impactParameter[fm]=1.49079 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=203 #NNcollisions=1 - Collision 920 projectile=anti_omega_c0 Ekin[MeV]=15310 direction=(0.442606,0.737253,0.510448) material=G4_Fe - --> #secondaries=21 impactParameter[fm]=3.23272 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 - Collision 921 projectile=anti_xi_b0 Ekin[MeV]=2191.68 direction=(0.927368,0.353269,0.123245) material=G4_Cu - --> #secondaries=15 impactParameter[fm]=3.53709 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=60 #NNcollisions=0 - Collision 922 projectile=xi_b- Ekin[MeV]=5935.41 direction=(0.845966,0.341189,0.409794) material=G4_C - --> #secondaries=9 impactParameter[fm]=0.6363 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=1 - Collision 923 projectile=anti_omega- Ekin[MeV]=21835.7 direction=(0.733042,0.153999,0.662521) material=G4_Si - --> #secondaries=21 impactParameter[fm]=1.62702 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=2 - Collision 924 projectile=alpha Ekin[MeV]=25119.5 direction=(0.966788,0.192567,0.168047) material=G4_H - --> #secondaries=6 impactParameter[fm]=2.11476 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 925 projectile=sigma- Ekin[MeV]=14736.9 direction=(0.614098,0.761107,0.208804) material=G4_H - --> #secondaries=4 impactParameter[fm]=1.08849 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 926 projectile=proton Ekin[MeV]=19160.6 direction=(0.851072,0.460824,0.25163) material=G4_Si - --> #secondaries=33 impactParameter[fm]=0.530615 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=4 - Collision 927 projectile=deuteron Ekin[MeV]=23037.5 direction=(0.257692,0.656195,0.709228) material=G4_H - --> #secondaries=7 impactParameter[fm]=1.82083 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=2 - Collision 928 projectile=kaon- Ekin[MeV]=17211.4 direction=(0.530787,0.577089,0.620672) material=G4_C - --> #secondaries=13 impactParameter[fm]=3.08979 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 - Collision 929 projectile=Ds- Ekin[MeV]=6304.64 direction=(0.0160699,0.740027,0.672385) material=G4_Ar - --> #secondaries=12 impactParameter[fm]=1.12744 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=0 - Collision 930 projectile=sigma- Ekin[MeV]=16784.8 direction=(0.884198,0.38655,0.262244) material=G4_Al - --> #secondaries=13 impactParameter[fm]=3.12675 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 931 projectile=xi0 Ekin[MeV]=19742.9 direction=(0.00522714,0.790562,0.612359) material=G4_He - --> #secondaries=4 impactParameter[fm]=2.35677 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 932 projectile=anti_B0 Ekin[MeV]=22766.6 direction=(0.710589,0.136385,0.690263) material=G4_Pb - --> #secondaries=28 impactParameter[fm]=7.76713 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=1 - Collision 933 projectile=anti_deuteron Ekin[MeV]=12636.3 direction=(0.748011,0.525553,0.405308) material=G4_He - --> #secondaries=9 impactParameter[fm]=0.486668 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=3 #NNcollisions=2 - Collision 934 projectile=D0 Ekin[MeV]=15890.1 direction=(0.466945,0.433581,0.770695) material=G4_Al - --> #secondaries=14 impactParameter[fm]=3.97825 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 935 projectile=anti_sigma- Ekin[MeV]=4170.74 direction=(0.167551,0.0289783,0.985437) material=G4_H - --> #secondaries=4 impactParameter[fm]=0.727454 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 936 projectile=D+ Ekin[MeV]=25115.2 direction=(0.918028,0.0391705,0.394575) material=G4_Si - --> #secondaries=15 impactParameter[fm]=2.14801 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 937 projectile=anti_He3 Ekin[MeV]=2455.54 direction=(0.653912,0.143686,0.742801) material=G4_H - --> #secondaries=7 impactParameter[fm]=1.68089 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=1 #NNcollisions=1 - Collision 938 projectile=anti_B0 Ekin[MeV]=2300.77 direction=(0.233878,0.578066,0.781755) material=G4_C - --> #secondaries=7 impactParameter[fm]=1.90001 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=10 #NNcollisions=1 - Collision 939 projectile=Bc- Ekin[MeV]=14879.4 direction=(0.673129,0.657816,0.337898) material=G4_Cu - --> #secondaries=13 impactParameter[fm]=3.89785 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 940 projectile=anti_lambda_c+ Ekin[MeV]=26454.2 direction=(0.601885,0.260331,0.754958) material=G4_Cu - --> #secondaries=61 impactParameter[fm]=1.66104 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=60 #NNcollisions=3 - Collision 941 projectile=lambda Ekin[MeV]=6662.69 direction=(0.762097,0.646794,0.0294266) material=G4_He - --> #secondaries=8 impactParameter[fm]=0.440271 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 942 projectile=lambda_b Ekin[MeV]=18508.1 direction=(0.209911,0.712033,0.670034) material=G4_Be - --> #secondaries=14 impactParameter[fm]=1.12283 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=6 #NNcollisions=3 - Collision 943 projectile=anti_sigma+ Ekin[MeV]=29247.4 direction=(0.513184,0.543113,0.664583) material=G4_Al - --> #secondaries=31 impactParameter[fm]=2.17481 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 944 projectile=Bc+ Ekin[MeV]=18495 direction=(0.642114,0.68145,0.351162) material=G4_Cu - --> #secondaries=6 impactParameter[fm]=5.444 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 945 projectile=B- Ekin[MeV]=5497.48 direction=(0.863283,0.482172,0.149173) material=G4_Si - --> #secondaries=16 impactParameter[fm]=2.18372 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 - Collision 946 projectile=sigma+ Ekin[MeV]=29276.2 direction=(0.288546,0.421031,0.859927) material=G4_He - --> #secondaries=11 impactParameter[fm]=1.1746 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=1 - Collision 947 projectile=anti_xi_b- Ekin[MeV]=8421.39 direction=(0.45935,0.201852,0.865016) material=G4_H - --> #secondaries=4 impactParameter[fm]=0.7675 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 948 projectile=lambda_c+ Ekin[MeV]=20842.6 direction=(0.724663,0.0997916,0.68184) material=G4_Al - --> #secondaries=16 impactParameter[fm]=4.93071 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 949 projectile=xi_b- Ekin[MeV]=15621.9 direction=(0.0286759,0.568797,0.821978) material=G4_Cu - --> #secondaries=28 impactParameter[fm]=2.71825 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=60 #NNcollisions=3 - Collision 950 projectile=anti_xi_b- Ekin[MeV]=16823.3 direction=(0.52683,0.208308,0.824049) material=G4_Be - --> #secondaries=9 impactParameter[fm]=1.10911 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 - Collision 951 projectile=xi- Ekin[MeV]=19805.6 direction=(0.787301,0.599109,0.145693) material=G4_Ar - --> #secondaries=24 impactParameter[fm]=3.5844 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=2 - Collision 952 projectile=anti_He3 Ekin[MeV]=9638.35 direction=(0.785948,0.617257,0.0357688) material=G4_Al - --> #secondaries=21 impactParameter[fm]=3.36839 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=27 #NNcollisions=2 - Collision 953 projectile=deuteron Ekin[MeV]=4508.58 direction=(0.578798,0.767923,0.274386) material=G4_Fe + Collision 620 projectile=kaon0L Ekin[MeV]=11468.9 direction=(0.756214,0.523239,0.392889) material=G4_Fe + --> #secondaries=36 impactParameter[fm]=3.02547 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=52 #NNcollisions=4 + Collision 621 projectile=xi0 Ekin[MeV]=23514.3 direction=(0.146921,0.463687,0.873733) material=G4_Cu + --> #secondaries=34 impactParameter[fm]=2.46965 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=1 + Collision 622 projectile=kaon- Ekin[MeV]=25244.2 direction=(0.351487,0.898105,0.264318) material=G4_He + --> #secondaries=13 impactParameter[fm]=1.10223 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 623 projectile=B0 Ekin[MeV]=11341.5 direction=(0.319039,0.524456,0.789404) material=G4_Al + --> #secondaries=17 impactParameter[fm]=1.74541 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=2 + Collision 624 projectile=anti_xi- Ekin[MeV]=28926.2 direction=(0.455738,0.336031,0.824249) material=G4_Al + --> #secondaries=19 impactParameter[fm]=3.27524 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=0 + Collision 625 projectile=Ds+ Ekin[MeV]=4223.75 direction=(0.860127,0.371902,0.3491) material=G4_Cu + --> #secondaries=9 impactParameter[fm]=2.56964 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=64 #NNcollisions=0 + Collision 626 projectile=xi_c+ Ekin[MeV]=16560.9 direction=(0.820917,0.570577,0.0231753) material=G4_C + --> #secondaries=12 impactParameter[fm]=1.01448 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=3 + Collision 627 projectile=Bc+ Ekin[MeV]=21138.1 direction=(0.341075,0.701273,0.626007) material=G4_He + --> #secondaries=6 impactParameter[fm]=0.687285 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 628 projectile=kaon+ Ekin[MeV]=3729.96 direction=(0.55631,0.829575,0.0482099) material=G4_Al + --> #secondaries=9 impactParameter[fm]=3.28828 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 629 projectile=pi+ Ekin[MeV]=1580.44 direction=(0.367716,0.618902,0.694079) material=G4_W + --> #secondaries=40 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 630 projectile=Ds+ Ekin[MeV]=10987.5 direction=(0.733015,0.496959,0.464457) material=G4_Si + --> #secondaries=11 impactParameter[fm]=2.71617 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 631 projectile=hypertriton Ekin[MeV]=12111.9 direction=(0.59628,0.794428,0.115475) material=G4_Al + --> #secondaries=23 impactParameter[fm]=1.93752 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=23 #NNcollisions=2 + Collision 632 projectile=xi_c0 Ekin[MeV]=8044.82 direction=(0.466438,0.658319,0.590805) material=G4_He + --> #secondaries=6 impactParameter[fm]=2.08791 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 633 projectile=B0 Ekin[MeV]=8715.31 direction=(0.536147,0.834136,0.129475) material=G4_W + --> #secondaries=16 impactParameter[fm]=4.82403 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=182 #NNcollisions=1 + Collision 634 projectile=anti_doublehyperH4 Ekin[MeV]=19261.9 direction=(0.724966,0.100374,0.681432) material=G4_C + --> #secondaries=15 impactParameter[fm]=1.79555 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=12 #NNcollisions=1 + Collision 635 projectile=hypertriton Ekin[MeV]=2930.89 direction=(0.929679,0.362044,0.0679847) material=G4_Cu + --> #secondaries=22 impactParameter[fm]=1.7549 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=60 #NNcollisions=1 + Collision 636 projectile=anti_triton Ekin[MeV]=14633.7 direction=(0.589019,0.426885,0.686167) material=G4_Pb + --> #secondaries=31 impactParameter[fm]=8.26438 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=206 #NNcollisions=1 + Collision 637 projectile=triton Ekin[MeV]=17582.8 direction=(0.595335,0.578073,0.558039) material=G4_Al + --> #secondaries=14 impactParameter[fm]=3.12942 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 638 projectile=anti_hyperHe5 Ekin[MeV]=19161.6 direction=(0.464459,0.7574,0.458936) material=G4_Ar + --> #secondaries=57 impactParameter[fm]=1.44747 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=37 #NNcollisions=5 + Collision 639 projectile=deuteron Ekin[MeV]=18304 direction=(0.770451,0.38721,0.506432) material=G4_Pb + --> #secondaries=74 impactParameter[fm]=6.1552 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=202 #NNcollisions=8 + Collision 640 projectile=omega- Ekin[MeV]=8868.15 direction=(0.779077,0.479515,0.403861) material=G4_Be + --> #secondaries=9 impactParameter[fm]=0.292397 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=6 #NNcollisions=1 + Collision 641 projectile=lambda Ekin[MeV]=16781.8 direction=(0.907076,0.321605,0.27163) material=G4_Pb + --> #secondaries=51 impactParameter[fm]=6.68264 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=204 #NNcollisions=3 + Collision 642 projectile=anti_lambda_b Ekin[MeV]=12050.5 direction=(0.0861359,0.712156,0.696717) material=G4_Al + --> #secondaries=14 impactParameter[fm]=3.72618 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=1 + Collision 643 projectile=xi0 Ekin[MeV]=21139.7 direction=(0.286029,0.591492,0.753873) material=G4_He + --> #secondaries=4 impactParameter[fm]=0.886916 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 644 projectile=xi0 Ekin[MeV]=13858.8 direction=(0.331685,0.557479,0.761053) material=G4_Al + --> #secondaries=20 impactParameter[fm]=4.7743 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 645 projectile=neutron Ekin[MeV]=20523.4 direction=(0.84457,0.347356,0.407487) material=G4_Al + --> #secondaries=22 impactParameter[fm]=3.33413 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=3 + Collision 646 projectile=Bc+ Ekin[MeV]=15932.6 direction=(0.778404,0.290252,0.556634) material=G4_Al + --> #secondaries=5 impactParameter[fm]=1.57226 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 647 projectile=hypertriton Ekin[MeV]=25527.9 direction=(0.615913,0.393566,0.682464) material=G4_Be + --> #secondaries=13 impactParameter[fm]=2.5731 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=7 #NNcollisions=2 + Collision 648 projectile=hyperH4 Ekin[MeV]=19253.9 direction=(0.66403,0.489431,0.565263) material=G4_Be + --> #secondaries=10 impactParameter[fm]=5.32865 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 649 projectile=kaon0L Ekin[MeV]=13868.1 direction=(0.250512,0.964677,0.0815012) material=G4_Si + --> #secondaries=14 impactParameter[fm]=1.83862 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 650 projectile=sigma+ Ekin[MeV]=10397.4 direction=(0.644314,0.668166,0.37204) material=G4_Fe + --> #secondaries=19 impactParameter[fm]=5.49541 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 651 projectile=lambda Ekin[MeV]=11972 direction=(0.349338,0.253149,0.902152) material=G4_H + --> #secondaries=4 impactParameter[fm]=1.90191 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 652 projectile=anti_lambda_c+ Ekin[MeV]=12453.6 direction=(0.0237228,0.659768,0.751095) material=G4_Cu + --> #secondaries=15 impactParameter[fm]=4.92404 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 653 projectile=Bc+ Ekin[MeV]=8831.36 direction=(0.718578,0.41598,0.557321) material=G4_Pb + --> #secondaries=44 impactParameter[fm]=3.81849 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=3 + Collision 654 projectile=D+ Ekin[MeV]=5975.34 direction=(0.780017,0.339879,0.52541) material=G4_Si + --> #secondaries=13 impactParameter[fm]=3.86716 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 655 projectile=anti_xi_c+ Ekin[MeV]=13463.5 direction=(0.489398,0.662964,0.566541) material=G4_He + --> #secondaries=7 impactParameter[fm]=1.16521 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=2 + Collision 656 projectile=pi+ Ekin[MeV]=28511.5 direction=(0.347678,0.847244,0.401619) material=G4_Be + --> #secondaries=11 impactParameter[fm]=2.4415 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 657 projectile=anti_hyperHe5 Ekin[MeV]=23709.6 direction=(0.660938,0.525038,0.536186) material=G4_Si + --> #secondaries=25 impactParameter[fm]=3.67014 #projectileSpectatorNucleons=4 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 658 projectile=xi_c0 Ekin[MeV]=23339.4 direction=(0.508244,0.082397,0.857262) material=G4_Be + --> #secondaries=6 impactParameter[fm]=1.25025 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=7 #NNcollisions=0 + Collision 659 projectile=anti_xi_b0 Ekin[MeV]=7467.79 direction=(0.65287,0.41192,0.635674) material=G4_C + --> #secondaries=7 impactParameter[fm]=0.73976 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 + Collision 660 projectile=doublehyperdoubleneutron Ekin[MeV]=6437.91 direction=(0.184582,0.646007,0.740678) material=G4_Ar + --> #secondaries=38 impactParameter[fm]=0.696733 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=0 + Collision 661 projectile=anti_He3 Ekin[MeV]=12883.5 direction=(0.186631,0.0119164,0.982358) material=G4_Fe + --> #secondaries=17 impactParameter[fm]=5.79812 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 662 projectile=B0 Ekin[MeV]=16133.4 direction=(0.0721038,0.699317,0.711166) material=G4_H + --> #secondaries=3 impactParameter[fm]=0.312778 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 663 projectile=pi- Ekin[MeV]=2795.15 direction=(0.582687,0.712078,0.39169) material=G4_Ar + --> #secondaries=11 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 664 projectile=alpha Ekin[MeV]=3553.23 direction=(0.511241,0.58008,0.634145) material=G4_W + --> #secondaries=32 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 665 projectile=doublehyperdoubleneutron Ekin[MeV]=22911 direction=(0.931292,0.267388,0.247383) material=G4_Al + --> #secondaries=32 impactParameter[fm]=3.41983 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=21 #NNcollisions=6 + Collision 666 projectile=omega_c0 Ekin[MeV]=13738.7 direction=(0.529949,0.387353,0.754395) material=G4_Fe + --> #secondaries=10 impactParameter[fm]=4.33569 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=0 + Collision 667 projectile=deuteron Ekin[MeV]=16823.3 direction=(0.143359,0.13805,0.979995) material=G4_Be + --> #secondaries=9 impactParameter[fm]=3.09685 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 668 projectile=triton Ekin[MeV]=17969.7 direction=(0.344067,0.916598,0.20363) material=G4_W + --> #secondaries=74 impactParameter[fm]=5.64917 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=176 #NNcollisions=4 + Collision 669 projectile=kaon0S Ekin[MeV]=28506.8 direction=(0.754036,0.641687,0.140242) material=G4_Si + --> #secondaries=28 impactParameter[fm]=3.05961 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 670 projectile=anti_proton Ekin[MeV]=14277.5 direction=(0.924982,0.0118058,0.379827) material=G4_H + --> #secondaries=7 impactParameter[fm]=0.785786 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 671 projectile=deuteron Ekin[MeV]=18767.5 direction=(0.670979,0.358107,0.649266) material=G4_H + --> #secondaries=9 impactParameter[fm]=1.0191 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 672 projectile=kaon+ Ekin[MeV]=13726.8 direction=(0.595433,0.602579,0.531373) material=G4_Fe + --> #secondaries=27 impactParameter[fm]=0.721388 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=53 #NNcollisions=2 + Collision 673 projectile=xi_b- Ekin[MeV]=7476.28 direction=(0.0347947,0.858975,0.510833) material=G4_Ar + --> #secondaries=20 impactParameter[fm]=0.146434 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=37 #NNcollisions=1 + Collision 674 projectile=hyperHe5 Ekin[MeV]=1490.18 direction=(0.481203,0.802591,0.352549) material=G4_Si + --> #secondaries=17 impactParameter[fm]=1.03026 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=25 #NNcollisions=0 + Collision 675 projectile=anti_neutron Ekin[MeV]=27864.8 direction=(0.00933454,0.945128,0.326566) material=G4_He + --> #secondaries=4 impactParameter[fm]=1.40881 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 676 projectile=deuteron Ekin[MeV]=9358.24 direction=(0.0756969,0.997109,0.00658289) material=G4_Si + --> #secondaries=19 impactParameter[fm]=2.04018 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 677 projectile=anti_Bs0 Ekin[MeV]=28186.7 direction=(0.732966,0.351208,0.582593) material=G4_He + --> #secondaries=8 impactParameter[fm]=0.955776 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 678 projectile=anti_sigma+ Ekin[MeV]=25301.7 direction=(0.404073,0.792989,0.455953) material=G4_C + --> #secondaries=26 impactParameter[fm]=1.58191 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=3 + Collision 679 projectile=xi_c0 Ekin[MeV]=14128.5 direction=(0.967733,0.112651,0.225393) material=G4_C + --> #secondaries=14 impactParameter[fm]=2.31247 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=2 + Collision 680 projectile=omega- Ekin[MeV]=22542.7 direction=(0.590564,0.788628,0.171171) material=G4_Si + --> #secondaries=13 impactParameter[fm]=3.91425 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 681 projectile=anti_lambda_c+ Ekin[MeV]=19438.2 direction=(0.753135,0.655426,0.0566138) material=G4_Cu + --> #secondaries=31 impactParameter[fm]=3.89716 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=64 #NNcollisions=1 + Collision 682 projectile=He3 Ekin[MeV]=18560.1 direction=(0.361883,0.441075,0.821275) material=G4_Fe + --> #secondaries=28 impactParameter[fm]=5.689 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=55 #NNcollisions=0 + Collision 683 projectile=B+ Ekin[MeV]=27598.3 direction=(0.975494,0.0973107,0.197337) material=G4_H + --> #secondaries=5 impactParameter[fm]=2.03082 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 684 projectile=anti_neutron Ekin[MeV]=26591.5 direction=(0.470873,0.542288,0.695846) material=G4_Al + --> #secondaries=18 impactParameter[fm]=3.09683 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 685 projectile=anti_Bs0 Ekin[MeV]=25076.5 direction=(0.55006,0.110304,0.827809) material=G4_Si + --> #secondaries=12 impactParameter[fm]=2.17862 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 686 projectile=D+ Ekin[MeV]=16199.5 direction=(0.803247,0.521635,0.287561) material=G4_Pb + --> #secondaries=19 impactParameter[fm]=6.58776 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=1 + Collision 687 projectile=anti_doublehyperH4 Ekin[MeV]=16243.1 direction=(0.0591331,0.914217,0.400887) material=G4_Al + --> #secondaries=11 impactParameter[fm]=4.08512 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=26 #NNcollisions=0 + Collision 688 projectile=kaon+ Ekin[MeV]=2567.19 direction=(0.747447,0.65903,0.0836779) material=G4_Pb + --> #secondaries=39 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 689 projectile=anti_xi_b- Ekin[MeV]=16499.4 direction=(0.804278,0.584698,0.106135) material=G4_Pb + --> #secondaries=31 impactParameter[fm]=5.2332 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=205 #NNcollisions=2 + Collision 690 projectile=anti_hyperH4 Ekin[MeV]=15227.2 direction=(0.704326,0.000116154,0.709877) material=G4_Pb + --> #secondaries=81 impactParameter[fm]=3.93588 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=205 #NNcollisions=6 + Collision 691 projectile=xi_b- Ekin[MeV]=6694.91 direction=(0.616365,0.754094,0.226796) material=G4_Ar + --> #secondaries=8 impactParameter[fm]=1.63261 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=0 + Collision 692 projectile=B- Ekin[MeV]=6331.98 direction=(0.897973,0.408981,0.162419) material=G4_Ar + --> #secondaries=14 impactParameter[fm]=3.70687 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=0 + Collision 693 projectile=neutron Ekin[MeV]=18312.6 direction=(0.513551,0.581646,0.630835) material=G4_Fe + --> #secondaries=21 impactParameter[fm]=4.82807 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=1 + Collision 694 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=12959.2 direction=(0.776254,0.622191,0.101528) material=G4_Pb + --> #secondaries=71 impactParameter[fm]=3.69535 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=203 #NNcollisions=4 + Collision 695 projectile=anti_lambda_b Ekin[MeV]=8052.8 direction=(0.625255,0.317861,0.712756) material=G4_H + --> #secondaries=4 impactParameter[fm]=0.719253 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 696 projectile=D+ Ekin[MeV]=3204.22 direction=(0.84063,0.375291,0.390509) material=G4_Al + --> #secondaries=11 impactParameter[fm]=1.4027 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 697 projectile=B+ Ekin[MeV]=13935.3 direction=(0.148133,0.980613,0.128277) material=G4_Fe + --> #secondaries=8 impactParameter[fm]=4.01995 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 698 projectile=anti_lambda Ekin[MeV]=11845.4 direction=(0.661805,0.687186,0.29965) material=G4_Be + --> #secondaries=7 impactParameter[fm]=1.08113 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=1 + Collision 699 projectile=kaon0L Ekin[MeV]=26738.8 direction=(0.708156,0.67977,0.190861) material=G4_Pb + --> #secondaries=57 impactParameter[fm]=5.5191 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=204 #NNcollisions=3 + Collision 700 projectile=anti_He3 Ekin[MeV]=5748.83 direction=(0.267195,0.819066,0.507679) material=G4_Al + --> #secondaries=38 impactParameter[fm]=3.36938 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=3 + List of produced secondaries: + j=0 neutron p=(207.862,114.51,169.614983.804) MeV + j=1 pi0 p=(91.4496,13.822,70.2444178.065) MeV + j=2 pi0 p=(-54.6994,394.156,35.9302421.735) MeV + j=3 pi- p=(208.599,431.007,441.671666.208) MeV + j=4 pi+ p=(5.18523,105.096,167.375242.004) MeV + j=5 pi+ p=(-80.069,1114.14,450.141212.37) MeV + j=6 pi- p=(219.711,268.394,199.546423.8) MeV + j=7 pi- p=(-19.5757,-27.6232,-52.8389153.029) MeV + j=8 pi- p=(57.7778,-98.9759,231.025293.235) MeV + j=9 pi0 p=(10.4169,64.6243,-8.85463150.273) MeV + j=10 neutron p=(109.436,286.635,-136.722997.803) MeV + j=11 neutron p=(90.7782,265.512,147.723991.636) MeV + j=12 neutron p=(25.9206,316.187,28.9388992.102) MeV + j=13 proton p=(223.986,134.066,-124.192981.795) MeV + j=14 neutron p=(-108.488,-137.646,59.5004957.622) MeV + j=15 neutron p=(86.0614,71.7531,98.8563951.373) MeV + j=16 proton p=(228.911,584.242,545.2281253.54) MeV + j=17 pi+ p=(159.225,119.193,52.201248.524) MeV + j=18 pi0 p=(37.3086,174.782,237.745326.623) MeV + j=19 pi- p=(91.1339,434.778,-41.143467.45) MeV + j=20 pi+ p=(-142.057,40.2624,45.3026208.167) MeV + j=21 pi0 p=(198.797,278.637,8.35463368.032) MeV + j=22 anti_neutron p=(153.852,856.749,926.9821581.07) MeV + j=23 pi0 p=(639.919,154.401,19.1339672.251) MeV + j=24 pi+ p=(106.061,277.278,499.004597.174) MeV + j=25 pi0 p=(-182.488,277.497,-306.663471.771) MeV + j=26 pi- p=(322.631,-43.9891,362.046506.54) MeV + j=27 He3 p=(-72.5206,-450.158,301.1432861.06) MeV + j=28 proton p=(-26.8214,-245.97,115.583977.208) MeV + j=29 neutron p=(-151.475,169.877,-260.2421001.16) MeV + j=30 He3 p=(-162.357,323.641,-164.72836.42) MeV + j=31 neutron p=(133.53,-98.1204,77.4161957.201) MeV + j=32 deuteron p=(-267.443,444.588,-232.5261959.89) MeV + j=33 proton p=(-66.2726,-14.7449,-12.169940.804) MeV + j=34 deuteron p=(94.2025,-80.0845,423.2021926.74) MeV + j=35 proton p=(-27.9351,-144.935,-138.181959.81) MeV + j=36 neutron p=(76.6527,350.93,-164.8131019.3) MeV + j=37 proton p=(-57.3795,-103.736,32.8748946.303) MeV + Collision 701 projectile=anti_xi_c+ Ekin[MeV]=5688.94 direction=(0.745023,0.47851,0.464725) material=G4_He + --> #secondaries=6 impactParameter[fm]=1.71155 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=1 + Collision 702 projectile=omega_c0 Ekin[MeV]=1061.96 direction=(0.0708981,0.483288,0.872586) material=G4_W + --> #secondaries=13 impactParameter[fm]=4.70432 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=182 #NNcollisions=1 + Collision 703 projectile=pi- Ekin[MeV]=2373.7 direction=(0.201929,0.83133,0.517798) material=G4_Cu + --> #secondaries=10 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 704 projectile=anti_hyperalpha Ekin[MeV]=10532.2 direction=(0.616384,0.492135,0.614714) material=G4_H + --> #secondaries=7 impactParameter[fm]=0.670094 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=1 #NNcollisions=2 + Collision 705 projectile=B0 Ekin[MeV]=21489 direction=(0.665685,0.436499,0.605253) material=G4_Si + --> #secondaries=18 impactParameter[fm]=3.23836 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=3 + Collision 706 projectile=anti_D0 Ekin[MeV]=8980.46 direction=(0.345819,0.732647,0.586206) material=G4_Ar + --> #secondaries=11 impactParameter[fm]=4.40114 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 707 projectile=anti_alpha Ekin[MeV]=14298.4 direction=(0.0252113,0.586258,0.809732) material=G4_Be + --> #secondaries=17 impactParameter[fm]=0.782939 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=4 + Collision 708 projectile=deuteron Ekin[MeV]=16472.8 direction=(0.500683,0.589209,0.634152) material=G4_Al + --> #secondaries=15 impactParameter[fm]=3.15174 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 709 projectile=B0 Ekin[MeV]=3923.25 direction=(0.119202,0.666733,0.735702) material=G4_Ar + --> #secondaries=20 impactParameter[fm]=1.54374 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=35 #NNcollisions=3 + Collision 710 projectile=xi_b- Ekin[MeV]=6553.96 direction=(0.811786,0.555895,0.178843) material=G4_Ar + --> #secondaries=15 impactParameter[fm]=1.71895 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=37 #NNcollisions=0 + Collision 711 projectile=anti_omega_c0 Ekin[MeV]=2123.43 direction=(0.431858,0.157063,0.888161) material=G4_He + --> #secondaries=4 impactParameter[fm]=0.632666 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 712 projectile=anti_deuteron Ekin[MeV]=23070.4 direction=(0.0967787,0.995074,0.021495) material=G4_Al + --> #secondaries=20 impactParameter[fm]=4.87839 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 713 projectile=xi_b- Ekin[MeV]=16840.5 direction=(0.113928,0.667378,0.735953) material=G4_H + --> #secondaries=5 impactParameter[fm]=0.851486 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 714 projectile=anti_proton Ekin[MeV]=26040.5 direction=(0.232095,0.970924,0.0586407) material=G4_He + --> #secondaries=16 impactParameter[fm]=0.713637 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=2 + Collision 715 projectile=anti_hyperalpha Ekin[MeV]=26201.3 direction=(0.516313,0.737454,0.43541) material=G4_He + --> #secondaries=9 impactParameter[fm]=2.30074 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=4 #NNcollisions=1 + Collision 716 projectile=anti_hypertriton Ekin[MeV]=7821.36 direction=(0.35723,0.517513,0.777539) material=G4_Pb + --> #secondaries=94 impactParameter[fm]=5.30941 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=208 #NNcollisions=3 + Collision 717 projectile=anti_lambda Ekin[MeV]=10072.5 direction=(0.598462,0.461627,0.654785) material=G4_C + --> #secondaries=15 impactParameter[fm]=2.0169 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 718 projectile=anti_alpha Ekin[MeV]=6086.62 direction=(0.775243,0.100997,0.623536) material=G4_Si + --> #secondaries=14 impactParameter[fm]=5.32171 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 719 projectile=hyperHe5 Ekin[MeV]=9893.76 direction=(0.859327,0.0269914,0.510714) material=G4_Fe + --> #secondaries=50 impactParameter[fm]=4.08703 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=46 #NNcollisions=2 + Collision 720 projectile=omega_b- Ekin[MeV]=6910.31 direction=(0.483685,0.680999,0.549808) material=G4_Si + --> #secondaries=12 impactParameter[fm]=1.36387 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=0 + Collision 721 projectile=anti_hyperH4 Ekin[MeV]=15351.5 direction=(0.672814,0.423683,0.606477) material=G4_W + --> #secondaries=106 impactParameter[fm]=4.03049 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=176 #NNcollisions=5 + Collision 722 projectile=xi0 Ekin[MeV]=7262.8 direction=(0.935194,0.260517,0.239882) material=G4_He + --> #secondaries=6 impactParameter[fm]=0.164181 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=2 + Collision 723 projectile=Ds+ Ekin[MeV]=14492.7 direction=(0.976011,0.046919,0.212606) material=G4_W + --> #secondaries=26 impactParameter[fm]=6.21705 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=182 #NNcollisions=2 + Collision 724 projectile=anti_Bs0 Ekin[MeV]=7962.74 direction=(0.86762,0.300553,0.39611) material=G4_Cu + --> #secondaries=16 impactParameter[fm]=2.80089 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 725 projectile=Ds- Ekin[MeV]=11882.7 direction=(0.557524,0.586162,0.587861) material=G4_Cu + --> #secondaries=24 impactParameter[fm]=2.02985 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=2 + Collision 726 projectile=anti_omega- Ekin[MeV]=16915.2 direction=(0.608835,0.744143,0.274902) material=G4_C + --> #secondaries=17 impactParameter[fm]=2.39805 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=1 + Collision 727 projectile=proton Ekin[MeV]=4705.54 direction=(0.0508939,0.761974,0.645605) material=G4_Si --> #secondaries=8 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 - Collision 954 projectile=anti_He3 Ekin[MeV]=1921.52 direction=(0.758892,0.615053,0.213995) material=G4_Be - --> #secondaries=12 impactParameter[fm]=4.29792 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=9 #NNcollisions=1 - Collision 955 projectile=xi_c0 Ekin[MeV]=7184.69 direction=(0.578544,0.291599,0.761746) material=G4_H - --> #secondaries=2 impactParameter[fm]=1.29674 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 956 projectile=kaon- Ekin[MeV]=15755.6 direction=(0.681701,0.193641,0.70554) material=G4_W - --> #secondaries=52 impactParameter[fm]=3.47183 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=180 #NNcollisions=2 - Collision 957 projectile=D0 Ekin[MeV]=21430.1 direction=(0.735832,0.670895,0.0919313) material=G4_Fe - --> #secondaries=31 impactParameter[fm]=0.206901 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=53 #NNcollisions=1 - Collision 958 projectile=lambda_c+ Ekin[MeV]=8503.86 direction=(0.558467,0.493391,0.666843) material=G4_Pb - --> #secondaries=10 impactParameter[fm]=7.85591 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=0 - Collision 959 projectile=xi_b0 Ekin[MeV]=29620.3 direction=(0.372391,0.705418,0.603084) material=G4_Si - --> #secondaries=16 impactParameter[fm]=4.36393 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=2 - Collision 960 projectile=anti_D0 Ekin[MeV]=25820.4 direction=(0.765227,0.587965,0.262154) material=G4_Pb - --> #secondaries=36 impactParameter[fm]=3.42335 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=1 - Collision 961 projectile=xi0 Ekin[MeV]=26758.3 direction=(0.426018,0.0724432,0.90181) material=G4_C - --> #secondaries=18 impactParameter[fm]=0.766152 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=2 - Collision 962 projectile=Bc+ Ekin[MeV]=4403.16 direction=(0.0305886,0.844194,0.535165) material=G4_Ar - --> #secondaries=13 impactParameter[fm]=3.38809 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=0 - Collision 963 projectile=anti_Bs0 Ekin[MeV]=9695.46 direction=(0.609769,0.789214,0.0729601) material=G4_Ar - --> #secondaries=14 impactParameter[fm]=0.634792 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=1 - Collision 964 projectile=omega- Ekin[MeV]=27826.2 direction=(0.497184,0.0371858,0.866848) material=G4_Cu - --> #secondaries=9 impactParameter[fm]=6.27896 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=0 - Collision 965 projectile=omega_c0 Ekin[MeV]=13317.1 direction=(0.674621,0.641219,0.365683) material=G4_He - --> #secondaries=8 impactParameter[fm]=1.31935 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 966 projectile=B+ Ekin[MeV]=17962.3 direction=(0.00142237,0.647773,0.761832) material=G4_H - --> #secondaries=3 impactParameter[fm]=0.81368 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 967 projectile=kaon- Ekin[MeV]=18941.1 direction=(0.793614,0.337828,0.506013) material=G4_He - --> #secondaries=8 impactParameter[fm]=1.61133 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 968 projectile=omega- Ekin[MeV]=23284.3 direction=(0.50548,0.840072,0.196901) material=G4_He - --> #secondaries=4 impactParameter[fm]=2.22555 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 - Collision 969 projectile=omega_b- Ekin[MeV]=1267.66 direction=(0.116347,0.636014,0.762856) material=G4_Fe - --> #secondaries=13 impactParameter[fm]=3.69646 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=0 - Collision 970 projectile=proton Ekin[MeV]=6376.67 direction=(0.364539,0.874004,0.321292) material=G4_H - --> #secondaries=5 impactParameter[fm]=0.37246 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 971 projectile=anti_xi_b0 Ekin[MeV]=3242.8 direction=(0.750663,0.660466,0.017027) material=G4_C - --> #secondaries=7 impactParameter[fm]=2.18535 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=0 - Collision 972 projectile=omega_c0 Ekin[MeV]=5292.83 direction=(0.20751,0.868377,0.450401) material=G4_Cu - --> #secondaries=12 impactParameter[fm]=3.08149 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 973 projectile=anti_xi- Ekin[MeV]=13352.3 direction=(0.804695,0.58125,0.120894) material=G4_He - --> #secondaries=10 impactParameter[fm]=0.850589 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 974 projectile=kaon0S Ekin[MeV]=18430.6 direction=(0.721926,0.689323,0.0604663) material=G4_H - --> #secondaries=9 impactParameter[fm]=0.849929 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 975 projectile=sigma+ Ekin[MeV]=18149.4 direction=(0.635806,0.117038,0.762924) material=G4_C - --> #secondaries=16 impactParameter[fm]=1.68619 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=1 - Collision 976 projectile=kaon- Ekin[MeV]=23854.9 direction=(0.0293571,0.771208,0.635907) material=G4_W - --> #secondaries=27 impactParameter[fm]=5.2196 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=182 #NNcollisions=2 - Collision 977 projectile=Ds+ Ekin[MeV]=21124 direction=(0.788936,0.614289,0.0151113) material=G4_W - --> #secondaries=38 impactParameter[fm]=5.67838 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=183 #NNcollisions=1 - Collision 978 projectile=anti_neutron Ekin[MeV]=29927.1 direction=(0.408133,0.839783,0.35804) material=G4_Be - --> #secondaries=13 impactParameter[fm]=1.52702 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=1 - Collision 979 projectile=lambda_b Ekin[MeV]=2891.78 direction=(0.900889,0.354989,0.249765) material=G4_Al - --> #secondaries=17 impactParameter[fm]=1.48121 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=23 #NNcollisions=0 - Collision 980 projectile=He3 Ekin[MeV]=24644.5 direction=(0.626855,0.181736,0.757644) material=G4_Pb - --> #secondaries=165 impactParameter[fm]=1.58316 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=185 #NNcollisions=11 - Collision 981 projectile=sigma- Ekin[MeV]=8764.2 direction=(0.833817,0.339064,0.435642) material=G4_W - --> #secondaries=49 impactParameter[fm]=5.54735 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=179 #NNcollisions=4 - Collision 982 projectile=anti_xi_c+ Ekin[MeV]=26702.7 direction=(0.622685,0.782015,0.0267665) material=G4_W - --> #secondaries=22 impactParameter[fm]=6.90734 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=0 - Collision 983 projectile=anti_lambda Ekin[MeV]=21693.1 direction=(0.679708,0.0727537,0.729866) material=G4_W - --> #secondaries=47 impactParameter[fm]=0.879065 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=182 #NNcollisions=1 - Collision 984 projectile=anti_B0 Ekin[MeV]=20855.8 direction=(0.474935,0.665187,0.576162) material=G4_Fe - --> #secondaries=23 impactParameter[fm]=2.85916 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=53 #NNcollisions=2 - Collision 985 projectile=sigma+ Ekin[MeV]=8636.21 direction=(0.48369,0.871907,0.0763079) material=G4_H - --> #secondaries=5 impactParameter[fm]=0.160298 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 986 projectile=Bs0 Ekin[MeV]=14530.5 direction=(0.711004,0.69211,0.12433) material=G4_Si - --> #secondaries=13 impactParameter[fm]=4.3286 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=28 #NNcollisions=1 - Collision 987 projectile=anti_alpha Ekin[MeV]=3367.68 direction=(0.981363,0.0387528,0.188215) material=G4_He - --> #secondaries=9 impactParameter[fm]=1.66915 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=3 #NNcollisions=1 - Collision 988 projectile=xi_c0 Ekin[MeV]=2810.36 direction=(0.0513394,0.773493,0.631722) material=G4_H - --> #secondaries=3 impactParameter[fm]=0.184405 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 - Collision 989 projectile=B- Ekin[MeV]=28308.9 direction=(0.705189,0.666401,0.242111) material=G4_Cu - --> #secondaries=18 impactParameter[fm]=1.52751 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=64 #NNcollisions=1 - Collision 990 projectile=anti_sigma+ Ekin[MeV]=8703.01 direction=(0.834633,0.0360339,0.549626) material=G4_Pb - --> #secondaries=31 impactParameter[fm]=7.94127 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=1 - Collision 991 projectile=lambda_c+ Ekin[MeV]=19488.8 direction=(0.752433,0.359971,0.551603) material=G4_C - --> #secondaries=17 impactParameter[fm]=1.65847 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=2 - Collision 992 projectile=Bc- Ekin[MeV]=19641.5 direction=(0.914213,0.161614,0.371612) material=G4_W - --> #secondaries=19 impactParameter[fm]=6.75187 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=181 #NNcollisions=1 - Collision 993 projectile=omega- Ekin[MeV]=16627.1 direction=(0.395281,0.6281,0.670256) material=G4_C - --> #secondaries=5 impactParameter[fm]=2.26699 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 - Collision 994 projectile=anti_omega- Ekin[MeV]=7189.28 direction=(0.132918,0.639762,0.756992) material=G4_C - --> #secondaries=11 impactParameter[fm]=0.938065 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=0 - Collision 995 projectile=D0 Ekin[MeV]=18817.6 direction=(0.793313,0.444088,0.416463) material=G4_W - --> #secondaries=49 impactParameter[fm]=5.29134 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=183 #NNcollisions=2 - Collision 996 projectile=alpha Ekin[MeV]=25492 direction=(0.587056,0.681854,0.436396) material=G4_Al - --> #secondaries=12 impactParameter[fm]=5.50196 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=26 #NNcollisions=1 - Collision 997 projectile=anti_xi_b- Ekin[MeV]=26510.7 direction=(0.537995,0.837282,0.0975681) material=G4_Cu - --> #secondaries=24 impactParameter[fm]=2.44551 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 - Collision 998 projectile=xi_c0 Ekin[MeV]=20194.7 direction=(0.916015,0.380584,0.126776) material=G4_Si - --> #secondaries=30 impactParameter[fm]=1.00528 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=3 - Collision 999 projectile=anti_lambda_b Ekin[MeV]=18449.1 direction=(0.596148,0.782409,0.180119) material=G4_He - --> #secondaries=9 impactParameter[fm]=1.14474 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=2 + Collision 728 projectile=kaon+ Ekin[MeV]=11636.8 direction=(0.216451,0.756516,0.617116) material=G4_Si + --> #secondaries=17 impactParameter[fm]=3.32732 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=28 #NNcollisions=1 + Collision 729 projectile=D- Ekin[MeV]=7476.98 direction=(0.00567186,0.671025,0.741413) material=G4_Ar + --> #secondaries=13 impactParameter[fm]=3.87569 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=2 + Collision 730 projectile=Ds- Ekin[MeV]=25192.4 direction=(0.67174,0.520829,0.526785) material=G4_W + --> #secondaries=64 impactParameter[fm]=3.55907 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=181 #NNcollisions=3 + Collision 731 projectile=omega_b- Ekin[MeV]=28091.4 direction=(0.293928,0.733456,0.612902) material=G4_Si + --> #secondaries=17 impactParameter[fm]=2.43704 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 732 projectile=hyperHe5 Ekin[MeV]=3280.42 direction=(0.661563,0.227951,0.714404) material=G4_W + --> #secondaries=24 impactParameter[fm]=8.71684 #projectileSpectatorNucleons=4 #targetSpectatorNucleons=181 #NNcollisions=0 + Collision 733 projectile=anti_lambda_b Ekin[MeV]=6975.4 direction=(0.617264,0.254147,0.744577) material=G4_H + --> #secondaries=4 impactParameter[fm]=1.51978 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 734 projectile=sigma- Ekin[MeV]=24091.3 direction=(0.532127,0.550635,0.643151) material=G4_Al + --> #secondaries=22 impactParameter[fm]=4.175 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 735 projectile=anti_deuteron Ekin[MeV]=22115.4 direction=(0.764968,0.0648391,0.640797) material=G4_Pb + --> #secondaries=53 impactParameter[fm]=5.92231 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=2 + Collision 736 projectile=proton Ekin[MeV]=28728.2 direction=(0.745925,0.660488,0.0857415) material=G4_Pb + --> #secondaries=67 impactParameter[fm]=5.30949 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=199 #NNcollisions=6 + Collision 737 projectile=He3 Ekin[MeV]=3851.11 direction=(0.78789,0.612312,0.065607) material=G4_Be + --> #secondaries=14 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 738 projectile=anti_xi_c+ Ekin[MeV]=19595.7 direction=(0.38029,0.835997,0.395586) material=G4_Cu + --> #secondaries=26 impactParameter[fm]=4.3429 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=1 + Collision 739 projectile=anti_proton Ekin[MeV]=28242.1 direction=(0.530952,0.647662,0.546465) material=G4_He + --> #secondaries=14 impactParameter[fm]=1.38353 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=2 + Collision 740 projectile=proton Ekin[MeV]=27225.1 direction=(0.552074,0.611358,0.566971) material=G4_Cu + --> #secondaries=10 impactParameter[fm]=5.82038 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=64 #NNcollisions=1 + Collision 741 projectile=hypertriton Ekin[MeV]=27733 direction=(0.878303,0.437385,0.193078) material=G4_Be + --> #secondaries=6 impactParameter[fm]=2.35959 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 742 projectile=triton Ekin[MeV]=2796.7 direction=(0.458009,0.260992,0.849771) material=G4_Al + --> #secondaries=17 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 743 projectile=xi- Ekin[MeV]=6810.67 direction=(0.74708,0.20069,0.633715) material=G4_Be + --> #secondaries=8 impactParameter[fm]=1.40703 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=7 #NNcollisions=2 + Collision 744 projectile=lambda Ekin[MeV]=8716.36 direction=(0.401267,0.824916,0.39812) material=G4_Cu + --> #secondaries=16 impactParameter[fm]=4.27001 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=64 #NNcollisions=0 + Collision 745 projectile=anti_xi_c+ Ekin[MeV]=6193.77 direction=(0.394134,0.700462,0.594989) material=G4_Si + --> #secondaries=11 impactParameter[fm]=3.86975 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 746 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=1828.7 direction=(0.0775963,0.448436,0.890441) material=G4_W + --> #secondaries=59 impactParameter[fm]=5.27121 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=4 + Collision 747 projectile=anti_xi_c0 Ekin[MeV]=15466.7 direction=(0.754609,0.078827,0.651422) material=G4_Al + --> #secondaries=14 impactParameter[fm]=1.87515 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 748 projectile=hyperHe5 Ekin[MeV]=27628.7 direction=(0.528074,0.637439,0.561078) material=G4_C + --> #secondaries=12 impactParameter[fm]=2.77258 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=10 #NNcollisions=2 + Collision 749 projectile=lambda Ekin[MeV]=17759.2 direction=(0.50571,0.555633,0.659947) material=G4_Be + --> #secondaries=13 impactParameter[fm]=0.517068 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=5 #NNcollisions=4 + Collision 750 projectile=xi0 Ekin[MeV]=21956.5 direction=(0.661008,0.749433,0.0376765) material=G4_Cu + --> #secondaries=16 impactParameter[fm]=4.71815 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=64 #NNcollisions=1 + Collision 751 projectile=hyperH4 Ekin[MeV]=12705.3 direction=(0.553314,0.805009,0.21402) material=G4_C + --> #secondaries=7 impactParameter[fm]=4.64307 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 752 projectile=pi- Ekin[MeV]=26587.2 direction=(0.685505,0.314988,0.656404) material=G4_Si + --> #secondaries=7 impactParameter[fm]=1.74777 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=0 + Collision 753 projectile=anti_proton Ekin[MeV]=4786.63 direction=(0.321081,0.0783061,0.943809) material=G4_Si + --> #secondaries=16 impactParameter[fm]=2.75997 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=28 #NNcollisions=1 + Collision 754 projectile=Bc+ Ekin[MeV]=15748.5 direction=(0.941104,0.290491,0.17303) material=G4_Ar + --> #secondaries=13 impactParameter[fm]=0.34801 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 755 projectile=omega_b- Ekin[MeV]=12065.9 direction=(0.613704,0.62689,0.479976) material=G4_He + --> #secondaries=6 impactParameter[fm]=0.421303 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=1 #NNcollisions=2 + Collision 756 projectile=anti_sigma- Ekin[MeV]=20276.1 direction=(0.213089,0.940075,0.26618) material=G4_He + --> #secondaries=15 impactParameter[fm]=0.430347 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 757 projectile=anti_omega_b- Ekin[MeV]=23853.8 direction=(0.632865,0.3654,0.682616) material=G4_He + --> #secondaries=4 impactParameter[fm]=1.21083 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 758 projectile=anti_omega- Ekin[MeV]=18687.8 direction=(0.541683,0.0390668,0.839674) material=G4_Pb + --> #secondaries=67 impactParameter[fm]=3.08494 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=1 + Collision 759 projectile=kaon0L Ekin[MeV]=2193.51 direction=(0.417302,0.888455,0.191066) material=G4_C + --> #secondaries=11 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 760 projectile=kaon0S Ekin[MeV]=3784.09 direction=(0.581621,0.351782,0.733462) material=G4_Fe + --> #secondaries=25 impactParameter[fm]=4.02472 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=52 #NNcollisions=2 + Collision 761 projectile=lambda Ekin[MeV]=29290.3 direction=(0.40277,0.381926,0.83181) material=G4_Ar + --> #secondaries=33 impactParameter[fm]=2.2846 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=2 + Collision 762 projectile=B0 Ekin[MeV]=17144.7 direction=(0.582622,0.734499,0.34794) material=G4_C + --> #secondaries=6 impactParameter[fm]=0.936087 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 763 projectile=anti_hyperH4 Ekin[MeV]=9406.87 direction=(0.0939806,0.0473635,0.994447) material=G4_C + --> #secondaries=17 impactParameter[fm]=3.03528 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=10 #NNcollisions=2 + Collision 764 projectile=doublehyperdoubleneutron Ekin[MeV]=28917.9 direction=(0.62534,0.631562,0.458344) material=G4_H + --> #secondaries=7 impactParameter[fm]=0.566722 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=0 #NNcollisions=2 + Collision 765 projectile=hypertriton Ekin[MeV]=29915.6 direction=(0.650052,0.228131,0.724837) material=G4_Ar + --> #secondaries=53 impactParameter[fm]=1.82631 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=32 #NNcollisions=8 + Collision 766 projectile=xi_c0 Ekin[MeV]=2390.23 direction=(0.217666,0.787946,0.575988) material=G4_C + --> #secondaries=10 impactParameter[fm]=1.66898 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=0 + Collision 767 projectile=kaon+ Ekin[MeV]=15152.3 direction=(0.653019,0.751128,0.0968147) material=G4_Ar + --> #secondaries=11 impactParameter[fm]=6.29124 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 768 projectile=B+ Ekin[MeV]=11924 direction=(0.164773,0.508673,0.845045) material=G4_Si + --> #secondaries=10 impactParameter[fm]=4.4522 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 769 projectile=proton Ekin[MeV]=20635.9 direction=(0.361569,0.932345,0.000588398) material=G4_Al + --> #secondaries=24 impactParameter[fm]=3.39329 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 770 projectile=anti_lambda Ekin[MeV]=18977.8 direction=(0.876181,0.079729,0.475342) material=G4_Cu + --> #secondaries=30 impactParameter[fm]=3.03667 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 771 projectile=doublehyperH4 Ekin[MeV]=20620.8 direction=(0.715175,0.181609,0.674939) material=G4_Cu + --> #secondaries=69 impactParameter[fm]=3.23294 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=50 #NNcollisions=5 + Collision 772 projectile=xi0 Ekin[MeV]=26859.4 direction=(0.725627,0.301697,0.618421) material=G4_Si + --> #secondaries=34 impactParameter[fm]=1.48497 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=3 + Collision 773 projectile=anti_xi_b0 Ekin[MeV]=14049.9 direction=(0.116695,0.911577,0.394219) material=G4_C + --> #secondaries=13 impactParameter[fm]=1.06364 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=1 + Collision 774 projectile=anti_proton Ekin[MeV]=7228.27 direction=(0.391601,0.86811,0.305014) material=G4_Al + --> #secondaries=13 impactParameter[fm]=2.89875 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=2 + Collision 775 projectile=anti_lambda Ekin[MeV]=27930.3 direction=(0.655765,0.565294,0.500414) material=G4_He + --> #secondaries=16 impactParameter[fm]=1.07589 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=2 + Collision 776 projectile=anti_xi_c0 Ekin[MeV]=23445.2 direction=(0.80879,0.0842463,0.582031) material=G4_W + --> #secondaries=68 impactParameter[fm]=6.14225 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=177 #NNcollisions=6 + Collision 777 projectile=kaon0S Ekin[MeV]=7468.97 direction=(0.982306,0.086849,0.165929) material=G4_C + --> #secondaries=12 impactParameter[fm]=2.06986 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=10 #NNcollisions=2 + Collision 778 projectile=He3 Ekin[MeV]=6581.57 direction=(0.560894,0.384665,0.733097) material=G4_H + --> #secondaries=5 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 779 projectile=anti_hypertriton Ekin[MeV]=13157.8 direction=(0.710476,0.0361874,0.70279) material=G4_H + --> #secondaries=8 impactParameter[fm]=1.13205 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=1 #NNcollisions=1 + Collision 780 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=8465.14 direction=(0.173929,0.979748,0.0992097) material=G4_C + --> #secondaries=12 impactParameter[fm]=4.66185 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=12 #NNcollisions=1 + Collision 781 projectile=sigma+ Ekin[MeV]=16635.8 direction=(0.830948,0.336762,0.442851) material=G4_He + --> #secondaries=11 impactParameter[fm]=0.11515 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 782 projectile=hyperalpha Ekin[MeV]=2372.22 direction=(0.135949,0.985913,0.0974332) material=G4_He + --> #secondaries=6 impactParameter[fm]=1.26287 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 783 projectile=anti_sigma- Ekin[MeV]=16476.9 direction=(0.779543,0.613461,0.126407) material=G4_He + --> #secondaries=9 impactParameter[fm]=1.23512 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=1 + Collision 784 projectile=deuteron Ekin[MeV]=13197.3 direction=(0.253278,0.688565,0.679506) material=G4_Ar + --> #secondaries=28 impactParameter[fm]=2.84538 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=37 #NNcollisions=1 + Collision 785 projectile=triton Ekin[MeV]=8647.85 direction=(0.20188,0.970939,0.128535) material=G4_He + --> #secondaries=8 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 786 projectile=sigma- Ekin[MeV]=10262 direction=(0.499203,0.777576,0.382324) material=G4_Fe + --> #secondaries=9 impactParameter[fm]=4.92534 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 787 projectile=B+ Ekin[MeV]=17681.4 direction=(0.337818,0.709509,0.618447) material=G4_Si + --> #secondaries=23 impactParameter[fm]=2.02804 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=3 + Collision 788 projectile=xi_b- Ekin[MeV]=10335.7 direction=(0.983266,0.0477164,0.175815) material=G4_Al + --> #secondaries=16 impactParameter[fm]=2.71826 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=1 + Collision 789 projectile=deuteron Ekin[MeV]=29729.7 direction=(0.758655,0.253618,0.600101) material=G4_Be + --> #secondaries=22 impactParameter[fm]=2.81868 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=5 #NNcollisions=4 + Collision 790 projectile=D- Ekin[MeV]=15531.2 direction=(0.632006,0.457062,0.625829) material=G4_Al + --> #secondaries=14 impactParameter[fm]=2.41632 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 791 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=19970.7 direction=(0.215777,0.240249,0.946425) material=G4_Ar + --> #secondaries=47 impactParameter[fm]=2.3948 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=36 #NNcollisions=4 + Collision 792 projectile=anti_He3 Ekin[MeV]=4598.52 direction=(0.56002,0.610918,0.559605) material=G4_Si + --> #secondaries=22 impactParameter[fm]=5.10095 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=27 #NNcollisions=2 + Collision 793 projectile=anti_Bs0 Ekin[MeV]=3525.37 direction=(0.941223,0.09968,0.322742) material=G4_W + --> #secondaries=21 impactParameter[fm]=2.74005 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=184 #NNcollisions=2 + Collision 794 projectile=xi- Ekin[MeV]=3175.47 direction=(0.960689,0.251233,0.118147) material=G4_Si + --> #secondaries=10 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 795 projectile=B0 Ekin[MeV]=11804.7 direction=(0.437844,0.715082,0.544932) material=G4_C + --> #secondaries=11 impactParameter[fm]=1.44434 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=10 #NNcollisions=2 + Collision 796 projectile=anti_B0 Ekin[MeV]=23441.7 direction=(0.754495,0.591479,0.284411) material=G4_Pb + --> #secondaries=41 impactParameter[fm]=2.33575 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=204 #NNcollisions=2 + Collision 797 projectile=anti_triton Ekin[MeV]=24191.4 direction=(0.205637,0.150902,0.966924) material=G4_Si + --> #secondaries=27 impactParameter[fm]=2.0521 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=29 #NNcollisions=2 + Collision 798 projectile=Bc- Ekin[MeV]=13014.4 direction=(0.751078,0.604732,0.264917) material=G4_H + --> #secondaries=4 impactParameter[fm]=0.631314 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 799 projectile=hyperalpha Ekin[MeV]=14384.6 direction=(0.14878,0.0751696,0.986009) material=G4_W + --> #secondaries=92 impactParameter[fm]=4.85697 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=171 #NNcollisions=8 + Collision 800 projectile=D+ Ekin[MeV]=2992.45 direction=(0.284703,0.889415,0.35761) material=G4_Ar + --> #secondaries=8 impactParameter[fm]=2.14169 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=1 + List of produced secondaries: + j=0 sigma_c+ p=(784.798,2222.03,1014.533549.55) MeV + j=1 pi- p=(410.952,431.524,417.661740.956) MeV + j=2 pi+ p=(-37.8377,1456.61,187.7151475.75) MeV + j=3 Ar37[1611.280] p=(100.121,-29.6125,36.403134426.9) MeV + j=4 neutron p=(21.7802,-49.5856,-31.67941.658) MeV + j=5 neutron p=(-2.26366,-39.0389,-18.3132940.557) MeV + j=6 gamma p=(1.07955,1.10542,-0.4195841.60107) MeV + j=7 gamma p=(-0.4499,-0.0857062,-0.3938860.604071) MeV + Collision 801 projectile=kaon0S Ekin[MeV]=1238.35 direction=(0.289572,0.336168,0.89618) material=G4_Al + --> #secondaries=9 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 802 projectile=anti_omega_b- Ekin[MeV]=9353.66 direction=(0.571549,0.658673,0.48937) material=G4_C + --> #secondaries=7 impactParameter[fm]=0.434739 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=2 + Collision 803 projectile=kaon0S Ekin[MeV]=26263.4 direction=(0.300234,0.95172,0.0639402) material=G4_Pb + --> #secondaries=51 impactParameter[fm]=4.79576 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=205 #NNcollisions=1 + Collision 804 projectile=lambda_b Ekin[MeV]=13546.4 direction=(0.716902,0.638717,0.279452) material=G4_Ar + --> #secondaries=30 impactParameter[fm]=1.45015 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=36 #NNcollisions=3 + Collision 805 projectile=xi_c0 Ekin[MeV]=27935.9 direction=(0.499826,0.014874,0.865998) material=G4_Cu + --> #secondaries=53 impactParameter[fm]=2.62604 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=59 #NNcollisions=4 + Collision 806 projectile=anti_hypertriton Ekin[MeV]=1965.19 direction=(0.721897,0.62658,0.293703) material=G4_Be + --> #secondaries=10 impactParameter[fm]=2.2514 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=7 #NNcollisions=1 + Collision 807 projectile=xi_b- Ekin[MeV]=16468.3 direction=(0.833176,0.358996,0.420642) material=G4_Si + --> #secondaries=8 impactParameter[fm]=3.95582 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 808 projectile=hyperHe5 Ekin[MeV]=21307 direction=(0.27294,0.697515,0.662553) material=G4_W + --> #secondaries=107 impactParameter[fm]=4.91748 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=164 #NNcollisions=7 + Collision 809 projectile=anti_doublehyperH4 Ekin[MeV]=8051.37 direction=(0.242395,0.752531,0.612324) material=G4_W + --> #secondaries=56 impactParameter[fm]=7.06109 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=183 #NNcollisions=3 + Collision 810 projectile=xi- Ekin[MeV]=11224.3 direction=(0.766262,0.351104,0.538115) material=G4_C + --> #secondaries=7 impactParameter[fm]=2.06326 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 811 projectile=D- Ekin[MeV]=29934.5 direction=(0.465034,0.35973,0.808912) material=G4_H + --> #secondaries=5 impactParameter[fm]=1.23608 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 812 projectile=kaon+ Ekin[MeV]=5879.01 direction=(0.540729,0.346774,0.766394) material=G4_W + --> #secondaries=48 impactParameter[fm]=3.72472 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=184 #NNcollisions=2 + Collision 813 projectile=B- Ekin[MeV]=25885 direction=(0.643467,0.662155,0.384059) material=G4_Cu + --> #secondaries=7 impactParameter[fm]=5.26142 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=0 + Collision 814 projectile=alpha Ekin[MeV]=21663.6 direction=(0.088688,0.984294,0.152641) material=G4_Al + --> #secondaries=23 impactParameter[fm]=2.2236 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=26 #NNcollisions=0 + Collision 815 projectile=anti_lambda_c+ Ekin[MeV]=24759.3 direction=(0.519062,0.662807,0.539687) material=G4_Ar + --> #secondaries=14 impactParameter[fm]=4.35251 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=0 + Collision 816 projectile=pi+ Ekin[MeV]=18422.1 direction=(0.293488,0.0199294,0.955755) material=G4_Be + --> #secondaries=14 impactParameter[fm]=1.46526 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 817 projectile=anti_alpha Ekin[MeV]=4287.51 direction=(0.0923861,0.910442,0.403188) material=G4_Be + --> #secondaries=6 impactParameter[fm]=4.24619 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=9 #NNcollisions=1 + Collision 818 projectile=alpha Ekin[MeV]=24919.7 direction=(0.595324,0.0489942,0.801991) material=G4_He + --> #secondaries=11 impactParameter[fm]=0.934572 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=1 #NNcollisions=1 + Collision 819 projectile=pi- Ekin[MeV]=21267.8 direction=(0.526685,0.675497,0.516049) material=G4_Pb + --> #secondaries=14 impactParameter[fm]=10.6015 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=1 + Collision 820 projectile=anti_B0 Ekin[MeV]=19433.9 direction=(0.647585,0.692393,0.318161) material=G4_H + --> #secondaries=5 impactParameter[fm]=0.335797 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 821 projectile=Ds- Ekin[MeV]=4830.43 direction=(0.769078,0.351681,0.533703) material=G4_Si + --> #secondaries=8 impactParameter[fm]=3.26969 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 822 projectile=anti_sigma- Ekin[MeV]=27604.4 direction=(0.74154,0.602996,0.294134) material=G4_Be + --> #secondaries=12 impactParameter[fm]=1.46863 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 823 projectile=sigma+ Ekin[MeV]=23989.6 direction=(0.78949,0.366549,0.492288) material=G4_He + --> #secondaries=9 impactParameter[fm]=1.25378 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 824 projectile=anti_neutron Ekin[MeV]=24475.8 direction=(0.23694,0.883197,0.404749) material=G4_He + --> #secondaries=7 impactParameter[fm]=2.17434 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 825 projectile=hypertriton Ekin[MeV]=2982.55 direction=(0.525964,0.623598,0.578349) material=G4_H + --> #secondaries=4 impactParameter[fm]=1.13304 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 826 projectile=D0 Ekin[MeV]=19125.4 direction=(0.531892,0.808313,0.25243) material=G4_Si + --> #secondaries=24 impactParameter[fm]=0.72503 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 827 projectile=sigma+ Ekin[MeV]=20704.7 direction=(0.341197,0.832491,0.436513) material=G4_C + --> #secondaries=20 impactParameter[fm]=2.42044 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=10 #NNcollisions=2 + Collision 828 projectile=anti_xi_b- Ekin[MeV]=25944.5 direction=(0.50013,0.62003,0.60451) material=G4_W + --> #secondaries=76 impactParameter[fm]=3.36834 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=179 #NNcollisions=5 + Collision 829 projectile=doublehyperH4 Ekin[MeV]=5318.65 direction=(0.733356,0.424285,0.531197) material=G4_C + --> #secondaries=8 impactParameter[fm]=3.82782 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=11 #NNcollisions=0 + Collision 830 projectile=pi- Ekin[MeV]=11925.6 direction=(0.591322,0.786967,0.176127) material=G4_W + --> #secondaries=33 impactParameter[fm]=5.13744 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=182 #NNcollisions=1 + Collision 831 projectile=B+ Ekin[MeV]=3768.89 direction=(0.782411,0.462836,0.416673) material=G4_Cu + --> #secondaries=14 impactParameter[fm]=0.956483 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=1 + Collision 832 projectile=He3 Ekin[MeV]=15422.7 direction=(0.318882,0.431655,0.843794) material=G4_Al + --> #secondaries=30 impactParameter[fm]=2.08786 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=23 #NNcollisions=5 + Collision 833 projectile=anti_xi_b0 Ekin[MeV]=28947.2 direction=(0.382211,0.612541,0.691887) material=G4_Ar + --> #secondaries=6 impactParameter[fm]=3.96545 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=0 + Collision 834 projectile=kaon0L Ekin[MeV]=19653.9 direction=(0.16696,0.873256,0.457765) material=G4_H + --> #secondaries=10 impactParameter[fm]=1.87054 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 835 projectile=omega- Ekin[MeV]=27894.6 direction=(0.695706,0.344568,0.630291) material=G4_Al + --> #secondaries=14 impactParameter[fm]=3.01102 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=0 + Collision 836 projectile=D0 Ekin[MeV]=29073.9 direction=(0.322598,0.926148,0.195397) material=G4_W + --> #secondaries=48 impactParameter[fm]=3.32648 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=184 #NNcollisions=1 + Collision 837 projectile=hyperalpha Ekin[MeV]=16343 direction=(0.568278,0.654617,0.498534) material=G4_Fe + --> #secondaries=60 impactParameter[fm]=0.610096 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=43 #NNcollisions=9 + Collision 838 projectile=D0 Ekin[MeV]=21213.5 direction=(0.398754,0.237944,0.885651) material=G4_W + --> #secondaries=40 impactParameter[fm]=5.33751 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=181 #NNcollisions=2 + Collision 839 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=17894.5 direction=(0.399382,0.865012,0.303725) material=G4_Cu + --> #secondaries=17 impactParameter[fm]=5.4677 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=63 #NNcollisions=1 + Collision 840 projectile=B+ Ekin[MeV]=15342.5 direction=(0.201549,0.238975,0.949878) material=G4_Be + --> #secondaries=11 impactParameter[fm]=2.32203 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=7 #NNcollisions=2 + Collision 841 projectile=B0 Ekin[MeV]=28159.3 direction=(0.293726,0.79692,0.527867) material=G4_Fe + --> #secondaries=12 impactParameter[fm]=3.7813 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=0 + Collision 842 projectile=anti_omega- Ekin[MeV]=4587.88 direction=(0.711092,0.0596975,0.70056) material=G4_He + --> #secondaries=4 impactParameter[fm]=2.76402 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 843 projectile=kaon0L Ekin[MeV]=6117.5 direction=(0.157776,0.580887,0.798547) material=G4_W + --> #secondaries=76 impactParameter[fm]=2.70123 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=176 #NNcollisions=3 + Collision 844 projectile=kaon- Ekin[MeV]=18921 direction=(0.856513,0.463094,0.227879) material=G4_Be + --> #secondaries=6 impactParameter[fm]=1.46977 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 845 projectile=anti_neutron Ekin[MeV]=7263.78 direction=(0.714578,0.0705456,0.69599) material=G4_Al + --> #secondaries=17 impactParameter[fm]=2.95783 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=3 + Collision 846 projectile=Bs0 Ekin[MeV]=13893.2 direction=(0.416954,0.812577,0.407269) material=G4_Ar + --> #secondaries=12 impactParameter[fm]=2.36215 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=38 #NNcollisions=1 + Collision 847 projectile=anti_hypertriton Ekin[MeV]=2341.11 direction=(0.762485,0.260021,0.592458) material=G4_He + --> #secondaries=16 impactParameter[fm]=2.71397 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=1 #NNcollisions=2 + Collision 848 projectile=anti_omega_c0 Ekin[MeV]=22773.5 direction=(0.796909,0.603253,0.0319615) material=G4_He + --> #secondaries=4 impactParameter[fm]=1.6685 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 849 projectile=anti_xi- Ekin[MeV]=27071.4 direction=(0.799797,0.546093,0.249214) material=G4_H + --> #secondaries=8 impactParameter[fm]=0.947598 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 850 projectile=sigma- Ekin[MeV]=3976.39 direction=(0.492184,0.493578,0.717033) material=G4_Ar + --> #secondaries=29 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 851 projectile=deuteron Ekin[MeV]=3132.04 direction=(0.576988,0.226646,0.784676) material=G4_Al + --> #secondaries=11 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 852 projectile=anti_omega_b- Ekin[MeV]=5190.99 direction=(0.503074,0.849906,0.156768) material=G4_H + --> #secondaries=2 impactParameter[fm]=0.502027 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 853 projectile=anti_omega- Ekin[MeV]=7350.63 direction=(0.115871,0.701015,0.70367) material=G4_C + --> #secondaries=14 impactParameter[fm]=1.31726 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 854 projectile=xi_b- Ekin[MeV]=12146.3 direction=(0.799972,0.486962,0.350589) material=G4_He + --> #secondaries=5 impactParameter[fm]=1.41569 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=1 + Collision 855 projectile=anti_xi- Ekin[MeV]=25873.7 direction=(0.80225,0.488703,0.342876) material=G4_W + --> #secondaries=66 impactParameter[fm]=4.74911 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=3 + Collision 856 projectile=lambda_c+ Ekin[MeV]=23624.6 direction=(0.266041,0.963477,0.030561) material=G4_Fe + --> #secondaries=11 impactParameter[fm]=5.30355 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 857 projectile=D0 Ekin[MeV]=11018.6 direction=(0.726016,0.51557,0.455069) material=G4_Pb + --> #secondaries=50 impactParameter[fm]=5.38819 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=206 #NNcollisions=1 + Collision 858 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=20111.5 direction=(0.709012,0.560134,0.42843) material=G4_Si + --> #secondaries=7 impactParameter[fm]=5.35978 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=28 #NNcollisions=1 + Collision 859 projectile=lambda_c+ Ekin[MeV]=16679.2 direction=(0.409587,0.742627,0.529853) material=G4_Pb + --> #secondaries=72 impactParameter[fm]=3.86549 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=204 #NNcollisions=4 + Collision 860 projectile=anti_xi0 Ekin[MeV]=28779.5 direction=(0.295965,0.938052,0.180173) material=G4_He + --> #secondaries=10 impactParameter[fm]=1.40943 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 861 projectile=xi_b0 Ekin[MeV]=2658.16 direction=(0.429491,0.64198,0.635137) material=G4_He + --> #secondaries=4 impactParameter[fm]=1.81728 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 862 projectile=kaon0S Ekin[MeV]=13817.9 direction=(0.42942,0.516094,0.741111) material=G4_H + --> #secondaries=4 impactParameter[fm]=0.477738 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 863 projectile=xi_b0 Ekin[MeV]=18694.9 direction=(0.00893338,0.802196,0.596994) material=G4_Al + --> #secondaries=13 impactParameter[fm]=2.92752 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=2 + Collision 864 projectile=hypertriton Ekin[MeV]=8064.41 direction=(0.852611,0.488234,0.186229) material=G4_Fe + --> #secondaries=21 impactParameter[fm]=5.79608 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=54 #NNcollisions=1 + Collision 865 projectile=D0 Ekin[MeV]=15162.2 direction=(0.54171,0.644532,0.539564) material=G4_H + --> #secondaries=6 impactParameter[fm]=1.03965 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 866 projectile=kaon+ Ekin[MeV]=1340.31 direction=(0.401703,0.688566,0.603749) material=G4_Pb + --> #secondaries=40 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 867 projectile=hyperHe5 Ekin[MeV]=5133.69 direction=(0.833485,0.218709,0.507414) material=G4_He + --> #secondaries=12 impactParameter[fm]=0.549068 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=2 + Collision 868 projectile=Bc- Ekin[MeV]=7560.6 direction=(0.585341,0.4689,0.661445) material=G4_Cu + --> #secondaries=12 impactParameter[fm]=1.84461 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 869 projectile=sigma+ Ekin[MeV]=8711.28 direction=(0.410849,0.858287,0.307484) material=G4_H + --> #secondaries=6 impactParameter[fm]=1.11545 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 870 projectile=omega- Ekin[MeV]=3722.35 direction=(0.236984,0.425772,0.873245) material=G4_Be + --> #secondaries=6 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 871 projectile=anti_xi_c0 Ekin[MeV]=4974.74 direction=(0.0115511,0.920284,0.39108) material=G4_H + --> #secondaries=3 impactParameter[fm]=0.53228 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 872 projectile=Ds+ Ekin[MeV]=26018.7 direction=(0.635522,0.744367,0.205013) material=G4_H + --> #secondaries=4 impactParameter[fm]=0.915227 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 873 projectile=doublehyperH4 Ekin[MeV]=11412.5 direction=(0.0044253,0.802634,0.596456) material=G4_Fe + --> #secondaries=35 impactParameter[fm]=4.51861 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=52 #NNcollisions=3 + Collision 874 projectile=proton Ekin[MeV]=15514.5 direction=(0.730237,0.224299,0.645324) material=G4_C + --> #secondaries=6 impactParameter[fm]=2.554 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 + Collision 875 projectile=anti_xi0 Ekin[MeV]=7392.91 direction=(0.410876,0.746497,0.523376) material=G4_He + --> #secondaries=10 impactParameter[fm]=2.07515 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=1 + Collision 876 projectile=hyperalpha Ekin[MeV]=28919.4 direction=(0.00186245,0.998988,0.0449343) material=G4_H +-------- WWWW ------- G4Exception-START -------- WWWW ------- - Final random number = 0.976193 +*** ExceptionHandler is not defined *** +*** G4Exception : had012 + issued by : G4HadronicProcess:CheckResult() +Warning: Secondary with off-shell dynamic mass detected: + hypertriton, PDG mass: 2991.17, dynamic mass: 3355.16 +re-sample the interaction + Process / Model: hyperalphaInelastic / FTFP + Primary: hyperalpha (1010020040), E= 32841.3, target nucleus (1, 1) + +*** This is just a warning message. *** +-------- WWWW ------- G4Exception-END -------- WWWW ------- + + + --> #secondaries=4 impactParameter[fm]=2.71984 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=0 #NNcollisions=0 + Collision 877 projectile=lambda_b Ekin[MeV]=22491.1 direction=(0.558093,0.55695,0.615092) material=G4_Be + --> #secondaries=5 impactParameter[fm]=2.94939 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 878 projectile=hyperalpha Ekin[MeV]=29130 direction=(0.476409,0.402968,0.781442) material=G4_W + --> #secondaries=33 impactParameter[fm]=8.18942 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=181 #NNcollisions=1 + Collision 879 projectile=anti_xi_b0 Ekin[MeV]=16931.2 direction=(0.485372,0.0253549,0.87394) material=G4_Be + --> #secondaries=9 impactParameter[fm]=3.92583 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 880 projectile=xi_c+ Ekin[MeV]=17030.2 direction=(0.108942,0.785642,0.609014) material=G4_H + --> #secondaries=6 impactParameter[fm]=1.95831 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 881 projectile=D0 Ekin[MeV]=29237 direction=(0.283438,0.713404,0.640873) material=G4_Be + --> #secondaries=8 impactParameter[fm]=0.831605 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 882 projectile=pi+ Ekin[MeV]=8289.98 direction=(0.712247,0.303901,0.632731) material=G4_H + --> #secondaries=3 impactParameter[fm]=0.61756 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 883 projectile=deuteron Ekin[MeV]=9259.77 direction=(0.729336,0.449599,0.515684) material=G4_He + --> #secondaries=9 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 884 projectile=sigma- Ekin[MeV]=7057.57 direction=(0.729214,0.631161,0.264353) material=G4_C + --> #secondaries=8 impactParameter[fm]=3.01811 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 + Collision 885 projectile=neutron Ekin[MeV]=6480.21 direction=(0.627734,0.598664,0.497546) material=G4_W + --> #secondaries=56 impactParameter[fm]=1.50791 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=0 + Collision 886 projectile=B0 Ekin[MeV]=20424.7 direction=(0.57456,0.508329,0.641469) material=G4_W + --> #secondaries=47 impactParameter[fm]=2.53042 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=181 #NNcollisions=1 + Collision 887 projectile=kaon0L Ekin[MeV]=6069.55 direction=(0.247932,0.395757,0.884255) material=G4_Pb + --> #secondaries=74 impactParameter[fm]=4.46266 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=203 #NNcollisions=3 + Collision 888 projectile=omega_b- Ekin[MeV]=24385 direction=(0.253381,0.841339,0.477438) material=G4_Al + --> #secondaries=13 impactParameter[fm]=2.42229 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=0 + Collision 889 projectile=anti_neutron Ekin[MeV]=14873 direction=(0.398034,0.718923,0.569841) material=G4_Fe + --> #secondaries=26 impactParameter[fm]=4.03092 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=56 #NNcollisions=1 + Collision 890 projectile=anti_alpha Ekin[MeV]=24370.3 direction=(0.923531,0.380991,0.0440084) material=G4_Si + --> #secondaries=32 impactParameter[fm]=3.72221 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=25 #NNcollisions=2 + Collision 891 projectile=pi- Ekin[MeV]=4447.7 direction=(0.661172,0.709698,0.24327) material=G4_Be + --> #secondaries=7 impactParameter[fm]=2.78127 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 892 projectile=anti_lambda_c+ Ekin[MeV]=3122.72 direction=(0.655959,0.630467,0.415005) material=G4_He + --> #secondaries=6 impactParameter[fm]=0.304536 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=2 #NNcollisions=1 + Collision 893 projectile=anti_xi_b- Ekin[MeV]=18643 direction=(0.720515,0.610572,0.328726) material=G4_Cu + --> #secondaries=11 impactParameter[fm]=4.34847 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=64 #NNcollisions=1 + Collision 894 projectile=anti_xi- Ekin[MeV]=24710.9 direction=(0.402396,0.631555,0.662734) material=G4_H + --> #secondaries=9 impactParameter[fm]=2.50447 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 895 projectile=omega_b- Ekin[MeV]=25270.5 direction=(0.42636,0.903135,0.0506506) material=G4_Ar + --> #secondaries=4 impactParameter[fm]=5.86835 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=0 + Collision 896 projectile=xi- Ekin[MeV]=1241.57 direction=(0.69989,0.712936,0.0433111) material=G4_Fe + --> #secondaries=21 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 897 projectile=triton Ekin[MeV]=25711.4 direction=(0.712083,0.641629,0.285043) material=G4_C + --> #secondaries=14 impactParameter[fm]=3.57727 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=10 #NNcollisions=1 + Collision 898 projectile=anti_xi_b- Ekin[MeV]=7744.47 direction=(0.087438,0.994141,0.0635538) material=G4_Fe + --> #secondaries=7 impactParameter[fm]=4.06753 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=0 + Collision 899 projectile=He3 Ekin[MeV]=17029.9 direction=(0.788787,0.418274,0.450401) material=G4_He + --> #secondaries=6 impactParameter[fm]=2.15862 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 900 projectile=anti_hyperHe5 Ekin[MeV]=5952.1 direction=(0.507885,0.860992,0.0273031) material=G4_H + --> #secondaries=7 impactParameter[fm]=3.79724 #projectileSpectatorNucleons=4 #targetSpectatorNucleons=1 #NNcollisions=1 + List of produced secondaries: + j=0 kaon+ p=(-154.103,704.352,166.104889.476) MeV + j=1 pi0 p=(593.695,536.943,-222.796841.806) MeV + j=2 pi+ p=(-8.9224,-23.7896,304.42335.853) MeV + j=3 pi0 p=(365.334,819.24,-309.334958.4) MeV + j=4 pi- p=(322.637,-96.8782,195.73413.848) MeV + j=5 anti_alpha p=(3773.93,6354.51,127.5578278.4) MeV + j=6 gamma p=(6.45276,10.7083,1.6827112.615) MeV + Collision 901 projectile=pi+ Ekin[MeV]=13666.1 direction=(0.425771,0.686824,0.58906) material=G4_Cu + --> #secondaries=15 impactParameter[fm]=4.06088 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=64 #NNcollisions=1 + Collision 902 projectile=anti_Bs0 Ekin[MeV]=24778.3 direction=(0.528522,0.344336,0.775949) material=G4_Cu + --> #secondaries=12 impactParameter[fm]=3.99792 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 903 projectile=anti_omega_b- Ekin[MeV]=18963.4 direction=(0.656621,0.537205,0.529396) material=G4_W + --> #secondaries=18 impactParameter[fm]=6.25074 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=1 + Collision 904 projectile=pi+ Ekin[MeV]=26657.4 direction=(0.86275,0.0791688,0.499394) material=G4_C + --> #secondaries=22 impactParameter[fm]=1.79281 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=10 #NNcollisions=2 + Collision 905 projectile=anti_xi_c0 Ekin[MeV]=16909.3 direction=(0.639028,0.721857,0.265643) material=G4_Pb + --> #secondaries=57 impactParameter[fm]=5.97021 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=206 #NNcollisions=2 + Collision 906 projectile=anti_omega_b- Ekin[MeV]=29564 direction=(0.752116,0.505018,0.423412) material=G4_Fe + --> #secondaries=23 impactParameter[fm]=3.5351 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 907 projectile=pi- Ekin[MeV]=7472.43 direction=(0.781906,0.352896,0.513894) material=G4_He + --> #secondaries=8 impactParameter[fm]=2.01148 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 908 projectile=kaon- Ekin[MeV]=21258.4 direction=(0.750945,0.425027,0.505405) material=G4_C + --> #secondaries=5 impactParameter[fm]=3.11362 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=0 + Collision 909 projectile=lambda Ekin[MeV]=17283.2 direction=(0.535165,0.0416729,0.843719) material=G4_Fe + --> #secondaries=10 impactParameter[fm]=3.33184 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=55 #NNcollisions=1 + Collision 910 projectile=kaon0L Ekin[MeV]=24080.9 direction=(0.766097,0.047103,0.640997) material=G4_Si + --> #secondaries=22 impactParameter[fm]=1.37353 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 911 projectile=anti_omega_b- Ekin[MeV]=25858.5 direction=(0.329806,0.608316,0.721928) material=G4_Si + --> #secondaries=15 impactParameter[fm]=2.12673 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 912 projectile=hyperHe5 Ekin[MeV]=6110.25 direction=(0.404699,0.788564,0.463018) material=G4_Al + --> #secondaries=28 impactParameter[fm]=1.92911 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=16 #NNcollisions=0 + Collision 913 projectile=Ds+ Ekin[MeV]=1135.37 direction=(0.353221,0.648932,0.673885) material=G4_Si + --> #secondaries=6 impactParameter[fm]=3.64431 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=0 + Collision 914 projectile=anti_xi_b0 Ekin[MeV]=18496.9 direction=(0.60341,0.16308,0.780578) material=G4_Si + --> #secondaries=14 impactParameter[fm]=4.13326 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 915 projectile=Bc- Ekin[MeV]=1859.02 direction=(0.39455,0.0630258,0.91671) material=G4_Ar + --> #secondaries=5 impactParameter[fm]=2.62376 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=39 #NNcollisions=0 + Collision 916 projectile=anti_hyperalpha Ekin[MeV]=14912.2 direction=(0.671051,0.647615,0.360951) material=G4_Cu + --> #secondaries=64 impactParameter[fm]=3.49163 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=60 #NNcollisions=5 + Collision 917 projectile=Bs0 Ekin[MeV]=17876.8 direction=(0.670981,0.540499,0.507587) material=G4_W + --> #secondaries=21 impactParameter[fm]=4.9906 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=185 #NNcollisions=1 + Collision 918 projectile=omega_b- Ekin[MeV]=3783.56 direction=(0.599541,0.541807,0.589063) material=G4_Ar + --> #secondaries=15 impactParameter[fm]=3.4206 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=38 #NNcollisions=1 + Collision 919 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=29301.9 direction=(0.416523,0.801584,0.428919) material=G4_Al + --> #secondaries=41 impactParameter[fm]=0.701387 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=23 #NNcollisions=7 + Collision 920 projectile=anti_xi_b0 Ekin[MeV]=3697.84 direction=(0.827209,0.0789775,0.556317) material=G4_He + --> #secondaries=4 impactParameter[fm]=2.5719 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=0 + Collision 921 projectile=pi+ Ekin[MeV]=17690.2 direction=(0.227398,0.876545,0.424216) material=G4_Cu + --> #secondaries=22 impactParameter[fm]=2.94159 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=61 #NNcollisions=1 + Collision 922 projectile=B- Ekin[MeV]=2007.77 direction=(0.534602,0.642281,0.54925) material=G4_W + --> #secondaries=28 impactParameter[fm]=4.15961 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=181 #NNcollisions=2 + Collision 923 projectile=anti_proton Ekin[MeV]=20241.4 direction=(0.863701,0.434798,0.254894) material=G4_Ar + --> #secondaries=17 impactParameter[fm]=4.24404 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 924 projectile=anti_deuteron Ekin[MeV]=13836.3 direction=(0.163913,0.850527,0.499736) material=G4_W + --> #secondaries=21 impactParameter[fm]=8.20672 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=182 #NNcollisions=0 + Collision 925 projectile=D0 Ekin[MeV]=13470.8 direction=(0.574344,0.721682,0.3864) material=G4_Al + --> #secondaries=10 impactParameter[fm]=2.99253 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 926 projectile=xi_b0 Ekin[MeV]=24527.4 direction=(0.574881,0.345321,0.741799) material=G4_Al + --> #secondaries=13 impactParameter[fm]=2.49472 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 927 projectile=anti_lambda_b Ekin[MeV]=5858.82 direction=(0.749226,0.585707,0.309206) material=G4_C + --> #secondaries=13 impactParameter[fm]=1.97137 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=9 #NNcollisions=1 + Collision 928 projectile=anti_xi_b0 Ekin[MeV]=20025.5 direction=(0.0223716,0.411658,0.911064) material=G4_Pb + --> #secondaries=41 impactParameter[fm]=4.30325 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=203 #NNcollisions=2 + Collision 929 projectile=neutron Ekin[MeV]=28178.8 direction=(0.243075,0.0557292,0.968405) material=G4_Be + --> #secondaries=15 impactParameter[fm]=4.00326 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 930 projectile=hyperH4 Ekin[MeV]=12457.1 direction=(0.652533,0.49766,0.571433) material=G4_W + --> #secondaries=56 impactParameter[fm]=7.24287 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=175 #NNcollisions=1 + Collision 931 projectile=sigma+ Ekin[MeV]=13160.7 direction=(0.357217,0.931567,0.0676701) material=G4_Be + --> #secondaries=9 impactParameter[fm]=2.29219 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 932 projectile=D0 Ekin[MeV]=28459 direction=(0.473021,0.500866,0.724834) material=G4_Si + --> #secondaries=13 impactParameter[fm]=3.87379 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=28 #NNcollisions=1 + Collision 933 projectile=xi0 Ekin[MeV]=15106.7 direction=(0.7851,0.618976,0.0220775) material=G4_He + --> #secondaries=4 impactParameter[fm]=3.05351 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 934 projectile=lambda Ekin[MeV]=11501 direction=(0.861429,0.0254229,0.507241) material=G4_Be + --> #secondaries=11 impactParameter[fm]=1.01508 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=7 #NNcollisions=1 + Collision 935 projectile=anti_xi_c+ Ekin[MeV]=14028 direction=(0.593598,0.786349,0.171161) material=G4_Be + --> #secondaries=6 impactParameter[fm]=1.98793 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 936 projectile=hyperH4 Ekin[MeV]=1567.25 direction=(0.983012,0.178271,0.0436588) material=G4_Si + --> #secondaries=15 impactParameter[fm]=3.12716 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=0 + Collision 937 projectile=pi- Ekin[MeV]=25723.2 direction=(0.84449,0.0859076,0.528636) material=G4_W + --> #secondaries=65 impactParameter[fm]=3.19794 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=180 #NNcollisions=3 + Collision 938 projectile=anti_omega_c0 Ekin[MeV]=24282.4 direction=(0.51445,0.266406,0.815089) material=G4_Be + --> #secondaries=10 impactParameter[fm]=0.465198 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=7 #NNcollisions=1 + Collision 939 projectile=anti_Bs0 Ekin[MeV]=5620.57 direction=(0.763777,0.644017,0.043432) material=G4_Be + --> #secondaries=6 impactParameter[fm]=4.13656 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 940 projectile=anti_lambda Ekin[MeV]=12358.9 direction=(0.24265,0.857095,0.454433) material=G4_Pb + --> #secondaries=56 impactParameter[fm]=5.4128 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=207 #NNcollisions=1 + Collision 941 projectile=triton Ekin[MeV]=29172.6 direction=(0.175876,0.272049,0.946074) material=G4_Si + --> #secondaries=39 impactParameter[fm]=1.82983 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=22 #NNcollisions=5 + Collision 942 projectile=anti_omega_b- Ekin[MeV]=8589.25 direction=(0.833838,0.329621,0.442791) material=G4_H + --> #secondaries=2 impactParameter[fm]=0.666279 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 943 projectile=anti_triton Ekin[MeV]=16127.5 direction=(0.754753,0.655967,0.00739576) material=G4_C + --> #secondaries=15 impactParameter[fm]=3.11926 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 944 projectile=D- Ekin[MeV]=22880.9 direction=(0.400643,0.536607,0.742656) material=G4_W + --> #secondaries=31 impactParameter[fm]=7.61032 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=185 #NNcollisions=1 + Collision 945 projectile=anti_xi- Ekin[MeV]=25396 direction=(0.426544,0.855473,0.293642) material=G4_W + --> #secondaries=38 impactParameter[fm]=4.79474 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=180 #NNcollisions=1 + Collision 946 projectile=anti_doublehyperH4 Ekin[MeV]=5563.22 direction=(0.505892,0.725169,0.467122) material=G4_Al + --> #secondaries=19 impactParameter[fm]=4.05275 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=27 #NNcollisions=2 + Collision 947 projectile=xi_c0 Ekin[MeV]=18322.6 direction=(0.180039,0.626319,0.758492) material=G4_W + --> #secondaries=21 impactParameter[fm]=8.04192 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=183 #NNcollisions=1 + Collision 948 projectile=anti_xi_c0 Ekin[MeV]=27798.5 direction=(0.968732,0.0293434,0.246369) material=G4_Pb + --> #secondaries=58 impactParameter[fm]=5.12309 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=202 #NNcollisions=3 + Collision 949 projectile=anti_hyperHe5 Ekin[MeV]=27431.8 direction=(0.871283,0.018567,0.49043) material=G4_Be + --> #secondaries=9 impactParameter[fm]=4.42534 #projectileSpectatorNucleons=4 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 950 projectile=anti_xi_c0 Ekin[MeV]=22078.4 direction=(0.669994,0.180605,0.720062) material=G4_Cu + --> #secondaries=22 impactParameter[fm]=1.52225 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 951 projectile=anti_hypertriton Ekin[MeV]=16611.3 direction=(0.981776,0.171254,0.0823938) material=G4_H + --> #secondaries=4 impactParameter[fm]=1.14436 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=1 #NNcollisions=1 + Collision 952 projectile=pi+ Ekin[MeV]=28617.4 direction=(1.08506e-05,0.821911,0.569615) material=G4_C + --> #secondaries=5 impactParameter[fm]=1.84895 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=0 + Collision 953 projectile=anti_xi_b- Ekin[MeV]=23347.6 direction=(0.259575,0.44838,0.855322) material=G4_H + --> #secondaries=6 impactParameter[fm]=0.637221 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 954 projectile=anti_xi- Ekin[MeV]=4920.99 direction=(0.114005,0.468123,0.876278) material=G4_He + --> #secondaries=7 impactParameter[fm]=2.33213 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 955 projectile=anti_xi_b- Ekin[MeV]=4284.18 direction=(0.499008,0.742682,0.446559) material=G4_Be + --> #secondaries=6 impactParameter[fm]=1.70338 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=7 #NNcollisions=1 + Collision 956 projectile=anti_xi_b0 Ekin[MeV]=7205.99 direction=(0.298269,0.653541,0.695644) material=G4_Ar + --> #secondaries=7 impactParameter[fm]=3.4594 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=1 + Collision 957 projectile=Bc+ Ekin[MeV]=1684.95 direction=(0.884472,0.247548,0.395511) material=G4_Fe + --> #secondaries=7 impactParameter[fm]=2.13215 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=55 #NNcollisions=0 + Collision 958 projectile=xi_c0 Ekin[MeV]=21630.4 direction=(0.573768,0.60142,0.555953) material=G4_Cu + --> #secondaries=23 impactParameter[fm]=4.69163 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=62 #NNcollisions=1 + Collision 959 projectile=Ds+ Ekin[MeV]=20724.2 direction=(0.730854,0.619624,0.286214) material=G4_W + --> #secondaries=72 impactParameter[fm]=3.83289 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=180 #NNcollisions=3 + Collision 960 projectile=Ds+ Ekin[MeV]=15396.3 direction=(0.886669,0.0730643,0.456596) material=G4_He + --> #secondaries=9 impactParameter[fm]=0.948703 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 961 projectile=lambda_c+ Ekin[MeV]=23553.1 direction=(0.120868,0.969519,0.213129) material=G4_Si + --> #secondaries=29 impactParameter[fm]=0.677952 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 962 projectile=anti_omega- Ekin[MeV]=16579.6 direction=(0.50071,0.191688,0.844124) material=G4_Si + --> #secondaries=15 impactParameter[fm]=4.00315 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 963 projectile=anti_sigma- Ekin[MeV]=2742.85 direction=(0.523691,0.84344,0.119817) material=G4_Be + --> #secondaries=5 impactParameter[fm]=1.56142 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 964 projectile=xi- Ekin[MeV]=26923.8 direction=(0.470535,0.853676,0.223237) material=G4_Si + --> #secondaries=33 impactParameter[fm]=2.43214 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=25 #NNcollisions=2 + Collision 965 projectile=anti_alpha Ekin[MeV]=18550.5 direction=(0.124044,0.894808,0.428873) material=G4_Be + --> #secondaries=19 impactParameter[fm]=2.12237 #projectileSpectatorNucleons=1 #targetSpectatorNucleons=7 #NNcollisions=3 + Collision 966 projectile=B0 Ekin[MeV]=19172.7 direction=(0.0106694,0.162933,0.986579) material=G4_Si + --> #secondaries=15 impactParameter[fm]=1.49081 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=25 #NNcollisions=3 + Collision 967 projectile=hyperHe5 Ekin[MeV]=15345 direction=(0.195499,0.936101,0.292394) material=G4_He + --> #secondaries=7 impactParameter[fm]=3.07204 #projectileSpectatorNucleons=4 #targetSpectatorNucleons=3 #NNcollisions=1 + Collision 968 projectile=alpha Ekin[MeV]=14724.9 direction=(0.80472,0.593408,0.0171062) material=G4_Be + --> #secondaries=13 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 969 projectile=hyperH4 Ekin[MeV]=27826.2 direction=(0.13744,0.775967,0.615618) material=G4_Si + --> #secondaries=14 impactParameter[fm]=4.6574 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=27 #NNcollisions=0 + Collision 970 projectile=Bs0 Ekin[MeV]=12419.4 direction=(0.366112,0.658316,0.65771) material=G4_Al + --> #secondaries=4 impactParameter[fm]=2.80136 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 971 projectile=anti_B0 Ekin[MeV]=9889.65 direction=(0.668611,0.72467,0.166769) material=G4_Be + --> #secondaries=8 impactParameter[fm]=2.38846 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 972 projectile=Bs0 Ekin[MeV]=11058.8 direction=(0.604105,0.790717,0.0991146) material=G4_Si + --> #secondaries=6 impactParameter[fm]=3.94696 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=27 #NNcollisions=1 + Collision 973 projectile=anti_hypertriton Ekin[MeV]=6151.95 direction=(0.307907,0.95055,0.0405864) material=G4_Cu + --> #secondaries=20 impactParameter[fm]=6.5184 #projectileSpectatorNucleons=2 #targetSpectatorNucleons=61 #NNcollisions=2 + Collision 974 projectile=anti_B0 Ekin[MeV]=27817.5 direction=(0.529088,0.32386,0.784335) material=G4_Pb + --> #secondaries=75 impactParameter[fm]=3.50444 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=203 #NNcollisions=1 + Collision 975 projectile=neutron Ekin[MeV]=29339.6 direction=(0.647877,0.519072,0.557511) material=G4_W + --> #secondaries=38 impactParameter[fm]=6.48442 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=181 #NNcollisions=2 + Collision 976 projectile=anti_sigma- Ekin[MeV]=11665.2 direction=(0.164975,0.689422,0.705323) material=G4_Be + --> #secondaries=8 impactParameter[fm]=3.34335 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=1 + Collision 977 projectile=omega_c0 Ekin[MeV]=24349.3 direction=(0.617321,0.00791661,0.786672) material=G4_Ar + --> #secondaries=9 impactParameter[fm]=4.54699 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=39 #NNcollisions=0 + Collision 978 projectile=kaon0S Ekin[MeV]=23863.5 direction=(0.464203,0.155118,0.87204) material=G4_Ar + --> #secondaries=33 impactParameter[fm]=0.216807 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=35 #NNcollisions=5 + Collision 979 projectile=anti_omega_b- Ekin[MeV]=20756.8 direction=(0.507661,0.000902237,0.861556) material=G4_W + --> #secondaries=26 impactParameter[fm]=7.10079 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=185 #NNcollisions=1 + Collision 980 projectile=omega_c0 Ekin[MeV]=20657 direction=(0.432894,0.6226,0.651899) material=G4_C + --> #secondaries=9 impactParameter[fm]=2.85333 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=11 #NNcollisions=0 + Collision 981 projectile=anti_hypertriton Ekin[MeV]=16482.8 direction=(0.525426,0.681496,0.509403) material=G4_Si + --> #secondaries=24 impactParameter[fm]=1.61599 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=2 + Collision 982 projectile=xi0 Ekin[MeV]=18003 direction=(0.357089,0.921833,0.1507) material=G4_H + --> #secondaries=4 impactParameter[fm]=1.5042 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 983 projectile=sigma+ Ekin[MeV]=3192.96 direction=(0.797671,0.0200637,0.602759) material=G4_Pb + --> #secondaries=82 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 984 projectile=hyperH4 Ekin[MeV]=26496 direction=(0.770395,0.597464,0.222551) material=G4_H + --> #secondaries=8 impactParameter[fm]=1.09668 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 985 projectile=kaon0L Ekin[MeV]=22919.8 direction=(0.529339,0.0634105,0.846038) material=G4_Fe + --> #secondaries=25 impactParameter[fm]=4.39752 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=54 #NNcollisions=2 + Collision 986 projectile=B+ Ekin[MeV]=23503.3 direction=(0.0761264,0.952359,0.295326) material=G4_C + --> #secondaries=11 impactParameter[fm]=1.56527 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=11 #NNcollisions=1 + Collision 987 projectile=xi_b- Ekin[MeV]=8928 direction=(0.0750195,0.833257,0.547772) material=G4_Be + --> #secondaries=6 impactParameter[fm]=4.06043 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=8 #NNcollisions=0 + Collision 988 projectile=pi- Ekin[MeV]=5328.31 direction=(0.674239,0.430457,0.600091) material=G4_Pb + --> #secondaries=85 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 989 projectile=sigma+ Ekin[MeV]=3643.67 direction=(0.51339,0.750116,0.416842) material=G4_Cu + --> #secondaries=31 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 990 projectile=neutron Ekin[MeV]=14510.2 direction=(0.915583,0.402055,0.00769449) material=G4_Al + --> #secondaries=15 impactParameter[fm]=2.62555 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=26 #NNcollisions=1 + Collision 991 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=21395.6 direction=(0.679626,0.341939,0.648988) material=G4_Cu + --> #secondaries=18 impactParameter[fm]=5.66127 #projectileSpectatorNucleons=3 #targetSpectatorNucleons=64 #NNcollisions=2 + Collision 992 projectile=anti_doublehyperdoubleneutron Ekin[MeV]=17352.6 direction=(0.525863,0.0228906,0.850261) material=G4_Cu + --> #secondaries=50 impactParameter[fm]=3.69479 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=61 #NNcollisions=4 + Collision 993 projectile=xi0 Ekin[MeV]=27602.9 direction=(0.220716,0.679803,0.699394) material=G4_Al + --> #secondaries=26 impactParameter[fm]=3.44958 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=24 #NNcollisions=2 + Collision 994 projectile=xi0 Ekin[MeV]=28381.2 direction=(0.203754,0.248061,0.947075) material=G4_H + --> #secondaries=7 impactParameter[fm]=1.21678 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=0 #NNcollisions=1 + Collision 995 projectile=triton Ekin[MeV]=5230.08 direction=(0.382432,0.519641,0.764015) material=G4_Cu + --> #secondaries=8 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 996 projectile=anti_hyperHe5 Ekin[MeV]=3950.43 direction=(0.734286,0.603328,0.31116) material=G4_Fe + --> #secondaries=63 impactParameter[fm]=2.84176 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=49 #NNcollisions=5 + Collision 997 projectile=He3 Ekin[MeV]=8609.56 direction=(0.80139,0.233678,0.550607) material=G4_W + --> #secondaries=72 impactParameter[fm]=-999 #projectileSpectatorNucleons=-999 #targetSpectatorNucleons=-999 #NNcollisions=-999 + Collision 998 projectile=anti_xi_c0 Ekin[MeV]=25157.5 direction=(0.488643,0.271081,0.829303) material=G4_Cu + --> #secondaries=46 impactParameter[fm]=2.19018 #projectileSpectatorNucleons=0 #targetSpectatorNucleons=60 #NNcollisions=2 + Collision 999 projectile=pi- Ekin[MeV]=8577.68 direction=(0.198351,0.899288,0.389793) material=G4_Ar + --> #secondaries=39 impactParameter[fm]=1.15225 #projectileSpectatorNucleons=-1 #targetSpectatorNucleons=35 #NNcollisions=4 + + Final random number = 0.349323 === End of test === diff --git a/examples/extended/hadronic/Hadr09/src/HadronicGenerator.cc b/examples/extended/hadronic/Hadr09/src/HadronicGenerator.cc index a606871c73..3efcbe7519 100644 --- a/examples/extended/hadronic/Hadr09/src/HadronicGenerator.cc +++ b/examples/extended/hadronic/Hadr09/src/HadronicGenerator.cc @@ -121,6 +121,19 @@ #include "G4OmegabMinus.hh" #include "G4AntiOmegabMinus.hh" +#include "G4HyperTriton.hh" +#include "G4AntiHyperTriton.hh" +#include "G4HyperAlpha.hh" +#include "G4AntiHyperAlpha.hh" +#include "G4HyperH4.hh" +#include "G4AntiHyperH4.hh" +#include "G4DoubleHyperH4.hh" +#include "G4AntiDoubleHyperH4.hh" +#include "G4DoubleHyperDoubleNeutron.hh" +#include "G4AntiDoubleHyperDoubleNeutron.hh" +#include "G4HyperHe5.hh" +#include "G4AntiHyperHe5.hh" + #include "G4HadronInelasticProcess.hh" #include "G4HadronicParameters.hh" @@ -222,18 +235,19 @@ HadronicGenerator::HadronicGenerator( const G4String physicsCase ) : // If the following line is set, then the square of the impact parameter is sampled // randomly from a flat distribution in the range [ Bmin*Bmin, Bmax*Bmax ] - //theStringModel->SetBminBmax( 0.0, 2.0*fermi ); //***LOOKHERE*** CHOOSE IMPACT PARAMETER MIN & MAX + //***LOOKHERE*** CHOOSE IMPACT PARAMETER MIN & MAX + //theStringModel->SetBminBmax( 0.0, 2.0*fermi ); theFTFPmodel->SetHighEnergyGenerator( theStringModel ); // Model instance with constraint to be above a kinetic energy threshold. // (Used for ions in all physics lists, and, in the case of non-QGS-based physics lists, - // also for pions, kaons, nucleons and hyperons.) + // also for pions, kaons, nucleons and hyperons.) G4TheoFSGenerator* theFTFPmodel_aboveThreshold = new G4TheoFSGenerator( "FTFP" ); theFTFPmodel_aboveThreshold->SetMaxEnergy( G4HadronicParameters::Instance()->GetMaxEnergy() ); theFTFPmodel_aboveThreshold->SetTransport( theCascade ); theFTFPmodel_aboveThreshold->SetHighEnergyGenerator( theStringModel ); // Model instance with constraint to be within two kinetic energy thresholds. - // (Used in the case of QGS-based physics lists for pions, kaons, nucleons and hyperons.) + // (Used in the case of QGS-based physics lists for pions, kaons, nucleons and hyperons.) G4TheoFSGenerator* theFTFPmodel_constrained = new G4TheoFSGenerator( "FTFP" ); theFTFPmodel_constrained->SetMaxEnergy( G4HadronicParameters::Instance()->GetMaxEnergy() ); theFTFPmodel_constrained->SetTransport( theCascade ); @@ -334,97 +348,97 @@ HadronicGenerator::HadronicGenerator( const G4String physicsCase ) : new G4HadronInelasticProcess( "pi-Inelastic", G4PionMinus::Definition() ); fProcessMap.insert( ProcessPair( G4PionMinus::Definition(), thePionMinusInelasticProcess ) ); G4HadronicProcess* thePionPlusInelasticProcess = - new G4HadronInelasticProcess( "pi+Inelastic", G4PionPlus::Definition() ); + new G4HadronInelasticProcess( "pi+Inelastic", G4PionPlus::Definition() ); fProcessMap.insert( ProcessPair( G4PionPlus::Definition(), thePionPlusInelasticProcess ) ); G4HadronicProcess* theKaonMinusInelasticProcess = - new G4HadronInelasticProcess( "kaon-Inelastic", G4KaonMinus::Definition() ); + new G4HadronInelasticProcess( "kaon-Inelastic", G4KaonMinus::Definition() ); fProcessMap.insert( ProcessPair( G4KaonMinus::Definition(), theKaonMinusInelasticProcess ) ); G4HadronicProcess* theKaonPlusInelasticProcess = - new G4HadronInelasticProcess( "kaon+Inelastic", G4KaonPlus::Definition() ); + new G4HadronInelasticProcess( "kaon+Inelastic", G4KaonPlus::Definition() ); fProcessMap.insert( ProcessPair( G4KaonPlus::Definition(), theKaonPlusInelasticProcess ) ); G4HadronicProcess* theKaonZeroLInelasticProcess = - new G4HadronInelasticProcess( "kaon0LInelastic", G4KaonZeroLong::Definition() ); + new G4HadronInelasticProcess( "kaon0LInelastic", G4KaonZeroLong::Definition() ); fProcessMap.insert( ProcessPair( G4KaonZeroLong::Definition(), theKaonZeroLInelasticProcess ) ); G4HadronicProcess* theKaonZeroSInelasticProcess = - new G4HadronInelasticProcess( "kaon0SInelastic", G4KaonZeroShort::Definition() ); + new G4HadronInelasticProcess( "kaon0SInelastic", G4KaonZeroShort::Definition() ); fProcessMap.insert( ProcessPair( G4KaonZeroShort::Definition(), theKaonZeroSInelasticProcess ) ); G4HadronicProcess* theProtonInelasticProcess = - new G4HadronInelasticProcess( "protonInelastic", G4Proton::Definition() ); + new G4HadronInelasticProcess( "protonInelastic", G4Proton::Definition() ); fProcessMap.insert( ProcessPair( G4Proton::Definition(), theProtonInelasticProcess ) ); G4HadronicProcess* theNeutronInelasticProcess = - new G4HadronInelasticProcess( "neutronInelastic", G4Neutron::Definition() ); + new G4HadronInelasticProcess( "neutronInelastic", G4Neutron::Definition() ); fProcessMap.insert( ProcessPair( G4Neutron::Definition(), theNeutronInelasticProcess ) ); G4HadronicProcess* theDeuteronInelasticProcess = - new G4HadronInelasticProcess( "dInelastic", G4Deuteron::Definition() ); + new G4HadronInelasticProcess( "dInelastic", G4Deuteron::Definition() ); fProcessMap.insert( ProcessPair( G4Deuteron::Definition(), theDeuteronInelasticProcess ) ); G4HadronicProcess* theTritonInelasticProcess = - new G4HadronInelasticProcess( "tInelastic", G4Triton::Definition() ); + new G4HadronInelasticProcess( "tInelastic", G4Triton::Definition() ); fProcessMap.insert( ProcessPair( G4Triton::Definition(), theTritonInelasticProcess ) ); G4HadronicProcess* theHe3InelasticProcess = - new G4HadronInelasticProcess( "he3Inelastic", G4He3::Definition() ); + new G4HadronInelasticProcess( "he3Inelastic", G4He3::Definition() ); fProcessMap.insert( ProcessPair( G4He3::Definition(), theHe3InelasticProcess ) ); G4HadronicProcess* theAlphaInelasticProcess = - new G4HadronInelasticProcess( "alphaInelastic", G4Alpha::Definition() ); + new G4HadronInelasticProcess( "alphaInelastic", G4Alpha::Definition() ); fProcessMap.insert( ProcessPair( G4Alpha::Definition(), theAlphaInelasticProcess ) ); G4HadronicProcess* theIonInelasticProcess = - new G4HadronInelasticProcess( "ionInelastic", G4GenericIon::Definition() ); + new G4HadronInelasticProcess( "ionInelastic", G4GenericIon::Definition() ); fProcessMap.insert( ProcessPair( G4GenericIon::Definition(), theIonInelasticProcess ) ); G4HadronicProcess* theLambdaInelasticProcess = - new G4HadronInelasticProcess( "lambdaInelastic", G4Lambda::Definition() ); + new G4HadronInelasticProcess( "lambdaInelastic", G4Lambda::Definition() ); fProcessMap.insert( ProcessPair( G4Lambda::Definition(), theLambdaInelasticProcess ) ); G4HadronicProcess* theSigmaMinusInelasticProcess = - new G4HadronInelasticProcess( "sigma-Inelastic", G4SigmaMinus::Definition() ); + new G4HadronInelasticProcess( "sigma-Inelastic", G4SigmaMinus::Definition() ); fProcessMap.insert( ProcessPair( G4SigmaMinus::Definition(), theSigmaMinusInelasticProcess ) ); G4HadronicProcess* theSigmaPlusInelasticProcess = - new G4HadronInelasticProcess( "sigma+Inelastic", G4SigmaPlus::Definition() ); + new G4HadronInelasticProcess( "sigma+Inelastic", G4SigmaPlus::Definition() ); fProcessMap.insert( ProcessPair( G4SigmaPlus::Definition(), theSigmaPlusInelasticProcess ) ); G4HadronicProcess* theXiMinusInelasticProcess = - new G4HadronInelasticProcess( "xi-Inelastic", G4XiMinus::Definition() ); + new G4HadronInelasticProcess( "xi-Inelastic", G4XiMinus::Definition() ); fProcessMap.insert( ProcessPair( G4XiMinus::Definition(), theXiMinusInelasticProcess ) ); G4HadronicProcess* theXiZeroInelasticProcess = - new G4HadronInelasticProcess( "xi0Inelastic", G4XiZero::Definition() ); + new G4HadronInelasticProcess( "xi0Inelastic", G4XiZero::Definition() ); fProcessMap.insert( ProcessPair( G4XiZero::Definition(), theXiZeroInelasticProcess ) ); G4HadronicProcess* theOmegaMinusInelasticProcess = - new G4HadronInelasticProcess( "omega-Inelastic", G4OmegaMinus::Definition() ); + new G4HadronInelasticProcess( "omega-Inelastic", G4OmegaMinus::Definition() ); fProcessMap.insert( ProcessPair( G4OmegaMinus::Definition(), theOmegaMinusInelasticProcess ) ); G4HadronicProcess* theAntiProtonInelasticProcess = - new G4HadronInelasticProcess( "anti_protonInelastic", G4AntiProton::Definition() ); + new G4HadronInelasticProcess( "anti_protonInelastic", G4AntiProton::Definition() ); fProcessMap.insert( ProcessPair( G4AntiProton::Definition(), theAntiProtonInelasticProcess ) ); G4HadronicProcess* theAntiNeutronInelasticProcess = - new G4HadronInelasticProcess( "anti_neutronInelastic", G4AntiNeutron::Definition() ); + new G4HadronInelasticProcess( "anti_neutronInelastic", G4AntiNeutron::Definition() ); fProcessMap.insert( ProcessPair( G4AntiNeutron::Definition(), theAntiNeutronInelasticProcess ) ); G4HadronicProcess* theAntiDeuteronInelasticProcess = - new G4HadronInelasticProcess( "anti_deuteronInelastic", G4AntiDeuteron::Definition() ); + new G4HadronInelasticProcess( "anti_deuteronInelastic", G4AntiDeuteron::Definition() ); fProcessMap.insert( ProcessPair( G4AntiDeuteron::Definition(), theAntiDeuteronInelasticProcess ) ); G4HadronicProcess* theAntiTritonInelasticProcess = - new G4HadronInelasticProcess( "anti_tritonInelastic", G4AntiTriton::Definition() ); + new G4HadronInelasticProcess( "anti_tritonInelastic", G4AntiTriton::Definition() ); fProcessMap.insert( ProcessPair( G4AntiTriton::Definition(), theAntiTritonInelasticProcess ) ); G4HadronicProcess* theAntiHe3InelasticProcess = - new G4HadronInelasticProcess( "anti_He3Inelastic", G4AntiHe3::Definition() ); + new G4HadronInelasticProcess( "anti_He3Inelastic", G4AntiHe3::Definition() ); fProcessMap.insert( ProcessPair( G4AntiHe3::Definition(), theAntiHe3InelasticProcess ) ); G4HadronicProcess* theAntiAlphaInelasticProcess = - new G4HadronInelasticProcess( "anti_alphaInelastic", G4AntiAlpha::Definition() ); + new G4HadronInelasticProcess( "anti_alphaInelastic", G4AntiAlpha::Definition() ); fProcessMap.insert( ProcessPair( G4AntiAlpha::Definition(), theAntiAlphaInelasticProcess ) ); G4HadronicProcess* theAntiLambdaInelasticProcess = - new G4HadronInelasticProcess( "anti-lambdaInelastic", G4AntiLambda::Definition() ); + new G4HadronInelasticProcess( "anti-lambdaInelastic", G4AntiLambda::Definition() ); fProcessMap.insert( ProcessPair( G4AntiLambda::Definition(), theAntiLambdaInelasticProcess ) ); G4HadronicProcess* theAntiSigmaMinusInelasticProcess = - new G4HadronInelasticProcess( "anti_sigma-Inelastic", G4AntiSigmaMinus::Definition() ); + new G4HadronInelasticProcess( "anti_sigma-Inelastic", G4AntiSigmaMinus::Definition() ); fProcessMap.insert( ProcessPair( G4AntiSigmaMinus::Definition(), theAntiSigmaMinusInelasticProcess ) ); G4HadronicProcess* theAntiSigmaPlusInelasticProcess = - new G4HadronInelasticProcess( "anti_sigma+Inelastic", G4AntiSigmaPlus::Definition() ); + new G4HadronInelasticProcess( "anti_sigma+Inelastic", G4AntiSigmaPlus::Definition() ); fProcessMap.insert( ProcessPair( G4AntiSigmaPlus::Definition(), theAntiSigmaPlusInelasticProcess ) ); G4HadronicProcess* theAntiXiMinusInelasticProcess = - new G4HadronInelasticProcess( "anti_xi-Inelastic", G4AntiXiMinus::Definition() ); + new G4HadronInelasticProcess( "anti_xi-Inelastic", G4AntiXiMinus::Definition() ); fProcessMap.insert( ProcessPair( G4AntiXiMinus::Definition(), theAntiXiMinusInelasticProcess ) ); G4HadronicProcess* theAntiXiZeroInelasticProcess = - new G4HadronInelasticProcess( "anti_xi0Inelastic", G4AntiXiZero::Definition() ); + new G4HadronInelasticProcess( "anti_xi0Inelastic", G4AntiXiZero::Definition() ); fProcessMap.insert( ProcessPair( G4AntiXiZero::Definition(), theAntiXiZeroInelasticProcess ) ); G4HadronicProcess* theAntiOmegaMinusInelasticProcess = - new G4HadronInelasticProcess( "anti_omega-Inelastic", G4AntiOmegaMinus::Definition() ); + new G4HadronInelasticProcess( "anti_omega-Inelastic", G4AntiOmegaMinus::Definition() ); fProcessMap.insert( ProcessPair( G4AntiOmegaMinus::Definition(), theAntiOmegaMinusInelasticProcess ) ); @@ -440,7 +454,7 @@ HadronicGenerator::HadronicGenerator( const G4String physicsCase ) : G4HadronicProcess* theAntiDZeroInelasticProcess = new G4HadronInelasticProcess( "anti_D0Inelastic", G4AntiDMesonZero::Definition() ); fProcessMap.insert( ProcessPair( G4AntiDMesonZero::Definition(), - theAntiDZeroInelasticProcess ) ); + theAntiDZeroInelasticProcess ) ); G4HadronicProcess* theDsPlusInelasticProcess = new G4HadronInelasticProcess( "Ds+Inelastic", G4DsMesonPlus::Definition() ); fProcessMap.insert( ProcessPair( G4DsMesonPlus::Definition(), theDsPlusInelasticProcess ) ); @@ -459,14 +473,14 @@ HadronicGenerator::HadronicGenerator( const G4String physicsCase ) : G4HadronicProcess* theAntiBZeroInelasticProcess = new G4HadronInelasticProcess( "anti_B0Inelastic", G4AntiBMesonZero::Definition() ); fProcessMap.insert( ProcessPair( G4AntiBMesonZero::Definition(), - theAntiBZeroInelasticProcess ) ); + theAntiBZeroInelasticProcess ) ); G4HadronicProcess* theBsZeroInelasticProcess = new G4HadronInelasticProcess( "Bs0Inelastic", G4BsMesonZero::Definition() ); fProcessMap.insert( ProcessPair( G4BsMesonZero::Definition(), theBsZeroInelasticProcess ) ); G4HadronicProcess* theAntiBsZeroInelasticProcess = new G4HadronInelasticProcess( "anti_Bs0Inelastic", G4AntiBsMesonZero::Definition() ); fProcessMap.insert( ProcessPair( G4AntiBsMesonZero::Definition(), - theAntiBsZeroInelasticProcess ) ); + theAntiBsZeroInelasticProcess ) ); G4HadronicProcess* theBcPlusInelasticProcess = new G4HadronInelasticProcess( "Bc+Inelastic", G4BcMesonPlus::Definition() ); fProcessMap.insert( ProcessPair( G4BcMesonPlus::Definition(), theBcPlusInelasticProcess ) ); @@ -476,62 +490,114 @@ HadronicGenerator::HadronicGenerator( const G4String physicsCase ) : G4HadronicProcess* theLambdacPlusInelasticProcess = new G4HadronInelasticProcess( "lambda_c+Inelastic", G4LambdacPlus::Definition() ); fProcessMap.insert( ProcessPair( G4LambdacPlus::Definition(), - theLambdacPlusInelasticProcess ) ); + theLambdacPlusInelasticProcess ) ); G4HadronicProcess* theAntiLambdacPlusInelasticProcess = new G4HadronInelasticProcess( "anti_lambda_c+Inelastic", G4AntiLambdacPlus::Definition() ); fProcessMap.insert( ProcessPair( G4AntiLambdacPlus::Definition(), - theAntiLambdacPlusInelasticProcess ) ); + theAntiLambdacPlusInelasticProcess ) ); G4HadronicProcess* theXicPlusInelasticProcess = new G4HadronInelasticProcess( "xi_c+Inelastic", G4XicPlus::Definition() ); fProcessMap.insert( ProcessPair( G4XicPlus::Definition(), theXicPlusInelasticProcess ) ); G4HadronicProcess* theAntiXicPlusInelasticProcess = new G4HadronInelasticProcess( "anti_xi_c+Inelastic", G4AntiXicPlus::Definition() ); fProcessMap.insert( ProcessPair( G4AntiXicPlus::Definition(), - theAntiXicPlusInelasticProcess ) ); + theAntiXicPlusInelasticProcess ) ); G4HadronicProcess* theXicZeroInelasticProcess = new G4HadronInelasticProcess( "xi_c0Inelastic", G4XicZero::Definition() ); fProcessMap.insert( ProcessPair( G4XicZero::Definition(), theXicZeroInelasticProcess ) ); G4HadronicProcess* theAntiXicZeroInelasticProcess = new G4HadronInelasticProcess( "anti_xi_c0Inelastic", G4AntiXicZero::Definition() ); fProcessMap.insert( ProcessPair( G4AntiXicZero::Definition(), - theAntiXicZeroInelasticProcess ) ); + theAntiXicZeroInelasticProcess ) ); G4HadronicProcess* theOmegacZeroInelasticProcess = new G4HadronInelasticProcess( "omega_c0Inelastic", G4OmegacZero::Definition() ); fProcessMap.insert( ProcessPair( G4OmegacZero::Definition(), theOmegacZeroInelasticProcess ) ); G4HadronicProcess* theAntiOmegacZeroInelasticProcess = new G4HadronInelasticProcess( "anti_omega_c0Inelastic", G4AntiOmegacZero::Definition() ); fProcessMap.insert( ProcessPair( G4AntiOmegacZero::Definition(), - theAntiOmegacZeroInelasticProcess ) ); + theAntiOmegacZeroInelasticProcess ) ); G4HadronicProcess* theLambdabInelasticProcess = new G4HadronInelasticProcess( "lambda_bInelastic", G4Lambdab::Definition() ); fProcessMap.insert( ProcessPair( G4Lambdab::Definition(), theLambdabInelasticProcess ) ); G4HadronicProcess* theAntiLambdabInelasticProcess = new G4HadronInelasticProcess( "anti_lambda_bInelastic", G4AntiLambdab::Definition() ); fProcessMap.insert( ProcessPair( G4AntiLambdab::Definition(), - theAntiLambdabInelasticProcess ) ); + theAntiLambdabInelasticProcess ) ); G4HadronicProcess* theXibZeroInelasticProcess = new G4HadronInelasticProcess( "xi_b0Inelastic", G4XibZero::Definition() ); fProcessMap.insert( ProcessPair( G4XibZero::Definition(), theXibZeroInelasticProcess ) ); G4HadronicProcess* theAntiXibZeroInelasticProcess = new G4HadronInelasticProcess( "anti_xi_b0Inelastic", G4AntiXibZero::Definition() ); fProcessMap.insert( ProcessPair( G4AntiXibZero::Definition(), - theAntiXibZeroInelasticProcess ) ); + theAntiXibZeroInelasticProcess ) ); G4HadronicProcess* theXibMinusInelasticProcess = new G4HadronInelasticProcess( "xi_b-Inelastic", G4XibMinus::Definition() ); fProcessMap.insert( ProcessPair( G4XibMinus::Definition(), theXibMinusInelasticProcess ) ); G4HadronicProcess* theAntiXibMinusInelasticProcess = new G4HadronInelasticProcess( "anti_xi_b-Inelastic", G4AntiXibMinus::Definition() ); fProcessMap.insert( ProcessPair( G4AntiXibMinus::Definition(), - theAntiXibMinusInelasticProcess ) ); + theAntiXibMinusInelasticProcess ) ); G4HadronicProcess* theOmegabMinusInelasticProcess = new G4HadronInelasticProcess( "omega_b-Inelastic", G4OmegabMinus::Definition() ); fProcessMap.insert( ProcessPair( G4OmegabMinus::Definition(), - theOmegabMinusInelasticProcess ) ); + theOmegabMinusInelasticProcess ) ); G4HadronicProcess* theAntiOmegabMinusInelasticProcess = new G4HadronInelasticProcess( "anti_omega_b-Inelastic", G4AntiOmegabMinus::Definition() ); fProcessMap.insert( ProcessPair( G4AntiOmegabMinus::Definition(), - theAntiOmegabMinusInelasticProcess ) ); + theAntiOmegabMinusInelasticProcess ) ); + G4HadronicProcess* theHyperTritonInelasticProcess = + new G4HadronInelasticProcess( "hypertritonInelastic", G4HyperTriton::Definition() ); + fProcessMap.insert( ProcessPair( G4HyperTriton::Definition(), + theHyperTritonInelasticProcess ) ); + G4HadronicProcess* theAntiHyperTritonInelasticProcess = + new G4HadronInelasticProcess( "anti_hypertritonInelastic", G4AntiHyperTriton::Definition() ); + fProcessMap.insert( ProcessPair( G4AntiHyperTriton::Definition(), + theAntiHyperTritonInelasticProcess ) ); + G4HadronicProcess* theHyperAlphaInelasticProcess = + new G4HadronInelasticProcess( "hyperalphaInelastic", G4HyperAlpha::Definition() ); + fProcessMap.insert( ProcessPair( G4HyperAlpha::Definition(), + theHyperAlphaInelasticProcess ) ); + G4HadronicProcess* theAntiHyperAlphaInelasticProcess = + new G4HadronInelasticProcess( "anti_hyperalphaInelastic", G4AntiHyperAlpha::Definition() ); + fProcessMap.insert( ProcessPair( G4AntiHyperAlpha::Definition(), + theAntiHyperAlphaInelasticProcess ) ); + G4HadronicProcess* theHyperH4InelasticProcess = + new G4HadronInelasticProcess( "hyperH4Inelastic", G4HyperH4::Definition() ); + fProcessMap.insert( ProcessPair( G4HyperH4::Definition(), + theHyperH4InelasticProcess ) ); + G4HadronicProcess* theAntiHyperH4InelasticProcess = + new G4HadronInelasticProcess( "anti_hyperH4Inelastic", G4AntiHyperH4::Definition() ); + fProcessMap.insert( ProcessPair( G4AntiHyperH4::Definition(), + theAntiHyperH4InelasticProcess ) ); + G4HadronicProcess* theDoubleHyperH4InelasticProcess = + new G4HadronInelasticProcess( "doublehyperH4Inelastic", G4DoubleHyperH4::Definition() ); + fProcessMap.insert( ProcessPair( G4DoubleHyperH4::Definition(), + theDoubleHyperH4InelasticProcess ) ); + G4HadronicProcess* theAntiDoubleHyperH4InelasticProcess = + new G4HadronInelasticProcess( "anti_doublehyperH4Inelastic", + G4AntiDoubleHyperH4::Definition() ); + fProcessMap.insert( ProcessPair( G4AntiDoubleHyperH4::Definition(), + theAntiDoubleHyperH4InelasticProcess ) ); + G4HadronicProcess* theDoubleHyperDoubleNeutronInelasticProcess = + new G4HadronInelasticProcess( "doublehyperdoubleneutronInelastic", + G4DoubleHyperDoubleNeutron::Definition() ); + fProcessMap.insert( ProcessPair( G4DoubleHyperDoubleNeutron::Definition(), + theDoubleHyperDoubleNeutronInelasticProcess ) ); + G4HadronicProcess* theAntiDoubleHyperDoubleNeutronInelasticProcess = + new G4HadronInelasticProcess( "anti_doublehyperdoubleneutronInelastic", + G4AntiDoubleHyperDoubleNeutron::Definition() ); + fProcessMap.insert( ProcessPair( G4AntiDoubleHyperDoubleNeutron::Definition(), + theAntiDoubleHyperDoubleNeutronInelasticProcess ) ); + G4HadronicProcess* theHyperHe5InelasticProcess = + new G4HadronInelasticProcess( "hyperHe5Inelastic", G4HyperHe5::Definition() ); + fProcessMap.insert( ProcessPair( G4HyperHe5::Definition(), + theHyperHe5InelasticProcess ) ); + G4HadronicProcess* theAntiHyperHe5InelasticProcess = + new G4HadronInelasticProcess( "anti_hyperHe5Inelastic", G4AntiHyperHe5::Definition() ); + fProcessMap.insert( ProcessPair( G4AntiHyperHe5::Definition(), + theAntiHyperHe5InelasticProcess ) ); + // Add the cross sections to the corresponding hadronic processes thePionMinusInelasticProcess->AddDataSet( thePionMinusXSdata ); thePionPlusInelasticProcess->AddDataSet( thePionPlusXSdata ); @@ -596,6 +662,19 @@ HadronicGenerator::HadronicGenerator( const G4String physicsCase ) : theOmegabMinusInelasticProcess->AddDataSet( theHyperonsXSdata ); theAntiOmegabMinusInelasticProcess->AddDataSet( theHyperonsXSdata ); + theHyperTritonInelasticProcess->AddDataSet( theNuclNuclXSdata ); + theAntiHyperTritonInelasticProcess->AddDataSet( theAntibaryonsXSdata ); + theHyperAlphaInelasticProcess->AddDataSet( theNuclNuclXSdata ); + theAntiHyperAlphaInelasticProcess->AddDataSet( theAntibaryonsXSdata ); + theHyperH4InelasticProcess->AddDataSet( theNuclNuclXSdata ); + theAntiHyperH4InelasticProcess->AddDataSet( theAntibaryonsXSdata ); + theDoubleHyperH4InelasticProcess->AddDataSet( theNuclNuclXSdata ); + theAntiDoubleHyperH4InelasticProcess->AddDataSet( theAntibaryonsXSdata ); + theDoubleHyperDoubleNeutronInelasticProcess->AddDataSet( theNuclNuclXSdata ); + theAntiDoubleHyperDoubleNeutronInelasticProcess->AddDataSet( theAntibaryonsXSdata ); + theHyperHe5InelasticProcess->AddDataSet( theNuclNuclXSdata ); + theAntiHyperHe5InelasticProcess->AddDataSet( theAntibaryonsXSdata ); + // Register the proper hadronic model(s) to the corresponding hadronic processes. // Note: hadronic models ("BERT", "BIC", "IonBIC", "INCL", "FTFP", "QGSP") are // used for the hadrons and energies they are applicable @@ -624,10 +703,10 @@ HadronicGenerator::HadronicGenerator( const G4String physicsCase ) : // We consider here for simplicity only nucleons and pions // (although recent versions of INCL can handle others particles as well) fPhysicsCaseIsSupported = true; - thePionMinusInelasticProcess->RegisterMe( theINCLmodel ); - thePionPlusInelasticProcess->RegisterMe( theINCLmodel ); - theProtonInelasticProcess->RegisterMe( theINCLmodel ); - theNeutronInelasticProcess->RegisterMe( theINCLmodel ); + thePionMinusInelasticProcess->RegisterMe( theINCLmodel ); + thePionPlusInelasticProcess->RegisterMe( theINCLmodel ); + theProtonInelasticProcess->RegisterMe( theINCLmodel ); + theNeutronInelasticProcess->RegisterMe( theINCLmodel ); } if ( fPhysicsCase == "IonBIC" || fPhysicsCase == "FTFP_BERT_ATL" || @@ -637,10 +716,10 @@ HadronicGenerator::HadronicGenerator( const G4String physicsCase ) : fPhysicsCase == "QGSP_BIC" ) { // The Binary Light Ion model is used for ions in all physics lists fPhysicsCaseIsSupported = true; - theDeuteronInelasticProcess->RegisterMe( theIonBICmodel ); - theTritonInelasticProcess->RegisterMe( theIonBICmodel ); - theHe3InelasticProcess->RegisterMe( theIonBICmodel ); - theAlphaInelasticProcess->RegisterMe( theIonBICmodel ); + theDeuteronInelasticProcess->RegisterMe( theIonBICmodel ); + theTritonInelasticProcess->RegisterMe( theIonBICmodel ); + theHe3InelasticProcess->RegisterMe( theIonBICmodel ); + theAlphaInelasticProcess->RegisterMe( theIonBICmodel ); theIonInelasticProcess->RegisterMe( theIonBICmodel ); } if ( fPhysicsCase == "QGSP" || @@ -748,7 +827,7 @@ HadronicGenerator::HadronicGenerator( const G4String physicsCase ) : theFTFPmodelToBeUsed = theFTFPmodel; } else if ( fPhysicsCase == "QGSP_BERT" || fPhysicsCase == "QGSP_BIC" ) { theFTFPmodelToBeUsed = theFTFPmodel_constrained; - } + } thePionMinusInelasticProcess->RegisterMe( theFTFPmodelToBeUsed ); thePionPlusInelasticProcess->RegisterMe( theFTFPmodelToBeUsed ); theKaonMinusInelasticProcess->RegisterMe( theFTFPmodelToBeUsed ); @@ -810,6 +889,48 @@ HadronicGenerator::HadronicGenerator( const G4String physicsCase ) : theIonInelasticProcess->RegisterMe( theFTFPmodelToBeUsed ); } + if ( G4HadronicParameters::Instance()->EnableHyperNuclei() ) { + // Only FTFP and INCL can handle the nuclear interactions + // of light hypernuclei, and only FTFP is capable of handling + // the nuclear interactions of light anti-hypernuclei. + if ( fPhysicsCase == "FTFP_BERT" || + fPhysicsCase == "FTFP_INCLXX" || + fPhysicsCase == "FTFP" ) { + fPhysicsCaseIsSupported = true; + if ( fPhysicsCase == "FTFP_INCLXX" ) { + theHyperTritonInelasticProcess->RegisterMe( theFTFPmodel ); + theHyperAlphaInelasticProcess->RegisterMe( theFTFPmodel ); + theHyperH4InelasticProcess->RegisterMe( theFTFPmodel ); + theDoubleHyperH4InelasticProcess->RegisterMe( theFTFPmodel ); + theDoubleHyperDoubleNeutronInelasticProcess->RegisterMe( theFTFPmodel ); + theHyperHe5InelasticProcess->RegisterMe( theFTFPmodel ); + } else { + theHyperTritonInelasticProcess->RegisterMe( theFTFPmodel_belowThreshold ); + theHyperAlphaInelasticProcess->RegisterMe( theFTFPmodel_belowThreshold ); + theHyperH4InelasticProcess->RegisterMe( theFTFPmodel_belowThreshold ); + theDoubleHyperH4InelasticProcess->RegisterMe( theFTFPmodel_belowThreshold ); + theDoubleHyperDoubleNeutronInelasticProcess->RegisterMe( theFTFPmodel_belowThreshold ); + theHyperHe5InelasticProcess->RegisterMe( theFTFPmodel_belowThreshold ); + } + theAntiHyperTritonInelasticProcess->RegisterMe( theFTFPmodel_belowThreshold ); + theAntiHyperAlphaInelasticProcess->RegisterMe( theFTFPmodel_belowThreshold ); + theAntiHyperH4InelasticProcess->RegisterMe( theFTFPmodel_belowThreshold ); + theAntiDoubleHyperH4InelasticProcess->RegisterMe( theFTFPmodel_belowThreshold ); + theAntiDoubleHyperDoubleNeutronInelasticProcess->RegisterMe( theFTFPmodel_belowThreshold ); + theAntiHyperHe5InelasticProcess->RegisterMe( theFTFPmodel_belowThreshold ); + } + if ( fPhysicsCase == "FTFP_INCLXX" || + fPhysicsCase == "INCL" ) { + fPhysicsCaseIsSupported = true; + theHyperTritonInelasticProcess->RegisterMe( theINCLmodel ); + theHyperAlphaInelasticProcess->RegisterMe( theINCLmodel ); + theHyperH4InelasticProcess->RegisterMe( theINCLmodel ); + theDoubleHyperH4InelasticProcess->RegisterMe( theINCLmodel ); + theDoubleHyperDoubleNeutronInelasticProcess->RegisterMe( theINCLmodel ); + theHyperHe5InelasticProcess->RegisterMe( theINCLmodel ); + } + } + if ( ! fPhysicsCaseIsSupported ) { G4cerr << "ERROR: Not supported final-state hadronic inelastic physics case !" << fPhysicsCase << G4endl @@ -1018,10 +1139,11 @@ G4double HadronicGenerator::GetImpactParameter() const { // FTFP has handled the inelastic hadronic interaction. G4TheoFSGenerator* theoFSGenerator = dynamic_cast< G4TheoFSGenerator* >( hadInteraction ); if ( theoFSGenerator != nullptr ) { - const G4FTFModel* ftfModel = dynamic_cast< const G4FTFModel* >( theoFSGenerator->GetHighEnergyGenerator() ); + const G4FTFModel* ftfModel = + dynamic_cast< const G4FTFModel* >( theoFSGenerator->GetHighEnergyGenerator() ); if ( ftfModel != nullptr ) { - // ftfModel points to the G4FTFModel object instance that handled the - // inelastic hadronic interaction. + // ftfModel points to the G4FTFModel object instance that handled the + // inelastic hadronic interaction. impactParameter = ftfModel->GetImpactParameter(); //G4cout << "\t impactParameter = " << impactParameter/fermi << " fm" << G4endl; } @@ -1041,10 +1163,12 @@ G4int HadronicGenerator::GetNumberOfProjectileSpectatorNucleons() const { if ( hadInteraction != nullptr && hadInteraction == wantedHadInteraction ) { G4TheoFSGenerator* theoFSGenerator = dynamic_cast< G4TheoFSGenerator* >( hadInteraction ); if ( theoFSGenerator != nullptr ) { - const G4FTFModel* ftfModel = dynamic_cast< const G4FTFModel* >( theoFSGenerator->GetHighEnergyGenerator() ); + const G4FTFModel* ftfModel = + dynamic_cast< const G4FTFModel* >( theoFSGenerator->GetHighEnergyGenerator() ); if ( ftfModel != nullptr ) { numProjectileSpectatorNucleons = ftfModel->GetNumberOfProjectileSpectatorNucleons(); - //G4cout << "\t numProjectileSpectatorNucleons = " << numProjectileSpectatorNucleons << G4endl; + //G4cout << "\t numProjectileSpectatorNucleons = " << numProjectileSpectatorNucleons + // << G4endl; } } } @@ -1062,7 +1186,8 @@ G4int HadronicGenerator::GetNumberOfTargetSpectatorNucleons() const { if ( hadInteraction != nullptr && hadInteraction == wantedHadInteraction ) { G4TheoFSGenerator* theoFSGenerator = dynamic_cast< G4TheoFSGenerator* >( hadInteraction ); if ( theoFSGenerator != nullptr ) { - const G4FTFModel* ftfModel = dynamic_cast< const G4FTFModel* >( theoFSGenerator->GetHighEnergyGenerator() ); + const G4FTFModel* ftfModel = + dynamic_cast< const G4FTFModel* >( theoFSGenerator->GetHighEnergyGenerator() ); if ( ftfModel != nullptr ) { numTargetSpectatorNucleons = ftfModel->GetNumberOfTargetSpectatorNucleons(); //G4cout << "\t numTargetSpectatorNucleons = " << numTargetSpectatorNucleons << G4endl; @@ -1083,7 +1208,8 @@ G4int HadronicGenerator::GetNumberOfNNcollisions() const { if ( hadInteraction != nullptr && hadInteraction == wantedHadInteraction ) { G4TheoFSGenerator* theoFSGenerator = dynamic_cast< G4TheoFSGenerator* >( hadInteraction ); if ( theoFSGenerator != nullptr ) { - const G4FTFModel* ftfModel = dynamic_cast< const G4FTFModel* >( theoFSGenerator->GetHighEnergyGenerator() ); + const G4FTFModel* ftfModel = + dynamic_cast< const G4FTFModel* >( theoFSGenerator->GetHighEnergyGenerator() ); if ( ftfModel != nullptr ) { numNNcollisions = ftfModel->GetNumberOfNNcollisions(); //G4cout << "\t numNNcollisions = " << numNNcollisions << G4endl; diff --git a/examples/extended/hadronic/Hadr10/GNUmakefile b/examples/extended/hadronic/Hadr10/GNUmakefile old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/Hadr10/Hadr10.cc b/examples/extended/hadronic/Hadr10/Hadr10.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/Hadr10/hadr10.in b/examples/extended/hadronic/Hadr10/hadr10.in old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/Hadr10/hadr10.out b/examples/extended/hadronic/Hadr10/hadr10.out index b18aa112ca..332de45a21 100644 --- a/examples/extended/hadronic/Hadr10/hadr10.out +++ b/examples/extended/hadronic/Hadr10/hadr10.out @@ -1,6 +1,6 @@ ===================================================== - Initial seed = 1656510490 + Initial seed = 1670382256 ===================================================== Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... @@ -16,7 +16,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -98,20 +98,71 @@ Index : 1 used in the geometry : Yes ### Run 0 starts. ### Run 0 starts. - Event#=0 t[ns]=0.246466 r[mm]=73.8882 deltaR[mum]=5.51105e-05 deltaEkin[MeV]=6.67018 deltaAngle(deg)=0.00841525 - Event#=1000 t[ns]=0.154613 r[mm]=46.3516 deltaR[mum]=2.62396e-05 deltaEkin[MeV]=9.15849 deltaAngle(deg)=0.00677146 - Event#=2000 t[ns]=0.112171 r[mm]=33.6279 deltaR[mum]=1.00116e-05 deltaEkin[MeV]=7.69782 deltaAngle(deg)=0.00501021 - Event#=3000 t[ns]=0.178842 r[mm]=53.6152 deltaR[mum]=2.54285e-05 deltaEkin[MeV]=6.90605 deltaAngle(deg)=0.00604041 - Event#=4000 t[ns]=0.0907513 r[mm]=27.2064 deltaR[mum]=4.21922e-06 deltaEkin[MeV]=7.31798 deltaAngle(deg)=0.00345772 - Event#=5000 t[ns]=0.0517937 r[mm]=15.5273 deltaR[mum]=8.01341e-07 deltaEkin[MeV]=2.39105 deltaAngle(deg)=0.00223385 - Event#=6000 t[ns]=0.230527 r[mm]=69.1099 deltaR[mum]=5.30845e-05 deltaEkin[MeV]=6.63255 deltaAngle(deg)=0.00902901 - Event#=7000 t[ns]=0.000557668 r[mm]=0.167184 deltaR[mum]=1.11022e-12 deltaEkin[MeV]=0 deltaAngle(deg)=2.28909e-05 - Event#=8000 t[ns]=0.0352386 r[mm]=10.5642 deltaR[mum]=3.17002e-07 deltaEkin[MeV]=0.618776 deltaAngle(deg)=0.00131967 - Event#=9000 t[ns]=0.0868452 r[mm]=26.0354 deltaR[mum]=2.96883e-06 deltaEkin[MeV]=5.80424 deltaAngle(deg)=0.00293033 + Event#=0 t[ns]=0.288711 r[mm]=86.5529 deltaR[mum]=0.000142025 deltaEkin[MeV]=20.6042 deltaAngle(deg)=0.0114402 + Event#=1000 t[ns]=0.0354889 r[mm]=10.6392 deltaR[mum]=3.23672e-07 deltaEkin[MeV]=0.656253 deltaAngle(deg)=0.00156588 + Event#=2000 t[ns]=0.00724606 r[mm]=2.1723 deltaR[mum]=2.43894e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.00029742 + Event#=3000 t[ns]=0.00576279 r[mm]=1.72763 deltaR[mum]=1.22702e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000236539 + Event#=4000 t[ns]=0.0752389 r[mm]=22.5559 deltaR[mum]=1.99528e-06 deltaEkin[MeV]=4.8499 deltaAngle(deg)=0.00343468 + Event#=5000 t[ns]=0.186974 r[mm]=56.0531 deltaR[mum]=3.22938e-05 deltaEkin[MeV]=8.59808 deltaAngle(deg)=0.00705832 + Event#=6000 t[ns]=0.0437486 r[mm]=13.1154 deltaR[mum]=5.48313e-07 deltaEkin[MeV]=1.53278 deltaAngle(deg)=0.00186512 +G4DecayProducts::IsChecked():: Energy/Momentum is not conserved + difference between parent energy & sum of daughters energy: -1.7549524500282e-08[MeV] + difference between parent momentum & sum of daughters momentum: x:-7.8231865430212e-12 y:8.0468822716284e-09 z:-1.5596071989421e-08 + ----- List of DecayProducts ----- + ------ Parent Particle ---------- + Particle type - tau- + mass: 1.77686[GeV] + charge: -1[e] + Direction x: 0, y: 0, z: 0 + Total Momentum = 0[GeV] + Momentum: 0[GeV], y: 0[GeV], z: 0[GeV] + Total Energy = 1.77686[GeV] + Kinetic Energy = 0[GeV] + MagneticMoment [MeV/T]: -1.6666182458777e-14 + ProperTime = 0[ns] + ------ Daughter Particles ------ + ----------1 ------------- + Particle type - mu- + mass: 0.1056583715[GeV] + charge: -1[e] + Direction x: -0.00044576507100414, y: 0.45851701850542, z: -0.88868551526083 + Total Momentum = 0.88528764359943[GeV] + Momentum: -0.00039463030930819[GeV], y: 0.4059194508629[GeV], z: -0.78674230570621[GeV] + Total Energy = 0.89157047022536[GeV] + Kinetic Energy = 0.78591209872536[GeV] + MagneticMoment [MeV/T]: -2.8027174850081e-13 + ProperTime = 0[ns] + ----------2 ------------- + Particle type - anti_nu_mu + mass: 0[GeV] + charge: 0[e] + Direction x: 0.0013947530559109, y: -0.45809155789081, z: 0.88890392014721 + Total Momentum = 0.69982134787803[GeV] + Momentum: 0.00097607796354455[GeV], y: -0.32058225149469[GeV], z: 0.62207393953149[GeV] + Total Energy = 0.69982134787803[GeV] + Kinetic Energy = 0.69982134787803[GeV] + MagneticMoment [MeV/T]: 0 + ProperTime = 0[ns] + ----------3 ------------- + Particle type - nu_tau + mass: 0[GeV] + charge: 0[e] + Direction x: -0.0031350264408029, y: -0.46011773283974, z: 0.88785237710761 + Total Momentum = 0.18546818191416[GeV] + Momentum: -0.00058144765422854[GeV], y: -0.085337199376251[GeV], z: 0.16466836619031[GeV] + Total Energy = 0.18546818191416[GeV] + Kinetic Energy = 0.18546818191416[GeV] + MagneticMoment [MeV/T]: 0 + ProperTime = 0[ns] + ----- End List of DecayProducts ----- + + Event#=7000 t[ns]=0.0739653 r[mm]=22.1741 deltaR[mum]=2.45904e-06 deltaEkin[MeV]=5.28839 deltaAngle(deg)=0.00363079 + Event#=8000 t[ns]=0.0873889 r[mm]=26.1984 deltaR[mum]=3.02228e-06 deltaEkin[MeV]=6.26045 deltaAngle(deg)=0.00401721 + Event#=9000 t[ns]=0.0580302 r[mm]=17.3969 deltaR[mum]=1.57215e-06 deltaEkin[MeV]=3.61215 deltaAngle(deg)=0.00303707 Run terminated. Run Summary Number of events processed : 10000 - User=0.200000s Real=0.197782s Sys=0.000000s + User=0.190000s Real=0.190638s Sys=0.000000s ============ Run::printInfo() =============== RunID = 0 @@ -133,40 +184,40 @@ Run Summary (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=3.34153e-06 mean=0.0803817 max=0.835075 - decay R [mm] : min=0.00100176 mean=24.0977 max=250.348 - decay X [mm] : min=0.00100176 mean=24.0977 max=250.348 - decay Y [mm] : min=-0.000422745 mean=0.00159188 max=0.0775748 - decay Z [mm] : min=-0.00312303 mean=1.74213e-06 max=0.0042392 - Delta decay R [mm] : min=-3.46945e-18 mean=1.8949e-08 max=3.7019e-06 - deflection angle [deg] : min=0 mean=0.00332581 max=0.0347639 - Delta Ekin [MeV] : min=0 mean=5.26297 max=5608.94 - decay Ekin [GeV] : min=494.391 mean=499.995 max=500 - decay Px [GeV] : min=496.165 mean=501.768 max=501.774 - decay Py [GeV] : min=-0.0390533 mean=0.0288828 max=0.304422 - decay Pz [GeV] : min=-0.0330291 mean=1.09608e-05 max=0.0410966 - decay Etot violation [MeV] : min=-1.0064e-05 mean=5.49666e-06 max=2.64479e-05 - decay Px violation [MeV] : min=-1.0064e-05 mean=5.49669e-06 max=2.6448e-05 - decay Py violation [MeV] : min=-1.04359e-09 mean=4.41221e-10 max=6.74984e-09 - decay Pz violation [MeV] : min=-9.64487e-10 mean=7.65696e-13 max=1.16187e-09 + decay T [ns] : min=1.21696e-06 mean=0.0807872 max=0.66274 + decay R [mm] : min=0.000364834 mean=24.2193 max=198.683 + decay X [mm] : min=0.000364834 mean=24.2193 max=198.683 + decay Y [mm] : min=1.5905e-13 mean=0.0015962 max=0.047865 + decay Z [mm] : min=-0.00451472 mean=-2.51489e-06 max=0.00384876 + Delta decay R [mm] : min=-1.73472e-18 mean=1.89416e-08 max=1.89706e-06 + deflection angle [deg] : min=0 mean=0.00334 max=0.0274862 + Delta Ekin [MeV] : min=0 mean=4.74284 max=1073.3 + decay Ekin [GeV] : min=498.927 mean=499.995 max=500 + decay Px [GeV] : min=500.7 mean=501.769 max=501.774 + decay Py [GeV] : min=-0.0184786 mean=0.0289988 max=0.240389 + decay Pz [GeV] : min=-0.0555864 mean=-4.65787e-05 max=0.0518187 + decay Etot violation [MeV] : min=-9.88733e-06 mean=5.57698e-06 max=2.81996e-05 + decay Px violation [MeV] : min=-9.88727e-06 mean=5.57701e-06 max=2.81997e-05 + decay Py violation [MeV] : min=-6.33069e-09 mean=4.4473e-10 max=8.73243e-09 + decay Pz violation [MeV] : min=-1.0368e-09 mean=1.25004e-12 max=1.56168e-08 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 1.40972e-05 , 0.0615967 (mean=0.0099122) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 4.87358e-09 , 4.87358e-09 + maxMass_deltaMax{1,2,3} [eV] = 0 , 1.40972e-05 , 0.0615967 (mean=0.0100309) + maxBeta_deltaMax{1,2} = 3.33067e-16 , 5.55112e-16 + maxGamma_deltaMax{1,2,3} = 0 , 4.76155e-09 , 4.76155e-09 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 - maxMc_truth_rPos_deltaMax [mum] = 8.52651e-11 (mean=5.28353e-12) (# above threshold = 0) + maxMc_truth_rPos_deltaMax [mum] = 5.68434e-11 (mean=5.37866e-12) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -114.457 (mean=-0.219643) (#above threshold = 97) - maxOverestimated_mc_truth_rPos_delta [mum] = 83.3579 (mean=0.174008) (#above threshold = 347) - minUnderestimated_rDeltaPos [mum] = -114.456 (mean=-0.219624) (#above threshold = 97) - maxOverestimated_rDeltaPos [mum] = 83.359 (mean=0.174027) (#above threshold = 347) + minUnderestimated_mc_truth_rPos_delta [mum] = -51.5842 (mean=-0.213458) (#above threshold = 85) + maxOverestimated_mc_truth_rPos_delta [mum] = 77.7365 (mean=0.173261) (#above threshold = 348) + minUnderestimated_rDeltaPos [mum] = -51.5842 (mean=-0.213439) (#above threshold = 85) + maxOverestimated_rDeltaPos [mum] = 77.7377 (mean=0.17328) (#above threshold = 348) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0342195 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0322745 ============================================= @@ -190,20 +241,20 @@ Index : 1 used in the geometry : Yes ### Run 1 starts. ### Run 1 starts. - Event#=0 t[ns]=0.0564851 r[mm]=16.9337 deltaR[mum]=9.76843e-07 deltaEkin[MeV]=2.84857 deltaAngle(deg)=0.00245413 - Event#=1000 t[ns]=0.157346 r[mm]=47.1709 deltaR[mum]=2.45435e-05 deltaEkin[MeV]=7.3798 deltaAngle(deg)=0.0067783 - Event#=2000 t[ns]=0.0983243 r[mm]=29.4767 deltaR[mum]=5.54497e-06 deltaEkin[MeV]=8.8514 deltaAngle(deg)=0.00351833 - Event#=3000 t[ns]=0.016008 r[mm]=4.79904 deltaR[mum]=2.63025e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000657061 - Event#=4000 t[ns]=0.0613018 r[mm]=18.3777 deltaR[mum]=5.65149e-06 deltaEkin[MeV]=24.8892 deltaAngle(deg)=0.00192804 - Event#=5000 t[ns]=0.0409749 r[mm]=12.2839 deltaR[mum]=4.70745e-07 deltaEkin[MeV]=1.22592 deltaAngle(deg)=0.00181004 - Event#=6000 t[ns]=0.199646 r[mm]=59.8521 deltaR[mum]=4.17774e-05 deltaEkin[MeV]=7.12973 deltaAngle(deg)=0.0077454 - Event#=7000 t[ns]=0.102385 r[mm]=30.6942 deltaR[mum]=5.71649e-06 deltaEkin[MeV]=7.35724 deltaAngle(deg)=0.00443213 - Event#=8000 t[ns]=0.0315844 r[mm]=9.46871 deltaR[mum]=2.17813e-07 deltaEkin[MeV]=0.131092 deltaAngle(deg)=0.00121929 - Event#=9000 t[ns]=0.132233 r[mm]=39.6423 deltaR[mum]=2.52943e-05 deltaEkin[MeV]=12.4582 deltaAngle(deg)=0.00686576 + Event#=0 t[ns]=0.00805032 r[mm]=2.41341 deltaR[mum]=3.34532e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000330433 + Event#=1000 t[ns]=0.115031 r[mm]=34.4853 deltaR[mum]=1.00736e-05 deltaEkin[MeV]=9.99151 deltaAngle(deg)=0.00481861 + Event#=2000 t[ns]=0.119056 r[mm]=35.6918 deltaR[mum]=9.80819e-06 deltaEkin[MeV]=8.13469 deltaAngle(deg)=0.00502782 + Event#=3000 t[ns]=0.210244 r[mm]=63.0293 deltaR[mum]=5.45612e-05 deltaEkin[MeV]=7.74401 deltaAngle(deg)=0.00928558 + Event#=4000 t[ns]=0.0130389 r[mm]=3.90893 deltaR[mum]=1.42144e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000535192 + Event#=5000 t[ns]=0.0194047 r[mm]=5.81733 deltaR[mum]=4.68487e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000796481 + Event#=6000 t[ns]=0.0474155 r[mm]=14.2147 deltaR[mum]=6.5744e-07 deltaEkin[MeV]=1.89677 deltaAngle(deg)=0.00179356 + Event#=7000 t[ns]=0.181503 r[mm]=54.4129 deltaR[mum]=3.92669e-05 deltaEkin[MeV]=7.80148 deltaAngle(deg)=0.00777389 + Event#=8000 t[ns]=0.0423623 r[mm]=12.6998 deltaR[mum]=9.3258e-07 deltaEkin[MeV]=6.90819 deltaAngle(deg)=0.00136005 + Event#=9000 t[ns]=0.044326 r[mm]=13.2885 deltaR[mum]=5.6494e-07 deltaEkin[MeV]=1.53924 deltaAngle(deg)=0.00156719 Run terminated. Run Summary Number of events processed : 10000 - User=0.190000s Real=0.192455s Sys=0.000000s + User=0.190000s Real=0.188917s Sys=0.010000s ============ Run::printInfo() =============== RunID = 1 @@ -225,40 +276,40 @@ Run Summary (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=1.8666e-06 mean=0.0810547 max=0.698366 - decay R [mm] : min=0.00055959 mean=24.2994 max=209.364 - decay X [mm] : min=0.00055959 mean=24.2994 max=209.364 - decay Y [mm] : min=-0.0523021 mean=-0.00161334 max=-3.74181e-13 - decay Z [mm] : min=-0.00489275 mean=3.82894e-06 max=0.00377365 - Delta decay R [mm] : min=0 mean=1.93598e-08 max=2.23229e-06 - deflection angle [deg] : min=0 mean=0.00334765 max=0.0286601 - Delta Ekin [MeV] : min=0 mean=4.59737 max=1016.37 - decay Ekin [GeV] : min=498.984 mean=499.995 max=500 - decay Px [GeV] : min=500.757 mean=501.769 max=501.774 - decay Py [GeV] : min=-0.250831 mean=-0.0290766 max=0.00752494 - decay Pz [GeV] : min=-0.0383301 mean=8.13764e-05 max=0.0403097 - decay Etot violation [MeV] : min=-1.14021e-05 mean=5.65336e-06 max=2.55692e-05 - decay Px violation [MeV] : min=-1.14023e-05 mean=5.65338e-06 max=2.55693e-05 - decay Py violation [MeV] : min=-5.85158e-09 mean=-4.48933e-10 max=1.3342e-09 - decay Pz violation [MeV] : min=-7.10724e-10 mean=1.39441e-12 max=9.31447e-10 + decay T [ns] : min=1.2682e-06 mean=0.0819691 max=0.727806 + decay R [mm] : min=0.000380195 mean=24.5736 max=218.189 + decay X [mm] : min=0.000380195 mean=24.5736 max=218.189 + decay Y [mm] : min=-0.0602616 mean=-0.00163957 max=-1.72725e-13 + decay Z [mm] : min=-0.00556098 mean=-8.73572e-07 max=0.00345867 + Delta decay R [mm] : min=-3.46945e-18 mean=1.95928e-08 max=2.60029e-06 + deflection angle [deg] : min=0 mean=0.00339056 max=0.0308484 + Delta Ekin [MeV] : min=0 mean=5.15675 max=2737.74 + decay Ekin [GeV] : min=497.262 mean=499.995 max=500 + decay Px [GeV] : min=499.036 mean=501.769 max=501.774 + decay Py [GeV] : min=-0.270049 mean=-0.0294609 max=0.00840867 + decay Pz [GeV] : min=-0.0356536 mean=9.24514e-08 max=0.0442409 + decay Etot violation [MeV] : min=-1.2391e-05 mean=5.67572e-06 max=2.70922e-05 + decay Px violation [MeV] : min=-1.2391e-05 mean=5.67574e-06 max=2.70922e-05 + decay Py violation [MeV] : min=-8.53942e-09 mean=-4.5876e-10 max=1.19505e-09 + decay Pz violation [MeV] : min=-1.08802e-09 mean=3.28227e-13 max=1.44514e-09 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 1.40972e-05 , 0.053009 (mean=0.0101315) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 5.55112e-16 - maxGamma_deltaMax{1,2,3} = 0 , 4.58959e-09 , 4.58959e-09 + maxMass_deltaMax{1,2,3} [eV] = 0 , 1.40972e-05 , 0.0615967 (mean=0.0100287) + maxBeta_deltaMax{1,2} = 3.33067e-16 , 4.44089e-16 + maxGamma_deltaMax{1,2,3} = 0 , 4.7134e-09 , 4.7134e-09 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 - maxMc_truth_rPos_deltaMax [mum] = 8.52651e-11 (mean=5.40065e-12) (# above threshold = 0) + maxMc_truth_rPos_deltaMax [mum] = 8.52651e-11 (mean=5.47981e-12) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -44.1749 (mean=-0.206777) (#above threshold = 94) - maxOverestimated_mc_truth_rPos_delta [mum] = 34.9547 (mean=0.178257) (#above threshold = 395) - minUnderestimated_rDeltaPos [mum] = -44.1744 (mean=-0.206758) (#above threshold = 94) - maxOverestimated_rDeltaPos [mum] = 34.9551 (mean=0.178276) (#above threshold = 395) + minUnderestimated_mc_truth_rPos_delta [mum] = -73.9704 (mean=-0.225741) (#above threshold = 93) + maxOverestimated_mc_truth_rPos_delta [mum] = 53.0908 (mean=0.183808) (#above threshold = 383) + minUnderestimated_rDeltaPos [mum] = -73.9698 (mean=-0.225722) (#above threshold = 93) + maxOverestimated_rDeltaPos [mum] = 53.0915 (mean=0.183828) (#above threshold = 383) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0327499 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0314529 ============================================= @@ -282,20 +333,20 @@ Index : 1 used in the geometry : Yes ### Run 2 starts. ### Run 2 starts. - Event#=0 t[ns]=0.155737 r[mm]=46.6883 deltaR[mum]=3.30354e-05 deltaEkin[MeV]=6.76188 deltaAngle(deg)=0.00786371 - Event#=1000 t[ns]=0.144885 r[mm]=43.4351 deltaR[mum]=1.3551e-05 deltaEkin[MeV]=7.36233 deltaAngle(deg)=0.00500489 - Event#=2000 t[ns]=0.0839052 r[mm]=25.154 deltaR[mum]=2.69157e-06 deltaEkin[MeV]=5.49614 deltaAngle(deg)=0.00459968 - Event#=3000 t[ns]=0.0591505 r[mm]=17.7328 deltaR[mum]=1.08788e-06 deltaEkin[MeV]=3.50468 deltaAngle(deg)=0.00209344 - Event#=4000 t[ns]=0.231285 r[mm]=69.337 deltaR[mum]=7.04954e-05 deltaEkin[MeV]=7.57803 deltaAngle(deg)=0.0104241 - Event#=5000 t[ns]=0.359804 r[mm]=107.866 deltaR[mum]=0.000265163 deltaEkin[MeV]=8.44555 deltaAngle(deg)=0.0136677 - Event#=6000 t[ns]=0.376096 r[mm]=112.75 deltaR[mum]=0.000404917 deltaEkin[MeV]=10.1216 deltaAngle(deg)=0.0162403 - Event#=7000 t[ns]=0.231465 r[mm]=69.391 deltaR[mum]=5.90516e-05 deltaEkin[MeV]=6.78949 deltaAngle(deg)=0.00971607 - Event#=8000 t[ns]=0.166391 r[mm]=49.8823 deltaR[mum]=3.22995e-05 deltaEkin[MeV]=9.28176 deltaAngle(deg)=0.00748544 - Event#=9000 t[ns]=0.902995 r[mm]=270.709 deltaR[mum]=0.00459915 deltaEkin[MeV]=7.57814 deltaAngle(deg)=0.0363399 + Event#=0 t[ns]=0.642846 r[mm]=192.719 deltaR[mum]=0.0016333 deltaEkin[MeV]=8.70558 deltaAngle(deg)=0.0251873 + Event#=1000 t[ns]=0.186557 r[mm]=55.9279 deltaR[mum]=3.6894e-05 deltaEkin[MeV]=7.62913 deltaAngle(deg)=0.00793804 + Event#=2000 t[ns]=0.649861 r[mm]=194.822 deltaR[mum]=0.00186489 deltaEkin[MeV]=7.1528 deltaAngle(deg)=0.0273667 + Event#=3000 t[ns]=0.213896 r[mm]=64.124 deltaR[mum]=6.60391e-05 deltaEkin[MeV]=7.7592 deltaAngle(deg)=0.00950529 + Event#=4000 t[ns]=0.2273 r[mm]=68.1423 deltaR[mum]=7.45402e-05 deltaEkin[MeV]=9.2684 deltaAngle(deg)=0.00964164 + Event#=5000 t[ns]=0.1024 r[mm]=30.6985 deltaR[mum]=8.76808e-06 deltaEkin[MeV]=9.63305 deltaAngle(deg)=0.0046102 + Event#=6000 t[ns]=0.176617 r[mm]=52.9482 deltaR[mum]=4.03266e-05 deltaEkin[MeV]=7.10686 deltaAngle(deg)=0.00820944 + Event#=7000 t[ns]=0.073431 r[mm]=22.0139 deltaR[mum]=2.26332e-06 deltaEkin[MeV]=6.09546 deltaAngle(deg)=0.00276558 + Event#=8000 t[ns]=0.177903 r[mm]=53.3335 deltaR[mum]=2.73144e-05 deltaEkin[MeV]=9.63324 deltaAngle(deg)=0.00634672 + Event#=9000 t[ns]=0.698802 r[mm]=209.494 deltaR[mum]=0.00216221 deltaEkin[MeV]=9.53968 deltaAngle(deg)=0.028745 Run terminated. Run Summary Number of events processed : 10000 - User=0.390000s Real=0.397369s Sys=0.000000s + User=0.400000s Real=0.401481s Sys=0.000000s ============ Run::printInfo() =============== RunID = 2 @@ -312,45 +363,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9799 + # Decays = 9788 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=5.34279e-07 mean=0.279248 max=3.23561 - decay R [mm] : min=0.000160172 mean=83.716 max=970.004 - decay X [mm] : min=0.000160172 mean=83.716 max=970.003 - decay Y [mm] : min=-1.1203 mean=-0.0175202 max=0.00933676 - decay Z [mm] : min=-0.074951 mean=-5.25667e-06 max=0.0466814 - Delta decay R [mm] : min=2.71051e-20 mean=9.11192e-07 max=0.000217278 - deflection angle [deg] : min=8.53688e-07 mean=0.0115124 max=0.132553 - Delta Ekin [MeV] : min=0 mean=8.61295 max=4510.52 - decay Ekin [GeV] : min=495.489 mean=499.991 max=500 - decay Px [GeV] : min=497.356 mean=501.857 max=501.866 - decay Py [GeV] : min=-1.16114 mean=-0.100336 max=0.115779 - decay Pz [GeV] : min=-0.165422 mean=-0.000100873 max=0.11703 - decay Etot violation [MeV] : min=-8.71834e-06 mean=1.14588e-05 max=2.96573e-05 - decay Px violation [MeV] : min=-8.71834e-06 mean=1.1459e-05 max=2.96574e-05 - decay Py violation [MeV] : min=-4.08825e-08 mean=-2.59102e-09 max=3.35739e-09 - decay Pz violation [MeV] : min=-4.73511e-09 mean=-2.51684e-12 max=3.78292e-09 + decay T [ns] : min=5.55166e-06 mean=0.280611 max=2.33449 + decay R [mm] : min=0.00166433 mean=84.1244 max=699.859 + decay X [mm] : min=0.00166433 mean=84.1244 max=699.859 + decay Y [mm] : min=-0.580748 mean=-0.0173164 max=0.0171887 + decay Z [mm] : min=-0.0673647 mean=1.23941e-05 max=0.0357158 + Delta decay R [mm] : min=2.1684e-19 mean=8.48744e-07 max=8.10942e-05 + deflection angle [deg] : min=8.53688e-07 mean=0.0115779 max=0.0954413 + Delta Ekin [MeV] : min=0 mean=9.62924 max=7476.42 + decay Ekin [GeV] : min=492.524 mean=499.99 max=500 + decay Px [GeV] : min=494.39 mean=501.856 max=501.866 + decay Py [GeV] : min=-0.836061 mean=-0.100918 max=0.249228 + decay Pz [GeV] : min=-0.118151 mean=-9.55426e-06 max=0.193949 + decay Etot violation [MeV] : min=-8.71834e-06 mean=1.14552e-05 max=2.93413e-05 + decay Px violation [MeV] : min=-8.71834e-06 mean=1.14553e-05 max=2.93415e-05 + decay Py violation [MeV] : min=-2.8771e-08 mean=-2.60265e-09 max=7.28159e-09 + decay Pz violation [MeV] : min=-4.18413e-09 mean=-6.00399e-13 max=5.38506e-09 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 1.63709e-05 , 0.0581499 (mean=0.0113339) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 4.24393e-09 , 4.24393e-09 + maxMass_deltaMax{1,2,3} [eV] = 0 , 1.63709e-05 , 0.0499883 (mean=0.0112825) + maxBeta_deltaMax{1,2} = 3.33067e-16 , 4.44089e-16 + maxGamma_deltaMax{1,2,3} = 0 , 4.14508e-09 , 4.14508e-09 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -137.815 (mean=-0.395461) (#above threshold = 161) - maxOverestimated_mc_truth_rPos_delta [mum] = 1582.17 (mean=1.44276) (#above threshold = 3498) - minUnderestimated_rDeltaPos [mum] = -137.809 (mean=-0.39455) (#above threshold = 161) - maxOverestimated_rDeltaPos [mum] = 1582.2 (mean=1.44367) (#above threshold = 3498) + minUnderestimated_mc_truth_rPos_delta [mum] = -339.066 (mean=-0.444948) (#above threshold = 162) + maxOverestimated_mc_truth_rPos_delta [mum] = 1197.73 (mean=1.5418) (#above threshold = 3529) + minUnderestimated_rDeltaPos [mum] = -339.048 (mean=-0.444099) (#above threshold = 162) + maxOverestimated_rDeltaPos [mum] = 1197.75 (mean=1.54265) (#above threshold = 3529) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0952076 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.100147 ============================================= @@ -374,20 +425,20 @@ Index : 1 used in the geometry : Yes ### Run 3 starts. ### Run 3 starts. - Event#=0 t[ns]=0.0156142 r[mm]=4.68098 deltaR[mum]=2.44e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000640779 - Event#=1000 t[ns]=0.205715 r[mm]=61.6715 deltaR[mum]=4.89047e-05 deltaEkin[MeV]=9.51542 deltaAngle(deg)=0.00818384 - Event#=2000 t[ns]=0.21546 r[mm]=64.5927 deltaR[mum]=7.47054e-05 deltaEkin[MeV]=15.5612 deltaAngle(deg)=0.00964354 - Event#=3000 t[ns]=0.271957 r[mm]=81.5302 deltaR[mum]=0.000115661 deltaEkin[MeV]=8.33094 deltaAngle(deg)=0.0110144 - Event#=4000 t[ns]=0.171272 r[mm]=51.3456 deltaR[mum]=3.50934e-05 deltaEkin[MeV]=11.8546 deltaAngle(deg)=0.00715322 - Event#=5000 t[ns]=0.185771 r[mm]=55.6924 deltaR[mum]=3.5183e-05 deltaEkin[MeV]=10.1755 deltaAngle(deg)=0.00711104 - Event#=6000 t[ns]=0.208609 r[mm]=62.5391 deltaR[mum]=5.79858e-05 deltaEkin[MeV]=9.2662 deltaAngle(deg)=0.00863614 - Event#=7000 t[ns]=0.984691 r[mm]=295.201 deltaR[mum]=0.00594707 deltaEkin[MeV]=11.2112 deltaAngle(deg)=0.039846 - Event#=8000 t[ns]=0.401455 r[mm]=120.352 deltaR[mum]=0.000422472 deltaEkin[MeV]=6.99503 deltaAngle(deg)=0.0167113 - Event#=9000 t[ns]=0.198134 r[mm]=59.3988 deltaR[mum]=5.07895e-05 deltaEkin[MeV]=7.17635 deltaAngle(deg)=0.0086325 + Event#=0 t[ns]=0.265901 r[mm]=79.7144 deltaR[mum]=0.000138468 deltaEkin[MeV]=18.5973 deltaAngle(deg)=0.0118085 + Event#=1000 t[ns]=0.366928 r[mm]=110.001 deltaR[mum]=0.000297689 deltaEkin[MeV]=7.04253 deltaAngle(deg)=0.0150178 + Event#=2000 t[ns]=0.210256 r[mm]=63.0327 deltaR[mum]=4.07152e-05 deltaEkin[MeV]=7.03197 deltaAngle(deg)=0.00795884 + Event#=3000 t[ns]=0.0586874 r[mm]=17.5939 deltaR[mum]=2.0516e-06 deltaEkin[MeV]=5.39958 deltaAngle(deg)=0.00333342 + Event#=4000 t[ns]=0.0670117 r[mm]=20.0895 deltaR[mum]=1.47569e-06 deltaEkin[MeV]=3.92302 deltaAngle(deg)=0.00260216 + Event#=5000 t[ns]=0.362608 r[mm]=108.706 deltaR[mum]=0.000320449 deltaEkin[MeV]=6.50224 deltaAngle(deg)=0.0154142 + Event#=6000 t[ns]=0.0934031 r[mm]=28.0013 deltaR[mum]=3.71872e-06 deltaEkin[MeV]=6.87099 deltaAngle(deg)=0.00368956 + Event#=7000 t[ns]=0.0737035 r[mm]=22.0956 deltaR[mum]=1.88788e-06 deltaEkin[MeV]=5.52672 deltaAngle(deg)=0.00278243 + Event#=8000 t[ns]=0.588653 r[mm]=176.472 deltaR[mum]=0.00126566 deltaEkin[MeV]=6.47326 deltaAngle(deg)=0.0239819 + Event#=9000 t[ns]=0.097547 r[mm]=29.2437 deltaR[mum]=4.5643e-06 deltaEkin[MeV]=6.91042 deltaAngle(deg)=0.00434976 Run terminated. Run Summary Number of events processed : 10000 - User=0.400000s Real=0.501021s Sys=0.010000s + User=0.380000s Real=0.389660s Sys=0.000000s ============ Run::printInfo() =============== RunID = 3 @@ -404,45 +455,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9802 + # Decays = 9808 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=0.000126346 mean=0.284644 max=2.74116 - decay R [mm] : min=0.0378774 mean=85.3334 max=821.774 - decay X [mm] : min=0.0378774 mean=85.3334 max=821.774 - decay Y [mm] : min=-0.00498224 mean=0.0178504 max=0.81419 - decay Z [mm] : min=-0.076427 mean=-1.33539e-05 max=0.0509318 - Delta decay R [mm] : min=6.93889e-18 mean=9.05189e-07 max=0.000131753 - deflection angle [deg] : min=5.19278e-06 mean=0.0117322 max=0.112976 - Delta Ekin [MeV] : min=0 mean=9.01996 max=6795.85 - decay Ekin [GeV] : min=493.204 mean=499.991 max=500 - decay Px [GeV] : min=495.07 mean=501.857 max=501.866 - decay Py [GeV] : min=-0.0683636 mean=0.10234 max=0.989651 - decay Pz [GeV] : min=-0.226346 mean=-6.65806e-05 max=0.1303 - decay Etot violation [MeV] : min=-8.71834e-06 mean=1.16371e-05 max=2.86729e-05 - decay Px violation [MeV] : min=-8.71834e-06 mean=1.16373e-05 max=2.8673e-05 - decay Py violation [MeV] : min=-2.05759e-09 mean=2.63696e-09 max=2.9091e-08 - decay Pz violation [MeV] : min=-6.90446e-09 mean=-1.35618e-12 max=4.86702e-09 + decay T [ns] : min=2.46351e-05 mean=0.27898 max=2.5603 + decay R [mm] : min=0.00738536 mean=83.6356 max=767.554 + decay X [mm] : min=0.00738536 mean=83.6356 max=767.553 + decay Y [mm] : min=-0.00795887 mean=0.0170101 max=0.703365 + decay Z [mm] : min=-0.0625497 mean=1.50096e-06 max=0.099278 + Delta decay R [mm] : min=-3.46945e-18 mean=8.16215e-07 max=0.000107488 + deflection angle [deg] : min=1.2073e-06 mean=0.0115167 max=0.105011 + Delta Ekin [MeV] : min=0 mean=8.49819 max=7209.73 + decay Ekin [GeV] : min=492.79 mean=499.992 max=500 + decay Px [GeV] : min=494.656 mean=501.858 max=501.866 + decay Py [GeV] : min=-0.0808324 mean=0.100436 max=0.919893 + decay Pz [GeV] : min=-0.305732 mean=-2.08331e-05 max=0.237494 + decay Etot violation [MeV] : min=-8.7184e-06 mean=1.13937e-05 max=2.93151e-05 + decay Px violation [MeV] : min=-8.7184e-06 mean=1.13939e-05 max=2.93153e-05 + decay Py violation [MeV] : min=-1.14063e-09 mean=2.5879e-09 max=3.2713e-08 + decay Pz violation [MeV] : min=-6.265e-09 mean=4.98997e-13 max=5.43551e-09 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 1.63709e-05 , 0.0499883 (mean=0.0111715) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 4.44112e-09 , 4.44112e-09 + maxMass_deltaMax{1,2,3} [eV] = 0 , 1.63709e-05 , 0.0499883 (mean=0.011148) + maxBeta_deltaMax{1,2} = 4.44089e-16 , 4.44089e-16 + maxGamma_deltaMax{1,2,3} = 0 , 4.13081e-09 , 4.13081e-09 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -257.205 (mean=-0.418393) (#above threshold = 172) - maxOverestimated_mc_truth_rPos_delta [mum] = 1312.76 (mean=1.49054) (#above threshold = 3595) - minUnderestimated_rDeltaPos [mum] = -257.186 (mean=-0.417488) (#above threshold = 172) - maxOverestimated_rDeltaPos [mum] = 1312.78 (mean=1.49145) (#above threshold = 3596) + minUnderestimated_mc_truth_rPos_delta [mum] = -248.97 (mean=-0.394092) (#above threshold = 144) + maxOverestimated_mc_truth_rPos_delta [mum] = 294.349 (mean=1.24568) (#above threshold = 3539) + minUnderestimated_rDeltaPos [mum] = -248.965 (mean=-0.393276) (#above threshold = 143) + maxOverestimated_rDeltaPos [mum] = 294.354 (mean=1.2465) (#above threshold = 3539) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.109613 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0896847 ============================================= @@ -466,20 +517,20 @@ Index : 1 used in the geometry : Yes ### Run 4 starts. ### Run 4 starts. - Event#=0 t[ns]=0.527745 r[mm]=158.213 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=1000 t[ns]=0.0243459 r[mm]=7.29867 deltaR[mum]=8.88178e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=2000 t[ns]=0.0517093 r[mm]=15.5019 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=3000 t[ns]=0.0145642 r[mm]=4.3662 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=4000 t[ns]=0.0322098 r[mm]=9.65619 deltaR[mum]=-1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=5000 t[ns]=0.0466351 r[mm]=13.9808 deltaR[mum]=1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=6000 t[ns]=0.0224677 r[mm]=6.73559 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=7000 t[ns]=0.0434551 r[mm]=13.0274 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=8000 t[ns]=0.0583778 r[mm]=17.5011 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=9000 t[ns]=0.171823 r[mm]=51.5109 deltaR[mum]=-7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=0 t[ns]=0.245418 r[mm]=73.5739 deltaR[mum]=1.42109e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=1000 t[ns]=0.0768028 r[mm]=23.0247 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=2000 t[ns]=0.00456754 r[mm]=1.3693 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=3000 t[ns]=0.235802 r[mm]=70.6911 deltaR[mum]=1.42109e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=4000 t[ns]=0.0238594 r[mm]=7.15283 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=5000 t[ns]=0.00090228 r[mm]=0.270495 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=6000 t[ns]=0.191573 r[mm]=57.4318 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=7000 t[ns]=0.0951505 r[mm]=28.5252 deltaR[mum]=3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=8000 t[ns]=0.120389 r[mm]=36.0915 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=9000 t[ns]=0.191105 r[mm]=57.2916 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 Run terminated. Run Summary Number of events processed : 10000 - User=0.170000s Real=0.362203s Sys=0.000000s + User=0.170000s Real=0.172072s Sys=0.000000s ============ Run::printInfo() =============== RunID = 4 @@ -496,43 +547,43 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9870 + # Decays = 9882 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=6.48563e-06 mean=0.109402 max=1.05875 - decay R [mm] : min=0.00194433 mean=32.7978 max=317.404 - decay X [mm] : min=0.00194433 mean=32.7978 max=317.404 - decay Y [mm] : min=-0.0114726 mean=-1.36549e-06 max=0.00814979 - decay Z [mm] : min=-0.0135443 mean=-5.44031e-06 max=0.00425167 - Delta decay R [mm] : min=-5.68434e-14 mean=5.62167e-10 max=5.62568e-07 - deflection angle [deg] : min=0 mean=4.31028e-05 max=0.0198284 - Delta Ekin [MeV] : min=0 mean=0.00065021 max=0.579018 + decay T [ns] : min=1.98548e-06 mean=0.110562 max=0.979335 + decay R [mm] : min=0.000595228 mean=33.1453 max=293.595 + decay X [mm] : min=0.000595228 mean=33.1453 max=293.595 + decay Y [mm] : min=-0.0239694 mean=-1.4905e-06 max=0.0115444 + decay Z [mm] : min=-0.0213042 mean=-9.17981e-06 max=0.0170301 + Delta decay R [mm] : min=-2.84217e-14 mean=9.42845e-10 max=1.32016e-06 + deflection angle [deg] : min=0 mean=5.70257e-05 max=0.0230324 + Delta Ekin [MeV] : min=0 mean=0.000996805 max=0.76002 decay Ekin [GeV] : min=499.999 mean=500 max=500 decay Px [GeV] : min=501.861 mean=501.861 max=501.861 - decay Py [GeV] : min=-0.130771 mean=-1.92066e-05 max=0.173683 - decay Pz [GeV] : min=-0.143252 mean=-4.92042e-05 max=0.116874 - decay Etot violation [MeV] : min=-7.97532e-06 mean=2.91877e-06 max=1.22131e-05 - decay Px violation [MeV] : min=-7.97532e-06 mean=2.91885e-06 max=1.22133e-05 - decay Py violation [MeV] : min=-1.22859e-09 mean=-3.45075e-13 max=1.01538e-09 - decay Pz violation [MeV] : min=-9.23819e-10 mean=-1.81462e-13 max=3.73632e-10 + decay Py [GeV] : min=-0.177337 mean=1.18814e-05 max=0.147165 + decay Pz [GeV] : min=-0.17989 mean=-9.64781e-05 max=0.143472 + decay Etot violation [MeV] : min=-7.59395e-06 mean=2.88876e-06 max=1.17052e-05 + decay Px violation [MeV] : min=-7.59383e-06 mean=2.88885e-06 max=1.17054e-05 + decay Py violation [MeV] : min=-1.78646e-09 mean=-6.21108e-13 max=2.83015e-09 + decay Pz violation [MeV] : min=-3.13008e-09 mean=-1.0217e-12 max=1.25802e-09 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 2.54659e-05 , 0.0371413 (mean=0.00383014) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 4.09813e-09 , 4.09813e-09 + maxMass_deltaMax{1,2,3} [eV] = 0 , 2.54659e-05 , 0.0371413 (mean=0.0038348) + maxBeta_deltaMax{1,2} = 1.11022e-16 , 3.33067e-16 + maxGamma_deltaMax{1,2,3} = 0 , 3.38599e-09 , 3.38599e-09 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 - maxMc_truth_rPos_deltaMax [mum] = 5.68434e-11 (mean=3.61611e-12) (# above threshold = 0) + maxMc_truth_rPos_deltaMax [mum] = 5.68434e-11 (mean=3.62914e-12) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -0.0180074 (mean=-2.20115e-05) (#above threshold = 0) - maxOverestimated_mc_truth_rPos_delta [mum] = 0.0278459 (mean=3.24187e-05) (#above threshold = 0) - minUnderestimated_rDeltaPos [mum] = -0.0174448 (mean=-2.14494e-05) (#above threshold = 0) - maxOverestimated_rDeltaPos [mum] = 0.028151 (mean=3.29809e-05) (#above threshold = 0) + minUnderestimated_mc_truth_rPos_delta [mum] = -0.037163 (mean=-3.47313e-05) (#above threshold = 0) + maxOverestimated_mc_truth_rPos_delta [mum] = 0.0822565 (mean=6.21966e-05) (#above threshold = 0) + minUnderestimated_rDeltaPos [mum] = -0.0358428 (mean=-3.37884e-05) (#above threshold = 0) + maxOverestimated_rDeltaPos [mum] = 0.082852 (mean=6.31395e-05) (#above threshold = 0) --- float instead of double --- fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0305176 ============================================= @@ -558,20 +609,20 @@ Index : 1 used in the geometry : Yes ### Run 5 starts. ### Run 5 starts. - Event#=0 t[ns]=0.0686067 r[mm]=20.5676 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=1000 t[ns]=0.198613 r[mm]=59.5423 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=2000 t[ns]=0.140683 r[mm]=42.1753 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=3000 t[ns]=0.0440707 r[mm]=13.212 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=4000 t[ns]=0.141515 r[mm]=42.4248 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=5000 t[ns]=0.00646075 r[mm]=1.93687 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=6000 t[ns]=0.0313979 r[mm]=9.41278 deltaR[mum]=-1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=7000 t[ns]=0.204817 r[mm]=61.4022 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=8000 t[ns]=0.119855 r[mm]=35.9314 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=9000 t[ns]=0.435662 r[mm]=130.607 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=0 t[ns]=0.0355607 r[mm]=10.6608 deltaR[mum]=-1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=1000 t[ns]=0.121593 r[mm]=36.4525 deltaR[mum]=-7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=2000 t[ns]=0.120761 r[mm]=36.2029 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=3000 t[ns]=0.363342 r[mm]=108.926 deltaR[mum]=1.42109e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=4000 t[ns]=0.0649343 r[mm]=19.4667 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=5000 t[ns]=0.00834455 r[mm]=2.50161 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=6000 t[ns]=0.0256818 r[mm]=7.69915 deltaR[mum]=8.88178e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=7000 t[ns]=0.0682648 r[mm]=20.4651 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=8000 t[ns]=0.0359132 r[mm]=10.7664 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=9000 t[ns]=0.109255 r[mm]=32.7537 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 Run terminated. Run Summary Number of events processed : 10000 - User=0.170000s Real=0.343501s Sys=0.000000s + User=0.190000s Real=0.189000s Sys=0.000000s ============ Run::printInfo() =============== RunID = 5 @@ -588,43 +639,43 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9858 + # Decays = 9853 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=2.31941e-06 mean=0.108066 max=1.10695 - decay R [mm] : min=0.000695337 mean=32.3971 max=331.852 - decay X [mm] : min=0.000695337 mean=32.3971 max=331.852 - decay Y [mm] : min=-0.0135094 mean=3.46724e-06 max=0.0159734 - decay Z [mm] : min=-0.0188508 mean=1.29072e-06 max=0.015888 - Delta decay R [mm] : min=-5.68434e-14 mean=6.21145e-10 max=4.94441e-07 - deflection angle [deg] : min=0 mean=4.48915e-05 max=0.0186714 - Delta Ekin [MeV] : min=0 mean=0.000684701 max=0.513417 + decay T [ns] : min=7.72517e-06 mean=0.109739 max=1.09337 + decay R [mm] : min=0.00231593 mean=32.8986 max=327.781 + decay X [mm] : min=0.00231593 mean=32.8986 max=327.781 + decay Y [mm] : min=-0.0136962 mean=5.95947e-06 max=0.0201682 + decay Z [mm] : min=-0.0174135 mean=9.81924e-07 max=0.0212326 + Delta decay R [mm] : min=-2.84217e-14 mean=9.87777e-10 max=1.25223e-06 + deflection angle [deg] : min=0 mean=4.56954e-05 max=0.0273414 + Delta Ekin [MeV] : min=0 mean=0.000890649 max=1.10093 decay Ekin [GeV] : min=499.999 mean=500 max=500 - decay Px [GeV] : min=501.861 mean=501.861 max=501.861 - decay Py [GeV] : min=-0.121698 mean=6.6246e-05 max=0.160744 - decay Pz [GeV] : min=-0.123343 mean=3.04112e-05 max=0.128379 - decay Etot violation [MeV] : min=-7.21397e-06 mean=2.92084e-06 max=1.28807e-05 - decay Px violation [MeV] : min=-7.21397e-06 mean=2.92093e-06 max=1.28809e-05 - decay Py violation [MeV] : min=-1.4812e-09 mean=9.95093e-14 max=7.52451e-10 - decay Pz violation [MeV] : min=-1.29241e-09 mean=4.62173e-13 max=1.95161e-09 + decay Px [GeV] : min=501.86 mean=501.861 max=501.861 + decay Py [GeV] : min=-0.163077 mean=4.8784e-05 max=0.153041 + decay Pz [GeV] : min=-0.175418 mean=-9.02561e-06 max=0.196453 + decay Etot violation [MeV] : min=-5.44521e-06 mean=2.91214e-06 max=1.13838e-05 + decay Px violation [MeV] : min=-5.44527e-06 mean=2.91223e-06 max=1.1384e-05 + decay Py violation [MeV] : min=-7.80716e-10 mean=-1.61341e-15 max=1.75584e-09 + decay Pz violation [MeV] : min=-1.5452e-09 mean=-1.45943e-13 max=1.068e-09 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 2.54659e-05 , 0.0371413 (mean=0.00381591) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 3.55004e-09 , 3.55004e-09 + maxMass_deltaMax{1,2,3} [eV] = 0 , 2.54659e-05 , 0.0371413 (mean=0.00381593) + maxBeta_deltaMax{1,2} = 1.11022e-16 , 3.33067e-16 + maxGamma_deltaMax{1,2,3} = 0 , 3.43675e-09 , 3.43675e-09 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 - maxMc_truth_rPos_deltaMax [mum] = 5.68434e-11 (mean=3.55236e-12) (# above threshold = 0) + maxMc_truth_rPos_deltaMax [mum] = 5.68434e-11 (mean=3.68822e-12) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -0.0163985 (mean=-2.29473e-05) (#above threshold = 0) - maxOverestimated_mc_truth_rPos_delta [mum] = 0.045473 (mean=4.09961e-05) (#above threshold = 0) - minUnderestimated_rDeltaPos [mum] = -0.0162062 (mean=-2.23262e-05) (#above threshold = 0) - maxOverestimated_rDeltaPos [mum] = 0.0457584 (mean=4.16172e-05) (#above threshold = 0) + minUnderestimated_mc_truth_rPos_delta [mum] = -0.0353741 (mean=-3.17623e-05) (#above threshold = 0) + maxOverestimated_mc_truth_rPos_delta [mum] = 0.0756367 (mean=6.24807e-05) (#above threshold = 0) + minUnderestimated_rDeltaPos [mum] = -0.0341218 (mean=-3.07745e-05) (#above threshold = 0) + maxOverestimated_rDeltaPos [mum] = 0.0768889 (mean=6.34685e-05) (#above threshold = 0) --- float instead of double --- fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0305176 ============================================= @@ -650,20 +701,20 @@ Index : 1 used in the geometry : Yes ### Run 6 starts. ### Run 6 starts. - Event#=0 t[ns]=0.181593 r[mm]=54.4399 deltaR[mum]=2.9953e-05 deltaEkin[MeV]=6.71423 deltaAngle(deg)=0.00737437 - Event#=1000 t[ns]=0.129696 r[mm]=38.8815 deltaR[mum]=1.64024e-05 deltaEkin[MeV]=8.52415 deltaAngle(deg)=0.00479947 - Event#=2000 t[ns]=0.423889 r[mm]=127.078 deltaR[mum]=0.000524817 deltaEkin[MeV]=7.10353 deltaAngle(deg)=0.0179968 - Event#=3000 t[ns]=0.0986555 r[mm]=29.5759 deltaR[mum]=6.92232e-06 deltaEkin[MeV]=7.28177 deltaAngle(deg)=0.00422205 - Event#=4000 t[ns]=0.0300521 r[mm]=9.00931 deltaR[mum]=1.74246e-07 deltaEkin[MeV]=0.00196952 deltaAngle(deg)=0.00124059 - Event#=5000 t[ns]=0.0554937 r[mm]=16.6365 deltaR[mum]=9.3695e-07 deltaEkin[MeV]=2.45427 deltaAngle(deg)=0.00259946 - Event#=6000 t[ns]=0.0638351 r[mm]=19.1371 deltaR[mum]=1.30698e-06 deltaEkin[MeV]=3.0805 deltaAngle(deg)=0.00269122 - Event#=7000 t[ns]=0.210033 r[mm]=62.9658 deltaR[mum]=3.87837e-05 deltaEkin[MeV]=7.14969 deltaAngle(deg)=0.00785555 - Event#=8000 t[ns]=0.188554 r[mm]=56.5267 deltaR[mum]=0.000170153 deltaEkin[MeV]=95.6926 deltaAngle(deg)=0.00958816 - Event#=9000 t[ns]=0.0234321 r[mm]=7.0247 deltaR[mum]=8.24301e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000961423 + Event#=0 t[ns]=0.152881 r[mm]=45.8322 deltaR[mum]=1.94664e-05 deltaEkin[MeV]=7.00073 deltaAngle(deg)=0.00615936 + Event#=1000 t[ns]=0.068246 r[mm]=20.4595 deltaR[mum]=1.54499e-06 deltaEkin[MeV]=4.36868 deltaAngle(deg)=0.00318617 + Event#=2000 t[ns]=0.0303004 r[mm]=9.08375 deltaR[mum]=1.81393e-07 deltaEkin[MeV]=0.0207532 deltaAngle(deg)=0.00122128 + Event#=3000 t[ns]=0.0252581 r[mm]=7.57211 deltaR[mum]=1.03242e-07 deltaEkin[MeV]=0 deltaAngle(deg)=0.00103634 + Event#=4000 t[ns]=0.185626 r[mm]=55.6488 deltaR[mum]=4.4006e-05 deltaEkin[MeV]=6.97263 deltaAngle(deg)=0.00832571 + Event#=5000 t[ns]=0.282051 r[mm]=84.5561 deltaR[mum]=0.000164525 deltaEkin[MeV]=6.81962 deltaAngle(deg)=0.012812 + Event#=6000 t[ns]=0.0867546 r[mm]=26.0082 deltaR[mum]=2.95774e-06 deltaEkin[MeV]=5.64769 deltaAngle(deg)=0.0040835 + Event#=7000 t[ns]=0.131872 r[mm]=39.534 deltaR[mum]=1.09044e-05 deltaEkin[MeV]=8.51821 deltaAngle(deg)=0.00442792 + Event#=8000 t[ns]=0.422315 r[mm]=126.606 deltaR[mum]=0.000531465 deltaEkin[MeV]=9.20092 deltaAngle(deg)=0.0176977 + Event#=9000 t[ns]=0.0263038 r[mm]=7.88561 deltaR[mum]=1.16605e-07 deltaEkin[MeV]=0 deltaAngle(deg)=0.00107925 Run terminated. Run Summary Number of events processed : 10000 - User=0.320000s Real=0.668427s Sys=0.000000s + User=0.310000s Real=0.318634s Sys=0.000000s ============ Run::printInfo() =============== RunID = 6 @@ -680,45 +731,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9862 + # Decays = 9853 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=4.13207e-05 mean=0.124756 max=1.69543 - decay R [mm] : min=0.0123875 mean=37.4006 max=508.273 - decay X [mm] : min=0.0123875 mean=37.4006 max=508.272 - decay Y [mm] : min=-0.29839 mean=-0.00364963 max=-1.83294e-10 - decay Z [mm] : min=-0.0276993 mean=7.07764e-06 max=0.029738 - Delta decay R [mm] : min=-3.46945e-18 mean=7.58895e-08 max=3.08185e-05 - deflection angle [deg] : min=1.9089e-06 mean=0.00517061 max=0.0683184 - Delta Ekin [MeV] : min=0 mean=6.30709 max=3041.66 - decay Ekin [GeV] : min=496.958 mean=499.994 max=500 - decay Px [GeV] : min=498.923 mean=501.958 max=501.964 - decay Py [GeV] : min=-0.598488 mean=-0.0449741 max=0.0201892 - decay Pz [GeV] : min=-0.131869 mean=3.34131e-05 max=0.157363 - decay Etot violation [MeV] : min=-9.94018e-06 mean=3.22331e-06 max=1.75469e-05 - decay Px violation [MeV] : min=-9.94012e-06 mean=3.22336e-06 max=1.7547e-05 - decay Py violation [MeV] : min=-7.97132e-09 mean=-3.66958e-10 max=4.39132e-09 - decay Pz violation [MeV] : min=-3.10746e-09 mean=9.94731e-14 max=2.36976e-09 + decay T [ns] : min=1.61409e-07 mean=0.126587 max=1.14334 + decay R [mm] : min=4.83889e-05 mean=37.9494 max=342.763 + decay X [mm] : min=4.83889e-05 mean=37.9494 max=342.763 + decay Y [mm] : min=-0.139441 mean=-0.00373796 max=0.00456175 + decay Z [mm] : min=-0.0154219 mean=-6.95468e-06 max=0.0141046 + Delta decay R [mm] : min=0 mean=7.6646e-08 max=9.64453e-06 + deflection angle [deg] : min=8.53688e-07 mean=0.00524262 max=0.0523824 + Delta Ekin [MeV] : min=0 mean=6.15089 max=1294.61 + decay Ekin [GeV] : min=498.705 mean=499.994 max=500 + decay Px [GeV] : min=500.67 mean=501.958 max=501.964 + decay Py [GeV] : min=-0.425896 mean=-0.0455616 max=0.0728715 + decay Pz [GeV] : min=-0.17103 mean=-6.41915e-05 max=0.12995 + decay Etot violation [MeV] : min=-1.03025e-05 mean=3.14932e-06 max=1.77132e-05 + decay Px violation [MeV] : min=-1.03024e-05 mean=3.14937e-06 max=1.77133e-05 + decay Py violation [MeV] : min=-7.27931e-09 mean=-3.6198e-10 max=2.56927e-09 + decay Pz violation [MeV] : min=-1.76512e-09 mean=-9.54981e-13 max=1.15466e-09 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 1.86446e-05 , 0.0562266 (mean=0.0120607) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 3.25502e-09 , 3.25502e-09 + maxMass_deltaMax{1,2,3} [eV] = 0 , 1.86446e-05 , 0.0484742 (mean=0.0120379) + maxBeta_deltaMax{1,2} = 4.44089e-16 , 4.44089e-16 + maxGamma_deltaMax{1,2,3} = 0 , 3.32548e-09 , 3.32548e-09 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -58.6135 (mean=-0.284509) (#above threshold = 131) - maxOverestimated_mc_truth_rPos_delta [mum] = 355.773 (mean=0.435649) (#above threshold = 1055) - minUnderestimated_rDeltaPos [mum] = -58.6096 (mean=-0.284433) (#above threshold = 131) - maxOverestimated_rDeltaPos [mum] = 355.781 (mean=0.435725) (#above threshold = 1056) + minUnderestimated_mc_truth_rPos_delta [mum] = -26.1672 (mean=-0.277059) (#above threshold = 131) + maxOverestimated_mc_truth_rPos_delta [mum] = 160.045 (mean=0.406762) (#above threshold = 1136) + minUnderestimated_rDeltaPos [mum] = -26.1666 (mean=-0.276982) (#above threshold = 131) + maxOverestimated_rDeltaPos [mum] = 160.047 (mean=0.406839) (#above threshold = 1137) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0652104 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0481016 ============================================= @@ -742,20 +793,20 @@ Index : 1 used in the geometry : Yes ### Run 7 starts. ### Run 7 starts. - Event#=0 t[ns]=0.212525 r[mm]=63.7129 deltaR[mum]=5.97528e-05 deltaEkin[MeV]=6.86149 deltaAngle(deg)=0.00885578 - Event#=1000 t[ns]=0.30815 r[mm]=92.3804 deltaR[mum]=0.000168692 deltaEkin[MeV]=7.12709 deltaAngle(deg)=0.0127445 - Event#=2000 t[ns]=0.0259706 r[mm]=7.78574 deltaR[mum]=1.12228e-07 deltaEkin[MeV]=0 deltaAngle(deg)=0.00106558 - Event#=3000 t[ns]=0.223342 r[mm]=66.9557 deltaR[mum]=6.79021e-05 deltaEkin[MeV]=6.85597 deltaAngle(deg)=0.0103313 - Event#=4000 t[ns]=0.130854 r[mm]=39.2287 deltaR[mum]=2.30681e-05 deltaEkin[MeV]=12.5445 deltaAngle(deg)=0.00631822 - Event#=5000 t[ns]=0.0893639 r[mm]=26.7904 deltaR[mum]=4.60603e-06 deltaEkin[MeV]=7.08337 deltaAngle(deg)=0.00335882 - Event#=6000 t[ns]=0.529651 r[mm]=158.784 deltaR[mum]=0.000935799 deltaEkin[MeV]=7.61825 deltaAngle(deg)=0.0218177 - Event#=7000 t[ns]=0.0655424 r[mm]=19.649 deltaR[mum]=1.39529e-06 deltaEkin[MeV]=3.65838 deltaAngle(deg)=0.00305937 - Event#=8000 t[ns]=7.12424e-05 r[mm]=0.0213578 deltaR[mum]=-3.46945e-15 deltaEkin[MeV]=0 deltaAngle(deg)=2.95726e-06 - Event#=9000 t[ns]=0.00444323 r[mm]=1.33204 deltaR[mum]=5.61995e-10 deltaEkin[MeV]=0 deltaAngle(deg)=0.000182308 + Event#=0 t[ns]=0.0419248 r[mm]=12.5686 deltaR[mum]=4.96549e-07 deltaEkin[MeV]=1.17818 deltaAngle(deg)=0.00118159 + Event#=1000 t[ns]=0.126604 r[mm]=37.9545 deltaR[mum]=1.64973e-05 deltaEkin[MeV]=7.21255 deltaAngle(deg)=0.0061966 + Event#=2000 t[ns]=0.0631504 r[mm]=18.9319 deltaR[mum]=1.49256e-06 deltaEkin[MeV]=4.46225 deltaAngle(deg)=0.00262194 + Event#=3000 t[ns]=0.212995 r[mm]=63.8537 deltaR[mum]=6.55632e-05 deltaEkin[MeV]=8.7822 deltaAngle(deg)=0.00922787 + Event#=4000 t[ns]=0.147427 r[mm]=44.1971 deltaR[mum]=2.05944e-05 deltaEkin[MeV]=8.0155 deltaAngle(deg)=0.00624036 + Event#=5000 t[ns]=0.313908 r[mm]=94.1065 deltaR[mum]=0.000163262 deltaEkin[MeV]=7.18945 deltaAngle(deg)=0.0124489 + Event#=6000 t[ns]=0.188916 r[mm]=56.6352 deltaR[mum]=4.74836e-05 deltaEkin[MeV]=7.25204 deltaAngle(deg)=0.00828066 + Event#=7000 t[ns]=0.0187167 r[mm]=5.61107 deltaR[mum]=4.20082e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000767949 + Event#=8000 t[ns]=0.0865542 r[mm]=25.9481 deltaR[mum]=2.93828e-06 deltaEkin[MeV]=7.2196 deltaAngle(deg)=0.00381766 + Event#=9000 t[ns]=0.337309 r[mm]=101.122 deltaR[mum]=0.000179459 deltaEkin[MeV]=7.446 deltaAngle(deg)=0.0138624 Run terminated. Run Summary Number of events processed : 10000 - User=0.320000s Real=0.756749s Sys=0.000000s + User=0.310000s Real=0.311522s Sys=0.000000s ============ Run::printInfo() =============== RunID = 7 @@ -772,45 +823,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9868 + # Decays = 9877 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=1.04695e-05 mean=0.127186 max=1.24656 - decay R [mm] : min=0.00313865 mean=38.1292 max=373.706 - decay X [mm] : min=0.00313865 mean=38.1292 max=373.706 - decay Y [mm] : min=-0.00137221 mean=0.00381297 max=0.161663 - decay Z [mm] : min=-0.0129005 mean=2.62872e-06 max=0.0121638 - Delta decay R [mm] : min=-3.46945e-18 mean=8.06513e-08 max=1.23502e-05 - deflection angle [deg] : min=8.53688e-07 mean=0.00526962 max=0.0502972 - Delta Ekin [MeV] : min=0 mean=6.65635 max=2308.7 - decay Ekin [GeV] : min=497.691 mean=499.993 max=500 - decay Px [GeV] : min=499.656 mean=501.958 max=501.964 - decay Py [GeV] : min=-0.106579 mean=0.0457756 max=0.440664 - decay Pz [GeV] : min=-0.131559 mean=8.17478e-05 max=0.155135 - decay Etot violation [MeV] : min=-1.21722e-05 mean=3.20272e-06 max=1.73551e-05 - decay Px violation [MeV] : min=-1.21721e-05 mean=3.20277e-06 max=1.73552e-05 - decay Py violation [MeV] : min=-3.50832e-09 mean=3.72152e-10 max=6.54745e-09 - decay Pz violation [MeV] : min=-2.31253e-09 mean=7.92174e-13 max=1.54712e-09 + decay T [ns] : min=7.90018e-06 mean=0.128287 max=1.22781 + decay R [mm] : min=0.0023684 mean=38.4593 max=368.085 + decay X [mm] : min=0.0023684 mean=38.4593 max=368.085 + decay Y [mm] : min=-0.00388159 mean=0.0038203 max=0.162842 + decay Z [mm] : min=-0.0255742 mean=2.52526e-06 max=0.0260611 + Delta decay R [mm] : min=0 mean=8.02561e-08 max=1.19047e-05 + deflection angle [deg] : min=8.53688e-07 mean=0.00531162 max=0.0505195 + Delta Ekin [MeV] : min=0 mean=5.94807 max=431.343 + decay Ekin [GeV] : min=499.569 mean=499.994 max=500 + decay Px [GeV] : min=501.533 mean=501.958 max=501.964 + decay Py [GeV] : min=-0.123975 mean=0.0460455 max=0.442628 + decay Pz [GeV] : min=-0.204284 mean=5.42333e-05 max=0.343286 + decay Etot violation [MeV] : min=-9.93413e-06 mean=3.18139e-06 max=1.80173e-05 + decay Px violation [MeV] : min=-9.93401e-06 mean=3.18143e-06 max=1.80173e-05 + decay Py violation [MeV] : min=-3.70801e-09 mean=3.69442e-10 max=1.0442e-08 + decay Pz violation [MeV] : min=-2.86894e-09 mean=4.70845e-13 max=2.73725e-09 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 1.86446e-05 , 0.0562266 (mean=0.0117912) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 3.51278e-09 , 3.51278e-09 + maxMass_deltaMax{1,2,3} [eV] = 0 , 1.86446e-05 , 0.0639789 (mean=0.0121371) + maxBeta_deltaMax{1,2} = 4.44089e-16 , 5.55112e-16 + maxGamma_deltaMax{1,2,3} = 0 , 3.24096e-09 , 3.24096e-09 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -84.2873 (mean=-0.299358) (#above threshold = 134) - maxOverestimated_mc_truth_rPos_delta [mum] = 118.77 (mean=0.416777) (#above threshold = 1140) - minUnderestimated_rDeltaPos [mum] = -84.2871 (mean=-0.299277) (#above threshold = 134) - maxOverestimated_rDeltaPos [mum] = 118.772 (mean=0.416858) (#above threshold = 1141) + minUnderestimated_mc_truth_rPos_delta [mum] = -18.2555 (mean=-0.276253) (#above threshold = 125) + maxOverestimated_mc_truth_rPos_delta [mum] = 65.8022 (mean=0.398991) (#above threshold = 1159) + minUnderestimated_rDeltaPos [mum] = -18.255 (mean=-0.276173) (#above threshold = 125) + maxOverestimated_rDeltaPos [mum] = 65.8037 (mean=0.399072) (#above threshold = 1159) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0733853 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0476869 ============================================= @@ -834,20 +885,20 @@ Index : 1 used in the geometry : Yes ### Run 8 starts. ### Run 8 starts. - Event#=0 t[ns]=0.329819 r[mm]=98.8717 deltaR[mum]=0.000304561 deltaEkin[MeV]=7.19948 deltaAngle(deg)=0.0135728 - Event#=1000 t[ns]=0.106207 r[mm]=31.8382 deltaR[mum]=1.25767e-05 deltaEkin[MeV]=7.30778 deltaAngle(deg)=0.00340045 - Event#=2000 t[ns]=0.228244 r[mm]=68.4222 deltaR[mum]=0.000109522 deltaEkin[MeV]=6.8261 deltaAngle(deg)=0.00947171 - Event#=3000 t[ns]=0.284568 r[mm]=85.3066 deltaR[mum]=0.000218945 deltaEkin[MeV]=6.59795 deltaAngle(deg)=0.0123731 - Event#=4000 t[ns]=0.350976 r[mm]=105.214 deltaR[mum]=0.000387171 deltaEkin[MeV]=7.79629 deltaAngle(deg)=0.0139194 - Event#=5000 t[ns]=0.13044 r[mm]=39.1028 deltaR[mum]=2.57206e-05 deltaEkin[MeV]=7.03849 deltaAngle(deg)=0.00534953 - Event#=6000 t[ns]=0.0120879 r[mm]=3.62365 deltaR[mum]=1.11666e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000492717 - Event#=7000 t[ns]=0.00559703 r[mm]=1.67786 deltaR[mum]=1.10867e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000228142 - Event#=8000 t[ns]=0.116922 r[mm]=35.0503 deltaR[mum]=4.43632e-05 deltaEkin[MeV]=11.1784 deltaAngle(deg)=0.00546905 - Event#=9000 t[ns]=0.200586 r[mm]=60.1309 deltaR[mum]=8.90298e-05 deltaEkin[MeV]=7.7622 deltaAngle(deg)=0.00819505 + Event#=0 t[ns]=0.0799343 r[mm]=23.9624 deltaR[mum]=2.31966e-06 deltaEkin[MeV]=5.4878 deltaAngle(deg)=0.00392504 + Event#=1000 t[ns]=0.0375281 r[mm]=11.25 deltaR[mum]=3.72689e-07 deltaEkin[MeV]=0.686687 deltaAngle(deg)=0.00126093 + Event#=2000 t[ns]=0.0653056 r[mm]=19.5771 deltaR[mum]=1.36466e-06 deltaEkin[MeV]=3.53663 deltaAngle(deg)=0.00206947 + Event#=3000 t[ns]=0.432585 r[mm]=129.679 deltaR[mum]=0.000620347 deltaEkin[MeV]=7.77668 deltaAngle(deg)=0.0173775 + Event#=4000 t[ns]=0.289833 r[mm]=86.8849 deltaR[mum]=0.000212013 deltaEkin[MeV]=7.12952 deltaAngle(deg)=0.0120122 + Event#=5000 t[ns]=0.376075 r[mm]=112.738 deltaR[mum]=0.000393613 deltaEkin[MeV]=7.71376 deltaAngle(deg)=0.0135644 + Event#=6000 t[ns]=0.0448253 r[mm]=13.4375 deltaR[mum]=5.71458e-07 deltaEkin[MeV]=1.42657 deltaAngle(deg)=0.00167401 + Event#=7000 t[ns]=0.0112583 r[mm]=3.37497 deltaR[mum]=9.023e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000458903 + Event#=8000 t[ns]=0.0447018 r[mm]=13.4005 deltaR[mum]=5.67894e-07 deltaEkin[MeV]=1.6498 deltaAngle(deg)=0.00200473 + Event#=9000 t[ns]=0.0561467 r[mm]=16.8314 deltaR[mum]=9.50013e-07 deltaEkin[MeV]=3.19185 deltaAngle(deg)=0.00205537 Run terminated. Run Summary Number of events processed : 10000 - User=0.350000s Real=0.740280s Sys=0.000000s + User=0.360000s Real=0.362934s Sys=0.000000s ============ Run::printInfo() =============== RunID = 8 @@ -864,45 +915,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9840 + # Decays = 9814 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=2.14216e-05 mean=0.155006 max=1.54647 - decay R [mm] : min=0.00642167 mean=46.4672 max=463.593 - decay X [mm] : min=0.00642167 mean=46.4672 max=463.593 - decay Y [mm] : min=-0.254936 mean=-0.0055232 max=0.00575116 - decay Z [mm] : min=-0.0106866 mean=-1.39754e-06 max=0.0168168 - Delta decay R [mm] : min=-3.46945e-18 mean=1.96921e-07 max=2.40167e-05 - deflection angle [deg] : min=8.53688e-07 mean=0.00635227 max=0.0629994 - Delta Ekin [MeV] : min=0 mean=6.69465 max=1606.42 - decay Ekin [GeV] : min=498.394 mean=499.993 max=500 - decay Px [GeV] : min=503.645 mean=505.245 max=505.252 - decay Py [GeV] : min=-0.555593 mean=-0.0556157 max=0.105156 - decay Pz [GeV] : min=-0.0974442 mean=-7.16241e-05 max=0.132654 - decay Etot violation [MeV] : min=-1.88395e-06 mean=3.97575e-07 max=2.67767e-06 - decay Px violation [MeV] : min=-1.88412e-06 mean=3.9756e-07 max=2.67761e-06 - decay Py violation [MeV] : min=-1.62288e-09 mean=-5.18899e-11 max=6.71548e-10 - decay Pz violation [MeV] : min=-1.65798e-10 mean=-1.36404e-13 max=2.13447e-10 + decay T [ns] : min=1.73586e-06 mean=0.155755 max=1.39703 + decay R [mm] : min=0.00052037 mean=46.6916 max=418.798 + decay X [mm] : min=0.00052037 mean=46.6916 max=418.797 + decay Y [mm] : min=-0.200912 mean=-0.00552233 max=0.0249426 + decay Z [mm] : min=-0.0164061 mean=5.93271e-06 max=0.0184309 + Delta decay R [mm] : min=-3.46945e-18 mean=2.06182e-07 max=0.000163985 + deflection angle [deg] : min=0 mean=0.00639735 max=0.0559447 + Delta Ekin [MeV] : min=0 mean=6.91523 max=3249.95 + decay Ekin [GeV] : min=496.75 mean=499.993 max=500 + decay Px [GeV] : min=502.002 mean=505.245 max=505.252 + decay Py [GeV] : min=-0.493299 mean=-0.055964 max=0.218806 + decay Pz [GeV] : min=-0.0922147 mean=2.59883e-05 max=0.123137 + decay Etot violation [MeV] : min=-1.60845e-06 mean=3.88437e-07 max=2.68442e-06 + decay Px violation [MeV] : min=-1.60839e-06 mean=3.88419e-07 max=2.6846e-06 + decay Py violation [MeV] : min=-1.15563e-09 mean=-5.13154e-11 max=9.01025e-10 + decay Pz violation [MeV] : min=-1.99492e-10 mean=-4.60333e-14 max=1.6874e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 2.09184e-05 , 0.0218188 (mean=0.00447507) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.62615e-10 , 1.62615e-10 + maxMass_deltaMax{1,2,3} [eV] = 0 , 2.09184e-05 , 0.0247082 (mean=0.00449582) + maxBeta_deltaMax{1,2} = 3.33067e-16 , 4.44089e-16 + maxGamma_deltaMax{1,2,3} = 0 , 1.64391e-10 , 1.64391e-10 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 - maxMc_truth_rPos_deltaMax [mum] = 1.7053e-10 (mean=1.03065e-11) (# above threshold = 0) + maxMc_truth_rPos_deltaMax [mum] = 1.13687e-10 (mean=1.03711e-11) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -64.542 (mean=-0.306313) (#above threshold = 114) - maxOverestimated_mc_truth_rPos_delta [mum] = 214.22 (mean=0.544699) (#above threshold = 1592) - minUnderestimated_rDeltaPos [mum] = -64.5409 (mean=-0.306116) (#above threshold = 114) - maxOverestimated_rDeltaPos [mum] = 214.244 (mean=0.544896) (#above threshold = 1593) + minUnderestimated_mc_truth_rPos_delta [mum] = -170.446 (mean=-0.324223) (#above threshold = 113) + maxOverestimated_mc_truth_rPos_delta [mum] = 1457.75 (mean=0.66018) (#above threshold = 1617) + minUnderestimated_rDeltaPos [mum] = -170.442 (mean=-0.324017) (#above threshold = 113) + maxOverestimated_rDeltaPos [mum] = 1457.91 (mean=0.660386) (#above threshold = 1617) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0677771 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0676878 ============================================= @@ -926,20 +977,20 @@ Index : 1 used in the geometry : Yes ### Run 9 starts. ### Run 9 starts. - Event#=0 t[ns]=0.0647526 r[mm]=19.4113 deltaR[mum]=1.33615e-06 deltaEkin[MeV]=4.25646 deltaAngle(deg)=0.00317381 - Event#=1000 t[ns]=0.0599799 r[mm]=17.9805 deltaR[mum]=1.10932e-06 deltaEkin[MeV]=3.40535 deltaAngle(deg)=0.00306019 - Event#=2000 t[ns]=0.397761 r[mm]=119.239 deltaR[mum]=0.00064166 deltaEkin[MeV]=12.0022 deltaAngle(deg)=0.0163041 - Event#=3000 t[ns]=0.13259 r[mm]=39.7474 deltaR[mum]=3.49458e-05 deltaEkin[MeV]=7.47999 deltaAngle(deg)=0.00530905 - Event#=4000 t[ns]=0.225544 r[mm]=67.6128 deltaR[mum]=0.000168615 deltaEkin[MeV]=7.34023 deltaAngle(deg)=0.0112727 - Event#=5000 t[ns]=0.0232798 r[mm]=6.97873 deltaR[mum]=7.97735e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000948917 - Event#=6000 t[ns]=0.0574826 r[mm]=17.2319 deltaR[mum]=4.44047e-06 deltaEkin[MeV]=4.80837 deltaAngle(deg)=0.00222381 - Event#=7000 t[ns]=0.0514155 r[mm]=15.4131 deltaR[mum]=7.77321e-07 deltaEkin[MeV]=2.15138 deltaAngle(deg)=0.00253217 - Event#=8000 t[ns]=0.0686663 r[mm]=20.5845 deltaR[mum]=1.54885e-06 deltaEkin[MeV]=4.5443 deltaAngle(deg)=0.00210425 - Event#=9000 t[ns]=0.157083 r[mm]=47.0897 deltaR[mum]=4.27535e-05 deltaEkin[MeV]=6.71854 deltaAngle(deg)=0.00606352 + Event#=0 t[ns]=0.0423555 r[mm]=12.6972 deltaR[mum]=5.18574e-07 deltaEkin[MeV]=2.33664 deltaAngle(deg)=0.00171741 + Event#=1000 t[ns]=0.247601 r[mm]=74.2248 deltaR[mum]=0.000186947 deltaEkin[MeV]=10.4732 deltaAngle(deg)=0.0102069 + Event#=2000 t[ns]=0.113768 r[mm]=34.1048 deltaR[mum]=4.62587e-05 deltaEkin[MeV]=13.2569 deltaAngle(deg)=0.0050069 + Event#=3000 t[ns]=0.200595 r[mm]=60.1336 deltaR[mum]=0.000103764 deltaEkin[MeV]=7.70373 deltaAngle(deg)=0.00849538 + Event#=4000 t[ns]=0.0287361 r[mm]=8.61439 deltaR[mum]=1.5004e-07 deltaEkin[MeV]=0 deltaAngle(deg)=0.00117132 + Event#=5000 t[ns]=0.0199893 r[mm]=5.99231 deltaR[mum]=5.05027e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000814791 + Event#=6000 t[ns]=0.00908252 r[mm]=2.72272 deltaR[mum]=4.73754e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000370217 + Event#=7000 t[ns]=0.522429 r[mm]=156.612 deltaR[mum]=0.00104067 deltaEkin[MeV]=6.41872 deltaAngle(deg)=0.0209932 + Event#=8000 t[ns]=0.261883 r[mm]=78.5063 deltaR[mum]=0.000194727 deltaEkin[MeV]=8.42145 deltaAngle(deg)=0.0107855 + Event#=9000 t[ns]=0.108726 r[mm]=32.5934 deltaR[mum]=1.46162e-05 deltaEkin[MeV]=7.33965 deltaAngle(deg)=0.00558834 Run terminated. Run Summary Number of events processed : 10000 - User=0.370000s Real=1.094064s Sys=0.000000s + User=0.350000s Real=0.352319s Sys=0.000000s ============ Run::printInfo() =============== RunID = 9 @@ -956,45 +1007,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9829 + # Decays = 9835 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=2.63583e-06 mean=0.153804 max=1.29183 - decay R [mm] : min=0.000790159 mean=46.1066 max=387.261 - decay X [mm] : min=0.000790159 mean=46.1066 max=387.261 - decay Y [mm] : min=-0.0063197 mean=0.00537638 max=0.177371 - decay Z [mm] : min=-0.0233137 mean=-8.47805e-06 max=0.0232755 - Delta decay R [mm] : min=0 mean=1.85051e-07 max=1.45317e-05 - deflection angle [deg] : min=0 mean=0.0063201 max=0.0525319 - Delta Ekin [MeV] : min=0 mean=6.48664 max=692.112 - decay Ekin [GeV] : min=499.308 mean=499.994 max=500 - decay Px [GeV] : min=504.56 mean=505.245 max=505.252 - decay Py [GeV] : min=-0.0453603 mean=0.0553676 max=0.463264 - decay Pz [GeV] : min=-0.104321 mean=-7.03367e-05 max=0.156691 - decay Etot violation [MeV] : min=-1.51515e-06 mean=3.95035e-07 max=2.75607e-06 - decay Px violation [MeV] : min=-1.51509e-06 mean=3.95017e-07 max=2.75613e-06 - decay Py violation [MeV] : min=-5.27109e-10 mean=5.09886e-11 max=1.26619e-09 - decay Pz violation [MeV] : min=-1.70402e-10 mean=-1.22038e-13 max=1.14085e-10 + decay T [ns] : min=1.23554e-06 mean=0.157472 max=1.84649 + decay R [mm] : min=0.000370384 mean=47.2062 max=553.534 + decay X [mm] : min=0.000370384 mean=47.2062 max=553.534 + decay Y [mm] : min=-0.00521616 mean=0.00577276 max=0.434529 + decay Z [mm] : min=-0.0253666 mean=3.4677e-06 max=0.0783976 + Delta decay R [mm] : min=-3.46945e-18 mean=2.12868e-07 max=4.31263e-05 + deflection angle [deg] : min=0 mean=0.0064702 max=0.0830407 + Delta Ekin [MeV] : min=0 mean=6.48208 max=1228.55 + decay Ekin [GeV] : min=498.771 mean=499.994 max=500 + decay Px [GeV] : min=504.023 mean=505.245 max=505.252 + decay Py [GeV] : min=-0.111551 mean=0.0566167 max=0.732176 + decay Pz [GeV] : min=-0.11488 mean=-4.9175e-05 max=0.304906 + decay Etot violation [MeV] : min=-1.46491e-06 mean=3.92912e-07 max=2.8311e-06 + decay Px violation [MeV] : min=-1.46474e-06 mean=3.92893e-07 max=2.83122e-06 + decay Py violation [MeV] : min=-6.82178e-10 mean=5.30365e-11 max=1.56331e-09 + decay Pz violation [MeV] : min=-2.04352e-10 mean=-3.11983e-14 max=7.69148e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 2.09184e-05 , 0.0218188 (mean=0.00448599) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 5.55112e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.63965e-10 , 1.63965e-10 + maxMass_deltaMax{1,2,3} [eV] = 0 , 2.09184e-05 , 0.0218188 (mean=0.00447207) + maxBeta_deltaMax{1,2} = 4.44089e-16 , 4.44089e-16 + maxGamma_deltaMax{1,2,3} = 0 , 1.74751e-10 , 1.74751e-10 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 - maxMc_truth_rPos_deltaMax [mum] = 1.13687e-10 (mean=1.03683e-11) (# above threshold = 0) + maxMc_truth_rPos_deltaMax [mum] = 1.7053e-10 (mean=1.04527e-11) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -28.644 (mean=-0.301467) (#above threshold = 139) - maxOverestimated_mc_truth_rPos_delta [mum] = 112 (mean=0.527746) (#above threshold = 1546) - minUnderestimated_rDeltaPos [mum] = -28.6438 (mean=-0.301282) (#above threshold = 139) - maxOverestimated_rDeltaPos [mum] = 112.014 (mean=0.527931) (#above threshold = 1546) + minUnderestimated_mc_truth_rPos_delta [mum] = -53.8567 (mean=-0.302721) (#above threshold = 123) + maxOverestimated_mc_truth_rPos_delta [mum] = 110.449 (mean=0.536726) (#above threshold = 1623) + minUnderestimated_rDeltaPos [mum] = -53.8445 (mean=-0.302508) (#above threshold = 123) + maxOverestimated_rDeltaPos [mum] = 110.462 (mean=0.536939) (#above threshold = 1623) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0680494 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0684996 ============================================= @@ -1018,20 +1069,20 @@ Index : 1 used in the geometry : Yes ### Run 10 starts. ### Run 10 starts. - Event#=0 t[ns]=0.086345 r[mm]=25.8842 deltaR[mum]=3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=1000 t[ns]=0.288813 r[mm]=86.5794 deltaR[mum]=1.42109e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=2000 t[ns]=0.0316293 r[mm]=9.48171 deltaR[mum]=1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=3000 t[ns]=0.123439 r[mm]=37.0042 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=4000 t[ns]=0.031171 r[mm]=9.34433 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=5000 t[ns]=0.214551 r[mm]=64.3173 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=6000 t[ns]=0.338176 r[mm]=101.377 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=7000 t[ns]=0.011052 r[mm]=3.31312 deltaR[mum]=-4.44089e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=8000 t[ns]=0.0512802 r[mm]=15.3726 deltaR[mum]=1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=9000 t[ns]=0.0634323 r[mm]=19.0155 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=0 t[ns]=0.127633 r[mm]=38.2614 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=1000 t[ns]=0.115368 r[mm]=34.5845 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=2000 t[ns]=0.0775638 r[mm]=23.2518 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=3000 t[ns]=0.0191285 r[mm]=5.73428 deltaR[mum]=8.88178e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=4000 t[ns]=0.00609144 r[mm]=1.82607 deltaR[mum]=2.22045e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=5000 t[ns]=0.0561555 r[mm]=16.8341 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=6000 t[ns]=0.0307411 r[mm]=9.21544 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=7000 t[ns]=0.065749 r[mm]=19.71 deltaR[mum]=-3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=8000 t[ns]=0.111166 r[mm]=33.3248 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=9000 t[ns]=0.126187 r[mm]=37.8279 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 Run terminated. Run Summary Number of events processed : 10000 - User=0.190000s Real=0.400719s Sys=0.000000s + User=0.200000s Real=0.199956s Sys=0.000000s ============ Run::printInfo() =============== RunID = 10 @@ -1048,45 +1099,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9833 + # Decays = 9834 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=1.43748e-06 mean=0.145332 max=1.50061 - decay R [mm] : min=0.000430921 mean=43.567 max=449.848 - decay X [mm] : min=0.000430921 mean=43.567 max=449.848 - decay Y [mm] : min=-0.0397257 mean=-3.11651e-06 max=0.0203628 - decay Z [mm] : min=-0.020235 mean=4.47724e-06 max=0.0320344 - Delta decay R [mm] : min=-5.68434e-14 mean=1.03727e-09 max=1.0891e-06 - deflection angle [deg] : min=0 mean=5.30816e-05 max=0.0490347 - Delta Ekin [MeV] : min=0 mean=0.00117036 max=3.46515 - decay Ekin [GeV] : min=499.997 mean=500 max=500 - decay Px [GeV] : min=505.248 mean=505.252 max=505.252 - decay Py [GeV] : min=-0.207835 mean=1.43298e-05 max=0.166581 - decay Pz [GeV] : min=-0.106854 mean=8.49518e-05 max=0.379226 - decay Etot violation [MeV] : min=-1.51701e-06 mean=-1.77012e-07 max=1.08854e-06 - decay Px violation [MeV] : min=-1.51707e-06 mean=-1.77037e-07 max=1.08854e-06 - decay Py violation [MeV] : min=-2.69893e-10 mean=8.87437e-14 max=3.71244e-10 - decay Pz violation [MeV] : min=-6.76494e-10 mean=-5.64142e-14 max=2.2608e-10 + decay T [ns] : min=3.22515e-06 mean=0.144774 max=1.6846 + decay R [mm] : min=0.000966824 mean=43.3998 max=505.003 + decay X [mm] : min=0.000966824 mean=43.3998 max=505.003 + decay Y [mm] : min=-0.0184134 mean=-6.34254e-06 max=0.0111337 + decay Z [mm] : min=-0.0191523 mean=3.61431e-06 max=0.00930668 + Delta decay R [mm] : min=-5.68434e-14 mean=6.01824e-10 max=9.39137e-07 + deflection angle [deg] : min=0 mean=4.29085e-05 max=0.0234539 + Delta Ekin [MeV] : min=0 mean=0.00067258 max=0.821104 + decay Ekin [GeV] : min=499.999 mean=500 max=500 + decay Px [GeV] : min=505.251 mean=505.252 max=505.252 + decay Py [GeV] : min=-0.196088 mean=-6.92589e-05 max=0.134214 + decay Pz [GeV] : min=-0.0870414 mean=9.46679e-05 max=0.15961 + decay Etot violation [MeV] : min=-1.40048e-06 mean=-1.78172e-07 max=1.00472e-06 + decay Px violation [MeV] : min=-1.40059e-06 mean=-1.78198e-07 max=1.00478e-06 + decay Py violation [MeV] : min=-1.1245e-10 mean=5.25419e-14 max=2.32831e-10 + decay Pz violation [MeV] : min=-1.1697e-10 mean=-4.36846e-15 max=1.01025e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 1.36424e-05 , 0.0139089 (mean=0.00235965) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 3.33067e-16 - maxGamma_deltaMax{1,2,3} = 0 , 9.65628e-11 , 9.65628e-11 + maxMass_deltaMax{1,2,3} [eV] = 0 , 1.36424e-05 , 0.0110194 (mean=0.00236127) + maxBeta_deltaMax{1,2} = 1.11022e-16 , 2.22045e-16 + maxGamma_deltaMax{1,2,3} = 0 , 1.32474e-10 , 1.32474e-10 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -0.105805 (mean=-4.25135e-05) (#above threshold = 0) - maxOverestimated_mc_truth_rPos_delta [mum] = 0.126266 (mean=7.27864e-05) (#above threshold = 0) - minUnderestimated_rDeltaPos [mum] = -0.104715 (mean=-4.14762e-05) (#above threshold = 0) - maxOverestimated_rDeltaPos [mum] = 0.127092 (mean=7.38237e-05) (#above threshold = 0) + minUnderestimated_mc_truth_rPos_delta [mum] = -0.0340323 (mean=-2.39951e-05) (#above threshold = 0) + maxOverestimated_mc_truth_rPos_delta [mum] = 0.0388082 (mean=3.75628e-05) (#above threshold = 0) + minUnderestimated_rDeltaPos [mum] = -0.0330932 (mean=-2.33933e-05) (#above threshold = 0) + maxOverestimated_rDeltaPos [mum] = 0.0397473 (mean=3.81646e-05) (#above threshold = 0) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0305176 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0610352 ============================================= @@ -1110,20 +1161,20 @@ Index : 1 used in the geometry : Yes ### Run 11 starts. ### Run 11 starts. - Event#=0 t[ns]=0.141983 r[mm]=42.5631 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=1000 t[ns]=0.382708 r[mm]=114.727 deltaR[mum]=-1.42109e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=2000 t[ns]=0.0294344 r[mm]=8.82373 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=3000 t[ns]=0.0512784 r[mm]=15.372 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=4000 t[ns]=0.182954 r[mm]=54.8453 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=5000 t[ns]=0.167538 r[mm]=50.2239 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=6000 t[ns]=0.0253864 r[mm]=7.61024 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=7000 t[ns]=0.00529891 r[mm]=1.58849 deltaR[mum]=-2.22045e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=8000 t[ns]=0.157717 r[mm]=47.2797 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=9000 t[ns]=0.118797 r[mm]=35.6124 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=0 t[ns]=0.00519895 r[mm]=1.55852 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=1000 t[ns]=0.265251 r[mm]=79.5158 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=2000 t[ns]=0.195089 r[mm]=58.4829 deltaR[mum]=1.42109e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=3000 t[ns]=0.160267 r[mm]=48.0444 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=4000 t[ns]=0.373172 r[mm]=111.868 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=5000 t[ns]=0.0698848 r[mm]=20.9498 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=6000 t[ns]=0.420061 r[mm]=125.924 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=7000 t[ns]=0.0674136 r[mm]=20.209 deltaR[mum]=3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=8000 t[ns]=0.0850965 r[mm]=25.5099 deltaR[mum]=3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=9000 t[ns]=0.0678285 r[mm]=20.3334 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 Run terminated. Run Summary Number of events processed : 10000 - User=0.180000s Real=0.382399s Sys=0.000000s + User=0.190000s Real=0.197311s Sys=0.000000s ============ Run::printInfo() =============== RunID = 11 @@ -1140,43 +1191,43 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9839 + # Decays = 9832 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=1.97359e-06 mean=0.144042 max=1.19921 - decay R [mm] : min=0.000591636 mean=43.1804 max=359.496 - decay X [mm] : min=0.000591636 mean=43.1804 max=359.496 - decay Y [mm] : min=-0.0185421 mean=-3.33881e-07 max=0.0209007 - decay Z [mm] : min=-0.00963885 mean=8.38669e-06 max=0.0321689 - Delta decay R [mm] : min=-5.68434e-14 mean=9.75822e-10 max=8.05856e-07 - deflection angle [deg] : min=0 mean=5.55064e-05 max=0.0207251 - Delta Ekin [MeV] : min=0 mean=0.000989019 max=0.641154 + decay T [ns] : min=2.80774e-06 mean=0.145488 max=2.02309 + decay R [mm] : min=0.000841694 mean=43.6138 max=606.473 + decay X [mm] : min=0.000841694 mean=43.6138 max=606.473 + decay Y [mm] : min=-0.0123349 mean=-1.60222e-06 max=0.0180828 + decay Z [mm] : min=-0.0222487 mean=-2.22894e-06 max=0.0204102 + Delta decay R [mm] : min=-5.68434e-14 mean=5.80311e-10 max=8.75549e-07 + deflection angle [deg] : min=0 mean=3.67558e-05 max=0.0192003 + Delta Ekin [MeV] : min=0 mean=0.000601554 max=0.55028 decay Ekin [GeV] : min=499.999 mean=500 max=500 decay Px [GeV] : min=505.251 mean=505.252 max=505.252 - decay Py [GeV] : min=-0.131023 mean=-3.97277e-05 max=0.118272 - decay Pz [GeV] : min=-0.159209 mean=5.05528e-05 max=0.164735 - decay Etot violation [MeV] : min=-2.25758e-06 mean=-1.79902e-07 max=1.03575e-06 - decay Px violation [MeV] : min=-2.2577e-06 mean=-1.79927e-07 max=1.03598e-06 - decay Py violation [MeV] : min=-1.89573e-10 mean=-2.75739e-14 max=2.47539e-10 - decay Pz violation [MeV] : min=-2.97916e-10 mean=2.27023e-14 max=1.70246e-10 + decay Py [GeV] : min=-0.114503 mean=9.51565e-06 max=0.107178 + decay Pz [GeV] : min=-0.157748 mean=-4.8138e-06 max=0.12684 + decay Etot violation [MeV] : min=-1.50508e-06 mean=-1.7694e-07 max=9.80392e-07 + decay Px violation [MeV] : min=-1.50513e-06 mean=-1.76964e-07 max=9.8045e-07 + decay Py violation [MeV] : min=-9.16742e-11 mean=6.61967e-14 max=1.36438e-10 + decay Pz violation [MeV] : min=-1.60142e-10 mean=-2.66313e-15 max=1.21972e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 1.36424e-05 , 0.0121017 (mean=0.00236152) + maxMass_deltaMax{1,2,3} [eV] = 0 , 1.36424e-05 , 0.0167993 (mean=0.00235635) maxBeta_deltaMax{1,2} = 1.11022e-16 , 3.33067e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.21616e-10 , 1.21616e-10 + maxGamma_deltaMax{1,2,3} = 0 , 1.28694e-10 , 1.28694e-10 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -0.0358106 (mean=-3.71424e-05) (#above threshold = 0) - maxOverestimated_mc_truth_rPos_delta [mum] = 0.102871 (mean=7.94626e-05) (#above threshold = 0) - minUnderestimated_rDeltaPos [mum] = -0.0355223 (mean=-3.61666e-05) (#above threshold = 0) - maxOverestimated_rDeltaPos [mum] = 0.103323 (mean=8.04384e-05) (#above threshold = 0) + minUnderestimated_mc_truth_rPos_delta [mum] = -0.0215906 (mean=-2.07265e-05) (#above threshold = 0) + maxOverestimated_mc_truth_rPos_delta [mum] = 0.077607 (mean=4.16706e-05) (#above threshold = 0) + minUnderestimated_rDeltaPos [mum] = -0.020715 (mean=-2.01462e-05) (#above threshold = 0) + maxOverestimated_rDeltaPos [mum] = 0.0781408 (mean=4.22509e-05) (#above threshold = 0) --- float instead of double --- fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0305176 ============================================= @@ -1202,20 +1253,20 @@ Index : 1 used in the geometry : Yes ### Run 12 starts. ### Run 12 starts. - Event#=0 t[ns]=0.0326431 r[mm]=9.78561 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=1000 t[ns]=0.224291 r[mm]=67.237 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=2000 t[ns]=0.116004 r[mm]=34.7751 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=3000 t[ns]=0.312889 r[mm]=93.7965 deltaR[mum]=1.42109e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=4000 t[ns]=0.111503 r[mm]=33.4259 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=5000 t[ns]=0.439622 r[mm]=131.788 deltaR[mum]=2.84217e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=6000 t[ns]=0.0705327 r[mm]=21.144 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=7000 t[ns]=0.164321 r[mm]=49.2594 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=8000 t[ns]=0.090961 r[mm]=27.2679 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=9000 t[ns]=0.154574 r[mm]=46.3376 deltaR[mum]=-7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=0 t[ns]=0.276852 r[mm]=82.9936 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=1000 t[ns]=0.191482 r[mm]=57.4017 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=2000 t[ns]=0.058711 r[mm]=17.6001 deltaR[mum]=3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=3000 t[ns]=0.131538 r[mm]=39.4317 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=4000 t[ns]=0.0226213 r[mm]=6.78132 deltaR[mum]=8.88178e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=5000 t[ns]=0.395183 r[mm]=118.466 deltaR[mum]=1.42109e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=6000 t[ns]=0.224558 r[mm]=67.317 deltaR[mum]=-1.42109e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=7000 t[ns]=0.229305 r[mm]=68.74 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=8000 t[ns]=0.130643 r[mm]=39.1636 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=9000 t[ns]=0.124863 r[mm]=37.431 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 Run terminated. Run Summary Number of events processed : 10000 - User=0.160000s Real=0.346914s Sys=0.000000s + User=0.170000s Real=0.165046s Sys=0.000000s ============ Run::printInfo() =============== RunID = 12 @@ -1232,45 +1283,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9868 + # Decays = 9881 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=1.51677e-05 mean=0.140926 max=1.39159 - decay R [mm] : min=0.00454689 mean=42.2461 max=417.165 - decay X [mm] : min=0.00454689 mean=42.2461 max=417.165 - decay Y [mm] : min=-0.00311212 mean=3.59846e-06 max=0.0145728 - decay Z [mm] : min=-0.0122546 mean=1.63076e-06 max=0.0271971 - Delta decay R [mm] : min=-5.68434e-14 mean=4.16678e-10 max=9.03279e-07 - deflection angle [deg] : min=0 mean=2.50047e-05 max=0.0335227 - Delta Ekin [MeV] : min=0 mean=0.00052532 max=1.678 - decay Ekin [GeV] : min=499.998 mean=500 max=500 + decay T [ns] : min=2.91608e-05 mean=0.143224 max=1.25628 + decay R [mm] : min=0.00874169 mean=42.9352 max=376.602 + decay X [mm] : min=0.00874169 mean=42.9352 max=376.602 + decay Y [mm] : min=-0.0296785 mean=-2.73037e-06 max=0.0108305 + decay Z [mm] : min=-0.013636 mean=-1.64939e-07 max=0.0302638 + Delta decay R [mm] : min=-5.68434e-14 mean=5.58717e-10 max=1.16765e-06 + deflection angle [deg] : min=0 mean=2.396e-05 max=0.0294873 + Delta Ekin [MeV] : min=0 mean=0.000490411 max=1.29833 + decay Ekin [GeV] : min=499.999 mean=500 max=500 decay Px [GeV] : min=505.337 mean=505.338 max=505.338 - decay Py [GeV] : min=-0.108052 mean=-6.05916e-06 max=0.102213 - decay Pz [GeV] : min=-0.275244 mean=-3.31374e-05 max=0.127491 - decay Etot violation [MeV] : min=-1.54291e-06 mean=3.33281e-08 max=1.32213e-06 - decay Px violation [MeV] : min=-1.54285e-06 mean=3.33076e-08 max=1.3223e-06 - decay Py violation [MeV] : min=-1.08955e-10 mean=-5.11974e-14 max=7.17719e-11 - decay Pz violation [MeV] : min=-4.52246e-10 mean=-9.21743e-15 max=2.00473e-10 + decay Py [GeV] : min=-0.251633 mean=-2.53394e-05 max=0.0971306 + decay Pz [GeV] : min=-0.141712 mean=-1.48352e-06 max=0.141031 + decay Etot violation [MeV] : min=-1.16456e-06 mean=2.58324e-08 max=1.11602e-06 + decay Px violation [MeV] : min=-1.16462e-06 mean=2.58101e-08 max=1.11602e-06 + decay Py violation [MeV] : min=-2.03798e-10 mean=-1.98317e-14 max=1.77806e-10 + decay Pz violation [MeV] : min=-8.0945e-11 mean=-2.95712e-14 max=5.35074e-11 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 1.45519e-05 , 0.0108821 (mean=0.000502312) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 3.33067e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.465e-10 , 1.465e-10 + maxMass_deltaMax{1,2,3} [eV] = 0 , 1.45519e-05 , 0.00902037 (mean=0.000498677) + maxBeta_deltaMax{1,2} = 1.11022e-16 , 2.22045e-16 + maxGamma_deltaMax{1,2,3} = 0 , 7.88845e-11 , 7.88845e-11 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -0.036655 (mean=-1.49597e-05) (#above threshold = 0) - maxOverestimated_mc_truth_rPos_delta [mum] = 0.0743089 (mean=2.79582e-05) (#above threshold = 0) - minUnderestimated_rDeltaPos [mum] = -0.0357517 (mean=-1.4543e-05) (#above threshold = 0) - maxOverestimated_rDeltaPos [mum] = 0.0746748 (mean=2.83748e-05) (#above threshold = 0) + minUnderestimated_mc_truth_rPos_delta [mum] = -0.0441535 (mean=-1.90807e-05) (#above threshold = 0) + maxOverestimated_mc_truth_rPos_delta [mum] = 0.125841 (mean=3.99148e-05) (#above threshold = 0) + minUnderestimated_rDeltaPos [mum] = -0.0429859 (mean=-1.8522e-05) (#above threshold = 0) + maxOverestimated_rDeltaPos [mum] = 0.126803 (mean=4.04735e-05) (#above threshold = 0) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0305176 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0610352 ============================================= @@ -1294,20 +1345,20 @@ Index : 1 used in the geometry : Yes ### Run 13 starts. ### Run 13 starts. - Event#=0 t[ns]=0.0103382 r[mm]=3.09914 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=1000 t[ns]=0.108243 r[mm]=32.4487 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=2000 t[ns]=0.167499 r[mm]=50.2121 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=3000 t[ns]=0.0604396 r[mm]=18.1183 deltaR[mum]=3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=4000 t[ns]=0.00693448 r[mm]=2.07879 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=5000 t[ns]=0.128033 r[mm]=38.3813 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=6000 t[ns]=0.19031 r[mm]=57.0502 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=7000 t[ns]=0.132206 r[mm]=39.632 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=8000 t[ns]=0.191446 r[mm]=57.3908 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=9000 t[ns]=0.0103894 r[mm]=3.11447 deltaR[mum]=-4.44089e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=0 t[ns]=0.185047 r[mm]=55.4726 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=1000 t[ns]=0.376898 r[mm]=112.985 deltaR[mum]=1.42109e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=2000 t[ns]=0.0383149 r[mm]=11.4859 deltaR[mum]=1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=3000 t[ns]=0.329043 r[mm]=98.6391 deltaR[mum]=1.42109e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=4000 t[ns]=0.0561556 r[mm]=16.8341 deltaR[mum]=1.49384e-05 deltaEkin[MeV]=0.177822 deltaAngle(deg)=0.0109128 + Event#=5000 t[ns]=0.0628766 r[mm]=18.8489 deltaR[mum]=3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=6000 t[ns]=0.0916255 r[mm]=27.4671 deltaR[mum]=3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=7000 t[ns]=0.0845892 r[mm]=25.3578 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=8000 t[ns]=0.0488405 r[mm]=14.6412 deltaR[mum]=1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=9000 t[ns]=0.0351628 r[mm]=10.541 deltaR[mum]=1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 Run terminated. Run Summary Number of events processed : 10000 - User=0.170000s Real=0.321212s Sys=0.000000s + User=0.170000s Real=0.177470s Sys=0.010000s ============ Run::printInfo() =============== RunID = 13 @@ -1324,43 +1375,43 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9873 + # Decays = 9860 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=2.69139e-05 mean=0.140294 max=1.42699 - decay R [mm] : min=0.00806814 mean=42.0568 max=427.778 - decay X [mm] : min=0.00806814 mean=42.0568 max=427.778 - decay Y [mm] : min=-0.00646946 mean=1.30832e-06 max=0.0205125 - decay Z [mm] : min=-0.017846 mean=-3.85604e-06 max=0.00593354 - Delta decay R [mm] : min=-5.68434e-14 mean=2.64666e-10 max=4.51045e-07 - deflection angle [deg] : min=0 mean=1.92819e-05 max=0.0167954 - Delta Ekin [MeV] : min=0 mean=0.000267944 max=0.421206 - decay Ekin [GeV] : min=500 mean=500 max=500 + decay T [ns] : min=1.94964e-05 mean=0.141518 max=1.50556 + decay R [mm] : min=0.00584454 mean=42.4235 max=451.331 + decay X [mm] : min=0.00584454 mean=42.4235 max=451.331 + decay Y [mm] : min=-0.0167155 mean=-1.7492e-06 max=0.0155568 + decay Z [mm] : min=-0.0218098 mean=-2.27826e-06 max=0.010064 + Delta decay R [mm] : min=-5.68434e-14 mean=3.95206e-10 max=7.41695e-07 + deflection angle [deg] : min=0 mean=2.64099e-05 max=0.0205141 + Delta Ekin [MeV] : min=0 mean=0.000441004 max=0.628379 + decay Ekin [GeV] : min=499.999 mean=500 max=500 decay Px [GeV] : min=505.338 mean=505.338 max=505.338 - decay Py [GeV] : min=-0.0663515 mean=2.31716e-06 max=0.0890636 - decay Pz [GeV] : min=-0.093944 mean=-9.03787e-06 max=0.147538 - decay Etot violation [MeV] : min=-1.35769e-06 mean=3.11638e-08 max=1.24448e-06 - decay Px violation [MeV] : min=-1.35775e-06 mean=3.11406e-08 max=1.24454e-06 - decay Py violation [MeV] : min=-2.35659e-10 mean=-4.76766e-14 max=7.48699e-11 - decay Pz violation [MeV] : min=-1.27343e-10 mean=-2.23562e-14 max=9.01892e-11 + decay Py [GeV] : min=-0.157381 mean=1.9719e-05 max=0.0946193 + decay Pz [GeV] : min=-0.137695 mean=-1.18061e-05 max=0.10578 + decay Etot violation [MeV] : min=-1.27289e-06 mean=3.28369e-08 max=1.2113e-06 + decay Px violation [MeV] : min=-1.27294e-06 mean=3.28144e-08 max=1.21124e-06 + decay Py violation [MeV] : min=-1.5838e-10 mean=3.61335e-15 max=1.56774e-10 + decay Pz violation [MeV] : min=-8.86189e-11 mean=4.15217e-14 max=2.98286e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 1.45519e-05 , 0.0108821 (mean=0.000500589) + maxMass_deltaMax{1,2,3} [eV] = 0 , 1.45519e-05 , 0.0108821 (mean=0.000501546) maxBeta_deltaMax{1,2} = 1.11022e-16 , 2.22045e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.27216e-10 , 1.27216e-10 + maxGamma_deltaMax{1,2,3} = 0 , 1.29276e-10 , 1.29276e-10 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -0.0101582 (mean=-9.55581e-06) (#above threshold = 0) - maxOverestimated_mc_truth_rPos_delta [mum] = 0.0572923 (mean=1.65342e-05) (#above threshold = 0) - minUnderestimated_rDeltaPos [mum] = -0.00970711 (mean=-9.29115e-06) (#above threshold = 0) - maxOverestimated_rDeltaPos [mum] = 0.0577433 (mean=1.67988e-05) (#above threshold = 0) + minUnderestimated_mc_truth_rPos_delta [mum] = -0.0210545 (mean=-1.54013e-05) (#above threshold = 0) + maxOverestimated_mc_truth_rPos_delta [mum] = 0.0444918 (mean=2.64238e-05) (#above threshold = 0) + minUnderestimated_rDeltaPos [mum] = -0.0203128 (mean=-1.5006e-05) (#above threshold = 0) + maxOverestimated_rDeltaPos [mum] = 0.0452335 (mean=2.6819e-05) (#above threshold = 0) --- float instead of double --- fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0305176 ============================================= @@ -1386,20 +1437,20 @@ Index : 1 used in the geometry : Yes ### Run 14 starts. ### Run 14 starts. - Event#=0 t[ns]=0.0448191 r[mm]=13.4354 deltaR[mum]=5.69033e-07 deltaEkin[MeV]=1.50638 deltaAngle(deg)=0.00160069 - Event#=1000 t[ns]=0.00274435 r[mm]=0.822671 deltaR[mum]=1.30118e-10 deltaEkin[MeV]=0 deltaAngle(deg)=0.000111641 - Event#=2000 t[ns]=0.0230147 r[mm]=6.8991 deltaR[mum]=7.6775e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000936266 - Event#=3000 t[ns]=0.0326041 r[mm]=9.7737 deltaR[mum]=2.41588e-07 deltaEkin[MeV]=0.212602 deltaAngle(deg)=0.00145294 - Event#=4000 t[ns]=0.0150309 r[mm]=4.5058 deltaR[mum]=2.13873e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000611474 - Event#=5000 t[ns]=0.000243835 r[mm]=0.0730941 deltaR[mum]=8.32667e-14 deltaEkin[MeV]=0 deltaAngle(deg)=9.95562e-06 - Event#=6000 t[ns]=0.108852 r[mm]=32.6304 deltaR[mum]=1.75103e-05 deltaEkin[MeV]=7.65934 deltaAngle(deg)=0.00511255 - Event#=7000 t[ns]=0.0300568 r[mm]=9.01012 deltaR[mum]=1.71395e-07 deltaEkin[MeV]=0.0042005 deltaAngle(deg)=0.00124076 - Event#=8000 t[ns]=0.00116568 r[mm]=0.349436 deltaR[mum]=9.9365e-12 deltaEkin[MeV]=0 deltaAngle(deg)=4.74315e-05 - Event#=9000 t[ns]=0.108816 r[mm]=32.6197 deltaR[mum]=2.2128e-05 deltaEkin[MeV]=7.51543 deltaAngle(deg)=0.0042381 + Event#=0 t[ns]=0.0122999 r[mm]=3.68713 deltaR[mum]=1.172e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000500374 + Event#=1000 t[ns]=0.119983 r[mm]=35.9672 deltaR[mum]=4.42332e-05 deltaEkin[MeV]=9.27136 deltaAngle(deg)=0.00543225 + Event#=2000 t[ns]=0.282358 r[mm]=84.6423 deltaR[mum]=0.000277513 deltaEkin[MeV]=8.78998 deltaAngle(deg)=0.0113765 + Event#=3000 t[ns]=0.150889 r[mm]=45.232 deltaR[mum]=8.77479e-05 deltaEkin[MeV]=9.63571 deltaAngle(deg)=0.00702921 + Event#=4000 t[ns]=0.0239149 r[mm]=7.16894 deltaR[mum]=8.61409e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000972885 + Event#=5000 t[ns]=0.0609066 r[mm]=18.258 deltaR[mum]=1.14623e-06 deltaEkin[MeV]=3.16725 deltaAngle(deg)=0.00203731 + Event#=6000 t[ns]=0.00917455 r[mm]=2.75025 deltaR[mum]=4.86322e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000373231 + Event#=7000 t[ns]=0.0799974 r[mm]=23.9808 deltaR[mum]=2.31555e-06 deltaEkin[MeV]=5.8817 deltaAngle(deg)=0.00302778 + Event#=8000 t[ns]=0.010105 r[mm]=3.02918 deltaR[mum]=6.49969e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000411085 + Event#=9000 t[ns]=0.0562285 r[mm]=16.8556 deltaR[mum]=9.49466e-07 deltaEkin[MeV]=2.55316 deltaAngle(deg)=0.00273608 Run terminated. Run Summary Number of events processed : 10000 - User=0.170000s Real=0.288656s Sys=0.000000s + User=0.170000s Real=0.170289s Sys=0.000000s ============ Run::printInfo() =============== RunID = 14 @@ -1416,45 +1467,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9975 + # Decays = 9963 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=1.20679e-05 mean=0.0411388 max=0.388058 - decay R [mm] : min=0.00361758 mean=12.3321 max=116.328 - decay X [mm] : min=0.00361758 mean=12.3321 max=116.328 - decay Y [mm] : min=-0.017443 mean=-0.000437116 max=0.000479484 - decay Z [mm] : min=-0.00164826 mean=-9.74566e-07 max=0.00137196 - Delta decay R [mm] : min=-3.46945e-18 mean=8.2363e-09 max=7.31744e-06 - deflection angle [deg] : min=8.53688e-07 mean=0.00169732 max=0.0164629 - Delta Ekin [MeV] : min=0 mean=2.40591 max=1130.03 - decay Ekin [GeV] : min=498.87 mean=499.998 max=500 - decay Px [GeV] : min=505.106 mean=506.234 max=506.236 - decay Py [GeV] : min=-0.145156 mean=-0.0147941 max=0.0446485 - decay Pz [GeV] : min=-0.0907408 mean=-3.10623e-05 max=0.0373693 - decay Etot violation [MeV] : min=-1.53197e-06 mean=1.45658e-07 max=1.59832e-06 - decay Px violation [MeV] : min=-1.53185e-06 mean=1.45678e-07 max=1.59832e-06 - decay Py violation [MeV] : min=-1.74964e-10 mean=-8.48985e-13 max=2.18364e-10 - decay Pz violation [MeV] : min=-1.24885e-10 mean=-4.41483e-14 max=4.92655e-11 + decay T [ns] : min=2.03405e-05 mean=0.0409713 max=0.398602 + decay R [mm] : min=0.00609747 mean=12.2819 max=119.489 + decay X [mm] : min=0.00609747 mean=12.2819 max=119.489 + decay Y [mm] : min=-0.0167494 mean=-0.000442661 max=-4.4035e-11 + decay Z [mm] : min=-0.00277132 mean=-2.88667e-07 max=0.00378433 + Delta decay R [mm] : min=-1.73472e-18 mean=8.92103e-09 max=6.51235e-06 + deflection angle [deg] : min=8.53688e-07 mean=0.00169382 max=0.0160911 + Delta Ekin [MeV] : min=0 mean=2.36662 max=498.731 + decay Ekin [GeV] : min=499.501 mean=499.998 max=500 + decay Px [GeV] : min=505.737 mean=506.234 max=506.236 + decay Py [GeV] : min=-0.142092 mean=-0.0147747 max=0.0262782 + decay Pz [GeV] : min=-0.0728877 mean=4.75276e-05 max=0.0954087 + decay Etot violation [MeV] : min=-1.45956e-06 mean=1.47161e-07 max=1.53272e-06 + decay Px violation [MeV] : min=-1.45956e-06 mean=1.47183e-07 max=1.53278e-06 + decay Py violation [MeV] : min=-1.55168e-10 mean=-7.43831e-13 max=1.94063e-10 + decay Pz violation [MeV] : min=-2.85638e-11 mean=2.92967e-14 max=1.44595e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 2.36469e-05 , 0.0153686 (mean=0.00315191) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 9.88223e-11 , 9.88223e-11 + maxMass_deltaMax{1,2,3} [eV] = 0 , 2.36469e-05 , 0.0162436 (mean=0.00310274) + maxBeta_deltaMax{1,2} = 3.33067e-16 , 4.44089e-16 + maxGamma_deltaMax{1,2,3} = 0 , 9.93197e-11 , 9.93197e-11 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 - maxMc_truth_rPos_deltaMax [mum] = 4.26326e-11 (mean=2.73728e-12) (# above threshold = 0) + maxMc_truth_rPos_deltaMax [mum] = 4.26326e-11 (mean=2.72429e-12) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -46.6087 (mean=-0.0999526) (#above threshold = 35) - maxOverestimated_mc_truth_rPos_delta [mum] = 47.4889 (mean=0.0395033) (#above threshold = 36) - minUnderestimated_rDeltaPos [mum] = -46.6014 (mean=-0.0999443) (#above threshold = 35) - maxOverestimated_rDeltaPos [mum] = 47.4962 (mean=0.0395115) (#above threshold = 36) + minUnderestimated_mc_truth_rPos_delta [mum] = -13.7721 (mean=-0.0949477) (#above threshold = 32) + maxOverestimated_mc_truth_rPos_delta [mum] = 41.9225 (mean=0.0428536) (#above threshold = 35) + minUnderestimated_rDeltaPos [mum] = -13.7715 (mean=-0.0949388) (#above threshold = 32) + maxOverestimated_rDeltaPos [mum] = 41.929 (mean=0.0428625) (#above threshold = 35) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.00818302 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.00874644 ============================================= @@ -1478,20 +1529,20 @@ Index : 1 used in the geometry : Yes ### Run 15 starts. ### Run 15 starts. - Event#=0 t[ns]=0.012218 r[mm]=3.6626 deltaR[mum]=1.14873e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000497045 - Event#=1000 t[ns]=0.0411265 r[mm]=12.3285 deltaR[mum]=4.66489e-07 deltaEkin[MeV]=1.22699 deltaAngle(deg)=0.00133447 - Event#=2000 t[ns]=0.0493018 r[mm]=14.7792 deltaR[mum]=7.04683e-07 deltaEkin[MeV]=1.71775 deltaAngle(deg)=0.00159655 - Event#=3000 t[ns]=0.033419 r[mm]=10.018 deltaR[mum]=2.63382e-07 deltaEkin[MeV]=0.316511 deltaAngle(deg)=0.00148743 - Event#=4000 t[ns]=0.0173606 r[mm]=5.20417 deltaR[mum]=3.29523e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000706249 - Event#=5000 t[ns]=0.0462149 r[mm]=13.8538 deltaR[mum]=6.09736e-07 deltaEkin[MeV]=1.58707 deltaAngle(deg)=0.00154242 - Event#=6000 t[ns]=0.00439163 r[mm]=1.31648 deltaR[mum]=5.33795e-10 deltaEkin[MeV]=0 deltaAngle(deg)=0.000178655 - Event#=7000 t[ns]=0.0367648 r[mm]=11.021 deltaR[mum]=3.51273e-07 deltaEkin[MeV]=0.799317 deltaAngle(deg)=0.00144387 - Event#=8000 t[ns]=0.0326416 r[mm]=9.78497 deltaR[mum]=2.42599e-07 deltaEkin[MeV]=0.359932 deltaAngle(deg)=0.00122213 - Event#=9000 t[ns]=0.0219938 r[mm]=6.59308 deltaR[mum]=6.70042e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000894736 + Event#=0 t[ns]=0.00805026 r[mm]=2.41322 deltaR[mum]=3.28582e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000327495 + Event#=1000 t[ns]=0.00568369 r[mm]=1.7038 deltaR[mum]=1.15663e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000231219 + Event#=2000 t[ns]=0.0343263 r[mm]=10.29 deltaR[mum]=2.87404e-07 deltaEkin[MeV]=0.429481 deltaAngle(deg)=0.00131394 + Event#=3000 t[ns]=0.0179795 r[mm]=5.3897 deltaR[mum]=3.66036e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000731426 + Event#=4000 t[ns]=0.0332233 r[mm]=9.95932 deltaR[mum]=2.5817e-07 deltaEkin[MeV]=0.759435 deltaAngle(deg)=0.001233 + Event#=5000 t[ns]=0.00988156 r[mm]=2.96219 deltaR[mum]=6.07736e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000401993 + Event#=6000 t[ns]=0.0356253 r[mm]=10.6794 deltaR[mum]=3.21497e-07 deltaEkin[MeV]=0.566263 deltaAngle(deg)=0.00129877 + Event#=7000 t[ns]=0.00140436 r[mm]=0.420984 deltaR[mum]=1.7375e-11 deltaEkin[MeV]=0 deltaAngle(deg)=5.71269e-05 + Event#=8000 t[ns]=0.109729 r[mm]=32.8933 deltaR[mum]=2.23643e-05 deltaEkin[MeV]=7.71196 deltaAngle(deg)=0.0049905 + Event#=9000 t[ns]=0.0104064 r[mm]=3.11951 deltaR[mum]=7.09655e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000423344 Run terminated. Run Summary Number of events processed : 10000 - User=0.170000s Real=0.208273s Sys=0.000000s + User=0.170000s Real=0.168903s Sys=0.000000s ============ Run::printInfo() =============== RunID = 15 @@ -1508,45 +1559,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9959 + # Decays = 9965 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=8.99843e-06 mean=0.0406232 max=0.387481 - decay R [mm] : min=0.00269746 mean=12.1776 max=116.155 - decay X [mm] : min=0.00269746 mean=12.1776 max=116.155 - decay Y [mm] : min=-0.00310864 mean=0.00042268 max=0.0146452 - decay Z [mm] : min=-0.00935096 mean=-9.18057e-07 max=0.00297407 - Delta decay R [mm] : min=-1.73472e-18 mean=7.97404e-09 max=5.50493e-06 - deflection angle [deg] : min=0 mean=0.00167681 max=0.0228387 - Delta Ekin [MeV] : min=0 mean=2.24303 max=326.198 - decay Ekin [GeV] : min=499.674 mean=499.998 max=500 - decay Px [GeV] : min=505.91 mean=506.234 max=506.236 - decay Py [GeV] : min=-0.0591531 mean=0.0146248 max=0.130256 - decay Pz [GeV] : min=-0.192944 mean=-3.80836e-05 max=0.0453197 - decay Etot violation [MeV] : min=-1.42201e-06 mean=1.51008e-07 max=1.83465e-06 - decay Px violation [MeV] : min=-1.4219e-06 mean=1.51029e-07 max=1.83471e-06 - decay Py violation [MeV] : min=-2.68841e-10 mean=1.03461e-12 max=1.32566e-10 - decay Pz violation [MeV] : min=-3.35163e-11 mean=-1.32437e-14 max=9.72875e-11 + decay T [ns] : min=9.59167e-06 mean=0.0403646 max=0.478956 + decay R [mm] : min=0.00287529 mean=12.1001 max=143.576 + decay X [mm] : min=0.00287529 mean=12.1001 max=143.576 + decay Y [mm] : min=-0.000976923 mean=0.000422552 max=0.023823 + decay Z [mm] : min=-0.00252415 mean=1.87974e-06 max=0.0148479 + Delta decay R [mm] : min=-3.46945e-18 mean=9.73227e-09 max=9.22819e-06 + deflection angle [deg] : min=0 mean=0.00167089 max=0.0470039 + Delta Ekin [MeV] : min=0 mean=2.46356 max=1201.43 + decay Ekin [GeV] : min=498.799 mean=499.998 max=500 + decay Px [GeV] : min=505.034 mean=506.234 max=506.236 + decay Py [GeV] : min=-0.0779444 mean=0.0145122 max=0.168718 + decay Pz [GeV] : min=-0.135503 mean=4.09576e-05 max=0.391706 + decay Etot violation [MeV] : min=-1.51456e-06 mean=1.5661e-07 max=1.4843e-06 + decay Px violation [MeV] : min=-1.51456e-06 mean=1.56629e-07 max=1.4843e-06 + decay Py violation [MeV] : min=-1.6189e-10 mean=1.26758e-12 max=1.50607e-10 + decay Pz violation [MeV] : min=-8.10161e-11 mean=1.79937e-14 max=1.45533e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 2.36469e-05 , 0.0178006 (mean=0.00315514) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.00471e-10 , 1.00471e-10 + maxMass_deltaMax{1,2,3} [eV] = 0 , 2.36469e-05 , 0.0153686 (mean=0.00312226) + maxBeta_deltaMax{1,2} = 3.33067e-16 , 4.44089e-16 + maxGamma_deltaMax{1,2,3} = 0 , 9.61649e-11 , 9.61649e-11 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 - maxMc_truth_rPos_deltaMax [mum] = 2.84217e-11 (mean=2.67078e-12) (# above threshold = 0) + maxMc_truth_rPos_deltaMax [mum] = 2.84217e-11 (mean=2.6904e-12) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -13.1972 (mean=-0.0915212) (#above threshold = 43) - maxOverestimated_mc_truth_rPos_delta [mum] = 35.3031 (mean=0.038215) (#above threshold = 45) - minUnderestimated_rDeltaPos [mum] = -13.1971 (mean=-0.0915133) (#above threshold = 43) - maxOverestimated_rDeltaPos [mum] = 35.3086 (mean=0.0382229) (#above threshold = 45) + minUnderestimated_mc_truth_rPos_delta [mum] = -42.0031 (mean=-0.0980635) (#above threshold = 55) + maxOverestimated_mc_truth_rPos_delta [mum] = 59.7033 (mean=0.0470317) (#above threshold = 38) + minUnderestimated_rDeltaPos [mum] = -41.9961 (mean=-0.0980538) (#above threshold = 55) + maxOverestimated_rDeltaPos [mum] = 59.7125 (mean=0.0470415) (#above threshold = 38) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0150292 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0154816 ============================================= @@ -1570,20 +1621,20 @@ Index : 1 used in the geometry : Yes ### Run 16 starts. ### Run 16 starts. - Event#=0 t[ns]=0.0250113 r[mm]=7.49813 deltaR[mum]=1.00118e-07 deltaEkin[MeV]=0 deltaAngle(deg)=0.00102557 - Event#=1000 t[ns]=0.0141718 r[mm]=4.24856 deltaR[mum]=1.8213e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000581105 - Event#=2000 t[ns]=0.0308806 r[mm]=9.25769 deltaR[mum]=1.97653e-07 deltaEkin[MeV]=0.0761308 deltaAngle(deg)=0.00124037 - Event#=3000 t[ns]=0.0666905 r[mm]=19.9931 deltaR[mum]=1.45549e-06 deltaEkin[MeV]=3.49594 deltaAngle(deg)=0.00311264 - Event#=4000 t[ns]=0.00495608 r[mm]=1.48578 deltaR[mum]=7.78932e-10 deltaEkin[MeV]=0 deltaAngle(deg)=0.000203219 - Event#=5000 t[ns]=0.0447501 r[mm]=13.4156 deltaR[mum]=5.76103e-07 deltaEkin[MeV]=1.33243 deltaAngle(deg)=0.00213074 - Event#=6000 t[ns]=0.116072 r[mm]=34.7972 deltaR[mum]=1.0287e-05 deltaEkin[MeV]=7.94436 deltaAngle(deg)=0.00453916 - Event#=7000 t[ns]=0.023942 r[mm]=7.17757 deltaR[mum]=8.78204e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000981725 - Event#=8000 t[ns]=0.0521425 r[mm]=15.6318 deltaR[mum]=8.11923e-07 deltaEkin[MeV]=2.30842 deltaAngle(deg)=0.00204827 - Event#=9000 t[ns]=0.0122458 r[mm]=3.67115 deltaR[mum]=1.1751e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000502129 + Event#=0 t[ns]=0.00939212 r[mm]=2.81566 deltaR[mum]=5.30243e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000385116 + Event#=1000 t[ns]=0.026235 r[mm]=7.86497 deltaR[mum]=1.15542e-07 deltaEkin[MeV]=0 deltaAngle(deg)=0.00107575 + Event#=2000 t[ns]=0.0926513 r[mm]=27.7759 deltaR[mum]=3.57217e-06 deltaEkin[MeV]=6.2686 deltaAngle(deg)=0.00395518 + Event#=3000 t[ns]=0.0874972 r[mm]=26.2307 deltaR[mum]=4.08875e-05 deltaEkin[MeV]=6.76565 deltaAngle(deg)=0.00975001 + Event#=4000 t[ns]=0.0571811 r[mm]=17.1423 deltaR[mum]=1.34291e-06 deltaEkin[MeV]=4.01309 deltaAngle(deg)=0.00183695 + Event#=5000 t[ns]=0.0280126 r[mm]=8.39789 deltaR[mum]=1.40659e-07 deltaEkin[MeV]=0 deltaAngle(deg)=0.00114864 + Event#=6000 t[ns]=0.0120984 r[mm]=3.62697 deltaR[mum]=1.13309e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000496086 + Event#=7000 t[ns]=0.050745 r[mm]=15.2128 deltaR[mum]=7.63743e-07 deltaEkin[MeV]=2.23122 deltaAngle(deg)=0.00222792 + Event#=8000 t[ns]=0.113986 r[mm]=34.1718 deltaR[mum]=1.31742e-05 deltaEkin[MeV]=8.88747 deltaAngle(deg)=0.00500651 + Event#=9000 t[ns]=0.00283205 r[mm]=0.849019 deltaR[mum]=1.45328e-10 deltaEkin[MeV]=0 deltaAngle(deg)=0.000116123 Run terminated. Run Summary Number of events processed : 10000 - User=0.270000s Real=0.535692s Sys=0.000000s + User=0.240000s Real=0.248837s Sys=0.000000s ============ Run::printInfo() =============== RunID = 16 @@ -1600,45 +1651,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9895 + # Decays = 9899 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=1.50418e-06 mean=0.0430198 max=0.348698 - decay R [mm] : min=0.000450938 mean=12.8969 max=104.536 - decay X [mm] : min=0.000450938 mean=12.8969 max=104.536 - decay Y [mm] : min=-0.0181954 mean=-0.000476611 max=0.00740374 - decay Z [mm] : min=-0.0151454 mean=-1.98574e-07 max=0.0180936 - Delta decay R [mm] : min=-1.73472e-18 mean=3.86407e-09 max=9.19642e-07 - deflection angle [deg] : min=0 mean=0.00181599 max=0.0305646 - Delta Ekin [MeV] : min=0 mean=2.905 max=2860.78 - decay Ekin [GeV] : min=497.139 mean=499.997 max=500 - decay Px [GeV] : min=499.42 mean=502.278 max=502.281 - decay Py [GeV] : min=-0.252783 mean=-0.0154872 max=0.11174 - decay Pz [GeV] : min=-0.164375 mean=-3.53192e-05 max=0.13885 - decay Etot violation [MeV] : min=-1.23332e-05 mean=-8.46024e-07 max=8.39558e-06 - decay Px violation [MeV] : min=-1.23331e-05 mean=-8.46012e-07 max=8.39564e-06 - decay Py violation [MeV] : min=-1.12706e-09 mean=4.26978e-11 max=2.43469e-09 - decay Pz violation [MeV] : min=-1.68458e-09 mean=-2.1823e-13 max=1.08122e-09 + decay T [ns] : min=7.98456e-07 mean=0.0430827 max=0.435802 + decay R [mm] : min=0.000239368 mean=12.9157 max=130.649 + decay X [mm] : min=0.000239368 mean=12.9157 max=130.649 + decay Y [mm] : min=-0.0307971 mean=-0.000491997 max=0.00367712 + decay Z [mm] : min=-0.00805362 mean=4.48439e-06 max=0.0172444 + Delta decay R [mm] : min=-3.46945e-18 mean=4.19488e-09 max=1.91431e-06 + deflection angle [deg] : min=0 mean=0.00181888 max=0.0331447 + Delta Ekin [MeV] : min=0 mean=5.4743 max=30237.2 + decay Ekin [GeV] : min=469.763 mean=499.995 max=500 + decay Px [GeV] : min=472.044 mean=502.276 max=502.281 + decay Py [GeV] : min=-0.259989 mean=-0.0155221 max=0.146952 + decay Pz [GeV] : min=-0.113134 mean=8.91688e-05 max=0.188491 + decay Etot violation [MeV] : min=-1.30799e-05 mean=-7.72093e-07 max=9.26235e-06 + decay Px violation [MeV] : min=-1.30798e-05 mean=-7.72083e-07 max=9.26241e-06 + decay Py violation [MeV] : min=-1.55379e-09 mean=3.82972e-11 max=1.53231e-09 + decay Pz violation [MeV] : min=-1.36488e-09 mean=-6.73876e-14 max=2.40692e-09 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 2.09184e-05 , 0.0542641 (mean=0.00971275) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.82118e-09 , 1.82118e-09 + maxMass_deltaMax{1,2,3} [eV] = 0 , 2.09184e-05 , 0.0409168 (mean=0.00960305) + maxBeta_deltaMax{1,2} = 3.33067e-16 , 4.44089e-16 + maxGamma_deltaMax{1,2,3} = 0 , 1.82158e-09 , 1.82158e-09 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -96.976 (mean=-0.11418) (#above threshold = 40) - maxOverestimated_mc_truth_rPos_delta [mum] = 16.7025 (mean=0.0424993) (#above threshold = 43) - minUnderestimated_rDeltaPos [mum] = -96.9759 (mean=-0.114176) (#above threshold = 40) - maxOverestimated_rDeltaPos [mum] = 16.7029 (mean=0.0425032) (#above threshold = 43) + minUnderestimated_mc_truth_rPos_delta [mum] = -1068.99 (mean=-0.208289) (#above threshold = 29) + maxOverestimated_mc_truth_rPos_delta [mum] = 28.2447 (mean=0.0449542) (#above threshold = 48) + minUnderestimated_rDeltaPos [mum] = -1068.99 (mean=-0.208285) (#above threshold = 29) + maxOverestimated_rDeltaPos [mum] = 28.2454 (mean=0.0449584) (#above threshold = 48) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0160836 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0158374 ============================================= @@ -1662,20 +1713,20 @@ Index : 1 used in the geometry : Yes ### Run 17 starts. ### Run 17 starts. - Event#=0 t[ns]=0.127753 r[mm]=38.299 deltaR[mum]=1.54785e-05 deltaEkin[MeV]=7.26978 deltaAngle(deg)=0.00574668 - Event#=1000 t[ns]=0.014468 r[mm]=4.33734 deltaR[mum]=1.93783e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000593248 - Event#=2000 t[ns]=0.0184384 r[mm]=5.52764 deltaR[mum]=4.01128e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000756052 - Event#=3000 t[ns]=0.0552922 r[mm]=16.576 deltaR[mum]=9.27962e-07 deltaEkin[MeV]=2.4323 deltaAngle(deg)=0.00248759 - Event#=4000 t[ns]=0.0544144 r[mm]=16.3129 deltaR[mum]=8.94524e-07 deltaEkin[MeV]=2.40342 deltaAngle(deg)=0.00274651 - Event#=5000 t[ns]=0.0483849 r[mm]=14.5053 deltaR[mum]=6.86489e-07 deltaEkin[MeV]=1.79608 deltaAngle(deg)=0.00243625 - Event#=6000 t[ns]=0.000511417 r[mm]=0.153317 deltaR[mum]=8.60423e-13 deltaEkin[MeV]=0 deltaAngle(deg)=2.09632e-05 - Event#=7000 t[ns]=0.0392998 r[mm]=11.7817 deltaR[mum]=4.24441e-07 deltaEkin[MeV]=0.839798 deltaAngle(deg)=0.00141975 - Event#=8000 t[ns]=0.0865326 r[mm]=25.9415 deltaR[mum]=4.58117e-06 deltaEkin[MeV]=8.03358 deltaAngle(deg)=0.00397611 - Event#=9000 t[ns]=0.0453406 r[mm]=13.5926 deltaR[mum]=5.93415e-07 deltaEkin[MeV]=1.48382 deltaAngle(deg)=0.00113158 + Event#=0 t[ns]=0.0959253 r[mm]=28.7574 deltaR[mum]=6.65262e-06 deltaEkin[MeV]=7.77086 deltaAngle(deg)=0.00478655 + Event#=1000 t[ns]=0.0427875 r[mm]=12.8272 deltaR[mum]=5.19984e-07 deltaEkin[MeV]=1.10155 deltaAngle(deg)=0.00191678 + Event#=2000 t[ns]=0.113673 r[mm]=34.078 deltaR[mum]=7.67213e-06 deltaEkin[MeV]=8.35186 deltaAngle(deg)=0.00390868 + Event#=3000 t[ns]=0.0379552 r[mm]=11.3786 deltaR[mum]=3.88511e-07 deltaEkin[MeV]=0.698595 deltaAngle(deg)=0.00193648 + Event#=4000 t[ns]=0.00934463 r[mm]=2.80142 deltaR[mum]=5.22116e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000383171 + Event#=5000 t[ns]=0.0769602 r[mm]=23.0718 deltaR[mum]=3.32985e-06 deltaEkin[MeV]=5.71991 deltaAngle(deg)=0.00316577 + Event#=6000 t[ns]=0.05782 r[mm]=17.3338 deltaR[mum]=1.02941e-06 deltaEkin[MeV]=3.10411 deltaAngle(deg)=0.00087392 + Event#=7000 t[ns]=0.0993917 r[mm]=29.7966 deltaR[mum]=4.71299e-06 deltaEkin[MeV]=7.13193 deltaAngle(deg)=0.00366863 + Event#=8000 t[ns]=0.0203964 r[mm]=6.11464 deltaR[mum]=5.42952e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000836341 + Event#=9000 t[ns]=0.0383224 r[mm]=11.4887 deltaR[mum]=3.983e-07 deltaEkin[MeV]=0.913728 deltaAngle(deg)=0.00158884 Run terminated. Run Summary Number of events processed : 10000 - User=0.270000s Real=0.494654s Sys=0.000000s + User=0.260000s Real=0.259427s Sys=0.000000s ============ Run::printInfo() =============== RunID = 17 @@ -1692,45 +1743,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9895 + # Decays = 9898 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=1.79314e-06 mean=0.0434359 max=0.34675 - decay R [mm] : min=0.000537563 mean=13.0216 max=103.952 - decay X [mm] : min=0.000537563 mean=13.0216 max=103.952 - decay Y [mm] : min=-0.0122758 mean=0.00048773 max=0.0190704 - decay Z [mm] : min=-0.0180517 mean=-1.79541e-06 max=0.00625053 - Delta decay R [mm] : min=-3.46945e-18 mean=4.49006e-09 max=2.79392e-06 - deflection angle [deg] : min=0 mean=0.00184131 max=0.0447381 - Delta Ekin [MeV] : min=0 mean=2.57955 max=678.613 - decay Ekin [GeV] : min=499.321 mean=499.997 max=500 - decay Px [GeV] : min=501.603 mean=502.279 max=502.281 - decay Py [GeV] : min=-0.215553 mean=0.0155959 max=0.319304 - decay Pz [GeV] : min=-0.327682 mean=-1.52753e-05 max=0.150271 - decay Etot violation [MeV] : min=-1.16272e-05 mean=-8.03298e-07 max=8.78063e-06 - decay Px violation [MeV] : min=-1.16272e-05 mean=-8.03285e-07 max=8.78057e-06 - decay Py violation [MeV] : min=-1.76584e-09 mean=-4.06493e-11 max=1.02561e-09 - decay Pz violation [MeV] : min=-1.06829e-09 mean=-1.35453e-13 max=1.55831e-09 + decay T [ns] : min=1.5938e-06 mean=0.0432768 max=0.456915 + decay R [mm] : min=0.000477804 mean=12.9739 max=136.978 + decay X [mm] : min=0.000477804 mean=12.9739 max=136.978 + decay Y [mm] : min=-0.00234649 mean=0.000482846 max=0.0232661 + decay Z [mm] : min=-0.00510572 mean=-9.7407e-07 max=0.00280167 + Delta decay R [mm] : min=-3.46945e-18 mean=3.96648e-09 max=6.99418e-07 + deflection angle [deg] : min=0 mean=0.00181587 max=0.024628 + Delta Ekin [MeV] : min=0 mean=2.89325 max=1195.52 + decay Ekin [GeV] : min=498.804 mean=499.997 max=500 + decay Px [GeV] : min=501.086 mean=502.278 max=502.281 + decay Py [GeV] : min=-0.082213 mean=0.015509 max=0.211836 + decay Pz [GeV] : min=-0.192586 mean=-6.67239e-05 max=0.148848 + decay Etot violation [MeV] : min=-1.1174e-05 mean=-8.39407e-07 max=9.02812e-06 + decay Px violation [MeV] : min=-1.1174e-05 mean=-8.39394e-07 max=9.0283e-06 + decay Py violation [MeV] : min=-1.74661e-09 mean=-4.27011e-11 max=1.49684e-09 + decay Pz violation [MeV] : min=-4.17526e-10 mean=5.57018e-13 max=8.78543e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 2.09184e-05 , 0.0475902 (mean=0.00974115) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 5.55112e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.69561e-09 , 1.69561e-09 + maxMass_deltaMax{1,2,3} [eV] = 0 , 2.09184e-05 , 0.0409168 (mean=0.00977403) + maxBeta_deltaMax{1,2} = 3.33067e-16 , 4.44089e-16 + maxGamma_deltaMax{1,2,3} = 0 , 1.76919e-09 , 1.76919e-09 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -26.8296 (mean=-0.107539) (#above threshold = 58) - maxOverestimated_mc_truth_rPos_delta [mum] = 15.5177 (mean=0.046374) (#above threshold = 57) - minUnderestimated_rDeltaPos [mum] = -26.8295 (mean=-0.107535) (#above threshold = 58) - maxOverestimated_rDeltaPos [mum] = 15.5181 (mean=0.0463785) (#above threshold = 57) + minUnderestimated_mc_truth_rPos_delta [mum] = -56.9072 (mean=-0.119877) (#above threshold = 56) + maxOverestimated_mc_truth_rPos_delta [mum] = 27.6931 (mean=0.0520269) (#above threshold = 57) + minUnderestimated_rDeltaPos [mum] = -56.9068 (mean=-0.119873) (#above threshold = 56) + maxOverestimated_rDeltaPos [mum] = 27.6937 (mean=0.0520309) (#above threshold = 57) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0153731 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.00812203 ============================================= @@ -1754,20 +1805,20 @@ Index : 1 used in the geometry : Yes ### Run 18 starts. ### Run 18 starts. - Event#=0 t[ns]=0.0197817 r[mm]=5.93033 deltaR[mum]=4.94973e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000810841 - Event#=1000 t[ns]=0.321227 r[mm]=96.3003 deltaR[mum]=0.0001528 deltaEkin[MeV]=6.97004 deltaAngle(deg)=0.0121785 - Event#=2000 t[ns]=0.113264 r[mm]=33.9553 deltaR[mum]=9.40648e-06 deltaEkin[MeV]=6.62753 deltaAngle(deg)=0.00475938 - Event#=3000 t[ns]=0.0618338 r[mm]=18.5371 deltaR[mum]=1.58072e-06 deltaEkin[MeV]=4.04886 deltaAngle(deg)=0.00241719 - Event#=4000 t[ns]=0.406816 r[mm]=121.959 deltaR[mum]=0.000511511 deltaEkin[MeV]=9.0899 deltaAngle(deg)=0.0177069 - Event#=5000 t[ns]=0.0150329 r[mm]=4.50668 deltaR[mum]=2.17213e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000616189 - Event#=6000 t[ns]=0.0972426 r[mm]=29.1522 deltaR[mum]=8.82847e-06 deltaEkin[MeV]=8.54255 deltaAngle(deg)=0.00537487 - Event#=7000 t[ns]=0.00137873 r[mm]=0.413329 deltaR[mum]=1.67644e-11 deltaEkin[MeV]=0 deltaAngle(deg)=5.65177e-05 - Event#=8000 t[ns]=0.0507865 r[mm]=15.2252 deltaR[mum]=7.64594e-07 deltaEkin[MeV]=1.90974 deltaAngle(deg)=0.00241767 - Event#=9000 t[ns]=0.0021438 r[mm]=0.642688 deltaR[mum]=6.27276e-11 deltaEkin[MeV]=0 deltaAngle(deg)=8.78759e-05 + Event#=0 t[ns]=0.0320533 r[mm]=9.60923 deltaR[mum]=2.30184e-07 deltaEkin[MeV]=0.156858 deltaAngle(deg)=0.00122306 + Event#=1000 t[ns]=0.0105212 r[mm]=3.15414 deltaR[mum]=7.44738e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000431258 + Event#=2000 t[ns]=0.0969708 r[mm]=29.0708 deltaR[mum]=4.74169e-06 deltaEkin[MeV]=8.61961 deltaAngle(deg)=0.00310692 + Event#=3000 t[ns]=0.144696 r[mm]=43.3783 deltaR[mum]=2.30597e-05 deltaEkin[MeV]=10.421 deltaAngle(deg)=0.00530548 + Event#=4000 t[ns]=0.0141012 r[mm]=4.22738 deltaR[mum]=1.79279e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000577999 + Event#=5000 t[ns]=0.0327404 r[mm]=9.81519 deltaR[mum]=2.49004e-07 deltaEkin[MeV]=0.242665 deltaAngle(deg)=0.00125699 + Event#=6000 t[ns]=0.0238787 r[mm]=7.15858 deltaR[mum]=8.70628e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000978776 + Event#=7000 t[ns]=0.0465854 r[mm]=13.9658 deltaR[mum]=6.30207e-07 deltaEkin[MeV]=1.80476 deltaAngle(deg)=0.00219976 + Event#=8000 t[ns]=0.116565 r[mm]=34.9449 deltaR[mum]=1.24604e-05 deltaEkin[MeV]=11.6329 deltaAngle(deg)=0.00405846 + Event#=9000 t[ns]=0.164494 r[mm]=49.3134 deltaR[mum]=5.90903e-05 deltaEkin[MeV]=30.9486 deltaAngle(deg)=0.0068357 Run terminated. Run Summary Number of events processed : 10000 - User=0.360000s Real=0.431925s Sys=0.000000s + User=0.330000s Real=0.333344s Sys=0.000000s ============ Run::printInfo() =============== RunID = 18 @@ -1784,45 +1835,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9817 + # Decays = 9835 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=2.25876e-05 mean=0.0885834 max=0.711989 - decay R [mm] : min=0.0067715 mean=26.5563 max=213.446 - decay X [mm] : min=0.0067715 mean=26.5563 max=213.446 - decay Y [mm] : min=-0.0594567 mean=-0.00193409 max=0.00386268 - decay Z [mm] : min=-0.0186535 mean=9.94078e-06 max=0.0317826 - Delta decay R [mm] : min=-3.46945e-18 mean=3.04391e-08 max=2.38326e-06 - deflection angle [deg] : min=8.53688e-07 mean=0.00368 max=0.0316501 - Delta Ekin [MeV] : min=0 mean=5.02413 max=1488.7 - decay Ekin [GeV] : min=498.511 mean=499.995 max=500 - decay Px [GeV] : min=500.973 mean=502.457 max=502.462 - decay Py [GeV] : min=-0.27003 mean=-0.0316624 max=0.197479 - decay Pz [GeV] : min=-0.112949 mean=8.64686e-05 max=0.137246 - decay Etot violation [MeV] : min=-9.7836e-06 mean=-1.4802e-07 max=9.29425e-06 - decay Px violation [MeV] : min=-9.78366e-06 mean=-1.48047e-07 max=9.29437e-06 - decay Py violation [MeV] : min=-1.93421e-09 mean=2.84706e-11 max=2.98905e-09 - decay Pz violation [MeV] : min=-1.77474e-09 mean=-8.98197e-13 max=6.69132e-10 + decay T [ns] : min=1.01262e-05 mean=0.089119 max=0.7815 + decay R [mm] : min=0.00303571 mean=26.7169 max=234.285 + decay X [mm] : min=0.00303571 mean=26.7169 max=234.285 + decay Y [mm] : min=-0.0643559 mean=-0.00193557 max=0.00578863 + decay Z [mm] : min=-0.0185296 mean=1.36398e-06 max=0.0146623 + Delta decay R [mm] : min=-6.93889e-18 mean=3.06884e-08 max=4.00979e-06 + deflection angle [deg] : min=0 mean=0.00371512 max=0.0317129 + Delta Ekin [MeV] : min=0 mean=5.24881 max=2660.94 + decay Ekin [GeV] : min=497.339 mean=499.995 max=500 + decay Px [GeV] : min=499.801 mean=502.457 max=502.462 + decay Py [GeV] : min=-0.278125 mean=-0.0320293 max=0.158733 + decay Pz [GeV] : min=-0.14433 mean=3.94524e-05 max=0.191826 + decay Etot violation [MeV] : min=-1.0554e-05 mean=-1.47241e-07 max=8.00408e-06 + decay Px violation [MeV] : min=-1.0554e-05 mean=-1.47269e-07 max=8.00414e-06 + decay Py violation [MeV] : min=-1.9466e-09 mean=3.00836e-11 max=2.69321e-09 + decay Pz violation [MeV] : min=-6.81268e-10 mean=1.27011e-14 max=9.10745e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 4.54747e-06 , 0.04613 (mean=0.00845335) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.56231e-09 , 1.56231e-09 + maxMass_deltaMax{1,2,3} [eV] = 0 , 4.54747e-06 , 0.0404316 (mean=0.0086525) + maxBeta_deltaMax{1,2} = 3.33067e-16 , 4.44089e-16 + maxGamma_deltaMax{1,2,3} = 0 , 1.4544e-09 , 1.4544e-09 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 - maxMc_truth_rPos_deltaMax [mum] = 8.52651e-11 (mean=5.95239e-12) (# above threshold = 0) + maxMc_truth_rPos_deltaMax [mum] = 8.52651e-11 (mean=6.0184e-12) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -45.148 (mean=-0.223215) (#above threshold = 109) - maxOverestimated_mc_truth_rPos_delta [mum] = 47.9326 (mean=0.217252) (#above threshold = 485) - minUnderestimated_rDeltaPos [mum] = -45.1468 (mean=-0.223184) (#above threshold = 109) - maxOverestimated_rDeltaPos [mum] = 47.9338 (mean=0.217282) (#above threshold = 485) + minUnderestimated_mc_truth_rPos_delta [mum] = -62.4697 (mean=-0.229919) (#above threshold = 92) + maxOverestimated_mc_truth_rPos_delta [mum] = 145.484 (mean=0.238536) (#above threshold = 470) + minUnderestimated_rDeltaPos [mum] = -62.4689 (mean=-0.229888) (#above threshold = 92) + maxOverestimated_rDeltaPos [mum] = 145.488 (mean=0.238567) (#above threshold = 470) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0325221 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.018313 ============================================= @@ -1846,20 +1897,20 @@ Index : 1 used in the geometry : Yes ### Run 19 starts. ### Run 19 starts. - Event#=0 t[ns]=0.0200292 r[mm]=6.00453 deltaR[mum]=5.13793e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000820985 - Event#=1000 t[ns]=0.0814768 r[mm]=24.4258 deltaR[mum]=2.47327e-06 deltaEkin[MeV]=5.30646 deltaAngle(deg)=0.00468161 - Event#=2000 t[ns]=0.00325022 r[mm]=0.974379 deltaR[mum]=2.19602e-10 deltaEkin[MeV]=0 deltaAngle(deg)=0.000133224 - Event#=3000 t[ns]=0.0323271 r[mm]=9.6913 deltaR[mum]=2.37709e-07 deltaEkin[MeV]=0.401475 deltaAngle(deg)=0.00122423 - Event#=4000 t[ns]=0.0610328 r[mm]=18.297 deltaR[mum]=1.16949e-06 deltaEkin[MeV]=3.66402 deltaAngle(deg)=0.00272333 - Event#=5000 t[ns]=0.132504 r[mm]=39.7232 deltaR[mum]=1.48216e-05 deltaEkin[MeV]=6.2716 deltaAngle(deg)=0.00546713 - Event#=6000 t[ns]=0.102852 r[mm]=30.8339 deltaR[mum]=9.58378e-06 deltaEkin[MeV]=9.05234 deltaAngle(deg)=0.00497969 - Event#=7000 t[ns]=0.00125512 r[mm]=0.376271 deltaR[mum]=1.2601e-11 deltaEkin[MeV]=0 deltaAngle(deg)=5.14413e-05 - Event#=8000 t[ns]=0.00660099 r[mm]=1.9789 deltaR[mum]=1.8392e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.00027057 - Event#=9000 t[ns]=0.0755362 r[mm]=22.6449 deltaR[mum]=2.01095e-06 deltaEkin[MeV]=4.33223 deltaAngle(deg)=0.00328173 + Event#=0 t[ns]=0.0449453 r[mm]=13.4741 deltaR[mum]=5.81382e-07 deltaEkin[MeV]=1.45283 deltaAngle(deg)=0.00187939 + Event#=1000 t[ns]=0.0264427 r[mm]=7.92723 deltaR[mum]=1.18225e-07 deltaEkin[MeV]=0 deltaAngle(deg)=0.00108387 + Event#=2000 t[ns]=0.0218145 r[mm]=6.53975 deltaR[mum]=6.63789e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000894165 + Event#=3000 t[ns]=0.147082 r[mm]=44.0937 deltaR[mum]=1.64557e-05 deltaEkin[MeV]=6.69049 deltaAngle(deg)=0.00552363 + Event#=4000 t[ns]=0.0471435 r[mm]=14.1331 deltaR[mum]=6.47246e-07 deltaEkin[MeV]=2.31036 deltaAngle(deg)=0.00185873 + Event#=5000 t[ns]=0.319775 r[mm]=95.865 deltaR[mum]=0.000176192 deltaEkin[MeV]=6.671 deltaAngle(deg)=0.0122614 + Event#=6000 t[ns]=0.0074651 r[mm]=2.23795 deltaR[mum]=2.66009e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000305991 + Event#=7000 t[ns]=0.0195555 r[mm]=5.86251 deltaR[mum]=4.78177e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000801568 + Event#=8000 t[ns]=0.0171605 r[mm]=5.14451 deltaR[mum]=3.23128e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000703398 + Event#=9000 t[ns]=0.0718892 r[mm]=21.5516 deltaR[mum]=1.76364e-06 deltaEkin[MeV]=4.42753 deltaAngle(deg)=0.00314256 Run terminated. Run Summary Number of events processed : 10000 - User=0.360000s Real=0.367085s Sys=0.000000s + User=0.360000s Real=0.358053s Sys=0.000000s ============ Run::printInfo() =============== RunID = 19 @@ -1876,45 +1927,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9809 + # Decays = 9831 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=8.75901e-06 mean=0.0891079 max=0.806767 - decay R [mm] : min=0.00262585 mean=26.7135 max=241.86 - decay X [mm] : min=0.00262585 mean=26.7135 max=241.86 - decay Y [mm] : min=-0.0114886 mean=0.00193783 max=0.069145 - decay Z [mm] : min=-0.0223804 mean=-2.53786e-06 max=0.0178873 - Delta decay R [mm] : min=-3.46945e-18 mean=3.09484e-08 max=3.83572e-06 - deflection angle [deg] : min=0 mean=0.00370966 max=0.0327887 - Delta Ekin [MeV] : min=0 mean=5.40188 max=2224.89 - decay Ekin [GeV] : min=497.775 mean=499.995 max=500 - decay Px [GeV] : min=500.237 mean=502.456 max=502.462 - decay Py [GeV] : min=-0.148236 mean=0.0319474 max=0.287314 - decay Pz [GeV] : min=-0.207713 mean=-2.84519e-05 max=0.177199 - decay Etot violation [MeV] : min=-1.048e-05 mean=-1.0965e-07 max=9.14303e-06 - decay Px violation [MeV] : min=-1.048e-05 mean=-1.09677e-07 max=9.14303e-06 - decay Py violation [MeV] : min=-2.08485e-09 mean=-2.59165e-11 max=2.60596e-09 - decay Pz violation [MeV] : min=-8.4718e-10 mean=-1.62851e-13 max=1.29822e-09 + decay T [ns] : min=2.15648e-05 mean=0.0886768 max=1.03842 + decay R [mm] : min=0.00646488 mean=26.5843 max=311.305 + decay X [mm] : min=0.00646488 mean=26.5843 max=311.305 + decay Y [mm] : min=-0.00469869 mean=0.00193585 max=0.0787604 + decay Z [mm] : min=-0.0153337 mean=2.41555e-06 max=0.0279568 + Delta decay R [mm] : min=-1.73472e-18 mean=3.04282e-08 max=6.70365e-06 + deflection angle [deg] : min=8.53688e-07 mean=0.00371273 max=0.041526 + Delta Ekin [MeV] : min=0 mean=5.29891 max=4906.68 + decay Ekin [GeV] : min=495.093 mean=499.995 max=500 + decay Px [GeV] : min=497.555 mean=502.457 max=502.462 + decay Py [GeV] : min=-0.083771 mean=0.0320427 max=0.317825 + decay Pz [GeV] : min=-0.177841 mean=-4.88946e-05 max=0.143162 + decay Etot violation [MeV] : min=-9.02632e-06 mean=-1.46106e-07 max=7.6943e-06 + decay Px violation [MeV] : min=-9.02626e-06 mean=-1.46133e-07 max=7.69435e-06 + decay Py violation [MeV] : min=-2.2979e-09 mean=-2.99723e-11 max=2.13106e-09 + decay Pz violation [MeV] : min=-9.32857e-10 mean=-8.59849e-14 max=1.89442e-09 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 4.54747e-06 , 0.0466148 (mean=0.00861987) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.48646e-09 , 1.48646e-09 + maxMass_deltaMax{1,2,3} [eV] = 0 , 4.54747e-06 , 0.0466148 (mean=0.00854274) + maxBeta_deltaMax{1,2} = 3.33067e-16 , 4.44089e-16 + maxGamma_deltaMax{1,2,3} = 0 , 1.45099e-09 , 1.45099e-09 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 - maxMc_truth_rPos_deltaMax [mum] = 8.52651e-11 (mean=5.95261e-12) (# above threshold = 0) + maxMc_truth_rPos_deltaMax [mum] = 8.52651e-11 (mean=5.87277e-12) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -58.5291 (mean=-0.241081) (#above threshold = 118) - maxOverestimated_mc_truth_rPos_delta [mum] = 138.156 (mean=0.259445) (#above threshold = 477) - minUnderestimated_rDeltaPos [mum] = -58.528 (mean=-0.24105) (#above threshold = 118) - maxOverestimated_rDeltaPos [mum] = 138.16 (mean=0.259476) (#above threshold = 477) + minUnderestimated_mc_truth_rPos_delta [mum] = -251.477 (mean=-0.244443) (#above threshold = 84) + maxOverestimated_mc_truth_rPos_delta [mum] = 109.053 (mean=0.213827) (#above threshold = 474) + minUnderestimated_rDeltaPos [mum] = -251.475 (mean=-0.244413) (#above threshold = 84) + maxOverestimated_rDeltaPos [mum] = 109.056 (mean=0.213857) (#above threshold = 474) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0323391 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0190942 ============================================= @@ -1938,20 +1989,20 @@ Index : 1 used in the geometry : Yes ### Run 20 starts. ### Run 20 starts. - Event#=0 t[ns]=0.0152275 r[mm]=4.56504 deltaR[mum]=8.88178e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=1000 t[ns]=0.0686373 r[mm]=20.5767 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=2000 t[ns]=0.0129585 r[mm]=3.8848 deltaR[mum]=4.44089e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=3000 t[ns]=0.0315976 r[mm]=9.47262 deltaR[mum]=1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=4000 t[ns]=0.0947453 r[mm]=28.4036 deltaR[mum]=3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=5000 t[ns]=0.0728051 r[mm]=21.8261 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=6000 t[ns]=0.00434134 r[mm]=1.30149 deltaR[mum]=-2.22045e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=7000 t[ns]=0.0248101 r[mm]=7.4378 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=8000 t[ns]=0.0314077 r[mm]=9.41569 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=9000 t[ns]=0.0117916 r[mm]=3.535 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=0 t[ns]=0.0703496 r[mm]=21.09 deltaR[mum]=3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=1000 t[ns]=0.0153476 r[mm]=4.60105 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=2000 t[ns]=0.0044533 r[mm]=1.33505 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=3000 t[ns]=0.0280808 r[mm]=8.41832 deltaR[mum]=1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=4000 t[ns]=0.00735425 r[mm]=2.20472 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=5000 t[ns]=0.00447353 r[mm]=1.34112 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=6000 t[ns]=3.9982e-05 r[mm]=0.0119862 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=7000 t[ns]=0.00207557 r[mm]=0.622234 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=8000 t[ns]=0.0218214 r[mm]=6.54182 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=9000 t[ns]=0.0232698 r[mm]=6.97602 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 Run terminated. Run Summary Number of events processed : 10000 - User=0.110000s Real=0.102823s Sys=0.000000s + User=0.100000s Real=0.104913s Sys=0.000000s ============ Run::printInfo() =============== RunID = 20 @@ -1968,43 +2019,43 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9968 + # Decays = 9973 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=2.039e-06 mean=0.0230499 max=0.259724 - decay R [mm] : min=0.000611269 mean=6.9101 max=77.8624 - decay X [mm] : min=0.000611269 mean=6.9101 max=77.8624 - decay Y [mm] : min=-0.00175001 mean=4.71031e-07 max=0.00292046 - decay Z [mm] : min=-0.00194563 mean=1.80317e-07 max=0.00224522 - Delta decay R [mm] : min=-7.10543e-15 mean=4.93062e-11 max=1.23818e-07 - deflection angle [deg] : min=0 mean=6.52431e-06 max=0.0110856 - Delta Ekin [MeV] : min=0 mean=8.13549e-05 max=0.181418 + decay T [ns] : min=3.39119e-07 mean=0.0231712 max=0.177672 + decay R [mm] : min=0.000101664 mean=6.94646 max=53.264 + decay X [mm] : min=0.000101664 mean=6.94646 max=53.264 + decay Y [mm] : min=-0.000169952 mean=5.7869e-07 max=0.00192153 + decay Z [mm] : min=-0.00188136 mean=8.01488e-08 max=0.00253066 + Delta decay R [mm] : min=-7.10543e-15 mean=6.00206e-11 max=2.50302e-07 + deflection angle [deg] : min=0 mean=1.01085e-05 max=0.0163339 + Delta Ekin [MeV] : min=0 mean=0.000142694 max=0.393861 decay Ekin [GeV] : min=500 mean=500 max=500 - decay Px [GeV] : min=502.465 mean=502.465 max=502.465 - decay Py [GeV] : min=-0.0530748 mean=1.93078e-05 max=0.0824876 - decay Pz [GeV] : min=-0.0694241 mean=8.20648e-06 max=0.0680935 - decay Etot violation [MeV] : min=-1.12527e-06 mean=7.44905e-07 max=1.08378e-05 - decay Px violation [MeV] : min=-1.12533e-06 mean=7.44913e-07 max=1.08381e-05 - decay Py violation [MeV] : min=-6.65494e-10 mean=2.78488e-13 max=1.53391e-09 - decay Pz violation [MeV] : min=-9.57101e-10 mean=1.33575e-13 max=9.00492e-10 + decay Px [GeV] : min=502.464 mean=502.465 max=502.465 + decay Py [GeV] : min=-0.0519388 mean=3.02283e-05 max=0.0621205 + decay Pz [GeV] : min=-0.111415 mean=-1.95036e-05 max=0.14157 + decay Etot violation [MeV] : min=-1.12725e-06 mean=7.73733e-07 max=1.11794e-05 + decay Px violation [MeV] : min=-1.12719e-06 mean=7.73742e-07 max=1.11795e-05 + decay Py violation [MeV] : min=-3.01842e-10 mean=4.17156e-13 max=1.07028e-09 + decay Pz violation [MeV] : min=-2.18716e-09 mean=-4.04783e-13 max=1.60017e-09 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 2.31921e-05 , 0.0239611 (mean=0.00544335) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 3.33067e-16 - maxGamma_deltaMax{1,2,3} = 0 , 7.23446e-10 , 7.23446e-10 + maxMass_deltaMax{1,2,3} [eV] = 0 , 2.31921e-05 , 0.0254431 (mean=0.0054376) + maxBeta_deltaMax{1,2} = 1.11022e-16 , 2.22045e-16 + maxGamma_deltaMax{1,2,3} = 0 , 9.09637e-10 , 9.09637e-10 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -0.00404321 (mean=-2.04075e-06) (#above threshold = 0) - maxOverestimated_mc_truth_rPos_delta [mum] = 0.006423 (mean=2.08851e-06) (#above threshold = 0) - minUnderestimated_rDeltaPos [mum] = -0.00399147 (mean=-1.99144e-06) (#above threshold = 0) - maxOverestimated_rDeltaPos [mum] = 0.00654682 (mean=2.13782e-06) (#above threshold = 0) + minUnderestimated_mc_truth_rPos_delta [mum] = -0.0153238 (mean=-4.14824e-06) (#above threshold = 0) + maxOverestimated_mc_truth_rPos_delta [mum] = 0.00704046 (mean=1.95053e-06) (#above threshold = 0) + minUnderestimated_rDeltaPos [mum] = -0.0150735 (mean=-4.08822e-06) (#above threshold = 0) + maxOverestimated_rDeltaPos [mum] = 0.00729076 (mean=2.01055e-06) (#above threshold = 0) --- float instead of double --- fMaxFloat_rDeltaPos_deltaMax [mum] = 0.00762939 ============================================= @@ -2030,20 +2081,20 @@ Index : 1 used in the geometry : Yes ### Run 21 starts. ### Run 21 starts. - Event#=0 t[ns]=0.0138005 r[mm]=4.13723 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=1000 t[ns]=0.0358981 r[mm]=10.7618 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=2000 t[ns]=0.0234249 r[mm]=7.02252 deltaR[mum]=8.88178e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=3000 t[ns]=0.0145225 r[mm]=4.35368 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=4000 t[ns]=0.00272239 r[mm]=0.816141 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=5000 t[ns]=0.00430893 r[mm]=1.29177 deltaR[mum]=2.22045e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=6000 t[ns]=0.00806061 r[mm]=2.41648 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=7000 t[ns]=0.0453646 r[mm]=13.5998 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=8000 t[ns]=0.0185742 r[mm]=5.56833 deltaR[mum]=8.88178e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=9000 t[ns]=0.0422286 r[mm]=12.6596 deltaR[mum]=1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=0 t[ns]=0.0317878 r[mm]=9.52963 deltaR[mum]=1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=1000 t[ns]=0.0707228 r[mm]=21.2019 deltaR[mum]=3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=2000 t[ns]=0.00327462 r[mm]=0.981694 deltaR[mum]=1.11022e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=3000 t[ns]=0.0153969 r[mm]=4.61581 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=4000 t[ns]=0.00628013 r[mm]=1.88271 deltaR[mum]=2.22045e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=5000 t[ns]=0.00783181 r[mm]=2.34789 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=6000 t[ns]=0.00192583 r[mm]=0.577341 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=7000 t[ns]=0.0454042 r[mm]=13.6117 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=8000 t[ns]=0.00439733 r[mm]=1.31827 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=9000 t[ns]=0.00594756 r[mm]=1.78301 deltaR[mum]=-2.22045e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 Run terminated. Run Summary Number of events processed : 10000 - User=0.090000s Real=0.096619s Sys=0.000000s + User=0.110000s Real=0.107972s Sys=0.000000s ============ Run::printInfo() =============== RunID = 21 @@ -2060,43 +2111,43 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9976 + # Decays = 9970 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=7.91885e-07 mean=0.0225786 max=0.213724 - decay R [mm] : min=0.000237398 mean=6.76881 max=64.0721 - decay X [mm] : min=0.000237398 mean=6.76881 max=64.0721 - decay Y [mm] : min=-0.000789901 mean=-1.62115e-07 max=0.000726778 - decay Z [mm] : min=-0.001585 mean=-6.15206e-08 max=0.000549069 - Delta decay R [mm] : min=-7.10543e-15 mean=4.38775e-11 max=1.56955e-07 - deflection angle [deg] : min=0 mean=8.15777e-06 max=0.0228811 - Delta Ekin [MeV] : min=0 mean=0.000187392 max=0.772886 - decay Ekin [GeV] : min=499.999 mean=500 max=500 - decay Px [GeV] : min=502.464 mean=502.465 max=502.465 - decay Py [GeV] : min=-0.164781 mean=-4.51813e-06 max=0.170154 - decay Pz [GeV] : min=-0.103838 mean=2.79881e-06 max=0.114541 - decay Etot violation [MeV] : min=-1.12515e-06 mean=6.96819e-07 max=1.20274e-05 - decay Px violation [MeV] : min=-1.12521e-06 mean=6.96827e-07 max=1.20275e-05 - decay Py violation [MeV] : min=-2.87298e-09 mean=-2.53228e-13 max=1.8039e-09 - decay Pz violation [MeV] : min=-2.47383e-09 mean=-2.25337e-14 max=1.99709e-09 + decay T [ns] : min=3.07124e-06 mean=0.0228224 max=0.196903 + decay R [mm] : min=0.000920724 mean=6.8419 max=59.0292 + decay X [mm] : min=0.000920724 mean=6.8419 max=59.0292 + decay Y [mm] : min=-0.000737091 mean=9.61888e-08 max=0.00178777 + decay Z [mm] : min=-0.000957679 mean=-8.15323e-08 max=0.000739335 + Delta decay R [mm] : min=-7.10543e-15 mean=2.5874e-11 max=7.05226e-08 + deflection angle [deg] : min=0 mean=4.91405e-06 max=0.0109508 + Delta Ekin [MeV] : min=0 mean=7.14974e-05 max=0.170923 + decay Ekin [GeV] : min=500 mean=500 max=500 + decay Px [GeV] : min=502.465 mean=502.465 max=502.465 + decay Py [GeV] : min=-0.0915742 mean=-5.49908e-06 max=0.0784951 + decay Pz [GeV] : min=-0.0695591 mean=-9.58276e-06 max=0.0521882 + decay Etot violation [MeV] : min=-1.12521e-06 mean=7.44876e-07 max=1.08448e-05 + decay Px violation [MeV] : min=-1.12527e-06 mean=7.44884e-07 max=1.0845e-05 + decay Py violation [MeV] : min=-1.72609e-09 mean=-1.70303e-13 max=8.68297e-10 + decay Pz violation [MeV] : min=-1.26272e-09 mean=-1.56583e-13 max=3.05207e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 2.31921e-05 , 0.0116097 (mean=0.00543515) + maxMass_deltaMax{1,2,3} [eV] = 0 , 2.31921e-05 , 0.0239611 (mean=0.00543715) maxBeta_deltaMax{1,2} = 1.11022e-16 , 2.22045e-16 - maxGamma_deltaMax{1,2,3} = 0 , 9.23677e-10 , 9.23677e-10 + maxGamma_deltaMax{1,2,3} = 0 , 7.63748e-10 , 7.63748e-10 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -0.018327 (mean=-5.05011e-06) (#above threshold = 0) - maxOverestimated_mc_truth_rPos_delta [mum] = 0.0038568 (mean=1.11262e-06) (#above threshold = 0) - minUnderestimated_rDeltaPos [mum] = -0.0182086 (mean=-5.00623e-06) (#above threshold = 0) - maxOverestimated_rDeltaPos [mum] = 0.00398585 (mean=1.1565e-06) (#above threshold = 0) + minUnderestimated_mc_truth_rPos_delta [mum] = -0.00847655 (mean=-2.33459e-06) (#above threshold = 0) + maxOverestimated_mc_truth_rPos_delta [mum] = 0.00300301 (mean=7.7413e-07) (#above threshold = 0) + minUnderestimated_rDeltaPos [mum] = -0.00841714 (mean=-2.30871e-06) (#above threshold = 0) + maxOverestimated_rDeltaPos [mum] = 0.00307066 (mean=8.00004e-07) (#above threshold = 0) --- float instead of double --- fMaxFloat_rDeltaPos_deltaMax [mum] = 0.00762939 ============================================= @@ -2122,20 +2173,20 @@ Index : 1 used in the geometry : Yes ### Run 22 starts. ### Run 22 starts. - Event#=0 t[ns]=0.0108381 r[mm]=3.24914 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=1000 t[ns]=0.00867377 r[mm]=2.60029 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=2000 t[ns]=0.0111251 r[mm]=3.33516 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=3000 t[ns]=0.00892365 r[mm]=2.6752 deltaR[mum]=-4.44089e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=4000 t[ns]=0.00124471 r[mm]=0.373148 deltaR[mum]=-5.55112e-14 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=5000 t[ns]=0.00373489 r[mm]=1.11968 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=6000 t[ns]=0.0277915 r[mm]=8.33158 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=7000 t[ns]=0.0140925 r[mm]=4.22478 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=8000 t[ns]=0.00878256 r[mm]=2.63291 deltaR[mum]=-4.44089e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=9000 t[ns]=0.00111556 r[mm]=0.334431 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=0 t[ns]=0.00996766 r[mm]=2.98819 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=1000 t[ns]=0.00594125 r[mm]=1.78112 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=2000 t[ns]=0.0118232 r[mm]=3.54444 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=3000 t[ns]=0.00233972 r[mm]=0.701421 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=4000 t[ns]=0.00204434 r[mm]=0.61287 deltaR[mum]=-1.11022e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=5000 t[ns]=0.0123945 r[mm]=3.71573 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=6000 t[ns]=0.0151279 r[mm]=4.53518 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=7000 t[ns]=0.00743796 r[mm]=2.22981 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=8000 t[ns]=0.0203274 r[mm]=6.09392 deltaR[mum]=-8.88178e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=9000 t[ns]=0.0224167 r[mm]=6.72025 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 Run terminated. Run Summary Number of events processed : 10000 - User=0.080000s Real=0.078186s Sys=0.000000s + User=0.080000s Real=0.089685s Sys=0.000000s ============ Run::printInfo() =============== RunID = 22 @@ -2152,43 +2203,43 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9997 + # Decays = 9990 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=5.74789e-07 mean=0.0128115 max=0.113814 - decay R [mm] : min=0.000172315 mean=3.84073 max=34.1202 - decay X [mm] : min=0.000172315 mean=3.84073 max=34.1202 - decay Y [mm] : min=-0.00280709 mean=-3.08943e-07 max=6.14174e-05 - decay Z [mm] : min=-0.00433347 mean=-3.81363e-07 max=0.000332611 - Delta decay R [mm] : min=-7.10543e-15 mean=1.29747e-10 max=1.2655e-06 - deflection angle [deg] : min=0 mean=6.3796e-06 max=0.0432399 - Delta Ekin [MeV] : min=0 mean=0.000288525 max=2.66726 - decay Ekin [GeV] : min=499.997 mean=500 max=500 - decay Px [GeV] : min=502.685 mean=502.688 max=502.688 - decay Py [GeV] : min=-0.206271 mean=-3.0768e-05 max=0.0103589 - decay Pz [GeV] : min=-0.318433 mean=-2.11652e-05 max=0.0560996 - decay Etot violation [MeV] : min=-4.53106e-06 mean=-2.06262e-07 max=3.82285e-06 - decay Px violation [MeV] : min=-4.53112e-06 mean=-2.06272e-07 max=3.82285e-06 - decay Py violation [MeV] : min=-2.89027e-10 mean=1.2219e-13 max=1.36748e-09 - decay Pz violation [MeV] : min=-5.99663e-11 mean=2.19554e-13 max=2.1106e-09 + decay T [ns] : min=7.63479e-07 mean=0.0130621 max=0.115014 + decay R [mm] : min=0.000228882 mean=3.91585 max=34.4799 + decay X [mm] : min=0.000228882 mean=3.91585 max=34.4799 + decay Y [mm] : min=-0.000972042 mean=-1.13895e-07 max=0.000473485 + decay Z [mm] : min=-0.000532415 mean=-1.48455e-07 max=0 + Delta decay R [mm] : min=-3.55271e-15 mean=1.47348e-11 max=7.44121e-08 + deflection angle [deg] : min=0 mean=3.38443e-06 max=0.0138941 + Delta Ekin [MeV] : min=0 mean=4.82657e-05 max=0.285237 + decay Ekin [GeV] : min=500 mean=500 max=500 + decay Px [GeV] : min=502.688 mean=502.688 max=502.688 + decay Py [GeV] : min=-0.0577273 mean=-1.63795e-06 max=0.0810159 + decay Pz [GeV] : min=-0.0910993 mean=-2.01626e-05 max=0 + decay Etot violation [MeV] : min=-4.35492e-06 mean=-2.09585e-07 max=3.31289e-06 + decay Px violation [MeV] : min=-4.35498e-06 mean=-2.09594e-07 max=3.31289e-06 + decay Py violation [MeV] : min=-4.75481e-10 mean=-6.63149e-15 max=3.2756e-10 + decay Pz violation [MeV] : min=-6.54481e-11 mean=6.42888e-14 max=5.34854e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 1.18234e-05 , 0.0267219 (mean=0.00159116) + maxMass_deltaMax{1,2,3} [eV] = 0 , 1.18234e-05 , 0.00973751 (mean=0.00158777) maxBeta_deltaMax{1,2} = 1.11022e-16 , 1.11022e-16 - maxGamma_deltaMax{1,2,3} = 0 , 7.41124e-10 , 7.41124e-10 + maxGamma_deltaMax{1,2,3} = 0 , 7.91573e-10 , 7.91573e-10 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -0.0671013 (mean=-7.16528e-06) (#above threshold = 0) - maxOverestimated_mc_truth_rPos_delta [mum] = 0.0362975 (mean=3.70604e-06) (#above threshold = 0) - minUnderestimated_rDeltaPos [mum] = -0.0658358 (mean=-7.03553e-06) (#above threshold = 0) - maxOverestimated_rDeltaPos [mum] = 0.037563 (mean=3.83579e-06) (#above threshold = 0) + minUnderestimated_mc_truth_rPos_delta [mum] = -0.0103016 (mean=-1.59321e-06) (#above threshold = 0) + maxOverestimated_mc_truth_rPos_delta [mum] = 0.001667 (mean=3.79437e-07) (#above threshold = 0) + minUnderestimated_rDeltaPos [mum] = -0.0102272 (mean=-1.57848e-06) (#above threshold = 0) + maxOverestimated_rDeltaPos [mum] = 0.00174141 (mean=3.94172e-07) (#above threshold = 0) --- float instead of double --- fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0038147 ============================================= @@ -2214,20 +2265,20 @@ Index : 1 used in the geometry : Yes ### Run 23 starts. ### Run 23 starts. - Event#=0 t[ns]=0.0396188 r[mm]=11.8772 deltaR[mum]=1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=1000 t[ns]=0.000642725 r[mm]=0.192681 deltaR[mum]=2.77556e-14 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=2000 t[ns]=0.0269569 r[mm]=8.08135 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=3000 t[ns]=0.0027019 r[mm]=0.809997 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=4000 t[ns]=0.00417632 r[mm]=1.25201 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=5000 t[ns]=0.0106004 r[mm]=3.17788 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=6000 t[ns]=0.0246518 r[mm]=7.39032 deltaR[mum]=-8.88178e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=7000 t[ns]=0.0085543 r[mm]=2.56448 deltaR[mum]=-4.44089e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=8000 t[ns]=0.0625044 r[mm]=18.7381 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=9000 t[ns]=0.0173595 r[mm]=5.20416 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=0 t[ns]=0.039312 r[mm]=11.7853 deltaR[mum]=-1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=1000 t[ns]=0.0042684 r[mm]=1.27962 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=2000 t[ns]=0.001843 r[mm]=0.552509 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=3000 t[ns]=0.00982441 r[mm]=2.94524 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=4000 t[ns]=0.00854261 r[mm]=2.56097 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=5000 t[ns]=0.00193259 r[mm]=0.579369 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=6000 t[ns]=0.0633503 r[mm]=18.9917 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=7000 t[ns]=0.0107101 r[mm]=3.21076 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=8000 t[ns]=0.0092375 r[mm]=2.76929 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=9000 t[ns]=0.00412273 r[mm]=1.23595 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 Run terminated. Run Summary Number of events processed : 10000 - User=0.080000s Real=0.081907s Sys=0.000000s + User=0.080000s Real=0.081810s Sys=0.000000s ============ Run::printInfo() =============== RunID = 23 @@ -2244,45 +2295,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9993 + # Decays = 9997 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=4.93721e-06 mean=0.0129209 max=0.169916 - decay R [mm] : min=0.00148012 mean=3.87352 max=50.9387 - decay X [mm] : min=0.00148012 mean=3.87352 max=50.9387 - decay Y [mm] : min=-0.000789301 mean=-1.11974e-07 max=0.000467614 - decay Z [mm] : min=-0.0005653 mean=-1.17378e-07 max=8.04393e-05 - Delta decay R [mm] : min=-3.55271e-15 mean=1.24379e-11 max=4.73413e-08 - deflection angle [deg] : min=0 mean=3.4541e-06 max=0.0100842 - Delta Ekin [MeV] : min=0 mean=3.99093e-05 max=0.150256 - decay Ekin [GeV] : min=500 mean=500 max=500 - decay Px [GeV] : min=502.688 mean=502.688 max=502.688 - decay Py [GeV] : min=-0.0666341 mean=-1.80018e-05 max=0.0325865 - decay Pz [GeV] : min=-0.0686867 mean=-1.14804e-05 max=0.0206037 - decay Etot violation [MeV] : min=-4.81401e-06 mean=-2.02958e-07 max=4.40463e-06 - decay Px violation [MeV] : min=-4.81406e-06 mean=-2.02968e-07 max=4.40486e-06 - decay Py violation [MeV] : min=-3.28654e-10 mean=3.81709e-14 max=5.03022e-10 - decay Pz violation [MeV] : min=-3.74758e-11 mean=5.695e-14 max=3.60124e-10 + decay T [ns] : min=4.2991e-07 mean=0.0130818 max=0.112405 + decay R [mm] : min=0.000128882 mean=3.92178 max=33.6976 + decay X [mm] : min=0.000128882 mean=3.92178 max=33.6976 + decay Y [mm] : min=-8.67183e-05 mean=9.56717e-08 max=0.000659017 + decay Z [mm] : min=-0.00211832 mean=-8.16097e-08 max=0.000929236 + Delta decay R [mm] : min=-7.10543e-15 mean=3.74424e-11 max=2.91724e-07 + deflection angle [deg] : min=0 mean=4.18482e-06 max=0.0194083 + Delta Ekin [MeV] : min=0 mean=7.99252e-05 max=0.537372 + decay Ekin [GeV] : min=499.999 mean=500 max=500 + decay Px [GeV] : min=502.687 mean=502.688 max=502.688 + decay Py [GeV] : min=-0.0424514 mean=2.23501e-06 max=0.0505886 + decay Pz [GeV] : min=-0.16261 mean=-6.65439e-07 max=0.0792076 + decay Etot violation [MeV] : min=-4.29532e-06 mean=-2.09451e-07 max=3.0201e-06 + decay Px violation [MeV] : min=-4.29538e-06 mean=-2.09461e-07 max=3.02005e-06 + decay Py violation [MeV] : min=-1.15108e-12 mean=4.46964e-14 max=3.26196e-10 + decay Pz violation [MeV] : min=-1.71667e-10 mean=-1.40266e-14 max=1.3786e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 1.18234e-05 , 0.0242312 (mean=0.0015911) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 2.22045e-16 - maxGamma_deltaMax{1,2,3} = 0 , 3.97108e-10 , 3.97108e-10 + maxMass_deltaMax{1,2,3} [eV] = 0 , 1.18234e-05 , 0.0129085 (mean=0.0015872) + maxBeta_deltaMax{1,2} = 1.11022e-16 , 1.11022e-16 + maxGamma_deltaMax{1,2,3} = 0 , 4.01343e-10 , 4.01343e-10 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -0.00482131 (mean=-1.11314e-06) (#above threshold = 0) - maxOverestimated_mc_truth_rPos_delta [mum] = 0.00144029 (mean=3.30062e-07) (#above threshold = 0) - minUnderestimated_rDeltaPos [mum] = -0.00477707 (mean=-1.1007e-06) (#above threshold = 0) - maxOverestimated_rDeltaPos [mum] = 0.00148763 (mean=3.425e-07) (#above threshold = 0) + minUnderestimated_mc_truth_rPos_delta [mum] = -0.0242217 (mean=-3.22993e-06) (#above threshold = 0) + maxOverestimated_mc_truth_rPos_delta [mum] = 0.00700024 (mean=9.05279e-07) (#above threshold = 0) + minUnderestimated_rDeltaPos [mum] = -0.02393 (mean=-3.19249e-06) (#above threshold = 0) + maxOverestimated_rDeltaPos [mum] = 0.00729196 (mean=9.42722e-07) (#above threshold = 0) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.00195159 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.00190735 ============================================= @@ -2306,20 +2357,20 @@ Index : 1 used in the geometry : Yes ### Run 24 starts. ### Run 24 starts. - Event#=0 t[ns]=0.161904 r[mm]=48.5345 deltaR[mum]=0.000121938 deltaEkin[MeV]=0.127374 deltaAngle(deg)=0.00923139 - Event#=1000 t[ns]=0.179134 r[mm]=53.6997 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=2000 t[ns]=0.00372469 r[mm]=1.11657 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=3000 t[ns]=0.190173 r[mm]=57.0089 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=4000 t[ns]=0.162635 r[mm]=48.7537 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=5000 t[ns]=0.176772 r[mm]=52.9916 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=6000 t[ns]=0.0901183 r[mm]=27.0151 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=7000 t[ns]=0.0688857 r[mm]=20.6501 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=8000 t[ns]=0.016282 r[mm]=4.88093 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=9000 t[ns]=0.0110955 r[mm]=3.32613 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=0 t[ns]=0.129863 r[mm]=38.9296 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=1000 t[ns]=0.484392 r[mm]=145.208 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=2000 t[ns]=0.0110331 r[mm]=3.30742 deltaR[mum]=4.44089e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=3000 t[ns]=0.0382367 r[mm]=11.4624 deltaR[mum]=1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=4000 t[ns]=0.223747 r[mm]=67.0735 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=5000 t[ns]=0.0719351 r[mm]=21.5643 deltaR[mum]=-3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=6000 t[ns]=0.200136 r[mm]=59.9955 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=7000 t[ns]=0.0295704 r[mm]=8.86445 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=8000 t[ns]=0.0627222 r[mm]=18.8025 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=9000 t[ns]=0.0750202 r[mm]=22.4891 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 Run terminated. Run Summary Number of events processed : 10000 - User=0.260000s Real=0.259368s Sys=0.000000s + User=0.260000s Real=0.261789s Sys=0.000000s ============ Run::printInfo() =============== RunID = 24 @@ -2336,43 +2387,43 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9783 + # Decays = 9796 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=2.90444e-07 mean=0.13159 max=1.39082 - decay R [mm] : min=8.70676e-05 mean=39.4473 max=416.931 - decay X [mm] : min=8.70676e-05 mean=39.4473 max=416.931 - decay Y [mm] : min=-0.0216075 mean=3.72753e-06 max=0.0552784 - decay Z [mm] : min=-0.0297042 mean=7.53197e-06 max=0.0183538 - Delta decay R [mm] : min=-5.68434e-14 mean=1.8163e-09 max=2.10576e-06 - deflection angle [deg] : min=0 mean=9.41255e-05 max=0.0373606 - Delta Ekin [MeV] : min=0 mean=0.00171222 max=2.08628 - decay Ekin [GeV] : min=499.998 mean=500 max=500 - decay Px [GeV] : min=505.586 mean=505.588 max=505.588 - decay Py [GeV] : min=-0.142113 mean=5.36184e-05 max=0.158617 - decay Pz [GeV] : min=-0.327958 mean=5.00915e-05 max=0.196427 - decay Etot violation [MeV] : min=-1.59064e-06 mean=-3.66634e-07 max=1.47754e-06 - decay Px violation [MeV] : min=-1.59058e-06 mean=-3.66535e-07 max=1.4776e-06 - decay Py violation [MeV] : min=-4.29111e-10 mean=2.58216e-14 max=2.95415e-10 - decay Pz violation [MeV] : min=-3.83011e-10 mean=-1.25178e-13 max=2.31083e-10 + decay T [ns] : min=1.31878e-06 mean=0.13078 max=1.05113 + decay R [mm] : min=0.000395336 mean=39.2044 max=315.101 + decay X [mm] : min=0.000395336 mean=39.2044 max=315.101 + decay Y [mm] : min=-0.023939 mean=-7.52627e-06 max=0.00757885 + decay Z [mm] : min=-0.0203581 mean=-2.81569e-06 max=0.0224248 + Delta decay R [mm] : min=-5.68434e-14 mean=1.30587e-09 max=1.01036e-06 + deflection angle [deg] : min=0 mean=7.91433e-05 max=0.0255765 + Delta Ekin [MeV] : min=0 mean=0.00129469 max=0.977748 + decay Ekin [GeV] : min=499.999 mean=500 max=500 + decay Px [GeV] : min=505.587 mean=505.588 max=505.588 + decay Py [GeV] : min=-0.153963 mean=-8.80255e-05 max=0.127558 + decay Pz [GeV] : min=-0.16801 mean=-4.56174e-05 max=0.219909 + decay Etot violation [MeV] : min=-1.68366e-06 mean=-3.66097e-07 max=7.77305e-07 + decay Px violation [MeV] : min=-1.68377e-06 mean=-3.65997e-07 max=7.77247e-07 + decay Py violation [MeV] : min=-1.7242e-10 mean=5.02739e-14 max=2.54943e-10 + decay Pz violation [MeV] : min=-1.71383e-10 mean=2.15832e-14 max=1.60853e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 1.63709e-05 , 0.0139153 (mean=0.00306332) + maxMass_deltaMax{1,2,3} [eV] = 0 , 1.63709e-05 , 0.016631 (mean=0.00305949) maxBeta_deltaMax{1,2} = 1.11022e-16 , 3.33067e-16 - maxGamma_deltaMax{1,2,3} = 0 , 8.7951e-11 , 8.7951e-11 + maxGamma_deltaMax{1,2,3} = 0 , 9.94618e-11 , 9.94618e-11 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -0.0604973 (mean=-6.02729e-05) (#above threshold = 0) - maxOverestimated_mc_truth_rPos_delta [mum] = 0.207788 (mean=0.000136258) (#above threshold = 0) - minUnderestimated_rDeltaPos [mum] = -0.0583916 (mean=-5.84566e-05) (#above threshold = 0) - maxOverestimated_rDeltaPos [mum] = 0.208983 (mean=0.000138074) (#above threshold = 0) + minUnderestimated_mc_truth_rPos_delta [mum] = -0.0279308 (mean=-4.51079e-05) (#above threshold = 0) + maxOverestimated_mc_truth_rPos_delta [mum] = 0.0681034 (mean=9.38312e-05) (#above threshold = 0) + minUnderestimated_rDeltaPos [mum] = -0.0269204 (mean=-4.3802e-05) (#above threshold = 0) + maxOverestimated_rDeltaPos [mum] = 0.0686717 (mean=9.5137e-05) (#above threshold = 0) --- float instead of double --- fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0305176 ============================================= @@ -2398,20 +2449,20 @@ Index : 1 used in the geometry : Yes ### Run 25 starts. ### Run 25 starts. - Event#=0 t[ns]=0.0289086 r[mm]=8.66605 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=1000 t[ns]=0.0506789 r[mm]=15.1922 deltaR[mum]=-1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=2000 t[ns]=0.0621911 r[mm]=18.6433 deltaR[mum]=3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=3000 t[ns]=0.778272 r[mm]=233.306 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=4000 t[ns]=0.0958814 r[mm]=28.7427 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=5000 t[ns]=0.199048 r[mm]=59.6695 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=6000 t[ns]=0.039384 r[mm]=11.8063 deltaR[mum]=-1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=7000 t[ns]=0.16878 r[mm]=50.5959 deltaR[mum]=-7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=8000 t[ns]=0.210895 r[mm]=63.2209 deltaR[mum]=-7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=9000 t[ns]=0.00627662 r[mm]=1.88157 deltaR[mum]=2.22045e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=0 t[ns]=0.192568 r[mm]=57.7268 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=1000 t[ns]=0.15974 r[mm]=47.886 deltaR[mum]=7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=2000 t[ns]=0.0894706 r[mm]=26.821 deltaR[mum]=3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=3000 t[ns]=0.0798246 r[mm]=23.9293 deltaR[mum]=-3.55271e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=4000 t[ns]=0.151582 r[mm]=45.4404 deltaR[mum]=-7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=5000 t[ns]=0.118115 r[mm]=35.4078 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=6000 t[ns]=0.0785313 r[mm]=23.5416 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=7000 t[ns]=0.0698596 r[mm]=20.9421 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=8000 t[ns]=0.0478519 r[mm]=14.3448 deltaR[mum]=-1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=9000 t[ns]=0.648908 r[mm]=194.526 deltaR[mum]=-2.84217e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 Run terminated. Run Summary Number of events processed : 10000 - User=0.280000s Real=0.278549s Sys=0.000000s + User=0.260000s Real=0.270154s Sys=0.000000s ============ Run::printInfo() =============== RunID = 25 @@ -2428,43 +2479,43 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9760 + # Decays = 9787 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=1.0344e-05 mean=0.132066 max=1.58476 - decay R [mm] : min=0.00310087 mean=39.5898 max=475.069 - decay X [mm] : min=0.00310087 mean=39.5898 max=475.069 - decay Y [mm] : min=-0.0152793 mean=2.67703e-07 max=0.0218214 - decay Z [mm] : min=-0.0131339 mean=1.04704e-05 max=0.0240083 - Delta decay R [mm] : min=-5.68434e-14 mean=1.59695e-09 max=2.1395e-06 - deflection angle [deg] : min=0 mean=8.34629e-05 max=0.0415992 - Delta Ekin [MeV] : min=0 mean=0.00168232 max=2.58651 + decay T [ns] : min=1.45798e-05 mean=0.130658 max=1.43211 + decay R [mm] : min=0.00437064 mean=39.1678 max=429.309 + decay X [mm] : min=0.00437064 mean=39.1678 max=429.309 + decay Y [mm] : min=-0.0142573 mean=5.24976e-06 max=0.027056 + decay Z [mm] : min=-0.0143172 mean=2.15792e-06 max=0.0369701 + Delta decay R [mm] : min=-5.68434e-14 mean=1.98133e-09 max=4.72158e-06 + deflection angle [deg] : min=0 mean=9.22561e-05 max=0.0452115 + Delta Ekin [MeV] : min=0 mean=0.00177381 max=3.05521 decay Ekin [GeV] : min=499.997 mean=500 max=500 - decay Px [GeV] : min=505.586 mean=505.588 max=505.588 - decay Py [GeV] : min=-0.166228 mean=3.35139e-05 max=0.314564 - decay Pz [GeV] : min=-0.147977 mean=0.000108989 max=0.228189 - decay Etot violation [MeV] : min=-1.58255e-06 mean=-3.77658e-07 max=9.86969e-07 - decay Px violation [MeV] : min=-1.58243e-06 mean=-3.77559e-07 max=9.87027e-07 - decay Py violation [MeV] : min=-4.26951e-10 mean=-1.82849e-14 max=1.29646e-10 - decay Pz violation [MeV] : min=-2.57018e-10 mean=-5.22964e-15 max=2.15238e-10 + decay Px [GeV] : min=505.585 mean=505.588 max=505.588 + decay Py [GeV] : min=-0.15622 mean=4.63957e-06 max=0.197718 + decay Pz [GeV] : min=-0.205552 mean=1.54942e-05 max=0.37831 + decay Etot violation [MeV] : min=-1.67341e-06 mean=-3.70403e-07 max=9.04605e-07 + decay Px violation [MeV] : min=-1.67341e-06 mean=-3.70304e-07 max=9.04605e-07 + decay Py violation [MeV] : min=-1.50294e-10 mean=1.59145e-15 max=2.28852e-10 + decay Pz violation [MeV] : min=-3.32022e-10 mean=-4.88054e-14 max=2.54289e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 1.63709e-05 , 0.0112004 (mean=0.00306348) + maxMass_deltaMax{1,2,3} [eV] = 0 , 1.63709e-05 , 0.0139153 (mean=0.00306123) maxBeta_deltaMax{1,2} = 1.11022e-16 , 3.33067e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.04535e-10 , 1.04535e-10 + maxGamma_deltaMax{1,2,3} = 0 , 9.21574e-11 , 9.21574e-11 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -0.0587036 (mean=-5.39859e-05) (#above threshold = 0) - maxOverestimated_mc_truth_rPos_delta [mum] = 0.138146 (mean=0.000107106) (#above threshold = 0) - minUnderestimated_rDeltaPos [mum] = -0.0565641 (mean=-5.23889e-05) (#above threshold = 0) - maxOverestimated_rDeltaPos [mum] = 0.140286 (mean=0.000108703) (#above threshold = 0) + minUnderestimated_mc_truth_rPos_delta [mum] = -0.130756 (mean=-6.59794e-05) (#above threshold = 0) + maxOverestimated_mc_truth_rPos_delta [mum] = 0.298549 (mean=0.000130779) (#above threshold = 0) + minUnderestimated_rDeltaPos [mum] = -0.126035 (mean=-6.39981e-05) (#above threshold = 0) + maxOverestimated_rDeltaPos [mum] = 0.303271 (mean=0.00013276) (#above threshold = 0) --- float instead of double --- fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0610352 ============================================= @@ -2490,20 +2541,20 @@ Index : 1 used in the geometry : Yes ### Run 26 starts. ### Run 26 starts. - Event#=0 t[ns]=0.112192 r[mm]=33.6321 deltaR[mum]=-7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=1000 t[ns]=0.0905034 r[mm]=27.1304 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=2000 t[ns]=0.0496211 r[mm]=14.8751 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=3000 t[ns]=0.066849 r[mm]=20.0395 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=4000 t[ns]=0.0373722 r[mm]=11.2032 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=5000 t[ns]=0.178561 r[mm]=53.5278 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=6000 t[ns]=0.0125036 r[mm]=3.74824 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=7000 t[ns]=0.0103228 r[mm]=3.09448 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=8000 t[ns]=0.112971 r[mm]=33.8657 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=9000 t[ns]=0.233929 r[mm]=70.1256 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=0 t[ns]=0.126221 r[mm]=37.8376 deltaR[mum]=-7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=1000 t[ns]=0.119524 r[mm]=35.8301 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=2000 t[ns]=0.042509 r[mm]=12.743 deltaR[mum]=-1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=3000 t[ns]=0.0501502 r[mm]=15.0337 deltaR[mum]=-1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=4000 t[ns]=0.291081 r[mm]=87.2582 deltaR[mum]=-1.42109e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=5000 t[ns]=0.0424317 r[mm]=12.7199 deltaR[mum]=1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=6000 t[ns]=0.0178224 r[mm]=5.34268 deltaR[mum]=8.88178e-13 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=7000 t[ns]=0.150824 r[mm]=45.213 deltaR[mum]=-7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=8000 t[ns]=0.21015 r[mm]=62.9974 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=9000 t[ns]=0.226146 r[mm]=67.7923 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 Run terminated. Run Summary Number of events processed : 10000 - User=0.220000s Real=0.364506s Sys=0.000000s + User=0.240000s Real=0.241473s Sys=0.000000s ============ Run::printInfo() =============== RunID = 26 @@ -2520,45 +2571,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9814 + # Decays = 9804 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=1.93834e-05 mean=0.128779 max=1.30217 - decay R [mm] : min=0.00581061 mean=38.6043 max=390.354 - decay X [mm] : min=0.00581061 mean=38.6043 max=390.354 - decay Y [mm] : min=-0.0227143 mean=-2.60052e-06 max=0.0101444 - decay Z [mm] : min=-0.0204277 mean=7.75738e-06 max=0.035892 - Delta decay R [mm] : min=-5.68434e-14 mean=1.22112e-09 max=7.3526e-07 - deflection angle [deg] : min=0 mean=6.64338e-05 max=0.0188719 - Delta Ekin [MeV] : min=0 mean=0.00109276 max=0.532683 - decay Ekin [GeV] : min=499.999 mean=500 max=500 + decay T [ns] : min=3.49867e-06 mean=0.128299 max=1.26003 + decay R [mm] : min=0.00104881 mean=38.4606 max=377.723 + decay X [mm] : min=0.00104881 mean=38.4606 max=377.723 + decay Y [mm] : min=-0.0199209 mean=7.29069e-07 max=0.0185286 + decay Z [mm] : min=-0.0296278 mean=-1.28092e-05 max=0.00906999 + Delta decay R [mm] : min=-5.68434e-14 mean=9.97579e-10 max=7.546e-07 + deflection angle [deg] : min=0 mean=6.2973e-05 max=0.0177587 + Delta Ekin [MeV] : min=0 mean=0.000982814 max=0.471691 + decay Ekin [GeV] : min=500 mean=500 max=500 decay Px [GeV] : min=505.758 mean=505.759 max=505.759 - decay Py [GeV] : min=-0.138353 mean=-2.61001e-05 max=0.117991 - decay Pz [GeV] : min=-0.148035 mean=5.46365e-05 max=0.154412 - decay Etot violation [MeV] : min=-5.88247e-07 mean=6.31503e-07 max=1.94699e-06 - decay Px violation [MeV] : min=-5.8813e-07 mean=6.31529e-07 max=1.9471e-06 - decay Py violation [MeV] : min=-3.85484e-10 mean=-7.12159e-15 max=4.26724e-10 - decay Pz violation [MeV] : min=-4.40423e-10 mean=1.47328e-13 max=5.87704e-10 + decay Py [GeV] : min=-0.146452 mean=-1.10014e-05 max=0.118881 + decay Pz [GeV] : min=-0.13424 mean=-0.00011896 max=0.10499 + decay Etot violation [MeV] : min=-2.2247e-07 mean=6.21593e-07 max=1.97534e-06 + decay Px violation [MeV] : min=-2.22528e-07 mean=6.21619e-07 max=1.97522e-06 + decay Py violation [MeV] : min=-3.851e-10 mean=-6.95654e-14 max=2.68329e-10 + decay Pz violation [MeV] : min=-3.5044e-10 mean=-1.46894e-13 max=2.95259e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 2.36469e-05 , 0.011908 (mean=0.00138964) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 2.22045e-16 - maxGamma_deltaMax{1,2,3} = 0 , 9.92912e-11 , 9.92912e-11 + maxMass_deltaMax{1,2,3} [eV] = 0 , 2.36469e-05 , 0.0145428 (mean=0.00139478) + maxBeta_deltaMax{1,2} = 1.11022e-16 , 3.33067e-16 + maxGamma_deltaMax{1,2,3} = 0 , 9.12195e-11 , 9.12195e-11 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 - maxMc_truth_rPos_deltaMax [mum] = 5.68434e-11 (mean=4.23027e-12) (# above threshold = 0) + maxMc_truth_rPos_deltaMax [mum] = 5.68434e-11 (mean=4.24548e-12) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -0.0189354 (mean=-3.93895e-05) (#above threshold = 0) - maxOverestimated_mc_truth_rPos_delta [mum] = 0.0779305 (mean=8.8514e-05) (#above threshold = 0) - minUnderestimated_rDeltaPos [mum] = -0.0182001 (mean=-3.81683e-05) (#above threshold = 0) - maxOverestimated_rDeltaPos [mum] = 0.0784447 (mean=8.97351e-05) (#above threshold = 0) + minUnderestimated_mc_truth_rPos_delta [mum] = -0.0182625 (mean=-3.38286e-05) (#above threshold = 0) + maxOverestimated_mc_truth_rPos_delta [mum] = 0.0734022 (mean=7.52554e-05) (#above threshold = 0) + minUnderestimated_rDeltaPos [mum] = -0.0175079 (mean=-3.2831e-05) (#above threshold = 0) + maxOverestimated_rDeltaPos [mum] = 0.07368 (mean=7.6253e-05) (#above threshold = 0) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0305176 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0305281 ============================================= @@ -2582,20 +2633,20 @@ Index : 1 used in the geometry : Yes ### Run 27 starts. ### Run 27 starts. - Event#=0 t[ns]=0.0432049 r[mm]=12.9516 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=1000 t[ns]=0.172704 r[mm]=51.7718 deltaR[mum]=-7.10543e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=2000 t[ns]=0.121187 r[mm]=36.3287 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=3000 t[ns]=0.0252893 r[mm]=7.58104 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=4000 t[ns]=0.0549635 r[mm]=16.4765 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=5000 t[ns]=0.0173834 r[mm]=5.21108 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=6000 t[ns]=0.0463836 r[mm]=13.9045 deltaR[mum]=-1.77636e-12 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=7000 t[ns]=0.301755 r[mm]=90.4578 deltaR[mum]=1.42109e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=8000 t[ns]=0.0662705 r[mm]=19.8661 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 - Event#=9000 t[ns]=0.292467 r[mm]=87.6738 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=0 t[ns]=0.0436933 r[mm]=13.0981 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=1000 t[ns]=0.00286099 r[mm]=0.857646 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=2000 t[ns]=0.430888 r[mm]=129.169 deltaR[mum]=-2.84217e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=3000 t[ns]=0.226138 r[mm]=67.79 deltaR[mum]=1.42109e-11 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=4000 t[ns]=0.303704 r[mm]=91.0423 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=5000 t[ns]=0.0233388 r[mm]=6.99635 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=6000 t[ns]=0.0672161 r[mm]=20.1496 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=7000 t[ns]=0.0430155 r[mm]=12.8949 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=8000 t[ns]=0.0206292 r[mm]=6.18409 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 + Event#=9000 t[ns]=0.00940987 r[mm]=2.82082 deltaR[mum]=0 deltaEkin[MeV]=0 deltaAngle(deg)=0 Run terminated. Run Summary Number of events processed : 10000 - User=0.250000s Real=0.451234s Sys=0.000000s + User=0.260000s Real=0.255108s Sys=0.000000s ============ Run::printInfo() =============== RunID = 27 @@ -2612,43 +2663,43 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9786 + # Decays = 9790 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=3.78931e-06 mean=0.128796 max=1.33258 - decay R [mm] : min=0.00113593 mean=38.6095 max=399.471 - decay X [mm] : min=0.00113593 mean=38.6095 max=399.471 - decay Y [mm] : min=-0.0140506 mean=-1.57837e-06 max=0.0106168 - decay Z [mm] : min=-0.0107867 mean=8.77462e-06 max=0.0140725 - Delta decay R [mm] : min=-5.68434e-14 mean=1.04703e-09 max=8.45212e-07 - deflection angle [deg] : min=0 mean=6.83804e-05 max=0.0255093 - Delta Ekin [MeV] : min=0 mean=0.00122975 max=0.973273 - decay Ekin [GeV] : min=499.999 mean=500 max=500 - decay Px [GeV] : min=505.758 mean=505.759 max=505.759 - decay Py [GeV] : min=-0.115468 mean=9.16847e-08 max=0.135628 - decay Pz [GeV] : min=-0.155991 mean=6.2627e-05 max=0.179774 - decay Etot violation [MeV] : min=-1.94297e-07 mean=6.24061e-07 max=2.01201e-06 - decay Px violation [MeV] : min=-1.94355e-07 mean=6.24086e-07 max=2.01195e-06 - decay Py violation [MeV] : min=-1.99904e-10 mean=5.54261e-14 max=2.94364e-10 - decay Pz violation [MeV] : min=-4.88029e-10 mean=1.29095e-14 max=3.9023e-10 + decay T [ns] : min=3.72375e-05 mean=0.12765 max=1.03999 + decay R [mm] : min=0.0111628 mean=38.2659 max=311.762 + decay X [mm] : min=0.0111628 mean=38.2659 max=311.762 + decay Y [mm] : min=-0.0217671 mean=2.71628e-05 max=0.0454059 + decay Z [mm] : min=-0.0284058 mean=-1.40604e-05 max=0.0130691 + Delta decay R [mm] : min=-5.68434e-14 mean=1.58102e-09 max=2.40864e-06 + deflection angle [deg] : min=0 mean=6.83976e-05 max=0.0335834 + Delta Ekin [MeV] : min=0 mean=0.0012713 max=1.68689 + decay Ekin [GeV] : min=499.998 mean=500 max=500 + decay Px [GeV] : min=505.757 mean=505.759 max=505.759 + decay Py [GeV] : min=-0.0774814 mean=0.000217124 max=0.251589 + decay Pz [GeV] : min=-0.162717 mean=-0.00014645 max=0.16215 + decay Etot violation [MeV] : min=-2.71772e-07 mean=6.21976e-07 max=2.00293e-06 + decay Px violation [MeV] : min=-2.71713e-07 mean=6.22001e-07 max=2.00298e-06 + decay Py violation [MeV] : min=-2.40568e-10 mean=2.96374e-13 max=7.24469e-10 + decay Pz violation [MeV] : min=-2.44761e-10 mean=-1.41945e-13 max=3.2216e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 2.36469e-05 , 0.011908 (mean=0.00138566) + maxMass_deltaMax{1,2,3} [eV] = 0 , 2.36469e-05 , 0.0145428 (mean=0.00139513) maxBeta_deltaMax{1,2} = 1.11022e-16 , 3.33067e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.11086e-10 , 1.11086e-10 + maxGamma_deltaMax{1,2,3} = 0 , 8.01919e-11 , 8.01919e-11 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 - maxMc_truth_rPos_deltaMax [mum] = 1.13687e-10 (mean=4.27757e-12) (# above threshold = 0) + maxMc_truth_rPos_deltaMax [mum] = 1.13687e-10 (mean=4.21527e-12) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -0.0275285 (mean=-4.2326e-05) (#above threshold = 0) - maxOverestimated_mc_truth_rPos_delta [mum] = 0.0761816 (mean=6.39243e-05) (#above threshold = 0) - minUnderestimated_rDeltaPos [mum] = -0.0273884 (mean=-4.1279e-05) (#above threshold = 0) - maxOverestimated_rDeltaPos [mum] = 0.0770268 (mean=6.49713e-05) (#above threshold = 0) + minUnderestimated_mc_truth_rPos_delta [mum] = -0.0566797 (mean=-4.71894e-05) (#above threshold = 0) + maxOverestimated_mc_truth_rPos_delta [mum] = 0.248386 (mean=0.000118583) (#above threshold = 0) + minUnderestimated_rDeltaPos [mum] = -0.0542711 (mean=-4.56084e-05) (#above threshold = 0) + maxOverestimated_rDeltaPos [mum] = 0.250795 (mean=0.000120164) (#above threshold = 0) --- float instead of double --- fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0305176 ============================================= @@ -2674,20 +2725,20 @@ Index : 1 used in the geometry : Yes ### Run 28 starts. ### Run 28 starts. - Event#=0 t[ns]=0.00785693 r[mm]=2.3553 deltaR[mum]=3.06155e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000319932 - Event#=1000 t[ns]=0.32884 r[mm]=98.5774 deltaR[mum]=0.000324852 deltaEkin[MeV]=6.78886 deltaAngle(deg)=0.014202 - Event#=2000 t[ns]=0.176101 r[mm]=52.7904 deltaR[mum]=9.55368e-05 deltaEkin[MeV]=7.79668 deltaAngle(deg)=0.00820883 - Event#=3000 t[ns]=0.0222034 r[mm]=6.65596 deltaR[mum]=6.90701e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000904117 - Event#=4000 t[ns]=0.0331552 r[mm]=9.93903 deltaR[mum]=2.56849e-07 deltaEkin[MeV]=0.272124 deltaAngle(deg)=0.00137215 - Event#=5000 t[ns]=0.0540416 r[mm]=16.2002 deltaR[mum]=8.68393e-07 deltaEkin[MeV]=2.20534 deltaAngle(deg)=0.00168327 - Event#=6000 t[ns]=0.16363 r[mm]=49.052 deltaR[mum]=0.000178494 deltaEkin[MeV]=23.126 deltaAngle(deg)=0.00639688 - Event#=7000 t[ns]=0.152594 r[mm]=45.7436 deltaR[mum]=5.32942e-05 deltaEkin[MeV]=6.7995 deltaAngle(deg)=0.00716592 - Event#=8000 t[ns]=0.0800421 r[mm]=23.9944 deltaR[mum]=8.19599e-06 deltaEkin[MeV]=5.48676 deltaAngle(deg)=0.00314691 - Event#=9000 t[ns]=0.164889 r[mm]=49.4292 deltaR[mum]=6.08774e-05 deltaEkin[MeV]=7.28644 deltaAngle(deg)=0.00713134 + Event#=0 t[ns]=0.166103 r[mm]=49.7931 deltaR[mum]=8.05752e-05 deltaEkin[MeV]=8.57218 deltaAngle(deg)=0.00671355 + Event#=1000 t[ns]=0.322161 r[mm]=96.5751 deltaR[mum]=0.000365652 deltaEkin[MeV]=9.93107 deltaAngle(deg)=0.0130483 + Event#=2000 t[ns]=0.123351 r[mm]=36.9773 deltaR[mum]=4.31269e-05 deltaEkin[MeV]=10.8043 deltaAngle(deg)=0.00452246 + Event#=3000 t[ns]=0.118572 r[mm]=35.5447 deltaR[mum]=2.29046e-05 deltaEkin[MeV]=7.11632 deltaAngle(deg)=0.00570978 + Event#=4000 t[ns]=0.0104284 r[mm]=3.12616 deltaR[mum]=7.15739e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000424645 + Event#=5000 t[ns]=0.413278 r[mm]=123.89 deltaR[mum]=0.000606783 deltaEkin[MeV]=6.74837 deltaAngle(deg)=0.0171868 + Event#=6000 t[ns]=0.0748683 r[mm]=22.4435 deltaR[mum]=1.93786e-06 deltaEkin[MeV]=4.36124 deltaAngle(deg)=0.0020763 + Event#=7000 t[ns]=0.214028 r[mm]=64.1599 deltaR[mum]=0.000119699 deltaEkin[MeV]=7.25932 deltaAngle(deg)=0.00857502 + Event#=8000 t[ns]=0.0367839 r[mm]=11.0268 deltaR[mum]=8.71118e-07 deltaEkin[MeV]=3.16786 deltaAngle(deg)=0.0017387 + Event#=9000 t[ns]=0.110567 r[mm]=33.145 deltaR[mum]=1.36148e-05 deltaEkin[MeV]=8.22801 deltaAngle(deg)=0.00315717 Run terminated. Run Summary Number of events processed : 10000 - User=0.410000s Real=0.418574s Sys=0.000000s + User=0.380000s Real=0.390187s Sys=0.000000s ============ Run::printInfo() =============== RunID = 28 @@ -2704,45 +2755,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9773 + # Decays = 9802 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=3.53096e-08 mean=0.138141 max=1.15826 - decay R [mm] : min=1.05849e-05 mean=41.411 max=347.215 - decay X [mm] : min=1.05849e-05 mean=41.411 max=347.215 - decay Y [mm] : min=-0.0057637 mean=0.00445581 max=0.151239 - decay Z [mm] : min=-0.0331643 mean=-3.11847e-06 max=0.0172479 - Delta decay R [mm] : min=3.38813e-21 mean=1.57916e-07 max=1.31817e-05 - deflection angle [deg] : min=0 mean=0.00567617 max=0.0486465 - Delta Ekin [MeV] : min=0 mean=6.43447 max=2578.45 - decay Ekin [GeV] : min=497.422 mean=499.994 max=500 - decay Px [GeV] : min=503.183 mean=505.755 max=505.761 - decay Py [GeV] : min=-0.0949269 mean=0.0495476 max=0.429401 - decay Pz [GeV] : min=-0.179684 mean=5.06843e-05 max=0.167874 - decay Etot violation [MeV] : min=-1.86986e-06 mean=-7.24258e-08 max=1.82533e-06 - decay Px violation [MeV] : min=-1.8698e-06 mean=-7.24269e-08 max=1.82528e-06 - decay Py violation [MeV] : min=-6.24595e-10 mean=-8.03078e-12 max=5.51836e-10 - decay Pz violation [MeV] : min=-1.16131e-10 mean=-9.99645e-15 max=1.96565e-10 + decay T [ns] : min=7.26229e-06 mean=0.135977 max=1.2496 + decay R [mm] : min=0.00217704 mean=40.7623 max=374.597 + decay X [mm] : min=0.00217704 mean=40.7623 max=374.597 + decay Y [mm] : min=-0.00748463 mean=0.00428027 max=0.164719 + decay Z [mm] : min=-0.0307058 mean=7.50858e-06 max=0.0279098 + Delta decay R [mm] : min=0 mean=1.46548e-07 max=1.32023e-05 + deflection angle [deg] : min=8.53688e-07 mean=0.00561769 max=0.0505962 + Delta Ekin [MeV] : min=0 mean=6.28952 max=1595.47 + decay Ekin [GeV] : min=498.405 mean=499.994 max=500 + decay Px [GeV] : min=504.166 mean=505.755 max=505.761 + decay Py [GeV] : min=-0.126564 mean=0.0489903 max=0.446644 + decay Pz [GeV] : min=-0.228978 mean=0.000160481 max=0.252446 + decay Etot violation [MeV] : min=-2.07347e-06 mean=-7.97863e-08 max=2.13186e-06 + decay Px violation [MeV] : min=-2.07353e-06 mean=-7.97871e-08 max=2.13191e-06 + decay Py violation [MeV] : min=-6.3136e-10 mean=-8.42339e-12 max=6.36987e-10 + decay Pz violation [MeV] : min=-2.47852e-10 mean=1.21137e-13 max=5.28189e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 0 , 0.0184336 (mean=0.00345132) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 5.55112e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.19257e-10 , 1.19257e-10 + maxMass_deltaMax{1,2,3} [eV] = 0 , 0 , 0.0157997 (mean=0.00351339) + maxBeta_deltaMax{1,2} = 3.33067e-16 , 4.44089e-16 + maxGamma_deltaMax{1,2,3} = 0 , 1.18476e-10 , 1.18476e-10 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -114.505 (mean=-0.296108) (#above threshold = 122) - maxOverestimated_mc_truth_rPos_delta [mum] = 97.2764 (mean=0.449951) (#above threshold = 1275) - minUnderestimated_rDeltaPos [mum] = -114.503 (mean=-0.29595) (#above threshold = 122) - maxOverestimated_rDeltaPos [mum] = 97.2895 (mean=0.450109) (#above threshold = 1276) + minUnderestimated_mc_truth_rPos_delta [mum] = -44.9522 (mean=-0.287581) (#above threshold = 135) + maxOverestimated_mc_truth_rPos_delta [mum] = 99.5468 (mean=0.427837) (#above threshold = 1269) + minUnderestimated_rDeltaPos [mum] = -44.9485 (mean=-0.287435) (#above threshold = 135) + maxOverestimated_rDeltaPos [mum] = 99.56 (mean=0.427983) (#above threshold = 1269) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0386569 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0382049 ============================================= @@ -2766,20 +2817,20 @@ Index : 1 used in the geometry : Yes ### Run 29 starts. ### Run 29 starts. - Event#=0 t[ns]=0.137902 r[mm]=41.3393 deltaR[mum]=4.38994e-05 deltaEkin[MeV]=7.47742 deltaAngle(deg)=0.00683087 - Event#=1000 t[ns]=0.107131 r[mm]=32.1151 deltaR[mum]=1.16974e-05 deltaEkin[MeV]=7.35531 deltaAngle(deg)=0.0040856 - Event#=2000 t[ns]=0.274372 r[mm]=82.2494 deltaR[mum]=0.000417652 deltaEkin[MeV]=19.2077 deltaAngle(deg)=0.0109502 - Event#=3000 t[ns]=0.150441 r[mm]=45.0982 deltaR[mum]=5.90709e-05 deltaEkin[MeV]=7.67604 deltaAngle(deg)=0.00625371 - Event#=4000 t[ns]=0.00198504 r[mm]=0.59506 deltaR[mum]=4.92939e-11 deltaEkin[MeV]=0 deltaAngle(deg)=8.08303e-05 - Event#=5000 t[ns]=0.038005 r[mm]=11.3929 deltaR[mum]=3.84436e-07 deltaEkin[MeV]=0.84926 deltaAngle(deg)=0.00123782 - Event#=6000 t[ns]=0.0523952 r[mm]=15.7066 deltaR[mum]=8.0948e-07 deltaEkin[MeV]=2.6039 deltaAngle(deg)=0.0022347 - Event#=7000 t[ns]=0.00699385 r[mm]=2.09656 deltaR[mum]=2.15872e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000284789 - Event#=8000 t[ns]=0.183429 r[mm]=54.9871 deltaR[mum]=8.81302e-05 deltaEkin[MeV]=7.44524 deltaAngle(deg)=0.007086 - Event#=9000 t[ns]=0.0162549 r[mm]=4.87278 deltaR[mum]=2.7101e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000661897 + Event#=0 t[ns]=0.193041 r[mm]=57.8685 deltaR[mum]=7.53599e-05 deltaEkin[MeV]=6.71401 deltaAngle(deg)=0.00718376 + Event#=1000 t[ns]=0.0547559 r[mm]=16.4143 deltaR[mum]=8.94875e-07 deltaEkin[MeV]=2.76055 deltaAngle(deg)=0.00242183 + Event#=2000 t[ns]=0.00964354 r[mm]=2.89087 deltaR[mum]=5.65903e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000392683 + Event#=3000 t[ns]=0.0150341 r[mm]=4.50682 deltaR[mum]=2.14415e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000612186 + Event#=4000 t[ns]=0.0466067 r[mm]=13.9714 deltaR[mum]=6.22579e-07 deltaEkin[MeV]=2.26437 deltaAngle(deg)=0.00175896 + Event#=5000 t[ns]=0.113531 r[mm]=34.0334 deltaR[mum]=1.78573e-05 deltaEkin[MeV]=6.9509 deltaAngle(deg)=0.00522354 + Event#=6000 t[ns]=0.259313 r[mm]=77.735 deltaR[mum]=0.000254538 deltaEkin[MeV]=11.4215 deltaAngle(deg)=0.0100775 + Event#=7000 t[ns]=0.0185546 r[mm]=5.56216 deltaR[mum]=4.03091e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.00075554 + Event#=8000 t[ns]=0.0173464 r[mm]=5.19998 deltaR[mum]=3.29354e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000706343 + Event#=9000 t[ns]=0.18117 r[mm]=54.3099 deltaR[mum]=8.50129e-05 deltaEkin[MeV]=6.97656 deltaAngle(deg)=0.00799353 Run terminated. Run Summary Number of events processed : 10000 - User=0.390000s Real=0.401119s Sys=0.000000s + User=0.390000s Real=0.395195s Sys=0.000000s ============ Run::printInfo() =============== RunID = 29 @@ -2801,40 +2852,40 @@ Run Summary (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=1.71585e-06 mean=0.134144 max=1.14407 - decay R [mm] : min=0.000514366 mean=40.2126 max=342.962 - decay X [mm] : min=0.000514366 mean=40.2126 max=342.962 - decay Y [mm] : min=-0.144025 mean=-0.00419421 max=0.0107079 - decay Z [mm] : min=-0.0140403 mean=1.84844e-06 max=0.0224891 - Delta decay R [mm] : min=-1.73472e-18 mean=1.46307e-07 max=1.63134e-05 - deflection angle [deg] : min=8.53688e-07 mean=0.00552879 max=0.0472785 - Delta Ekin [MeV] : min=0 mean=6.52211 max=3389.23 - decay Ekin [GeV] : min=496.611 mean=499.993 max=500 - decay Px [GeV] : min=502.372 mean=505.755 max=505.761 - decay Py [GeV] : min=-0.417345 mean=-0.0482422 max=0.10523 - decay Pz [GeV] : min=-0.192462 mean=-4.71925e-05 max=0.164106 - decay Etot violation [MeV] : min=-1.9244e-06 mean=-7.81117e-08 max=1.71759e-06 - decay Px violation [MeV] : min=-1.92452e-06 mean=-7.81111e-08 max=1.71777e-06 - decay Py violation [MeV] : min=-5.13126e-10 mean=8.90853e-12 max=6.807e-10 - decay Pz violation [MeV] : min=-2.73047e-10 mean=6.55751e-14 max=2.97632e-10 + decay T [ns] : min=5.72753e-06 mean=0.135529 max=1.09202 + decay R [mm] : min=0.00171696 mean=40.6279 max=327.357 + decay X [mm] : min=0.00171696 mean=40.6279 max=327.357 + decay Y [mm] : min=-0.162159 mean=-0.00423753 max=0.00548315 + decay Z [mm] : min=-0.0214771 mean=1.80212e-05 max=0.0488485 + Delta decay R [mm] : min=4.33681e-19 mean=1.5499e-07 max=3.79e-05 + deflection angle [deg] : min=0 mean=0.0055821 max=0.0583352 + Delta Ekin [MeV] : min=0 mean=6.69442 max=1904.91 + decay Ekin [GeV] : min=498.095 mean=499.993 max=500 + decay Px [GeV] : min=503.856 mean=505.755 max=505.761 + decay Py [GeV] : min=-0.45929 mean=-0.0486673 max=0.0833088 + decay Pz [GeV] : min=-0.149572 mean=0.000180526 max=0.428862 + decay Etot violation [MeV] : min=-1.8258e-06 mean=-7.28524e-08 max=1.8006e-06 + decay Px violation [MeV] : min=-1.82568e-06 mean=-7.28513e-08 max=1.80071e-06 + decay Py violation [MeV] : min=-7.2248e-10 mean=7.46736e-12 max=5.83668e-10 + decay Pz violation [MeV] : min=-1.65073e-10 mean=-5.08311e-14 max=2.87372e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 0 , 0.0157997 (mean=0.00342567) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 3.33067e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.166e-10 , 1.166e-10 + maxMass_deltaMax{1,2,3} [eV] = 0 , 0 , 0.0157997 (mean=0.00345608) + maxBeta_deltaMax{1,2} = 3.33067e-16 , 4.44089e-16 + maxGamma_deltaMax{1,2,3} = 0 , 1.18746e-10 , 1.18746e-10 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 maxMc_truth_rPos_deltaMax [mum] = 0 (mean=0) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -116.049 (mean=-0.297964) (#above threshold = 132) - maxOverestimated_mc_truth_rPos_delta [mum] = 123.363 (mean=0.452228) (#above threshold = 1166) - minUnderestimated_rDeltaPos [mum] = -116.032 (mean=-0.297817) (#above threshold = 132) - maxOverestimated_rDeltaPos [mum] = 123.379 (mean=0.452374) (#above threshold = 1166) + minUnderestimated_mc_truth_rPos_delta [mum] = -106.685 (mean=-0.304464) (#above threshold = 143) + maxOverestimated_mc_truth_rPos_delta [mum] = 272.2 (mean=0.505937) (#above threshold = 1248) + minUnderestimated_rDeltaPos [mum] = -106.66 (mean=-0.304309) (#above threshold = 143) + maxOverestimated_rDeltaPos [mum] = 272.238 (mean=0.506092) (#above threshold = 1248) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0405849 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0522973 ============================================= @@ -2858,20 +2909,20 @@ Index : 1 used in the geometry : Yes ### Run 30 starts. ### Run 30 starts. - Event#=0 t[ns]=0.0999288 r[mm]=29.9558 deltaR[mum]=1.4524e-05 deltaEkin[MeV]=7.17056 deltaAngle(deg)=0.00545063 - Event#=1000 t[ns]=1.09268 r[mm]=327.553 deltaR[mum]=0.00904742 deltaEkin[MeV]=9.63413 deltaAngle(deg)=0.044604 - Event#=2000 t[ns]=0.00114913 r[mm]=0.344476 deltaR[mum]=9.54792e-12 deltaEkin[MeV]=0 deltaAngle(deg)=4.67662e-05 - Event#=3000 t[ns]=0.0714758 r[mm]=21.4264 deltaR[mum]=1.71271e-06 deltaEkin[MeV]=4.49493 deltaAngle(deg)=0.00220193 - Event#=4000 t[ns]=0.116855 r[mm]=35.0299 deltaR[mum]=1.92987e-05 deltaEkin[MeV]=6.7624 deltaAngle(deg)=0.00466511 - Event#=5000 t[ns]=0.074202 r[mm]=22.2436 deltaR[mum]=1.89031e-06 deltaEkin[MeV]=4.26299 deltaAngle(deg)=0.00338956 - Event#=6000 t[ns]=0.153814 r[mm]=46.1091 deltaR[mum]=6.07941e-05 deltaEkin[MeV]=8.90849 deltaAngle(deg)=0.00509871 - Event#=7000 t[ns]=0.0111973 r[mm]=3.35662 deltaR[mum]=8.84981e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000455724 - Event#=8000 t[ns]=0.0190264 r[mm]=5.70358 deltaR[mum]=4.34177e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000774369 - Event#=9000 t[ns]=0.509545 r[mm]=152.747 deltaR[mum]=0.0011263 deltaEkin[MeV]=7.83073 deltaAngle(deg)=0.0209893 + Event#=0 t[ns]=0.0097347 r[mm]=2.91818 deltaR[mum]=5.81446e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000396197 + Event#=1000 t[ns]=0.335949 r[mm]=100.708 deltaR[mum]=0.00432746 deltaEkin[MeV]=192.197 deltaAngle(deg)=0.0132371 + Event#=2000 t[ns]=0.315354 r[mm]=94.5341 deltaR[mum]=0.000368311 deltaEkin[MeV]=10.2845 deltaAngle(deg)=0.013093 + Event#=3000 t[ns]=0.0522126 r[mm]=15.6518 deltaR[mum]=8.02315e-07 deltaEkin[MeV]=2.08555 deltaAngle(deg)=0.00163448 + Event#=4000 t[ns]=0.0223676 r[mm]=6.70515 deltaR[mum]=7.05418e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.00091035 + Event#=5000 t[ns]=0.256084 r[mm]=76.7665 deltaR[mum]=0.000148395 deltaEkin[MeV]=6.7029 deltaAngle(deg)=0.00965665 + Event#=6000 t[ns]=0.239772 r[mm]=71.8768 deltaR[mum]=0.000295207 deltaEkin[MeV]=16.4508 deltaAngle(deg)=0.0101379 + Event#=7000 t[ns]=0.365767 r[mm]=109.646 deltaR[mum]=0.000876461 deltaEkin[MeV]=24.1487 deltaAngle(deg)=0.0129287 + Event#=8000 t[ns]=0.0694479 r[mm]=20.8185 deltaR[mum]=4.19055e-06 deltaEkin[MeV]=4.35824 deltaAngle(deg)=0.00251908 + Event#=9000 t[ns]=0.0852366 r[mm]=25.5515 deltaR[mum]=2.76759e-06 deltaEkin[MeV]=5.55515 deltaAngle(deg)=0.00347243 Run terminated. Run Summary Number of events processed : 10000 - User=0.350000s Real=0.355727s Sys=0.000000s + User=0.370000s Real=0.374331s Sys=0.000000s ============ Run::printInfo() =============== RunID = 30 @@ -2888,45 +2939,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9838 + # Decays = 9806 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=4.31639e-06 mean=0.136759 max=1.20257 - decay R [mm] : min=0.00129393 mean=40.9964 max=360.494 - decay X [mm] : min=0.00129393 mean=40.9964 max=360.494 - decay Y [mm] : min=-0.0209275 mean=0.00437069 max=0.156584 - decay Z [mm] : min=-0.0209209 mean=-9.10008e-06 max=0.0272621 - Delta decay R [mm] : min=0 mean=1.55742e-07 max=1.16692e-05 - deflection angle [deg] : min=0 mean=0.00561548 max=0.0493932 - Delta Ekin [MeV] : min=0 mean=6.13712 max=2625.03 - decay Ekin [GeV] : min=497.375 mean=499.994 max=500 - decay Px [GeV] : min=503.385 mean=506.004 max=506.01 - decay Py [GeV] : min=-0.371733 mean=0.0490591 max=0.436218 - decay Pz [GeV] : min=-0.158178 mean=-8.93152e-05 max=0.19094 - decay Etot violation [MeV] : min=-1.48593e-06 mean=1.49607e-07 max=1.89513e-06 - decay Px violation [MeV] : min=-1.48593e-06 mean=1.49589e-07 max=1.89513e-06 - decay Py violation [MeV] : min=-9.07846e-10 mean=9.78721e-12 max=5.54678e-10 - decay Pz violation [MeV] : min=-2.49116e-10 mean=1.15444e-13 max=1.85054e-10 + decay T [ns] : min=2.0428e-05 mean=0.136571 max=1.43843 + decay R [mm] : min=0.00612373 mean=40.9401 max=431.199 + decay X [mm] : min=0.00612373 mean=40.9401 max=431.199 + decay Y [mm] : min=-0.00349525 mean=0.00432628 max=0.2187 + decay Z [mm] : min=-0.00700105 mean=4.8534e-06 max=0.0133342 + Delta decay R [mm] : min=-3.46945e-18 mean=1.60951e-07 max=4.18381e-05 + deflection angle [deg] : min=0 mean=0.00560905 max=0.058315 + Delta Ekin [MeV] : min=0 mean=6.67888 max=2685.76 + decay Ekin [GeV] : min=497.314 mean=499.993 max=500 + decay Px [GeV] : min=503.324 mean=506.003 max=506.01 + decay Py [GeV] : min=-0.0490757 mean=0.0491551 max=0.515035 + decay Pz [GeV] : min=-0.0961724 mean=3.98715e-05 max=0.10923 + decay Etot violation [MeV] : min=-1.60007e-06 mean=1.49829e-07 max=1.82749e-06 + decay Px violation [MeV] : min=-1.60001e-06 mean=1.49815e-07 max=1.82737e-06 + decay Py violation [MeV] : min=-5.27621e-10 mean=1.09846e-11 max=6.50573e-10 + decay Pz violation [MeV] : min=-1.01885e-10 mean=5.36584e-14 max=1.09267e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 2.36469e-05 , 0.0183736 (mean=0.00440242) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.09253e-10 , 1.09253e-10 + maxMass_deltaMax{1,2,3} [eV] = 0 , 2.36469e-05 , 0.0183736 (mean=0.00441829) + maxBeta_deltaMax{1,2} = 3.33067e-16 , 5.55112e-16 + maxGamma_deltaMax{1,2,3} = 0 , 1.07491e-10 , 1.07491e-10 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 - maxMc_truth_rPos_deltaMax [mum] = 1.13687e-10 (mean=4.6311e-12) (# above threshold = 0) + maxMc_truth_rPos_deltaMax [mum] = 5.68434e-11 (mean=4.63054e-12) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -55.9377 (mean=-0.278975) (#above threshold = 105) - maxOverestimated_mc_truth_rPos_delta [mum] = 50.4515 (mean=0.426973) (#above threshold = 1271) - minUnderestimated_rDeltaPos [mum] = -55.9314 (mean=-0.278819) (#above threshold = 105) - maxOverestimated_rDeltaPos [mum] = 50.4588 (mean=0.427129) (#above threshold = 1271) + minUnderestimated_mc_truth_rPos_delta [mum] = -75.1879 (mean=-0.303631) (#above threshold = 139) + maxOverestimated_mc_truth_rPos_delta [mum] = 291.882 (mean=0.48114) (#above threshold = 1250) + minUnderestimated_rDeltaPos [mum] = -75.1461 (mean=-0.30347) (#above threshold = 139) + maxOverestimated_rDeltaPos [mum] = 291.923 (mean=0.481301) (#above threshold = 1251) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.055975 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0667572 ============================================= @@ -2950,20 +3001,20 @@ Index : 1 used in the geometry : Yes ### Run 31 starts. ### Run 31 starts. - Event#=0 t[ns]=0.00201399 r[mm]=0.603737 deltaR[mum]=5.15143e-11 deltaEkin[MeV]=0 deltaAngle(deg)=8.19673e-05 - Event#=1000 t[ns]=0.161444 r[mm]=48.3962 deltaR[mum]=5.82469e-05 deltaEkin[MeV]=6.87177 deltaAngle(deg)=0.00694975 - Event#=2000 t[ns]=0.230102 r[mm]=68.9781 deltaR[mum]=0.000138414 deltaEkin[MeV]=7.57481 deltaAngle(deg)=0.0098667 - Event#=3000 t[ns]=0.358242 r[mm]=107.391 deltaR[mum]=0.000400279 deltaEkin[MeV]=6.73686 deltaAngle(deg)=0.0142456 - Event#=4000 t[ns]=0.179291 r[mm]=53.7462 deltaR[mum]=8.72089e-05 deltaEkin[MeV]=7.54958 deltaAngle(deg)=0.00591304 - Event#=5000 t[ns]=0.0171671 r[mm]=5.14619 deltaR[mum]=3.18918e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000698692 - Event#=6000 t[ns]=0.395263 r[mm]=118.488 deltaR[mum]=0.000524644 deltaEkin[MeV]=6.97731 deltaAngle(deg)=0.015458 - Event#=7000 t[ns]=0.0197279 r[mm]=5.91384 deltaR[mum]=4.84004e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000802915 - Event#=8000 t[ns]=0.00741388 r[mm]=2.22247 deltaR[mum]=2.56906e-09 deltaEkin[MeV]=0 deltaAngle(deg)=0.000301742 - Event#=9000 t[ns]=0.207867 r[mm]=62.3126 deltaR[mum]=0.000111159 deltaEkin[MeV]=7.1344 deltaAngle(deg)=0.0090056 + Event#=0 t[ns]=0.0854444 r[mm]=25.6137 deltaR[mum]=2.85639e-06 deltaEkin[MeV]=16.3699 deltaAngle(deg)=0.00399136 + Event#=1000 t[ns]=0.427407 r[mm]=128.124 deltaR[mum]=0.00137002 deltaEkin[MeV]=26.5123 deltaAngle(deg)=0.0192569 + Event#=2000 t[ns]=0.242586 r[mm]=72.7202 deltaR[mum]=0.000134752 deltaEkin[MeV]=6.98589 deltaAngle(deg)=0.00901817 + Event#=3000 t[ns]=0.0238109 r[mm]=7.13783 deltaR[mum]=8.50999e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000969096 + Event#=4000 t[ns]=0.0222924 r[mm]=6.68263 deltaR[mum]=6.98348e-08 deltaEkin[MeV]=0 deltaAngle(deg)=0.000907293 + Event#=5000 t[ns]=0.123684 r[mm]=37.077 deltaR[mum]=2.60498e-05 deltaEkin[MeV]=6.5497 deltaAngle(deg)=0.00543878 + Event#=6000 t[ns]=0.110854 r[mm]=33.2308 deltaR[mum]=2.81568e-05 deltaEkin[MeV]=7.34354 deltaAngle(deg)=0.004789 + Event#=7000 t[ns]=0.119144 r[mm]=35.716 deltaR[mum]=4.78301e-05 deltaEkin[MeV]=8.04473 deltaAngle(deg)=0.006663 + Event#=8000 t[ns]=0.0743315 r[mm]=22.2824 deltaR[mum]=2.50983e-06 deltaEkin[MeV]=5.2977 deltaAngle(deg)=0.00178161 + Event#=9000 t[ns]=0.130274 r[mm]=39.0524 deltaR[mum]=4.14287e-05 deltaEkin[MeV]=7.65281 deltaAngle(deg)=0.00619126 Run terminated. Run Summary Number of events processed : 10000 - User=0.340000s Real=0.344389s Sys=0.000000s + User=0.340000s Real=0.344135s Sys=0.000000s ============ Run::printInfo() =============== RunID = 31 @@ -2980,45 +3031,45 @@ Run Summary isPreassignedDecayEnabled = 1 isBoostToLabEnabled = 1 # Events = 10000 - # Decays = 9854 + # Decays = 9839 (# Bad decays = 0 ) (# Unexpected decays = 0 ) # E violations = 0 # P violations = 0 - decay T [ns] : min=8.31742e-06 mean=0.138041 max=1.62863 - decay R [mm] : min=0.00249332 mean=41.3806 max=488.217 - decay X [mm] : min=0.00249332 mean=41.3806 max=488.217 - decay Y [mm] : min=-0.278752 mean=-0.00443766 max=0.016258 - decay Z [mm] : min=-0.029889 mean=-2.05905e-05 max=0.0161724 - Delta decay R [mm] : min=-3.46945e-18 mean=1.71703e-07 max=8.03438e-05 - deflection angle [deg] : min=0 mean=0.00567085 max=0.0658314 - Delta Ekin [MeV] : min=0 mean=6.57137 max=1397.59 - decay Ekin [GeV] : min=498.602 mean=499.993 max=500 - decay Px [GeV] : min=504.612 mean=506.003 max=506.01 - decay Py [GeV] : min=-0.581394 mean=-0.0496615 max=0.0887578 - decay Pz [GeV] : min=-0.138071 mean=-8.66905e-05 max=0.118599 - decay Etot violation [MeV] : min=-1.68744e-06 mean=1.52025e-07 max=1.85566e-06 - decay Px violation [MeV] : min=-1.68744e-06 mean=1.5201e-07 max=1.8556e-06 - decay Py violation [MeV] : min=-6.09589e-10 mean=-1.09376e-11 max=5.65478e-10 - decay Pz violation [MeV] : min=-1.77565e-10 mean=4.64736e-15 max=1.77778e-10 + decay T [ns] : min=1.29558e-06 mean=0.134439 max=1.37378 + decay R [mm] : min=0.000388378 mean=40.3008 max=411.818 + decay X [mm] : min=0.000388378 mean=40.3008 max=411.818 + decay Y [mm] : min=-0.195522 mean=-0.00417881 max=0.00499182 + decay Z [mm] : min=-0.0249052 mean=-7.61009e-07 max=0.0313168 + Delta decay R [mm] : min=-1.73472e-18 mean=1.52177e-07 max=1.849e-05 + deflection angle [deg] : min=0 mean=0.00553006 max=0.055002 + Delta Ekin [MeV] : min=0 mean=6.57815 max=1593.97 + decay Ekin [GeV] : min=498.406 mean=499.993 max=500 + decay Px [GeV] : min=504.416 mean=506.003 max=506.01 + decay Py [GeV] : min=-0.485767 mean=-0.0483527 max=0.136321 + decay Pz [GeV] : min=-0.256315 mean=1.82928e-05 max=0.153368 + decay Etot violation [MeV] : min=-1.62952e-06 mean=1.55931e-07 max=1.73791e-06 + decay Px violation [MeV] : min=-1.62958e-06 mean=1.55912e-07 max=1.73796e-06 + decay Py violation [MeV] : min=-5.37796e-10 mean=-1.10625e-11 max=4.88399e-10 + decay Pz violation [MeV] : min=-2.03613e-10 mean=2.47646e-14 max=2.81489e-10 --- Consistency checks --- maxEkin_deltaMax [eV] = 0 maxEtot_deltaMax [eV] = 0 maxP_deltaMax [eV] = 0 maxPdir_deltaMax = 0 - maxMass_deltaMax{1,2,3} [eV] = 0 , 2.36469e-05 , 0.0183736 (mean=0.00443477) - maxBeta_deltaMax{1,2} = 1.11022e-16 , 4.44089e-16 - maxGamma_deltaMax{1,2,3} = 0 , 1.08699e-10 , 1.08699e-10 + maxMass_deltaMax{1,2,3} [eV] = 0 , 2.36469e-05 , 0.0208966 (mean=0.00446262) + maxBeta_deltaMax{1,2} = 3.33067e-16 , 5.55112e-16 + maxGamma_deltaMax{1,2,3} = 0 , 1.1012e-10 , 1.1012e-10 maxT_proper_deltaMax [fs] = 0 maxT_lab_deltaMax [fs] = 0 - maxMc_truth_rPos_deltaMax [mum] = 1.13687e-10 (mean=4.58297e-12) (# above threshold = 0) + maxMc_truth_rPos_deltaMax [mum] = 1.13687e-10 (mean=4.55759e-12) (# above threshold = 0) --- Extra checks --- - minUnderestimated_mc_truth_rPos_delta [mum] = -61.944 (mean=-0.298958) (#above threshold = 133) - maxOverestimated_mc_truth_rPos_delta [mum] = 544.809 (mean=0.501638) (#above threshold = 1259) - minUnderestimated_rDeltaPos [mum] = -61.8636 (mean=-0.298786) (#above threshold = 133) - maxOverestimated_rDeltaPos [mum] = 544.89 (mean=0.50181) (#above threshold = 1259) + minUnderestimated_mc_truth_rPos_delta [mum] = -42.0944 (mean=-0.293055) (#above threshold = 142) + maxOverestimated_mc_truth_rPos_delta [mum] = 128.951 (mean=0.456274) (#above threshold = 1220) + minUnderestimated_rDeltaPos [mum] = -42.0759 (mean=-0.292903) (#above threshold = 142) + maxOverestimated_rDeltaPos [mum] = 128.97 (mean=0.456426) (#above threshold = 1220) --- float instead of double --- - fMaxFloat_rDeltaPos_deltaMax [mum] = 0.0734891 + fMaxFloat_rDeltaPos_deltaMax [mum] = 0.044402 ============================================= G4 kernel has come to Quit state. diff --git a/examples/extended/hadronic/Hadr10/include/DetectorConstruction.hh b/examples/extended/hadronic/Hadr10/include/DetectorConstruction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/Hadr10/include/DetectorMessenger.hh b/examples/extended/hadronic/Hadr10/include/DetectorMessenger.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/Hadr10/include/PrimaryGeneratorAction.hh b/examples/extended/hadronic/Hadr10/include/PrimaryGeneratorAction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/Hadr10/include/RunAction.hh b/examples/extended/hadronic/Hadr10/include/RunAction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/Hadr10/include/StackingAction.hh b/examples/extended/hadronic/Hadr10/include/StackingAction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/Hadr10/include/SteppingAction.hh b/examples/extended/hadronic/Hadr10/include/SteppingAction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/Hadr10/src/DetectorConstruction.cc b/examples/extended/hadronic/Hadr10/src/DetectorConstruction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/Hadr10/src/DetectorMessenger.cc b/examples/extended/hadronic/Hadr10/src/DetectorMessenger.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/Hadr10/src/PrimaryGeneratorAction.cc b/examples/extended/hadronic/Hadr10/src/PrimaryGeneratorAction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/Hadr10/src/RunAction.cc b/examples/extended/hadronic/Hadr10/src/RunAction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/Hadr10/src/StackingAction.cc b/examples/extended/hadronic/Hadr10/src/StackingAction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/History b/examples/extended/hadronic/History index 21c73a98f5..b6c0365d59 100644 --- a/examples/extended/hadronic/History +++ b/examples/extended/hadronic/History @@ -4,7 +4,10 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! -## 2021-06-10 Alberto Ribon (exHadronic-V11-00-01) +## 2022-10-25 I. Hrivnacova (exHadronic-V11-00-02) +- Fixed link to new ParticleFluence example in Doxygen documentation + +## 2022-06-10 Alberto Ribon (exHadronic-V11-00-01) - Created new test: ParticleFluence. ## 2021-12-10 Ben Morgan (exHadronic-V11-00-00) diff --git a/examples/extended/hadronic/NeutronSource/NeutronSource.out b/examples/extended/hadronic/NeutronSource/NeutronSource.out index ac0d45445e..04f96f9984 100644 --- a/examples/extended/hadronic/NeutronSource/NeutronSource.out +++ b/examples/extended/hadronic/NeutronSource/NeutronSource.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -97,6 +97,7 @@ min MeanLife (from G4NuclideTable) 1 ns Max life time (from G4DeexPrecoParameters) 1 ns Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 0 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 0 @@ -514,64 +515,66 @@ Index : 2 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=3.380000s Real=4.227140s Sys=0.010000s + User=4.290000s Real=4.401208s Sys=0.020000s The run is 10000 Am241 of 0 eV within BeO (D = 3 cm L = 6 cm ) Process calls frequency : - NoProcess= 10005 Radioactivation= 225416 Rayl= 2489 - Transportation= 170253 alphaInelastic= 6 annihil= 1 - compt= 22345 conv= 1 eIoni= 195192 - ionIoni= 324016 msc= 10613 neutronInelastic= 1 - phot= 13026 + NoProcess= 10007 Radioactivation= 225454 Rayl= 2505 + Transportation= 170294 alphaInelastic= 9 annihil= 1 + compt= 22331 conv= 1 eIoni= 195387 + ionIoni= 323940 msc= 10714 neutronInelastic= 1 + phot= 13070 List of generated particles (with meanLife != 0) : - Ac225: 9998 Emean = 161.45 meV ( 1.8626 meV --> 1.1345 eV ) mean life = 14.427 d - Ac225[40.090]: 7007 Emean = 378.21 meV ( 1.4843 meV --> 993.6 meV) mean life = 1.0387 ns - At217: 9990 Emean = 116.35 keV ( 106.53 keV --> 117.05 keV) mean life = 46.599 ms - Bi209: 10000 Emean = 1.2219 eV ( 1.397 meV --> 2.7426 eV ) stable - Bi213: 9988 Emean = 132.94 keV ( 121.83 keV --> 132.95 keV) mean life = 1.0962 h - C12: 5 Emean = 1.5195 MeV ( 1.0181 MeV --> 1.8891 MeV) stable - Fr221: 10000 Emean = 77.387 keV ( 3.2596 meV --> 105.65 keV) mean life = 7.0692 min - Fr221[36.640]: 2629 Emean = 104.44 keV ( 95.458 keV --> 105 keV) mean life = 2.164 ns - Np237: 10000 Emean = 754.55 eV ( 2.5029 meV --> 93.678 keV) mean life = 3.0953e+06 y - Np237[59.541]: 9919 Emean = 92.561 keV ( 87.355 keV --> 92.688 keV) mean life = 96.949 ns - Pa233: 10000 Emean = 36.47 keV ( 7.5088 meV --> 83.776 keV) mean life = 38.917 d - Pa233[86.468]: 5549 Emean = 81.952 keV ( 77.479 keV --> 82.314 keV) mean life = 51.504 ns - Pb209: 10000 Emean = 157.17 keV ( 1.5582 eV --> 160.59 keV) mean life = 4.6931 h - Pb209[2149.430]: 207 Emean = 7.0607 eV ( 214.82 meV --> 12.785 eV ) mean life = 5.7131 ns - Po213: 9787 Emean = 181.77 eV ( 9.4878 meV --> 145.62 keV) mean life = 5.3668 us - Ra221: 10 Emean = 305.97 meV ( 45.78 meV --> 605.8 meV) mean life = 40.395 s - Ra225: 10000 Emean = 805.73 eV ( 1.5425 meV --> 320.88 keV) mean life = 21.496 d - Ra225[25.410]: 8095 Emean = 65.457 keV ( 0.7276 meV --> 338.91 keV) mean life = 1.2696 ns - Ra225[31.560]: 517 Emean = 97.452 keV ( 4.4038 keV --> 334.13 keV) mean life = 3.0297 ns - Ra225[42.770]: 3941 Emean = 96.72 keV ( 1.2891 keV --> 335.98 keV) mean life = 4.3281 ns - Rn217: 12 Emean = 41.571 keV ( 41.531 meV --> 124.71 keV) mean life = 779.06 us - Rn217[149.180]: 3 Emean = 122.01 keV ( 122.01 keV --> 122.01 keV) mean life = 2.164 ns - Rn217[93.020]: 3 Emean = 123.03 keV ( 123.03 keV --> 123.03 keV) mean life = 5.7708 ns - Rn221: 2 Emean = 90.445 keV ( 90.177 keV --> 90.714 keV) mean life = 36.067 min - Th229: 8799 Emean = 84.322 keV ( 80.433 keV --> 84.358 keV) mean life = 11376 y - Tl209: 213 Emean = 111.96 keV ( 106.22 keV --> 112.51 keV) mean life = 3.1739 min - U233: 10000 Emean = 354.98 meV ( 3.7544 meV --> 1.9887 eV ) mean life = 2.2983e+05 y - alpha: 80000 Emean = 5.9268 MeV ( 4.4847 MeV --> 8.3755 MeV) stable - anti_nu_e: 40000 Emean = 423.15 keV ( 5.5193 keV --> 1.8225 MeV) stable + Ac225: 9997 Emean = 162.13 meV ( 1.8626 meV --> 1.1284 eV ) mean life = 14.427 d + Ac225[40.090]: 6972 Emean = 379.13 meV ( 1.4843 meV --> 993.6 meV) mean life = 1.0387 ns + At217: 9986 Emean = 116.36 keV ( 106.36 keV --> 117.05 keV) mean life = 46.599 ms + Bi209: 10000 Emean = 1.222 eV ( 3.7544 meV --> 2.7426 eV ) stable + Bi213: 9985 Emean = 132.93 keV ( 8.9853 eV --> 132.95 keV) mean life = 1.0962 h + C12: 7 Emean = 1.5461 MeV ( 371.87 keV --> 2.8528 MeV) stable + Fr221: 9999 Emean = 77.345 keV ( 3.2596 meV --> 105.65 keV) mean life = 7.0692 min + Fr221[36.640]: 2632 Emean = 104.45 keV ( 95.458 keV --> 105 keV) mean life = 2.164 ns + Np237: 10000 Emean = 680.51 eV ( 2.5029 meV --> 93.678 keV) mean life = 3.0953e+06 y + Np237[59.541]: 9927 Emean = 92.561 keV ( 87.355 keV --> 92.688 keV) mean life = 96.949 ns + Pa233: 10000 Emean = 36.339 keV ( 7.5088 meV --> 83.776 keV) mean life = 38.917 d + Pa233[86.468]: 5565 Emean = 81.965 keV ( 78.476 keV --> 82.314 keV) mean life = 51.504 ns + Pb209: 10000 Emean = 156.78 keV ( 1.5582 eV --> 160.59 keV) mean life = 4.6931 h + Pb209[2149.430]: 230 Emean = 7.1456 eV ( 214.82 meV --> 12.714 eV ) mean life = 5.7131 ns + Pb213: 1 Emean = 122.98 keV ( 122.98 keV --> 122.98 keV) mean life = 14.715 min + Po213: 9763 Emean = 226.96 eV ( 9.4878 meV --> 145.62 keV) mean life = 5.3668 us + Po217: 1 Emean = 111.69 keV ( 111.69 keV --> 111.69 keV) mean life = 2.1063 s + Ra221: 13 Emean = 294.02 meV ( 45.78 meV --> 605.8 meV) mean life = 40.395 s + Ra225: 10000 Emean = 783.9 eV ( 1.5425 meV --> 314.6 keV) mean life = 21.496 d + Ra225[25.410]: 8098 Emean = 66.268 keV ( 0.7276 meV --> 342.22 keV) mean life = 1.2696 ns + Ra225[31.560]: 523 Emean = 94.788 keV ( 4.4038 keV --> 334.13 keV) mean life = 3.0297 ns + Ra225[42.770]: 3880 Emean = 96.849 keV ( 237.52 meV --> 335.98 keV) mean life = 4.3281 ns + Rn217: 15 Emean = 41.571 keV ( 41.531 meV --> 124.71 keV) mean life = 779.06 us + Rn217[149.180]: 4 Emean = 122.01 keV ( 122.01 keV --> 122.01 keV) mean life = 2.164 ns + Rn217[93.020]: 4 Emean = 122.61 keV ( 121.36 keV --> 123.03 keV) mean life = 5.7708 ns + Rn221: 3 Emean = 90.535 keV ( 90.177 keV --> 90.714 keV) mean life = 36.067 min + Th229: 8776 Emean = 84.319 keV ( 80.433 keV --> 84.358 keV) mean life = 11376 y + Tl209: 237 Emean = 111.94 keV ( 106.13 keV --> 112.51 keV) mean life = 3.1739 min + U233: 10000 Emean = 352.5 meV ( 3.7544 meV --> 1.996 eV ) mean life = 2.2983e+05 y + alpha: 80000 Emean = 5.9262 MeV ( 4.4847 MeV --> 8.3755 MeV) stable + anti_nu_e: 40000 Emean = 423.4 keV ( 5.5193 keV --> 1.8008 MeV) stable e+: 1 Emean = 437.82 keV ( 437.82 keV --> 437.82 keV) stable - e-: 155462 Emean = 83.119 keV ( 1.2255 eV --> 4.2356 MeV) stable - gamma: 25099 Emean = 199.37 keV ( 5.439 keV --> 4.5015 MeV) stable - neutron: 7 Emean = 3.1653 MeV ( 327.61 keV --> 5.5948 MeV) mean life = 14.67 min + e-: 155511 Emean = 83.311 keV ( 1.2255 eV --> 4.2356 MeV) stable + gamma: 25125 Emean = 200.94 keV ( 5.6567 keV --> 4.5015 MeV) stable + neutron: 9 Emean = 3.4135 MeV ( 327.61 keV --> 5.5948 MeV) mean life = 14.67 min - Mean energy deposit per event = 49.572 MeV rms = 473.46 keV - Mean energy flow per event = 2.0303 MeV rms = 505.92 keV + Mean energy deposit per event = 49.569 MeV rms = 490.95 keV + Mean energy flow per event = 2.0346 MeV rms = 534.76 keV List of particles emerging from the container : - anti_nu_e: 40000 Emean = 423.15 keV ( 5.5193 keV --> 1.8225 MeV) Eflow/event = 1.6926 MeV - e-: 13 Emean = 242.2 keV ( 50.07 keV --> 1.2262 MeV) Eflow/event = 314.86 eV - gamma: 12072 Emean = 277.9 keV ( 40.09 keV --> 4.5015 MeV) Eflow/event = 335.49 keV - neutron: 6 Emean = 3.1438 MeV ( 327.61 keV --> 5.5948 MeV) Eflow/event = 1.8863 keV + anti_nu_e: 40000 Emean = 423.4 keV ( 5.5193 keV --> 1.8008 MeV) Eflow/event = 1.6936 MeV + e-: 13 Emean = 240.17 keV ( 50.07 keV --> 1.2262 MeV) Eflow/event = 312.22 eV + gamma: 12054 Emean = 280.35 keV ( 40.09 keV --> 4.5015 MeV) Eflow/event = 337.93 keV + neutron: 8 Emean = 3.4284 MeV ( 327.61 keV --> 5.5948 MeV) Eflow/event = 2.7427 keV --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 740570849, 1724472481 + Current couple of seeds = 1050100780, 998776150 ---------------------------------------- G4 kernel has come to Quit state. ================== Deleting memory pools =================== diff --git a/examples/extended/hadronic/ParticleFluence/.README.txt b/examples/extended/hadronic/ParticleFluence/.README.txt index ff57c802a1..9f2942fea0 100644 --- a/examples/extended/hadronic/ParticleFluence/.README.txt +++ b/examples/extended/hadronic/ParticleFluence/.README.txt @@ -1,8 +1,7 @@ - ///\file "ParticleFluence/.README.txt" ///\brief ParticleFluence set-ups -/*! \page Set-ups-ParticleFluence Category "ParticleFluence" +/*! \page Examples_ParticleFluence Category "hadronic/ParticleFluence" Examples in this directory demonstrate specific set-ups in which to evaluate particle fluence. diff --git a/examples/extended/hadronic/ParticleFluence/Calo/.README.txt b/examples/extended/hadronic/ParticleFluence/Calo/.README.txt index fe0ebb407f..9996bb8b55 100644 --- a/examples/extended/hadronic/ParticleFluence/Calo/.README.txt +++ b/examples/extended/hadronic/ParticleFluence/Calo/.README.txt @@ -1,7 +1,7 @@ ///\file "hadronic/ParticleFluence/Calo/.README.txt" ///\brief Example ParticleFluence/Calo README page -/*! \page ExampeParticleFluenceCalo Example Calo +/*! \page ExampleCalo Example Calo In this example, the particle fluence is evaluated for simplified, cylindrical hadronic calorimeters with axis along the z-direction, @@ -18,6 +18,10 @@ cases) or a thin hemisphere shell (for the "side" case) filled up with G4_Galactic (very low density gas) material, immediately outside the calorimeter - and then dividing for the cubic volume of such scoring volume. +Complementary information on average multiplicity, average kinetic energy, +and average total energy flow (i.e. sum of kinetic energies) for the +particles produced in the calorimeter are also computed. + The particle fluence is evaluated for the following 11 particle types: - all - electron + positron @@ -47,14 +51,18 @@ physics list is used). To build this example: - mkdir Build; cd Build - cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DGeant4_DIR=/path-to-geant4-libraries ../. - make +\verbatim +mkdir Build; cd Build +cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DGeant4_DIR=/path-to-geant4-libraries ../. +make +\endverbatim To run it: - ./Calo atlasHec.g4 +\verbatim +./Calo atlasHec.g4 +\endverbatim which shoots 50 GeV pion- on a simplified ATLAS HEC hadronic calorimeter, in one run of 100 events, and print out some information on the particle diff --git a/examples/extended/hadronic/ParticleFluence/Calo/Calo.cc b/examples/extended/hadronic/ParticleFluence/Calo/Calo.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Calo/Calo.out b/examples/extended/hadronic/ParticleFluence/Calo/Calo.out new file mode 100644 index 0000000000..501d61c735 --- /dev/null +++ b/examples/extended/hadronic/ParticleFluence/Calo/Calo.out @@ -0,0 +1,1104 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + +### G4PhysListFactory WARNING: environment variable PHYSLIST is not defined + Default Physics Lists FTFP_BERT is instantiated +G4PhysListFactory::GetReferencePhysList EMoption= 0 +<<< Geant4 Physics List simulation engine: FTFP_BERT + + + +PrimaryGenerationAction::SetGunPosition() : gun position along z = -1100 mm + + + hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval + for pions : 3 to 6 GeV + for kaons : 3 to 6 GeV + for proton : 3 to 6 GeV + for neutron : 3 to 6 GeV + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 + + + ------ DetectorConstruction::PrintParameters() ------ + Absorber Material = Copper + Active Material = LiquidArgon + Is the Calorimeter Homogeneous ? 0 + Is the Unit in Lambda ? 1 + Absorber Total Length = 10 lambdas + Calorimeter Radius = 5 lambdas + Active Layer Number = 60 + Active Layer Size = 8.5 mm + Is the Radius Unit in Lambda ? 1 + Radius Bin Size = + Magnetic field [T] = (0,0,0) + -------------------------------------------------------- + + +PrimaryGenerationAction::SetGunPosition() : gun position along z = -1210 mm + +Start re-initialization because + Geometry +has been modified since last Run. +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 7 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 1 mm) +Step function for muons/hadrons (0.2, 0.1 mm) +Step function for light ions (0.2, 0.1 mm) +Step function for general ions (0.2, 0.1 mm) +Lowest e+e- kinetic energy 1 keV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 0 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 0 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 0 eV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 1 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 0 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.04 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 1 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 0 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 61 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 56 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Klein-Nishina : Emin= 0 eV Emax= 100 TeV + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + Stopping Power data for 17 ion/material pairs + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + + Process: nKiller + +--------------------------------------------------- + Hadronic Processes for B- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: B-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for D- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: D-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_He3Inelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_alphaInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_deuteronInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: anti_lambdaInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_neutronInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_protonInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_tritonInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: dInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for e+ + + Process: positronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for e- + + Process: electronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: GammaNPreco: 0 eV ---> 200 MeV + Model: BertiniCascade: 199 MeV ---> 6 GeV + Model: TheoFSGenerator: 3 GeV ---> 100 TeV + Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: lambdaInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu+ + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + + Process: muMinusCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: protonInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for sigma- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: sigma-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: tInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +================================================================ +### G4LevelReader: broken transition 0 from level 24 to 24 for isotope Z= 89 A= 219 - use ground level +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Pre-compound model active 1 +Pre-compound excitation low energy 100 keV +Pre-compound excitation high energy 30 MeV +Type of de-excitation inverse x-section 3 +Type of de-excitation factory Evaporation+GEM +Number of de-excitation channels 68 +Min excitation energy 10 eV +Min energy per nucleon for multifragmentation 200 GeV +Limit excitation energy for Fermi BreakUp 20 MeV +Level density (1/MeV) 0.075 +Use simple level density model 1 +Use discrete excitation energy of the residual 1 +Time limit for long lived isomeres 1 ns +Isomer production flag 1 +Internal e- conversion flag 1 +Store e- internal conversion data 0 +Correlated gamma emission flag 0 +Max 2J for sampling of angular correlations 10 +======================================================================= + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : Vacuum + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes + Material : Lead + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 94.6952 keV e- 1.00699 MeV e+ 946.936 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 2 used in the geometry : Yes + Material : Copper + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 20.5458 keV e- 1.03403 MeV e+ 979.823 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 3 used in the geometry : Yes + Material : LiquidArgon + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.2122 keV e- 274.487 keV e+ 266.671 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 0 starts. +### Run 0 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=57.290000s Real=57.843743s Sys=0.020000s + + + =============== Run::PrintInfo() =============== RunID = 0 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Absorber material = Copper + Active material = LiquidArgon + Cubic-volume scoring up-down = 1.78037e+07 mm^3 + Cubic-volume scoring side = 9.59707e+07 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 downstream all 0.000567784 + case= 1 downstream electron 2.72237e-06 + case= 2 downstream gamma 0.000172106 + case= 3 downstream muon 0 + case= 4 downstream neutrino 6.76491e-05 + case= 5 downstream pion 4.08254e-06 + case= 6 downstream neutron 0.000319842 + case= 7 downstream proton 7.57954e-07 + case= 8 downstream ion 0 + case= 9 downstream otherMeson 6.24074e-07 + case= 10 downstream otherBaryon 0 + case= 11 downstream below 20 MeV all 0.000458131 + case= 12 downstream below 20 MeV electron 1.58623e-06 + case= 13 downstream below 20 MeV gamma 0.000170925 + case= 14 downstream below 20 MeV muon 0 + case= 15 downstream below 20 MeV neutrino 2.47119e-06 + case= 16 downstream below 20 MeV pion 0 + case= 17 downstream below 20 MeV neutron 0.000283148 + case= 18 downstream below 20 MeV proton 0 + case= 19 downstream below 20 MeV ion 0 + case= 20 downstream below 20 MeV otherMeson 0 + case= 21 downstream below 20 MeV otherBaryon 0 + case= 22 downstream above 20 MeV all 0.000109654 + case= 23 downstream above 20 MeV electron 1.13614e-06 + case= 24 downstream above 20 MeV gamma 1.18101e-06 + case= 25 downstream above 20 MeV muon 0 + case= 26 downstream above 20 MeV neutrino 6.51779e-05 + case= 27 downstream above 20 MeV pion 4.08254e-06 + case= 28 downstream above 20 MeV neutron 3.66941e-05 + case= 29 downstream above 20 MeV proton 7.57954e-07 + case= 30 downstream above 20 MeV ion 0 + case= 31 downstream above 20 MeV otherMeson 6.24074e-07 + case= 32 downstream above 20 MeV otherBaryon 0 + case= 33 side all 0.00062376 + case= 34 side electron 1.27903e-06 + case= 35 side gamma 0.000114736 + case= 36 side muon 0 + case= 37 side neutrino 0.000124331 + case= 38 side pion 0 + case= 39 side neutron 0.000383126 + case= 40 side proton 2.87665e-07 + case= 41 side ion 0 + case= 42 side otherMeson 0 + case= 43 side otherBaryon 0 + case= 44 side below 20 MeV all 0.000483534 + case= 45 side below 20 MeV electron 1.27903e-06 + case= 46 side below 20 MeV gamma 0.000114736 + case= 47 side below 20 MeV muon 0 + case= 48 side below 20 MeV neutrino 9.49793e-06 + case= 49 side below 20 MeV pion 0 + case= 50 side below 20 MeV neutron 0.000358021 + case= 51 side below 20 MeV proton 0 + case= 52 side below 20 MeV ion 0 + case= 53 side below 20 MeV otherMeson 0 + case= 54 side below 20 MeV otherBaryon 0 + case= 55 side above 20 MeV all 0.000140226 + case= 56 side above 20 MeV electron 0 + case= 57 side above 20 MeV gamma 0 + case= 58 side above 20 MeV muon 0 + case= 59 side above 20 MeV neutrino 0.000114833 + case= 60 side above 20 MeV pion 0 + case= 61 side above 20 MeV neutron 2.51051e-05 + case= 62 side above 20 MeV proton 2.87665e-07 + case= 63 side above 20 MeV ion 0 + case= 64 side above 20 MeV otherMeson 0 + case= 65 side above 20 MeV otherBaryon 0 + case= 66 upstream all 0.00456423 + case= 67 upstream electron 1.07256e-05 + case= 68 upstream gamma 0.00123582 + case= 69 upstream muon 0 + case= 70 upstream neutrino 0.000225616 + case= 71 upstream pion 2.13672e-06 + case= 72 upstream neutron 0.00307519 + case= 73 upstream proton 1.39353e-05 + case= 74 upstream ion 8.02983e-07 + case= 75 upstream otherMeson 0 + case= 76 upstream otherBaryon 0 + case= 77 upstream below 20 MeV all 0.0041285 + case= 78 upstream below 20 MeV electron 1.00024e-05 + case= 79 upstream below 20 MeV gamma 0.00121659 + case= 80 upstream below 20 MeV muon 0 + case= 81 upstream below 20 MeV neutrino 2.11761e-05 + case= 82 upstream below 20 MeV pion 0 + case= 83 upstream below 20 MeV neutron 0.00287506 + case= 84 upstream below 20 MeV proton 4.8615e-06 + case= 85 upstream below 20 MeV ion 8.02983e-07 + case= 86 upstream below 20 MeV otherMeson 0 + case= 87 upstream below 20 MeV otherBaryon 0 + case= 88 upstream above 20 MeV all 0.000435729 + case= 89 upstream above 20 MeV electron 7.23265e-07 + case= 90 upstream above 20 MeV gamma 1.92318e-05 + case= 91 upstream above 20 MeV muon 0 + case= 92 upstream above 20 MeV neutrino 0.00020444 + case= 93 upstream above 20 MeV pion 2.13672e-06 + case= 94 upstream above 20 MeV neutron 0.000200123 + case= 95 upstream above 20 MeV proton 9.07378e-06 + case= 96 upstream above 20 MeV ion 0 + case= 97 upstream above 20 MeV otherMeson 0 + case= 98 upstream above 20 MeV otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 calorimeter all 66575.6 4.09669 272739 + case= 1 calorimeter electron 49406.9 1.64422 81235.7 + case= 2 calorimeter gamma 14526.6 5.4636 79367.4 + case= 3 calorimeter muon 4.6 20.1846 92.8493 + case= 4 calorimeter neutrino 13.73 37.9745 521.39 + case= 5 calorimeter pion 50.28 1313.23 66029.2 + case= 6 calorimeter neutron 998.05 17.5651 17530.9 + case= 7 calorimeter proton 226.72 63.2077 14330.5 + case= 8 calorimeter ion 1342.71 0.926565 1244.11 + case= 9 calorimeter otherMeson 4.57 2526.89 11547.9 + case= 10 calorimeter otherBaryon 1.39 603.879 839.392 + case= 11 calorimeter below 20 MeV all 65440.6 0.663733 43435.1 + case= 12 calorimeter below 20 MeV electron 48966.6 0.452715 22167.9 + case= 13 calorimeter below 20 MeV gamma 14126 1.21341 17140.6 + case= 14 calorimeter below 20 MeV muon 4.15 4.15207 17.2311 + case= 15 calorimeter below 20 MeV neutrino 1.05 14.9058 15.6511 + case= 16 calorimeter below 20 MeV pion 1.05 12.2888 12.9032 + case= 17 calorimeter below 20 MeV neutron 864.8 2.66096 2301.2 + case= 18 calorimeter below 20 MeV proton 146.54 8.12205 1190.2 + case= 19 calorimeter below 20 MeV ion 1330.13 0.440884 586.433 + case= 20 calorimeter below 20 MeV otherMeson 0.25 6.6568 1.6642 + case= 21 calorimeter below 20 MeV otherBaryon 0.11 11.9699 1.31669 + case= 22 calorimeter above 20 MeV all 1134.93 202.043 229304 + case= 23 calorimeter above 20 MeV electron 440.38 134.129 59067.8 + case= 24 calorimeter above 20 MeV gamma 400.58 155.342 62226.9 + case= 25 calorimeter above 20 MeV muon 0.45 168.041 75.6182 + case= 26 calorimeter above 20 MeV neutrino 12.68 39.8848 505.739 + case= 27 calorimeter above 20 MeV pion 49.23 1340.98 66016.3 + case= 28 calorimeter above 20 MeV neutron 133.25 114.294 15229.7 + case= 29 calorimeter above 20 MeV proton 80.18 163.884 13140.2 + case= 30 calorimeter above 20 MeV ion 12.58 52.2795 657.676 + case= 31 calorimeter above 20 MeV otherMeson 4.32 2672.74 11546.2 + case= 32 calorimeter above 20 MeV otherBaryon 1.28 654.746 838.076 + ============================================================= + +G4 kernel has come to Quit state. +================== Deleting memory pools =================== +Number of memory pools allocated: 13 of which, static: 0 +Dynamic pools deleted: 13 / Total memory freed: 0.25 MB +============================================================ +RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/hadronic/ParticleFluence/Calo/GNUmakefile b/examples/extended/hadronic/ParticleFluence/Calo/GNUmakefile old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Calo/History b/examples/extended/hadronic/ParticleFluence/Calo/History index 6547944ece..b26a6cb8d7 100644 --- a/examples/extended/hadronic/ParticleFluence/Calo/History +++ b/examples/extended/hadronic/ParticleFluence/Calo/History @@ -5,6 +5,12 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-09-07 Alberto Ribon (exhadrParticleFluenceCalo-V11-00-02) +- Added complementary information on particle production (multiplicity, + kinetic energy, and total energy flow) in the calorimeter. + +## 2022-08-26 Alberto Ribon (exhadrParticleFluenceCalo-V11-00-01) +- SteppingAction : introduced protection on the value of the array index. + ## 2021-06-10 Alberto Ribon (exhadrParticleFluenceCalo-V11-00-00) - Created the Calo variant of the ParticleFluence example. - diff --git a/examples/extended/hadronic/ParticleFluence/Calo/README b/examples/extended/hadronic/ParticleFluence/Calo/README index a88113c6d8..73a5fbb865 100644 --- a/examples/extended/hadronic/ParticleFluence/Calo/README +++ b/examples/extended/hadronic/ParticleFluence/Calo/README @@ -13,6 +13,10 @@ cases) or a thin hemisphere shell (for the "side" case) filled up with G4_Galactic (very low density gas) material, immediately outside the calorimeter - and then dividing for the cubic volume of such scoring volume. +Complementary information on average multiplicity, average kinetic energy, +and average total energy flow (i.e. sum of kinetic energies) for the +particles produced in the calorimeter are also computed. + The particle fluence is evaluated for the following 11 particle types: - all - electron + positron diff --git a/examples/extended/hadronic/ParticleFluence/Calo/include/ActionInitialization.hh b/examples/extended/hadronic/ParticleFluence/Calo/include/ActionInitialization.hh index 29c2c522da..e57b59a3e1 100644 --- a/examples/extended/hadronic/ParticleFluence/Calo/include/ActionInitialization.hh +++ b/examples/extended/hadronic/ParticleFluence/Calo/include/ActionInitialization.hh @@ -43,9 +43,9 @@ class DetectorConstruction; class ActionInitialization : public G4VUserActionInitialization { public: ActionInitialization( const DetectorConstruction* inputDetectorConstruction = nullptr ); - virtual ~ActionInitialization(); - virtual void BuildForMaster() const override; - virtual void Build() const override; + ~ActionInitialization() override = default; + void BuildForMaster() const override; + void Build() const override; private: const DetectorConstruction* fPtrDetectorConstruction = nullptr; }; diff --git a/examples/extended/hadronic/ParticleFluence/Calo/include/DetectorConstruction.hh b/examples/extended/hadronic/ParticleFluence/Calo/include/DetectorConstruction.hh old mode 100755 new mode 100644 index 6725050dd6..c28d70d93f --- a/examples/extended/hadronic/ParticleFluence/Calo/include/DetectorConstruction.hh +++ b/examples/extended/hadronic/ParticleFluence/Calo/include/DetectorConstruction.hh @@ -84,7 +84,7 @@ class DetectorConstruction : public G4VUserDetectorConstruction { G4VPhysicalVolume* ConstructCalorimeter(); // To be invoked each time the geometry needs to be updated. - G4bool areParametersOK(); + G4bool AreParametersOK(); // Return true if all the parameters are sensible, false otherwise. void PrintParameters(); diff --git a/examples/extended/hadronic/ParticleFluence/Calo/include/DetectorMessenger.hh b/examples/extended/hadronic/ParticleFluence/Calo/include/DetectorMessenger.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Calo/include/PrimaryGeneratorAction.hh b/examples/extended/hadronic/ParticleFluence/Calo/include/PrimaryGeneratorAction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Calo/include/Run.hh b/examples/extended/hadronic/ParticleFluence/Calo/include/Run.hh index 81223d6855..65277615a6 100644 --- a/examples/extended/hadronic/ParticleFluence/Calo/include/Run.hh +++ b/examples/extended/hadronic/ParticleFluence/Calo/include/Run.hh @@ -37,6 +37,7 @@ #include "G4Run.hh" #include "G4ThreeVector.hh" #include "SteppingAction.hh" +#include "TrackingAction.hh" #include //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,55 +46,70 @@ class Run : public G4Run { // This class accumulates relevant quantities related to particle fluence collected during // the run. // ( Note: these information are provided via calls of accessor methods of this Run class - // made by SteppingAction::UserSteppingAction. ) - // At the end of a run, the printInfo method is called by the run-action to print out + // made by SteppingAction::UserSteppingAction + // and TrackingAction::PreUserTrackingAction. ) + // At the end of a run, the PrintInfo method is called by the run-action to print out // some summary information about these quantities. // In multithreaded (MT) mode, an object of this class is filled up for each working thread, // and then merged (automatically by the Geant4 kernel) into another object (of this class) - // owned by the master class; the printInfo method is then called only for the latter run + // owned by the master class; the PrintInfo method is then called only for the latter run // object. // Note that, for simplicity and brevity, we avoid histograms and print-out instead some // statistics (compute by ourself) at the end of the run. public: Run(); - ~Run(); + ~Run() override = default; - virtual void RecordEvent( const G4Event* anEvent ) override; + void RecordEvent( const G4Event* anEvent ) override; // This method is called automatically by the Geant4 kernel (not by the user!) at the end // of each event. In the case of multithreaded mode, it is called only for the working thread // that handled that event. - virtual void Merge( const G4Run* aRun ) override; + void Merge( const G4Run* aRun ) override; // This method is called automatically by the Geant4 kernel (not by the user!) only in the // case of multithreaded mode and only for working threads. - void printInfo() const; + void PrintInfo() const; // This method is called by RunAction::EndOfRunAction : in the case of multithreaded mode, // only the master thread calls it. - void setPrimaryParticleId( const G4int inputValue ) { fPrimaryParticleId = inputValue; } - void setPrimaryParticleEnergy( const G4double inputValue ) + void SetPrimaryParticleId( const G4int inputValue ) { fPrimaryParticleId = inputValue; } + void SetPrimaryParticleEnergy( const G4double inputValue ) { fPrimaryParticleEnergy = inputValue; } - void setPrimaryParticleDirection( const G4ThreeVector &inputValue ) + void SetPrimaryParticleDirection( const G4ThreeVector &inputValue ) { fPrimaryParticleDirection = inputValue; } - void setAbsorberMaterialName( const G4String &inputValue ) + void SetAbsorberMaterialName( const G4String &inputValue ) { fAbsorberMaterialName = inputValue; } - void setActiveMaterialName( const G4String &inputValue ) { fActiveMaterialName = inputValue; } - void setCubicVolumeScoringUpDown( const G4double inputValue ) + void SetActiveMaterialName( const G4String &inputValue ) { fActiveMaterialName = inputValue; } + void SetCubicVolumeScoringUpDown( const G4double inputValue ) { fCubicVolumeScoringUpDown = inputValue; } - void setCubicVolumeScoringSide( const G4double inputValue ) + void SetCubicVolumeScoringSide( const G4double inputValue ) { fCubicVolumeScoringSide = inputValue; } - G4int getPrimaryParticleId() const { return fPrimaryParticleId; } - G4double getPrimaryParticleEnergy() const { return fPrimaryParticleEnergy; } - G4ThreeVector getPrimaryParticleDirection() const { return fPrimaryParticleDirection; } - G4String getAbsorberMaterialName() const { return fAbsorberMaterialName; } - G4String getActiveMaterialName() const { return fActiveMaterialName; } - G4double getCubicVolumeScoringUpDown() const { return fCubicVolumeScoringUpDown; } - G4double getCubicVolumeScoringSide() const { return fCubicVolumeScoringSide; } - void setArray( const std::array< G4double, SteppingAction::numberCombinations >& inputArray ); - std::array< G4double, SteppingAction::numberCombinations > getArray() const { return fArray; } + G4int GetPrimaryParticleId() const { return fPrimaryParticleId; } + G4double GetPrimaryParticleEnergy() const { return fPrimaryParticleEnergy; } + G4ThreeVector GetPrimaryParticleDirection() const { return fPrimaryParticleDirection; } + G4String GetAbsorberMaterialName() const { return fAbsorberMaterialName; } + G4String GetActiveMaterialName() const { return fActiveMaterialName; } + G4double GetCubicVolumeScoringUpDown() const { return fCubicVolumeScoringUpDown; } + G4double GetCubicVolumeScoringSide() const { return fCubicVolumeScoringSide; } + + void SetSteppingArray( const std::array< G4double, + SteppingAction::fkNumberCombinations >& inputArray ); + std::array< G4double, SteppingAction::fkNumberCombinations > GetSteppingArray() const + { return fSteppingArray; } // Accessor methods useful to transfer information collected by the stepping-action - // into this Run class + // into this Run class + + void SetTrackingArray1( const std::array< G4int, + TrackingAction::fkNumberCombinations >& inputArray ); + std::array< G4int, TrackingAction::fkNumberCombinations > GetTrackingArray1() const + { return fTrackingArray1; } + void SetTrackingArray2( const std::array< G4double, + TrackingAction::fkNumberCombinations >& inputArray ); + std::array< G4double, TrackingAction::fkNumberCombinations > GetTrackingArray2() const + { return fTrackingArray2; } + // Accessor methods useful to transfer information collected by the tracking-action + // into this Run class private: G4int fNumEvents; @@ -104,7 +120,9 @@ class Run : public G4Run { G4String fActiveMaterialName; G4double fCubicVolumeScoringUpDown; G4double fCubicVolumeScoringSide; - std::array< G4double, SteppingAction::numberCombinations > fArray; + std::array< G4double, SteppingAction::fkNumberCombinations > fSteppingArray; + std::array< G4int, TrackingAction::fkNumberCombinations > fTrackingArray1; + std::array< G4double, TrackingAction::fkNumberCombinations > fTrackingArray2; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Calo/include/RunAction.hh b/examples/extended/hadronic/ParticleFluence/Calo/include/RunAction.hh old mode 100755 new mode 100644 index 0d4291f5c8..ea2a2d103c --- a/examples/extended/hadronic/ParticleFluence/Calo/include/RunAction.hh +++ b/examples/extended/hadronic/ParticleFluence/Calo/include/RunAction.hh @@ -38,18 +38,21 @@ class G4Run; class SteppingAction; +class TrackingAction; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class RunAction: public G4UserRunAction { public: - RunAction( SteppingAction* steppingAction = nullptr ); - virtual ~RunAction(); - virtual void BeginOfRunAction( const G4Run* aRun ) override; - virtual void EndOfRunAction( const G4Run* aRun ) override; - virtual G4Run* GenerateRun() override; + RunAction( SteppingAction* steppingAction = nullptr, + TrackingAction* trackingAction = nullptr ); + ~RunAction() override = default; + void BeginOfRunAction( const G4Run* aRun ) override; + void EndOfRunAction( const G4Run* aRun ) override; + G4Run* GenerateRun() override; private: SteppingAction* fSteppingAction; + TrackingAction* fTrackingAction; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Calo/include/SteppingAction.hh b/examples/extended/hadronic/ParticleFluence/Calo/include/SteppingAction.hh old mode 100755 new mode 100644 index ad03ae4e7a..98939e2323 --- a/examples/extended/hadronic/ParticleFluence/Calo/include/SteppingAction.hh +++ b/examples/extended/hadronic/ParticleFluence/Calo/include/SteppingAction.hh @@ -46,9 +46,9 @@ class Run; class SteppingAction : public G4UserSteppingAction { public: SteppingAction(); - virtual ~SteppingAction(); + ~SteppingAction() override = default; - virtual void UserSteppingAction( const G4Step* ) override; + void UserSteppingAction( const G4Step* ) override; // This is the main method where the step lengths of particles inside // the scoring volumes are collected, and then the corresponding fluences // are filled up in the Run object where they are stored (and then @@ -56,35 +56,35 @@ class SteppingAction : public G4UserSteppingAction { // (For simplicity and brevity, we avoid histograms and compute instead // some statistics ourself, which will be print-out at the end of the run.) - void initialize(); + void Initialize(); // This method is called by RunAction::BeginOfRunAction for the // initialization of the stepping-action at the beginning of each Run. // This is necessary because different runs can have different primary particle // types, kinetic energies, and detector configurations. - void setRunPointer( Run* inputValue = nullptr ) { fRunPtr = inputValue; } + void SetRunPointer( Run* inputValue = nullptr ) { fRunPtr = inputValue; } // This method is called by RunAction::BeginOfRunAction for providing to the // stepping-action the pointer to the run object at the beginning of each Run. // This pointer is then used to pass the information collected by the stepping-action // to the run object. - G4double getCubicVolumeScoringUpDown() const { return fCubicVolumeScoringUpDown; } - G4double getCubicVolumeScoringSide() const { return fCubicVolumeScoringSide; } + G4double GetCubicVolumeScoringUpDown() const { return fCubicVolumeScoringUpDown; } + G4double GetCubicVolumeScoringSide() const { return fCubicVolumeScoringSide; } // The cubic-volumes of the scoring volumes are needed to get the fluence from // the sum of step lengths in those scoring volumes. // Notice that two of the three scoring volumes - upstream and downstream - // have the same cubic-volume, that we call "fCubicVolumeScoringUpDown". - static const G4int numberScoringVolumes = 3; // downstream, side, upstream - static const G4int numberKinematicRegions = 3; // all, below 20 MeV, above 20 MeV - static const G4int numberParticleTypes = 11; // all, e, gamma, mu, nu, pi, n, p, ions, + static const G4int fkNumberScoringVolumes = 3; // downstream, side, upstream + static const G4int fkNumberKinematicRegions = 3; // all, below 20 MeV, above 20 MeV + static const G4int fkNumberParticleTypes = 11; // all, e, gamma, mu, nu, pi, n, p, ions, // other-mesons, other-baryons - static const G4int numberCombinations = - numberScoringVolumes*numberKinematicRegions*numberParticleTypes; - static const std::array< G4String, numberScoringVolumes > arrayScoringVolumeNames; - static const std::array< G4String, numberKinematicRegions > arrayKinematicRegionNames; - static const std::array< G4String, numberParticleTypes > arrayParticleTypeNames; - static G4int getIndex( const G4int iScoringVolume, const G4int iKinematicRegion, + static const G4int fkNumberCombinations = + fkNumberScoringVolumes*fkNumberKinematicRegions*fkNumberParticleTypes; + static const std::array< G4String, fkNumberScoringVolumes > fkArrayScoringVolumeNames; + static const std::array< G4String, fkNumberKinematicRegions > fkArrayKinematicRegionNames; + static const std::array< G4String, fkNumberParticleTypes > fkArrayParticleTypeNames; + static G4int GetIndex( const G4int iScoringVolume, const G4int iKinematicRegion, const G4int iParticleType ); private: @@ -102,7 +102,7 @@ class SteppingAction : public G4UserSteppingAction { G4double fCubicVolumeScoringUpDown; G4double fCubicVolumeScoringSide; - std::array< G4double, numberCombinations > fArraySumStepLengths; + std::array< G4double, fkNumberCombinations > fArraySumStepLengths; // Array to collect the sum of step lengths in the scoring volumes for the whole run, // according to the various cases (kinematical region and particle type). // Note that the fluence in a scoring volume is defined as sum of step lengths diff --git a/examples/extended/hadronic/ParticleFluence/Calo/include/TrackingAction.hh b/examples/extended/hadronic/ParticleFluence/Calo/include/TrackingAction.hh new file mode 100644 index 0000000000..a039273cd2 --- /dev/null +++ b/examples/extended/hadronic/ParticleFluence/Calo/include/TrackingAction.hh @@ -0,0 +1,92 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +/// \file TrackingAction.hh +/// \brief Definition of the TrackingAction class +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef TrackingAction_h +#define TrackingAction_h 1 + +#include "globals.hh" +#include "G4UserTrackingAction.hh" +#include + +class Run; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class TrackingAction : public G4UserTrackingAction { + // We are using this class to monitor the average multiplicity, the average + // kinetic energy, and the average total energy flow (i.e. sum of the + // kinetic energies) of different particle types as they are produced + // inside the calorimeter. + // The aim is then to try to correlate some changes in these (more primitive) + // quantities with the observed changes in the (more indirect and complex) + // particle fluences. + public: + TrackingAction(); + ~TrackingAction() override = default; + void PreUserTrackingAction( const G4Track* ) override; + void PostUserTrackingAction( const G4Track* ) override; + + void Initialize(); + // This method is called by RunAction::BeginOfRunAction for the + // initialization of the tracking-action at the beginning of each Run. + + void SetRunPointer( Run* inputValue = nullptr ) { fRunPtr = inputValue; } + // This method is called by RunAction::BeginOfRunAction for providing to the + // tracking-action the pointer to the run object at the beginning of each Run. + // This pointer is then used to pass the information collected by the tracking-action + // to the run object. + + static const G4int fkNumberScoringVolumes = 1; // calorimeter + static const G4int fkNumberKinematicRegions = 3; // all, below 20 MeV, above 20 MeV + static const G4int fkNumberParticleTypes = 11; // all, e, gamma, mu, nu, pi, n, p, ions, + // other-mesons, other-baryons + static const G4int fkNumberCombinations = + fkNumberScoringVolumes*fkNumberKinematicRegions*fkNumberParticleTypes; + static const std::array< G4String, fkNumberScoringVolumes > fkArrayScoringVolumeNames; + static const std::array< G4String, fkNumberKinematicRegions > fkArrayKinematicRegionNames; + static const std::array< G4String, fkNumberParticleTypes > fkArrayParticleTypeNames; + static G4int GetIndex( const G4int iScoringVolume, const G4int iKinematicRegion, + const G4int iParticleType ); + + private: + Run* fRunPtr; // Pointer to the Run object + + std::array< G4int, fkNumberCombinations > fArrayMultiplicities; + std::array< G4double, fkNumberCombinations > fArraySumKineticEnergies; + // Keep record of the fkNumber of particles and their kinetic energy at production, + // according to the particle type and their kinetic energy range (below/above 20 MeV). +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/hadronic/ParticleFluence/Calo/src/ActionInitialization.cc b/examples/extended/hadronic/ParticleFluence/Calo/src/ActionInitialization.cc index c008bedc0d..1cb9bafe00 100644 --- a/examples/extended/hadronic/ParticleFluence/Calo/src/ActionInitialization.cc +++ b/examples/extended/hadronic/ParticleFluence/Calo/src/ActionInitialization.cc @@ -35,6 +35,7 @@ #include "PrimaryGeneratorAction.hh" #include "RunAction.hh" #include "SteppingAction.hh" +#include "TrackingAction.hh" #include "Run.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,10 +46,6 @@ ActionInitialization( const DetectorConstruction* inputDetectorConstruction ) : //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::~ActionInitialization() {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ActionInitialization::BuildForMaster() const { // This is NOT called in SEQ-mode, while in the MT-mode is called only for the Master thread. SetUserAction( new RunAction ); @@ -61,7 +58,9 @@ void ActionInitialization::Build() const { SetUserAction( new PrimaryGeneratorAction( fPtrDetectorConstruction ) ); SteppingAction* steppingAction = new SteppingAction; SetUserAction( steppingAction ); - SetUserAction( new RunAction( steppingAction ) ); + TrackingAction* trackingAction = new TrackingAction; + SetUserAction( trackingAction ); + SetUserAction( new RunAction( steppingAction, trackingAction ) ); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Calo/src/DetectorConstruction.cc b/examples/extended/hadronic/ParticleFluence/Calo/src/DetectorConstruction.cc old mode 100755 new mode 100644 index 909993b22c..cf2b2fc893 --- a/examples/extended/hadronic/ParticleFluence/Calo/src/DetectorConstruction.cc +++ b/examples/extended/hadronic/ParticleFluence/Calo/src/DetectorConstruction.cc @@ -276,7 +276,7 @@ void DetectorConstruction::DefineMaterials() { //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4VPhysicalVolume* DetectorConstruction::ConstructCalorimeter() { - if ( ! areParametersOK() ) { + if ( ! AreParametersOK() ) { G4cout << " DetectorConstruction::ConstructCalorimeter() : ***ERROR*** " << G4endl << "\t PARAMETERS NOT WELL-DEFINED! GEOMETRY UNCHANGED." << G4endl; @@ -517,34 +517,34 @@ G4VPhysicalVolume* DetectorConstruction::ConstructCalorimeter() { //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4bool DetectorConstruction::areParametersOK() { +G4bool DetectorConstruction::AreParametersOK() { bool isOk = true; if ( ! fAbsorberMaterial ) { isOk = false; - G4cout << " DetectorConstruction::areParametersOK() : UNDEFINED absorber material" << G4endl; + G4cout << " DetectorConstruction::AreParametersOK() : UNDEFINED absorber material" << G4endl; } if ( ! fActiveMaterial ) { isOk = false; - G4cout << " DetectorConstruction::areParametersOK() : UNDEFINED active material" << G4endl; + G4cout << " DetectorConstruction::AreParametersOK() : UNDEFINED active material" << G4endl; } if ( fAbsorberTotalLength <= 0.0 ) { isOk = false; - G4cout << " DetectorConstruction::areParametersOK() : fAbsorberTotalLength = " + G4cout << " DetectorConstruction::AreParametersOK() : fAbsorberTotalLength = " << fAbsorberTotalLength << G4endl; } if ( fCalorimeterRadius <= 0.0 ) { isOk = false; - G4cout << " DetectorConstruction::areParametersOK() : fCalorimeterRadius = " + G4cout << " DetectorConstruction::AreParametersOK() : fCalorimeterRadius = " << fCalorimeterRadius << G4endl; } if ( fActiveLayerNumber <= 0 ) { isOk = false; - G4cout << " DetectorConstruction::areParametersOK() : fActiveLayerNumber = " + G4cout << " DetectorConstruction::AreParametersOK() : fActiveLayerNumber = " << fActiveLayerNumber << G4endl; } if ( fActiveLayerSize <= 0.0 ) { isOk = false; - G4cout << " DetectorConstruction::areParametersOK() : fActiveLayerSize = " + G4cout << " DetectorConstruction::AreParametersOK() : fActiveLayerSize = " << fActiveLayerSize << G4endl; } return isOk; diff --git a/examples/extended/hadronic/ParticleFluence/Calo/src/DetectorMessenger.cc b/examples/extended/hadronic/ParticleFluence/Calo/src/DetectorMessenger.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Calo/src/PrimaryGeneratorAction.cc b/examples/extended/hadronic/ParticleFluence/Calo/src/PrimaryGeneratorAction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Calo/src/Run.cc b/examples/extended/hadronic/ParticleFluence/Calo/src/Run.cc index 17fc0e002e..671056b226 100644 --- a/examples/extended/hadronic/ParticleFluence/Calo/src/Run.cc +++ b/examples/extended/hadronic/ParticleFluence/Calo/src/Run.cc @@ -44,15 +44,13 @@ Run::Run() : G4Run(), fNumEvents( 0 ), fAbsorberMaterialName( "" ), fActiveMaterialName( "" ), fCubicVolumeScoringUpDown( 1.0 ), fCubicVolumeScoringSide( 1.0 ) { - for ( G4int i = 0; i < SteppingAction::numberCombinations; ++i ) fArray[i] = 0.0; + fSteppingArray.fill( 0.0 ); + fTrackingArray1.fill( 0 ); + fTrackingArray2.fill( 0.0 ); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Run::~Run() {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void Run::RecordEvent( const G4Event* anEvent ) { // This method is called automatically by the Geant4 kernel (not by the user!) at the end // of each event : in MT-mode, it is called only for the working thread that handled the event. @@ -67,23 +65,27 @@ void Run::Merge( const G4Run* aRun ) { // This method is called automatically by the Geant4 kernel (not by the user!) only in the case // of multithreaded mode and only for working threads. const Run* localRun = static_cast< const Run* >( aRun ); - fPrimaryParticleId = localRun->getPrimaryParticleId(); - fPrimaryParticleEnergy = localRun->getPrimaryParticleEnergy(); - fPrimaryParticleDirection = localRun->getPrimaryParticleDirection(); - fAbsorberMaterialName = localRun->getAbsorberMaterialName(); - fActiveMaterialName = localRun->getActiveMaterialName(); - fCubicVolumeScoringUpDown = localRun->getCubicVolumeScoringUpDown(); - fCubicVolumeScoringSide = localRun->getCubicVolumeScoringSide(); + fPrimaryParticleId = localRun->GetPrimaryParticleId(); + fPrimaryParticleEnergy = localRun->GetPrimaryParticleEnergy(); + fPrimaryParticleDirection = localRun->GetPrimaryParticleDirection(); + fAbsorberMaterialName = localRun->GetAbsorberMaterialName(); + fActiveMaterialName = localRun->GetActiveMaterialName(); + fCubicVolumeScoringUpDown = localRun->GetCubicVolumeScoringUpDown(); + fCubicVolumeScoringSide = localRun->GetCubicVolumeScoringSide(); fNumEvents += localRun->GetNumberOfEvent(); - for ( G4int i = 0; i < SteppingAction::numberCombinations; ++i ) { - fArray[i] += localRun->getArray()[i]; + for ( G4int i = 0; i < SteppingAction::fkNumberCombinations; ++i ) { + fSteppingArray[i] += localRun->GetSteppingArray()[i]; + } + for ( G4int i = 0; i < TrackingAction::fkNumberCombinations; ++i ) { + fTrackingArray1[i] += localRun->GetTrackingArray1()[i]; + fTrackingArray2[i] += localRun->GetTrackingArray2()[i]; } G4Run::Merge( aRun ); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Run::printInfo() const { +void Run::PrintInfo() const { // This method is called by RunAction::EndOfRunAction. In MT-mode, only the master thread // calls it. const G4double floatingNumberOfEvents = @@ -96,7 +98,7 @@ void Run::printInfo() const { const G4double factorSide = conversionFactor / ( fCubicVolumeScoringSide*floatingNumberOfEvents ); G4cout << std::setprecision(6) << G4endl << G4endl - << " =============== Run::printInfo() =============== \t RunID = " << GetRunID() + << " =============== Run::PrintInfo() =============== \t RunID = " << GetRunID() << G4endl << " Primary particle PDG code = " << fPrimaryParticleId << G4endl << " Primary particle kinetic energy = " << fPrimaryParticleEnergy / CLHEP::GeV @@ -109,30 +111,70 @@ void Run::printInfo() const { << " Number of events = " << floatingNumberOfEvents << G4endl << " Conversion factor: fluence from mm^-2 to cm^-2 = " << conversionFactor << G4endl << " Particle fluence in unit of cm^-2 :" << G4endl; - for ( G4int i = 0; i < SteppingAction::numberScoringVolumes; ++i ) { + for ( G4int i = 0; i < SteppingAction::fkNumberScoringVolumes; ++i ) { G4double factor = ( i == 1 ? factorSide : factorUpDown ); - for ( G4int j = 0; j < SteppingAction::numberKinematicRegions; ++j ) { - for ( G4int k = 0; k < SteppingAction::numberParticleTypes; ++k ) { - G4int index = SteppingAction::getIndex( i, j, k ); + for ( G4int j = 0; j < SteppingAction::fkNumberKinematicRegions; ++j ) { + for ( G4int k = 0; k < SteppingAction::fkNumberParticleTypes; ++k ) { + G4int index = SteppingAction::GetIndex( i, j, k ); //G4cout << "(i, j, k)=(" << i << ", " << j << ", " << k << ") ->" << index; G4cout << " case=" << std::setw(3) << index - << " " << std::setw(12) << SteppingAction::arrayScoringVolumeNames[i] - << " " << std::setw(12) << SteppingAction::arrayKinematicRegionNames[j] - << " " << std::setw(12) << SteppingAction::arrayParticleTypeNames[k] - << " " << factor*fArray[index] << G4endl; + << " " << std::setw(12) << SteppingAction::fkArrayScoringVolumeNames[i] + << " " << std::setw(12) << SteppingAction::fkArrayKinematicRegionNames[j] + << " " << std::setw(12) << SteppingAction::fkArrayParticleTypeNames[k] + << " " << std::setw( 8) << factor*fSteppingArray[index] << G4endl; } } } + G4cout << " ------------------------------------------------------------- " << G4endl + << " Extra information: particle production \t \t [MeV]" + << G4endl; + const G4double normalization = 1.0 / floatingNumberOfEvents; + for ( G4int i = 0; i < TrackingAction::fkNumberScoringVolumes; ++i ) { + for ( G4int j = 0; j < TrackingAction::fkNumberKinematicRegions; ++j ) { + for ( G4int k = 0; k < TrackingAction::fkNumberParticleTypes; ++k ) { + G4int index = TrackingAction::GetIndex( i, j, k ); + //G4cout << "(i, j, k)=(" << i << ", " << j << ", " << k << ") ->" << index; + G4cout << " case=" << std::setw(3) << index + << " " << std::setw(12) << TrackingAction::fkArrayScoringVolumeNames[i] + << " " << std::setw(12) << TrackingAction::fkArrayKinematicRegionNames[j] + << " " << std::setw(12) << TrackingAction::fkArrayParticleTypeNames[k] + << " " << std::setw( 8) << normalization * fTrackingArray1[index] + << " " << std::setw( 8) << ( fTrackingArray1[index] > 0 ? + fTrackingArray2[index] / fTrackingArray1[index] : + 0.0 ) + << " " << std::setw( 8) << normalization * fTrackingArray2[index] + << G4endl; + } + } + } G4cout << " ============================================================= " << G4endl << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Run::setArray( const std::array< G4double, - SteppingAction::numberCombinations >& inputArray ) { - for ( G4int i = 0; i < SteppingAction::numberCombinations; ++i ) { - fArray[i] = inputArray[i]; - } +void Run::SetSteppingArray( const std::array< G4double, + SteppingAction::fkNumberCombinations >& inputArray ) { + for ( G4int i = 0; i < SteppingAction::fkNumberCombinations; ++i ) { + fSteppingArray[i] = inputArray[i]; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::SetTrackingArray1( const std::array< G4int, + TrackingAction::fkNumberCombinations >& inputArray ) { + for ( G4int i = 0; i < TrackingAction::fkNumberCombinations; ++i ) { + fTrackingArray1[i] = inputArray[i]; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::SetTrackingArray2( const std::array< G4double, + TrackingAction::fkNumberCombinations >& inputArray ) { + for ( G4int i = 0; i < TrackingAction::fkNumberCombinations; ++i ) { + fTrackingArray2[i] = inputArray[i]; + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Calo/src/RunAction.cc b/examples/extended/hadronic/ParticleFluence/Calo/src/RunAction.cc old mode 100755 new mode 100644 index 99542cd18e..ace4a14f30 --- a/examples/extended/hadronic/ParticleFluence/Calo/src/RunAction.cc +++ b/examples/extended/hadronic/ParticleFluence/Calo/src/RunAction.cc @@ -36,16 +36,13 @@ #include "G4Run.hh" #include "Run.hh" #include "SteppingAction.hh" +#include "TrackingAction.hh" #include "G4RunManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::RunAction( SteppingAction* steppingAction ) : - G4UserRunAction(), fSteppingAction( steppingAction ) {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -RunAction::~RunAction() {} +RunAction::RunAction( SteppingAction* steppingAction, TrackingAction* trackingAction ) : + G4UserRunAction(), fSteppingAction( steppingAction ), fTrackingAction( trackingAction ) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -57,10 +54,15 @@ G4Run* RunAction::GenerateRun() { void RunAction::BeginOfRunAction( const G4Run* aRun ) { G4cout << "### Run " << aRun->GetRunID() << " starts." << G4endl; - if ( fSteppingAction ) { - fSteppingAction->initialize(); - Run* run = const_cast< Run* >( static_cast< const Run* >( aRun ) ); - if ( run != nullptr ) fSteppingAction->setRunPointer( run ); + Run* run = const_cast< Run* >( static_cast< const Run* >( aRun ) ); + if ( run == nullptr ) return; + if ( fSteppingAction != nullptr ) { + fSteppingAction->Initialize(); + fSteppingAction->SetRunPointer( run ); + } + if ( fTrackingAction != nullptr ) { + fTrackingAction->Initialize(); + fTrackingAction->SetRunPointer( run ); } } @@ -69,7 +71,7 @@ void RunAction::BeginOfRunAction( const G4Run* aRun ) { void RunAction::EndOfRunAction( const G4Run* aRun ) { const Run* run = static_cast< const Run* >( aRun ); if ( run == nullptr || run->GetNumberOfEvent() == 0 ) return; - if ( IsMaster() ) run->printInfo(); + if ( IsMaster() ) run->PrintInfo(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Calo/src/SteppingAction.cc b/examples/extended/hadronic/ParticleFluence/Calo/src/SteppingAction.cc old mode 100755 new mode 100644 index a684c755c3..b904e9024c --- a/examples/extended/hadronic/ParticleFluence/Calo/src/SteppingAction.cc +++ b/examples/extended/hadronic/ParticleFluence/Calo/src/SteppingAction.cc @@ -46,28 +46,32 @@ #include "G4SystemOfUnits.hh" #include "Run.hh" -const std::array< G4String, SteppingAction::numberScoringVolumes > - SteppingAction::arrayScoringVolumeNames = { "downstream", "side", "upstream" }; +const std::array< G4String, SteppingAction::fkNumberScoringVolumes > + SteppingAction::fkArrayScoringVolumeNames = { "downstream", "side", "upstream" }; -const std::array< G4String, SteppingAction::numberKinematicRegions > - SteppingAction::arrayKinematicRegionNames = { "", "below 20 MeV", "above 20 MeV" }; +const std::array< G4String, SteppingAction::fkNumberKinematicRegions > + SteppingAction::fkArrayKinematicRegionNames = { "", "below 20 MeV", "above 20 MeV" }; -const std::array< G4String, SteppingAction::numberParticleTypes > - SteppingAction::arrayParticleTypeNames = { "all", "electron", "gamma", "muon", "neutrino", - "pion", "neutron", "proton", "ion", "otherMeson", - "otherBaryon" }; +const std::array< G4String, SteppingAction::fkNumberParticleTypes > + SteppingAction::fkArrayParticleTypeNames = { "all", "electron", "gamma", "muon", "neutrino", + "pion", "neutron", "proton", "ion", "otherMeson", + "otherBaryon" }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4int SteppingAction::getIndex( const G4int iScoringVolume, const G4int iKinematicRegion, +G4int SteppingAction::GetIndex( const G4int iScoringVolume, const G4int iKinematicRegion, const G4int iParticleType ) { G4int index = -1; - if ( iScoringVolume >= 0 && iScoringVolume < numberScoringVolumes && - iKinematicRegion >= 0 && iKinematicRegion < numberKinematicRegions && - iParticleType >= 0 && iParticleType < numberParticleTypes ) { - index = iScoringVolume * numberKinematicRegions * numberParticleTypes + - iKinematicRegion * numberParticleTypes + - iParticleType; + if ( iScoringVolume >= 0 && iScoringVolume < fkNumberScoringVolumes && + iKinematicRegion >= 0 && iKinematicRegion < fkNumberKinematicRegions && + iParticleType >= 0 && iParticleType < fkNumberParticleTypes ) { + index = iScoringVolume * fkNumberKinematicRegions * fkNumberParticleTypes + + iKinematicRegion * fkNumberParticleTypes + + iParticleType; + } + if ( index < 0 || index >= fkNumberCombinations ) { + G4cerr << "SteppingAction::GetIndex : WRONG index=" << index << " set it to 0 !" << G4endl; + index = 0; } return index; } @@ -75,16 +79,12 @@ G4int SteppingAction::getIndex( const G4int iScoringVolume, const G4int iKinemat //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... SteppingAction::SteppingAction() :G4UserSteppingAction() { - initialize(); + Initialize(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::~SteppingAction() {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void SteppingAction::initialize() { +void SteppingAction::Initialize() { // Initialization needed at the beginning of each Run fPrimaryParticleId = 0; fPrimaryParticleEnergy = 0.0; @@ -98,16 +98,16 @@ void SteppingAction::initialize() { fIsFirstStepInScoringSide = true; fCubicVolumeScoringUpDown = 1.0; fCubicVolumeScoringSide = 1.0; - for ( G4int i = 0; i < numberCombinations; ++i ) { + for ( G4int i = 0; i < fkNumberCombinations; ++i ) { fArraySumStepLengths[i] = 0.0; } /* - for ( G4int i = 0; i < numberCombinations; ++i ) fArraySumStepLengths[i] = 999.9; - G4cout << " numberCombinations=" << numberCombinations << G4endl; - for ( G4int i = 0; i < numberScoringVolumes; ++i ) { - for ( G4int j = 0; j < numberKinematicRegions; ++j ) { - for ( G4int k = 0; k < numberParticleTypes; ++k ) { - G4int index = getIndex( i, j, k ); + for ( G4int i = 0; i < fkNumberCombinations; ++i ) fArraySumStepLengths[i] = 999.9; + G4cout << " fkNumberCombinations=" << fkNumberCombinations << G4endl; + for ( G4int i = 0; i < fkNumberScoringVolumes; ++i ) { + for ( G4int j = 0; j < fkNumberKinematicRegions; ++j ) { + for ( G4int k = 0; k < fkNumberParticleTypes; ++k ) { + G4int index = GetIndex( i, j, k ); G4cout << "(i, j, k)=(" << i << ", " << j << ", " << k << ") ->" << index; if ( fArraySumStepLengths[ index ] < 1.0 ) G4cout << " <=== REPEATED!"; else fArraySumStepLengths[ index ] = 0.0; @@ -115,7 +115,7 @@ void SteppingAction::initialize() { } } } - for ( G4int i = 0; i < numberCombinations; ++i ) { + for ( G4int i = 0; i < fkNumberCombinations; ++i ) { if ( fArraySumStepLengths[i] > 999.0 ) G4cout << " i=" << i << " NOT COVERED !" << G4endl; } */ @@ -131,9 +131,9 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { fPrimaryParticleEnergy = theStep->GetPreStepPoint()->GetKineticEnergy(); fPrimaryParticleDirection = theStep->GetPreStepPoint()->GetMomentumDirection(); if ( fRunPtr ) { - fRunPtr->setPrimaryParticleId( fPrimaryParticleId ); - fRunPtr->setPrimaryParticleEnergy( fPrimaryParticleEnergy ); - fRunPtr->setPrimaryParticleDirection( fPrimaryParticleDirection ); + fRunPtr->SetPrimaryParticleId( fPrimaryParticleId ); + fRunPtr->SetPrimaryParticleEnergy( fPrimaryParticleEnergy ); + fRunPtr->SetPrimaryParticleDirection( fPrimaryParticleDirection ); } fIsFirstStepOfTheEvent = false; } @@ -142,13 +142,13 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { if ( fIsFirstStepInAbsorberLayer && theStep->GetPreStepPoint()->GetPhysicalVolume()->GetName() == "physiAbsorber" ) { fAbsorberMaterialName = theStep->GetPreStepPoint()->GetMaterial()->GetName(); - if ( fRunPtr ) fRunPtr->setAbsorberMaterialName( fAbsorberMaterialName ); + if ( fRunPtr ) fRunPtr->SetAbsorberMaterialName( fAbsorberMaterialName ); fIsFirstStepInAbsorberLayer = false; } if ( fIsFirstStepInActiveLayer && theStep->GetPreStepPoint()->GetPhysicalVolume()->GetName() == "physiActive" ) { fActiveMaterialName = theStep->GetPreStepPoint()->GetMaterial()->GetName(); - if ( fRunPtr ) fRunPtr->setActiveMaterialName( fActiveMaterialName ); + if ( fRunPtr ) fRunPtr->SetActiveMaterialName( fActiveMaterialName ); fIsFirstStepInActiveLayer = false; } // Get information on step lengths in the scoring volumes @@ -158,7 +158,7 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { if ( fIsFirstStepInScoringUpDown ) { fCubicVolumeScoringUpDown = theStep->GetTrack()->GetVolume()->GetLogicalVolume()->GetSolid()->GetCubicVolume(); - if ( fRunPtr ) fRunPtr->setCubicVolumeScoringUpDown( fCubicVolumeScoringUpDown ); + if ( fRunPtr ) fRunPtr->SetCubicVolumeScoringUpDown( fCubicVolumeScoringUpDown ); fIsFirstStepInScoringUpDown = false; } } else if ( theStep->GetPreStepPoint()->GetPhysicalVolume()->GetName() == "physiScoringSide" ) { @@ -166,7 +166,7 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { if ( fIsFirstStepInScoringSide ) { fCubicVolumeScoringSide = theStep->GetTrack()->GetVolume()->GetLogicalVolume()->GetSolid()->GetCubicVolume(); - if ( fRunPtr ) fRunPtr->setCubicVolumeScoringSide( fCubicVolumeScoringSide ); + if ( fRunPtr ) fRunPtr->SetCubicVolumeScoringSide( fCubicVolumeScoringSide ); fIsFirstStepInScoringSide = false; } } else if ( theStep->GetPreStepPoint()->GetPhysicalVolume()->GetName() == @@ -175,7 +175,7 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { if ( fIsFirstStepInScoringUpDown ) { fCubicVolumeScoringUpDown = theStep->GetTrack()->GetVolume()->GetLogicalVolume()->GetSolid()->GetCubicVolume(); - if ( fRunPtr ) fRunPtr->setCubicVolumeScoringUpDown( fCubicVolumeScoringUpDown ); + if ( fRunPtr ) fRunPtr->SetCubicVolumeScoringUpDown( fCubicVolumeScoringUpDown ); fIsFirstStepInScoringUpDown = false; } } @@ -221,18 +221,18 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { else if ( absPdg > 1000 ) iParticleType = 10; // other baryons (e.g. hyperons, anti-hyperons, // etc.) // Consider the specific case : scoring volume, kinematic region and particle type - G4int index = getIndex( iScoringVolume, iKinematicRegion, iParticleType ); + G4int index = GetIndex( iScoringVolume, iKinematicRegion, iParticleType ); fArraySumStepLengths[index] += stepLength; // Consider the "all" particle case, with the same scoring volume and kinematic region - index = getIndex( iScoringVolume, iKinematicRegion, 0 ); + index = GetIndex( iScoringVolume, iKinematicRegion, 0 ); fArraySumStepLengths[index] += stepLength; // Consider the "any" kinematic region case, with the same scoring volume and particle type - index = getIndex( iScoringVolume, 0, iParticleType ); + index = GetIndex( iScoringVolume, 0, iParticleType ); fArraySumStepLengths[index] += stepLength; // Consider the "any" kinematic region and "all" particle, with the same scoring volume - index = getIndex( iScoringVolume, 0, 0 ); + index = GetIndex( iScoringVolume, 0, 0 ); fArraySumStepLengths[index] += stepLength; - if ( fRunPtr ) fRunPtr->setArray( fArraySumStepLengths ); + if ( fRunPtr ) fRunPtr->SetSteppingArray( fArraySumStepLengths ); } } diff --git a/examples/extended/hadronic/ParticleFluence/Calo/src/TrackingAction.cc b/examples/extended/hadronic/ParticleFluence/Calo/src/TrackingAction.cc new file mode 100644 index 0000000000..b079ba6b29 --- /dev/null +++ b/examples/extended/hadronic/ParticleFluence/Calo/src/TrackingAction.cc @@ -0,0 +1,146 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +/// \file TrackingAction.cc +/// \brief Implementation of the TrackingAction class +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "TrackingAction.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" +#include "G4IonTable.hh" +#include "G4StepPoint.hh" +#include "G4SystemOfUnits.hh" +#include "Run.hh" + +const std::array< G4String, TrackingAction::fkNumberScoringVolumes > +TrackingAction::fkArrayScoringVolumeNames = { "calorimeter" }; + +const std::array< G4String, TrackingAction::fkNumberKinematicRegions > +TrackingAction::fkArrayKinematicRegionNames = { "", "below 20 MeV", "above 20 MeV" }; + +const std::array< G4String, TrackingAction::fkNumberParticleTypes > +TrackingAction::fkArrayParticleTypeNames = { "all", "electron", "gamma", "muon", "neutrino", + "pion", "neutron", "proton", "ion", "otherMeson", + "otherBaryon" }; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4int TrackingAction::GetIndex( const G4int iScoringVolume, const G4int iKinematicRegion, + const G4int iParticleType ) { + G4int index = -1; + if ( iScoringVolume >= 0 && iScoringVolume < fkNumberScoringVolumes && + iKinematicRegion >= 0 && iKinematicRegion < fkNumberKinematicRegions && + iParticleType >= 0 && iParticleType < fkNumberParticleTypes ) { + index = iScoringVolume * fkNumberKinematicRegions * fkNumberParticleTypes + + iKinematicRegion * fkNumberParticleTypes + + iParticleType; + } + return index; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +TrackingAction::TrackingAction() : G4UserTrackingAction() { + Initialize(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::Initialize() { + // Initialization needed at the beginning of each Run + fArrayMultiplicities.fill( 0 ); + fArraySumKineticEnergies.fill( 0.0 ); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PreUserTrackingAction( const G4Track* aTrack ) { + // This method is called not only once when a particle is created, + // but also each time it is resumed, in the case the track gets suspended, + // as it happens in the case of neutrons with _HP Physics Lists. + // To be sure that we collect information about a track one and only once, + // we require that the current step be the first one. + if ( aTrack == nullptr || + aTrack->GetCurrentStepNumber() != 0 || + aTrack->GetDefinition() == nullptr || + aTrack->GetLogicalVolumeAtVertex() == nullptr || + ( aTrack->GetLogicalVolumeAtVertex()->GetName() != "logicAbsorber" && + aTrack->GetLogicalVolumeAtVertex()->GetName() != "logicActive" ) ) { + return; + } + G4int iScoringVolume = 0; + // Three kinematical regions: [0] : any value ; [1] : below 20 MeV ; [2] : above 20 MeV + G4int iKinematicRegion = aTrack->GetKineticEnergy() < 20.0 ? 1 : 2; + G4int absPdg = std::abs( aTrack->GetDefinition()->GetPDGEncoding() ); + G4int iParticleType = -1; + if ( absPdg == 11 ) iParticleType = 1; // electron (and positron) + else if ( absPdg == 22 ) iParticleType = 2; // gamma + else if ( absPdg == 13 ) iParticleType = 3; // muons (mu- and mu+) + else if ( absPdg == 12 || absPdg == 14 || absPdg == 16 ) iParticleType = 4; + // neutrinos (and anti-neutrinos), all flavors + else if ( absPdg == 111 || absPdg == 211 ) iParticleType = 5; // (charged) pions + else if ( absPdg == 2112 ) iParticleType = 6; // neutron (and anti-neutron) + else if ( absPdg == 2212 ) iParticleType = 7; // proton (and anti-proton) + else if ( G4IonTable::IsIon( aTrack->GetDefinition() ) || + G4IonTable::IsAntiIon( aTrack->GetDefinition() ) ) iParticleType = 8; + // ions (and anti-ions) + else if ( absPdg < 1000 ) iParticleType = 9; // other mesons (e.g. kaons) + // (Note: this works in most cases, but not always!) + else if ( absPdg > 1000 ) iParticleType = 10; // other baryons (e.g. hyperons, + // anti-hyperons, etc.) + // Consider the specific case : scoring volume, kinematic region and particle type + G4int index = GetIndex( iScoringVolume, iKinematicRegion, iParticleType ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + // Consider the "all" particle case, with the same scoring volume and kinematic region + index = GetIndex( iScoringVolume, iKinematicRegion, 0 ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + // Consider the "any" kinematic region case, with the same scoring volume and particle type + index = GetIndex( iScoringVolume, 0, iParticleType ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + // Consider the "any" kinematic region and "all" particle, with the same scoring volume + index = GetIndex( iScoringVolume, 0, 0 ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + if ( fRunPtr ) { + fRunPtr->SetTrackingArray1( fArrayMultiplicities ); + fRunPtr->SetTrackingArray2( fArraySumKineticEnergies ); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PostUserTrackingAction( const G4Track* /* aTrack */ ) {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/.README.txt b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/.README.txt index 24575bd3b1..b4912fa997 100644 --- a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/.README.txt +++ b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/.README.txt @@ -1,7 +1,7 @@ ///\file "hadronic/ParticleFluence/ConcentricSpheres/.README.txt" ///\brief Example ParticleFluence/ConcentricSpheres README page -/*! \page ExampeParticleFluenceConcentricSpheres Example ConcentricSpheres +/*! \page ExampleConcentricSpheres Example ConcentricSpheres In this example, the particle fluence is evaluated for a set-up made of one target solid sphere, at the center of which a particle is shot @@ -25,6 +25,10 @@ The particle fluence is estimated by summing the track length in a (very low density gas) material, immediately outside one of the targets - and then dividing for the cubic volume of such scoring volume. +Complementary information on average multiplicity, average kinetic energy, +and average total energy flow (i.e. sum of kinetic energies) for the +particles produced in the three targets are also computed. + The particle fluence is evaluated for the following 11 particle types: - all - electron + positron @@ -54,14 +58,18 @@ physics list is used). To build this example: - mkdir Build; cd Build - cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DGeant4_DIR=/path-to-geant4-libraries ../. - make +\verbatim +mkdir Build; cd Build +cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DGeant4_DIR=/path-to-geant4-libraries ../. +make +\endverbatim To run it: - ./ConcentricSpheres all_together.g4 +\verbatim +./ConcentricSpheres all_together.g4 +\endverbatim which shoots 50 GeV pion- on three different configurations (Scintillator-PbWO4-Copper, LiquidArgon-Lead-Iron, Silicon-Tungsten-Tungsten), diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/ConcentricSpheres.cc b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/ConcentricSpheres.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/ConcentricSpheres.out b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/ConcentricSpheres.out new file mode 100644 index 0000000000..be24e4fdf6 --- /dev/null +++ b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/ConcentricSpheres.out @@ -0,0 +1,2136 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + +### G4PhysListFactory WARNING: environment variable PHYSLIST is not defined + Default Physics Lists FTFP_BERT is instantiated +G4PhysListFactory::GetReferencePhysList EMoption= 0 +<<< Geant4 Physics List simulation engine: FTFP_BERT + + +DetectorConstruction::ConstructSphere() : + World (box) size: + x : -/+ 1870 mm y : -/+ 1870 mm z : -/+ 1870 mm + + + ------ DetectorConstruction::PrintParameters() ------ + MaterialTracker = G4_Si + MaterialEmCalo = G4_PbWO4 + MaterialHadCalo = G4_Fe + InnerRadiusTracker = 100 mm + OuterRadiusTracker = 200 mm + InnerRadiusEmCalo = 300 mm + OuterRadiusEmCalo = 600 mm + InnerRadiusHadCalo = 700 mm + OuterRadiusHadCalo = 1700 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + + + hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval + for pions : 3 to 6 GeV + for kaons : 3 to 6 GeV + for proton : 3 to 6 GeV + for neutron : 3 to 6 GeV + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 + + ------ DetectorConstruction::PrintParameters() ------ + MaterialTracker = G4_POLYSTYRENE + MaterialEmCalo = G4_PbWO4 + MaterialHadCalo = G4_Cu + InnerRadiusTracker = 50 mm + OuterRadiusTracker = 250 mm + InnerRadiusEmCalo = 300 mm + OuterRadiusEmCalo = 600 mm + InnerRadiusHadCalo = 700 mm + OuterRadiusHadCalo = 1700 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + +Start re-initialization because + Geometry +has been modified since last Run. +DetectorConstruction::ConstructSphere() : + World (box) size: + x : -/+ 1870 mm y : -/+ 1870 mm z : -/+ 1870 mm + + + ------ DetectorConstruction::PrintParameters() ------ + MaterialTracker = G4_POLYSTYRENE + MaterialEmCalo = G4_PbWO4 + MaterialHadCalo = G4_Cu + InnerRadiusTracker = 50 mm + OuterRadiusTracker = 250 mm + InnerRadiusEmCalo = 300 mm + OuterRadiusEmCalo = 600 mm + InnerRadiusHadCalo = 700 mm + OuterRadiusHadCalo = 1700 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 7 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 1 mm) +Step function for muons/hadrons (0.2, 0.1 mm) +Step function for light ions (0.2, 0.1 mm) +Step function for general ions (0.2, 0.1 mm) +Lowest e+e- kinetic energy 1 keV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 0 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 0 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 0 eV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 1 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 0 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.04 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 1 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 0 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 61 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 56 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Klein-Nishina : Emin= 0 eV Emax= 100 TeV + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + Stopping Power data for 17 ion/material pairs + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + + Process: nKiller + +--------------------------------------------------- + Hadronic Processes for B- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: B-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for D- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: D-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_He3Inelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_alphaInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_deuteronInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: anti_lambdaInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_neutronInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_protonInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_tritonInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: dInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for e+ + + Process: positronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for e- + + Process: electronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: GammaNPreco: 0 eV ---> 200 MeV + Model: BertiniCascade: 199 MeV ---> 6 GeV + Model: TheoFSGenerator: 3 GeV ---> 100 TeV + Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: lambdaInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu+ + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + + Process: muMinusCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: protonInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for sigma- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: sigma-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: tInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +================================================================ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Pre-compound model active 1 +Pre-compound excitation low energy 100 keV +Pre-compound excitation high energy 30 MeV +Type of de-excitation inverse x-section 3 +Type of de-excitation factory Evaporation+GEM +Number of de-excitation channels 68 +Min excitation energy 10 eV +Min energy per nucleon for multifragmentation 200 GeV +Limit excitation energy for Fermi BreakUp 20 MeV +Level density (1/MeV) 0.075 +Use simple level density model 1 +Use discrete excitation energy of the residual 1 +Time limit for long lived isomeres 1 ns +Isomer production flag 1 +Internal e- conversion flag 1 +Store e- internal conversion data 0 +Correlated gamma emission flag 0 +Max 2J for sampling of angular correlations 10 +======================================================================= + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 2 used in the geometry : Yes + Material : G4_PbWO4 + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 75.7749 keV e- 842.468 keV e+ 797.806 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 3 used in the geometry : Yes + Material : G4_Cu + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 20.5458 keV e- 1.03403 MeV e+ 979.823 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 0 starts. +### Run 0 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=68.800000s Real=69.454921s Sys=0.040000s + + + =============== Run::PrintInfo() =============== RunID = 0 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Tracker material = G4_POLYSTYRENE + EmCalo material = G4_PbWO4 + HadCalo material = G4_Cu + Cubic-volume scoring tracker shell = 8.17233e+06 mm^3 + Cubic-volume scoring emCalo shell = 4.59971e+07 mm^3 + Cubic-volume scoring hadCalo shell = 3.65309e+08 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 tracker forward all 0.0851809 + case= 1 tracker forward electron 0.000837738 + case= 2 tracker forward gamma 0.0186186 + case= 3 tracker forward muon 0 + case= 4 tracker forward neutrino 0.000444505 + case= 5 tracker forward pion 0.000582824 + case= 6 tracker forward neutron 0.064463 + case= 7 tracker forward proton 0.000193429 + case= 8 tracker forward ion 7.84278e-06 + case= 9 tracker forward otherMeson 3.19398e-05 + case= 10 tracker forward otherBaryon 9.84876e-07 + case= 11 tracker backward all 0.0112405 + case= 12 tracker backward electron 0.000106299 + case= 13 tracker backward gamma 0.0039838 + case= 14 tracker backward muon 0 + case= 15 tracker backward neutrino 0.000164771 + case= 16 tracker backward pion 7.50046e-06 + case= 17 tracker backward neutron 0.00697543 + case= 18 tracker backward proton 2.69502e-06 + case= 19 tracker backward ion 0 + case= 20 tracker backward otherMeson 0 + case= 21 tracker backward otherBaryon 0 + case= 22 tracker below 20 MeV forward all 0.0821334 + case= 23 tracker below 20 MeV forward electron 0.000698093 + case= 24 tracker below 20 MeV forward gamma 0.0181768 + case= 25 tracker below 20 MeV forward muon 0 + case= 26 tracker below 20 MeV forward neutrino 2.50762e-05 + case= 27 tracker below 20 MeV forward pion 1.34871e-05 + case= 28 tracker below 20 MeV forward neutron 0.0632096 + case= 29 tracker below 20 MeV forward proton 1.03328e-05 + case= 30 tracker below 20 MeV forward ion 0 + case= 31 tracker below 20 MeV forward otherMeson 0 + case= 32 tracker below 20 MeV forward otherBaryon 0 + case= 33 tracker below 20 MeV backward all 0.0108498 + case= 34 tracker below 20 MeV backward electron 0.000103588 + case= 35 tracker below 20 MeV backward gamma 0.00397543 + case= 36 tracker below 20 MeV backward muon 0 + case= 37 tracker below 20 MeV backward neutrino 0 + case= 38 tracker below 20 MeV backward pion 0 + case= 39 tracker below 20 MeV backward neutron 0.00677078 + case= 40 tracker below 20 MeV backward proton 0 + case= 41 tracker below 20 MeV backward ion 0 + case= 42 tracker below 20 MeV backward otherMeson 0 + case= 43 tracker below 20 MeV backward otherBaryon 0 + case= 44 tracker above 20 MeV forward all 0.00304746 + case= 45 tracker above 20 MeV forward electron 0.000139645 + case= 46 tracker above 20 MeV forward gamma 0.000441843 + case= 47 tracker above 20 MeV forward muon 0 + case= 48 tracker above 20 MeV forward neutrino 0.000419429 + case= 49 tracker above 20 MeV forward pion 0.000569336 + case= 50 tracker above 20 MeV forward neutron 0.00125334 + case= 51 tracker above 20 MeV forward proton 0.000183096 + case= 52 tracker above 20 MeV forward ion 7.84278e-06 + case= 53 tracker above 20 MeV forward otherMeson 3.19398e-05 + case= 54 tracker above 20 MeV forward otherBaryon 9.84876e-07 + case= 55 tracker above 20 MeV backward all 0.000390699 + case= 56 tracker above 20 MeV backward electron 2.7111e-06 + case= 57 tracker above 20 MeV backward gamma 8.37372e-06 + case= 58 tracker above 20 MeV backward muon 0 + case= 59 tracker above 20 MeV backward neutrino 0.000164771 + case= 60 tracker above 20 MeV backward pion 7.50046e-06 + case= 61 tracker above 20 MeV backward neutron 0.000204647 + case= 62 tracker above 20 MeV backward proton 2.69502e-06 + case= 63 tracker above 20 MeV backward ion 0 + case= 64 tracker above 20 MeV backward otherMeson 0 + case= 65 tracker above 20 MeV backward otherBaryon 0 + case= 66 emCalo forward all 0.089244 + case= 67 emCalo forward electron 0.0011056 + case= 68 emCalo forward gamma 0.0211333 + case= 69 emCalo forward muon 1.64497e-06 + case= 70 emCalo forward neutrino 0.000443906 + case= 71 emCalo forward pion 0.000240364 + case= 72 emCalo forward neutron 0.0662049 + case= 73 emCalo forward proton 9.13863e-05 + case= 74 emCalo forward ion 1.09918e-06 + case= 75 emCalo forward otherMeson 1.766e-05 + case= 76 emCalo forward otherBaryon 4.11051e-06 + case= 77 emCalo backward all 0.00508325 + case= 78 emCalo backward electron 4.97347e-05 + case= 79 emCalo backward gamma 0.000734114 + case= 80 emCalo backward muon 0 + case= 81 emCalo backward neutrino 9.03014e-05 + case= 82 emCalo backward pion 0 + case= 83 emCalo backward neutron 0.0042091 + case= 84 emCalo backward proton 0 + case= 85 emCalo backward ion 0 + case= 86 emCalo backward otherMeson 0 + case= 87 emCalo backward otherBaryon 0 + case= 88 emCalo below 20 MeV forward all 0.0870195 + case= 89 emCalo below 20 MeV forward electron 0.000936301 + case= 90 emCalo below 20 MeV forward gamma 0.0207932 + case= 91 emCalo below 20 MeV forward muon 4.53229e-07 + case= 92 emCalo below 20 MeV forward neutrino 3.91836e-05 + case= 93 emCalo below 20 MeV forward pion 5.67218e-07 + case= 94 emCalo below 20 MeV forward neutron 0.0652469 + case= 95 emCalo below 20 MeV forward proton 2.27279e-06 + case= 96 emCalo below 20 MeV forward ion 0 + case= 97 emCalo below 20 MeV forward otherMeson 0 + case= 98 emCalo below 20 MeV forward otherBaryon 5.71762e-07 + case= 99 emCalo below 20 MeV backward all 0.00498158 + case=100 emCalo below 20 MeV backward electron 4.97347e-05 + case=101 emCalo below 20 MeV backward gamma 0.000734114 + case=102 emCalo below 20 MeV backward muon 0 + case=103 emCalo below 20 MeV backward neutrino 5.40952e-06 + case=104 emCalo below 20 MeV backward pion 0 + case=105 emCalo below 20 MeV backward neutron 0.00419232 + case=106 emCalo below 20 MeV backward proton 0 + case=107 emCalo below 20 MeV backward ion 0 + case=108 emCalo below 20 MeV backward otherMeson 0 + case=109 emCalo below 20 MeV backward otherBaryon 0 + case=110 emCalo above 20 MeV forward all 0.00222449 + case=111 emCalo above 20 MeV forward electron 0.000169296 + case=112 emCalo above 20 MeV forward gamma 0.00034007 + case=113 emCalo above 20 MeV forward muon 1.19174e-06 + case=114 emCalo above 20 MeV forward neutrino 0.000404722 + case=115 emCalo above 20 MeV forward pion 0.000239796 + case=116 emCalo above 20 MeV forward neutron 0.000958001 + case=117 emCalo above 20 MeV forward proton 8.91135e-05 + case=118 emCalo above 20 MeV forward ion 1.09918e-06 + case=119 emCalo above 20 MeV forward otherMeson 1.766e-05 + case=120 emCalo above 20 MeV forward otherBaryon 3.53875e-06 + case=121 emCalo above 20 MeV backward all 0.000101676 + case=122 emCalo above 20 MeV backward electron 0 + case=123 emCalo above 20 MeV backward gamma 0 + case=124 emCalo above 20 MeV backward muon 0 + case=125 emCalo above 20 MeV backward neutrino 8.48919e-05 + case=126 emCalo above 20 MeV backward pion 0 + case=127 emCalo above 20 MeV backward neutron 1.67842e-05 + case=128 emCalo above 20 MeV backward proton 0 + case=129 emCalo above 20 MeV backward ion 0 + case=130 emCalo above 20 MeV backward otherMeson 0 + case=131 emCalo above 20 MeV backward otherBaryon 0 + case=132 hadCalo forward all 0.000196657 + case=133 hadCalo forward electron 9.0197e-07 + case=134 hadCalo forward gamma 4.43055e-05 + case=135 hadCalo forward muon 0 + case=136 hadCalo forward neutrino 6.32157e-05 + case=137 hadCalo forward pion 9.63814e-07 + case=138 hadCalo forward neutron 8.66164e-05 + case=139 hadCalo forward proton 5.4266e-07 + case=140 hadCalo forward ion 0 + case=141 hadCalo forward otherMeson 1.10581e-07 + case=142 hadCalo forward otherBaryon 0 + case=143 hadCalo backward all 2.41825e-05 + case=144 hadCalo backward electron 0 + case=145 hadCalo backward gamma 0 + case=146 hadCalo backward muon 0 + case=147 hadCalo backward neutrino 2.39823e-05 + case=148 hadCalo backward pion 0 + case=149 hadCalo backward neutron 2.0019e-07 + case=150 hadCalo backward proton 0 + case=151 hadCalo backward ion 0 + case=152 hadCalo backward otherMeson 0 + case=153 hadCalo backward otherBaryon 0 + case=154 hadCalo below 20 MeV forward all 0.000126012 + case=155 hadCalo below 20 MeV forward electron 6.31663e-07 + case=156 hadCalo below 20 MeV forward gamma 4.32368e-05 + case=157 hadCalo below 20 MeV forward muon 0 + case=158 hadCalo below 20 MeV forward neutrino 5.36065e-06 + case=159 hadCalo below 20 MeV forward pion 0 + case=160 hadCalo below 20 MeV forward neutron 7.67828e-05 + case=161 hadCalo below 20 MeV forward proton 0 + case=162 hadCalo below 20 MeV forward ion 0 + case=163 hadCalo below 20 MeV forward otherMeson 0 + case=164 hadCalo below 20 MeV forward otherBaryon 0 + case=165 hadCalo below 20 MeV backward all 1.75549e-06 + case=166 hadCalo below 20 MeV backward electron 0 + case=167 hadCalo below 20 MeV backward gamma 0 + case=168 hadCalo below 20 MeV backward muon 0 + case=169 hadCalo below 20 MeV backward neutrino 1.5553e-06 + case=170 hadCalo below 20 MeV backward pion 0 + case=171 hadCalo below 20 MeV backward neutron 2.0019e-07 + case=172 hadCalo below 20 MeV backward proton 0 + case=173 hadCalo below 20 MeV backward ion 0 + case=174 hadCalo below 20 MeV backward otherMeson 0 + case=175 hadCalo below 20 MeV backward otherBaryon 0 + case=176 hadCalo above 20 MeV forward all 7.06447e-05 + case=177 hadCalo above 20 MeV forward electron 2.70307e-07 + case=178 hadCalo above 20 MeV forward gamma 1.06871e-06 + case=179 hadCalo above 20 MeV forward muon 0 + case=180 hadCalo above 20 MeV forward neutrino 5.7855e-05 + case=181 hadCalo above 20 MeV forward pion 9.63814e-07 + case=182 hadCalo above 20 MeV forward neutron 9.83361e-06 + case=183 hadCalo above 20 MeV forward proton 5.4266e-07 + case=184 hadCalo above 20 MeV forward ion 0 + case=185 hadCalo above 20 MeV forward otherMeson 1.10581e-07 + case=186 hadCalo above 20 MeV forward otherBaryon 0 + case=187 hadCalo above 20 MeV backward all 2.24271e-05 + case=188 hadCalo above 20 MeV backward electron 0 + case=189 hadCalo above 20 MeV backward gamma 0 + case=190 hadCalo above 20 MeV backward muon 0 + case=191 hadCalo above 20 MeV backward neutrino 2.24271e-05 + case=192 hadCalo above 20 MeV backward pion 0 + case=193 hadCalo above 20 MeV backward neutron 0 + case=194 hadCalo above 20 MeV backward proton 0 + case=195 hadCalo above 20 MeV backward ion 0 + case=196 hadCalo above 20 MeV backward otherMeson 0 + case=197 hadCalo above 20 MeV backward otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 tracker all 209.57 64.1336 13440.5 + case= 1 tracker electron 112.73 3.8799 437.381 + case= 2 tracker gamma 11.63 259.191 3014.4 + case= 3 tracker muon 0.07 10.7165 0.750153 + case= 4 tracker neutrino 0.21 30.7859 6.46504 + case= 5 tracker pion 2.39 3094.89 7396.78 + case= 6 tracker neutron 2.24 169.817 380.391 + case= 7 tracker proton 58.15 4.6722 271.689 + case= 8 tracker ion 21.77 1.15216 25.0826 + case= 9 tracker otherMeson 0.35 5436.19 1902.67 + case= 10 tracker otherBaryon 0.03 162.825 4.88476 + case= 11 tracker below 20 MeV all 202.5 0.557331 112.86 + case= 12 tracker below 20 MeV electron 112.09 0.299827 33.6076 + case= 13 tracker below 20 MeV gamma 9.67 1.47189 14.2332 + case= 14 tracker below 20 MeV muon 0.06 4.11981 0.247189 + case= 15 tracker below 20 MeV neutrino 0 0 0 + case= 16 tracker below 20 MeV pion 0.02 6.71123 0.134225 + case= 17 tracker below 20 MeV neutron 1.52 5.68488 8.64102 + case= 18 tracker below 20 MeV proton 57.54 0.657313 37.8218 + case= 19 tracker below 20 MeV ion 21.6 0.841415 18.1746 + case= 20 tracker below 20 MeV otherMeson 0 0 0 + case= 21 tracker below 20 MeV otherBaryon 0 0 0 + case= 22 tracker above 20 MeV all 7.07 1885.1 13327.6 + case= 23 tracker above 20 MeV electron 0.64 630.896 403.773 + case= 24 tracker above 20 MeV gamma 1.96 1530.7 3000.16 + case= 25 tracker above 20 MeV muon 0.01 50.2964 0.502964 + case= 26 tracker above 20 MeV neutrino 0.21 30.7859 6.46504 + case= 27 tracker above 20 MeV pion 2.37 3120.95 7396.64 + case= 28 tracker above 20 MeV neutron 0.72 516.319 371.75 + case= 29 tracker above 20 MeV proton 0.61 383.388 233.867 + case= 30 tracker above 20 MeV ion 0.17 40.6353 6.90801 + case= 31 tracker above 20 MeV otherMeson 0.35 5436.19 1902.67 + case= 32 tracker above 20 MeV otherBaryon 0.03 162.825 4.88476 + case= 33 emCalo all 27745.1 5.34977 148430 + case= 34 emCalo electron 16795.4 2.79687 46974.5 + case= 35 emCalo gamma 9113.63 5.01288 45685.5 + case= 36 emCalo muon 1.92 11.4481 21.9804 + case= 37 emCalo neutrino 5.67 35.4292 200.883 + case= 38 emCalo pion 24.51 1382.85 33893.6 + case= 39 emCalo neutron 648.65 12.0462 7813.74 + case= 40 emCalo proton 54.84 88.2711 4840.79 + case= 41 emCalo ion 1098.01 0.689781 757.386 + case= 42 emCalo otherMeson 2.01 3706.65 7450.36 + case= 43 emCalo otherBaryon 0.45 1757.79 791.004 + case= 44 emCalo below 20 MeV all 27107.2 0.978029 26511.6 + case= 45 emCalo below 20 MeV electron 16532.9 0.797402 13183.4 + case= 46 emCalo below 20 MeV gamma 8864.31 1.29636 11491.3 + case= 47 emCalo below 20 MeV muon 1.8 4.19274 7.54694 + case= 48 emCalo below 20 MeV neutrino 0.42 14.5053 6.09225 + case= 49 emCalo below 20 MeV pion 0.38 12.8725 4.89156 + case= 50 emCalo below 20 MeV neutron 593.64 2.04585 1214.5 + case= 51 emCalo below 20 MeV proton 23 10.0106 230.243 + case= 52 emCalo below 20 MeV ion 1090.7 0.34211 373.14 + case= 53 emCalo below 20 MeV otherMeson 0.03 2.73453 0.0820359 + case= 54 emCalo below 20 MeV otherBaryon 0.03 14.787 0.44361 + case= 55 emCalo above 20 MeV all 637.86 191.136 121918 + case= 56 emCalo above 20 MeV electron 262.48 128.738 33791.1 + case= 57 emCalo above 20 MeV gamma 249.32 137.15 34194.2 + case= 58 emCalo above 20 MeV muon 0.12 120.279 14.4334 + case= 59 emCalo above 20 MeV neutrino 5.25 37.1031 194.791 + case= 60 emCalo above 20 MeV pion 24.13 1404.42 33888.7 + case= 61 emCalo above 20 MeV neutron 55.01 119.964 6599.24 + case= 62 emCalo above 20 MeV proton 31.84 144.803 4610.54 + case= 63 emCalo above 20 MeV ion 7.31 52.5645 384.246 + case= 64 emCalo above 20 MeV otherMeson 1.98 3762.77 7450.28 + case= 65 emCalo above 20 MeV otherBaryon 0.42 1882.29 790.561 + case= 66 hadCalo all 37856.4 2.83801 107437 + case= 67 hadCalo electron 27952.2 1.13352 31684.3 + case= 68 hadCalo gamma 7836.81 3.82466 29973.1 + case= 69 hadCalo muon 2.82 16.5554 46.6861 + case= 70 hadCalo neutrino 8.57 38.4193 329.254 + case= 71 hadCalo pion 23.82 880.919 20983.5 + case= 72 hadCalo neutron 760.37 14.909 11336.3 + case= 73 hadCalo proton 161.97 50.6531 8204.28 + case= 74 hadCalo ion 1106.91 0.67393 745.979 + case= 75 hadCalo otherMeson 2.13 1802.14 3838.55 + case= 76 hadCalo otherBaryon 0.78 377.608 294.534 + case= 77 hadCalo below 20 MeV all 37355.3 0.640941 23942.5 + case= 78 hadCalo below 20 MeV electron 27784.1 0.417476 11599.2 + case= 79 hadCalo below 20 MeV gamma 7691.3 1.22202 9398.94 + case= 80 hadCalo below 20 MeV muon 2.54 4.11981 10.4643 + case= 81 hadCalo below 20 MeV neutrino 0.73 15.3072 11.1743 + case= 82 hadCalo below 20 MeV pion 0.38 11.4153 4.33782 + case= 83 hadCalo below 20 MeV neutron 666.8 2.49369 1662.79 + case= 84 hadCalo below 20 MeV proton 109.25 7.93603 867.012 + case= 85 hadCalo below 20 MeV ion 1099.94 0.351589 386.727 + case= 86 hadCalo below 20 MeV otherMeson 0.14 6.55783 0.918096 + case= 87 hadCalo below 20 MeV otherBaryon 0.09 11.0093 0.990838 + case= 88 hadCalo above 20 MeV all 501.09 166.625 83494 + case= 89 hadCalo above 20 MeV electron 168.08 119.498 20085.1 + case= 90 hadCalo above 20 MeV gamma 145.51 141.394 20574.2 + case= 91 hadCalo above 20 MeV muon 0.28 129.364 36.2218 + case= 92 hadCalo above 20 MeV neutrino 7.84 40.5713 318.079 + case= 93 hadCalo above 20 MeV pion 23.44 895.015 20979.2 + case= 94 hadCalo above 20 MeV neutron 93.57 103.383 9673.55 + case= 95 hadCalo above 20 MeV proton 52.72 139.174 7337.27 + case= 96 hadCalo above 20 MeV ion 6.97 51.5426 359.252 + case= 97 hadCalo above 20 MeV otherMeson 1.99 1928.46 3837.64 + case= 98 hadCalo above 20 MeV otherBaryon 0.69 425.425 293.543 + ============================================================= + + + ------ DetectorConstruction::PrintParameters() ------ + MaterialTracker = G4_lAr + MaterialEmCalo = G4_Pb + MaterialHadCalo = G4_Fe + InnerRadiusTracker = 50 mm + OuterRadiusTracker = 250 mm + InnerRadiusEmCalo = 300 mm + OuterRadiusEmCalo = 600 mm + InnerRadiusHadCalo = 700 mm + OuterRadiusHadCalo = 1700 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + +Start re-initialization because + Geometry +has been modified since last Run. +DetectorConstruction::ConstructSphere() : + World (box) size: + x : -/+ 1870 mm y : -/+ 1870 mm z : -/+ 1870 mm + + + ------ DetectorConstruction::PrintParameters() ------ + MaterialTracker = G4_lAr + MaterialEmCalo = G4_Pb + MaterialHadCalo = G4_Fe + InnerRadiusTracker = 50 mm + OuterRadiusTracker = 250 mm + InnerRadiusEmCalo = 300 mm + OuterRadiusEmCalo = 600 mm + InnerRadiusHadCalo = 700 mm + OuterRadiusHadCalo = 1700 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_PbWO4 + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 75.7749 keV e- 842.468 keV e+ 797.806 keV proton 70 keV + +Index : 3 used in the geometry : No + Material : G4_Cu + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 20.5458 keV e- 1.03403 MeV e+ 979.823 keV proton 70 keV + +Index : 4 used in the geometry : Yes + Material : G4_lAr + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.20503 keV e- 273.977 keV e+ 266.18 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 5 used in the geometry : Yes + Material : G4_Pb + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 94.6952 keV e- 1.00699 MeV e+ 946.936 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 6 used in the geometry : Yes + Material : G4_Fe + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 17.2487 keV e- 954.642 keV e+ 906.513 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 1 starts. +### Run 1 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=80.160000s Real=80.963734s Sys=0.040000s + + + =============== Run::PrintInfo() =============== RunID = 1 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Tracker material = G4_lAr + EmCalo material = G4_Pb + HadCalo material = G4_Fe + Cubic-volume scoring tracker shell = 8.17233e+06 mm^3 + Cubic-volume scoring emCalo shell = 4.59971e+07 mm^3 + Cubic-volume scoring hadCalo shell = 3.65309e+08 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 tracker forward all 0.33316 + case= 1 tracker forward electron 0.00100795 + case= 2 tracker forward gamma 0.0170347 + case= 3 tracker forward muon 0 + case= 4 tracker forward neutrino 0.000541752 + case= 5 tracker forward pion 0.000647622 + case= 6 tracker forward neutron 0.313804 + case= 7 tracker forward proton 9.35813e-05 + case= 8 tracker forward ion 0 + case= 9 tracker forward otherMeson 2.48895e-05 + case= 10 tracker forward otherBaryon 5.40746e-06 + case= 11 tracker backward all 0.215067 + case= 12 tracker backward electron 0.000123598 + case= 13 tracker backward gamma 0.00340055 + case= 14 tracker backward muon 0 + case= 15 tracker backward neutrino 0.000210702 + case= 16 tracker backward pion 8.1476e-06 + case= 17 tracker backward neutron 0.211324 + case= 18 tracker backward proton 0 + case= 19 tracker backward ion 0 + case= 20 tracker backward otherMeson 0 + case= 21 tracker backward otherBaryon 0 + case= 22 tracker below 20 MeV forward all 0.329304 + case= 23 tracker below 20 MeV forward electron 0.000605434 + case= 24 tracker below 20 MeV forward gamma 0.0162981 + case= 25 tracker below 20 MeV forward muon 0 + case= 26 tracker below 20 MeV forward neutrino 3.72042e-05 + case= 27 tracker below 20 MeV forward pion 0 + case= 28 tracker below 20 MeV forward neutron 0.312363 + case= 29 tracker below 20 MeV forward proton 0 + case= 30 tracker below 20 MeV forward ion 0 + case= 31 tracker below 20 MeV forward otherMeson 0 + case= 32 tracker below 20 MeV forward otherBaryon 0 + case= 33 tracker below 20 MeV backward all 0.21451 + case= 34 tracker below 20 MeV backward electron 0.000113461 + case= 35 tracker below 20 MeV backward gamma 0.00338203 + case= 36 tracker below 20 MeV backward muon 0 + case= 37 tracker below 20 MeV backward neutrino 1.0362e-05 + case= 38 tracker below 20 MeV backward pion 0 + case= 39 tracker below 20 MeV backward neutron 0.211004 + case= 40 tracker below 20 MeV backward proton 0 + case= 41 tracker below 20 MeV backward ion 0 + case= 42 tracker below 20 MeV backward otherMeson 0 + case= 43 tracker below 20 MeV backward otherBaryon 0 + case= 44 tracker above 20 MeV forward all 0.0038565 + case= 45 tracker above 20 MeV forward electron 0.000402518 + case= 46 tracker above 20 MeV forward gamma 0.000736619 + case= 47 tracker above 20 MeV forward muon 0 + case= 48 tracker above 20 MeV forward neutrino 0.000504548 + case= 49 tracker above 20 MeV forward pion 0.000647622 + case= 50 tracker above 20 MeV forward neutron 0.00144132 + case= 51 tracker above 20 MeV forward proton 9.35813e-05 + case= 52 tracker above 20 MeV forward ion 0 + case= 53 tracker above 20 MeV forward otherMeson 2.48895e-05 + case= 54 tracker above 20 MeV forward otherBaryon 5.40746e-06 + case= 55 tracker above 20 MeV backward all 0.000557482 + case= 56 tracker above 20 MeV backward electron 1.01379e-05 + case= 57 tracker above 20 MeV backward gamma 1.85236e-05 + case= 58 tracker above 20 MeV backward muon 0 + case= 59 tracker above 20 MeV backward neutrino 0.00020034 + case= 60 tracker above 20 MeV backward pion 8.1476e-06 + case= 61 tracker above 20 MeV backward neutron 0.000320333 + case= 62 tracker above 20 MeV backward proton 0 + case= 63 tracker above 20 MeV backward ion 0 + case= 64 tracker above 20 MeV backward otherMeson 0 + case= 65 tracker above 20 MeV backward otherBaryon 0 + case= 66 emCalo forward all 0.190296 + case= 67 emCalo forward electron 0.00103238 + case= 68 emCalo forward gamma 0.0183174 + case= 69 emCalo forward muon 2.25472e-06 + case= 70 emCalo forward neutrino 0.00037232 + case= 71 emCalo forward pion 0.00021805 + case= 72 emCalo forward neutron 0.170245 + case= 73 emCalo forward proton 8.42116e-05 + case= 74 emCalo forward ion 3.31968e-06 + case= 75 emCalo forward otherMeson 1.94623e-05 + case= 76 emCalo forward otherBaryon 1.66162e-06 + case= 77 emCalo backward all 0.0432873 + case= 78 emCalo backward electron 6.76045e-05 + case= 79 emCalo backward gamma 0.00188426 + case= 80 emCalo backward muon 0 + case= 81 emCalo backward neutrino 7.8128e-05 + case= 82 emCalo backward pion 0 + case= 83 emCalo backward neutron 0.0412573 + case= 84 emCalo backward proton 0 + case= 85 emCalo backward ion 0 + case= 86 emCalo backward otherMeson 0 + case= 87 emCalo backward otherBaryon 0 + case= 88 emCalo below 20 MeV forward all 0.188062 + case= 89 emCalo below 20 MeV forward electron 0.000890266 + case= 90 emCalo below 20 MeV forward gamma 0.017974 + case= 91 emCalo below 20 MeV forward muon 0 + case= 92 emCalo below 20 MeV forward neutrino 3.73935e-05 + case= 93 emCalo below 20 MeV forward pion 6.61133e-07 + case= 94 emCalo below 20 MeV forward neutron 0.169157 + case= 95 emCalo below 20 MeV forward proton 2.9394e-06 + case= 96 emCalo below 20 MeV forward ion 0 + case= 97 emCalo below 20 MeV forward otherMeson 0 + case= 98 emCalo below 20 MeV forward otherBaryon 0 + case= 99 emCalo below 20 MeV backward all 0.0432034 + case=100 emCalo below 20 MeV backward electron 6.76045e-05 + case=101 emCalo below 20 MeV backward gamma 0.00188426 + case=102 emCalo below 20 MeV backward muon 0 + case=103 emCalo below 20 MeV backward neutrino 7.27976e-06 + case=104 emCalo below 20 MeV backward pion 0 + case=105 emCalo below 20 MeV backward neutron 0.0412443 + case=106 emCalo below 20 MeV backward proton 0 + case=107 emCalo below 20 MeV backward ion 0 + case=108 emCalo below 20 MeV backward otherMeson 0 + case=109 emCalo below 20 MeV backward otherBaryon 0 + case=110 emCalo above 20 MeV forward all 0.00223426 + case=111 emCalo above 20 MeV forward electron 0.000142117 + case=112 emCalo above 20 MeV forward gamma 0.000343449 + case=113 emCalo above 20 MeV forward muon 2.25472e-06 + case=114 emCalo above 20 MeV forward neutrino 0.000334926 + case=115 emCalo above 20 MeV forward pion 0.000217389 + case=116 emCalo above 20 MeV forward neutron 0.00108841 + case=117 emCalo above 20 MeV forward proton 8.12722e-05 + case=118 emCalo above 20 MeV forward ion 3.31968e-06 + case=119 emCalo above 20 MeV forward otherMeson 1.94623e-05 + case=120 emCalo above 20 MeV forward otherBaryon 1.66162e-06 + case=121 emCalo above 20 MeV backward all 8.38769e-05 + case=122 emCalo above 20 MeV backward electron 0 + case=123 emCalo above 20 MeV backward gamma 0 + case=124 emCalo above 20 MeV backward muon 0 + case=125 emCalo above 20 MeV backward neutrino 7.08483e-05 + case=126 emCalo above 20 MeV backward pion 0 + case=127 emCalo above 20 MeV backward neutron 1.30286e-05 + case=128 emCalo above 20 MeV backward proton 0 + case=129 emCalo above 20 MeV backward ion 0 + case=130 emCalo above 20 MeV backward otherMeson 0 + case=131 emCalo above 20 MeV backward otherBaryon 0 + case=132 hadCalo forward all 0.000383517 + case=133 hadCalo forward electron 4.56475e-06 + case=134 hadCalo forward gamma 0.000105424 + case=135 hadCalo forward muon 0 + case=136 hadCalo forward neutrino 5.6943e-05 + case=137 hadCalo forward pion 1.50294e-06 + case=138 hadCalo forward neutron 0.000213692 + case=139 hadCalo forward proton 1.04952e-06 + case=140 hadCalo forward ion 0 + case=141 hadCalo forward otherMeson 2.8668e-07 + case=142 hadCalo forward otherBaryon 5.47507e-08 + case=143 hadCalo backward all 2.21463e-05 + case=144 hadCalo backward electron 0 + case=145 hadCalo backward gamma 3.45784e-07 + case=146 hadCalo backward muon 0 + case=147 hadCalo backward neutrino 1.90812e-05 + case=148 hadCalo backward pion 0 + case=149 hadCalo backward neutron 2.71933e-06 + case=150 hadCalo backward proton 0 + case=151 hadCalo backward ion 0 + case=152 hadCalo backward otherMeson 0 + case=153 hadCalo backward otherBaryon 0 + case=154 hadCalo below 20 MeV forward all 0.00031002 + case=155 hadCalo below 20 MeV forward electron 3.25502e-06 + case=156 hadCalo below 20 MeV forward gamma 0.000101185 + case=157 hadCalo below 20 MeV forward muon 0 + case=158 hadCalo below 20 MeV forward neutrino 5.57734e-06 + case=159 hadCalo below 20 MeV forward pion 0 + case=160 hadCalo below 20 MeV forward neutron 0.000199937 + case=161 hadCalo below 20 MeV forward proton 6.64341e-08 + case=162 hadCalo below 20 MeV forward ion 0 + case=163 hadCalo below 20 MeV forward otherMeson 0 + case=164 hadCalo below 20 MeV forward otherBaryon 0 + case=165 hadCalo below 20 MeV backward all 4.94378e-06 + case=166 hadCalo below 20 MeV backward electron 0 + case=167 hadCalo below 20 MeV backward gamma 3.45784e-07 + case=168 hadCalo below 20 MeV backward muon 0 + case=169 hadCalo below 20 MeV backward neutrino 1.87867e-06 + case=170 hadCalo below 20 MeV backward pion 0 + case=171 hadCalo below 20 MeV backward neutron 2.71933e-06 + case=172 hadCalo below 20 MeV backward proton 0 + case=173 hadCalo below 20 MeV backward ion 0 + case=174 hadCalo below 20 MeV backward otherMeson 0 + case=175 hadCalo below 20 MeV backward otherBaryon 0 + case=176 hadCalo above 20 MeV forward all 7.34972e-05 + case=177 hadCalo above 20 MeV forward electron 1.30973e-06 + case=178 hadCalo above 20 MeV forward gamma 4.23919e-06 + case=179 hadCalo above 20 MeV forward muon 0 + case=180 hadCalo above 20 MeV forward neutrino 5.13657e-05 + case=181 hadCalo above 20 MeV forward pion 1.50294e-06 + case=182 hadCalo above 20 MeV forward neutron 1.37552e-05 + case=183 hadCalo above 20 MeV forward proton 9.83086e-07 + case=184 hadCalo above 20 MeV forward ion 0 + case=185 hadCalo above 20 MeV forward otherMeson 2.8668e-07 + case=186 hadCalo above 20 MeV forward otherBaryon 5.47507e-08 + case=187 hadCalo above 20 MeV backward all 1.72025e-05 + case=188 hadCalo above 20 MeV backward electron 0 + case=189 hadCalo above 20 MeV backward gamma 0 + case=190 hadCalo above 20 MeV backward muon 0 + case=191 hadCalo above 20 MeV backward neutrino 1.72025e-05 + case=192 hadCalo above 20 MeV backward pion 0 + case=193 hadCalo above 20 MeV backward neutron 0 + case=194 hadCalo above 20 MeV backward proton 0 + case=195 hadCalo above 20 MeV backward ion 0 + case=196 hadCalo above 20 MeV backward otherMeson 0 + case=197 hadCalo above 20 MeV backward otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 tracker all 253.3 63.7711 16153.2 + case= 1 tracker electron 144.09 9.19894 1325.48 + case= 2 tracker gamma 42.58 93.1016 3964.27 + case= 3 tracker muon 0.07 4.11981 0.288387 + case= 4 tracker neutrino 0.22 42.7858 9.41289 + case= 5 tracker pion 2.83 3066.17 8677.25 + case= 6 tracker neutron 11.17 60.2235 672.697 + case= 7 tracker proton 1.14 385.192 439.119 + case= 8 tracker ion 50.94 0.580762 29.584 + case= 9 tracker otherMeson 0.22 4482.29 986.105 + case= 10 tracker otherBaryon 0.04 1225.77 49.0307 + case= 11 tracker below 20 MeV all 242.04 0.596307 144.33 + case= 12 tracker below 20 MeV electron 142.03 0.3557 50.52 + case= 13 tracker below 20 MeV gamma 38.77 1.26482 49.0369 + case= 14 tracker below 20 MeV muon 0.07 4.11981 0.288387 + case= 15 tracker below 20 MeV neutrino 0.04 17.2397 0.689589 + case= 16 tracker below 20 MeV pion 0.04 8.33597 0.333439 + case= 17 tracker below 20 MeV neutron 9.93 2.38498 23.6829 + case= 18 tracker below 20 MeV proton 0.57 8.798 5.01486 + case= 19 tracker below 20 MeV ion 50.59 0.29184 14.7642 + case= 20 tracker below 20 MeV otherMeson 0 0 0 + case= 21 tracker below 20 MeV otherBaryon 0 0 0 + case= 22 tracker above 20 MeV all 11.26 1421.75 16008.9 + case= 23 tracker above 20 MeV electron 2.06 618.911 1274.96 + case= 24 tracker above 20 MeV gamma 3.81 1027.62 3915.23 + case= 25 tracker above 20 MeV muon 0 0 0 + case= 26 tracker above 20 MeV neutrino 0.18 48.4628 8.7233 + case= 27 tracker above 20 MeV pion 2.79 3110.01 8676.91 + case= 28 tracker above 20 MeV neutron 1.24 523.398 649.014 + case= 29 tracker above 20 MeV proton 0.57 761.586 434.104 + case= 30 tracker above 20 MeV ion 0.35 42.3424 14.8198 + case= 31 tracker above 20 MeV otherMeson 0.22 4482.29 986.105 + case= 32 tracker above 20 MeV otherBaryon 0.04 1225.77 49.0307 + case= 33 emCalo all 28862.3 5.4322 156786 + case= 34 emCalo electron 17490.1 3.00391 52538.7 + case= 35 emCalo gamma 10135.9 5.11754 51870.7 + case= 36 emCalo muon 1.59 17.1215 27.2232 + case= 37 emCalo neutrino 4.72 37.3244 176.171 + case= 38 emCalo pion 22.24 1381.39 30722.1 + case= 39 emCalo neutron 760.5 11.536 8773.11 + case= 40 emCalo proton 52.92 95.6619 5062.43 + case= 41 emCalo ion 391.95 1.65605 649.087 + case= 42 emCalo otherMeson 1.98 3276.62 6487.7 + case= 43 emCalo otherBaryon 0.45 1063.85 478.734 + case= 44 emCalo below 20 MeV all 28160.9 1.02531 28873.5 + case= 45 emCalo below 20 MeV electron 17201 0.838896 14429.8 + case= 46 emCalo below 20 MeV gamma 9859.12 1.26668 12488.4 + case= 47 emCalo below 20 MeV muon 1.49 4.11981 6.13852 + case= 48 emCalo below 20 MeV neutrino 0.45 15.2633 6.86848 + case= 49 emCalo below 20 MeV pion 0.29 12.0521 3.49511 + case= 50 emCalo below 20 MeV neutron 697.79 2.20283 1537.11 + case= 51 emCalo below 20 MeV proton 17.36 12.6019 218.769 + case= 52 emCalo below 20 MeV ion 383.36 0.475821 182.411 + case= 53 emCalo below 20 MeV otherMeson 0.07 6.77866 0.474506 + case= 54 emCalo below 20 MeV otherBaryon 0.01 4.82934 0.0482934 + case= 55 emCalo above 20 MeV all 701.43 182.36 127912 + case= 56 emCalo above 20 MeV electron 289.16 131.792 38108.9 + case= 57 emCalo above 20 MeV gamma 276.74 142.308 39382.3 + case= 58 emCalo above 20 MeV muon 0.1 210.846 21.0846 + case= 59 emCalo above 20 MeV neutrino 4.27 39.6494 169.303 + case= 60 emCalo above 20 MeV pion 21.95 1399.48 30718.6 + case= 61 emCalo above 20 MeV neutron 62.71 115.388 7235.99 + case= 62 emCalo above 20 MeV proton 35.56 136.211 4843.66 + case= 63 emCalo above 20 MeV ion 8.59 54.3279 466.677 + case= 64 emCalo above 20 MeV otherMeson 1.91 3396.45 6487.23 + case= 65 emCalo above 20 MeV otherBaryon 0.44 1087.92 478.686 + case= 66 hadCalo all 37312.1 2.38229 88888.3 + case= 67 hadCalo electron 27779.5 0.947622 26324.4 + case= 68 hadCalo gamma 7187.88 3.39078 24372.5 + case= 69 hadCalo muon 2.47 17.7903 43.942 + case= 70 hadCalo neutrino 7.44 37.4213 278.414 + case= 71 hadCalo pion 20.71 815.743 16894 + case= 72 hadCalo neutron 776.03 12.9795 10072.5 + case= 73 hadCalo proton 129.52 55.2379 7154.41 + case= 74 hadCalo ion 1406.29 0.484056 680.723 + case= 75 hadCalo otherMeson 1.8 1472.51 2650.52 + case= 76 hadCalo otherBaryon 0.47 886.797 416.795 + case= 77 hadCalo below 20 MeV all 36897.2 0.615275 22701.9 + case= 78 hadCalo below 20 MeV electron 27643.5 0.394879 10915.8 + case= 79 hadCalo below 20 MeV gamma 7071.86 1.30767 9247.64 + case= 80 hadCalo below 20 MeV muon 2.27 4.13109 9.37757 + case= 81 hadCalo below 20 MeV neutrino 0.75 14.1082 10.5811 + case= 82 hadCalo below 20 MeV pion 0.36 10.9993 3.95973 + case= 83 hadCalo below 20 MeV neutron 692.83 2.13252 1477.47 + case= 84 hadCalo below 20 MeV proton 85.19 7.78904 663.548 + case= 85 hadCalo below 20 MeV ion 1400.3 0.266095 372.613 + case= 86 hadCalo below 20 MeV otherMeson 0.12 6.20879 0.745054 + case= 87 hadCalo below 20 MeV otherBaryon 0.01 14.6236 0.146236 + case= 88 hadCalo above 20 MeV all 414.9 159.524 66186.3 + case= 89 hadCalo above 20 MeV electron 135.98 113.315 15408.6 + case= 90 hadCalo above 20 MeV gamma 116.02 130.364 15124.9 + case= 91 hadCalo above 20 MeV muon 0.2 172.822 34.5644 + case= 92 hadCalo above 20 MeV neutrino 6.69 40.0349 267.833 + case= 93 hadCalo above 20 MeV pion 20.35 829.979 16890.1 + case= 94 hadCalo above 20 MeV neutron 83.2 103.305 8594.98 + case= 95 hadCalo above 20 MeV proton 44.33 146.422 6490.87 + case= 96 hadCalo above 20 MeV ion 5.99 51.4374 308.11 + case= 97 hadCalo above 20 MeV otherMeson 1.68 1577.24 2649.77 + case= 98 hadCalo above 20 MeV otherBaryon 0.46 905.757 416.648 + ============================================================= + + + ------ DetectorConstruction::PrintParameters() ------ + MaterialTracker = G4_Si + MaterialEmCalo = G4_W + MaterialHadCalo = G4_W + InnerRadiusTracker = 50 mm + OuterRadiusTracker = 250 mm + InnerRadiusEmCalo = 300 mm + OuterRadiusEmCalo = 600 mm + InnerRadiusHadCalo = 700 mm + OuterRadiusHadCalo = 1700 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + +Start re-initialization because + Geometry +has been modified since last Run. +DetectorConstruction::ConstructSphere() : + World (box) size: + x : -/+ 1870 mm y : -/+ 1870 mm z : -/+ 1870 mm + + + ------ DetectorConstruction::PrintParameters() ------ + MaterialTracker = G4_Si + MaterialEmCalo = G4_W + MaterialHadCalo = G4_W + InnerRadiusTracker = 50 mm + OuterRadiusTracker = 250 mm + InnerRadiusEmCalo = 300 mm + OuterRadiusEmCalo = 600 mm + InnerRadiusHadCalo = 700 mm + OuterRadiusHadCalo = 1700 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_PbWO4 + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 75.7749 keV e- 842.468 keV e+ 797.806 keV proton 70 keV + +Index : 3 used in the geometry : No + Material : G4_Cu + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 20.5458 keV e- 1.03403 MeV e+ 979.823 keV proton 70 keV + +Index : 4 used in the geometry : No + Material : G4_lAr + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.20503 keV e- 273.977 keV e+ 266.18 keV proton 70 keV + +Index : 5 used in the geometry : No + Material : G4_Pb + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 94.6952 keV e- 1.00699 MeV e+ 946.936 keV proton 70 keV + +Index : 6 used in the geometry : No + Material : G4_Fe + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 17.2487 keV e- 954.642 keV e+ 906.513 keV proton 70 keV + +Index : 7 used in the geometry : Yes + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 8 used in the geometry : Yes + Material : G4_W + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 97.7189 keV e- 1.64904 MeV e+ 1.53897 MeV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 2 starts. +### Run 2 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=117.080000s Real=118.219177s Sys=0.030000s + + + =============== Run::PrintInfo() =============== RunID = 2 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Tracker material = G4_Si + EmCalo material = G4_W + HadCalo material = G4_W + Cubic-volume scoring tracker shell = 8.17233e+06 mm^3 + Cubic-volume scoring emCalo shell = 4.59971e+07 mm^3 + Cubic-volume scoring hadCalo shell = 3.65309e+08 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 tracker forward all 0.230712 + case= 1 tracker forward electron 0.00279036 + case= 2 tracker forward gamma 0.0453559 + case= 3 tracker forward muon 3.37032e-05 + case= 4 tracker forward neutrino 0.000844672 + case= 5 tracker forward pion 0.000808899 + case= 6 tracker forward neutron 0.180586 + case= 7 tracker forward proton 0.00023326 + case= 8 tracker forward ion 4.80925e-06 + case= 9 tracker forward otherMeson 4.66431e-05 + case= 10 tracker forward otherBaryon 7.44343e-06 + case= 11 tracker backward all 0.0752165 + case= 12 tracker backward electron 0.000313203 + case= 13 tracker backward gamma 0.00686052 + case= 14 tracker backward muon 0 + case= 15 tracker backward neutrino 0.000254968 + case= 16 tracker backward pion 0 + case= 17 tracker backward neutron 0.067782 + case= 18 tracker backward proton 5.77131e-06 + case= 19 tracker backward ion 0 + case= 20 tracker backward otherMeson 0 + case= 21 tracker backward otherBaryon 0 + case= 22 tracker below 20 MeV forward all 0.224298 + case= 23 tracker below 20 MeV forward electron 0.00187149 + case= 24 tracker below 20 MeV forward gamma 0.0436345 + case= 25 tracker below 20 MeV forward muon 3.12251e-05 + case= 26 tracker below 20 MeV forward neutrino 7.93177e-05 + case= 27 tracker below 20 MeV forward pion 0 + case= 28 tracker below 20 MeV forward neutron 0.178659 + case= 29 tracker below 20 MeV forward proton 1.81515e-05 + case= 30 tracker below 20 MeV forward ion 4.80925e-06 + case= 31 tracker below 20 MeV forward otherMeson 0 + case= 32 tracker below 20 MeV forward otherBaryon 0 + case= 33 tracker below 20 MeV backward all 0.0746825 + case= 34 tracker below 20 MeV backward electron 0.000310475 + case= 35 tracker below 20 MeV backward gamma 0.00684879 + case= 36 tracker below 20 MeV backward muon 0 + case= 37 tracker below 20 MeV backward neutrino 2.12397e-05 + case= 38 tracker below 20 MeV backward pion 0 + case= 39 tracker below 20 MeV backward neutron 0.067502 + case= 40 tracker below 20 MeV backward proton 0 + case= 41 tracker below 20 MeV backward ion 0 + case= 42 tracker below 20 MeV backward otherMeson 0 + case= 43 tracker below 20 MeV backward otherBaryon 0 + case= 44 tracker above 20 MeV forward all 0.0064135 + case= 45 tracker above 20 MeV forward electron 0.000918869 + case= 46 tracker above 20 MeV forward gamma 0.00172136 + case= 47 tracker above 20 MeV forward muon 2.47808e-06 + case= 48 tracker above 20 MeV forward neutrino 0.000765355 + case= 49 tracker above 20 MeV forward pion 0.000808899 + case= 50 tracker above 20 MeV forward neutron 0.00192734 + case= 51 tracker above 20 MeV forward proton 0.000215109 + case= 52 tracker above 20 MeV forward ion 0 + case= 53 tracker above 20 MeV forward otherMeson 4.66431e-05 + case= 54 tracker above 20 MeV forward otherBaryon 7.44343e-06 + case= 55 tracker above 20 MeV backward all 0.000533954 + case= 56 tracker above 20 MeV backward electron 2.72774e-06 + case= 57 tracker above 20 MeV backward gamma 1.17324e-05 + case= 58 tracker above 20 MeV backward muon 0 + case= 59 tracker above 20 MeV backward neutrino 0.000233728 + case= 60 tracker above 20 MeV backward pion 0 + case= 61 tracker above 20 MeV backward neutron 0.000279994 + case= 62 tracker above 20 MeV backward proton 5.77131e-06 + case= 63 tracker above 20 MeV backward ion 0 + case= 64 tracker above 20 MeV backward otherMeson 0 + case= 65 tracker above 20 MeV backward otherBaryon 0 + case= 66 emCalo forward all 0.0749008 + case= 67 emCalo forward electron 0.000445632 + case= 68 emCalo forward gamma 0.00925643 + case= 69 emCalo forward muon 2.81048e-06 + case= 70 emCalo forward neutrino 0.00053084 + case= 71 emCalo forward pion 0.000128325 + case= 72 emCalo forward neutron 0.0644486 + case= 73 emCalo forward proton 7.35379e-05 + case= 74 emCalo forward ion 5.15417e-07 + case= 75 emCalo forward otherMeson 1.41576e-05 + case= 76 emCalo forward otherBaryon 0 + case= 77 emCalo backward all 0.00249643 + case= 78 emCalo backward electron 3.48218e-05 + case= 79 emCalo backward gamma 0.000261131 + case= 80 emCalo backward muon 0 + case= 81 emCalo backward neutrino 0.000110462 + case= 82 emCalo backward pion 0 + case= 83 emCalo backward neutron 0.00209002 + case= 84 emCalo backward proton 0 + case= 85 emCalo backward ion 0 + case= 86 emCalo backward otherMeson 0 + case= 87 emCalo backward otherBaryon 0 + case= 88 emCalo below 20 MeV forward all 0.0732333 + case= 89 emCalo below 20 MeV forward electron 0.000418273 + case= 90 emCalo below 20 MeV forward gamma 0.00919298 + case= 91 emCalo below 20 MeV forward muon 0 + case= 92 emCalo below 20 MeV forward neutrino 4.72255e-05 + case= 93 emCalo below 20 MeV forward pion 5.38302e-07 + case= 94 emCalo below 20 MeV forward neutron 0.0635715 + case= 95 emCalo below 20 MeV forward proton 2.35703e-06 + case= 96 emCalo below 20 MeV forward ion 0 + case= 97 emCalo below 20 MeV forward otherMeson 4.58508e-07 + case= 98 emCalo below 20 MeV forward otherBaryon 0 + case= 99 emCalo below 20 MeV backward all 0.00239275 + case=100 emCalo below 20 MeV backward electron 3.48218e-05 + case=101 emCalo below 20 MeV backward gamma 0.000261131 + case=102 emCalo below 20 MeV backward muon 0 + case=103 emCalo below 20 MeV backward neutrino 9.19449e-06 + case=104 emCalo below 20 MeV backward pion 0 + case=105 emCalo below 20 MeV backward neutron 0.0020876 + case=106 emCalo below 20 MeV backward proton 0 + case=107 emCalo below 20 MeV backward ion 0 + case=108 emCalo below 20 MeV backward otherMeson 0 + case=109 emCalo below 20 MeV backward otherBaryon 0 + case=110 emCalo above 20 MeV forward all 0.0016675 + case=111 emCalo above 20 MeV forward electron 2.73585e-05 + case=112 emCalo above 20 MeV forward gamma 6.34538e-05 + case=113 emCalo above 20 MeV forward muon 2.81048e-06 + case=114 emCalo above 20 MeV forward neutrino 0.000483615 + case=115 emCalo above 20 MeV forward pion 0.000127787 + case=116 emCalo above 20 MeV forward neutron 0.000877082 + case=117 emCalo above 20 MeV forward proton 7.11808e-05 + case=118 emCalo above 20 MeV forward ion 5.15417e-07 + case=119 emCalo above 20 MeV forward otherMeson 1.36991e-05 + case=120 emCalo above 20 MeV forward otherBaryon 0 + case=121 emCalo above 20 MeV backward all 0.000103681 + case=122 emCalo above 20 MeV backward electron 0 + case=123 emCalo above 20 MeV backward gamma 0 + case=124 emCalo above 20 MeV backward muon 0 + case=125 emCalo above 20 MeV backward neutrino 0.000101267 + case=126 emCalo above 20 MeV backward pion 0 + case=127 emCalo above 20 MeV backward neutron 2.414e-06 + case=128 emCalo above 20 MeV backward proton 0 + case=129 emCalo above 20 MeV backward ion 0 + case=130 emCalo above 20 MeV backward otherMeson 0 + case=131 emCalo above 20 MeV backward otherBaryon 0 + case=132 hadCalo forward all 5.91072e-05 + case=133 hadCalo forward electron 0 + case=134 hadCalo forward gamma 2.2472e-06 + case=135 hadCalo forward muon 0 + case=136 hadCalo forward neutrino 4.60432e-05 + case=137 hadCalo forward pion 5.83966e-08 + case=138 hadCalo forward neutron 1.0701e-05 + case=139 hadCalo forward proton 5.74172e-08 + case=140 hadCalo forward ion 0 + case=141 hadCalo forward otherMeson 0 + case=142 hadCalo forward otherBaryon 0 + case=143 hadCalo backward all 2.48726e-05 + case=144 hadCalo backward electron 0 + case=145 hadCalo backward gamma 0 + case=146 hadCalo backward muon 0 + case=147 hadCalo backward neutrino 2.48726e-05 + case=148 hadCalo backward pion 0 + case=149 hadCalo backward neutron 0 + case=150 hadCalo backward proton 0 + case=151 hadCalo backward ion 0 + case=152 hadCalo backward otherMeson 0 + case=153 hadCalo backward otherBaryon 0 + case=154 hadCalo below 20 MeV forward all 1.61711e-05 + case=155 hadCalo below 20 MeV forward electron 0 + case=156 hadCalo below 20 MeV forward gamma 2.2472e-06 + case=157 hadCalo below 20 MeV forward muon 0 + case=158 hadCalo below 20 MeV forward neutrino 4.05185e-06 + case=159 hadCalo below 20 MeV forward pion 0 + case=160 hadCalo below 20 MeV forward neutron 9.87202e-06 + case=161 hadCalo below 20 MeV forward proton 0 + case=162 hadCalo below 20 MeV forward ion 0 + case=163 hadCalo below 20 MeV forward otherMeson 0 + case=164 hadCalo below 20 MeV forward otherBaryon 0 + case=165 hadCalo below 20 MeV backward all 2.03498e-06 + case=166 hadCalo below 20 MeV backward electron 0 + case=167 hadCalo below 20 MeV backward gamma 0 + case=168 hadCalo below 20 MeV backward muon 0 + case=169 hadCalo below 20 MeV backward neutrino 2.03498e-06 + case=170 hadCalo below 20 MeV backward pion 0 + case=171 hadCalo below 20 MeV backward neutron 0 + case=172 hadCalo below 20 MeV backward proton 0 + case=173 hadCalo below 20 MeV backward ion 0 + case=174 hadCalo below 20 MeV backward otherMeson 0 + case=175 hadCalo below 20 MeV backward otherBaryon 0 + case=176 hadCalo above 20 MeV forward all 4.29361e-05 + case=177 hadCalo above 20 MeV forward electron 0 + case=178 hadCalo above 20 MeV forward gamma 0 + case=179 hadCalo above 20 MeV forward muon 0 + case=180 hadCalo above 20 MeV forward neutrino 4.19914e-05 + case=181 hadCalo above 20 MeV forward pion 5.83966e-08 + case=182 hadCalo above 20 MeV forward neutron 8.28946e-07 + case=183 hadCalo above 20 MeV forward proton 5.74172e-08 + case=184 hadCalo above 20 MeV forward ion 0 + case=185 hadCalo above 20 MeV forward otherMeson 0 + case=186 hadCalo above 20 MeV forward otherBaryon 0 + case=187 hadCalo above 20 MeV backward all 2.28376e-05 + case=188 hadCalo above 20 MeV backward electron 0 + case=189 hadCalo above 20 MeV backward gamma 0 + case=190 hadCalo above 20 MeV backward muon 0 + case=191 hadCalo above 20 MeV backward neutrino 2.28376e-05 + case=192 hadCalo above 20 MeV backward pion 0 + case=193 hadCalo above 20 MeV backward neutron 0 + case=194 hadCalo above 20 MeV backward proton 0 + case=195 hadCalo above 20 MeV backward ion 0 + case=196 hadCalo above 20 MeV backward otherMeson 0 + case=197 hadCalo above 20 MeV backward otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 tracker all 715.85 38.294 27412.7 + case= 1 tracker electron 528.79 6.55755 3467.57 + case= 2 tracker gamma 111.61 56.9898 6360.63 + case= 3 tracker muon 0.07 4.11981 0.288387 + case= 4 tracker neutrino 0.23 34.0577 7.83327 + case= 5 tracker pion 4.84 2549.78 12340.9 + case= 6 tracker neutron 12.71 46.079 585.664 + case= 7 tracker proton 6.1 130.092 793.558 + case= 8 tracker ion 50.86 1.11597 56.7582 + case= 9 tracker otherMeson 0.55 6574.52 3615.99 + case= 10 tracker otherBaryon 0.09 2039.29 183.536 + case= 11 tracker below 20 MeV all 687.65 0.627996 431.841 + case= 12 tracker below 20 MeV electron 522.27 0.356473 186.175 + case= 13 tracker below 20 MeV gamma 100.91 1.50369 151.737 + case= 14 tracker below 20 MeV muon 0.07 4.11981 0.288387 + case= 15 tracker below 20 MeV neutrino 0.02 7.90007 0.158001 + case= 16 tracker below 20 MeV pion 0.05 11.4057 0.570283 + case= 17 tracker below 20 MeV neutron 9.92 3.56168 35.3319 + case= 18 tracker below 20 MeV proton 4.13 6.52568 26.9511 + case= 19 tracker below 20 MeV ion 50.28 0.609172 30.6292 + case= 20 tracker below 20 MeV otherMeson 0 0 0 + case= 21 tracker below 20 MeV otherBaryon 0 0 0 + case= 22 tracker above 20 MeV all 28.2 956.77 26980.9 + case= 23 tracker above 20 MeV electron 6.52 503.281 3281.39 + case= 24 tracker above 20 MeV gamma 10.7 580.271 6208.9 + case= 25 tracker above 20 MeV muon 0 0 0 + case= 26 tracker above 20 MeV neutrino 0.21 36.5489 7.67527 + case= 27 tracker above 20 MeV pion 4.79 2576.27 12340.4 + case= 28 tracker above 20 MeV neutron 2.79 197.252 550.332 + case= 29 tracker above 20 MeV proton 1.97 389.141 766.607 + case= 30 tracker above 20 MeV ion 0.58 45.0501 26.1291 + case= 31 tracker above 20 MeV otherMeson 0.55 6574.52 3615.99 + case= 32 tracker above 20 MeV otherBaryon 0.09 2039.29 183.536 + case= 33 emCalo all 56092.2 3.69368 207187 + case= 34 emCalo electron 33448.7 2.05098 68602.4 + case= 35 emCalo gamma 17751.3 3.78385 67168.1 + case= 36 emCalo muon 2.99 16.6849 49.888 + case= 37 emCalo neutrino 8.92 38.222 340.94 + case= 38 emCalo pion 31.7 1209.87 38352.8 + case= 39 emCalo neutron 2373.01 6.04043 14334 + case= 40 emCalo proton 90.87 97.0965 8823.16 + case= 41 emCalo ion 2380.65 0.432616 1029.91 + case= 42 emCalo otherMeson 3.32 2384.3 7915.86 + case= 43 emCalo otherBaryon 0.78 730.159 569.524 + case= 44 emCalo below 20 MeV all 55156.3 0.893831 49300.4 + case= 45 emCalo below 20 MeV electron 33080.7 0.718055 23753.8 + case= 46 emCalo below 20 MeV gamma 17406.1 1.25308 21811.2 + case= 47 emCalo below 20 MeV muon 2.72 4.17363 11.3523 + case= 48 emCalo below 20 MeV neutrino 0.69 15.3339 10.5804 + case= 49 emCalo below 20 MeV pion 0.53 11.9547 6.33597 + case= 50 emCalo below 20 MeV neutron 2265.58 1.31524 2979.77 + case= 51 emCalo below 20 MeV proton 32.22 12.3636 398.355 + case= 52 emCalo below 20 MeV ion 2367.49 0.138056 326.847 + case= 53 emCalo below 20 MeV otherMeson 0.2 6.9195 1.3839 + case= 54 emCalo below 20 MeV otherBaryon 0.06 12.9413 0.776478 + case= 55 emCalo above 20 MeV all 935.87 168.705 157886 + case= 56 emCalo above 20 MeV electron 367.97 121.881 44848.6 + case= 57 emCalo above 20 MeV gamma 345.15 131.412 45356.9 + case= 58 emCalo above 20 MeV muon 0.27 142.725 38.5357 + case= 59 emCalo above 20 MeV neutrino 8.23 40.1409 330.36 + case= 60 emCalo above 20 MeV pion 31.17 1230.24 38346.5 + case= 61 emCalo above 20 MeV neutron 107.43 105.69 11354.2 + case= 62 emCalo above 20 MeV proton 58.65 143.645 8424.8 + case= 63 emCalo above 20 MeV ion 13.16 53.424 703.06 + case= 64 emCalo above 20 MeV otherMeson 3.12 2536.69 7914.48 + case= 65 emCalo above 20 MeV otherBaryon 0.72 789.927 568.748 + case= 66 hadCalo all 17306.5 2.06085 35666.2 + case= 67 hadCalo electron 9942.69 1.10785 11015 + case= 68 hadCalo gamma 5069.55 2.21778 11243.1 + case= 69 hadCalo muon 1.08 15.5641 16.8092 + case= 70 hadCalo neutrino 3.25 37.3996 121.549 + case= 71 hadCalo pion 6.83 700.356 4783.43 + case= 72 hadCalo neutron 1067.89 4.47515 4778.97 + case= 73 hadCalo proton 30.48 80.2354 2445.58 + case= 74 hadCalo ion 1183.88 0.256978 304.231 + case= 75 hadCalo otherMeson 0.67 1370.2 918.033 + case= 76 hadCalo otherBaryon 0.23 171.398 39.4216 + case= 77 hadCalo below 20 MeV all 17141 0.783043 13422.2 + case= 78 hadCalo below 20 MeV electron 9895.11 0.606078 5997.21 + case= 79 hadCalo below 20 MeV gamma 5026.23 1.18587 5960.44 + case= 80 hadCalo below 20 MeV muon 0.99 4.11981 4.07861 + case= 81 hadCalo below 20 MeV neutrino 0.35 14.9468 5.23136 + case= 82 hadCalo below 20 MeV pion 0.14 11.7551 1.64571 + case= 83 hadCalo below 20 MeV neutron 1027.3 1.18445 1216.79 + case= 84 hadCalo below 20 MeV proton 10.72 12.6794 135.924 + case= 85 hadCalo below 20 MeV ion 1180.08 0.0850336 100.346 + case= 86 hadCalo below 20 MeV otherMeson 0.05 3.45016 0.172508 + case= 87 hadCalo below 20 MeV otherBaryon 0.04 7.97247 0.318899 + case= 88 hadCalo above 20 MeV all 165.54 134.372 22244 + case= 89 hadCalo above 20 MeV electron 47.58 105.46 5017.79 + case= 90 hadCalo above 20 MeV gamma 43.32 121.946 5282.7 + case= 91 hadCalo above 20 MeV muon 0.09 141.451 12.7306 + case= 92 hadCalo above 20 MeV neutrino 2.9 40.1094 116.317 + case= 93 hadCalo above 20 MeV pion 6.69 714.766 4781.78 + case= 94 hadCalo above 20 MeV neutron 40.59 87.76 3562.18 + case= 95 hadCalo above 20 MeV proton 19.76 116.885 2309.65 + case= 96 hadCalo above 20 MeV ion 3.8 53.6538 203.884 + case= 97 hadCalo above 20 MeV otherMeson 0.62 1480.42 917.861 + case= 98 hadCalo above 20 MeV otherBaryon 0.19 205.804 39.1027 + ============================================================= + +G4 kernel has come to Quit state. +================== Deleting memory pools =================== +Number of memory pools allocated: 13 of which, static: 0 +Dynamic pools deleted: 13 / Total memory freed: 0.15 MB +============================================================ +RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/GNUmakefile b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/GNUmakefile old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/History b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/History index 044490a90d..c40aa310f6 100644 --- a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/History +++ b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/History @@ -5,6 +5,12 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-09-07 Alberto Ribon (exhadrParticleFluenceConcentricSpheres-V11-00-02) +- Added complementary information on particle production (multiplicity, + kinetic energy, and total energy flow) in each of the three targets. + +## 2022-08-26 Alberto Ribon (exhadrParticleFluenceConcentricSpheres-V11-00-01) +- SteppingAction : introduced protection on the value of the array index. + ## 2021-06-10 Alberto Ribon (exhadrParticleFluenceConcentricSpheres-V11-00-00) - Created the ConcentricSpheres variant of the ParticleFluence example. - diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/README b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/README index c77ca1034d..9a258334f6 100644 --- a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/README +++ b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/README @@ -20,6 +20,10 @@ The particle fluence is estimated by summing the track length in a (very low density gas) material, immediately outside one of the targets - and then dividing for the cubic volume of such scoring volume. +Complementary information on average multiplicity, average kinetic energy, +and average total energy flow (i.e. sum of kinetic energies) for the +particles produced in the three targets are also computed. + The particle fluence is evaluated for the following 11 particle types: - all - electron + positron diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/all_together.g4 b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/all_together.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/ActionInitialization.hh b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/ActionInitialization.hh index cad9857858..34a0e805fb 100644 --- a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/ActionInitialization.hh +++ b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/ActionInitialization.hh @@ -41,9 +41,9 @@ class ActionInitialization : public G4VUserActionInitialization { public: ActionInitialization(); - virtual ~ActionInitialization(); - virtual void BuildForMaster() const override; - virtual void Build() const override; + ~ActionInitialization() override = default; + void BuildForMaster() const override; + void Build() const override; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/DetectorConstruction.hh b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/DetectorConstruction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/DetectorMessenger.hh b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/DetectorMessenger.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/PrimaryGeneratorAction.hh b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/PrimaryGeneratorAction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/Run.hh b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/Run.hh index 1fa7898e2f..96124bcbb4 100644 --- a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/Run.hh +++ b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/Run.hh @@ -37,6 +37,7 @@ #include "G4Run.hh" #include "G4ThreeVector.hh" #include "SteppingAction.hh" +#include "TrackingAction.hh" #include //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,62 +46,77 @@ class Run : public G4Run { // This class accumulates relevant quantities related to particle fluence collected during // the run. // ( Note: these information are provided via calls of accessor methods of this Run class - // made by SteppingAction::UserSteppingAction. ) - // At the end of a run, the printInfo method is called by the run-action to print out + // made by SteppingAction::UserSteppingAction + // and TrackingAction::PreUserTrackingAction. ) + // At the end of a run, the PrintInfo method is called by the run-action to print out // some summary information about these quantities. // In multithreaded (MT) mode, an object of this class is filled up for each working thread, // and then merged (automatically by the Geant4 kernel) into another object (of this class) - // owned by the master class; the printInfo method is then called only for the latter run + // owned by the master class; the PrintInfo method is then called only for the latter run // object. // Note that, for simplicity and brevity, we avoid histograms and print-out instead some // statistics (compute by ourself) at the end of the run. public: Run(); - ~Run(); + ~Run() override = default; - virtual void RecordEvent( const G4Event* anEvent ) override; + void RecordEvent( const G4Event* anEvent ) override; // This method is called automatically by the Geant4 kernel (not by the user!) at the end // of each event. In the case of multithreaded mode, it is called only for the working thread // that handled that event. - virtual void Merge( const G4Run* aRun ) override; + void Merge( const G4Run* aRun ) override; // This method is called automatically by the Geant4 kernel (not by the user!) only in the // case of multithreaded mode and only for working threads. - void printInfo() const; + void PrintInfo() const; // This method is called by RunAction::EndOfRunAction : in the case of multithreaded mode, // only the master thread calls it. - void setPrimaryParticleId( const G4int inputValue ) { fPrimaryParticleId = inputValue; } - void setPrimaryParticleEnergy( const G4double inputValue ) + void SetPrimaryParticleId( const G4int inputValue ) { fPrimaryParticleId = inputValue; } + void SetPrimaryParticleEnergy( const G4double inputValue ) { fPrimaryParticleEnergy = inputValue; } - void setPrimaryParticleDirection( const G4ThreeVector &inputValue ) + void SetPrimaryParticleDirection( const G4ThreeVector &inputValue ) { fPrimaryParticleDirection = inputValue; } - void setTrackerMaterialName( const G4String &inputValue ) + void SetTrackerMaterialName( const G4String &inputValue ) { fTrackerMaterialName = inputValue; } - void setEmCaloMaterialName( const G4String &inputValue ) + void SetEmCaloMaterialName( const G4String &inputValue ) { fEmCaloMaterialName = inputValue; } - void setHadCaloMaterialName( const G4String &inputValue ) + void SetHadCaloMaterialName( const G4String &inputValue ) { fHadCaloMaterialName = inputValue; } - void setCubicVolumeScoringTrackerShell( const G4double inputValue ) + void SetCubicVolumeScoringTrackerShell( const G4double inputValue ) { fCubicVolumeScoringTrackerShell = inputValue; } - void setCubicVolumeScoringEmCaloShell( const G4double inputValue ) + void SetCubicVolumeScoringEmCaloShell( const G4double inputValue ) { fCubicVolumeScoringEmCaloShell = inputValue; } - void setCubicVolumeScoringHadCaloShell( const G4double inputValue ) + void SetCubicVolumeScoringHadCaloShell( const G4double inputValue ) { fCubicVolumeScoringHadCaloShell = inputValue; } - G4int getPrimaryParticleId() const { return fPrimaryParticleId; } - G4double getPrimaryParticleEnergy() const { return fPrimaryParticleEnergy; } - G4ThreeVector getPrimaryParticleDirection() const { return fPrimaryParticleDirection; } - G4String getTrackerMaterialName() const { return fTrackerMaterialName; } - G4String getEmCaloMaterialName() const { return fEmCaloMaterialName; } - G4String getHadCaloMaterialName() const { return fHadCaloMaterialName; } - G4double getCubicVolumeScoringTrackerShell() const { return fCubicVolumeScoringTrackerShell; } - G4double getCubicVolumeScoringEmCaloShell() const { return fCubicVolumeScoringEmCaloShell; } - G4double getCubicVolumeScoringHadCaloShell() const { return fCubicVolumeScoringHadCaloShell; } - void setArray( const std::array< G4double, SteppingAction::numberCombinations >& inputArray ); - std::array< G4double, SteppingAction::numberCombinations > getArray() const { return fArray; } + G4int GetPrimaryParticleId() const { return fPrimaryParticleId; } + G4double GetPrimaryParticleEnergy() const { return fPrimaryParticleEnergy; } + G4ThreeVector GetPrimaryParticleDirection() const { return fPrimaryParticleDirection; } + G4String GetTrackerMaterialName() const { return fTrackerMaterialName; } + G4String GetEmCaloMaterialName() const { return fEmCaloMaterialName; } + G4String GetHadCaloMaterialName() const { return fHadCaloMaterialName; } + G4double GetCubicVolumeScoringTrackerShell() const { return fCubicVolumeScoringTrackerShell; } + G4double GetCubicVolumeScoringEmCaloShell() const { return fCubicVolumeScoringEmCaloShell; } + G4double GetCubicVolumeScoringHadCaloShell() const { return fCubicVolumeScoringHadCaloShell; } + + void SetSteppingArray( const std::array< G4double, + SteppingAction::fkNumberCombinations >& inputArray ); + std::array< G4double, SteppingAction::fkNumberCombinations > GetSteppingArray() const + { return fSteppingArray; } // Accessor methods useful to transfer information collected by the stepping-action - // into this Run class + // into this Run class + + void SetTrackingArray1( const std::array< G4int, + TrackingAction::fkNumberCombinations >& inputArray ); + std::array< G4int, TrackingAction::fkNumberCombinations > GetTrackingArray1() const + { return fTrackingArray1; } + void SetTrackingArray2( const std::array< G4double, + TrackingAction::fkNumberCombinations >& inputArray ); + std::array< G4double, TrackingAction::fkNumberCombinations > GetTrackingArray2() const + { return fTrackingArray2; } + // Accessor methods useful to transfer information collected by the tracking-action + // into this Run class private: G4int fNumEvents; @@ -113,7 +129,9 @@ class Run : public G4Run { G4double fCubicVolumeScoringTrackerShell; G4double fCubicVolumeScoringEmCaloShell; G4double fCubicVolumeScoringHadCaloShell; - std::array< G4double, SteppingAction::numberCombinations > fArray; + std::array< G4double, SteppingAction::fkNumberCombinations > fSteppingArray; + std::array< G4int, TrackingAction::fkNumberCombinations > fTrackingArray1; + std::array< G4double, TrackingAction::fkNumberCombinations > fTrackingArray2; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/RunAction.hh b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/RunAction.hh old mode 100755 new mode 100644 index 0d4291f5c8..cf12a43b20 --- a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/RunAction.hh +++ b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/RunAction.hh @@ -38,18 +38,20 @@ class G4Run; class SteppingAction; +class TrackingAction; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class RunAction: public G4UserRunAction { public: - RunAction( SteppingAction* steppingAction = nullptr ); - virtual ~RunAction(); - virtual void BeginOfRunAction( const G4Run* aRun ) override; - virtual void EndOfRunAction( const G4Run* aRun ) override; - virtual G4Run* GenerateRun() override; + RunAction( SteppingAction* steppingAction = nullptr, + TrackingAction* trackingAction = nullptr ); + void BeginOfRunAction( const G4Run* aRun ) override; + void EndOfRunAction( const G4Run* aRun ) override; + G4Run* GenerateRun() override; private: SteppingAction* fSteppingAction; + TrackingAction* fTrackingAction; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/SteppingAction.hh b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/SteppingAction.hh old mode 100755 new mode 100644 index 542ac8e869..5385ea4397 --- a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/SteppingAction.hh +++ b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/SteppingAction.hh @@ -46,9 +46,9 @@ class Run; class SteppingAction : public G4UserSteppingAction { public: SteppingAction(); - virtual ~SteppingAction(); + ~SteppingAction() override = default; - virtual void UserSteppingAction( const G4Step* ) override; + void UserSteppingAction( const G4Step* ) override; // This is the main method where the step lengths of particles inside // the scoring shell are collected, and then the corresponding fluences // are filled up in the Run object where they are stored (and then @@ -56,36 +56,36 @@ class SteppingAction : public G4UserSteppingAction { // (For simplicity and brevity, we avoid histograms and compute instead // some statistics ourself, which will be print-out at the end of the run.) - void initialize(); + void Initialize(); // This method is called by RunAction::BeginOfRunAction for the // initialization of the stepping-action at the beginning of each Run. // This is necessary because different runs can have different primary particle // types, kinetic energies, and detector configurations. - void setRunPointer( Run* inputValue = nullptr ) { fRunPtr = inputValue; } + void SetRunPointer( Run* inputValue = nullptr ) { fRunPtr = inputValue; } // This method is called by RunAction::BeginOfRunAction for providing to the // stepping-action the pointer to the run object at the beginning of each Run. // This pointer is then used to pass the information collected by the stepping-action // to the run object. - G4double getCubicVolumeScoringTrackerShell() const { return fCubicVolumeScoringTrackerShell; } - G4double getCubicVolumeScoringEmCaloShell() const { return fCubicVolumeScoringEmCaloShell; } - G4double getCubicVolumeScoringHadCaloShell() const { return fCubicVolumeScoringHadCaloShell; } + G4double GetCubicVolumeScoringTrackerShell() const { return fCubicVolumeScoringTrackerShell; } + G4double GetCubicVolumeScoringEmCaloShell() const { return fCubicVolumeScoringEmCaloShell; } + G4double GetCubicVolumeScoringHadCaloShell() const { return fCubicVolumeScoringHadCaloShell; } // Needed to get the fluence from the sum of step lengths - static const G4int numberScoringShells = 3; // tracker, emCalo, hadCalo - static const G4int numberKinematicRegions = 3; // all, below 20 MeV, above 20 MeV - static const G4int numberScoringPositions = 2; // forward, backward (hemisphere, with respect - // to the primary particle direction) - static const G4int numberParticleTypes = 11; // all, e, gamma, mu, nu, pi, n, p, ions, - // other-mesons, other-baryons - static const G4int numberCombinations = - numberScoringShells*numberKinematicRegions*numberScoringPositions*numberParticleTypes; - static const std::array< G4String, numberScoringShells > arrayScoringShellNames; - static const std::array< G4String, numberKinematicRegions > arrayKinematicRegionNames; - static const std::array< G4String, numberScoringPositions > arrayScoringPositionNames; - static const std::array< G4String, numberParticleTypes > arrayParticleTypeNames; - static G4int getIndex( const G4int iScoringShell, const G4int iKinematicRegion, + static const G4int fkNumberScoringShells = 3; // tracker, emCalo, hadCalo + static const G4int fkNumberKinematicRegions = 3; // all, below 20 MeV, above 20 MeV + static const G4int fkNumberScoringPositions = 2; // forward, backward (hemisphere, w.r.t. + // the primary particle direction) + static const G4int fkNumberParticleTypes = 11; // all, e, gamma, mu, nu, pi, n, p, ions, + // other-mesons, other-baryons + static const G4int fkNumberCombinations = fkNumberScoringShells * + fkNumberKinematicRegions * fkNumberScoringPositions * fkNumberParticleTypes; + static const std::array< G4String, fkNumberScoringShells > fkArrayScoringShellNames; + static const std::array< G4String, fkNumberKinematicRegions > fkArrayKinematicRegionNames; + static const std::array< G4String, fkNumberScoringPositions > fkArrayScoringPositionNames; + static const std::array< G4String, fkNumberParticleTypes > fkArrayParticleTypeNames; + static G4int GetIndex( const G4int iScoringShell, const G4int iKinematicRegion, const G4int iScoringPosition, const G4int iParticleType ); private: @@ -107,7 +107,7 @@ class SteppingAction : public G4UserSteppingAction { G4bool fIsFirstStepInScoringHadCaloShell; G4double fCubicVolumeScoringHadCaloShell; - std::array< G4double, numberCombinations > fArraySumStepLengths; + std::array< G4double, fkNumberCombinations > fArraySumStepLengths; // Array to collect the sum of step lengths in the scoring shells for the whole run, // according to the various cases (scoring shell, kinematical region, scoring position // and particle type). diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/TrackingAction.hh b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/TrackingAction.hh new file mode 100644 index 0000000000..8c0a99eea5 --- /dev/null +++ b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/include/TrackingAction.hh @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +/// \file TrackingAction.hh +/// \brief Definition of the TrackingAction class +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef TrackingAction_h +#define TrackingAction_h 1 + +#include "globals.hh" +#include "G4UserTrackingAction.hh" +#include + +class Run; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class TrackingAction : public G4UserTrackingAction { + // We are using this class to monitor the average multiplicity, the average + // kinetic energy, and the average total energy flow (i.e. sum of the + // kinetic energies) of different particle types as they are produced + // inside the inner sphere (tracker), the middle spherical shell (EM calo), + // and the outmost spherical shell (HAD calo). + // The aim is then to try to correlate some changes in these (more primitive) + // quantities with the observed changes in the (more indirect and complex) + // particle fluences. + public: + TrackingAction(); + ~TrackingAction() override = default; + void PreUserTrackingAction( const G4Track* ) override; + void PostUserTrackingAction( const G4Track* ) override; + + void Initialize(); + // This method is called by RunAction::BeginOfRunAction for the + // initialization of the tracking-action at the beginning of each Run. + + void SetRunPointer( Run* inputValue = nullptr ) { fRunPtr = inputValue; } + // This method is called by RunAction::BeginOfRunAction for providing to the + // tracking-action the pointer to the run object at the beginning of each Run. + // This pointer is then used to pass the information collected by the tracking-action + // to the run object. + + static const G4int fkNumberScoringVolumes = 3; // tracker, emCalo, hadCalo + static const G4int fkNumberKinematicRegions = 3; // all, below 20 MeV, above 20 MeV + static const G4int fkNumberParticleTypes = 11; // all, e, gamma, mu, nu, pi, n, p, ions, + // other-mesons, other-baryons + static const G4int fkNumberCombinations = + fkNumberScoringVolumes*fkNumberKinematicRegions*fkNumberParticleTypes; + static const std::array< G4String, fkNumberScoringVolumes > fkArrayScoringVolumeNames; + static const std::array< G4String, fkNumberKinematicRegions > fkArrayKinematicRegionNames; + static const std::array< G4String, fkNumberParticleTypes > fkArrayParticleTypeNames; + static G4int GetIndex( const G4int iScoringVolume, const G4int iKinematicRegion, + const G4int iParticleType ); + + private: + Run* fRunPtr; // Pointer to the Run object + + std::array< G4int, fkNumberCombinations > fArrayMultiplicities; + std::array< G4double, fkNumberCombinations > fArraySumKineticEnergies; + // Keep record of the number of particles and their kinetic energy at production, + // according to the particle type and their kinetic energy range (below/above 20 MeV). +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/lar_pb_fe.g4 b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/lar_pb_fe.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/sci_pbwo4_cu.g4 b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/sci_pbwo4_cu.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/si_w_w.g4 b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/si_w_w.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/ActionInitialization.cc b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/ActionInitialization.cc index 7d681a8036..14f2190123 100644 --- a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/ActionInitialization.cc +++ b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/ActionInitialization.cc @@ -35,6 +35,7 @@ #include "PrimaryGeneratorAction.hh" #include "RunAction.hh" #include "SteppingAction.hh" +#include "TrackingAction.hh" #include "Run.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -43,10 +44,6 @@ ActionInitialization::ActionInitialization() : G4VUserActionInitialization() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::~ActionInitialization() {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ActionInitialization::BuildForMaster() const { // This is NOT called in SEQ-mode, while in the MT-mode is called only for the Master thread. SetUserAction( new RunAction ); @@ -59,7 +56,9 @@ void ActionInitialization::Build() const { SetUserAction( new PrimaryGeneratorAction ); SteppingAction* steppingAction = new SteppingAction; SetUserAction( steppingAction ); - SetUserAction( new RunAction( steppingAction ) ); + TrackingAction* trackingAction = new TrackingAction; + SetUserAction( trackingAction ); + SetUserAction( new RunAction( steppingAction, trackingAction ) ); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/DetectorConstruction.cc b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/DetectorConstruction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/DetectorMessenger.cc b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/DetectorMessenger.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/PrimaryGeneratorAction.cc b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/PrimaryGeneratorAction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/Run.cc b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/Run.cc index dc2ce70285..da02bbd150 100644 --- a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/Run.cc +++ b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/Run.cc @@ -45,15 +45,13 @@ Run::Run() : G4Run(), fNumEvents( 0 ), fCubicVolumeScoringTrackerShell( 1.0 ), fCubicVolumeScoringEmCaloShell( 1.0 ), fCubicVolumeScoringHadCaloShell( 1.0 ) { - for ( G4int i = 0; i < SteppingAction::numberCombinations; ++i ) fArray[i] = 0.0; + fSteppingArray.fill( 0.0 ); + fTrackingArray1.fill( 0 ); + fTrackingArray2.fill( 0.0 ); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Run::~Run() {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void Run::RecordEvent( const G4Event* anEvent ) { // This method is called automatically by the Geant4 kernel (not by the user!) at the end // of each event : in MT-mode, it is called only for the working thread that handled the event. @@ -68,25 +66,29 @@ void Run::Merge( const G4Run* aRun ) { // This method is called automatically by the Geant4 kernel (not by the user!) only in the case // of multithreaded mode and only for working threads. const Run* localRun = static_cast< const Run* >( aRun ); - fPrimaryParticleId = localRun->getPrimaryParticleId(); - fPrimaryParticleEnergy = localRun->getPrimaryParticleEnergy(); - fPrimaryParticleDirection = localRun->getPrimaryParticleDirection(); - fTrackerMaterialName = localRun->getTrackerMaterialName(); - fEmCaloMaterialName = localRun->getEmCaloMaterialName(); - fHadCaloMaterialName = localRun->getHadCaloMaterialName(); - fCubicVolumeScoringTrackerShell = localRun->getCubicVolumeScoringTrackerShell(); - fCubicVolumeScoringEmCaloShell = localRun->getCubicVolumeScoringEmCaloShell(); - fCubicVolumeScoringHadCaloShell = localRun->getCubicVolumeScoringHadCaloShell(); + fPrimaryParticleId = localRun->GetPrimaryParticleId(); + fPrimaryParticleEnergy = localRun->GetPrimaryParticleEnergy(); + fPrimaryParticleDirection = localRun->GetPrimaryParticleDirection(); + fTrackerMaterialName = localRun->GetTrackerMaterialName(); + fEmCaloMaterialName = localRun->GetEmCaloMaterialName(); + fHadCaloMaterialName = localRun->GetHadCaloMaterialName(); + fCubicVolumeScoringTrackerShell = localRun->GetCubicVolumeScoringTrackerShell(); + fCubicVolumeScoringEmCaloShell = localRun->GetCubicVolumeScoringEmCaloShell(); + fCubicVolumeScoringHadCaloShell = localRun->GetCubicVolumeScoringHadCaloShell(); fNumEvents += localRun->GetNumberOfEvent(); - for ( G4int i = 0; i < SteppingAction::numberCombinations; ++i ) { - fArray[i] += localRun->getArray()[i]; + for ( G4int i = 0; i < SteppingAction::fkNumberCombinations; ++i ) { + fSteppingArray[i] += localRun->GetSteppingArray()[i]; + } + for ( G4int i = 0; i < TrackingAction::fkNumberCombinations; ++i ) { + fTrackingArray1[i] += localRun->GetTrackingArray1()[i]; + fTrackingArray2[i] += localRun->GetTrackingArray2()[i]; } G4Run::Merge( aRun ); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Run::printInfo() const { +void Run::PrintInfo() const { // This method is called by RunAction::EndOfRunAction. // In MT-mode, only the master thread calls it. const G4double floatingNumberOfEvents = @@ -101,7 +103,7 @@ void Run::printInfo() const { const G4double factorHadCalo = conversionFactor / ( 0.5*fCubicVolumeScoringHadCaloShell*floatingNumberOfEvents ); G4cout << std::setprecision(6) << G4endl << G4endl - << " =============== Run::printInfo() =============== \t RunID = " << GetRunID() + << " =============== Run::PrintInfo() =============== \t RunID = " << GetRunID() << G4endl << " Primary particle PDG code = " << fPrimaryParticleId << G4endl << " Primary particle kinetic energy = " << fPrimaryParticleEnergy / CLHEP::GeV @@ -119,36 +121,76 @@ void Run::printInfo() const { << " Number of events = " << floatingNumberOfEvents << G4endl << " Conversion factor: fluence from mm^-2 to cm^-2 = " << conversionFactor << G4endl << " Particle fluence in unit of cm^-2 :" << G4endl; - for ( G4int i = 0; i < SteppingAction::numberScoringShells; ++i ) { + for ( G4int i = 0; i < SteppingAction::fkNumberScoringShells; ++i ) { G4double factor = factorTracker; if ( i == 1 ) factor = factorEmCalo; else if ( i == 2 ) factor = factorHadCalo; - for ( G4int j = 0; j < SteppingAction::numberKinematicRegions; ++j ) { - for ( G4int k = 0; k < SteppingAction::numberScoringPositions; ++k ) { - for ( G4int ll = 0; ll < SteppingAction::numberParticleTypes; ++ll ) { - G4int index = SteppingAction::getIndex( i, j, k, ll ); + for ( G4int j = 0; j < SteppingAction::fkNumberKinematicRegions; ++j ) { + for ( G4int k = 0; k < SteppingAction::fkNumberScoringPositions; ++k ) { + for ( G4int ll = 0; ll < SteppingAction::fkNumberParticleTypes; ++ll ) { + G4int index = SteppingAction::GetIndex( i, j, k, ll ); //G4cout << "(i, j, k, ll)=(" << i << ", " << j << ", " << k << ", " // << ll << ") ->" << index; G4cout << " case=" << std::setw(3) << index - << " " << std::setw(12) << SteppingAction::arrayScoringShellNames[i] - << " " << std::setw(12) << SteppingAction::arrayKinematicRegionNames[j] - << " " << std::setw(12) << SteppingAction::arrayScoringPositionNames[k] - << " " << std::setw(12) << SteppingAction::arrayParticleTypeNames[ll] - << " " << factor*fArray[index] << G4endl; + << " " << std::setw(12) << SteppingAction::fkArrayScoringShellNames[i] + << " " << std::setw(12) << SteppingAction::fkArrayKinematicRegionNames[j] + << " " << std::setw(12) << SteppingAction::fkArrayScoringPositionNames[k] + << " " << std::setw(12) << SteppingAction::fkArrayParticleTypeNames[ll] + << " " << std::setw( 8) << factor*fSteppingArray[index] << G4endl; } } } } + G4cout << " ------------------------------------------------------------- " << G4endl + << " Extra information: particle production \t \t [MeV]" + << G4endl; + const G4double normalization = 1.0 / floatingNumberOfEvents; + for ( G4int i = 0; i < TrackingAction::fkNumberScoringVolumes; ++i ) { + for ( G4int j = 0; j < TrackingAction::fkNumberKinematicRegions; ++j ) { + for ( G4int k = 0; k < TrackingAction::fkNumberParticleTypes; ++k ) { + G4int index = TrackingAction::GetIndex( i, j, k ); + //G4cout << "(i, j, k)=(" << i << ", " << j << ", " << k << ") ->" << index; + G4cout << " case=" << std::setw(3) << index + << " " << std::setw(12) << TrackingAction::fkArrayScoringVolumeNames[i] + << " " << std::setw(12) << TrackingAction::fkArrayKinematicRegionNames[j] + << " " << std::setw(12) << TrackingAction::fkArrayParticleTypeNames[k] + << " " << std::setw( 8) << normalization * fTrackingArray1[index] + << " " << std::setw( 8) << ( fTrackingArray1[index] > 0 ? + fTrackingArray2[index] / fTrackingArray1[index] : + 0.0 ) + << " " << std::setw( 8) << normalization * fTrackingArray2[index] + << G4endl; + } + } + } G4cout << " ============================================================= " << G4endl << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Run::setArray( const std::array< G4double, - SteppingAction::numberCombinations >& inputArray ) { - for ( G4int i = 0; i < SteppingAction::numberCombinations; ++i ) { - fArray[i] = inputArray[i]; - } +void Run::SetSteppingArray( const std::array< G4double, + SteppingAction::fkNumberCombinations >& inputArray ) { + for ( G4int i = 0; i < SteppingAction::fkNumberCombinations; ++i ) { + fSteppingArray[i] = inputArray[i]; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::SetTrackingArray1( const std::array< G4int, + TrackingAction::fkNumberCombinations >& inputArray ) { + for ( G4int i = 0; i < TrackingAction::fkNumberCombinations; ++i ) { + fTrackingArray1[i] = inputArray[i]; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::SetTrackingArray2( const std::array< G4double, + TrackingAction::fkNumberCombinations >& inputArray ) { + for ( G4int i = 0; i < TrackingAction::fkNumberCombinations; ++i ) { + fTrackingArray2[i] = inputArray[i]; + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/RunAction.cc b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/RunAction.cc old mode 100755 new mode 100644 index 99542cd18e..ace4a14f30 --- a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/RunAction.cc +++ b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/RunAction.cc @@ -36,16 +36,13 @@ #include "G4Run.hh" #include "Run.hh" #include "SteppingAction.hh" +#include "TrackingAction.hh" #include "G4RunManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::RunAction( SteppingAction* steppingAction ) : - G4UserRunAction(), fSteppingAction( steppingAction ) {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -RunAction::~RunAction() {} +RunAction::RunAction( SteppingAction* steppingAction, TrackingAction* trackingAction ) : + G4UserRunAction(), fSteppingAction( steppingAction ), fTrackingAction( trackingAction ) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -57,10 +54,15 @@ G4Run* RunAction::GenerateRun() { void RunAction::BeginOfRunAction( const G4Run* aRun ) { G4cout << "### Run " << aRun->GetRunID() << " starts." << G4endl; - if ( fSteppingAction ) { - fSteppingAction->initialize(); - Run* run = const_cast< Run* >( static_cast< const Run* >( aRun ) ); - if ( run != nullptr ) fSteppingAction->setRunPointer( run ); + Run* run = const_cast< Run* >( static_cast< const Run* >( aRun ) ); + if ( run == nullptr ) return; + if ( fSteppingAction != nullptr ) { + fSteppingAction->Initialize(); + fSteppingAction->SetRunPointer( run ); + } + if ( fTrackingAction != nullptr ) { + fTrackingAction->Initialize(); + fTrackingAction->SetRunPointer( run ); } } @@ -69,7 +71,7 @@ void RunAction::BeginOfRunAction( const G4Run* aRun ) { void RunAction::EndOfRunAction( const G4Run* aRun ) { const Run* run = static_cast< const Run* >( aRun ); if ( run == nullptr || run->GetNumberOfEvent() == 0 ) return; - if ( IsMaster() ) run->printInfo(); + if ( IsMaster() ) run->PrintInfo(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/SteppingAction.cc b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/SteppingAction.cc old mode 100755 new mode 100644 index f053805e95..8b6a47cb48 --- a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/SteppingAction.cc +++ b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/SteppingAction.cc @@ -46,33 +46,36 @@ #include "G4SystemOfUnits.hh" #include "Run.hh" -const std::array< G4String, SteppingAction::numberScoringShells > - SteppingAction::arrayScoringShellNames = { "tracker", "emCalo", "hadCalo" }; +const std::array< G4String, SteppingAction::fkNumberScoringShells > + SteppingAction::fkArrayScoringShellNames = { "tracker", "emCalo", "hadCalo" }; -const std::array< G4String, SteppingAction::numberKinematicRegions > - SteppingAction::arrayKinematicRegionNames = { "", "below 20 MeV", "above 20 MeV" }; +const std::array< G4String, SteppingAction::fkNumberKinematicRegions > + SteppingAction::fkArrayKinematicRegionNames = { "", "below 20 MeV", "above 20 MeV" }; -const std::array< G4String, SteppingAction::numberScoringPositions > - SteppingAction::arrayScoringPositionNames = { "forward", "backward" }; +const std::array< G4String, SteppingAction::fkNumberScoringPositions > + SteppingAction::fkArrayScoringPositionNames = { "forward", "backward" }; -const std::array< G4String, SteppingAction::numberParticleTypes > -SteppingAction::arrayParticleTypeNames = { "all", "electron", "gamma", "muon", "neutrino", - "pion", "neutron", "proton", "ion", "otherMeson", - "otherBaryon" }; +const std::array< G4String, SteppingAction::fkNumberParticleTypes > +SteppingAction::fkArrayParticleTypeNames = { "all", "electron", "gamma", "muon", "neutrino", + "pion", "neutron", "proton", "ion", "otherMeson", + "otherBaryon" }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4int SteppingAction::getIndex( const G4int iScoringShell, const G4int iKinematicRegion, +G4int SteppingAction::GetIndex( const G4int iScoringShell, const G4int iKinematicRegion, const G4int iScoringPosition, const G4int iParticleType ) { G4int index = -1; - if ( iScoringShell >= 0 && iScoringShell < numberScoringShells && - iKinematicRegion >= 0 && iKinematicRegion < numberKinematicRegions && - iScoringPosition >= 0 && iScoringPosition < numberScoringPositions && - iParticleType >= 0 && iParticleType < numberParticleTypes ) { - index = iScoringShell * numberKinematicRegions * numberScoringPositions * numberParticleTypes + - iKinematicRegion * numberScoringPositions * numberParticleTypes + - iScoringPosition * numberParticleTypes + - iParticleType; + if ( iScoringShell >= 0 && iScoringShell < fkNumberScoringShells && + iKinematicRegion >= 0 && iKinematicRegion < fkNumberKinematicRegions && + iScoringPosition >= 0 && iScoringPosition < fkNumberScoringPositions && + iParticleType >= 0 && iParticleType < fkNumberParticleTypes ) { + index = iScoringShell * fkNumberKinematicRegions * fkNumberScoringPositions * + fkNumberParticleTypes + iKinematicRegion * fkNumberScoringPositions * fkNumberParticleTypes + + iScoringPosition * fkNumberParticleTypes + iParticleType; + } + if ( index < 0 || index >= fkNumberCombinations ) { + G4cerr << "SteppingAction::GetIndex : WRONG index=" << index << " set it to 0 !" << G4endl; + index = 0; } return index; } @@ -80,16 +83,12 @@ G4int SteppingAction::getIndex( const G4int iScoringShell, const G4int iKinemati //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... SteppingAction::SteppingAction() :G4UserSteppingAction() { - initialize(); + Initialize(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::~SteppingAction() {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void SteppingAction::initialize() { +void SteppingAction::Initialize() { // Initialization needed at the beginning of each Run fPrimaryParticleId = 0; fPrimaryParticleEnergy = 0.0; @@ -101,17 +100,17 @@ void SteppingAction::initialize() { fIsFirstStepInScoringHadCaloShell = true; fCubicVolumeScoringTrackerShell = fCubicVolumeScoringEmCaloShell = fCubicVolumeScoringHadCaloShell = 1.0; - for ( G4int i = 0; i < numberCombinations; ++i ) { + for ( G4int i = 0; i < fkNumberCombinations; ++i ) { fArraySumStepLengths[i] = 0.0; } /* - for ( G4int i = 0; i < numberCombinations; ++i ) fArraySumStepLengths[i] = 999.9; - G4cout << " numberCombinations=" << numberCombinations << G4endl; - for ( G4int i = 0; i < numberScoringShells; ++i ) { - for ( G4int j = 0; j < numberKinematicRegions; ++j ) { - for ( G4int k = 0; k < numberScoringPositions; ++k ) { - for ( G4int ll = 0; ll < numberParticleTypes; ++ll ) { - G4int index = getIndex( i, j, k, ll ); + for ( G4int i = 0; i < fkNumberCombinations; ++i ) fArraySumStepLengths[i] = 999.9; + G4cout << " fkNumberCombinations=" << fkNumberCombinations << G4endl; + for ( G4int i = 0; i < fkNumberScoringShells; ++i ) { + for ( G4int j = 0; j < fkNumberKinematicRegions; ++j ) { + for ( G4int k = 0; k < fkNumberScoringPositions; ++k ) { + for ( G4int ll = 0; ll < fkNumberParticleTypes; ++ll ) { + G4int index = GetIndex( i, j, k, ll ); G4cout << "(i, j, k, ll)=(" << i << ", " << j << ", " << k << ", " << ll << ") ->" << index; if ( fArraySumStepLengths[ index ] < 1.0 ) G4cout << " <=== REPEATED!"; @@ -121,7 +120,7 @@ void SteppingAction::initialize() { } } } - for ( G4int i = 0; i < numberCombinations; ++i ) { + for ( G4int i = 0; i < fkNumberCombinations; ++i ) { if ( fArraySumStepLengths[i] > 999.0 ) G4cout << " i=" << i << " NOT COVERED !" << G4endl; } */ @@ -137,9 +136,9 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { fPrimaryParticleEnergy = theStep->GetPreStepPoint()->GetKineticEnergy(); fPrimaryParticleDirection = theStep->GetPreStepPoint()->GetMomentumDirection(); if ( fRunPtr ) { - fRunPtr->setPrimaryParticleId( fPrimaryParticleId ); - fRunPtr->setPrimaryParticleEnergy( fPrimaryParticleEnergy ); - fRunPtr->setPrimaryParticleDirection( fPrimaryParticleDirection ); + fRunPtr->SetPrimaryParticleId( fPrimaryParticleId ); + fRunPtr->SetPrimaryParticleEnergy( fPrimaryParticleEnergy ); + fRunPtr->SetPrimaryParticleDirection( fPrimaryParticleDirection ); } fIsFirstStepOfTheEvent = false; } @@ -148,19 +147,19 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { if ( fIsFirstStepInTracker && theStep->GetPreStepPoint()->GetPhysicalVolume()->GetName() == "physiTrackerShell" ) { fTrackerMaterialName = theStep->GetPreStepPoint()->GetMaterial()->GetName(); - if ( fRunPtr ) fRunPtr->setTrackerMaterialName( fTrackerMaterialName ); + if ( fRunPtr ) fRunPtr->SetTrackerMaterialName( fTrackerMaterialName ); fIsFirstStepInTracker = false; } if ( fIsFirstStepInEmCalo && theStep->GetPreStepPoint()->GetPhysicalVolume()->GetName() == "physiEmCaloShell" ) { fEmCaloMaterialName = theStep->GetPreStepPoint()->GetMaterial()->GetName(); - if ( fRunPtr ) fRunPtr->setEmCaloMaterialName( fEmCaloMaterialName ); + if ( fRunPtr ) fRunPtr->SetEmCaloMaterialName( fEmCaloMaterialName ); fIsFirstStepInEmCalo = false; } if ( fIsFirstStepInHadCalo && theStep->GetPreStepPoint()->GetPhysicalVolume()->GetName() == "physiHadCaloShell" ) { fHadCaloMaterialName = theStep->GetPreStepPoint()->GetMaterial()->GetName(); - if ( fRunPtr ) fRunPtr->setHadCaloMaterialName( fHadCaloMaterialName ); + if ( fRunPtr ) fRunPtr->SetHadCaloMaterialName( fHadCaloMaterialName ); fIsFirstStepInHadCalo = false; } // Get information on step lengths in the scoring shells @@ -171,7 +170,7 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { if ( fIsFirstStepInScoringTrackerShell ) { fCubicVolumeScoringTrackerShell = theStep->GetTrack()->GetVolume()->GetLogicalVolume()->GetSolid()->GetCubicVolume(); - if ( fRunPtr ) fRunPtr->setCubicVolumeScoringTrackerShell( fCubicVolumeScoringTrackerShell ); + if ( fRunPtr ) fRunPtr->SetCubicVolumeScoringTrackerShell( fCubicVolumeScoringTrackerShell ); fIsFirstStepInScoringTrackerShell = false; } } else if ( theStep->GetPreStepPoint()->GetPhysicalVolume()->GetName() == @@ -180,7 +179,7 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { if ( fIsFirstStepInScoringEmCaloShell ) { fCubicVolumeScoringEmCaloShell = theStep->GetTrack()->GetVolume()->GetLogicalVolume()->GetSolid()->GetCubicVolume(); - if ( fRunPtr ) fRunPtr->setCubicVolumeScoringEmCaloShell( fCubicVolumeScoringEmCaloShell ); + if ( fRunPtr ) fRunPtr->SetCubicVolumeScoringEmCaloShell( fCubicVolumeScoringEmCaloShell ); fIsFirstStepInScoringEmCaloShell = false; } } else if ( theStep->GetPreStepPoint()->GetPhysicalVolume()->GetName() == @@ -189,7 +188,7 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { if ( fIsFirstStepInScoringHadCaloShell ) { fCubicVolumeScoringHadCaloShell = theStep->GetTrack()->GetVolume()->GetLogicalVolume()->GetSolid()->GetCubicVolume(); - if ( fRunPtr ) fRunPtr->setCubicVolumeScoringHadCaloShell( fCubicVolumeScoringHadCaloShell ); + if ( fRunPtr ) fRunPtr->SetCubicVolumeScoringHadCaloShell( fCubicVolumeScoringHadCaloShell ); fIsFirstStepInScoringHadCaloShell = false; } } @@ -231,21 +230,21 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { // etc.) // Consider the specific case : scoring shell, kinematic region, scoring position, and // particle type - G4int index = getIndex( iScoringShell, iKinematicRegion, iScoringPosition, iParticleType ); + G4int index = GetIndex( iScoringShell, iKinematicRegion, iScoringPosition, iParticleType ); fArraySumStepLengths[index] += stepLength; // Consider the "all" particle case, with the same scoring shell, kinematic region and // scoring position - index = getIndex( iScoringShell, iKinematicRegion, iScoringPosition, 0 ); + index = GetIndex( iScoringShell, iKinematicRegion, iScoringPosition, 0 ); fArraySumStepLengths[index] += stepLength; // Consider the "any" kinematic region case, with the same scoring shell, scoring position // and particle type - index = getIndex( iScoringShell, 0, iScoringPosition, iParticleType ); + index = GetIndex( iScoringShell, 0, iScoringPosition, iParticleType ); fArraySumStepLengths[index] += stepLength; // Consider the "any" kinematic region and "all" particle, with the same scoring shell and // scoring position - index = getIndex( iScoringShell, 0, iScoringPosition, 0 ); + index = GetIndex( iScoringShell, 0, iScoringPosition, 0 ); fArraySumStepLengths[index] += stepLength; - if ( fRunPtr ) fRunPtr->setArray( fArraySumStepLengths ); + if ( fRunPtr ) fRunPtr->SetSteppingArray( fArraySumStepLengths ); } } diff --git a/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/TrackingAction.cc b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/TrackingAction.cc new file mode 100644 index 0000000000..5858cda686 --- /dev/null +++ b/examples/extended/hadronic/ParticleFluence/ConcentricSpheres/src/TrackingAction.cc @@ -0,0 +1,150 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +/// \file TrackingAction.cc +/// \brief Implementation of the TrackingAction class +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "TrackingAction.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" +#include "G4IonTable.hh" +#include "G4StepPoint.hh" +#include "G4SystemOfUnits.hh" +#include "Run.hh" + +const std::array< G4String, TrackingAction::fkNumberScoringVolumes > +TrackingAction::fkArrayScoringVolumeNames = { "tracker", "emCalo", "hadCalo" }; + +const std::array< G4String, TrackingAction::fkNumberKinematicRegions > +TrackingAction::fkArrayKinematicRegionNames = { "", "below 20 MeV", "above 20 MeV" }; + +const std::array< G4String, TrackingAction::fkNumberParticleTypes > +TrackingAction::fkArrayParticleTypeNames = { "all", "electron", "gamma", "muon", "neutrino", + "pion", "neutron", "proton", "ion", "otherMeson", + "otherBaryon" }; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4int TrackingAction::GetIndex( const G4int iScoringVolume, const G4int iKinematicRegion, + const G4int iParticleType ) { + G4int index = -1; + if ( iScoringVolume >= 0 && iScoringVolume < fkNumberScoringVolumes && + iKinematicRegion >= 0 && iKinematicRegion < fkNumberKinematicRegions && + iParticleType >= 0 && iParticleType < fkNumberParticleTypes ) { + index = iScoringVolume * fkNumberKinematicRegions * fkNumberParticleTypes + + iKinematicRegion * fkNumberParticleTypes + + iParticleType; + } + return index; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +TrackingAction::TrackingAction() : G4UserTrackingAction() { + Initialize(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::Initialize() { + // Initialization needed at the beginning of each Run + fArrayMultiplicities.fill( 0 ); + fArraySumKineticEnergies.fill( 0.0 ); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PreUserTrackingAction( const G4Track* aTrack ) { + // This method is called not only once when a particle is created, + // but also each time it is resumed, in the case the track gets suspended, + // as it happens in the case of neutrons with _HP Physics Lists. + // To be sure that we collect information about a track one and only once, + // we require that the current step be the first one. + if ( aTrack == nullptr || + aTrack->GetCurrentStepNumber() != 0 || + aTrack->GetDefinition() == nullptr || + aTrack->GetLogicalVolumeAtVertex() == nullptr ) return; + G4int iScoringVolume = -1; + if ( aTrack->GetLogicalVolumeAtVertex()->GetName() == "logicTrackerShell" ) { + iScoringVolume = 0; + } else if ( aTrack->GetLogicalVolumeAtVertex()->GetName() == "logicEmCaloShell" ) { + iScoringVolume = 1; + } else if ( aTrack->GetLogicalVolumeAtVertex()->GetName() == "logicHadCaloShell" ) { + iScoringVolume = 2; + } + if ( iScoringVolume < 0 ) return; + // Three kinematical regions: [0] : any value ; [1] : below 20 MeV ; [2] : above 20 MeV + G4int iKinematicRegion = aTrack->GetKineticEnergy() < 20.0 ? 1 : 2; + G4int absPdg = std::abs( aTrack->GetDefinition()->GetPDGEncoding() ); + G4int iParticleType = -1; + if ( absPdg == 11 ) iParticleType = 1; // electron (and positron) + else if ( absPdg == 22 ) iParticleType = 2; // gamma + else if ( absPdg == 13 ) iParticleType = 3; // muons (mu- and mu+) + else if ( absPdg == 12 || absPdg == 14 || absPdg == 16 ) iParticleType = 4; + // neutrinos (and anti-neutrinos), all flavors + else if ( absPdg == 111 || absPdg == 211 ) iParticleType = 5; // (charged) pions + else if ( absPdg == 2112 ) iParticleType = 6; // neutron (and anti-neutron) + else if ( absPdg == 2212 ) iParticleType = 7; // proton (and anti-proton) + else if ( G4IonTable::IsIon( aTrack->GetDefinition() ) || + G4IonTable::IsAntiIon( aTrack->GetDefinition() ) ) iParticleType = 8; + // ions (and anti-ions) + else if ( absPdg < 1000 ) iParticleType = 9; // other mesons (e.g. kaons) + // (Note: this works in most cases, but not always!) + else if ( absPdg > 1000 ) iParticleType = 10; // other baryons (e.g. hyperons, + // anti-hyperons, etc.) + // Consider the specific case : scoring volume, kinematic region and particle type + G4int index = GetIndex( iScoringVolume, iKinematicRegion, iParticleType ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + // Consider the "all" particle case, with the same scoring volume and kinematic region + index = GetIndex( iScoringVolume, iKinematicRegion, 0 ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + // Consider the "any" kinematic region case, with the same scoring volume and particle type + index = GetIndex( iScoringVolume, 0, iParticleType ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + // Consider the "any" kinematic region and "all" particle, with the same scoring volume + index = GetIndex( iScoringVolume, 0, 0 ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + if ( fRunPtr ) { + fRunPtr->SetTrackingArray1( fArrayMultiplicities ); + fRunPtr->SetTrackingArray2( fArraySumKineticEnergies ); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PostUserTrackingAction( const G4Track* /* aTrack */ ) {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/History b/examples/extended/hadronic/ParticleFluence/History index e58ec95d4a..772d885552 100644 --- a/examples/extended/hadronic/ParticleFluence/History +++ b/examples/extended/hadronic/ParticleFluence/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! -## 2021-06-10 Alberto Ribon (exhadrParticleFluence-V11-00-00) +## 2022-10-25 I. Hrivnacova (exhadrParticleFluence-V11-00-01) +- Fixes in Doxygen documentation (links, formatting) + +## 2022-06-10 Alberto Ribon (exhadrParticleFluence-V11-00-00) - Created this example. diff --git a/examples/extended/hadronic/ParticleFluence/Layer/.README.txt b/examples/extended/hadronic/ParticleFluence/Layer/.README.txt index 1ad226beb2..05d654e878 100644 --- a/examples/extended/hadronic/ParticleFluence/Layer/.README.txt +++ b/examples/extended/hadronic/ParticleFluence/Layer/.README.txt @@ -1,7 +1,7 @@ ///\file "hadronic/ParticleFluence/Layer/.README.txt" ///\brief Example ParticleFluence/Layer README page -/*! \page ExampeParticleFluenceLayer Example Layer +/*! \page ExampleLayer Example Layer In this example, the particle fluence is evaluated for a simple set-up, consisting of one target solid cylinder, with axis along the z-direction, @@ -18,6 +18,10 @@ cases) or a thin hemisphere shell (for the "side" case) filled up with G4_Galactic (very low density gas) material, immediately outside the target - and then dividing for the cubic volume of such scoring volume. +Complementary information on average multiplicity, average kinetic energy, +and average total energy flow (i.e. sum of kinetic energies) for the +particles produced in the target are also computed. + The particle fluence is evaluated for the following 11 particle types: - all - electron + positron @@ -47,14 +51,18 @@ physics list is used). To build this example: - mkdir Build; cd Build - cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DGeant4_DIR=/path-to-geant4-libraries ../. - make +\verbatim +mkdir Build; cd Build +cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DGeant4_DIR=/path-to-geant4-libraries ../. +make +\endverbatim To run it: - ./Layer all_together.g4 +\verbatim +./Layer all_together.g4 +\endverbatim which shoots 50 GeV pion- on different target materials, 100 events in each run, and print out some information on the particle fluence diff --git a/examples/extended/hadronic/ParticleFluence/Layer/GNUmakefile b/examples/extended/hadronic/ParticleFluence/Layer/GNUmakefile old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/History b/examples/extended/hadronic/ParticleFluence/Layer/History index 70b42972f9..ed26dc6825 100644 --- a/examples/extended/hadronic/ParticleFluence/Layer/History +++ b/examples/extended/hadronic/ParticleFluence/Layer/History @@ -5,6 +5,12 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-09-07 Alberto Ribon (exhadrParticleFluenceLayer-V11-00-02) +- Added complementary information on particle production (multiplicity, + kinetic energy, and total energy flow) in the target. + +## 2022-08-26 Alberto Ribon (exhadrParticleFluenceLayer-V11-00-01) +- SteppingAction : introduced protection on the value of the array index. + ## 2021-06-10 Alberto Ribon (exhadrParticleFluenceLayer-V11-00-00) - Created the Layer variant of the ParticleFluence example. - diff --git a/examples/extended/hadronic/ParticleFluence/Layer/Layer.cc b/examples/extended/hadronic/ParticleFluence/Layer/Layer.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/Layer.out b/examples/extended/hadronic/ParticleFluence/Layer/Layer.out new file mode 100644 index 0000000000..ab1f2df94c --- /dev/null +++ b/examples/extended/hadronic/ParticleFluence/Layer/Layer.out @@ -0,0 +1,2925 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + +### G4PhysListFactory WARNING: environment variable PHYSLIST is not defined + Default Physics Lists FTFP_BERT is instantiated +G4PhysListFactory::GetReferencePhysList EMoption= 0 +<<< Geant4 Physics List simulation engine: FTFP_BERT + + + +PrimaryGenerationAction::SetGunPosition() : gun position along z = -1100 mm + + +DetectorConstruction::ConstructLayer() : + World (box) size: + x : -/+ 1200 mm y : -/+ 1200 mm z : -/+ 1200 mm + Target layer (cylinder) size: + x : -/+ 1000 mm y : -/+ 1000 mm z : -/+ 1000 mm + + + + hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval + for pions : 3 to 6 GeV + for kaons : 3 to 6 GeV + for proton : 3 to 6 GeV + for neutron : 3 to 6 GeV + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_POLYSTYRENE + Thickness = 1000 mm + Diameter = 1000 mm + ScoringThickness = 10 mm + ------------------------------------------------------ + + +PrimaryGenerationAction::SetGunPosition() : gun position along z = -550 mm + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructLayer() : + World (box) size: + x : -/+ 600 mm y : -/+ 600 mm z : -/+ 600 mm + Target layer (cylinder) size: + x : -/+ 500 mm y : -/+ 500 mm z : -/+ 500 mm + + +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 7 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 1 mm) +Step function for muons/hadrons (0.2, 0.1 mm) +Step function for light ions (0.2, 0.1 mm) +Step function for general ions (0.2, 0.1 mm) +Lowest e+e- kinetic energy 1 keV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 0 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 0 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 0 eV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 1 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 0 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.04 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 1 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 0 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 61 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 56 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Klein-Nishina : Emin= 0 eV Emax= 100 TeV + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + Stopping Power data for 17 ion/material pairs + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + + Process: nKiller + +--------------------------------------------------- + Hadronic Processes for B- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: B-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for D- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: D-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_He3Inelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_alphaInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_deuteronInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: anti_lambdaInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_neutronInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_protonInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_tritonInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: dInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for e+ + + Process: positronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for e- + + Process: electronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: GammaNPreco: 0 eV ---> 200 MeV + Model: BertiniCascade: 199 MeV ---> 6 GeV + Model: TheoFSGenerator: 3 GeV ---> 100 TeV + Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: lambdaInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu+ + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + + Process: muMinusCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: protonInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for sigma- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: sigma-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: tInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +================================================================ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Pre-compound model active 1 +Pre-compound excitation low energy 100 keV +Pre-compound excitation high energy 30 MeV +Type of de-excitation inverse x-section 3 +Type of de-excitation factory Evaporation+GEM +Number of de-excitation channels 68 +Min excitation energy 10 eV +Min energy per nucleon for multifragmentation 200 GeV +Limit excitation energy for Fermi BreakUp 20 MeV +Level density (1/MeV) 0.075 +Use simple level density model 1 +Use discrete excitation energy of the residual 1 +Time limit for long lived isomeres 1 ns +Isomer production flag 1 +Internal e- conversion flag 1 +Store e- internal conversion data 0 +Correlated gamma emission flag 0 +Max 2J for sampling of angular correlations 10 +======================================================================= + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 0 starts. +### Run 0 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=1.090000s Real=1.119742s Sys=0.020000s + + + =============== Run::PrintInfo() =============== RunID = 0 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_POLYSTYRENE + Cubic-volume scoring up-down = 7.85398e+06 mm^3 + Cubic-volume scoring side = 3.17301e+07 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 downstream all 0.0124579 + case= 1 downstream electron 0.00161139 + case= 2 downstream gamma 0.00940791 + case= 3 downstream muon 1.3184e-06 + case= 4 downstream neutrino 8.32587e-05 + case= 5 downstream pion 0.000679675 + case= 6 downstream neutron 0.000471484 + case= 7 downstream proton 0.000161841 + case= 8 downstream ion 4.69878e-06 + case= 9 downstream otherMeson 3.62057e-05 + case= 10 downstream otherBaryon 7.44076e-08 + case= 11 downstream below 20 MeV all 0.00868942 + case= 12 downstream below 20 MeV electron 0.000819442 + case= 13 downstream below 20 MeV gamma 0.00770149 + case= 14 downstream below 20 MeV muon 0 + case= 15 downstream below 20 MeV neutrino 4.09941e-06 + case= 16 downstream below 20 MeV pion 1.3096e-06 + case= 17 downstream below 20 MeV neutron 0.000161431 + case= 18 downstream below 20 MeV proton 1.64301e-06 + case= 19 downstream below 20 MeV ion 0 + case= 20 downstream below 20 MeV otherMeson 0 + case= 21 downstream below 20 MeV otherBaryon 0 + case= 22 downstream above 20 MeV all 0.00376844 + case= 23 downstream above 20 MeV electron 0.000791951 + case= 24 downstream above 20 MeV gamma 0.00170642 + case= 25 downstream above 20 MeV muon 1.3184e-06 + case= 26 downstream above 20 MeV neutrino 7.91592e-05 + case= 27 downstream above 20 MeV pion 0.000678365 + case= 28 downstream above 20 MeV neutron 0.000310053 + case= 29 downstream above 20 MeV proton 0.000160198 + case= 30 downstream above 20 MeV ion 4.69878e-06 + case= 31 downstream above 20 MeV otherMeson 3.62057e-05 + case= 32 downstream above 20 MeV otherBaryon 7.44076e-08 + case= 33 side all 0.0009285 + case= 34 side electron 4.28302e-05 + case= 35 side gamma 0.000728028 + case= 36 side muon 0 + case= 37 side neutrino 5.33902e-05 + case= 38 side pion 1.71591e-05 + case= 39 side neutron 8.26785e-05 + case= 40 side proton 3.58192e-06 + case= 41 side ion 0 + case= 42 side otherMeson 8.32034e-07 + case= 43 side otherBaryon 0 + case= 44 side below 20 MeV all 0.000723983 + case= 45 side below 20 MeV electron 2.23705e-05 + case= 46 side below 20 MeV gamma 0.000663887 + case= 47 side below 20 MeV muon 0 + case= 48 side below 20 MeV neutrino 8.78775e-06 + case= 49 side below 20 MeV pion 0 + case= 50 side below 20 MeV neutron 2.89376e-05 + case= 51 side below 20 MeV proton 0 + case= 52 side below 20 MeV ion 0 + case= 53 side below 20 MeV otherMeson 0 + case= 54 side below 20 MeV otherBaryon 0 + case= 55 side above 20 MeV all 0.000204517 + case= 56 side above 20 MeV electron 2.04597e-05 + case= 57 side above 20 MeV gamma 6.41413e-05 + case= 58 side above 20 MeV muon 0 + case= 59 side above 20 MeV neutrino 4.46025e-05 + case= 60 side above 20 MeV pion 1.71591e-05 + case= 61 side above 20 MeV neutron 5.37409e-05 + case= 62 side above 20 MeV proton 3.58192e-06 + case= 63 side above 20 MeV ion 0 + case= 64 side above 20 MeV otherMeson 8.32034e-07 + case= 65 side above 20 MeV otherBaryon 0 + case= 66 upstream all 0.000607074 + case= 67 upstream electron 2.84557e-05 + case= 68 upstream gamma 0.000468164 + case= 69 upstream muon 0 + case= 70 upstream neutrino 3.92298e-05 + case= 71 upstream pion 6.51258e-06 + case= 72 upstream neutron 5.97138e-05 + case= 73 upstream proton 0 + case= 74 upstream ion 4.99839e-06 + case= 75 upstream otherMeson 0 + case= 76 upstream otherBaryon 0 + case= 77 upstream below 20 MeV all 0.000481543 + case= 78 upstream below 20 MeV electron 2.05328e-05 + case= 79 upstream below 20 MeV gamma 0.000439326 + case= 80 upstream below 20 MeV muon 0 + case= 81 upstream below 20 MeV neutrino 4.6202e-06 + case= 82 upstream below 20 MeV pion 0 + case= 83 upstream below 20 MeV neutron 1.51654e-05 + case= 84 upstream below 20 MeV proton 0 + case= 85 upstream below 20 MeV ion 1.89849e-06 + case= 86 upstream below 20 MeV otherMeson 0 + case= 87 upstream below 20 MeV otherBaryon 0 + case= 88 upstream above 20 MeV all 0.000125531 + case= 89 upstream above 20 MeV electron 7.92282e-06 + case= 90 upstream above 20 MeV gamma 2.88381e-05 + case= 91 upstream above 20 MeV muon 0 + case= 92 upstream above 20 MeV neutrino 3.46096e-05 + case= 93 upstream above 20 MeV pion 6.51258e-06 + case= 94 upstream above 20 MeV neutron 4.45484e-05 + case= 95 upstream above 20 MeV proton 0 + case= 96 upstream above 20 MeV ion 3.0999e-06 + case= 97 upstream above 20 MeV otherMeson 0 + case= 98 upstream above 20 MeV otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 layer all 1397.23 39.8977 55746.3 + case= 1 layer electron 1135.86 5.24933 5962.5 + case= 2 layer gamma 171.99 67.5558 11618.9 + case= 3 layer muon 0.67 29.8277 19.9846 + case= 4 layer neutrino 1.98 42.1989 83.5538 + case= 5 layer pion 14.08 2005.06 28231.2 + case= 6 layer neutron 13.06 171.7 2242.41 + case= 7 layer proton 28.43 75.7691 2154.12 + case= 8 layer ion 29.83 5.30477 158.241 + case= 9 layer otherMeson 1.22 4192.57 5114.94 + case= 10 layer otherBaryon 0.11 1458.23 160.405 + case= 11 layer below 20 MeV all 1327.6 0.594737 789.573 + case= 12 layer below 20 MeV electron 1120.1 0.342649 383.801 + case= 13 layer below 20 MeV gamma 148.75 1.40143 208.463 + case= 14 layer below 20 MeV muon 0.61 4.11981 2.51309 + case= 15 layer below 20 MeV neutrino 0.26 15.4352 4.01315 + case= 16 layer below 20 MeV pion 0.25 8.63067 2.15767 + case= 17 layer below 20 MeV neutron 6.66 6.54711 43.6037 + case= 18 layer below 20 MeV proton 22.57 2.79073 62.9869 + case= 19 layer below 20 MeV ion 28.38 2.88604 81.9057 + case= 20 layer below 20 MeV otherMeson 0 0 0 + case= 21 layer below 20 MeV otherBaryon 0.02 6.42204 0.128441 + case= 22 layer above 20 MeV all 69.63 789.268 54956.7 + case= 23 layer above 20 MeV electron 15.76 353.979 5578.7 + case= 24 layer above 20 MeV gamma 23.24 490.984 11410.5 + case= 25 layer above 20 MeV muon 0.06 291.191 17.4715 + case= 26 layer above 20 MeV neutrino 1.72 46.2446 79.5407 + case= 27 layer above 20 MeV pion 13.83 2041.15 28229.1 + case= 28 layer above 20 MeV neutron 6.4 343.563 2198.8 + case= 29 layer above 20 MeV proton 5.86 356.848 2091.13 + case= 30 layer above 20 MeV ion 1.45 52.6452 76.3356 + case= 31 layer above 20 MeV otherMeson 1.22 4192.57 5114.94 + case= 32 layer above 20 MeV otherBaryon 0.09 1780.85 160.276 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_GRAPHITE + Thickness = 1000 mm + Diameter = 1000 mm + ScoringThickness = 10 mm + ------------------------------------------------------ + + +PrimaryGenerationAction::SetGunPosition() : gun position along z = -550 mm + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructLayer() : + World (box) size: + x : -/+ 600 mm y : -/+ 600 mm z : -/+ 600 mm + Target layer (cylinder) size: + x : -/+ 500 mm y : -/+ 500 mm z : -/+ 500 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : Yes + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 1 starts. +### Run 1 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=6.560000s Real=6.631214s Sys=0.020000s + + + =============== Run::PrintInfo() =============== RunID = 1 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_GRAPHITE + Cubic-volume scoring up-down = 7.85398e+06 mm^3 + Cubic-volume scoring side = 3.17301e+07 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 downstream all 0.0431826 + case= 1 downstream electron 0.00400868 + case= 2 downstream gamma 0.035276 + case= 3 downstream muon 1.52953e-05 + case= 4 downstream neutrino 0.000389928 + case= 5 downstream pion 0.000800302 + case= 6 downstream neutron 0.00234351 + case= 7 downstream proton 0.000261975 + case= 8 downstream ion 0 + case= 9 downstream otherMeson 8.69485e-05 + case= 10 downstream otherBaryon 0 + case= 11 downstream below 20 MeV all 0.0340379 + case= 12 downstream below 20 MeV electron 0.00199587 + case= 13 downstream below 20 MeV gamma 0.0306399 + case= 14 downstream below 20 MeV muon 0 + case= 15 downstream below 20 MeV neutrino 2.8958e-05 + case= 16 downstream below 20 MeV pion 8.63808e-06 + case= 17 downstream below 20 MeV neutron 0.00136024 + case= 18 downstream below 20 MeV proton 3.00901e-06 + case= 19 downstream below 20 MeV ion 0 + case= 20 downstream below 20 MeV otherMeson 1.2829e-06 + case= 21 downstream below 20 MeV otherBaryon 0 + case= 22 downstream above 20 MeV all 0.00914476 + case= 23 downstream above 20 MeV electron 0.00201281 + case= 24 downstream above 20 MeV gamma 0.00463611 + case= 25 downstream above 20 MeV muon 1.52953e-05 + case= 26 downstream above 20 MeV neutrino 0.00036097 + case= 27 downstream above 20 MeV pion 0.000791664 + case= 28 downstream above 20 MeV neutron 0.000983273 + case= 29 downstream above 20 MeV proton 0.000258966 + case= 30 downstream above 20 MeV ion 0 + case= 31 downstream above 20 MeV otherMeson 8.56656e-05 + case= 32 downstream above 20 MeV otherBaryon 0 + case= 33 side all 0.0025879 + case= 34 side electron 9.79541e-05 + case= 35 side gamma 0.00183645 + case= 36 side muon 1.74266e-06 + case= 37 side neutrino 0.000187312 + case= 38 side pion 1.60013e-05 + case= 39 side neutron 0.000443489 + case= 40 side proton 4.58996e-06 + case= 41 side ion 0 + case= 42 side otherMeson 3.61337e-07 + case= 43 side otherBaryon 0 + case= 44 side below 20 MeV all 0.00206922 + case= 45 side below 20 MeV electron 4.88356e-05 + case= 46 side below 20 MeV gamma 0.00171071 + case= 47 side below 20 MeV muon 0 + case= 48 side below 20 MeV neutrino 1.36079e-05 + case= 49 side below 20 MeV pion 3.78397e-07 + case= 50 side below 20 MeV neutron 0.000295364 + case= 51 side below 20 MeV proton 3.28682e-07 + case= 52 side below 20 MeV ion 0 + case= 53 side below 20 MeV otherMeson 0 + case= 54 side below 20 MeV otherBaryon 0 + case= 55 side above 20 MeV all 0.000518681 + case= 56 side above 20 MeV electron 4.91185e-05 + case= 57 side above 20 MeV gamma 0.000125745 + case= 58 side above 20 MeV muon 1.74266e-06 + case= 59 side above 20 MeV neutrino 0.000173704 + case= 60 side above 20 MeV pion 1.56229e-05 + case= 61 side above 20 MeV neutron 0.000148125 + case= 62 side above 20 MeV proton 4.26128e-06 + case= 63 side above 20 MeV ion 0 + case= 64 side above 20 MeV otherMeson 3.61337e-07 + case= 65 side above 20 MeV otherBaryon 0 + case= 66 upstream all 0.00173704 + case= 67 upstream electron 3.89676e-05 + case= 68 upstream gamma 0.00108424 + case= 69 upstream muon 0 + case= 70 upstream neutrino 0.000203662 + case= 71 upstream pion 2.02669e-05 + case= 72 upstream neutron 0.000389907 + case= 73 upstream proton 0 + case= 74 upstream ion 0 + case= 75 upstream otherMeson 0 + case= 76 upstream otherBaryon 0 + case= 77 upstream below 20 MeV all 0.00136761 + case= 78 upstream below 20 MeV electron 2.40743e-05 + case= 79 upstream below 20 MeV gamma 0.0010352 + case= 80 upstream below 20 MeV muon 0 + case= 81 upstream below 20 MeV neutrino 1.32168e-05 + case= 82 upstream below 20 MeV pion 0 + case= 83 upstream below 20 MeV neutron 0.00029512 + case= 84 upstream below 20 MeV proton 0 + case= 85 upstream below 20 MeV ion 0 + case= 86 upstream below 20 MeV otherMeson 0 + case= 87 upstream below 20 MeV otherBaryon 0 + case= 88 upstream above 20 MeV all 0.000369431 + case= 89 upstream above 20 MeV electron 1.48932e-05 + case= 90 upstream above 20 MeV gamma 4.90384e-05 + case= 91 upstream above 20 MeV muon 0 + case= 92 upstream above 20 MeV neutrino 0.000190445 + case= 93 upstream above 20 MeV pion 2.02669e-05 + case= 94 upstream above 20 MeV neutron 9.47873e-05 + case= 95 upstream above 20 MeV proton 0 + case= 96 upstream above 20 MeV ion 0 + case= 97 upstream above 20 MeV otherMeson 0 + case= 98 upstream above 20 MeV otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 layer all 11075.2 11.2884 125021 + case= 1 layer electron 9414.9 2.36917 22305.5 + case= 2 layer gamma 1119.79 26.2078 29347.2 + case= 3 layer muon 2.78 26.3836 73.3464 + case= 4 layer neutrino 8.06 37.2996 300.635 + case= 5 layer pion 34.41 1382.95 47587.2 + case= 6 layer neutron 73.32 86.9685 6376.53 + case= 7 layer proton 40.14 138.691 5567.05 + case= 8 layer ion 378.13 1.83297 693.1 + case= 9 layer otherMeson 3.11 3982.57 12385.8 + case= 10 layer otherBaryon 0.57 675.105 384.81 + case= 11 layer below 20 MeV all 10794.9 0.425352 4591.64 + case= 12 layer below 20 MeV electron 9329.84 0.240955 2248.08 + case= 13 layer below 20 MeV gamma 1024.53 1.37835 1412.16 + case= 14 layer below 20 MeV muon 2.47 4.16807 10.2951 + case= 15 layer below 20 MeV neutrino 0.61 14.193 8.65773 + case= 16 layer below 20 MeV pion 0.6 13.271 7.96257 + case= 17 layer below 20 MeV neutron 42.8 6.10482 261.286 + case= 18 layer below 20 MeV proton 20.25 7.4407 150.674 + case= 19 layer below 20 MeV ion 373.74 1.31612 491.888 + case= 20 layer below 20 MeV otherMeson 0.07 8.0241 0.561687 + case= 21 layer below 20 MeV otherBaryon 0.01 7.07606 0.0707606 + case= 22 layer above 20 MeV all 280.29 429.661 120430 + case= 23 layer above 20 MeV electron 85.06 235.803 20057.4 + case= 24 layer above 20 MeV gamma 95.26 293.251 27935.1 + case= 25 layer above 20 MeV muon 0.31 203.391 63.0513 + case= 26 layer above 20 MeV neutrino 7.45 39.1916 291.977 + case= 27 layer above 20 MeV pion 33.81 1407.25 47579.2 + case= 28 layer above 20 MeV neutron 30.52 200.368 6115.25 + case= 29 layer above 20 MeV proton 19.89 272.317 5416.38 + case= 30 layer above 20 MeV ion 4.39 45.8342 201.212 + case= 31 layer above 20 MeV otherMeson 3.04 4074.09 12385.2 + case= 32 layer above 20 MeV otherBaryon 0.56 687.034 384.739 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_Si + Thickness = 1000 mm + Diameter = 1000 mm + ScoringThickness = 10 mm + ------------------------------------------------------ + + +PrimaryGenerationAction::SetGunPosition() : gun position along z = -550 mm + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructLayer() : + World (box) size: + x : -/+ 600 mm y : -/+ 600 mm z : -/+ 600 mm + Target layer (cylinder) size: + x : -/+ 500 mm y : -/+ 500 mm z : -/+ 500 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + +Index : 3 used in the geometry : Yes + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 2 starts. +### Run 2 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=9.870000s Real=9.970537s Sys=0.020000s + + + =============== Run::PrintInfo() =============== RunID = 2 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_Si + Cubic-volume scoring up-down = 7.85398e+06 mm^3 + Cubic-volume scoring side = 3.17301e+07 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 downstream all 0.0684633 + case= 1 downstream electron 0.00516633 + case= 2 downstream gamma 0.0583313 + case= 3 downstream muon 2.44998e-05 + case= 4 downstream neutrino 0.000313043 + case= 5 downstream pion 0.000764481 + case= 6 downstream neutron 0.00345049 + case= 7 downstream proton 0.000345025 + case= 8 downstream ion 3.49805e-06 + case= 9 downstream otherMeson 5.9599e-05 + case= 10 downstream otherBaryon 5.12177e-06 + case= 11 downstream below 20 MeV all 0.059584 + case= 12 downstream below 20 MeV electron 0.00327272 + case= 13 downstream below 20 MeV gamma 0.0537679 + case= 14 downstream below 20 MeV muon 1.57474e-06 + case= 15 downstream below 20 MeV neutrino 2.51574e-05 + case= 16 downstream below 20 MeV pion 5.58221e-06 + case= 17 downstream below 20 MeV neutron 0.00249244 + case= 18 downstream below 20 MeV proton 1.72511e-05 + case= 19 downstream below 20 MeV ion 1.36096e-06 + case= 20 downstream below 20 MeV otherMeson 0 + case= 21 downstream below 20 MeV otherBaryon 0 + case= 22 downstream above 20 MeV all 0.00887937 + case= 23 downstream above 20 MeV electron 0.00189362 + case= 24 downstream above 20 MeV gamma 0.00456337 + case= 25 downstream above 20 MeV muon 2.29251e-05 + case= 26 downstream above 20 MeV neutrino 0.000287885 + case= 27 downstream above 20 MeV pion 0.000758899 + case= 28 downstream above 20 MeV neutron 0.000958047 + case= 29 downstream above 20 MeV proton 0.000327774 + case= 30 downstream above 20 MeV ion 2.13709e-06 + case= 31 downstream above 20 MeV otherMeson 5.9599e-05 + case= 32 downstream above 20 MeV otherBaryon 5.12177e-06 + case= 33 side all 0.00355692 + case= 34 side electron 6.61565e-05 + case= 35 side gamma 0.00197776 + case= 36 side muon 3.85501e-07 + case= 37 side neutrino 0.000150582 + case= 38 side pion 1.44991e-05 + case= 39 side neutron 0.00133913 + case= 40 side proton 7.52162e-06 + case= 41 side ion 0 + case= 42 side otherMeson 8.87693e-07 + case= 43 side otherBaryon 0 + case= 44 side below 20 MeV all 0.00314513 + case= 45 side below 20 MeV electron 5.36717e-05 + case= 46 side below 20 MeV gamma 0.00191167 + case= 47 side below 20 MeV muon 0 + case= 48 side below 20 MeV neutrino 1.88696e-05 + case= 49 side below 20 MeV pion 0 + case= 50 side below 20 MeV neutron 0.00115928 + case= 51 side below 20 MeV proton 1.64183e-06 + case= 52 side below 20 MeV ion 0 + case= 53 side below 20 MeV otherMeson 0 + case= 54 side below 20 MeV otherBaryon 0 + case= 55 side above 20 MeV all 0.000411788 + case= 56 side above 20 MeV electron 1.24848e-05 + case= 57 side above 20 MeV gamma 6.60913e-05 + case= 58 side above 20 MeV muon 3.85501e-07 + case= 59 side above 20 MeV neutrino 0.000131713 + case= 60 side above 20 MeV pion 1.44991e-05 + case= 61 side above 20 MeV neutron 0.000179847 + case= 62 side above 20 MeV proton 5.87979e-06 + case= 63 side above 20 MeV ion 0 + case= 64 side above 20 MeV otherMeson 8.87693e-07 + case= 65 side above 20 MeV otherBaryon 0 + case= 66 upstream all 0.00274169 + case= 67 upstream electron 2.98132e-05 + case= 68 upstream gamma 0.00137781 + case= 69 upstream muon 0 + case= 70 upstream neutrino 0.000138537 + case= 71 upstream pion 1.49544e-05 + case= 72 upstream neutron 0.00117867 + case= 73 upstream proton 1.90955e-06 + case= 74 upstream ion 0 + case= 75 upstream otherMeson 0 + case= 76 upstream otherBaryon 0 + case= 77 upstream below 20 MeV all 0.00245523 + case= 78 upstream below 20 MeV electron 2.82912e-05 + case= 79 upstream below 20 MeV gamma 0.0013454 + case= 80 upstream below 20 MeV muon 0 + case= 81 upstream below 20 MeV neutrino 1.61441e-05 + case= 82 upstream below 20 MeV pion 0 + case= 83 upstream below 20 MeV neutron 0.00106539 + case= 84 upstream below 20 MeV proton 0 + case= 85 upstream below 20 MeV ion 0 + case= 86 upstream below 20 MeV otherMeson 0 + case= 87 upstream below 20 MeV otherBaryon 0 + case= 88 upstream above 20 MeV all 0.000286465 + case= 89 upstream above 20 MeV electron 1.52199e-06 + case= 90 upstream above 20 MeV gamma 3.24103e-05 + case= 91 upstream above 20 MeV muon 0 + case= 92 upstream above 20 MeV neutrino 0.000122393 + case= 93 upstream above 20 MeV pion 1.49544e-05 + case= 94 upstream above 20 MeV neutron 0.000113276 + case= 95 upstream above 20 MeV proton 1.90955e-06 + case= 96 upstream above 20 MeV ion 0 + case= 97 upstream above 20 MeV otherMeson 0 + case= 98 upstream above 20 MeV otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 layer all 17489 8.45888 147938 + case= 1 layer electron 13986 2.5279 35355.1 + case= 2 layer gamma 3035.4 12.9484 39303.5 + case= 3 layer muon 2.17 36.8267 79.914 + case= 4 layer neutrino 6.26 36.7295 229.927 + case= 5 layer pion 30.57 1641.73 50187.6 + case= 6 layer neutron 101.43 61.9189 6280.43 + case= 7 layer proton 72.07 80.1042 5773.11 + case= 8 layer ion 252.35 1.74098 439.335 + case= 9 layer otherMeson 2.35 3950.31 9283.24 + case= 10 layer otherBaryon 0.46 2185.61 1005.38 + case= 11 layer below 20 MeV all 17061 0.562738 9600.89 + case= 12 layer below 20 MeV electron 13821.3 0.365993 5058.5 + case= 13 layer below 20 MeV gamma 2869.35 1.26312 3624.35 + case= 14 layer below 20 MeV muon 1.9 4.17678 7.93589 + case= 15 layer below 20 MeV neutrino 0.72 14.955 10.7676 + case= 16 layer below 20 MeV pion 0.39 11.0678 4.31645 + case= 17 layer below 20 MeV neutron 70.98 4.38696 311.386 + case= 18 layer below 20 MeV proton 47.83 6.59941 315.65 + case= 19 layer below 20 MeV ion 248.5 1.07667 267.552 + case= 20 layer below 20 MeV otherMeson 0.04 8.67583 0.347033 + case= 21 layer below 20 MeV otherBaryon 0.01 8.9198 0.089198 + case= 22 layer above 20 MeV all 428 323.216 138337 + case= 23 layer above 20 MeV electron 164.66 183.995 30296.6 + case= 24 layer above 20 MeV gamma 166.05 214.87 35679.1 + case= 25 layer above 20 MeV muon 0.27 266.586 71.9781 + case= 26 layer above 20 MeV neutrino 5.54 39.5594 219.159 + case= 27 layer above 20 MeV pion 30.18 1662.8 50183.3 + case= 28 layer above 20 MeV neutron 30.45 196.028 5969.05 + case= 29 layer above 20 MeV proton 24.24 225.143 5457.46 + case= 30 layer above 20 MeV ion 3.85 44.619 171.783 + case= 31 layer above 20 MeV otherMeson 2.31 4018.57 9282.89 + case= 32 layer above 20 MeV otherBaryon 0.45 2233.98 1005.29 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_lAr + Thickness = 1000 mm + Diameter = 1000 mm + ScoringThickness = 10 mm + ------------------------------------------------------ + + +PrimaryGenerationAction::SetGunPosition() : gun position along z = -550 mm + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructLayer() : + World (box) size: + x : -/+ 600 mm y : -/+ 600 mm z : -/+ 600 mm + Target layer (cylinder) size: + x : -/+ 500 mm y : -/+ 500 mm z : -/+ 500 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + +Index : 3 used in the geometry : No + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + +Index : 4 used in the geometry : Yes + Material : G4_lAr + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.20503 keV e- 273.977 keV e+ 266.18 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 3 starts. +### Run 3 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=3.920000s Real=3.959441s Sys=0.010000s + + + =============== Run::PrintInfo() =============== RunID = 3 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_lAr + Cubic-volume scoring up-down = 7.85398e+06 mm^3 + Cubic-volume scoring side = 3.17301e+07 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 downstream all 0.0507346 + case= 1 downstream electron 0.00438878 + case= 2 downstream gamma 0.0427519 + case= 3 downstream muon 1.10617e-05 + case= 4 downstream neutrino 9.98126e-05 + case= 5 downstream pion 0.000623058 + case= 6 downstream neutron 0.00264855 + case= 7 downstream proton 0.000167885 + case= 8 downstream ion 3.95462e-06 + case= 9 downstream otherMeson 3.95659e-05 + case= 10 downstream otherBaryon 0 + case= 11 downstream below 20 MeV all 0.0438491 + case= 12 downstream below 20 MeV electron 0.00261174 + case= 13 downstream below 20 MeV gamma 0.0391971 + case= 14 downstream below 20 MeV muon 0 + case= 15 downstream below 20 MeV neutrino 5.33523e-06 + case= 16 downstream below 20 MeV pion 0 + case= 17 downstream below 20 MeV neutron 0.00202615 + case= 18 downstream below 20 MeV proton 8.7939e-06 + case= 19 downstream below 20 MeV ion 0 + case= 20 downstream below 20 MeV otherMeson 0 + case= 21 downstream below 20 MeV otherBaryon 0 + case= 22 downstream above 20 MeV all 0.00688544 + case= 23 downstream above 20 MeV electron 0.00177704 + case= 24 downstream above 20 MeV gamma 0.00355479 + case= 25 downstream above 20 MeV muon 1.10617e-05 + case= 26 downstream above 20 MeV neutrino 9.44774e-05 + case= 27 downstream above 20 MeV pion 0.000623058 + case= 28 downstream above 20 MeV neutron 0.0006224 + case= 29 downstream above 20 MeV proton 0.000159091 + case= 30 downstream above 20 MeV ion 3.95462e-06 + case= 31 downstream above 20 MeV otherMeson 3.95659e-05 + case= 32 downstream above 20 MeV otherBaryon 0 + case= 33 side all 0.00307137 + case= 34 side electron 4.33342e-05 + case= 35 side gamma 0.00191913 + case= 36 side muon 1.042e-06 + case= 37 side neutrino 5.07381e-05 + case= 38 side pion 1.94555e-05 + case= 39 side neutron 0.00102975 + case= 40 side proton 7.92605e-06 + case= 41 side ion 0 + case= 42 side otherMeson 0 + case= 43 side otherBaryon 0 + case= 44 side below 20 MeV all 0.00282003 + case= 45 side below 20 MeV electron 3.31072e-05 + case= 46 side below 20 MeV gamma 0.00188482 + case= 47 side below 20 MeV muon 0 + case= 48 side below 20 MeV neutrino 4.55716e-06 + case= 49 side below 20 MeV pion 3.17625e-07 + case= 50 side below 20 MeV neutron 0.000897228 + case= 51 side below 20 MeV proton 0 + case= 52 side below 20 MeV ion 0 + case= 53 side below 20 MeV otherMeson 0 + case= 54 side below 20 MeV otherBaryon 0 + case= 55 side above 20 MeV all 0.000251347 + case= 56 side above 20 MeV electron 1.0227e-05 + case= 57 side above 20 MeV gamma 3.43134e-05 + case= 58 side above 20 MeV muon 1.042e-06 + case= 59 side above 20 MeV neutrino 4.6181e-05 + case= 60 side above 20 MeV pion 1.91378e-05 + case= 61 side above 20 MeV neutron 0.00013252 + case= 62 side above 20 MeV proton 7.92605e-06 + case= 63 side above 20 MeV ion 0 + case= 64 side above 20 MeV otherMeson 0 + case= 65 side above 20 MeV otherBaryon 0 + case= 66 upstream all 0.00243495 + case= 67 upstream electron 4.68108e-05 + case= 68 upstream gamma 0.00128316 + case= 69 upstream muon 0 + case= 70 upstream neutrino 3.59928e-05 + case= 71 upstream pion 1.42161e-05 + case= 72 upstream neutron 0.00104307 + case= 73 upstream proton 1.09683e-05 + case= 74 upstream ion 0 + case= 75 upstream otherMeson 0 + case= 76 upstream otherBaryon 7.28339e-07 + case= 77 upstream below 20 MeV all 0.002242 + case= 78 upstream below 20 MeV electron 3.36992e-05 + case= 79 upstream below 20 MeV gamma 0.0012598 + case= 80 upstream below 20 MeV muon 0 + case= 81 upstream below 20 MeV neutrino 1.92489e-06 + case= 82 upstream below 20 MeV pion 1.46726e-06 + case= 83 upstream below 20 MeV neutron 0.000933407 + case= 84 upstream below 20 MeV proton 1.09683e-05 + case= 85 upstream below 20 MeV ion 0 + case= 86 upstream below 20 MeV otherMeson 0 + case= 87 upstream below 20 MeV otherBaryon 7.28339e-07 + case= 88 upstream above 20 MeV all 0.000192947 + case= 89 upstream above 20 MeV electron 1.31116e-05 + case= 90 upstream above 20 MeV gamma 2.33518e-05 + case= 91 upstream above 20 MeV muon 0 + case= 92 upstream above 20 MeV neutrino 3.40679e-05 + case= 93 upstream above 20 MeV pion 1.27489e-05 + case= 94 upstream above 20 MeV neutron 0.000109667 + case= 95 upstream above 20 MeV proton 0 + case= 96 upstream above 20 MeV ion 0 + case= 97 upstream above 20 MeV otherMeson 0 + case= 98 upstream above 20 MeV otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 layer all 6148.22 13.4007 82390.5 + case= 1 layer electron 4573.86 4.20686 19241.6 + case= 2 layer gamma 1383.06 16.7613 23181.9 + case= 3 layer muon 0.77 88.2866 67.9807 + case= 4 layer neutrino 2.08 45.5964 94.8406 + case= 5 layer pion 13.96 2198.63 30692.9 + case= 6 layer neutron 62.52 34.7794 2174.41 + case= 7 layer proton 16.51 129.889 2144.47 + case= 8 layer ion 94.1 1.61282 151.766 + case= 9 layer otherMeson 1.15 3948.93 4541.27 + case= 10 layer otherBaryon 0.21 473.309 99.3949 + case= 11 layer below 20 MeV all 5955.53 0.656748 3911.28 + case= 12 layer below 20 MeV electron 4502.64 0.432022 1945.24 + case= 13 layer below 20 MeV gamma 1301.51 1.25036 1627.36 + case= 14 layer below 20 MeV muon 0.59 4.11981 2.43069 + case= 15 layer below 20 MeV neutrino 0.17 15.0452 2.55769 + case= 16 layer below 20 MeV pion 0.08 6.12982 0.490386 + case= 17 layer below 20 MeV neutron 49.63 3.74935 186.08 + case= 18 layer below 20 MeV proton 8.25 8.24096 67.9879 + case= 19 layer below 20 MeV ion 92.59 0.845578 78.2921 + case= 20 layer below 20 MeV otherMeson 0 0 0 + case= 21 layer below 20 MeV otherBaryon 0.07 12.1349 0.849446 + case= 22 layer above 20 MeV all 192.69 407.282 78479.2 + case= 23 layer above 20 MeV electron 71.22 242.858 17296.3 + case= 24 layer above 20 MeV gamma 81.55 264.311 21554.6 + case= 25 layer above 20 MeV muon 0.18 364.167 65.55 + case= 26 layer above 20 MeV neutrino 1.91 48.3157 92.2829 + case= 27 layer above 20 MeV pion 13.88 2211.27 30692.4 + case= 28 layer above 20 MeV neutron 12.89 154.254 1988.33 + case= 29 layer above 20 MeV proton 8.26 251.39 2076.48 + case= 30 layer above 20 MeV ion 1.51 48.6585 73.4743 + case= 31 layer above 20 MeV otherMeson 1.15 3948.93 4541.27 + case= 32 layer above 20 MeV otherBaryon 0.14 703.896 98.5455 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_Fe + Thickness = 1000 mm + Diameter = 1000 mm + ScoringThickness = 10 mm + ------------------------------------------------------ + + +PrimaryGenerationAction::SetGunPosition() : gun position along z = -550 mm + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructLayer() : + World (box) size: + x : -/+ 600 mm y : -/+ 600 mm z : -/+ 600 mm + Target layer (cylinder) size: + x : -/+ 500 mm y : -/+ 500 mm z : -/+ 500 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + +Index : 3 used in the geometry : No + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + +Index : 4 used in the geometry : No + Material : G4_lAr + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.20503 keV e- 273.977 keV e+ 266.18 keV proton 70 keV + +Index : 5 used in the geometry : Yes + Material : G4_Fe + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 17.2487 keV e- 954.642 keV e+ 906.513 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 4 starts. +### Run 4 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=44.750000s Real=45.187421s Sys=0.030000s + + + =============== Run::PrintInfo() =============== RunID = 4 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_Fe + Cubic-volume scoring up-down = 7.85398e+06 mm^3 + Cubic-volume scoring side = 3.17301e+07 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 downstream all 0.015669 + case= 1 downstream electron 0.000379551 + case= 2 downstream gamma 0.00760296 + case= 3 downstream muon 1.4539e-06 + case= 4 downstream neutrino 0.000363771 + case= 5 downstream pion 0.000115154 + case= 6 downstream neutron 0.00712268 + case= 7 downstream proton 6.68093e-05 + case= 8 downstream ion 3.15954e-06 + case= 9 downstream otherMeson 1.21386e-05 + case= 10 downstream otherBaryon 1.3447e-06 + case= 11 downstream below 20 MeV all 0.0141399 + case= 12 downstream below 20 MeV electron 0.000282516 + case= 13 downstream below 20 MeV gamma 0.00732909 + case= 14 downstream below 20 MeV muon 0 + case= 15 downstream below 20 MeV neutrino 1.85903e-05 + case= 16 downstream below 20 MeV pion 3.16371e-06 + case= 17 downstream below 20 MeV neutron 0.00650413 + case= 18 downstream below 20 MeV proton 2.38744e-06 + case= 19 downstream below 20 MeV ion 0 + case= 20 downstream below 20 MeV otherMeson 0 + case= 21 downstream below 20 MeV otherBaryon 0 + case= 22 downstream above 20 MeV all 0.00152915 + case= 23 downstream above 20 MeV electron 9.7035e-05 + case= 24 downstream above 20 MeV gamma 0.000273872 + case= 25 downstream above 20 MeV muon 1.4539e-06 + case= 26 downstream above 20 MeV neutrino 0.000345181 + case= 27 downstream above 20 MeV pion 0.000111991 + case= 28 downstream above 20 MeV neutron 0.000618555 + case= 29 downstream above 20 MeV proton 6.44219e-05 + case= 30 downstream above 20 MeV ion 3.15954e-06 + case= 31 downstream above 20 MeV otherMeson 1.21386e-05 + case= 32 downstream above 20 MeV otherBaryon 1.3447e-06 + case= 33 side all 0.0053334 + case= 34 side electron 4.89787e-06 + case= 35 side gamma 0.00059948 + case= 36 side muon 0 + case= 37 side neutrino 0.00029961 + case= 38 side pion 6.68508e-07 + case= 39 side neutron 0.0044258 + case= 40 side proton 2.62413e-06 + case= 41 side ion 0 + case= 42 side otherMeson 3.15721e-07 + case= 43 side otherBaryon 0 + case= 44 side below 20 MeV all 0.00489725 + case= 45 side below 20 MeV electron 4.89787e-06 + case= 46 side below 20 MeV gamma 0.00059948 + case= 47 side below 20 MeV muon 0 + case= 48 side below 20 MeV neutrino 2.40771e-05 + case= 49 side below 20 MeV pion 0 + case= 50 side below 20 MeV neutron 0.00426879 + case= 51 side below 20 MeV proton 0 + case= 52 side below 20 MeV ion 0 + case= 53 side below 20 MeV otherMeson 0 + case= 54 side below 20 MeV otherBaryon 0 + case= 55 side above 20 MeV all 0.000436151 + case= 56 side above 20 MeV electron 0 + case= 57 side above 20 MeV gamma 0 + case= 58 side above 20 MeV muon 0 + case= 59 side above 20 MeV neutrino 0.000275532 + case= 60 side above 20 MeV pion 6.68508e-07 + case= 61 side above 20 MeV neutron 0.00015701 + case= 62 side above 20 MeV proton 2.62413e-06 + case= 63 side above 20 MeV ion 0 + case= 64 side above 20 MeV otherMeson 3.15721e-07 + case= 65 side above 20 MeV otherBaryon 0 + case= 66 upstream all 0.0154302 + case= 67 upstream electron 7.49784e-05 + case= 68 upstream gamma 0.00308298 + case= 69 upstream muon 0 + case= 70 upstream neutrino 0.000521438 + case= 71 upstream pion 2.21556e-05 + case= 72 upstream neutron 0.0117155 + case= 73 upstream proton 1.16461e-05 + case= 74 upstream ion 1.43313e-06 + case= 75 upstream otherMeson 0 + case= 76 upstream otherBaryon 0 + case= 77 upstream below 20 MeV all 0.0144506 + case= 78 upstream below 20 MeV electron 6.56299e-05 + case= 79 upstream below 20 MeV gamma 0.00304068 + case= 80 upstream below 20 MeV muon 0 + case= 81 upstream below 20 MeV neutrino 2.83694e-05 + case= 82 upstream below 20 MeV pion 0 + case= 83 upstream below 20 MeV neutron 0.011316 + case= 84 upstream below 20 MeV proton 0 + case= 85 upstream below 20 MeV ion 0 + case= 86 upstream below 20 MeV otherMeson 0 + case= 87 upstream below 20 MeV otherBaryon 0 + case= 88 upstream above 20 MeV all 0.000979527 + case= 89 upstream above 20 MeV electron 9.3485e-06 + case= 90 upstream above 20 MeV gamma 4.23046e-05 + case= 91 upstream above 20 MeV muon 0 + case= 92 upstream above 20 MeV neutrino 0.000493069 + case= 93 upstream above 20 MeV pion 2.21556e-05 + case= 94 upstream above 20 MeV neutron 0.00039957 + case= 95 upstream above 20 MeV proton 1.16461e-05 + case= 96 upstream above 20 MeV ion 1.43313e-06 + case= 97 upstream above 20 MeV otherMeson 0 + case= 98 upstream above 20 MeV otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 layer all 58245.8 4.49885 262039 + case= 1 layer electron 43598.7 1.7627 76851.5 + case= 2 layer gamma 12298.3 6.11879 75250.7 + case= 3 layer muon 4.35 18.1318 78.8732 + case= 4 layer neutrino 12.97 41.0692 532.668 + case= 5 layer pion 50.57 1288.88 65178.5 + case= 6 layer neutron 897.47 18.0254 16177.3 + case= 7 layer proton 199.07 64.1074 12761.9 + case= 8 layer ion 1178.43 0.97192 1145.34 + case= 9 layer otherMeson 4.59 2743.35 12592 + case= 10 layer otherBaryon 1.3 1130.88 1470.15 + case= 11 layer below 20 MeV all 57170.6 0.653931 37385.6 + case= 12 layer below 20 MeV electron 43177.5 0.447167 19307.5 + case= 13 layer below 20 MeV gamma 11917.9 1.21582 14490 + case= 14 layer below 20 MeV muon 3.97 4.11868 16.3511 + case= 15 layer below 20 MeV neutrino 0.93 14.9093 13.8657 + case= 16 layer below 20 MeV pion 0.85 11.0232 9.3697 + case= 17 layer below 20 MeV neutron 776.32 2.55322 1982.12 + case= 18 layer below 20 MeV proton 125.55 7.96561 1000.08 + case= 19 layer below 20 MeV ion 1167.48 0.483781 564.804 + case= 20 layer below 20 MeV otherMeson 0.13 6.9779 0.907126 + case= 21 layer below 20 MeV otherBaryon 0.05 12.6538 0.632688 + case= 22 layer above 20 MeV all 1075.12 208.956 224653 + case= 23 layer above 20 MeV electron 421.25 136.603 57544 + case= 24 layer above 20 MeV gamma 380.4 159.728 60760.7 + case= 25 layer above 20 MeV muon 0.38 164.532 62.5221 + case= 26 layer above 20 MeV neutrino 12.04 43.0899 518.802 + case= 27 layer above 20 MeV pion 49.72 1310.72 65169.2 + case= 28 layer above 20 MeV neutron 121.15 117.17 14195.2 + case= 29 layer above 20 MeV proton 73.52 159.981 11761.8 + case= 30 layer above 20 MeV ion 10.95 53.0169 580.535 + case= 31 layer above 20 MeV otherMeson 4.46 2823.11 12591.1 + case= 32 layer above 20 MeV otherBaryon 1.25 1175.61 1469.52 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_Cu + Thickness = 1000 mm + Diameter = 1000 mm + ScoringThickness = 10 mm + ------------------------------------------------------ + + +PrimaryGenerationAction::SetGunPosition() : gun position along z = -550 mm + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructLayer() : + World (box) size: + x : -/+ 600 mm y : -/+ 600 mm z : -/+ 600 mm + Target layer (cylinder) size: + x : -/+ 500 mm y : -/+ 500 mm z : -/+ 500 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + +Index : 3 used in the geometry : No + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + +Index : 4 used in the geometry : No + Material : G4_lAr + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.20503 keV e- 273.977 keV e+ 266.18 keV proton 70 keV + +Index : 5 used in the geometry : No + Material : G4_Fe + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 17.2487 keV e- 954.642 keV e+ 906.513 keV proton 70 keV + +Index : 6 used in the geometry : Yes + Material : G4_Cu + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 20.5458 keV e- 1.03403 MeV e+ 979.823 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 5 starts. +### Run 5 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=43.560000s Real=44.000284s Sys=0.040000s + + + =============== Run::PrintInfo() =============== RunID = 5 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_Cu + Cubic-volume scoring up-down = 7.85398e+06 mm^3 + Cubic-volume scoring side = 3.17301e+07 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 downstream all 0.0102206 + case= 1 downstream electron 0.00032372 + case= 2 downstream gamma 0.00485344 + case= 3 downstream muon 1.30737e-06 + case= 4 downstream neutrino 0.000296897 + case= 5 downstream pion 9.70245e-05 + case= 6 downstream neutron 0.00457521 + case= 7 downstream proton 6.07627e-05 + case= 8 downstream ion 0 + case= 9 downstream otherMeson 9.63835e-06 + case= 10 downstream otherBaryon 2.62776e-06 + case= 11 downstream below 20 MeV all 0.00899612 + case= 12 downstream below 20 MeV electron 0.000268678 + case= 13 downstream below 20 MeV gamma 0.00469468 + case= 14 downstream below 20 MeV muon 0 + case= 15 downstream below 20 MeV neutrino 2.4922e-05 + case= 16 downstream below 20 MeV pion 0 + case= 17 downstream below 20 MeV neutron 0.00400784 + case= 18 downstream below 20 MeV proton 0 + case= 19 downstream below 20 MeV ion 0 + case= 20 downstream below 20 MeV otherMeson 0 + case= 21 downstream below 20 MeV otherBaryon 0 + case= 22 downstream above 20 MeV all 0.0012245 + case= 23 downstream above 20 MeV electron 5.50413e-05 + case= 24 downstream above 20 MeV gamma 0.000158753 + case= 25 downstream above 20 MeV muon 1.30737e-06 + case= 26 downstream above 20 MeV neutrino 0.000271975 + case= 27 downstream above 20 MeV pion 9.70245e-05 + case= 28 downstream above 20 MeV neutron 0.000567368 + case= 29 downstream above 20 MeV proton 6.07627e-05 + case= 30 downstream above 20 MeV ion 0 + case= 31 downstream above 20 MeV otherMeson 9.63835e-06 + case= 32 downstream above 20 MeV otherBaryon 2.62776e-06 + case= 33 side all 0.00210427 + case= 34 side electron 2.25609e-06 + case= 35 side gamma 0.000414875 + case= 36 side muon 0 + case= 37 side neutrino 0.000273988 + case= 38 side pion 0 + case= 39 side neutron 0.00141148 + case= 40 side proton 1.67538e-06 + case= 41 side ion 0 + case= 42 side otherMeson 0 + case= 43 side otherBaryon 0 + case= 44 side below 20 MeV all 0.00173653 + case= 45 side below 20 MeV electron 2.25609e-06 + case= 46 side below 20 MeV gamma 0.000414875 + case= 47 side below 20 MeV muon 0 + case= 48 side below 20 MeV neutrino 2.5286e-05 + case= 49 side below 20 MeV pion 0 + case= 50 side below 20 MeV neutron 0.00129412 + case= 51 side below 20 MeV proton 0 + case= 52 side below 20 MeV ion 0 + case= 53 side below 20 MeV otherMeson 0 + case= 54 side below 20 MeV otherBaryon 0 + case= 55 side above 20 MeV all 0.000367739 + case= 56 side above 20 MeV electron 0 + case= 57 side above 20 MeV gamma 0 + case= 58 side above 20 MeV muon 0 + case= 59 side above 20 MeV neutrino 0.000248702 + case= 60 side above 20 MeV pion 0 + case= 61 side above 20 MeV neutron 0.000117362 + case= 62 side above 20 MeV proton 1.67538e-06 + case= 63 side above 20 MeV ion 0 + case= 64 side above 20 MeV otherMeson 0 + case= 65 side above 20 MeV otherBaryon 0 + case= 66 upstream all 0.0107256 + case= 67 upstream electron 2.34394e-05 + case= 68 upstream gamma 0.00285353 + case= 69 upstream muon 0 + case= 70 upstream neutrino 0.000460383 + case= 71 upstream pion 2.29604e-05 + case= 72 upstream neutron 0.00736525 + case= 73 upstream proton 0 + case= 74 upstream ion 0 + case= 75 upstream otherMeson 0 + case= 76 upstream otherBaryon 0 + case= 77 upstream below 20 MeV all 0.00983602 + case= 78 upstream below 20 MeV electron 2.34394e-05 + case= 79 upstream below 20 MeV gamma 0.00283978 + case= 80 upstream below 20 MeV muon 0 + case= 81 upstream below 20 MeV neutrino 2.93046e-05 + case= 82 upstream below 20 MeV pion 1.39973e-06 + case= 83 upstream below 20 MeV neutron 0.00694209 + case= 84 upstream below 20 MeV proton 0 + case= 85 upstream below 20 MeV ion 0 + case= 86 upstream below 20 MeV otherMeson 0 + case= 87 upstream below 20 MeV otherBaryon 0 + case= 88 upstream above 20 MeV all 0.000889549 + case= 89 upstream above 20 MeV electron 0 + case= 90 upstream above 20 MeV gamma 1.37441e-05 + case= 91 upstream above 20 MeV muon 0 + case= 92 upstream above 20 MeV neutrino 0.000431078 + case= 93 upstream above 20 MeV pion 2.15607e-05 + case= 94 upstream above 20 MeV neutron 0.000423166 + case= 95 upstream above 20 MeV proton 0 + case= 96 upstream above 20 MeV ion 0 + case= 97 upstream above 20 MeV otherMeson 0 + case= 98 upstream above 20 MeV otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 layer all 60642.6 4.28135 259632 + case= 1 layer electron 44865.2 1.65668 74327.2 + case= 2 layer gamma 13383.6 5.45578 73018 + case= 3 layer muon 3.9 19.0414 74.2613 + case= 4 layer neutrino 11.64 37.9309 441.516 + case= 5 layer pion 48.66 1327.05 64574.4 + case= 6 layer neutron 928.77 19.3776 17997.3 + case= 7 layer proton 219.64 59.7405 13121.4 + case= 8 layer ion 1176.05 0.99257 1167.31 + case= 9 layer otherMeson 4.24 3217.48 13642.1 + case= 10 layer otherBaryon 0.89 1424.91 1268.17 + case= 11 layer below 20 MeV all 59580.7 0.670917 39973.7 + case= 12 layer below 20 MeV electron 44454.8 0.456371 20287.9 + case= 13 layer below 20 MeV gamma 13013.1 1.2168 15834.4 + case= 14 layer below 20 MeV muon 3.58 4.15535 14.8762 + case= 15 layer below 20 MeV neutrino 1 14.5528 14.5528 + case= 16 layer below 20 MeV pion 0.84 11.4176 9.59081 + case= 17 layer below 20 MeV neutron 800.72 2.65072 2122.48 + case= 18 layer below 20 MeV proton 141.67 8.13806 1152.92 + case= 19 layer below 20 MeV ion 1164.66 0.459115 534.713 + case= 20 layer below 20 MeV otherMeson 0.24 7.99606 1.91905 + case= 21 layer below 20 MeV otherBaryon 0.03 10.6835 0.320504 + case= 22 layer above 20 MeV all 1061.87 206.86 219658 + case= 23 layer above 20 MeV electron 410.31 131.704 54039.3 + case= 24 layer above 20 MeV gamma 370.51 154.338 57183.6 + case= 25 layer above 20 MeV muon 0.32 185.579 59.3851 + case= 26 layer above 20 MeV neutrino 10.64 40.1281 426.963 + case= 27 layer above 20 MeV pion 47.82 1350.16 64564.8 + case= 28 layer above 20 MeV neutron 128.05 123.974 15874.8 + case= 29 layer above 20 MeV proton 77.97 153.501 11968.5 + case= 30 layer above 20 MeV ion 11.39 55.5399 632.599 + case= 31 layer above 20 MeV otherMeson 4 3410.04 13640.2 + case= 32 layer above 20 MeV otherBaryon 0.86 1474.24 1267.85 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_W + Thickness = 1000 mm + Diameter = 1000 mm + ScoringThickness = 10 mm + ------------------------------------------------------ + + +PrimaryGenerationAction::SetGunPosition() : gun position along z = -550 mm + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructLayer() : + World (box) size: + x : -/+ 600 mm y : -/+ 600 mm z : -/+ 600 mm + Target layer (cylinder) size: + x : -/+ 500 mm y : -/+ 500 mm z : -/+ 500 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + +Index : 3 used in the geometry : No + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + +Index : 4 used in the geometry : No + Material : G4_lAr + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.20503 keV e- 273.977 keV e+ 266.18 keV proton 70 keV + +Index : 5 used in the geometry : No + Material : G4_Fe + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 17.2487 keV e- 954.642 keV e+ 906.513 keV proton 70 keV + +Index : 6 used in the geometry : No + Material : G4_Cu + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 20.5458 keV e- 1.03403 MeV e+ 979.823 keV proton 70 keV + +Index : 7 used in the geometry : Yes + Material : G4_W + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 97.7189 keV e- 1.64904 MeV e+ 1.53897 MeV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 6 starts. +### Run 6 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=112.150000s Real=113.632565s Sys=0.210000s + + + =============== Run::PrintInfo() =============== RunID = 6 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_W + Cubic-volume scoring up-down = 7.85398e+06 mm^3 + Cubic-volume scoring side = 3.17301e+07 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 downstream all 0.0024974 + case= 1 downstream electron 8.33332e-05 + case= 2 downstream gamma 0.000951897 + case= 3 downstream muon 0 + case= 4 downstream neutrino 0.000163245 + case= 5 downstream pion 9.83494e-06 + case= 6 downstream neutron 0.0012513 + case= 7 downstream proton 3.77867e-05 + case= 8 downstream ion 0 + case= 9 downstream otherMeson 0 + case= 10 downstream otherBaryon 0 + case= 11 downstream below 20 MeV all 0.00209927 + case= 12 downstream below 20 MeV electron 5.17556e-05 + case= 13 downstream below 20 MeV gamma 0.00087365 + case= 14 downstream below 20 MeV muon 0 + case= 15 downstream below 20 MeV neutrino 4.12746e-06 + case= 16 downstream below 20 MeV pion 0 + case= 17 downstream below 20 MeV neutron 0.00116973 + case= 18 downstream below 20 MeV proton 0 + case= 19 downstream below 20 MeV ion 0 + case= 20 downstream below 20 MeV otherMeson 0 + case= 21 downstream below 20 MeV otherBaryon 0 + case= 22 downstream above 20 MeV all 0.000398134 + case= 23 downstream above 20 MeV electron 3.15776e-05 + case= 24 downstream above 20 MeV gamma 7.82471e-05 + case= 25 downstream above 20 MeV muon 0 + case= 26 downstream above 20 MeV neutrino 0.000159118 + case= 27 downstream above 20 MeV pion 9.83494e-06 + case= 28 downstream above 20 MeV neutron 8.15697e-05 + case= 29 downstream above 20 MeV proton 3.77867e-05 + case= 30 downstream above 20 MeV ion 0 + case= 31 downstream above 20 MeV otherMeson 0 + case= 32 downstream above 20 MeV otherBaryon 0 + case= 33 side all 0.000740633 + case= 34 side electron 2.03382e-06 + case= 35 side gamma 4.12736e-05 + case= 36 side muon 0 + case= 37 side neutrino 0.000266281 + case= 38 side pion 0 + case= 39 side neutron 0.000431045 + case= 40 side proton 0 + case= 41 side ion 0 + case= 42 side otherMeson 0 + case= 43 side otherBaryon 0 + case= 44 side below 20 MeV all 0.000474846 + case= 45 side below 20 MeV electron 2.03382e-06 + case= 46 side below 20 MeV gamma 4.12736e-05 + case= 47 side below 20 MeV muon 0 + case= 48 side below 20 MeV neutrino 1.97905e-05 + case= 49 side below 20 MeV pion 0 + case= 50 side below 20 MeV neutron 0.000411748 + case= 51 side below 20 MeV proton 0 + case= 52 side below 20 MeV ion 0 + case= 53 side below 20 MeV otherMeson 0 + case= 54 side below 20 MeV otherBaryon 0 + case= 55 side above 20 MeV all 0.000265787 + case= 56 side above 20 MeV electron 0 + case= 57 side above 20 MeV gamma 0 + case= 58 side above 20 MeV muon 0 + case= 59 side above 20 MeV neutrino 0.00024649 + case= 60 side above 20 MeV pion 0 + case= 61 side above 20 MeV neutron 1.92963e-05 + case= 62 side above 20 MeV proton 0 + case= 63 side above 20 MeV ion 0 + case= 64 side above 20 MeV otherMeson 0 + case= 65 side above 20 MeV otherBaryon 0 + case= 66 upstream all 0.0292198 + case= 67 upstream electron 5.15615e-05 + case= 68 upstream gamma 0.00383433 + case= 69 upstream muon 0 + case= 70 upstream neutrino 0.00084562 + case= 71 upstream pion 2.77229e-05 + case= 72 upstream neutron 0.024401 + case= 73 upstream proton 5.43686e-05 + case= 74 upstream ion 5.18738e-06 + case= 75 upstream otherMeson 0 + case= 76 upstream otherBaryon 0 + case= 77 upstream below 20 MeV all 0.027274 + case= 78 upstream below 20 MeV electron 5.15615e-05 + case= 79 upstream below 20 MeV gamma 0.00382913 + case= 80 upstream below 20 MeV muon 0 + case= 81 upstream below 20 MeV neutrino 7.41378e-05 + case= 82 upstream below 20 MeV pion 0 + case= 83 upstream below 20 MeV neutron 0.023314 + case= 84 upstream below 20 MeV proton 0 + case= 85 upstream below 20 MeV ion 5.18738e-06 + case= 86 upstream below 20 MeV otherMeson 0 + case= 87 upstream below 20 MeV otherBaryon 0 + case= 88 upstream above 20 MeV all 0.00194577 + case= 89 upstream above 20 MeV electron 0 + case= 90 upstream above 20 MeV gamma 5.19644e-06 + case= 91 upstream above 20 MeV muon 0 + case= 92 upstream above 20 MeV neutrino 0.000771483 + case= 93 upstream above 20 MeV pion 2.77229e-05 + case= 94 upstream above 20 MeV neutron 0.001087 + case= 95 upstream above 20 MeV proton 5.43686e-05 + case= 96 upstream above 20 MeV ion 0 + case= 97 upstream above 20 MeV otherMeson 0 + case= 98 upstream above 20 MeV otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 layer all 70275.4 3.7884 266231 + case= 1 layer electron 41495.5 1.99068 82604.3 + case= 2 layer gamma 21949.1 3.84157 84319.1 + case= 3 layer muon 3.98 14.6413 58.2725 + case= 4 layer neutrino 11.92 36.9854 440.866 + case= 5 layer pion 42.29 1286.66 54413 + case= 6 layer neutron 3322.69 6.07187 20175 + case= 7 layer proton 123.32 98.3649 12130.4 + case= 8 layer ion 3321.52 0.411986 1368.42 + case= 9 layer otherMeson 3.79 2380.79 9023.18 + case= 10 layer otherBaryon 1.26 1348.2 1698.73 + case= 11 layer below 20 MeV all 69158.4 0.876173 60594.8 + case= 12 layer below 20 MeV electron 41078.1 0.698821 28706.2 + case= 13 layer below 20 MeV gamma 21553.9 1.23985 26723.6 + case= 14 layer below 20 MeV muon 3.7 4.16052 15.3939 + case= 15 layer below 20 MeV neutrino 0.92 14.5451 13.3815 + case= 16 layer below 20 MeV pion 0.99 12.3487 12.2252 + case= 17 layer below 20 MeV neutron 3173.08 1.30864 4152.41 + case= 18 layer below 20 MeV proton 42.77 12.4583 532.841 + case= 19 layer below 20 MeV ion 3304.64 0.131853 435.727 + case= 20 layer below 20 MeV otherMeson 0.25 8.36124 2.09031 + case= 21 layer below 20 MeV otherBaryon 0.1 8.71107 0.871107 + case= 22 layer above 20 MeV all 1116.93 184.109 205636 + case= 23 layer above 20 MeV electron 417.39 129.131 53898 + case= 24 layer above 20 MeV gamma 395.22 145.73 57595.5 + case= 25 layer above 20 MeV muon 0.28 153.138 42.8786 + case= 26 layer above 20 MeV neutrino 11 38.8622 427.484 + case= 27 layer above 20 MeV pion 41.3 1317.21 54400.8 + case= 28 layer above 20 MeV neutron 149.61 107.095 16022.5 + case= 29 layer above 20 MeV proton 80.55 143.979 11597.5 + case= 30 layer above 20 MeV ion 16.88 55.2543 932.693 + case= 31 layer above 20 MeV otherMeson 3.54 2548.33 9021.09 + case= 32 layer above 20 MeV otherBaryon 1.16 1463.67 1697.86 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_Pb + Thickness = 1000 mm + Diameter = 1000 mm + ScoringThickness = 10 mm + ------------------------------------------------------ + + +PrimaryGenerationAction::SetGunPosition() : gun position along z = -550 mm + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructLayer() : + World (box) size: + x : -/+ 600 mm y : -/+ 600 mm z : -/+ 600 mm + Target layer (cylinder) size: + x : -/+ 500 mm y : -/+ 500 mm z : -/+ 500 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + +Index : 3 used in the geometry : No + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + +Index : 4 used in the geometry : No + Material : G4_lAr + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.20503 keV e- 273.977 keV e+ 266.18 keV proton 70 keV + +Index : 5 used in the geometry : No + Material : G4_Fe + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 17.2487 keV e- 954.642 keV e+ 906.513 keV proton 70 keV + +Index : 6 used in the geometry : No + Material : G4_Cu + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 20.5458 keV e- 1.03403 MeV e+ 979.823 keV proton 70 keV + +Index : 7 used in the geometry : No + Material : G4_W + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 97.7189 keV e- 1.64904 MeV e+ 1.53897 MeV proton 70 keV + +Index : 8 used in the geometry : Yes + Material : G4_Pb + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 94.6952 keV e- 1.00699 MeV e+ 946.936 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 7 starts. +### Run 7 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=68.830000s Real=69.558910s Sys=0.070000s + + + =============== Run::PrintInfo() =============== RunID = 7 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_Pb + Cubic-volume scoring up-down = 7.85398e+06 mm^3 + Cubic-volume scoring side = 3.17301e+07 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 downstream all 0.0294285 + case= 1 downstream electron 8.28923e-05 + case= 2 downstream gamma 0.00115174 + case= 3 downstream muon 1.29296e-06 + case= 4 downstream neutrino 0.000258023 + case= 5 downstream pion 8.87159e-05 + case= 6 downstream neutron 0.0278111 + case= 7 downstream proton 2.93606e-05 + case= 8 downstream ion 1.31275e-06 + case= 9 downstream otherMeson 4.08861e-06 + case= 10 downstream otherBaryon 0 + case= 11 downstream below 20 MeV all 0.0285406 + case= 12 downstream below 20 MeV electron 7.4162e-05 + case= 13 downstream below 20 MeV gamma 0.00112433 + case= 14 downstream below 20 MeV muon 0 + case= 15 downstream below 20 MeV neutrino 2.1389e-05 + case= 16 downstream below 20 MeV pion 0 + case= 17 downstream below 20 MeV neutron 0.0273207 + case= 18 downstream below 20 MeV proton 0 + case= 19 downstream below 20 MeV ion 0 + case= 20 downstream below 20 MeV otherMeson 0 + case= 21 downstream below 20 MeV otherBaryon 0 + case= 22 downstream above 20 MeV all 0.000887944 + case= 23 downstream above 20 MeV electron 8.73027e-06 + case= 24 downstream above 20 MeV gamma 2.74168e-05 + case= 25 downstream above 20 MeV muon 1.29296e-06 + case= 26 downstream above 20 MeV neutrino 0.000236634 + case= 27 downstream above 20 MeV pion 8.87159e-05 + case= 28 downstream above 20 MeV neutron 0.000490393 + case= 29 downstream above 20 MeV proton 2.93606e-05 + case= 30 downstream above 20 MeV ion 1.31275e-06 + case= 31 downstream above 20 MeV otherMeson 4.08861e-06 + case= 32 downstream above 20 MeV otherBaryon 0 + case= 33 side all 0.0289181 + case= 34 side electron 1.16163e-06 + case= 35 side gamma 0.000158036 + case= 36 side muon 0 + case= 37 side neutrino 0.000248317 + case= 38 side pion 3.1694e-07 + case= 39 side neutron 0.0285089 + case= 40 side proton 1.11723e-06 + case= 41 side ion 0 + case= 42 side otherMeson 3.15798e-07 + case= 43 side otherBaryon 0 + case= 44 side below 20 MeV all 0.0285036 + case= 45 side below 20 MeV electron 1.16163e-06 + case= 46 side below 20 MeV gamma 0.000158036 + case= 47 side below 20 MeV muon 0 + case= 48 side below 20 MeV neutrino 2.14568e-05 + case= 49 side below 20 MeV pion 0 + case= 50 side below 20 MeV neutron 0.0283229 + case= 51 side below 20 MeV proton 0 + case= 52 side below 20 MeV ion 0 + case= 53 side below 20 MeV otherMeson 0 + case= 54 side below 20 MeV otherBaryon 0 + case= 55 side above 20 MeV all 0.000414574 + case= 56 side above 20 MeV electron 0 + case= 57 side above 20 MeV gamma 0 + case= 58 side above 20 MeV muon 0 + case= 59 side above 20 MeV neutrino 0.00022686 + case= 60 side above 20 MeV pion 3.1694e-07 + case= 61 side above 20 MeV neutron 0.000185964 + case= 62 side above 20 MeV proton 1.11723e-06 + case= 63 side above 20 MeV ion 0 + case= 64 side above 20 MeV otherMeson 3.15798e-07 + case= 65 side above 20 MeV otherBaryon 0 + case= 66 upstream all 0.0703232 + case= 67 upstream electron 4.81075e-05 + case= 68 upstream gamma 0.00201546 + case= 69 upstream muon 0 + case= 70 upstream neutrino 0.000575474 + case= 71 upstream pion 1.40497e-05 + case= 72 upstream neutron 0.0676534 + case= 73 upstream proton 1.66913e-05 + case= 74 upstream ion 0 + case= 75 upstream otherMeson 0 + case= 76 upstream otherBaryon 0 + case= 77 upstream below 20 MeV all 0.0685427 + case= 78 upstream below 20 MeV electron 3.80851e-05 + case= 79 upstream below 20 MeV gamma 0.00200602 + case= 80 upstream below 20 MeV muon 0 + case= 81 upstream below 20 MeV neutrino 6.51801e-05 + case= 82 upstream below 20 MeV pion 0 + case= 83 upstream below 20 MeV neutron 0.0664334 + case= 84 upstream below 20 MeV proton 0 + case= 85 upstream below 20 MeV ion 0 + case= 86 upstream below 20 MeV otherMeson 0 + case= 87 upstream below 20 MeV otherBaryon 0 + case= 88 upstream above 20 MeV all 0.00178043 + case= 89 upstream above 20 MeV electron 1.00225e-05 + case= 90 upstream above 20 MeV gamma 9.44137e-06 + case= 91 upstream above 20 MeV muon 0 + case= 92 upstream above 20 MeV neutrino 0.000510294 + case= 93 upstream above 20 MeV pion 1.40497e-05 + case= 94 upstream above 20 MeV neutron 0.00121993 + case= 95 upstream above 20 MeV proton 1.66913e-05 + case= 96 upstream above 20 MeV ion 0 + case= 97 upstream above 20 MeV otherMeson 0 + case= 98 upstream above 20 MeV otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 layer all 48072.4 5.12404 246325 + case= 1 layer electron 28511.4 2.67046 76138.4 + case= 2 layer gamma 16435.3 4.67929 76905.4 + case= 3 layer muon 3.71 14.0639 52.177 + case= 4 layer neutrino 11.1 36.2796 402.704 + case= 5 layer pion 40.68 1290.78 52508.9 + case= 6 layer neutron 1925.14 9.64842 18574.6 + case= 7 layer proton 111 91.6892 10177.5 + case= 8 layer ion 1029.39 1.36732 1407.51 + case= 9 layer otherMeson 3.66 2561.19 9373.96 + case= 10 layer otherBaryon 1.03 761.032 783.863 + case= 11 layer below 20 MeV all 46962.2 1.00035 46978.7 + case= 12 layer below 20 MeV electron 28088.4 0.809681 22742.6 + case= 13 layer below 20 MeV gamma 16035.2 1.22901 19707.4 + case= 14 layer below 20 MeV muon 3.49 4.11981 14.3781 + case= 15 layer below 20 MeV neutrino 0.99 14.8388 14.6904 + case= 16 layer below 20 MeV pion 0.88 12.775 11.242 + case= 17 layer below 20 MeV neutron 1784.67 2.04803 3655.06 + case= 18 layer below 20 MeV proton 37.07 12.5788 466.296 + case= 19 layer below 20 MeV ion 1011.26 0.360785 364.847 + case= 20 layer below 20 MeV otherMeson 0.25 6.07592 1.51898 + case= 21 layer below 20 MeV otherBaryon 0.05 12.8882 0.64441 + case= 22 layer above 20 MeV all 1110.17 179.564 199346 + case= 23 layer above 20 MeV electron 423.04 126.219 53395.9 + case= 24 layer above 20 MeV gamma 400.08 142.966 57198 + case= 25 layer above 20 MeV muon 0.22 171.813 37.7989 + case= 26 layer above 20 MeV neutrino 10.11 38.3792 388.013 + case= 27 layer above 20 MeV pion 39.8 1319.04 52497.6 + case= 28 layer above 20 MeV neutron 140.47 106.211 14919.5 + case= 29 layer above 20 MeV proton 73.93 131.357 9711.21 + case= 30 layer above 20 MeV ion 18.13 57.5101 1042.66 + case= 31 layer above 20 MeV otherMeson 3.41 2748.52 9372.44 + case= 32 layer above 20 MeV otherBaryon 0.98 799.203 783.219 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_PbWO4 + Thickness = 1000 mm + Diameter = 1000 mm + ScoringThickness = 10 mm + ------------------------------------------------------ + + +PrimaryGenerationAction::SetGunPosition() : gun position along z = -550 mm + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructLayer() : + World (box) size: + x : -/+ 600 mm y : -/+ 600 mm z : -/+ 600 mm + Target layer (cylinder) size: + x : -/+ 500 mm y : -/+ 500 mm z : -/+ 500 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + +Index : 3 used in the geometry : No + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + +Index : 4 used in the geometry : No + Material : G4_lAr + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.20503 keV e- 273.977 keV e+ 266.18 keV proton 70 keV + +Index : 5 used in the geometry : No + Material : G4_Fe + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 17.2487 keV e- 954.642 keV e+ 906.513 keV proton 70 keV + +Index : 6 used in the geometry : No + Material : G4_Cu + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 20.5458 keV e- 1.03403 MeV e+ 979.823 keV proton 70 keV + +Index : 7 used in the geometry : No + Material : G4_W + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 97.7189 keV e- 1.64904 MeV e+ 1.53897 MeV proton 70 keV + +Index : 8 used in the geometry : No + Material : G4_Pb + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 94.6952 keV e- 1.00699 MeV e+ 946.936 keV proton 70 keV + +Index : 9 used in the geometry : Yes + Material : G4_PbWO4 + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 75.7749 keV e- 842.468 keV e+ 797.806 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 8 starts. +### Run 8 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=62.220000s Real=62.823764s Sys=0.050000s + + + =============== Run::PrintInfo() =============== RunID = 8 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_PbWO4 + Cubic-volume scoring up-down = 7.85398e+06 mm^3 + Cubic-volume scoring side = 3.17301e+07 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 downstream all 0.0136884 + case= 1 downstream electron 0.000146294 + case= 2 downstream gamma 0.00311757 + case= 3 downstream muon 1.31596e-06 + case= 4 downstream neutrino 0.00036088 + case= 5 downstream pion 0.000132779 + case= 6 downstream neutron 0.00984211 + case= 7 downstream proton 7.77368e-05 + case= 8 downstream ion 0 + case= 9 downstream otherMeson 9.71691e-06 + case= 10 downstream otherBaryon 0 + case= 11 downstream below 20 MeV all 0.0123349 + case= 12 downstream below 20 MeV electron 0.000124319 + case= 13 downstream below 20 MeV gamma 0.00303224 + case= 14 downstream below 20 MeV muon 0 + case= 15 downstream below 20 MeV neutrino 3.81073e-05 + case= 16 downstream below 20 MeV pion 3.78605e-06 + case= 17 downstream below 20 MeV neutron 0.00912939 + case= 18 downstream below 20 MeV proton 7.07534e-06 + case= 19 downstream below 20 MeV ion 0 + case= 20 downstream below 20 MeV otherMeson 0 + case= 21 downstream below 20 MeV otherBaryon 0 + case= 22 downstream above 20 MeV all 0.0013535 + case= 23 downstream above 20 MeV electron 2.1975e-05 + case= 24 downstream above 20 MeV gamma 8.53329e-05 + case= 25 downstream above 20 MeV muon 1.31596e-06 + case= 26 downstream above 20 MeV neutrino 0.000322773 + case= 27 downstream above 20 MeV pion 0.000128993 + case= 28 downstream above 20 MeV neutron 0.000712729 + case= 29 downstream above 20 MeV proton 7.06615e-05 + case= 30 downstream above 20 MeV ion 0 + case= 31 downstream above 20 MeV otherMeson 9.71691e-06 + case= 32 downstream above 20 MeV otherBaryon 0 + case= 33 side all 0.00498392 + case= 34 side electron 4.8126e-06 + case= 35 side gamma 0.000477031 + case= 36 side muon 0 + case= 37 side neutrino 0.000288717 + case= 38 side pion 0 + case= 39 side neutron 0.00421023 + case= 40 side proton 3.13356e-06 + case= 41 side ion 0 + case= 42 side otherMeson 0 + case= 43 side otherBaryon 0 + case= 44 side below 20 MeV all 0.00449223 + case= 45 side below 20 MeV electron 4.8126e-06 + case= 46 side below 20 MeV gamma 0.000477031 + case= 47 side below 20 MeV muon 0 + case= 48 side below 20 MeV neutrino 2.46288e-05 + case= 49 side below 20 MeV pion 0 + case= 50 side below 20 MeV neutron 0.00398576 + case= 51 side below 20 MeV proton 0 + case= 52 side below 20 MeV ion 0 + case= 53 side below 20 MeV otherMeson 0 + case= 54 side below 20 MeV otherBaryon 0 + case= 55 side above 20 MeV all 0.000491692 + case= 56 side above 20 MeV electron 0 + case= 57 side above 20 MeV gamma 0 + case= 58 side above 20 MeV muon 0 + case= 59 side above 20 MeV neutrino 0.000264088 + case= 60 side above 20 MeV pion 0 + case= 61 side above 20 MeV neutron 0.00022447 + case= 62 side above 20 MeV proton 3.13356e-06 + case= 63 side above 20 MeV ion 0 + case= 64 side above 20 MeV otherMeson 0 + case= 65 side above 20 MeV otherBaryon 0 + case= 66 upstream all 0.0223148 + case= 67 upstream electron 6.21e-05 + case= 68 upstream gamma 0.00272784 + case= 69 upstream muon 0 + case= 70 upstream neutrino 0.000530991 + case= 71 upstream pion 3.06658e-05 + case= 72 upstream neutron 0.0189384 + case= 73 upstream proton 2.47552e-05 + case= 74 upstream ion 0 + case= 75 upstream otherMeson 0 + case= 76 upstream otherBaryon 0 + case= 77 upstream below 20 MeV all 0.0209388 + case= 78 upstream below 20 MeV electron 6.21e-05 + case= 79 upstream below 20 MeV gamma 0.00272261 + case= 80 upstream below 20 MeV muon 0 + case= 81 upstream below 20 MeV neutrino 3.55987e-05 + case= 82 upstream below 20 MeV pion 0 + case= 83 upstream below 20 MeV neutron 0.0181185 + case= 84 upstream below 20 MeV proton 0 + case= 85 upstream below 20 MeV ion 0 + case= 86 upstream below 20 MeV otherMeson 0 + case= 87 upstream below 20 MeV otherBaryon 0 + case= 88 upstream above 20 MeV all 0.00137592 + case= 89 upstream above 20 MeV electron 0 + case= 90 upstream above 20 MeV gamma 5.22879e-06 + case= 91 upstream above 20 MeV muon 0 + case= 92 upstream above 20 MeV neutrino 0.000495393 + case= 93 upstream above 20 MeV pion 3.06658e-05 + case= 94 upstream above 20 MeV neutron 0.000819875 + case= 95 upstream above 20 MeV proton 2.47552e-05 + case= 96 upstream above 20 MeV ion 0 + case= 97 upstream above 20 MeV otherMeson 0 + case= 98 upstream above 20 MeV otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 layer all 53758 4.72173 253831 + case= 1 layer electron 32016.9 2.42047 77495.9 + case= 2 layer gamma 17002 4.58216 77905.9 + case= 3 layer muon 4.24 16.9356 71.8071 + case= 4 layer neutrino 12.63 36.3228 458.757 + case= 5 layer pion 44.77 1341.87 60075.6 + case= 6 layer neutron 1627.71 10.3632 16868.2 + case= 7 layer proton 120.97 87.2614 10556 + case= 8 layer ion 2924.42 0.558208 1632.43 + case= 9 layer otherMeson 3.44 2316.74 7969.57 + case= 10 layer otherBaryon 0.87 915.563 796.54 + case= 11 layer below 20 MeV all 52683.2 0.940182 49531.8 + case= 12 layer below 20 MeV electron 31601.1 0.763802 24136.9 + case= 13 layer below 20 MeV gamma 16610.4 1.2697 21090.3 + case= 14 layer below 20 MeV muon 3.95 4.11981 16.2733 + case= 15 layer below 20 MeV neutrino 1.07 14.7406 15.7724 + case= 16 layer below 20 MeV pion 0.76 11.7765 8.95011 + case= 17 layer below 20 MeV neutron 1502.71 1.91729 2881.13 + case= 18 layer below 20 MeV proton 52.94 9.56326 506.279 + case= 19 layer below 20 MeV ion 2910.03 0.300471 874.379 + case= 20 layer below 20 MeV otherMeson 0.24 4.87741 1.17058 + case= 21 layer below 20 MeV otherBaryon 0.06 10.6476 0.638856 + case= 22 layer above 20 MeV all 1074.73 190.093 204299 + case= 23 layer above 20 MeV electron 415.84 128.316 53359 + case= 24 layer above 20 MeV gamma 391.6 145.086 56815.6 + case= 25 layer above 20 MeV muon 0.29 191.496 55.5338 + case= 26 layer above 20 MeV neutrino 11.56 38.3205 442.985 + case= 27 layer above 20 MeV pion 44.01 1364.84 60066.7 + case= 28 layer above 20 MeV neutron 125 111.897 13987.1 + case= 29 layer above 20 MeV proton 68.03 147.725 10049.7 + case= 30 layer above 20 MeV ion 14.39 52.6793 758.055 + case= 31 layer above 20 MeV otherMeson 3.2 2490.13 7968.4 + case= 32 layer above 20 MeV otherBaryon 0.81 982.594 795.901 + ============================================================= + +G4 kernel has come to Quit state. +================== Deleting memory pools =================== +Number of memory pools allocated: 13 of which, static: 0 +Dynamic pools deleted: 13 / Total memory freed: 0.13 MB +============================================================ +RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/hadronic/ParticleFluence/Layer/README b/examples/extended/hadronic/ParticleFluence/Layer/README index 1ce7fc6582..3fc374f363 100644 --- a/examples/extended/hadronic/ParticleFluence/Layer/README +++ b/examples/extended/hadronic/ParticleFluence/Layer/README @@ -13,6 +13,10 @@ cases) or a thin hemisphere shell (for the "side" case) filled up with G4_Galactic (very low density gas) material, immediately outside the target - and then dividing for the cubic volume of such scoring volume. +Complementary information on average multiplicity, average kinetic energy, +and average total energy flow (i.e. sum of kinetic energies) for the +particles produced in the target are also computed. + The particle fluence is evaluated for the following 11 particle types: - all - electron + positron diff --git a/examples/extended/hadronic/ParticleFluence/Layer/all_together.g4 b/examples/extended/hadronic/ParticleFluence/Layer/all_together.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/cu.g4 b/examples/extended/hadronic/ParticleFluence/Layer/cu.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/fe.g4 b/examples/extended/hadronic/ParticleFluence/Layer/fe.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/graphite.g4 b/examples/extended/hadronic/ParticleFluence/Layer/graphite.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/include/ActionInitialization.hh b/examples/extended/hadronic/ParticleFluence/Layer/include/ActionInitialization.hh index 29c2c522da..e57b59a3e1 100644 --- a/examples/extended/hadronic/ParticleFluence/Layer/include/ActionInitialization.hh +++ b/examples/extended/hadronic/ParticleFluence/Layer/include/ActionInitialization.hh @@ -43,9 +43,9 @@ class DetectorConstruction; class ActionInitialization : public G4VUserActionInitialization { public: ActionInitialization( const DetectorConstruction* inputDetectorConstruction = nullptr ); - virtual ~ActionInitialization(); - virtual void BuildForMaster() const override; - virtual void Build() const override; + ~ActionInitialization() override = default; + void BuildForMaster() const override; + void Build() const override; private: const DetectorConstruction* fPtrDetectorConstruction = nullptr; }; diff --git a/examples/extended/hadronic/ParticleFluence/Layer/include/DetectorConstruction.hh b/examples/extended/hadronic/ParticleFluence/Layer/include/DetectorConstruction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/include/DetectorMessenger.hh b/examples/extended/hadronic/ParticleFluence/Layer/include/DetectorMessenger.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/include/PrimaryGeneratorAction.hh b/examples/extended/hadronic/ParticleFluence/Layer/include/PrimaryGeneratorAction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/include/Run.hh b/examples/extended/hadronic/ParticleFluence/Layer/include/Run.hh index c058de8b71..c619e690a4 100644 --- a/examples/extended/hadronic/ParticleFluence/Layer/include/Run.hh +++ b/examples/extended/hadronic/ParticleFluence/Layer/include/Run.hh @@ -37,6 +37,7 @@ #include "G4Run.hh" #include "G4ThreeVector.hh" #include "SteppingAction.hh" +#include "TrackingAction.hh" #include //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,54 +46,69 @@ class Run : public G4Run { // This class accumulates relevant quantities related to particle fluence collected during // the run. // ( Note: these information are provided via calls of accessor methods of this Run class - // made by SteppingAction::UserSteppingAction. ) - // At the end of a run, the printInfo method is called by the run-action to print out + // made by SteppingAction::UserSteppingAction + // and TrackingAction::PreUserTrackingAction . ) + // At the end of a run, the PrintInfo method is called by the run-action to print out // some summary information about these quantities. // In multithreaded (MT) mode, an object of this class is filled up for each working thread, // and then merged (automatically by the Geant4 kernel) into another object (of this class) - // owned by the master class; the printInfo method is then called only for the latter run + // owned by the master class; the PrintInfo method is then called only for the latter run // object. // Note that, for simplicity and brevity, we avoid histograms and print-out instead some - // statistics (compute by ourself) at the end of the run. + // statistics (compute by ourself) at the end of the run. public: Run(); - ~Run(); + ~Run() override = default; - virtual void RecordEvent( const G4Event* anEvent ) override; + void RecordEvent( const G4Event* anEvent ) override; // This method is called automatically by the Geant4 kernel (not by the user!) at the end // of each event. In the case of multithreaded mode, it is called only for the working thread // that handled that event. - virtual void Merge( const G4Run* aRun ) override; + void Merge( const G4Run* aRun ) override; // This method is called automatically by the Geant4 kernel (not by the user!) only in the // case of multithreaded mode and only for working threads. - void printInfo() const; + void PrintInfo() const; // This method is called by RunAction::EndOfRunAction : in the case of multithreaded mode, // only the master thread calls it. - void setPrimaryParticleId( const G4int inputValue ) { fPrimaryParticleId = inputValue; } - void setPrimaryParticleEnergy( const G4double inputValue ) + void SetPrimaryParticleId( const G4int inputValue ) { fPrimaryParticleId = inputValue; } + void SetPrimaryParticleEnergy( const G4double inputValue ) { fPrimaryParticleEnergy = inputValue; } - void setPrimaryParticleDirection( const G4ThreeVector &inputValue ) + void SetPrimaryParticleDirection( const G4ThreeVector &inputValue ) { fPrimaryParticleDirection = inputValue; } - void setTargetMaterialName( const G4String &inputValue ) { fTargetMaterialName = inputValue; } - void setCubicVolumeScoringUpDown( const G4double inputValue ) + void SetTargetMaterialName( const G4String &inputValue ) { fTargetMaterialName = inputValue; } + void SetCubicVolumeScoringUpDown( const G4double inputValue ) { fCubicVolumeScoringUpDown = inputValue; } - void setCubicVolumeScoringSide( const G4double inputValue ) + void SetCubicVolumeScoringSide( const G4double inputValue ) { fCubicVolumeScoringSide = inputValue; } - G4int getPrimaryParticleId() const { return fPrimaryParticleId; } - G4double getPrimaryParticleEnergy() const { return fPrimaryParticleEnergy; } - G4ThreeVector getPrimaryParticleDirection() const { return fPrimaryParticleDirection; } - G4String getTargetMaterialName() const { return fTargetMaterialName; } - G4double getCubicVolumeScoringUpDown() const { return fCubicVolumeScoringUpDown; } - G4double getCubicVolumeScoringSide() const { return fCubicVolumeScoringSide; } - void setArray( const std::array< G4double, SteppingAction::numberCombinations >& inputArray ); - std::array< G4double, SteppingAction::numberCombinations > getArray() const { return fArray; } + G4int GetPrimaryParticleId() const { return fPrimaryParticleId; } + G4double GetPrimaryParticleEnergy() const { return fPrimaryParticleEnergy; } + G4ThreeVector GetPrimaryParticleDirection() const { return fPrimaryParticleDirection; } + G4String GetTargetMaterialName() const { return fTargetMaterialName; } + G4double GetCubicVolumeScoringUpDown() const { return fCubicVolumeScoringUpDown; } + G4double GetCubicVolumeScoringSide() const { return fCubicVolumeScoringSide; } + + void SetSteppingArray( const std::array< G4double, + SteppingAction::fkNumberCombinations >& inputArray ); + std::array< G4double, SteppingAction::fkNumberCombinations > GetSteppingArray() const + { return fSteppingArray; } // Accessor methods useful to transfer information collected by the stepping-action - // into this Run class + // into this Run class - private: + void SetTrackingArray1( const std::array< G4int, + TrackingAction::fkNumberCombinations >& inputArray ); + std::array< G4int, TrackingAction::fkNumberCombinations > GetTrackingArray1() const + { return fTrackingArray1; } + void SetTrackingArray2( const std::array< G4double, + TrackingAction::fkNumberCombinations >& inputArray ); + std::array< G4double, TrackingAction::fkNumberCombinations > GetTrackingArray2() const + { return fTrackingArray2; } + // Accessor methods useful to transfer information collected by the tracking-action + // into this Run class + + private: G4int fNumEvents; G4int fPrimaryParticleId; G4double fPrimaryParticleEnergy; @@ -100,7 +116,10 @@ class Run : public G4Run { G4String fTargetMaterialName; G4double fCubicVolumeScoringUpDown; G4double fCubicVolumeScoringSide; - std::array< G4double, SteppingAction::numberCombinations > fArray; + std::array< G4double, SteppingAction::fkNumberCombinations > fSteppingArray; + std::array< G4int, TrackingAction::fkNumberCombinations > fTrackingArray1; + std::array< G4double, TrackingAction::fkNumberCombinations > fTrackingArray2; + }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Layer/include/RunAction.hh b/examples/extended/hadronic/ParticleFluence/Layer/include/RunAction.hh old mode 100755 new mode 100644 index 0d4291f5c8..067e385b8a --- a/examples/extended/hadronic/ParticleFluence/Layer/include/RunAction.hh +++ b/examples/extended/hadronic/ParticleFluence/Layer/include/RunAction.hh @@ -38,18 +38,20 @@ class G4Run; class SteppingAction; +class TrackingAction; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class RunAction: public G4UserRunAction { public: - RunAction( SteppingAction* steppingAction = nullptr ); - virtual ~RunAction(); - virtual void BeginOfRunAction( const G4Run* aRun ) override; - virtual void EndOfRunAction( const G4Run* aRun ) override; - virtual G4Run* GenerateRun() override; + RunAction( SteppingAction* steppingAction = nullptr, TrackingAction* trackingAction = nullptr ); + ~RunAction() override = default; + void BeginOfRunAction( const G4Run* aRun ) override; + void EndOfRunAction( const G4Run* aRun ) override; + G4Run* GenerateRun() override; private: SteppingAction* fSteppingAction; + TrackingAction* fTrackingAction; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Layer/include/SteppingAction.hh b/examples/extended/hadronic/ParticleFluence/Layer/include/SteppingAction.hh old mode 100755 new mode 100644 index 710c43255e..b60fb6007b --- a/examples/extended/hadronic/ParticleFluence/Layer/include/SteppingAction.hh +++ b/examples/extended/hadronic/ParticleFluence/Layer/include/SteppingAction.hh @@ -46,9 +46,9 @@ class Run; class SteppingAction : public G4UserSteppingAction { public: SteppingAction(); - virtual ~SteppingAction(); + ~SteppingAction() override = default; - virtual void UserSteppingAction( const G4Step* ) override; + void UserSteppingAction( const G4Step* ) override; // This is the main method where the step lengths of particles inside // the scoring volumes are collected, and then the corresponding fluences // are filled up in the Run object where they are stored (and then @@ -56,35 +56,35 @@ class SteppingAction : public G4UserSteppingAction { // (For simplicity and brevity, we avoid histograms and compute instead // some statistics ourself, which will be print-out at the end of the run.) - void initialize(); + void Initialize(); // This method is called by RunAction::BeginOfRunAction for the // initialization of the stepping-action at the beginning of each Run. // This is necessary because different runs can have different primary particle // types, kinetic energies, and detector configurations. - void setRunPointer( Run* inputValue = nullptr ) { fRunPtr = inputValue; } + void SetRunPointer( Run* inputValue = nullptr ) { fRunPtr = inputValue; } // This method is called by RunAction::BeginOfRunAction for providing to the // stepping-action the pointer to the run object at the beginning of each Run. // This pointer is then used to pass the information collected by the stepping-action // to the run object. - G4double getCubicVolumeScoringUpDown() const { return fCubicVolumeScoringUpDown; } - G4double getCubicVolumeScoringSide() const { return fCubicVolumeScoringSide; } + G4double GetCubicVolumeScoringUpDown() const { return fCubicVolumeScoringUpDown; } + G4double GetCubicVolumeScoringSide() const { return fCubicVolumeScoringSide; } // The cubic-volumes of the scoring volumes are needed to get the fluence from // the sum of step lengths in those scoring volumes. // Notice that two of the three scoring volumes - upstream and downstream - // have the same cubic-volume, that we call "fCubicVolumeScoringUpDown". - static const G4int numberScoringVolumes = 3; // downstream, side, upstream - static const G4int numberKinematicRegions = 3; // all, below 20 MeV, above 20 MeV - static const G4int numberParticleTypes = 11; // all, e, gamma, mu, nu, pi, n, p, ions, + static const G4int fkNumberScoringVolumes = 3; // downstream, side, upstream + static const G4int fkNumberKinematicRegions = 3; // all, below 20 MeV, above 20 MeV + static const G4int fkNumberParticleTypes = 11; // all, e, gamma, mu, nu, pi, n, p, ions, // other-mesons, other-baryons - static const G4int numberCombinations = - numberScoringVolumes*numberKinematicRegions*numberParticleTypes; - static const std::array< G4String, numberScoringVolumes > arrayScoringVolumeNames; - static const std::array< G4String, numberKinematicRegions > arrayKinematicRegionNames; - static const std::array< G4String, numberParticleTypes > arrayParticleTypeNames; - static G4int getIndex( const G4int iScoringVolume, const G4int iKinematicRegion, + static const G4int fkNumberCombinations = + fkNumberScoringVolumes*fkNumberKinematicRegions*fkNumberParticleTypes; + static const std::array< G4String, fkNumberScoringVolumes > fkArrayScoringVolumeNames; + static const std::array< G4String, fkNumberKinematicRegions > fkArrayKinematicRegionNames; + static const std::array< G4String, fkNumberParticleTypes > fkArrayParticleTypeNames; + static G4int GetIndex( const G4int iScoringVolume, const G4int iKinematicRegion, const G4int iParticleType ); private: @@ -100,7 +100,7 @@ class SteppingAction : public G4UserSteppingAction { G4double fCubicVolumeScoringUpDown; G4double fCubicVolumeScoringSide; - std::array< G4double, numberCombinations > fArraySumStepLengths; + std::array< G4double, fkNumberCombinations > fArraySumStepLengths; // Array to collect the sum of step lengths in the scoring volumes for the whole run, // according to the various cases (kinematical region and particle type). // Note that the fluence in a scoring volume is defined as sum of step lengths diff --git a/examples/extended/hadronic/ParticleFluence/Layer/include/TrackingAction.hh b/examples/extended/hadronic/ParticleFluence/Layer/include/TrackingAction.hh new file mode 100644 index 0000000000..d234fa65e5 --- /dev/null +++ b/examples/extended/hadronic/ParticleFluence/Layer/include/TrackingAction.hh @@ -0,0 +1,92 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +/// \file TrackingAction.hh +/// \brief Definition of the TrackingAction class +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef TrackingAction_h +#define TrackingAction_h 1 + +#include "globals.hh" +#include "G4UserTrackingAction.hh" +#include + +class Run; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class TrackingAction : public G4UserTrackingAction { + // We are using this class to monitor the average multiplicity, the average + // kinetic energy, and the average total energy flow (i.e. sum of the + // kinetic energies) of different particle types as they are produced + // inside the target layer. + // The aim is then to try to correlate some changes in these (more primitive) + // quantities with the observed changes in the (more indirect and complex) + // particle fluences. + public: + TrackingAction(); + ~TrackingAction() override = default; + void PreUserTrackingAction( const G4Track* ) override; + void PostUserTrackingAction( const G4Track* ) override; + + void Initialize(); + // This method is called by RunAction::BeginOfRunAction for the + // initialization of the tracking-action at the beginning of each Run. + + void SetRunPointer( Run* inputValue = nullptr ) { fRunPtr = inputValue; } + // This method is called by RunAction::BeginOfRunAction for providing to the + // tracking-action the pointer to the run object at the beginning of each Run. + // This pointer is then used to pass the information collected by the tracking-action + // to the run object. + + static const G4int fkNumberScoringVolumes = 1; // only the target layer + static const G4int fkNumberKinematicRegions = 3; // all, below 20 MeV, above 20 MeV + static const G4int fkNumberParticleTypes = 11; // all, e, gamma, mu, nu, pi, n, p, ions, + // other-mesons, other-baryons + static const G4int fkNumberCombinations = + fkNumberScoringVolumes*fkNumberKinematicRegions*fkNumberParticleTypes; + static const std::array< G4String, fkNumberScoringVolumes > fkArrayScoringVolumeNames; + static const std::array< G4String, fkNumberKinematicRegions > fkArrayKinematicRegionNames; + static const std::array< G4String, fkNumberParticleTypes > fkArrayParticleTypeNames; + static G4int GetIndex( const G4int iScoringVolume, const G4int iKinematicRegion, + const G4int iParticleType ); + + private: + Run* fRunPtr; // Pointer to the Run object + + std::array< G4int, fkNumberCombinations > fArrayMultiplicities; + std::array< G4double, fkNumberCombinations > fArraySumKineticEnergies; + // Keep record of the fkNumber of particles and their kinetic energy at production, + // according to the particle type and their kinetic energy range (below/above 20 MeV). +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/hadronic/ParticleFluence/Layer/lar.g4 b/examples/extended/hadronic/ParticleFluence/Layer/lar.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/pb.g4 b/examples/extended/hadronic/ParticleFluence/Layer/pb.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/pbwo4.g4 b/examples/extended/hadronic/ParticleFluence/Layer/pbwo4.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/polystyrene.g4 b/examples/extended/hadronic/ParticleFluence/Layer/polystyrene.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/si.g4 b/examples/extended/hadronic/ParticleFluence/Layer/si.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/src/ActionInitialization.cc b/examples/extended/hadronic/ParticleFluence/Layer/src/ActionInitialization.cc index 640569ddd9..c776b7ec75 100644 --- a/examples/extended/hadronic/ParticleFluence/Layer/src/ActionInitialization.cc +++ b/examples/extended/hadronic/ParticleFluence/Layer/src/ActionInitialization.cc @@ -35,6 +35,7 @@ #include "PrimaryGeneratorAction.hh" #include "RunAction.hh" #include "SteppingAction.hh" +#include "TrackingAction.hh" #include "Run.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,10 +46,6 @@ ActionInitialization::ActionInitialization( const DetectorConstruction* //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::~ActionInitialization() {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ActionInitialization::BuildForMaster() const { // This is NOT called in SEQ-mode, while in the MT-mode is called only for the Master thread. SetUserAction( new RunAction ); @@ -61,7 +58,9 @@ void ActionInitialization::Build() const { SetUserAction( new PrimaryGeneratorAction( fPtrDetectorConstruction ) ); SteppingAction* steppingAction = new SteppingAction; SetUserAction( steppingAction ); - SetUserAction( new RunAction( steppingAction ) ); + TrackingAction* trackingAction = new TrackingAction; + SetUserAction( trackingAction ); + SetUserAction( new RunAction( steppingAction, trackingAction ) ); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Layer/src/DetectorConstruction.cc b/examples/extended/hadronic/ParticleFluence/Layer/src/DetectorConstruction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/src/DetectorMessenger.cc b/examples/extended/hadronic/ParticleFluence/Layer/src/DetectorMessenger.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/src/PrimaryGeneratorAction.cc b/examples/extended/hadronic/ParticleFluence/Layer/src/PrimaryGeneratorAction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Layer/src/Run.cc b/examples/extended/hadronic/ParticleFluence/Layer/src/Run.cc index e33df09caa..921d4759d4 100644 --- a/examples/extended/hadronic/ParticleFluence/Layer/src/Run.cc +++ b/examples/extended/hadronic/ParticleFluence/Layer/src/Run.cc @@ -44,15 +44,13 @@ Run::Run() : G4Run(), fNumEvents( 0 ), fTargetMaterialName( "" ), fCubicVolumeScoringUpDown( 1.0 ), fCubicVolumeScoringSide( 1.0 ) { - for ( G4int i = 0; i < SteppingAction::numberCombinations; ++i ) fArray[i] = 0.0; + fSteppingArray.fill( 0.0 ); + fTrackingArray1.fill( 0 ); + fTrackingArray2.fill( 0.0 ); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Run::~Run() {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void Run::RecordEvent( const G4Event* anEvent ) { // This method is called automatically by the Geant4 kernel (not by the user!) at the end // of each event : in MT-mode, it is called only for the working thread that handled the event. @@ -67,22 +65,26 @@ void Run::Merge( const G4Run* aRun ) { // This method is called automatically by the Geant4 kernel (not by the user!) only in the case // of multithreaded mode and only for working threads. const Run* localRun = static_cast< const Run* >( aRun ); - fPrimaryParticleId = localRun->getPrimaryParticleId(); - fPrimaryParticleEnergy = localRun->getPrimaryParticleEnergy(); - fPrimaryParticleDirection = localRun->getPrimaryParticleDirection(); - fTargetMaterialName = localRun->getTargetMaterialName(); - fCubicVolumeScoringUpDown = localRun->getCubicVolumeScoringUpDown(); - fCubicVolumeScoringSide = localRun->getCubicVolumeScoringSide(); + fPrimaryParticleId = localRun->GetPrimaryParticleId(); + fPrimaryParticleEnergy = localRun->GetPrimaryParticleEnergy(); + fPrimaryParticleDirection = localRun->GetPrimaryParticleDirection(); + fTargetMaterialName = localRun->GetTargetMaterialName(); + fCubicVolumeScoringUpDown = localRun->GetCubicVolumeScoringUpDown(); + fCubicVolumeScoringSide = localRun->GetCubicVolumeScoringSide(); fNumEvents += localRun->GetNumberOfEvent(); - for ( G4int i = 0; i < SteppingAction::numberCombinations; ++i ) { - fArray[i] += localRun->getArray()[i]; + for ( G4int i = 0; i < SteppingAction::fkNumberCombinations; ++i ) { + fSteppingArray[i] += localRun->GetSteppingArray()[i]; + } + for ( G4int i = 0; i < TrackingAction::fkNumberCombinations; ++i ) { + fTrackingArray1[i] += localRun->GetTrackingArray1()[i]; + fTrackingArray2[i] += localRun->GetTrackingArray2()[i]; } G4Run::Merge( aRun ); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Run::printInfo() const { +void Run::PrintInfo() const { // This method is called by RunAction::EndOfRunAction. In MT-mode, only the master thread // calls it. const G4double floatingNumberOfEvents = @@ -95,7 +97,7 @@ void Run::printInfo() const { const G4double factorSide = conversionFactor / ( fCubicVolumeScoringSide*floatingNumberOfEvents ); G4cout << std::setprecision(6) << G4endl << G4endl - << " =============== Run::printInfo() =============== \t RunID = " << GetRunID() + << " =============== Run::PrintInfo() =============== \t RunID = " << GetRunID() << G4endl << " Primary particle PDG code = " << fPrimaryParticleId << G4endl << " Primary particle kinetic energy = " << fPrimaryParticleEnergy / CLHEP::GeV @@ -107,17 +109,39 @@ void Run::printInfo() const { << " Number of events = " << floatingNumberOfEvents << G4endl << " Conversion factor: fluence from mm^-2 to cm^-2 = " << conversionFactor << G4endl << " Particle fluence in unit of cm^-2 :" << G4endl; - for ( G4int i = 0; i < SteppingAction::numberScoringVolumes; ++i ) { + for ( G4int i = 0; i < SteppingAction::fkNumberScoringVolumes; ++i ) { G4double factor = ( i == 1 ? factorSide : factorUpDown ); - for ( G4int j = 0; j < SteppingAction::numberKinematicRegions; ++j ) { - for ( G4int k = 0; k < SteppingAction::numberParticleTypes; ++k ) { - G4int index = SteppingAction::getIndex( i, j, k ); + for ( G4int j = 0; j < SteppingAction::fkNumberKinematicRegions; ++j ) { + for ( G4int k = 0; k < SteppingAction::fkNumberParticleTypes; ++k ) { + G4int index = SteppingAction::GetIndex( i, j, k ); //G4cout << "(i, j, k)=(" << i << ", " << j << ", " << k << ") ->" << index; G4cout << " case=" << std::setw(3) << index - << " " << std::setw(12) << SteppingAction::arrayScoringVolumeNames[i] - << " " << std::setw(12) << SteppingAction::arrayKinematicRegionNames[j] - << " " << std::setw(12) << SteppingAction::arrayParticleTypeNames[k] - << " " << factor*fArray[index] << G4endl; + << " " << std::setw(12) << SteppingAction::fkArrayScoringVolumeNames[i] + << " " << std::setw(12) << SteppingAction::fkArrayKinematicRegionNames[j] + << " " << std::setw(12) << SteppingAction::fkArrayParticleTypeNames[k] + << " " << std::setw( 8) << factor*fSteppingArray[index] << G4endl; + } + } + } + G4cout << " ------------------------------------------------------------- " << G4endl + << " Extra information: particle production \t \t [MeV]" + << G4endl; + const G4double normalization = 1.0 / floatingNumberOfEvents; + for ( G4int i = 0; i < TrackingAction::fkNumberScoringVolumes; ++i ) { + for ( G4int j = 0; j < TrackingAction::fkNumberKinematicRegions; ++j ) { + for ( G4int k = 0; k < TrackingAction::fkNumberParticleTypes; ++k ) { + G4int index = TrackingAction::GetIndex( i, j, k ); + //G4cout << "(i, j, k)=(" << i << ", " << j << ", " << k << ") ->" << index; + G4cout << " case=" << std::setw(3) << index + << " " << std::setw(12) << TrackingAction::fkArrayScoringVolumeNames[i] + << " " << std::setw(12) << TrackingAction::fkArrayKinematicRegionNames[j] + << " " << std::setw(12) << TrackingAction::fkArrayParticleTypeNames[k] + << " " << std::setw( 8) << normalization * fTrackingArray1[index] + << " " << std::setw( 8) << ( fTrackingArray1[index] > 0 ? + fTrackingArray2[index] / fTrackingArray1[index] : + 0.0 ) + << " " << std::setw( 8) << normalization * fTrackingArray2[index] + << G4endl; } } } @@ -126,11 +150,29 @@ void Run::printInfo() const { //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Run::setArray( const std::array< G4double, - SteppingAction::numberCombinations >& inputArray ) { - for ( G4int i = 0; i < SteppingAction::numberCombinations; ++i ) { - fArray[i] = inputArray[i]; - } +void Run::SetSteppingArray( const std::array< G4double, + SteppingAction::fkNumberCombinations >& inputArray ) { + for ( G4int i = 0; i < SteppingAction::fkNumberCombinations; ++i ) { + fSteppingArray[i] = inputArray[i]; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::SetTrackingArray1( const std::array< G4int, + TrackingAction::fkNumberCombinations >& inputArray ) { + for ( G4int i = 0; i < TrackingAction::fkNumberCombinations; ++i ) { + fTrackingArray1[i] = inputArray[i]; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::SetTrackingArray2( const std::array< G4double, + TrackingAction::fkNumberCombinations >& inputArray ) { + for ( G4int i = 0; i < TrackingAction::fkNumberCombinations; ++i ) { + fTrackingArray2[i] = inputArray[i]; + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Layer/src/RunAction.cc b/examples/extended/hadronic/ParticleFluence/Layer/src/RunAction.cc old mode 100755 new mode 100644 index 99542cd18e..ace4a14f30 --- a/examples/extended/hadronic/ParticleFluence/Layer/src/RunAction.cc +++ b/examples/extended/hadronic/ParticleFluence/Layer/src/RunAction.cc @@ -36,16 +36,13 @@ #include "G4Run.hh" #include "Run.hh" #include "SteppingAction.hh" +#include "TrackingAction.hh" #include "G4RunManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::RunAction( SteppingAction* steppingAction ) : - G4UserRunAction(), fSteppingAction( steppingAction ) {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -RunAction::~RunAction() {} +RunAction::RunAction( SteppingAction* steppingAction, TrackingAction* trackingAction ) : + G4UserRunAction(), fSteppingAction( steppingAction ), fTrackingAction( trackingAction ) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -57,10 +54,15 @@ G4Run* RunAction::GenerateRun() { void RunAction::BeginOfRunAction( const G4Run* aRun ) { G4cout << "### Run " << aRun->GetRunID() << " starts." << G4endl; - if ( fSteppingAction ) { - fSteppingAction->initialize(); - Run* run = const_cast< Run* >( static_cast< const Run* >( aRun ) ); - if ( run != nullptr ) fSteppingAction->setRunPointer( run ); + Run* run = const_cast< Run* >( static_cast< const Run* >( aRun ) ); + if ( run == nullptr ) return; + if ( fSteppingAction != nullptr ) { + fSteppingAction->Initialize(); + fSteppingAction->SetRunPointer( run ); + } + if ( fTrackingAction != nullptr ) { + fTrackingAction->Initialize(); + fTrackingAction->SetRunPointer( run ); } } @@ -69,7 +71,7 @@ void RunAction::BeginOfRunAction( const G4Run* aRun ) { void RunAction::EndOfRunAction( const G4Run* aRun ) { const Run* run = static_cast< const Run* >( aRun ); if ( run == nullptr || run->GetNumberOfEvent() == 0 ) return; - if ( IsMaster() ) run->printInfo(); + if ( IsMaster() ) run->PrintInfo(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Layer/src/SteppingAction.cc b/examples/extended/hadronic/ParticleFluence/Layer/src/SteppingAction.cc old mode 100755 new mode 100644 index 74eb74af39..c44800a7d2 --- a/examples/extended/hadronic/ParticleFluence/Layer/src/SteppingAction.cc +++ b/examples/extended/hadronic/ParticleFluence/Layer/src/SteppingAction.cc @@ -46,45 +46,45 @@ #include "G4SystemOfUnits.hh" #include "Run.hh" -const std::array< G4String, SteppingAction::numberScoringVolumes > - SteppingAction::arrayScoringVolumeNames = { "downstream", "side", "upstream" }; +const std::array< G4String, SteppingAction::fkNumberScoringVolumes > + SteppingAction::fkArrayScoringVolumeNames = { "downstream", "side", "upstream" }; -const std::array< G4String, SteppingAction::numberKinematicRegions > - SteppingAction::arrayKinematicRegionNames = { "", "below 20 MeV", "above 20 MeV" }; +const std::array< G4String, SteppingAction::fkNumberKinematicRegions > + SteppingAction::fkArrayKinematicRegionNames = { "", "below 20 MeV", "above 20 MeV" }; -const std::array< G4String, SteppingAction::numberParticleTypes > - SteppingAction::arrayParticleTypeNames = { "all", "electron", "gamma", "muon", "neutrino", - "pion", "neutron", "proton", "ion", "otherMeson", - "otherBaryon" }; +const std::array< G4String, SteppingAction::fkNumberParticleTypes > + SteppingAction::fkArrayParticleTypeNames = { "all", "electron", "gamma", "muon", "neutrino", + "pion", "neutron", "proton", "ion", "otherMeson", + "otherBaryon" }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4int SteppingAction::getIndex( const G4int iScoringVolume, const G4int iKinematicRegion, +G4int SteppingAction::GetIndex( const G4int iScoringVolume, const G4int iKinematicRegion, const G4int iParticleType ) { G4int index = -1; - if ( iScoringVolume >= 0 && iScoringVolume < numberScoringVolumes && - iKinematicRegion >= 0 && iKinematicRegion < numberKinematicRegions && - iParticleType >= 0 && iParticleType < numberParticleTypes ) { - index = iScoringVolume * numberKinematicRegions * numberParticleTypes + - iKinematicRegion * numberParticleTypes + - iParticleType; + if ( iScoringVolume >= 0 && iScoringVolume < fkNumberScoringVolumes && + iKinematicRegion >= 0 && iKinematicRegion < fkNumberKinematicRegions && + iParticleType >= 0 && iParticleType < fkNumberParticleTypes ) { + index = iScoringVolume * fkNumberKinematicRegions * fkNumberParticleTypes + + iKinematicRegion * fkNumberParticleTypes + + iParticleType; + } + if ( index < 0 || index >= fkNumberCombinations ) { + G4cerr << "SteppingAction::GetIndex : WRONG index=" << index << " set it to 0 !" << G4endl; + index = 0; } return index; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::SteppingAction() :G4UserSteppingAction() { - initialize(); +SteppingAction::SteppingAction() : G4UserSteppingAction() { + Initialize(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::~SteppingAction() {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void SteppingAction::initialize() { +void SteppingAction::Initialize() { // Initialization needed at the beginning of each Run fPrimaryParticleId = 0; fPrimaryParticleEnergy = 0.0; @@ -96,16 +96,16 @@ void SteppingAction::initialize() { fIsFirstStepInScoringSide = true; fCubicVolumeScoringUpDown = 1.0; fCubicVolumeScoringSide = 1.0; - for ( G4int i = 0; i < numberCombinations; ++i ) { + for ( G4int i = 0; i < fkNumberCombinations; ++i ) { fArraySumStepLengths[i] = 0.0; } /* - for ( G4int i = 0; i < numberCombinations; ++i ) fArraySumStepLengths[i] = 999.9; - G4cout << " numberCombinations=" << numberCombinations << G4endl; - for ( G4int i = 0; i < numberScoringVolumes; ++i ) { - for ( G4int j = 0; j < numberKinematicRegions; ++j ) { - for ( G4int k = 0; k < numberParticleTypes; ++k ) { - G4int index = getIndex( i, j, k ); + for ( G4int i = 0; i < fkNumberCombinations; ++i ) fArraySumStepLengths[i] = 999.9; + G4cout << " fkNumberCombinations=" << fkNumberCombinations << G4endl; + for ( G4int i = 0; i < fkNumberScoringVolumes; ++i ) { + for ( G4int j = 0; j < fkNumberKinematicRegions; ++j ) { + for ( G4int k = 0; k < fkNumberParticleTypes; ++k ) { + G4int index = GetIndex( i, j, k ); G4cout << "(i, j, k)=(" << i << ", " << j << ", " << k << ") ->" << index; if ( fArraySumStepLengths[ index ] < 1.0 ) G4cout << " <=== REPEATED!"; else fArraySumStepLengths[ index ] = 0.0; @@ -113,7 +113,7 @@ void SteppingAction::initialize() { } } } - for ( G4int i = 0; i < numberCombinations; ++i ) { + for ( G4int i = 0; i < fkNumberCombinations; ++i ) { if ( fArraySumStepLengths[i] > 999.0 ) G4cout << " i=" << i << " NOT COVERED !" << G4endl; } */ @@ -129,9 +129,9 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { fPrimaryParticleEnergy = theStep->GetPreStepPoint()->GetKineticEnergy(); fPrimaryParticleDirection = theStep->GetPreStepPoint()->GetMomentumDirection(); if ( fRunPtr ) { - fRunPtr->setPrimaryParticleId( fPrimaryParticleId ); - fRunPtr->setPrimaryParticleEnergy( fPrimaryParticleEnergy ); - fRunPtr->setPrimaryParticleDirection( fPrimaryParticleDirection ); + fRunPtr->SetPrimaryParticleId( fPrimaryParticleId ); + fRunPtr->SetPrimaryParticleEnergy( fPrimaryParticleEnergy ); + fRunPtr->SetPrimaryParticleDirection( fPrimaryParticleDirection ); } fIsFirstStepOfTheEvent = false; } @@ -140,7 +140,7 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { if ( fIsFirstStepInTarget && theStep->GetPreStepPoint()->GetPhysicalVolume()->GetName() == "physiLayer" ) { fTargetMaterialName = theStep->GetPreStepPoint()->GetMaterial()->GetName(); - if ( fRunPtr ) fRunPtr->setTargetMaterialName( fTargetMaterialName ); + if ( fRunPtr ) fRunPtr->SetTargetMaterialName( fTargetMaterialName ); fIsFirstStepInTarget = false; } // Get information on step lengths in the scoring volumes @@ -150,7 +150,7 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { if ( fIsFirstStepInScoringUpDown ) { fCubicVolumeScoringUpDown = theStep->GetTrack()->GetVolume()->GetLogicalVolume()->GetSolid()->GetCubicVolume(); - if ( fRunPtr ) fRunPtr->setCubicVolumeScoringUpDown( fCubicVolumeScoringUpDown ); + if ( fRunPtr ) fRunPtr->SetCubicVolumeScoringUpDown( fCubicVolumeScoringUpDown ); fIsFirstStepInScoringUpDown = false; } } else if ( theStep->GetPreStepPoint()->GetPhysicalVolume()->GetName() == "physiScoringSide" ) { @@ -158,7 +158,7 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { if ( fIsFirstStepInScoringSide ) { fCubicVolumeScoringSide = theStep->GetTrack()->GetVolume()->GetLogicalVolume()->GetSolid()->GetCubicVolume(); - if ( fRunPtr ) fRunPtr->setCubicVolumeScoringSide( fCubicVolumeScoringSide ); + if ( fRunPtr ) fRunPtr->SetCubicVolumeScoringSide( fCubicVolumeScoringSide ); fIsFirstStepInScoringSide = false; } } else if ( theStep->GetPreStepPoint()->GetPhysicalVolume()->GetName() == @@ -167,7 +167,7 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { if ( fIsFirstStepInScoringUpDown ) { fCubicVolumeScoringUpDown = theStep->GetTrack()->GetVolume()->GetLogicalVolume()->GetSolid()->GetCubicVolume(); - if ( fRunPtr ) fRunPtr->setCubicVolumeScoringUpDown( fCubicVolumeScoringUpDown ); + if ( fRunPtr ) fRunPtr->SetCubicVolumeScoringUpDown( fCubicVolumeScoringUpDown ); fIsFirstStepInScoringUpDown = false; } } @@ -214,18 +214,18 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { else if ( absPdg > 1000 ) iParticleType = 10; // other baryons (e.g. hyperons, anti-hyperons, // etc.) // Consider the specific case : scoring volume, kinematic region and particle type - G4int index = getIndex( iScoringVolume, iKinematicRegion, iParticleType ); + G4int index = GetIndex( iScoringVolume, iKinematicRegion, iParticleType ); fArraySumStepLengths[index] += stepLength; // Consider the "all" particle case, with the same scoring volume and kinematic region - index = getIndex( iScoringVolume, iKinematicRegion, 0 ); + index = GetIndex( iScoringVolume, iKinematicRegion, 0 ); fArraySumStepLengths[index] += stepLength; // Consider the "any" kinematic region case, with the same scoring volume and particle type - index = getIndex( iScoringVolume, 0, iParticleType ); + index = GetIndex( iScoringVolume, 0, iParticleType ); fArraySumStepLengths[index] += stepLength; // Consider the "any" kinematic region and "all" particle, with the same scoring volume - index = getIndex( iScoringVolume, 0, 0 ); + index = GetIndex( iScoringVolume, 0, 0 ); fArraySumStepLengths[index] += stepLength; - if ( fRunPtr ) fRunPtr->setArray( fArraySumStepLengths ); + if ( fRunPtr ) fRunPtr->SetSteppingArray( fArraySumStepLengths ); } } diff --git a/examples/extended/hadronic/ParticleFluence/Layer/src/TrackingAction.cc b/examples/extended/hadronic/ParticleFluence/Layer/src/TrackingAction.cc new file mode 100644 index 0000000000..0d5786276d --- /dev/null +++ b/examples/extended/hadronic/ParticleFluence/Layer/src/TrackingAction.cc @@ -0,0 +1,143 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +/// \file TrackingAction.cc +/// \brief Implementation of the TrackingAction class +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "TrackingAction.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" +#include "G4IonTable.hh" +#include "G4StepPoint.hh" +#include "G4SystemOfUnits.hh" +#include "Run.hh" + +const std::array< G4String, TrackingAction::fkNumberScoringVolumes > +TrackingAction::fkArrayScoringVolumeNames = { "layer" }; + +const std::array< G4String, TrackingAction::fkNumberKinematicRegions > +TrackingAction::fkArrayKinematicRegionNames = { "", "below 20 MeV", "above 20 MeV" }; + +const std::array< G4String, TrackingAction::fkNumberParticleTypes > +TrackingAction::fkArrayParticleTypeNames = { "all", "electron", "gamma", "muon", "neutrino", + "pion", "neutron", "proton", "ion", "otherMeson", + "otherBaryon" }; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4int TrackingAction::GetIndex( const G4int iScoringVolume, const G4int iKinematicRegion, + const G4int iParticleType ) { + G4int index = -1; + if ( iScoringVolume >= 0 && iScoringVolume < fkNumberScoringVolumes && + iKinematicRegion >= 0 && iKinematicRegion < fkNumberKinematicRegions && + iParticleType >= 0 && iParticleType < fkNumberParticleTypes ) { + index = iScoringVolume * fkNumberKinematicRegions * fkNumberParticleTypes + + iKinematicRegion * fkNumberParticleTypes + + iParticleType; + } + return index; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +TrackingAction::TrackingAction() : G4UserTrackingAction() { + Initialize(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::Initialize() { + // Initialization needed at the beginning of each Run + fArrayMultiplicities.fill( 0 ); + fArraySumKineticEnergies.fill( 0.0 ); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PreUserTrackingAction( const G4Track* aTrack ) { + // This method is called not only once when a particle is created, + // but also each time it is resumed, in the case the track gets suspended, + // as it happens in the case of neutrons with _HP Physics Lists. + // To be sure that we collect information about a track one and only once, + // we require that the current step be the first one. + if ( aTrack == nullptr || + aTrack->GetCurrentStepNumber() != 0 || + aTrack->GetDefinition() == nullptr || + aTrack->GetLogicalVolumeAtVertex() == nullptr || + aTrack->GetLogicalVolumeAtVertex()->GetName() != "logicLayer" ) return; + G4int iScoringVolume = 0; + // Three kinematical regions: [0] : any value ; [1] : below 20 MeV ; [2] : above 20 MeV + G4int iKinematicRegion = aTrack->GetKineticEnergy() < 20.0 ? 1 : 2; + G4int absPdg = std::abs( aTrack->GetDefinition()->GetPDGEncoding() ); + G4int iParticleType = -1; + if ( absPdg == 11 ) iParticleType = 1; // electron (and positron) + else if ( absPdg == 22 ) iParticleType = 2; // gamma + else if ( absPdg == 13 ) iParticleType = 3; // muons (mu- and mu+) + else if ( absPdg == 12 || absPdg == 14 || absPdg == 16 ) iParticleType = 4; + // neutrinos (and anti-neutrinos), all flavors + else if ( absPdg == 111 || absPdg == 211 ) iParticleType = 5; // (charged) pions + else if ( absPdg == 2112 ) iParticleType = 6; // neutron (and anti-neutron) + else if ( absPdg == 2212 ) iParticleType = 7; // proton (and anti-proton) + else if ( G4IonTable::IsIon( aTrack->GetDefinition() ) || + G4IonTable::IsAntiIon( aTrack->GetDefinition() ) ) iParticleType = 8; + // ions (and anti-ions) + else if ( absPdg < 1000 ) iParticleType = 9; // other mesons (e.g. kaons) + // (Note: this works in most cases, but not always!) + else if ( absPdg > 1000 ) iParticleType = 10; // other baryons (e.g. hyperons, + // anti-hyperons, etc.) + // Consider the specific case : scoring volume, kinematic region and particle type + G4int index = GetIndex( iScoringVolume, iKinematicRegion, iParticleType ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + // Consider the "all" particle case, with the same scoring volume and kinematic region + index = GetIndex( iScoringVolume, iKinematicRegion, 0 ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + // Consider the "any" kinematic region case, with the same scoring volume and particle type + index = GetIndex( iScoringVolume, 0, iParticleType ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + // Consider the "any" kinematic region and "all" particle, with the same scoring volume + index = GetIndex( iScoringVolume, 0, 0 ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + if ( fRunPtr ) { + fRunPtr->SetTrackingArray1( fArrayMultiplicities ); + fRunPtr->SetTrackingArray2( fArraySumKineticEnergies ); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PostUserTrackingAction( const G4Track* /* aTrack */ ) {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Layer/w.g4 b/examples/extended/hadronic/ParticleFluence/Layer/w.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/.README.txt b/examples/extended/hadronic/ParticleFluence/Sphere/.README.txt index c6e16be9de..8c8bddc1fd 100644 --- a/examples/extended/hadronic/ParticleFluence/Sphere/.README.txt +++ b/examples/extended/hadronic/ParticleFluence/Sphere/.README.txt @@ -1,7 +1,7 @@ ///\file "hadronic/ParticleFluence/Sphere/.README.txt" ///\brief Example ParticleFluence/Sphere README page -/*! \page ExampeParticleFluenceSphere Example Sphere +/*! \page ExampleSphere Example Sphere In this example, the particle fluence is evaluated for a very simple set-up, consisting of one target solid sphere, at the center of which @@ -16,6 +16,10 @@ The particle fluence is estimated by summing the track length in a (very low density gas) material, immediately outside the target sphere - and then dividing for the cubic volume of such scoring volume. +Complementary information on average multiplicity, average kinetic energy, +and average total energy flow (i.e. sum of kinetic energies) for the +particles produced in the target are also computed. + The particle fluence is evaluated for the following 11 particle types: - all - electron + positron @@ -45,14 +49,18 @@ physics list is used). To build this example: - mkdir Build; cd Build - cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DGeant4_DIR=/path-to-geant4-libraries ../. - make +\verbatim +mkdir Build; cd Build +cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DGeant4_DIR=/path-to-geant4-libraries ../. +make +\endverbatim To run it: - ./Sphere all_together.g4 +\verbatim +./Sphere all_together.g4 +\endverbatim which shoots 50 GeV pion- on different target materials, 100 events in each run, and print out some information on the particle fluence diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/GNUmakefile b/examples/extended/hadronic/ParticleFluence/Sphere/GNUmakefile old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/History b/examples/extended/hadronic/ParticleFluence/Sphere/History index 35fa7144f3..9e3c085b15 100644 --- a/examples/extended/hadronic/ParticleFluence/Sphere/History +++ b/examples/extended/hadronic/ParticleFluence/Sphere/History @@ -5,6 +5,12 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-09-07 Alberto Ribon (exhadrParticleFluenceSphere-V11-00-02) +- Added complementary information on particle production (multiplicity, + kinetic energy, and total energy flow) in the target. + +## 2022-08-26 Alberto Ribon (exhadrParticleFluenceSphere-V11-00-01) +- SteppingAction : introduced protection on the value of the array index. + ## 2021-06-10 Alberto Ribon (exhadrParticleFluenceSphere-V11-00-00) - Created the Sphere variant of the ParticleFluence example. - diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/README b/examples/extended/hadronic/ParticleFluence/Sphere/README index e6fdd3649a..381a320b4e 100644 --- a/examples/extended/hadronic/ParticleFluence/Sphere/README +++ b/examples/extended/hadronic/ParticleFluence/Sphere/README @@ -11,6 +11,10 @@ The particle fluence is estimated by summing the track length in a (very low density gas) material, immediately outside the target sphere - and then dividing for the cubic volume of such scoring volume. +Complementary information on average multiplicity, average kinetic energy, +and average total energy flow (i.e. sum of kinetic energies) for the +particles produced in the target are also computed. + The particle fluence is evaluated for the following 11 particle types: - all - electron + positron diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/Sphere.cc b/examples/extended/hadronic/ParticleFluence/Sphere/Sphere.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/Sphere.out b/examples/extended/hadronic/ParticleFluence/Sphere/Sphere.out new file mode 100644 index 0000000000..cac072c866 --- /dev/null +++ b/examples/extended/hadronic/ParticleFluence/Sphere/Sphere.out @@ -0,0 +1,2560 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + +### G4PhysListFactory WARNING: environment variable PHYSLIST is not defined + Default Physics Lists FTFP_BERT is instantiated +G4PhysListFactory::GetReferencePhysList EMoption= 0 +<<< Geant4 Physics List simulation engine: FTFP_BERT + + + +DetectorConstruction::ConstructSphere() : + World (box) size: + x : -/+ 1100 mm y : -/+ 1100 mm z : -/+ 1100 mm + + + + hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval + for pions : 3 to 6 GeV + for kaons : 3 to 6 GeV + for proton : 3 to 6 GeV + for neutron : 3 to 6 GeV + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_POLYSTYRENE + Radius = 1000 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructSphere() : + World (box) size: + x : -/+ 1100 mm y : -/+ 1100 mm z : -/+ 1100 mm + + +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 7 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 1 mm) +Step function for muons/hadrons (0.2, 0.1 mm) +Step function for light ions (0.2, 0.1 mm) +Step function for general ions (0.2, 0.1 mm) +Lowest e+e- kinetic energy 1 keV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 0 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 0 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 0 eV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 1 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 0 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.04 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 1 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 0 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 61 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 56 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Klein-Nishina : Emin= 0 eV Emax= 100 TeV + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai + eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + Stopping Power data for 17 ion/material pairs + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 100 TeV + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 + StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV + BetheBloch : Emin=297.505 keV Emax= 100 TeV + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 84 bins + Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + + Process: nKiller + +--------------------------------------------------- + Hadronic Processes for B- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: B-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for D- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: D-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_He3Inelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_alphaInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_deuteronInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: anti_lambdaInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_neutronInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_protonInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_tritonInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: dInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for e+ + + Process: positronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for e- + + Process: electronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: GammaNPreco: 0 eV ---> 200 MeV + Model: BertiniCascade: 199 MeV ---> 6 GeV + Model: TheoFSGenerator: 3 GeV ---> 100 TeV + Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: lambdaInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu+ + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + + Process: muMinusCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: protonInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for sigma- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: sigma-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: tInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +================================================================ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Pre-compound model active 1 +Pre-compound excitation low energy 100 keV +Pre-compound excitation high energy 30 MeV +Type of de-excitation inverse x-section 3 +Type of de-excitation factory Evaporation+GEM +Number of de-excitation channels 68 +Min excitation energy 10 eV +Min energy per nucleon for multifragmentation 200 GeV +Limit excitation energy for Fermi BreakUp 20 MeV +Level density (1/MeV) 0.075 +Use simple level density model 1 +Use discrete excitation energy of the residual 1 +Time limit for long lived isomeres 1 ns +Isomer production flag 1 +Internal e- conversion flag 1 +Store e- internal conversion data 0 +Correlated gamma emission flag 0 +Max 2J for sampling of angular correlations 10 +======================================================================= + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 0 starts. +### Run 0 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=1.540000s Real=1.579373s Sys=0.020000s + + + =============== Run::PrintInfo() =============== RunID = 0 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_POLYSTYRENE + Cubic-volume scoring shell = 1.26925e+08 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 forward all 0.00233131 + case= 1 forward electron 0.000247182 + case= 2 forward gamma 0.00179245 + case= 3 forward muon 1.82467e-06 + case= 4 forward neutrino 5.04916e-05 + case= 5 forward pion 9.18499e-05 + case= 6 forward neutron 0.000111685 + case= 7 forward proton 2.83709e-05 + case= 8 forward ion 2.07926e-07 + case= 9 forward otherMeson 6.72379e-06 + case= 10 forward otherBaryon 5.19163e-07 + case= 11 backward all 5.34917e-05 + case= 12 backward electron 1.84252e-06 + case= 13 backward gamma 3.42614e-05 + case= 14 backward muon 0 + case= 15 backward neutrino 1.42324e-05 + case= 16 backward pion 1.61351e-07 + case= 17 backward neutron 2.99391e-06 + case= 18 backward proton 0 + case= 19 backward ion 0 + case= 20 backward otherMeson 0 + case= 21 backward otherBaryon 0 + case= 22 below 20 MeV forward all 0.00164782 + case= 23 below 20 MeV forward electron 0.000102476 + case= 24 below 20 MeV forward gamma 0.00150818 + case= 25 below 20 MeV forward muon 0 + case= 26 below 20 MeV forward neutrino 4.81442e-06 + case= 27 below 20 MeV forward pion 4.35459e-07 + case= 28 below 20 MeV forward neutron 3.17421e-05 + case= 29 below 20 MeV forward proton 1.71694e-07 + case= 30 below 20 MeV forward ion 0 + case= 31 below 20 MeV forward otherMeson 0 + case= 32 below 20 MeV forward otherBaryon 0 + case= 33 below 20 MeV backward all 3.38711e-05 + case= 34 below 20 MeV backward electron 1.2721e-06 + case= 35 below 20 MeV backward gamma 2.96635e-05 + case= 36 below 20 MeV backward muon 0 + case= 37 below 20 MeV backward neutrino 2.11077e-06 + case= 38 below 20 MeV backward pion 0 + case= 39 below 20 MeV backward neutron 8.24688e-07 + case= 40 below 20 MeV backward proton 0 + case= 41 below 20 MeV backward ion 0 + case= 42 below 20 MeV backward otherMeson 0 + case= 43 below 20 MeV backward otherBaryon 0 + case= 44 above 20 MeV forward all 0.000683491 + case= 45 above 20 MeV forward electron 0.000144706 + case= 46 above 20 MeV forward gamma 0.000284276 + case= 47 above 20 MeV forward muon 1.82467e-06 + case= 48 above 20 MeV forward neutrino 4.56772e-05 + case= 49 above 20 MeV forward pion 9.14145e-05 + case= 50 above 20 MeV forward neutron 7.99426e-05 + case= 51 above 20 MeV forward proton 2.81992e-05 + case= 52 above 20 MeV forward ion 2.07926e-07 + case= 53 above 20 MeV forward otherMeson 6.72379e-06 + case= 54 above 20 MeV forward otherBaryon 5.19163e-07 + case= 55 above 20 MeV backward all 1.96206e-05 + case= 56 above 20 MeV backward electron 5.70423e-07 + case= 57 above 20 MeV backward gamma 4.59792e-06 + case= 58 above 20 MeV backward muon 0 + case= 59 above 20 MeV backward neutrino 1.21217e-05 + case= 60 above 20 MeV backward pion 1.61351e-07 + case= 61 above 20 MeV backward neutron 2.16922e-06 + case= 62 above 20 MeV backward proton 0 + case= 63 above 20 MeV backward ion 0 + case= 64 above 20 MeV backward otherMeson 0 + case= 65 above 20 MeV backward otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 sphere all 2241.05 51.882 116270 + case= 1 sphere electron 1853.52 4.71287 8735.4 + case= 2 sphere gamma 250.18 57.5668 14402.1 + case= 3 sphere muon 1.13 34.1189 38.5543 + case= 4 sphere neutrino 3.17 45.4027 143.926 + case= 5 sphere pion 18.07 4466.87 80716.4 + case= 6 sphere neutron 20.63 156.101 3220.36 + case= 7 sphere proton 45.38 62.5385 2838 + case= 8 sphere ion 47.42 4.96908 235.634 + case= 9 sphere otherMeson 1.28 4428.54 5668.53 + case= 10 sphere otherBaryon 0.27 1004.74 271.279 + case= 11 sphere below 20 MeV all 2145.52 0.548419 1176.64 + case= 12 sphere below 20 MeV electron 1831.34 0.302069 553.191 + case= 13 sphere below 20 MeV gamma 219.92 1.45526 320.04 + case= 14 sphere below 20 MeV muon 0.96 4.11981 3.95502 + case= 15 sphere below 20 MeV neutrino 0.34 13.5489 4.60662 + case= 16 sphere below 20 MeV pion 0.4 10.0211 4.00846 + case= 17 sphere below 20 MeV neutron 10.75 6.62427 71.2109 + case= 18 sphere below 20 MeV proton 36.36 2.71378 98.6732 + case= 19 sphere below 20 MeV ion 45.4 2.65579 120.573 + case= 20 sphere below 20 MeV otherMeson 0.02 2.65056 0.0530112 + case= 21 sphere below 20 MeV otherBaryon 0.03 11.0823 0.332468 + case= 22 sphere above 20 MeV all 95.53 1204.79 115093 + case= 23 sphere above 20 MeV electron 22.18 368.9 8182.21 + case= 24 sphere above 20 MeV gamma 30.26 465.367 14082 + case= 25 sphere above 20 MeV muon 0.17 203.525 34.5993 + case= 26 sphere above 20 MeV neutrino 2.83 49.2296 139.32 + case= 27 sphere above 20 MeV pion 17.67 4567.76 80712.3 + case= 28 sphere above 20 MeV neutron 9.88 318.74 3149.15 + case= 29 sphere above 20 MeV proton 9.02 303.694 2739.32 + case= 30 sphere above 20 MeV ion 2.02 56.9608 115.061 + case= 31 sphere above 20 MeV otherMeson 1.26 4498.79 5668.47 + case= 32 sphere above 20 MeV otherBaryon 0.24 1128.94 270.946 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_GRAPHITE + Radius = 1000 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructSphere() : + World (box) size: + x : -/+ 1100 mm y : -/+ 1100 mm z : -/+ 1100 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : Yes + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 1 starts. +### Run 1 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=7.920000s Real=8.034261s Sys=0.030000s + + + =============== Run::PrintInfo() =============== RunID = 1 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_GRAPHITE + Cubic-volume scoring shell = 1.26925e+08 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 forward all 0.00729563 + case= 1 forward electron 0.000616676 + case= 2 forward gamma 0.00592922 + case= 3 forward muon 2.8918e-06 + case= 4 forward neutrino 0.000153995 + case= 5 forward pion 9.48296e-05 + case= 6 forward neutron 0.000451074 + case= 7 forward proton 3.74827e-05 + case= 8 forward ion 2.4032e-07 + case= 9 forward otherMeson 8.71724e-06 + case= 10 forward otherBaryon 5.07878e-07 + case= 11 backward all 7.99263e-05 + case= 12 backward electron 2.30485e-06 + case= 13 backward gamma 3.06522e-05 + case= 14 backward muon 0 + case= 15 backward neutrino 3.92568e-05 + case= 16 backward pion 0 + case= 17 backward neutron 7.53209e-06 + case= 18 backward proton 1.80411e-07 + case= 19 backward ion 0 + case= 20 backward otherMeson 0 + case= 21 backward otherBaryon 0 + case= 22 below 20 MeV forward all 0.00576906 + case= 23 below 20 MeV forward electron 0.000308693 + case= 24 below 20 MeV forward gamma 0.0051827 + case= 25 below 20 MeV forward muon 0 + case= 26 below 20 MeV forward neutrino 1.51623e-05 + case= 27 below 20 MeV forward pion 9.41986e-07 + case= 28 below 20 MeV forward neutron 0.000261319 + case= 29 below 20 MeV forward proton 0 + case= 30 below 20 MeV forward ion 2.4032e-07 + case= 31 below 20 MeV forward otherMeson 0 + case= 32 below 20 MeV forward otherBaryon 0 + case= 33 below 20 MeV backward all 3.73361e-05 + case= 34 below 20 MeV backward electron 2.30485e-06 + case= 35 below 20 MeV backward gamma 2.8899e-05 + case= 36 below 20 MeV backward muon 0 + case= 37 below 20 MeV backward neutrino 2.83889e-06 + case= 38 below 20 MeV backward pion 0 + case= 39 below 20 MeV backward neutron 3.29335e-06 + case= 40 below 20 MeV backward proton 0 + case= 41 below 20 MeV backward ion 0 + case= 42 below 20 MeV backward otherMeson 0 + case= 43 below 20 MeV backward otherBaryon 0 + case= 44 above 20 MeV forward all 0.00152657 + case= 45 above 20 MeV forward electron 0.000307983 + case= 46 above 20 MeV forward gamma 0.000746515 + case= 47 above 20 MeV forward muon 2.8918e-06 + case= 48 above 20 MeV forward neutrino 0.000138833 + case= 49 above 20 MeV forward pion 9.38876e-05 + case= 50 above 20 MeV forward neutron 0.000189754 + case= 51 above 20 MeV forward proton 3.74827e-05 + case= 52 above 20 MeV forward ion 0 + case= 53 above 20 MeV forward otherMeson 8.71724e-06 + case= 54 above 20 MeV forward otherBaryon 5.07878e-07 + case= 55 above 20 MeV backward all 4.25902e-05 + case= 56 above 20 MeV backward electron 0 + case= 57 above 20 MeV backward gamma 1.75318e-06 + case= 58 above 20 MeV backward muon 0 + case= 59 above 20 MeV backward neutrino 3.64179e-05 + case= 60 above 20 MeV backward pion 0 + case= 61 above 20 MeV backward neutron 4.23874e-06 + case= 62 above 20 MeV backward proton 1.80411e-07 + case= 63 above 20 MeV backward ion 0 + case= 64 above 20 MeV backward otherMeson 0 + case= 65 above 20 MeV backward otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 sphere all 14135 14.2495 201418 + case= 1 sphere electron 12032 2.51321 30238.8 + case= 2 sphere gamma 1398.08 27.5051 38454.3 + case= 3 sphere muon 3.21 38.6843 124.177 + case= 4 sphere neutrino 9.42 35.2777 332.316 + case= 5 sphere pion 40.45 2545.6 102969 + case= 6 sphere neutron 92.36 89.158 8234.64 + case= 7 sphere proton 49.49 131.151 6490.68 + case= 8 sphere ion 506.18 1.67687 848.798 + case= 9 sphere otherMeson 3.25 3870.99 12580.7 + case= 10 sphere otherBaryon 0.64 1786.95 1143.64 + case= 11 sphere below 20 MeV all 13797.1 0.420113 5796.32 + case= 12 sphere below 20 MeV electron 11929 0.235933 2814.43 + case= 13 sphere below 20 MeV gamma 1282.14 1.40793 1805.16 + case= 14 sphere below 20 MeV muon 2.95 4.15313 12.2517 + case= 15 sphere below 20 MeV neutrino 0.88 14.7785 13.0051 + case= 16 sphere below 20 MeV pion 0.52 12.9158 6.7162 + case= 17 sphere below 20 MeV neutron 54.65 6.21714 339.767 + case= 18 sphere below 20 MeV proton 25.58 7.29167 186.521 + case= 19 sphere below 20 MeV ion 501.23 1.22984 616.432 + case= 20 sphere below 20 MeV otherMeson 0.08 11.7739 0.941912 + case= 21 sphere below 20 MeV otherBaryon 0.08 13.6786 1.09429 + case= 22 sphere above 20 MeV all 337.97 578.812 195621 + case= 23 sphere above 20 MeV electron 103 266.256 27424.4 + case= 24 sphere above 20 MeV gamma 115.94 316.105 36649.2 + case= 25 sphere above 20 MeV muon 0.26 430.481 111.925 + case= 26 sphere above 20 MeV neutrino 8.54 37.39 319.311 + case= 27 sphere above 20 MeV pion 39.93 2578.58 102963 + case= 28 sphere above 20 MeV neutron 37.71 209.357 7894.87 + case= 29 sphere above 20 MeV proton 23.91 263.662 6304.16 + case= 30 sphere above 20 MeV ion 4.95 46.9427 232.366 + case= 31 sphere above 20 MeV otherMeson 3.17 3968.38 12579.8 + case= 32 sphere above 20 MeV otherBaryon 0.56 2040.27 1142.55 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_Si + Radius = 1000 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructSphere() : + World (box) size: + x : -/+ 1100 mm y : -/+ 1100 mm z : -/+ 1100 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + +Index : 3 used in the geometry : Yes + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 2 starts. +### Run 2 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=9.090000s Real=9.189406s Sys=0.020000s + + + =============== Run::PrintInfo() =============== RunID = 2 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_Si + Cubic-volume scoring shell = 1.26925e+08 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 forward all 0.00889605 + case= 1 forward electron 0.00059179 + case= 2 forward gamma 0.00710334 + case= 3 forward muon 1.35051e-06 + case= 4 forward neutrino 0.000103999 + case= 5 forward pion 9.56458e-05 + case= 6 forward neutron 0.000954226 + case= 7 forward proton 3.7902e-05 + case= 8 forward ion 1.75195e-07 + case= 9 forward otherMeson 6.98288e-06 + case= 10 forward otherBaryon 6.37827e-07 + case= 11 backward all 0.000179245 + case= 12 backward electron 0 + case= 13 backward gamma 1.38299e-05 + case= 14 backward muon 0 + case= 15 backward neutrino 2.84715e-05 + case= 16 backward pion 0 + case= 17 backward neutron 0.000136943 + case= 18 backward proton 0 + case= 19 backward ion 0 + case= 20 backward otherMeson 0 + case= 21 backward otherBaryon 0 + case= 22 below 20 MeV forward all 0.00771662 + case= 23 below 20 MeV forward electron 0.000363798 + case= 24 below 20 MeV forward gamma 0.00655802 + case= 25 below 20 MeV forward muon 0 + case= 26 below 20 MeV forward neutrino 7.15618e-06 + case= 27 below 20 MeV forward pion 6.02668e-07 + case= 28 below 20 MeV forward neutron 0.000786663 + case= 29 below 20 MeV forward proton 3.85492e-07 + case= 30 below 20 MeV forward ion 0 + case= 31 below 20 MeV forward otherMeson 0 + case= 32 below 20 MeV forward otherBaryon 0 + case= 33 below 20 MeV backward all 0.000150696 + case= 34 below 20 MeV backward electron 0 + case= 35 below 20 MeV backward gamma 1.38299e-05 + case= 36 below 20 MeV backward muon 0 + case= 37 below 20 MeV backward neutrino 2.75862e-06 + case= 38 below 20 MeV backward pion 0 + case= 39 below 20 MeV backward neutron 0.000134108 + case= 40 below 20 MeV backward proton 0 + case= 41 below 20 MeV backward ion 0 + case= 42 below 20 MeV backward otherMeson 0 + case= 43 below 20 MeV backward otherBaryon 0 + case= 44 above 20 MeV forward all 0.00117942 + case= 45 above 20 MeV forward electron 0.000227992 + case= 46 above 20 MeV forward gamma 0.000545319 + case= 47 above 20 MeV forward muon 1.35051e-06 + case= 48 above 20 MeV forward neutrino 9.68427e-05 + case= 49 above 20 MeV forward pion 9.50432e-05 + case= 50 above 20 MeV forward neutron 0.000167563 + case= 51 above 20 MeV forward proton 3.75165e-05 + case= 52 above 20 MeV forward ion 1.75195e-07 + case= 53 above 20 MeV forward otherMeson 6.98288e-06 + case= 54 above 20 MeV forward otherBaryon 6.37827e-07 + case= 55 above 20 MeV backward all 2.85485e-05 + case= 56 above 20 MeV backward electron 0 + case= 57 above 20 MeV backward gamma 0 + case= 58 above 20 MeV backward muon 0 + case= 59 above 20 MeV backward neutrino 2.57129e-05 + case= 60 above 20 MeV backward pion 0 + case= 61 above 20 MeV backward neutron 2.83565e-06 + case= 62 above 20 MeV backward proton 0 + case= 63 above 20 MeV backward ion 0 + case= 64 above 20 MeV backward otherMeson 0 + case= 65 above 20 MeV backward otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 sphere all 17029.4 10.9819 187016 + case= 1 sphere electron 13629.6 2.45315 33435.3 + case= 2 sphere gamma 2908.41 12.6957 36924.3 + case= 3 sphere muon 2.23 26.5008 59.0968 + case= 4 sphere neutrino 6.47 36.9422 239.016 + case= 5 sphere pion 30.75 3139.25 96531.9 + case= 6 sphere neutron 100.81 55.2123 5565.95 + case= 7 sphere proton 69.43 83.274 5781.71 + case= 8 sphere ion 278.76 1.48542 414.076 + case= 9 sphere otherMeson 2.39 3017.28 7211.29 + case= 10 sphere otherBaryon 0.59 1446.06 853.178 + case= 11 sphere below 20 MeV all 16619.2 0.552589 9183.61 + case= 12 sphere below 20 MeV electron 13471.7 0.360194 4852.42 + case= 13 sphere below 20 MeV gamma 2750.11 1.25097 3440.32 + case= 14 sphere below 20 MeV muon 1.97 4.2737 8.41919 + case= 15 sphere below 20 MeV neutrino 0.49 15.1597 7.42827 + case= 16 sphere below 20 MeV pion 0.49 11.7305 5.74795 + case= 17 sphere below 20 MeV neutron 72.13 4.27079 308.052 + case= 18 sphere below 20 MeV proton 47.08 6.43777 303.09 + case= 19 sphere below 20 MeV ion 275.23 0.936929 257.871 + case= 20 sphere below 20 MeV otherMeson 0.04 6.66681 0.266672 + case= 21 sphere below 20 MeV otherBaryon 0 0 0 + case= 22 sphere above 20 MeV all 410.16 433.568 177832 + case= 23 sphere above 20 MeV electron 157.86 181.065 28582.9 + case= 24 sphere above 20 MeV gamma 158.3 211.522 33484 + case= 25 sphere above 20 MeV muon 0.26 194.914 50.6776 + case= 26 sphere above 20 MeV neutrino 5.98 38.7271 231.588 + case= 27 sphere above 20 MeV pion 30.26 3189.89 96526.2 + case= 28 sphere above 20 MeV neutron 28.68 183.33 5257.9 + case= 29 sphere above 20 MeV proton 22.35 245.128 5478.62 + case= 30 sphere above 20 MeV ion 3.53 44.2509 156.206 + case= 31 sphere above 20 MeV otherMeson 2.35 3068.52 7211.02 + case= 32 sphere above 20 MeV otherBaryon 0.59 1446.06 853.178 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_lAr + Radius = 1000 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructSphere() : + World (box) size: + x : -/+ 1100 mm y : -/+ 1100 mm z : -/+ 1100 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + +Index : 3 used in the geometry : No + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + +Index : 4 used in the geometry : Yes + Material : G4_lAr + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.20503 keV e- 273.977 keV e+ 266.18 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 3 starts. +### Run 3 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=3.740000s Real=3.786800s Sys=0.020000s + + + =============== Run::PrintInfo() =============== RunID = 3 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_lAr + Cubic-volume scoring shell = 1.26925e+08 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 forward all 0.00661162 + case= 1 forward electron 0.000452145 + case= 2 forward gamma 0.00513742 + case= 3 forward muon 1.64353e-06 + case= 4 forward neutrino 3.66894e-05 + case= 5 forward pion 8.76616e-05 + case= 6 forward neutron 0.000869196 + case= 7 forward proton 2.08559e-05 + case= 8 forward ion 1.93484e-07 + case= 9 forward otherMeson 5.65288e-06 + case= 10 forward otherBaryon 1.65375e-07 + case= 11 backward all 0.00024279 + case= 12 backward electron 1.54665e-06 + case= 13 backward gamma 4.95679e-05 + case= 14 backward muon 0 + case= 15 backward neutrino 1.04407e-05 + case= 16 backward pion 3.56786e-07 + case= 17 backward neutron 0.000180878 + case= 18 backward proton 0 + case= 19 backward ion 0 + case= 20 backward otherMeson 0 + case= 21 backward otherBaryon 0 + case= 22 below 20 MeV forward all 0.00574852 + case= 23 below 20 MeV forward electron 0.000270412 + case= 24 below 20 MeV forward gamma 0.00473025 + case= 25 below 20 MeV forward muon 0 + case= 26 below 20 MeV forward neutrino 3.14292e-06 + case= 27 below 20 MeV forward pion 0 + case= 28 below 20 MeV forward neutron 0.000744713 + case= 29 below 20 MeV forward proton 0 + case= 30 below 20 MeV forward ion 0 + case= 31 below 20 MeV forward otherMeson 0 + case= 32 below 20 MeV forward otherBaryon 0 + case= 33 below 20 MeV backward all 0.000224845 + case= 34 below 20 MeV backward electron 1.37327e-06 + case= 35 below 20 MeV backward gamma 4.92249e-05 + case= 36 below 20 MeV backward muon 0 + case= 37 below 20 MeV backward neutrino 1.20918e-06 + case= 38 below 20 MeV backward pion 0 + case= 39 below 20 MeV backward neutron 0.000173037 + case= 40 below 20 MeV backward proton 0 + case= 41 below 20 MeV backward ion 0 + case= 42 below 20 MeV backward otherMeson 0 + case= 43 below 20 MeV backward otherBaryon 0 + case= 44 above 20 MeV forward all 0.000863104 + case= 45 above 20 MeV forward electron 0.000181732 + case= 46 above 20 MeV forward gamma 0.000407169 + case= 47 above 20 MeV forward muon 1.64353e-06 + case= 48 above 20 MeV forward neutrino 3.35465e-05 + case= 49 above 20 MeV forward pion 8.76616e-05 + case= 50 above 20 MeV forward neutron 0.000124483 + case= 51 above 20 MeV forward proton 2.08559e-05 + case= 52 above 20 MeV forward ion 1.93484e-07 + case= 53 above 20 MeV forward otherMeson 5.65288e-06 + case= 54 above 20 MeV forward otherBaryon 1.65375e-07 + case= 55 above 20 MeV backward all 1.79454e-05 + case= 56 above 20 MeV backward electron 1.73377e-07 + case= 57 above 20 MeV backward gamma 3.43025e-07 + case= 58 above 20 MeV backward muon 0 + case= 59 above 20 MeV backward neutrino 9.23156e-06 + case= 60 above 20 MeV backward pion 3.56786e-07 + case= 61 above 20 MeV backward neutron 7.8407e-06 + case= 62 above 20 MeV backward proton 0 + case= 63 above 20 MeV backward ion 0 + case= 64 above 20 MeV backward otherMeson 0 + case= 65 above 20 MeV backward otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 sphere all 5596.15 22.6402 126698 + case= 1 sphere electron 4121.99 3.66334 15100.3 + case= 2 sphere gamma 1211.49 15.7898 19129.1 + case= 3 sphere muon 0.84 65.4321 54.963 + case= 4 sphere neutrino 2.31 42.6713 98.5706 + case= 5 sphere pion 16.18 4899.86 79279.7 + case= 6 sphere neutron 78.4 42.5297 3334.33 + case= 7 sphere proton 17.28 137.981 2384.31 + case= 8 sphere ion 145.9 1.06807 155.832 + case= 9 sphere otherMeson 1.5 4618.18 6927.27 + case= 10 sphere otherBaryon 0.26 897.946 233.466 + case= 11 sphere below 20 MeV all 5420.81 0.652133 3535.09 + case= 12 sphere below 20 MeV electron 4061.58 0.419566 1704.1 + case= 13 sphere below 20 MeV gamma 1141.12 1.2596 1437.36 + case= 14 sphere below 20 MeV muon 0.67 4.25567 2.8513 + case= 15 sphere below 20 MeV neutrino 0.18 14.2294 2.56129 + case= 16 sphere below 20 MeV pion 0.17 13.2831 2.25813 + case= 17 sphere below 20 MeV neutron 64.1 3.56371 228.434 + case= 18 sphere below 20 MeV proton 8.69 7.97603 69.3117 + case= 19 sphere below 20 MeV ion 144.28 0.609243 87.9015 + case= 20 sphere below 20 MeV otherMeson 0.01 15.6073 0.156073 + case= 21 sphere below 20 MeV otherBaryon 0.01 15.7485 0.157485 + case= 22 sphere above 20 MeV all 175.34 702.422 123163 + case= 23 sphere above 20 MeV electron 60.41 221.754 13396.2 + case= 24 sphere above 20 MeV gamma 70.37 251.411 17691.8 + case= 25 sphere above 20 MeV muon 0.17 306.539 52.1117 + case= 26 sphere above 20 MeV neutrino 2.13 45.0748 96.0093 + case= 27 sphere above 20 MeV pion 16.01 4951.74 79277.4 + case= 28 sphere above 20 MeV neutron 14.3 217.195 3105.89 + case= 29 sphere above 20 MeV proton 8.59 269.499 2315 + case= 30 sphere above 20 MeV ion 1.62 41.9323 67.9302 + case= 31 sphere above 20 MeV otherMeson 1.49 4649.07 6927.11 + case= 32 sphere above 20 MeV otherBaryon 0.25 933.234 233.309 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_Fe + Radius = 1000 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructSphere() : + World (box) size: + x : -/+ 1100 mm y : -/+ 1100 mm z : -/+ 1100 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + +Index : 3 used in the geometry : No + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + +Index : 4 used in the geometry : No + Material : G4_lAr + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.20503 keV e- 273.977 keV e+ 266.18 keV proton 70 keV + +Index : 5 used in the geometry : Yes + Material : G4_Fe + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 17.2487 keV e- 954.642 keV e+ 906.513 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 4 starts. +### Run 4 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=44.460000s Real=44.897473s Sys=0.030000s + + + =============== Run::PrintInfo() =============== RunID = 4 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_Fe + Cubic-volume scoring shell = 1.26925e+08 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 forward all 0.00318662 + case= 1 forward electron 5.62627e-05 + case= 2 forward gamma 0.00114842 + case= 3 forward muon 3.51951e-07 + case= 4 forward neutrino 0.000160866 + case= 5 forward pion 1.85936e-05 + case= 6 forward neutron 0.00178917 + case= 7 forward proton 1.08479e-05 + case= 8 forward ion 3.04367e-07 + case= 9 forward otherMeson 1.66073e-06 + case= 10 forward otherBaryon 1.4007e-07 + case= 11 backward all 0.000111614 + case= 12 backward electron 0 + case= 13 backward gamma 4.82429e-06 + case= 14 backward muon 0 + case= 15 backward neutrino 6.4465e-05 + case= 16 backward pion 0 + case= 17 backward neutron 4.23245e-05 + case= 18 backward proton 0 + case= 19 backward ion 0 + case= 20 backward otherMeson 0 + case= 21 backward otherBaryon 0 + case= 22 below 20 MeV forward all 0.00284574 + case= 23 below 20 MeV forward electron 3.94926e-05 + case= 24 below 20 MeV forward gamma 0.00111177 + case= 25 below 20 MeV forward muon 0 + case= 26 below 20 MeV forward neutrino 1.52897e-05 + case= 27 below 20 MeV forward pion 5.04741e-07 + case= 28 below 20 MeV forward neutron 0.00167849 + case= 29 below 20 MeV forward proton 1.89813e-07 + case= 30 below 20 MeV forward ion 0 + case= 31 below 20 MeV forward otherMeson 0 + case= 32 below 20 MeV forward otherBaryon 0 + case= 33 below 20 MeV backward all 5.29671e-05 + case= 34 below 20 MeV backward electron 0 + case= 35 below 20 MeV backward gamma 4.82429e-06 + case= 36 below 20 MeV backward muon 0 + case= 37 below 20 MeV backward neutrino 5.8184e-06 + case= 38 below 20 MeV backward pion 0 + case= 39 below 20 MeV backward neutron 4.23245e-05 + case= 40 below 20 MeV backward proton 0 + case= 41 below 20 MeV backward ion 0 + case= 42 below 20 MeV backward otherMeson 0 + case= 43 below 20 MeV backward otherBaryon 0 + case= 44 above 20 MeV forward all 0.000340882 + case= 45 above 20 MeV forward electron 1.67701e-05 + case= 46 above 20 MeV forward gamma 3.66496e-05 + case= 47 above 20 MeV forward muon 3.51951e-07 + case= 48 above 20 MeV forward neutrino 0.000145576 + case= 49 above 20 MeV forward pion 1.80889e-05 + case= 50 above 20 MeV forward neutron 0.000110681 + case= 51 above 20 MeV forward proton 1.0658e-05 + case= 52 above 20 MeV forward ion 3.04367e-07 + case= 53 above 20 MeV forward otherMeson 1.66073e-06 + case= 54 above 20 MeV forward otherBaryon 1.4007e-07 + case= 55 above 20 MeV backward all 5.86466e-05 + case= 56 above 20 MeV backward electron 0 + case= 57 above 20 MeV backward gamma 0 + case= 58 above 20 MeV backward muon 0 + case= 59 above 20 MeV backward neutrino 5.86466e-05 + case= 60 above 20 MeV backward pion 0 + case= 61 above 20 MeV backward neutron 0 + case= 62 above 20 MeV backward proton 0 + case= 63 above 20 MeV backward ion 0 + case= 64 above 20 MeV backward otherMeson 0 + case= 65 above 20 MeV backward otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 sphere all 58225 5.1494 299824 + case= 1 sphere electron 43589.3 1.64782 71827.5 + case= 2 sphere gamma 12183.1 5.78868 70523.9 + case= 3 sphere muon 4.2 21.7307 91.2691 + case= 4 sphere neutrino 12.51 37.5261 469.452 + case= 5 sphere pion 49.66 2256.1 112038 + case= 6 sphere neutron 911.58 19.4686 17747.2 + case= 7 sphere proton 198.28 61.6655 12227 + case= 8 sphere ion 1270.86 0.899238 1142.81 + case= 9 sphere otherMeson 4.34 2927.88 12707 + case= 10 sphere otherBaryon 1.2 874.455 1049.35 + case= 11 sphere below 20 MeV all 57204.8 0.650731 37224.9 + case= 12 sphere below 20 MeV electron 43193 0.441058 19050.6 + case= 13 sphere below 20 MeV gamma 11826.4 1.23129 14561.7 + case= 14 sphere below 20 MeV muon 3.84 4.11981 15.8201 + case= 15 sphere below 20 MeV neutrino 1.18 14.5197 17.1332 + case= 16 sphere below 20 MeV pion 0.89 11.143 9.9173 + case= 17 sphere below 20 MeV neutron 791.89 2.52298 1997.92 + case= 18 sphere below 20 MeV proton 126.89 7.92081 1005.07 + case= 19 sphere below 20 MeV ion 1260.46 0.448142 564.865 + case= 20 sphere below 20 MeV otherMeson 0.19 4.77604 0.907448 + case= 21 sphere below 20 MeV otherBaryon 0.07 13.987 0.979092 + case= 22 sphere above 20 MeV all 1020.16 257.409 262599 + case= 23 sphere above 20 MeV electron 396.27 133.184 52776.8 + case= 24 sphere above 20 MeV gamma 356.67 156.902 55962.2 + case= 25 sphere above 20 MeV muon 0.36 209.581 75.449 + case= 26 sphere above 20 MeV neutrino 11.33 39.9222 452.318 + case= 27 sphere above 20 MeV pion 48.77 2297.07 112028 + case= 28 sphere above 20 MeV neutron 119.69 131.584 15749.3 + case= 29 sphere above 20 MeV proton 71.39 157.192 11222 + case= 30 sphere above 20 MeV ion 10.4 55.5712 577.941 + case= 31 sphere above 20 MeV otherMeson 4.15 3061.71 12706.1 + case= 32 sphere above 20 MeV otherBaryon 1.13 927.759 1048.37 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_Cu + Radius = 1000 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructSphere() : + World (box) size: + x : -/+ 1100 mm y : -/+ 1100 mm z : -/+ 1100 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + +Index : 3 used in the geometry : No + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + +Index : 4 used in the geometry : No + Material : G4_lAr + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.20503 keV e- 273.977 keV e+ 266.18 keV proton 70 keV + +Index : 5 used in the geometry : No + Material : G4_Fe + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 17.2487 keV e- 954.642 keV e+ 906.513 keV proton 70 keV + +Index : 6 used in the geometry : Yes + Material : G4_Cu + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 20.5458 keV e- 1.03403 MeV e+ 979.823 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 5 starts. +### Run 5 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=43.050000s Real=43.451604s Sys=0.030000s + + + =============== Run::PrintInfo() =============== RunID = 5 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_Cu + Cubic-volume scoring shell = 1.26925e+08 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 forward all 0.00158676 + case= 1 forward electron 1.92888e-05 + case= 2 forward gamma 0.000542044 + case= 3 forward muon 1.57585e-07 + case= 4 forward neutrino 0.000156324 + case= 5 forward pion 1.07964e-05 + case= 6 forward neutron 0.000846932 + case= 7 forward proton 8.63945e-06 + case= 8 forward ion 0 + case= 9 forward otherMeson 2.55237e-06 + case= 10 forward otherBaryon 2.92879e-08 + case= 11 backward all 6.99802e-05 + case= 12 backward electron 0 + case= 13 backward gamma 1.87753e-06 + case= 14 backward muon 0 + case= 15 backward neutrino 6.37922e-05 + case= 16 backward pion 0 + case= 17 backward neutron 4.31048e-06 + case= 18 backward proton 0 + case= 19 backward ion 0 + case= 20 backward otherMeson 0 + case= 21 backward otherBaryon 0 + case= 22 below 20 MeV forward all 0.00130338 + case= 23 below 20 MeV forward electron 1.41003e-05 + case= 24 below 20 MeV forward gamma 0.000528925 + case= 25 below 20 MeV forward muon 0 + case= 26 below 20 MeV forward neutrino 1.10106e-05 + case= 27 below 20 MeV forward pion 0 + case= 28 below 20 MeV forward neutron 0.000748523 + case= 29 below 20 MeV forward proton 8.17018e-07 + case= 30 below 20 MeV forward ion 0 + case= 31 below 20 MeV forward otherMeson 0 + case= 32 below 20 MeV forward otherBaryon 0 + case= 33 below 20 MeV backward all 1.25251e-05 + case= 34 below 20 MeV backward electron 0 + case= 35 below 20 MeV backward gamma 1.87753e-06 + case= 36 below 20 MeV backward muon 0 + case= 37 below 20 MeV backward neutrino 6.7758e-06 + case= 38 below 20 MeV backward pion 0 + case= 39 below 20 MeV backward neutron 3.8718e-06 + case= 40 below 20 MeV backward proton 0 + case= 41 below 20 MeV backward ion 0 + case= 42 below 20 MeV backward otherMeson 0 + case= 43 below 20 MeV backward otherBaryon 0 + case= 44 above 20 MeV forward all 0.000283389 + case= 45 above 20 MeV forward electron 5.18844e-06 + case= 46 above 20 MeV forward gamma 1.31195e-05 + case= 47 above 20 MeV forward muon 1.57585e-07 + case= 48 above 20 MeV forward neutrino 0.000145314 + case= 49 above 20 MeV forward pion 1.07964e-05 + case= 50 above 20 MeV forward neutron 9.84092e-05 + case= 51 above 20 MeV forward proton 7.82243e-06 + case= 52 above 20 MeV forward ion 0 + case= 53 above 20 MeV forward otherMeson 2.55237e-06 + case= 54 above 20 MeV forward otherBaryon 2.92879e-08 + case= 55 above 20 MeV backward all 5.74551e-05 + case= 56 above 20 MeV backward electron 0 + case= 57 above 20 MeV backward gamma 0 + case= 58 above 20 MeV backward muon 0 + case= 59 above 20 MeV backward neutrino 5.70164e-05 + case= 60 above 20 MeV backward pion 0 + case= 61 above 20 MeV backward neutron 4.38677e-07 + case= 62 above 20 MeV backward proton 0 + case= 63 above 20 MeV backward ion 0 + case= 64 above 20 MeV backward otherMeson 0 + case= 65 above 20 MeV backward otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 sphere all 63455.5 4.90021 310945 + case= 1 sphere electron 46944.6 1.56461 73450 + case= 2 sphere gamma 13877.8 5.20016 72167.1 + case= 3 sphere muon 4.19 24.3452 102.007 + case= 4 sphere neutrino 12.49 38.1966 477.076 + case= 5 sphere pion 50.49 2292.67 115757 + case= 6 sphere neutron 1001.34 18.725 18750.1 + case= 7 sphere proton 233.48 61.9457 14463.1 + case= 8 sphere ion 1325.31 0.921044 1220.67 + case= 9 sphere otherMeson 4.59 2916.09 13384.9 + case= 10 sphere otherBaryon 1.2 977.987 1173.58 + case= 11 sphere below 20 MeV all 62384.7 0.665779 41534.4 + case= 12 sphere below 20 MeV electron 46537.8 0.450145 20948.7 + case= 13 sphere below 20 MeV gamma 13510.1 1.21927 16472.4 + case= 14 sphere below 20 MeV muon 3.8 4.11981 15.6553 + case= 15 sphere below 20 MeV neutrino 1.03 15.02 15.4706 + case= 16 sphere below 20 MeV pion 0.79 11.6767 9.22458 + case= 17 sphere below 20 MeV neutron 865.46 2.62538 2272.16 + case= 18 sphere below 20 MeV proton 151.9 8.07263 1226.23 + case= 19 sphere below 20 MeV ion 1313.44 0.435023 571.377 + case= 20 sphere below 20 MeV otherMeson 0.21 4.95017 1.03954 + case= 21 sphere below 20 MeV otherBaryon 0.15 13.9688 2.09532 + case= 22 sphere above 20 MeV all 1070.85 251.586 269411 + case= 23 sphere above 20 MeV electron 406.8 129.059 52501.3 + case= 24 sphere above 20 MeV gamma 367.74 151.451 55694.6 + case= 25 sphere above 20 MeV muon 0.39 221.413 86.3512 + case= 26 sphere above 20 MeV neutrino 11.46 40.2797 461.605 + case= 27 sphere above 20 MeV pion 49.7 2328.93 115748 + case= 28 sphere above 20 MeV neutron 135.88 121.268 16477.9 + case= 29 sphere above 20 MeV proton 81.58 162.256 13236.9 + case= 30 sphere above 20 MeV ion 11.87 54.7002 649.292 + case= 31 sphere above 20 MeV otherMeson 4.38 3055.66 13383.8 + case= 32 sphere above 20 MeV otherBaryon 1.05 1115.7 1171.49 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_W + Radius = 1000 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructSphere() : + World (box) size: + x : -/+ 1100 mm y : -/+ 1100 mm z : -/+ 1100 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + +Index : 3 used in the geometry : No + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + +Index : 4 used in the geometry : No + Material : G4_lAr + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.20503 keV e- 273.977 keV e+ 266.18 keV proton 70 keV + +Index : 5 used in the geometry : No + Material : G4_Fe + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 17.2487 keV e- 954.642 keV e+ 906.513 keV proton 70 keV + +Index : 6 used in the geometry : No + Material : G4_Cu + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 20.5458 keV e- 1.03403 MeV e+ 979.823 keV proton 70 keV + +Index : 7 used in the geometry : Yes + Material : G4_W + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 97.7189 keV e- 1.64904 MeV e+ 1.53897 MeV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 6 starts. +### Run 6 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=113.610000s Real=115.155123s Sys=0.180000s + + + =============== Run::PrintInfo() =============== RunID = 6 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_W + Cubic-volume scoring shell = 1.26925e+08 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 forward all 0.000224307 + case= 1 forward electron 0 + case= 2 forward gamma 9.06931e-06 + case= 3 forward muon 0 + case= 4 forward neutrino 0.000128671 + case= 5 forward pion 1.58388e-07 + case= 6 forward neutron 8.56021e-05 + case= 7 forward proton 4.41941e-07 + case= 8 forward ion 0 + case= 9 forward otherMeson 3.64383e-07 + case= 10 forward otherBaryon 0 + case= 11 backward all 7.40293e-05 + case= 12 backward electron 0 + case= 13 backward gamma 0 + case= 14 backward muon 0 + case= 15 backward neutrino 7.36219e-05 + case= 16 backward pion 0 + case= 17 backward neutron 4.0736e-07 + case= 18 backward proton 0 + case= 19 backward ion 0 + case= 20 backward otherMeson 0 + case= 21 backward otherBaryon 0 + case= 22 below 20 MeV forward all 0.000101359 + case= 23 below 20 MeV forward electron 0 + case= 24 below 20 MeV forward gamma 8.84733e-06 + case= 25 below 20 MeV forward muon 0 + case= 26 below 20 MeV forward neutrino 1.18751e-05 + case= 27 below 20 MeV forward pion 0 + case= 28 below 20 MeV forward neutron 8.06368e-05 + case= 29 below 20 MeV forward proton 0 + case= 30 below 20 MeV forward ion 0 + case= 31 below 20 MeV forward otherMeson 0 + case= 32 below 20 MeV forward otherBaryon 0 + case= 33 below 20 MeV backward all 7.80115e-06 + case= 34 below 20 MeV backward electron 0 + case= 35 below 20 MeV backward gamma 0 + case= 36 below 20 MeV backward muon 0 + case= 37 below 20 MeV backward neutrino 7.39379e-06 + case= 38 below 20 MeV backward pion 0 + case= 39 below 20 MeV backward neutron 4.0736e-07 + case= 40 below 20 MeV backward proton 0 + case= 41 below 20 MeV backward ion 0 + case= 42 below 20 MeV backward otherMeson 0 + case= 43 below 20 MeV backward otherBaryon 0 + case= 44 above 20 MeV forward all 0.000122948 + case= 45 above 20 MeV forward electron 0 + case= 46 above 20 MeV forward gamma 2.21982e-07 + case= 47 above 20 MeV forward muon 0 + case= 48 above 20 MeV forward neutrino 0.000116796 + case= 49 above 20 MeV forward pion 1.58388e-07 + case= 50 above 20 MeV forward neutron 4.96529e-06 + case= 51 above 20 MeV forward proton 4.41941e-07 + case= 52 above 20 MeV forward ion 0 + case= 53 above 20 MeV forward otherMeson 3.64383e-07 + case= 54 above 20 MeV forward otherBaryon 0 + case= 55 above 20 MeV backward all 6.62281e-05 + case= 56 above 20 MeV backward electron 0 + case= 57 above 20 MeV backward gamma 0 + case= 58 above 20 MeV backward muon 0 + case= 59 above 20 MeV backward neutrino 6.62281e-05 + case= 60 above 20 MeV backward pion 0 + case= 61 above 20 MeV backward neutron 0 + case= 62 above 20 MeV backward proton 0 + case= 63 above 20 MeV backward ion 0 + case= 64 above 20 MeV backward otherMeson 0 + case= 65 above 20 MeV backward otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 sphere all 75256.1 4.25464 320187 + case= 1 sphere electron 44387.8 1.93875 86056.8 + case= 2 sphere gamma 23377.2 3.75464 87773 + case= 3 sphere muon 4.11 16.5248 67.9168 + case= 4 sphere neutrino 12.38 38.2304 473.293 + case= 5 sphere pion 42.9 2330.43 99975.6 + case= 6 sphere neutron 3589.25 5.92597 21269.8 + case= 7 sphere proton 126.22 89.1181 11248.5 + case= 8 sphere ion 3710.88 0.385442 1430.33 + case= 9 sphere otherMeson 4.07 2502.25 10184.2 + case= 10 sphere otherBaryon 1.25 1366.14 1707.68 + case= 11 sphere below 20 MeV all 74122 0.865333 64140.2 + case= 12 sphere below 20 MeV electron 43966.5 0.689164 30300.1 + case= 13 sphere below 20 MeV gamma 22978.6 1.23646 28412 + case= 14 sphere below 20 MeV muon 3.74 4.13615 15.4692 + case= 15 sphere below 20 MeV neutrino 1.18 14.6511 17.2883 + case= 16 sphere below 20 MeV pion 0.86 12.8563 11.0564 + case= 17 sphere below 20 MeV neutron 3432.61 1.27294 4369.49 + case= 18 sphere below 20 MeV proton 45.66 12.4743 569.576 + case= 19 sphere below 20 MeV ion 3692.46 0.119654 441.816 + case= 20 sphere below 20 MeV otherMeson 0.33 7.13746 2.35536 + case= 21 sphere below 20 MeV otherBaryon 0.08 12.8055 1.02444 + case= 22 sphere above 20 MeV all 1134.04 225.783 256047 + case= 23 sphere above 20 MeV electron 421.26 132.357 55756.7 + case= 24 sphere above 20 MeV gamma 398.64 148.909 59361 + case= 25 sphere above 20 MeV muon 0.37 141.75 52.4476 + case= 26 sphere above 20 MeV neutrino 11.2 40.7147 456.004 + case= 27 sphere above 20 MeV pion 42.04 2377.84 99964.5 + case= 28 sphere above 20 MeV neutron 156.64 107.893 16900.3 + case= 29 sphere above 20 MeV proton 80.56 132.559 10678.9 + case= 30 sphere above 20 MeV ion 18.42 53.6651 988.511 + case= 31 sphere above 20 MeV otherMeson 3.74 2722.41 10181.8 + case= 32 sphere above 20 MeV otherBaryon 1.17 1458.68 1706.66 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_Pb + Radius = 1000 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructSphere() : + World (box) size: + x : -/+ 1100 mm y : -/+ 1100 mm z : -/+ 1100 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + +Index : 3 used in the geometry : No + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + +Index : 4 used in the geometry : No + Material : G4_lAr + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.20503 keV e- 273.977 keV e+ 266.18 keV proton 70 keV + +Index : 5 used in the geometry : No + Material : G4_Fe + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 17.2487 keV e- 954.642 keV e+ 906.513 keV proton 70 keV + +Index : 6 used in the geometry : No + Material : G4_Cu + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 20.5458 keV e- 1.03403 MeV e+ 979.823 keV proton 70 keV + +Index : 7 used in the geometry : No + Material : G4_W + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 97.7189 keV e- 1.64904 MeV e+ 1.53897 MeV proton 70 keV + +Index : 8 used in the geometry : Yes + Material : G4_Pb + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 94.6952 keV e- 1.00699 MeV e+ 946.936 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 7 starts. +### Run 7 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=114.340000s Real=115.523463s Sys=0.090000s + + + =============== Run::PrintInfo() =============== RunID = 7 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_Pb + Cubic-volume scoring shell = 1.26925e+08 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 forward all 0.014516 + case= 1 forward electron 1.83507e-05 + case= 2 forward gamma 0.000335775 + case= 3 forward muon 1.58443e-07 + case= 4 forward neutrino 0.000128446 + case= 5 forward pion 8.47553e-06 + case= 6 forward neutron 0.0140179 + case= 7 forward proton 6.19814e-06 + case= 8 forward ion 0 + case= 9 forward otherMeson 3.33997e-07 + case= 10 forward otherBaryon 3.64364e-07 + case= 11 backward all 0.00270522 + case= 12 backward electron 0 + case= 13 backward gamma 9.89495e-06 + case= 14 backward muon 0 + case= 15 backward neutrino 6.59836e-05 + case= 16 backward pion 0 + case= 17 backward neutron 0.00262934 + case= 18 backward proton 0 + case= 19 backward ion 0 + case= 20 backward otherMeson 0 + case= 21 backward otherBaryon 0 + case= 22 below 20 MeV forward all 0.0142733 + case= 23 below 20 MeV forward electron 1.36764e-05 + case= 24 below 20 MeV forward gamma 0.000325602 + case= 25 below 20 MeV forward muon 0 + case= 26 below 20 MeV forward neutrino 1.11952e-05 + case= 27 below 20 MeV forward pion 0 + case= 28 below 20 MeV forward neutron 0.0139229 + case= 29 below 20 MeV forward proton 0 + case= 30 below 20 MeV forward ion 0 + case= 31 below 20 MeV forward otherMeson 0 + case= 32 below 20 MeV forward otherBaryon 0 + case= 33 below 20 MeV backward all 0.00264461 + case= 34 below 20 MeV backward electron 0 + case= 35 below 20 MeV backward gamma 9.89495e-06 + case= 36 below 20 MeV backward muon 0 + case= 37 below 20 MeV backward neutrino 7.03738e-06 + case= 38 below 20 MeV backward pion 0 + case= 39 below 20 MeV backward neutron 0.00262768 + case= 40 below 20 MeV backward proton 0 + case= 41 below 20 MeV backward ion 0 + case= 42 below 20 MeV backward otherMeson 0 + case= 43 below 20 MeV backward otherBaryon 0 + case= 44 above 20 MeV forward all 0.000242718 + case= 45 above 20 MeV forward electron 4.67427e-06 + case= 46 above 20 MeV forward gamma 1.01729e-05 + case= 47 above 20 MeV forward muon 1.58443e-07 + case= 48 above 20 MeV forward neutrino 0.000117251 + case= 49 above 20 MeV forward pion 8.47553e-06 + case= 50 above 20 MeV forward neutron 9.50897e-05 + case= 51 above 20 MeV forward proton 6.19814e-06 + case= 52 above 20 MeV forward ion 0 + case= 53 above 20 MeV forward otherMeson 3.33997e-07 + case= 54 above 20 MeV forward otherBaryon 3.64364e-07 + case= 55 above 20 MeV backward all 6.06082e-05 + case= 56 above 20 MeV backward electron 0 + case= 57 above 20 MeV backward gamma 0 + case= 58 above 20 MeV backward muon 0 + case= 59 above 20 MeV backward neutrino 5.89462e-05 + case= 60 above 20 MeV backward pion 0 + case= 61 above 20 MeV backward neutron 1.66195e-06 + case= 62 above 20 MeV backward proton 0 + case= 63 above 20 MeV backward ion 0 + case= 64 above 20 MeV backward otherMeson 0 + case= 65 above 20 MeV backward otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 sphere all 52903.7 5.80319 307010 + case= 1 sphere electron 31314.5 2.53099 79256.6 + case= 2 sphere gamma 17913.6 4.47674 80194.4 + case= 3 sphere muon 3.79 19.072 72.2827 + case= 4 sphere neutrino 11.32 36.7547 416.063 + case= 5 sphere pion 41.37 2501.31 103479 + case= 6 sphere neutron 2134.79 9.086 19396.7 + case= 7 sphere proton 114.33 96.1224 10989.7 + case= 8 sphere ion 1365.38 1.0295 1405.66 + case= 9 sphere otherMeson 3.59 2886.4 10362.2 + case= 10 sphere otherBaryon 1.12 1283.41 1437.42 + case= 11 sphere below 20 MeV all 51778.5 0.972716 50365.7 + case= 12 sphere below 20 MeV electron 30888 0.783761 24208.8 + case= 13 sphere below 20 MeV gamma 17509.9 1.22003 21362.6 + case= 14 sphere below 20 MeV muon 3.5 4.13921 14.4872 + case= 15 sphere below 20 MeV neutrino 1.04 14.4496 15.0276 + case= 16 sphere below 20 MeV pion 0.79 12.5842 9.94151 + case= 17 sphere below 20 MeV neutron 1990.42 1.95764 3896.52 + case= 18 sphere below 20 MeV proton 37.91 12.6873 480.976 + case= 19 sphere below 20 MeV ion 1346.77 0.278995 375.742 + case= 20 sphere below 20 MeV otherMeson 0.17 5.96843 1.01463 + case= 21 sphere below 20 MeV otherBaryon 0.06 10.9865 0.659187 + case= 22 sphere above 20 MeV all 1125.25 228.078 256644 + case= 23 sphere above 20 MeV electron 426.51 129.066 55047.9 + case= 24 sphere above 20 MeV gamma 403.71 145.728 58831.8 + case= 25 sphere above 20 MeV muon 0.29 199.295 57.7955 + case= 26 sphere above 20 MeV neutrino 10.28 39.0112 401.035 + case= 27 sphere above 20 MeV pion 40.58 2549.76 103469 + case= 28 sphere above 20 MeV neutron 144.37 107.364 15500.2 + case= 29 sphere above 20 MeV proton 76.42 137.512 10508.7 + case= 30 sphere above 20 MeV ion 18.61 55.3424 1029.92 + case= 31 sphere above 20 MeV otherMeson 3.42 3029.58 10361.2 + case= 32 sphere above 20 MeV otherBaryon 1.06 1355.43 1436.76 + ============================================================= + + + + ------ DetectorConstruction::PrintParameters() ------ + Material = G4_PbWO4 + Radius = 1000 mm + ScoringThickness = 10 mm + -------------------------------------------------------- + +Start re-initialization because + Geometry +has been modified since last Run. + +DetectorConstruction::ConstructSphere() : + World (box) size: + x : -/+ 1100 mm y : -/+ 1100 mm z : -/+ 1100 mm + + + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No + Material : G4_POLYSTYRENE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.12507 keV e- 285.029 keV e+ 278.025 keV proton 70 keV + +Index : 2 used in the geometry : No + Material : G4_GRAPHITE + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.8882 keV e- 436.578 keV e+ 422.985 keV proton 70 keV + +Index : 3 used in the geometry : No + Material : G4_Si + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.85415 keV e- 423.338 keV e+ 409.013 keV proton 70 keV + +Index : 4 used in the geometry : No + Material : G4_lAr + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.20503 keV e- 273.977 keV e+ 266.18 keV proton 70 keV + +Index : 5 used in the geometry : No + Material : G4_Fe + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 17.2487 keV e- 954.642 keV e+ 906.513 keV proton 70 keV + +Index : 6 used in the geometry : No + Material : G4_Cu + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 20.5458 keV e- 1.03403 MeV e+ 979.823 keV proton 70 keV + +Index : 7 used in the geometry : No + Material : G4_W + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 97.7189 keV e- 1.64904 MeV e+ 1.53897 MeV proton 70 keV + +Index : 8 used in the geometry : No + Material : G4_Pb + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 94.6952 keV e- 1.00699 MeV e+ 946.936 keV proton 70 keV + +Index : 9 used in the geometry : Yes + Material : G4_PbWO4 + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 75.7749 keV e- 842.468 keV e+ 797.806 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 8 starts. +### Run 8 starts. + Event#=0 + Event#=10 + Event#=20 + Event#=30 + Event#=40 + Event#=50 + Event#=60 + Event#=70 + Event#=80 + Event#=90 + Run terminated. +Run Summary + Number of events processed : 100 + User=68.850000s Real=69.644677s Sys=0.040000s + + + =============== Run::PrintInfo() =============== RunID = 8 + Primary particle PDG code = -211 + Primary particle kinetic energy = 50 GeV + Primary particle direction = (0,0,1) + Target material = G4_PbWO4 + Cubic-volume scoring shell = 1.26925e+08 mm^3 + Number of events = 100 + Conversion factor: fluence from mm^-2 to cm^-2 = 100 + Particle fluence in unit of cm^-2 : + case= 0 forward all 0.00315095 + case= 1 forward electron 2.9338e-05 + case= 2 forward gamma 0.00052965 + case= 3 forward muon 1.5851e-07 + case= 4 forward neutrino 0.000158041 + case= 5 forward pion 2.2008e-05 + case= 6 forward neutron 0.00240045 + case= 7 forward proton 9.17395e-06 + case= 8 forward ion 1.58029e-07 + case= 9 forward otherMeson 1.96747e-06 + case= 10 forward otherBaryon 0 + case= 11 backward all 8.71313e-05 + case= 12 backward electron 0 + case= 13 backward gamma 3.62409e-06 + case= 14 backward muon 0 + case= 15 backward neutrino 6.04772e-05 + case= 16 backward pion 0 + case= 17 backward neutron 2.30301e-05 + case= 18 backward proton 0 + case= 19 backward ion 0 + case= 20 backward otherMeson 0 + case= 21 backward otherBaryon 0 + case= 22 below 20 MeV forward all 0.00277351 + case= 23 below 20 MeV forward electron 2.17614e-05 + case= 24 below 20 MeV forward gamma 0.000519519 + case= 25 below 20 MeV forward muon 0 + case= 26 below 20 MeV forward neutrino 1.17001e-05 + case= 27 below 20 MeV forward pion 0 + case= 28 below 20 MeV forward neutron 0.00222034 + case= 29 below 20 MeV forward proton 1.93958e-07 + case= 30 below 20 MeV forward ion 0 + case= 31 below 20 MeV forward otherMeson 0 + case= 32 below 20 MeV forward otherBaryon 0 + case= 33 below 20 MeV backward all 2.98079e-05 + case= 34 below 20 MeV backward electron 0 + case= 35 below 20 MeV backward gamma 3.62409e-06 + case= 36 below 20 MeV backward muon 0 + case= 37 below 20 MeV backward neutrino 5.58694e-06 + case= 38 below 20 MeV backward pion 0 + case= 39 below 20 MeV backward neutron 2.05968e-05 + case= 40 below 20 MeV backward proton 0 + case= 41 below 20 MeV backward ion 0 + case= 42 below 20 MeV backward otherMeson 0 + case= 43 below 20 MeV backward otherBaryon 0 + case= 44 above 20 MeV forward all 0.000377434 + case= 45 above 20 MeV forward electron 7.57662e-06 + case= 46 above 20 MeV forward gamma 1.01308e-05 + case= 47 above 20 MeV forward muon 1.5851e-07 + case= 48 above 20 MeV forward neutrino 0.000146341 + case= 49 above 20 MeV forward pion 2.2008e-05 + case= 50 above 20 MeV forward neutron 0.000180113 + case= 51 above 20 MeV forward proton 8.98e-06 + case= 52 above 20 MeV forward ion 1.58029e-07 + case= 53 above 20 MeV forward otherMeson 1.96747e-06 + case= 54 above 20 MeV forward otherBaryon 0 + case= 55 above 20 MeV backward all 5.73235e-05 + case= 56 above 20 MeV backward electron 0 + case= 57 above 20 MeV backward gamma 0 + case= 58 above 20 MeV backward muon 0 + case= 59 above 20 MeV backward neutrino 5.48902e-05 + case= 60 above 20 MeV backward pion 0 + case= 61 above 20 MeV backward neutron 2.43324e-06 + case= 62 above 20 MeV backward proton 0 + case= 63 above 20 MeV backward ion 0 + case= 64 above 20 MeV backward otherMeson 0 + case= 65 above 20 MeV backward otherBaryon 0 + ------------------------------------------------------------- + Extra information: particle production [MeV] + case= 0 sphere all 56914.5 5.38074 306242 + case= 1 sphere electron 33753.6 2.27235 76700.1 + case= 2 sphere gamma 17776 4.35914 77488.1 + case= 3 sphere muon 4.02 21.4247 86.1273 + case= 4 sphere neutrino 12.03 38.5425 463.667 + case= 5 sphere pion 46.37 2338.84 108452 + case= 6 sphere neutron 1788.22 10.1129 18084 + case= 7 sphere proton 129.19 92.8657 11997.3 + case= 8 sphere ion 3400.6 0.526466 1790.3 + case= 9 sphere otherMeson 3.59 2880.06 10339.4 + case= 10 sphere otherBaryon 0.9 934.656 841.191 + case= 11 sphere below 20 MeV all 55850.6 0.926229 51730.4 + case= 12 sphere below 20 MeV electron 33351.1 0.747707 24936.9 + case= 13 sphere below 20 MeV gamma 17398.3 1.27176 22126.4 + case= 14 sphere below 20 MeV muon 3.72 4.13969 15.3997 + case= 15 sphere below 20 MeV neutrino 0.98 14.6631 14.3698 + case= 16 sphere below 20 MeV pion 1 11.9328 11.9328 + case= 17 sphere below 20 MeV neutron 1653.89 1.88688 3120.7 + case= 18 sphere below 20 MeV proton 56.88 9.5227 541.651 + case= 19 sphere below 20 MeV ion 3384.43 0.284021 961.25 + case= 20 sphere below 20 MeV otherMeson 0.23 6.15952 1.41669 + case= 21 sphere below 20 MeV otherBaryon 0.04 10.4036 0.416145 + case= 22 sphere above 20 MeV all 1063.94 239.216 254512 + case= 23 sphere above 20 MeV electron 402.5 128.604 51763.2 + case= 24 sphere above 20 MeV gamma 377.69 146.58 55361.6 + case= 25 sphere above 20 MeV muon 0.3 235.759 70.7277 + case= 26 sphere above 20 MeV neutrino 11.05 40.6603 449.297 + case= 27 sphere above 20 MeV pion 45.37 2390.13 108440 + case= 28 sphere above 20 MeV neutron 134.33 111.392 14963.3 + case= 29 sphere above 20 MeV proton 72.31 158.424 11455.7 + case= 30 sphere above 20 MeV ion 16.17 51.2709 829.051 + case= 31 sphere above 20 MeV otherMeson 3.36 3076.78 10338 + case= 32 sphere above 20 MeV otherBaryon 0.86 977.645 840.775 + ============================================================= + +G4 kernel has come to Quit state. +================== Deleting memory pools =================== +Number of memory pools allocated: 13 of which, static: 0 +Dynamic pools deleted: 13 / Total memory freed: 0.13 MB +============================================================ +RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/all_together.g4 b/examples/extended/hadronic/ParticleFluence/Sphere/all_together.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/cu.g4 b/examples/extended/hadronic/ParticleFluence/Sphere/cu.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/fe.g4 b/examples/extended/hadronic/ParticleFluence/Sphere/fe.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/graphite.g4 b/examples/extended/hadronic/ParticleFluence/Sphere/graphite.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/include/ActionInitialization.hh b/examples/extended/hadronic/ParticleFluence/Sphere/include/ActionInitialization.hh index cad9857858..34a0e805fb 100644 --- a/examples/extended/hadronic/ParticleFluence/Sphere/include/ActionInitialization.hh +++ b/examples/extended/hadronic/ParticleFluence/Sphere/include/ActionInitialization.hh @@ -41,9 +41,9 @@ class ActionInitialization : public G4VUserActionInitialization { public: ActionInitialization(); - virtual ~ActionInitialization(); - virtual void BuildForMaster() const override; - virtual void Build() const override; + ~ActionInitialization() override = default; + void BuildForMaster() const override; + void Build() const override; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/include/DetectorConstruction.hh b/examples/extended/hadronic/ParticleFluence/Sphere/include/DetectorConstruction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/include/DetectorMessenger.hh b/examples/extended/hadronic/ParticleFluence/Sphere/include/DetectorMessenger.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/include/PrimaryGeneratorAction.hh b/examples/extended/hadronic/ParticleFluence/Sphere/include/PrimaryGeneratorAction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/include/Run.hh b/examples/extended/hadronic/ParticleFluence/Sphere/include/Run.hh index 609d4e2530..3e4d366f9c 100644 --- a/examples/extended/hadronic/ParticleFluence/Sphere/include/Run.hh +++ b/examples/extended/hadronic/ParticleFluence/Sphere/include/Run.hh @@ -37,6 +37,7 @@ #include "G4Run.hh" #include "G4ThreeVector.hh" #include "SteppingAction.hh" +#include "TrackingAction.hh" #include //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,49 +46,64 @@ class Run : public G4Run { // This class accumulates relevant quantities related to particle fluence collected during // the run. // ( Note: these information are provided via calls of accessor methods of this Run class - // made by SteppingAction::UserSteppingAction. ) - // At the end of a run, the printInfo method is called by the run-action to print out + // made by SteppingAction::UserSteppingAction + // and TrackingAction::PreUserTrackingAction. ) + // At the end of a run, the PrintInfo method is called by the run-action to print out // some summary information about these quantities. // In multithreaded (MT) mode, an object of this class is filled up for each working thread, // and then merged (automatically by the Geant4 kernel) into another object (of this class) - // owned by the master class; the printInfo method is then called only for the latter run + // owned by the master class; the PrintInfo method is then called only for the latter run // object. // Note that, for simplicity and brevity, we avoid histograms and print-out instead some // statistics (compute by ourself) at the end of the run. public: Run(); - ~Run(); + ~Run() override = default; - virtual void RecordEvent( const G4Event* anEvent ) override; + void RecordEvent( const G4Event* anEvent ) override; // This method is called automatically by the Geant4 kernel (not by the user!) at the end // of each event. In the case of multithreaded mode, it is called only for the working thread // that handled that event. - virtual void Merge( const G4Run* aRun ) override; + void Merge( const G4Run* aRun ) override; // This method is called automatically by the Geant4 kernel (not by the user!) only in the // case of multithreaded mode and only for working threads. - void printInfo() const; + void PrintInfo() const; // This method is called by RunAction::EndOfRunAction : in the case of multithreaded mode, // only the master thread calls it. - void setPrimaryParticleId( const G4int inputValue ) { fPrimaryParticleId = inputValue; } - void setPrimaryParticleEnergy( const G4double inputValue ) + void SetPrimaryParticleId( const G4int inputValue ) { fPrimaryParticleId = inputValue; } + void SetPrimaryParticleEnergy( const G4double inputValue ) { fPrimaryParticleEnergy = inputValue; } - void setPrimaryParticleDirection( const G4ThreeVector &inputValue ) + void SetPrimaryParticleDirection( const G4ThreeVector &inputValue ) { fPrimaryParticleDirection = inputValue; } - void setTargetMaterialName( const G4String &inputValue ) { fTargetMaterialName = inputValue; } - void setCubicVolumeScoringShell( const G4double inputValue ) + void SetTargetMaterialName( const G4String &inputValue ) { fTargetMaterialName = inputValue; } + void SetCubicVolumeScoringShell( const G4double inputValue ) { fCubicVolumeScoringShell = inputValue; } - G4int getPrimaryParticleId() const { return fPrimaryParticleId; } - G4double getPrimaryParticleEnergy() const { return fPrimaryParticleEnergy; } - G4ThreeVector getPrimaryParticleDirection() const { return fPrimaryParticleDirection; } - G4String getTargetMaterialName() const { return fTargetMaterialName; } - G4double getCubicVolumeScoringShell() const { return fCubicVolumeScoringShell; } - void setArray( const std::array< G4double, SteppingAction::numberCombinations >& inputArray ); - std::array< G4double, SteppingAction::numberCombinations > getArray() const { return fArray; } + G4int GetPrimaryParticleId() const { return fPrimaryParticleId; } + G4double GetPrimaryParticleEnergy() const { return fPrimaryParticleEnergy; } + G4ThreeVector GetPrimaryParticleDirection() const { return fPrimaryParticleDirection; } + G4String GetTargetMaterialName() const { return fTargetMaterialName; } + G4double GetCubicVolumeScoringShell() const { return fCubicVolumeScoringShell; } + + void SetSteppingArray( const std::array< G4double, + SteppingAction::fkNumberCombinations >& inputArray ); + std::array< G4double, SteppingAction::fkNumberCombinations > GetSteppingArray() const + { return fSteppingArray; } // Accessor methods useful to transfer information collected by the stepping-action - // into this Run class + // into this Run class + + void SetTrackingArray1( const std::array< G4int, + TrackingAction::fkNumberCombinations >& inputArray ); + std::array< G4int, TrackingAction::fkNumberCombinations > GetTrackingArray1() const + { return fTrackingArray1; } + void SetTrackingArray2( const std::array< G4double, + TrackingAction::fkNumberCombinations >& inputArray ); + std::array< G4double, TrackingAction::fkNumberCombinations > GetTrackingArray2() const + { return fTrackingArray2; } + // Accessor methods useful to transfer information collected by the tracking-action + // into this Run class private: G4int fNumEvents; @@ -96,7 +112,9 @@ class Run : public G4Run { G4ThreeVector fPrimaryParticleDirection; G4String fTargetMaterialName; G4double fCubicVolumeScoringShell; - std::array< G4double, SteppingAction::numberCombinations > fArray; + std::array< G4double, SteppingAction::fkNumberCombinations > fSteppingArray; + std::array< G4int, TrackingAction::fkNumberCombinations > fTrackingArray1; + std::array< G4double, TrackingAction::fkNumberCombinations > fTrackingArray2; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/include/RunAction.hh b/examples/extended/hadronic/ParticleFluence/Sphere/include/RunAction.hh old mode 100755 new mode 100644 index 0d4291f5c8..ea2a2d103c --- a/examples/extended/hadronic/ParticleFluence/Sphere/include/RunAction.hh +++ b/examples/extended/hadronic/ParticleFluence/Sphere/include/RunAction.hh @@ -38,18 +38,21 @@ class G4Run; class SteppingAction; +class TrackingAction; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class RunAction: public G4UserRunAction { public: - RunAction( SteppingAction* steppingAction = nullptr ); - virtual ~RunAction(); - virtual void BeginOfRunAction( const G4Run* aRun ) override; - virtual void EndOfRunAction( const G4Run* aRun ) override; - virtual G4Run* GenerateRun() override; + RunAction( SteppingAction* steppingAction = nullptr, + TrackingAction* trackingAction = nullptr ); + ~RunAction() override = default; + void BeginOfRunAction( const G4Run* aRun ) override; + void EndOfRunAction( const G4Run* aRun ) override; + G4Run* GenerateRun() override; private: SteppingAction* fSteppingAction; + TrackingAction* fTrackingAction; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/include/SteppingAction.hh b/examples/extended/hadronic/ParticleFluence/Sphere/include/SteppingAction.hh old mode 100755 new mode 100644 index ffccfe821b..1cd8c4bd51 --- a/examples/extended/hadronic/ParticleFluence/Sphere/include/SteppingAction.hh +++ b/examples/extended/hadronic/ParticleFluence/Sphere/include/SteppingAction.hh @@ -46,9 +46,9 @@ class Run; class SteppingAction : public G4UserSteppingAction { public: SteppingAction(); - virtual ~SteppingAction(); + ~SteppingAction() override = default; - virtual void UserSteppingAction( const G4Step* ) override; + void UserSteppingAction( const G4Step* ) override; // This is the main method where the step lengths of particles inside // the scoring shell are collected, and then the corresponding fluences // are filled up in the Run object where they are stored (and then @@ -56,33 +56,33 @@ class SteppingAction : public G4UserSteppingAction { // (For simplicity and brevity, we avoid histograms and compute instead // some statistics ourself, which will be print-out at the end of the run.) - void initialize(); + void Initialize(); // This method is called by RunAction::BeginOfRunAction for the // initialization of the stepping-action at the beginning of each Run. // This is necessary because different runs can have different primary particle // types, kinetic energies, and detector configurations. - void setRunPointer( Run* inputValue = nullptr ) { fRunPtr = inputValue; } + void SetRunPointer( Run* inputValue = nullptr ) { fRunPtr = inputValue; } // This method is called by RunAction::BeginOfRunAction for providing to the // stepping-action the pointer to the run object at the beginning of each Run. // This pointer is then used to pass the information collected by the stepping-action // to the run object. - G4double getCubicVolumeScoringShell() const { return fCubicVolumeScoringShell; } + G4double GetCubicVolumeScoringShell() const { return fCubicVolumeScoringShell; } // The cubic-volume of the scoring shell is needed to get the fluence from the // sum of step lengths inside that scoring shell. - static const G4int numberKinematicRegions = 3; // all, below 20 MeV, above 20 MeV - static const G4int numberScoringPositions = 2; // forward, backward (hemisphere with + static const G4int fkNumberKinematicRegions = 3; // all, below 20 MeV, above 20 MeV + static const G4int fkNumberScoringPositions = 2; // forward, backward (hemisphere with // respect to the primary particle direction) - static const G4int numberParticleTypes = 11; // all, e, gamma, mu, nu, pi, n, p, ions, + static const G4int fkNumberParticleTypes = 11; // all, e, gamma, mu, nu, pi, n, p, ions, // other-mesons, other-baryons - static const G4int numberCombinations = - numberKinematicRegions*numberScoringPositions*numberParticleTypes; - static const std::array< G4String, numberKinematicRegions > arrayKinematicRegionNames; - static const std::array< G4String, numberScoringPositions > arrayScoringPositionNames; - static const std::array< G4String, numberParticleTypes > arrayParticleTypeNames; - static G4int getIndex( const G4int iKinematicRegion, const G4int iScoringPosition, + static const G4int fkNumberCombinations = + fkNumberKinematicRegions*fkNumberScoringPositions*fkNumberParticleTypes; + static const std::array< G4String, fkNumberKinematicRegions > fkArrayKinematicRegionNames; + static const std::array< G4String, fkNumberScoringPositions > fkArrayScoringPositionNames; + static const std::array< G4String, fkNumberParticleTypes > fkArrayParticleTypeNames; + static G4int GetIndex( const G4int iKinematicRegion, const G4int iScoringPosition, const G4int iParticleType ); private: @@ -96,7 +96,7 @@ class SteppingAction : public G4UserSteppingAction { G4bool fIsFirstStepInScoringShell; G4double fCubicVolumeScoringShell; - std::array< G4double, numberCombinations > fArraySumStepLengths; + std::array< G4double, fkNumberCombinations > fArraySumStepLengths; // Array to collect the sum of step lengths in the scoring shell for the whole run, // according to the various cases (kinematical region, scoring position and particle type). // Note that the fluence in a scoring volume is defined as sum of step lengths diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/include/TrackingAction.hh b/examples/extended/hadronic/ParticleFluence/Sphere/include/TrackingAction.hh new file mode 100644 index 0000000000..41476fceba --- /dev/null +++ b/examples/extended/hadronic/ParticleFluence/Sphere/include/TrackingAction.hh @@ -0,0 +1,92 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +/// \file TrackingAction.hh +/// \brief Definition of the TrackingAction class +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef TrackingAction_h +#define TrackingAction_h 1 + +#include "globals.hh" +#include "G4UserTrackingAction.hh" +#include + +class Run; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class TrackingAction : public G4UserTrackingAction { + // We are using this class to monitor the average multiplicity, the average + // kinetic energy, and the average total energy flow (i.e. sum of the + // kinetic energies) of different particle types as they are produced + // inside the target sphere. + // The aim is then to try to correlate some changes in these (more primitive) + // quantities with the observed changes in the (more indirect and complex) + // particle fluences. + public: + TrackingAction(); + ~TrackingAction() override = default; + void PreUserTrackingAction( const G4Track* ) override; + void PostUserTrackingAction( const G4Track* ) override; + + void Initialize(); + // This method is called by RunAction::BeginOfRunAction for the + // initialization of the tracking-action at the beginning of each Run. + + void SetRunPointer( Run* inputValue = nullptr ) { fRunPtr = inputValue; } + // This method is called by RunAction::BeginOfRunAction for providing to the + // tracking-action the pointer to the run object at the beginning of each Run. + // This pointer is then used to pass the information collected by the tracking-action + // to the run object. + + static const G4int fkNumberScoringVolumes = 1; // only the target sphere + static const G4int fkNumberKinematicRegions = 3; // all, below 20 MeV, above 20 MeV + static const G4int fkNumberParticleTypes = 11; // all, e, gamma, mu, nu, pi, n, p, ions, + // other-mesons, other-baryons + static const G4int fkNumberCombinations = + fkNumberScoringVolumes*fkNumberKinematicRegions*fkNumberParticleTypes; + static const std::array< G4String, fkNumberScoringVolumes > fkArrayScoringVolumeNames; + static const std::array< G4String, fkNumberKinematicRegions > fkArrayKinematicRegionNames; + static const std::array< G4String, fkNumberParticleTypes > fkArrayParticleTypeNames; + static G4int GetIndex( const G4int iScoringVolume, const G4int iKinematicRegion, + const G4int iParticleType ); + + private: + Run* fRunPtr; // Pointer to the Run object + + std::array< G4int, fkNumberCombinations > fArrayMultiplicities; + std::array< G4double, fkNumberCombinations > fArraySumKineticEnergies; + // Keep record of the number of particles and their kinetic energy at production, + // according to the particle type and their kinetic energy range (below/above 20 MeV). +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/lar.g4 b/examples/extended/hadronic/ParticleFluence/Sphere/lar.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/pb.g4 b/examples/extended/hadronic/ParticleFluence/Sphere/pb.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/pbwo4.g4 b/examples/extended/hadronic/ParticleFluence/Sphere/pbwo4.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/polystyrene.g4 b/examples/extended/hadronic/ParticleFluence/Sphere/polystyrene.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/si.g4 b/examples/extended/hadronic/ParticleFluence/Sphere/si.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/src/ActionInitialization.cc b/examples/extended/hadronic/ParticleFluence/Sphere/src/ActionInitialization.cc index 7d681a8036..14f2190123 100644 --- a/examples/extended/hadronic/ParticleFluence/Sphere/src/ActionInitialization.cc +++ b/examples/extended/hadronic/ParticleFluence/Sphere/src/ActionInitialization.cc @@ -35,6 +35,7 @@ #include "PrimaryGeneratorAction.hh" #include "RunAction.hh" #include "SteppingAction.hh" +#include "TrackingAction.hh" #include "Run.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -43,10 +44,6 @@ ActionInitialization::ActionInitialization() : G4VUserActionInitialization() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ActionInitialization::~ActionInitialization() {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ActionInitialization::BuildForMaster() const { // This is NOT called in SEQ-mode, while in the MT-mode is called only for the Master thread. SetUserAction( new RunAction ); @@ -59,7 +56,9 @@ void ActionInitialization::Build() const { SetUserAction( new PrimaryGeneratorAction ); SteppingAction* steppingAction = new SteppingAction; SetUserAction( steppingAction ); - SetUserAction( new RunAction( steppingAction ) ); + TrackingAction* trackingAction = new TrackingAction; + SetUserAction( trackingAction ); + SetUserAction( new RunAction( steppingAction, trackingAction ) ); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/src/DetectorConstruction.cc b/examples/extended/hadronic/ParticleFluence/Sphere/src/DetectorConstruction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/src/DetectorMessenger.cc b/examples/extended/hadronic/ParticleFluence/Sphere/src/DetectorMessenger.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/src/PrimaryGeneratorAction.cc b/examples/extended/hadronic/ParticleFluence/Sphere/src/PrimaryGeneratorAction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/src/Run.cc b/examples/extended/hadronic/ParticleFluence/Sphere/src/Run.cc index 2c2c23d9be..dc39c78ec7 100644 --- a/examples/extended/hadronic/ParticleFluence/Sphere/src/Run.cc +++ b/examples/extended/hadronic/ParticleFluence/Sphere/src/Run.cc @@ -43,15 +43,13 @@ Run::Run() : G4Run(), fNumEvents( 0 ), fPrimaryParticleDirection( G4ThreeVector( 0.0, 0.0, 0.0 ) ), fTargetMaterialName( "" ), fCubicVolumeScoringShell( 1.0 ) { - for ( G4int i = 0; i < SteppingAction::numberCombinations; ++i ) fArray[i] = 0.0; + fSteppingArray.fill( 0.0 ); + fTrackingArray1.fill( 0 ); + fTrackingArray2.fill( 0.0 ); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Run::~Run() {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void Run::RecordEvent( const G4Event* anEvent ) { // This method is called automatically by the Geant4 kernel (not by the user!) at the end // of each event : in MT-mode, it is called only for the working thread that handled the event. @@ -66,21 +64,25 @@ void Run::Merge( const G4Run* aRun ) { // This method is called automatically by the Geant4 kernel (not by the user!) only in the case // of multithreaded mode and only for working threads. const Run* localRun = static_cast< const Run* >( aRun ); - fPrimaryParticleId = localRun->getPrimaryParticleId(); - fPrimaryParticleEnergy = localRun->getPrimaryParticleEnergy(); - fPrimaryParticleDirection = localRun->getPrimaryParticleDirection(); - fTargetMaterialName = localRun->getTargetMaterialName(); - fCubicVolumeScoringShell = localRun->getCubicVolumeScoringShell(); + fPrimaryParticleId = localRun->GetPrimaryParticleId(); + fPrimaryParticleEnergy = localRun->GetPrimaryParticleEnergy(); + fPrimaryParticleDirection = localRun->GetPrimaryParticleDirection(); + fTargetMaterialName = localRun->GetTargetMaterialName(); + fCubicVolumeScoringShell = localRun->GetCubicVolumeScoringShell(); fNumEvents += localRun->GetNumberOfEvent(); - for ( G4int i = 0; i < SteppingAction::numberCombinations; ++i ) { - fArray[i] += localRun->getArray()[i]; + for ( G4int i = 0; i < SteppingAction::fkNumberCombinations; ++i ) { + fSteppingArray[i] += localRun->GetSteppingArray()[i]; + } + for ( G4int i = 0; i < TrackingAction::fkNumberCombinations; ++i ) { + fTrackingArray1[i] += localRun->GetTrackingArray1()[i]; + fTrackingArray2[i] += localRun->GetTrackingArray2()[i]; } G4Run::Merge( aRun ); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Run::printInfo() const { +void Run::PrintInfo() const { // This method is called by RunAction::EndOfRunAction. In MT-mode, only the master thread // calls it. const G4double floatingNumberOfEvents = @@ -91,7 +93,7 @@ void Run::printInfo() const { const G4double factor = conversionFactor / ( 0.5*fCubicVolumeScoringShell*floatingNumberOfEvents ); G4cout << std::setprecision(6) << G4endl << G4endl - << " =============== Run::printInfo() =============== \t RunID = " << GetRunID() + << " =============== Run::PrintInfo() =============== \t RunID = " << GetRunID() << G4endl << " Primary particle PDG code = " << fPrimaryParticleId << G4endl << " Primary particle kinetic energy = " << fPrimaryParticleEnergy / CLHEP::GeV @@ -102,16 +104,38 @@ void Run::printInfo() const { << " Number of events = " << floatingNumberOfEvents << G4endl << " Conversion factor: fluence from mm^-2 to cm^-2 = " << conversionFactor << G4endl << " Particle fluence in unit of cm^-2 :" << G4endl; - for ( G4int i = 0; i < SteppingAction::numberKinematicRegions; ++i ) { - for ( G4int j = 0; j < SteppingAction::numberScoringPositions; ++j ) { - for ( G4int k = 0; k < SteppingAction::numberParticleTypes; ++k ) { - G4int index = SteppingAction::getIndex( i, j, k ); + for ( G4int i = 0; i < SteppingAction::fkNumberKinematicRegions; ++i ) { + for ( G4int j = 0; j < SteppingAction::fkNumberScoringPositions; ++j ) { + for ( G4int k = 0; k < SteppingAction::fkNumberParticleTypes; ++k ) { + G4int index = SteppingAction::GetIndex( i, j, k ); //G4cout << "(i, j, k )=(" << i << ", " << j << ", " << k << ") ->" << index; G4cout << " case=" << std::setw(3) << index - << " " << std::setw(12) << SteppingAction::arrayKinematicRegionNames[i] - << " " << std::setw(12) << SteppingAction::arrayScoringPositionNames[j] - << " " << std::setw(12) << SteppingAction::arrayParticleTypeNames[k] - << " " << factor*fArray[index] << G4endl; + << " " << std::setw(12) << SteppingAction::fkArrayKinematicRegionNames[i] + << " " << std::setw(12) << SteppingAction::fkArrayScoringPositionNames[j] + << " " << std::setw(12) << SteppingAction::fkArrayParticleTypeNames[k] + << " " << std::setw( 8) << factor*fSteppingArray[index] << G4endl; + } + } + } + G4cout << " ------------------------------------------------------------- " << G4endl + << " Extra information: particle production \t \t [MeV]" + << G4endl; + const G4double normalization = 1.0 / floatingNumberOfEvents; + for ( G4int i = 0; i < TrackingAction::fkNumberScoringVolumes; ++i ) { + for ( G4int j = 0; j < TrackingAction::fkNumberKinematicRegions; ++j ) { + for ( G4int k = 0; k < TrackingAction::fkNumberParticleTypes; ++k ) { + G4int index = TrackingAction::GetIndex( i, j, k ); + //G4cout << "(i, j, k)=(" << i << ", " << j << ", " << k << ") ->" << index; + G4cout << " case=" << std::setw(3) << index + << " " << std::setw(12) << TrackingAction::fkArrayScoringVolumeNames[i] + << " " << std::setw(12) << TrackingAction::fkArrayKinematicRegionNames[j] + << " " << std::setw(12) << TrackingAction::fkArrayParticleTypeNames[k] + << " " << std::setw( 8) << normalization * fTrackingArray1[index] + << " " << std::setw( 8) << ( fTrackingArray1[index] > 0 ? + fTrackingArray2[index] / fTrackingArray1[index] : + 0.0 ) + << " " << std::setw( 8) << normalization * fTrackingArray2[index] + << G4endl; } } } @@ -120,11 +144,29 @@ void Run::printInfo() const { //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Run::setArray( const std::array< G4double, - SteppingAction::numberCombinations >& inputArray ) { - for ( G4int i = 0; i < SteppingAction::numberCombinations; ++i ) { - fArray[i] = inputArray[i]; - } +void Run::SetSteppingArray( const std::array< G4double, + SteppingAction::fkNumberCombinations >& inputArray ) { + for ( G4int i = 0; i < SteppingAction::fkNumberCombinations; ++i ) { + fSteppingArray[i] = inputArray[i]; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::SetTrackingArray1( const std::array< G4int, + TrackingAction::fkNumberCombinations >& inputArray ) { + for ( G4int i = 0; i < TrackingAction::fkNumberCombinations; ++i ) { + fTrackingArray1[i] = inputArray[i]; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Run::SetTrackingArray2( const std::array< G4double, + TrackingAction::fkNumberCombinations >& inputArray ) { + for ( G4int i = 0; i < TrackingAction::fkNumberCombinations; ++i ) { + fTrackingArray2[i] = inputArray[i]; + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/src/RunAction.cc b/examples/extended/hadronic/ParticleFluence/Sphere/src/RunAction.cc old mode 100755 new mode 100644 index 99542cd18e..ace4a14f30 --- a/examples/extended/hadronic/ParticleFluence/Sphere/src/RunAction.cc +++ b/examples/extended/hadronic/ParticleFluence/Sphere/src/RunAction.cc @@ -36,16 +36,13 @@ #include "G4Run.hh" #include "Run.hh" #include "SteppingAction.hh" +#include "TrackingAction.hh" #include "G4RunManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RunAction::RunAction( SteppingAction* steppingAction ) : - G4UserRunAction(), fSteppingAction( steppingAction ) {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -RunAction::~RunAction() {} +RunAction::RunAction( SteppingAction* steppingAction, TrackingAction* trackingAction ) : + G4UserRunAction(), fSteppingAction( steppingAction ), fTrackingAction( trackingAction ) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -57,10 +54,15 @@ G4Run* RunAction::GenerateRun() { void RunAction::BeginOfRunAction( const G4Run* aRun ) { G4cout << "### Run " << aRun->GetRunID() << " starts." << G4endl; - if ( fSteppingAction ) { - fSteppingAction->initialize(); - Run* run = const_cast< Run* >( static_cast< const Run* >( aRun ) ); - if ( run != nullptr ) fSteppingAction->setRunPointer( run ); + Run* run = const_cast< Run* >( static_cast< const Run* >( aRun ) ); + if ( run == nullptr ) return; + if ( fSteppingAction != nullptr ) { + fSteppingAction->Initialize(); + fSteppingAction->SetRunPointer( run ); + } + if ( fTrackingAction != nullptr ) { + fTrackingAction->Initialize(); + fTrackingAction->SetRunPointer( run ); } } @@ -69,7 +71,7 @@ void RunAction::BeginOfRunAction( const G4Run* aRun ) { void RunAction::EndOfRunAction( const G4Run* aRun ) { const Run* run = static_cast< const Run* >( aRun ); if ( run == nullptr || run->GetNumberOfEvent() == 0 ) return; - if ( IsMaster() ) run->printInfo(); + if ( IsMaster() ) run->PrintInfo(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/src/SteppingAction.cc b/examples/extended/hadronic/ParticleFluence/Sphere/src/SteppingAction.cc old mode 100755 new mode 100644 index 25dea61dc2..25065793fc --- a/examples/extended/hadronic/ParticleFluence/Sphere/src/SteppingAction.cc +++ b/examples/extended/hadronic/ParticleFluence/Sphere/src/SteppingAction.cc @@ -46,28 +46,32 @@ #include "G4SystemOfUnits.hh" #include "Run.hh" -const std::array< G4String, SteppingAction::numberKinematicRegions > -SteppingAction::arrayKinematicRegionNames = { "", "below 20 MeV", "above 20 MeV" }; +const std::array< G4String, SteppingAction::fkNumberKinematicRegions > +SteppingAction::fkArrayKinematicRegionNames = { "", "below 20 MeV", "above 20 MeV" }; -const std::array< G4String, SteppingAction::numberScoringPositions > -SteppingAction::arrayScoringPositionNames = { "forward", "backward" }; +const std::array< G4String, SteppingAction::fkNumberScoringPositions > +SteppingAction::fkArrayScoringPositionNames = { "forward", "backward" }; -const std::array< G4String, SteppingAction::numberParticleTypes > -SteppingAction::arrayParticleTypeNames = { "all", "electron", "gamma", "muon", "neutrino", +const std::array< G4String, SteppingAction::fkNumberParticleTypes > +SteppingAction::fkArrayParticleTypeNames = { "all", "electron", "gamma", "muon", "neutrino", "pion", "neutron", "proton", "ion", "otherMeson", "otherBaryon" }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4int SteppingAction::getIndex( const G4int iKinematicRegion, const G4int iScoringPosition, - const G4int iParticleType ) { +G4int SteppingAction::GetIndex( const G4int iKinematicRegion, const G4int iScoringPosition, + const G4int iParticleType ) { G4int index = -1; - if ( iKinematicRegion >= 0 && iKinematicRegion < numberKinematicRegions && - iScoringPosition >= 0 && iScoringPosition < numberScoringPositions && - iParticleType >= 0 && iParticleType < numberParticleTypes ) { - index = iKinematicRegion * numberScoringPositions * numberParticleTypes + - iScoringPosition * numberParticleTypes + - iParticleType; + if ( iKinematicRegion >= 0 && iKinematicRegion < fkNumberKinematicRegions && + iScoringPosition >= 0 && iScoringPosition < fkNumberScoringPositions && + iParticleType >= 0 && iParticleType < fkNumberParticleTypes ) { + index = iKinematicRegion * fkNumberScoringPositions * fkNumberParticleTypes + + iScoringPosition * fkNumberParticleTypes + + iParticleType; + } + if ( index < 0 || index >= fkNumberCombinations ) { + G4cerr << "SteppingAction::GetIndex : WRONG index=" << index << " set it to 0 !" << G4endl; + index = 0; } return index; } @@ -75,16 +79,12 @@ G4int SteppingAction::getIndex( const G4int iKinematicRegion, const G4int iScori //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... SteppingAction::SteppingAction() :G4UserSteppingAction() { - initialize(); + Initialize(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::~SteppingAction() {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void SteppingAction::initialize() { +void SteppingAction::Initialize() { // Initialization needed at the beginning of each Run fPrimaryParticleId = 0; fPrimaryParticleEnergy = 0.0; @@ -94,16 +94,16 @@ void SteppingAction::initialize() { fIsFirstStepInTarget = true; fIsFirstStepInScoringShell = true; fCubicVolumeScoringShell = 1.0; - for ( G4int i = 0; i < numberCombinations; ++i ) { + for ( G4int i = 0; i < fkNumberCombinations; ++i ) { fArraySumStepLengths[i] = 0.0; } /* - for ( G4int i = 0; i < numberCombinations; ++i ) fArraySumStepLengths[i] = 999.9; - G4cout << " numberCombinations=" << numberCombinations << G4endl; - for ( G4int i = 0; i < numberKinematicRegions; ++i ) { - for ( G4int j = 0; j < numberScoringPositions; ++j ) { - for ( G4int k = 0; k < numberParticleTypes; ++k ) { - G4int index = getIndex( i, j, k ); + for ( G4int i = 0; i < fkNumberCombinations; ++i ) fArraySumStepLengths[i] = 999.9; + G4cout << " fkNumberCombinations=" << fkNumberCombinations << G4endl; + for ( G4int i = 0; i < fkNumberKinematicRegions; ++i ) { + for ( G4int j = 0; j < fkNumberScoringPositions; ++j ) { + for ( G4int k = 0; k < fkNumberParticleTypes; ++k ) { + G4int index = GetIndex( i, j, k ); G4cout << "(i, j, k)=(" << i << ", " << j << ", " << k << ") ->" << index; if ( fArraySumStepLengths[ index ] < 1.0 ) G4cout << " <=== REPEATED!"; else fArraySumStepLengths[ index ] = 0.0; @@ -111,7 +111,7 @@ void SteppingAction::initialize() { } } } - for ( G4int i = 0; i < numberCombinations; ++i ) { + for ( G4int i = 0; i < fkNumberCombinations; ++i ) { if ( fArraySumStepLengths[i] > 999.0 ) G4cout << " i=" << i << " NOT COVERED !" << G4endl; } */ @@ -127,9 +127,9 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { fPrimaryParticleEnergy = theStep->GetPreStepPoint()->GetKineticEnergy(); fPrimaryParticleDirection = theStep->GetPreStepPoint()->GetMomentumDirection(); if ( fRunPtr ) { - fRunPtr->setPrimaryParticleId( fPrimaryParticleId ); - fRunPtr->setPrimaryParticleEnergy( fPrimaryParticleEnergy ); - fRunPtr->setPrimaryParticleDirection( fPrimaryParticleDirection ); + fRunPtr->SetPrimaryParticleId( fPrimaryParticleId ); + fRunPtr->SetPrimaryParticleEnergy( fPrimaryParticleEnergy ); + fRunPtr->SetPrimaryParticleDirection( fPrimaryParticleDirection ); } fIsFirstStepOfTheEvent = false; } @@ -138,7 +138,7 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { if ( fIsFirstStepInTarget && theStep->GetPreStepPoint()->GetPhysicalVolume()->GetName() == "physiSphere" ) { fTargetMaterialName = theStep->GetPreStepPoint()->GetMaterial()->GetName(); - if ( fRunPtr ) fRunPtr->setTargetMaterialName( fTargetMaterialName ); + if ( fRunPtr ) fRunPtr->SetTargetMaterialName( fTargetMaterialName ); fIsFirstStepInTarget = false; } // Get information on step lengths in the scoring shell @@ -146,7 +146,7 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { if ( fIsFirstStepInScoringShell ) { fCubicVolumeScoringShell = theStep->GetTrack()->GetVolume()->GetLogicalVolume()->GetSolid()->GetCubicVolume(); - if ( fRunPtr ) fRunPtr->setCubicVolumeScoringShell( fCubicVolumeScoringShell ); + if ( fRunPtr ) fRunPtr->SetCubicVolumeScoringShell( fCubicVolumeScoringShell ); fIsFirstStepInScoringShell = false; } G4double stepLength = theStep->GetTrack()->GetStepLength() * theStep->GetTrack()->GetWeight(); @@ -185,18 +185,18 @@ void SteppingAction::UserSteppingAction( const G4Step* theStep ) { else if ( absPdg > 1000 ) iParticleType = 10; // other baryons (e.g. hyperons, anti-hyperons, // etc.) // Consider the specific case : kinematic region, scoring position, and particle type - G4int index = getIndex( iKinematicRegion, iScoringPosition, iParticleType ); + G4int index = GetIndex( iKinematicRegion, iScoringPosition, iParticleType ); fArraySumStepLengths[index] += stepLength; // Consider the "all" particle case, with the same kinematic region and scoring position - index = getIndex( iKinematicRegion, iScoringPosition, 0 ); + index = GetIndex( iKinematicRegion, iScoringPosition, 0 ); fArraySumStepLengths[index] += stepLength; // Consider the "any" kinematic region case, with the same scoring position and particle type - index = getIndex( 0, iScoringPosition, iParticleType ); + index = GetIndex( 0, iScoringPosition, iParticleType ); fArraySumStepLengths[index] += stepLength; // Consider the "any" kinematic region and "all" particle, with the same scoring position - index = getIndex( 0, iScoringPosition, 0 ); + index = GetIndex( 0, iScoringPosition, 0 ); fArraySumStepLengths[index] += stepLength; - if ( fRunPtr ) fRunPtr->setArray( fArraySumStepLengths ); + if ( fRunPtr ) fRunPtr->SetSteppingArray( fArraySumStepLengths ); } } diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/src/TrackingAction.cc b/examples/extended/hadronic/ParticleFluence/Sphere/src/TrackingAction.cc new file mode 100644 index 0000000000..7c6975ccaf --- /dev/null +++ b/examples/extended/hadronic/ParticleFluence/Sphere/src/TrackingAction.cc @@ -0,0 +1,143 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +/// \file TrackingAction.cc +/// \brief Implementation of the TrackingAction class +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "TrackingAction.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" +#include "G4IonTable.hh" +#include "G4StepPoint.hh" +#include "G4SystemOfUnits.hh" +#include "Run.hh" + +const std::array< G4String, TrackingAction::fkNumberScoringVolumes > +TrackingAction::fkArrayScoringVolumeNames = { "sphere" }; + +const std::array< G4String, TrackingAction::fkNumberKinematicRegions > +TrackingAction::fkArrayKinematicRegionNames = { "", "below 20 MeV", "above 20 MeV" }; + +const std::array< G4String, TrackingAction::fkNumberParticleTypes > +TrackingAction::fkArrayParticleTypeNames = { "all", "electron", "gamma", "muon", "neutrino", + "pion", "neutron", "proton", "ion", "otherMeson", + "otherBaryon" }; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4int TrackingAction::GetIndex( const G4int iScoringVolume, const G4int iKinematicRegion, + const G4int iParticleType ) { + G4int index = -1; + if ( iScoringVolume >= 0 && iScoringVolume < fkNumberScoringVolumes && + iKinematicRegion >= 0 && iKinematicRegion < fkNumberKinematicRegions && + iParticleType >= 0 && iParticleType < fkNumberParticleTypes ) { + index = iScoringVolume * fkNumberKinematicRegions * fkNumberParticleTypes + + iKinematicRegion * fkNumberParticleTypes + + iParticleType; + } + return index; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +TrackingAction::TrackingAction() : G4UserTrackingAction() { + Initialize(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::Initialize() { + // Initialization needed at the beginning of each Run + fArrayMultiplicities.fill( 0 ); + fArraySumKineticEnergies.fill( 0.0 ); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PreUserTrackingAction( const G4Track* aTrack ) { + // This method is called not only once when a particle is created, + // but also each time it is resumed, in the case the track gets suspended, + // as it happens in the case of neutrons with _HP Physics Lists. + // To be sure that we collect information about a track one and only once, + // we require that the current step be the first one. + if ( aTrack == nullptr || + aTrack->GetCurrentStepNumber() != 0 || + aTrack->GetDefinition() == nullptr || + aTrack->GetLogicalVolumeAtVertex() == nullptr || + aTrack->GetLogicalVolumeAtVertex()->GetName() != "logicSphere" ) return; + G4int iScoringVolume = 0; + // Three kinematical regions: [0] : any value ; [1] : below 20 MeV ; [2] : above 20 MeV + G4int iKinematicRegion = aTrack->GetKineticEnergy() < 20.0 ? 1 : 2; + G4int absPdg = std::abs( aTrack->GetDefinition()->GetPDGEncoding() ); + G4int iParticleType = -1; + if ( absPdg == 11 ) iParticleType = 1; // electron (and positron) + else if ( absPdg == 22 ) iParticleType = 2; // gamma + else if ( absPdg == 13 ) iParticleType = 3; // muons (mu- and mu+) + else if ( absPdg == 12 || absPdg == 14 || absPdg == 16 ) iParticleType = 4; + // neutrinos (and anti-neutrinos), all flavors + else if ( absPdg == 111 || absPdg == 211 ) iParticleType = 5; // (charged) pions + else if ( absPdg == 2112 ) iParticleType = 6; // neutron (and anti-neutron) + else if ( absPdg == 2212 ) iParticleType = 7; // proton (and anti-proton) + else if ( G4IonTable::IsIon( aTrack->GetDefinition() ) || + G4IonTable::IsAntiIon( aTrack->GetDefinition() ) ) iParticleType = 8; + // ions (and anti-ions) + else if ( absPdg < 1000 ) iParticleType = 9; // other mesons (e.g. kaons) + // (Note: this works in most cases, but not always!) + else if ( absPdg > 1000 ) iParticleType = 10; // other baryons (e.g. hyperons, + // anti-hyperons, etc.) + // Consider the specific case : scoring volume, kinematic region and particle type + G4int index = GetIndex( iScoringVolume, iKinematicRegion, iParticleType ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + // Consider the "all" particle case, with the same scoring volume and kinematic region + index = GetIndex( iScoringVolume, iKinematicRegion, 0 ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + // Consider the "any" kinematic region case, with the same scoring volume and particle type + index = GetIndex( iScoringVolume, 0, iParticleType ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + // Consider the "any" kinematic region and "all" particle, with the same scoring volume + index = GetIndex( iScoringVolume, 0, 0 ); + ++fArrayMultiplicities[index]; + fArraySumKineticEnergies[index] += aTrack->GetKineticEnergy(); + if ( fRunPtr ) { + fRunPtr->SetTrackingArray1( fArrayMultiplicities ); + fRunPtr->SetTrackingArray2( fArraySumKineticEnergies ); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PostUserTrackingAction( const G4Track* /* aTrack */ ) {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/hadronic/ParticleFluence/Sphere/w.g4 b/examples/extended/hadronic/ParticleFluence/Sphere/w.g4 old mode 100755 new mode 100644 diff --git a/examples/extended/medical/DICOM/DICOM.cc b/examples/extended/medical/DICOM/DICOM.cc index 2d3982c4a1..33aaf678ae 100644 --- a/examples/extended/medical/DICOM/DICOM.cc +++ b/examples/extended/medical/DICOM/DICOM.cc @@ -39,7 +39,7 @@ // tel (418) 525-4444 #6720 // fax (418) 691 5268 // -// + Universit� Laval, Qu�bec (QC) Canada +// + Université Laval, Québec (QC) Canada // ******************************************************* #include "G4Types.hh" diff --git a/examples/extended/medical/DICOM/History b/examples/extended/medical/DICOM/History index bb31360645..393f7323ed 100644 --- a/examples/extended/medical/DICOM/History +++ b/examples/extended/medical/DICOM/History @@ -1,9 +1,24 @@ # Example DICOM History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-10-04 John Allison (DICOM-V11-00-04) +- Introduce special mesh rendering of DICOM image. + +## 2022-10-24 I. Hrivnacova (DICOM-V11-00-03) +- Coding guidelines: start data member with 'f'; use G4int, G4double + (skipped dicomReader classes) + +## 2022-10-04 Ben Morgan (DICOM-V11-00-02) +- Replace sprintf with direct G4String use to remove deprecation warnings on macOS 13 + +## 2022-10-04 Gabriele Cosmo (DICOM-V11-00-01) +- Fixed compilation warning on Intel-icx compiler for set but unused variable + in DicomHandler::ReadData(). ## 2021-12-10 Ben Morgan (DICOM-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/medical/DICOM/dicomReader/include/DicomFileMgr.hh b/examples/extended/medical/DICOM/dicomReader/include/DicomFileMgr.hh index 43b8e82257..331a1af4c8 100644 --- a/examples/extended/medical/DICOM/dicomReader/include/DicomFileMgr.hh +++ b/examples/extended/medical/DICOM/dicomReader/include/DicomFileMgr.hh @@ -122,7 +122,7 @@ private: G4int theStructureNMaxROI; public: - static int verbose; + static G4int verbose; G4bool bMaterialsDensity; }; diff --git a/examples/extended/medical/DICOM/include/DicomDetectorConstruction.hh b/examples/extended/medical/DICOM/include/DicomDetectorConstruction.hh index dba045a42c..ae5d6aea4a 100644 --- a/examples/extended/medical/DICOM/include/DicomDetectorConstruction.hh +++ b/examples/extended/medical/DICOM/include/DicomDetectorConstruction.hh @@ -142,7 +142,7 @@ class DicomDetectorConstruction : public G4VUserDetectorConstruction G4double fMinX,fMinY,fMinZ; // minimum extension of voxels (position wall) G4double fMaxX,fMaxY,fMaxZ; // maximum extension of voxels (position wall) - std::map thePhantomMaterialsOriginal; + std::map fPhantomMaterialsOriginal; // map numberOfMaterial to G4Material. They are the list of materials as // built from .geom file diff --git a/examples/extended/medical/DICOM/include/DicomNestedPhantomParameterisation.hh b/examples/extended/medical/DICOM/include/DicomNestedPhantomParameterisation.hh index 505ec82392..f988862359 100644 --- a/examples/extended/medical/DICOM/include/DicomNestedPhantomParameterisation.hh +++ b/examples/extended/medical/DICOM/include/DicomNestedPhantomParameterisation.hh @@ -67,14 +67,14 @@ class DicomNestedPhantomParameterisation : public G4VNestedParameterisation public: typedef std::map ColourMap_t; - static G4String defaultColorFile; + static G4String fDefaultColorFile; public: DicomNestedPhantomParameterisation(const G4ThreeVector& voxelSize, std::vector& mat, G4int fnZ_ = 0, G4int fnY_ = 0, G4int fnX_ = 0, - G4String colorFile = defaultColorFile); + G4String colorFile = fDefaultColorFile); ~DicomNestedPhantomParameterisation(); G4Material* ComputeMaterial(G4VPhysicalVolume *currentVol, @@ -143,7 +143,7 @@ private: std::vector fMaterials; size_t* fMaterialIndices; // Index in materials corresponding to each voxel ColourMap_t fColours; - std::map mColours; + std::map fColours2; std::vector fpZ; }; diff --git a/examples/extended/medical/DICOM/include/DicomPhantomParameterisationColour.hh b/examples/extended/medical/DICOM/include/DicomPhantomParameterisationColour.hh index 6960c8aafe..63251413b6 100644 --- a/examples/extended/medical/DICOM/include/DicomPhantomParameterisationColour.hh +++ b/examples/extended/medical/DICOM/include/DicomPhantomParameterisationColour.hh @@ -50,11 +50,11 @@ class DicomPhantomParameterisationColour : public G4PhantomParameterisation public: typedef std::map ColourMap_t; - static G4String defaultColorFile; + static G4String fDefaultColorFile; public: // with description DicomPhantomParameterisationColour(G4String colorFile = - defaultColorFile); + fDefaultColorFile); ~DicomPhantomParameterisationColour(); virtual G4Material* ComputeMaterial(const G4int repNo, @@ -69,7 +69,7 @@ private: private: ColourMap_t fColours; - std::map mColours; + std::map fColours2; }; diff --git a/examples/extended/medical/DICOM/run.out b/examples/extended/medical/DICOM/run.out index 0b049d92f1..b13bb8a3a8 100644 --- a/examples/extended/medical/DICOM/run.out +++ b/examples/extended/medical/DICOM/run.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -79,6 +79,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -139,6 +141,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -166,7 +169,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -202,8 +205,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -233,8 +235,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -346,10 +348,11 @@ ionIoni: for GenericIon XStype:3 SubType=2 ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 1.4427 us -Max life time (from G4DeexPrecoParameters) 1.4427 us +min MeanLife (from G4NuclideTable) 1 ns +Max life time (from G4DeexPrecoParameters) 1000 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -740,6 +743,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1036,7 +1044,7 @@ Limit excitation energy for Fermi BreakUp 20 MeV Level density (1/MeV) 0.075 Use simple level density model 1 Use discrete excitation energy of the residual 1 -Time limit for long lived isomeres 1.4427 us +Time limit for long lived isomeres 1000 ps Isomer production flag 1 Internal e- conversion flag 1 Store e- internal conversion data 1 @@ -1219,7 +1227,7 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 100 - User=0.030000s Real=0.038645s Sys=0.000000s + User=0.010000s Real=0.026401s Sys=0.010000s --------------------End of Global Run----------------------- The run was 100 events LOCAL TOTAL DOSE : 0 Gy diff --git a/examples/extended/medical/DICOM/src/DicomDetectorConstruction.cc b/examples/extended/medical/DICOM/src/DicomDetectorConstruction.cc index 99308cdcd8..6276744667 100644 --- a/examples/extended/medical/DICOM/src/DicomDetectorConstruction.cc +++ b/examples/extended/medical/DICOM/src/DicomDetectorConstruction.cc @@ -120,6 +120,8 @@ G4VPhysicalVolume* DicomDetectorConstruction::Construct() 0, false, 0 ); + + fWorld_logic->SetVisAttributes(G4VisAttributes::GetInvisible()); #ifdef G4_DCMTK ReadPhantomDataNew(); @@ -494,7 +496,7 @@ void DicomDetectorConstruction::ReadPhantomDataNew() "Wrong argument", FatalErrorInArgument, ("Material not found" + mateName).c_str()); - thePhantomMaterialsOriginal[nmate] = mate; + fPhantomMaterialsOriginal[nmate] = mate; } fin >> fNoVoxelsX >> fNoVoxelsY >> fNoVoxelsZ; @@ -547,7 +549,7 @@ void DicomDetectorConstruction::ReadVoxelDensities( std::ifstream& fin ) G4String stemp; std::map > densiMinMax; std::map >::iterator mpite; - for( G4int ii = 0; ii < G4int(thePhantomMaterialsOriginal.size()); ++ii ) + for( G4int ii = 0; ii < G4int(fPhantomMaterialsOriginal.size()); ++ii ) { densiMinMax[ii] = std::pair(DBL_MAX,-DBL_MAX); } @@ -557,7 +559,7 @@ void DicomDetectorConstruction::ReadVoxelDensities( std::ifstream& fin ) if( part ) densityDiff = G4UIcommand::ConvertToDouble(part); std::map densityDiffs; - for( G4int ii = 0; ii < G4int(thePhantomMaterialsOriginal.size()); ++ii ) + for( G4int ii = 0; ii < G4int(fPhantomMaterialsOriginal.size()); ++ii ) { densityDiffs[ii] = densityDiff; //currently all materials with same step } @@ -583,13 +585,13 @@ void DicomDetectorConstruction::ReadVoxelDensities( std::ifstream& fin ) //--- Get material from original list of material in file G4int mateID = G4int(fMateIDs[copyNo]); std::map::const_iterator imite = - thePhantomMaterialsOriginal.find(mateID); + fPhantomMaterialsOriginal.find(mateID); //--- Check if density is equal to the original material density if(std::fabs(dens - (*imite).second->GetDensity()/CLHEP::g*CLHEP::cm3 ) < 1.e-9 ) continue; - //--- Build material name with thePhantomMaterialsOriginal name+density + //--- Build material name with fPhantomMaterialsOriginal name+density G4int densityBin = (G4int(dens/densityDiffs[mateID])); G4String mateName = (*imite).second->GetName() @@ -602,14 +604,14 @@ void DicomDetectorConstruction::ReadVoxelDensities( std::ifstream& fin ) matInfo* mi = (*mppite).second; mi->fSumdens += dens; mi->fNvoxels++; - fMateIDs[copyNo] = thePhantomMaterialsOriginal.size()-1 + mi->fId; + fMateIDs[copyNo] = fPhantomMaterialsOriginal.size()-1 + mi->fId; } else { matInfo* mi = new matInfo; mi->fSumdens = dens; mi->fNvoxels = 1; mi->fId = G4int(newMateDens.size()+1); newMateDens[matdens] = mi; - fMateIDs[copyNo] = thePhantomMaterialsOriginal.size()-1 + mi->fId; + fMateIDs[copyNo] = fPhantomMaterialsOriginal.size()-1 + mi->fId; } } } @@ -629,8 +631,8 @@ void DicomDetectorConstruction::ReadVoxelDensities( std::ifstream& fin ) //----- Build the list of phantom materials that go to Parameterisation //--- Add original materials - for( auto mimite = thePhantomMaterialsOriginal.cbegin(); - mimite != thePhantomMaterialsOriginal.cend(); ++mimite ) + for( auto mimite = fPhantomMaterialsOriginal.cbegin(); + mimite != fPhantomMaterialsOriginal.cend(); ++mimite ) { fMaterials.push_back( (*mimite).second ); } diff --git a/examples/extended/medical/DICOM/src/DicomHandler.cc b/examples/extended/medical/DICOM/src/DicomHandler.cc index acd85b8e14..1842294511 100644 --- a/examples/extended/medical/DICOM/src/DicomHandler.cc +++ b/examples/extended/medical/DICOM/src/DicomHandler.cc @@ -680,8 +680,7 @@ G4int DicomHandler::ReadData(FILE *dicom,char * filename2) { G4int returnvalue = 0; size_t rflag = 0; - // READING THE PIXELS : - G4int w = 0; + // READING THE PIXELS fTab = new G4int*[fRows]; for ( G4int i = 0; i < fRows; ++i ) @@ -699,7 +698,6 @@ G4int DicomHandler::ReadData(FILE *dicom,char * filename2) for(G4int j = 0; j < fRows; ++j) { for(G4int i = 0; i < fColumns; ++i) { - w++; rflag = std::fread( &ch, 1, 1, dicom); fTab[j][i] = ch*fRescaleSlope + fRescaleIntercept; } @@ -711,7 +709,6 @@ G4int DicomHandler::ReadData(FILE *dicom,char * filename2) short pixel; for( G4int j = 0; j < fRows; ++j) { for( G4int i = 0; i < fColumns; ++i) { - w++; rflag = std::fread(sbuff, 2, 1, dicom); GetValue(sbuff, pixel); fTab[j][i] = pixel*fRescaleSlope + fRescaleIntercept; @@ -720,12 +717,10 @@ G4int DicomHandler::ReadData(FILE *dicom,char * filename2) } // Creation of .g4 files wich contains averaged density data - char * nameProcessed = new char[FILENAMESIZE]; - FILE* fileOut; - - std::sprintf(nameProcessed,"%s.g4dcmb",filename2); - fileOut = std::fopen(nameProcessed,"w+b"); - std::printf("### Writing of %s ###\n",nameProcessed); + G4String nameProcessed = filename2 + G4String(".g4dcmb"); + FILE* fileOut = std::fopen(nameProcessed.c_str(),"w+b"); + + G4cout << "### Writing of "<< nameProcessed << " ###\n"; unsigned int nMate = fMaterialIndices.size(); rflag = std::fwrite(&nMate, sizeof(unsigned int), 1, fileOut); @@ -1020,7 +1015,6 @@ void DicomHandler::CheckFileFormat() char * fCompressionc = new char[LINEBUFFSIZE]; char * maxc = new char[LINEBUFFSIZE]; //char name[300], inputFile[300]; - char * name = new char[FILENAMESIZE]; char * inputFile = new char[FILENAMESIZE]; G4int rflag; lecturePref = std::fopen(fDriverFile.c_str(),"r"); @@ -1039,15 +1033,13 @@ void DicomHandler::CheckFileFormat() rflag = std::fscanf(lecturePref,"%s",inputFile); G4String path = GetDicomDataPath() + "/"; - std::sprintf(name,"%s.dcm",inputFile); + G4String name = inputFile + G4String(".dcm"); //Writes the results to a character string buffer. - char name2[200]; - strcpy(name2, path.c_str()); - strcat(name2, name); + G4String name2 = path + name; // Open input file and give it to gestion_dicom : - std::printf("### Opening %s and reading :\n",name2); - dicom = std::fopen(name2,"rb"); + G4cout << "### Opening " << name2 << " and reading :\n"; + dicom = std::fopen(name2.c_str(),"rb"); // Reading the .dcm in two steps: // 1. reading the header // 2. reading the pixel data and store the density in Moyenne.dat @@ -1063,14 +1055,14 @@ void DicomHandler::CheckFileFormat() for( G4int i = 1; i <= fNFiles; ++i ) { // Begin loop on filenames rflag = std::fscanf(lecturePref,"%s",inputFile); - - std::sprintf(name,"%s.dcm",inputFile); + + G4String name = inputFile + G4String(".dcm"); //Writes the results to a character string buffer. //G4cout << "check: " << name << G4endl; // Open input file and give it to gestion_dicom : - std::printf("### Opening %s and reading :\n",name); - dicom = std::fopen(name,"rb"); + G4cout << "### Opening " << name << " and reading :\n"; + dicom = std::fopen(name.c_str(),"rb"); // Reading the .dcm in two steps: // 1. reading the header // 2. reading the pixel data and store the density in Moyenne.dat @@ -1090,7 +1082,6 @@ void DicomHandler::CheckFileFormat() delete [] fCompressionc; delete [] maxc; - delete [] name; delete [] inputFile; if (rflag) return; diff --git a/examples/extended/medical/DICOM/src/DicomNestedPhantomParameterisation.cc b/examples/extended/medical/DICOM/src/DicomNestedPhantomParameterisation.cc index 24346f5a39..184166d5fa 100644 --- a/examples/extended/medical/DICOM/src/DicomNestedPhantomParameterisation.cc +++ b/examples/extended/medical/DICOM/src/DicomNestedPhantomParameterisation.cc @@ -43,7 +43,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4String DicomNestedPhantomParameterisation::defaultColorFile = +G4String DicomNestedPhantomParameterisation::fDefaultColorFile = DicomHandler::GetDicomDataPath() + "/ColourMap.dat"; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -90,7 +90,7 @@ void DicomNestedPhantomParameterisation::ReadColourData(G4String colourFile) G4VisAttributes* visAtt = new G4VisAttributes( colour ); visAtt->SetVisibility(true); fColours[mateName] = visAtt; - mColours[ii] = new G4VisAttributes(*visAtt); + fColours2[ii] = new G4VisAttributes(*visAtt); } } @@ -160,14 +160,15 @@ ComputeMaterial(G4VPhysicalVolume* physVol, const G4int iz, if(n++ < 100) G4cout << "Unknown material name " << mateName << " for index " << matIndex << G4endl; - if(mColours.find(matIndex) != mColours.end()) + if(fColours2.find(matIndex) != fColours2.end()) physVol->GetLogicalVolume()->SetVisAttributes( - mColours.find(matIndex)->second); + fColours2.find(matIndex)->second); else physVol->GetLogicalVolume()->SetVisAttributes( fColours.begin()->second); } } + physVol -> GetLogicalVolume()->SetMaterial(mate); } return mate; diff --git a/examples/extended/medical/DICOM/src/DicomPhantomParameterisationColour.cc b/examples/extended/medical/DICOM/src/DicomPhantomParameterisationColour.cc index 84e81a61a3..6a47d7d6fa 100644 --- a/examples/extended/medical/DICOM/src/DicomPhantomParameterisationColour.cc +++ b/examples/extended/medical/DICOM/src/DicomPhantomParameterisationColour.cc @@ -41,7 +41,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4String DicomPhantomParameterisationColour::defaultColorFile = +G4String DicomPhantomParameterisationColour::fDefaultColorFile = DicomHandler::GetDicomDataPath() + "/ColourMap.dat"; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -82,7 +82,7 @@ void DicomPhantomParameterisationColour::ReadColourData(G4String colourFile) G4VisAttributes* visAtt = new G4VisAttributes( colour ); visAtt->SetVisibility(true); fColours[mateName] = visAtt; - mColours[ii] = new G4VisAttributes(*visAtt); + fColours2[ii] = new G4VisAttributes(*visAtt); } } @@ -129,14 +129,15 @@ ComputeMaterial(const G4int copyNo, G4VPhysicalVolume * physVol, if(n++ < 100) G4cout << "Unknown material name " << mateName << " for index " << matIndex << G4endl; - if(mColours.find(matIndex) != mColours.end()) + if(fColours2.find(matIndex) != fColours2.end()) physVol->GetLogicalVolume()->SetVisAttributes( - mColours.find(matIndex)->second); + fColours2.find(matIndex)->second); else physVol->GetLogicalVolume()->SetVisAttributes( fColours.begin()->second); } } + physVol -> GetLogicalVolume()->SetMaterial(mate); } return mate; diff --git a/examples/extended/medical/DICOM/src/DicomRunAction.cc b/examples/extended/medical/DICOM/src/DicomRunAction.cc index b7109b1abb..7142701fb4 100644 --- a/examples/extended/medical/DICOM/src/DicomRunAction.cc +++ b/examples/extended/medical/DICOM/src/DicomRunAction.cc @@ -78,7 +78,7 @@ void DicomRunAction::BeginOfRunAction(const G4Run* aRun) G4RunManager::GetRunManager()->SetRandomNumberStoreDir( G4String("dicom-run-") + std::to_string(aRun->GetRunID())); - int progress = aRun->GetNumberOfEventToBeProcessed() / 100; + G4int progress = aRun->GetNumberOfEventToBeProcessed() / 100; progress = (progress < 1) ? 1 : progress; G4RunManager::GetRunManager()->SetPrintProgress(progress); } @@ -88,8 +88,8 @@ void DicomRunAction::EndOfRunAction(const G4Run* aRun) { G4int nofEvents = aRun->GetNumberOfEvent(); - static double local_total_dose = 0; - double total_dose = 0; + static G4double local_total_dose = 0; + G4double total_dose = 0; const DicomRun* reRun = static_cast(aRun); //--- Dump all scored quantities involved in DicomRun. diff --git a/examples/extended/medical/DICOM/vis.mac b/examples/extended/medical/DICOM/vis.mac index c74334d947..6b319c0604 100644 --- a/examples/extended/medical/DICOM/vis.mac +++ b/examples/extended/medical/DICOM/vis.mac @@ -23,16 +23,18 @@ /vis/verbose errors # # Draw geometry: +/vis/viewer/set/specialMeshRendering +/vis/viewer/set/specialMeshRenderingOption surfaces /vis/drawVolume # # Specify view angle: /vis/viewer/set/viewpointThetaPhi 45. 60. # # Specify zoom value: -/vis/viewer/zoom 5. +#/vis/viewer/zoom 5. # # Specify style (surface or wireframe): -#/vis/viewer/set/style wireframe +/vis/viewer/set/style surface # # Draw coordinate axes: #/vis/scene/add/axes 0 0 0 1 m @@ -72,5 +74,5 @@ #/vis/viewer/flush # /tracking/verbose 1 -/run/beamOn 10 +#/run/beamOn 10 #/vis/viewer/update diff --git a/examples/extended/medical/DICOM2/run.out b/examples/extended/medical/DICOM2/run.out index 79b1aabd15..d6f5fff0ce 100644 --- a/examples/extended/medical/DICOM2/run.out +++ b/examples/extended/medical/DICOM2/run.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -84,6 +84,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -144,6 +146,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -171,7 +174,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -207,8 +210,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -238,8 +240,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -351,10 +353,11 @@ ionIoni: for GenericIon XStype:3 SubType=2 ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 1.4427 us -Max life time (from G4DeexPrecoParameters) 1.4427 us +min MeanLife (from G4NuclideTable) 1 ns +Max life time (from G4DeexPrecoParameters) 1000 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -745,6 +748,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1041,7 +1049,7 @@ Limit excitation energy for Fermi BreakUp 20 MeV Level density (1/MeV) 0.075 Use simple level density model 1 Use discrete excitation energy of the residual 1 -Time limit for long lived isomeres 1.4427 us +Time limit for long lived isomeres 1000 ps Isomer production flag 1 Internal e- conversion flag 1 Store e- internal conversion data 1 @@ -1225,14 +1233,14 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 100 - User=0.030000s Real=0.134506s Sys=0.010000s + User=0.040000s Real=0.050365s Sys=0.010000s [=========================================================== DICOM ===========================================================] --------------------End of Global Run----------------------- The run was 100 events LOCAL TOTAL DOSE : 0 Gy - TOTAL DOSE : 1.52528e-06 Gy + TOTAL DOSE : 1.452e-06 Gy ###### EndOfRunAction ###### ============================================================= Number of event processed : 100 @@ -1255,8 +1263,8 @@ Finished : End of Run Action 0 closed file dicom2-vector.out for dose output --------------------End of Global Run----------------------- The run was 100 events - TOTAL DOSE : 1.52528e-06 [sigma: 1.40313e-09 | error: 0.031827 | coeff: 0.031827 | eff: 1 | fom: 1 | r2int: 0.00101211 | r2eff: 0 | hits: 1197 ] Gy - TOTAL DOSE/Bq-s : 1.52528e-08 [sigma: 1.40313e-11 | error: 0.031827 | coeff: 0.031827 | eff: 1 | fom: 1 | r2int: 0.00101211 | r2eff: 0 | hits: 1197 ] Gy/Bq-s + TOTAL DOSE : 1.452e-06 [sigma: 1.33144e-09 | error: 0.0306329 | coeff: 0.0306329 | eff: 1 | fom: 1 | r2int: 0.000937536 | r2eff: 0 | hits: 1116 ] Gy + TOTAL DOSE/Bq-s : 1.452e-08 [sigma: 1.33144e-11 | error: 0.0306329 | coeff: 0.0306329 | eff: 1 | fom: 1 | r2int: 0.000937536 | r2eff: 0 | hits: 1116 ] Gy/Bq-s Finished : End of Run Action 0 @@ -1265,9 +1273,9 @@ Visualization Manager deleting... G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 10 of which, static: 0 -Dynamic pools deleted: 10 / Total memory freed: 0.044 MB +Dynamic pools deleted: 10 / Total memory freed: 0.041 MB ============================================================ RunManagerKernel is deleted. Good bye :) -[/build/jenkins/workspace/examples/extended/medical/DICOM2/dicom2] Primary execution time: User=8.630000s Real=14.254262s Sys=0.540000s +[/build/jenkins/workspace/examples/extended/medical/DICOM2/dicom2] Primary execution time: User=9.110000s Real=10.825875s Sys=0.800000s diff --git a/examples/extended/medical/GammaTherapy/GammaTherapy.out b/examples/extended/medical/GammaTherapy/GammaTherapy.out index d62692064a..36d3a050d9 100644 --- a/examples/extended/medical/GammaTherapy/GammaTherapy.out +++ b/examples/extended/medical/GammaTherapy/GammaTherapy.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -175,6 +175,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -202,7 +203,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -253,8 +254,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 10 GeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 10 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 10 GeV in 50 bins + Lambda table from 10 eV to 150 keV, 10 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 10 GeV in 48 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 10 GeV CullenGenerator @@ -661,20 +662,20 @@ N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008 Run terminated. Run Summary Number of events processed : 10000 - User=3.500000s Real=3.569560s Sys=0.000000s + User=3.750000s Real=3.775916s Sys=0.000000s Histo: End of run actions are started ======================================================== Number of events 10000 -Average number of e- 32.92 -Average number of gamma 19.57 -Average number of e+ 0.7624 -Average number of steps in the phantom 11.24 -Average number of e- steps in the target 18.11 -Average number of g produced in the target 18.77 -Average number of e- produced in the target 20.85 -Average number of g produced in the phantom 0.4563 -Average number of e- produced in the phantom 5.836 -Total fGamma fluence in front of the phantom 7.909 MeV +Average number of e- 33.09 +Average number of gamma 19.5 +Average number of e+ 0.7681 +Average number of steps in the phantom 11.66 +Average number of e- steps in the target 17.95 +Average number of g produced in the target 18.65 +Average number of e- produced in the target 20.82 +Average number of g produced in the phantom 0.5056 +Average number of e- produced in the phantom 5.975 +Total fGamma fluence in front of the phantom 8.093 MeV ======================================================== @@ -682,7 +683,7 @@ Total fGamma fluence in front of the phantom 7.909 MeV ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={551469840210652686, 931304531749890588, 1559392848246602973, 1589415920349687284, 449137953970971601, 1514188602336070177, 1903842264725045022, 336138728218742688, 1306596764992836420, 2138700843793407392, 1646806847015501266, 479487824669320891, 2077705427316833062, 1027017685125927136, 84651419175896762, 2304104818778394831, 1170786853269476675} counter= 9sumtot= 318162091022011895 +N=17 V[N]={868811246491154990, 305116273861624973, 763889555670262191, 1543227937352160365, 59551185052207865, 490056457312732075, 1169937754278509350, 1519540221460173381, 695242014668347949, 2280252941837865889, 233727860707683078, 1428385833700401411, 1232250928138607945, 1423991102878068020, 2297706300400700002, 1583295553813983302, 1667585771871221555} counter= 8sumtot= 1115824865786152733 --------------------------------------- # G4 kernel has come to Quit state. diff --git a/examples/extended/medical/dna/.README.txt b/examples/extended/medical/dna/.README.txt index 47771b1e88..61126a32f8 100644 --- a/examples/extended/medical/dna/.README.txt +++ b/examples/extended/medical/dna/.README.txt @@ -35,6 +35,8 @@ This directory contains a set of Geant4-DNA examples. - \link ExampleAuNP AuNP \endlink Simulation calculates absorbed dose around AuNP. + - \link Examplejetcounter jetcounter \endlink A setup for simulation of a typical experiment with the Jet Counter nanodosemeter + \section dna_s1 Chemistry - \link ExampleChem1 chem1 \endlink Simple activation of the chemistry module. - \link ExampleChem2 chem2 \endlink Usage of TimeStepAction in the chemistry module. diff --git a/examples/extended/medical/dna/AuNP/AuNP.out b/examples/extended/medical/dna/AuNP/AuNP.out index 7221fa5d48..9754a0af8e 100644 --- a/examples/extended/medical/dna/AuNP/AuNP.out +++ b/examples/extended/medical/dna/AuNP/AuNP.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -65,6 +65,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -92,7 +93,7 @@ Lowest e+e- kinetic energy 1 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -128,8 +129,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 1 De-excitation module ignores cuts 1 @@ -165,8 +165,8 @@ conv: for gamma SubType=14 BuildTable=1 LivermoreConversion : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator diff --git a/examples/extended/medical/dna/CMakeLists.txt b/examples/extended/medical/dna/CMakeLists.txt index 39af704aa0..68a3e2d881 100644 --- a/examples/extended/medical/dna/CMakeLists.txt +++ b/examples/extended/medical/dna/CMakeLists.txt @@ -35,3 +35,4 @@ add_subdirectory(svalue) add_subdirectory(wholeNuclearDNA) add_subdirectory(wvalue) add_subdirectory(AuNP) +add_subdirectory(jetcounter) diff --git a/examples/extended/medical/dna/History b/examples/extended/medical/dna/History index b0a1059eb7..2bafe2570b 100644 --- a/examples/extended/medical/dna/History +++ b/examples/extended/medical/dna/History @@ -4,6 +4,10 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! + +## 2022-10-03 Hoang Tran (exdna-V11-00-02) +- add dna example jetcounter + ## 2022-01-07 Hoang Tran (exdna-V11-00-01) - add dna example moleculardna diff --git a/examples/extended/medical/dna/README b/examples/extended/medical/dna/README index 04a8e24767..530a296c75 100644 --- a/examples/extended/medical/dna/README +++ b/examples/extended/medical/dna/README @@ -86,6 +86,10 @@ This directory contains a set of Geant4-DNA examples. - moleculardna Damage simulation on DNA geometries. + + - jetcounter + A setup for simulation of a typical experiment with the Jet Counter nanodosemeter + See the README page inside each example for more detail. diff --git a/examples/extended/medical/dna/chem1/chem1.out b/examples/extended/medical/dna/chem1/chem1.out index 24285aab0b..d403afdca8 100644 --- a/examples/extended/medical/dna/chem1/chem1.out +++ b/examples/extended/medical/dna/chem1/chem1.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -35,10 +35,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -62,7 +63,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -98,8 +99,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -120,75 +120,307 @@ Use DNA e- solvation model type 11003 ### === Ignore cuts flag: 1 phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:3 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI Region -- -- appears in world volume This region is in the mass world. @@ -517,7 +749,7 @@ ___________________________________ Run terminated. Run Summary Number of events processed : 1 - User=90.530000s Real=91.364775s Sys=0.020000s + User=98.260000s Real=98.974101s Sys=0.020000s G4 kernel has come to Quit state. UserDetectorConstruction deleted. UserPhysicsList deleted. diff --git a/examples/extended/medical/dna/chem2/chem2.out b/examples/extended/medical/dna/chem2/chem2.out index 5c314e8a55..e7ac481d70 100644 --- a/examples/extended/medical/dna/chem2/chem2.out +++ b/examples/extended/medical/dna/chem2/chem2.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -30,10 +30,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -57,7 +58,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -93,8 +94,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -115,75 +115,307 @@ Use DNA e- solvation model type 11003 ### === Ignore cuts flag: 1 phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:3 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI Physics stage ends Number of chemical species involved in reactions = 6 Reaction Reaction Rate [dm3/(mol*s)] Interaction Range for chosen reaction model [nm] diff --git a/examples/extended/medical/dna/chem3/chem3.out b/examples/extended/medical/dna/chem3/chem3.out index c01454700a..a6c7a7cc4b 100644 --- a/examples/extended/medical/dna/chem3/chem3.out +++ b/examples/extended/medical/dna/chem3/chem3.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -85,10 +87,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -112,7 +115,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -148,8 +151,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -170,75 +172,307 @@ Use DNA e- solvation model type 11003 ### === Ignore cuts flag: 1 phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:3 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. End of tracking primary particle, its final energy is :25 meV diff --git a/examples/extended/medical/dna/chem4/History b/examples/extended/medical/dna/chem4/History index 1b6c7789f0..75afc316c3 100644 --- a/examples/extended/medical/dna/chem4/History +++ b/examples/extended/medical/dna/chem4/History @@ -4,6 +4,10 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-09-20 Hoang Tran (chem4-V11-00-05) +- fixed the examples naming conventions violations +- delete unsused function clear() + ## 2022-05-02 Hoang Tran (chem4-V11-00-04) - Add localthread for fUse of G4VMoleculeCounter diff --git a/examples/extended/medical/dna/chem4/chem4.out b/examples/extended/medical/dna/chem4/chem4.out index 3292f9caf6..47d7ad60b4 100644 --- a/examples/extended/medical/dna/chem4/chem4.out +++ b/examples/extended/medical/dna/chem4/chem4.out @@ -1,4 +1,4 @@ -Seed used : 1656510628 +Seed used : 1670383080 Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... ############################################ @@ -12,7 +12,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -38,6 +38,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -168,10 +170,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -195,7 +198,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -231,8 +234,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -253,76 +255,308 @@ Use DNA e- solvation model type 11001 ### === Ignore cuts flag: 1 phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Ritchie1994 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:3 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo #### G4VUserPhysicsList::BuildPhysicsTable() - BuildPhysicsTable(O2) skipped... + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. ### Run 0 starts. @@ -363,7 +597,7 @@ Start event 9 --------------------End of Global Run----------------------- The run has 10 events Number of events recorded by the species scorer = 10 - Total energy deposited in the world volume : 11902 eV + Total energy deposited in the world volume : 11790 eV ------------------------------------------------------------ Graphics systems deleted. diff --git a/examples/extended/medical/dna/chem4/include/PrimaryKiller.hh b/examples/extended/medical/dna/chem4/include/PrimaryKiller.hh index 62f83cd8c0..fafcba8ba9 100644 --- a/examples/extended/medical/dna/chem4/include/PrimaryKiller.hh +++ b/examples/extended/medical/dna/chem4/include/PrimaryKiller.hh @@ -98,7 +98,7 @@ protected: public: virtual void Initialize(G4HCofThisEvent*); virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); + virtual void Clear(); virtual void DrawAll(); virtual void PrintAll(); }; diff --git a/examples/extended/medical/dna/chem4/include/ScoreSpecies.hh b/examples/extended/medical/dna/chem4/include/ScoreSpecies.hh index 2dc9820ac4..1e39f2c21d 100644 --- a/examples/extended/medical/dna/chem4/include/ScoreSpecies.hh +++ b/examples/extended/medical/dna/chem4/include/ScoreSpecies.hh @@ -167,7 +167,6 @@ protected: public: virtual void Initialize(G4HCofThisEvent*); virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); virtual void DrawAll(); virtual void PrintAll(); /** Method used in multithreading mode in order to merge diff --git a/examples/extended/medical/dna/chem4/src/PrimaryKiller.cc b/examples/extended/medical/dna/chem4/src/PrimaryKiller.cc index 5a0284487e..67291a657c 100644 --- a/examples/extended/medical/dna/chem4/src/PrimaryKiller.cc +++ b/examples/extended/medical/dna/chem4/src/PrimaryKiller.cc @@ -143,7 +143,7 @@ G4bool PrimaryKiller::ProcessHits(G4Step* aStep,G4TouchableHistory*) void PrimaryKiller::Initialize(G4HCofThisEvent* /*HCE*/) { - clear(); + Clear(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -154,7 +154,7 @@ void PrimaryKiller::EndOfEvent(G4HCofThisEvent*) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void PrimaryKiller::clear() +void PrimaryKiller::Clear() { fELoss = 0.; } diff --git a/examples/extended/medical/dna/chem4/src/ScoreSpecies.cc b/examples/extended/medical/dna/chem4/src/ScoreSpecies.cc index c985fc9ba8..23386b6947 100644 --- a/examples/extended/medical/dna/chem4/src/ScoreSpecies.cc +++ b/examples/extended/medical/dna/chem4/src/ScoreSpecies.cc @@ -274,16 +274,6 @@ ScoreSpecies::AbsorbResultsFromWorkerScorer(G4VPrimitiveScorer* workerScorer) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void ScoreSpecies::clear() -{ - fEvtMap->clear(); - fNEvent = 0; - fEdep = 0; - fSpeciesInfoPerTime.clear(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ScoreSpecies::DrawAll() {;} diff --git a/examples/extended/medical/dna/chem5/History b/examples/extended/medical/dna/chem5/History index 381a54cdad..3a29dd5679 100644 --- a/examples/extended/medical/dna/chem5/History +++ b/examples/extended/medical/dna/chem5/History @@ -4,6 +4,10 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-09-20 Hoang Tran (chem5-V11-00-02) +- Fixed the examples naming conventions violations +- delete unsused function clear() + ## 2022-05-02 Hoang Tran (chem5-V11-00-01) - Add localthread for fUse of G4VMoleculeCounter diff --git a/examples/extended/medical/dna/chem5/chem5.out b/examples/extended/medical/dna/chem5/chem5.out index cdc8194e06..af1b2757c3 100644 --- a/examples/extended/medical/dna/chem5/chem5.out +++ b/examples/extended/medical/dna/chem5/chem5.out @@ -1,4 +1,4 @@ -Seed used : 1656510642 +Seed used : 1670383081 Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... ############################################ @@ -12,7 +12,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -35,10 +35,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -62,7 +63,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -98,8 +99,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -128,6 +128,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -180,10 +182,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -207,7 +210,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -243,8 +246,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -263,83 +265,310 @@ Use DNA e- solvation model type 11001 DefaultRegionForTheWorld 1 1 0 ### === Auger flag: 1 ### === Ignore cuts flag: 1 -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Ritchie1994 : Emin= 0 eV Emax= 11 eV - DummyModel : Emin= 11 eV Emax= 100 MeV + DummyModel : Emin= 11 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNACPA100ElasticModel : Emin= 0 eV Emax= 250 keV DNAChampionElasticModel : Emin= 250 keV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + UrbanMsc : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:3 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. ### Run 0 starts. diff --git a/examples/extended/medical/dna/chem5/include/PrimaryKiller.hh b/examples/extended/medical/dna/chem5/include/PrimaryKiller.hh index 85770f3a92..5fcc1bcaa7 100644 --- a/examples/extended/medical/dna/chem5/include/PrimaryKiller.hh +++ b/examples/extended/medical/dna/chem5/include/PrimaryKiller.hh @@ -98,7 +98,7 @@ protected: public: virtual void Initialize(G4HCofThisEvent*); virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); + virtual void Clear(); virtual void DrawAll(); virtual void PrintAll(); }; diff --git a/examples/extended/medical/dna/chem5/include/ScoreSpecies.hh b/examples/extended/medical/dna/chem5/include/ScoreSpecies.hh index e917e18ff5..f3ca306cfb 100644 --- a/examples/extended/medical/dna/chem5/include/ScoreSpecies.hh +++ b/examples/extended/medical/dna/chem5/include/ScoreSpecies.hh @@ -123,7 +123,6 @@ protected: public: virtual void Initialize(G4HCofThisEvent*); virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); virtual void DrawAll(); virtual void PrintAll(); /** Method used in multithreading mode in order to merge diff --git a/examples/extended/medical/dna/chem5/src/PrimaryKiller.cc b/examples/extended/medical/dna/chem5/src/PrimaryKiller.cc index 13d141c10e..fcd480a235 100644 --- a/examples/extended/medical/dna/chem5/src/PrimaryKiller.cc +++ b/examples/extended/medical/dna/chem5/src/PrimaryKiller.cc @@ -143,7 +143,7 @@ G4bool PrimaryKiller::ProcessHits(G4Step* aStep,G4TouchableHistory*) void PrimaryKiller::Initialize(G4HCofThisEvent* /*HCE*/) { - clear(); + Clear(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -154,7 +154,7 @@ void PrimaryKiller::EndOfEvent(G4HCofThisEvent*) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void PrimaryKiller::clear() +void PrimaryKiller::Clear() { fELoss = 0.; } diff --git a/examples/extended/medical/dna/chem5/src/ScoreSpecies.cc b/examples/extended/medical/dna/chem5/src/ScoreSpecies.cc index 831ba9e061..f70740934e 100644 --- a/examples/extended/medical/dna/chem5/src/ScoreSpecies.cc +++ b/examples/extended/medical/dna/chem5/src/ScoreSpecies.cc @@ -202,16 +202,6 @@ ScoreSpecies::AbsorbResultsFromWorkerScorer(G4VPrimitiveScorer* workerScorer) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void ScoreSpecies::clear() -{ - fEvtMap->clear(); - fNEvent = 0; - fEdep = 0; - fSpeciesInfoPerTime.clear(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void ScoreSpecies::DrawAll() {;} diff --git a/examples/extended/medical/dna/chem6/.README.txt b/examples/extended/medical/dna/chem6/.README.txt index 913e64b3c0..d7264eab27 100644 --- a/examples/extended/medical/dna/chem6/.README.txt +++ b/examples/extended/medical/dna/chem6/.README.txt @@ -232,10 +232,11 @@ const G4String& moleculeName = thisIsMyMolecule->GetName(); Two root macros can be used: \verbatim -root plotG_time.root +root plotG_time.C # plot G values as a function of time according to the molecular species by importing Species0.root. +# The function (plotG_time()) should have the same name as the file without file extension (plotG_time). -root plotG_LET.root +root plotG_LET.C # plot G values as a function of LET according to the molecular species by importing Species.txt. \endverbatim */ diff --git a/examples/extended/medical/dna/chem6/History b/examples/extended/medical/dna/chem6/History index 4ff8a3d808..b90745a22a 100644 --- a/examples/extended/medical/dna/chem6/History +++ b/examples/extended/medical/dna/chem6/History @@ -4,6 +4,9 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-09-08 Hoang Tran (chem6-V11-00-07) +- Fix ROOT macros for error running of ROOT in Windows + ## 2022-06-10 Sergio Losilla (chem6-V11-00-06) - Added missing headers. diff --git a/examples/extended/medical/dna/chem6/README b/examples/extended/medical/dna/chem6/README index 45b3b57351..55576abaa3 100644 --- a/examples/extended/medical/dna/chem6/README +++ b/examples/extended/medical/dna/chem6/README @@ -230,6 +230,7 @@ Int. J. Model. Simul. Sci . Comput. 1 (2010) 157-178 root plotG_time.C # plot G values as a function of time according to the molecular species by importing Species0.root. + # The function (plotG_time()) should have the same name as the file without file extension (plotG_time). root plotG_LET.C # plot G values as a function of LET according to the molecular species by importing Species.txt. diff --git a/examples/extended/medical/dna/chem6/chem6.out b/examples/extended/medical/dna/chem6/chem6.out index 6de12fc6af..886d657956 100644 --- a/examples/extended/medical/dna/chem6/chem6.out +++ b/examples/extended/medical/dna/chem6/chem6.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -134,10 +134,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -161,7 +162,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -197,8 +198,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -217,82 +217,309 @@ Use DNA e- solvation model type 11003 DefaultRegionForTheWorld 1 1 0 ### === Auger flag: 1 ### === Ignore cuts flag: 1 -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:3 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationExtendedModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI ### Run 0 starts. ### Run 0 starts. --> Event 0 starts. @@ -319,9 +546,9 @@ Number of events recorded by the species scorer = 6 --> Event 0 starts. --------------------End of Global Run----------------------- - The run has 7 events -Number of events recorded by the species scorer = 7 - Total energy deposited in the world volume : 16175 eV + The run has 9 events +Number of events recorded by the species scorer = 9 + Total energy deposited in the world volume : 20775 eV ------------------------------------------------------------ ### Run 3 starts. @@ -329,9 +556,9 @@ Number of events recorded by the species scorer = 7 --> Event 0 starts. --------------------End of Global Run----------------------- - The run has 3 events -Number of events recorded by the species scorer = 3 - Total energy deposited in the world volume : 11445 eV + The run has 4 events +Number of events recorded by the species scorer = 4 + Total energy deposited in the world volume : 15265 eV ------------------------------------------------------------ ### Run 4 starts. @@ -339,9 +566,9 @@ Number of events recorded by the species scorer = 3 --> Event 0 starts. --------------------End of Global Run----------------------- - The run has 4 events -Number of events recorded by the species scorer = 4 - Total energy deposited in the world volume : 24057 eV + The run has 1 events +Number of events recorded by the species scorer = 1 + Total energy deposited in the world volume : 6019.5 eV ------------------------------------------------------------ ### Run 5 starts. @@ -349,9 +576,9 @@ Number of events recorded by the species scorer = 4 --> Event 0 starts. --------------------End of Global Run----------------------- - The run has 4 events -Number of events recorded by the species scorer = 4 - Total energy deposited in the world volume : 32107 eV + The run has 1 events +Number of events recorded by the species scorer = 1 + Total energy deposited in the world volume : 8022.4 eV ------------------------------------------------------------ ### Run 6 starts. diff --git a/examples/extended/medical/dna/chem6/plotG_LET.C b/examples/extended/medical/dna/chem6/plotG_LET.C index 61f4181636..51a70ee537 100644 --- a/examples/extended/medical/dna/chem6/plotG_LET.C +++ b/examples/extended/medical/dna/chem6/plotG_LET.C @@ -1,19 +1,17 @@ +struct SpeciesInfo { - - struct SpeciesInfo - { - SpeciesInfo() - { - } - SpeciesInfo(const SpeciesInfo& right) : - fG(right.fG), - fGerr(right.fGerr), - fLET(right.fLET), - fLETerr(right.fLETerr), - fName(right.fName) - {} - SpeciesInfo& operator=(const SpeciesInfo& right) - { + SpeciesInfo() + { + } + SpeciesInfo(const SpeciesInfo& right) : + fG(right.fG), + fGerr(right.fGerr), + fLET(right.fLET), + fLETerr(right.fLETerr), + fName(right.fName) + {} + SpeciesInfo& operator=(const SpeciesInfo& right) + { if(this == &right) return *this; fG = right.fG; fGerr = right.fGerr; @@ -21,141 +19,145 @@ fLETerr = right.fLETerr; fName = right.fName; return *this; - } + } - std::vector fG; - std::vector fGerr; - std::vector fLET; - std::vector fLETerr; - string fName; - }; + std::vector fG; + std::vector fGerr; + std::vector fLET; + std::vector fLETerr; + string fName; +}; - void Save(); - const char* filetypes[] = { - "PostScript", "*.ps", - "Encapsulated PostScript", "*.eps", - "PDF files", "*.pdf", - "Gif files", "*.gif", - "PNG files", "*.png", - "All files", "*", - 0, 0 - }; +const char* filetypes[] = { + "PostScript", "*.ps", + "Encapsulated PostScript", "*.eps", + "PDF files", "*.pdf", + "Gif files", "*.gif", + "PNG files", "*.png", + "All files", "*", + 0, 0 +}; - std::map speciesInfo; +TGTab *gTab = nullptr; - gROOT->Reset(); - - gROOT->SetStyle("Plain"); - gStyle->SetPalette(1); - gStyle->SetCanvasBorderMode(0); - gStyle->SetFrameBorderMode(0); - gStyle->SetPadTickX(1); - gStyle->SetPadTickY(1); - - TGMainFrame *main = new TGMainFrame(gClient->GetRoot(), 200, 200); - TGTab *fTab = new TGTab(main, 200, 200); - - Int_t ncols, tag, runID; - Double_t LET, LET_sigma, Gvalue, Gvalue_sigma; - string name; - string dummy; - string string_key, string_value; - - ifstream file; - file.open("Species.txt",std::ios::in); - - runID = 0; - - while(1){ - // Read LET values - file >> dummy >> LET >> dummy >> LET_sigma; - if(file.eof()) break; - - std::getline(file,dummy); - - if(!std::getline(file,string_key)) break; - std::istringstream key(string_key); // Read keys (name of molecule) - if(!std::getline(file,string_value)) break; - std::istringstream value(string_value); // Read G value - while(1){ - key >> name >> tag; - value >> Gvalue >> Gvalue_sigma; - if(!key || !value) break; - speciesInfo[tag].fName = name; - speciesInfo[tag].fG.resize(runID+1); - speciesInfo[tag].fGerr.resize(runID+1); - speciesInfo[tag].fLET.resize(runID+1); - speciesInfo[tag].fLETerr.resize(runID+1); - - speciesInfo[tag].fG[runID] = Gvalue; - speciesInfo[tag].fGerr[runID] = Gvalue_sigma; - speciesInfo[tag].fLET[runID] = LET; - speciesInfo[tag].fLETerr[runID] = LET_sigma; - } - runID++; - } - file.close(); - - for(auto it_map : speciesInfo){ - - auto map = it_map.second; - TGraphErrors* gSpecies = new TGraphErrors(map.fG.size(), - map.fLET.data(), - map.fG.data(), - map.fLETerr.data(), - map.fGerr.data()); - - Int_t color = (2+it_map.first)%TColor::GetNumberOfColors(); - if(color == 5 || color == 10 || color == 0) ++color; - - - TGCompositeFrame *tf = fTab->AddTab(map.fName.c_str()); - TGCompositeFrame *frame = new TGCompositeFrame(tf, 60, 60, - kHorizontalFrame); - - tf->AddFrame(frame, new TGLayoutHints(kLHintsExpandX|kLHintsExpandY, - 10,10,10,2)); - - TRootEmbeddedCanvas *c1 = new TRootEmbeddedCanvas(map.fName.c_str(), - frame, 700, 500); - frame->AddFrame(c1, new TGLayoutHints(kLHintsExpandX|kLHintsExpandY, - 10,10,10,2)); - c1->GetCanvas()->SetLogx(); - - TGHorizontalFrame* hframe = new TGHorizontalFrame(tf, 200, 40); - - TGTextButton* save = new TGTextButton(hframe, "&Save as ...", - "Save()"); - hframe->AddFrame(save, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4)); - - TGTextButton *exit = new TGTextButton(hframe, "&Exit ", - "gApplication->Terminate()"); - hframe->AddFrame(exit, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4)); - - tf->AddFrame(hframe, new TGLayoutHints(kLHintsCenterX, 2, 2, 2, 2)); - - gSpecies->SetTitle(map.fName.c_str()); - gSpecies->SetMarkerStyle(20+it_map.first); - gSpecies->SetMarkerColor(color); - gSpecies->GetXaxis()->SetTitle("LET (keV/um)"); - gSpecies->GetXaxis()->SetTitleOffset(1.1); - gSpecies->GetYaxis()->SetTitle("G value (molecules/100 eV)"); - gSpecies->GetYaxis()->SetTitleOffset(1.2); - gSpecies->Draw("AP"); - } - - main->AddFrame(fTab, new TGLayoutHints(kLHintsBottom | kLHintsExpandX | - kLHintsExpandY, 2, 2, 5, 1)); - - main->MapSubwindows(); - main->Resize(); // resize to default size - main->MapWindow(); -} - -void Save(){ +void Save() +{ TGFileInfo fi; fi.fFileTypes = filetypes; new TGFileDialog(gClient->GetRoot(),gClient->GetRoot(),kFDSave,&fi); - gROOT->GetListOfCanvases()->At(fTab->GetCurrent())->SaveAs(fi.fFilename); + gROOT->GetListOfCanvases()->At(gTab->GetCurrent())->SaveAs(fi.fFilename); } + +void plotG_LET() +{ + + std::map speciesInfo; + + gROOT->SetStyle("Plain"); + gStyle->SetPalette(1); + gStyle->SetCanvasBorderMode(0); + gStyle->SetFrameBorderMode(0); + gStyle->SetPadTickX(1); + gStyle->SetPadTickY(1); + + TGMainFrame *main = new TGMainFrame(gClient->GetRoot(), 200, 200); + gTab = new TGTab(main, 200, 200); + + Int_t ncols, tag, runID; + Double_t LET, LET_sigma, Gvalue, Gvalue_sigma; + string name; + string dummy; + string string_key, string_value; + + ifstream file; + file.open("Species.txt",std::ios::in); + + runID = 0; + + while(1) { + // Read LET values + file >> dummy >> LET >> dummy >> LET_sigma; + if (file.eof()) break; + + std::getline(file,dummy); + + if (!std::getline(file,string_key)) break; + std::istringstream key(string_key); // Read keys (name of molecule) + if (!std::getline(file,string_value)) break; + std::istringstream value(string_value); // Read G value + while(1) { + key >> name >> tag; + value >> Gvalue >> Gvalue_sigma; + if (!key || !value) break; + speciesInfo[tag].fName = name; + speciesInfo[tag].fG.resize(runID+1); + speciesInfo[tag].fGerr.resize(runID+1); + speciesInfo[tag].fLET.resize(runID+1); + speciesInfo[tag].fLETerr.resize(runID+1); + + speciesInfo[tag].fG[runID] = Gvalue; + speciesInfo[tag].fGerr[runID] = Gvalue_sigma; + speciesInfo[tag].fLET[runID] = LET; + speciesInfo[tag].fLETerr[runID] = LET_sigma; + } + runID++; + } + file.close(); + + for (auto it_map : speciesInfo) { + + auto map = it_map.second; + TGraphErrors* gSpecies = new TGraphErrors(map.fG.size(), + map.fLET.data(), + map.fG.data(), + map.fLETerr.data(), + map.fGerr.data()); + + Int_t color = (2+it_map.first)%TColor::GetNumberOfColors(); + if (color == 5 || color == 10 || color == 0) ++color; + + + TGCompositeFrame *tf = gTab->AddTab(map.fName.c_str()); + TGCompositeFrame *frame = new TGCompositeFrame(tf, 60, 60, + kHorizontalFrame); + + tf->AddFrame(frame, new TGLayoutHints(kLHintsExpandX|kLHintsExpandY, + 10,10,10,2)); + + TRootEmbeddedCanvas *c1 = new TRootEmbeddedCanvas(map.fName.c_str(), + frame, 700, 500); + frame->AddFrame(c1, new TGLayoutHints(kLHintsExpandX|kLHintsExpandY, + 10,10,10,2)); + c1->GetCanvas()->SetLogx(); + + TGHorizontalFrame* hframe = new TGHorizontalFrame(tf, 200, 40); + + TGTextButton* save = new TGTextButton(hframe, "&Save as ...", + "Save()"); + hframe->AddFrame(save, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4)); + + TGTextButton *exit = new TGTextButton(hframe, "&Exit ", + "gApplication->Terminate()"); + hframe->AddFrame(exit, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4)); + + tf->AddFrame(hframe, new TGLayoutHints(kLHintsCenterX, 2, 2, 2, 2)); + + gSpecies->SetTitle(map.fName.c_str()); + gSpecies->SetMarkerStyle(20+it_map.first); + gSpecies->SetMarkerColor(color); + gSpecies->GetXaxis()->SetTitle("LET (keV/um)"); + gSpecies->GetXaxis()->SetTitleOffset(1.1); + gSpecies->GetYaxis()->SetTitle("G value (molecules/100 eV)"); + gSpecies->GetYaxis()->SetTitleOffset(1.2); + gSpecies->Draw("AP"); + } + + main->AddFrame(gTab, new TGLayoutHints(kLHintsBottom | kLHintsExpandX | + kLHintsExpandY, 2, 2, 5, 1)); + + main->MapSubwindows(); + main->Resize(); // resize to default size + main->MapWindow(); +} + diff --git a/examples/extended/medical/dna/chem6/plotG_time.C b/examples/extended/medical/dna/chem6/plotG_time.C index 2a2d2cdd1d..ca121a51d2 100644 --- a/examples/extended/medical/dna/chem6/plotG_time.C +++ b/examples/extended/medical/dna/chem6/plotG_time.C @@ -1,25 +1,24 @@ +struct SpeciesInfoAOS { - struct SpeciesInfoAOS - { - SpeciesInfoAOS() - { + SpeciesInfoAOS() + { fNEvent = 0; fNumber = 0; fG = 0.; fG2 = 0.; - } + } - SpeciesInfoAOS(const SpeciesInfoAOS& right) // Species A(B); - { + SpeciesInfoAOS(const SpeciesInfoAOS& right) // Species A(B); + { fNEvent = right.fNEvent; fNumber = right.fNumber; fG = right.fG; fG2 = right.fG2; fName = right.fName; - } + } - SpeciesInfoAOS& operator=(const SpeciesInfoAOS& right) // A = B - { + SpeciesInfoAOS& operator=(const SpeciesInfoAOS& right) // A = B + { if(&right == this) return *this; fNEvent = right.fNEvent; fNumber = right.fNumber; @@ -27,34 +26,34 @@ fG2 = right.fG2; fName = right.fName; return *this; - } + } - Int_t fNEvent; - Int_t fNumber; - Double_t fG; - Double_t fG2; - string fName; - }; + Int_t fNEvent; + Int_t fNumber; + Double_t fG; + Double_t fG2; + string fName; +}; - //------------------------------------------------------------------------ +//------------------------------------------------------------------------ - struct SpeciesInfoSOA - { - SpeciesInfoSOA() - { +struct SpeciesInfoSOA +{ + SpeciesInfoSOA() + { fRelatErr = 0; - } + } - SpeciesInfoSOA(const SpeciesInfoSOA& right) : + SpeciesInfoSOA(const SpeciesInfoSOA& right) : fG(right.fG), fGerr(right.fGerr), fTime(right.fTime), fRelatErr(right.fRelatErr), fName(right.fName) - {} + {} - SpeciesInfoSOA& operator=(const SpeciesInfoSOA& right) - { + SpeciesInfoSOA& operator=(const SpeciesInfoSOA& right) + { if(this == &right) return *this; fG = right.fG; fGerr = right.fGerr; @@ -62,171 +61,170 @@ fRelatErr = right.fRelatErr; fName = right.fName; return *this; - } + } - std::vector fG; - std::vector fGerr; - std::vector fTime; - Double_t fRelatErr; - Double_t fMin, fMax; - string fName; - }; + std::vector fG; + std::vector fGerr; + std::vector fTime; + Double_t fRelatErr; + Double_t fMin, fMax; + string fName; +}; - void Save(); - const char* filetypes[] = { - "PostScript", "*.ps", - "Encapsulated PostScript", "*.eps", - "PDF files", "*.pdf", - "Gif files", "*.gif", - "PNG files", "*.png", - "All files", "*", - 0, 0 - }; +const char* filetypes[] = { + "PostScript", "*.ps", + "Encapsulated PostScript", "*.eps", + "PDF files", "*.pdf", + "Gif files", "*.gif", + "PNG files", "*.png", + "All files", "*", + 0, 0 +}; - gROOT->Reset(); +TGTab *gTab = nullptr; - gROOT->SetStyle("Plain"); - gStyle->SetPalette(1); - gStyle->SetCanvasBorderMode(0); - gStyle->SetFrameBorderMode(0); - gStyle->SetPadTickX(1); - gStyle->SetPadTickY(1); - - TGMainFrame *main = new TGMainFrame(gClient->GetRoot(), 200, 200); - TGTab *fTab = new TGTab(main, 200, 200); - - Double_t timeA, sumG, sumG2; - Int_t speciesID, number, nEvent; - char speciesName[500]; - - TFile* file = new TFile; - file = TFile::Open("Species0.root"); - - TTree* tree = (TTree*)file->Get("species"); - tree->SetBranchAddress("speciesID", &speciesID); - tree->SetBranchAddress("number", &number); - tree->SetBranchAddress("nEvent", &nEvent); - tree->SetBranchAddress("speciesName", &speciesName); - tree->SetBranchAddress("time", &timeA); - tree->SetBranchAddress("sumG", &sumG); - tree->SetBranchAddress("sumG2", &sumG2); - - Long64_t nentries = tree->GetEntries(); - - if(nentries == 0) - { - cout << "No entries found in the tree species contained in the file " - << file->GetPath() << endl; - exit(1); - } - - std::map> speciesTimeInfo; - - for (Int_t j=0; j < nentries; j++) - { - tree->GetEntry(j); - - SpeciesInfoAOS& infoAOS = speciesTimeInfo[speciesID][timeA]; - - infoAOS.fNumber += number; - infoAOS.fG += sumG; - infoAOS.fG2 += sumG2; - infoAOS.fNEvent += nEvent; - infoAOS.fName = speciesName; - } - - std::map speciesInfo; - - auto it_SOA = speciesTimeInfo.begin(); - auto end_SOA = speciesTimeInfo.end(); - - for(; it_SOA!=end_SOA;++it_SOA){ - const Int_t _speciesID = it_SOA->first; - SpeciesInfoSOA& info = speciesInfo[_speciesID]; - - auto it2 = it_SOA->second.begin(); - auto end2 = it_SOA->second.end(); - - info.fName = it2->second.fName; - const size_t size2 = it_SOA->second.size(); - info.fG.resize(size2); - info.fGerr.resize(size2); - info.fTime.resize(size2); - - Int_t color = (2+_speciesID)%TColor::GetNumberOfColors(); - if(color == 5 || color == 10 || color == 0) ++color; - - for(int i2 = 0 ;it2!=end2;++it2, ++i2) - { - SpeciesInfoAOS& infoAOS = it2->second; - - Double_t _SumG2 = infoAOS.fG2; - Double_t _MeanG = infoAOS.fG/infoAOS.fNEvent; - Double_t _Gerr = sqrt((_SumG2/infoAOS.fNEvent - pow(_MeanG,2)) - /(infoAOS.fNEvent-1) ); - - info.fG[i2] = _MeanG; - info.fGerr[i2] = _Gerr; - info.fTime[i2] = it2->first; - - info.fRelatErr += _Gerr/(_MeanG + 1e-30); - } - - TGraphErrors* gSpecies = new TGraphErrors(info.fG.size(), - info.fTime.data(), - info.fG.data(), - 0, - info.fGerr.data()); - - TGCompositeFrame *tf = fTab->AddTab(info.fName.c_str()); - TGCompositeFrame *frame = new TGCompositeFrame(tf, 60, 60, - kHorizontalFrame); - - tf->AddFrame(frame, new TGLayoutHints(kLHintsExpandX|kLHintsExpandY, - 10,10,10,2)); - - TRootEmbeddedCanvas *c1 = new TRootEmbeddedCanvas(info.fName.c_str(), - frame, 700, 500); - frame->AddFrame(c1, new TGLayoutHints(kLHintsExpandX|kLHintsExpandY, - 10,10,10,2)); - c1->GetCanvas()->SetLogx(); - - TGHorizontalFrame* hframe = new TGHorizontalFrame(tf, 200, 40); - - TGTextButton* save = new TGTextButton(hframe, "&Save as ...", - "Save()"); - hframe->AddFrame(save, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4)); - - TGTextButton *exit = new TGTextButton(hframe, "&Exit ", - "gApplication->Terminate()"); - hframe->AddFrame(exit, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4)); - - tf->AddFrame(hframe, new TGLayoutHints(kLHintsCenterX, 2, 2, 2, 2)); - - gSpecies->SetTitle(info.fName.c_str()); - gSpecies->SetMarkerStyle(20+_speciesID); - gSpecies->SetMarkerColor(color); - gSpecies->SetLineColor(color); - gSpecies->GetXaxis()->SetTitle("Time (ns)"); - gSpecies->GetXaxis()->SetTitleOffset(1.1); - gSpecies->GetYaxis()->SetTitle("G value (molecules/100 eV)"); - gSpecies->GetYaxis()->SetTitleOffset(1.2); - gSpecies->Draw("ALP"); - } - - main->AddFrame(fTab, new TGLayoutHints(kLHintsBottom | kLHintsExpandX | - kLHintsExpandY, 2, 2, 5, 1)); - - main->MapSubwindows(); - main->Resize(); // resize to default size - main->MapWindow(); +void Save() +{ + TGFileInfo fi; + fi.fFileTypes = filetypes; + new TGFileDialog(gClient->GetRoot(),gClient->GetRoot(),kFDSave,&fi); + gROOT->GetListOfCanvases()->At(gTab->GetCurrent())->SaveAs(fi.fFilename); } -void Save(){ - TGFileInfo fi; - fi.fFileTypes = filetypes; - new TGFileDialog(gClient->GetRoot(),gClient->GetRoot(),kFDSave,&fi); - gROOT->GetListOfCanvases()->At(fTab->GetCurrent())->SaveAs(fi.fFilename); +void plotG_time() +{ + gROOT->SetStyle("Plain"); + gStyle->SetPalette(1); + gStyle->SetCanvasBorderMode(0); + gStyle->SetFrameBorderMode(0); + gStyle->SetPadTickX(1); + gStyle->SetPadTickY(1); + + TGMainFrame *main = new TGMainFrame(gClient->GetRoot(), 200, 200); + gTab = new TGTab(main, 200, 200); + Double_t timeA, sumG, sumG2; + Int_t speciesID, number, nEvent; + char speciesName[500]; + + TFile* file = new TFile; + file = TFile::Open("Species0.root"); + + TTree* tree = (TTree*)file->Get("species"); + tree->SetBranchAddress("speciesID", &speciesID); + tree->SetBranchAddress("number", &number); + tree->SetBranchAddress("nEvent", &nEvent); + tree->SetBranchAddress("speciesName", &speciesName); + tree->SetBranchAddress("time", &timeA); + tree->SetBranchAddress("sumG", &sumG); + tree->SetBranchAddress("sumG2", &sumG2); + + Long64_t nentries = tree->GetEntries(); + + if(nentries == 0) { + cout << "No entries found in the tree species contained in the file " + << file->GetPath() << endl; + exit(1); + } + + std::map> speciesTimeInfo; + + for (Int_t j=0; j < nentries; j++) { + tree->GetEntry(j); + + SpeciesInfoAOS& infoAOS = speciesTimeInfo[speciesID][timeA]; + + infoAOS.fNumber += number; + infoAOS.fG += sumG; + infoAOS.fG2 += sumG2; + infoAOS.fNEvent += nEvent; + infoAOS.fName = speciesName; + } + + std::map speciesInfo; + + auto it_SOA = speciesTimeInfo.begin(); + auto end_SOA = speciesTimeInfo.end(); + + for (; it_SOA!=end_SOA;++it_SOA) { + const Int_t _speciesID = it_SOA->first; + SpeciesInfoSOA& info = speciesInfo[_speciesID]; + + auto it2 = it_SOA->second.begin(); + auto end2 = it_SOA->second.end(); + + info.fName = it2->second.fName; + const size_t size2 = it_SOA->second.size(); + info.fG.resize(size2); + info.fGerr.resize(size2); + info.fTime.resize(size2); + + Int_t color = (2+_speciesID)%TColor::GetNumberOfColors(); + if(color == 5 || color == 10 || color == 0) ++color; + + for (int i2 = 0 ;it2!=end2;++it2, ++i2) { + SpeciesInfoAOS& infoAOS = it2->second; + + Double_t _SumG2 = infoAOS.fG2; + Double_t _MeanG = infoAOS.fG/infoAOS.fNEvent; + Double_t _Gerr = (infoAOS.fNEvent > 1) ? sqrt((_SumG2/infoAOS.fNEvent - pow(_MeanG,2)) + /(infoAOS.fNEvent-1) ) : 0.; + + info.fG[i2] = _MeanG; + info.fGerr[i2] = _Gerr; + info.fTime[i2] = it2->first; + + info.fRelatErr += _Gerr/(_MeanG + 1e-30); + } + + TGraphErrors* gSpecies = new TGraphErrors(info.fG.size(), + info.fTime.data(), + info.fG.data(), + 0, + info.fGerr.data()); + + TGCompositeFrame *tf = gTab->AddTab(info.fName.c_str()); + TGCompositeFrame *frame = new TGCompositeFrame(tf, 60, 60, + kHorizontalFrame); + + tf->AddFrame(frame, new TGLayoutHints(kLHintsExpandX|kLHintsExpandY, + 10,10,10,2)); + + TRootEmbeddedCanvas *c1 = new TRootEmbeddedCanvas(info.fName.c_str(), + frame, 700, 500); + frame->AddFrame(c1, new TGLayoutHints(kLHintsExpandX|kLHintsExpandY, + 10,10,10,2)); + c1->GetCanvas()->SetLogx(); + + TGHorizontalFrame* hframe = new TGHorizontalFrame(tf, 200, 40); + + TGTextButton* save = new TGTextButton(hframe, "&Save as ...", + "Save()"); + hframe->AddFrame(save, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4)); + + TGTextButton *exit = new TGTextButton(hframe, "&Exit ", + "gApplication->Terminate()"); + hframe->AddFrame(exit, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4)); + + tf->AddFrame(hframe, new TGLayoutHints(kLHintsCenterX, 2, 2, 2, 2)); + + gSpecies->SetTitle(info.fName.c_str()); + gSpecies->SetMarkerStyle(20+_speciesID); + gSpecies->SetMarkerColor(color); + gSpecies->SetLineColor(color); + gSpecies->GetXaxis()->SetTitle("Time (ns)"); + gSpecies->GetXaxis()->SetTitleOffset(1.1); + gSpecies->GetYaxis()->SetTitle("G value (molecules/100 eV)"); + gSpecies->GetYaxis()->SetTitleOffset(1.2); + gSpecies->Draw("ALP"); + } + + main->AddFrame(gTab, new TGLayoutHints(kLHintsBottom | kLHintsExpandX | + kLHintsExpandY, 2, 2, 5, 1)); + + main->MapSubwindows(); + main->Resize(); // resize to default size + main->MapWindow(); + } diff --git a/examples/extended/medical/dna/clustering/History b/examples/extended/medical/dna/clustering/History index 8d07a0abfe..43169850d5 100644 --- a/examples/extended/medical/dna/clustering/History +++ b/examples/extended/medical/dna/clustering/History @@ -1,9 +1,14 @@ # Example clustering History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-10-04 Gabriele Cosmo (clustering-V11-00-01) +- Fixed compilation warning on Intel-icx compiler for set but unused variable + in ClusteringAlgo::IncludeUnassociatedPoints(). ## 2021-12-10 Ben Morgan (clustering-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/medical/dna/clustering/clustering.out b/examples/extended/medical/dna/clustering/clustering.out index e1f5340ef3..9f22cb3f4c 100644 --- a/examples/extended/medical/dna/clustering/clustering.out +++ b/examples/extended/medical/dna/clustering/clustering.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -31,6 +31,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -83,10 +85,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -110,7 +113,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -146,8 +149,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -168,75 +170,307 @@ Use DNA e- solvation model type 11003 ### === Ignore cuts flag: 1 phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:3 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. diff --git a/examples/extended/medical/dna/clustering/src/ClusteringAlgo.cc b/examples/extended/medical/dna/clustering/src/ClusteringAlgo.cc index b28cafa860..a4962e12bb 100644 --- a/examples/extended/medical/dna/clustering/src/ClusteringAlgo.cc +++ b/examples/extended/medical/dna/clustering/src/ClusteringAlgo.cc @@ -215,7 +215,6 @@ void ClusteringAlgo::MergeClusters() void ClusteringAlgo::IncludeUnassociatedPoints() { std::vector::iterator itVisitorPt; - int nbPtSansCluster = 0; // Associate all point not in a cluster if possible ( to the first found cluster) for(itVisitorPt = fpSetOfPoints.begin(); itVisitorPt != fpSetOfPoints.end(); @@ -223,7 +222,6 @@ void ClusteringAlgo::IncludeUnassociatedPoints() { if(!(*itVisitorPt)->HasCluster()) { - nbPtSansCluster ++; FindCluster(*itVisitorPt); } } diff --git a/examples/extended/medical/dna/dnadamage1/dnadamage1.out b/examples/extended/medical/dna/dnadamage1/dnadamage1.out index 2c027950e7..467726fe67 100644 --- a/examples/extended/medical/dna/dnadamage1/dnadamage1.out +++ b/examples/extended/medical/dna/dnadamage1/dnadamage1.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -101,10 +103,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -128,7 +131,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -164,8 +167,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -186,75 +188,307 @@ Use DNA e- solvation model type 11003 ### === Ignore cuts flag: 1 phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:3 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI Region -- -- appears in world volume This region is in the mass world. @@ -286,17 +520,17 @@ Start closing geometry. G4GeometryManager::ReportVoxelStats -- Voxel Statistics Total memory consumed for geometry optimisation: 2913 kByte - Total CPU time elapsed for geometry optimisation: 8.8 seconds + Total CPU time elapsed for geometry optimisation: 9.4 seconds Voxelisation: top CPU users: Percent Total CPU System CPU Memory Volume ------- ---------- ---------- -------- ---------- - 99.20 8.70 0.01 2914k VoxelStraight_logic + 99.36 9.32 0.02 2914k VoxelStraight_logic Voxelisation: top memory users: Percent Memory Heads Nodes Pointers Total CPU Volume ------- -------- ------ ------ -------- ---------- ---------- - 100.00 2913k 20884 21735 54614 8.70 VoxelStraight_logic + 100.00 2913k 20884 21735 54614 9.32 VoxelStraight_logic G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. ### Run 0 starts. @@ -404,7 +638,7 @@ At time : 376.29 ps Reaction : Histone^0 (-6454) + H3O^1 (-14525) -> Histone^0 At time : 385.29 ps Reaction : Adenine^0 (-2623) + OH^0 (-14530) -> Damaged_Adenine^0 (-14666) At time : 400.29 ps Reaction : H^0 (-14539) + OH^0 (-14631) -> No product At time : 406.29 ps Reaction : H^0 (-14569) + Histone^0 (-7255) -> Histone^0 (-14667) -At time : 409.29 ps Reaction : H^0 (-14612) + Thymine^0 (-6901) -> Damaged_Thymine^0 (-14668) +At time : 409.29 ps Reaction : Thymine^0 (-6901) + H^0 (-14612) -> Damaged_Thymine^0 (-14668) At time : 461.8 ps Reaction : Histone^0 (-14667) + H^0 (-14559) -> Histone^0 (-14669) At time : 470.8 ps Reaction : H^0 (-14555) + Deoxyribose^0 (-12250) -> Damaged_Deoxyribose^0 (-14670) At time : 556.82 ps Reaction : H^0 (-14597) + OH^0 (-14606) -> No product @@ -420,7 +654,7 @@ At time : 785.45 ps Reaction : Histone^0 (-2449) + H3O^1 (-14534) -> Histone^0 At time : 788.45 ps Reaction : H^0 (-14579) + Deoxyribose^0 (-2065) -> Damaged_Deoxyribose^0 (-14680) At time : 804.05 ps Reaction : OH^0 (-14553) + Thymine^0 (-12208) -> Damaged_Thymine^0 (-14681) At time : 983.44 ps Reaction : OH^0 (-14542) + H^0 (-14620) -> No product -At time : 1.0364 ns Reaction : Histone^0 (-14676) + H_2^0 (-14654) -> Histone^0 (-14682) +At time : 1.0364 ns Reaction : H_2^0 (-14654) + Histone^0 (-14676) -> Histone^0 (-14682) At time : 1.4601 ns Reaction : OH^0 (-14578) + Guanine^0 (-2939) -> Damaged_Guanine^0 (-14683) At time : 1.4701 ns Reaction : H^0 (-14589) + Deoxyribose^0 (-2049) -> Damaged_Deoxyribose^0 (-14684) At time : 1.4901 ns Reaction : H_2^0 (-14562) + Histone^0 (-14674) -> Histone^0 (-14685) @@ -520,7 +754,7 @@ ___________________________________ Run terminated. Run Summary Number of events processed : 2 - User=141.060000s Real=143.023402s Sys=0.080000s + User=130.660000s Real=131.754132s Sys=0.180000s ----> Histograms are saved Graphics systems deleted. diff --git a/examples/extended/medical/dna/dnaphysics/.README.txt b/examples/extended/medical/dna/dnaphysics/.README.txt index 2c38f47583..147e7c94ff 100644 --- a/examples/extended/medical/dna/dnaphysics/.README.txt +++ b/examples/extended/medical/dna/dnaphysics/.README.txt @@ -64,7 +64,14 @@ is activated thanks to the following UI command in dnaphysics.in: /process/em/AddDNARegion World DNA_Opt0 \endverbatim -For now, only the "DNA_Opt0" configuration is allowed. +For now, the "DNA_Opt0 DNA_Opt2 DNA_Opt4 DNA_Opt4a DNA_Opt6 DNA_Opt6a DNA_Opt7" configuration is allowed. + +For allowing enable radioactive decay: + +\verbatim +/dna/test/addPhysics raddecay +\endverbatim + \section dnaphysics_s5 PHYSICS diff --git a/examples/extended/medical/dna/dnaphysics/History b/examples/extended/medical/dna/dnaphysics/History index dde3557b75..2dfd42371d 100644 --- a/examples/extended/medical/dna/dnaphysics/History +++ b/examples/extended/medical/dna/dnaphysics/History @@ -4,6 +4,15 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-07 Hoang Tran (dnaphysics-V11-00-03) +- update README file for radioactive decay + +## 2022-11-04 Vladimir Ivanchenko (dnaphysics-V11-00-02) +- dnaphysics.cc, DetectorConstruction, DetectorMessenger - added + UI command to add different standard EM, DNA physics, and + radioactive decay +- PhysicsList - added possibility to change DNA physics via UI + commands ## 2022-02-28 Vladimir Ivanchenko (dnaphysics-V11-00-01) - dnaphysics.cc - enable visualisation only in interactive mode, diff --git a/examples/extended/medical/dna/dnaphysics/README b/examples/extended/medical/dna/dnaphysics/README index 0dfbe41f60..0ca63685e5 100644 --- a/examples/extended/medical/dna/dnaphysics/README +++ b/examples/extended/medical/dna/dnaphysics/README @@ -63,7 +63,11 @@ is activated thanks to the following UI command in dnaphysics.in: /process/em/AddDNARegion World DNA_Opt0 -For now, only the "DNA_Opt0" configuration is allowed. +For now, the "DNA_Opt0 DNA_Opt2 DNA_Opt4 DNA_Opt4a DNA_Opt6 DNA_Opt6a DNA_Opt7" configuration is allowed. + +For allowing enable radioactive decay: + +/dna/test/addPhysics raddecay ---->4. PHYSICS diff --git a/examples/extended/medical/dna/dnaphysics/dnaphysics.cc b/examples/extended/medical/dna/dnaphysics/dnaphysics.cc index 06a6eeec21..26b7318dd2 100644 --- a/examples/extended/medical/dna/dnaphysics/dnaphysics.cc +++ b/examples/extended/medical/dna/dnaphysics/dnaphysics.cc @@ -61,8 +61,9 @@ int main(int argc, char **argv) { else runManager->SetNumberOfThreads(2); // Set mandatory user initialization classes - runManager->SetUserInitialization(new DetectorConstruction); - runManager->SetUserInitialization(new PhysicsList); + auto physlist = new PhysicsList(); + runManager->SetUserInitialization(new DetectorConstruction(physlist)); + runManager->SetUserInitialization(physlist); // User action initialization runManager->SetUserInitialization(new ActionInitialization()); diff --git a/examples/extended/medical/dna/dnaphysics/dnaphysics.in b/examples/extended/medical/dna/dnaphysics/dnaphysics.in index 6fd75f1d58..193e26a14d 100644 --- a/examples/extended/medical/dna/dnaphysics/dnaphysics.in +++ b/examples/extended/medical/dna/dnaphysics/dnaphysics.in @@ -3,10 +3,8 @@ /control/verbose 2 /run/numberOfThreads 2 # -# use /run/initialize before calling /dna/det/setMat -# in this example, this is done in dnaphysics.cc -#/dna/det/setMat G4_WATER_MODIFIED -/dna/det/setMat G4_WATER +#/dna/test/setMat G4_WATER_MODIFIED +/dna/test/setMat G4_WATER # /process/em/fluo true /process/em/auger true @@ -14,6 +12,7 @@ /process/em/deexcitationIgnoreCut true # /process/em/AddDNARegion World DNA_Opt0 +/dna/test/addPhysics raddecay # /run/initialize # diff --git a/examples/extended/medical/dna/dnaphysics/dnaphysics.out b/examples/extended/medical/dna/dnaphysics/dnaphysics.out index 526a9f7013..5668fd6425 100644 --- a/examples/extended/medical/dna/dnaphysics/dnaphysics.out +++ b/examples/extended/medical/dna/dnaphysics/dnaphysics.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -19,16 +19,14 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo WWW : http://geant4.org/ ************************************************************** -##### Create analysis manager 0x23181f0 +##### Create analysis manager 0x224fe70 Using analysis manager /run/numberOfThreads 2 *** /run/numberOfThreads command is issued in sequential mode. Command is ignored. # -# use /run/initialize before calling /dna/det/setMat -# in this example, this is done in dnaphysics.cc -#/dna/det/setMat G4_WATER_MODIFIED -/dna/det/setMat G4_WATER +#/dna/test/setMat G4_WATER_MODIFIED +/dna/test/setMat G4_WATER /run/geometryModified # /process/em/fluo true @@ -41,6 +39,8 @@ Command is ignored. /run/physicsModified # /process/em/AddDNARegion World DNA_Opt0 +/dna/test/addPhysics raddecay +### PhysicsList::AddPhysics Warning: Physics List is requested # /run/initialize userDetector->Construct() start. @@ -92,6 +92,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -119,7 +120,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -155,8 +156,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -175,10 +175,6 @@ Use DNA e- solvation model type 11003 DefaultRegionForTheWorld 1 1 0 ### === Auger flag: 1 ### === Ignore cuts flag: 1 -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV phot: for gamma SubType=12 BuildTable=0 LambdaPrime table from 200 keV to 1 GeV in 74 bins @@ -198,8 +194,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 1 GeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 1 GeV in 80 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 1 GeV in 76 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 1 GeV CullenGenerator @@ -343,13 +339,17 @@ proton_G4DNAElastic: for proton SubType=51 BuildTable=0 proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV -DNABornExcitationModel : Emin= 500 keV Emax= 1 GeV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + DummyModel : Emin= 300 MeV Emax= 1 GeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNARuddIonisationModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo -DNABornIonisationModel : Emin= 500 keV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 1 GeV +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + DummyModel : Emin= 300 MeV Emax= 1 GeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 @@ -358,13 +358,13 @@ DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 1 GeV msc: for GenericIon SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 100 MeV Emax= 1 GeV + UrbanMsc : Emin= 300 MeV Emax= 1 GeV StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 1 GeV in 140 bins Lambda tables from threshold to 1 GeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== BetheBloch : Emin= 2 MeV Emax= 1 GeV deltaVI @@ -373,10 +373,11 @@ nuclearStopping: for GenericIon SubType=8 BuildTable=0 ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 1.4427 us -Max life time (from G4DeexPrecoParameters) 1.4427 us +min MeanLife (from G4NuclideTable) 1 ns +Max life time (from G4DeexPrecoParameters) 1000 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -395,7 +396,7 @@ DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 1 GeV deltaRudd Fluo msc: for alpha SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 100 MeV Emax= 1 GeV + UrbanMsc : Emin= 300 MeV Emax= 1 GeV StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm ionIoni: for alpha XStype:3 SubType=2 @@ -410,18 +411,20 @@ nuclearStopping: for alpha SubType=8 BuildTable=0 alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - DNAIonElasticModel : Emin= 0 eV Emax= 100 MeV - DummyModel : Emin= 100 MeV Emax= 1 GeV + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 1 GeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 1 GeV +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + DummyModel : Emin= 300 MeV Emax= 1 GeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNARuddIonisationModel : Emin= 0 eV Emax= 100 MeV deltaRudd Fluo - DummyModel : Emin= 100 MeV Emax= 1 GeV +DNARuddIonisationModel : Emin= 0 eV Emax= 300 MeV deltaRudd Fluo + DummyModel : Emin= 300 MeV Emax= 1 GeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 @@ -430,7 +433,7 @@ DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 1 GeV msc: for alpha+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 100 MeV Emax= 1 GeV + UrbanMsc : Emin= 300 MeV Emax= 1 GeV StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm hIoni: for alpha+ XStype:3 SubType=2 @@ -442,18 +445,20 @@ hIoni: for alpha+ XStype:3 SubType=2 alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - DNAIonElasticModel : Emin= 0 eV Emax= 100 MeV - DummyModel : Emin= 100 MeV Emax= 1 GeV + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 1 GeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 1 GeV +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + DummyModel : Emin= 300 MeV Emax= 1 GeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNARuddIonisationModel : Emin= 0 eV Emax= 100 MeV deltaRudd Fluo - DummyModel : Emin= 100 MeV Emax= 1 GeV +DNARuddIonisationModel : Emin= 0 eV Emax= 300 MeV deltaRudd Fluo + DummyModel : Emin= 300 MeV Emax= 1 GeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 @@ -485,18 +490,20 @@ CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 helium_G4DNAElastic: for helium SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - DNAIonElasticModel : Emin= 0 eV Emax= 100 MeV - DummyModel : Emin= 100 MeV Emax= 1 GeV + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 1 GeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 1 GeV +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + DummyModel : Emin= 300 MeV Emax= 1 GeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNARuddIonisationModel : Emin= 0 eV Emax= 100 MeV deltaRudd Fluo - DummyModel : Emin= 100 MeV Emax= 1 GeV +DNARuddIonisationModel : Emin= 0 eV Emax= 300 MeV deltaRudd Fluo + DummyModel : Emin= 300 MeV Emax= 1 GeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 @@ -505,18 +512,20 @@ DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 1 GeV hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - DNAIonElasticModel : Emin= 0 eV Emax= 100 MeV - DummyModel : Emin= 100 MeV Emax= 1 GeV + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 1 GeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 1 GeV +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + DummyModel : Emin= 300 MeV Emax= 1 GeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== -DNARuddIonisationModel : Emin= 0 eV Emax= 100 MeV deltaRudd Fluo - DummyModel : Emin= 100 MeV Emax= 1 GeV +DNARuddIonisationModel : Emin= 0 eV Emax= 300 MeV deltaRudd Fluo + DummyModel : Emin= 300 MeV Emax= 1 GeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 @@ -683,7 +692,7 @@ Setting was ignored. Run terminated. Run Summary Number of events processed : 2 - User=4.280000s Real=4.368119s Sys=0.060000s + User=4.650000s Real=4.792912s Sys=0.110000s ... write file : dna.root - done ... close file : dna.root - done G4 kernel has come to Quit state. diff --git a/examples/extended/medical/dna/dnaphysics/include/DetectorConstruction.hh b/examples/extended/medical/dna/dnaphysics/include/DetectorConstruction.hh index dc53fe1e12..ac0162d04d 100644 --- a/examples/extended/medical/dna/dnaphysics/include/DetectorConstruction.hh +++ b/examples/extended/medical/dna/dnaphysics/include/DetectorConstruction.hh @@ -46,26 +46,25 @@ class G4Region; class DetectorMessenger; class G4LogicalVolume; class G4PVPlacement; +class PhysicsList; class DetectorConstruction : public G4VUserDetectorConstruction { public: - DetectorConstruction(); + DetectorConstruction(PhysicsList*); - virtual ~DetectorConstruction(); - virtual G4VPhysicalVolume* Construct(); + ~DetectorConstruction() override; + G4VPhysicalVolume* Construct() override; - void SetMaterial(G4String); + void SetMaterial(const G4String&); private: - G4Material* fpWaterMaterial; - void DefineMaterials(); - G4VPhysicalVolume* ConstructDetector(); DetectorMessenger* fDetectorMessenger; + G4Material* fpWaterMaterial; G4LogicalVolume* fLogicWorld; G4PVPlacement* fPhysiWorld; }; diff --git a/examples/extended/medical/dna/dnaphysics/include/DetectorMessenger.hh b/examples/extended/medical/dna/dnaphysics/include/DetectorMessenger.hh index 86c2aed0e5..864d7f137b 100644 --- a/examples/extended/medical/dna/dnaphysics/include/DetectorMessenger.hh +++ b/examples/extended/medical/dna/dnaphysics/include/DetectorMessenger.hh @@ -44,20 +44,24 @@ class G4UIdirectory; class G4UIcommand; class G4UIcmdWithAString; class G4UIcmdWithoutParameter; +class PhysicsList; class DetectorMessenger: public G4UImessenger { - public: +public: - DetectorMessenger(DetectorConstruction*); - virtual ~DetectorMessenger(); + DetectorMessenger(DetectorConstruction*, PhysicsList*); + ~DetectorMessenger() override; - virtual void SetNewValue(G4UIcommand*, G4String); + void SetNewValue(G4UIcommand*, G4String) override; - private: +private: - DetectorConstruction* fpDetector; - G4UIcmdWithAString* fpMaterCmd; + DetectorConstruction* fpDetector; + PhysicsList* fpPhysList; + G4UIdirectory* fpDetDir; + G4UIcmdWithAString* fpMaterCmd; + G4UIcmdWithAString* fpPhysCmd; }; #endif diff --git a/examples/extended/medical/dna/dnaphysics/include/PhysicsList.hh b/examples/extended/medical/dna/dnaphysics/include/PhysicsList.hh index bcb246ded1..639639c73b 100644 --- a/examples/extended/medical/dna/dnaphysics/include/PhysicsList.hh +++ b/examples/extended/medical/dna/dnaphysics/include/PhysicsList.hh @@ -45,9 +45,23 @@ class G4VPhysicsConstructor; class PhysicsList: public G4VModularPhysicsList { - public: - PhysicsList(); - virtual ~PhysicsList(); +public: + PhysicsList(); + ~PhysicsList() override; + + void ConstructParticle() override; + void ConstructProcess() override; + + void AddPhysics(const G4String&); + +private: + + G4VPhysicsConstructor* fEmPhysicsList = nullptr; + G4VPhysicsConstructor* fDecayPhysicsList = nullptr; + G4VPhysicsConstructor* fRadDecayPhysicsList = nullptr; + G4VPhysicsConstructor* fEmDNAActivator = nullptr; + + G4String fEmPhysics = ""; }; #endif diff --git a/examples/extended/medical/dna/dnaphysics/src/DetectorConstruction.cc b/examples/extended/medical/dna/dnaphysics/src/DetectorConstruction.cc index 5ea8cfcf44..35eae1757a 100644 --- a/examples/extended/medical/dna/dnaphysics/src/DetectorConstruction.cc +++ b/examples/extended/medical/dna/dnaphysics/src/DetectorConstruction.cc @@ -41,15 +41,16 @@ #include "G4NistManager.hh" #include "G4RunManager.hh" #include "G4LogicalVolumeStore.hh" +#include "PhysicsList.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -DetectorConstruction::DetectorConstruction() : +DetectorConstruction::DetectorConstruction(PhysicsList* ptr) : G4VUserDetectorConstruction(), fpWaterMaterial(nullptr), fLogicWorld(nullptr),fPhysiWorld(nullptr) { // create commands for interactive definition of the detector - fDetectorMessenger = new DetectorMessenger(this); + fDetectorMessenger = new DetectorMessenger(this, ptr); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -61,16 +62,6 @@ DetectorConstruction::~DetectorConstruction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4VPhysicalVolume* DetectorConstruction::Construct() - -{ - if(fPhysiWorld) { return fPhysiWorld; } - DefineMaterials(); - return ConstructDetector(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - void DetectorConstruction::DefineMaterials() { @@ -98,8 +89,12 @@ void DetectorConstruction::DefineMaterials() } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4VPhysicalVolume* DetectorConstruction::ConstructDetector() + +G4VPhysicalVolume* DetectorConstruction::Construct() { + if(fPhysiWorld) { return fPhysiWorld; } + DefineMaterials(); + // WORLD VOLUME G4double worldSizeX = 100 * micrometer; G4double worldSizeY = worldSizeX; @@ -138,7 +133,7 @@ G4VPhysicalVolume* DetectorConstruction::ConstructDetector() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetMaterial(G4String materialChoice) +void DetectorConstruction::SetMaterial(const G4String& materialChoice) { // Search the material by its name G4Material* pttoMaterial = G4NistManager::Instance()->FindOrBuildMaterial( diff --git a/examples/extended/medical/dna/dnaphysics/src/DetectorMessenger.cc b/examples/extended/medical/dna/dnaphysics/src/DetectorMessenger.cc index a873981900..0fdf8ac078 100644 --- a/examples/extended/medical/dna/dnaphysics/src/DetectorMessenger.cc +++ b/examples/extended/medical/dna/dnaphysics/src/DetectorMessenger.cc @@ -35,6 +35,7 @@ #include "DetectorMessenger.hh" #include "DetectorConstruction.hh" +#include "PhysicsList.hh" #include "G4UIdirectory.hh" #include "G4UIcommand.hh" @@ -44,13 +45,23 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) : - G4UImessenger(), fpDetector(Det) +DetectorMessenger::DetectorMessenger(DetectorConstruction* Det, PhysicsList* PL) + : G4UImessenger(), fpDetector(Det), fpPhysList(PL) { - fpMaterCmd = new G4UIcmdWithAString("/dna/det/setMat", this); + fpDetDir = new G4UIdirectory("/dna/test/"); + fpDetDir->SetGuidance("dna test commands"); + + fpMaterCmd = new G4UIcmdWithAString("/dna/test/setMat", this); fpMaterCmd->SetGuidance("Select material of the world."); - fpMaterCmd->SetParameterName("choice", false); + fpMaterCmd->SetParameterName("Material", false); fpMaterCmd->AvailableForStates(G4State_PreInit, G4State_Idle); + fpMaterCmd->SetToBeBroadcasted(false); + + fpPhysCmd = new G4UIcmdWithAString("/dna/test/addPhysics", this); + fpPhysCmd->SetGuidance("Added Physics List"); + fpPhysCmd->SetParameterName("Physics", false); + fpPhysCmd->AvailableForStates(G4State_PreInit); + fpPhysCmd->SetToBeBroadcasted(false); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -58,6 +69,8 @@ DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) : DetectorMessenger::~DetectorMessenger() { delete fpMaterCmd; + delete fpPhysCmd; + delete fpDetDir; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -65,6 +78,7 @@ DetectorMessenger::~DetectorMessenger() void DetectorMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if (command == fpMaterCmd) fpDetector->SetMaterial(newValue); + else if (command == fpPhysCmd) fpPhysList->AddPhysics(newValue); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/dna/dnaphysics/src/PhysicsList.cc b/examples/extended/medical/dna/dnaphysics/src/PhysicsList.cc index 2b30c76f1f..e707434156 100644 --- a/examples/extended/medical/dna/dnaphysics/src/PhysicsList.cc +++ b/examples/extended/medical/dna/dnaphysics/src/PhysicsList.cc @@ -47,7 +47,12 @@ #include "G4EmDNAPhysics_option7.hh" #include "G4EmDNAPhysics_option8.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmStandardPhysics_option3.hh" #include "G4EmStandardPhysics_option4.hh" +#include "G4EmLivermorePhysics.hh" +#include "G4EmPenelopePhysics.hh" + #include "G4DecayPhysics.hh" #include "G4RadioactiveDecayPhysics.hh" @@ -59,35 +64,11 @@ PhysicsList::PhysicsList() : G4VModularPhysicsList() { SetDefaultCutValue(1.0*micrometer); SetVerboseLevel(1); - - // FIRST METHOD TO ACTIVATE Geant4-DNA Physics, - // using a Geant4-DNA Physics constructor only - // - // RegisterPhysics(new G4EmDNAPhysics()); - // or - // RegisterPhysics(new G4EmDNAPhysics_option1()); - // or - // RegisterPhysics(new G4EmDNAPhysics_option2()); - // or - // RegisterPhysics(new G4EmDNAPhysics_option3()); - // or - // RegisterPhysics(new G4EmDNAPhysics_option4()); - // or - // RegisterPhysics(new G4EmDNAPhysics_option5()); - // or - // RegisterPhysics(new G4EmDNAPhysics_option6()); - // or - // RegisterPhysics(new G4EmDNAPhysics_option7()); - - // or SECOND METHOD TO ACTIVATE Geant4-DNA Physics - // (this includes combination with Geant4 EM Physics) - - RegisterPhysics(new G4EmStandardPhysics_option4()); - - RegisterPhysics(new G4DecayPhysics()); - RegisterPhysics(new G4RadioactiveDecayPhysics()); - - RegisterPhysics(new G4EmDNAPhysicsActivator()); + + fEmPhysics = "emstandard_opt4"; + fEmPhysicsList = new G4EmStandardPhysics_option4(); + fDecayPhysicsList = new G4DecayPhysics(); + fEmDNAActivator = new G4EmDNAPhysicsActivator(); G4ProductionCutsTable::GetProductionCutsTable()-> SetEnergyRange(100*eV, 1*GeV); @@ -99,4 +80,93 @@ PhysicsList::PhysicsList() : G4VModularPhysicsList() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysicsList::~PhysicsList() -{} +{ + delete fEmPhysicsList; + delete fEmDNAActivator; + delete fDecayPhysicsList; + delete fRadDecayPhysicsList; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructParticle() +{ + fEmPhysicsList->ConstructParticle(); + fDecayPhysicsList->ConstructParticle(); + fEmDNAActivator->ConstructParticle(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructProcess() +{ + AddTransportation(); + fEmPhysicsList->ConstructProcess(); + if(nullptr != fDecayPhysicsList) fDecayPhysicsList->ConstructProcess(); + if(nullptr != fRadDecayPhysicsList) fRadDecayPhysicsList->ConstructProcess(); + fEmDNAActivator->ConstructProcess(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::AddPhysics(const G4String& name) +{ + if(name == fEmPhysics) { return; } + G4cout << "### PhysicsList::AddPhysics Warning: Physics List <" + << name << "> is requested" << G4endl; + fEmPhysics = name; + if(name == "emstandard_opt0") { + delete fEmPhysicsList; + fEmPhysicsList = new G4EmStandardPhysics(); + } else if(name == "emstandard_opt3") { + delete fEmPhysicsList; + fEmPhysicsList = new G4EmStandardPhysics_option3(); + } else if(name == "emstandard_opt4") { + delete fEmPhysicsList; + fEmPhysicsList = new G4EmStandardPhysics_option4(); + } else if(name == "decay") { + if(nullptr == fDecayPhysicsList) + fDecayPhysicsList = new G4DecayPhysics(); + } else if(name == "raddecay") { + if(nullptr == fRadDecayPhysicsList) + fRadDecayPhysicsList = new G4RadioactiveDecayPhysics(); + } else if(name == "emlivermore") { + delete fEmPhysicsList; + fEmPhysicsList = new G4EmLivermorePhysics(); + } else if(name == "empenelope") { + delete fEmPhysicsList; + fEmPhysicsList = new G4EmPenelopePhysics(); + } else if(name == "DNA_opt0") { + delete fEmPhysicsList; + fEmPhysicsList = new G4EmDNAPhysics(); + } else if(name == "DNA_opt1") { + delete fEmPhysicsList; + fEmPhysicsList = new G4EmDNAPhysics_option1(); + } else if(name == "DNA_opt2") { + delete fEmPhysicsList; + fEmPhysicsList = new G4EmDNAPhysics_option2(); + } else if(name == "DNA_opt3") { + delete fEmPhysicsList; + fEmPhysicsList = new G4EmDNAPhysics_option3(); + } else if(name == "DNA_opt4") { + delete fEmPhysicsList; + fEmPhysicsList = new G4EmDNAPhysics_option4(); + } else if(name == "DNA_opt5") { + delete fEmPhysicsList; + fEmPhysicsList = new G4EmDNAPhysics_option5(); + } else if(name == "DNA_opt6") { + delete fEmPhysicsList; + fEmPhysicsList = new G4EmDNAPhysics_option6(); + } else if(name == "DNA_opt7") { + delete fEmPhysicsList; + fEmPhysicsList = new G4EmDNAPhysics_option7(); + } else if(name == "DNA_opt8") { + delete fEmPhysicsList; + fEmPhysicsList = new G4EmDNAPhysics_option8(); + } else { + G4cout << "### PhysicsList::AddPhysics Warning: Physics List <" + << name << "> is does not exist - the command ignored" + << G4endl; + } +} + diff --git a/examples/extended/medical/dna/dnaphysics/test.in b/examples/extended/medical/dna/dnaphysics/test.in new file mode 100644 index 0000000000..fd6a44d946 --- /dev/null +++ b/examples/extended/medical/dna/dnaphysics/test.in @@ -0,0 +1,31 @@ +/tracking/verbose 0 +/run/verbose 2 +/control/verbose 2 +/run/numberOfThreads 2 +# +# use /run/initialize before calling /dna/det/setMat +# in this example, this is done in dnaphysics.cc +#/dna/test/setMat G4_WATER_MODIFIED +/dna/test/setMat G4_WATER +# +/dna/test/addPhysics DNA_opt0 +/dna/test/addPhysics raddecay +# +/process/em/fluo true +/process/em/auger true +/process/em/augerCascade true +/process/em/deexcitationIgnoreCut true +# +/run/initialize +# +#/gun/particle e- +#/gun/particle proton +#/gun/particle hydrogen +#/gun/particle alpha +#/gun/particle alpha+ +#/gun/particle helium +/gun/particle ion +/gun/ion 14 28 +/gun/energy 100 keV +# +/run/beamOn 2 diff --git a/examples/extended/medical/dna/dnaphysics/test1.in b/examples/extended/medical/dna/dnaphysics/test1.in new file mode 100644 index 0000000000..36cfab9237 --- /dev/null +++ b/examples/extended/medical/dna/dnaphysics/test1.in @@ -0,0 +1,31 @@ +/tracking/verbose 0 +/run/verbose 2 +/control/verbose 2 +#/run/numberOfThreads 1 +# +/dna/test/setMat G4_WATER_MODIFIED +#/dna/test/setMat G4_WATER +# +/dna/test/addPhysics DNA_opt4 +/dna/test/addPhysics raddecay +# +/process/em/fluo true +/process/em/auger true +/process/em/augerCascade true +/process/em/deexcitationIgnoreCut true +# +#/process/em/AddDNARegion World DNA_Opt4 +# +/run/initialize +# +#/gun/particle e- +/gun/particle proton +#/gun/particle hydrogen +#/gun/particle alpha +#/gun/particle alpha+ +#/gun/particle helium +#/gun/particle ion +#/gun/ion 14 28 +/gun/energy 100 keV +# +/run/beamOn 2 diff --git a/examples/extended/medical/dna/dnaphysics/test2.in b/examples/extended/medical/dna/dnaphysics/test2.in new file mode 100644 index 0000000000..e1deaae942 --- /dev/null +++ b/examples/extended/medical/dna/dnaphysics/test2.in @@ -0,0 +1,32 @@ +/tracking/verbose 0 +/run/verbose 2 +/control/verbose 2 +#/run/numberOfThreads 1 +# +#/dna/test/setMat G4_WATER_MODIFIED +/dna/test/setMat G4_WATER +# +/dna/test/addPhysics DNA_opt5 +/dna/test/addPhysics raddecay +# +/process/em/fluo true +/process/em/auger true +/process/em/augerCascade true +/process/em/deexcitationIgnoreCut true +# +/run/initialize +# +#/control/execute vis.mac +# +#/gun/particle e- +#/gun/particle proton +#/gun/particle hydrogen +#/gun/particle alpha +#/gun/particle alpha+ +#/gun/particle helium +/gun/particle ion +/gun/ion 86 220 +/gun/energy 0 keV +# +/run/beamOn 1 +# diff --git a/examples/extended/medical/dna/icsd/.README.txt b/examples/extended/medical/dna/icsd/.README.txt index 2319303b4b..3e867183f0 100644 --- a/examples/extended/medical/dna/icsd/.README.txt +++ b/examples/extended/medical/dna/icsd/.README.txt @@ -1,10 +1,9 @@ - ///\file "medical/dna/icsd/.README.txt" ///\brief Example icsd README page /*! \page Exampleicsd Example icsd -\author Sylvain Meylan , Carmen Villagrasa (a) \n +\author Sylvain Meylan , Yann Perrot, Marcin Pietrzak, Carmen Villagrasa (a) \n (a) carmen.villagrasa _irsn _ fr \n This example is provided by the Geant4-DNA collaboration \n @@ -14,6 +13,8 @@ shall cite the following Geant4-DNA collaboration publications: \n [2] Phys. Med. 31 (2015) 861-874 \n In addition, for this example using DNA-materials cross-sections, please cite: \n [3] Rad. Phys and Chem. 130 (2017) 459-479 \n +For this example using N2 cross-sections, please cite:\n +[4] Phys. Med. 102 (2022) 103-109\n \section icsd_s1 INTRODUCTION @@ -29,11 +30,18 @@ http://geant4-dna.org \section icsd_s2 GEOMETRY SET-UP AND PRIMARY PARTICLES -As indicated in the introduction, the geometry used in this exercise is very simple: a cylinder of 2.3 nanometers diameter and 3.4 nanometers heigh, typical dimensions of a 10 base pairs piece of chromatin that is centered in a cubic world of 10 nanometers side length filled with liquid water. +As indicated in the introduction, the geometry used in this exercise is a cylinder. +Two options are proposed: one nanometric cylinder made of DNA or a macroscopic volume with low nitrogen density. +The selection of the geometry is performed in the macro file: -This cylinder is filled with THF material. The definition of the THF material must be done using the G4String="THF". Currently, other materials are available than also use the G4Strings to be recognized by the model classes "TMP", "PY" or "PU" for the DNA-like materials and "deoxyribose","adenine", "guanine", "thymine" or "cytosine" for the derived DNA materials. +--> /icsd/setGeom dna: a cylinder of 2.3 nanometers diameter and 3.4 nanometers height, typical dimensions of a 10 base pairs piece of chromatin that is centered in a cubic world of 10 nanometers side length filled with liquid water. +This cylinder is filled with THF material. The definition of the THF material must be done using the G4String="THF". Currently, other materials are available than also use the G4Strings to be recognized by the model classes "TMP", "PY" or "PU" for the DNA-like materials and "deoxyribose","adenine", "guanine", "thymine" or "cytosine" for the derived DNA materials. -Primary particles are electrons starting at (-1.15 nanometers, 0,0) (at the cylinder's edge) and initial momentum (1,0,0) +--> /icsd/setGeom nanodosimeter: a cylinder of 10 mm nanometers diameter and 10 nanometers height filled with low pressure nitrogen (0.34 µg/cm3) mimicking the size of a short of segment od DNA of 2.3 nm in both diameter and height +The obtained results can be compared to experimental data from Jet Counter nanodosimeter as shown in Pietrazk et al. +Phys. Med. 102 (2022) 103-109 + +Primary particles are electrons starting at the cylinder's edge) and initial momentum (1,0,0) \section icsd_s3 PHYSICS LIST diff --git a/examples/extended/medical/dna/icsd/History b/examples/extended/medical/dna/icsd/History index 7a05c8f067..13f3ac7786 100644 --- a/examples/extended/medical/dna/icsd/History +++ b/examples/extended/medical/dna/icsd/History @@ -4,6 +4,10 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-02 Y. Perrot (exicsd-V11-00-01) +- Physics list: use of nitrogen material +- Geometry: propose two geometries, nanodosimeter (N2) +and dna (THF) ## 2021-12-10 Ben Morgan (exicsd-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/medical/dna/icsd/README b/examples/extended/medical/dna/icsd/README index 794bf5aea2..d4f34f1636 100644 --- a/examples/extended/medical/dna/icsd/README +++ b/examples/extended/medical/dna/icsd/README @@ -7,7 +7,8 @@ icsd ------- -Authors: Sylvain Meylan et Carmen Villagrasa (IRSN, France) +Authors: Sylvain Meylan, Yann Perrot and Carmen Villagrasa (IRSN, France) + Marcin Pietrzak (NCBJ, Poland) For any question, please contact: carmen.villagrasa@irsn.fr @@ -18,22 +19,33 @@ shall cite the following Geant4-DNA collaboration publications: [2] Phys. Med. 31 (2015) 861-874 In addition, for this example using DNA-materials cross-sections, please cite: [3] Rad. Phys and Chem. 130 (2017) 459-479 +For this example using N2 cross-sections, please cite: +[4] Phys. Med. 102 (2022) 103-109 ---->0. INTRODUCTION. The icsd name of this example stands for: Ionisation Cluster Size Distribution. This example allows the calculation of the distribution concerning the number of ionisations per event in an small cylinder of 2.3 nanometers diameter and 3.4 nanometers heigh, typical dimensions of a 10 base pairs piece of chromatin. It constitutes the first use of new DNA-like material's cross-sections that were experimentally obtained at PTB (Rad. Phys and Chem. 130 (2017) 459-479) for electrons and calculated for protons on THF, TMP, PY and PU materials. -The new physical models corresponding to the DNA materials have recently been implemented in Geant4-DNA thaks to new classes, that allow the use of other materials different from liquid water: G4VDNAModel, G4DNAModelInterface,G4DNADummyModel and other associated classes. +The new physical models corresponding to the DNA materials a,d nitrogen have recently been implemented in Geant4-DNA thaks to new classes, that allow the use of other materials different from liquid water: G4VDNAModel, G4DNAModelInterface,G4DNADummyModel and other associated classes. These new models are further described at: http://geant4-dna.org ---->1. GEOMETRY SET-UP AND PRIMARY PARTICLES -As indicated in the introduction, the geometry used in this exercise is very simple: a cylinder of 2.3 nanometers diameter and 3.4 nanometers heigh, typical dimensions of a 10 base pairs piece of chromatin that is centered in a cubic world of 10 nanometers side length filled with liquid water. -This cylinder is filled with THF material. The definition of the THF material must be done using the G4String="THF". Currently, other materials are available than also use the G4Strings to be recognized by the model classes "TMP", "PY" or "PU" for the DNA-like materials and "deoxyribose","adenine", "guanine", "thymine" or "cytosine" for the derived DNA materials. -Primary particles are electrons starting at (-1.15 nanometers, 0,0) (at the cylinder's edge) and initial momentum (1,0,0) +As indicated in the introduction, the geometry used in this exercise is a cylinder. +Two options are proposed: one nanometric cylinder made of DNA or a macroscopic volume with low nitrogen density. +The selection of the geometry is performed in the macro file: + +--> /icsd/setGeom dna: a cylinder of 2.3 nanometers diameter and 3.4 nanometers height, typical dimensions of a 10 base pairs piece of chromatin that is centered in a cubic world of 10 nanometers side length filled with liquid water. +This cylinder is filled with THF material. The definition of the THF material must be done using the G4String="THF". Currently, other materials are available than also use the G4Strings to be recognized by the model classes "TMP", "PY" or "PU" for the DNA-like materials and "deoxyribose","adenine", "guanine", "thymine" or "cytosine" for the derived DNA materials. + +--> /icsd/setGeom nanodosimeter: a cylinder of 10 mm nanometers diameter and 10 nanometers height filled with low pressure nitrogen (0.34 µg/cm3) mimicking the size of a short of segment od DNA of 2.3 nm in both diameter and height +The obtained results can be compared to experimental data from Jet Counter nanodosimeter as shown in Pietrazk et al. +Phys. Med. 102 (2022) 103-109 + +Primary particles are electrons starting at the cylinder's edge) and initial momentum (1,0,0) ---->2. PHYSICS LIST diff --git a/examples/extended/medical/dna/icsd/icsd.mac b/examples/extended/medical/dna/icsd/icsd.mac index a6a2a02497..da7e8e9528 100644 --- a/examples/extended/medical/dna/icsd/icsd.mac +++ b/examples/extended/medical/dna/icsd/icsd.mac @@ -1,5 +1,7 @@ #/control/execute vis.mac #/tracking/verbose 0 +/icsd/setGeom nanodosimeter +/run/initialize /gun/particle e- /gun/energy 500 eV /run/beamOn 75 diff --git a/examples/extended/medical/dna/icsd/icsd.out b/examples/extended/medical/dna/icsd/icsd.out index 9e33b92b93..00bb7a7ce1 100644 --- a/examples/extended/medical/dna/icsd/icsd.out +++ b/examples/extended/medical/dna/icsd/icsd.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -19,7 +19,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo WWW : http://geant4.org/ ************************************************************** -##### Create analysis manager 0x27a1a40 +##### Create analysis manager 0xfe7400 Using analysis manager e-_G4DNAPTBAugerModel is constructed ======================================================================= @@ -31,6 +31,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -58,7 +59,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 diff --git a/examples/extended/medical/dna/icsd/include/DetectorConstruction.hh b/examples/extended/medical/dna/icsd/include/DetectorConstruction.hh index ce90677c99..137bacfddd 100644 --- a/examples/extended/medical/dna/icsd/include/DetectorConstruction.hh +++ b/examples/extended/medical/dna/icsd/include/DetectorConstruction.hh @@ -51,6 +51,7 @@ #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" #include "G4SolidStore.hh" +#include "DetectorMessenger.hh" class DetectorConstruction : public G4VUserDetectorConstruction { @@ -59,19 +60,23 @@ public: ~DetectorConstruction(); virtual G4VPhysicalVolume* Construct(); + void SetGeometry(const G4String&); private: - G4double fWorldSizeX; - G4double fWorldSizeY; - G4double fWorldSizeZ; - G4VPhysicalVolume* fpPhysiWorld; - G4LogicalVolume* fpLogicWorld; - G4Box* fpSolidWorld; - G4Tubs* fpSolidTarget; - G4Material* fpWaterMaterial; - G4Material* fpTHFMaterial; + G4double fWorldSize = 0; + G4VPhysicalVolume* fpPhysiWorld = nullptr; + G4LogicalVolume* fpLogicWorld = nullptr; + G4Box* fpSolidWorld = nullptr; + G4Material* fpWaterMaterial = nullptr; + G4Material* fpTHFMaterial = nullptr; + G4Material* fpN2Material = nullptr; + + G4String fGeomType = "dna"; void DefineMaterials(); - G4VPhysicalVolume* ConstructDetector(); + G4VPhysicalVolume* ConstructDetector(); + + DetectorMessenger* fDetectorMessenger; + }; #endif diff --git a/source/analysis/management/include/G4FileMessenger.hh b/examples/extended/medical/dna/icsd/include/DetectorMessenger.hh similarity index 67% rename from source/analysis/management/include/G4FileMessenger.hh rename to examples/extended/medical/dna/icsd/include/DetectorMessenger.hh index 4aea3b6732..bf169b40c6 100644 --- a/source/analysis/management/include/G4FileMessenger.hh +++ b/examples/extended/medical/dna/icsd/include/DetectorMessenger.hh @@ -23,42 +23,42 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // - -// The messenger class for File management +// This example is provided by the Geant4-DNA collaboration +// Any report or published results obtained using the Geant4-DNA software +// shall cite the following Geant4-DNA collaboration publication: +// Med. Phys. 37 (2010) 4692-4708 +// The Geant4-DNA web site is available at http://geant4-dna.org // -// It implements commands: -// - /analysis/setFileName name -// - /analysis/setHistoDirName name -// - /analysis/setNtupleDirName name // -// Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr) +/// \file DetectorMessenger.hh +/// \brief Definition of the DetectorMessenger class -#ifndef G4FileMessenger_h -#define G4FileMessenger_h 1 +#ifndef DetectorMessenger_h +#define DetectorMessenger_h 1 -#include "G4UImessenger.hh" #include "globals.hh" +#include "G4UImessenger.hh" -#include - -class G4VAnalysisManager; +class DetectorConstruction; +class G4UIcommand; class G4UIcmdWithAString; -class G4FileMessenger : public G4UImessenger + +class DetectorMessenger: public G4UImessenger { public: - explicit G4FileMessenger(G4VAnalysisManager* manager); - G4FileMessenger() = delete; - virtual ~G4FileMessenger(); + + DetectorMessenger(DetectorConstruction*); + ~DetectorMessenger() override = default; + + virtual void SetNewValue(G4UIcommand*, G4String) override; + + private: + + DetectorConstruction* fDetector = nullptr; + + G4UIcmdWithAString* fGeomCmd = nullptr; - // Methods - virtual void SetNewValue(G4UIcommand* command, G4String value) final; - - G4VAnalysisManager* fManager { nullptr }; ///< Associated class - - std::unique_ptr fSetFileNameCmd; - std::unique_ptr fSetHistoDirNameCmd; - std::unique_ptr fSetNtupleDirNameCmd; }; #endif diff --git a/examples/extended/medical/dna/icsd/src/DetectorConstruction.cc b/examples/extended/medical/dna/icsd/src/DetectorConstruction.cc index 6dfd02527c..1c4a1b4fc0 100644 --- a/examples/extended/medical/dna/icsd/src/DetectorConstruction.cc +++ b/examples/extended/medical/dna/icsd/src/DetectorConstruction.cc @@ -35,20 +35,27 @@ /// \brief Implementation of the DetectorConstruction class #include "DetectorConstruction.hh" +#include "DetectorMessenger.hh" #include "G4SystemOfUnits.hh" #include "G4ProductionCuts.hh" +#include "G4RunManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... DetectorConstruction::DetectorConstruction() -: G4VUserDetectorConstruction(), - fpPhysiWorld(NULL), fpLogicWorld(NULL), fpSolidWorld(NULL) -{} +: G4VUserDetectorConstruction() +{ + // create commands for interactive definition of the detector + fDetectorMessenger = new DetectorMessenger(this); +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... DetectorConstruction::~DetectorConstruction() -{} +{ + delete fDetectorMessenger; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -86,6 +93,9 @@ void DetectorConstruction::DefineMaterials() a = 15.9994*g/mole; G4Element* elO = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a); + a = 14.0067*g/mole; + G4Element* elN = new G4Element(name="Nitrogen" ,symbol="N" , z= 7., a); + // Definition of Tetrahydrofurane (THF) density=1.346*g/cm3; @@ -94,22 +104,46 @@ void DetectorConstruction::DefineMaterials() fpTHFMaterial->AddElement(elC, nAtoms=4); fpTHFMaterial->AddElement(elH, nAtoms=8); fpTHFMaterial->AddElement(elO, nAtoms=1); + +// Definition of Nitrogen in nanodosimetry experiments + + density = 0.34e-6*g/cm3; + + fpN2Material = new G4Material("N2", density, nComponents=1); + fpN2Material->AddElement(elN, nAtoms=2); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + G4VPhysicalVolume* DetectorConstruction::ConstructDetector() { -// WORLD VOLUME + G4double diameter; + G4double highz; + G4Material* targetMaterial; + G4Material* worldMaterial; + + if (fGeomType == "dna"){ + // nanometric geometry + fWorldSize = 20.*nm; + diameter = 2.3*nm; + highz = 3.4*nm; + targetMaterial = fpTHFMaterial; + worldMaterial = fpWaterMaterial; + } else { + // macrometric geometry (experimental target in nanodosimetry) + fWorldSize = 2*cm; + diameter = 1*cm; + highz = 1*cm;; + targetMaterial = fpN2Material; + worldMaterial = fpN2Material; + } - fWorldSizeX = 10*nanometer; - fWorldSizeY = 10*nanometer; - fWorldSizeZ = 10*nanometer; fpSolidWorld = new G4Box("World", //its name - fWorldSizeX/2,fWorldSizeY/2,fWorldSizeZ/2); //its size + fWorldSize/2,fWorldSize/2,fWorldSize/2); //its size fpLogicWorld = new G4LogicalVolume(fpSolidWorld, //its solid - fpWaterMaterial, //its material + worldMaterial, //its material "World"); //its name fpPhysiWorld = new G4PVPlacement(0, //no rotation @@ -120,13 +154,10 @@ G4VPhysicalVolume* DetectorConstruction::ConstructDetector() false, //no boolean operation 0); //copy number - G4double diameter=2.3*nanometer; - G4double highz=3.4*nanometer; + G4Tubs* solidTarget = new G4Tubs("Target",0, diameter/2., highz/2., 0*degree, 360*degree); - fpSolidTarget = new G4Tubs("Target",0, diameter/2., highz/2., 0*degree, 360*degree); - - G4LogicalVolume* logicTarget = new G4LogicalVolume(fpSolidTarget, //its solid - fpTHFMaterial, //its material + G4LogicalVolume* logicTarget = new G4LogicalVolume(solidTarget, //its solid + targetMaterial, //its material "Target"); //its name new G4PVPlacement(0, //no rotation @@ -148,3 +179,14 @@ G4VPhysicalVolume* DetectorConstruction::ConstructDetector() return fpPhysiWorld; } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + void DetectorConstruction::SetGeometry(const G4String& name) + { + fGeomType = name; + + // tell RunManager about changes + G4RunManager::GetRunManager()->GeometryHasBeenModified(); + + } diff --git a/environments/g4py/examples/demos/TestEm0/module/DetectorMessenger.cc b/examples/extended/medical/dna/icsd/src/DetectorMessenger.cc similarity index 66% rename from environments/g4py/examples/demos/TestEm0/module/DetectorMessenger.cc rename to examples/extended/medical/dna/icsd/src/DetectorMessenger.cc index 6fd9b323f4..1ad7dd4ae3 100644 --- a/environments/g4py/examples/demos/TestEm0/module/DetectorMessenger.cc +++ b/examples/extended/medical/dna/icsd/src/DetectorMessenger.cc @@ -23,48 +23,42 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +// This example is provided by the Geant4-DNA collaboration +// Any report or published results obtained using the Geant4-DNA software +// shall cite the following Geant4-DNA collaboration publication: +// Med. Phys. 37 (2010) 4692-4708 +// The Geant4-DNA web site is available at http://geant4-dna.org // -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// +/// \file DetectorMessenger.cc +/// \brief Implementation of the DetectorMessenger class #include "DetectorMessenger.hh" - #include "DetectorConstruction.hh" + #include "G4UIdirectory.hh" +#include "G4UIcommand.hh" +#include "G4UIparameter.hh" #include "G4UIcmdWithAString.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) -:Detector(Det) -{ - testemDir = new G4UIdirectory("/testem/"); - testemDir->SetGuidance("commands specific to this example"); - - detDir = new G4UIdirectory("/testem/det/"); - detDir->SetGuidance("detector construction commands"); - - MaterCmd = new G4UIcmdWithAString("/testem/det/setMat",this); - MaterCmd->SetGuidance("Select material of the box."); - MaterCmd->SetParameterName("choice",false); - MaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); +DetectorMessenger::DetectorMessenger(DetectorConstruction* Det): +G4UImessenger(), fDetector(Det){ + + fGeomCmd = new G4UIcmdWithAString("/icsd/setGeom",this); + fGeomCmd->SetGuidance("Select the geometry: dna or nanodosimeter."); + fGeomCmd->SetParameterName("choice",false); + fGeomCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + fGeomCmd->SetToBeBroadcasted(false); } + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -DetectorMessenger::~DetectorMessenger() -{ - delete MaterCmd; - delete detDir; - delete testemDir; +void DetectorMessenger::SetNewValue(G4UIcommand* command, G4String newValue){ + if (command == fGeomCmd) + fDetector->SetGeometry(newValue); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - if( command == MaterCmd ) - { Detector->SetMaterial(newValue);} -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... \ No newline at end of file diff --git a/examples/extended/medical/dna/icsd/src/PhysicsList.cc b/examples/extended/medical/dna/icsd/src/PhysicsList.cc index e0a7a92cdd..511abbf8aa 100644 --- a/examples/extended/medical/dna/icsd/src/PhysicsList.cc +++ b/examples/extended/medical/dna/icsd/src/PhysicsList.cc @@ -187,11 +187,11 @@ void PhysicsList::ConstructEM() new G4DNASancheExcitationModel(); G4DNAPTBElasticModel* modelDNAPTBElastic = - new G4DNAPTBElasticModel("THF/TMP/PY", particle); + new G4DNAPTBElasticModel("THF/TMP/PY/N2", particle); G4DNAPTBIonisationModel* modelDNAPTBIonisation = - new G4DNAPTBIonisationModel("THF/TMP/PY",particle); + new G4DNAPTBIonisationModel("THF/TMP/PY/N2",particle); G4DNAPTBExcitationModel* modelDNAPTBExcitation = - new G4DNAPTBExcitationModel("THF/TMP/PY",particle); + new G4DNAPTBExcitationModel("THF/TMP/PY/N2",particle); // Register models in the model interface diff --git a/examples/extended/medical/dna/icsd/src/PrimaryGeneratorAction.cc b/examples/extended/medical/dna/icsd/src/PrimaryGeneratorAction.cc index 82e0dc6cdb..3d5f3b3ec0 100644 --- a/examples/extended/medical/dna/icsd/src/PrimaryGeneratorAction.cc +++ b/examples/extended/medical/dna/icsd/src/PrimaryGeneratorAction.cc @@ -36,6 +36,8 @@ #include "PrimaryGeneratorAction.hh" #include "G4SystemOfUnits.hh" +#include "G4Tubs.hh" +#include "G4LogicalVolumeStore.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -46,7 +48,7 @@ PrimaryGeneratorAction::PrimaryGeneratorAction() fpParticleGun = new G4ParticleGun(n_particle); // default gun parameters - // fParticleGun->SetParticleEnergy(500.*eV); + fpParticleGun->SetParticleEnergy(500.*eV); fpParticleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); fpParticleGun->SetParticlePosition(G4ThreeVector(-1.15*nanometer,0.,0)); } @@ -61,5 +63,14 @@ PrimaryGeneratorAction::~PrimaryGeneratorAction() void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { + G4Tubs* targetSolid = dynamic_cast< G4Tubs*>( + G4LogicalVolumeStore::GetInstance()->GetVolume("Target")->GetSolid()); + + if(targetSolid != nullptr) + { + G4double radius = targetSolid->GetOuterRadius(); + fpParticleGun->SetParticlePosition(G4ThreeVector(-radius,0.,0)); + } + fpParticleGun->GeneratePrimaryVertex(anEvent); } diff --git a/examples/extended/medical/dna/jetcounter/.README.txt b/examples/extended/medical/dna/jetcounter/.README.txt new file mode 100644 index 0000000000..ef358f009c --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/.README.txt @@ -0,0 +1,102 @@ + +///\file "medical/dna/jetcounter/.README.txt" +///\brief Example jetcounter README page + +/*! \page Examplejetcounter Example jetcounter + +\author M. Pietrzak (*), M. Mietelska, A. Bancer, A. Rucinski and B. Brzozowska \n +* e-mail:marcin.pietrzak@fuw.edu.pl or marcin.pietrzak@ncbj.gov.pl \n + +This example is provided by the Geant4-DNA collaboration \n +Any report or published results obtained using the Geant4-DNA software \n +shall cite the following Geant4-DNA collaboration publications: \n +[1] Med. Phys. 37 (2010) 4692-4708 \n +[2] Phys. Med. 31 (2015) 861-874 \n +In addition, for this example, please cite: \n +[3] M. Pietrzak et al 2021 Phys. Med. Biol. 66 225008 (doi: 10.1088/1361-6560/ac33eb). \n + +\section jetcounter_s1 INTRODUCTION + +The jetcounter example provides a setup for simulation of a typical experiment with the Jet Counter nanodosemeter. + +This example allows the calculation of the ionisation cluster size distribution (ICSD) (the number of ionisations per projectile) +in a real sized cylindrical interaction volume (IV) of the Jet Counter device. + +The results of each of the simulation are provided in the plain text format. +Each thread produces its own output file. + +Each row in the output file consist information from a single event, where single primary particle (projectile) was generated. +Each row contains 4 numbers (columns): + -# Ionisation cluster size. + -# Initial energy of the projectile. + -# Interaction energy of the projectile. + -# Final energy of the projectile. + +Geometry visualization is available through vis.mac file. + +Script written in Python is provided for visualization of the results. + + +\section jetcounter_s2 GEOMETRY SET-UP + +- The height of the interaction volume (IV) is equal to 20 mm and its diameter is equal to 10 mm. +- The beam axis enters the IV perpendicularly to its axis of rotation, 5 mm from the top. +- The IV is filled with liquid water material (G4_WATER), but its density is set to 0.45 µg/cm³, +which corresponds to the nitrogen gas density in real experimental conditions. For details see [3]. +- The beam divergence is restricted by a cylindrical collimator (3 mm in diameter, 23 mm in length) adjacent to the source. +- There is a wall around the IV in the form of a cylinder opened on both ends. The wall thickness is 0.98 mg/cm² (7 µm). +- The wall is composed of two layers: + * outer layer is made of Mylar, 0.96 mg/cm² in thickness; + * inner layer is made of liquid water (G4_WATER), 0.02 mg/cm² in thickness. +- There is a silicon (trigger) detector in the form of a thin disk placed behind the IV. + + +\section jetcounter_s3 PRIMARY PARTICLES + +If the beam energy is set to any positive value, the beam is mono-energetic with the given energy. +If the beam energy is set to -1 (default value), the energy spectrum file is used. +The energy spectrum of the beam is based on experimental data. Its mean energy is 4.6 MeV, +which is the energy of alpha particles from gold-plated americium (241-Am) source. +This source is chosen in the primaries.in macro file. + + +\section jetcounter_s4 PHYSICS LIST + +The PhysicsList used in this example show how to combine Geant4-DNA physics and standard physics in different regions +using the G4EmDNAPhysicsActivator. +-# G4EmDNAPhysics is active in the IV and inner layer of the wall (both made of G4_WATER). +-# G4EmLivermorePhysics is active in other parts of the setup. + +The G4DNAPhysics_option is chosen in the init_phys.in macro file. Hence, it can be changed without the need of recompilation. + + +\section jetcounter_s5 SET UP + +Make sure G4LEDATA points to the low energy electromagnetic data files. + +\section jetcounter_s6 HOW TO RUN THE EXAMPLE + +For the visualization: + +\verbatim +./jetcounter vis +\endverbatim + +For the complete simulation: + +\verbatim +./jetcounter run +\endverbatim + +In run.mac macro file will read init_phys.in and primaries.in. + +However, it is recommended to first increase the number of simulated events in the run.mac file to at least 4000. + +To produce figures from simulation results + (requires numpy and matplotlib Python libraries): + + \verbatim + python3 plot.py +\endverbatim + +*/ \ No newline at end of file diff --git a/examples/extended/medical/dna/jetcounter/CMakeLists.txt b/examples/extended/medical/dna/jetcounter/CMakeLists.txt new file mode 100644 index 0000000000..d12af9fd1d --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 3.16...3.21) +project(jetcounter) + +# GEANT4 core +find_package(Geant4 REQUIRED ui_all vis_all) +include(${Geant4_USE_FILE}) +include_directories(${PROJECT_SOURCE_DIR}/include) + +# root +find_package(ROOT) +include_directories(${ROOT_INCLUDE_DIRS}) + + +set(CMAKE_BUILD_TYPE release) + +# User code +file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) +file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) + +add_executable(jetcounter jetcounter.cc ${sources} ${headers}) +target_link_libraries(jetcounter ${Geant4_LIBRARIES}) +target_link_libraries(jetcounter ${ROOT_LIBRARIES}) + +set(OTHERS + init_phys.in primaries.in run.mac vis.mac + energy.spectrum + plot.py) + +foreach(_other ${OTHERS}) + configure_file( + ${PROJECT_SOURCE_DIR}/${_other} + ${PROJECT_BINARY_DIR}/${_other} + COPYONLY + ) +endforeach() diff --git a/examples/extended/medical/dna/jetcounter/History b/examples/extended/medical/dna/jetcounter/History new file mode 100644 index 0000000000..743a6aff47 --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/History @@ -0,0 +1,14 @@ +# Example mfp History + +See `CONTRIBUTING.rst` for details of **required** info/format for each entry, +which **must** added in reverse chronological order (newest at the top). It must **not** +be used as a substitute for writing good git commit messages! + + +## 2022-11-09 I. Hrivnacova (jetcounter-V11-00-01) +- Fixed Doxygen documentation + +## 2022-10-03 Hoang Tran (jetcounter-V11-00-00) +- intial tag + + diff --git a/examples/extended/medical/dna/jetcounter/README b/examples/extended/medical/dna/jetcounter/README new file mode 100644 index 0000000000..9e0e8246dc --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/README @@ -0,0 +1,95 @@ +------------------------------------------------------------------- + + ========================================================= + Geant4 - Jet Counter nanodosemeter example + ========================================================= + + README file + ---------------------- + +Authors: M. Pietrzak, M. Mietelska, A. Bancer, A. Rucinski and B. Brzozowska +For any question, please contact the developer: +marcin.pietrzak@fuw.edu.pl or marcin.pietrzak@ncbj.gov.pl + +This example is provided by the Geant4-DNA collaboration +Any report or published results obtained using the Geant4-DNA software +shall cite the following Geant4-DNA collaboration publications: +[1] Med. Phys. 37 (2010) 4692-4708 +[2] Phys. Med. 31 (2015) 861-874 +In addition, for this example, please cite: +[3] M. Pietrzak et al 2021 Phys. Med. Biol. 66 225008 (doi: 10.1088/1361-6560/ac33eb). + +----> 0. INTRODUCTION + +The jetcounter example provides a setup for simulation of a typical experiment with the Jet Counter nanodosemeter. + +This example allows the calculation of the ionisation cluster size distribution (ICSD) (the number of ionisations per projectile) +in a real sized cylindrical interaction volume (IV) of the Jet Counter device. + +The results of each of the simulation are provided in the plain text format. +Each thread produces its own output file. + +Each row in the output file consist information from a single event, where single primary particle (projectile) was generated. +Each row contains 4 numbers (columns): + 1. Ionisation cluster size. + 2. Initial energy of the projectile. + 3. Interaction energy of the projectile. + 4. Final energy of the projectile. + +Geometry visualization is available through vis.mac file. + +Script written in Python is provided for visualization of the results. + + +----> 1. GEOMETRY SET-UP + +- The height of the interaction volume (IV) is equal to 20 mm and its diameter is equal to 10 mm. +- The beam axis enters the IV perpendicularly to its axis of rotation, 5 mm from the top. +- The IV is filled with liquid water material (G4_WATER), but its density is set to 0.45 µg/cm³, +which corresponds to the nitrogen gas density in real experimental conditions. For details see [3]. +- The beam divergence is restricted by a cylindrical collimator (3 mm in diameter, 23 mm in length) adjacent to the source. +- There is a wall around the IV in the form of a cylinder opened on both ends. The wall thickness is 0.98 mg/cm² (7 µm). +- The wall is composed of two layers: + * outer layer is made of Mylar, 0.96 mg/cm² in thickness; + * inner layer is made of liquid water (G4_WATER), 0.02 mg/cm² in thickness. +- There is a silicon (trigger) detector in the form of a thin disk placed behind the IV. + + +----> 2. PRIMARY PARTICLES + +If the beam energy is set to any positive value, the beam is mono-energetic with the given energy. +If the beam energy is set to -1 (default value), the energy spectrum file is used. +The energy spectrum of the beam is based on experimental data. Its mean energy is 4.6 MeV, +which is the energy of alpha particles from gold-plated americium (241-Am) source. +This source is chosen in the primaries.in macro file. + + +----> 3. PHYSICS LIST + +The PhysicsList used in this example show how to combine Geant4-DNA physics and standard physics in different regions +using the G4EmDNAPhysicsActivator. +1. G4EmDNAPhysics is active in the IV and inner layer of the wall (both made of G4_WATER). +2. G4EmLivermorePhysics is active in other parts of the setup. + +The G4DNAPhysics_option is chosen in the init_phys.in macro file. Hence, it can be changed without the need of recompilation. + + +---->4. SET UP + +Make sure G4LEDATA points to the low energy electromagnetic data files. + +---->5. HOW TO RUN THE EXAMPLE + + For the visualization: + ./jetcounter vis + + For the complete simulation: + ./jetcounter run + + In run.mac macro file will read init_phys.in and primaries.in. + + However, it is recommended to first increase the number of simulated events in the run.mac file to at least 4000. + + To produce figures from simulation results + (requires numpy and matplotlib Python libraries): + python3 plot.py diff --git a/examples/extended/medical/dna/jetcounter/energy.spectrum b/examples/extended/medical/dna/jetcounter/energy.spectrum new file mode 100644 index 0000000000..4d02850572 --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/energy.spectrum @@ -0,0 +1,2082 @@ +2079 +0.000936 +3.5 +0 +11 +22 +33 +44 +56 +68 +80 +92 +104 +117 +130 +143 +155 +167 +179 +190 +201 +211 +222 +234 +246 +259 +272 +284 +297 +309 +321 +335 +347 +359 +371 +383 +395 +408 +420 +432 +445 +459 +473 +487 +500 +513 +528 +543 +557 +571 +584 +598 +612 +624 +637 +649 +661 +674 +687 +700 +714 +726 +739 +752 +764 +775 +787 +798 +811 +825 +839 +853 +868 +883 +899 +914 +928 +942 +956 +969 +982 +995 +1007 +1020 +1033 +1046 +1059 +1072 +1085 +1098 +1111 +1125 +1139 +1153 +1167 +1181 +1195 +1209 +1222 +1235 +1248 +1262 +1276 +1290 +1302 +1315 +1328 +1340 +1352 +1366 +1380 +1396 +1411 +1426 +1441 +1456 +1469 +1482 +1494 +1507 +1520 +1534 +1547 +1560 +1574 +1587 +1599 +1612 +1624 +1637 +1650 +1663 +1677 +1691 +1705 +1720 +1734 +1748 +1761 +1774 +1788 +1802 +1816 +1829 +1844 +1859 +1874 +1888 +1901 +1914 +1927 +1940 +1953 +1966 +1979 +1992 +2006 +2020 +2035 +2050 +2065 +2080 +2094 +2106 +2118 +2130 +2142 +2154 +2166 +2178 +2192 +2206 +2220 +2234 +2247 +2260 +2274 +2286 +2299 +2313 +2325 +2337 +2350 +2363 +2378 +2392 +2406 +2421 +2435 +2451 +2466 +2479 +2492 +2505 +2519 +2532 +2545 +2558 +2571 +2585 +2600 +2614 +2628 +2641 +2654 +2667 +2680 +2693 +2707 +2721 +2735 +2748 +2761 +2774 +2787 +2799 +2811 +2824 +2837 +2850 +2863 +2875 +2888 +2901 +2915 +2930 +2945 +2959 +2973 +2987 +3001 +3014 +3026 +3038 +3051 +3064 +3077 +3091 +3106 +3120 +3135 +3150 +3164 +3177 +3189 +3199 +3210 +3222 +3235 +3250 +3267 +3285 +3305 +3325 +3342 +3358 +3373 +3387 +3400 +3412 +3424 +3438 +3452 +3465 +3479 +3494 +3509 +3524 +3539 +3554 +3570 +3585 +3599 +3615 +3629 +3643 +3658 +3672 +3687 +3702 +3717 +3733 +3749 +3765 +3781 +3798 +3815 +3831 +3846 +3863 +3880 +3897 +3914 +3932 +3950 +3969 +3986 +4003 +4020 +4037 +4054 +4071 +4088 +4106 +4124 +4142 +4160 +4177 +4194 +4210 +4226 +4242 +4257 +4272 +4286 +4300 +4315 +4329 +4344 +4358 +4372 +4387 +4402 +4419 +4437 +4453 +4469 +4486 +4503 +4521 +4537 +4554 +4572 +4590 +4606 +4622 +4637 +4653 +4668 +4681 +4695 +4711 +4727 +4742 +4757 +4773 +4789 +4804 +4819 +4834 +4851 +4867 +4882 +4897 +4913 +4929 +4945 +4960 +4975 +4991 +5007 +5023 +5038 +5054 +5070 +5085 +5100 +5116 +5132 +5149 +5166 +5182 +5199 +5216 +5232 +5247 +5263 +5278 +5294 +5309 +5323 +5337 +5351 +5365 +5379 +5392 +5406 +5420 +5434 +5449 +5465 +5481 +5498 +5515 +5532 +5549 +5565 +5582 +5598 +5615 +5632 +5648 +5663 +5678 +5694 +5710 +5726 +5742 +5759 +5777 +5796 +5813 +5831 +5848 +5866 +5885 +5902 +5919 +5937 +5954 +5971 +5987 +6003 +6019 +6036 +6052 +6068 +6084 +6100 +6117 +6134 +6152 +6171 +6191 +6211 +6231 +6250 +6269 +6288 +6306 +6323 +6341 +6360 +6380 +6399 +6418 +6439 +6460 +6482 +6503 +6523 +6544 +6565 +6586 +6606 +6625 +6645 +6666 +6688 +6709 +6731 +6753 +6776 +6798 +6822 +6845 +6870 +6894 +6918 +6942 +6967 +6990 +7012 +7033 +7054 +7076 +7097 +7117 +7138 +7159 +7180 +7202 +7225 +7250 +7275 +7299 +7322 +7346 +7369 +7391 +7412 +7433 +7455 +7477 +7498 +7518 +7538 +7558 +7578 +7597 +7617 +7637 +7659 +7681 +7703 +7726 +7748 +7771 +7796 +7820 +7844 +7869 +7893 +7919 +7944 +7968 +7991 +8015 +8038 +8062 +8086 +8110 +8135 +8161 +8186 +8211 +8235 +8259 +8284 +8307 +8328 +8350 +8373 +8396 +8419 +8441 +8464 +8488 +8511 +8533 +8556 +8579 +8602 +8627 +8652 +8678 +8704 +8729 +8755 +8781 +8807 +8834 +8861 +8887 +8912 +8938 +8965 +8993 +9021 +9049 +9079 +9110 +9142 +9172 +9199 +9227 +9254 +9280 +9305 +9329 +9354 +9379 +9405 +9432 +9461 +9490 +9520 +9550 +9580 +9610 +9639 +9667 +9696 +9725 +9754 +9784 +9815 +9845 +9876 +9907 +9937 +9967 +9998 +10027 +10058 +10089 +10120 +10151 +10181 +10212 +10246 +10280 +10313 +10347 +10382 +10418 +10454 +10490 +10525 +10560 +10596 +10631 +10667 +10702 +10736 +10770 +10806 +10841 +10876 +10911 +10947 +10985 +11023 +11061 +11100 +11137 +11177 +11216 +11254 +11292 +11329 +11366 +11406 +11444 +11481 +11519 +11557 +11597 +11636 +11675 +11716 +11758 +11800 +11841 +11882 +11924 +11967 +12009 +12050 +12092 +12136 +12182 +12229 +12274 +12320 +12367 +12415 +12461 +12506 +12550 +12596 +12641 +12687 +12732 +12779 +12826 +12873 +12923 +12975 +13030 +13083 +13135 +13188 +13243 +13297 +13350 +13403 +13460 +13519 +13577 +13634 +13689 +13743 +13795 +13846 +13895 +13946 +13998 +14052 +14107 +14162 +14218 +14274 +14329 +14384 +14437 +14489 +14542 +14594 +14646 +14699 +14750 +14805 +14861 +14918 +14978 +15040 +15103 +15169 +15235 +15300 +15363 +15423 +15483 +15542 +15603 +15665 +15729 +15798 +15868 +15938 +16008 +16075 +16141 +16208 +16275 +16344 +16415 +16489 +16565 +16642 +16719 +16795 +16871 +16945 +17022 +17102 +17180 +17259 +17338 +17420 +17504 +17588 +17669 +17752 +17834 +17917 +18000 +18082 +18164 +18249 +18335 +18423 +18511 +18600 +18689 +18777 +18866 +18955 +19045 +19135 +19223 +19310 +19400 +19489 +19579 +19670 +19764 +19862 +19966 +20071 +20173 +20276 +20379 +20479 +20577 +20673 +20767 +20863 +20963 +21064 +21169 +21277 +21385 +21495 +21607 +21716 +21823 +21928 +22031 +22133 +22237 +22341 +22449 +22561 +22677 +22794 +22915 +23036 +23158 +23281 +23405 +23529 +23656 +23783 +23912 +24042 +24172 +24302 +24435 +24569 +24706 +24841 +24978 +25117 +25255 +25391 +25526 +25658 +25795 +25932 +26073 +26217 +26362 +26511 +26665 +26820 +26974 +27125 +27278 +27434 +27588 +27745 +27904 +28067 +28229 +28391 +28555 +28721 +28886 +29049 +29213 +29384 +29552 +29720 +29890 +30061 +30235 +30411 +30587 +30768 +30948 +31127 +31306 +31489 +31672 +31853 +32036 +32224 +32415 +32608 +32802 +33002 +33206 +33413 +33621 +33834 +34050 +34262 +34474 +34687 +34903 +35121 +35341 +35563 +35791 +36019 +36253 +36487 +36721 +36957 +37192 +37430 +37670 +37910 +38147 +38389 +38629 +38871 +39113 +39357 +39600 +39849 +40099 +40356 +40613 +40872 +41138 +41404 +41669 +41937 +42202 +42474 +42749 +43022 +43301 +43587 +43874 +44165 +44455 +44748 +45040 +45331 +45623 +45917 +46211 +46511 +46811 +47115 +47420 +47730 +48041 +48362 +48679 +49001 +49327 +49656 +49987 +50318 +50644 +50975 +51306 +51636 +51974 +52312 +52656 +53003 +53352 +53704 +54061 +54424 +54789 +55156 +55531 +55913 +56297 +56680 +57063 +57449 +57837 +58225 +58609 +58994 +59386 +59785 +60182 +60582 +60983 +61393 +61811 +62232 +62640 +63050 +63464 +63883 +64300 +64719 +65138 +65565 +66005 +66450 +66899 +67358 +67826 +68305 +68798 +69293 +69788 +70281 +70772 +71255 +71741 +72225 +72714 +73208 +73713 +74222 +74736 +75255 +75773 +76291 +76808 +77332 +77856 +78385 +78911 +79445 +79979 +80522 +81058 +81604 +82160 +82723 +83282 +83842 +84405 +84975 +85546 +86119 +86697 +87283 +87880 +88483 +89082 +89690 +90301 +90908 +91522 +92142 +92764 +93394 +94023 +94653 +95287 +95916 +96546 +97175 +97808 +98444 +99086 +99731 +100390 +101060 +101736 +102419 +103108 +103795 +104484 +105175 +105866 +106561 +107261 +107966 +108680 +109405 +110134 +110866 +111605 +112348 +113092 +113846 +114596 +115358 +116124 +116892 +117660 +118431 +119201 +119984 +120767 +121555 +122343 +123137 +123932 +124726 +125515 +126299 +127086 +127872 +128670 +129483 +130305 +131144 +131994 +132847 +133710 +134569 +135419 +136270 +137124 +137978 +138837 +139699 +140570 +141449 +142338 +143228 +144114 +144997 +145888 +146776 +147672 +148574 +149482 +150399 +151330 +152270 +153215 +154168 +155108 +156051 +156995 +157932 +158866 +159803 +160736 +161677 +162621 +163574 +164540 +165507 +166480 +167464 +168451 +169437 +170433 +171437 +172456 +173482 +174502 +175531 +176561 +177581 +178600 +179619 +180643 +181673 +182705 +183745 +184793 +185842 +186898 +187964 +189043 +190125 +191215 +192310 +193413 +194522 +195620 +196713 +197809 +198909 +200023 +201136 +202253 +203370 +204497 +205639 +206777 +207913 +209057 +210194 +211345 +212497 +213647 +214805 +215958 +217109 +218269 +219430 +220590 +221754 +222910 +224078 +225263 +226448 +227642 +228846 +230037 +231246 +232461 +233669 +234883 +236086 +237279 +238483 +239678 +240873 +242077 +243292 +244520 +245759 +247002 +248254 +249507 +250758 +251995 +253231 +254473 +255718 +256963 +258211 +259468 +260731 +261991 +263249 +264507 +265766 +267015 +268262 +269514 +270777 +272047 +273332 +274628 +275941 +277251 +278551 +279848 +281149 +282443 +283731 +285022 +286316 +287611 +288909 +290197 +291480 +292762 +294040 +295325 +296613 +297907 +299205 +300519 +301843 +303162 +304475 +305790 +307108 +308429 +309743 +311046 +312347 +313642 +314940 +316232 +317523 +318818 +320120 +321423 +322734 +324050 +325370 +326693 +328007 +329319 +330636 +331953 +333262 +334567 +335874 +337178 +338487 +339795 +341093 +342395 +343690 +344980 +346278 +347572 +348855 +350148 +351426 +352717 +354002 +355277 +356553 +357841 +359128 +360428 +361710 +362997 +364283 +365575 +366869 +368156 +369452 +370758 +372074 +373407 +374738 +376059 +377380 +378690 +380002 +381290 +382563 +383828 +385093 +386350 +387610 +388867 +390136 +391402 +392661 +393916 +395178 +396436 +397674 +398908 +400138 +401372 +402607 +403830 +405058 +406292 +407522 +408765 +410003 +411237 +412482 +413719 +414951 +416185 +417402 +418619 +419829 +421033 +422224 +423420 +424600 +425784 +426962 +428144 +429319 +430492 +431659 +432833 +434000 +435167 +436319 +437463 +438610 +439745 +440877 +442002 +443125 +444253 +445386 +446505 +447625 +448740 +449854 +450970 +452086 +453200 +454320 +455432 +456545 +457646 +458733 +459815 +460884 +461946 +463005 +464056 +465110 +466163 +467208 +468257 +469306 +470351 +471388 +472429 +473468 +474509 +475549 +476588 +477629 +478670 +479699 +480714 +481719 +482711 +483696 +484670 +485645 +486611 +487571 +488517 +489464 +490401 +491335 +492259 +493180 +494100 +495019 +495934 +496848 +497766 +498673 +499579 +500489 +501392 +502286 +503177 +504052 +504919 +505784 +506632 +507485 +508339 +509182 +510028 +510868 +511698 +512519 +513330 +514127 +514926 +515720 +516518 +517314 +518115 +518919 +519724 +520524 +521316 +522110 +522895 +523670 +524435 +525190 +525930 +526662 +527386 +528113 +528844 +529570 +530297 +531016 +531730 +532434 +533126 +533811 +534486 +535153 +535826 +536497 +537169 +537835 +538497 +539167 +539829 +540485 +541132 +541771 +542405 +543033 +543644 +544254 +544858 +545464 +546071 +546678 +547281 +547885 +548479 +549063 +549640 +550212 +550778 +551336 +551884 +552431 +552979 +553516 +554037 +554555 +555070 +555585 +556096 +556600 +557109 +557622 +558126 +558626 +559121 +559615 +560111 +560594 +561066 +561538 +562000 +562457 +562903 +563338 +563766 +564192 +564610 +565030 +565440 +565851 +566259 +566666 +567065 +567468 +567869 +568273 +568678 +569078 +569476 +569872 +570258 +570633 +571008 +571377 +571745 +572109 +572469 +572826 +573182 +573531 +573872 +574208 +574545 +574878 +575207 +575534 +575858 +576179 +576494 +576801 +577100 +577401 +577697 +577988 +578275 +578560 +578843 +579128 +579404 +579676 +579945 +580212 +580479 +580743 +581004 +581262 +581519 +581770 +582015 +582257 +582495 +582734 +582972 +583207 +583440 +583670 +583896 +584124 +584341 +584551 +584757 +584961 +585166 +585367 +585563 +585760 +585953 +586142 +586328 +586507 +586687 +586864 +587037 +587213 +587388 +587562 +587738 +587909 +588082 +588255 +588428 +588598 +588767 +588931 +589094 +589255 +589413 +589568 +589721 +589871 +590018 +590163 +590301 +590440 +590577 +590711 +590842 +590971 +591101 +591230 +591358 +591483 +591606 +591727 +591848 +591962 +592072 +592176 +592278 +592379 +592481 +592580 +592680 +592782 +592884 +592984 +593083 +593181 +593279 +593380 +593477 +593574 +593672 +593768 +593864 +593956 +594043 +594132 +594219 +594303 +594384 +594464 +594542 +594623 +594704 +594784 +594865 +594945 +595024 +595102 +595178 +595250 +595320 +595387 +595453 +595518 +595584 +595648 +595711 +595774 +595835 +595894 +595950 +596005 +596057 +596110 +596161 +596214 +596268 +596324 +596380 +596436 +596491 +596547 +596602 +596656 +596708 +596759 +596808 +596857 +596904 +596950 +596996 +597038 +597080 +597121 +597160 +597199 +597239 +597280 +597323 +597366 +597407 +597448 +597487 +597524 +597560 +597596 +597630 +597663 +597695 +597729 +597762 +597793 +597823 +597852 +597881 +597912 +597941 +597969 +597998 +598026 +598052 +598079 +598105 +598131 +598157 +598182 +598207 +598232 +598256 +598280 +598303 +598325 +598348 +598371 +598394 +598415 +598436 +598457 +598479 +598500 +598520 +598540 +598561 +598581 +598600 +598618 +598637 +598656 +598675 +598694 +598712 +598729 +598745 +598761 +598776 +598790 +598805 +598820 +598835 +598850 +598865 +598878 +598891 +598905 +598920 +598935 +598952 +598968 +598986 +599005 +599023 +599040 +599055 +599070 +599085 +599099 +599113 +599127 +599140 +599154 +599166 +599178 +599189 +599201 +599212 +599224 +599235 +599247 +599260 +599273 +599285 +599298 +599311 +599324 +599336 +599347 +599358 +599369 +599379 +599389 +599399 +599408 +599417 +599427 +599437 +599446 +599454 +599463 +599471 +599480 +599489 +599498 +599507 +599516 +599525 +599534 +599543 +599552 +599562 +599572 +599582 +599592 +599602 +599612 +599620 +599628 +599636 +599643 +599649 +599655 +599661 +599668 +599674 +599680 +599686 +599693 +599700 +599707 +599714 +599720 +599727 +599733 +599739 +599745 +599752 +599758 +599765 +599772 +599779 +599786 +599793 +599799 +599806 +599812 +599818 +599824 +599829 +599835 +599841 +599848 +599854 +599860 +599866 +599872 +599878 +599884 +599889 +599893 +599898 +599903 +599908 +599913 +599918 +599924 +599930 +599936 +599942 +599948 +599953 +599958 +599963 +599968 +599972 +599976 +599981 +599987 +599992 +599997 +600002 +600008 +600013 +600018 +600022 +600026 +600030 +600034 +600037 +600040 +600044 +600049 +600054 +600059 +600064 +600069 +600074 +600078 +600082 +600087 +600091 +600095 +600099 +600103 +600107 +600110 +600113 +600116 +600119 +600122 +600125 +600128 +600131 +600134 +600136 +600138 +600141 +600143 +600146 +600150 +600154 +600158 +600162 +600166 +600171 +600175 +600179 +600182 +600185 +600188 +600190 +600192 +600194 +600196 +600199 +600202 +600205 +600207 +600209 +600212 +600215 +600218 +600220 +600223 +600226 +600229 +600232 +600235 +600238 +600241 +600244 +600247 +600250 +600253 +600254 +600255 +600256 +600257 +600258 +600259 +600260 +600262 +600264 +600266 +600269 +600272 +600275 +600277 +600279 +600280 +600282 +600284 +600286 +600288 +600290 +600292 +600294 +600296 +600298 +600300 +600302 +600304 +600306 +600308 +600310 +600312 +600314 +600316 +600318 +600320 +600322 +600324 +600326 +600328 +600330 +600332 +600334 +600336 +600338 +600340 +600343 +600346 +600349 +600352 +600355 +600358 +600360 +600362 +600363 +600364 +600365 +600366 +600367 +600369 +600370 +600372 +600374 +600376 +600378 +600380 +600382 +600384 +600385 +600386 +600387 +600388 +600389 +600390 +600391 +600392 +600393 +600394 +600395 +600396 +600397 +600398 +600398 +600398 +600398 +600398 +600398 +600399 +600400 +600401 +600402 +600403 +600405 +600406 +600407 +600408 +600409 +600410 +600411 +600411 +600412 +600413 +600414 +600415 +600416 +600417 +600418 +600418 +600418 +600418 +600419 +600419 +600420 +600421 +600422 +600423 +600424 +600425 +600426 +600427 +600428 +600429 +600429 +600429 +600429 +600429 +600429 +600429 +600429 +600429 +600429 +600430 +600431 +600432 +600433 +600434 +600435 +600436 +600437 +600438 +600439 +600440 +600441 diff --git a/examples/extended/medical/dna/jetcounter/include/ActionInitialization.hh b/examples/extended/medical/dna/jetcounter/include/ActionInitialization.hh new file mode 100644 index 0000000000..caa3d4cc3f --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/include/ActionInitialization.hh @@ -0,0 +1,58 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// This example is provided by the Geant4-DNA collaboration +// Any report or published results obtained using the Geant4-DNA software +// shall cite the following Geant4-DNA collaboration publication: +// Med. Phys. 37 (2010) 4692-4708 +// The Geant4-DNA web site is available at http://geant4-dna.org +// +// $Id$ +// +/// \file ActionInitialization.hh +/// \brief Definition of the ActionInitialization class + +#ifndef ActionInitialization_h +#define ActionInitialization_h 1 + +#include "G4VUserActionInitialization.hh" + +#include "DetectorConstruction.hh" +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + +class ActionInitialization : public G4VUserActionInitialization { +public: + explicit ActionInitialization(DetectorConstruction *); + ~ActionInitialization() override = default; + + void BuildForMaster() const override; + void Build() const override; + +private: + DetectorConstruction *fDetector = nullptr; +}; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#endif diff --git a/examples/extended/medical/dna/jetcounter/include/DetectorConstruction.hh b/examples/extended/medical/dna/jetcounter/include/DetectorConstruction.hh new file mode 100644 index 0000000000..5f32bd7de8 --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/include/DetectorConstruction.hh @@ -0,0 +1,56 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +/// \file DetectorConstruction.hh +/// \brief Class holding detector geometry +// +// +#ifndef DetectorConstruction_H +#define DetectorConstruction_H 1 + +#include "G4VUserDetectorConstruction.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class DetectorConstruction : public G4VUserDetectorConstruction { +public: + DetectorConstruction() = default; + ~DetectorConstruction() override = default; + G4VPhysicalVolume *Construct() override; + + inline auto GetCollDiameter() const { return fCollDiameter; }; + inline auto GetCollLength() const { return fCollLength; }; + inline auto GetCollExitPosistion() const { return fCollExitPosition; }; + +private: + G4double fCollDiameter = 0.; + G4double fCollLength = 0.; + G4double fCollExitPosition = 0.; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/medical/dna/jetcounter/include/EventAction.hh b/examples/extended/medical/dna/jetcounter/include/EventAction.hh new file mode 100644 index 0000000000..8f262bc87a --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/include/EventAction.hh @@ -0,0 +1,61 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef EventAction_h +#define EventAction_h 1 + +#include "G4Event.hh" +#include "G4UserEventAction.hh" +#include + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class EventAction : public G4UserEventAction { +public: + EventAction(); + ~EventAction() override = default; + void BeginOfEventAction(const G4Event *) override; + void EndOfEventAction(const G4Event *) override; + void AddIonisation(); + void InvalidEvent(); + + void RecordInitialEnergy(const G4double&); + void RecordInteractionEnergy(const G4double&); + void RecordFinalEnergy(const G4double&); + +private: + std::ofstream fTextFile; + G4int fClusterSize = 0; + G4bool fValidEvent = true; + + G4double fInitialEnergy = 0; + G4double fInteractionEnergy = 0; + G4double fFinalEnergy = 0; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/medical/dna/jetcounter/include/PhysicsList.hh b/examples/extended/medical/dna/jetcounter/include/PhysicsList.hh new file mode 100644 index 0000000000..4f5a4f9b0c --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/include/PhysicsList.hh @@ -0,0 +1,51 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// This example is provided by the Geant4-DNA collaboration +// Any report or published results obtained using the Geant4-DNA software +// shall cite the following Geant4-DNA collaboration publication: +// Med. Phys. 37 (2010) 4692-4708 +// The Geant4-DNA web site is available at http://geant4-dna.org +// +// +/// \file PhysicsList.hh +/// \brief Definition of the PhysicsList class + +#ifndef PhysicsList_h +#define PhysicsList_h 1 + +#include "G4VModularPhysicsList.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysicsList : public G4VModularPhysicsList { +public: + PhysicsList(); + ~PhysicsList() override = default; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/environments/g4py/examples/demos/TestEm0/module/PrimaryGeneratorAction.hh b/examples/extended/medical/dna/jetcounter/include/PrimaryGeneratorAction.hh similarity index 71% rename from environments/g4py/examples/demos/TestEm0/module/PrimaryGeneratorAction.hh rename to examples/extended/medical/dna/jetcounter/include/PrimaryGeneratorAction.hh index f2879e8926..9ac3017afe 100644 --- a/environments/g4py/examples/demos/TestEm0/module/PrimaryGeneratorAction.hh +++ b/examples/extended/medical/dna/jetcounter/include/PrimaryGeneratorAction.hh @@ -24,40 +24,45 @@ // ******************************************************************** // // -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +/// \file PrimaryGeneratorAction.hh +/// \brief Definition of the PrimaryGeneratorAction class #ifndef PrimaryGeneratorAction_h #define PrimaryGeneratorAction_h 1 -#include "G4VUserPrimaryGeneratorAction.hh" #include "G4ParticleGun.hh" -#include "globals.hh" +#include "G4VUserPrimaryGeneratorAction.hh" -class G4Event; -class DetectorConstruction; +#include "DetectorConstruction.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction -{ - public: - PrimaryGeneratorAction(DetectorConstruction*); - ~PrimaryGeneratorAction(); +class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { +public: + explicit PrimaryGeneratorAction(DetectorConstruction *); + ~PrimaryGeneratorAction() override = default; - public: - void SetDefaultKinematic(); - void GeneratePrimaries(G4Event*); - - G4ParticleGun* GetParticleGun() {return particleGun;} + // public: + void GeneratePrimaries(G4Event *) override; - private: - G4ParticleGun* particleGun; - DetectorConstruction* Detector; +private: + std::unique_ptr fpParticleGun; + DetectorConstruction *fDetector = nullptr; + + G4double GenerateParticleEnergy(); + G4String fEnergySpectrumFilename = "energy.spectrum"; // default filename + + std::vector fEnergySpectrum_counts; + G4double fEnergySpectrum_gain = 0.; + G4double fEnergySpectrum_offset = 0.; + G4int fEnergySpectrum_length = 0; + + G4bool fMonoEnergetic = true; + + G4ThreeVector GenerateParticlePosition(); + G4ThreeVector GenerateParticleDirection(); }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - - diff --git a/examples/advanced/human_phantom/include/G4VoxelLeftBreast.hh b/examples/extended/medical/dna/jetcounter/include/RunAction.hh similarity index 74% rename from examples/advanced/human_phantom/include/G4VoxelLeftBreast.hh rename to examples/extended/medical/dna/jetcounter/include/RunAction.hh index 72446a0b5a..4aeb1a1535 100644 --- a/examples/advanced/human_phantom/include/G4VoxelLeftBreast.hh +++ b/examples/extended/medical/dna/jetcounter/include/RunAction.hh @@ -23,25 +23,31 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// Previous authors: G. Guerrieri, S. Guatelli and M. G. Pia, INFN Genova, Italy -// Authors (since 2007): S. Guatelli,University of Wollongong, Australia -// Contributions by F. Ambroglini INFN Perugia, Italy // -// -#ifndef G4VoxelLeftBreast_h -#define G4VoxelLeftBreast_h 1 +/// \file RunAction.hh +/// \brief Definition of the RunAction class -#include "G4VPhysicalVolume.hh" -#include "G4VOrgan.hh" +#ifndef RunAction_h +#define RunAction_h 1 -class G4VPhysicalVolume; +#include "G4Timer.hh" +#include "G4UserRunAction.hh" -class G4VoxelLeftBreast: public G4VOrgan -{ +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4Run; + +class RunAction : public G4UserRunAction { public: - G4VoxelLeftBreast(); - ~G4VoxelLeftBreast(); - G4VPhysicalVolume* Construct(const G4String&, G4VPhysicalVolume*, - const G4String&,G4bool, G4bool); + RunAction() = default; + ~RunAction() override = default; + void BeginOfRunAction(const G4Run *) override; + void EndOfRunAction(const G4Run *) override; + +private: + G4Timer fTimer; }; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif diff --git a/examples/extended/medical/dna/jetcounter/include/SteppingAction.hh b/examples/extended/medical/dna/jetcounter/include/SteppingAction.hh new file mode 100644 index 0000000000..8894fd540f --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/include/SteppingAction.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +/// \file SteppingAction.hh +/// \brief Definition of the SteppingAction class + +#ifndef SteppingAction_h +#define SteppingAction_h 1 + +#include "G4UserSteppingAction.hh" +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class EventAction; +class SteppingAction : public G4UserSteppingAction +{ +public: + + explicit SteppingAction(EventAction*); + ~SteppingAction() override = default; + + void UserSteppingAction(const G4Step*) override; + +private: + EventAction* fEventAction = nullptr; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/medical/dna/jetcounter/init_phys.in b/examples/extended/medical/dna/jetcounter/init_phys.in new file mode 100644 index 0000000000..2efe39fc23 --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/init_phys.in @@ -0,0 +1,5 @@ +/process/em/fluo true +/process/em/auger true +/process/em/augerCascade true +/process/em/deexcitationIgnoreCut true +/process/em/AddDNARegion Target DNA_Opt4 diff --git a/environments/g4py/source/global/pyG4String.cc b/examples/extended/medical/dna/jetcounter/jetcounter.cc similarity index 52% rename from environments/g4py/source/global/pyG4String.cc rename to examples/extended/medical/dna/jetcounter/jetcounter.cc index ce00059613..73d6c56d60 100644 --- a/environments/g4py/source/global/pyG4String.cc +++ b/examples/extended/medical/dna/jetcounter/jetcounter.cc @@ -23,45 +23,53 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// pyG4String.cc // -// 2005 Q -// ==================================================================== -#include +#include + +#include "G4RunManagerFactory.hh" #include "G4String.hh" +#include "G4UIExecutive.hh" +#include "G4UImanager.hh" +#include "G4VisExecutive.hh" +#include "ActionInitialization.hh" +#include "DetectorConstruction.hh" +#include "PhysicsList.hh" -using namespace boost::python; -// ==================================================================== -// thin wrappers -// ==================================================================== -std::ostream& operator<<(std::ostream& ostr, const G4String& astr) -{ - return ostr << astr.c_str(); -} - -// ==================================================================== -// module definition -// ==================================================================== -void export_G4String() -{ - class_("G4String", "string class") - .def(init()) - .def(init()) - .def(self_ns::str(self)) - .def(self + self) - .def(self += self) - .def(self += other()) - .def(self == self) - .def(self == other()) - .def(self != self) - .def(self != other()) - ; - - implicitly_convertible(); - implicitly_convertible(); - - implicitly_convertible(); - implicitly_convertible(); +int main(int argc, char **argv) { + G4UIExecutive* pUi = nullptr; + if (argc == 1) { + G4cout << "WARNING! Please specify macro to be used: vis or run, or " + "specify path to macro file. See README for more detail.\n"; + return 0; + } + if (argc > 1 && strcmp(argv[1], "vis") == 0) { pUi = new G4UIExecutive(argc, argv); } + + // Choose the Random engine + G4Random::setTheEngine(new CLHEP::MTwistEngine); + // set random seed with system time + G4Random::setTheSeed(time(nullptr)); + auto runManager= G4RunManagerFactory::CreateRunManager(); + runManager->SetNumberOfThreads(G4Threading::G4GetNumberOfCores()); + + auto detector = new DetectorConstruction(); + runManager->SetUserInitialization(detector); + runManager->SetUserInitialization(new PhysicsList()); + runManager->SetUserInitialization(new ActionInitialization(detector)); + + auto UImanager = G4UImanager::GetUIpointer(); + if (strcmp(argv[1], "run") == 0) { + UImanager->ApplyCommand("/control/execute run.mac"); + } + + else if (strcmp(argv[1], "vis") == 0) { + auto visManager = new G4VisExecutive; + visManager->Initialize(); + UImanager->ApplyCommand("/control/execute vis.mac"); + pUi->SessionStart(); + }else { + G4String filename = argv[1]; + UImanager->ApplyCommand("/control/execute " + filename); + } + delete runManager; } diff --git a/examples/extended/medical/dna/jetcounter/jetcounter.out b/examples/extended/medical/dna/jetcounter/jetcounter.out new file mode 100644 index 0000000000..97462f1e6f --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/jetcounter.out @@ -0,0 +1,747 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + +Checking overlaps for volume chamberPhys:0 (G4Tubs) ... OK! +Checking overlaps for volume targetPhys:0 (G4Tubs) ... OK! +Checking overlaps for volume wallPhys:0 (G4Tubs) ... OK! +Checking overlaps for volume innerWallPhys:0 (G4Tubs) ... OK! +Checking overlaps for volume collPhys:0 (G4Tubs) ... OK! +Checking overlaps for volume enDetPhys:0 (G4Tubs) ... OK! +### G4EmDNAPhysicsActivator::ConstructProcess for 1 regions DNA physics type +### DNA models type DNA_Opt4 are activated for G4Region Target +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 0 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 20 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 0.01 mm) +Step function for muons/hadrons (0.1, 0.05 mm) +Step function for light ions (0.1, 0.02 mm) +Step function for general ions (0.1, 0.001 mm) +Lowest e+e- kinetic energy 100 eV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 1 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 1 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 1 MeV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 2 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 1 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.08 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 3 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 1 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= +====== Atomic Deexcitation Parameters ======== +======================================================================= +Fluorescence enabled 1 +Directory in G4LEDATA for fluorescence data files fluor +Auger electron cascade enabled 1 +PIXE atomic de-excitation enabled 0 +De-excitation module ignores cuts 1 +Type of PIXE cross section for hadrons Empirical +Type of PIXE cross section for e+- Livermore +======================================================================= +====== DNA Physics Parameters ======== +======================================================================= +Use fast sampling in DNA models 0 +Use Stationary option in DNA models 0 +Use DNA with multiple scattering of e- 0 +Use DNA e- solvation model type 11003 +======================================================================= + +### === Deexcitation model UAtomDeexcitation is activated for 2 regions: + DefaultRegionForTheWorld 1 1 0 + Target 1 1 0 +### === Auger flag: 1 +### === Ignore cuts flag: 1 + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 174 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 20 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 160 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreCompton : Emin= 0 eV Emax= 1 GeV Fluo + KleinNishina : Emin= 1 GeV Emax= 100 TeV Fluo + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +Livermore5DConversion : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + ===== EM models for the G4Region Target ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 100 MeV Nbins=40 1 MeV - 100 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LowEnergyIoni : Emin= 0 eV Emax= 100 keV deltaVI + MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI + ===== EM models for the G4Region Target ====== + MollerBhabha : Emin= 1 MeV Emax= 100 TeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS + eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS + ===== EM models for the G4Region Target ====== + eBremSB : Emin= 1 MeV Emax= 100 TeV AngularGen2BS + +ePairProd: for e- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 25x1001 from 0.1 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ePairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 10 eV + +e-_G4DNAElastic: for e- SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNAUeharaScreenedRutherfordElasticModel : Emin= 0 eV Emax= 1 MeV + +e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNAEmfietzoglouExcitationModel : Emin= 0 eV Emax= 10 keV +DNABornExcitationModel : Emin= 10 keV Emax= 1 MeV + +e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNAEmfietzoglouIonisationModel : Emin= 0 eV Emax= 10 keV deltaBorn Fluo +DNABornIonisationModel : Emin= 10 keV Emax= 1 MeV deltaBorn Fluo + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 100 TeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS + eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS + +ePairProd: for e+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 25x1001 from 0.1 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ePairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + ===== EM models for the G4Region Target ====== + UrbanMsc : Emin= 1 MeV Emax= 100 TeV Nbins=160 1 MeV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + ===== EM models for the G4Region Target ====== + Bragg : Emin= 1 MeV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +nuclearStopping: for proton SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV + ===== EM models for the G4Region Target ====== + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 100 TeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + ===== EM models for the G4Region Target ====== + UrbanMsc : Emin= 300 MeV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI + ===== EM models for the G4Region Target ====== + BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + +nuclearStopping: for GenericIon SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV + ===== EM models for the G4Region Target ====== + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNARuddIonisationExtendedModel : Emin= 0 eV Emax= 100 TeV deltaRudd Fluo + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + ===== EM models for the G4Region Target ====== + UrbanMsc : Emin= 300 MeV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV deltaVI + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV deltaVI + ===== EM models for the G4Region Target ====== + BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + +nuclearStopping: for alpha SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV + ===== EM models for the G4Region Target ====== + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 100 TeV + +msc: for alpha+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + ===== EM models for the G4Region Target ====== + UrbanMsc : Emin= 300 MeV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for alpha+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=7.94528 MeV deltaVI + BetheBloch : Emin=7.94528 MeV Emax= 100 TeV deltaVI + ===== EM models for the G4Region Target ====== + BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 100 TeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 100 TeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 100 TeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 TeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + ===== EM models for the G4Region Target ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV deltaVI + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV +### Run 0 start. +number of event = 40 User=4.200000s Real=4.236719s Sys=0.000000s diff --git a/examples/extended/medical/dna/jetcounter/plot.py b/examples/extended/medical/dna/jetcounter/plot.py new file mode 100755 index 0000000000..1152e1e5b7 --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/plot.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python3 +# coding: utf-8 +# ********************************************************************* +# To execute this script simply type at your machine's prompt: +# python plot.py +# OR +# python3 plot.py +# This script needs: +# 1. A bunch of CShistory_t* text files created during simulation. +# 2. (optionally) energy.spectrum file provided with the example. +# ********************************************************************* + +import os +import numpy as np +import matplotlib +matplotlib.use('Agg') # to work also in sessions without display +import matplotlib.pyplot as plt + + +fs = [] +for filename in os.listdir(): + if "CShistory_t" in filename: + fs.append(np.loadtxt(filename)) +events_data = np.concatenate(fs) + +nevents = events_data.shape[0] + +# ### +# ICSD plot + +cluster_sizes = events_data[:, 0] + +M1 = cluster_sizes.mean() + +bin_edges = np.arange(cluster_sizes.max() + 2) + +y, bin_edges = np.histogram(cluster_sizes, bins=bin_edges, density=True) + +icsd_fig = plt.figure(figsize=(10, 5)) +plt.errorbar(bin_edges[:-1], y, yerr=np.sqrt(y / nevents), + fmt='d', label=f"M₁ = {M1:.3g}") + +plt.ylim(.3/cluster_sizes.size, 1) +plt.yscale("log") + +plt.title("ICSD") +plt.xlabel("cluster size") +plt.ylabel("probability") +plt.legend() + +icsd_fig.savefig("ICSD_py.png") + + +# ### +# energy spectra +initial_energies = events_data[:, 1] +interaction_energies = events_data[:, 2] +final_energies = events_data[:, 3] + +labels = ["initial", "interaction", "final"] + +spec_fig = plt.figure(figsize=(10, 5)) +for i, energies in enumerate((initial_energies, interaction_energies, final_energies)): + y, bin_edges = np.histogram(energies, bins=int(np.sqrt(nevents)), density=True) + bin_centers = (bin_edges[1:] + bin_edges[:-1]) / 2 + plt.errorbar(bin_centers, y, yerr=np.sqrt(y / nevents), drawstyle='steps-mid', + label="{} = {:.3g} MeV".format(labels[i], energies.mean())) + + +try: + source_spectrum_data = np.loadtxt("energy.spectrum") + length, gain, offset = source_spectrum_data[:3] + cumulative_counts = source_spectrum_data[3:] + counts = np.diff(cumulative_counts) + bins = np.arange(length-1)*gain+offset + + normalization_factor = counts.sum()*gain + density = counts/normalization_factor + + mean_energy = np.sum(bins*density)*gain + + plt.plot(bins, density, drawstyle='steps-mid', label="input = {:.3g} MeV".format(mean_energy)) +except FileNotFoundError: + print("Input spectrum file 'energy.spectrum' not found!") + pass + + +plt.title("Energy spectra") +plt.xlabel("energy [MeV]") +plt.ylabel("probability density [1/MeV]") +plt.legend() + +spec_fig.savefig("energy_spectra.png") diff --git a/examples/extended/medical/dna/jetcounter/primaries.in b/examples/extended/medical/dna/jetcounter/primaries.in new file mode 100644 index 0000000000..d408cdf5b7 --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/primaries.in @@ -0,0 +1,2 @@ +/gun/particle alpha +/gun/energy -1 MeV # minus one triggers the use of energy spectrum diff --git a/examples/extended/medical/dna/jetcounter/run.mac b/examples/extended/medical/dna/jetcounter/run.mac new file mode 100644 index 0000000000..8beb9b1481 --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/run.mac @@ -0,0 +1,6 @@ +/control/execute init_phys.in +/run/initialize +/control/execute primaries.in +/run/beamOn 40 # just for a test run +# /run/beamOn 4000 # uncomment this line for a minimum recommended size of simulation +# (about 3 in 4 projectiles hits the collimator, so only about 1000 events are useful) diff --git a/examples/extended/medical/dna/jetcounter/src/ActionInitialization.cc b/examples/extended/medical/dna/jetcounter/src/ActionInitialization.cc new file mode 100644 index 0000000000..a26fc78bc5 --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/src/ActionInitialization.cc @@ -0,0 +1,67 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// This example is provided by the Geant4-DNA collaboration +// Any report or published results obtained using the Geant4-DNA software +// shall cite the following Geant4-DNA collaboration publication: +// Med. Phys. 37 (2010) 4692-4708 +// The Geant4-DNA web site is available at http://geant4-dna.org +// +// $ID$ +/// \file ActionInitialization.cc +/// \brief Implementation of the ActionInitialization class + +#include "ActionInitialization.hh" +#include "EventAction.hh" +#include "G4RunManager.hh" +#include "PrimaryGeneratorAction.hh" +#include "RunAction.hh" +#include "SteppingAction.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ActionInitialization::ActionInitialization(DetectorConstruction *detector) + : G4VUserActionInitialization(), fDetector(detector) {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ActionInitialization::BuildForMaster() const { + SetUserAction(new RunAction()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ActionInitialization::Build() const { + SetUserAction(new PrimaryGeneratorAction(fDetector)); + SetUserAction(new RunAction()); + + auto ev_act = new EventAction(); + SetUserAction(ev_act); + + SetUserAction(new SteppingAction( + ev_act)); // stepping action needs access to EventAction object +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/dna/jetcounter/src/DetectorConstruction.cc b/examples/extended/medical/dna/jetcounter/src/DetectorConstruction.cc new file mode 100644 index 0000000000..031e2e8845 --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/src/DetectorConstruction.cc @@ -0,0 +1,281 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +/// \file DetectorConstruction.cc +/// \brief DetectorConstruction class +// +// +#include "DetectorConstruction.hh" + +#include "G4Box.hh" +#include "G4GeometryManager.hh" +#include "G4Material.hh" +#include "G4PVPlacement.hh" +#include "G4ProductionCuts.hh" +#include "G4SystemOfUnits.hh" +#include "G4ThreeVector.hh" +#include "G4Tubs.hh" +#include "G4UnitsTable.hh" +#include "G4VisAttributes.hh" +#include "G4LogicalVolume.hh" +#include "G4NistManager.hh" +#include "G4VPhysicalVolume.hh" +#include "G4RunManager.hh" + +const bool check_intersections = true; // to control geometry for errors + +// new unit +const G4double ug = 1.e-6 * g; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume *DetectorConstruction::Construct() { + auto man = G4NistManager::Instance(); + + // registering new useful unit + new G4UnitDefinition("microgram", "ug", "Mass", ug); + + // geometric parameters + G4double worldSize = 8 * cm; + G4double worldDensity = 0.15 * mg / m3; // imperfect vacuum as in a real-world experiment + + G4double IV_diameter = 10 * mm; + G4double IV_height = 20 * mm; + G4double IV_vertical_offset = + -5 * mm; // instead of moving beam axis, the IV is moved + G4double IV_density = 0.45 * ug / cm3; + + G4double wall_tot_mass_thickness = + 0.98 * mg / cm2; // Mylar wall thickness -> 7 µm + G4double wall_inner_layer_mass_thickness = + 0.02 * mg / + cm2; // inner layer of wall made of water material at Mylar density + + fCollDiameter = + 3 * mm; // inner diameter of the collimator, the outer is twice that + fCollLength = 23 * mm; + fCollExitPosition = + -5.5 * mm; // exit of the collimator, where the beam is already formed + + G4double enDet_diameter = 10 * mm; + G4double enDet_thickness = 150 * um; + G4double enDet_distance = 10 * mm; + + // materials + auto worldMaterial = man->BuildMaterialWithNewDensity( + "WORLD_WATER_VACUUM", "G4_WATER", worldDensity); + auto targetMaterial = + man->BuildMaterialWithNewDensity("TARGET_WATER", "G4_WATER", IV_density); + auto wallMaterial = man->FindOrBuildMaterial("G4_MYLAR"); + auto collMaterial = man->FindOrBuildMaterial("G4_BRASS"); + auto enDetMaterial = man->FindOrBuildMaterial("G4_Si"); + + // auxiliary variables: + G4ThreeVector origin(0, 0, 0); + G4ThreeVector IV_centre(0, 0, IV_vertical_offset); + G4ThreeVector enDet_centre(enDet_distance + IV_diameter / 2., 0, 0); + + G4double mylarDensity = wallMaterial->GetDensity(); + G4double wall_total_thickness = wall_tot_mass_thickness / mylarDensity; + G4double wall_inner_layer_thickness = + wall_inner_layer_mass_thickness / mylarDensity; + + // materials continued + auto innerWallMaterial = + man->BuildMaterialWithNewDensity("WALL_WATER", "G4_WATER", mylarDensity); + + // SAVING DETECTOR SETTINGS TO FILE: + auto filename = "SIM_GEOMETRY_SETTINGS.txt"; + std::ofstream TextFile; + TextFile.open(filename, std::fstream::out); + TextFile << "worldSize = " << worldSize / cm << " cm\n"; + TextFile << "worldDensity = " << worldDensity / (mg / m3) << " mg/m3\n"; + TextFile << "IV_diameter = " << IV_diameter / mm << " mm\n"; + TextFile << "IV_height = " << IV_height / mm << " mm\n"; + TextFile << "IV_vertical_offset = " << IV_vertical_offset / mm << " mm\n"; + TextFile << "IV_density = " << IV_density / (ug / cm3) << " ug/cm3\n"; + TextFile << "wall_tot_mass_thickness = " + << wall_tot_mass_thickness / (mg / cm2) << " mg/cm2\n"; + TextFile << "wall_inner_layer_mass_thickness = " + << wall_inner_layer_mass_thickness / (mg / cm2) << " mg/cm2\n"; + TextFile << "fCollDiameter = " << fCollDiameter / mm << " mm\n"; + TextFile << "fCollLength = " << fCollLength / mm << " mm\n"; + TextFile << "fCollExitPosition = " << fCollExitPosition / mm << " mm\n"; + TextFile << "enDet_diameter = " << enDet_diameter / mm << " mm\n"; + TextFile << "enDet_thickness = " << enDet_thickness / mm << " mm\n"; + TextFile << "enDet_distance = " << enDet_distance / mm << " mm\n"; + TextFile << "worldMaterial: " << worldMaterial->GetName() << "\n"; + TextFile << "targetMaterial: " << targetMaterial->GetName() << "\n"; + TextFile << "wallMaterial: " << wallMaterial->GetName() << "\n"; + TextFile << "collMaterial: " << collMaterial->GetName() << "\n"; + TextFile << "enDetMaterial: " << enDetMaterial->GetName() << "\n"; + TextFile << "innerWallMaterial: " << innerWallMaterial->GetName() << "\n"; + + // WORLD VOLUME + + auto worldSolid = new G4Box("worldSolid", // its name + worldSize / 2, worldSize / 2, + worldSize / 2); // its size + + auto worldLogic = new G4LogicalVolume(worldSolid, // its solid + worldMaterial, // its material + "worldLogic"); // its name + + auto worldPhys = + new G4PVPlacement(nullptr, // no rotation + G4ThreeVector(0, 0, 0), // placement + worldLogic, // its logical volume + "worldPhys", // its name + nullptr, // its mother volume + false, // no boolean operation + 0, // copy number + check_intersections); // check intersections + + // INTERACTION VOLUME (IV, also called chamber) + auto chamberSolid = new G4Tubs("chamberSolid", // its name + 0, // rMin + IV_diameter / 2., // rMax + IV_height / 2., // height/2 + 0 * deg, // phiMin + 360 * deg); // phiMax + + auto chamberLogic = new G4LogicalVolume(chamberSolid, // its solid + targetMaterial, // its material + "chamberLogic"); // its name + + new G4PVPlacement(nullptr, IV_centre, chamberLogic, "chamberPhys", worldLogic, + false, 0, check_intersections); + + // SENSITIVE VOLUME (SV, also called target) - in general a sub-volume of the + // IV, but in this case entire IV is the SV only ionisations that occur in the + // SV will be counted + auto targetSolid = new G4Tubs("targetSolid", // name + 0, // rMin + IV_diameter / 2., // rMax + IV_height / 2., // height/2 + 0 * deg, // phiMin + 360 * deg); // phiMax + + auto targetLogic = + new G4LogicalVolume(targetSolid, targetMaterial, "targetLogic"); + + new G4PVPlacement(nullptr, origin, targetLogic, "targetPhys", chamberLogic, + false, 0, check_intersections); + + // WALLS: + // + + auto wallSolid = new G4Tubs("wallSolid", // name + IV_diameter / 2., // rMin + IV_diameter / 2. + wall_total_thickness, // rMax + IV_height / 2., // height/2 + 0 * deg, // phiMin + 360 * deg); // phiMax + + auto wallLogic = new G4LogicalVolume(wallSolid, wallMaterial, "wallSolid"); + new G4PVPlacement(nullptr, IV_centre, wallLogic, "wallPhys", worldLogic, + false, 0, check_intersections); + + // wall inner layer made of water + auto innerWallSolid = + new G4Tubs("innerWallSolid", // name + IV_diameter / 2., // rMin + IV_diameter / 2. + wall_inner_layer_thickness, // rMax + IV_height / 2., // height/2 + 0 * deg, // phiMin + 360 * deg); // phiMax + + auto innerWallLogic = + new G4LogicalVolume(innerWallSolid, innerWallMaterial, "innerWallLogic"); + new G4PVPlacement(nullptr, origin, innerWallLogic, "innerWallPhys", wallLogic, + false, 0, check_intersections); + + // COLLIMATOR: + auto collSolid = new G4Tubs("collSolid", // name + fCollDiameter / 2., // rMin + fCollDiameter, // rMax + fCollLength / 2., // height/2 + 0 * deg, // phiMin + 360 * deg); // phiMax + + auto collLogic = new G4LogicalVolume(collSolid, collMaterial, "collSolid"); + + auto rot = new G4RotationMatrix(); + rot->rotateY(90 * deg); + new G4PVPlacement( + rot, G4ThreeVector(-fCollLength / 2 + fCollExitPosition, 0, 0), collLogic, + "collPhys", worldLogic, false, 0, check_intersections); + + // SILICON DETECTOR - present only in macrometric geometry + + auto enDetSolid = new G4Tubs("enDetSolid", // name + 0, // rMin + enDet_diameter / 2., // rMax + enDet_thickness / 2., // height/2 + 0 * deg, 360 * deg); + + auto enDetLogic = + new G4LogicalVolume(enDetSolid, enDetMaterial, "enDetLogic"); + new G4PVPlacement(rot, enDet_centre, enDetLogic, "enDetPhys", worldLogic, + false, 0, check_intersections); + + // VISUALISATION ATTRIBUTES + + auto worldVisAtt = new G4VisAttributes(G4Colour(1, 1, 1, 0.1)); + worldLogic->SetVisAttributes(worldVisAtt); + + auto targetVisAtt = new G4VisAttributes(G4Colour(0.1, 0.5, 1, 0.7)); + targetLogic->SetVisAttributes(targetVisAtt); + + auto innerWallVisAtt = new G4VisAttributes(G4Colour(0, 1, 1, 0.7)); + innerWallLogic->SetVisAttributes(innerWallVisAtt); + + auto collVisAtt = new G4VisAttributes(G4Colour(0.7, 0.65, .25, 0.5)); + collLogic->SetVisAttributes(collVisAtt); + + auto enDetVisAtt = new G4VisAttributes(G4Colour(0.5, 0.7, .5, 1.)); + enDetLogic->SetVisAttributes(enDetVisAtt); + + // Create Target G4Region and add logical volume + + auto region = new G4Region("Target"); + + auto cuts = new G4ProductionCuts(); + + G4double defCut = 1 * nanometer; + cuts->SetProductionCut(defCut, "gamma"); + cuts->SetProductionCut(defCut, "e-"); + cuts->SetProductionCut(defCut, "e+"); + cuts->SetProductionCut(defCut, "proton"); + + region->SetProductionCuts(cuts); + region->AddRootLogicalVolume(chamberLogic); + region->AddRootLogicalVolume(targetLogic); + region->AddRootLogicalVolume(innerWallLogic); + + return worldPhys; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/environments/g4py/examples/demos/TestEm0/module/PrimaryGeneratorAction.cc b/examples/extended/medical/dna/jetcounter/src/EventAction.cc similarity index 60% rename from environments/g4py/examples/demos/TestEm0/module/PrimaryGeneratorAction.cc rename to examples/extended/medical/dna/jetcounter/src/EventAction.cc index 26c813dbb9..e86ea82579 100644 --- a/environments/g4py/examples/demos/TestEm0/module/PrimaryGeneratorAction.cc +++ b/examples/extended/medical/dna/jetcounter/src/EventAction.cc @@ -24,58 +24,64 @@ // ******************************************************************** // // +/// \file EventAction.cc +/// \brief Implementation of the EventAction class // -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "PrimaryGeneratorAction.hh" - -#include "DetectorConstruction.hh" - -#include "G4Event.hh" -#include "G4ParticleTable.hh" -#include "G4ParticleDefinition.hh" -#include "G4SystemOfUnits.hh" +// +#include "EventAction.hh" +#include "G4RunManager.hh" +#include "G4Threading.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PrimaryGeneratorAction::PrimaryGeneratorAction( DetectorConstruction* DC) -:Detector(DC) -{ - particleGun = new G4ParticleGun(1); - SetDefaultKinematic(); +EventAction::EventAction() { + G4int tid = G4Threading::G4GetThreadId(); + // each thread will store cluster size history in a separate file: + auto filename = "CShistory_t" + G4UIcommand::ConvertToString(tid); + fTextFile.open(filename, std::fstream::out); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PrimaryGeneratorAction::~PrimaryGeneratorAction() -{ - delete particleGun; +void EventAction::BeginOfEventAction(const G4Event *) { fClusterSize = 0; } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EventAction::EndOfEventAction(const G4Event *anEvent) { + if (fValidEvent && fFinalEnergy > 0) { + fTextFile << fClusterSize << " " << fInitialEnergy << " " + << fInteractionEnergy << " " << fFinalEnergy << std::endl; + + if (anEvent->GetEventID() % 1000 == 0) { + G4cout << "ev: " << anEvent->GetEventID() + << G4endl; // notify user after each 1000 particles simulated + } + } + fValidEvent = true; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void PrimaryGeneratorAction::SetDefaultKinematic() -{ - G4ParticleDefinition* particle - = G4ParticleTable::GetParticleTable()->FindParticle("e-"); - particleGun->SetParticleDefinition(particle); - particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); - particleGun->SetParticleEnergy(100*MeV); - G4double position = -0.5*(Detector->GetSize()); - particleGun->SetParticlePosition(G4ThreeVector(position,0.*cm,0.*cm)); +void EventAction::AddIonisation() { + fClusterSize += 1; // simple counter } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) -{ - //this function is called at the begining of event - // - particleGun->GeneratePrimaryVertex(anEvent); +void EventAction::InvalidEvent() { fValidEvent = false; } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EventAction::RecordInitialEnergy(const G4double& en) { fInitialEnergy = en; } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EventAction::RecordInteractionEnergy(const G4double& en) { + fInteractionEnergy = en; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +void EventAction::RecordFinalEnergy(const G4double& en) { fFinalEnergy = en; } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/dna/jetcounter/src/PhysicsList.cc b/examples/extended/medical/dna/jetcounter/src/PhysicsList.cc new file mode 100644 index 0000000000..7c66c740ae --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/src/PhysicsList.cc @@ -0,0 +1,61 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// This example is provided by the Geant4-DNA collaboration +// Any report or published results obtained using the Geant4-DNA software +// shall cite the following Geant4-DNA collaboration publication: +// Med. Phys. 37 (2010) 4692-4708 +// The Geant4-DNA web site is available at http://geant4-dna.org +// +// $Id$ +// +/// \file PhysicsList.cc +/// \brief Implementation of the PhysicsList class + +#include "PhysicsList.hh" +#include "G4EmParameters.hh" +#include "G4SystemOfUnits.hh" + +#include "G4DecayPhysics.hh" +#include "G4EmLivermorePhysics.hh" + +#include "G4EmDNAPhysicsActivator.hh" + +#include "G4EmDNAPhysics_option2.hh" +#include "G4EmDNAPhysics_option4.hh" +#include "G4EmDNAPhysics_option6.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsList::PhysicsList() : G4VModularPhysicsList() { + SetDefaultCutValue(1.0 * nanometer); + SetVerboseLevel(1); + + RegisterPhysics(new G4EmLivermorePhysics()); + RegisterPhysics(new G4EmDNAPhysicsActivator()); +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + diff --git a/examples/extended/medical/dna/jetcounter/src/PrimaryGeneratorAction.cc b/examples/extended/medical/dna/jetcounter/src/PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..884bed62ef --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/src/PrimaryGeneratorAction.cc @@ -0,0 +1,150 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +/// \file PrimaryGeneratorAction.cc +/// \brief Implementation of the PrimaryGeneratorAction class + +#include "PrimaryGeneratorAction.hh" +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4PhysicalConstants.hh" +#include "G4SystemOfUnits.hh" +#include "Randomize.hh" +#include + +PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction *detector) + : G4VUserPrimaryGeneratorAction(), fDetector(detector){ + fpParticleGun = std::make_unique(); + fpParticleGun->SetParticleEnergy( + -1); // default value - can be overridden in the macro file +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PrimaryGeneratorAction::GeneratePrimaries(G4Event *anEvent) { + // user can set the energy in the macro file + G4double energy = fpParticleGun->GetParticleEnergy(); + + // only first check is important as only user can set energy to -1, + // hopefully... + if (energy == -1) { // if energy is larger than zero, then the beam is + // mono-energetic if the energy is set to zero, then the + // energy is randomized, based on spectrum file + fMonoEnergetic = false; + } + + if (!fMonoEnergetic) { + energy = GenerateParticleEnergy(); + } + + fpParticleGun->SetParticleEnergy(energy); + fpParticleGun->SetParticlePosition( + GenerateParticlePosition()); // point of emission + fpParticleGun->SetParticleMomentumDirection( + GenerateParticleDirection()); // direction of emission + + fpParticleGun->GeneratePrimaryVertex(anEvent); // sending the particle +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double PrimaryGeneratorAction::GenerateParticleEnergy() { + if (fEnergySpectrum_length == + 0) { // reading the spectrum file if not loaded yet + std::ifstream fin(fEnergySpectrumFilename); + G4String len, gain, offset, counts; + fin >> len >> gain >> offset; + fEnergySpectrum_length = std::stoi(len); + fEnergySpectrum_gain = std::stod(gain); + fEnergySpectrum_offset = std::stod(offset); + + fEnergySpectrum_counts.resize(fEnergySpectrum_length); + for (G4int i = 0; i < fEnergySpectrum_length; i++) { + fin >> counts; + fEnergySpectrum_counts[i] = std::stoi(counts); + } + } + + auto max_en_counter = fEnergySpectrum_counts[fEnergySpectrum_length - 1] - 1; + auto rand_count = 1 + G4int(G4UniformRand() * max_en_counter); + + // primitive search for lowest en_id that gives higher count value than + // rand_count: + G4int en_id = 0; + for (; rand_count > fEnergySpectrum_counts[en_id]; en_id++) + ; + + G4int left = fEnergySpectrum_counts[en_id - 1]; + G4int right = fEnergySpectrum_counts[en_id]; + + G4double en_left = + (en_id - 1) * fEnergySpectrum_gain + fEnergySpectrum_offset; + G4double en_right = en_id * fEnergySpectrum_gain + fEnergySpectrum_offset; + + // linear interpolation: + G4double slope = (en_right - en_left) / (right - left); + return (en_left + slope * (rand_count - left)) * MeV; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4ThreeVector PrimaryGeneratorAction::GenerateParticlePosition() { + // the source is an infinitely thin disk of radius r + G4double r = std::sqrt(G4UniformRand()) * fDetector->GetCollDiameter() / 2.; + G4double phi = G4UniformRand() * twopi; + + G4double x = fDetector->GetCollExitPosistion() - fDetector->GetCollLength(); + G4double y = r * std::cos(phi); + G4double z = r * std::sin(phi); + + return {x, y, z}; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4ThreeVector PrimaryGeneratorAction::GenerateParticleDirection() { + G4double phi, theta; + G4double px, py, pz; + + phi = G4UniformRand() * twopi; + + // For convenience theta is measured along the beam axis, which is x-axis. + // To reduce the number of events, when the projectile hits the collimator, + // only forward angles in the range [0, max_theta] are considered. + // If theta is larger, then the projectile will hit the collimator anyway. + // Even with this restriction only 1 in 4 projectiles pass through the + // collimator. + G4double cos_max_theta = + std::cos(std::atan(fDetector->GetCollDiameter() / fDetector->GetCollLength())); + theta = std::acos(cos_max_theta + G4UniformRand() * (1 - cos_max_theta)); + + px = std::cos(theta); + py = std::sin(theta) * std::sin(phi); + pz = std::sin(theta) * std::cos(phi); + + return {px, py, pz}; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/environments/g4py/examples/demos/TestEm0/module/DetectorMessenger.hh b/examples/extended/medical/dna/jetcounter/src/RunAction.cc similarity index 74% rename from environments/g4py/examples/demos/TestEm0/module/DetectorMessenger.hh rename to examples/extended/medical/dna/jetcounter/src/RunAction.cc index c775ab199c..dc126893a6 100644 --- a/environments/g4py/examples/demos/TestEm0/module/DetectorMessenger.hh +++ b/examples/extended/medical/dna/jetcounter/src/RunAction.cc @@ -24,40 +24,26 @@ // ******************************************************************** // // -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// +/// \file RunAction.cc +/// \brief Implementation of the RunAction class -#ifndef DetectorMessenger_h -#define DetectorMessenger_h 1 - -#include "G4UImessenger.hh" -#include "globals.hh" - -class DetectorConstruction; -class G4UIdirectory; -class G4UIcmdWithAString; +#include "RunAction.hh" +#include "G4Run.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class DetectorMessenger: public G4UImessenger -{ - public: - - DetectorMessenger(DetectorConstruction* ); - ~DetectorMessenger(); - - void SetNewValue(G4UIcommand*, G4String); - - private: - - DetectorConstruction* Detector; - - G4UIdirectory* testemDir; - G4UIdirectory* detDir; - G4UIcmdWithAString* MaterCmd; -}; +void RunAction::BeginOfRunAction(const G4Run *run) { + G4cout << "### Run " << run->GetRunID() << " start." << G4endl; + fTimer.Start(); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#endif +void RunAction::EndOfRunAction(const G4Run *run) { + fTimer.Stop(); + G4cout << "number of event = " << run->GetNumberOfEvent() << " " << fTimer + << G4endl; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/dna/jetcounter/src/SteppingAction.cc b/examples/extended/medical/dna/jetcounter/src/SteppingAction.cc new file mode 100644 index 0000000000..555bd3907c --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/src/SteppingAction.cc @@ -0,0 +1,121 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// This example is provided by the Geant4-DNA collaboration +// Any report or published results obtained using the Geant4-DNA software +// shall cite the following Geant4-DNA collaboration publication: +// Med. Phys. 37 (2010) 4692-4708 +// J. Comput. Phys. 274 (2014) 841-882 +// The Geant4-DNA web site is available at http://geant4-dna.org +// +// +/// \file SteppingAction.cc +/// \brief Implementation of the SteppingAction class + +#include "SteppingAction.hh" +#include "EventAction.hh" +#include "G4SteppingManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +SteppingAction::SteppingAction(EventAction *event) + : G4UserSteppingAction() + , fEventAction(event) {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +void SteppingAction::UserSteppingAction(const G4Step *step) { + // ///////////////////////////////////////// + // killing primary particles (any heavy charged particle) that hit the + // collimator + auto part_name = step->GetTrack()->GetParticleDefinition()->GetParticleName(); + if (step->GetPreStepPoint()->GetPhysicalVolume()->GetName() == "collPhys" && + step->GetTrack()->GetParticleDefinition()->GetParticleName() == "alpha") { + step->GetTrack()->SetTrackStatus(fStopAndKill); + fEventAction->InvalidEvent(); + return; // nothing more to do in such case + } + + // ///////////////////////////////////////// + // recording energy of the primary particle at three different locations: + // 1. Boundary between World and Mylar wall, i.e. initial energy of the + // particle. + // 2. Boundary between World and silicon detector, i.e. final energy of the + // particle. + // 3. Boundary between wall inner layer (innerWall) and Target, i.e. + // interaction energy of the particle. + + if (step->GetTrack()->GetParticleDefinition()->GetParticleName() == "alpha") { + // 1. and 2. - particle crossing the boundary between World volume + if (step->GetPreStepPoint()->GetPhysicalVolume()->GetName() == + "worldPhys") { + auto physVol = step->GetPostStepPoint()->GetPhysicalVolume(); + // the above may be a null pointer as the particle can leave world, so it + // has to be tested: + if (physVol) { + // 1. to Mylar wall + if (physVol->GetName() == "wallPhys") { + fEventAction->RecordInitialEnergy( + step->GetTrack()->GetKineticEnergy()); + } + // 2. to silicon detector + if (physVol->GetName() == "enDetPhys") { + fEventAction->RecordFinalEnergy(step->GetTrack()->GetKineticEnergy()); + } + } + } + + // 3. - particle crossing the boundary from wall inner layer to the target + if (step->GetPreStepPoint()->GetPhysicalVolume()->GetName() == + "innerWallPhys") { + if (step->GetPostStepPoint()->GetPhysicalVolume()->GetName() == + "targetPhys") { + fEventAction->RecordInteractionEnergy( + step->GetTrack()->GetKineticEnergy()); + } + } + } + + // //////////////////////////////////////// + // counting individual ionization acts + // only ionisations in the target will be recorded + if (step->GetPreStepPoint()->GetPhysicalVolume()->GetName() == "targetPhys") { + if (step->GetTotalEnergyDeposit() != 0) { + G4String process_name = + step->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName(); + + // counting ionisations caused only by electrons and alpha particles: + // if(process_name=="e-_G4DNAIonisation" || + // process_name=="alpha_G4DNAIonisation"); + // fEventAction->AddIonisation(); + + // more general approach - counting ionisations caused by any particle + // (including also protons, GenericIons, etc.): + auto pos = process_name.find( + "Ionisation"); // looking for "Ionisation" substring in process_name + if (pos != std::string::npos) // found! + fEventAction->AddIonisation(); // increase cluster size + } + } +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/dna/jetcounter/vis.mac b/examples/extended/medical/dna/jetcounter/vis.mac new file mode 100644 index 0000000000..a8bc4b9fc3 --- /dev/null +++ b/examples/extended/medical/dna/jetcounter/vis.mac @@ -0,0 +1,17 @@ +/control/execute init_phys.in + +/vis/open OGL 600x600-0+0 +/vis/drawVolume +/vis/scene/add/trajectories smooth +/vis/scene/endOfEventAction accumulate +/vis/modeling/trajectories/create/drawByCharge +/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true +/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2 +/vis/scene/add/axes 0 0 0 0.05 m +/vis/ogl/set/displayListLimit 1000000 + +/run/numberOfThreads 1 +/run/initialize + +/control/execute primaries.in +/run/beamOn 1 diff --git a/examples/extended/medical/dna/mfp/mfp.out b/examples/extended/medical/dna/mfp/mfp.out index 0ded5b7cdc..5298ea2a98 100644 --- a/examples/extended/medical/dna/mfp/mfp.out +++ b/examples/extended/medical/dna/mfp/mfp.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -30,6 +30,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -106,10 +108,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -133,7 +136,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -169,8 +172,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -189,82 +191,309 @@ Use DNA e- solvation model type 11003 DefaultRegionForTheWorld 1 1 0 ### === Auger flag: 1 ### === Ignore cuts flag: 1 -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:1 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationExtendedModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. diff --git a/examples/extended/medical/dna/microdosimetry/microdosimetry.out b/examples/extended/medical/dna/microdosimetry/microdosimetry.out index f1f63b229d..e34e54cf28 100644 --- a/examples/extended/medical/dna/microdosimetry/microdosimetry.out +++ b/examples/extended/medical/dna/microdosimetry/microdosimetry.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -31,6 +31,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -83,6 +85,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -110,7 +113,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -369,7 +372,7 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 2 - User=24.890000s Real=25.437946s Sys=0.010000s + User=26.850000s Real=27.032835s Sys=0.010000s Number and type of particles created outside region "Target" : N e- : 729 _______________________ diff --git a/examples/extended/medical/dna/microprox/microprox.out b/examples/extended/medical/dna/microprox/microprox.out index 623e5ec774..8d11e42db2 100644 --- a/examples/extended/medical/dna/microprox/microprox.out +++ b/examples/extended/medical/dna/microprox/microprox.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -19,7 +19,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo WWW : http://geant4.org/ ************************************************************** -##### Create analysis manager 0x20c0160 +##### Create analysis manager 0x2a4a590 Using analysis manager Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -113,10 +115,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -140,7 +143,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -176,8 +179,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 1 De-excitation module ignores cuts 1 @@ -200,82 +202,309 @@ Use DNA e- solvation model type 11003 ### === Ignore cuts flag: 1 ### === PIXE model for hadrons: Empirical ### === PIXE model for e+-: Livermore -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:1 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationExtendedModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. ### Run 0 starts. diff --git a/examples/extended/medical/dna/microyz/microyz.out b/examples/extended/medical/dna/microyz/microyz.out index e858f87513..4def1ca073 100644 --- a/examples/extended/medical/dna/microyz/microyz.out +++ b/examples/extended/medical/dna/microyz/microyz.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -19,7 +19,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo WWW : http://geant4.org/ ************************************************************** -##### Create analysis manager 0x240ee10 +##### Create analysis manager 0x2290210 Using analysis manager Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -115,10 +117,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -142,7 +145,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -178,8 +181,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 1 De-excitation module ignores cuts 1 @@ -202,82 +204,309 @@ Use DNA e- solvation model type 11003 ### === Ignore cuts flag: 1 ### === PIXE model for hadrons: Empirical ### === PIXE model for e+-: Livermore -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:1 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationExtendedModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. ### Run 0 starts. diff --git a/examples/extended/medical/dna/moleculardna/.README.txt b/examples/extended/medical/dna/moleculardna/.README.txt index 7f42668945..7029214218 100644 --- a/examples/extended/medical/dna/moleculardna/.README.txt +++ b/examples/extended/medical/dna/moleculardna/.README.txt @@ -55,16 +55,16 @@ The geometry is built from text files for cylinders (cylinders.mac), ecoli (ecoli.mac) and human cell (human_cell.mac) geometries. - cylinders.mac : to build a 3 μm sphere filled with 200,000 individual 216 bp -long straight DNA segments in a 100×30×30 nm placement volume + long straight DNA segments in a 100×30×30 nm placement volume - human_cell.mac : to model a fibroblast cell geometry - ecoli.mac : to demonstrate a simple model where the bacterial DNA follows a -large scale fractal ‘Hilbert curve’ geometry + large scale fractal ‘Hilbert curve’ geometry For the details, please see documentation: - To construct DNA geometry models: -http://natl.github.io/fractaldna/ + http://natl.github.io/fractaldna/ - To simulate radiation-induced DNA damage with these geometries -and define damage parameters:https://natl.github.io/molecular-docs/ + and define damage parameters: https://natl.github.io/molecular-docs/ Macro commands can be used to control the geometry parameters @@ -114,6 +114,15 @@ Macro commands can be used to control the geometry parameters # DNA geometries are only ever placed in a chromosome /chromosome/add cylinder sphere 3000 0 0 0 nm + +# For the visualisation of DNA geometries, the following line can be used +/control/execute vis.mac +# More specifically, start moleculardna using the command ./molecular, to +# to open the Qt visualiser. Then use the mac file that you want, e.g. +# /control/execute cylinders.mac +# For the visualization, large amount of RAM is needed. For example +# using cylinders DNA geometries, to visualize 200 cylinders, ~2.5 GB +# are needed. For 2000 cylinders, ~11 GB are needed. \endverbatim \section MOLECULARDNA_s2 PHYSICS LIST @@ -189,6 +198,23 @@ python createSDD.py # to use it, insert the command "python3 createSDD.py". # If error with root, simply source /path/to/root/bin/thisroot.(c)sh, # do "pip install pyroot" and try again. + +# A python macro file to calculate repair kinetics is located in the folder +# repair_survival_models. This script can be used with the output of the mac +# file human_cell (10^5 primaries) to reproduced data published in +# https://arxiv.org/abs/2210.01564 +molecularDNArepair.py +# to use it, insert the command "python3 molecularDNArepair.py". +# The molecular-dna.root is also needed to run it, as produced by +# the human-cell.mac. + +# A python macro file to calculate the survival probability of cells is located +# in the folder repair_survival_models. This script is early released and needs to be optimized +# to fit any data. +molecularDNAsurvival.py +# to use it, insert the command "python3 molecularDNAsurnival.py". +# The molecular-dna.root is needed to run it, as produced by +# the human-cell.mac. \endverbatim */ diff --git a/examples/extended/medical/dna/moleculardna/History b/examples/extended/medical/dna/moleculardna/History old mode 100755 new mode 100644 index cefa31448c..5a71261ba7 --- a/examples/extended/medical/dna/moleculardna/History +++ b/examples/extended/medical/dna/moleculardna/History @@ -4,6 +4,30 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-15 Hoang Tran (molecularDNA-V11-00-11) +- correct ecoli.mac file + +## 2022-10-24 Konstantinos Chatzipapas (molecularDNA-V11-00-10) +- Add repair-survival-models + - molecularDNArepair.py + - molecularDNAsurvival.py (beta) +- Update ecoli files (fix bug) +- Update vis.mac and cylinders.mac + +## 2022-09-20 Hoang Tran (molecularDNA-V11-00-09) +- Fixed the examples naming conventions violations +- reduce event number of ecoli.mac + +## 2022-08-30 Vladimir Ivanchenko (molecularDNA-V11-00-08) +- ChemistryList - added forgotten header + +## 2022-08-27 Hoang Tran (molecularDNA-V11-00-07) +- Fix smart pointer warning in gcc 12.1. +- Fix typo in the human_cell.C. + +## 2022-07-12 Konstantinos Chatzipapas (molecularDNA-V11-00-06) +- Fix ecoli.C minor bug on filename. + ## 2022-06-10 Sergio Losilla (molecularDNA-V11-00-05) - Added missing headers. diff --git a/examples/extended/medical/dna/moleculardna/README b/examples/extended/medical/dna/moleculardna/README index 1f40cad12a..5b0c4fea07 100644 --- a/examples/extended/medical/dna/moleculardna/README +++ b/examples/extended/medical/dna/moleculardna/README @@ -57,16 +57,18 @@ http://geant4-dna.org ecoli (ecoli.mac) and human cell (human_cell.mac) geometries. - cylinders.mac : to build a 3 μm sphere filled with 200,000 individual 216 bp - long straight DNA segments in a 100×30×30 nm placement volume - - human_cell.mac : to model a fibroblast cell geometry + long straight DNA segments in a 100×30×30 nm placement volume + - human_cell.mac : to model a fibroblast cell geometry. This mac file, may be used + to produce data that may be used with the repair model, to produce results published + in https://arxiv.org/abs/2210.01564 - ecoli.mac : to demonstrate a simple model where the bacterial DNA follows a - large scale fractal ‘Hilbert curve’ geometry + large scale fractal ‘Hilbert curve’ geometry For the details, please see documentations: - To construct DNA geometry models: - http://natl.github.io/fractaldna/ + http://natl.github.io/fractaldna/ - To simulate radiation-induced DNA damage with these geometries - and define damage parameters:https://geant4-dna.github.io/molecular-docs/ + and define damage parameters:https://geant4-dna.github.io/molecular-docs/ Macro commands can be used to control the geometry parameters @@ -115,6 +117,15 @@ http://geant4-dna.org # DNA geometries are only ever placed in a chromosome /chromosome/add cylinder sphere 3000 0 0 0 nm + + # For the visualisation of DNA geometries, the following line can be used + /control/execute vis.mac + # More specifically, start moleculardna using the command ./molecular, to + # to open the Qt visualiser. Then use the mac file that you want, e.g. + # /control/execute cylinders.mac + # For the visualization, large amount of RAM is needed. For example + # using cylinders DNA geometries, to visualize 200 cylinders, ~2.5 GB + # are needed. For 2000 cylinders, ~11 GB are needed. 2 - PHYSICS LIST @@ -133,7 +144,7 @@ http://geant4-dna.org DNA damage model to relate energy depositions close to DNA, and chemical reactions with DNA to actual DNA damage - The fowlling macro commands is used to control the damage parameters + The following macro commands is used to control the damage parameters # Direct damage Threshold /dnadamage/directDamageLower 17.5 eV @@ -174,7 +185,7 @@ http://geant4-dna.org - cylinders.C : to plot damage from cylinders geometry - ecoli.C : to plot damage from ecoli geometry - human_cell.C : to plot damage and fragments distribution from human_cell - geometry + geometry A python macro file is provided to modify ROOT output in SDD file format: - createSDD.py : to use it, insert the command "python3 createSDD.py". @@ -182,7 +193,19 @@ http://geant4-dna.org source /path/to/root/bin/thisroot.(c)sh, do "pip install pyroot" and try again. - - + A python macro file to calculate repair kinetics is located in the folder + repair_survival_models. This script can be used with the output of the mac + file human_cell (10^5 primaries) to reproduced data published in + https://arxiv.org/abs/2210.01564 + - molecularDNArepair.py : to use it, insert the command "python3 molecularDNArepair.py". + The molecular-dna.root is also needed to run it, as produced by + the human-cell.mac. + + A python macro file to calculate the survival probability of cells is located + in the folder repair_survival_models. This script is early released and needs to be optimized + to fit any data. + - molecularDNAsurvival.py : to use it, insert the command "python3 molecularDNAsurnival.py". + The molecular-dna.root is needed to run it, as produced by + the human-cell.mac. diff --git a/examples/extended/medical/dna/moleculardna/createSDD.py b/examples/extended/medical/dna/moleculardna/createSDD.py old mode 100644 new mode 100755 diff --git a/examples/extended/medical/dna/moleculardna/cylinders.mac b/examples/extended/medical/dna/moleculardna/cylinders.mac index fd5533697d..6ef738b7d0 100644 --- a/examples/extended/medical/dna/moleculardna/cylinders.mac +++ b/examples/extended/medical/dna/moleculardna/cylinders.mac @@ -59,6 +59,9 @@ /run/initialize +# Uncomment the next line to visualize cylinder DNA geometry +#/control/execute vis.mac + # unit tests #/dnatests/uniqueid #/dnatests/basepairs diff --git a/examples/extended/medical/dna/moleculardna/ecoli.C b/examples/extended/medical/dna/moleculardna/ecoli.C index 5eb371f9c2..e9fdac714c 100644 --- a/examples/extended/medical/dna/moleculardna/ecoli.C +++ b/examples/extended/medical/dna/moleculardna/ecoli.C @@ -19,12 +19,12 @@ { //*******************************************************************************// // If you need to add multiple root outputs, by multithreading, use this command: -system ("hadd -O -f moleXcular-dna.root molecular-dna_t*.root"); +system ("hadd -O -f molecular-dna.root molecular-dna_t*.root"); // Define these parameters of the simulation char ifile[256] = "molecular-dna.root"; // input filepath -Double_t r3 = 950e-9 * 400e-9 * 400e-9; // a * b * c // Chromosome size, as defined in the mac file, but in meters. If sphere, a=b=c -Double_t Nbp = 2.448108; // Mbp // Length of the DNA chain in Mbp +Double_t r3 = 900e-9 * 400e-9 * 400e-9; // a * b * c // Chromosome size, as defined in the mac file, but in meters. If sphere, a=b=c +Double_t Nbp = 4.629360; // Mbp // Length of the DNA chain in Mbp Double_t mass = 997 * 4 * 3.141592 * r3 / 3 ; // waterDensity * 4/3 * pi * r3 in kg /////////////////////////////////////////////////////////////////////////////////// //*******************************************************************************// diff --git a/examples/extended/medical/dna/moleculardna/ecoli.mac b/examples/extended/medical/dna/moleculardna/ecoli.mac index 1af9411c95..b3948f8f64 100644 --- a/examples/extended/medical/dna/moleculardna/ecoli.mac +++ b/examples/extended/medical/dna/moleculardna/ecoli.mac @@ -14,12 +14,12 @@ /dnageom/fractalScaling 50 50 50 nm /dnageom/definitionFile geometries/bacteria-XFXFXFX-4.txt -/dnageom/placementVolume turn geometries/4strands_50nm_turn.txt -/dnageom/placementVolume turntwist geometries/4strands_50nm_turn.txt true -/dnageom/placementVolume straight geometries/4strands_50nm_straight.txt +/dnageom/placementVolume turn geometries/8strands_50nm_turn.txt +/dnageom/placementVolume turntwist geometries/8strands_50nm_turn.txt true +/dnageom/placementVolume straight geometries/8strands_50nm_straight.txt /chem/activate true -/scheduler/verbose 1 +/scheduler/verbose 0 /dnadamage/directDamageLower 17.5 eV /dnadamage/directDamageUpper 17.5 eV @@ -37,14 +37,14 @@ /dnadamage/inductionEaqChance 0.00 -/chromosome/add bacteria ellipse 950 400 400 0 0 0 nm 0 0 0 +/chromosome/add bacteria ellipse 900 400 400 0 0 0 nm 0 0 0 # /chromosome/add bacteria rod 450 950 25 0 0 nm 0 90 0 #/chromosome/plotData chromosome.txt #/dnatests/chromosome -/analysisDNA/saveStrands true +/analysisDNA/saveStrands false /analysisDNA/strandDir ./damage_maps/ /run/initialize @@ -70,4 +70,4 @@ /gps/particle e- /gps/energy 9.999 keV -/run/beamOn 1000 +/run/beamOn 10 diff --git a/examples/extended/medical/dna/moleculardna/human_cell.C b/examples/extended/medical/dna/moleculardna/human_cell.C index 4661953cf5..571a55326f 100644 --- a/examples/extended/medical/dna/moleculardna/human_cell.C +++ b/examples/extended/medical/dna/moleculardna/human_cell.C @@ -19,7 +19,7 @@ { //*******************************************************************************// // If you need to add multiple root outputs, by multithreading, use this command: -system ("hadd -O -f moleXcular-dna.root molecular-dna_t*.root"); +system ("hadd -O -f molecular-dna.root molecular-dna_t*.root"); // Define these parameters of the simulation char ifile[256] = "molecular-dna.root"; // input filepath diff --git a/examples/extended/medical/dna/moleculardna/human_cell.mac b/examples/extended/medical/dna/moleculardna/human_cell.mac index 50aac54ba5..7b8c103614 100644 --- a/examples/extended/medical/dna/moleculardna/human_cell.mac +++ b/examples/extended/medical/dna/moleculardna/human_cell.mac @@ -51,10 +51,10 @@ /gps/direction 0 -1 0 # Source Energy -/gps/particle proton +/gps/particle e- -/analysisDNA/fileName 50MeV -/gps/energy 50 MeV +#/analysisDNA/fileName 50MeV +/gps/energy 0.662 MeV /run/beamOn 2 diff --git a/examples/extended/medical/dna/moleculardna/include/DNAHashing.hh b/examples/extended/medical/dna/moleculardna/include/DNAHashing.hh index d70f49d70b..13094d657b 100644 --- a/examples/extended/medical/dna/moleculardna/include/DNAHashing.hh +++ b/examples/extended/medical/dna/moleculardna/include/DNAHashing.hh @@ -71,7 +71,7 @@ namespace G4::hashing #define _H_(x) _I_(x) _I_(x + 1llu) #define _I_(x) f::value, - static constexpr unsigned crc_table[] = { _A_(0llu) }; + static constexpr unsigned fCrc_table[] = { _A_(0llu) }; //-------------------------------------------------------------------------- // CRC32 ALGO @@ -79,7 +79,7 @@ namespace G4::hashing //-------------------------------- // RUN TIME ALGO - uint32_t hash(const char* str, size_t len); + uint32_t Hash(const char* str, size_t len); //-------------------------------------------------------------------------- // Details for compilation time @@ -87,21 +87,21 @@ namespace G4::hashing { // CRC32 Table (zlib polynomial) template - constexpr uint32_t combine_crc32(const char* str, uint32_t part) + constexpr uint32_t Combine_crc32(const char* str, uint32_t part) { - return (part >> 8) ^ crc_table[(part ^ str[idx]) & 0x000000FF]; + return (part >> 8) ^ fCrc_table[(part ^ str[idx]) & 0x000000FF]; } // recursion template - constexpr uint32_t crc32(const char* str) + constexpr uint32_t Crc32(const char* str) { - return combine_crc32(str, crc32(str)); + return Combine_crc32(str, Crc32(str)); } // stop-recursion template <> - constexpr uint32_t crc32(const char* /*str*/) + constexpr uint32_t Crc32(const char* /*str*/) { return 0xFFFFFFFF; } @@ -110,14 +110,14 @@ namespace G4::hashing //-------------------------------------------------------------------------- // use COMPILATION TIME CRC32 as a hash function template - constexpr uint32_t hash(const char (&str)[len]) + constexpr uint32_t Hash(const char (&str)[len]) { - return detail::crc32(str) ^ 0xFFFFFFFF; + return detail::Crc32(str) ^ 0xFFFFFFFF; } //-------------------------------------------------------------------------- // std::string hasher for convenience - uint32_t hash(const std::string& str); + uint32_t Hash(const std::string& str); // in window //warning C4717: 'G4::hashing::crc32::crc32_hasher::operator()': recursive on all control paths, function will cause runtime stack overflow /* @@ -155,7 +155,7 @@ namespace G4::hashing //------------------------------------------------------------------------ // Run time - size_t hash(const std::string& str); + size_t Hash(const std::string& str); //-------------------------------------------------------------------------- // Details for compilation time @@ -163,14 +163,14 @@ namespace G4::hashing { // recursion template - constexpr size_t fnv(const char* str, size_t len, size_t hash) + constexpr size_t Fnv(const char* str, size_t len, size_t hash) { - return fnv(str, len, (hash ^ (str[len - idx])) * fnv_prime); + return Fnv(str, len, (hash ^ (str[len - idx])) * fnv_prime); } // stop-recursion template <> - constexpr size_t fnv<-1>(const char*, size_t, size_t hash) + constexpr size_t Fnv<-1>(const char*, size_t, size_t hash) { return hash; } @@ -179,9 +179,9 @@ namespace G4::hashing //------------------------------------------------------------------------ // COMPILATION TIME template - constexpr size_t hash(const char (&str)[len]) + constexpr size_t Hash(const char (&str)[len]) { - return detail::fnv(str, len - 2, fnv_offset_basis); + return detail::Fnv(str, len - 2, fnv_offset_basis); } //------------------------------------------------------------------------ @@ -194,10 +194,10 @@ namespace G4::hashing template size_t constexpr operator()(const char (&str)[len]) const { - return hash(str); + return Hash(str); } - size_t operator()(const T& str) const { return hash(str); } + size_t operator()(const T& str) const { return Hash(str); } }; // template<> @@ -207,7 +207,7 @@ namespace G4::hashing // } template - size_t constexpr hash(T&& t) + size_t constexpr Hash(T&& t) { return fnv_hasher::type>()(std::forward(t)); } @@ -225,14 +225,14 @@ namespace G4::hashing { // recursion template - constexpr size_t larson(const char* str, size_t len, size_t hash) + constexpr size_t Larson(const char* str, size_t len, size_t hash) { - return larson(str, len + 1, hash * 101 + str[len]); + return Larson(str, len + 1, hash * 101 + str[len]); } // stop-recursion template <> - constexpr size_t larson<-1>(const char*, size_t, size_t hash) + constexpr size_t Larson<-1>(const char*, size_t, size_t hash) { return hash; } @@ -241,16 +241,16 @@ namespace G4::hashing //------------------------------------------------------------------------ // COMPILATION TIME template - constexpr size_t cthash(const char (&str)[len], unsigned int seed = 0) + constexpr size_t Cthash(const char (&str)[len], unsigned int seed = 0) { - return detail::larson(str, 0, seed); + return detail::Larson(str, 0, seed); } //------------------------------------------------------------------------ // RUN TIME - size_t hash(const char* str, unsigned int seed = 0); + size_t Hash(const char* str, unsigned int seed = 0); - size_t hash(std::string str, unsigned int seed = 0); + size_t Hash(std::string str, unsigned int seed = 0); } // namespace larson //-------------------------------------------------------------------------- @@ -273,14 +273,14 @@ namespace G4::hashing }; template - std::size_t constexpr hash(T&& t) + std::size_t constexpr Hash(T&& t) { return hasher::type>()(std::forward(t)); } // not necessary template <> - std::size_t constexpr hash(const char*&& str) + std::size_t constexpr Hash(const char*&& str) { return hasher()(str); } diff --git a/examples/extended/medical/dna/moleculardna/include/MoleculeList.hh b/examples/extended/medical/dna/moleculardna/include/MoleculeList.hh index 37f1f19028..024a01b566 100644 --- a/examples/extended/medical/dna/moleculardna/include/MoleculeList.hh +++ b/examples/extended/medical/dna/moleculardna/include/MoleculeList.hh @@ -51,9 +51,9 @@ namespace utility { using namespace G4::hashing; // Larson: works for the given set of words and is the fastest -#define CT_HASHER(x) larson::cthash(x) +#define CT_HASHER(x) larson::Cthash(x) #define DEFINE_HASHER -#define RT_HASHER(x) larson::hash(x) +#define RT_HASHER(x) larson::Hash(x) // Default //#define CT_HASHER(x) "x"_hash @@ -76,12 +76,12 @@ namespace utility //#define DEFINE_HASHER G4ThreadLocalStatic std::hash stdhasher; //#define RT_HASHER(x) stdhasher(x) - static constexpr size_t sugar_h = CT_HASHER("SUGAR"); - static constexpr size_t p_h = CT_HASHER("PHOSPHATE"); - static constexpr size_t a_h = CT_HASHER("ADENINE"); - static constexpr size_t g_h = CT_HASHER("GUANINE"); - static constexpr size_t t_h = CT_HASHER("THYMINE"); - static constexpr size_t c_h = CT_HASHER("CYTOSINE"); + static constexpr size_t fSugar_h = CT_HASHER("SUGAR"); + static constexpr size_t fP_h = CT_HASHER("PHOSPHATE"); + static constexpr size_t fA_h = CT_HASHER("ADENINE"); + static constexpr size_t fG_h = CT_HASHER("GUANINE"); + static constexpr size_t fT_h = CT_HASHER("THYMINE"); + static constexpr size_t fC_h = CT_HASHER("CYTOSINE"); inline ::molecule GetMoleculeEnum(const G4String& mol) { @@ -93,22 +93,22 @@ namespace utility switch(mol_h) { - case sugar_h: + case fSugar_h: // G4cout << "RETURN SUGAR FOR : " << mol << G4endl; return SUGAR; - case p_h: + case fP_h: // G4cout << "RETURN P FOR : " << mol << G4endl; return PHOSPHATE; - case a_h: + case fA_h: // G4cout << "RETURN A FOR : " << mol << G4endl; return ADENINE; - case g_h: + case fG_h: // G4cout << "RETURN G FOR : " << mol << G4endl; return GUANINE; - case c_h: + case fC_h: // G4cout << "RETURN C FOR : " << mol << G4endl; return CYTOSINE; - case t_h: + case fT_h: // G4cout << "RETURN T FOR : " << mol << G4endl; return THYMINE; default: diff --git a/examples/extended/medical/dna/moleculardna/include/UtilityFunctions.hh b/examples/extended/medical/dna/moleculardna/include/UtilityFunctions.hh index 101fd94d3b..cd8d5b1783 100644 --- a/examples/extended/medical/dna/moleculardna/include/UtilityFunctions.hh +++ b/examples/extended/medical/dna/moleculardna/include/UtilityFunctions.hh @@ -37,34 +37,34 @@ namespace utility { - std::vector& split(const G4String&, char, std::vector&); + std::vector& Split(const G4String&, char, std::vector&); - std::vector split(const G4String&, char); + std::vector Split(const G4String&, char); - G4String get_seperated_element(const G4String&, char, G4int); + G4String Get_seperated_element(const G4String&, char, G4int); - std::array get_four_elements(const G4String&, char); + std::array Get_four_elements(const G4String&, char); - bool path_exists(const G4String&); + G4bool Path_exists(const G4String&); - [[maybe_unused]] G4String getcwd(); + G4String Getcwd(); - G4double min(const G4ThreeVector&); + G4double Min(const G4ThreeVector&); // sign function template - [[maybe_unused]] inline constexpr int signum(T, std::false_type); + [[maybe_unused]] inline constexpr G4int Signum(T, std::false_type); template - inline constexpr int signum(T, std::true_type); + inline constexpr int Signum(T, std::true_type); template - inline constexpr int signum(T); + inline constexpr int Signum(T); // find last (highest) significant bit // linux implementation, copied for portability // http://lxr.linux.no/#linux+v2.6.26.5/include/asm-generic/bitops/fls.h - static inline int fls(int x) + static inline int Fls(int x) { int r = 32; diff --git a/examples/extended/medical/dna/moleculardna/moleculardna.out b/examples/extended/medical/dna/moleculardna/moleculardna.out new file mode 100644 index 0000000000..df6e42d084 --- /dev/null +++ b/examples/extended/medical/dna/moleculardna/moleculardna.out @@ -0,0 +1,668 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + +/dnageom/verbose 1 +/chem/activate true +/scheduler/verbose 0 +/material/verbose 2 +/world/worldSize 10200 nm +/cell/radiusSize 3 3 3 um +/dnageom/setSmartVoxels 1 +/dnageom/checkOverlaps false +/dnageom/radicalKillDistance 9 nm +/dnageom/interactionDirectRange 7 angstrom +/dnageom/placementSize 30 30 100 nm +/dnageom/fractalScaling 1 1 1 nm +/dnageom/definitionFile geometries/prisms200k_r3000.txt +/dnageom/placementVolume prism geometries/straight-216-0.txt +/dnageom/setVoxelPlacementAnglesAsMultiplesOfPi false +/dnageom/useCustomMoleculeSizes false +/dnageom/drawCellVolumes false +/dnageom/activateHistoneScavenging true +/chromosome/add cylinder sphere 3000 0 0 0 nm +/dnadamage/directDamageLower 17.5 eV +/dnadamage/directDamageUpper 17.5 eV +/dnadamage/indirectOHBaseChance 1.0 +/dnadamage/indirectOHStrandChance 0.65 +/dnadamage/inductionOHChance 0.0 +/dnadamage/indirectHBaseChance 1.0 +/dnadamage/indirectHStrandChance 0.65 +/dnadamage/inductionHChance 0.00 +/dnadamage/indirectEaqBaseChance 1.0 +/dnadamage/indirectEaqStrandChance 0.65 +/dnadamage/inductionEaqChance 0.00 +/analysisDNA/saveStrands false +/analysisDNA/fragmentGap 0 +/run/initialize +userDetector->Construct() start. +G4NistMaterialBuilder::FindOrBuildMaterial G4_Galactic +G4NistMaterialBuilder: BuildMaterial #286 +New material nComponents= 1 +G4Material: Mean excitation energy is changed for G4_Galactic Iold= 19.2eV Inew= 21.8 eV +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +Loading Voxel: prism +Histones placed per chromosome: +Chromosome Histones +----------------------------------- +cylinder : 0 +Base Pairs placed per chromosome: +Chromosome Base Pairs +----------------------------------- +cylinder : 43200216 +------------------------------- +Name Vols EndNodes Max(vols/node) +---------------------------------------------- +prism 1296 5048 1 +------------------------------------------- +world is registered to the default region. +physicsList->Construct() start. +--- G4CoupledTransportation is used +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +G4NistMaterialBuilder::FindOrBuildMaterial G4_WATER +physicsList->CheckParticleList() start. +physicsList->setCut() start. +/run/printProgress 100 +/gps/particle e- +/gps/ang/type iso +/gps/energy 4.5 keV +/gps/pos/type Volume +/gps/pos/shape Sphere +/gps/pos/radius 500 nm +/gps/pos/centre 0 0 0 nm +/run/beamOn 2 +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 0 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 10 eV +Max kinetic energy for tables 300 MeV +Number of bins per decade of a table 20 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 0.01 mm) +Step function for muons/hadrons (0.1, 0.05 mm) +Step function for light ions (0.1, 0.02 mm) +Step function for general ions (0.1, 0.001 mm) +Lowest e+e- kinetic energy 0 eV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 1 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Universal +Use built-in Birks satuaration 0 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 1 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 0 eV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 2 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 0 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.08 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 3 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 1 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= +====== Atomic Deexcitation Parameters ======== +======================================================================= +Fluorescence enabled 1 +Directory in G4LEDATA for fluorescence data files fluor +Auger electron cascade enabled 1 +PIXE atomic de-excitation enabled 0 +De-excitation module ignores cuts 1 +Type of PIXE cross section for hadrons Empirical +Type of PIXE cross section for e+- Livermore +======================================================================= +====== DNA Physics Parameters ======== +======================================================================= +Use fast sampling in DNA models 1 +Use Stationary option in DNA models 0 +Use DNA with multiple scattering of e- 0 +Use DNA e- solvation model type 11003 +======================================================================= + +### === Deexcitation model UAtomDeexcitation is activated for 1 region: + DefaultRegionForTheWorld 1 1 0 +### === Auger flag: 1 +### === Ignore cuts flag: 1 + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 300 MeV in 59 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS + +e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV + DummyModel : Emin= 7.4 eV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +e-_G4DNAElastic: for e- SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV + DummyModel : Emin= 100 eV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV + DummyModel : Emin= 13 eV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationExtendedModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo +====================================================================== +====== Radioactive Decay Physics Parameters ======= +====================================================================== +min MeanLife (from G4NuclideTable) 1 ns +Max life time (from G4DeexPrecoParameters) 1000 ps +Internal e- conversion flag 1 +Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 +Enable correlated gamma emission 0 +Max 2J for sampling of angular correlations 10 +Atomic de-excitation enabled 1 +Auger electron emission enabled 1 +Check EM cuts disabled for atomic de-excitation 1 +Use Bearden atomic level energies 0 +Use ANSTO fluorescence model 0 +Threshold for very long decay time at rest 3.171e+10 y +====================================================================== + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +Region -- -- appears in world volume + This region is in the mass world. + Root logical volume(s) : world + Pointers : G4VUserRegionInformation[0], G4UserLimits[0], G4FastSimulationManager[0], G4UserSteppingAction[0] + Materials : G4_Galactic G4_WATER + Production cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um + +Region -- -- appears in world volume + This region is in the parallel world. + Root logical volume(s) : DNAWorld + Pointers : G4VUserRegionInformation[0], G4UserLimits[0], G4FastSimulationManager[0], G4UserSteppingAction[0] + Materials : G4_WATER G4_DNA_PHOSPHATE G4_DNA_DEOXYRIBOSE G4_DNA_ADENINE G4_DNA_THYMINE G4_DNA_CYTOSINE G4_DNA_GUANINE + Production cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_Galactic + Range cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um + Energy thresholds : gamma 100 eV e- 100 eV e+ 100 eV proton 100 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes + Material : G4_WATER + Range cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um + Energy thresholds : gamma 100 eV e- 242.143 eV e+ 239.346 eV proton 100 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + DefaultRegionForParallelWorld + +Index : 2 used in the geometry : Yes + Material : G4_DNA_PHOSPHATE + Range cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um + Energy thresholds : gamma 100 eV e- 203.632 eV e+ 201.101 eV proton 100 eV + Region(s) which use this couple : + DefaultRegionForParallelWorld + +Index : 3 used in the geometry : Yes + Material : G4_DNA_DEOXYRIBOSE + Range cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um + Energy thresholds : gamma 100 eV e- 240.342 eV e+ 237.62 eV proton 100 eV + Region(s) which use this couple : + DefaultRegionForParallelWorld + +Index : 4 used in the geometry : Yes + Material : G4_DNA_ADENINE + Range cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um + Energy thresholds : gamma 100 eV e- 224.845 eV e+ 222.255 eV proton 100 eV + Region(s) which use this couple : + DefaultRegionForParallelWorld + +Index : 5 used in the geometry : Yes + Material : G4_DNA_THYMINE + Range cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um + Energy thresholds : gamma 100 eV e- 226.863 eV e+ 224.24 eV proton 100 eV + Region(s) which use this couple : + DefaultRegionForParallelWorld + +Index : 6 used in the geometry : Yes + Material : G4_DNA_CYTOSINE + Range cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um + Energy thresholds : gamma 100 eV e- 226.072 eV e+ 223.461 eV proton 100 eV + Region(s) which use this couple : + DefaultRegionForParallelWorld + +Index : 7 used in the geometry : Yes + Material : G4_DNA_GUANINE + Range cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um + Energy thresholds : gamma 100 eV e- 223.369 eV e+ 220.792 eV proton 100 eV + Region(s) which use this couple : + DefaultRegionForParallelWorld + +================================================================== + +Start closing geometry. +G4GeometryManager::ReportVoxelStats -- Voxel Statistics + + Total memory consumed for geometry optimisation: 84655 kByte + Total CPU time elapsed for geometry optimisation: 66 seconds + + Voxelisation: top CPU users: + Percent Total CPU System CPU Memory Volume + ------- ---------- ---------- -------- ---------- + 50.40 33.02 0.13 42138k CellLogical + 49.47 32.41 0.16 42138k DNAPhysLV + 0.08 0.05 0.00 380k prism + + Voxelisation: top memory users: + Percent Memory Heads Nodes Pointers Total CPU Volume + ------- -------- ------ ------ -------- ---------- ---------- + 49.78 42137k 311671 314256 703064 33.02 CellLogical + 49.78 42137k 311671 314256 703064 32.41 DNAPhysLV + 0.45 379k 1273 3780 14482 0.05 prism +### Run 0 starts. +AnalysisManager::Initialize() GetRunID : 0 +... set ntuple merging row mode : row-wise - done +... create file : molecular-dna.root - done +... open analysis file : molecular-dna.root - done +... open analysis file : molecular-dna.root - done +--> Event 0 starts. + +DNAIndependentReactionTimeModel will be used ========================== + +======================================================================= + + Run terminated. +Run Summary + Number of events processed : 2 + User=0.600000s Real=0.618376s Sys=0.020000s +... write file : molecular-dna.root - done +... close file : molecular-dna.root - done +G4 kernel has come to Quit state. +UserDetectorConstruction deleted. +UserPhysicsList deleted. +UserActionInitialization deleted. +UserWorkerInitialization deleted. +UserWorkerThreadInitialization deleted. +UserRunAction deleted. +UserPrimaryGenerator deleted. +RunManager is deleting RunManagerKernel. +G4SDManager deleted. +EventManager deleted. +Units table cleared. +TransportationManager deleted. +Total navigation history collections cleaned: 1082 +G4RNGHelper object is deleted. +================== Deleting memory pools =================== +Pool ID '20G4NavigationLevelRep', size : 0.961 MB +Pool ID '19G4ElectronOccupancy', size : 0.000961 MB +Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB +Pool ID '16G4SmartVoxelNode', size : 19.6 MB +Pool ID '17G4SmartVoxelProxy', size : 19.2 MB +Pool ID '7G4Event', size : 0.000961 MB +Pool ID '15G4PrimaryVertex', size : 0.000961 MB +Pool ID '17G4PrimaryParticle', size : 0.000961 MB +Pool ID '13ChromosomeHit', size : 0.000961 MB +Pool ID '17G4DynamicParticle', size : 0.126 MB +Pool ID '7G4Track', size : 0.252 MB +Pool ID '18G4TouchableHistory', size : 0.0654 MB +Pool ID '15G4CountedObjectIvE', size : 0.0317 MB +Pool ID '10G4Molecule', size : 0.0759 MB +Pool ID '8G4OctreeI19G4FastList_iteratorI7G4TrackE9ExtractorI10G4FastListIS1_EEN5CLHEP10Hep3VectorEE', size : 0.000961 MB +Pool ID '6DNAHit', size : 0.000961 MB +Number of memory pools allocated: 16 of which, static: 0 +Dynamic pools deleted: 16 / Total memory freed: 40 MB +============================================================ +G4Allocator objects are deleted. +UImanager deleted. +StateManager deleted. +RunManagerKernel is deleted. Good bye :) +RunManager is deleted. diff --git a/examples/extended/medical/dna/moleculardna/repair_survival_models/molecularDNArepair.py b/examples/extended/medical/dna/moleculardna/repair_survival_models/molecularDNArepair.py new file mode 100755 index 0000000000..98e5ea2d49 --- /dev/null +++ b/examples/extended/medical/dna/moleculardna/repair_survival_models/molecularDNArepair.py @@ -0,0 +1,392 @@ +#!/usr/bin/env python +# coding: utf-8 + +# To run, change the links and definitions in this script and +# type in the terminal containing the file +# $python3 molecularDNArepair.py + +# Authors: +# K. Chatzipapas (*), D. Sakata, H. N. Tran, M. Dordevic, S. Incerti et al. +# (*) contact: k.chatzipapas@yahoo.com + +# Define filenames +outputFile = "molecularDNArepair.txt" +iRootFile = "../molecular-dna.root" +print("\nInput file:",iRootFile,"\n") + +# Define cell parameters +r3 = 7100*1e-09 * 2500*1e-09 * 7100*1e-09 # a * b * c / Chromosome size, as defined in the mac file, but in meters. If sphere, a=b=c +NBP = 6405886128 # bp / Length of the DNA chain in Mbp +mass = 997 * 4 * 3.141592 * r3 / 3 # waterDensity * 4/3 * pi * r3 in kg + +# Integration parameters +t0 = 0.0; # Starting time point (dimensionless) +t1 = 25; # Final time point (dimensionless) +dt = 0.001 #0.001; # Intergration time step (dimensionless) +numpoints = int( (t1 - t0) / dt ) + + +# ONLY ADVANCED USERS AFTER THIS POINT +# Repair model parameters may be find at line 105-172 +##################################################################################################################### +import ROOT as root +import numpy as np +import matplotlib.pyplot as plt +from scipy.integrate import odeint as od + +# Initialization +DSBBPID = [] +i = 0 +repDSB = 0 +irrDSB = 0 +acc_edep = 0 +dose = 0 +eVtoJ = 1.60218e-19 + + +f = root.TFile(iRootFile) + +fTree = f.Get("tuples/damage") +for e in fTree: + if (e.TypeClassification=="DSB" or e.TypeClassification=="DSB+" or e.TypeClassification=="DSB++"): + DSBBPID.append((e.Event, e.BasePair)) + i += 1 + +gTree = f.Get("tuples/classification") +for e in gTree: + repDSB += e.DSB + irrDSB += e.DSBp + e.DSBpp # 2*eDSBpp could also be used + +ffTree = f.Get("tuples/chromosome_hits") +for ev in ffTree: + acc_edep += (ev.e_chromosome_kev + ev.e_dna_kev) *1e3 # eV + + + +# Calculate the total number of DSBs +totalDSB = repDSB + irrDSB + +# Calculate the absorbed dose +dose = acc_edep * eVtoJ / mass # Dose in Gy + +#print ("r3=", r3) +#print("Dose :", dose, "\ni :", i, "\nTotal DSB :", totalDSB, "\nRepairable DSBs :", repDSB, "\nIrrepairable DSBs :", irrDSB) + +NBP_of_cell = 5000000000 # This is a constant of the model, as defined by Belov et al. +NBPcell = NBP/NBP_of_cell +totalDSBperGyCell = totalDSB/NBPcell/dose +print ("Dose :", dose, "\nTotal DSB/Gy/Cell :", totalDSBperGyCell) +S1 = repDSB/NBPcell/dose +S2 = irrDSB/NBPcell/dose +print("Repairable DSBs/Gy/cell :", S1, "\nIrrepairable DSBs/Gy/cell :", S2) + + +# Model parameters +fDz = 1 # Dose is set to 1 Gy, because falpha is normalized to DSB/Gy/Cell +falpha = totalDSBperGyCell #27.5 #totalDSB # total DSB +fNirrep = irrDSB/totalDSB # irrepDSB # racirreparable = (G4double)fIrreparableDSBs/(G4double)fTotDSBs; +if (fNirrep == 0): + fNirrep = 0.01 # For not printing error +print("Ratio of irrepairable to repairable damage :", fNirrep) + +# Initial conditions for ODE +NbEquat = 29 +Y = [0] * NbEquat +#print (Y[1]) +Y[0] = falpha * fDz +YP = [0] * NbEquat +print("\nY[0] used in the model :", Y[0]) + +# Create the time samples for the output of the ODE solver. +# I use a large number of points, only because I want to make +# a plot of the solution that looks nice. +t = [(t1-t0) * float(i) / (numpoints - 1) for i in range(numpoints)] + + +# DIMENSIONAL REACTION RATES DEFINITON (check Belov et al.) (Belov OV, et al. J Theor Biol. 2015 Feb 7;366:115-30. doi: 10.1016/j.jtbi.2014.09.024) +# +#------------NHEJ-------------- +K1 = 11.052 #other:10.02 #11.052 # M-1*h-1 # change parametrs based on the article of Belov et al. +Kmin1 = 6.6*1e-01 #6.59999*1e-04 # h-1 # other 6.6*1e-01 # +K2 = 5.82*1e+05 #18.8305*(1.08517-np.exp(-21.418/pow(fDz,1.822))) # M-1*h-1 # other:5.82*1e+05 # +#print (K2) +Kmin2 = 5.26*1e-01 #h-1 +K3 = 1.86 # h-1 +K4 = 1.38*1e+06 # M-1*h-1 +Kmin4 = 3.86*1e-04 # h-1 +K5 = 15.24 # M-1*h-1 +Kmin5 = 8.28 # h-1 +K6 = 18.06 # M-1*h-1 +Kmin6 = 1.33 # h-1 +K7 = 2.73*1e+05 # M-1*h-1 +Kmin7 = 3.2 # h-1 +#K8 is a normalization factor and sometimes it needs to be adjusted. +normK8 = 0.35 +K8 = normK8*5.52*1e-01 # h-1 +K9 = 1.66*1e-01 # h-1 +K10 = (1.93*1e-07)/fNirrep # M +K11 = 7.50*1e-02 # h-1 +K12 = 11.1 # h-1 +# +#------------HR-------------- +P1 = 1.75*1e+03 # M-1*h-1 +Pmin1 = 1.33*1e-04 # h-1 +P2 = 0.39192 # h-1 +Pmin2 = 2.7605512*1e+02 # h-1 +P3 = 1.37*1e+04 # M-1*h-1 +Pmin3 = 2.34 # h-1 +P4 = 5.52*1e-2 #3.588*1e-02 # h-1 +P5 = 1.20*1e+05 # M-1*h-1 +Pmin5 = 8.82*1e-05 # h-1 +P6 = 1.87*1e+05 #1.54368*1e+06 # M-1*h-1 +Pmin6 = 1.55*1e-03 # h-1 +P7 = 21.36 #1.4904 # h-1 +P8 = 1.20*1e+04 # M-1*h-1 +Pmin8 = 2.49*1e-04 # h-1 +P9 = 4.88*1e-1 #1.104 # h-1 +P10 = 7.20*1e-03 # h-1 +P11 = 6.06*1e-04 # h-1 +P12 = 2.76*1e-01 # h-1 +# +#------------SSA-------------- +Q1 = 7.8*1e+03 #1.9941*1e+05 # M-1*h-1 +Qmin1 = 1.71*1e-04 # h-1 +Q2 = 3*1e+04 #4.8052*1e+04 # M-1*h-1 +Q3 = 6*1e+03 # M-1*h-1 +Qmin3 = 6.06*1e-04 # h-1 +Q4 = 1.66*1e-06 #1.62*1e-03 # h-1 +Q5 = 8.40*1e+04 # M-1*h-1 +Qmin5 = 4.75*1e-04 # h-1 +Q6 = 11.58 # h-1 +# +#-------alt-NHEJ (MMEJ)-------- +R1 = 2.39*1e+03 # M-1*h-1 +Rmin1 = 12.63 # h-1 +R2 = 4.07*1e+04 # M-1*h-1 +R3 = 9.82 # h-1 +R4 = 1.47*1e+05 # M-1*h-1 +Rmin4 = 2.72 # h-1 +R5 = 1.65*1e-01 # h-1 +# +# Scalling rate XX1 +XX1 = 9.19*1e-07 # M +XX3 = 2.3 *1e-12 # M +# +# DIMENSIONLESS REACTION RATES +# +#------------NHEJ-------------- +k1 = K1*XX1/K8 +kmin1 = Kmin1/K8 +k2 = K2*XX1/K8 +kmin2 = Kmin2/K8 +k3 = K3/K8 +k4 = K4*XX1/K8 +kmin4 = Kmin4/K8 +k5 = K5*XX1/K8 +kmin5 = Kmin5/K8 +k6 = K6*XX1/K8 +kmin6 = Kmin6/K8 +k7 = K7*XX1/K8 +kmin7 = Kmin7/K8 +k8 = K8/K8 +k9 = K9/K8 +k10 = K10/XX1 +k11 = K11/K8 +k12 = K12/K8 +# +#------------HR-------------- +p1 = P1*XX1/K8 +pmin1 = Pmin1/K8 +p2 = P2/K8 +pmin2 = Pmin2/K8 +p3 = P3*XX1/K8 +pmin3 = Pmin3/K8 +p4 = P4/K8 +p5 = P5*XX1/K8 +pmin5 = Pmin5/K8 +p6 = P6*XX1/K8 +pmin6 = Pmin6/K8 +p7 = P7/K8 +p8 = P8*XX1/K8 +pmin8 = Pmin8/K8 +p9 = P9/K8 +p10 = P10/K8 +p11 = P11/K8 +p12 = P12/K8 +# +#------------SSA-------------- +q1= Q1*XX1/K8 +qmin1 = Qmin1/K8 +q2 = Q2*XX1/K8 +q3 = Q3*XX1/K8 +qmin3 = Qmin3/K8 +q4 = Q4/K8 +q5 = Q5*XX1/K8 +qmin5 = Qmin5/K8 +q6 = Q6/K8 +# +#-------alt-NHEJ (MMEJ)-------- +r1 = R1*XX1/K8 +rmin1 = Rmin1/K8 +r2 = R2*XX1/K8 +r3 = R3/K8 +r4 = R4*XX1/K8 +rmin4 = Rmin4/K8 +r5 = R5/K8 +#------------------------------------ + +p = [ k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k12, + kmin1, kmin2, kmin4, kmin5, kmin6, kmin7, + p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, + pmin1, pmin2, pmin3, pmin5, pmin6, pmin8, + q1, q2, q3, q4, q5, q6, + qmin1, qmin3, qmin5, + r1, r2, r3, r4, r5, + rmin1, rmin4 + ] + + +# Model definition +def DSBRepairPathways( Y , t , p ): + # SYSTEM OF DIFFERENTIAL EQUATIONS + + # Concentrations of repair enzymes set to be constant + # X1 # [Ku] # X2 # [DNAPKcsArt] # X3 # [LigIV/XRCC4/XLF] + # X4 # [PNKP] # X5 # [Pol] # X6 # [H2AX] + # X7 # [MRN/CtIP/ExoI/Dna2] # X8 # [ATM] + # X9 # [RPA] # X10 # [Rad51/Rad51par/BRCA2] + # X11 # [DNAinc] # X12 # [Rad52] # X13 # [ERCC1/XPF] + # X14 # [LigIII] # X15 # [PARP1] # X16 # [Pol] + # X17 # [LigI] + + X1= X2= X3= X4= X5= X6= X7= X8= X9= X10= X11= X12= X13= X14= X15= X16= X17= 400000. + + # ----- NHEJ ---------- + YP[0] = fNirrep - k1*Y[0]*X1 + kmin1*Y[1] - p1*Y[0]*X1 + pmin1*Y[10] # [DSB] + YP[1] = k1*Y[0]*X1 - kmin1*Y[1] - k2*Y[1]*X2 + kmin2*Y[2] # [DBS * Ku] + YP[2] = k2*Y[1]*X2 - k3*Y[2] - kmin2*Y[2] # [DSB * DNA-PK/Art] + YP[3] = k3*Y[2] - k4*(Y[3]*Y[3]) + kmin4*Y[4] # [DSB * DNA-PK/ArtP] + YP[4] = k4*(Y[3]*Y[3]) - kmin4*Y[4] - k5*Y[4]*X3 + kmin5*Y[5] # [Bridge] + YP[5] = kmin6*Y[6] + k5*Y[4]*X3 - kmin5*Y[5] - k6*Y[5]*X4 # [Bridge * LigIV/XRCC4/XLF] + YP[6] = -kmin6*Y[6] - k7*Y[6]*X5 + kmin7*Y[7] + k6*Y[5]*X4 # [Bridge * LigIV/XRCC4/XLF * PNKP] + YP[7] = k7*Y[6]*X5 - k8*Y[7] - kmin7*Y[7] # [Bridge * LigIV/XRCC4/XLF * PNKP * Pol] + YP[8] = r5*Y[28] + k8*Y[7] + p12*Y[18] + p11*Y[19] + q6*Y[24] # [dsDNA] + YP[9] = (k9* (Y[3]+Y[4]+Y[5]+Y[6]+Y[7]) * X6)/ (k10+ Y[3]+ Y[4]+ Y[5]+ Y[6]+ Y[7]) - k11*Y[8]- k12*Y[9] # [gH2AX foci] + + # ----- HR ---------- + YP[10] = p1*Y[0]*X7 - pmin1*Y[10] - p3*Y[10]*Y[11] + pmin3*Y[12] # [MRN/CtIP/ExoI/Dna2] + YP[11] = p2*X8 - pmin2*Y[11] - p3*Y[10]*Y[11] + p4*Y[12] + pmin3*Y[12] # [ATMP] + YP[12] = p3*Y[10]*Y[11] - p4*Y[12] - pmin3*Y[12] # [DSB * MRN/CtIP/ExoI/Dna2 * ATMP] + YP[13] = rmin1*Y[25] + p4*Y[12] - r1*X15*Y[13] - p5*Y[13]*X9 + pmin5*Y[14] # [ssDNA] + YP[14] = pmin6*Y[15] + p5*Y[13]*X9 - pmin5*Y[14] - p6*Y[14]*X10 - q1*Y[14]*X12 + qmin1*Y[20] # [ssDNA * RPA] + YP[15] = -p7*Y[15] - pmin6*Y[15] + p6*Y[14]*X10 # [ssDNA * RPA * Rad51/Rad51par/BRCA2] + YP[16] = p7*Y[15] - p8*Y[16]*X11 + pmin8*Y[17] # [Rad51 filament] + YP[17] = p8*Y[16]*X11 - p9*Y[17] - pmin8*Y[17] # [Rad51 filament * DNAinc] + YP[18] = p9*Y[17] - p10*Y[18] - p12*Y[18] # [D-loop] + YP[19] = p10*Y[18] - p11*Y[19] # [dHJ] + + # ----- SSA ---------- + YP[20] = q1*Y[14]*X12 - qmin1*Y[20] - q2*(Y[20]*Y[20]) # [ssDNA * RPA * Rad52] + YP[21] = q2*(Y[20]*Y[20]) - q3*Y[21]*X13 + qmin3*Y[22] # [Flap] + YP[22] = q3*Y[21]*X13 - q4*Y[22] - qmin3*Y[22] # [Flap * ERCC1/XPF] + YP[23] = q4*Y[22] - q5*Y[23]*X14 + qmin5*Y[24] # [dsDNAnicks] + YP[24] = q5*Y[23]*X14 - q6*Y[24] - qmin5*Y[24] # [dsDNAnicks * LigIII] + + # ----- MMEJ ---------- + YP[25] = -rmin1*Y[25] - r2*Y[25]*X16 + r1*X15*Y[13] # [ssDNA * PARP1] + YP[26] = r2*Y[25]*X16 - r3*Y[26] # [ssDNA * Pol] + YP[27] = r3*Y[26] - r4*Y[27]*X17 + rmin4*Y[28] # [MicroHomol] + YP[28] = r4*Y[27]*X17 - r5*Y[28] - rmin4*Y[28] # [MicroHomol * LigI] + + #--------------------------------------------------- + + return YP + +# Model execution +steps = od( DSBRepairPathways, Y , t , args=(p,) ) + +print("\nCalculation concluded. Check the final images and close them to end the program.!") + +# Plotting results +KU = [] +DNAPKcs = [] +RPA = [] +Rad51 = [] +gH2AX = [] +gH2AXnorm = [] +i = 0 +for i in range(len(t)): + KU.append(steps[i][1]) + DNAPKcs.append(steps[i][3]+steps[i][4]+steps[i][5]+steps[i][6]+steps[i][7]) + RPA.append(steps[i][14]+steps[i][15]+steps[i][20]) + Rad51.append(steps[i][15]+steps[i][16]+steps[i][17]) + gH2AX.append(steps[i][9]) + gH2AXnorm.append(100*steps[i][9]/repDSB) + + +plt.figure("KU") +plt.plot(t, KU) +plt.show() + + +plt.figure("DNAPKcs") +plt.plot(t, DNAPKcs) +plt.show() + + +plt.figure("RPA") +plt.plot(t, RPA) +plt.show() + + +plt.figure("Rad51") +plt.plot(t, Rad51) +plt.show() + + +#plt.xlim(0,25) +plt.figure("gH2AX") +plt.plot(t, gH2AX) +plt.savefig("g-H2AX.pdf") + +with open(outputFile, 'w') as ofile: + for m in range(len(gH2AX)): + ofile.write(str(t[m])+ "\t" + str(gH2AX[m])+"\n") + +plt.show() + + +# Normalization, and plotting with available data, as published in Chatzipapas et al., arxiv https://doi.org/10.48550/arXiv.2210.01564 +#plt.xlim(0,25) +plt.figure("gH2AXnorm") +fig = plt.figure("gH2AXnorm") + +m = max(gH2AX) +for k in range(len(gH2AX)): + gH2AXnorm[k] = 100 * gH2AX[k]/m + + +ax1 = fig.add_subplot(111) + +ax1.scatter(t, gH2AXnorm, s=1, c='b', marker="s", label='gH2AXnorm') +xD = [ 23.90410959, 10, 5, 1.47260274, 0.71917808, 0.239726027, 0.136986301, 0.102739726 ] +yD = [ 10.55555556, 15.13888889, 26.52777778, 80, 100, 60, 20, 8.333333333 ] +ax1.scatter(xD, yD, s=20, c='r', marker="o", label='gH2AXnorm_dous') +xA = [ 0.5308219178082174, 2.0376712328767113, 4.006849315068493, 11.952054794520548, 23.869863013698634 ] +yA = [ 99.99999999999997, 55.13888888888887, 30.27777777777777, 12.777777777777771, 1.6666666666666572 ] +ax1.scatter(xA, yA, s=30, c='g', marker="+", label='gH2AXnorm_Asaithamby') +plt.legend(loc='upper right'); + +#plt.plot(t, gH2AXnorm) +plt.savefig("g-H2AX_norm.pdf") + +plt.show() + +with open(outputFile, 'w') as ofile: + for m in range(len(gH2AX)): + ofile.write(str(t[m])+ "\t" + str(gH2AXnorm[m])+"\n") + +#plt.xlim([1e1, 1e4]) +#plt.ylim([1e-15, 3e-11]) + +print("\nCheck your folder for new images (pdf). Thank you for using molecularDNArepair.!\n") diff --git a/examples/extended/medical/dna/moleculardna/repair_survival_models/molecularDNAsurvival.py b/examples/extended/medical/dna/moleculardna/repair_survival_models/molecularDNAsurvival.py new file mode 100755 index 0000000000..26f13cd74d --- /dev/null +++ b/examples/extended/medical/dna/moleculardna/repair_survival_models/molecularDNAsurvival.py @@ -0,0 +1,226 @@ +#!/usr/bin/env python +# coding: utf-8 + +# To run, change the links and definitions in this script and +# type in the terminal containing the file +# $python3 molecularDNAsurvival.py + +# Authors: +# K. Chatzipapas (*), D. Sakata, H. N. Tran, M. Dordevic, S. Incerti et al. +# (*) contact: k.chatzipapas@yahoo.com + +# Authors' note : This is a very early version of this calculation technique. +# Needs to optimized for each different application. An updated +# version will be released in the future. + + +# Define filenames +outputFile = "molecularDNAsurvival.txt" +iRootFile = "../molecular-dna.root" +print("\nInput file:",iRootFile,"\n") + +# Define cell parameters +r3 = 7100*1e-09 * 2500*1e-09 * 7100*1e-09 # a * b * c / Chromosome size, as defined in the mac file, but in meters. If sphere, a=b=c +NBP = 6405886128 # bp / Length of the DNA chain in Mbp +mass = 997 * 4 * 3.141592 * r3 / 3 # waterDensity * 4/3 * pi * r3 in kg + +# Integration parameters +t0 = 0.0 # Starting time point (dimensionless) +t1 = 336 # Final time point (dimensionless) +dt = 0.001 # Intergration time step (dimensionless) +numpoints = int( (t1 - t0) / dt ) + +# Survival model Parameters +# THESE PARAMETERS HAVE TO BE DEFINED FOR PROPER RESULTS/ EXPERIMENTAL PARAMETERS, +# AS DESCRIBED IN (Stewart RD. Radiat Res. 2001 https://pubmed.ncbi.nlm.nih.gov/11554848/ ) +maxDose = 9 +DR1 = 720 #Gy/h SF-dose +bp = 1 #Gbp +#DR2 = 600. #Gy/h SF-time +#DR3 = 12000. #Gy/h FAR + +# usual value of gamma 0.25 (changes the end value of the curve) +gamma = 0.19 #other published values: 0.189328 +# Lamb1 the end of the curve Lamb2 is connected with Eta +Lamb1 = 0.10 #other published values: 0.0125959 # 0.671 h-1 or 2.77 h-1 (15 min repair half-time) +Lamb2 = 1 #other published values: 33062.9 # 0.0439 h-1 (15.8-h repair half-time) or 0.0616 h-1 (11.3 h repair half-time) +# +Beta1 = 0 #other published values: 0.0193207 # 0.00152 +Beta2 = 0 +# Defines the curvature as well as the end value of the curve +Eta = 0.00005 #other published values: #7.50595e-06 # 1.18e-04 h-1 or 0.00042 h-1 +# name of the cell (used in the output) +cell = "test" + +# ONLY ADVANCED USERS AFTER THIS POINT +##################################################################################################################### +import ROOT as root +import numpy as np +import matplotlib.pyplot as plt +from scipy.integrate import ode +import threading + +# Definition of the survival model +def SF_system( T_, DR_, Y_, Sig1_, Sig2_, gamma_, Lamb1_, Lamb2_, Beta1_, Beta2_, Eta_ ): + + global T + global DR + global Y + global Sig1 + global Sig2 + global gamma + global Lamb1 + global Lamb2 + global Beta1 + global Beta2 + global Eta + + T = T_ + DR = DR_ + Y = Y_ + Sig1 = Sig1_ + Sig2 = Sig2_ + gamma = gamma_ + Lamb1 = Lamb1_ + Lamb2 = Lamb2_ + Beta1 = Beta1_ + Beta2 = Beta2_ + Eta = Eta_ + + + return T, DR, Y, Sig1, Sig2, gamma, Lamb1, Lamb2, Beta1, Beta2, Eta + +def SF_function( t, x, p ): + if(t<=T): + #print("t<=T") + dx[0] = DR*Y*Sig1 - Lamb1*x[0] - Eta*x[0]*(x[0]+x[1]) + dx[1] = DR*Y*Sig2 - Lamb2*x[1] - Eta*x[1]*(x[0]+x[1]) + dx[2] = Beta1*Lamb1*x[0] + Beta2*Lamb2*x[1]+gamma*Eta*(x[0]+x[1])*(x[0]+x[1]) + dx[3] = (1.-Beta1)*Lamb1*x[0] + (1.-Beta2)*Lamb2*x[1]+(1.-gamma)*Eta*(x[0]+x[1])*(x[0]+x[1]) + else: + dx[0] = - Lamb1*x[0] - Eta*x[0]*(x[0]+x[1]) + dx[1] = - Lamb2*x[1] - Eta*x[1]*(x[0]+x[1]) + dx[2] = Beta1*Lamb1*x[0] + Beta2*Lamb2*x[1]+gamma*Eta*(x[0]+x[1])*(x[0]+x[1]) + dx[3] = (1.-Beta1)*Lamb1*x[0] + (1.-Beta2)*Lamb2*x[1]+(1.-gamma)*Eta*(x[0]+x[1])*(x[0]+x[1]) + return dx + + +DSBBPID = [] +repDSB = 0 +irrDSB = 0 +acc_edep = 0 +dose = 0 +i = 0 +eVtoJ = 1.60218e-19 + + +# Analyze root files +f = root.TFile(iRootFile) + +fTree = f.Get("tuples/damage") +for e in fTree: + if (e.TypeClassification=="DSB" or e.TypeClassification=="DSB+" or e.TypeClassification=="DSB++"): + DSBBPID.append((e.Event, e.BasePair)) + i += 1 + +gTree = f.Get("tuples/classification") +for e in gTree: + repDSB += e.DSB + irrDSB += e.DSBp + 2*e.DSBpp + +ffTree = f.Get("tuples/chromosome_hits") +for ev in ffTree: + acc_edep += (ev.e_chromosome_kev + ev.e_dna_kev) *1e3 # eV + + +# Calculate the total number of DSBs +totalDSB = repDSB + irrDSB +# Calculate the absorbed dose +dose = acc_edep * eVtoJ / mass # Dose in Gy + +#print ("r3=", r3) +#print("Dose :", dose, "\nTotal DSB/Gy :", totalDSB/dose, "\nRepairable DSBs/Gy :", repDSB/dose, "\nIrrepairable DSBs/Gy :", irrDSB/dose) + +NBP_of_cell = 4682000000 # This is a constant of the model, as defined by Stewart in the TLK (Stewart RD. Radiat Res. 2001 https://pubmed.ncbi.nlm.nih.gov/11554848/ ) +NBPcell = NBP/NBP_of_cell +totalDSBperGyCell = totalDSB/NBPcell/dose +#totalDSBperGyCell = totalDSB/dose +print ("Dose :", dose, "\nTotal DSB/Gy/Cell :", totalDSBperGyCell) + +kFactor = 1 # This factor is used to normalize irrepairable damage to lower values than 1. +S1 = repDSB/NBPcell/dose/kFactor +S2 = irrDSB/NBPcell/dose/kFactor +print("Repairable DSBs/Gy/cell :", S1, "\nIrrepairable DSBs/Gy/cell :", S2, "\n\n") + + +# In[ ]: + + +T = 0 +DR = 0 +Y = 0 +kozi = False +sum = [0]*(maxDose+1) +outputfile = [""] * (maxDose+1) + +# Create the time samples for the output of the ODE solver. +# I use a large number of points, only because I want to make +# a plot of the solution that looks nice. +#t = [(t1-t0) * float(i) / (numpoints - 1) for i in range(numpoints)] +t = np.linspace(t0, t1, numpoints) + +dx = np.zeros(4) +x = np.zeros(4) +dsbs = 0.0 +Sig1 = S1 +Sig2 = S2 + +filename = "txt/molecularDNAsurvival_"+cell+".dat" +outputfile1 = open(filename,"w") +outputfile1.write("Dose \t Survival Fraction\n") + +for j in range(maxDose+1): + #j=1 + sol = [] + time = [] + dose = j + expEndTime = dose/DR1 #h + + #////double StopTime = (expEndTime+ n/min(Lamb1,Lamb2)); + + arguments = SF_system( expEndTime, DR1,bp,Sig1,Sig2,gamma,Lamb1,Lamb2,Beta1,Beta2,Eta ) + p = [ T, DR, Y, Sig1, Sig2, gamma, Lamb1, Lamb2, Beta1, Beta2, Eta ] + + Stepper = "dopri5" # dopri5,vode,dop853 + + if (j==0): + solver = ode(SF_function).set_integrator(Stepper, nsteps=1) + print("#*#*#*#*#*# Ignore this warning #*#*#*#*#*#") + else: + solver = ode(SF_function).set_integrator(Stepper, nsteps=numpoints) + solver.set_initial_value( x, t0 ).set_f_params(p) + #print(solver.t,solver.y) + + # Repeatedly call the `integrate` method to advance the + # solution to time t+dt, and save the solution in solver. + while solver.t < t1: # and solver.successful(): + solver.integrate(solver.t+dt) + + sum[j] = solver.y[2] + print("Survival probability of cell ("+cell+") after",j,"Gy is", np.exp(-sum[j]) ) + outputfile1.write(str(dose) +"\t"+ str(np.exp(-(solver.y[2]))) +"\n") + +c = np.linspace(0, maxDose, num=maxDose+1) +sum=np.array(sum) +outputfile1.close() + +print("\nCalculation concluded. Check the final image and close it to end the program.!") + +plt.yscale('log') +plt.xlim([0, 8]) +plt.ylim([1e-2, 1]) +plt.plot(c,np.exp(-sum[:])) +plt.show() + +print("\nThank you for using molecularDNAsurvival.!\n") + diff --git a/examples/extended/medical/dna/moleculardna/src/AnalysisManager.cc b/examples/extended/medical/dna/moleculardna/src/AnalysisManager.cc index 2ebd3821ea..d2bca99288 100644 --- a/examples/extended/medical/dna/moleculardna/src/AnalysisManager.cc +++ b/examples/extended/medical/dna/moleculardna/src/AnalysisManager.cc @@ -1229,7 +1229,7 @@ DamageClassification* DamageRecord::GetClassification( { nDSB++; lastTenTracked2 = - (1 << (utility::fls(lastTenTracked2) - 1)) ^ lastTenTracked2; + (1 << (utility::Fls(lastTenTracked2) - 1)) ^ lastTenTracked2; if((count2 > 1) || (count1)) { nDSBPlus++; @@ -1253,7 +1253,7 @@ DamageClassification* DamageRecord::GetClassification( { nDSB++; lastTenTracked1 = - (1 << (utility::fls(lastTenTracked1) - 1)) ^ lastTenTracked1; + (1 << (utility::Fls(lastTenTracked1) - 1)) ^ lastTenTracked1; if((count1 > 1) || (count2)) { nDSBPlus++; diff --git a/examples/extended/medical/dna/moleculardna/src/ChemistryList.cc b/examples/extended/medical/dna/moleculardna/src/ChemistryList.cc index 2b16e197be..25938d6b32 100644 --- a/examples/extended/medical/dna/moleculardna/src/ChemistryList.cc +++ b/examples/extended/medical/dna/moleculardna/src/ChemistryList.cc @@ -35,6 +35,7 @@ #include "G4DNAElectronSolvation.hh" #include "G4DNAVibExcitation.hh" #include "G4DNAUeharaScreenedRutherfordElasticModel.hh" +#include "G4DNASancheExcitationModel.hh" #include "G4DNAMolecularDissociation.hh" #include "G4DNABrownianTransportation.hh" #include "G4DNAMolecularReactionTable.hh" diff --git a/examples/extended/medical/dna/moleculardna/src/ChromosomeMapper.cc b/examples/extended/medical/dna/moleculardna/src/ChromosomeMapper.cc index 9c8ea5ef69..2a945b3790 100644 --- a/examples/extended/medical/dna/moleculardna/src/ChromosomeMapper.cc +++ b/examples/extended/medical/dna/moleculardna/src/ChromosomeMapper.cc @@ -90,7 +90,7 @@ ChromosomeMapper::~ChromosomeMapper() [[maybe_unused]] VirtualChromosome* ChromosomeMapper::GetChromosome( const G4String& key) const { - uint32_t key_i = G4::hashing::crc32::hash(key); + uint32_t key_i = G4::hashing::crc32::Hash(key); try { @@ -107,7 +107,7 @@ ChromosomeMapper::~ChromosomeMapper() void ChromosomeMapper::AddChromosome(const G4String& key, const std::vector& commands) { - uint32_t key_i = G4::hashing::crc32::hash(key); + uint32_t key_i = G4::hashing::crc32::Hash(key); auto it = fChromosomes.find(key_i); diff --git a/examples/extended/medical/dna/moleculardna/src/ChromosomeMessenger.cc b/examples/extended/medical/dna/moleculardna/src/ChromosomeMessenger.cc index 893c998ebb..8877a80ee2 100644 --- a/examples/extended/medical/dna/moleculardna/src/ChromosomeMessenger.cc +++ b/examples/extended/medical/dna/moleculardna/src/ChromosomeMessenger.cc @@ -57,7 +57,7 @@ void ChromosomeMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if(command == fpAddChromosome.get()) { - std::vector values = utility::split(newValue, ' '); + std::vector values = utility::Split(newValue, ' '); G4String key = values[0]; std::vector commands; for(auto it = (values.begin() + 1); it != values.end(); it++) diff --git a/examples/extended/medical/dna/moleculardna/src/DNAGeometry.cc b/examples/extended/medical/dna/moleculardna/src/DNAGeometry.cc index 33ddba8c49..997e0ce6e7 100644 --- a/examples/extended/medical/dna/moleculardna/src/DNAGeometry.cc +++ b/examples/extended/medical/dna/moleculardna/src/DNAGeometry.cc @@ -445,7 +445,7 @@ std::pair DNAGeometry::LoadVoxelVolume( G4ThreeVector(0, 0, 0), G4ThreeVector(vxdim, vydim, vzdim), 1); // open and load file - if(!utility::path_exists(filename)) + if(!utility::Path_exists(filename)) { G4ExceptionDescription errmsg; errmsg << "The file: " << filename << " could not be found." << G4endl; @@ -471,7 +471,7 @@ std::pair DNAGeometry::LoadVoxelVolume( { if(currentline[0] != '#') { - std::vector line = utility::split(currentline, ' '); + std::vector line = utility::Split(currentline, ' '); // validation if(uncommented_line_number == 0) { @@ -732,7 +732,7 @@ std::pair DNAGeometry::LoadVoxelVolume( void DNAGeometry::FillVoxelVectors() { G4String filename = fFractalCurveFile; - if(!utility::path_exists(filename)) + if(!utility::Path_exists(filename)) { G4ExceptionDescription errmsg; errmsg << "The file: " << filename << " could not be found." << G4endl; @@ -758,7 +758,7 @@ void DNAGeometry::FillVoxelVectors() try { G4int pi_or_one = fAnglesAsPi ? pi : 1; - std::vector line = utility::split(currentline, ' '); + std::vector line = utility::Split(currentline, ' '); fVoxelIndices.push_back(std::stoi(line.at(0))); fVoxelTypes.push_back((G4String) line.at(1)); pos = G4ThreeVector(std::stod(line.at(2)) * fFractalScaling.getX(), @@ -874,7 +874,7 @@ G4VPhysicalVolume* DNAGeometry::PlacePhosphate(G4LogicalVolume* physicsLogical, G4Ellipsoid* mol; // NOTE: will work to cut molecules at boundary only when the chain is // leaving the box. - G4double z_cut = -1 * utility::min(overlaps); + G4double z_cut = -1 * utility::Min(overlaps); if(z_cut < 0) // all molecules fit { mol = new G4Ellipsoid(name, thisMolecule.fsize.getX(), @@ -964,7 +964,7 @@ G4VPhysicalVolume* DNAGeometry::PlaceSugar(G4LogicalVolume* physicsLogical, G4Ellipsoid* mol; // NOTE: will work to cut molecules at boundary only when the chain is // leaving the box. - G4double z_cut = -1 * utility::min(overlaps); + G4double z_cut = -1 * utility::Min(overlaps); if(z_cut < 0) // all molecules fit { mol = new G4Ellipsoid(name, thisMolecule.fsize.getX(), @@ -1367,7 +1367,7 @@ int64_t DNAGeometry::GetGlobalUniqueID(G4VPhysicalVolume* dnavol, const G4VTouchable* touch) const { const G4String& dnaName = dnavol->GetName(); - std::array pv_arr = utility::get_four_elements(dnaName, '-'); + std::array pv_arr = utility::Get_four_elements(dnaName, '-'); molecule mol = utility::GetMoleculeEnum(pv_arr.at(0)); G4int chainIdx = std::stoi(pv_arr.at(1)); G4int strandIdx = std::stoi(pv_arr.at(2)); @@ -1376,7 +1376,7 @@ int64_t DNAGeometry::GetGlobalUniqueID(G4VPhysicalVolume* dnavol, const G4String& placementName = touch->GetVolume()->GetName(); G4int placeIdx = - std::stoi(utility::get_seperated_element(placementName, '-', 1)); + std::stoi(utility::Get_seperated_element(placementName, '-', 1)); G4int chains = this->GetNumberOfChains(); // dousatsu G4int placements = this->GetNumberOfPlacements(); // dousatsu diff --git a/examples/extended/medical/dna/moleculardna/src/DNAGeometryMessenger.cc b/examples/extended/medical/dna/moleculardna/src/DNAGeometryMessenger.cc index 5d77053089..722857ed68 100644 --- a/examples/extended/medical/dna/moleculardna/src/DNAGeometryMessenger.cc +++ b/examples/extended/medical/dna/moleculardna/src/DNAGeometryMessenger.cc @@ -151,7 +151,7 @@ void DNAGeometryMessenger::SetNewValue(G4UIcommand* command, G4String newValue) // Fractals if(command == fpNewPlacementVolumeFile.get()) { - std::vector cmd = utility::split(newValue, ' '); + std::vector cmd = utility::Split(newValue, ' '); // input validation if(!(cmd.size() == 2 || cmd.size() == 3)) { @@ -180,7 +180,7 @@ void DNAGeometryMessenger::SetNewValue(G4UIcommand* command, G4String newValue) } } - if(utility::path_exists(path)) + if(utility::Path_exists(path)) { fpDNAGeometry->AddVoxelFile(vname, path, twist); } @@ -196,7 +196,7 @@ void DNAGeometryMessenger::SetNewValue(G4UIcommand* command, G4String newValue) else if(command == fpVoxelPlacementsFile.get()) { G4String path = newValue; - if(utility::path_exists(path)) + if(utility::Path_exists(path)) { fpDNAGeometry->SetFractalFilename(path); } @@ -231,7 +231,7 @@ void DNAGeometryMessenger::SetNewValue(G4UIcommand* command, G4String newValue) } else if(command == fpAddMoleculeSize.get()) { - std::vector cmd = utility::split(newValue, ' '); + std::vector cmd = utility::Split(newValue, ' '); // input validation if(cmd.size() == 4) { diff --git a/examples/extended/medical/dna/moleculardna/src/DNAHashing.cc b/examples/extended/medical/dna/moleculardna/src/DNAHashing.cc index d48a27edf5..431f6196c3 100644 --- a/examples/extended/medical/dna/moleculardna/src/DNAHashing.cc +++ b/examples/extended/medical/dna/moleculardna/src/DNAHashing.cc @@ -39,26 +39,26 @@ namespace G4::hashing { namespace crc32 { - uint32_t hash(const char* str, size_t len) + uint32_t Hash(const char* str, size_t len) { uint32_t remainder = 0xFFFFFFFF; for(size_t idx = 0; idx < len; ++idx) { remainder = - (remainder >> 8) ^ crc_table[(remainder ^ str[idx]) & 0x000000FF]; + (remainder >> 8) ^ fCrc_table[(remainder ^ str[idx]) & 0x000000FF]; } return remainder ^ 0xFFFFFFFF; } - uint32_t hash(const std::string& str) + uint32_t Hash(const std::string& str) { - return hash(str.c_str(), str.size()); + return Hash(str.c_str(), str.size()); } } // namespace crc32 namespace fnv { - size_t hash(const std::string& str) + size_t Hash(const std::string& str) { size_t hash = fnv_offset_basis; for(size_t i = 0; i < str.length(); i++) @@ -72,7 +72,7 @@ namespace G4::hashing namespace larson { - size_t hash(const char* str, unsigned int seed) + size_t Hash(const char* str, unsigned int seed) { size_t hash = seed; while(*str) @@ -82,9 +82,9 @@ namespace G4::hashing return hash; } - size_t hash(std::string str, unsigned int seed) + size_t Hash(std::string str, unsigned int seed) { - return hash(str.c_str(), seed); + return Hash(str.c_str(), seed); } } // namespace larson } // namespace G4 diff --git a/examples/extended/medical/dna/moleculardna/src/EventAction.cc b/examples/extended/medical/dna/moleculardna/src/EventAction.cc index 1a4feb7d0d..66240232ac 100644 --- a/examples/extended/medical/dna/moleculardna/src/EventAction.cc +++ b/examples/extended/medical/dna/moleculardna/src/EventAction.cc @@ -57,7 +57,7 @@ void EventAction::Initialize() fDNAGeometry->GetChromosomeMapper()->GetChromosomeKeys(); for(const auto& key : keys) { - uint32_t key_i = G4::hashing::crc32::hash(key); + uint32_t key_i = G4::hashing::crc32::Hash(key); fChromoHitMap[key_i] = nullptr; } fInitialized = true; @@ -88,7 +88,7 @@ void EventAction::BeginOfEventAction(const G4Event*) //ChromosomeHit* theHit; for(const auto& it : keys) { - uint32_t key_i = G4::hashing::crc32::hash(it); + uint32_t key_i = G4::hashing::crc32::Hash(it); fChromoHitMap[key_i] = new ChromosomeHit(it); } } @@ -121,7 +121,7 @@ void EventAction::EndOfEventAction(const G4Event*) void EventAction::AddChromosomeEdep(const G4String& key, const G4double& e, const G4bool& isDNA) { - uint32_t key_i = G4::hashing::crc32::hash(key); + uint32_t key_i = G4::hashing::crc32::Hash(key); auto it = fChromoHitMap.find(key_i); if(it != fChromoHitMap.end()) { diff --git a/examples/extended/medical/dna/moleculardna/src/SteppingAction.cc b/examples/extended/medical/dna/moleculardna/src/SteppingAction.cc index b5a11f0ed1..f82320af1c 100644 --- a/examples/extended/medical/dna/moleculardna/src/SteppingAction.cc +++ b/examples/extended/medical/dna/moleculardna/src/SteppingAction.cc @@ -239,8 +239,8 @@ void SteppingAction::DoChromosomeDNAHit( const G4ThreeVector& pos, const G4ThreeVector& localPos, const G4double& edep, const G4double& dist, const G4String& pvName, const G4String& motherName) { - G4int placementIdx = std::stoi(utility::split(motherName, '-').at(1)); - std::vector pvNameVec = utility::split(pvName, '-'); + G4int placementIdx = std::stoi(utility::Split(motherName, '-').at(1)); + std::vector pvNameVec = utility::Split(pvName, '-'); molecule mol = utility::GetMoleculeEnum(pvNameVec.at(0)); G4int chainIdx = std::stoi(pvNameVec.at(1)); G4int strandIdx = std::stoi(pvNameVec.at(2)); diff --git a/examples/extended/medical/dna/moleculardna/src/UtilityFunctions.cc b/examples/extended/medical/dna/moleculardna/src/UtilityFunctions.cc index 680bd792ca..b55a9c8540 100644 --- a/examples/extended/medical/dna/moleculardna/src/UtilityFunctions.cc +++ b/examples/extended/medical/dna/moleculardna/src/UtilityFunctions.cc @@ -38,7 +38,7 @@ namespace utility { - std::vector& split(const G4String& str, char delim, + std::vector& Split(const G4String& str, char delim, std::vector& elems) { std::stringstream ss(str); @@ -51,15 +51,15 @@ namespace utility return elems; } - std::vector split(const G4String& str, char delim) + std::vector Split(const G4String& str, char delim) { std::vector elems; - split(str, delim, elems); + Split(str, delim, elems); return elems; } // return element ii - G4String get_seperated_element(const G4String& str, char delim, G4int ii) + G4String Get_seperated_element(const G4String& str, char delim, G4int ii) { G4int delims = 0; G4String ss; @@ -76,7 +76,7 @@ namespace utility } // return first four strings - std::array get_four_elements(const G4String& str, char delim) + std::array Get_four_elements(const G4String& str, char delim) { G4int delims = 0; std::array arr; @@ -92,7 +92,7 @@ namespace utility return arr; } - bool path_exists(const G4String& fname) + G4bool Path_exists(const G4String& fname) { if(FILE* file = std::fopen(fname, "r")) { @@ -107,13 +107,13 @@ namespace utility // Memory safe multi-platform getcwd // http://stackoverflow.com/questions/2869594/ - [[maybe_unused]] G4String getcwd() + G4String Getcwd() { const size_t chunkSize = 255; const int maxChunks = 10240; // 2550 KiBs of current path is plenty char stackBuffer[chunkSize]; // Stack buffer for the "normal" case - if(::getcwd(stackBuffer, sizeof(stackBuffer)) != NULL) + if(::getcwd(stackBuffer, sizeof(stackBuffer)) != nullptr) return stackBuffer; if(errno != ERANGE) { @@ -127,8 +127,8 @@ namespace utility // With boost use scoped_ptr; in C++0x, use unique_ptr // If you want to be less C++ but more efficient // you may want to use realloc - std::unique_ptr cwd(new char[chunkSize * chunks]); - if(::getcwd(cwd.get(), chunkSize * chunks) != NULL) + std::unique_ptr cwd(new char[chunkSize * chunks]); + if(::getcwd(cwd.get(), chunkSize * chunks) != nullptr) return cwd.get(); if(errno != ERANGE) { @@ -141,7 +141,7 @@ namespace utility "apparently unreasonably long"); } - G4double min(const G4ThreeVector& v) + G4double Min(const G4ThreeVector& v) { return std::min(std::min(v.x(), v.y()), v.z()); } diff --git a/examples/extended/medical/dna/moleculardna/vis.mac b/examples/extended/medical/dna/moleculardna/vis.mac index 1a3ab8a20a..f3bbc0b71e 100644 --- a/examples/extended/medical/dna/moleculardna/vis.mac +++ b/examples/extended/medical/dna/moleculardna/vis.mac @@ -33,7 +33,9 @@ /vis/viewer/set/viewpointThetaPhi 90. 180. # # Specify zoom value: -/vis/viewer/zoom 1.4 +#/vis/viewer/zoom 1.4 +/vis/viewer/zoomTo 150 +/vis/viewer/panTo -720 -320 nm # # Specify style (surface, wireframe, auxiliary edges,...) #/vis/viewer/set/style wireframe diff --git a/examples/extended/medical/dna/neuron/History b/examples/extended/medical/dna/neuron/History index d6a491b89b..8b0dd975fb 100644 --- a/examples/extended/medical/dna/neuron/History +++ b/examples/extended/medical/dna/neuron/History @@ -1,9 +1,14 @@ # Example neuron History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-10-04 Gabriele Cosmo (neuron-V11-00-01) +- Fixed compilation warning on Intel-icx compiler for set but unused variable + in Run::EndOfRun(). ## 2021-12-10 Ben Morgan (neuron-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/medical/dna/neuron/neuron.out b/examples/extended/medical/dna/neuron/neuron.out index 95a5751626..0932e7f4c3 100644 --- a/examples/extended/medical/dna/neuron/neuron.out +++ b/examples/extended/medical/dna/neuron/neuron.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -65,6 +65,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -117,6 +119,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -144,7 +147,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -180,8 +183,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -222,8 +224,8 @@ conv: for gamma SubType=14 BuildTable=1 Livermore5DConversion : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -347,7 +349,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -655,7 +657,7 @@ Physics stage ends Outputs of energy deposition per event written in data file: OutputPerEvent.out - Calculation time = 2.74643 s + Calculation time = 3.06318 s Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/medical/dna/neuron/src/Run.cc b/examples/extended/medical/dna/neuron/src/Run.cc index bf4d69f1c7..02545fee1f 100644 --- a/examples/extended/medical/dna/neuron/src/Run.cc +++ b/examples/extended/medical/dna/neuron/src/Run.cc @@ -382,7 +382,6 @@ void Run::EndOfRun() G4double meandEdxerr = (rmst/fTrackLen)/(keV/um); //G4double stopPower = (meandEdx/density)/(MeV*cm2/g); G4int ncols=0; - G4int nlines = 0; G4float tmp, En; G4int Ntrav = 0; FILE * fp = fopen("OutputPerEvent.out","r"); @@ -391,7 +390,7 @@ void Run::EndOfRun() &tmp, &tmp, &tmp, &tmp, &En, &tmp, &tmp, &tmp); if (ncols < 0) break; if (En>0) Ntrav++; - nlines++;} + } fclose(fp); // The surface area is calculated as spherical medium GunArea = fDetector->GetTotSurfMedium(); diff --git a/examples/extended/medical/dna/pdb4dna/History b/examples/extended/medical/dna/pdb4dna/History index d6dd5d1011..a74369c678 100644 --- a/examples/extended/medical/dna/pdb4dna/History +++ b/examples/extended/medical/dna/pdb4dna/History @@ -1,9 +1,14 @@ # Example pdb4dna History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-10-04 Gabriele Cosmo (pdb4dna-V11-00-01) +- Fixed compilation warnings on Intel-icx compiler for set but unused variables + in DetectorConstruction and PDBlib sources. ## 2021-12-10 Ben Morgan (pdb4dna-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/medical/dna/pdb4dna/pdb4dna.out b/examples/extended/medical/dna/pdb4dna/pdb4dna.out index 1b7175e4cb..f1e587d7bc 100644 --- a/examples/extended/medical/dna/pdb4dna/pdb4dna.out +++ b/examples/extended/medical/dna/pdb4dna/pdb4dna.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -32,6 +32,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -115,10 +117,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -142,7 +145,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -178,8 +181,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -200,75 +202,307 @@ Use DNA e- solvation model type 11003 ### === Ignore cuts flag: 1 phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:3 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. ### Run 0 starts. diff --git a/examples/extended/medical/dna/pdb4dna/src/DetectorConstruction.cc b/examples/extended/medical/dna/pdb4dna/src/DetectorConstruction.cc index b41722ef35..f38caea5e4 100644 --- a/examples/extended/medical/dna/pdb4dna/src/DetectorConstruction.cc +++ b/examples/extended/medical/dna/pdb4dna/src/DetectorConstruction.cc @@ -374,11 +374,9 @@ void DetectorConstruction::AtomisticView(G4LogicalVolume* worldLV, residueListTemp = moleculeListTemp->GetFirst(); k++; - int j=0; while (residueListTemp) { AtomTemp=residueListTemp->GetFirst(); - j++; int startFrom=0; int upTo=residueListTemp->fNbAtom; //case Base+sugar+phosphat (all atoms) @@ -521,12 +519,8 @@ void DetectorConstruction::BarycenterView(G4LogicalVolume* worldLV, G4LogicalVolume* atomLV_ZZ; G4VisAttributes* MyVisAtt_ZZ; - int k=0; - while (barycenterListTemp) { - k++; - atomS_ZZ = new G4Orb("Sphere", (barycenterListTemp->GetRadius())*angstrom); atomLV_ZZ = new G4LogicalVolume(atomS_ZZ,fpWaterMaterial,"atomLV_ZZ"); MyVisAtt_ZZ = new G4VisAttributes(G4Colour(G4Colour::Magenta())); @@ -571,12 +565,8 @@ void DetectorConstruction::ResiduesView(G4LogicalVolume* worldLV, G4VSolid* CS_ZZ; G4LogicalVolume* CLV_ZZ; - int k=0; - while (barycenterListTemp) { - k++; - //3 spheres to Base, Sugar, Phosphate) AS_ZZ = new G4Orb("Sphere", 1.*angstrom); ALV_ZZ = new G4LogicalVolume(AS_ZZ,fpWaterMaterial, "ALV_ZZ"); diff --git a/examples/extended/medical/dna/pdb4dna/src/PDBlib.cc b/examples/extended/medical/dna/pdb4dna/src/PDBlib.cc index f660b1f135..a49f634e21 100644 --- a/examples/extended/medical/dna/pdb4dna/src/PDBlib.cc +++ b/examples/extended/medical/dna/pdb4dna/src/PDBlib.cc @@ -93,7 +93,6 @@ Molecule * PDBlib::Load(const std::string& filename, } else { - int nbAtomTot = 0; // total number of atoms int nbAtom = 0; // total number of atoms in a residue int numAtomInRes = 0; // number of an atom in a residue int nbResidue = 0; // total number of residues @@ -329,8 +328,6 @@ Molecule * PDBlib::Load(const std::string& filename, } { - nbAtomTot++; - //resName : resName = sLine.substr(17, 3); //resSeq : @@ -726,14 +723,12 @@ void PDBlib::ComputeNbNucleotidsPerStrand(Molecule * moleculeListTemp) { Residue *residueListTemp; - int k = 0; int j_old = 0; while(moleculeListTemp) { residueListTemp = moleculeListTemp->GetFirst(); - k++; int j = 0; while(residueListTemp) diff --git a/examples/extended/medical/dna/range/range.out b/examples/extended/medical/dna/range/range.out index bf02a061ce..4e05838c00 100644 --- a/examples/extended/medical/dna/range/range.out +++ b/examples/extended/medical/dna/range/range.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -30,6 +30,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -108,10 +110,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -135,7 +138,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -171,8 +174,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -193,75 +195,307 @@ Use DNA e- solvation model type 11003 ### === Ignore cuts flag: 1 phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:1 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. diff --git a/examples/extended/medical/dna/scavenger/.README.txt b/examples/extended/medical/dna/scavenger/.README.txt index bbcd02e699..5dbe51e531 100644 --- a/examples/extended/medical/dna/scavenger/.README.txt +++ b/examples/extended/medical/dna/scavenger/.README.txt @@ -95,7 +95,7 @@ which is invoked only in multi-threading mode. To not register a molecule, add this command: G4MoleculeCounter::Instance()->DontRegister(G4O2::Definition()); -\section SCAVENGER_s3 AN EVENT: PRIMARY GENERATOR +\section SCAVENGER_s4 AN EVENT: PRIMARY GENERATOR The primary kinematic consists of a single particle starting at the center of the box. The type of the particle and its energy are set @@ -273,6 +273,8 @@ root plotG.C > scorer.txt The results show the molecular species (G values) as a function of time (ns). Please ignore the O_2^0 molecule. +The function (plotG()) should have the same name as the +file without file extension (plotG). \section SCAVENGER_s12 OTHER diff --git a/examples/extended/medical/dna/scavenger/History b/examples/extended/medical/dna/scavenger/History old mode 100755 new mode 100644 index 338c062e46..be65a7b653 --- a/examples/extended/medical/dna/scavenger/History +++ b/examples/extended/medical/dna/scavenger/History @@ -4,6 +4,20 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-09 I. Hrivnacova (scavenger-V11-00-05) +- Fixed Doxygen documentation + +## 2022-11-04 I. Hrivnacova (scavenger-V11-00-04) +- Fixed Doxygen file descriptions: + when using namespaces the filenames must be provided with a path +- Fixed .README.txt + +## 2022-09-08 Hoang Tran (scavenger-V11-00-03) +- Fix ROOT macros for error running of ROOT in Windows + +## 2022-08-30 Vladimir Ivanchenko (scavenger-V11-00-02) +- EmDNAChemistry - added forgotten header + ## 2022-05-02 Hoang Tran (scavenger-V11-00-01) - Add localthread for fUse of G4VMoleculeCounter diff --git a/examples/extended/medical/dna/scavenger/README b/examples/extended/medical/dna/scavenger/README old mode 100755 new mode 100644 index 7fe2e0965a..6f9cf79037 --- a/examples/extended/medical/dna/scavenger/README +++ b/examples/extended/medical/dna/scavenger/README @@ -238,8 +238,11 @@ Int. J. Model. Simul. Sci. Comput. 1 (2010) 157–178 or print G values to scorer.txt root plotG.C > scorer.txt + The results show the molecular species (G values) as a function of - time (ns). Please ignore the O_2^0 molecule. + time (ns). Please ignore the O_2^0 molecule. + The function (plotG()) should have the same name as the + file without file extension (plotG). 12 - OTHER diff --git a/examples/extended/medical/dna/scavenger/include/ActionInitialization.hh b/examples/extended/medical/dna/scavenger/include/ActionInitialization.hh index 26e7246fe9..60047f025c 100644 --- a/examples/extended/medical/dna/scavenger/include/ActionInitialization.hh +++ b/examples/extended/medical/dna/scavenger/include/ActionInitialization.hh @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file ActionInitialization.hh -/// \brief Definition of the ActionInitialization class +/// \file scavenger/include/ActionInitialization.hh +/// \brief Definition of the scavenger::ActionInitialization class #ifndef SCAVENGER_ActionInitialization_h #define SCAVENGER_ActionInitialization_h 1 diff --git a/examples/extended/medical/dna/scavenger/include/DetectorConstruction.hh b/examples/extended/medical/dna/scavenger/include/DetectorConstruction.hh index 9638cc8918..03259583af 100644 --- a/examples/extended/medical/dna/scavenger/include/DetectorConstruction.hh +++ b/examples/extended/medical/dna/scavenger/include/DetectorConstruction.hh @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file DetectorConstruction.hh -/// \brief Definition of the DetectorConstruction class +/// \file scavenger/include/DetectorConstruction.hh +/// \brief Definition of the scavenger::DetectorConstruction class #ifndef SCAVENGER_DetectorConstruction_h #define SCAVENGER_DetectorConstruction_h 1 diff --git a/examples/extended/medical/dna/scavenger/include/EmDNAChemistry.hh b/examples/extended/medical/dna/scavenger/include/EmDNAChemistry.hh index 230cc4276b..b630119f19 100644 --- a/examples/extended/medical/dna/scavenger/include/EmDNAChemistry.hh +++ b/examples/extended/medical/dna/scavenger/include/EmDNAChemistry.hh @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file EmDNAChemistry.hh -/// \brief Definition of the EmDNAChemistry class +/// \file scavenger/include/EmDNAChemistry.hh +/// \brief Definition of the scavenger::EmDNAChemistry class #ifndef EmDNAChemistry_hh #define EmDNAChemistry_hh 1 diff --git a/examples/extended/medical/dna/scavenger/include/ParserChemReaction.hh b/examples/extended/medical/dna/scavenger/include/ParserChemReaction.hh index 639064e01d..6f694e884b 100644 --- a/examples/extended/medical/dna/scavenger/include/ParserChemReaction.hh +++ b/examples/extended/medical/dna/scavenger/include/ParserChemReaction.hh @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file ParserChemReaction.hh -/// \brief Definition of the ParserChemReaction class +/// \file scavenger/include/ParserChemReaction.hh +/// \brief Definition of the scavenger::ParserChemReaction class #ifndef SCAVENGER_ParserChemReaction_h #define SCAVENGER_ParserChemReaction_h 1 diff --git a/examples/extended/medical/dna/scavenger/include/PhysicsList.hh b/examples/extended/medical/dna/scavenger/include/PhysicsList.hh index bff6daf1ae..da93f59bca 100644 --- a/examples/extended/medical/dna/scavenger/include/PhysicsList.hh +++ b/examples/extended/medical/dna/scavenger/include/PhysicsList.hh @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file PhysicsList.hh -/// \brief Definition of the PhysicsList class +/// \file scavenger/include/PhysicsList.hh +/// \brief Definition of the scavenger::PhysicsList class #ifndef SCAVENGER_PhysicsList_h #define SCAVENGER_PhysicsList_h 1 diff --git a/examples/extended/medical/dna/scavenger/include/PrimaryGeneratorAction.hh b/examples/extended/medical/dna/scavenger/include/PrimaryGeneratorAction.hh index e0f35d362f..558c801a93 100644 --- a/examples/extended/medical/dna/scavenger/include/PrimaryGeneratorAction.hh +++ b/examples/extended/medical/dna/scavenger/include/PrimaryGeneratorAction.hh @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file PrimaryGeneratorAction.hh -/// \brief Definition of the PrimaryGeneratorAction class +/// \file scavenger/include/PrimaryGeneratorAction.hh +/// \brief Definition of the scavenger::PrimaryGeneratorAction class #ifndef SCAVENGER_PrimaryGeneratorAction_h #define SCAVENGER_PrimaryGeneratorAction_h 1 diff --git a/examples/extended/medical/dna/scavenger/include/PrimaryKiller.hh b/examples/extended/medical/dna/scavenger/include/PrimaryKiller.hh index 4787e6960d..b387b6ba3b 100644 --- a/examples/extended/medical/dna/scavenger/include/PrimaryKiller.hh +++ b/examples/extended/medical/dna/scavenger/include/PrimaryKiller.hh @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file PrimaryKiller.hh -/// \brief Definition of the PrimaryKiller class +/// \file scavenger/include/PrimaryKiller.hh +/// \brief Definition of the scavenger::PrimaryKiller class #ifndef SCAVENGER_PKiller_h #define SCAVENGER_PKiller_h 1 diff --git a/examples/extended/medical/dna/scavenger/include/Run.hh b/examples/extended/medical/dna/scavenger/include/Run.hh index fac369544a..14c3d83a52 100644 --- a/examples/extended/medical/dna/scavenger/include/Run.hh +++ b/examples/extended/medical/dna/scavenger/include/Run.hh @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file Run.hh -/// \brief Definition of the Run class +/// \file scavenger/include/Run.hh +/// \brief Definition of the scavenger::Run class #ifndef SCAVENGER_Run_h #define SCAVENGER_Run_h 1 diff --git a/examples/extended/medical/dna/scavenger/include/RunAction.hh b/examples/extended/medical/dna/scavenger/include/RunAction.hh index b8bd924da7..6ca49d1a9c 100644 --- a/examples/extended/medical/dna/scavenger/include/RunAction.hh +++ b/examples/extended/medical/dna/scavenger/include/RunAction.hh @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file RunAction.hh -/// \brief Definition of the RunAction class +/// \file scavenger/include/RunAction.hh +/// \brief Definition of the scavenger::RunAction class #ifndef SCAVENGER_RunAction_h #define SCAVENGER_RunAction_h 1 diff --git a/examples/extended/medical/dna/scavenger/include/ScoreSpecies.hh b/examples/extended/medical/dna/scavenger/include/ScoreSpecies.hh index 9ef82496d9..18887e9a5e 100644 --- a/examples/extended/medical/dna/scavenger/include/ScoreSpecies.hh +++ b/examples/extended/medical/dna/scavenger/include/ScoreSpecies.hh @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file ScoreSpecies.hh -/// \brief Definition of the ScoreSpecies class +/// \file scavenger/include/ScoreSpecies.hh +/// \brief Definition of the scavenger::ScoreSpecies class #ifndef SCAVENGER_ScoreSpecies_h #define SCAVENGER_ScoreSpecies_h 1 @@ -41,13 +41,17 @@ class G4VAnalysisManager; class G4MolecularConfiguration; -/// Primitive scorer class for scoring the radiolytic species -/// produced after irradiation in a water volume - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... namespace scavenger { +/// \brief Primitive scorer class for scoring the radiolytic species +/// produced after irradiation in a water volume +/// +/// This is a primitive scorer class for molecular species. +/// The number of species is recorded for all times (predetermined or +/// user chosen). It also scores the energy deposition in order to compute the +/// radiochemical yields. class ScoreSpecies : public G4VPrimitiveScorer diff --git a/examples/extended/medical/dna/scavenger/include/StackingAction.hh b/examples/extended/medical/dna/scavenger/include/StackingAction.hh index e38e7fcb5e..604529c038 100644 --- a/examples/extended/medical/dna/scavenger/include/StackingAction.hh +++ b/examples/extended/medical/dna/scavenger/include/StackingAction.hh @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file StackingAction.hh -/// \brief Definition of the StackingAction class +/// \file scavenger/include/StackingAction.hh +/// \brief Definition of the scavenger::StackingAction class #ifndef SCAVENGER_StackingAction_h #define SCAVENGER_StackingAction_h 1 diff --git a/examples/extended/medical/dna/scavenger/include/TimeStepAction.hh b/examples/extended/medical/dna/scavenger/include/TimeStepAction.hh index 3e8de50344..777a0c52eb 100644 --- a/examples/extended/medical/dna/scavenger/include/TimeStepAction.hh +++ b/examples/extended/medical/dna/scavenger/include/TimeStepAction.hh @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file TimeStepAction.hh -/// \brief Definition of the TimeStepAction class +/// \file scavenger/include/TimeStepAction.hh +/// \brief Definition of the scavenger::TimeStepAction class #ifndef TimeStepAction_h #define TimeStepAction_h 1 diff --git a/examples/extended/medical/dna/scavenger/plotG.C b/examples/extended/medical/dna/scavenger/plotG.C old mode 100755 new mode 100644 index 311980271e..856672222e --- a/examples/extended/medical/dna/scavenger/plotG.C +++ b/examples/extended/medical/dna/scavenger/plotG.C @@ -1,235 +1,234 @@ -{ struct SpeciesInfoAOS { - SpeciesInfoAOS() - { - fNEvent = 0; - fNumber = 0; - fG = 0.; - fG2 = 0.; - } + SpeciesInfoAOS() + { + fNEvent = 0; + fNumber = 0; + fG = 0.; + fG2 = 0.; + } - SpeciesInfoAOS(const SpeciesInfoAOS& right) // Species A(B); - { - fNEvent = right.fNEvent; - fNumber = right.fNumber; - fG = right.fG; - fG2 = right.fG2; - fName = right.fName; - } + SpeciesInfoAOS(const SpeciesInfoAOS& right) // Species A(B); + { + fNEvent = right.fNEvent; + fNumber = right.fNumber; + fG = right.fG; + fG2 = right.fG2; + fName = right.fName; + } - SpeciesInfoAOS& operator=(const SpeciesInfoAOS& right) // A = B - { - if(&right == this) return *this; - fNEvent = right.fNEvent; - fNumber = right.fNumber; - fG = right.fG; - fG2 = right.fG2; - fName = right.fName; - return *this; - } + SpeciesInfoAOS& operator=(const SpeciesInfoAOS& right) // A = B + { + if(&right == this) return *this; + fNEvent = right.fNEvent; + fNumber = right.fNumber; + fG = right.fG; + fG2 = right.fG2; + fName = right.fName; + return *this; + } - Int_t fNEvent; - Int_t fNumber; - Double_t fG; - Double_t fG2; - string fName; + Int_t fNEvent; + Int_t fNumber; + Double_t fG; + Double_t fG2; + string fName; }; //------------------------------------------------------------------------ struct SpeciesInfoSOA { - SpeciesInfoSOA() - { - fRelatErr = 0; - } + SpeciesInfoSOA() + { + fRelatErr = 0; + } - SpeciesInfoSOA(const SpeciesInfoSOA& right) : - fG(right.fG), - fGerr(right.fGerr), - fTime(right.fTime), - fRelatErr(right.fRelatErr), - fName(right.fName) - {} + SpeciesInfoSOA(const SpeciesInfoSOA& right) : + fG(right.fG), + fGerr(right.fGerr), + fTime(right.fTime), + fRelatErr(right.fRelatErr), + fName(right.fName) + {} - SpeciesInfoSOA& operator=(const SpeciesInfoSOA& right) - { - if(this == &right) return *this; - fG = right.fG; - fGerr = right.fGerr; - fTime = right.fTime; - fRelatErr = right.fRelatErr; - fName = right.fName; - return *this; - } + SpeciesInfoSOA& operator=(const SpeciesInfoSOA& right) + { + if(this == &right) return *this; + fG = right.fG; + fGerr = right.fGerr; + fTime = right.fTime; + fRelatErr = right.fRelatErr; + fName = right.fName; + return *this; + } - std::vector fG; - std::vector fGerr; - std::vector fTime; - Double_t fRelatErr; - Double_t fMin, fMax; - string fName; + std::vector fG; + std::vector fGerr; + std::vector fTime; + Double_t fRelatErr; + Double_t fMin, fMax; + string fName; }; -void Save(); const char* filetypes[] = { - "PostScript", "*.ps", - "Encapsulated PostScript", "*.eps", - "PDF files", "*.pdf", - "Gif files", "*.gif", - "PNG files", "*.png", - "All files", "*", - 0, 0 + "PostScript", "*.ps", + "Encapsulated PostScript", "*.eps", + "PDF files", "*.pdf", + "Gif files", "*.gif", + "PNG files", "*.png", + "All files", "*", + 0, 0 }; -gROOT->Reset(); +TGTab *gTab = nullptr; -gROOT->SetStyle("Plain"); -gStyle->SetPalette(1); -gStyle->SetCanvasBorderMode(0); -gStyle->SetFrameBorderMode(0); -gStyle->SetPadTickX(1); -gStyle->SetPadTickY(1); - -TGMainFrame *main = new TGMainFrame(gClient->GetRoot(), 200, 200); -TGTab *fTab = new TGTab(main, 200, 200); - -Double_t timeA, sumG, sumG2; -Int_t speciesID, number, nEvent; -char speciesName[500]; - -TFile* file = new TFile; -file = TFile::Open("scorer.root"); -TTree* tree = (TTree*)file->Get("species"); -tree->SetBranchAddress("speciesID", &speciesID); -tree->SetBranchAddress("number", &number); -tree->SetBranchAddress("nEvent", &nEvent); -tree->SetBranchAddress("speciesName", &speciesName); -tree->SetBranchAddress("time", &timeA); -tree->SetBranchAddress("sumG", &sumG); -tree->SetBranchAddress("sumG2", &sumG2); - -Long64_t nentries = tree->GetEntries(); - -if(nentries == 0) +void Save() { - cout << "No entries found in the tree species contained in the file " - << file->GetPath() << endl; - exit(1); + TGFileInfo fi; + fi.fFileTypes = filetypes; + + new TGFileDialog(gClient->GetRoot(),gClient->GetRoot(),kFDSave,&fi); + gROOT->GetListOfCanvases()->At(gTab->GetCurrent())->SaveAs(fi.fFilename); } -std::map> speciesTimeInfo; -for (Int_t j=0; j < nentries; j++) +void plotG() { - tree->GetEntry(j); - SpeciesInfoAOS& infoAOS = speciesTimeInfo[speciesID][timeA]; - infoAOS.fNumber += number; - infoAOS.fG += sumG; - infoAOS.fG2 += sumG2; - infoAOS.fNEvent += nEvent; - infoAOS.fName = speciesName; -} + gROOT->SetStyle("Plain"); + gStyle->SetPalette(1); + gStyle->SetCanvasBorderMode(0); + gStyle->SetFrameBorderMode(0); + gStyle->SetPadTickX(1); + gStyle->SetPadTickY(1); -std::map speciesInfo; + TGMainFrame *main = new TGMainFrame(gClient->GetRoot(), 200, 200); + gTab = new TGTab(main, 200, 200); + Double_t timeA, sumG, sumG2; + Int_t speciesID, number, nEvent; + char speciesName[500]; -auto it_SOA = speciesTimeInfo.begin(); -auto end_SOA = speciesTimeInfo.end(); + TFile* file = new TFile; + file = TFile::Open("scorer.root"); + TTree* tree = (TTree*)file->Get("species"); + tree->SetBranchAddress("speciesID", &speciesID); + tree->SetBranchAddress("number", &number); + tree->SetBranchAddress("nEvent", &nEvent); + tree->SetBranchAddress("speciesName", &speciesName); + tree->SetBranchAddress("time", &timeA); + tree->SetBranchAddress("sumG", &sumG); + tree->SetBranchAddress("sumG2", &sumG2); -for(; it_SOA!=end_SOA;++it_SOA) -{ - const Int_t _speciesID = it_SOA->first; - SpeciesInfoSOA& info = speciesInfo[_speciesID]; + Long64_t nentries = tree->GetEntries(); - auto it2 = it_SOA->second.begin(); - auto end2 = it_SOA->second.end(); + if(nentries == 0) { + cout << "No entries found in the tree species contained in the file " + << file->GetPath() << endl; + exit(1); + } - info.fName = it2->second.fName; - const size_t size2 = it_SOA->second.size(); - info.fG.resize(size2); - info.fGerr.resize(size2); - info.fTime.resize(size2); + std::map> speciesTimeInfo; - Int_t color = (2+_speciesID)%TColor::GetNumberOfColors(); - if(color == 5 || color == 10 || color == 0) ++color; + for (Int_t j=0; j < nentries; j++) { + tree->GetEntry(j); - for(int i2 = 0 ;it2!=end2;++it2, ++i2) - { - SpeciesInfoAOS& infoAOS = it2->second; + SpeciesInfoAOS& infoAOS = speciesTimeInfo[speciesID][timeA]; - Double_t _SumG2 = infoAOS.fG2; - Double_t _MeanG = infoAOS.fG/infoAOS.fNEvent; - Double_t _Gerr = sqrt((_SumG2/infoAOS.fNEvent - pow(_MeanG,2)) - /(infoAOS.fNEvent-1) ); + infoAOS.fNumber += number; + infoAOS.fG += sumG; + infoAOS.fG2 += sumG2; + infoAOS.fNEvent += nEvent; + infoAOS.fName = speciesName; + } - info.fG[i2] = _MeanG; - info.fGerr[i2] = _Gerr; - info.fTime[i2] = it2->first; + std::map speciesInfo; - info.fRelatErr += _Gerr/(_MeanG + 1e-30); - if(info.fG[i2] != 0) - { - std::cout<first; + SpeciesInfoSOA& info = speciesInfo[_speciesID]; + + auto it2 = it_SOA->second.begin(); + auto end2 = it_SOA->second.end(); + + info.fName = it2->second.fName; + const size_t size2 = it_SOA->second.size(); + info.fG.resize(size2); + info.fGerr.resize(size2); + info.fTime.resize(size2); + + Int_t color = (2+_speciesID)%TColor::GetNumberOfColors(); + if(color == 5 || color == 10 || color == 0) ++color; + + for (int i2 = 0 ;it2!=end2;++it2, ++i2) { + SpeciesInfoAOS& infoAOS = it2->second; + + Double_t _SumG2 = infoAOS.fG2; + Double_t _MeanG = infoAOS.fG/infoAOS.fNEvent; + Double_t _Gerr = (infoAOS.fNEvent > 1) ? sqrt((_SumG2/infoAOS.fNEvent - pow(_MeanG,2)) + /(infoAOS.fNEvent-1) ) : 0.; + + info.fG[i2] = _MeanG; + info.fGerr[i2] = _Gerr; + info.fTime[i2] = it2->first; + + info.fRelatErr += _Gerr/(_MeanG + 1e-30); + if(info.fG[i2] != 0) + { + std::cout<AddTab(info.fName.c_str()); - TGCompositeFrame *frame = new TGCompositeFrame(tf, 60, 60, - kHorizontalFrame); + TGCompositeFrame *tf = gTab->AddTab(info.fName.c_str()); + TGCompositeFrame *frame = new TGCompositeFrame(tf, 60, 60, + kHorizontalFrame); - tf->AddFrame(frame, new TGLayoutHints(kLHintsExpandX|kLHintsExpandY, - 10,10,10,2)); + tf->AddFrame(frame, new TGLayoutHints(kLHintsExpandX|kLHintsExpandY, + 10,10,10,2)); - TRootEmbeddedCanvas *c1 = new TRootEmbeddedCanvas(info.fName.c_str(), - frame, 700, 500); - frame->AddFrame(c1, new TGLayoutHints(kLHintsExpandX|kLHintsExpandY, - 10,10,10,2)); - c1->GetCanvas()->SetLogx(); + TRootEmbeddedCanvas *c1 = new TRootEmbeddedCanvas(info.fName.c_str(), + frame, 700, 500); + frame->AddFrame(c1, new TGLayoutHints(kLHintsExpandX|kLHintsExpandY, + 10,10,10,2)); + c1->GetCanvas()->SetLogx(); - TGHorizontalFrame* hframe = new TGHorizontalFrame(tf, 200, 40); + TGHorizontalFrame* hframe = new TGHorizontalFrame(tf, 200, 40); - TGTextButton* save = new TGTextButton(hframe, "&Save as ...", - "Save()"); - hframe->AddFrame(save, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4)); + TGTextButton* save = new TGTextButton(hframe, "&Save as ...", + "Save()"); + hframe->AddFrame(save, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4)); - TGTextButton *exit = new TGTextButton(hframe, "&Exit ", - "gApplication->Terminate()"); - hframe->AddFrame(exit, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4)); + TGTextButton *exit = new TGTextButton(hframe, "&Exit ", + "gApplication->Terminate()"); + hframe->AddFrame(exit, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4)); - tf->AddFrame(hframe, new TGLayoutHints(kLHintsCenterX, 2, 2, 2, 2)); + tf->AddFrame(hframe, new TGLayoutHints(kLHintsCenterX, 2, 2, 2, 2)); - gSpecies->SetTitle(info.fName.c_str()); - gSpecies->SetMarkerStyle(20+_speciesID); - gSpecies->SetMarkerColor(color); - gSpecies->SetLineColor(color); - gSpecies->GetXaxis()->SetTitle("Time (ns)"); - gSpecies->GetXaxis()->SetTitleOffset(1.1); - gSpecies->GetYaxis()->SetTitle("G value (molecules/100 eV)"); - gSpecies->GetYaxis()->SetTitleOffset(1.2); - gSpecies->Draw("ALP"); -} + gSpecies->SetTitle(info.fName.c_str()); + gSpecies->SetMarkerStyle(20+_speciesID); + gSpecies->SetMarkerColor(color); + gSpecies->SetLineColor(color); + gSpecies->GetXaxis()->SetTitle("Time (ns)"); + gSpecies->GetXaxis()->SetTitleOffset(1.1); + gSpecies->GetYaxis()->SetTitle("G value (molecules/100 eV)"); + gSpecies->GetYaxis()->SetTitleOffset(1.2); + gSpecies->Draw("ALP"); + } -main->AddFrame(fTab, new TGLayoutHints(kLHintsBottom | kLHintsExpandX | -kLHintsExpandY, 2, 2, 5, 1)); + main->AddFrame(gTab, new TGLayoutHints(kLHintsBottom | kLHintsExpandX | + kLHintsExpandY, 2, 2, 5, 1)); -main->MapSubwindows(); -main->Resize(); // resize to default size -main->MapWindow(); + main->MapSubwindows(); + main->Resize(); // resize to default size + main->MapWindow(); } - -void Save(){ - TGFileInfo fi; - fi.fFileTypes = filetypes; - - new TGFileDialog(gClient->GetRoot(),gClient->GetRoot(),kFDSave,&fi); - gROOT->GetListOfCanvases()->At(fTab->GetCurrent())->SaveAs(fi.fFilename); -} diff --git a/examples/extended/medical/dna/scavenger/scavenger.out b/examples/extended/medical/dna/scavenger/scavenger.out index 05474b65e6..100da8865a 100644 --- a/examples/extended/medical/dna/scavenger/scavenger.out +++ b/examples/extended/medical/dna/scavenger/scavenger.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -30,6 +30,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -123,10 +125,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -150,7 +153,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -186,8 +189,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -206,82 +208,309 @@ Use DNA e- solvation model type 11003 DefaultRegionForTheWorld 1 1 0 ### === Auger flag: 1 ### === Ignore cuts flag: 1 -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:3 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationExtendedModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI ========= Table of registered couples ============================ @@ -302,7 +531,7 @@ DNAMolecularIRTModel will be used Run terminated. Run Summary Number of events processed : 2 - User=0.530000s Real=0.546476s Sys=0.010000s + User=0.580000s Real=0.597048s Sys=0.010000s --------------------End of Global Run----------------------- The run has 1 events diff --git a/examples/extended/medical/dna/scavenger/src/ActionInitialization.cc b/examples/extended/medical/dna/scavenger/src/ActionInitialization.cc index a59e1e7f57..ad3e7b2f75 100644 --- a/examples/extended/medical/dna/scavenger/src/ActionInitialization.cc +++ b/examples/extended/medical/dna/scavenger/src/ActionInitialization.cc @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file ActionInitialization.cc -/// \brief Implementation of the ActionInitialization class +/// \file scavenger/src/ActionInitialization.cc +/// \brief Implementation of the scavenger::ActionInitialization class #include "ActionInitialization.hh" #include "PrimaryGeneratorAction.hh" diff --git a/examples/extended/medical/dna/scavenger/src/DetectorConstruction.cc b/examples/extended/medical/dna/scavenger/src/DetectorConstruction.cc index 0953d1d7bb..1b66c1e12a 100644 --- a/examples/extended/medical/dna/scavenger/src/DetectorConstruction.cc +++ b/examples/extended/medical/dna/scavenger/src/DetectorConstruction.cc @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file DetectorConstruction.cc -/// \brief Implementation of the DetectorConstruction class +/// \file scavenger/src/DetectorConstruction.cc +/// \brief Implementation of the scavenger::DetectorConstruction class #include "DetectorConstruction.hh" #include "G4NistManager.hh" diff --git a/examples/extended/medical/dna/scavenger/src/EmDNAChemistry.cc b/examples/extended/medical/dna/scavenger/src/EmDNAChemistry.cc index f2464a1951..4c41ddc855 100644 --- a/examples/extended/medical/dna/scavenger/src/EmDNAChemistry.cc +++ b/examples/extended/medical/dna/scavenger/src/EmDNAChemistry.cc @@ -22,8 +22,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file EmDNAChemistry.cc -/// \brief Implementation of the EmDNAChemistry class +/// \file scavenger/src/EmDNAChemistry.cc +/// \brief Implementation of the scavenger::EmDNAChemistry class #include "EmDNAChemistry.hh" #include "G4PhysicalConstants.hh" @@ -34,6 +34,7 @@ #include "G4ProcessManager.hh" #include "G4DNAElectronSolvation.hh" #include "G4DNAVibExcitation.hh" +#include "G4DNASancheExcitationModel.hh" #include "G4DNAUeharaScreenedRutherfordElasticModel.hh" #include "G4DNAMolecularDissociation.hh" #include "G4DNAMolecularReactionTable.hh" @@ -596,4 +597,4 @@ void EmDNAChemistry::ConstructTimeStepModel(G4DNAMolecularReactionTable * //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -} \ No newline at end of file +} diff --git a/examples/extended/medical/dna/scavenger/src/ParserChemReaction.cc b/examples/extended/medical/dna/scavenger/src/ParserChemReaction.cc index 8a1ba22622..ee763bae0d 100644 --- a/examples/extended/medical/dna/scavenger/src/ParserChemReaction.cc +++ b/examples/extended/medical/dna/scavenger/src/ParserChemReaction.cc @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file ParserChemReaction.cc -/// \brief Implementation of the ParserChemReaction class +/// \file scavenger/src/ParserChemReaction.cc +/// \brief Implementation of the scavenger::ParserChemReaction class #include "ParserChemReaction.hh" #include "G4SystemOfUnits.hh" diff --git a/examples/extended/medical/dna/scavenger/src/PhysicsList.cc b/examples/extended/medical/dna/scavenger/src/PhysicsList.cc index d3ab671e3c..894ed98d9a 100644 --- a/examples/extended/medical/dna/scavenger/src/PhysicsList.cc +++ b/examples/extended/medical/dna/scavenger/src/PhysicsList.cc @@ -23,24 +23,24 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file PhysicsList.cc -/// \brief Implementation of the PhysicsList class +/// \file scavenger/src/PhysicsList.cc +/// \brief Implementation of the scavenger::PhysicsList class #include "PhysicsList.hh" #include "G4SystemOfUnits.hh" #include "EmDNAChemistry.hh" #include "G4EmDNAPhysics_option2.hh" -/** - * Change the physicsList -#include "G4EmDNAPhysics.hh" -#include "G4EmDNAPhysics_option1.hh" -#include "G4EmDNAPhysics_option3.hh" -#include "G4EmDNAPhysics_option4.hh" -#include "G4EmDNAPhysics_option5.hh" -#include "G4EmDNAPhysics_option6.hh" -#include "G4EmDNAPhysics_option7.hh" -#include "G4EmDNAPhysics_option8.hh" -*/ + +// // Change the physicsList +// #include "G4EmDNAPhysics.hh" +// #include "G4EmDNAPhysics_option1.hh" +// #include "G4EmDNAPhysics_option3.hh" +// #include "G4EmDNAPhysics_option4.hh" +// #include "G4EmDNAPhysics_option5.hh" +// #include "G4EmDNAPhysics_option6.hh" +// #include "G4EmDNAPhysics_option7.hh" +// #include "G4EmDNAPhysics_option8.hh" + #include "G4PhysicsConstructorRegistry.hh" #include "G4EmParameters.hh" diff --git a/examples/extended/medical/dna/scavenger/src/PrimaryGeneratorAction.cc b/examples/extended/medical/dna/scavenger/src/PrimaryGeneratorAction.cc index cf47731f08..6e58d88898 100644 --- a/examples/extended/medical/dna/scavenger/src/PrimaryGeneratorAction.cc +++ b/examples/extended/medical/dna/scavenger/src/PrimaryGeneratorAction.cc @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file PrimaryGeneratorAction.cc -/// \brief Implementation of the PrimaryGeneratorAction class +/// \file scavenger/src/PrimaryGeneratorAction.cc +/// \brief Implementation of the scavenger::PrimaryGeneratorAction class #include "PrimaryGeneratorAction.hh" #include "G4GeneralParticleSource.hh" diff --git a/examples/extended/medical/dna/scavenger/src/PrimaryKiller.cc b/examples/extended/medical/dna/scavenger/src/PrimaryKiller.cc index dce885ff60..21e6f8e6bf 100644 --- a/examples/extended/medical/dna/scavenger/src/PrimaryKiller.cc +++ b/examples/extended/medical/dna/scavenger/src/PrimaryKiller.cc @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file PrimaryKiller.cc -/// \brief Implementation of the PrimaryKiller class +/// \file scavenger/src/PrimaryKiller.cc +/// \brief Implementation of the scavenger::PrimaryKiller class #include "PrimaryKiller.hh" #include "G4UnitsTable.hh" diff --git a/examples/extended/medical/dna/scavenger/src/Run.cc b/examples/extended/medical/dna/scavenger/src/Run.cc index 1064de08f4..510db6ff77 100644 --- a/examples/extended/medical/dna/scavenger/src/Run.cc +++ b/examples/extended/medical/dna/scavenger/src/Run.cc @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file Run.cc -/// \brief Implementation of the Run class +/// \file scavenger/src/Run.cc +/// \brief Implementation of the scavenger::Run class #include "Run.hh" #include "G4RunManager.hh" diff --git a/examples/extended/medical/dna/scavenger/src/RunAction.cc b/examples/extended/medical/dna/scavenger/src/RunAction.cc index dd2b5c83bb..f243320027 100644 --- a/examples/extended/medical/dna/scavenger/src/RunAction.cc +++ b/examples/extended/medical/dna/scavenger/src/RunAction.cc @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file RunAction.cc -/// \brief Implementation of the RunAction class +/// \file scavenger/src/RunAction.cc +/// \brief Implementation of the scavenger::RunAction class #include "RunAction.hh" #include "Run.hh" diff --git a/examples/extended/medical/dna/scavenger/src/ScoreSpecies.cc b/examples/extended/medical/dna/scavenger/src/ScoreSpecies.cc index 321ef7cab0..fd41932133 100644 --- a/examples/extended/medical/dna/scavenger/src/ScoreSpecies.cc +++ b/examples/extended/medical/dna/scavenger/src/ScoreSpecies.cc @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file ScoreSpecies.cc -/// \brief Implementation of the ScoreSpecies class +/// \file scavenger/src/ScoreSpecies.cc +/// \brief Implementation of the scavenger::ScoreSpecies class #include "ScoreSpecies.hh" @@ -39,13 +39,6 @@ #include "G4Event.hh" #include "G4UImessenger.hh" -/** - This is a primitive scorer class for molecular species. - The number of species is recorded for all times (predetermined or - user chosen). It also scores the energy deposition in order to compute the - radiochemical yields. -*/ - namespace scavenger { diff --git a/examples/extended/medical/dna/scavenger/src/StackingAction.cc b/examples/extended/medical/dna/scavenger/src/StackingAction.cc index 36dc3dba60..d07c627732 100644 --- a/examples/extended/medical/dna/scavenger/src/StackingAction.cc +++ b/examples/extended/medical/dna/scavenger/src/StackingAction.cc @@ -23,8 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/// \file StackingAction.cc -/// \brief Implementation of the StackingAction class +/// \file scavenger/src/StackingAction.cc +/// \brief Implementation of the scavenger::StackingAction class #include "StackingAction.hh" #include "G4StackManager.hh" diff --git a/examples/extended/medical/dna/scavenger/src/TimeStepAction.cc b/examples/extended/medical/dna/scavenger/src/TimeStepAction.cc index 7eecf2ea02..14796c3ff9 100644 --- a/examples/extended/medical/dna/scavenger/src/TimeStepAction.cc +++ b/examples/extended/medical/dna/scavenger/src/TimeStepAction.cc @@ -22,8 +22,8 @@ // * use in resulting scientific publications, and indicate your * // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** -/// \file TimeStepAction.hh -/// \brief Implementation of the TimeStepAction class +/// \file scavenger/src/TimeStepAction.cc +/// \brief Implementation of the scavenger::TimeStepAction class #include "TimeStepAction.hh" diff --git a/examples/extended/medical/dna/slowing/slowing.out b/examples/extended/medical/dna/slowing/slowing.out index c4c5b663d2..0a49e582d8 100644 --- a/examples/extended/medical/dna/slowing/slowing.out +++ b/examples/extended/medical/dna/slowing/slowing.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -32,6 +32,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -104,7 +106,6 @@ PhysicsList::AddPhysicsList: ---> The tracking cut is set to 9 eV --------------------------------------------------------- -Set file name: slowing ======================================================================= ====== Electromagnetic Physics Parameters ======== ======================================================================= @@ -114,10 +115,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -141,7 +143,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -177,8 +179,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -199,75 +200,307 @@ Use DNA e- solvation model type 11003 ### === Ignore cuts flag: 1 phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:1 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. ### Run 0 starts. diff --git a/examples/extended/medical/dna/spower/spower.out b/examples/extended/medical/dna/spower/spower.out index 8c7c5a0555..fce2a6862d 100644 --- a/examples/extended/medical/dna/spower/spower.out +++ b/examples/extended/medical/dna/spower/spower.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -63,10 +63,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -90,7 +91,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -126,8 +127,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -146,82 +146,309 @@ Use DNA e- solvation model type 11003 DefaultRegionForTheWorld 1 1 0 ### === Auger flag: 1 ### === Ignore cuts flag: 1 -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:1 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationExtendedModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI ========= Table of registered couples ============================ @@ -238,7 +465,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=23.410000s Real=23.792340s Sys=0.010000s + User=30.420000s Real=30.697638s Sys=0.010000s ======================== run summary ===================== @@ -263,7 +490,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=26.260000s Real=26.421068s Sys=0.000000s + User=33.960000s Real=34.245215s Sys=0.000000s ======================== run summary ===================== @@ -288,7 +515,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=31.410000s Real=31.767737s Sys=0.000000s + User=36.490000s Real=36.760644s Sys=0.010000s ======================== run summary ===================== @@ -313,7 +540,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=30.280000s Real=30.563605s Sys=0.010000s + User=35.630000s Real=35.875099s Sys=0.000000s ======================== run summary ===================== @@ -338,7 +565,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=29.600000s Real=29.880935s Sys=0.000000s + User=38.170000s Real=38.443291s Sys=0.000000s ======================== run summary ===================== diff --git a/examples/extended/medical/dna/svalue/svalue.out b/examples/extended/medical/dna/svalue/svalue.out index aec19ef1f2..13e452b154 100644 --- a/examples/extended/medical/dna/svalue/svalue.out +++ b/examples/extended/medical/dna/svalue/svalue.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -30,6 +30,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -114,10 +116,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -141,7 +144,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -177,8 +180,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 1 De-excitation module ignores cuts 1 @@ -201,82 +203,135 @@ Use DNA e- solvation model type 11003 ### === Ignore cuts flag: 1 ### === PIXE model for hadrons: Empirical ### === PIXE model for e+-: Livermore -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:3 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationExtendedModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== @@ -284,6 +339,7 @@ min MeanLife (from G4NuclideTable) 0.14427 ps Max life time (from G4DeexPrecoParameters) 0.14427 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -294,6 +350,187 @@ Use ANSTO fluorescence model 0 Threshold for very long decay time at rest 3.171e+10 y ====================================================================== +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + ===== Limit on energy threshold has been applied + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + ===== Limit on energy threshold has been applied + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + ===== Limit on energy threshold has been applied + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + ===== Limit on energy threshold has been applied + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + ===== Limit on energy threshold has been applied + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + ===== Limit on energy threshold has been applied + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + ===== Limit on energy threshold has been applied + ========= Table of registered couples ============================ Index : 0 used in the geometry : Yes @@ -311,7 +548,7 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 1000 - User=0.230000s Real=0.235724s Sys=0.000000s + User=0.280000s Real=0.283824s Sys=0.000000s ======================== run summary ===================== @@ -352,7 +589,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=0.420000s Real=0.427199s Sys=0.000000s + User=0.500000s Real=0.502993s Sys=0.000000s ======================== run summary ===================== @@ -393,7 +630,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=0.610000s Real=0.612392s Sys=0.000000s + User=0.900000s Real=0.915798s Sys=0.000000s ======================== run summary ===================== @@ -434,7 +671,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=0.790000s Real=0.806494s Sys=0.000000s + User=1.070000s Real=1.079246s Sys=0.000000s ======================== run summary ===================== @@ -475,7 +712,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=0.960000s Real=0.968492s Sys=0.000000s + User=1.340000s Real=1.354113s Sys=0.000000s ======================== run summary ===================== @@ -516,7 +753,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=1.170000s Real=1.179068s Sys=0.000000s + User=1.520000s Real=1.535535s Sys=0.000000s ======================== run summary ===================== @@ -557,7 +794,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=1.370000s Real=1.424663s Sys=0.000000s + User=1.600000s Real=1.610134s Sys=0.000000s ======================== run summary ===================== @@ -598,7 +835,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=1.550000s Real=1.561930s Sys=0.000000s + User=1.840000s Real=1.856737s Sys=0.000000s ======================== run summary ===================== @@ -639,7 +876,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=1.710000s Real=1.731727s Sys=0.000000s + User=2.030000s Real=2.046352s Sys=0.000000s ======================== run summary ===================== @@ -680,7 +917,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=1.910000s Real=1.931799s Sys=0.000000s + User=2.240000s Real=2.256978s Sys=0.000000s ======================== run summary ===================== @@ -721,7 +958,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=3.750000s Real=3.786376s Sys=0.010000s + User=4.490000s Real=4.520209s Sys=0.000000s ======================== run summary ===================== @@ -762,7 +999,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=5.530000s Real=5.583839s Sys=0.000000s + User=6.750000s Real=6.798877s Sys=0.000000s ======================== run summary ===================== @@ -803,7 +1040,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=7.400000s Real=7.561482s Sys=0.010000s + User=9.080000s Real=9.150033s Sys=0.000000s ======================== run summary ===================== @@ -844,7 +1081,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=9.140000s Real=9.232620s Sys=0.010000s + User=11.170000s Real=11.255943s Sys=0.000000s ======================== run summary ===================== @@ -885,7 +1122,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=10.970000s Real=11.056257s Sys=0.000000s + User=13.360000s Real=13.460213s Sys=0.000000s ======================== run summary ===================== @@ -926,7 +1163,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=12.850000s Real=12.973539s Sys=0.000000s + User=16.210000s Real=16.340518s Sys=0.000000s ======================== run summary ===================== @@ -967,7 +1204,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=14.870000s Real=15.010052s Sys=0.010000s + User=17.630000s Real=17.752552s Sys=0.010000s ======================== run summary ===================== @@ -1008,7 +1245,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=16.770000s Real=17.244668s Sys=0.020000s + User=19.800000s Real=19.938036s Sys=0.000000s ======================== run summary ===================== @@ -1049,7 +1286,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=18.220000s Real=18.377594s Sys=0.010000s + User=22.620000s Real=22.795364s Sys=0.000000s ======================== run summary ===================== diff --git a/examples/extended/medical/dna/wholeNuclearDNA/wholeNuclearDNA.out b/examples/extended/medical/dna/wholeNuclearDNA/wholeNuclearDNA.out index 8050c8daaa..23aaf84e0d 100644 --- a/examples/extended/medical/dna/wholeNuclearDNA/wholeNuclearDNA.out +++ b/examples/extended/medical/dna/wholeNuclearDNA/wholeNuclearDNA.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -78,6 +78,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -130,10 +132,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -157,7 +160,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -193,8 +196,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -215,75 +217,307 @@ Use DNA e- solvation model type 11003 ### === Ignore cuts flag: 1 phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 7.4 eV - DummyModel : Emin= 7.4 eV Emax= 100 MeV + DummyModel : Emin= 7.4 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAChampionElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornExcitationModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNABornIonisationModel : Emin= 0 eV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAVibExcitation: for e- SubType=54 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNASancheExcitationModel : Emin= 0 eV Emax= 100 eV - DummyModel : Emin= 100 eV Emax= 100 MeV + DummyModel : Emin= 100 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAAttachment: for e- SubType=55 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAMeltonAttachmentModel : Emin= 0 eV Emax= 13 eV - DummyModel : Emin= 13 eV Emax= 100 MeV + DummyModel : Emin= 13 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:3 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. Graphics systems deleted. diff --git a/examples/extended/medical/dna/wvalue/wvalue.out b/examples/extended/medical/dna/wvalue/wvalue.out index 818e9d5017..37fe047e7c 100644 --- a/examples/extended/medical/dna/wvalue/wvalue.out +++ b/examples/extended/medical/dna/wvalue/wvalue.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -30,6 +30,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -108,10 +110,11 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV -Max kinetic energy for tables 100 MeV +Max kinetic energy for tables 300 MeV Number of bins per decade of a table 20 Verbose level 1 Verbose level for worker thread 0 @@ -135,7 +138,7 @@ Lowest e+e- kinetic energy 0 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -171,8 +174,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -191,80 +193,299 @@ Use DNA e- solvation model type 11003 DefaultRegionForTheWorld 1 1 0 ### === Auger flag: 1 ### === Ignore cuts flag: 1 -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV - --------- WWWW ------- G4Exception-START -------- WWWW ------- -*** G4Exception : - issued by : *** WARNING: the G4DNAUeharaScreenedRutherfordElasticModel class is used above 10 keV - -*** This is just a warning message. *** --------- WWWW -------- G4Exception-END --------- WWWW ------- - -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV -G4DNAIonElasticModel: high energy limit decreased from 100 MeV to 1 MeV phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 MeV in 54 bins + LambdaPrime table from 200 keV to 300 MeV in 59 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 MeV SauterGavrila Fluo + LivermorePhElectric : Emin= 0 eV Emax= 300 MeV SauterGavrila Fluo compt: for gamma SubType=13 BuildTable=1 - Lambda table from 10 eV to 1 MeV, 20 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 MeV in 40 bins + Lambda table from 10 eV to 1 MeV, 19 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 300 MeV in 46 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo - KleinNishina : Emin= 20 MeV Emax= 100 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 300 MeV Fluo conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 MeV, 32 bins/decade, spline: 1 + Lambda table from 1.022 MeV to 300 MeV, 30 bins/decade, spline: 1 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 MeV ModifiedTsai + BetheHeitlerLPM : Emin= 0 eV Emax= 300 MeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 10 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 MeV in 60 bins + Lambda table from 10 eV to 150 keV, 19 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 300 MeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 MeV CullenGenerator + LivermoreRayleigh : Emin= 0 eV Emax= 300 MeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 1 MeV Emax= 300 MeV Nbins=40 1 MeV - 300 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 1 MeV Emax= 300 MeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 1 MeV Emax= 300 MeV AngularGen2BS e-_G4DNAElectronSolvation: for e- SubType=58 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAOneStepThermalizationModel_Meesungnoen2002 : Emin= 0 eV Emax= 10 eV - DummyModel : Emin= 10 eV Emax= 100 MeV + DummyModel : Emin= 10 eV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAElastic: for e- SubType=51 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAUeharaScreenedRutherfordElasticModel : Emin= 0 eV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAExcitation: for e- SubType=52 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAEmfietzoglouExcitationModel : Emin= 0 eV Emax= 10 keV DNABornExcitationModel : Emin= 10 keV Emax= 1 MeV - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm e-_G4DNAIonisation: for e- SubType=53 BuildTable=0 ===== EM models for the G4Region DefaultRegionForTheWorld ====== DNAEmfietzoglouIonisationModel : Emin= 0 eV Emax= 10 keV deltaBorn Fluo DNABornIonisationModel : Emin= 10 keV Emax= 1 MeV deltaBorn Fluo - DummyModel : Emin= 1 MeV Emax= 100 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm msc: for e+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + GoudsmitSaunderson : Emin= 0 eV Emax= 300 MeV Nbins=120 100 eV - 300 MeV StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm eIoni: for e+ XStype:1 SubType=2 - dE/dx and range tables from 10 eV to 100 MeV in 140 bins - Lambda tables from threshold to 100 MeV, 20 bins/decade, spline: 1 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01 ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 MeV deltaVI + MollerBhabha : Emin= 0 eV Emax= 300 MeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 0.3 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 300 MeV AngularGen2BS + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 300 MeV + +proton_G4DNAElastic: for proton SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +proton_G4DNAExcitation: for proton SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 500 keV +DNABornExcitationModel : Emin= 500 keV Emax= 100 MeV +DNARPWBAExcitationModel : Emin= 100 MeV Emax= 300 MeV + +proton_G4DNAIonisation: for proton SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNARuddIonisationModel : Emin= 0 eV Emax= 500 keV deltaRudd Fluo +DNABornIonisationModel : Emin= 500 keV Emax= 100 MeV deltaBorn Fluo +DNARPWBAIonisationModel : Emin= 100 MeV Emax= 300 MeV deltaBorn Fluo + +proton_G4DNAChargeDecrease: for proton SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +GenericIon_G4DNAIonisation: for GenericIon SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationExtendedModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAElastic: for alpha SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha_G4DNAExcitation: for alpha SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha_G4DNAIonisation: for alpha SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha_G4DNAChargeDecrease: for alpha SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAElastic: for alpha+ SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +alpha+_G4DNAExcitation: for alpha+ SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAIonisation: for alpha+ SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +alpha+_G4DNAChargeIncrease: for alpha+ SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +alpha+_G4DNAChargeDecrease: for alpha+ SubType=56 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeDecreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 300 MeV deltaVI + +helium_G4DNAElastic: for helium SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +helium_G4DNAExcitation: for helium SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +helium_G4DNAIonisation: for helium SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +helium_G4DNAChargeIncrease: for helium SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAElastic: for hydrogen SubType=51 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DNAIonElasticModel : Emin= 0 eV Emax= 1 MeV + DummyModel : Emin= 1 MeV Emax= 300 MeV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm + +hydrogen_G4DNAExcitation: for hydrogen SubType=52 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNAMillerGreenExcitationModel : Emin= 0 eV Emax= 300 MeV + +hydrogen_G4DNAIonisation: for hydrogen SubType=53 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + DummyModel : Emin= 0 eV Emax= 100 eV + StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm +DNARuddIonisationModel : Emin= 100 eV Emax= 300 MeV deltaRudd Fluo + +hydrogen_G4DNAChargeIncrease: for hydrogen SubType=57 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== +DNADingfelderChargeIncreaseModel : Emin= 0 eV Emax= 300 MeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 300 MeV deltaVI + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for mu- XStype:1 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=225.219 keV deltaVI + BetheBloch : Emin=225.219 keV Emax= 300 MeV deltaVI + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 300 MeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 10 eV to 300 MeV in 140 bins + Lambda tables from threshold to 300 MeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 300 MeV deltaVI G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. See commands in /vis/modeling/trajectories/ for other options. @@ -272,18 +493,18 @@ See commands in /vis/modeling/trajectories/ for other options. The run is 1000 e- of 12.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 0.057 +- 0.232 + Nb of ionisations = 0.076 +- 0.265 - w = 210.526 eV +- 856.298 eV + w = 157.895 eV +- 550.550 eV Total Energy deposited = 12.000 eV +- 0.002 meV - Track length of primary track = 11.005 nm +- 10.740 nm - Projected range = 1.934 Ang +- 1.438 nm + Track length of primary track = 10.620 nm +- 10.650 nm + Projected range = 1.907 Ang +- 1.386 nm - Nb of steps of primary track = 61.37 +- 58.20 + Nb of steps of primary track = 59.27 +- 58.02 - Step size = 1.724 Ang +- 40341.774 fm + Step size = 1.729 Ang +- 40929.590 fm There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -292,18 +513,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 15.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 0.226 +- 0.418 + Nb of ionisations = 0.206 +- 0.404 - w = 66.372 eV +- 122.828 eV + w = 72.816 eV +- 142.955 eV Total Energy deposited = 15.000 eV +- 0.002 meV - Track length of primary track = 8.407 nm +- 7.666 nm - Projected range = 2.887 Ang +- 1.296 nm + Track length of primary track = 7.886 nm +- 7.904 nm + Projected range = 2.693 Ang +- 1.215 nm - Nb of steps of primary track = 43.57 +- 38.47 + Nb of steps of primary track = 41.03 +- 40.14 - Step size = 1.837 Ang +- 48581.147 fm + Step size = 1.853 Ang +- 51429.894 fm There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -312,18 +533,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 20.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 0.483 +- 0.500 + Nb of ionisations = 0.455 +- 0.498 - w = 41.408 eV +- 42.841 eV + w = 43.956 eV +- 48.107 eV Total Energy deposited = 20.000 eV +- 0.003 meV - Track length of primary track = 11.562 nm +- 13.405 nm - Projected range = 3.431 Ang +- 1.546 nm + Track length of primary track = 11.274 nm +- 12.770 nm + Projected range = 3.224 Ang +- 1.481 nm - Nb of steps of primary track = 59.45 +- 72.51 + Nb of steps of primary track = 58.24 +- 69.76 - Step size = 1.965 Ang +- 56108.192 fm + Step size = 1.952 Ang +- 56075.900 fm There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -332,18 +553,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 30.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 0.965 +- 0.462 + Nb of ionisations = 0.951 +- 0.480 - w = 31.088 eV +- 14.895 eV + w = 31.546 eV +- 15.929 eV Total Energy deposited = 30.000 eV +- 0.004 meV - Track length of primary track = 11.799 nm +- 10.840 nm - Projected range = 4.119 Ang +- 1.617 nm + Track length of primary track = 12.682 nm +- 11.420 nm + Projected range = 3.573 Ang +- 1.650 nm - Nb of steps of primary track = 58.53 +- 58.36 + Nb of steps of primary track = 62.26 +- 60.54 - Step size = 2.116 Ang +- 53906.863 fm + Step size = 2.111 Ang +- 47960.160 fm There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -352,18 +573,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 40.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 1.417 +- 0.565 + Nb of ionisations = 1.461 +- 0.552 - w = 28.229 eV +- 11.254 eV + w = 27.379 eV +- 10.340 eV Total Energy deposited = 40.000 eV +- 0.007 meV - Track length of primary track = 11.878 nm +- 10.474 nm - Projected range = 5.588 Ang +- 1.654 nm + Track length of primary track = 11.597 nm +- 10.237 nm + Projected range = 5.328 Ang +- 1.708 nm - Nb of steps of primary track = 56.44 +- 53.88 + Nb of steps of primary track = 55.07 +- 52.36 - Step size = 2.204 Ang +- 52897.110 fm + Step size = 2.194 Ang +- 53495.796 fm There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -372,18 +593,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 50.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 1.841 +- 0.603 + Nb of ionisations = 1.837 +- 0.628 - w = 27.159 eV +- 8.897 eV + w = 27.218 eV +- 9.305 eV Total Energy deposited = 50.000 eV +- 0.000 eV - Track length of primary track = 13.209 nm +- 10.275 nm - Projected range = 6.614 Ang +- 1.849 nm + Track length of primary track = 13.061 nm +- 11.159 nm + Projected range = 8.999 Ang +- 1.875 nm - Nb of steps of primary track = 62.05 +- 52.75 + Nb of steps of primary track = 61.37 +- 58.52 - Step size = 2.250 Ang +- 53177.361 fm + Step size = 2.242 Ang +- 51529.098 fm There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -392,18 +613,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 60.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 2.299 +- 0.655 + Nb of ionisations = 2.273 +- 0.650 - w = 26.098 eV +- 7.441 eV + w = 26.397 eV +- 7.548 eV Total Energy deposited = 60.000 eV +- 0.008 meV - Track length of primary track = 13.360 nm +- 11.404 nm - Projected range = 9.811 Ang +- 1.864 nm + Track length of primary track = 13.636 nm +- 10.514 nm + Projected range = 8.241 Ang +- 1.933 nm - Nb of steps of primary track = 61.94 +- 59.52 + Nb of steps of primary track = 62.53 +- 54.16 - Step size = 2.304 Ang +- 51042.118 fm + Step size = 2.321 Ang +- 52751.180 fm There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -412,18 +633,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 70.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 2.748 +- 0.706 + Nb of ionisations = 2.753 +- 0.704 - w = 25.473 eV +- 6.545 eV + w = 25.427 eV +- 6.505 eV Total Energy deposited = 70.000 eV +- 0.000 eV - Track length of primary track = 14.589 nm +- 11.619 nm - Projected range = 9.734 Ang +- 2.102 nm + Track length of primary track = 13.596 nm +- 10.362 nm + Projected range = 1.232 nm +- 2.002 nm - Nb of steps of primary track = 66.01 +- 61.06 + Nb of steps of primary track = 60.98 +- 52.92 - Step size = 2.382 Ang +- 55677.696 fm + Step size = 2.409 Ang +- 61551.167 fm There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -432,18 +653,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 80.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 3.243 +- 0.771 + Nb of ionisations = 3.236 +- 0.750 - w = 24.669 eV +- 5.862 eV + w = 24.722 eV +- 5.729 eV Total Energy deposited = 80.000 eV +- 0.013 meV - Track length of primary track = 14.150 nm +- 11.072 nm - Projected range = 1.047 nm +- 2.109 nm + Track length of primary track = 14.515 nm +- 10.802 nm + Projected range = 9.898 Ang +- 2.181 nm - Nb of steps of primary track = 62.66 +- 55.90 + Nb of steps of primary track = 63.96 +- 56.19 - Step size = 2.437 Ang +- 58312.937 fm + Step size = 2.457 Ang +- 59473.101 fm There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -452,18 +673,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 90.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 3.653 +- 0.772 + Nb of ionisations = 3.666 +- 0.767 - w = 24.637 eV +- 5.209 eV + w = 24.550 eV +- 5.137 eV Total Energy deposited = 90.000 eV +- 0.000 eV - Track length of primary track = 14.632 nm +- 10.234 nm - Projected range = 1.126 nm +- 2.154 nm + Track length of primary track = 15.305 nm +- 10.988 nm + Projected range = 1.063 nm +- 2.193 nm - Nb of steps of primary track = 63.68 +- 51.82 + Nb of steps of primary track = 66.82 +- 55.90 - Step size = 2.473 Ang +- 56051.383 fm + Step size = 2.477 Ang +- 57626.025 fm There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -472,18 +693,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 100.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 4.096 +- 0.823 + Nb of ionisations = 4.122 +- 0.843 - w = 24.414 eV +- 4.903 eV + w = 24.260 eV +- 4.963 eV Total Energy deposited = 100.000 eV +- 0.000 eV - Track length of primary track = 15.009 nm +- 10.450 nm - Projected range = 1.052 nm +- 2.380 nm + Track length of primary track = 15.292 nm +- 10.443 nm + Projected range = 1.280 nm +- 2.286 nm - Nb of steps of primary track = 64.01 +- 51.58 + Nb of steps of primary track = 65.38 +- 52.74 - Step size = 2.512 Ang +- 57595.343 fm + Step size = 2.538 Ang +- 61960.977 fm There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -492,18 +713,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 200.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 8.577 +- 1.171 + Nb of ionisations = 8.531 +- 1.142 - w = 23.318 eV +- 3.185 eV + w = 23.444 eV +- 3.139 eV Total Energy deposited = 200.000 eV +- 0.000 eV - Track length of primary track = 20.744 nm +- 11.606 nm - Projected range = 2.832 nm +- 3.429 nm + Track length of primary track = 20.572 nm +- 11.282 nm + Projected range = 2.774 nm +- 3.353 nm - Nb of steps of primary track = 75.74 +- 57.75 + Nb of steps of primary track = 75.42 +- 55.47 - Step size = 3.092 Ang +- 83363.156 fm + Step size = 3.054 Ang +- 82427.417 fm There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -512,18 +733,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 300.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 12.982 +- 1.433 + Nb of ionisations = 13.014 +- 1.434 - w = 23.109 eV +- 2.551 eV + w = 23.052 eV +- 2.540 eV Total Energy deposited = 300.000 eV +- 0.000 eV - Track length of primary track = 25.991 nm +- 12.094 nm - Projected range = 4.225 nm +- 4.530 nm + Track length of primary track = 25.635 nm +- 12.118 nm + Projected range = 4.482 nm +- 4.842 nm - Nb of steps of primary track = 81.20 +- 56.38 + Nb of steps of primary track = 79.81 +- 58.04 - Step size = 3.658 Ang +- 1.108 Ang + Step size = 3.683 Ang +- 1.115 Ang There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -532,18 +753,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 400.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 17.336 +- 1.639 + Nb of ionisations = 17.439 +- 1.674 - w = 23.073 eV +- 2.181 eV + w = 22.937 eV +- 2.202 eV Total Energy deposited = 400.000 eV +- 0.000 eV - Track length of primary track = 31.192 nm +- 12.359 nm - Projected range = 6.767 nm +- 5.983 nm + Track length of primary track = 31.962 nm +- 12.733 nm + Projected range = 6.320 nm +- 6.279 nm - Nb of steps of primary track = 84.70 +- 54.16 + Nb of steps of primary track = 86.01 +- 55.95 - Step size = 4.183 Ang +- 1.291 Ang + Step size = 4.230 Ang +- 1.308 Ang There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -552,18 +773,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 500.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 21.835 +- 1.794 + Nb of ionisations = 21.787 +- 1.837 - w = 22.899 eV +- 1.881 eV + w = 22.949 eV +- 1.935 eV Total Energy deposited = 500.000 eV +- 0.059 meV - Track length of primary track = 38.362 nm +- 13.660 nm - Projected range = 9.194 nm +- 8.102 nm + Track length of primary track = 38.948 nm +- 14.445 nm + Projected range = 9.406 nm +- 8.204 nm - Nb of steps of primary track = 92.55 +- 56.43 + Nb of steps of primary track = 95.08 +- 60.04 - Step size = 4.725 Ang +- 1.495 Ang + Step size = 4.685 Ang +- 1.506 Ang There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -572,18 +793,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 600.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 26.206 +- 1.996 + Nb of ionisations = 26.234 +- 2.034 - w = 22.896 eV +- 1.744 eV + w = 22.871 eV +- 1.773 eV Total Energy deposited = 600.000 eV +- 0.000 eV - Track length of primary track = 45.236 nm +- 14.937 nm - Projected range = 11.827 nm +- 9.637 nm + Track length of primary track = 44.961 nm +- 15.233 nm + Projected range = 11.531 nm +- 9.635 nm - Nb of steps of primary track = 95.59 +- 58.09 + Nb of steps of primary track = 96.33 +- 59.10 - Step size = 5.400 Ang +- 1.723 Ang + Step size = 5.339 Ang +- 1.775 Ang There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -592,18 +813,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 700.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 30.669 +- 2.176 + Nb of ionisations = 30.670 +- 2.140 - w = 22.824 eV +- 1.619 eV + w = 22.824 eV +- 1.593 eV - Total Energy deposited = 700.000 eV +- 0.040 meV + Total Energy deposited = 700.000 eV +- 0.041 meV - Track length of primary track = 52.930 nm +- 16.589 nm - Projected range = 14.870 nm +- 12.387 nm + Track length of primary track = 52.814 nm +- 16.935 nm + Projected range = 14.957 nm +- 11.693 nm - Nb of steps of primary track = 99.69 +- 56.05 + Nb of steps of primary track = 100.74 +- 62.18 - Step size = 5.995 Ang +- 1.914 Ang + Step size = 5.958 Ang +- 1.852 Ang There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -612,18 +833,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 800.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 34.986 +- 2.343 + Nb of ionisations = 34.936 +- 2.369 - w = 22.866 eV +- 1.531 eV + w = 22.899 eV +- 1.553 eV Total Energy deposited = 800.000 eV +- 0.000 eV - Track length of primary track = 61.521 nm +- 17.703 nm - Projected range = 17.864 nm +- 14.364 nm + Track length of primary track = 61.520 nm +- 18.597 nm + Projected range = 18.866 nm +- 14.377 nm - Nb of steps of primary track = 105.95 +- 58.60 + Nb of steps of primary track = 103.84 +- 59.16 - Step size = 6.558 Ang +- 2.086 Ang + Step size = 6.693 Ang +- 2.154 Ang There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -632,18 +853,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 900.00 eV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 39.580 +- 2.492 + Nb of ionisations = 39.363 +- 2.396 - w = 22.739 eV +- 1.431 eV + w = 22.864 eV +- 1.392 eV Total Energy deposited = 900.000 eV +- 0.000 eV - Track length of primary track = 68.839 nm +- 20.072 nm - Projected range = 21.323 nm +- 16.567 nm + Track length of primary track = 69.625 nm +- 19.986 nm + Projected range = 21.772 nm +- 16.237 nm - Nb of steps of primary track = 107.18 +- 55.92 + Nb of steps of primary track = 108.84 +- 57.48 - Step size = 7.187 Ang +- 2.324 Ang + Step size = 7.175 Ang +- 2.317 Ang There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". @@ -652,18 +873,18 @@ View them with "/vis/plot" or "/vis/reviewPlots". The run is 1000 e- of 1.00 keV through a sphere of radius 1.00 m of G4_WATER (density: 1.00 g/cm3 ) - Nb of ionisations = 43.849 +- 2.685 + Nb of ionisations = 43.915 +- 2.649 - w = 22.806 eV +- 1.397 eV + w = 22.771 eV +- 1.373 eV Total Energy deposited = 1.000 keV +- 0.118 meV - Track length of primary track = 78.702 nm +- 21.160 nm - Projected range = 26.391 nm +- 19.549 nm + Track length of primary track = 78.756 nm +- 21.405 nm + Projected range = 26.242 nm +- 19.522 nm - Nb of steps of primary track = 108.75 +- 53.70 + Nb of steps of primary track = 113.64 +- 59.81 - Step size = 8.021 Ang +- 2.473 Ang + Step size = 7.830 Ang +- 2.561 Ang There are 8 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". diff --git a/examples/extended/medical/electronScattering/electronScattering.out b/examples/extended/medical/electronScattering/electronScattering.out index 39e8f3e776..c3af550226 100644 --- a/examples/extended/medical/electronScattering/electronScattering.out +++ b/examples/extended/medical/electronScattering/electronScattering.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -191,7 +191,6 @@ physicsList->setCut() start. /testem/gun/rndm 420. um # /analysis/setFileName eScattering -Set file name: eScattering /analysis/h1/set 1 180 -90. 90. deg /analysis/h1/set 2 120 0. 24. cm /analysis/h1/set 3 120 0. 24. cm @@ -209,6 +208,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -236,7 +236,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -287,8 +287,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -735,7 +735,7 @@ N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008 Run terminated. Run Summary Number of events processed : 100000 - User=4.920000s Real=4.973098s Sys=0.000000s + User=5.480000s Real=5.524570s Sys=0.000000s ======================== run summary ====================== @@ -746,7 +746,7 @@ Run Summary ------- MixMaxRng engine status ------- Current state vector is: mixmax state, file version 1.0 -N=17 V[N]={245588952032096822, 1435109679307801784, 2302706177841124477, 42140199209138864, 1753422017063956473, 765717151081358212, 1560405830363869194, 450495733818058814, 1674059976926125753, 823873974463700792, 1776912168739624298, 530443395122079524, 1670938540339989702, 207789207176918458, 2164971086519474607, 1863096537842034332, 1243476017178045103} counter= 3sumtot= 2064402571315845601 +N=17 V[N]={2215701445837976919, 1458847374902633039, 1429309978918088675, 1642496266206064189, 1005913263449279956, 954997538393060599, 1923761761660519853, 2041196414220365936, 2244436746023793715, 215544480384986594, 1577841992627660697, 322958090280930416, 1394674509977637313, 1967471378242174245, 799327522893107932, 1347160189742920256, 318898547317430040} counter= 13sumtot= 2107950418155384815 --------------------------------------- G4 kernel has come to Quit state. UserDetectorConstruction deleted. diff --git a/examples/extended/medical/electronScattering2/electronScattering2.out b/examples/extended/medical/electronScattering2/electronScattering2.out index 7b6bfdb6dc..be02930b98 100644 --- a/examples/extended/medical/electronScattering2/electronScattering2.out +++ b/examples/extended/medical/electronScattering2/electronScattering2.out @@ -15,7 +15,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -182,6 +182,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -209,7 +210,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -260,8 +261,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -612,236 +613,236 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Number of Events Processed:20000 Radius cell flux e cell flux population e population 0 0.95504 0.95504 3 3 - 1 1.3795 1.3795 13 13 - 2 0.76405 0.76405 12 12 - 3 1.137 1.0916 25 24 - 4 1.2381 1.1674 35 33 - 5 0.95507 0.83932 33 29 - 6 1.0215 0.92357 41 37 - 7 0.86748 0.86748 38 38 - 8 0.88084 0.86212 46 45 - 9 0.78754 0.73728 47 44 - 10 0.94005 0.92489 62 61 - 11 0.87972 0.85204 62 60 - 12 0.87876 0.85329 69 67 - 13 0.96324 0.90429 77 72 - 14 1.1524 1.0865 92 86 - 15 0.90925 0.89898 87 86 - 16 0.91066 0.87207 94 90 - 17 0.84626 0.82807 92 90 - 18 0.71432 0.68851 83 80 - 19 0.8819 0.84109 108 103 - 20 0.97578 0.96025 89 87 - 21 0.8669 0.80767 98 90 - 22 0.8787 0.85748 124 121 - 23 0.71815 0.67073 106 99 - 24 0.84152 0.79604 128 121 - 25 0.81503 0.7526 130 120 - 26 0.8068 0.77069 134 128 - 27 0.69484 0.67747 120 117 - 28 0.87821 0.83352 157 149 - 29 0.80819 0.7812 149 144 - 30 0.78074 0.72332 147 136 - 31 0.74388 0.71355 147 141 - 32 0.75743 0.71332 154 145 - 33 0.79012 0.7711 167 163 - 34 0.72805 0.70498 157 152 - 35 0.79943 0.77252 177 171 - 36 0.84646 0.81593 194 187 - 37 0.74323 0.71775 175 169 - 38 0.67915 0.65847 164 159 - 39 0.76305 0.72661 163 154 - 40 0.68661 0.63723 168 161 - 41 0.77184 0.75266 188 183 - 42 0.63169 0.59047 162 151 - 43 0.68573 0.65644 184 176 - 44 0.65238 0.63448 182 177 - 45 0.59035 0.57284 167 162 - 46 0.93407 0.89653 186 181 - 47 0.66485 0.64808 199 194 - 48 0.56062 0.55405 170 168 - 49 0.67466 0.64891 208 200 - 50 0.58875 0.56982 186 180 - 51 0.64037 0.62181 197 191 - 52 0.64616 0.63098 213 208 - 53 0.59614 0.58125 200 195 - 54 0.63624 0.60115 216 204 - 55 0.5089 0.49159 177 171 - 56 0.5214 0.5073 181 176 - 57 0.56315 0.5493 203 198 - 58 0.55665 0.54031 203 197 - 59 0.49354 0.47479 184 177 - 60 0.45842 0.43734 174 166 - 61 0.51303 0.49489 192 185 - 62 0.60882 0.59605 215 210 - 63 0.52943 0.4968 210 197 - 64 0.49326 0.47102 197 188 - 65 0.448 0.43827 173 169 - 66 0.4898 0.46823 204 195 - 67 0.40947 0.39293 172 165 - 68 0.43763 0.42367 188 182 - 69 0.50206 0.4837 200 192 - 70 0.40493 0.39133 176 170 - 71 0.39557 0.37771 175 167 - 72 0.42951 0.41632 196 190 - 73 0.37913 0.37045 171 167 - 74 0.40439 0.38423 179 169 - 75 0.38623 0.37021 183 175 - 76 0.37604 0.36561 179 174 - 77 0.40745 0.38276 197 185 - 78 0.33796 0.32983 163 159 - 79 0.36533 0.3573 182 178 - 80 0.33124 0.31736 162 155 - 81 0.34521 0.33542 170 165 - 82 0.47486 0.45939 151 143 - 83 0.31594 0.29875 166 157 - 84 0.36248 0.34549 190 181 - 85 0.34316 0.33196 184 178 - 86 0.30699 0.29223 160 152 - 87 0.35629 0.34169 176 168 - 88 0.28946 0.28405 156 153 - 89 0.27655 0.27298 155 153 - 90 0.27463 0.25699 155 145 - 91 0.27749 0.27051 159 155 - 92 0.29334 0.28125 164 157 - 93 0.24744 0.2389 144 139 - 94 0.29071 0.28733 172 170 - 95 0.23158 0.22657 134 131 - 96 0.19364 0.18868 117 114 - 97 0.24933 0.23786 152 145 - 98 0.2069 0.19393 124 116 - 99 0.21515 0.20712 134 129 - 100 0.23603 0.22649 145 139 - 101 0.17691 0.17376 107 105 - 102 0.20272 0.19804 122 119 - 103 0.21 0.20383 136 132 - 104 0.19873 0.18802 128 121 - 105 0.19415 0.18809 127 123 - 106 0.21993 0.21542 143 140 - 107 0.17348 0.17051 116 114 - 108 0.1415 0.13561 96 92 - 109 0.16429 0.15845 113 109 - 110 0.15877 0.1472 109 101 - 111 0.14991 0.14418 104 100 - 112 0.1628 0.15712 115 111 - 113 0.1519 0.14767 107 104 - 114 0.14925 0.13946 102 95 - 115 0.14657 0.14242 105 102 - 116 0.12368 0.11544 90 84 - 117 0.12672 0.124 92 90 - 118 0.11616 0.11211 86 83 - 119 0.13496 0.13095 100 97 - 120 0.12085 0.11687 91 88 - 121 0.11069 0.10409 84 79 - 122 0.10063 0.099326 77 76 - 123 0.097602 0.095009 74 72 - 124 0.10375 0.097324 80 75 - 125 0.10435 0.10308 81 80 - 126 0.1 0.092409 79 73 - 127 0.09333 0.090819 74 72 - 128 0.10132 0.095084 81 76 - 129 0.090178 0.086468 71 68 - 130 0.081128 0.0799 66 65 - 131 0.078275 0.075839 63 61 - 132 0.095555 0.08951 79 74 - 133 0.090068 0.088868 75 74 - 134 0.074277 0.070703 62 59 - 135 0.089959 0.087593 70 68 - 136 0.076759 0.075583 65 64 - 137 0.072942 0.069445 59 56 - 138 0.077636 0.075322 67 65 - 139 0.086529 0.080769 72 67 - 140 0.083538 0.082397 67 66 + 1 1.2734 1.2734 12 12 + 2 0.70035 0.70035 11 11 + 3 1.3644 1.319 30 29 + 4 1.132 1.0613 32 30 + 5 0.98408 0.86833 34 30 + 6 0.99713 0.94816 40 38 + 7 0.90993 0.90993 40 40 + 8 0.84338 0.82465 44 43 + 9 0.70378 0.67027 42 40 + 10 0.95517 0.94001 63 62 + 11 0.90741 0.85205 64 60 + 12 0.88427 0.87154 67 66 + 13 0.88441 0.82546 75 70 + 14 1.0755 1.0097 85 79 + 15 0.78598 0.77571 75 74 + 16 0.92052 0.88193 95 91 + 17 0.72798 0.70979 79 77 + 18 0.80037 0.76595 93 89 + 19 0.94719 0.90638 116 111 + 20 0.7222 0.71444 93 92 + 21 0.78853 0.70709 106 95 + 22 0.86001 0.82464 121 116 + 23 0.70478 0.65718 104 97 + 24 0.82872 0.78974 126 120 + 25 0.95241 0.88998 152 142 + 26 0.82481 0.78873 137 131 + 27 0.68904 0.66588 119 115 + 28 0.82794 0.77766 148 139 + 29 0.80819 0.77581 149 143 + 30 0.8225 0.75986 155 143 + 31 0.77922 0.7489 154 148 + 32 0.81131 0.76721 165 156 + 33 0.76553 0.75127 161 158 + 34 0.72885 0.68732 157 148 + 35 0.73421 0.7073 163 157 + 36 0.87263 0.84646 200 194 + 37 0.75707 0.7231 175 167 + 38 0.69571 0.67503 168 163 + 39 0.75785 0.72545 162 154 + 40 0.6945 0.63725 170 161 + 41 0.79526 0.77607 194 189 + 42 0.64299 0.60552 165 155 + 43 0.6457 0.60542 173 162 + 44 0.675 0.64637 188 180 + 45 0.61486 0.60085 174 170 + 46 0.92718 0.88964 184 179 + 47 0.69822 0.68799 207 204 + 48 0.53757 0.52771 163 160 + 49 0.65018 0.63087 202 196 + 50 0.65578 0.63054 208 200 + 51 0.66841 0.64675 205 198 + 52 0.60399 0.59489 199 196 + 53 0.58565 0.57373 196 192 + 54 0.63333 0.59823 215 203 + 55 0.54695 0.53252 190 185 + 56 0.49413 0.48285 173 169 + 57 0.53265 0.51325 192 185 + 58 0.53617 0.51708 196 189 + 59 0.47478 0.45335 177 169 + 60 0.48855 0.46747 185 177 + 61 0.51821 0.50266 194 188 + 62 0.57822 0.56544 203 198 + 63 0.51939 0.49429 207 197 + 64 0.46362 0.43643 185 174 + 65 0.48688 0.47714 174 170 + 66 0.46343 0.44905 193 187 + 67 0.40712 0.39295 171 165 + 68 0.44227 0.4283 190 184 + 69 0.50822 0.48757 201 192 + 70 0.41871 0.40511 183 177 + 71 0.40611 0.38825 180 172 + 72 0.42238 0.41138 192 187 + 73 0.37965 0.37313 171 168 + 74 0.40339 0.38199 188 178 + 75 0.39261 0.37783 184 177 + 76 0.3573 0.35103 170 167 + 77 0.41567 0.39509 201 191 + 78 0.3303 0.32217 159 155 + 79 0.35732 0.34929 178 174 + 80 0.32881 0.31494 163 156 + 81 0.34142 0.32968 168 162 + 82 0.50862 0.49508 167 160 + 83 0.42108 0.40388 182 173 + 84 0.42214 0.40325 180 170 + 85 0.35437 0.3413 190 183 + 86 0.29408 0.28485 153 148 + 87 0.3248 0.31021 159 151 + 88 0.28474 0.27933 152 149 + 89 0.28368 0.28011 159 157 + 90 0.26933 0.25169 152 142 + 91 0.29362 0.28316 168 162 + 92 0.28423 0.2756 159 154 + 93 0.22696 0.22013 132 128 + 94 0.28058 0.27551 166 163 + 95 0.24664 0.23828 143 138 + 96 0.20527 0.19865 124 120 + 97 0.24604 0.23621 150 144 + 98 0.20202 0.18742 121 112 + 99 0.26165 0.2488 144 136 + 100 0.24148 0.23194 148 142 + 101 0.18164 0.17534 110 106 + 102 0.18422 0.17955 119 116 + 103 0.21001 0.20075 136 130 + 104 0.20067 0.19148 130 124 + 105 0.1937 0.18915 127 124 + 106 0.21544 0.21244 140 138 + 107 0.18536 0.1809 124 121 + 108 0.14591 0.14002 99 95 + 109 0.18335 0.15426 111 106 + 110 0.17169 0.16012 118 110 + 111 0.14203 0.13629 98 94 + 112 0.15639 0.15071 110 106 + 113 0.14063 0.13781 99 97 + 114 0.1557 0.14591 106 99 + 115 0.13411 0.13134 96 94 + 116 0.12362 0.11538 90 84 + 117 0.12991 0.12719 93 91 + 118 0.131 0.12695 97 94 + 119 0.12823 0.12422 95 92 + 120 0.13811 0.13412 104 101 + 121 0.11 0.1034 82 77 + 122 0.099071 0.097764 75 74 + 123 0.093734 0.088549 71 67 + 124 0.10247 0.097322 79 75 + 125 0.12217 0.11707 95 91 + 126 0.09241 0.084814 73 67 + 127 0.089565 0.087053 71 69 + 128 0.10381 0.10007 83 80 + 129 0.088935 0.083988 70 66 + 130 0.087259 0.084805 71 69 + 131 0.073399 0.072181 59 58 + 132 0.087091 0.082255 72 68 + 133 0.091284 0.090084 76 75 + 134 0.072672 0.069098 61 58 + 135 0.082175 0.080992 65 64 + 136 0.081456 0.079106 69 67 + 137 0.064114 0.060617 55 52 + 138 0.070675 0.068361 61 59 + 139 0.095726 0.091115 80 76 + 140 0.08696 0.083537 70 67 141 0.069124 0.069124 61 61 - 142 0.067853 0.066727 60 59 - 143 0.058149 0.05479 52 49 - 144 0.073699 0.071479 66 64 - 145 0.063957 0.061752 58 56 - 146 0.051546 0.050452 44 43 - 147 0.044606 0.042417 41 39 - 148 0.059575 0.056278 54 51 - 149 0.045084 0.044011 42 41 - 150 0.043689 0.043689 38 38 - 151 0.045674 0.043547 42 40 - 152 0.047384 0.045279 45 43 - 153 0.039758 0.035575 38 34 - 154 0.032227 0.032227 31 31 - 155 0.055546 0.052448 44 41 - 156 0.045159 0.040034 44 39 - 157 0.042179 0.040137 41 39 - 158 0.044971 0.036473 37 35 - 159 0.044322 0.043315 44 43 - 160 0.042061 0.042061 42 42 - 161 0.054175 0.052184 27 25 - 162 0.047054 0.044087 43 40 - 163 0.030181 0.025267 29 24 - 164 0.034205 0.031274 35 32 - 165 0.032063 0.030117 33 31 - 166 0.031878 0.028981 33 30 - 167 0.036644 0.034724 37 35 - 168 0.045459 0.044485 44 43 - 169 0.028764 0.026866 30 28 - 170 0.033024 0.031137 35 33 - 171 0.025803 0.024865 26 25 - 172 0.031078 0.031078 32 32 - 173 0.026592 0.026592 27 27 - 174 0.02952 0.02952 32 32 - 175 0.023863 0.022946 26 25 - 176 0.021782 0.019957 23 21 - 177 0.023586 0.021772 26 24 - 178 0.02073 0.01805 22 20 - 179 0.02319 0.02319 25 25 - 180 0.017374 0.017374 19 19 - 181 0.019417 0.017348 21 19 - 182 0.016769 0.016769 19 19 - 183 0.016757 0.014122 18 15 - 184 0.015418 0.015418 17 17 - 185 0.014924 0.014056 17 16 - 186 0.019871 0.018142 22 20 - 187 0.016707 0.015629 19 18 - 188 0.018825 0.017113 22 20 - 189 0.02067 0.016714 23 19 - 190 0.020544 0.014657 22 16 - 191 0.022186 0.019535 24 22 - 192 0.01391 0.011135 16 13 - 193 0.010574 0.0069516 12 8 - 194 0.017432 0.016587 19 18 - 195 0.017183 0.014598 19 16 - 196 0.020248 0.013422 22 15 - 197 0.015734 0.012215 17 13 - 198 0.014994 0.013323 17 15 - 199 0.019835 0.015451 23 18 - 200 0.017688 0.016883 21 20 - 201 0.022517 0.016855 26 19 - 202 0.022257 0.016449 27 20 - 203 0.013567 0.0033134 15 4 - 204 0.010259 0.0062936 12 7 - 205 0.022171 0.020439 9 7 - 206 0.010378 0.0055368 11 5 - 207 0.0097626 0.0048129 12 6 - 208 0.0094109 0.0070823 10 7 - 209 0.01339 0.0044459 15 5 - 210 0.011285 0.0063808 11 7 - 211 0.011547 0.0076824 13 8 - 212 0.014414 0.0048871 16 5 - 213 0.016675 0.0075222 16 5 - 214 0.0068518 0.0027924 8 3 - 215 0.0099938 0.0020874 11 2 - 216 0.0055874 0.0024735 7 3 - 217 0.014803 0.0097945 17 11 - 218 0.012893 0.0077934 15 9 - 219 0.012444 0.004526 15 5 - 220 0.013054 0.0091236 16 11 - 221 0.01004 0.004918 12 6 - 222 0.0042964 0.0042964 5 5 - 223 0.0065175 0.003336 8 4 - 224 0.010318 0.0032169 12 4 - 225 0.0084761 0.0053198 10 6 - 226 0.0060196 0.0060196 7 7 - 227 0.014604 0.0074189 16 8 - 228 0.0091358 0.0046381 11 5 - 229 0.013342 0.0080858 15 8 - 230 0.0093168 0.004826 10 5 - 231 0.0022288 0.0007328 3 1 - 232 0.0077257 0.0032813 10 4 -### deleting electronFilter 0x141e940 + 142 0.066725 0.065599 59 58 + 143 0.068669 0.065317 61 58 + 144 0.069511 0.066181 62 59 + 145 0.068374 0.067271 62 61 + 146 0.047464 0.046369 41 40 + 147 0.045682 0.043507 42 40 + 148 0.063893 0.060596 58 55 + 149 0.047228 0.045081 44 42 + 150 0.039632 0.039632 35 35 + 151 0.042637 0.03945 40 37 + 152 0.050541 0.047383 48 45 + 153 0.047099 0.042916 45 41 + 154 0.037784 0.037784 36 36 + 155 0.055544 0.052446 44 41 + 156 0.045156 0.042084 44 41 + 157 0.035039 0.034016 34 33 + 158 0.033439 0.032413 32 31 + 159 0.043313 0.042305 43 42 + 160 0.039048 0.039048 39 39 + 161 0.057157 0.055166 30 28 + 162 0.037599 0.034632 38 35 + 163 0.031044 0.026129 30 25 + 164 0.042895 0.039963 43 40 + 165 0.030128 0.027211 31 28 + 166 0.031887 0.029956 33 31 + 167 0.036334 0.035375 36 35 + 168 0.04355 0.042576 42 41 + 169 0.032547 0.030649 34 32 + 170 0.02736 0.025474 29 27 + 171 0.025814 0.025814 26 26 + 172 0.028273 0.028273 29 29 + 173 0.031241 0.030313 32 31 + 174 0.026462 0.026462 28 28 + 175 0.024051 0.02111 25 23 + 176 0.030561 0.029649 31 30 + 177 0.024484 0.021763 27 24 + 178 0.021636 0.019857 23 22 + 179 0.020495 0.020495 22 22 + 180 0.01339 0.01339 15 15 + 181 0.018523 0.016454 20 18 + 182 0.016216 0.015333 17 16 + 183 0.015872 0.013238 17 14 + 184 0.018035 0.017162 20 19 + 185 0.014064 0.013196 16 15 + 186 0.02288 0.018853 24 21 + 187 0.013978 0.012041 16 14 + 188 0.017105 0.015393 20 18 + 189 0.024998 0.021042 27 23 + 190 0.018853 0.012966 20 14 + 191 0.017114 0.015306 18 17 + 192 0.015807 0.013032 18 15 + 193 0.01595 0.011493 18 13 + 194 0.018054 0.017209 17 16 + 195 0.01801 0.015425 20 17 + 196 0.017413 0.010586 19 12 + 197 0.018369 0.014719 20 16 + 198 0.014963 0.01401 17 16 + 199 0.019081 0.016398 22 19 + 200 0.016599 0.014988 20 18 + 201 0.022524 0.018457 26 21 + 202 0.02228 0.017277 27 21 + 203 0.013478 0.0033134 15 4 + 204 0.0096543 0.0064682 11 7 + 205 0.021978 0.018477 9 5 + 206 0.0095616 0.0047139 10 4 + 207 0.0095847 0.0040432 12 5 + 208 0.010365 0.008808 11 9 + 209 0.012316 0.0044619 14 5 + 210 0.010258 0.0073411 11 8 + 211 0.0097245 0.0058603 11 6 + 212 0.011358 0.0026113 14 3 + 213 0.016634 0.0067009 16 4 + 214 0.0068587 0.0027924 8 3 + 215 0.010035 0.0013165 11 1 + 216 0.0056449 0.0025583 6 3 + 217 0.013841 0.0089008 16 10 + 218 0.011119 0.0068367 13 8 + 219 0.011473 0.0045869 14 5 + 220 0.011415 0.0074853 14 9 + 221 0.0089601 0.0039369 11 5 + 222 0.0059085 0.0041802 7 5 + 223 0.0057007 0.003336 7 4 + 224 0.013574 0.0049156 17 6 + 225 0.012431 0.006149 15 7 + 226 0.0068082 0.0060729 8 7 + 227 0.013844 0.0081725 15 9 + 228 0.0087416 0.0042439 11 5 + 229 0.0098734 0.0053376 11 5 + 230 0.0092149 0.0036173 10 4 + 231 0.0030701 0.0007328 4 1 + 232 0.005447 0.0032813 7 4 +### deleting electronFilter 0x1fa8bf0 diff --git a/examples/extended/medical/fanoCavity/fanoCavity.out b/examples/extended/medical/fanoCavity/fanoCavity.out index 73a22d2329..4675b86191 100644 --- a/examples/extended/medical/fanoCavity/fanoCavity.out +++ b/examples/extended/medical/fanoCavity/fanoCavity.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -142,6 +142,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -169,7 +170,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 1 Use cut as a final range enabled 0 @@ -296,7 +297,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 4000 - User=6.590000s Real=6.675273s Sys=0.000000s + User=8.110000s Real=8.178293s Sys=0.000000s ======================== run summary ====================== diff --git a/examples/extended/medical/fanoCavity2/fanoCavity2.out b/examples/extended/medical/fanoCavity2/fanoCavity2.out index 94133b81fd..df5fb8d4b8 100644 --- a/examples/extended/medical/fanoCavity2/fanoCavity2.out +++ b/examples/extended/medical/fanoCavity2/fanoCavity2.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -140,6 +140,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 10 eV @@ -167,7 +168,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 1 Use cut as a final range enabled 0 @@ -313,7 +314,7 @@ N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008 Run terminated. Run Summary Number of events processed : 40000 - User=1.160000s Real=1.177376s Sys=0.000000s + User=1.930000s Real=1.958096s Sys=0.000000s Process calls frequency ---> eIoni= 328414 msc= 138727 Transportation= 22903 diff --git a/examples/extended/optical/LXe/History b/examples/extended/optical/LXe/History index ce73eee76a..c306cc67d0 100644 --- a/examples/extended/optical/LXe/History +++ b/examples/extended/optical/LXe/History @@ -4,6 +4,13 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-09-14 Daren Sawkey (LXe-V11-00-02) +- change variable name to adhere to naming convention + +## 2022-07-07 Vladimir Ivanchenko (LXe-V11-00-01) +- LXeSteppingAction modified: removed ThreadLocal variable; use + pdg code instead on particle name; add more checks on pointers; + extend printout before fatal exception ## 2021-12-10 Ben Morgan (LXe-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/optical/LXe/LXe.out b/examples/extended/optical/LXe/LXe.out index 5a533a676f..1fdf61e7b3 100644 --- a/examples/extended/optical/LXe/LXe.out +++ b/examples/extended/optical/LXe/LXe.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -119,6 +121,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -146,7 +149,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -182,8 +185,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -213,8 +215,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -338,7 +340,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -722,6 +724,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1024,40 +1031,40 @@ See commands in /vis/modeling/trajectories/ for other options. --> Event 0 starts. --> Event 10 starts. --> Event 20 starts. -/control/shell cp ./currentEvent.rndm ./run0evt26.rndm -./currentEvent.rndm is copied to ./run0evt26.rndm--> Event 30 starts. +--> Event 30 starts. --> Event 40 starts. --> Event 50 starts. --> Event 60 starts. --> Event 70 starts. --> Event 80 starts. --> Event 90 starts. -/control/shell cp ./currentEvent.rndm ./run0evt97.rndm -./currentEvent.rndm is copied to ./run0evt97.rndm--> Event 100 starts. ---> Event 110 starts. ---> Event 120 starts. -/control/shell cp ./currentEvent.rndm ./run0evt122.rndm -./currentEvent.rndm is copied to ./run0evt122.rndm--> Event 130 starts. +--> Event 100 starts. +/control/shell cp ./currentEvent.rndm ./run0evt106.rndm +./currentEvent.rndm is copied to ./run0evt106.rndm--> Event 110 starts. +/control/shell cp ./currentEvent.rndm ./run0evt113.rndm +./currentEvent.rndm is copied to ./run0evt113.rndm--> Event 120 starts. +--> Event 130 starts. --> Event 140 starts. --> Event 150 starts. --> Event 160 starts. --> Event 170 starts. ---> Event 180 starts. +/control/shell cp ./currentEvent.rndm ./run0evt179.rndm +./currentEvent.rndm is copied to ./run0evt179.rndm--> Event 180 starts. --> Event 190 starts. Run terminated. Run Summary Number of events processed : 200 - User=7.760000s Real=8.088067s Sys=0.070000s + User=9.070000s Real=9.235085s Sys=0.060000s ======================== run summary ====================== The run was 200 events. -Number of hits per event: 1257 +- 13.72 -Number of hits per event above threshold: 31.66 +- 0.2254 -Number of scintillation photons per event : 4184 +- 0 -Number of Cerenkov photons per event: 0.7 +- 0.06442 -Number of absorbed photons per event : 2927 +- 31.82 +Number of hits per event: 1244 +- 12.8 +Number of hits per event above threshold: 31.88 +- 0.08214 +Number of scintillation photons per event : 4155 +- 0 +Number of Cerenkov photons per event: 0.49 +- 0.05873 +Number of absorbed photons per event : 2912 +- 28.83 Number of photons absorbed at boundary per event: 0 +- 0 -Total energy deposition in scintillator per event: 517.9 +- 5.236 keV. +Total energy deposition in scintillator per event: 515.9 +- 4.736 keV. There are 8 h1 histograms List them with "/analysis/list". @@ -1114,70 +1121,70 @@ Index : 3 used in the geometry : Yes ### Run 1 starts. --> Event 0 starts. - Energy weighted position of hits in LXe : (-12.9462,9.52856,-81.1039) - Total energy deposition in scintillator : 532.853 (keV) - Reconstructed position of hits in LXe : (-4.76928,3.82194,-22.0706) - Number of photons that hit PMTs in this event : 1328 + Energy weighted position of hits in LXe : (38.0055,-9.955,-16.9395) + Total energy deposition in scintillator : 532.717 (keV) + Reconstructed position of hits in LXe : (11.8908,-4.63985,-5.40212) + Number of photons that hit PMTs in this event : 1346 Number of PMTs above threshold(4) : 32 - Number of photons produced by scintillation in this event : 4419 - Number of photons produced by cerenkov in this event : 0 - Number of photons absorbed (OpAbsorption) in this event : 3091 - Number of photons absorbed at boundaries (OpBoundary) in this event : 0 -Unaccounted for photons in this event : 0 - Energy weighted position of hits in LXe : (-1.07755,3.10442,-93.4717) - Total energy deposition in scintillator : 532.993 (keV) - Reconstructed position of hits in LXe : (-1.04736,0.434513,-22.7684) - Number of photons that hit PMTs in this event : 1237 - Number of PMTs above threshold(4) : 32 - Number of photons produced by scintillation in this event : 4348 - Number of photons produced by cerenkov in this event : 0 - Number of photons absorbed (OpAbsorption) in this event : 3111 - Number of photons absorbed at boundaries (OpBoundary) in this event : 0 -Unaccounted for photons in this event : 0 - Energy weighted position of hits in LXe : (4.12514,-2.25133,-72.8561) - Total energy deposition in scintillator : 532.779 (keV) - Reconstructed position of hits in LXe : (1.81878,-2.53349,-23.8319) - Number of photons that hit PMTs in this event : 1392 - Number of PMTs above threshold(4) : 32 - Number of photons produced by scintillation in this event : 4472 - Number of photons produced by cerenkov in this event : 0 - Number of photons absorbed (OpAbsorption) in this event : 3080 - Number of photons absorbed at boundaries (OpBoundary) in this event : 0 -Unaccounted for photons in this event : 0 - Energy weighted position of hits in LXe : (-1.53804,-5.46199,-97.5577) - Total energy deposition in scintillator : 533.866 (keV) - Reconstructed position of hits in LXe : (-5.00775,-4.83599,-18.067) - Number of photons that hit PMTs in this event : 1264 - Number of PMTs above threshold(4) : 32 - Number of photons produced by scintillation in this event : 4499 - Number of photons produced by cerenkov in this event : 0 - Number of photons absorbed (OpAbsorption) in this event : 3235 - Number of photons absorbed at boundaries (OpBoundary) in this event : 0 -Unaccounted for photons in this event : 0 - Energy weighted position of hits in LXe : (-0.108608,-0.0383864,7.88135) - Total energy deposition in scintillator : 533.427 (keV) - Reconstructed position of hits in LXe : (-4.05244,-3.02192,4.18327) - Number of photons that hit PMTs in this event : 1388 - Number of PMTs above threshold(4) : 32 - Number of photons produced by scintillation in this event : 4559 + Number of photons produced by scintillation in this event : 4416 Number of photons produced by cerenkov in this event : 1 - Number of photons absorbed (OpAbsorption) in this event : 3172 + Number of photons absorbed (OpAbsorption) in this event : 3071 + Number of photons absorbed at boundaries (OpBoundary) in this event : 0 +Unaccounted for photons in this event : 0 + Energy weighted position of hits in LXe : (-16.5473,1.02805,-87.5382) + Total energy deposition in scintillator : 532.478 (keV) + Reconstructed position of hits in LXe : (-2.68229,-1.02707,-25.1861) + Number of photons that hit PMTs in this event : 1345 + Number of PMTs above threshold(4) : 32 + Number of photons produced by scintillation in this event : 4383 + Number of photons produced by cerenkov in this event : 0 + Number of photons absorbed (OpAbsorption) in this event : 3038 + Number of photons absorbed at boundaries (OpBoundary) in this event : 0 +Unaccounted for photons in this event : 0 + Energy weighted position of hits in LXe : (1.97025,-2.45603,-97.0735) + Total energy deposition in scintillator : 533.568 (keV) + Reconstructed position of hits in LXe : (-0.0754553,0.61375,-17.711) + Number of photons that hit PMTs in this event : 1230 + Number of PMTs above threshold(4) : 32 + Number of photons produced by scintillation in this event : 4422 + Number of photons produced by cerenkov in this event : 0 + Number of photons absorbed (OpAbsorption) in this event : 3192 + Number of photons absorbed at boundaries (OpBoundary) in this event : 0 +Unaccounted for photons in this event : 0 + Energy weighted position of hits in LXe : (15.5005,15.8877,9.36036) + Total energy deposition in scintillator : 531.788 (keV) + Reconstructed position of hits in LXe : (3.71303,2.98449,0.491531) + Number of photons that hit PMTs in this event : 1284 + Number of PMTs above threshold(4) : 32 + Number of photons produced by scintillation in this event : 4223 + Number of photons produced by cerenkov in this event : 1 + Number of photons absorbed (OpAbsorption) in this event : 2940 + Number of photons absorbed at boundaries (OpBoundary) in this event : 0 +Unaccounted for photons in this event : 0 + Energy weighted position of hits in LXe : (10.8826,0.769816,-18.425) + Total energy deposition in scintillator : 533.265 (keV) + Reconstructed position of hits in LXe : (4.10144,-1.48487,-11.2949) + Number of photons that hit PMTs in this event : 1315 + Number of PMTs above threshold(4) : 32 + Number of photons produced by scintillation in this event : 4465 + Number of photons produced by cerenkov in this event : 0 + Number of photons absorbed (OpAbsorption) in this event : 3150 Number of photons absorbed at boundaries (OpBoundary) in this event : 0 Unaccounted for photons in this event : 0 Run terminated. Run Summary Number of events processed : 5 - User=0.200000s Real=0.201531s Sys=0.000000s + User=0.220000s Real=0.227400s Sys=0.000000s ======================== run summary ====================== The run was 5 events. -Number of hits per event: 1322 +- 28.2 +Number of hits per event: 1304 +- 19.43 Number of hits per event above threshold: 32 +- 0 -Number of scintillation photons per event : 4459 +- 32.06 -Number of Cerenkov photons per event: 0.2 +- 0.1789 -Number of absorbed photons per event : 3138 +- 25.97 +Number of scintillation photons per event : 4382 +- 37.38 +Number of Cerenkov photons per event: 0.4 +- 0.2191 +Number of absorbed photons per event : 3078 +- 39.43 Number of photons absorbed at boundary per event: 0 +- 0 -Total energy deposition in scintillator per event: 533.2 +- 0.1827 keV. +Total energy deposition in scintillator per event: 532.8 +- 0.2783 keV. There are 8 h1 histograms List them with "/analysis/list". @@ -1236,922 +1243,839 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 0 0 0 -200 0.511 0 0 0 expHall initStep 1 0 0 -114 0.511 0 86.4 86.4 housing Transportation 2 0 0 -113 0.511 0 0.635 87 scintillator Transportation - 3 0 0 -108 0.237 0.000678 4.83 91.8 scintillator compt - 4 -3.67 -1.9 -109 0.111 0.000927 4.14 96 scintillator compt - 5 -3.63 -1.84 -108 0 0.001 0.0923 96.1 scintillator phot + 3 0 0 -98.9 0 0.00478 14.1 101 scintillator phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.63 -1.84 -108 0.11 0 0 0 scintillator initStep - 1 -3.62 -1.84 -108 0.106 0.00397 0.00649 0.00649 scintillator msc - 2 -3.62 -1.84 -108 0.0741 0.0318 0.0346 0.041 scintillator eIoni + 0 0 0 -98.9 7.1e-06 0 0 0 scintillator initStep + 1 -89 19.5 -84.7 7.1e-06 0 92.2 92.2 housing Transportation + 2 -89 19.5 -84.7 7.1e-06 0 0 92.2 scintillator Transportation + 3 -65.1 24.8 -80.9 7.1e-06 7.1e-06 24.8 117 scintillator OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 4 +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.62 -1.84 -108 7.11e-06 0 0 0 scintillator initStep - 1 12.9 -17.1 -113 7.11e-06 0 22.9 22.9 housing Transportation - 2 12.9 -17.1 -113 7.11e-06 0 0 22.9 scintillator Transportation - 3 25.6 -28.9 -110 7.11e-06 7.11e-06 17.7 40.7 scintillator OpAbsorption + 0 0 0 -98.9 0.0298 0 0 0 scintillator initStep + 1 0.185 0.105 -99.1 0 0.00545 0.307 0.307 scintillator phot ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 4 +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.62 -1.84 -108 7.03e-06 0 0 0 scintillator initStep - 1 -89 0.272 -112 7.03e-06 0 85.5 85.5 housing Transportation - 2 -89 0.272 -112 7.03e-06 0 0 85.5 scintillator Transportation - 3 -76.3 0.586 -113 7.03e-06 0 12.7 98.2 housing Transportation - 4 -76.3 0.586 -113 7.03e-06 0 0 98.2 scintillator Transportation - 5 89 4.67 -105 7.03e-06 0 166 264 housing Transportation - 6 89 4.67 -105 7.03e-06 0 0 264 scintillator Transportation - 7 47.3 5.7 -103 7.03e-06 7.03e-06 41.8 306 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -3.62 -1.84 -108 0.0741 0 0 0.041 scintillator initStep - 3 -3.62 -1.84 -108 0.072 0.00215 0.00342 0.0445 scintillator msc - 4 -3.63 -1.84 -108 0.0512 0.0207 0.0247 0.0691 scintillator eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.62 -1.84 -108 7.03e-06 0 0 0 scintillator initStep - 1 14.2 -3.35 -88.9 7.03e-06 7.03e-06 26.5 26.5 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.63 -1.84 -108 7.03e-06 0 0 0 scintillator initStep - 1 -3.81 -2.25 -113 7.03e-06 0 4.53 4.53 housing Transportation - 2 -3.81 -2.25 -113 7.03e-06 0 0 4.53 scintillator Transportation - 3 -13.2 -22.9 113 7.03e-06 0 227 232 housing Transportation - 4 -13.2 -22.9 113 7.03e-06 0 0 232 scintillator Transportation - 5 -22.6 -43.5 -113 7.03e-06 0 227 459 pmt Transportation - 6 -22.6 -43.5 -113 7.03e-06 7.03e-06 0.319 459 photocath Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -3.63 -1.84 -108 0.0512 0 0 0.0691 scintillator initStep - 5 -3.63 -1.84 -108 0.0495 0.00173 0.00187 0.071 scintillator msc - 6 -3.63 -1.84 -108 0.0377 0.0118 0.0185 0.0895 scintillator eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.63 -1.84 -108 7.05e-06 0 0 0 scintillator initStep - 1 -2.83 -5.59 -113 7.05e-06 0 5.92 5.92 housing Transportation - 2 -2.83 -5.59 -113 7.05e-06 0 0 5.92 scintillator Transportation - 3 15 -89 -12.7 7.05e-06 0 132 138 housing Transportation - 4 15 -89 -12.7 7.05e-06 0 0 138 scintillator Transportation - 5 37.2 15.5 113 7.05e-06 0 165 303 housing Transportation - 6 37.2 15.5 113 7.05e-06 0 0 303 scintillator Transportation - 7 45 51.9 69.3 7.05e-06 0 57.4 360 sphere Transportation - 8 45 51.9 69.3 7.05e-06 0 0 360 scintillator Transportation - 9 34.4 89 98.4 7.05e-06 0 48.3 408 housing Transportation - 10 34.4 89 98.4 7.05e-06 0 0 408 scintillator Transportation - 11 29.1 70.4 113 7.05e-06 0 24.2 433 housing Transportation - 12 29.1 70.4 113 7.05e-06 0 0 433 scintillator Transportation - 13 19.1 35.1 85.3 7.05e-06 7.05e-06 46 479 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.63 -1.84 -108 7.12e-06 0 0 0 scintillator initStep - 1 89 7.43 -55 7.12e-06 0 107 107 housing Transportation - 2 89 7.43 -55 7.12e-06 0 0 107 scintillator Transportation - 3 89 7.43 -55 7.12e-06 7.12e-06 0.0258 107 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 -3.63 -1.84 -108 0.0377 0 0 0.0895 scintillator initStep - 7 -3.63 -1.84 -108 0.0372 0.000484 0.00113 0.0906 scintillator msc - 8 -3.63 -1.84 -108 0.00713 0.0301 0.0146 0.105 scintillator eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.63 -1.84 -108 7.01e-06 0 0 0 scintillator initStep - 1 -27.4 -89 -85.3 7.01e-06 0 93.3 93.3 pmt Transportation - 2 -27.5 -89.3 -85.2 7.01e-06 7.01e-06 0.341 93.6 photocath Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 4 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.63 -1.84 -108 7.13e-06 0 0 0 scintillator initStep - 1 -9.64 -31.2 -113 7.13e-06 0 30.3 30.3 housing Transportation - 2 -9.64 -31.2 -113 7.13e-06 0 0 30.3 scintillator Transportation - 3 -21.5 -89 -104 7.13e-06 0 59.6 90 housing Transportation - 4 -21.5 -89 -104 7.13e-06 0 0 90 scintillator Transportation - 5 -43.2 17.5 -87.8 7.13e-06 7.13e-06 110 200 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 -3.63 -1.84 -108 0.00713 0 0 0.105 scintillator initStep - 9 -3.63 -1.84 -108 0.00704 9.78e-05 8.25e-05 0.105 scintillator msc - 10 -3.63 -1.84 -108 0 0.00704 0.00105 0.106 scintillator eIoni - 11 -3.63 -1.84 -108 0 0 0 0.106 scintillator NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.67 -1.9 -109 0.125 0 0 0 scintillator initStep - 1 -3.67 -1.9 -109 0.122 0.00326 0.00801 0.00801 scintillator msc - 2 -3.68 -1.9 -109 0.0969 0.0251 0.0397 0.0478 scintillator eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.68 -1.9 -109 7e-06 0 0 0 scintillator initStep - 1 -46.6 -89 43.7 7e-06 0 181 181 housing Transportation - 2 -46.6 -89 43.7 7e-06 0 0 181 scintillator Transportation - 3 -66.1 -49.4 113 7e-06 0 82.2 263 pmt Transportation - 4 -66.2 -49.2 113 7e-06 7e-06 0.382 263 photocath Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -3.68 -1.9 -109 0.0969 0 0 0.0478 scintillator initStep - 3 -3.68 -1.9 -109 0.0931 0.00377 0.00529 0.053 scintillator msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.68 -1.9 -109 7.06e-06 0 0 0 scintillator initStep - 1 -19.1 2.65 -113 7.06e-06 0 16.7 16.7 housing Transportation - 2 -19.1 2.65 -113 7.06e-06 0 0 16.7 scintillator Transportation - 3 -89 23.3 -92.8 7.06e-06 0 75.6 92.3 housing Transportation - 4 -89 23.3 -92.8 7.06e-06 0 0 92.3 scintillator Transportation - 5 21 55.7 -61 7.06e-06 7.06e-06 119 211 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 -3.68 -1.9 -109 0.0931 0 0 0.053 scintillator initStep - 4 -3.68 -1.9 -109 0.0892 0.00391 0.00496 0.058 scintillator msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.68 -1.9 -109 7.01e-06 0 0 0 scintillator initStep - 1 -89 -76.3 -69.5 7.01e-06 0 120 120 housing Transportation - 2 -89 -76.3 -69.5 7.01e-06 0 0 120 scintillator Transportation - 3 -74.5 -89 -62.9 7.01e-06 0 20.4 140 housing Transportation - 4 -74.5 -89 -62.9 7.01e-06 0 0 140 scintillator Transportation - 5 89 53.7 12 7.01e-06 0 230 370 pmt Transportation - 6 89.3 53.9 12.1 7.01e-06 7.01e-06 0.46 370 photocath Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -3.68 -1.9 -109 0.0892 0 0 0.058 scintillator initStep - 5 -3.69 -1.9 -109 0.0885 0.000726 0.00463 0.0626 scintillator msc - 6 -3.69 -1.89 -109 0.0696 0.0188 0.0293 0.0919 scintillator eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.69 -1.9 -109 7.07e-06 0 0 0 scintillator initStep - 1 -9.61 -1.22 -113 7.07e-06 0 7.45 7.45 housing Transportation - 2 -9.61 -1.22 -113 7.07e-06 0 0 7.45 scintillator Transportation - 3 -89 7.89 -53 7.07e-06 0 99.9 107 housing Transportation - 4 -89 7.89 -53 7.07e-06 0 0 107 scintillator Transportation - 5 1.14 18.2 15.1 7.07e-06 7.07e-06 113 221 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 -3.69 -1.89 -109 0.0696 0 0 0.0919 scintillator initStep - 7 -3.69 -1.9 -109 0.0687 0.000913 0.00309 0.095 scintillator msc - 8 -3.68 -1.9 -109 0.0506 0.0181 0.0238 0.119 scintillator eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.69 -1.9 -109 7.01e-06 0 0 0 scintillator initStep - 1 1.33 -19.1 -101 7.01e-06 7.01e-06 19.5 19.5 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.69 -1.9 -109 7.08e-06 0 0 0 scintillator initStep - 1 3.36 1.8 -113 7.08e-06 0 9.13 9.13 housing Transportation - 2 3.36 1.8 -113 7.08e-06 0 0 9.13 scintillator Transportation - 3 74.6 39.2 -67.8 7.08e-06 7.08e-06 92.3 101 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.69 -1.9 -109 7.11e-06 0 0 0 scintillator initStep - 1 -89 -88.6 -103 7.11e-06 0 122 122 housing Transportation - 2 -89 -88.6 -103 7.11e-06 0 0 122 scintillator Transportation - 3 -88.6 -89 -103 7.11e-06 0 0.566 122 housing Transportation - 4 -88.6 -89 -103 7.11e-06 0 0 122 scintillator Transportation - 5 86.5 89 -92.7 7.11e-06 0 250 372 housing Transportation - 6 86.5 89 -92.7 7.11e-06 0 0 372 scintillator Transportation - 7 89 86.5 -92.5 7.11e-06 0 3.5 376 housing Transportation - 8 89 86.5 -92.5 7.11e-06 0 0 376 scintillator Transportation - 9 -83.7 -89 -82.1 7.11e-06 0 246 622 housing Transportation - 10 -83.7 -89 -82.1 7.11e-06 0 0 622 scintillator Transportation - 11 -89 -83.6 -81.7 7.11e-06 0 7.56 630 housing Transportation - 12 -89 -83.6 -81.7 7.11e-06 0 0 630 scintillator Transportation - 13 -26.4 -20 -77.9 7.11e-06 7.11e-06 89.4 719 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.69 -1.9 -109 7.06e-06 0 0 0 scintillator initStep - 1 -25.1 50.3 -113 7.06e-06 0 56.6 56.6 pmt Transportation - 2 -25.1 50.3 -113 7.06e-06 0 0 56.6 scintillator Transportation - 3 -41 89 -110 7.06e-06 0 42 98.6 housing Transportation - 4 -41 89 -110 7.06e-06 0 0 98.6 scintillator Transportation - 5 -89 -27.9 -99.7 7.06e-06 0 127 225 housing Transportation - 6 -89 -27.9 -99.7 7.06e-06 0 0 225 scintillator Transportation - 7 -63.9 -89 -94.4 7.06e-06 0 66.2 292 housing Transportation - 8 -63.9 -89 -94.4 7.06e-06 0 0 292 scintillator Transportation - 9 9.14 89 -79.2 7.06e-06 0 193 485 housing Transportation - 10 9.14 89 -79.2 7.06e-06 0 0 485 scintillator Transportation - 11 82.2 -89 -63.9 7.06e-06 0 193 678 housing Transportation - 12 82.2 -89 -63.9 7.06e-06 0 0 678 scintillator Transportation - 13 89 -72.5 -62.5 7.06e-06 0 17.9 696 housing Transportation - 14 89 -72.5 -62.5 7.06e-06 0 0 696 scintillator Transportation - 15 74.5 -37.1 -59.5 7.06e-06 7.06e-06 38.3 734 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 -3.68 -1.9 -109 0.0506 0 0 0.119 scintillator initStep - 9 -3.68 -1.9 -109 0.0502 0.00037 0.00183 0.121 scintillator msc - 10 -3.68 -1.9 -109 0.03 0.0202 0.0187 0.139 scintillator eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.68 -1.9 -109 7.07e-06 0 0 0 scintillator initStep - 1 -7.66 0.23 -113 7.07e-06 0 6.36 6.36 housing Transportation - 2 -7.66 0.23 -113 7.07e-06 0 0 6.36 scintillator Transportation - 3 -89 43.7 -21.5 7.07e-06 0 130 136 pmt Transportation - 4 -89.3 43.8 -21.1 7.07e-06 7.07e-06 0.524 137 photocath Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 10 -3.68 -1.9 -109 0.03 0 0 0.139 scintillator initStep - 11 -3.68 -1.9 -109 0.0276 0.0024 0.000782 0.14 scintillator msc - 12 -3.68 -1.89 -109 0 0.0276 0.0101 0.15 scintillator eIoni - 13 -3.68 -1.89 -109 0 0 0 0.15 scintillator NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.68 -1.89 -109 7.1e-06 0 0 0 scintillator initStep - 1 -3.94 0.156 -113 7.1e-06 0 4.93 4.93 housing Transportation - 2 -3.94 0.156 -113 7.1e-06 0 0 4.93 scintillator Transportation - 3 -9.2 41.7 -22.3 7.1e-06 7.1e-06 99.9 105 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.68 -1.9 -109 7.11e-06 0 0 0 scintillator initStep - 1 -42.4 -89 -89.3 7.11e-06 0 97.3 97.3 pmt Transportation - 2 -42.6 -89.3 -89.2 7.11e-06 7.11e-06 0.355 97.6 photocath Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.68 -1.89 -109 7.14e-06 0 0 0 scintillator initStep - 1 -13.8 89 -45.4 7.14e-06 0 111 111 housing Transportation - 2 -13.8 89 -45.4 7.14e-06 0 0 111 scintillator Transportation - 3 -33.5 -89 78.3 7.14e-06 0 218 329 pmt Transportation - 4 -33.5 -89.3 78.6 7.14e-06 7.14e-06 0.389 329 photocath Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 3 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.68 -1.89 -109 7.14e-06 0 0 0 scintillator initStep - 1 -3.67 10.7 -113 7.14e-06 0 13.4 13.4 housing Transportation - 2 -3.67 10.7 -113 7.14e-06 0 0 13.4 scintillator Transportation - 3 -3.57 89 -85.3 7.14e-06 0 83 96.4 housing Transportation - 4 -3.57 89 -85.3 7.14e-06 0 0 96.4 scintillator Transportation - 5 -3.57 81.6 -82.7 7.14e-06 7.14e-06 7.83 104 scintillator OpAbsorption + 0 0.185 0.105 -99.1 0.0243 0 0 0 scintillator initStep + 1 0.184 0.105 -99.1 0.0241 0.000209 0.000558 0.000558 scintillator msc + 2 0.185 0.105 -99.1 0 0.0241 0.00807 0.00863 scintillator eIoni + 3 0.185 0.105 -99.1 0 0 0 0.00863 scintillator NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -108 0.273 0 0 0 scintillator initStep - 1 -0.0064 0.000886 -108 0.267 0.00608 0.0274 0.0274 scintillator msc + 0 0 0 -98.9 0.476 0 0 0 scintillator initStep + 1 0.0403 -0.0103 -98.9 0.46 0.0169 0.0635 0.0635 scintillator msc ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 2 +* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.00075 0.000104 -108 7.12e-06 0 0 0 scintillator initStep - 1 -39.6 76.4 113 7.12e-06 0 237 237 housing Transportation - 2 -39.6 76.4 113 7.12e-06 0 0 237 scintillator Transportation - 3 -46.1 89 76.6 7.12e-06 0 39.1 276 pmt Transportation - 4 -46.3 89.3 75.6 7.12e-06 0 1.05 277 photocath Transportation - 5 -46.3 89.3 75.6 7.12e-06 0 0 277 pmt Transportation - 6 -46.5 89 74.6 7.12e-06 0 1.05 278 scintillator Transportation - 7 -57.2 68.3 14.6 7.12e-06 7.12e-06 64.4 343 scintillator OpAbsorption + 0 0.0375 -0.00959 -98.9 7.1e-06 0 0 0 scintillator initStep + 1 23.2 -20.3 -113 7.1e-06 0 33.9 33.9 housing Transportation + 2 23.2 -20.3 -113 7.1e-06 0 0 33.9 scintillator Transportation + 3 89 -77.9 -72.9 7.1e-06 0 96.1 130 housing Transportation + 4 89 -77.9 -72.9 7.1e-06 0 0 130 scintillator Transportation + 5 76.3 -89 -65.1 7.1e-06 0 18.6 149 housing Transportation + 6 76.3 -89 -65.1 7.1e-06 0 0 149 scintillator Transportation + 7 13.6 -34.2 -27 7.1e-06 7.1e-06 91.6 240 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 0.0403 -0.0103 -98.9 0.46 0 0 0.0635 scintillator initStep + 2 0.0442 -0.00887 -98.9 0.405 0.000719 0.00413 0.0676 scintillator eBrem + 3 0.114 0.0217 -98.9 0.349 0.0558 0.168 0.236 scintillator eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0651 0.000254 -98.9 7.01e-06 0 0 0 scintillator initStep + 1 88 -10.2 -113 7.01e-06 0 89.6 89.6 housing Transportation + 2 88 -10.2 -113 7.01e-06 0 0 89.6 scintillator Transportation + 3 89 -10.3 -113 7.01e-06 0 1.02 90.7 housing Transportation + 4 89 -10.3 -113 7.01e-06 0 0 90.7 scintillator Transportation + 5 -62.7 -28 -88.5 7.01e-06 7.01e-06 155 245 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0878 0.0102 -98.9 7.12e-06 0 0 0 scintillator initStep + 1 -42.3 4.93 -99.5 7.12e-06 7.12e-06 42.7 42.7 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0527 -0.00514 -98.9 7.11e-06 0 0 0 scintillator initStep + 1 -9.68 10.8 -113 7.11e-06 0 20.3 20.3 housing Transportation + 2 -9.68 10.8 -113 7.11e-06 0 0 20.3 scintillator Transportation + 3 -50 55.6 -54.4 7.11e-06 7.11e-06 84 104 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0764 0.00519 -98.9 7.04e-06 0 0 0 scintillator initStep + 1 0.333 4.77 -113 7.04e-06 0 14.9 14.9 housing Transportation + 2 0.333 4.77 -113 7.04e-06 0 0 14.9 scintillator Transportation + 3 4.44 81 113 7.04e-06 0 239 253 housing Transportation + 4 4.44 81 113 7.04e-06 0 0 253 scintillator Transportation + 5 4.87 89 89.3 7.04e-06 0 25 278 housing Transportation + 6 4.87 89 89.3 7.04e-06 0 0 278 scintillator Transportation + 7 8.54 20.8 -113 7.04e-06 0 214 492 housing Transportation + 8 8.54 20.8 -113 7.04e-06 0 0 492 scintillator Transportation + 9 12 -44.2 79.6 7.04e-06 7.04e-06 203 695 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0442 -0.00887 -98.9 0.054 0 0 0 scintillator initStep + 1 0.157 0.0916 -98.8 0 0.00478 0.159 0.159 scintillator phot + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.157 0.0916 -98.8 7.01e-06 0 0 0 scintillator initStep + 1 -76.9 89 -21.4 7.01e-06 0 141 141 housing Transportation + 2 -76.9 89 -21.4 7.01e-06 0 0 141 scintillator Transportation + 3 -89 75 -9.28 7.01e-06 0 22.1 163 housing Transportation + 4 -89 75 -9.28 7.01e-06 0 0 163 scintillator Transportation + 5 -22.1 -2.23 57.9 7.01e-06 7.01e-06 122 285 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.157 0.0916 -98.8 0.0298 0 0 0 scintillator initStep + 1 0.159 0.0654 -98.8 0 0.00511 0.04 0.04 scintillator phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 13 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.159 0.0654 -98.8 0.0247 0 0 0 scintillator initStep + 1 0.16 0.065 -98.8 0.0224 0.0023 0.000571 0.000571 scintillator msc + 2 0.16 0.0641 -98.8 0 0.0224 0.00711 0.00768 scintillator eIoni + 3 0.16 0.0641 -98.8 0 0 0 0.00768 scintillator NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 15 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.16 0.0643 -98.8 7.1e-06 0 0 0 scintillator initStep + 1 29.8 89 -50.3 7.1e-06 0 106 106 housing Transportation + 2 29.8 89 -50.3 7.1e-06 0 0 106 scintillator Transportation + 3 89 -89 46.9 7.1e-06 0 211 317 housing Transportation + 4 89 -89 46.9 7.1e-06 0 0 317 scintillator Transportation + 5 89 -89 46.9 7.1e-06 0 0.0469 317 housing Transportation + 6 89 -89 46.9 7.1e-06 0 0 317 scintillator Transportation + 7 48.7 31.9 113 7.1e-06 0 144 460 pmt Transportation + 8 48.5 32.6 113 7.1e-06 0 0.722 461 photocath Transportation + 9 48.5 32.6 113 7.1e-06 0 0 461 pmt Transportation + 10 48.3 33.2 113 7.1e-06 0 0.722 462 scintillator Transportation + 11 40.8 55.8 101 7.1e-06 7.1e-06 26.9 489 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 15 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.16 0.0643 -98.8 7.11e-06 0 0 0 scintillator initStep + 1 89 4.62 -23.3 7.11e-06 0 117 117 housing Transportation + 2 89 4.62 -23.3 7.11e-06 0 0 117 scintillator Transportation + 3 83.7 4.89 -18.8 7.11e-06 7.11e-06 6.94 124 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 15 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.16 0.0643 -98.8 7.04e-06 0 0 0 scintillator initStep + 1 6.19 7 -113 7.04e-06 0 16.9 16.9 housing Transportation + 2 6.19 7 -113 7.04e-06 0 0 16.9 scintillator Transportation + 3 77.4 89 54.3 7.04e-06 0 199 216 housing Transportation + 4 77.4 89 54.3 7.04e-06 0 0 216 scintillator Transportation + 5 89 75.6 81.6 7.04e-06 0 32.5 249 housing Transportation + 6 89 75.6 81.6 7.04e-06 0 0 249 scintillator Transportation + 7 75.6 60.3 113 7.04e-06 0 37.4 286 housing Transportation + 8 75.6 60.3 113 7.04e-06 0 0 286 scintillator Transportation + 9 54.6 36 63.5 7.04e-06 0 59 345 sphere Transportation + 10 54.6 36 63.5 7.04e-06 0 0 345 scintillator Transportation + 11 28.7 -89 16.1 7.04e-06 0 136 481 pmt Transportation + 12 28.6 -89.3 16 7.04e-06 7.04e-06 0.348 482 photocath Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 7 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.157 0.0916 -98.8 0.0195 0 0 0 scintillator initStep + 1 0.156 0.0915 -98.8 0.0177 0.00177 0.00039 0.00039 scintillator msc + 2 0.156 0.0911 -98.8 0 0.0177 0.00479 0.00518 scintillator eIoni + 3 0.156 0.0911 -98.8 0 0 0 0.00518 scintillator NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.156 0.0915 -98.8 7.09e-06 0 0 0 scintillator initStep + 1 -44.8 -47.8 -113 7.09e-06 0 67.2 67.2 pmt Transportation + 2 -44.8 -47.8 -113 7.09e-06 0 0 67.2 scintillator Transportation + 3 -83.6 -89 -101 7.09e-06 0 57.9 125 housing Transportation + 4 -83.6 -89 -101 7.09e-06 0 0 125 scintillator Transportation + 5 -89 -83.3 -99.1 7.09e-06 0 8.07 133 housing Transportation + 6 -89 -83.3 -99.1 7.09e-06 0 0 133 scintillator Transportation + 7 33.8 47.3 -60.4 7.09e-06 7.09e-06 183 317 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 12 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.156 0.0915 -98.8 7.09e-06 0 0 0 scintillator initStep + 1 89 52.3 -55.6 7.09e-06 0 112 112 pmt Transportation + 2 89.3 52.5 -55.5 7.09e-06 7.09e-06 0.403 112 photocath Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 0.114 0.0217 -98.9 0.349 0 0 0.236 scintillator initStep + 4 0.0957 0.0312 -98.9 0.329 0.0196 0.0398 0.276 scintillator msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.113 0.0225 -98.9 7.04e-06 0 0 0 scintillator initStep + 1 -89 -1.26 -77.7 7.04e-06 0 91.6 91.6 housing Transportation + 2 -89 -1.26 -77.7 7.04e-06 0 0 91.6 scintillator Transportation + 3 89 -3.81 -35.4 7.04e-06 0 183 275 housing Transportation + 4 89 -3.81 -35.4 7.04e-06 0 0 275 scintillator Transportation + 5 72.8 -4.04 -31.5 7.04e-06 7.04e-06 16.7 291 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 0.0957 0.0312 -98.9 0.329 0 0 0.276 scintillator initStep + 5 0.107 0.0354 -98.9 0.318 0.0113 0.0364 0.312 scintillator msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.103 0.0339 -98.9 7.03e-06 0 0 0 scintillator initStep + 1 -15.3 7.17 -113 7.03e-06 0 22.1 22.1 housing Transportation + 2 -15.3 7.17 -113 7.03e-06 0 0 22.1 scintillator Transportation + 3 -89 41.3 -45.7 7.03e-06 0 105 128 housing Transportation + 4 -89 41.3 -45.7 7.03e-06 0 0 128 scintillator Transportation + 5 14 89 48.4 7.03e-06 0 147 275 housing Transportation + 6 14 89 48.4 7.03e-06 0 0 275 scintillator Transportation + 7 84.8 56.2 113 7.03e-06 0 101 376 housing Transportation + 8 84.8 56.2 113 7.03e-06 0 0 376 scintillator Transportation + 9 89 54.3 109 7.03e-06 0 6.01 382 housing Transportation + 10 89 54.3 109 7.03e-06 0 0 382 scintillator Transportation + 11 -18.5 4.48 11 7.03e-06 7.03e-06 154 536 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.106 0.0351 -98.9 7.08e-06 0 0 0 scintillator initStep + 1 -13.9 9.93 -113 7.08e-06 0 22.2 22.2 housing Transportation + 2 -13.9 9.93 -113 7.08e-06 0 0 22.2 scintillator Transportation + 3 -17.7 12.6 -109 7.08e-06 7.08e-06 5.97 28.2 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0979 0.032 -98.9 7.11e-06 0 0 0 scintillator initStep + 1 -32.3 -43.9 -113 7.11e-06 0 56.4 56.4 pmt Transportation + 2 -33.1 -45.1 -113 7.11e-06 0 1.47 57.8 photocath Transportation + 3 -33.1 -45.1 -113 7.11e-06 0 0 57.8 pmt Transportation + 4 -34 -46.2 -113 7.11e-06 0 1.47 59.3 scintillator Transportation + 5 -65.5 -89 -99.3 7.11e-06 0 54.9 114 housing Transportation + 6 -65.5 -89 -99.3 7.11e-06 0 0 114 scintillator Transportation + 7 -89 -57.1 -89 7.11e-06 0 41 155 pmt Transportation + 8 -89.3 -56.6 -88.9 7.11e-06 0 0.563 156 photocath Transportation + 9 -89.3 -56.6 -88.9 7.11e-06 0 0 156 pmt Transportation + 10 -89 -56.2 -88.8 7.11e-06 0 0.563 156 scintillator Transportation + 11 -25.7 29.8 -61.2 7.11e-06 7.11e-06 110 267 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0974 0.0319 -98.9 7.13e-06 0 0 0 scintillator initStep + 1 -89 11.9 -20.1 7.13e-06 0 120 120 housing Transportation + 2 -89 11.9 -20.1 7.13e-06 0 0 120 scintillator Transportation + 3 -40.3 18.4 23 7.13e-06 7.13e-06 65.3 185 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 0.107 0.0354 -98.9 0.318 0 0 0.312 scintillator initStep + 6 0.12 0.0166 -99 0.307 0.0113 0.0346 0.347 scintillator msc ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.006 0.000831 -108 7.03e-06 0 0 0 scintillator initStep - 1 66.1 -89 -29.8 7.03e-06 0 136 136 housing Transportation - 2 66.1 -89 -29.8 7.03e-06 0 0 136 scintillator Transportation - 3 89 -58.1 -2.63 7.03e-06 0 47.1 183 pmt Transportation - 4 89.3 -57.6 -2.2 7.03e-06 7.03e-06 0.724 184 photocath Transportation + 0 0.116 0.0219 -99 7.11e-06 0 0 0 scintillator initStep + 1 0.828 89 23.1 7.11e-06 0 151 151 housing Transportation + 2 0.828 89 23.1 7.11e-06 0 0 151 scintillator Transportation + 3 1.35 23.5 113 7.11e-06 0 111 262 housing Transportation + 4 1.35 23.5 113 7.11e-06 0 0 262 scintillator Transportation + 5 2.25 -89 -41.3 7.11e-06 0 191 453 housing Transportation + 6 2.25 -89 -41.3 7.11e-06 0 0 453 scintillator Transportation + 7 2.67 -36.7 -113 7.11e-06 0 88.7 542 housing Transportation + 8 2.67 -36.7 -113 7.11e-06 0 0 542 scintillator Transportation + 9 2.7 -32.8 -108 7.11e-06 7.11e-06 6.68 549 scintillator OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 -0.0064 0.000886 -108 0.267 0 0 0.0274 scintillator initStep - 2 -0.00831 0.0221 -108 0.257 0.0103 0.0265 0.0538 scintillator msc + 6 0.12 0.0166 -99 0.307 0 0 0.347 scintillator initStep + 7 0.129 -0.000203 -99 0.289 0.0182 0.0327 0.379 scintillator msc ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 2 +* G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0065 0.00192 -108 7.1e-06 0 0 0 scintillator initStep - 1 18.3 -14.5 -113 7.1e-06 0 23.9 23.9 housing Transportation - 2 18.3 -14.5 -113 7.1e-06 0 0 23.9 scintillator Transportation - 3 89 -70.7 -94.2 7.1e-06 0 92.2 116 housing Transportation - 4 89 -70.7 -94.2 7.1e-06 0 0 116 scintillator Transportation - 5 66 -89 -88.1 7.1e-06 0 30 146 housing Transportation - 6 66 -89 -88.1 7.1e-06 0 0 146 scintillator Transportation - 7 30.4 -60.8 -78.7 7.1e-06 7.1e-06 46.4 193 scintillator OpAbsorption + 0 0.124 0.0089 -99 7.11e-06 0 0 0 scintillator initStep + 1 5.94 7.73 -113 7.11e-06 0 17 17 housing Transportation + 2 5.94 7.73 -113 7.11e-06 0 0 17 scintillator Transportation + 3 67.1 89 34.7 7.11e-06 0 179 196 housing Transportation + 4 67.1 89 34.7 7.11e-06 0 0 196 scintillator Transportation + 5 89 60 87.4 7.11e-06 0 64 260 pmt Transportation + 6 89.3 59.5 88.2 7.11e-06 7.11e-06 1.01 261 photocath Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -0.00831 0.0221 -108 0.257 0 0 0.0538 scintillator initStep - 3 -0.0195 0.0216 -108 0.245 0.0115 0.0249 0.0787 scintillator msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0124 0.0219 -108 7.01e-06 0 0 0 scintillator initStep - 1 6.14 2.35 -113 7.01e-06 0 8.19 8.19 housing Transportation - 2 6.14 2.35 -113 7.01e-06 0 0 8.19 scintillator Transportation - 3 89 33.7 -47.4 7.01e-06 0 110 118 housing Transportation - 4 89 33.7 -47.4 7.01e-06 0 0 118 scintillator Transportation - 5 -56.8 89 68.1 7.01e-06 0 194 312 pmt Transportation - 6 -58.5 89.3 69.4 7.01e-06 0 2.18 315 photocath Transportation - 7 -58.5 89.3 69.4 7.01e-06 0 0 315 pmt Transportation - 8 -60.2 89 70.7 7.01e-06 0 2.18 317 scintillator Transportation - 9 -89 78.1 93.5 7.01e-06 0 38.3 355 housing Transportation - 10 -89 78.1 93.5 7.01e-06 0 0 355 scintillator Transportation - 11 -64.4 68.8 113 7.01e-06 0 32.7 388 housing Transportation - 12 -64.4 68.8 113 7.01e-06 0 0 388 scintillator Transportation - 13 89 10.7 -8.45 7.01e-06 0 204 592 housing Transportation - 14 89 10.7 -8.45 7.01e-06 0 0 592 scintillator Transportation - 15 82.3 8.12 -13.7 7.01e-06 7.01e-06 8.89 601 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 -0.0195 0.0216 -108 0.245 0 0 0.0787 scintillator initStep - 4 -0.0212 0.025 -108 0.231 0.0146 0.0232 0.102 scintillator msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.02 0.0227 -108 7.06e-06 0 0 0 scintillator initStep - 1 0.673 8.45 -113 7.06e-06 0 9.77 9.77 housing Transportation - 2 0.673 8.45 -113 7.06e-06 0 0 9.77 scintillator Transportation - 3 5.67 69.2 -77.7 7.06e-06 7.06e-06 70.4 80.2 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0197 0.022 -108 7.07e-06 0 0 0 scintillator initStep - 1 89 -23.1 -31.9 7.07e-06 0 119 119 housing Transportation - 2 89 -23.1 -31.9 7.07e-06 0 0 119 scintillator Transportation - 3 50 -33.2 1.51 7.07e-06 7.07e-06 52.3 172 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0211 0.025 -108 7.09e-06 0 0 0 scintillator initStep - 1 20.3 -48 -83.7 7.09e-06 7.09e-06 57.6 57.6 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -0.0212 0.025 -108 0.231 0 0 0.102 scintillator initStep - 5 -0.00132 0.0205 -108 0.226 0.00492 0.0211 0.123 scintillator msc - 6 0.0204 0.0287 -108 0.193 0.0332 0.0804 0.203 scintillator eIoni + 7 0.129 -0.000203 -99 0.289 0 0 0.379 scintillator initStep + 8 0.153 -0.0056 -99 0.282 0.00692 0.0298 0.409 scintillator msc + 9 0.193 -0.00371 -99 0.228 0.0538 0.106 0.515 scintillator eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 34, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 9.32e-05 0.021 -108 7.05e-06 0 0 0 scintillator initStep - 1 89 -64.5 -109 7.05e-06 0 110 110 housing Transportation - 2 89 -64.5 -109 7.05e-06 0 0 110 scintillator Transportation - 3 60.2 -85.4 -109 7.05e-06 7.05e-06 35.6 146 scintillator OpAbsorption + 0 0.18 -0.00435 -99 7.12e-06 0 0 0 scintillator initStep + 1 13.7 8.13 -113 7.12e-06 0 21.1 21.1 housing Transportation + 2 13.7 8.13 -113 7.12e-06 0 0 21.1 scintillator Transportation + 3 89 53.6 -34.8 7.12e-06 0 118 139 housing Transportation + 4 89 53.6 -34.8 7.12e-06 0 0 139 scintillator Transportation + 5 30.4 89 26 7.12e-06 0 91.5 230 housing Transportation + 6 30.4 89 26 7.12e-06 0 0 230 scintillator Transportation + 7 -4.67 67.8 62.4 7.12e-06 7.12e-06 54.8 285 scintillator OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 33, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0107 0.025 -108 7.08e-06 0 0 0 scintillator initStep - 1 -3.64 6.49 -113 7.08e-06 0 8.9 8.9 housing Transportation - 2 -3.64 6.49 -113 7.08e-06 0 0 8.9 scintillator Transportation - 3 -50.3 89 -50.5 7.08e-06 0 114 122 housing Transportation - 4 -50.3 89 -50.5 7.08e-06 0 0 122 scintillator Transportation - 5 -89 20.5 1.36 7.08e-06 0 94.3 217 housing Transportation - 6 -89 20.5 1.36 7.08e-06 0 0 217 scintillator Transportation - 7 -60 -30.8 40.2 7.08e-06 7.08e-06 70.6 287 scintillator OpAbsorption + 0 0.184 -0.00413 -99 7.06e-06 0 0 0 scintillator initStep + 1 89 45.2 -23.8 7.06e-06 0 125 125 housing Transportation + 2 89 45.2 -23.8 7.06e-06 0 0 125 scintillator Transportation + 3 57.2 61.3 3.1 7.06e-06 7.06e-06 44.7 170 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.176 -0.0045 -99 7.1e-06 0 0 0 scintillator initStep + 1 -89 55.9 44.9 7.1e-06 0 178 178 housing Transportation + 2 -89 55.9 44.9 7.1e-06 0 0 178 scintillator Transportation + 3 -58.2 75.3 94.6 7.1e-06 7.1e-06 61.6 240 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.178 -0.00444 -99 7.09e-06 0 0 0 scintillator initStep + 1 -75.3 -89 -8.53 7.09e-06 0 148 148 housing Transportation + 2 -75.3 -89 -8.53 7.09e-06 0 0 148 scintillator Transportation + 3 -89 -72.9 7.84 7.09e-06 0 26.7 174 housing Transportation + 4 -89 -72.9 7.84 7.09e-06 0 0 174 scintillator Transportation + 5 -1.24 30.5 113 7.09e-06 0 172 346 housing Transportation + 6 -1.24 30.5 113 7.09e-06 0 0 346 scintillator Transportation + 7 48.4 89 53.5 7.09e-06 0 97.1 443 pmt Transportation + 8 48.7 89.3 53.2 7.09e-06 7.09e-06 0.542 444 photocath Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.183 -0.00421 -99 7.09e-06 0 0 0 scintillator initStep + 1 -18.7 7.48 1.34 7.09e-06 7.09e-06 102 102 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.173 -0.00466 -99 7.04e-06 0 0 0 scintillator initStep + 1 -7 -2.23 -113 7.04e-06 0 15.9 15.9 housing Transportation + 2 -7 -2.23 -113 7.04e-06 0 0 15.9 scintillator Transportation + 3 -89 -27.7 46.9 7.04e-06 0 181 197 housing Transportation + 4 -89 -27.7 46.9 7.04e-06 0 0 197 scintillator Transportation + 5 -55.1 -38.3 113 7.04e-06 0 75 272 pmt Transportation + 6 -54.9 -38.3 113 7.04e-06 0 0.363 273 photocath Transportation + 7 -54.9 -38.3 113 7.04e-06 0 0 273 pmt Transportation + 8 -54.8 -38.4 113 7.04e-06 0 0.363 273 scintillator Transportation + 9 61.1 -74.4 -113 7.04e-06 0 257 530 housing Transportation + 10 61.1 -74.4 -113 7.04e-06 0 0 530 scintillator Transportation + 11 89 -83 -58.7 7.04e-06 0 61.7 591 housing Transportation + 12 89 -83 -58.7 7.04e-06 0 0 591 scintillator Transportation + 13 69.9 -89 -21.3 7.04e-06 0 42.4 634 housing Transportation + 14 69.9 -89 -21.3 7.04e-06 0 0 634 scintillator Transportation + 15 27.4 -75.8 61.4 7.04e-06 7.04e-06 93.9 728 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.181 -0.00428 -99 7.1e-06 0 0 0 scintillator initStep + 1 1.42 -48.7 -113 7.1e-06 0 50.7 50.7 housing Transportation + 2 1.42 -48.7 -113 7.1e-06 0 0 50.7 scintillator Transportation + 3 2.25 -81.6 -104 7.1e-06 7.1e-06 34.2 84.9 scintillator OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 0.0204 0.0287 -108 0.193 0 0 0.203 scintillator initStep - 7 0.0294 0.0308 -108 0.188 0.00425 0.0159 0.219 scintillator msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 37, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0287 0.0306 -108 7.13e-06 0 0 0 scintillator initStep - 1 -3.95 3.9 -113 7.13e-06 0 7.39 7.39 housing Transportation - 2 -3.95 3.9 -113 7.13e-06 0 0 7.39 scintillator Transportation - 3 -89 86.5 -8.8 7.13e-06 0 158 165 housing Transportation - 4 -89 86.5 -8.8 7.13e-06 0 0 165 scintillator Transportation - 5 -86.4 89 -5.59 7.13e-06 0 4.86 170 housing Transportation - 6 -86.4 89 -5.59 7.13e-06 0 0 170 scintillator Transportation - 7 3.89 1.37 105 7.13e-06 7.13e-06 168 338 scintillator OpAbsorption + 9 0.193 -0.00371 -99 0.228 0 0 0.515 scintillator initStep + 10 0.203 0.00366 -99 0.221 0.00649 0.0207 0.536 scintillator msc ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 36, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0233 0.0294 -108 7.05e-06 0 0 0 scintillator initStep - 1 0.454 -47.9 -107 7.05e-06 7.05e-06 47.9 47.9 scintillator OpAbsorption + 0 0.202 0.00272 -99 7.03e-06 0 0 0 scintillator initStep + 1 -2.16 8.97 -113 7.03e-06 0 16.8 16.8 housing Transportation + 2 -2.16 8.97 -113 7.03e-06 0 0 16.8 scintillator Transportation + 3 -23 88 10.2 7.03e-06 7.03e-06 148 165 scintillator OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 35, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0216 0.029 -108 7.04e-06 0 0 0 scintillator initStep - 1 -89 -75.2 -107 7.04e-06 0 117 117 housing Transportation - 2 -89 -75.2 -107 7.04e-06 0 0 117 scintillator Transportation - 3 -72.7 -89 -107 7.04e-06 0 21.4 138 housing Transportation - 4 -72.7 -89 -107 7.04e-06 0 0 138 scintillator Transportation - 5 89 47.6 -105 7.04e-06 0 212 350 housing Transportation - 6 89 47.6 -105 7.04e-06 0 0 350 scintillator Transportation - 7 40 89 -104 7.04e-06 0 64.1 414 housing Transportation - 8 40 89 -104 7.04e-06 0 0 414 scintillator Transportation - 9 -89 -20 -103 7.04e-06 0 169 583 housing Transportation - 10 -89 -20 -103 7.04e-06 0 0 583 scintillator Transportation - 11 -7.38 -89 -102 7.04e-06 0 107 690 housing Transportation - 12 -7.38 -89 -102 7.04e-06 0 0 690 scintillator Transportation - 13 89 -7.56 -101 7.04e-06 0 126 816 housing Transportation - 14 89 -7.56 -101 7.04e-06 0 0 816 scintillator Transportation - 15 57.5 19 -100 7.04e-06 7.04e-06 41.2 857 scintillator OpAbsorption + 0 0.201 0.00219 -99 7.06e-06 0 0 0 scintillator initStep + 1 14.2 -20.7 -113 7.06e-06 0 28.6 28.6 housing Transportation + 2 14.2 -20.7 -113 7.06e-06 0 0 28.6 scintillator Transportation + 3 15.5 -22.5 -112 7.06e-06 7.06e-06 2.52 31.2 scintillator OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 7 0.0294 0.0308 -108 0.188 0 0 0.219 scintillator initStep - 8 0.0445 0.0324 -108 0.184 0.00427 0.0154 0.235 scintillator msc - 9 0.0632 0.043 -108 0.165 0.0191 0.0451 0.28 scintillator Cerenkov - 10 0.0575 0.0454 -108 0.162 0.0028 0.00775 0.288 scintillator Cerenkov - 11 0.0559 0.0465 -108 0.162 0.000325 0.00245 0.29 scintillator Cerenkov - 12 0.0547 0.0473 -108 0.162 0.000381 0.00183 0.292 scintillator Cerenkov - 13 0.0545 0.0481 -108 0.161 0.000748 0.00112 0.293 scintillator Cerenkov - 14 0.0458 0.0559 -108 0.148 0.013 0.0536 0.347 scintillator eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 38, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0539 0.0486 -108 7.05e-06 0 0 0 scintillator initStep - 1 2.91 4.59 -113 7.05e-06 0 7.26 7.26 housing Transportation - 2 2.91 4.59 -113 7.05e-06 0 0 7.26 scintillator Transportation - 3 56 89 -22.2 7.05e-06 0 135 142 housing Transportation - 4 56 89 -22.2 7.05e-06 0 0 142 scintillator Transportation - 5 89 36.6 34.1 7.05e-06 0 83.7 226 housing Transportation - 6 89 36.6 34.1 7.05e-06 0 0 226 scintillator Transportation - 7 42.9 -36.7 113 7.05e-06 0 117 343 pmt Transportation - 8 42.7 -37 113 7.05e-06 7.05e-06 0.486 343 photocath Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 14 0.0458 0.0559 -108 0.148 0 0 0.347 scintillator initStep - 15 0.0533 0.0498 -108 0.145 0.0027 0.0104 0.357 scintillator msc + 10 0.203 0.00366 -99 0.221 0 0 0.536 scintillator initStep + 11 0.208 0.0197 -99 0.215 0.00627 0.0198 0.556 scintillator msc ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 39, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0522 0.0507 -108 7.12e-06 0 0 0 scintillator initStep - 1 -0.627 -1.84 -113 7.12e-06 0 5.3 5.3 housing Transportation - 2 -0.627 -1.84 -113 7.12e-06 0 0 5.3 scintillator Transportation - 3 -16.5 -46.1 1.65 7.12e-06 7.12e-06 124 129 scintillator OpAbsorption + 0 0.203 0.00464 -99 7.14e-06 0 0 0 scintillator initStep + 1 -89 -55.8 -112 7.14e-06 0 106 106 housing Transportation + 2 -89 -55.8 -112 7.14e-06 0 0 106 scintillator Transportation + 3 -83.5 -59.2 -113 7.14e-06 0 6.57 113 housing Transportation + 4 -83.5 -59.2 -113 7.14e-06 0 0 113 scintillator Transportation + 5 -37.6 -87.9 -106 7.14e-06 7.14e-06 54.5 167 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 38, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.208 0.0189 -99 7.07e-06 0 0 0 scintillator initStep + 1 79.8 -16.9 -113 7.07e-06 0 82.6 82.6 housing Transportation + 2 79.8 -16.9 -113 7.07e-06 0 0 82.6 scintillator Transportation + 3 89 -18.9 -111 7.07e-06 0 9.57 92.1 housing Transportation + 4 89 -18.9 -111 7.07e-06 0 0 92.1 scintillator Transportation + 5 -89 -56.8 -80.1 7.07e-06 0 185 277 pmt Transportation + 6 -89.3 -56.9 -80 7.07e-06 7.07e-06 0.33 277 photocath Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 37, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.205 0.0108 -99 7.1e-06 0 0 0 scintillator initStep + 1 27.7 89 -58.4 7.1e-06 0 102 102 housing Transportation + 2 27.7 89 -58.4 7.1e-06 0 0 102 scintillator Transportation + 3 82.6 -89 22.8 7.1e-06 0 203 305 housing Transportation + 4 82.6 -89 22.8 7.1e-06 0 0 305 scintillator Transportation + 5 89 -68.2 32.3 7.1e-06 0 23.8 329 housing Transportation + 6 89 -68.2 32.3 7.1e-06 0 0 329 scintillator Transportation + 7 71.4 -11.3 58.2 7.1e-06 7.1e-06 65 394 scintillator OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 15 0.0533 0.0498 -108 0.145 0 0 0.357 scintillator initStep - 16 0.0626 0.0478 -108 0.14 0.00541 0.0101 0.367 scintillator msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 40, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0595 0.0485 -108 7.07e-06 0 0 0 scintillator initStep - 1 -2.16 -36.6 -72 7.07e-06 7.07e-06 51.5 51.5 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 16 0.0626 0.0478 -108 0.14 0 0 0.367 scintillator initStep - 17 0.0694 0.048 -108 0.136 0.00321 0.00954 0.377 scintillator msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 41, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0645 0.0479 -108 7.07e-06 0 0 0 scintillator initStep - 1 -20.5 1.96 -113 7.07e-06 0 21.2 21.2 housing Transportation - 2 -20.5 1.96 -113 7.07e-06 0 0 21.2 scintillator Transportation - 3 -89 8.34 -96.7 7.07e-06 0 70.7 91.9 housing Transportation - 4 -89 8.34 -96.7 7.07e-06 0 0 91.9 scintillator Transportation - 5 -70.8 10 -92.3 7.07e-06 7.07e-06 18.8 111 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 17 0.0694 0.048 -108 0.136 0 0 0.377 scintillator initStep - 18 0.0729 0.0522 -108 0.132 0.00476 0.00919 0.386 scintillator msc - 19 0.0833 0.0619 -108 0.0882 0.0435 0.043 0.429 scintillator eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0746 0.0538 -108 7.01e-06 0 0 0 scintillator initStep - 1 -6.33 89 -87.1 7.01e-06 0 91.6 91.6 housing Transportation - 2 -6.33 89 -87.1 7.01e-06 0 0 91.6 scintillator Transportation - 3 -11.9 11.1 -68.7 7.01e-06 7.01e-06 80.3 172 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0786 0.0575 -108 7.09e-06 0 0 0 scintillator initStep - 1 -9.89 -19.2 -113 7.09e-06 0 22.2 22.2 housing Transportation - 2 -9.89 -19.2 -113 7.09e-06 0 0 22.2 scintillator Transportation - 3 -46.1 -89 -95.1 7.09e-06 0 80.7 103 pmt Transportation - 4 -46.3 -89.3 -95.1 7.09e-06 7.09e-06 0.369 103 photocath Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 47, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.075 0.0541 -108 7.05e-06 0 0 0 scintillator initStep - 1 -2.87 -38.5 65.4 7.05e-06 7.05e-06 178 178 scintillator OpAbsorption + 11 0.208 0.0197 -99 0.215 0 0 0.556 scintillator initStep + 12 0.221 0.0325 -99 0.208 0.00752 0.0189 0.575 scintillator msc + 13 0.241 0.051 -99 0.135 0.0731 0.0726 0.647 scintillator eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 46, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0784 0.0573 -108 7.11e-06 0 0 0 scintillator initStep - 1 -17.8 38 -113 7.11e-06 0 42.2 42.2 housing Transportation - 2 -17.8 38 -113 7.11e-06 0 0 42.2 scintillator Transportation - 3 -41.9 89 -106 7.11e-06 0 56.8 99 housing Transportation - 4 -41.9 89 -106 7.11e-06 0 0 99 scintillator Transportation - 5 -45.9 80.6 -105 7.11e-06 7.11e-06 9.35 108 scintillator OpAbsorption + 0 0.221 0.0325 -99 7.07e-06 0 0 0 scintillator initStep + 1 -27.8 19.5 -113 7.07e-06 0 36.9 36.9 housing Transportation + 2 -27.8 19.5 -113 7.07e-06 0 0 36.9 scintillator Transportation + 3 -89 61.9 -82.5 7.07e-06 0 80.5 117 pmt Transportation + 4 -89.3 62.2 -82.3 7.07e-06 0 0.424 118 photocath Transportation + 5 -89.3 62.2 -82.3 7.07e-06 0 0 118 pmt Transportation + 6 -89 62.4 -82.1 7.07e-06 0 0.424 118 scintillator Transportation + 7 -50.7 89 -63 7.07e-06 0 50.4 169 pmt Transportation + 8 -50.2 89.3 -62.7 7.07e-06 0 0.639 169 photocath Transportation + 9 -50.2 89.3 -62.7 7.07e-06 0 0 169 pmt Transportation + 10 -49.7 89 -62.5 7.07e-06 0 0.639 170 scintillator Transportation + 11 89 -7.21 6.74 7.07e-06 0 182 352 housing Transportation + 12 89 -7.21 6.74 7.07e-06 0 0 352 scintillator Transportation + 13 -28.9 -89 65.6 7.07e-06 0 155 507 pmt Transportation + 14 -29.4 -89.3 65.8 7.07e-06 7.07e-06 0.639 508 photocath Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.074 0.0532 -108 7.07e-06 0 0 0 scintillator initStep - 1 4.23 1.54 -113 7.07e-06 0 6.61 6.61 housing Transportation - 2 4.23 1.54 -113 7.07e-06 0 0 6.61 scintillator Transportation - 3 53.9 19.3 -54.4 7.07e-06 7.07e-06 78.8 85.5 scintillator OpAbsorption + 0 0.23 0.0405 -99 7.07e-06 0 0 0 scintillator initStep + 1 -89 -70.3 17.6 7.07e-06 0 163 163 housing Transportation + 2 -89 -70.3 17.6 7.07e-06 0 0 163 scintillator Transportation + 3 -65.3 -89 48.6 7.07e-06 0 43.3 206 housing Transportation + 4 -65.3 -89 48.6 7.07e-06 0 0 206 scintillator Transportation + 5 -16 -50.1 113 7.07e-06 0 89.9 296 housing Transportation + 6 -16 -50.1 113 7.07e-06 0 0 296 scintillator Transportation + 7 89 32.6 -24.2 7.07e-06 0 192 488 housing Transportation + 8 89 32.6 -24.2 7.07e-06 0 0 488 scintillator Transportation + 9 21 86.2 -113 7.07e-06 0 124 612 housing Transportation + 10 21 86.2 -113 7.07e-06 0 0 612 scintillator Transportation + 11 17.5 89 -108 7.07e-06 0 6.45 618 housing Transportation + 12 17.5 89 -108 7.07e-06 0 0 618 scintillator Transportation + 13 -89 5.04 30.8 7.07e-06 0 194 812 housing Transportation + 14 -89 5.04 30.8 7.07e-06 0 0 812 scintillator Transportation + 15 -26.1 -44.6 113 7.07e-06 0 115 927 pmt Transportation + 16 -25.8 -44.8 113 7.07e-06 0 0.453 928 photocath Transportation + 17 -25.8 -44.8 113 7.07e-06 0 0 928 pmt Transportation + 18 -25.6 -45 113 7.07e-06 0 0.453 928 scintillator Transportation + 19 -3.8 -62.1 84.5 7.07e-06 7.07e-06 39.7 968 scintillator OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 44, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0807 0.0594 -108 7.09e-06 0 0 0 scintillator initStep - 1 -18.7 7.18 -113 7.09e-06 0 20.7 20.7 housing Transportation - 2 -18.7 7.18 -113 7.09e-06 0 0 20.7 scintillator Transportation - 3 -89 33.9 -94.6 7.09e-06 0 77.4 98.1 pmt Transportation - 4 -89.3 34 -94.5 7.09e-06 7.09e-06 0.351 98.4 photocath Transportation + 0 0.232 0.0429 -99 7.01e-06 0 0 0 scintillator initStep + 1 3.45 -0.515 -38.7 7.01e-06 7.01e-06 60.4 60.4 scintillator OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 43, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0749 0.054 -108 7.05e-06 0 0 0 scintillator initStep - 1 -89 65.1 -79 7.05e-06 0 114 114 pmt Transportation - 2 -89.3 65.3 -78.9 7.05e-06 7.05e-06 0.413 114 photocath Transportation + 0 0.231 0.0415 -99 7.02e-06 0 0 0 scintillator initStep + 1 -5.82 -11.9 -113 7.02e-06 0 19.4 19.4 housing Transportation + 2 -5.82 -11.9 -113 7.02e-06 0 0 19.4 scintillator Transportation + 3 -45 -89 -22.3 7.02e-06 0 125 145 pmt Transportation + 4 -45.2 -89.3 -21.9 7.02e-06 7.02e-06 0.543 145 photocath Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 42, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0786 0.0575 -108 7.03e-06 0 0 0 scintillator initStep - 1 1.49 73.6 -113 7.03e-06 0 73.7 73.7 housing Transportation - 2 1.49 73.6 -113 7.03e-06 0 0 73.7 scintillator Transportation - 3 1.79 89 -112 7.03e-06 0 15.5 89.2 housing Transportation - 4 1.79 89 -112 7.03e-06 0 0 89.2 scintillator Transportation - 5 5.21 -89 -100 7.03e-06 0 178 268 housing Transportation - 6 5.21 -89 -100 7.03e-06 0 0 268 scintillator Transportation - 7 8.63 89 -88.2 7.03e-06 0 178 446 housing Transportation - 8 8.63 89 -88.2 7.03e-06 0 0 446 scintillator Transportation - 9 12.1 -89 -76.3 7.03e-06 0 178 624 housing Transportation - 10 12.1 -89 -76.3 7.03e-06 0 0 624 scintillator Transportation - 11 12.6 -62.9 -74.5 7.03e-06 7.03e-06 26.2 651 scintillator OpAbsorption + 0 0.227 0.0376 -99 7.07e-06 0 0 0 scintillator initStep + 1 -30.9 -89 -75.4 7.07e-06 0 97.2 97.2 pmt Transportation + 2 -31 -89.3 -75.3 7.07e-06 7.07e-06 0.348 97.6 photocath Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 41, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.237 0.0473 -99 7.06e-06 0 0 0 scintillator initStep + 1 4.62 5.4 -113 7.06e-06 0 15.6 15.6 housing Transportation + 2 4.62 5.4 -113 7.06e-06 0 0 15.6 scintillator Transportation + 3 41.3 50.2 4.24 7.06e-06 7.06e-06 131 146 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 40, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.222 0.0331 -99 7.08e-06 0 0 0 scintillator initStep + 1 -0.615 6.42 -113 7.08e-06 0 15.4 15.4 housing Transportation + 2 -0.615 6.42 -113 7.08e-06 0 0 15.4 scintillator Transportation + 3 -5.63 44.7 -29.1 7.08e-06 7.08e-06 92.3 108 scintillator OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 19 0.0833 0.0619 -108 0.0882 0 0 0.429 scintillator initStep - 20 0.0802 0.0598 -108 0.0855 0.00261 0.00454 0.433 scintillator msc - 21 0.0763 0.0532 -108 0.0682 0.0174 0.0284 0.462 scintillator eIoni + 13 0.241 0.051 -99 0.135 0 0 0.647 scintillator initStep + 14 0.239 0.048 -99 0.132 0.00282 0.00899 0.656 scintillator msc ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 51, Parent ID = 2 +* G4Track Information: Particle = opticalphoton, Track ID = 47, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0773 0.0548 -108 7.09e-06 0 0 0 scintillator initStep - 1 2.25 20.9 -113 7.09e-06 0 21.5 21.5 housing Transportation - 2 2.25 20.9 -113 7.09e-06 0 0 21.5 scintillator Transportation - 3 9.36 89 -96.9 7.09e-06 0 70.4 91.9 housing Transportation - 4 9.36 89 -96.9 7.09e-06 0 0 91.9 scintillator Transportation - 5 22 -31.9 -68.4 7.09e-06 7.09e-06 125 217 scintillator OpAbsorption + 0 0.24 0.0491 -99 7.1e-06 0 0 0 scintillator initStep + 1 30.7 -89 -63.3 7.1e-06 0 101 101 pmt Transportation + 2 30.8 -89.3 -63.2 7.1e-06 7.1e-06 0.36 101 photocath Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 14 0.239 0.048 -99 0.132 0 0 0.656 scintillator initStep + 15 0.239 0.047 -99 0.129 0.00296 0.00869 0.665 scintillator msc + 16 0.248 0.0568 -99 0.104 0.0243 0.0421 0.707 scintillator eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.239 0.0478 -99 7.01e-06 0 0 0 scintillator initStep + 1 12.4 -7.47 -77.9 7.01e-06 7.01e-06 25.5 25.5 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 16 0.248 0.0568 -99 0.104 0 0 0.707 scintillator initStep + 17 0.252 0.058 -99 0.103 0.00118 0.00598 0.713 scintillator msc + 18 0.261 0.0624 -99 0.0736 0.0297 0.0337 0.747 scintillator eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 50, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0778 0.0558 -108 7.11e-06 0 0 0 scintillator initStep - 1 1.69 -0.277 -113 7.11e-06 0 5.18 5.18 housing Transportation - 2 1.69 -0.277 -113 7.11e-06 0 0 5.18 scintillator Transportation - 3 5.5 -1.06 -101 7.11e-06 7.11e-06 12.2 17.4 scintillator OpAbsorption + 0 0.26 0.062 -99 7.09e-06 0 0 0 scintillator initStep + 1 7.76 -9.58 -113 7.09e-06 0 18.6 18.6 housing Transportation + 2 7.76 -9.58 -113 7.09e-06 0 0 18.6 scintillator Transportation + 3 69.5 -89 2.29 7.09e-06 0 153 172 housing Transportation + 4 69.5 -89 2.29 7.09e-06 0 0 172 scintillator Transportation + 5 89 -63.9 38.7 7.09e-06 0 48.3 220 housing Transportation + 6 89 -63.9 38.7 7.09e-06 0 0 220 scintillator Transportation + 7 49.2 -12.7 113 7.09e-06 0 98.6 319 housing Transportation + 8 49.2 -12.7 113 7.09e-06 0 0 319 scintillator Transportation + 9 -29.9 89 -34.7 7.09e-06 0 196 515 housing Transportation + 10 -29.9 89 -34.7 7.09e-06 0 0 515 scintillator Transportation + 11 -71.8 35.1 -113 7.09e-06 0 104 618 housing Transportation + 12 -71.8 35.1 -113 7.09e-06 0 0 618 scintillator Transportation + 13 -73.4 33 -110 7.09e-06 7.09e-06 3.9 622 scintillator OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.254 0.0592 -99 7.05e-06 0 0 0 scintillator initStep + 1 89 45.8 -21.1 7.05e-06 0 127 127 pmt Transportation + 2 89.3 45.9 -20.8 7.05e-06 0 0.465 127 photocath Transportation + 3 89.3 45.9 -20.8 7.05e-06 0 0 127 pmt Transportation + 4 89 46.1 -20.5 7.05e-06 0 0.465 128 scintillator Transportation + 5 5.75 89 52.7 7.05e-06 0 119 246 housing Transportation + 6 5.75 89 52.7 7.05e-06 0 0 246 scintillator Transportation + 7 -62.9 53.6 113 7.05e-06 0 98 344 pmt Transportation + 8 -63.3 53.4 113 7.05e-06 0 0.537 345 photocath Transportation + 9 -63.3 53.4 113 7.05e-06 0 0 345 pmt Transportation + 10 -63.7 53.2 113 7.05e-06 0 0.537 346 scintillator Transportation + 11 -89 40.2 90.8 7.05e-06 0 36.1 382 pmt Transportation + 12 -89.3 40 90.5 7.05e-06 7.05e-06 0.465 382 photocath Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 21 0.0763 0.0532 -108 0.0682 0 0 0.462 scintillator initStep - 22 0.074 0.0544 -108 0.067 0.00114 0.00299 0.465 scintillator msc - 23 0.0699 0.0563 -108 0.0539 0.0132 0.0233 0.488 scintillator eIoni + 18 0.261 0.0624 -99 0.0736 0 0 0.747 scintillator initStep + 19 0.26 0.0592 -99 0.0696 0.00397 0.00338 0.75 scintillator msc ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 2 +* G4Track Information: Particle = opticalphoton, Track ID = 51, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0735 0.0546 -108 7.13e-06 0 0 0 scintillator initStep - 1 3.31 -9.08 -113 7.13e-06 0 10.9 10.9 housing Transportation - 2 3.31 -9.08 -113 7.13e-06 0 0 10.9 scintillator Transportation - 3 31.6 -89 -70.1 7.13e-06 0 95 106 pmt Transportation - 4 31.7 -89.3 -69.9 7.13e-06 7.13e-06 0.378 106 photocath Transportation + 0 0.261 0.0618 -99 7.04e-06 0 0 0 scintillator initStep + 1 20.2 71.5 -94.6 7.04e-06 7.04e-06 74.3 74.3 scintillator OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 23 0.0699 0.0563 -108 0.0539 0 0 0.488 scintillator initStep - 24 0.0702 0.0579 -108 0.0524 0.00151 0.00203 0.49 scintillator msc - 25 0.0702 0.0611 -108 0.0303 0.0221 0.0193 0.51 scintillator eIoni + 19 0.26 0.0592 -99 0.0696 0 0 0.75 scintillator initStep + 20 0.26 0.0564 -99 0.0667 0.00294 0.00309 0.753 scintillator msc + 21 0.259 0.0521 -99 0.0371 0.0296 0.0232 0.776 scintillator eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0702 0.0589 -108 7.13e-06 0 0 0 scintillator initStep - 1 89 33.4 -87 7.13e-06 0 97.3 97.3 pmt Transportation - 2 89.3 33.6 -86.9 7.13e-06 7.13e-06 0.348 97.7 photocath Transportation + 0 0.259 0.0528 -99 7.08e-06 0 0 0 scintillator initStep + 1 -9.73 -7.24 -113 7.08e-06 0 18.7 18.7 housing Transportation + 2 -9.73 -7.24 -113 7.08e-06 0 0 18.7 scintillator Transportation + 3 -78.3 -57.4 -16.8 7.08e-06 7.08e-06 128 147 scintillator OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0702 0.059 -108 7.11e-06 0 0 0 scintillator initStep - 1 -89 35.7 55.2 7.11e-06 0 189 189 pmt Transportation - 2 -89.3 35.9 55.8 7.11e-06 7.11e-06 0.7 190 photocath Transportation + 0 0.259 0.0521 -99 7.04e-06 0 0 0 scintillator initStep + 1 89 18.9 -96.5 7.04e-06 0 90.8 90.8 housing Transportation + 2 89 18.9 -96.5 7.04e-06 0 0 90.8 scintillator Transportation + 3 -89 56.6 -91.5 7.04e-06 0 182 273 pmt Transportation + 4 -89.3 56.7 -91.4 7.04e-06 7.04e-06 0.325 273 photocath Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 2 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.26 0.0548 -99 7.12e-06 0 0 0 scintillator initStep + 1 89 -6.72 -113 7.12e-06 0 90 90 housing Transportation + 2 89 -6.72 -113 7.12e-06 0 0 90 scintillator Transportation + 3 85.9 -6.96 -113 7.12e-06 0 3.15 93.2 housing Transportation + 4 85.9 -6.96 -113 7.12e-06 0 0 93.2 scintillator Transportation + 5 -89 -20.3 -86.3 7.12e-06 0 177 271 housing Transportation + 6 -89 -20.3 -86.3 7.12e-06 0 0 271 scintillator Transportation + 7 89 -33.9 -59.2 7.12e-06 0 181 451 pmt Transportation + 8 89.3 -33.9 -59.2 7.12e-06 7.12e-06 0.322 451 photocath Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 25 0.0702 0.0611 -108 0.0303 0 0 0.51 scintillator initStep - 26 0.0701 0.0607 -108 0.0292 0.0011 0.000794 0.51 scintillator msc - 27 0.0701 0.0597 -108 0.00834 0.0208 0.011 0.521 scintillator eIoni + 21 0.259 0.0521 -99 0.0371 0 0 0.776 scintillator initStep + 22 0.258 0.0518 -99 0.0355 0.00151 0.0011 0.777 scintillator msc + 23 0.256 0.0513 -99 0.00551 0.03 0.014 0.791 scintillator eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 56, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0701 0.0603 -108 7.1e-06 0 0 0 scintillator initStep - 1 -0.878 3.85 -113 7.1e-06 0 6.28 6.28 housing Transportation - 2 -0.878 3.85 -113 7.1e-06 0 0 6.28 scintillator Transportation - 3 -8.72 35.2 -72.3 7.1e-06 7.1e-06 52 58.2 scintillator OpAbsorption + 0 0.256 0.0514 -99 7.02e-06 0 0 0 scintillator initStep + 1 -16.1 -12.5 -33.8 7.02e-06 7.02e-06 68.4 68.4 scintillator OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 55, Parent ID = 2 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0701 0.0602 -108 7.09e-06 0 0 0 scintillator initStep - 1 -60 -89 -82.3 7.09e-06 0 110 110 pmt Transportation - 2 -60.2 -89.3 -82.2 7.09e-06 7.09e-06 0.397 111 photocath Transportation + 0 0.257 0.0516 -99 7.03e-06 0 0 0 scintillator initStep + 1 -1.5 -13.8 -113 7.03e-06 0 19.8 19.8 housing Transportation + 2 -1.5 -13.8 -113 7.03e-06 0 0 19.8 scintillator Transportation + 3 -2.25 -19.7 -107 7.03e-06 7.03e-06 8.53 28.3 scintillator OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 27 0.0701 0.0597 -108 0.00834 0 0 0.521 scintillator initStep - 28 0.0701 0.0598 -108 0.00795 0.000392 0.000104 0.521 scintillator msc - 29 0.0702 0.0599 -108 0 0.00795 0.00128 0.523 scintillator eIoni - 30 0.0702 0.0599 -108 0 0 0 0.523 scintillator NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 58, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0701 0.0598 -108 7.07e-06 0 0 0 scintillator initStep - 1 -0.403 -14.4 -96.5 7.07e-06 7.07e-06 18.5 18.5 scintillator OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 57, Parent ID = 2 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0702 0.0599 -108 7.12e-06 0 0 0 scintillator initStep - 1 1.31 1.44 -113 7.12e-06 0 5.26 5.26 housing Transportation - 2 1.31 1.44 -113 7.12e-06 0 0 5.26 scintillator Transportation - 3 38.7 43.1 35 7.12e-06 0 158 163 sphere Transportation - 4 38.7 43.1 35 7.12e-06 0 0 163 scintillator Transportation - 5 -89 -15.6 -36.7 7.12e-06 0 158 321 housing Transportation - 6 -89 -15.6 -36.7 7.12e-06 0 0 321 scintillator Transportation - 7 -77.5 -20.8 -43.1 7.12e-06 7.12e-06 14.2 335 scintillator OpAbsorption - Energy weighted position of hits in LXe : (-1.664740769550083,-0.8417637690724556,-108.2693682901294) - Total energy deposition in scintillator : 511.268913112057 (keV) - Reconstructed position of hits in LXe : (-19.48859375,-27.9315625,-21.16765625) - Number of photons that hit PMTs in this event : 16 - Number of PMTs above threshold(4) : 1 - Number of photons produced by scintillation in this event : 54 + 23 0.256 0.0513 -99 0.00551 0 0 0.791 scintillator initStep + 24 0.256 0.0513 -99 0.00503 0.000478 5.63e-05 0.791 scintillator msc + 25 0.256 0.0513 -99 0 0.00503 0.000609 0.792 scintillator eIoni + 26 0.256 0.0513 -99 0 0 0 0.792 scintillator NoProcess + Energy weighted position of hits in LXe : (0.1759825566587187,0.03694924653445651,-98.99990802895117) + Total energy deposition in scintillator : 511.2546066083667 (keV) + Reconstructed position of hits in LXe : (0,-22.35583333333333,-12.55555555555555) + Number of photons that hit PMTs in this event : 12 + Number of PMTs above threshold(4) : 0 + Number of photons produced by scintillation in this event : 48 Number of photons produced by cerenkov in this event : 0 - Number of photons absorbed (OpAbsorption) in this event : 38 + Number of photons absorbed (OpAbsorption) in this event : 36 Number of photons absorbed at boundaries (OpBoundary) in this event : 0 Unaccounted for photons in this event : 0 /control/shell cp ./currentEvent.rndm ./run2evt0.rndm ./currentEvent.rndm is copied to ./run2evt0.rndm Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.056942s Sys=0.000000s + User=0.000000s Real=0.020486s Sys=0.010000s ======================== run summary ====================== The run was 1 events. -Number of hits per event: 16 +- 0 -Number of hits per event above threshold: 1 +- 0 -Number of scintillation photons per event : 54 +- 0 +Number of hits per event: 12 +- 0 +Number of hits per event above threshold: 0 +- 0 +Number of scintillation photons per event : 48 +- 0 Number of Cerenkov photons per event: 0 +- 0 -Number of absorbed photons per event : 38 +- 0 +Number of absorbed photons per event : 36 +- 0 Number of photons absorbed at boundary per event: 0 +- 0 Total energy deposition in scintillator per event: 511.3 +- 0 keV. @@ -2163,6 +2087,6 @@ Visualization Manager deleting... G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 17 of which, static: 0 -Dynamic pools deleted: 17 / Total memory freed: 1.8 MB +Dynamic pools deleted: 17 / Total memory freed: 1.3 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/optical/LXe/cerenkov.out b/examples/extended/optical/LXe/cerenkov.out index 55253f4303..c6f9313d9a 100644 --- a/examples/extended/optical/LXe/cerenkov.out +++ b/examples/extended/optical/LXe/cerenkov.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -127,7 +129,6 @@ OpWLS2 is created /gun/energy 200 MeV /LXe/oneStepPrimaries true /analysis/setFileName cerenkov -Set file name: cerenkov /analysis/h1/set 1 50 0 50 /analysis/h1/set 2 50 0 50 /analysis/h1/set 4 100 0 200 @@ -148,6 +149,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -175,7 +177,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -211,8 +213,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -242,8 +243,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -367,7 +368,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -751,6 +752,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1072,17 +1078,17 @@ WARNING: G4VisManager::IsValidView(): Attempt to draw when no graphics system Run terminated. Run Summary Number of events processed : 10000 - User=3.470000s Real=3.585041s Sys=0.000000s + User=3.650000s Real=3.695163s Sys=0.010000s ======================== run summary ====================== The run was 10000 events. -Number of hits per event: 13.6 +- 0.09929 -Number of hits per event above threshold: 12.16 +- 0.08515 +Number of hits per event: 13.36 +- 0.09771 +Number of hits per event above threshold: 11.97 +- 0.08405 Number of scintillation photons per event : 0 +- 0 -Number of Cerenkov photons per event: 53.76 +- 0.3479 -Number of absorbed photons per event : 33.59 +- 0.2225 -Number of photons absorbed at boundary per event: 6.567 +- 0.04489 -Total energy deposition in scintillator per event: 6756 +- 40.28 keV. +Number of Cerenkov photons per event: 53.05 +- 0.344 +Number of absorbed photons per event : 33.21 +- 0.2205 +Number of photons absorbed at boundary per event: 6.488 +- 0.04418 +Total energy deposition in scintillator per event: 6680 +- 39.91 keV. ... write file : cerenkov.root - done ... close file : cerenkov.root - done diff --git a/examples/extended/optical/LXe/include/LXeSteppingAction.hh b/examples/extended/optical/LXe/include/LXeSteppingAction.hh index c0a44bf248..f814e953c7 100644 --- a/examples/extended/optical/LXe/include/LXeSteppingAction.hh +++ b/examples/extended/optical/LXe/include/LXeSteppingAction.hh @@ -53,6 +53,7 @@ class LXeSteppingAction : public G4UserSteppingAction G4bool fOneStepPrimaries; LXeSteppingMessenger* fSteppingMessenger; LXeEventAction* fEventAction; + G4OpBoundaryProcess* fBoundary = nullptr; G4OpBoundaryProcessStatus fExpectedNextStatus; }; diff --git a/examples/extended/optical/LXe/photon.out b/examples/extended/optical/LXe/photon.out index 7111363f50..8e22c13605 100644 --- a/examples/extended/optical/LXe/photon.out +++ b/examples/extended/optical/LXe/photon.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -99,6 +101,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -126,7 +129,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -162,8 +165,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -193,8 +195,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -318,7 +320,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -702,6 +704,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda diff --git a/examples/extended/optical/LXe/src/LXeSteppingAction.cc b/examples/extended/optical/LXe/src/LXeSteppingAction.cc index 06afcc1048..689b309a31 100644 --- a/examples/extended/optical/LXe/src/LXeSteppingAction.cc +++ b/examples/extended/optical/LXe/src/LXeSteppingAction.cc @@ -66,12 +66,14 @@ LXeSteppingAction::~LXeSteppingAction() { delete fSteppingMessenger; } void LXeSteppingAction::UserSteppingAction(const G4Step* theStep) { G4Track* theTrack = theStep->GetTrack(); + const G4ParticleDefinition* part = theTrack->GetDefinition(); + G4int pdg = part->GetPDGEncoding(); if(theTrack->GetCurrentStepNumber() == 1) fExpectedNextStatus = Undefined; LXeUserTrackInformation* trackInformation = - (LXeUserTrackInformation*) theTrack->GetUserInformation(); + static_cast(theTrack->GetUserInformation()); G4StepPoint* thePrePoint = theStep->GetPreStepPoint(); G4VPhysicalVolume* thePrePV = thePrePoint->GetPhysicalVolume(); @@ -79,21 +81,19 @@ void LXeSteppingAction::UserSteppingAction(const G4Step* theStep) G4StepPoint* thePostPoint = theStep->GetPostStepPoint(); G4VPhysicalVolume* thePostPV = thePostPoint->GetPhysicalVolume(); - G4OpBoundaryProcessStatus boundaryStatus = Undefined; - static G4ThreadLocal G4OpBoundaryProcess* boundary = nullptr; + G4OpBoundaryProcessStatus boundaryStatus = Undefined; // find the boundary process only once - if(!boundary) + if(nullptr == fBoundary && pdg == -22) { - G4ProcessManager* pm = - theStep->GetTrack()->GetDefinition()->GetProcessManager(); - G4int nprocesses = pm->GetProcessListLength(); + G4ProcessManager* pm = part->GetProcessManager(); + G4int nprocesses = pm->GetProcessListLength(); G4ProcessVector* pv = pm->GetProcessList(); for(G4int i = 0; i < nprocesses; ++i) { - if((*pv)[i]->GetProcessName() == "OpBoundary") + if(nullptr != (*pv)[i] && (*pv)[i]->GetProcessName() == "OpBoundary") { - boundary = (G4OpBoundaryProcess*) (*pv)[i]; + fBoundary = dynamic_cast((*pv)[i]); break; } } @@ -102,48 +102,45 @@ void LXeSteppingAction::UserSteppingAction(const G4Step* theStep) if(theTrack->GetParentID() == 0) { // This is a primary track - - G4TrackVector* fSecondary = fpSteppingManager->GetfSecondary(); - G4int tN2ndariesTot = fpSteppingManager->GetfN2ndariesAtRestDoIt() + - fpSteppingManager->GetfN2ndariesAlongStepDoIt() + - fpSteppingManager->GetfN2ndariesPostStepDoIt(); - + auto secondaries = theStep->GetSecondaryInCurrentStep(); // If we haven't already found the conversion position and there were // secondaries generated, then search for it - if(!fEventAction->IsConvPosSet() && tN2ndariesTot > 0) + // since this is happening before the secondary is being tracked, + // the vertex position has not been set yet (set in initial step) + if(nullptr != secondaries && !fEventAction->IsConvPosSet()) { - for(size_t lp1 = (*fSecondary).size() - tN2ndariesTot; - lp1 < (*fSecondary).size(); ++lp1) + if(!secondaries->empty()) { - const G4VProcess* creator = (*fSecondary)[lp1]->GetCreatorProcess(); - if(creator) - { - G4String creatorName = creator->GetProcessName(); - if(creatorName == "phot" || creatorName == "compt" || - creatorName == "conv") - { - // since this is happening before the secondary is being tracked, - // the vertex position has not been set yet (set in initial step) - fEventAction->SetConvPos((*fSecondary)[lp1]->GetPosition()); - } - } + for(auto & tr : *secondaries) + { + const G4VProcess* creator = tr->GetCreatorProcess(); + if(nullptr != creator) + { + G4int type = creator->GetProcessSubType(); + // 12 - photoeffect + // 13 - Compton scattering + // 14 - gamma conversion + if(type >= 12 && type <= 14) + { + fEventAction->SetConvPos(tr->GetPosition()); + } + } + } } } - if(fOneStepPrimaries && thePrePV->GetName() == "scintillator") theTrack->SetTrackStatus(fStopAndKill); } - if(!thePostPV) + if(nullptr == thePostPV) { // out of world fExpectedNextStatus = Undefined; return; } - if(theTrack->GetDefinition() == G4OpticalPhoton::OpticalPhotonDefinition()) + // Optical photon only + if(pdg == -22) { - // Optical photon only - if(thePrePV->GetName() == "Slab") // force drawing of photons in WLS slab trackInformation->SetForceDrawTrajectory(true); @@ -152,14 +149,14 @@ void LXeSteppingAction::UserSteppingAction(const G4Step* theStep) theTrack->SetTrackStatus(fStopAndKill); // Was the photon absorbed by the absorption process - if(thePostPoint->GetProcessDefinedStep()->GetProcessName() == - "OpAbsorption") + auto proc = thePostPoint->GetProcessDefinedStep(); + if(nullptr != proc && proc->GetProcessName() == "OpAbsorption") { fEventAction->IncAbsorption(); trackInformation->AddTrackStatusFlag(absorbed); } - - boundaryStatus = boundary->GetStatus(); + if(nullptr != fBoundary) + boundaryStatus = fBoundary->GetStatus(); if(thePostPoint->GetStepStatus() == fGeomBoundary) { @@ -169,12 +166,21 @@ void LXeSteppingAction::UserSteppingAction(const G4Step* theStep) { if(boundaryStatus != StepTooSmall) { + G4cout << "LXeSteppingAction::UserSteppingAction(): " + << "trackID=" << theTrack->GetTrackID() + << " parentID=" << theTrack->GetParentID() + << " " << part->GetParticleName() + << " E(MeV)=" << theTrack->GetKineticEnergy() + << "n/ at " << theTrack->GetPosition() + << " prePV: " << thePrePV->GetName() + << " postPV: " << thePostPV->GetName() + << G4endl; G4ExceptionDescription ed; - ed << "LXeSteppingAction::UserSteppingAction(): " - << "No reallocation step after reflection!" << G4endl; - G4Exception("LXeSteppingAction::UserSteppingAction()", "LXeExpl01", - FatalException, ed, - "Something is wrong with the surface normal or geometry"); + ed << "LXeSteppingAction: " + << "No reallocation step after reflection!" + << "Something is wrong with the surface normal or geometry"; + G4Exception("LXeSteppingAction:", "LXeExpl01", JustWarning, ed, ""); + return; } } fExpectedNextStatus = Undefined; diff --git a/examples/extended/optical/LXe/wls.out b/examples/extended/optical/LXe/wls.out index 6eb1ab51a5..8ac9678ba6 100644 --- a/examples/extended/optical/LXe/wls.out +++ b/examples/extended/optical/LXe/wls.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -123,7 +125,6 @@ physicsList->setCut() start. /gun/particle e- /gun/energy 511 keV /analysis/setFileName wls -Set file name: wls /analysis/h1/set 3 100 0 10000 /analysis/h1/set 4 100 0 100 /analysis/h1/set 5 100 0 10000 @@ -144,6 +145,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -171,7 +173,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -207,8 +209,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -238,8 +239,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -363,7 +364,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -747,6 +748,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1091,6 +1097,27 @@ See commands in /vis/modeling/trajectories/ for other options. --> Event 10 starts. --> Event 20 starts. --> Event 30 starts. + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : OpBoun06 + issued by : G4OpBoundaryProcess +G4OpBoundaryProcess: Opticalphoton step length: 1.00182e-09 mm. +This is larger than the threshold 1e-09 mm to set status StepTooSmall. +Boundary scattering may be incorrect. + +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + +LXeSteppingAction::UserSteppingAction(): trackID=5318 parentID=5289 opticalphoton E(MeV)=2.37537e-06n/ at (-79.343,11.1418,-126.189) prePV: Cladding1 postPV: Fiber + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : LXeExpl01 + issued by : LXeSteppingAction: +LXeSteppingAction: No reallocation step after reflection!Something is wrong with the surface normal or geometry + +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + --> Event 40 starts. --> Event 50 starts. --> Event 60 starts. @@ -1100,15 +1127,15 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 100 - User=32.440000s Real=33.093822s Sys=0.020000s + User=37.890000s Real=38.131969s Sys=0.010000s ======================== run summary ====================== The run was 100 events. Number of hits per event: 0 +- 0 Number of hits per event above threshold: 0 +- 0 -Number of scintillation photons per event : 4605 +- 49.66 -Number of Cerenkov photons per event: 23.04 +- 0.5867 -Number of absorbed photons per event : 4436 +- 47.87 +Number of scintillation photons per event : 4584 +- 59.5 +Number of Cerenkov photons per event: 22.61 +- 0.7089 +Number of absorbed photons per event : 4413 +- 57.03 Number of photons absorbed at boundary per event: 0 +- 0 Total energy deposition in scintillator per event: 0 +- 0 keV. @@ -1137,7 +1164,7 @@ G4RNGHelper object is deleted. ================== Deleting memory pools =================== Pool ID '20G4NavigationLevelRep', size : 0.00961 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.245 MB +Pool ID '17G4DynamicParticle', size : 0.257 MB Pool ID '16G4SmartVoxelNode', size : 0.00481 MB Pool ID '17G4SmartVoxelProxy', size : 0.00288 MB Pool ID '7G4Event', size : 0.000961 MB @@ -1145,13 +1172,13 @@ Pool ID '15G4PrimaryVertex', size : 0.000961 MB Pool ID '17G4PrimaryParticle', size : 0.000961 MB Pool ID '15G4HCofThisEvent', size : 0.000961 MB Pool ID '16G4HitsCollection', size : 0.000961 MB -Pool ID '7G4Track', size : 0.49 MB +Pool ID '7G4Track', size : 0.512 MB Pool ID '18G4TouchableHistory', size : 0.000961 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB Pool ID '13LXeTrajectory', size : 0.000961 MB Pool ID '17G4TrajectoryPoint', size : 0.000961 MB Number of memory pools allocated: 15 of which, static: 0 -Dynamic pools deleted: 15 / Total memory freed: 0.76 MB +Dynamic pools deleted: 15 / Total memory freed: 0.8 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/extended/optical/OpNovice/.README.txt b/examples/extended/optical/OpNovice/.README.txt index b51d530917..e01265f7bf 100644 --- a/examples/extended/optical/OpNovice/.README.txt +++ b/examples/extended/optical/OpNovice/.README.txt @@ -90,7 +90,7 @@ defined in OpNoviceDetectorConstruction. $ OpNovice -m OpNovice.in \endverbatim -- execute OpNovice in 'batch' mode from macro files using a gdml file + - execute OpNovice in 'batch' mode from macro files using a gdml file to define the geometry $ OpNovice -g NoviceExample.gdml -m OpNovice.in @@ -109,12 +109,10 @@ Macros The following macros are provided: - optPhoton.mac: Shoot optical photons with energy 3 eV - OpNovice.in: Shoot positrons with energy 500 keV. - gui.mac: Configure the graphical user interface. - vis.mac: Configure visualization. - - + - optPhoton.mac: Shoot optical photons with energy 3 eV + - OpNovice.in: Shoot positrons with energy 500 keV. + - gui.mac: Configure the graphical user interface. + - vis.mac: Configure visualization. gdml files ---------- diff --git a/examples/extended/optical/OpNovice/History b/examples/extended/optical/OpNovice/History index 792c84a79b..a8611ccb7b 100644 --- a/examples/extended/optical/OpNovice/History +++ b/examples/extended/optical/OpNovice/History @@ -4,6 +4,9 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-09 I. Hrivnacova (OpNovice-V11-00-02) +- Fixed Doxygen documentation + ## 2022-01-17 Daren Sawkey (OpNovice-V11-00-01) - Fix incorrect call to G4MaterialPropertiesTable::AddProperty. Add comments explaining use. Addresses issue 115. diff --git a/examples/extended/optical/OpNovice/OpNovice.out b/examples/extended/optical/OpNovice/OpNovice.out index fd431395c0..c785ae473b 100644 --- a/examples/extended/optical/OpNovice/OpNovice.out +++ b/examples/extended/optical/OpNovice/OpNovice.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -363,6 +363,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -390,7 +391,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -426,8 +427,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -457,8 +457,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -582,7 +582,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -998,6 +998,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1950,244 +1955,168 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 4 69.7 48.6 -129 0.148 2.92e-05 6.73 165 Tank compt 5 74.8 35.8 -120 0.144 1.36e-05 16.8 182 Tank compt 6 129 -109 -103 0.109 1.42e-05 156 338 Tank compt - 7 131 -78.2 -28.5 0.0903 2.92e-05 80.4 418 Tank compt - 8 124 -85.9 -24.7 0.0902 1.42e-05 11 429 Tank compt - 9 113 -99.4 -19.7 0.0895 1.42e-05 18 447 Tank compt - 10 102 -107 -13.2 0.0743 1.36e-05 15 462 Tank compt - 11 47.1 -52.5 -84.8 0.071 1.36e-05 105 567 Tank compt - 12 46.8 -52.8 -88.5 0.0663 1.42e-05 3.71 571 Tank compt - 13 48.7 -54.5 -89.7 0.0574 1.42e-05 2.85 574 Tank compt - 14 52.9 -52.3 -81 0.056 1.36e-05 9.96 584 Tank compt - 15 143 -0.63 -38 0.0529 1.42e-05 112 696 Tank compt - 16 142 6.3 -29.3 0.0529 0 11.1 707 Tank Rayl - 17 140 26.4 -3.25 0.047 0.000537 32.9 740 Tank compt - 18 253 36.7 -69.6 0.0447 0.000537 131 871 Tank compt - 19 251 35.3 -69.4 0.0437 1.42e-05 2.35 874 Tank compt - 20 167 32.8 -58.6 0.0383 1.36e-05 84.5 958 Tank compt - 21 209 0.136 -58.7 0.0349 1.42e-05 52.9 1.01e+03 Tank compt - 22 140 -28 -91.9 0.0349 0 81 1.09e+03 Tank Rayl - 23 110 -85.5 -135 0.0346 2.92e-05 78 1.17e+03 Tank compt - 24 77.1 -102 -150 0 0.000538 39.8 1.21e+03 Tank phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 50 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 77.1 -102 -150 0.0341 0 0 0 Tank initStep - 1 77.1 -102 -150 0.0323 0.00176 0.00174 0.00174 Tank msc - 2 77.1 -102 -150 0.0123 0.02 0.0159 0.0176 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 73, Parent ID = 72 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 77.1 -102 -150 2.37e-06 0 0 0 Tank initStep - 1 -3.21e+03 -2.16e+03 -5e+03 2.37e-06 0 6.21e+03 6.21e+03 expHall Transportation - 2 -3.21e+03 -2.16e+03 -5e+03 2.37e-06 0 0 6.21e+03 Tank Transportation - 3 -5e+03 -3.35e+03 -1.41e+03 2.37e-06 0 4.18e+03 1.04e+04 expHall Transportation - 4 -5e+03 -3.35e+03 -1.41e+03 2.37e-06 0 0 1.04e+04 Tank Transportation - 5 3.09e+03 -5e+03 3.14e+03 2.37e-06 0 9.43e+03 1.98e+04 expHall Transportation - 6 3.09e+03 -5e+03 3.14e+03 2.37e-06 0 0 1.98e+04 Tank Transportation - 7 5e+03 989 245 2.37e-06 0 6.92e+03 2.67e+04 expHall Transportation - 8 5e+03 989 245 2.37e-06 0 0 2.67e+04 Tank Transportation - 9 -259 5e+03 -4.3e+03 2.37e-06 0 8.03e+03 3.48e+04 expHall Transportation - 10 -259 5e+03 -4.3e+03 2.37e-06 0 0 3.48e+04 Tank Transportation - 11 -634 3.58e+03 -5e+03 2.37e-06 0 1.63e+03 3.64e+04 expHall Transportation - 12 -634 3.58e+03 -5e+03 2.37e-06 0 0 3.64e+04 Tank Transportation - 13 -2.45e+03 -688 -1.73e+03 2.37e-06 2.37e-06 5.67e+03 4.21e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 50 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 77.1 -102 -150 0.0123 0 0 0.0176 Tank initStep - 3 77.1 -102 -150 0.0119 0.000401 0.000285 0.0179 Tank msc - 4 77.1 -102 -150 0 0.0119 0.00336 0.0213 Tank eIoni - 5 77.1 -102 -150 0 0 0 0.0213 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 50 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 110 -85.5 -135 0.000272 0 0 0 Tank initStep - 1 110 -85.5 -135 0.000147 0.000126 7.61e-07 7.61e-07 Tank msc - 2 110 -85.5 -135 0 0.000147 5.7e-06 6.46e-06 Tank eIoni - 3 110 -85.5 -135 0 0 0 6.46e-06 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 50 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 209 0.136 -58.7 0.00332 0 0 0 Tank initStep - 1 209 0.136 -58.7 0.00322 0.000102 2.95e-05 2.95e-05 Tank msc - 2 209 0.136 -58.7 0 0.00322 0.000349 0.000379 Tank eIoni - 3 209 0.136 -58.7 0 0 0 0.000379 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 50 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 167 32.8 -58.6 0.00538 0 0 0 Tank initStep - 1 167 32.8 -58.6 0.00534 4.17e-05 6.72e-05 6.72e-05 Tank msc - 2 167 32.8 -58.6 0 0.00534 0.000828 0.000896 Tank eIoni - 3 167 32.8 -58.6 0 0 0 0.000896 Tank NoProcess + 7 131 -78.1 -28.5 0.0903 2.92e-05 80.4 418 Tank compt + 8 124 -85.8 -24.7 0.0902 1.42e-05 11 429 Tank compt + 9 113 -99.3 -19.7 0.0895 1.42e-05 18 447 Tank compt + 10 102 -107 -13.3 0.0743 1.36e-05 15 462 Tank compt + 11 47 -52.4 -84.8 0.071 1.36e-05 105 567 Tank compt + 12 46.8 -52.7 -88.5 0.0663 1.42e-05 3.71 571 Tank compt + 13 48.6 -54.5 -89.8 0.0574 1.42e-05 2.85 574 Tank compt + 14 52.8 -52.2 -81 0.056 1.36e-05 9.96 584 Tank compt + 15 143 -0.552 -38 0.0529 1.42e-05 112 696 Tank compt + 16 142 6.38 -29.3 0.0528 1.36e-05 11.1 707 Tank compt + 17 142 6.59 -29 0.0435 1.42e-05 0.371 708 Tank compt + 18 104 -36.2 -46.8 0 0.000538 60.2 768 Tank phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 68, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 251 35.3 -69.4 0.000984 0 0 0 Tank initStep - 1 251 35.3 -69.4 0.000984 0 4.07e-06 4.07e-06 Tank msc - 2 251 35.3 -69.4 0 0.000984 5.09e-05 5.49e-05 Tank eIoni - 3 251 35.3 -69.4 0 0 0 5.49e-05 Tank NoProcess + 0 104 -36.2 -46.8 0.0429 0 0 0 Tank initStep + 1 104 -36.2 -46.8 0.0421 0.000792 0.00261 0.00261 Tank msc + 2 104 -36.2 -46.8 0.0242 0.0179 0.0198 0.0224 Tank eIoni + 3 104 -36.2 -46.8 0.00415 0.0201 0.0116 0.034 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 69, Parent ID = 68 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 104 -36.2 -46.8 3.85e-06 0 0 0 Tank initStep + 1 -1.53e+03 5e+03 -3.57e+03 3.85e-06 0 6.36e+03 6.36e+03 expHall Transportation + 2 -6.22e+03 7.86e+03 -1e+04 3.85e-06 0 8.46e+03 1.48e+04 world Transportation + 3 -9.87e+03 1.01e+04 -1.5e+04 3.85e-06 0 6.58e+03 2.14e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 50 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 104 -36.2 -46.8 0.00415 0 0 0.034 Tank initStep + 4 104 -36.2 -46.8 0.00399 0.000163 4.3e-05 0.034 Tank msc + 5 104 -36.2 -46.8 0 0.00399 0.000501 0.0345 Tank eIoni + 6 104 -36.2 -46.8 0 0 0 0.0345 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 67, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 253 36.7 -69.6 0.00184 0 0 0 Tank initStep - 1 253 36.7 -69.6 0.00114 0.000699 1.1e-05 1.1e-05 Tank msc - 2 253 36.7 -69.6 0 0.00114 6.37e-05 7.47e-05 Tank eIoni - 3 253 36.7 -69.6 0 0 0 7.47e-05 Tank NoProcess + 0 142 6.59 -29 0.00927 0 0 0 Tank initStep + 1 142 6.59 -29 0.009 0.00027 0.000173 0.000173 Tank msc + 2 142 6.59 -29 0 0.009 0.00206 0.00223 Tank eIoni + 3 142 6.59 -29 0 0 0 0.00223 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 66, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 140 26.4 -3.25 0.00528 0 0 0 Tank initStep - 1 140 26.4 -3.25 0.00516 0.00012 6.5e-05 6.5e-05 Tank msc - 2 140 26.4 -3.25 0 0.00516 0.00078 0.000845 Tank eIoni - 3 140 26.4 -3.25 0 0 0 0.000845 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 74, Parent ID = 66 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 140 26.4 -3.25 2.44e-06 0 0 0 Tank initStep - 1 2.83e+03 5e+03 -3.59e+03 2.44e-06 0 6.69e+03 6.69e+03 expHall Transportation - 2 2.83e+03 5e+03 -3.59e+03 2.44e-06 0 0 6.69e+03 Tank Transportation - 3 4.46e+03 3.38e+03 -5e+03 2.44e-06 0 2.7e+03 9.39e+03 expHall Transportation - 4 4.46e+03 3.38e+03 -5e+03 2.44e-06 0 0 9.39e+03 Tank Transportation - 5 5e+03 3.1e+03 -3.99e+03 2.44e-06 0 1.17e+03 1.06e+04 expHall Transportation - 6 5e+03 3.1e+03 -3.99e+03 2.44e-06 0 0 1.06e+04 Tank Transportation - 7 -3.39e+03 2.65e+03 5e+03 2.44e-06 0 1.23e+04 2.29e+04 expHall Transportation - 8 -3.39e+03 2.65e+03 5e+03 2.44e-06 0 0 2.29e+04 Tank Transportation - 9 -5e+03 1.86e+03 1.54e+03 2.44e-06 0 3.9e+03 2.68e+04 expHall Transportation - 10 -5e+03 1.86e+03 1.54e+03 2.44e-06 0 0 2.68e+04 Tank Transportation - 11 3.28e+03 -276 -5e+03 2.44e-06 0 1.08e+04 3.75e+04 expHall Transportation - 12 3.28e+03 -276 -5e+03 2.44e-06 0 0 3.75e+04 Tank Transportation - 13 5e+03 -557 -4.7e+03 2.44e-06 0 1.77e+03 3.93e+04 expHall Transportation - 14 1e+04 -3e+03 -3.21e+03 2.44e-06 0 5.76e+03 4.51e+04 world Transportation - 15 1.5e+04 -5.45e+03 -1.72e+03 2.44e-06 0 5.76e+03 5.08e+04 OutOfWorld Transportation + 0 142 6.38 -29.3 9.44e-05 0 0 0 Tank initStep + 1 142 6.38 -29.3 0 9.44e-05 3.55e-07 3.55e-07 Tank msc + 2 142 6.38 -29.3 0 0 0 3.55e-07 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 65, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 143 -0.63 -38 0.00308 0 0 0 Tank initStep - 1 143 -0.63 -38 0.00299 9.02e-05 2.59e-05 2.59e-05 Tank msc - 2 143 -0.63 -38 0 0.00299 0.000308 0.000334 Tank eIoni - 3 143 -0.63 -38 0 0 0 0.000334 Tank NoProcess + 0 143 -0.552 -38 0.00308 0 0 0 Tank initStep + 1 143 -0.552 -38 0.00303 5.17e-05 2.59e-05 2.59e-05 Tank msc + 2 143 -0.552 -38 0 0.00303 0.000315 0.000341 Tank eIoni + 3 143 -0.552 -38 0 0 0 0.000341 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 64, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 52.9 -52.3 -81 0.00139 0 0 0 Tank initStep - 1 52.9 -52.3 -81 0.00101 0.000388 7.04e-06 7.04e-06 Tank msc - 2 52.9 -52.3 -81 0 0.00101 5.26e-05 5.97e-05 Tank eIoni - 3 52.9 -52.3 -81 0 0 0 5.97e-05 Tank NoProcess + 0 52.8 -52.2 -81 0.00139 0 0 0 Tank initStep + 1 52.8 -52.2 -81 0.00138 1.48e-05 7.04e-06 7.04e-06 Tank msc + 2 52.8 -52.2 -81 0 0.00138 8.65e-05 9.36e-05 Tank eIoni + 3 52.8 -52.2 -81 0 0 0 9.36e-05 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 63, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 48.7 -54.5 -89.7 0.00895 0 0 0 Tank initStep - 1 48.7 -54.5 -89.7 0.00877 0.000183 0.000163 0.000163 Tank msc - 2 48.7 -54.5 -89.7 0 0.00877 0.00197 0.00213 Tank eIoni - 3 48.7 -54.5 -89.7 0 0 0 0.00213 Tank NoProcess + 0 48.6 -54.5 -89.8 0.00895 0 0 0 Tank initStep + 1 48.6 -54.5 -89.8 0.00878 0.000169 0.000163 0.000163 Tank msc + 2 48.6 -54.5 -89.8 0 0.00878 0.00197 0.00214 Tank eIoni + 3 48.6 -54.5 -89.8 0 0 0 0.00214 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 70, Parent ID = 63 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48.6 -54.5 -89.8 3.92e-06 0 0 0 Tank initStep + 1 5e+03 -3.98e+03 -2.54e+03 3.92e-06 0 6.78e+03 6.78e+03 expHall Transportation + 2 5e+03 -3.98e+03 -2.54e+03 3.92e-06 0 0 6.78e+03 Tank Transportation + 3 4.33e+03 -5e+03 -3.21e+03 3.92e-06 0 1.39e+03 8.17e+03 expHall Transportation + 4 872 -7.67e+03 -1e+04 3.92e-06 0 8.07e+03 1.62e+04 world Transportation + 5 -1.68e+03 -9.64e+03 -1.5e+04 3.92e-06 0 5.95e+03 2.22e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 62, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 46.8 -52.8 -88.5 0.00464 0 0 0 Tank initStep - 1 46.8 -52.8 -88.5 0.0045 0.000138 5.21e-05 5.21e-05 Tank msc - 2 46.8 -52.8 -88.5 0 0.0045 0.000618 0.00067 Tank eIoni - 3 46.8 -52.8 -88.5 0 0 0 0.00067 Tank NoProcess + 0 46.8 -52.7 -88.5 0.00464 0 0 0 Tank initStep + 1 46.8 -52.7 -88.5 0.00451 0.000132 5.21e-05 5.21e-05 Tank msc + 2 46.8 -52.7 -88.5 0 0.00451 0.00062 0.000672 Tank eIoni + 3 46.8 -52.7 -88.5 0 0 0 0.000672 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 61, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 47.1 -52.5 -84.8 0.00331 0 0 0 Tank initStep - 1 47.1 -52.5 -84.8 0.0033 1.3e-05 2.93e-05 2.93e-05 Tank msc - 2 47.1 -52.5 -84.8 0 0.0033 0.000364 0.000393 Tank eIoni - 3 47.1 -52.5 -84.8 0 0 0 0.000393 Tank NoProcess + 0 47 -52.4 -84.8 0.00331 0 0 0 Tank initStep + 1 47 -52.4 -84.8 0.00328 3.49e-05 2.93e-05 2.93e-05 Tank msc + 2 47 -52.4 -84.8 0 0.00328 0.00036 0.000389 Tank eIoni + 3 47 -52.4 -84.8 0 0 0 0.000389 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 60, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 102 -107 -13.2 0.0151 0 0 0 Tank initStep - 1 102 -107 -13.2 0.0147 0.00043 0.000412 0.000412 Tank msc - 2 102 -107 -13.2 0 0.0147 0.00489 0.00531 Tank eIoni - 3 102 -107 -13.2 0 0 0 0.00531 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 75, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 102 -107 -13.2 2.46e-06 0 0 0 Tank initStep - 1 5e+03 1.4e+03 -3.43e+03 2.46e-06 0 6.16e+03 6.16e+03 expHall Transportation - 2 8.9e+03 4.32e+03 -1e+04 2.46e-06 0 8.19e+03 1.43e+04 world Transportation - 3 1.19e+04 6.55e+03 -1.5e+04 2.46e-06 0 6.23e+03 2.06e+04 OutOfWorld Transportation + 0 102 -107 -13.3 0.0151 0 0 0 Tank initStep + 1 102 -107 -13.3 0.015 0.000181 0.000412 0.000412 Tank msc + 2 102 -107 -13.3 0 0.015 0.00504 0.00545 Tank eIoni + 3 102 -107 -13.3 0 0 0 0.00545 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 59, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 113 -99.4 -19.7 0.000751 0 0 0 Tank initStep - 1 113 -99.4 -19.7 0.0006 0.000151 2.71e-06 2.71e-06 Tank msc - 2 113 -99.4 -19.7 0 0.0006 2.46e-05 2.73e-05 Tank eIoni - 3 113 -99.4 -19.7 0 0 0 2.73e-05 Tank NoProcess + 0 113 -99.3 -19.7 0.000751 0 0 0 Tank initStep + 1 113 -99.3 -19.7 0.000677 7.39e-05 2.71e-06 2.71e-06 Tank msc + 2 113 -99.3 -19.7 0 0.000677 2.92e-05 3.19e-05 Tank eIoni + 3 113 -99.3 -19.7 0 0 0 3.19e-05 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 58, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 124 -85.9 -24.7 8.4e-06 0 0 0 Tank initStep - 1 124 -85.9 -24.7 0 8.4e-06 1.32e-06 1.32e-06 Tank eIoni - 2 124 -85.9 -24.7 0 0 0 1.32e-06 Tank NoProcess + 0 124 -85.8 -24.7 8.4e-06 0 0 0 Tank initStep + 1 124 -85.8 -24.7 0 8.4e-06 1.32e-06 1.32e-06 Tank eIoni + 2 124 -85.8 -24.7 0 0 0 1.32e-06 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 57, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 131 -78.2 -28.5 0.0185 0 0 0 Tank initStep - 1 131 -78.2 -28.5 0.00908 0.00947 0.00059 0.00059 Tank msc - 2 131 -78.2 -28.5 0 0.00908 0.00209 0.00268 Tank eIoni - 3 131 -78.2 -28.5 0 0 0 0.00268 Tank NoProcess + 0 131 -78.1 -28.5 0.0185 0 0 0 Tank initStep + 1 131 -78.1 -28.5 0.0179 0.000607 0.00059 0.00059 Tank msc + 2 131 -78.1 -28.5 0 0.0179 0.00695 0.00754 Tank eIoni + 3 131 -78.1 -28.5 0 0 0 0.00754 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 56, Parent ID = 50 @@ -2195,38 +2124,38 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 129 -109 -103 0.0356 0 0 0 Tank initStep - 1 129 -109 -103 0.0347 0.000938 0.00188 0.00188 Tank msc - 2 129 -109 -103 0.0207 0.0139 0.0169 0.0188 Tank eIoni + 1 129 -109 -103 0.0339 0.0017 0.00188 0.00188 Tank msc + 2 129 -109 -103 0.0138 0.0202 0.0166 0.0185 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 77, Parent ID = 56 +* G4Track Information: Particle = opticalphoton, Track ID = 71, Parent ID = 56 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 129 -109 -103 3.38e-06 0 0 0 Tank initStep - 1 -1.15e+03 -260 2.16e+03 3.38e-06 3.38e-06 2.61e+03 2.61e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 76, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 129 -109 -103 3.67e-06 0 0 0 Tank initStep - 1 -5e+03 1.13e+03 2.96e+03 3.67e-06 0 6.1e+03 6.1e+03 expHall Transportation - 2 -5e+03 1.13e+03 2.96e+03 3.67e-06 0 0 6.1e+03 Tank Transportation - 3 -4.45e+03 2.06e+03 5e+03 3.67e-06 0 2.31e+03 8.41e+03 expHall Transportation - 4 -852 7.16e+03 1e+04 3.67e-06 0 8e+03 1.64e+04 world Transportation - 5 2.75e+03 1.23e+04 1.5e+04 3.67e-06 0 8e+03 2.44e+04 OutOfWorld Transportation + 0 129 -109 -103 2.09e-06 0 0 0 Tank initStep + 1 2.91e+03 -5e+03 -1.11e+03 2.09e-06 0 5.71e+03 5.71e+03 expHall Transportation + 2 2.91e+03 -5e+03 -1.11e+03 2.09e-06 0 0 5.71e+03 Tank Transportation + 3 5e+03 -4.55e+03 -3.21e+03 2.09e-06 0 3e+03 8.71e+03 expHall Transportation + 4 5e+03 -4.55e+03 -3.21e+03 2.09e-06 0 0 8.71e+03 Tank Transportation + 5 4.95e+03 -4.53e+03 -3.28e+03 2.09e-06 2.09e-06 81.2 8.8e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 56, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 129 -109 -103 0.0207 0 0 0.0188 Tank initStep - 3 129 -109 -103 0.0202 0.000534 0.00072 0.0195 Tank msc - 4 129 -109 -103 0 0.0202 0.00859 0.0281 Tank eIoni - 5 129 -109 -103 0 0 0 0.0281 Tank NoProcess + 2 129 -109 -103 0.0138 0 0 0.0185 Tank initStep + 3 129 -109 -103 0.0132 0.000565 0.000348 0.0188 Tank msc + 4 129 -109 -103 0 0.0132 0.00404 0.0228 Tank eIoni + 5 129 -109 -103 0 0 0 0.0228 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 72, Parent ID = 56 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 129 -109 -103 3.14e-06 0 0 0 Tank initStep + 1 88.2 -3.36e+03 2.48e+03 3.14e-06 3.14e-06 4.15e+03 4.15e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 55, Parent ID = 50 @@ -2234,9 +2163,9 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 74.8 35.8 -120 0.00384 0 0 0 Tank initStep - 1 74.8 35.8 -120 0.00358 0.000261 3.76e-05 3.76e-05 Tank msc - 2 74.8 35.8 -120 0 0.00358 0.000417 0.000454 Tank eIoni - 3 74.8 35.8 -120 0 0 0 0.000454 Tank NoProcess + 1 74.8 35.8 -120 0.00384 0 3.76e-05 3.76e-05 Tank msc + 2 74.8 35.8 -120 0 0.00384 0.00047 0.000507 Tank eIoni + 3 74.8 35.8 -120 0 0 0 0.000507 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 54, Parent ID = 50 @@ -2244,147 +2173,105 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 69.7 48.6 -129 0.177 0 0 0 Tank initStep - 1 69.7 48.6 -129 0.172 0.00484 0.0292 0.0292 Tank msc - 2 69.7 48.7 -129 0.152 0.0203 0.0855 0.115 Tank eIoni - 3 69.7 48.7 -129 0.125 0.0264 0.0725 0.187 Tank eIoni - 4 69.7 48.8 -129 0.102 0.0237 0.0569 0.244 Tank eIoni - 5 69.6 48.8 -129 0.0841 0.0174 0.0445 0.289 Tank eIoni + 1 69.7 48.6 -129 0.17 0.00648 0.0292 0.0292 Tank msc + 2 69.7 48.7 -129 0.13 0.0401 0.0844 0.114 Tank eIoni + 3 69.7 48.7 -129 0.113 0.0171 0.0598 0.173 Tank eIoni + 4 69.8 48.7 -129 0.0961 0.017 0.0504 0.224 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 79, Parent ID = 54 +* G4Track Information: Particle = opticalphoton, Track ID = 74, Parent ID = 54 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 69.7 48.8 -129 3.58e-06 0 0 0 Tank initStep - 1 -3.33e+03 2.83e+03 2.82e+03 3.58e-06 0 5.29e+03 5.29e+03 Tank OpRayleigh - 2 -3.05e+03 -2.69e+03 -5e+03 3.58e-06 0 9.57e+03 1.49e+04 expHall Transportation - 3 -733 -6.77e+03 -1e+04 3.58e-06 0 6.86e+03 2.17e+04 world Transportation - 4 1.59e+03 -1.09e+04 -1.5e+04 3.58e-06 0 6.86e+03 2.86e+04 OutOfWorld Transportation + 0 69.8 48.7 -129 4.11e-06 0 0 0 Tank initStep + 1 -1.41e+03 637 -4.37e+03 4.11e-06 4.11e-06 4.53e+03 4.53e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 78, Parent ID = 54 +* G4Track Information: Particle = opticalphoton, Track ID = 73, Parent ID = 54 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 69.6 48.8 -129 3.32e-06 0 0 0 Tank initStep - 1 -4.73e+03 -5e+03 3.22e+03 3.32e-06 0 7.73e+03 7.73e+03 expHall Transportation - 2 -4.73e+03 -5e+03 3.22e+03 3.32e-06 0 0 7.73e+03 Tank Transportation - 3 -4.81e+03 -2.91e+03 5e+03 3.32e-06 0 2.75e+03 1.05e+04 expHall Transportation - 4 -4.81e+03 -2.91e+03 5e+03 3.32e-06 0 0 1.05e+04 Tank Transportation - 5 -2.81e+03 2.03e+03 -5e+03 3.32e-06 0 1.13e+04 2.18e+04 expHall Transportation - 6 -992 6.25e+03 -1e+04 3.32e-06 0 6.79e+03 2.86e+04 world Transportation - 7 823 1.05e+04 -1.5e+04 3.32e-06 0 6.79e+03 3.54e+04 OutOfWorld Transportation + 0 69.8 48.7 -129 3.48e-06 0 0 0 Tank initStep + 1 -814 -4.01e+03 -5e+03 3.48e-06 0 6.4e+03 6.4e+03 expHall Transportation + 2 -814 -4.01e+03 -5e+03 3.48e-06 0 0 6.4e+03 Tank Transportation + 3 -1.64e+03 -5e+03 -3.82e+03 3.48e-06 0 1.75e+03 8.15e+03 expHall Transportation + 4 -1.64e+03 -5e+03 -3.82e+03 3.48e-06 0 0 8.15e+03 Tank Transportation + 5 -2.45e+03 -3.49e+03 -1.87e+03 3.48e-06 3.48e-06 2.59e+03 1.07e+04 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 54, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 69.6 48.8 -129 0.0841 0 0 0.289 Tank initStep - 6 69.6 48.8 -129 0.0764 0.00771 0.00841 0.297 Tank msc + 4 69.8 48.7 -129 0.0961 0 0 0.224 Tank initStep + 5 69.8 48.7 -129 0.0943 0.00178 0.0106 0.234 Tank msc + 6 69.8 48.7 -129 0.0805 0.0138 0.041 0.275 Tank eIoni + 7 69.8 48.7 -129 0.0642 0.0163 0.0347 0.31 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 81, Parent ID = 54 +* G4Track Information: Particle = opticalphoton, Track ID = 75, Parent ID = 54 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 69.6 48.8 -129 3.69e-06 0 0 0 Tank initStep - 1 -4.36e+03 -5e+03 750 3.69e-06 0 6.78e+03 6.78e+03 expHall Transportation - 2 -4.36e+03 -5e+03 750 3.69e-06 0 0 6.78e+03 Tank Transportation - 3 -5e+03 -4.62e+03 1.28e+03 3.69e-06 0 907 7.68e+03 expHall Transportation - 4 -5e+03 -4.62e+03 1.28e+03 3.69e-06 0 0 7.68e+03 Tank Transportation - 5 -2.6e+03 -1.34e+03 5e+03 3.69e-06 0 5.51e+03 1.32e+04 expHall Transportation - 6 -2.6e+03 -1.34e+03 5e+03 3.69e-06 0 0 1.32e+04 Tank Transportation - 7 759 1.24e+03 -5e+03 3.69e-06 0 1.09e+04 2.41e+04 expHall Transportation - 8 2.75e+03 4.02e+03 -1e+04 3.69e-06 0 6.06e+03 3.01e+04 world Transportation - 9 4.74e+03 6.8e+03 -1.5e+04 3.69e-06 0 6.06e+03 3.62e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 80, Parent ID = 54 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 69.6 48.8 -129 3.18e-06 0 0 0 Tank initStep - 1 -5e+03 1.05e+03 2.38e+03 3.18e-06 0 5.74e+03 5.74e+03 expHall Transportation - 2 -5e+03 1.05e+03 2.38e+03 3.18e-06 0 0 5.74e+03 Tank Transportation - 3 -2.98e+03 3.05e+03 5e+03 3.18e-06 0 3.86e+03 9.61e+03 expHall Transportation - 4 -2.98e+03 3.05e+03 5e+03 3.18e-06 0 0 9.61e+03 Tank Transportation - 5 -1.82e+03 5e+03 2.2e+03 3.18e-06 0 3.61e+03 1.32e+04 expHall Transportation - 6 -1.82e+03 5e+03 2.2e+03 3.18e-06 0 0 1.32e+04 Tank Transportation - 7 1.09e+03 -1.28e+03 -5e+03 3.18e-06 0 9.98e+03 2.32e+04 expHall Transportation - 8 1.09e+03 -1.28e+03 -5e+03 3.18e-06 0 0 2.32e+04 Tank Transportation - 9 5e+03 -3.2e+03 -1.78e+03 3.18e-06 0 5.42e+03 2.86e+04 expHall Transportation - 10 5e+03 -3.2e+03 -1.78e+03 3.18e-06 0 0 2.86e+04 Tank Transportation - 11 2.25e+03 -5e+03 7.71 3.18e-06 0 3.74e+03 3.24e+04 expHall Transportation - 12 2.25e+03 -5e+03 7.71 3.18e-06 0 0 3.24e+04 Tank Transportation - 13 -1.61e+03 2.41e+03 5e+03 3.18e-06 0 9.73e+03 4.21e+04 expHall Transportation - 14 -1.61e+03 2.41e+03 5e+03 3.18e-06 0 0 4.21e+04 Tank Transportation - 15 -1.88e+03 5e+03 803 3.18e-06 0 4.94e+03 4.7e+04 expHall Transportation - 16 -1.88e+03 5e+03 803 3.18e-06 0 0 4.7e+04 Tank Transportation - 17 -3.31e+03 3.64e+03 5e+03 3.18e-06 0 4.64e+03 5.17e+04 expHall Transportation - 18 -7.8e+03 352 1e+04 3.18e-06 0 7.48e+03 5.92e+04 world Transportation - 19 -1.23e+04 -2.94e+03 1.5e+04 3.18e-06 0 7.48e+03 6.66e+04 OutOfWorld Transportation + 0 69.8 48.7 -129 3.4e-06 0 0 0 Tank initStep + 1 -5e+03 1.45e+03 -7.79 3.4e-06 0 5.26e+03 5.26e+03 expHall Transportation + 2 -1e+04 2.97e+03 -762 3.4e-06 0 5.28e+03 1.05e+04 world Transportation + 3 -1.5e+04 4.5e+03 -1.52e+03 3.4e-06 0 5.28e+03 1.58e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 54, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 69.6 48.8 -129 0.0764 0 0 0.297 Tank initStep - 7 69.6 48.8 -129 0.0749 0.00152 0.00713 0.304 Tank msc - 8 69.6 48.8 -129 0.0544 0.0204 0.0323 0.336 Tank eIoni - 9 69.6 48.8 -129 0.037 0.0175 0.0243 0.361 Tank eIoni + 7 69.8 48.7 -129 0.0642 0 0 0.31 Tank initStep + 8 69.8 48.7 -129 0.0607 0.00355 0.00528 0.315 Tank msc + 9 69.8 48.8 -129 0.0423 0.0184 0.0266 0.342 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 82, Parent ID = 54 +* G4Track Information: Particle = opticalphoton, Track ID = 77, Parent ID = 54 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 69.6 48.8 -129 2.32e-06 0 0 0 Tank initStep - 1 -3.47e+03 -1.25e+03 5e+03 2.32e-06 0 6.37e+03 6.37e+03 expHall Transportation - 2 -1e+04 -1.91e+03 7.9e+03 2.32e-06 0 7.18e+03 1.35e+04 world Transportation - 3 -1.5e+04 -2.42e+03 1.01e+04 2.32e-06 0 5.49e+03 1.9e+04 OutOfWorld Transportation + 0 69.8 48.7 -129 3.45e-06 0 0 0 Tank initStep + 1 4.14e+03 -574 -5e+03 3.45e-06 0 6.38e+03 6.38e+03 expHall Transportation + 2 4.14e+03 -574 -5e+03 3.45e-06 0 0 6.38e+03 Tank Transportation + 3 5e+03 -416 -3.75e+03 3.45e-06 0 1.53e+03 7.91e+03 expHall Transportation + 4 5e+03 -416 -3.75e+03 3.45e-06 0 0 7.91e+03 Tank Transportation + 5 4.59e+03 -231 -2.84e+03 3.45e-06 0 1.01e+03 8.91e+03 Tank OpRayleigh + 6 3.71e+03 617 -5e+03 3.45e-06 0 2.48e+03 1.14e+04 expHall Transportation + 7 3.71e+03 617 -5e+03 3.45e-06 0 0 1.14e+04 Tank Transportation + 8 1.25e+03 5e+03 -1.62e+03 3.45e-06 0 6.05e+03 1.74e+04 expHall Transportation + 9 1.25e+03 5e+03 -1.62e+03 3.45e-06 0 0 1.74e+04 Tank Transportation + 10 -1.36e+03 -1.23e+03 5e+03 3.45e-06 0 9.46e+03 2.69e+04 expHall Transportation + 11 -1.36e+03 -1.23e+03 5e+03 3.45e-06 0 0 2.69e+04 Tank Transportation + 12 -2.53e+03 -5e+03 1.96e+03 3.45e-06 0 4.98e+03 3.19e+04 expHall Transportation + 13 -2.53e+03 -5e+03 1.96e+03 3.45e-06 0 0 3.19e+04 Tank Transportation + 14 -5e+03 2.01e+03 -4.33e+03 3.45e-06 0 9.73e+03 4.16e+04 expHall Transportation + 15 -5e+03 2.01e+03 -4.33e+03 3.45e-06 0 0 4.16e+04 Tank Transportation + 16 -4.78e+03 2.72e+03 -5e+03 3.45e-06 0 1e+03 4.26e+04 expHall Transportation + 17 -4.78e+03 2.72e+03 -5e+03 3.45e-06 0 0 4.26e+04 Tank Transportation + 18 -4.15e+03 5e+03 -4.4e+03 3.45e-06 0 2.44e+03 4.51e+04 expHall Transportation + 19 -2.21e+03 1e+04 -2.02e+03 3.45e-06 0 5.87e+03 5.09e+04 world Transportation + 20 -261 1.5e+04 357 3.45e-06 0 5.87e+03 5.68e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 76, Parent ID = 54 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 69.8 48.7 -129 3.71e-06 0 0 0 Tank initStep + 1 -231 387 -507 3.71e-06 3.71e-06 590 590 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 54, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 9 69.6 48.8 -129 0.037 0 0 0.361 Tank initStep - 10 69.6 48.8 -129 0.0349 0.00203 0.002 0.363 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 83, Parent ID = 54 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 69.6 48.8 -129 2.5e-06 0 0 0 Tank initStep - 1 4.58e+03 -240 5e+03 2.5e-06 0 6.84e+03 6.84e+03 expHall Transportation - 2 1e+04 -1.71e+03 6.96e+03 2.5e-06 0 5.95e+03 1.28e+04 world Transportation - 3 1.5e+04 -3.07e+03 8.78e+03 2.5e-06 0 5.49e+03 1.83e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 50 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 10 69.6 48.8 -129 0.0349 0 0 0.363 Tank initStep - 11 69.6 48.8 -129 0.0278 0.00715 0.00181 0.364 Tank msc - 12 69.6 48.8 -129 0.013 0.0148 0.0137 0.378 Tank eIoni - 13 69.6 48.8 -129 0 0.013 0.00391 0.382 Tank eIoni - 14 69.6 48.8 -129 0 0 0 0.382 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 84, Parent ID = 54 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 69.6 48.8 -129 3.21e-06 0 0 0 Tank initStep - 1 3.1e+03 -5e+03 -4.1e+03 3.21e-06 0 7.11e+03 7.11e+03 expHall Transportation - 2 3.1e+03 -5e+03 -4.1e+03 3.21e-06 0 0 7.11e+03 Tank Transportation - 3 3.5e+03 -4.73e+03 -5e+03 3.21e-06 0 1.01e+03 8.12e+03 expHall Transportation - 4 8.14e+03 -2.96e+03 -1e+04 3.21e-06 0 7.05e+03 1.52e+04 world Transportation - 5 1.28e+04 -1.19e+03 -1.5e+04 3.21e-06 0 7.05e+03 2.22e+04 OutOfWorld Transportation + 9 69.8 48.8 -129 0.0423 0 0 0.342 Tank initStep + 10 69.8 48.8 -129 0.0403 0.00199 0.00254 0.344 Tank msc + 11 69.9 48.7 -129 0.0194 0.0208 0.0191 0.363 Tank eIoni + 12 69.8 48.7 -129 0 0.0194 0.00802 0.371 Tank eIoni + 13 69.8 48.7 -129 0 0 0 0.371 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 53, Parent ID = 50 @@ -2392,10 +2279,38 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 68.8 44.9 -124 0.024 0 0 0 Tank initStep - 1 68.8 44.9 -124 0.0228 0.0012 0.000932 0.000932 Tank msc - 2 68.8 44.9 -124 0.00377 0.019 0.0106 0.0115 Tank eIoni - 3 68.8 44.9 -124 0 0.00377 0.000455 0.012 Tank eIoni - 4 68.8 44.9 -124 0 0 0 0.012 Tank NoProcess + 1 68.8 44.9 -124 0.0234 0.000556 0.000932 0.000932 Tank msc + 2 68.8 44.9 -124 0.00619 0.0173 0.0111 0.012 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 78, Parent ID = 53 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 68.8 44.9 -124 2.97e-06 0 0 0 Tank initStep + 1 -3.31e+03 -5e+03 -0.122 2.97e-06 0 6.07e+03 6.07e+03 expHall Transportation + 2 -3.31e+03 -5e+03 -0.122 2.97e-06 0 0 6.07e+03 Tank Transportation + 3 -5e+03 801 -1.42e+03 2.97e-06 0 6.21e+03 1.23e+04 expHall Transportation + 4 -5e+03 801 -1.42e+03 2.97e-06 0 0 1.23e+04 Tank Transportation + 5 -376 5e+03 -3.1e+03 2.97e-06 0 6.47e+03 1.87e+04 expHall Transportation + 6 -376 5e+03 -3.1e+03 2.97e-06 0 0 1.87e+04 Tank Transportation + 7 5e+03 -1.58e+03 -4.06e+03 2.97e-06 0 8.55e+03 2.73e+04 expHall Transportation + 8 5e+03 -1.58e+03 -4.06e+03 2.97e-06 0 0 2.73e+04 Tank Transportation + 9 3.37e+03 -4.16e+03 -5e+03 2.97e-06 0 3.2e+03 3.05e+04 expHall Transportation + 10 3.37e+03 -4.16e+03 -5e+03 2.97e-06 0 0 3.05e+04 Tank Transportation + 11 2.98e+03 -5e+03 -4.18e+03 2.97e-06 0 1.24e+03 3.17e+04 expHall Transportation + 12 -1e+04 -6.41e+03 8.15e+03 2.97e-06 0 1.8e+04 4.97e+04 world Transportation + 13 -1.5e+04 -6.95e+03 1.29e+04 2.97e-06 0 6.92e+03 5.66e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 50 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 68.8 44.9 -124 0.00619 0 0 0.012 Tank initStep + 3 68.8 44.9 -124 0.00614 4.98e-05 8.56e-05 0.0121 Tank msc + 4 68.8 44.9 -124 0 0.00614 0.00106 0.0132 Tank eIoni + 5 68.8 44.9 -124 0 0 0 0.0132 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 52, Parent ID = 50 @@ -2403,72 +2318,92 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 32.1 28.4 -21.7 0.105 0 0 0 Tank initStep - 1 32.1 28.4 -21.7 0.101 0.00449 0.0123 0.0123 Tank msc + 1 32.1 28.4 -21.7 0.103 0.00166 0.0123 0.0123 Tank msc + 2 32.2 28.4 -21.7 0.0871 0.0164 0.0454 0.0577 Tank eIoni + 3 32.2 28.4 -21.7 0.0758 0.0112 0.0376 0.0953 Tank eIoni + 4 32.2 28.4 -21.7 0.0515 0.0243 0.0327 0.128 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 85, Parent ID = 52 +* G4Track Information: Particle = opticalphoton, Track ID = 80, Parent ID = 52 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 32.1 28.4 -21.7 3.97e-06 0 0 0 Tank initStep - 1 -5e+03 1.91e+03 2.48e+03 3.97e-06 0 5.93e+03 5.93e+03 expHall Transportation - 2 -1e+04 3.67e+03 6.09e+03 3.97e-06 0 6.41e+03 1.23e+04 world Transportation - 3 -1.5e+04 5.44e+03 9.69e+03 3.97e-06 0 6.41e+03 1.88e+04 OutOfWorld Transportation + 0 32.2 28.4 -21.7 3.87e-06 0 0 0 Tank initStep + 1 923 5e+03 -1.48e+03 3.87e-06 0 5.26e+03 5.26e+03 expHall Transportation + 2 3.56e+03 1e+04 -6.49e+03 3.87e-06 0 7.55e+03 1.28e+04 world Transportation + 3 6.2e+03 1.5e+04 -1.15e+04 3.87e-06 0 7.55e+03 2.04e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 79, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 32.2 28.4 -21.7 2.63e-06 0 0 0 Tank initStep + 1 -2.91e+03 -2.3e+03 -5e+03 2.63e-06 0 6.23e+03 6.23e+03 expHall Transportation + 2 -6.89e+03 -4.11e+03 -1e+04 2.63e-06 0 6.64e+03 1.29e+04 world Transportation + 3 -1.09e+04 -5.92e+03 -1.5e+04 2.63e-06 0 6.64e+03 1.95e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 52, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 32.1 28.4 -21.7 0.101 0 0 0.0123 Tank initStep - 2 32.1 28.4 -21.7 0.0896 0.0111 0.0114 0.0237 Tank msc - 3 32.2 28.4 -21.7 0.0757 0.0139 0.0387 0.0625 Tank eIoni - 4 32.2 28.4 -21.7 0.063 0.0126 0.0326 0.0951 Tank eIoni + 4 32.2 28.4 -21.7 0.0515 0 0 0.128 Tank initStep + 5 32.2 28.4 -21.7 0.0486 0.00294 0.0036 0.132 Tank msc ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 86, Parent ID = 52 +* G4Track Information: Particle = opticalphoton, Track ID = 82, Parent ID = 52 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 32.2 28.4 -21.7 4.05e-06 0 0 0 Tank initStep - 1 -797 -1.77e+03 -3.46e+03 4.05e-06 4.05e-06 3.97e+03 3.97e+03 Tank OpAbsorption + 0 32.2 28.4 -21.7 3.5e-06 0 0 0 Tank initStep + 1 -856 2.41e+03 5e+03 3.5e-06 0 5.63e+03 5.63e+03 expHall Transportation + 2 -2.3e+03 4.95e+03 1e+04 3.5e-06 0 5.79e+03 1.14e+04 world Transportation + 3 -3.74e+03 7.49e+03 1.5e+04 3.5e-06 0 5.79e+03 1.72e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 81, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 32.2 28.4 -21.7 3.39e-06 0 0 0 Tank initStep + 1 805 1.76e+03 -296 3.39e-06 3.39e-06 1.92e+03 1.92e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 52, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 32.2 28.4 -21.7 0.063 0 0 0.0951 Tank initStep - 5 32.2 28.4 -21.7 0.061 0.00204 0.00511 0.1 Tank msc - 6 32.2 28.4 -21.7 0.0171 0.0439 0.0267 0.127 Tank eIoni + 5 32.2 28.4 -21.7 0.0486 0 0 0.132 Tank initStep + 6 32.2 28.4 -21.7 0.0464 0.00221 0.00324 0.135 Tank msc + 7 32.2 28.5 -21.7 0.0336 0.0128 0.0213 0.156 Tank eIoni + 8 32.2 28.5 -21.7 0.0168 0.0168 0.0165 0.173 Tank eIoni + 9 32.2 28.5 -21.7 0 0.0168 0.0062 0.179 Tank eIoni + 10 32.2 28.5 -21.7 0 0 0 0.179 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 87, Parent ID = 52 +* G4Track Information: Particle = opticalphoton, Track ID = 84, Parent ID = 52 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 32.2 28.4 -21.7 3.71e-06 0 0 0 Tank initStep - 1 -2.05e+03 -2.26e+03 -5e+03 3.71e-06 0 5.86e+03 5.86e+03 expHall Transportation - 2 -2.05e+03 -2.26e+03 -5e+03 3.71e-06 0 0 5.86e+03 Tank Transportation - 3 -2.98e+03 -4.02e+03 -2.89e+03 3.71e-06 3.71e-06 2.9e+03 8.76e+03 Tank OpAbsorption + 0 32.2 28.5 -21.7 2.48e-06 0 0 0 Tank initStep + 1 5e+03 397 -2.21e+03 2.48e-06 0 5.44e+03 5.44e+03 expHall Transportation + 2 5e+03 397 -2.21e+03 2.48e-06 0 0 5.44e+03 Tank Transportation + 3 2.42e+03 3.41e+03 -5e+03 2.48e-06 0 4.85e+03 1.03e+04 expHall Transportation + 4 2.42e+03 3.41e+03 -5e+03 2.48e-06 0 0 1.03e+04 Tank Transportation + 5 1.57e+03 5e+03 -2.12e+03 2.48e-06 0 3.39e+03 1.37e+04 expHall Transportation + 6 1.57e+03 5e+03 -2.12e+03 2.48e-06 0 0 1.37e+04 Tank Transportation + 7 2.25e+03 -2.54e+03 2.03e+03 2.48e-06 2.48e-06 8.64e+03 2.23e+04 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 50 +* G4Track Information: Particle = opticalphoton, Track ID = 83, Parent ID = 52 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 32.2 28.4 -21.7 0.0171 0 0 0.127 Tank initStep - 7 32.2 28.4 -21.7 0.0163 0.000722 0.00051 0.127 Tank msc - 8 32.2 28.4 -21.7 0 0.0163 0.0059 0.133 Tank eIoni - 9 32.2 28.4 -21.7 0 0 0 0.133 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 88, Parent ID = 52 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 32.2 28.4 -21.7 3.4e-06 0 0 0 Tank initStep - 1 -1.58e+03 -3.17e+03 -2.4e+03 3.4e-06 3.4e-06 4.3e+03 4.3e+03 Tank OpAbsorption + 0 32.2 28.5 -21.7 3.85e-06 0 0 0 Tank initStep + 1 -149 1.62e+03 -5e+03 3.85e-06 0 5.23e+03 5.23e+03 expHall Transportation + 2 -100 4.32e+03 -1e+04 3.85e-06 0 5.68e+03 1.09e+04 world Transportation + 3 -51.7 7.01e+03 -1.5e+04 3.85e-06 0 5.68e+03 1.66e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 51, Parent ID = 50 @@ -2476,62 +2411,12 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 5.26 5.96 -8.35 0.0561 0 0 0 Tank initStep - 1 5.26 5.96 -8.35 0.0531 0.00306 0.00418 0.00418 Tank msc - 2 5.25 5.97 -8.37 0.0362 0.0169 0.0238 0.028 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 89, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.26 5.97 -8.36 2.56e-06 0 0 0 Tank initStep - 1 2.65e+03 1.83e+03 5e+03 2.56e-06 0 5.95e+03 5.95e+03 expHall Transportation - 2 7.53e+03 4.68e+03 1e+04 2.56e-06 0 7.54e+03 1.35e+04 world Transportation - 3 1.24e+04 7.52e+03 1.5e+04 2.56e-06 0 7.54e+03 2.1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 50 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 5.25 5.97 -8.37 0.0362 0 0 0.028 Tank initStep - 3 5.26 5.97 -8.37 0.0339 0.00225 0.00193 0.0299 Tank msc - 4 5.26 5.98 -8.37 0.0157 0.0183 0.0166 0.0465 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 90, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.26 5.98 -8.37 3.81e-06 0 0 0 Tank initStep - 1 5e+03 -3.25e+03 -1.51e+03 3.81e-06 0 6.15e+03 6.15e+03 expHall Transportation - 2 5e+03 -3.25e+03 -1.51e+03 3.81e-06 0 0 6.15e+03 Tank Transportation - 3 2.72e+03 -5e+03 -2.3e+03 3.81e-06 0 2.98e+03 9.13e+03 expHall Transportation - 4 2.72e+03 -5e+03 -2.3e+03 3.81e-06 0 0 9.13e+03 Tank Transportation - 5 251 -1.58e+03 -5e+03 3.81e-06 0 5.01e+03 1.41e+04 expHall Transportation - 6 251 -1.58e+03 -5e+03 3.81e-06 0 0 1.41e+04 Tank Transportation - 7 -5e+03 3.83e+03 2.61e+03 3.81e-06 0 1.07e+04 2.48e+04 expHall Transportation - 8 -5e+03 3.83e+03 2.61e+03 3.81e-06 0 0 2.48e+04 Tank Transportation - 9 -3.83e+03 5e+03 4.81e+03 3.81e-06 0 2.75e+03 2.76e+04 expHall Transportation - 10 -3.83e+03 5e+03 4.81e+03 3.81e-06 0 0 2.76e+04 Tank Transportation - 11 -3.78e+03 4.96e+03 5e+03 3.81e-06 0 202 2.78e+04 expHall Transportation - 12 -3.78e+03 4.96e+03 5e+03 3.81e-06 0 0 2.78e+04 Tank Transportation - 13 -3.68e+03 5e+03 4.9e+03 3.81e-06 0 148 2.8e+04 expHall Transportation - 14 -3.68e+03 5e+03 4.9e+03 3.81e-06 0 0 2.8e+04 Tank Transportation - 15 -1.05e+03 940 2.37e+03 3.81e-06 0 5.46e+03 3.34e+04 Tank OpRayleigh - 16 -2.03e+03 -4.19e+03 5e+03 3.81e-06 0 5.85e+03 3.93e+04 expHall Transportation - 17 -2.03e+03 -4.19e+03 5e+03 3.81e-06 0 0 3.93e+04 Tank Transportation - 18 -644 -4.61e+03 2.73e+03 3.81e-06 3.81e-06 2.7e+03 4.2e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 50 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 5.26 5.98 -8.37 0.0157 0 0 0.0465 Tank initStep - 5 5.26 5.98 -8.37 0.0153 0.000399 0.000438 0.0469 Tank msc - 6 5.26 5.98 -8.37 0 0.0153 0.00523 0.0521 Tank eIoni - 7 5.26 5.98 -8.37 0 0 0 0.0521 Tank NoProcess + 1 5.26 5.96 -8.35 0.0545 0.00164 0.00418 0.00418 Tank msc + 2 5.24 5.95 -8.36 0.0414 0.0132 0.0243 0.0285 Tank eIoni + 3 5.24 5.95 -8.37 0.0265 0.0148 0.0195 0.048 Tank eIoni + 4 5.24 5.94 -8.38 0.0123 0.0142 0.013 0.061 Tank eIoni + 5 5.24 5.94 -8.38 0 0.0123 0.00357 0.0646 Tank eIoni + 6 5.24 5.94 -8.38 0 0 0 0.0646 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 49, Parent ID = 1 @@ -2539,541 +2424,493 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0.989 -0.8 -0.224 0.511 0 0 0 Tank initStep - 1 -33.2 -55 64.9 0.291 1.42e-05 91.4 91.4 Tank compt - 2 -21 -61.9 70.9 0.158 2.92e-05 15.3 107 Tank compt - 3 -33.1 -70.2 68.8 0.15 1.42e-05 14.9 122 Tank compt - 4 -49.7 -76.9 51.6 0.0946 2.92e-05 24.8 146 Tank compt - 5 -40.1 -73.1 54.3 0.086 2.92e-05 10.7 157 Tank compt - 6 -39.5 -74.9 54.4 0.0748 1.42e-05 1.9 159 Tank compt - 7 -58.4 -85.7 145 0.0608 1.42e-05 92.8 252 Tank compt - 8 18.8 -65.6 118 0.0558 1.36e-05 84.1 336 Tank compt - 9 11.9 -63.6 66.5 0.0471 1.42e-05 51.9 388 Tank compt - 10 47.4 -132 92.4 0.0471 0 81.4 469 Tank Rayl - 11 50.2 -137 94.3 0 0.000538 5.95 475 Tank phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 49 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 50.2 -137 94.3 0.0466 0 0 0 Tank initStep - 1 50.2 -137 94.3 0.0447 0.00184 0.00301 0.00301 Tank msc - 2 50.2 -137 94.3 0.0313 0.0134 0.0207 0.0237 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 101, Parent ID = 100 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 50.2 -137 94.3 3.46e-06 0 0 0 Tank initStep - 1 4.67e+03 -5e+03 -759 3.46e-06 0 6.76e+03 6.76e+03 expHall Transportation - 2 4.67e+03 -5e+03 -759 3.46e-06 0 0 6.76e+03 Tank Transportation - 3 5e+03 -4.76e+03 -717 3.46e-06 0 412 7.17e+03 expHall Transportation - 4 1e+04 610 1.31e+03 3.46e-06 0 7.61e+03 1.48e+04 world Transportation - 5 1.5e+04 5.98e+03 3.34e+03 3.46e-06 0 7.61e+03 2.24e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 49 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 50.2 -137 94.3 0.0313 0 0 0.0237 Tank initStep - 3 50.2 -137 94.3 0.0303 0.000971 0.00149 0.0252 Tank msc - 4 50.2 -137 94.3 0.0156 0.0148 0.015 0.0402 Tank eIoni - 5 50.2 -137 94.3 0 0.0156 0.00541 0.0456 Tank eIoni - 6 50.2 -137 94.3 0 0 0 0.0456 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 102, Parent ID = 100 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 50.2 -137 94.3 2.68e-06 0 0 0 Tank initStep - 1 -1.97e+03 -5e+03 4.35e+03 2.68e-06 0 6.77e+03 6.77e+03 expHall Transportation - 2 -1.97e+03 -5e+03 4.35e+03 2.68e-06 0 0 6.77e+03 Tank Transportation - 3 -2.13e+03 -4.2e+03 5e+03 2.68e-06 0 1.04e+03 7.81e+03 expHall Transportation - 4 -2.13e+03 -4.2e+03 5e+03 2.68e-06 0 0 7.81e+03 Tank Transportation - 5 -312 3e+03 -5e+03 2.68e-06 0 1.25e+04 2.03e+04 expHall Transportation - 6 -312 3e+03 -5e+03 2.68e-06 0 0 2.03e+04 Tank Transportation - 7 5e+03 4.85e+03 728 2.68e-06 0 8.03e+03 2.83e+04 expHall Transportation - 8 5e+03 4.85e+03 728 2.68e-06 0 0 2.83e+04 Tank Transportation - 9 4.99e+03 5e+03 1.05e+03 2.68e-06 0 354 2.87e+04 expHall Transportation - 10 4.99e+03 5e+03 1.05e+03 2.68e-06 0 0 2.87e+04 Tank Transportation - 11 4.48e+03 3.84e+03 5e+03 2.68e-06 0 4.15e+03 3.28e+04 expHall Transportation - 12 4.54e+03 4.64e+03 1e+04 2.68e-06 0 5.06e+03 3.79e+04 world Transportation - 13 4.61e+03 5.43e+03 1.5e+04 2.68e-06 0 5.06e+03 4.29e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 49 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 11.9 -63.6 66.5 0.00871 0 0 0 Tank initStep - 1 11.9 -63.6 66.5 0.0087 1.09e-05 0.000155 0.000155 Tank msc - 2 11.9 -63.6 66.5 0 0.0087 0.00194 0.00209 Tank eIoni - 3 11.9 -63.6 66.5 0 0 0 0.00209 Tank NoProcess + 1 -1.96 -5.47 5.39 0.339 1.42e-05 7.87 7.87 Tank compt + 2 -2.86 0.0548 20.9 0.271 1.42e-05 16.5 24.4 Tank compt + 3 -2.89 -0.356 21.6 0.23 2.92e-05 0.746 25.1 Tank compt + 4 -59.7 -25.4 59.8 0.143 1.42e-05 73 98.1 Tank compt + 5 -49.8 -63.4 8.52 0.122 1.42e-05 64.5 163 Tank compt + 6 -51.9 -65.1 8 0.105 1.36e-05 2.69 165 Tank compt + 7 -160 17.5 -107 0.104 2.92e-05 179 344 Tank compt + 8 -162 19.5 -110 0.0958 1.42e-05 3.5 347 Tank compt + 9 -183 16.6 -115 0.0744 1.42e-05 22 369 Tank compt + 10 -178 11.1 -109 0.0629 1.42e-05 9.21 379 Tank compt + 11 -174 9.98 -119 0.061 1.42e-05 10.5 389 Tank compt + 12 -98 -34 -170 0.055 1.42e-05 102 491 Tank compt + 13 -136 -158 -131 0.0496 1.42e-05 136 626 Tank compt + 14 -141 -158 -134 0.0496 0 6.95 633 Tank Rayl + 15 -244 -138 -177 0 2.85e-05 112 746 Tank phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 98, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 18.8 -65.6 118 0.00492 0 0 0 Tank initStep - 1 18.8 -65.6 118 0.00457 0.000345 5.75e-05 5.75e-05 Tank msc - 2 18.8 -65.6 118 0 0.00457 0.000634 0.000692 Tank eIoni - 3 18.8 -65.6 118 0 0 0 0.000692 Tank NoProcess + 0 -244 -138 -177 0.0496 0 0 0 Tank initStep + 1 -244 -138 -177 0.0473 0.00225 0.00336 0.00336 Tank msc + 2 -244 -138 -177 0.0278 0.0195 0.0217 0.025 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 99, Parent ID = 98 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -244 -138 -177 2.48e-06 0 0 0 Tank initStep + 1 -3.35e+03 5e+03 -1.23e+03 2.48e-06 0 6.1e+03 6.1e+03 expHall Transportation + 2 -3.35e+03 5e+03 -1.23e+03 2.48e-06 0 0 6.1e+03 Tank Transportation + 3 -5e+03 2.6e+03 -1.68e+03 2.48e-06 0 2.94e+03 9.04e+03 expHall Transportation + 4 -5e+03 2.6e+03 -1.68e+03 2.48e-06 0 0 9.04e+03 Tank Transportation + 5 -1.63e+03 -4.74e+03 -3.19e+03 2.48e-06 2.48e-06 8.22e+03 1.73e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 -244 -138 -177 0.0278 0 0 0.025 Tank initStep + 3 -244 -138 -177 0.0258 0.00202 0.00121 0.0262 Tank msc + 4 -244 -138 -177 0 0.0258 0.0126 0.0388 Tank eIoni + 5 -244 -138 -177 0 0 0 0.0388 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 101, Parent ID = 98 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -244 -138 -177 3.03e-06 0 0 0 Tank initStep + 1 -2.49e+03 -5e+03 1.55e+03 3.03e-06 0 5.63e+03 5.63e+03 expHall Transportation + 2 -8.37e+03 -1e+04 2.73e+03 3.03e-06 0 7.81e+03 1.34e+04 world Transportation + 3 -1.43e+04 -1.5e+04 3.92e+03 3.03e-06 0 7.81e+03 2.13e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 100, Parent ID = 98 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -244 -138 -177 2.15e-06 0 0 0 Tank initStep + 1 -1.46e+03 3.9e+03 -4.77e+03 2.15e-06 2.15e-06 6.23e+03 6.23e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 97, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -58.4 -85.7 145 0.0141 0 0 0 Tank initStep - 1 -58.4 -85.7 145 0.0137 0.000372 0.000361 0.000361 Tank msc - 2 -58.4 -85.7 145 0 0.0137 0.00431 0.00467 Tank eIoni - 3 -58.4 -85.7 145 0 0 0 0.00467 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 103, Parent ID = 97 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -58.4 -85.7 145 2.16e-06 0 0 0 Tank initStep - 1 1.93e+03 -1.46e+03 5e+03 2.16e-06 0 5.42e+03 5.42e+03 expHall Transportation - 2 7.83e+03 -3.72e+03 1e+04 2.16e-06 0 8.06e+03 1.35e+04 world Transportation - 3 1.37e+04 -5.98e+03 1.5e+04 2.16e-06 0 8.06e+03 2.15e+04 OutOfWorld Transportation + 0 -136 -158 -131 0.00541 0 0 0 Tank initStep + 1 -136 -158 -131 0.00518 0.000235 6.79e-05 6.79e-05 Tank msc + 2 -136 -158 -131 0 0.00518 0.000786 0.000854 Tank eIoni + 3 -136 -158 -131 0 0 0 0.000854 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 96, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -39.5 -74.9 54.4 0.0112 0 0 0 Tank initStep - 1 -39.5 -74.9 54.4 0.0108 0.000365 0.000242 0.000242 Tank msc - 2 -39.5 -74.9 54.4 0 0.0108 0.00285 0.00309 Tank eIoni - 3 -39.5 -74.9 54.4 0 0 0 0.00309 Tank NoProcess + 0 -98 -34 -170 0.00592 0 0 0 Tank initStep + 1 -98 -34 -170 0.00583 9.44e-05 7.93e-05 7.93e-05 Tank msc + 2 -98 -34 -170 0 0.00583 0.000964 0.00104 Tank eIoni + 3 -98 -34 -170 0 0 0 0.00104 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 102, Parent ID = 96 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -98 -34 -170 3.32e-06 0 0 0 Tank initStep + 1 -5e+03 -4.09e+03 -571 3.32e-06 0 6.37e+03 6.37e+03 expHall Transportation + 2 -5e+03 -4.09e+03 -571 3.32e-06 0 0 6.37e+03 Tank Transportation + 3 -4.45e+03 -5e+03 -720 3.32e-06 0 1.08e+03 7.45e+03 expHall Transportation + 4 -4.45e+03 -5e+03 -720 3.32e-06 0 0 7.45e+03 Tank Transportation + 5 3.18e+03 5e+03 -3.99e+03 3.32e-06 0 1.3e+04 2.04e+04 expHall Transportation + 6 3.18e+03 5e+03 -3.99e+03 3.32e-06 0 0 2.04e+04 Tank Transportation + 7 4.92e+03 4.29e+03 -5e+03 3.32e-06 0 2.13e+03 2.26e+04 expHall Transportation + 8 4.92e+03 4.29e+03 -5e+03 3.32e-06 0 0 2.26e+04 Tank Transportation + 9 5e+03 4.3e+03 -4.72e+03 3.32e-06 0 294 2.29e+04 expHall Transportation + 10 5e+03 4.3e+03 -4.72e+03 3.32e-06 0 0 2.29e+04 Tank Transportation + 11 3.11e+03 4.33e+03 -3.09e+03 3.32e-06 3.32e-06 2.49e+03 2.54e+04 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 95, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -40.1 -73.1 54.3 0.00854 0 0 0 Tank initStep - 1 -40.1 -73.1 54.3 0.0079 0.000641 0.00015 0.00015 Tank msc - 2 -40.1 -73.1 54.3 0 0.0079 0.00164 0.00179 Tank eIoni - 3 -40.1 -73.1 54.3 0 0 0 0.00179 Tank NoProcess + 0 -174 9.98 -119 0.00191 0 0 0 Tank initStep + 1 -174 9.98 -119 0.00186 5.06e-05 1.17e-05 1.17e-05 Tank msc + 2 -174 9.98 -119 0 0.00186 0.00014 0.000152 Tank eIoni + 3 -174 9.98 -119 0 0 0 0.000152 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 94, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -49.7 -76.9 51.6 0.0556 0 0 0 Tank initStep - 1 -49.7 -76.9 51.6 0.0527 0.00297 0.00411 0.00411 Tank msc - 2 -49.7 -76.9 51.6 0.0384 0.0143 0.0236 0.0277 Tank eIoni + 0 -178 11.1 -109 0.0115 0 0 0 Tank initStep + 1 -178 11.1 -109 0.0112 0.000263 0.000252 0.000252 Tank msc + 2 -178 11.1 -109 0 0.0112 0.00302 0.00327 Tank eIoni + 3 -178 11.1 -109 0 0 0 0.00327 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 104, Parent ID = 94 +* G4Track Information: Particle = opticalphoton, Track ID = 103, Parent ID = 94 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -49.7 -76.9 51.6 3.76e-06 0 0 0 Tank initStep - 1 1.22e+03 -42.1 5e+03 3.76e-06 0 5.11e+03 5.11e+03 expHall Transportation - 2 3.26e+03 -317 1e+04 3.76e-06 0 5.41e+03 1.05e+04 world Transportation - 3 5.3e+03 -591 1.5e+04 3.76e-06 0 5.41e+03 1.59e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 49 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -49.7 -76.9 51.6 0.0384 0 0 0.0277 Tank initStep - 3 -49.7 -76.9 51.6 0.0378 0.000597 0.00214 0.0299 Tank msc - 4 -49.7 -76.9 51.6 0.0128 0.025 0.0181 0.048 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 105, Parent ID = 94 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -49.7 -76.9 51.6 3.77e-06 0 0 0 Tank initStep - 1 2.7e+03 -212 -5e+03 3.77e-06 0 5.75e+03 5.75e+03 expHall Transportation - 2 2.7e+03 -212 -5e+03 3.77e-06 0 0 5.75e+03 Tank Transportation - 3 3.73e+03 5e+03 -1.85e+03 3.77e-06 0 6.18e+03 1.19e+04 expHall Transportation - 4 6.41e+03 1e+04 4.24e+03 3.77e-06 0 8.32e+03 2.03e+04 world Transportation - 5 9.09e+03 1.5e+04 1.03e+04 3.77e-06 0 8.32e+03 2.86e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 49 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -49.7 -76.9 51.6 0.0128 0 0 0.048 Tank initStep - 5 -49.7 -76.9 51.6 0.0123 0.000546 0.000306 0.0483 Tank msc - 6 -49.7 -76.9 51.6 0 0.0123 0.00355 0.0518 Tank eIoni - 7 -49.7 -76.9 51.6 0 0 0 0.0518 Tank NoProcess + 0 -178 11.1 -109 2.5e-06 0 0 0 Tank initStep + 1 -2.09e+03 -5e+03 -1.66e+03 2.5e-06 0 5.58e+03 5.58e+03 expHall Transportation + 2 -4.61e+03 -1e+04 -3.3e+03 2.5e-06 0 5.83e+03 1.14e+04 world Transportation + 3 -7.12e+03 -1.5e+04 -4.95e+03 2.5e-06 0 5.83e+03 1.73e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 93, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.1 -70.2 68.8 0.00812 0 0 0 Tank initStep - 1 -33.1 -70.2 68.8 0.00785 0.000271 0.000137 0.000137 Tank msc - 2 -33.1 -70.2 68.8 0 0.00785 0.00162 0.00176 Tank eIoni - 3 -33.1 -70.2 68.8 0 0 0 0.00176 Tank NoProcess + 0 -183 16.6 -115 0.0214 0 0 0 Tank initStep + 1 -183 16.6 -115 0.0206 0.00083 0.000763 0.000763 Tank msc + 2 -183 16.6 -115 0 0.0206 0.00889 0.00965 Tank eIoni + 3 -183 16.6 -115 0 0 0 0.00965 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 92, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -21 -61.9 70.9 0.133 0 0 0 Tank initStep - 1 -20.9 -61.9 70.9 0.125 0.00803 0.0182 0.0182 Tank msc - 2 -20.9 -61.9 70.9 0.107 0.0179 0.0566 0.0748 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 107, Parent ID = 92 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.9 -61.9 70.9 4.07e-06 0 0 0 Tank initStep - 1 1.15e+03 2.91e+03 -100 4.07e-06 4.07e-06 3.2e+03 3.2e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 106, Parent ID = 92 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.9 -61.9 70.9 3.89e-06 0 0 0 Tank initStep - 1 671 -773 184 3.89e-06 0 999 999 Tank OpRayleigh - 2 1.76e+03 -3.05e+03 1.22e+03 3.89e-06 3.89e-06 2.73e+03 3.73e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 49 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -20.9 -61.9 70.9 0.107 0 0 0.0748 Tank initStep - 3 -20.9 -61.9 70.9 0.103 0.00355 0.0126 0.0874 Tank msc - 4 -20.9 -61.9 70.9 0.0835 0.0197 0.0453 0.133 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 109, Parent ID = 92 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.9 -61.9 70.9 2.17e-06 0 0 0 Tank initStep - 1 -2.82e+03 5e+03 805 2.17e-06 0 5.83e+03 5.83e+03 expHall Transportation - 2 -2.82e+03 5e+03 805 2.17e-06 0 0 5.83e+03 Tank Transportation - 3 -5e+03 3.7e+03 769 2.17e-06 0 2.54e+03 8.37e+03 expHall Transportation - 4 -1e+04 -2.51e+03 2.23e+03 2.17e-06 0 8.1e+03 1.65e+04 world Transportation - 5 -1.5e+04 -8.71e+03 3.69e+03 2.17e-06 0 8.1e+03 2.46e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 108, Parent ID = 92 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.9 -61.9 70.9 3.18e-06 0 0 0 Tank initStep - 1 6.71 2e+03 -185 3.18e-06 3.18e-06 2.08e+03 2.08e+03 Bubble Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 49 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -20.9 -61.9 70.9 0.0835 0 0 0.133 Tank initStep - 5 -20.9 -61.9 70.9 0.0784 0.00512 0.00831 0.141 Tank msc - 6 -20.8 -61.9 70.9 0.0239 0.0545 0.0338 0.175 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 111, Parent ID = 92 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.8 -61.9 70.9 3.39e-06 0 0 0 Tank initStep - 1 3.42e+03 -2.14e+03 3.66e+03 3.39e-06 3.39e-06 5.39e+03 5.39e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 110, Parent ID = 92 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.9 -61.9 70.9 2.31e-06 0 0 0 Tank initStep - 1 1.83e+03 -2.15e+03 5e+03 2.31e-06 0 5.66e+03 5.66e+03 expHall Transportation - 2 1.83e+03 -2.15e+03 5e+03 2.31e-06 0 0 5.66e+03 Tank Transportation - 3 4.54e+03 -2.03e+03 4.2e+03 2.31e-06 2.31e-06 2.83e+03 8.49e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 49 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 -20.8 -61.9 70.9 0.0239 0 0 0.175 Tank initStep - 7 -20.8 -61.9 70.9 0.0232 0.000698 0.000923 0.176 Tank msc - 8 -20.8 -61.9 70.9 0.000801 0.0224 0.0109 0.187 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 112, Parent ID = 92 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -20.8 -61.9 70.9 3.37e-06 0 0 0 Tank initStep - 1 -1.31e+03 5e+03 3.69e+03 3.37e-06 0 6.36e+03 6.36e+03 expHall Transportation - 2 -6.73e+03 1e+04 9.33e+03 3.37e-06 0 9.28e+03 1.56e+04 world Transportation - 3 -1.22e+04 1.5e+04 1.5e+04 3.37e-06 0 9.28e+03 2.49e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 49 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 -20.8 -61.9 70.9 0.000801 0 0 0.187 Tank initStep - 9 -20.8 -61.9 70.9 0.000519 0.000282 2.98e-06 0.187 Tank msc - 10 -20.8 -61.9 70.9 0 0.000519 2.02e-05 0.187 Tank eIoni - 11 -20.8 -61.9 70.9 0 0 0 0.187 Tank NoProcess + 0 -162 19.5 -110 0.00863 0 0 0 Tank initStep + 1 -162 19.5 -110 0.0083 0.000326 0.000153 0.000153 Tank msc + 2 -162 19.5 -110 0 0.0083 0.00179 0.00194 Tank eIoni + 3 -162 19.5 -110 0 0 0 0.00194 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 91, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.2 -55 64.9 0.22 0 0 0 Tank initStep - 1 -33.3 -55 64.9 0.212 0.00831 0.0413 0.0413 Tank msc + 0 -160 17.5 -107 0.000729 0 0 0 Tank initStep + 1 -160 17.5 -107 0.000729 0 2.59e-06 2.59e-06 Tank msc + 2 -160 17.5 -107 0 0.000729 3.24e-05 3.5e-05 Tank eIoni + 3 -160 17.5 -107 0 0 0 3.5e-05 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 113, Parent ID = 91 +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.2 -55 64.9 3.62e-06 0 0 0 Tank initStep - 1 2.25e+03 -5e+03 -2.88e+03 3.62e-06 0 6.19e+03 6.19e+03 expHall Transportation - 2 2.25e+03 -5e+03 -2.88e+03 3.62e-06 0 0 6.19e+03 Tank Transportation - 3 -1.68e+03 -860 -5e+03 3.62e-06 0 6.09e+03 1.23e+04 expHall Transportation - 4 -1.68e+03 -860 -5e+03 3.62e-06 0 0 1.23e+04 Tank Transportation - 5 -5e+03 2.78e+03 -4.25e+03 3.62e-06 0 4.98e+03 1.73e+04 expHall Transportation - 6 -5e+03 2.78e+03 -4.25e+03 3.62e-06 0 0 1.73e+04 Tank Transportation - 7 -4.18e+03 5e+03 -3.72e+03 3.62e-06 0 2.43e+03 1.97e+04 expHall Transportation - 8 4.21e+03 1e+04 2.11e+03 3.62e-06 0 1.14e+04 3.11e+04 world Transportation - 9 1.26e+04 1.5e+04 7.94e+03 3.62e-06 0 1.14e+04 4.24e+04 OutOfWorld Transportation + 0 -51.9 -65.1 8 0.0173 0 0 0 Tank initStep + 1 -51.9 -65.1 8 0.0156 0.0017 0.000519 0.000519 Tank msc + 2 -51.9 -65.1 8 0 0.0156 0.0054 0.00592 Tank eIoni + 3 -51.9 -65.1 8 0 0 0 0.00592 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 49 +* G4Track Information: Particle = opticalphoton, Track ID = 105, Parent ID = 90 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 -33.3 -55 64.9 0.212 0 0 0.0413 Tank initStep - 2 -33.3 -55 64.9 0.189 0.023 0.0389 0.0802 Tank msc + 0 -51.9 -65.1 8 4.12e-06 0 0 0 Tank initStep + 1 -5e+03 -2.65e+03 1.17e+03 4.12e-06 0 5.7e+03 5.7e+03 expHall Transportation + 2 -1e+04 -8.24e+03 2.42e+03 4.12e-06 0 7.6e+03 1.33e+04 world Transportation + 3 -1.5e+04 -1.38e+04 3.67e+03 4.12e-06 0 7.6e+03 2.09e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 116, Parent ID = 91 +* G4Track Information: Particle = opticalphoton, Track ID = 104, Parent ID = 90 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.3 -55 64.9 4.04e-06 0 0 0 Tank initStep - 1 1.04e+03 -583 -2.76e+03 4.04e-06 4.04e-06 3.07e+03 3.07e+03 Tank OpAbsorption + 0 -51.9 -65.1 8 2.13e-06 0 0 0 Tank initStep + 1 286 109 970 2.13e-06 2.13e-06 1.03e+03 1.03e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 115, Parent ID = 91 +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.3 -55 64.9 3.5e-06 0 0 0 Tank initStep - 1 -355 -224 312 3.5e-06 3.5e-06 439 439 Tank OpAbsorption + 0 -49.8 -63.4 8.52 0.0207 0 0 0 Tank initStep + 1 -49.8 -63.4 8.52 0.0203 0.000464 0.000719 0.000719 Tank msc + 2 -49.8 -63.4 8.52 0 0.0203 0.00863 0.00935 Tank eIoni + 3 -49.8 -63.4 8.52 0 0 0 0.00935 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 114, Parent ID = 91 +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.3 -55 64.9 2.24e-06 0 0 0 Tank initStep - 1 -2.15 2e+03 455 2.24e-06 2.24e-06 2.09e+03 2.09e+03 Bubble Transportation + 0 -59.7 -25.4 59.8 0.0865 0 0 0 Tank initStep + 1 -59.7 -25.4 59.8 0.0839 0.00256 0.00883 0.00883 Tank msc ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 49 +* G4Track Information: Particle = opticalphoton, Track ID = 106, Parent ID = 88 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -33.3 -55 64.9 0.189 0 0 0.0802 Tank initStep - 3 -33.3 -55.1 64.9 0.182 0.00655 0.0324 0.113 Tank msc - 4 -33.4 -55.1 64.9 0.163 0.0192 0.0922 0.205 Tank eIoni + 0 -59.7 -25.4 59.8 3.98e-06 0 0 0 Tank initStep + 1 -610 -5e+03 -1.7e+03 3.98e-06 0 5.3e+03 5.3e+03 expHall Transportation + 2 -610 -5e+03 -1.7e+03 3.98e-06 0 0 5.3e+03 Tank Transportation + 3 -1.33e+03 -2.03e+03 -5e+03 3.98e-06 0 4.5e+03 9.81e+03 expHall Transportation + 4 -1e+04 9.91e+03 -9.4e+03 3.98e-06 0 1.54e+04 2.52e+04 world Transportation + 5 -1.37e+04 1.5e+04 -1.13e+04 3.98e-06 0 6.57e+03 3.18e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 118, Parent ID = 91 +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.4 -55.1 64.9 3.3e-06 0 0 0 Tank initStep - 1 1.17e+03 -2.31e+03 5e+03 3.3e-06 0 5.56e+03 5.56e+03 expHall Transportation - 2 2.95e+03 -1e+04 7.87e+03 3.3e-06 0 8.39e+03 1.4e+04 world Transportation - 3 4.1e+03 -1.5e+04 9.74e+03 3.3e-06 0 5.46e+03 1.94e+04 OutOfWorld Transportation + 1 -59.7 -25.4 59.8 0.0839 0 0 0.00883 Tank initStep + 2 -59.7 -25.4 59.8 0.0815 0.00243 0.00838 0.0172 Tank msc + 3 -59.8 -25.4 59.8 0.0622 0.0193 0.0351 0.0523 Tank eIoni + 4 -59.8 -25.4 59.8 0.0496 0.0126 0.0272 0.0795 Tank eIoni + 5 -59.8 -25.4 59.9 0.035 0.0145 0.0225 0.102 Tank eIoni + 6 -59.8 -25.4 59.9 0.0141 0.0209 0.017 0.119 Tank eIoni + 7 -59.8 -25.4 59.9 0 0.0141 0.00457 0.124 Tank eIoni + 8 -59.8 -25.4 59.9 0 0 0 0.124 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 117, Parent ID = 91 +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.3 -55.1 64.9 3.4e-06 0 0 0 Tank initStep - 1 2.51e+03 -5e+03 -396 3.4e-06 0 5.58e+03 5.58e+03 expHall Transportation - 2 7.49e+03 -1e+04 -350 3.4e-06 0 7.06e+03 1.26e+04 world Transportation - 3 1.25e+04 -1.5e+04 -304 3.4e-06 0 7.06e+03 1.97e+04 OutOfWorld Transportation + 0 -2.89 -0.356 21.6 0.0417 0 0 0 Tank initStep + 1 -2.89 -0.357 21.6 0.0403 0.00136 0.00248 0.00248 Tank msc + 2 -2.88 -0.36 21.6 0.0265 0.0139 0.0191 0.0216 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 49 +* G4Track Information: Particle = opticalphoton, Track ID = 108, Parent ID = 87 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -33.4 -55.1 64.9 0.163 0 0 0.205 Tank initStep - 5 -33.4 -55.1 64.9 0.147 0.0155 0.0255 0.23 Tank msc - 6 -33.4 -55.1 64.9 0.129 0.0184 0.0699 0.3 Tank eIoni + 0 -2.88 -0.359 21.6 4.09e-06 0 0 0 Tank initStep + 1 -5e+03 -2.01e+03 3.34e+03 4.09e-06 0 6.33e+03 6.33e+03 expHall Transportation + 2 -5e+03 -2.01e+03 3.34e+03 4.09e-06 0 0 6.33e+03 Tank Transportation + 3 -1.93e+03 -2.79e+03 5e+03 4.09e-06 0 3.58e+03 9.9e+03 expHall Transportation + 4 -1.93e+03 -2.79e+03 5e+03 4.09e-06 0 0 9.9e+03 Tank Transportation + 5 1.95e+03 -5e+03 -1.29e+03 4.09e-06 0 7.71e+03 1.76e+04 expHall Transportation + 6 1.95e+03 -5e+03 -1.29e+03 4.09e-06 0 0 1.76e+04 Tank Transportation + 7 5e+03 -2.3e+03 -3.87e+03 4.09e-06 0 4.83e+03 2.24e+04 expHall Transportation + 8 5e+03 -2.3e+03 -3.87e+03 4.09e-06 0 0 2.24e+04 Tank Transportation + 9 234 2.71e+03 -4.98e+03 4.09e-06 4.09e-06 7e+03 2.94e+04 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 119, Parent ID = 91 +* G4Track Information: Particle = opticalphoton, Track ID = 107, Parent ID = 87 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.4 -55.1 64.9 3.81e-06 0 0 0 Tank initStep - 1 -1.54e+03 -5e+03 4.27e+03 3.81e-06 0 6.67e+03 6.67e+03 expHall Transportation - 2 -1.54e+03 -5e+03 4.27e+03 3.81e-06 0 0 6.67e+03 Tank Transportation - 3 -1.73e+03 -2.87e+03 5e+03 3.81e-06 0 2.26e+03 8.93e+03 expHall Transportation - 4 -1.73e+03 -2.87e+03 5e+03 3.81e-06 0 0 8.93e+03 Tank Transportation - 5 -2.29e+03 3.77e+03 2.87e+03 3.81e-06 3.81e-06 6.99e+03 1.59e+04 Tank OpAbsorption + 0 -2.89 -0.358 21.6 4.1e-06 0 0 0 Tank initStep + 1 -1.6e+03 2.17e+03 1.41e+03 4.1e-06 4.1e-06 3.03e+03 3.03e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 49 +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 -33.4 -55.1 64.9 0.129 0 0 0.3 Tank initStep - 7 -33.5 -55.1 64.9 0.123 0.00611 0.0174 0.317 Tank msc - 8 -33.5 -55.1 64.9 0.108 0.0153 0.0556 0.373 Tank eIoni - 9 -33.5 -55.1 64.8 0.092 0.0156 0.0475 0.421 Tank eIoni + 2 -2.88 -0.36 21.6 0.0265 0 0 0.0216 Tank initStep + 3 -2.88 -0.361 21.6 0.0259 0.000557 0.00111 0.0227 Tank msc + 4 -2.88 -0.367 21.6 0.0059 0.02 0.0127 0.0354 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 125, Parent ID = 91 +* G4Track Information: Particle = opticalphoton, Track ID = 111, Parent ID = 87 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.5 -55.1 64.8 3.53e-06 0 0 0 Tank initStep - 1 -5e+03 -1.83e+03 -2.41e+03 3.53e-06 0 5.83e+03 5.83e+03 expHall Transportation - 2 -5e+03 -1.83e+03 -2.41e+03 3.53e-06 0 0 5.83e+03 Tank Transportation - 3 -1.93e+03 -5e+03 -3.82e+03 3.53e-06 0 4.63e+03 1.05e+04 expHall Transportation - 4 -1.93e+03 -5e+03 -3.82e+03 3.53e-06 0 0 1.05e+04 Tank Transportation - 5 548 -3.14e+03 -4.9e+03 3.53e-06 0 3.28e+03 1.37e+04 Tank OpRayleigh - 6 654 -3.31e+03 -5e+03 3.53e-06 0 216 1.4e+04 expHall Transportation - 7 654 -3.31e+03 -5e+03 3.53e-06 0 0 1.4e+04 Tank Transportation - 8 888 -5e+03 -4.64e+03 3.53e-06 0 1.75e+03 1.57e+04 expHall Transportation - 9 2.08e+03 -1e+04 -2.54e+03 3.53e-06 0 5.55e+03 2.13e+04 world Transportation - 10 3.28e+03 -1.5e+04 -436 3.53e-06 0 5.55e+03 2.68e+04 OutOfWorld Transportation + 0 -2.88 -0.366 21.6 2.62e-06 0 0 0 Tank initStep + 1 2.97e+03 -3.39e+03 3.92e+03 2.62e-06 2.62e-06 5.96e+03 5.96e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 124, Parent ID = 91 +* G4Track Information: Particle = opticalphoton, Track ID = 110, Parent ID = 87 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.5 -55.1 64.8 2.74e-06 0 0 0 Tank initStep - 1 5e+03 -545 -43.9 2.74e-06 0 5.06e+03 5.06e+03 expHall Transportation - 2 1e+04 -1.83e+03 -1.08e+03 2.74e-06 0 5.27e+03 1.03e+04 world Transportation - 3 1.5e+04 -3.12e+03 -2.12e+03 2.74e-06 0 5.27e+03 1.56e+04 OutOfWorld Transportation + 0 -2.88 -0.366 21.6 3.1e-06 0 0 0 Tank initStep + 1 4.69e+03 1.4e+03 5e+03 3.1e-06 0 6.98e+03 6.98e+03 expHall Transportation + 2 1e+04 3.31e+03 6.14e+03 3.1e-06 0 5.76e+03 1.27e+04 world Transportation + 3 1.5e+04 5.12e+03 7.22e+03 3.1e-06 0 5.42e+03 1.82e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 123, Parent ID = 91 +* G4Track Information: Particle = opticalphoton, Track ID = 109, Parent ID = 87 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.5 -55.1 64.8 3.67e-06 0 0 0 Tank initStep - 1 -1.69e+03 -851 -492 3.67e-06 3.67e-06 1.92e+03 1.92e+03 Tank OpAbsorption + 0 -2.88 -0.365 21.6 3.14e-06 0 0 0 Tank initStep + 1 -5e+03 -2.85e+03 4.56e+03 3.14e-06 0 7.33e+03 7.33e+03 expHall Transportation + 2 -5e+03 -2.85e+03 4.56e+03 3.14e-06 0 0 7.33e+03 Tank Transportation + 3 -3.98e+03 -2.96e+03 5e+03 3.14e-06 0 1.12e+03 8.45e+03 expHall Transportation + 4 6.85e+03 -1e+04 9.58e+03 3.14e-06 0 1.37e+04 2.21e+04 world Transportation + 5 1.45e+04 -1.5e+04 1.28e+04 3.14e-06 0 9.74e+03 3.19e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 122, Parent ID = 91 +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.5 -55.1 64.9 3.8e-06 0 0 0 Tank initStep - 1 -3.14e+03 -2.9e+03 -5e+03 3.8e-06 0 6.59e+03 6.59e+03 expHall Transportation - 2 -3.14e+03 -2.9e+03 -5e+03 3.8e-06 0 0 6.59e+03 Tank Transportation - 3 -3.55e+03 -3.61e+03 -4.36e+03 3.8e-06 3.8e-06 1.04e+03 7.63e+03 Tank OpAbsorption + 4 -2.88 -0.367 21.6 0.0059 0 0 0.0354 Tank initStep + 5 -2.88 -0.367 21.6 0.00541 0.000487 7.87e-05 0.0354 Tank msc + 6 -2.88 -0.368 21.6 0 0.00541 0.000847 0.0363 Tank eIoni + 7 -2.88 -0.368 21.6 0 0 0 0.0363 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 121, Parent ID = 91 +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.5 -55.1 64.8 2.98e-06 0 0 0 Tank initStep - 1 -1.36e+03 5e+03 -444 2.98e-06 0 5.25e+03 5.25e+03 expHall Transportation - 2 -1.46e+03 1e+04 -2.87e+03 2.98e-06 0 5.56e+03 1.08e+04 world Transportation - 3 -1.57e+03 1.5e+04 -5.29e+03 2.98e-06 0 5.56e+03 1.64e+04 OutOfWorld Transportation + 0 -2.86 0.0548 20.9 0.0674 0 0 0 Tank initStep + 1 -2.86 0.0602 20.9 0.0652 0.00216 0.00574 0.00574 Tank msc + 2 -2.86 0.0788 21 0.0539 0.0113 0.0284 0.0341 Tank eIoni + 3 -2.86 0.0878 21 0.0402 0.0137 0.0241 0.0582 Tank eIoni + 4 -2.85 0.0825 21 0.0226 0.0176 0.0191 0.0772 Tank eIoni + 5 -2.84 0.0804 21 0.00436 0.0182 0.0104 0.0877 Tank eIoni + 6 -2.84 0.0802 21 0 0.00436 0.000584 0.0883 Tank eIoni + 7 -2.84 0.0802 21 0 0 0 0.0883 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 120, Parent ID = 91 +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.5 -55.1 64.8 3.21e-06 0 0 0 Tank initStep - 1 -5e+03 1.43e+03 4.61e+03 3.21e-06 0 6.89e+03 6.89e+03 expHall Transportation - 2 -5e+03 1.43e+03 4.61e+03 3.21e-06 0 0 6.89e+03 Tank Transportation - 3 -4.51e+03 1.59e+03 5e+03 3.21e-06 0 647 7.54e+03 expHall Transportation - 4 -4.51e+03 1.59e+03 5e+03 3.21e-06 0 0 7.54e+03 Tank Transportation - 5 -202 3.88e+03 -5e+03 3.21e-06 0 1.11e+04 1.87e+04 expHall Transportation - 6 -202 3.88e+03 -5e+03 3.21e-06 0 0 1.87e+04 Tank Transportation - 7 5e+03 2.61e+03 -524 3.21e-06 0 6.98e+03 2.56e+04 expHall Transportation - 8 9.05e+03 2.26e+03 1e+04 3.21e-06 0 1.13e+04 3.69e+04 world Transportation - 9 1.1e+04 2.09e+03 1.5e+04 3.21e-06 0 5.36e+03 4.23e+04 OutOfWorld Transportation + 0 -1.96 -5.47 5.39 0.172 0 0 0 Tank initStep + 1 -1.98 -5.48 5.4 0.158 0.0138 0.0279 0.0279 Tank msc + 2 -2.03 -5.51 5.43 0.14 0.018 0.0767 0.105 Tank eIoni + 3 -2.07 -5.49 5.46 0.122 0.018 0.0656 0.17 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 49 +* G4Track Information: Particle = opticalphoton, Track ID = 112, Parent ID = 85 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 9 -33.5 -55.1 64.8 0.092 0 0 0.421 Tank initStep - 10 -33.5 -55.1 64.8 0.0889 0.00302 0.0098 0.43 Tank msc - 11 -33.6 -55.1 64.9 0.0732 0.0157 0.0385 0.469 Tank eIoni - 12 -33.6 -55.1 64.9 0.0606 0.0126 0.0316 0.5 Tank eIoni - 13 -33.6 -55.1 64.9 0.0483 0.0123 0.0266 0.527 Tank eIoni - 14 -33.6 -55.2 64.9 0.0246 0.0237 0.022 0.549 Tank eIoni + 0 -2.04 -5.51 5.44 3.82e-06 0 0 0 Tank initStep + 1 3.09e+03 -4.68e+03 1.65e+03 3.82e-06 3.82e-06 5.84e+03 5.84e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 126, Parent ID = 91 +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -33.6 -55.2 64.9 3.06e-06 0 0 0 Tank initStep - 1 1.29e+03 -1.93e+03 -1.95e+03 3.06e-06 0 3.05e+03 3.05e+03 Tank OpRayleigh - 2 -1.33e+03 -3.13e+03 -5e+03 3.06e-06 0 4.2e+03 7.25e+03 expHall Transportation - 3 -1.33e+03 -3.13e+03 -5e+03 3.06e-06 0 0 7.25e+03 Tank Transportation - 4 -5e+03 -1.74e+03 -847 3.06e-06 0 5.71e+03 1.3e+04 expHall Transportation - 5 -5e+03 -1.74e+03 -847 3.06e-06 0 0 1.3e+04 Tank Transportation - 6 -415 -2.15e+03 5e+03 3.06e-06 0 7.44e+03 2.04e+04 expHall Transportation - 7 -415 -2.15e+03 5e+03 3.06e-06 0 0 2.04e+04 Tank Transportation - 8 3.19e+03 -5e+03 1.84e+03 3.06e-06 0 5.58e+03 2.6e+04 expHall Transportation - 9 3.19e+03 -5e+03 1.84e+03 3.06e-06 0 0 2.6e+04 Tank Transportation - 10 5e+03 -2.62e+03 -1.57e+03 3.06e-06 0 4.54e+03 3.05e+04 expHall Transportation - 11 5e+03 -2.62e+03 -1.57e+03 3.06e-06 0 0 3.05e+04 Tank Transportation - 12 1.89e+03 2.22e+03 -5e+03 3.06e-06 0 6.69e+03 3.72e+04 expHall Transportation - 13 1.89e+03 2.22e+03 -5e+03 3.06e-06 0 0 3.72e+04 Tank Transportation - 14 21.2 5e+03 -2.97e+03 3.06e-06 0 3.92e+03 4.11e+04 expHall Transportation - 15 21.2 5e+03 -2.97e+03 3.06e-06 0 0 4.11e+04 Tank Transportation - 16 -5e+03 1.94e+03 -1.43e+03 3.06e-06 0 6.08e+03 4.72e+04 expHall Transportation - 17 -5e+03 1.94e+03 -1.43e+03 3.06e-06 0 0 4.72e+04 Tank Transportation - 18 2.22e+03 -5e+03 2.12e+03 3.06e-06 0 1.06e+04 5.78e+04 expHall Transportation - 19 2.22e+03 -5e+03 2.12e+03 3.06e-06 0 0 5.78e+04 Tank Transportation - 20 5e+03 1.38e+03 3.77e+03 3.06e-06 0 7.15e+03 6.5e+04 expHall Transportation - 21 5e+03 1.38e+03 3.77e+03 3.06e-06 0 0 6.5e+04 Tank Transportation - 22 3.62e+03 5e+03 4.86e+03 3.06e-06 0 4.03e+03 6.9e+04 expHall Transportation - 23 2.15e+03 1e+04 6.79e+03 3.06e-06 0 5.56e+03 7.46e+04 world Transportation - 24 669 1.5e+04 8.71e+03 3.06e-06 0 5.56e+03 8.01e+04 OutOfWorld Transportation + 3 -2.07 -5.49 5.46 0.122 0 0 0.17 Tank initStep + 4 -2.08 -5.49 5.47 0.118 0.00444 0.0159 0.186 Tank msc + 5 -2.12 -5.49 5.49 0.0939 0.024 0.0529 0.239 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 49 +* G4Track Information: Particle = opticalphoton, Track ID = 113, Parent ID = 85 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 14 -33.6 -55.2 64.9 0.0246 0 0 0.549 Tank initStep - 15 -33.6 -55.2 64.9 0.0238 0.000856 0.000975 0.55 Tank msc - 16 -33.6 -55.2 64.9 0.00744 0.0163 0.0113 0.561 Tank eIoni - 17 -33.6 -55.2 64.9 0 0.00744 0.00147 0.563 Tank eIoni - 18 -33.6 -55.2 64.9 0 0 0 0.563 Tank NoProcess + 0 -2.12 -5.49 5.49 3.9e-06 0 0 0 Tank initStep + 1 46.1 9.07 100 3.9e-06 3.9e-06 107 107 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 -2.12 -5.49 5.49 0.0939 0 0 0.239 Tank initStep + 6 -2.12 -5.48 5.5 0.0878 0.00615 0.0102 0.249 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 114, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.12 -5.49 5.5 2.46e-06 0 0 0 Tank initStep + 1 5e+03 -500 1.25e+03 2.46e-06 0 5.18e+03 5.18e+03 expHall Transportation + 2 1e+04 -2.28e+03 2.17e+03 2.46e-06 0 5.39e+03 1.06e+04 world Transportation + 3 1.5e+04 -4.07e+03 3.09e+03 2.46e-06 0 5.39e+03 1.6e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 6 -2.12 -5.48 5.5 0.0878 0 0 0.249 Tank initStep + 7 -2.13 -5.47 5.5 0.0848 0.00303 0.00905 0.258 Tank msc + 8 -2.13 -5.44 5.52 0.0673 0.0174 0.0366 0.295 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 116, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.13 -5.47 5.51 3.28e-06 0 0 0 Tank initStep + 1 5e+03 623 1.28e+03 3.28e-06 0 5.2e+03 5.2e+03 expHall Transportation + 2 1e+04 1.57e+03 1.45e+03 3.28e-06 0 5.09e+03 1.03e+04 world Transportation + 3 1.5e+04 2.51e+03 1.61e+03 3.28e-06 0 5.09e+03 1.54e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 115, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.13 -5.46 5.51 3.59e-06 0 0 0 Tank initStep + 1 -3.2e+03 5e+03 -1.11e+03 3.59e-06 0 6.05e+03 6.05e+03 expHall Transportation + 2 -9.82e+03 1e+04 -3.1e+03 3.59e-06 0 8.53e+03 1.46e+04 world Transportation + 3 -1.5e+04 1.39e+04 -4.65e+03 3.59e-06 0 6.67e+03 2.12e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 8 -2.13 -5.44 5.52 0.0673 0 0 0.295 Tank initStep + 9 -2.13 -5.44 5.52 0.0609 0.00643 0.00573 0.301 Tank msc + 10 -2.15 -5.43 5.52 0.0491 0.0118 0.0267 0.327 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 117, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.14 -5.44 5.52 2.42e-06 0 0 0 Tank initStep + 1 1.88e+03 5e+03 -2.37e+03 2.42e-06 0 5.85e+03 5.85e+03 expHall Transportation + 2 1e+04 6.46e+03 -7.56e+03 2.42e-06 0 9.74e+03 1.56e+04 world Transportation + 3 1.5e+04 7.36e+03 -1.08e+04 2.42e-06 0 6e+03 2.16e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 10 -2.15 -5.43 5.52 0.0491 0 0 0.327 Tank initStep + 11 -2.15 -5.42 5.52 0.0463 0.00282 0.0033 0.331 Tank msc + 12 -2.16 -5.41 5.52 0.0319 0.0144 0.0213 0.352 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 118, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.15 -5.42 5.52 4.03e-06 0 0 0 Tank initStep + 1 -2.15e+03 -4.81e+03 2.1e+03 4.03e-06 4.03e-06 5.66e+03 5.66e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 12 -2.16 -5.41 5.52 0.0319 0 0 0.352 Tank initStep + 13 -2.16 -5.41 5.52 0.0308 0.00112 0.00154 0.353 Tank msc + 14 -2.16 -5.4 5.52 0.0122 0.0185 0.0152 0.369 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 120, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.16 -5.41 5.52 3.4e-06 0 0 0 Tank initStep + 1 5e+03 -3.59e+03 598 3.4e-06 0 6.18e+03 6.18e+03 expHall Transportation + 2 8.12e+03 -1e+04 704 3.4e-06 0 7.13e+03 1.33e+04 world Transportation + 3 1.06e+04 -1.5e+04 787 3.4e-06 0 5.56e+03 1.89e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 119, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.16 -5.41 5.52 2.64e-06 0 0 0 Tank initStep + 1 -5e+03 1.28e+03 1.02e+03 2.64e-06 0 5.26e+03 5.26e+03 expHall Transportation + 2 -1e+04 5.07e+03 3.75e+03 2.64e-06 0 6.84e+03 1.21e+04 world Transportation + 3 -1.5e+04 8.86e+03 6.48e+03 2.64e-06 0 6.84e+03 1.89e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 14 -2.16 -5.4 5.52 0.0122 0 0 0.369 Tank initStep + 15 -2.16 -5.4 5.52 0.0119 0.000334 0.000283 0.369 Tank msc + 16 -2.16 -5.4 5.52 0 0.0119 0.00337 0.372 Tank eIoni + 17 -2.16 -5.4 5.52 0 0 0 0.372 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 1 @@ -3082,8 +2919,8 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0.99 -0.799 -0.223 3.78e-06 0 0 0 Tank initStep 1 -33.9 -379 -5e+03 3.78e-06 0 5.01e+03 5.01e+03 expHall Transportation - 2 -561 -1.73e+03 -1e+04 3.78e-06 0 5.21e+03 1.02e+04 world Transportation - 3 -1.09e+03 -3.07e+03 -1.5e+04 3.78e-06 0 5.21e+03 1.54e+04 OutOfWorld Transportation + 2 648 -1.38e+03 -1e+04 3.78e-06 0 5.15e+03 1.02e+04 world Transportation + 3 1.33e+03 -2.39e+03 -1.5e+04 3.78e-06 0 5.15e+03 1.53e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 @@ -3091,5233 +2928,3030 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 0 0.5 0 0 0 Tank initStep - 1 0.139 0.0106 0.000478 0.478 0.022 0.139 0.139 Tank msc - 2 0.26 0.0214 -0.0148 0.452 0.0257 0.128 0.267 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.24 0.0196 -0.0123 3.55e-06 0 0 0 Tank initStep - 1 -693 872 5e+03 3.55e-06 0 5.12e+03 5.12e+03 expHall Transportation - 2 -1.6e+03 1.24e+03 1e+04 3.55e-06 0 5.1e+03 1.02e+04 world Transportation - 3 -2.52e+03 1.6e+03 1.5e+04 3.55e-06 0 5.1e+03 1.53e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.18 0.0143 -0.00476 2.35e-06 0 0 0 Tank initStep - 1 -4.03e+03 -3.12e+03 -2.11e+03 2.35e-06 2.35e-06 5.52e+03 5.52e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.147 0.0113 -0.000579 4.12e-06 0 0 0 Tank initStep - 1 1.02e+03 -2.73e+03 -690 4.12e-06 4.12e-06 2.99e+03 2.99e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 0.26 0.0214 -0.0148 0.452 0 0 0.267 Tank initStep - 3 0.374 0.025 -0.00862 0.437 0.0157 0.114 0.381 Tank Cerenkov + 1 0.136 0.027 -0.00954 0.476 0.0239 0.139 0.139 Tank msc ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.29 0.0223 -0.0132 3.92e-06 0 0 0 Tank initStep - 1 5e+03 -936 2.96e+03 3.92e-06 0 5.88e+03 5.88e+03 expHall Transportation - 2 5e+03 -936 2.96e+03 3.92e-06 0 0 5.88e+03 Tank Transportation - 3 3.28e+03 -1.32e+03 5e+03 3.92e-06 0 2.7e+03 8.58e+03 expHall Transportation - 4 -3.71e+03 -2.03e+03 1e+04 3.92e-06 0 8.62e+03 1.72e+04 world Transportation - 5 -1.07e+04 -2.75e+03 1.5e+04 3.92e-06 0 8.62e+03 2.58e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 0.374 0.025 -0.00862 0.437 0 0 0.381 Tank initStep - 4 0.478 0.0311 0.00851 0.417 0.0194 0.106 0.487 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.432 0.0284 0.000844 2.35e-06 0 0 0 Tank initStep - 1 1.84e+03 426 125 2.35e-06 2.35e-06 1.89e+03 1.89e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.467 0.0304 0.00663 3.03e-06 0 0 0 Tank initStep - 1 1.39e+03 867 257 3.03e-06 3.03e-06 1.66e+03 1.66e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.413 0.0273 -0.00214 2.64e-06 0 0 0 Tank initStep - 1 5e+03 1.32e+03 -1.52e+03 2.64e-06 0 5.39e+03 5.39e+03 expHall Transportation - 2 5e+03 1.32e+03 -1.52e+03 2.64e-06 0 0 5.39e+03 Tank Transportation - 3 3.91e+03 1.04e+03 -5e+03 2.64e-06 0 3.66e+03 9.05e+03 expHall Transportation - 4 1.16e+03 -597 -1e+04 2.64e-06 0 5.94e+03 1.5e+04 world Transportation - 5 -1.59e+03 -2.24e+03 -1.5e+04 2.64e-06 0 5.94e+03 2.09e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 0.478 0.0311 0.00851 0.417 0 0 0.487 Tank initStep - 5 0.57 0.0358 0.0371 0.403 0.0139 0.097 0.584 Tank Cerenkov - 6 0.655 0.0287 0.0585 0.389 0.0146 0.0907 0.675 Tank Cerenkov - 7 0.731 0.0241 0.0863 0.374 0.0145 0.0842 0.759 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.694 0.0263 0.073 3.37e-06 0 0 0 Tank initStep - 1 1.9e+03 511 44.1 3.37e-06 3.37e-06 1.97e+03 1.97e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 7 0.731 0.0241 0.0863 0.374 0 0 0.759 Tank initStep - 8 0.808 0.0242 0.0884 0.362 0.0125 0.078 0.837 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.807 0.0242 0.0884 2.44e-06 0 0 0 Tank initStep - 1 -2.84e+03 -5e+03 -629 2.44e-06 0 5.78e+03 5.78e+03 expHall Transportation - 2 -2.84e+03 -5e+03 -629 2.44e-06 0 0 5.78e+03 Tank Transportation - 3 -5e+03 -3.1e+03 205 2.44e-06 0 3e+03 8.78e+03 expHall Transportation - 4 -5e+03 -3.1e+03 205 2.44e-06 0 0 8.78e+03 Tank Transportation - 5 2.52e+03 5e+03 1.29e+03 2.44e-06 0 1.11e+04 1.99e+04 expHall Transportation - 6 2.52e+03 5e+03 1.29e+03 2.44e-06 0 0 1.99e+04 Tank Transportation - 7 5e+03 3.85e+03 1.06e+03 2.44e-06 0 2.74e+03 2.26e+04 expHall Transportation - 8 1e+04 -9.21e+03 -1.61e+03 2.44e-06 0 1.42e+04 3.69e+04 world Transportation - 9 1.22e+04 -1.5e+04 -2.79e+03 2.44e-06 0 6.31e+03 4.32e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.763 0.0242 0.0871 3.28e-06 0 0 0 Tank initStep - 1 -2.43e+03 5e+03 2.21e+03 3.28e-06 0 5.98e+03 5.98e+03 expHall Transportation - 2 -2.43e+03 5e+03 2.21e+03 3.28e-06 0 0 5.98e+03 Tank Transportation - 3 -3.73e+03 3.89e+03 3.27e+03 3.28e-06 3.28e-06 2.01e+03 7.99e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.733 0.0241 0.0863 3.93e-06 0 0 0 Tank initStep - 1 -4.62e+03 350 -3.63e+03 3.93e-06 0 5.88e+03 5.88e+03 Tank OpRayleigh - 2 -1.8e+03 3.3e+03 -4.33e+03 3.93e-06 3.93e-06 4.14e+03 1e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.798 0.0242 0.0881 3.89e-06 0 0 0 Tank initStep - 1 5e+03 -375 -2.17e+03 3.89e-06 0 5.46e+03 5.46e+03 expHall Transportation - 2 1e+04 -1.46e+03 -5.52e+03 3.89e-06 0 6.12e+03 1.16e+04 world Transportation - 3 1.5e+04 -2.54e+03 -8.88e+03 3.89e-06 0 6.12e+03 1.77e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.751 0.0241 0.0868 2.43e-06 0 0 0 Tank initStep - 1 5e+03 1.48e+03 1.88e+03 2.43e-06 0 5.54e+03 5.54e+03 expHall Transportation - 2 1e+04 2.89e+03 5.07e+03 2.43e-06 0 6.1e+03 1.16e+04 world Transportation - 3 1.5e+04 4.3e+03 8.27e+03 2.43e-06 0 6.1e+03 1.77e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 0.808 0.0242 0.0884 0.362 0 0 0.837 Tank initStep - 9 0.88 0.0203 0.1 0.346 0.016 0.0729 0.91 Tank Cerenkov - 10 0.943 0.0228 0.113 0.325 0.0211 0.0666 0.977 Tank Cerenkov - 11 0.985 0.0396 0.148 0.307 0.0174 0.0588 1.04 Tank Cerenkov - 12 1.02 0.0498 0.181 0.299 0.00814 0.0527 1.09 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.985 0.0396 0.148 4.01e-06 0 0 0 Tank initStep - 1 -381 824 958 4.01e-06 4.01e-06 1.32e+03 1.32e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 12 1.02 0.0498 0.181 0.299 0 0 1.09 Tank initStep - 13 1.06 0.0404 0.209 0.287 0.0126 0.05 1.14 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.02 0.0498 0.181 3.34e-06 0 0 0 Tank initStep - 1 -448 446 -1.06e+03 3.34e-06 0 1.23e+03 1.23e+03 Tank OpRayleigh - 2 -907 568 -737 3.34e-06 3.34e-06 573 1.81e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 13 1.06 0.0404 0.209 0.287 0 0 1.14 Tank initStep - 14 1.1 0.0329 0.234 0.279 0.00793 0.0459 1.18 Tank Cerenkov - 15 1.14 0.0296 0.254 0.265 0.0133 0.0435 1.23 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.13 0.0298 0.253 3.45e-06 0 0 0 Tank initStep - 1 5e+03 305 69 3.45e-06 0 5.01e+03 5.01e+03 expHall Transportation - 2 5e+03 305 69 3.45e-06 0 0 5.01e+03 Tank Transportation - 3 3.52e+03 623 489 3.45e-06 3.45e-06 1.57e+03 6.58e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 15 1.14 0.0296 0.254 0.265 0 0 1.23 Tank initStep - 16 1.15 -0.000265 0.272 0.26 0.00584 0.0395 1.27 Tank Cerenkov - 17 1.16 -0.032 0.288 0.253 0.00652 0.0378 1.31 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.15 -0.00121 0.273 2.46e-06 0 0 0 Tank initStep - 1 4.85e+03 -204 -5e+03 2.46e-06 0 6.97e+03 6.97e+03 expHall Transportation - 2 4.85e+03 -204 -5e+03 2.46e-06 0 0 6.97e+03 Tank Transportation - 3 5e+03 -285 -4.84e+03 2.46e-06 0 231 7.2e+03 expHall Transportation - 4 5e+03 -285 -4.84e+03 2.46e-06 0 0 7.2e+03 Tank Transportation - 5 3.34e+03 -925 2.94e+03 2.46e-06 2.46e-06 7.99e+03 1.52e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 17 1.16 -0.032 0.288 0.253 0 0 1.31 Tank initStep - 18 1.18 -0.0632 0.301 0.237 0.0159 0.036 1.34 Tank Cerenkov - 19 1.22 -0.161 0.34 0.211 0.0261 0.129 1.47 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.19 -0.101 0.316 2.44e-06 0 0 0 Tank initStep - 1 392 5e+03 -3.6e+03 2.44e-06 0 6.17e+03 6.17e+03 expHall Transportation - 2 1.42e+03 8.81e+03 -1e+04 2.44e-06 0 7.52e+03 1.37e+04 world Transportation - 3 2.22e+03 1.18e+04 -1.5e+04 2.44e-06 0 5.88e+03 1.96e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 19 1.22 -0.161 0.34 0.211 0 0 1.47 Tank initStep - 20 1.21 -0.175 0.373 0.182 0.0291 0.0375 1.51 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.21 -0.174 0.372 3.65e-06 0 0 0 Tank initStep - 1 -5e+03 -441 3.64e+03 3.65e-06 0 6.2e+03 6.2e+03 expHall Transportation - 2 -5e+03 -441 3.64e+03 3.65e-06 0 0 6.2e+03 Tank Transportation - 3 -917 -4.47e+03 4.68e+03 3.65e-06 3.65e-06 5.83e+03 1.2e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 20 1.21 -0.175 0.373 0.182 0 0 1.51 Tank initStep - 21 1.21 -0.186 0.401 0.176 0.00634 0.0294 1.54 Tank msc - 22 1.21 -0.223 0.465 0.15 0.0254 0.0852 1.62 Tank eIoni - 23 1.19 -0.25 0.516 0.125 0.0251 0.0693 1.69 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.21 -0.225 0.469 3.76e-06 0 0 0 Tank initStep - 1 3.83e+03 -354 -5e+03 3.76e-06 0 6.31e+03 6.31e+03 expHall Transportation - 2 3.83e+03 -354 -5e+03 3.76e-06 0 0 6.31e+03 Tank Transportation - 3 5e+03 -472 -3.53e+03 3.76e-06 0 1.88e+03 8.19e+03 expHall Transportation - 4 5e+03 -472 -3.53e+03 3.76e-06 0 0 8.19e+03 Tank Transportation - 5 -2.54e+03 -424 5e+03 3.76e-06 0 1.14e+04 1.96e+04 expHall Transportation - 6 -2.54e+03 -424 5e+03 3.76e-06 0 0 1.96e+04 Tank Transportation - 7 -5e+03 -1.27e+03 1.76e+03 3.76e-06 0 4.15e+03 2.37e+04 expHall Transportation - 8 -5e+03 -1.27e+03 1.76e+03 3.76e-06 0 0 2.37e+04 Tank Transportation - 9 -2.31e+03 -1.53e+03 -5e+03 3.76e-06 0 7.28e+03 3.1e+04 expHall Transportation - 10 4.51e+03 -2.33e+03 -1e+04 3.76e-06 0 8.49e+03 3.95e+04 world Transportation - 11 1.13e+04 -3.13e+03 -1.5e+04 3.76e-06 0 8.49e+03 4.8e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 23 1.19 -0.25 0.516 0.125 0 0 1.69 Tank initStep - 24 1.19 -0.264 0.512 0.121 0.00391 0.0157 1.71 Tank msc - 25 1.17 -0.299 0.491 0.0664 0.0548 0.0529 1.76 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.18 -0.284 0.5 3.61e-06 0 0 0 Tank initStep - 1 2.48e+03 5e+03 2.11e+03 3.61e-06 0 5.97e+03 5.97e+03 expHall Transportation - 2 2.48e+03 5e+03 2.11e+03 3.61e-06 0 0 5.97e+03 Tank Transportation - 3 5e+03 1.33e+03 3.63e+03 3.61e-06 0 4.7e+03 1.07e+04 expHall Transportation - 4 5e+03 1.33e+03 3.63e+03 3.61e-06 0 0 1.07e+04 Tank Transportation - 5 4.22e+03 -796 5e+03 3.61e-06 0 2.65e+03 1.33e+04 expHall Transportation - 6 4.22e+03 -796 5e+03 3.61e-06 0 0 1.33e+04 Tank Transportation - 7 3.63e+03 -2.32e+03 4.5e+03 3.61e-06 3.61e-06 1.71e+03 1.5e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.18 -0.271 0.508 3.08e-06 0 0 0 Tank initStep - 1 -3.07e+03 5e+03 3.8e+03 3.08e-06 0 6.99e+03 6.99e+03 expHall Transportation - 2 -3.07e+03 5e+03 3.8e+03 3.08e-06 0 0 6.99e+03 Tank Transportation - 3 -4.69e+03 4.44e+03 5e+03 3.08e-06 0 2.09e+03 9.08e+03 expHall Transportation - 4 -4.69e+03 4.44e+03 5e+03 3.08e-06 0 0 9.08e+03 Tank Transportation - 5 -5e+03 4.61e+03 4.28e+03 3.08e-06 0 803 9.89e+03 expHall Transportation - 6 -5e+03 4.61e+03 4.28e+03 3.08e-06 0 0 9.89e+03 Tank Transportation - 7 -200 1.51e+03 -5e+03 3.08e-06 0 1.09e+04 2.08e+04 expHall Transportation - 8 -200 1.51e+03 -5e+03 3.08e-06 0 0 2.08e+04 Tank Transportation - 9 3.97e+03 -2.04e+03 5e+03 3.08e-06 0 1.14e+04 3.22e+04 expHall Transportation - 10 8.07e+03 -3.92e+03 1e+04 3.08e-06 0 6.74e+03 3.89e+04 world Transportation - 11 1.22e+04 -5.8e+03 1.5e+04 3.08e-06 0 6.74e+03 4.57e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 25 1.17 -0.299 0.491 0.0664 0 0 1.76 Tank initStep - 26 1.17 -0.303 0.493 0.0645 0.00187 0.00526 1.77 Tank msc - 27 1.15 -0.318 0.496 0.0493 0.0153 0.0272 1.79 Tank eIoni - 28 1.15 -0.32 0.48 0.0344 0.0149 0.0217 1.81 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.15 -0.32 0.483 3.27e-06 0 0 0 Tank initStep - 1 -5e+03 -458 -1.81e+03 3.27e-06 0 5.34e+03 5.34e+03 expHall Transportation - 2 -1e+04 -1.22e+03 -3.42e+03 3.27e-06 0 5.31e+03 1.06e+04 world Transportation - 3 -1.5e+04 -1.98e+03 -5.03e+03 3.27e-06 0 5.31e+03 1.6e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 28 1.15 -0.32 0.48 0.0344 0 0 1.81 Tank initStep - 29 1.15 -0.319 0.481 0.0329 0.00152 0.00163 1.82 Tank msc - 30 1.15 -0.311 0.486 0.018 0.0149 0.0155 1.83 Tank eIoni - 31 1.15 -0.309 0.484 0 0.018 0.00638 1.84 Tank eIoni - 32 1.15 -0.309 0.484 0 0 0 1.84 Tank annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.15 -0.309 0.484 0.511 0 0 0 Tank initStep - 1 42.5 -117 -48.4 0.172 2.92e-05 133 133 Tank compt - 2 18.1 11.6 15 0.141 1.36e-05 146 279 Tank compt - 3 19.3 11.2 20.4 0.138 1.36e-05 5.51 285 Tank compt - 4 0.136 11.3 153 0.131 0.000537 134 418 Tank compt - 5 20.9 -10.1 187 0.0949 2.92e-05 45.8 464 Tank compt - 6 7.72 -4.47 201 0.0872 2.92e-05 20 484 Tank compt - 7 25.2 281 294 0.0855 1.36e-05 301 785 Tank compt - 8 15 317 323 0.0855 0 47.2 832 Tank Rayl - 9 -9.43 412 347 0.0844 1.36e-05 101 933 Tank compt - 10 -19 446 340 0.0801 1.42e-05 35.7 969 Tank compt - 11 -11.3 457 338 0.0715 2.92e-05 13.6 982 Tank compt - 12 -21.9 468 339 0.066 2.92e-05 15.6 998 Tank compt - 13 -43.2 468 372 0 0.000538 38.9 1.04e+03 Tank phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.2 468 372 0.0654 0 0 0 Tank initStep - 1 -43.2 468 372 0.0617 0.00377 0.00545 0.00545 Tank msc - 2 -43.1 468 372 0.0418 0.0199 0.027 0.0324 Tank eIoni - 3 -43.1 468 372 0.023 0.0188 0.0196 0.0521 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 40, Parent ID = 39 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -43.1 468 372 3.62e-06 0 0 0 Tank initStep - 1 1.09e+03 5e+03 4.86e+03 3.62e-06 0 6.48e+03 6.48e+03 expHall Transportation - 2 1.09e+03 5e+03 4.86e+03 3.62e-06 0 0 6.48e+03 Tank Transportation - 3 1.14e+03 4.91e+03 5e+03 3.62e-06 0 167 6.65e+03 expHall Transportation - 4 1.14e+03 4.91e+03 5e+03 3.62e-06 0 0 6.65e+03 Tank Transportation - 5 1.56e+03 -5e+03 -2.75e+03 3.62e-06 0 1.26e+04 1.92e+04 expHall Transportation - 6 2.85e+03 -8.58e+03 -1e+04 3.62e-06 0 8.18e+03 2.74e+04 world Transportation - 7 3.73e+03 -1.1e+04 -1.5e+04 3.62e-06 0 5.65e+03 3.31e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 -43.1 468 372 0.023 0 0 0.0521 Tank initStep - 4 -43.1 468 372 0.0221 0.000827 0.000862 0.0529 Tank msc - 5 -43.1 468 372 0.0036 0.0185 0.0101 0.063 Tank eIoni - 6 -43.1 468 372 0 0.0036 0.000422 0.0635 Tank eIoni - 7 -43.1 468 372 0 0 0 0.0635 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -21.9 468 339 0.00548 0 0 0 Tank initStep - 1 -21.9 468 339 0.005 0.000485 6.94e-05 6.94e-05 Tank msc - 2 -21.9 468 339 0 0.005 0.000739 0.000808 Tank eIoni - 3 -21.9 468 339 0 0 0 0.000808 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 41, Parent ID = 38 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -21.9 468 339 2.36e-06 0 0 0 Tank initStep - 1 5e+03 -30.6 -2.02e+03 2.36e-06 0 5.57e+03 5.57e+03 expHall Transportation - 2 5e+03 -30.6 -2.02e+03 2.36e-06 0 0 5.57e+03 Tank Transportation - 3 3.85e+03 -363 -5e+03 2.36e-06 0 3.21e+03 8.78e+03 expHall Transportation - 4 3.85e+03 -363 -5e+03 2.36e-06 0 0 8.78e+03 Tank Transportation - 5 4.12e+03 -5e+03 -3.31e+03 2.36e-06 0 4.94e+03 1.37e+04 expHall Transportation - 6 4.87e+03 -1e+04 720 2.36e-06 0 6.47e+03 2.02e+04 world Transportation - 7 5.63e+03 -1.5e+04 4.75e+03 2.36e-06 0 6.47e+03 2.67e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.3 457 338 0.0086 0 0 0 Tank initStep - 1 -11.3 457 338 0.00832 0.000284 0.000152 0.000152 Tank msc - 2 -11.3 457 338 0 0.00832 0.00179 0.00194 Tank eIoni - 3 -11.3 457 338 0 0 0 0.00194 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 42, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.3 457 338 2.45e-06 0 0 0 Tank initStep - 1 -1e+03 5e+03 3.2e+03 2.45e-06 0 5.46e+03 5.46e+03 expHall Transportation - 2 -1e+03 5e+03 3.2e+03 2.45e-06 0 0 5.46e+03 Tank Transportation - 3 2.22e+03 3.22e+03 5e+03 2.45e-06 0 4.1e+03 9.56e+03 expHall Transportation - 4 2.22e+03 3.22e+03 5e+03 2.45e-06 0 0 9.56e+03 Tank Transportation - 5 5e+03 1.84e+03 2.07e+03 2.45e-06 0 4.26e+03 1.38e+04 expHall Transportation - 6 5e+03 1.84e+03 2.07e+03 2.45e-06 0 0 1.38e+04 Tank Transportation - 7 330 -5e+03 -4.29e+03 2.45e-06 0 1.04e+04 2.43e+04 expHall Transportation - 8 330 -5e+03 -4.29e+03 2.45e-06 0 0 2.43e+04 Tank Transportation - 9 276 -4.37e+03 -5e+03 2.45e-06 0 952 2.52e+04 expHall Transportation - 10 276 -4.37e+03 -5e+03 2.45e-06 0 0 2.52e+04 Tank Transportation - 11 -940 5e+03 2.79e+03 2.45e-06 0 1.22e+04 3.75e+04 expHall Transportation - 12 -940 5e+03 2.79e+03 2.45e-06 0 0 3.75e+04 Tank Transportation - 13 -912 4.84e+03 2.91e+03 2.45e-06 2.45e-06 201 3.77e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19 446 340 0.00427 0 0 0 Tank initStep - 1 -19 446 340 0.00398 0.00029 4.51e-05 4.51e-05 Tank msc - 2 -19 446 340 0 0.00398 0.0005 0.000545 Tank eIoni - 3 -19 446 340 0 0 0 0.000545 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -9.43 412 347 0.00112 0 0 0 Tank initStep - 1 -9.43 412 347 0.00108 4.81e-05 5.01e-06 5.01e-06 Tank msc - 2 -9.43 412 347 0 0.00108 5.84e-05 6.34e-05 Tank eIoni - 3 -9.43 412 347 0 0 0 6.34e-05 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 25.2 281 294 0.00166 0 0 0 Tank initStep - 1 25.2 281 294 0.00157 9e-05 9.33e-06 9.33e-06 Tank msc - 2 25.2 281 294 0 0.00157 0.000107 0.000116 Tank eIoni - 3 25.2 281 294 0 0 0 0.000116 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.72 -4.47 201 0.00767 0 0 0 Tank initStep - 1 7.72 -4.47 201 0.00694 0.000732 0.000124 0.000124 Tank msc - 2 7.72 -4.47 201 0 0.00694 0.00131 0.00143 Tank eIoni - 3 7.72 -4.47 201 0 0 0 0.00143 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 20.9 -10.1 187 0.0363 0 0 0 Tank initStep - 1 20.9 -10.1 187 0.0337 0.00259 0.00194 0.00194 Tank msc - 2 20.9 -10.1 187 0.0202 0.0135 0.0165 0.0184 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 44, Parent ID = 32 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 20.9 -10.1 187 2.42e-06 0 0 0 Tank initStep - 1 -2.39e+03 -5e+03 4.52e+03 2.42e-06 0 7.04e+03 7.04e+03 expHall Transportation - 2 -2.39e+03 -5e+03 4.52e+03 2.42e-06 0 0 7.04e+03 Tank Transportation - 3 -2.49e+03 -4.74e+03 4.77e+03 2.42e-06 2.42e-06 369 7.41e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 43, Parent ID = 32 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 20.9 -10.1 187 2.32e-06 0 0 0 Tank initStep - 1 7.25 46.8 171 2.32e-06 2.32e-06 60.8 60.8 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 20.9 -10.1 187 0.0202 0 0 0.0184 Tank initStep - 3 20.9 -10.1 187 0.02 0.000267 0.000689 0.0191 Tank msc - 4 20.9 -10.1 187 0 0.02 0.00841 0.0275 Tank eIoni - 5 20.9 -10.1 187 0 0 0 0.0275 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 32 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 20.9 -10.1 187 3.12e-06 0 0 0 Tank initStep - 1 194 176 819 3.12e-06 3.12e-06 681 681 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.136 11.3 153 0.00672 0 0 0 Tank initStep - 1 0.136 11.3 153 0.00669 3.22e-05 9.89e-05 9.89e-05 Tank msc - 2 0.135 11.3 153 0 0.00669 0.00123 0.00132 Tank eIoni - 3 0.135 11.3 153 0 0 0 0.00132 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 19.3 11.2 20.4 0.00232 0 0 0 Tank initStep - 1 19.3 11.2 20.4 0.00229 2.97e-05 1.62e-05 1.62e-05 Tank msc - 2 19.3 11.2 20.4 0 0.00229 0.000198 0.000214 Tank eIoni - 3 19.3 11.2 20.4 0 0 0 0.000214 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 18.1 11.6 15 0.0309 0 0 0 Tank initStep - 1 18.1 11.6 15 0.0302 0.000722 0.00146 0.00146 Tank msc - 2 18.1 11.6 15 0.0139 0.0163 0.0149 0.0164 Tank eIoni - 3 18.1 11.6 15 0 0.0139 0.00444 0.0208 Tank eIoni - 4 18.1 11.6 15 0 0 0 0.0208 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.5 -117 -48.4 0.339 0 0 0 Tank initStep - 1 42.5 -117 -48.4 0.328 0.0109 0.0639 0.0639 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 47, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.5 -117 -48.4 3.74e-06 0 0 0 Tank initStep - 1 945 627 5e+03 3.74e-06 0 5.18e+03 5.18e+03 expHall Transportation - 2 1.21e+03 -43 1e+04 3.74e-06 0 5.05e+03 1.02e+04 world Transportation - 3 1.47e+03 -713 1.5e+04 3.74e-06 0 5.05e+03 1.53e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 46, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.5 -117 -48.4 3.59e-06 0 0 0 Tank initStep - 1 55.4 -767 -618 3.59e-06 3.59e-06 864 864 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 42.5 -117 -48.4 0.328 0 0 0.0639 Tank initStep - 2 42.5 -117 -48.5 0.315 0.0135 0.06 0.124 Tank Cerenkov - 3 42.5 -118 -48.5 0.307 0.00737 0.0553 0.179 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.5 -117 -48.5 2.16e-06 0 0 0 Tank initStep - 1 5e+03 -4.44e+03 -2.76e+03 2.16e-06 0 7.12e+03 7.12e+03 expHall Transportation - 2 5e+03 -4.44e+03 -2.76e+03 2.16e-06 0 0 7.12e+03 Tank Transportation - 3 1.9e+03 -4.85e+03 -5e+03 2.16e-06 0 3.84e+03 1.1e+04 expHall Transportation - 4 -1e+04 -6.71e+03 -7.95e+03 2.16e-06 0 1.24e+04 2.34e+04 world Transportation - 5 -1.5e+04 -7.49e+03 -9.19e+03 2.16e-06 0 5.21e+03 2.86e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 42.5 -118 -48.5 0.307 0 0 0.179 Tank initStep - 4 42.6 -118 -48.5 0.3 0.00775 0.0528 0.232 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.5 -118 -48.5 2.49e-06 0 0 0 Tank initStep - 1 -755 -5e+03 1.09e+03 2.49e-06 0 5.08e+03 5.08e+03 expHall Transportation - 2 -755 -5e+03 1.09e+03 2.49e-06 0 0 5.08e+03 Tank Transportation - 3 -5e+03 -3.1e+03 -1.27e+03 2.49e-06 0 5.22e+03 1.03e+04 expHall Transportation - 4 -5e+03 -3.1e+03 -1.27e+03 2.49e-06 0 0 1.03e+04 Tank Transportation - 5 5e+03 574 4.48e+03 2.49e-06 0 1.21e+04 2.24e+04 expHall Transportation - 6 5e+03 574 4.48e+03 2.49e-06 0 0 2.24e+04 Tank Transportation - 7 2.76e+03 1.04e+03 5e+03 2.49e-06 0 2.35e+03 2.47e+04 expHall Transportation - 8 2.76e+03 1.04e+03 5e+03 2.49e-06 0 0 2.47e+04 Tank Transportation - 9 2.63e+03 1.1e+03 4.95e+03 2.49e-06 2.49e-06 148 2.49e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 42.6 -118 -48.5 0.3 0 0 0.232 Tank initStep - 5 42.6 -118 -48.5 0.291 0.0086 0.0503 0.282 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 50, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.6 -118 -48.5 2.74e-06 0 0 0 Tank initStep - 1 5e+03 -4.28e+03 -1.33e+03 2.74e-06 0 6.6e+03 6.6e+03 expHall Transportation - 2 5e+03 -4.28e+03 -1.33e+03 2.74e-06 0 0 6.6e+03 Tank Transportation - 3 4.65e+03 -5e+03 -1.44e+03 2.74e-06 0 809 7.41e+03 expHall Transportation - 4 2.45e+03 -1e+04 -4.87e+03 2.74e-06 0 6.45e+03 1.39e+04 world Transportation - 5 252 -1.5e+04 -8.3e+03 2.74e-06 0 6.45e+03 2.03e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 42.6 -118 -48.5 0.291 0 0 0.282 Tank initStep - 6 42.6 -118 -48.5 0.281 0.00957 0.0475 0.33 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.6 -118 -48.5 2.76e-06 0 0 0 Tank initStep - 1 1.97e+03 -5e+03 166 2.76e-06 0 5.25e+03 5.25e+03 expHall Transportation - 2 1.97e+03 -5e+03 166 2.76e-06 0 0 5.25e+03 Tank Transportation - 3 4.99e+03 5e+03 3.48e+03 2.76e-06 0 1.1e+04 1.62e+04 expHall Transportation - 4 9.7e+03 1e+04 7.98e+03 2.76e-06 0 8.21e+03 2.44e+04 world Transportation - 5 1.44e+04 1.5e+04 1.25e+04 2.76e-06 0 8.21e+03 3.26e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 51, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.6 -118 -48.5 2.99e-06 0 0 0 Tank initStep - 1 2.03e+03 -5e+03 -1.33e+03 2.99e-06 0 5.42e+03 5.42e+03 expHall Transportation - 2 9.22e+03 -1e+04 -4.24e+03 2.99e-06 0 9.23e+03 1.47e+04 world Transportation - 3 1.5e+04 -1.4e+04 -6.59e+03 2.99e-06 0 7.43e+03 2.21e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 42.6 -118 -48.5 0.281 0 0 0.33 Tank initStep - 7 42.6 -118 -48.5 0.272 0.00905 0.0446 0.374 Tank Cerenkov - 8 42.6 -118 -48.5 0.265 0.0078 0.0418 0.416 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.6 -118 -48.5 2.38e-06 0 0 0 Tank initStep - 1 1.36e+03 -2.2e+03 -5e+03 2.38e-06 0 5.53e+03 5.53e+03 expHall Transportation - 2 1.36e+03 -2.2e+03 -5e+03 2.38e-06 0 0 5.53e+03 Tank Transportation - 3 5e+03 -4.1e+03 -1.41e+03 2.38e-06 0 5.46e+03 1.1e+04 expHall Transportation - 4 5e+03 -4.1e+03 -1.41e+03 2.38e-06 0 0 1.1e+04 Tank Transportation - 5 4.6e+03 -5e+03 -584 2.38e-06 0 1.29e+03 1.23e+04 expHall Transportation - 6 1.71e+03 -9.42e+03 1e+04 2.38e-06 0 1.18e+04 2.41e+04 world Transportation - 7 352 -1.15e+04 1.5e+04 2.38e-06 0 5.59e+03 2.97e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 42.6 -118 -48.5 0.265 0 0 0.416 Tank initStep - 9 42.6 -118 -48.5 0.256 0.00848 0.0396 0.456 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.6 -118 -48.5 3.4e-06 0 0 0 Tank initStep - 1 1.4e+03 -845 -1.68e+03 3.4e-06 3.4e-06 2.24e+03 2.24e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 9 42.6 -118 -48.5 0.256 0 0 0.456 Tank initStep - 10 42.6 -118 -48.5 0.246 0.0106 0.0372 0.493 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 55, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.6 -118 -48.5 3.8e-06 0 0 0 Tank initStep - 1 889 236 -295 3.8e-06 0 950 950 Tank OpRayleigh - 2 -5e+03 1.06e+03 46.6 3.8e-06 0 5.96e+03 6.91e+03 expHall Transportation - 3 -1e+04 1.54e+03 -301 3.8e-06 0 5.03e+03 1.19e+04 world Transportation - 4 -1.5e+04 2.01e+03 -648 3.8e-06 0 5.03e+03 1.7e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 10 42.6 -118 -48.5 0.246 0 0 0.493 Tank initStep - 11 42.6 -118 -48.5 0.243 0.00272 0.0121 0.505 Tank Cerenkov - 12 42.6 -118 -48.5 0.242 0.000354 0.00153 0.507 Tank Cerenkov - 13 42.6 -118 -48.5 0.242 1.5e-05 0.00016 0.507 Tank Cerenkov - 14 42.6 -118 -48.5 0.242 0 0.000102 0.507 Tank Cerenkov - 15 42.6 -118 -48.5 0.242 2.07e-05 0.000102 0.507 Tank Cerenkov - 16 42.6 -118 -48.5 0.242 5.66e-06 2.19e-05 0.507 Tank Cerenkov - 17 42.6 -118 -48.6 0.2 0.042 0.136 0.643 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 56, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.6 -118 -48.5 3.32e-06 0 0 0 Tank initStep - 1 3.02e+03 -5e+03 4.25e+03 3.32e-06 0 7.15e+03 7.15e+03 expHall Transportation - 2 3.02e+03 -5e+03 4.25e+03 3.32e-06 0 0 7.15e+03 Tank Transportation - 3 3.62e+03 -3.45e+03 5e+03 3.32e-06 0 1.83e+03 8.98e+03 expHall Transportation - 4 3.62e+03 -3.45e+03 5e+03 3.32e-06 0 0 8.98e+03 Tank Transportation - 5 4.9e+03 5e+03 -1.94e+03 3.32e-06 0 1.1e+04 2e+04 expHall Transportation - 6 6.75e+03 9.79e+03 -1e+04 3.32e-06 0 9.55e+03 2.95e+04 world Transportation - 7 7.89e+03 1.28e+04 -1.5e+04 3.32e-06 0 5.93e+03 3.55e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 17 42.6 -118 -48.6 0.2 0 0 0.643 Tank initStep - 18 42.6 -118 -48.6 0.195 0.00506 0.0357 0.679 Tank msc - 19 42.7 -118 -48.7 0.176 0.0196 0.101 0.78 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 57, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.7 -118 -48.7 3.22e-06 0 0 0 Tank initStep - 1 4.55e+03 3.94e+03 -5e+03 3.22e-06 0 7.83e+03 7.83e+03 expHall Transportation - 2 1e+04 7.63e+03 -5.78e+03 3.22e-06 0 6.63e+03 1.45e+04 world Transportation - 3 1.5e+04 1.1e+04 -6.5e+03 3.22e-06 0 6.08e+03 2.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 19 42.7 -118 -48.7 0.176 0 0 0.78 Tank initStep - 20 42.6 -118 -48.7 0.166 0.00964 0.0289 0.809 Tank msc - 21 42.6 -118 -48.7 0.143 0.0235 0.0816 0.891 Tank eIoni - 22 42.6 -118 -48.8 0.124 0.0188 0.0669 0.958 Tank eIoni - 23 42.6 -118 -48.8 0.101 0.0226 0.0561 1.01 Tank eIoni - 24 42.6 -118 -48.8 0.0867 0.0145 0.0443 1.06 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 58, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.6 -118 -48.8 3.94e-06 0 0 0 Tank initStep - 1 -2.47e+03 -5e+03 3.86e+03 3.94e-06 0 6.74e+03 6.74e+03 expHall Transportation - 2 -6.14e+03 -8.01e+03 1e+04 3.94e-06 0 7.75e+03 1.45e+04 world Transportation - 3 -9.13e+03 -1.05e+04 1.5e+04 3.94e-06 0 6.32e+03 2.08e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 27 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 24 42.6 -118 -48.8 0.0867 0 0 1.06 Tank initStep - 25 42.6 -118 -48.8 0.0844 0.00227 0.00886 1.07 Tank msc - 26 42.6 -118 -48.8 0.0671 0.0173 0.0364 1.1 Tank eIoni - 27 42.6 -118 -48.8 0.0531 0.0141 0.0291 1.13 Tank eIoni - 28 42.6 -118 -48.9 0.0398 0.0133 0.0238 1.16 Tank eIoni - 29 42.6 -118 -48.9 0.0258 0.014 0.0189 1.18 Tank eIoni - 30 42.6 -118 -48.8 0 0.0258 0.0126 1.19 Tank eIoni - 31 42.6 -118 -48.8 0 0 0 1.19 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 60, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.6 -118 -48.8 3.1e-06 0 0 0 Tank initStep - 1 5e+03 2.68e+03 -1.27e+03 3.1e-06 0 5.82e+03 5.82e+03 expHall Transportation - 2 5e+03 2.68e+03 -1.27e+03 3.1e-06 0 0 5.82e+03 Tank Transportation - 3 3.87e+03 5e+03 -1.63e+03 3.1e-06 0 2.6e+03 8.43e+03 expHall Transportation - 4 -8.8e+03 1e+04 -3.52e+03 3.1e-06 0 1.38e+04 2.22e+04 world Transportation - 5 -1.5e+04 1.24e+04 -4.45e+03 3.1e-06 0 6.73e+03 2.89e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 59, Parent ID = 28 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 42.6 -118 -48.8 2.05e-06 0 0 0 Tank initStep - 1 -5e+03 -4.98e+03 1.85e+03 2.05e-06 0 7.26e+03 7.26e+03 expHall Transportation - 2 -5e+03 -4.98e+03 1.85e+03 2.05e-06 0 0 7.26e+03 Tank Transportation - 3 -4.98e+03 -5e+03 1.86e+03 2.05e-06 0 26.1 7.29e+03 expHall Transportation - 4 -4.98e+03 -5e+03 1.86e+03 2.05e-06 0 0 7.29e+03 Tank Transportation - 5 -4.67e+03 -4.72e+03 1.95e+03 2.05e-06 2.05e-06 429 7.72e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.15 -0.309 0.484 0.511 0 0 0 Tank initStep - 1 -30.7 89.7 38.1 0.304 2.92e-05 103 103 Tank compt - 2 -30.1 108 17.4 0.298 2.92e-05 27.9 131 Tank compt - 3 -16 159 -23.3 0.173 1.42e-05 66.2 197 Tank compt - 4 76.3 75.7 -38.7 0.11 2.92e-05 125 322 Tank compt - 5 65 75.9 -32.3 0.0953 2.92e-05 13 335 Tank compt - 6 68.3 88.2 -14.5 0.0801 0.000537 21.9 357 Tank compt - 7 116 93.2 -27.7 0.0754 1.36e-05 49.5 406 Tank compt - 8 136 120 -21.3 0.065 0.000537 34.5 441 Tank compt - 9 71.9 88.4 1.37 0.0553 2.92e-05 75.2 516 Tank compt - 10 73.7 90.9 4.55 0.0534 2.92e-05 4.44 520 Tank compt - 11 79.8 86.2 25.8 0.0502 1.36e-05 22.6 543 Tank compt - 12 82.9 137 63 0.0502 0 63.1 606 Tank Rayl - 13 83.2 141 67.3 0.0486 1.42e-05 5.77 612 Tank compt - 14 81.7 162 64.9 0.0447 1.36e-05 21.6 633 Tank compt - 15 85.1 164 72.8 0.0433 0.000537 8.85 642 Tank compt - 16 84.5 163 74.8 0.0376 1.42e-05 2.11 644 Tank compt - 17 101 164 61.7 0.034 1.36e-05 21.3 666 Tank compt - 18 83.9 188 57.6 0.0317 2.92e-05 29.8 695 Tank compt - 19 88.7 192 64.6 0 0.000538 9.25 705 Tank phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 88.7 192 64.6 0.0312 0 0 0 Tank initStep - 1 88.7 192 64.6 0.0288 0.00239 0.00149 0.00149 Tank msc - 2 88.7 192 64.6 0.0104 0.0184 0.0143 0.0157 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 79, Parent ID = 78 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 88.7 192 64.6 3.33e-06 0 0 0 Tank initStep - 1 -2.56e+03 -5e+03 1.18e+03 3.33e-06 0 5.94e+03 5.94e+03 expHall Transportation - 2 -5.76e+03 -1e+04 3.24e+03 3.33e-06 0 6.28e+03 1.22e+04 world Transportation - 3 -8.95e+03 -1.5e+04 5.31e+03 3.33e-06 0 6.28e+03 1.85e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 88.7 192 64.6 0.0104 0 0 0.0157 Tank initStep - 3 88.7 192 64.6 0.0103 7.68e-05 0.000211 0.016 Tank msc - 4 88.7 192 64.6 0 0.0103 0.00261 0.0186 Tank eIoni - 5 88.7 192 64.6 0 0 0 0.0186 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 80, Parent ID = 78 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 88.7 192 64.6 2.54e-06 0 0 0 Tank initStep - 1 -3.99e+03 -5e+03 257 2.54e-06 0 6.61e+03 6.61e+03 expHall Transportation - 2 -3.99e+03 -5e+03 257 2.54e-06 0 0 6.61e+03 Tank Transportation - 3 -5e+03 -3.75e+03 641 2.54e-06 0 1.65e+03 8.26e+03 expHall Transportation - 4 -5e+03 -3.75e+03 641 2.54e-06 0 0 8.26e+03 Tank Transportation - 5 -847 5e+03 -3.23e+03 2.54e-06 0 1.04e+04 1.87e+04 expHall Transportation - 6 -847 5e+03 -3.23e+03 2.54e-06 0 0 1.87e+04 Tank Transportation - 7 5e+03 -598 -4.78e+03 2.54e-06 0 8.24e+03 2.69e+04 expHall Transportation - 8 5e+03 -598 -4.78e+03 2.54e-06 0 0 2.69e+04 Tank Transportation - 9 128 -5e+03 -4.75e+03 2.54e-06 0 6.57e+03 3.35e+04 expHall Transportation - 10 128 -5e+03 -4.75e+03 2.54e-06 0 0 3.35e+04 Tank Transportation - 11 -5e+03 3.21e+03 -4.38e+03 2.54e-06 0 9.69e+03 4.32e+04 expHall Transportation - 12 -5e+03 3.21e+03 -4.38e+03 2.54e-06 0 0 4.32e+04 Tank Transportation - 13 -3.34e+03 4.83e+03 -5e+03 2.54e-06 0 2.4e+03 4.56e+04 expHall Transportation - 14 -3.34e+03 4.83e+03 -5e+03 2.54e-06 0 0 4.56e+04 Tank Transportation - 15 -2.97e+03 5e+03 -4.87e+03 2.54e-06 0 422 4.6e+04 expHall Transportation - 16 -2.97e+03 5e+03 -4.87e+03 2.54e-06 0 0 4.6e+04 Tank Transportation - 17 -714 3.56e+03 -4.13e+03 2.54e-06 2.54e-06 2.78e+03 4.88e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 83.9 188 57.6 0.00227 0 0 0 Tank initStep - 1 83.9 188 57.6 0.00227 0 1.56e-05 1.56e-05 Tank msc - 2 83.9 188 57.6 0 0.00227 0.000195 0.00021 Tank eIoni - 3 83.9 188 57.6 0 0 0 0.00021 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 101 164 61.7 0.00358 0 0 0 Tank initStep - 1 101 164 61.7 0.00343 0.000145 3.33e-05 3.33e-05 Tank msc - 2 101 164 61.7 0 0.00343 0.000388 0.000422 Tank eIoni - 3 101 164 61.7 0 0 0 0.000422 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 84.5 163 74.8 0.0056 0 0 0 Tank initStep - 1 84.5 163 74.8 0.00539 0.000212 7.2e-05 7.2e-05 Tank msc - 2 84.5 163 74.8 0 0.00539 0.000842 0.000914 Tank eIoni - 3 84.5 163 74.8 0 0 0 0.000914 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 81, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 84.5 163 74.8 3.77e-06 0 0 0 Tank initStep - 1 4e+03 -2.59e+03 -5e+03 3.77e-06 0 6.97e+03 6.97e+03 expHall Transportation - 2 4e+03 -2.59e+03 -5e+03 3.77e-06 0 0 6.97e+03 Tank Transportation - 3 5e+03 -2.4e+03 -3.3e+03 3.77e-06 0 1.98e+03 8.95e+03 expHall Transportation - 4 5e+03 -2.4e+03 -3.3e+03 3.77e-06 0 0 8.95e+03 Tank Transportation - 5 -1.97e+03 -1.17e+03 5e+03 3.77e-06 0 1.09e+04 1.99e+04 expHall Transportation - 6 -1.97e+03 -1.17e+03 5e+03 3.77e-06 0 0 1.99e+04 Tank Transportation - 7 -5e+03 -1.37e+03 -182 3.77e-06 0 6.01e+03 2.59e+04 expHall Transportation - 8 -5e+03 -1.37e+03 -182 3.77e-06 0 0 2.59e+04 Tank Transportation - 9 1.79e+03 -1.36e+03 -5e+03 3.77e-06 0 8.33e+03 3.42e+04 expHall Transportation - 10 1.79e+03 -1.36e+03 -5e+03 3.77e-06 0 0 3.42e+04 Tank Transportation - 11 2.67e+03 -1.57e+03 -4.46e+03 3.77e-06 3.77e-06 1.06e+03 3.53e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 85.1 164 72.8 0.000897 0 0 0 Tank initStep - 1 85.1 164 72.8 0.000897 0 3.53e-06 3.53e-06 Tank msc - 2 85.1 164 72.8 0 0.000897 4.42e-05 4.77e-05 Tank eIoni - 3 85.1 164 72.8 0 0 0 4.77e-05 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 81.7 162 64.9 0.00386 0 0 0 Tank initStep - 1 81.7 162 64.9 0.00378 8.46e-05 3.8e-05 3.8e-05 Tank msc - 2 81.7 162 64.9 0 0.00378 0.000457 0.000495 Tank eIoni - 3 81.7 162 64.9 0 0 0 0.000495 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 83.2 141 67.3 0.0016 0 0 0 Tank initStep - 1 83.2 141 67.3 0.00152 7.32e-05 8.75e-06 8.75e-06 Tank msc - 2 83.2 141 67.3 0 0.00152 0.000101 0.00011 Tank eIoni - 3 83.2 141 67.3 0 0 0 0.00011 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 79.8 86.2 25.8 0.00317 0 0 0 Tank initStep - 1 79.8 86.2 25.8 0.00301 0.000156 2.72e-05 2.72e-05 Tank msc - 2 79.8 86.2 25.8 0 0.00301 0.000312 0.000339 Tank eIoni - 3 79.8 86.2 25.8 0 0 0 0.000339 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 73.7 90.9 4.55 0.0019 0 0 0 Tank initStep - 1 73.7 90.9 4.55 0.00186 4.07e-05 1.17e-05 1.17e-05 Tank msc - 2 73.7 90.9 4.55 0 0.00186 0.000141 0.000152 Tank eIoni - 3 73.7 90.9 4.55 0 0 0 0.000152 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 71.9 88.4 1.37 0.00965 0 0 0 Tank initStep - 1 71.9 88.4 1.37 0.00951 0.00014 0.000186 0.000186 Tank msc - 2 71.9 88.4 1.37 0 0.00951 0.00227 0.00245 Tank eIoni - 3 71.9 88.4 1.37 0 0 0 0.00245 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 82, Parent ID = 69 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 71.9 88.4 1.37 2.28e-06 0 0 0 Tank initStep - 1 -4.6e+03 -4.79e+03 -5e+03 2.28e-06 0 8.4e+03 8.4e+03 expHall Transportation - 2 -4.6e+03 -4.79e+03 -5e+03 2.28e-06 0 0 8.4e+03 Tank Transportation - 3 -4.92e+03 -5e+03 -4.61e+03 2.28e-06 0 545 8.95e+03 expHall Transportation - 4 -4.92e+03 -5e+03 -4.61e+03 2.28e-06 0 0 8.95e+03 Tank Transportation - 5 -5e+03 -4.8e+03 -4.46e+03 2.28e-06 0 265 9.21e+03 expHall Transportation - 6 -5e+03 -4.8e+03 -4.46e+03 2.28e-06 0 0 9.21e+03 Tank Transportation - 7 -4.31e+03 -5e+03 -3.96e+03 2.28e-06 0 878 1.01e+04 expHall Transportation - 8 -4.31e+03 -5e+03 -3.96e+03 2.28e-06 0 0 1.01e+04 Tank Transportation - 9 1.47e+03 -2.16e+03 3.34e+03 2.28e-06 2.28e-06 9.73e+03 1.98e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 136 120 -21.3 0.00985 0 0 0 Tank initStep - 1 136 120 -21.3 0.00971 0.000149 0.000193 0.000193 Tank msc - 2 136 120 -21.3 0 0.00971 0.00235 0.00254 Tank eIoni - 3 136 120 -21.3 0 0 0 0.00254 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 116 93.2 -27.7 0.00472 0 0 0 Tank initStep - 1 116 93.2 -27.7 0.00441 0.000308 5.35e-05 5.35e-05 Tank msc - 2 116 93.2 -27.7 0 0.00441 0.000596 0.00065 Tank eIoni - 3 116 93.2 -27.7 0 0 0 0.00065 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 68.3 88.2 -14.5 0.0147 0 0 0 Tank initStep - 1 68.3 88.2 -14.5 0.0135 0.00122 0.000391 0.000391 Tank msc - 2 68.3 88.2 -14.5 0 0.0135 0.0042 0.00459 Tank eIoni - 3 68.3 88.2 -14.5 0 0 0 0.00459 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 83, Parent ID = 66 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 68.3 88.2 -14.5 3.2e-06 0 0 0 Tank initStep - 1 -5e+03 -1.75e+03 920 3.2e-06 0 5.47e+03 5.47e+03 expHall Transportation - 2 -5e+03 -1.75e+03 920 3.2e-06 0 0 5.47e+03 Tank Transportation - 3 -4.01e+03 -4.96e+03 -366 3.2e-06 3.2e-06 3.59e+03 9.07e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 65 75.9 -32.3 0.0148 0 0 0 Tank initStep - 1 65 75.9 -32.3 0.0145 0.000259 0.000393 0.000393 Tank msc - 2 65 75.9 -32.3 0 0.0145 0.00477 0.00516 Tank eIoni - 3 65 75.9 -32.3 0 0 0 0.00516 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 84, Parent ID = 65 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 65 75.9 -32.3 3.72e-06 0 0 0 Tank initStep - 1 1.75e+03 -5e+03 -3.12e+03 3.72e-06 0 6.18e+03 6.18e+03 expHall Transportation - 2 1.75e+03 -5e+03 -3.12e+03 3.72e-06 0 0 6.18e+03 Tank Transportation - 3 3.8e+03 -3.42e+03 -5e+03 3.72e-06 0 3.2e+03 9.37e+03 expHall Transportation - 4 3.8e+03 -3.42e+03 -5e+03 3.72e-06 0 0 9.37e+03 Tank Transportation - 5 5e+03 -2.44e+03 -4.36e+03 3.72e-06 0 1.68e+03 1.1e+04 expHall Transportation - 6 5e+03 -2.44e+03 -4.36e+03 3.72e-06 0 0 1.1e+04 Tank Transportation - 7 -4.58e+03 3.77e+03 1.36e+03 3.72e-06 3.72e-06 1.28e+04 2.38e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 76.3 75.7 -38.7 0.0625 0 0 0 Tank initStep - 1 76.3 75.7 -38.7 0.059 0.00344 0.00503 0.00503 Tank msc - 2 76.3 75.7 -38.7 0.00653 0.0525 0.026 0.031 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 87, Parent ID = 64 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 76.3 75.7 -38.7 4.08e-06 0 0 0 Tank initStep - 1 2.94e+03 -1.13e+03 -3.24e+03 4.08e-06 4.08e-06 4.46e+03 4.46e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 86, Parent ID = 64 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 76.3 75.7 -38.7 3.52e-06 0 0 0 Tank initStep - 1 -2.21e+03 -4.3e+03 5e+03 3.52e-06 0 7.05e+03 7.05e+03 expHall Transportation - 2 -4.08e+03 -1e+04 8.05e+03 3.52e-06 0 6.73e+03 1.38e+04 world Transportation - 3 -5.72e+03 -1.5e+04 1.07e+04 3.52e-06 0 5.9e+03 1.97e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 85, Parent ID = 64 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 76.3 75.7 -38.7 2.62e-06 0 0 0 Tank initStep - 1 -2.33e+03 -1.08e+03 -5e+03 2.62e-06 0 5.63e+03 5.63e+03 expHall Transportation - 2 -2.33e+03 -1.08e+03 -5e+03 2.62e-06 0 0 5.63e+03 Tank Transportation - 3 -5e+03 -1.99e+03 -1.97e+03 2.62e-06 0 4.14e+03 9.77e+03 expHall Transportation - 4 -5e+03 -1.99e+03 -1.97e+03 2.62e-06 0 0 9.77e+03 Tank Transportation - 5 -1.53e+03 -5e+03 3.06e+03 2.62e-06 0 6.81e+03 1.66e+04 expHall Transportation - 6 -1.53e+03 -5e+03 3.06e+03 2.62e-06 0 0 1.66e+04 Tank Transportation - 7 -110 -3.3e+03 5e+03 2.62e-06 0 2.95e+03 1.95e+04 expHall Transportation - 8 -110 -3.3e+03 5e+03 2.62e-06 0 0 1.95e+04 Tank Transportation - 9 5e+03 4.84e+03 2.43e+03 2.62e-06 0 9.95e+03 2.95e+04 expHall Transportation - 10 5e+03 4.84e+03 2.43e+03 2.62e-06 0 0 2.95e+04 Tank Transportation - 11 4.82e+03 5e+03 2.4e+03 2.62e-06 0 247 2.97e+04 expHall Transportation - 12 4.82e+03 5e+03 2.4e+03 2.62e-06 0 0 2.97e+04 Tank Transportation - 13 -4.63e+03 -3.17e+03 188 2.62e-06 2.62e-06 1.27e+04 4.24e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 76.3 75.7 -38.7 0.00653 0 0 0.031 Tank initStep - 3 76.3 75.7 -38.7 0.00636 0.000167 9.39e-05 0.0311 Tank msc - 4 76.3 75.7 -38.7 0 0.00636 0.00112 0.0322 Tank eIoni - 5 76.3 75.7 -38.7 0 0 0 0.0322 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16 159 -23.3 0.125 0 0 0 Tank initStep - 1 -16 159 -23.3 0.122 0.0038 0.0166 0.0166 Tank msc - 2 -16 159 -23.3 0.107 0.0149 0.055 0.0716 Tank eIoni - 3 -16 159 -23.4 0.0908 0.016 0.0471 0.119 Tank eIoni - 4 -16 159 -23.4 0.0758 0.015 0.0393 0.158 Tank eIoni - 5 -16 159 -23.4 0.0568 0.0189 0.0327 0.191 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 89, Parent ID = 63 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16 159 -23.4 3.08e-06 0 0 0 Tank initStep - 1 -2.78e+03 4.5e+03 5e+03 3.08e-06 0 7.19e+03 7.19e+03 expHall Transportation - 2 -2.78e+03 4.5e+03 5e+03 3.08e-06 0 0 7.19e+03 Tank Transportation - 3 -2.89e+03 5e+03 4.62e+03 3.08e-06 0 642 7.83e+03 expHall Transportation - 4 -2.89e+03 5e+03 4.62e+03 3.08e-06 0 0 7.83e+03 Tank Transportation - 5 -3.2e+03 3.5e+03 3e+03 3.08e-06 3.08e-06 2.23e+03 1.01e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 88, Parent ID = 63 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16 159 -23.4 2.23e-06 0 0 0 Tank initStep - 1 -2.02e+03 5e+03 4.01e+03 2.23e-06 0 6.61e+03 6.61e+03 expHall Transportation - 2 -2.02e+03 5e+03 4.01e+03 2.23e-06 0 0 6.61e+03 Tank Transportation - 3 -3.46e+03 3.85e+03 5e+03 2.23e-06 0 2.1e+03 8.71e+03 expHall Transportation - 4 -3.46e+03 3.85e+03 5e+03 2.23e-06 0 0 8.71e+03 Tank Transportation - 5 -5e+03 1.5e+03 3.17e+03 2.23e-06 0 3.35e+03 1.21e+04 expHall Transportation - 6 -5e+03 1.5e+03 3.17e+03 2.23e-06 0 0 1.21e+04 Tank Transportation - 7 965 -5e+03 4.43e+03 2.23e-06 0 8.91e+03 2.1e+04 expHall Transportation - 8 1e+04 -8.42e+03 7.79e+03 2.23e-06 0 1.02e+04 3.12e+04 world Transportation - 9 1.5e+04 -1.03e+04 9.65e+03 2.23e-06 0 5.66e+03 3.69e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 -16 159 -23.4 0.0568 0 0 0.191 Tank initStep - 6 -16 159 -23.4 0.0544 0.00249 0.00427 0.195 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 91, Parent ID = 63 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16 159 -23.4 4.02e-06 0 0 0 Tank initStep - 1 -2.54e+03 -769 -5e+03 4.02e-06 0 5.66e+03 5.66e+03 expHall Transportation - 2 -2.54e+03 -769 -5e+03 4.02e-06 0 0 5.66e+03 Tank Transportation - 3 -4.37e+03 -2.73e+03 -3.94e+03 4.02e-06 4.02e-06 2.89e+03 8.54e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 90, Parent ID = 63 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16 159 -23.4 3.35e-06 0 0 0 Tank initStep - 1 -253 992 -395 3.35e-06 0 942 942 Tank OpRayleigh - 2 -3.86e+03 5e+03 -3.38e+03 3.35e-06 0 6.17e+03 7.11e+03 expHall Transportation - 3 -3.86e+03 5e+03 -3.38e+03 3.35e-06 0 0 7.11e+03 Tank Transportation - 4 -5e+03 4.31e+03 -3.96e+03 3.35e-06 0 1.45e+03 8.56e+03 expHall Transportation - 5 -5e+03 4.31e+03 -3.96e+03 3.35e-06 0 0 8.56e+03 Tank Transportation - 6 -2.5e+03 863 -4.7e+03 3.35e-06 3.35e-06 4.33e+03 1.29e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 -16 159 -23.4 0.0544 0 0 0.195 Tank initStep - 7 -16 159 -23.4 0.0527 0.00166 0.00395 0.199 Tank msc - 8 -16 159 -23.4 0.0383 0.0144 0.0236 0.222 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 92, Parent ID = 63 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16 159 -23.4 2.4e-06 0 0 0 Tank initStep - 1 553 2.01e+03 -603 2.4e-06 2.4e-06 2.02e+03 2.02e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 -16 159 -23.4 0.0383 0 0 0.222 Tank initStep - 9 -16 159 -23.4 0.0374 0.000889 0.00213 0.225 Tank msc - 10 -16 159 -23.4 0.00877 0.0286 0.018 0.243 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 93, Parent ID = 63 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16 159 -23.4 3.49e-06 0 0 0 Tank initStep - 1 -781 1.35e+03 -877 3.49e-06 3.49e-06 1.65e+03 1.65e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 10 -16 159 -23.4 0.00877 0 0 0.243 Tank initStep - 11 -16 159 -23.4 0.00794 0.00083 0.000157 0.243 Tank msc - 12 -16 159 -23.4 0 0.00794 0.00165 0.244 Tank eIoni - 13 -16 159 -23.4 0 0 0 0.244 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.1 108 17.4 0.00552 0 0 0 Tank initStep - 1 -30.1 108 17.4 0.00543 9.48e-05 7.03e-05 7.03e-05 Tank msc - 2 -30.1 108 17.4 0 0.00543 0.000852 0.000923 Tank eIoni - 3 -30.1 108 17.4 0 0 0 0.000923 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.7 89.7 38.1 0.207 0 0 0 Tank initStep - 1 -30.7 89.8 38.1 0.198 0.009 0.0376 0.0376 Tank msc - 2 -30.7 89.8 38.2 0.171 0.0271 0.103 0.141 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 96, Parent ID = 61 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.7 89.8 38.1 3.87e-06 0 0 0 Tank initStep - 1 1.99e+03 5e+03 -3.16e+03 3.87e-06 0 6.2e+03 6.2e+03 expHall Transportation - 2 1.99e+03 5e+03 -3.16e+03 3.87e-06 0 0 6.2e+03 Tank Transportation - 3 2.3e+03 4.29e+03 -3.7e+03 3.87e-06 3.87e-06 946 7.15e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 95, Parent ID = 61 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.7 89.8 38.2 3.76e-06 0 0 0 Tank initStep - 1 -2.9e+03 -800 5e+03 3.76e-06 0 5.8e+03 5.8e+03 expHall Transportation - 2 -2.9e+03 -800 5e+03 3.76e-06 0 0 5.8e+03 Tank Transportation - 3 -5e+03 -1.17e+03 4.12e+03 3.76e-06 0 2.31e+03 8.11e+03 expHall Transportation - 4 -5e+03 -1.17e+03 4.12e+03 3.76e-06 0 0 8.11e+03 Tank Transportation - 5 -3.58e+03 -5e+03 4.65e+03 3.76e-06 0 4.12e+03 1.22e+04 expHall Transportation - 6 -3.58e+03 -5e+03 4.65e+03 3.76e-06 0 0 1.22e+04 Tank Transportation - 7 4.97e+03 5e+03 352 3.76e-06 0 1.38e+04 2.61e+04 expHall Transportation - 8 4.97e+03 5e+03 352 3.76e-06 0 0 2.61e+04 Tank Transportation - 9 5e+03 4.96e+03 319 3.76e-06 0 61.9 2.61e+04 expHall Transportation - 10 5e+03 4.96e+03 319 3.76e-06 0 0 2.61e+04 Tank Transportation - 11 3.35e+03 2.71e+03 -2.52e+03 3.76e-06 0 3.98e+03 3.01e+04 Tank OpRayleigh - 12 434 -5e+03 1.58e+03 3.76e-06 0 9.21e+03 3.93e+04 expHall Transportation - 13 -754 -1e+04 7.85e+03 3.76e-06 0 8.1e+03 4.74e+04 world Transportation - 14 -1.94e+03 -1.5e+04 1.41e+04 3.76e-06 0 8.1e+03 5.55e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 94, Parent ID = 61 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.7 89.8 38.2 2.46e-06 0 0 0 Tank initStep - 1 -5e+03 4.47e+03 451 2.46e-06 0 6.63e+03 6.63e+03 expHall Transportation - 2 -5.99e+03 1e+04 1.26e+03 2.46e-06 0 5.68e+03 1.23e+04 world Transportation - 3 -6.89e+03 1.5e+04 2e+03 2.46e-06 0 5.13e+03 1.74e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -30.7 89.8 38.2 0.171 0 0 0.141 Tank initStep - 3 -30.7 89.8 38.2 0.163 0.00843 0.0277 0.169 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 97, Parent ID = 61 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.7 89.8 38.2 2.68e-06 0 0 0 Tank initStep - 1 3.55e+03 -953 -5e+03 2.68e-06 0 6.27e+03 6.27e+03 expHall Transportation - 2 3.55e+03 -953 -5e+03 2.68e-06 0 0 6.27e+03 Tank Transportation - 3 5e+03 -382 -3.62e+03 2.68e-06 0 2.08e+03 8.35e+03 expHall Transportation - 4 5e+03 -382 -3.62e+03 2.68e-06 0 0 8.35e+03 Tank Transportation - 5 500 2.01e+03 -213 2.68e-06 2.68e-06 6.13e+03 1.45e+04 Bubble Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 -30.7 89.8 38.2 0.163 0 0 0.169 Tank initStep - 4 -30.7 89.9 38.2 0.158 0.00505 0.0255 0.194 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 98, Parent ID = 61 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.7 89.9 38.2 3.51e-06 0 0 0 Tank initStep - 1 -5e+03 1.33e+03 -2.33e+03 3.51e-06 0 5.64e+03 5.64e+03 expHall Transportation - 2 -1e+04 2.77e+03 -4.99e+03 3.51e-06 0 5.85e+03 1.15e+04 world Transportation - 3 -1.5e+04 4.21e+03 -7.66e+03 3.51e-06 0 5.85e+03 1.73e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -30.7 89.9 38.2 0.158 0 0 0.194 Tank initStep - 5 -30.7 89.9 38.2 0.148 0.0099 0.0242 0.218 Tank msc - 6 -30.6 89.9 38.3 0.118 0.0299 0.0701 0.289 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 100, Parent ID = 61 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.6 89.9 38.2 3.15e-06 0 0 0 Tank initStep - 1 5e+03 663 3.26e+03 3.15e-06 0 6e+03 6e+03 expHall Transportation - 2 9.13e+03 1.35e+03 1e+04 3.15e-06 0 7.94e+03 1.39e+04 world Transportation - 3 1.22e+04 1.86e+03 1.5e+04 3.15e-06 0 5.88e+03 1.98e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 99, Parent ID = 61 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.6 89.9 38.2 3.37e-06 0 0 0 Tank initStep - 1 2.24e+03 106 5e+03 3.37e-06 0 5.46e+03 5.46e+03 expHall Transportation - 2 2.24e+03 106 5e+03 3.37e-06 0 0 5.46e+03 Tank Transportation - 3 5e+03 -655 3.53e+03 3.37e-06 0 3.22e+03 8.68e+03 expHall Transportation - 4 1e+04 -2.75e+03 -1.63e+03 3.37e-06 0 7.48e+03 1.62e+04 world Transportation - 5 1.5e+04 -4.84e+03 -6.78e+03 3.37e-06 0 7.48e+03 2.36e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 -30.6 89.9 38.3 0.118 0 0 0.289 Tank initStep - 7 -30.6 89.9 38.3 0.113 0.00467 0.015 0.304 Tank msc - 8 -30.6 89.9 38.3 0.0975 0.0158 0.0505 0.354 Tank eIoni - 9 -30.6 89.9 38.3 0.0838 0.0137 0.0425 0.396 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 101, Parent ID = 61 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.6 89.9 38.3 3.53e-06 0 0 0 Tank initStep - 1 -2.73e+03 5e+03 -3.57e+03 3.53e-06 0 6.67e+03 6.67e+03 expHall Transportation - 2 -2.73e+03 5e+03 -3.57e+03 3.53e-06 0 0 6.67e+03 Tank Transportation - 3 -3.72e+03 4.81e+03 -5e+03 3.53e-06 0 1.74e+03 8.41e+03 expHall Transportation - 4 -1e+04 3.07e+03 -8.14e+03 3.53e-06 0 7.24e+03 1.56e+04 world Transportation - 5 -1.5e+04 1.68e+03 -1.06e+04 3.53e-06 0 5.76e+03 2.14e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 26 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 9 -30.6 89.9 38.3 0.0838 0 0 0.396 Tank initStep - 10 -30.5 89.9 38.3 0.0807 0.00306 0.00836 0.405 Tank msc - 11 -30.5 89.9 38.3 0.0685 0.0122 0.0348 0.44 Tank eIoni - 12 -30.5 89.9 38.2 0.0514 0.0171 0.0297 0.469 Tank eIoni - 13 -30.5 89.9 38.2 0.0398 0.0115 0.0232 0.492 Tank eIoni - 14 -30.5 89.9 38.2 0.019 0.0209 0.0189 0.511 Tank eIoni - 15 -30.5 89.9 38.2 0 0.019 0.00768 0.519 Tank eIoni - 16 -30.5 89.9 38.2 0 0 0 0.519 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 103, Parent ID = 61 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.5 89.9 38.2 3.57e-06 0 0 0 Tank initStep - 1 5e+03 608 666 3.57e-06 0 5.1e+03 5.1e+03 expHall Transportation - 2 1e+04 3.85e+03 4.43e+03 3.57e-06 0 7.05e+03 1.21e+04 world Transportation - 3 1.5e+04 7.1e+03 8.2e+03 3.57e-06 0 7.05e+03 1.92e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 102, Parent ID = 61 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.5 89.9 38.2 2.36e-06 0 0 0 Tank initStep - 1 -2.08e+03 -2.79e+03 -5e+03 2.36e-06 0 6.16e+03 6.16e+03 expHall Transportation - 2 -2.08e+03 -2.79e+03 -5e+03 2.36e-06 0 0 6.16e+03 Tank Transportation - 3 -2.15e+03 -5e+03 -2.91e+03 2.36e-06 0 3.04e+03 9.2e+03 expHall Transportation - 4 -2.15e+03 -5e+03 -2.91e+03 2.36e-06 0 0 9.2e+03 Tank Transportation - 5 -2.7e+03 -3.44e+03 -1.44e+03 2.36e-06 2.36e-06 2.21e+03 1.14e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.15 -0.309 0.484 2.35e-06 0 0 0 Tank initStep - 1 -1.67e+03 4.66e+03 3.84e+03 2.35e-06 2.35e-06 6.27e+03 6.27e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 0.5 0 0 0 Tank initStep - 1 0.133 -0.0274 0.0152 0.476 0.0242 0.139 0.139 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0154 -0.00319 0.00177 3.56e-06 0 0 0 Tank initStep - 1 2.25e+03 5e+03 171 3.56e-06 0 5.49e+03 5.49e+03 expHall Transportation - 2 6.01e+03 1e+04 -559 3.56e-06 0 6.3e+03 1.18e+04 world Transportation - 3 9.76e+03 1.5e+04 -1.29e+03 3.56e-06 0 6.3e+03 1.81e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0974 -0.0201 0.0112 2.63e-06 0 0 0 Tank initStep - 1 -293 5e+03 -2.22e+03 2.63e-06 0 5.48e+03 5.48e+03 expHall Transportation - 2 -293 5e+03 -2.22e+03 2.63e-06 0 0 5.48e+03 Tank Transportation - 3 -1.55e+03 3.83e+03 -5e+03 2.63e-06 0 3.27e+03 8.74e+03 expHall Transportation - 4 -1.55e+03 3.83e+03 -5e+03 2.63e-06 0 0 8.74e+03 Tank Transportation - 5 -4.7e+03 1.42e+03 5e+03 2.63e-06 0 1.08e+04 1.95e+04 expHall Transportation - 6 -6.56e+03 106 1e+04 2.63e-06 0 5.49e+03 2.5e+04 world Transportation - 7 -8.41e+03 -1.21e+03 1.5e+04 2.63e-06 0 5.49e+03 3.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0304 -0.00628 0.00349 3.39e-06 0 0 0 Tank initStep - 1 5e+03 -4.58e+03 309 3.39e-06 0 6.79e+03 6.79e+03 expHall Transportation - 2 5e+03 -4.58e+03 309 3.39e-06 0 0 6.79e+03 Tank Transportation - 3 4.84e+03 -5e+03 378 3.39e-06 0 457 7.24e+03 expHall Transportation - 4 4.84e+03 -5e+03 378 3.39e-06 0 0 7.24e+03 Tank Transportation - 5 5e+03 -3.55e+03 202 3.39e-06 0 1.47e+03 8.71e+03 expHall Transportation - 6 5e+03 -3.55e+03 202 3.39e-06 0 0 8.71e+03 Tank Transportation - 7 -1.76e+03 5e+03 -879 3.39e-06 0 1.1e+04 1.97e+04 expHall Transportation - 8 -1e+04 5.37e+03 -1.84e+03 3.39e-06 0 8.3e+03 2.8e+04 world Transportation - 9 -1.5e+04 5.6e+03 -2.42e+03 3.39e-06 0 5.04e+03 3.3e+04 OutOfWorld Transportation + 0 0.122 0.0242 -0.00854 2.41e-06 0 0 0 Tank initStep + 1 -5e+03 29.5 349 2.41e-06 0 5.01e+03 5.01e+03 expHall Transportation + 2 -1e+04 894 1.32e+03 2.41e-06 0 5.17e+03 1.02e+04 world Transportation + 3 -1.5e+04 1.76e+03 2.28e+03 2.41e-06 0 5.17e+03 1.53e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0972 -0.0201 0.0111 2.9e-06 0 0 0 Tank initStep - 1 5e+03 602 3.12e+03 2.9e-06 0 5.92e+03 5.92e+03 expHall Transportation - 2 5e+03 602 3.12e+03 2.9e-06 0 0 5.92e+03 Tank Transportation - 3 2.97e+03 -5e+03 1.78e+03 2.9e-06 0 6.11e+03 1.2e+04 expHall Transportation - 4 -5.35e+03 -1e+04 -4.19e+03 2.9e-06 0 1.14e+04 2.34e+04 world Transportation - 5 -1.37e+04 -1.5e+04 -1.02e+04 2.9e-06 0 1.14e+04 3.48e+04 OutOfWorld Transportation + 0 0.104 0.0206 -0.00728 2.6e-06 0 0 0 Tank initStep + 1 5e+03 1.87e+03 2.51e+03 2.6e-06 0 5.9e+03 5.9e+03 expHall Transportation + 2 5e+03 1.87e+03 2.51e+03 2.6e-06 0 0 5.9e+03 Tank Transportation + 3 4.15e+03 3.6e+03 5e+03 2.6e-06 0 3.14e+03 9.04e+03 expHall Transportation + 4 2.01e+03 1e+04 7.56e+03 2.6e-06 0 7.22e+03 1.63e+04 world Transportation + 5 336 1.5e+04 9.55e+03 2.6e-06 0 5.64e+03 2.19e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0839 -0.0173 0.00961 3.6e-06 0 0 0 Tank initStep - 1 5e+03 -4.55e+03 126 3.6e-06 0 6.76e+03 6.76e+03 expHall Transportation - 2 6.65e+03 -1e+04 -1.44e+03 3.6e-06 0 5.91e+03 1.27e+04 world Transportation - 3 8.17e+03 -1.5e+04 -2.87e+03 3.6e-06 0 5.42e+03 1.81e+04 OutOfWorld Transportation + 0 0.0645 0.0128 -0.00453 3.77e-06 0 0 0 Tank initStep + 1 1e+03 -296 -367 3.77e-06 0 1.11e+03 1.11e+03 Tank OpRayleigh + 2 -1.74e+03 -5e+03 2.9e+03 3.77e-06 0 6.35e+03 7.46e+03 expHall Transportation + 3 -1.74e+03 -5e+03 2.9e+03 3.77e-06 0 0 7.46e+03 Tank Transportation + 4 -2.98e+03 -1.29e+03 5e+03 3.77e-06 0 4.44e+03 1.19e+04 expHall Transportation + 5 -2.98e+03 -1.29e+03 5e+03 3.77e-06 0 0 1.19e+04 Tank Transportation + 6 -5e+03 4.64e+03 -2.48e+03 3.77e-06 0 9.76e+03 2.17e+04 expHall Transportation + 7 -5e+03 4.64e+03 -2.48e+03 3.77e-06 0 0 2.17e+04 Tank Transportation + 8 -4.46e+03 5e+03 -2.94e+03 3.77e-06 0 796 2.25e+04 expHall Transportation + 9 1e+04 7.16e+03 -9.15e+03 3.77e-06 0 1.59e+04 3.83e+04 world Transportation + 10 1.5e+04 7.91e+03 -1.13e+04 3.77e-06 0 5.49e+03 4.38e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0197 -0.00406 0.00225 2.89e-06 0 0 0 Tank initStep - 1 35.7 -14.6 -16 2.89e-06 2.89e-06 41.7 41.7 Tank OpAbsorption + 0 0.107 0.0213 -0.00754 4.09e-06 0 0 0 Tank initStep + 1 5e+03 -626 1.99e+03 4.09e-06 0 5.42e+03 5.42e+03 expHall Transportation + 2 1e+04 -1.56e+03 4.01e+03 4.09e-06 0 5.47e+03 1.09e+04 world Transportation + 3 1.5e+04 -2.49e+03 6.03e+03 4.09e-06 0 5.47e+03 1.64e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 0.133 -0.0274 0.0152 0.476 0 0 0.139 Tank initStep - 2 0.234 -0.0754 0.0705 0.453 0.023 0.126 0.266 Tank Cerenkov + 1 0.136 0.027 -0.00954 0.476 0 0 0.139 Tank initStep + 2 0.26 0.039 -0.0214 0.446 0.0305 0.127 0.266 Tank Cerenkov ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 +* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.148 -0.0344 0.0233 3.28e-06 0 0 0 Tank initStep - 1 1.36e+03 -4.04e+03 5e+03 3.28e-06 0 6.57e+03 6.57e+03 expHall Transportation - 2 3.46e+03 -1e+04 6.35e+03 3.28e-06 0 6.46e+03 1.3e+04 world Transportation - 3 5.22e+03 -1.5e+04 7.49e+03 3.28e-06 0 5.42e+03 1.85e+04 OutOfWorld Transportation + 0 0.177 0.0309 -0.0134 4.03e-06 0 0 0 Tank initStep + 1 3.12e+03 -875 -1.72e+03 4.03e-06 4.03e-06 3.66e+03 3.66e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 +* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.223 -0.0703 0.0646 2.75e-06 0 0 0 Tank initStep - 1 2.88e+03 -3.83e+03 5e+03 2.75e-06 0 6.93e+03 6.93e+03 expHall Transportation - 2 2.88e+03 -3.83e+03 5e+03 2.75e-06 0 0 6.93e+03 Tank Transportation - 3 3.27e+03 -5e+03 3.66e+03 2.75e-06 0 1.82e+03 8.75e+03 expHall Transportation - 4 3.27e+03 -5e+03 3.66e+03 2.75e-06 0 0 8.75e+03 Tank Transportation - 5 4.52e+03 -761 1.19e+03 2.75e-06 2.75e-06 5.06e+03 1.38e+04 Tank OpAbsorption + 0 0.241 0.0371 -0.0196 3.3e-06 0 0 0 Tank initStep + 1 5e+03 -2.02e+03 -1.83e+03 3.3e-06 0 5.69e+03 5.69e+03 expHall Transportation + 2 1e+04 -3.89e+03 -5.5e+03 3.3e-06 0 6.48e+03 1.22e+04 world Transportation + 3 1.5e+04 -5.77e+03 -9.18e+03 3.3e-06 0 6.48e+03 1.87e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 0.234 -0.0754 0.0705 0.453 0 0 0.266 Tank initStep - 3 0.316 -0.134 0.123 0.351 0.102 0.114 0.38 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.285 -0.112 0.103 3.08e-06 0 0 0 Tank initStep - 1 -697 5e+03 -1.83e+03 3.08e-06 0 5.37e+03 5.37e+03 expHall Transportation - 2 -1.9e+03 1e+04 -6.48e+03 3.08e-06 0 6.94e+03 1.23e+04 world Transportation - 3 -3.1e+03 1.5e+04 -1.11e+04 3.08e-06 0 6.94e+03 1.92e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.253 -0.0889 0.0826 3.44e-06 0 0 0 Tank initStep - 1 1.6e+03 -2.03e+03 5e+03 3.44e-06 0 5.63e+03 5.63e+03 expHall Transportation - 2 5.17e+03 -4.68e+03 1e+04 3.44e-06 0 6.69e+03 1.23e+04 world Transportation - 3 8.73e+03 -7.33e+03 1.5e+04 3.44e-06 0 6.69e+03 1.9e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.237 -0.0773 0.0722 3.23e-06 0 0 0 Tank initStep - 1 5e+03 4.33e+03 -2.01e+03 3.23e-06 0 6.91e+03 6.91e+03 expHall Transportation - 2 6.22e+03 1e+04 -4.17e+03 3.23e-06 0 6.2e+03 1.31e+04 world Transportation - 3 7.3e+03 1.5e+04 -6.08e+03 3.23e-06 0 5.46e+03 1.86e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.296 -0.12 0.111 2.46e-06 0 0 0 Tank initStep - 1 648 23.8 210 2.46e-06 2.46e-06 681 681 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 0.316 -0.134 0.123 0.351 0 0 0.38 Tank initStep - 4 0.358 -0.117 0.087 0.34 0.0111 0.0685 0.449 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.321 -0.132 0.119 3.38e-06 0 0 0 Tank initStep - 1 -5e+03 4.62e+03 491 3.38e-06 0 6.83e+03 6.83e+03 expHall Transportation - 2 -5e+03 4.62e+03 491 3.38e-06 0 0 6.83e+03 Tank Transportation - 3 -4.53e+03 5e+03 339 3.38e-06 0 622 7.45e+03 expHall Transportation - 4 -4.53e+03 5e+03 339 3.38e-06 0 0 7.45e+03 Tank Transportation - 5 2.48e+03 -5e+03 3.47e+03 3.38e-06 0 1.26e+04 2.01e+04 expHall Transportation - 6 2.48e+03 -5e+03 3.47e+03 3.38e-06 0 0 2.01e+04 Tank Transportation - 7 5e+03 -300 4.77e+03 3.38e-06 0 5.49e+03 2.55e+04 expHall Transportation - 8 5e+03 -300 4.77e+03 3.38e-06 0 0 2.55e+04 Tank Transportation - 9 4.41e+03 1.17e+03 5e+03 3.38e-06 0 1.6e+03 2.71e+04 expHall Transportation - 10 4.41e+03 1.17e+03 5e+03 3.38e-06 0 0 2.71e+04 Tank Transportation - 11 2.23e+03 4.97e+03 3.91e+03 3.38e-06 3.38e-06 4.51e+03 3.17e+04 Tank OpAbsorption + 2 0.26 0.039 -0.0214 0.446 0 0 0.266 Tank initStep + 3 0.222 0.0749 -0.0583 0.426 0.0195 0.111 0.377 Tank Cerenkov + 4 0.147 0.123 -0.0994 0.335 0.0912 0.101 0.478 Tank Cerenkov ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.334 -0.127 0.107 3.04e-06 0 0 0 Tank initStep - 1 -5e+03 -1.82e+03 -3.78e+03 3.04e-06 0 6.53e+03 6.53e+03 expHall Transportation - 2 -5e+03 -1.82e+03 -3.78e+03 3.04e-06 0 0 6.53e+03 Tank Transportation - 3 -4.37e+03 -2.21e+03 -5e+03 3.04e-06 0 1.42e+03 7.95e+03 expHall Transportation - 4 4.31e+03 -1e+04 -8.3e+03 3.04e-06 0 1.21e+04 2.01e+04 world Transportation - 5 9.87e+03 -1.5e+04 -1.04e+04 3.04e-06 0 7.78e+03 2.79e+04 OutOfWorld Transportation + 0 0.153 0.119 -0.0963 3.55e-06 0 0 0 Tank initStep + 1 -4.1e+03 5e+03 1.32e+03 3.55e-06 0 6.6e+03 6.6e+03 expHall Transportation + 2 -4.1e+03 5e+03 1.32e+03 3.55e-06 0 0 6.6e+03 Tank Transportation + 3 -5e+03 3.17e+03 1.87e+03 3.55e-06 0 2.12e+03 8.71e+03 expHall Transportation + 4 -5e+03 3.17e+03 1.87e+03 3.55e-06 0 0 8.71e+03 Tank Transportation + 5 -3.85e+03 1.1e+03 2.93e+03 3.55e-06 3.55e-06 2.6e+03 1.13e+04 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.358 -0.117 0.0873 4.13e-06 0 0 0 Tank initStep - 1 -1.16e+03 2.12e+03 -721 4.13e-06 4.13e-06 2.53e+03 2.53e+03 Tank OpAbsorption + 0 0.189 0.0961 -0.0766 3.55e-06 0 0 0 Tank initStep + 1 -5e+03 -2.15e+03 1.08e+03 3.55e-06 0 5.55e+03 5.55e+03 expHall Transportation + 2 -5e+03 -2.15e+03 1.08e+03 3.55e-06 0 0 5.55e+03 Tank Transportation + 3 -3.24e+03 -5e+03 697 3.55e-06 0 3.37e+03 8.92e+03 expHall Transportation + 4 3.29e+03 -1e+04 -851 3.55e-06 0 8.37e+03 1.73e+04 world Transportation + 5 9.83e+03 -1.5e+04 -2.4e+03 3.55e-06 0 8.37e+03 2.57e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.188 0.0966 -0.077 2.89e-06 0 0 0 Tank initStep + 1 5e+03 -1.56e+03 122 2.89e-06 0 5.24e+03 5.24e+03 expHall Transportation + 2 1e+04 -3.27e+03 -1.66e+03 2.89e-06 0 5.58e+03 1.08e+04 world Transportation + 3 1.5e+04 -4.98e+03 -3.43e+03 2.89e-06 0 5.58e+03 1.64e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.203 0.0866 -0.0684 2.54e-06 0 0 0 Tank initStep + 1 2.86e+03 1.08e+03 5e+03 2.54e-06 0 5.86e+03 5.86e+03 expHall Transportation + 2 2.86e+03 1.08e+03 5e+03 2.54e-06 0 0 5.86e+03 Tank Transportation + 3 5e+03 2.87e+03 2.58e+03 2.54e-06 0 3.69e+03 9.55e+03 expHall Transportation + 4 1e+04 3.1e+03 -2.07e+03 2.54e-06 0 6.83e+03 1.64e+04 world Transportation + 5 1.5e+04 3.32e+03 -6.72e+03 2.54e-06 0 6.83e+03 2.32e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.155 0.117 -0.0949 2.44e-06 0 0 0 Tank initStep + 1 5e+03 1.37e+03 3e+03 2.44e-06 0 5.99e+03 5.99e+03 expHall Transportation + 2 5e+03 1.37e+03 3e+03 2.44e-06 0 0 5.99e+03 Tank Transportation + 3 2.13e+03 2e+03 4.54e+03 2.44e-06 2.44e-06 3.32e+03 9.31e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.149 0.122 -0.0986 2.9e-06 0 0 0 Tank initStep + 1 1.43e+03 5e+03 189 2.9e-06 0 5.2e+03 5.2e+03 expHall Transportation + 2 4.31e+03 1e+04 382 2.9e-06 0 5.78e+03 1.1e+04 world Transportation + 3 7.19e+03 1.5e+04 574 2.9e-06 0 5.78e+03 1.68e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.22 0.0761 -0.0594 4.07e-06 0 0 0 Tank initStep + 1 -3.67e+03 1.87e+03 -5e+03 4.07e-06 0 6.48e+03 6.48e+03 expHall Transportation + 2 -3.67e+03 1.87e+03 -5e+03 4.07e-06 0 0 6.48e+03 Tank Transportation + 3 -5e+03 2.32e+03 -4.37e+03 4.07e-06 0 1.54e+03 8.02e+03 expHall Transportation + 4 -5e+03 2.32e+03 -4.37e+03 4.07e-06 0 0 8.02e+03 Tank Transportation + 5 -2.22e+03 5e+03 -2.41e+03 4.07e-06 0 4.33e+03 1.23e+04 expHall Transportation + 6 1e+04 9.64e+03 2.33e+03 4.07e-06 0 1.39e+04 2.63e+04 world Transportation + 7 1.5e+04 1.15e+04 4.28e+03 4.07e-06 0 5.69e+03 3.19e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.212 0.0809 -0.0635 2.38e-06 0 0 0 Tank initStep + 1 -4.56e+03 1.39e+03 -5e+03 2.38e-06 0 6.91e+03 6.91e+03 expHall Transportation + 2 -1e+04 2e+03 -7.16e+03 2.38e-06 0 5.88e+03 1.28e+04 world Transportation + 3 -1.5e+04 2.56e+03 -9.15e+03 2.38e-06 0 5.41e+03 1.82e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 0.358 -0.117 0.087 0.34 0 0 0.449 Tank initStep - 5 0.388 -0.0948 0.0348 0.328 0.0111 0.0642 0.513 Tank Cerenkov + 4 0.147 0.123 -0.0994 0.335 0 0 0.478 Tank initStep + 5 0.0975 0.152 -0.121 0.324 0.0104 0.0625 0.54 Tank Cerenkov ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 +* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.375 -0.104 0.0569 3.43e-06 0 0 0 Tank initStep - 1 100 -175 191 3.43e-06 0 277 277 Tank OpRayleigh - 2 1.65e+03 5e+03 -1.75e+03 3.43e-06 0 5.74e+03 6.02e+03 expHall Transportation - 3 1.65e+03 5e+03 -1.75e+03 3.43e-06 0 0 6.02e+03 Tank Transportation - 4 4.19e+03 3.42e+03 -4.53e+03 3.43e-06 3.43e-06 4.08e+03 1.01e+04 Tank OpAbsorption + 0 0.13 0.133 -0.107 3.69e-06 0 0 0 Tank initStep + 1 19.1 -5e+03 2.79e+03 3.69e-06 0 5.73e+03 5.73e+03 expHall Transportation + 2 19.1 -5e+03 2.79e+03 3.69e-06 0 0 5.73e+03 Tank Transportation + 3 290 -347 5e+03 3.69e-06 0 5.16e+03 1.09e+04 expHall Transportation + 4 290 -347 5e+03 3.69e-06 0 0 1.09e+04 Tank Transportation + 5 275 5e+03 3.32e+03 3.69e-06 0 5.6e+03 1.65e+04 expHall Transportation + 6 38.1 1e+04 -803 3.69e-06 0 6.48e+03 2.3e+04 world Transportation + 7 -198 1.5e+04 -4.92e+03 3.69e-06 0 6.48e+03 2.95e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 0.0975 0.152 -0.121 0.324 0 0 0.54 Tank initStep + 6 0.05 0.181 -0.14 0.315 0.0092 0.0587 0.599 Tank Cerenkov + 7 0.00501 0.201 -0.161 0.308 0.00745 0.0555 0.655 Tank Cerenkov + 8 -0.0361 0.228 -0.175 0.298 0.00944 0.0529 0.707 Tank Cerenkov + 9 -0.072 0.26 -0.174 0.291 0.00742 0.0497 0.757 Tank Cerenkov ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.388 -0.0949 0.0349 3.84e-06 0 0 0 Tank initStep - 1 1.56e+03 -5e+03 1.25e+03 3.84e-06 0 5.39e+03 5.39e+03 expHall Transportation - 2 5.64e+03 -1e+04 8.84e+03 3.84e-06 0 9.96e+03 1.53e+04 world Transportation - 3 8.96e+03 -1.41e+04 1.5e+04 3.84e-06 0 8.09e+03 2.34e+04 OutOfWorld Transportation + 0 -0.0508 0.241 -0.175 3.83e-06 0 0 0 Tank initStep + 1 -273 2e+03 -196 3.83e-06 0 2.03e+03 2.03e+03 Bubble Transportation + 2 -461 3e+03 -331 3.83e-06 0 1.03e+03 3.05e+03 Tank Transportation + 3 -735 5e+03 -528 3.83e-06 0 2.03e+03 5.08e+03 expHall Transportation + 4 -71.1 1e+04 -2.37e+03 3.83e-06 0 5.37e+03 1.05e+04 world Transportation + 5 593 1.5e+04 -4.22e+03 3.83e-06 0 5.37e+03 1.58e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 0.388 -0.0948 0.0348 0.328 0 0 0.513 Tank initStep - 6 0.409 -0.0733 -0.017 0.319 0.0098 0.0601 0.573 Tank Cerenkov - 7 0.432 -0.0597 -0.065 0.308 0.0109 0.0566 0.63 Tank Cerenkov - 8 0.457 -0.044 -0.107 0.295 0.0123 0.0528 0.683 Tank Cerenkov - 9 0.464 -0.0396 -0.153 0.284 0.0117 0.0487 0.731 Tank Cerenkov - 10 0.472 -0.0405 -0.196 0.274 0.01 0.045 0.776 Tank Cerenkov + 9 -0.072 0.26 -0.174 0.291 0 0 0.757 Tank initStep + 10 -0.0996 0.298 -0.166 0.284 0.00686 0.0473 0.804 Tank Cerenkov ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 +* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.469 -0.0402 -0.182 4.11e-06 0 0 0 Tank initStep - 1 160 366 -121 4.11e-06 4.11e-06 417 417 Tank OpAbsorption + 0 -0.0843 0.277 -0.171 3.36e-06 0 0 0 Tank initStep + 1 2.79e+03 -982 -5e+03 3.36e-06 0 5.81e+03 5.81e+03 expHall Transportation + 2 2.79e+03 -982 -5e+03 3.36e-06 0 0 5.81e+03 Tank Transportation + 3 5e+03 -3.22e+03 -4.19e+03 3.36e-06 0 3.25e+03 9.06e+03 expHall Transportation + 4 5e+03 -3.22e+03 -4.19e+03 3.36e-06 0 0 9.06e+03 Tank Transportation + 5 3.15e+03 -5e+03 -3.94e+03 3.36e-06 0 2.58e+03 1.16e+04 expHall Transportation + 6 3.15e+03 -5e+03 -3.94e+03 3.36e-06 0 0 1.16e+04 Tank Transportation + 7 -275 -2.34e+03 -5e+03 3.36e-06 0 4.46e+03 1.61e+04 expHall Transportation + 8 -275 -2.34e+03 -5e+03 3.36e-06 0 0 1.61e+04 Tank Transportation + 9 2.51e+03 5e+03 2.37e+03 3.36e-06 0 1.08e+04 2.69e+04 expHall Transportation + 10 2.51e+03 5e+03 2.37e+03 3.36e-06 0 0 2.69e+04 Tank Transportation + 11 897 2.07e+03 5e+03 3.36e-06 0 4.25e+03 3.11e+04 expHall Transportation + 12 -4.51e+03 -1e+04 8.59e+03 3.36e-06 0 1.37e+04 4.48e+04 world Transportation + 13 -6.75e+03 -1.5e+04 1.01e+04 3.36e-06 0 5.68e+03 5.05e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 10 0.472 -0.0405 -0.196 0.274 0 0 0.776 Tank initStep - 11 0.492 -0.0548 -0.23 0.261 0.0123 0.0419 0.818 Tank Cerenkov - 12 0.505 -0.0713 -0.26 0.254 0.00766 0.0383 0.856 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.494 -0.0576 -0.235 3.55e-06 0 0 0 Tank initStep - 1 -5e+03 5e+03 -1.78e+03 3.55e-06 0 7.29e+03 7.29e+03 expHall Transportation - 2 -1e+04 6.64e+03 -3.37e+03 3.55e-06 0 5.5e+03 1.28e+04 world Transportation - 3 -1.5e+04 8.28e+03 -4.96e+03 3.55e-06 0 5.5e+03 1.83e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 12 0.505 -0.0713 -0.26 0.254 0 0 0.856 Tank initStep - 13 0.513 -0.0922 -0.288 0.245 0.00872 0.0361 0.893 Tank Cerenkov - 14 0.515 -0.0978 -0.295 0.242 0.00313 0.0093 0.902 Tank Cerenkov - 15 0.53 -0.164 -0.391 0.22 0.022 0.132 1.03 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.518 -0.112 -0.315 4.04e-06 0 0 0 Tank initStep - 1 342 -131 -1.47e+03 4.04e-06 4.04e-06 1.51e+03 1.51e+03 Tank OpAbsorption + 10 -0.0996 0.298 -0.166 0.284 0 0 0.804 Tank initStep + 11 -0.117 0.338 -0.156 0.277 0.00714 0.0451 0.85 Tank Cerenkov + 12 -0.132 0.376 -0.149 0.235 0.0423 0.0429 0.893 Tank Cerenkov ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.515 -0.098 -0.296 2.26e-06 0 0 0 Tank initStep - 1 978 574 309 2.26e-06 2.26e-06 1.18e+03 1.18e+03 Tank OpAbsorption + 0 -0.125 0.359 -0.152 3.93e-06 0 0 0 Tank initStep + 1 -2.21e+03 -3.64e+03 1.18e+03 3.93e-06 3.93e-06 4.42e+03 4.42e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.126 0.361 -0.152 2.89e-06 0 0 0 Tank initStep + 1 -1.06e+03 -706 -5e+03 2.89e-06 0 5.16e+03 5.16e+03 expHall Transportation + 2 -3.27e+03 -3.35e+03 -1e+04 2.89e-06 0 6.07e+03 1.12e+04 world Transportation + 3 -5.47e+03 -6e+03 -1.5e+04 2.89e-06 0 6.07e+03 1.73e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.13 0.37 -0.15 2.05e-06 0 0 0 Tank initStep + 1 -830 -587 2.87e+03 2.05e-06 2.05e-06 3.04e+03 3.04e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 15 0.53 -0.164 -0.391 0.22 0 0 1.03 Tank initStep - 16 0.532 -0.169 -0.43 0.213 0.00637 0.04 1.07 Tank msc + 12 -0.132 0.376 -0.149 0.235 0 0 0.893 Tank initStep + 13 -0.131 0.418 -0.163 0.227 0.0075 0.0444 0.937 Tank msc ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 +* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.531 -0.168 -0.422 3.63e-06 0 0 0 Tank initStep - 1 -1.69e+03 -5e+03 -900 3.63e-06 0 5.35e+03 5.35e+03 expHall Transportation - 2 -4.36e+03 -1e+04 -2.01e+03 3.63e-06 0 5.78e+03 1.11e+04 world Transportation - 3 -7.04e+03 -1.5e+04 -3.12e+03 3.63e-06 0 5.78e+03 1.69e+04 OutOfWorld Transportation + 0 -0.132 0.377 -0.149 3.6e-06 0 0 0 Tank initStep + 1 649 -997 21.5 3.6e-06 0 1.19e+03 1.19e+03 Tank OpRayleigh + 2 442 -1.64e+03 -373 3.6e-06 3.6e-06 784 1.97e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 16 0.532 -0.169 -0.43 0.213 0 0 1.07 Tank initStep - 17 0.538 -0.173 -0.467 0.207 0.00592 0.0382 1.11 Tank msc - 18 0.56 -0.174 -0.559 0.185 0.0222 0.107 1.22 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.541 -0.173 -0.481 3.72e-06 0 0 0 Tank initStep - 1 -1.15e+03 -5e+03 -937 3.72e-06 0 5.22e+03 5.22e+03 expHall Transportation - 2 -3.51e+03 -1e+04 -2.34e+03 3.72e-06 0 5.7e+03 1.09e+04 world Transportation - 3 -5.87e+03 -1.5e+04 -3.74e+03 3.72e-06 0 5.7e+03 1.66e+04 OutOfWorld Transportation + 13 -0.131 0.418 -0.163 0.227 0 0 0.937 Tank initStep + 14 -0.134 0.456 -0.179 0.215 0.0124 0.0422 0.979 Tank msc ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.54 -0.173 -0.474 2.15e-06 0 0 0 Tank initStep - 1 2.01e+03 5e+03 -463 2.15e-06 0 5.41e+03 5.41e+03 expHall Transportation - 2 2.01e+03 5e+03 -463 2.15e-06 0 0 5.41e+03 Tank Transportation - 3 -5e+03 4.45e+03 -2.29e+03 2.15e-06 0 7.27e+03 1.27e+04 expHall Transportation - 4 -1e+04 5.31e+03 -5.11e+03 2.15e-06 0 5.81e+03 1.85e+04 world Transportation - 5 -1.5e+04 6.18e+03 -7.94e+03 2.15e-06 0 5.81e+03 2.43e+04 OutOfWorld Transportation + 0 -0.133 0.45 -0.176 3.59e-06 0 0 0 Tank initStep + 1 5e+03 -2.8e+03 -30.6 3.59e-06 0 5.73e+03 5.73e+03 expHall Transportation + 2 5e+03 -2.8e+03 -30.6 3.59e-06 0 0 5.73e+03 Tank Transportation + 3 4.17e+03 -5e+03 -533 3.59e-06 0 2.4e+03 8.13e+03 expHall Transportation + 4 2.58e+03 -1e+04 -2.02e+03 3.59e-06 0 5.45e+03 1.36e+04 world Transportation + 5 981 -1.5e+04 -3.5e+03 3.59e-06 0 5.45e+03 1.9e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.133 0.447 -0.175 3.84e-06 0 0 0 Tank initStep + 1 -498 303 915 3.84e-06 3.84e-06 1.08e+03 1.08e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 18 0.56 -0.174 -0.559 0.185 0 0 1.22 Tank initStep - 19 0.57 -0.186 -0.585 0.18 0.00483 0.0303 1.25 Tank msc + 14 -0.134 0.456 -0.179 0.215 0 0 0.979 Tank initStep + 15 -0.124 0.489 -0.197 0.205 0.00969 0.0385 1.02 Tank msc + 16 -0.0995 0.567 -0.241 0.157 0.0485 0.105 1.12 Tank eIoni + 17 -0.0942 0.587 -0.301 0 0.157 0.0731 1.2 Tank eIoni + 18 -0.0942 0.587 -0.301 0 0 0 1.2 Tank annihil ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 30, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.569 -0.184 -0.581 3.3e-06 0 0 0 Tank initStep - 1 5e+03 2.9e+03 -2.61e+03 3.3e-06 0 6.34e+03 6.34e+03 expHall Transportation - 2 5.62e+03 1e+04 -7.51e+03 3.3e-06 0 8.65e+03 1.5e+04 world Transportation - 3 6.06e+03 1.5e+04 -1.1e+04 3.3e-06 0 6.09e+03 2.11e+04 OutOfWorld Transportation + 0 -0.0942 0.587 -0.301 0.511 0 0 0 Tank initStep + 1 -0.874 0.888 0.848 0.177 1.42e-05 1.42 1.42 Tank compt + 2 30.9 5.11 -24 0.167 0.000537 40.6 42 Tank compt + 3 63.4 -17.9 -56.3 0.114 1.42e-05 51.2 93.3 Tank compt + 4 77.4 -15.2 -4.01 0.096 1.42e-05 54.2 147 Tank compt + 5 127 -72.9 -0.8 0.0787 1.36e-05 76 223 Tank compt + 6 138 -48.2 -175 0.0699 0.000537 176 400 Tank compt + 7 161 -94.3 -146 0.0603 0.000537 59 459 Tank compt + 8 161 -94.9 -151 0 0.000538 4.34 463 Tank phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 30 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 19 0.57 -0.186 -0.585 0.18 0 0 1.25 Tank initStep - 20 0.575 -0.204 -0.607 0.174 0.00607 0.029 1.28 Tank msc - 21 0.581 -0.25 -0.665 0.154 0.0202 0.0844 1.36 Tank eIoni - 22 0.607 -0.307 -0.666 0.139 0.015 0.0717 1.43 Tank eIoni + 0 161 -94.9 -151 0.0598 0 0 0 Tank initStep + 1 161 -94.9 -151 0.0559 0.00386 0.00466 0.00466 Tank msc + 2 161 -94.9 -151 0.0381 0.0178 0.0248 0.0295 Tank eIoni + 3 161 -94.9 -151 0.0018 0.0363 0.0183 0.0477 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 +* G4Track Information: Particle = opticalphoton, Track ID = 39, Parent ID = 38 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.602 -0.297 -0.666 2.32e-06 0 0 0 Tank initStep - 1 111 5e+03 -4.4e+03 2.32e-06 0 6.66e+03 6.66e+03 expHall Transportation - 2 111 5e+03 -4.4e+03 2.32e-06 0 0 6.66e+03 Tank Transportation - 3 238 4.47e+03 -5e+03 2.32e-06 0 809 7.47e+03 expHall Transportation - 4 238 4.47e+03 -5e+03 2.32e-06 0 0 7.47e+03 Tank Transportation - 5 923 5e+03 -4.88e+03 2.32e-06 0 874 8.35e+03 expHall Transportation - 6 923 5e+03 -4.88e+03 2.32e-06 0 0 8.35e+03 Tank Transportation - 7 1.76e+03 4.4e+03 -5e+03 2.32e-06 0 1.03e+03 9.38e+03 expHall Transportation - 8 1.76e+03 4.4e+03 -5e+03 2.32e-06 0 0 9.38e+03 Tank Transportation - 9 5e+03 2.35e+03 -3.68e+03 2.32e-06 0 4.06e+03 1.34e+04 expHall Transportation - 10 1e+04 -3.47e+03 -773 2.32e-06 0 8.2e+03 2.16e+04 world Transportation - 11 1.5e+04 -9.29e+03 2.14e+03 2.32e-06 0 8.2e+03 2.98e+04 OutOfWorld Transportation + 0 161 -94.9 -151 3.77e-06 0 0 0 Tank initStep + 1 -1.7e+03 -975 -5e+03 3.77e-06 0 5.27e+03 5.27e+03 expHall Transportation + 2 -6.5e+03 -2.36e+03 -1e+04 3.77e-06 0 7.07e+03 1.23e+04 world Transportation + 3 -1.13e+04 -3.75e+03 -1.5e+04 3.77e-06 0 7.07e+03 1.94e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 161 -94.9 -151 0.0018 0 0 0.0477 Tank initStep + 4 161 -94.9 -151 0.00172 8.21e-05 1.07e-05 0.0477 Tank msc + 5 161 -94.9 -151 0 0.00172 0.000124 0.0479 Tank eIoni + 6 161 -94.9 -151 0 0 0 0.0479 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 161 -94.3 -146 0.00903 0 0 0 Tank initStep + 1 161 -94.3 -146 0.00891 0.000122 0.000166 0.000166 Tank msc + 2 161 -94.3 -146 0 0.00891 0.00202 0.00219 Tank eIoni + 3 161 -94.3 -146 0 0 0 0.00219 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 138 -48.2 -175 0.00832 0 0 0 Tank initStep + 1 138 -48.2 -175 0.00797 0.000352 0.000143 0.000143 Tank msc + 2 138 -48.2 -175 0 0.00797 0.00166 0.00181 Tank eIoni + 3 138 -48.2 -175 0 0 0 0.00181 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 127 -72.9 -0.8 0.0173 0 0 0 Tank initStep + 1 127 -72.9 -0.799 0.016 0.00128 0.000521 0.000521 Tank msc + 2 127 -72.9 -0.798 0 0.016 0.00568 0.0062 Tank eIoni + 3 127 -72.9 -0.798 0 0 0 0.0062 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 77.4 -15.2 -4.01 0.0175 0 0 0 Tank initStep + 1 77.4 -15.2 -4.01 0.0173 0.00014 0.000531 0.000531 Tank msc + 2 77.4 -15.2 -4.01 0 0.0173 0.00654 0.00707 Tank eIoni + 3 77.4 -15.2 -4.01 0 0 0 0.00707 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 41, Parent ID = 34 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 77.4 -15.2 -4.01 2.19e-06 0 0 0 Tank initStep + 1 -1.49e+03 -3.57e+03 232 2.19e-06 2.19e-06 3.89e+03 3.89e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 40, Parent ID = 34 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 77.4 -15.2 -4.01 2.9e-06 0 0 0 Tank initStep + 1 2.57e+03 5e+03 -4.71e+03 2.9e-06 0 7.32e+03 7.32e+03 expHall Transportation + 2 2.57e+03 5e+03 -4.71e+03 2.9e-06 0 0 7.32e+03 Tank Transportation + 3 2.57e+03 4.35e+03 -5e+03 2.9e-06 0 714 8.03e+03 expHall Transportation + 4 2.57e+03 4.35e+03 -5e+03 2.9e-06 0 0 8.03e+03 Tank Transportation + 5 1.14e+03 3.44e+03 5e+03 2.9e-06 0 1.01e+04 1.82e+04 expHall Transportation + 6 1.53e+03 -1.87e+03 1e+04 2.9e-06 0 7.3e+03 2.55e+04 world Transportation + 7 1.93e+03 -7.17e+03 1.5e+04 2.9e-06 0 7.3e+03 3.28e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 63.4 -17.9 -56.3 0.0534 0 0 0 Tank initStep + 1 63.4 -17.9 -56.3 0.0518 0.00152 0.00382 0.00382 Tank msc + 2 63.4 -17.9 -56.3 0.0294 0.0225 0.0233 0.0271 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 44, Parent ID = 33 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 63.4 -17.9 -56.3 3.14e-06 0 0 0 Tank initStep + 1 -5e+03 -632 -744 3.14e-06 0 5.15e+03 5.15e+03 expHall Transportation + 2 -1e+04 -2.05e+03 -1.61e+03 3.14e-06 0 5.27e+03 1.04e+04 world Transportation + 3 -1.5e+04 -3.47e+03 -2.47e+03 3.14e-06 0 5.27e+03 1.57e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 43, Parent ID = 33 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 63.4 -17.9 -56.3 3.78e-06 0 0 0 Tank initStep + 1 -5e+03 -85 -2.05e+03 3.78e-06 0 5.44e+03 5.44e+03 expHall Transportation + 2 -1e+04 257 -5.73e+03 3.78e-06 0 6.22e+03 1.17e+04 world Transportation + 3 -1.5e+04 599 -9.42e+03 3.78e-06 0 6.22e+03 1.79e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 42, Parent ID = 33 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 63.4 -17.9 -56.3 3.17e-06 0 0 0 Tank initStep + 1 -117 -4.35e+03 -5e+03 3.17e-06 0 6.58e+03 6.58e+03 expHall Transportation + 2 -117 -4.35e+03 -5e+03 3.17e-06 0 0 6.58e+03 Tank Transportation + 3 -38.6 -5e+03 -4.61e+03 3.17e-06 0 760 7.34e+03 expHall Transportation + 4 -38.6 -5e+03 -4.61e+03 3.17e-06 0 0 7.34e+03 Tank Transportation + 5 -872 -459 5e+03 3.17e-06 0 1.07e+04 1.8e+04 expHall Transportation + 6 -1.33e+03 3.21e+03 1e+04 3.17e-06 0 6.22e+03 2.42e+04 world Transportation + 7 -1.78e+03 6.87e+03 1.5e+04 3.17e-06 0 6.22e+03 3.04e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 63.4 -17.9 -56.3 0.0294 0 0 0.0271 Tank initStep + 3 63.4 -17.9 -56.3 0.0283 0.00112 0.00133 0.0285 Tank msc + 4 63.4 -17.9 -56.3 0.0118 0.0165 0.014 0.0424 Tank eIoni + 5 63.4 -17.9 -56.3 0 0.0118 0.00331 0.0458 Tank eIoni + 6 63.4 -17.9 -56.3 0 0 0 0.0458 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 47, Parent ID = 33 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 63.4 -17.9 -56.3 3.48e-06 0 0 0 Tank initStep + 1 4.43e+03 -5e+03 -3.51e+03 3.48e-06 0 7.47e+03 7.47e+03 expHall Transportation + 2 4.43e+03 -5e+03 -3.51e+03 3.48e-06 0 0 7.47e+03 Tank Transportation + 3 4.55e+03 -4.79e+03 -3.53e+03 3.48e-06 3.48e-06 245 7.71e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 46, Parent ID = 33 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 63.4 -17.9 -56.3 3.55e-06 0 0 0 Tank initStep + 1 5e+03 3.1e+03 -2.73e+03 3.55e-06 0 6.42e+03 6.42e+03 expHall Transportation + 2 1e+04 8.06e+03 -4.15e+03 3.55e-06 0 7.18e+03 1.36e+04 world Transportation + 3 1.5e+04 1.3e+04 -5.57e+03 3.55e-06 0 7.18e+03 2.08e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 33 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 63.4 -17.9 -56.3 4.02e-06 0 0 0 Tank initStep + 1 -171 2e+03 321 4.02e-06 0 2.07e+03 2.07e+03 Bubble Transportation + 2 -283 2.69e+03 500 4.02e-06 4.02e-06 722 2.79e+03 Tank Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 30.9 5.11 -24 0.00987 0 0 0 Tank initStep + 1 30.9 5.11 -24 0.00932 0.000545 0.000193 0.000193 Tank msc + 2 30.9 5.12 -24 0 0.00932 0.00219 0.00238 Tank eIoni + 3 30.9 5.12 -24 0 0 0 0.00238 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.874 0.888 0.848 0.334 0 0 0 Tank initStep + 1 -0.909 0.908 0.893 0.323 0.0104 0.062 0.062 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 50, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.901 0.904 0.883 2.33e-06 0 0 0 Tank initStep + 1 -5e+03 3.77e+03 4.83e+03 2.33e-06 0 7.91e+03 7.91e+03 expHall Transportation + 2 -5e+03 3.77e+03 4.83e+03 2.33e-06 0 0 7.91e+03 Tank Transportation + 3 -4.81e+03 3.82e+03 5e+03 2.33e-06 0 255 8.16e+03 expHall Transportation + 4 -4.81e+03 3.82e+03 5e+03 2.33e-06 0 0 8.16e+03 Tank Transportation + 5 5e+03 4.64e+03 -1.55e+03 2.33e-06 0 1.18e+04 2e+04 expHall Transportation + 6 8.37e+03 5.65e+03 -1e+04 2.33e-06 0 9.15e+03 2.91e+04 world Transportation + 7 1.04e+04 6.25e+03 -1.5e+04 2.33e-06 0 5.42e+03 3.46e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.906 0.907 0.89 2.71e-06 0 0 0 Tank initStep + 1 -3.58e+03 -3.82e+03 5e+03 2.71e-06 0 7.24e+03 7.24e+03 expHall Transportation + 2 -3.58e+03 -3.82e+03 5e+03 2.71e-06 0 0 7.24e+03 Tank Transportation + 3 -5e+03 -4.78e+03 3.82e+03 2.71e-06 0 2.08e+03 9.32e+03 expHall Transportation + 4 -5e+03 -4.78e+03 3.82e+03 2.71e-06 0 0 9.32e+03 Tank Transportation + 5 -4.82e+03 -5e+03 3.52e+03 2.71e-06 0 414 9.74e+03 expHall Transportation + 6 -4.82e+03 -5e+03 3.52e+03 2.71e-06 0 0 9.74e+03 Tank Transportation + 7 990 1.43 -5e+03 2.71e-06 0 1.15e+04 2.12e+04 expHall Transportation + 8 990 1.43 -5e+03 2.71e-06 0 0 2.12e+04 Tank Transportation + 9 5e+03 2.1e+03 3.32e+03 2.71e-06 0 9.47e+03 3.07e+04 expHall Transportation + 10 5e+03 2.1e+03 3.32e+03 2.71e-06 0 0 3.07e+04 Tank Transportation + 11 4.48e+03 2.12e+03 5e+03 2.71e-06 0 1.76e+03 3.24e+04 expHall Transportation + 12 1.94e+03 1.54e+03 1e+04 2.71e-06 0 5.64e+03 3.81e+04 world Transportation + 13 -598 961 1.5e+04 2.71e-06 0 5.64e+03 4.37e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.887 0.895 0.864 3.03e-06 0 0 0 Tank initStep + 1 -1.27e+03 2.1e+03 5e+03 3.03e-06 0 5.57e+03 5.57e+03 expHall Transportation + 2 -3.23e+03 7.27e+03 1e+04 3.03e-06 0 7.46e+03 1.3e+04 world Transportation + 3 -5.19e+03 1.24e+04 1.5e+04 3.03e-06 0 7.46e+03 2.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 -0.909 0.908 0.893 0.323 0 0 0.062 Tank initStep + 2 -0.939 0.938 0.933 0.31 0.0128 0.0583 0.12 Tank Cerenkov + 3 -0.97 0.957 0.971 0.276 0.0344 0.0539 0.174 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.965 0.954 0.965 3.24e-06 0 0 0 Tank initStep + 1 -2.26e+03 -1.96e+03 -5e+03 3.24e-06 0 5.83e+03 5.83e+03 expHall Transportation + 2 -2.26e+03 -1.96e+03 -5e+03 3.24e-06 0 0 5.83e+03 Tank Transportation + 3 -5e+03 -2.71e+03 -765 3.24e-06 0 5.1e+03 1.09e+04 expHall Transportation + 4 -5e+03 -2.71e+03 -765 3.24e-06 0 0 1.09e+04 Tank Transportation + 5 -4.94e+03 -2.84e+03 -633 3.24e-06 0 192 1.11e+04 Tank OpRayleigh + 6 -157 2e+03 -55 3.24e-06 3.24e-06 6.83e+03 1.79e+04 Bubble Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 51, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.942 0.94 0.937 2.69e-06 0 0 0 Tank initStep + 1 -663 -498 -332 2.69e-06 2.69e-06 893 893 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 -0.97 0.957 0.971 0.276 0 0 0.174 Tank initStep + 4 -0.998 0.972 0.999 0.266 0.00972 0.0429 0.217 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.981 0.963 0.982 2.47e-06 0 0 0 Tank initStep + 1 257 -580 -23.2 2.47e-06 2.47e-06 637 637 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 -0.998 0.972 0.999 0.266 0 0 0.217 Tank initStep + 5 -1.02 0.985 1.02 0.254 0.012 0.0401 0.257 Tank Cerenkov + 6 -1.05 0.997 1.05 0.246 0.00812 0.0367 0.294 Tank Cerenkov + 7 -1.06 1 1.06 0.243 0.0034 0.0149 0.309 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.05 1 1.05 3.63e-06 0 0 0 Tank initStep + 1 -370 -150 -69.6 3.63e-06 3.63e-06 405 405 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 7 -1.06 1 1.06 0.243 0 0 0.309 Tank initStep + 8 -1.06 1 1.06 0.243 9.51e-05 0.000487 0.309 Tank msc + 9 -1.06 1 1.06 0.243 0.000113 0.0013 0.31 Tank Cerenkov + 10 -1.06 1 1.06 0.243 0.000167 0.000868 0.311 Tank Cerenkov + 11 -1.06 1 1.06 0.243 0 0.000223 0.312 Tank Cerenkov + 12 -1.06 1 1.06 0.242 6.03e-05 0.000223 0.312 Tank Cerenkov + 13 -1.13 1.04 1.16 0.211 0.0314 0.136 0.448 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 56, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.06 1.01 1.07 2.35e-06 0 0 0 Tank initStep + 1 556 3.49e+03 5e+03 2.35e-06 0 6.12e+03 6.12e+03 expHall Transportation + 2 556 3.49e+03 5e+03 2.35e-06 0 0 6.12e+03 Tank Transportation + 3 5e+03 2.75e+03 2.75e+03 2.35e-06 0 5.04e+03 1.12e+04 expHall Transportation + 4 5e+03 2.75e+03 2.75e+03 2.35e-06 0 0 1.12e+04 Tank Transportation + 5 2.32e+03 -5e+03 -4.12e+03 2.35e-06 0 1.07e+04 2.19e+04 expHall Transportation + 6 2.32e+03 -5e+03 -4.12e+03 2.35e-06 0 0 2.19e+04 Tank Transportation + 7 1.46e+03 -4.75e+03 -5e+03 2.35e-06 0 1.25e+03 2.31e+04 expHall Transportation + 8 1.46e+03 -4.75e+03 -5e+03 2.35e-06 0 0 2.31e+04 Tank Transportation + 9 -4.06e+03 202 5e+03 2.35e-06 0 1.25e+04 3.56e+04 expHall Transportation + 10 -4.06e+03 202 5e+03 2.35e-06 0 0 3.56e+04 Tank Transportation + 11 -5e+03 499 4.04e+03 2.35e-06 0 1.38e+03 3.69e+04 expHall Transportation + 12 -5e+03 499 4.04e+03 2.35e-06 0 0 3.69e+04 Tank Transportation + 13 -4.16e+03 2.45e+03 -5e+03 2.35e-06 0 9.28e+03 4.62e+04 expHall Transportation + 14 -3.9e+03 3.97e+03 -1e+04 2.35e-06 0 5.23e+03 5.15e+04 world Transportation + 15 -3.64e+03 5.5e+03 -1.5e+04 2.35e-06 0 5.23e+03 5.67e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 55, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.06 1 1.06 2.07e-06 0 0 0 Tank initStep + 1 -482 2e+03 -112 2.07e-06 2.07e-06 2.06e+03 2.06e+03 Bubble Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 13 -1.13 1.04 1.16 0.211 0 0 0.448 Tank initStep + 14 -1.14 1.05 1.19 0.204 0.00658 0.0387 0.487 Tank msc + 15 -1.17 1.09 1.27 0.165 0.0398 0.108 0.594 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 58, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.17 1.08 1.25 2.15e-06 0 0 0 Tank initStep + 1 -1.92e+03 -5e+03 1.87e+03 2.15e-06 0 5.67e+03 5.67e+03 expHall Transportation + 2 -1.92e+03 -5e+03 1.87e+03 2.15e-06 0 0 5.67e+03 Tank Transportation + 3 -3.75e+03 -2.25e+03 4.52e+03 2.15e-06 2.15e-06 4.23e+03 9.91e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 57, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.17 1.09 1.26 3.38e-06 0 0 0 Tank initStep + 1 -295 -5e+03 372 3.38e-06 0 5.02e+03 5.02e+03 expHall Transportation + 2 -1.47e+03 -1e+04 -84.5 3.38e-06 0 5.16e+03 1.02e+04 world Transportation + 3 -2.65e+03 -1.5e+04 -541 3.38e-06 0 5.16e+03 1.53e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 15 -1.17 1.09 1.27 0.165 0 0 0.594 Tank initStep + 16 -1.18 1.1 1.29 0.152 0.0127 0.026 0.62 Tank msc + 17 -1.21 1.14 1.33 0.13 0.0218 0.0726 0.693 Tank eIoni + 18 -1.24 1.16 1.36 0.11 0.0198 0.0597 0.753 Tank eIoni + 19 -1.27 1.19 1.34 0.0955 0.0149 0.0489 0.802 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 59, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.25 1.18 1.35 3.81e-06 0 0 0 Tank initStep + 1 138 -19.7 -540 3.81e-06 3.81e-06 559 559 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 19 -1.27 1.19 1.34 0.0955 0 0 0.802 Tank initStep + 20 -1.27 1.19 1.33 0.0929 0.00253 0.0104 0.812 Tank msc + 21 -1.28 1.21 1.31 0.0793 0.0136 0.0403 0.852 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 60, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.27 1.19 1.33 2.73e-06 0 0 0 Tank initStep + 1 3.69e+03 5e+03 4.31e+03 2.73e-06 0 7.56e+03 7.56e+03 expHall Transportation + 2 3.69e+03 5e+03 4.31e+03 2.73e-06 0 0 7.56e+03 Tank Transportation + 3 3.92e+03 4.35e+03 5e+03 2.73e-06 0 974 8.54e+03 expHall Transportation + 4 3.92e+03 4.35e+03 5e+03 2.73e-06 0 0 8.54e+03 Tank Transportation + 5 1.42e+03 -1.16e+03 -5e+03 2.73e-06 0 1.17e+04 2.02e+04 expHall Transportation + 6 -822 -3.75e+03 -1e+04 2.73e-06 0 6.06e+03 2.63e+04 world Transportation + 7 -3.06e+03 -6.34e+03 -1.5e+04 2.73e-06 0 6.06e+03 3.23e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 21 -1.28 1.21 1.31 0.0793 0 0 0.852 Tank initStep + 22 -1.29 1.21 1.3 0.0779 0.00147 0.00761 0.86 Tank msc + 23 -1.29 1.21 1.27 0.0597 0.0182 0.0336 0.894 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 61, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.29 1.21 1.27 3.71e-06 0 0 0 Tank initStep + 1 4.12e+03 1.27e+03 -5e+03 3.71e-06 0 6.61e+03 6.61e+03 expHall Transportation + 2 4.12e+03 1.27e+03 -5e+03 3.71e-06 0 0 6.61e+03 Tank Transportation + 3 5e+03 1.05e+03 -3.31e+03 3.71e-06 0 1.92e+03 8.52e+03 expHall Transportation + 4 5e+03 1.05e+03 -3.31e+03 3.71e-06 0 0 8.52e+03 Tank Transportation + 5 -699 860 5e+03 3.71e-06 0 1.01e+04 1.86e+04 expHall Transportation + 6 -699 860 5e+03 3.71e-06 0 0 1.86e+04 Tank Transportation + 7 -3.05e+03 -21.3 4.39e+03 3.71e-06 3.71e-06 2.58e+03 2.12e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 23 -1.29 1.21 1.27 0.0597 0 0 0.894 Tank initStep + 24 -1.29 1.21 1.27 0.0558 0.00384 0.00464 0.898 Tank msc + 25 -1.29 1.21 1.25 0.043 0.0128 0.0248 0.923 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 62, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.29 1.21 1.26 3.64e-06 0 0 0 Tank initStep + 1 954 932 2.47e+03 3.64e-06 3.64e-06 2.8e+03 2.8e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 25 -1.29 1.21 1.25 0.043 0 0 0.923 Tank initStep + 26 -1.29 1.21 1.25 0.0408 0.00228 0.00262 0.926 Tank msc + 27 -1.3 1.21 1.23 0.0266 0.0141 0.0193 0.945 Tank eIoni + 28 -1.29 1.21 1.23 0.00112 0.0255 0.0131 0.958 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 64, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.29 1.21 1.23 3.64e-06 0 0 0 Tank initStep + 1 736 -646 -278 3.64e-06 0 1.02e+03 1.02e+03 Tank OpRayleigh + 2 -411 -5e+03 -4.71e+03 3.64e-06 0 6.32e+03 7.34e+03 expHall Transportation + 3 -4.9e+03 -8.71e+03 -1e+04 3.64e-06 0 7.86e+03 1.52e+04 world Transportation + 4 -9.14e+03 -1.22e+04 -1.5e+04 3.64e-06 0 7.44e+03 2.26e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 63, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -1.29 1.21 1.23 3.04e-06 0 0 0 Tank initStep + 1 -3.04e+03 5e+03 -2.73e+03 3.04e-06 0 6.46e+03 6.46e+03 expHall Transportation + 2 -3.04e+03 5e+03 -2.73e+03 3.04e-06 0 0 6.46e+03 Tank Transportation + 3 -5e+03 2.36e+03 -3.86e+03 3.04e-06 0 3.48e+03 9.94e+03 expHall Transportation + 4 -5e+03 2.36e+03 -3.86e+03 3.04e-06 0 0 9.94e+03 Tank Transportation + 5 -3.16e+03 -29.8 -5e+03 3.04e-06 0 3.22e+03 1.32e+04 expHall Transportation + 6 7.68e+03 -1e+04 -6.36e+03 3.04e-06 0 1.48e+04 2.79e+04 world Transportation + 7 1.31e+04 -1.5e+04 -7.05e+03 3.04e-06 0 7.42e+03 3.54e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 30 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 28 -1.29 1.21 1.23 0.00112 0 0 0.958 Tank initStep + 29 -1.29 1.21 1.23 0.00112 0 5.01e-06 0.958 Tank msc + 30 -1.29 1.21 1.23 0 0.00112 6.26e-05 0.958 Tank eIoni + 31 -1.29 1.21 1.23 0 0 0 0.958 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0942 0.587 -0.301 0.511 0 0 0 Tank initStep + 1 152 -58.3 -225 0.323 0.000537 278 278 Tank compt + 2 247 -226 -219 0.177 1.42e-05 192 470 Tank compt + 3 261 -205 -193 0.133 1.42e-05 35.7 506 Tank compt + 4 263 -260 -152 0.122 2.92e-05 68.6 574 Tank compt + 5 268 -265 -151 0.116 2.92e-05 6.69 581 Tank compt + 6 273 -279 -155 0.078 2.92e-05 15.5 596 Tank compt + 7 276 -225 -158 0.069 2.92e-05 54.3 651 Tank compt + 8 278 -220 -130 0.0644 0.000537 29.1 680 Tank compt + 9 279 -227 -123 0.0556 1.42e-05 9.96 690 Tank compt + 10 228 -81 -48.7 0.0523 1.42e-05 172 861 Tank compt + 11 232 -76.4 -51.6 0.0488 2.92e-05 6.89 868 Tank compt + 12 236 -72 -46.8 0.0431 1.36e-05 7.98 876 Tank compt + 13 240 -81.3 -47.6 0.0392 1.42e-05 9.87 886 Tank compt + 14 212 -85 -12.2 0.0392 0 45.2 931 Tank Rayl + 15 203 -86.3 -1.58 0.0389 1.42e-05 14.1 945 Tank compt + 16 190 -87.9 3.95 0.0346 1.42e-05 13.7 959 Tank compt + 17 220 -85.5 13.9 0.0345 2.92e-05 31 990 Tank compt + 18 268 -85.9 39.8 0.0329 2.92e-05 54.7 1.04e+03 Tank compt + 19 296 -55 15.1 0.0324 1.42e-05 48.6 1.09e+03 Tank compt + 20 296 -54.2 14.2 0.0311 1.42e-05 1.23 1.09e+03 Tank compt + 21 305 -89.2 -12.6 0.0289 1.42e-05 44.9 1.14e+03 Tank compt + 22 264 -89.9 -25.7 0.0267 2.92e-05 43.3 1.18e+03 Tank compt + 23 277 -99.9 -21.7 0 0.000538 17.6 1.2e+03 Tank phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 277 -99.9 -21.7 0.0261 0 0 0 Tank initStep + 1 277 -99.9 -21.7 0.0216 0.00453 0.00109 0.00109 Tank msc + 2 277 -99.9 -21.7 0 0.0216 0.00968 0.0108 Tank eIoni + 3 277 -99.9 -21.7 0 0 0 0.0108 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 264 -89.9 -25.7 0.00215 0 0 0 Tank initStep + 1 264 -89.9 -25.7 0.0021 4.5e-05 1.42e-05 1.42e-05 Tank msc + 2 264 -89.9 -25.7 0 0.0021 0.000171 0.000185 Tank eIoni + 3 264 -89.9 -25.7 0 0 0 0.000185 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 305 -89.2 -12.6 0.00224 0 0 0 Tank initStep + 1 305 -89.2 -12.6 0.00224 0 1.53e-05 1.53e-05 Tank msc + 2 305 -89.2 -12.6 0 0.00224 0.000191 0.000206 Tank eIoni + 3 305 -89.2 -12.6 0 0 0 0.000206 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 296 -54.2 14.2 0.00126 0 0 0 Tank initStep + 1 296 -54.2 14.2 0.00121 4.18e-05 5.96e-06 5.96e-06 Tank msc + 2 296 -54.2 14.2 0 0.00121 7.06e-05 7.65e-05 Tank eIoni + 3 296 -54.2 14.2 0 0 0 7.65e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 296 -55 15.1 0.000458 0 0 0 Tank initStep + 1 296 -55 15.1 0.000458 0 1.38e-06 1.38e-06 Tank msc + 2 296 -55 15.1 0 0.000458 1.72e-05 1.86e-05 Tank eIoni + 3 296 -55 15.1 0 0 0 1.86e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 268 -85.9 39.8 0.00163 0 0 0 Tank initStep + 1 268 -85.9 39.8 0.00142 0.000216 9.1e-06 9.1e-06 Tank msc + 2 268 -85.9 39.8 0 0.00142 9.05e-05 9.96e-05 Tank eIoni + 3 268 -85.9 39.8 0 0 0 9.96e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 220 -85.5 13.9 4.53e-05 0 0 0 Tank initStep + 1 220 -85.5 13.9 0 4.53e-05 2.41e-07 2.41e-07 Tank msc + 2 220 -85.5 13.9 0 0 0 2.41e-07 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 190 -87.9 3.95 0.0043 0 0 0 Tank initStep + 1 190 -87.9 3.95 0.00426 4.27e-05 4.58e-05 4.58e-05 Tank msc + 2 190 -87.9 3.95 0 0.00426 0.000562 0.000608 Tank eIoni + 3 190 -87.9 3.95 0 0 0 0.000608 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 203 -86.3 -1.58 0.00028 0 0 0 Tank initStep + 1 203 -86.3 -1.58 0 0.00028 7.81e-07 7.81e-07 Tank msc + 2 203 -86.3 -1.58 0 0 0 7.81e-07 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 240 -81.3 -47.6 0.00389 0 0 0 Tank initStep + 1 240 -81.3 -47.6 0.00375 0.000134 3.84e-05 3.84e-05 Tank msc + 2 240 -81.3 -47.6 0 0.00375 0.000452 0.000491 Tank eIoni + 3 240 -81.3 -47.6 0 0 0 0.000491 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 236 -72 -46.8 0.00564 0 0 0 Tank initStep + 1 236 -72 -46.8 0.00533 0.00031 7.29e-05 7.29e-05 Tank msc + 2 236 -72 -46.8 0 0.00533 0.000827 0.0009 Tank eIoni + 3 236 -72 -46.8 0 0 0 0.0009 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 232 -76.4 -51.6 0.00348 0 0 0 Tank initStep + 1 232 -76.4 -51.6 0.00313 0.000357 3.19e-05 3.19e-05 Tank msc + 2 232 -76.4 -51.6 0 0.00313 0.000332 0.000364 Tank eIoni + 3 232 -76.4 -51.6 0 0 0 0.000364 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 228 -81 -48.7 0.0033 0 0 0 Tank initStep + 1 228 -81 -48.7 0.00313 0.000167 2.9e-05 2.9e-05 Tank msc + 2 228 -81 -48.7 0 0.00313 0.000332 0.000361 Tank eIoni + 3 228 -81 -48.7 0 0 0 0.000361 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 279 -227 -123 0.00882 0 0 0 Tank initStep + 1 279 -227 -123 0.00863 0.000188 0.000159 0.000159 Tank msc + 2 279 -227 -123 0 0.00863 0.00191 0.00207 Tank eIoni + 3 279 -227 -123 0 0 0 0.00207 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 278 -220 -130 0.00404 0 0 0 Tank initStep + 1 278 -220 -130 0.00397 7.22e-05 4.11e-05 4.11e-05 Tank msc + 2 278 -220 -130 0 0.00397 0.000498 0.000539 Tank eIoni + 3 278 -220 -130 0 0 0 0.000539 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 276 -225 -158 0.00901 0 0 0 Tank initStep + 1 276 -225 -158 0.00876 0.000249 0.000165 0.000165 Tank msc + 2 276 -225 -158 0 0.00876 0.00196 0.00213 Tank eIoni + 3 276 -225 -158 0 0 0 0.00213 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 273 -279 -155 0.0379 0 0 0 Tank initStep + 1 273 -279 -155 0.0365 0.00138 0.0021 0.0021 Tank msc + 2 273 -279 -155 0.0129 0.0236 0.0176 0.0197 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 88, Parent ID = 70 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 273 -279 -155 3.48e-06 0 0 0 Tank initStep + 1 4.56e+03 -108 -3.66e+03 3.48e-06 3.48e-06 5.54e+03 5.54e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 87, Parent ID = 70 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 273 -279 -155 2.21e-06 0 0 0 Tank initStep + 1 -1.17e+03 -1.47e+03 -5e+03 2.21e-06 0 5.19e+03 5.19e+03 expHall Transportation + 2 -7.79e+03 -4.66e+03 -1e+04 2.21e-06 0 8.89e+03 1.41e+04 world Transportation + 3 -1.44e+04 -7.85e+03 -1.5e+04 2.21e-06 0 8.89e+03 2.3e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 273 -279 -155 0.0129 0 0 0.0197 Tank initStep + 3 273 -279 -155 0.0127 0.000213 0.000311 0.0201 Tank msc + 4 273 -279 -155 0 0.0127 0.00377 0.0238 Tank eIoni + 5 273 -279 -155 0 0 0 0.0238 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 268 -265 -151 0.00589 0 0 0 Tank initStep + 1 268 -265 -151 0.00582 6.4e-05 7.85e-05 7.85e-05 Tank msc + 2 268 -265 -151 0 0.00582 0.000962 0.00104 Tank eIoni + 3 268 -265 -151 0 0 0 0.00104 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 263 -260 -152 0.0111 0 0 0 Tank initStep + 1 263 -260 -152 0.0102 0.000928 0.00024 0.00024 Tank msc + 2 263 -260 -152 0 0.0102 0.00257 0.00281 Tank eIoni + 3 263 -260 -152 0 0 0 0.00281 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 261 -205 -193 0.0444 0 0 0 Tank initStep + 1 261 -205 -193 0.0434 0.00104 0.00277 0.00277 Tank msc + 2 261 -205 -193 0.0273 0.0161 0.0202 0.023 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 89, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 261 -205 -193 2.32e-06 0 0 0 Tank initStep + 1 -1.69e+03 -495 1.55e+03 2.32e-06 2.32e-06 2.63e+03 2.63e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 261 -205 -193 0.0273 0 0 0.023 Tank initStep + 3 261 -205 -193 0.0263 0.000937 0.00117 0.0242 Tank msc + 4 261 -205 -193 0.00886 0.0175 0.0129 0.0371 Tank eIoni + 5 261 -205 -193 0 0.00886 0.002 0.0391 Tank eIoni + 6 261 -205 -193 0 0 0 0.0391 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 247 -226 -219 0.145 0 0 0 Tank initStep + 1 247 -226 -219 0.125 0.0206 0.0211 0.0211 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 90, Parent ID = 66 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 247 -226 -219 3.58e-06 0 0 0 Tank initStep + 1 5e+03 -1.23e+03 -919 3.58e-06 0 4.91e+03 4.91e+03 expHall Transportation + 2 1e+04 -1.26e+03 544 3.58e-06 0 5.21e+03 1.01e+04 world Transportation + 3 1.5e+04 -1.28e+03 2.01e+03 3.58e-06 0 5.21e+03 1.53e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 247 -226 -219 0.125 0 0 0.0211 Tank initStep + 2 247 -226 -219 0.121 0.00394 0.0164 0.0375 Tank msc + 3 247 -226 -219 0.104 0.0166 0.0544 0.0919 Tank eIoni + 4 247 -226 -219 0.0881 0.016 0.0457 0.138 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 91, Parent ID = 66 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 247 -226 -219 2.33e-06 0 0 0 Tank initStep + 1 334 -2.99e+03 -2.16e+03 2.33e-06 2.33e-06 3.38e+03 3.38e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 247 -226 -219 0.0881 0 0 0.138 Tank initStep + 5 247 -226 -219 0.0839 0.00418 0.00911 0.147 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 92, Parent ID = 66 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 247 -226 -219 3.52e-06 0 0 0 Tank initStep + 1 1.45e+03 5e+03 -4.62e+03 3.52e-06 0 6.94e+03 6.94e+03 expHall Transportation + 2 1.45e+03 5e+03 -4.62e+03 3.52e-06 0 0 6.94e+03 Tank Transportation + 3 5e+03 -3.45e+03 -3.74e+03 3.52e-06 0 9.21e+03 1.61e+04 expHall Transportation + 4 5e+03 -3.45e+03 -3.74e+03 3.52e-06 0 0 1.61e+04 Tank Transportation + 5 4.26e+03 -5e+03 -3.58e+03 3.52e-06 0 1.73e+03 1.79e+04 expHall Transportation + 6 -675 -1e+04 -1.72e+03 3.52e-06 0 7.27e+03 2.51e+04 world Transportation + 7 -5.61e+03 -1.5e+04 144 3.52e-06 0 7.27e+03 3.24e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 247 -226 -219 0.0839 0 0 0.147 Tank initStep + 6 247 -226 -219 0.0812 0.00272 0.00838 0.155 Tank msc + 7 247 -226 -219 0.067 0.0141 0.035 0.19 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 94, Parent ID = 66 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 247 -226 -219 2.48e-06 0 0 0 Tank initStep + 1 253 5e+03 -2.35e+03 2.48e-06 0 5.64e+03 5.64e+03 expHall Transportation + 2 253 5e+03 -2.35e+03 2.48e-06 0 0 5.64e+03 Tank Transportation + 3 884 2.8e+03 -5e+03 2.48e-06 0 3.5e+03 9.14e+03 expHall Transportation + 4 884 2.8e+03 -5e+03 2.48e-06 0 0 9.14e+03 Tank Transportation + 5 2.46e+03 -1.98e+03 5e+03 2.48e-06 0 1.12e+04 2.03e+04 expHall Transportation + 6 2.46e+03 -1.98e+03 5e+03 2.48e-06 0 0 2.03e+04 Tank Transportation + 7 1.73e+03 -1.69e+03 -5e+03 2.48e-06 0 1e+04 3.04e+04 expHall Transportation + 8 1.73e+03 -1.69e+03 -5e+03 2.48e-06 0 0 3.04e+04 Tank Transportation + 9 3.61e+03 453 -247 2.48e-06 2.48e-06 5.54e+03 3.59e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 93, Parent ID = 66 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 247 -226 -219 3.53e-06 0 0 0 Tank initStep + 1 -3.13e+03 5e+03 -2.44e+03 3.53e-06 0 6.61e+03 6.61e+03 expHall Transportation + 2 -3.13e+03 5e+03 -2.44e+03 3.53e-06 0 0 6.61e+03 Tank Transportation + 3 -5e+03 1.51e+03 -3.82e+03 3.53e-06 0 4.19e+03 1.08e+04 expHall Transportation + 4 -5e+03 1.51e+03 -3.82e+03 3.53e-06 0 0 1.08e+04 Tank Transportation + 5 -4.33e+03 19.8 -4.06e+03 3.53e-06 3.53e-06 1.65e+03 1.25e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 7 247 -226 -219 0.067 0 0 0.19 Tank initStep + 8 247 -226 -219 0.0642 0.00284 0.00569 0.196 Tank msc + 9 247 -226 -219 0.0462 0.0179 0.028 0.224 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 96, Parent ID = 66 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 247 -226 -219 2.75e-06 0 0 0 Tank initStep + 1 -1.52e+03 417 5e+03 2.75e-06 0 5.55e+03 5.55e+03 expHall Transportation + 2 -3.52e+03 2.78e+03 1e+04 2.75e-06 0 5.88e+03 1.14e+04 world Transportation + 3 -5.53e+03 5.15e+03 1.5e+04 2.75e-06 0 5.88e+03 1.73e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 95, Parent ID = 66 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 247 -226 -219 4.07e-06 0 0 0 Tank initStep + 1 -2.17e+03 -1.22e+03 1.74e+03 4.07e-06 0 3.27e+03 3.27e+03 Tank OpRayleigh + 2 532 -5e+03 2.01e+03 4.07e-06 0 4.66e+03 7.92e+03 expHall Transportation + 3 532 -5e+03 2.01e+03 4.07e-06 0 0 7.92e+03 Tank Transportation + 4 5e+03 3.6e+03 -2.98e+03 4.07e-06 0 1.09e+04 1.88e+04 expHall Transportation + 5 5e+03 3.6e+03 -2.98e+03 4.07e-06 0 0 1.88e+04 Tank Transportation + 6 2.04e+03 5e+03 -3.47e+03 4.07e-06 0 3.31e+03 2.21e+04 expHall Transportation + 7 2.04e+03 5e+03 -3.47e+03 4.07e-06 0 0 2.21e+04 Tank Transportation + 8 -1.23e+03 4.87e+03 -3.98e+03 4.07e-06 0 3.31e+03 2.55e+04 Tank OpRayleigh + 9 -1.24e+03 5e+03 -3.9e+03 4.07e-06 0 150 2.56e+04 expHall Transportation + 10 -7.64e+03 1e+04 8.95e+03 4.07e-06 0 1.52e+04 4.08e+04 world Transportation + 11 -1.07e+04 1.24e+04 1.5e+04 4.07e-06 0 7.15e+03 4.8e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 9 247 -226 -219 0.0462 0 0 0.224 Tank initStep + 10 247 -226 -219 0.0453 0.000969 0.00297 0.227 Tank msc + 11 247 -226 -219 0.0362 0.00906 0.0209 0.248 Tank eIoni + 12 247 -226 -219 0.0135 0.0227 0.0175 0.265 Tank eIoni + 13 247 -226 -219 0 0.0135 0.00423 0.269 Tank eIoni + 14 247 -226 -219 0 0 0 0.269 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 97, Parent ID = 66 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 247 -226 -219 3.48e-06 0 0 0 Tank initStep + 1 3.49e+03 -3.54e+03 5e+03 3.48e-06 0 6.98e+03 6.98e+03 expHall Transportation + 2 9.12e+03 -1e+04 6.94e+03 3.48e-06 0 8.78e+03 1.58e+04 world Transportation + 3 1.35e+04 -1.5e+04 8.44e+03 3.48e-06 0 6.8e+03 2.26e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 152 -58.3 -225 0.188 0 0 0 Tank initStep + 1 152 -58.2 -225 0.18 0.00745 0.0321 0.0321 Tank msc + 2 152 -58.2 -225 0.158 0.0219 0.091 0.123 Tank eIoni + 3 152 -58.1 -225 0.135 0.0234 0.0767 0.2 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 98, Parent ID = 65 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 152 -58.2 -225 3.65e-06 0 0 0 Tank initStep + 1 2.69e+03 5e+03 -4.01e+03 3.65e-06 0 6.81e+03 6.81e+03 expHall Transportation + 2 2.69e+03 5e+03 -4.01e+03 3.65e-06 0 0 6.81e+03 Tank Transportation + 3 2.8e+03 3.93e+03 -5e+03 3.65e-06 0 1.46e+03 8.27e+03 expHall Transportation + 4 7.57e+03 -1e+04 -9.19e+03 3.65e-06 0 1.53e+04 2.36e+04 world Transportation + 5 9.28e+03 -1.5e+04 -1.07e+04 3.65e-06 0 5.5e+03 2.91e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 152 -58.1 -225 0.135 0 0 0.2 Tank initStep + 4 152 -58.1 -225 0.127 0.00766 0.0187 0.219 Tank msc + 5 152 -58.1 -225 0.0936 0.0337 0.0581 0.277 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 99, Parent ID = 65 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 152 -58.1 -225 2.51e-06 0 0 0 Tank initStep + 1 5e+03 2.96e+03 567 2.51e-06 0 5.77e+03 5.77e+03 expHall Transportation + 2 1e+04 9.58e+03 1.61e+03 2.51e-06 0 8.36e+03 1.41e+04 world Transportation + 3 1.41e+04 1.5e+04 2.47e+03 2.51e-06 0 6.84e+03 2.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 152 -58.1 -225 0.0936 0 0 0.277 Tank initStep + 6 152 -58.1 -225 0.0917 0.00191 0.0101 0.287 Tank msc + 7 152 -58 -225 0.0791 0.0126 0.0398 0.327 Tank eIoni + 8 152 -58 -225 0.0574 0.0217 0.0341 0.361 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 101, Parent ID = 65 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 152 -58 -225 2.15e-06 0 0 0 Tank initStep + 1 2.37e+03 2.02e+03 -3.13e+03 2.15e-06 2.15e-06 4.21e+03 4.21e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 100, Parent ID = 65 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 152 -58 -225 3.18e-06 0 0 0 Tank initStep + 1 3.12e+03 -3.12e+03 -1.79e+03 3.18e-06 3.18e-06 4.54e+03 4.54e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 8 152 -58 -225 0.0574 0 0 0.361 Tank initStep + 9 152 -58 -225 0.0536 0.00377 0.00434 0.365 Tank msc + 10 152 -58 -225 0.0386 0.015 0.024 0.389 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 102, Parent ID = 65 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 152 -58 -225 3.62e-06 0 0 0 Tank initStep + 1 1.45e+03 1.73e+03 3.89e+03 3.62e-06 3.62e-06 4.67e+03 4.67e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 29 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 10 152 -58 -225 0.0386 0 0 0.389 Tank initStep + 11 152 -58 -225 0.0377 0.000921 0.00216 0.391 Tank msc + 12 152 -58 -225 0.0251 0.0125 0.0181 0.409 Tank eIoni + 13 152 -58 -225 0.00417 0.021 0.0122 0.421 Tank eIoni + 14 152 -58 -225 0 0.00417 0.000541 0.422 Tank eIoni + 15 152 -58 -225 0 0 0 0.422 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.595 -0.281 -0.666 3.73e-06 0 0 0 Tank initStep - 1 -1.73e+03 2.64e+03 5e+03 3.73e-06 0 5.91e+03 5.91e+03 expHall Transportation - 2 -1.73e+03 2.64e+03 5e+03 3.73e-06 0 0 5.91e+03 Tank Transportation - 3 -2.33e+03 5e+03 3.92e+03 3.73e-06 0 2.66e+03 8.58e+03 expHall Transportation - 4 -2.33e+03 5e+03 3.92e+03 3.73e-06 0 0 8.58e+03 Tank Transportation - 5 -3.79e+03 4.15e+03 2.97e+03 3.73e-06 0 1.94e+03 1.05e+04 Tank OpRayleigh - 6 919 1.97e+03 -5e+03 3.73e-06 0 9.51e+03 2e+04 expHall Transportation - 7 919 1.97e+03 -5e+03 3.73e-06 0 0 2e+04 Tank Transportation - 8 5e+03 -4.7e+03 -435 3.73e-06 0 9.05e+03 2.91e+04 expHall Transportation - 9 5e+03 -4.7e+03 -435 3.73e-06 0 0 2.91e+04 Tank Transportation - 10 4.55e+03 -5e+03 -12.6 3.73e-06 0 684 2.98e+04 expHall Transportation - 11 4.55e+03 -5e+03 -12.6 3.73e-06 0 0 2.98e+04 Tank Transportation - 12 -2.5e+03 4.38e+03 2.31e+03 3.73e-06 3.73e-06 1.2e+04 4.17e+04 Tank OpAbsorption + 0 -0.0945 0.586 -0.297 3.37e-06 0 0 0 Tank initStep + 1 521 -952 21.3 3.37e-06 0 1.09e+03 1.09e+03 Tank OpRayleigh + 2 738 -5e+03 -3.19e+03 3.37e-06 0 5.17e+03 6.26e+03 expHall Transportation + 3 1.72e+03 -9.05e+03 -1e+04 3.37e-06 0 7.98e+03 1.42e+04 world Transportation + 4 2.45e+03 -1.2e+04 -1.5e+04 3.37e-06 0 5.86e+03 2.01e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.593 -0.275 -0.665 3.01e-06 0 0 0 Tank initStep - 1 84.3 -369 63.7 3.01e-06 3.01e-06 383 383 Tank OpAbsorption + 0 -0.097 0.577 -0.269 3.54e-06 0 0 0 Tank initStep + 1 2.81e+03 3.96e+03 -1.93e+03 3.54e-06 3.54e-06 5.22e+03 5.22e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0978 0.574 -0.259 2.71e-06 0 0 0 Tank initStep + 1 -3.19e+03 5e+03 -1.04e+03 2.71e-06 0 6.02e+03 6.02e+03 expHall Transportation + 2 -1e+04 8.79e+03 -3.06e+03 2.71e-06 0 8.05e+03 1.41e+04 world Transportation + 3 -1.5e+04 1.16e+04 -4.55e+03 2.71e-06 0 5.91e+03 2e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0992 0.568 -0.243 2.9e-06 0 0 0 Tank initStep + 1 176 2.85e+03 5e+03 2.9e-06 0 5.76e+03 5.76e+03 expHall Transportation + 2 -674 5.66e+03 1e+04 2.9e-06 0 5.8e+03 1.16e+04 world Transportation + 3 -1.53e+03 8.46e+03 1.5e+04 2.9e-06 0 5.8e+03 1.74e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 22 0.607 -0.307 -0.666 0.139 0 0 1.43 Tank initStep - 23 0.609 -0.324 -0.674 0.136 0.0032 0.0188 1.45 Tank msc - 24 0.618 -0.372 -0.693 0.115 0.0206 0.061 1.51 Tank eIoni + 0 0 0 0 0.5 0 0 0 Tank initStep + 1 0.121 0.0112 -0.0326 0.447 0.0534 0.139 0.139 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0606 0.00561 -0.0164 2.38e-06 0 0 0 Tank initStep + 1 -145 94.4 -38.6 2.38e-06 2.38e-06 177 177 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0959 0.00888 -0.0259 3.44e-06 0 0 0 Tank initStep + 1 5e+03 1.66e+03 -4.97e+03 3.44e-06 0 7.24e+03 7.24e+03 expHall Transportation + 2 8.7e+03 -121 -1e+04 3.44e-06 0 6.5e+03 1.37e+04 world Transportation + 3 1.24e+04 -1.89e+03 -1.5e+04 3.44e-06 0 6.46e+03 2.02e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0673 0.00622 -0.0182 3.82e-06 0 0 0 Tank initStep + 1 5e+03 7.57 1.35e+03 3.82e-06 0 5.18e+03 5.18e+03 expHall Transportation + 2 1e+04 324 3.91e+03 3.82e-06 0 5.63e+03 1.08e+04 world Transportation + 3 1.5e+04 641 6.48e+03 3.82e-06 0 5.63e+03 1.64e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 0.121 0.0112 -0.0326 0.447 0 0 0.139 Tank initStep + 2 0.172 0.0293 -0.13 0.421 0.0259 0.111 0.251 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.141 0.0181 -0.0698 3.49e-06 0 0 0 Tank initStep + 1 289 1.16e+03 -1.8e+03 3.49e-06 3.49e-06 2.16e+03 2.16e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 0.172 0.0293 -0.13 0.421 0 0 0.251 Tank initStep + 3 0.218 0.0635 -0.208 0.409 0.012 0.0986 0.349 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.179 0.0348 -0.142 3.03e-06 0 0 0 Tank initStep + 1 -5e+03 4.44e+03 -3.28e+03 3.03e-06 0 7.44e+03 7.44e+03 expHall Transportation + 2 -5e+03 4.44e+03 -3.28e+03 3.03e-06 0 0 7.44e+03 Tank Transportation + 3 -3.69e+03 5e+03 -3.84e+03 3.03e-06 0 1.53e+03 8.97e+03 expHall Transportation + 4 -3.69e+03 5e+03 -3.84e+03 3.03e-06 0 0 8.97e+03 Tank Transportation + 5 -3.39e+03 2.76e+03 -5e+03 3.03e-06 0 2.54e+03 1.15e+04 expHall Transportation + 6 -3.95e+03 -4.08e+03 -1e+04 3.03e-06 0 8.49e+03 2e+04 world Transportation + 7 -4.51e+03 -1.09e+04 -1.5e+04 3.03e-06 0 8.49e+03 2.85e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.198 0.0489 -0.175 3.68e-06 0 0 0 Tank initStep + 1 4.05e+03 5e+03 -3.44e+03 3.68e-06 0 7.29e+03 7.29e+03 expHall Transportation + 2 4.05e+03 5e+03 -3.44e+03 3.68e-06 0 0 7.29e+03 Tank Transportation + 3 5e+03 3.5e+03 -4.4e+03 3.68e-06 0 2.02e+03 9.31e+03 expHall Transportation + 4 5e+03 3.5e+03 -4.4e+03 3.68e-06 0 0 9.31e+03 Tank Transportation + 5 4.06e+03 2.8e+03 -4.82e+03 3.68e-06 3.68e-06 1.24e+03 1.06e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 0.218 0.0635 -0.208 0.409 0 0 0.349 Tank initStep + 4 0.269 0.116 -0.262 0.393 0.016 0.093 0.442 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.225 0.0713 -0.216 3.98e-06 0 0 0 Tank initStep + 1 824 4.35e+03 -5e+03 3.98e-06 0 6.68e+03 6.68e+03 expHall Transportation + 2 824 4.35e+03 -5e+03 3.98e-06 0 0 6.68e+03 Tank Transportation + 3 911 5e+03 -4.22e+03 3.98e-06 0 1.02e+03 7.7e+03 expHall Transportation + 4 911 5e+03 -4.22e+03 3.98e-06 0 0 7.7e+03 Tank Transportation + 5 -2.31e+03 -5e+03 -2.07e+03 3.98e-06 0 1.07e+04 1.84e+04 expHall Transportation + 6 -5.79e+03 -1e+04 3.07e+03 3.98e-06 0 7.97e+03 2.64e+04 world Transportation + 7 -9.27e+03 -1.5e+04 8.21e+03 3.98e-06 0 7.97e+03 3.44e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.265 0.112 -0.258 3.6e-06 0 0 0 Tank initStep + 1 1.32e+03 5e+03 -2.48e+03 3.6e-06 0 5.73e+03 5.73e+03 expHall Transportation + 2 4.29e+03 1e+04 -6.42e+03 3.6e-06 0 7.02e+03 1.28e+04 world Transportation + 3 7.26e+03 1.5e+04 -1.04e+04 3.6e-06 0 7.02e+03 1.98e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.234 0.0801 -0.225 3.63e-06 0 0 0 Tank initStep + 1 2e+03 5e+03 -1.69e+03 3.63e-06 0 5.64e+03 5.64e+03 expHall Transportation + 2 7.23e+03 1e+04 -7.12e+03 3.63e-06 0 9.04e+03 1.47e+04 world Transportation + 3 1.25e+04 1.5e+04 -1.25e+04 3.63e-06 0 9.04e+03 2.37e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 0.269 0.116 -0.262 0.393 0 0 0.442 Tank initStep + 5 0.321 0.182 -0.276 0.377 0.0158 0.0859 0.528 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.272 0.121 -0.263 2.33e-06 0 0 0 Tank initStep + 1 1.25e+03 5e+03 -225 2.33e-06 0 5.16e+03 5.16e+03 expHall Transportation + 2 5.8e+03 1e+04 -2.61e+03 2.33e-06 0 7.17e+03 1.23e+04 world Transportation + 3 1.03e+04 1.5e+04 -5e+03 2.33e-06 0 7.17e+03 1.95e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.3 0.156 -0.271 2.43e-06 0 0 0 Tank initStep + 1 3.05e+03 5e+03 -3.96e+03 2.43e-06 0 7.07e+03 7.07e+03 expHall Transportation + 2 3.05e+03 5e+03 -3.96e+03 2.43e-06 0 0 7.07e+03 Tank Transportation + 3 2.97e+03 3.75e+03 -5e+03 2.43e-06 0 1.63e+03 8.69e+03 expHall Transportation + 4 2.97e+03 3.75e+03 -5e+03 2.43e-06 0 0 8.69e+03 Tank Transportation + 5 2.25e+03 389 -2.3e+03 2.43e-06 2.43e-06 4.37e+03 1.31e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 0.321 0.182 -0.276 0.377 0 0 0.528 Tank initStep + 6 0.384 0.222 -0.302 0.366 0.0111 0.0791 0.607 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.335 0.191 -0.282 3.31e-06 0 0 0 Tank initStep + 1 4.73e+03 2.33e+03 -5e+03 3.31e-06 0 7.27e+03 7.27e+03 expHall Transportation + 2 4.73e+03 2.33e+03 -5e+03 3.31e-06 0 0 7.27e+03 Tank Transportation + 3 5e+03 2.58e+03 -4.36e+03 3.31e-06 0 735 8e+03 expHall Transportation + 4 5e+03 2.58e+03 -4.36e+03 3.31e-06 0 0 8e+03 Tank Transportation + 5 -5e+03 1.63e+03 2.27e+03 3.31e-06 0 1.2e+04 2e+04 expHall Transportation + 6 -5e+03 1.63e+03 2.27e+03 3.31e-06 0 0 2e+04 Tank Transportation + 7 -1.42e+03 2.52e+03 5e+03 3.31e-06 0 4.59e+03 2.46e+04 expHall Transportation + 8 -1.42e+03 2.52e+03 5e+03 3.31e-06 0 0 2.46e+04 Tank Transportation + 9 5e+03 1.53e+03 479 3.31e-06 0 7.91e+03 3.25e+04 expHall Transportation + 10 5e+03 1.53e+03 479 3.31e-06 0 0 3.25e+04 Tank Transportation + 11 -3.15e+03 5e+03 -1.27e+03 3.31e-06 0 9.03e+03 4.16e+04 expHall Transportation + 12 -3.15e+03 5e+03 -1.27e+03 3.31e-06 0 0 4.16e+04 Tank Transportation + 13 -5e+03 4.64e+03 -1.04e+03 3.31e-06 0 1.9e+03 4.35e+04 expHall Transportation + 14 -1e+04 5.26e+03 -66.8 3.31e-06 0 5.13e+03 4.86e+04 world Transportation + 15 -1.5e+04 5.89e+03 910 3.31e-06 0 5.13e+03 5.37e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 6 0.384 0.222 -0.302 0.366 0 0 0.607 Tank initStep + 7 0.444 0.246 -0.335 0.35 0.016 0.0745 0.682 Tank Cerenkov + 8 0.502 0.277 -0.338 0.339 0.0109 0.0682 0.75 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.478 0.264 -0.337 2.12e-06 0 0 0 Tank initStep + 1 1.69e+03 1.51e+03 618 2.12e-06 2.12e-06 2.35e+03 2.35e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.485 0.268 -0.337 3.15e-06 0 0 0 Tank initStep + 1 3.98e+03 2.46e+03 1.75e+03 3.15e-06 3.15e-06 5e+03 5e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 8 0.502 0.277 -0.338 0.339 0 0 0.75 Tank initStep + 9 0.553 0.314 -0.344 0.328 0.0103 0.0639 0.814 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.534 0.301 -0.342 3.15e-06 0 0 0 Tank initStep + 1 5e+03 570 3.2e+03 3.15e-06 0 5.96e+03 5.96e+03 expHall Transportation + 2 9.16e+03 1.26e+03 1e+04 3.15e-06 0 8.01e+03 1.4e+04 world Transportation + 3 1.22e+04 1.77e+03 1.5e+04 3.15e-06 0 5.88e+03 1.99e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.526 0.294 -0.341 3.37e-06 0 0 0 Tank initStep + 1 5e+03 3.67e+03 -3.22e+03 3.37e-06 0 6.99e+03 6.99e+03 expHall Transportation + 2 5e+03 3.67e+03 -3.22e+03 3.37e-06 0 0 6.99e+03 Tank Transportation + 3 3.59e+03 5e+03 -3.9e+03 3.37e-06 0 2.05e+03 9.04e+03 expHall Transportation + 4 -935 8.54e+03 -1e+04 3.37e-06 0 8.38e+03 1.74e+04 world Transportation + 5 -4.65e+03 1.14e+04 -1.5e+04 3.37e-06 0 6.87e+03 2.43e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 9 0.553 0.314 -0.344 0.328 0 0 0.814 Tank initStep + 10 0.605 0.339 -0.357 0.315 0.0138 0.0601 0.874 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.588 0.331 -0.353 3e-06 0 0 0 Tank initStep + 1 5e+03 -1.06e+03 -1.56e+03 3e-06 0 5.34e+03 5.34e+03 expHall Transportation + 2 1e+04 -3.08e+03 -3.93e+03 3e-06 0 5.89e+03 1.12e+04 world Transportation + 3 1.5e+04 -5.11e+03 -6.3e+03 3e-06 0 5.89e+03 1.71e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 10 0.605 0.339 -0.357 0.315 0 0 0.874 Tank initStep + 11 0.659 0.352 -0.36 0.299 0.0161 0.0553 0.929 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.642 0.348 -0.359 3.49e-06 0 0 0 Tank initStep + 1 5e+03 2.83e+03 -1.45e+03 3.49e-06 0 5.92e+03 5.92e+03 expHall Transportation + 2 5e+03 2.83e+03 -1.45e+03 3.49e-06 0 0 5.92e+03 Tank Transportation + 3 4.49e+03 5e+03 -2.01e+03 3.49e-06 0 2.3e+03 8.22e+03 expHall Transportation + 4 4.93e+03 1e+04 -5.6e+03 3.49e-06 0 6.17e+03 1.44e+04 world Transportation + 5 5.37e+03 1.5e+04 -9.18e+03 3.49e-06 0 6.17e+03 2.06e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 11 0.659 0.352 -0.36 0.299 0 0 0.929 Tank initStep + 12 0.706 0.366 -0.361 0.29 0.00839 0.0498 0.979 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.678 0.358 -0.36 3e-06 0 0 0 Tank initStep + 1 -3.2e+03 5e+03 -1.27e+03 3e-06 0 6.07e+03 6.07e+03 expHall Transportation + 2 -3.2e+03 5e+03 -1.27e+03 3e-06 0 0 6.07e+03 Tank Transportation + 3 -5e+03 2.88e+03 -2.99e+03 3e-06 0 3.27e+03 9.34e+03 expHall Transportation + 4 -5e+03 2.88e+03 -2.99e+03 3e-06 0 0 9.34e+03 Tank Transportation + 5 -2.28e+03 1.32e+03 -5e+03 3e-06 0 3.72e+03 1.31e+04 expHall Transportation + 6 -2.28e+03 1.32e+03 -5e+03 3e-06 0 0 1.31e+04 Tank Transportation + 7 5e+03 -1.84e+03 -4.01e+03 3e-06 0 8e+03 2.11e+04 expHall Transportation + 8 1e+04 -6.24e+03 -3.03e+03 3e-06 0 6.73e+03 2.78e+04 world Transportation + 9 1.5e+04 -1.06e+04 -2.05e+03 3e-06 0 6.73e+03 3.45e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 12 0.706 0.366 -0.361 0.29 0 0 0.979 Tank initStep + 13 0.752 0.376 -0.359 0.282 0.00828 0.047 1.03 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.719 0.369 -0.361 3.65e-06 0 0 0 Tank initStep + 1 418 2e+03 -490 3.65e-06 0 2.1e+03 2.1e+03 Bubble Transportation + 2 426 2.03e+03 -500 3.65e-06 3.65e-06 30.4 2.13e+03 Tank Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 13 0.752 0.376 -0.359 0.282 0 0 1.03 Tank initStep + 14 0.795 0.385 -0.362 0.275 0.00673 0.0445 1.07 Tank Cerenkov + 15 0.833 0.397 -0.373 0.269 0.00614 0.0424 1.11 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.831 0.396 -0.372 3.54e-06 0 0 0 Tank initStep + 1 5e+03 1.35e+03 -2.79e+03 3.54e-06 0 5.88e+03 5.88e+03 expHall Transportation + 2 5e+03 1.35e+03 -2.79e+03 3.54e-06 0 0 5.88e+03 Tank Transportation + 3 3.81e+03 2.52e+03 -5e+03 3.54e-06 0 2.77e+03 8.65e+03 expHall Transportation + 4 -1.97e+03 1e+04 -7.56e+03 3.54e-06 0 9.79e+03 1.84e+04 world Transportation + 5 -5.83e+03 1.5e+04 -9.27e+03 3.54e-06 0 6.54e+03 2.5e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 15 0.833 0.397 -0.373 0.269 0 0 1.11 Tank initStep + 16 0.87 0.412 -0.375 0.256 0.0133 0.0405 1.15 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.858 0.407 -0.374 2.54e-06 0 0 0 Tank initStep + 1 -57.7 -538 288 2.54e-06 0 613 613 Tank OpRayleigh + 2 5e+03 2.82e+03 1.38e+03 2.54e-06 0 6.17e+03 6.78e+03 expHall Transportation + 3 5e+03 2.82e+03 1.38e+03 2.54e-06 0 0 6.78e+03 Tank Transportation + 4 2.15e+03 4.61e+03 2.62e+03 2.54e-06 2.54e-06 3.59e+03 1.04e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.858 0.407 -0.374 3.64e-06 0 0 0 Tank initStep + 1 5e+03 1.47e+03 -1.19e+03 3.64e-06 0 5.34e+03 5.34e+03 expHall Transportation + 2 1e+04 7.58e+03 -4.41e+03 3.64e-06 0 8.53e+03 1.39e+04 world Transportation + 3 1.5e+04 1.37e+04 -7.62e+03 3.64e-06 0 8.53e+03 2.24e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 16 0.87 0.412 -0.375 0.256 0 0 1.15 Tank initStep + 17 0.905 0.423 -0.374 0.25 0.00566 0.0367 1.19 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.872 0.413 -0.375 2.9e-06 0 0 0 Tank initStep + 1 1.18e+03 476 -45.6 2.9e-06 2.9e-06 1.27e+03 1.27e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 17 0.905 0.423 -0.374 0.25 0 0 1.19 Tank initStep + 18 0.933 0.422 -0.377 0.186 0.0642 0.0287 1.22 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.922 0.422 -0.376 3.38e-06 0 0 0 Tank initStep + 1 -1.89e+03 5e+03 -246 3.38e-06 0 5.35e+03 5.35e+03 expHall Transportation + 2 -2.35e+03 1e+04 -561 3.38e-06 0 5.03e+03 1.04e+04 world Transportation + 3 -2.81e+03 1.5e+04 -877 3.38e-06 0 5.03e+03 1.54e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.908 0.423 -0.374 2.68e-06 0 0 0 Tank initStep + 1 -5e+03 -138 -1.73e+03 2.68e-06 0 5.29e+03 5.29e+03 expHall Transportation + 2 -1e+04 -1.34e+03 -7.44e+03 2.68e-06 0 7.68e+03 1.3e+04 world Transportation + 3 -1.5e+04 -2.54e+03 -1.31e+04 2.68e-06 0 7.68e+03 2.07e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.921 0.422 -0.375 3.78e-06 0 0 0 Tank initStep + 1 -444 1.08 -190 3.78e-06 3.78e-06 484 484 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.912 0.423 -0.375 2.76e-06 0 0 0 Tank initStep + 1 2.29e+03 -5e+03 -375 2.76e-06 0 5.51e+03 5.51e+03 expHall Transportation + 2 8.67e+03 -1e+04 -1.16e+03 2.76e-06 0 8.15e+03 1.37e+04 world Transportation + 3 1.5e+04 -1.5e+04 -1.94e+03 2.76e-06 0 8.08e+03 2.17e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 18 0.933 0.422 -0.377 0.186 0 0 1.22 Tank initStep + 19 0.959 0.409 -0.373 0.14 0.0456 0.0305 1.25 Tank msc ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.615 -0.356 -0.687 3.86e-06 0 0 0 Tank initStep - 1 2.02e+03 4.89e+03 -5e+03 3.86e-06 0 7.28e+03 7.28e+03 expHall Transportation - 2 2.02e+03 4.89e+03 -5e+03 3.86e-06 0 0 7.28e+03 Tank Transportation - 3 2.06e+03 5e+03 -4.86e+03 3.86e-06 3.86e-06 181 7.46e+03 Tank OpAbsorption + 0 0.948 0.414 -0.375 2.1e-06 0 0 0 Tank initStep + 1 173 -2.53e+03 -5e+03 2.1e-06 0 5.6e+03 5.6e+03 expHall Transportation + 2 -2.66e+03 -1e+04 -8.41e+03 2.1e-06 0 8.69e+03 1.43e+04 world Transportation + 3 -4.55e+03 -1.5e+04 -1.07e+04 2.1e-06 0 5.81e+03 2.01e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.612 -0.341 -0.681 3.07e-06 0 0 0 Tank initStep - 1 -1.28e+03 -76.3 3.14e+03 3.07e-06 0 3.39e+03 3.39e+03 Tank OpRayleigh - 2 1.24e+03 -5e+03 2.4e+03 3.07e-06 0 5.58e+03 8.97e+03 expHall Transportation - 3 5.07e+03 -1e+04 -521 3.07e-06 0 6.94e+03 1.59e+04 world Transportation - 4 8.9e+03 -1.5e+04 -3.44e+03 3.07e-06 0 6.94e+03 2.29e+04 OutOfWorld Transportation + 0 0.938 0.419 -0.376 3.86e-06 0 0 0 Tank initStep + 1 5e+03 764 -4.08e+03 3.86e-06 0 6.5e+03 6.5e+03 expHall Transportation + 2 5e+03 764 -4.08e+03 3.86e-06 0 0 6.5e+03 Tank Transportation + 3 4.32e+03 796 -4.77e+03 3.86e-06 3.86e-06 972 7.47e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 24 0.618 -0.372 -0.693 0.115 0 0 1.51 Tank initStep - 25 0.609 -0.373 -0.702 0.111 0.00389 0.0137 1.53 Tank msc - 26 0.585 -0.361 -0.733 0.0948 0.0166 0.0478 1.58 Tank eIoni + 19 0.959 0.409 -0.373 0.14 0 0 1.25 Tank initStep + 20 0.976 0.4 -0.371 0.132 0.00796 0.0191 1.27 Tank msc ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 33, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.601 -0.369 -0.712 3.54e-06 0 0 0 Tank initStep - 1 -1.29e+03 2.19e+03 -5e+03 3.54e-06 0 5.61e+03 5.61e+03 expHall Transportation - 2 -2.74e+03 9.04e+03 -1e+04 3.54e-06 0 8.61e+03 1.42e+04 world Transportation - 3 -4.01e+03 1.5e+04 -1.43e+04 3.54e-06 0 7.49e+03 2.17e+04 OutOfWorld Transportation + 0 0.965 0.406 -0.373 2.71e-06 0 0 0 Tank initStep + 1 -288 372 -5e+03 2.71e-06 0 5.02e+03 5.02e+03 expHall Transportation + 2 -288 372 -5e+03 2.71e-06 0 0 5.02e+03 Tank Transportation + 3 -1.72e+03 5e+03 1.75e+03 2.71e-06 0 8.31e+03 1.33e+04 expHall Transportation + 4 -1.72e+03 5e+03 1.75e+03 2.71e-06 0 0 1.33e+04 Tank Transportation + 5 -2.18e+03 4.32e+03 5e+03 2.71e-06 0 3.35e+03 1.67e+04 expHall Transportation + 6 -1.13e+03 1.46e+03 1e+04 2.71e-06 0 5.85e+03 2.25e+04 world Transportation + 7 -85.6 -1.39e+03 1.5e+04 2.71e-06 0 5.85e+03 2.84e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.589 -0.363 -0.728 3.21e-06 0 0 0 Tank initStep - 1 957 -2.69e+03 -4.69e+03 3.21e-06 3.21e-06 5.49e+03 5.49e+03 Tank OpAbsorption + 0 0.975 0.401 -0.371 2.73e-06 0 0 0 Tank initStep + 1 3.01e+03 -2.57e+03 5e+03 2.73e-06 0 6.37e+03 6.37e+03 expHall Transportation + 2 3.01e+03 -2.57e+03 5e+03 2.73e-06 0 0 6.37e+03 Tank Transportation + 3 5e+03 -4.35e+03 4.9e+03 2.73e-06 0 2.68e+03 9.05e+03 expHall Transportation + 4 5e+03 -4.35e+03 4.9e+03 2.73e-06 0 0 9.05e+03 Tank Transportation + 5 4.72e+03 -5e+03 4.83e+03 2.73e-06 0 707 9.76e+03 expHall Transportation + 6 4.72e+03 -5e+03 4.83e+03 2.73e-06 0 0 9.76e+03 Tank Transportation + 7 1.89e+03 5e+03 3.68e+03 2.73e-06 0 1.05e+04 2.02e+04 expHall Transportation + 8 -147 1e+04 2.14e+03 2.73e-06 0 5.61e+03 2.58e+04 world Transportation + 9 -2.18e+03 1.5e+04 600 2.73e-06 0 5.61e+03 3.14e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 26 0.585 -0.361 -0.733 0.0948 0 0 1.58 Tank initStep - 27 0.582 -0.353 -0.738 0.0921 0.00266 0.00978 1.59 Tank msc - 28 0.569 -0.332 -0.757 0.0779 0.0142 0.0386 1.62 Tank eIoni - 29 0.572 -0.31 -0.772 0.056 0.0219 0.0324 1.66 Tank eIoni + 20 0.976 0.4 -0.371 0.132 0 0 1.27 Tank initStep + 21 0.989 0.391 -0.377 0.128 0.00468 0.0173 1.29 Tank msc + 22 1.03 0.371 -0.387 0.103 0.025 0.0563 1.34 Tank eIoni + 23 1.06 0.359 -0.403 0.0862 0.0164 0.0435 1.39 Tank eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 34, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.57 -0.32 -0.765 3.54e-06 0 0 0 Tank initStep - 1 2.86e+03 -562 -1.05e+03 3.54e-06 3.54e-06 3.1e+03 3.1e+03 Tank OpAbsorption + 0 1.04 0.369 -0.39 3.12e-06 0 0 0 Tank initStep + 1 -451 239 -5e+03 3.12e-06 0 5.03e+03 5.03e+03 expHall Transportation + 2 -1.11e+03 923 -1e+04 3.12e-06 0 5.09e+03 1.01e+04 world Transportation + 3 -1.78e+03 1.61e+03 -1.5e+04 3.12e-06 0 5.09e+03 1.52e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 29 0.572 -0.31 -0.772 0.056 0 0 1.66 Tank initStep - 30 0.575 -0.309 -0.774 0.0534 0.00261 0.00389 1.66 Tank msc - 31 0.589 -0.304 -0.784 0.0415 0.0119 0.0232 1.68 Tank eIoni - 32 0.584 -0.298 -0.774 0.0285 0.013 0.0189 1.7 Tank eIoni - 33 0.59 -0.294 -0.771 0.01 0.0185 0.0134 1.72 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 36, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.585 -0.297 -0.773 4.08e-06 0 0 0 Tank initStep - 1 -4.43e+03 5e+03 -3e+03 4.08e-06 0 7.32e+03 7.32e+03 expHall Transportation - 2 -4.43e+03 5e+03 -3e+03 4.08e-06 0 0 7.32e+03 Tank Transportation - 3 -5e+03 4.3e+03 -3.41e+03 4.08e-06 0 996 8.32e+03 expHall Transportation - 4 -5e+03 4.3e+03 -3.41e+03 4.08e-06 0 0 8.32e+03 Tank Transportation - 5 -458 674 -3.7e+03 4.08e-06 0 5.82e+03 1.41e+04 Tank OpRayleigh - 6 5e+03 -85.9 -11 4.08e-06 0 6.63e+03 2.08e+04 expHall Transportation - 7 5e+03 -85.9 -11 4.08e-06 0 0 2.08e+04 Tank Transportation - 8 1.05e+03 514 5e+03 4.08e-06 0 6.41e+03 2.72e+04 expHall Transportation - 9 1.05e+03 514 5e+03 4.08e-06 0 0 2.72e+04 Tank Transportation - 10 -3.99e+03 515 -4.22e+03 4.08e-06 4.08e-06 1.05e+04 3.77e+04 Tank OpAbsorption + 23 1.06 0.359 -0.403 0.0862 0 0 1.39 Tank initStep + 24 1.07 0.359 -0.402 0.0823 0.00387 0.00829 1.39 Tank msc + 25 1.1 0.356 -0.399 0.0653 0.017 0.0343 1.43 Tank eIoni + 26 1.12 0.366 -0.407 0.0516 0.0137 0.0275 1.46 Tank eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 35, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.585 -0.298 -0.773 2.99e-06 0 0 0 Tank initStep - 1 81.1 2.99e+03 3.03e+03 2.99e-06 0 4.25e+03 4.25e+03 Tank OpRayleigh - 2 3.2e+03 5e+03 4.24e+03 2.99e-06 0 3.9e+03 8.16e+03 expHall Transportation - 3 3.2e+03 5e+03 4.24e+03 2.99e-06 0 0 8.16e+03 Tank Transportation - 4 5e+03 3.6e+03 3.99e+03 2.99e-06 0 2.3e+03 1.05e+04 expHall Transportation - 5 5e+03 3.6e+03 3.99e+03 2.99e-06 0 0 1.05e+04 Tank Transportation - 6 -5e+03 -3.84e+03 2.55e+03 2.99e-06 0 1.25e+04 2.3e+04 expHall Transportation - 7 -5e+03 -3.84e+03 2.55e+03 2.99e-06 0 0 2.3e+04 Tank Transportation - 8 -3.59e+03 -5e+03 2.48e+03 2.99e-06 0 1.83e+03 2.48e+04 expHall Transportation - 9 -3.59e+03 -5e+03 2.48e+03 2.99e-06 0 0 2.48e+04 Tank Transportation - 10 4.55e+03 -2.27e+03 5e+03 2.99e-06 0 8.95e+03 3.38e+04 expHall Transportation - 11 4.55e+03 -2.27e+03 5e+03 2.99e-06 0 0 3.38e+04 Tank Transportation - 12 5e+03 -2.02e+03 4.57e+03 2.99e-06 0 672 3.45e+04 expHall Transportation - 13 5e+03 -2.02e+03 4.57e+03 2.99e-06 0 0 3.45e+04 Tank Transportation - 14 3.99e+03 1.42e+03 -5e+03 2.99e-06 0 1.02e+04 4.47e+04 expHall Transportation - 15 3.6e+03 3.74e+03 -1e+04 2.99e-06 0 5.53e+03 5.02e+04 world Transportation - 16 3.21e+03 6.06e+03 -1.5e+04 2.99e-06 0 5.53e+03 5.57e+04 OutOfWorld Transportation + 0 1.11 0.363 -0.404 2.11e-06 0 0 0 Tank initStep + 1 27.8 -2.49e+03 543 2.11e-06 2.11e-06 2.55e+03 2.55e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 33 0.59 -0.294 -0.771 0.01 0 0 1.72 Tank initStep - 34 0.59 -0.294 -0.771 0.00973 0.000301 0.000179 1.72 Tank msc - 35 0.59 -0.293 -0.772 0 0.00973 0.00212 1.72 Tank eIoni - 36 0.59 -0.293 -0.772 0 0 0 1.72 Tank annihil + 26 1.12 0.366 -0.407 0.0516 0 0 1.46 Tank initStep + 27 1.12 0.37 -0.407 0.0488 0.00283 0.00336 1.46 Tank msc + 28 1.11 0.385 -0.405 0.0314 0.0174 0.0215 1.48 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 38, Parent ID = 1 +* G4Track Information: Particle = opticalphoton, Track ID = 36, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.59 -0.293 -0.772 0.511 0 0 0 Tank initStep - 1 407 -131 71.9 0.455 1.36e-05 433 433 Tank compt - 2 458 -141 54.4 0.168 1.36e-05 55.4 488 Tank compt - 3 417 -153 62.6 0.129 2.92e-05 43.4 532 Tank compt - 4 421 -148 100 0.126 1.42e-05 37.9 569 Tank compt - 5 406 -111 180 0.12 1.42e-05 89.1 659 Tank compt - 6 419 -101 206 0.118 2.92e-05 31.2 690 Tank compt - 7 540 -82.5 312 0.0809 1.36e-05 161 851 Tank compt - 8 515 -93 285 0.0732 1.36e-05 38.3 889 Tank compt - 9 540 -114 245 0.0679 2.92e-05 51.8 941 Tank compt - 10 540 -114 244 0.0639 1.36e-05 0.5 942 Tank compt - 11 470 -28.7 218 0.0592 2.92e-05 114 1.06e+03 Tank compt - 12 470 -17.4 227 0.0538 1.42e-05 14.5 1.07e+03 Tank compt - 13 481 -34.5 257 0.0521 1.42e-05 36 1.11e+03 Tank compt - 14 474 -40.9 306 0 0.000538 50.4 1.16e+03 Tank phot + 0 1.12 0.372 -0.407 2.27e-06 0 0 0 Tank initStep + 1 -3.97e+03 -794 -189 2.27e-06 2.27e-06 4.05e+03 4.05e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 38 +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 474 -40.9 306 0.0516 0 0 0 Tank initStep - 1 474 -40.9 306 0.0497 0.00182 0.0036 0.0036 Tank msc - 2 474 -40.9 306 0.0325 0.0173 0.0226 0.0262 Tank eIoni + 28 1.11 0.385 -0.405 0.0314 0 0 1.48 Tank initStep + 29 1.11 0.386 -0.405 0.0282 0.0031 0.00138 1.48 Tank msc ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 52 +* G4Track Information: Particle = opticalphoton, Track ID = 37, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 474 -40.9 306 4.11e-06 0 0 0 Tank initStep - 1 -5e+03 -4.06e+03 2.99e+03 4.11e-06 0 7.3e+03 7.3e+03 expHall Transportation - 2 -5e+03 -4.06e+03 2.99e+03 4.11e-06 0 0 7.3e+03 Tank Transportation - 3 -3.16e+03 -5e+03 4.18e+03 4.11e-06 0 2.38e+03 9.68e+03 expHall Transportation - 4 -3.16e+03 -5e+03 4.18e+03 4.11e-06 0 0 9.68e+03 Tank Transportation - 5 -1.88e+03 -4.06e+03 5e+03 4.11e-06 0 1.79e+03 1.15e+04 expHall Transportation - 6 -1.88e+03 -4.06e+03 5e+03 4.11e-06 0 0 1.15e+04 Tank Transportation - 7 -394 -2.94e+03 3.87e+03 4.11e-06 4.11e-06 2.18e+03 1.37e+04 Tank OpAbsorption + 0 1.11 0.385 -0.405 3.57e-06 0 0 0 Tank initStep + 1 -1.03e+03 5e+03 -2.5e+03 3.57e-06 0 5.68e+03 5.68e+03 expHall Transportation + 2 -1.03e+03 5e+03 -2.5e+03 3.57e-06 0 0 5.68e+03 Tank Transportation + 3 -1.68e+03 2.23e+03 -5e+03 3.57e-06 0 3.79e+03 9.47e+03 expHall Transportation + 4 -1.68e+03 2.23e+03 -5e+03 3.57e-06 0 0 9.47e+03 Tank Transportation + 5 -1.71e+03 -5e+03 -3.25e+03 3.57e-06 0 7.44e+03 1.69e+04 expHall Transportation + 6 -2.07e+03 -1e+04 -1.47e+03 3.57e-06 0 5.32e+03 2.22e+04 world Transportation + 7 -2.44e+03 -1.5e+04 312 3.57e-06 0 5.32e+03 2.76e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 38 +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 474 -40.9 306 0.0325 0 0 0.0262 Tank initStep - 3 474 -40.9 306 0.0318 0.000669 0.00159 0.0277 Tank msc - 4 474 -40.9 306 0.0112 0.0206 0.0157 0.0434 Tank eIoni - 5 474 -40.9 306 0 0.0112 0.00304 0.0465 Tank eIoni - 6 474 -40.9 306 0 0 0 0.0465 Tank NoProcess + 29 1.11 0.386 -0.405 0.0282 0 0 1.48 Tank initStep + 30 1.11 0.387 -0.404 0.0269 0.00137 0.00114 1.48 Tank msc + 31 1.11 0.391 -0.399 0.0116 0.0153 0.0125 1.5 Tank eIoni + 32 1.11 0.392 -0.4 0 0.0116 0.00289 1.5 Tank eIoni + 33 1.11 0.392 -0.4 0 0 0 1.5 Tank annihil ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 52 +* G4Track Information: Particle = gamma, Track ID = 40, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 474 -40.9 306 3.15e-06 0 0 0 Tank initStep - 1 -4.08e+03 1.87e+03 -5e+03 3.15e-06 0 7.25e+03 7.25e+03 expHall Transportation - 2 -4.08e+03 1.87e+03 -5e+03 3.15e-06 0 0 7.25e+03 Tank Transportation - 3 -5e+03 2.37e+03 -4.35e+03 3.15e-06 0 1.23e+03 8.48e+03 expHall Transportation - 4 -1e+04 7.81e+03 2.3e+03 3.15e-06 0 9.95e+03 1.84e+04 world Transportation - 5 -1.5e+04 1.33e+04 8.96e+03 3.15e-06 0 9.95e+03 2.84e+04 OutOfWorld Transportation + 0 1.11 0.392 -0.4 0.511 0 0 0 Tank initStep + 1 -33.9 14 -32.3 0.179 1.42e-05 49.3 49.3 Tank compt + 2 -14.6 18.8 -24.9 0.126 1.36e-05 21.2 70.6 Tank compt + 3 -25.3 15.4 -10.4 0.0899 0.000537 18.3 88.9 Tank compt + 4 27.5 7.71 -45.1 0 0.000538 63.6 152 Tank phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 38 +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 481 -34.5 257 0.00163 0 0 0 Tank initStep - 1 481 -34.5 257 0.0016 3e-05 9.1e-06 9.1e-06 Tank msc - 2 481 -34.5 257 0 0.0016 0.00011 0.000119 Tank eIoni - 3 481 -34.5 257 0 0 0 0.000119 Tank NoProcess + 0 27.5 7.71 -45.1 0.0894 0 0 0 Tank initStep + 1 27.5 7.71 -45.1 0.0817 0.00767 0.00934 0.00934 Tank msc ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 44 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 470 -17.4 227 0.00548 0 0 0 Tank initStep - 1 470 -17.4 227 0.00544 3.53e-05 6.93e-05 6.93e-05 Tank msc - 2 470 -17.4 227 0 0.00544 0.000857 0.000926 Tank eIoni - 3 470 -17.4 227 0 0 0 0.000926 Tank NoProcess + 0 27.5 7.71 -45.1 3.65e-06 0 0 0 Tank initStep + 1 5e+03 3.18e+03 1.62e+03 3.65e-06 0 6.13e+03 6.13e+03 expHall Transportation + 2 7.79e+03 1e+04 6.43e+03 3.65e-06 0 8.8e+03 1.49e+04 world Transportation + 3 9.83e+03 1.5e+04 9.96e+03 3.65e-06 0 6.45e+03 2.14e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 38 +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 470 -28.7 218 0.00459 0 0 0 Tank initStep - 1 470 -28.7 218 0.0045 9.46e-05 5.12e-05 5.12e-05 Tank msc - 2 470 -28.7 218 0 0.0045 0.000617 0.000668 Tank eIoni - 3 470 -28.7 218 0 0 0 0.000668 Tank NoProcess + 1 27.5 7.71 -45.1 0.0817 0 0 0.00934 Tank initStep + 2 27.5 7.7 -45.1 0.0778 0.00393 0.00801 0.0173 Tank msc + 3 27.5 7.68 -45.1 0.0604 0.0174 0.0335 0.0509 Tank eIoni + 4 27.5 7.69 -45.1 0.0342 0.0262 0.0265 0.0774 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 46, Parent ID = 44 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 540 -114 244 0.00404 0 0 0 Tank initStep - 1 540 -114 244 0.00404 0 4.1e-05 4.1e-05 Tank msc - 2 540 -114 244 0 0.00404 0.000513 0.000554 Tank eIoni - 3 540 -114 244 0 0 0 0.000554 Tank NoProcess + 0 27.5 7.69 -45.1 3.24e-06 0 0 0 Tank initStep + 1 2.26e+03 -5e+03 2.51e+03 3.24e-06 0 6.05e+03 6.05e+03 expHall Transportation + 2 2.26e+03 -5e+03 2.51e+03 3.24e-06 0 0 6.05e+03 Tank Transportation + 3 5e+03 -1.11e+03 4.29e+03 3.24e-06 0 5.09e+03 1.11e+04 expHall Transportation + 4 5e+03 -1.11e+03 4.29e+03 3.24e-06 0 0 1.11e+04 Tank Transportation + 5 -1.7e+03 5e+03 4.71e+03 3.24e-06 0 9.08e+03 2.02e+04 expHall Transportation + 6 -1.7e+03 5e+03 4.71e+03 3.24e-06 0 0 2.02e+04 Tank Transportation + 7 -2.02e+03 4.46e+03 4.45e+03 3.24e-06 3.24e-06 675 2.09e+04 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 38 +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 540 -114 245 0.00525 0 0 0 Tank initStep - 1 540 -114 245 0.00519 5.39e-05 6.43e-05 6.43e-05 Tank msc - 2 540 -114 245 0 0.00519 0.00079 0.000854 Tank eIoni - 3 540 -114 245 0 0 0 0.000854 Tank NoProcess + 4 27.5 7.69 -45.1 0.0342 0 0 0.0774 Tank initStep + 5 27.5 7.7 -45.1 0.0317 0.00252 0.00175 0.0791 Tank msc + 6 27.5 7.7 -45.1 0.0147 0.017 0.0156 0.0947 Tank eIoni + 7 27.5 7.7 -45.1 0 0.0147 0.00487 0.0996 Tank eIoni + 8 27.5 7.7 -45.1 0 0 0 0.0996 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 38 +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 515 -93 285 0.00773 0 0 0 Tank initStep - 1 515 -93 285 0.00762 0.000105 0.000126 0.000126 Tank msc - 2 515 -93 285 0 0.00762 0.00154 0.00166 Tank eIoni - 3 515 -93 285 0 0 0 0.00166 Tank NoProcess + 0 -25.3 15.4 -10.4 0.0357 0 0 0 Tank initStep + 1 -25.3 15.4 -10.4 0.0347 0.00099 0.00188 0.00188 Tank msc ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 55, Parent ID = 46 +* G4Track Information: Particle = opticalphoton, Track ID = 47, Parent ID = 43 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 515 -93 285 3.86e-06 0 0 0 Tank initStep - 1 2.9e+03 -5e+03 2.43e+03 3.86e-06 0 5.86e+03 5.86e+03 expHall Transportation - 2 6.03e+03 -1e+04 6.4e+03 3.86e-06 0 7.12e+03 1.3e+04 world Transportation - 3 9.17e+03 -1.5e+04 1.04e+04 3.86e-06 0 7.12e+03 2.01e+04 OutOfWorld Transportation + 0 -25.3 15.4 -10.4 2.44e-06 0 0 0 Tank initStep + 1 144 -2.01e+03 5e+03 2.44e-06 0 5.41e+03 5.41e+03 expHall Transportation + 2 144 -2.01e+03 5e+03 2.44e-06 0 0 5.41e+03 Tank Transportation + 3 2.01e+03 -5e+03 3.15e+03 2.44e-06 0 3.98e+03 9.39e+03 expHall Transportation + 4 2.01e+03 -5e+03 3.15e+03 2.44e-06 0 0 9.39e+03 Tank Transportation + 5 5e+03 -3.21e+03 3.94e+03 2.44e-06 0 3.57e+03 1.3e+04 expHall Transportation + 6 5e+03 -3.21e+03 3.94e+03 2.44e-06 0 0 1.3e+04 Tank Transportation + 7 3.87e+03 -2.27e+03 5e+03 2.44e-06 0 1.82e+03 1.48e+04 expHall Transportation + 8 3.87e+03 -2.27e+03 5e+03 2.44e-06 0 0 1.48e+04 Tank Transportation + 9 2.52e+03 -1.3e+03 4.03e+03 2.44e-06 2.44e-06 1.92e+03 1.67e+04 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 38 +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 540 -82.5 312 0.0367 0 0 0 Tank initStep - 1 540 -82.5 312 0.0363 0.000409 0.00198 0.00198 Tank msc - 2 540 -82.5 312 0.0105 0.0258 0.0175 0.0195 Tank eIoni - 3 540 -82.5 312 0 0.0105 0.00268 0.0222 Tank eIoni - 4 540 -82.5 312 0 0 0 0.0222 Tank NoProcess + 1 -25.3 15.4 -10.4 0.0347 0 0 0.00188 Tank initStep + 2 -25.3 15.4 -10.4 0.0339 0.000837 0.00179 0.00368 Tank msc ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 43 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 419 -101 206 0.00242 0 0 0 Tank initStep - 1 419 -101 206 0.00227 0.000149 1.72e-05 1.72e-05 Tank msc - 2 419 -101 206 0 0.00227 0.000194 0.000211 Tank eIoni - 3 419 -101 206 0 0 0 0.000211 Tank NoProcess + 0 -25.3 15.4 -10.4 2.4e-06 0 0 0 Tank initStep + 1 5e+03 2.57e+03 -3.76e+03 2.4e-06 0 6.77e+03 6.77e+03 expHall Transportation + 2 8.11e+03 8.4e+03 -1e+04 2.4e-06 0 9.09e+03 1.59e+04 world Transportation + 3 1.06e+04 1.31e+04 -1.5e+04 2.4e-06 0 7.28e+03 2.31e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 38 +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 406 -111 180 0.00593 0 0 0 Tank initStep - 1 406 -111 180 0.00544 0.000489 7.96e-05 7.96e-05 Tank msc - 2 406 -111 180 0 0.00544 0.000857 0.000936 Tank eIoni - 3 406 -111 180 0 0 0 0.000936 Tank NoProcess + 2 -25.3 15.4 -10.4 0.0339 0 0 0.00368 Tank initStep + 3 -25.3 15.4 -10.4 0.0335 0.000421 0.00172 0.00539 Tank msc + 4 -25.3 15.4 -10.4 0.015 0.0185 0.0164 0.0218 Tank eIoni + 5 -25.3 15.4 -10.4 0 0.015 0.00505 0.0268 Tank eIoni + 6 -25.3 15.4 -10.4 0 0 0 0.0268 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 38 +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 421 -148 100 0.00247 0 0 0 Tank initStep - 1 421 -148 100 0.00238 8.99e-05 1.78e-05 1.78e-05 Tank msc - 2 421 -148 100 0 0.00238 0.00021 0.000228 Tank eIoni - 3 421 -148 100 0 0 0 0.000228 Tank NoProcess + 0 -14.6 18.8 -24.9 0.0529 0 0 0 Tank initStep + 1 -14.6 18.8 -24.9 0.0504 0.00254 0.00377 0.00377 Tank msc + 2 -14.6 18.8 -24.9 0.0299 0.0205 0.0228 0.0265 Tank eIoni + 3 -14.6 18.8 -24.9 0.00877 0.0212 0.0148 0.0414 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 50, Parent ID = 42 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 417 -153 62.6 0.0397 0 0 0 Tank initStep - 1 417 -153 62.6 0.0369 0.00282 0.00228 0.00228 Tank msc - 2 417 -153 62.6 0.0233 0.0136 0.0178 0.0201 Tank eIoni - 3 417 -153 62.6 0.00808 0.0152 0.011 0.031 Tank eIoni + 0 -14.6 18.8 -24.9 3.86e-06 0 0 0 Tank initStep + 1 2e+03 4.89e+03 -5e+03 3.86e-06 0 7.25e+03 7.25e+03 expHall Transportation + 2 2e+03 4.89e+03 -5e+03 3.86e-06 0 0 7.25e+03 Tank Transportation + 3 2.04e+03 5e+03 -4.84e+03 3.86e-06 0 196 7.44e+03 expHall Transportation + 4 101 1e+04 7.8e+03 3.86e-06 0 1.37e+04 2.12e+04 world Transportation + 5 -1e+03 1.28e+04 1.5e+04 3.86e-06 0 7.82e+03 2.9e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 58, Parent ID = 41 +* G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 42 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 417 -153 62.6 3.13e-06 0 0 0 Tank initStep - 1 4.65e+03 1.15e+03 -5e+03 3.13e-06 0 6.73e+03 6.73e+03 expHall Transportation - 2 4.65e+03 1.15e+03 -5e+03 3.13e-06 0 0 6.73e+03 Tank Transportation - 3 5e+03 1.14e+03 -4.98e+03 3.13e-06 0 353 7.08e+03 expHall Transportation - 4 5e+03 1.14e+03 -4.98e+03 3.13e-06 0 0 7.08e+03 Tank Transportation - 5 4.99e+03 1.12e+03 -5e+03 3.13e-06 0 33.4 7.11e+03 expHall Transportation - 6 4.99e+03 1.12e+03 -5e+03 3.13e-06 0 0 7.11e+03 Tank Transportation - 7 3.07e+03 -2.53e+03 5e+03 3.13e-06 0 1.08e+04 1.79e+04 expHall Transportation - 8 588 -6.21e+03 1e+04 3.13e-06 0 6.69e+03 2.46e+04 world Transportation - 9 -1.9e+03 -9.89e+03 1.5e+04 3.13e-06 0 6.69e+03 3.13e+04 OutOfWorld Transportation + 0 -14.6 18.8 -24.9 3.07e-06 0 0 0 Tank initStep + 1 -2.06e+03 -103 5e+03 3.07e-06 0 5.43e+03 5.43e+03 expHall Transportation + 2 -5.5e+03 1.01e+03 1e+04 3.07e-06 0 6.17e+03 1.16e+04 world Transportation + 3 -8.95e+03 2.12e+03 1.5e+04 3.07e-06 0 6.17e+03 1.78e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 57, Parent ID = 41 +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 417 -153 62.6 2.38e-06 0 0 0 Tank initStep - 1 3.99e+03 980 -5e+03 2.38e-06 0 6.3e+03 6.3e+03 expHall Transportation - 2 3.99e+03 980 -5e+03 2.38e-06 0 0 6.3e+03 Tank Transportation - 3 5e+03 1.45e+03 -4.39e+03 2.38e-06 0 1.27e+03 7.57e+03 expHall Transportation - 4 5e+03 1.45e+03 -4.39e+03 2.38e-06 0 0 7.57e+03 Tank Transportation - 5 -833 5e+03 1.41e+03 2.38e-06 0 8.96e+03 1.65e+04 expHall Transportation - 6 -833 5e+03 1.41e+03 2.38e-06 0 0 1.65e+04 Tank Transportation - 7 -3.74e+03 4.53e+03 5e+03 2.38e-06 0 4.65e+03 2.12e+04 expHall Transportation - 8 -3.74e+03 4.53e+03 5e+03 2.38e-06 0 0 2.12e+04 Tank Transportation - 9 -5e+03 4.18e+03 3.81e+03 2.38e-06 0 1.77e+03 2.29e+04 expHall Transportation - 10 -5e+03 4.18e+03 3.81e+03 2.38e-06 0 0 2.29e+04 Tank Transportation - 11 2.33e+03 5e+03 -4.37e+03 2.38e-06 0 1.1e+04 3.4e+04 expHall Transportation - 12 1e+04 6.12e+03 -8.01e+03 2.38e-06 0 8.56e+03 4.25e+04 world Transportation - 13 1.5e+04 6.86e+03 -1.04e+04 2.38e-06 0 5.58e+03 4.81e+04 OutOfWorld Transportation + 3 -14.6 18.8 -24.9 0.00877 0 0 0.0414 Tank initStep + 4 -14.6 18.8 -24.9 0.0084 0.000365 0.000157 0.0415 Tank msc + 5 -14.6 18.8 -24.9 0 0.0084 0.00182 0.0433 Tank eIoni + 6 -14.6 18.8 -24.9 0 0 0 0.0433 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -33.9 14 -32.3 0.332 0 0 0 Tank initStep + 1 -34 14 -32.4 0.323 0.00889 0.0613 0.0613 Tank Cerenkov + 2 -34 14 -32.4 0.313 0.00983 0.0582 0.119 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 41 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -34 14 -32.4 3.88e-06 0 0 0 Tank initStep + 1 1.58e+03 -2.03e+03 -816 3.88e-06 3.88e-06 2.72e+03 2.72e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 51, Parent ID = 41 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -34 14 -32.4 3.45e-06 0 0 0 Tank initStep + 1 -5e+03 -1.21e+03 738 3.45e-06 0 5.17e+03 5.17e+03 expHall Transportation + 2 -1e+04 -3.19e+03 2.06e+03 3.45e-06 0 5.54e+03 1.07e+04 world Transportation + 3 -1.5e+04 -5.17e+03 3.38e+03 3.45e-06 0 5.54e+03 1.62e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 -34 14 -32.4 0.313 0 0 0.119 Tank initStep + 3 -34.1 14 -32.4 0.301 0.0124 0.0548 0.174 Tank Cerenkov + 4 -34.1 14 -32.3 0.289 0.0118 0.0507 0.225 Tank Cerenkov + 5 -34.1 14.1 -32.3 0.282 0.00697 0.0469 0.272 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 41 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -34.1 14 -32.3 2.15e-06 0 0 0 Tank initStep + 1 -5e+03 2.22e+03 -1.54e+03 2.15e-06 0 5.64e+03 5.64e+03 expHall Transportation + 2 -1e+04 5.33e+03 -2.23e+03 2.15e-06 0 5.93e+03 1.16e+04 world Transportation + 3 -1.5e+04 8.44e+03 -2.92e+03 2.15e-06 0 5.93e+03 1.75e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 -34.1 14.1 -32.3 0.282 0 0 0.272 Tank initStep + 6 -34.2 14.1 -32.3 0.276 0.00649 0.0447 0.316 Tank Cerenkov + 7 -34.2 14.1 -32.3 0.267 0.00876 0.0428 0.359 Tank Cerenkov + 8 -34.2 14.1 -32.2 0.259 0.00797 0.0402 0.399 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 41 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -34.2 14.1 -32.3 3.75e-06 0 0 0 Tank initStep + 1 5e+03 -2.73e+03 868 3.75e-06 0 5.8e+03 5.8e+03 expHall Transportation + 2 1e+04 -7.72e+03 3.74e+03 3.75e-06 0 7.63e+03 1.34e+04 world Transportation + 3 1.5e+04 -1.27e+04 6.62e+03 3.75e-06 0 7.63e+03 2.11e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 8 -34.2 14.1 -32.2 0.259 0 0 0.399 Tank initStep + 9 -34.2 14.2 -32.2 0.252 0.00681 0.0379 0.437 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 55, Parent ID = 41 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -34.2 14.1 -32.2 4.02e-06 0 0 0 Tank initStep + 1 -5e+03 119 3.03e+03 4.02e-06 0 5.83e+03 5.83e+03 expHall Transportation + 2 -1e+04 578 8.26e+03 4.02e-06 0 7.25e+03 1.31e+04 world Transportation + 3 -1.5e+04 1.04e+03 1.35e+04 4.02e-06 0 7.25e+03 2.03e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 9 -34.2 14.2 -32.2 0.252 0 0 0.437 Tank initStep + 10 -34.2 14.2 -32.2 0.246 0.0062 0.036 0.473 Tank Cerenkov ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 56, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 417 -153 62.6 2.24e-06 0 0 0 Tank initStep - 1 434 -5e+03 2.31e+03 2.24e-06 0 5.34e+03 5.34e+03 expHall Transportation - 2 434 -5e+03 2.31e+03 2.24e-06 0 0 5.34e+03 Tank Transportation - 3 -287 -1.38e+03 5e+03 2.24e-06 0 4.57e+03 9.91e+03 expHall Transportation - 4 -287 -1.38e+03 5e+03 2.24e-06 0 0 9.91e+03 Tank Transportation - 5 -498 2.69e+03 500 2.24e-06 2.24e-06 6.07e+03 1.6e+04 Bubble Transportation + 0 -34.2 14.2 -32.2 3.71e-06 0 0 0 Tank initStep + 1 -4.73e+03 2.92e+03 -5e+03 3.71e-06 0 7.43e+03 7.43e+03 expHall Transportation + 2 -4.73e+03 2.92e+03 -5e+03 3.71e-06 0 0 7.43e+03 Tank Transportation + 3 -5e+03 2.71e+03 -4.67e+03 3.71e-06 0 474 7.9e+03 expHall Transportation + 4 -5e+03 2.71e+03 -4.67e+03 3.71e-06 0 0 7.9e+03 Tank Transportation + 5 -2.21e+03 -212 -536 3.71e-06 3.71e-06 5.78e+03 1.37e+04 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 38 +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 417 -153 62.6 0.00808 0 0 0.031 Tank initStep - 4 417 -153 62.6 0.00763 0.000445 0.000136 0.0312 Tank msc - 5 417 -153 62.6 0 0.00763 0.00154 0.0327 Tank eIoni - 6 417 -153 62.6 0 0 0 0.0327 Tank NoProcess + 10 -34.2 14.2 -32.2 0.246 0 0 0.473 Tank initStep + 11 -34.2 14.2 -32.2 0.243 0.0031 0.0129 0.486 Tank Cerenkov + 12 -34.2 14.2 -32.2 0.243 0.000148 0.000875 0.487 Tank Cerenkov + 13 -34.2 14.2 -32.2 0.242 0.000245 0.000302 0.487 Tank Cerenkov + 14 -34.2 14.3 -32.1 0.215 0.0274 0.136 0.624 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 57, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 458 -141 54.4 0.287 0 0 0 Tank initStep - 1 458 -141 54.4 0.276 0.0111 0.0462 0.0462 Tank Cerenkov + 0 -34.2 14.2 -32.2 2.33e-06 0 0 0 Tank initStep + 1 -1.1e+03 -1.48e+03 -2.44e+03 2.33e-06 2.33e-06 3.02e+03 3.02e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 61, Parent ID = 40 +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 458 -141 54.4 2.72e-06 0 0 0 Tank initStep - 1 5e+03 376 421 2.72e-06 0 4.59e+03 4.59e+03 expHall Transportation - 2 1e+04 363 1.4e+03 2.72e-06 0 5.09e+03 9.68e+03 world Transportation - 3 1.5e+04 350 2.38e+03 2.72e-06 0 5.09e+03 1.48e+04 OutOfWorld Transportation + 14 -34.2 14.3 -32.1 0.215 0 0 0.624 Tank initStep + 15 -34.2 14.3 -32.1 0.208 0.00715 0.0398 0.663 Tank msc + 16 -34.2 14.4 -32 0.164 0.0435 0.11 0.774 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 60, Parent ID = 40 +* G4Track Information: Particle = opticalphoton, Track ID = 60, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 458 -141 54.4 3.49e-06 0 0 0 Tank initStep - 1 2.37e+03 2.03e+03 -5e+03 3.49e-06 0 5.82e+03 5.82e+03 expHall Transportation - 2 8e+03 7.46e+03 -1e+04 3.49e-06 0 9.29e+03 1.51e+04 world Transportation - 3 1.36e+04 1.29e+04 -1.5e+04 3.49e-06 0 9.29e+03 2.44e+04 OutOfWorld Transportation + 0 -34.2 14.3 -32 2.51e-06 0 0 0 Tank initStep + 1 -5e+03 2.96e+03 2.27e+03 2.51e-06 0 6.22e+03 6.22e+03 expHall Transportation + 2 -5e+03 2.96e+03 2.27e+03 2.51e-06 0 0 6.22e+03 Tank Transportation + 3 -1.49e+03 4.85e+03 5e+03 2.51e-06 0 4.83e+03 1.1e+04 expHall Transportation + 4 -1.49e+03 4.85e+03 5e+03 2.51e-06 0 0 1.1e+04 Tank Transportation + 5 16 4.85e+03 4.09e+03 2.51e-06 2.51e-06 1.76e+03 1.28e+04 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 59, Parent ID = 40 +* G4Track Information: Particle = opticalphoton, Track ID = 59, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 458 -141 54.4 2.6e-06 0 0 0 Tank initStep - 1 -682 -5e+03 1.68e+03 2.6e-06 0 5.25e+03 5.25e+03 expHall Transportation - 2 -4.42e+03 -1e+04 7.12e+03 2.6e-06 0 8.28e+03 1.35e+04 world Transportation - 3 -8.16e+03 -1.5e+04 1.26e+04 2.6e-06 0 8.28e+03 2.18e+04 OutOfWorld Transportation + 0 -34.2 14.3 -32 3.83e-06 0 0 0 Tank initStep + 1 -5e+03 -7.54 4.27e+03 3.83e-06 0 6.57e+03 6.57e+03 expHall Transportation + 2 -5e+03 -7.54 4.27e+03 3.83e-06 0 0 6.57e+03 Tank Transportation + 3 -4.19e+03 -43.7 5e+03 3.83e-06 0 1.09e+03 7.66e+03 expHall Transportation + 4 -4.19e+03 -43.7 5e+03 3.83e-06 0 0 7.66e+03 Tank Transportation + 5 2.58e+03 -4.7e+03 3.59e+03 3.83e-06 3.83e-06 8.34e+03 1.6e+04 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 58, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 458 -141 54.4 0.276 0 0 0.0462 Tank initStep - 2 458 -141 54.4 0.267 0.00826 0.0428 0.089 Tank Cerenkov + 0 -34.2 14.3 -32 3.11e-06 0 0 0 Tank initStep + 1 -3e+03 -5e+03 2.21e+03 3.11e-06 0 6.24e+03 6.24e+03 expHall Transportation + 2 -3e+03 -5e+03 2.21e+03 3.11e-06 0 0 6.24e+03 Tank Transportation + 3 -4.25e+03 -837 5e+03 3.11e-06 0 5.16e+03 1.14e+04 expHall Transportation + 4 -4.25e+03 -837 5e+03 3.11e-06 0 0 1.14e+04 Tank Transportation + 5 -3.85e+03 5e+03 3.27e+03 3.11e-06 0 6.1e+03 1.75e+04 expHall Transportation + 6 -3.85e+03 5e+03 3.27e+03 3.11e-06 0 0 1.75e+04 Tank Transportation + 7 -5e+03 3.95e+03 3.98e+03 3.11e-06 0 1.71e+03 1.92e+04 expHall Transportation + 8 -6.64e+03 -3.04e+03 1e+04 3.11e-06 0 9.38e+03 2.86e+04 world Transportation + 9 -7.99e+03 -8.86e+03 1.5e+04 3.11e-06 0 7.79e+03 3.64e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 62, Parent ID = 40 +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 458 -141 54.4 3.52e-06 0 0 0 Tank initStep - 1 5e+03 -4.11e+03 -3.03e+03 3.52e-06 0 6.78e+03 6.78e+03 expHall Transportation - 2 5e+03 -4.11e+03 -3.03e+03 3.52e-06 0 0 6.78e+03 Tank Transportation - 3 4.26e+03 -5e+03 -3.4e+03 3.52e-06 0 1.21e+03 7.99e+03 expHall Transportation - 4 -7.52e+03 -8.53e+03 -1e+04 3.52e-06 0 1.4e+04 2.19e+04 world Transportation - 5 -1.5e+04 -1.08e+04 -1.42e+04 3.52e-06 0 8.87e+03 3.08e+04 OutOfWorld Transportation + 16 -34.2 14.4 -32 0.164 0 0 0.774 Tank initStep + 17 -34.2 14.3 -32 0.158 0.00612 0.0258 0.799 Tank msc + 18 -34.2 14.3 -31.9 0.138 0.0204 0.0765 0.876 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 62, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 458 -141 54.4 0.267 0 0 0.089 Tank initStep - 3 458 -141 54.4 0.258 0.00902 0.0404 0.129 Tank Cerenkov - 4 458 -142 54.4 0.217 0.0419 0.0378 0.167 Tank Cerenkov - 5 458 -142 54.4 0.193 0.0231 0.117 0.284 Tank eIoni + 0 -34.2 14.3 -31.9 3.76e-06 0 0 0 Tank initStep + 1 5e+03 -1.66e+03 963 3.76e-06 0 5.4e+03 5.4e+03 expHall Transportation + 2 1e+04 -4.79e+03 1.48e+03 3.76e-06 0 5.93e+03 1.13e+04 world Transportation + 3 1.5e+04 -7.93e+03 1.99e+03 3.76e-06 0 5.93e+03 1.72e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 64, Parent ID = 40 +* G4Track Information: Particle = opticalphoton, Track ID = 61, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 458 -142 54.4 2.48e-06 0 0 0 Tank initStep - 1 -420 -5e+03 -1.44e+03 2.48e-06 0 5.16e+03 5.16e+03 expHall Transportation - 2 -1.84e+03 -1e+04 -2.89e+03 2.48e-06 0 5.4e+03 1.06e+04 world Transportation - 3 -3.25e+03 -1.5e+04 -4.35e+03 2.48e-06 0 5.4e+03 1.59e+04 OutOfWorld Transportation + 0 -34.2 14.3 -32 2.67e-06 0 0 0 Tank initStep + 1 -2.07e+03 5e+03 2.91e+03 2.67e-06 0 6.14e+03 6.14e+03 expHall Transportation + 2 -2.07e+03 5e+03 2.91e+03 2.67e-06 0 0 6.14e+03 Tank Transportation + 3 -502 11 5e+03 2.67e-06 0 5.63e+03 1.18e+04 expHall Transportation + 4 9.42e+03 -1e+04 6.29e+03 2.67e-06 0 1.42e+04 2.59e+04 world Transportation + 5 1.44e+04 -1.5e+04 6.93e+03 2.67e-06 0 7.07e+03 3.3e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 63, Parent ID = 40 +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 458 -142 54.4 3.37e-06 0 0 0 Tank initStep - 1 730 133 270 3.37e-06 3.37e-06 443 443 Tank OpAbsorption + 18 -34.2 14.3 -31.9 0.138 0 0 0.876 Tank initStep + 19 -34.2 14.3 -31.9 0.133 0.00439 0.0193 0.895 Tank msc ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 63, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 458 -142 54.4 0.193 0 0 0.284 Tank initStep - 6 458 -142 54.4 0.186 0.00795 0.0337 0.318 Tank msc - 7 458 -142 54.5 0.163 0.0224 0.0946 0.412 Tank eIoni + 0 -34.2 14.3 -31.9 3.86e-06 0 0 0 Tank initStep + 1 -11.2 -33.5 64.2 3.86e-06 3.86e-06 110 110 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 65, Parent ID = 40 +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 458 -142 54.4 3.03e-06 0 0 0 Tank initStep - 1 2.75e+03 -2.25e+03 -5e+03 3.03e-06 0 5.93e+03 5.93e+03 expHall Transportation - 2 2.75e+03 -2.25e+03 -5e+03 3.03e-06 0 0 5.93e+03 Tank Transportation - 3 2.82e+03 -2.82e+03 -4.57e+03 3.03e-06 3.03e-06 719 6.65e+03 Tank OpAbsorption + 19 -34.2 14.3 -31.9 0.133 0 0 0.895 Tank initStep + 20 -34.2 14.3 -31.9 0.128 0.00502 0.0183 0.913 Tank msc + 21 -34.2 14.3 -31.8 0.107 0.0216 0.0586 0.972 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 65, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 7 458 -142 54.5 0.163 0 0 0.412 Tank initStep - 8 459 -142 54.5 0.155 0.00824 0.0256 0.438 Tank msc - 9 459 -142 54.5 0.128 0.0271 0.0745 0.512 Tank eIoni - 10 459 -142 54.5 0.109 0.0188 0.0584 0.571 Tank eIoni + 0 -34.2 14.3 -31.9 3.6e-06 0 0 0 Tank initStep + 1 -194 1.79e+03 5e+03 3.6e-06 0 5.34e+03 5.34e+03 expHall Transportation + 2 -194 1.79e+03 5e+03 3.6e-06 0 0 5.34e+03 Tank Transportation + 3 -1.34e+03 5e+03 446 3.6e-06 0 5.69e+03 1.1e+04 expHall Transportation + 4 -1.34e+03 5e+03 446 3.6e-06 0 0 1.1e+04 Tank Transportation + 5 -1.57e+03 1.9e+03 -896 3.6e-06 3.6e-06 3.39e+03 1.44e+04 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 67, Parent ID = 40 +* G4Track Information: Particle = opticalphoton, Track ID = 64, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 459 -142 54.5 2.31e-06 0 0 0 Tank initStep - 1 2.83e+03 -1.94e+03 -5e+03 2.31e-06 0 5.87e+03 5.87e+03 expHall Transportation - 2 2.83e+03 -1.94e+03 -5e+03 2.31e-06 0 0 5.87e+03 Tank Transportation - 3 5e+03 -2.84e+03 -3.39e+03 2.31e-06 0 2.85e+03 8.71e+03 expHall Transportation - 4 9.86e+03 -1e+04 7.86e+03 2.31e-06 0 1.42e+04 2.29e+04 world Transportation - 5 1.29e+04 -1.46e+04 1.5e+04 2.31e-06 0 9.02e+03 3.19e+04 OutOfWorld Transportation + 0 -34.2 14.3 -31.9 2.69e-06 0 0 0 Tank initStep + 1 -2.11e+03 471 -2.34e+03 2.69e-06 2.69e-06 3.14e+03 3.14e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 66, Parent ID = 40 +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 459 -142 54.5 3.2e-06 0 0 0 Tank initStep - 1 1.23e+03 -1.17e+03 -5e+03 3.2e-06 0 5.22e+03 5.22e+03 expHall Transportation - 2 1.97e+03 -4.24e+03 -1e+04 3.2e-06 0 5.91e+03 1.11e+04 world Transportation - 3 2.71e+03 -7.31e+03 -1.5e+04 3.2e-06 0 5.91e+03 1.7e+04 OutOfWorld Transportation + 21 -34.2 14.3 -31.8 0.107 0 0 0.972 Tank initStep + 22 -34.2 14.3 -31.8 0.0998 0.00681 0.0126 0.985 Tank msc + 23 -34.3 14.3 -31.8 0.0851 0.0147 0.0436 1.03 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 66, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 10 459 -142 54.5 0.109 0 0 0.571 Tank initStep - 11 459 -142 54.5 0.105 0.00412 0.0131 0.584 Tank msc - 12 459 -142 54.5 0.0822 0.0226 0.0461 0.63 Tank eIoni - 13 459 -142 54.5 0.0678 0.0145 0.0354 0.665 Tank eIoni + 0 -34.3 14.3 -31.8 3.02e-06 0 0 0 Tank initStep + 1 -1.69e+03 -71.1 5e+03 3.02e-06 0 5.3e+03 5.3e+03 expHall Transportation + 2 -6.57e+03 -1.61e+03 1e+04 3.02e-06 0 7.15e+03 1.25e+04 world Transportation + 3 -1.15e+04 -3.14e+03 1.5e+04 3.02e-06 0 7.15e+03 1.96e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 68, Parent ID = 40 +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 459 -142 54.5 2.39e-06 0 0 0 Tank initStep - 1 -259 1.75e+03 -915 2.39e-06 2.39e-06 2.24e+03 2.24e+03 Tank OpAbsorption + 23 -34.3 14.3 -31.8 0.0851 0 0 1.03 Tank initStep + 24 -34.3 14.3 -31.8 0.0818 0.00332 0.00858 1.04 Tank msc + 25 -34.3 14.3 -31.8 0.0696 0.0122 0.0352 1.07 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 67, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 13 459 -142 54.5 0.0678 0 0 0.665 Tank initStep - 14 459 -142 54.5 0.065 0.0028 0.00579 0.671 Tank msc + 0 -34.3 14.3 -31.8 2.49e-06 0 0 0 Tank initStep + 1 -74 5e+03 -4.61e+03 2.49e-06 0 6.77e+03 6.77e+03 expHall Transportation + 2 -74 5e+03 -4.61e+03 2.49e-06 0 0 6.77e+03 Tank Transportation + 3 5e+03 2.43e+03 2.26e+03 2.49e-06 0 8.92e+03 1.57e+04 expHall Transportation + 4 5e+03 2.43e+03 2.26e+03 2.49e-06 0 0 1.57e+04 Tank Transportation + 5 2.56e+03 1.35e+03 5e+03 2.49e-06 0 3.83e+03 1.95e+04 expHall Transportation + 6 2.56e+03 1.35e+03 5e+03 2.49e-06 0 0 1.95e+04 Tank Transportation + 7 4.36e+03 5e+03 3.5e+03 2.49e-06 0 4.34e+03 2.39e+04 expHall Transportation + 8 9.64e+03 1e+04 -105 2.49e-06 0 8.12e+03 3.2e+04 world Transportation + 9 1.49e+04 1.5e+04 -3.71e+03 2.49e-06 0 8.12e+03 4.01e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 70, Parent ID = 40 +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 459 -142 54.5 2.13e-06 0 0 0 Tank initStep - 1 -94.2 301 626 2.13e-06 2.13e-06 910 910 Tank OpAbsorption + 25 -34.3 14.3 -31.8 0.0696 0 0 1.07 Tank initStep + 26 -34.3 14.3 -31.8 0.0654 0.00412 0.00606 1.08 Tank msc + 27 -34.3 14.3 -31.8 0.0526 0.0129 0.0285 1.11 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 69, Parent ID = 40 +* G4Track Information: Particle = opticalphoton, Track ID = 69, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 459 -142 54.5 2.06e-06 0 0 0 Tank initStep - 1 -1.45e+03 -116 1.64e+03 2.06e-06 2.06e-06 2.48e+03 2.48e+03 Tank OpAbsorption + 0 -34.3 14.3 -31.8 2.05e-06 0 0 0 Tank initStep + 1 -181 615 -1.55e+03 2.05e-06 2.05e-06 1.64e+03 1.64e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 68, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 14 459 -142 54.5 0.065 0 0 0.671 Tank initStep - 15 459 -142 54.5 0.0621 0.00285 0.00539 0.676 Tank msc - 16 459 -142 54.4 0.0516 0.0105 0.0272 0.704 Tank eIoni - 17 459 -142 54.4 0.0371 0.0145 0.0232 0.727 Tank eIoni + 0 -34.3 14.3 -31.8 3.93e-06 0 0 0 Tank initStep + 1 -3.77e+03 -1.22e+03 -5e+03 3.93e-06 0 6.34e+03 6.34e+03 expHall Transportation + 2 -3.77e+03 -1.22e+03 -5e+03 3.93e-06 0 0 6.34e+03 Tank Transportation + 3 -2.76e+03 -5e+03 -3.21e+03 3.93e-06 0 4.3e+03 1.06e+04 expHall Transportation + 4 -2.76e+03 -5e+03 -3.21e+03 3.93e-06 0 0 1.06e+04 Tank Transportation + 5 -877 -4.69e+03 -1.73e+03 3.93e-06 3.93e-06 2.42e+03 1.31e+04 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 71, Parent ID = 40 +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 459 -142 54.4 2.75e-06 0 0 0 Tank initStep - 1 251 5e+03 2.01e+03 2.75e-06 0 5.5e+03 5.5e+03 expHall Transportation - 2 -1.45e+03 1e+04 4.82e+03 2.75e-06 0 5.98e+03 1.15e+04 world Transportation - 3 -3.14e+03 1.5e+04 7.63e+03 2.75e-06 0 5.98e+03 1.75e+04 OutOfWorld Transportation + 27 -34.3 14.3 -31.8 0.0526 0 0 1.11 Tank initStep + 28 -34.3 14.3 -31.8 0.0508 0.00181 0.00372 1.11 Tank msc ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 70, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 17 459 -142 54.4 0.0371 0 0 0.727 Tank initStep - 18 459 -142 54.4 0.0358 0.00134 0.00202 0.729 Tank msc - 19 459 -142 54.4 0.0209 0.0149 0.0174 0.746 Tank eIoni - 20 459 -142 54.4 0 0.0209 0.0091 0.755 Tank eIoni - 21 459 -142 54.4 0 0 0 0.755 Tank NoProcess + 0 -34.3 14.3 -31.8 2.31e-06 0 0 0 Tank initStep + 1 -16.5 -5e+03 2.29e+03 2.31e-06 0 5.53e+03 5.53e+03 expHall Transportation + 2 -63 -1e+04 6.41e+03 2.31e-06 0 6.48e+03 1.2e+04 world Transportation + 3 -109 -1.5e+04 1.05e+04 2.31e-06 0 6.48e+03 1.85e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 72, Parent ID = 40 +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 459 -142 54.4 3.13e-06 0 0 0 Tank initStep - 1 9.72 -1.16e+03 -623 3.13e-06 3.13e-06 1.3e+03 1.3e+03 Tank OpAbsorption + 28 -34.3 14.3 -31.8 0.0508 0 0 1.11 Tank initStep + 29 -34.3 14.3 -31.8 0.0494 0.00141 0.0035 1.11 Tank msc + 30 -34.3 14.3 -31.8 0.0394 0.01 0.0224 1.14 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 71, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 407 -131 71.9 0.0558 0 0 0 Tank initStep - 1 407 -131 71.9 0.0546 0.00126 0.00414 0.00414 Tank msc - 2 407 -131 71.9 0.0441 0.0105 0.0243 0.0285 Tank eIoni + 0 -34.3 14.3 -31.8 3.11e-06 0 0 0 Tank initStep + 1 -1.72e+03 103 -5e+03 3.11e-06 0 5.25e+03 5.25e+03 expHall Transportation + 2 -1.72e+03 103 -5e+03 3.11e-06 0 0 5.25e+03 Tank Transportation + 3 -5e+03 2.37e+03 -3.24e+03 3.11e-06 0 4.35e+03 9.6e+03 expHall Transportation + 4 -5e+03 2.37e+03 -3.24e+03 3.11e-06 0 0 9.6e+03 Tank Transportation + 5 -2.55e+03 5e+03 -3.7e+03 3.11e-06 0 3.62e+03 1.32e+04 expHall Transportation + 6 -2.55e+03 5e+03 -3.7e+03 3.11e-06 0 0 1.32e+04 Tank Transportation + 7 5e+03 -2.28e+03 -4.67e+03 3.11e-06 0 1.05e+04 2.38e+04 expHall Transportation + 8 5e+03 -2.28e+03 -4.67e+03 3.11e-06 0 0 2.38e+04 Tank Transportation + 9 3.91e+03 -3.73e+03 -5e+03 3.11e-06 0 1.84e+03 2.56e+04 expHall Transportation + 10 3.91e+03 -3.73e+03 -5e+03 3.11e-06 0 0 2.56e+04 Tank Transportation + 11 2.54e+03 -5e+03 -4.82e+03 3.11e-06 0 1.87e+03 2.75e+04 expHall Transportation + 12 2.54e+03 -5e+03 -4.82e+03 3.11e-06 0 0 2.75e+04 Tank Transportation + 13 2.23e+03 -4.8e+03 -5e+03 3.11e-06 0 414 2.79e+04 expHall Transportation + 14 2.23e+03 -4.8e+03 -5e+03 3.11e-06 0 0 2.79e+04 Tank Transportation + 15 -5e+03 -2.83e+03 565 3.11e-06 0 9.33e+03 3.72e+04 expHall Transportation + 16 -1e+04 1.89e+03 6.96e+03 3.11e-06 0 9.39e+03 4.66e+04 world Transportation + 17 -1.5e+04 6.6e+03 1.34e+04 3.11e-06 0 9.39e+03 5.6e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 74, Parent ID = 39 +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 407 -131 71.9 3.23e-06 0 0 0 Tank initStep - 1 640 -1.87e+03 38.8 3.23e-06 3.23e-06 1.75e+03 1.75e+03 Tank OpAbsorption + 30 -34.3 14.3 -31.8 0.0394 0 0 1.14 Tank initStep + 31 -34.3 14.3 -31.8 0.0379 0.00146 0.00224 1.14 Tank msc + 32 -34.3 14.3 -31.8 0.0179 0.0201 0.0182 1.16 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 73, Parent ID = 39 +* G4Track Information: Particle = opticalphoton, Track ID = 73, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 407 -131 71.9 3.9e-06 0 0 0 Tank initStep - 1 -2.37e+03 -335 -2.96e+03 3.9e-06 0 4.12e+03 4.12e+03 Tank OpRayleigh - 2 5e+03 -4.8e+03 -2.45e+03 3.9e-06 0 8.63e+03 1.27e+04 expHall Transportation - 3 5e+03 -4.8e+03 -2.45e+03 3.9e-06 0 0 1.27e+04 Tank Transportation - 4 4.72e+03 -5e+03 -2.58e+03 3.9e-06 0 367 1.31e+04 expHall Transportation - 5 4.72e+03 -5e+03 -2.58e+03 3.9e-06 0 0 1.31e+04 Tank Transportation - 6 -1.97e+03 5e+03 -1.89e+03 3.9e-06 0 1.21e+04 2.52e+04 expHall Transportation - 7 -1.97e+03 5e+03 -1.89e+03 3.9e-06 0 0 2.52e+04 Tank Transportation - 8 -5e+03 1.11e+03 3.07e+03 3.9e-06 0 6.99e+03 3.22e+04 expHall Transportation - 9 -5e+03 1.11e+03 3.07e+03 3.9e-06 0 0 3.22e+04 Tank Transportation - 10 -3.82e+03 -138 5e+03 3.9e-06 0 2.59e+03 3.47e+04 expHall Transportation - 11 -3.82e+03 -138 5e+03 3.9e-06 0 0 3.47e+04 Tank Transportation - 12 -2.28e+03 -5e+03 -255 3.9e-06 0 7.32e+03 4.21e+04 expHall Transportation - 13 -2.28e+03 -5e+03 -255 3.9e-06 0 0 4.21e+04 Tank Transportation - 14 -3.22e+03 -1.01e+03 -5e+03 3.9e-06 0 6.27e+03 4.83e+04 expHall Transportation - 15 -3.22e+03 -1.01e+03 -5e+03 3.9e-06 0 0 4.83e+04 Tank Transportation - 16 -3.29e+03 -711 -4.57e+03 3.9e-06 0 525 4.89e+04 Tank OpRayleigh - 17 -3.46e+03 -1.32e+03 -5e+03 3.9e-06 0 764 4.96e+04 expHall Transportation - 18 -7.55e+03 -9.07e+03 -1e+04 3.9e-06 0 1.01e+04 5.97e+04 world Transportation - 19 -1.07e+04 -1.5e+04 -1.38e+04 3.9e-06 0 7.72e+03 6.74e+04 OutOfWorld Transportation + 0 -34.3 14.3 -31.8 3e-06 0 0 0 Tank initStep + 1 -3.52e+03 2.9e+03 570 3e-06 3e-06 4.57e+03 4.57e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 72, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 407 -131 71.9 0.0441 0 0 0.0285 Tank initStep - 3 407 -131 71.9 0.0433 0.000809 0.00273 0.0312 Tank msc - 4 407 -131 71.9 0.0274 0.0158 0.0202 0.0514 Tank eIoni + 0 -34.3 14.3 -31.8 3.88e-06 0 0 0 Tank initStep + 1 -1.84e+03 4.31e+03 3.17e+03 3.88e-06 3.88e-06 5.66e+03 5.66e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 75, Parent ID = 39 +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 407 -131 71.9 3.95e-06 0 0 0 Tank initStep - 1 -1.4e+03 237 5e+03 3.95e-06 0 5.26e+03 5.26e+03 expHall Transportation - 2 -1.4e+03 237 5e+03 3.95e-06 0 0 5.26e+03 Tank Transportation - 3 -1.35e+03 176 -751 3.95e-06 3.95e-06 5.75e+03 1.1e+04 Tank OpAbsorption + 32 -34.3 14.3 -31.8 0.0179 0 0 1.16 Tank initStep + 33 -34.3 14.3 -31.8 0.0172 0.000618 0.000552 1.16 Tank msc + 34 -34.3 14.3 -31.8 0 0.0172 0.00648 1.16 Tank eIoni + 35 -34.3 14.3 -31.8 0 0 0 1.16 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 38 +* G4Track Information: Particle = opticalphoton, Track ID = 75, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 407 -131 71.9 0.0274 0 0 0.0514 Tank initStep - 5 407 -131 71.9 0.0267 0.00073 0.00118 0.0526 Tank msc - 6 407 -131 71.9 0.00875 0.0179 0.0131 0.0657 Tank eIoni + 0 -34.3 14.3 -31.8 3.52e-06 0 0 0 Tank initStep + 1 5e+03 -4.39e+03 -3.45e+03 3.52e-06 0 7.51e+03 7.51e+03 expHall Transportation + 2 5e+03 -4.39e+03 -3.45e+03 3.52e-06 0 0 7.51e+03 Tank Transportation + 3 4.77e+03 -5e+03 -3.74e+03 3.52e-06 0 715 8.23e+03 expHall Transportation + 4 4.77e+03 -5e+03 -3.74e+03 3.52e-06 0 0 8.23e+03 Tank Transportation + 5 5e+03 -3.68e+03 -4.62e+03 3.52e-06 0 1.61e+03 9.83e+03 expHall Transportation + 6 5e+03 -3.68e+03 -4.62e+03 3.52e-06 0 0 9.83e+03 Tank Transportation + 7 4.5e+03 -2.81e+03 -5e+03 3.52e-06 0 1.07e+03 1.09e+04 expHall Transportation + 8 4.5e+03 -2.81e+03 -5e+03 3.52e-06 0 0 1.09e+04 Tank Transportation + 9 663 5e+03 -208 3.52e-06 0 9.94e+03 2.08e+04 expHall Transportation + 10 -2.31e+03 1e+04 5.59e+03 3.52e-06 0 8.21e+03 2.9e+04 world Transportation + 11 -5.28e+03 1.5e+04 1.14e+04 3.52e-06 0 8.21e+03 3.73e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 76, Parent ID = 39 +* G4Track Information: Particle = opticalphoton, Track ID = 74, Parent ID = 41 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 407 -131 71.9 2.46e-06 0 0 0 Tank initStep - 1 -5e+03 688 910 2.46e-06 0 5.53e+03 5.53e+03 expHall Transportation - 2 -1e+04 551 4.26e+03 2.46e-06 0 6.02e+03 1.16e+04 world Transportation - 3 -1.5e+04 415 7.62e+03 2.46e-06 0 6.02e+03 1.76e+04 OutOfWorld Transportation + 0 -34.3 14.3 -31.8 2.86e-06 0 0 0 Tank initStep + 1 1.22e+03 1.61e+03 -1.51e+03 2.86e-06 2.86e-06 2.51e+03 2.51e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 38 +* G4Track Information: Particle = gamma, Track ID = 39, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 407 -131 71.9 0.00875 0 0 0.0657 Tank initStep - 7 407 -131 71.9 0.00863 0.00012 0.000157 0.0659 Tank msc - 8 407 -131 71.9 0 0.00863 0.00191 0.0678 Tank eIoni - 9 407 -131 71.9 0 0 0 0.0678 Tank NoProcess + 0 1.11 0.392 -0.4 0.511 0 0 0 Tank initStep + 1 35.6 -13 31 0.294 2.92e-05 48.5 48.5 Tank compt + 2 14.9 -86.7 54.8 0.184 1.42e-05 80.2 129 Tank compt + 3 37.5 -107 8.82 0.145 1.42e-05 54.9 184 Tank compt + 4 53.8 -122 14.2 0.12 1.42e-05 22.9 207 Tank compt + 5 47.7 -145 0.889 0.0815 0.000537 27.2 234 Tank compt + 6 40.1 -66.4 12.6 0.0669 1.42e-05 79.6 313 Tank compt + 7 57.7 -74.8 26.2 0.0574 0.000537 23.8 337 Tank compt + 8 35 -72.8 14.4 0 0.000538 25.7 363 Tank phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 37, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.59 -0.293 -0.772 0.511 0 0 0 Tank initStep - 1 -8.11 2.51 -2.33 0.252 1.36e-05 9.28 9.28 Tank compt - 2 6.6 35.7 -20.3 0.25 2.92e-05 40.6 49.8 Tank compt - 3 45.5 102 -45.4 0.136 1.42e-05 80.5 130 Tank compt - 4 24.7 74.9 -63.5 0.128 0.000537 38.4 169 Tank compt - 5 13.2 -29.6 -141 0.0871 0.000537 131 299 Tank compt - 6 -3.65 10 -87.7 0.084 1.42e-05 68.5 368 Tank compt - 7 -5.17 9.89 -85.1 0.0718 0.000537 3.04 371 Tank compt - 8 7.05 9.92 -81.9 0.0573 1.42e-05 12.6 384 Tank compt - 9 3.35 7.7 -82.7 0.0556 1.42e-05 4.4 388 Tank compt - 10 -4.59 -6.09 -76.3 0.0556 0 17.1 405 Tank Rayl - 11 -30.1 -58.4 -39.2 0.0529 2.92e-05 69.1 474 Tank compt - 12 -39.5 -60.9 -39.3 0.0501 1.42e-05 9.72 484 Tank compt - 13 -60.7 -108 10.1 0.0462 1.36e-05 71.8 556 Tank compt - 14 -89.8 -88.8 23.6 0.0392 2.92e-05 37.5 593 Tank compt - 15 -74.1 -110 15.1 0.0392 0 27.8 621 Tank Rayl - 16 -42.5 -149 -6.87 0.0341 1.36e-05 54.7 676 Tank compt - 17 -55.8 -127 14.3 0.0334 1.42e-05 33.4 709 Tank compt - 18 -58.7 -120 13.7 0.0302 2.92e-05 7.65 717 Tank compt - 19 -67.5 -159 32.1 0 0.000538 44.3 761 Tank phot + 0 35 -72.8 14.4 0.0569 0 0 0 Tank initStep + 1 35 -72.8 14.4 0.0553 0.00159 0.00427 0.00427 Tank msc + 2 35 -72.8 14.4 0.0343 0.021 0.0246 0.0289 Tank eIoni + 3 35 -72.8 14.4 0.0123 0.022 0.0168 0.0456 Tank eIoni + 4 35 -72.8 14.4 0 0.0123 0.00358 0.0492 Tank eIoni + 5 35 -72.8 14.4 0 0 0 0.0492 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 94, Parent ID = 37 +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -67.5 -159 32.1 3.13e-06 0 0 0 Tank initStep - 1 1.23e+03 -5e+03 1.49e+03 3.13e-06 0 5.22e+03 5.22e+03 expHall Transportation - 2 4.61e+03 -1e+04 4.59e+03 3.13e-06 0 6.78e+03 1.2e+04 world Transportation - 3 7.98e+03 -1.5e+04 7.69e+03 3.13e-06 0 6.78e+03 1.88e+04 OutOfWorld Transportation + 0 57.7 -74.8 26.2 0.00896 0 0 0 Tank initStep + 1 57.7 -74.8 26.2 0.00884 0.000121 0.000163 0.000163 Tank msc + 2 57.7 -74.8 26.2 0 0.00884 0.00199 0.00216 Tank eIoni + 3 57.7 -74.8 26.2 0 0 0 0.00216 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 37 +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -67.5 -159 32.1 0.0297 0 0 0 Tank initStep - 1 -67.5 -159 32.1 0.0284 0.00126 0.00136 0.00136 Tank msc - 2 -67.5 -159 32.1 0.00866 0.0197 0.0141 0.0154 Tank eIoni - 3 -67.5 -159 32.1 0 0.00866 0.00192 0.0173 Tank eIoni - 4 -67.5 -159 32.1 0 0 0 0.0173 Tank NoProcess + 0 40.1 -66.4 12.6 0.0146 0 0 0 Tank initStep + 1 40.1 -66.4 12.6 0.0136 0.000924 0.000384 0.000384 Tank msc + 2 40.1 -66.4 12.6 0 0.0136 0.00428 0.00466 Tank eIoni + 3 40.1 -66.4 12.6 0 0 0 0.00466 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 37 +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -58.7 -120 13.7 0.00319 0 0 0 Tank initStep - 1 -58.7 -120 13.7 0.00316 2.83e-05 2.74e-05 2.74e-05 Tank msc - 2 -58.7 -120 13.7 0 0.00316 0.000338 0.000365 Tank eIoni - 3 -58.7 -120 13.7 0 0 0 0.000365 Tank NoProcess + 0 47.7 -145 0.889 0.0383 0 0 0 Tank initStep + 1 47.7 -145 0.887 0.0375 0.0008 0.00213 0.00213 Tank msc + 2 47.7 -145 0.88 0.0174 0.02 0.018 0.0201 Tank eIoni + 3 47.7 -145 0.877 0 0.0174 0.00662 0.0268 Tank eIoni + 4 47.7 -145 0.877 0 0 0 0.0268 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 37 +* G4Track Information: Particle = opticalphoton, Track ID = 84, Parent ID = 80 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -55.8 -127 14.3 0.000639 0 0 0 Tank initStep - 1 -55.8 -127 14.3 0.000639 0 2.15e-06 2.15e-06 Tank msc - 2 -55.8 -127 14.3 0 0.000639 2.69e-05 2.91e-05 Tank eIoni - 3 -55.8 -127 14.3 0 0 0 2.91e-05 Tank NoProcess + 0 47.7 -145 0.878 2.44e-06 0 0 0 Tank initStep + 1 1.37e+03 -3.18e+03 -5e+03 2.44e-06 0 6e+03 6e+03 expHall Transportation + 2 1.37e+03 -3.18e+03 -5e+03 2.44e-06 0 0 6e+03 Tank Transportation + 3 5e+03 2.35e+03 3.21e+03 2.44e-06 0 1.05e+04 1.65e+04 expHall Transportation + 4 5e+03 2.35e+03 3.21e+03 2.44e-06 0 0 1.65e+04 Tank Transportation + 5 4.05e+03 4.98e+03 5e+03 2.44e-06 0 3.32e+03 1.99e+04 expHall Transportation + 6 4.05e+03 4.98e+03 5e+03 2.44e-06 0 0 1.99e+04 Tank Transportation + 7 4.04e+03 5e+03 4.97e+03 2.44e-06 0 39.7 1.99e+04 expHall Transportation + 8 4.04e+03 5e+03 4.97e+03 2.44e-06 0 0 1.99e+04 Tank Transportation + 9 5e+03 290 2.08e+03 2.44e-06 0 5.61e+03 2.55e+04 expHall Transportation + 10 5e+03 290 2.08e+03 2.44e-06 0 0 2.55e+04 Tank Transportation + 11 -526 -5e+03 -1.98e+03 2.44e-06 0 8.66e+03 3.42e+04 expHall Transportation + 12 -526 -5e+03 -1.98e+03 2.44e-06 0 0 3.42e+04 Tank Transportation + 13 -4.61e+03 3.89e+03 -5e+03 2.44e-06 0 1.02e+04 4.44e+04 expHall Transportation + 14 -4.61e+03 3.89e+03 -5e+03 2.44e-06 0 0 4.44e+04 Tank Transportation + 15 -5e+03 4.56e+03 -4.82e+03 2.44e-06 0 800 4.52e+04 expHall Transportation + 16 -5e+03 4.56e+03 -4.82e+03 2.44e-06 0 0 4.52e+04 Tank Transportation + 17 -4.83e+03 4.99e+03 -5e+03 2.44e-06 0 496 4.57e+04 expHall Transportation + 18 -4.83e+03 4.99e+03 -5e+03 2.44e-06 0 0 4.57e+04 Tank Transportation + 19 -4.82e+03 5e+03 -4.99e+03 2.44e-06 0 9.43 4.57e+04 expHall Transportation + 20 3.68e+03 8.75e+03 1e+04 2.44e-06 0 1.76e+04 6.33e+04 world Transportation + 21 6.52e+03 1e+04 1.5e+04 2.44e-06 0 5.88e+03 6.92e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 37 +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -42.5 -149 -6.87 0.00513 0 0 0 Tank initStep - 1 -42.5 -149 -6.87 0.00503 0.000103 6.19e-05 6.19e-05 Tank msc - 2 -42.5 -149 -6.87 0 0.00503 0.000747 0.000809 Tank eIoni - 3 -42.5 -149 -6.87 0 0 0 0.000809 Tank NoProcess + 0 53.8 -122 14.2 0.0249 0 0 0 Tank initStep + 1 53.8 -122 14.2 0.0245 0.000425 0.000998 0.000998 Tank msc + 2 53.8 -122 14.2 0.00519 0.0193 0.0118 0.0128 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 37 +* G4Track Information: Particle = opticalphoton, Track ID = 87, Parent ID = 79 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -89.8 -88.8 23.6 0.00691 0 0 0 Tank initStep - 1 -89.8 -88.8 23.6 0.00676 0.000147 0.000104 0.000104 Tank msc - 2 -89.8 -88.8 23.6 0 0.00676 0.00125 0.00135 Tank eIoni - 3 -89.8 -88.8 23.6 0 0 0 0.00135 Tank NoProcess + 0 53.8 -122 14.2 3.53e-06 0 0 0 Tank initStep + 1 799 -5e+03 3.09e+03 3.53e-06 0 5.81e+03 5.81e+03 expHall Transportation + 2 3.36e+03 -9.26e+03 1e+04 3.53e-06 0 8.51e+03 1.43e+04 world Transportation + 3 5.21e+03 -1.23e+04 1.5e+04 3.53e-06 0 6.16e+03 2.05e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 37 +* G4Track Information: Particle = opticalphoton, Track ID = 86, Parent ID = 79 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -60.7 -108 10.1 0.00391 0 0 0 Tank initStep - 1 -60.7 -108 10.1 0.00296 0.000948 3.88e-05 3.88e-05 Tank msc - 2 -60.7 -108 10.1 0 0.00296 0.000303 0.000342 Tank eIoni - 3 -60.7 -108 10.1 0 0 0 0.000342 Tank NoProcess + 0 53.8 -122 14.2 3.15e-06 0 0 0 Tank initStep + 1 -5e+03 -1.65e+03 3.29e+03 3.15e-06 0 6.21e+03 6.21e+03 expHall Transportation + 2 -5e+03 -1.65e+03 3.29e+03 3.15e-06 0 0 6.21e+03 Tank Transportation + 3 2.6e+03 -5e+03 2.6e+03 3.15e-06 0 8.33e+03 1.45e+04 expHall Transportation + 4 2.6e+03 -5e+03 2.6e+03 3.15e-06 0 0 1.45e+04 Tank Transportation + 5 5e+03 -683 4.09e+03 3.15e-06 0 5.16e+03 1.97e+04 expHall Transportation + 6 5e+03 -683 4.09e+03 3.15e-06 0 0 1.97e+04 Tank Transportation + 7 3.97e+03 1.83e+03 5e+03 3.15e-06 0 2.86e+03 2.26e+04 expHall Transportation + 8 3.97e+03 1.83e+03 5e+03 3.15e-06 0 0 2.26e+04 Tank Transportation + 9 2.32e+03 5e+03 3.93e+03 3.15e-06 0 3.73e+03 2.63e+04 expHall Transportation + 10 -2.02e+03 1e+04 2.01e+03 3.15e-06 0 6.9e+03 3.32e+04 world Transportation + 11 -6.37e+03 1.5e+04 81.1 3.15e-06 0 6.9e+03 4.01e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 95, Parent ID = 88 +* G4Track Information: Particle = opticalphoton, Track ID = 85, Parent ID = 79 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -60.7 -108 10.1 3.21e-06 0 0 0 Tank initStep - 1 -5e+03 -4.92e+03 161 3.21e-06 0 6.89e+03 6.89e+03 expHall Transportation - 2 -5e+03 -4.92e+03 161 3.21e-06 0 0 6.89e+03 Tank Transportation - 3 -4.94e+03 -5e+03 269 3.21e-06 0 148 7.04e+03 expHall Transportation - 4 -4.94e+03 -5e+03 269 3.21e-06 0 0 7.04e+03 Tank Transportation - 5 809 2.35e+03 5e+03 3.21e-06 0 1.05e+04 1.75e+04 expHall Transportation - 6 809 2.35e+03 5e+03 3.21e-06 0 0 1.75e+04 Tank Transportation - 7 3.61e+03 5e+03 3.59e+03 3.21e-06 0 4.11e+03 2.16e+04 expHall Transportation - 8 3.61e+03 5e+03 3.59e+03 3.21e-06 0 0 2.16e+04 Tank Transportation - 9 5e+03 4.8e+03 2.45e+03 3.21e-06 0 1.81e+03 2.34e+04 expHall Transportation - 10 5e+03 4.8e+03 2.45e+03 3.21e-06 0 0 2.34e+04 Tank Transportation - 11 4.89e+03 5e+03 1.96e+03 3.21e-06 0 534 2.4e+04 expHall Transportation - 12 4.89e+03 5e+03 1.96e+03 3.21e-06 0 0 2.4e+04 Tank Transportation - 13 4.97e+03 3.24e+03 -5e+03 3.21e-06 0 7.18e+03 3.11e+04 expHall Transportation - 14 4.97e+03 3.24e+03 -5e+03 3.21e-06 0 0 3.11e+04 Tank Transportation - 15 -4.72e+03 -5e+03 4.59e+03 3.21e-06 0 1.59e+04 4.71e+04 expHall Transportation - 16 -4.72e+03 -5e+03 4.59e+03 3.21e-06 0 0 4.71e+04 Tank Transportation - 17 -4.94e+03 -4.78e+03 5e+03 3.21e-06 0 515 4.76e+04 expHall Transportation - 18 -4.94e+03 -4.78e+03 5e+03 3.21e-06 0 0 4.76e+04 Tank Transportation - 19 -5e+03 -4.72e+03 4.89e+03 3.21e-06 0 142 4.77e+04 expHall Transportation - 20 -5e+03 -4.72e+03 4.89e+03 3.21e-06 0 0 4.77e+04 Tank Transportation - 21 -1.74e+03 -5e+03 3.21e+03 3.21e-06 0 3.68e+03 5.14e+04 expHall Transportation - 22 -1.74e+03 -5e+03 3.21e+03 3.21e-06 0 0 5.14e+04 Tank Transportation - 23 4.36e+03 -3.69e+03 -5e+03 3.21e-06 0 1.03e+04 6.17e+04 expHall Transportation - 24 4.36e+03 -3.69e+03 -5e+03 3.21e-06 0 0 6.17e+04 Tank Transportation - 25 5e+03 -3.63e+03 -4.8e+03 3.21e-06 0 676 6.24e+04 expHall Transportation - 26 1e+04 444 -3.4e+03 3.21e-06 0 6.6e+03 6.9e+04 world Transportation - 27 1.5e+04 4.51e+03 -2.01e+03 3.21e-06 0 6.6e+03 7.56e+04 OutOfWorld Transportation + 0 53.8 -122 14.2 2.72e-06 0 0 0 Tank initStep + 1 -2.35e+03 -2.26e+03 -1.8e+03 2.72e-06 2.72e-06 3.69e+03 3.69e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 37 +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -39.5 -60.9 -39.3 0.00283 0 0 0 Tank initStep - 1 -39.5 -60.9 -39.3 0.00274 8.64e-05 2.25e-05 2.25e-05 Tank msc - 2 -39.5 -60.9 -39.3 0 0.00274 0.000266 0.000289 Tank eIoni - 3 -39.5 -60.9 -39.3 0 0 0 0.000289 Tank NoProcess + 2 53.8 -122 14.2 0.00519 0 0 0.0128 Tank initStep + 3 53.8 -122 14.2 0.00505 0.00014 6.32e-05 0.0129 Tank msc + 4 53.8 -122 14.2 0 0.00505 0.000754 0.0136 Tank eIoni + 5 53.8 -122 14.2 0 0 0 0.0136 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 37 +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30.1 -58.4 -39.2 0.0026 0 0 0 Tank initStep - 1 -30.1 -58.4 -39.2 0.00245 0.000146 1.95e-05 1.95e-05 Tank msc - 2 -30.1 -58.4 -39.2 0 0.00245 0.000221 0.000241 Tank eIoni - 3 -30.1 -58.4 -39.2 0 0 0 0.000241 Tank NoProcess + 0 37.5 -107 8.82 0.0384 0 0 0 Tank initStep + 1 37.5 -107 8.82 0.0366 0.00188 0.00215 0.00215 Tank msc + 2 37.5 -107 8.81 0.0168 0.0198 0.0177 0.0198 Tank eIoni + 3 37.5 -107 8.81 0 0.0168 0.0062 0.026 Tank eIoni + 4 37.5 -107 8.81 0 0 0 0.026 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 37 +* G4Track Information: Particle = opticalphoton, Track ID = 88, Parent ID = 78 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 3.35 7.7 -82.7 0.00173 0 0 0 Tank initStep - 1 3.35 7.7 -82.7 0.00171 1.98e-05 1e-05 1e-05 Tank msc - 2 3.35 7.7 -82.7 0 0.00171 0.000123 0.000133 Tank eIoni - 3 3.35 7.7 -82.7 0 0 0 0.000133 Tank NoProcess + 0 37.5 -107 8.81 2.54e-06 0 0 0 Tank initStep + 1 -478 2e+03 186 2.54e-06 2.54e-06 2.18e+03 2.18e+03 Bubble Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 37 +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 7.05 9.92 -81.9 0.0145 0 0 0 Tank initStep - 1 7.05 9.92 -81.9 0.0142 0.000291 0.000383 0.000383 Tank msc - 2 7.06 9.92 -81.9 0 0.0142 0.00462 0.005 Tank eIoni - 3 7.06 9.92 -81.9 0 0 0 0.005 Tank NoProcess + 0 14.9 -86.7 54.8 0.11 0 0 0 Tank initStep + 1 14.9 -86.7 54.8 0.0894 0.021 0.0134 0.0134 Tank msc + 2 14.9 -86.8 54.8 0.0576 0.0318 0.0387 0.052 Tank eIoni + 3 14.9 -86.8 54.8 0.0407 0.0169 0.0254 0.0775 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 37 +* G4Track Information: Particle = opticalphoton, Track ID = 91, Parent ID = 77 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.17 9.89 -85.1 0.0116 0 0 0 Tank initStep - 1 -5.17 9.89 -85.1 0.0113 0.000299 0.000258 0.000258 Tank msc - 2 -5.17 9.89 -85.1 0 0.0113 0.00308 0.00334 Tank eIoni - 3 -5.17 9.89 -85.1 0 0 0 0.00334 Tank NoProcess + 0 14.9 -86.8 54.8 3.41e-06 0 0 0 Tank initStep + 1 -472 -433 100 3.41e-06 3.41e-06 599 599 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 96, Parent ID = 83 +* G4Track Information: Particle = opticalphoton, Track ID = 90, Parent ID = 77 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -5.17 9.89 -85.1 3.77e-06 0 0 0 Tank initStep - 1 -5e+03 1.75e+03 2.75e+03 3.77e-06 0 6e+03 6e+03 expHall Transportation - 2 -5e+03 1.75e+03 2.75e+03 3.77e-06 0 0 6e+03 Tank Transportation - 3 -2.69e+03 2.88e+03 5e+03 3.77e-06 0 3.42e+03 9.42e+03 expHall Transportation - 4 -2.69e+03 2.88e+03 5e+03 3.77e-06 0 0 9.42e+03 Tank Transportation - 5 2.82e+03 5e+03 3.83e+03 3.77e-06 0 6.02e+03 1.54e+04 expHall Transportation - 6 2.82e+03 5e+03 3.83e+03 3.77e-06 0 0 1.54e+04 Tank Transportation - 7 5e+03 3.83e+03 3.56e+03 3.77e-06 0 2.49e+03 1.79e+04 expHall Transportation - 8 5e+03 3.83e+03 3.56e+03 3.77e-06 0 0 1.79e+04 Tank Transportation - 9 -1.3e+03 -5e+03 262 3.77e-06 0 1.13e+04 2.93e+04 expHall Transportation - 10 -1.3e+03 -5e+03 262 3.77e-06 0 0 2.93e+04 Tank Transportation - 11 -5e+03 -2.61e+03 -2.4e+03 3.77e-06 0 5.14e+03 3.44e+04 expHall Transportation - 12 -5e+03 -2.61e+03 -2.4e+03 3.77e-06 0 0 3.44e+04 Tank Transportation - 13 -3.86e+03 -3e+03 -5e+03 3.77e-06 0 2.86e+03 3.73e+04 expHall Transportation - 14 1.01e+03 -1.24e+03 -1e+04 3.77e-06 0 7.2e+03 4.45e+04 world Transportation - 15 5.88e+03 529 -1.5e+04 3.77e-06 0 7.2e+03 5.17e+04 OutOfWorld Transportation + 0 14.9 -86.8 54.8 3.79e-06 0 0 0 Tank initStep + 1 -2.82e+03 880 5e+03 3.79e-06 0 5.78e+03 5.78e+03 expHall Transportation + 2 -6.52e+03 1.05e+03 1e+04 3.79e-06 0 6.23e+03 1.2e+04 world Transportation + 3 -1.02e+04 1.23e+03 1.5e+04 3.79e-06 0 6.23e+03 1.82e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 37 +* G4Track Information: Particle = opticalphoton, Track ID = 89, Parent ID = 77 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.65 10 -87.7 0.00312 0 0 0 Tank initStep - 1 -3.65 10 -87.7 0.003 0.000127 2.65e-05 2.65e-05 Tank msc - 2 -3.65 10 -87.7 0 0.003 0.000309 0.000336 Tank eIoni - 3 -3.65 10 -87.7 0 0 0 0.000336 Tank NoProcess + 0 14.9 -86.8 54.8 3.99e-06 0 0 0 Tank initStep + 1 -2.33e+03 -1.66e+03 5e+03 3.99e-06 0 5.7e+03 5.7e+03 expHall Transportation + 2 -9.16e+03 -4.5e+03 1e+04 3.99e-06 0 8.92e+03 1.46e+04 world Transportation + 3 -1.5e+04 -6.92e+03 1.43e+04 3.99e-06 0 7.64e+03 2.23e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 37 +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 13.2 -29.6 -141 0.0408 0 0 0 Tank initStep - 1 13.2 -29.6 -141 0.0401 0.000721 0.00238 0.00238 Tank msc - 2 13.2 -29.6 -141 0.0239 0.0162 0.019 0.0214 Tank eIoni - 3 13.2 -29.6 -141 0.00335 0.0205 0.0114 0.0328 Tank eIoni + 3 14.9 -86.8 54.8 0.0407 0 0 0.0775 Tank initStep + 4 14.9 -86.8 54.8 0.0389 0.00182 0.00237 0.0798 Tank msc + 5 14.9 -86.8 54.8 0.0126 0.0263 0.0185 0.0984 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 97, Parent ID = 81 +* G4Track Information: Particle = opticalphoton, Track ID = 92, Parent ID = 77 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 13.2 -29.6 -141 3.78e-06 0 0 0 Tank initStep - 1 2.9e+03 1.44e+03 -1.53e+03 3.78e-06 3.78e-06 3.52e+03 3.52e+03 Tank OpAbsorption + 0 14.9 -86.8 54.8 2.38e-06 0 0 0 Tank initStep + 1 1.76e+03 5e+03 3.4e+03 2.38e-06 0 6.33e+03 6.33e+03 expHall Transportation + 2 1.76e+03 5e+03 3.4e+03 2.38e-06 0 0 6.33e+03 Tank Transportation + 3 2.68e+03 4.13e+03 5e+03 2.38e-06 0 2.04e+03 8.37e+03 expHall Transportation + 4 1e+04 -184 9.96e+03 2.38e-06 0 9.84e+03 1.82e+04 world Transportation + 5 1.5e+04 -3.13e+03 1.33e+04 2.38e-06 0 6.72e+03 2.49e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 37 +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 13.2 -29.6 -141 0.00335 0 0 0.0328 Tank initStep - 4 13.2 -29.6 -141 0.00296 0.00039 2.99e-05 0.0328 Tank msc - 5 13.2 -29.6 -141 0 0.00296 0.000303 0.0331 Tank eIoni - 6 13.2 -29.6 -141 0 0 0 0.0331 Tank NoProcess + 5 14.9 -86.8 54.8 0.0126 0 0 0.0984 Tank initStep + 6 14.9 -86.8 54.8 0.0123 0.000317 0.000296 0.0987 Tank msc + 7 14.9 -86.8 54.8 0 0.0123 0.00354 0.102 Tank eIoni + 8 14.9 -86.8 54.8 0 0 0 0.102 Tank NoProcess ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 37 +* G4Track Information: Particle = opticalphoton, Track ID = 93, Parent ID = 77 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24.7 74.9 -63.5 0.00702 0 0 0 Tank initStep - 1 24.7 74.9 -63.5 0.00686 0.000157 0.000107 0.000107 Tank msc - 2 24.7 74.9 -63.5 0 0.00686 0.00128 0.00139 Tank eIoni - 3 24.7 74.9 -63.5 0 0 0 0.00139 Tank NoProcess + 0 14.9 -86.8 54.8 3.99e-06 0 0 0 Tank initStep + 1 4.61e+03 -852 1.33e+03 3.99e-06 3.99e-06 4.83e+03 4.83e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 98, Parent ID = 80 +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24.7 74.9 -63.5 2.55e-06 0 0 0 Tank initStep - 1 2.06e+03 -5e+03 -1.01e+03 2.55e-06 0 5.55e+03 5.55e+03 expHall Transportation - 2 8.07e+03 -1e+04 -3.99e+03 2.55e-06 0 8.36e+03 1.39e+04 world Transportation - 3 1.41e+04 -1.5e+04 -6.96e+03 2.55e-06 0 8.36e+03 2.23e+04 OutOfWorld Transportation + 0 35.6 -13 31 0.217 0 0 0 Tank initStep + 1 35.6 -13 31.1 0.209 0.00759 0.0404 0.0404 Tank msc + 2 35.7 -13 31.1 0.178 0.0309 0.111 0.152 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 37 +* G4Track Information: Particle = opticalphoton, Track ID = 94, Parent ID = 76 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 45.5 102 -45.4 0.114 0 0 0 Tank initStep - 1 45.6 102 -45.4 0.113 0.00152 0.0142 0.0142 Tank msc - 2 45.6 102 -45.4 0.0969 0.016 0.0503 0.0645 Tank eIoni + 0 35.6 -13 31.1 2.53e-06 0 0 0 Tank initStep + 1 933 276 -160 2.53e-06 2.53e-06 962 962 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 99, Parent ID = 79 +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 45.6 102 -45.4 3.43e-06 0 0 0 Tank initStep - 1 -315 2.36e+03 -5e+03 3.43e-06 0 5.46e+03 5.46e+03 expHall Transportation - 2 -1.66e+03 5.07e+03 -1e+04 3.43e-06 0 5.85e+03 1.13e+04 world Transportation - 3 -3.01e+03 7.79e+03 -1.5e+04 3.43e-06 0 5.85e+03 1.72e+04 OutOfWorld Transportation + 2 35.7 -13 31.1 0.178 0 0 0.152 Tank initStep + 3 35.7 -13 31.1 0.169 0.00892 0.0296 0.181 Tank msc + 4 35.8 -13 31.2 0.147 0.0223 0.0838 0.265 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 37 +* G4Track Information: Particle = opticalphoton, Track ID = 96, Parent ID = 76 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 45.6 102 -45.4 0.0969 0 0 0.0645 Tank initStep - 3 45.6 102 -45.4 0.093 0.00387 0.0107 0.0752 Tank msc - 4 45.6 102 -45.4 0.0804 0.0126 0.0404 0.116 Tank eIoni + 0 35.7 -13 31.2 2.25e-06 0 0 0 Tank initStep + 1 5e+03 -1.38e+03 939 2.25e-06 0 5.23e+03 5.23e+03 expHall Transportation + 2 1e+04 -3.73e+03 4.32e+03 2.25e-06 0 6.48e+03 1.17e+04 world Transportation + 3 1.5e+04 -6.09e+03 7.7e+03 2.25e-06 0 6.48e+03 1.82e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 100, Parent ID = 79 +* G4Track Information: Particle = opticalphoton, Track ID = 95, Parent ID = 76 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 45.6 102 -45.4 3.25e-06 0 0 0 Tank initStep - 1 95.4 2e+03 431 3.25e-06 0 1.96e+03 1.96e+03 Bubble Transportation - 2 103 2.2e+03 500 3.25e-06 0 210 2.17e+03 Tank Transportation + 0 35.8 -13 31.2 2.5e-06 0 0 0 Tank initStep + 1 1.28e+03 -5e+03 1.46e+03 2.5e-06 0 5.33e+03 5.33e+03 expHall Transportation + 2 4.87e+03 -1e+04 3.42e+03 2.5e-06 0 6.46e+03 1.18e+04 world Transportation + 3 8.46e+03 -1.5e+04 5.38e+03 2.5e-06 0 6.46e+03 1.83e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 37 +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 45.6 102 -45.4 0.0804 0 0 0.116 Tank initStep - 5 45.6 102 -45.4 0.0783 0.00208 0.00779 0.123 Tank msc - 6 45.6 102 -45.4 0.056 0.0223 0.0337 0.157 Tank eIoni + 4 35.8 -13 31.2 0.147 0 0 0.265 Tank initStep + 5 35.8 -13 31.2 0.141 0.00612 0.0216 0.287 Tank msc ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 104, Parent ID = 79 +* G4Track Information: Particle = opticalphoton, Track ID = 97, Parent ID = 76 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 45.6 102 -45.4 2.16e-06 0 0 0 Tank initStep - 1 1.25e+03 -5e+03 2.88e+03 2.16e-06 0 6e+03 6e+03 expHall Transportation - 2 7.36e+03 -1e+04 8.09e+03 2.16e-06 0 9.46e+03 1.55e+04 world Transportation - 3 1.35e+04 -1.5e+04 1.33e+04 2.16e-06 0 9.46e+03 2.49e+04 OutOfWorld Transportation + 0 35.8 -13 31.2 3.83e-06 0 0 0 Tank initStep + 1 -3.8e+03 1.18e+03 738 3.83e-06 3.83e-06 4.08e+03 4.08e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 103, Parent ID = 79 +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 45.6 102 -45.4 2.43e-06 0 0 0 Tank initStep - 1 226 3.6e+03 -5e+03 2.43e-06 0 6.07e+03 6.07e+03 expHall Transportation - 2 109 5.84e+03 -1e+04 2.43e-06 0 5.48e+03 1.15e+04 world Transportation - 3 -7.35 8.08e+03 -1.5e+04 2.43e-06 0 5.48e+03 1.7e+04 OutOfWorld Transportation + 5 35.8 -13 31.2 0.141 0 0 0.287 Tank initStep + 6 35.8 -13 31.2 0.137 0.00429 0.0201 0.307 Tank msc + 7 35.8 -13 31.3 0.118 0.0191 0.0635 0.37 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 102, Parent ID = 79 +* G4Track Information: Particle = opticalphoton, Track ID = 98, Parent ID = 76 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 45.6 102 -45.4 3.19e-06 0 0 0 Tank initStep - 1 -1.02e+03 -3.69e+03 -84.2 3.19e-06 3.19e-06 3.94e+03 3.94e+03 Tank OpAbsorption + 0 35.8 -13 31.2 2.35e-06 0 0 0 Tank initStep + 1 1.38e+03 -5e+03 3.45e+03 2.35e-06 0 6.19e+03 6.19e+03 expHall Transportation + 2 1.38e+03 -5e+03 3.45e+03 2.35e-06 0 0 6.19e+03 Tank Transportation + 3 1.71e+03 -3.35e+03 5e+03 2.35e-06 0 2.29e+03 8.48e+03 expHall Transportation + 4 1.71e+03 -3.35e+03 5e+03 2.35e-06 0 0 8.48e+03 Tank Transportation + 5 -1.91e+03 5e+03 -4.45e+03 2.35e-06 0 1.31e+04 2.16e+04 expHall Transportation + 6 -1.91e+03 5e+03 -4.45e+03 2.35e-06 0 0 2.16e+04 Tank Transportation + 7 -2.59e+03 3.81e+03 -5e+03 2.35e-06 0 1.47e+03 2.31e+04 expHall Transportation + 8 -2.59e+03 3.81e+03 -5e+03 2.35e-06 0 0 2.31e+04 Tank Transportation + 9 4.79e+03 1.91e+03 5e+03 2.35e-06 0 1.26e+04 3.56e+04 expHall Transportation + 10 4.79e+03 1.91e+03 5e+03 2.35e-06 0 0 3.56e+04 Tank Transportation + 11 5e+03 1.86e+03 4.85e+03 2.35e-06 0 269 3.59e+04 expHall Transportation + 12 5e+03 1.86e+03 4.85e+03 2.35e-06 0 0 3.59e+04 Tank Transportation + 13 4.87e+03 -776 -5e+03 2.35e-06 0 1.02e+04 4.61e+04 expHall Transportation + 14 4.87e+03 -776 -5e+03 2.35e-06 0 0 4.61e+04 Tank Transportation + 15 723 -5e+03 -1.85e+03 2.35e-06 0 6.71e+03 5.28e+04 expHall Transportation + 16 723 -5e+03 -1.85e+03 2.35e-06 0 0 5.28e+04 Tank Transportation + 17 -2.33e+03 -896 -5e+03 2.35e-06 0 6.01e+03 5.88e+04 expHall Transportation + 18 -2.33e+03 -896 -5e+03 2.35e-06 0 0 5.88e+04 Tank Transportation + 19 -5e+03 1.97e+03 797 2.35e-06 0 7e+03 6.58e+04 expHall Transportation + 20 -5e+03 1.97e+03 797 2.35e-06 0 0 6.58e+04 Tank Transportation + 21 -4.57e+03 3.84e+03 5e+03 2.35e-06 0 4.62e+03 7.04e+04 expHall Transportation + 22 -4.53e+03 6.92e+03 1e+04 2.35e-06 0 5.87e+03 7.63e+04 world Transportation + 23 -4.48e+03 1e+04 1.5e+04 2.35e-06 0 5.87e+03 8.22e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 101, Parent ID = 79 +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 45.6 102 -45.4 3.08e-06 0 0 0 Tank initStep - 1 -762 5e+03 4.61e+03 3.08e-06 0 6.81e+03 6.81e+03 expHall Transportation - 2 -762 5e+03 4.61e+03 3.08e-06 0 0 6.81e+03 Tank Transportation - 3 -259 4.02e+03 5e+03 3.08e-06 0 1.17e+03 7.98e+03 expHall Transportation - 4 -259 4.02e+03 5e+03 3.08e-06 0 0 7.98e+03 Tank Transportation - 5 3.66e+03 -5e+03 2.59e+03 3.08e-06 0 1.01e+04 1.81e+04 expHall Transportation - 6 3.66e+03 -5e+03 2.59e+03 3.08e-06 0 0 1.81e+04 Tank Transportation - 7 5e+03 -3.71e+03 704 3.08e-06 0 2.65e+03 2.07e+04 expHall Transportation - 8 5e+03 -3.71e+03 704 3.08e-06 0 0 2.07e+04 Tank Transportation - 9 -5e+03 3.99e+03 -3.49e+03 3.08e-06 0 1.33e+04 3.41e+04 expHall Transportation - 10 -5e+03 3.99e+03 -3.49e+03 3.08e-06 0 0 3.41e+04 Tank Transportation - 11 -3.51e+03 4.07e+03 -5e+03 3.08e-06 0 2.12e+03 3.62e+04 expHall Transportation - 12 -3.51e+03 4.07e+03 -5e+03 3.08e-06 0 0 3.62e+04 Tank Transportation - 13 -932 5e+03 -254 3.08e-06 0 5.48e+03 4.17e+04 expHall Transportation - 14 -932 5e+03 -254 3.08e-06 0 0 4.17e+04 Tank Transportation - 15 2.54e+03 4.1e+03 5e+03 3.08e-06 0 6.36e+03 4.8e+04 expHall Transportation - 16 6.96e+03 3.09e+03 1e+04 3.08e-06 0 6.75e+03 5.48e+04 world Transportation - 17 1.14e+04 2.09e+03 1.5e+04 3.08e-06 0 6.75e+03 6.15e+04 OutOfWorld Transportation + 7 35.8 -13 31.3 0.118 0 0 0.37 Tank initStep + 8 35.8 -13 31.3 0.114 0.00339 0.0149 0.385 Tank msc + 9 35.9 -13 31.3 0.0957 0.0185 0.0509 0.436 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 37 +* G4Track Information: Particle = opticalphoton, Track ID = 99, Parent ID = 76 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 45.6 102 -45.4 0.056 0 0 0.157 Tank initStep - 7 45.6 102 -45.4 0.0513 0.00471 0.00415 0.161 Tank msc - 8 45.6 102 -45.4 0.0387 0.0125 0.0231 0.184 Tank eIoni - 9 45.6 102 -45.4 0.0246 0.0141 0.0185 0.203 Tank eIoni + 0 35.9 -13 31.3 3.05e-06 0 0 0 Tank initStep + 1 -5e+03 -3.75e+03 801 3.05e-06 0 6.32e+03 6.32e+03 expHall Transportation + 2 -6.79e+03 -1e+04 1.77e+03 3.05e-06 0 6.57e+03 1.29e+04 world Transportation + 3 -8.21e+03 -1.5e+04 2.54e+03 3.05e-06 0 5.26e+03 1.81e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 105, Parent ID = 79 +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 45.6 102 -45.4 4.08e-06 0 0 0 Tank initStep - 1 -4.4e+03 -1.79e+03 -5e+03 4.08e-06 0 6.92e+03 6.92e+03 expHall Transportation - 2 -4.4e+03 -1.79e+03 -5e+03 4.08e-06 0 0 6.92e+03 Tank Transportation - 3 -5e+03 -1.86e+03 -4.55e+03 4.08e-06 0 748 7.67e+03 expHall Transportation - 4 -1e+04 -1.24e+03 5.6e+03 4.08e-06 0 1.13e+04 1.9e+04 world Transportation - 5 -1.46e+04 -669 1.5e+04 4.08e-06 0 1.05e+04 2.95e+04 OutOfWorld Transportation + 9 35.9 -13 31.3 0.0957 0 0 0.436 Tank initStep + 10 35.9 -13 31.3 0.0929 0.00279 0.0105 0.446 Tank msc + 11 35.9 -13 31.3 0.0516 0.0413 0.0403 0.487 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 37 +* G4Track Information: Particle = opticalphoton, Track ID = 102, Parent ID = 76 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 9 45.6 102 -45.4 0.0246 0 0 0.203 Tank initStep - 10 45.6 102 -45.4 0.0238 0.000828 0.000977 0.204 Tank msc - 11 45.6 102 -45.4 0.00462 0.0192 0.0113 0.215 Tank eIoni + 0 35.9 -13 31.3 3.22e-06 0 0 0 Tank initStep + 1 -3.94e+03 -5e+03 232 3.22e-06 0 6.38e+03 6.38e+03 expHall Transportation + 2 -1e+04 -5.43e+03 1.26e+03 3.22e-06 0 6.17e+03 1.25e+04 world Transportation + 3 -1.5e+04 -5.79e+03 2.11e+03 3.22e-06 0 5.08e+03 1.76e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 107, Parent ID = 79 +* G4Track Information: Particle = opticalphoton, Track ID = 101, Parent ID = 76 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 45.6 102 -45.4 2.26e-06 0 0 0 Tank initStep - 1 -2.25e+03 -5e+03 3.66e+03 2.26e-06 0 6.71e+03 6.71e+03 expHall Transportation - 2 -2.25e+03 -5e+03 3.66e+03 2.26e-06 0 0 6.71e+03 Tank Transportation - 3 -3.74e+03 -3.63e+03 4.64e+03 2.26e-06 2.26e-06 2.26e+03 8.96e+03 Tank OpAbsorption + 0 35.9 -13 31.3 3.94e-06 0 0 0 Tank initStep + 1 5e+03 999 2.19e+03 3.94e-06 0 5.51e+03 5.51e+03 expHall Transportation + 2 1e+04 4.33e+03 8.49e+03 3.94e-06 0 8.71e+03 1.42e+04 world Transportation + 3 1.5e+04 7.66e+03 1.48e+04 3.94e-06 0 8.71e+03 2.29e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 106, Parent ID = 79 +* G4Track Information: Particle = opticalphoton, Track ID = 100, Parent ID = 76 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 45.6 102 -45.4 3.82e-06 0 0 0 Tank initStep - 1 -56.9 -357 -406 3.82e-06 3.82e-06 592 592 Tank OpAbsorption + 0 35.9 -13 31.3 3.44e-06 0 0 0 Tank initStep + 1 2.92e+03 -5e+03 -43.1 3.44e-06 0 5.76e+03 5.76e+03 expHall Transportation + 2 9.8e+03 -1e+04 2.94e+03 3.44e-06 0 9.02e+03 1.48e+04 world Transportation + 3 1.5e+04 -1.38e+04 5.19e+03 3.44e-06 0 6.81e+03 2.16e+04 OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 37 +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 39 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 11 45.6 102 -45.4 0.00462 0 0 0.215 Tank initStep - 12 45.6 102 -45.4 0.00455 7.08e-05 5.16e-05 0.215 Tank msc - 13 45.6 102 -45.4 0 0.00455 0.000628 0.216 Tank eIoni - 14 45.6 102 -45.4 0 0 0 0.216 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.6 35.7 -20.3 0.0018 0 0 0 Tank initStep - 1 6.6 35.7 -20.3 0.0018 0 1.06e-05 1.06e-05 Tank msc - 2 6.6 35.7 -20.3 0 0.0018 0.000133 0.000143 Tank eIoni - 3 6.6 35.7 -20.3 0 0 0 0.000143 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.11 2.51 -2.33 0.259 0 0 0 Tank initStep - 1 -8.15 2.51 -2.33 0.249 0.00979 0.0379 0.0379 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 108, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.13 2.51 -2.33 2.42e-06 0 0 0 Tank initStep - 1 552 552 289 2.42e-06 2.42e-06 837 837 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 -8.15 2.51 -2.33 0.249 0 0 0.0379 Tank initStep - 2 -8.17 2.5 -2.32 0.245 0.00384 0.0251 0.063 Tank Cerenkov - 3 -8.18 2.51 -2.32 0.196 0.0487 0.0101 0.0731 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 109, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.18 2.51 -2.32 3.64e-06 0 0 0 Tank initStep - 1 -1.72e+03 2.33e+03 5e+03 3.64e-06 0 5.78e+03 5.78e+03 expHall Transportation - 2 -5.92e+03 7.64e+03 1e+04 3.64e-06 0 8.42e+03 1.42e+04 world Transportation - 3 -1.01e+04 1.29e+04 1.5e+04 3.64e-06 0 8.42e+03 2.26e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 -8.18 2.51 -2.32 0.196 0 0 0.0731 Tank initStep - 4 -8.21 2.51 -2.3 0.189 0.00779 0.0345 0.108 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 110, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.19 2.51 -2.32 2.68e-06 0 0 0 Tank initStep - 1 -3.72e+03 -5e+03 -4.82e+03 2.68e-06 0 7.88e+03 7.88e+03 expHall Transportation - 2 -3.72e+03 -5e+03 -4.82e+03 2.68e-06 0 0 7.88e+03 Tank Transportation - 3 -3.91e+03 -4.84e+03 -5e+03 2.68e-06 0 303 8.18e+03 expHall Transportation - 4 -3.91e+03 -4.84e+03 -5e+03 2.68e-06 0 0 8.18e+03 Tank Transportation - 5 -5e+03 -3.98e+03 -3.72e+03 2.68e-06 0 1.89e+03 1.01e+04 expHall Transportation - 6 -5e+03 -3.98e+03 -3.72e+03 2.68e-06 0 0 1.01e+04 Tank Transportation - 7 -2.3e+03 -831 5e+03 2.68e-06 0 9.66e+03 1.97e+04 expHall Transportation - 8 -800 2.85e+03 1e+04 2.68e-06 0 6.39e+03 2.61e+04 world Transportation - 9 702 6.53e+03 1.5e+04 2.68e-06 0 6.39e+03 3.25e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -8.21 2.51 -2.3 0.189 0 0 0.108 Tank initStep - 5 -8.23 2.52 -2.28 0.183 0.00549 0.0323 0.14 Tank msc - 6 -8.27 2.56 -2.22 0.154 0.0289 0.0929 0.233 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 111, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.25 2.54 -2.25 2.16e-06 0 0 0 Tank initStep - 1 -3.28e+03 2.64e+03 5e+03 2.16e-06 0 6.53e+03 6.53e+03 expHall Transportation - 2 -1e+04 7.12e+03 8.82e+03 2.16e-06 0 8.94e+03 1.55e+04 world Transportation - 3 -1.5e+04 1.05e+04 1.17e+04 2.16e-06 0 6.65e+03 2.21e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 -8.27 2.56 -2.22 0.154 0 0 0.233 Tank initStep - 7 -8.27 2.58 -2.21 0.149 0.0047 0.0233 0.256 Tank msc - 8 -8.27 2.63 -2.16 0.0948 0.0546 0.0711 0.327 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 112, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.27 2.59 -2.2 2.54e-06 0 0 0 Tank initStep - 1 -1.28e+03 -5e+03 -3.96e+03 2.54e-06 0 6.5e+03 6.5e+03 expHall Transportation - 2 -1.28e+03 -5e+03 -3.96e+03 2.54e-06 0 0 6.5e+03 Tank Transportation - 3 -1.35e+03 -4.25e+03 -5e+03 2.54e-06 0 1.29e+03 7.79e+03 expHall Transportation - 4 -1.13e+03 2.62e+03 -1e+04 2.54e-06 0 8.49e+03 1.63e+04 world Transportation - 5 -910 9.48e+03 -1.5e+04 2.54e-06 0 8.49e+03 2.48e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 -8.27 2.63 -2.16 0.0948 0 0 0.327 Tank initStep - 9 -8.28 2.63 -2.16 0.0673 0.0276 0.0103 0.338 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 116, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.27 2.63 -2.16 2.26e-06 0 0 0 Tank initStep - 1 2.44e+03 -2.54e+03 -5e+03 2.26e-06 0 6.12e+03 6.12e+03 expHall Transportation - 2 2.44e+03 -2.54e+03 -5e+03 2.26e-06 0 0 6.12e+03 Tank Transportation - 3 5e+03 -4.01e+03 -2.5e+03 2.26e-06 0 3.87e+03 9.99e+03 expHall Transportation - 4 5e+03 -4.01e+03 -2.5e+03 2.26e-06 0 0 9.99e+03 Tank Transportation - 5 4.33e+03 -5e+03 -1.87e+03 2.26e-06 0 1.35e+03 1.13e+04 expHall Transportation - 6 -1.97e+03 -1e+04 4.12e+03 2.26e-06 0 1e+04 2.14e+04 world Transportation - 7 -8.26e+03 -1.5e+04 1.01e+04 2.26e-06 0 1e+04 3.14e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 115, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.28 2.63 -2.16 2.06e-06 0 0 0 Tank initStep - 1 -1.93e+03 1.48e+03 4.79e+03 2.06e-06 2.06e-06 5.37e+03 5.37e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 114, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.27 2.63 -2.16 2.53e-06 0 0 0 Tank initStep - 1 2.09e+03 -2.97e+03 -5e+03 2.53e-06 0 6.19e+03 6.19e+03 expHall Transportation - 2 2.09e+03 -2.97e+03 -5e+03 2.53e-06 0 0 6.19e+03 Tank Transportation - 3 5e+03 -3.68e+03 -2.37e+03 2.53e-06 0 3.98e+03 1.02e+04 expHall Transportation - 4 5e+03 -3.68e+03 -2.37e+03 2.53e-06 0 0 1.02e+04 Tank Transportation - 5 2.87e+03 -4.3e+03 -1.18e+03 2.53e-06 2.53e-06 2.51e+03 1.27e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 113, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.27 2.63 -2.16 3.24e-06 0 0 0 Tank initStep - 1 3.01e+03 -5e+03 3.37e+03 3.24e-06 0 6.74e+03 6.74e+03 expHall Transportation - 2 3.01e+03 -5e+03 3.37e+03 3.24e-06 0 0 6.74e+03 Tank Transportation - 3 4.33e+03 -265 5e+03 3.24e-06 0 5.18e+03 1.19e+04 expHall Transportation - 4 4.33e+03 -265 5e+03 3.24e-06 0 0 1.19e+04 Tank Transportation - 5 5e+03 -360 4.76e+03 3.24e-06 0 722 1.26e+04 expHall Transportation - 6 5e+03 -360 4.76e+03 3.24e-06 0 0 1.26e+04 Tank Transportation - 7 4.01e+03 -1.67e+03 4.55e+03 3.24e-06 3.24e-06 1.65e+03 1.43e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 9 -8.28 2.63 -2.16 0.0673 0 0 0.338 Tank initStep - 10 -8.28 2.64 -2.16 0.0661 0.00121 0.00572 0.343 Tank msc - 11 -8.29 2.66 -2.15 0.0496 0.0164 0.0287 0.372 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 117, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.28 2.64 -2.16 2.21e-06 0 0 0 Tank initStep - 1 -1.96e+03 -935 -5e+03 2.21e-06 0 5.45e+03 5.45e+03 expHall Transportation - 2 -1.96e+03 -935 -5e+03 2.21e-06 0 0 5.45e+03 Tank Transportation - 3 -5e+03 -1.91e+03 -2.82e+03 2.21e-06 0 3.87e+03 9.31e+03 expHall Transportation - 4 -5e+03 -1.91e+03 -2.82e+03 2.21e-06 0 0 9.31e+03 Tank Transportation - 5 -3.17e+03 -3.96e+03 -1.89e+03 2.21e-06 2.21e-06 2.9e+03 1.22e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 11 -8.29 2.66 -2.15 0.0496 0 0 0.372 Tank initStep - 12 -8.29 2.66 -2.15 0.0471 0.00248 0.00336 0.375 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 118, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.29 2.66 -2.15 3.63e-06 0 0 0 Tank initStep - 1 -4.95e+03 -2.31e+03 865 3.63e-06 3.63e-06 5.53e+03 5.53e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 12 -8.29 2.66 -2.15 0.0471 0 0 0.375 Tank initStep - 13 -8.29 2.66 -2.15 0.0458 0.00129 0.00307 0.378 Tank msc - 14 -8.3 2.67 -2.16 0.0261 0.0198 0.0211 0.4 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 119, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.3 2.67 -2.16 3.19e-06 0 0 0 Tank initStep - 1 -1.78e+03 5e+03 -4.64e+03 3.19e-06 0 7.04e+03 7.04e+03 expHall Transportation - 2 -1.78e+03 5e+03 -4.64e+03 3.19e-06 0 0 7.04e+03 Tank Transportation - 3 -2.09e+03 4.05e+03 -5e+03 3.19e-06 0 1.06e+03 8.1e+03 expHall Transportation - 4 -2.09e+03 4.05e+03 -5e+03 3.19e-06 0 0 8.1e+03 Tank Transportation - 5 -5e+03 -4.13e+03 -4.05e+03 3.19e-06 0 8.73e+03 1.68e+04 expHall Transportation - 6 -5e+03 -4.13e+03 -4.05e+03 3.19e-06 0 0 1.68e+04 Tank Transportation - 7 -4.07e+03 -5e+03 -3.28e+03 3.19e-06 0 1.5e+03 1.83e+04 expHall Transportation - 8 -4.07e+03 -5e+03 -3.28e+03 3.19e-06 0 0 1.83e+04 Tank Transportation - 9 5e+03 -2.59e+03 -481 3.19e-06 0 9.79e+03 2.81e+04 expHall Transportation - 10 5e+03 -2.59e+03 -481 3.19e-06 0 0 2.81e+04 Tank Transportation - 11 218 -47.9 5e+03 3.19e-06 0 7.71e+03 3.58e+04 expHall Transportation - 12 -1e+04 4.8e+03 6.59e+03 3.19e-06 0 1.14e+04 4.72e+04 world Transportation - 13 -1.5e+04 7.18e+03 7.36e+03 3.19e-06 0 5.59e+03 5.28e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 14 -8.3 2.67 -2.16 0.0261 0 0 0.4 Tank initStep - 15 -8.3 2.67 -2.16 0.0254 0.000652 0.00108 0.401 Tank msc - 16 -8.3 2.67 -2.16 0.00768 0.0177 0.0124 0.413 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 120, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -8.3 2.67 -2.16 3.35e-06 0 0 0 Tank initStep - 1 2.57e+03 5e+03 1.51e+03 3.35e-06 0 5.82e+03 5.82e+03 expHall Transportation - 2 2.57e+03 5e+03 1.51e+03 3.35e-06 0 0 5.82e+03 Tank Transportation - 3 4.63e+03 1.05e+03 5e+03 3.35e-06 0 5.66e+03 1.15e+04 expHall Transportation - 4 4.63e+03 1.05e+03 5e+03 3.35e-06 0 0 1.15e+04 Tank Transportation - 5 5e+03 387 4.45e+03 3.35e-06 0 940 1.24e+04 expHall Transportation - 6 5e+03 387 4.45e+03 3.35e-06 0 0 1.24e+04 Tank Transportation - 7 4.95e+03 343 4.45e+03 3.35e-06 3.35e-06 70.2 1.25e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 16 -8.3 2.67 -2.16 0.00768 0 0 0.413 Tank initStep - 17 -8.3 2.67 -2.16 0.00718 0.000506 0.000125 0.413 Tank msc - 18 -8.3 2.67 -2.16 0 0.00718 0.00139 0.414 Tank eIoni - 19 -8.3 2.67 -2.16 0 0 0 0.414 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 0.5 0 0 0 Tank initStep - 1 0.136 0.0303 0.00362 0.476 0.0245 0.139 0.139 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0347 0.00777 0.000928 3.44e-06 0 0 0 Tank initStep - 1 1.35e+03 5e+03 -1.99e+03 3.44e-06 0 5.55e+03 5.55e+03 expHall Transportation - 2 1.35e+03 5e+03 -1.99e+03 3.44e-06 0 0 5.55e+03 Tank Transportation - 3 1.64e+03 1.38e+03 -5e+03 3.44e-06 0 4.71e+03 1.03e+04 expHall Transportation - 4 1.64e+03 1.38e+03 -5e+03 3.44e-06 0 0 1.03e+04 Tank Transportation - 5 3.06e+03 -5e+03 -1.08e+03 3.44e-06 0 7.63e+03 1.79e+04 expHall Transportation - 6 3.06e+03 -5e+03 -1.08e+03 3.44e-06 0 0 1.79e+04 Tank Transportation - 7 5e+03 -2.22e+03 1.08e+03 3.44e-06 0 4.02e+03 2.19e+04 expHall Transportation - 8 5e+03 -2.22e+03 1.08e+03 3.44e-06 0 0 2.19e+04 Tank Transportation - 9 4.25e+03 1.95e+03 5e+03 3.44e-06 0 5.77e+03 2.77e+04 expHall Transportation - 10 4.25e+03 1.95e+03 5e+03 3.44e-06 0 0 2.77e+04 Tank Transportation - 11 1.9e+03 4.83e+03 3.08e+03 3.44e-06 3.44e-06 4.18e+03 3.19e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0104 0.00231 0.000277 2.52e-06 0 0 0 Tank initStep - 1 1.1e+03 843 -4.5e+03 2.52e-06 2.52e-06 4.7e+03 4.7e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0842 0.0188 0.00225 3.03e-06 0 0 0 Tank initStep - 1 -2.37e+03 -5e+03 -1.73e+03 3.03e-06 0 5.8e+03 5.8e+03 expHall Transportation - 2 -2.37e+03 -5e+03 -1.73e+03 3.03e-06 0 0 5.8e+03 Tank Transportation - 3 -5e+03 -1.14e+03 -1.74e+03 3.03e-06 0 4.67e+03 1.05e+04 expHall Transportation - 4 -5e+03 -1.14e+03 -1.74e+03 3.03e-06 0 0 1.05e+04 Tank Transportation - 5 -500 2.31e+03 34 3.03e-06 0 5.95e+03 1.64e+04 Bubble Transportation - 6 -94.7 3e+03 387 3.03e-06 3.03e-06 872 1.73e+04 Tank Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0456 0.0102 0.00122 2.46e-06 0 0 0 Tank initStep - 1 -5e+03 40 -1.47e+03 2.46e-06 0 5.21e+03 5.21e+03 expHall Transportation - 2 -1e+04 -95.6 -3.38e+03 2.46e-06 0 5.35e+03 1.06e+04 world Transportation - 3 -1.5e+04 -231 -5.29e+03 2.46e-06 0 5.35e+03 1.59e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.102 0.0229 0.00273 3.23e-06 0 0 0 Tank initStep - 1 -891 533 5e+03 3.23e-06 0 5.11e+03 5.11e+03 expHall Transportation - 2 -1.42e+03 1.42e+03 1e+04 3.23e-06 0 5.1e+03 1.02e+04 world Transportation - 3 -1.94e+03 2.31e+03 1.5e+04 3.23e-06 0 5.1e+03 1.53e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0923 0.0206 0.00246 3.45e-06 0 0 0 Tank initStep - 1 2.25e+03 -13.7 1.29e+03 3.45e-06 0 2.59e+03 2.59e+03 Tank OpRayleigh - 2 1.81e+03 -770 992 3.45e-06 3.45e-06 924 3.52e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0707 0.0158 0.00189 3.97e-06 0 0 0 Tank initStep - 1 5e+03 3.9e+03 2.36e+03 3.97e-06 0 6.76e+03 6.76e+03 expHall Transportation - 2 8.14e+03 1e+04 5.46e+03 3.97e-06 0 7.54e+03 1.43e+04 world Transportation - 3 1.07e+04 1.5e+04 8.01e+03 3.97e-06 0 6.17e+03 2.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0691 0.0154 0.00185 3.37e-06 0 0 0 Tank initStep - 1 5e+03 4.08e+03 -1.69e+03 3.37e-06 0 6.67e+03 6.67e+03 expHall Transportation - 2 5e+03 4.08e+03 -1.69e+03 3.37e-06 0 0 6.67e+03 Tank Transportation - 3 4.5e+03 5e+03 -2e+03 3.37e-06 0 1.09e+03 7.76e+03 expHall Transportation - 4 -981 1e+04 -6.61e+03 3.37e-06 0 8.73e+03 1.65e+04 world Transportation - 5 -6.46e+03 1.5e+04 -1.12e+04 3.37e-06 0 8.73e+03 2.52e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 0.136 0.0303 0.00362 0.476 0 0 0.139 Tank initStep - 2 0.246 0.0828 -0.00857 0.454 0.021 0.126 0.266 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.191 0.0565 -0.00247 3.84e-06 0 0 0 Tank initStep - 1 -637 -1.18e+03 1.39e+03 3.84e-06 3.84e-06 1.93e+03 1.93e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.159 0.0412 0.00109 3.49e-06 0 0 0 Tank initStep - 1 3.26e+03 -165 268 3.49e-06 3.49e-06 3.27e+03 3.27e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.185 0.0536 -0.00178 3.27e-06 0 0 0 Tank initStep - 1 0.721 0.833 -0.164 3.27e-06 3.27e-06 0.96 0.96 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.196 0.0591 -0.00307 2.31e-06 0 0 0 Tank initStep - 1 5e+03 4.74e+03 -3.92e+03 2.31e-06 0 7.93e+03 7.93e+03 expHall Transportation - 2 5e+03 4.74e+03 -3.92e+03 2.31e-06 0 0 7.93e+03 Tank Transportation - 3 4.8e+03 5e+03 -4.02e+03 2.31e-06 0 343 8.27e+03 expHall Transportation - 4 4.8e+03 5e+03 -4.02e+03 2.31e-06 0 0 8.27e+03 Tank Transportation - 5 2.57e+03 1.71e+03 -4.07e+03 2.31e-06 2.31e-06 3.97e+03 1.22e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 0.246 0.0828 -0.00857 0.454 0 0 0.266 Tank initStep - 3 0.344 0.136 -0.0365 0.437 0.0178 0.115 0.381 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.316 0.121 -0.0286 3.52e-06 0 0 0 Tank initStep - 1 -1.56e+03 -5e+03 -3.87e+03 3.52e-06 0 6.51e+03 6.51e+03 expHall Transportation - 2 -1.56e+03 -5e+03 -3.87e+03 3.52e-06 0 0 6.51e+03 Tank Transportation - 3 -2.39e+03 -3.12e+03 -5e+03 3.52e-06 0 2.34e+03 8.86e+03 expHall Transportation - 4 -2.39e+03 -3.12e+03 -5e+03 3.52e-06 0 0 8.86e+03 Tank Transportation - 5 -4.82e+03 5e+03 -881 3.52e-06 0 9.42e+03 1.83e+04 expHall Transportation - 6 -4.82e+03 5e+03 -881 3.52e-06 0 0 1.83e+04 Tank Transportation - 7 -5e+03 4.9e+03 -274 3.52e-06 0 640 1.89e+04 expHall Transportation - 8 -5e+03 4.9e+03 -274 3.52e-06 0 0 1.89e+04 Tank Transportation - 9 216 2.87e+03 5e+03 3.52e-06 0 7.69e+03 2.66e+04 expHall Transportation - 10 216 2.87e+03 5e+03 3.52e-06 0 0 2.66e+04 Tank Transportation - 11 5e+03 3.74e+03 1.65e+03 3.52e-06 0 5.91e+03 3.25e+04 expHall Transportation - 12 5e+03 3.74e+03 1.65e+03 3.52e-06 0 0 3.25e+04 Tank Transportation - 13 -2.46e+03 4.32e+03 -5e+03 3.52e-06 0 1e+04 4.25e+04 expHall Transportation - 14 -2.46e+03 4.32e+03 -5e+03 3.52e-06 0 0 4.25e+04 Tank Transportation - 15 -5e+03 4.24e+03 -2.1e+03 3.52e-06 0 3.86e+03 4.64e+04 expHall Transportation - 16 -5e+03 4.24e+03 -2.1e+03 3.52e-06 0 0 4.64e+04 Tank Transportation - 17 -1.03e+03 2.82e+03 5e+03 3.52e-06 0 8.26e+03 5.46e+04 expHall Transportation - 18 1e+04 863 7.22e+03 3.52e-06 0 1.14e+04 6.61e+04 world Transportation - 19 1.5e+04 -24 8.22e+03 3.52e-06 0 5.18e+03 7.12e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.334 0.131 -0.0336 3.62e-06 0 0 0 Tank initStep - 1 -5e+03 2.49e+03 -4.95e+03 3.62e-06 0 7.46e+03 7.46e+03 expHall Transportation - 2 -5e+03 2.49e+03 -4.95e+03 3.62e-06 0 0 7.46e+03 Tank Transportation - 3 -4.94e+03 2.54e+03 -5e+03 3.62e-06 0 96.9 7.56e+03 expHall Transportation - 4 -4.94e+03 2.54e+03 -5e+03 3.62e-06 0 0 7.56e+03 Tank Transportation - 5 -4.19e+03 3.69e+03 -4.11e+03 3.62e-06 3.62e-06 1.63e+03 9.19e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.332 0.13 -0.0332 2.93e-06 0 0 0 Tank initStep - 1 5e+03 1.08e+03 904 2.93e-06 0 5.19e+03 5.19e+03 expHall Transportation - 2 5e+03 1.08e+03 904 2.93e-06 0 0 5.19e+03 Tank Transportation - 3 3.26e+03 2.97e+03 5e+03 2.93e-06 0 4.84e+03 1e+04 expHall Transportation - 4 3.26e+03 2.97e+03 5e+03 2.93e-06 0 0 1e+04 Tank Transportation - 5 -5e+03 3.22e+03 -1.82e+03 2.93e-06 0 1.07e+04 2.07e+04 expHall Transportation - 6 -5e+03 3.22e+03 -1.82e+03 2.93e-06 0 0 2.07e+04 Tank Transportation - 7 -2.9e+03 3.16e+03 -5e+03 2.93e-06 0 3.81e+03 2.46e+04 expHall Transportation - 8 -2.9e+03 3.16e+03 -5e+03 2.93e-06 0 0 2.46e+04 Tank Transportation - 9 5e+03 1.87e+03 -2.42e+03 2.93e-06 0 8.41e+03 3.3e+04 expHall Transportation - 10 5e+03 1.87e+03 -2.42e+03 2.93e-06 0 0 3.3e+04 Tank Transportation - 11 -1.27e+03 -5e+03 1.04e+03 2.93e-06 0 9.93e+03 4.29e+04 expHall Transportation - 12 -1.27e+03 -5e+03 1.04e+03 2.93e-06 0 0 4.29e+04 Tank Transportation - 13 -3.45e+03 -4.81e+03 2.34e+03 2.93e-06 2.93e-06 2.55e+03 4.54e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.295 0.11 -0.0226 2.56e-06 0 0 0 Tank initStep - 1 5e+03 1.87e+03 1.29e+03 2.56e-06 0 5.49e+03 5.49e+03 expHall Transportation - 2 5e+03 1.87e+03 1.29e+03 2.56e-06 0 0 5.49e+03 Tank Transportation - 3 4.19e+03 5e+03 1.44e+03 2.56e-06 0 3.24e+03 8.73e+03 expHall Transportation - 4 2.97e+03 1e+04 677 2.56e-06 0 5.2e+03 1.39e+04 world Transportation - 5 1.74e+03 1.5e+04 -82 2.56e-06 0 5.2e+03 1.91e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.341 0.135 -0.0357 3.2e-06 0 0 0 Tank initStep - 1 868 341 -859 3.2e-06 3.2e-06 1.27e+03 1.27e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.318 0.122 -0.0292 3.07e-06 0 0 0 Tank initStep - 1 4.5e+03 2.92e+03 -5e+03 3.07e-06 0 7.33e+03 7.33e+03 expHall Transportation - 2 4.5e+03 2.92e+03 -5e+03 3.07e-06 0 0 7.33e+03 Tank Transportation - 3 5e+03 3e+03 -4.48e+03 3.07e-06 0 726 8.06e+03 expHall Transportation - 4 1e+04 4.11e+03 2.58e+03 3.07e-06 0 8.72e+03 1.68e+04 world Transportation - 5 1.5e+04 5.23e+03 9.63e+03 3.07e-06 0 8.72e+03 2.55e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 0.344 0.136 -0.0365 0.437 0 0 0.381 Tank initStep - 4 0.443 0.172 -0.046 0.424 0.0127 0.106 0.487 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.396 0.155 -0.0415 3.82e-06 0 0 0 Tank initStep - 1 2.98e+03 -266 -314 3.82e-06 3.82e-06 3.01e+03 3.01e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.392 0.154 -0.0412 2.1e-06 0 0 0 Tank initStep - 1 5e+03 4.68e+03 1.21e+03 2.1e-06 0 6.96e+03 6.96e+03 expHall Transportation - 2 5e+03 4.68e+03 1.21e+03 2.1e-06 0 0 6.96e+03 Tank Transportation - 3 4.89e+03 4.94e+03 1.33e+03 2.1e-06 2.1e-06 306 7.26e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.375 0.147 -0.0395 2.97e-06 0 0 0 Tank initStep - 1 5e+03 -715 -25.3 2.97e-06 0 5.05e+03 5.05e+03 expHall Transportation - 2 1e+04 -3.88e+03 303 2.97e-06 0 5.93e+03 1.1e+04 world Transportation - 3 1.5e+04 -7.05e+03 630 2.97e-06 0 5.93e+03 1.69e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 0.443 0.172 -0.046 0.424 0 0 0.487 Tank initStep - 5 0.537 0.205 -0.0528 0.407 0.0169 0.1 0.587 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.457 0.177 -0.047 3.45e-06 0 0 0 Tank initStep - 1 5e+03 -132 1.34e+03 3.45e-06 0 5.18e+03 5.18e+03 expHall Transportation - 2 1e+04 -322 4.57e+03 3.45e-06 0 5.95e+03 1.11e+04 world Transportation - 3 1.5e+04 -512 7.79e+03 3.45e-06 0 5.95e+03 1.71e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.45 0.174 -0.0465 4.01e-06 0 0 0 Tank initStep - 1 5e+03 3.04e+03 2.32e+03 4.01e-06 0 6.3e+03 6.3e+03 expHall Transportation - 2 8.33e+03 1e+04 7.64e+03 4.01e-06 0 9.37e+03 1.57e+04 world Transportation - 3 1.07e+04 1.5e+04 1.15e+04 4.01e-06 0 6.73e+03 2.24e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.47 0.182 -0.048 2.78e-06 0 0 0 Tank initStep - 1 5e+03 -586 484 2.78e-06 0 5.06e+03 5.06e+03 expHall Transportation - 2 5e+03 -586 484 2.78e-06 0 0 5.06e+03 Tank Transportation - 3 -5e+03 -643 3.16e+03 2.78e-06 0 1.04e+04 1.54e+04 expHall Transportation - 4 -1e+04 -901 5.18e+03 2.78e-06 0 5.4e+03 2.08e+04 world Transportation - 5 -1.5e+04 -1.16e+03 7.2e+03 2.78e-06 0 5.4e+03 2.62e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 0.537 0.205 -0.0528 0.407 0 0 0.587 Tank initStep - 6 0.606 0.259 -0.0784 0.393 0.014 0.0923 0.68 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.548 0.214 -0.057 2.8e-06 0 0 0 Tank initStep - 1 4.5e+03 3e+03 -5e+03 2.8e-06 0 7.37e+03 7.37e+03 expHall Transportation - 2 4.5e+03 3e+03 -5e+03 2.8e-06 0 0 7.37e+03 Tank Transportation - 3 5e+03 3.29e+03 -4.8e+03 2.8e-06 0 608 7.98e+03 expHall Transportation - 4 5e+03 3.29e+03 -4.8e+03 2.8e-06 0 0 7.98e+03 Tank Transportation - 5 4.39e+03 4.58e+03 -4.31e+03 2.8e-06 2.8e-06 1.51e+03 9.48e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 0.606 0.259 -0.0784 0.393 0 0 0.68 Tank initStep - 7 0.656 0.321 -0.111 0.374 0.0191 0.086 0.766 Tank Cerenkov - 8 0.693 0.378 -0.142 0.359 0.0148 0.0778 0.843 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.689 0.373 -0.139 2.56e-06 0 0 0 Tank initStep - 1 -5e+03 -2.48e+03 -2.95e+03 2.56e-06 0 6.32e+03 6.32e+03 expHall Transportation - 2 -8.25e+03 -9.26e+03 -1e+04 2.56e-06 0 1.03e+04 1.66e+04 world Transportation - 3 -1.06e+04 -1.41e+04 -1.5e+04 2.56e-06 0 7.31e+03 2.39e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.67 0.343 -0.123 3.17e-06 0 0 0 Tank initStep - 1 621 5e+03 -3.57e+03 3.17e-06 0 6.18e+03 6.18e+03 expHall Transportation - 2 2.27e+03 7.32e+03 -1e+04 3.17e-06 0 7.03e+03 1.32e+04 world Transportation - 3 3.56e+03 9.12e+03 -1.5e+04 3.17e-06 0 5.47e+03 1.87e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.661 0.329 -0.115 3.66e-06 0 0 0 Tank initStep - 1 3.59e+03 4.33e+03 -56.8 3.66e-06 3.66e-06 5.62e+03 5.62e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 0.693 0.378 -0.142 0.359 0 0 0.843 Tank initStep - 9 0.739 0.43 -0.159 0.347 0.0121 0.0718 0.915 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.706 0.393 -0.147 3.44e-06 0 0 0 Tank initStep - 1 5e+03 3.58e+03 -4.19e+03 3.44e-06 0 7.44e+03 7.44e+03 expHall Transportation - 2 5e+03 3.58e+03 -4.19e+03 3.44e-06 0 0 7.44e+03 Tank Transportation - 3 4.11e+03 3.95e+03 -5e+03 3.44e-06 0 1.25e+03 8.7e+03 expHall Transportation - 4 4.11e+03 3.95e+03 -5e+03 3.44e-06 0 0 8.7e+03 Tank Transportation - 5 2.39e+03 5e+03 -3.88e+03 3.44e-06 0 2.31e+03 1.1e+04 expHall Transportation - 6 2.39e+03 5e+03 -3.88e+03 3.44e-06 0 0 1.1e+04 Tank Transportation - 7 -2.02e+03 3.9e+03 957 3.44e-06 3.44e-06 6.64e+03 1.76e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.719 0.407 -0.151 4.04e-06 0 0 0 Tank initStep - 1 878 2.32e+03 -1.26e+03 4.04e-06 4.04e-06 2.78e+03 2.78e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 9 0.739 0.43 -0.159 0.347 0 0 0.915 Tank initStep - 10 0.794 0.463 -0.174 0.327 0.0194 0.0671 0.982 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 33, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.758 0.441 -0.164 3.66e-06 0 0 0 Tank initStep - 1 3.49e+03 -2.9e+03 -2.69e+03 3.66e-06 0 5.28e+03 5.28e+03 Tank OpRayleigh - 2 5e+03 -2.15e+03 -2.03e+03 3.66e-06 0 1.81e+03 7.08e+03 expHall Transportation - 3 5e+03 -2.15e+03 -2.03e+03 3.66e-06 0 0 7.08e+03 Tank Transportation - 4 -5e+03 551 -4.38e+03 3.66e-06 0 1.06e+04 1.77e+04 expHall Transportation - 5 -1e+04 5.45e+03 -6.36e+03 3.66e-06 0 7.27e+03 2.5e+04 world Transportation - 6 -1.5e+04 1.03e+04 -8.34e+03 3.66e-06 0 7.27e+03 3.22e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.771 0.449 -0.167 2.98e-06 0 0 0 Tank initStep - 1 3.76e+03 5e+03 -2.36e+03 2.98e-06 0 6.68e+03 6.68e+03 expHall Transportation - 2 3.76e+03 5e+03 -2.36e+03 2.98e-06 0 0 6.68e+03 Tank Transportation - 3 5e+03 4.19e+03 -2.98e+03 2.98e-06 0 1.61e+03 8.29e+03 expHall Transportation - 4 5e+03 4.19e+03 -2.98e+03 2.98e-06 0 0 8.29e+03 Tank Transportation - 5 4.52e+03 4.45e+03 -5e+03 2.98e-06 0 2.09e+03 1.04e+04 expHall Transportation - 6 4.52e+03 4.45e+03 -5e+03 2.98e-06 0 0 1.04e+04 Tank Transportation - 7 -5e+03 1.49e+03 1.75e+03 2.98e-06 0 1.2e+04 2.24e+04 expHall Transportation - 8 -5e+03 1.49e+03 1.75e+03 2.98e-06 0 0 2.24e+04 Tank Transportation - 9 -3.55e+03 2.48e+03 5e+03 2.98e-06 0 3.69e+03 2.61e+04 expHall Transportation - 10 361 3.91e+03 1e+04 2.98e-06 0 6.51e+03 3.26e+04 world Transportation - 11 4.27e+03 5.34e+03 1.5e+04 2.98e-06 0 6.51e+03 3.91e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 10 0.794 0.463 -0.174 0.327 0 0 0.982 Tank initStep - 11 0.84 0.498 -0.166 0.315 0.0126 0.0598 1.04 Tank Cerenkov - 12 0.88 0.532 -0.156 0.305 0.00942 0.0554 1.1 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 34, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.879 0.531 -0.156 3.66e-06 0 0 0 Tank initStep - 1 5e+03 2.39e+03 -152 3.66e-06 0 5.54e+03 5.54e+03 expHall Transportation - 2 1e+04 7.79e+03 -2.06e+03 3.66e-06 0 7.6e+03 1.31e+04 world Transportation - 3 1.5e+04 1.32e+04 -3.97e+03 3.66e-06 0 7.6e+03 2.08e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 12 0.88 0.532 -0.156 0.305 0 0 1.1 Tank initStep - 13 0.919 0.564 -0.144 0.291 0.0145 0.0521 1.15 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 35, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.895 0.545 -0.151 3.8e-06 0 0 0 Tank initStep - 1 418 176 187 3.8e-06 3.8e-06 490 490 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 13 0.919 0.564 -0.144 0.291 0 0 1.15 Tank initStep - 14 0.95 0.596 -0.128 0.281 0.00955 0.0473 1.2 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 36, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.92 0.565 -0.144 3.32e-06 0 0 0 Tank initStep - 1 -175 431 -5e+03 3.32e-06 0 5.02e+03 5.02e+03 expHall Transportation - 2 487 1.59e+03 -1e+04 3.32e-06 0 5.17e+03 1.02e+04 world Transportation - 3 1.15e+03 2.74e+03 -1.5e+04 3.32e-06 0 5.17e+03 1.54e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 14 0.95 0.596 -0.128 0.281 0 0 1.2 Tank initStep - 15 0.971 0.632 -0.114 0.272 0.00923 0.0443 1.24 Tank Cerenkov - 16 0.985 0.668 -0.102 0.263 0.0091 0.0415 1.28 Tank Cerenkov + 11 35.9 -13 31.3 0.0516 0 0 0.487 Tank initStep + 12 35.9 -13 31.3 0.0493 0.0023 0.0036 0.49 Tank msc + 13 35.9 -13 31.3 0.0393 0.00997 0.0224 0.513 Tank eIoni + 14 35.9 -13 31.3 0.023 0.0163 0.0187 0.532 Tank eIoni + 15 35.9 -13 31.3 0 0.023 0.0108 0.542 Tank eIoni + 16 35.9 -13 31.3 0 0 0 0.542 Tank NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 38, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.982 0.661 -0.104 3.49e-06 0 0 0 Tank initStep - 1 5e+03 2.91e+03 -457 3.49e-06 0 5.8e+03 5.8e+03 expHall Transportation - 2 7.89e+03 1e+04 -2.22e+03 3.49e-06 0 7.86e+03 1.37e+04 world Transportation - 3 9.92e+03 1.5e+04 -3.46e+03 3.49e-06 0 5.54e+03 1.92e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 37, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.982 0.662 -0.104 2.69e-06 0 0 0 Tank initStep - 1 25.1 -71.7 -5e+03 2.69e-06 0 5e+03 5e+03 expHall Transportation - 2 49.3 -144 -1e+04 2.69e-06 0 5e+03 1e+04 world Transportation - 3 73.4 -216 -1.5e+04 2.69e-06 0 5e+03 1.5e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 16 0.985 0.668 -0.102 0.263 0 0 1.28 Tank initStep - 17 0.999 0.701 -0.088 0.258 0.00553 0.0388 1.32 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 39, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.993 0.686 -0.0941 3.53e-06 0 0 0 Tank initStep - 1 -3.02e+03 940 5e+03 3.53e-06 0 5.92e+03 5.92e+03 expHall Transportation - 2 -3.02e+03 940 5e+03 3.53e-06 0 0 5.92e+03 Tank Transportation - 3 -5e+03 1.86e+03 4.18e+03 3.53e-06 0 2.33e+03 8.25e+03 expHall Transportation - 4 -5e+03 1.86e+03 4.18e+03 3.53e-06 0 0 8.25e+03 Tank Transportation - 5 559 5e+03 1.23e+03 3.53e-06 0 7.03e+03 1.53e+04 expHall Transportation - 6 559 5e+03 1.23e+03 3.53e-06 0 0 1.53e+04 Tank Transportation - 7 1.98e+03 726 -2.97e+03 3.53e-06 3.53e-06 6.16e+03 2.14e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 17 0.999 0.701 -0.088 0.258 0 0 1.32 Tank initStep - 18 1.01 0.729 -0.0661 0.251 0.00627 0.0372 1.36 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 40, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1 0.71 -0.0807 3.17e-06 0 0 0 Tank initStep - 1 1.54e+03 5e+03 3.53e+03 3.17e-06 0 6.31e+03 6.31e+03 expHall Transportation - 2 4.48e+03 6.84e+03 1e+04 3.17e-06 0 7.34e+03 1.37e+04 world Transportation - 3 6.75e+03 8.25e+03 1.5e+04 3.17e-06 0 5.67e+03 1.93e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 18 1.01 0.729 -0.0661 0.251 0 0 1.36 Tank initStep - 19 1.02 0.753 -0.0458 0.241 0.0101 0.0334 1.39 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 41, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.02 0.746 -0.0523 2.41e-06 0 0 0 Tank initStep - 1 3.5e+03 -2.22e+03 -434 2.41e-06 2.41e-06 4.17e+03 4.17e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 19 1.02 0.753 -0.0458 0.241 0 0 1.39 Tank initStep - 20 1.03 0.788 -0.0195 0.22 0.0212 0.0464 1.44 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 43, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.03 0.768 -0.0346 3.46e-06 0 0 0 Tank initStep - 1 -5e+03 3.96e+03 677 3.46e-06 0 6.41e+03 6.41e+03 expHall Transportation - 2 -5e+03 3.96e+03 677 3.46e-06 0 0 6.41e+03 Tank Transportation - 3 -4.87e+03 3.78e+03 480 3.46e-06 0 300 6.71e+03 Tank OpRayleigh - 4 -2.94e+03 3.36e+03 -5e+03 3.46e-06 0 5.82e+03 1.25e+04 expHall Transportation - 5 742 2.47e+03 -1e+04 3.46e-06 0 6.27e+03 1.88e+04 world Transportation - 6 4.43e+03 1.59e+03 -1.5e+04 3.46e-06 0 6.27e+03 2.51e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 42, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.03 0.767 -0.0354 2.03e-06 0 0 0 Tank initStep - 1 474 1.56e+03 929 2.03e-06 2.03e-06 1.87e+03 1.87e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 20 1.03 0.788 -0.0195 0.22 0 0 1.44 Tank initStep - 21 1.04 0.821 0.00147 0.213 0.00714 0.0401 1.48 Tank msc - 22 1.05 0.905 0.051 0.137 0.0759 0.111 1.59 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 46, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.05 0.894 0.0446 2.44e-06 0 0 0 Tank initStep - 1 3.91e+03 -5e+03 4.09e+03 2.44e-06 0 7.55e+03 7.55e+03 expHall Transportation - 2 3.91e+03 -5e+03 4.09e+03 2.44e-06 0 0 7.55e+03 Tank Transportation - 3 4.64e+03 -4.11e+03 5e+03 2.44e-06 0 1.46e+03 9.01e+03 expHall Transportation - 4 4.64e+03 -4.11e+03 5e+03 2.44e-06 0 0 9.01e+03 Tank Transportation - 5 5e+03 -3.72e+03 4.5e+03 2.44e-06 0 731 9.75e+03 expHall Transportation - 6 5e+03 -3.72e+03 4.5e+03 2.44e-06 0 0 9.75e+03 Tank Transportation - 7 934 -813 2.33e+03 2.44e-06 2.44e-06 5.45e+03 1.52e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.04 0.834 0.00946 2.47e-06 0 0 0 Tank initStep - 1 -4.87e+03 -1.08e+03 -5e+03 2.47e-06 0 7.07e+03 7.07e+03 expHall Transportation - 2 -4.87e+03 -1.08e+03 -5e+03 2.47e-06 0 0 7.07e+03 Tank Transportation - 3 -5e+03 -1.24e+03 -4.76e+03 2.47e-06 0 318 7.38e+03 expHall Transportation - 4 -5e+03 -1.24e+03 -4.76e+03 2.47e-06 0 0 7.38e+03 Tank Transportation - 5 -806 -5e+03 -893 2.47e-06 0 6.83e+03 1.42e+04 expHall Transportation - 6 -806 -5e+03 -893 2.47e-06 0 0 1.42e+04 Tank Transportation - 7 4.15e+03 4.07e+03 5e+03 2.47e-06 0 1.19e+04 2.61e+04 expHall Transportation - 8 4.15e+03 4.07e+03 5e+03 2.47e-06 0 0 2.61e+04 Tank Transportation - 9 4.64e+03 5e+03 3.94e+03 2.47e-06 0 1.49e+03 2.76e+04 expHall Transportation - 10 4.64e+03 5e+03 3.94e+03 2.47e-06 0 0 2.76e+04 Tank Transportation - 11 4.62e+03 -2.09e+03 1.67e+03 2.47e-06 2.47e-06 7.45e+03 3.5e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 44, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.05 0.86 0.0243 2.28e-06 0 0 0 Tank initStep - 1 5e+03 2.81e+03 862 2.28e-06 0 5.8e+03 5.8e+03 expHall Transportation - 2 1e+04 7.02e+03 310 2.28e-06 0 6.56e+03 1.24e+04 world Transportation - 3 1.5e+04 1.12e+04 -241 2.28e-06 0 6.56e+03 1.89e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 22 1.05 0.905 0.051 0.137 0 0 1.59 Tank initStep - 23 1.04 0.917 0.061 0.134 0.00258 0.0183 1.61 Tank msc - 24 1.01 0.949 0.0885 0.116 0.0185 0.0601 1.67 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 47, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.01 0.948 0.0875 2.27e-06 0 0 0 Tank initStep - 1 -1.95e+03 5e+03 1.07e+03 2.27e-06 0 5.47e+03 5.47e+03 expHall Transportation - 2 -9.2e+03 1e+04 5.66e+03 2.27e-06 0 9.93e+03 1.54e+04 world Transportation - 3 -1.5e+04 1.4e+04 9.34e+03 2.27e-06 0 7.95e+03 2.34e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 24 1.01 0.949 0.0885 0.116 0 0 1.67 Tank initStep - 25 1 0.957 0.0967 0.112 0.00375 0.0138 1.68 Tank msc - 26 0.981 0.983 0.12 0.0805 0.0316 0.0481 1.73 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 50, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.99 0.972 0.111 3.96e-06 0 0 0 Tank initStep - 1 5e+03 -3.5e+03 3.43e+03 3.96e-06 0 7e+03 7e+03 expHall Transportation - 2 5e+03 -3.5e+03 3.43e+03 3.96e-06 0 0 7e+03 Tank Transportation - 3 4.06e+03 -4.15e+03 5e+03 3.96e-06 0 1.94e+03 8.94e+03 expHall Transportation - 4 -6.69e+03 -1e+04 7.82e+03 3.96e-06 0 1.26e+04 2.15e+04 world Transportation - 5 -1.5e+04 -1.45e+04 1e+04 3.96e-06 0 9.7e+03 3.12e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.991 0.971 0.109 3.86e-06 0 0 0 Tank initStep - 1 63.5 2e+03 55.5 3.86e-06 3.86e-06 2e+03 2e+03 Bubble Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.99 0.973 0.111 2.86e-06 0 0 0 Tank initStep - 1 -5e+03 3.86e+03 -59.6 2.86e-06 0 6.32e+03 6.32e+03 expHall Transportation - 2 -5e+03 3.86e+03 -59.6 2.86e-06 0 0 6.32e+03 Tank Transportation - 3 -3.97e+03 5e+03 38.3 2.86e-06 0 1.54e+03 7.85e+03 expHall Transportation - 4 -3.97e+03 5e+03 38.3 2.86e-06 0 0 7.85e+03 Tank Transportation - 5 -499 1.43e+03 5e+03 2.86e-06 0 7.03e+03 1.49e+04 expHall Transportation - 6 -499 1.43e+03 5e+03 2.86e-06 0 0 1.49e+04 Tank Transportation - 7 5e+03 363 -13.6 2.86e-06 0 7.52e+03 2.24e+04 expHall Transportation - 8 5e+03 363 -13.6 2.86e-06 0 0 2.24e+04 Tank Transportation - 9 1.51e+03 1.5e+03 -5e+03 2.86e-06 0 6.19e+03 2.86e+04 expHall Transportation - 10 1.51e+03 1.5e+03 -5e+03 2.86e-06 0 0 2.86e+04 Tank Transportation - 11 -3.07e+03 5e+03 -1.16e+03 2.86e-06 0 6.92e+03 3.55e+04 expHall Transportation - 12 -3.07e+03 5e+03 -1.16e+03 2.86e-06 0 0 3.55e+04 Tank Transportation - 13 -5e+03 280 17.1 2.86e-06 0 5.23e+03 4.08e+04 expHall Transportation - 14 -5e+03 280 17.1 2.86e-06 0 0 4.08e+04 Tank Transportation - 15 -3.27e+03 -5e+03 1.02e+03 2.86e-06 0 5.65e+03 4.64e+04 expHall Transportation - 16 -3.27e+03 -5e+03 1.02e+03 2.86e-06 0 0 4.64e+04 Tank Transportation - 17 45.9 3.86e+03 1.06e+03 2.86e-06 0 9.46e+03 5.59e+04 Tank OpRayleigh - 18 5e+03 3.69e+03 218 2.86e-06 0 5.03e+03 6.09e+04 expHall Transportation - 19 1e+04 2.84e+03 -3.04e+03 2.86e-06 0 6.03e+03 6.69e+04 world Transportation - 20 1.5e+04 1.99e+03 -6.29e+03 2.86e-06 0 6.03e+03 7.29e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 26 0.981 0.983 0.12 0.0805 0 0 1.73 Tank initStep - 27 0.975 0.987 0.122 0.0769 0.00358 0.00736 1.74 Tank msc - 28 0.954 1 0.125 0.0609 0.0161 0.0321 1.77 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.963 0.996 0.123 2.41e-06 0 0 0 Tank initStep - 1 75.2 2e+03 -352 2.41e-06 2.41e-06 2.03e+03 2.03e+03 Bubble Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.962 0.996 0.124 3.4e-06 0 0 0 Tank initStep - 1 -2.47e+03 361 -4.26e+03 3.4e-06 3.4e-06 4.94e+03 4.94e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 51, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.974 0.988 0.122 2.21e-06 0 0 0 Tank initStep - 1 -5e+03 1.17e+03 -470 2.21e-06 0 5.16e+03 5.16e+03 expHall Transportation - 2 -1e+04 4.05e+03 -862 2.21e-06 0 5.78e+03 1.09e+04 world Transportation - 3 -1.5e+04 6.93e+03 -1.25e+03 2.21e-06 0 5.78e+03 1.67e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 28 0.954 1 0.125 0.0609 0 0 1.77 Tank initStep - 29 0.953 0.998 0.124 0.0587 0.00215 0.00451 1.77 Tank msc - 30 0.949 0.98 0.12 0.0401 0.0186 0.0251 1.8 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.95 0.985 0.121 2.51e-06 0 0 0 Tank initStep - 1 1.97e+03 4.07e+03 -947 2.51e-06 2.51e-06 4.62e+03 4.62e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 30 0.949 0.98 0.12 0.0401 0 0 1.8 Tank initStep - 31 0.951 0.979 0.12 0.0395 0.0006 0.00215 1.8 Tank msc - 32 0.958 0.97 0.116 0.0246 0.015 0.0182 1.82 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 55, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.954 0.975 0.118 2.43e-06 0 0 0 Tank initStep - 1 5e+03 1.61e+03 -4.12e+03 2.43e-06 0 6.67e+03 6.67e+03 expHall Transportation - 2 5e+03 1.61e+03 -4.12e+03 2.43e-06 0 0 6.67e+03 Tank Transportation - 3 3.13e+03 1.96e+03 -5e+03 2.43e-06 0 2.09e+03 8.77e+03 expHall Transportation - 4 3.13e+03 1.96e+03 -5e+03 2.43e-06 0 0 8.77e+03 Tank Transportation - 5 -425 4.44e+03 -615 2.43e-06 2.43e-06 6.17e+03 1.49e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 32 0.958 0.97 0.116 0.0246 0 0 1.82 Tank initStep - 33 0.958 0.97 0.116 0.0235 0.00102 0.000892 1.82 Tank msc - 34 0.954 0.972 0.12 0 0.0235 0.0103 1.83 Tank eIoni - 35 0.954 0.972 0.12 0 0 0 1.83 Tank annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 59, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.954 0.972 0.12 0.511 0 0 0 Tank initStep - 1 31.6 153 -115 0.185 0.000537 193 193 Tank compt - 2 36.3 146 -112 0.179 0.000537 9.2 202 Tank compt - 3 24.4 75.5 -110 0.158 2.92e-05 71.2 274 Tank compt - 4 18.2 53.8 -78.4 0.111 1.42e-05 38.8 312 Tank compt - 5 22.7 52.5 -80.9 0.097 2.92e-05 5.28 318 Tank compt - 6 85.2 105 -57.2 0.0845 2.92e-05 85.3 403 Tank compt - 7 -16.7 242 53.4 0.082 0.000537 203 606 Tank compt - 8 9.19 289 115 0.0695 1.42e-05 82 688 Tank compt - 9 74.5 308 61.9 0.0686 1.42e-05 86.2 774 Tank compt - 10 129 298 32.5 0.0569 1.42e-05 62.6 837 Tank compt - 11 124 289 51.8 0.0518 1.42e-05 21.5 858 Tank compt - 12 132 238 39.1 0.0506 0.000537 53.6 912 Tank compt - 13 104 217 -0.537 0.0457 2.92e-05 52.4 964 Tank compt - 14 130 249 -26.6 0.0429 1.42e-05 48.3 1.01e+03 Tank compt - 15 151 241 -27.5 0.0417 1.36e-05 22.7 1.04e+03 Tank compt - 16 156 227 -31.9 0.0357 0.000537 16.1 1.05e+03 Tank compt - 17 155 231 -29.5 0.0353 1.36e-05 5.54 1.06e+03 Tank compt - 18 155 236 -30.3 0.0353 0 4.37 1.06e+03 Tank Rayl - 19 145 286 -12 0.0325 1.42e-05 54.6 1.12e+03 Tank compt - 20 145 286 -11.2 0.0302 1.36e-05 0.881 1.12e+03 Tank compt - 21 138 280 -16.6 0.0244 0.000537 10.5 1.13e+03 Tank compt - 22 156 287 -28.8 0 0.000538 22.9 1.15e+03 Tank phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 156 287 -28.8 0.0239 0 0 0 Tank initStep - 1 156 287 -28.8 0.0211 0.00279 0.000925 0.000925 Tank msc - 2 156 287 -28.8 0 0.0211 0.00927 0.0102 Tank eIoni - 3 156 287 -28.8 0 0 0 0.0102 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 138 280 -16.6 0.00526 0 0 0 Tank initStep - 1 138 280 -16.6 0.00507 0.000186 6.45e-05 6.45e-05 Tank msc - 2 138 280 -16.6 0 0.00507 0.000758 0.000823 Tank eIoni - 3 138 280 -16.6 0 0 0 0.000823 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 145 286 -11.2 0.00227 0 0 0 Tank initStep - 1 145 286 -11.2 0.00214 0.000139 1.56e-05 1.56e-05 Tank msc - 2 145 286 -11.2 0 0.00214 0.000176 0.000192 Tank eIoni - 3 145 286 -11.2 0 0 0 0.000192 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 81, Parent ID = 78 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 145 286 -11.2 3.05e-06 0 0 0 Tank initStep - 1 -1.05e+03 -5e+03 -1.24e+03 3.05e-06 0 5.56e+03 5.56e+03 expHall Transportation - 2 -3.65e+03 -1e+04 -4.16e+03 3.05e-06 0 6.35e+03 1.19e+04 world Transportation - 3 -6.25e+03 -1.5e+04 -7.09e+03 3.05e-06 0 6.35e+03 1.83e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 145 286 -12 0.00278 0 0 0 Tank initStep - 1 145 286 -12 0.00267 0.000102 2.18e-05 2.18e-05 Tank msc - 2 145 286 -12 0 0.00267 0.000256 0.000277 Tank eIoni - 3 145 286 -12 0 0 0 0.000277 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 155 231 -29.5 0.000412 0 0 0 Tank initStep - 1 155 231 -29.5 0.000412 0 1.21e-06 1.21e-06 Tank msc - 2 155 231 -29.5 0 0.000412 1.51e-05 1.63e-05 Tank eIoni - 3 155 231 -29.5 0 0 0 1.63e-05 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 156 227 -31.9 0.00539 0 0 0 Tank initStep - 1 156 227 -31.9 0.00519 0.000201 6.74e-05 6.74e-05 Tank msc - 2 156 227 -31.9 0 0.00519 0.000789 0.000857 Tank eIoni - 3 156 227 -31.9 0 0 0 0.000857 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 151 241 -27.5 0.00127 0 0 0 Tank initStep - 1 151 241 -27.5 0.00117 0.000104 6.07e-06 6.07e-06 Tank msc - 2 151 241 -27.5 0 0.00117 6.62e-05 7.23e-05 Tank eIoni - 3 151 241 -27.5 0 0 0 7.23e-05 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 130 249 -26.6 0.00275 0 0 0 Tank initStep - 1 130 249 -26.6 0.00265 0.000103 2.14e-05 2.14e-05 Tank msc - 2 130 249 -26.6 0 0.00265 0.000251 0.000272 Tank eIoni - 3 130 249 -26.6 0 0 0 0.000272 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 104 217 -0.537 0.00482 0 0 0 Tank initStep - 1 104 217 -0.537 0.00457 0.000246 5.55e-05 5.55e-05 Tank msc - 2 104 217 -0.537 0 0.00457 0.000635 0.00069 Tank eIoni - 3 104 217 -0.537 0 0 0 0.00069 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 132 238 39.1 0.000731 0 0 0 Tank initStep - 1 132 238 39.1 0.000731 0 2.61e-06 2.61e-06 Tank msc - 2 132 238 39.1 0 0.000731 3.26e-05 3.52e-05 Tank eIoni - 3 132 238 39.1 0 0 0 3.52e-05 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 124 289 51.8 0.00507 0 0 0 Tank initStep - 1 124 289 51.8 0.00498 9.46e-05 6.06e-05 6.06e-05 Tank msc - 2 124 289 51.8 0 0.00498 0.000734 0.000794 Tank eIoni - 3 124 289 51.8 0 0 0 0.000794 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 129 298 32.5 0.0117 0 0 0 Tank initStep - 1 129 298 32.5 0.0111 0.000621 0.000261 0.000261 Tank msc - 2 129 298 32.5 0 0.0111 0.00296 0.00322 Tank eIoni - 3 129 298 32.5 0 0 0 0.00322 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 74.5 308 61.9 0.000883 0 0 0 Tank initStep - 1 74.5 308 61.9 0.000839 4.44e-05 3.45e-06 3.45e-06 Tank msc - 2 74.5 308 61.9 0 0.000839 3.99e-05 4.33e-05 Tank eIoni - 3 74.5 308 61.9 0 0 0 4.33e-05 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 9.19 289 115 0.0124 0 0 0 Tank initStep - 1 9.19 289 115 0.012 0.000405 0.000291 0.000291 Tank msc - 2 9.19 289 115 0 0.012 0.00344 0.00373 Tank eIoni - 3 9.19 289 115 0 0 0 0.00373 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.7 242 53.4 0.00197 0 0 0 Tank initStep - 1 -16.7 242 53.4 0.00186 0.000111 1.23e-05 1.23e-05 Tank msc - 2 -16.7 242 53.4 0 0.00186 0.00014 0.000152 Tank eIoni - 3 -16.7 242 53.4 0 0 0 0.000152 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 85.2 105 -57.2 0.0125 0 0 0 Tank initStep - 1 85.2 105 -57.2 0.0122 0.000294 0.000294 0.000294 Tank msc - 2 85.2 105 -57.2 0 0.0122 0.00352 0.00381 Tank eIoni - 3 85.2 105 -57.2 0 0 0 0.00381 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 22.7 52.5 -80.9 0.0144 0 0 0 Tank initStep - 1 22.7 52.5 -80.9 0.0137 0.000663 0.000377 0.000377 Tank msc - 2 22.7 52.5 -80.9 0 0.0137 0.00434 0.00472 Tank eIoni - 3 22.7 52.5 -80.9 0 0 0 0.00472 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 18.2 53.8 -78.4 0.047 0 0 0 Tank initStep - 1 18.2 53.8 -78.4 0.0452 0.0018 0.00306 0.00306 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 82, Parent ID = 63 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 18.2 53.8 -78.4 2.64e-06 0 0 0 Tank initStep - 1 -4.74e+03 -3.41e+03 -5e+03 2.64e-06 0 7.67e+03 7.67e+03 expHall Transportation - 2 -4.74e+03 -3.41e+03 -5e+03 2.64e-06 0 0 7.67e+03 Tank Transportation - 3 -5e+03 -3.61e+03 -4.64e+03 2.64e-06 0 490 8.16e+03 expHall Transportation - 4 -5e+03 -3.61e+03 -4.64e+03 2.64e-06 0 0 8.16e+03 Tank Transportation - 5 -1.99e+03 -5e+03 -3.21e+03 2.64e-06 0 3.61e+03 1.18e+04 expHall Transportation - 6 -1.99e+03 -5e+03 -3.21e+03 2.64e-06 0 0 1.18e+04 Tank Transportation - 7 5e+03 -2.98e+03 547 2.64e-06 0 8.19e+03 2e+04 expHall Transportation - 8 5e+03 -2.98e+03 547 2.64e-06 0 0 2e+04 Tank Transportation - 9 3.99e+03 -2.57e+03 1.24e+03 2.64e-06 2.64e-06 1.29e+03 2.13e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 18.2 53.8 -78.4 0.0452 0 0 0.00306 Tank initStep - 2 18.2 53.8 -78.4 0.0438 0.00137 0.00286 0.00591 Tank msc - 3 18.2 53.8 -78.4 0 0.0438 0.0204 0.0263 Tank eIoni - 4 18.2 53.8 -78.4 0 0 0 0.0263 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 84, Parent ID = 63 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 18.2 53.8 -78.4 2.35e-06 0 0 0 Tank initStep - 1 -2.92e+03 5e+03 3e+03 2.35e-06 0 6.52e+03 6.52e+03 expHall Transportation - 2 -8.06e+03 7.09e+03 1e+04 2.35e-06 0 8.94e+03 1.55e+04 world Transportation - 3 -1.17e+04 8.58e+03 1.5e+04 2.35e-06 0 6.38e+03 2.18e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 83, Parent ID = 63 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 18.2 53.8 -78.4 3.59e-06 0 0 0 Tank initStep - 1 -2.96e+03 -3.43e+03 -5e+03 3.59e-06 0 6.73e+03 6.73e+03 expHall Transportation - 2 -2.96e+03 -3.43e+03 -5e+03 3.59e-06 0 0 6.73e+03 Tank Transportation - 3 -3.07e+03 -3.78e+03 -4.4e+03 3.59e-06 3.59e-06 708 7.43e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24.4 75.5 -110 0.0208 0 0 0 Tank initStep - 1 24.4 75.5 -110 0.0199 0.000919 0.000726 0.000726 Tank msc - 2 24.4 75.5 -110 0 0.0199 0.00837 0.0091 Tank eIoni - 3 24.4 75.5 -110 0 0 0 0.0091 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 85, Parent ID = 62 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 24.4 75.5 -110 2.25e-06 0 0 0 Tank initStep - 1 -3.13e+03 -5e+03 -1.6e+03 2.25e-06 0 6.16e+03 6.16e+03 expHall Transportation - 2 -1e+04 -8.34e+03 -4.54e+03 2.25e-06 0 8.18e+03 1.43e+04 world Transportation - 3 -1.5e+04 -1.08e+04 -6.69e+03 2.25e-06 0 5.96e+03 2.03e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 36.3 146 -112 0.00487 0 0 0 Tank initStep - 1 36.3 146 -112 0.00481 6.16e-05 5.65e-05 5.65e-05 Tank msc - 2 36.3 146 -112 0 0.00481 0.000691 0.000748 Tank eIoni - 3 36.3 146 -112 0 0 0 0.000748 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.6 153 -115 0.326 0 0 0 Tank initStep - 1 31.6 153 -115 0.316 0.00981 0.0591 0.0591 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 86, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.6 153 -115 3.91e-06 0 0 0 Tank initStep - 1 -2.78e+03 2.3e+03 -210 3.91e-06 3.91e-06 3.54e+03 3.54e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 31.6 153 -115 0.316 0 0 0.0591 Tank initStep - 2 31.6 153 -115 0.279 0.0373 0.0557 0.115 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 89, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.6 153 -115 3.54e-06 0 0 0 Tank initStep - 1 -384 -40.3 -309 3.54e-06 0 498 498 Tank OpRayleigh - 2 -338 20.5 -305 3.54e-06 0 76.4 574 Tank OpRayleigh - 3 1.76e+03 -3.9e+03 -5e+03 3.54e-06 0 6.47e+03 7.04e+03 expHall Transportation - 4 1.76e+03 -3.9e+03 -5e+03 3.54e-06 0 0 7.04e+03 Tank Transportation - 5 5e+03 -4.37e+03 -2.08e+03 3.54e-06 0 4.39e+03 1.14e+04 expHall Transportation - 6 5e+03 -4.37e+03 -2.08e+03 3.54e-06 0 0 1.14e+04 Tank Transportation - 7 -5e+03 -3.74e+03 4.69e+03 3.54e-06 0 1.21e+04 2.35e+04 expHall Transportation - 8 -9.72e+03 -4.59e+03 1e+04 3.54e-06 0 7.16e+03 3.07e+04 world Transportation - 9 -1.42e+04 -5.39e+03 1.5e+04 3.54e-06 0 6.74e+03 3.74e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 88, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.6 153 -115 2.75e-06 0 0 0 Tank initStep - 1 -5e+03 -3.53e+03 4.29e+03 2.75e-06 0 7.64e+03 7.64e+03 expHall Transportation - 2 -5e+03 -3.53e+03 4.29e+03 2.75e-06 0 0 7.64e+03 Tank Transportation - 3 -4.36e+03 -3.6e+03 5e+03 2.75e-06 0 957 8.6e+03 expHall Transportation - 4 -4.36e+03 -3.6e+03 5e+03 2.75e-06 0 0 8.6e+03 Tank Transportation - 5 359 -2.54e+03 3.04e+03 2.75e-06 2.75e-06 5.22e+03 1.38e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 87, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.6 153 -115 4.09e-06 0 0 0 Tank initStep - 1 1.57e+03 5e+03 -425 4.09e-06 0 5.09e+03 5.09e+03 expHall Transportation - 2 1.57e+03 5e+03 -425 4.09e-06 0 0 5.09e+03 Tank Transportation - 3 5e+03 835 -616 4.09e-06 0 5.4e+03 1.05e+04 expHall Transportation - 4 5e+03 835 -616 4.09e-06 0 0 1.05e+04 Tank Transportation - 5 -3.93e+03 -5e+03 -295 4.09e-06 0 1.07e+04 2.12e+04 expHall Transportation - 6 -3.93e+03 -5e+03 -295 4.09e-06 0 0 2.12e+04 Tank Transportation - 7 -5e+03 -4.35e+03 74.2 4.09e-06 0 1.3e+03 2.25e+04 expHall Transportation - 8 -1e+04 4.71e+03 6.39e+03 4.09e-06 0 1.21e+04 3.46e+04 world Transportation - 9 -1.5e+04 1.38e+04 1.27e+04 4.09e-06 0 1.21e+04 4.67e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 31.6 153 -115 0.279 0 0 0.115 Tank initStep - 3 31.6 153 -115 0.27 0.00895 0.0437 0.158 Tank Cerenkov - 4 31.6 153 -115 0.257 0.0122 0.041 0.2 Tank Cerenkov - 5 31.6 153 -115 0.25 0.00751 0.0375 0.237 Tank Cerenkov - 6 31.6 153 -115 0.244 0.0058 0.029 0.266 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 90, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.6 153 -115 2.21e-06 0 0 0 Tank initStep - 1 4.52e+03 -469 -5e+03 2.21e-06 0 6.66e+03 6.66e+03 expHall Transportation - 2 4.52e+03 -469 -5e+03 2.21e-06 0 0 6.66e+03 Tank Transportation - 3 5e+03 -577 -4.81e+03 2.21e-06 0 528 7.19e+03 expHall Transportation - 4 1e+04 -1.48e+03 -2.31e+03 2.21e-06 0 5.66e+03 1.29e+04 world Transportation - 5 1.5e+04 -2.39e+03 190 2.21e-06 0 5.66e+03 1.85e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 31.6 153 -115 0.244 0 0 0.266 Tank initStep - 7 31.6 153 -115 0.243 0.00081 0.00636 0.272 Tank Cerenkov - 8 31.6 153 -115 0.243 0.000418 0.00322 0.276 Tank Cerenkov - 9 31.6 153 -115 0.243 0.000273 0.0016 0.277 Tank Cerenkov - 10 31.6 153 -115 0.243 0 0.000547 0.278 Tank Cerenkov - 11 31.6 153 -115 0.243 6.43e-05 0.000547 0.278 Tank Cerenkov - 12 31.6 153 -115 0.243 0 0.000298 0.279 Tank Cerenkov - 13 31.6 153 -115 0.242 0.000113 0.000298 0.279 Tank Cerenkov - 14 31.7 154 -115 0.209 0.0335 0.136 0.415 Tank eIoni - 15 31.7 154 -115 0.184 0.0251 0.111 0.526 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 91, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.7 154 -115 2.49e-06 0 0 0 Tank initStep - 1 5e+03 3.58e+03 362 2.49e-06 0 6.06e+03 6.06e+03 expHall Transportation - 2 5e+03 3.58e+03 362 2.49e-06 0 0 6.06e+03 Tank Transportation - 3 3.36e+03 5e+03 489 2.49e-06 0 2.17e+03 8.23e+03 expHall Transportation - 4 3.36e+03 5e+03 489 2.49e-06 0 0 8.23e+03 Tank Transportation - 5 -5e+03 -1.95e+03 2.08e+03 2.49e-06 0 1.1e+04 1.92e+04 expHall Transportation - 6 -5e+03 -1.95e+03 2.08e+03 2.49e-06 0 0 1.92e+04 Tank Transportation - 7 -1.21e+03 -5e+03 3.8e+03 2.49e-06 0 5.16e+03 2.44e+04 expHall Transportation - 8 -1.21e+03 -5e+03 3.8e+03 2.49e-06 0 0 2.44e+04 Tank Transportation - 9 681 -1.42e+03 5e+03 2.49e-06 0 4.22e+03 2.86e+04 expHall Transportation - 10 681 -1.42e+03 5e+03 2.49e-06 0 0 2.86e+04 Tank Transportation - 11 2.02e+03 5e+03 707 2.49e-06 0 7.84e+03 3.64e+04 expHall Transportation - 12 2.02e+03 5e+03 707 2.49e-06 0 0 3.64e+04 Tank Transportation - 13 5e+03 -789 -3.88e+03 2.49e-06 0 7.96e+03 4.44e+04 expHall Transportation - 14 5e+03 -789 -3.88e+03 2.49e-06 0 0 4.44e+04 Tank Transportation - 15 3.48e+03 -2.39e+03 -5e+03 2.49e-06 0 2.47e+03 4.69e+04 expHall Transportation - 16 3.48e+03 -2.39e+03 -5e+03 2.49e-06 0 0 4.69e+04 Tank Transportation - 17 1.36e+03 -5e+03 -2.76e+03 2.49e-06 0 4.04e+03 5.09e+04 expHall Transportation - 18 1.36e+03 -5e+03 -2.76e+03 2.49e-06 0 0 5.09e+04 Tank Transportation - 19 -222 -2.56e+03 -3.19e+03 2.49e-06 2.49e-06 2.94e+03 5.39e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 15 31.7 154 -115 0.184 0 0 0.526 Tank initStep - 16 31.7 154 -115 0.178 0.00578 0.031 0.557 Tank msc - 17 31.7 154 -115 0.149 0.0288 0.0895 0.647 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 92, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.7 154 -115 2.39e-06 0 0 0 Tank initStep - 1 1.86e+03 1.47e+03 -1.02e+03 2.39e-06 2.39e-06 2.43e+03 2.43e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 17 31.7 154 -115 0.149 0 0 0.647 Tank initStep - 18 31.7 154 -115 0.145 0.00431 0.0221 0.669 Tank msc - 19 31.8 154 -115 0.125 0.0202 0.0683 0.737 Tank eIoni - 20 31.8 154 -115 0.108 0.0169 0.0566 0.794 Tank eIoni - 21 31.9 154 -115 0.0908 0.017 0.0476 0.841 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 93, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.9 154 -115 3.87e-06 0 0 0 Tank initStep - 1 815 1.3e+03 -1.51e+03 3.87e-06 3.87e-06 1.97e+03 1.97e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 21 31.9 154 -115 0.0908 0 0 0.841 Tank initStep - 22 31.9 154 -115 0.0882 0.00256 0.00959 0.851 Tank msc - 23 31.9 154 -115 0.0648 0.0234 0.0381 0.889 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 95, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.9 154 -115 3.47e-06 0 0 0 Tank initStep - 1 -5e+03 -4.98e+03 610 3.47e-06 0 7.22e+03 7.22e+03 expHall Transportation - 2 -6.07e+03 -1e+04 1.8e+03 3.47e-06 0 5.27e+03 1.25e+04 world Transportation - 3 -7.13e+03 -1.5e+04 2.99e+03 3.47e-06 0 5.25e+03 1.77e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 94, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.9 154 -115 3.3e-06 0 0 0 Tank initStep - 1 5e+03 3.2e+03 4.61e+03 3.3e-06 0 7.5e+03 7.5e+03 expHall Transportation - 2 6.53e+03 8.02e+03 1e+04 3.3e-06 0 7.39e+03 1.49e+04 world Transportation - 3 7.95e+03 1.25e+04 1.5e+04 3.3e-06 0 6.86e+03 2.18e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 23 31.9 154 -115 0.0648 0 0 0.889 Tank initStep - 24 31.9 154 -115 0.0634 0.00135 0.00536 0.894 Tank msc - 25 31.9 154 -115 0.0386 0.0248 0.0277 0.922 Tank eIoni - 26 31.9 154 -115 0.0199 0.0187 0.0185 0.94 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 96, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.9 154 -115 2.69e-06 0 0 0 Tank initStep - 1 -704 -3.66e+03 -126 2.69e-06 2.69e-06 3.88e+03 3.88e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 26 31.9 154 -115 0.0199 0 0 0.94 Tank initStep - 27 31.9 154 -115 0.0195 0.000383 0.00067 0.941 Tank msc - 28 31.9 154 -115 0 0.0195 0.00809 0.949 Tank eIoni - 29 31.9 154 -115 0 0 0 0.949 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 98, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.9 154 -115 2.57e-06 0 0 0 Tank initStep - 1 2.69e+03 2.07e+03 -5e+03 2.57e-06 0 5.88e+03 5.88e+03 expHall Transportation - 2 2.69e+03 2.07e+03 -5e+03 2.57e-06 0 0 5.88e+03 Tank Transportation - 3 5e+03 2.97e+03 -3.33e+03 2.57e-06 0 2.99e+03 8.87e+03 expHall Transportation - 4 5e+03 2.97e+03 -3.33e+03 2.57e-06 0 0 8.87e+03 Tank Transportation - 5 3.96e+03 5e+03 -2.52e+03 2.57e-06 0 2.42e+03 1.13e+04 expHall Transportation - 6 3.96e+03 5e+03 -2.52e+03 2.57e-06 0 0 1.13e+04 Tank Transportation - 7 -3.21e+03 -5e+03 -2.24e+03 2.57e-06 0 1.23e+04 2.36e+04 expHall Transportation - 8 -1e+04 -8.36e+03 235 2.57e-06 0 7.97e+03 3.16e+04 world Transportation - 9 -1.5e+04 -1.08e+04 2.06e+03 2.57e-06 0 5.87e+03 3.74e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 97, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 31.9 154 -115 2.32e-06 0 0 0 Tank initStep - 1 3.78e+03 -5e+03 284 2.32e-06 0 6.38e+03 6.38e+03 expHall Transportation - 2 1e+04 -7.72e+03 2.16e+03 2.32e-06 0 7.05e+03 1.34e+04 world Transportation - 3 1.5e+04 -9.91e+03 3.67e+03 2.32e-06 0 5.66e+03 1.91e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 58, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.954 0.972 0.12 0.511 0 0 0 Tank initStep - 1 -6.04 -33.8 26.3 0.395 1.42e-05 44.1 44.1 Tank compt - 2 -30 -50.5 156 0.34 1.36e-05 133 177 Tank compt - 3 -29.1 -60 167 0.308 1.36e-05 14.1 191 Tank compt - 4 -126 -170 307 0.147 1.42e-05 203 394 Tank compt - 5 -73.2 -152 289 0.0955 1.42e-05 58.6 453 Tank compt - 6 -141 -207 287 0.0762 0.000537 87.1 540 Tank compt - 7 -140 -205 288 0.0639 1.42e-05 2.4 542 Tank compt - 8 -147 -214 296 0.0577 2.92e-05 13.9 556 Tank compt - 9 -166 -206 291 0.0533 1.42e-05 21 577 Tank compt - 10 -165 -206 267 0.0433 1.42e-05 24.2 601 Tank compt - 11 -152 -214 288 0.0386 1.36e-05 25.2 626 Tank compt - 12 -144 -192 277 0.0375 1.42e-05 25.2 652 Tank compt - 13 -144 -165 284 0.035 0.000537 28.1 680 Tank compt - 14 -139 -152 321 0 0.000538 40.1 720 Tank phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -139 -152 321 0.0344 0 0 0 Tank initStep - 1 -139 -152 321 0.0336 0.00078 0.00177 0.00177 Tank msc - 2 -139 -152 321 0.0197 0.014 0.0165 0.0182 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 113, Parent ID = 112 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -139 -152 321 3.55e-06 0 0 0 Tank initStep - 1 528 1.9e+03 5e+03 3.55e-06 0 5.15e+03 5.15e+03 expHall Transportation - 2 810 5.48e+03 1e+04 3.55e-06 0 6.16e+03 1.13e+04 world Transportation - 3 1.09e+03 9.07e+03 1.5e+04 3.55e-06 0 6.16e+03 1.75e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -139 -152 321 0.0197 0 0 0.0182 Tank initStep - 3 -139 -152 321 0.0195 0.000158 0.000654 0.0189 Tank msc - 4 -139 -152 321 0 0.0195 0.00806 0.027 Tank eIoni - 5 -139 -152 321 0 0 0 0.027 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 114, Parent ID = 112 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -139 -152 321 3.1e-06 0 0 0 Tank initStep - 1 -224 327 -519 3.1e-06 3.1e-06 971 971 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -144 -165 284 0.00198 0 0 0 Tank initStep - 1 -144 -165 284 0.00195 3.42e-05 1.25e-05 1.25e-05 Tank msc - 2 -144 -165 284 0 0.00195 0.000151 0.000164 Tank eIoni - 3 -144 -165 284 0 0 0 0.000164 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -144 -192 277 0.00109 0 0 0 Tank initStep - 1 -144 -192 277 0.00109 0 4.74e-06 4.74e-06 Tank msc - 2 -144 -192 277 0 0.00109 5.93e-05 6.4e-05 Tank eIoni - 3 -144 -192 277 0 0 0 6.4e-05 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -152 -214 288 0.00468 0 0 0 Tank initStep - 1 -152 -214 288 0.00447 0.000213 5.28e-05 5.28e-05 Tank msc - 2 -152 -214 288 0 0.00447 0.000609 0.000662 Tank eIoni - 3 -152 -214 288 0 0 0 0.000662 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -165 -206 267 0.00998 0 0 0 Tank initStep - 1 -165 -206 267 0.00791 0.00207 0.000198 0.000198 Tank msc - 2 -165 -206 267 0 0.00791 0.00164 0.00184 Tank eIoni - 3 -165 -206 267 0 0 0 0.00184 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -166 -206 291 0.00443 0 0 0 Tank initStep - 1 -166 -206 291 0.00409 0.000336 4.8e-05 4.8e-05 Tank msc - 2 -166 -206 291 0 0.00409 0.000524 0.000572 Tank eIoni - 3 -166 -206 291 0 0 0 0.000572 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -147 -214 296 0.00619 0 0 0 Tank initStep - 1 -147 -214 296 0.00563 0.000561 8.57e-05 8.57e-05 Tank msc - 2 -147 -214 296 0 0.00563 0.000909 0.000994 Tank eIoni - 3 -147 -214 296 0 0 0 0.000994 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 115, Parent ID = 106 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -147 -214 296 4.06e-06 0 0 0 Tank initStep - 1 -5e+03 1.15e+03 3.41e+03 4.06e-06 0 5.93e+03 5.93e+03 expHall Transportation - 2 -5e+03 1.15e+03 3.41e+03 4.06e-06 0 0 5.93e+03 Tank Transportation - 3 -4.96e+03 1.21e+03 3.55e+03 4.06e-06 4.06e-06 160 6.09e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -140 -205 288 0.0123 0 0 0 Tank initStep - 1 -140 -205 288 0.012 0.000254 0.000284 0.000284 Tank msc - 2 -140 -205 288 0 0.012 0.00342 0.0037 Tank eIoni - 3 -140 -205 288 0 0 0 0.0037 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -141 -207 287 0.0187 0 0 0 Tank initStep - 1 -141 -207 287 0.0181 0.000583 0.0006 0.0006 Tank msc - 2 -141 -207 287 0 0.0181 0.0071 0.0077 Tank eIoni - 3 -141 -207 287 0 0 0 0.0077 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -73.2 -152 289 0.0518 0 0 0 Tank initStep - 1 -73.2 -152 289 0.0478 0.00391 0.00362 0.00362 Tank msc - 2 -73.2 -152 289 0.0158 0.0321 0.0219 0.0255 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 117, Parent ID = 103 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -73.2 -152 289 3.88e-06 0 0 0 Tank initStep - 1 -2.58e+03 5e+03 4.51e+03 3.88e-06 0 7.12e+03 7.12e+03 expHall Transportation - 2 -2.58e+03 5e+03 4.51e+03 3.88e-06 0 0 7.12e+03 Tank Transportation - 3 -2.53e+03 4.31e+03 5e+03 3.88e-06 0 845 7.97e+03 expHall Transportation - 4 -2.53e+03 4.31e+03 5e+03 3.88e-06 0 0 7.97e+03 Tank Transportation - 5 -1.12e+03 -211 -984 3.88e-06 3.88e-06 7.63e+03 1.56e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 116, Parent ID = 103 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -73.2 -152 289 3.72e-06 0 0 0 Tank initStep - 1 41.1 -290 448 3.72e-06 3.72e-06 239 239 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -73.2 -152 289 0.0158 0 0 0.0255 Tank initStep - 3 -73.2 -152 289 0.0153 0.000448 0.000442 0.0259 Tank msc - 4 -73.2 -152 289 0 0.0153 0.00525 0.0312 Tank eIoni - 5 -73.2 -152 289 0 0 0 0.0312 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 119, Parent ID = 103 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -73.2 -152 289 3.45e-06 0 0 0 Tank initStep - 1 4.24e+03 -5e+03 -2e+03 3.45e-06 0 6.89e+03 6.89e+03 expHall Transportation - 2 4.24e+03 -5e+03 -2e+03 3.45e-06 0 0 6.89e+03 Tank Transportation - 3 5e+03 -2.11e+03 -2.98e+03 3.45e-06 0 3.14e+03 1e+04 expHall Transportation - 4 5e+03 -2.11e+03 -2.98e+03 3.45e-06 0 0 1e+04 Tank Transportation - 5 1.24e+03 5e+03 -4.45e+03 3.45e-06 0 8.18e+03 1.82e+04 expHall Transportation - 6 -5.69e+03 7.24e+03 -1e+04 3.45e-06 0 9.16e+03 2.74e+04 world Transportation - 7 -1.19e+04 9.26e+03 -1.5e+04 3.45e-06 0 8.24e+03 3.56e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 118, Parent ID = 103 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -73.2 -152 289 2.03e-06 0 0 0 Tank initStep - 1 -5e+03 3.27e+03 1.85e+03 2.03e-06 0 6.2e+03 6.2e+03 expHall Transportation - 2 -7.41e+03 1e+04 4.09e+03 2.03e-06 0 7.49e+03 1.37e+04 world Transportation - 3 -9.21e+03 1.5e+04 5.76e+03 2.03e-06 0 5.57e+03 1.93e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -126 -170 307 0.161 0 0 0 Tank initStep - 1 -126 -170 307 0.154 0.00673 0.025 0.025 Tank msc - 2 -126 -170 307 0.135 0.0192 0.074 0.099 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 121, Parent ID = 102 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -126 -170 307 3.91e-06 0 0 0 Tank initStep - 1 -2.53e+03 5e+03 -2.73e+03 3.91e-06 0 6.46e+03 6.46e+03 expHall Transportation - 2 -2.53e+03 5e+03 -2.73e+03 3.91e-06 0 0 6.46e+03 Tank Transportation - 3 -2.49e+03 3.73e+03 -4.23e+03 3.91e-06 3.91e-06 1.97e+03 8.43e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 120, Parent ID = 102 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -126 -170 307 2.3e-06 0 0 0 Tank initStep - 1 3.94e+03 -2.08e+03 201 2.3e-06 2.3e-06 4.49e+03 4.49e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -126 -170 307 0.135 0 0 0.099 Tank initStep - 3 -126 -170 307 0.13 0.00518 0.0187 0.118 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 122, Parent ID = 102 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -126 -170 307 3.68e-06 0 0 0 Tank initStep - 1 -5e+03 -1.6e+03 1.32e+03 3.68e-06 0 5.18e+03 5.18e+03 expHall Transportation - 2 -1e+04 -4.67e+03 3.1e+03 3.68e-06 0 6.13e+03 1.13e+04 world Transportation - 3 -1.5e+04 -7.73e+03 4.88e+03 3.68e-06 0 6.13e+03 1.74e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 -126 -170 307 0.13 0 0 0.118 Tank initStep - 4 -126 -170 307 0.125 0.00479 0.0175 0.135 Tank msc - 5 -126 -170 307 0.104 0.021 0.0568 0.192 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 123, Parent ID = 102 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -126 -170 307 2.48e-06 0 0 0 Tank initStep - 1 -1.17e+03 5e+03 -1.01e+03 2.48e-06 0 5.44e+03 5.44e+03 expHall Transportation - 2 -2.77e+03 1e+04 -3e+03 2.48e-06 0 5.61e+03 1.1e+04 world Transportation - 3 -4.36e+03 1.5e+04 -4.99e+03 2.48e-06 0 5.61e+03 1.67e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 -126 -170 307 0.104 0 0 0.192 Tank initStep - 6 -126 -170 307 0.0936 0.0103 0.0121 0.204 Tank msc - 7 -126 -170 307 0.0798 0.0137 0.0406 0.245 Tank eIoni - 8 -126 -170 307 0.0554 0.0245 0.0344 0.279 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 127, Parent ID = 102 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -126 -170 307 3.98e-06 0 0 0 Tank initStep - 1 -49.7 -77.5 163 3.98e-06 3.98e-06 187 187 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 126, Parent ID = 102 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -126 -170 307 2.29e-06 0 0 0 Tank initStep - 1 -5e+03 -469 -2.81e+03 2.29e-06 0 5.79e+03 5.79e+03 expHall Transportation - 2 -5e+03 -469 -2.81e+03 2.29e-06 0 0 5.79e+03 Tank Transportation - 3 -2.31e+03 610 -5e+03 2.29e-06 0 3.63e+03 9.42e+03 expHall Transportation - 4 -2.31e+03 610 -5e+03 2.29e-06 0 0 9.42e+03 Tank Transportation - 5 5e+03 4.42e+03 -2.95e+03 2.29e-06 0 8.5e+03 1.79e+04 expHall Transportation - 6 1e+04 7.55e+03 -819 2.29e-06 0 6.27e+03 2.42e+04 world Transportation - 7 1.5e+04 1.07e+04 1.31e+03 2.29e-06 0 6.27e+03 3.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 125, Parent ID = 102 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -126 -170 307 4.12e-06 0 0 0 Tank initStep - 1 1.68e+03 3.02e+03 -2.43e+03 4.12e-06 4.12e-06 4.57e+03 4.57e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 124, Parent ID = 102 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -126 -170 307 2.69e-06 0 0 0 Tank initStep - 1 546 -5e+03 1.41e+03 2.69e-06 0 5e+03 5e+03 expHall Transportation - 2 546 -5e+03 1.41e+03 2.69e-06 0 0 5e+03 Tank Transportation - 3 -5e+03 -2.48e+03 719 2.69e-06 0 6.13e+03 1.11e+04 expHall Transportation - 4 -1e+04 3.6e+03 -601 2.69e-06 0 7.98e+03 1.91e+04 world Transportation - 5 -1.5e+04 9.67e+03 -1.92e+03 2.69e-06 0 7.98e+03 2.71e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 -126 -170 307 0.0554 0 0 0.279 Tank initStep - 9 -126 -170 307 0.0542 0.00121 0.00408 0.283 Tank msc - 10 -126 -170 307 0.0411 0.0131 0.0242 0.307 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 128, Parent ID = 102 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -126 -170 307 3.19e-06 0 0 0 Tank initStep - 1 -5e+03 2.38e+03 2.14e+03 3.19e-06 0 5.8e+03 5.8e+03 expHall Transportation - 2 -5e+03 2.38e+03 2.14e+03 3.19e-06 0 0 5.8e+03 Tank Transportation - 3 -1.02e+03 3.78e+03 5e+03 3.19e-06 0 5.1e+03 1.09e+04 expHall Transportation - 4 -1.02e+03 3.78e+03 5e+03 3.19e-06 0 0 1.09e+04 Tank Transportation - 5 5e+03 4.12e+03 2.42e+03 3.19e-06 0 6.55e+03 1.75e+04 expHall Transportation - 6 5e+03 4.12e+03 2.42e+03 3.19e-06 0 0 1.75e+04 Tank Transportation - 7 4.08e+03 5e+03 -89.3 3.19e-06 0 2.82e+03 2.03e+04 expHall Transportation - 8 4.08e+03 5e+03 -89.3 3.19e-06 0 0 2.03e+04 Tank Transportation - 9 1.81e+03 3.07e+03 -5e+03 3.19e-06 0 5.74e+03 2.6e+04 expHall Transportation - 10 1.81e+03 3.07e+03 -5e+03 3.19e-06 0 0 2.6e+04 Tank Transportation - 11 -1.03e+03 -3.29e+03 1.75e+03 3.19e-06 3.19e-06 9.71e+03 3.57e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 10 -126 -170 307 0.0411 0 0 0.307 Tank initStep - 11 -126 -170 307 0.0378 0.00326 0.00241 0.31 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 129, Parent ID = 102 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -126 -170 307 3.56e-06 0 0 0 Tank initStep - 1 720 1.53e+03 2.03e+03 3.56e-06 3.56e-06 2.56e+03 2.56e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 11 -126 -170 307 0.0378 0 0 0.31 Tank initStep - 12 -126 -170 307 0.0368 0.000992 0.00208 0.312 Tank msc - 13 -126 -170 307 0.0166 0.0202 0.0178 0.33 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 130, Parent ID = 102 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -126 -170 307 4.1e-06 0 0 0 Tank initStep - 1 521 887 -5e+03 4.1e-06 0 5.45e+03 5.45e+03 expHall Transportation - 2 -949 3.03e+03 -1e+04 4.1e-06 0 5.63e+03 1.11e+04 world Transportation - 3 -2.42e+03 5.17e+03 -1.5e+04 4.1e-06 0 5.63e+03 1.67e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 13 -126 -170 307 0.0166 0 0 0.33 Tank initStep - 14 -126 -170 307 0.0161 0.000496 0.000485 0.33 Tank msc - 15 -126 -170 307 0 0.0161 0.00574 0.336 Tank eIoni - 16 -126 -170 307 0 0 0 0.336 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -29.1 -60 167 0.0322 0 0 0 Tank initStep - 1 -29.1 -60 167 0.0313 0.000875 0.00157 0.00157 Tank msc - 2 -29.1 -60 167 0.0154 0.0159 0.0154 0.017 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 131, Parent ID = 101 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -29.1 -60 167 3.67e-06 0 0 0 Tank initStep - 1 237 2e+03 30.4 3.67e-06 3.67e-06 2.08e+03 2.08e+03 Bubble Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -29.1 -60 167 0.0154 0 0 0.017 Tank initStep - 3 -29.1 -60 167 0.0151 0.000332 0.000424 0.0174 Tank msc - 4 -29.1 -60 167 0 0.0151 0.00511 0.0225 Tank eIoni - 5 -29.1 -60 167 0 0 0 0.0225 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30 -50.5 156 0.0547 0 0 0 Tank initStep - 1 -30 -50.5 156 0.0535 0.00111 0.00398 0.00398 Tank msc - 2 -30 -50.5 156 0.0314 0.0221 0.0239 0.0279 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 133, Parent ID = 100 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30 -50.5 156 2.26e-06 0 0 0 Tank initStep - 1 -641 -5e+03 -483 2.26e-06 0 5.03e+03 5.03e+03 expHall Transportation - 2 -2.03e+03 -1e+04 -3.85e+03 2.26e-06 0 6.19e+03 1.12e+04 world Transportation - 3 -3.41e+03 -1.5e+04 -7.22e+03 2.26e-06 0 6.19e+03 1.74e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 132, Parent ID = 100 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -30 -50.5 156 2.41e-06 0 0 0 Tank initStep - 1 2.2e+03 410 -5e+03 2.41e-06 0 5.64e+03 5.64e+03 expHall Transportation - 2 2.2e+03 410 -5e+03 2.41e-06 0 0 5.64e+03 Tank Transportation - 3 3.7e+03 5e+03 -1.23e+03 2.41e-06 0 6.13e+03 1.18e+04 expHall Transportation - 4 3.68e+03 1e+04 4.5e+03 2.41e-06 0 7.61e+03 1.94e+04 world Transportation - 5 3.66e+03 1.5e+04 1.02e+04 2.41e-06 0 7.61e+03 2.7e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -30 -50.5 156 0.0314 0 0 0.0279 Tank initStep - 3 -30 -50.5 156 0.0282 0.00326 0.0015 0.0294 Tank msc - 4 -30 -50.5 156 0.00911 0.0191 0.0139 0.0434 Tank eIoni - 5 -30 -50.5 156 0 0.00911 0.0021 0.0455 Tank eIoni - 6 -30 -50.5 156 0 0 0 0.0455 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.04 -33.8 26.3 0.116 0 0 0 Tank initStep - 1 -6.04 -33.8 26.3 0.103 0.0133 0.0145 0.0145 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 134, Parent ID = 99 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.04 -33.8 26.3 4.02e-06 0 0 0 Tank initStep - 1 183 -2.8e+03 -2.46e+03 4.02e-06 4.02e-06 3.72e+03 3.72e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 -6.04 -33.8 26.3 0.103 0 0 0.0145 Tank initStep - 2 -6.04 -33.8 26.3 0.0985 0.00425 0.0118 0.0264 Tank msc - 3 -6.03 -33.8 26.3 0.0782 0.0202 0.043 0.0693 Tank eIoni - 4 -6.02 -33.8 26.3 0.0642 0.014 0.0337 0.103 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 136, Parent ID = 99 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.02 -33.8 26.3 3.7e-06 0 0 0 Tank initStep - 1 5e+03 4.48e+03 1.05e+03 3.7e-06 0 6.82e+03 6.82e+03 expHall Transportation - 2 5.95e+03 1e+04 2.09e+03 3.7e-06 0 5.69e+03 1.25e+04 world Transportation - 3 6.82e+03 1.5e+04 3.02e+03 3.7e-06 0 5.16e+03 1.77e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 135, Parent ID = 99 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.03 -33.8 26.3 2.13e-06 0 0 0 Tank initStep - 1 -575 790 -624 2.13e-06 2.13e-06 1.19e+03 1.19e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -6.02 -33.8 26.3 0.0642 0 0 0.103 Tank initStep - 5 -6.02 -33.8 26.3 0.057 0.00718 0.00527 0.108 Tank msc - 6 -6.03 -33.8 26.2 0.0349 0.0221 0.0252 0.134 Tank eIoni - 7 -6.03 -33.8 26.2 0.0157 0.0192 0.017 0.151 Tank eIoni - 8 -6.03 -33.8 26.2 0 0.0157 0.00547 0.156 Tank eIoni - 9 -6.03 -33.8 26.2 0 0 0 0.156 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 137, Parent ID = 99 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.03 -33.8 26.2 3.84e-06 0 0 0 Tank initStep - 1 -972 84.2 -603 3.84e-06 3.84e-06 1.16e+03 1.16e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 57, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.955 0.971 0.118 2.43e-06 0 0 0 Tank initStep - 1 2.35e+03 -792 5e+03 2.43e-06 0 5.58e+03 5.58e+03 expHall Transportation - 2 2.35e+03 -792 5e+03 2.43e-06 0 0 5.58e+03 Tank Transportation - 3 5e+03 -1.29e+03 3e+03 2.43e-06 0 3.36e+03 8.94e+03 expHall Transportation - 4 5e+03 -1.29e+03 3e+03 2.43e-06 0 0 8.94e+03 Tank Transportation - 5 118 -215 -549 2.43e-06 2.43e-06 6.13e+03 1.51e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 56, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.956 0.971 0.117 3.16e-06 0 0 0 Tank initStep - 1 -2.66e+03 4.7e+03 -2.78e+03 3.16e-06 3.16e-06 6.07e+03 6.07e+03 Tank OpAbsorption + 0 1.11 0.392 -0.4 3.5e-06 0 0 0 Tank initStep + 1 4.82e+03 547 5e+03 3.5e-06 0 6.96e+03 6.96e+03 expHall Transportation + 2 4.82e+03 547 5e+03 3.5e-06 0 0 6.96e+03 Tank Transportation + 3 5e+03 528 4.84e+03 3.5e-06 0 246 7.21e+03 expHall Transportation + 4 5e+03 528 4.84e+03 3.5e-06 0 0 7.21e+03 Tank Transportation + 5 1.67e+03 1.74e+03 2.17e+03 3.5e-06 0 4.44e+03 1.16e+04 Tank OpRayleigh + 6 -632 5e+03 -336 3.5e-06 0 4.71e+03 1.64e+04 expHall Transportation + 7 -632 5e+03 -336 3.5e-06 0 0 1.64e+04 Tank Transportation + 8 -3.83e+03 -5e+03 -1.43e+03 3.5e-06 0 1.06e+04 2.69e+04 expHall Transportation + 9 -3.83e+03 -5e+03 -1.43e+03 3.5e-06 0 0 2.69e+04 Tank Transportation + 10 -5e+03 -4.06e+03 -6.57 3.5e-06 0 2.07e+03 2.9e+04 expHall Transportation + 11 -5e+03 -4.06e+03 -6.57 3.5e-06 0 0 2.9e+04 Tank Transportation + 12 -232 -1.83e+03 3.75e+03 3.5e-06 3.5e-06 6.47e+03 3.54e+04 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 @@ -8325,5541 +5959,7862 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0 0 0 0.5 0 0 0 Tank initStep - 1 0.138 -0.00546 0.0158 0.477 0.0233 0.139 0.139 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0923 -0.00367 0.0106 3.11e-06 0 0 0 Tank initStep - 1 -5e+03 -454 -1.29e+03 3.11e-06 0 5.18e+03 5.18e+03 expHall Transportation - 2 -5e+03 -454 -1.29e+03 3.11e-06 0 0 5.18e+03 Tank Transportation - 3 -4.95e+03 -542 -1.43e+03 3.11e-06 3.11e-06 174 5.36e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.132 -0.00524 0.0152 2.59e-06 0 0 0 Tank initStep - 1 5e+03 3.87e+03 2.38e+03 2.59e-06 0 6.75e+03 6.75e+03 expHall Transportation - 2 5e+03 3.87e+03 2.38e+03 2.59e-06 0 0 6.75e+03 Tank Transportation - 3 3.15e+03 5e+03 2.38e+03 2.59e-06 0 2.17e+03 8.92e+03 expHall Transportation - 4 3.15e+03 5e+03 2.38e+03 2.59e-06 0 0 8.92e+03 Tank Transportation - 5 -5e+03 1.23e+03 3.88e+03 2.59e-06 0 9.1e+03 1.8e+04 expHall Transportation - 6 -5e+03 1.23e+03 3.88e+03 2.59e-06 0 0 1.8e+04 Tank Transportation - 7 -3.33e+03 79.7 5e+03 2.59e-06 0 2.32e+03 2.03e+04 expHall Transportation - 8 -3.33e+03 79.7 5e+03 2.59e-06 0 0 2.03e+04 Tank Transportation - 9 5e+03 -4.31e+03 -4.9e+03 2.59e-06 0 1.37e+04 3.4e+04 expHall Transportation - 10 5e+03 -4.31e+03 -4.9e+03 2.59e-06 0 0 3.4e+04 Tank Transportation - 11 4.94e+03 -4.32e+03 -5e+03 2.59e-06 0 121 3.41e+04 expHall Transportation - 12 4.94e+03 -4.32e+03 -5e+03 2.59e-06 0 0 3.41e+04 Tank Transportation - 13 -2.74e+03 5e+03 -2.17e+03 2.59e-06 0 1.24e+04 4.65e+04 expHall Transportation - 14 -2.74e+03 5e+03 -2.17e+03 2.59e-06 0 0 4.65e+04 Tank Transportation - 15 -5e+03 4.56e+03 -2.71e+03 2.59e-06 0 2.36e+03 4.89e+04 expHall Transportation - 16 -1e+04 2.58e+03 -5.39e+03 2.59e-06 0 6.01e+03 5.49e+04 world Transportation - 17 -1.5e+04 593 -8.08e+03 2.59e-06 0 6.01e+03 6.09e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.112 -0.00446 0.0129 3.7e-06 0 0 0 Tank initStep - 1 5e+03 2.77e+03 544 3.7e-06 0 5.74e+03 5.74e+03 expHall Transportation - 2 1e+04 6.4e+03 1.51e+03 3.7e-06 0 6.26e+03 1.2e+04 world Transportation - 3 1.5e+04 1e+04 2.48e+03 3.7e-06 0 6.26e+03 1.83e+04 OutOfWorld Transportation + 1 0.136 0.0021 0.0251 0.479 0.0206 0.139 0.139 Tank msc ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0264 -0.00105 0.00304 2.88e-06 0 0 0 Tank initStep - 1 5e+03 -1.49e+03 3.55e+03 2.88e-06 0 6.31e+03 6.31e+03 expHall Transportation - 2 5e+03 -1.49e+03 3.55e+03 2.88e-06 0 0 6.31e+03 Tank Transportation - 3 3.77e+03 -556 5e+03 2.88e-06 0 2.12e+03 8.43e+03 expHall Transportation - 4 3.77e+03 -556 5e+03 2.88e-06 0 0 8.43e+03 Tank Transportation - 5 709 626 2.61e+03 2.88e-06 0 4.06e+03 1.25e+04 Tank OpRayleigh - 6 2.28e+03 -1.7e+03 5e+03 2.88e-06 0 3.69e+03 1.62e+04 expHall Transportation - 7 2.28e+03 -1.7e+03 5e+03 2.88e-06 0 0 1.62e+04 Tank Transportation - 8 3.73e+03 -5e+03 4.45e+03 2.88e-06 0 3.65e+03 1.98e+04 expHall Transportation - 9 3.73e+03 -5e+03 4.45e+03 2.88e-06 0 0 1.98e+04 Tank Transportation - 10 5e+03 -4.07e+03 4.12e+03 2.88e-06 0 1.61e+03 2.14e+04 expHall Transportation - 11 7.09e+03 1e+04 -963 2.88e-06 0 1.51e+04 3.65e+04 world Transportation - 12 7.84e+03 1.5e+04 -2.77e+03 2.88e-06 0 5.37e+03 4.19e+04 OutOfWorld Transportation + 0 0.00973 0.00015 0.0018 3.79e-06 0 0 0 Tank initStep + 1 -1.88e+03 -494 1.55e+03 3.79e-06 3.79e-06 2.48e+03 2.48e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.119 -0.00471 0.0137 3.5e-06 0 0 0 Tank initStep - 1 5e+03 1.77e+03 3.04e+03 3.5e-06 0 6.12e+03 6.12e+03 expHall Transportation - 2 7.35e+03 3.77e+03 1e+04 3.5e-06 0 7.61e+03 1.37e+04 world Transportation - 3 9.04e+03 5.2e+03 1.5e+04 3.5e-06 0 5.47e+03 1.92e+04 OutOfWorld Transportation + 0 0.0401 0.000619 0.00742 2.33e-06 0 0 0 Tank initStep + 1 4.63e+03 393 -1.65e+03 2.33e-06 2.33e-06 4.93e+03 4.93e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 0.138 -0.00546 0.0158 0.477 0 0 0.139 Tank initStep - 2 0.258 -0.0357 0.0297 0.46 0.0163 0.127 0.266 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.251 -0.034 0.0289 3.48e-06 0 0 0 Tank initStep - 1 2.53e+03 -5e+03 45.3 3.48e-06 0 5.6e+03 5.6e+03 expHall Transportation - 2 2.53e+03 -5e+03 45.3 3.48e-06 0 0 5.6e+03 Tank Transportation - 3 5e+03 -2.92e+03 599 3.48e-06 0 3.28e+03 8.88e+03 expHall Transportation - 4 1e+04 5.1e+03 4.33e+03 3.48e-06 0 1.02e+04 1.9e+04 world Transportation - 5 1.5e+04 1.31e+04 8.06e+03 3.48e-06 0 1.02e+04 2.92e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.235 -0.0298 0.027 2.16e-06 0 0 0 Tank initStep - 1 251 5e+03 2.15e+03 2.16e-06 0 5.45e+03 5.45e+03 expHall Transportation - 2 251 5e+03 2.15e+03 2.16e-06 0 0 5.45e+03 Tank Transportation - 3 -242 2.57e+03 5e+03 2.16e-06 0 3.78e+03 9.23e+03 expHall Transportation - 4 -242 2.57e+03 5e+03 2.16e-06 0 0 9.23e+03 Tank Transportation - 5 -936 50 1.33e+03 2.16e-06 2.16e-06 4.51e+03 1.37e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.245 -0.0323 0.0282 4.02e-06 0 0 0 Tank initStep - 1 -875 774 -634 4.02e-06 4.02e-06 1.33e+03 1.33e+03 Tank OpAbsorption + 1 0.136 0.0021 0.0251 0.479 0 0 0.139 Tank initStep + 2 0.227 -0.013 0.112 0.46 0.0197 0.128 0.268 Tank Cerenkov ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.226 -0.0277 0.0261 2.68e-06 0 0 0 Tank initStep - 1 5e+03 1.07e+03 2.1e+03 2.68e-06 0 5.53e+03 5.53e+03 expHall Transportation - 2 5e+03 1.07e+03 2.1e+03 2.68e-06 0 0 5.53e+03 Tank Transportation - 3 827 5e+03 4.36e+03 2.68e-06 0 6.16e+03 1.17e+04 expHall Transportation - 4 827 5e+03 4.36e+03 2.68e-06 0 0 1.17e+04 Tank Transportation - 5 -842 4.15e+03 5e+03 2.68e-06 0 1.98e+03 1.37e+04 expHall Transportation - 6 -842 4.15e+03 5e+03 2.68e-06 0 0 1.37e+04 Tank Transportation - 7 -1.51e+03 4.23e+03 4.41e+03 2.68e-06 2.68e-06 891 1.46e+04 Tank OpAbsorption + 0 0.164 -0.0025 0.0514 2.2e-06 0 0 0 Tank initStep + 1 4.68e+03 2.83e+03 5e+03 2.2e-06 0 7.41e+03 7.41e+03 expHall Transportation + 2 4.68e+03 2.83e+03 5e+03 2.2e-06 0 0 7.41e+03 Tank Transportation + 3 5e+03 2.89e+03 4.7e+03 2.2e-06 0 444 7.85e+03 expHall Transportation + 4 5e+03 2.89e+03 4.7e+03 2.2e-06 0 0 7.85e+03 Tank Transportation + 5 4.86e+03 3.09e+03 3.29e+03 2.2e-06 2.2e-06 1.43e+03 9.28e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.184 -0.0171 0.0212 2.14e-06 0 0 0 Tank initStep - 1 3.33e+03 -744 2.45e+03 2.14e-06 2.14e-06 4.2e+03 4.2e+03 Tank OpAbsorption + 0 0.215 -0.011 0.1 2.27e-06 0 0 0 Tank initStep + 1 1.11e+03 333 493 2.27e-06 2.27e-06 1.26e+03 1.26e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.149 -0.00842 0.0172 2.19e-06 0 0 0 Tank initStep - 1 5e+03 1.39e+03 833 2.19e-06 0 5.26e+03 5.26e+03 expHall Transportation - 2 5e+03 1.39e+03 833 2.19e-06 0 0 5.26e+03 Tank Transportation - 3 -548 4.92e+03 4.74e+03 2.19e-06 2.19e-06 7.65e+03 1.29e+04 Tank OpAbsorption + 0 0.187 -0.00634 0.0734 2.67e-06 0 0 0 Tank initStep + 1 2.2e+03 -2.86e+03 5e+03 2.67e-06 0 6.16e+03 6.16e+03 expHall Transportation + 2 2.2e+03 -2.86e+03 5e+03 2.67e-06 0 0 6.16e+03 Tank Transportation + 3 5e+03 -3.16e+03 3.36e+03 2.67e-06 0 3.26e+03 9.42e+03 expHall Transportation + 4 1e+04 -4.67e+03 -4.94e+03 2.67e-06 0 9.81e+03 1.92e+04 world Transportation + 5 1.5e+04 -6.17e+03 -1.32e+04 2.67e-06 0 9.81e+03 2.9e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.183 -0.00579 0.0702 2.78e-06 0 0 0 Tank initStep + 1 3.29e+03 2.2e+03 5e+03 2.78e-06 0 6.38e+03 6.38e+03 expHall Transportation + 2 3.29e+03 2.2e+03 5e+03 2.78e-06 0 0 6.38e+03 Tank Transportation + 3 5e+03 3.23e+03 4.1e+03 2.78e-06 0 2.19e+03 8.57e+03 expHall Transportation + 4 5e+03 3.23e+03 4.1e+03 2.78e-06 0 0 8.57e+03 Tank Transportation + 5 3.16e+03 5e+03 4.27e+03 2.78e-06 0 2.55e+03 1.11e+04 expHall Transportation + 6 3.16e+03 5e+03 4.27e+03 2.78e-06 0 0 1.11e+04 Tank Transportation + 7 2.03e+03 3.73e+03 5e+03 2.78e-06 0 1.85e+03 1.3e+04 expHall Transportation + 8 2.03e+03 3.73e+03 5e+03 2.78e-06 0 0 1.3e+04 Tank Transportation + 9 -4.06e+03 -5e+03 4.09e+03 2.78e-06 0 1.07e+04 2.37e+04 expHall Transportation + 10 -8.44e+03 -1e+04 4.62e+03 2.78e-06 0 6.67e+03 3.03e+04 world Transportation + 11 -1.28e+04 -1.5e+04 5.15e+03 2.78e-06 0 6.67e+03 3.7e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.177 -0.00474 0.0643 3.05e-06 0 0 0 Tank initStep + 1 3.26e+03 -4.08e+03 5e+03 3.05e-06 0 7.23e+03 7.23e+03 expHall Transportation + 2 3.26e+03 -4.08e+03 5e+03 3.05e-06 0 0 7.23e+03 Tank Transportation + 3 4.24e+03 -5e+03 2.82e+03 3.05e-06 0 2.56e+03 9.79e+03 expHall Transportation + 4 4.24e+03 -5e+03 2.82e+03 3.05e-06 0 0 9.79e+03 Tank Transportation + 5 5e+03 -4.14e+03 1.74e+03 3.05e-06 0 1.57e+03 1.14e+04 expHall Transportation + 6 5e+03 -4.14e+03 1.74e+03 3.05e-06 0 0 1.14e+04 Tank Transportation + 7 -5e+03 3.93e+03 -4.42e+03 3.05e-06 0 1.43e+04 2.56e+04 expHall Transportation + 8 -5e+03 3.93e+03 -4.42e+03 3.05e-06 0 0 2.56e+04 Tank Transportation + 9 -1.7e+03 4.67e+03 -5e+03 3.05e-06 0 3.43e+03 2.9e+04 expHall Transportation + 10 -1.7e+03 4.67e+03 -5e+03 3.05e-06 0 0 2.9e+04 Tank Transportation + 11 -946 5e+03 -4.17e+03 3.05e-06 0 1.17e+03 3.02e+04 expHall Transportation + 12 -946 5e+03 -4.17e+03 3.05e-06 0 0 3.02e+04 Tank Transportation + 13 3.53e+03 -5e+03 3.79e+03 3.05e-06 0 1.35e+04 4.38e+04 expHall Transportation + 14 3.53e+03 -5e+03 3.79e+03 3.05e-06 0 0 4.38e+04 Tank Transportation + 15 4.17e+03 -4.43e+03 5e+03 3.05e-06 0 1.48e+03 4.52e+04 expHall Transportation + 16 4.17e+03 -4.43e+03 5e+03 3.05e-06 0 0 4.52e+04 Tank Transportation + 17 5e+03 -4.25e+03 4.61e+03 3.05e-06 0 937 4.62e+04 expHall Transportation + 18 1e+04 -3.26e+03 2.65e+03 3.05e-06 0 5.46e+03 5.16e+04 world Transportation + 19 1.5e+04 -2.28e+03 698 3.05e-06 0 5.46e+03 5.71e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.16 -0.0019 0.048 2.91e-06 0 0 0 Tank initStep + 1 3.68e+03 -4.42e+03 5e+03 2.91e-06 0 7.62e+03 7.62e+03 expHall Transportation + 2 5.45e+03 -1e+04 6.21e+03 2.91e-06 0 5.97e+03 1.36e+04 world Transportation + 3 7.03e+03 -1.5e+04 7.29e+03 2.91e-06 0 5.36e+03 1.9e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 0.258 -0.0357 0.0297 0.46 0 0 0.266 Tank initStep - 3 0.348 -0.109 0.0393 0.441 0.0198 0.118 0.385 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.32 -0.0861 0.0363 2.24e-06 0 0 0 Tank initStep - 1 -474 2e+03 -375 2.24e-06 0 2.09e+03 2.09e+03 Bubble Transportation + 2 0.227 -0.013 0.112 0.46 0 0 0.268 Tank initStep + 3 0.29 -0.00607 0.208 0.438 0.0214 0.118 0.386 Tank Cerenkov ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.272 -0.047 0.0312 3.89e-06 0 0 0 Tank initStep - 1 3.01e+03 -500 -76.8 3.89e-06 0 3.05e+03 3.05e+03 Tank OpRayleigh - 2 2.6e+03 -3.97e+03 -5e+03 3.89e-06 0 6.04e+03 9.09e+03 expHall Transportation - 3 2.6e+03 -3.97e+03 -5e+03 3.89e-06 0 0 9.09e+03 Tank Transportation - 4 2.58e+03 -3.98e+03 -4.99e+03 3.89e-06 3.89e-06 24.2 9.11e+03 Tank OpAbsorption + 0 0.243 -0.0113 0.136 3.26e-06 0 0 0 Tank initStep + 1 716 -1.08e+03 5e+03 3.26e-06 0 5.16e+03 5.16e+03 expHall Transportation + 2 1.73e+03 -4.37e+03 1e+04 3.26e-06 0 6.07e+03 1.12e+04 world Transportation + 3 2.74e+03 -7.67e+03 1.5e+04 3.26e-06 0 6.07e+03 1.73e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.321 -0.0869 0.0364 3.97e-06 0 0 0 Tank initStep - 1 4.59e+03 -5e+03 2.72e+03 3.97e-06 0 7.31e+03 7.31e+03 expHall Transportation - 2 1e+04 -6.47e+03 4.73e+03 3.97e-06 0 5.96e+03 1.33e+04 world Transportation - 3 1.5e+04 -7.83e+03 6.59e+03 3.97e-06 0 5.5e+03 1.88e+04 OutOfWorld Transportation + 0 0.282 -0.00703 0.195 2.84e-06 0 0 0 Tank initStep + 1 1.01e+03 2.22e+03 5e+03 2.84e-06 0 5.56e+03 5.56e+03 expHall Transportation + 2 2.98e+03 6.07e+03 1e+04 2.84e-06 0 6.62e+03 1.22e+04 world Transportation + 3 4.96e+03 9.93e+03 1.5e+04 2.84e-06 0 6.62e+03 1.88e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.245 -0.011 0.14 3.11e-06 0 0 0 Tank initStep + 1 3.51e+03 3.92e+03 5e+03 3.11e-06 0 7.26e+03 7.26e+03 expHall Transportation + 2 3.51e+03 3.92e+03 5e+03 3.11e-06 0 0 7.26e+03 Tank Transportation + 3 4.47e+03 5e+03 4.24e+03 3.11e-06 0 1.64e+03 8.89e+03 expHall Transportation + 4 4.47e+03 5e+03 4.24e+03 3.11e-06 0 0 8.89e+03 Tank Transportation + 5 5e+03 2.7e+03 1.87e+03 3.11e-06 0 3.35e+03 1.22e+04 expHall Transportation + 6 5e+03 2.7e+03 1.87e+03 3.11e-06 0 0 1.22e+04 Tank Transportation + 7 328 -2.8e+03 -5e+03 3.11e-06 0 9.96e+03 2.22e+04 expHall Transportation + 8 328 -2.8e+03 -5e+03 3.11e-06 0 0 2.22e+04 Tank Transportation + 9 -449 -3.29e+03 -3.44e+03 3.11e-06 3.11e-06 1.81e+03 2.4e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.268 -0.00856 0.174 2.06e-06 0 0 0 Tank initStep + 1 1.84e+03 -713 1.38e+03 2.06e-06 2.06e-06 2.4e+03 2.4e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.263 -0.00901 0.167 2.68e-06 0 0 0 Tank initStep + 1 3.96e+03 -3e+03 5e+03 2.68e-06 0 7.05e+03 7.05e+03 expHall Transportation + 2 3.96e+03 -3e+03 5e+03 2.68e-06 0 0 7.05e+03 Tank Transportation + 3 5e+03 -4.08e+03 4.8e+03 2.68e-06 0 1.51e+03 8.56e+03 expHall Transportation + 4 5e+03 -4.08e+03 4.8e+03 2.68e-06 0 0 8.56e+03 Tank Transportation + 5 3.81e+03 -4.58e+03 5e+03 2.68e-06 0 1.31e+03 9.87e+03 expHall Transportation + 6 3.81e+03 -4.58e+03 5e+03 2.68e-06 0 0 9.87e+03 Tank Transportation + 7 3.27e+03 -5e+03 4.82e+03 2.68e-06 0 704 1.06e+04 expHall Transportation + 8 3.27e+03 -5e+03 4.82e+03 2.68e-06 0 0 1.06e+04 Tank Transportation + 9 3.03e+03 -4.91e+03 5e+03 2.68e-06 0 311 1.09e+04 expHall Transportation + 10 3.03e+03 -4.91e+03 5e+03 2.68e-06 0 0 1.09e+04 Tank Transportation + 11 -5e+03 -3.78e+03 2.27e+03 2.68e-06 0 8.56e+03 1.94e+04 expHall Transportation + 12 -1e+04 -2.37e+03 -905 2.68e-06 0 6.09e+03 2.55e+04 world Transportation + 13 -1.5e+04 -970 -4.08e+03 2.68e-06 0 6.09e+03 3.16e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 0.348 -0.109 0.0393 0.441 0 0 0.385 Tank initStep - 4 0.42 -0.189 0.041 0.426 0.0149 0.108 0.493 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.418 -0.186 0.041 3.53e-06 0 0 0 Tank initStep - 1 -265 2e+03 209 3.53e-06 0 2.03e+03 2.03e+03 Bubble Transportation - 2 -448 3e+03 353 3.53e-06 0 1.03e+03 3.06e+03 Tank Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 0.42 -0.189 0.041 0.426 0 0 0.493 Tank initStep - 5 0.493 -0.254 0.0639 0.408 0.0177 0.101 0.594 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.433 -0.201 0.0451 2.5e-06 0 0 0 Tank initStep - 1 1.94e+03 -1.04e+03 1.71e+03 2.5e-06 0 2.79e+03 2.79e+03 Tank OpRayleigh - 2 5e+03 642 -3.13e+03 2.5e-06 0 5.96e+03 8.75e+03 expHall Transportation - 3 5e+03 642 -3.13e+03 2.5e-06 0 0 8.75e+03 Tank Transportation - 4 4.15e+03 -2.55e+03 -5e+03 2.5e-06 0 3.79e+03 1.25e+04 expHall Transportation - 5 4.15e+03 -2.55e+03 -5e+03 2.5e-06 0 0 1.25e+04 Tank Transportation - 6 3.54e+03 -5e+03 -3.59e+03 2.5e-06 0 2.9e+03 1.54e+04 expHall Transportation - 7 2.84e+03 -1e+04 8.11e+03 2.5e-06 0 1.27e+04 2.82e+04 world Transportation - 8 2.43e+03 -1.29e+04 1.5e+04 2.5e-06 0 7.51e+03 3.57e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.478 -0.24 0.0592 2.2e-06 0 0 0 Tank initStep - 1 4.77e+03 -1.17e+03 1.32e+03 2.2e-06 2.2e-06 5.09e+03 5.09e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.472 -0.235 0.0573 2.4e-06 0 0 0 Tank initStep - 1 5e+03 -1.23e+03 1.06e+03 2.4e-06 0 5.26e+03 5.26e+03 expHall Transportation - 2 1e+04 -3.34e+03 3.07e+03 2.4e-06 0 5.79e+03 1.1e+04 world Transportation - 3 1.5e+04 -5.46e+03 5.08e+03 2.4e-06 0 5.79e+03 1.68e+04 OutOfWorld Transportation + 3 0.29 -0.00607 0.208 0.438 0 0 0.386 Tank initStep + 4 0.321 0.0015 0.31 0.419 0.0196 0.107 0.493 Tank Cerenkov ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.49 -0.251 0.063 2.81e-06 0 0 0 Tank initStep - 1 1.12e+03 -3.1e+03 872 2.81e-06 2.81e-06 3.41e+03 3.41e+03 Tank OpAbsorption + 0 0.308 -0.00175 0.267 2.41e-06 0 0 0 Tank initStep + 1 -3e+03 -160 2.03e+03 2.41e-06 2.41e-06 3.63e+03 3.63e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.308 -0.00184 0.265 3.66e-06 0 0 0 Tank initStep + 1 -760 1.65e+03 5e+03 3.66e-06 0 5.32e+03 5.32e+03 expHall Transportation + 2 -942 4.35e+03 1e+04 3.66e-06 0 5.68e+03 1.1e+04 world Transportation + 3 -1.12e+03 7.05e+03 1.5e+04 3.66e-06 0 5.68e+03 1.67e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.296 -0.00465 0.228 3.92e-06 0 0 0 Tank initStep + 1 2.48e+03 3.41e+03 5e+03 3.92e-06 0 6.54e+03 6.54e+03 expHall Transportation + 2 2.48e+03 3.41e+03 5e+03 3.92e-06 0 0 6.54e+03 Tank Transportation + 3 3.31e+03 5e+03 2.93e+03 3.92e-06 0 2.74e+03 9.28e+03 expHall Transportation + 4 3.31e+03 5e+03 2.93e+03 3.92e-06 0 0 9.28e+03 Tank Transportation + 5 5e+03 3.27e+03 1.59e+03 3.92e-06 0 2.76e+03 1.2e+04 expHall Transportation + 6 5e+03 3.27e+03 1.59e+03 3.92e-06 0 0 1.2e+04 Tank Transportation + 7 -1.06e+03 -2.07e+03 -2.75e+03 3.92e-06 3.92e-06 9.17e+03 2.12e+04 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 0.493 -0.254 0.0639 0.408 0 0 0.594 Tank initStep - 6 0.568 -0.306 0.0797 0.394 0.0142 0.0927 0.686 Tank Cerenkov + 4 0.321 0.0015 0.31 0.419 0 0 0.493 Tank initStep + 5 0.334 -6.33e-05 0.407 0.403 0.0152 0.0976 0.59 Tank Cerenkov + 6 0.337 0.000971 0.495 0.388 0.0153 0.0907 0.681 Tank Cerenkov ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 +* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.503 -0.26 0.066 3.35e-06 0 0 0 Tank initStep - 1 504 -826 868 3.35e-06 3.35e-06 1.3e+03 1.3e+03 Tank OpAbsorption + 0 0.335 3.03e-05 0.415 2.55e-06 0 0 0 Tank initStep + 1 -2.04e+03 1.16e+03 5e+03 2.55e-06 0 5.52e+03 5.52e+03 expHall Transportation + 2 -5.85e+03 3.91e+03 1e+04 2.55e-06 0 6.86e+03 1.24e+04 world Transportation + 3 -9.65e+03 6.67e+03 1.5e+04 2.55e-06 0 6.86e+03 1.92e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.336 0.000718 0.473 3.96e-06 0 0 0 Tank initStep + 1 2.29e+03 593 4.28e+03 3.96e-06 3.96e-06 4.89e+03 4.89e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.335 0.000193 0.429 2.26e-06 0 0 0 Tank initStep + 1 647 574 1.65e+03 2.26e-06 2.26e-06 1.86e+03 1.86e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 6 0.337 0.000971 0.495 0.388 0 0 0.681 Tank initStep + 7 0.372 0.0113 0.569 0.377 0.011 0.0839 0.765 Tank Cerenkov ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.494 -0.254 0.0642 3.2e-06 0 0 0 Tank initStep - 1 5e+03 -1.25e+03 -664 3.2e-06 0 5.19e+03 5.19e+03 expHall Transportation - 2 5e+03 -1.25e+03 -664 3.2e-06 0 0 5.19e+03 Tank Transportation - 3 2.61e+03 -5e+03 1.85e+03 3.2e-06 0 5.11e+03 1.03e+04 expHall Transportation - 4 -1.74e+03 -1e+04 5.64e+03 3.2e-06 0 7.63e+03 1.79e+04 world Transportation - 5 -6.08e+03 -1.5e+04 9.43e+03 3.2e-06 0 7.63e+03 2.56e+04 OutOfWorld Transportation + 0 0.347 0.00382 0.515 3.32e-06 0 0 0 Tank initStep + 1 2.71e+03 -5e+03 199 3.32e-06 0 5.69e+03 5.69e+03 expHall Transportation + 2 2.71e+03 -5e+03 199 3.32e-06 0 0 5.69e+03 Tank Transportation + 3 5e+03 -2.6e+03 -39.6 3.32e-06 0 3.32e+03 9.01e+03 expHall Transportation + 4 5e+03 -2.6e+03 -39.6 3.32e-06 0 0 9.01e+03 Tank Transportation + 5 4.33e+03 5e+03 -1.21e+03 3.32e-06 0 7.72e+03 1.67e+04 expHall Transportation + 6 3.55e+03 1e+04 -1.87e+03 3.32e-06 0 5.1e+03 2.18e+04 world Transportation + 7 2.78e+03 1.5e+04 -2.54e+03 3.32e-06 0 5.1e+03 2.69e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 0.568 -0.306 0.0797 0.394 0 0 0.686 Tank initStep - 7 0.637 -0.35 0.104 0.378 0.016 0.0864 0.773 Tank Cerenkov - 8 0.696 -0.39 0.132 0.366 0.0121 0.0794 0.852 Tank Cerenkov + 7 0.372 0.0113 0.569 0.377 0 0 0.765 Tank initStep + 8 0.421 0.0279 0.629 0.364 0.013 0.0792 0.844 Tank Cerenkov ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 +* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.69 -0.386 0.13 2.47e-06 0 0 0 Tank initStep - 1 3.59e+03 -3.44e+03 5e+03 2.47e-06 0 7.05e+03 7.05e+03 expHall Transportation - 2 3.59e+03 -3.44e+03 5e+03 2.47e-06 0 0 7.05e+03 Tank Transportation - 3 5e+03 -3.7e+03 4.29e+03 2.47e-06 0 1.6e+03 8.65e+03 expHall Transportation - 4 5e+03 -3.7e+03 4.29e+03 2.47e-06 0 0 8.65e+03 Tank Transportation - 5 -3.14e+03 -3.4e+03 -5e+03 2.47e-06 0 1.24e+04 2.1e+04 expHall Transportation - 6 -3.14e+03 -3.4e+03 -5e+03 2.47e-06 0 0 2.1e+04 Tank Transportation - 7 -4.78e+03 -5e+03 -3.57e+03 2.47e-06 0 2.7e+03 2.37e+04 expHall Transportation - 8 -4.78e+03 -5e+03 -3.57e+03 2.47e-06 0 0 2.37e+04 Tank Transportation - 9 -5e+03 -4.77e+03 -2.58e+03 2.47e-06 0 1.04e+03 2.47e+04 expHall Transportation - 10 -5e+03 -4.77e+03 -2.58e+03 2.47e-06 0 0 2.47e+04 Tank Transportation - 11 -3.43e+03 -2.27e+03 5e+03 2.47e-06 0 8.13e+03 3.29e+04 expHall Transportation - 12 -1.26e+03 -1.14e+03 1e+04 2.47e-06 0 5.57e+03 3.84e+04 world Transportation - 13 911 -11.9 1.5e+04 2.47e-06 0 5.57e+03 4.4e+04 OutOfWorld Transportation + 0 0.399 0.0205 0.602 3.82e-06 0 0 0 Tank initStep + 1 4.72e+03 5e+03 4.65e+03 3.82e-06 0 8.3e+03 8.3e+03 expHall Transportation + 2 4.72e+03 5e+03 4.65e+03 3.82e-06 0 0 8.3e+03 Tank Transportation + 3 5e+03 4.82e+03 4.93e+03 3.82e-06 0 443 8.74e+03 expHall Transportation + 4 5e+03 4.82e+03 4.93e+03 3.82e-06 0 0 8.74e+03 Tank Transportation + 5 4.96e+03 4.73e+03 5e+03 3.82e-06 0 114 8.85e+03 expHall Transportation + 6 4.96e+03 4.73e+03 5e+03 3.82e-06 0 0 8.85e+03 Tank Transportation + 7 -3.36e+03 -3.77e+03 -5e+03 3.82e-06 0 1.55e+04 2.44e+04 expHall Transportation + 8 -3.36e+03 -3.77e+03 -5e+03 3.82e-06 0 0 2.44e+04 Tank Transportation + 9 -4.63e+03 -5e+03 -2.84e+03 3.82e-06 0 2.8e+03 2.72e+04 expHall Transportation + 10 -4.63e+03 -5e+03 -2.84e+03 3.82e-06 0 0 2.72e+04 Tank Transportation + 11 -5e+03 -4.29e+03 -1.97e+03 3.82e-06 0 1.18e+03 2.84e+04 expHall Transportation + 12 -5e+03 -4.29e+03 -1.97e+03 3.82e-06 0 0 2.84e+04 Tank Transportation + 13 5e+03 -673 3.35e+03 3.82e-06 0 1.19e+04 4.03e+04 expHall Transportation + 14 9.68e+03 4.17e+03 1e+04 3.82e-06 0 9.46e+03 4.97e+04 world Transportation + 15 1.32e+04 7.81e+03 1.5e+04 3.82e-06 0 7.12e+03 5.68e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 0.696 -0.39 0.132 0.366 0 0 0.852 Tank initStep - 9 0.73 -0.347 0.183 0.354 0.0113 0.0744 0.927 Tank Cerenkov - 10 0.76 -0.306 0.227 0.334 0.0201 0.07 0.997 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.753 -0.315 0.216 2.15e-06 0 0 0 Tank initStep - 1 4.78e+03 5e+03 2.45e+03 2.15e-06 0 7.34e+03 7.34e+03 expHall Transportation - 2 4.78e+03 5e+03 2.45e+03 2.15e-06 0 0 7.34e+03 Tank Transportation - 3 5e+03 4.51e+03 2.6e+03 2.15e-06 0 562 7.9e+03 expHall Transportation - 4 5e+03 4.51e+03 2.6e+03 2.15e-06 0 0 7.9e+03 Tank Transportation - 5 2.92e+03 3.01e+03 -109 2.15e-06 2.15e-06 3.74e+03 1.16e+04 Tank OpAbsorption + 8 0.421 0.0279 0.629 0.364 0 0 0.844 Tank initStep + 9 0.46 0.0251 0.691 0.355 0.00873 0.0739 0.918 Tank Cerenkov + 10 0.479 0.0187 0.756 0.342 0.0134 0.0704 0.989 Tank Cerenkov + 11 0.519 0.00269 0.802 0.329 0.0128 0.0652 1.05 Tank Cerenkov ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.744 -0.328 0.202 2.81e-06 0 0 0 Tank initStep - 1 4.54e+03 2.33e+03 3.19e+03 2.81e-06 0 6.02e+03 6.02e+03 Tank OpRayleigh - 2 4.69e+03 4.35e+03 2.77e+03 2.81e-06 0 2.07e+03 8.09e+03 Tank OpRayleigh - 3 -2.23e+03 -3.36e+03 -5e+03 2.81e-06 0 1.3e+04 2.1e+04 expHall Transportation - 4 -2.23e+03 -3.36e+03 -5e+03 2.81e-06 0 0 2.1e+04 Tank Transportation - 5 -3.2e+03 -5e+03 -3.08e+03 2.81e-06 0 2.71e+03 2.38e+04 expHall Transportation - 6 -3.2e+03 -5e+03 -3.08e+03 2.81e-06 0 0 2.38e+04 Tank Transportation - 7 -4.01e+03 5e+03 1.42e+03 2.81e-06 0 1.1e+04 3.47e+04 expHall Transportation - 8 -2.9e+03 1e+04 4.62e+03 2.81e-06 0 6.04e+03 4.08e+04 world Transportation - 9 -1.79e+03 1.5e+04 7.82e+03 2.81e-06 0 6.04e+03 4.68e+04 OutOfWorld Transportation + 0 0.489 0.0147 0.768 2.22e-06 0 0 0 Tank initStep + 1 388 -158 1.06e+03 2.22e-06 2.22e-06 1.14e+03 1.14e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.492 0.0134 0.772 2.78e-06 0 0 0 Tank initStep + 1 4e+03 805 5e+03 2.78e-06 0 6.46e+03 6.46e+03 expHall Transportation + 2 4e+03 805 5e+03 2.78e-06 0 0 6.46e+03 Tank Transportation + 3 5e+03 773 3.34e+03 2.78e-06 0 1.94e+03 8.39e+03 expHall Transportation + 4 5.67e+03 93.6 -1e+04 2.78e-06 0 1.34e+04 2.18e+04 world Transportation + 5 5.92e+03 -161 -1.5e+04 2.78e-06 0 5.01e+03 2.68e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 10 0.76 -0.306 0.227 0.334 0 0 0.997 Tank initStep - 11 0.809 -0.279 0.249 0.278 0.0557 0.0622 1.06 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.775 -0.298 0.233 3.55e-06 0 0 0 Tank initStep - 1 -1.97e+03 -2.7e+03 -5e+03 3.55e-06 0 6.02e+03 6.02e+03 expHall Transportation - 2 -6.42e+03 -7.68e+03 -1e+04 3.55e-06 0 8.34e+03 1.44e+04 world Transportation - 3 -1.09e+04 -1.26e+04 -1.5e+04 3.55e-06 0 8.34e+03 2.27e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.768 -0.301 0.23 2.47e-06 0 0 0 Tank initStep - 1 -5e+03 4.88e+03 4.94e+03 2.47e-06 0 8.56e+03 8.56e+03 expHall Transportation - 2 -5e+03 4.88e+03 4.94e+03 2.47e-06 0 0 8.56e+03 Tank Transportation - 3 -4.94e+03 5e+03 4.99e+03 2.47e-06 0 141 8.7e+03 expHall Transportation - 4 -4.94e+03 5e+03 4.99e+03 2.47e-06 0 0 8.7e+03 Tank Transportation - 5 -4.94e+03 4.99e+03 5e+03 2.47e-06 0 9.71 8.71e+03 expHall Transportation - 6 -4.94e+03 4.99e+03 5e+03 2.47e-06 0 0 8.71e+03 Tank Transportation - 7 -3.53e+03 -880 -5e+03 2.47e-06 0 1.17e+04 2.04e+04 expHall Transportation - 8 -3.53e+03 -880 -5e+03 2.47e-06 0 0 2.04e+04 Tank Transportation - 9 -3.61e+03 -4.47e+03 -4.14e+03 2.47e-06 2.47e-06 3.69e+03 2.41e+04 Tank OpAbsorption + 11 0.519 0.00269 0.802 0.329 0 0 1.05 Tank initStep + 12 0.554 0.00636 0.839 0.321 0.00819 0.0604 1.11 Tank Cerenkov ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.785 -0.292 0.238 2.6e-06 0 0 0 Tank initStep - 1 5e+03 2.39e+03 424 2.6e-06 0 5.56e+03 5.56e+03 expHall Transportation - 2 9.03e+03 1e+04 4.47e+03 2.6e-06 0 9.51e+03 1.51e+04 world Transportation - 3 1.17e+04 1.5e+04 7.12e+03 2.6e-06 0 6.25e+03 2.13e+04 OutOfWorld Transportation + 0 0.531 0.00393 0.815 3.95e-06 0 0 0 Tank initStep + 1 1.35e+03 673 -615 3.95e-06 0 1.63e+03 1.63e+03 Tank OpMieHG + 2 5e+03 2.73e+03 -2.24e+03 3.95e-06 0 4.5e+03 6.13e+03 expHall Transportation + 3 5e+03 2.73e+03 -2.24e+03 3.95e-06 0 0 6.13e+03 Tank Transportation + 4 1.77e+03 5e+03 -4.95e+03 3.95e-06 0 4.78e+03 1.09e+04 expHall Transportation + 5 1.77e+03 5e+03 -4.95e+03 3.95e-06 0 0 1.09e+04 Tank Transportation + 6 1.45e+03 4.74e+03 -5e+03 3.95e-06 0 418 1.13e+04 expHall Transportation + 7 1.45e+03 4.74e+03 -5e+03 3.95e-06 0 0 1.13e+04 Tank Transportation + 8 -1.53e+03 4.78e+03 5e+03 3.95e-06 0 1.04e+04 2.18e+04 expHall Transportation + 9 -4.39e+03 5.46e+03 1e+04 3.95e-06 0 5.8e+03 2.76e+04 world Transportation + 10 -7.24e+03 6.13e+03 1.5e+04 3.95e-06 0 5.8e+03 3.34e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.532 0.00401 0.816 3.28e-06 0 0 0 Tank initStep + 1 4.2e+03 -1.97e+03 5e+03 3.28e-06 0 6.82e+03 6.82e+03 expHall Transportation + 2 4.2e+03 -1.97e+03 5e+03 3.28e-06 0 0 6.82e+03 Tank Transportation + 3 4.34e+03 -1.99e+03 4.91e+03 3.28e-06 3.28e-06 169 6.99e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 11 0.809 -0.279 0.249 0.278 0 0 1.06 Tank initStep - 12 0.852 -0.274 0.257 0.269 0.00934 0.0434 1.1 Tank Cerenkov - 13 0.891 -0.271 0.262 0.258 0.0112 0.0405 1.14 Tank Cerenkov + 12 0.554 0.00636 0.839 0.321 0 0 1.11 Tank initStep + 13 0.564 0.0628 0.834 0.304 0.017 0.0575 1.17 Tank Cerenkov ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 +* G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.881 -0.271 0.261 4.05e-06 0 0 0 Tank initStep - 1 -5e+03 -3.75e+03 2.33e+03 4.05e-06 0 6.67e+03 6.67e+03 expHall Transportation - 2 -5e+03 -3.75e+03 2.33e+03 4.05e-06 0 0 6.67e+03 Tank Transportation - 3 -3.98e+03 -4.91e+03 2.88e+03 4.05e-06 4.05e-06 1.64e+03 8.31e+03 Tank OpAbsorption + 0 0.555 0.0084 0.839 3.61e-06 0 0 0 Tank initStep + 1 536 -4.53e+03 -2.42e+03 3.61e-06 3.61e-06 5.16e+03 5.16e+03 Tank OpAbsorption ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 +* G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.883 -0.271 0.261 2.13e-06 0 0 0 Tank initStep - 1 -5e+03 1.8e+03 191 2.13e-06 0 5.32e+03 5.32e+03 expHall Transportation - 2 -1e+04 6.86e+03 -812 2.13e-06 0 7.18e+03 1.25e+04 world Transportation - 3 -1.5e+04 1.19e+04 -1.82e+03 2.13e-06 0 7.18e+03 1.97e+04 OutOfWorld Transportation + 0 0.561 0.0431 0.836 2.97e-06 0 0 0 Tank initStep + 1 4.82e+03 4.13e+03 5e+03 2.97e-06 0 8.08e+03 8.08e+03 expHall Transportation + 2 4.82e+03 4.13e+03 5e+03 2.97e-06 0 0 8.08e+03 Tank Transportation + 3 5e+03 4.55e+03 3.81e+03 2.97e-06 0 1.27e+03 9.35e+03 expHall Transportation + 4 5e+03 4.55e+03 3.81e+03 2.97e-06 0 0 9.35e+03 Tank Transportation + 5 1.01e+03 5e+03 -674 2.97e-06 0 6.02e+03 1.54e+04 expHall Transportation + 6 1.01e+03 5e+03 -674 2.97e-06 0 0 1.54e+04 Tank Transportation + 7 -5e+03 765 -387 2.97e-06 0 7.36e+03 2.27e+04 expHall Transportation + 8 -7.05e+03 -1e+04 4.38e+03 2.97e-06 0 1.19e+04 3.47e+04 world Transportation + 9 -8e+03 -1.5e+04 6.59e+03 2.97e-06 0 5.55e+03 4.02e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 13 0.564 0.0628 0.834 0.304 0 0 1.17 Tank initStep + 14 0.556 0.112 0.824 0.297 0.00747 0.0516 1.22 Tank Cerenkov + 15 0.543 0.155 0.808 0.29 0.00698 0.0491 1.27 Tank Cerenkov + 16 0.522 0.194 0.795 0.257 0.0321 0.0468 1.32 Tank Cerenkov ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.852 -0.274 0.257 4.04e-06 0 0 0 Tank initStep - 1 5e+03 207 -356 4.04e-06 0 5.02e+03 5.02e+03 expHall Transportation - 2 1e+04 1.14e+03 1.01e+03 4.04e-06 0 5.27e+03 1.03e+04 world Transportation - 3 1.5e+04 2.07e+03 2.37e+03 4.04e-06 0 5.27e+03 1.55e+04 OutOfWorld Transportation + 0 0.54 0.16 0.807 2.57e-06 0 0 0 Tank initStep + 1 -1.4e+03 5e+03 -1.99e+03 2.57e-06 0 5.56e+03 5.56e+03 expHall Transportation + 2 -4.5e+03 1e+04 -8.21e+03 2.57e-06 0 8.56e+03 1.41e+04 world Transportation + 3 -7.61e+03 1.5e+04 -1.44e+04 2.57e-06 0 8.56e+03 2.27e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 13 0.891 -0.271 0.262 0.258 0 0 1.14 Tank initStep - 14 0.924 -0.275 0.278 0.251 0.00676 0.0373 1.18 Tank Cerenkov - 15 0.951 -0.282 0.294 0.246 0.00512 0.0331 1.21 Tank Cerenkov - 16 0.963 -0.285 0.3 0.244 0.00179 0.0138 1.23 Tank Cerenkov - 17 0.968 -0.288 0.304 0.243 0.000865 0.00697 1.23 Tank Cerenkov - 18 0.971 -0.289 0.306 0.243 0.0005 0.00369 1.24 Tank Cerenkov - 19 0.972 -0.289 0.307 0.243 0.000152 0.0018 1.24 Tank Cerenkov - 20 0.973 -0.289 0.308 0.243 0.000122 0.00123 1.24 Tank Cerenkov - 21 0.974 -0.289 0.308 0.243 0.000104 0.000764 1.24 Tank Cerenkov - 22 0.974 -0.289 0.309 0.243 0 0.000369 1.24 Tank Cerenkov - 23 0.974 -0.29 0.309 0.242 4.56e-05 0.000369 1.24 Tank Cerenkov - 24 0.975 -0.29 0.309 0.242 1.05e-05 0.000197 1.24 Tank Cerenkov - 25 0.975 -0.29 0.309 0.242 0 0.000157 1.24 Tank Cerenkov - 26 0.975 -0.29 0.309 0.242 6.85e-05 0.000157 1.24 Tank Cerenkov - 27 1.07 -0.305 0.377 0.15 0.0926 0.133 1.38 Tank eIoni + 16 0.522 0.194 0.795 0.257 0 0 1.32 Tank initStep + 17 0.502 0.22 0.779 0.201 0.0568 0.0372 1.36 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.517 0.2 0.791 3.8e-06 0 0 0 Tank initStep + 1 -527 2.92e+03 -5e+03 3.8e-06 0 5.81e+03 5.81e+03 expHall Transportation + 2 -527 2.92e+03 -5e+03 3.8e-06 0 0 5.81e+03 Tank Transportation + 3 -653 5e+03 -4.03e+03 3.8e-06 0 2.3e+03 8.11e+03 expHall Transportation + 4 -653 5e+03 -4.03e+03 3.8e-06 0 0 8.11e+03 Tank Transportation + 5 -3.4e+03 -317 5e+03 3.8e-06 0 1.08e+04 1.89e+04 expHall Transportation + 6 -3.4e+03 -317 5e+03 3.8e-06 0 0 1.89e+04 Tank Transportation + 7 -5e+03 -3.19e+03 1e+03 3.8e-06 0 5.17e+03 2.41e+04 expHall Transportation + 8 -5e+03 -3.19e+03 1e+03 3.8e-06 0 0 2.41e+04 Tank Transportation + 9 -4.02e+03 -5e+03 1.68e+03 3.8e-06 0 2.17e+03 2.63e+04 expHall Transportation + 10 -4.02e+03 -5e+03 1.68e+03 3.8e-06 0 0 2.63e+04 Tank Transportation + 11 -1.34e+03 -1.8e+03 5e+03 3.8e-06 0 5.33e+03 3.16e+04 expHall Transportation + 12 -1.34e+03 -1.8e+03 5e+03 3.8e-06 0 0 3.16e+04 Tank Transportation + 13 5e+03 -396 -1.77e+03 3.8e-06 0 9.38e+03 4.1e+04 expHall Transportation + 14 5e+03 -396 -1.77e+03 3.8e-06 0 0 4.1e+04 Tank Transportation + 15 1.02e+03 24.3 -5e+03 3.8e-06 0 5.14e+03 4.61e+04 expHall Transportation + 16 1.02e+03 24.3 -5e+03 3.8e-06 0 0 4.61e+04 Tank Transportation + 17 -5e+03 -837 -3.66e+03 3.8e-06 0 6.23e+03 5.24e+04 expHall Transportation + 18 -1e+04 419 -2.29e+03 3.8e-06 0 5.33e+03 5.77e+04 world Transportation + 19 -1.5e+04 1.67e+03 -924 3.8e-06 0 5.33e+03 6.3e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 17 0.502 0.22 0.779 0.201 0 0 1.36 Tank initStep + 18 0.487 0.238 0.756 0.186 0.0152 0.0345 1.39 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.491 0.234 0.761 3.16e-06 0 0 0 Tank initStep + 1 -3.03e+03 2.07e+03 5e+03 3.16e-06 0 6.2e+03 6.2e+03 expHall Transportation + 2 -3.03e+03 2.07e+03 5e+03 3.16e-06 0 0 6.2e+03 Tank Transportation + 3 -5e+03 2.78e+03 3.44e+03 3.16e-06 0 2.61e+03 8.81e+03 expHall Transportation + 4 -5e+03 2.78e+03 3.44e+03 3.16e-06 0 0 8.81e+03 Tank Transportation + 5 295 2.43e+03 500 3.16e-06 0 6.07e+03 1.49e+04 Bubble Transportation + 6 295 2.43e+03 500 3.16e-06 0 0 1.49e+04 Tank Transportation + 7 5e+03 2.11e+03 3.12e+03 3.16e-06 0 5.39e+03 2.03e+04 expHall Transportation + 8 1e+04 2.3e+03 9.41e+03 3.16e-06 0 8.04e+03 2.83e+04 world Transportation + 9 1.44e+04 2.46e+03 1.5e+04 3.16e-06 0 7.14e+03 3.55e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 18 0.487 0.238 0.756 0.186 0 0 1.39 Tank initStep + 19 0.476 0.234 0.728 0.177 0.00839 0.0304 1.42 Tank msc + 20 0.454 0.234 0.656 0.151 0.0262 0.0861 1.51 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 33, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.454 0.234 0.658 3.48e-06 0 0 0 Tank initStep + 1 -4.31e+03 -652 -5e+03 3.48e-06 0 6.64e+03 6.64e+03 expHall Transportation + 2 -1e+04 -1.27e+03 -7.88e+03 3.48e-06 0 6.41e+03 1.3e+04 world Transportation + 3 -1.5e+04 -1.81e+03 -1.04e+04 3.48e-06 0 5.63e+03 1.87e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.455 0.234 0.661 3.13e-06 0 0 0 Tank initStep + 1 -3.83e+03 -2.49e+03 5e+03 3.13e-06 0 6.77e+03 6.77e+03 expHall Transportation + 2 -3.83e+03 -2.49e+03 5e+03 3.13e-06 0 0 6.77e+03 Tank Transportation + 3 -5e+03 -2.37e+03 3.05e+03 3.13e-06 0 2.27e+03 9.05e+03 expHall Transportation + 4 -5e+03 -2.37e+03 3.05e+03 3.13e-06 0 0 9.05e+03 Tank Transportation + 5 -2.96e+03 -5e+03 -131 3.13e-06 0 4.6e+03 1.36e+04 expHall Transportation + 6 -2.96e+03 -5e+03 -131 3.13e-06 0 0 1.36e+04 Tank Transportation + 7 1.01e+03 -231 -3.17e+03 3.13e-06 0 6.91e+03 2.06e+04 Tank OpRayleigh + 8 1.31e+03 2.25e+03 -5e+03 3.13e-06 0 3.1e+03 2.37e+04 expHall Transportation + 9 1.31e+03 2.25e+03 -5e+03 3.13e-06 0 0 2.37e+04 Tank Transportation + 10 4.02e+03 5e+03 -3.04e+03 3.13e-06 0 4.33e+03 2.8e+04 expHall Transportation + 11 4.02e+03 5e+03 -3.04e+03 3.13e-06 0 0 2.8e+04 Tank Transportation + 12 5e+03 3.95e+03 -2.73e+03 3.13e-06 0 1.47e+03 2.95e+04 expHall Transportation + 13 5e+03 3.95e+03 -2.73e+03 3.13e-06 0 0 2.95e+04 Tank Transportation + 14 -2.88e+03 -835 -1.99e+03 3.13e-06 0 9.25e+03 3.87e+04 Tank OpRayleigh + 15 -4.84e+03 1.91e+03 -5e+03 3.13e-06 0 4.52e+03 4.32e+04 expHall Transportation + 16 -1e+04 6.96e+03 -6.48e+03 3.13e-06 0 7.37e+03 5.06e+04 world Transportation + 17 -1.5e+04 1.19e+04 -7.92e+03 3.13e-06 0 7.14e+03 5.77e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 20 0.454 0.234 0.656 0.151 0 0 1.51 Tank initStep + 21 0.449 0.245 0.638 0.146 0.00451 0.0216 1.53 Tank msc + 22 0.439 0.28 0.593 0.133 0.0137 0.067 1.6 Tank eIoni + 23 0.409 0.273 0.552 0.0514 0.0813 0.0591 1.66 Tank eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 36, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.997 -0.293 0.325 2.58e-06 0 0 0 Tank initStep - 1 -1.38e+03 -789 340 2.58e-06 2.58e-06 1.63e+03 1.63e+03 Tank OpAbsorption + 0 0.418 0.275 0.564 3.5e-06 0 0 0 Tank initStep + 1 -4.71e+03 5e+03 -69.5 3.5e-06 0 6.87e+03 6.87e+03 expHall Transportation + 2 -4.71e+03 5e+03 -69.5 3.5e-06 0 0 6.87e+03 Tank Transportation + 3 -5e+03 4.58e+03 -254 3.5e-06 0 548 7.41e+03 expHall Transportation + 4 -5e+03 4.58e+03 -254 3.5e-06 0 0 7.41e+03 Tank Transportation + 5 -4e+03 4.06e+03 -788 3.5e-06 3.5e-06 1.24e+03 8.66e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 35, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.984 -0.291 0.316 3.38e-06 0 0 0 Tank initStep - 1 -2.56e+03 -126 -5e+03 3.38e-06 0 5.62e+03 5.62e+03 expHall Transportation - 2 -2.56e+03 -126 -5e+03 3.38e-06 0 0 5.62e+03 Tank Transportation - 3 -5e+03 -707 -2.65e+03 3.38e-06 0 3.44e+03 9.06e+03 expHall Transportation - 4 -5e+03 -707 -2.65e+03 3.38e-06 0 0 9.06e+03 Tank Transportation - 5 -4.86e+03 -772 -2.41e+03 3.38e-06 3.38e-06 280 9.34e+03 Tank OpAbsorption + 0 0.429 0.278 0.579 2.17e-06 0 0 0 Tank initStep + 1 386 1.3e+03 2.91e+03 2.17e-06 2.17e-06 3.21e+03 3.21e+03 Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 34, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.01 -0.295 0.334 3.46e-06 0 0 0 Tank initStep - 1 -966 -2.86e+03 -1.51e+03 3.46e-06 3.46e-06 3.38e+03 3.38e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 33, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.03 -0.299 0.349 3.96e-06 0 0 0 Tank initStep - 1 1.84e+03 5e+03 1.78e+03 3.96e-06 0 5.62e+03 5.62e+03 expHall Transportation - 2 2.56e+03 1e+04 1.83e+03 3.96e-06 0 5.05e+03 1.07e+04 world Transportation - 3 3.29e+03 1.5e+04 1.88e+03 3.96e-06 0 5.05e+03 1.57e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.997 -0.293 0.325 2.15e-06 0 0 0 Tank initStep - 1 272 -675 -1.52e+03 2.15e-06 2.15e-06 1.69e+03 1.69e+03 Tank OpAbsorption + 0 0.426 0.277 0.575 3.76e-06 0 0 0 Tank initStep + 1 2.84e+03 5e+03 1.36e+03 3.76e-06 0 5.91e+03 5.91e+03 expHall Transportation + 2 7.22e+03 1e+04 806 3.76e-06 0 6.67e+03 1.26e+04 world Transportation + 3 1.16e+04 1.5e+04 250 3.76e-06 0 6.67e+03 1.92e+04 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 27 1.07 -0.305 0.377 0.15 0 0 1.38 Tank initStep - 28 1.09 -0.3 0.376 0.145 0.00488 0.0213 1.4 Tank msc - 29 1.15 -0.292 0.382 0.126 0.019 0.0661 1.46 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 37, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.09 -0.3 0.376 3.47e-06 0 0 0 Tank initStep - 1 -2.91e+03 -806 5e+03 3.47e-06 0 5.84e+03 5.84e+03 expHall Transportation - 2 -6.11e+03 -3.82e+03 1e+04 3.47e-06 0 6.66e+03 1.25e+04 world Transportation - 3 -9.31e+03 -6.82e+03 1.5e+04 3.47e-06 0 6.66e+03 1.92e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 29 1.15 -0.292 0.382 0.126 0 0 1.46 Tank initStep - 30 1.16 -0.289 0.394 0.122 0.00426 0.0159 1.48 Tank msc - 31 1.18 -0.273 0.427 0.103 0.0189 0.0531 1.53 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 38, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.17 -0.281 0.411 3.9e-06 0 0 0 Tank initStep - 1 -322 -5e+03 1.54e+03 3.9e-06 0 5.24e+03 5.24e+03 expHall Transportation - 2 -1.07e+03 -1e+04 4.09e+03 3.9e-06 0 5.66e+03 1.09e+04 world Transportation - 3 -1.82e+03 -1.5e+04 6.63e+03 3.9e-06 0 5.66e+03 1.66e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 31 1.18 -0.273 0.427 0.103 0 0 1.53 Tank initStep - 32 1.18 -0.277 0.437 0.0991 0.0037 0.0113 1.54 Tank msc - 33 1.18 -0.293 0.468 0.0861 0.013 0.0418 1.59 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 39, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.18 -0.285 0.452 3.38e-06 0 0 0 Tank initStep - 1 -4.1e+03 -5e+03 4.3e+03 3.38e-06 0 7.76e+03 7.76e+03 expHall Transportation - 2 -4.1e+03 -5e+03 4.3e+03 3.38e-06 0 0 7.76e+03 Tank Transportation - 3 -5e+03 -4.37e+03 4.9e+03 3.38e-06 0 1.26e+03 9.02e+03 expHall Transportation - 4 -1e+04 1.99e+03 9.78e+03 3.38e-06 0 9.45e+03 1.85e+04 world Transportation - 5 -1.5e+04 8.35e+03 1.47e+04 3.38e-06 0 9.45e+03 2.79e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 33 1.18 -0.293 0.468 0.0861 0 0 1.59 Tank initStep - 34 1.18 -0.295 0.475 0.0848 0.00131 0.00827 1.59 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 40, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.18 -0.295 0.473 2.67e-06 0 0 0 Tank initStep - 1 5e+03 -2.46e+03 -3.34e+03 2.67e-06 0 6.5e+03 6.5e+03 expHall Transportation - 2 5e+03 -2.46e+03 -3.34e+03 2.67e-06 0 0 6.5e+03 Tank Transportation - 3 2.82e+03 -3.43e+03 -5e+03 2.67e-06 0 2.91e+03 9.41e+03 expHall Transportation - 4 2.82e+03 -3.43e+03 -5e+03 2.67e-06 0 0 9.41e+03 Tank Transportation - 5 -2.66e+03 -5e+03 2.88e+03 2.67e-06 0 9.72e+03 1.91e+04 expHall Transportation - 6 -2.66e+03 -5e+03 2.88e+03 2.67e-06 0 0 1.91e+04 Tank Transportation - 7 -4.49e+03 414 5e+03 2.67e-06 0 6.1e+03 2.52e+04 expHall Transportation - 8 -4.49e+03 414 5e+03 2.67e-06 0 0 2.52e+04 Tank Transportation - 9 -4.52e+03 5e+03 3.27e+03 2.67e-06 0 4.9e+03 3.01e+04 expHall Transportation - 10 -3.57e+03 1e+04 813 2.67e-06 0 5.65e+03 3.58e+04 world Transportation - 11 -2.62e+03 1.5e+04 -1.64e+03 2.67e-06 0 5.65e+03 4.14e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 34 1.18 -0.295 0.475 0.0848 0 0 1.59 Tank initStep - 35 1.18 -0.298 0.483 0.0813 0.00347 0.00806 1.6 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 41, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.18 -0.296 0.478 4e-06 0 0 0 Tank initStep - 1 5e+03 588 -832 4e-06 0 5.1e+03 5.1e+03 expHall Transportation - 2 1e+04 1.96e+03 -2.88e+03 4e-06 0 5.58e+03 1.07e+04 world Transportation - 3 1.5e+04 3.34e+03 -4.93e+03 4e-06 0 5.58e+03 1.63e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 35 1.18 -0.298 0.483 0.0813 0 0 1.6 Tank initStep - 36 1.19 -0.302 0.487 0.0789 0.00243 0.00749 1.61 Tank msc - 37 1.2 -0.326 0.491 0.0562 0.0226 0.0328 1.64 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 44, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.19 -0.305 0.488 4.02e-06 0 0 0 Tank initStep - 1 -1.68e+03 1.23e+03 3.64e+03 4.02e-06 0 4.19e+03 4.19e+03 Tank OpRayleigh - 2 -1.7e+03 1.26e+03 3.61e+03 4.02e-06 4.02e-06 48 4.24e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 43, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.19 -0.307 0.488 3.41e-06 0 0 0 Tank initStep - 1 431 2e+03 -223 3.41e-06 0 2.06e+03 2.06e+03 Bubble Transportation - 2 500 2.23e+03 -259 3.41e-06 3.41e-06 244 2.3e+03 Tank Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 42, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.19 -0.318 0.49 3.11e-06 0 0 0 Tank initStep - 1 -2.79e+03 3.06e+03 -5e+03 3.11e-06 0 6.49e+03 6.49e+03 expHall Transportation - 2 -2.79e+03 3.06e+03 -5e+03 3.11e-06 0 0 6.49e+03 Tank Transportation - 3 -3.95e+03 5e+03 -3.08e+03 3.11e-06 0 2.97e+03 9.46e+03 expHall Transportation - 4 -3.95e+03 5e+03 -3.08e+03 3.11e-06 0 0 9.46e+03 Tank Transportation - 5 -5e+03 -603 -92.4 3.11e-06 0 6.44e+03 1.59e+04 expHall Transportation - 6 -5e+03 -603 -92.4 3.11e-06 0 0 1.59e+04 Tank Transportation - 7 -4.15e+03 -2.09e+03 -883 3.11e-06 3.11e-06 1.89e+03 1.78e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 37 1.2 -0.326 0.491 0.0562 0 0 1.64 Tank initStep - 38 1.2 -0.327 0.495 0.0542 0.002 0.00391 1.65 Tank msc - 39 1.21 -0.331 0.509 0.0423 0.0119 0.0234 1.67 Tank eIoni - 40 1.2 -0.338 0.52 0.0243 0.0181 0.0192 1.69 Tank eIoni - 41 1.2 -0.335 0.525 0.00635 0.0179 0.0108 1.7 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.2 -0.336 0.523 2.12e-06 0 0 0 Tank initStep - 1 4.02e+03 268 4.33e+03 2.12e-06 2.12e-06 5.91e+03 5.91e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 41 1.2 -0.335 0.525 0.00635 0 0 1.7 Tank initStep - 42 1.2 -0.335 0.525 0.00161 0.00474 7.97e-05 1.7 Tank msc - 43 1.2 -0.335 0.525 0 0.00161 9.55e-05 1.7 Tank eIoni - 44 1.2 -0.335 0.525 0 0 0 1.7 Tank annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 47, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.2 -0.335 0.525 0.511 0 0 0 Tank initStep - 1 5.88 27.3 31.9 0.211 0.000537 42.1 42.1 Tank compt - 2 -89.4 -16.7 28.9 0.196 1.36e-05 105 147 Tank compt - 3 -140 -7.5 25.2 0.183 1.36e-05 51.7 199 Tank compt - 4 -416 254 -90.8 0.108 1.42e-05 397 596 Tank compt - 5 -415 250 -90.6 0 0.000538 4.49 601 Tank phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -415 250 -90.6 0.108 0 0 0 Tank initStep - 1 -415 250 -90.6 0.102 0.00533 0.0128 0.0128 Tank msc - 2 -415 250 -90.6 0.0864 0.016 0.0449 0.0577 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 52 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -415 250 -90.6 2.5e-06 0 0 0 Tank initStep - 1 2.91e+03 4.7e+03 -5e+03 2.5e-06 0 7.41e+03 7.41e+03 expHall Transportation - 2 2.91e+03 4.7e+03 -5e+03 2.5e-06 0 0 7.41e+03 Tank Transportation - 3 5e+03 4.02e+03 -754 2.5e-06 0 4.78e+03 1.22e+04 expHall Transportation - 4 5e+03 4.02e+03 -754 2.5e-06 0 0 1.22e+04 Tank Transportation - 5 3.55e+03 2.26e+03 5e+03 2.5e-06 0 6.19e+03 1.84e+04 expHall Transportation - 6 3.14e+03 -3.78 1e+04 2.5e-06 0 5.5e+03 2.39e+04 world Transportation - 7 2.73e+03 -2.27e+03 1.5e+04 2.5e-06 0 5.5e+03 2.94e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -415 250 -90.6 0.0864 0 0 0.0577 Tank initStep - 3 -415 250 -90.6 0.0824 0.004 0.00881 0.0665 Tank msc - 4 -415 250 -90.6 0.0683 0.0141 0.0355 0.102 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 52 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -415 250 -90.6 3.66e-06 0 0 0 Tank initStep - 1 443 2e+03 -263 3.66e-06 3.66e-06 1.96e+03 1.96e+03 Bubble Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -415 250 -90.6 0.0683 0 0 0.102 Tank initStep - 5 -415 250 -90.6 0.0648 0.00347 0.00587 0.108 Tank msc - 6 -415 250 -90.6 0.0491 0.0157 0.0282 0.136 Tank eIoni - 7 -415 250 -90.6 0.0368 0.0124 0.0223 0.158 Tank eIoni - 8 -415 250 -90.6 0.0149 0.0218 0.0177 0.176 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 56, Parent ID = 52 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -415 250 -90.6 2.39e-06 0 0 0 Tank initStep - 1 73.2 1.48e+03 5e+03 2.39e-06 0 5.26e+03 5.26e+03 expHall Transportation - 2 -216 2.42e+03 1e+04 2.39e-06 0 5.1e+03 1.04e+04 world Transportation - 3 -506 3.37e+03 1.5e+04 2.39e-06 0 5.1e+03 1.55e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 55, Parent ID = 52 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -415 250 -90.6 2.59e-06 0 0 0 Tank initStep - 1 -2.38e+03 -1.62e+03 -2.5e+03 2.59e-06 0 3.63e+03 3.63e+03 Tank OpRayleigh - 2 1.26e+03 -1.69e+03 -5e+03 2.59e-06 0 4.42e+03 8.05e+03 expHall Transportation - 3 1.26e+03 -1.69e+03 -5e+03 2.59e-06 0 0 8.05e+03 Tank Transportation - 4 5e+03 -643 3.57e+03 2.59e-06 0 9.41e+03 1.75e+04 expHall Transportation - 5 5e+03 -643 3.57e+03 2.59e-06 0 0 1.75e+04 Tank Transportation - 6 1.84e+03 -2.1e+03 5e+03 2.59e-06 0 3.76e+03 2.12e+04 expHall Transportation - 7 1.84e+03 -2.1e+03 5e+03 2.59e-06 0 0 2.12e+04 Tank Transportation - 8 1.19e+03 399 -5e+03 2.59e-06 0 1.03e+04 3.16e+04 expHall Transportation - 9 291 1.26e+03 -1e+04 2.59e-06 0 5.15e+03 3.67e+04 world Transportation - 10 -605 2.11e+03 -1.5e+04 2.59e-06 0 5.15e+03 4.19e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 -415 250 -90.6 0.0149 0 0 0.176 Tank initStep - 9 -415 250 -90.6 0.0145 0.000472 0.000402 0.177 Tank msc - 10 -415 250 -90.6 0 0.0145 0.00475 0.181 Tank eIoni - 11 -415 250 -90.6 0 0 0 0.181 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -416 254 -90.8 0.0748 0 0 0 Tank initStep - 1 -416 254 -90.8 0.0719 0.00295 0.00688 0.00688 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 58, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -416 254 -90.8 2.47e-06 0 0 0 Tank initStep - 1 715 531 130 2.47e-06 2.47e-06 1.19e+03 1.19e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 57, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -416 254 -90.8 2.43e-06 0 0 0 Tank initStep - 1 5e+03 4.21e+03 -3.25e+03 2.43e-06 0 7.42e+03 7.42e+03 expHall Transportation - 2 5e+03 4.21e+03 -3.25e+03 2.43e-06 0 0 7.42e+03 Tank Transportation - 3 4.2e+03 5e+03 -4.04e+03 2.43e-06 0 1.37e+03 8.79e+03 expHall Transportation - 4 4.2e+03 5e+03 -4.04e+03 2.43e-06 0 0 8.79e+03 Tank Transportation - 5 2.97e+03 4.88e+03 -5e+03 2.43e-06 0 1.57e+03 1.04e+04 expHall Transportation - 6 2.97e+03 4.88e+03 -5e+03 2.43e-06 0 0 1.04e+04 Tank Transportation - 7 2.14e+03 5e+03 -3.25e+03 2.43e-06 0 1.94e+03 1.23e+04 expHall Transportation - 8 2.14e+03 5e+03 -3.25e+03 2.43e-06 0 0 1.23e+04 Tank Transportation - 9 -1.69e+03 1.95e+03 5e+03 2.43e-06 0 9.59e+03 2.19e+04 expHall Transportation - 10 -4.13e+03 -2.26e+03 1e+04 2.43e-06 0 6.98e+03 2.89e+04 world Transportation - 11 -6.57e+03 -6.47e+03 1.5e+04 2.43e-06 0 6.98e+03 3.58e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 -416 254 -90.8 0.0719 0 0 0.00688 Tank initStep - 2 -416 254 -90.8 0.068 0.00393 0.00642 0.0133 Tank msc - 3 -416 254 -90.8 0.0352 0.0328 0.0295 0.0428 Tank eIoni - 4 -416 254 -90.8 0.0131 0.0221 0.0171 0.0599 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 59, Parent ID = 51 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -416 254 -90.8 2.45e-06 0 0 0 Tank initStep - 1 -1.62e+03 3.52e+03 5e+03 2.45e-06 0 6.17e+03 6.17e+03 expHall Transportation - 2 -1.62e+03 3.52e+03 5e+03 2.45e-06 0 0 6.17e+03 Tank Transportation - 3 -1.54e+03 5e+03 3.29e+03 2.45e-06 0 2.26e+03 8.43e+03 expHall Transportation - 4 -2.47e+03 6.63e+03 -1e+04 2.45e-06 0 1.34e+04 2.19e+04 world Transportation - 5 -2.82e+03 7.24e+03 -1.5e+04 2.45e-06 0 5.05e+03 2.69e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -416 254 -90.8 0.0131 0 0 0.0599 Tank initStep - 5 -416 254 -90.8 0.0125 0.000626 0.000318 0.0602 Tank msc - 6 -416 254 -90.8 0 0.0125 0.00365 0.0638 Tank eIoni - 7 -416 254 -90.8 0 0 0 0.0638 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -140 -7.5 25.2 0.0127 0 0 0 Tank initStep - 1 -140 -7.5 25.2 0.0123 0.000328 0.000301 0.000301 Tank msc - 2 -140 -7.5 25.2 0 0.0123 0.00359 0.00389 Tank eIoni - 3 -140 -7.5 25.2 0 0 0 0.00389 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -89.4 -16.7 28.9 0.0149 0 0 0 Tank initStep - 1 -89.4 -16.7 28.9 0.0145 0.00037 0.000399 0.000399 Tank msc - 2 -89.4 -16.7 28.9 0 0.0145 0.00477 0.00516 Tank eIoni - 3 -89.4 -16.7 28.9 0 0 0 0.00516 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.88 27.3 31.9 0.3 0 0 0 Tank initStep - 1 5.89 27.4 31.9 0.292 0.0077 0.0503 0.0503 Tank Cerenkov - 2 5.9 27.4 31.9 0.281 0.0111 0.0479 0.0982 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 60, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.89 27.4 31.9 2.61e-06 0 0 0 Tank initStep - 1 472 2e+03 455 2.61e-06 2.61e-06 2.07e+03 2.07e+03 Bubble Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 5.9 27.4 31.9 0.281 0 0 0.0982 Tank initStep - 3 5.92 27.4 31.9 0.271 0.0102 0.0444 0.143 Tank Cerenkov - 4 5.94 27.5 32 0.246 0.0245 0.0414 0.184 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 62, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.93 27.5 31.9 2.42e-06 0 0 0 Tank initStep - 1 1.86e+03 -933 1.12e+03 2.42e-06 2.42e-06 2.35e+03 2.35e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 61, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 5.92 27.4 31.9 3.86e-06 0 0 0 Tank initStep - 1 3.48e+03 103 -1.08e+03 3.86e-06 3.86e-06 3.65e+03 3.65e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 5.94 27.5 32 0.246 0 0 0.184 Tank initStep - 5 5.94 27.5 32 0.243 0.00365 0.0151 0.199 Tank Cerenkov - 6 5.95 27.5 32 0.242 0.000767 0.000894 0.2 Tank Cerenkov - 7 6.03 27.5 32 0.214 0.0281 0.136 0.336 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 63, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6 27.5 32 3.99e-06 0 0 0 Tank initStep - 1 -5e+03 3.06e+03 -2.73e+03 3.99e-06 0 6.47e+03 6.47e+03 expHall Transportation - 2 -5e+03 3.06e+03 -2.73e+03 3.99e-06 0 0 6.47e+03 Tank Transportation - 3 -1.9e+03 5e+03 -4.65e+03 3.99e-06 0 4.13e+03 1.06e+04 expHall Transportation - 4 -1.9e+03 5e+03 -4.65e+03 3.99e-06 0 0 1.06e+04 Tank Transportation - 5 -1.94e+03 4.35e+03 -5e+03 3.99e-06 0 738 1.13e+04 expHall Transportation - 6 -1.94e+03 4.35e+03 -5e+03 3.99e-06 0 0 1.13e+04 Tank Transportation - 7 -2.58e+03 435 -3.8e+03 3.99e-06 3.99e-06 4.14e+03 1.55e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 7 6.03 27.5 32 0.214 0 0 0.336 Tank initStep - 8 6.06 27.6 32 0.177 0.0367 0.0395 0.375 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 65, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.05 27.6 32 3.41e-06 0 0 0 Tank initStep - 1 -5e+03 1.46e+03 1.5e+03 3.41e-06 0 5.41e+03 5.41e+03 expHall Transportation - 2 -1e+04 3.55e+03 4.41e+03 3.41e-06 0 6.15e+03 1.16e+04 world Transportation - 3 -1.5e+04 5.63e+03 7.31e+03 3.41e-06 0 6.15e+03 1.77e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 64, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.05 27.6 32 2.82e-06 0 0 0 Tank initStep - 1 -5e+03 -4.46e+03 3.33e+03 2.82e-06 0 7.49e+03 7.49e+03 expHall Transportation - 2 -5e+03 -4.46e+03 3.33e+03 2.82e-06 0 0 7.49e+03 Tank Transportation - 3 -4.47e+03 -5e+03 4.12e+03 2.82e-06 0 1.1e+03 8.59e+03 expHall Transportation - 4 -4.47e+03 -5e+03 4.12e+03 2.82e-06 0 0 8.59e+03 Tank Transportation - 5 -2.75e+03 -3.44e+03 5e+03 2.82e-06 0 2.48e+03 1.11e+04 expHall Transportation - 6 -2.75e+03 -3.44e+03 5e+03 2.82e-06 0 0 1.11e+04 Tank Transportation - 7 3.47e+03 5e+03 -894 2.82e-06 0 1.2e+04 2.31e+04 expHall Transportation - 8 1e+04 6.07e+03 -8.97e+03 2.82e-06 0 1.04e+04 3.35e+04 world Transportation - 9 1.49e+04 6.86e+03 -1.5e+04 2.82e-06 0 7.8e+03 4.13e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 6.06 27.6 32 0.177 0 0 0.375 Tank initStep - 9 6.07 27.6 32 0.165 0.0119 0.0292 0.404 Tank msc - 10 6.12 27.7 32 0.144 0.0209 0.0811 0.486 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 66, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.11 27.6 32 3.78e-06 0 0 0 Tank initStep - 1 37.7 3.14e+03 1.68e+03 3.78e-06 0 3.52e+03 3.52e+03 Tank OpRayleigh - 2 -2.44e+03 5e+03 3.26e+03 3.78e-06 0 3.48e+03 7e+03 expHall Transportation - 3 -2.44e+03 5e+03 3.26e+03 3.78e-06 0 0 7e+03 Tank Transportation - 4 -4.56e+03 3.99e+03 5e+03 3.78e-06 0 2.92e+03 9.92e+03 expHall Transportation - 5 -4.56e+03 3.99e+03 5e+03 3.78e-06 0 0 9.92e+03 Tank Transportation - 6 -5e+03 3.78e+03 4.83e+03 3.78e-06 0 518 1.04e+04 expHall Transportation - 7 -1e+04 -7.89e+03 -4.17e+03 3.78e-06 0 1.56e+04 2.6e+04 world Transportation - 8 -1.3e+04 -1.5e+04 -9.65e+03 3.78e-06 0 9.48e+03 3.55e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 10 6.12 27.7 32 0.144 0 0 0.486 Tank initStep - 11 6.13 27.7 32 0.136 0.00849 0.0209 0.506 Tank msc - 12 6.14 27.7 32 0.103 0.0326 0.063 0.569 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 68, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.14 27.7 32 3.62e-06 0 0 0 Tank initStep - 1 -1.83e+03 3.75e+03 555 3.62e-06 3.62e-06 4.19e+03 4.19e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 67, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.14 27.7 32 3.92e-06 0 0 0 Tank initStep - 1 5e+03 2.46e+03 3.71e+03 3.92e-06 0 6.66e+03 6.66e+03 expHall Transportation - 2 5e+03 2.46e+03 3.71e+03 3.92e-06 0 0 6.66e+03 Tank Transportation - 3 3.95e+03 2.96e+03 5e+03 3.92e-06 0 1.74e+03 8.4e+03 expHall Transportation - 4 3.95e+03 2.96e+03 5e+03 3.92e-06 0 0 8.4e+03 Tank Transportation - 5 -1.21e+03 5e+03 2.42e+03 3.92e-06 0 6.12e+03 1.45e+04 expHall Transportation - 6 -1.21e+03 5e+03 2.42e+03 3.92e-06 0 0 1.45e+04 Tank Transportation - 7 -5e+03 1.59e+03 179 3.92e-06 0 5.57e+03 2.01e+04 expHall Transportation - 8 -5e+03 1.59e+03 179 3.92e-06 0 0 2.01e+04 Tank Transportation - 9 -2.41e+03 360 -922 3.92e-06 3.92e-06 3.07e+03 2.32e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 12 6.14 27.7 32 0.103 0 0 0.569 Tank initStep - 13 6.15 27.7 32 0.0998 0.00348 0.012 0.581 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 69, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.15 27.7 32 3.62e-06 0 0 0 Tank initStep - 1 889 -3.15e+03 -5e+03 3.62e-06 0 6.02e+03 6.02e+03 expHall Transportation - 2 -336 -1e+04 -9.15e+03 3.62e-06 0 8.1e+03 1.41e+04 world Transportation - 3 -1.23e+03 -1.5e+04 -1.22e+04 3.62e-06 0 5.91e+03 2e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 13 6.15 27.7 32 0.0998 0 0 0.581 Tank initStep - 14 6.16 27.7 32 0.0962 0.00365 0.0113 0.593 Tank msc - 15 6.19 27.7 32 0.0715 0.0247 0.0419 0.635 Tank eIoni - 16 6.2 27.8 32 0.0568 0.0147 0.0309 0.665 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 70, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.2 27.8 32 3.94e-06 0 0 0 Tank initStep - 1 -4.03e+03 216 -2.64e+03 3.94e-06 3.94e-06 4.84e+03 4.84e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 16 6.2 27.8 32 0.0568 0 0 0.665 Tank initStep - 17 6.2 27.8 32 0.0555 0.00135 0.00426 0.67 Tank msc - 18 6.2 27.8 32 0.0437 0.0118 0.0247 0.694 Tank eIoni - 19 6.19 27.8 32 0.0282 0.0154 0.0203 0.715 Tank eIoni - 20 6.19 27.8 32 0.0128 0.0154 0.014 0.729 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 71, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.19 27.8 32 2.4e-06 0 0 0 Tank initStep - 1 -761 -76.8 -564 2.4e-06 2.4e-06 977 977 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 20 6.19 27.8 32 0.0128 0 0 0.729 Tank initStep - 21 6.19 27.8 32 0.0123 0.000493 0.000307 0.729 Tank msc - 22 6.19 27.8 32 0 0.0123 0.00358 0.733 Tank eIoni - 23 6.19 27.8 32 0 0 0 0.733 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 72, Parent ID = 48 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.19 27.8 32 3.77e-06 0 0 0 Tank initStep - 1 4.01e+03 -1.64e+03 -5e+03 3.77e-06 0 6.64e+03 6.64e+03 expHall Transportation - 2 4.01e+03 -1.64e+03 -5e+03 3.77e-06 0 0 6.64e+03 Tank Transportation - 3 5e+03 -2.23e+03 -4.29e+03 3.77e-06 0 1.36e+03 8e+03 expHall Transportation - 4 5e+03 -2.23e+03 -4.29e+03 3.77e-06 0 0 8e+03 Tank Transportation - 5 3.39e+03 -2.96e+03 -1.12e+03 3.77e-06 3.77e-06 3.62e+03 1.16e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 46, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.2 -0.335 0.525 0.511 0 0 0 Tank initStep - 1 -22.9 -143 -161 0.426 2.92e-05 216 216 Tank compt - 2 -40.5 -151 -180 0.398 1.36e-05 27.8 244 Tank compt - 3 -125 -297 -347 0.254 1.42e-05 237 481 Tank compt - 4 -144 -306 -339 0.196 1.36e-05 21.9 503 Tank compt - 5 -150 -301 -248 0.158 1.42e-05 90.7 594 Tank compt - 6 -323 -232 -189 0.112 1.42e-05 196 789 Tank compt - 7 -270 -200 -173 0.0825 1.42e-05 63.3 853 Tank compt - 8 -472 -127 -190 0.0727 1.36e-05 216 1.07e+03 Tank compt - 9 -520 -173 -272 0.0673 1.42e-05 105 1.17e+03 Tank compt - 10 -477 -168 -343 0.0558 1.36e-05 83 1.26e+03 Tank compt - 11 -492 -168 -343 0.0549 2.92e-05 15.3 1.27e+03 Tank compt - 12 -534 -175 -367 0.0524 2.92e-05 48.7 1.32e+03 Tank compt - 13 -558 -173 -356 0.0524 0 26.8 1.35e+03 Tank Rayl - 14 -619 -174 -350 0.051 2.92e-05 61.7 1.41e+03 Tank compt - 15 -667 -218 -325 0.0484 2.92e-05 69.6 1.48e+03 Tank compt - 16 -658 -242 -313 0.0484 0 28.2 1.51e+03 Tank Rayl - 17 -697 -270 -317 0.0481 2.92e-05 48.3 1.55e+03 Tank compt - 18 -790 -306 -302 0.0449 1.36e-05 101 1.66e+03 Tank compt - 19 -802 -282 -290 0.0442 1.36e-05 29.2 1.68e+03 Tank compt - 20 -797 -242 -283 0.0442 0 40.6 1.73e+03 Tank Rayl - 21 -794 -228 -280 0.0417 1.42e-05 14.4 1.74e+03 Tank compt - 22 -846 -192 -286 0.038 1.42e-05 63.8 1.8e+03 Tank compt - 23 -843 -193 -287 0.0375 1.42e-05 4.12 1.81e+03 Tank compt - 24 -841 -195 -287 0.0375 0 2.21 1.81e+03 Tank Rayl - 25 -838 -208 -282 0.0331 1.36e-05 14.1 1.82e+03 Tank compt - 26 -846 -192 -274 0.0329 1.36e-05 19.4 1.84e+03 Tank compt - 27 -931 -109 -149 0.0297 2.92e-05 173 2.02e+03 Tank compt - 28 -897 -117 -158 0 0.000538 35.8 2.05e+03 Tank phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -897 -117 -158 0.0291 0 0 0 Tank initStep - 1 -897 -117 -158 0.0273 0.00178 0.00131 0.00131 Tank msc - 2 -897 -117 -158 0.00393 0.0234 0.0135 0.0148 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 98, Parent ID = 96 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -897 -117 -158 3.61e-06 0 0 0 Tank initStep - 1 -1.68e+03 2.01e+03 2.02e+03 3.61e-06 3.61e-06 3.14e+03 3.14e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 97, Parent ID = 96 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -897 -117 -158 3.12e-06 0 0 0 Tank initStep - 1 845 2.9e+03 5e+03 3.12e-06 0 6.22e+03 6.22e+03 expHall Transportation - 2 845 2.9e+03 5e+03 3.12e-06 0 0 6.22e+03 Tank Transportation - 3 3.03e+03 5e+03 4.35e+03 3.12e-06 0 3.1e+03 9.32e+03 expHall Transportation - 4 3.03e+03 5e+03 4.35e+03 3.12e-06 0 0 9.32e+03 Tank Transportation - 5 5e+03 4.28e+03 4.14e+03 3.12e-06 0 2.11e+03 1.14e+04 expHall Transportation - 6 1e+04 2.59e+03 4.36e+03 3.12e-06 0 5.28e+03 1.67e+04 world Transportation - 7 1.5e+04 888 4.57e+03 3.12e-06 0 5.28e+03 2.2e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -897 -117 -158 0.00393 0 0 0.0148 Tank initStep - 3 -897 -117 -158 0.00378 0.000158 3.92e-05 0.0148 Tank msc - 4 -897 -117 -158 0 0.00378 0.000457 0.0153 Tank eIoni - 5 -897 -117 -158 0 0 0 0.0153 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -931 -109 -149 0.00321 0 0 0 Tank initStep - 1 -931 -109 -149 0.00317 4.62e-05 2.78e-05 2.78e-05 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 99, Parent ID = 95 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -931 -109 -149 3.04e-06 0 0 0 Tank initStep - 1 -1.77e+03 980 -5e+03 3.04e-06 0 5.04e+03 5.04e+03 expHall Transportation - 2 -4.13e+03 3.5e+03 -1e+04 3.04e-06 0 6.08e+03 1.11e+04 world Transportation - 3 -6.5e+03 6.02e+03 -1.5e+04 3.04e-06 0 6.08e+03 1.72e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 -931 -109 -149 0.00317 0 0 2.78e-05 Tank initStep - 2 -931 -109 -149 0.00313 3.79e-05 2.72e-05 5.5e-05 Tank msc - 3 -931 -109 -149 0 0.00313 0.000333 0.000388 Tank eIoni - 4 -931 -109 -149 0 0 0 0.000388 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -846 -192 -274 0.0002 0 0 0 Tank initStep - 1 -846 -192 -274 0.0002 0 5.75e-07 5.75e-07 Tank msc - 2 -846 -192 -274 0 0.0002 7.18e-06 7.76e-06 Tank eIoni - 3 -846 -192 -274 0 0 0 7.76e-06 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -838 -208 -282 0.00436 0 0 0 Tank initStep - 1 -838 -208 -282 0.00399 0.000367 4.67e-05 4.67e-05 Tank msc - 2 -838 -208 -282 0 0.00399 0.000502 0.000549 Tank eIoni - 3 -838 -208 -282 0 0 0 0.000549 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -843 -193 -287 0.000531 0 0 0 Tank initStep - 1 -843 -193 -287 0.000531 0 1.67e-06 1.67e-06 Tank msc - 2 -843 -193 -287 0 0.000531 2.08e-05 2.25e-05 Tank eIoni - 3 -843 -193 -287 0 0 0 2.25e-05 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -846 -192 -286 0.00364 0 0 0 Tank initStep - 1 -846 -192 -286 0.00345 0.000194 3.44e-05 3.44e-05 Tank msc - 2 -846 -192 -286 0 0.00345 0.000392 0.000426 Tank eIoni - 3 -846 -192 -286 0 0 0 0.000426 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -794 -228 -280 0.00251 0 0 0 Tank initStep - 1 -794 -228 -280 0.00251 0 1.84e-05 1.84e-05 Tank msc - 2 -794 -228 -280 0 0.00251 0.00023 0.000248 Tank eIoni - 3 -794 -228 -280 0 0 0 0.000248 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -802 -282 -290 0.000616 0 0 0 Tank initStep - 1 -802 -282 -290 0.000616 0 2.04e-06 2.04e-06 Tank msc - 2 -802 -282 -290 0 0.000616 2.55e-05 2.76e-05 Tank eIoni - 3 -802 -282 -290 0 0 0 2.76e-05 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -790 -306 -302 0.00328 0 0 0 Tank initStep - 1 -790 -306 -302 0.00322 6.56e-05 2.88e-05 2.88e-05 Tank msc - 2 -790 -306 -302 0 0.00322 0.000349 0.000377 Tank eIoni - 3 -790 -306 -302 0 0 0 0.000377 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -697 -270 -317 0.0002 0 0 0 Tank initStep - 1 -697 -270 -317 0.0002 0 5.75e-07 5.75e-07 Tank msc - 2 -697 -270 -317 0 0.0002 7.18e-06 7.76e-06 Tank eIoni - 3 -697 -270 -317 0 0 0 7.76e-06 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -667 -218 -325 0.00261 0 0 0 Tank initStep - 1 -667 -218 -325 0.0026 1.42e-05 1.97e-05 1.97e-05 Tank msc - 2 -667 -218 -325 0 0.0026 0.000244 0.000263 Tank eIoni - 3 -667 -218 -325 0 0 0 0.000263 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -619 -174 -350 0.00138 0 0 0 Tank initStep - 1 -619 -174 -350 0.00138 0 6.95e-06 6.95e-06 Tank msc - 2 -619 -174 -350 0 0.00138 8.69e-05 9.39e-05 Tank eIoni - 3 -619 -174 -350 0 0 0 9.39e-05 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -534 -175 -367 0.00245 0 0 0 Tank initStep - 1 -534 -175 -367 0.0024 5.54e-05 1.77e-05 1.77e-05 Tank msc - 2 -534 -175 -367 0 0.0024 0.000213 0.000231 Tank eIoni - 3 -534 -175 -367 0 0 0 0.000231 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -492 -168 -343 0.000884 0 0 0 Tank initStep - 1 -492 -168 -343 0.000793 9.11e-05 3.45e-06 3.45e-06 Tank msc - 2 -492 -168 -343 0 0.000793 3.67e-05 4.02e-05 Tank eIoni - 3 -492 -168 -343 0 0 0 4.02e-05 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -477 -168 -343 0.0114 0 0 0 Tank initStep - 1 -477 -168 -343 0.0104 0.001 0.000251 0.000251 Tank msc - 2 -477 -168 -343 0 0.0104 0.00267 0.00292 Tank eIoni - 3 -477 -168 -343 0 0 0 0.00292 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 100, Parent ID = 82 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -477 -168 -343 3.67e-06 0 0 0 Tank initStep - 1 -631 5e+03 -4.43e+03 3.67e-06 0 6.59e+03 6.59e+03 expHall Transportation - 2 -631 5e+03 -4.43e+03 3.67e-06 0 0 6.59e+03 Tank Transportation - 3 -285 4.76e+03 -5e+03 3.67e-06 0 713 7.3e+03 expHall Transportation - 4 1e+04 -9.95e+03 -8.68e+03 3.67e-06 0 1.83e+04 2.56e+04 world Transportation - 5 1.35e+04 -1.5e+04 -9.94e+03 3.67e-06 0 6.29e+03 3.19e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -520 -173 -272 0.00541 0 0 0 Tank initStep - 1 -520 -173 -272 0.00508 0.000334 6.78e-05 6.78e-05 Tank msc - 2 -520 -173 -272 0 0.00508 0.000759 0.000827 Tank eIoni - 3 -520 -173 -272 0 0 0 0.000827 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -472 -127 -190 0.00979 0 0 0 Tank initStep - 1 -472 -127 -190 0.00946 0.000326 0.000191 0.000191 Tank msc - 2 -472 -127 -190 0 0.00946 0.00225 0.00244 Tank eIoni - 3 -472 -127 -190 0 0 0 0.00244 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 102, Parent ID = 80 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -472 -127 -190 3.71e-06 0 0 0 Tank initStep - 1 5e+03 -1.15e+03 1.82e+03 3.71e-06 0 5.92e+03 5.92e+03 expHall Transportation - 2 1e+04 -2.18e+03 3.46e+03 3.71e-06 0 5.36e+03 1.13e+04 world Transportation - 3 1.5e+04 -3.2e+03 5.1e+03 3.71e-06 0 5.36e+03 1.66e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 101, Parent ID = 80 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -472 -127 -190 2.72e-06 0 0 0 Tank initStep - 1 -4.87e+03 -1.37e+03 5e+03 2.72e-06 0 6.91e+03 6.91e+03 expHall Transportation - 2 -4.87e+03 -1.37e+03 5e+03 2.72e-06 0 0 6.91e+03 Tank Transportation - 3 -5e+03 -1.45e+03 4.93e+03 2.72e-06 0 172 7.08e+03 expHall Transportation - 4 -8.52e+03 -1e+04 477 2.72e-06 0 1.03e+04 1.73e+04 world Transportation - 5 -1.06e+04 -1.5e+04 -2.12e+03 2.72e-06 0 6e+03 2.33e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -270 -200 -173 0.0296 0 0 0 Tank initStep - 1 -270 -200 -173 0.0285 0.00107 0.00135 0.00135 Tank msc - 2 -270 -200 -173 0.00205 0.0265 0.0141 0.0155 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 103, Parent ID = 79 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -270 -200 -173 3.1e-06 0 0 0 Tank initStep - 1 -120 -172 4.1 3.1e-06 3.1e-06 234 234 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -270 -200 -173 0.00205 0 0 0.0155 Tank initStep - 3 -270 -200 -173 0.00202 2.65e-05 1.32e-05 0.0155 Tank msc - 4 -270 -200 -173 0 0.00202 0.000161 0.0156 Tank eIoni - 5 -270 -200 -173 0 0 0 0.0156 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -323 -232 -189 0.0461 0 0 0 Tank initStep - 1 -323 -232 -189 0.0448 0.0013 0.00295 0.00295 Tank msc - 2 -323 -232 -189 0.0266 0.0182 0.0207 0.0237 Tank eIoni - 3 -323 -232 -189 0.00818 0.0184 0.0131 0.0367 Tank eIoni - 4 -323 -232 -189 0 0.00818 0.00174 0.0385 Tank eIoni - 5 -323 -232 -189 0 0 0 0.0385 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -150 -301 -248 0.038 0 0 0 Tank initStep - 1 -150 -301 -248 0.0368 0.00123 0.00211 0.00211 Tank msc - 2 -150 -301 -248 0.0232 0.0136 0.0177 0.0199 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 105, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -150 -301 -248 3.21e-06 0 0 0 Tank initStep - 1 -5e+03 -2.29e+03 -2.27e+03 3.21e-06 0 5.62e+03 5.62e+03 expHall Transportation - 2 -1e+04 -5.34e+03 -4.41e+03 3.21e-06 0 6.23e+03 1.19e+04 world Transportation - 3 -1.5e+04 -8.38e+03 -6.54e+03 3.21e-06 0 6.23e+03 1.81e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 104, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -150 -301 -248 3.47e-06 0 0 0 Tank initStep - 1 -684 -5e+03 -2.06e+03 3.47e-06 0 5.06e+03 5.06e+03 expHall Transportation - 2 -1.05e+03 -1e+04 -8.48e+03 3.47e-06 0 8.15e+03 1.32e+04 world Transportation - 3 -1.42e+03 -1.5e+04 -1.49e+04 3.47e-06 0 8.15e+03 2.14e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -150 -301 -248 0.0232 0 0 0.0199 Tank initStep - 3 -150 -301 -248 0.0226 0.00061 0.000877 0.0207 Tank msc - 4 -150 -301 -248 0.0057 0.0169 0.0104 0.0312 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 106, Parent ID = 77 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -150 -301 -248 2.53e-06 0 0 0 Tank initStep - 1 -613 -531 -5e+03 2.53e-06 0 4.78e+03 4.78e+03 expHall Transportation - 2 -613 -531 -5e+03 2.53e-06 0 0 4.78e+03 Tank Transportation - 3 1.6e+03 401 5e+03 2.53e-06 0 1.03e+04 1.51e+04 expHall Transportation - 4 3.04e+03 326 1e+04 2.53e-06 0 5.2e+03 2.03e+04 world Transportation - 5 4.48e+03 252 1.5e+04 2.53e-06 0 5.2e+03 2.55e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -150 -301 -248 0.0057 0 0 0.0312 Tank initStep - 5 -150 -301 -248 0.00559 0.000106 7.41e-05 0.0312 Tank msc - 6 -150 -301 -248 0 0.00559 0.000897 0.0321 Tank eIoni - 7 -150 -301 -248 0 0 0 0.0321 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -144 -306 -339 0.0577 0 0 0 Tank initStep - 1 -144 -306 -339 0.0563 0.00138 0.00438 0.00438 Tank msc - 2 -144 -306 -339 0.0393 0.017 0.025 0.0293 Tank eIoni - 3 -144 -306 -339 0.0278 0.0115 0.0187 0.0481 Tank eIoni - 4 -144 -306 -339 0.00334 0.0245 0.0137 0.0618 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 107, Parent ID = 76 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -144 -306 -339 3.44e-06 0 0 0 Tank initStep - 1 -2e+03 1.81e+03 -5e+03 3.44e-06 0 5.45e+03 5.45e+03 expHall Transportation - 2 -1e+04 9.99e+03 -8.31e+03 3.44e-06 0 1.19e+04 1.74e+04 world Transportation - 3 -1.49e+04 1.5e+04 -1.03e+04 3.44e-06 0 7.3e+03 2.47e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -144 -306 -339 0.00334 0 0 0.0618 Tank initStep - 5 -144 -306 -339 0.00328 5.22e-05 2.96e-05 0.0618 Tank msc - 6 -144 -306 -339 0 0.00328 0.000361 0.0622 Tank eIoni - 7 -144 -306 -339 0 0 0 0.0622 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -125 -297 -347 0.144 0 0 0 Tank initStep - 1 -125 -297 -347 0.14 0.00401 0.0209 0.0209 Tank msc - 2 -125 -297 -347 0.124 0.0167 0.0656 0.0865 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 110, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -125 -297 -347 3.69e-06 0 0 0 Tank initStep - 1 3.15e+03 5e+03 410 3.69e-06 0 6.27e+03 6.27e+03 expHall Transportation - 2 7.01e+03 1e+04 1.49e+03 3.69e-06 0 6.41e+03 1.27e+04 world Transportation - 3 1.09e+04 1.5e+04 2.58e+03 3.69e-06 0 6.41e+03 1.91e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 109, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -125 -297 -347 3.89e-06 0 0 0 Tank initStep - 1 -2.46e+03 444 -1.17e+03 3.89e-06 0 2.58e+03 2.58e+03 Tank OpRayleigh - 2 -1.07e+03 903 -1.09e+03 3.89e-06 3.89e-06 1.47e+03 4.06e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 108, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -125 -297 -347 3.44e-06 0 0 0 Tank initStep - 1 4.48e+03 -558 5e+03 3.44e-06 0 7.06e+03 7.06e+03 expHall Transportation - 2 1e+04 -1.4e+03 5.95e+03 3.44e-06 0 5.66e+03 1.27e+04 world Transportation - 3 1.5e+04 -2.17e+03 6.81e+03 3.44e-06 0 5.13e+03 1.79e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -125 -297 -347 0.124 0 0 0.0865 Tank initStep - 3 -125 -297 -347 0.117 0.00619 0.0162 0.103 Tank msc - 4 -125 -297 -347 0.0693 0.0482 0.0527 0.155 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 113, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -125 -297 -347 2.44e-06 0 0 0 Tank initStep - 1 -1.65e+03 2.64e+03 4.72e+03 2.44e-06 0 6.05e+03 6.05e+03 Tank OpRayleigh - 2 -5e+03 1.49e+03 3.83e+03 2.44e-06 0 3.65e+03 9.7e+03 expHall Transportation - 3 -1e+04 -1.65e+03 2.4e+03 2.44e-06 0 6.08e+03 1.58e+04 world Transportation - 4 -1.5e+04 -4.79e+03 971 2.44e-06 0 6.08e+03 2.19e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 112, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -125 -297 -347 3.42e-06 0 0 0 Tank initStep - 1 -3.42e+03 -783 -5e+03 3.42e-06 0 5.72e+03 5.72e+03 expHall Transportation - 2 -1e+04 -665 -9.33e+03 3.42e-06 0 7.87e+03 1.36e+04 world Transportation - 3 -1.5e+04 -576 -1.26e+04 3.42e-06 0 5.99e+03 1.96e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 111, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -125 -297 -347 3.87e-06 0 0 0 Tank initStep - 1 -3.86e+03 -2.96e+03 -5e+03 3.87e-06 0 6.53e+03 6.53e+03 expHall Transportation - 2 -3.86e+03 -2.96e+03 -5e+03 3.87e-06 0 0 6.53e+03 Tank Transportation - 3 -4.92e+03 -5e+03 -1.92e+03 3.87e-06 0 3.84e+03 1.04e+04 expHall Transportation - 4 -4.92e+03 -5e+03 -1.92e+03 3.87e-06 0 0 1.04e+04 Tank Transportation - 5 -4.93e+03 -4.95e+03 -1.9e+03 3.87e-06 3.87e-06 57.8 1.04e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -125 -297 -347 0.0693 0 0 0.155 Tank initStep - 5 -125 -297 -347 0.0675 0.00181 0.00602 0.161 Tank msc - 6 -125 -297 -347 0.0511 0.0163 0.0293 0.191 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 114, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -125 -297 -347 2.5e-06 0 0 0 Tank initStep - 1 1.87e+03 5e+03 2.63e+03 2.5e-06 0 6.4e+03 6.4e+03 expHall Transportation - 2 1.87e+03 5e+03 2.63e+03 2.5e-06 0 0 6.4e+03 Tank Transportation - 3 4.78e+03 1.99e+03 5e+03 2.5e-06 0 4.81e+03 1.12e+04 expHall Transportation - 4 1e+04 -4.2e+03 6.58e+03 2.5e-06 0 8.25e+03 1.95e+04 world Transportation - 5 1.5e+04 -1.01e+04 8.09e+03 2.5e-06 0 7.9e+03 2.73e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 -125 -297 -347 0.0511 0 0 0.191 Tank initStep - 7 -125 -297 -347 0.0496 0.0015 0.00354 0.194 Tank msc - 8 -125 -297 -347 0.0359 0.0137 0.0225 0.217 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 115, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -125 -297 -347 2.23e-06 0 0 0 Tank initStep - 1 2.1e+03 -668 2.57e+03 2.23e-06 2.23e-06 3.68e+03 3.68e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 -125 -297 -347 0.0359 0 0 0.217 Tank initStep - 9 -125 -297 -347 0.0352 0.00078 0.00191 0.219 Tank msc - 10 -125 -297 -347 0.0203 0.0149 0.0171 0.236 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 116, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -125 -297 -347 2.53e-06 0 0 0 Tank initStep - 1 -4.83e+03 5e+03 -3.4e+03 2.53e-06 0 7.72e+03 7.72e+03 expHall Transportation - 2 -4.83e+03 5e+03 -3.4e+03 2.53e-06 0 0 7.72e+03 Tank Transportation - 3 -5e+03 4.71e+03 -3.77e+03 2.53e-06 0 500 8.22e+03 expHall Transportation - 4 -5e+03 4.71e+03 -3.77e+03 2.53e-06 0 0 8.22e+03 Tank Transportation - 5 -4.38e+03 3.44e+03 -5e+03 2.53e-06 0 1.88e+03 1.01e+04 expHall Transportation - 6 -4.38e+03 3.44e+03 -5e+03 2.53e-06 0 0 1.01e+04 Tank Transportation - 7 -4.28e+03 1.28e+03 -3.22e+03 2.53e-06 2.53e-06 2.8e+03 1.29e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 10 -125 -297 -347 0.0203 0 0 0.236 Tank initStep - 11 -125 -297 -347 0.0198 0.000507 0.000691 0.236 Tank msc - 12 -125 -297 -347 0 0.0198 0.00826 0.245 Tank eIoni - 13 -125 -297 -347 0 0 0 0.245 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 117, Parent ID = 75 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -125 -297 -347 3.28e-06 0 0 0 Tank initStep - 1 -200 5e+03 1.96e+03 3.28e-06 0 5.78e+03 5.78e+03 expHall Transportation - 2 -2.22e+03 1e+04 7.65e+03 3.28e-06 0 7.84e+03 1.36e+04 world Transportation - 3 -4.23e+03 1.5e+04 1.33e+04 3.28e-06 0 7.84e+03 2.15e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -40.5 -151 -180 0.0274 0 0 0 Tank initStep - 1 -40.5 -151 -180 0.0271 0.000398 0.00118 0.00118 Tank msc - 2 -40.5 -151 -180 0.0108 0.0163 0.0133 0.0145 Tank eIoni - 3 -40.5 -151 -180 0 0.0108 0.00282 0.0173 Tank eIoni - 4 -40.5 -151 -180 0 0 0 0.0173 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -22.9 -143 -161 0.0852 0 0 0 Tank initStep - 1 -22.9 -143 -161 0.0818 0.00342 0.00861 0.00861 Tank msc - 2 -22.8 -143 -161 0.0633 0.0185 0.0353 0.0439 Tank eIoni - 3 -22.8 -143 -161 0.0414 0.0219 0.0276 0.0715 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 120, Parent ID = 73 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -22.8 -143 -161 2.28e-06 0 0 0 Tank initStep - 1 -5e+03 -1.3e+03 -4.34e+03 2.28e-06 0 6.6e+03 6.6e+03 expHall Transportation - 2 -6.6e+03 -3.03e+03 -1e+04 2.28e-06 0 6.14e+03 1.27e+04 world Transportation - 3 -8.02e+03 -4.57e+03 -1.5e+04 2.28e-06 0 5.42e+03 1.82e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 119, Parent ID = 73 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -22.8 -143 -161 2.96e-06 0 0 0 Tank initStep - 1 -346 -1.45e+03 -11 2.96e-06 2.96e-06 1.35e+03 1.35e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 118, Parent ID = 73 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -22.8 -143 -161 3.29e-06 0 0 0 Tank initStep - 1 3.66e+03 -38.3 5e+03 3.29e-06 0 6.34e+03 6.34e+03 expHall Transportation - 2 1e+04 2.79e+03 7.66e+03 3.29e-06 0 7.43e+03 1.38e+04 world Transportation - 3 1.5e+04 5.01e+03 9.75e+03 3.29e-06 0 5.86e+03 1.96e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 46 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 -22.8 -143 -161 0.0414 0 0 0.0715 Tank initStep - 4 -22.8 -143 -161 0.0403 0.00112 0.00245 0.0739 Tank msc - 5 -22.8 -143 -161 0.0221 0.0182 0.0191 0.093 Tank eIoni - 6 -22.8 -143 -161 0 0.0221 0.01 0.103 Tank eIoni - 7 -22.8 -143 -161 0 0 0 0.103 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 121, Parent ID = 73 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -22.8 -143 -161 3.85e-06 0 0 0 Tank initStep - 1 -1.35e+03 956 -5e+03 3.85e-06 0 5.14e+03 5.14e+03 expHall Transportation - 2 -4.43e+03 4.35e+03 -1e+04 3.85e-06 0 6.78e+03 1.19e+04 world Transportation - 3 -7.5e+03 7.74e+03 -1.5e+04 3.85e-06 0 6.78e+03 1.87e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 0.5 0 0 0 Tank initStep - 1 0.12 -0.00832 0.0526 0.482 0.018 0.139 0.139 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0886 -0.00616 0.0389 2.31e-06 0 0 0 Tank initStep - 1 4.13e+03 -3.26e+03 1.89e+03 2.31e-06 2.31e-06 5.59e+03 5.59e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0873 -0.00607 0.0383 2.55e-06 0 0 0 Tank initStep - 1 5e+03 2.5e+03 1.35e+03 2.55e-06 0 5.75e+03 5.75e+03 expHall Transportation - 2 5e+03 2.5e+03 1.35e+03 2.55e-06 0 0 5.75e+03 Tank Transportation - 3 3.86e+03 2.81e+03 3.1e+03 2.55e-06 2.55e-06 2.12e+03 7.87e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 0.12 -0.00832 0.0526 0.482 0 0 0.139 Tank initStep - 2 0.216 -0.0122 0.139 0.461 0.0213 0.13 0.269 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.18 -0.0107 0.106 3.51e-06 0 0 0 Tank initStep - 1 2.23e+03 -998 783 3.51e-06 3.51e-06 2.57e+03 2.57e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.161 -0.00998 0.0893 2.21e-06 0 0 0 Tank initStep - 1 3.36e+03 -3.2e+03 5e+03 2.21e-06 0 6.82e+03 6.82e+03 expHall Transportation - 2 3.36e+03 -3.2e+03 5e+03 2.21e-06 0 0 6.82e+03 Tank Transportation - 3 5e+03 -3.19e+03 3.1e+03 2.21e-06 0 2.51e+03 9.33e+03 expHall Transportation - 4 5e+03 -3.19e+03 3.1e+03 2.21e-06 0 0 9.33e+03 Tank Transportation - 5 2.66e+03 -3.19e+03 -748 2.21e-06 2.21e-06 4.5e+03 1.38e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.125 -0.00852 0.0569 3.71e-06 0 0 0 Tank initStep - 1 5e+03 2.09e+03 1.96e+03 3.71e-06 0 5.76e+03 5.76e+03 expHall Transportation - 2 1e+04 5.48e+03 3.67e+03 3.71e-06 0 6.28e+03 1.2e+04 world Transportation - 3 1.5e+04 8.88e+03 5.39e+03 3.71e-06 0 6.28e+03 1.83e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 0.216 -0.0122 0.139 0.461 0 0 0.269 Tank initStep - 3 0.291 -0.0216 0.228 0.444 0.0168 0.118 0.388 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.257 -0.0174 0.187 3.82e-06 0 0 0 Tank initStep - 1 5e+03 1.97e+03 3.02e+03 3.82e-06 0 6.17e+03 6.17e+03 expHall Transportation - 2 7.89e+03 5.92e+03 1e+04 3.82e-06 0 8.52e+03 1.47e+04 world Transportation - 3 9.96e+03 8.75e+03 1.5e+04 3.82e-06 0 6.11e+03 2.08e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.252 -0.0167 0.182 2.79e-06 0 0 0 Tank initStep - 1 5e+03 -150 1.9e+03 2.79e-06 0 5.35e+03 5.35e+03 expHall Transportation - 2 1e+04 501 6.38e+03 2.79e-06 0 6.75e+03 1.21e+04 world Transportation - 3 1.5e+04 1.15e+03 1.09e+04 2.79e-06 0 6.75e+03 1.88e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 0.291 -0.0216 0.228 0.444 0 0 0.388 Tank initStep - 4 0.326 -0.0724 0.318 0.415 0.0286 0.11 0.497 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.319 -0.062 0.299 2.55e-06 0 0 0 Tank initStep - 1 4.62e+03 5e+03 -1.38e+03 2.55e-06 0 6.95e+03 6.95e+03 expHall Transportation - 2 1e+04 7.67e+03 -2.93e+03 2.55e-06 0 6.2e+03 1.31e+04 world Transportation - 3 1.5e+04 1.02e+04 -4.38e+03 2.55e-06 0 5.77e+03 1.89e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.292 -0.0231 0.23 2.71e-06 0 0 0 Tank initStep - 1 2.22e+03 3.21e+03 5e+03 2.71e-06 0 6.34e+03 6.34e+03 expHall Transportation - 2 7.67e+03 1e+04 7.65e+03 2.71e-06 0 9.09e+03 1.54e+04 world Transportation - 3 1.17e+04 1.5e+04 9.59e+03 2.71e-06 0 6.7e+03 2.21e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.299 -0.0337 0.249 3.17e-06 0 0 0 Tank initStep - 1 -3.2e+03 -1.07e+03 -5e+03 3.17e-06 0 6.03e+03 6.03e+03 expHall Transportation - 2 -7.26e+03 -780 -1e+04 3.17e-06 0 6.45e+03 1.25e+04 world Transportation - 3 -1.13e+04 -488 -1.5e+04 3.17e-06 0 6.45e+03 1.89e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.325 -0.0705 0.314 3.22e-06 0 0 0 Tank initStep - 1 5e+03 -1.28e+03 2.7e+03 3.22e-06 0 5.82e+03 5.82e+03 expHall Transportation - 2 1e+04 -2.28e+03 7.78e+03 3.22e-06 0 7.2e+03 1.3e+04 world Transportation - 3 1.5e+04 -3.27e+03 1.29e+04 3.22e-06 0 7.2e+03 2.02e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.316 -0.0584 0.293 2.98e-06 0 0 0 Tank initStep - 1 -21.9 -5e+03 4.08e+03 2.98e-06 0 6.45e+03 6.45e+03 expHall Transportation - 2 -776 -9.13e+03 1e+04 2.98e-06 0 7.26e+03 1.37e+04 world Transportation - 3 -1.41e+03 -1.26e+04 1.5e+04 2.98e-06 0 6.13e+03 1.98e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.308 -0.0455 0.27 3.76e-06 0 0 0 Tank initStep - 1 -999 -2.91e+03 5e+03 3.76e-06 0 5.87e+03 5.87e+03 expHall Transportation - 2 -1.77e+03 -7.7e+03 1e+04 3.76e-06 0 6.97e+03 1.28e+04 world Transportation - 3 -2.53e+03 -1.25e+04 1.5e+04 3.76e-06 0 6.97e+03 1.98e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.316 -0.0571 0.29 3.31e-06 0 0 0 Tank initStep - 1 2.25e+03 -5e+03 2.91e+03 3.31e-06 0 6.21e+03 6.21e+03 expHall Transportation - 2 1e+04 -9.52e+03 8.13e+03 3.31e-06 0 1.04e+04 1.66e+04 world Transportation - 3 1.5e+04 -1.24e+04 1.15e+04 3.31e-06 0 6.69e+03 2.33e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.305 -0.0416 0.263 3.57e-06 0 0 0 Tank initStep - 1 374 4.03 1.47e+03 3.57e-06 3.57e-06 1.51e+03 1.51e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 0.326 -0.0724 0.318 0.415 0 0 0.497 Tank initStep - 5 0.361 -0.129 0.385 0.392 0.0229 0.096 0.594 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.355 -0.119 0.374 3.23e-06 0 0 0 Tank initStep - 1 -34 -71.7 35.3 3.23e-06 3.23e-06 86.7 86.7 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.335 -0.0868 0.335 2.99e-06 0 0 0 Tank initStep - 1 1.87e+03 -5e+03 1.97e+03 2.99e-06 0 5.69e+03 5.69e+03 expHall Transportation - 2 4.72e+03 -1e+04 4.22e+03 2.99e-06 0 6.18e+03 1.19e+04 world Transportation - 3 7.57e+03 -1.5e+04 6.46e+03 2.99e-06 0 6.18e+03 1.8e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 0.361 -0.129 0.385 0.392 0 0 0.594 Tank initStep - 6 0.39 -0.184 0.443 0.352 0.0406 0.0858 0.679 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.361 -0.129 0.386 2.47e-06 0 0 0 Tank initStep - 1 1.41e+03 1.3e+03 -5e+03 2.47e-06 0 5.36e+03 5.36e+03 expHall Transportation - 2 5.88e+03 2.75e+03 -1e+04 2.47e-06 0 6.86e+03 1.22e+04 world Transportation - 3 1.03e+04 4.21e+03 -1.5e+04 2.47e-06 0 6.86e+03 1.91e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.364 -0.134 0.391 2.6e-06 0 0 0 Tank initStep - 1 -1.22e+03 -1.91e+03 458 2.6e-06 2.6e-06 2.31e+03 2.31e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.361 -0.129 0.386 2.06e-06 0 0 0 Tank initStep - 1 3.71e+03 -2.06e+03 4.11e+03 2.06e-06 2.06e-06 5.9e+03 5.9e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.383 -0.171 0.429 2.91e-06 0 0 0 Tank initStep - 1 5e+03 -3.8e+03 3.28e+03 2.91e-06 0 7.08e+03 7.08e+03 expHall Transportation - 2 5.2e+03 -8.65e+03 1e+04 2.91e-06 0 8.29e+03 1.54e+04 world Transportation - 3 5.34e+03 -1.23e+04 1.5e+04 2.91e-06 0 6.17e+03 2.15e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 0.39 -0.184 0.443 0.352 0 0 0.679 Tank initStep - 7 0.422 -0.234 0.478 0.34 0.0122 0.069 0.748 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.392 -0.187 0.445 3.92e-06 0 0 0 Tank initStep - 1 5e+03 1.7e+03 -2.76e+03 3.92e-06 0 5.96e+03 5.96e+03 expHall Transportation - 2 8.8e+03 7.56e+03 -1e+04 3.92e-06 0 1.01e+04 1.6e+04 world Transportation - 3 1.14e+04 1.16e+04 -1.5e+04 3.92e-06 0 6.94e+03 2.3e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.404 -0.207 0.459 2.78e-06 0 0 0 Tank initStep - 1 4.31e+03 -2.52e+03 3.41e+03 2.78e-06 2.78e-06 6.05e+03 6.05e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.418 -0.228 0.474 2.5e-06 0 0 0 Tank initStep - 1 2.93e+03 -1.74e+03 2.39e+03 2.5e-06 2.5e-06 4.16e+03 4.16e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 7 0.422 -0.234 0.478 0.34 0 0 0.748 Tank initStep - 8 0.448 -0.285 0.506 0.332 0.00747 0.0642 0.813 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.441 -0.271 0.498 2.99e-06 0 0 0 Tank initStep - 1 5e+03 -3.12e+03 -2.84e+03 2.99e-06 0 6.54e+03 6.54e+03 expHall Transportation - 2 9.94e+03 -1e+04 -7.99e+03 2.99e-06 0 9.91e+03 1.65e+04 world Transportation - 3 1.35e+04 -1.5e+04 -1.17e+04 2.99e-06 0 7.21e+03 2.37e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.427 -0.245 0.484 3.32e-06 0 0 0 Tank initStep - 1 827 -5e+03 992 3.32e-06 0 5.16e+03 5.16e+03 expHall Transportation - 2 827 -5e+03 992 3.32e-06 0 0 5.16e+03 Tank Transportation - 3 -739 5e+03 2.64e+03 3.32e-06 0 1.03e+04 1.54e+04 expHall Transportation - 4 -746 1e+04 5.97e+03 3.32e-06 0 6.01e+03 2.14e+04 world Transportation - 5 -752 1.5e+04 9.3e+03 3.32e-06 0 6.01e+03 2.74e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 0.448 -0.285 0.506 0.332 0 0 0.813 Tank initStep - 9 0.453 -0.342 0.529 0.316 0.0165 0.0615 0.874 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.452 -0.332 0.525 3.5e-06 0 0 0 Tank initStep - 1 -281 181 -5e+03 3.5e-06 0 5.01e+03 5.01e+03 expHall Transportation - 2 1.15e+03 -951 -1e+04 3.5e-06 0 5.32e+03 1.03e+04 world Transportation - 3 2.59e+03 -2.08e+03 -1.5e+04 3.5e-06 0 5.32e+03 1.57e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 9 0.453 -0.342 0.529 0.316 0 0 0.874 Tank initStep - 10 0.468 -0.393 0.541 0.307 0.0082 0.0556 0.93 Tank Cerenkov - 11 0.497 -0.435 0.543 0.295 0.0121 0.0527 0.982 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.496 -0.434 0.543 3.95e-06 0 0 0 Tank initStep - 1 3.79e+03 -5e+03 -1.84e+03 3.95e-06 0 6.54e+03 6.54e+03 expHall Transportation - 2 3.79e+03 -5e+03 -1.84e+03 3.95e-06 0 0 6.54e+03 Tank Transportation - 3 5e+03 -4.2e+03 -2.01e+03 3.95e-06 0 1.46e+03 8e+03 expHall Transportation - 4 5e+03 -4.2e+03 -2.01e+03 3.95e-06 0 0 8e+03 Tank Transportation - 5 3.26e+03 -1.44e+03 -1.06e+03 3.95e-06 3.95e-06 3.4e+03 1.14e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 11 0.497 -0.435 0.543 0.295 0 0 0.982 Tank initStep - 12 0.531 -0.47 0.548 0.286 0.00962 0.0487 1.03 Tank Cerenkov - 13 0.561 -0.503 0.552 0.268 0.0176 0.0456 1.08 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.551 -0.492 0.55 4.07e-06 0 0 0 Tank initStep - 1 -3.87e+03 3.61e+03 -5e+03 4.07e-06 0 7.28e+03 7.28e+03 expHall Transportation - 2 -3.87e+03 3.61e+03 -5e+03 4.07e-06 0 0 7.28e+03 Tank Transportation - 3 -4.64e+03 5e+03 -3.23e+03 4.07e-06 0 2.38e+03 9.66e+03 expHall Transportation - 4 -4.64e+03 5e+03 -3.23e+03 4.07e-06 0 0 9.66e+03 Tank Transportation - 5 -5e+03 4.01e+03 -2.4e+03 4.07e-06 0 1.35e+03 1.1e+04 expHall Transportation - 6 -5.93e+03 -1e+04 9.18e+03 4.07e-06 0 1.82e+04 2.92e+04 world Transportation - 7 -6.27e+03 -1.5e+04 1.33e+04 4.07e-06 0 6.49e+03 3.57e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 13 0.561 -0.503 0.552 0.268 0 0 1.08 Tank initStep - 14 0.587 -0.532 0.559 0.262 0.00565 0.0402 1.12 Tank Cerenkov - 15 0.609 -0.56 0.57 0.257 0.00504 0.0386 1.16 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.591 -0.538 0.561 2.51e-06 0 0 0 Tank initStep - 1 -3.09e+03 5e+03 2.51e+03 2.51e-06 0 6.39e+03 6.39e+03 expHall Transportation - 2 -3.09e+03 5e+03 2.51e+03 2.51e-06 0 0 6.39e+03 Tank Transportation - 3 -5e+03 4.25e+03 3.29e+03 2.51e-06 0 2.2e+03 8.59e+03 expHall Transportation - 4 -5e+03 4.25e+03 3.29e+03 2.51e-06 0 0 8.59e+03 Tank Transportation - 5 -4.46e+03 1.34e+03 5e+03 2.51e-06 0 3.42e+03 1.2e+04 expHall Transportation - 6 -4.46e+03 1.34e+03 5e+03 2.51e-06 0 0 1.2e+04 Tank Transportation - 7 -1.66e+03 -5e+03 1.83e+03 2.51e-06 0 7.62e+03 1.96e+04 expHall Transportation - 8 -1.66e+03 -5e+03 1.83e+03 2.51e-06 0 0 1.96e+04 Tank Transportation - 9 5e+03 -1.91e+03 -1.06e+03 2.51e-06 0 7.9e+03 2.75e+04 expHall Transportation - 10 5e+03 -1.91e+03 -1.06e+03 2.51e-06 0 0 2.75e+04 Tank Transportation - 11 -3.64e+03 5e+03 -4.38e+03 2.51e-06 0 1.15e+04 3.91e+04 expHall Transportation - 12 -3.64e+03 5e+03 -4.38e+03 2.51e-06 0 0 3.91e+04 Tank Transportation - 13 -3.7e+03 3.66e+03 -5e+03 2.51e-06 0 1.48e+03 4.05e+04 expHall Transportation - 14 -3.7e+03 3.66e+03 -5e+03 2.51e-06 0 0 4.05e+04 Tank Transportation - 15 -5e+03 -509 -2.28e+03 2.51e-06 0 5.14e+03 4.57e+04 expHall Transportation - 16 -5e+03 -509 -2.28e+03 2.51e-06 0 0 4.57e+04 Tank Transportation - 17 -495 -5e+03 -673 2.51e-06 0 6.56e+03 5.22e+04 expHall Transportation - 18 -495 -5e+03 -673 2.51e-06 0 0 5.22e+04 Tank Transportation - 19 4.67e+03 408 5e+03 2.51e-06 0 9.38e+03 6.16e+04 expHall Transportation - 20 4.67e+03 408 5e+03 2.51e-06 0 0 6.16e+04 Tank Transportation - 21 5e+03 872 4.64e+03 2.51e-06 0 674 6.23e+04 expHall Transportation - 22 5e+03 872 4.64e+03 2.51e-06 0 0 6.23e+04 Tank Transportation - 23 3.6e+03 5e+03 2.68e+03 2.51e-06 0 4.78e+03 6.71e+04 expHall Transportation - 24 3.6e+03 5e+03 2.68e+03 2.51e-06 0 0 6.71e+04 Tank Transportation - 25 -5e+03 -2.59e+03 1.06e+03 2.51e-06 0 1.16e+04 7.87e+04 expHall Transportation - 26 -5e+03 -2.59e+03 1.06e+03 2.51e-06 0 0 7.87e+04 Tank Transportation - 27 -4.98e+03 -2.61e+03 1.07e+03 2.51e-06 2.51e-06 32.2 7.87e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 15 0.609 -0.56 0.57 0.257 0 0 1.16 Tank initStep - 16 0.637 -0.584 0.575 0.251 0.00679 0.0372 1.19 Tank Cerenkov - 17 0.66 -0.603 0.578 0.243 0.00741 0.0308 1.22 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.637 -0.584 0.575 3.56e-06 0 0 0 Tank initStep - 1 -5e+03 -758 300 3.56e-06 0 5.07e+03 5.07e+03 expHall Transportation - 2 -5e+03 -758 300 3.56e-06 0 0 5.07e+03 Tank Transportation - 3 5e+03 326 -1.87e+03 3.56e-06 0 1.03e+04 1.54e+04 expHall Transportation - 4 1e+04 1.62e+03 -3.95e+03 3.56e-06 0 5.57e+03 2.09e+04 world Transportation - 5 1.5e+04 2.91e+03 -6.03e+03 3.56e-06 0 5.57e+03 2.65e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 17 0.66 -0.603 0.578 0.243 0 0 1.22 Tank initStep - 18 0.662 -0.605 0.579 0.243 0.000367 0.00273 1.23 Tank Cerenkov - 19 0.663 -0.605 0.579 0.242 0.000303 0.00134 1.23 Tank Cerenkov - 20 0.663 -0.605 0.579 0.242 0 0.000193 1.23 Tank Cerenkov - 21 0.664 -0.605 0.579 0.242 3.52e-06 0.000193 1.23 Tank Cerenkov - 22 0.664 -0.606 0.579 0.242 0 0.00018 1.23 Tank Cerenkov - 23 0.664 -0.606 0.579 0.242 0 0.00018 1.23 Tank Cerenkov - 24 0.664 -0.606 0.579 0.242 0 0.00018 1.23 Tank Cerenkov - 25 0.664 -0.606 0.579 0.242 3.45e-05 0.00018 1.23 Tank Cerenkov - 26 0.664 -0.606 0.579 0.242 0 4.92e-05 1.23 Tank Cerenkov - 27 0.664 -0.606 0.579 0.242 0 4.92e-05 1.23 Tank Cerenkov - 28 0.664 -0.606 0.579 0.242 0 4.92e-05 1.23 Tank Cerenkov - 29 0.664 -0.606 0.579 0.242 5.4e-05 4.92e-05 1.23 Tank Cerenkov - 30 0.767 -0.658 0.604 0.175 0.0676 0.133 1.36 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 39, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.719 -0.634 0.593 3.22e-06 0 0 0 Tank initStep - 1 423 2.56e+03 5e+03 3.22e-06 0 5.63e+03 5.63e+03 expHall Transportation - 2 423 2.56e+03 5e+03 3.22e-06 0 0 5.63e+03 Tank Transportation - 3 2.46e+03 4.18e+03 4.3e+03 3.22e-06 0 2.7e+03 8.33e+03 Tank OpRayleigh - 4 5e+03 -306 -2.83e+03 3.22e-06 0 8.8e+03 1.71e+04 expHall Transportation - 5 5e+03 -306 -2.83e+03 3.22e-06 0 0 1.71e+04 Tank Transportation - 6 2.43e+03 -654 -5e+03 3.22e-06 0 3.38e+03 2.05e+04 expHall Transportation - 7 2.43e+03 -654 -5e+03 3.22e-06 0 0 2.05e+04 Tank Transportation - 8 -5e+03 -1.43e+03 -3.63e+03 3.22e-06 0 7.6e+03 2.81e+04 expHall Transportation - 9 -1e+04 -2.98e+03 -2.11e+03 3.22e-06 0 5.45e+03 3.36e+04 world Transportation - 10 -1.5e+04 -4.52e+03 -586 3.22e-06 0 5.45e+03 3.9e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 38, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.704 -0.626 0.589 3.43e-06 0 0 0 Tank initStep - 1 132 -773 -2.95e+03 3.43e-06 3.43e-06 3.05e+03 3.05e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 37, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.765 -0.657 0.604 3.46e-06 0 0 0 Tank initStep - 1 -2.2e+03 3.48e+03 3.21e+03 3.46e-06 3.46e-06 5.22e+03 5.22e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 36, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.699 -0.623 0.588 2.09e-06 0 0 0 Tank initStep - 1 -5e+03 -4.85e+03 -3.82e+03 2.09e-06 0 7.95e+03 7.95e+03 expHall Transportation - 2 -5e+03 -4.85e+03 -3.82e+03 2.09e-06 0 0 7.95e+03 Tank Transportation - 3 -4.89e+03 -5e+03 -3.98e+03 2.09e-06 0 241 8.19e+03 expHall Transportation - 4 -4.89e+03 -5e+03 -3.98e+03 2.09e-06 0 0 8.19e+03 Tank Transportation - 5 -4.49e+03 -84.3 -5e+03 2.09e-06 0 5.04e+03 1.32e+04 expHall Transportation - 6 -4.49e+03 -84.3 -5e+03 2.09e-06 0 0 1.32e+04 Tank Transportation - 7 -4.51e+03 5e+03 -3.74e+03 2.09e-06 0 5.24e+03 1.85e+04 expHall Transportation - 8 -4.1e+03 1e+04 -2.81e+03 2.09e-06 0 5.1e+03 2.36e+04 world Transportation - 9 -3.68e+03 1.5e+04 -1.88e+03 2.09e-06 0 5.1e+03 2.87e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 35, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.748 -0.649 0.6 3.8e-06 0 0 0 Tank initStep - 1 -2.17e+03 2.14e+03 5e+03 3.8e-06 0 5.85e+03 5.85e+03 expHall Transportation - 2 -2.17e+03 2.14e+03 5e+03 3.8e-06 0 0 5.85e+03 Tank Transportation - 3 -1.21e+03 5e+03 3.45e+03 3.8e-06 0 3.39e+03 9.25e+03 expHall Transportation - 4 2.46e+03 1e+04 617 3.8e-06 0 6.82e+03 1.61e+04 world Transportation - 5 6.13e+03 1.5e+04 -2.21e+03 3.8e-06 0 6.82e+03 2.29e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 34, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.684 -0.616 0.584 2.99e-06 0 0 0 Tank initStep - 1 369 -3.05e+03 -5e+03 2.99e-06 0 5.87e+03 5.87e+03 expHall Transportation - 2 871 -7.41e+03 -1e+04 2.99e-06 0 6.65e+03 1.25e+04 world Transportation - 3 1.37e+03 -1.18e+04 -1.5e+04 2.99e-06 0 6.65e+03 1.92e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 33, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.758 -0.654 0.602 2.27e-06 0 0 0 Tank initStep - 1 3.59e+03 -2.27e+03 -3.76e+03 2.27e-06 2.27e-06 5.67e+03 5.67e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 30 0.767 -0.658 0.604 0.175 0 0 1.36 Tank initStep - 31 0.793 -0.656 0.612 0.167 0.00754 0.0275 1.39 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 40, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.79 -0.656 0.612 3.4e-06 0 0 0 Tank initStep - 1 -5e+03 -719 -2.05e+03 3.4e-06 0 5.45e+03 5.45e+03 expHall Transportation - 2 -1e+04 -1.28e+03 -7.54e+03 3.4e-06 0 7.44e+03 1.29e+04 world Transportation - 3 -1.5e+04 -1.84e+03 -1.3e+04 3.4e-06 0 7.44e+03 2.03e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 31 0.793 -0.656 0.612 0.167 0 0 1.39 Tank initStep - 32 0.814 -0.661 0.625 0.163 0.00425 0.0256 1.41 Tank msc - 33 0.869 -0.68 0.659 0.136 0.0272 0.0771 1.49 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 43, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.852 -0.674 0.648 3.06e-06 0 0 0 Tank initStep - 1 311 -58.2 -970 3.06e-06 0 1.02e+03 1.02e+03 Tank OpRayleigh - 2 -1.93e+03 745 -5e+03 3.06e-06 0 4.68e+03 5.7e+03 expHall Transportation - 3 -7.16e+03 1.26e+03 -1e+04 3.06e-06 0 7.25e+03 1.3e+04 world Transportation - 4 -1.24e+04 1.78e+03 -1.5e+04 3.06e-06 0 7.25e+03 2.02e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 42, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.862 -0.677 0.655 3.09e-06 0 0 0 Tank initStep - 1 1.34e+03 321 569 3.09e-06 0 1.49e+03 1.49e+03 Tank OpRayleigh - 2 4.5e+03 -2.57e+03 2.43e+03 3.09e-06 3.09e-06 4.67e+03 6.16e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 41, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.851 -0.674 0.648 3.66e-06 0 0 0 Tank initStep - 1 -3.78e+03 -744 5e+03 3.66e-06 0 6.31e+03 6.31e+03 expHall Transportation - 2 -1e+04 -1.5e+03 6.57e+03 3.66e-06 0 6.46e+03 1.28e+04 world Transportation - 3 -1.5e+04 -2.11e+03 7.83e+03 3.66e-06 0 5.19e+03 1.8e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 33 0.869 -0.68 0.659 0.136 0 0 1.49 Tank initStep - 34 0.879 -0.694 0.656 0.13 0.00536 0.0181 1.51 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.875 -0.689 0.657 3.39e-06 0 0 0 Tank initStep - 1 2.21e+03 5e+03 -1.9e+03 3.39e-06 0 5.79e+03 5.79e+03 expHall Transportation - 2 6.19e+03 1e+04 -4.37e+03 3.39e-06 0 6.86e+03 1.26e+04 world Transportation - 3 1.02e+04 1.5e+04 -6.84e+03 3.39e-06 0 6.86e+03 1.95e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 44, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.878 -0.694 0.656 3.61e-06 0 0 0 Tank initStep - 1 3.09e+03 5e+03 -605 3.61e-06 0 5.91e+03 5.91e+03 expHall Transportation - 2 8.71e+03 1e+04 -743 3.61e-06 0 7.52e+03 1.34e+04 world Transportation - 3 1.43e+04 1.5e+04 -881 3.61e-06 0 7.52e+03 2.09e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 34 0.879 -0.694 0.656 0.13 0 0 1.51 Tank initStep - 35 0.891 -0.706 0.658 0.125 0.00515 0.0169 1.53 Tank msc - 36 0.926 -0.737 0.664 0.105 0.0203 0.055 1.58 Tank eIoni - 37 0.901 -0.759 0.646 0.0915 0.0134 0.0446 1.63 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 46, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.909 -0.752 0.652 3.86e-06 0 0 0 Tank initStep - 1 -2.52e+03 -2.49e+03 5e+03 3.86e-06 0 6.13e+03 6.13e+03 expHall Transportation - 2 -6.7e+03 -8.64e+03 1e+04 3.86e-06 0 8.96e+03 1.51e+04 world Transportation - 3 -1.09e+04 -1.48e+04 1.5e+04 3.86e-06 0 8.96e+03 2.41e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 37 0.901 -0.759 0.646 0.0915 0 0 1.63 Tank initStep - 38 0.894 -0.757 0.641 0.0879 0.00359 0.0092 1.64 Tank msc - 39 0.869 -0.756 0.624 0.0721 0.0158 0.0367 1.67 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.894 -0.757 0.641 3.46e-06 0 0 0 Tank initStep - 1 -5e+03 -64.6 4.11e+03 3.46e-06 0 6.48e+03 6.48e+03 expHall Transportation - 2 -5e+03 -64.6 4.11e+03 3.46e-06 0 0 6.48e+03 Tank Transportation - 3 -3.6e+03 350 5e+03 3.46e-06 0 1.71e+03 8.19e+03 expHall Transportation - 4 -3.6e+03 350 5e+03 3.46e-06 0 0 8.19e+03 Tank Transportation - 5 4.53e+03 5e+03 -1.41e+03 3.46e-06 0 1.13e+04 1.95e+04 expHall Transportation - 6 4.53e+03 5e+03 -1.41e+03 3.46e-06 0 0 1.95e+04 Tank Transportation - 7 5e+03 4.48e+03 -1.58e+03 3.46e-06 0 720 2.03e+04 expHall Transportation - 8 5e+03 4.48e+03 -1.58e+03 3.46e-06 0 0 2.03e+04 Tank Transportation - 9 -5e+03 -2.09e+03 -4.05e+03 3.46e-06 0 1.22e+04 3.25e+04 expHall Transportation - 10 -9.7e+03 -1e+04 -6.74e+03 3.46e-06 0 9.59e+03 4.21e+04 world Transportation - 11 -1.27e+04 -1.5e+04 -8.44e+03 3.46e-06 0 6.06e+03 4.81e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.876 -0.756 0.629 3.41e-06 0 0 0 Tank initStep - 1 5e+03 -1.24e+03 -264 3.41e-06 0 5.16e+03 5.16e+03 expHall Transportation - 2 1e+04 -3.99e+03 -125 3.41e-06 0 5.71e+03 1.09e+04 world Transportation - 3 1.5e+04 -6.74e+03 14.2 3.41e-06 0 5.71e+03 1.66e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 47, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.882 -0.757 0.633 2.48e-06 0 0 0 Tank initStep - 1 2.48e+03 2.38e+03 1.97e+03 2.48e-06 0 3.96e+03 3.96e+03 Tank OpRayleigh - 2 -2.87e+03 -5e+03 3.63e+03 2.48e-06 0 9.27e+03 1.32e+04 expHall Transportation - 3 -2.87e+03 -5e+03 3.63e+03 2.48e-06 0 0 1.32e+04 Tank Transportation - 4 -5e+03 -3.33e+03 4.77e+03 2.48e-06 0 2.94e+03 1.62e+04 expHall Transportation - 5 -6.48e+03 3.89e+03 1e+04 2.48e-06 0 9.03e+03 2.52e+04 world Transportation - 6 -7.89e+03 1.08e+04 1.5e+04 2.48e-06 0 8.64e+03 3.38e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 39 0.869 -0.756 0.624 0.0721 0 0 1.67 Tank initStep - 40 0.865 -0.759 0.622 0.068 0.00412 0.00607 1.68 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 50, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.866 -0.758 0.623 3.53e-06 0 0 0 Tank initStep - 1 5e+03 -2.7e+03 -3.98e+03 3.53e-06 0 6.94e+03 6.94e+03 expHall Transportation - 2 5e+03 -2.7e+03 -3.98e+03 3.53e-06 0 0 6.94e+03 Tank Transportation - 3 4.2e+03 -3.19e+03 -5e+03 3.53e-06 0 1.39e+03 8.32e+03 expHall Transportation - 4 4.2e+03 -3.19e+03 -5e+03 3.53e-06 0 0 8.32e+03 Tank Transportation - 5 -5e+03 -4.18e+03 602 3.53e-06 0 1.08e+04 1.91e+04 expHall Transportation - 6 -5e+03 -4.18e+03 602 3.53e-06 0 0 1.91e+04 Tank Transportation - 7 -4.69e+03 -4.13e+03 1.51e+03 3.53e-06 3.53e-06 961 2.01e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 40 0.865 -0.759 0.622 0.068 0 0 1.68 Tank initStep - 41 0.86 -0.762 0.621 0.0657 0.00225 0.00548 1.68 Tank msc - 42 0.84 -0.762 0.612 0.0497 0.016 0.0277 1.71 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.853 -0.762 0.618 2.15e-06 0 0 0 Tank initStep - 1 -2.96e+03 5e+03 -1.83e+03 2.15e-06 0 6.09e+03 6.09e+03 expHall Transportation - 2 -2.96e+03 5e+03 -1.83e+03 2.15e-06 0 0 6.09e+03 Tank Transportation - 3 -4.18e+03 3.14e+03 -2.51e+03 2.15e-06 2.15e-06 2.32e+03 8.41e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 51, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.855 -0.762 0.619 2.71e-06 0 0 0 Tank initStep - 1 -351 1.32e+03 5e+03 2.71e-06 0 5.18e+03 5.18e+03 expHall Transportation - 2 -2.18e+03 2.9e+03 1e+04 2.71e-06 0 5.55e+03 1.07e+04 world Transportation - 3 -4.01e+03 4.47e+03 1.5e+04 2.71e-06 0 5.55e+03 1.63e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 42 0.84 -0.762 0.612 0.0497 0 0 1.71 Tank initStep - 43 0.839 -0.762 0.615 0.0483 0.00146 0.00315 1.71 Tank msc - 44 0.836 -0.763 0.63 0.0192 0.0291 0.0213 1.74 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.838 -0.762 0.621 2.24e-06 0 0 0 Tank initStep - 1 5e+03 3.28e+03 -3.56e+03 2.24e-06 0 6.96e+03 6.96e+03 expHall Transportation - 2 5e+03 3.28e+03 -3.56e+03 2.24e-06 0 0 6.96e+03 Tank Transportation - 3 4.72e+03 3.3e+03 -4.63e+03 2.24e-06 2.24e-06 1.11e+03 8.07e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.837 -0.763 0.627 2.76e-06 0 0 0 Tank initStep - 1 5e+03 3.19e+03 647 2.76e-06 0 5.97e+03 5.97e+03 expHall Transportation - 2 5e+03 3.19e+03 647 2.76e-06 0 0 5.97e+03 Tank Transportation - 3 4.09e+03 5e+03 1.01e+03 2.76e-06 0 2.06e+03 8.02e+03 expHall Transportation - 4 4.09e+03 5e+03 1.01e+03 2.76e-06 0 0 8.02e+03 Tank Transportation - 5 500 2.61e+03 -240 2.76e-06 2.76e-06 4.49e+03 1.25e+04 Bubble Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 44 0.836 -0.763 0.63 0.0192 0 0 1.74 Tank initStep - 45 0.836 -0.763 0.631 0.0186 0.000657 0.000574 1.74 Tank msc - 46 0.836 -0.763 0.634 0 0.0186 0.00674 1.74 Tank eIoni - 47 0.836 -0.763 0.634 0 0 0 1.74 Tank annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 56, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.836 -0.763 0.634 0.511 0 0 0 Tank initStep - 1 -56.8 -15.1 -18.5 0.228 1.36e-05 62.4 62.4 Tank compt - 2 -56.6 -11.8 -18.8 0.125 2.92e-05 3.3 65.7 Tank compt - 3 -25.9 -109 43.4 0.0901 0.000537 119 185 Tank compt - 4 -19 -92.2 14.5 0.0742 2.92e-05 33.9 219 Tank compt - 5 -64.3 -135 -14 0.0579 1.42e-05 68.5 287 Tank compt - 6 -51.6 -124 -13.9 0 0.000538 17.1 304 Tank phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51.6 -124 -13.9 0.0574 0 0 0 Tank initStep - 1 -51.6 -124 -13.9 0.0558 0.00152 0.00433 0.00433 Tank msc - 2 -51.6 -124 -13.9 0.0407 0.0152 0.0248 0.0291 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 63, Parent ID = 62 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51.6 -124 -13.9 3.97e-06 0 0 0 Tank initStep - 1 566 -320 -435 3.97e-06 3.97e-06 773 773 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -51.6 -124 -13.9 0.0407 0 0 0.0291 Tank initStep - 3 -51.6 -124 -13.9 0.0383 0.00235 0.00237 0.0315 Tank msc - 4 -51.6 -124 -13.9 0.0264 0.0119 0.0183 0.0498 Tank eIoni - 5 -51.6 -124 -13.9 0.00738 0.0191 0.013 0.0628 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 65, Parent ID = 62 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51.6 -124 -13.9 3.44e-06 0 0 0 Tank initStep - 1 -2.38e+03 5e+03 3.26e+03 3.44e-06 0 6.51e+03 6.51e+03 expHall Transportation - 2 -2.38e+03 5e+03 3.26e+03 3.44e-06 0 0 6.51e+03 Tank Transportation - 3 -5e+03 3.58e+03 4.76e+03 3.44e-06 0 3.34e+03 9.85e+03 expHall Transportation - 4 -5e+03 3.58e+03 4.76e+03 3.44e-06 0 0 9.85e+03 Tank Transportation - 5 -4.61e+03 3.4e+03 5e+03 3.44e-06 0 490 1.03e+04 expHall Transportation - 6 -4.61e+03 3.4e+03 5e+03 3.44e-06 0 0 1.03e+04 Tank Transportation - 7 -2.58e+03 2.71e+03 3.06e+03 3.44e-06 0 2.9e+03 1.32e+04 Tank OpRayleigh - 8 -140 2.87e+03 500 3.44e-06 3.44e-06 3.53e+03 1.68e+04 Bubble Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 64, Parent ID = 62 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -51.6 -124 -13.9 3.01e-06 0 0 0 Tank initStep - 1 1.74e+03 1.02e+03 -5e+03 3.01e-06 0 5.42e+03 5.42e+03 expHall Transportation - 2 6.04e+03 4.03e+03 -1e+04 3.01e-06 0 7.25e+03 1.27e+04 world Transportation - 3 1.04e+04 7.04e+03 -1.5e+04 3.01e-06 0 7.25e+03 1.99e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 -51.6 -124 -13.9 0.00738 0 0 0.0628 Tank initStep - 6 -51.6 -124 -13.9 0.00732 6.37e-05 0.000116 0.0629 Tank msc - 7 -51.6 -124 -13.9 0 0.00732 0.00143 0.0644 Tank eIoni - 8 -51.6 -124 -13.9 0 0 0 0.0644 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -64.3 -135 -14 0.0163 0 0 0 Tank initStep - 1 -64.3 -135 -14 0.0162 0.000159 0.000471 0.000471 Tank msc - 2 -64.3 -135 -14 0 0.0162 0.00578 0.00626 Tank eIoni - 3 -64.3 -135 -14 0 0 0 0.00626 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19 -92.2 14.5 0.0158 0 0 0 Tank initStep - 1 -19 -92.2 14.5 0.0151 0.000732 0.000446 0.000446 Tank msc - 2 -19 -92.2 14.5 0 0.0151 0.00513 0.00558 Tank eIoni - 3 -19 -92.2 14.5 0 0 0 0.00558 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 67, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19 -92.2 14.5 2.42e-06 0 0 0 Tank initStep - 1 -2.21e+03 -470 -5e+03 2.42e-06 0 5.49e+03 5.49e+03 expHall Transportation - 2 -6.75e+03 -3.21e+03 -1e+04 2.42e-06 0 7.29e+03 1.28e+04 world Transportation - 3 -1.13e+04 -5.95e+03 -1.5e+04 2.42e-06 0 7.29e+03 2.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 66, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -19 -92.2 14.5 3.61e-06 0 0 0 Tank initStep - 1 -3.86e+03 -3.71e+03 -5e+03 3.61e-06 0 7.28e+03 7.28e+03 expHall Transportation - 2 -3.86e+03 -3.71e+03 -5e+03 3.61e-06 0 0 7.28e+03 Tank Transportation - 3 -5e+03 -4.11e+03 -4.35e+03 3.61e-06 0 1.37e+03 8.65e+03 expHall Transportation - 4 -5e+03 -4.11e+03 -4.35e+03 3.61e-06 0 0 8.65e+03 Tank Transportation - 5 -1.77e+03 -5e+03 30.2 3.61e-06 0 5.52e+03 1.42e+04 expHall Transportation - 6 -1.77e+03 -5e+03 30.2 3.61e-06 0 0 1.42e+04 Tank Transportation - 7 -559 -3.9e+03 1.82e+03 3.61e-06 3.61e-06 2.42e+03 1.66e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -25.9 -109 43.4 0.0346 0 0 0 Tank initStep - 1 -25.9 -109 43.4 0.0332 0.00139 0.00179 0.00179 Tank msc - 2 -25.9 -109 43.4 0.0188 0.0145 0.0163 0.0181 Tank eIoni - 3 -25.9 -109 43.4 0 0.0188 0.00753 0.0256 Tank eIoni - 4 -25.9 -109 43.4 0 0 0 0.0256 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 68, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -25.9 -109 43.4 3.56e-06 0 0 0 Tank initStep - 1 4.19e+03 3.28e+03 956 3.56e-06 3.56e-06 5.48e+03 5.48e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -56.6 -11.8 -18.8 0.102 0 0 0 Tank initStep - 1 -56.6 -11.8 -18.8 0.0972 0.0052 0.0118 0.0118 Tank msc - 2 -56.6 -11.8 -18.8 0.0824 0.0148 0.0423 0.0541 Tank eIoni - 3 -56.6 -11.8 -18.8 0.0601 0.0223 0.0355 0.0896 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 70, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -56.6 -11.8 -18.8 3.49e-06 0 0 0 Tank initStep - 1 314 2.66e+03 3.62e+03 3.49e-06 3.49e-06 4.53e+03 4.53e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 69, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -56.6 -11.8 -18.8 2.09e-06 0 0 0 Tank initStep - 1 70.8 459 -449 2.09e-06 2.09e-06 651 651 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 -56.6 -11.8 -18.8 0.0601 0 0 0.0896 Tank initStep - 4 -56.6 -11.8 -18.8 0.0561 0.00398 0.0047 0.0943 Tank msc - 5 -56.6 -11.7 -18.8 0.0449 0.0112 0.0249 0.119 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 71, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -56.6 -11.7 -18.8 4.1e-06 0 0 0 Tank initStep - 1 1.42e+03 2.43e+03 5e+03 4.1e-06 0 5.77e+03 5.77e+03 expHall Transportation - 2 2.42e+03 7.54e+03 1e+04 4.1e-06 0 7.22e+03 1.3e+04 world Transportation - 3 3.41e+03 1.26e+04 1.5e+04 4.1e-06 0 7.22e+03 2.02e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 -56.6 -11.7 -18.8 0.0449 0 0 0.119 Tank initStep - 6 -56.6 -11.7 -18.8 0.0423 0.00258 0.00282 0.122 Tank msc - 7 -56.7 -11.7 -18.8 0.0283 0.0141 0.0198 0.142 Tank eIoni - 8 -56.7 -11.7 -18.8 0.00683 0.0214 0.014 0.156 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 72, Parent ID = 58 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -56.7 -11.7 -18.8 3.35e-06 0 0 0 Tank initStep - 1 -4.63e+03 5e+03 982 3.35e-06 0 6.86e+03 6.86e+03 expHall Transportation - 2 -4.63e+03 5e+03 982 3.35e-06 0 0 6.86e+03 Tank Transportation - 3 -5e+03 4.8e+03 1.07e+03 3.35e-06 0 434 7.29e+03 expHall Transportation - 4 -1e+04 642 4.05e+03 3.35e-06 0 7.15e+03 1.44e+04 world Transportation - 5 -1.5e+04 -3.51e+03 7.03e+03 3.35e-06 0 7.15e+03 2.16e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 -56.7 -11.7 -18.8 0.00683 0 0 0.156 Tank initStep - 9 -56.7 -11.7 -18.8 0.0062 0.000636 0.000102 0.156 Tank msc - 10 -56.7 -11.7 -18.8 0 0.0062 0.00107 0.157 Tank eIoni - 11 -56.7 -11.7 -18.8 0 0 0 0.157 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -56.8 -15.1 -18.5 0.283 0 0 0 Tank initStep - 1 -56.8 -15.1 -18.5 0.275 0.00872 0.0451 0.0451 Tank Cerenkov - 2 -56.8 -15.1 -18.5 0.268 0.00706 0.0425 0.0876 Tank Cerenkov - 3 -56.9 -15.1 -18.5 0.259 0.00844 0.0404 0.128 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 74, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -56.9 -15.1 -18.5 2.23e-06 0 0 0 Tank initStep - 1 -239 -1.38e+03 -24.5 2.23e-06 0 1.38e+03 1.38e+03 Tank OpRayleigh - 2 -245 2.66e+03 -1.39e+03 2.23e-06 2.23e-06 4.27e+03 5.64e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 73, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -56.9 -15.1 -18.5 4.1e-06 0 0 0 Tank initStep - 1 -5e+03 -3.16e+03 4.38e+03 4.1e-06 0 7.32e+03 7.32e+03 expHall Transportation - 2 -5e+03 -3.16e+03 4.38e+03 4.1e-06 0 0 7.32e+03 Tank Transportation - 3 -3.94e+03 -3.37e+03 5e+03 4.1e-06 0 1.25e+03 8.57e+03 expHall Transportation - 4 -3.94e+03 -3.37e+03 5e+03 4.1e-06 0 0 8.57e+03 Tank Transportation - 5 3.32e+03 -5e+03 1.59e+03 4.1e-06 0 8.18e+03 1.68e+04 expHall Transportation - 6 3.32e+03 -5e+03 1.59e+03 4.1e-06 0 0 1.68e+04 Tank Transportation - 7 5e+03 -3.09e+03 882 4.1e-06 0 2.64e+03 1.94e+04 expHall Transportation - 8 6.13e+03 1e+04 -413 4.1e-06 0 1.32e+04 3.26e+04 world Transportation - 9 6.55e+03 1.5e+04 -908 4.1e-06 0 5.04e+03 3.76e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 -56.9 -15.1 -18.5 0.259 0 0 0.128 Tank initStep - 4 -56.9 -15.1 -18.5 0.25 0.00881 0.038 0.166 Tank Cerenkov - 5 -56.9 -15.1 -18.5 0.244 0.0061 0.0306 0.197 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 76, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -56.9 -15.1 -18.5 3.64e-06 0 0 0 Tank initStep - 1 -5e+03 782 -695 3.64e-06 0 5.05e+03 5.05e+03 expHall Transportation - 2 -1e+04 1.88e+03 -1.73e+03 3.64e-06 0 5.22e+03 1.03e+04 world Transportation - 3 -1.5e+04 2.97e+03 -2.77e+03 3.64e-06 0 5.22e+03 1.55e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 75, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -56.9 -15.1 -18.5 4.13e-06 0 0 0 Tank initStep - 1 5e+03 -1.82e+03 515 4.13e-06 0 5.4e+03 5.4e+03 expHall Transportation - 2 1e+04 -5.42e+03 2.74e+03 4.13e-06 0 6.55e+03 1.19e+04 world Transportation - 3 1.5e+04 -9.02e+03 4.97e+03 4.13e-06 0 6.55e+03 1.85e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 -56.9 -15.1 -18.5 0.244 0 0 0.197 Tank initStep - 6 -56.9 -15.1 -18.5 0.242 0.00253 0.00679 0.203 Tank Cerenkov - 7 -57.1 -15.2 -18.5 0.215 0.0265 0.136 0.339 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 78, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -57 -15.2 -18.5 2.47e-06 0 0 0 Tank initStep - 1 -1.6e+03 2.51e+03 -5e+03 2.47e-06 0 5.8e+03 5.8e+03 expHall Transportation - 2 -3.35e+03 9.14e+03 -1e+04 2.47e-06 0 8.49e+03 1.43e+04 world Transportation - 3 -4.89e+03 1.5e+04 -1.44e+04 2.47e-06 0 7.5e+03 2.18e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 77, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -57 -15.2 -18.5 3.57e-06 0 0 0 Tank initStep - 1 -5e+03 1.61e+03 -931 3.57e-06 0 5.28e+03 5.28e+03 expHall Transportation - 2 -5e+03 1.61e+03 -931 3.57e-06 0 0 5.28e+03 Tank Transportation - 3 -2.67e+03 322 -13.4 3.57e-06 3.57e-06 2.82e+03 8.1e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 7 -57.1 -15.2 -18.5 0.215 0 0 0.339 Tank initStep - 8 -57.1 -15.2 -18.5 0.193 0.0225 0.0399 0.379 Tank msc - 9 -57.2 -15.2 -18.5 0.172 0.0202 0.0995 0.478 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 80, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -57.1 -15.2 -18.5 3.4e-06 0 0 0 Tank initStep - 1 -340 3.39e+03 -3.05e+03 3.4e-06 3.4e-06 4.57e+03 4.57e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 79, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -57.1 -15.2 -18.5 3.32e-06 0 0 0 Tank initStep - 1 -2.05e+03 5e+03 -3.84e+03 3.32e-06 0 6.62e+03 6.62e+03 expHall Transportation - 2 -4.41e+03 1e+04 -8.07e+03 3.32e-06 0 6.96e+03 1.36e+04 world Transportation - 3 -6.77e+03 1.5e+04 -1.23e+04 3.32e-06 0 6.96e+03 2.05e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 9 -57.2 -15.2 -18.5 0.172 0 0 0.478 Tank initStep - 10 -57.2 -15.2 -18.5 0.166 0.00687 0.028 0.506 Tank msc - 11 -57.3 -15.2 -18.5 0.148 0.0172 0.0813 0.588 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 81, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -57.3 -15.2 -18.5 3.53e-06 0 0 0 Tank initStep - 1 -273 2e+03 314 3.53e-06 0 2.05e+03 2.05e+03 Bubble Transportation - 2 -393 2.82e+03 500 3.53e-06 0 847 2.9e+03 Tank Transportation - 3 -700 4.9e+03 2.54e+03 3.53e-06 3.53e-06 2.93e+03 5.83e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 11 -57.3 -15.2 -18.5 0.148 0 0 0.588 Tank initStep - 12 -57.3 -15.2 -18.5 0.143 0.0049 0.0219 0.61 Tank msc - 13 -57.3 -15.3 -18.5 0.129 0.0145 0.0675 0.677 Tank eIoni - 14 -57.3 -15.3 -18.4 0.111 0.0179 0.059 0.736 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 83, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -57.3 -15.3 -18.5 2.98e-06 0 0 0 Tank initStep - 1 -419 540 5e+03 2.98e-06 0 5.06e+03 5.06e+03 expHall Transportation - 2 -1.46e+03 1.25e+03 1e+04 2.98e-06 0 5.16e+03 1.02e+04 world Transportation - 3 -2.5e+03 1.97e+03 1.5e+04 2.98e-06 0 5.16e+03 1.54e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 82, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -57.3 -15.3 -18.5 3.05e-06 0 0 0 Tank initStep - 1 1.59e+03 5e+03 4.42e+03 3.05e-06 0 6.89e+03 6.89e+03 expHall Transportation - 2 1.59e+03 5e+03 4.42e+03 3.05e-06 0 0 6.89e+03 Tank Transportation - 3 1.69e+03 4.76e+03 5e+03 3.05e-06 0 639 7.53e+03 expHall Transportation - 4 2.87e+03 2.13e+03 1e+04 3.05e-06 0 5.77e+03 1.33e+04 world Transportation - 5 4.04e+03 -489 1.5e+04 3.05e-06 0 5.77e+03 1.91e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 14 -57.3 -15.3 -18.4 0.111 0 0 0.736 Tank initStep - 15 -57.3 -15.2 -18.4 0.106 0.00541 0.0135 0.75 Tank msc - 16 -57.3 -15.2 -18.4 0.0662 0.0394 0.0465 0.796 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 85, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -57.3 -15.2 -18.4 2.31e-06 0 0 0 Tank initStep - 1 -86.8 61.7 -354 2.31e-06 2.31e-06 345 345 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 84, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -57.3 -15.2 -18.4 3.9e-06 0 0 0 Tank initStep - 1 1.85e+03 -610 5e+03 3.9e-06 0 5.4e+03 5.4e+03 expHall Transportation - 2 1e+04 227 9.01e+03 3.9e-06 0 9.12e+03 1.45e+04 world Transportation - 3 1.5e+04 740 1.15e+04 3.9e-06 0 5.59e+03 2.01e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 16 -57.3 -15.2 -18.4 0.0662 0 0 0.796 Tank initStep - 17 -57.3 -15.2 -18.4 0.0632 0.00302 0.00557 0.802 Tank msc - 18 -57.3 -15.2 -18.4 0.0418 0.0215 0.0276 0.829 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 86, Parent ID = 57 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -57.3 -15.2 -18.4 3.3e-06 0 0 0 Tank initStep - 1 605 122 -1.83e+03 3.3e-06 3.3e-06 1.93e+03 1.93e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 56 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 18 -57.3 -15.2 -18.4 0.0418 0 0 0.829 Tank initStep - 19 -57.3 -15.2 -18.4 0.0406 0.00115 0.00249 0.832 Tank msc - 20 -57.3 -15.2 -18.4 0.0189 0.0217 0.0192 0.851 Tank eIoni - 21 -57.3 -15.2 -18.4 0 0.0189 0.00763 0.859 Tank eIoni - 22 -57.3 -15.2 -18.4 0 0 0 0.859 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 55, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.836 -0.763 0.634 0.511 0 0 0 Tank initStep - 1 109 26.1 36.4 0.189 1.42e-05 117 117 Tank compt - 2 74.6 45.8 32.9 0.185 2.92e-05 39.5 156 Tank compt - 3 -239 132 73.1 0.106 2.92e-05 327 484 Tank compt - 4 -220 127 72 0.093 1.42e-05 19.4 503 Tank compt - 5 -215 131 62.7 0.0719 1.42e-05 11.5 514 Tank compt - 6 -204 121 87.8 0.0712 1.36e-05 29.2 544 Tank compt - 7 -185 122 135 0.0617 1.36e-05 51.1 595 Tank compt - 8 -184 135 133 0.0548 1.36e-05 13 608 Tank compt - 9 -180 131 119 0.0451 2.92e-05 14.6 622 Tank compt - 10 -178 128 203 0.0414 0.000537 84.3 707 Tank compt - 11 -169 110 202 0 0.000538 20 727 Tank phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -169 110 202 0.0408 0 0 0 Tank initStep - 1 -169 110 202 0.0384 0.00246 0.00239 0.00239 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 98, Parent ID = 97 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -169 110 202 2.64e-06 0 0 0 Tank initStep - 1 1.63e+03 -932 1.02e+03 2.64e-06 0 2.24e+03 2.24e+03 Tank OpRayleigh - 2 -5e+03 3.69e+03 -3.09e+03 2.64e-06 0 9.07e+03 1.13e+04 expHall Transportation - 3 -5e+03 3.69e+03 -3.09e+03 2.64e-06 0 0 1.13e+04 Tank Transportation - 4 -2.21e+03 5e+03 -3.46e+03 2.64e-06 0 3.11e+03 1.44e+04 expHall Transportation - 5 1e+04 7.98e+03 -5.67e+03 2.64e-06 0 1.28e+04 2.72e+04 world Transportation - 6 1.5e+04 9.19e+03 -6.58e+03 2.64e-06 0 5.23e+03 3.24e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 -169 110 202 0.0384 0 0 0.00239 Tank initStep - 2 -169 110 202 0.0376 0.000776 0.00214 0.00453 Tank msc - 3 -169 110 202 0.0187 0.0189 0.0181 0.0226 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 99, Parent ID = 97 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -169 110 202 3.11e-06 0 0 0 Tank initStep - 1 4.3e+03 1.91e+03 -3.42e+03 3.11e-06 3.11e-06 6.03e+03 6.03e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 -169 110 202 0.0187 0 0 0.0226 Tank initStep - 4 -169 110 202 0.00268 0.016 0.0006 0.0232 Tank msc - 5 -169 110 202 0 0.00268 0.000257 0.0234 Tank eIoni - 6 -169 110 202 0 0 0 0.0234 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -178 128 203 0.00318 0 0 0 Tank initStep - 1 -178 128 203 0.00297 0.00021 2.73e-05 2.73e-05 Tank msc - 2 -178 128 203 0 0.00297 0.000304 0.000332 Tank eIoni - 3 -178 128 203 0 0 0 0.000332 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -180 131 119 0.00972 0 0 0 Tank initStep - 1 -180 131 119 0.00881 0.000913 0.000188 0.000188 Tank msc - 2 -180 131 119 0 0.00881 0.00198 0.00217 Tank eIoni - 3 -180 131 119 0 0 0 0.00217 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -184 135 133 0.00684 0 0 0 Tank initStep - 1 -184 135 133 0.00656 0.000279 0.000102 0.000102 Tank msc - 2 -184 135 133 0 0.00656 0.00118 0.00129 Tank eIoni - 3 -184 135 133 0 0 0 0.00129 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -185 122 135 0.00951 0 0 0 Tank initStep - 1 -185 122 135 0.00856 0.000943 0.000181 0.000181 Tank msc - 2 -185 122 135 0 0.00856 0.00189 0.00207 Tank eIoni - 3 -185 122 135 0 0 0 0.00207 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -204 121 87.8 0.000687 0 0 0 Tank initStep - 1 -204 121 87.8 0.000687 0 2.38e-06 2.38e-06 Tank msc - 2 -204 121 87.8 0 0.000687 2.98e-05 3.22e-05 Tank eIoni - 3 -204 121 87.8 0 0 0 3.22e-05 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -215 131 62.7 0.0211 0 0 0 Tank initStep - 1 -215 131 62.7 0.0205 0.000559 0.000743 0.000743 Tank msc - 2 -215 131 62.7 0 0.0205 0.00885 0.00959 Tank eIoni - 3 -215 131 62.7 0 0 0 0.00959 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -220 127 72 0.0132 0 0 0 Tank initStep - 1 -220 127 72 0.0129 0.000328 0.000324 0.000324 Tank msc - 2 -220 127 72 0 0.0129 0.00387 0.0042 Tank eIoni - 3 -220 127 72 0 0 0 0.0042 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 100, Parent ID = 90 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -220 127 72 2.32e-06 0 0 0 Tank initStep - 1 973 2.03e+03 -5e+03 2.32e-06 0 5.55e+03 5.55e+03 expHall Transportation - 2 973 2.03e+03 -5e+03 2.32e-06 0 0 5.55e+03 Tank Transportation - 3 2.03e+03 5e+03 -4.01e+03 2.32e-06 0 3.3e+03 8.85e+03 expHall Transportation - 4 6.35e+03 1e+04 -79.4 2.32e-06 0 7.69e+03 1.65e+04 world Transportation - 5 1.07e+04 1.5e+04 3.85e+03 2.32e-06 0 7.69e+03 2.42e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -239 132 73.1 0.0785 0 0 0 Tank initStep - 1 -239 132 73.1 0.0747 0.00382 0.00748 0.00748 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 101, Parent ID = 89 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -239 132 73.1 3.05e-06 0 0 0 Tank initStep - 1 -5e+03 4.24e+03 -3.45e+03 3.05e-06 0 7.21e+03 7.21e+03 expHall Transportation - 2 -5e+03 4.24e+03 -3.45e+03 3.05e-06 0 0 7.21e+03 Tank Transportation - 3 -1.77e+03 4.38e+03 -5e+03 3.05e-06 0 3.58e+03 1.08e+04 expHall Transportation - 4 -1.77e+03 4.38e+03 -5e+03 3.05e-06 0 0 1.08e+04 Tank Transportation - 5 784 5e+03 -2.18e+03 3.05e-06 0 3.86e+03 1.46e+04 expHall Transportation - 6 784 5e+03 -2.18e+03 3.05e-06 0 0 1.46e+04 Tank Transportation - 7 5e+03 -4.14e+03 3.87e+03 3.05e-06 0 1.17e+04 2.64e+04 expHall Transportation - 8 5e+03 -4.14e+03 3.87e+03 3.05e-06 0 0 2.64e+04 Tank Transportation - 9 4.68e+03 -5e+03 4.57e+03 3.05e-06 0 1.15e+03 2.75e+04 expHall Transportation - 10 4.68e+03 -5e+03 4.57e+03 3.05e-06 0 0 2.75e+04 Tank Transportation - 11 4.43e+03 -4.71e+03 5e+03 3.05e-06 0 581 2.81e+04 expHall Transportation - 12 4.43e+03 -4.71e+03 5e+03 3.05e-06 0 0 2.81e+04 Tank Transportation - 13 4.07e+03 -5e+03 4.73e+03 3.05e-06 0 537 2.87e+04 expHall Transportation - 14 4.07e+03 -5e+03 4.73e+03 3.05e-06 0 0 2.87e+04 Tank Transportation - 15 -5e+03 2.14e+03 -3.4e+03 3.05e-06 0 1.41e+04 4.28e+04 expHall Transportation - 16 -5e+03 2.14e+03 -3.4e+03 3.05e-06 0 0 4.28e+04 Tank Transportation - 17 -3.28e+03 2.88e+03 -5e+03 3.05e-06 0 2.47e+03 4.52e+04 expHall Transportation - 18 -3.28e+03 2.88e+03 -5e+03 3.05e-06 0 0 4.52e+04 Tank Transportation - 19 4.47e+03 5e+03 -2.14e+03 3.05e-06 0 8.52e+03 5.38e+04 expHall Transportation - 20 4.47e+03 5e+03 -2.14e+03 3.05e-06 0 0 5.38e+04 Tank Transportation - 21 5e+03 4.72e+03 -1.94e+03 3.05e-06 0 633 5.44e+04 expHall Transportation - 22 1e+04 2.07e+03 2.33e+03 3.05e-06 0 7.09e+03 6.15e+04 world Transportation - 23 1.5e+04 -588 6.6e+03 3.05e-06 0 7.09e+03 6.86e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 -239 132 73.1 0.0747 0 0 0.00748 Tank initStep - 2 -239 132 73.1 0.0723 0.00241 0.00686 0.0143 Tank msc - 3 -239 132 73.1 0.0572 0.0151 0.0312 0.0456 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 102, Parent ID = 89 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -239 132 73.1 3.24e-06 0 0 0 Tank initStep - 1 492 3.06e+03 5e+03 3.24e-06 0 5.78e+03 5.78e+03 expHall Transportation - 2 3.58e+03 1e+04 6.8e+03 3.24e-06 0 7.8e+03 1.36e+04 world Transportation - 3 5.8e+03 1.5e+04 8.1e+03 3.24e-06 0 5.62e+03 1.92e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 -239 132 73.1 0.0572 0 0 0.0456 Tank initStep - 4 -239 132 73.1 0.0558 0.00142 0.00432 0.0499 Tank msc - 5 -239 132 73.1 0.045 0.0109 0.0248 0.0747 Tank eIoni - 6 -239 132 73.1 0.0311 0.0139 0.0208 0.0955 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 103, Parent ID = 89 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -239 132 73.1 3.89e-06 0 0 0 Tank initStep - 1 1.38e+03 -4.38e+03 1.12e+03 3.89e-06 3.89e-06 4.91e+03 4.91e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 -239 132 73.1 0.0311 0 0 0.0955 Tank initStep - 7 -239 132 73.1 0.0307 0.000398 0.00147 0.0969 Tank msc - 8 -239 132 73.1 0.00214 0.0285 0.0152 0.112 Tank eIoni - 9 -239 132 73.1 0 0.00214 0.000177 0.112 Tank eIoni - 10 -239 132 73.1 0 0 0 0.112 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 74.6 45.8 32.9 0.00388 0 0 0 Tank initStep - 1 74.6 45.8 32.9 0.00361 0.000274 3.84e-05 3.84e-05 Tank msc - 2 74.6 45.8 32.9 0 0.00361 0.000424 0.000462 Tank eIoni - 3 74.6 45.8 32.9 0 0 0 0.000462 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.4 0.322 0 0 0 Tank initStep - 1 109 26 36.4 0.308 0.0145 0.0579 0.0579 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 104, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.4 2.44e-06 0 0 0 Tank initStep - 1 -4.67e+03 269 -1.45e+03 2.44e-06 0 5.01e+03 5.01e+03 Tank OpRayleigh - 2 -918 -754 -5e+03 2.44e-06 0 5.27e+03 1.03e+04 expHall Transportation - 3 -918 -754 -5e+03 2.44e-06 0 0 1.03e+04 Tank Transportation - 4 -680 -1.85e+03 -3.48e+03 2.44e-06 2.44e-06 1.89e+03 1.22e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 109 26 36.4 0.308 0 0 0.0579 Tank initStep - 2 109 26 36.4 0.297 0.0109 0.053 0.111 Tank Cerenkov - 3 109 26.1 36.4 0.288 0.00839 0.0494 0.16 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 105, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26 36.4 3.29e-06 0 0 0 Tank initStep - 1 -5e+03 -4.76e+03 530 3.29e-06 0 7.02e+03 7.02e+03 expHall Transportation - 2 -5e+03 -4.76e+03 530 3.29e-06 0 0 7.02e+03 Tank Transportation - 3 -4.78e+03 -5e+03 593 3.29e-06 0 330 7.35e+03 expHall Transportation - 4 -4.78e+03 -5e+03 593 3.29e-06 0 0 7.35e+03 Tank Transportation - 5 -3.89e+03 -4.37e+03 1.69e+03 3.29e-06 0 1.54e+03 8.89e+03 Tank OpRayleigh - 6 -2.09e+03 -754 5e+03 3.29e-06 0 5.23e+03 1.41e+04 expHall Transportation - 7 -2.09e+03 -754 5e+03 3.29e-06 0 0 1.41e+04 Tank Transportation - 8 3.09e+03 5e+03 -3.21e+03 3.29e-06 0 1.13e+04 2.54e+04 expHall Transportation - 9 3.09e+03 5e+03 -3.21e+03 3.29e-06 0 0 2.54e+04 Tank Transportation - 10 4.92e+03 3.63e+03 -5e+03 3.29e-06 0 2.9e+03 2.83e+04 expHall Transportation - 11 4.92e+03 3.63e+03 -5e+03 3.29e-06 0 0 2.83e+04 Tank Transportation - 12 5e+03 3.58e+03 -4.96e+03 3.29e-06 0 108 2.84e+04 expHall Transportation - 13 1e+04 -3.52e+03 3.37e+03 3.29e-06 0 1.2e+04 4.04e+04 world Transportation - 14 1.5e+04 -1.06e+04 1.17e+04 3.29e-06 0 1.2e+04 5.25e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 109 26.1 36.4 0.288 0 0 0.16 Tank initStep - 4 109 26.1 36.4 0.276 0.0121 0.0467 0.207 Tank Cerenkov - 5 109 26.1 36.3 0.268 0.00782 0.043 0.25 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 107, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.3 2.56e-06 0 0 0 Tank initStep - 1 5e+03 2.21e+03 -2.66e+03 2.56e-06 0 6e+03 6e+03 expHall Transportation - 2 5e+03 2.21e+03 -2.66e+03 2.56e-06 0 0 6e+03 Tank Transportation - 3 3.47e+03 349 -5e+03 2.56e-06 0 3.35e+03 9.35e+03 expHall Transportation - 4 3.47e+03 349 -5e+03 2.56e-06 0 0 9.35e+03 Tank Transportation - 5 -1.88e+03 5e+03 -1.49e+03 2.56e-06 0 7.91e+03 1.73e+04 expHall Transportation - 6 -1.88e+03 5e+03 -1.49e+03 2.56e-06 0 0 1.73e+04 Tank Transportation - 7 -5e+03 2.64e+03 835 2.56e-06 0 4.55e+03 2.18e+04 expHall Transportation - 8 -5e+03 2.64e+03 835 2.56e-06 0 0 2.18e+04 Tank Transportation - 9 -391 -1.43e+03 5e+03 2.56e-06 0 7.43e+03 2.92e+04 expHall Transportation - 10 -391 -1.43e+03 5e+03 2.56e-06 0 0 2.92e+04 Tank Transportation - 11 5e+03 -3.18e+03 532 2.56e-06 0 7.22e+03 3.65e+04 expHall Transportation - 12 5e+03 -3.18e+03 532 2.56e-06 0 0 3.65e+04 Tank Transportation - 13 -5e+03 -4.25e+03 -4.55e+03 2.56e-06 0 1.13e+04 4.77e+04 expHall Transportation - 14 -1e+04 -3.97e+03 -9.24e+03 2.56e-06 0 6.86e+03 5.46e+04 world Transportation - 15 -1.5e+04 -3.68e+03 -1.39e+04 2.56e-06 0 6.86e+03 6.15e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 106, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.4 3.26e-06 0 0 0 Tank initStep - 1 4.92e+03 5e+03 1.33e+03 3.26e-06 0 7.04e+03 7.04e+03 expHall Transportation - 2 1e+04 8.86e+03 2.04e+03 3.26e-06 0 6.42e+03 1.35e+04 world Transportation - 3 1.5e+04 1.27e+04 2.74e+03 3.26e-06 0 6.32e+03 1.98e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 109 26.1 36.3 0.268 0 0 0.25 Tank initStep - 6 109 26.1 36.3 0.26 0.00797 0.0407 0.291 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 108, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.3 3.39e-06 0 0 0 Tank initStep - 1 -4.66e+03 -3.15e+03 -5e+03 3.39e-06 0 7.63e+03 7.63e+03 expHall Transportation - 2 -4.66e+03 -3.15e+03 -5e+03 3.39e-06 0 0 7.63e+03 Tank Transportation - 3 -5e+03 -3.37e+03 -4.6e+03 3.39e-06 0 567 8.19e+03 expHall Transportation - 4 -5e+03 -3.37e+03 -4.6e+03 3.39e-06 0 0 8.19e+03 Tank Transportation - 5 -4.02e+03 -5e+03 -1.33e+03 3.39e-06 0 3.79e+03 1.2e+04 expHall Transportation - 6 -4.02e+03 -5e+03 -1.33e+03 3.39e-06 0 0 1.2e+04 Tank Transportation - 7 -1.2e+03 5e+03 4.33e+03 3.39e-06 0 1.18e+04 2.38e+04 expHall Transportation - 8 -1.2e+03 5e+03 4.33e+03 3.39e-06 0 0 2.38e+04 Tank Transportation - 9 -1.53e+03 4.55e+03 5e+03 3.39e-06 0 875 2.47e+04 expHall Transportation - 10 -1.53e+03 4.55e+03 5e+03 3.39e-06 0 0 2.47e+04 Tank Transportation - 11 -3.6e+03 -1.76e+03 -5e+03 3.39e-06 0 1.2e+04 3.67e+04 expHall Transportation - 12 -3.6e+03 -1.76e+03 -5e+03 3.39e-06 0 0 3.67e+04 Tank Transportation - 13 -5e+03 -2.49e+03 -3.85e+03 3.39e-06 0 1.95e+03 3.86e+04 expHall Transportation - 14 -1e+04 -6.22e+03 -3.49e+03 3.39e-06 0 6.25e+03 4.49e+04 world Transportation - 15 -1.5e+04 -9.95e+03 -3.13e+03 3.39e-06 0 6.25e+03 5.11e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 109 26.1 36.3 0.26 0 0 0.291 Tank initStep - 7 109 26.1 36.3 0.253 0.00771 0.0384 0.329 Tank Cerenkov - 8 109 26.1 36.3 0.241 0.0113 0.0362 0.365 Tank Cerenkov - 9 109 26.1 36.2 0.213 0.0284 0.135 0.501 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 109, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.2 3.58e-06 0 0 0 Tank initStep - 1 1.6e+03 58.1 283 3.58e-06 3.58e-06 1.51e+03 1.51e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 9 109 26.1 36.2 0.213 0 0 0.501 Tank initStep - 10 109 26.2 36.2 0.173 0.0397 0.0393 0.54 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 114, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.2 36.2 2.41e-06 0 0 0 Tank initStep - 1 2.19e+03 5e+03 -1.49e+03 2.41e-06 0 5.61e+03 5.61e+03 expHall Transportation - 2 2.19e+03 5e+03 -1.49e+03 2.41e-06 0 0 5.61e+03 Tank Transportation - 3 2.34e+03 4.9e+03 -1.61e+03 2.41e-06 2.41e-06 215 5.82e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 113, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.2 36.2 2.83e-06 0 0 0 Tank initStep - 1 364 1.85e+03 -5e+03 2.83e-06 0 5.36e+03 5.36e+03 expHall Transportation - 2 364 1.85e+03 -5e+03 2.83e-06 0 0 5.36e+03 Tank Transportation - 3 -354 1.96e+03 1.62e+03 2.83e-06 2.83e-06 6.66e+03 1.2e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 112, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.2 36.2 2.76e-06 0 0 0 Tank initStep - 1 122 -3.25e+03 3.43e+03 2.76e-06 2.76e-06 4.71e+03 4.71e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 111, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.2 36.2 2.9e-06 0 0 0 Tank initStep - 1 2.11e+03 5e+03 -920 2.9e-06 0 5.45e+03 5.45e+03 expHall Transportation - 2 1e+04 8.77e+03 -4.92e+03 2.9e-06 0 9.62e+03 1.51e+04 world Transportation - 3 1.5e+04 1.12e+04 -7.45e+03 2.9e-06 0 6.09e+03 2.12e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 110, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.2 2.15e-06 0 0 0 Tank initStep - 1 2.82e+03 -1.37e+03 -5e+03 2.15e-06 0 5.88e+03 5.88e+03 expHall Transportation - 2 7.06e+03 -4.88e+03 -1e+04 2.15e-06 0 7.44e+03 1.33e+04 world Transportation - 3 1.13e+04 -8.4e+03 -1.5e+04 2.15e-06 0 7.44e+03 2.08e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 10 109 26.2 36.2 0.173 0 0 0.54 Tank initStep - 11 109 26.2 36.2 0.169 0.00483 0.0282 0.568 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 115, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.2 36.2 3.45e-06 0 0 0 Tank initStep - 1 -4.58e+03 -5e+03 357 3.45e-06 0 6.88e+03 6.88e+03 expHall Transportation - 2 -4.58e+03 -5e+03 357 3.45e-06 0 0 6.88e+03 Tank Transportation - 3 -5e+03 -4.33e+03 279 3.45e-06 0 791 7.68e+03 expHall Transportation - 4 -5e+03 -4.33e+03 279 3.45e-06 0 0 7.68e+03 Tank Transportation - 5 -4.71e+03 -4.24e+03 117 3.45e-06 3.45e-06 342 8.02e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 11 109 26.2 36.2 0.169 0 0 0.568 Tank initStep - 12 109 26.2 36.1 0.163 0.00604 0.027 0.595 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 116, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.2 36.1 3.94e-06 0 0 0 Tank initStep - 1 -2.26e+03 265 -4.67e+03 3.94e-06 3.94e-06 5.27e+03 5.27e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 12 109 26.2 36.1 0.163 0 0 0.595 Tank initStep - 13 109 26.2 36.2 0.151 0.0114 0.0254 0.621 Tank msc - 14 109 26.1 36.2 0.134 0.0171 0.0722 0.693 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 117, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.2 3.78e-06 0 0 0 Tank initStep - 1 -102 -150 168 3.78e-06 3.78e-06 305 305 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 14 109 26.1 36.2 0.134 0 0 0.693 Tank initStep - 15 109 26.1 36.2 0.13 0.00434 0.0185 0.711 Tank msc - 16 109 26.1 36.2 0.11 0.0197 0.0594 0.771 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 118, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.2 4.1e-06 0 0 0 Tank initStep - 1 1.29e+03 238 -5e+03 4.1e-06 0 5.18e+03 5.18e+03 expHall Transportation - 2 5.01e+03 878 -1e+04 4.1e-06 0 6.27e+03 1.14e+04 world Transportation - 3 8.74e+03 1.52e+03 -1.5e+04 4.1e-06 0 6.27e+03 1.77e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 16 109 26.1 36.2 0.11 0 0 0.771 Tank initStep - 17 109 26.1 36.2 0.107 0.00326 0.0133 0.784 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 119, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.2 3.58e-06 0 0 0 Tank initStep - 1 -283 -3.57e+03 5e+03 3.58e-06 0 6.14e+03 6.14e+03 expHall Transportation - 2 -283 -3.57e+03 5e+03 3.58e-06 0 0 6.14e+03 Tank Transportation - 3 -149 -5e+03 3.35e+03 3.58e-06 0 2.19e+03 8.33e+03 expHall Transportation - 4 -149 -5e+03 3.35e+03 3.58e-06 0 0 8.33e+03 Tank Transportation - 5 848 1.3e+03 -5e+03 3.58e-06 0 1.05e+04 1.88e+04 expHall Transportation - 6 848 1.3e+03 -5e+03 3.58e-06 0 0 1.88e+04 Tank Transportation - 7 5e+03 3.14e+03 -2.74e+03 3.58e-06 0 5.07e+03 2.39e+04 expHall Transportation - 8 1e+04 5.84e+03 4.54e+03 3.58e-06 0 9.23e+03 3.31e+04 world Transportation - 9 1.5e+04 8.54e+03 1.18e+04 3.58e-06 0 9.23e+03 4.24e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 17 109 26.1 36.2 0.107 0 0 0.784 Tank initStep - 18 109 26.1 36.2 0.105 0.00202 0.0126 0.797 Tank msc - 19 109 26.1 36.2 0.0721 0.0325 0.046 0.843 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 121, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.2 2.96e-06 0 0 0 Tank initStep - 1 -5e+03 -1.41e+03 -1.88e+03 2.96e-06 0 5.64e+03 5.64e+03 expHall Transportation - 2 -5e+03 -1.41e+03 -1.88e+03 2.96e-06 0 0 5.64e+03 Tank Transportation - 3 -2.86e+03 -3.84e+03 -5e+03 2.96e-06 0 4.49e+03 1.01e+04 expHall Transportation - 4 692 -1e+04 -7.1e+03 2.96e-06 0 7.41e+03 1.76e+04 world Transportation - 5 3.58e+03 -1.5e+04 -8.8e+03 2.96e-06 0 6.02e+03 2.36e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 120, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.2 3.93e-06 0 0 0 Tank initStep - 1 -4.07e+03 -5e+03 -2e+03 3.93e-06 0 6.85e+03 6.85e+03 expHall Transportation - 2 -4.07e+03 -5e+03 -2e+03 3.93e-06 0 0 6.85e+03 Tank Transportation - 3 -5e+03 -4.31e+03 -2.51e+03 3.93e-06 0 1.26e+03 8.11e+03 expHall Transportation - 4 -5e+03 -4.31e+03 -2.51e+03 3.93e-06 0 0 8.11e+03 Tank Transportation - 5 -1.4e+03 635 -2.98e+03 3.93e-06 3.93e-06 6.14e+03 1.42e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 19 109 26.1 36.2 0.0721 0 0 0.843 Tank initStep - 20 109 26.1 36.2 0.0682 0.00389 0.00646 0.849 Tank msc - 21 109 26.1 36.2 0.0536 0.0147 0.0296 0.879 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 123, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.2 3.14e-06 0 0 0 Tank initStep - 1 -203 -5e+03 -4.12e+03 3.14e-06 0 6.53e+03 6.53e+03 expHall Transportation - 2 -471 -8.13e+03 -1e+04 3.14e-06 0 6.67e+03 1.32e+04 world Transportation - 3 -699 -1.08e+04 -1.5e+04 3.14e-06 0 5.67e+03 1.89e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 122, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.2 2.67e-06 0 0 0 Tank initStep - 1 -5e+03 -3.56e+03 -4.06e+03 2.67e-06 0 7.47e+03 7.47e+03 expHall Transportation - 2 -5e+03 -3.56e+03 -4.06e+03 2.67e-06 0 0 7.47e+03 Tank Transportation - 3 -4.52e+03 -4.18e+03 -5e+03 2.67e-06 0 1.22e+03 8.69e+03 expHall Transportation - 4 -4.52e+03 -4.18e+03 -5e+03 2.67e-06 0 0 8.69e+03 Tank Transportation - 5 -1.34e+03 5e+03 -503 2.67e-06 0 1.07e+04 1.94e+04 expHall Transportation - 6 2.03e+03 1e+04 5.83e+03 2.67e-06 0 8.74e+03 2.81e+04 world Transportation - 7 5.4e+03 1.5e+04 1.22e+04 2.67e-06 0 8.74e+03 3.69e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 21 109 26.1 36.2 0.0536 0 0 0.879 Tank initStep - 22 109 26.1 36.2 0.0483 0.00532 0.00385 0.883 Tank msc - 23 109 26.1 36.2 0.0118 0.0365 0.022 0.905 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 125, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.2 3.29e-06 0 0 0 Tank initStep - 1 -2.49e+03 5e+03 2.46e+03 3.29e-06 0 6.11e+03 6.11e+03 expHall Transportation - 2 -2.49e+03 5e+03 2.46e+03 3.29e-06 0 0 6.11e+03 Tank Transportation - 3 -3.02e+03 4.69e+03 2.47e+03 3.29e-06 0 617 6.73e+03 Tank OpRayleigh - 4 -4.31e+03 5e+03 2.84e+03 3.29e-06 0 1.37e+03 8.1e+03 expHall Transportation - 5 -4.31e+03 5e+03 2.84e+03 3.29e-06 0 0 8.1e+03 Tank Transportation - 6 -5e+03 4.82e+03 3.04e+03 3.29e-06 0 742 8.84e+03 expHall Transportation - 7 -5e+03 4.82e+03 3.04e+03 3.29e-06 0 0 8.84e+03 Tank Transportation - 8 -4.04e+03 3.19e+03 5e+03 3.29e-06 0 2.72e+03 1.16e+04 expHall Transportation - 9 5.43e+03 -1e+04 5.84e+03 3.29e-06 0 1.63e+04 2.78e+04 world Transportation - 10 9.02e+03 -1.5e+04 6.15e+03 3.29e-06 0 6.16e+03 3.4e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 124, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.2 2.68e-06 0 0 0 Tank initStep - 1 4.89e+03 -1.2e+03 5e+03 2.68e-06 0 7e+03 7e+03 expHall Transportation - 2 4.89e+03 -1.2e+03 5e+03 2.68e-06 0 0 7e+03 Tank Transportation - 3 5e+03 -1.17e+03 4.9e+03 2.68e-06 0 153 7.15e+03 expHall Transportation - 4 5e+03 -1.17e+03 4.9e+03 2.68e-06 0 0 7.15e+03 Tank Transportation - 5 -176 3.34e+03 -1.97e+03 2.68e-06 2.68e-06 9.72e+03 1.69e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 55 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 23 109 26.1 36.2 0.0118 0 0 0.905 Tank initStep - 24 109 26.1 36.2 0.0116 0.000151 0.000264 0.905 Tank msc - 25 109 26.1 36.2 0 0.0116 0.00323 0.908 Tank eIoni - 26 109 26.1 36.2 0 0 0 0.908 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 126, Parent ID = 87 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 109 26.1 36.2 3.54e-06 0 0 0 Tank initStep - 1 369 214 165 3.54e-06 3.54e-06 346 346 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 0.5 0 0 0 Tank initStep - 1 0.133 0.0329 0.0175 0.475 0.0255 0.139 0.139 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0154 0.0038 0.00202 3.27e-06 0 0 0 Tank initStep - 1 5e+03 -905 4.29e+03 3.27e-06 0 6.65e+03 6.65e+03 expHall Transportation - 2 8.83e+03 -63.9 1e+04 3.27e-06 0 6.93e+03 1.36e+04 world Transportation - 3 1.22e+04 673 1.5e+04 3.27e-06 0 6.07e+03 1.96e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.123 0.0304 0.0161 4e-06 0 0 0 Tank initStep - 1 4.56e+03 -973 -837 4e-06 0 4.74e+03 4.74e+03 Tank OpRayleigh - 2 3.72e+03 -2.37e+03 288 4e-06 4e-06 1.98e+03 6.72e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 0.133 0.0329 0.0175 0.475 0 0 0.139 Tank initStep - 2 0.251 0.0402 0.0599 0.458 0.0169 0.126 0.265 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.148 0.0338 0.0227 2.75e-06 0 0 0 Tank initStep - 1 5e+03 -2.59e+03 1.52e+03 2.75e-06 0 5.83e+03 5.83e+03 expHall Transportation - 2 5e+03 -2.59e+03 1.52e+03 2.75e-06 0 0 5.83e+03 Tank Transportation - 3 3.43e+03 -5e+03 2.17e+03 2.75e-06 0 2.95e+03 8.78e+03 expHall Transportation - 4 -1e+04 -7.61e+03 5.26e+03 2.75e-06 0 1.4e+04 2.28e+04 world Transportation - 5 -1.5e+04 -8.59e+03 6.41e+03 2.75e-06 0 5.22e+03 2.8e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.208 0.0375 0.0445 3.15e-06 0 0 0 Tank initStep - 1 5e+03 2.69e+03 200 3.15e-06 0 5.68e+03 5.68e+03 expHall Transportation - 2 1e+04 8.05e+03 258 3.15e-06 0 7.33e+03 1.3e+04 world Transportation - 3 1.5e+04 1.34e+04 315 3.15e-06 0 7.33e+03 2.03e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 0.251 0.0402 0.0599 0.458 0 0 0.265 Tank initStep - 3 0.359 0.0338 0.102 0.44 0.0178 0.117 0.382 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.324 0.0359 0.0879 2.75e-06 0 0 0 Tank initStep - 1 1.97e+03 1.71e+03 5e+03 2.75e-06 0 5.64e+03 5.64e+03 expHall Transportation - 2 8.92e+03 5.21e+03 1e+04 2.75e-06 0 9.25e+03 1.49e+04 world Transportation - 3 1.5e+04 8.27e+03 1.44e+04 2.75e-06 0 8.09e+03 2.3e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.343 0.0348 0.0953 2.36e-06 0 0 0 Tank initStep - 1 63.3 -71.2 -135 2.36e-06 2.36e-06 165 165 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.292 0.0378 0.0756 3.59e-06 0 0 0 Tank initStep - 1 5e+03 436 -655 3.59e-06 0 5.06e+03 5.06e+03 expHall Transportation - 2 5e+03 436 -655 3.59e-06 0 0 5.06e+03 Tank Transportation - 3 -5e+03 4.69e+03 -1.51e+03 3.59e-06 0 1.09e+04 1.6e+04 expHall Transportation - 4 -1e+04 7.74e+03 -668 3.59e-06 0 5.92e+03 2.19e+04 world Transportation - 5 -1.5e+04 1.08e+04 171 3.59e-06 0 5.92e+03 2.78e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.279 0.0385 0.0708 2.21e-06 0 0 0 Tank initStep - 1 5e+03 -3.37e+03 3.13e+03 2.21e-06 0 6.8e+03 6.8e+03 expHall Transportation - 2 1e+04 -2.9e+03 3.2e+03 2.21e-06 0 5.02e+03 1.18e+04 world Transportation - 3 1.5e+04 -2.43e+03 3.27e+03 2.21e-06 0 5.02e+03 1.68e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 0.359 0.0338 0.102 0.44 0 0 0.382 Tank initStep - 4 0.461 0.0441 0.125 0.418 0.0222 0.108 0.49 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.451 0.043 0.123 3.35e-06 0 0 0 Tank initStep - 1 5e+03 2.25e+03 2.37e+03 3.35e-06 0 5.98e+03 5.98e+03 expHall Transportation - 2 5e+03 2.25e+03 2.37e+03 3.35e-06 0 0 5.98e+03 Tank Transportation - 3 4.18e+03 5e+03 3.64e+03 3.35e-06 0 3.14e+03 9.11e+03 expHall Transportation - 4 4.18e+03 5e+03 3.64e+03 3.35e-06 0 0 9.11e+03 Tank Transportation - 5 -5e+03 -218 2.82e+03 3.35e-06 0 1.06e+04 1.97e+04 expHall Transportation - 6 -5e+03 -218 2.82e+03 3.35e-06 0 0 1.97e+04 Tank Transportation - 7 -1.05e+03 -5e+03 -6.17 3.35e-06 0 6.81e+03 2.65e+04 expHall Transportation - 8 -1.05e+03 -5e+03 -6.17 3.35e-06 0 0 2.65e+04 Tank Transportation - 9 122 -2.49e+03 -1.54e+03 3.35e-06 3.35e-06 3.17e+03 2.97e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.381 0.036 0.106 2.41e-06 0 0 0 Tank initStep - 1 4.37e+03 -1.79e+03 696 2.41e-06 2.41e-06 4.78e+03 4.78e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 0.461 0.0441 0.125 0.418 0 0 0.49 Tank initStep - 5 0.556 0.0606 0.12 0.4 0.0175 0.0971 0.587 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.476 0.0466 0.124 3.58e-06 0 0 0 Tank initStep - 1 259 1.74e+03 5e+03 3.58e-06 0 5.3e+03 5.3e+03 expHall Transportation - 2 -96.1 5.36e+03 1e+04 3.58e-06 0 6.18e+03 1.15e+04 world Transportation - 3 -452 8.98e+03 1.5e+04 3.58e-06 0 6.18e+03 1.77e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.48 0.0473 0.124 2.16e-06 0 0 0 Tank initStep - 1 5e+03 -668 1.58e+03 2.16e-06 0 5.28e+03 5.28e+03 expHall Transportation - 2 1e+04 -3.31e+03 4.54e+03 2.16e-06 0 6.38e+03 1.17e+04 world Transportation - 3 1.5e+04 -5.94e+03 7.51e+03 2.16e-06 0 6.38e+03 1.81e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 0.556 0.0606 0.12 0.4 0 0 0.587 Tank initStep - 6 0.626 0.101 0.088 0.381 0.0187 0.0892 0.676 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.578 0.0732 0.11 3.38e-06 0 0 0 Tank initStep - 1 -5e+03 -2.31e+03 853 3.38e-06 0 5.57e+03 5.57e+03 expHall Transportation - 2 -1e+04 -7.02e+03 2.85e+03 3.38e-06 0 7.16e+03 1.27e+04 world Transportation - 3 -1.5e+04 -1.17e+04 4.85e+03 3.38e-06 0 7.16e+03 1.99e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.619 0.0969 0.0911 2.07e-06 0 0 0 Tank initStep - 1 -910 -3.06e+03 -970 2.07e-06 2.07e-06 3.34e+03 3.34e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.558 0.0617 0.119 3.17e-06 0 0 0 Tank initStep - 1 -5e+03 4.12e+03 718 3.17e-06 0 6.52e+03 6.52e+03 expHall Transportation - 2 -5e+03 4.12e+03 718 3.17e-06 0 0 6.52e+03 Tank Transportation - 3 -3.41e+03 5e+03 2.56e+03 3.17e-06 0 2.58e+03 9.11e+03 expHall Transportation - 4 -3.41e+03 5e+03 2.56e+03 3.17e-06 0 0 9.11e+03 Tank Transportation - 5 -1.35e+03 3.01e+03 5e+03 3.17e-06 0 3.77e+03 1.29e+04 expHall Transportation - 6 2.14e+03 -549 1e+04 3.17e-06 0 7.06e+03 1.99e+04 world Transportation - 7 5.63e+03 -4.1e+03 1.5e+04 3.17e-06 0 7.06e+03 2.7e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.561 0.0631 0.118 3.26e-06 0 0 0 Tank initStep - 1 3.61e+03 2.81e+03 -5e+03 3.26e-06 0 6.78e+03 6.78e+03 expHall Transportation - 2 3.61e+03 2.81e+03 -5e+03 3.26e-06 0 0 6.78e+03 Tank Transportation - 3 5e+03 4.9e+03 -1.22e+03 3.26e-06 0 4.53e+03 1.13e+04 expHall Transportation - 4 5e+03 4.9e+03 -1.22e+03 3.26e-06 0 0 1.13e+04 Tank Transportation - 5 4.43e+03 5e+03 -945 3.26e-06 0 638 1.19e+04 expHall Transportation - 6 4.43e+03 5e+03 -945 3.26e-06 0 0 1.19e+04 Tank Transportation - 7 199 1.78e+03 2.13e+03 3.26e-06 3.26e-06 6.15e+03 1.81e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.611 0.0923 0.0948 3.41e-06 0 0 0 Tank initStep - 1 5e+03 753 -478 3.41e-06 0 5.08e+03 5.08e+03 expHall Transportation - 2 1e+04 1.24e+03 -1.56e+03 3.41e-06 0 5.14e+03 1.02e+04 world Transportation - 3 1.5e+04 1.73e+03 -2.63e+03 3.41e-06 0 5.14e+03 1.54e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.577 0.0726 0.111 3.14e-06 0 0 0 Tank initStep - 1 4.78e+03 5e+03 -75.7 3.14e-06 0 6.92e+03 6.92e+03 expHall Transportation - 2 4.78e+03 5e+03 -75.7 3.14e-06 0 0 6.92e+03 Tank Transportation - 3 5e+03 4.9e+03 -126 3.14e-06 0 244 7.16e+03 expHall Transportation - 4 1e+04 -785 -5.65e+03 3.14e-06 0 9.38e+03 1.65e+04 world Transportation - 5 1.5e+04 -6.47e+03 -1.12e+04 3.14e-06 0 9.38e+03 2.59e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.56 0.063 0.118 3.98e-06 0 0 0 Tank initStep - 1 5e+03 790 -404 3.98e-06 0 5.08e+03 5.08e+03 expHall Transportation - 2 1e+04 2.05e+03 -2.08e+03 3.98e-06 0 5.42e+03 1.05e+04 world Transportation - 3 1.5e+04 3.3e+03 -3.75e+03 3.98e-06 0 5.42e+03 1.59e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.578 0.073 0.11 3.34e-06 0 0 0 Tank initStep - 1 3.04e+03 5e+03 -2.33e+03 3.34e-06 0 6.29e+03 6.29e+03 expHall Transportation - 2 8.8e+03 1e+04 -7.96e+03 3.34e-06 0 9.48e+03 1.58e+04 world Transportation - 3 1.46e+04 1.5e+04 -1.36e+04 3.34e-06 0 9.48e+03 2.53e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.619 0.0969 0.0911 3.87e-06 0 0 0 Tank initStep - 1 3.5e+03 3.07e+03 -5e+03 3.87e-06 0 6.83e+03 6.83e+03 expHall Transportation - 2 3.5e+03 3.07e+03 -5e+03 3.87e-06 0 0 6.83e+03 Tank Transportation - 3 4.59e+03 4.74e+03 -3.13e+03 3.87e-06 3.87e-06 2.74e+03 9.57e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 0.626 0.101 0.088 0.381 0 0 0.676 Tank initStep - 7 0.662 0.167 0.0599 0.223 0.158 0.081 0.757 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.658 0.159 0.0636 4.01e-06 0 0 0 Tank initStep - 1 -1.05e+03 1.29e+03 -1.07e+03 4.01e-06 4.01e-06 1.98e+03 1.98e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.639 0.126 0.0775 4.07e-06 0 0 0 Tank initStep - 1 -3.21e+03 3.69e+03 -5e+03 4.07e-06 0 7e+03 7e+03 expHall Transportation - 2 -3.21e+03 3.69e+03 -5e+03 4.07e-06 0 0 7e+03 Tank Transportation - 3 -5e+03 3.86e+03 -2.35e+03 4.07e-06 0 3.2e+03 1.02e+04 expHall Transportation - 4 -5e+03 3.86e+03 -2.35e+03 4.07e-06 0 0 1.02e+04 Tank Transportation - 5 -4.69e+03 3.82e+03 -2.03e+03 4.07e-06 4.07e-06 445 1.06e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.643 0.133 0.0743 3.81e-06 0 0 0 Tank initStep - 1 2.01e+03 -801 976 3.81e-06 3.81e-06 2.37e+03 2.37e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.629 0.106 0.0858 2.53e-06 0 0 0 Tank initStep - 1 -1.99e+03 210 3.98e+03 2.53e-06 2.53e-06 4.45e+03 4.45e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.653 0.151 0.0668 3.89e-06 0 0 0 Tank initStep - 1 4.78e+03 1.86e+03 1.23e+03 3.89e-06 3.89e-06 5.28e+03 5.28e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 7 0.662 0.167 0.0599 0.223 0 0 0.757 Tank initStep - 8 0.684 0.199 0.0465 0.218 0.00571 0.041 0.798 Tank msc - 9 0.742 0.275 0.015 0.193 0.0247 0.114 0.913 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.684 0.199 0.0465 3.28e-06 0 0 0 Tank initStep - 1 3.76e+03 5e+03 428 3.28e-06 0 6.27e+03 6.27e+03 expHall Transportation - 2 3.76e+03 5e+03 428 3.28e-06 0 0 6.27e+03 Tank Transportation - 3 5e+03 2.89e+03 1.06e+03 3.28e-06 0 2.53e+03 8.8e+03 expHall Transportation - 4 5e+03 2.89e+03 1.06e+03 3.28e-06 0 0 8.8e+03 Tank Transportation - 5 -5e+03 -3.19e+03 4.45e+03 3.28e-06 0 1.22e+04 2.1e+04 expHall Transportation - 6 -5e+03 -3.19e+03 4.45e+03 3.28e-06 0 0 2.1e+04 Tank Transportation - 7 -4.03e+03 -3.66e+03 5e+03 3.28e-06 0 1.21e+03 2.22e+04 expHall Transportation - 8 -4.03e+03 -3.66e+03 5e+03 3.28e-06 0 0 2.22e+04 Tank Transportation - 9 -2.6e+03 -5e+03 3.56e+03 3.28e-06 0 2.43e+03 2.46e+04 expHall Transportation - 10 -2.6e+03 -5e+03 3.56e+03 3.28e-06 0 0 2.46e+04 Tank Transportation - 11 2.04e+03 5e+03 -1.96e+03 3.28e-06 0 1.23e+04 3.7e+04 expHall Transportation - 12 8.67e+03 1e+04 -5.6e+03 3.28e-06 0 9.06e+03 4.6e+04 world Transportation - 13 1.5e+04 1.48e+04 -9.08e+03 3.28e-06 0 8.66e+03 5.47e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 9 0.742 0.275 0.015 0.193 0 0 0.913 Tank initStep - 10 0.745 0.286 -0.0153 0.188 0.00499 0.0324 0.945 Tank msc - 11 0.74 0.303 -0.0953 0.162 0.0264 0.0935 1.04 Tank eIoni - 12 0.743 0.297 -0.162 0.141 0.0211 0.0763 1.11 Tank eIoni - 13 0.693 0.28 -0.175 0.122 0.0183 0.0636 1.18 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.731 0.293 -0.165 3.64e-06 0 0 0 Tank initStep - 1 -1.55e+03 -5e+03 -4.1e+03 3.64e-06 0 6.65e+03 6.65e+03 expHall Transportation - 2 -1.55e+03 -5e+03 -4.1e+03 3.64e-06 0 0 6.65e+03 Tank Transportation - 3 -2.2e+03 -3.73e+03 -5e+03 3.64e-06 0 1.69e+03 8.34e+03 expHall Transportation - 4 -2.2e+03 -3.73e+03 -5e+03 3.64e-06 0 0 8.34e+03 Tank Transportation - 5 -2.62e+03 -2.62e+03 -4.84e+03 3.64e-06 3.64e-06 1.2e+03 9.54e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 13 0.693 0.28 -0.175 0.122 0 0 1.18 Tank initStep - 14 0.678 0.285 -0.176 0.119 0.00326 0.0151 1.19 Tank msc - 15 0.636 0.297 -0.172 0.103 0.0156 0.0517 1.25 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.644 0.295 -0.173 3.71e-06 0 0 0 Tank initStep - 1 2.51e+03 5e+03 807 3.71e-06 0 5.65e+03 5.65e+03 expHall Transportation - 2 2.51e+03 5e+03 807 3.71e-06 0 0 5.65e+03 Tank Transportation - 3 3.14e+03 4.16e+03 1.03e+03 3.71e-06 3.71e-06 1.07e+03 6.73e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 15 0.636 0.297 -0.172 0.103 0 0 1.25 Tank initStep - 16 0.625 0.298 -0.169 0.0917 0.0117 0.0114 1.26 Tank msc - 17 0.594 0.296 -0.163 0.0731 0.0185 0.0384 1.3 Tank eIoni - 18 0.57 0.288 -0.164 0.0307 0.0424 0.0305 1.33 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.579 0.291 -0.164 3.13e-06 0 0 0 Tank initStep - 1 -2.16e+03 2.32e+03 -5e+03 3.13e-06 0 5.92e+03 5.92e+03 expHall Transportation - 2 -1e+04 8.47e+03 -9.94e+03 3.13e-06 0 1.11e+04 1.7e+04 world Transportation - 3 -1.5e+04 1.24e+04 -1.31e+04 3.13e-06 0 7.09e+03 2.41e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.574 0.289 -0.164 2.3e-06 0 0 0 Tank initStep - 1 260 -430 -861 2.3e-06 2.3e-06 997 997 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 18 0.57 0.288 -0.164 0.0307 0 0 1.33 Tank initStep - 19 0.569 0.287 -0.163 0.0298 0.000912 0.00133 1.33 Tank msc - 20 0.563 0.284 -0.16 0.00971 0.0201 0.0141 1.34 Tank eIoni - 21 0.563 0.285 -0.16 0 0.00971 0.00212 1.34 Tank eIoni - 22 0.563 0.285 -0.16 0 0 0 1.34 Tank annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 34, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.563 0.285 -0.16 0.511 0 0 0 Tank initStep - 1 -16.8 -14.9 -15.6 0.386 1.36e-05 27.7 27.7 Tank compt - 2 -24.6 -40 -13.6 0.2 2.92e-05 26.4 54.1 Tank compt - 3 -69.9 -6.29 29.3 0.135 1.42e-05 70.9 125 Tank compt - 4 -76.9 -4.06 13.8 0.0958 2.92e-05 17.1 142 Tank compt - 5 -161 -18.5 142 0.0809 1.42e-05 154 296 Tank compt - 6 -162 -18.2 141 0.0604 2.92e-05 0.668 296 Tank compt - 7 -77.9 15 168 0.0504 1.36e-05 93.9 390 Tank compt - 8 -84.4 -1.82 163 0.0455 2.92e-05 18.7 409 Tank compt - 9 -90.8 1.34 165 0 0.000538 7.19 416 Tank phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -90.8 1.34 165 0.0449 0 0 0 Tank initStep - 1 -90.8 1.34 165 0.0438 0.00114 0.00283 0.00283 Tank msc - 2 -90.8 1.35 165 0.0336 0.0103 0.0204 0.0232 Tank eIoni - 3 -90.8 1.36 165 0.0122 0.0214 0.0164 0.0396 Tank eIoni - 4 -90.8 1.36 165 0 0.0122 0.00351 0.0432 Tank eIoni - 5 -90.8 1.36 165 0 0 0 0.0432 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 43 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -90.8 1.36 165 3.48e-06 0 0 0 Tank initStep - 1 2.47e+03 -139 5e+03 3.48e-06 0 5.47e+03 5.47e+03 expHall Transportation - 2 2.47e+03 -139 5e+03 3.48e-06 0 0 5.47e+03 Tank Transportation - 3 5e+03 -980 1.51e+03 3.48e-06 0 4.4e+03 9.87e+03 expHall Transportation - 4 5e+03 -980 1.51e+03 3.48e-06 0 0 9.87e+03 Tank Transportation - 5 2.3e+03 -5e+03 3.94e+03 3.48e-06 0 5.42e+03 1.53e+04 expHall Transportation - 6 2.3e+03 -5e+03 3.94e+03 3.48e-06 0 0 1.53e+04 Tank Transportation - 7 2.18e+03 -4.68e+03 5e+03 3.48e-06 0 1.11e+03 1.64e+04 expHall Transportation - 8 2.18e+03 -4.68e+03 5e+03 3.48e-06 0 0 1.64e+04 Tank Transportation - 9 225 -636 1.72e+03 3.48e-06 3.48e-06 5.56e+03 2.2e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 44, Parent ID = 43 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -90.8 1.36 165 3.66e-06 0 0 0 Tank initStep - 1 -674 -602 902 3.66e-06 3.66e-06 1.12e+03 1.12e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -84.4 -1.82 163 0.00488 0 0 0 Tank initStep - 1 -84.4 -1.82 163 0.00466 0.000219 5.68e-05 5.68e-05 Tank msc - 2 -84.4 -1.82 163 0 0.00466 0.000656 0.000713 Tank eIoni - 3 -84.4 -1.82 163 0 0 0 0.000713 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -77.9 15 168 0.01 0 0 0 Tank initStep - 1 -77.9 15 168 0.0098 0.000232 0.000199 0.000199 Tank msc - 2 -77.9 15 168 0 0.0098 0.00239 0.00259 Tank eIoni - 3 -77.9 15 168 0 0 0 0.00259 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -162 -18.2 141 0.0204 0 0 0 Tank initStep - 1 -162 -18.2 141 0.0193 0.00115 0.000699 0.000699 Tank msc - 2 -162 -18.2 141 0 0.0193 0.00789 0.00859 Tank eIoni - 3 -162 -18.2 141 0 0 0 0.00859 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -161 -18.5 142 0.0149 0 0 0 Tank initStep - 1 -161 -18.5 142 0.0145 0.000446 0.000401 0.000401 Tank msc - 2 -161 -18.5 142 0 0.0145 0.00476 0.00516 Tank eIoni - 3 -161 -18.5 142 0 0 0 0.00516 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 46, Parent ID = 39 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -161 -18.5 142 3.46e-06 0 0 0 Tank initStep - 1 -4.64e+03 5e+03 1.18e+03 3.46e-06 0 6.81e+03 6.81e+03 expHall Transportation - 2 -4.64e+03 5e+03 1.18e+03 3.46e-06 0 0 6.81e+03 Tank Transportation - 3 -5e+03 4.88e+03 1.72e+03 3.46e-06 0 657 7.47e+03 expHall Transportation - 4 -5e+03 4.88e+03 1.72e+03 3.46e-06 0 0 7.47e+03 Tank Transportation - 5 -4.84e+03 5e+03 1.84e+03 3.46e-06 0 230 7.69e+03 expHall Transportation - 6 -4.84e+03 5e+03 1.84e+03 3.46e-06 0 0 7.69e+03 Tank Transportation - 7 1.29e+03 -5e+03 3.06e+03 3.46e-06 0 1.18e+04 1.95e+04 expHall Transportation - 8 1.29e+03 -5e+03 3.06e+03 3.46e-06 0 0 1.95e+04 Tank Transportation - 9 3.45e+03 -3.22e+03 5e+03 3.46e-06 0 3.41e+03 2.29e+04 expHall Transportation - 10 3.45e+03 -3.22e+03 5e+03 3.46e-06 0 0 2.29e+04 Tank Transportation - 11 5e+03 -2.48e+03 4.1e+03 3.46e-06 0 1.94e+03 2.48e+04 expHall Transportation - 12 1e+04 3.45e+03 -3.95e+03 3.46e-06 0 1.12e+04 3.6e+04 world Transportation - 13 1.5e+04 9.37e+03 -1.2e+04 3.46e-06 0 1.12e+04 4.72e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -76.9 -4.06 13.8 0.039 0 0 0 Tank initStep - 1 -76.9 -4.06 13.8 0.0371 0.00189 0.0022 0.0022 Tank msc - 2 -76.9 -4.06 13.8 0.0235 0.0136 0.0179 0.0201 Tank eIoni - 3 -76.9 -4.06 13.8 0.00313 0.0204 0.0111 0.0312 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 38 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -76.9 -4.06 13.8 3.08e-06 0 0 0 Tank initStep - 1 -5e+03 4.35e+03 133 3.08e-06 0 6.57e+03 6.57e+03 expHall Transportation - 2 -5e+03 4.35e+03 133 3.08e-06 0 0 6.57e+03 Tank Transportation - 3 -4.87e+03 5e+03 112 3.08e-06 0 664 7.24e+03 expHall Transportation - 4 -2.52e+03 1e+04 1.02e+03 3.08e-06 0 5.6e+03 1.28e+04 world Transportation - 5 -169 1.5e+04 1.94e+03 3.08e-06 0 5.6e+03 1.84e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 47, Parent ID = 38 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -76.9 -4.06 13.8 3.21e-06 0 0 0 Tank initStep - 1 963 -5e+03 -4.46e+03 3.21e-06 0 6.79e+03 6.79e+03 expHall Transportation - 2 963 -5e+03 -4.46e+03 3.21e-06 0 0 6.79e+03 Tank Transportation - 3 845 -4.32e+03 -5e+03 3.21e-06 0 871 7.66e+03 expHall Transportation - 4 845 -4.32e+03 -5e+03 3.21e-06 0 0 7.66e+03 Tank Transportation - 5 562 -726 5e+03 3.21e-06 0 1.06e+04 1.83e+04 expHall Transportation - 6 751 4.41e+03 1e+04 3.21e-06 0 7.17e+03 2.55e+04 world Transportation - 7 940 9.55e+03 1.5e+04 3.21e-06 0 7.17e+03 3.26e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 -76.9 -4.06 13.8 0.00313 0 0 0.0312 Tank initStep - 4 -76.9 -4.06 13.8 0.00311 2.31e-05 2.67e-05 0.0312 Tank msc - 5 -76.9 -4.06 13.8 0 0.00311 0.000329 0.0315 Tank eIoni - 6 -76.9 -4.06 13.8 0 0 0 0.0315 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -69.9 -6.29 29.3 0.0656 0 0 0 Tank initStep - 1 -69.9 -6.29 29.3 0.065 0.00062 0.00548 0.00548 Tank msc - 2 -69.9 -6.28 29.3 0.0398 0.0252 0.0283 0.0338 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -69.9 -6.29 29.3 2.16e-06 0 0 0 Tank initStep - 1 1.59e+03 1.89e+03 5e+03 2.16e-06 0 5.57e+03 5.57e+03 expHall Transportation - 2 2.83e+03 2.14e+03 1e+04 2.16e-06 0 5.16e+03 1.07e+04 world Transportation - 3 4.06e+03 2.4e+03 1.5e+04 2.16e-06 0 5.16e+03 1.59e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -69.9 -6.28 29.3 0.0398 0 0 0.0338 Tank initStep - 3 -69.9 -6.28 29.3 0.0385 0.00132 0.00228 0.0361 Tank msc - 4 -69.9 -6.28 29.3 0.0149 0.0236 0.0184 0.0544 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 50, Parent ID = 37 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -69.9 -6.28 29.3 2.66e-06 0 0 0 Tank initStep - 1 4.25e+03 658 -5e+03 2.66e-06 0 6.66e+03 6.66e+03 expHall Transportation - 2 4.25e+03 658 -5e+03 2.66e-06 0 0 6.66e+03 Tank Transportation - 3 5e+03 686 -4.33e+03 2.66e-06 0 1.01e+03 7.67e+03 expHall Transportation - 4 5e+03 686 -4.33e+03 2.66e-06 0 0 7.67e+03 Tank Transportation - 5 -1.42e+03 1.55e+03 5e+03 2.66e-06 0 1.14e+04 1.9e+04 expHall Transportation - 6 -1e+04 4.56e+03 8.99e+03 2.66e-06 0 9.93e+03 2.9e+04 world Transportation - 7 -1.5e+04 6.31e+03 1.13e+04 2.66e-06 0 5.78e+03 3.47e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -69.9 -6.28 29.3 0.0149 0 0 0.0544 Tank initStep - 5 -69.9 -6.28 29.3 0.0126 0.00232 0.000401 0.0549 Tank msc - 6 -69.9 -6.28 29.3 0 0.0126 0.00371 0.0586 Tank eIoni - 7 -69.9 -6.28 29.3 0 0 0 0.0586 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -24.6 -40 -13.6 0.185 0 0 0 Tank initStep - 1 -24.6 -40 -13.6 0.177 0.00776 0.0314 0.0314 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 51, Parent ID = 36 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -24.6 -40 -13.6 3.21e-06 0 0 0 Tank initStep - 1 -387 694 5e+03 3.21e-06 0 5.08e+03 5.08e+03 expHall Transportation - 2 615 3.93e+03 1e+04 3.21e-06 0 6.04e+03 1.11e+04 world Transportation - 3 1.62e+03 7.17e+03 1.5e+04 3.21e-06 0 6.04e+03 1.72e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 -24.6 -40 -13.6 0.177 0 0 0.0314 Tank initStep - 2 -24.6 -40.1 -13.6 0.17 0.00727 0.0293 0.0607 Tank msc - 3 -24.5 -40.1 -13.7 0.147 0.0235 0.0842 0.145 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 36 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -24.6 -40.1 -13.7 2.32e-06 0 0 0 Tank initStep - 1 4.3e+03 85.6 -3.41e+03 2.32e-06 2.32e-06 5.5e+03 5.5e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 36 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -24.6 -40.1 -13.6 3.73e-06 0 0 0 Tank initStep - 1 -5e+03 3.46e+03 -2.14e+03 3.73e-06 0 6.44e+03 6.44e+03 expHall Transportation - 2 -5e+03 3.46e+03 -2.14e+03 3.73e-06 0 0 6.44e+03 Tank Transportation - 3 -4.83e+03 5e+03 -3.21e+03 3.73e-06 0 1.88e+03 8.33e+03 expHall Transportation - 4 -4.83e+03 5e+03 -3.21e+03 3.73e-06 0 0 8.33e+03 Tank Transportation - 5 -4.33e+03 4.25e+03 -3.7e+03 3.73e-06 3.73e-06 1.02e+03 9.35e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 -24.5 -40.1 -13.7 0.147 0 0 0.145 Tank initStep - 4 -24.5 -40.1 -13.7 0.0725 0.0741 0.0215 0.166 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 36 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -24.5 -40.1 -13.7 3.91e-06 0 0 0 Tank initStep - 1 75 -1.07e+03 440 3.91e-06 3.91e-06 1.13e+03 1.13e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -24.5 -40.1 -13.7 0.0725 0 0 0.166 Tank initStep - 5 -24.5 -40.1 -13.7 0.0698 0.00275 0.00652 0.173 Tank msc - 6 -24.5 -40.2 -13.7 0.056 0.0138 0.0302 0.203 Tank eIoni - 7 -24.5 -40.1 -13.7 0.0431 0.0129 0.0249 0.228 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 55, Parent ID = 36 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -24.5 -40.1 -13.7 3.84e-06 0 0 0 Tank initStep - 1 -301 -162 8.03 3.84e-06 3.84e-06 303 303 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 7 -24.5 -40.1 -13.7 0.0431 0 0 0.228 Tank initStep - 8 -24.5 -40.1 -13.7 0.0422 0.000961 0.00263 0.231 Tank msc - 9 -24.5 -40.1 -13.7 0.0195 0.0227 0.0198 0.25 Tank eIoni - 10 -24.5 -40.1 -13.7 0 0.0195 0.00807 0.258 Tank eIoni - 11 -24.5 -40.1 -13.7 0 0 0 0.258 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.8 -14.9 -15.6 0.125 0 0 0 Tank initStep - 1 -16.8 -14.9 -15.6 0.12 0.00569 0.0166 0.0166 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 56, Parent ID = 35 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.8 -14.9 -15.6 3.83e-06 0 0 0 Tank initStep - 1 2.61e+03 -5e+03 -1.43e+03 3.83e-06 0 5.81e+03 5.81e+03 expHall Transportation - 2 8.22e+03 -1e+04 -2.2e+03 3.83e-06 0 7.55e+03 1.34e+04 world Transportation - 3 1.38e+04 -1.5e+04 -2.96e+03 3.83e-06 0 7.55e+03 2.09e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 -16.8 -14.9 -15.6 0.12 0 0 0.0166 Tank initStep - 2 -16.8 -14.9 -15.6 0.114 0.00563 0.0153 0.0319 Tank msc - 3 -16.9 -14.8 -15.6 0.0972 0.0168 0.0509 0.0827 Tank eIoni - 4 -16.9 -14.8 -15.6 0.0728 0.0245 0.0424 0.125 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 57, Parent ID = 35 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.9 -14.8 -15.6 2.27e-06 0 0 0 Tank initStep - 1 386 2.04e+03 -5e+03 2.27e-06 0 5.41e+03 5.41e+03 expHall Transportation - 2 140 7.51e+03 -1e+04 2.27e-06 0 7.41e+03 1.28e+04 world Transportation - 3 -106 1.3e+04 -1.5e+04 2.27e-06 0 7.41e+03 2.02e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 34 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -16.9 -14.8 -15.6 0.0728 0 0 0.125 Tank initStep - 5 -16.9 -14.8 -15.6 0.0705 0.00232 0.00656 0.132 Tank msc - 6 -16.9 -14.8 -15.7 0.0496 0.0208 0.0305 0.162 Tank eIoni - 7 -16.9 -14.8 -15.7 0.0361 0.0135 0.0225 0.185 Tank eIoni - 8 -16.8 -14.8 -15.7 0.0135 0.0226 0.0175 0.202 Tank eIoni - 9 -16.8 -14.8 -15.7 0 0.0135 0.00422 0.206 Tank eIoni - 10 -16.8 -14.8 -15.7 0 0 0 0.206 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 58, Parent ID = 35 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -16.8 -14.8 -15.7 3.72e-06 0 0 0 Tank initStep - 1 3.52e+03 2.48e+03 5e+03 3.72e-06 0 6.62e+03 6.62e+03 expHall Transportation - 2 1e+04 5.76e+03 9.79e+03 3.72e-06 0 8.71e+03 1.53e+04 world Transportation - 3 1.5e+04 8.3e+03 1.35e+04 3.72e-06 0 6.71e+03 2.2e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 33, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.563 0.285 -0.16 0.511 0 0 0 Tank initStep - 1 26.8 23.1 23.1 0.388 1.42e-05 41.8 41.8 Tank compt - 2 -1.23 169 148 0.162 1.42e-05 194 236 Tank compt - 3 -14.4 24.5 136 0.15 2.92e-05 146 382 Tank compt - 4 -142 -94.8 117 0.146 1.42e-05 176 557 Tank compt - 5 -156 -99.3 118 0.143 1.42e-05 14.5 572 Tank compt - 6 -234 -97.9 128 0.128 0.000537 79.1 651 Tank compt - 7 -298 -105 27.6 0.113 0.000537 120 770 Tank compt - 8 -289 -72.9 -8.79 0.0935 1.36e-05 49.2 820 Tank compt - 9 -286 -80.4 -16.8 0.0899 1.36e-05 11.4 831 Tank compt - 10 -295 -95.3 -32 0.074 1.36e-05 23.1 854 Tank compt - 11 -321 -53.2 -40.5 0.0639 0.000537 50.1 904 Tank compt - 12 -318 -28.7 -12.3 0.055 1.36e-05 37.4 942 Tank compt - 13 -351 -37.9 -17.6 0.0529 1.36e-05 34.6 976 Tank compt - 14 -469 -65.5 87.2 0.0523 1.42e-05 161 1.14e+03 Tank compt - 15 -476 -71.8 96.1 0.0523 0 12.5 1.15e+03 Tank Rayl - 16 -500 -73.8 118 0.046 1.36e-05 32.6 1.18e+03 Tank compt - 17 -504 -264 -22.1 0.0408 1.36e-05 236 1.42e+03 Tank compt - 18 -506 -259 -24.4 0.0364 1.42e-05 5.36 1.42e+03 Tank compt - 19 -496 -266 -4.43 0.0338 1.42e-05 23.6 1.45e+03 Tank compt - 20 -490 -257 0.142 0.0308 1.42e-05 11.9 1.46e+03 Tank compt - 21 -561 -239 -88.9 0.0307 1.42e-05 116 1.57e+03 Tank compt - 22 -570 -231 -105 0.0302 2.92e-05 19.6 1.59e+03 Tank compt - 23 -572 -216 -112 0.03 1.36e-05 17.5 1.61e+03 Tank compt - 24 -571 -215 -112 0 0.000538 1 1.61e+03 Tank phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -571 -215 -112 0.0295 0 0 0 Tank initStep - 1 -571 -215 -112 0.0289 0.000553 0.00134 0.00134 Tank msc - 2 -571 -215 -112 0.00818 0.0207 0.0143 0.0156 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 82, Parent ID = 81 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -571 -215 -112 3.31e-06 0 0 0 Tank initStep - 1 -4.66e+03 -5e+03 3.75e+03 3.31e-06 0 7.39e+03 7.39e+03 expHall Transportation - 2 -4.66e+03 -5e+03 3.75e+03 3.31e-06 0 0 7.39e+03 Tank Transportation - 3 -5e+03 -4.36e+03 3.99e+03 3.31e-06 0 760 8.15e+03 expHall Transportation - 4 -5e+03 -4.36e+03 3.99e+03 3.31e-06 0 0 8.15e+03 Tank Transportation - 5 -3.18e+03 -1.39e+03 5e+03 3.31e-06 0 3.63e+03 1.18e+04 expHall Transportation - 6 -3.18e+03 -1.39e+03 5e+03 3.31e-06 0 0 1.18e+04 Tank Transportation - 7 1.47e+03 5e+03 -649 3.31e-06 0 9.71e+03 2.15e+04 expHall Transportation - 8 1.47e+03 5e+03 -649 3.31e-06 0 0 2.15e+04 Tank Transportation - 9 4.67e+03 -2.39e+03 -5e+03 3.31e-06 0 9.15e+03 3.06e+04 expHall Transportation - 10 4.67e+03 -2.39e+03 -5e+03 3.31e-06 0 0 3.06e+04 Tank Transportation - 11 5e+03 -2.9e+03 -4.56e+03 3.31e-06 0 751 3.14e+04 expHall Transportation - 12 5e+03 -2.9e+03 -4.56e+03 3.31e-06 0 0 3.14e+04 Tank Transportation - 13 4.11e+03 -4.83e+03 -5e+03 3.31e-06 0 2.16e+03 3.36e+04 expHall Transportation - 14 4.11e+03 -4.83e+03 -5e+03 3.31e-06 0 0 3.36e+04 Tank Transportation - 15 4.07e+03 -5e+03 -4.84e+03 3.31e-06 0 238 3.38e+04 expHall Transportation - 16 4.07e+03 -5e+03 -4.84e+03 3.31e-06 0 0 3.38e+04 Tank Transportation - 17 -355 3.96e+03 5e+03 3.31e-06 0 1.4e+04 4.78e+04 expHall Transportation - 18 -355 3.96e+03 5e+03 3.31e-06 0 0 4.78e+04 Tank Transportation - 19 -2.56e+03 5e+03 3.43e+03 3.31e-06 0 2.9e+03 5.07e+04 expHall Transportation - 20 -2.56e+03 5e+03 3.43e+03 3.31e-06 0 0 5.07e+04 Tank Transportation - 21 -5e+03 4.14e+03 1.7e+03 3.31e-06 0 3.11e+03 5.38e+04 expHall Transportation - 22 -9.9e+03 -3.05e+03 -1e+04 3.31e-06 0 1.46e+04 6.84e+04 world Transportation - 23 -1.2e+04 -6.13e+03 -1.5e+04 3.31e-06 0 6.23e+03 7.46e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -571 -215 -112 0.00818 0 0 0.0156 Tank initStep - 3 -571 -215 -112 0.00785 0.000334 0.000139 0.0158 Tank msc - 4 -571 -215 -112 0 0.00785 0.00162 0.0174 Tank eIoni - 5 -571 -215 -112 0 0 0 0.0174 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -572 -216 -112 0.000222 0 0 0 Tank initStep - 1 -572 -216 -112 0.000222 0 6.26e-07 6.26e-07 Tank msc - 2 -572 -216 -112 0 0.000222 7.83e-06 8.45e-06 Tank eIoni - 3 -572 -216 -112 0 0 0 8.45e-06 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -570 -231 -105 0.000461 0 0 0 Tank initStep - 1 -570 -231 -105 0.000461 0 1.39e-06 1.39e-06 Tank msc - 2 -570 -231 -105 0 0.000461 1.73e-05 1.87e-05 Tank eIoni - 3 -570 -231 -105 0 0 0 1.87e-05 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -561 -239 -88.9 0.000108 0 0 0 Tank initStep - 1 -561 -239 -88.9 0 0.000108 3.81e-07 3.81e-07 Tank msc - 2 -561 -239 -88.9 0 0 0 3.81e-07 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -490 -257 0.142 0.00297 0 0 0 Tank initStep - 1 -490 -257 0.142 0.00288 9.44e-05 2.44e-05 2.44e-05 Tank msc - 2 -490 -257 0.142 0 0.00288 0.000289 0.000314 Tank eIoni - 3 -490 -257 0.142 0 0 0 0.000314 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -496 -266 -4.43 0.00255 0 0 0 Tank initStep - 1 -496 -266 -4.43 0.00245 9.98e-05 1.89e-05 1.89e-05 Tank msc - 2 -496 -266 -4.43 0 0.00245 0.000221 0.000239 Tank eIoni - 3 -496 -266 -4.43 0 0 0 0.000239 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -506 -259 -24.4 0.00436 0 0 0 Tank initStep - 1 -506 -259 -24.4 0.00425 0.000107 4.67e-05 4.67e-05 Tank msc - 2 -506 -259 -24.4 0 0.00425 0.000559 0.000606 Tank eIoni - 3 -506 -259 -24.4 0 0 0 0.000606 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -504 -264 -22.1 0.0052 0 0 0 Tank initStep - 1 -504 -264 -22.1 0.00495 0.000245 6.33e-05 6.33e-05 Tank msc - 2 -504 -264 -22.1 0 0.00495 0.000728 0.000791 Tank eIoni - 3 -504 -264 -22.1 0 0 0 0.000791 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -500 -73.8 118 0.00632 0 0 0 Tank initStep - 1 -500 -73.8 118 0.00603 0.000294 8.88e-05 8.88e-05 Tank msc - 2 -500 -73.8 118 0 0.00603 0.00102 0.00111 Tank eIoni - 3 -500 -73.8 118 0 0 0 0.00111 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -469 -65.5 87.2 0.000555 0 0 0 Tank initStep - 1 -469 -65.5 87.2 0.000555 0 1.77e-06 1.77e-06 Tank msc - 2 -469 -65.5 87.2 0 0.000555 2.21e-05 2.39e-05 Tank eIoni - 3 -469 -65.5 87.2 0 0 0 2.39e-05 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -351 -37.9 -17.6 0.00206 0 0 0 Tank initStep - 1 -351 -37.9 -17.6 0.00198 8.17e-05 1.33e-05 1.33e-05 Tank msc - 2 -351 -37.9 -17.6 0 0.00198 0.000155 0.000168 Tank eIoni - 3 -351 -37.9 -17.6 0 0 0 0.000168 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -318 -28.7 -12.3 0.00892 0 0 0 Tank initStep - 1 -318 -28.7 -12.3 0.00848 0.000441 0.000162 0.000162 Tank msc - 2 -318 -28.7 -12.3 0 0.00848 0.00185 0.00201 Tank eIoni - 3 -318 -28.7 -12.3 0 0 0 0.00201 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 83, Parent ID = 70 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -318 -28.7 -12.3 3.34e-06 0 0 0 Tank initStep - 1 -1.67e+03 -5e+03 -111 3.34e-06 0 5.15e+03 5.15e+03 expHall Transportation - 2 -5.05e+03 -1e+04 -423 3.34e-06 0 6.04e+03 1.12e+04 world Transportation - 3 -8.43e+03 -1.5e+04 -735 3.34e-06 0 6.04e+03 1.72e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -321 -53.2 -40.5 0.00958 0 0 0 Tank initStep - 1 -321 -53.2 -40.5 0.00937 0.000206 0.000184 0.000184 Tank msc - 2 -321 -53.2 -40.5 0 0.00937 0.00221 0.00239 Tank eIoni - 3 -321 -53.2 -40.5 0 0 0 0.00239 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -295 -95.3 -32 0.0159 0 0 0 Tank initStep - 1 -295 -95.3 -32 0.0153 0.000593 0.000451 0.000451 Tank msc - 2 -295 -95.3 -32 0 0.0153 0.00527 0.00572 Tank eIoni - 3 -295 -95.3 -32 0 0 0 0.00572 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -286 -80.4 -16.8 0.00357 0 0 0 Tank initStep - 1 -286 -80.4 -16.8 0.00343 0.000138 3.32e-05 3.32e-05 Tank msc - 2 -286 -80.4 -16.8 0 0.00343 0.000388 0.000422 Tank eIoni - 3 -286 -80.4 -16.8 0 0 0 0.000422 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -289 -72.9 -8.79 0.0194 0 0 0 Tank initStep - 1 -289 -72.9 -8.79 0.0186 0.000873 0.000641 0.000641 Tank msc - 2 -289 -72.9 -8.79 0 0.0186 0.00739 0.00803 Tank eIoni - 3 -289 -72.9 -8.79 0 0 0 0.00803 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -298 -105 27.6 0.0141 0 0 0 Tank initStep - 1 -298 -105 27.6 0.0139 0.000141 0.000362 0.000362 Tank msc - 2 -298 -105 27.6 0 0.0139 0.00445 0.00481 Tank eIoni - 3 -298 -105 27.6 0 0 0 0.00481 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -234 -97.9 128 0.0151 0 0 0 Tank initStep - 1 -234 -97.9 128 0.0145 0.000676 0.000412 0.000412 Tank msc - 2 -234 -97.9 128 0 0.0145 0.00475 0.00516 Tank eIoni - 3 -234 -97.9 128 0 0 0 0.00516 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -156 -99.3 118 0.00262 0 0 0 Tank initStep - 1 -156 -99.3 118 0.00259 2.81e-05 1.98e-05 1.98e-05 Tank msc - 2 -156 -99.3 118 0 0.00259 0.000243 0.000262 Tank eIoni - 3 -156 -99.3 118 0 0 0 0.000262 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -142 -94.8 117 0.00447 0 0 0 Tank initStep - 1 -142 -94.8 117 0.00415 0.000323 4.88e-05 4.88e-05 Tank msc - 2 -142 -94.8 117 0 0.00415 0.000536 0.000585 Tank eIoni - 3 -142 -94.8 117 0 0 0 0.000585 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -14.4 24.5 136 0.0113 0 0 0 Tank initStep - 1 -14.4 24.5 136 0.011 0.000242 0.000245 0.000245 Tank msc - 2 -14.4 24.5 136 0 0.011 0.00295 0.0032 Tank eIoni - 3 -14.4 24.5 136 0 0 0 0.0032 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 84, Parent ID = 61 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -14.4 24.5 136 3.45e-06 0 0 0 Tank initStep - 1 -352 2.05e+03 554 3.45e-06 0 2.09e+03 2.09e+03 Tank OpRayleigh - 2 398 5e+03 1.44e+03 3.45e-06 0 3.17e+03 5.27e+03 expHall Transportation - 3 398 5e+03 1.44e+03 3.45e-06 0 0 5.27e+03 Tank Transportation - 4 482 4.86e+03 1.66e+03 3.45e-06 3.45e-06 274 5.54e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.23 169 148 0.226 0 0 0 Tank initStep - 1 -1.24 169 148 0.219 0.00706 0.0431 0.0431 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 85, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.23 169 148 2.13e-06 0 0 0 Tank initStep - 1 -3.84e+03 5e+03 -1.37e+03 2.13e-06 0 6.35e+03 6.35e+03 expHall Transportation - 2 -3.84e+03 5e+03 -1.37e+03 2.13e-06 0 0 6.35e+03 Tank Transportation - 3 -4.88e+03 3.41e+03 -2.28e+03 2.13e-06 2.13e-06 2.11e+03 8.46e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 -1.24 169 148 0.219 0 0 0.0431 Tank initStep - 2 -1.24 169 148 0.21 0.00855 0.041 0.0841 Tank msc - 3 -1.25 169 148 0.189 0.0217 0.112 0.196 Tank eIoni - 4 -1.2 169 148 0.166 0.0223 0.0966 0.293 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 86, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.23 169 148 3.98e-06 0 0 0 Tank initStep - 1 -4.2e+03 -5e+03 -1.73e+03 3.98e-06 0 6.92e+03 6.92e+03 expHall Transportation - 2 -4.2e+03 -5e+03 -1.73e+03 3.98e-06 0 0 6.92e+03 Tank Transportation - 3 -5e+03 -4.01e+03 -2.14e+03 3.98e-06 0 1.34e+03 8.26e+03 expHall Transportation - 4 -5e+03 -4.01e+03 -2.14e+03 3.98e-06 0 0 8.26e+03 Tank Transportation - 5 -4.99e+03 -3.99e+03 -2.14e+03 3.98e-06 0 17.7 8.28e+03 Tank OpRayleigh - 6 -5e+03 -3.96e+03 -2.12e+03 3.98e-06 0 39.2 8.32e+03 expHall Transportation - 7 -5e+03 -3.96e+03 -2.12e+03 3.98e-06 0 0 8.32e+03 Tank Transportation - 8 -15.3 788 514 3.98e-06 0 7.37e+03 1.57e+04 Tank OpRayleigh - 9 -3.17e+03 3.91e+03 5e+03 3.98e-06 0 6.31e+03 2.2e+04 expHall Transportation - 10 -3.17e+03 3.91e+03 5e+03 3.98e-06 0 0 2.2e+04 Tank Transportation - 11 -3.94e+03 5e+03 4.21e+03 3.98e-06 0 1.55e+03 2.35e+04 expHall Transportation - 12 -3.94e+03 5e+03 4.21e+03 3.98e-06 0 0 2.35e+04 Tank Transportation - 13 -5e+03 4.67e+03 3.1e+03 3.98e-06 0 1.57e+03 2.51e+04 expHall Transportation - 14 -5e+03 4.67e+03 3.1e+03 3.98e-06 0 0 2.51e+04 Tank Transportation - 15 -3.3e+03 4.93e+03 -3.82e+03 3.98e-06 0 7.13e+03 3.22e+04 Tank OpRayleigh - 16 -4.08e+03 3.36e+03 295 3.98e-06 3.98e-06 4.47e+03 3.67e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -1.2 169 148 0.166 0 0 0.293 Tank initStep - 5 -1.19 169 148 0.159 0.00686 0.0264 0.319 Tank msc - 6 -1.16 169 148 0.142 0.0176 0.0773 0.396 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 88, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.18 169 148 3.34e-06 0 0 0 Tank initStep - 1 2.16e+03 -1.77e+03 -5e+03 3.34e-06 0 5.91e+03 5.91e+03 expHall Transportation - 2 2.16e+03 -1.77e+03 -5e+03 3.34e-06 0 0 5.91e+03 Tank Transportation - 3 2.36e+03 -2.62e+03 -4.55e+03 3.34e-06 3.34e-06 981 6.89e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 87, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.17 169 148 3.36e-06 0 0 0 Tank initStep - 1 -1.49e+03 5e+03 -1.03e+03 3.36e-06 0 5.19e+03 5.19e+03 expHall Transportation - 2 -4.1e+03 1e+04 -3.65e+03 3.36e-06 0 6.22e+03 1.14e+04 world Transportation - 3 -6.7e+03 1.5e+04 -6.27e+03 3.36e-06 0 6.22e+03 1.76e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 -1.16 169 148 0.142 0 0 0.396 Tank initStep - 7 -1.17 169 148 0.136 0.00603 0.0203 0.417 Tank msc - 8 -1.2 169 148 0.116 0.0201 0.0629 0.48 Tank eIoni - 9 -1.24 169 148 0.0983 0.0174 0.0517 0.531 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 90, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.22 169 148 3.2e-06 0 0 0 Tank initStep - 1 -4.06e+03 -5e+03 -4.62e+03 3.2e-06 0 8.12e+03 8.12e+03 expHall Transportation - 2 -4.06e+03 -5e+03 -4.62e+03 3.2e-06 0 0 8.12e+03 Tank Transportation - 3 -4.19e+03 -4.76e+03 -5e+03 3.2e-06 0 473 8.59e+03 expHall Transportation - 4 -4.19e+03 -4.76e+03 -5e+03 3.2e-06 0 0 8.59e+03 Tank Transportation - 5 -5e+03 -2.39e+03 -2.06e+03 3.2e-06 0 3.86e+03 1.24e+04 expHall Transportation - 6 -5e+03 -2.39e+03 -2.06e+03 3.2e-06 0 0 1.24e+04 Tank Transportation - 7 1.58e+03 1.47e+03 5e+03 3.2e-06 0 1.04e+04 2.28e+04 expHall Transportation - 8 1.58e+03 1.47e+03 5e+03 3.2e-06 0 0 2.28e+04 Tank Transportation - 9 5e+03 3.15e+03 -733 3.2e-06 0 6.88e+03 2.97e+04 expHall Transportation - 10 5e+03 3.15e+03 -733 3.2e-06 0 0 2.97e+04 Tank Transportation - 11 3.83e+03 4.17e+03 -2.47e+03 3.2e-06 0 2.33e+03 3.21e+04 Tank OpRayleigh - 12 -559 1.02e+03 -1.61e+03 3.2e-06 3.2e-06 5.47e+03 3.75e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 89, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.22 169 148 3.2e-06 0 0 0 Tank initStep - 1 575 9.62 -543 3.2e-06 0 914 914 Tank OpRayleigh - 2 3.94e+03 727 -3.25e+03 3.2e-06 3.2e-06 4.38e+03 5.3e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 9 -1.24 169 148 0.0983 0 0 0.531 Tank initStep - 10 -1.25 169 148 0.0956 0.00264 0.011 0.542 Tank msc - 11 -1.28 169 148 0.0786 0.017 0.0416 0.584 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 91, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.26 169 148 3.99e-06 0 0 0 Tank initStep - 1 2.08e+03 1.04e+03 2.17e+03 3.99e-06 3.99e-06 3.03e+03 3.03e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 11 -1.28 169 148 0.0786 0 0 0.584 Tank initStep - 12 -1.28 169 148 0.0751 0.0035 0.0075 0.592 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 92, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.28 169 148 3.61e-06 0 0 0 Tank initStep - 1 -182 2e+03 -325 3.61e-06 3.61e-06 1.9e+03 1.9e+03 Bubble Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 12 -1.28 169 148 0.0751 0 0 0.592 Tank initStep - 13 -1.29 169 148 0.0736 0.00159 0.00693 0.598 Tank msc - 14 -1.3 169 148 0.0602 0.0133 0.0317 0.63 Tank eIoni - 15 -1.32 169 148 0.0384 0.0218 0.0264 0.657 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 93, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.31 169 148 3.35e-06 0 0 0 Tank initStep - 1 1.75e+03 -2.29e+03 5e+03 3.35e-06 0 5.71e+03 5.71e+03 expHall Transportation - 2 9.49e+03 -6.86e+03 1e+04 3.35e-06 0 1.03e+04 1.6e+04 world Transportation - 3 1.5e+04 -1.01e+04 1.36e+04 3.35e-06 0 7.32e+03 2.33e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 15 -1.32 169 148 0.0384 0 0 0.657 Tank initStep - 16 -1.32 169 148 0.0368 0.00161 0.00214 0.659 Tank msc - 17 -1.32 169 148 0.0184 0.0184 0.0177 0.676 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 95, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.32 169 148 3.23e-06 0 0 0 Tank initStep - 1 73.5 169 214 3.23e-06 0 100 100 Tank OpRayleigh - 2 -5e+03 3.61e+03 1.37e+03 3.23e-06 0 6.24e+03 6.34e+03 expHall Transportation - 3 -5e+03 3.61e+03 1.37e+03 3.23e-06 0 0 6.34e+03 Tank Transportation - 4 -2.39e+03 5e+03 1.31e+03 3.23e-06 0 2.96e+03 9.3e+03 expHall Transportation - 5 -2.39e+03 5e+03 1.31e+03 3.23e-06 0 0 9.3e+03 Tank Transportation - 6 5e+03 2.77e+03 2.91e+03 3.23e-06 0 7.88e+03 1.72e+04 expHall Transportation - 7 1e+04 -213 4.26e+03 3.23e-06 0 5.97e+03 2.32e+04 world Transportation - 8 1.5e+04 -3.19e+03 5.6e+03 3.23e-06 0 5.97e+03 2.91e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 94, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.32 169 148 3.88e-06 0 0 0 Tank initStep - 1 -1.5e+03 1.1e+03 93.4 3.88e-06 0 1.76e+03 1.76e+03 Tank OpRayleigh - 2 4.53e+03 176 786 3.88e-06 3.88e-06 6.14e+03 7.9e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 17 -1.32 169 148 0.0184 0 0 0.676 Tank initStep - 18 -1.32 169 148 0.0181 0.00029 0.000583 0.677 Tank msc - 19 -1.32 169 148 0 0.0181 0.00709 0.684 Tank eIoni - 20 -1.32 169 148 0 0 0 0.684 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 96, Parent ID = 60 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -1.32 169 148 2.67e-06 0 0 0 Tank initStep - 1 5e+03 -963 1.22e+03 2.67e-06 0 5.24e+03 5.24e+03 expHall Transportation - 2 1e+04 -958 2.72e+03 2.67e-06 0 5.22e+03 1.05e+04 world Transportation - 3 1.5e+04 -953 4.23e+03 2.67e-06 0 5.22e+03 1.57e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 26.8 23.1 23.1 0.123 0 0 0 Tank initStep - 1 26.8 23.1 23.1 0.119 0.00422 0.0161 0.0161 Tank msc - 2 26.8 23.1 23.1 0.102 0.0176 0.0536 0.0697 Tank eIoni - 3 26.9 23.1 23.1 0.0821 0.0195 0.0445 0.114 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 98, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 26.9 23.1 23.1 2.27e-06 0 0 0 Tank initStep - 1 4.38e+03 5e+03 -2.16e+03 2.27e-06 0 6.97e+03 6.97e+03 expHall Transportation - 2 4.38e+03 5e+03 -2.16e+03 2.27e-06 0 0 6.97e+03 Tank Transportation - 3 5e+03 3.4e+03 -2.38e+03 2.27e-06 0 1.73e+03 8.7e+03 expHall Transportation - 4 5e+03 3.4e+03 -2.38e+03 2.27e-06 0 0 8.7e+03 Tank Transportation - 5 -675 -1.25e+03 -3.74e+03 2.27e-06 2.27e-06 7.46e+03 1.62e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 97, Parent ID = 59 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 26.9 23.1 23.1 3.2e-06 0 0 0 Tank initStep - 1 5e+03 423 759 3.2e-06 0 5.04e+03 5.04e+03 expHall Transportation - 2 1e+04 -160 4.73e+03 3.2e-06 0 6.41e+03 1.15e+04 world Transportation - 3 1.5e+04 -744 8.69e+03 3.2e-06 0 6.41e+03 1.79e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 33 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 26.9 23.1 23.1 0.0821 0 0 0.114 Tank initStep - 4 26.9 23.1 23.1 0.0802 0.00191 0.00808 0.122 Tank msc - 5 26.9 23.2 23.1 0.0378 0.0424 0.0346 0.157 Tank eIoni - 6 26.9 23.2 23.1 0.0212 0.0167 0.0181 0.175 Tank eIoni - 7 26.9 23.2 23.1 0 0.0212 0.00932 0.184 Tank eIoni - 8 26.9 23.2 23.1 0 0 0 0.184 Tank NoProcess - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 0.5 0 0 0 Tank initStep - 1 0.135 0.011 0.0158 0.476 0.0244 0.139 0.139 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.12 0.00974 0.014 3.17e-06 0 0 0 Tank initStep - 1 3.01e+03 -2.85e+03 5e+03 3.17e-06 0 6.49e+03 6.49e+03 expHall Transportation - 2 3.01e+03 -2.85e+03 5e+03 3.17e-06 0 0 6.49e+03 Tank Transportation - 3 5e+03 -4.66e+03 3.06e+03 3.17e-06 0 3.32e+03 9.81e+03 expHall Transportation - 4 5e+03 -4.66e+03 3.06e+03 3.17e-06 0 0 9.81e+03 Tank Transportation - 5 4.46e+03 -5e+03 2.38e+03 3.17e-06 0 928 1.07e+04 expHall Transportation - 6 4.46e+03 -5e+03 2.38e+03 3.17e-06 0 0 1.07e+04 Tank Transportation - 7 -1.92e+03 -3.45e+03 -5e+03 3.17e-06 0 9.88e+03 2.06e+04 expHall Transportation - 8 -1.92e+03 -3.45e+03 -5e+03 3.17e-06 0 0 2.06e+04 Tank Transportation - 9 -5e+03 -2.59e+03 -3.82e+03 3.17e-06 0 3.41e+03 2.4e+04 expHall Transportation - 10 -1e+04 -93.2 -1.03e+03 3.17e-06 0 6.25e+03 3.03e+04 world Transportation - 11 -1.5e+04 2.4e+03 1.76e+03 3.17e-06 0 6.25e+03 3.65e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0946 0.0077 0.011 3.96e-06 0 0 0 Tank initStep - 1 140 -287 4.69e+03 3.96e-06 0 4.7e+03 4.7e+03 Tank OpRayleigh - 2 -408 -5e+03 1.21e+03 3.96e-06 0 5.88e+03 1.06e+04 expHall Transportation - 3 -7.16e+03 -9.04e+03 -1e+04 3.96e-06 0 1.37e+04 2.43e+04 world Transportation - 4 -1.02e+04 -1.08e+04 -1.5e+04 3.96e-06 0 6.11e+03 3.04e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0315 0.00256 0.00367 3.18e-06 0 0 0 Tank initStep - 1 5e+03 2.91e+03 -1.1e+03 3.18e-06 0 5.89e+03 5.89e+03 expHall Transportation - 2 9.83e+03 1e+04 -5.79e+03 3.18e-06 0 9.77e+03 1.57e+04 world Transportation - 3 1.32e+04 1.5e+04 -9.1e+03 3.18e-06 0 6.9e+03 2.26e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0796 0.00649 0.0093 3.28e-06 0 0 0 Tank initStep - 1 5e+03 1e+03 -2.22e+03 3.28e-06 0 5.56e+03 5.56e+03 expHall Transportation - 2 5e+03 1e+03 -2.22e+03 3.28e-06 0 0 5.56e+03 Tank Transportation - 3 3e+03 1.46e+03 -5e+03 3.28e-06 0 3.45e+03 9.01e+03 expHall Transportation - 4 3e+03 1.46e+03 -5e+03 3.28e-06 0 0 9.01e+03 Tank Transportation - 5 527 2.61e+03 -2.2e+03 3.28e-06 3.28e-06 3.91e+03 1.29e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.0883 0.00719 0.0103 2.65e-06 0 0 0 Tank initStep - 1 5e+03 -1.48e+03 2.99e+03 2.65e-06 0 6.01e+03 6.01e+03 expHall Transportation - 2 1e+04 -4.43e+03 7.65e+03 2.65e-06 0 7.45e+03 1.35e+04 world Transportation - 3 1.5e+04 -7.39e+03 1.23e+04 2.65e-06 0 7.45e+03 2.09e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 0.135 0.011 0.0158 0.476 0 0 0.139 Tank initStep - 2 0.244 0.0106 0.0797 0.442 0.0336 0.126 0.266 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.166 0.0109 0.0338 3.72e-06 0 0 0 Tank initStep - 1 477 -5e+03 3.22e+03 3.72e-06 0 5.97e+03 5.97e+03 expHall Transportation - 2 1.27e+03 -1e+04 9.82e+03 3.72e-06 0 8.32e+03 1.43e+04 world Transportation - 3 1.89e+03 -1.39e+04 1.5e+04 3.72e-06 0 6.52e+03 2.08e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.214 0.0107 0.0623 4.05e-06 0 0 0 Tank initStep - 1 5e+03 -1.12e+03 246 4.05e-06 0 5.13e+03 5.13e+03 expHall Transportation - 2 1e+04 -3.46e+03 1.68e+03 4.05e-06 0 5.7e+03 1.08e+04 world Transportation - 3 1.5e+04 -5.8e+03 3.12e+03 4.05e-06 0 5.7e+03 1.65e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.14 0.011 0.0186 4.12e-06 0 0 0 Tank initStep - 1 5e+03 2.75e+03 1.65e+03 4.12e-06 0 5.94e+03 5.94e+03 expHall Transportation - 2 7.32e+03 1e+04 5.36e+03 4.12e-06 0 8.47e+03 1.44e+04 world Transportation - 3 8.91e+03 1.5e+04 7.93e+03 4.12e-06 0 5.84e+03 2.02e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.142 0.011 0.0194 2.41e-06 0 0 0 Tank initStep - 1 196 -101 280 2.41e-06 2.41e-06 356 356 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 0.244 0.0106 0.0797 0.442 0 0 0.266 Tank initStep - 3 0.35 0.0159 0.102 0.427 0.0146 0.109 0.375 Tank Cerenkov - 4 0.447 0.0133 0.114 0.415 0.0129 0.102 0.477 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.354 0.0157 0.102 3.65e-06 0 0 0 Tank initStep - 1 -5e+03 -1.44e+03 -25 3.65e-06 0 5.2e+03 5.2e+03 expHall Transportation - 2 -5e+03 -1.44e+03 -25 3.65e-06 0 0 5.2e+03 Tank Transportation - 3 -2.49e+03 -4.2e+03 -5e+03 3.65e-06 0 6.22e+03 1.14e+04 expHall Transportation - 4 -2.49e+03 -4.2e+03 -5e+03 3.65e-06 0 0 1.14e+04 Tank Transportation - 5 -2.03e+03 -5e+03 -4.83e+03 3.65e-06 0 934 1.24e+04 expHall Transportation - 6 1e+04 -9.98e+03 -3e+03 3.65e-06 0 1.32e+04 2.55e+04 world Transportation - 7 1.5e+04 -1.21e+04 -2.24e+03 3.65e-06 0 5.46e+03 3.1e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.408 0.0143 0.109 2.16e-06 0 0 0 Tank initStep - 1 2.23e+03 919 984 2.16e-06 2.16e-06 2.61e+03 2.61e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.372 0.0153 0.105 3.33e-06 0 0 0 Tank initStep - 1 5e+03 -886 3.5e+03 3.33e-06 0 6.17e+03 6.17e+03 expHall Transportation - 2 5e+03 -886 3.5e+03 3.33e-06 0 0 6.17e+03 Tank Transportation - 3 3.35e+03 -808 4.96e+03 3.33e-06 3.33e-06 2.21e+03 8.38e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 0.447 0.0133 0.114 0.415 0 0 0.477 Tank initStep - 5 0.542 0.00404 0.113 0.399 0.0159 0.0957 0.572 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.448 0.0133 0.114 4.08e-06 0 0 0 Tank initStep - 1 3.53e+03 -4.88e+03 -3.31e+03 4.08e-06 4.08e-06 6.87e+03 6.87e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.526 0.00555 0.113 3.88e-06 0 0 0 Tank initStep - 1 2.24e+03 -1.31e+03 -652 3.88e-06 0 2.67e+03 2.67e+03 Tank OpRayleigh - 2 1.67e+03 1.08e+03 -479 3.88e-06 3.88e-06 2.46e+03 5.14e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.531 0.00503 0.113 2.4e-06 0 0 0 Tank initStep - 1 5e+03 -1.82e+03 -2.36e+03 2.4e-06 0 5.82e+03 5.82e+03 expHall Transportation - 2 5e+03 -1.82e+03 -2.36e+03 2.4e-06 0 0 5.82e+03 Tank Transportation - 3 3.82e+03 -3.26e+03 -5e+03 2.4e-06 0 3.23e+03 9.05e+03 expHall Transportation - 4 3.82e+03 -3.26e+03 -5e+03 2.4e-06 0 0 9.05e+03 Tank Transportation - 5 3.47e+03 -3.66e+03 -4.76e+03 2.4e-06 2.4e-06 582 9.63e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 5 0.542 0.00404 0.113 0.399 0 0 0.572 Tank initStep - 6 0.629 0.00398 0.118 0.388 0.0103 0.0886 0.661 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.62 0.00399 0.117 2.46e-06 0 0 0 Tank initStep - 1 -5e+03 465 1.19e+03 2.46e-06 0 5.16e+03 5.16e+03 expHall Transportation - 2 -1e+04 3.26e+03 2.93e+03 2.46e-06 0 5.99e+03 1.11e+04 world Transportation - 3 -1.5e+04 6.06e+03 4.67e+03 2.46e-06 0 5.99e+03 1.71e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.548 0.00404 0.113 2.32e-06 0 0 0 Tank initStep - 1 5e+03 524 2.73e+03 2.32e-06 0 5.72e+03 5.72e+03 expHall Transportation - 2 1e+04 195 4.92e+03 2.32e-06 0 5.47e+03 1.12e+04 world Transportation - 3 1.5e+04 -135 7.1e+03 2.32e-06 0 5.47e+03 1.67e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 6 0.629 0.00398 0.118 0.388 0 0 0.661 Tank initStep - 7 0.712 -0.00735 0.124 0.375 0.0136 0.084 0.745 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.679 -0.00283 0.122 2.15e-06 0 0 0 Tank initStep - 1 -2.43e+03 -301 4.52e+03 2.15e-06 2.15e-06 5.15e+03 5.15e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.699 -0.00558 0.123 3.76e-06 0 0 0 Tank initStep - 1 1.69e+03 -682 -577 3.76e-06 3.76e-06 1.91e+03 1.91e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 7 0.712 -0.00735 0.124 0.375 0 0 0.745 Tank initStep - 8 0.788 -0.0128 0.135 0.265 0.11 0.0782 0.823 Tank Cerenkov - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.757 -0.0106 0.131 3.63e-06 0 0 0 Tank initStep - 1 985 -787 -5e+03 3.63e-06 0 5.16e+03 5.16e+03 expHall Transportation - 2 2.75e+03 -1.06e+03 -1e+04 3.63e-06 0 5.31e+03 1.05e+04 world Transportation - 3 4.52e+03 -1.33e+03 -1.5e+04 3.63e-06 0 5.31e+03 1.58e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.768 -0.0113 0.132 3.93e-06 0 0 0 Tank initStep - 1 85.6 48.4 500 3.93e-06 3.93e-06 509 509 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.752 -0.0102 0.13 2.98e-06 0 0 0 Tank initStep - 1 -4.13e+03 -5e+03 354 2.98e-06 0 6.5e+03 6.5e+03 expHall Transportation - 2 -1e+04 -7.13e+03 139 2.98e-06 0 6.24e+03 1.27e+04 world Transportation - 3 -1.5e+04 -8.94e+03 -43.7 2.98e-06 0 5.32e+03 1.81e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 8 0.788 -0.0128 0.135 0.265 0 0 0.823 Tank initStep - 9 0.826 -0.0138 0.145 0.26 0.0051 0.0393 0.862 Tank Cerenkov - 10 0.861 -0.0126 0.157 0.253 0.00717 0.0379 0.9 Tank Cerenkov - 11 0.893 -0.002 0.165 0.244 0.00836 0.0359 0.936 Tank Cerenkov - 12 0.898 0.00278 0.167 0.243 0.00175 0.00717 0.943 Tank Cerenkov - 13 0.898 0.00315 0.167 0.243 6.07e-05 0.000532 0.944 Tank Cerenkov - 14 0.898 0.00336 0.167 0.243 2.34e-05 0.000303 0.944 Tank Cerenkov - 15 0.898 0.00351 0.167 0.242 6.44e-05 0.000214 0.944 Tank Cerenkov - 16 0.978 0.0855 0.195 0.216 0.0262 0.133 1.08 Tank eIoni - 17 1.07 0.124 0.206 0.189 0.0273 0.113 1.19 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.982 0.0873 0.195 2.19e-06 0 0 0 Tank initStep - 1 -1.09e+03 391 -5e+03 2.19e-06 0 5.13e+03 5.13e+03 expHall Transportation - 2 -1.09e+03 391 -5e+03 2.19e-06 0 0 5.13e+03 Tank Transportation - 3 -4.1e+03 -47.7 5e+03 2.19e-06 0 1.05e+04 1.56e+04 expHall Transportation - 4 -4.1e+03 -47.7 5e+03 2.19e-06 0 0 1.56e+04 Tank Transportation - 5 -5e+03 -223 4.01e+03 2.19e-06 0 1.35e+03 1.69e+04 expHall Transportation - 6 -5e+03 -223 4.01e+03 2.19e-06 0 0 1.69e+04 Tank Transportation - 7 989 -2.01e+03 -2.8e+03 2.19e-06 2.19e-06 9.24e+03 2.62e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 17 1.07 0.124 0.206 0.189 0 0 1.19 Tank initStep - 18 1.1 0.135 0.22 0.181 0.00811 0.0313 1.22 Tank msc - 19 1.16 0.159 0.248 0.16 0.0209 0.0886 1.31 Tank eIoni - 20 1.21 0.195 0.284 0.135 0.025 0.0752 1.39 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.19 0.183 0.271 3.02e-06 0 0 0 Tank initStep - 1 5e+03 -260 4.03e+03 3.02e-06 0 6.43e+03 6.43e+03 expHall Transportation - 2 5e+03 -260 4.03e+03 3.02e-06 0 0 6.43e+03 Tank Transportation - 3 3.38e+03 -944 5e+03 3.02e-06 0 2.01e+03 8.43e+03 expHall Transportation - 4 3.38e+03 -944 5e+03 3.02e-06 0 0 8.43e+03 Tank Transportation - 5 -3.03e+03 -739 -5e+03 3.02e-06 0 1.19e+04 2.03e+04 expHall Transportation - 6 -3.03e+03 -739 -5e+03 3.02e-06 0 0 2.03e+04 Tank Transportation - 7 -5e+03 -831 -1.55e+03 3.02e-06 0 3.98e+03 2.43e+04 expHall Transportation - 8 -5e+03 -831 -1.55e+03 3.02e-06 0 0 2.43e+04 Tank Transportation - 9 -2.91e+03 -1.25e+03 5e+03 3.02e-06 0 6.89e+03 3.12e+04 expHall Transportation - 10 -2.91e+03 -1.25e+03 5e+03 3.02e-06 0 0 3.12e+04 Tank Transportation - 11 -1.27e+03 -1.58e+03 1.57e+03 3.02e-06 3.02e-06 3.82e+03 3.5e+04 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.19 0.186 0.275 3.01e-06 0 0 0 Tank initStep - 1 5e+03 -335 681 3.01e-06 0 5.06e+03 5.06e+03 expHall Transportation - 2 1e+04 -2.04e+03 -64.2 3.01e-06 0 5.34e+03 1.04e+04 world Transportation - 3 1.5e+04 -3.75e+03 -810 3.01e-06 0 5.34e+03 1.57e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.18 0.174 0.263 3.22e-06 0 0 0 Tank initStep - 1 -1.59e+03 219 -5e+03 3.22e-06 0 5.25e+03 5.25e+03 expHall Transportation - 2 -4.74e+03 -584 -1e+04 3.22e-06 0 5.96e+03 1.12e+04 world Transportation - 3 -7.88e+03 -1.39e+03 -1.5e+04 3.22e-06 0 5.96e+03 1.72e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.19 0.182 0.271 3.37e-06 0 0 0 Tank initStep - 1 5e+03 -1.72e+03 4.91e+03 3.37e-06 0 7.21e+03 7.21e+03 expHall Transportation - 2 5e+03 -1.72e+03 4.91e+03 3.37e-06 0 0 7.21e+03 Tank Transportation - 3 4.93e+03 -1.8e+03 5e+03 3.37e-06 0 138 7.35e+03 expHall Transportation - 4 4.93e+03 -1.8e+03 5e+03 3.37e-06 0 0 7.35e+03 Tank Transportation - 5 1.31e+03 -5e+03 2.64e+03 3.37e-06 0 5.38e+03 1.27e+04 expHall Transportation - 6 1.31e+03 -5e+03 2.64e+03 3.37e-06 0 0 1.27e+04 Tank Transportation - 7 -1.81e+03 -1.08e+03 5e+03 3.37e-06 0 5.55e+03 1.83e+04 expHall Transportation - 8 -1.81e+03 -1.08e+03 5e+03 3.37e-06 0 0 1.83e+04 Tank Transportation - 9 -5e+03 1.38e+03 1.59e+03 3.37e-06 0 5.28e+03 2.36e+04 expHall Transportation - 10 -5e+03 1.38e+03 1.59e+03 3.37e-06 0 0 2.36e+04 Tank Transportation - 11 -3.19e+03 5e+03 -3.28e+03 3.37e-06 0 6.33e+03 2.99e+04 expHall Transportation - 12 -3.19e+03 5e+03 -3.28e+03 3.37e-06 0 0 2.99e+04 Tank Transportation - 13 -193 -5e+03 -2.28e+03 3.37e-06 0 1.05e+04 4.04e+04 expHall Transportation - 14 2.85e+03 -1e+04 -2.18e+03 3.37e-06 0 5.85e+03 4.62e+04 world Transportation - 15 5.89e+03 -1.5e+04 -2.07e+03 3.37e-06 0 5.85e+03 5.21e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.17 0.168 0.257 3.73e-06 0 0 0 Tank initStep - 1 5e+03 -402 -1.09e+03 3.73e-06 0 5.13e+03 5.13e+03 expHall Transportation - 2 1e+04 -368 -3.01e+03 3.73e-06 0 5.36e+03 1.05e+04 world Transportation - 3 1.5e+04 -333 -4.93e+03 3.73e-06 0 5.36e+03 1.58e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.2 0.188 0.277 3.64e-06 0 0 0 Tank initStep - 1 169 5e+03 -1.5e+03 3.64e-06 0 5.22e+03 5.22e+03 expHall Transportation - 2 29.5 1e+04 -3.75e+03 3.64e-06 0 5.49e+03 1.07e+04 world Transportation - 3 -110 1.5e+04 -6e+03 3.64e-06 0 5.49e+03 1.62e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 20 1.21 0.195 0.284 0.135 0 0 1.39 Tank initStep - 21 1.21 0.19 0.301 0.13 0.00457 0.0179 1.4 Tank msc - 22 1.22 0.172 0.346 0.111 0.0191 0.0578 1.46 Tank eIoni - 23 1.23 0.157 0.382 0.0941 0.0172 0.0477 1.51 Tank eIoni - 24 1.25 0.151 0.406 0.0775 0.0165 0.0395 1.55 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.24 0.155 0.39 3.55e-06 0 0 0 Tank initStep - 1 1.02e+03 -1.99e+03 -1.07e+03 3.55e-06 3.55e-06 2.48e+03 2.48e+03 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.24 0.156 0.387 2.11e-06 0 0 0 Tank initStep - 1 10.4 -92.9 113 2.11e-06 2.11e-06 147 147 Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 24 1.25 0.151 0.406 0.0775 0 0 1.55 Tank initStep - 25 1.26 0.154 0.409 0.074 0.00356 0.0069 1.56 Tank msc - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 33, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.26 0.154 0.408 3.24e-06 0 0 0 Tank initStep - 1 -5e+03 3.94e+03 -1.24e+03 3.24e-06 0 6.49e+03 6.49e+03 expHall Transportation - 2 -5e+03 3.94e+03 -1.24e+03 3.24e-06 0 0 6.49e+03 Tank Transportation - 3 -4.04e+03 5e+03 -1.45e+03 3.24e-06 0 1.44e+03 7.93e+03 expHall Transportation - 4 -4.04e+03 5e+03 -1.45e+03 3.24e-06 0 0 7.93e+03 Tank Transportation - 5 -1.47e+03 -373 -5e+03 3.24e-06 0 6.94e+03 1.49e+04 expHall Transportation - 6 -1.47e+03 -373 -5e+03 3.24e-06 0 0 1.49e+04 Tank Transportation - 7 -2.57e+03 -5e+03 386 3.24e-06 0 7.19e+03 2.21e+04 expHall Transportation - 8 -2.57e+03 -5e+03 386 3.24e-06 0 0 2.21e+04 Tank Transportation - 9 630 -92.1 5e+03 3.24e-06 0 7.46e+03 2.95e+04 expHall Transportation - 10 630 -92.1 5e+03 3.24e-06 0 0 2.95e+04 Tank Transportation - 11 5e+03 4.5e+03 3.51e+03 3.24e-06 0 6.51e+03 3.6e+04 expHall Transportation - 12 5e+03 4.5e+03 3.51e+03 3.24e-06 0 0 3.6e+04 Tank Transportation - 13 4.38e+03 5e+03 3.02e+03 3.24e-06 0 936 3.7e+04 expHall Transportation - 14 -291 1e+04 -6.86e+03 3.24e-06 0 1.2e+04 4.9e+04 world Transportation - 15 -4.15e+03 1.41e+04 -1.5e+04 3.24e-06 0 9.91e+03 5.89e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 25 1.26 0.154 0.409 0.074 0 0 1.56 Tank initStep - 26 1.26 0.158 0.411 0.0701 0.00386 0.00635 1.56 Tank msc - 27 1.28 0.171 0.419 0.0564 0.0137 0.0293 1.59 Tank eIoni - 28 1.29 0.188 0.421 0.0384 0.018 0.0242 1.62 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 34, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.29 0.187 0.421 2.52e-06 0 0 0 Tank initStep - 1 4.25e+03 -2.1e+03 5e+03 2.52e-06 0 6.89e+03 6.89e+03 expHall Transportation - 2 4.25e+03 -2.1e+03 5e+03 2.52e-06 0 0 6.89e+03 Tank Transportation - 3 5e+03 -2.68e+03 4.24e+03 2.52e-06 0 1.22e+03 8.1e+03 expHall Transportation - 4 5e+03 -2.68e+03 4.24e+03 2.52e-06 0 0 8.1e+03 Tank Transportation - 5 2.95e+03 -5e+03 553 2.52e-06 0 4.82e+03 1.29e+04 expHall Transportation - 6 2.95e+03 -5e+03 553 2.52e-06 0 0 1.29e+04 Tank Transportation - 7 383 -3.72e+03 -5e+03 2.52e-06 0 6.25e+03 1.92e+04 expHall Transportation - 8 -3.24e+03 -2.79e+03 -1e+04 2.52e-06 0 6.24e+03 2.54e+04 world Transportation - 9 -6.86e+03 -1.87e+03 -1.5e+04 2.52e-06 0 6.24e+03 3.17e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 28 1.29 0.188 0.421 0.0384 0 0 1.62 Tank initStep - 29 1.29 0.19 0.42 0.0372 0.00113 0.00198 1.62 Tank msc - 30 1.29 0.199 0.414 0.0167 0.0205 0.0173 1.63 Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 35, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.29 0.191 0.419 3.77e-06 0 0 0 Tank initStep - 1 -35.4 -9.12 -11.9 3.77e-06 0 39.8 39.8 Tank OpRayleigh - 2 -5e+03 1.63e+03 1.08e+03 3.77e-06 0 5.34e+03 5.38e+03 expHall Transportation - 3 -1e+04 3.85e+03 4.83e+03 3.77e-06 0 6.63e+03 1.2e+04 world Transportation - 4 -1.5e+04 6.07e+03 8.58e+03 3.77e-06 0 6.63e+03 1.86e+04 OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 30 1.29 0.199 0.414 0.0167 0 0 1.63 Tank initStep - 31 1.29 0.199 0.414 0.0163 0.000408 0.000446 1.64 Tank msc - 32 1.29 0.201 0.416 0 0.0163 0.00533 1.64 Tank eIoni - 33 1.29 0.201 0.416 0 0 0 1.64 Tank annihil + 23 0.409 0.273 0.552 0.0514 0 0 1.66 Tank initStep + 24 0.406 0.273 0.551 0.0509 0.000512 0.00334 1.66 Tank msc + 25 0.391 0.275 0.545 0.0318 0.0191 0.0222 1.68 Tank eIoni + 26 0.387 0.268 0.548 0 0.0318 0.015 1.7 Tank eIoni + 27 0.387 0.268 0.548 0 0 0 1.7 Tank annihil ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 38, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.29 0.201 0.416 0.511 0 0 0 Tank initStep - 1 -10.2 5.52 0.547 0.228 1.42e-05 12.7 12.7 Tank compt - 2 -3.42 14.2 -0.0202 0.208 1.42e-05 11 23.7 Tank compt - 3 -3.2 15.7 0.547 0.152 0.000537 1.6 25.3 Tank compt - 4 118 14 0.388 0.129 0.000537 121 146 Tank compt - 5 119 40.5 -9.49 0.107 0.000537 28.3 175 Tank compt - 6 414 94.5 -163 0.0849 1.42e-05 337 511 Tank compt - 7 412 89.3 -164 0.0684 1.42e-05 5.76 517 Tank compt - 8 425 114 -183 0.0684 0 33.5 551 Tank Rayl - 9 438 117 -198 0.0547 1.36e-05 20.2 571 Tank compt - 10 434 116 -196 0.0416 0.000537 4.28 575 Tank compt - 11 468 133 -194 0.0396 1.42e-05 38.1 613 Tank compt - 12 471 141 -207 0.0374 1.36e-05 15.5 629 Tank compt - 13 465 147 -207 0.0328 1.42e-05 8.76 638 Tank compt - 14 470 146 -205 0 0.000538 5.51 643 Tank phot + 0 0.387 0.268 0.548 0.511 0 0 0 Tank initStep + 1 0.544 40 7.08 0.363 1.42e-05 40.3 40.3 Tank compt + 2 35.3 107 -51.7 0.271 1.36e-05 95.7 136 Tank compt + 3 35.4 156 -38.9 0.215 2.92e-05 50.7 187 Tank compt + 4 53.3 170 -46.2 0.136 2.92e-05 24 211 Tank compt + 5 45.7 178 -28.4 0.135 0.000537 20.6 231 Tank compt + 6 43.2 182 -18.7 0.109 1.42e-05 10.8 242 Tank compt + 7 -161 317 -124 0.109 1.36e-05 266 508 Tank compt + 8 -198 343 -156 0.0781 1.36e-05 56.3 565 Tank compt + 9 -185 318 -91.5 0.0774 1.42e-05 70.8 635 Tank compt + 10 -184 313 -85.9 0 0.000538 7.45 643 Tank phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 38 +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 38 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 470 146 -205 0.0323 0 0 0 Tank initStep - 1 470 146 -205 0.0315 0.000814 0.00158 0.00158 Tank msc - 2 470 146 -205 0.0163 0.0151 0.0155 0.0171 Tank eIoni - 3 470 146 -205 0 0.0163 0.00589 0.023 Tank eIoni - 4 470 146 -205 0 0 0 0.023 Tank NoProcess + 0 -184 313 -85.9 0.0769 0 0 0 Tank initStep + 1 -184 313 -85.9 0.0744 0.00249 0.00721 0.00721 Tank msc + 2 -184 313 -85.9 0.06 0.0143 0.0321 0.0393 Tank eIoni + 3 -184 313 -85.9 0.0447 0.0154 0.0264 0.0657 Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 51 +* G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 48 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 470 146 -205 3.12e-06 0 0 0 Tank initStep - 1 -5e+03 -1.33e+03 -3.98e+03 3.12e-06 0 6.81e+03 6.81e+03 expHall Transportation - + 0 -184 313 -85.9 3.42e-06 0 0 0 Tank initStep + 1 5e+03 542 2.49e+03 3.42e-06 0 5.79e+03 5.79e+03 expHall Transportation + 2 5e+03 542 2.49e+03 3.42e-06 0 0 5.79e+03 Tank Transportation + 3 1.4e+03 2.82e+03 5e+03 3.42e-06 0 4.94e+03 1.07e+04 expHall Transportation + 4 1.4e+03 2.82e+03 5e+03 3.42e-06 0 0 1.07e+04 Tank Transportation + 5 -438 4.57e+03 2.6e+03 3.42e-06 3.42e-06 3.5e+03 1.42e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 -184 313 -85.9 0.0447 0 0 0.0657 Tank initStep + 4 -184 313 -85.9 0.043 0.00162 0.00279 0.0685 Tank msc + 5 -184 313 -85.9 0.027 0.016 0.0201 0.0886 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 51, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -184 313 -85.9 3.69e-06 0 0 0 Tank initStep + 1 138 388 -457 3.69e-06 3.69e-06 497 497 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 50, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -184 313 -85.9 2.54e-06 0 0 0 Tank initStep + 1 -4.74e+03 865 -5e+03 2.54e-06 0 6.73e+03 6.73e+03 expHall Transportation + 2 -4.74e+03 865 -5e+03 2.54e-06 0 0 6.73e+03 Tank Transportation + 3 -5e+03 862 -4.91e+03 2.54e-06 0 273 7e+03 expHall Transportation + 4 -5e+03 862 -4.91e+03 2.54e-06 0 0 7e+03 Tank Transportation + 5 2.67e+03 -5e+03 3.32e+03 2.54e-06 0 1.27e+04 1.97e+04 expHall Transportation + 6 2.67e+03 -5e+03 3.32e+03 2.54e-06 0 0 1.97e+04 Tank Transportation + 7 4.31e+03 -3.57e+03 5e+03 2.54e-06 0 2.75e+03 2.24e+04 expHall Transportation + 8 4.31e+03 -3.57e+03 5e+03 2.54e-06 0 0 2.24e+04 Tank Transportation + 9 5e+03 -2.58e+03 4.19e+03 2.54e-06 0 1.45e+03 2.39e+04 expHall Transportation + 10 5e+03 -2.58e+03 4.19e+03 2.54e-06 0 0 2.39e+04 Tank Transportation + 11 -5e+03 4.19e+03 -3.72e+03 2.54e-06 0 1.44e+04 3.83e+04 expHall Transportation + 12 -5e+03 4.19e+03 -3.72e+03 2.54e-06 0 0 3.83e+04 Tank Transportation + 13 -3.94e+03 5e+03 -3.96e+03 2.54e-06 0 1.35e+03 3.97e+04 expHall Transportation + 14 -3.94e+03 5e+03 -3.96e+03 2.54e-06 0 0 3.97e+04 Tank Transportation + 15 -1.66e+03 447 -5e+03 2.54e-06 0 5.2e+03 4.49e+04 expHall Transportation + 16 -1.66e+03 447 -5e+03 2.54e-06 0 0 4.49e+04 Tank Transportation + 17 1.99e+03 -5e+03 -2.04e+03 2.54e-06 0 7.2e+03 5.21e+04 expHall Transportation + 18 1.99e+03 -5e+03 -2.04e+03 2.54e-06 0 0 5.21e+04 Tank Transportation + 19 5e+03 1.83e+03 2.8e+03 2.54e-06 0 8.89e+03 6.1e+04 expHall Transportation + 20 5e+03 1.83e+03 2.8e+03 2.54e-06 0 0 6.1e+04 Tank Transportation + 21 3.38e+03 5e+03 3.81e+03 2.54e-06 0 3.7e+03 6.47e+04 expHall Transportation + 22 3.38e+03 5e+03 3.81e+03 2.54e-06 0 0 6.47e+04 Tank Transportation + 23 2.7e+03 3.56e+03 5e+03 2.54e-06 0 1.99e+03 6.67e+04 expHall Transportation + 24 2.7e+03 3.56e+03 5e+03 2.54e-06 0 0 6.67e+04 Tank Transportation + 25 1.33e+03 -5e+03 -4.8e+03 2.54e-06 0 1.31e+04 7.97e+04 expHall Transportation + 26 1.33e+03 -5e+03 -4.8e+03 2.54e-06 0 0 7.97e+04 Tank Transportation + 27 1.19e+03 -4.7e+03 -5e+03 2.54e-06 0 388 8.01e+04 expHall Transportation + 28 1.19e+03 -4.7e+03 -5e+03 2.54e-06 0 0 8.01e+04 Tank Transportation + 29 -2.32e+03 5e+03 710 2.54e-06 0 1.18e+04 9.19e+04 expHall Transportation + 30 -6.31e+03 1e+04 7.29e+03 2.54e-06 0 9.18e+03 1.01e+05 world Transportation + 31 -1.03e+04 1.5e+04 1.39e+04 2.54e-06 0 9.18e+03 1.1e+05 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 -184 313 -85.9 0.027 0 0 0.0886 Tank initStep + 6 -184 313 -85.9 0.0254 0.00163 0.00115 0.0897 Tank msc + 7 -184 313 -85.9 0.00888 0.0165 0.0124 0.102 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -184 313 -85.9 2.45e-06 0 0 0 Tank initStep + 1 -5e+03 2.04e+03 -2.26e+03 2.45e-06 0 5.56e+03 5.56e+03 expHall Transportation + 2 -1e+04 5.13e+03 -7.34e+03 2.45e-06 0 7.77e+03 1.33e+04 world Transportation + 3 -1.5e+04 8.23e+03 -1.24e+04 2.45e-06 0 7.77e+03 2.11e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 7 -184 313 -85.9 0.00888 0 0 0.102 Tank initStep + 8 -184 313 -85.9 0.00875 0.000133 0.000161 0.102 Tank msc + 9 -184 313 -85.9 0 0.00875 0.00196 0.104 Tank eIoni + 10 -184 313 -85.9 0 0 0 0.104 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -185 318 -91.5 0.00069 0 0 0 Tank initStep + 1 -185 318 -91.5 0.00069 0 2.4e-06 2.4e-06 Tank msc + 2 -185 318 -91.5 0 0.00069 3e-05 3.24e-05 Tank eIoni + 3 -185 318 -91.5 0 0 0 3.24e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -198 343 -156 0.0306 0 0 0 Tank initStep + 1 -198 343 -156 0.0294 0.00125 0.00144 0.00144 Tank msc + 2 -198 343 -156 0.0138 0.0156 0.0145 0.016 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -198 343 -156 3.82e-06 0 0 0 Tank initStep + 1 3.45e+03 5e+03 -365 3.82e-06 0 5.92e+03 5.92e+03 expHall Transportation + 2 3.45e+03 5e+03 -365 3.82e-06 0 0 5.92e+03 Tank Transportation + 3 3.53e+03 4.88e+03 -334 3.82e-06 0 146 6.06e+03 Tank OpRayleigh + 4 5e+03 4.4e+03 123 3.82e-06 0 1.61e+03 7.68e+03 expHall Transportation + 5 1e+04 -388 377 3.82e-06 0 6.93e+03 1.46e+04 world Transportation + 6 1.5e+04 -5.17e+03 631 3.82e-06 0 6.93e+03 2.15e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 -198 343 -156 0.0138 0 0 0.016 Tank initStep + 3 -198 343 -156 0.0136 0.000173 0.00035 0.0163 Tank msc + 4 -198 343 -156 0 0.0136 0.00427 0.0206 Tank eIoni + 5 -198 343 -156 0 0 0 0.0206 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 55, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -198 343 -156 3.54e-06 0 0 0 Tank initStep + 1 551 -859 5e+03 3.54e-06 0 5.35e+03 5.35e+03 expHall Transportation + 2 551 -859 5e+03 3.54e-06 0 0 5.35e+03 Tank Transportation + 3 3.12e+03 -5e+03 -3.36e+03 3.54e-06 0 9.67e+03 1.5e+04 expHall Transportation + 4 3.12e+03 -5e+03 -3.36e+03 3.54e-06 0 0 1.5e+04 Tank Transportation + 5 3.22e+03 -4.15e+03 -5e+03 3.54e-06 0 1.85e+03 1.69e+04 expHall Transportation + 6 3.22e+03 -4.15e+03 -5e+03 3.54e-06 0 0 1.69e+04 Tank Transportation + 7 4.18e+03 5e+03 -987 3.54e-06 0 1e+04 2.69e+04 expHall Transportation + 8 3.37e+03 1e+04 4.05e+03 3.54e-06 0 7.14e+03 3.41e+04 world Transportation + 9 2.55e+03 1.5e+04 9.09e+03 3.54e-06 0 7.14e+03 4.12e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -198 343 -156 2.38e-06 0 0 0 Tank initStep + 1 -5e+03 806 151 2.38e-06 0 4.83e+03 4.83e+03 expHall Transportation + 2 -1e+04 1.77e+03 3.38e+03 2.38e-06 0 6.03e+03 1.09e+04 world Transportation + 3 -1.5e+04 2.72e+03 6.6e+03 2.38e-06 0 6.03e+03 1.69e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -161 317 -124 0.000482 0 0 0 Tank initStep + 1 -161 317 -124 0.000482 0 1.47e-06 1.47e-06 Tank msc + 2 -161 317 -124 0 0.000482 1.83e-05 1.98e-05 Tank eIoni + 3 -161 317 -124 0 0 0 1.98e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 43.2 182 -18.7 0.0255 0 0 0 Tank initStep + 1 43.2 182 -18.7 0.0249 0.000656 0.00104 0.00104 Tank msc + 2 43.2 182 -18.7 0.00516 0.0197 0.012 0.0131 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 56, Parent ID = 44 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 43.2 182 -18.7 2.95e-06 0 0 0 Tank initStep + 1 5e+03 -2.14e+03 3.31e+03 2.95e-06 0 6.4e+03 6.4e+03 expHall Transportation + 2 9.26e+03 -6.43e+03 1e+04 2.95e-06 0 9.02e+03 1.54e+04 world Transportation + 3 1.24e+04 -9.64e+03 1.5e+04 2.95e-06 0 6.74e+03 2.22e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 43.2 182 -18.7 0.00516 0 0 0.0131 Tank initStep + 3 43.2 182 -18.7 0.00501 0.000145 6.24e-05 0.0131 Tank msc + 4 43.2 182 -18.7 0 0.00501 0.000743 0.0139 Tank eIoni + 5 43.2 182 -18.7 0 0 0 0.0139 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 45.7 178 -28.4 0.000726 0 0 0 Tank initStep + 1 45.7 178 -28.4 0.000726 0 2.58e-06 2.58e-06 Tank msc + 2 45.7 178 -28.4 0 0.000726 3.23e-05 3.49e-05 Tank eIoni + 3 45.7 178 -28.4 0 0 0 3.49e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 53.3 170 -46.2 0.0792 0 0 0 Tank initStep + 1 53.3 170 -46.2 0.0769 0.00238 0.0076 0.0076 Tank msc + 2 53.3 170 -46.2 0.0653 0.0116 0.0331 0.0407 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 57, Parent ID = 42 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 53.3 170 -46.2 3.59e-06 0 0 0 Tank initStep + 1 -1.1e+03 -197 -5e+03 3.59e-06 0 5.1e+03 5.1e+03 expHall Transportation + 2 -2.24e+03 838 -1e+04 3.59e-06 0 5.23e+03 1.03e+04 world Transportation + 3 -3.39e+03 1.87e+03 -1.5e+04 3.59e-06 0 5.23e+03 1.56e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 53.3 170 -46.2 0.0653 0 0 0.0407 Tank initStep + 3 53.3 170 -46.2 0.0631 0.00218 0.00543 0.0462 Tank msc + 4 53.3 170 -46.2 0.0504 0.0127 0.0276 0.0737 Tank eIoni + 5 53.3 170 -46.2 0.0344 0.016 0.0228 0.0965 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 58, Parent ID = 42 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 53.3 170 -46.2 4.08e-06 0 0 0 Tank initStep + 1 -3.47e+03 -4.08e+03 -2.18e+03 4.08e-06 0 5.92e+03 5.92e+03 Tank OpRayleigh + 2 -1.56e+03 -1.7e+03 -5e+03 4.08e-06 0 4.16e+03 1.01e+04 expHall Transportation + 3 2.13e+03 1e+04 -6.09e+03 4.08e-06 0 1.23e+04 2.24e+04 world Transportation + 4 3.71e+03 1.5e+04 -6.56e+03 4.08e-06 0 5.26e+03 2.77e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 53.3 170 -46.2 0.0344 0 0 0.0965 Tank initStep + 6 53.3 170 -46.2 0.0327 0.00173 0.00177 0.0983 Tank msc + 7 53.3 170 -46.3 0.0129 0.0198 0.0161 0.114 Tank eIoni + 8 53.3 170 -46.3 0 0.0129 0.0039 0.118 Tank eIoni + 9 53.3 170 -46.3 0 0 0 0.118 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 60, Parent ID = 42 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 53.3 170 -46.3 3.42e-06 0 0 0 Tank initStep + 1 1.41e+03 5e+03 1.66e+03 3.42e-06 0 5.3e+03 5.3e+03 expHall Transportation + 2 4.97e+03 1e+04 4.66e+03 3.42e-06 0 6.82e+03 1.21e+04 world Transportation + 3 8.52e+03 1.5e+04 7.65e+03 3.42e-06 0 6.82e+03 1.89e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 59, Parent ID = 42 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 53.3 170 -46.3 2.67e-06 0 0 0 Tank initStep + 1 746 168 5e+03 2.67e-06 0 5.09e+03 5.09e+03 expHall Transportation + 2 1.9e+03 -474 1e+04 2.67e-06 0 5.17e+03 1.03e+04 world Transportation + 3 3.05e+03 -1.12e+03 1.5e+04 2.67e-06 0 5.17e+03 1.54e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.4 156 -38.9 0.0558 0 0 0 Tank initStep + 1 35.4 156 -38.9 0.0493 0.00645 0.00413 0.00413 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 61, Parent ID = 41 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.4 156 -38.9 3.7e-06 0 0 0 Tank initStep + 1 3.68e+03 1.83e+03 -3.25e+03 3.7e-06 3.7e-06 5.13e+03 5.13e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 35.4 156 -38.9 0.0493 0 0 0.00413 Tank initStep + 2 35.4 156 -38.9 0.0483 0.00102 0.00333 0.00746 Tank msc + 3 35.4 156 -38.9 0.0325 0.0158 0.022 0.0295 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 62, Parent ID = 41 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.4 156 -38.9 3.49e-06 0 0 0 Tank initStep + 1 -5e+03 -903 -3.4e+03 3.49e-06 0 6.15e+03 6.15e+03 expHall Transportation + 2 -5e+03 -903 -3.4e+03 3.49e-06 0 0 6.15e+03 Tank Transportation + 3 -4.62e+03 -1.28e+03 -5e+03 3.49e-06 0 1.69e+03 7.84e+03 expHall Transportation + 4 -4.62e+03 -1.28e+03 -5e+03 3.49e-06 0 0 7.84e+03 Tank Transportation + 5 5e+03 -1.52e+03 1.05e+03 3.49e-06 0 1.14e+04 1.92e+04 expHall Transportation + 6 1e+04 -2.58e+03 6.36e+03 3.49e-06 0 7.37e+03 2.66e+04 world Transportation + 7 1.5e+04 -3.64e+03 1.17e+04 3.49e-06 0 7.37e+03 3.39e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 35.4 156 -38.9 0.0325 0 0 0.0295 Tank initStep + 4 35.4 156 -38.9 0.0311 0.00146 0.00148 0.031 Tank eBrem + 5 35.4 156 -38.9 0.0168 0.0143 0.0153 0.0463 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 64, Parent ID = 41 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.4 156 -38.9 2.39e-06 0 0 0 Tank initStep + 1 -3.23e+03 548 513 2.39e-06 2.39e-06 3.33e+03 3.33e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 63, Parent ID = 41 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.4 156 -38.9 3.37e-06 0 0 0 Tank initStep + 1 -2.84e+03 1.05e+03 4.71e+03 3.37e-06 3.37e-06 5.62e+03 5.62e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 35.4 156 -38.9 0.0168 0 0 0.0463 Tank initStep + 6 35.4 156 -38.9 0.0162 0.000589 0.000494 0.0468 Tank msc + 7 35.4 156 -38.9 0 0.0162 0.0058 0.0526 Tank eIoni + 8 35.4 156 -38.9 0 0 0 0.0526 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.3 107 -51.7 0.0914 0 0 0 Tank initStep + 1 35.3 107 -51.7 0.0882 0.00321 0.00971 0.00971 Tank msc + 2 35.3 107 -51.7 0.0671 0.0211 0.0381 0.0478 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 66, Parent ID = 40 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.3 107 -51.7 3.35e-06 0 0 0 Tank initStep + 1 61.9 224 -53.8 3.35e-06 0 120 120 Tank OpRayleigh + 2 5e+03 -974 -4.75e+03 3.35e-06 0 6.92e+03 7.04e+03 expHall Transportation + 3 5e+03 -974 -4.75e+03 3.35e-06 0 0 7.04e+03 Tank Transportation + 4 4.79e+03 -843 -5e+03 3.35e-06 0 348 7.39e+03 expHall Transportation + 5 4.79e+03 -843 -5e+03 3.35e-06 0 0 7.39e+03 Tank Transportation + 6 2.89e+03 5e+03 2.55e+03 3.35e-06 0 9.73e+03 1.71e+04 expHall Transportation + 7 -1.35e+03 1e+04 7.72e+03 3.35e-06 0 8.35e+03 2.55e+04 world Transportation + 8 -5.59e+03 1.5e+04 1.29e+04 3.35e-06 0 8.35e+03 3.38e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 65, Parent ID = 40 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.3 107 -51.7 2.4e-06 0 0 0 Tank initStep + 1 5e+03 -3.05e+03 -667 2.4e-06 0 5.91e+03 5.91e+03 expHall Transportation + 2 1e+04 -7.95e+03 -3.18e+03 2.4e-06 0 7.44e+03 1.34e+04 world Transportation + 3 1.5e+04 -1.29e+04 -5.7e+03 2.4e-06 0 7.44e+03 2.08e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 35.3 107 -51.7 0.0671 0 0 0.0478 Tank initStep + 3 35.3 107 -51.7 0.0644 0.00268 0.0057 0.0535 Tank msc + 4 35.3 107 -51.7 0.0504 0.014 0.0281 0.0816 Tank eIoni + 5 35.3 107 -51.7 0.0323 0.0181 0.0228 0.104 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 67, Parent ID = 40 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 35.3 107 -51.7 3.72e-06 0 0 0 Tank initStep + 1 -3.16e+03 -1.2e+03 5e+03 3.72e-06 0 6.12e+03 6.12e+03 expHall Transportation + 2 -3.16e+03 -1.2e+03 5e+03 3.72e-06 0 0 6.12e+03 Tank Transportation + 3 -5e+03 -892 4.47e+03 3.72e-06 0 1.94e+03 8.06e+03 expHall Transportation + 4 -1e+04 -67.9 2.49e+03 3.72e-06 0 5.44e+03 1.35e+04 world Transportation + 5 -1.5e+04 756 506 3.72e-06 0 5.44e+03 1.89e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 35.3 107 -51.7 0.0323 0 0 0.104 Tank initStep + 6 35.3 107 -51.7 0.0283 0.00405 0.00158 0.106 Tank msc + 7 35.3 107 -51.7 0.0103 0.018 0.014 0.12 Tank eIoni + 8 35.3 107 -51.7 0 0.0103 0.00259 0.123 Tank eIoni + 9 35.3 107 -51.7 0 0 0 0.123 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.544 40 7.08 0.148 0 0 0 Tank initStep + 1 0.539 40.1 7.1 0.142 0.00635 0.0219 0.0219 Tank msc + 2 0.534 40.1 7.14 0.121 0.0207 0.0666 0.0885 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 68, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.535 40.1 7.14 2.68e-06 0 0 0 Tank initStep + 1 5e+03 -1.12e+03 236 2.68e-06 0 5.14e+03 5.14e+03 expHall Transportation + 2 5e+03 -1.12e+03 236 2.68e-06 0 0 5.14e+03 Tank Transportation + 3 4.09e+03 -1.5e+03 5e+03 2.68e-06 0 4.87e+03 1e+04 expHall Transportation + 4 3.4e+03 -543 1e+04 2.68e-06 0 5.14e+03 1.51e+04 world Transportation + 5 2.71e+03 419 1.5e+04 2.68e-06 0 5.14e+03 2.03e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 0.534 40.1 7.14 0.121 0 0 0.0885 Tank initStep + 3 0.533 40.1 7.16 0.118 0.00365 0.0157 0.104 Tank msc + 4 0.523 40.1 7.2 0.101 0.0165 0.0528 0.157 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 69, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.527 40.1 7.18 3.85e-06 0 0 0 Tank initStep + 1 61.8 2e+03 61.5 3.85e-06 3.85e-06 1.96e+03 1.96e+03 Bubble Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 0.523 40.1 7.2 0.101 0 0 0.157 Tank initStep + 5 0.521 40.1 7.2 0.0976 0.00353 0.0115 0.169 Tank msc + 6 0.517 40.2 7.2 0.076 0.0216 0.0426 0.211 Tank eIoni + 7 0.51 40.2 7.21 0.0661 0.00989 0.0328 0.244 Tank eIoni + 8 0.526 40.2 7.19 0.052 0.0141 0.0287 0.273 Tank eIoni + 9 0.532 40.2 7.19 0.0402 0.0118 0.0234 0.296 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 71, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.53 40.2 7.19 3.55e-06 0 0 0 Tank initStep + 1 -2.9e+03 463 -5e+03 3.55e-06 0 5.8e+03 5.8e+03 expHall Transportation + 2 -2.9e+03 463 -5e+03 3.55e-06 0 0 5.8e+03 Tank Transportation + 3 -2.84e+03 -2.51e+03 5e+03 3.55e-06 0 1.04e+04 1.62e+04 expHall Transportation + 4 -2.7e+03 -4.72e+03 1e+04 3.55e-06 0 5.47e+03 2.17e+04 world Transportation + 5 -2.55e+03 -6.92e+03 1.5e+04 3.55e-06 0 5.47e+03 2.72e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 70, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.527 40.2 7.19 2.21e-06 0 0 0 Tank initStep + 1 -2.26e+03 566 -205 2.21e-06 2.21e-06 2.33e+03 2.33e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 9 0.532 40.2 7.19 0.0402 0 0 0.296 Tank initStep + 10 0.532 40.2 7.19 0.0387 0.00147 0.00232 0.298 Tank msc + 11 0.528 40.2 7.2 0.0259 0.0128 0.0185 0.317 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 72, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.529 40.2 7.2 3.58e-06 0 0 0 Tank initStep + 1 5e+03 -2.66e+03 -1.15e+03 3.58e-06 0 5.8e+03 5.8e+03 expHall Transportation + 2 9.37e+03 -1e+04 -534 3.58e-06 0 8.57e+03 1.44e+04 world Transportation + 3 1.23e+04 -1.5e+04 -114 3.58e-06 0 5.83e+03 2.02e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 11 0.528 40.2 7.2 0.0259 0 0 0.317 Tank initStep + 12 0.529 40.2 7.2 0.0246 0.0013 0.00107 0.318 Tank msc + 13 0.533 40.2 7.2 0.00432 0.0203 0.0119 0.33 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 74, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.532 40.2 7.2 2.53e-06 0 0 0 Tank initStep + 1 5e+03 3.48e+03 -3.65e+03 2.53e-06 0 7.09e+03 7.09e+03 expHall Transportation + 2 5e+03 3.48e+03 -3.65e+03 2.53e-06 0 0 7.09e+03 Tank Transportation + 3 3.62e+03 5e+03 -4.35e+03 2.53e-06 0 2.17e+03 9.25e+03 expHall Transportation + 4 3.62e+03 5e+03 -4.35e+03 2.53e-06 0 0 9.25e+03 Tank Transportation + 5 -634 -1.22e+03 -5e+03 2.53e-06 0 7.57e+03 1.68e+04 expHall Transportation + 6 -634 -1.22e+03 -5e+03 2.53e-06 0 0 1.68e+04 Tank Transportation + 7 -3.2e+03 -5e+03 -1.14e+03 2.53e-06 0 5.98e+03 2.28e+04 expHall Transportation + 8 -3.2e+03 -5e+03 -1.14e+03 2.53e-06 0 0 2.28e+04 Tank Transportation + 9 -3.2e+03 -4.97e+03 -1.1e+03 2.53e-06 2.53e-06 45.5 2.28e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 73, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.532 40.2 7.2 2.14e-06 0 0 0 Tank initStep + 1 -3.5e+03 2.35e+03 2.84e+03 2.14e-06 2.14e-06 5.06e+03 5.06e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 38 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 13 0.533 40.2 7.2 0.00432 0 0 0.33 Tank initStep + 14 0.533 40.2 7.2 0.00426 6.38e-05 4.61e-05 0.33 Tank msc + 15 0.533 40.2 7.2 0 0.00426 0.000562 0.33 Tank eIoni + 16 0.533 40.2 7.2 0 0 0 0.33 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 37, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.387 0.268 0.548 0.511 0 0 0 Tank initStep + 1 -0.257 -164 -26.4 0.225 1.42e-05 166 166 Tank compt + 2 5.1 -161 -3.87 0.196 1.42e-05 23.2 189 Tank compt + 3 89 -96.9 40.1 0.179 1.42e-05 115 304 Tank compt + 4 252 -56.8 7.19 0.156 1.36e-05 171 475 Tank compt + 5 340 -133 -6.53 0.101 1.42e-05 117 592 Tank compt + 6 292 -71.1 -32.6 0.0723 1.42e-05 82.4 674 Tank compt + 7 295 -75.9 -32 0.0676 1.42e-05 5.6 680 Tank compt + 8 332 -80.6 -48.8 0.0538 1.36e-05 41 721 Tank compt + 9 292 -67.1 -20.1 0.0535 1.42e-05 50.8 772 Tank compt + 10 283 -59.9 -13.5 0 0.000538 13.3 785 Tank phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 283 -59.9 -13.5 0.0529 0 0 0 Tank initStep + 1 283 -59.9 -13.5 0.0516 0.00135 0.00377 0.00377 Tank msc + 2 283 -59.9 -13.5 0.0372 0.0143 0.0232 0.027 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 85, Parent ID = 84 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 283 -59.9 -13.5 2.42e-06 0 0 0 Tank initStep + 1 -4.4e+03 5e+03 88.8 2.42e-06 0 6.89e+03 6.89e+03 expHall Transportation + 2 -4.4e+03 5e+03 88.8 2.42e-06 0 0 6.89e+03 Tank Transportation + 3 -5e+03 4.55e+03 176 2.42e-06 0 756 7.65e+03 expHall Transportation + 4 -1e+04 274 -485 2.42e-06 0 6.61e+03 1.43e+04 world Transportation + 5 -1.5e+04 -4e+03 -1.15e+03 2.42e-06 0 6.61e+03 2.09e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 283 -59.9 -13.5 0.0372 0 0 0.027 Tank initStep + 3 283 -59.9 -13.5 0.0362 0.00102 0.00203 0.029 Tank msc + 4 283 -59.9 -13.5 0.018 0.0182 0.0175 0.0465 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 87, Parent ID = 84 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 283 -59.9 -13.5 3.8e-06 0 0 0 Tank initStep + 1 -347 180 3.43e+03 3.8e-06 3.8e-06 3.51e+03 3.51e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 86, Parent ID = 84 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 283 -59.9 -13.5 2.53e-06 0 0 0 Tank initStep + 1 -3.53e+03 -5e+03 4.42e+03 2.53e-06 0 7.66e+03 7.66e+03 expHall Transportation + 2 -3.53e+03 -5e+03 4.42e+03 2.53e-06 0 0 7.66e+03 Tank Transportation + 3 -3.92e+03 -4.22e+03 5e+03 2.53e-06 0 1.05e+03 8.71e+03 expHall Transportation + 4 -3.92e+03 -4.22e+03 5e+03 2.53e-06 0 0 8.71e+03 Tank Transportation + 5 -5e+03 -2.87e+03 4.5e+03 2.53e-06 0 1.79e+03 1.05e+04 expHall Transportation + 6 -5e+03 -2.87e+03 4.5e+03 2.53e-06 0 0 1.05e+04 Tank Transportation + 7 1.11e+03 5e+03 1.27e+03 2.53e-06 0 1.05e+04 2.1e+04 expHall Transportation + 8 8.59e+03 1e+04 78.6 2.53e-06 0 9.07e+03 3e+04 world Transportation + 9 1.5e+04 1.43e+04 -944 2.53e-06 0 7.78e+03 3.78e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 283 -59.9 -13.5 0.018 0 0 0.0465 Tank initStep + 5 283 -59.9 -13.5 0.0173 0.000718 0.000562 0.0471 Tank msc + 6 283 -59.9 -13.5 0 0.0173 0.00654 0.0536 Tank eIoni + 7 283 -59.9 -13.5 0 0 0 0.0536 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 88, Parent ID = 84 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 283 -59.9 -13.5 3.7e-06 0 0 0 Tank initStep + 1 -4.97e+03 5e+03 -4.87e+03 3.7e-06 0 8.76e+03 8.76e+03 expHall Transportation + 2 -4.97e+03 5e+03 -4.87e+03 3.7e-06 0 0 8.76e+03 Tank Transportation + 3 -5e+03 5e+03 -4.91e+03 3.7e-06 0 51.7 8.81e+03 expHall Transportation + 4 -5e+03 5e+03 -4.91e+03 3.7e-06 0 0 8.81e+03 Tank Transportation + 5 -4.95e+03 4.99e+03 -5e+03 3.7e-06 0 107 8.92e+03 expHall Transportation + 6 1.43e+03 2.55e+03 -1e+04 3.7e-06 0 8.47e+03 1.74e+04 world Transportation + 7 7.82e+03 119 -1.5e+04 3.7e-06 0 8.47e+03 2.59e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 292 -67.1 -20.1 0.000296 0 0 0 Tank initStep + 1 292 -67.1 -20.1 0.000296 0 8.29e-07 8.29e-07 Tank msc + 2 292 -67.1 -20.1 0 0.000296 1.04e-05 1.12e-05 Tank eIoni + 3 292 -67.1 -20.1 0 0 0 1.12e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 332 -80.6 -48.8 0.0138 0 0 0 Tank initStep + 1 332 -80.6 -48.8 0.0115 0.00238 0.000352 0.000352 Tank msc + 2 332 -80.6 -48.8 0 0.0115 0.00315 0.0035 Tank eIoni + 3 332 -80.6 -48.8 0 0 0 0.0035 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 295 -75.9 -32 0.00465 0 0 0 Tank initStep + 1 295 -75.9 -32 0.00447 0.000171 5.21e-05 5.21e-05 Tank msc + 2 295 -75.9 -32 0 0.00447 0.000611 0.000663 Tank eIoni + 3 295 -75.9 -32 0 0 0 0.000663 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 292 -71.1 -32.6 0.0283 0 0 0 Tank initStep + 1 292 -71.1 -32.6 0.0278 0.000506 0.00125 0.00125 Tank msc + 2 292 -71.1 -32.7 0.00862 0.0191 0.0137 0.015 Tank eIoni + 3 292 -71.1 -32.7 0 0.00862 0.00191 0.0169 Tank eIoni + 4 292 -71.1 -32.7 0 0 0 0.0169 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 340 -133 -6.53 0.0559 0 0 0 Tank initStep + 1 340 -133 -6.53 0.0532 0.00264 0.00414 0.00414 Tank msc + 2 340 -133 -6.53 0.0357 0.0175 0.0238 0.028 Tank eIoni + 3 340 -133 -6.52 0.00516 0.0306 0.0173 0.0453 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 89, Parent ID = 79 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 340 -133 -6.52 3.33e-06 0 0 0 Tank initStep + 1 2.29e+03 -5e+03 -1.57e+03 3.33e-06 0 5.47e+03 5.47e+03 expHall Transportation + 2 2.57e+03 -1e+04 -710 3.33e-06 0 5.08e+03 1.06e+04 world Transportation + 3 2.84e+03 -1.5e+04 153 3.33e-06 0 5.08e+03 1.56e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 340 -133 -6.52 0.00516 0 0 0.0453 Tank initStep + 4 340 -133 -6.52 0.00498 0.00018 6.24e-05 0.0454 Tank msc + 5 340 -133 -6.52 0 0.00498 0.000733 0.0461 Tank eIoni + 6 340 -133 -6.52 0 0 0 0.0461 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 252 -56.8 7.19 0.0227 0 0 0 Tank initStep + 1 252 -56.8 7.19 0.0222 0.00059 0.000848 0.000848 Tank msc + 2 252 -56.8 7.19 0 0.0222 0.0101 0.011 Tank eIoni + 3 252 -56.8 7.19 0 0 0 0.011 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 89 -96.9 40.1 0.0164 0 0 0 Tank initStep + 1 89 -96.9 40.1 0.0149 0.00148 0.000473 0.000473 Tank msc + 2 89 -96.9 40.1 0 0.0149 0.005 0.00547 Tank eIoni + 3 89 -96.9 40.1 0 0 0 0.00547 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 91, Parent ID = 77 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 89 -96.9 40.1 2.45e-06 0 0 0 Tank initStep + 1 3.1e+03 257 5e+03 2.45e-06 0 5.81e+03 5.81e+03 expHall Transportation + 2 3.1e+03 257 5e+03 2.45e-06 0 0 5.81e+03 Tank Transportation + 3 5e+03 736 2.45e+03 2.45e-06 0 3.21e+03 9.03e+03 expHall Transportation + 4 9.53e+03 4.04e+03 -1e+04 2.45e-06 0 1.37e+04 2.27e+04 world Transportation + 5 1.13e+04 5.37e+03 -1.5e+04 2.45e-06 0 5.48e+03 2.82e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 90, Parent ID = 77 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 89 -96.9 40.1 3.62e-06 0 0 0 Tank initStep + 1 -1.58e+03 5e+03 998 3.62e-06 0 5.45e+03 5.45e+03 expHall Transportation + 2 -5.39e+03 1e+04 2.23e+03 3.62e-06 0 6.41e+03 1.19e+04 world Transportation + 3 -9.21e+03 1.5e+04 3.47e+03 3.62e-06 0 6.41e+03 1.83e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 5.1 -161 -3.87 0.0294 0 0 0 Tank initStep + 1 5.1 -161 -3.87 0.0287 0.000696 0.00133 0.00133 Tank msc + 2 5.09 -161 -3.86 0.00893 0.0197 0.0142 0.0155 Tank eIoni + 3 5.09 -161 -3.86 0 0.00893 0.00203 0.0175 Tank eIoni + 4 5.09 -161 -3.86 0 0 0 0.0175 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.257 -164 -26.4 0.286 0 0 0 Tank initStep + 1 -0.264 -164 -26.4 0.266 0.0201 0.046 0.046 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 92, Parent ID = 75 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.262 -164 -26.4 2.38e-06 0 0 0 Tank initStep + 1 -2.77e+03 -5e+03 880 2.38e-06 0 5.64e+03 5.64e+03 expHall Transportation + 2 -9.08e+03 -1e+04 2.35e+03 2.38e-06 0 8.19e+03 1.38e+04 world Transportation + 3 -1.5e+04 -1.47e+04 3.73e+03 2.38e-06 0 7.68e+03 2.15e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 -0.264 -164 -26.4 0.266 0 0 0.046 Tank initStep + 2 -0.271 -164 -26.4 0.258 0.00784 0.0399 0.0859 Tank Cerenkov + 3 -0.274 -164 -26.4 0.249 0.0093 0.0377 0.124 Tank Cerenkov + 4 -0.271 -164 -26.4 0.245 0.00367 0.0247 0.148 Tank Cerenkov + 5 -0.27 -164 -26.4 0.242 0.00313 0.0105 0.159 Tank Cerenkov + 6 -0.28 -164 -26.5 0.216 0.0265 0.136 0.295 Tank eIoni + 7 -0.265 -164 -26.6 0.189 0.0265 0.116 0.411 Tank eIoni + 8 -0.286 -164 -26.6 0.168 0.0213 0.097 0.508 Tank eIoni + 9 -0.315 -164 -26.7 0.147 0.0211 0.0827 0.59 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 93, Parent ID = 75 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.305 -164 -26.6 2.47e-06 0 0 0 Tank initStep + 1 5e+03 879 2.98e+03 2.47e-06 0 5.92e+03 5.92e+03 expHall Transportation + 2 1e+04 4.05e+03 8.64e+03 2.47e-06 0 8.19e+03 1.41e+04 world Transportation + 3 1.5e+04 7.21e+03 1.43e+04 2.47e-06 0 8.19e+03 2.23e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 9 -0.315 -164 -26.7 0.147 0 0 0.59 Tank initStep + 10 -0.311 -164 -26.7 0.137 0.00955 0.0215 0.612 Tank msc + 11 -0.318 -164 -26.7 0.0635 0.0736 0.0637 0.675 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 97, Parent ID = 75 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.318 -164 -26.7 3.72e-06 0 0 0 Tank initStep + 1 320 -831 708 3.72e-06 3.72e-06 1.04e+03 1.04e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 96, Parent ID = 75 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.313 -164 -26.7 2.24e-06 0 0 0 Tank initStep + 1 5e+03 -4.96e+03 3.82e+03 2.24e-06 0 7.92e+03 7.92e+03 expHall Transportation + 2 5e+03 -4.96e+03 3.82e+03 2.24e-06 0 0 7.92e+03 Tank Transportation + 3 4.96e+03 -5e+03 3.83e+03 2.24e-06 0 58.9 7.98e+03 expHall Transportation + 4 4.96e+03 -5e+03 3.83e+03 2.24e-06 0 0 7.98e+03 Tank Transportation + 5 1.7e+03 -2.77e+03 5e+03 2.24e-06 0 4.12e+03 1.21e+04 expHall Transportation + 6 1.7e+03 -2.77e+03 5e+03 2.24e-06 0 0 1.21e+04 Tank Transportation + 7 2.41e+03 -2.15e+03 -5e+03 2.24e-06 0 1e+04 2.21e+04 expHall Transportation + 8 1.96e+03 -1.4e+03 -1e+04 2.24e-06 0 5.08e+03 2.72e+04 world Transportation + 9 1.51e+03 -650 -1.5e+04 2.24e-06 0 5.08e+03 3.23e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 95, Parent ID = 75 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.311 -164 -26.7 2.58e-06 0 0 0 Tank initStep + 1 1.81e+03 3.17e+03 -5e+03 2.58e-06 0 6.26e+03 6.26e+03 expHall Transportation + 2 1.81e+03 3.17e+03 -5e+03 2.58e-06 0 0 6.26e+03 Tank Transportation + 3 3.32e+03 3.32e+03 -3.36e+03 2.58e-06 2.58e-06 2.23e+03 8.49e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 94, Parent ID = 75 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.312 -164 -26.7 3.97e-06 0 0 0 Tank initStep + 1 353 -674 88.9 3.97e-06 3.97e-06 631 631 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 37 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 11 -0.318 -164 -26.7 0.0635 0 0 0.675 Tank initStep + 12 -0.32 -164 -26.7 0.0616 0.00197 0.00518 0.681 Tank msc + 13 -0.327 -164 -26.8 0.0491 0.0125 0.027 0.708 Tank eIoni + 14 -0.342 -164 -26.8 0.0342 0.0148 0.0223 0.73 Tank eIoni + 15 -0.352 -164 -26.8 0.0178 0.0165 0.0167 0.747 Tank eIoni + 16 -0.353 -164 -26.8 0 0.0178 0.00684 0.753 Tank eIoni + 17 -0.353 -164 -26.8 0 0 0 0.753 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 0.5 0 0 0 Tank initStep + 1 0.135 0.026 -0.00766 0.481 0.0186 0.139 0.139 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0307 0.00592 -0.00174 3.23e-06 0 0 0 Tank initStep + 1 3.05e+03 358 5e+03 3.23e-06 0 5.87e+03 5.87e+03 expHall Transportation + 2 6.35e+03 562 1e+04 3.23e-06 0 5.99e+03 1.19e+04 world Transportation + 3 9.65e+03 765 1.5e+04 3.23e-06 0 5.99e+03 1.79e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0708 0.0136 -0.00401 2.42e-06 0 0 0 Tank initStep + 1 -5e+03 -4.66e+03 112 2.42e-06 0 6.84e+03 6.84e+03 expHall Transportation + 2 -5e+03 -4.66e+03 112 2.42e-06 0 0 6.84e+03 Tank Transportation + 3 -4.81e+03 -5e+03 53.5 2.42e-06 0 388 7.23e+03 expHall Transportation + 4 -4.81e+03 -5e+03 53.5 2.42e-06 0 0 7.23e+03 Tank Transportation + 5 -4.33e+03 -4.64e+03 -303 2.42e-06 2.42e-06 697 7.92e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.111 0.0214 -0.00631 3.18e-06 0 0 0 Tank initStep + 1 -1.16e+03 -287 2.11e+03 3.18e-06 3.18e-06 2.42e+03 2.42e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.104 0.0201 -0.00592 3.76e-06 0 0 0 Tank initStep + 1 1.28e+03 -433 -336 3.76e-06 0 1.39e+03 1.39e+03 Tank OpRayleigh + 2 -4.93e+03 -5e+03 2.02e+03 3.76e-06 0 8.06e+03 9.45e+03 expHall Transportation + 3 -4.93e+03 -5e+03 2.02e+03 3.76e-06 0 0 9.45e+03 Tank Transportation + 4 -5e+03 -4.88e+03 2.01e+03 3.76e-06 0 140 9.59e+03 expHall Transportation + 5 -5e+03 -4.88e+03 2.01e+03 3.76e-06 0 0 9.59e+03 Tank Transportation + 6 -4.82e+03 -4.34e+03 2.01e+03 3.76e-06 3.76e-06 568 1.02e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 0.135 0.026 -0.00766 0.481 0 0 0.139 Tank initStep + 2 0.239 0.0738 -0.0655 0.457 0.0242 0.129 0.269 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.178 0.046 -0.0318 2.39e-06 0 0 0 Tank initStep + 1 -1.21e+03 -1.48e+03 2.55e+03 2.39e-06 2.39e-06 3.19e+03 3.19e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.193 0.0528 -0.04 3.46e-06 0 0 0 Tank initStep + 1 5e+03 935 4.41e+03 3.46e-06 0 6.73e+03 6.73e+03 expHall Transportation + 2 5e+03 935 4.41e+03 3.46e-06 0 0 6.73e+03 Tank Transportation + 3 4.63e+03 894 5e+03 3.46e-06 0 702 7.43e+03 expHall Transportation + 4 450 752 1e+04 3.46e-06 0 6.52e+03 1.39e+04 world Transportation + 5 -3.73e+03 610 1.5e+04 3.46e-06 0 6.52e+03 2.05e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.178 0.0458 -0.0316 2.15e-06 0 0 0 Tank initStep + 1 628 158 -931 2.15e-06 2.15e-06 1.13e+03 1.13e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.142 0.0291 -0.0114 2.3e-06 0 0 0 Tank initStep + 1 5e+03 -603 -1.89e+03 2.3e-06 0 5.38e+03 5.38e+03 expHall Transportation + 2 1e+04 1.26e+03 -4.99e+03 2.3e-06 0 6.17e+03 1.16e+04 world Transportation + 3 1.5e+04 3.13e+03 -8.09e+03 2.3e-06 0 6.17e+03 1.77e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.195 0.0535 -0.0409 3.35e-06 0 0 0 Tank initStep + 1 149 248 -163 3.35e-06 3.35e-06 332 332 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 0.239 0.0738 -0.0655 0.457 0 0 0.269 Tank initStep + 3 0.302 0.147 -0.127 0.437 0.0205 0.117 0.386 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.298 0.143 -0.123 3.47e-06 0 0 0 Tank initStep + 1 2.02e+03 -4.43e+03 -5e+03 3.47e-06 0 6.98e+03 6.98e+03 expHall Transportation + 2 2.02e+03 -4.43e+03 -5e+03 3.47e-06 0 0 6.98e+03 Tank Transportation + 3 1.71e+03 -5e+03 -4.22e+03 3.47e-06 0 1.01e+03 7.99e+03 expHall Transportation + 4 1.71e+03 -5e+03 -4.22e+03 3.47e-06 0 0 7.99e+03 Tank Transportation + 5 -2.75e+03 -798 3.23e+03 3.47e-06 0 9.65e+03 1.76e+04 Tank OpRayleigh + 6 5e+03 3e+03 -1.15e+03 3.47e-06 0 9.68e+03 2.73e+04 expHall Transportation + 7 8.93e+03 1e+04 -7.29e+03 3.47e-06 0 1.01e+04 3.74e+04 world Transportation + 8 1.17e+04 1.5e+04 -1.17e+04 3.47e-06 0 7.22e+03 4.47e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.253 0.0902 -0.0792 2.79e-06 0 0 0 Tank initStep + 1 990 -5e+03 -2.05e+03 2.79e-06 0 5.49e+03 5.49e+03 expHall Transportation + 2 990 -5e+03 -2.05e+03 2.79e-06 0 0 5.49e+03 Tank Transportation + 3 5e+03 -2.33e+03 -3e+03 2.79e-06 0 4.91e+03 1.04e+04 expHall Transportation + 4 5e+03 -2.33e+03 -3e+03 2.79e-06 0 0 1.04e+04 Tank Transportation + 5 1.18e+03 1.38e+03 -5e+03 2.79e-06 0 5.69e+03 1.61e+04 expHall Transportation + 6 1.18e+03 1.38e+03 -5e+03 2.79e-06 0 0 1.61e+04 Tank Transportation + 7 3.22e+03 5e+03 4.59e+03 2.79e-06 0 1.05e+04 2.65e+04 expHall Transportation + 8 3.22e+03 5e+03 4.59e+03 2.79e-06 0 0 2.65e+04 Tank Transportation + 9 3.39e+03 4.52e+03 5e+03 2.79e-06 0 647 2.72e+04 expHall Transportation + 10 3.39e+03 4.52e+03 5e+03 2.79e-06 0 0 2.72e+04 Tank Transportation + 11 5e+03 575 3.67e+03 2.79e-06 0 4.47e+03 3.17e+04 expHall Transportation + 12 5e+03 575 3.67e+03 2.79e-06 0 0 3.17e+04 Tank Transportation + 13 -815 -5e+03 858 2.79e-06 0 8.53e+03 4.02e+04 expHall Transportation + 14 -815 -5e+03 858 2.79e-06 0 0 4.02e+04 Tank Transportation + 15 -5e+03 -2.24e+03 -1.86e+03 2.79e-06 0 5.7e+03 4.59e+04 expHall Transportation + 16 -5e+03 -2.24e+03 -1.86e+03 2.79e-06 0 0 4.59e+04 Tank Transportation + 17 5e+03 2.49e+03 -3.28e+03 2.79e-06 0 1.12e+04 5.71e+04 expHall Transportation + 18 5e+03 2.49e+03 -3.28e+03 2.79e-06 0 0 5.71e+04 Tank Transportation + 19 2.88e+03 5e+03 -4.43e+03 2.79e-06 0 3.48e+03 6.05e+04 expHall Transportation + 20 2.88e+03 5e+03 -4.43e+03 2.79e-06 0 0 6.05e+04 Tank Transportation + 21 -5e+03 2.93e+03 -4.04e+03 2.79e-06 0 8.16e+03 6.87e+04 expHall Transportation + 22 -5e+03 2.93e+03 -4.04e+03 2.79e-06 0 0 6.87e+04 Tank Transportation + 23 -2.6e+03 980 -5e+03 2.79e-06 0 3.24e+03 7.19e+04 expHall Transportation + 24 -2.6e+03 980 -5e+03 2.79e-06 0 0 7.19e+04 Tank Transportation + 25 5e+03 -4.25e+03 -258 2.79e-06 0 1.04e+04 8.23e+04 expHall Transportation + 26 5e+03 -4.25e+03 -258 2.79e-06 0 0 8.23e+04 Tank Transportation + 27 3.91e+03 -5e+03 466 2.79e-06 0 1.51e+03 8.38e+04 expHall Transportation + 28 3.91e+03 -5e+03 466 2.79e-06 0 0 8.38e+04 Tank Transportation + 29 -199 -4.02e+03 5e+03 2.79e-06 0 6.2e+03 9e+04 expHall Transportation + 30 -199 -4.02e+03 5e+03 2.79e-06 0 0 9e+04 Tank Transportation + 31 -3.86e+03 -4.52e+03 -5e+03 2.79e-06 0 1.07e+04 1.01e+05 expHall Transportation + 32 -1e+04 -1.9e+03 -8.59e+03 2.79e-06 0 7.58e+03 1.08e+05 world Transportation + 33 -1.5e+04 241 -1.15e+04 2.79e-06 0 6.17e+03 1.14e+05 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.284 0.126 -0.109 2.75e-06 0 0 0 Tank initStep + 1 2.98e+03 -5e+03 -3.17e+03 2.75e-06 0 6.63e+03 6.63e+03 expHall Transportation + 2 2.98e+03 -5e+03 -3.17e+03 2.75e-06 0 0 6.63e+03 Tank Transportation + 3 4.47e+03 -3.88e+03 -4.01e+03 2.75e-06 2.75e-06 2.05e+03 8.68e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.282 0.125 -0.108 2.57e-06 0 0 0 Tank initStep + 1 4.14e+03 2.05e+03 -1.05e+03 2.57e-06 2.57e-06 4.74e+03 4.74e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.239 0.0739 -0.0655 3.24e-06 0 0 0 Tank initStep + 1 5e+03 1.39e+03 -2.86e+03 3.24e-06 0 5.92e+03 5.92e+03 expHall Transportation + 2 5e+03 1.39e+03 -2.86e+03 3.24e-06 0 0 5.92e+03 Tank Transportation + 3 3.27e+03 5e+03 -4.53e+03 3.24e-06 0 4.34e+03 1.03e+04 expHall Transportation + 4 -3.31e+03 1e+04 -8.3e+03 3.24e-06 0 9.09e+03 1.93e+04 world Transportation + 5 -9.9e+03 1.5e+04 -1.21e+04 3.24e-06 0 9.09e+03 2.84e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.269 0.109 -0.095 3.27e-06 0 0 0 Tank initStep + 1 5e+03 4.61e+03 -447 3.27e-06 0 6.82e+03 6.82e+03 expHall Transportation + 2 5e+03 4.61e+03 -447 3.27e-06 0 0 6.82e+03 Tank Transportation + 3 4.61e+03 5e+03 -509 3.27e-06 0 557 7.37e+03 expHall Transportation + 4 4.61e+03 5e+03 -509 3.27e-06 0 0 7.37e+03 Tank Transportation + 5 1.82e+03 912 -5e+03 3.27e-06 0 6.68e+03 1.41e+04 expHall Transportation + 6 1.82e+03 912 -5e+03 3.27e-06 0 0 1.41e+04 Tank Transportation + 7 -2.33e+03 5e+03 -3.72e+03 3.27e-06 0 5.97e+03 2e+04 expHall Transportation + 8 -2.33e+03 5e+03 -3.72e+03 3.27e-06 0 0 2e+04 Tank Transportation + 9 -4.4e+03 3.9e+03 -3.33e+03 3.27e-06 3.27e-06 2.38e+03 2.24e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.261 0.0993 -0.0867 3.24e-06 0 0 0 Tank initStep + 1 540 4.98e+03 -5e+03 3.24e-06 0 7.08e+03 7.08e+03 expHall Transportation + 2 540 4.98e+03 -5e+03 3.24e-06 0 0 7.08e+03 Tank Transportation + 3 537 5e+03 -4.99e+03 3.24e-06 0 18.5 7.1e+03 expHall Transportation + 4 -1.12e+03 1e+04 3.02e+03 3.24e-06 0 9.59e+03 1.67e+04 world Transportation + 5 -2.77e+03 1.5e+04 1.1e+04 3.24e-06 0 9.59e+03 2.63e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 0.302 0.147 -0.127 0.437 0 0 0.386 Tank initStep + 4 0.33 0.229 -0.187 0.405 0.0322 0.106 0.492 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.303 0.15 -0.129 3.58e-06 0 0 0 Tank initStep + 1 5e+03 4.04e+03 -3.26e+03 3.58e-06 0 7.21e+03 7.21e+03 expHall Transportation + 2 5e+03 4.04e+03 -3.26e+03 3.58e-06 0 0 7.21e+03 Tank Transportation + 3 4.22e+03 5e+03 -4.06e+03 3.58e-06 0 1.47e+03 8.68e+03 expHall Transportation + 4 4.22e+03 5e+03 -4.06e+03 3.58e-06 0 0 8.68e+03 Tank Transportation + 5 3.24e+03 3.58e+03 -5e+03 3.58e-06 0 1.97e+03 1.06e+04 expHall Transportation + 6 3.24e+03 3.58e+03 -5e+03 3.58e-06 0 0 1.06e+04 Tank Transportation + 7 -3.79e+03 -4.1e+03 -4.86e+03 3.58e-06 3.58e-06 1.04e+04 2.11e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.328 0.223 -0.182 3.26e-06 0 0 0 Tank initStep + 1 -376 5e+03 -1.47e+03 3.26e-06 0 5.22e+03 5.22e+03 expHall Transportation + 2 -376 5e+03 -1.47e+03 3.26e-06 0 0 5.22e+03 Tank Transportation + 3 -773 2.23e+03 -5e+03 3.26e-06 0 4.5e+03 9.73e+03 expHall Transportation + 4 -3.22e+03 -6.46e+03 -1e+04 3.26e-06 0 1.03e+04 2e+04 world Transportation + 5 -5.62e+03 -1.5e+04 -1.49e+04 3.26e-06 0 1.01e+04 3.02e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.302 0.149 -0.128 2.39e-06 0 0 0 Tank initStep + 1 2.78e+03 5e+03 -900 2.39e-06 0 5.79e+03 5.79e+03 expHall Transportation + 2 2.78e+03 5e+03 -900 2.39e-06 0 0 5.79e+03 Tank Transportation + 3 5e+03 2.84e+03 -719 2.39e-06 0 3.1e+03 8.89e+03 expHall Transportation + 4 5e+03 2.84e+03 -719 2.39e-06 0 0 8.89e+03 Tank Transportation + 5 -5e+03 1.4e+03 -852 2.39e-06 0 1.01e+04 1.9e+04 expHall Transportation + 6 -1e+04 623 -990 2.39e-06 0 5.06e+03 2.41e+04 world Transportation + 7 -1.5e+04 -155 -1.13e+03 2.39e-06 0 5.06e+03 2.91e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.303 0.152 -0.13 2.65e-06 0 0 0 Tank initStep + 1 2.5e+03 2.38e+03 -5e+03 2.65e-06 0 6.08e+03 6.08e+03 expHall Transportation + 2 2.5e+03 2.38e+03 -5e+03 2.65e-06 0 0 6.08e+03 Tank Transportation + 3 2.22e+03 5e+03 -4.18e+03 2.65e-06 0 2.76e+03 8.84e+03 expHall Transportation + 4 344 1e+04 -1.01e+03 2.65e-06 0 6.21e+03 1.5e+04 world Transportation + 5 -1.53e+03 1.5e+04 2.16e+03 2.65e-06 0 6.21e+03 2.13e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 0.33 0.229 -0.187 0.405 0 0 0.492 Tank initStep + 5 0.339 0.303 -0.239 0.389 0.0158 0.0912 0.583 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.334 0.261 -0.21 3.57e-06 0 0 0 Tank initStep + 1 -265 1.08e+03 -1.8e+03 3.57e-06 3.57e-06 2.12e+03 2.12e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 0.339 0.303 -0.239 0.389 0 0 0.583 Tank initStep + 6 0.341 0.359 -0.3 0.376 0.0123 0.0842 0.667 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.34 0.351 -0.291 3.49e-06 0 0 0 Tank initStep + 1 -5e+03 -4.66e+03 1.93e+03 3.49e-06 0 7.1e+03 7.1e+03 expHall Transportation + 2 -6.87e+03 -1e+04 3.16e+03 3.49e-06 0 5.79e+03 1.29e+04 world Transportation + 3 -8.62e+03 -1.5e+04 4.31e+03 3.49e-06 0 5.42e+03 1.83e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.339 0.305 -0.241 3.77e-06 0 0 0 Tank initStep + 1 -2.58e+03 5e+03 -3.59e+03 3.77e-06 0 6.67e+03 6.67e+03 expHall Transportation + 2 -2.58e+03 5e+03 -3.59e+03 3.77e-06 0 0 6.67e+03 Tank Transportation + 3 -3.05e+03 4.11e+03 -5e+03 3.77e-06 0 1.73e+03 8.4e+03 expHall Transportation + 4 -3.05e+03 4.11e+03 -5e+03 3.77e-06 0 0 8.4e+03 Tank Transportation + 5 -4.64e+03 1.38e+03 -821 3.77e-06 3.77e-06 5.24e+03 1.36e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 6 0.341 0.359 -0.3 0.376 0 0 0.667 Tank initStep + 7 0.335 0.386 -0.371 0.364 0.0121 0.0789 0.746 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.338 0.369 -0.325 2.69e-06 0 0 0 Tank initStep + 1 5e+03 -2.27e+03 2.3e+03 2.69e-06 0 5.95e+03 5.95e+03 expHall Transportation + 2 5e+03 -2.27e+03 2.3e+03 2.69e-06 0 0 5.95e+03 Tank Transportation + 3 -1.88e+03 -1.18e+03 5e+03 2.69e-06 0 7.47e+03 1.34e+04 expHall Transportation + 4 -1.88e+03 -1.18e+03 5e+03 2.69e-06 0 0 1.34e+04 Tank Transportation + 5 -5e+03 -687 4.08e+03 2.69e-06 0 3.29e+03 1.67e+04 expHall Transportation + 6 -5e+03 -687 4.08e+03 2.69e-06 0 0 1.67e+04 Tank Transportation + 7 -1.16e+03 1.96e+03 -675 2.69e-06 2.69e-06 6.66e+03 2.34e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 7 0.335 0.386 -0.371 0.364 0 0 0.746 Tank initStep + 8 0.319 0.389 -0.442 0.352 0.012 0.0739 0.82 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.324 0.388 -0.418 2.62e-06 0 0 0 Tank initStep + 1 -1.66e+03 -2.15e+03 -5e+03 2.62e-06 0 5.69e+03 5.69e+03 expHall Transportation + 2 -3.44e+03 -5.31e+03 -1e+04 2.62e-06 0 6.18e+03 1.19e+04 world Transportation + 3 -5.22e+03 -8.47e+03 -1.5e+04 2.62e-06 0 6.18e+03 1.8e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.322 0.389 -0.429 3.73e-06 0 0 0 Tank initStep + 1 -3.13e+03 -1.19e+03 -5e+03 3.73e-06 0 6.02e+03 6.02e+03 expHall Transportation + 2 -1e+04 -6.56e+03 -9.41e+03 3.73e-06 0 9.77e+03 1.58e+04 world Transportation + 3 -1.5e+04 -1.05e+04 -1.26e+04 3.73e-06 0 7.11e+03 2.29e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.327 0.387 -0.404 3.13e-06 0 0 0 Tank initStep + 1 -1.9e+03 2.57e+03 -5e+03 3.13e-06 0 5.93e+03 5.93e+03 expHall Transportation + 2 -1.9e+03 2.57e+03 -5e+03 3.13e-06 0 0 5.93e+03 Tank Transportation + 3 -2.38e+03 5e+03 -2.69e+03 3.13e-06 0 3.39e+03 9.33e+03 expHall Transportation + 4 -2.38e+03 5e+03 -2.69e+03 3.13e-06 0 0 9.33e+03 Tank Transportation + 5 -2.38e+03 2.42e+03 -956 3.13e-06 3.13e-06 3.1e+03 1.24e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 8 0.319 0.389 -0.442 0.352 0 0 0.82 Tank initStep + 9 0.275 0.386 -0.495 0.341 0.0117 0.0692 0.889 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.286 0.387 -0.482 4.02e-06 0 0 0 Tank initStep + 1 -3.18e+03 -2.76e+03 -5e+03 4.02e-06 0 6.54e+03 6.54e+03 expHall Transportation + 2 -8.42e+03 -1e+04 -8.8e+03 4.02e-06 0 9.71e+03 1.62e+04 world Transportation + 3 -1.2e+04 -1.5e+04 -1.14e+04 4.02e-06 0 6.71e+03 2.3e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 9 0.275 0.386 -0.495 0.341 0 0 0.889 Tank initStep + 10 0.221 0.363 -0.517 0.33 0.0102 0.0647 0.954 Tank Cerenkov + 11 0.172 0.339 -0.54 0.321 0.00955 0.0609 1.01 Tank Cerenkov + 12 0.121 0.332 -0.561 0.31 0.0106 0.0575 1.07 Tank Cerenkov + 13 0.0866 0.311 -0.594 0.3 0.0107 0.0537 1.13 Tank Cerenkov + 14 0.0499 0.322 -0.624 0.291 0.0084 0.0501 1.18 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0706 0.316 -0.607 3.56e-06 0 0 0 Tank initStep + 1 -588 -3.26e+03 1.69e+03 3.56e-06 3.56e-06 3.71e+03 3.71e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 14 0.0499 0.322 -0.624 0.291 0 0 1.18 Tank initStep + 15 0.0114 0.335 -0.648 0.278 0.0133 0.0473 1.22 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 33, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0263 0.33 -0.639 2.46e-06 0 0 0 Tank initStep + 1 5e+03 6.24 -774 2.46e-06 0 5.06e+03 5.06e+03 expHall Transportation + 2 1e+04 -28.4 -1.18e+03 2.46e-06 0 5.02e+03 1.01e+04 world Transportation + 3 1.5e+04 -63.1 -1.59e+03 2.46e-06 0 5.02e+03 1.51e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0395 0.326 -0.63 2.45e-06 0 0 0 Tank initStep + 1 4.18e+03 -5e+03 3.57e+03 2.45e-06 0 7.43e+03 7.43e+03 expHall Transportation + 2 4.18e+03 -5e+03 3.57e+03 2.45e-06 0 0 7.43e+03 Tank Transportation + 3 5e+03 -3e+03 4.23e+03 2.45e-06 0 2.26e+03 9.69e+03 expHall Transportation + 4 5e+03 -3e+03 4.23e+03 2.45e-06 0 0 9.69e+03 Tank Transportation + 5 2.41e+03 282 5e+03 2.45e-06 0 4.25e+03 1.39e+04 expHall Transportation + 6 2.41e+03 282 5e+03 2.45e-06 0 0 1.39e+04 Tank Transportation + 7 -834 5e+03 2.41e+03 2.45e-06 0 6.28e+03 2.02e+04 expHall Transportation + 8 -834 5e+03 2.41e+03 2.45e-06 0 0 2.02e+04 Tank Transportation + 9 -3.56e+03 2.83e+03 -7.89 2.45e-06 2.45e-06 4.24e+03 2.45e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0349 0.327 -0.633 2.45e-06 0 0 0 Tank initStep + 1 -2.52e+03 -5e+03 279 2.45e-06 0 5.6e+03 5.6e+03 expHall Transportation + 2 -9.97e+03 -1e+04 2.83e+03 2.45e-06 0 9.33e+03 1.49e+04 world Transportation + 3 -1.5e+04 -1.34e+04 4.55e+03 2.45e-06 0 6.29e+03 2.12e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 15 0.0114 0.335 -0.648 0.278 0 0 1.22 Tank initStep + 16 -0.0229 0.356 -0.663 0.272 0.00584 0.0432 1.27 Tank Cerenkov + 17 -0.0522 0.378 -0.68 0.266 0.00606 0.0414 1.31 Tank Cerenkov + 18 -0.0796 0.399 -0.696 0.259 0.0067 0.0396 1.35 Tank Cerenkov + 19 -0.106 0.423 -0.706 0.254 0.00535 0.0377 1.39 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 35, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0888 0.408 -0.699 2.5e-06 0 0 0 Tank initStep + 1 5e+03 -1.79e+03 3.83e+03 2.5e-06 0 6.55e+03 6.55e+03 expHall Transportation + 2 5e+03 -1.79e+03 3.83e+03 2.5e-06 0 0 6.55e+03 Tank Transportation + 3 3.36e+03 -939 5e+03 2.5e-06 0 2.18e+03 8.73e+03 expHall Transportation + 4 3.36e+03 -939 5e+03 2.5e-06 0 0 8.73e+03 Tank Transportation + 5 -5e+03 1.22e+03 -878 2.5e-06 0 1.04e+04 1.92e+04 expHall Transportation + 6 -1e+04 4.49e+03 -8.48e+03 2.5e-06 0 9.67e+03 2.89e+04 world Transportation + 7 -1.43e+04 7.29e+03 -1.5e+04 2.5e-06 0 8.29e+03 3.71e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 34, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.104 0.42 -0.705 3.54e-06 0 0 0 Tank initStep + 1 279 -1.04e+03 5e+03 3.54e-06 0 5.12e+03 5.12e+03 expHall Transportation + 2 2.58e+03 -3.57e+03 1e+04 3.54e-06 0 6.06e+03 1.12e+04 world Transportation + 3 4.88e+03 -6.09e+03 1.5e+04 3.54e-06 0 6.06e+03 1.72e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 19 -0.106 0.423 -0.706 0.254 0 0 1.39 Tank initStep + 20 -0.13 0.43 -0.732 0.245 0.00896 0.0362 1.42 Tank Cerenkov + 21 -0.135 0.432 -0.739 0.242 0.00294 0.00936 1.43 Tank Cerenkov + 22 -0.23 0.472 -0.796 0.216 0.0262 0.133 1.56 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 36, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.164 0.444 -0.756 3.88e-06 0 0 0 Tank initStep + 1 -3.91e+03 -1.1e+03 5e+03 3.88e-06 0 6.44e+03 6.44e+03 expHall Transportation + 2 -3.91e+03 -1.1e+03 5e+03 3.88e-06 0 0 6.44e+03 Tank Transportation + 3 -5e+03 -1.44e+03 4.92e+03 3.88e-06 0 1.14e+03 7.59e+03 expHall Transportation + 4 -1e+04 -5.47e+03 2.78e+03 3.88e-06 0 6.77e+03 1.44e+04 world Transportation + 5 -1.5e+04 -9.5e+03 643 3.88e-06 0 6.77e+03 2.11e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 22 -0.23 0.472 -0.796 0.216 0 0 1.56 Tank initStep + 23 -0.248 0.493 -0.823 0.209 0.0067 0.0388 1.6 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 37, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.236 0.478 -0.805 2.22e-06 0 0 0 Tank initStep + 1 2.98e+03 -2.19e+03 -1.73e+03 2.22e-06 2.22e-06 4.08e+03 4.08e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 23 -0.248 0.493 -0.823 0.209 0 0 1.6 Tank initStep + 24 -0.267 0.507 -0.851 0.202 0.00722 0.0369 1.64 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 38, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.248 0.493 -0.823 2.31e-06 0 0 0 Tank initStep + 1 3.45e+03 -202 3.5e+03 2.31e-06 2.31e-06 4.91e+03 4.91e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 24 -0.267 0.507 -0.851 0.202 0 0 1.64 Tank initStep + 25 -0.286 0.509 -0.879 0.195 0.00633 0.0348 1.67 Tank msc + 26 -0.339 0.499 -0.947 0.177 0.0188 0.0985 1.77 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 39, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.333 0.5 -0.939 3.22e-06 0 0 0 Tank initStep + 1 2.13e+03 -5e+03 3.25e+03 3.22e-06 0 6.33e+03 6.33e+03 expHall Transportation + 2 2.13e+03 -5e+03 3.25e+03 3.22e-06 0 0 6.33e+03 Tank Transportation + 3 2.32e+03 -3.85e+03 5e+03 3.22e-06 0 2.1e+03 8.44e+03 expHall Transportation + 4 3.71e+03 3.85e+03 1e+04 3.22e-06 0 9.29e+03 1.77e+04 world Transportation + 5 5.11e+03 1.16e+04 1.5e+04 3.22e-06 0 9.29e+03 2.7e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 26 -0.339 0.499 -0.947 0.177 0 0 1.77 Tank initStep + 27 -0.356 0.507 -0.968 0.168 0.00893 0.028 1.8 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 41, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.348 0.503 -0.958 3.54e-06 0 0 0 Tank initStep + 1 -2.63e+03 -3.85e+03 -5e+03 3.54e-06 0 6.84e+03 6.84e+03 expHall Transportation + 2 -2.63e+03 -3.85e+03 -5e+03 3.54e-06 0 0 6.84e+03 Tank Transportation + 3 -3.91e+03 -5e+03 -3.8e+03 3.54e-06 0 2.1e+03 8.93e+03 expHall Transportation + 4 -3.91e+03 -5e+03 -3.8e+03 3.54e-06 0 0 8.93e+03 Tank Transportation + 5 -5e+03 -3.54e+03 -3e+03 3.54e-06 0 1.99e+03 1.09e+04 expHall Transportation + 6 -5e+03 -3.54e+03 -3e+03 3.54e-06 0 0 1.09e+04 Tank Transportation + 7 -1.12e+03 316 2.88e+03 3.54e-06 3.54e-06 8.03e+03 1.9e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 40, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.346 0.503 -0.956 4.06e-06 0 0 0 Tank initStep + 1 -2.15e+03 255 1.02e+03 4.06e-06 4.06e-06 2.39e+03 2.39e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 27 -0.356 0.507 -0.968 0.168 0 0 1.8 Tank initStep + 28 -0.37 0.517 -0.987 0.163 0.0043 0.0258 1.83 Tank msc + 29 -0.412 0.536 -1.04 0.12 0.0432 0.0774 1.9 Tank eIoni + 30 -0.43 0.538 -1.08 0.0887 0.0316 0.0524 1.96 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 44, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.412 0.536 -1.04 3.66e-06 0 0 0 Tank initStep + 1 -750 -380 -752 3.66e-06 3.66e-06 1.13e+03 1.13e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 43, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.42 0.537 -1.05 2.99e-06 0 0 0 Tank initStep + 1 -3.48e+03 4e+03 5e+03 2.99e-06 0 7.29e+03 7.29e+03 expHall Transportation + 2 -3.48e+03 4e+03 5e+03 2.99e-06 0 0 7.29e+03 Tank Transportation + 3 -3.65e+03 5e+03 4.06e+03 2.99e-06 0 1.38e+03 8.67e+03 expHall Transportation + 4 -3.65e+03 5e+03 4.06e+03 2.99e-06 0 0 8.67e+03 Tank Transportation + 5 -4.49e+03 3.34e+03 -5e+03 2.99e-06 0 9.25e+03 1.79e+04 expHall Transportation + 6 -4.07e+03 912 -1e+04 2.99e-06 0 5.58e+03 2.35e+04 world Transportation + 7 -3.66e+03 -1.52e+03 -1.5e+04 2.99e-06 0 5.58e+03 2.91e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 42, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.424 0.538 -1.06 2.56e-06 0 0 0 Tank initStep + 1 2.31e+03 -68.1 -5e+03 2.56e-06 0 5.51e+03 5.51e+03 expHall Transportation + 2 6.84e+03 -1.55e+03 -1e+04 2.56e-06 0 6.91e+03 1.24e+04 world Transportation + 3 1.14e+04 -3.03e+03 -1.5e+04 2.56e-06 0 6.91e+03 1.93e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 30 -0.43 0.538 -1.08 0.0887 0 0 1.96 Tank initStep + 31 -0.431 0.538 -1.09 0.0868 0.00186 0.0087 1.96 Tank msc + 32 -0.435 0.538 -1.12 0.0752 0.0116 0.0362 2 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 46, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.433 0.538 -1.1 3.23e-06 0 0 0 Tank initStep + 1 1.43e+03 -5e+03 -660 3.23e-06 0 5.24e+03 5.24e+03 expHall Transportation + 2 2.91e+03 -1e+04 -1.18e+03 3.23e-06 0 5.24e+03 1.05e+04 world Transportation + 3 4.39e+03 -1.5e+04 -1.7e+03 3.23e-06 0 5.24e+03 1.57e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.434 0.538 -1.11 4.09e-06 0 0 0 Tank initStep + 1 358 212 -5e+03 4.09e-06 0 5.02e+03 5.02e+03 expHall Transportation + 2 -1.19e+03 -232 -1e+04 4.09e-06 0 5.25e+03 1.03e+04 world Transportation + 3 -2.74e+03 -676 -1.5e+04 4.09e-06 0 5.25e+03 1.55e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 32 -0.435 0.538 -1.12 0.0752 0 0 2 Tank initStep + 33 -0.437 0.535 -1.12 0.0698 0.00543 0.00654 2.01 Tank msc + 34 -0.45 0.521 -1.13 0.0558 0.014 0.0292 2.04 Tank eIoni + 35 -0.453 0.503 -1.13 0.0205 0.0353 0.024 2.06 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 47, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.451 0.514 -1.13 3.64e-06 0 0 0 Tank initStep + 1 4.25e+03 5e+03 -3.71e+03 3.64e-06 0 7.54e+03 7.54e+03 expHall Transportation + 2 4.25e+03 5e+03 -3.71e+03 3.64e-06 0 0 7.54e+03 Tank Transportation + 3 5e+03 4.46e+03 -3.85e+03 3.64e-06 0 932 8.47e+03 expHall Transportation + 4 5e+03 4.46e+03 -3.85e+03 3.64e-06 0 0 8.47e+03 Tank Transportation + 5 -4.24e+03 -2.01e+03 -5e+03 3.64e-06 0 1.13e+04 1.98e+04 expHall Transportation + 6 -4.24e+03 -2.01e+03 -5e+03 3.64e-06 0 0 1.98e+04 Tank Transportation + 7 -5e+03 -2.47e+03 -4.25e+03 3.64e-06 0 1.16e+03 2.1e+04 expHall Transportation + 8 -5e+03 -2.47e+03 -4.25e+03 3.64e-06 0 0 2.1e+04 Tank Transportation + 9 1.25e+03 -5e+03 -3.14e+03 3.64e-06 0 6.83e+03 2.78e+04 expHall Transportation + 10 1.25e+03 -5e+03 -3.14e+03 3.64e-06 0 0 2.78e+04 Tank Transportation + 11 5e+03 -1.65e+03 -1.17e+03 3.64e-06 0 5.4e+03 3.32e+04 expHall Transportation + 12 5e+03 -1.65e+03 -1.17e+03 3.64e-06 0 0 3.32e+04 Tank Transportation + 13 -1.04e+03 5e+03 2.76e+03 3.64e-06 0 9.81e+03 4.3e+04 expHall Transportation + 14 -1.04e+03 5e+03 2.76e+03 3.64e-06 0 0 4.3e+04 Tank Transportation + 15 -5e+03 2.38e+03 4.59e+03 3.64e-06 0 5.08e+03 4.81e+04 expHall Transportation + 16 -5e+03 2.38e+03 4.59e+03 3.64e-06 0 0 4.81e+04 Tank Transportation + 17 -3.45e+03 559 5e+03 3.64e-06 0 2.43e+03 5.05e+04 expHall Transportation + 18 -3.45e+03 559 5e+03 3.64e-06 0 0 5.05e+04 Tank Transportation + 19 -576 -3.12e+03 1.79e+03 3.64e-06 3.64e-06 5.67e+03 5.62e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 35 -0.453 0.503 -1.13 0.0205 0 0 2.06 Tank initStep + 36 -0.452 0.503 -1.13 0.0199 0.000542 0.000642 2.06 Tank msc + 37 -0.45 0.5 -1.13 0 0.0199 0.00764 2.07 Tank eIoni + 38 -0.45 0.5 -1.13 0 0 0 2.07 Tank annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 49, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.45 0.5 -1.13 0.511 0 0 0 Tank initStep + 1 -192 -25 112 0.5 1.42e-05 224 224 Tank compt + 2 -203 -27.4 123 0.396 2.92e-05 15.6 240 Tank compt + 3 -212 -64.1 300 0.178 2.92e-05 181 421 Tank compt + 4 -216 -54.3 296 0.162 1.42e-05 11.4 432 Tank compt + 5 -199 -11.9 291 0.134 1.42e-05 45.8 478 Tank compt + 6 -186 -12.1 292 0.127 2.92e-05 13 491 Tank compt + 7 -146 -16.7 264 0.126 2.92e-05 48.8 540 Tank compt + 8 -138 -18.4 258 0.106 2.92e-05 10.7 551 Tank compt + 9 -139 -18.3 256 0 0.000538 2.01 553 Tank phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -139 -18.3 256 0.106 0 0 0 Tank initStep + 1 -139 -18.3 256 0.102 0.00336 0.0125 0.0125 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 59, Parent ID = 58 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -139 -18.3 256 3.24e-06 0 0 0 Tank initStep + 1 4.17e+03 2.41e+03 5e+03 3.24e-06 0 6.85e+03 6.85e+03 expHall Transportation + 2 4.17e+03 2.41e+03 5e+03 3.24e-06 0 0 6.85e+03 Tank Transportation + 3 5e+03 3.35e+03 4e+03 3.24e-06 0 1.6e+03 8.45e+03 expHall Transportation + 4 5e+03 3.35e+03 4e+03 3.24e-06 0 0 8.45e+03 Tank Transportation + 5 4.02e+03 5e+03 2.76e+03 3.24e-06 0 2.29e+03 1.07e+04 expHall Transportation + 6 4.02e+03 5e+03 2.76e+03 3.24e-06 0 0 1.07e+04 Tank Transportation + 7 2.63e+03 2.82e+03 1.89e+03 3.24e-06 0 2.73e+03 1.35e+04 Tank OpRayleigh + 8 -5e+03 2.21e+03 2.72e+03 3.24e-06 0 7.7e+03 2.12e+04 expHall Transportation + 9 -1e+04 715 3.56e+03 3.24e-06 0 5.29e+03 2.65e+04 world Transportation + 10 -1.5e+04 -783 4.39e+03 3.24e-06 0 5.29e+03 3.17e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 -139 -18.3 256 0.102 0 0 0.0125 Tank initStep + 2 -139 -18.3 256 0.0965 0.00601 0.0118 0.0242 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 60, Parent ID = 58 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -139 -18.3 256 3.65e-06 0 0 0 Tank initStep + 1 -4.06e+03 5e+03 2.45e+03 3.65e-06 0 6.74e+03 6.74e+03 expHall Transportation + 2 -4.06e+03 5e+03 2.45e+03 3.65e-06 0 0 6.74e+03 Tank Transportation + 3 -5e+03 4.7e+03 3.09e+03 3.65e-06 0 1.17e+03 7.91e+03 expHall Transportation + 4 -1e+04 1.39e+03 7.48e+03 3.65e-06 0 7.44e+03 1.53e+04 world Transportation + 5 -1.5e+04 -1.93e+03 1.19e+04 3.65e-06 0 7.44e+03 2.28e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 -139 -18.3 256 0.0965 0 0 0.0242 Tank initStep + 3 -139 -18.3 256 0.0917 0.0048 0.0106 0.0349 Tank msc + 4 -139 -18.3 256 0.0747 0.0169 0.0397 0.0746 Tank eIoni + 5 -139 -18.3 256 0.0467 0.028 0.0322 0.107 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 61, Parent ID = 58 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -139 -18.3 256 2.3e-06 0 0 0 Tank initStep + 1 5e+03 724 1.52e+03 2.3e-06 0 5.34e+03 5.34e+03 expHall Transportation + 2 1e+04 3.23e+03 3.98e+03 2.3e-06 0 6.11e+03 1.15e+04 world Transportation + 3 1.5e+04 5.74e+03 6.45e+03 2.3e-06 0 6.11e+03 1.76e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 -139 -18.3 256 0.0467 0 0 0.107 Tank initStep + 6 -139 -18.3 256 0.0442 0.00255 0.00303 0.11 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 62, Parent ID = 58 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -139 -18.3 256 3.7e-06 0 0 0 Tank initStep + 1 -2.34e+03 -5e+03 -3.91e+03 3.7e-06 0 6.86e+03 6.86e+03 expHall Transportation + 2 -4.45e+03 -8.6e+03 -1e+04 3.7e-06 0 7.38e+03 1.42e+04 world Transportation + 3 -6.18e+03 -1.16e+04 -1.5e+04 3.7e-06 0 6.06e+03 2.03e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 6 -139 -18.3 256 0.0442 0 0 0.11 Tank initStep + 7 -139 -18.3 256 0.0426 0.00161 0.00274 0.113 Tank msc + 8 -139 -18.3 256 0.0305 0.0121 0.0199 0.133 Tank eIoni + 9 -139 -18.3 256 0.0178 0.0127 0.0151 0.148 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 63, Parent ID = 58 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -139 -18.3 256 3.7e-06 0 0 0 Tank initStep + 1 -901 1.75e+03 5e+03 3.7e-06 0 5.12e+03 5.12e+03 expHall Transportation + 2 -2.23e+03 3.4e+03 1e+04 3.7e-06 0 5.43e+03 1.06e+04 world Transportation + 3 -3.56e+03 5.05e+03 1.5e+04 3.7e-06 0 5.43e+03 1.6e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 9 -139 -18.3 256 0.0178 0 0 0.148 Tank initStep + 10 -139 -18.3 256 0.017 0.000715 0.000547 0.148 Tank msc + 11 -139 -18.2 256 0 0.017 0.00635 0.154 Tank eIoni + 12 -139 -18.2 256 0 0 0 0.154 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 64, Parent ID = 58 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -139 -18.3 256 3.36e-06 0 0 0 Tank initStep + 1 -2.84e+03 -5e+03 1.97e+03 3.36e-06 0 5.92e+03 5.92e+03 expHall Transportation + 2 -1e+04 -8.33e+03 5.03e+03 3.36e-06 0 8.47e+03 1.44e+04 world Transportation + 3 -1.5e+04 -1.07e+04 7.17e+03 3.36e-06 0 5.91e+03 2.03e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -138 -18.4 258 0.02 0 0 0 Tank initStep + 1 -138 -18.4 258 0.0168 0.00315 0.000673 0.000673 Tank msc + 2 -138 -18.4 258 0 0.0168 0.0062 0.00688 Tank eIoni + 3 -138 -18.4 258 0 0 0 0.00688 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -146 -16.7 264 0.000508 0 0 0 Tank initStep + 1 -146 -16.7 264 0.000438 6.99e-05 1.57e-06 1.57e-06 Tank msc + 2 -146 -16.7 264 0 0.000438 1.62e-05 1.78e-05 Tank eIoni + 3 -146 -16.7 264 0 0 0 1.78e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -186 -12.1 292 0.00679 0 0 0 Tank initStep + 1 -186 -12.1 292 0.00673 6.09e-05 0.000101 0.000101 Tank msc + 2 -186 -12.1 292 0 0.00673 0.00124 0.00134 Tank eIoni + 3 -186 -12.1 292 0 0 0 0.00134 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -199 -11.9 291 0.0278 0 0 0 Tank initStep + 1 -199 -11.9 291 0.0271 0.000679 0.00121 0.00121 Tank msc + 2 -199 -11.9 291 0.0125 0.0145 0.0134 0.0146 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 65, Parent ID = 54 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -199 -11.9 291 2.27e-06 0 0 0 Tank initStep + 1 -456 2e+03 -392 2.27e-06 2.27e-06 2.14e+03 2.14e+03 Bubble Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 -199 -11.9 291 0.0125 0 0 0.0146 Tank initStep + 3 -199 -11.9 291 0.0118 0.000768 0.000295 0.0149 Tank msc + 4 -199 -11.9 291 0 0.0118 0.0033 0.0182 Tank eIoni + 5 -199 -11.9 291 0 0 0 0.0182 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 66, Parent ID = 54 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -199 -11.9 291 3.64e-06 0 0 0 Tank initStep + 1 -535 1.6e+03 5e+03 3.64e-06 0 4.99e+03 4.99e+03 expHall Transportation + 2 -2.23e+03 3.14e+03 1e+04 3.64e-06 0 5.5e+03 1.05e+04 world Transportation + 3 -3.93e+03 4.68e+03 1.5e+04 3.64e-06 0 5.5e+03 1.6e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -216 -54.3 296 0.0168 0 0 0 Tank initStep + 1 -216 -54.3 296 0.0164 0.000398 0.000496 0.000496 Tank msc + 2 -216 -54.3 296 0 0.0164 0.00594 0.00643 Tank eIoni + 3 -216 -54.3 296 0 0 0 0.00643 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.1 300 0.217 0 0 0 Tank initStep + 1 -212 -64.1 300 0.211 0.00592 0.0405 0.0405 Tank msc + 2 -212 -64.1 300 0.171 0.0404 0.113 0.153 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 70, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.1 300 3.97e-06 0 0 0 Tank initStep + 1 5e+03 -1.91e+03 3.36e+03 3.97e-06 0 6.32e+03 6.32e+03 expHall Transportation + 2 5e+03 -1.91e+03 3.36e+03 3.97e-06 0 0 6.32e+03 Tank Transportation + 3 4.51e+03 -2.38e+03 5e+03 3.97e-06 0 1.77e+03 8.09e+03 expHall Transportation + 4 685 -3.09e+03 1e+04 3.97e-06 0 6.33e+03 1.44e+04 world Transportation + 5 -3.14e+03 -3.79e+03 1.5e+04 3.97e-06 0 6.33e+03 2.08e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 69, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.1 300 3.17e-06 0 0 0 Tank initStep + 1 40.5 -131 1.07e+03 3.17e-06 0 814 814 Tank OpRayleigh + 2 -5e+03 3.18e+03 -3.19e+03 3.17e-06 0 7.38e+03 8.2e+03 expHall Transportation + 3 -5e+03 3.18e+03 -3.19e+03 3.17e-06 0 0 8.2e+03 Tank Transportation + 4 -3.63e+03 3.99e+03 -5e+03 3.17e-06 0 2.41e+03 1.06e+04 expHall Transportation + 5 -3.63e+03 3.99e+03 -5e+03 3.17e-06 0 0 1.06e+04 Tank Transportation + 6 -2.92e+03 5e+03 -3.99e+03 3.17e-06 0 1.6e+03 1.22e+04 expHall Transportation + 7 -2.92e+03 5e+03 -3.99e+03 3.17e-06 0 0 1.22e+04 Tank Transportation + 8 -335 4.72e+03 -5e+03 3.17e-06 0 2.79e+03 1.5e+04 expHall Transportation + 9 -335 4.72e+03 -5e+03 3.17e-06 0 0 1.5e+04 Tank Transportation + 10 5e+03 827 4.59e+03 3.17e-06 0 1.16e+04 2.66e+04 expHall Transportation + 11 5e+03 827 4.59e+03 3.17e-06 0 0 2.66e+04 Tank Transportation + 12 4.73e+03 625 5e+03 3.17e-06 0 530 2.72e+04 expHall Transportation + 13 4.73e+03 625 5e+03 3.17e-06 0 0 2.72e+04 Tank Transportation + 14 1.65e+03 -628 -94.3 3.17e-06 3.17e-06 6.08e+03 3.33e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 68, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.1 300 3.27e-06 0 0 0 Tank initStep + 1 5e+03 -2.71e+03 3.05e+03 3.27e-06 0 6.46e+03 6.46e+03 expHall Transportation + 2 5e+03 -2.71e+03 3.05e+03 3.27e-06 0 0 6.46e+03 Tank Transportation + 3 4.62e+03 -2.79e+03 3.29e+03 3.27e-06 3.27e-06 454 6.92e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 67, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.1 300 3.11e-06 0 0 0 Tank initStep + 1 90.6 1.7e+03 -5e+03 3.11e-06 0 5.59e+03 5.59e+03 expHall Transportation + 2 1.75e+03 6.24e+03 -1e+04 3.11e-06 0 6.95e+03 1.25e+04 world Transportation + 3 3.41e+03 1.08e+04 -1.5e+04 3.11e-06 0 6.95e+03 1.95e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 -212 -64.1 300 0.171 0 0 0.153 Tank initStep + 3 -212 -64.1 300 0.165 0.00636 0.0276 0.181 Tank msc + 4 -212 -64.1 300 0.143 0.022 0.0807 0.262 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 71, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.1 300 2.24e-06 0 0 0 Tank initStep + 1 -211 -5e+03 758 2.24e-06 0 4.96e+03 4.96e+03 expHall Transportation + 2 -1.2e+03 -1e+04 2.07e+03 2.24e-06 0 5.26e+03 1.02e+04 world Transportation + 3 -2.19e+03 -1.5e+04 3.38e+03 2.24e-06 0 5.26e+03 1.55e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 -212 -64.1 300 0.143 0 0 0.262 Tank initStep + 5 -212 -64.1 300 0.139 0.00362 0.0205 0.282 Tank msc + 6 -212 -64.1 300 0.114 0.025 0.0649 0.347 Tank eIoni + 7 -212 -64.1 300 0.0951 0.0189 0.0509 0.398 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 72, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.1 300 2.53e-06 0 0 0 Tank initStep + 1 -1.64e+03 -5e+03 4.59e+03 2.53e-06 0 6.7e+03 6.7e+03 expHall Transportation + 2 -391 -7.86e+03 1e+04 2.53e-06 0 6.24e+03 1.29e+04 world Transportation + 3 763 -1.05e+04 1.5e+04 2.53e-06 0 5.77e+03 1.87e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 7 -212 -64.1 300 0.0951 0 0 0.398 Tank initStep + 8 -212 -64.1 300 0.0922 0.00293 0.0104 0.408 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 73, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.1 300 3.26e-06 0 0 0 Tank initStep + 1 5e+03 3.76e+03 4.94e+03 3.26e-06 0 7.96e+03 7.96e+03 expHall Transportation + 2 5e+03 3.76e+03 4.94e+03 3.26e-06 0 0 7.96e+03 Tank Transportation + 3 3.79e+03 5e+03 4.96e+03 3.26e-06 0 1.73e+03 9.69e+03 expHall Transportation + 4 3.79e+03 5e+03 4.96e+03 3.26e-06 0 0 9.69e+03 Tank Transportation + 5 -2.69e+03 -5e+03 4.72e+03 3.26e-06 0 1.19e+04 2.16e+04 expHall Transportation + 6 -1e+04 -9.53e+03 2.94e+03 3.26e-06 0 8.78e+03 3.04e+04 world Transportation + 7 -1.5e+04 -1.26e+04 1.73e+03 3.26e-06 0 6.01e+03 3.64e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 8 -212 -64.1 300 0.0922 0 0 0.408 Tank initStep + 9 -212 -64.1 300 0.089 0.00315 0.00984 0.418 Tank msc + 10 -212 -64.2 300 0.0761 0.0129 0.0385 0.457 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 74, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.2 300 2.62e-06 0 0 0 Tank initStep + 1 5e+03 -4.06e+03 -3.43e+03 2.62e-06 0 7.56e+03 7.56e+03 expHall Transportation + 2 5e+03 -4.06e+03 -3.43e+03 2.62e-06 0 0 7.56e+03 Tank Transportation + 3 3.32e+03 -4.66e+03 -5e+03 2.62e-06 0 2.38e+03 9.93e+03 expHall Transportation + 4 3.32e+03 -4.66e+03 -5e+03 2.62e-06 0 0 9.93e+03 Tank Transportation + 5 5e+03 -4.34e+03 -3.8e+03 2.62e-06 0 2.09e+03 1.2e+04 expHall Transportation + 6 5e+03 -4.34e+03 -3.8e+03 2.62e-06 0 0 1.2e+04 Tank Transportation + 7 1.03e+03 -2.66e+03 544 2.62e-06 2.62e-06 6.12e+03 1.81e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 10 -212 -64.2 300 0.0761 0 0 0.457 Tank initStep + 11 -212 -64.2 300 0.0727 0.00341 0.00709 0.464 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 75, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.2 300 3.09e-06 0 0 0 Tank initStep + 1 -901 -4.58e+03 1.97e+03 3.09e-06 3.09e-06 4.87e+03 4.87e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 11 -212 -64.2 300 0.0727 0 0 0.464 Tank initStep + 12 -212 -64.2 300 0.0705 0.00226 0.00655 0.47 Tank msc + 13 -212 -64.2 300 0.0582 0.0123 0.0305 0.501 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 76, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.2 300 3.57e-06 0 0 0 Tank initStep + 1 -572 -2.1e+03 -2.07e+03 3.57e-06 3.57e-06 3.15e+03 3.15e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 13 -212 -64.2 300 0.0582 0 0 0.501 Tank initStep + 14 -212 -64.2 300 0.0549 0.00326 0.00445 0.505 Tank msc + 15 -212 -64.2 300 0.04 0.015 0.0245 0.53 Tank eIoni + 16 -212 -64.2 300 0.0233 0.0166 0.019 0.549 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 78, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.2 300 2.3e-06 0 0 0 Tank initStep + 1 -3.74e+03 -5e+03 1.25e+03 2.3e-06 0 6.14e+03 6.14e+03 expHall Transportation + 2 -1e+04 -7.27e+03 2.49e+03 2.3e-06 0 6.77e+03 1.29e+04 world Transportation + 3 -1.5e+04 -9.09e+03 3.48e+03 2.3e-06 0 5.41e+03 1.83e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 77, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.2 300 3.54e-06 0 0 0 Tank initStep + 1 1.08e+03 -4.09e+03 2.74e+03 3.54e-06 3.54e-06 4.88e+03 4.88e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 16 -212 -64.2 300 0.0233 0 0 0.549 Tank initStep + 17 -212 -64.2 300 0.0221 0.00127 0.000888 0.55 Tank msc + 18 -212 -64.2 300 0.000685 0.0214 0.01 0.56 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 80, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.2 300 3.85e-06 0 0 0 Tank initStep + 1 -4.92e+03 4.51e+03 5e+03 3.85e-06 0 8.08e+03 8.08e+03 expHall Transportation + 2 -4.92e+03 4.51e+03 5e+03 3.85e-06 0 0 8.08e+03 Tank Transportation + 3 -5e+03 4.63e+03 4.83e+03 3.85e-06 0 222 8.3e+03 expHall Transportation + 4 -5e+03 4.63e+03 4.83e+03 3.85e-06 0 0 8.3e+03 Tank Transportation + 5 -4.86e+03 5e+03 4.46e+03 3.85e-06 0 544 8.84e+03 expHall Transportation + 6 -4.86e+03 5e+03 4.46e+03 3.85e-06 0 0 8.84e+03 Tank Transportation + 7 -1.48e+03 -326 -5e+03 3.85e-06 0 1.14e+04 2.02e+04 expHall Transportation + 8 4.55e+03 -1e+04 -8.86e+03 3.85e-06 0 1.2e+04 3.22e+04 world Transportation + 9 7.67e+03 -1.5e+04 -1.09e+04 3.85e-06 0 6.22e+03 3.85e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 79, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -212 -64.2 300 2.12e-06 0 0 0 Tank initStep + 1 3.79e+03 5e+03 -1.86e+03 2.12e-06 0 6.8e+03 6.8e+03 expHall Transportation + 2 1e+04 6.36e+03 -1.73e+03 2.12e-06 0 6.36e+03 1.32e+04 world Transportation + 3 1.5e+04 7.46e+03 -1.62e+03 2.12e-06 0 5.12e+03 1.83e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 18 -212 -64.2 300 0.000685 0 0 0.56 Tank initStep + 19 -212 -64.2 300 0.000663 2.16e-05 2.37e-06 0.56 Tank msc + 20 -212 -64.2 300 0 0.000663 2.83e-05 0.56 Tank eIoni + 21 -212 -64.2 300 0 0 0 0.56 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -203 -27.4 123 0.105 0 0 0 Tank initStep + 1 -203 -27.4 123 0.1 0.00452 0.0122 0.0122 Tank msc + 2 -203 -27.4 123 0.078 0.0221 0.0437 0.0559 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 81, Parent ID = 51 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -203 -27.4 123 3.4e-06 0 0 0 Tank initStep + 1 -5e+03 4.75e+03 -1.46e+03 3.4e-06 0 6.95e+03 6.95e+03 expHall Transportation + 2 -5e+03 4.75e+03 -1.46e+03 3.4e-06 0 0 6.95e+03 Tank Transportation + 3 -3.82e+03 5e+03 -899 3.4e-06 0 1.33e+03 8.28e+03 expHall Transportation + 4 -3.82e+03 5e+03 -899 3.4e-06 0 0 8.28e+03 Tank Transportation + 5 3.72e+03 -686 5e+03 3.4e-06 0 1.11e+04 1.94e+04 expHall Transportation + 6 3.72e+03 -686 5e+03 3.4e-06 0 0 1.94e+04 Tank Transportation + 7 436 5e+03 -1.44e+03 3.4e-06 0 9.2e+03 2.86e+04 expHall Transportation + 8 436 5e+03 -1.44e+03 3.4e-06 0 0 2.86e+04 Tank Transportation + 9 -126 4.74e+03 -1.99e+03 3.4e-06 3.4e-06 827 2.94e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 -203 -27.4 123 0.078 0 0 0.0559 Tank initStep + 3 -203 -27.4 123 0.0747 0.00325 0.00739 0.0633 Tank msc + 4 -203 -27.4 123 0.0614 0.0133 0.0322 0.0956 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 82, Parent ID = 51 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -203 -27.4 123 3.54e-06 0 0 0 Tank initStep + 1 1.96e+03 1.18e+03 -5e+03 3.54e-06 0 5.69e+03 5.69e+03 expHall Transportation + 2 1.96e+03 1.18e+03 -5e+03 3.54e-06 0 0 5.69e+03 Tank Transportation + 3 5e+03 2.87e+03 -2.38e+03 3.54e-06 0 4.35e+03 1e+04 expHall Transportation + 4 5e+03 2.87e+03 -2.38e+03 3.54e-06 0 0 1e+04 Tank Transportation + 5 1.65e+03 5e+03 839 3.54e-06 0 5.11e+03 1.52e+04 expHall Transportation + 6 1.65e+03 5e+03 839 3.54e-06 0 0 1.52e+04 Tank Transportation + 7 -3.09e+03 1.11e+03 5e+03 3.54e-06 0 7.41e+03 2.26e+04 expHall Transportation + 8 -3.09e+03 1.11e+03 5e+03 3.54e-06 0 0 2.26e+04 Tank Transportation + 9 -5e+03 -1.45e+03 4.54e+03 3.54e-06 0 3.23e+03 2.58e+04 expHall Transportation + 10 -5e+03 -1.45e+03 4.54e+03 3.54e-06 0 0 2.58e+04 Tank Transportation + 11 -2.99e+03 -5e+03 4.48e+03 3.54e-06 0 4.08e+03 2.99e+04 expHall Transportation + 12 7.97e+03 -1e+04 1.93e+03 3.54e-06 0 1.23e+04 4.22e+04 world Transportation + 13 1.5e+04 -1.32e+04 295 3.54e-06 0 7.9e+03 5.01e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 -203 -27.4 123 0.0614 0 0 0.0956 Tank initStep + 5 -203 -27.3 123 0.06 0.0014 0.00488 0.1 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 83, Parent ID = 51 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -203 -27.3 123 2.27e-06 0 0 0 Tank initStep + 1 -1.12e+03 -171 -5e+03 2.27e-06 0 5.21e+03 5.21e+03 expHall Transportation + 2 -2.87e+03 255 -1e+04 2.27e-06 0 5.31e+03 1.05e+04 world Transportation + 3 -4.62e+03 680 -1.5e+04 2.27e-06 0 5.31e+03 1.58e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 -203 -27.3 123 0.06 0 0 0.1 Tank initStep + 6 -203 -27.3 123 0.0572 0.00274 0.00469 0.105 Tank msc + 7 -203 -27.3 123 0.0442 0.013 0.0253 0.13 Tank eIoni + 8 -203 -27.3 123 0.029 0.0152 0.0205 0.151 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 84, Parent ID = 51 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -203 -27.3 123 3.47e-06 0 0 0 Tank initStep + 1 -3.04e+03 -813 5e+03 3.47e-06 0 5.7e+03 5.7e+03 expHall Transportation + 2 -6.24e+03 -3.82e+03 1e+04 3.47e-06 0 6.66e+03 1.24e+04 world Transportation + 3 -9.44e+03 -6.83e+03 1.5e+04 3.47e-06 0 6.66e+03 1.9e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 8 -203 -27.3 123 0.029 0 0 0.151 Tank initStep + 9 -203 -27.3 123 0.0273 0.00171 0.00131 0.152 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 85, Parent ID = 51 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -203 -27.3 123 3.69e-06 0 0 0 Tank initStep + 1 -1.17e+03 431 5e+03 3.69e-06 0 4.99e+03 4.99e+03 expHall Transportation + 2 -1.91e+03 3.2e+03 1e+04 3.69e-06 0 5.76e+03 1.08e+04 world Transportation + 3 -2.64e+03 5.96e+03 1.5e+04 3.69e-06 0 5.76e+03 1.65e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 9 -203 -27.3 123 0.0273 0 0 0.152 Tank initStep + 10 -203 -27.3 123 0.0258 0.00155 0.00117 0.153 Tank msc + 11 -203 -27.3 123 0.0128 0.013 0.0126 0.166 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 86, Parent ID = 51 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -203 -27.3 123 3.95e-06 0 0 0 Tank initStep + 1 -1.36e+03 5e+03 1.02e+03 3.95e-06 0 5.24e+03 5.24e+03 expHall Transportation + 2 -1.36e+03 5e+03 1.02e+03 3.95e-06 0 0 5.24e+03 Tank Transportation + 3 -3.87e+03 729 5e+03 3.95e-06 0 6.36e+03 1.16e+04 expHall Transportation + 4 -3.87e+03 729 5e+03 3.95e-06 0 0 1.16e+04 Tank Transportation + 5 -4.99e+03 -5e+03 -2.88e+03 3.95e-06 0 9.81e+03 2.14e+04 expHall Transportation + 6 -4.99e+03 -5e+03 -2.88e+03 3.95e-06 0 0 2.14e+04 Tank Transportation + 7 -4.95e+03 -3.24e+03 -5e+03 3.95e-06 0 2.76e+03 2.42e+04 expHall Transportation + 8 -4.95e+03 -3.24e+03 -5e+03 3.95e-06 0 0 2.42e+04 Tank Transportation + 9 -5e+03 -3.08e+03 -4.95e+03 3.95e-06 0 175 2.43e+04 expHall Transportation + 10 -5e+03 -3.08e+03 -4.95e+03 3.95e-06 0 0 2.43e+04 Tank Transportation + 11 -2.83e+03 5e+03 -797 3.95e-06 0 9.34e+03 3.37e+04 expHall Transportation + 12 491 1e+04 3.99e+03 3.95e-06 0 7.68e+03 4.13e+04 world Transportation + 13 3.82e+03 1.5e+04 8.78e+03 3.95e-06 0 7.68e+03 4.9e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 11 -203 -27.3 123 0.0128 0 0 0.166 Tank initStep + 12 -203 -27.3 123 0.0124 0.000386 0.000306 0.166 Tank msc + 13 -203 -27.3 123 0 0.0124 0.00362 0.17 Tank eIoni + 14 -203 -27.3 123 0 0 0 0.17 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -192 -25 112 0.0107 0 0 0 Tank initStep + 1 -192 -25 112 0.00761 0.00306 0.000222 0.000222 Tank msc + 2 -192 -25 112 0 0.00761 0.00153 0.00176 Tank eIoni + 3 -192 -25 112 0 0 0 0.00176 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 87, Parent ID = 50 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -192 -25 112 3.6e-06 0 0 0 Tank initStep + 1 671 4.69e+03 -2.67e+03 3.6e-06 3.6e-06 5.54e+03 5.54e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 48, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.45 0.5 -1.13 0.511 0 0 0 Tank initStep + 1 142 19.5 -85.5 0.236 2.92e-05 167 167 Tank compt + 2 135 15.2 -95.4 0.231 1.36e-05 13 180 Tank compt + 3 132 11.3 -99.6 0.139 1.42e-05 6.52 186 Tank compt + 4 169 256 -175 0.139 0 259 445 Tank Rayl + 5 185 424 -239 0.137 2.92e-05 180 625 Tank compt + 6 192 439 -242 0.124 0.000537 16.6 642 Tank compt + 7 195 450 -231 0.124 2.92e-05 16.2 658 Tank compt + 8 196 487 -187 0.0875 1.42e-05 56.9 715 Tank compt + 9 208 491 -218 0.0769 1.42e-05 33.2 748 Tank compt + 10 148 521 -262 0.0597 0.000537 81 829 Tank compt + 11 173 527 -226 0.0544 1.42e-05 44.6 874 Tank compt + 12 169 512 -220 0.0494 0.000537 15.8 889 Tank compt + 13 168 512 -222 0.0419 1.36e-05 2.54 892 Tank compt + 14 168 511 -216 0 0.000538 6.53 898 Tank phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 168 511 -216 0.0413 0 0 0 Tank initStep + 1 168 511 -216 0.0408 0.000514 0.00244 0.00244 Tank msc + 2 168 511 -216 0.0243 0.0165 0.0193 0.0217 Tank eIoni + 3 168 511 -216 0.0007 0.0236 0.0117 0.0334 Tank eIoni + 4 168 511 -216 0 0.0007 3.06e-05 0.0334 Tank eIoni + 5 168 511 -216 0 0 0 0.0334 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 168 512 -222 0.00757 0 0 0 Tank initStep + 1 168 512 -222 0.00632 0.00125 0.000122 0.000122 Tank msc + 2 168 512 -222 0 0.00632 0.00111 0.00123 Tank eIoni + 3 168 512 -222 0 0 0 0.00123 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 169 512 -220 0.00439 0 0 0 Tank initStep + 1 169 512 -220 0.00432 6.58e-05 4.72e-05 4.72e-05 Tank msc + 2 169 512 -220 0 0.00432 0.000575 0.000622 Tank eIoni + 3 169 512 -220 0 0 0 0.000622 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 173 527 -226 0.00529 0 0 0 Tank initStep + 1 173 527 -226 0.00511 0.000179 6.53e-05 6.53e-05 Tank msc + 2 173 527 -226 0 0.00511 0.000769 0.000834 Tank eIoni + 3 173 527 -226 0 0 0 0.000834 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 148 521 -262 0.0167 0 0 0 Tank initStep + 1 148 521 -262 0.016 0.000717 0.00049 0.00049 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 101, Parent ID = 96 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 148 521 -262 3.97e-06 0 0 0 Tank initStep + 1 2.72e+03 3.54e+03 -1.99e+03 3.97e-06 3.97e-06 4.33e+03 4.33e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 148 521 -262 0.016 0 0 0.00049 Tank initStep + 2 148 521 -262 0.0155 0.000473 0.000454 0.000944 Tank msc + 3 148 521 -262 0 0.0155 0.00538 0.00632 Tank eIoni + 4 148 521 -262 0 0 0 0.00632 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 208 491 -218 0.0106 0 0 0 Tank initStep + 1 208 491 -218 0.0105 7.89e-05 0.000219 0.000219 Tank msc + 2 208 491 -218 0 0.0105 0.0027 0.00292 Tank eIoni + 3 208 491 -218 0 0 0 0.00292 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 196 487 -187 0.0363 0 0 0 Tank initStep + 1 196 487 -187 0.035 0.00132 0.00194 0.00194 Tank msc + 2 196 487 -187 0.0176 0.0174 0.017 0.019 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 102, Parent ID = 94 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 196 487 -187 3.1e-06 0 0 0 Tank initStep + 1 -814 5e+03 2.84e+03 3.1e-06 0 5.53e+03 5.53e+03 expHall Transportation + 2 -814 5e+03 2.84e+03 3.1e-06 0 0 5.53e+03 Tank Transportation + 3 -800 1.79e+03 5e+03 3.1e-06 0 3.87e+03 9.4e+03 expHall Transportation + 4 -800 1.79e+03 5e+03 3.1e-06 0 0 9.4e+03 Tank Transportation + 5 1.65e+03 -5e+03 -2.16e+03 3.1e-06 0 1.02e+04 1.96e+04 expHall Transportation + 6 1.65e+03 -5e+03 -2.16e+03 3.1e-06 0 0 1.96e+04 Tank Transportation + 7 4.42e+03 3.88e+03 -5e+03 3.1e-06 0 9.73e+03 2.93e+04 expHall Transportation + 8 4.42e+03 3.88e+03 -5e+03 3.1e-06 0 0 2.93e+04 Tank Transportation + 9 4.82e+03 5e+03 -4.88e+03 3.1e-06 0 1.19e+03 3.05e+04 expHall Transportation + 10 1e+04 9.93e+03 -2.06e+03 3.1e-06 0 7.69e+03 3.82e+04 world Transportation + 11 1.5e+04 1.47e+04 654 3.1e-06 0 7.42e+03 4.56e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 196 487 -187 0.0176 0 0 0.019 Tank initStep + 3 196 487 -187 0.0167 0.000839 0.000536 0.0195 Tank msc + 4 196 487 -187 0 0.0167 0.00614 0.0256 Tank eIoni + 5 196 487 -187 0 0 0 0.0256 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 195 450 -231 0.000243 0 0 0 Tank initStep + 1 195 450 -231 0.000179 6.42e-05 6.81e-07 6.81e-07 Tank msc + 2 195 450 -231 0 0.000179 6.56e-06 7.25e-06 Tank eIoni + 3 195 450 -231 0 0 0 7.25e-06 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 192 439 -242 0.0124 0 0 0 Tank initStep + 1 192 439 -242 0.0119 0.000471 0.000289 0.000289 Tank msc + 2 192 439 -242 0 0.0119 0.00337 0.00366 Tank eIoni + 3 192 439 -242 0 0 0 0.00366 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 185 424 -239 0.00216 0 0 0 Tank initStep + 1 185 424 -239 0.00207 8.43e-05 1.43e-05 1.43e-05 Tank msc + 2 185 424 -239 0 0.00207 0.000168 0.000182 Tank eIoni + 3 185 424 -239 0 0 0 0.000182 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 132 11.3 -99.6 0.0916 0 0 0 Tank initStep + 1 132 11.3 -99.6 0.088 0.00363 0.00974 0.00974 Tank msc + 2 132 11.3 -99.6 0.064 0.024 0.038 0.0477 Tank eIoni + 3 132 11.3 -99.6 0.051 0.013 0.0279 0.0756 Tank eIoni + 4 132 11.3 -99.7 0.0394 0.0116 0.023 0.0986 Tank eIoni + 5 132 11.3 -99.7 0.0255 0.0138 0.0187 0.117 Tank eIoni + 6 132 11.3 -99.7 0.00788 0.0177 0.0125 0.13 Tank eIoni + 7 132 11.3 -99.7 0 0.00788 0.00163 0.131 Tank eIoni + 8 132 11.3 -99.7 0 0 0 0.131 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 135 15.2 -95.4 0.00505 0 0 0 Tank initStep + 1 135 15.2 -95.4 0.00491 0.00014 6.02e-05 6.02e-05 Tank msc + 2 135 15.2 -95.4 0 0.00491 0.000717 0.000777 Tank eIoni + 3 135 15.2 -95.4 0 0 0 0.000777 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.5 -85.5 0.275 0 0 0 Tank initStep + 1 142 19.5 -85.5 0.263 0.0125 0.0426 0.0426 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 103, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.5 -85.5 2.61e-06 0 0 0 Tank initStep + 1 5e+03 -934 -2.57e+03 2.61e-06 0 5.54e+03 5.54e+03 expHall Transportation + 2 5e+03 -934 -2.57e+03 2.61e-06 0 0 5.54e+03 Tank Transportation + 3 3.53e+03 -2.04e+03 -5e+03 2.61e-06 0 3.05e+03 8.59e+03 expHall Transportation + 4 -2.55e+03 -5.96e+03 -1e+04 2.61e-06 0 8.79e+03 1.74e+04 world Transportation + 5 -8.63e+03 -9.88e+03 -1.5e+04 2.61e-06 0 8.79e+03 2.62e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 142 19.5 -85.5 0.263 0 0 0.0426 Tank initStep + 2 142 19.5 -85.5 0.252 0.0106 0.039 0.0816 Tank Cerenkov + 3 142 19.5 -85.6 0.228 0.0238 0.036 0.118 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 105, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.5 -85.6 3.45e-06 0 0 0 Tank initStep + 1 -4.11e+03 -401 5e+03 3.45e-06 0 6.64e+03 6.64e+03 expHall Transportation + 2 -1e+04 -554 6.97e+03 3.45e-06 0 6.21e+03 1.29e+04 world Transportation + 3 -1.5e+04 -685 8.64e+03 3.45e-06 0 5.27e+03 1.81e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 104, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.5 -85.5 4.09e-06 0 0 0 Tank initStep + 1 1.8e+03 2.89e+03 -5e+03 4.09e-06 0 5.93e+03 5.93e+03 expHall Transportation + 2 1.8e+03 2.89e+03 -5e+03 4.09e-06 0 0 5.93e+03 Tank Transportation + 3 713 5e+03 -3.77e+03 4.09e-06 0 2.68e+03 8.6e+03 expHall Transportation + 4 713 5e+03 -3.77e+03 4.09e-06 0 0 8.6e+03 Tank Transportation + 5 -1.76e+03 -5e+03 3.63e+03 4.09e-06 0 1.27e+04 2.13e+04 expHall Transportation + 6 -1.76e+03 -5e+03 3.63e+03 4.09e-06 0 0 2.13e+04 Tank Transportation + 7 -2.1e+03 -4.51e+03 3.89e+03 4.09e-06 4.09e-06 654 2.19e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 142 19.5 -85.6 0.228 0 0 0.118 Tank initStep + 4 142 19.5 -85.6 0.217 0.0108 0.0438 0.161 Tank msc + 5 142 19.5 -85.7 0.193 0.0242 0.117 0.279 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 107, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.5 -85.7 3.61e-06 0 0 0 Tank initStep + 1 5e+03 987 -4.2e+03 3.61e-06 0 6.44e+03 6.44e+03 expHall Transportation + 2 5e+03 987 -4.2e+03 3.61e-06 0 0 6.44e+03 Tank Transportation + 3 4.67e+03 1.15e+03 -5e+03 3.61e-06 0 884 7.32e+03 expHall Transportation + 4 4.67e+03 1.15e+03 -5e+03 3.61e-06 0 0 7.32e+03 Tank Transportation + 5 3.27e+03 1.43e+03 -2.68e+03 3.61e-06 3.61e-06 2.72e+03 1e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 106, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.5 -85.6 2.95e-06 0 0 0 Tank initStep + 1 5e+03 1.81e+03 3.71e+03 2.95e-06 0 6.42e+03 6.42e+03 expHall Transportation + 2 5e+03 1.81e+03 3.71e+03 2.95e-06 0 0 6.42e+03 Tank Transportation + 3 3.17e+03 2.5e+03 5e+03 2.95e-06 0 2.34e+03 8.76e+03 expHall Transportation + 4 -7.63e+03 4.5e+03 1e+04 2.95e-06 0 1.21e+04 2.08e+04 world Transportation + 5 -1.5e+04 5.87e+03 1.34e+04 2.95e-06 0 8.23e+03 2.91e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 142 19.5 -85.7 0.193 0 0 0.279 Tank initStep + 6 142 19.5 -85.7 0.185 0.00772 0.0336 0.312 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 108, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.5 -85.7 2.28e-06 0 0 0 Tank initStep + 1 5e+03 -3.98e+03 3.88e+03 2.28e-06 0 7.44e+03 7.44e+03 expHall Transportation + 2 5e+03 -3.98e+03 3.88e+03 2.28e-06 0 0 7.44e+03 Tank Transportation + 3 4.37e+03 -5e+03 4.51e+03 2.28e-06 0 1.36e+03 8.79e+03 expHall Transportation + 4 1.18e+03 -6.17e+03 1e+04 2.28e-06 0 6.45e+03 1.52e+04 world Transportation + 5 -1.73e+03 -7.24e+03 1.5e+04 2.28e-06 0 5.88e+03 2.11e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 6 142 19.5 -85.7 0.185 0 0 0.312 Tank initStep + 7 142 19.5 -85.7 0.179 0.00611 0.0315 0.344 Tank msc + 8 142 19.5 -85.8 0.147 0.0326 0.0904 0.434 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 110, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.5 -85.8 3.89e-06 0 0 0 Tank initStep + 1 -4.56e+03 -1.82e+03 5e+03 3.89e-06 0 7.17e+03 7.17e+03 expHall Transportation + 2 -1e+04 -3.08e+03 6.67e+03 3.89e-06 0 5.82e+03 1.3e+04 world Transportation + 3 -1.5e+04 -4.23e+03 8.2e+03 3.89e-06 0 5.35e+03 1.83e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 109, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.5 -85.8 3.45e-06 0 0 0 Tank initStep + 1 1.23e+03 -624 -5e+03 3.45e-06 0 5.07e+03 5.07e+03 expHall Transportation + 2 1.23e+03 -624 -5e+03 3.45e-06 0 0 5.07e+03 Tank Transportation + 3 -1.56e+03 -5e+03 -3.27e+03 3.45e-06 0 5.47e+03 1.05e+04 expHall Transportation + 4 -1.56e+03 -5e+03 -3.27e+03 3.45e-06 0 0 1.05e+04 Tank Transportation + 5 -5e+03 -3.9e+03 -2.02e+03 3.45e-06 0 3.82e+03 1.44e+04 expHall Transportation + 6 -1e+04 1.32e+03 3.11e+03 3.45e-06 0 8.87e+03 2.32e+04 world Transportation + 7 -1.5e+04 6.54e+03 8.25e+03 3.45e-06 0 8.87e+03 3.21e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 8 142 19.5 -85.8 0.147 0 0 0.434 Tank initStep + 9 142 19.5 -85.8 0.139 0.00735 0.0215 0.456 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 112, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.5 -85.8 3.2e-06 0 0 0 Tank initStep + 1 -1.23e+03 5e+03 -1.6e+03 3.2e-06 0 5.38e+03 5.38e+03 expHall Transportation + 2 -6.96e+03 1e+04 -3.92e+03 3.2e-06 0 7.95e+03 1.33e+04 world Transportation + 3 -1.27e+04 1.5e+04 -6.24e+03 3.2e-06 0 7.95e+03 2.13e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 111, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.5 -85.8 3.63e-06 0 0 0 Tank initStep + 1 -1.1e+03 -5e+03 2e+03 3.63e-06 0 5.57e+03 5.57e+03 expHall Transportation + 2 -2.58e+03 -7.33e+03 1e+04 3.63e-06 0 8.47e+03 1.4e+04 world Transportation + 3 -3.5e+03 -8.78e+03 1.5e+04 3.63e-06 0 5.29e+03 1.93e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 9 142 19.5 -85.8 0.139 0 0 0.456 Tank initStep + 10 142 19.5 -85.8 0.133 0.00609 0.0198 0.475 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 113, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.5 -85.8 3.61e-06 0 0 0 Tank initStep + 1 -4.25e+03 -5e+03 4.2e+03 3.61e-06 0 7.92e+03 7.92e+03 expHall Transportation + 2 -4.25e+03 -5e+03 4.2e+03 3.61e-06 0 0 7.92e+03 Tank Transportation + 3 -4.8e+03 -4.48e+03 5e+03 3.61e-06 0 1.11e+03 9.03e+03 expHall Transportation + 4 -4.8e+03 -4.48e+03 5e+03 3.61e-06 0 0 9.03e+03 Tank Transportation + 5 -5e+03 -4.61e+03 4.57e+03 3.61e-06 0 491 9.52e+03 expHall Transportation + 6 -5e+03 -4.61e+03 4.57e+03 3.61e-06 0 0 9.52e+03 Tank Transportation + 7 -4.98e+03 -5e+03 3.83e+03 3.61e-06 0 832 1.04e+04 expHall Transportation + 8 -4.98e+03 -5e+03 3.83e+03 3.61e-06 0 0 1.04e+04 Tank Transportation + 9 -5e+03 -4.97e+03 3.8e+03 3.61e-06 0 43.3 1.04e+04 expHall Transportation + 10 -5e+03 -4.97e+03 3.8e+03 3.61e-06 0 0 1.04e+04 Tank Transportation + 11 -3.87e+03 -3.55e+03 4.38e+03 3.61e-06 0 1.91e+03 1.23e+04 Tank OpRayleigh + 12 -4.31e+03 -3.91e+03 5e+03 3.61e-06 0 843 1.31e+04 expHall Transportation + 13 -1e+04 -9.52e+03 6.92e+03 3.61e-06 0 8.22e+03 2.14e+04 world Transportation + 14 -1.5e+04 -1.45e+04 8.61e+03 3.61e-06 0 7.23e+03 2.86e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 10 142 19.5 -85.8 0.133 0 0 0.475 Tank initStep + 11 142 19.5 -85.9 0.127 0.00622 0.0183 0.494 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 114, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.5 -85.9 3.17e-06 0 0 0 Tank initStep + 1 -5e+03 3.59e+03 1.82e+03 3.17e-06 0 6.54e+03 6.54e+03 expHall Transportation + 2 -5e+03 3.59e+03 1.82e+03 3.17e-06 0 0 6.54e+03 Tank Transportation + 3 -3.84e+03 5e+03 3.45e+03 3.17e-06 0 2.45e+03 9e+03 expHall Transportation + 4 -3.84e+03 5e+03 3.45e+03 3.17e-06 0 0 9e+03 Tank Transportation + 5 -3e+03 4.49e+03 4.26e+03 3.17e-06 3.17e-06 1.27e+03 1.03e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 11 142 19.5 -85.9 0.127 0 0 0.494 Tank initStep + 12 142 19.5 -85.9 0.124 0.00318 0.0169 0.511 Tank msc + 13 142 19.6 -85.9 0.0802 0.0437 0.0562 0.567 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 116, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.6 -85.9 3.97e-06 0 0 0 Tank initStep + 1 -2.16e+03 -2.5e+03 -5e+03 3.97e-06 0 5.98e+03 5.98e+03 expHall Transportation + 2 -2.16e+03 -2.5e+03 -5e+03 3.97e-06 0 0 5.98e+03 Tank Transportation + 3 -2.75e+03 -5e+03 -3.54e+03 3.97e-06 0 2.96e+03 8.94e+03 expHall Transportation + 4 -1e+04 -8.11e+03 3.3e+03 3.97e-06 0 1.04e+04 1.94e+04 world Transportation + 5 -1.5e+04 -1.03e+04 8.01e+03 3.97e-06 0 7.2e+03 2.66e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 115, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.6 -85.9 3.36e-06 0 0 0 Tank initStep + 1 -2.32e+03 4.09e+03 170 3.36e-06 3.36e-06 4.76e+03 4.76e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 13 142 19.6 -85.9 0.0802 0 0 0.567 Tank initStep + 14 142 19.6 -85.9 0.0773 0.00296 0.00776 0.575 Tank msc + 15 142 19.6 -85.9 0.0629 0.0144 0.0333 0.608 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 117, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.6 -85.9 3.36e-06 0 0 0 Tank initStep + 1 3.36e+03 -285 -5e+03 3.36e-06 0 5.88e+03 5.88e+03 expHall Transportation + 2 3.36e+03 -285 -5e+03 3.36e-06 0 0 5.88e+03 Tank Transportation + 3 5e+03 -1.2e+03 -2.31e+03 3.36e-06 0 3.28e+03 9.16e+03 expHall Transportation + 4 5e+03 -1.2e+03 -2.31e+03 3.36e-06 0 0 9.16e+03 Tank Transportation + 5 -4.01e+03 -2.25e+03 5e+03 3.36e-06 0 1.17e+04 2.08e+04 expHall Transportation + 6 -4.01e+03 -2.25e+03 5e+03 3.36e-06 0 0 2.08e+04 Tank Transportation + 7 -5e+03 -1.83e+03 2.88e+03 3.36e-06 0 2.37e+03 2.32e+04 expHall Transportation + 8 -5e+03 -1.83e+03 2.88e+03 3.36e-06 0 0 2.32e+04 Tank Transportation + 9 610 1.1e+03 -5e+03 3.36e-06 0 1.01e+04 3.33e+04 expHall Transportation + 10 610 1.1e+03 -5e+03 3.36e-06 0 0 3.33e+04 Tank Transportation + 11 3.02e+03 700 -1.36e+03 3.36e-06 0 4.39e+03 3.77e+04 Tank OpRayleigh + 12 -4.46e+03 3.08e+03 -79.1 3.36e-06 3.36e-06 7.95e+03 4.56e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 15 142 19.6 -85.9 0.0629 0 0 0.608 Tank initStep + 16 142 19.6 -85.9 0.0613 0.00156 0.00509 0.613 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 118, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.6 -85.9 3.94e-06 0 0 0 Tank initStep + 1 5e+03 -1.67e+03 -2.28e+03 3.94e-06 0 5.59e+03 5.59e+03 expHall Transportation + 2 1e+04 -6.48e+03 -4.6e+03 3.94e-06 0 7.31e+03 1.29e+04 world Transportation + 3 1.5e+04 -1.13e+04 -6.91e+03 3.94e-06 0 7.31e+03 2.02e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 16 142 19.6 -85.9 0.0613 0 0 0.613 Tank initStep + 17 142 19.6 -86 0.0577 0.00361 0.00487 0.618 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 119, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.6 -86 2.56e-06 0 0 0 Tank initStep + 1 2.65e+03 -5e+03 1.82e+03 2.56e-06 0 5.93e+03 5.93e+03 expHall Transportation + 2 2.65e+03 -5e+03 1.82e+03 2.56e-06 0 0 5.93e+03 Tank Transportation + 3 5e+03 -1.61e+03 2.28e+03 2.56e-06 0 4.15e+03 1.01e+04 expHall Transportation + 4 5e+03 -1.61e+03 2.28e+03 2.56e-06 0 0 1.01e+04 Tank Transportation + 5 2.45e+03 5e+03 2.5e+03 2.56e-06 0 7.09e+03 1.72e+04 expHall Transportation + 6 39.7 1e+04 3.57e+03 2.56e-06 0 5.65e+03 2.28e+04 world Transportation + 7 -2.37e+03 1.5e+04 4.64e+03 2.56e-06 0 5.65e+03 2.85e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 17 142 19.6 -86 0.0577 0 0 0.618 Tank initStep + 18 142 19.6 -86 0.0557 0.00206 0.00439 0.622 Tank msc + 19 142 19.6 -86 0.0184 0.0373 0.0247 0.647 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 123, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.6 -86 2.24e-06 0 0 0 Tank initStep + 1 -506 -716 1.52e+03 2.24e-06 2.24e-06 1.88e+03 1.88e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 122, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.6 -86 2.7e-06 0 0 0 Tank initStep + 1 -2.07e+03 887 132 2.7e-06 2.7e-06 2.39e+03 2.39e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 121, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.6 -86 3.05e-06 0 0 0 Tank initStep + 1 1.25e+03 3.13e+03 5e+03 3.05e-06 0 6.06e+03 6.06e+03 expHall Transportation + 2 1.25e+03 3.13e+03 5e+03 3.05e-06 0 0 6.06e+03 Tank Transportation + 3 4.45e+03 5e+03 3.01e+03 3.05e-06 0 4.21e+03 1.03e+04 expHall Transportation + 4 4.45e+03 5e+03 3.01e+03 3.05e-06 0 0 1.03e+04 Tank Transportation + 5 5e+03 4.16e+03 2.79e+03 3.05e-06 0 1.03e+03 1.13e+04 expHall Transportation + 6 5e+03 4.16e+03 2.79e+03 3.05e-06 0 0 1.13e+04 Tank Transportation + 7 -2.68e+03 -5e+03 4.42e+03 3.05e-06 0 1.21e+04 2.34e+04 expHall Transportation + 8 -2.68e+03 -5e+03 4.42e+03 3.05e-06 0 0 2.34e+04 Tank Transportation + 9 -5e+03 -3.81e+03 4.76e+03 3.05e-06 0 2.63e+03 2.6e+04 expHall Transportation + 10 -5e+03 -3.81e+03 4.76e+03 3.05e-06 0 0 2.6e+04 Tank Transportation + 11 -4.75e+03 -2.92e+03 4.77e+03 3.05e-06 3.05e-06 920 2.69e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 120, Parent ID = 88 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 142 19.6 -86 3.68e-06 0 0 0 Tank initStep + 1 -2.21e+03 3.1e+03 5e+03 3.68e-06 0 6.39e+03 6.39e+03 expHall Transportation + 2 -2.21e+03 3.1e+03 5e+03 3.68e-06 0 0 6.39e+03 Tank Transportation + 3 -5e+03 4.84e+03 2.85e+03 3.68e-06 0 3.93e+03 1.03e+04 expHall Transportation + 4 -7.86e+03 1e+04 -5.21e+03 3.68e-06 0 9.98e+03 2.03e+04 world Transportation + 5 -1.06e+04 1.5e+04 -1.3e+04 3.68e-06 0 9.67e+03 3e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 19 142 19.6 -86 0.0184 0 0 0.647 Tank initStep + 20 142 19.6 -86 0.018 0.000384 0.00058 0.648 Tank msc + 21 142 19.6 -86 0 0.018 0.00698 0.655 Tank eIoni + 22 142 19.6 -86 0 0 0 0.655 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 0.5 0 0 0 Tank initStep + 1 0.138 0.00334 -0.00309 0.476 0.0238 0.139 0.139 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0812 0.00196 -0.00182 2.24e-06 0 0 0 Tank initStep + 1 -595 -114 -5e+03 2.24e-06 0 5.04e+03 5.04e+03 expHall Transportation + 2 -1.59e+03 -0.319 -1e+04 2.24e-06 0 5.1e+03 1.01e+04 world Transportation + 3 -2.58e+03 113 -1.5e+04 2.24e-06 0 5.1e+03 1.52e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0202 0.000488 -0.000451 3.2e-06 0 0 0 Tank initStep + 1 5e+03 2.78e+03 -2.3e+03 3.2e-06 0 6.17e+03 6.17e+03 expHall Transportation + 2 5e+03 2.78e+03 -2.3e+03 3.2e-06 0 0 6.17e+03 Tank Transportation + 3 3.54e+03 3.22e+03 -5e+03 3.2e-06 0 3.1e+03 9.27e+03 expHall Transportation + 4 3.54e+03 3.22e+03 -5e+03 3.2e-06 0 0 9.27e+03 Tank Transportation + 5 -3.16e+03 5e+03 -157 3.2e-06 0 8.45e+03 1.77e+04 expHall Transportation + 6 -3.16e+03 5e+03 -157 3.2e-06 0 0 1.77e+04 Tank Transportation + 7 -5e+03 4.34e+03 1.12e+03 3.2e-06 0 2.34e+03 2.01e+04 expHall Transportation + 8 -9.22e+03 -2.57e+03 1e+04 3.2e-06 0 1.2e+04 3.21e+04 world Transportation + 9 -1.16e+04 -6.46e+03 1.5e+04 3.2e-06 0 6.77e+03 3.88e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0955 0.00231 -0.00213 3.78e-06 0 0 0 Tank initStep + 1 1.02e+03 2.46e+03 52.7 3.78e-06 3.78e-06 2.66e+03 2.66e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.118 0.00285 -0.00264 4.1e-06 0 0 0 Tank initStep + 1 1.03e+03 -578 -149 4.1e-06 0 1.19e+03 1.19e+03 Tank OpRayleigh + 2 -233 2.27e+03 -5e+03 4.1e-06 0 5.77e+03 6.95e+03 expHall Transportation + 3 -4.3e+03 7.26e+03 -1e+04 4.1e-06 0 8.15e+03 1.51e+04 world Transportation + 4 -8.37e+03 1.22e+04 -1.5e+04 4.1e-06 0 8.15e+03 2.33e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.122 0.00296 -0.00274 3.8e-06 0 0 0 Tank initStep + 1 606 375 70.3 3.8e-06 3.8e-06 715 715 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0613 0.00148 -0.00137 3.53e-06 0 0 0 Tank initStep + 1 5e+03 -2.4e+03 1.43e+03 3.53e-06 0 5.73e+03 5.73e+03 expHall Transportation + 2 1e+04 -4.04e+03 2.76e+03 3.53e-06 0 5.43e+03 1.12e+04 world Transportation + 3 1.5e+04 -5.68e+03 4.08e+03 3.53e-06 0 5.43e+03 1.66e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.046 0.00111 -0.00103 2.39e-06 0 0 0 Tank initStep + 1 5e+03 766 2.71e+03 2.39e-06 0 5.74e+03 5.74e+03 expHall Transportation + 2 5e+03 766 2.71e+03 2.39e-06 0 0 5.74e+03 Tank Transportation + 3 -2.74e+03 3.45e+03 5e+03 2.39e-06 0 8.51e+03 1.42e+04 expHall Transportation + 4 -2.74e+03 3.45e+03 5e+03 2.39e-06 0 0 1.42e+04 Tank Transportation + 5 -5e+03 3.66e+03 2.5e+03 2.39e-06 0 3.38e+03 1.76e+04 expHall Transportation + 6 -5e+03 3.66e+03 2.5e+03 2.39e-06 0 0 1.76e+04 Tank Transportation + 7 -3.8e+03 3.06e+03 -723 2.39e-06 0 3.49e+03 2.11e+04 Tank OpRayleigh + 8 -4.45e+03 4.32e+03 -5e+03 2.39e-06 0 4.51e+03 2.56e+04 expHall Transportation + 9 -3e+03 5.59e+03 -1e+04 2.39e-06 0 5.36e+03 3.1e+04 world Transportation + 10 -1.56e+03 6.86e+03 -1.5e+04 2.39e-06 0 5.36e+03 3.63e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 0.138 0.00334 -0.00309 0.476 0 0 0.139 Tank initStep + 2 0.261 0.0162 0.0251 0.451 0.0255 0.127 0.266 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.184 0.00816 0.00743 3.38e-06 0 0 0 Tank initStep + 1 2.73e+03 920 2.49e+03 3.38e-06 3.38e-06 3.8e+03 3.8e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.142 0.00373 -0.00225 3.24e-06 0 0 0 Tank initStep + 1 982 529 784 3.24e-06 3.24e-06 1.36e+03 1.36e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.186 0.00833 0.0078 3.28e-06 0 0 0 Tank initStep + 1 5e+03 -2.16e+03 2.46e+03 3.28e-06 0 5.98e+03 5.98e+03 expHall Transportation + 2 5e+03 -2.16e+03 2.46e+03 3.28e-06 0 0 5.98e+03 Tank Transportation + 3 1.43e+03 -5e+03 3.96e+03 3.28e-06 0 4.8e+03 1.08e+04 expHall Transportation + 4 1.43e+03 -5e+03 3.96e+03 3.28e-06 0 0 1.08e+04 Tank Transportation + 5 -4.97e+03 5e+03 1.92e+03 3.28e-06 0 1.2e+04 2.28e+04 expHall Transportation + 6 -1e+04 8.08e+03 -1.84e+03 3.28e-06 0 7e+03 2.98e+04 world Transportation + 7 -1.5e+04 1.11e+04 -5.59e+03 3.28e-06 0 6.96e+03 3.68e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 0.261 0.0162 0.0251 0.451 0 0 0.266 Tank initStep + 3 0.37 0.0133 0.0522 0.426 0.0243 0.113 0.379 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.269 0.016 0.0271 3.26e-06 0 0 0 Tank initStep + 1 5e+03 678 -1.22e+03 3.26e-06 0 5.19e+03 5.19e+03 expHall Transportation + 2 1e+04 964 -4.53e+03 3.26e-06 0 6e+03 1.12e+04 world Transportation + 3 1.5e+04 1.25e+03 -7.84e+03 3.26e-06 0 6e+03 1.72e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.285 0.0156 0.0311 3.62e-06 0 0 0 Tank initStep + 1 5e+03 2.55e+03 614 3.62e-06 0 5.65e+03 5.65e+03 expHall Transportation + 2 1e+04 6.49e+03 2.42e+03 3.62e-06 0 6.61e+03 1.23e+04 world Transportation + 3 1.5e+04 1.04e+04 4.22e+03 3.62e-06 0 6.61e+03 1.89e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 0.37 0.0133 0.0522 0.426 0 0 0.379 Tank initStep + 4 0.467 -0.00504 0.0736 0.412 0.0149 0.101 0.481 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.462 -0.00401 0.0724 3.57e-06 0 0 0 Tank initStep + 1 2.31e+03 -1.91e+03 639 3.57e-06 0 3.06e+03 3.06e+03 Tank OpRayleigh + 2 2.01e+03 -1.7e+03 518 3.57e-06 3.57e-06 382 3.44e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.382 0.0111 0.0548 2.59e-06 0 0 0 Tank initStep + 1 5e+03 -1.77e+03 -1.32e+03 2.59e-06 0 5.46e+03 5.46e+03 expHall Transportation + 2 1e+04 -5.61e+03 -2.35e+03 2.59e-06 0 6.39e+03 1.19e+04 world Transportation + 3 1.5e+04 -9.46e+03 -3.38e+03 2.59e-06 0 6.39e+03 1.82e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 0.467 -0.00504 0.0736 0.412 0 0 0.481 Tank initStep + 5 0.508 -0.0799 0.0663 0.382 0.0297 0.0943 0.575 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.495 -0.0554 0.0687 2.16e-06 0 0 0 Tank initStep + 1 784 -5e+03 -2.05e+03 2.16e-06 0 5.46e+03 5.46e+03 expHall Transportation + 2 1.52e+03 -1e+04 -9.18e+03 2.16e-06 0 8.74e+03 1.42e+04 world Transportation + 3 2.12e+03 -1.41e+04 -1.5e+04 2.16e-06 0 7.14e+03 2.13e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.484 -0.0365 0.0705 3.19e-06 0 0 0 Tank initStep + 1 2.56e+03 -1.86e+03 -881 3.19e-06 3.19e-06 3.28e+03 3.28e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.481 -0.0305 0.0711 2.45e-06 0 0 0 Tank initStep + 1 5e+03 -4.15e+03 1.19e+03 2.45e-06 0 6.6e+03 6.6e+03 expHall Transportation + 2 7.82e+03 -1e+04 2.76e+03 2.45e-06 0 6.68e+03 1.33e+04 world Transportation + 3 1.02e+04 -1.5e+04 4.1e+03 2.45e-06 0 5.71e+03 1.9e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 0.508 -0.0799 0.0663 0.382 0 0 0.575 Tank initStep + 6 0.533 -0.156 0.0569 0.37 0.0123 0.0812 0.656 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.527 -0.138 0.0592 3.97e-06 0 0 0 Tank initStep + 1 -647 -5e+03 -1.3e+03 3.97e-06 0 5.21e+03 5.21e+03 expHall Transportation + 2 -4.07e+03 -1e+04 -5.33e+03 3.97e-06 0 7.28e+03 1.25e+04 world Transportation + 3 -7.5e+03 -1.5e+04 -9.35e+03 3.97e-06 0 7.28e+03 1.98e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.528 -0.14 0.0589 2.06e-06 0 0 0 Tank initStep + 1 0.341 -1.43e+03 -641 2.06e-06 2.06e-06 1.57e+03 1.57e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.518 -0.111 0.0624 3.85e-06 0 0 0 Tank initStep + 1 75.2 -736 216 3.85e-06 3.85e-06 771 771 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.527 -0.139 0.0591 3.48e-06 0 0 0 Tank initStep + 1 1.12e+03 -1.29e+03 123 3.48e-06 0 1.71e+03 1.71e+03 Tank OpRayleigh + 2 -1.25e+03 -1.14e+03 -5e+03 3.48e-06 0 5.65e+03 7.36e+03 expHall Transportation + 3 -7.16e+03 570 -1e+04 3.48e-06 0 7.93e+03 1.53e+04 world Transportation + 4 -1.31e+04 2.27e+03 -1.5e+04 3.48e-06 0 7.93e+03 2.32e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.532 -0.152 0.0574 3.81e-06 0 0 0 Tank initStep + 1 4.2e+03 -5e+03 733 3.81e-06 0 6.57e+03 6.57e+03 expHall Transportation + 2 4.2e+03 -5e+03 733 3.81e-06 0 0 6.57e+03 Tank Transportation + 3 5e+03 -4.18e+03 1.37e+03 3.81e-06 0 1.31e+03 7.88e+03 expHall Transportation + 4 5e+03 -4.18e+03 1.37e+03 3.81e-06 0 0 7.88e+03 Tank Transportation + 5 1.69e+03 807 -189 3.81e-06 3.81e-06 6.18e+03 1.41e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 6 0.533 -0.156 0.0569 0.37 0 0 0.656 Tank initStep + 7 0.575 -0.216 0.0504 0.359 0.0102 0.076 0.732 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.57 -0.208 0.0512 2.32e-06 0 0 0 Tank initStep + 1 5e+03 -3.7e+03 692 2.32e-06 0 6.26e+03 6.26e+03 expHall Transportation + 2 7.29e+03 -1e+04 982 2.32e-06 0 6.71e+03 1.3e+04 world Transportation + 3 9.11e+03 -1.5e+04 1.21e+03 2.32e-06 0 5.33e+03 1.83e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.545 -0.174 0.055 2.91e-06 0 0 0 Tank initStep + 1 2.54e+03 5e+03 -4.04e+03 2.91e-06 0 6.91e+03 6.91e+03 expHall Transportation + 2 5.13e+03 8.97e+03 -1e+04 2.91e-06 0 7.62e+03 1.45e+04 world Transportation + 3 7.31e+03 1.23e+04 -1.5e+04 2.91e-06 0 6.39e+03 2.09e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.565 -0.202 0.0519 3.33e-06 0 0 0 Tank initStep + 1 2.22e+03 -1.32e+03 -593 3.33e-06 0 2.65e+03 2.65e+03 Tank OpRayleigh + 2 451 -5e+03 -3.02e+03 3.33e-06 0 4.75e+03 7.4e+03 expHall Transportation + 3 -4.12e+03 -8.32e+03 -1e+04 3.33e-06 0 8.98e+03 1.64e+04 world Transportation + 4 -7.4e+03 -1.07e+04 -1.5e+04 3.33e-06 0 6.43e+03 2.28e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 7 0.575 -0.216 0.0504 0.359 0 0 0.732 Tank initStep + 8 0.627 -0.265 0.0481 0.341 0.0179 0.072 0.804 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.594 -0.233 0.0496 2.24e-06 0 0 0 Tank initStep + 1 2.28e+03 -5e+03 -758 2.24e-06 0 5.55e+03 5.55e+03 expHall Transportation + 2 2.28e+03 -5e+03 -758 2.24e-06 0 0 5.55e+03 Tank Transportation + 3 2.47e+03 5e+03 -691 2.24e-06 0 1e+04 1.55e+04 expHall Transportation + 4 3.53e+03 1e+04 -702 2.24e-06 0 5.11e+03 2.07e+04 world Transportation + 5 4.59e+03 1.5e+04 -714 2.24e-06 0 5.11e+03 2.58e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 8 0.627 -0.265 0.0481 0.341 0 0 0.804 Tank initStep + 9 0.668 -0.314 0.0384 0.334 0.00789 0.065 0.869 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.655 -0.299 0.0414 3.82e-06 0 0 0 Tank initStep + 1 1.47e+03 -5e+03 -900 3.82e-06 0 5.29e+03 5.29e+03 expHall Transportation + 2 5.65e+03 -1e+04 -3.31e+03 3.82e-06 0 6.95e+03 1.22e+04 world Transportation + 3 9.84e+03 -1.5e+04 -5.71e+03 3.82e-06 0 6.95e+03 1.92e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.633 -0.272 0.0466 4.12e-06 0 0 0 Tank initStep + 1 4.76e+03 -3.41e+03 -2.95e+03 4.12e-06 4.12e-06 6.56e+03 6.56e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 9 0.668 -0.314 0.0384 0.334 0 0 0.869 Tank initStep + 10 0.699 -0.366 0.0253 0.323 0.0104 0.062 0.931 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.696 -0.362 0.0262 3.21e-06 0 0 0 Tank initStep + 1 4.69e+03 -5e+03 658 3.21e-06 0 6.89e+03 6.89e+03 expHall Transportation + 2 4.69e+03 -5e+03 658 3.21e-06 0 0 6.89e+03 Tank Transportation + 3 5e+03 -2.9e+03 323 3.21e-06 0 2.15e+03 9.04e+03 expHall Transportation + 4 5e+03 -2.9e+03 323 3.21e-06 0 0 9.04e+03 Tank Transportation + 5 3.07e+03 5e+03 -985 3.21e-06 0 8.24e+03 1.73e+04 expHall Transportation + 6 1.5e+03 1e+04 -2.15e+03 3.21e-06 0 5.37e+03 2.26e+04 world Transportation + 7 -73.1 1.5e+04 -3.31e+03 3.21e-06 0 5.37e+03 2.8e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.677 -0.33 0.0345 2.59e-06 0 0 0 Tank initStep + 1 141 -784 -99.7 2.59e-06 2.59e-06 802 802 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 10 0.699 -0.366 0.0253 0.323 0 0 0.931 Tank initStep + 11 0.725 -0.417 0.0173 0.314 0.00927 0.0583 0.99 Tank Cerenkov + 12 0.755 -0.46 0.0106 0.305 0.00876 0.055 1.04 Tank Cerenkov + 13 0.791 -0.496 0.0101 0.295 0.0106 0.052 1.1 Tank Cerenkov + 14 0.824 -0.528 -0.000183 0.286 0.00862 0.0485 1.14 Tank Cerenkov + 15 0.848 -0.563 -0.0131 0.279 0.00686 0.0457 1.19 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.831 -0.538 -0.00382 2.47e-06 0 0 0 Tank initStep + 1 3.36e+03 5e+03 550 2.47e-06 0 6.05e+03 6.05e+03 expHall Transportation + 2 3.36e+03 5e+03 550 2.47e-06 0 0 6.05e+03 Tank Transportation + 3 4.96e+03 3.17e+03 723 2.47e-06 0 2.44e+03 8.48e+03 Tank OpRayleigh + 4 4.87e+03 -5e+03 -3.82e+03 2.47e-06 0 9.35e+03 1.78e+04 expHall Transportation + 5 4.87e+03 -5e+03 -3.82e+03 2.47e-06 0 0 1.78e+04 Tank Transportation + 6 4.31e+03 -3.75e+03 -5e+03 2.47e-06 0 1.81e+03 1.96e+04 expHall Transportation + 7 4.31e+03 -3.75e+03 -5e+03 2.47e-06 0 0 1.96e+04 Tank Transportation + 8 3.84e+03 521 965 2.47e-06 2.47e-06 7.35e+03 2.7e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 15 0.848 -0.563 -0.0131 0.279 0 0 1.19 Tank initStep + 16 0.864 -0.603 -0.0108 0.272 0.00662 0.0436 1.23 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 34, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.86 -0.595 -0.0112 2.68e-06 0 0 0 Tank initStep + 1 -2.58e+03 -5e+03 -592 2.68e-06 0 5.66e+03 5.66e+03 expHall Transportation + 2 -6.43e+03 -1e+04 152 2.68e-06 0 6.36e+03 1.2e+04 world Transportation + 3 -1.03e+04 -1.5e+04 896 2.68e-06 0 6.36e+03 1.84e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 33, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.85 -0.567 -0.0128 2.49e-06 0 0 0 Tank initStep + 1 743 -5e+03 178 2.49e-06 0 5.06e+03 5.06e+03 expHall Transportation + 2 1.21e+03 -1e+04 -633 2.49e-06 0 5.09e+03 1.01e+04 world Transportation + 3 1.67e+03 -1.5e+04 -1.44e+03 2.49e-06 0 5.09e+03 1.52e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 16 0.864 -0.603 -0.0108 0.272 0 0 1.23 Tank initStep + 17 0.868 -0.643 -0.00675 0.264 0.00838 0.0416 1.28 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 35, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.864 -0.608 -0.0103 2.4e-06 0 0 0 Tank initStep + 1 -5e+03 -978 3.7e+03 2.4e-06 0 6.3e+03 6.3e+03 expHall Transportation + 2 -5e+03 -978 3.7e+03 2.4e-06 0 0 6.3e+03 Tank Transportation + 3 -4.24e+03 -538 5e+03 2.4e-06 0 1.57e+03 7.87e+03 expHall Transportation + 4 -4.24e+03 -538 5e+03 2.4e-06 0 0 7.87e+03 Tank Transportation + 5 2.43e+03 2.54e+03 -5e+03 2.4e-06 0 1.24e+04 2.03e+04 expHall Transportation + 6 2.43e+03 2.54e+03 -5e+03 2.4e-06 0 0 2.03e+04 Tank Transportation + 7 3.05e+03 2.96e+03 -4.77e+03 2.4e-06 2.4e-06 783 2.11e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 17 0.868 -0.643 -0.00675 0.264 0 0 1.28 Tank initStep + 18 0.872 -0.682 -0.00623 0.257 0.0073 0.0391 1.31 Tank Cerenkov + 19 0.879 -0.717 -0.0039 0.252 0.00463 0.037 1.35 Tank Cerenkov + 20 0.885 -0.751 -0.00601 0.245 0.00765 0.0357 1.39 Tank Cerenkov + 21 0.886 -0.759 -0.00637 0.242 0.00212 0.0078 1.4 Tank Cerenkov + 22 0.889 -0.877 -0.00679 0.208 0.0339 0.133 1.53 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 38, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.888 -0.833 -0.00663 3.25e-06 0 0 0 Tank initStep + 1 -3.11e+03 -1.42e+03 -5e+03 3.25e-06 0 6.06e+03 6.06e+03 expHall Transportation + 2 -3.11e+03 -1.42e+03 -5e+03 3.25e-06 0 0 6.06e+03 Tank Transportation + 3 -5e+03 -2.26e+03 -4.4e+03 3.25e-06 0 2.16e+03 8.21e+03 expHall Transportation + 4 -5e+03 -2.26e+03 -4.4e+03 3.25e-06 0 0 8.21e+03 Tank Transportation + 5 -2.29e+03 -5e+03 -3.27e+03 3.25e-06 0 4.01e+03 1.22e+04 expHall Transportation + 6 -2.29e+03 -5e+03 -3.27e+03 3.25e-06 0 0 1.22e+04 Tank Transportation + 7 5e+03 660 -4.36e+03 3.25e-06 0 9.3e+03 2.15e+04 expHall Transportation + 8 5e+03 660 -4.36e+03 3.25e-06 0 0 2.15e+04 Tank Transportation + 9 1.9e+03 2.89e+03 -5e+03 3.25e-06 0 3.87e+03 2.54e+04 expHall Transportation + 10 1.9e+03 2.89e+03 -5e+03 3.25e-06 0 0 2.54e+04 Tank Transportation + 11 1.08e+03 5e+03 -310 3.25e-06 0 5.21e+03 3.06e+04 expHall Transportation + 12 1.08e+03 5e+03 -310 3.25e-06 0 0 3.06e+04 Tank Transportation + 13 -1.19e+03 45.7 4.62e+03 3.25e-06 3.25e-06 7.35e+03 3.8e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 37, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.887 -0.777 -0.00643 2.58e-06 0 0 0 Tank initStep + 1 4.47e+03 3.48e+03 -5e+03 2.58e-06 0 7.56e+03 7.56e+03 expHall Transportation + 2 4.47e+03 3.48e+03 -5e+03 2.58e-06 0 0 7.56e+03 Tank Transportation + 3 5e+03 4.24e+03 -4.48e+03 2.58e-06 0 1.06e+03 8.62e+03 expHall Transportation + 4 5e+03 4.24e+03 -4.48e+03 2.58e-06 0 0 8.62e+03 Tank Transportation + 5 3.91e+03 5e+03 -3.55e+03 2.58e-06 0 1.62e+03 1.02e+04 expHall Transportation + 6 3.91e+03 5e+03 -3.55e+03 2.58e-06 0 0 1.02e+04 Tank Transportation + 7 3.71e+03 -5e+03 4.31e+03 2.58e-06 0 1.27e+04 2.3e+04 expHall Transportation + 8 3.71e+03 -5e+03 4.31e+03 2.58e-06 0 0 2.3e+04 Tank Transportation + 9 3.55e+03 -4.02e+03 5e+03 2.58e-06 0 1.21e+03 2.42e+04 expHall Transportation + 10 3.55e+03 -4.02e+03 5e+03 2.58e-06 0 0 2.42e+04 Tank Transportation + 11 5e+03 3.95e+03 -3.27e+03 2.58e-06 0 1.16e+04 3.57e+04 expHall Transportation + 12 5e+03 3.95e+03 -3.27e+03 2.58e-06 0 0 3.57e+04 Tank Transportation + 13 4.65e+03 4.78e+03 -4.29e+03 2.58e-06 2.58e-06 1.36e+03 3.71e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 36, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.888 -0.831 -0.00662 2.26e-06 0 0 0 Tank initStep + 1 1.41e+03 716 541 2.26e-06 2.26e-06 1.67e+03 1.67e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 22 0.889 -0.877 -0.00679 0.208 0 0 1.53 Tank initStep + 23 0.909 -0.907 -0.00667 0.201 0.00774 0.0368 1.57 Tank msc + 24 0.961 -0.981 -0.0127 0.176 0.0251 0.102 1.67 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 39, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.922 -0.925 -0.00813 3.61e-06 0 0 0 Tank initStep + 1 5e+03 -2.44e+03 -754 3.61e-06 0 5.61e+03 5.61e+03 expHall Transportation + 2 1e+04 -7.52e+03 -466 3.61e-06 0 7.14e+03 1.27e+04 world Transportation + 3 1.5e+04 -1.26e+04 -178 3.61e-06 0 7.14e+03 1.99e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 24 0.961 -0.981 -0.0127 0.176 0 0 1.67 Tank initStep + 25 0.975 -1 -0.0101 0.172 0.004 0.0278 1.7 Tank msc + 26 1.01 -1.07 -0.00594 0.153 0.0187 0.0826 1.78 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 40, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.985 -1.02 -0.00904 3.45e-06 0 0 0 Tank initStep + 1 -2.18e+03 5e+03 4.82e+03 3.45e-06 0 7.28e+03 7.28e+03 expHall Transportation + 2 -2.18e+03 5e+03 4.82e+03 3.45e-06 0 0 7.28e+03 Tank Transportation + 3 -2.54e+03 4.49e+03 5e+03 3.45e-06 0 649 7.93e+03 expHall Transportation + 4 -2.54e+03 4.49e+03 5e+03 3.45e-06 0 0 7.93e+03 Tank Transportation + 5 -3.86e+03 5e+03 4.25e+03 3.45e-06 0 1.59e+03 9.52e+03 expHall Transportation + 6 -3.86e+03 5e+03 4.25e+03 3.45e-06 0 0 9.52e+03 Tank Transportation + 7 -5e+03 4.19e+03 3.87e+03 3.45e-06 0 1.45e+03 1.1e+04 expHall Transportation + 8 -5e+03 4.19e+03 3.87e+03 3.45e-06 0 0 1.1e+04 Tank Transportation + 9 -2.57e+03 2.64e+03 3.99e+03 3.45e-06 3.45e-06 2.89e+03 1.39e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 26 1.01 -1.07 -0.00594 0.153 0 0 1.78 Tank initStep + 27 1.01 -1.09 -0.00125 0.147 0.00598 0.0221 1.8 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 41, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.01 -1.08 -0.00235 3.76e-06 0 0 0 Tank initStep + 1 680 5e+03 -3.51e+03 3.76e-06 0 6.15e+03 6.15e+03 expHall Transportation + 2 680 5e+03 -3.51e+03 3.76e-06 0 0 6.15e+03 Tank Transportation + 3 1.48e+03 4.19e+03 -5e+03 3.76e-06 0 1.88e+03 8.02e+03 expHall Transportation + 4 7.16e+03 -1.92e+03 -1e+04 3.76e-06 0 9.73e+03 1.77e+04 world Transportation + 5 1.28e+04 -8.02e+03 -1.5e+04 3.76e-06 0 9.73e+03 2.75e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 27 1.01 -1.09 -0.00125 0.147 0 0 1.8 Tank initStep + 28 1.01 -1.11 0.00763 0.14 0.00666 0.0207 1.82 Tank msc + 29 0.977 -1.15 0.0247 0.117 0.0236 0.0634 1.88 Tank eIoni + 30 0.961 -1.19 0.0403 0.0916 0.0251 0.0505 1.93 Tank eIoni + 31 0.937 -1.2 0.0571 0.0653 0.0263 0.0384 1.97 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 42, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.947 -1.19 0.0497 3.06e-06 0 0 0 Tank initStep + 1 4.58e+03 -3.65e+03 -5e+03 3.06e-06 0 7.7e+03 7.7e+03 expHall Transportation + 2 4.58e+03 -3.65e+03 -5e+03 3.06e-06 0 0 7.7e+03 Tank Transportation + 3 5e+03 -3.91e+03 -4.76e+03 3.06e-06 0 548 8.25e+03 expHall Transportation + 4 5e+03 -3.91e+03 -4.76e+03 3.06e-06 0 0 8.25e+03 Tank Transportation + 5 1.68e+03 -5e+03 -2.26e+03 3.06e-06 0 4.3e+03 1.25e+04 expHall Transportation + 6 1.68e+03 -5e+03 -2.26e+03 3.06e-06 0 0 1.25e+04 Tank Transportation + 7 -121 5e+03 -1.3e+03 3.06e-06 0 1.02e+04 2.28e+04 expHall Transportation + 8 -2.79e+03 1e+04 -507 3.06e-06 0 5.72e+03 2.85e+04 world Transportation + 9 -5.47e+03 1.5e+04 289 3.06e-06 0 5.72e+03 3.42e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 31 0.937 -1.2 0.0571 0.0653 0 0 1.97 Tank initStep + 32 0.933 -1.2 0.0571 0.0633 0.00206 0.00511 1.98 Tank msc + 33 0.916 -1.21 0.0578 0.0454 0.0179 0.0267 2 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 43, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.924 -1.21 0.0575 2.38e-06 0 0 0 Tank initStep + 1 3.82e+03 -5e+03 -164 2.38e-06 0 6.29e+03 6.29e+03 expHall Transportation + 2 3.82e+03 -5e+03 -164 2.38e-06 0 0 6.29e+03 Tank Transportation + 3 5e+03 -3.7e+03 248 2.38e-06 0 1.8e+03 8.09e+03 expHall Transportation + 4 5.36e+03 1e+04 2.79e+03 2.38e-06 0 1.39e+04 2.2e+04 world Transportation + 5 5.5e+03 1.5e+04 3.71e+03 2.38e-06 0 5.09e+03 2.71e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 33 0.916 -1.21 0.0578 0.0454 0 0 2 Tank initStep + 34 0.916 -1.22 0.0587 0.0418 0.00362 0.00267 2.01 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 44, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.916 -1.22 0.0585 3.47e-06 0 0 0 Tank initStep + 1 2.2e+03 666 -5e+03 3.47e-06 0 5.5e+03 5.5e+03 expHall Transportation + 2 2.2e+03 666 -5e+03 3.47e-06 0 0 5.5e+03 Tank Transportation + 3 5e+03 1.35e+03 -2.31e+03 3.47e-06 0 3.94e+03 9.44e+03 expHall Transportation + 4 5e+03 1.35e+03 -2.31e+03 3.47e-06 0 0 9.44e+03 Tank Transportation + 5 4.12e+03 5e+03 1.93e+03 3.47e-06 0 5.66e+03 1.51e+04 expHall Transportation + 6 4.12e+03 5e+03 1.93e+03 3.47e-06 0 0 1.51e+04 Tank Transportation + 7 3.78e+03 4.13e+03 2.83e+03 3.47e-06 0 1.3e+03 1.64e+04 Tank OpRayleigh + 8 -65.9 -3.79e+03 -5e+03 3.47e-06 0 1.18e+04 2.82e+04 expHall Transportation + 9 -65.9 -3.79e+03 -5e+03 3.47e-06 0 0 2.82e+04 Tank Transportation + 10 -757 -5e+03 -2.87e+03 3.47e-06 0 2.55e+03 3.07e+04 expHall Transportation + 11 -757 -5e+03 -2.87e+03 3.47e-06 0 0 3.07e+04 Tank Transportation + 12 -1.15e+03 -4.66e+03 -2.21e+03 3.47e-06 0 839 3.16e+04 Tank OpRayleigh + 13 -3.44e+03 -3.32e+03 4.93e+03 3.47e-06 3.47e-06 7.61e+03 3.92e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 34 0.916 -1.22 0.0587 0.0418 0 0 2.01 Tank initStep + 35 0.915 -1.22 0.0594 0.0397 0.00201 0.00231 2.01 Tank msc + 36 0.912 -1.23 0.0621 0.0274 0.0124 0.0182 2.03 Tank eIoni + 37 0.906 -1.23 0.0608 0 0.0274 0.0128 2.04 Tank eIoni + 38 0.906 -1.23 0.0608 0 0 0 2.04 Tank annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 47, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.906 -1.23 0.0608 0.511 0 0 0 Tank initStep + 1 6.48 -16.4 14 0.306 1.42e-05 21.3 21.3 Tank compt + 2 23.4 21.5 94.5 0.151 1.42e-05 90.6 112 Tank compt + 3 5.71 49.2 38 0.108 1.42e-05 65.4 177 Tank compt + 4 18.8 48.4 38.8 0.1 1.42e-05 13.2 190 Tank compt + 5 48 81 39.5 0.0874 0.000537 43.8 234 Tank compt + 6 51.6 76.8 24.7 0.0798 0.000537 15.8 250 Tank compt + 7 39.3 92.2 5.88 0.0718 1.36e-05 27.3 277 Tank compt + 8 45.9 102 4.89 0.0697 1.42e-05 11.9 289 Tank compt + 9 39.2 179 -1.94 0.0677 1.42e-05 77.9 367 Tank compt + 10 30.4 218 23.8 0.0676 1.36e-05 47.1 414 Tank compt + 11 26.9 251 40.4 0.0634 1.42e-05 37.6 452 Tank compt + 12 68.6 291 48.3 0.0599 1.36e-05 58 510 Tank compt + 13 66.6 380 8.34 0.0599 0 98.1 608 Tank Rayl + 14 70 458 -27.6 0.0515 0.000537 85.5 693 Tank compt + 15 44.8 447 -27.4 0 0.000538 27.4 721 Tank phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 44.8 447 -27.4 0.051 0 0 0 Tank initStep + 1 44.8 447 -27.4 0.0492 0.00181 0.00353 0.00353 Tank msc + 2 44.8 447 -27.4 0.0361 0.013 0.0223 0.0259 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 63, Parent ID = 61 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 44.8 447 -27.4 2.18e-06 0 0 0 Tank initStep + 1 -3.21e+03 4.55e+03 -5e+03 2.18e-06 0 7.22e+03 7.22e+03 expHall Transportation + 2 -3.21e+03 4.55e+03 -5e+03 2.18e-06 0 0 7.22e+03 Tank Transportation + 3 -3.38e+03 5e+03 -4.75e+03 2.18e-06 0 549 7.77e+03 expHall Transportation + 4 -3.38e+03 5e+03 -4.75e+03 2.18e-06 0 0 7.77e+03 Tank Transportation + 5 -5e+03 4.37e+03 -4.17e+03 2.18e-06 0 1.83e+03 9.6e+03 expHall Transportation + 6 -1e+04 43.4 -2.19e+03 2.18e-06 0 6.9e+03 1.65e+04 world Transportation + 7 -1.5e+04 -4.28e+03 -222 2.18e-06 0 6.9e+03 2.34e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 62, Parent ID = 61 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 44.8 447 -27.4 2.99e-06 0 0 0 Tank initStep + 1 -4.68e+03 -5e+03 -3.82e+03 2.99e-06 0 8.15e+03 8.15e+03 expHall Transportation + 2 -4.68e+03 -5e+03 -3.82e+03 2.99e-06 0 0 8.15e+03 Tank Transportation + 3 -5e+03 -4.53e+03 -3.8e+03 2.99e-06 0 574 8.72e+03 expHall Transportation + 4 -5e+03 -4.53e+03 -3.8e+03 2.99e-06 0 0 8.72e+03 Tank Transportation + 5 394 5e+03 -2.91e+03 2.99e-06 0 1.1e+04 1.97e+04 expHall Transportation + 6 8.2e+03 1e+04 -2.25e+03 2.99e-06 0 9.29e+03 2.9e+04 world Transportation + 7 1.5e+04 1.44e+04 -1.68e+03 2.99e-06 0 8.1e+03 3.71e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 44.8 447 -27.4 0.0361 0 0 0.0259 Tank initStep + 3 44.8 447 -27.4 0.0353 0.000808 0.00192 0.0278 Tank msc + 4 44.8 447 -27.4 0.0173 0.018 0.0172 0.045 Tank eIoni + 5 44.8 447 -27.4 0 0.0173 0.00653 0.0515 Tank eIoni + 6 44.8 447 -27.4 0 0 0 0.0515 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 70 458 -27.6 0.00785 0 0 0 Tank initStep + 1 70 458 -27.6 0.00776 9.2e-05 0.00013 0.00013 Tank msc + 2 70 458 -27.6 0 0.00776 0.00159 0.00172 Tank eIoni + 3 70 458 -27.6 0 0 0 0.00172 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 68.6 291 48.3 0.00344 0 0 0 Tank initStep + 1 68.6 291 48.3 0.00335 9.39e-05 3.13e-05 3.13e-05 Tank msc + 2 68.6 291 48.3 0 0.00335 0.000373 0.000404 Tank eIoni + 3 68.6 291 48.3 0 0 0 0.000404 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 26.9 251 40.4 0.0042 0 0 0 Tank initStep + 1 26.9 251 40.4 0.00417 3.7e-05 4.39e-05 4.39e-05 Tank msc + 2 26.9 251 40.4 0 0.00417 0.000541 0.000585 Tank eIoni + 3 26.9 251 40.4 0 0 0 0.000585 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 64, Parent ID = 58 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 26.9 251 40.4 2.26e-06 0 0 0 Tank initStep + 1 -3.68e+03 3.29e+03 5e+03 2.26e-06 0 6.9e+03 6.9e+03 expHall Transportation + 2 -9.1e+03 1e+04 6.18e+03 2.26e-06 0 8.71e+03 1.56e+04 world Transportation + 3 -1.31e+04 1.5e+04 7.06e+03 2.26e-06 0 6.49e+03 2.21e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 30.4 218 23.8 7.35e-05 0 0 0 Tank initStep + 1 30.4 218 23.8 0 7.35e-05 3.13e-07 3.13e-07 Tank msc + 2 30.4 218 23.8 0 0 0 3.13e-07 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.2 179 -1.94 0.00201 0 0 0 Tank initStep + 1 39.2 179 -1.94 0.0019 0.000107 1.27e-05 1.27e-05 Tank msc + 2 39.2 179 -1.94 0 0.0019 0.000145 0.000158 Tank eIoni + 3 39.2 179 -1.94 0 0 0 0.000158 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 45.9 102 4.89 0.00214 0 0 0 Tank initStep + 1 45.9 102 4.89 0.00211 2.71e-05 1.41e-05 1.41e-05 Tank msc + 2 45.9 102 4.89 0 0.00211 0.000172 0.000186 Tank eIoni + 3 45.9 102 4.89 0 0 0 0.000186 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 66, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 45.9 102 4.89 3.18e-06 0 0 0 Tank initStep + 1 888 -280 372 3.18e-06 0 995 995 Tank OpRayleigh + 2 -1.5e+03 -141 1.71e+03 3.18e-06 3.18e-06 2.74e+03 3.74e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 65, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 45.9 102 4.89 3.63e-06 0 0 0 Tank initStep + 1 -1.47e+03 -1.52e+03 -579 3.63e-06 0 2.3e+03 2.3e+03 Tank OpRayleigh + 2 -2.15e+03 5e+03 -1.09e+03 3.63e-06 0 6.58e+03 8.88e+03 expHall Transportation + 3 -4.31e+03 1e+04 -2.42e+03 3.63e-06 0 5.61e+03 1.45e+04 world Transportation + 4 -6.47e+03 1.5e+04 -3.75e+03 3.63e-06 0 5.61e+03 2.01e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 39.3 92.2 5.88 0.00791 0 0 0 Tank initStep + 1 39.3 92.2 5.88 0.00768 0.000231 0.000131 0.000131 Tank msc + 2 39.2 92.2 5.88 0 0.00768 0.00156 0.00169 Tank eIoni + 3 39.2 92.2 5.88 0 0 0 0.00169 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 51.6 76.8 24.7 0.00708 0 0 0 Tank initStep + 1 51.6 76.8 24.7 0.00417 0.00292 0.000108 0.000108 Tank msc + 2 51.6 76.8 24.7 0 0.00417 0.000541 0.000649 Tank eIoni + 3 51.6 76.8 24.7 0 0 0 0.000649 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48 81 39.5 0.0122 0 0 0 Tank initStep + 1 48 81 39.5 0.012 0.000191 0.00028 0.00028 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 67, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 48 81 39.5 3.88e-06 0 0 0 Tank initStep + 1 5e+03 -111 -2.73e+03 3.88e-06 0 5.68e+03 5.68e+03 expHall Transportation + 2 5e+03 -111 -2.73e+03 3.88e-06 0 0 5.68e+03 Tank Transportation + 3 4.67e+03 -367 -5e+03 3.88e-06 0 2.31e+03 7.99e+03 expHall Transportation + 4 3.76e+03 -749 -1e+04 3.88e-06 0 5.1e+03 1.31e+04 world Transportation + 5 2.86e+03 -1.13e+03 -1.5e+04 3.88e-06 0 5.1e+03 1.82e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 48 81 39.5 0.012 0 0 0.00028 Tank initStep + 2 48 81 39.5 0.0113 0.000628 0.000272 0.000552 Tank msc + 3 48 81 39.5 0 0.0113 0.00309 0.00364 Tank eIoni + 4 48 81 39.5 0 0 0 0.00364 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 18.8 48.4 38.8 0.00792 0 0 0 Tank initStep + 1 18.8 48.4 38.8 0.00771 0.000219 0.000132 0.000132 Tank msc + 2 18.8 48.4 38.8 0 0.00771 0.00157 0.0017 Tank eIoni + 3 18.8 48.4 38.8 0 0 0 0.0017 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 5.71 49.2 38 0.0433 0 0 0 Tank initStep + 1 5.71 49.2 38 0.042 0.00125 0.00264 0.00264 Tank msc + 2 5.71 49.2 38 0.0224 0.0196 0.0197 0.0224 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 68, Parent ID = 50 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 5.71 49.2 38 2.49e-06 0 0 0 Tank initStep + 1 445 2.53e+03 -5e+03 2.49e-06 0 5.63e+03 5.63e+03 expHall Transportation + 2 968 5.02e+03 -1e+04 2.49e-06 0 5.61e+03 1.12e+04 world Transportation + 3 1.49e+03 7.52e+03 -1.5e+04 2.49e-06 0 5.61e+03 1.69e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 5.71 49.2 38 0.0224 0 0 0.0224 Tank initStep + 3 5.71 49.2 38 0.0218 0.000632 0.000828 0.0232 Tank msc + 4 5.71 49.2 38 0 0.0218 0.00984 0.033 Tank eIoni + 5 5.71 49.2 38 0 0 0 0.033 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 23.4 21.5 94.5 0.155 0 0 0 Tank initStep + 1 23.4 21.5 94.5 0.149 0.00621 0.0235 0.0235 Tank msc + 2 23.4 21.5 94.6 0.132 0.0162 0.0706 0.0941 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 70, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 23.4 21.5 94.5 3.01e-06 0 0 0 Tank initStep + 1 -2.04e+03 5e+03 -3e+03 3.01e-06 0 6.21e+03 6.21e+03 expHall Transportation + 2 -2.04e+03 5e+03 -3e+03 3.01e-06 0 0 6.21e+03 Tank Transportation + 3 -5e+03 2.84e+03 -3.18e+03 3.01e-06 0 3.67e+03 9.88e+03 expHall Transportation + 4 -1e+04 -9.9e+03 -251 3.01e-06 0 1.4e+04 2.39e+04 world Transportation + 5 -1.2e+04 -1.5e+04 922 3.01e-06 0 5.6e+03 2.95e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 69, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 23.4 21.5 94.5 2.43e-06 0 0 0 Tank initStep + 1 -378 -2.63e+03 -5e+03 2.43e-06 0 5.76e+03 5.76e+03 expHall Transportation + 2 -378 -2.63e+03 -5e+03 2.43e-06 0 0 5.76e+03 Tank Transportation + 3 2.46e+03 -5e+03 -2.48e+03 2.43e-06 0 4.47e+03 1.02e+04 expHall Transportation + 4 2.46e+03 -5e+03 -2.48e+03 2.43e-06 0 0 1.02e+04 Tank Transportation + 5 3.71e+03 -4.62e+03 -714 2.43e-06 2.43e-06 2.2e+03 1.24e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 23.4 21.5 94.6 0.132 0 0 0.0941 Tank initStep + 3 23.4 21.5 94.6 0.13 0.00291 0.0181 0.112 Tank msc + 4 23.4 21.5 94.6 0.106 0.0234 0.0593 0.172 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 73, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 23.4 21.5 94.6 2.41e-06 0 0 0 Tank initStep + 1 -5e+03 2.24e+03 3.9e+03 2.41e-06 0 6.68e+03 6.68e+03 expHall Transportation + 2 -5e+03 2.24e+03 3.9e+03 2.41e-06 0 0 6.68e+03 Tank Transportation + 3 -4.62e+03 2.75e+03 5e+03 2.41e-06 0 1.27e+03 7.95e+03 expHall Transportation + 4 -948 7.47e+03 1e+04 2.41e-06 0 7.79e+03 1.57e+04 world Transportation + 5 2.72e+03 1.22e+04 1.5e+04 2.41e-06 0 7.79e+03 2.35e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 72, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 23.4 21.5 94.6 2.57e-06 0 0 0 Tank initStep + 1 -2.27e+03 -431 -5e+03 2.57e-06 0 5.6e+03 5.6e+03 expHall Transportation + 2 -2.27e+03 -431 -5e+03 2.57e-06 0 0 5.6e+03 Tank Transportation + 3 -5e+03 -472 -2.39e+03 2.57e-06 0 3.78e+03 9.38e+03 expHall Transportation + 4 -5e+03 -472 -2.39e+03 2.57e-06 0 0 9.38e+03 Tank Transportation + 5 -2e+03 54 5e+03 2.57e-06 0 8e+03 1.74e+04 expHall Transportation + 6 695 628 1e+04 2.57e-06 0 5.71e+03 2.31e+04 world Transportation + 7 3.39e+03 1.2e+03 1.5e+04 2.57e-06 0 5.71e+03 2.88e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 71, Parent ID = 49 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 23.4 21.5 94.6 3.95e-06 0 0 0 Tank initStep + 1 4.31e+03 585 5e+03 3.95e-06 0 6.54e+03 6.54e+03 expHall Transportation + 2 4.31e+03 585 5e+03 3.95e-06 0 0 6.54e+03 Tank Transportation + 3 5e+03 737 4.48e+03 3.95e-06 0 879 7.42e+03 expHall Transportation + 4 1e+04 1.3e+03 728 3.95e-06 0 6.28e+03 1.37e+04 world Transportation + 5 1.5e+04 1.87e+03 -3.02e+03 3.95e-06 0 6.28e+03 2e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 23.4 21.5 94.6 0.106 0 0 0.172 Tank initStep + 5 23.4 21.5 94.7 0.103 0.00337 0.0125 0.184 Tank msc + 6 23.4 21.5 94.7 0.084 0.0188 0.0451 0.229 Tank eIoni + 7 23.4 21.5 94.7 0.0654 0.0186 0.0362 0.265 Tank eIoni + 8 23.4 21.5 94.7 0.0499 0.0155 0.0284 0.294 Tank eIoni + 9 23.4 21.5 94.6 0.0341 0.0158 0.0226 0.316 Tank eIoni + 10 23.4 21.5 94.6 0.0139 0.0203 0.0167 0.333 Tank eIoni + 11 23.4 21.5 94.6 0 0.0139 0.0044 0.338 Tank eIoni + 12 23.4 21.5 94.6 0 0 0 0.338 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 6.48 -16.4 14 0.205 0 0 0 Tank initStep + 1 6.49 -16.4 14 0.194 0.011 0.0369 0.0369 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 75, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 6.49 -16.4 14 2.51e-06 0 0 0 Tank initStep + 1 5e+03 4.12e+03 1.34e+03 2.51e-06 0 6.62e+03 6.62e+03 expHall Transportation + 2 6.84e+03 1e+04 2.93e+03 2.51e-06 0 6.36e+03 1.3e+04 world Transportation + 3 8.4e+03 1.5e+04 4.28e+03 2.51e-06 0 5.41e+03 1.84e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 74, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 6.49 -16.4 14 2.05e-06 0 0 0 Tank initStep + 1 -90.1 4.4e+03 -1.83e+03 2.05e-06 2.05e-06 4.78e+03 4.78e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 6.49 -16.4 14 0.194 0 0 0.0369 Tank initStep + 2 6.5 -16.5 14 0.187 0.00691 0.0338 0.0707 Tank msc + 3 6.53 -16.5 14 0.165 0.022 0.0955 0.166 Tank eIoni + 4 6.57 -16.6 14 0.138 0.0272 0.0809 0.247 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 76, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 6.54 -16.5 14 3.96e-06 0 0 0 Tank initStep + 1 -11.6 73.9 298 3.96e-06 3.96e-06 298 298 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 6.57 -16.6 14 0.138 0 0 0.247 Tank initStep + 5 6.58 -16.6 14 0.134 0.00387 0.0194 0.266 Tank msc + 6 6.63 -16.6 14 0.115 0.0188 0.0619 0.328 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 77, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 6.61 -16.6 14 3.58e-06 0 0 0 Tank initStep + 1 1.94e+03 5e+03 -2.37e+03 3.58e-06 0 5.88e+03 5.88e+03 expHall Transportation + 2 1.94e+03 5e+03 -2.37e+03 3.58e-06 0 0 5.88e+03 Tank Transportation + 3 -394 3.82e+03 -380 3.58e-06 0 3.29e+03 9.17e+03 Tank OpRayleigh + 4 -1.77e+03 -186 4.04e+03 3.58e-06 0 6.12e+03 1.53e+04 Tank OpRayleigh + 5 -294 -2.92e+03 5e+03 3.58e-06 0 3.25e+03 1.85e+04 expHall Transportation + 6 -294 -2.92e+03 5e+03 3.58e-06 0 0 1.85e+04 Tank Transportation + 7 -225 -5e+03 1.8e+03 3.58e-06 0 3.81e+03 2.24e+04 expHall Transportation + 8 -225 -5e+03 1.8e+03 3.58e-06 0 0 2.24e+04 Tank Transportation + 9 -664 -3.26e+03 -5e+03 3.58e-06 0 7.04e+03 2.94e+04 expHall Transportation + 10 923 1.46e+03 -1e+04 3.58e-06 0 7.05e+03 3.64e+04 world Transportation + 11 2.51e+03 6.17e+03 -1.5e+04 3.58e-06 0 7.05e+03 4.35e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 6 6.63 -16.6 14 0.115 0 0 0.328 Tank initStep + 7 6.65 -16.6 14 0.111 0.00421 0.0143 0.343 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 78, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 6.64 -16.6 14 2.28e-06 0 0 0 Tank initStep + 1 5e+03 -1.63e+03 1.7e+03 2.28e-06 0 5.51e+03 5.51e+03 expHall Transportation + 2 8.31e+03 -1e+04 8.16e+03 2.28e-06 0 1.11e+04 1.66e+04 world Transportation + 3 1.03e+04 -1.5e+04 1.2e+04 2.28e-06 0 6.62e+03 2.32e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 7 6.65 -16.6 14 0.111 0 0 0.343 Tank initStep + 8 6.66 -16.6 14 0.107 0.00405 0.0135 0.356 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 81, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 6.65 -16.6 14 2.21e-06 0 0 0 Tank initStep + 1 -1.39e+03 -5e+03 39.6 2.21e-06 0 5.18e+03 5.18e+03 expHall Transportation + 2 -1.39e+03 -5e+03 39.6 2.21e-06 0 0 5.18e+03 Tank Transportation + 3 -4.72e+03 83.7 5e+03 2.21e-06 0 7.84e+03 1.3e+04 expHall Transportation + 4 -4.72e+03 83.7 5e+03 2.21e-06 0 0 1.3e+04 Tank Transportation + 5 -5e+03 1.34e+03 4.48e+03 2.21e-06 0 1.39e+03 1.44e+04 expHall Transportation + 6 -5e+03 1.34e+03 4.48e+03 2.21e-06 0 0 1.44e+04 Tank Transportation + 7 -2.36e+03 5e+03 3.15e+03 2.21e-06 0 4.7e+03 1.91e+04 expHall Transportation + 8 -2.36e+03 5e+03 3.15e+03 2.21e-06 0 0 1.91e+04 Tank Transportation + 9 -291 -1.11e+03 -5e+03 2.21e-06 0 1.04e+04 2.95e+04 expHall Transportation + 10 -291 -1.11e+03 -5e+03 2.21e-06 0 0 2.95e+04 Tank Transportation + 11 -371 -3.05e+03 5e+03 2.21e-06 0 1.02e+04 3.97e+04 expHall Transportation + 12 424 -4.14e+03 1e+04 2.21e-06 0 5.18e+03 4.49e+04 world Transportation + 13 1.22e+03 -5.23e+03 1.5e+04 2.21e-06 0 5.18e+03 5e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 80, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 6.65 -16.6 14 3.41e-06 0 0 0 Tank initStep + 1 -5e+03 650 -1.06e+03 3.41e-06 0 5.16e+03 5.16e+03 expHall Transportation + 2 -1e+04 2.28e+03 -2.59e+03 3.41e-06 0 5.48e+03 1.06e+04 world Transportation + 3 -1.5e+04 3.91e+03 -4.11e+03 3.41e-06 0 5.48e+03 1.61e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 79, Parent ID = 48 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 6.66 -16.6 14 3.41e-06 0 0 0 Tank initStep + 1 -1.07e+03 -5e+03 -920 3.41e-06 0 5.18e+03 5.18e+03 expHall Transportation + 2 -5.38e+03 -1e+04 -687 3.41e-06 0 6.61e+03 1.18e+04 world Transportation + 3 -9.7e+03 -1.5e+04 -455 3.41e-06 0 6.61e+03 1.84e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 47 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 8 6.66 -16.6 14 0.107 0 0 0.356 Tank initStep + 9 6.67 -16.6 14 0.103 0.00385 0.0127 0.369 Tank msc + 10 6.7 -16.6 14 0.0697 0.0333 0.0452 0.414 Tank eIoni + 11 6.72 -16.6 14 0.0498 0.0199 0.0302 0.444 Tank eIoni + 12 6.71 -16.6 14 0.0362 0.0136 0.0226 0.467 Tank eIoni + 13 6.71 -16.6 14 0.00805 0.0281 0.0175 0.484 Tank eIoni + 14 6.71 -16.6 14 0 0.00805 0.00169 0.486 Tank eIoni + 15 6.71 -16.6 14 0 0 0 0.486 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 46, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.906 -1.23 0.0608 0.511 0 0 0 Tank initStep + 1 -11.9 33.5 -31.7 0.456 1.42e-05 48.8 48.8 Tank compt + 2 -39.4 110 -50.4 0.323 1.42e-05 83.1 132 Tank compt + 3 -65.7 121 -100 0.32 0.000537 57.5 189 Tank compt + 4 -141 174 -228 0.255 2.92e-05 157 347 Tank compt + 5 -153 176 -229 0.13 1.36e-05 11.5 358 Tank compt + 6 -147 176 -230 0.101 1.42e-05 5.58 364 Tank compt + 7 -148 173 -229 0.0998 0.000537 2.76 367 Tank compt + 8 -146 162 -224 0.0971 1.36e-05 12.8 380 Tank compt + 9 -142 147 -202 0.0765 2.92e-05 26.7 406 Tank compt + 10 -179 120 -243 0.0656 1.42e-05 61.9 468 Tank compt + 11 -172 114 -244 0.054 1.36e-05 8.88 477 Tank compt + 12 -173 117 -243 0.0478 2.92e-05 2.93 480 Tank compt + 13 -171 118 -248 0.0444 2.92e-05 5.08 485 Tank compt + 14 -176 109 -251 0.0405 1.42e-05 10.4 495 Tank compt + 15 -159 104 -257 0.0381 1.42e-05 18.5 514 Tank compt + 16 -160 73.7 -280 0.0378 1.42e-05 37.6 551 Tank compt + 17 -182 43.9 -307 0.0334 0.000537 46.1 598 Tank compt + 18 -210 72.3 -252 0.0328 1.42e-05 67.8 665 Tank compt + 19 -211 72.1 -252 0.0328 0 0.886 666 Tank Rayl + 20 -236 58.4 -200 0.0321 1.42e-05 59.2 726 Tank compt + 21 -229 76.4 -156 0.0296 2.92e-05 48.3 774 Tank compt + 22 -240 10.7 -162 0.0286 1.36e-05 66.9 841 Tank compt + 23 -251 7.51 -163 0 0.000538 11.9 853 Tank phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -251 7.51 -163 0.0281 0 0 0 Tank initStep + 1 -251 7.51 -163 0.0269 0.00115 0.00123 0.00123 Tank msc + 2 -251 7.51 -163 0.00636 0.0206 0.0133 0.0145 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 104, Parent ID = 103 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -251 7.51 -163 2.11e-06 0 0 0 Tank initStep + 1 2.52e+03 -5e+03 -1.4e+03 2.11e-06 0 5.85e+03 5.85e+03 expHall Transportation + 2 2.52e+03 -5e+03 -1.4e+03 2.11e-06 0 0 5.85e+03 Tank Transportation + 3 2.7e+03 -4.73e+03 -1.5e+03 2.11e-06 2.11e-06 340 6.19e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 -251 7.51 -163 0.00636 0 0 0.0145 Tank initStep + 3 -251 7.51 -163 0.0061 0.00026 8.98e-05 0.0146 Tank msc + 4 -251 7.51 -163 0 0.0061 0.00104 0.0156 Tank eIoni + 5 -251 7.51 -163 0 0 0 0.0156 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -240 10.7 -162 0.000929 0 0 0 Tank initStep + 1 -240 10.7 -162 0.000913 1.58e-05 3.72e-06 3.72e-06 Tank msc + 2 -240 10.7 -162 0 0.000913 4.53e-05 4.91e-05 Tank eIoni + 3 -240 10.7 -162 0 0 0 4.91e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -229 76.4 -156 0.00248 0 0 0 Tank initStep + 1 -229 76.4 -156 0.00176 0.000712 1.8e-05 1.8e-05 Tank msc + 2 -229 76.4 -156 0 0.00176 0.000129 0.000147 Tank eIoni + 3 -229 76.4 -156 0 0 0 0.000147 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -236 58.4 -200 0.000743 0 0 0 Tank initStep + 1 -236 58.4 -200 0.0007 4.35e-05 2.67e-06 2.67e-06 Tank msc + 2 -236 58.4 -200 0 0.0007 3.06e-05 3.33e-05 Tank eIoni + 3 -236 58.4 -200 0 0 0 3.33e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -210 72.3 -252 0.000603 0 0 0 Tank initStep + 1 -210 72.3 -252 0.000603 0 1.98e-06 1.98e-06 Tank msc + 2 -210 72.3 -252 0 0.000603 2.48e-05 2.68e-05 Tank eIoni + 3 -210 72.3 -252 0 0 0 2.68e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -182 43.9 -307 0.00385 0 0 0 Tank initStep + 1 -182 43.9 -307 0.00372 0.000129 3.78e-05 3.78e-05 Tank msc + 2 -182 43.9 -307 0 0.00372 0.000446 0.000484 Tank eIoni + 3 -182 43.9 -307 0 0 0 0.000484 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -160 73.7 -280 0.000274 0 0 0 Tank initStep + 1 -160 73.7 -280 0.000274 0 7.65e-07 7.65e-07 Tank msc + 2 -160 73.7 -280 0 0.000274 9.57e-06 1.03e-05 Tank eIoni + 3 -160 73.7 -280 0 0 0 1.03e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -159 104 -257 0.0024 0 0 0 Tank initStep + 1 -159 104 -257 0.00236 4.01e-05 1.7e-05 1.7e-05 Tank msc + 2 -159 104 -257 0 0.00236 0.000207 0.000224 Tank eIoni + 3 -159 104 -257 0 0 0 0.000224 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -176 109 -251 0.00381 0 0 0 Tank initStep + 1 -176 109 -251 0.00379 2.21e-05 3.71e-05 3.71e-05 Tank msc + 2 -176 109 -251 0 0.00379 0.00046 0.000497 Tank eIoni + 3 -176 109 -251 0 0 0 0.000497 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -171 118 -248 0.00338 0 0 0 Tank initStep + 1 -171 118 -248 0.0033 8.26e-05 3.04e-05 3.04e-05 Tank msc + 2 -171 118 -248 0 0.0033 0.000364 0.000394 Tank eIoni + 3 -171 118 -248 0 0 0 0.000394 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -173 117 -243 0.00616 0 0 0 Tank initStep + 1 -173 117 -243 0.00591 0.000252 8.5e-05 8.5e-05 Tank msc + 2 -173 117 -243 0 0.00591 0.000988 0.00107 Tank eIoni + 3 -173 117 -243 0 0 0 0.00107 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -172 114 -244 0.0116 0 0 0 Tank initStep + 1 -172 114 -244 0.0111 0.000472 0.000257 0.000257 Tank msc + 2 -172 114 -244 0 0.0111 0.00298 0.00324 Tank eIoni + 3 -172 114 -244 0 0 0 0.00324 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -179 120 -243 0.0109 0 0 0 Tank initStep + 1 -179 120 -243 0.01 0.000893 0.000232 0.000232 Tank msc + 2 -179 120 -243 0 0.01 0.00249 0.00272 Tank eIoni + 3 -179 120 -243 0 0 0 0.00272 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -142 147 -202 0.0206 0 0 0 Tank initStep + 1 -142 147 -202 0.0201 0.000468 0.000712 0.000712 Tank msc + 2 -142 147 -202 0 0.0201 0.00854 0.00925 Tank eIoni + 3 -142 147 -202 0 0 0 0.00925 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 106, Parent ID = 90 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -142 147 -202 3.71e-06 0 0 0 Tank initStep + 1 -892 2.32e+03 -5e+03 3.71e-06 0 5.32e+03 5.32e+03 expHall Transportation + 2 -892 2.32e+03 -5e+03 3.71e-06 0 0 5.32e+03 Tank Transportation + 3 -1.2e+03 2.67e+03 -4.64e+03 3.71e-06 3.71e-06 594 5.91e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 105, Parent ID = 90 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -142 147 -202 3.48e-06 0 0 0 Tank initStep + 1 -5e+03 4.99e+03 -1.19e+03 3.48e-06 0 6.93e+03 6.93e+03 expHall Transportation + 2 -5e+03 4.99e+03 -1.19e+03 3.48e-06 0 0 6.93e+03 Tank Transportation + 3 -4.97e+03 5e+03 -1.24e+03 3.48e-06 0 56.7 6.99e+03 expHall Transportation + 4 -4.97e+03 5e+03 -1.24e+03 3.48e-06 0 0 6.99e+03 Tank Transportation + 5 -2.67e+03 1.41e+03 -5e+03 3.48e-06 0 5.68e+03 1.27e+04 expHall Transportation + 6 -2.67e+03 1.41e+03 -5e+03 3.48e-06 0 0 1.27e+04 Tank Transportation + 7 5e+03 115 1.24e+03 3.48e-06 0 9.97e+03 2.26e+04 expHall Transportation + 8 7.26e+03 174 1e+04 3.48e-06 0 9.05e+03 3.17e+04 world Transportation + 9 8.54e+03 208 1.5e+04 3.48e-06 0 5.16e+03 3.69e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -146 162 -224 0.00261 0 0 0 Tank initStep + 1 -146 162 -224 0.00247 0.000143 1.97e-05 1.97e-05 Tank msc + 2 -146 162 -224 0 0.00247 0.000224 0.000244 Tank eIoni + 3 -146 162 -224 0 0 0 0.000244 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -148 173 -229 0.000962 0 0 0 Tank initStep + 1 -148 173 -229 0.000962 0 3.93e-06 3.93e-06 Tank msc + 2 -148 173 -229 0 0.000962 4.91e-05 5.3e-05 Tank eIoni + 3 -148 173 -229 0 0 0 5.3e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -147 176 -230 0.0284 0 0 0 Tank initStep + 1 -147 176 -230 0.028 0.000394 0.00126 0.00126 Tank msc + 2 -147 176 -230 0.00376 0.0243 0.0139 0.0151 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 108, Parent ID = 87 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -147 176 -230 3.33e-06 0 0 0 Tank initStep + 1 1.04e+03 -5e+03 -2.45e+03 3.33e-06 0 5.76e+03 5.76e+03 expHall Transportation + 2 1.04e+03 -5e+03 -2.45e+03 3.33e-06 0 0 5.76e+03 Tank Transportation + 3 2.52e+03 -3.23e+03 -5e+03 3.33e-06 0 3.44e+03 9.19e+03 expHall Transportation + 4 2.52e+03 -3.23e+03 -5e+03 3.33e-06 0 0 9.19e+03 Tank Transportation + 5 5e+03 -288 -3.84e+03 3.33e-06 0 4.02e+03 1.32e+04 expHall Transportation + 6 5e+03 -288 -3.84e+03 3.33e-06 0 0 1.32e+04 Tank Transportation + 7 3.73e+03 1.66e+03 -5e+03 3.33e-06 0 2.6e+03 1.58e+04 expHall Transportation + 8 3.73e+03 1.66e+03 -5e+03 3.33e-06 0 0 1.58e+04 Tank Transportation + 9 66.4 5e+03 -451 3.33e-06 0 6.73e+03 2.25e+04 expHall Transportation + 10 66.4 5e+03 -451 3.33e-06 0 0 2.25e+04 Tank Transportation + 11 -4.12e+03 1.62e+03 5e+03 3.33e-06 0 7.66e+03 3.02e+04 expHall Transportation + 12 -4.12e+03 1.62e+03 5e+03 3.33e-06 0 0 3.02e+04 Tank Transportation + 13 -5e+03 1.66e+03 4.45e+03 3.33e-06 0 1.04e+03 3.12e+04 expHall Transportation + 14 -5e+03 1.66e+03 4.45e+03 3.33e-06 0 0 3.12e+04 Tank Transportation + 15 -250 3.01e+03 1.3e+03 3.33e-06 0 5.86e+03 3.71e+04 Tank OpRayleigh + 16 886 5e+03 2.96e+03 3.33e-06 0 2.83e+03 3.99e+04 expHall Transportation + 17 886 5e+03 2.96e+03 3.33e-06 0 0 3.99e+04 Tank Transportation + 18 1.9e+03 4.22e+03 5e+03 3.33e-06 0 2.41e+03 4.23e+04 expHall Transportation + 19 1.9e+03 4.22e+03 5e+03 3.33e-06 0 0 4.23e+04 Tank Transportation + 20 5e+03 -331 3.61e+03 3.33e-06 0 5.68e+03 4.8e+04 expHall Transportation + 21 5e+03 -331 3.61e+03 3.33e-06 0 0 4.8e+04 Tank Transportation + 22 2.14e+03 -3.95e+03 2.23e+03 3.33e-06 3.33e-06 4.82e+03 5.28e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 107, Parent ID = 87 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -147 176 -230 3.56e-06 0 0 0 Tank initStep + 1 3.98e+03 5e+03 -3.61e+03 3.56e-06 0 7.19e+03 7.19e+03 expHall Transportation + 2 3.98e+03 5e+03 -3.61e+03 3.56e-06 0 0 7.19e+03 Tank Transportation + 3 5e+03 3.24e+03 -4.48e+03 3.56e-06 0 2.21e+03 9.4e+03 expHall Transportation + 4 5e+03 3.24e+03 -4.48e+03 3.56e-06 0 0 9.4e+03 Tank Transportation + 5 4.98e+03 3.2e+03 -4.48e+03 3.56e-06 3.56e-06 42.7 9.45e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 -147 176 -230 0.00376 0 0 0.0151 Tank initStep + 3 -147 176 -230 0.00356 0.000198 3.64e-05 0.0152 Tank msc + 4 -147 176 -230 0 0.00356 0.000414 0.0156 Tank eIoni + 5 -147 176 -230 0 0 0 0.0156 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -153 176 -229 0.125 0 0 0 Tank initStep + 1 -153 176 -229 0.122 0.00336 0.0165 0.0165 Tank msc + 2 -153 176 -229 0.0991 0.0225 0.0549 0.0714 Tank eIoni + 3 -153 176 -229 0.0862 0.0129 0.0433 0.115 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 109, Parent ID = 86 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -153 176 -229 2.38e-06 0 0 0 Tank initStep + 1 2.4e+03 2.74e+03 -1.37e+03 2.38e-06 0 3.79e+03 3.79e+03 Tank OpRayleigh + 2 379 907 -704 2.38e-06 2.38e-06 2.8e+03 6.59e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 -153 176 -229 0.0862 0 0 0.115 Tank initStep + 4 -153 176 -229 0.0819 0.00433 0.00878 0.123 Tank msc + 5 -153 176 -229 0.0677 0.0142 0.0353 0.159 Tank eIoni + 6 -153 176 -229 0.0459 0.0217 0.0294 0.188 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 111, Parent ID = 86 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -153 176 -229 3.49e-06 0 0 0 Tank initStep + 1 218 2.85e+03 3.41e+03 3.49e-06 3.49e-06 4.53e+03 4.53e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 110, Parent ID = 86 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -153 176 -229 2.09e-06 0 0 0 Tank initStep + 1 -25.3 647 -659 2.09e-06 2.09e-06 651 651 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 6 -153 176 -229 0.0459 0 0 0.188 Tank initStep + 7 -153 176 -229 0.0424 0.00357 0.00294 0.191 Tank msc + 8 -153 176 -229 0.0284 0.014 0.0199 0.211 Tank eIoni + 9 -153 176 -229 0.0111 0.0173 0.0141 0.225 Tank eIoni + 10 -153 176 -229 0 0.0111 0.00299 0.228 Tank eIoni + 11 -153 176 -229 0 0 0 0.228 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -141 174 -228 0.0654 0 0 0 Tank initStep + 1 -141 174 -228 0.0625 0.0029 0.00545 0.00545 Tank msc + 2 -141 174 -228 0.0429 0.0196 0.0273 0.0328 Tank eIoni + 3 -141 174 -228 0.0306 0.0124 0.0201 0.0528 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 112, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -141 174 -228 2.39e-06 0 0 0 Tank initStep + 1 4.46e+03 -2.65e+03 1.61e+03 2.39e-06 2.39e-06 5.7e+03 5.7e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 -141 174 -228 0.0306 0 0 0.0528 Tank initStep + 4 -141 174 -228 0.0294 0.00112 0.00143 0.0543 Tank msc + 5 -141 174 -228 0.0108 0.0186 0.0146 0.0688 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 113, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -141 174 -228 3.51e-06 0 0 0 Tank initStep + 1 406 602 117 3.51e-06 0 776 776 Tank OpRayleigh + 2 98 1.61e+03 -5e+03 3.51e-06 0 5.23e+03 6e+03 expHall Transportation + 3 -862 1.94e+03 -1e+04 3.51e-06 0 5.1e+03 1.11e+04 world Transportation + 4 -1.82e+03 2.26e+03 -1.5e+04 3.51e-06 0 5.1e+03 1.62e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 -141 174 -228 0.0108 0 0 0.0688 Tank initStep + 6 -141 174 -228 0.0107 0.000146 0.000228 0.0691 Tank msc + 7 -141 174 -228 0 0.0107 0.00278 0.0718 Tank eIoni + 8 -141 174 -228 0 0 0 0.0718 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 115, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -141 174 -228 3.35e-06 0 0 0 Tank initStep + 1 -544 5e+03 -2.72e+03 3.35e-06 0 5.45e+03 5.45e+03 expHall Transportation + 2 -512 1e+04 -5.83e+03 3.35e-06 0 5.89e+03 1.13e+04 world Transportation + 3 -480 1.5e+04 -8.94e+03 3.35e-06 0 5.89e+03 1.72e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 114, Parent ID = 85 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -141 174 -228 2.22e-06 0 0 0 Tank initStep + 1 -5e+03 -1.69e+03 4.45e+03 2.22e-06 0 7e+03 7e+03 expHall Transportation + 2 -5e+03 -1.69e+03 4.45e+03 2.22e-06 0 0 7e+03 Tank Transportation + 3 -4.15e+03 -1.93e+03 5e+03 2.22e-06 0 1.04e+03 8.04e+03 expHall Transportation + 4 -4.15e+03 -1.93e+03 5e+03 2.22e-06 0 0 8.04e+03 Tank Transportation + 5 5e+03 -3.88e+03 -421 2.22e-06 0 1.08e+04 1.89e+04 expHall Transportation + 6 1e+04 -6.8e+03 -6.83e+03 2.22e-06 0 8.64e+03 2.75e+04 world Transportation + 7 1.5e+04 -9.72e+03 -1.32e+04 2.22e-06 0 8.64e+03 3.61e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -65.7 121 -100 0.00183 0 0 0 Tank initStep + 1 -65.7 121 -100 0.00179 3.66e-05 1.09e-05 1.09e-05 Tank msc + 2 -65.7 121 -100 0 0.00179 0.000132 0.000143 Tank eIoni + 3 -65.7 121 -100 0 0 0 0.000143 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -39.4 110 -50.4 0.134 0 0 0 Tank initStep + 1 -39.4 110 -50.4 0.13 0.00382 0.0184 0.0184 Tank msc + 2 -39.4 110 -50.3 0.0714 0.0584 0.0595 0.0779 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 116, Parent ID = 83 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -39.4 110 -50.4 2.53e-06 0 0 0 Tank initStep + 1 1.65e+03 -2.55e+03 -5e+03 2.53e-06 0 5.87e+03 5.87e+03 expHall Transportation + 2 1.65e+03 -2.55e+03 -5e+03 2.53e-06 0 0 5.87e+03 Tank Transportation + 3 2.44e+03 -5e+03 4.46e+03 2.53e-06 0 9.8e+03 1.57e+04 expHall Transportation + 4 2.44e+03 -5e+03 4.46e+03 2.53e-06 0 0 1.57e+04 Tank Transportation + 5 2.5e+03 -4.58e+03 5e+03 2.53e-06 0 683 1.64e+04 expHall Transportation + 6 2.5e+03 -4.58e+03 5e+03 2.53e-06 0 0 1.64e+04 Tank Transportation + 7 -1.27e+03 2.69e+03 -5e+03 2.53e-06 0 1.29e+04 2.93e+04 expHall Transportation + 8 -1.27e+03 2.69e+03 -5e+03 2.53e-06 0 0 2.93e+04 Tank Transportation + 9 -794 5e+03 -4.38e+03 2.53e-06 0 2.44e+03 3.17e+04 expHall Transportation + 10 4.45e+03 1e+04 -6.2e+03 2.53e-06 0 7.47e+03 3.92e+04 world Transportation + 11 9.7e+03 1.5e+04 -8.03e+03 2.53e-06 0 7.47e+03 4.67e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 -39.4 110 -50.3 0.0714 0 0 0.0779 Tank initStep + 3 -39.4 110 -50.3 0.0686 0.00275 0.00634 0.0842 Tank msc + 4 -39.4 110 -50.4 0.0516 0.017 0.0297 0.114 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 117, Parent ID = 83 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -39.4 110 -50.4 4.05e-06 0 0 0 Tank initStep + 1 5e+03 574 2.34e+03 4.05e-06 0 5.6e+03 5.6e+03 expHall Transportation + 2 1e+04 4.34e+03 9.31e+03 4.05e-06 0 9.36e+03 1.5e+04 world Transportation + 3 1.41e+04 7.41e+03 1.5e+04 4.05e-06 0 7.65e+03 2.26e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 -39.4 110 -50.4 0.0516 0 0 0.114 Tank initStep + 5 -39.4 110 -50.4 0.0454 0.00621 0.0036 0.118 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 118, Parent ID = 83 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -39.4 110 -50.4 3.1e-06 0 0 0 Tank initStep + 1 5e+03 -4.65e+03 3.32e+03 3.1e-06 0 7.71e+03 7.71e+03 expHall Transportation + 2 5.38e+03 -1e+04 8.97e+03 3.1e-06 0 7.79e+03 1.55e+04 world Transportation + 3 5.74e+03 -1.5e+04 1.43e+04 3.1e-06 0 7.28e+03 2.28e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 -39.4 110 -50.4 0.0454 0 0 0.118 Tank initStep + 6 -39.4 110 -50.4 0.0439 0.00141 0.00287 0.12 Tank msc + 7 -39.4 110 -50.4 0.0283 0.0157 0.0204 0.141 Tank eIoni + 8 -39.4 110 -50.4 0.00645 0.0218 0.014 0.155 Tank eIoni + 9 -39.4 110 -50.4 0 0.00645 0.00115 0.156 Tank eIoni + 10 -39.4 110 -50.4 0 0 0 0.156 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.9 33.5 -31.7 0.0548 0 0 0 Tank initStep + 1 -11.9 33.5 -31.7 0.052 0.00283 0.004 0.004 Tank msc + 2 -11.9 33.5 -31.8 0.0371 0.0148 0.0234 0.0274 Tank eIoni + 3 -11.9 33.5 -31.8 0.0234 0.0138 0.0179 0.0452 Tank eIoni + 4 -11.9 33.5 -31.8 0.00226 0.0211 0.011 0.0563 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 120, Parent ID = 82 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.9 33.5 -31.8 2.98e-06 0 0 0 Tank initStep + 1 -375 590 5e+03 2.98e-06 0 5.08e+03 5.08e+03 expHall Transportation + 2 -1.41e+03 1.3e+03 1e+04 2.98e-06 0 5.16e+03 1.02e+04 world Transportation + 3 -2.45e+03 2.02e+03 1.5e+04 2.98e-06 0 5.16e+03 1.54e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 119, Parent ID = 82 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11.9 33.5 -31.8 3.05e-06 0 0 0 Tank initStep + 1 1.62e+03 5e+03 4.36e+03 3.05e-06 0 6.83e+03 6.83e+03 expHall Transportation + 2 1.62e+03 5e+03 4.36e+03 3.05e-06 0 0 6.83e+03 Tank Transportation + 3 1.73e+03 4.73e+03 5e+03 3.05e-06 0 701 7.53e+03 expHall Transportation + 4 2.9e+03 2.11e+03 1e+04 3.05e-06 0 5.77e+03 1.33e+04 world Transportation + 5 4.08e+03 -513 1.5e+04 3.05e-06 0 5.77e+03 1.91e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 46 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 -11.9 33.5 -31.8 0.00226 0 0 0.0563 Tank initStep + 5 -11.9 33.5 -31.8 0.00207 0.000183 1.54e-05 0.0563 Tank msc + 6 -11.9 33.5 -31.8 0 0.00207 0.000168 0.0564 Tank eIoni + 7 -11.9 33.5 -31.8 0 0 0 0.0564 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.911 -1.23 0.0618 3.55e-06 0 0 0 Tank initStep + 1 -2.75e+03 5e+03 -4.01e+03 3.55e-06 0 6.98e+03 6.98e+03 expHall Transportation + 2 -7.45e+03 5.99e+03 -1e+04 3.55e-06 0 7.68e+03 1.47e+04 world Transportation + 3 -1.14e+04 6.82e+03 -1.5e+04 3.55e-06 0 6.41e+03 2.11e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 0.5 0 0 0 Tank initStep + 1 0.134 0.0364 -0.00221 0.474 0.0261 0.139 0.139 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.06 0.0162 -0.000988 2.36e-06 0 0 0 Tank initStep + 1 -1.14e+03 -1.03e+03 5e+03 2.36e-06 0 5.23e+03 5.23e+03 expHall Transportation + 2 -4.66e+03 -2.65e+03 1e+04 2.36e-06 0 6.32e+03 1.16e+04 world Transportation + 3 -8.17e+03 -4.27e+03 1.5e+04 2.36e-06 0 6.32e+03 1.79e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.132 0.0357 -0.00217 3.66e-06 0 0 0 Tank initStep + 1 5e+03 4.89e+03 1.23e+03 3.66e-06 0 7.1e+03 7.1e+03 expHall Transportation + 2 5e+03 4.89e+03 1.23e+03 3.66e-06 0 0 7.1e+03 Tank Transportation + 3 4.86e+03 5e+03 1.28e+03 3.66e-06 0 188 7.29e+03 expHall Transportation + 4 4.86e+03 5e+03 1.28e+03 3.66e-06 0 0 7.29e+03 Tank Transportation + 5 170 -5e+03 4.2e+03 3.66e-06 0 1.14e+04 1.87e+04 expHall Transportation + 6 170 -5e+03 4.2e+03 3.66e-06 0 0 1.87e+04 Tank Transportation + 7 -210 -4.84e+03 5e+03 3.66e-06 0 896 1.96e+04 expHall Transportation + 8 -210 -4.84e+03 5e+03 3.66e-06 0 0 1.96e+04 Tank Transportation + 9 -307 -5e+03 4.71e+03 3.66e-06 0 346 2e+04 expHall Transportation + 10 -307 -5e+03 4.71e+03 3.66e-06 0 0 2e+04 Tank Transportation + 11 -4.26e+03 753 -1.28e+03 3.66e-06 3.66e-06 9.2e+03 2.91e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0224 0.00608 -0.00037 2.4e-06 0 0 0 Tank initStep + 1 2.87e+03 2.91e+03 -186 2.4e-06 2.4e-06 4.09e+03 4.09e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 0.134 0.0364 -0.00221 0.474 0 0 0.139 Tank initStep + 2 0.245 0.0856 -0.0308 0.449 0.0252 0.125 0.265 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.159 0.0473 -0.00857 3.62e-06 0 0 0 Tank initStep + 1 5e+03 1.86e+03 2.41e+03 3.62e-06 0 5.85e+03 5.85e+03 expHall Transportation + 2 5e+03 1.86e+03 2.41e+03 3.62e-06 0 0 5.85e+03 Tank Transportation + 3 4.48e+03 5e+03 3.39e+03 3.62e-06 0 3.33e+03 9.18e+03 expHall Transportation + 4 4.48e+03 5e+03 3.39e+03 3.62e-06 0 0 9.18e+03 Tank Transportation + 5 4.25e+03 4.76e+03 2.68e+03 3.62e-06 3.62e-06 783 9.97e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.201 0.066 -0.0194 3.26e-06 0 0 0 Tank initStep + 1 3.93e+03 5e+03 -3.41e+03 3.26e-06 0 7.21e+03 7.21e+03 expHall Transportation + 2 3.93e+03 5e+03 -3.41e+03 3.26e-06 0 0 7.21e+03 Tank Transportation + 3 3.92e+03 -3.09e+03 4.59e+03 3.26e-06 3.26e-06 1.14e+04 1.86e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.24 0.0833 -0.0294 2.47e-06 0 0 0 Tank initStep + 1 5e+03 -543 -1.53e+03 2.47e-06 0 5.26e+03 5.26e+03 expHall Transportation + 2 1e+04 -3.03e+03 -3.8e+03 2.47e-06 0 6.03e+03 1.13e+04 world Transportation + 3 1.5e+04 -5.51e+03 -6.07e+03 2.47e-06 0 6.03e+03 1.73e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 0.245 0.0856 -0.0308 0.449 0 0 0.265 Tank initStep + 3 0.352 0.117 -0.0315 0.417 0.0315 0.112 0.377 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.251 0.0874 -0.0308 2.69e-06 0 0 0 Tank initStep + 1 5e+03 4.19e+03 1.8e+03 2.69e-06 0 6.77e+03 6.77e+03 expHall Transportation + 2 5e+03 4.19e+03 1.8e+03 2.69e-06 0 0 6.77e+03 Tank Transportation + 3 4.45e+03 5e+03 2.46e+03 2.69e-06 0 1.18e+03 7.95e+03 expHall Transportation + 4 4.45e+03 5e+03 2.46e+03 2.69e-06 0 0 7.95e+03 Tank Transportation + 5 -4.03e+03 -5e+03 2.11e+03 2.69e-06 0 1.31e+04 2.11e+04 expHall Transportation + 6 -4.03e+03 -5e+03 2.11e+03 2.69e-06 0 0 2.11e+04 Tank Transportation + 7 -5e+03 -785 719 2.69e-06 0 4.54e+03 2.56e+04 expHall Transportation + 8 -5e+03 -785 719 2.69e-06 0 0 2.56e+04 Tank Transportation + 9 -1.01e+03 5e+03 -1.17e+03 2.69e-06 0 7.28e+03 3.29e+04 expHall Transportation + 10 -1.01e+03 5e+03 -1.17e+03 2.69e-06 0 0 3.29e+04 Tank Transportation + 11 -317 3.21e+03 -2.36e+03 2.69e-06 2.69e-06 2.25e+03 3.51e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.254 0.0883 -0.0308 3.68e-06 0 0 0 Tank initStep + 1 5e+03 408 -2.57e+03 3.68e-06 0 5.63e+03 5.63e+03 expHall Transportation + 2 1e+04 2.69e+03 -9.97e+03 3.68e-06 0 9.22e+03 1.49e+04 world Transportation + 3 1.34e+04 4.23e+03 -1.5e+04 3.68e-06 0 6.26e+03 2.11e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.284 0.0969 -0.031 4.13e-06 0 0 0 Tank initStep + 1 5e+03 591 -2.68e+03 4.13e-06 0 5.7e+03 5.7e+03 expHall Transportation + 2 1e+04 2.24e+03 -6.08e+03 4.13e-06 0 6.27e+03 1.2e+04 world Transportation + 3 1.5e+04 3.9e+03 -9.47e+03 4.13e-06 0 6.27e+03 1.82e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 0.352 0.117 -0.0315 0.417 0 0 0.377 Tank initStep + 4 0.435 0.145 -0.0702 0.403 0.0143 0.097 0.474 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.416 0.139 -0.0612 3.45e-06 0 0 0 Tank initStep + 1 -2.27e+03 4.02e+03 -1.39e+03 3.45e-06 0 4.82e+03 4.82e+03 Tank OpRayleigh + 2 -76.6 5e+03 371 3.45e-06 0 2.97e+03 7.8e+03 expHall Transportation + 3 -76.6 5e+03 371 3.45e-06 0 0 7.8e+03 Tank Transportation + 4 4.15e+03 -805 5e+03 3.45e-06 0 8.54e+03 1.63e+04 expHall Transportation + 5 4.15e+03 -805 5e+03 3.45e-06 0 0 1.63e+04 Tank Transportation + 6 719 -5e+03 -1.74e+03 3.45e-06 0 8.65e+03 2.5e+04 expHall Transportation + 7 719 -5e+03 -1.74e+03 3.45e-06 0 0 2.5e+04 Tank Transportation + 8 -901 -3.63e+03 -5e+03 3.45e-06 0 3.89e+03 2.89e+04 expHall Transportation + 9 -901 -3.63e+03 -5e+03 3.45e-06 0 0 2.89e+04 Tank Transportation + 10 -4.9e+03 -946 -3.29e+03 3.45e-06 0 5.11e+03 3.4e+04 Tank OpRayleigh + 11 -5e+03 -1e+03 -3.25e+03 3.45e-06 0 116 3.41e+04 expHall Transportation + 12 -5e+03 -1e+03 -3.25e+03 3.45e-06 0 0 3.41e+04 Tank Transportation + 13 4.6e+03 -5e+03 4.28e+03 3.45e-06 0 1.28e+04 4.7e+04 expHall Transportation + 14 4.6e+03 -5e+03 4.28e+03 3.45e-06 0 0 4.7e+04 Tank Transportation + 15 5e+03 -4.88e+03 4.57e+03 3.45e-06 0 508 4.75e+04 expHall Transportation + 16 8.64e+03 -3.25e+03 1e+04 3.45e-06 0 6.73e+03 5.42e+04 world Transportation + 17 1.2e+04 -1.76e+03 1.5e+04 3.45e-06 0 6.2e+03 6.04e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 0.435 0.145 -0.0702 0.403 0 0 0.474 Tank initStep + 5 0.506 0.168 -0.119 0.388 0.0146 0.0905 0.565 Tank Cerenkov + 6 0.577 0.174 -0.157 0.331 0.0569 0.084 0.649 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.564 0.173 -0.149 2.3e-06 0 0 0 Tank initStep + 1 470 2.4e+03 5e+03 2.3e-06 0 5.57e+03 5.57e+03 expHall Transportation + 2 1.73e+03 8.05e+03 1e+04 2.3e-06 0 7.65e+03 1.32e+04 world Transportation + 3 2.98e+03 1.37e+04 1.5e+04 2.3e-06 0 7.65e+03 2.09e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.547 0.172 -0.141 3.87e-06 0 0 0 Tank initStep + 1 5e+03 -138 -2.62e+03 3.87e-06 0 5.65e+03 5.65e+03 expHall Transportation + 2 5e+03 -138 -2.62e+03 3.87e-06 0 0 5.65e+03 Tank Transportation + 3 370 2.5e+03 -5e+03 3.87e-06 0 5.84e+03 1.15e+04 expHall Transportation + 4 370 2.5e+03 -5e+03 3.87e-06 0 0 1.15e+04 Tank Transportation + 5 -1.97e+03 5e+03 -2.9e+03 3.87e-06 0 4.01e+03 1.55e+04 expHall Transportation + 6 -1.97e+03 5e+03 -2.9e+03 3.87e-06 0 0 1.55e+04 Tank Transportation + 7 -5e+03 2.17e+03 133 3.87e-06 0 5.14e+03 2.06e+04 expHall Transportation + 8 -1e+04 -6.44e+03 7.5e+03 3.87e-06 0 1.24e+04 3.3e+04 world Transportation + 9 -1.5e+04 -1.5e+04 1.48e+04 3.87e-06 0 1.23e+04 4.53e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.557 0.173 -0.146 3.19e-06 0 0 0 Tank initStep + 1 4.21e+03 1.84e+03 -5e+03 3.19e-06 0 6.79e+03 6.79e+03 expHall Transportation + 2 4.21e+03 1.84e+03 -5e+03 3.19e-06 0 0 6.79e+03 Tank Transportation + 3 5e+03 2.03e+03 -4.7e+03 3.19e-06 0 867 7.66e+03 expHall Transportation + 4 1e+04 3.98e+03 -2.29e+03 3.19e-06 0 5.88e+03 1.35e+04 world Transportation + 5 1.5e+04 5.93e+03 118 3.19e-06 0 5.88e+03 1.94e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 6 0.577 0.174 -0.157 0.331 0 0 0.649 Tank initStep + 7 0.631 0.195 -0.177 0.323 0.00857 0.0612 0.71 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.631 0.195 -0.177 2.99e-06 0 0 0 Tank initStep + 1 3e+03 2.86e+03 -1.18e+03 2.99e-06 0 4.31e+03 4.31e+03 Tank OpRayleigh + 2 2.19e+03 5e+03 -4.46e+03 2.99e-06 0 4e+03 8.3e+03 expHall Transportation + 3 2.19e+03 5e+03 -4.46e+03 2.99e-06 0 0 8.3e+03 Tank Transportation + 4 2.11e+03 4.74e+03 -5e+03 2.99e-06 0 606 8.91e+03 expHall Transportation + 5 467 1.01e+03 -1e+04 2.99e-06 0 6.45e+03 1.54e+04 world Transportation + 6 -1.18e+03 -2.71e+03 -1.5e+04 2.99e-06 0 6.45e+03 2.18e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.583 0.177 -0.159 2.53e-06 0 0 0 Tank initStep + 1 5e+03 2.43e+03 -4.71e+03 2.53e-06 0 7.28e+03 7.28e+03 expHall Transportation + 2 5e+03 2.43e+03 -4.71e+03 2.53e-06 0 0 7.28e+03 Tank Transportation + 3 4.03e+03 2.95e+03 -4.92e+03 2.53e-06 0 1.12e+03 8.4e+03 Tank OpRayleigh + 4 -5e+03 -3.13e+03 -469 2.53e-06 0 1.18e+04 2.02e+04 expHall Transportation + 5 -9.91e+03 -1e+04 2.65e+03 2.53e-06 0 9e+03 2.92e+04 world Transportation + 6 -1.35e+04 -1.5e+04 4.92e+03 2.53e-06 0 6.55e+03 3.57e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 7 0.631 0.195 -0.177 0.323 0 0 0.71 Tank initStep + 8 0.68 0.221 -0.194 0.303 0.02 0.0582 0.768 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.634 0.197 -0.178 2.18e-06 0 0 0 Tank initStep + 1 2.54e+03 596 -211 2.18e-06 2.18e-06 2.62e+03 2.62e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 8 0.68 0.221 -0.194 0.303 0 0 0.768 Tank initStep + 9 0.721 0.247 -0.209 0.294 0.00848 0.0512 0.819 Tank Cerenkov + 10 0.756 0.274 -0.226 0.287 0.00758 0.0484 0.868 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.724 0.249 -0.21 3.62e-06 0 0 0 Tank initStep + 1 4.34e+03 -833 -5e+03 3.62e-06 0 6.67e+03 6.67e+03 expHall Transportation + 2 4.34e+03 -833 -5e+03 3.62e-06 0 0 6.67e+03 Tank Transportation + 3 5e+03 -1.01e+03 -4.37e+03 3.62e-06 0 932 7.6e+03 expHall Transportation + 4 5e+03 -1.01e+03 -4.37e+03 3.62e-06 0 0 7.6e+03 Tank Transportation + 5 -5e+03 4.48e+03 2.01e+03 3.62e-06 0 1.31e+04 2.07e+04 expHall Transportation + 6 -5e+03 4.48e+03 2.01e+03 3.62e-06 0 0 2.07e+04 Tank Transportation + 7 -4.57e+03 5e+03 2.54e+03 3.62e-06 0 860 2.15e+04 expHall Transportation + 8 -4.57e+03 5e+03 2.54e+03 3.62e-06 0 0 2.15e+04 Tank Transportation + 9 -2.9e+03 4.73e+03 5e+03 3.62e-06 0 2.98e+03 2.45e+04 expHall Transportation + 10 -2.9e+03 4.73e+03 5e+03 3.62e-06 0 0 2.45e+04 Tank Transportation + 11 5e+03 -1.62e+03 -575 3.62e-06 0 1.16e+04 3.61e+04 expHall Transportation + 12 5e+03 -1.62e+03 -575 3.62e-06 0 0 3.61e+04 Tank Transportation + 13 1.87e+03 -5e+03 -1.58e+03 3.62e-06 0 4.72e+03 4.08e+04 expHall Transportation + 14 1.87e+03 -5e+03 -1.58e+03 3.62e-06 0 0 4.08e+04 Tank Transportation + 15 -2.51e+03 3.65e+03 -5e+03 3.62e-06 0 1.03e+04 5.11e+04 expHall Transportation + 16 -2.51e+03 3.65e+03 -5e+03 3.62e-06 0 0 5.11e+04 Tank Transportation + 17 -3.24e+03 5e+03 -3.58e+03 3.62e-06 0 2.1e+03 5.32e+04 expHall Transportation + 18 -3.24e+03 5e+03 -3.58e+03 3.62e-06 0 0 5.32e+04 Tank Transportation + 19 -5e+03 1.67e+03 -2.74e+03 3.62e-06 0 3.86e+03 5.7e+04 expHall Transportation + 20 -5e+03 1.67e+03 -2.74e+03 3.62e-06 0 0 5.7e+04 Tank Transportation + 21 978 -5e+03 -1.86e+03 3.62e-06 0 9e+03 6.6e+04 expHall Transportation + 22 978 -5e+03 -1.86e+03 3.62e-06 0 0 6.6e+04 Tank Transportation + 23 5e+03 -2.21e+03 -4.76e+03 3.62e-06 0 5.69e+03 7.17e+04 expHall Transportation + 24 8.46e+03 2.65e+03 -1e+04 3.62e-06 0 7.94e+03 7.97e+04 world Transportation + 25 1.18e+04 7.28e+03 -1.5e+04 3.62e-06 0 7.57e+03 8.72e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 10 0.756 0.274 -0.226 0.287 0 0 0.868 Tank initStep + 11 0.791 0.294 -0.248 0.274 0.0131 0.046 0.914 Tank Cerenkov + 12 0.818 0.311 -0.272 0.263 0.0104 0.0419 0.956 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.811 0.306 -0.266 3.61e-06 0 0 0 Tank initStep + 1 193 -729 -5e+03 3.61e-06 0 5.06e+03 5.06e+03 expHall Transportation + 2 96.9 -2.22e+03 -1e+04 3.61e-06 0 5.22e+03 1.03e+04 world Transportation + 3 1.09 -3.7e+03 -1.5e+04 3.61e-06 0 5.22e+03 1.55e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 12 0.818 0.311 -0.272 0.263 0 0 0.956 Tank initStep + 13 0.846 0.331 -0.291 0.256 0.00775 0.0389 0.994 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.827 0.317 -0.278 3.81e-06 0 0 0 Tank initStep + 1 -255 888 -4.23e+03 3.81e-06 3.81e-06 4.33e+03 4.33e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 13 0.846 0.331 -0.291 0.256 0 0 0.994 Tank initStep + 14 0.876 0.342 -0.309 0.248 0.00724 0.0367 1.03 Tank Cerenkov + 15 0.893 0.345 -0.322 0.244 0.00424 0.0223 1.05 Tank Cerenkov + 16 0.898 0.345 -0.326 0.243 0.000643 0.00622 1.06 Tank Cerenkov + 17 0.9 0.344 -0.329 0.243 0.00067 0.00379 1.06 Tank Cerenkov + 18 0.901 0.344 -0.329 0.243 1.09e-05 0.00125 1.06 Tank Cerenkov + 19 0.902 0.343 -0.33 0.243 0.00016 0.00121 1.07 Tank Cerenkov + 20 0.902 0.343 -0.331 0.242 0.000215 0.0006 1.07 Tank Cerenkov + 21 0.985 0.317 -0.41 0.209 0.033 0.133 1.2 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.964 0.324 -0.39 3.89e-06 0 0 0 Tank initStep + 1 8.9 594 -1.43e+03 3.89e-06 0 1.55e+03 1.55e+03 Tank OpRayleigh + 2 -5e+03 720 -4.24e+03 3.89e-06 0 5.74e+03 7.29e+03 expHall Transportation + 3 -5e+03 720 -4.24e+03 3.89e-06 0 0 7.29e+03 Tank Transportation + 4 -4.63e+03 517 -5e+03 3.89e-06 0 869 8.16e+03 expHall Transportation + 5 -1.12e+03 -1.94e+03 -1e+04 3.89e-06 0 6.58e+03 1.47e+04 world Transportation + 6 2.39e+03 -4.39e+03 -1.5e+04 3.89e-06 0 6.58e+03 2.13e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.964 0.324 -0.39 4.08e-06 0 0 0 Tank initStep + 1 -349 2.54e+03 5e+03 4.08e-06 0 5.62e+03 5.62e+03 expHall Transportation + 2 -443 5.87e+03 1e+04 4.08e-06 0 6.01e+03 1.16e+04 world Transportation + 3 -537 9.21e+03 1.5e+04 4.08e-06 0 6.01e+03 1.76e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.971 0.321 -0.397 2.55e-06 0 0 0 Tank initStep + 1 -5e+03 913 -708 2.55e-06 0 5.13e+03 5.13e+03 expHall Transportation + 2 -1e+04 2.37e+03 -2.26e+03 2.55e-06 0 5.43e+03 1.06e+04 world Transportation + 3 -1.5e+04 3.83e+03 -3.8e+03 2.55e-06 0 5.43e+03 1.6e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.972 0.321 -0.397 3.56e-06 0 0 0 Tank initStep + 1 -536 5e+03 -4.5e+03 3.56e-06 0 6.75e+03 6.75e+03 expHall Transportation + 2 -536 5e+03 -4.5e+03 3.56e-06 0 0 6.75e+03 Tank Transportation + 3 -818 4.67e+03 -5e+03 3.56e-06 0 657 7.41e+03 expHall Transportation + 4 -818 4.67e+03 -5e+03 3.56e-06 0 0 7.41e+03 Tank Transportation + 5 -5e+03 2.01e+03 17.3 3.56e-06 0 7.06e+03 1.45e+04 expHall Transportation + 6 -5e+03 2.01e+03 17.3 3.56e-06 0 0 1.45e+04 Tank Transportation + 7 790 -5e+03 -104 3.56e-06 0 9.09e+03 2.36e+04 expHall Transportation + 8 1e+04 -9.92e+03 1.61e+03 3.56e-06 0 1.06e+04 3.41e+04 world Transportation + 9 1.5e+04 -1.26e+04 2.54e+03 3.56e-06 0 5.75e+03 3.99e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 21 0.985 0.317 -0.41 0.209 0 0 1.2 Tank initStep + 22 1 0.304 -0.438 0.202 0.0072 0.037 1.24 Tank msc + 23 1.06 0.261 -0.497 0.175 0.0268 0.103 1.34 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.03 0.282 -0.469 2.49e-06 0 0 0 Tank initStep + 1 2.91e+03 -5e+03 -436 2.49e-06 0 5.8e+03 5.8e+03 expHall Transportation + 2 2.91e+03 -5e+03 -436 2.49e-06 0 0 5.8e+03 Tank Transportation + 3 2.72e+03 5e+03 1.98e+03 2.49e-06 0 1.03e+04 1.61e+04 expHall Transportation + 4 2.58e+03 1e+04 3.95e+03 2.49e-06 0 5.38e+03 2.15e+04 world Transportation + 5 2.44e+03 1.5e+04 5.93e+03 2.49e-06 0 5.38e+03 2.68e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 23 1.06 0.261 -0.497 0.175 0 0 1.34 Tank initStep + 24 1.07 0.237 -0.507 0.168 0.00718 0.0277 1.37 Tank msc + 25 1.05 0.171 -0.526 0.15 0.0187 0.0805 1.45 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.06 0.211 -0.515 3.17e-06 0 0 0 Tank initStep + 1 3.15e+03 3.19e+03 5e+03 3.17e-06 0 6.71e+03 6.71e+03 expHall Transportation + 2 3.15e+03 3.19e+03 5e+03 3.17e-06 0 0 6.71e+03 Tank Transportation + 3 2.41e+03 5e+03 4.5e+03 3.17e-06 0 2.01e+03 8.73e+03 expHall Transportation + 4 2.41e+03 5e+03 4.5e+03 3.17e-06 0 0 8.73e+03 Tank Transportation + 5 -920 3.01e+03 4.91e+03 3.17e-06 3.17e-06 3.9e+03 1.26e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 25 1.05 0.171 -0.526 0.15 0 0 1.45 Tank initStep + 26 1.04 0.157 -0.526 0.146 0.00379 0.0213 1.47 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.04 0.162 -0.526 4.06e-06 0 0 0 Tank initStep + 1 -5e+03 -2.66e+03 339 4.06e-06 0 5.68e+03 5.68e+03 expHall Transportation + 2 -8.57e+03 -1e+04 1.72e+03 4.06e-06 0 8.27e+03 1.4e+04 world Transportation + 3 -1.1e+04 -1.5e+04 2.67e+03 4.06e-06 0 5.64e+03 1.96e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 26 1.04 0.157 -0.526 0.146 0 0 1.47 Tank initStep + 27 1.02 0.146 -0.536 0.14 0.00577 0.0204 1.49 Tank msc + 28 0.978 0.123 -0.554 0.125 0.0155 0.0632 1.55 Tank eIoni + 29 0.956 0.0842 -0.539 0.111 0.0132 0.0546 1.61 Tank eIoni + 30 0.938 0.0644 -0.508 0.0977 0.0136 0.0477 1.65 Tank eIoni + 31 0.92 0.0604 -0.479 0.081 0.0167 0.0411 1.7 Tank eIoni + 32 0.931 0.0577 -0.454 0.0697 0.0113 0.0337 1.73 Tank eIoni + 33 0.945 0.0498 -0.437 0.0556 0.0141 0.0292 1.76 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.933 0.0566 -0.452 3.72e-06 0 0 0 Tank initStep + 1 -516 -3.13e+03 910 3.72e-06 3.72e-06 3.3e+03 3.3e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 33 0.945 0.0498 -0.437 0.0556 0 0 1.76 Tank initStep + 34 0.945 0.0491 -0.441 0.0533 0.00231 0.00383 1.76 Tank msc + 35 0.942 0.0456 -0.458 0.0291 0.0241 0.0231 1.79 Tank eIoni + 36 0.935 0.0467 -0.455 0.0123 0.0168 0.0138 1.8 Tank eIoni + 37 0.935 0.0462 -0.457 0 0.0123 0.00325 1.8 Tank eIoni + 38 0.935 0.0462 -0.457 0 0 0 1.8 Tank annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 32, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.935 0.0462 -0.457 0.511 0 0 0 Tank initStep + 1 -51.2 -48.2 -32.3 0.492 0.000537 77.8 77.8 Tank compt + 2 -79.2 -69 -40.1 0.366 1.42e-05 35.8 114 Tank compt + 3 -89.2 -203 -44.3 0.207 1.36e-05 134 248 Tank compt + 4 -89.2 -194 -124 0.172 1.42e-05 79.8 328 Tank compt + 5 -83.6 -176 -132 0.171 1.42e-05 20.5 348 Tank compt + 6 -83.6 -176 -132 0.158 1.36e-05 0.29 349 Tank compt + 7 -83.6 -176 -132 0.144 2.92e-05 0.577 349 Tank compt + 8 -97.8 -141 -152 0.101 1.42e-05 42.4 392 Tank compt + 9 -27.2 -145 -130 0.0734 1.42e-05 74.2 466 Tank compt + 10 -36.1 -141 -134 0.0727 1.36e-05 10.7 477 Tank compt + 11 -91.4 -95 -195 0.0589 0.000537 94 571 Tank compt + 12 -73.3 -95.2 -174 0 0.000538 27.4 598 Tank phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -73.3 -95.2 -174 0.0583 0 0 0 Tank initStep + 1 -73.3 -95.2 -174 0.0565 0.00187 0.00446 0.00446 Tank msc + 2 -73.3 -95.2 -174 0.0447 0.0117 0.025 0.0295 Tank eIoni + 3 -73.4 -95.2 -174 0.0312 0.0135 0.0207 0.0502 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 46, Parent ID = 44 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -73.3 -95.2 -174 3.67e-06 0 0 0 Tank initStep + 1 2.54e+03 2.04e+03 -1.23e+03 3.67e-06 3.67e-06 3.54e+03 3.54e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 44 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -73.4 -95.2 -174 2.26e-06 0 0 0 Tank initStep + 1 4.8e+03 5e+03 728 2.26e-06 0 7.11e+03 7.11e+03 expHall Transportation + 2 4.8e+03 5e+03 728 2.26e-06 0 0 7.11e+03 Tank Transportation + 3 5e+03 4.97e+03 795 2.26e-06 0 214 7.32e+03 expHall Transportation + 4 1e+04 640 5.93e+03 2.26e-06 0 8.37e+03 1.57e+04 world Transportation + 5 1.5e+04 -3.69e+03 1.11e+04 2.26e-06 0 8.37e+03 2.41e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 -73.4 -95.2 -174 0.0312 0 0 0.0502 Tank initStep + 4 -73.4 -95.2 -174 0.029 0.00224 0.00149 0.0517 Tank msc + 5 -73.4 -95.2 -174 0.0106 0.0184 0.0143 0.066 Tank eIoni + 6 -73.4 -95.2 -174 0 0.0106 0.00276 0.0688 Tank eIoni + 7 -73.4 -95.2 -174 0 0 0 0.0688 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -91.4 -95 -195 0.0133 0 0 0 Tank initStep + 1 -91.4 -95 -195 0.0131 0.000276 0.000329 0.000329 Tank msc + 2 -91.4 -95 -195 0 0.0131 0.00396 0.00429 Tank eIoni + 3 -91.4 -95 -195 0 0 0 0.00429 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 43 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -91.4 -95 -195 3.27e-06 0 0 0 Tank initStep + 1 5e+03 -1.02e+03 1.79e+03 3.27e-06 0 5.54e+03 5.54e+03 expHall Transportation + 2 5e+03 -1.02e+03 1.79e+03 3.27e-06 0 0 5.54e+03 Tank Transportation + 3 4.36e+03 -1.04e+03 2.25e+03 3.27e-06 3.27e-06 794 6.34e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 43 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -91.4 -95 -195 2.04e-06 0 0 0 Tank initStep + 1 -863 -468 -149 2.04e-06 2.04e-06 858 858 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 47, Parent ID = 43 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -91.4 -95 -195 2.76e-06 0 0 0 Tank initStep + 1 -5e+03 -760 1.49e+03 2.76e-06 0 5.23e+03 5.23e+03 expHall Transportation + 2 -1e+04 -1.38e+03 5.21e+03 2.76e-06 0 6.26e+03 1.15e+04 world Transportation + 3 -1.5e+04 -2e+03 8.92e+03 2.76e-06 0 6.26e+03 1.77e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -36.1 -141 -134 0.000627 0 0 0 Tank initStep + 1 -36.1 -141 -134 0.000582 4.45e-05 2.09e-06 2.09e-06 Tank msc + 2 -36.1 -141 -134 0 0.000582 2.36e-05 2.57e-05 Tank eIoni + 3 -36.1 -141 -134 0 0 0 2.57e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -27.2 -145 -130 0.0279 0 0 0 Tank initStep + 1 -27.2 -145 -130 0.0265 0.0014 0.00122 0.00122 Tank msc + 2 -27.1 -145 -130 0 0.0265 0.013 0.0142 Tank eIoni + 3 -27.1 -145 -130 0 0 0 0.0142 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 50, Parent ID = 41 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -27.2 -145 -130 2.12e-06 0 0 0 Tank initStep + 1 -5e+03 589 4.53e+03 2.12e-06 0 6.86e+03 6.86e+03 expHall Transportation + 2 -5e+03 589 4.53e+03 2.12e-06 0 0 6.86e+03 Tank Transportation + 3 -4.34e+03 888 5e+03 2.12e-06 0 865 7.72e+03 expHall Transportation + 4 -4.34e+03 888 5e+03 2.12e-06 0 0 7.72e+03 Tank Transportation + 5 3.01e+03 1.96e+03 1.46e+03 2.12e-06 2.12e-06 8.22e+03 1.59e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -97.8 -141 -152 0.043 0 0 0 Tank initStep + 1 -97.8 -141 -152 0.0421 0.000931 0.00262 0.00262 Tank msc + 2 -97.8 -141 -152 0.0305 0.0116 0.0198 0.0224 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 51, Parent ID = 40 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -97.8 -141 -152 2.36e-06 0 0 0 Tank initStep + 1 5e+03 2.55e+03 -2.83e+03 2.36e-06 0 6.36e+03 6.36e+03 expHall Transportation + 2 5e+03 2.55e+03 -2.83e+03 2.36e-06 0 0 6.36e+03 Tank Transportation + 3 2.61e+03 5e+03 -3.77e+03 2.36e-06 0 3.55e+03 9.91e+03 expHall Transportation + 4 2.61e+03 5e+03 -3.77e+03 2.36e-06 0 0 9.91e+03 Tank Transportation + 5 -5e+03 168 -4.88e+03 2.36e-06 0 9.08e+03 1.9e+04 expHall Transportation + 6 -5e+03 168 -4.88e+03 2.36e-06 0 0 1.9e+04 Tank Transportation + 7 -4.94e+03 141 -5e+03 2.36e-06 0 140 1.91e+04 expHall Transportation + 8 -4.94e+03 141 -5e+03 2.36e-06 0 0 1.91e+04 Tank Transportation + 9 2.94e+03 -2.42e+03 2.86e+03 2.36e-06 2.36e-06 1.14e+04 3.05e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 -97.8 -141 -152 0.0305 0 0 0.0224 Tank initStep + 3 -97.8 -141 -152 0.0283 0.00228 0.00143 0.0238 Tank msc + 4 -97.8 -141 -152 0.0117 0.0166 0.014 0.0378 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 40 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -97.8 -141 -152 3.6e-06 0 0 0 Tank initStep + 1 -5e+03 981 -3.13e+03 3.6e-06 0 5.85e+03 5.85e+03 expHall Transportation + 2 -5e+03 981 -3.13e+03 3.6e-06 0 0 5.85e+03 Tank Transportation + 3 -3.88e+03 811 -5e+03 3.6e-06 0 2.18e+03 8.03e+03 expHall Transportation + 4 -3.88e+03 811 -5e+03 3.6e-06 0 0 8.03e+03 Tank Transportation + 5 3.07e+03 -3.04e+03 4.33e+03 3.6e-06 3.6e-06 1.23e+04 2.03e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 -97.8 -141 -152 0.0117 0 0 0.0378 Tank initStep + 5 -97.8 -141 -152 0.0115 0.00024 0.000261 0.038 Tank msc + 6 -97.8 -141 -152 0 0.0115 0.00314 0.0412 Tank eIoni + 7 -97.8 -141 -152 0 0 0 0.0412 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.6 -176 -132 0.0139 0 0 0 Tank initStep + 1 -83.6 -176 -132 0.0137 0.000249 0.000354 0.000354 Tank msc + 2 -83.6 -176 -132 0 0.0137 0.00429 0.00464 Tank eIoni + 3 -83.6 -176 -132 0 0 0 0.00464 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 39 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.6 -176 -132 3.22e-06 0 0 0 Tank initStep + 1 -1.9e+03 -5e+03 1.61e+03 3.22e-06 0 5.44e+03 5.44e+03 expHall Transportation + 2 -1.9e+03 -5e+03 1.61e+03 3.22e-06 0 0 5.44e+03 Tank Transportation + 3 -5e+03 -1.54e+03 2.97e+03 3.22e-06 0 4.84e+03 1.03e+04 expHall Transportation + 4 -5e+03 -1.54e+03 2.97e+03 3.22e-06 0 0 1.03e+04 Tank Transportation + 5 -712 3.59e+03 5e+03 3.22e-06 0 6.99e+03 1.73e+04 expHall Transportation + 6 -712 3.59e+03 5e+03 3.22e-06 0 0 1.73e+04 Tank Transportation + 7 867 5e+03 4.32e+03 3.22e-06 0 2.23e+03 1.95e+04 expHall Transportation + 8 867 5e+03 4.32e+03 3.22e-06 0 0 1.95e+04 Tank Transportation + 9 5e+03 -4.54e+03 -2.5e+03 3.22e-06 0 1.24e+04 3.19e+04 expHall Transportation + 10 5e+03 -4.54e+03 -2.5e+03 3.22e-06 0 0 3.19e+04 Tank Transportation + 11 4.25e+03 -5e+03 -2.91e+03 3.22e-06 0 975 3.29e+04 expHall Transportation + 12 4.25e+03 -5e+03 -2.91e+03 3.22e-06 0 0 3.29e+04 Tank Transportation + 13 -175 -3.83e+03 -5e+03 3.22e-06 0 5.03e+03 3.79e+04 expHall Transportation + 14 -175 -3.83e+03 -5e+03 3.22e-06 0 0 3.79e+04 Tank Transportation + 15 -5e+03 -1.8e+03 -3.42e+03 3.22e-06 0 5.47e+03 4.34e+04 expHall Transportation + 16 -5e+03 -1.8e+03 -3.42e+03 3.22e-06 0 0 4.34e+04 Tank Transportation + 17 -4.39e+03 -1.75e+03 -3.49e+03 3.22e-06 3.22e-06 613 4.4e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.6 -176 -132 0.0132 0 0 0 Tank initStep + 1 -83.6 -176 -132 0.013 0.000186 0.000322 0.000322 Tank msc + 2 -83.6 -176 -132 0 0.013 0.00392 0.00424 Tank eIoni + 3 -83.6 -176 -132 0 0 0 0.00424 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.6 -176 -132 0.000902 0 0 0 Tank initStep + 1 -83.6 -176 -132 0.00083 7.26e-05 3.56e-06 3.56e-06 Tank msc + 2 -83.6 -176 -132 0 0.00083 3.93e-05 4.28e-05 Tank eIoni + 3 -83.6 -176 -132 0 0 0 4.28e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89.2 -194 -124 0.0347 0 0 0 Tank initStep + 1 -89.2 -194 -124 0.031 0.00373 0.00179 0.00179 Tank msc + 2 -89.2 -194 -124 0.000871 0.0301 0.0153 0.0171 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 57, Parent ID = 36 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89.2 -194 -124 3.35e-06 0 0 0 Tank initStep + 1 5e+03 2.1e+03 2.29e+03 3.35e-06 0 6.08e+03 6.08e+03 expHall Transportation + 2 5e+03 2.1e+03 2.29e+03 3.35e-06 0 0 6.08e+03 Tank Transportation + 3 4.13e+03 5e+03 3.63e+03 3.35e-06 0 3.31e+03 9.39e+03 expHall Transportation + 4 4.13e+03 5e+03 3.63e+03 3.35e-06 0 0 9.39e+03 Tank Transportation + 5 -5e+03 -192 2.81e+03 3.35e-06 0 1.05e+04 1.99e+04 expHall Transportation + 6 -5e+03 -192 2.81e+03 3.35e-06 0 0 1.99e+04 Tank Transportation + 7 -1.03e+03 -5e+03 -27.5 3.35e-06 0 6.85e+03 2.68e+04 expHall Transportation + 8 -1.03e+03 -5e+03 -27.5 3.35e-06 0 0 2.68e+04 Tank Transportation + 9 44.5 -2.7e+03 -1.43e+03 3.35e-06 3.35e-06 2.9e+03 2.97e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 56, Parent ID = 36 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89.2 -194 -124 2.41e-06 0 0 0 Tank initStep + 1 363 -4.13e+03 2.55e+03 2.41e-06 2.41e-06 4.78e+03 4.78e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 55, Parent ID = 36 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89.2 -194 -124 2.48e-06 0 0 0 Tank initStep + 1 -2.62e+03 14 -1.57e+03 2.48e-06 2.48e-06 2.92e+03 2.92e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 36 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89.2 -194 -124 3.31e-06 0 0 0 Tank initStep + 1 -4.29e+03 595 2.06e+03 3.31e-06 3.31e-06 4.8e+03 4.8e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 -89.2 -194 -124 0.000871 0 0 0.0171 Tank initStep + 3 -89.2 -194 -124 0.000871 0 3.38e-06 0.0171 Tank msc + 4 -89.2 -194 -124 0 0.000871 4.22e-05 0.0171 Tank eIoni + 5 -89.2 -194 -124 0 0 0 0.0171 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89.2 -203 -44.3 0.159 0 0 0 Tank initStep + 1 -89.2 -203 -44.3 0.151 0.00804 0.0246 0.0246 Tank msc + 2 -89.2 -203 -44.3 0.13 0.0215 0.0722 0.0969 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 58, Parent ID = 35 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89.2 -203 -44.3 4.07e-06 0 0 0 Tank initStep + 1 5e+03 -1.33e+03 -3.42e+03 4.07e-06 0 6.21e+03 6.21e+03 expHall Transportation + 2 5e+03 -1.33e+03 -3.42e+03 4.07e-06 0 0 6.21e+03 Tank Transportation + 3 4.22e+03 -2.41e+03 -5e+03 4.07e-06 0 2.07e+03 8.28e+03 expHall Transportation + 4 4.5e+03 -8.14e+03 -1e+04 4.07e-06 0 7.6e+03 1.59e+04 world Transportation + 5 4.79e+03 -1.39e+04 -1.5e+04 4.07e-06 0 7.6e+03 2.35e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 -89.2 -203 -44.3 0.13 0 0 0.0969 Tank initStep + 3 -89.2 -203 -44.3 0.126 0.00389 0.0175 0.114 Tank msc + 4 -89.3 -203 -44.3 0.109 0.0169 0.0573 0.172 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 59, Parent ID = 35 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89.2 -203 -44.3 3.62e-06 0 0 0 Tank initStep + 1 -1.21e+03 3.75e+03 -3.55e+03 3.62e-06 3.62e-06 5.41e+03 5.41e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 -89.3 -203 -44.3 0.109 0 0 0.172 Tank initStep + 5 -89.3 -203 -44.2 0.102 0.0067 0.0131 0.185 Tank msc + 6 -89.3 -203 -44.2 0.0859 0.0164 0.0448 0.23 Tank eIoni + 7 -89.3 -203 -44.2 0.066 0.0199 0.0371 0.267 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 60, Parent ID = 35 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -89.3 -203 -44.2 2.11e-06 0 0 0 Tank initStep + 1 2.11e+03 1.49e+03 -5e+03 2.11e-06 0 5.68e+03 5.68e+03 expHall Transportation + 2 2.11e+03 1.49e+03 -5e+03 2.11e-06 0 0 5.68e+03 Tank Transportation + 3 2.25e+03 1.65e+03 -4.78e+03 2.11e-06 2.11e-06 306 5.99e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 7 -89.3 -203 -44.2 0.066 0 0 0.267 Tank initStep + 8 -89.3 -203 -44.2 0.0278 0.0382 0.00554 0.272 Tank msc + 9 -89.3 -203 -44.2 0 0.0278 0.0137 0.286 Tank eIoni + 10 -89.3 -203 -44.2 0 0 0 0.286 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -79.2 -69 -40.1 0.125 0 0 0 Tank initStep + 1 -79.2 -69 -40.1 0.12 0.00524 0.0165 0.0165 Tank msc + 2 -79.3 -69 -40.1 0.106 0.0136 0.054 0.0705 Tank eIoni + 3 -79.3 -69 -40.1 0.0871 0.0192 0.0468 0.117 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 61, Parent ID = 34 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -79.3 -69 -40.1 2.43e-06 0 0 0 Tank initStep + 1 731 -5e+03 2.17e+03 2.43e-06 0 5.47e+03 5.47e+03 expHall Transportation + 2 731 -5e+03 2.17e+03 2.43e-06 0 0 5.47e+03 Tank Transportation + 3 5e+03 -2.66e+03 4.17e+03 2.43e-06 0 5.26e+03 1.07e+04 expHall Transportation + 4 1e+04 5.21e+03 9.55e+03 2.43e-06 0 1.08e+04 2.15e+04 world Transportation + 5 1.5e+04 1.31e+04 1.49e+04 2.43e-06 0 1.08e+04 3.23e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 -79.3 -69 -40.1 0.0871 0 0 0.117 Tank initStep + 4 -79.3 -69 -40.1 0.0835 0.00356 0.00893 0.126 Tank msc + 5 -79.3 -69 -40.1 0.0694 0.0141 0.036 0.162 Tank eIoni + 6 -79.3 -69 -40.1 0.0568 0.0126 0.03 0.192 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 62, Parent ID = 34 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -79.3 -69 -40.1 3.07e-06 0 0 0 Tank initStep + 1 -5e+03 659 4.81e+03 3.07e-06 0 6.95e+03 6.95e+03 expHall Transportation + 2 -5e+03 659 4.81e+03 3.07e-06 0 0 6.95e+03 Tank Transportation + 3 -4.78e+03 629 5e+03 3.07e-06 0 291 7.24e+03 expHall Transportation + 4 -4.78e+03 629 5e+03 3.07e-06 0 0 7.24e+03 Tank Transportation + 5 -2.3e+03 -409 146 3.07e-06 3.07e-06 5.55e+03 1.28e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 6 -79.3 -69 -40.1 0.0568 0 0 0.192 Tank initStep + 7 -79.3 -69 -40.1 0.0549 0.00193 0.00426 0.197 Tank msc + 8 -79.4 -69 -40.1 0.0399 0.015 0.0244 0.221 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 63, Parent ID = 34 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -79.4 -69 -40.1 3.22e-06 0 0 0 Tank initStep + 1 -5e+03 4.19e+03 -2.86e+03 3.22e-06 0 7.09e+03 7.09e+03 expHall Transportation + 2 -5e+03 4.19e+03 -2.86e+03 3.22e-06 0 0 7.09e+03 Tank Transportation + 3 -2.83e+03 5e+03 -4.64e+03 3.22e-06 0 2.92e+03 1e+04 expHall Transportation + 4 -2.83e+03 5e+03 -4.64e+03 3.22e-06 0 0 1e+04 Tank Transportation + 5 -2.39e+03 4.74e+03 -5e+03 3.22e-06 0 630 1.06e+04 expHall Transportation + 6 -2.39e+03 4.74e+03 -5e+03 3.22e-06 0 0 1.06e+04 Tank Transportation + 7 5e+03 2.19e+03 -3.78e+03 3.22e-06 0 7.91e+03 1.86e+04 expHall Transportation + 8 1e+04 1.03e+03 -2.96e+03 3.22e-06 0 5.2e+03 2.37e+04 world Transportation + 9 1.5e+04 -132 -2.14e+03 3.22e-06 0 5.2e+03 2.89e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 8 -79.4 -69 -40.1 0.0399 0 0 0.221 Tank initStep + 9 -79.4 -69 -40.1 0.0389 0.000966 0.00229 0.223 Tank msc + 10 -79.4 -69 -40.1 0.0226 0.0164 0.0186 0.242 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 64, Parent ID = 34 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -79.4 -69 -40.1 3.24e-06 0 0 0 Tank initStep + 1 -5e+03 3.04e+03 -1.62e+03 3.24e-06 0 6.03e+03 6.03e+03 expHall Transportation + 2 -5e+03 3.04e+03 -1.62e+03 3.24e-06 0 0 6.03e+03 Tank Transportation + 3 -1.97e+03 5e+03 -2.17e+03 3.24e-06 0 3.65e+03 9.68e+03 expHall Transportation + 4 -1.97e+03 5e+03 -2.17e+03 3.24e-06 0 0 9.68e+03 Tank Transportation + 5 -1.93e+03 4.97e+03 -2.19e+03 3.24e-06 3.24e-06 52.6 9.73e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 10 -79.4 -69 -40.1 0.0226 0 0 0.242 Tank initStep + 11 -79.4 -69 -40.1 0.0219 0.000651 0.000835 0.243 Tank msc + 12 -79.4 -69 -40.1 0 0.0219 0.00991 0.253 Tank eIoni + 13 -79.4 -69 -40.1 0 0 0 0.253 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 65, Parent ID = 34 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -79.4 -69 -40.1 2.3e-06 0 0 0 Tank initStep + 1 4.59e+03 3.46e+03 -1.39e+03 2.3e-06 2.3e-06 6e+03 6e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 32 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -51.2 -48.2 -32.3 0.0189 0 0 0 Tank initStep + 1 -51.2 -48.2 -32.3 0.0179 0.000962 0.00061 0.00061 Tank msc + 2 -51.2 -48.2 -32.3 0 0.0179 0.00695 0.00756 Tank eIoni + 3 -51.2 -48.2 -32.3 0 0 0 0.00756 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 66, Parent ID = 33 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -51.2 -48.2 -32.3 3.39e-06 0 0 0 Tank initStep + 1 745 5e+03 -2.78e+03 3.39e-06 0 5.8e+03 5.8e+03 expHall Transportation + 2 2.66e+03 9.1e+03 -1e+04 3.39e-06 0 8.52e+03 1.43e+04 world Transportation + 3 3.98e+03 1.19e+04 -1.5e+04 3.39e-06 0 5.9e+03 2.02e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 31, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.935 0.0462 -0.457 0.511 0 0 0 Tank initStep + 1 33.6 30.3 19.5 0.175 2.92e-05 48.8 48.8 Tank compt + 2 -5.09 -75.2 -64.3 0.136 1.42e-05 140 189 Tank compt + 3 -19.6 -83.7 -53.1 0.115 0.000537 20.2 209 Tank compt + 4 -61.2 -78.2 -69.1 0.0904 1.42e-05 44.9 254 Tank compt + 5 -60.2 -72.7 -49.1 0.0686 2.92e-05 20.7 275 Tank compt + 6 -63.9 -75.9 -53.8 0.0606 2.92e-05 6.86 282 Tank compt + 7 -94.1 -44.9 -53.4 0.0481 0.000537 43.3 325 Tank compt + 8 -76.6 -67.8 -43.4 0.0437 1.42e-05 30.5 356 Tank compt + 9 -79.7 -66.5 -38 0.0437 0 6.31 362 Tank Rayl + 10 -86.5 -73.8 -50.5 0 0.000538 16 378 Tank phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -86.5 -73.8 -50.5 0.0431 0 0 0 Tank initStep + 1 -86.5 -73.8 -50.5 0.0412 0.00197 0.00263 0.00263 Tank msc + 2 -86.5 -73.8 -50.5 0.026 0.0152 0.0194 0.022 Tank eIoni + 3 -86.5 -73.8 -50.5 0.00778 0.0182 0.0127 0.0348 Tank eIoni + 4 -86.5 -73.8 -50.5 0 0.00778 0.00159 0.0364 Tank eIoni + 5 -86.5 -73.8 -50.5 0 0 0 0.0364 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -76.6 -67.8 -43.4 0.00441 0 0 0 Tank initStep + 1 -76.6 -67.8 -43.4 0.00433 7.83e-05 4.76e-05 4.76e-05 Tank msc + 2 -76.6 -67.8 -43.4 0 0.00433 0.000577 0.000625 Tank eIoni + 3 -76.6 -67.8 -43.4 0 0 0 0.000625 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -94.1 -44.9 -53.4 0.012 0 0 0 Tank initStep + 1 -94.1 -44.9 -53.4 0.0113 0.000635 0.000272 0.000272 Tank msc + 2 -94.1 -44.9 -53.4 0 0.0113 0.00308 0.00335 Tank eIoni + 3 -94.1 -44.9 -53.4 0 0 0 0.00335 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -63.9 -75.9 -53.8 0.00798 0 0 0 Tank initStep + 1 -63.9 -75.9 -53.8 0.00764 0.000337 0.000133 0.000133 Tank msc + 2 -63.9 -75.9 -53.8 0 0.00764 0.00154 0.00168 Tank eIoni + 3 -63.9 -75.9 -53.8 0 0 0 0.00168 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -60.2 -72.7 -49.1 0.0218 0 0 0 Tank initStep + 1 -60.2 -72.7 -49.1 0.021 0.000719 0.000784 0.000784 Tank msc + 2 -60.2 -72.7 -49.1 0 0.021 0.00924 0.01 Tank eIoni + 3 -60.2 -72.7 -49.1 0 0 0 0.01 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -61.2 -78.2 -69.1 0.0248 0 0 0 Tank initStep + 1 -61.2 -78.2 -69.1 0.0242 0.000621 0.000989 0.000989 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 76, Parent ID = 70 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -61.2 -78.2 -69.1 3.88e-06 0 0 0 Tank initStep + 1 -110 -500 396 3.88e-06 3.88e-06 630 630 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 -61.2 -78.2 -69.1 0.0242 0 0 0.000989 Tank initStep + 2 -61.2 -78.2 -69.1 0.0237 0.000515 0.000945 0.00193 Tank msc + 3 -61.2 -78.2 -69.1 0.00926 0.0144 0.0112 0.0132 Tank eIoni + 4 -61.2 -78.2 -69.1 0 0.00926 0.00216 0.0153 Tank eIoni + 5 -61.2 -78.2 -69.1 0 0 0 0.0153 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 78, Parent ID = 70 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -61.2 -78.2 -69.1 2.13e-06 0 0 0 Tank initStep + 1 -1.59e+03 1.78e+03 -1.07e+03 2.13e-06 2.13e-06 2.6e+03 2.6e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 77, Parent ID = 70 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -61.2 -78.2 -69.1 2.46e-06 0 0 0 Tank initStep + 1 -3.12e+03 5e+03 -2.98e+03 2.46e-06 0 6.6e+03 6.6e+03 expHall Transportation + 2 -3.12e+03 5e+03 -2.98e+03 2.46e-06 0 0 6.6e+03 Tank Transportation + 3 -5e+03 4.2e+03 -4.57e+03 2.46e-06 0 2.59e+03 9.2e+03 expHall Transportation + 4 -5e+03 4.2e+03 -4.57e+03 2.46e-06 0 0 9.2e+03 Tank Transportation + 5 -4.4e+03 3.93e+03 -5e+03 2.46e-06 0 781 9.98e+03 expHall Transportation + 6 3.78e+03 2.61e+03 -1e+04 2.46e-06 0 9.68e+03 1.97e+04 world Transportation + 7 1.2e+04 1.3e+03 -1.5e+04 2.46e-06 0 9.68e+03 2.93e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -19.6 -83.7 -53.1 0.0199 0 0 0 Tank initStep + 1 -19.6 -83.7 -53.1 0.0185 0.00145 0.000671 0.000671 Tank msc + 2 -19.6 -83.7 -53.1 0 0.0185 0.00733 0.008 Tank eIoni + 3 -19.6 -83.7 -53.1 0 0 0 0.008 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 79, Parent ID = 69 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -19.6 -83.7 -53.1 3.04e-06 0 0 0 Tank initStep + 1 395 1.62e+03 5e+03 3.04e-06 0 5.35e+03 5.35e+03 expHall Transportation + 2 821 4.24e+03 1e+04 3.04e-06 0 5.66e+03 1.1e+04 world Transportation + 3 1.25e+03 6.87e+03 1.5e+04 3.04e-06 0 5.66e+03 1.67e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -5.09 -75.2 -64.3 0.0398 0 0 0 Tank initStep + 1 -5.09 -75.2 -64.3 0.0382 0.0016 0.00228 0.00228 Tank msc + 2 -5.09 -75.2 -64.3 0.0243 0.0139 0.0183 0.0206 Tank eIoni + 3 -5.09 -75.2 -64.3 0.00662 0.0177 0.0117 0.0323 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 80, Parent ID = 68 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -5.09 -75.2 -64.3 3.45e-06 0 0 0 Tank initStep + 1 5e+03 557 -60.4 3.45e-06 0 5.04e+03 5.04e+03 expHall Transportation + 2 1e+04 1.17e+03 130 3.45e-06 0 5.04e+03 1.01e+04 world Transportation + 3 1.5e+04 1.78e+03 320 3.45e-06 0 5.04e+03 1.51e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 -5.09 -75.2 -64.3 0.00662 0 0 0.0323 Tank initStep + 4 -5.09 -75.2 -64.3 0.0063 0.000315 9.61e-05 0.0324 Tank msc + 5 -5.09 -75.2 -64.3 0 0.0063 0.0011 0.0335 Tank eIoni + 6 -5.09 -75.2 -64.3 0 0 0 0.0335 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.6 30.3 19.5 0.335 0 0 0 Tank initStep + 1 33.6 30.4 19.5 0.329 0.00654 0.0626 0.0626 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 83, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.6 30.4 19.5 2.21e-06 0 0 0 Tank initStep + 1 5e+03 1.82e+03 -240 2.21e-06 0 5.29e+03 5.29e+03 expHall Transportation + 2 1e+04 7.74e+03 -1.6e+03 2.21e-06 0 7.87e+03 1.32e+04 world Transportation + 3 1.5e+04 1.37e+04 -2.96e+03 2.21e-06 0 7.87e+03 2.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 82, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.6 30.4 19.5 3.26e-06 0 0 0 Tank initStep + 1 982 3.2e+03 2.15e+03 3.26e-06 0 3.93e+03 3.93e+03 Tank OpRayleigh + 2 5e+03 872 -375 3.26e-06 0 5.29e+03 9.22e+03 expHall Transportation + 3 5e+03 872 -375 3.26e-06 0 0 9.22e+03 Tank Transportation + 4 511 -1.51e+03 -5e+03 3.26e-06 0 6.87e+03 1.61e+04 expHall Transportation + 5 -1e+04 -5.08e+03 -5.39e+03 3.26e-06 0 1.11e+04 2.72e+04 world Transportation + 6 -1.5e+04 -6.77e+03 -5.58e+03 3.26e-06 0 5.28e+03 3.25e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 81, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.6 30.4 19.5 3.94e-06 0 0 0 Tank initStep + 1 107 2e+03 -302 3.94e-06 3.94e-06 2e+03 2e+03 Bubble Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 33.6 30.4 19.5 0.329 0 0 0.0626 Tank initStep + 2 33.6 30.5 19.5 0.318 0.0113 0.0602 0.123 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 84, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.6 30.4 19.5 4.03e-06 0 0 0 Tank initStep + 1 454 3.27e+03 993 4.03e-06 0 3.4e+03 3.4e+03 Tank OpRayleigh + 2 -1.47e+03 -5e+03 3.81e+03 4.03e-06 0 8.94e+03 1.23e+04 expHall Transportation + 3 -2.25e+03 -1e+04 6.15e+03 4.03e-06 0 5.57e+03 1.79e+04 world Transportation + 4 -3.03e+03 -1.5e+04 8.49e+03 4.03e-06 0 5.57e+03 2.35e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 33.6 30.5 19.5 0.318 0 0 0.123 Tank initStep + 3 33.6 30.5 19.5 0.306 0.0116 0.0563 0.179 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 85, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.6 30.5 19.5 2.34e-06 0 0 0 Tank initStep + 1 5e+03 -2.54e+03 4.77e+03 2.34e-06 0 7.33e+03 7.33e+03 expHall Transportation + 2 5e+03 -2.54e+03 4.77e+03 2.34e-06 0 0 7.33e+03 Tank Transportation + 3 4.68e+03 -1.97e+03 5e+03 2.34e-06 0 697 8.03e+03 expHall Transportation + 4 4.68e+03 -1.97e+03 5e+03 2.34e-06 0 0 8.03e+03 Tank Transportation + 5 1.08e+03 5e+03 1.54e+03 2.34e-06 0 8.57e+03 1.66e+04 expHall Transportation + 6 1.08e+03 5e+03 1.54e+03 2.34e-06 0 0 1.66e+04 Tank Transportation + 7 -67.6 2.24e+03 1.13e+03 2.34e-06 2.34e-06 3.02e+03 1.96e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 33.6 30.5 19.5 0.306 0 0 0.179 Tank initStep + 4 33.6 30.6 19.5 0.298 0.00774 0.0524 0.232 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 87, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.6 30.5 19.5 3.11e-06 0 0 0 Tank initStep + 1 -5e+03 3.4e+03 2.47e+03 3.11e-06 0 6.54e+03 6.54e+03 expHall Transportation + 2 -9.17e+03 1e+04 7.76e+03 3.11e-06 0 9.43e+03 1.6e+04 world Transportation + 3 -1.23e+04 1.5e+04 1.18e+04 3.11e-06 0 7.14e+03 2.31e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 86, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.6 30.5 19.5 3.34e-06 0 0 0 Tank initStep + 1 1.19e+03 -5e+03 2.69e+03 3.34e-06 0 5.81e+03 5.81e+03 expHall Transportation + 2 1.75e+03 -1e+04 5.04e+03 3.34e-06 0 5.55e+03 1.14e+04 world Transportation + 3 2.31e+03 -1.5e+04 7.39e+03 3.34e-06 0 5.55e+03 1.69e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 33.6 30.6 19.5 0.298 0 0 0.232 Tank initStep + 5 33.6 30.6 19.5 0.285 0.0129 0.0499 0.281 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 88, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.6 30.6 19.5 2.4e-06 0 0 0 Tank initStep + 1 2.91e+03 2.04e+03 5e+03 2.4e-06 0 6.09e+03 6.09e+03 expHall Transportation + 2 2.91e+03 2.04e+03 5e+03 2.4e-06 0 0 6.09e+03 Tank Transportation + 3 5e+03 3.74e+03 2.39e+03 2.4e-06 0 3.75e+03 9.85e+03 expHall Transportation + 4 5e+03 3.74e+03 2.39e+03 2.4e-06 0 0 9.85e+03 Tank Transportation + 5 3.3e+03 5e+03 -276 2.4e-06 0 3.4e+03 1.32e+04 expHall Transportation + 6 3.3e+03 5e+03 -276 2.4e-06 0 0 1.32e+04 Tank Transportation + 7 -2.29e+03 -475 -5e+03 2.4e-06 0 9.14e+03 2.24e+04 expHall Transportation + 8 -2.29e+03 -475 -5e+03 2.4e-06 0 0 2.24e+04 Tank Transportation + 9 -3.41e+03 -2.39e+03 -4.11e+03 2.4e-06 2.4e-06 2.39e+03 2.48e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 33.6 30.6 19.5 0.285 0 0 0.281 Tank initStep + 6 33.6 30.6 19.5 0.276 0.0098 0.0458 0.327 Tank Cerenkov + 7 33.5 30.7 19.5 0.268 0.00791 0.0428 0.37 Tank Cerenkov + 8 33.5 30.7 19.5 0.259 0.00838 0.0405 0.41 Tank Cerenkov + 9 33.5 30.7 19.5 0.25 0.0095 0.038 0.448 Tank Cerenkov + 10 33.5 30.7 19.5 0.245 0.00484 0.0286 0.477 Tank Cerenkov + 11 33.5 30.7 19.5 0.244 0.00128 0.00975 0.487 Tank Cerenkov + 12 33.5 30.7 19.5 0.243 0.000678 0.00479 0.492 Tank Cerenkov + 13 33.5 30.7 19.5 0.243 8.57e-05 0.00217 0.494 Tank Cerenkov + 14 33.5 30.7 19.5 0.243 9.86e-05 0.00183 0.496 Tank Cerenkov + 15 33.5 30.7 19.5 0.243 0.000241 0.00145 0.497 Tank Cerenkov + 16 33.5 30.7 19.5 0.242 9.79e-05 0.000521 0.498 Tank Cerenkov + 17 33.5 30.8 19.5 0.242 0.000642 0.000143 0.498 Tank Cerenkov + 18 33.4 30.9 19.5 0.21 0.0321 0.136 0.633 Tank eIoni + 19 33.3 30.9 19.4 0.184 0.0257 0.112 0.745 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 92, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.4 30.9 19.4 3.99e-06 0 0 0 Tank initStep + 1 -39.1 100 164 3.99e-06 3.99e-06 176 176 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 91, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.4 30.9 19.4 3.48e-06 0 0 0 Tank initStep + 1 -1.25e+03 5e+03 -3.51e+03 3.48e-06 0 6.23e+03 6.23e+03 expHall Transportation + 2 -1.25e+03 5e+03 -3.51e+03 3.48e-06 0 0 6.23e+03 Tank Transportation + 3 -2.97e+03 4.59e+03 -5e+03 3.48e-06 0 2.31e+03 8.54e+03 expHall Transportation + 4 -2.97e+03 4.59e+03 -5e+03 3.48e-06 0 0 8.54e+03 Tank Transportation + 5 -5e+03 4.53e+03 -3.35e+03 3.48e-06 0 2.62e+03 1.12e+04 expHall Transportation + 6 -5e+03 4.53e+03 -3.35e+03 3.48e-06 0 0 1.12e+04 Tank Transportation + 7 -2.66e+03 5e+03 -1.73e+03 3.48e-06 0 2.89e+03 1.4e+04 expHall Transportation + 8 -2.66e+03 5e+03 -1.73e+03 3.48e-06 0 0 1.4e+04 Tank Transportation + 9 1.32e+03 4.19e+03 1e+03 3.48e-06 3.48e-06 4.89e+03 1.89e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 90, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.4 30.9 19.5 3.33e-06 0 0 0 Tank initStep + 1 -1.35e+03 -2.83e+03 5e+03 3.33e-06 0 5.91e+03 5.91e+03 expHall Transportation + 2 -1.35e+03 -2.83e+03 5e+03 3.33e-06 0 0 5.91e+03 Tank Transportation + 3 -544 -5e+03 3.57e+03 3.33e-06 0 2.72e+03 8.63e+03 expHall Transportation + 4 -544 -5e+03 3.57e+03 3.33e-06 0 0 8.63e+03 Tank Transportation + 5 1.04e+03 489 -5e+03 3.33e-06 0 1.03e+04 1.89e+04 expHall Transportation + 6 1.4e+03 5.15e+03 -1e+04 3.33e-06 0 6.85e+03 2.58e+04 world Transportation + 7 1.76e+03 9.81e+03 -1.5e+04 3.33e-06 0 6.85e+03 3.26e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 89, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.4 30.9 19.4 2.32e-06 0 0 0 Tank initStep + 1 -566 5e+03 1.71e+03 2.32e-06 0 5.28e+03 5.28e+03 expHall Transportation + 2 -1.21e+03 1e+04 5.99e+03 2.32e-06 0 6.61e+03 1.19e+04 world Transportation + 3 -1.86e+03 1.5e+04 1.03e+04 2.32e-06 0 6.61e+03 1.85e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 19 33.3 30.9 19.4 0.184 0 0 0.745 Tank initStep + 20 33.3 30.9 19.4 0.178 0.0063 0.0311 0.776 Tank msc + 21 33.3 30.8 19.4 0.152 0.0255 0.0893 0.865 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 93, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.3 30.8 19.4 3.67e-06 0 0 0 Tank initStep + 1 5e+03 -2.61e+03 -3.23e+03 3.67e-06 0 6.5e+03 6.5e+03 expHall Transportation + 2 5e+03 -2.61e+03 -3.23e+03 3.67e-06 0 0 6.5e+03 Tank Transportation + 3 3.26e+03 -5e+03 -5e+03 3.67e-06 0 3.44e+03 9.94e+03 expHall Transportation + 4 3.26e+03 -5e+03 -5e+03 3.67e-06 0 0 9.94e+03 Tank Transportation + 5 3.26e+03 -5e+03 -5e+03 3.67e-06 0 5.64 9.94e+03 expHall Transportation + 6 3.26e+03 -5e+03 -5e+03 3.67e-06 0 0 9.94e+03 Tank Transportation + 7 -2.59e+03 548 -338 3.67e-06 3.67e-06 9.31e+03 1.93e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 21 33.3 30.8 19.4 0.152 0 0 0.865 Tank initStep + 22 33.3 30.8 19.4 0.112 0.0401 0.0228 0.888 Tank msc + 23 33.3 30.8 19.3 0.0959 0.0162 0.0498 0.938 Tank eIoni + 24 33.3 30.8 19.3 0.078 0.0179 0.0417 0.98 Tank eIoni + 25 33.2 30.8 19.3 0.0636 0.0144 0.0336 1.01 Tank eIoni + 26 33.2 30.8 19.3 0.0511 0.0125 0.0278 1.04 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 95, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.2 30.8 19.3 3.69e-06 0 0 0 Tank initStep + 1 -1.81e+03 5e+03 4.13e+03 3.69e-06 0 6.71e+03 6.71e+03 expHall Transportation + 2 -3.78e+03 7.4e+03 1e+04 3.69e-06 0 6.64e+03 1.33e+04 world Transportation + 3 -5.46e+03 9.45e+03 1.5e+04 3.69e-06 0 5.66e+03 1.9e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 94, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.2 30.8 19.3 2.92e-06 0 0 0 Tank initStep + 1 -5e+03 -1.17e+03 -2.69e+03 2.92e-06 0 5.84e+03 5.84e+03 expHall Transportation + 2 -1e+04 -4e+03 -7.68e+03 2.92e-06 0 7.6e+03 1.34e+04 world Transportation + 3 -1.5e+04 -6.83e+03 -1.27e+04 2.92e-06 0 7.6e+03 2.11e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 26 33.2 30.8 19.3 0.0511 0 0 1.04 Tank initStep + 27 33.2 30.8 19.3 0.0496 0.00148 0.00354 1.04 Tank msc + 28 33.2 30.8 19.3 0.0301 0.0195 0.0225 1.07 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 96, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.2 30.8 19.3 2.47e-06 0 0 0 Tank initStep + 1 2.69e+03 2.57e+03 5e+03 2.47e-06 0 6.19e+03 6.19e+03 expHall Transportation + 2 2.69e+03 2.57e+03 5e+03 2.47e-06 0 0 6.19e+03 Tank Transportation + 3 5e+03 2.9e+03 2.1e+03 2.47e-06 0 3.72e+03 9.91e+03 expHall Transportation + 4 8.27e+03 723 -1e+04 2.47e-06 0 1.27e+04 2.26e+04 world Transportation + 5 9.62e+03 -177 -1.5e+04 2.47e-06 0 5.26e+03 2.79e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 31 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 28 33.2 30.8 19.3 0.0301 0 0 1.07 Tank initStep + 29 33.2 30.8 19.3 0.0286 0.00155 0.0014 1.07 Tank msc + 30 33.2 30.8 19.3 0.00534 0.0233 0.0142 1.08 Tank eIoni + 31 33.2 30.8 19.3 0 0.00534 0.000827 1.08 Tank eIoni + 32 33.2 30.8 19.3 0 0 0 1.08 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 97, Parent ID = 67 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 33.2 30.8 19.3 2.27e-06 0 0 0 Tank initStep + 1 5e+03 2.46e+03 438 2.27e-06 0 5.54e+03 5.54e+03 expHall Transportation + 2 5e+03 2.46e+03 438 2.27e-06 0 0 5.54e+03 Tank Transportation + 3 1.83e+03 4.03e+03 5e+03 2.27e-06 0 5.77e+03 1.13e+04 expHall Transportation + 4 1.83e+03 4.03e+03 5e+03 2.27e-06 0 0 1.13e+04 Tank Transportation + 5 -2.11e+03 5e+03 2.32e+03 2.27e-06 0 4.86e+03 1.62e+04 expHall Transportation + 6 -2.11e+03 5e+03 2.32e+03 2.27e-06 0 0 1.62e+04 Tank Transportation + 7 -5e+03 -1e+03 -1.17e+03 2.27e-06 0 7.52e+03 2.37e+04 expHall Transportation + 8 -5e+03 -1e+03 -1.17e+03 2.27e-06 0 0 2.37e+04 Tank Transportation + 9 -3e+03 -5e+03 -4.38e+03 2.27e-06 0 5.5e+03 2.92e+04 expHall Transportation + 10 -3e+03 -5e+03 -4.38e+03 2.27e-06 0 0 2.92e+04 Tank Transportation + 11 -3.06e+03 -4.66e+03 -5e+03 2.27e-06 0 713 2.99e+04 expHall Transportation + 12 -3.06e+03 -4.66e+03 -5e+03 2.27e-06 0 0 2.99e+04 Tank Transportation + 13 -4.45e+03 -1.94e+03 -2.71e+03 2.27e-06 2.27e-06 3.82e+03 3.37e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.935 0.0463 -0.456 3.77e-06 0 0 0 Tank initStep + 1 2.38e+03 -2.45e+03 5e+03 3.77e-06 0 6.06e+03 6.06e+03 expHall Transportation + 2 7.96e+03 -1e+04 7.74e+03 3.77e-06 0 9.77e+03 1.58e+04 world Transportation + 3 1.17e+04 -1.5e+04 9.55e+03 3.77e-06 0 6.48e+03 2.23e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.935 0.0463 -0.456 3.57e-06 0 0 0 Tank initStep + 1 795 3.25e+03 -5e+03 3.57e-06 0 6.02e+03 6.02e+03 expHall Transportation + 2 795 3.25e+03 -5e+03 3.57e-06 0 0 6.02e+03 Tank Transportation + 3 676 5e+03 -3.63e+03 3.57e-06 0 2.22e+03 8.24e+03 expHall Transportation + 4 676 5e+03 -3.63e+03 3.57e-06 0 0 8.24e+03 Tank Transportation + 5 933 -5e+03 4.59e+03 3.57e-06 0 1.29e+04 2.12e+04 expHall Transportation + 6 933 -5e+03 4.59e+03 3.57e-06 0 0 2.12e+04 Tank Transportation + 7 935 -4.86e+03 5e+03 3.57e-06 0 431 2.16e+04 expHall Transportation + 8 935 -4.86e+03 5e+03 3.57e-06 0 0 2.16e+04 Tank Transportation + 9 1.04e+03 -5e+03 4.92e+03 3.57e-06 0 190 2.18e+04 expHall Transportation + 10 1.04e+03 -5e+03 4.92e+03 3.57e-06 0 0 2.18e+04 Tank Transportation + 11 5e+03 -4.71e+03 1.87e+03 3.57e-06 0 5.01e+03 2.68e+04 expHall Transportation + 12 1e+04 -2.99e+03 -3.31e+03 3.57e-06 0 7.4e+03 3.42e+04 world Transportation + 13 1.5e+04 -1.27e+03 -8.5e+03 3.57e-06 0 7.4e+03 4.16e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0 0 0 0.5 0 0 0 Tank initStep + 1 0.11 -0.0339 -0.0695 0.477 0.023 0.139 0.139 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0598 -0.0183 -0.0376 2.21e-06 0 0 0 Tank initStep + 1 5e+03 1.11e+03 3.37e+03 2.21e-06 0 6.13e+03 6.13e+03 expHall Transportation + 2 5e+03 1.11e+03 3.37e+03 2.21e-06 0 0 6.13e+03 Tank Transportation + 3 3.47e+03 1.26e+03 5e+03 2.21e-06 0 2.25e+03 8.38e+03 expHall Transportation + 4 -8.56e+03 1.07e+03 1e+04 2.21e-06 0 1.3e+04 2.14e+04 world Transportation + 5 -1.5e+04 969 1.27e+04 2.21e-06 0 6.97e+03 2.84e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0121 -0.00372 -0.00763 4.03e-06 0 0 0 Tank initStep + 1 50.2 -28.1 495 4.03e-06 4.03e-06 498 498 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.106 -0.0326 -0.067 3.94e-06 0 0 0 Tank initStep + 1 5e+03 487 -716 3.94e-06 0 5.07e+03 5.07e+03 expHall Transportation + 2 5e+03 487 -716 3.94e-06 0 0 5.07e+03 Tank Transportation + 3 4.71e+03 -5e+03 -4.76e+03 3.94e-06 0 6.82e+03 1.19e+04 expHall Transportation + 4 3.92e+03 -8.66e+03 -1e+04 3.94e-06 0 6.44e+03 1.83e+04 world Transportation + 5 3.17e+03 -1.22e+04 -1.5e+04 3.94e-06 0 6.15e+03 2.45e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0647 -0.0198 -0.0407 2.63e-06 0 0 0 Tank initStep + 1 4.11e+03 -5e+03 -2.85e+03 2.63e-06 0 7.07e+03 7.07e+03 expHall Transportation + 2 4.11e+03 -5e+03 -2.85e+03 2.63e-06 0 0 7.07e+03 Tank Transportation + 3 5e+03 -3.39e+03 -3.15e+03 2.63e-06 0 1.86e+03 8.94e+03 expHall Transportation + 4 5e+03 -3.39e+03 -3.15e+03 2.63e-06 0 0 8.94e+03 Tank Transportation + 5 526 2.45e+03 -5e+03 2.63e-06 0 7.59e+03 1.65e+04 expHall Transportation + 6 526 2.45e+03 -5e+03 2.63e-06 0 0 1.65e+04 Tank Transportation + 7 -3.15e+03 5e+03 -1.64e+03 2.63e-06 0 5.59e+03 2.21e+04 expHall Transportation + 8 -3.15e+03 5e+03 -1.64e+03 2.63e-06 0 0 2.21e+04 Tank Transportation + 9 -5e+03 2.95e+03 -646 2.63e-06 0 2.93e+03 2.5e+04 expHall Transportation + 10 -5e+03 2.95e+03 -646 2.63e-06 0 0 2.5e+04 Tank Transportation + 11 5e+03 365 2.97e+03 2.63e-06 0 1.09e+04 3.6e+04 expHall Transportation + 12 9.99e+03 -4.32e+03 1e+04 2.63e-06 0 9.81e+03 4.58e+04 world Transportation + 13 1.35e+04 -7.66e+03 1.5e+04 2.63e-06 0 6.98e+03 5.28e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0556 -0.0171 -0.035 2.74e-06 0 0 0 Tank initStep + 1 4.8e+03 -5e+03 -1.96e+03 2.74e-06 0 7.2e+03 7.2e+03 expHall Transportation + 2 4.8e+03 -5e+03 -1.96e+03 2.74e-06 0 0 7.2e+03 Tank Transportation + 3 5e+03 -4.73e+03 -2.17e+03 2.74e-06 0 395 7.6e+03 expHall Transportation + 4 5e+03 -4.73e+03 -2.17e+03 2.74e-06 0 0 7.6e+03 Tank Transportation + 5 -3.1e+03 3.49e+03 -5e+03 2.74e-06 0 1.19e+04 1.95e+04 expHall Transportation + 6 -3.1e+03 3.49e+03 -5e+03 2.74e-06 0 0 1.95e+04 Tank Transportation + 7 -3.44e+03 3.8e+03 -4.92e+03 2.74e-06 2.74e-06 467 1.99e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0176 -0.0054 -0.0111 4.04e-06 0 0 0 Tank initStep + 1 1.57e+03 -1.85e+03 -2.98e+03 4.04e-06 4.04e-06 3.84e+03 3.84e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0662 -0.0203 -0.0417 3.13e-06 0 0 0 Tank initStep + 1 5e+03 -2.45e+03 -137 3.13e-06 0 5.57e+03 5.57e+03 expHall Transportation + 2 5e+03 -2.45e+03 -137 3.13e-06 0 0 5.57e+03 Tank Transportation + 3 3.07e+03 -5e+03 -3.33e+03 3.13e-06 0 4.52e+03 1.01e+04 expHall Transportation + 4 3.07e+03 -5e+03 -3.33e+03 3.13e-06 0 0 1.01e+04 Tank Transportation + 5 2.9e+03 -3.96e+03 -5e+03 3.13e-06 0 1.98e+03 1.21e+04 expHall Transportation + 6 923 2.87e+03 -1e+04 3.13e-06 0 8.69e+03 2.08e+04 world Transportation + 7 -1.05e+03 9.7e+03 -1.5e+04 3.13e-06 0 8.69e+03 2.95e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 0.11 -0.0339 -0.0695 0.477 0 0 0.139 Tank initStep + 2 0.213 -0.0942 -0.102 0.451 0.0264 0.127 0.266 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.166 -0.0669 -0.0875 3.4e-06 0 0 0 Tank initStep + 1 -5e+03 -3.89e+03 -1.74e+03 3.4e-06 0 6.57e+03 6.57e+03 expHall Transportation + 2 -5e+03 -3.89e+03 -1.74e+03 3.4e-06 0 0 6.57e+03 Tank Transportation + 3 -4.39e+03 -5e+03 -2.09e+03 3.4e-06 0 1.31e+03 7.88e+03 expHall Transportation + 4 1.02e+03 -1e+04 -5.75e+03 3.4e-06 0 8.23e+03 1.61e+04 world Transportation + 5 6.43e+03 -1.5e+04 -9.42e+03 3.4e-06 0 8.23e+03 2.43e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.206 -0.09 -0.1 3.93e-06 0 0 0 Tank initStep + 1 -1.74e+03 1.51e+03 5e+03 3.93e-06 0 5.51e+03 5.51e+03 expHall Transportation + 2 -5.69e+03 4.57e+03 1e+04 3.93e-06 0 7.06e+03 1.26e+04 world Transportation + 3 -9.63e+03 7.62e+03 1.5e+04 3.93e-06 0 7.06e+03 1.96e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.191 -0.0813 -0.0954 3.03e-06 0 0 0 Tank initStep + 1 1.37e+03 5e+03 -230 3.03e-06 0 5.19e+03 5.19e+03 expHall Transportation + 2 1.37e+03 5e+03 -230 3.03e-06 0 0 5.19e+03 Tank Transportation + 3 4.3e+03 3.45e+03 -5e+03 3.03e-06 0 5.81e+03 1.1e+04 expHall Transportation + 4 1e+04 1.69e+03 -7.52e+03 3.03e-06 0 6.48e+03 1.75e+04 world Transportation + 5 1.5e+04 147 -9.73e+03 3.03e-06 0 5.68e+03 2.32e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.169 -0.0684 -0.0883 3.14e-06 0 0 0 Tank initStep + 1 3.66e+03 -5e+03 393 3.14e-06 0 6.21e+03 6.21e+03 expHall Transportation + 2 1e+04 -6.62e+03 788 3.14e-06 0 6.56e+03 1.28e+04 world Transportation + 3 1.5e+04 -7.9e+03 1.1e+03 3.14e-06 0 5.17e+03 1.79e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.143 -0.0529 -0.0799 2.2e-06 0 0 0 Tank initStep + 1 4.25e+03 -2.74e+03 -5e+03 2.2e-06 0 7.11e+03 7.11e+03 expHall Transportation + 2 4.25e+03 -2.74e+03 -5e+03 2.2e-06 0 0 7.11e+03 Tank Transportation + 3 5e+03 -2.33e+03 -4.24e+03 2.2e-06 0 1.14e+03 8.25e+03 expHall Transportation + 4 5e+03 -2.33e+03 -4.24e+03 2.2e-06 0 0 8.25e+03 Tank Transportation + 5 -567 948 -263 2.2e-06 2.2e-06 7.59e+03 1.58e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.152 -0.0584 -0.0829 3.12e-06 0 0 0 Tank initStep + 1 3.5e+03 -5e+03 227 3.12e-06 0 6.11e+03 6.11e+03 expHall Transportation + 2 1e+04 -6.82e+03 656 3.12e-06 0 6.76e+03 1.29e+04 world Transportation + 3 1.5e+04 -8.22e+03 987 3.12e-06 0 5.2e+03 1.81e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.195 -0.084 -0.0969 2.15e-06 0 0 0 Tank initStep + 1 3.13e+03 -5e+03 -447 2.15e-06 0 5.91e+03 5.91e+03 expHall Transportation + 2 1e+04 -7e+03 290 2.15e-06 0 7.19e+03 1.31e+04 world Transportation + 3 1.5e+04 -8.45e+03 826 2.15e-06 0 5.23e+03 1.83e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 0.213 -0.0942 -0.102 0.451 0 0 0.266 Tank initStep + 3 0.301 -0.153 -0.138 0.431 0.0192 0.113 0.38 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.25 -0.119 -0.117 3.42e-06 0 0 0 Tank initStep + 1 5e+03 -867 1.4e+03 3.42e-06 0 5.26e+03 5.26e+03 expHall Transportation + 2 1e+04 -2.63e+03 3.57e+03 3.42e-06 0 5.73e+03 1.1e+04 world Transportation + 3 1.5e+04 -4.4e+03 5.75e+03 3.42e-06 0 5.73e+03 1.67e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.291 -0.147 -0.134 2.36e-06 0 0 0 Tank initStep + 1 244 -133 -295 2.36e-06 2.36e-06 405 405 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.221 -0.0998 -0.106 3.74e-06 0 0 0 Tank initStep + 1 2.5e+03 -5e+03 -1.23e+03 3.74e-06 0 5.72e+03 5.72e+03 expHall Transportation + 2 2.5e+03 -5e+03 -1.23e+03 3.74e-06 0 0 5.72e+03 Tank Transportation + 3 434 -3.81e+03 -330 3.74e-06 3.74e-06 2.55e+03 8.27e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 3 0.301 -0.153 -0.138 0.431 0 0 0.38 Tank initStep + 4 0.371 -0.222 -0.173 0.418 0.0137 0.104 0.483 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.342 -0.193 -0.159 2.21e-06 0 0 0 Tank initStep + 1 1.27e+03 -1.99e+03 187 2.21e-06 2.21e-06 2.37e+03 2.37e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.31 -0.162 -0.143 3.64e-06 0 0 0 Tank initStep + 1 5e+03 -3.54e+03 785 3.64e-06 0 6.18e+03 6.18e+03 expHall Transportation + 2 1e+04 -6.51e+03 -675 3.64e-06 0 6e+03 1.22e+04 world Transportation + 3 1.5e+04 -9.48e+03 -2.14e+03 3.64e-06 0 6e+03 1.82e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.328 -0.179 -0.152 3.69e-06 0 0 0 Tank initStep + 1 5e+03 -1.24e+03 -2.33e+03 3.69e-06 0 5.65e+03 5.65e+03 expHall Transportation + 2 5e+03 -1.24e+03 -2.33e+03 3.69e-06 0 0 5.65e+03 Tank Transportation + 3 3.18e+03 -1.99e+03 -5e+03 3.69e-06 0 3.32e+03 8.97e+03 expHall Transportation + 4 3.18e+03 -1.99e+03 -5e+03 3.69e-06 0 0 8.97e+03 Tank Transportation + 5 278 -2.91e+03 -3.12e+03 3.69e-06 0 3.57e+03 1.25e+04 Tank OpRayleigh + 6 1.99e+03 -5e+03 -2.2e+03 3.69e-06 0 2.86e+03 1.54e+04 expHall Transportation + 7 1e+04 -8.79e+03 1.75e+03 3.69e-06 0 9.7e+03 2.51e+04 world Transportation + 8 1.5e+04 -1.11e+04 4.21e+03 3.69e-06 0 6.06e+03 3.12e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.362 -0.213 -0.169 3.14e-06 0 0 0 Tank initStep + 1 5e+03 -2.77e+03 412 3.14e-06 0 5.73e+03 5.73e+03 expHall Transportation + 2 5e+03 -2.77e+03 412 3.14e-06 0 0 5.73e+03 Tank Transportation + 3 3e+03 -5e+03 -551 3.14e-06 0 3.14e+03 8.88e+03 expHall Transportation + 4 3e+03 -5e+03 -551 3.14e-06 0 0 8.88e+03 Tank Transportation + 5 2.49e+03 -3.85e+03 -1.99e+03 3.14e-06 3.14e-06 1.91e+03 1.08e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 4 0.371 -0.222 -0.173 0.418 0 0 0.483 Tank initStep + 5 0.444 -0.272 -0.211 0.405 0.0128 0.0972 0.581 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.376 -0.225 -0.176 3.08e-06 0 0 0 Tank initStep + 1 3.11e+03 -2.85e+03 -5e+03 3.08e-06 0 6.54e+03 6.54e+03 expHall Transportation + 2 3.11e+03 -2.85e+03 -5e+03 3.08e-06 0 0 6.54e+03 Tank Transportation + 3 893 -5e+03 -3.83e+03 3.08e-06 0 3.31e+03 9.85e+03 expHall Transportation + 4 893 -5e+03 -3.83e+03 3.08e-06 0 0 9.85e+03 Tank Transportation + 5 -4.82e+03 5e+03 -1.06e+03 3.08e-06 0 1.18e+04 2.17e+04 expHall Transportation + 6 -4.82e+03 5e+03 -1.06e+03 3.08e-06 0 0 2.17e+04 Tank Transportation + 7 -5e+03 4.05e+03 -912 3.08e-06 0 976 2.27e+04 expHall Transportation + 8 -5e+03 4.05e+03 -912 3.08e-06 0 0 2.27e+04 Tank Transportation + 9 1.4e+03 -5e+03 798 3.08e-06 0 1.12e+04 3.39e+04 expHall Transportation + 10 1.4e+03 -5e+03 798 3.08e-06 0 0 3.39e+04 Tank Transportation + 11 5e+03 -876 1.88e+03 3.08e-06 0 5.58e+03 3.95e+04 expHall Transportation + 12 7.95e+03 1e+04 4.43e+03 3.08e-06 0 1.16e+04 5.1e+04 world Transportation + 13 9.3e+03 1.5e+04 5.6e+03 3.08e-06 0 5.31e+03 5.63e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.406 -0.245 -0.191 3.2e-06 0 0 0 Tank initStep + 1 5e+03 -4.14e+03 477 3.2e-06 0 6.51e+03 6.51e+03 expHall Transportation + 2 5e+03 -4.14e+03 477 3.2e-06 0 0 6.51e+03 Tank Transportation + 3 3.81e+03 -5e+03 496 3.2e-06 0 1.46e+03 7.97e+03 expHall Transportation + 4 3.81e+03 -5e+03 496 3.2e-06 0 0 7.97e+03 Tank Transportation + 5 -1.95e+03 -3.25e+03 5e+03 3.2e-06 0 7.52e+03 1.55e+04 expHall Transportation + 6 -1.95e+03 -3.25e+03 5e+03 3.2e-06 0 0 1.55e+04 Tank Transportation + 7 -5e+03 -1.74e+03 1.62e+03 3.2e-06 0 4.79e+03 2.03e+04 expHall Transportation + 8 -5e+03 -1.74e+03 1.62e+03 3.2e-06 0 0 2.03e+04 Tank Transportation + 9 -4.21 -927 -5e+03 3.2e-06 0 8.33e+03 2.86e+04 expHall Transportation + 10 -4.21 -927 -5e+03 3.2e-06 0 0 2.86e+04 Tank Transportation + 11 5e+03 2.45e+03 140 3.2e-06 0 7.93e+03 3.66e+04 expHall Transportation + 12 5e+03 2.45e+03 140 3.2e-06 0 0 3.66e+04 Tank Transportation + 13 1.04e+03 3.23e+03 5e+03 3.2e-06 0 6.31e+03 4.29e+04 expHall Transportation + 14 1.04e+03 3.23e+03 5e+03 3.2e-06 0 0 4.29e+04 Tank Transportation + 15 -1.91e+03 5e+03 1.32e+03 3.2e-06 0 5.04e+03 4.79e+04 expHall Transportation + 16 -1.91e+03 5e+03 1.32e+03 3.2e-06 0 0 4.79e+04 Tank Transportation + 17 -5e+03 2.83e+03 -1.49e+03 3.2e-06 0 4.71e+03 5.26e+04 expHall Transportation + 18 -5e+03 2.83e+03 -1.49e+03 3.2e-06 0 0 5.26e+04 Tank Transportation + 19 191 2.75e+03 -5e+03 3.2e-06 0 6.27e+03 5.89e+04 expHall Transportation + 20 1e+04 3.21e+03 -6.19e+03 3.2e-06 0 9.89e+03 6.88e+04 world Transportation + 21 1.5e+04 3.45e+03 -6.8e+03 3.2e-06 0 5.04e+03 7.38e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.397 -0.239 -0.187 2.42e-06 0 0 0 Tank initStep + 1 905 -287 -27.8 2.42e-06 2.42e-06 949 949 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.388 -0.233 -0.182 2.81e-06 0 0 0 Tank initStep + 1 2.38e+03 -5e+03 -2.49e+03 2.81e-06 0 6.07e+03 6.07e+03 expHall Transportation + 2 2.38e+03 -5e+03 -2.49e+03 2.81e-06 0 0 6.07e+03 Tank Transportation + 3 5e+03 -3.19e+03 -3.88e+03 2.81e-06 0 3.48e+03 9.55e+03 expHall Transportation + 4 5e+03 -3.19e+03 -3.88e+03 2.81e-06 0 0 9.55e+03 Tank Transportation + 5 -1.64e+03 487 -5e+03 2.81e-06 0 7.67e+03 1.72e+04 expHall Transportation + 6 -1.64e+03 487 -5e+03 2.81e-06 0 0 1.72e+04 Tank Transportation + 7 -5e+03 2.99e+03 -3.73e+03 2.81e-06 0 4.38e+03 2.16e+04 expHall Transportation + 8 -5e+03 2.99e+03 -3.73e+03 2.81e-06 0 0 2.16e+04 Tank Transportation + 9 530 3.39e+03 -2.32e+03 2.81e-06 2.81e-06 5.72e+03 2.73e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 5 0.444 -0.272 -0.211 0.405 0 0 0.581 Tank initStep + 6 0.503 -0.34 -0.207 0.389 0.0157 0.0913 0.672 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.445 -0.273 -0.211 2.63e-06 0 0 0 Tank initStep + 1 5e+03 -3.86e+03 3.21e+03 2.63e-06 0 7.08e+03 7.08e+03 expHall Transportation + 2 5e+03 -3.86e+03 3.21e+03 2.63e-06 0 0 7.08e+03 Tank Transportation + 3 3.92e+03 -5e+03 4.57e+03 2.63e-06 0 2.08e+03 9.16e+03 expHall Transportation + 4 3.92e+03 -5e+03 4.57e+03 2.63e-06 0 0 9.16e+03 Tank Transportation + 5 3.69e+03 -4.47e+03 5e+03 2.63e-06 0 717 9.88e+03 expHall Transportation + 6 3.69e+03 -4.47e+03 5e+03 2.63e-06 0 0 9.88e+03 Tank Transportation + 7 -567 4.11e+03 -5e+03 2.63e-06 0 1.38e+04 2.37e+04 expHall Transportation + 8 -567 4.11e+03 -5e+03 2.63e-06 0 0 2.37e+04 Tank Transportation + 9 -1.58e+03 5e+03 -3.88e+03 2.63e-06 0 1.75e+03 2.55e+04 expHall Transportation + 10 -1.58e+03 5e+03 -3.88e+03 2.63e-06 0 0 2.55e+04 Tank Transportation + 11 -1.62e+03 4.94e+03 -3.81e+03 2.63e-06 2.63e-06 101 2.56e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.479 -0.312 -0.209 3.23e-06 0 0 0 Tank initStep + 1 5e+03 -2.96e+03 2.46e+03 3.23e-06 0 6.31e+03 6.31e+03 expHall Transportation + 2 5e+03 -2.96e+03 2.46e+03 3.23e-06 0 0 6.31e+03 Tank Transportation + 3 4.17e+03 -5e+03 3.8e+03 3.23e-06 0 2.58e+03 8.89e+03 expHall Transportation + 4 4.17e+03 -5e+03 3.8e+03 3.23e-06 0 0 8.89e+03 Tank Transportation + 5 4.18e+03 -3.67e+03 5e+03 3.23e-06 0 1.79e+03 1.07e+04 expHall Transportation + 6 4.18e+03 -3.67e+03 5e+03 3.23e-06 0 0 1.07e+04 Tank Transportation + 7 3.64e+03 856 -5e+03 3.23e-06 0 1.1e+04 2.17e+04 expHall Transportation + 8 3.64e+03 856 -5e+03 3.23e-06 0 0 2.17e+04 Tank Transportation + 9 3.8e+03 5e+03 -1.61e+03 3.23e-06 0 5.35e+03 2.7e+04 expHall Transportation + 10 5.47e+03 1e+04 5.03e+03 3.23e-06 0 8.48e+03 3.55e+04 world Transportation + 11 7.15e+03 1.5e+04 1.17e+04 3.23e-06 0 8.48e+03 4.4e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 6 0.503 -0.34 -0.207 0.389 0 0 0.672 Tank initStep + 7 0.56 -0.397 -0.184 0.379 0.0105 0.0844 0.756 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.548 -0.385 -0.189 3.05e-06 0 0 0 Tank initStep + 1 5e+03 -2.64e+03 -345 3.05e-06 0 5.66e+03 5.66e+03 expHall Transportation + 2 5e+03 -2.64e+03 -345 3.05e-06 0 0 5.66e+03 Tank Transportation + 3 -45.4 -537 -5e+03 3.05e-06 0 7.18e+03 1.28e+04 expHall Transportation + 4 -45.4 -537 -5e+03 3.05e-06 0 0 1.28e+04 Tank Transportation + 5 -5e+03 -1.36e+03 -67.4 3.05e-06 0 7.04e+03 1.99e+04 expHall Transportation + 6 -8.9e+03 -2.06e+03 1e+04 3.05e-06 0 1.08e+04 3.07e+04 world Transportation + 7 -1.08e+04 -2.41e+03 1.5e+04 3.05e-06 0 5.37e+03 3.61e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.543 -0.38 -0.19 4e-06 0 0 0 Tank initStep + 1 5e+03 -1.69e+03 961 4e-06 0 5.36e+03 5.36e+03 expHall Transportation + 2 1e+04 -4.37e+03 2.45e+03 4e-06 0 5.87e+03 1.12e+04 world Transportation + 3 1.5e+04 -7.05e+03 3.94e+03 4e-06 0 5.87e+03 1.71e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 7 0.56 -0.397 -0.184 0.379 0 0 0.756 Tank initStep + 8 0.613 -0.453 -0.165 0.362 0.0167 0.0799 0.836 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.576 -0.414 -0.178 3.7e-06 0 0 0 Tank initStep + 1 1.73e+03 -5e+03 496 3.7e-06 0 5.31e+03 5.31e+03 expHall Transportation + 2 2.92e+03 -1e+04 -473 3.7e-06 0 5.23e+03 1.05e+04 world Transportation + 3 4.12e+03 -1.5e+04 -1.44e+03 3.7e-06 0 5.23e+03 1.58e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 8 0.613 -0.453 -0.165 0.362 0 0 0.836 Tank initStep + 9 0.663 -0.501 -0.143 0.349 0.0127 0.073 0.909 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 33, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.636 -0.475 -0.155 3e-06 0 0 0 Tank initStep + 1 -5e+03 -702 -163 3e-06 0 5.05e+03 5.05e+03 expHall Transportation + 2 -1e+04 -1.66e+03 -1.4e+03 3e-06 0 5.24e+03 1.03e+04 world Transportation + 3 -1.5e+04 -2.61e+03 -2.63e+03 3e-06 0 5.24e+03 1.55e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.654 -0.492 -0.147 4.12e-06 0 0 0 Tank initStep + 1 3.54e+03 -5e+03 -463 4.12e-06 0 6.14e+03 6.14e+03 expHall Transportation + 2 1e+04 -7.93e+03 -398 4.12e-06 0 7.09e+03 1.32e+04 world Transportation + 3 1.5e+04 -1.02e+04 -347 4.12e-06 0 5.49e+03 1.87e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 9 0.663 -0.501 -0.143 0.349 0 0 0.909 Tank initStep + 10 0.711 -0.54 -0.114 0.334 0.0148 0.068 0.977 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 34, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.703 -0.534 -0.118 3.47e-06 0 0 0 Tank initStep + 1 -735 -5e+03 1.24e+03 3.47e-06 0 5.2e+03 5.2e+03 expHall Transportation + 2 1.64e+03 -1e+04 2.11e+03 3.47e-06 0 5.6e+03 1.08e+04 world Transportation + 3 4.02e+03 -1.5e+04 2.97e+03 3.47e-06 0 5.6e+03 1.64e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 10 0.711 -0.54 -0.114 0.334 0 0 0.977 Tank initStep + 11 0.754 -0.579 -0.0927 0.321 0.0133 0.0623 1.04 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 37, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.734 -0.562 -0.102 3.49e-06 0 0 0 Tank initStep + 1 3.78e+03 -4.44e+03 5e+03 3.49e-06 0 7.68e+03 7.68e+03 expHall Transportation + 2 3.78e+03 -4.44e+03 5e+03 3.49e-06 0 0 7.68e+03 Tank Transportation + 3 4.28e+03 -5e+03 4.9e+03 3.49e-06 0 762 8.44e+03 expHall Transportation + 4 4.28e+03 -5e+03 4.9e+03 3.49e-06 0 0 8.44e+03 Tank Transportation + 5 5e+03 -4.41e+03 4.89e+03 3.49e-06 0 933 9.37e+03 expHall Transportation + 6 9.82e+03 1e+04 7.45e+03 3.49e-06 0 1.54e+04 2.48e+04 world Transportation + 7 1.15e+04 1.5e+04 8.34e+03 3.49e-06 0 5.35e+03 3.01e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 36, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.743 -0.57 -0.0978 2.83e-06 0 0 0 Tank initStep + 1 5e+03 -1.84e+03 2.38e+03 2.83e-06 0 5.83e+03 5.83e+03 expHall Transportation + 2 5e+03 -1.84e+03 2.38e+03 2.83e-06 0 0 5.83e+03 Tank Transportation + 3 3.11e+03 -3.09e+03 5e+03 2.83e-06 0 3.46e+03 9.3e+03 expHall Transportation + 4 3.11e+03 -3.09e+03 5e+03 2.83e-06 0 0 9.3e+03 Tank Transportation + 5 1.63e+03 -5e+03 1.54e+03 2.83e-06 0 4.22e+03 1.35e+04 expHall Transportation + 6 1.63e+03 -5e+03 1.54e+03 2.83e-06 0 0 1.35e+04 Tank Transportation + 7 -612 -1.38e+03 -5e+03 2.83e-06 0 7.81e+03 2.13e+04 expHall Transportation + 8 -612 -1.38e+03 -5e+03 2.83e-06 0 0 2.13e+04 Tank Transportation + 9 -399 5e+03 1.33e+03 2.83e-06 0 8.99e+03 3.03e+04 expHall Transportation + 10 -399 5e+03 1.33e+03 2.83e-06 0 0 3.03e+04 Tank Transportation + 11 -1.94e+03 2.13e+03 5e+03 2.83e-06 0 4.9e+03 3.52e+04 expHall Transportation + 12 -3.53e+03 -5.16e+03 1e+04 2.83e-06 0 8.99e+03 4.42e+04 world Transportation + 13 -5.11e+03 -1.25e+04 1.5e+04 2.83e-06 0 8.99e+03 5.32e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 35, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.733 -0.56 -0.103 3.02e-06 0 0 0 Tank initStep + 1 2.67e+03 -5e+03 3.59e+03 3.02e-06 0 6.71e+03 6.71e+03 expHall Transportation + 2 9.3e+03 -8.91e+03 1e+04 3.02e-06 0 1e+04 1.67e+04 world Transportation + 3 1.45e+04 -1.2e+04 1.5e+04 3.02e-06 0 7.82e+03 2.45e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 11 0.754 -0.579 -0.0927 0.321 0 0 1.04 Tank initStep + 12 0.787 -0.619 -0.0685 0.306 0.0149 0.0575 1.1 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 38, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.781 -0.612 -0.0728 2.23e-06 0 0 0 Tank initStep + 1 2.08e+03 -5e+03 2.77e+03 2.23e-06 0 6.09e+03 6.09e+03 expHall Transportation + 2 2.08e+03 -5e+03 2.77e+03 2.23e-06 0 0 6.09e+03 Tank Transportation + 3 4.33e+03 5e+03 4.92e+03 2.23e-06 0 1.05e+04 1.66e+04 expHall Transportation + 4 4.33e+03 5e+03 4.92e+03 2.23e-06 0 0 1.66e+04 Tank Transportation + 5 4.26e+03 4.9e+03 5e+03 2.23e-06 0 145 1.67e+04 expHall Transportation + 6 4.26e+03 4.9e+03 5e+03 2.23e-06 0 0 1.67e+04 Tank Transportation + 7 3.17e+03 1.45e+03 -5e+03 2.23e-06 0 1.06e+04 2.73e+04 expHall Transportation + 8 -566 -157 -1e+04 2.23e-06 0 6.44e+03 3.38e+04 world Transportation + 9 -4.3e+03 -1.76e+03 -1.5e+04 2.23e-06 0 6.44e+03 4.02e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 12 0.787 -0.619 -0.0685 0.306 0 0 1.1 Tank initStep + 13 0.822 -0.645 -0.04 0.215 0.091 0.0523 1.15 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 41, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.812 -0.638 -0.0481 4.06e-06 0 0 0 Tank initStep + 1 5e+03 -2.89e+03 -2.03e+03 4.06e-06 0 6.12e+03 6.12e+03 expHall Transportation + 2 1e+04 -6.87e+03 -3.93e+03 4.06e-06 0 6.66e+03 1.28e+04 world Transportation + 3 1.5e+04 -1.08e+04 -5.82e+03 4.06e-06 0 6.66e+03 1.94e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 40, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.788 -0.62 -0.068 3.06e-06 0 0 0 Tank initStep + 1 2.9e+03 5e+03 -2.79e+03 3.06e-06 0 6.42e+03 6.42e+03 expHall Transportation + 2 2.9e+03 5e+03 -2.79e+03 3.06e-06 0 0 6.42e+03 Tank Transportation + 3 4.53e+03 4.27e+03 -5e+03 3.06e-06 0 2.84e+03 9.26e+03 expHall Transportation + 4 4.53e+03 4.27e+03 -5e+03 3.06e-06 0 0 9.26e+03 Tank Transportation + 5 5e+03 4.03e+03 -4.42e+03 3.06e-06 0 783 1e+04 expHall Transportation + 6 5e+03 4.03e+03 -4.42e+03 3.06e-06 0 0 1e+04 Tank Transportation + 7 -947 -3.06e+03 2.47e+03 3.06e-06 3.06e-06 1.15e+04 2.16e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 39, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.807 -0.634 -0.0525 3.57e-06 0 0 0 Tank initStep + 1 -4.44e+03 164 5e+03 3.57e-06 0 6.69e+03 6.69e+03 expHall Transportation + 2 -1e+04 -1.5e+03 6.39e+03 3.57e-06 0 5.97e+03 1.27e+04 world Transportation + 3 -1.5e+04 -3e+03 7.64e+03 3.57e-06 0 5.37e+03 1.8e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 13 0.822 -0.645 -0.04 0.215 0 0 1.15 Tank initStep + 14 0.846 -0.66 -0.0141 0.208 0.0073 0.0387 1.19 Tank msc + 15 0.89 -0.69 0.0643 0.175 0.0326 0.107 1.3 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 42, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.876 -0.68 0.0398 3.57e-06 0 0 0 Tank initStep + 1 -4.53e+03 2.2e+03 5e+03 3.57e-06 0 7.1e+03 7.1e+03 expHall Transportation + 2 -4.53e+03 2.2e+03 5e+03 3.57e-06 0 0 7.1e+03 Tank Transportation + 3 -5e+03 2.05e+03 3.77e+03 3.57e-06 0 1.32e+03 8.42e+03 expHall Transportation + 4 -5e+03 2.05e+03 3.77e+03 3.57e-06 0 0 8.42e+03 Tank Transportation + 5 -44.8 -62.9 -5e+03 3.57e-06 0 1.03e+04 1.87e+04 expHall Transportation + 6 8.48e+03 -1.14e+03 -1e+04 3.57e-06 0 9.94e+03 2.87e+04 world Transportation + 7 1.5e+04 -1.97e+03 -1.38e+04 3.57e-06 0 7.6e+03 3.63e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 15 0.89 -0.69 0.0643 0.175 0 0 1.3 Tank initStep + 16 0.913 -0.675 0.065 0.168 0.00714 0.0277 1.32 Tank msc + 17 0.972 -0.637 0.0542 0.146 0.0227 0.0804 1.4 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 43, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.923 -0.669 0.0632 3.97e-06 0 0 0 Tank initStep + 1 -5e+03 -762 -2.81e+03 3.97e-06 0 5.79e+03 5.79e+03 expHall Transportation + 2 -1e+04 -2.53e+03 -9.63e+03 3.97e-06 0 8.64e+03 1.44e+04 world Transportation + 3 -1.39e+04 -3.92e+03 -1.5e+04 3.97e-06 0 6.8e+03 2.12e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 17 0.972 -0.637 0.0542 0.146 0 0 1.4 Tank initStep + 18 0.991 -0.634 0.0495 0.138 0.00722 0.0203 1.42 Tank msc + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 44, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.978 -0.636 0.0526 3.78e-06 0 0 0 Tank initStep + 1 -5e+03 -4.09e+03 -3.49e+03 3.78e-06 0 7.34e+03 7.34e+03 expHall Transportation + 2 -5e+03 -4.09e+03 -3.49e+03 3.78e-06 0 0 7.34e+03 Tank Transportation + 3 -2.77e+03 -5e+03 -4.8e+03 3.78e-06 0 2.74e+03 1.01e+04 expHall Transportation + 4 -2.77e+03 -5e+03 -4.8e+03 3.78e-06 0 0 1.01e+04 Tank Transportation + 5 -2.56e+03 -4.83e+03 -5e+03 3.78e-06 0 336 1.04e+04 expHall Transportation + 6 -2.56e+03 -4.83e+03 -5e+03 3.78e-06 0 0 1.04e+04 Tank Transportation + 7 2.98e+03 -237 5e+03 3.78e-06 0 1.23e+04 2.27e+04 expHall Transportation + 8 2.98e+03 -237 5e+03 3.78e-06 0 0 2.27e+04 Tank Transportation + 9 3.89e+03 717 3.78e+03 3.78e-06 3.78e-06 1.8e+03 2.45e+04 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 18 0.991 -0.634 0.0495 0.138 0 0 1.42 Tank initStep + 19 1.01 -0.633 0.0483 0.133 0.00537 0.0186 1.44 Tank msc + 20 1.06 -0.64 0.0529 0.114 0.0185 0.0593 1.5 Tank eIoni + 21 1.02 -0.657 0.0554 0.102 0.0129 0.0493 1.55 Tank eIoni + 22 1 -0.671 0.0842 0.0854 0.0162 0.043 1.59 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 1.02 -0.662 0.0646 3.47e-06 0 0 0 Tank initStep + 1 -4.9e+03 -5e+03 -2.62e+03 3.47e-06 0 7.47e+03 7.47e+03 expHall Transportation + 2 -4.9e+03 -5e+03 -2.62e+03 3.47e-06 0 0 7.47e+03 Tank Transportation + 3 -5e+03 -4.83e+03 -2.79e+03 3.47e-06 0 264 7.74e+03 expHall Transportation + 4 -5e+03 -4.83e+03 -2.79e+03 3.47e-06 0 0 7.74e+03 Tank Transportation + 5 -4.64e+03 -3.46e+03 -5e+03 3.47e-06 0 2.62e+03 1.04e+04 expHall Transportation + 6 -4.6e+03 3.35e+03 -1e+04 3.47e-06 0 8.44e+03 1.88e+04 world Transportation + 7 -4.57e+03 1.01e+04 -1.5e+04 3.47e-06 0 8.44e+03 2.72e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 22 1 -0.671 0.0842 0.0854 0 0 1.59 Tank initStep + 23 0.996 -0.671 0.087 0.0825 0.00294 0.00817 1.6 Tank msc + 24 0.969 -0.673 0.0955 0.0626 0.0199 0.0344 1.64 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 47, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.991 -0.671 0.0887 3.93e-06 0 0 0 Tank initStep + 1 1.87e+03 5e+03 -2.37e+03 3.93e-06 0 5.84e+03 5.84e+03 expHall Transportation + 2 1.87e+03 5e+03 -2.37e+03 3.93e-06 0 0 5.84e+03 Tank Transportation + 3 1.97e+03 4.7e+03 -2.55e+03 3.93e-06 3.93e-06 368 6.21e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 46, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.972 -0.672 0.0946 2.67e-06 0 0 0 Tank initStep + 1 635 5e+03 -3.48e+03 2.67e-06 0 6.13e+03 6.13e+03 expHall Transportation + 2 3.93e+03 1e+04 -6.58e+03 2.67e-06 0 6.74e+03 1.29e+04 world Transportation + 3 7.22e+03 1.5e+04 -9.68e+03 2.67e-06 0 6.74e+03 1.96e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 24 0.969 -0.673 0.0955 0.0626 0 0 1.64 Tank initStep + 25 0.967 -0.67 0.0986 0.0607 0.00183 0.00473 1.64 Tank msc + 26 0.953 -0.66 0.108 0.0488 0.012 0.0258 1.67 Tank eIoni + 27 0.945 -0.648 0.115 0.0369 0.0119 0.0215 1.69 Tank eIoni + 28 0.941 -0.641 0.122 0.0233 0.0135 0.0172 1.71 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.944 -0.647 0.116 3.38e-06 0 0 0 Tank initStep + 1 5e+03 3.31e+03 -4.21e+03 3.38e-06 0 7.33e+03 7.33e+03 expHall Transportation + 2 5e+03 3.31e+03 -4.21e+03 3.38e-06 0 0 7.33e+03 Tank Transportation + 3 3.66e+03 4.49e+03 -5e+03 3.38e-06 0 1.95e+03 9.28e+03 expHall Transportation + 4 -3.57e+03 1e+04 -9.83e+03 3.38e-06 0 1.03e+04 1.96e+04 world Transportation + 5 -1.01e+04 1.5e+04 -1.42e+04 3.38e-06 0 9.34e+03 2.89e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 28 0.941 -0.641 0.122 0.0233 0 0 1.71 Tank initStep + 29 0.941 -0.641 0.123 0.0225 0.00083 0.000814 1.71 Tank msc + 30 0.943 -0.64 0.127 0 0.0225 0.00952 1.72 Tank eIoni + 31 0.943 -0.64 0.127 0 0 0 1.72 Tank annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 52, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.943 -0.64 0.127 0.511 0 0 0 Tank initStep + 1 0.0716 -3.76 -1.12 0.18 1.42e-05 3.48 3.48 Tank compt + 2 -11 33.7 26.7 0.175 2.92e-05 47.9 51.4 Tank compt + 3 -12.9 36.6 32 0.149 1.42e-05 6.31 57.7 Tank compt + 4 -2.18 23.1 66.1 0.121 0.000537 38.2 96 Tank compt + 5 -83.8 -69.2 84.8 0.0834 2.92e-05 125 221 Tank compt + 6 -67.1 -61.2 80.5 0.0723 0.000537 19 240 Tank compt + 7 -66.3 -58 89.8 0.0631 1.36e-05 9.9 249 Tank compt + 8 -115 -57.2 93.9 0.0611 2.92e-05 49.3 299 Tank compt + 9 -164 -80.7 60.5 0.0585 1.42e-05 63.4 362 Tank compt + 10 -164 -81.8 57.3 0.0488 2.92e-05 3.45 366 Tank compt + 11 -188 -74 79.8 0.0487 1.36e-05 34.1 400 Tank compt + 12 -265 -49.1 120 0.0395 0.000537 89.9 490 Tank compt + 13 -257 -49.4 129 0.0371 1.42e-05 12.2 502 Tank compt + 14 -232 -13.6 96.6 0.0353 1.42e-05 54.4 556 Tank compt + 15 -238 -8.19 94.4 0.0319 1.42e-05 8.78 565 Tank compt + 16 -243 -92 38.9 0.0319 0 101 666 Tank Rayl + 17 -229 -115 -8.87 0 0.000538 54.9 721 Tank phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -229 -115 -8.87 0.0313 0 0 0 Tank initStep + 1 -229 -115 -8.87 0.0303 0.00105 0.00149 0.00149 Tank msc + 2 -229 -115 -8.86 0.0141 0.0162 0.015 0.0165 Tank eIoni + 3 -229 -115 -8.86 0 0.0141 0.00452 0.021 Tank eIoni + 4 -229 -115 -8.86 0 0 0 0.021 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 70, Parent ID = 68 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -229 -115 -8.86 2.37e-06 0 0 0 Tank initStep + 1 -3.5e+03 5e+03 1.05e+03 2.37e-06 0 6.16e+03 6.16e+03 expHall Transportation + 2 -1e+04 9.97e+03 2.58e+03 2.37e-06 0 8.33e+03 1.45e+04 world Transportation + 3 -1.5e+04 1.38e+04 3.76e+03 2.37e-06 0 6.4e+03 2.09e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 69, Parent ID = 68 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -229 -115 -8.86 2.8e-06 0 0 0 Tank initStep + 1 -4.14e+03 -5e+03 2.42e+03 2.8e-06 0 6.71e+03 6.71e+03 expHall Transportation + 2 -1e+04 -8.31e+03 6.15e+03 2.8e-06 0 7.7e+03 1.44e+04 world Transportation + 3 -1.5e+04 -1.11e+04 9.32e+03 2.8e-06 0 6.56e+03 2.1e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -238 -8.19 94.4 0.0034 0 0 0 Tank initStep + 1 -238 -8.19 94.4 0.0034 3.83e-06 3.06e-05 3.06e-05 Tank msc + 2 -238 -8.19 94.4 0 0.0034 0.000382 0.000413 Tank eIoni + 3 -238 -8.19 94.4 0 0 0 0.000413 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -232 -13.6 96.6 0.00179 0 0 0 Tank initStep + 1 -232 -13.6 96.6 0.00179 0 1.06e-05 1.06e-05 Tank msc + 2 -232 -13.6 96.6 0 0.00179 0.000132 0.000143 Tank eIoni + 3 -232 -13.6 96.6 0 0 0 0.000143 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -257 -49.4 129 0.00245 0 0 0 Tank initStep + 1 -257 -49.4 129 0.00228 0.000165 1.76e-05 1.76e-05 Tank msc + 2 -257 -49.4 129 0 0.00228 0.000196 0.000214 Tank eIoni + 3 -257 -49.4 129 0 0 0 0.000214 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -265 -49.1 120 0.00867 0 0 0 Tank initStep + 1 -265 -49.1 120 0.00839 0.000279 0.000154 0.000154 Tank msc + 2 -265 -49.1 120 0 0.00839 0.00182 0.00197 Tank eIoni + 3 -265 -49.1 120 0 0 0 0.00197 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 71, Parent ID = 64 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -265 -49.1 120 2.36e-06 0 0 0 Tank initStep + 1 -5e+03 1.1e+03 4.7e+03 2.36e-06 0 6.69e+03 6.69e+03 expHall Transportation + 2 -5e+03 1.1e+03 4.7e+03 2.36e-06 0 0 6.69e+03 Tank Transportation + 3 -4.45e+03 1.27e+03 5e+03 2.36e-06 0 650 7.34e+03 expHall Transportation + 4 -4.45e+03 1.27e+03 5e+03 2.36e-06 0 0 7.34e+03 Tank Transportation + 5 -2.37e+03 1.46e+03 3.8e+03 2.36e-06 2.36e-06 2.41e+03 9.75e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -188 -74 79.8 8.96e-05 0 0 0 Tank initStep + 1 -188 -74 79.8 0 8.96e-05 3.46e-07 3.46e-07 Tank msc + 2 -188 -74 79.8 0 0 0 3.46e-07 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -164 -81.8 57.3 0.00959 0 0 0 Tank initStep + 1 -164 -81.8 57.3 0.00938 0.000208 0.000184 0.000184 Tank msc + 2 -164 -81.8 57.3 0 0.00938 0.00221 0.0024 Tank eIoni + 3 -164 -81.8 57.3 0 0 0 0.0024 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -164 -80.7 60.5 0.00258 0 0 0 Tank initStep + 1 -164 -80.7 60.5 0.00248 0.000106 1.93e-05 1.93e-05 Tank msc + 2 -164 -80.7 60.5 0 0.00248 0.000225 0.000244 Tank eIoni + 3 -164 -80.7 60.5 0 0 0 0.000244 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -115 -57.2 93.9 0.00201 0 0 0 Tank initStep + 1 -115 -57.2 93.9 0.00136 0.000653 1.27e-05 1.27e-05 Tank msc + 2 -115 -57.2 93.9 0 0.00136 8.45e-05 9.72e-05 Tank eIoni + 3 -115 -57.2 93.9 0 0 0 9.72e-05 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -66.3 -58 89.8 0.00914 0 0 0 Tank initStep + 1 -66.3 -58 89.8 0.00875 0.000384 0.000169 0.000169 Tank msc + 2 -66.3 -58 89.8 0 0.00875 0.00196 0.00213 Tank eIoni + 3 -66.3 -58 89.8 0 0 0 0.00213 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 72, Parent ID = 59 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -66.3 -58 89.8 3.64e-06 0 0 0 Tank initStep + 1 3e+03 -1.62e+03 -5e+03 3.64e-06 0 6.14e+03 6.14e+03 expHall Transportation + 2 3e+03 -1.62e+03 -5e+03 3.64e-06 0 0 6.14e+03 Tank Transportation + 3 5e+03 -2.38e+03 -3.45e+03 3.64e-06 0 2.64e+03 8.79e+03 expHall Transportation + 4 1e+04 -5.57e+03 7.07e+03 3.64e-06 0 1.21e+04 2.09e+04 world Transportation + 5 1.38e+04 -7.97e+03 1.5e+04 3.64e-06 0 9.11e+03 3e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -67.1 -61.2 80.5 0.0106 0 0 0 Tank initStep + 1 -67.1 -61.2 80.5 0.0102 0.000368 0.000218 0.000218 Tank msc + 2 -67.1 -61.2 80.5 0 0.0102 0.00256 0.00278 Tank eIoni + 3 -67.1 -61.2 80.5 0 0 0 0.00278 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -83.8 -69.2 84.8 0.0377 0 0 0 Tank initStep + 1 -83.8 -69.2 84.8 0.036 0.00166 0.00207 0.00207 Tank msc + 2 -83.8 -69.2 84.8 0.0136 0.0224 0.0174 0.0195 Tank eIoni + 3 -83.8 -69.2 84.8 0 0.0136 0.00426 0.0238 Tank eIoni + 4 -83.8 -69.2 84.8 0 0 0 0.0238 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.18 23.1 66.1 0.0274 0 0 0 Tank initStep + 1 -2.18 23.1 66.1 0.0263 0.00106 0.00118 0.00118 Tank msc + 2 -2.18 23.1 66.1 0.00827 0.0181 0.0129 0.0141 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 73, Parent ID = 56 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -2.18 23.1 66.1 3.63e-06 0 0 0 Tank initStep + 1 5e+03 -2.01e+03 1.15e+03 3.63e-06 0 5.51e+03 5.51e+03 expHall Transportation + 2 1e+04 -8.44e+03 2.51e+03 3.63e-06 0 8.26e+03 1.38e+04 world Transportation + 3 1.5e+04 -1.49e+04 3.87e+03 3.63e-06 0 8.26e+03 2.2e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 2 -2.18 23.1 66.1 0.00827 0 0 0.0141 Tank initStep + 3 -2.18 23.1 66.1 0.0081 0.000166 0.000142 0.0142 Tank msc + 4 -2.18 23.1 66.1 0 0.0081 0.00171 0.016 Tank eIoni + 5 -2.18 23.1 66.1 0 0 0 0.016 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.9 36.6 32 0.0262 0 0 0 Tank initStep + 1 -12.9 36.6 32 0.0258 0.0004 0.00109 0.00109 Tank msc + 2 -12.9 36.6 32 0 0.0258 0.0126 0.0137 Tank eIoni + 3 -12.9 36.6 32 0 0 0 0.0137 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 74, Parent ID = 55 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -12.9 36.6 32 2.74e-06 0 0 0 Tank initStep + 1 5e+03 -369 273 2.74e-06 0 5.04e+03 5.04e+03 expHall Transportation + 2 1e+04 -1.78e+03 637 2.74e-06 0 5.21e+03 1.02e+04 world Transportation + 3 1.5e+04 -3.18e+03 1e+03 2.74e-06 0 5.21e+03 1.54e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -11 33.7 26.7 0.00499 0 0 0 Tank initStep + 1 -11 33.7 26.7 0.00472 0.000271 5.9e-05 5.9e-05 Tank msc + 2 -11 33.7 26.7 0 0.00472 0.00067 0.000729 Tank eIoni + 3 -11 33.7 26.7 0 0 0 0.000729 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0716 -3.76 -1.12 0.331 0 0 0 Tank initStep + 1 0.0747 -3.81 -1.16 0.317 0.0137 0.0609 0.0609 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 75, Parent ID = 53 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0738 -3.8 -1.15 3.27e-06 0 0 0 Tank initStep + 1 -747 -5e+03 -1.18e+03 3.27e-06 0 5.19e+03 5.19e+03 expHall Transportation + 2 -1.44e+03 -1e+04 -2.74e+03 3.27e-06 0 5.28e+03 1.05e+04 world Transportation + 3 -2.13e+03 -1.5e+04 -4.3e+03 3.27e-06 0 5.28e+03 1.58e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 1 0.0747 -3.81 -1.16 0.317 0 0 0.0609 Tank initStep + 2 0.0793 -3.86 -1.19 0.305 0.0121 0.0561 0.117 Tank Cerenkov + 3 0.0773 -3.89 -1.23 0.297 0.00753 0.052 0.169 Tank Cerenkov + 4 0.0644 -3.94 -1.24 0.288 0.00924 0.0495 0.218 Tank Cerenkov + 5 0.0631 -3.98 -1.24 0.276 0.0117 0.0466 0.265 Tank Cerenkov + 6 0.0536 -4.02 -1.25 0.27 0.00629 0.043 0.308 Tank Cerenkov + 7 0.0313 -4.05 -1.26 0.26 0.0102 0.0411 0.349 Tank Cerenkov + 8 0.0122 -4.08 -1.25 0.252 0.0081 0.0382 0.387 Tank Cerenkov + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 76, Parent ID = 53 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.0267 -4.06 -1.25 3.3e-06 0 0 0 Tank initStep + 1 177 -214 -334 3.3e-06 3.3e-06 431 431 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 8 0.0122 -4.08 -1.25 0.252 0 0 0.387 Tank initStep + 9 0.00512 -4.12 -1.24 0.242 0.0101 0.036 0.423 Tank Cerenkov + 10 0.00615 -4.23 -1.21 0.204 0.0376 0.136 0.559 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 78, Parent ID = 53 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00589 -4.21 -1.22 2.51e-06 0 0 0 Tank initStep + 1 -5e+03 -241 -2.11e+03 2.51e-06 0 5.43e+03 5.43e+03 expHall Transportation + 2 -5e+03 -241 -2.11e+03 2.51e-06 0 0 5.43e+03 Tank Transportation + 3 -3.08e+03 -2.07e+03 -5e+03 2.51e-06 0 3.92e+03 9.35e+03 expHall Transportation + 4 5.02e+03 -1e+04 -6.17e+03 2.51e-06 0 1.14e+04 2.08e+04 world Transportation + 5 1.01e+04 -1.5e+04 -6.91e+03 2.51e-06 0 7.18e+03 2.79e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 77, Parent ID = 53 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.00542 -4.15 -1.23 3.49e-06 0 0 0 Tank initStep + 1 -2.65e+03 5e+03 -840 3.49e-06 0 5.73e+03 5.73e+03 expHall Transportation + 2 -9.95e+03 1e+04 -3.12e+03 3.49e-06 0 9.14e+03 1.49e+04 world Transportation + 3 -1.5e+04 1.35e+04 -4.69e+03 3.49e-06 0 6.32e+03 2.12e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 10 0.00615 -4.23 -1.21 0.204 0 0 0.559 Tank initStep + 11 -0.0185 -4.24 -1.19 0.194 0.0105 0.0367 0.596 Tank msc + 12 -0.078 -4.27 -1.13 0.161 0.0325 0.1 0.696 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 80, Parent ID = 53 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0663 -4.27 -1.14 3.19e-06 0 0 0 Tank initStep + 1 -251 1.38e+03 -5e+03 3.19e-06 0 5.19e+03 5.19e+03 expHall Transportation + 2 -958 3.81e+03 -1e+04 3.19e-06 0 5.6e+03 1.08e+04 world Transportation + 3 -1.67e+03 6.24e+03 -1.5e+04 3.19e-06 0 5.6e+03 1.64e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 79, Parent ID = 53 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0679 -4.27 -1.14 3e-06 0 0 0 Tank initStep + 1 -2.7e+03 -41.5 5e+03 3e-06 0 5.68e+03 5.68e+03 expHall Transportation + 2 -9.31e+03 5.28e+03 1e+04 3e-06 0 9.85e+03 1.55e+04 world Transportation + 3 -1.5e+04 9.87e+03 1.43e+04 3e-06 0 8.49e+03 2.4e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 12 -0.078 -4.27 -1.13 0.161 0 0 0.696 Tank initStep + 13 -0.0728 -4.28 -1.1 0.151 0.0102 0.0251 0.721 Tank msc + 14 -0.0735 -4.29 -1.04 0.117 0.0344 0.072 0.793 Tank eIoni + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 83, Parent ID = 53 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0732 -4.29 -1.07 3.12e-06 0 0 0 Tank initStep + 1 -5e+03 -1.35e+03 -3.45e+03 3.12e-06 0 6.22e+03 6.22e+03 expHall Transportation + 2 -5e+03 -1.35e+03 -3.45e+03 3.12e-06 0 0 6.22e+03 Tank Transportation + 3 -1.99e+03 -2.46e+03 -5e+03 3.12e-06 0 3.56e+03 9.78e+03 expHall Transportation + 4 -1.99e+03 -2.46e+03 -5e+03 3.12e-06 0 0 9.78e+03 Tank Transportation + 5 5e+03 -4.52e+03 689 3.12e-06 0 9.24e+03 1.9e+04 expHall Transportation + 6 5e+03 -4.52e+03 689 3.12e-06 0 0 1.9e+04 Tank Transportation + 7 2.71e+03 -5e+03 2.6e+03 3.12e-06 0 3.02e+03 2.21e+04 expHall Transportation + 8 2.71e+03 -5e+03 2.6e+03 3.12e-06 0 0 2.21e+04 Tank Transportation + 9 846 -2.63e+03 5e+03 3.12e-06 0 3.85e+03 2.59e+04 expHall Transportation + 10 846 -2.63e+03 5e+03 3.12e-06 0 0 2.59e+04 Tank Transportation + 11 -4.85e+03 517 -5e+03 3.12e-06 0 1.19e+04 3.78e+04 expHall Transportation + 12 -8.45e+03 4.14e+03 -1e+04 3.12e-06 0 7.15e+03 4.5e+04 world Transportation + 13 -1.2e+04 7.77e+03 -1.5e+04 3.12e-06 0 7.15e+03 5.21e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 82, Parent ID = 53 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.073 -4.28 -1.09 2.18e-06 0 0 0 Tank initStep + 1 -5e+03 -2.97e+03 -2.25e+03 2.18e-06 0 6.23e+03 6.23e+03 expHall Transportation + 2 -8.36e+03 -1e+04 -3.7e+03 2.18e-06 0 7.93e+03 1.42e+04 world Transportation + 3 -1.08e+04 -1.5e+04 -4.74e+03 2.18e-06 0 5.64e+03 1.98e+04 OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 81, Parent ID = 53 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 -0.0733 -4.29 -1.06 3.46e-06 0 0 0 Tank initStep + 1 3.19e+03 -5e+03 -1.95e+03 3.46e-06 0 6.24e+03 6.24e+03 expHall Transportation + 2 3.19e+03 -5e+03 -1.95e+03 3.46e-06 0 0 6.24e+03 Tank Transportation + 3 5e+03 -3.43e+03 -2.34e+03 3.46e-06 0 2.43e+03 8.67e+03 expHall Transportation + 4 5e+03 -3.43e+03 -2.34e+03 3.46e-06 0 0 8.67e+03 Tank Transportation + 5 4.81e+03 -3.31e+03 -2.35e+03 3.46e-06 3.46e-06 226 8.9e+03 Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 52 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 14 -0.0735 -4.29 -1.04 0.117 0 0 0.793 Tank initStep + 15 -0.0664 -4.3 -1.03 0.113 0.00376 0.0147 0.808 Tank msc + 16 -0.0475 -4.33 -1 0.0972 0.0156 0.0502 0.858 Tank eIoni + 17 -0.0815 -4.33 -0.995 0.083 0.0142 0.0424 0.9 Tank eIoni + 18 -0.107 -4.31 -0.989 0.0664 0.0165 0.0358 0.936 Tank eIoni + 19 -0.128 -4.31 -0.981 0 0.0664 0.0289 0.965 Tank eIoni + 20 -0.128 -4.31 -0.981 0 0 0 0.965 Tank NoProcess + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 51, Parent ID = 1 +********************************************************************************************************* + +Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName + 0 0.943 -0.64 0.127 0.511 0 0 0 Tank initStep + 1 24.9 85.1 34.5 0.182 1.36e-05 95.4 95.4 Tank compt + 2 23.5 81.4 35.5 0.167 0.000537 4.02 99.4 Tank compt + 3 23.8 77.5 34.1 0.122 2.92e-05 4.2 104 Tank compt + 4 4.22 93.1 5.27 0.0897 1.42e-05 38.2 142 Tank compt + 5 4 92.6 5.45 0.0869 0.000537 0.616 142 Tank compt + 6 3.4 91.9 5.24 0.0849 1.42e-05 0.945 143 Tank compt + 7 -10 38.8 11.5 0.0686 2.92e-05 55.1 198 Tank compt + 8 -4.71 64.5 55 0.0657 0.000537 50.8 249 Tank compt + 9 -28.5 131 72.8 0.0603 1.42e-05 72.8 322 Tank compt + 10 26.1 166 85.2 0.0539 0.000537 66.3 388 Tank compt + 11 61.9 115 91.3 0.0521 1.36e-05 62.7 451 Tank compt + 12 58.8 102 90.5 0.0517 2.92e-05 13.8 465 Tank compt + 13 60.1 90.9 87.8 0.0511 1.42e-05 11.4 476 Tank compt + 14 88.6 63.8 96.5 0.0492 1.36e-05 40.3 517 Tank compt + 15 180 63.8 105 0.0446 2.92e-05 91.5 608 Tank compt + 16 180 62.6 105 0.0432 2.92e-05 1.25 609 Tank compt + 17 249 34.3 117 0.038 1.42e-05 75.5 685 Tank compt + 18 209 -5.87 84 0.0336 0.000537 65.8 751 Tank compt + 19 220 -1.87 92.7 0 0.000538 14.9 766 Tank phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 51 +**************************************************** ============================================================================================ ================= lines above cut to keep file within limits =============================== ============================================================================================ @@ -13871,21 +13826,21 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Run terminated. Run Summary Number of events processed : 1000 - User=1.840000s Real=1.855677s Sys=0.000000s + User=1.700000s Real=1.708247s Sys=0.000000s ======================== run summary ====================== Primary particle was: e+ with energy 500 keV. Number of events: 1000 -Average number of Cerenkov photons created per event: 16.7 +- 5.47 -Average number of scintillation photons created per event: 67.1 +- 8.67 -Average number of optical Rayleigh interactions per event: 7.95 +- 3.06 -Average number of optical absorption interactions per event: 34.8 +- 6.12 -Average number of optical Mie interactions per event: 0.101 +- 0.314 -Average number of optical boundary interactions per event: 191 +- 30.3 +Average number of Cerenkov photons created per event: 17.1 +- 5.7 +Average number of scintillation photons created per event: 67.2 +- 8.08 +Average number of optical Rayleigh interactions per event: 8.08 +- 3.25 +Average number of optical absorption interactions per event: 34.9 +- 6.18 +Average number of optical Mie interactions per event: 0.113 +- 0.338 +Average number of optical boundary interactions per event: 193 +- 29.3 G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 9 of which, static: 0 -Dynamic pools deleted: 9 / Total memory freed: 0.03 MB +Dynamic pools deleted: 9 / Total memory freed: 0.032 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/optical/OpNovice/README b/examples/extended/optical/OpNovice/README index 8e82c2ace7..2f10c82167 100644 --- a/examples/extended/optical/OpNovice/README +++ b/examples/extended/optical/OpNovice/README @@ -112,10 +112,10 @@ Macros The following macros are provided: - optPhoton.mac: Shoot optical photons with energy 3 eV - OpNovice.in: Shoot positrons with energy 500 keV. - gui.mac: Configure the graphical user interface. - vis.mac: Configure visualization.ls + - optPhoton.mac: Shoot optical photons with energy 3 eV + - OpNovice.in: Shoot positrons with energy 500 keV. + - gui.mac: Configure the graphical user interface. + - vis.mac: Configure visualization. gdml files diff --git a/examples/extended/optical/OpNovice/opgdml.out b/examples/extended/optical/OpNovice/opgdml.out index 93a50d2684..f0e3a10c1a 100644 --- a/examples/extended/optical/OpNovice/opgdml.out +++ b/examples/extended/optical/OpNovice/opgdml.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -84,6 +84,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -111,7 +112,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -147,8 +148,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -178,8 +178,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -303,7 +303,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -487,23 +487,23 @@ CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 ===== EM models for the G4Region DefaultRegionForTheWorld ====== eCoulombScattering : Emin= 0 eV Emax= 100 TeV -2.034e-06MeV 857214mm -2.068e-06MeV 798979mm -2.103e-06MeV 744093mm -2.139e-06MeV 692451mm -2.177e-06MeV 642760mm -2.216e-06MeV 596287mm -2.256e-06MeV 552882mm -2.298e-06MeV 511498mm -2.341e-06MeV 473038mm -2.386e-06MeV 436596mm -2.433e-06MeV 402211mm -2.481e-06MeV 369900mm +2.034e-06MeV 857215mm +2.068e-06MeV 798981mm +2.103e-06MeV 744094mm +2.139e-06MeV 692453mm +2.177e-06MeV 642761mm +2.216e-06MeV 596288mm +2.256e-06MeV 552883mm +2.298e-06MeV 511499mm +2.341e-06MeV 473039mm +2.386e-06MeV 436597mm +2.433e-06MeV 402212mm +2.481e-06MeV 369901mm 2.532e-06MeV 338815mm -2.585e-06MeV 310630mm +2.585e-06MeV 310631mm 2.64e-06MeV 284407mm 2.697e-06MeV 259459mm -2.757e-06MeV 236845mm +2.757e-06MeV 236846mm 2.82e-06MeV 215010mm 2.885e-06MeV 195502mm 2.954e-06MeV 177163mm @@ -512,13 +512,13 @@ CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 3.181e-06MeV 130201mm 3.265e-06MeV 116849mm 3.353e-06MeV 104397mm -3.446e-06MeV 93281.2mm -3.545e-06MeV 82767.8mm -3.649e-06MeV 73439.2mm -3.76e-06MeV 64888.9mm -3.877e-06MeV 57179.3mm -4.002e-06MeV 50166.7mm -4.136e-06MeV 43700.7mm +3.446e-06MeV 93281.4mm +3.545e-06MeV 82768mm +3.649e-06MeV 73439.3mm +3.76e-06MeV 64889mm +3.877e-06MeV 57179.4mm +4.002e-06MeV 50166.8mm +4.136e-06MeV 43700.8mm msc: for pi+ SubType= 10 ===== EM models for the G4Region DefaultRegionForTheWorld ====== @@ -719,6 +719,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1676,18 +1681,18 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 2 133 -244 -39.6 0.311 1.42e-05 230 316 Tank_phys compt 3 117 -454 -10.4 0.167 1.42e-05 212 529 Tank_phys compt 4 116 -406 59.9 0.149 1.42e-05 84.9 614 Tank_phys compt - 5 110 -403 63.8 0.141 0.000537 7.8 621 Tank_phys compt + 5 110 -403 63.7 0.141 0.000537 7.8 621 Tank_phys compt 6 108 -402 63.8 0.119 1.42e-05 2.45 624 Tank_phys compt - 7 91.2 -408 49.4 0.0969 2.92e-05 23.1 647 Tank_phys compt + 7 91.2 -408 49.4 0.0969 2.92e-05 23.2 647 Tank_phys compt 8 91.4 -402 46.4 0.0729 1.42e-05 6.99 654 Tank_phys compt - 9 84.4 -451 36.4 0.0624 0.000537 50.4 704 Tank_phys compt + 9 84.3 -451 36.4 0.0624 0.000537 50.4 704 Tank_phys compt ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 60, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 84.4 -451 36.4 3.6e-06 0 0 0 Tank_phys initStep + 0 84.3 -451 36.4 3.6e-06 0 0 0 Tank_phys initStep 1 2.01e+03 -734 -570 3.6e-06 3.6e-06 2.04e+03 2.04e+03 Tank_phys OpAbsorption ********************************************************************************************************* @@ -1695,17 +1700,17 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 84.4 -451 36.4 0.00994 0 0 0 Tank_phys initStep - 1 84.4 -451 36.4 0.00945 0.000494 0.000196 0.000196 Tank_phys msc - 2 84.4 -451 36.4 0 0.00945 0.00224 0.00244 Tank_phys eIoni - 3 84.4 -451 36.4 0 0 0 0.00244 Tank_phys NoProcess + 0 84.3 -451 36.4 0.00994 0 0 0 Tank_phys initStep + 1 84.3 -451 36.4 0.00945 0.000494 0.000196 0.000196 Tank_phys msc + 2 84.3 -451 36.4 0 0.00945 0.00224 0.00244 Tank_phys eIoni + 3 84.3 -451 36.4 0 0 0 0.00244 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 61, Parent ID = 59 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 84.4 -451 36.4 3.85e-06 0 0 0 Tank_phys initStep + 0 84.3 -451 36.4 3.85e-06 0 0 0 Tank_phys initStep 1 1.83e+03 5e+03 -101 3.85e-06 0 5.73e+03 5.73e+03 expHall_phys Transportation 2 5.27e+03 1e+04 -1.47e+03 3.85e-06 0 6.22e+03 1.19e+04 World_log_PV Transportation 3 8.71e+03 1.5e+04 -2.84e+03 3.85e-06 0 6.22e+03 1.82e+04 OutOfWorld Transportation @@ -1765,10 +1770,10 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 110 -403 63.8 0.00829 0 0 0 Tank_phys initStep - 1 110 -403 63.8 0.00796 0.000339 0.000143 0.000143 Tank_phys msc - 2 110 -403 63.8 0 0.00796 0.00166 0.0018 Tank_phys eIoni - 3 110 -403 63.8 0 0 0 0.0018 Tank_phys NoProcess + 0 110 -403 63.7 0.00829 0 0 0 Tank_phys initStep + 1 110 -403 63.7 0.00796 0.000339 0.000143 0.000143 Tank_phys msc + 2 110 -403 63.7 0 0.00796 0.00166 0.0018 Tank_phys eIoni + 3 110 -403 63.7 0 0 0 0.0018 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 54, Parent ID = 50 @@ -2167,7 +2172,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 9 84.4 -451 36.4 0.0624 0 0 704 Tank_phys initStep + 9 84.3 -451 36.4 0.0624 0 0 704 Tank_phys initStep 10 91.6 -435 41.9 0.0624 0 18.7 723 Tank_phys Rayl 11 110 -424 48.2 0.0537 1.36e-05 21.8 745 Tank_phys compt 12 114 -439 40.1 0.0464 1.42e-05 17.6 762 Tank_phys compt @@ -2256,7 +2261,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 0 164 -533 26.3 3.34e-06 0 0 0 Tank_phys initStep 1 -528 3.87e+03 5e+03 3.34e-06 0 6.68e+03 6.68e+03 expHall_phys Transportation 2 -528 3.87e+03 5e+03 3.34e-06 0 0 6.68e+03 Tank_phys Transportation - 3 -577 3.92e+03 4.94e+03 3.34e-06 3.34e-06 93.9 6.77e+03 Tank_phys OpAbsorption + 3 -577 3.92e+03 4.94e+03 3.34e-06 3.34e-06 93.8 6.77e+03 Tank_phys OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 90, Parent ID = 50 @@ -2325,28 +2330,28 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 5 -174 94 265 0.0894 2.92e-05 10.8 428 Tank_phys compt 6 -175 93.1 265 0.0774 1.42e-05 1.92 430 Tank_phys compt 7 -192 109 356 0.0625 1.42e-05 93.9 524 Tank_phys compt - 8 -150 39.9 330 0.0573 1.36e-05 85.1 609 Tank_phys compt + 8 -150 39.9 331 0.0573 1.36e-05 85.1 609 Tank_phys compt 9 -150 46.5 278 0.0482 1.42e-05 52.5 661 Tank_phys compt - 10 -209 -4.55 305 0.0482 0 82.6 744 Tank_phys Rayl - 11 -213 -8.47 307 0 0.000538 6.04 750 Tank_phys phot + 10 -209 -4.54 305 0.0482 0 82.5 744 Tank_phys Rayl + 11 -213 -8.46 307 0 0.000538 6.04 750 Tank_phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 107, Parent ID = 49 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -213 -8.47 307 0.0476 0 0 0 Tank_phys initStep - 1 -213 -8.47 307 0.0458 0.00186 0.00313 0.00313 Tank_phys msc - 2 -213 -8.47 307 0.0324 0.0133 0.0211 0.0242 Tank_phys eIoni + 0 -213 -8.46 307 0.0476 0 0 0 Tank_phys initStep + 1 -213 -8.46 307 0.0458 0.00186 0.00313 0.00313 Tank_phys msc + 2 -213 -8.46 307 0.0324 0.0133 0.0211 0.0242 Tank_phys eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 108, Parent ID = 107 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -213 -8.47 307 3.46e-06 0 0 0 Tank_phys initStep - 1 4.53e+03 -5e+03 -569 3.46e-06 0 6.94e+03 6.94e+03 expHall_phys Transportation - 2 4.53e+03 -5e+03 -569 3.46e-06 0 0 6.94e+03 Tank_phys Transportation + 0 -213 -8.46 307 3.46e-06 0 0 0 Tank_phys initStep + 1 4.53e+03 -5e+03 -568 3.46e-06 0 6.94e+03 6.94e+03 expHall_phys Transportation + 2 4.53e+03 -5e+03 -568 3.46e-06 0 0 6.94e+03 Tank_phys Transportation 3 5e+03 -4.66e+03 -509 3.46e-06 0 587 7.52e+03 expHall_phys Transportation 4 1e+04 711 1.52e+03 3.46e-06 0 7.61e+03 1.51e+04 World_log_PV Transportation 5 1.5e+04 6.08e+03 3.54e+03 3.46e-06 0 7.61e+03 2.28e+04 OutOfWorld Transportation @@ -2356,20 +2361,20 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -213 -8.47 307 0.0324 0 0 0.0242 Tank_phys initStep - 3 -213 -8.47 307 0.0314 0.000987 0.00159 0.0258 Tank_phys msc - 4 -213 -8.47 307 0.0169 0.0145 0.0155 0.0413 Tank_phys eIoni + 2 -213 -8.46 307 0.0324 0 0 0.0242 Tank_phys initStep + 3 -213 -8.46 307 0.0314 0.000987 0.00159 0.0258 Tank_phys msc + 4 -213 -8.46 307 0.0169 0.0145 0.0155 0.0413 Tank_phys eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 109, Parent ID = 107 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -213 -8.47 307 3.67e-06 0 0 0 Tank_phys initStep + 0 -213 -8.46 307 3.67e-06 0 0 0 Tank_phys initStep 1 -2.15e+03 5e+03 -2.69e+03 3.67e-06 0 6.15e+03 6.15e+03 expHall_phys Transportation 2 -2.15e+03 5e+03 -2.69e+03 3.67e-06 0 0 6.15e+03 Tank_phys Transportation - 3 -5e+03 -219 -4.97e+03 3.67e-06 0 6.37e+03 1.25e+04 expHall_phys Transportation - 4 -5e+03 -219 -4.97e+03 3.67e-06 0 0 1.25e+04 Tank_phys Transportation + 3 -5e+03 -219 -4.96e+03 3.67e-06 0 6.37e+03 1.25e+04 expHall_phys Transportation + 4 -5e+03 -219 -4.96e+03 3.67e-06 0 0 1.25e+04 Tank_phys Transportation 5 -4.94e+03 -295 -5e+03 3.67e-06 0 104 1.26e+04 expHall_phys Transportation 6 -4.94e+03 -295 -5e+03 3.67e-06 0 0 1.26e+04 Tank_phys Transportation 7 -3.42e+03 -3.07e+03 -3.33e+03 3.67e-06 3.67e-06 3.57e+03 1.62e+04 Tank_phys OpAbsorption @@ -2379,10 +2384,10 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 4 -213 -8.47 307 0.0169 0 0 0.0413 Tank_phys initStep - 5 -213 -8.47 307 0.0163 0.000623 0.000501 0.0418 Tank_phys msc - 6 -213 -8.47 307 0 0.0163 0.00586 0.0477 Tank_phys eIoni - 7 -213 -8.47 307 0 0 0 0.0477 Tank_phys NoProcess + 4 -213 -8.46 307 0.0169 0 0 0.0413 Tank_phys initStep + 5 -213 -8.46 307 0.0163 0.000623 0.000501 0.0418 Tank_phys msc + 6 -213 -8.46 307 0 0.0163 0.00586 0.0477 Tank_phys eIoni + 7 -213 -8.46 307 0 0 0 0.0477 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 106, Parent ID = 49 @@ -2399,10 +2404,10 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -150 39.9 330 0.00519 0 0 0 Tank_phys initStep - 1 -150 39.9 330 0.00507 0.00012 6.3e-05 6.3e-05 Tank_phys msc - 2 -150 39.9 330 0 0.00507 0.000756 0.000819 Tank_phys eIoni - 3 -150 39.9 330 0 0 0 0.000819 Tank_phys NoProcess + 0 -150 39.9 331 0.00519 0 0 0 Tank_phys initStep + 1 -150 39.9 331 0.00507 0.00012 6.3e-05 6.3e-05 Tank_phys msc + 2 -150 39.9 331 0 0.00507 0.000756 0.000819 Tank_phys eIoni + 3 -150 39.9 331 0 0 0 0.000819 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 104, Parent ID = 49 @@ -2410,9 +2415,9 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -192 109 356 0.0149 0 0 0 Tank_phys initStep - 1 -192 109 356 0.0143 0.000584 0.000401 0.000401 Tank_phys msc - 2 -192 109 356 0 0.0143 0.00467 0.00507 Tank_phys eIoni - 3 -192 109 356 0 0 0 0.00507 Tank_phys NoProcess + 1 -192 109 357 0.0143 0.000584 0.000401 0.000401 Tank_phys msc + 2 -192 109 357 0 0.0143 0.00467 0.00507 Tank_phys eIoni + 3 -192 109 357 0 0 0 0.00507 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 103, Parent ID = 49 @@ -3318,13 +3323,13 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 3 -34.5 93.7 -84.8 0.117 1.42e-05 62.6 219 Tank_phys compt 4 -34.1 96.3 -87.4 0.11 1.42e-05 3.62 223 Tank_phys compt 5 -90.3 120 -168 0.0994 2.92e-05 101 323 Tank_phys compt - 6 -92.6 158 -180 0.0698 1.42e-05 40.3 364 Tank_phys compt - 7 -89.7 133 -172 0.0697 1.36e-05 26 390 Tank_phys compt + 6 -92.6 158 -180 0.0698 1.42e-05 40.4 364 Tank_phys compt + 7 -89.7 133 -172 0.0697 1.36e-05 26.1 390 Tank_phys compt 8 -91.9 85.3 -146 0.0549 1.36e-05 54.5 444 Tank_phys compt 9 -90.1 98.6 -157 0.052 2.92e-05 17.2 462 Tank_phys compt 10 -62.8 115 -126 0.0514 2.92e-05 44.6 506 Tank_phys compt - 11 -27.1 137 -112 0.0477 0.000537 44.2 550 Tank_phys compt - 12 -2.18 124 -123 0.0404 1.42e-05 30.2 581 Tank_phys compt + 11 -27.2 137 -112 0.0477 0.000537 44.2 550 Tank_phys compt + 12 -2.21 124 -123 0.0404 1.42e-05 30.2 581 Tank_phys compt 13 -15.1 130 -131 0 0.000538 16.3 597 Tank_phys phot ********************************************************************************************************* @@ -3369,28 +3374,28 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.18 124 -123 0.00731 0 0 0 Tank_phys initStep - 1 -2.17 124 -123 0.00703 0.000279 0.000114 0.000114 Tank_phys msc - 2 -2.17 124 -123 0 0.00703 0.00134 0.00145 Tank_phys eIoni - 3 -2.17 124 -123 0 0 0 0.00145 Tank_phys NoProcess + 0 -2.21 124 -123 0.00731 0 0 0 Tank_phys initStep + 1 -2.21 124 -123 0.00703 0.000279 0.000114 0.000114 Tank_phys msc + 2 -2.2 124 -123 0 0.00703 0.00134 0.00145 Tank_phys eIoni + 3 -2.2 124 -123 0 0 0 0.00145 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 43, Parent ID = 32 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -27.1 137 -112 0.00309 0 0 0 Tank_phys initStep - 1 -27.1 137 -112 0.00305 3.63e-05 2.6e-05 2.6e-05 Tank_phys msc - 2 -27.1 137 -112 0 0.00305 0.000319 0.000345 Tank_phys eIoni - 3 -27.1 137 -112 0 0 0 0.000345 Tank_phys NoProcess + 0 -27.2 137 -112 0.00309 0 0 0 Tank_phys initStep + 1 -27.2 137 -112 0.00305 3.63e-05 2.6e-05 2.6e-05 Tank_phys msc + 2 -27.2 137 -112 0 0.00305 0.000319 0.000345 Tank_phys eIoni + 3 -27.2 137 -112 0 0 0 0.000345 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 43 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -27.1 137 -112 3.97e-06 0 0 0 Tank_phys initStep - 1 -1.66e+03 4.63e+03 -71.2 3.97e-06 3.97e-06 4.78e+03 4.78e+03 Tank_phys OpAbsorption + 0 -27.2 137 -112 3.97e-06 0 0 0 Tank_phys initStep + 1 -1.66e+03 4.63e+03 -71.3 3.97e-06 3.97e-06 4.78e+03 4.78e+03 Tank_phys OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 42, Parent ID = 32 @@ -3439,16 +3444,16 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -92.6 158 -180 0.0295 0 0 0 Tank_phys initStep 1 -92.6 158 -180 0.0282 0.00138 0.00135 0.00135 Tank_phys msc - 2 -92.6 158 -180 0.0143 0.0139 0.0139 0.0153 Tank_phys eIoni - 3 -92.6 158 -180 0 0.0143 0.00463 0.0199 Tank_phys eIoni - 4 -92.6 158 -180 0 0 0 0.0199 Tank_phys NoProcess + 2 -92.6 158 -181 0.0143 0.0139 0.0139 0.0153 Tank_phys eIoni + 3 -92.6 158 -181 0 0.0143 0.00463 0.0199 Tank_phys eIoni + 4 -92.6 158 -181 0 0 0 0.0199 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 38 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -92.6 158 -180 2.52e-06 0 0 0 Tank_phys initStep + 0 -92.6 158 -181 2.52e-06 0 0 0 Tank_phys initStep 1 5e+03 3.23e+03 1.05e+03 2.52e-06 0 6.07e+03 6.07e+03 expHall_phys Transportation 2 5e+03 3.23e+03 1.05e+03 2.52e-06 0 0 6.07e+03 Tank_phys Transportation 3 3.95e+03 5e+03 702 2.52e-06 0 2.09e+03 8.16e+03 expHall_phys Transportation @@ -3838,9 +3843,9 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 2 3.33 10.2 15.9 0.201 1.36e-05 22.7 31.7 Tank_phys compt 3 0.888 23.1 59.7 0.136 1.42e-05 45.8 77.5 Tank_phys compt 4 42 10.7 55.1 0.135 1.42e-05 43.2 121 Tank_phys compt - 5 63.4 -1.94 54 0.123 1.42e-05 24.9 146 Tank_phys compt + 5 63.3 -1.94 54 0.123 1.42e-05 24.9 146 Tank_phys compt 6 67.2 -28.9 61.3 0.0843 1.36e-05 28.2 174 Tank_phys compt - 7 75.6 11.9 37.7 0.0753 2.92e-05 47.9 222 Tank_phys compt + 7 75.5 11.9 37.7 0.0753 2.92e-05 47.9 222 Tank_phys compt 8 114 -12.3 23.2 0 2.85e-05 48 270 Tank_phys phot ********************************************************************************************************* @@ -3873,22 +3878,22 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 1 114 -12.3 23.2 0.0709 0 0 0.00695 Tank_phys initStep 2 114 -12.3 23.2 0.0673 0.0036 0.00627 0.0132 Tank_phys msc - 3 114 -12.3 23.2 0.0542 0.0131 0.0292 0.0424 Tank_phys eIoni - 4 114 -12.3 23.2 0.0383 0.0159 0.0242 0.0666 Tank_phys eIoni - 5 114 -12.3 23.2 0.0235 0.0148 0.0183 0.0849 Tank_phys eIoni - 6 114 -12.3 23.2 0.00505 0.0184 0.0111 0.0961 Tank_phys eIoni - 7 114 -12.3 23.2 0 0.00505 0.000753 0.0968 Tank_phys eIoni - 8 114 -12.3 23.2 0 0 0 0.0968 Tank_phys NoProcess + 3 114 -12.4 23.2 0.0542 0.0131 0.0292 0.0424 Tank_phys eIoni + 4 114 -12.4 23.2 0.0383 0.0159 0.0242 0.0666 Tank_phys eIoni + 5 114 -12.4 23.2 0.0235 0.0148 0.0183 0.0849 Tank_phys eIoni + 6 114 -12.4 23.2 0.00505 0.0184 0.0111 0.0961 Tank_phys eIoni + 7 114 -12.4 23.2 0 0.00505 0.000753 0.0968 Tank_phys eIoni + 8 114 -12.4 23.2 0 0 0 0.0968 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 75, Parent ID = 31 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 75.6 11.9 37.7 0.00895 0 0 0 Tank_phys initStep - 1 75.6 11.9 37.7 0.00635 0.00261 0.000163 0.000163 Tank_phys msc - 2 75.6 12 37.7 0 0.00635 0.00112 0.00128 Tank_phys eIoni - 3 75.6 12 37.7 0 0 0 0.00128 Tank_phys NoProcess + 0 75.5 11.9 37.7 0.00895 0 0 0 Tank_phys initStep + 1 75.5 11.9 37.7 0.00635 0.00261 0.000163 0.000163 Tank_phys msc + 2 75.5 11.9 37.7 0 0.00635 0.00112 0.00128 Tank_phys eIoni + 3 75.5 11.9 37.7 0 0 0 0.00128 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 74, Parent ID = 31 @@ -3959,17 +3964,17 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 63.4 -1.94 54 0.0125 0 0 0 Tank_phys initStep - 1 63.4 -1.94 54 0.0121 0.000412 0.000292 0.000292 Tank_phys msc - 2 63.4 -1.94 54 0 0.0121 0.00344 0.00373 Tank_phys eIoni - 3 63.4 -1.94 54 0 0 0 0.00373 Tank_phys NoProcess + 0 63.3 -1.94 54 0.0125 0 0 0 Tank_phys initStep + 1 63.3 -1.94 54 0.0121 0.000412 0.000292 0.000292 Tank_phys msc + 2 63.3 -1.94 54 0 0.0121 0.00344 0.00373 Tank_phys eIoni + 3 63.3 -1.94 54 0 0 0 0.00373 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 81, Parent ID = 73 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 63.4 -1.94 54 2.34e-06 0 0 0 Tank_phys initStep + 0 63.3 -1.94 54 2.34e-06 0 0 0 Tank_phys initStep 1 -54 2e+03 -451 2.34e-06 2.34e-06 2.07e+03 2.07e+03 Bubble_phys Transportation ********************************************************************************************************* @@ -4565,7 +4570,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 10 -5e+03 3.92e+03 -2.85e+03 3.03e-06 0 0 2.71e+04 Tank_phys Transportation 11 -4.44e+03 5e+03 -688 3.03e-06 0 2.48e+03 2.96e+04 expHall_phys Transportation 12 -4.44e+03 5e+03 -688 3.03e-06 0 0 2.96e+04 Tank_phys Transportation - 13 -4.49e+03 4.62e+03 -1.53e+03 3.03e-06 0 924 3.05e+04 Tank_phys OpRayleigh + 13 -4.49e+03 4.61e+03 -1.53e+03 3.03e-06 0 924 3.05e+04 Tank_phys OpRayleigh 14 -5e+03 4.34e+03 -1.29e+03 3.03e-06 0 623 3.11e+04 expHall_phys Transportation 15 -1e+04 374 1.8e+03 3.03e-06 0 7.09e+03 3.82e+04 World_log_PV Transportation 16 -1.5e+04 -3.59e+03 4.89e+03 3.03e-06 0 7.09e+03 4.53e+04 OutOfWorld Transportation @@ -5089,30 +5094,30 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 2 -4.57 0.613 -6.96 0.108 2.92e-05 16.7 29.5 Tank_phys compt 3 -13.5 11.2 3.27 0.0822 0.000537 17.2 46.7 Tank_phys compt 4 97.7 40.7 -23.9 0.0751 1.36e-05 118 165 Tank_phys compt - 5 111 53.1 -110 0.0604 2.92e-05 88.4 253 Tank_phys compt - 6 91.8 41.3 -95.7 0.0487 1.36e-05 27.1 280 Tank_phys compt - 7 104 60.5 -111 0.0444 2.92e-05 27.3 308 Tank_phys compt + 5 111 53.1 -110 0.0604 2.92e-05 88.5 253 Tank_phys compt + 6 91.8 41.3 -95.7 0.0487 1.36e-05 27.1 281 Tank_phys compt + 7 104 60.4 -111 0.0444 2.92e-05 27.3 308 Tank_phys compt 8 113 70.3 -90.9 0.0441 1.42e-05 24.4 332 Tank_phys compt - 9 119 110 -50.5 0 0.000538 57.2 389 Tank_phys phot + 9 119 110 -50.6 0 0.000538 57.2 389 Tank_phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 63, Parent ID = 54 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 119 110 -50.5 0.0435 0 0 0 Tank_phys initStep - 1 119 110 -50.5 0.0392 0.00427 0.00267 0.00267 Tank_phys msc - 2 119 110 -50.5 0.0268 0.0124 0.0187 0.0214 Tank_phys eIoni - 3 119 110 -50.5 0.0105 0.0163 0.0132 0.0345 Tank_phys eIoni - 4 119 110 -50.5 0 0.0105 0.00271 0.0373 Tank_phys eIoni - 5 119 110 -50.5 0 0 0 0.0373 Tank_phys NoProcess + 0 119 110 -50.6 0.0435 0 0 0 Tank_phys initStep + 1 119 110 -50.6 0.0392 0.00427 0.00267 0.00267 Tank_phys msc + 2 119 110 -50.6 0.0268 0.0124 0.0187 0.0214 Tank_phys eIoni + 3 119 110 -50.6 0.0105 0.0163 0.0132 0.0345 Tank_phys eIoni + 4 119 110 -50.6 0 0.0105 0.00271 0.0373 Tank_phys eIoni + 5 119 110 -50.6 0 0 0 0.0373 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 64, Parent ID = 63 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 119 110 -50.5 2.41e-06 0 0 0 Tank_phys initStep + 0 119 110 -50.6 2.41e-06 0 0 0 Tank_phys initStep 1 5e+03 3.77e+03 -59.1 2.41e-06 0 6.1e+03 6.1e+03 expHall_phys Transportation 2 8.27e+03 1e+04 607 2.41e-06 0 7.07e+03 1.32e+04 World_log_PV Transportation 3 1.09e+04 1.5e+04 1.14e+03 2.41e-06 0 5.67e+03 1.88e+04 OutOfWorld Transportation @@ -5132,8 +5137,8 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 104 60.5 -111 0.00426 0 0 0 Tank_phys initStep - 1 104 60.5 -111 0.00416 9.92e-05 4.5e-05 4.5e-05 Tank_phys msc + 0 104 60.4 -111 0.00426 0 0 0 Tank_phys initStep + 1 104 60.4 -111 0.00416 9.92e-05 4.5e-05 4.5e-05 Tank_phys msc 2 104 60.5 -111 0 0.00416 0.00054 0.000585 Tank_phys eIoni 3 104 60.5 -111 0 0 0 0.000585 Tank_phys NoProcess @@ -5538,33 +5543,33 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 0 1 -0.619 -0.394 0.511 0 0 0 Tank_phys initStep 1 27.9 -38.6 -46.3 0.216 2.92e-05 65.4 65.4 Tank_phys compt 2 88.5 66.5 -34 0.127 1.42e-05 122 187 Tank_phys compt - 3 65.6 53.4 -60.2 0.12 1.42e-05 37.2 225 Tank_phys compt - 4 59 54.5 -93.9 0.0999 1.42e-05 34.4 259 Tank_phys compt - 5 72.4 17.8 -106 0.0955 0.000537 40.9 300 Tank_phys compt - 6 137 -15.4 -157 0.0711 1.36e-05 88.8 389 Tank_phys compt - 7 95.6 27.3 -146 0.0708 1.42e-05 60.5 449 Tank_phys compt + 3 65.6 53.4 -60.2 0.12 1.42e-05 37.3 225 Tank_phys compt + 4 59 54.5 -94 0.0999 1.42e-05 34.4 259 Tank_phys compt + 5 72.4 17.7 -106 0.0955 0.000537 40.9 300 Tank_phys compt + 6 137 -15.5 -157 0.0711 1.36e-05 88.9 389 Tank_phys compt + 7 95.7 27.3 -146 0.0708 1.42e-05 60.5 449 Tank_phys compt 8 89.7 30 -145 0.0642 1.36e-05 6.63 456 Tank_phys compt - 9 95.6 73.9 -83.2 0.0522 0.000537 75.8 532 Tank_phys compt - 10 106 76.1 -93.4 0.0444 0.000537 14.5 546 Tank_phys compt - 11 53.6 146 17.2 0.0378 1.36e-05 141 687 Tank_phys compt - 12 82.2 94.3 -27.3 0.0333 1.42e-05 74.1 761 Tank_phys compt - 13 84.1 103 -14.5 0 0.000538 15.5 777 Tank_phys phot + 9 95.6 73.9 -83.3 0.0522 0.000537 75.8 532 Tank_phys compt + 10 106 76 -93.5 0.0444 0.000537 14.5 546 Tank_phys compt + 11 53.6 146 17.1 0.0378 1.36e-05 141 687 Tank_phys compt + 12 82.2 94.2 -27.5 0.0333 1.42e-05 74.1 761 Tank_phys compt + 13 84.1 103 -14.7 0 0.000538 15.5 777 Tank_phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 96, Parent ID = 53 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 84.1 103 -14.5 0.0327 0 0 0 Tank_phys initStep - 1 84.1 103 -14.5 0.0305 0.00227 0.00161 0.00161 Tank_phys msc - 2 84.1 103 -14.5 0.0144 0.0161 0.0151 0.0167 Tank_phys eIoni + 0 84.1 103 -14.7 0.0327 0 0 0 Tank_phys initStep + 1 84.1 103 -14.7 0.0305 0.00227 0.00161 0.00161 Tank_phys msc + 2 84.1 103 -14.7 0.0144 0.0161 0.0151 0.0167 Tank_phys eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 97, Parent ID = 96 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 84.1 103 -14.5 3.56e-06 0 0 0 Tank_phys initStep + 0 84.1 103 -14.7 3.56e-06 0 0 0 Tank_phys initStep 1 -1.74e+03 2.08e+03 -5e+03 3.56e-06 0 5.67e+03 5.67e+03 expHall_phys Transportation 2 -6.13e+03 6.46e+03 -1e+04 3.56e-06 0 7.96e+03 1.36e+04 World_log_PV Transportation 3 -1.05e+04 1.08e+04 -1.5e+04 3.56e-06 0 7.96e+03 2.16e+04 OutOfWorld Transportation @@ -5574,66 +5579,66 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 84.1 103 -14.5 0.0144 0 0 0.0167 Tank_phys initStep - 3 84.1 103 -14.5 0.0142 0.000215 0.000377 0.017 Tank_phys msc - 4 84.1 103 -14.5 0 0.0142 0.00459 0.0216 Tank_phys eIoni - 5 84.1 103 -14.5 0 0 0 0.0216 Tank_phys NoProcess + 2 84.1 103 -14.7 0.0144 0 0 0.0167 Tank_phys initStep + 3 84.1 103 -14.7 0.0142 0.000215 0.000377 0.017 Tank_phys msc + 4 84.1 103 -14.7 0 0.0142 0.00459 0.0216 Tank_phys eIoni + 5 84.1 103 -14.7 0 0 0 0.0216 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 95, Parent ID = 53 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 82.2 94.3 -27.3 0.00452 0 0 0 Tank_phys initStep - 1 82.2 94.3 -27.3 0.00393 0.000587 4.97e-05 4.97e-05 Tank_phys msc - 2 82.2 94.3 -27.3 0 0.00393 0.00049 0.000539 Tank_phys eIoni - 3 82.2 94.3 -27.3 0 0 0 0.000539 Tank_phys NoProcess + 0 82.2 94.2 -27.5 0.00452 0 0 0 Tank_phys initStep + 1 82.2 94.2 -27.5 0.00393 0.000587 4.97e-05 4.97e-05 Tank_phys msc + 2 82.2 94.2 -27.5 0 0.00393 0.00049 0.000539 Tank_phys eIoni + 3 82.2 94.2 -27.5 0 0 0 0.000539 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 94, Parent ID = 53 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 53.6 146 17.2 0.00655 0 0 0 Tank_phys initStep - 1 53.6 146 17.2 0.00613 0.00042 9.44e-05 9.44e-05 Tank_phys msc - 2 53.6 146 17.2 0 0.00613 0.00105 0.00115 Tank_phys eIoni - 3 53.6 146 17.2 0 0 0 0.00115 Tank_phys NoProcess + 0 53.6 146 17.1 0.00655 0 0 0 Tank_phys initStep + 1 53.6 146 17.1 0.00613 0.00042 9.44e-05 9.44e-05 Tank_phys msc + 2 53.6 146 17.1 0 0.00613 0.00105 0.00115 Tank_phys eIoni + 3 53.6 146 17.1 0 0 0 0.00115 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 93, Parent ID = 53 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 106 76.1 -93.4 0.00726 0 0 0 Tank_phys initStep - 1 106 76.1 -93.4 0.00684 0.000424 0.000113 0.000113 Tank_phys msc - 2 106 76.1 -93.4 0 0.00684 0.00127 0.00139 Tank_phys eIoni - 3 106 76.1 -93.4 0 0 0 0.00139 Tank_phys NoProcess + 0 106 76 -93.5 0.00726 0 0 0 Tank_phys initStep + 1 106 76 -93.5 0.00684 0.000424 0.000113 0.000113 Tank_phys msc + 2 106 76 -93.5 0 0.00684 0.00127 0.00139 Tank_phys eIoni + 3 106 76 -93.5 0 0 0 0.00139 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 92, Parent ID = 53 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 95.6 73.9 -83.2 0.0115 0 0 0 Tank_phys initStep - 1 95.6 73.9 -83.2 0.0114 9.44e-05 0.000255 0.000255 Tank_phys msc - 2 95.6 73.9 -83.2 0 0.0114 0.00314 0.0034 Tank_phys eIoni - 3 95.6 73.9 -83.2 0 0 0 0.0034 Tank_phys NoProcess + 0 95.6 73.9 -83.3 0.0115 0 0 0 Tank_phys initStep + 1 95.6 73.9 -83.3 0.0114 9.44e-05 0.000255 0.000255 Tank_phys msc + 2 95.6 73.9 -83.3 0 0.0114 0.00314 0.0034 Tank_phys eIoni + 3 95.6 73.9 -83.3 0 0 0 0.0034 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 98, Parent ID = 92 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 95.6 73.9 -83.2 2.21e-06 0 0 0 Tank_phys initStep + 0 95.6 73.9 -83.3 2.21e-06 0 0 0 Tank_phys initStep 1 -2.77e+03 5e+03 2.48e+03 2.21e-06 0 6.25e+03 6.25e+03 expHall_phys Transportation 2 -2.77e+03 5e+03 2.48e+03 2.21e-06 0 0 6.25e+03 Tank_phys Transportation 3 -4.95e+03 1.71e+03 5e+03 2.21e-06 0 4.68e+03 1.09e+04 expHall_phys Transportation 4 -4.95e+03 1.71e+03 5e+03 2.21e-06 0 0 1.09e+04 Tank_phys Transportation - 5 -5e+03 1.64e+03 4.95e+03 2.21e-06 0 97 1.1e+04 expHall_phys Transportation + 5 -5e+03 1.64e+03 4.95e+03 2.21e-06 0 96.9 1.1e+04 expHall_phys Transportation 6 -5e+03 1.64e+03 4.95e+03 2.21e-06 0 0 1.1e+04 Tank_phys Transportation 7 5e+03 -2.94e+03 1.15e+03 2.21e-06 0 1.16e+04 2.27e+04 expHall_phys Transportation 8 5e+03 -2.94e+03 1.15e+03 2.21e-06 0 0 2.27e+04 Tank_phys Transportation - 9 -461 -3.09e+03 -5e+03 2.21e-06 0 8.22e+03 3.09e+04 expHall_phys Transportation + 9 -461 -3.09e+03 -5e+03 2.21e-06 0 8.23e+03 3.09e+04 expHall_phys Transportation 10 -461 -3.09e+03 -5e+03 2.21e-06 0 0 3.09e+04 Tank_phys Transportation 11 -1.43e+03 -5e+03 479 2.21e-06 0 5.88e+03 3.68e+04 expHall_phys Transportation 12 -1.43e+03 -5e+03 479 2.21e-06 0 0 3.68e+04 Tank_phys Transportation @@ -5654,29 +5659,29 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 95.6 27.3 -146 0.000217 0 0 0 Tank_phys initStep - 1 95.6 27.3 -146 0.000171 4.59e-05 6.15e-07 6.15e-07 Tank_phys msc - 2 95.6 27.3 -146 0 0.000171 6.34e-06 6.96e-06 Tank_phys eIoni - 3 95.6 27.3 -146 0 0 0 6.96e-06 Tank_phys NoProcess + 0 95.7 27.3 -146 0.000217 0 0 0 Tank_phys initStep + 1 95.7 27.3 -146 0.000171 4.59e-05 6.15e-07 6.15e-07 Tank_phys msc + 2 95.7 27.3 -146 0 0.000171 6.34e-06 6.96e-06 Tank_phys eIoni + 3 95.7 27.3 -146 0 0 0 6.96e-06 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 89, Parent ID = 53 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 137 -15.4 -157 0.0245 0 0 0 Tank_phys initStep - 1 137 -15.4 -157 0.0238 0.000661 0.000964 0.000964 Tank_phys msc - 2 137 -15.4 -157 0.00609 0.0177 0.0113 0.0123 Tank_phys eIoni - 3 137 -15.4 -157 0 0.00609 0.00104 0.0133 Tank_phys eIoni - 4 137 -15.4 -157 0 0 0 0.0133 Tank_phys NoProcess + 0 137 -15.5 -157 0.0245 0 0 0 Tank_phys initStep + 1 137 -15.5 -157 0.0238 0.000661 0.000964 0.000964 Tank_phys msc + 2 137 -15.5 -157 0.00609 0.0177 0.0113 0.0123 Tank_phys eIoni + 3 137 -15.5 -157 0 0.00609 0.00104 0.0133 Tank_phys eIoni + 4 137 -15.5 -157 0 0 0 0.0133 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 88, Parent ID = 53 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 72.4 17.8 -106 0.00386 0 0 0 Tank_phys initStep - 1 72.4 17.8 -106 0.00383 3.74e-05 3.8e-05 3.8e-05 Tank_phys msc + 0 72.4 17.7 -106 0.00386 0 0 0 Tank_phys initStep + 1 72.4 17.7 -106 0.00383 3.74e-05 3.8e-05 3.8e-05 Tank_phys msc 2 72.4 17.7 -106 0 0.00383 0.000467 0.000505 Tank_phys eIoni 3 72.4 17.7 -106 0 0 0 0.000505 Tank_phys NoProcess @@ -5695,15 +5700,15 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 59 54.5 -93.9 0.0198 0 0 0 Tank_phys initStep - 1 59 54.5 -93.9 0.0193 0.000471 0.000662 0.000662 Tank_phys msc + 0 59 54.5 -94 0.0198 0 0 0 Tank_phys initStep + 1 59 54.5 -94 0.0193 0.000471 0.000662 0.000662 Tank_phys msc ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 100, Parent ID = 87 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 59 54.5 -93.9 3.13e-06 0 0 0 Tank_phys initStep + 0 59 54.5 -94 3.13e-06 0 0 0 Tank_phys initStep 1 1.41e+03 -5e+03 1.43e+03 3.13e-06 0 5.45e+03 5.45e+03 expHall_phys Transportation 2 4.79e+03 -1e+04 4.53e+03 3.13e-06 0 6.78e+03 1.22e+04 World_log_PV Transportation 3 8.17e+03 -1.5e+04 7.63e+03 3.13e-06 0 6.78e+03 1.9e+04 OutOfWorld Transportation @@ -5713,10 +5718,10 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 59 54.5 -93.9 0.0193 0 0 0.000662 Tank_phys initStep - 2 59 54.5 -93.9 0.0186 0.000725 0.000635 0.0013 Tank_phys msc - 3 59 54.5 -93.9 0 0.0186 0.00741 0.00871 Tank_phys eIoni - 4 59 54.5 -93.9 0 0 0 0.00871 Tank_phys NoProcess + 1 59 54.5 -94 0.0193 0 0 0.000662 Tank_phys initStep + 2 59 54.5 -94 0.0186 0.000725 0.000635 0.0013 Tank_phys msc + 3 59 54.5 -94 0 0.0186 0.00741 0.00871 Tank_phys eIoni + 4 59 54.5 -94 0 0 0 0.00871 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 86, Parent ID = 53 @@ -6700,7 +6705,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 2 0.131 9.98 6.27 0.268 1.42e-05 4.73 14.4 Tank_phys compt 3 -7.93 25 -14.4 0.173 1.42e-05 26.7 41.2 Tank_phys compt 4 -37.3 -29 -37.2 0.14 1.42e-05 65.5 107 Tank_phys compt - 5 -17.2 -53.4 -27.9 0.111 1.36e-05 32.9 140 Tank_phys compt + 5 -17.2 -53.3 -27.9 0.111 1.36e-05 32.9 140 Tank_phys compt 6 -32.4 -52.2 17.7 0.0838 2.92e-05 48.1 188 Tank_phys compt 7 25.5 -62.7 4.88 0.0806 1.42e-05 60.3 248 Tank_phys compt 8 44.5 -79 -18.9 0.0604 0.000537 34.4 282 Tank_phys compt @@ -6726,8 +6731,8 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 0 -106 -82.2 103 3.29e-06 0 0 0 Tank_phys initStep 1 2.1e+03 -421 5e+03 3.29e-06 0 5.38e+03 5.38e+03 expHall_phys Transportation 2 2.1e+03 -421 5e+03 3.29e-06 0 0 5.38e+03 Tank_phys Transportation - 3 5e+03 87 3.08e+03 3.29e-06 0 3.51e+03 8.89e+03 expHall_phys Transportation - 4 5e+03 87 3.08e+03 3.29e-06 0 0 8.89e+03 Tank_phys Transportation + 3 5e+03 87.1 3.08e+03 3.29e-06 0 3.51e+03 8.89e+03 expHall_phys Transportation + 4 5e+03 87.1 3.08e+03 3.29e-06 0 0 8.89e+03 Tank_phys Transportation 5 -2.08e+03 2.23e+03 -5e+03 3.29e-06 0 1.1e+04 1.99e+04 expHall_phys Transportation 6 -2.08e+03 2.23e+03 -5e+03 3.29e-06 0 0 1.99e+04 Tank_phys Transportation 7 -5e+03 2.85e+03 -3.1e+03 3.29e-06 0 3.54e+03 2.34e+04 expHall_phys Transportation @@ -6758,8 +6763,8 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -106 -82.2 103 2.48e-06 0 0 0 Tank_phys initStep - 1 805 -5e+03 37.8 2.48e-06 0 5e+03 5e+03 expHall_phys Transportation - 2 2.91e+03 -1e+04 -40.9 2.48e-06 0 5.42e+03 1.04e+04 World_log_PV Transportation + 1 805 -5e+03 37.9 2.48e-06 0 5e+03 5e+03 expHall_phys Transportation + 2 2.91e+03 -1e+04 -40.8 2.48e-06 0 5.42e+03 1.04e+04 World_log_PV Transportation 3 5e+03 -1.5e+04 -120 2.48e-06 0 5.42e+03 1.58e+04 OutOfWorld Transportation ********************************************************************************************************* @@ -6835,16 +6840,16 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.2 -53.4 -27.9 0.0289 0 0 0 Tank_phys initStep - 1 -17.2 -53.4 -27.9 0.0283 0.000601 0.0013 0.0013 Tank_phys msc - 2 -17.2 -53.4 -27.9 0.00883 0.0195 0.014 0.0153 Tank_phys eIoni + 0 -17.2 -53.3 -27.9 0.0289 0 0 0 Tank_phys initStep + 1 -17.2 -53.3 -27.9 0.0283 0.000601 0.0013 0.0013 Tank_phys msc + 2 -17.2 -53.3 -27.9 0.00883 0.0195 0.014 0.0153 Tank_phys eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 64, Parent ID = 53 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -17.2 -53.4 -27.9 2.99e-06 0 0 0 Tank_phys initStep + 0 -17.2 -53.3 -27.9 2.99e-06 0 0 0 Tank_phys initStep 1 -5e+03 -2.43e+03 -2.67e+03 2.99e-06 0 6.12e+03 6.12e+03 expHall_phys Transportation 2 -5e+03 -2.43e+03 -2.67e+03 2.99e-06 0 0 6.12e+03 Tank_phys Transportation 3 -1.49e+03 -3.23e+03 -5e+03 2.99e-06 0 4.29e+03 1.04e+04 expHall_phys Transportation @@ -6856,10 +6861,10 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -17.2 -53.4 -27.9 0.00883 0 0 0.0153 Tank_phys initStep - 3 -17.2 -53.4 -27.9 0.00857 0.000259 0.000159 0.0155 Tank_phys msc - 4 -17.2 -53.4 -27.9 0 0.00857 0.00189 0.0174 Tank_phys eIoni - 5 -17.2 -53.4 -27.9 0 0 0 0.0174 Tank_phys NoProcess + 2 -17.2 -53.3 -27.9 0.00883 0 0 0.0153 Tank_phys initStep + 3 -17.2 -53.3 -27.9 0.00857 0.000259 0.000159 0.0155 Tank_phys msc + 4 -17.2 -53.3 -27.9 0 0.00857 0.00189 0.0174 Tank_phys eIoni + 5 -17.2 -53.3 -27.9 0 0 0 0.0174 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 52, Parent ID = 48 @@ -7125,54 +7130,54 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 2 -28 -51.4 -44.8 0.229 0.000537 39.4 111 Tank_phys compt 3 -59.7 -50.2 -33.7 0.155 1.42e-05 33.6 144 Tank_phys compt 4 -53.6 -33.1 -21.2 0.142 1.42e-05 22 166 Tank_phys compt - 5 -120 39.7 88.8 0.111 1.42e-05 148 314 Tank_phys compt - 6 -202 46.1 37.3 0.0944 1.36e-05 96.4 411 Tank_phys compt - 7 -200 -20.5 -1.6 0.0936 2.92e-05 77.1 488 Tank_phys compt - 8 -204 -32.7 -6.79 0.0788 1.36e-05 13.7 501 Tank_phys compt - 9 -115 -23.3 -80 0.0584 0.000537 115 617 Tank_phys compt - 10 -159 41.2 -52.8 0.0475 1.36e-05 82.6 699 Tank_phys compt - 11 4.17 -133 -171 0 2.85e-05 266 965 Tank_phys phot + 5 -120 39.6 88.8 0.111 1.42e-05 148 314 Tank_phys compt + 6 -201 46.1 37.2 0.0944 1.36e-05 96.4 411 Tank_phys compt + 7 -200 -20.6 -1.68 0.0936 2.92e-05 77.2 488 Tank_phys compt + 8 -204 -32.8 -6.87 0.0788 1.36e-05 13.7 501 Tank_phys compt + 9 -115 -23.4 -80.2 0.0584 0.000537 115 617 Tank_phys compt + 10 -159 41.1 -52.9 0.0475 1.36e-05 82.6 699 Tank_phys compt + 11 4.22 -133 -171 0 2.85e-05 266 965 Tank_phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 89, Parent ID = 47 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.17 -133 -171 0.0474 0 0 0 Tank_phys initStep - 1 4.17 -133 -171 0.0456 0.00181 0.00311 0.00311 Tank_phys msc + 0 4.22 -133 -171 0.0474 0 0 0 Tank_phys initStep + 1 4.23 -133 -171 0.0456 0.00181 0.00311 0.00311 Tank_phys msc ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 90, Parent ID = 89 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.17 -133 -171 2.64e-06 0 0 0 Tank_phys initStep + 0 4.22 -133 -171 2.64e-06 0 0 0 Tank_phys initStep 1 -4.67e+03 -3.53e+03 -5e+03 2.64e-06 0 7.53e+03 7.53e+03 expHall_phys Transportation 2 -4.67e+03 -3.53e+03 -5e+03 2.64e-06 0 0 7.53e+03 Tank_phys Transportation - 3 -5e+03 -3.79e+03 -4.53e+03 2.64e-06 0 632 8.16e+03 expHall_phys Transportation + 3 -5e+03 -3.79e+03 -4.53e+03 2.64e-06 0 633 8.16e+03 expHall_phys Transportation 4 -5e+03 -3.79e+03 -4.53e+03 2.64e-06 0 0 8.16e+03 Tank_phys Transportation 5 -2.38e+03 -5e+03 -3.29e+03 2.64e-06 0 3.14e+03 1.13e+04 expHall_phys Transportation 6 -2.38e+03 -5e+03 -3.29e+03 2.64e-06 0 0 1.13e+04 Tank_phys Transportation 7 5e+03 -2.86e+03 678 2.64e-06 0 8.64e+03 1.99e+04 expHall_phys Transportation 8 5e+03 -2.86e+03 678 2.64e-06 0 0 1.99e+04 Tank_phys Transportation - 9 4e+03 -2.46e+03 1.36e+03 2.64e-06 2.64e-06 1.28e+03 2.12e+04 Tank_phys OpAbsorption + 9 4e+03 -2.46e+03 1.37e+03 2.64e-06 2.64e-06 1.28e+03 2.12e+04 Tank_phys OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 89, Parent ID = 47 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 1 4.17 -133 -171 0.0456 0 0 0.00311 Tank_phys initStep - 2 4.17 -133 -171 0.0442 0.00138 0.0029 0.00601 Tank_phys msc - 3 4.19 -133 -171 0 0.0442 0.0205 0.0266 Tank_phys eIoni - 4 4.19 -133 -171 0 0 0 0.0266 Tank_phys NoProcess + 1 4.23 -133 -171 0.0456 0 0 0.00311 Tank_phys initStep + 2 4.23 -133 -171 0.0442 0.00138 0.0029 0.00601 Tank_phys msc + 3 4.24 -133 -171 0 0.0442 0.0205 0.0266 Tank_phys eIoni + 4 4.24 -133 -171 0 0 0 0.0266 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 93, Parent ID = 89 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.18 -133 -171 3.95e-06 0 0 0 Tank_phys initStep + 0 4.23 -133 -171 3.95e-06 0 0 0 Tank_phys initStep 1 -176 -5e+03 -2.71e+03 3.95e-06 0 5.49e+03 5.49e+03 expHall_phys Transportation 2 -176 -5e+03 -2.71e+03 3.95e-06 0 0 5.49e+03 Tank_phys Transportation 3 -687 -2.89e+03 -5e+03 3.95e-06 0 3.16e+03 8.65e+03 expHall_phys Transportation @@ -7184,22 +7189,22 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.18 -133 -171 2.3e-06 0 0 0 Tank_phys initStep + 0 4.24 -133 -171 2.3e-06 0 0 0 Tank_phys initStep 1 -3.04e+03 5e+03 3.02e+03 2.3e-06 0 6.77e+03 6.77e+03 expHall_phys Transportation 2 -3.04e+03 5e+03 3.02e+03 2.3e-06 0 0 6.77e+03 Tank_phys Transportation 3 -4.4e+03 4.6e+03 5e+03 2.3e-06 0 2.44e+03 9.2e+03 expHall_phys Transportation 4 -4.4e+03 4.6e+03 5e+03 2.3e-06 0 0 9.2e+03 Tank_phys Transportation 5 -5e+03 4.71e+03 4.24e+03 2.3e-06 0 968 1.02e+04 expHall_phys Transportation 6 -5e+03 4.71e+03 4.24e+03 2.3e-06 0 0 1.02e+04 Tank_phys Transportation - 7 -1.42e+03 5e+03 80.5 2.3e-06 0 5.5e+03 1.57e+04 expHall_phys Transportation - 8 -1.42e+03 5e+03 80.5 2.3e-06 0 0 1.57e+04 Tank_phys Transportation + 7 -1.42e+03 5e+03 80.2 2.3e-06 0 5.5e+03 1.57e+04 expHall_phys Transportation + 8 -1.42e+03 5e+03 80.2 2.3e-06 0 0 1.57e+04 Tank_phys Transportation 9 2.87e+03 3.16e+03 -5e+03 2.3e-06 0 6.89e+03 2.26e+04 expHall_phys Transportation 10 2.87e+03 3.16e+03 -5e+03 2.3e-06 0 0 2.26e+04 Tank_phys Transportation 11 5e+03 -2.62e+03 3.23e+03 2.3e-06 0 1.03e+04 3.29e+04 expHall_phys Transportation 12 5e+03 -2.62e+03 3.23e+03 2.3e-06 0 0 3.29e+04 Tank_phys Transportation 13 2.96e+03 -3.57e+03 5e+03 2.3e-06 0 2.86e+03 3.57e+04 expHall_phys Transportation 14 2.96e+03 -3.57e+03 5e+03 2.3e-06 0 0 3.57e+04 Tank_phys Transportation - 15 -483 -5e+03 3.88e+03 2.3e-06 0 3.9e+03 3.96e+04 expHall_phys Transportation + 15 -484 -5e+03 3.88e+03 2.3e-06 0 3.9e+03 3.96e+04 expHall_phys Transportation 16 -1e+04 -5.19e+03 479 2.3e-06 0 1.01e+04 4.97e+04 World_log_PV Transportation 17 -1.5e+04 -5.3e+03 -1.31e+03 2.3e-06 0 5.31e+03 5.5e+04 OutOfWorld Transportation @@ -7208,7 +7213,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.18 -133 -171 3.59e-06 0 0 0 Tank_phys initStep + 0 4.23 -133 -171 3.59e-06 0 0 0 Tank_phys initStep 1 -2.92e+03 -3.55e+03 -5e+03 3.59e-06 0 6.6e+03 6.6e+03 expHall_phys Transportation 2 -2.92e+03 -3.55e+03 -5e+03 3.59e-06 0 0 6.6e+03 Tank_phys Transportation 3 -3.55e+03 -5e+03 -4.83e+03 3.59e-06 0 1.59e+03 8.19e+03 expHall_phys Transportation @@ -7220,27 +7225,27 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -159 41.2 -52.8 0.0109 0 0 0 Tank_phys initStep - 1 -159 41.2 -52.8 0.0109 4.87e-05 0.000232 0.000232 Tank_phys msc - 2 -159 41.2 -52.8 0 0.0109 0.00287 0.0031 Tank_phys eIoni - 3 -159 41.2 -52.8 0 0 0 0.0031 Tank_phys NoProcess + 0 -159 41.1 -52.9 0.0109 0 0 0 Tank_phys initStep + 1 -159 41.1 -52.9 0.0109 4.87e-05 0.000232 0.000232 Tank_phys msc + 2 -159 41.1 -52.9 0 0.0109 0.00287 0.0031 Tank_phys eIoni + 3 -159 41.1 -52.9 0 0 0 0.0031 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 87, Parent ID = 47 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -115 -23.3 -80 0.0199 0 0 0 Tank_phys initStep - 1 -115 -23.3 -80 0.0191 0.000744 0.000667 0.000667 Tank_phys msc - 2 -115 -23.3 -80.1 0 0.0191 0.00779 0.00845 Tank_phys eIoni - 3 -115 -23.3 -80.1 0 0 0 0.00845 Tank_phys NoProcess + 0 -115 -23.4 -80.2 0.0199 0 0 0 Tank_phys initStep + 1 -115 -23.4 -80.2 0.0191 0.000744 0.000667 0.000667 Tank_phys msc + 2 -115 -23.4 -80.2 0 0.0191 0.00779 0.00845 Tank_phys eIoni + 3 -115 -23.4 -80.2 0 0 0 0.00845 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 94, Parent ID = 87 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -115 -23.3 -80.1 2.47e-06 0 0 0 Tank_phys initStep + 0 -115 -23.4 -80.2 2.47e-06 0 0 0 Tank_phys initStep 1 5e+03 1.04e+03 2.99e+03 2.47e-06 0 6.06e+03 6.06e+03 expHall_phys Transportation 2 5e+03 1.04e+03 2.99e+03 2.47e-06 0 0 6.06e+03 Tank_phys Transportation 3 3.61e+03 1.35e+03 5e+03 2.47e-06 0 2.46e+03 8.52e+03 expHall_phys Transportation @@ -7252,40 +7257,40 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -204 -32.7 -6.79 0.0148 0 0 0 Tank_phys initStep - 1 -204 -32.7 -6.79 0.0144 0.000391 0.000397 0.000397 Tank_phys msc - 2 -204 -32.7 -6.79 0 0.0144 0.00473 0.00512 Tank_phys eIoni - 3 -204 -32.7 -6.79 0 0 0 0.00512 Tank_phys NoProcess + 0 -204 -32.8 -6.87 0.0148 0 0 0 Tank_phys initStep + 1 -204 -32.8 -6.87 0.0144 0.000391 0.000397 0.000397 Tank_phys msc + 2 -204 -32.8 -6.87 0 0.0144 0.00473 0.00512 Tank_phys eIoni + 3 -204 -32.8 -6.87 0 0 0 0.00512 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 85, Parent ID = 47 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -200 -20.5 -1.6 0.00073 0 0 0 Tank_phys initStep - 1 -200 -20.5 -1.6 0 0.00073 2.6e-06 2.6e-06 Tank_phys msc - 2 -200 -20.5 -1.6 0 0 0 2.6e-06 Tank_phys NoProcess + 0 -200 -20.6 -1.68 0.00073 0 0 0 Tank_phys initStep + 1 -200 -20.6 -1.68 0 0.00073 2.6e-06 2.6e-06 Tank_phys msc + 2 -200 -20.6 -1.68 0 0 0 2.6e-06 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 84, Parent ID = 47 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -202 46.1 37.3 0.0161 0 0 0 Tank_phys initStep - 1 -202 46.1 37.3 0.0153 0.000827 0.000462 0.000462 Tank_phys msc - 2 -202 46.1 37.3 0 0.0153 0.00526 0.00572 Tank_phys eIoni - 3 -202 46.1 37.3 0 0 0 0.00572 Tank_phys NoProcess + 0 -201 46.1 37.2 0.0161 0 0 0 Tank_phys initStep + 1 -201 46.1 37.2 0.0153 0.000827 0.000462 0.000462 Tank_phys msc + 2 -201 46.1 37.2 0 0.0153 0.00526 0.00572 Tank_phys eIoni + 3 -201 46.1 37.2 0 0 0 0.00572 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 83, Parent ID = 47 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -120 39.7 88.8 0.0313 0 0 0 Tank_phys initStep - 1 -120 39.7 88.8 0.0296 0.00168 0.00149 0.00149 Tank_phys msc - 2 -120 39.7 88.8 0.0126 0.0171 0.0147 0.0162 Tank_phys eIoni - 3 -120 39.7 88.8 0 0.0126 0.00372 0.0199 Tank_phys eIoni - 4 -120 39.7 88.8 0 0 0 0.0199 Tank_phys NoProcess + 0 -120 39.6 88.8 0.0313 0 0 0 Tank_phys initStep + 1 -120 39.6 88.8 0.0296 0.00168 0.00149 0.00149 Tank_phys msc + 2 -120 39.6 88.8 0.0126 0.0171 0.0147 0.0162 Tank_phys eIoni + 3 -120 39.6 88.8 0 0.0126 0.00372 0.0199 Tank_phys eIoni + 4 -120 39.6 88.8 0 0 0 0.0199 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 82, Parent ID = 47 @@ -7943,9 +7948,9 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 3 5e+03 -4.83e+03 782 2.52e-06 0 191 7.24e+03 expHall_phys Transportation 4 5e+03 -4.83e+03 782 2.52e-06 0 0 7.24e+03 Tank_phys Transportation 5 1.42e+03 2.96e+03 4.15e+03 2.52e-06 0 9.21e+03 1.65e+04 Tank_phys OpRayleigh - 6 5e+03 4.96 1.92e+03 2.52e-06 0 5.15e+03 2.16e+04 expHall_phys Transportation - 7 5e+03 4.96 1.92e+03 2.52e-06 0 0 2.16e+04 Tank_phys Transportation - 8 4.48e+03 -347 1.95e+03 2.52e-06 2.52e-06 627 2.22e+04 Tank_phys OpAbsorption + 6 5e+03 4.97 1.92e+03 2.52e-06 0 5.15e+03 2.16e+04 expHall_phys Transportation + 7 5e+03 4.97 1.92e+03 2.52e-06 0 0 2.16e+04 Tank_phys Transportation + 8 4.48e+03 -346 1.95e+03 2.52e-06 2.52e-06 627 2.22e+04 Tank_phys OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 @@ -7962,8 +7967,8 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.759 -0.382 -0.0759 2.54e-06 0 0 0 Tank_phys initStep - 1 -446 -249 -1.03e+03 2.54e-06 2.54e-06 1.15e+03 1.15e+03 Tank_phys OpAbsorption + 0 0.761 -0.375 -0.0596 2.5e-06 0 0 0 Tank_phys initStep + 1 76.7 -455 904 2.5e-06 2.5e-06 1.01e+03 1.01e+03 Tank_phys OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 1 @@ -7978,11 +7983,11 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 5 -192 38.2 -103 0.291 0.000537 28 226 Tank_phys compt 6 -260 21.5 -68.1 0.146 2.92e-05 77.7 303 Tank_phys compt 7 -250 36.7 -91.4 0.102 1.36e-05 29.6 333 Tank_phys compt - 8 -241 45.2 -62.9 0.1 1.36e-05 31.1 364 Tank_phys compt + 8 -241 45.1 -62.8 0.1 1.36e-05 31.1 364 Tank_phys compt 9 -231 47.9 -51.1 0.0987 1.42e-05 15.7 380 Tank_phys compt - 10 -220 57.4 -37.5 0.0745 1.42e-05 19.9 400 Tank_phys compt + 10 -220 57.4 -37.5 0.0745 1.42e-05 20 400 Tank_phys compt 11 -210 26.2 -131 0.0576 1.42e-05 98.9 499 Tank_phys compt - 12 -187 44.4 -75.9 0.0478 2.92e-05 62.3 561 Tank_phys compt + 12 -187 44.3 -75.9 0.0478 2.92e-05 62.4 561 Tank_phys compt 13 -208 72.8 -152 0 0.000538 84.3 645 Tank_phys phot ********************************************************************************************************* @@ -8002,19 +8007,19 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -187 44.4 -75.9 0.00981 0 0 0 Tank_phys initStep - 1 -187 44.4 -75.9 0.00977 4.61e-05 0.000192 0.000192 Tank_phys msc - 2 -187 44.4 -75.9 0 0.00977 0.00237 0.00257 Tank_phys eIoni - 3 -187 44.4 -75.9 0 0 0 0.00257 Tank_phys NoProcess + 0 -187 44.3 -75.9 0.00981 0 0 0 Tank_phys initStep + 1 -187 44.3 -75.9 0.00977 4.61e-05 0.000192 0.000192 Tank_phys msc + 2 -187 44.3 -75.9 0 0.00977 0.00237 0.00257 Tank_phys eIoni + 3 -187 44.3 -75.9 0 0 0 0.00257 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 38, Parent ID = 36 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -187 44.4 -75.9 3.49e-06 0 0 0 Tank_phys initStep + 0 -187 44.3 -75.9 3.49e-06 0 0 0 Tank_phys initStep 1 245 1.15e+03 -4.42e+03 3.49e-06 0 4.5e+03 4.5e+03 Tank_phys OpRayleigh - 2 513 1.52e+03 -4.74e+03 3.49e-06 3.49e-06 559 5.06e+03 Tank_phys OpAbsorption + 2 514 1.52e+03 -4.74e+03 3.49e-06 3.49e-06 559 5.06e+03 Tank_phys OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 35, Parent ID = 23 @@ -8075,10 +8080,10 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -241 45.2 -62.9 0.00165 0 0 0 Tank_phys initStep - 1 -241 45.2 -62.9 0.00165 0 9.2e-06 9.2e-06 Tank_phys msc - 2 -241 45.2 -62.9 0 0.00165 0.000115 0.000124 Tank_phys eIoni - 3 -241 45.2 -62.9 0 0 0 0.000124 Tank_phys NoProcess + 0 -241 45.1 -62.8 0.00165 0 0 0 Tank_phys initStep + 1 -241 45.1 -62.8 0.00165 0 9.2e-06 9.2e-06 Tank_phys msc + 2 -241 45.1 -62.8 0 0.00165 0.000115 0.000124 Tank_phys eIoni + 3 -241 45.1 -62.8 0 0 0 0.000124 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 31, Parent ID = 23 @@ -8407,9 +8412,9 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 5 -5e+03 3.69e+03 3.03e+03 3.53e-06 0 0 7.63e+03 Tank_phys Transportation 6 -3.13e+03 5e+03 4.94e+03 3.53e-06 0 2.98e+03 1.06e+04 expHall_phys Transportation 7 -3.13e+03 5e+03 4.94e+03 3.53e-06 0 0 1.06e+04 Tank_phys Transportation - 8 -3.09e+03 4.99e+03 5e+03 3.53e-06 0 75.3 1.07e+04 expHall_phys Transportation + 8 -3.09e+03 4.99e+03 5e+03 3.53e-06 0 75.4 1.07e+04 expHall_phys Transportation 9 -3.09e+03 4.99e+03 5e+03 3.53e-06 0 0 1.07e+04 Tank_phys Transportation - 10 -3.06e+03 4.99e+03 4.95e+03 3.53e-06 0 63.2 1.07e+04 Tank_phys OpRayleigh + 10 -3.06e+03 4.99e+03 4.95e+03 3.53e-06 0 63.3 1.07e+04 Tank_phys OpRayleigh 11 -2.56e+03 -3.02e+03 -5e+03 3.53e-06 0 1.28e+04 2.35e+04 expHall_phys Transportation 12 -2.56e+03 -3.02e+03 -5e+03 3.53e-06 0 0 2.35e+04 Tank_phys Transportation 13 -3.15e+03 -4.47e+03 -3.26e+03 3.53e-06 3.53e-06 2.34e+03 2.59e+04 Tank_phys OpAbsorption @@ -8551,17 +8556,17 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 2 70.1 -30.8 -70.5 0.188 2.92e-05 34.7 146 Tank_phys compt 3 76.7 -53.2 -145 0.157 0.000537 78 224 Tank_phys compt 4 153 23.1 -226 0.102 1.42e-05 135 359 Tank_phys compt - 5 146 6.47 -157 0.0975 0.000537 72.2 431 Tank_phys compt - 6 133 7.5 -141 0.0812 1.36e-05 19.8 451 Tank_phys compt + 5 146 6.46 -157 0.0975 0.000537 72.2 431 Tank_phys compt + 6 133 7.5 -141 0.0812 1.36e-05 19.9 451 Tank_phys compt 7 132 6.75 -143 0.0734 0.000537 2.27 453 Tank_phys compt - 8 165 -38.6 -166 0 2.85e-05 60.9 514 Tank_phys phot + 8 165 -38.7 -166 0 2.85e-05 60.9 514 Tank_phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 71, Parent ID = 22 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 165 -38.6 -166 0.0734 0 0 0 Tank_phys initStep + 0 165 -38.7 -166 0.0734 0 0 0 Tank_phys initStep 1 165 -38.7 -166 0.0693 0.00412 0.00665 0.00665 Tank_phys msc 2 165 -38.7 -166 0.055 0.0143 0.03 0.0366 Tank_phys eIoni @@ -8641,18 +8646,18 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 133 7.5 -141 0.0163 0 0 0 Tank_phys initStep 1 133 7.5 -141 0.016 0.000283 0.000471 0.000471 Tank_phys msc - 2 133 7.51 -141 0 0.016 0.00571 0.00618 Tank_phys eIoni - 3 133 7.51 -141 0 0 0 0.00618 Tank_phys NoProcess + 2 133 7.5 -141 0 0.016 0.00571 0.00618 Tank_phys eIoni + 3 133 7.5 -141 0 0 0 0.00618 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 68, Parent ID = 22 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 146 6.47 -157 0.00355 0 0 0 Tank_phys initStep - 1 146 6.47 -157 0.00347 7.75e-05 3.29e-05 3.29e-05 Tank_phys msc - 2 146 6.47 -157 0 0.00347 0.000396 0.000429 Tank_phys eIoni - 3 146 6.47 -157 0 0 0 0.000429 Tank_phys NoProcess + 0 146 6.46 -157 0.00355 0 0 0 Tank_phys initStep + 1 146 6.46 -157 0.00347 7.75e-05 3.29e-05 3.29e-05 Tank_phys msc + 2 146 6.46 -157 0 0.00347 0.000396 0.000429 Tank_phys eIoni + 3 146 6.46 -157 0 0 0 0.000429 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 67, Parent ID = 22 @@ -9963,9 +9968,9 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 13 -1.19e+03 -3.74e+03 -5e+03 2.69e-06 0 0 3.46e+04 Tank_phys Transportation 14 -5e+03 -4.83e+03 809 2.69e-06 0 7.03e+03 4.16e+04 expHall_phys Transportation 15 -5e+03 -4.83e+03 809 2.69e-06 0 0 4.16e+04 Tank_phys Transportation - 16 -4.83e+03 -5e+03 1.03e+03 2.69e-06 0 331 4.19e+04 expHall_phys Transportation + 16 -4.83e+03 -5e+03 1.03e+03 2.69e-06 0 330 4.19e+04 expHall_phys Transportation 17 -4.83e+03 -5e+03 1.03e+03 2.69e-06 0 0 4.19e+04 Tank_phys Transportation - 18 -5e+03 -3.83e+03 2.06e+03 2.69e-06 0 1.57e+03 4.35e+04 expHall_phys Transportation + 18 -5e+03 -3.83e+03 2.06e+03 2.69e-06 0 1.56e+03 4.35e+04 expHall_phys Transportation 19 -5e+03 -3.83e+03 2.06e+03 2.69e-06 0 0 4.35e+04 Tank_phys Transportation 20 -2.46e+03 -1.05e+03 5e+03 2.69e-06 0 4.78e+03 4.83e+04 expHall_phys Transportation 21 7.51e+03 9.45e+03 1e+04 2.69e-06 0 1.53e+04 6.36e+04 World_log_PV Transportation @@ -10006,7 +10011,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 2 36.9 -13.6 -8.47 0.225 0.000537 26 65.1 Tank_phys compt 3 -23.7 -77.1 -25.9 0.169 0.000537 89.6 155 Tank_phys compt 4 -37.2 -73.3 -14.6 0.141 2.92e-05 18 173 Tank_phys compt - 5 -109 -67.3 -51.2 0.131 1.42e-05 80.4 253 Tank_phys compt + 5 -109 -67.3 -51.1 0.131 1.42e-05 80.4 253 Tank_phys compt 6 -140 -73.8 -42.3 0.0981 2.92e-05 33.3 286 Tank_phys compt 7 -114 -104 -31 0.0848 2.92e-05 41.8 328 Tank_phys compt 8 -156 -208 -132 0.0826 1.42e-05 151 479 Tank_phys compt @@ -10161,10 +10166,10 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -109 -67.3 -51.2 0.00942 0 0 0 Tank_phys initStep - 1 -109 -67.3 -51.2 0.00911 0.000308 0.000178 0.000178 Tank_phys msc - 2 -109 -67.3 -51.2 0 0.00911 0.0021 0.00228 Tank_phys eIoni - 3 -109 -67.3 -51.2 0 0 0 0.00228 Tank_phys NoProcess + 0 -109 -67.3 -51.1 0.00942 0 0 0 Tank_phys initStep + 1 -109 -67.3 -51.1 0.00911 0.000308 0.000178 0.000178 Tank_phys msc + 2 -109 -67.3 -51.1 0 0.00911 0.0021 0.00228 Tank_phys eIoni + 3 -109 -67.3 -51.1 0 0 0 0.00228 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 55, Parent ID = 51 @@ -10281,7 +10286,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 6 397 1.56e+03 5e+03 3e-06 0 0 1.6e+04 Tank_phys Transportation 7 3.24e+03 -5e+03 1.81e+03 3e-06 0 7.83e+03 2.38e+04 expHall_phys Transportation 8 3.24e+03 -5e+03 1.81e+03 3e-06 0 0 2.38e+04 Tank_phys Transportation - 9 4.52e+03 -2.56e+03 -2.74e+03 3e-06 0 5.32e+03 2.91e+04 Tank_phys OpRayleigh + 9 4.52e+03 -2.56e+03 -2.75e+03 3e-06 0 5.32e+03 2.91e+04 Tank_phys OpRayleigh 10 4.57e+03 2.33e+03 -5e+03 3e-06 0 5.38e+03 3.45e+04 expHall_phys Transportation 11 4.57e+03 2.33e+03 -5e+03 3e-06 0 0 3.45e+04 Tank_phys Transportation 12 3.56e+03 5e+03 -149 3e-06 0 5.63e+03 4.02e+04 expHall_phys Transportation @@ -10496,37 +10501,37 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 3 -188 115 202 0.237 1.42e-05 248 424 Tank_phys compt 4 -167 146 242 0.217 2.92e-05 55.6 479 Tank_phys compt 5 -142 166 249 0.126 2.92e-05 32.3 512 Tank_phys compt - 6 -154 86 211 0.118 1.42e-05 89.8 601 Tank_phys compt + 6 -154 86 211 0.118 1.42e-05 89.8 602 Tank_phys compt 7 -158 83.6 206 0.118 0 6.36 608 Tank_phys Rayl - 8 -197 57.8 152 0.0979 1.42e-05 71.7 680 Tank_phys compt - 9 -179 52.8 138 0.0953 2.92e-05 23.3 703 Tank_phys compt + 8 -197 57.7 152 0.0979 1.42e-05 71.7 680 Tank_phys compt + 9 -179 52.7 138 0.0953 2.92e-05 23.3 703 Tank_phys compt 10 -157 31.8 129 0.0918 0.000537 32.1 735 Tank_phys compt - 11 -83 -5.7 172 0.0892 1.36e-05 93.7 829 Tank_phys compt - 12 -39 -71.3 263 0.0673 1.42e-05 121 949 Tank_phys compt - 13 -36.7 -37 139 0.0646 1.36e-05 129 1.08e+03 Tank_phys compt - 14 -91.7 -119 -5.14 0.0561 2.92e-05 175 1.25e+03 Tank_phys compt - 15 -96.6 -119 -0.342 0.0531 1.42e-05 6.85 1.26e+03 Tank_phys compt - 16 -74.2 -141 82.9 0.0531 0 88.9 1.35e+03 Tank_phys Rayl - 17 -69.9 -147 106 0.0529 1.36e-05 24 1.37e+03 Tank_phys compt - 18 -78.7 -173 211 0.0452 1.42e-05 109 1.48e+03 Tank_phys compt - 19 -58.2 -236 116 0.0404 1.42e-05 116 1.6e+03 Tank_phys compt - 20 -10.5 -250 130 0 2.85e-05 51.7 1.65e+03 Tank_phys phot + 11 -83 -5.79 172 0.0892 1.36e-05 93.7 829 Tank_phys compt + 12 -38.9 -71.5 263 0.0673 1.42e-05 121 949 Tank_phys compt + 13 -36.7 -37.1 139 0.0646 1.36e-05 129 1.08e+03 Tank_phys compt + 14 -91.6 -119 -5.1 0.0561 2.92e-05 175 1.25e+03 Tank_phys compt + 15 -96.5 -120 -0.308 0.0531 1.42e-05 6.85 1.26e+03 Tank_phys compt + 16 -74.2 -142 82.9 0.0531 0 88.9 1.35e+03 Tank_phys Rayl + 17 -69.8 -147 106 0.0529 1.36e-05 24 1.37e+03 Tank_phys compt + 18 -78.6 -173 211 0.0452 1.42e-05 109 1.48e+03 Tank_phys compt + 19 -58.1 -236 116 0.0404 1.42e-05 116 1.6e+03 Tank_phys compt + 20 -10.4 -250 130 0 2.85e-05 51.8 1.65e+03 Tank_phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 101, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -10.5 -250 130 0.0403 0 0 0 Tank_phys initStep - 1 -10.5 -250 130 0.0381 0.00223 0.00234 0.00234 Tank_phys msc - 2 -10.5 -250 130 0.0217 0.0164 0.0183 0.0206 Tank_phys eIoni + 0 -10.4 -250 130 0.0403 0 0 0 Tank_phys initStep + 1 -10.4 -250 130 0.0381 0.00223 0.00234 0.00234 Tank_phys msc + 2 -10.4 -250 130 0.0217 0.0164 0.0183 0.0206 Tank_phys eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 102, Parent ID = 101 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -10.5 -250 130 3.85e-06 0 0 0 Tank_phys initStep + 0 -10.4 -250 130 3.85e-06 0 0 0 Tank_phys initStep 1 1.26e+03 -1.12e+03 94.4 3.85e-06 3.85e-06 1.54e+03 1.54e+03 Tank_phys OpAbsorption ********************************************************************************************************* @@ -10534,27 +10539,27 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -10.5 -250 130 0.0217 0 0 0.0206 Tank_phys initStep - 3 -10.5 -250 130 0.0212 0.000474 0.000779 0.0214 Tank_phys msc - 4 -10.5 -250 130 0 0.0212 0.00937 0.0307 Tank_phys eIoni - 5 -10.5 -250 130 0 0 0 0.0307 Tank_phys NoProcess + 2 -10.4 -250 130 0.0217 0 0 0.0206 Tank_phys initStep + 3 -10.4 -250 130 0.0212 0.000474 0.000779 0.0214 Tank_phys msc + 4 -10.4 -250 130 0 0.0212 0.00937 0.0307 Tank_phys eIoni + 5 -10.4 -250 130 0 0 0 0.0307 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 100, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -58.2 -236 116 0.00483 0 0 0 Tank_phys initStep - 1 -58.2 -236 116 0.00479 3.55e-05 5.57e-05 5.57e-05 Tank_phys msc - 2 -58.2 -236 116 0 0.00479 0.000688 0.000743 Tank_phys eIoni - 3 -58.2 -236 116 0 0 0 0.000743 Tank_phys NoProcess + 0 -58.1 -236 116 0.00483 0 0 0 Tank_phys initStep + 1 -58.1 -236 116 0.00479 3.55e-05 5.57e-05 5.57e-05 Tank_phys msc + 2 -58.1 -236 116 0 0.00479 0.000688 0.000743 Tank_phys eIoni + 3 -58.1 -236 116 0 0 0 0.000743 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 103, Parent ID = 100 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -58.2 -236 116 2.62e-06 0 0 0 Tank_phys initStep + 0 -58.1 -236 116 2.62e-06 0 0 0 Tank_phys initStep 1 1.36e+03 -1e+03 -5e+03 2.62e-06 0 5.36e+03 5.36e+03 expHall_phys Transportation 2 1.36e+03 -1e+03 -5e+03 2.62e-06 0 0 5.36e+03 Tank_phys Transportation 3 5e+03 -3.14e+03 -3.03e+03 2.62e-06 0 4.65e+03 1e+04 expHall_phys Transportation @@ -10566,17 +10571,17 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -78.7 -173 211 0.00766 0 0 0 Tank_phys initStep - 1 -78.7 -173 211 0.00746 0.000194 0.000124 0.000124 Tank_phys msc - 2 -78.7 -173 211 0 0.00746 0.00148 0.00161 Tank_phys eIoni - 3 -78.7 -173 211 0 0 0 0.00161 Tank_phys NoProcess + 0 -78.6 -173 211 0.00766 0 0 0 Tank_phys initStep + 1 -78.6 -173 211 0.00746 0.000194 0.000124 0.000124 Tank_phys msc + 2 -78.6 -173 211 0 0.00746 0.00148 0.00161 Tank_phys eIoni + 3 -78.6 -173 211 0 0 0 0.00161 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 105, Parent ID = 99 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -78.7 -173 211 2.74e-06 0 0 0 Tank_phys initStep + 0 -78.6 -173 211 2.74e-06 0 0 0 Tank_phys initStep 1 887 -649 321 2.74e-06 2.74e-06 1.08e+03 1.08e+03 Tank_phys OpAbsorption ********************************************************************************************************* @@ -10584,7 +10589,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -78.7 -173 211 2.22e-06 0 0 0 Tank_phys initStep + 0 -78.6 -173 211 2.22e-06 0 0 0 Tank_phys initStep 1 -223 -2.55e+03 946 2.22e-06 2.22e-06 2.49e+03 2.49e+03 Tank_phys OpAbsorption ********************************************************************************************************* @@ -10592,65 +10597,65 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -69.9 -147 106 0.000171 0 0 0 Tank_phys initStep - 1 -69.9 -147 106 0.000171 0 5.07e-07 5.07e-07 Tank_phys msc - 2 -69.9 -147 106 0 0.000171 6.33e-06 6.84e-06 Tank_phys eIoni - 3 -69.9 -147 106 0 0 0 6.84e-06 Tank_phys NoProcess + 0 -69.8 -147 106 0.000171 0 0 0 Tank_phys initStep + 1 -69.8 -147 106 0.000171 0 5.07e-07 5.07e-07 Tank_phys msc + 2 -69.8 -147 106 0 0.000171 6.33e-06 6.84e-06 Tank_phys eIoni + 3 -69.8 -147 106 0 0 0 6.84e-06 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 97, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -96.6 -119 -0.342 0.003 0 0 0 Tank_phys initStep - 1 -96.6 -119 -0.342 0.00297 2.96e-05 2.48e-05 2.48e-05 Tank_phys msc - 2 -96.6 -119 -0.342 0 0.00297 0.000304 0.000329 Tank_phys eIoni - 3 -96.6 -119 -0.342 0 0 0 0.000329 Tank_phys NoProcess + 0 -96.5 -120 -0.308 0.003 0 0 0 Tank_phys initStep + 1 -96.5 -120 -0.308 0.00297 2.96e-05 2.48e-05 2.48e-05 Tank_phys msc + 2 -96.5 -120 -0.308 0 0.00297 0.000304 0.000329 Tank_phys eIoni + 3 -96.5 -120 -0.308 0 0 0 0.000329 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 96, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -91.7 -119 -5.14 0.00851 0 0 0 Tank_phys initStep - 1 -91.7 -119 -5.14 0.00798 0.000529 0.000149 0.000149 Tank_phys msc - 2 -91.7 -119 -5.14 0 0.00798 0.00167 0.00182 Tank_phys eIoni - 3 -91.7 -119 -5.14 0 0 0 0.00182 Tank_phys NoProcess + 0 -91.6 -119 -5.1 0.00851 0 0 0 Tank_phys initStep + 1 -91.6 -119 -5.1 0.00798 0.000529 0.000149 0.000149 Tank_phys msc + 2 -91.6 -119 -5.1 0 0.00798 0.00167 0.00182 Tank_phys eIoni + 3 -91.6 -119 -5.1 0 0 0 0.00182 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 95, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.7 -37 139 0.00269 0 0 0 Tank_phys initStep - 1 -36.7 -37 139 0.00262 6.95e-05 2.06e-05 2.06e-05 Tank_phys msc - 2 -36.7 -37 139 0 0.00262 0.000247 0.000267 Tank_phys eIoni - 3 -36.7 -37 139 0 0 0 0.000267 Tank_phys NoProcess + 0 -36.7 -37.1 139 0.00269 0 0 0 Tank_phys initStep + 1 -36.7 -37.1 139 0.00262 6.95e-05 2.06e-05 2.06e-05 Tank_phys msc + 2 -36.7 -37.1 139 0 0.00262 0.000247 0.000267 Tank_phys eIoni + 3 -36.7 -37.1 139 0 0 0 0.000267 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 106, Parent ID = 95 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -36.7 -37 139 3.33e-06 0 0 0 Tank_phys initStep - 1 -95 -2.01e+03 1.27e+03 3.33e-06 3.33e-06 2.28e+03 2.28e+03 Tank_phys OpAbsorption + 0 -36.7 -37.1 139 3.33e-06 0 0 0 Tank_phys initStep + 1 -95 -2.02e+03 1.27e+03 3.33e-06 3.33e-06 2.28e+03 2.28e+03 Tank_phys OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 94, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -39 -71.3 263 0.0219 0 0 0 Tank_phys initStep - 1 -39 -71.3 263 0.0213 0.000555 0.000791 0.000791 Tank_phys msc - 2 -39 -71.3 263 0 0.0213 0.00944 0.0102 Tank_phys eIoni - 3 -39 -71.3 263 0 0 0 0.0102 Tank_phys NoProcess + 0 -38.9 -71.5 263 0.0219 0 0 0 Tank_phys initStep + 1 -38.9 -71.5 263 0.0213 0.000555 0.000791 0.000791 Tank_phys msc + 2 -38.9 -71.5 263 0 0.0213 0.00944 0.0102 Tank_phys eIoni + 3 -38.9 -71.5 263 0 0 0 0.0102 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 107, Parent ID = 94 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -39 -71.3 263 3.17e-06 0 0 0 Tank_phys initStep + 0 -38.9 -71.5 263 3.17e-06 0 0 0 Tank_phys initStep 1 -5e+03 -750 4.43e+03 3.17e-06 0 6.51e+03 6.51e+03 expHall_phys Transportation 2 -5e+03 -750 4.43e+03 3.17e-06 0 0 6.51e+03 Tank_phys Transportation 3 -4.78e+03 -660 5e+03 3.17e-06 0 620 7.13e+03 expHall_phys Transportation @@ -10664,10 +10669,10 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -83 -5.7 172 0.00253 0 0 0 Tank_phys initStep - 1 -83 -5.7 172 0.00245 7.29e-05 1.86e-05 1.86e-05 Tank_phys msc - 2 -83 -5.7 172 0 0.00245 0.000221 0.00024 Tank_phys eIoni - 3 -83 -5.7 172 0 0 0 0.00024 Tank_phys NoProcess + 0 -83 -5.79 172 0.00253 0 0 0 Tank_phys initStep + 1 -83 -5.79 172 0.00245 7.29e-05 1.86e-05 1.86e-05 Tank_phys msc + 2 -83 -5.79 172 0 0.00245 0.000221 0.00024 Tank_phys eIoni + 3 -83 -5.79 172 0 0 0 0.00024 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 92, Parent ID = 50 @@ -10684,20 +10689,20 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -179 52.8 138 0.00254 0 0 0 Tank_phys initStep - 1 -179 52.8 138 0.0025 4.18e-05 1.87e-05 1.87e-05 Tank_phys msc - 2 -179 52.8 138 0 0.0025 0.000228 0.000246 Tank_phys eIoni - 3 -179 52.8 138 0 0 0 0.000246 Tank_phys NoProcess + 0 -179 52.7 138 0.00254 0 0 0 Tank_phys initStep + 1 -179 52.7 138 0.0025 4.18e-05 1.87e-05 1.87e-05 Tank_phys msc + 2 -179 52.7 138 0 0.0025 0.000228 0.000246 Tank_phys eIoni + 3 -179 52.7 138 0 0 0 0.000246 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 90, Parent ID = 50 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -197 57.8 152 0.0198 0 0 0 Tank_phys initStep - 1 -197 57.8 152 0.019 0.0008 0.000663 0.000663 Tank_phys msc - 2 -197 57.8 152 0 0.019 0.0077 0.00836 Tank_phys eIoni - 3 -197 57.8 152 0 0 0 0.00836 Tank_phys NoProcess + 0 -197 57.7 152 0.0198 0 0 0 Tank_phys initStep + 1 -197 57.7 152 0.019 0.0008 0.000663 0.000663 Tank_phys msc + 2 -197 57.7 152 0 0.019 0.0077 0.00836 Tank_phys eIoni + 3 -197 57.7 152 0 0 0 0.00836 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 89, Parent ID = 50 @@ -11454,8 +11459,8 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 4 2.6e+03 5e+03 3.68e+03 4.11e-06 0 0 8.61e+03 Tank_phys Transportation 5 5e+03 2.88e+03 3.67e+03 4.11e-06 0 3.2e+03 1.18e+04 expHall_phys Transportation 6 5e+03 2.88e+03 3.67e+03 4.11e-06 0 0 1.18e+04 Tank_phys Transportation - 7 5e+03 2.88e+03 3.66e+03 4.11e-06 0 2.18 1.18e+04 Tank_phys OpRayleigh - 8 5e+03 2.87e+03 3.66e+03 4.11e-06 0 3.05 1.18e+04 expHall_phys Transportation + 7 5e+03 2.88e+03 3.66e+03 4.11e-06 0 2.2 1.18e+04 Tank_phys OpRayleigh + 8 5e+03 2.87e+03 3.66e+03 4.11e-06 0 3.07 1.18e+04 expHall_phys Transportation 9 5e+03 2.87e+03 3.66e+03 4.11e-06 0 0 1.18e+04 Tank_phys Transportation 10 -2.09e+03 -5e+03 3.15e+03 4.11e-06 0 1.06e+04 2.24e+04 expHall_phys Transportation 11 -2.09e+03 -5e+03 3.15e+03 4.11e-06 0 0 2.24e+04 Tank_phys Transportation @@ -11692,8 +11697,8 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 5 -912 4.79e+03 5e+03 3.47e-06 0 1.18e+03 1.32e+04 expHall_phys Transportation 6 -912 4.79e+03 5e+03 3.47e-06 0 0 1.32e+04 Tank_phys Transportation 7 -1.75e+03 4.31e+03 4.34e+03 3.47e-06 0 1.17e+03 1.43e+04 Tank_phys OpRayleigh - 8 -3.72e+03 5e+03 650 3.47e-06 0 4.24e+03 1.86e+04 expHall_phys Transportation - 9 -3.72e+03 5e+03 650 3.47e-06 0 0 1.86e+04 Tank_phys Transportation + 8 -3.72e+03 5e+03 649 3.47e-06 0 4.24e+03 1.86e+04 expHall_phys Transportation + 9 -3.72e+03 5e+03 649 3.47e-06 0 0 1.86e+04 Tank_phys Transportation 10 -3.76e+03 4.86e+03 468 3.47e-06 3.47e-06 233 1.88e+04 Tank_phys OpAbsorption ********************************************************************************************************* @@ -11817,35 +11822,35 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 3 -181 193 51.2 0.211 1.42e-05 89.8 348 Tank_phys compt 4 -174 92.4 92.3 0.151 1.42e-05 109 457 Tank_phys compt 5 -116 65.6 11.9 0.145 2.92e-05 103 559 Tank_phys compt - 6 -69.6 -7.02 -44.4 0.114 0.000537 103 662 Tank_phys compt + 6 -69.6 -6.99 -44.3 0.114 0.000537 103 662 Tank_phys compt 7 -53.3 20.7 -94.7 0.11 0.000537 59.8 722 Tank_phys compt 8 -60.6 67.9 -127 0.084 1.42e-05 57.4 780 Tank_phys compt - 9 -6.37 76.3 -42.9 0.0793 1.36e-05 100 880 Tank_phys compt - 10 -11.2 47.8 6.54 0.0773 0.000537 57.3 937 Tank_phys compt - 11 -11.8 46.7 7.22 0.0708 1.36e-05 1.42 938 Tank_phys compt + 9 -6.39 76.4 -42.9 0.0793 1.36e-05 100 880 Tank_phys compt + 10 -11.2 47.8 6.56 0.0773 0.000537 57.3 937 Tank_phys compt + 11 -11.9 46.8 7.25 0.0708 1.36e-05 1.42 938 Tank_phys compt 12 11.2 44.9 126 0.0586 1.36e-05 121 1.06e+03 Tank_phys compt - 13 22.5 55.2 114 0.0586 0 19.2 1.08e+03 Tank_phys Rayl + 13 22.5 55.3 114 0.0586 0 19.2 1.08e+03 Tank_phys Rayl 14 75.1 104 109 0.0491 1.36e-05 72 1.15e+03 Tank_phys compt - 15 6.63 89.9 60.1 0.0468 1.42e-05 85.2 1.24e+03 Tank_phys compt - 16 4.08 81.8 57.5 0.0411 1.42e-05 8.91 1.24e+03 Tank_phys compt - 17 -3.04 89.1 61.9 0 0.000538 11.2 1.26e+03 Tank_phys phot + 15 6.65 90 60.1 0.0468 1.42e-05 85.2 1.24e+03 Tank_phys compt + 16 4.1 81.8 57.5 0.0411 1.42e-05 8.92 1.24e+03 Tank_phys compt + 17 -3.02 89.2 62 0 0.000538 11.2 1.26e+03 Tank_phys phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 76, Parent ID = 60 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.04 89.1 61.9 0.0405 0 0 0 Tank_phys initStep - 1 -3.04 89.1 61.9 0.0391 0.00142 0.00236 0.00236 Tank_phys msc - 2 -3.04 89.1 61.9 0.0126 0.0265 0.0186 0.021 Tank_phys eIoni + 0 -3.02 89.2 62 0.0405 0 0 0 Tank_phys initStep + 1 -3.02 89.2 62 0.0391 0.00142 0.00236 0.00236 Tank_phys msc + 2 -3.02 89.2 62 0.0126 0.0265 0.0186 0.021 Tank_phys eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 78, Parent ID = 76 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.04 89.1 61.9 2.74e-06 0 0 0 Tank_phys initStep - 1 5e+03 539 1.81e+03 2.74e-06 0 5.32e+03 5.32e+03 expHall_phys Transportation + 0 -3.02 89.2 62 2.74e-06 0 0 0 Tank_phys initStep + 1 5e+03 540 1.81e+03 2.74e-06 0 5.32e+03 5.32e+03 expHall_phys Transportation 2 1e+04 843 4.3e+03 2.74e-06 0 5.59e+03 1.09e+04 World_log_PV Transportation 3 1.5e+04 1.15e+03 6.8e+03 2.74e-06 0 5.59e+03 1.65e+04 OutOfWorld Transportation @@ -11854,7 +11859,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.04 89.1 61.9 2.5e-06 0 0 0 Tank_phys initStep + 0 -3.02 89.2 62 2.5e-06 0 0 0 Tank_phys initStep 1 2.21e+03 4.48e+03 5e+03 2.5e-06 0 6.97e+03 6.97e+03 expHall_phys Transportation 2 2.21e+03 4.48e+03 5e+03 2.5e-06 0 0 6.97e+03 Tank_phys Transportation 3 5e+03 4.36e+03 2.45e+03 2.5e-06 0 3.78e+03 1.08e+04 expHall_phys Transportation @@ -11872,17 +11877,17 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 2 -3.04 89.1 61.9 0.0126 0 0 0.021 Tank_phys initStep - 3 -3.04 89.1 61.9 0.0126 1.08e-05 0.000296 0.0213 Tank_phys msc - 4 -3.04 89.1 61.9 0 0.0126 0.0037 0.025 Tank_phys eIoni - 5 -3.04 89.1 61.9 0 0 0 0.025 Tank_phys NoProcess + 2 -3.02 89.2 62 0.0126 0 0 0.021 Tank_phys initStep + 3 -3.02 89.2 62 0.0126 1.08e-05 0.000296 0.0213 Tank_phys msc + 4 -3.02 89.2 62 0 0.0126 0.0037 0.025 Tank_phys eIoni + 5 -3.02 89.2 62 0 0 0 0.025 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 80, Parent ID = 76 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.04 89.1 61.9 3.4e-06 0 0 0 Tank_phys initStep + 0 -3.02 89.2 62 3.4e-06 0 0 0 Tank_phys initStep 1 2.77e+03 -252 -445 3.4e-06 0 2.84e+03 2.84e+03 Tank_phys OpRayleigh 2 -2.42e+03 -2.44e+03 -5e+03 3.4e-06 0 7.24e+03 1.01e+04 expHall_phys Transportation 3 -2.42e+03 -2.44e+03 -5e+03 3.4e-06 0 0 1.01e+04 Tank_phys Transportation @@ -11903,7 +11908,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.04 89.1 61.9 2.96e-06 0 0 0 Tank_phys initStep + 0 -3.02 89.2 62 2.96e-06 0 0 0 Tank_phys initStep 1 -987 -5e+03 -3.96e+03 2.96e-06 0 6.56e+03 6.56e+03 expHall_phys Transportation 2 -987 -5e+03 -3.96e+03 2.96e-06 0 0 6.56e+03 Tank_phys Transportation 3 -1.28e+03 -3.91e+03 -5e+03 2.96e-06 0 1.54e+03 8.1e+03 expHall_phys Transportation @@ -11915,20 +11920,20 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 4.08 81.8 57.5 0.00576 0 0 0 Tank_phys initStep - 1 4.08 81.8 57.5 0.00576 0 7.54e-05 7.54e-05 Tank_phys msc - 2 4.08 81.8 57.5 0 0.00576 0.000943 0.00102 Tank_phys eIoni - 3 4.08 81.8 57.5 0 0 0 0.00102 Tank_phys NoProcess + 0 4.1 81.8 57.5 0.00576 0 0 0 Tank_phys initStep + 1 4.1 81.8 57.5 0.00576 0 7.54e-05 7.54e-05 Tank_phys msc + 2 4.1 81.8 57.5 0 0.00576 0.000943 0.00102 Tank_phys eIoni + 3 4.1 81.8 57.5 0 0 0 0.00102 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 74, Parent ID = 60 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 6.63 89.9 60.1 0.00229 0 0 0 Tank_phys initStep - 1 6.63 89.9 60.1 0.00218 0.000111 1.58e-05 1.58e-05 Tank_phys msc - 2 6.63 89.9 60.1 0 0.00218 0.000182 0.000198 Tank_phys eIoni - 3 6.63 89.9 60.1 0 0 0 0.000198 Tank_phys NoProcess + 0 6.65 90 60.1 0.00229 0 0 0 Tank_phys initStep + 1 6.65 90 60.1 0.00218 0.000111 1.58e-05 1.58e-05 Tank_phys msc + 2 6.65 90 60.1 0 0.00218 0.000182 0.000198 Tank_phys eIoni + 3 6.65 90 60.1 0 0 0 0.000198 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 73, Parent ID = 60 @@ -11965,17 +11970,17 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.8 46.7 7.22 0.00642 0 0 0 Tank_phys initStep - 1 -11.8 46.7 7.22 0.0062 0.000219 9.11e-05 9.11e-05 Tank_phys msc - 2 -11.8 46.7 7.22 0 0.0062 0.00107 0.00116 Tank_phys eIoni - 3 -11.8 46.7 7.22 0 0 0 0.00116 Tank_phys NoProcess + 0 -11.9 46.8 7.25 0.00642 0 0 0 Tank_phys initStep + 1 -11.9 46.8 7.25 0.0062 0.000219 9.11e-05 9.11e-05 Tank_phys msc + 2 -11.9 46.8 7.24 0 0.0062 0.00107 0.00116 Tank_phys eIoni + 3 -11.9 46.8 7.24 0 0 0 0.00116 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 82, Parent ID = 71 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.8 46.7 7.22 4.11e-06 0 0 0 Tank_phys initStep + 0 -11.9 46.8 7.25 4.11e-06 0 0 0 Tank_phys initStep 1 2.23e+03 -5e+03 -1.28e+03 4.11e-06 0 5.67e+03 5.67e+03 expHall_phys Transportation 2 2.23e+03 -5e+03 -1.28e+03 4.11e-06 0 0 5.67e+03 Tank_phys Transportation 3 5e+03 -3.51e+03 -1.49e+03 4.11e-06 0 3.15e+03 8.82e+03 expHall_phys Transportation @@ -11989,20 +11994,20 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -11.2 47.8 6.54 0.00146 0 0 0 Tank_phys initStep - 1 -11.2 47.8 6.54 0.00146 0 7.58e-06 7.58e-06 Tank_phys msc - 2 -11.2 47.8 6.54 0 0.00146 9.47e-05 0.000102 Tank_phys eIoni - 3 -11.2 47.8 6.54 0 0 0 0.000102 Tank_phys NoProcess + 0 -11.2 47.8 6.56 0.00146 0 0 0 Tank_phys initStep + 1 -11.2 47.8 6.56 0.00146 0 7.58e-06 7.58e-06 Tank_phys msc + 2 -11.2 47.8 6.56 0 0.00146 9.47e-05 0.000102 Tank_phys eIoni + 3 -11.2 47.8 6.56 0 0 0 0.000102 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 69, Parent ID = 60 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.37 76.3 -42.9 0.00469 0 0 0 Tank_phys initStep - 1 -6.37 76.3 -42.9 0.00464 5.44e-05 5.3e-05 5.3e-05 Tank_phys msc - 2 -6.37 76.3 -42.9 0 0.00464 0.000649 0.000702 Tank_phys eIoni - 3 -6.37 76.3 -42.9 0 0 0 0.000702 Tank_phys NoProcess + 0 -6.39 76.4 -42.9 0.00469 0 0 0 Tank_phys initStep + 1 -6.39 76.4 -42.9 0.00464 5.44e-05 5.3e-05 5.3e-05 Tank_phys msc + 2 -6.39 76.4 -42.9 0 0.00464 0.000649 0.000702 Tank_phys eIoni + 3 -6.39 76.4 -42.9 0 0 0 0.000702 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 68, Parent ID = 60 @@ -12029,11 +12034,11 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -69.6 -7.02 -44.4 0.0304 0 0 0 Tank_phys initStep - 1 -69.6 -7.02 -44.4 0.0291 0.00133 0.00142 0.00142 Tank_phys msc - 2 -69.6 -7.03 -44.4 0.0102 0.0189 0.0144 0.0158 Tank_phys eIoni - 3 -69.6 -7.03 -44.4 0 0.0102 0.00255 0.0183 Tank_phys eIoni - 4 -69.6 -7.03 -44.4 0 0 0 0.0183 Tank_phys NoProcess + 0 -69.6 -6.99 -44.3 0.0304 0 0 0 Tank_phys initStep + 1 -69.6 -6.99 -44.3 0.0291 0.00133 0.00142 0.00142 Tank_phys msc + 2 -69.6 -7 -44.3 0.0102 0.0189 0.0144 0.0158 Tank_phys eIoni + 3 -69.6 -7 -44.3 0 0.0102 0.00255 0.0183 Tank_phys eIoni + 4 -69.6 -7 -44.3 0 0 0 0.0183 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 65, Parent ID = 60 @@ -12328,15 +12333,15 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 5 88.8 -309 35.5 0.192 0 7.13 392 Tank_phys Rayl 6 84.5 -327 25.3 0.15 1.36e-05 20.5 413 Tank_phys compt 7 88.7 -330 26.5 0.106 1.42e-05 5.26 418 Tank_phys compt - 8 87.3 -325 7.86 0.0849 1.36e-05 19.2 437 Tank_phys compt + 8 87.3 -325 7.87 0.0849 1.36e-05 19.2 437 Tank_phys compt 9 65.9 -406 8.78 0.0839 1.42e-05 84 521 Tank_phys compt 10 55 -432 19 0.0721 1.42e-05 30.2 552 Tank_phys compt - 11 66.8 -465 -40.3 0.0608 2.92e-05 68.8 620 Tank_phys compt + 11 66.8 -465 -40.3 0.0608 2.92e-05 68.7 620 Tank_phys compt 12 179 -445 19.3 0.056 2.92e-05 129 749 Tank_phys compt 13 184 -441 13.6 0.055 0.000537 7.93 757 Tank_phys compt 14 218 -469 -20.9 0.0446 0.000537 56.1 813 Tank_phys compt - 15 217 -457 -12.2 0.0446 0 14.4 828 Tank_phys Rayl - 16 206 -433 -28.2 0.0408 0.000537 31.1 859 Tank_phys compt + 15 217 -457 -12.1 0.0446 0 14.4 828 Tank_phys Rayl + 16 206 -433 -28.1 0.0408 0.000537 31.1 859 Tank_phys compt 17 204 -438 -32.9 0 1.36e-05 7.11 866 Tank_phys phot ********************************************************************************************************* @@ -12346,15 +12351,15 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 204 -438 -32.9 0.0408 0 0 0 Tank_phys initStep 1 204 -438 -32.9 0.0389 0.00191 0.00239 0.00239 Tank_phys msc - 2 204 -438 -33 0.022 0.0169 0.0186 0.0209 Tank_phys eIoni - 3 204 -438 -33 0.0025 0.0195 0.01 0.031 Tank_phys eIoni + 2 204 -438 -32.9 0.022 0.0169 0.0186 0.0209 Tank_phys eIoni + 3 204 -438 -32.9 0.0025 0.0195 0.01 0.031 Tank_phys eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 113, Parent ID = 110 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 204 -438 -33 3.77e-06 0 0 0 Tank_phys initStep + 0 204 -438 -32.9 3.77e-06 0 0 0 Tank_phys initStep 1 -3.73e+03 464 -4.18e+03 3.77e-06 3.77e-06 5.79e+03 5.79e+03 Tank_phys OpAbsorption ********************************************************************************************************* @@ -12362,7 +12367,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 204 -438 -33 2.17e-06 0 0 0 Tank_phys initStep + 0 204 -438 -32.9 2.17e-06 0 0 0 Tank_phys initStep 1 4.7e+03 2.95e+03 -1.22e+03 2.17e-06 0 5.76e+03 5.76e+03 Tank_phys OpRayleigh 2 1.03e+03 5e+03 2.55e+03 2.17e-06 0 5.65e+03 1.14e+04 expHall_phys Transportation 3 1.03e+03 5e+03 2.55e+03 2.17e-06 0 0 1.14e+04 Tank_phys Transportation @@ -12375,7 +12380,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 204 -438 -33 2.04e-06 0 0 0 Tank_phys initStep + 0 204 -438 -32.9 2.04e-06 0 0 0 Tank_phys initStep 1 -1.97e+03 -514 -1.67e+03 2.04e-06 2.04e-06 2.72e+03 2.72e+03 Tank_phys OpAbsorption ********************************************************************************************************* @@ -12383,20 +12388,20 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 3 204 -438 -33 0.0025 0 0 0.031 Tank_phys initStep - 4 204 -438 -33 0.0025 0 1.82e-05 0.031 Tank_phys msc - 5 204 -438 -33 0 0.0025 0.000228 0.0312 Tank_phys eIoni - 6 204 -438 -33 0 0 0 0.0312 Tank_phys NoProcess + 3 204 -438 -32.9 0.0025 0 0 0.031 Tank_phys initStep + 4 204 -438 -32.9 0.0025 0 1.82e-05 0.031 Tank_phys msc + 5 204 -438 -32.9 0 0.0025 0.000228 0.0312 Tank_phys eIoni + 6 204 -438 -32.9 0 0 0 0.0312 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 109, Parent ID = 59 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 206 -433 -28.2 0.00324 0 0 0 Tank_phys initStep - 1 206 -433 -28.2 0.0032 3.59e-05 2.81e-05 2.81e-05 Tank_phys msc - 2 206 -433 -28.2 0 0.0032 0.000345 0.000373 Tank_phys eIoni - 3 206 -433 -28.2 0 0 0 0.000373 Tank_phys NoProcess + 0 206 -433 -28.1 0.00324 0 0 0 Tank_phys initStep + 1 206 -433 -28.1 0.0032 3.59e-05 2.81e-05 2.81e-05 Tank_phys msc + 2 206 -433 -28.1 0 0.0032 0.000345 0.000373 Tank_phys eIoni + 3 206 -433 -28.1 0 0 0 0.000373 Tank_phys NoProcess ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 108, Parent ID = 59 @@ -12483,7 +12488,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 87.3 -325 7.86 0.0209 0 0 0 Tank_phys initStep + 0 87.3 -325 7.87 0.0209 0 0 0 Tank_phys initStep 1 87.3 -325 7.86 0.0196 0.00126 0.000727 0.000727 Tank_phys msc 2 87.3 -325 7.86 0 0.0196 0.00814 0.00887 Tank_phys eIoni 3 87.3 -325 7.86 0 0 0 0.00887 Tank_phys NoProcess @@ -13579,9 +13584,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 1.28 0.187 0.296 2.52e-06 0 0 0 Tank_phys initStep 1 5e+03 -4.53e+03 -4.01e+03 2.52e-06 0 7.85e+03 7.85e+03 expHall_phys Transportation - 2 5e+03 -4.53e+03 -4.01e+03 2.52e-06 0 0 7.85e+03 Tank_phys Transportation - 3 4.4e+03 -5e+03 -4.23e+03 2.52e-06 0 789 8.64e+03 expHall_phys Transportation - + 2 5e+03 -4.53e+03 -4.01e+03 2.52e ============================================================================================ ================= lines above cut to keep file within limits =============================== ============================================================================================ @@ -13593,21 +13596,21 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Run terminated. Run Summary Number of events processed : 1000 - User=2.060000s Real=2.092069s Sys=0.000000s + User=1.890000s Real=1.902257s Sys=0.000000s ======================== run summary ====================== Primary particle was: e+ with energy 500 keV. Number of events: 1000 -Average number of Cerenkov photons created per event: 17.2 +- 5.71 -Average number of scintillation photons created per event: 76.1 +- 8.87 -Average number of optical Rayleigh interactions per event: 8.99 +- 3.35 -Average number of optical absorption interactions per event: 38.8 +- 6.42 -Average number of optical Mie interactions per event: 0.106 +- 0.327 -Average number of optical boundary interactions per event: 214 +- 30.8 +Average number of Cerenkov photons created per event: 17.3 +- 5.99 +Average number of scintillation photons created per event: 75.9 +- 8.93 +Average number of optical Rayleigh interactions per event: 8.75 +- 3.36 +Average number of optical absorption interactions per event: 39 +- 6.62 +Average number of optical Mie interactions per event: 0.128 +- 0.352 +Average number of optical boundary interactions per event: 212 +- 31.8 G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 9 of which, static: 0 -Dynamic pools deleted: 9 / Total memory freed: 0.038 MB +Dynamic pools deleted: 9 / Total memory freed: 0.035 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/optical/OpNovice/optPhoton.out b/examples/extended/optical/OpNovice/optPhoton.out index 3fa8c629d7..b99a637b98 100644 --- a/examples/extended/optical/OpNovice/optPhoton.out +++ b/examples/extended/optical/OpNovice/optPhoton.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -354,6 +354,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -381,7 +382,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -417,8 +418,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -448,8 +448,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -573,7 +573,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -989,6 +989,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1417,7 +1422,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.001436s Sys=0.000000s + User=0.010000s Real=0.001729s Sys=0.000000s ======================== run summary ====================== Primary particle was: opticalphoton with energy 3 eV . @@ -1457,7 +1462,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.150000s Real=0.153384s Sys=0.000000s + User=0.160000s Real=0.163319s Sys=0.000000s ======================== run summary ====================== Primary particle was: opticalphoton with energy 3 eV . diff --git a/examples/extended/optical/OpNovice2/.README.txt b/examples/extended/optical/OpNovice2/.README.txt index 43ee9faff2..be1a0b9924 100644 --- a/examples/extended/optical/OpNovice2/.README.txt +++ b/examples/extended/optical/OpNovice2/.README.txt @@ -149,19 +149,20 @@ Idle> exit \section OpNovice2_s8 MACROS Several macros are included. - boundary.mac: Set the surface to the various types and configurations of + - boundary.mac: Set the surface to the various types and configurations of model, type, etc., shoot optical photons, and record statistics - electron.mac: Shoot electrons and observe Cerenkov and scintillation radiation - fresnel.mac: Shoot optical photons of fixed polarization and random direction + - coated.mac: To show reflection/refraction from thin film coating + - electron.mac: Shoot electrons and observe Cerenkov and scintillation radiation + - fresnel.mac: Shoot optical photons of fixed polarization and random direction at a surface, and plot reflectance/transmittance vs incident angle. - complexRindex.mac: Use a dielectric-metal surface with a complex index of + - complexRindex.mac: Use a dielectric-metal surface with a complex index of refraction. - OpNovice2.mac: Shoot an optical photon inside a box. - scint_by_particle.mac: Configure scintillation to have particle-specific + - OpNovice2.mac: Shoot an optical photon inside a box. + - scint_by_particle.mac: Configure scintillation to have particle-specific yields and yield ratios. Shoot different types of particles. - vis.mac: Configure visualization. - wls.mac: Configure two wavelength-shifting processes, and shoot optical + - vis.mac: Configure visualization. + - wls.mac: Configure two wavelength-shifting processes, and shoot optical photons. */ diff --git a/examples/extended/optical/OpNovice2/CMakeLists.txt b/examples/extended/optical/OpNovice2/CMakeLists.txt index c4fc8b9ac2..3d43a684a6 100644 --- a/examples/extended/optical/OpNovice2/CMakeLists.txt +++ b/examples/extended/optical/OpNovice2/CMakeLists.txt @@ -46,6 +46,7 @@ set(OpNovice2_SCRIPTS complexRindex.mac electron.mac fresnel.mac + coated.mac scint_by_particle.mac vis.mac wls.mac diff --git a/examples/extended/optical/OpNovice2/History b/examples/extended/optical/OpNovice2/History index 538b4a0a00..f588072b60 100644 --- a/examples/extended/optical/OpNovice2/History +++ b/examples/extended/optical/OpNovice2/History @@ -4,6 +4,21 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-09 I. Hrivnacova (OpNovice2-V11-00-06) +- Fixed Doxygen documentation + +## 2022-10-26 Daren Sawkey (OpNovice2-V11-00-05) +- New macro coated.mac, and book-keeping code, to show reflection/refraction + from thin film coating. Contribution of Laurie Cappellugola et al, Aix Marseille U. + +## 2022-10-20 Daren Sawkey (OpNovice2-V11-00-04) +- SteppingAction: check that group velocity is correct. Trying to reproduce + bug 2442, 2438. + +## 2022-10-18 Daren Sawkey (OpNovice2-V11-00-03) +- SteppingAction: Don't include Absorbed or Detected photons in plots for + forward-going particles + ## 2022-04-28 Daren Sawkey (OpNovice2-V11-00-02) - Add local SteppingVerbose to print velocity with /tracking/verbose 1 diff --git a/examples/extended/optical/OpNovice2/OpNovice2.out b/examples/extended/optical/OpNovice2/OpNovice2.out index a72410e95d..5d6a9fc692 100644 --- a/examples/extended/optical/OpNovice2/OpNovice2.out +++ b/examples/extended/optical/OpNovice2/OpNovice2.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -235,6 +237,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -262,7 +265,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -298,8 +301,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -329,8 +331,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -454,7 +456,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -838,6 +840,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1130,7 +1137,7 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 100000 - User=1.290000s Real=1.308342s Sys=0.010000s + User=1.470000s Real=1.479308s Sys=0.000000s Run Summary --------------------------------- diff --git a/examples/extended/optical/OpNovice2/README b/examples/extended/optical/OpNovice2/README index 643cc7db11..b185cfbfab 100644 --- a/examples/extended/optical/OpNovice2/README +++ b/examples/extended/optical/OpNovice2/README @@ -130,17 +130,18 @@ 8- MACROS Several macros are included. - boundary.mac: Set the surface to the various types and configurations of + - boundary.mac: Set the surface to the various types and configurations of model, type, etc., shoot optical photons, and record statistics - electron.mac: Shoot electrons and observe Cerenkov and scintillation radiation - fresnel.mac: Shoot optical photons of fixed polarization and random direction + - coated.mac: To show reflection/refraction from thin film coating + - electron.mac: Shoot electrons and observe Cerenkov and scintillation radiation + - fresnel.mac: Shoot optical photons of fixed polarization and random direction at a surface, and plot reflectance/transmittance vs incident angle. - complexRindex.mac: Use a dielectric-metal surface with a complex index of + - complexRindex.mac: Use a dielectric-metal surface with a complex index of refraction. - OpNovice2.mac: Shoot an optical photon inside a box. - scint_by_particle.mac: Configure scintillation to have particle-specific + - OpNovice2.mac: Shoot an optical photon inside a box. + - scint_by_particle.mac: Configure scintillation to have particle-specific yields and yield ratios. Shoot different types of particles. - vis.mac: Configure visualization. - wls.mac: Configure two wavelength-shifting processes, and shoot optical + - vis.mac: Configure visualization. + - wls.mac: Configure two wavelength-shifting processes, and shoot optical photons. diff --git a/examples/extended/optical/OpNovice2/boundary.out b/examples/extended/optical/OpNovice2/boundary.out index d21003681b..f9226b8967 100644 --- a/examples/extended/optical/OpNovice2/boundary.out +++ b/examples/extended/optical/OpNovice2/boundary.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -280,7 +282,6 @@ OpWLS2 is created /opnovice2/gun/optPhotonPolar # /analysis/setFileName unified -Set file name: unified /analysis/h1/set 10 40 -1 39 /analysis/h1/set 11 100 -1.1 1.1 /analysis/h1/set 12 100 -1.1 1.1 @@ -314,6 +315,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -341,7 +343,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -377,8 +379,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -408,8 +409,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -533,7 +534,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -917,6 +918,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1209,7 +1215,7 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 10000 - User=0.260000s Real=0.262454s Sys=0.000000s + User=0.230000s Real=0.224553s Sys=0.000000s Run Summary --------------------------------- @@ -1251,9 +1257,9 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.720988 rms = 0.226951 Y momentum dir of backward-going photons: mean = 0.0346578 rms = 0.490875 Z momentum dir of backward-going photons: mean = -0.0078835 rms = 0.431797 - X momentum dir of forward-going photons: mean = 0.874189 rms = 0.0520985 - Y momentum dir of forward-going photons: mean = 0.475426 rms = 0.0728797 - Z momentum dir of forward-going photons: mean = -0.000867872 rms = 0.0416731 + X momentum dir of forward-going photons: mean = 0.860211 rms = 0.0612268 + Y momentum dir of forward-going photons: mean = 0.496349 rms = 0.0847609 + Z momentum dir of forward-going photons: mean = -0.00136924 rms = 0.0523376 X momentum dir of Fresnel-refracted photons: mean = 0.807506 rms = 0.0643027 Y momentum dir of Fresnel-refracted photons: mean = 0.57524 rms = 0.0798274 Z momentum dir of Fresnel-refracted photons: mean = -0.00325975 rms = 0.0807162 @@ -1298,7 +1304,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.120000s Real=0.129378s Sys=0.000000s + User=0.140000s Real=0.136260s Sys=0.000000s Run Summary --------------------------------- @@ -1337,8 +1343,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.898384 rms = 6.1934e-07 Y momentum dir of backward-going photons: mean = 0.43921 rms = 1.69981e-07 Z momentum dir of backward-going photons: mean = 0 rms = 0 - X momentum dir of forward-going photons: mean = 0.875318 rms = 0.0357669 - Y momentum dir of forward-going photons: mean = 0.478382 rms = 0.0607407 + X momentum dir of forward-going photons: mean = 0.862264 rms = 0.0391375 + Y momentum dir of forward-going photons: mean = 0.500552 rms = 0.0664648 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0.819857 rms = 4.71216e-08 Y momentum dir of Fresnel-refracted photons: mean = 0.572568 rms = 8.84707e-08 @@ -1405,7 +1411,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.130000s Real=0.127567s Sys=0.000000s + User=0.150000s Real=0.152509s Sys=0.000000s Run Summary --------------------------------- @@ -1444,8 +1450,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.670658 rms = 0.232053 Y momentum dir of backward-going photons: mean = -0.00486638 rms = 0.500942 Z momentum dir of backward-going photons: mean = 0.00525044 rms = 0.495354 - X momentum dir of forward-going photons: mean = 0.875864 rms = 0.0355147 - Y momentum dir of forward-going photons: mean = 0.477456 rms = 0.0603125 + X momentum dir of forward-going photons: mean = 0.86371 rms = 0.0389944 + Y momentum dir of forward-going photons: mean = 0.498096 rms = 0.0662218 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0.819857 rms = 5.47504e-08 Y momentum dir of Fresnel-refracted photons: mean = 0.572568 rms = 9.12506e-08 @@ -1518,7 +1524,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.130000s Real=0.170074s Sys=0.000000s + User=0.160000s Real=0.156718s Sys=0.000000s Run Summary --------------------------------- @@ -1556,8 +1562,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.898384 rms = 6.34394e-07 Y momentum dir of backward-going photons: mean = 0.43921 rms = 1.71929e-07 Z momentum dir of backward-going photons: mean = 0 rms = 0 - X momentum dir of forward-going photons: mean = 0.898384 rms = 1.95994e-07 - Y momentum dir of forward-going photons: mean = 0.43921 rms = 1.04971e-07 + X momentum dir of forward-going photons: mean = 0.898384 rms = 1.80051e-07 + Y momentum dir of forward-going photons: mean = 0.43921 rms = 8.65679e-08 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 Y momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 @@ -1598,7 +1604,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.150000s Real=0.147604s Sys=0.000000s + User=0.170000s Real=0.171693s Sys=0.000000s Run Summary --------------------------------- @@ -1636,8 +1642,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.666296 rms = 0.232659 Y momentum dir of backward-going photons: mean = -0.00214743 rms = 0.500117 Z momentum dir of backward-going photons: mean = 0.000440326 rms = 0.501795 - X momentum dir of forward-going photons: mean = 0.898384 rms = 1.95427e-07 - Y momentum dir of forward-going photons: mean = 0.43921 rms = 9.85619e-08 + X momentum dir of forward-going photons: mean = 0.898384 rms = 1.75049e-07 + Y momentum dir of forward-going photons: mean = 0.43921 rms = 8.1617e-08 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 Y momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 @@ -1678,7 +1684,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.740000s Real=0.821421s Sys=0.000000s + User=0.830000s Real=0.832997s Sys=0.000000s Run Summary --------------------------------- @@ -1720,9 +1726,9 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.723433 rms = 0.226173 Y momentum dir of backward-going photons: mean = 0.0427161 rms = 0.487412 Z momentum dir of backward-going photons: mean = 0.00275586 rms = 0.431378 - X momentum dir of forward-going photons: mean = 0.744109 rms = 0.230078 - Y momentum dir of forward-going photons: mean = 0.129661 rms = 0.468665 - Z momentum dir of forward-going photons: mean = -0.00870147 rms = 0.396019 + X momentum dir of forward-going photons: mean = 0.750192 rms = 0.224457 + Y momentum dir of forward-going photons: mean = 0.16505 rms = 0.4472 + Z momentum dir of forward-going photons: mean = 0.000906528 rms = 0.399501 X momentum dir of Fresnel-refracted photons: mean = -0.753612 rms = 0.232061 Y momentum dir of Fresnel-refracted photons: mean = 0.122198 rms = 0.451181 Z momentum dir of Fresnel-refracted photons: mean = -0.0280522 rms = 0.398663 @@ -1762,7 +1768,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.740000s Real=0.750019s Sys=0.010000s + User=0.830000s Real=0.832168s Sys=0.000000s Run Summary --------------------------------- @@ -1804,9 +1810,9 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.725695 rms = 0.225527 Y momentum dir of backward-going photons: mean = 0.0473025 rms = 0.483795 Z momentum dir of backward-going photons: mean = 0.000246226 rms = 0.43152 - X momentum dir of forward-going photons: mean = 0.711575 rms = 0.241704 - Y momentum dir of forward-going photons: mean = 0.102294 rms = 0.480997 - Z momentum dir of forward-going photons: mean = 0.0205167 rms = 0.439314 + X momentum dir of forward-going photons: mean = 0.70093 rms = 0.243467 + Y momentum dir of forward-going photons: mean = 0.0957969 rms = 0.486993 + Z momentum dir of forward-going photons: mean = 0.0366591 rms = 0.449153 X momentum dir of Fresnel-refracted photons: mean = -0.67226 rms = 0.249608 Y momentum dir of Fresnel-refracted photons: mean = 0.0115693 rms = 0.50363 Z momentum dir of Fresnel-refracted photons: mean = -0.0425384 rms = 0.479766 @@ -1851,7 +1857,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.130000s Real=0.134577s Sys=0.000000s + User=0.160000s Real=0.159462s Sys=0.000000s Run Summary --------------------------------- @@ -1889,8 +1895,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.898384 rms = 6.35967e-07 Y momentum dir of backward-going photons: mean = 0.43921 rms = 1.72171e-07 Z momentum dir of backward-going photons: mean = 0 rms = 0 - X momentum dir of forward-going photons: mean = 0.898384 rms = 1.95427e-07 - Y momentum dir of forward-going photons: mean = 0.43921 rms = 9.98211e-08 + X momentum dir of forward-going photons: mean = 0.898384 rms = 1.75998e-07 + Y momentum dir of forward-going photons: mean = 0.43921 rms = 8.27987e-08 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 Y momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 @@ -1931,7 +1937,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.150000s Real=0.157012s Sys=0.000000s + User=0.180000s Real=0.180076s Sys=0.000000s Run Summary --------------------------------- @@ -1972,8 +1978,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.71706 rms = 0.229153 Y momentum dir of backward-going photons: mean = 0.0278294 rms = 0.494429 Z momentum dir of backward-going photons: mean = -0.000614049 rms = 0.433681 - X momentum dir of forward-going photons: mean = 0.898384 rms = 1.95994e-07 - Y momentum dir of forward-going photons: mean = 0.43921 rms = 1.03908e-07 + X momentum dir of forward-going photons: mean = 0.898384 rms = 1.78503e-07 + Y momentum dir of forward-going photons: mean = 0.43921 rms = 8.56007e-08 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 Y momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 @@ -1997,7 +2003,6 @@ View them with "/vis/plot" or "/vis/reviewPlots". /opnovice2/surfaceFinish polished /run/geometryModified /analysis/setFileName glisur -Set file name: glisur /run/initialize /run/beamOn 10000 @@ -2026,7 +2031,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.150000s Real=0.158073s Sys=0.000000s + User=0.140000s Real=0.140206s Sys=0.000000s Run Summary --------------------------------- @@ -2065,8 +2070,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.898384 rms = 6.1943e-07 Y momentum dir of backward-going photons: mean = 0.43921 rms = 1.69981e-07 Z momentum dir of backward-going photons: mean = 0 rms = 0 - X momentum dir of forward-going photons: mean = 0.875887 rms = 0.0355035 - Y momentum dir of forward-going photons: mean = 0.477415 rms = 0.0602935 + X momentum dir of forward-going photons: mean = 0.863213 rms = 0.0390496 + Y momentum dir of forward-going photons: mean = 0.498939 rms = 0.0663156 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0.819857 rms = 5.77119e-08 Y momentum dir of Fresnel-refracted photons: mean = 0.572568 rms = 9.24593e-08 @@ -2133,7 +2138,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.170000s Real=0.181164s Sys=0.000000s + User=0.150000s Real=0.149739s Sys=0.000000s Run Summary --------------------------------- @@ -2172,8 +2177,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.665679 rms = 0.237039 Y momentum dir of backward-going photons: mean = 0.00323197 rms = 0.499428 Z momentum dir of backward-going photons: mean = 0.00393247 rms = 0.501227 - X momentum dir of forward-going photons: mean = 0.876202 rms = 0.0353534 - Y momentum dir of forward-going photons: mean = 0.476881 rms = 0.0600386 + X momentum dir of forward-going photons: mean = 0.86315 rms = 0.0390561 + Y momentum dir of forward-going photons: mean = 0.499046 rms = 0.0663267 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0.819857 rms = 6.14391e-08 Y momentum dir of Fresnel-refracted photons: mean = 0.572568 rms = 9.36523e-08 @@ -2248,7 +2253,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.130000s Real=0.166371s Sys=0.000000s + User=0.160000s Real=0.156099s Sys=0.000000s Run Summary --------------------------------- @@ -2288,9 +2293,9 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.57387 rms = 0.280293 Y momentum dir of backward-going photons: mean = 0.318401 rms = 0.489987 Z momentum dir of backward-going photons: mean = -0.00339989 rms = 0.50063 - X momentum dir of forward-going photons: mean = 0.872571 rms = 0.074788 - Y momentum dir of forward-going photons: mean = 0.468585 rms = 0.080761 - Z momentum dir of forward-going photons: mean = -0.000613873 rms = 0.0832623 + X momentum dir of forward-going photons: mean = 0.856952 rms = 0.0912705 + Y momentum dir of forward-going photons: mean = 0.486358 rms = 0.0981361 + Z momentum dir of forward-going photons: mean = -0.000985291 rms = 0.105483 X momentum dir of Fresnel-refracted photons: mean = 0.802852 rms = 0.106683 Y momentum dir of Fresnel-refracted photons: mean = 0.554123 rms = 0.116838 Z momentum dir of Fresnel-refracted photons: mean = -0.00293762 rms = 0.152759 @@ -2337,7 +2342,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.130000s Real=0.135767s Sys=0.000000s + User=0.150000s Real=0.156581s Sys=0.000000s Run Summary --------------------------------- @@ -2375,8 +2380,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.898384 rms = 6.35618e-07 Y momentum dir of backward-going photons: mean = 0.43921 rms = 1.7201e-07 Z momentum dir of backward-going photons: mean = 0 rms = 0 - X momentum dir of forward-going photons: mean = 0.898384 rms = 1.95427e-07 - Y momentum dir of forward-going photons: mean = 0.43921 rms = 1.00927e-07 + X momentum dir of forward-going photons: mean = 0.898384 rms = 1.75366e-07 + Y momentum dir of forward-going photons: mean = 0.43921 rms = 8.1617e-08 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 Y momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 @@ -2417,7 +2422,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.420000s Real=0.427520s Sys=0.000000s + User=0.390000s Real=0.391231s Sys=0.000000s Run Summary --------------------------------- @@ -2456,8 +2461,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.898384 rms = 6.34744e-07 Y momentum dir of backward-going photons: mean = 0.43921 rms = 1.74652e-07 Z momentum dir of backward-going photons: mean = 0 rms = 0 - X momentum dir of forward-going photons: mean = 0.912889 rms = 1.28617e-07 - Y momentum dir of forward-going photons: mean = 0.408207 rms = 5.18873e-08 + X momentum dir of forward-going photons: mean = 0.912889 rms = 1.10007e-07 + Y momentum dir of forward-going photons: mean = 0.408207 rms = 4.7707e-08 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = -0.898384 rms = 4.94216e-08 Y momentum dir of Fresnel-refracted photons: mean = 0.43921 rms = 4.18163e-08 @@ -2498,7 +2503,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.140000s Real=0.150851s Sys=0.000000s + User=0.160000s Real=0.163997s Sys=0.000000s Run Summary --------------------------------- @@ -2536,8 +2541,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.668927 rms = 0.233197 Y momentum dir of backward-going photons: mean = 0.00455305 rms = 0.499985 Z momentum dir of backward-going photons: mean = 0.0006191 rms = 0.498146 - X momentum dir of forward-going photons: mean = 0.898384 rms = 1.94573e-07 - Y momentum dir of forward-going photons: mean = 0.43921 rms = 9.62827e-08 + X momentum dir of forward-going photons: mean = 0.898384 rms = 1.75366e-07 + Y momentum dir of forward-going photons: mean = 0.43921 rms = 8.14468e-08 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 Y momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 @@ -2578,10 +2583,21 @@ Index : 1 used in the geometry : Yes ... create file : glisur.root - done ... open analysis file : glisur.root - done ... open analysis file : glisur.root - done + +-------- WWWW ------- G4Exception-START -------- WWWW ------- +*** G4Exception : OpBoun06 + issued by : G4OpBoundaryProcess +G4OpBoundaryProcess: Opticalphoton step length: 2.43136e-09 mm. +This is larger than the threshold 1e-09 mm to set status StepTooSmall. +Boundary scattering may be incorrect. + +*** This is just a warning message. *** +-------- WWWW -------- G4Exception-END --------- WWWW ------- + Run terminated. Run Summary Number of events processed : 10000 - User=0.360000s Real=0.367694s Sys=0.010000s + User=0.400000s Real=0.400961s Sys=0.000000s Run Summary --------------------------------- @@ -2620,9 +2636,9 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.581268 rms = 0.276491 Y momentum dir of backward-going photons: mean = 0.28925 rms = 0.499641 Z momentum dir of backward-going photons: mean = -0.00241224 rms = 0.502363 - X momentum dir of forward-going photons: mean = 0.623985 rms = 0.299056 - Y momentum dir of forward-going photons: mean = 0.0978792 rms = 0.517803 - Z momentum dir of forward-going photons: mean = 0.0121155 rms = 0.493316 + X momentum dir of forward-going photons: mean = 0.628043 rms = 0.302429 + Y momentum dir of forward-going photons: mean = 0.140535 rms = 0.502935 + Z momentum dir of forward-going photons: mean = 0.00998157 rms = 0.491228 X momentum dir of Fresnel-refracted photons: mean = -0.637031 rms = 0.269848 Y momentum dir of Fresnel-refracted photons: mean = -0.0229246 rms = 0.511249 Z momentum dir of Fresnel-refracted photons: mean = 0.00207596 rms = 0.50938 @@ -2670,7 +2686,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.130000s Real=0.136930s Sys=0.000000s + User=0.150000s Real=0.152017s Sys=0.000000s Run Summary --------------------------------- @@ -2708,8 +2724,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.898384 rms = 6.34132e-07 Y momentum dir of backward-going photons: mean = 0.43921 rms = 1.71929e-07 Z momentum dir of backward-going photons: mean = 0 rms = 0 - X momentum dir of forward-going photons: mean = 0.898384 rms = 1.95994e-07 - Y momentum dir of forward-going photons: mean = 0.43921 rms = 1.0563e-07 + X momentum dir of forward-going photons: mean = 0.898384 rms = 1.77568e-07 + Y momentum dir of forward-going photons: mean = 0.43921 rms = 8.41289e-08 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 Y momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 @@ -2753,7 +2769,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.150000s Real=0.146964s Sys=0.000000s + User=0.160000s Real=0.169125s Sys=0.000000s Run Summary --------------------------------- @@ -2791,8 +2807,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.571993 rms = 0.278865 Y momentum dir of backward-going photons: mean = 0.314963 rms = 0.495714 Z momentum dir of backward-going photons: mean = 0.00860356 rms = 0.50005 - X momentum dir of forward-going photons: mean = 0.898384 rms = 1.95427e-07 - Y momentum dir of forward-going photons: mean = 0.43921 rms = 1.00514e-07 + X momentum dir of forward-going photons: mean = 0.898384 rms = 1.77568e-07 + Y momentum dir of forward-going photons: mean = 0.43921 rms = 8.39638e-08 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 Y momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 @@ -2821,7 +2837,6 @@ LUT DAVIS - reflectivity data file: RoughTeflon_LUTR.z read in! /run/geometryModified /run/initialize /analysis/setFileName davis_roughTeflon -Set file name: davis_roughTeflon /run/beamOn 10000 ========= Table of registered couples ============================ @@ -2849,7 +2864,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=1.080000s Real=1.092155s Sys=0.000000s + User=1.140000s Real=1.145008s Sys=0.000000s Run Summary --------------------------------- @@ -2886,8 +2901,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.776235 rms = 0.205994 Y momentum dir of backward-going photons: mean = 0.2101 rms = 0.427686 Z momentum dir of backward-going photons: mean = 0.00550741 rms = 0.357685 - X momentum dir of forward-going photons: mean = 0.898384 rms = 1.1151e-07 - Y momentum dir of forward-going photons: mean = 0.43921 rms = 3.24763e-08 + X momentum dir of forward-going photons: mean = 0 rms = 0 + Y momentum dir of forward-going photons: mean = 0 rms = 0 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 Y momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 @@ -2905,7 +2920,6 @@ G4OpticalSurface: data file /cvmfs/geant4.cern.ch/share/data/RealSurface2.2/Dete LUT DAVIS - reflectivity data file: Detector_LUTR.z read in! /run/geometryModified /analysis/setFileName davis_detector -Set file name: davis_detector /run/beamOn 10000 ========= Table of registered couples ============================ @@ -2933,7 +2947,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.050000s Real=0.043714s Sys=0.000000s + User=0.050000s Real=0.048908s Sys=0.000000s Run Summary --------------------------------- @@ -2970,8 +2984,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.906337 rms = 0.00228861 Y momentum dir of backward-going photons: mean = 0.422492 rms = 0.00492185 Z momentum dir of backward-going photons: mean = 0.000449425 rms = 0.00491918 - X momentum dir of forward-going photons: mean = 0.898384 rms = 5.59736e-07 - Y momentum dir of forward-going photons: mean = 0.43921 rms = 9.15543e-08 + X momentum dir of forward-going photons: mean = 0 rms = 0 + Y momentum dir of forward-going photons: mean = 0 rms = 0 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 Y momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 @@ -2994,7 +3008,6 @@ G4OpticalSurface: data file /cvmfs/geant4.cern.ch/share/data/RealSurface2.2/Poli LUT - data file: PolishedLumirror.z read in! /run/geometryModified /analysis/setFileName lbnl_polishedLumirrorAir -Set file name: lbnl_polishedLumirrorAir /run/beamOn 1000 ========= Table of registered couples ============================ @@ -3022,7 +3035,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=0.080000s Real=0.080336s Sys=0.000000s + User=0.090000s Real=0.085472s Sys=0.000000s Run Summary --------------------------------- @@ -3060,8 +3073,8 @@ Surface events by process: X momentum dir of backward-going photons: mean = -0.932707 rms = 0.0389432 Y momentum dir of backward-going photons: mean = 0.138195 rms = 0.266115 Z momentum dir of backward-going photons: mean = 0.0163755 rms = 0.195854 - X momentum dir of forward-going photons: mean = 0.898384 rms = 3.16101e-08 - Y momentum dir of forward-going photons: mean = 0.43921 rms = 2.73752e-08 + X momentum dir of forward-going photons: mean = 0.898384 rms = 2.78775e-08 + Y momentum dir of forward-going photons: mean = 0.43921 rms = 7.45058e-09 Z momentum dir of forward-going photons: mean = 0 rms = 0 X momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 Y momentum dir of Fresnel-refracted photons: mean = 0 rms = 0 diff --git a/examples/extended/optical/OpNovice2/coated.mac b/examples/extended/optical/OpNovice2/coated.mac new file mode 100644 index 0000000000..bb5602627a --- /dev/null +++ b/examples/extended/optical/OpNovice2/coated.mac @@ -0,0 +1,41 @@ +/control/verbose 2 +/tracking/verbose 0 +/run/verbose 1 +/process/optical/verbose 1 +/control/cout/ignoreThreadsExcept 0 + +/opnovice2/boxProperty RINDEX 0.000002 1.4 0.000008 1.4 +/opnovice2/boxProperty ABSLENGTH 0.000002 100 0.000005 200 0.000008 300 + +/opnovice2/worldProperty RINDEX 0.000002 1.0 0.000008 1.0 +/opnovice2/worldProperty ABSLENGTH 0.000002 1000000 0.000005 2000000 0.000008 3000000 + +/opnovice2/surfaceModel unified +/opnovice2/surfaceType coated + +/opnovice2/surfaceProperty REFLECTIVITY 0.000002 1.0 0.000008 1.0 +/opnovice2/surfaceProperty COATEDRINDEX 0.000002 1.7 0.000008 1.7 +/opnovice2/surfaceConstProperty COATEDTHICKNESS 100e-6 # 100 nm + +/run/initialize +# +/gun/particle opticalphoton +/gun/energy 5 eV +/gun/position 99.99 0 0 cm +/gun/direction 1 0 0 +/opnovice2/gun/optPhotonPolar 0. deg + + +# +/analysis/setFileName coated_0 +/analysis/h1/set 20 90 0 90 # deg +/analysis/h1/set 21 90 0 90 # deg +/analysis/h1/set 22 90 0 90 # deg +/analysis/h1/set 23 90 0 90 # deg +/run/printProgress 100000 +/run/beamOn 500000 + +/analysis/setFileName coated_90 +/opnovice2/gun/optPhotonPolar 90. deg +/run/beamOn 500000 + diff --git a/examples/extended/optical/OpNovice2/coated.out b/examples/extended/optical/OpNovice2/coated.out new file mode 100644 index 0000000000..b4c6d8a400 --- /dev/null +++ b/examples/extended/optical/OpNovice2/coated.out @@ -0,0 +1,1247 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + +<<< Geant4 Physics List simulation engine: FTFP_BERT + +G4VModularPhysicsList::ReplacePhysics: G4EmStandard with type : 2 is replaced with G4EmStandard_opt4 +Visualization Manager instantiating with verbosity "warnings (3)"... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully registered the following graphics systems. +Registered graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML2FILE (VRML2FILE) + gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) + OpenGLImmediateQt (OGLIQt, OGLI) + OpenGLStoredQt (OGLSQt, OGL, OGLS) + OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) + OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK) + OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK) + OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK) + RayTracerX (RayTracerX) + Qt3D (Qt3D) + TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK) + TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK) + TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG) + +Registering model factories... + +You have successfully registered the following model factories. +Registered model factories: + generic + drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByEncounteredVolume + +Registered models: + None + +Registered filter factories: + attributeFilter + chargeFilter + originVolumeFilter + particleFilter + encounteredVolumeFilter + +Registered filters: + None + +You have successfully registered the following user vis actions. +Run Duration User Vis Actions: none +End of Event User Vis Actions: none +End of Run User Vis Actions: none + +Some /vis commands (optionally) take a string to specify colour. +"/vis/list" to see available colours. +/tracking/verbose 0 +/run/verbose 1 +/process/optical/verbose 1 +/run/physicsModified +/control/cout/ignoreThreadsExcept 0 +/opnovice2/boxProperty RINDEX 0.000002 1.4 0.000008 1.4 +The MPT for the box is now: +0: RINDEX +2e-06 1.4 +8e-06 1.4 +9: GROUPVEL +2e-06 214.137 +8e-06 214.137 +............. +/opnovice2/boxProperty ABSLENGTH 0.000002 100 0.000005 200 0.000008 300 +The MPT for the box is now: +0: RINDEX +2e-06 1.4 +8e-06 1.4 +9: GROUPVEL +2e-06 214.137 +8e-06 214.137 +16: ABSLENGTH +2e-06 100 +5e-06 200 +8e-06 300 +............. +/opnovice2/worldProperty RINDEX 0.000002 1.0 0.000008 1.0 +The MPT for the world is now: +0: RINDEX +2e-06 1 +8e-06 1 +9: GROUPVEL +2e-06 299.792 +8e-06 299.792 +............. +/opnovice2/worldProperty ABSLENGTH 0.000002 1000000 0.000005 2000000 0.000008 3000000 +The MPT for the world is now: +0: RINDEX +2e-06 1 +8e-06 1 +9: GROUPVEL +2e-06 299.792 +8e-06 299.792 +16: ABSLENGTH +2e-06 1e+06 +5e-06 2e+06 +8e-06 3e+06 +............. +/opnovice2/surfaceModel unified +/run/geometryModified +/opnovice2/surfaceType coated +/run/geometryModified +/opnovice2/surfaceProperty REFLECTIVITY 0.000002 1.0 0.000008 1.0 +REFLECTIVITY 0.000002 1.0 0.000008 1.0 +The MPT for the surface is now: +1: REFLECTIVITY +2e-06 1 +8e-06 1 +............. +/opnovice2/surfaceProperty COATEDRINDEX 0.000002 1.7 0.000008 1.7 +COATEDRINDEX 0.000002 1.7 0.000008 1.7 +The MPT for the surface is now: +1: REFLECTIVITY +2e-06 1 +8e-06 1 +26: COATEDRINDEX +2e-06 1.7 +8e-06 1.7 +............. +/opnovice2/surfaceConstProperty COATEDTHICKNESS 100e-6 +The MPT for the surface is now: +1: REFLECTIVITY +2e-06 1 +8e-06 1 +26: COATEDRINDEX +2e-06 1.7 +8e-06 1.7 +57: COATEDTHICKNESS 0.0001 +............. +/run/initialize +****** opticalSurface->DumpInfo: + Surface type = 7 + Surface finish = 3 + Surface model = 1 + + Surface parameter + ----------------- + sigma_alpha: 0 + +****** end of opticalSurface->DumpInfo + + hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval + for pions : 3 to 6 GeV + for kaons : 3 to 6 GeV + for proton : 3 to 6 GeV + for neutron : 3 to 6 GeV + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 +OpAbsorption is created +OpRayleigh is created +OpMieHG is created +OpBoundary is created +OpWLS is created +OpWLS2 is created +### Birks coefficients used in run time + G4_WATER 0.126 mm/MeV 0.0126 g/cm^2/MeV massFactor= 85.0756 effCharge= 62.0606 +# +/gun/particle opticalphoton +/gun/energy 5 eV +/gun/position 99.99 0 0 cm +/gun/direction 1 0 0 +/opnovice2/gun/optPhotonPolar 0. deg +# +/analysis/setFileName coated_0 +/analysis/h1/set 20 90 0 90 +/analysis/h1/set 21 90 0 90 +/analysis/h1/set 22 90 0 90 +/analysis/h1/set 23 90 0 90 +/run/printProgress 100000 +/run/beamOn 500000 +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 20 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 0.01 mm) +Step function for muons/hadrons (0.1, 0.05 mm) +Step function for light ions (0.1, 0.02 mm) +Step function for general ions (0.1, 0.001 mm) +Lowest e+e- kinetic energy 100 eV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 1 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 1 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 1 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 1 MeV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 2 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 1 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.08 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 3 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 1 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= +====== Atomic Deexcitation Parameters ======== +======================================================================= +Fluorescence enabled 1 +Directory in G4LEDATA for fluorescence data files fluor +Auger electron cascade enabled 0 +PIXE atomic de-excitation enabled 0 +De-excitation module ignores cuts 0 +Type of PIXE cross section for hadrons Empirical +Type of PIXE cross section for e+- Livermore +======================================================================= + +### === Deexcitation model UAtomDeexcitation is activated for 1 region: + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 174 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 20 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 160 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 100 TeV Fluo + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + PenIoni : Emin= 0 eV Emax= 100 keV + MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS + eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS + +ePairProd: for e- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 25x1001 from 0.1 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ePairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + PenIoni : Emin= 0 eV Emax= 100 keV + MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS + eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS + +ePairProd: for e+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 25x1001 from 0.1 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ePairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +nuclearStopping: for proton SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI + +nuclearStopping: for GenericIon SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV deltaVI + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV deltaVI + +nuclearStopping: for alpha SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV deltaVI + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + + Process: nKiller + +--------------------------------------------------- + Hadronic Processes for B- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: B-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for D- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: D-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_He3Inelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_alphaInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_deuteronInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: anti_lambdaInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_neutronInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_protonInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_tritonInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: dInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for e+ + + Process: positronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for e- + + Process: electronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: GammaNPreco: 0 eV ---> 200 MeV + Model: BertiniCascade: 199 MeV ---> 6 GeV + Model: TheoFSGenerator: 3 GeV ---> 100 TeV + Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: lambdaInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu+ + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + + Process: muMinusCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: protonInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for sigma- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: sigma-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: tInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +================================================================ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Pre-compound model active 1 +Pre-compound excitation low energy 100 keV +Pre-compound excitation high energy 30 MeV +Type of de-excitation inverse x-section 3 +Type of de-excitation factory Evaporation+GEM +Number of de-excitation channels 68 +Min excitation energy 10 eV +Min energy per nucleon for multifragmentation 200 GeV +Limit excitation energy for Fermi BreakUp 20 MeV +Level density (1/MeV) 0.075 +Use simple level density model 1 +Use discrete excitation energy of the residual 1 +Time limit for long lived isomeres 1 ns +Isomer production flag 1 +Internal e- conversion flag 1 +Store e- internal conversion data 0 +Correlated gamma emission flag 0 +Max 2J for sampling of angular correlations 10 +======================================================================= + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_AIR + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes + Material : G4_WATER + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.52521 keV e- 277.633 keV e+ 270.823 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. +See commands in /vis/modeling/trajectories/ for other options. +### Run 0 starts. +... set ntuple merging row mode : row-wise - done +... create file : coated_0.root - done +... open analysis file : coated_0.root - done +... open analysis file : coated_0.root - done +--> Event 0 starts. +--> Event 100000 starts. +--> Event 200000 starts. +--> Event 300000 starts. +--> Event 400000 starts. + Run terminated. +Run Summary + Number of events processed : 500000 + User=3.520000s Real=3.543727s Sys=0.000000s + + Run Summary +--------------------------------- +Primary particle was: opticalphoton with energy 5 eV . +Number of events: 500000 +Material of world: G4_AIR +Material of tank: G4_WATER + +Average number of photons absorbed by WLS per event: 0 +Average number of photons created by WLS per event: 0 +Average energy of WLS photons created per event: 0 eV. +Average number of photons absorbed by WLS2 per event: 0 +Average number of photons created by WLS2 per event: 0 +Average energy of WLS2 photons created per event: 0 eV. +Average number of OpRayleigh per event: 0 +Average number of OpAbsorption per event: 0.11 + +Surface events (on +X surface, maximum one per photon) this run: +# of primary particles: 5e+05 +OpAbsorption before surface: 237 +Total # of surface events: 499763 +Unaccounted for: 0 + +Surface events by process: + CoatedDielectricRefraction: 446277 + CoatedDielectricReflection: 53486 + Sum: 499763 + Unaccounted for: 0 +--------------------------------- +Polarization of primary optical photons: 0 deg. +Reflectance shows a minimum at: 0.5 +/- 0.5 deg. Expected Brewster angle: 35.5377 deg. +Fresnel transmission goes to 0 at: -1 +/- 0.5 deg. Expected: 45.5847 deg. + + Histogram statistics for the entire run: + + Angle of Fresnel-reflected photons: mean = 0 rms = 0 + Angle of total internal reflected photons: mean = 0 rms = 0 + Angle of Fresnel-refracted photons: mean = 0 rms = 0 + +... write file : coated_0.root - done +... close file : coated_0.root - done +There are 27 h1 histograms +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +/analysis/setFileName coated_90 +/opnovice2/gun/optPhotonPolar 90. deg +/run/beamOn 500000 + +========= Table of registered couples ============================ + +Index : 0 used in the geometry : Yes + Material : G4_AIR + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes + Material : G4_WATER + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.52521 keV e- 277.633 keV e+ 270.823 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +================================================================== + +### Run 1 starts. +... create file : coated_90.root - done +... open analysis file : coated_90.root - done +... open analysis file : coated_90.root - done +--> Event 0 starts. +--> Event 100000 starts. +--> Event 200000 starts. +--> Event 300000 starts. +--> Event 400000 starts. + Run terminated. +Run Summary + Number of events processed : 500000 + User=3.820000s Real=3.838488s Sys=0.000000s + + Run Summary +--------------------------------- +Primary particle was: opticalphoton with energy 5 eV . +Number of events: 500000 +Material of world: G4_AIR +Material of tank: G4_WATER + +Average number of photons absorbed by WLS per event: 0 +Average number of photons created by WLS per event: 0 +Average energy of WLS photons created per event: 0 eV. +Average number of photons absorbed by WLS2 per event: 0 +Average number of photons created by WLS2 per event: 0 +Average energy of WLS2 photons created per event: 0 eV. +Average number of OpRayleigh per event: 0 +Average number of OpAbsorption per event: 0.11 + +Surface events (on +X surface, maximum one per photon) this run: +# of primary particles: 5e+05 +OpAbsorption before surface: 273 +Total # of surface events: 499727 +Unaccounted for: 0 + +Surface events by process: + CoatedDielectricRefraction: 445945 + CoatedDielectricReflection: 53782 + Sum: 499727 + Unaccounted for: 0 +--------------------------------- +Polarization of primary optical photons: 90 deg. +Fresnel transmission goes to 0 at: -1 +/- 0.5 deg. Expected: 45.5847 deg. + + Histogram statistics for the entire run: + + Angle of Fresnel-reflected photons: mean = 0 rms = 0 + Angle of total internal reflected photons: mean = 0 rms = 0 + Angle of Fresnel-refracted photons: mean = 0 rms = 0 + +... write file : coated_90.root - done +... close file : coated_90.root - done +There are 27 h1 histograms +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +Graphics systems deleted. +Visualization Manager deleting... +G4 kernel has come to Quit state. +================== Deleting memory pools =================== +Number of memory pools allocated: 10 of which, static: 0 +Dynamic pools deleted: 10 / Total memory freed: 0.016 MB +============================================================ +RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/optical/OpNovice2/complexRindex.out b/examples/extended/optical/OpNovice2/complexRindex.out new file mode 100644 index 0000000000..4be4be52c9 --- /dev/null +++ b/examples/extended/optical/OpNovice2/complexRindex.out @@ -0,0 +1,1194 @@ +Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + + + ################################ + !!! G4Backtrace is activated !!! + ################################ + + +************************************************************** + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) + Copyright : Geant4 Collaboration + References : NIM A 506 (2003), 250-303 + : IEEE-TNS 53 (2006), 270-278 + : NIM A 835 (2016), 186-225 + WWW : http://geant4.org/ +************************************************************** + +<<< Geant4 Physics List simulation engine: FTFP_BERT + +G4VModularPhysicsList::ReplacePhysics: G4EmStandard with type : 2 is replaced with G4EmStandard_opt4 +Visualization Manager instantiating with verbosity "warnings (3)"... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully registered the following graphics systems. +Registered graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML2FILE (VRML2FILE) + gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) + OpenGLImmediateQt (OGLIQt, OGLI) + OpenGLStoredQt (OGLSQt, OGL, OGLS) + OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) + OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK) + OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK) + OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK) + RayTracerX (RayTracerX) + Qt3D (Qt3D) + TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK) + TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK) + TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG) + +Registering model factories... + +You have successfully registered the following model factories. +Registered model factories: + generic + drawByAttribute + drawByCharge + drawByOriginVolume + drawByParticleID + drawByEncounteredVolume + +Registered models: + None + +Registered filter factories: + attributeFilter + chargeFilter + originVolumeFilter + particleFilter + encounteredVolumeFilter + +Registered filters: + None + +You have successfully registered the following user vis actions. +Run Duration User Vis Actions: none +End of Event User Vis Actions: none +End of Run User Vis Actions: none + +Some /vis commands (optionally) take a string to specify colour. +"/vis/list" to see available colours. +/tracking/verbose 0 +/run/verbose 0 +/process/optical/verbose 1 +/run/physicsModified +/control/cout/ignoreThreadsExcept 0 +/opnovice2/worldMaterial G4_Al +World material set to G4_Al +/opnovice2/worldProperty RINDEX 0.000002 1.38 0.000004 0.28 0.000006 0.13 0.000008 0.077 +The MPT for the world is now: +0: RINDEX +2e-06 1.38 +4e-06 0.28 +6e-06 0.13 +8e-06 0.077 +9: GROUPVEL +2e-06 217.241 +3e-06 361.196 +5e-06 1462.4 +8e-06 3893.41 +............. +/opnovice2/worldProperty ABSLENGTH 0.000002 6.75e-9 0.000004 6.65e-9 0.000006 6.96e-9 0.000008 7.45e-9 +The MPT for the world is now: +0: RINDEX +2e-06 1.38 +4e-06 0.28 +6e-06 0.13 +8e-06 0.077 +9: GROUPVEL +2e-06 217.241 +3e-06 361.196 +5e-06 1462.4 +8e-06 3893.41 +16: ABSLENGTH +2e-06 6.75e-09 +4e-06 6.65e-09 +6e-06 6.96e-09 +8e-06 7.45e-09 +............. +/opnovice2/boxMaterial G4_AIR +Tank material set to G4_AIR +/opnovice2/boxProperty RINDEX 0.000002 1.01 0.000008 1.01 +The MPT for the box is now: +0: RINDEX +2e-06 1.01 +8e-06 1.01 +9: GROUPVEL +2e-06 296.824 +8e-06 296.824 +............. +/opnovice2/boxProperty ABSLENGTH 0.000002 1000000 0.000005 2000000 0.000008 3000000 +The MPT for the box is now: +0: RINDEX +2e-06 1.01 +8e-06 1.01 +9: GROUPVEL +2e-06 296.824 +8e-06 296.824 +16: ABSLENGTH +2e-06 1e+06 +5e-06 2e+06 +8e-06 3e+06 +............. +/opnovice2/surfaceModel unified +/run/geometryModified +/opnovice2/surfaceType dielectric_metal +/run/geometryModified +/opnovice2/surfaceFinish polished +/run/geometryModified +/opnovice2/surfaceProperty REALRINDEX 0.000002 1.38 0.000004 0.28 0.000006 0.13 0.000008 0.077 +REALRINDEX 0.000002 1.38 0.000004 0.28 0.000006 0.13 0.000008 0.077 +The MPT for the surface is now: +2: REALRINDEX +2e-06 1.38 +4e-06 0.28 +6e-06 0.13 +8e-06 0.077 +............. +/opnovice2/surfaceProperty IMAGINARYRINDEX 0.000002 7.31 0.000004 3.71 0.000006 2.40 0.000008 1.71 +IMAGINARYRINDEX 0.000002 7.31 0.000004 3.71 0.000006 2.40 0.000008 1.71 +The MPT for the surface is now: +2: REALRINDEX +2e-06 1.38 +4e-06 0.28 +6e-06 0.13 +8e-06 0.077 +3: IMAGINARYRINDEX +2e-06 7.31 +4e-06 3.71 +6e-06 2.4 +8e-06 1.71 +............. +/run/initialize +****** opticalSurface->DumpInfo: + Surface type = 0 + Surface finish = 0 + Surface model = 1 + + Surface parameter + ----------------- + sigma_alpha: 0 + +****** end of opticalSurface->DumpInfo + + hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval + for pions : 3 to 6 GeV + for kaons : 3 to 6 GeV + for proton : 3 to 6 GeV + for neutron : 3 to 6 GeV + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 +OpAbsorption is created +OpRayleigh is created +OpMieHG is created +OpBoundary is created +OpWLS is created +OpWLS2 is created +### Birks coefficients used in run time + G4_AIR 0.126 mm/MeV 1.51804e-05 g/cm^2/MeV massFactor= 63.6508 effCharge= 9.17523 +/gun/particle opticalphoton +/gun/energy 4 eV +/gun/position 90 0 0 cm +/gun/direction 1 0 0 +/opnovice2/gun/optPhotonPolar 0. deg +/opnovice2/gun/randomDirection true +/analysis/setFileName complexRindex_0 +/analysis/h1/set 24 90 0 90 +/analysis/h1/set 26 90 0 90 +/run/printProgress 100000 +/run/beamOn 500000 +======================================================================= +====== Electromagnetic Physics Parameters ======== +======================================================================= +LPM effect enabled 1 +Enable creation and use of sampling tables 0 +Apply cuts on all EM processes 0 +Use combined TransportationWithMsc Disabled +Use general process 1 +Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 +Enable sampling of quantum entanglement 0 +X-section factor for integral approach 0.8 +Min kinetic energy for tables 100 eV +Max kinetic energy for tables 100 TeV +Number of bins per decade of a table 20 +Verbose level 1 +Verbose level for worker thread 0 +Bremsstrahlung energy threshold above which + primary e+- is added to the list of secondary 100 TeV +Bremsstrahlung energy threshold above which primary + muon/hadron is added to the list of secondary 100 TeV +Lowest triplet kinetic energy 1 MeV +Enable sampling of gamma linear polarisation 0 +5D gamma conversion model type 0 +5D gamma conversion model on isolated ion 0 +Livermore data directory epics_2017 +======================================================================= +====== Ionisation Parameters ======== +======================================================================= +Step function for e+- (0.2, 0.01 mm) +Step function for muons/hadrons (0.1, 0.05 mm) +Step function for light ions (0.1, 0.02 mm) +Step function for general ions (0.1, 0.001 mm) +Lowest e+e- kinetic energy 100 eV +Lowest muon/hadron kinetic energy 1 keV +Use ICRU90 data 1 +Fluctuations of dE/dx are enabled 1 +Type of fluctuation model for leptons and hadrons Urban +Use built-in Birks satuaration 1 +Build CSDA range enabled 0 +Use cut as a final range enabled 0 +Enable angular generator interface 1 +Max kinetic energy for CSDA tables 1 GeV +Max kinetic energy for NIEL computation 1 MeV +Linear loss limit 0.01 +Read data from file for e+e- pair production by mu 0 +======================================================================= +====== Multiple Scattering Parameters ======== +======================================================================= +Type of msc step limit algorithm for e+- 2 +Type of msc step limit algorithm for muons/hadrons 0 +Msc lateral displacement for e+- enabled 1 +Msc lateral displacement for muons and hadrons 1 +Urban msc model lateral displacement alg96 1 +Range factor for msc step limit for e+- 0.08 +Range factor for msc step limit for muons/hadrons 0.2 +Geometry factor for msc step limitation of e+- 2.5 +Safety factor for msc step limit for e+- 0.6 +Skin parameter for msc step limitation of e+- 3 +Lambda limit for msc step limit for e+- 1 mm +Use Mott correction for e- scattering 1 +Factor used for dynamic computation of angular + limit between single and multiple scattering 1 +Fixed angular limit between single + and multiple scattering 3.1416 rad +Upper energy limit for e+- multiple scattering 100 MeV +Type of electron single scattering model 0 +Type of nuclear form-factor 1 +Screening factor 1 +======================================================================= +====== Atomic Deexcitation Parameters ======== +======================================================================= +Fluorescence enabled 1 +Directory in G4LEDATA for fluorescence data files fluor +Auger electron cascade enabled 0 +PIXE atomic de-excitation enabled 0 +De-excitation module ignores cuts 0 +Type of PIXE cross section for hadrons Empirical +Type of PIXE cross section for e+- Livermore +======================================================================= + +### === Deexcitation model UAtomDeexcitation is activated for 1 region: + DefaultRegionForTheWorld 1 0 0 +### === Ignore cuts flag: 0 + +phot: for gamma SubType=12 BuildTable=0 + LambdaPrime table from 200 keV to 100 TeV in 174 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo + +compt: for gamma SubType=13 BuildTable=1 + Lambda table from 100 eV to 1 MeV, 20 bins/decade, spline: 1 + LambdaPrime table from 1 MeV to 100 TeV in 160 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo + KleinNishina : Emin= 20 MeV Emax= 100 TeV Fluo + +conv: for gamma SubType=14 BuildTable=1 + Lambda table from 1.022 MeV to 100 TeV, 20 bins/decade, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai + +Rayl: for gamma SubType=11 BuildTable=1 + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator + +msc: for e- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + PenIoni : Emin= 0 eV Emax= 100 keV + MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI + +eBrem: for e- XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS + eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS + +ePairProd: for e- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 25x1001 from 0.1 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ePairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for e+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV + StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +eIoni: for e+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + PenIoni : Emin= 0 eV Emax= 100 keV + MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI + +eBrem: for e+ XStype:4 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS + eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS + +ePairProd: for e+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 25x1001 from 0.1 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ePairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +annihil: for e+ XStype:2 SubType=5 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 100 TeV + +CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 + Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 100 MeV Emax= 100 TeV + +msc: for proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + +hBrems: for proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +nuclearStopping: for proton SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV + +msc: for GenericIon SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +ionIoni: for GenericIon XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI + +nuclearStopping: for GenericIon SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV + +msc: for alpha SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc : Emin= 0 eV Emax= 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +ionIoni: for alpha XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax=7.9452 MeV deltaVI + BetheBloch : Emin=7.9452 MeV Emax= 100 TeV deltaVI + +nuclearStopping: for alpha SubType=8 BuildTable=0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV + +msc: for anti_proton SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for anti_proton XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI + BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI + +hBrems: for anti_proton XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for anti_proton XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 17x1001 from 7.50618 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for kaon+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI + +hBrems: for kaon+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for kaon- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for kaon- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI + BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI + +hBrems: for kaon- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for kaon- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 18x1001 from 3.94942 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of kaon+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +muIoni: for mu+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV deltaVI + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for mu- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +muIoni: for mu- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI + MuBetheBloch : Emin= 200 keV Emax= 100 TeV + +muBrems: for mu- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +muPairProd: for mu- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 21x1001 from 0.85 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of mu+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi+ SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for pi+ XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI + +hBrems: for pi+ XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi+ XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 + Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0 + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +msc: for pi- SubType= 10 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV + StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm + +hIoni: for pi- XStype:3 SubType=2 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 + StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI + BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI + +hBrems: for pi- XStype:1 SubType=3 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +hPairProd: for pi- XStype:1 SubType=4 + dE/dx and range tables from 100 eV to 100 TeV in 240 bins + Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0 + Sampling table 20x1001 from 1.11656 GeV to 100 TeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi + +CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 + Used Lambda table of pi+ + ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 100 TeV + +==================================================================== + HADRONIC PROCESSES SUMMARY (verbose level 1) + +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + + Process: nKiller + +--------------------------------------------------- + Hadronic Processes for B- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: B-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for D- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: D-Inelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for GenericIon + + Process: ionInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: He3Inelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: alphaInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for anti_He3 + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_He3Inelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_alpha + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_alphaInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_deuteronInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: anti_lambdaInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_neutron + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_neutronInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_proton + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100.1 MeV + Model: AntiAElastic: 100 MeV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_protonInelastic + Model: FTFP: 0 eV ---> 100 TeV + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for anti_triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n + Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: anti_tritonInelastic + Model: FTFP: 0 eV /n ---> 100 TeV/n + Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV + + + Process: hFritiofCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for deuteron + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: dInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +--------------------------------------------------- + Hadronic Processes for e+ + + Process: positronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for e- + + Process: electronNuclear + Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for gamma + + Process: photonNuclear + Model: GammaNPreco: 0 eV ---> 200 MeV + Model: BertiniCascade: 199 MeV ---> 6 GeV + Model: TheoFSGenerator: 3 GeV ---> 100 TeV + Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon+ + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for kaon- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: kaon-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for lambda + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: lambdaInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu+ + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for mu- + + Process: muonNuclear + Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV + Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV + + + Process: muMinusCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for pi+ + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi+Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for pi- + + Process: hadElastic + Model: hElasticGlauber: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: pi-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for proton + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + + Process: protonInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV + + +--------------------------------------------------- + Hadronic Processes for sigma- + + Process: hadElastic + Model: hElasticLHEP: 0 eV ---> 100 TeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: sigma-Inelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 0 eV ---> 6 GeV + Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV + + + Process: hBertiniCaptureAtRest + +--------------------------------------------------- + Hadronic Processes for triton + + Process: hadElastic + Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + + Process: tInelastic + Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n + Model: FTFP: 3 GeV/n ---> 100 TeV/n + Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV + + +================================================================ +======================================================================= +====== Pre-compound/De-excitation Physics Parameters ======== +======================================================================= +Type of pre-compound inverse x-section 3 +Pre-compound model active 1 +Pre-compound excitation low energy 100 keV +Pre-compound excitation high energy 30 MeV +Type of de-excitation inverse x-section 3 +Type of de-excitation factory Evaporation+GEM +Number of de-excitation channels 68 +Min excitation energy 10 eV +Min energy per nucleon for multifragmentation 200 GeV +Limit excitation energy for Fermi BreakUp 20 MeV +Level density (1/MeV) 0.075 +Use simple level density model 1 +Use discrete excitation energy of the residual 1 +Time limit for long lived isomeres 1 ns +Isomer production flag 1 +Internal e- conversion flag 1 +Store e- internal conversion data 0 +Correlated gamma emission flag 0 +Max 2J for sampling of angular correlations 10 +======================================================================= +G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. +See commands in /vis/modeling/trajectories/ for other options. +### Run 0 starts. +... set ntuple merging row mode : row-wise - done +... create file : complexRindex_0.root - done +... open analysis file : complexRindex_0.root - done +... open analysis file : complexRindex_0.root - done +--> Event 0 starts. +--> Event 100000 starts. +--> Event 200000 starts. +--> Event 300000 starts. +--> Event 400000 starts. + + Run Summary +--------------------------------- +Primary particle was: opticalphoton with energy 4 eV . +Number of events: 500000 +Material of world: G4_Al +Material of tank: G4_AIR + +Average number of photons absorbed by WLS per event: 0 +Average number of photons created by WLS per event: 0 +Average energy of WLS photons created per event: 0 eV. +Average number of photons absorbed by WLS2 per event: 0 +Average number of photons created by WLS2 per event: 0 +Average energy of WLS2 photons created per event: 0 eV. +Average number of OpRayleigh per event: 0 +Average number of OpAbsorption per event: 0.0097 + +Surface events (on +X surface, maximum one per photon) this run: +# of primary particles: 5e+05 +OpAbsorption before surface: 72 +Total # of surface events: 499928 +Unaccounted for: 0 + +Surface events by process: + Spike reflection: 449476 + Absorption: 50452 + Sum: 499928 + Unaccounted for: 0 +--------------------------------- + + Histogram statistics for the entire run: + + Angle of absorbed photons: mean = 0.00890279 rms = 0.74146 + +... write file : complexRindex_0.root - done +... close file : complexRindex_0.root - done +There are 27 h1 histograms +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +/analysis/setFileName complexRindex_90 +/opnovice2/gun/optPhotonPolar 90. deg +/run/beamOn 500000 +### Run 1 starts. +... create file : complexRindex_90.root - done +... open analysis file : complexRindex_90.root - done +... open analysis file : complexRindex_90.root - done +--> Event 0 starts. +--> Event 100000 starts. +--> Event 200000 starts. +--> Event 300000 starts. +--> Event 400000 starts. + + Run Summary +--------------------------------- +Primary particle was: opticalphoton with energy 4 eV . +Number of events: 500000 +Material of world: G4_Al +Material of tank: G4_AIR + +Average number of photons absorbed by WLS per event: 0 +Average number of photons created by WLS per event: 0 +Average energy of WLS photons created per event: 0 eV. +Average number of photons absorbed by WLS2 per event: 0 +Average number of photons created by WLS2 per event: 0 +Average energy of WLS2 photons created per event: 0 eV. +Average number of OpRayleigh per event: 0 +Average number of OpAbsorption per event: 0.011 + +Surface events (on +X surface, maximum one per photon) this run: +# of primary particles: 5e+05 +OpAbsorption before surface: 62 +Total # of surface events: 499938 +Unaccounted for: 0 + +Surface events by process: + Spike reflection: 474369 + Absorption: 25569 + Sum: 499938 + Unaccounted for: 0 +--------------------------------- + + Histogram statistics for the entire run: + + Angle of absorbed photons: mean = 0.00673137 rms = 0.60995 + +... write file : complexRindex_90.root - done +... close file : complexRindex_90.root - done +There are 27 h1 histograms +List them with "/analysis/list". +View them with "/vis/plot" or "/vis/reviewPlots". +Graphics systems deleted. +Visualization Manager deleting... diff --git a/examples/extended/optical/OpNovice2/electron.out b/examples/extended/optical/OpNovice2/electron.out index 867fd07078..7bd275f195 100644 --- a/examples/extended/optical/OpNovice2/electron.out +++ b/examples/extended/optical/OpNovice2/electron.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -771,7 +773,6 @@ OpWLS2 is created ### Birks coefficients used in run time G4_BGO 0.126 mm/MeV 0.089838 g/cm^2/MeV massFactor= 6.63951 effCharge= 1.56555 /analysis/setFileName electron -Set file name: electron /analysis/h1/set 1 100 0 10 /analysis/h1/set 2 100 0 10 /analysis/h1/set 3 400 0 200 @@ -791,6 +792,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -818,7 +820,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -854,8 +856,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -885,8 +886,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -1010,7 +1011,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -1394,6 +1395,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1687,7 +1693,7 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 100 - User=2.620000s Real=2.663314s Sys=0.000000s + User=3.030000s Real=3.051522s Sys=0.000000s Run Summary --------------------------------- diff --git a/examples/extended/optical/OpNovice2/fresnel.out b/examples/extended/optical/OpNovice2/fresnel.out index 032d308b71..7c081dc43c 100644 --- a/examples/extended/optical/OpNovice2/fresnel.out +++ b/examples/extended/optical/OpNovice2/fresnel.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -175,7 +177,6 @@ OpWLS2 is created /opnovice2/gun/randomDirection true # /analysis/setFileName fresnel_0 -Set file name: fresnel_0 /analysis/h1/set 20 90 0 90 /analysis/h1/set 21 90 0 90 /analysis/h1/set 22 90 0 90 @@ -191,6 +192,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -218,7 +220,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -254,8 +256,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -285,8 +286,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -410,7 +411,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -794,6 +795,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1091,7 +1097,7 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 500000 - User=3.210000s Real=3.239856s Sys=0.000000s + User=4.060000s Real=4.076751s Sys=0.000000s Run Summary --------------------------------- @@ -1138,7 +1144,6 @@ There are 27 h1 histograms List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". /analysis/setFileName fresnel_90 -Set file name: fresnel_90 /opnovice2/gun/optPhotonPolar 90. deg /run/beamOn 500000 @@ -1172,7 +1177,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 500000 - User=3.460000s Real=3.485611s Sys=0.000000s + User=4.430000s Real=4.461843s Sys=0.000000s Run Summary --------------------------------- diff --git a/examples/extended/optical/OpNovice2/include/Run.hh b/examples/extended/optical/OpNovice2/include/Run.hh index 51b7151cdb..e5a93d5d61 100644 --- a/examples/extended/optical/OpNovice2/include/Run.hh +++ b/examples/extended/optical/OpNovice2/include/Run.hh @@ -189,6 +189,18 @@ class Run : public G4Run } void AddDichroic(void) { fBoundaryProcs[Dichroic] += 1; } + void AddCoatedDielectricRefraction(void) + { + fBoundaryProcs[CoatedDielectricRefraction] += 1; + } + void AddCoatedDielectricReflection(void) + { + fBoundaryProcs[CoatedDielectricReflection] += 1; + } + void AddCoatedDielectricFrustratedTransmission(void) + { + fBoundaryProcs[CoatedDielectricFrustratedTransmission] += 1; + } virtual void Merge(const G4Run*); diff --git a/examples/extended/optical/OpNovice2/include/SteppingAction.hh b/examples/extended/optical/OpNovice2/include/SteppingAction.hh index 3ff2de3517..ab1c6f9204 100644 --- a/examples/extended/optical/OpNovice2/include/SteppingAction.hh +++ b/examples/extended/optical/OpNovice2/include/SteppingAction.hh @@ -45,7 +45,8 @@ class SteppingAction : public G4UserSteppingAction virtual void UserSteppingAction(const G4Step*); private: - G4int fVerbose; + G4int fVerbose = 0; + size_t fIdxVelocity = 0; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/optical/OpNovice2/scint_by_particle.out b/examples/extended/optical/OpNovice2/scint_by_particle.out index 156142baf0..ad33eaaa48 100644 --- a/examples/extended/optical/OpNovice2/scint_by_particle.out +++ b/examples/extended/optical/OpNovice2/scint_by_particle.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -1123,7 +1125,6 @@ OpWLS2 is created /process/optical/scintillation/verbose 0 /run/physicsModified /analysis/setFileName scint_by_particle -Set file name: scint_by_particle /analysis/h1/set 2 100 0 10 /analysis/h1/set 3 400 0 200 # @@ -1142,6 +1143,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -1169,7 +1171,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -1205,8 +1207,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -1244,8 +1245,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -1369,7 +1370,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -1753,6 +1754,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -2045,7 +2051,7 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 100 - User=8.280000s Real=8.414022s Sys=0.020000s + User=9.960000s Real=10.043524s Sys=0.020000s Run Summary --------------------------------- @@ -2070,12 +2076,12 @@ Average number of OpAbsorption per event: 3.4e+04 Surface events (on +X surface, maximum one per photon) this run: # of primary particles: 1e+02 -OpAbsorption before surface: 2115686 -Total # of surface events: 1322347 +OpAbsorption before surface: 2115685 +Total # of surface events: 1322348 Surface events by process: Sum: 0 - Unaccounted for: 1322347 + Unaccounted for: 1322348 --------------------------------- Histogram statistics for the entire run: @@ -2116,7 +2122,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=0.120000s Real=0.121121s Sys=0.000000s + User=0.150000s Real=0.151533s Sys=0.000000s Run Summary --------------------------------- @@ -2187,7 +2193,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=1.210000s Real=1.285847s Sys=0.000000s + User=1.480000s Real=1.493132s Sys=0.000000s Run Summary --------------------------------- @@ -2258,7 +2264,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=0.120000s Real=0.128928s Sys=0.000000s + User=0.140000s Real=0.148565s Sys=0.000000s Run Summary --------------------------------- @@ -2330,7 +2336,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100 - User=0.120000s Real=0.124648s Sys=0.000000s + User=0.140000s Real=0.148913s Sys=0.000000s Run Summary --------------------------------- diff --git a/examples/extended/optical/OpNovice2/src/DetectorMessenger.cc b/examples/extended/optical/OpNovice2/src/DetectorMessenger.cc index 4057dad56b..2dc81cf50c 100644 --- a/examples/extended/optical/OpNovice2/src/DetectorMessenger.cc +++ b/examples/extended/optical/OpNovice2/src/DetectorMessenger.cc @@ -379,6 +379,10 @@ void DetectorMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { fDetector->SetSurfaceType(dielectric_LUTDAVIS); } + else if(newValue == "coated") + { + fDetector->SetSurfaceType(coated); + } else { G4ExceptionDescription ed; diff --git a/examples/extended/optical/OpNovice2/src/Run.cc b/examples/extended/optical/OpNovice2/src/Run.cc index 7e70a39bba..7b6eace0bf 100644 --- a/examples/extended/optical/OpNovice2/src/Run.cc +++ b/examples/extended/optical/OpNovice2/src/Run.cc @@ -70,12 +70,7 @@ Run::Run() fTotalSurface = 0; - fBoundaryProcs.clear(); - fBoundaryProcs.resize(40); - for(G4int i = 0; i < 40; ++i) - { - fBoundaryProcs[i] = 0; - } + fBoundaryProcs.assign(43, 0); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -530,6 +525,21 @@ void Run::EndOfRun() G4cout << " Ground VM2000 Glue reflection: " << std::setw(8) << fBoundaryProcs[GroundVM2000GlueReflection] << G4endl; } + if(fBoundaryProcs[CoatedDielectricRefraction] > 0) + { + G4cout << " CoatedDielectricRefraction: " << std::setw(8) + << fBoundaryProcs[CoatedDielectricRefraction] << G4endl; + } + if(fBoundaryProcs[CoatedDielectricReflection] > 0) + { + G4cout << " CoatedDielectricReflection: " << std::setw(8) + << fBoundaryProcs[CoatedDielectricReflection] << G4endl; + } + if(fBoundaryProcs[CoatedDielectricFrustratedTransmission] > 0) + { + G4cout << " CoatedDielectricFrustratedTransmission: " << std::setw(8) + << fBoundaryProcs[CoatedDielectricFrustratedTransmission] << G4endl; + } G4int sum = std::accumulate(fBoundaryProcs.begin(), fBoundaryProcs.end(), 0); G4cout << " Sum: " << std::setw(8) << sum << G4endl; diff --git a/examples/extended/optical/OpNovice2/src/SteppingAction.cc b/examples/extended/optical/OpNovice2/src/SteppingAction.cc index 65bc7139c5..c573a47130 100644 --- a/examples/extended/optical/OpNovice2/src/SteppingAction.cc +++ b/examples/extended/optical/OpNovice2/src/SteppingAction.cc @@ -51,7 +51,6 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... SteppingAction::SteppingAction() : G4UserSteppingAction() - , fVerbose(0) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -136,8 +135,8 @@ void SteppingAction::UserSteppingAction(const G4Step* step) // optical process has endpt on bdry, if(endPoint->GetStepStatus() == fGeomBoundary) { - G4ThreeVector m0 = startPoint->GetMomentumDirection(); - G4ThreeVector m1 = endPoint->GetMomentumDirection(); + G4ThreeVector p0 = startPoint->GetMomentumDirection(); + G4ThreeVector p1 = endPoint->GetMomentumDirection(); G4OpBoundaryProcessStatus theStatus = Undefined; @@ -148,21 +147,24 @@ void SteppingAction::UserSteppingAction(const G4Step* step) if(trackInfo->GetIsFirstTankX()) { - G4ThreeVector momdir = endPoint->GetMomentumDirection(); - G4double px1 = momdir.x(); - G4double py1 = momdir.y(); - G4double pz1 = momdir.z(); - if(px1 < 0.) + G4double px1 = p1.x(); + G4double py1 = p1.y(); + G4double pz1 = p1.z(); + // do not count Absorbed or Detected photons here + if(track->GetTrackStatus() != fStopAndKill) { - analysisMan->FillH1(11, px1); - analysisMan->FillH1(12, py1); - analysisMan->FillH1(13, pz1); - } - else - { - analysisMan->FillH1(14, px1); - analysisMan->FillH1(15, py1); - analysisMan->FillH1(16, pz1); + if(px1 < 0.) + { + analysisMan->FillH1(11, px1); + analysisMan->FillH1(12, py1); + analysisMan->FillH1(13, pz1); + } + else + { + analysisMan->FillH1(14, px1); + analysisMan->FillH1(15, py1); + analysisMan->FillH1(16, pz1); + } } trackInfo->SetIsFirstTankX(false); @@ -176,7 +178,7 @@ void SteppingAction::UserSteppingAction(const G4Step* step) dynamic_cast(currentProcess); if(opProc) { - G4double angle = std::acos(startPoint->GetMomentumDirection().x()); + G4double angle = std::acos(p0.x()); theStatus = opProc->GetStatus(); analysisMan->FillH1(10, theStatus); switch(theStatus) @@ -309,6 +311,15 @@ void SteppingAction::UserSteppingAction(const G4Step* step) case Dichroic: run->AddDichroic(); break; + case CoatedDielectricReflection: + run->AddCoatedDielectricReflection(); + break; + case CoatedDielectricRefraction: + run->AddCoatedDielectricRefraction(); + break; + case CoatedDielectricFrustratedTransmission: + run->AddCoatedDielectricFrustratedTransmission(); + break; default: G4cout << "theStatus: " << theStatus << " was none of the above." << G4endl; @@ -318,6 +329,35 @@ void SteppingAction::UserSteppingAction(const G4Step* step) } } } + // This block serves to test that G4OpBoundaryProcess sets the group + // velocity correctly. It is not necessary to include in user code. + // Only steps where pre- and post- are the same material, to avoid + // incorrect checks (so, in practice, set e.g. OpRayleigh low enough + // for particles to step in the interior of each volume. + if (endPoint->GetMaterial() == startPoint->GetMaterial()) + { + G4double trackVelocity = track->GetVelocity(); + G4double materialVelocity = CLHEP::c_light; + G4MaterialPropertyVector* velVector = endPoint->GetMaterial() + ->GetMaterialPropertiesTable()->GetProperty(kGROUPVEL); + if(velVector) + { + materialVelocity = + velVector->Value(theParticle->GetTotalMomentum(), fIdxVelocity); + } + + if (std::abs(trackVelocity - materialVelocity) > 1e-9 * CLHEP::c_light) + { + G4ExceptionDescription ed; + ed << "Optical photon group velocity: " << trackVelocity/(cm/ns) + << " cm/ns is not what is expected from " << G4endl + << "the material properties, " + << materialVelocity/(cm/ns) << " cm/ns"; + G4Exception("OpNovice2 SteppingAction", "OpNovice2_1", + FatalException, ed); + } + } + // end of group velocity test } else diff --git a/examples/extended/optical/OpNovice2/wls.out b/examples/extended/optical/OpNovice2/wls.out index 6c57f16212..d8849eeffd 100644 --- a/examples/extended/optical/OpNovice2/wls.out +++ b/examples/extended/optical/OpNovice2/wls.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -461,7 +463,6 @@ OpWLS2 is created ### Birks coefficients used in run time G4_BGO 0.126 mm/MeV 0.089838 g/cm^2/MeV massFactor= 6.63951 effCharge= 1.56555 /analysis/setFileName wls -Set file name: wls ## WLS process /analysis/h1/set 4 100 0 10 /analysis/h1/set 5 100 0 10 @@ -487,6 +488,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -514,7 +516,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -550,8 +552,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -581,8 +582,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -706,7 +707,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -1090,6 +1091,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1392,7 +1398,7 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 10000 - User=0.560000s Real=0.557136s Sys=0.000000s + User=0.650000s Real=0.650769s Sys=0.000000s Run Summary --------------------------------- diff --git a/examples/extended/optical/wls/History b/examples/extended/optical/wls/History index d9a247ecc3..0a172693be 100644 --- a/examples/extended/optical/wls/History +++ b/examples/extended/optical/wls/History @@ -1,9 +1,13 @@ # Example wls History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-08-26 Gabriele Cosmo (WLS-V11-00-01) +- Fixed compilation warning on gcc-12.1 in WLSTrajectoryPoint constructor. ## 2021-12-10 Ben Morgan (WLS-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/optical/wls/electron.out b/examples/extended/optical/wls/electron.out index 7705636591..d68993e2d4 100644 --- a/examples/extended/optical/wls/electron.out +++ b/examples/extended/optical/wls/electron.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -35,6 +35,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -130,28 +132,28 @@ G4NistElementBuilder: Build Element Z= 8 Aeff= 15.9994 with natural isoto G4NistElementBuilder: Build Element Z= 18 Aeff= 39.9477 with natural isotope composition G4NistMaterialBuilder::FindOrBuildMaterial PMMA G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found. -New material PMMA is prepared nMaterials= 309 nComponents= 777 nCurrent= 3 -G4NistMaterialBuilder: BuildMaterial #308 +New material PMMA is prepared nMaterials= 310 nComponents= 780 nCurrent= 3 +G4NistMaterialBuilder: BuildMaterial #309 New material nComponents= 3 G4NistMaterialBuilder::FindOrBuildMaterial Pethylene G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found. -New material Pethylene is prepared nMaterials= 310 nComponents= 780 nCurrent= 2 -G4NistMaterialBuilder: BuildMaterial #309 +New material Pethylene is prepared nMaterials= 311 nComponents= 783 nCurrent= 2 +G4NistMaterialBuilder: BuildMaterial #310 New material nComponents= 2 G4NistMaterialBuilder::FindOrBuildMaterial FPethylene G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found. -New material FPethylene is prepared nMaterials= 311 nComponents= 782 nCurrent= 2 -G4NistMaterialBuilder: BuildMaterial #310 +New material FPethylene is prepared nMaterials= 312 nComponents= 785 nCurrent= 2 +G4NistMaterialBuilder: BuildMaterial #311 New material nComponents= 2 G4NistMaterialBuilder::FindOrBuildMaterial Polystyrene G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found. -New material Polystyrene is prepared nMaterials= 312 nComponents= 784 nCurrent= 2 -G4NistMaterialBuilder: BuildMaterial #311 +New material Polystyrene is prepared nMaterials= 313 nComponents= 787 nCurrent= 2 +G4NistMaterialBuilder: BuildMaterial #312 New material nComponents= 2 G4NistMaterialBuilder::FindOrBuildMaterial Silicone G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found. -New material Silicone is prepared nMaterials= 313 nComponents= 786 nCurrent= 2 -G4NistMaterialBuilder: BuildMaterial #312 +New material Silicone is prepared nMaterials= 314 nComponents= 789 nCurrent= 2 +G4NistMaterialBuilder: BuildMaterial #313 New material nComponents= 2 G4NistMaterialBuilder::FindOrBuildMaterial G4_Al G4NistMaterialBuilder: BuildMaterial #13 @@ -159,8 +161,8 @@ New material nComponents= 1 G4NistElementBuilder: Build Element Z= 13 Aeff= 26.9815 with natural isotope composition G4NistMaterialBuilder::FindOrBuildMaterial TiO2 G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found. -New material TiO2 is prepared nMaterials= 314 nComponents= 788 nCurrent= 2 -G4NistMaterialBuilder: BuildMaterial #313 +New material TiO2 is prepared nMaterials= 315 nComponents= 791 nCurrent= 2 +G4NistMaterialBuilder: BuildMaterial #314 New material nComponents= 2 G4NistElementBuilder: Build Element Z= 22 Aeff= 47.8667 with natural isotope composition @@ -198,6 +200,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -225,7 +228,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 1 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -261,8 +264,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 0 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -292,8 +294,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -417,7 +419,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -801,6 +803,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1127,199 +1134,226 @@ See commands in /vis/modeling/trajectories/ for other options. ... open analysis file : wls.root - done --> Event 0 starts. --------->Hits Collection: in this event there are 34 hits in the photon detector: +-------->Hits Collection: in this event there are 21 hits in the photon detector: Arrival time: 6.13333 ns Arrival position: (30.6861 um , 342.658 um ) Exit position: (116.287 um , 315.098 um ) Energy: 2.85608 eV Arrival time: 13.1579 ns Arrival position: (69.9982 um , 57.818 um ) Exit position: (51.8058 um , -21.5242 um ) Energy: 2.62075 eV -Arrival time: 9.13634 ns Arrival position: (-488.08 um , -24.3976 um ) Exit position: (-348.085 um , -72.0477 um ) Energy: 2.60481 eV -Arrival time: 9.12107 ns Arrival position: (204.024 um , 2.92852 um ) Exit position: (183.766 um , 117.619 um ) Energy: 2.35933 eV -Arrival time: 19.2825 ns Arrival position: (204.329 um , -307.426 um ) Exit position: (292.896 um , -303.56 um ) Energy: 2.71195 eV -Arrival time: 37.5118 ns Arrival position: (205.574 um , -52.8913 um ) Exit position: (221.909 um , -57.3129 um ) Energy: 2.35386 eV -Arrival time: 24.0488 ns Arrival position: (-212.677 um , 185.143 um ) Exit position: (-162.497 um , 203.401 um ) Energy: 2.87477 eV -Arrival time: 9.89923 ns Arrival position: (59.8113 um , 23.4665 um ) Exit position: (108.134 um , 47.3901 um ) Energy: 2.7637 eV -Arrival time: 34.853 ns Arrival position: (-29.4974 um , 377.571 um ) Exit position: (15.5244 um , 381.175 um ) Energy: 2.58402 eV -Arrival time: 10.9854 ns Arrival position: (353.229 um , -138.034 um ) Exit position: ( 368.78 um , -92.7575 um ) Energy: 2.29095 eV -Arrival time: 31.8945 ns Arrival position: (-14.8743 um , -331.132 um ) Exit position: (-144.643 um , -294.106 um ) Energy: 2.80661 eV -Arrival time: 14.4951 ns Arrival position: (-239.993 um , -188.173 um ) Exit position: (-177.277 um , -100.929 um ) Energy: 2.88287 eV -Arrival time: 18.3595 ns Arrival position: (-388.193 um , 273.627 um ) Exit position: (-342.964 um , 219.79 um ) Energy: 2.51887 eV -Arrival time: 29.688 ns Arrival position: (-23.1652 um , -304.302 um ) Exit position: (-37.5986 um , -434.629 um ) Energy: 2.41968 eV -Arrival time: 7.49448 ns Arrival position: (-73.7806 um , -20.5641 um ) Exit position: (37.7808 um , -97.1863 um ) Energy: 2.44028 eV -Arrival time: 27.4046 ns Arrival position: (88.5077 um , -48.5353 um ) Exit position: (-6.01902 um , -155.848 um ) Energy: 2.52875 eV -Arrival time: 6.96419 ns Arrival position: (-119.743 um , 300.132 um ) Exit position: (-51.2921 um , 226.046 um ) Energy: 2.70525 eV -Arrival time: 17.6048 ns Arrival position: (209.212 um , 271.417 um ) Exit position: (116.316 um , 309.212 um ) Energy: 2.58399 eV -Arrival time: 6.8261 ns Arrival position: (-262.901 um , -5.13768 um ) Exit position: (-212.052 um , 71.5658 um ) Energy: 2.90396 eV -Arrival time: 7.84046 ns Arrival position: (-158.642 um , -198.5 um ) Exit position: (-131.409 um , -175.943 um ) Energy: 2.4437 eV -Arrival time: 24.9033 ns Arrival position: (-479.028 um , -70.7927 um ) Exit position: (-342.716 um , -83.2379 um ) Energy: 2.82387 eV -Arrival time: 7.98217 ns Arrival position: (184.251 um , -135.996 um ) Exit position: ( 134.39 um , -31.9688 um ) Energy: 2.34272 eV -Arrival time: 40.9842 ns Arrival position: (-35.6542 um , 181.359 um ) Exit position: (-8.90005 um , 97.9074 um ) Energy: 2.6942 eV -Arrival time: 22.5089 ns Arrival position: ( 91.533 um , -16.9597 um ) Exit position: (115.797 um , 29.8357 um ) Energy: 2.40995 eV -Arrival time: 49.949 ns Arrival position: (-465.657 um , 182.944 um ) Exit position: (-319.183 um , -162.747 um ) Energy: 2.36724 eV -Arrival time: 12.7788 ns Arrival position: (-281.163 um , -16.2311 um ) Exit position: (-175.536 um , -93.4332 um ) Energy: 2.50627 eV -Arrival time: 15.3178 ns Arrival position: (-318.564 um , 391.504 um ) Exit position: (-250.995 um , 369.053 um ) Energy: 2.82919 eV -Arrival time: 11.8045 ns Arrival position: (-88.8867 um , 489.768 um ) Exit position: (-88.4696 um , 489.3 um ) Energy: 2.53217 eV -Arrival time: 34.7431 ns Arrival position: (104.518 um , 405.582 um ) Exit position: (48.2557 um , 299.497 um ) Energy: 2.68897 eV -Arrival time: 11.9895 ns Arrival position: (-226.298 um , 298.181 um ) Exit position: (-313.598 um , 302.772 um ) Energy: 2.80111 eV -Arrival time: 8.77923 ns Arrival position: (-229.439 um , 440.863 um ) Exit position: (-222.997 um , 377.166 um ) Energy: 2.57937 eV -Arrival time: 40.3203 ns Arrival position: (-166.063 um , 289.499 um ) Exit position: (-135.669 um , 296.421 um ) Energy: 2.74239 eV -Arrival time: 10.7665 ns Arrival position: (79.6005 um , 276.907 um ) Exit position: (236.632 um , 318.284 um ) Energy: 2.86 eV -Arrival time: 18.6849 ns Arrival position: (-43.4799 um , -383.868 um ) Exit position: (-88.3271 um , -421.157 um ) Energy: 2.79739 eV +Arrival time: 15.5464 ns Arrival position: (-265.961 um , -351.902 um ) Exit position: (-239.869 um , -389.925 um ) Energy: 2.57231 eV +Arrival time: 10.1009 ns Arrival position: ( 45.04 um , -398.588 um ) Exit position: (185.319 um , -440.171 um ) Energy: 2.80013 eV +Arrival time: 7.65824 ns Arrival position: (110.597 um , 174.301 um ) Exit position: (131.784 um , 114.179 um ) Energy: 2.59618 eV +Arrival time: 12.2203 ns Arrival position: (-207.96 um , 85.739 um ) Exit position: (-171.905 um , 152.852 um ) Energy: 2.5382 eV +Arrival time: 11.9595 ns Arrival position: (-49.2971 um , -326.789 um ) Exit position: (-102.335 um , -414.575 um ) Energy: 2.71959 eV +Arrival time: 66.8902 ns Arrival position: (25.8513 um , 6.2527 um ) Exit position: (18.1439 um , -28.034 um ) Energy: 2.23959 eV +Arrival time: 13.782 ns Arrival position: (382.309 um , 176.207 um ) Exit position: (292.532 um , 178.763 um ) Energy: 2.48354 eV +Arrival time: 7.54465 ns Arrival position: (194.074 um , -26.2704 um ) Exit position: (123.153 um , -70.4647 um ) Energy: 2.75519 eV +Arrival time: 7.36901 ns Arrival position: (-80.2242 um , 253.139 um ) Exit position: (-68.3096 um , 133.878 um ) Energy: 2.8864 eV +Arrival time: 17.4902 ns Arrival position: (-19.7238 um , 236.657 um ) Exit position: (-17.2274 um , 245.354 um ) Energy: 2.92034 eV +Arrival time: 31.4521 ns Arrival position: (-271.193 um , 205.282 um ) Exit position: (-152.639 um , 318.795 um ) Energy: 2.79779 eV +Arrival time: 17.7689 ns Arrival position: (-257.814 um , 224.092 um ) Exit position: (-151.244 um , 189.839 um ) Energy: 2.42038 eV +Arrival time: 7.98568 ns Arrival position: (79.1473 um , -358.366 um ) Exit position: (-45.2269 um , -294.971 um ) Energy: 2.75594 eV +Arrival time: 7.93909 ns Arrival position: (-58.2815 um , -178.254 um ) Exit position: ( -40.43 um , -68.9048 um ) Energy: 2.68778 eV +Arrival time: 11.9538 ns Arrival position: (128.029 um , -206.105 um ) Exit position: (171.832 um , -206.747 um ) Energy: 2.76529 eV +Arrival time: 7.41975 ns Arrival position: (265.795 um , 295.256 um ) Exit position: (295.746 um , 328.164 um ) Energy: 2.67607 eV +Arrival time: 8.47347 ns Arrival position: (209.971 um , 343.794 um ) Exit position: ( 270.32 um , 347.513 um ) Energy: 2.89306 eV +Arrival time: 21.3282 ns Arrival position: (123.504 um , 110 um ) Exit position: (50.5145 um , 185.942 um ) Energy: 2.89536 eV +Arrival time: 17.9056 ns Arrival position: (-102.891 um , 191.686 um ) Exit position: (-106.094 um , 286.852 um ) Energy: 2.55212 eV --> Event 1 starts. --------->Hits Collection: in this event there are 17 hits in the photon detector: -Arrival time: 20.4057 ns Arrival position: (1.73407 um , -23.3619 um ) Exit position: (120.076 um , -53.7195 um ) Energy: 2.44997 eV -Arrival time: 7.38308 ns Arrival position: (-164.961 um , 175.667 um ) Exit position: (-106.188 um , 128.948 um ) Energy: 2.61432 eV -Arrival time: 15.471 ns Arrival position: (-189.355 um , -312.119 um ) Exit position: (-116.285 um , -226.332 um ) Energy: 2.5185 eV -Arrival time: 14.7322 ns Arrival position: (-342.508 um , -168.76 um ) Exit position: (-330.043 um , -88.189 um ) Energy: 2.48941 eV -Arrival time: 26.6499 ns Arrival position: (-128.214 um , 337.26 um ) Exit position: (-130.097 um , 369.245 um ) Energy: 2.21634 eV -Arrival time: 10.2515 ns Arrival position: ( 9.8761 um , 197.435 um ) Exit position: (-10.6776 um , 155.627 um ) Energy: 2.65207 eV -Arrival time: 41.104 ns Arrival position: (304.219 um , 348.037 um ) Exit position: (153.872 um , 345.281 um ) Energy: 2.25508 eV -Arrival time: 20.0136 ns Arrival position: (-198.078 um , -328.2 um ) Exit position: (-89.298 um , -365.791 um ) Energy: 2.83196 eV -Arrival time: 7.67791 ns Arrival position: (216.464 um , 56.2791 um ) Exit position: (110.646 um , 168.436 um ) Energy: 2.86824 eV -Arrival time: 7.31901 ns Arrival position: (-24.8408 um , -31.5444 um ) Exit position: (-8.09214 um , -632.212 nm ) Energy: 2.99188 eV -Arrival time: 18.4831 ns Arrival position: (-158.67 um , 169.095 um ) Exit position: (-265.352 um , 170.554 um ) Energy: 2.57565 eV -Arrival time: 16.2485 ns Arrival position: (-377.155 um , 379.168 um ) Exit position: (-322.525 um , 262.439 um ) Energy: 2.81414 eV -Arrival time: 8.5404 ns Arrival position: (-360.992 um , 178.196 um ) Exit position: (-287.873 um , 215.067 um ) Energy: 2.43571 eV -Arrival time: 7.4847 ns Arrival position: (-210.323 um , 161.049 um ) Exit position: (-248.014 um , 102.468 um ) Energy: 2.73586 eV -Arrival time: 14.5685 ns Arrival position: (-164.586 um , -429.636 um ) Exit position: (-25.7387 um , -472.697 um ) Energy: 2.73347 eV -Arrival time: 8.60083 ns Arrival position: (-64.1833 um , 57.423 um ) Exit position: (59.3467 um , 56.3092 um ) Energy: 2.51314 eV -Arrival time: 15.2246 ns Arrival position: (-77.9868 um , -552.445 um ) Exit position: (13.7009 um , -489.498 um ) Energy: 2.59741 eV +-------->Hits Collection: in this event there are 15 hits in the photon detector: +Arrival time: 7.99194 ns Arrival position: (298.249 um , 261.394 um ) Exit position: (277.342 um , 290.707 um ) Energy: 2.76907 eV +Arrival time: 15.228 ns Arrival position: (-48.9633 um , 292.881 um ) Exit position: (-77.3348 um , 209.118 um ) Energy: 2.82582 eV +Arrival time: 6.54658 ns Arrival position: ( 247.37 um , 18.6828 um ) Exit position: (282.769 um , 30.2187 um ) Energy: 2.49386 eV +Arrival time: 7.62891 ns Arrival position: (314.011 um , -222.992 um ) Exit position: (296.429 um , -205.398 um ) Energy: 2.67767 eV +Arrival time: 21.0446 ns Arrival position: (228.308 um , -177.503 um ) Exit position: (298.959 um , -127.725 um ) Energy: 2.40762 eV +Arrival time: 24.4979 ns Arrival position: (92.1634 um , -5.90088 um ) Exit position: (19.0458 um , 77.7259 um ) Energy: 2.43136 eV +Arrival time: 7.0648 ns Arrival position: (-188.854 um , 243.999 um ) Exit position: (-306.878 um , 161.213 um ) Energy: 2.56772 eV +Arrival time: 8.5229 ns Arrival position: (-299.385 um , 216.502 um ) Exit position: (-229.228 um , 252.682 um ) Energy: 2.70771 eV +Arrival time: 8.68212 ns Arrival position: (-67.8188 um , -214.218 um ) Exit position: (59.4679 um , -198.441 um ) Energy: 2.59376 eV +Arrival time: 6.58448 ns Arrival position: (414.228 um , 167.468 um ) Exit position: (315.438 um , 203.392 um ) Energy: 2.38994 eV +Arrival time: 36.9825 ns Arrival position: (90.4762 um , -562.42 um ) Exit position: (29.1153 um , -494.061 um ) Energy: 2.71931 eV +Arrival time: 11.5765 ns Arrival position: (249.446 um , -155.223 um ) Exit position: (137.671 um , -190.117 um ) Energy: 2.63079 eV +Arrival time: 23.4007 ns Arrival position: (-398.763 um , 260.901 um ) Exit position: (-345.637 um , 211.526 um ) Energy: 2.72266 eV +Arrival time: 45.6614 ns Arrival position: (-80.1083 um , -341.209 um ) Exit position: (-170.211 um , -301.723 um ) Energy: 2.24467 eV +Arrival time: 57.9682 ns Arrival position: (413.206 um , -12.182 um ) Exit position: (393.185 um , 63.435 um ) Energy: 2.60497 eV --> Event 2 starts. --------->Hits Collection: in this event there are 3 hits in the photon detector: -Arrival time: 5.50529 ns Arrival position: (27.6899 um , -331.773 um ) Exit position: (-32.9036 um , -331.113 um ) Energy: 2.91434 eV -Arrival time: 5.44074 ns Arrival position: (381.502 um , -198.751 um ) Exit position: (366.694 um , -152.859 um ) Energy: 2.78597 eV -Arrival time: 5.36828 ns Arrival position: (323.884 um , 93.955 um ) Exit position: (318.141 um , 70.0991 um ) Energy: 2.93427 eV +-------->Hits Collection: in this event there are 9 hits in the photon detector: +Arrival time: 6.64063 ns Arrival position: (-16.9388 um , 339.383 um ) Exit position: (-39.3148 um , 301.051 um ) Energy: 2.47829 eV +Arrival time: 22.2677 ns Arrival position: (-236.773 um , -291.994 um ) Exit position: (-185.619 um , -335.483 um ) Energy: 2.26182 eV +Arrival time: 13.2413 ns Arrival position: ( 155.79 um , -355.196 um ) Exit position: (209.916 um , -393.566 um ) Energy: 2.44886 eV +Arrival time: 17.1016 ns Arrival position: (-118.773 um , 406.291 um ) Exit position: (-192.177 um , 303.396 um ) Energy: 2.42838 eV +Arrival time: 22.3031 ns Arrival position: (221.586 um , -182.009 um ) Exit position: (191.465 um , -149.244 um ) Energy: 2.79044 eV +Arrival time: 10.7852 ns Arrival position: (160.833 um , -291.757 um ) Exit position: (168.061 um , -335.881 um ) Energy: 2.54082 eV +Arrival time: 9.71907 ns Arrival position: (44.7812 um , 261.22 um ) Exit position: (-5.07751 um , 146.093 um ) Energy: 2.90822 eV +Arrival time: 8.10535 ns Arrival position: (106.909 um , 94.539 um ) Exit position: (230.511 um , 194.74 um ) Energy: 2.90495 eV +Arrival time: 12.5923 ns Arrival position: (7.69581 um , 95.5121 um ) Exit position: (-88.748 um , 73.7428 um ) Energy: 2.64568 eV --> Event 3 starts. --------->Hits Collection: in this event there are 1 hits in the photon detector: -Arrival time: 5.4939 ns Arrival position: (-424.606 um , 17.2699 um ) Exit position: (-368.617 um , 2.678 um ) Energy: 2.92923 eV +-------->Hits Collection: in this event there are 25 hits in the photon detector: +Arrival time: 12.3861 ns Arrival position: (377.809 um , -108.501 um ) Exit position: (233.994 um , -350.937 um ) Energy: 2.5182 eV +Arrival time: 7.61238 ns Arrival position: (46.9732 um , 67.5258 um ) Exit position: (100.514 um , 63.3535 um ) Energy: 2.70992 eV +Arrival time: 9.46642 ns Arrival position: (-58.5806 um , 181.485 um ) Exit position: (-81.7422 um , 207.131 um ) Energy: 2.70662 eV +Arrival time: 10.5494 ns Arrival position: ( 71.142 um , -334.375 um ) Exit position: (48.3279 um , -351.035 um ) Energy: 2.46759 eV +Arrival time: 17.7517 ns Arrival position: (-280.699 um , 436.437 um ) Exit position: (-211.911 um , 353.193 um ) Energy: 2.60862 eV +Arrival time: 11.0025 ns Arrival position: (397.738 um , 257.104 um ) Exit position: (345.769 um , 231.435 um ) Energy: 2.81114 eV +Arrival time: 6.91074 ns Arrival position: (-275.86 um , -30.4533 um ) Exit position: (-277.878 um , -54.5231 um ) Energy: 2.81358 eV +Arrival time: 20.9962 ns Arrival position: (-145.188 um , 185.675 um ) Exit position: (-119.199 um , 250.294 um ) Energy: 2.55411 eV +Arrival time: 7.96067 ns Arrival position: (424.082 um , -294.059 um ) Exit position: (405.421 um , 39.3629 um ) Energy: 2.61937 eV +Arrival time: 6.41928 ns Arrival position: (175.382 um , 186.705 um ) Exit position: (164.863 um , 173.394 um ) Energy: 2.5364 eV +Arrival time: 11.2179 ns Arrival position: (250.317 um , 71.8078 um ) Exit position: (311.712 um , -39.6102 um ) Energy: 2.78077 eV +Arrival time: 20.4037 ns Arrival position: (-351.417 um , 219.955 um ) Exit position: (-386.612 um , 176.389 um ) Energy: 2.54933 eV +Arrival time: 27.1621 ns Arrival position: (-196.993 um , -200.259 um ) Exit position: (-208.587 um , -116.914 um ) Energy: 2.71564 eV +Arrival time: 28.1432 ns Arrival position: (-117.996 um , -133.848 um ) Exit position: (-106.001 um , -110.236 um ) Energy: 2.49349 eV +Arrival time: 30.3879 ns Arrival position: (329.249 um , 417.794 um ) Exit position: (314.115 um , 209.981 um ) Energy: 2.49135 eV +Arrival time: 29.7428 ns Arrival position: (-344.862 um , -325.716 um ) Exit position: (-235.215 um , -400.12 um ) Energy: 2.38225 eV +Arrival time: 6.62242 ns Arrival position: (72.1635 um , 14.7569 um ) Exit position: (-1.34414 um , -93.5742 um ) Energy: 2.8146 eV +Arrival time: 6.92909 ns Arrival position: (287.906 um , -309.463 um ) Exit position: (309.332 um , -147.747 um ) Energy: 2.80872 eV +Arrival time: 18.4894 ns Arrival position: (88.1314 um , -287.167 um ) Exit position: (202.801 um , -258.053 um ) Energy: 2.78133 eV +Arrival time: 7.31193 ns Arrival position: (-129.979 um , 219.966 um ) Exit position: (-29.4144 um , 338.103 um ) Energy: 2.71479 eV +Arrival time: 17.0591 ns Arrival position: (285.312 um , -59.7589 um ) Exit position: (278.498 um , -45.2779 um ) Energy: 2.64732 eV +Arrival time: 6.79487 ns Arrival position: (-128.123 um , 500.459 um ) Exit position: (-85.5959 um , 361.156 um ) Energy: 2.59837 eV +Arrival time: 10.5882 ns Arrival position: (144.112 um , -399.983 um ) Exit position: (72.3694 um , -447.545 um ) Energy: 2.67774 eV +Arrival time: 27.1111 ns Arrival position: (-59.2693 um , -329.724 um ) Exit position: (-59.4513 um , -430.179 um ) Energy: 2.83982 eV +Arrival time: 9.37045 ns Arrival position: (-195.765 um , 260.684 um ) Exit position: (-142.193 um , 301.158 um ) Energy: 2.64671 eV --> Event 4 starts. --------->Hits Collection: in this event there are 0 hits in the photon detector: +-------->Hits Collection: in this event there are 19 hits in the photon detector: +Arrival time: 6.05087 ns Arrival position: (-434.151 um , 38.605 um ) Exit position: (-391.116 um , 95.6272 um ) Energy: 2.85745 eV +Arrival time: 36.2025 ns Arrival position: (5.23938 um , 204.285 um ) Exit position: (17.2953 um , 267.302 um ) Energy: 2.46951 eV +Arrival time: 10.5964 ns Arrival position: (98.7339 um , -185.822 um ) Exit position: (30.7152 um , -248.298 um ) Energy: 2.26861 eV +Arrival time: 7.37403 ns Arrival position: (139.687 um , -480.019 um ) Exit position: (-79.4345 um , -443.018 um ) Energy: 2.78353 eV +Arrival time: 12.3394 ns Arrival position: (-32.8366 um , 255.768 um ) Exit position: (-98.7771 um , 272.322 um ) Energy: 2.69792 eV +Arrival time: 10.9758 ns Arrival position: (-102.749 um , 237.533 um ) Exit position: (-132.361 um , 362.958 um ) Energy: 2.85907 eV +Arrival time: 11.5784 ns Arrival position: (-426.259 um , 26.841 um ) Exit position: (-364.688 um , -39.068 um ) Energy: 2.33025 eV +Arrival time: 22.5992 ns Arrival position: (-19.7728 um , 427.773 um ) Exit position: (-105.626 um , 328.138 um ) Energy: 2.91191 eV +Arrival time: 19.9148 ns Arrival position: (-279.336 um , -52.0912 um ) Exit position: (-230.373 um , -16.3447 um ) Energy: 2.70197 eV +Arrival time: 17.3398 ns Arrival position: (-304.151 um , 397.925 um ) Exit position: (-248.05 um , 265.411 um ) Energy: 2.85921 eV +Arrival time: 9.4072 ns Arrival position: (-263.832 um , 251.435 um ) Exit position: (-128.737 um , 291.314 um ) Energy: 2.34304 eV +Arrival time: 8.56567 ns Arrival position: (164.317 um , 154.216 um ) Exit position: (177.309 um , 139.658 um ) Energy: 2.85356 eV +Arrival time: 19.1143 ns Arrival position: (157.227 um , 43.6209 um ) Exit position: (60.4349 um , -44.9587 um ) Energy: 2.22196 eV +Arrival time: 6.14637 ns Arrival position: (164.351 um , 87.3001 um ) Exit position: (180.074 um , 134.826 um ) Energy: 2.30919 eV +Arrival time: 31.2787 ns Arrival position: ( -138.3 um , 97.5625 um ) Exit position: (-115.824 um , 110.981 um ) Energy: 2.57724 eV +Arrival time: 9.87729 ns Arrival position: (44.6074 um , 306.631 um ) Exit position: (-32.0847 um , 258.666 um ) Energy: 2.54099 eV +Arrival time: 7.53381 ns Arrival position: (-352.598 um , -128.896 um ) Exit position: (-279.542 um , -142.431 um ) Energy: 2.6441 eV +Arrival time: 8.67628 ns Arrival position: (259.813 um , -244.081 um ) Exit position: (232.635 um , -131.055 um ) Energy: 2.60422 eV +Arrival time: 32.2672 ns Arrival position: (242.579 um , -223.406 um ) Exit position: (287.736 um , -213.517 um ) Energy: 2.63072 eV --> Event 5 starts. --------->Hits Collection: in this event there are 9 hits in the photon detector: -Arrival time: 24.9371 ns Arrival position: (99.6712 um , -302.939 um ) Exit position: (-37.9808 um , -289.796 um ) Energy: 2.68745 eV -Arrival time: 15.2044 ns Arrival position: (-22.5342 um , 101.552 um ) Exit position: (-146.521 um , -603.973 nm ) Energy: 2.33166 eV -Arrival time: 17.3794 ns Arrival position: (46.1237 um , -366.181 um ) Exit position: (93.4882 um , -234.747 um ) Energy: 2.26067 eV -Arrival time: 8.77678 ns Arrival position: (80.0659 um , 466.981 um ) Exit position: (174.012 um , 371.229 um ) Energy: 2.80559 eV -Arrival time: 10.9173 ns Arrival position: (222.661 um , 315.206 um ) Exit position: (153.069 um , 279.017 um ) Energy: 2.94295 eV -Arrival time: 12.1523 ns Arrival position: (-355.448 um , -238.124 um ) Exit position: (-287.564 um , -187.454 um ) Energy: 2.79506 eV -Arrival time: 42.9222 ns Arrival position: (-185.456 um , 20.5333 um ) Exit position: (-241.37 um , 128.011 um ) Energy: 2.68216 eV -Arrival time: 23.6623 ns Arrival position: (-60.8108 um , 339.404 um ) Exit position: (-58.8893 um , 271.827 um ) Energy: 2.59502 eV -Arrival time: 12.461 ns Arrival position: (-261.372 um , -8.91036 um ) Exit position: (-259.685 um , -15.1961 um ) Energy: 2.80967 eV +-------->Hits Collection: in this event there are 1 hits in the photon detector: +Arrival time: 8.98578 ns Arrival position: (-151.461 um , -282.961 um ) Exit position: (-63.2137 um , -328.275 um ) Energy: 2.8678 eV --> Event 6 starts. --------->Hits Collection: in this event there are 25 hits in the photon detector: -Arrival time: 16.1668 ns Arrival position: (-91.0841 um , -10.7921 um ) Exit position: (-211.365 um , 2.02929 um ) Energy: 2.89824 eV -Arrival time: 14.6704 ns Arrival position: (86.5021 um , 176.078 um ) Exit position: (200.732 um , 221.819 um ) Energy: 2.36095 eV -Arrival time: 6.10968 ns Arrival position: (184.032 um , -154.989 um ) Exit position: (241.117 um , -171.471 um ) Energy: 2.37161 eV -Arrival time: 7.00504 ns Arrival position: (-94.186 um , -335.245 um ) Exit position: (-75.7878 um , -324.785 um ) Energy: 2.39013 eV -Arrival time: 21.6739 ns Arrival position: (-161.912 um , 78.2309 um ) Exit position: (-172.27 um , -30.8179 um ) Energy: 2.68703 eV -Arrival time: 20.5839 ns Arrival position: (75.7659 um , -55.8213 um ) Exit position: (-416.159 nm , -90.0643 um ) Energy: 2.18175 eV -Arrival time: 6.20106 ns Arrival position: (-257.945 um , 86.7451 um ) Exit position: (-313.795 um , 106.499 um ) Energy: 2.51466 eV -Arrival time: 9.45516 ns Arrival position: (319.192 um , 355.98 um ) Exit position: (252.751 um , 261.147 um ) Energy: 2.5778 eV -Arrival time: 8.90829 ns Arrival position: (123.988 um , -107.113 um ) Exit position: (52.3375 um , -67.3893 um ) Energy: 2.542 eV -Arrival time: 9.7221 ns Arrival position: ( 337.28 um , 357.799 um ) Exit position: (326.534 um , 267.996 um ) Energy: 2.50002 eV -Arrival time: 10.5197 ns Arrival position: (337.311 um , 19.3965 um ) Exit position: (406.721 um , 33.3324 um ) Energy: 2.47056 eV -Arrival time: 17.1958 ns Arrival position: (-243.09 um , -91.4102 um ) Exit position: (-280.679 um , -119.916 um ) Energy: 2.73257 eV -Arrival time: 14.0034 ns Arrival position: ( 280.49 um , -241.713 um ) Exit position: (282.637 um , -48.2201 um ) Energy: 2.71358 eV -Arrival time: 9.49329 ns Arrival position: (-5.37147 um , 328.862 um ) Exit position: (67.9793 um , 392.618 um ) Energy: 2.57479 eV -Arrival time: 17.5855 ns Arrival position: (-60.3377 um , 77.7459 um ) Exit position: (-68.299 um , -30.914 um ) Energy: 2.74631 eV -Arrival time: 8.19467 ns Arrival position: (94.9624 um , -39.1957 um ) Exit position: (217.585 um , 11.9224 um ) Energy: 2.28692 eV -Arrival time: 10.0747 ns Arrival position: (-134.053 um , 307.339 um ) Exit position: (-49.6881 um , 230.734 um ) Energy: 2.43695 eV -Arrival time: 6.84317 ns Arrival position: (-135.53 um , -98.7207 um ) Exit position: (-42.4738 um , -81.0907 um ) Energy: 2.59249 eV -Arrival time: 12.1141 ns Arrival position: (133.209 um , -127.233 um ) Exit position: ( 183.47 um , -261.928 um ) Energy: 2.62834 eV -Arrival time: 8.90697 ns Arrival position: (-343.771 um , -230.032 um ) Exit position: (-192.982 um , -405.414 um ) Energy: 2.49515 eV -Arrival time: 12.0463 ns Arrival position: (-287.56 um , -298.945 um ) Exit position: (-281.829 um , -374.133 um ) Energy: 2.40333 eV -Arrival time: 21.6727 ns Arrival position: (-200.437 um , 20.7808 um ) Exit position: (-76.9965 um , -19.7607 um ) Energy: 2.34454 eV -Arrival time: 12.7468 ns Arrival position: (-277.761 um , 15.4992 um ) Exit position: (-299.332 um , -91.1535 um ) Energy: 2.48243 eV -Arrival time: 38.7616 ns Arrival position: (-197.01 um , 385.579 um ) Exit position: (-230.91 um , 392.127 um ) Energy: 2.22845 eV -Arrival time: 8.68736 ns Arrival position: ( 31.966 um , 107.828 um ) Exit position: (-77.4287 um , 119.852 um ) Energy: 2.83035 eV +-------->Hits Collection: in this event there are 0 hits in the photon detector: --> Event 7 starts. --------->Hits Collection: in this event there are 17 hits in the photon detector: -Arrival time: 5.93336 ns Arrival position: (-86.4388 um , 135.77 um ) Exit position: (-98.8759 um , 181.05 um ) Energy: 2.43281 eV -Arrival time: 8.8576 ns Arrival position: (234.547 um , 196.922 um ) Exit position: (189.493 um , 218.892 um ) Energy: 2.59363 eV -Arrival time: 13.3732 ns Arrival position: (-328.465 um , -28.4488 um ) Exit position: (-268.907 um , 70.9008 um ) Energy: 2.57806 eV -Arrival time: 10.1672 ns Arrival position: (284.217 um , 89.0118 um ) Exit position: (205.457 um , -5.59325 um ) Energy: 2.79896 eV -Arrival time: 6.85943 ns Arrival position: (192.587 um , 85.9238 um ) Exit position: (122.284 um , 45.0155 um ) Energy: 2.51841 eV -Arrival time: 9.07563 ns Arrival position: (-354.997 um , 186.469 um ) Exit position: (-237.924 um , 114.952 um ) Energy: 2.47876 eV -Arrival time: 6.23387 ns Arrival position: (-187.012 um , 270.755 um ) Exit position: (-213.726 um , 258.276 um ) Energy: 2.69579 eV -Arrival time: 16.0006 ns Arrival position: (-209.541 um , -561.146 nm ) Exit position: (-302.582 um , 128.42 um ) Energy: 2.59808 eV -Arrival time: 16.0247 ns Arrival position: (320.174 um , -43.6706 um ) Exit position: (214.625 um , -24.4496 um ) Energy: 2.56766 eV -Arrival time: 8.99812 ns Arrival position: (-102.636 um , 186.667 um ) Exit position: (-70.542 um , 238.168 um ) Energy: 2.55373 eV -Arrival time: 32.2354 ns Arrival position: (-224.581 um , -278.48 um ) Exit position: (-143.905 um , -218.351 um ) Energy: 2.86113 eV -Arrival time: 6.16674 ns Arrival position: (188.699 um , 422.784 um ) Exit position: (119.862 um , 435.919 um ) Energy: 2.45506 eV -Arrival time: 11.2233 ns Arrival position: (-32.903 um , -268.374 um ) Exit position: (14.9965 um , -224.986 um ) Energy: 2.81562 eV -Arrival time: 25.6471 ns Arrival position: (-16.3991 um , -173.898 um ) Exit position: (88.1238 um , -66.4379 um ) Energy: 2.39549 eV -Arrival time: 12.2036 ns Arrival position: (-488.368 um , -178.451 um ) Exit position: (-347.881 um , -126.076 um ) Energy: 2.34682 eV -Arrival time: 12.9435 ns Arrival position: (250.884 um , -54.5237 um ) Exit position: (291.805 um , -142.717 um ) Energy: 2.49638 eV -Arrival time: 15.1538 ns Arrival position: (188.028 um , 259.01 um ) Exit position: (163.317 um , 265.452 um ) Energy: 2.62275 eV +-------->Hits Collection: in this event there are 13 hits in the photon detector: +Arrival time: 13.4811 ns Arrival position: (-156.521 um , -419.362 um ) Exit position: (-76.762 um , -417.307 um ) Energy: 2.18233 eV +Arrival time: 8.61199 ns Arrival position: (-183.004 um , -198.525 um ) Exit position: (-141.283 um , -205.539 um ) Energy: 2.64921 eV +Arrival time: 23.7025 ns Arrival position: (163.249 um , -287.707 um ) Exit position: (216.178 um , -288.571 um ) Energy: 2.11938 eV +Arrival time: 15.3025 ns Arrival position: (-141.513 um , -4.94657 um ) Exit position: (-103.166 um , -95.1014 um ) Energy: 2.49075 eV +Arrival time: 8.66285 ns Arrival position: (192.943 um , 311.879 um ) Exit position: (64.7615 um , 329.951 um ) Energy: 2.60338 eV +Arrival time: 34.7121 ns Arrival position: (325.061 um , -223.42 um ) Exit position: (281.017 um , -292.408 um ) Energy: 2.06443 eV +Arrival time: 8.06983 ns Arrival position: (18.8198 um , -374.148 um ) Exit position: (36.6327 um , -454.766 um ) Energy: 2.5304 eV +Arrival time: 34.7056 ns Arrival position: (-423.66 um , -139.634 um ) Exit position: (-311.965 um , -51.4027 um ) Energy: 2.82807 eV +Arrival time: 13.8592 ns Arrival position: (105.738 um , -152.536 um ) Exit position: (31.3124 um , -160.48 um ) Energy: 2.44724 eV +Arrival time: 25.9444 ns Arrival position: (-199.777 um , 42.1148 um ) Exit position: (-205.135 um , 71.2206 um ) Energy: 2.20672 eV +Arrival time: 13.2449 ns Arrival position: (-141.504 um , -321.833 um ) Exit position: (-92.3105 um , -357.547 um ) Energy: 2.69602 eV +Arrival time: 13.4141 ns Arrival position: (-266.133 um , 125.472 um ) Exit position: (-238.501 um , 63.0818 um ) Energy: 2.82163 eV +Arrival time: 11.2683 ns Arrival position: (-4.67918 um , 296.335 um ) Exit position: (43.5191 um , 434.221 um ) Energy: 2.7665 eV --> Event 8 starts. --------->Hits Collection: in this event there are 11 hits in the photon detector: -Arrival time: 10.7005 ns Arrival position: (-15.2736 um , -8.92356 um ) Exit position: (-57.3062 um , 100.512 um ) Energy: 2.25077 eV -Arrival time: 16.1379 ns Arrival position: (-195.842 um , -104.181 um ) Exit position: (-209.236 um , -56.2251 um ) Energy: 2.83903 eV -Arrival time: 24.084 ns Arrival position: (345.728 um , -24.8199 um ) Exit position: (322.165 um , 182.768 um ) Energy: 2.61483 eV -Arrival time: 10.0152 ns Arrival position: (210.383 um , -228.168 um ) Exit position: (135.708 um , -208.559 um ) Energy: 2.83489 eV -Arrival time: 14.3621 ns Arrival position: (273.488 um , -225.507 um ) Exit position: (190.354 um , -286.994 um ) Energy: 2.6109 eV -Arrival time: 17.178 ns Arrival position: (54.6802 um , 498.779 um ) Exit position: (221.069 um , 374.076 um ) Energy: 2.74569 eV -Arrival time: 21.6197 ns Arrival position: (350.871 um , -177.809 um ) Exit position: (266.496 um , -245.882 um ) Energy: 2.65845 eV -Arrival time: 22.5756 ns Arrival position: (76.2982 um , -49.0994 um ) Exit position: (67.9717 um , -17.8517 um ) Energy: 2.76608 eV -Arrival time: 35.7726 ns Arrival position: (163.292 um , 370.883 um ) Exit position: (132.177 um , 412.315 um ) Energy: 2.86112 eV -Arrival time: 34.329 ns Arrival position: (-139.728 um , -299.782 um ) Exit position: (-10.3699 um , -229.98 um ) Energy: 2.67129 eV -Arrival time: 19.7028 ns Arrival position: (37.1123 um , 380.779 um ) Exit position: (23.6197 um , 434.874 um ) Energy: 2.7424 eV +-------->Hits Collection: in this event there are 16 hits in the photon detector: +Arrival time: 11.0674 ns Arrival position: (202.018 um , 10.8154 um ) Exit position: (178.746 um , -13.0889 um ) Energy: 2.65988 eV +Arrival time: 7.11635 ns Arrival position: (-30.6136 um , 343.489 um ) Exit position: (118.553 um , 374.535 um ) Energy: 2.84541 eV +Arrival time: 17.9837 ns Arrival position: (-309.037 um , -62.5327 um ) Exit position: (-285.466 um , -84.3951 um ) Energy: 2.54974 eV +Arrival time: 8.43555 ns Arrival position: (-404.571 um , -86.5385 um ) Exit position: (-371.414 um , -195.824 um ) Energy: 2.60551 eV +Arrival time: 7.41892 ns Arrival position: (82.3337 um , -205.655 um ) Exit position: (176.713 um , -158.25 um ) Energy: 2.84779 eV +Arrival time: 7.68025 ns Arrival position: (137.166 um , 575.243 um ) Exit position: (140.404 um , 446.099 um ) Energy: 2.60137 eV +Arrival time: 9.13281 ns Arrival position: (14.9553 um , -562.888 um ) Exit position: (24.9652 um , -409.348 um ) Energy: 2.60953 eV +Arrival time: 13.6346 ns Arrival position: (-34.9928 um , -371.578 um ) Exit position: (-86.1137 um , -248.214 um ) Energy: 2.6588 eV +Arrival time: 34.6013 ns Arrival position: (13.4783 um , 289.406 um ) Exit position: (34.0651 um , 408.347 um ) Energy: 2.60389 eV +Arrival time: 32.382 ns Arrival position: (-369.469 um , 372.711 um ) Exit position: (-83.3954 um , 430.028 um ) Energy: 2.41317 eV +Arrival time: 26.2973 ns Arrival position: (-339.957 um , -278.741 um ) Exit position: (-288.864 um , -239.525 um ) Energy: 2.78032 eV +Arrival time: 12.8353 ns Arrival position: (413.759 um , 67.9238 um ) Exit position: (390.659 um , 22.9896 um ) Energy: 2.38792 eV +Arrival time: 7.02989 ns Arrival position: (-386.522 um , 185.668 um ) Exit position: (-342.621 um , 179.456 um ) Energy: 2.75648 eV +Arrival time: 29.2883 ns Arrival position: (-100.288 um , -113.976 um ) Exit position: (-194.844 um , -213.43 um ) Energy: 2.82993 eV +Arrival time: 10.9521 ns Arrival position: ( 148.45 um , -327.906 um ) Exit position: ( 107.53 um , -243.343 um ) Energy: 2.73188 eV +Arrival time: 12.5372 ns Arrival position: (465.139 um , 126.636 um ) Exit position: (392.001 um , -86.7152 um ) Energy: 2.60097 eV --> Event 9 starts. --------->Hits Collection: in this event there are 23 hits in the photon detector: -Arrival time: 7.71778 ns Arrival position: (30.2775 um , 347.407 um ) Exit position: ( 67.159 um , 312.313 um ) Energy: 2.45498 eV -Arrival time: 13.9752 ns Arrival position: (49.6502 um , 510.923 um ) Exit position: (-218.881 um , 373.126 um ) Energy: 2.68194 eV -Arrival time: 23.3063 ns Arrival position: (-195.757 um , 52.4082 um ) Exit position: (-231.251 um , -43.6343 um ) Energy: 2.75251 eV -Arrival time: 15.6263 ns Arrival position: (-415.076 um , -244.346 um ) Exit position: (-370.723 um , -212.474 um ) Energy: 2.49084 eV -Arrival time: 7.44072 ns Arrival position: (167.937 um , -96.1828 um ) Exit position: ( 90.641 um , -85.8273 um ) Energy: 2.45911 eV -Arrival time: 24.9932 ns Arrival position: (285.333 um , 425.78 um ) Exit position: (258.253 um , 366.223 um ) Energy: 2.68775 eV -Arrival time: 11.1974 ns Arrival position: (-354.376 um , -165.541 um ) Exit position: (-278.686 um , -160.038 um ) Energy: 2.49914 eV -Arrival time: 6.60851 ns Arrival position: (-57.5404 um , 239.692 um ) Exit position: (-165.072 um , 200.277 um ) Energy: 2.60511 eV -Arrival time: 17.3868 ns Arrival position: (263.476 um , -106.221 um ) Exit position: ( 289.77 um , -141.541 um ) Energy: 2.38305 eV -Arrival time: 29.0721 ns Arrival position: (-182.691 um , 228.11 um ) Exit position: (-229.65 um , 201.983 um ) Energy: 2.49368 eV -Arrival time: 27.4813 ns Arrival position: (340.869 um , -299.533 um ) Exit position: (237.475 um , -231.603 um ) Energy: 2.76666 eV -Arrival time: 30.9253 ns Arrival position: (5.09792 um , -416.192 um ) Exit position: (61.6496 um , -441.324 um ) Energy: 2.80199 eV -Arrival time: 54.6232 ns Arrival position: (-229.91 um , 17.4856 nm ) Exit position: (-340.263 um , -34.909 um ) Energy: 2.36109 eV -Arrival time: 32.1019 ns Arrival position: (12.7244 um , 458.954 um ) Exit position: (43.6909 um , 450.917 um ) Energy: 2.54858 eV -Arrival time: 18.3802 ns Arrival position: (-125.832 um , -282.582 um ) Exit position: (-186.962 um , -425.994 um ) Energy: 2.62918 eV -Arrival time: 44.646 ns Arrival position: (410.152 um , -29.6566 um ) Exit position: (377.146 um , 111.156 um ) Energy: 2.50019 eV -Arrival time: 21.2899 ns Arrival position: (-372.97 um , 109.442 um ) Exit position: (-366.712 um , -37.5747 um ) Energy: 2.38915 eV -Arrival time: 23.3544 ns Arrival position: (-212.81 um , 83.1217 um ) Exit position: (-167.954 um , -15.2458 um ) Energy: 2.61339 eV -Arrival time: 16.7043 ns Arrival position: (-374.504 um , -25.5839 um ) Exit position: (-312.742 um , 33.5182 um ) Energy: 2.81231 eV -Arrival time: 14.695 ns Arrival position: (103.507 um , -49.9355 um ) Exit position: (165.557 um , 31.2319 um ) Energy: 2.48377 eV -Arrival time: 8.93644 ns Arrival position: (61.4173 um , -235.002 um ) Exit position: (209.561 um , -236.818 um ) Energy: 2.22771 eV -Arrival time: 23.728 ns Arrival position: ( 393.35 um , 182.61 um ) Exit position: (282.085 um , 213.028 um ) Energy: 2.71405 eV -Arrival time: 49.5638 ns Arrival position: (-47.1908 um , -306.211 um ) Exit position: (-45.7493 um , -275.471 um ) Energy: 2.81996 eV +-------->Hits Collection: in this event there are 48 hits in the photon detector: +Arrival time: 16.0509 ns Arrival position: (-47.8196 um , -437.373 um ) Exit position: (47.1685 um , -383.737 um ) Energy: 2.29637 eV +Arrival time: 40.7938 ns Arrival position: (-88.3405 um , 414.698 um ) Exit position: (-63.6589 um , 488.038 um ) Energy: 2.65829 eV +Arrival time: 14.8862 ns Arrival position: (-35.5946 um , 474.22 um ) Exit position: ( 5.7533 um , 437.302 um ) Energy: 2.76013 eV +Arrival time: 40.7604 ns Arrival position: (-78.5115 um , -146.411 um ) Exit position: (6.56076 um , -245.668 um ) Energy: 2.57214 eV +Arrival time: 60.3635 ns Arrival position: (-188.744 um , -360.572 um ) Exit position: (-79.5542 um , -369.198 um ) Energy: 2.45901 eV +Arrival time: 32.5765 ns Arrival position: (124.375 um , 408.05 um ) Exit position: (-39.2842 um , 432.271 um ) Energy: 2.57635 eV +Arrival time: 22.6001 ns Arrival position: (210.827 um , -1.21524 um ) Exit position: (142.289 um , -8.00617 um ) Energy: 2.63556 eV +Arrival time: 20.4329 ns Arrival position: (131.904 um , -204.735 um ) Exit position: (118.015 um , -359.513 um ) Energy: 2.66007 eV +Arrival time: 13.7473 ns Arrival position: (-139.638 um , 367.237 um ) Exit position: (-152.32 um , 289.266 um ) Energy: 2.21249 eV +Arrival time: 30.4878 ns Arrival position: (169.958 um , -288.141 um ) Exit position: (22.1942 um , -304.783 um ) Energy: 2.95227 eV +Arrival time: 10.7834 ns Arrival position: (-260.57 um , -279.847 um ) Exit position: (-200.744 um , -415.708 um ) Energy: 2.63111 eV +Arrival time: 15.3546 ns Arrival position: (294.828 um , -348.265 um ) Exit position: (191.411 um , -233.613 um ) Energy: 2.16907 eV +Arrival time: 15.8805 ns Arrival position: (217.176 um , 437.904 um ) Exit position: (280.606 um , 372.8 um ) Energy: 2.73564 eV +Arrival time: 17.6494 ns Arrival position: (119.343 um , 231.878 um ) Exit position: (57.4829 um , 281.043 um ) Energy: 2.94955 eV +Arrival time: 18.664 ns Arrival position: ( 11.875 um , -7.11494 um ) Exit position: (-27.1553 um , -22.4129 um ) Energy: 2.80917 eV +Arrival time: 9.68355 ns Arrival position: (-113.778 um , -226.665 um ) Exit position: (-10.9898 um , -163.785 um ) Energy: 2.71337 eV +Arrival time: 7.27527 ns Arrival position: (-184.69 um , -16.6457 um ) Exit position: (-182.456 um , -132.158 um ) Energy: 2.53193 eV +Arrival time: 8.11726 ns Arrival position: (-465.917 um , -39.3732 um ) Exit position: (-343.951 um , -77.7656 um ) Energy: 2.55416 eV +Arrival time: 29.3405 ns Arrival position: (22.4775 um , 86.0647 um ) Exit position: (83.9607 um , 7.9356 um ) Energy: 2.82197 eV +Arrival time: 17.1544 ns Arrival position: (-99.6133 um , 76.4536 um ) Exit position: (-209.096 um , 55.0635 um ) Energy: 2.6981 eV +Arrival time: 33.3008 ns Arrival position: (122.582 um , -36.549 um ) Exit position: (-8.19883 um , -17.6074 um ) Energy: 2.54319 eV +Arrival time: 6.96665 ns Arrival position: (-115.96 um , -61.223 um ) Exit position: (-98.0564 um , -128.901 um ) Energy: 2.56162 eV +Arrival time: 18.528 ns Arrival position: (284.304 um , 311.907 um ) Exit position: (293.421 um , 334.33 um ) Energy: 2.68015 eV +Arrival time: 10.0566 ns Arrival position: ( 164.36 um , -543.552 um ) Exit position: (146.449 um , -463.503 um ) Energy: 2.68939 eV +Arrival time: 14.0057 ns Arrival position: (117.439 um , -189.765 um ) Exit position: ( 185.4 um , -296.984 um ) Energy: 2.66766 eV +Arrival time: 16.0192 ns Arrival position: (-9.16705 um , 232.743 um ) Exit position: (-143.927 um , 287.628 um ) Energy: 2.61171 eV +Arrival time: 6.48039 ns Arrival position: (-334.051 um , -2.61549 um ) Exit position: (-342.283 um , 4.26663 um ) Energy: 2.52415 eV +Arrival time: 17.7722 ns Arrival position: (337.182 um , 260.698 um ) Exit position: (313.206 um , 168.27 um ) Energy: 2.52079 eV +Arrival time: 14.009 ns Arrival position: (-63.7867 um , -307.308 um ) Exit position: (-85.1604 um , -359.092 um ) Energy: 2.64912 eV +Arrival time: 19.3701 ns Arrival position: (445.845 um , 16.6498 um ) Exit position: (359.978 um , -238.698 um ) Energy: 2.58452 eV +Arrival time: 14.9771 ns Arrival position: (-179.273 um , 109.336 um ) Exit position: (-188.144 um , 198.793 um ) Energy: 2.57504 eV +Arrival time: 6.79527 ns Arrival position: (502.783 um , 2.47367 um ) Exit position: ( 378.32 um , -23.5437 um ) Energy: 2.92977 eV +Arrival time: 26.3725 ns Arrival position: (32.7868 um , 265.937 um ) Exit position: (-86.6452 um , 199.992 um ) Energy: 2.86826 eV +Arrival time: 9.36379 ns Arrival position: (-87.188 um , -27.7334 um ) Exit position: (-141.235 um , -104.163 um ) Energy: 2.76794 eV +Arrival time: 13.2659 ns Arrival position: (332.338 um , -33.7519 um ) Exit position: (384.579 um , -124.107 um ) Energy: 2.35638 eV +Arrival time: 9.98919 ns Arrival position: (294.271 um , 356.198 um ) Exit position: (322.202 um , 227.976 um ) Energy: 2.57853 eV +Arrival time: 6.09655 ns Arrival position: (265.908 um , -241.277 um ) Exit position: (257.825 um , -311.737 um ) Energy: 2.82204 eV +Arrival time: 11.5405 ns Arrival position: (-179.633 um , -310.894 um ) Exit position: (-191.529 um , -412.759 um ) Energy: 2.85821 eV +Arrival time: 20.6781 ns Arrival position: (-144.776 um , -63.2813 um ) Exit position: (-60.0635 um , 49.7377 um ) Energy: 2.24699 eV +Arrival time: 12.7679 ns Arrival position: (9.64254 um , -164.077 um ) Exit position: (-34.1542 um , -164.307 um ) Energy: 2.65585 eV +Arrival time: 44.5805 ns Arrival position: (-69.9023 um , -440.892 um ) Exit position: (-28.0782 um , -469.329 um ) Energy: 2.77826 eV +Arrival time: 9.02097 ns Arrival position: (179.186 um , 452.126 um ) Exit position: (136.663 um , 455.25 um ) Energy: 2.59787 eV +Arrival time: 24.248 ns Arrival position: (-226.587 um , -239.712 um ) Exit position: (-272.85 um , -262.884 um ) Energy: 2.49164 eV +Arrival time: 18.5291 ns Arrival position: (-183.084 um , -196.952 um ) Exit position: (-242.172 um , -293.757 um ) Energy: 2.6493 eV +Arrival time: 18.3411 ns Arrival position: (-193.652 um , 485.654 um ) Exit position: (-213.806 um , 401.787 um ) Energy: 2.3401 eV +Arrival time: 7.52896 ns Arrival position: (-300.153 um , 15.729 um ) Exit position: (-241.998 um , -46.9587 um ) Energy: 2.81411 eV +Arrival time: 15.3659 ns Arrival position: (-101.957 um , 465.029 um ) Exit position: (-29.3675 um , 350.423 um ) Energy: 2.60861 eV +Arrival time: 39.151 ns Arrival position: (-8.89374 um , 509.083 um ) Exit position: (-31.383 um , 508.792 um ) Energy: 2.79351 eV Run terminated. Run Summary Number of events processed : 10 - User=13.370000s Real=13.626124s Sys=0.010000s + User=17.040000s Real=17.136756s Sys=0.000000s ----> print histograms statistics for the entire run - Mean number of photons detected/event: 14 rms = 10.6771 + Mean number of photons detected/event: 16.7 rms = 12.9387 ... write file : wls.root - done ... close file : wls.root - done ======================== run summary ===================== Average number per event: - TIR: 1.43e+05 +- 1.15e+05 - Exiting: 3.07e+05 +- 2.37e+05 - Escaped Mid: 266 +- 205 - Escaped End: 14.2 +- 10.8 - Bounced: 1.15e+04 +- 8.86e+03 + TIR: 1.69e+05 +- 1.38e+05 + Exiting: 3.97e+05 +- 3.49e+05 + Escaped Mid: 349 +- 292 + Escaped End: 17 +- 13.1 + Bounced: 1.47e+04 +- 1.31e+04 WLS Bounce: 0 +- 0 - Clad1 Bounce: 7.73e+03 +- 5.96e+03 + Clad1 Bounce: 9.85e+03 +- 8.87e+03 Clad2 Bounce: 0 +- 0 - Reflected: 1.69e+04 +- 1.3e+04 - Escaped: 0.2 +- 0.4 - Mirror: 14.5 +- 14.8 - Detector hit: 14 +- 10.7 + Reflected: 2.26e+04 +- 2.03e+04 + Escaped: 0.3 +- 0.64 + Mirror: 17.4 +- 12.5 + Detector hit: 16.7 +- 12.9 There are 3 h1 histograms 0 with 0 entries: Energy of optical photon @@ -1332,6 +1366,6 @@ Visualization Manager deleting... G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 16 of which, static: 0 -Dynamic pools deleted: 16 / Total memory freed: 1.9 MB +Dynamic pools deleted: 16 / Total memory freed: 1.7 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/optical/wls/src/WLSTrajectoryPoint.cc b/examples/extended/optical/wls/src/WLSTrajectoryPoint.cc index 84215cb8f6..b3cc3cfdfa 100644 --- a/examples/extended/optical/wls/src/WLSTrajectoryPoint.cc +++ b/examples/extended/optical/wls/src/WLSTrajectoryPoint.cc @@ -66,7 +66,7 @@ WLSTrajectoryPoint::WLSTrajectoryPoint(const G4Step* aStep) } else { - fVolumeName = " "; + fVolumeName = G4String(" "); } } diff --git a/examples/extended/parallel/MPI/History b/examples/extended/parallel/MPI/History index 9294481f0f..f8d9a1ab43 100644 --- a/examples/extended/parallel/MPI/History +++ b/examples/extended/parallel/MPI/History @@ -4,6 +4,12 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-09 I. Hrivnacova (MPI-V11-00-03) +- Updated analysis classes for changes in analysis + in analysis-V11-00-* +- Fixed exMPI04 example failing in sequential mode when + MPI ntuple merging is activated + ## 2022-05-18 Guy Barrand (MPI-V11-00-02) - have "toolx" namespace for g4tools code related to MPI, then: - namespace tools::mpi becomes toolx::mpi. diff --git a/examples/extended/parallel/MPI/README.md b/examples/extended/parallel/MPI/README.md index 165010eefd..4593ed17ec 100644 --- a/examples/extended/parallel/MPI/README.md +++ b/examples/extended/parallel/MPI/README.md @@ -241,13 +241,13 @@ This example is the same as exMPI03 with added ntuple. - Root output files from application run with `mpiexec -n 4` - Sequential application: - (3 working ranks, 1 rank dedicated for collecting ntuple data) - - dose-merged.root - merged histograms - - dose-rank0,1,2.root - histograms data collected on rank 0 before merge + (3 working ranks, the last rank dedicated for collecting ntuple data) + - dose-merged.root - merged histograms from ranks 0, 1 and 2 + - dose-rank1,2.root - histograms data collected on rank N before merge - dose-rank3 - ntuples merged from ranks 0, 1 and 2 - MT application: (4 working ranks) - - dose-merged.root - merged histograms - - dose-rank0, 1, 2, 3.root - histograms data collected on rank N before merge; - ntuples merged on rank N from rank threads + - dose-merged.root - merged histograms from ranks 0, 1, 2 and 3 + - dose-rank0,1,2,3.root - histograms data collected on rank N before merge; + ntuples merged on each rank N from rank threads diff --git a/examples/extended/parallel/MPI/examples/exMPI04/src/RunActionMaster.cc b/examples/extended/parallel/MPI/examples/exMPI04/src/RunActionMaster.cc index 7b4762775c..7c4873895a 100644 --- a/examples/extended/parallel/MPI/examples/exMPI04/src/RunActionMaster.cc +++ b/examples/extended/parallel/MPI/examples/exMPI04/src/RunActionMaster.cc @@ -70,6 +70,7 @@ RunActionMaster::RunActionMaster(G4bool useNtuple, G4bool mergeNtuple) Analysis* myana = Analysis::GetAnalysis(); myana->SetUseNtuple(useNtuple); myana->SetMergeNtuple(mergeNtuple); + G4cout<<"Book analysis on master on rank: " << G4MPImanager::GetManager()-> GetRank() << G4endl;; myana->Book(); } @@ -213,7 +214,8 @@ RunActionMaster::EndOfRunAction(const G4Run* arun) } //Save histograms *before* MPI merging for rank #0 - if (rank == 0) { + //Can be done only if MPI merging is not activated + if (rank == 0 && (fMPIntupleMerger == nullptr) ) { Analysis* myana = Analysis::GetAnalysis(); myana-> Save(); myana-> Close(false); // close without resetting histograms @@ -241,7 +243,9 @@ RunActionMaster::EndOfRunAction(const G4Run* arun) if (rank == 0) { // Rename files G4fs::rename("dose-rank0.root", "dose-merged.root"); - G4fs::rename("dose-rank0-part.root", "dose-rank0.root"); + if (fMPIntupleMerger == nullptr) { + G4fs::rename("dose-rank0-part.root", "dose-rank0.root"); + } } G4cout << "===================================================" << G4endl; diff --git a/examples/extended/parallel/MPI/source/analysis/include/G4RootMpiNtupleFileManager.hh b/examples/extended/parallel/MPI/source/analysis/include/G4RootMpiNtupleFileManager.hh index 514bc391dd..12f39f9def 100644 --- a/examples/extended/parallel/MPI/source/analysis/include/G4RootMpiNtupleFileManager.hh +++ b/examples/extended/parallel/MPI/source/analysis/include/G4RootMpiNtupleFileManager.hh @@ -56,7 +56,7 @@ class G4RootMpiNtupleFileManager : public G4RootNtupleFileManager // virtual methods from base class virtual G4bool ActionAtOpenFile(const G4String& fileName) final; virtual G4bool ActionAtWrite() final; - virtual G4bool ActionAtCloseFile(G4bool reset) final; + virtual G4bool ActionAtCloseFile() final; virtual G4bool Reset() final; virtual std::shared_ptr CreateNtupleManager() override; diff --git a/examples/extended/parallel/MPI/source/analysis/include/G4RootMpiPNtupleDescription.hh b/examples/extended/parallel/MPI/source/analysis/include/G4RootMpiPNtupleDescription.hh index b61c7567ae..8732abf6f1 100644 --- a/examples/extended/parallel/MPI/source/analysis/include/G4RootMpiPNtupleDescription.hh +++ b/examples/extended/parallel/MPI/source/analysis/include/G4RootMpiPNtupleDescription.hh @@ -64,7 +64,7 @@ struct G4RootMpiPNtupleDescription ~G4RootMpiPNtupleDescription() { - if ( fDescription.fIsNtupleOwner ) delete fNtuple; + if ( fDescription.GetIsNtupleOwner() ) delete fNtuple; } RootNtupleDescription fDescription; diff --git a/examples/extended/parallel/MPI/source/analysis/include/G4RootMpiPNtupleManager.hh b/examples/extended/parallel/MPI/source/analysis/include/G4RootMpiPNtupleManager.hh index ccc0828679..52f30b6b8e 100644 --- a/examples/extended/parallel/MPI/source/analysis/include/G4RootMpiPNtupleManager.hh +++ b/examples/extended/parallel/MPI/source/analysis/include/G4RootMpiPNtupleManager.hh @@ -44,6 +44,7 @@ #include "tools/wroot/base_pntuple" #include +#include using std::to_string; @@ -62,8 +63,8 @@ class G4RootMpiPNtupleManager : public G4BaseNtupleManager friend class G4RootMpiNtupleFileManager; public: - explicit G4RootMpiPNtupleManager(const G4AnalysisManagerState& state, - tools::impi* impi, G4int mpiRank, G4int destinationRank); + G4RootMpiPNtupleManager(const G4AnalysisManagerState& state, + tools::impi* impi, G4int mpiRank, G4int destinationRank); ~G4RootMpiPNtupleManager(); private: @@ -96,6 +97,7 @@ class G4RootMpiPNtupleManager : public G4BaseNtupleManager virtual G4bool Merge() final; // Clear all data + virtual G4bool Reset() final; virtual void Clear() final; // Reset @@ -107,9 +109,16 @@ class G4RootMpiPNtupleManager : public G4BaseNtupleManager virtual void SetActivation(G4int ntupleId, G4bool activation) final; virtual G4bool GetActivation(G4int ntupleId) const final; + // New cycle option + void SetNewCycle(G4bool value) final; + G4bool GetNewCycle() const final; + // Access methods virtual G4int GetNofNtuples() const final; + // List ntuples + G4bool List(std::ostream& output, G4bool onlyIfActive = true) final; + private: G4RootMpiPNtupleDescription* GetNtupleDescriptionInFunction(G4int id, G4String function, G4bool warn = true) const; @@ -119,6 +128,9 @@ class G4RootMpiPNtupleManager : public G4BaseNtupleManager template G4bool FillNtupleTColumn(G4int ntupleId, G4int columnId, const T& value); + // Static data members + static constexpr std::string_view fkClass { "G4RootMpiPNtupleManager" }; + // Data members // G4RootMpiMainNtupleManager* fMpiMainNtupleManager; std::shared_ptr fFileManager; @@ -127,6 +139,7 @@ class G4RootMpiPNtupleManager : public G4BaseNtupleManager tools::impi* fImpi; G4int fMpiRank; G4int fDestinationRank; + G4bool fNewCycle { false }; }; // inline functions diff --git a/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiAnalysisManager.cc b/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiAnalysisManager.cc index 34fbf48bb3..a72f7cb6a8 100644 --- a/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiAnalysisManager.cc +++ b/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiAnalysisManager.cc @@ -53,6 +53,7 @@ G4RootMpiAnalysisManager::G4RootMpiAnalysisManager(G4bool /*isMaster*/) // Ntuple file manager fNtupleFileManager = std::make_shared(fState); + SetNtupleFileManager(fNtupleFileManager); fNtupleFileManager->SetFileManager(fFileManager); fNtupleFileManager->SetBookingManager(fNtupleBookingManager); } @@ -99,62 +100,56 @@ G4bool G4RootMpiAnalysisManager::OpenFileImpl(const G4String& fileName) SetNtupleManager(fNtupleFileManager->CreateNtupleManager()); } - auto finalResult = true; + auto result = true; // Open file // In difference from base class a file is open also on slave ranks - auto result = fFileManager->OpenFile(fileName); - finalResult = finalResult && result; + result &= fFileManager->OpenFile(fileName); // Open ntuple file(s) and create ntuples from bookings - result = fNtupleFileManager->ActionAtOpenFile(fFileManager->GetFullFileName()); - finalResult = finalResult && result; + result &= fNtupleFileManager->ActionAtOpenFile(fFileManager->GetFullFileName()); - return finalResult; + return result; } //_____________________________________________________________________________ G4bool G4RootMpiAnalysisManager::WriteImpl() { - auto finalResult = true; + auto result = true; // Call base class method - auto result = G4RootAnalysisManager::WriteImpl(); - finalResult = finalResult && result; + result &= G4ToolsAnalysisManager::WriteImpl(); // Write file also on Slave // (skipped in base class) if ( fNtupleFileManager->GetMergeMode() == G4NtupleMergeMode::kSlave ) { // write all open files - result = fFileManager->WriteFiles(); - finalResult = finalResult && result; + result &= fFileManager->WriteFiles(); } - Message(kVL2, "write", "slave files", "", finalResult); + Message(kVL2, "write", "slave files", "", result); - return finalResult; + return result; } //_____________________________________________________________________________ G4bool G4RootMpiAnalysisManager::CloseFileImpl(G4bool reset) { - auto finalResult = true; + auto result = true; // Call base class method - auto result = G4RootAnalysisManager::CloseFileImpl(reset); - finalResult = finalResult && result; + result &= G4RootAnalysisManager::CloseFileImpl(reset); // Close file also on Slave // (skipped in base class) if ( fNtupleFileManager->GetMergeMode() == G4NtupleMergeMode::kSlave ) { // close all open files - result = fFileManager->CloseFiles(); - finalResult = finalResult && result; + result &= fFileManager->CloseFiles(); } - Message(kVL2, "close", "slave files", "", finalResult); + Message(kVL2, "close", "slave files", "", result); - return finalResult; + return result; } diff --git a/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiNtupleFileManager.cc b/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiNtupleFileManager.cc index d92fee5c0a..5125f4874a 100644 --- a/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiNtupleFileManager.cc +++ b/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiNtupleFileManager.cc @@ -184,8 +184,6 @@ std::shared_ptr G4RootMpiNtupleFileManager::CreateNtupleManage //_____________________________________________________________________________ G4bool G4RootMpiNtupleFileManager::ActionAtOpenFile(const G4String& fileName) { - auto finalResult = true; - // No MPI merging, call base class if ( fNtupleMergeMode == G4NtupleMergeMode::kNone ) { return G4RootNtupleFileManager::ActionAtOpenFile(fileName); @@ -218,7 +216,7 @@ G4bool G4RootMpiNtupleFileManager::ActionAtOpenFile(const G4String& fileName) fNtupleBooked = true; } - return finalResult; + return true; } //_____________________________________________________________________________ @@ -229,7 +227,7 @@ G4bool G4RootMpiNtupleFileManager::ActionAtWrite() return G4RootNtupleFileManager::ActionAtWrite(); } - auto finalResult = true; + auto result = true; G4String ntupleType; if ( fNtupleMergeMode == G4NtupleMergeMode::kMain ) ntupleType = "main ntuples"; @@ -238,50 +236,32 @@ G4bool G4RootMpiNtupleFileManager::ActionAtWrite() Message(kVL4, "merge", ntupleType); if ( fNtupleMergeMode == G4NtupleMergeMode::kMain ) { - auto result = fNtupleManager->Merge(); - finalResult = result && finalResult; + result &= fNtupleManager->Merge(); } if ( fNtupleMergeMode == G4NtupleMergeMode::kSlave ) { - auto result = fMpiSlaveNtupleManager->Merge(); - finalResult = result && finalResult; + result &= fMpiSlaveNtupleManager->Merge(); } - Message(kVL1, "merge", ntupleType, "", finalResult); + Message(kVL1, "merge", ntupleType, "", result); - return finalResult; + return result; } //_____________________________________________________________________________ -G4bool G4RootMpiNtupleFileManager::ActionAtCloseFile(G4bool reset) -{ +G4bool G4RootMpiNtupleFileManager::ActionAtCloseFile() +{ // No MPI merging, call base class if ( fNtupleMergeMode == G4NtupleMergeMode::kNone ) { - return G4RootNtupleFileManager::ActionAtCloseFile(reset); + return G4RootNtupleFileManager::ActionAtCloseFile(); } - auto finalResult = true; - - // reset data - if ( reset ) { - auto result = Reset(); - if ( ! result ) { - G4ExceptionDescription description; - description << " " << "Resetting data failed"; - G4Exception("G4RootNtupleFileManager::Write()", - "Analysis_W021", JustWarning, description); - } - finalResult = finalResult && result; + if ( fNtupleMergeMode == G4NtupleMergeMode::kSlave) { + fMpiSlaveNtupleManager->SetNewCycle(false); + return true; } - // close files - if ( fNtupleMergeMode != G4NtupleMergeMode::kSlave ) { - auto result = CloseNtupleFiles(); - finalResult = finalResult && result; - } - - // MT not yet supported - no files clean-up - return finalResult; + return CloseNtupleFiles(); } //_____________________________________________________________________________ @@ -294,17 +274,15 @@ G4bool G4RootMpiNtupleFileManager::Reset() return G4RootNtupleFileManager::Reset(); } - auto finalResult = true; + auto result = true; if ( fNtupleMergeMode == G4NtupleMergeMode::kMain ) { - auto result = fNtupleManager->Reset(); - finalResult = result && finalResult; + result &= fNtupleManager->Reset(); } if ( fNtupleMergeMode == G4NtupleMergeMode::kSlave ) { - auto result = fMpiSlaveNtupleManager->Reset(false); - finalResult = result && finalResult; + result &= fMpiSlaveNtupleManager->Reset(false); } - return finalResult; + return result; } diff --git a/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiNtupleManager.cc b/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiNtupleManager.cc index f1f2ee06ad..fa4829bb30 100644 --- a/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiNtupleManager.cc +++ b/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiNtupleManager.cc @@ -76,7 +76,7 @@ G4bool G4RootMpiNtupleManager::Send(G4int id, RootNtupleDescription* ntupleDescr // G4cout << "ntuple: " << ntupleDescription->fNtuple << G4endl; // Get ntuple - auto ntuple = ntupleDescription->fNtuple; + auto ntuple = ntupleDescription->GetNtuple(); // Get basket sizes std::vector mainBranches; @@ -166,7 +166,7 @@ G4bool G4RootMpiNtupleManager::InitializeRanks() for ( auto ntupleDescription : fNtupleDescriptionVector ) { // Do not create ntuple if it is inactivated - if ( fState.GetIsActivation() && ( ! ntupleDescription->fActivation ) ) continue; + if ( fState.GetIsActivation() && ( ! ntupleDescription->GetActivation() ) ) continue; auto result = Send(counter++, ntupleDescription); finalResult = finalResult && result; @@ -329,10 +329,10 @@ G4bool G4RootMpiNtupleManager::Merge() for ( auto ntupleDescription : fNtupleDescriptionVector ) { // Do not create ntuple if it is inactivated - if ( fState.GetIsActivation() && ( ! ntupleDescription->fActivation ) ) continue; + if ( fState.GetIsActivation() && ( ! ntupleDescription->GetActivation() ) ) continue; // G4cout << "Go to call merge_number_of_entries" << G4endl; - ntupleDescription->fNtuple->merge_number_of_entries(); + ntupleDescription->GetNtuple()->merge_number_of_entries(); } return finalResult; diff --git a/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiPNtupleManager.cc b/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiPNtupleManager.cc index 47bb70e62f..9f7776a168 100644 --- a/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiPNtupleManager.cc +++ b/examples/extended/parallel/MPI/source/analysis/src/G4RootMpiPNtupleManager.cc @@ -116,7 +116,7 @@ tools::wroot::base_pntuple* G4RootMpiPNtupleManager::GetNtupleInFunction( void G4RootMpiPNtupleManager::CreateNtuple(G4RootMpiPNtupleDescription* ntupleDescription) { Message(kVL4, "create from booking", "mpi pntuple", - ntupleDescription->fDescription.fNtupleBooking.name()); + ntupleDescription->fDescription.GetNtupleBooking().name()); // Wait for the ntuple data from main @@ -206,27 +206,27 @@ void G4RootMpiPNtupleManager::CreateNtuple(G4RootMpiPNtupleDescription* ntupleDe tools::wroot::mpi_ntuple_row_wise* ntuple = new tools::wroot::mpi_ntuple_row_wise( mainNtupleId, G4cout, byteSwap, compression, seekDirectory, - basketSize, ntupleDescription->fDescription.fNtupleBooking, verbose); + basketSize, ntupleDescription->fDescription.GetNtupleBooking(), verbose); ntupleDescription->fNtuple = ntuple; ntupleDescription->fBasePNtuple = ntuple; } else { tools::wroot::mpi_ntuple_column_wise* ntuple = new tools::wroot::mpi_ntuple_column_wise( mainNtupleId, G4cout, byteSwap, compression, seekDirectory, - basketSizes, ntupleDescription->fDescription.fNtupleBooking, + basketSizes, ntupleDescription->fDescription.GetNtupleBooking(), rowMode, basketEntries, verbose); ntupleDescription->fNtuple = ntuple; ntupleDescription->fBasePNtuple = ntuple; } - ntupleDescription->fDescription.fIsNtupleOwner = true; + ntupleDescription->fDescription.SetIsNtupleOwner(true); ntupleDescription->fImpi = fImpi; // should be not needed // pntuple object is not deleted automatically fNtupleVector.push_back(ntupleDescription->fNtuple); Message(kVL3, "create from booking", "mpi pntuple", - ntupleDescription->fDescription.fNtupleBooking.name()); + ntupleDescription->fDescription.GetNtupleBooking().name()); } //_____________________________________________________________________________ @@ -252,13 +252,13 @@ void G4RootMpiPNtupleManager::CreateNtuplesFromBooking( for ( auto ntupleDescription : fNtupleDescriptionVector ) { // Do not create ntuple if it is inactivated - if ( fState.GetIsActivation() && ( ! ntupleDescription->fDescription.fActivation ) ) continue; + if ( fState.GetIsActivation() && ( ! ntupleDescription->fDescription.GetActivation() ) ) continue; // Do not create ntuple if it already exists if ( ntupleDescription->fNtuple ) continue; Message(kVL4, "create from booking", "mpi pntuple", - ntupleDescription->fDescription.fNtupleBooking.name()); + ntupleDescription->fDescription.GetNtupleBooking().name()); // create ntuple CreateNtuple(ntupleDescription); @@ -268,7 +268,7 @@ void G4RootMpiPNtupleManager::CreateNtuplesFromBooking( // FinishTNtuple(ntupleDescription); Message(kVL3, "create from booking", "mpi pntuple", - ntupleDescription->fDescription.fNtupleBooking.name()); + ntupleDescription->fDescription.GetNtupleBooking().name()); } } @@ -353,13 +353,13 @@ G4bool G4RootMpiPNtupleManager::Merge() for ( auto ntupleDescription : fNtupleDescriptionVector) { // skip inactivated ntuples - if ( ! ntupleDescription->fDescription.fActivation ) continue; + if ( ! ntupleDescription->fDescription.GetActivation() ) continue; // skip if ntuple was already merged and deleted // (this happend when the main rank re-opens a new file for merged data) if ( ! ntupleDescription->fNtuple ) continue; - Message(kVL4, "merge", "pntuple", ntupleDescription->fDescription.fNtupleBooking.name()); + Message(kVL4, "merge", "pntuple", ntupleDescription->fDescription.GetNtupleBooking().name()); // G4cout << "call end_fill " << fImpi // << " to rank " << ntupleDescription->fMainNtupleRank @@ -370,7 +370,7 @@ G4bool G4RootMpiPNtupleManager::Merge() if ( ! result ) { G4ExceptionDescription description; - description << " " << " ntuple " << ntupleDescription->fDescription.fNtupleBooking.name() + description << " " << " ntuple " << ntupleDescription->fDescription.GetNtupleBooking().name() << "end fill has failed."; G4Exception("G4RootMpiPNtupleManager::Merge()", "Analysis_W002", JustWarning, description); @@ -379,12 +379,28 @@ G4bool G4RootMpiPNtupleManager::Merge() delete ntupleDescription->fNtuple; ntupleDescription->fNtuple = nullptr; - Message(kVL3, "merge", "pntuple", ntupleDescription->fDescription.fNtupleBooking.name()); + Message(kVL3, "merge", "pntuple", ntupleDescription->fDescription.GetNtupleBooking().name()); } return finalResult; } +//_____________________________________________________________________________ +G4bool G4RootMpiPNtupleManager::Reset() +{ + // Reset ntuple description, this will delete ntuple if present and + // we have its ownership. + // The ntuples will be recreated with new cycle or new open file. + + for ( auto ntupleDescription : fNtupleDescriptionVector ) { + ntupleDescription->fDescription.Reset(); + } + + fNtupleVector.clear(); + + return true; +} + //_____________________________________________________________________________ void G4RootMpiPNtupleManager::Clear() { @@ -420,7 +436,7 @@ void G4RootMpiPNtupleManager::SetActivation( G4bool activation) { for ( auto ntupleDescription : fNtupleDescriptionVector ) { - ntupleDescription->fDescription.fActivation = activation; + ntupleDescription->fDescription.SetActivation(activation); } } @@ -432,7 +448,7 @@ void G4RootMpiPNtupleManager::SetActivation( auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "SetActivation"); if ( ! ntupleDescription ) return; - ntupleDescription->fDescription.fActivation = activation; + ntupleDescription->fDescription.SetActivation(activation); } //_____________________________________________________________________________ @@ -442,7 +458,19 @@ G4bool G4RootMpiPNtupleManager::GetActivation( auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "GetActivation"); if ( ! ntupleDescription ) return false; - return ntupleDescription->fDescription.fActivation; + return ntupleDescription->fDescription.GetActivation(); +} + +//_____________________________________________________________________________ +void G4RootMpiPNtupleManager::SetNewCycle(G4bool value) +{ + fNewCycle = value; +} + +//_____________________________________________________________________________ +G4bool G4RootMpiPNtupleManager::GetNewCycle() const +{ + return fNewCycle; } //_____________________________________________________________________________ @@ -450,3 +478,10 @@ G4int G4RootMpiPNtupleManager::GetNofNtuples() const { return fNtupleVector.size(); } + +//_____________________________________________________________________________ +G4bool G4RootMpiPNtupleManager::List(std::ostream& /*output*/, G4bool /*onlyIfActive*/) +{ + Warn("Not implemented.", fkClass, "List"); + return false; +} diff --git a/examples/extended/parallel/ThreadsafeScorers/.README.txt b/examples/extended/parallel/ThreadsafeScorers/.README.txt index 9ea7f5f43a..64e470bcdc 100644 --- a/examples/extended/parallel/ThreadsafeScorers/.README.txt +++ b/examples/extended/parallel/ThreadsafeScorers/.README.txt @@ -188,15 +188,15 @@ \section ThreadsafeScorers_s8 TIMEMORY USAGE - This example demonstrates profiling analysis with timemory - (https://github.com/NERSC/timemory). + This example demonstrates profiling analysis with timemory + (https://github.com/NERSC/timemory). - - Compile Geant4 with timemory (-DGEANT4_USE_TIMEMORY=ON) - - timemory provide timing within the Geant4 source code - and within the example (TSRun::RecordEvent) - - Analysis is echoed to stdout and generates several output - files in a folder based on the name of the executable. In - general that folder will be "timemory-{name of executable}-output" + - Compile Geant4 with timemory (-DGEANT4_USE_TIMEMORY=ON) + - timemory provide timing within the Geant4 source code + and within the example (TSRun::RecordEvent) + - Analysis is echoed to stdout and generates several output + files in a folder based on the name of the executable. In + general that folder will be "timemory-{name of executable}-output" */ diff --git a/examples/extended/parallel/ThreadsafeScorers/History b/examples/extended/parallel/ThreadsafeScorers/History index 070521d8bf..dc1bbdcbfe 100644 --- a/examples/extended/parallel/ThreadsafeScorers/History +++ b/examples/extended/parallel/ThreadsafeScorers/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-09 I. Hrivnacova (ThreadsafeScorers-V11-00-01) +- Fixed Doxygen documentation + ## 2021-12-10 Ben Morgan (ThreadsafeScorers-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/parallel/ThreadsafeScorers/threadsafe-scorers.out b/examples/extended/parallel/ThreadsafeScorers/threadsafe-scorers.out index 41655fcf66..43441debd9 100644 --- a/examples/extended/parallel/ThreadsafeScorers/threadsafe-scorers.out +++ b/examples/extended/parallel/ThreadsafeScorers/threadsafe-scorers.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -44,6 +44,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -103,6 +105,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -130,7 +133,7 @@ Lowest e+e- kinetic energy 100 eV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 1 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -166,8 +169,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 1 @@ -198,8 +200,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 180 bins + Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 176 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -323,7 +325,7 @@ msc: for GenericIon SubType= 10 ionIoni: for GenericIon XStype:3 SubType=2 dE/dx and range tables from 100 eV to 100 TeV in 240 bins Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1 - StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02 + StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02 ===== EM models for the G4Region DefaultRegionForTheWorld ====== LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI @@ -333,10 +335,11 @@ nuclearStopping: for GenericIon SubType=8 BuildTable=0 ====================================================================== ====== Radioactive Decay Physics Parameters ======= ====================================================================== -min MeanLife (from G4NuclideTable) 1.4427 us -Max life time (from G4DeexPrecoParameters) 1.4427 us +min MeanLife (from G4NuclideTable) 1 ns +Max life time (from G4DeexPrecoParameters) 1000 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -962,7 +965,7 @@ Limit excitation energy for Fermi BreakUp 20 MeV Level density (1/MeV) 0.075 Use simple level density model 1 Use discrete excitation energy of the residual 1 -Time limit for long lived isomeres 1.4427 us +Time limit for long lived isomeres 1000 ps Isomer production flag 1 Internal e- conversion flag 1 Store e- internal conversion data 1 @@ -1009,776 +1012,776 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 10000 - User=21.950000s Real=25.901849s Sys=1.180000s + User=24.260000s Real=26.069984s Sys=1.400000s ###### EndOfTSRunAction ###### ============================================================ opened file mfd_tl_EnergyDeposit.out for output ============================================================ - 0 450.408152 keV - 1 53.852373 keV - 2 161.952941 keV - 3 496.187273 keV - 4 887.796594 keV - 5 488.511789 keV - 6 718.082408 keV - 7 325.987992 keV - 8 716.963201 keV - 9 2943.576560 keV - 10 4004.119639 keV - 11 158.745269 keV - 12 202.971796 keV - 13 909.405405 keV - 14 1870.547077 keV - 15 1781.535206 keV - 16 1072.392336 keV - 17 787.312126 keV - 18 192.366159 keV - 19 1143.131862 keV - 20 60.777762 keV - 21 1880.659827 keV - 22 84.634057 keV - 23 188.610079 keV - 24 1525.402704 keV - 25 28.487497 keV - 26 1030.295938 keV - 27 527.984214 keV - 28 433.468980 keV - 29 3185.610093 keV - 30 2137.493231 keV - 31 14285.176313 keV - 32 3052.347819 keV - 33 9775.250975 keV - 34 1627.285660 keV - 35 5843.070986 keV - 36 2299.269166 keV - 37 5802.087851 keV - 38 3888.944771 keV - 39 847.065687 keV - 40 2227.503957 keV - 41 3681.379202 keV - 42 8949.720989 keV - 43 696.528006 keV - 44 1900.742782 keV - 45 2341.586536 keV - 46 2739.316986 keV - 47 3160.306606 keV - 48 1174.063271 keV - 49 2506.518169 keV - 50 2525.715177 keV - 51 4987.548089 keV - 52 4822.551279 keV - 53 2727.636901 keV - 54 6422.250719 keV - 55 9727.402666 keV - 56 12759.724795 keV - 57 24468.184258 keV - 58 21971.221665 keV - 59 9845.622096 keV - 60 7021.523226 keV - 61 13419.031333 keV - 62 21395.818551 keV - 63 15527.364021 keV - 64 6755.418076 keV - 65 4366.960562 keV - 66 18755.369735 keV - 67 34302.221749 keV - 68 15659.919198 keV - 69 3616.141451 keV - 70 10111.055006 keV - 71 8920.922519 keV - 72 5739.693818 keV - 73 5562.169219 keV - 74 6499.269094 keV - 75 24616.409196 keV - 76 28941.468498 keV - 77 41955.389920 keV - 78 34065.758599 keV - 79 17015.112790 keV - 80 33801.572594 keV - 81 360880.371895 keV - 82 291048.077612 keV - 83 344754.837269 keV - 84 33018.818566 keV - 85 34215.424134 keV - 86 303922.780457 keV - 87 277811.369979 keV - 88 338145.585692 keV - 89 31061.004959 keV - 90 33998.369985 keV - 91 342705.722152 keV - 92 360850.205175 keV - 93 359081.848763 keV - 94 30191.192185 keV - 95 28743.427337 keV - 96 18734.721014 keV - 97 40907.736966 keV - 98 31835.697698 keV - 99 15616.277597 keV - 100 325498.885487 keV - 101 320207.593447 keV - 102 357739.214468 keV - 103 372460.067968 keV - 104 324790.021048 keV - 105 345291.861837 keV - 106 357152.272753 keV - 107 397585.124829 keV - 108 397325.423083 keV - 109 383348.564924 keV - 110 369955.151987 keV - 111 389921.629708 keV - 112 383831.643054 keV - 113 391686.635536 keV - 114 357987.676921 keV - 115 385644.004950 keV - 116 433103.160163 keV - 117 412139.228311 keV - 118 412727.319326 keV - 119 361682.967811 keV - 120 299570.884070 keV - 121 370620.612522 keV - 122 352760.726500 keV - 123 356367.374362 keV - 124 317175.552024 keV - 0 450.408 [sigma: 255.053 | error: 0.98081 | coeff: 0.98081 | eff: 1 | fom: 0.0451963 | r2int: 0.641325 | r2eff: 0 | hits: 3 ] keV - 1 53.8524 [sigma: 25.8476 | error: 0.831334 | coeff: 0.831334 | eff: 1 | fom: 0.0629102 | r2int: 0.460744 | r2eff: 0 | hits: 3 ] keV - 2 161.953 [sigma: 63.8982 | error: 0.557975 | coeff: 0.557975 | eff: 1 | fom: 0.13965 | r2int: 0.155668 | r2eff: 0 | hits: 2 ] keV - 3 496.187 [sigma: 127.292 | error: 0.444342 | coeff: 0.444342 | eff: 1 | fom: 0.22021 | r2int: 0.131626 | r2eff: 0 | hits: 3 ] keV - 4 887.797 [sigma: 248.997 | error: 0.560932 | coeff: 0.560932 | eff: 1 | fom: 0.138182 | r2int: 0.235983 | r2eff: 0 | hits: 4 ] keV - 5 488.512 [sigma: 288.155 | error: 0.834193 | coeff: 0.834193 | eff: 1 | fom: 0.0624797 | r2int: 0.347939 | r2eff: 0 | hits: 2 ] keV - 6 718.082 [sigma: 134.778 | error: 0.593532 | coeff: 0.593532 | eff: 1 | fom: 0.123419 | r2int: 0.317052 | r2eff: 0 | hits: 10 ] keV - 7 325.988 [sigma: 63.5141 | error: 0.477248 | coeff: 0.477248 | eff: 1 | fom: 0.19089 | r2int: 0.189805 | r2eff: 0 | hits: 6 ] keV - 8 716.963 [sigma: 199.181 | error: 0.680499 | coeff: 0.680499 | eff: 1 | fom: 0.0938897 | r2int: 0.385899 | r2eff: 0 | hits: 6 ] keV - 9 2943.58 [sigma: 964.803 | error: 0.655531 | coeff: 0.655531 | eff: 1 | fom: 0.101178 | r2int: 0.322291 | r2eff: 0 | hits: 4 ] keV - 10 4004.12 [sigma: 872.715 | error: 0.48736 | coeff: 0.48736 | eff: 1 | fom: 0.183051 | r2int: 0.190016 | r2eff: 0 | hits: 5 ] keV - 11 158.745 [sigma: 34.0413 | error: 0.479502 | coeff: 0.479502 | eff: 1 | fom: 0.1891 | r2int: 0.183938 | r2eff: 0 | hits: 5 ] keV - 12 202.972 [sigma: 24.6629 | error: 0.364527 | coeff: 0.364527 | eff: 1 | fom: 0.327199 | r2int: 0.118116 | r2eff: 0 | hits: 9 ] keV - 13 909.405 [sigma: 285.508 | error: 0.769018 | coeff: 0.769018 | eff: 1 | fom: 0.0735189 | r2int: 0.492824 | r2eff: 0 | hits: 6 ] keV - 14 1870.55 [sigma: 494.098 | error: 0.747118 | coeff: 0.747118 | eff: 1 | fom: 0.0778922 | r2int: 0.488412 | r2eff: 0 | hits: 8 ] keV - 15 1781.54 [sigma: 628.128 | error: 0.863633 | coeff: 0.863633 | eff: 1 | fom: 0.0582927 | r2int: 0.621551 | r2eff: 0 | hits: 6 ] keV - 16 1072.39 [sigma: 383.247 | error: 0.714752 | coeff: 0.714752 | eff: 1 | fom: 0.0851063 | r2int: 0.383153 | r2eff: 0 | hits: 4 ] keV - 17 787.312 [sigma: 171.695 | error: 0.53418 | coeff: 0.53418 | eff: 1 | fom: 0.152369 | r2int: 0.23779 | r2eff: 0 | hits: 6 ] keV - 18 192.366 [sigma: 53.7328 | error: 0.558652 | coeff: 0.558652 | eff: 1 | fom: 0.139313 | r2int: 0.234069 | r2eff: 0 | hits: 4 ] keV - 19 1143.13 [sigma: 325.128 | error: 0.635979 | coeff: 0.635979 | eff: 1 | fom: 0.107495 | r2int: 0.323575 | r2eff: 0 | hits: 5 ] keV - 20 60.7778 [sigma: 0 | error: 0 | coeff: 0 | eff: 1 | fom: 1 | r2int: 2.22045e-16 | r2eff: 0 | hits: 1 ] keV - 21 1880.66 [sigma: 704.121 | error: 0.837186 | coeff: 0.837186 | eff: 1 | fom: 0.0620338 | r2int: 0.560704 | r2eff: 0 | hits: 5 ] keV - 22 84.6341 [sigma: 19.0236 | error: 0.389322 | coeff: 0.389322 | eff: 1 | fom: 0.28685 | r2int: 0.101048 | r2eff: 0 | hits: 3 ] keV - 23 188.61 [sigma: 22.0786 | error: 0.286736 | coeff: 0.286736 | eff: 1 | fom: 0.52882 | r2int: 0.0685146 | r2eff: 0 | hits: 6 ] keV - 24 1525.4 [sigma: 0 | error: 0 | coeff: 0 | eff: 1 | fom: 1 | r2int: 0 | r2eff: 0 | hits: 1 ] keV - 25 28.4875 [sigma: 10.7765 | error: 0.534982 | coeff: 0.534982 | eff: 1 | fom: 0.151913 | r2int: 0.143103 | r2eff: 0 | hits: 2 ] keV - 26 1030.3 [sigma: 209.449 | error: 0.537856 | coeff: 0.537856 | eff: 1 | fom: 0.150293 | r2int: 0.247962 | r2eff: 0 | hits: 7 ] keV - 27 527.984 [sigma: 74.8864 | error: 0.44852 | coeff: 0.44852 | eff: 1 | fom: 0.216126 | r2int: 0.181053 | r2eff: 0 | hits: 10 ] keV - 28 433.469 [sigma: 57.6815 | error: 0.399209 | coeff: 0.399209 | eff: 1 | fom: 0.272818 | r2int: 0.14166 | r2eff: 0 | hits: 9 ] keV - 29 3185.61 [sigma: 711.896 | error: 0.632075 | coeff: 0.632075 | eff: 1 | fom: 0.108826 | r2int: 0.349579 | r2eff: 0 | hits: 8 ] keV - 30 2137.49 [sigma: 428.904 | error: 0.601973 | coeff: 0.601973 | eff: 1 | fom: 0.119983 | r2int: 0.322108 | r2eff: 0 | hits: 9 ] keV - 31 14285.2 [sigma: 855.641 | error: 0.280942 | coeff: 0.280942 | eff: 1 | fom: 0.550856 | r2int: 0.0753409 | r2eff: 0 | hits: 22 ] keV - 32 3052.35 [sigma: 169.254 | error: 0.265931 | coeff: 0.265931 | eff: 1 | fom: 0.6148 | r2int: 0.0676446 | r2eff: 0 | hits: 23 ] keV - 33 9775.25 [sigma: 687.675 | error: 0.329964 | coeff: 0.329964 | eff: 1 | fom: 0.399336 | r2int: 0.103927 | r2eff: 0 | hits: 22 ] keV - 34 1627.29 [sigma: 311.496 | error: 0.663101 | coeff: 0.663101 | eff: 1 | fom: 0.098881 | r2int: 0.403061 | r2eff: 0 | hits: 12 ] keV - 35 5843.07 [sigma: 723.843 | error: 0.391745 | coeff: 0.391745 | eff: 1 | fom: 0.283312 | r2int: 0.138118 | r2eff: 0 | hits: 10 ] keV - 36 2299.27 [sigma: 383.559 | error: 0.746031 | coeff: 0.746031 | eff: 1 | fom: 0.0781193 | r2int: 0.528734 | r2eff: 0 | hits: 20 ] keV - 37 5802.09 [sigma: 439.906 | error: 0.42214 | coeff: 0.42214 | eff: 1 | fom: 0.243983 | r2int: 0.172454 | r2eff: 0 | hits: 31 ] keV - 38 3888.94 [sigma: 504.063 | error: 0.607945 | coeff: 0.607945 | eff: 1 | fom: 0.117637 | r2int: 0.352797 | r2eff: 0 | hits: 22 ] keV - 39 847.066 [sigma: 93.0221 | error: 0.425319 | coeff: 0.425319 | eff: 1 | fom: 0.240349 | r2int: 0.168836 | r2eff: 0 | hits: 15 ] keV - 40 2227.5 [sigma: 232.112 | error: 0.375708 | coeff: 0.375708 | eff: 1 | fom: 0.308014 | r2int: 0.130298 | r2eff: 0 | hits: 13 ] keV - 41 3681.38 [sigma: 270.902 | error: 0.337218 | coeff: 0.337218 | eff: 1 | fom: 0.38234 | r2int: 0.108301 | r2eff: 0 | hits: 21 ] keV - 42 8949.72 [sigma: 805.943 | error: 0.392529 | coeff: 0.392529 | eff: 1 | fom: 0.282182 | r2int: 0.145969 | r2eff: 0 | hits: 19 ] keV - 43 696.528 [sigma: 79.0582 | error: 0.42469 | coeff: 0.42469 | eff: 1 | fom: 0.241061 | r2int: 0.167479 | r2eff: 0 | hits: 14 ] keV - 44 1900.74 [sigma: 542.037 | error: 0.90179 | coeff: 0.90179 | eff: 1 | fom: 0.053464 | r2int: 0.731902 | r2eff: 0 | hits: 10 ] keV - 45 2341.59 [sigma: 634.231 | error: 0.766095 | coeff: 0.766095 | eff: 1 | fom: 0.0740811 | r2int: 0.513538 | r2eff: 0 | hits: 8 ] keV - 46 2739.32 [sigma: 433.084 | error: 0.591554 | coeff: 0.591554 | eff: 1 | fom: 0.124246 | r2int: 0.324941 | r2eff: 0 | hits: 14 ] keV - 47 3160.31 [sigma: 395.666 | error: 0.468451 | coeff: 0.468451 | eff: 1 | fom: 0.198127 | r2int: 0.203771 | r2eff: 0 | hits: 14 ] keV - 48 1174.06 [sigma: 111.006 | error: 0.3409 | coeff: 0.3409 | eff: 1 | fom: 0.374126 | r2int: 0.107273 | r2eff: 0 | hits: 13 ] keV - 49 2506.52 [sigma: 664.562 | error: 0.749911 | coeff: 0.749911 | eff: 1 | fom: 0.0773131 | r2int: 0.49207 | r2eff: 0 | hits: 8 ] keV - 50 2525.72 [sigma: 207.013 | error: 0.366546 | coeff: 0.366546 | eff: 1 | fom: 0.323605 | r2int: 0.127638 | r2eff: 0 | hits: 20 ] keV - 51 4987.55 [sigma: 368.34 | error: 0.430627 | coeff: 0.430627 | eff: 1 | fom: 0.23446 | r2int: 0.179986 | r2eff: 0 | hits: 34 ] keV - 52 4822.55 [sigma: 316.473 | error: 0.359435 | coeff: 0.359435 | eff: 1 | fom: 0.336536 | r2int: 0.124887 | r2eff: 0 | hits: 30 ] keV - 53 2727.64 [sigma: 424.477 | error: 0.678336 | coeff: 0.678336 | eff: 1 | fom: 0.0944893 | r2int: 0.435921 | r2eff: 0 | hits: 19 ] keV - 54 6422.25 [sigma: 557.953 | error: 0.388531 | coeff: 0.388531 | eff: 1 | fom: 0.288019 | r2int: 0.143408 | r2eff: 0 | hits: 20 ] keV - 55 9727.4 [sigma: 574.62 | error: 0.349477 | coeff: 0.349477 | eff: 1 | fom: 0.355989 | r2int: 0.118644 | r2eff: 0 | hits: 35 ] keV - 56 12759.7 [sigma: 548.123 | error: 0.306777 | coeff: 0.306777 | eff: 1 | fom: 0.461985 | r2int: 0.0922665 | r2eff: 0 | hits: 51 ] keV - 57 24468.2 [sigma: 772.938 | error: 0.254683 | coeff: 0.254683 | eff: 1 | fom: 0.670306 | r2int: 0.0638654 | r2eff: 0 | hits: 65 ] keV - 58 21971.2 [sigma: 693.148 | error: 0.250405 | coeff: 0.250405 | eff: 1 | fom: 0.693406 | r2int: 0.0617072 | r2eff: 0 | hits: 63 ] keV - 59 9845.62 [sigma: 535.181 | error: 0.321582 | coeff: 0.321582 | eff: 1 | fom: 0.420426 | r2int: 0.10046 | r2eff: 0 | hits: 35 ] keV - 60 7021.52 [sigma: 388.108 | error: 0.336219 | coeff: 0.336219 | eff: 1 | fom: 0.384617 | r2int: 0.109988 | r2eff: 0 | hits: 37 ] keV - 61 13419 [sigma: 411.06 | error: 0.259927 | coeff: 0.259927 | eff: 1 | fom: 0.643533 | r2int: 0.0666235 | r2eff: 0 | hits: 72 ] keV - 62 21395.8 [sigma: 516.069 | error: 0.214384 | coeff: 0.214384 | eff: 1 | fom: 0.94599 | r2int: 0.0453788 | r2eff: 0 | hits: 79 ] keV - 63 15527.4 [sigma: 561.477 | error: 0.291535 | coeff: 0.291535 | eff: 1 | fom: 0.511553 | r2int: 0.083685 | r2eff: 0 | hits: 65 ] keV - 64 6755.42 [sigma: 391.435 | error: 0.322618 | coeff: 0.322618 | eff: 1 | fom: 0.417729 | r2int: 0.100725 | r2eff: 0 | hits: 31 ] keV - 65 4366.96 [sigma: 346.083 | error: 0.468851 | coeff: 0.468851 | eff: 1 | fom: 0.197789 | r2int: 0.213541 | r2eff: 0 | hits: 35 ] keV - 66 18755.4 [sigma: 699.277 | error: 0.283947 | coeff: 0.283947 | eff: 1 | fom: 0.539259 | r2int: 0.0792358 | r2eff: 0 | hits: 58 ] keV - 67 34302.2 [sigma: 863.307 | error: 0.216501 | coeff: 0.216501 | eff: 1 | fom: 0.927586 | r2int: 0.0462391 | r2eff: 0 | hits: 74 ] keV - 68 15659.9 [sigma: 496.4 | error: 0.247575 | coeff: 0.247575 | eff: 1 | fom: 0.709345 | r2int: 0.0602887 | r2eff: 0 | hits: 61 ] keV - 69 3616.14 [sigma: 242.872 | error: 0.355395 | coeff: 0.355395 | eff: 1 | fom: 0.34423 | r2int: 0.121795 | r2eff: 0 | hits: 28 ] keV - 70 10111.1 [sigma: 643.985 | error: 0.298738 | coeff: 0.298738 | eff: 1 | fom: 0.487182 | r2int: 0.0851878 | r2eff: 0 | hits: 22 ] keV - 71 8920.92 [sigma: 517.666 | error: 0.312492 | coeff: 0.312492 | eff: 1 | fom: 0.445241 | r2int: 0.0942839 | r2eff: 0 | hits: 29 ] keV - 72 5739.69 [sigma: 322.751 | error: 0.360057 | coeff: 0.360057 | eff: 1 | fom: 0.335375 | r2int: 0.126479 | r2eff: 0 | hits: 41 ] keV - 73 5562.17 [sigma: 345.963 | error: 0.373196 | coeff: 0.373196 | eff: 1 | fom: 0.312176 | r2int: 0.135406 | r2eff: 0 | hits: 36 ] keV - 74 6499.27 [sigma: 547.268 | error: 0.376574 | coeff: 0.376574 | eff: 1 | fom: 0.3066 | r2int: 0.134718 | r2eff: 0 | hits: 20 ] keV - 75 24616.4 [sigma: 466.298 | error: 0.19037 | coeff: 0.19037 | eff: 1 | fom: 1.1997 | r2int: 0.0358821 | r2eff: 0 | hits: 101 ] keV - 76 28941.5 [sigma: 424.204 | error: 0.174662 | coeff: 0.174662 | eff: 1 | fom: 1.4252 | r2int: 0.030292 | r2eff: 0 | hits: 142 ] keV - 77 41955.4 [sigma: 512.227 | error: 0.154431 | coeff: 0.154431 | eff: 1 | fom: 1.82307 | r2int: 0.0236999 | r2eff: 0 | hits: 160 ] keV - 78 34065.8 [sigma: 510.806 | error: 0.176785 | coeff: 0.176785 | eff: 1 | fom: 1.39117 | r2int: 0.0310281 | r2eff: 0 | hits: 139 ] keV - 79 17015.1 [sigma: 432.775 | error: 0.254347 | coeff: 0.254347 | eff: 1 | fom: 0.672074 | r2int: 0.0640457 | r2eff: 0 | hits: 100 ] keV - 80 33801.6 [sigma: 482.394 | error: 0.17185 | coeff: 0.17185 | eff: 1 | fom: 1.47223 | r2int: 0.0293287 | r2eff: 0 | hits: 145 ] keV - 81 360880 [sigma: 1115.95 | error: 0.0491862 | coeff: 0.0491862 | eff: 1 | fom: 17.9716 | r2int: 0.00240972 | r2eff: 0 | hits: 253 ] keV - 82 291048 [sigma: 1117.56 | error: 0.0605906 | coeff: 0.0605906 | eff: 1 | fom: 11.843 | r2int: 0.00365648 | r2eff: 0 | hits: 249 ] keV - 83 344755 [sigma: 1145.82 | error: 0.0531774 | coeff: 0.0531774 | eff: 1 | fom: 15.3751 | r2int: 0.00281678 | r2eff: 0 | hits: 256 ] keV - 84 33018.8 [sigma: 434.443 | error: 0.165387 | coeff: 0.165387 | eff: 1 | fom: 1.58954 | r2int: 0.0271796 | r2eff: 0 | hits: 158 ] keV - 85 34215.4 [sigma: 424.557 | error: 0.153483 | coeff: 0.153483 | eff: 1 | fom: 1.84566 | r2int: 0.023403 | r2eff: 0 | hits: 153 ] keV - 86 303923 [sigma: 1132.47 | error: 0.0595022 | coeff: 0.0595022 | eff: 1 | fom: 12.2802 | r2int: 0.00352663 | r2eff: 0 | hits: 255 ] keV - 87 277811 [sigma: 1145.91 | error: 0.0673995 | coeff: 0.0673995 | eff: 1 | fom: 9.57103 | r2int: 0.00452568 | r2eff: 0 | hits: 267 ] keV - 88 338146 [sigma: 1144.75 | error: 0.0553173 | coeff: 0.0553173 | eff: 1 | fom: 14.2085 | r2int: 0.00304855 | r2eff: 0 | hits: 267 ] keV - 89 31061 [sigma: 418.023 | error: 0.167552 | coeff: 0.167552 | eff: 1 | fom: 1.54872 | r2int: 0.0278926 | r2eff: 0 | hits: 155 ] keV - 90 33998.4 [sigma: 420.048 | error: 0.158702 | coeff: 0.158702 | eff: 1 | fom: 1.72626 | r2int: 0.0250337 | r2eff: 0 | hits: 165 ] keV - 91 342706 [sigma: 1128.02 | error: 0.0528696 | coeff: 0.0528696 | eff: 1 | fom: 15.5547 | r2int: 0.00278436 | r2eff: 0 | hits: 258 ] keV - 92 360850 [sigma: 1167.27 | error: 0.0553707 | coeff: 0.0553707 | eff: 1 | fom: 14.1812 | r2int: 0.00305545 | r2eff: 0 | hits: 293 ] keV - 93 359082 [sigma: 1131.81 | error: 0.0515998 | coeff: 0.0515998 | eff: 1 | fom: 16.3296 | r2int: 0.00265261 | r2eff: 0 | hits: 268 ] keV - 94 30191.2 [sigma: 425.008 | error: 0.166564 | coeff: 0.166564 | eff: 1 | fom: 1.56715 | r2int: 0.0275453 | r2eff: 0 | hits: 140 ] keV - 95 28743.4 [sigma: 469.229 | error: 0.167279 | coeff: 0.167279 | eff: 1 | fom: 1.55378 | r2int: 0.0277158 | r2eff: 0 | hits: 105 ] keV - 96 18734.7 [sigma: 319.355 | error: 0.203842 | coeff: 0.203842 | eff: 1 | fom: 1.04637 | r2int: 0.0412611 | r2eff: 0 | hits: 143 ] keV - 97 40907.7 [sigma: 467.254 | error: 0.143119 | coeff: 0.143119 | eff: 1 | fom: 2.12265 | r2int: 0.0203526 | r2eff: 0 | hits: 157 ] keV - 98 31835.7 [sigma: 478.963 | error: 0.177376 | coeff: 0.177376 | eff: 1 | fom: 1.38192 | r2int: 0.0312359 | r2eff: 0 | hits: 139 ] keV - 99 15616.3 [sigma: 364.184 | error: 0.224897 | coeff: 0.224897 | eff: 1 | fom: 0.859614 | r2int: 0.050035 | r2eff: 0 | hits: 93 ] keV - 100 325499 [sigma: 449.722 | error: 0.0324317 | coeff: 0.0324317 | eff: 1 | fom: 41.3363 | r2int: 0.00104991 | r2eff: 0 | hits: 551 ] keV - 101 320208 [sigma: 515.44 | error: 0.0410712 | coeff: 0.0410712 | eff: 1 | fom: 25.7749 | r2int: 0.00168425 | r2eff: 0 | hits: 651 ] keV - 102 357739 [sigma: 490.862 | error: 0.0360949 | coeff: 0.0360949 | eff: 1 | fom: 33.3719 | r2int: 0.00130096 | r2eff: 0 | hits: 692 ] keV - 103 372460 [sigma: 474.767 | error: 0.0344163 | coeff: 0.0344163 | eff: 1 | fom: 36.7065 | r2int: 0.00118286 | r2eff: 0 | hits: 729 ] keV - 104 324790 [sigma: 451.06 | error: 0.0334173 | coeff: 0.0334173 | eff: 1 | fom: 38.9341 | r2int: 0.00111479 | r2eff: 0 | hits: 579 ] keV - 105 345292 [sigma: 481.819 | error: 0.0364409 | coeff: 0.0364409 | eff: 1 | fom: 32.7411 | r2int: 0.00132599 | r2eff: 0 | hits: 682 ] keV - 106 357152 [sigma: 440.964 | error: 0.035656 | coeff: 0.035656 | eff: 1 | fom: 34.1985 | r2int: 0.00126982 | r2eff: 0 | hits: 834 ] keV - 107 397585 [sigma: 495.052 | error: 0.0355249 | coeff: 0.0355249 | eff: 1 | fom: 34.4514 | r2int: 0.00126047 | r2eff: 0 | hits: 814 ] keV - 108 397325 [sigma: 484.975 | error: 0.0360232 | coeff: 0.0360232 | eff: 1 | fom: 33.5049 | r2int: 0.00129618 | r2eff: 0 | hits: 871 ] keV - 109 383349 [sigma: 508.638 | error: 0.035898 | coeff: 0.035898 | eff: 1 | fom: 33.7389 | r2int: 0.00128691 | r2eff: 0 | hits: 732 ] keV - 110 369955 [sigma: 466.152 | error: 0.0341603 | coeff: 0.0341603 | eff: 1 | fom: 37.2588 | r2int: 0.00116534 | r2eff: 0 | hits: 735 ] keV - 111 389922 [sigma: 477.984 | error: 0.0364058 | coeff: 0.0364058 | eff: 1 | fom: 32.8043 | r2int: 0.00132388 | r2eff: 0 | hits: 882 ] keV - 112 383832 [sigma: 502.95 | error: 0.037932 | coeff: 0.037932 | eff: 1 | fom: 30.2176 | r2int: 0.00143712 | r2eff: 0 | hits: 838 ] keV - 113 391687 [sigma: 477.05 | error: 0.0360888 | coeff: 0.0360888 | eff: 1 | fom: 33.3831 | r2int: 0.00130092 | r2eff: 0 | hits: 878 ] keV - 114 357988 [sigma: 461.671 | error: 0.034484 | coeff: 0.034484 | eff: 1 | fom: 36.5626 | r2int: 0.00118748 | r2eff: 0 | hits: 715 ] keV - 115 385644 [sigma: 511.222 | error: 0.0360854 | coeff: 0.0360854 | eff: 1 | fom: 33.3894 | r2int: 0.0013004 | r2eff: 0 | hits: 741 ] keV - 116 433103 [sigma: 481.867 | error: 0.0327412 | coeff: 0.0327412 | eff: 1 | fom: 40.5586 | r2int: 0.00107075 | r2eff: 0 | hits: 866 ] keV - 117 412139 [sigma: 493.097 | error: 0.0353707 | coeff: 0.0353707 | eff: 1 | fom: 34.7523 | r2int: 0.00124966 | r2eff: 0 | hits: 874 ] keV - 118 412727 [sigma: 499.969 | error: 0.0355659 | coeff: 0.0355659 | eff: 1 | fom: 34.372 | r2int: 0.00126347 | r2eff: 0 | hits: 862 ] keV - 119 361683 [sigma: 473.507 | error: 0.0347857 | coeff: 0.0347857 | eff: 1 | fom: 34.434 | r2int: 0.00120833 | r2eff: 0 | hits: 706 ] keV - 120 299571 [sigma: 488.932 | error: 0.0386228 | coeff: 0.0386228 | eff: 1 | fom: 27.932 | r2int: 0.00148905 | r2eff: 0 | hits: 560 ] keV - 121 370621 [sigma: 526.187 | error: 0.0374286 | coeff: 0.0374286 | eff: 1 | fom: 29.7428 | r2int: 0.00139888 | r2eff: 0 | hits: 695 ] keV - 122 352761 [sigma: 473.952 | error: 0.0358756 | coeff: 0.0358756 | eff: 1 | fom: 32.3736 | r2int: 0.00128525 | r2eff: 0 | hits: 713 ] keV - 123 356367 [sigma: 458.477 | error: 0.0344492 | coeff: 0.0344492 | eff: 1 | fom: 35.11 | r2int: 0.00118509 | r2eff: 0 | hits: 717 ] keV - 124 317176 [sigma: 457.398 | error: 0.0350877 | coeff: 0.0350877 | eff: 1 | fom: 33.8437 | r2int: 0.00122907 | r2eff: 0 | hits: 592 ] keV + 0 25.299195 keV + 1 680.095952 keV + 2 1132.761031 keV + 3 760.499785 keV + 4 235.459711 keV + 5 100.143618 keV + 6 118.059526 keV + 7 386.471966 keV + 8 213.898741 keV + 9 83.994002 keV + 10 1388.698599 keV + 11 974.647620 keV + 12 25.951656 keV + 13 1097.542231 keV + 14 2331.906741 keV + 15 537.225509 keV + 16 330.477185 keV + 17 1513.127832 keV + 18 72.469989 keV + 19 48.264662 keV + 20 3642.021939 keV + 21 1603.921237 keV + 22 1979.851675 keV + 23 171.658951 keV + 24 1317.511146 keV + 25 268.212008 keV + 26 5712.508762 keV + 27 7004.866765 keV + 28 1441.447673 keV + 29 1569.960590 keV + 30 2088.566144 keV + 31 6684.182602 keV + 32 6140.803793 keV + 33 670.699315 keV + 34 3065.720905 keV + 35 2225.329204 keV + 36 4992.942972 keV + 37 1680.273242 keV + 38 7353.309519 keV + 39 2807.065762 keV + 40 1791.863230 keV + 41 4202.859504 keV + 42 7543.093595 keV + 43 4697.303593 keV + 44 1905.013886 keV + 45 2104.505416 keV + 46 1648.239746 keV + 47 579.830952 keV + 48 4401.741160 keV + 49 3285.583780 keV + 50 9803.151519 keV + 51 5412.878658 keV + 52 12342.260914 keV + 53 5079.374483 keV + 54 7745.165189 keV + 55 8116.436261 keV + 56 23047.605342 keV + 57 28024.305489 keV + 58 24198.973536 keV + 59 10510.364748 keV + 60 9087.130307 keV + 61 24594.673164 keV + 62 17007.222968 keV + 63 18969.415843 keV + 64 5824.227576 keV + 65 2717.767589 keV + 66 14516.151916 keV + 67 16682.570690 keV + 68 26307.285179 keV + 69 6136.254684 keV + 70 6086.403245 keV + 71 13159.012927 keV + 72 8152.062121 keV + 73 7224.199930 keV + 74 8770.930524 keV + 75 21339.949572 keV + 76 34830.627186 keV + 77 40272.767801 keV + 78 39141.568335 keV + 79 26839.184715 keV + 80 35719.060315 keV + 81 335790.367584 keV + 82 337326.001703 keV + 83 388495.708026 keV + 84 29694.367910 keV + 85 33120.831708 keV + 86 316778.632908 keV + 87 243192.270840 keV + 88 318553.814884 keV + 89 27397.833723 keV + 90 31496.792533 keV + 91 331867.302792 keV + 92 341184.886514 keV + 93 396488.414386 keV + 94 31519.153338 keV + 95 25748.703707 keV + 96 31183.598020 keV + 97 46469.619463 keV + 98 27006.938349 keV + 99 29755.731543 keV + 100 330841.055091 keV + 101 363257.941569 keV + 102 368196.020916 keV + 103 344546.115033 keV + 104 322246.857137 keV + 105 390379.848249 keV + 106 358803.539757 keV + 107 388819.440446 keV + 108 423484.587441 keV + 109 348714.680797 keV + 110 347577.058050 keV + 111 401609.711997 keV + 112 396432.947359 keV + 113 412198.711495 keV + 114 348634.650720 keV + 115 361754.379885 keV + 116 389657.527246 keV + 117 397487.120671 keV + 118 430725.392381 keV + 119 322436.702956 keV + 120 322413.670001 keV + 121 368206.275297 keV + 122 389063.748841 keV + 123 342727.792339 keV + 124 324895.693187 keV + 0 25.2992 [sigma: 0 | error: 0 | coeff: 0 | eff: 1 | fom: 1 | r2int: 0 | r2eff: 0 | hits: 1 ] keV + 1 680.096 [sigma: 120.113 | error: 0.3059 | coeff: 0.3059 | eff: 1 | fom: 0.427466 | r2int: 0.0623831 | r2eff: 0 | hits: 3 ] keV + 2 1132.76 [sigma: 147.35 | error: 0.31863 | coeff: 0.31863 | eff: 1 | fom: 0.393992 | r2int: 0.0846042 | r2eff: 0 | hits: 6 ] keV + 3 760.5 [sigma: 531.727 | error: 0.988792 | coeff: 0.988792 | eff: 1 | fom: 0.040912 | r2int: 0.488854 | r2eff: 0 | hits: 2 ] keV + 4 235.46 [sigma: 82.8793 | error: 0.497788 | coeff: 0.497788 | eff: 1 | fom: 0.161425 | r2int: 0.123896 | r2eff: 0 | hits: 2 ] keV + 5 100.144 [sigma: 60.922 | error: 0.860332 | coeff: 0.860332 | eff: 1 | fom: 0.0540416 | r2int: 0.370086 | r2eff: 0 | hits: 2 ] keV + 6 118.06 [sigma: 18.6628 | error: 0.353477 | coeff: 0.353477 | eff: 1 | fom: 0.320138 | r2int: 0.099957 | r2eff: 0 | hits: 5 ] keV + 7 386.472 [sigma: 84.3294 | error: 0.436406 | coeff: 0.436406 | eff: 1 | fom: 0.210029 | r2int: 0.142838 | r2eff: 0 | hits: 4 ] keV + 8 213.899 [sigma: 33.6133 | error: 0.351389 | coeff: 0.351389 | eff: 1 | fom: 0.323954 | r2int: 0.0987795 | r2eff: 0 | hits: 5 ] keV + 9 83.994 [sigma: 5.37439 | error: 0.090489 | coeff: 0.090489 | eff: 1 | fom: 4.88504 | r2int: 0.00409413 | r2eff: 0 | hits: 2 ] keV + 10 1388.7 [sigma: 521.92 | error: 0.751667 | coeff: 0.751667 | eff: 1 | fom: 0.070796 | r2int: 0.423753 | r2eff: 0 | hits: 4 ] keV + 11 974.648 [sigma: 275.83 | error: 0.693217 | coeff: 0.693217 | eff: 1 | fom: 0.0832379 | r2int: 0.400459 | r2eff: 0 | hits: 6 ] keV + 12 25.9517 [sigma: 6.19148 | error: 0.477155 | coeff: 0.477155 | eff: 1 | fom: 0.175688 | r2int: 0.170758 | r2eff: 0 | hits: 4 ] keV + 13 1097.54 [sigma: 324.647 | error: 0.782598 | coeff: 0.782598 | eff: 1 | fom: 0.0653104 | r2int: 0.524965 | r2eff: 0 | hits: 7 ] keV + 14 2331.91 [sigma: 673.757 | error: 0.57786 | coeff: 0.57786 | eff: 1 | fom: 0.119789 | r2int: 0.250441 | r2eff: 0 | hits: 4 ] keV + 15 537.226 [sigma: 181.223 | error: 0.754297 | coeff: 0.754297 | eff: 1 | fom: 0.0703032 | r2int: 0.455172 | r2eff: 0 | hits: 5 ] keV + 16 330.477 [sigma: 28.1701 | error: 0.269555 | coeff: 0.269555 | eff: 1 | fom: 0.55051 | r2int: 0.0653939 | r2eff: 0 | hits: 10 ] keV + 17 1513.13 [sigma: 519.797 | error: 0.908882 | coeff: 0.908882 | eff: 1 | fom: 0.0484223 | r2int: 0.708056 | r2eff: 0 | hits: 7 ] keV + 18 72.47 [sigma: 24.452 | error: 0.477167 | coeff: 0.477167 | eff: 1 | fom: 0.175679 | r2int: 0.113844 | r2eff: 0 | hits: 2 ] keV + 19 48.2647 [sigma: 0 | error: 0 | coeff: 0 | eff: 1 | fom: 1 | r2int: 2.22045e-16 | r2eff: 0 | hits: 1 ] keV + 20 3642.02 [sigma: 1030.7 | error: 0.566007 | coeff: 0.566007 | eff: 1 | fom: 0.124858 | r2int: 0.240273 | r2eff: 0 | hits: 4 ] keV + 21 1603.92 [sigma: 704.885 | error: 0.878952 | coeff: 0.878952 | eff: 1 | fom: 0.0517761 | r2int: 0.579418 | r2eff: 0 | hits: 4 ] keV + 22 1979.85 [sigma: 0 | error: 0 | coeff: 0 | eff: 1 | fom: 1 | r2int: 0 | r2eff: 0 | hits: 1 ] keV + 23 171.659 [sigma: 31.867 | error: 0.32154 | coeff: 0.32154 | eff: 1 | fom: 0.386893 | r2int: 0.0689252 | r2eff: 0 | hits: 3 ] keV + 24 1317.51 [sigma: 249.973 | error: 0.379462 | coeff: 0.379462 | eff: 1 | fom: 0.277794 | r2int: 0.107994 | r2eff: 0 | hits: 4 ] keV + 25 268.212 [sigma: 30.3114 | error: 0.339039 | coeff: 0.339039 | eff: 1 | fom: 0.347985 | r2int: 0.102176 | r2eff: 0 | hits: 9 ] keV + 26 5712.51 [sigma: 576.714 | error: 0.428322 | coeff: 0.428322 | eff: 1 | fom: 0.218032 | r2int: 0.173267 | r2eff: 0 | hits: 18 ] keV + 27 7004.87 [sigma: 533.741 | error: 0.340757 | coeff: 0.340757 | eff: 1 | fom: 0.344484 | r2int: 0.11031 | r2eff: 0 | hits: 20 ] keV + 28 1441.45 [sigma: 312.233 | error: 0.530586 | coeff: 0.530586 | eff: 1 | fom: 0.142085 | r2int: 0.234602 | r2eff: 0 | hits: 6 ] keV + 29 1569.96 [sigma: 233.858 | error: 0.394105 | coeff: 0.394105 | eff: 1 | fom: 0.257535 | r2int: 0.13313 | r2eff: 0 | hits: 7 ] keV + 30 2088.57 [sigma: 216.999 | error: 0.374612 | coeff: 0.374612 | eff: 1 | fom: 0.285033 | r2int: 0.129539 | r2eff: 0 | hits: 13 ] keV + 31 6684.18 [sigma: 499.188 | error: 0.37341 | coeff: 0.37341 | eff: 1 | fom: 0.286872 | r2int: 0.133858 | r2eff: 0 | hits: 25 ] keV + 32 6140.8 [sigma: 589.305 | error: 0.418304 | coeff: 0.418304 | eff: 1 | fom: 0.2286 | r2int: 0.165769 | r2eff: 0 | hits: 19 ] keV + 33 670.699 [sigma: 36.6042 | error: 0.196777 | coeff: 0.196777 | eff: 1 | fom: 1.03302 | r2int: 0.0357428 | r2eff: 0 | hits: 13 ] keV + 34 3065.72 [sigma: 324.868 | error: 0.423872 | coeff: 0.423872 | eff: 1 | fom: 0.222634 | r2int: 0.168438 | r2eff: 0 | hits: 16 ] keV + 35 2225.33 [sigma: 323.786 | error: 0.460112 | coeff: 0.460112 | eff: 1 | fom: 0.188944 | r2int: 0.190533 | r2eff: 0 | hits: 10 ] keV + 36 4992.94 [sigma: 472.023 | error: 0.453388 | coeff: 0.453388 | eff: 1 | fom: 0.19459 | r2int: 0.196623 | r2eff: 0 | hits: 23 ] keV + 37 1680.27 [sigma: 102.912 | error: 0.280671 | coeff: 0.280671 | eff: 1 | fom: 0.507767 | r2int: 0.0750251 | r2eff: 0 | hits: 21 ] keV + 38 7353.31 [sigma: 729.183 | error: 0.495819 | coeff: 0.495819 | eff: 1 | fom: 0.162709 | r2int: 0.236003 | r2eff: 0 | hits: 25 ] keV + 39 2807.07 [sigma: 570.516 | error: 0.67408 | coeff: 0.67408 | eff: 1 | fom: 0.0880314 | r2int: 0.413076 | r2eff: 0 | hits: 11 ] keV + 40 1791.86 [sigma: 290.354 | error: 0.584244 | coeff: 0.584244 | eff: 1 | fom: 0.117185 | r2int: 0.315084 | r2eff: 0 | hits: 13 ] keV + 41 4202.86 [sigma: 473.523 | error: 0.503862 | coeff: 0.503862 | eff: 1 | fom: 0.157557 | r2int: 0.241183 | r2eff: 0 | hits: 20 ] keV + 42 7543.09 [sigma: 645.177 | error: 0.41902 | coeff: 0.41902 | eff: 1 | fom: 0.227819 | r2int: 0.168262 | r2eff: 0 | hits: 24 ] keV + 43 4697.3 [sigma: 439.309 | error: 0.428579 | coeff: 0.428579 | eff: 1 | fom: 0.21777 | r2int: 0.174933 | r2eff: 0 | hits: 21 ] keV + 44 1905.01 [sigma: 404.911 | error: 0.63765 | coeff: 0.63765 | eff: 1 | fom: 0.0983774 | r2int: 0.36142 | r2eff: 0 | hits: 9 ] keV + 45 2104.51 [sigma: 439.773 | error: 0.552876 | coeff: 0.552876 | eff: 1 | fom: 0.130859 | r2int: 0.262004 | r2eff: 0 | hits: 7 ] keV + 46 1648.24 [sigma: 282.429 | error: 0.453355 | coeff: 0.453355 | eff: 1 | fom: 0.194618 | r2int: 0.176169 | r2eff: 0 | hits: 7 ] keV + 47 579.831 [sigma: 58.2379 | error: 0.317617 | coeff: 0.317617 | eff: 1 | fom: 0.396507 | r2int: 0.0907928 | r2eff: 0 | hits: 10 ] keV + 48 4401.74 [sigma: 610.442 | error: 0.500025 | coeff: 0.500025 | eff: 1 | fom: 0.159984 | r2int: 0.230792 | r2eff: 0 | hits: 13 ] keV + 49 3285.58 [sigma: 631.352 | error: 0.576474 | coeff: 0.576474 | eff: 1 | fom: 0.120365 | r2int: 0.295398 | r2eff: 0 | hits: 9 ] keV + 50 9803.15 [sigma: 633.944 | error: 0.316804 | coeff: 0.316804 | eff: 1 | fom: 0.398546 | r2int: 0.096183 | r2eff: 0 | hits: 24 ] keV + 51 5412.88 [sigma: 321.165 | error: 0.351022 | coeff: 0.351022 | eff: 1 | fom: 0.324632 | r2int: 0.119696 | r2eff: 0 | hits: 35 ] keV + 52 12342.3 [sigma: 462.763 | error: 0.251519 | coeff: 0.251519 | eff: 1 | fom: 0.632294 | r2int: 0.0618559 | r2eff: 0 | hits: 45 ] keV + 53 5079.37 [sigma: 184.48 | error: 0.238163 | coeff: 0.238163 | eff: 1 | fom: 0.705201 | r2int: 0.0554023 | r2eff: 0 | hits: 43 ] keV + 54 7745.17 [sigma: 435.241 | error: 0.30262 | coeff: 0.30262 | eff: 1 | fom: 0.436781 | r2int: 0.0884211 | r2eff: 0 | hits: 29 ] keV + 55 8116.44 [sigma: 385.968 | error: 0.300757 | coeff: 0.300757 | eff: 1 | fom: 0.442211 | r2int: 0.0881933 | r2eff: 0 | hits: 40 ] keV + 56 23047.6 [sigma: 719.41 | error: 0.235661 | coeff: 0.235661 | eff: 1 | fom: 0.720251 | r2int: 0.0545619 | r2eff: 0 | hits: 57 ] keV + 57 28024.3 [sigma: 720.824 | error: 0.231492 | coeff: 0.231492 | eff: 1 | fom: 0.746425 | r2int: 0.0529272 | r2eff: 0 | hits: 81 ] keV + 58 24199 [sigma: 683.815 | error: 0.236424 | coeff: 0.236424 | eff: 1 | fom: 0.715613 | r2int: 0.0550976 | r2eff: 0 | hits: 70 ] keV + 59 10510.4 [sigma: 454.357 | error: 0.289992 | coeff: 0.289992 | eff: 1 | fom: 0.475651 | r2int: 0.0822265 | r2eff: 0 | hits: 45 ] keV + 60 9087.13 [sigma: 478.223 | error: 0.336973 | coeff: 0.336973 | eff: 1 | fom: 0.352265 | r2int: 0.110781 | r2eff: 0 | hits: 41 ] keV + 61 24594.7 [sigma: 696.463 | error: 0.235224 | coeff: 0.235224 | eff: 1 | fom: 0.722932 | r2int: 0.0545284 | r2eff: 0 | hits: 69 ] keV + 62 17007.2 [sigma: 466.6 | error: 0.263151 | coeff: 0.263151 | eff: 1 | fom: 0.577631 | r2int: 0.0684957 | r2eff: 0 | hits: 92 ] keV + 63 18969.4 [sigma: 574.011 | error: 0.267247 | coeff: 0.267247 | eff: 1 | fom: 0.560058 | r2int: 0.0705055 | r2eff: 0 | hits: 78 ] keV + 64 5824.23 [sigma: 350.13 | error: 0.384931 | coeff: 0.384931 | eff: 1 | fom: 0.269957 | r2int: 0.144558 | r2eff: 0 | hits: 41 ] keV + 65 2717.77 [sigma: 172.787 | error: 0.365221 | coeff: 0.365221 | eff: 1 | fom: 0.29988 | r2int: 0.129345 | r2eff: 0 | hits: 33 ] keV + 66 14516.2 [sigma: 522.263 | error: 0.276353 | coeff: 0.276353 | eff: 1 | fom: 0.523761 | r2int: 0.0750763 | r2eff: 0 | hits: 59 ] keV + 67 16682.6 [sigma: 548.18 | error: 0.280751 | coeff: 0.280751 | eff: 1 | fom: 0.507478 | r2int: 0.0777415 | r2eff: 0 | hits: 73 ] keV + 68 26307.3 [sigma: 640.45 | error: 0.209423 | coeff: 0.209423 | eff: 1 | fom: 0.91203 | r2int: 0.0432655 | r2eff: 0 | hits: 74 ] keV + 69 6136.25 [sigma: 479.322 | error: 0.434915 | coeff: 0.434915 | eff: 1 | fom: 0.211471 | r2int: 0.18305 | r2eff: 0 | hits: 31 ] keV + 70 6086.4 [sigma: 532.275 | error: 0.410191 | coeff: 0.410191 | eff: 1 | fom: 0.237731 | r2int: 0.160609 | r2eff: 0 | hits: 22 ] keV + 71 13159 [sigma: 528.925 | error: 0.263576 | coeff: 0.263576 | eff: 1 | fom: 0.575771 | r2int: 0.0678565 | r2eff: 0 | hits: 43 ] keV + 72 8152.06 [sigma: 408.03 | error: 0.324377 | coeff: 0.324377 | eff: 1 | fom: 0.380155 | r2int: 0.102715 | r2eff: 0 | hits: 42 ] keV + 73 7224.2 [sigma: 386.99 | error: 0.351273 | coeff: 0.351273 | eff: 1 | fom: 0.324169 | r2int: 0.120523 | r2eff: 0 | hits: 43 ] keV + 74 8770.93 [sigma: 569.308 | error: 0.337275 | coeff: 0.337275 | eff: 1 | fom: 0.351635 | r2int: 0.109541 | r2eff: 0 | hits: 27 ] keV + 75 21339.9 [sigma: 376.849 | error: 0.195851 | coeff: 0.195851 | eff: 1 | fom: 1.04282 | r2int: 0.0380458 | r2eff: 0 | hits: 123 ] keV + 76 34830.6 [sigma: 488.078 | error: 0.169897 | coeff: 0.169897 | eff: 1 | fom: 1.38576 | r2int: 0.0286687 | r2eff: 0 | hits: 147 ] keV + 77 40272.8 [sigma: 444.481 | error: 0.14134 | coeff: 0.14134 | eff: 1 | fom: 2.00232 | r2int: 0.0198551 | r2eff: 0 | hits: 164 ] keV + 78 39141.6 [sigma: 458.254 | error: 0.148553 | coeff: 0.148553 | eff: 1 | fom: 1.81259 | r2int: 0.0219308 | r2eff: 0 | hits: 161 ] keV + 79 26839.2 [sigma: 487.426 | error: 0.186979 | coeff: 0.186979 | eff: 1 | fom: 1.14413 | r2int: 0.0346312 | r2eff: 0 | hits: 106 ] keV + 80 35719.1 [sigma: 450.633 | error: 0.153481 | coeff: 0.153481 | eff: 1 | fom: 1.69806 | r2int: 0.0233972 | r2eff: 0 | hits: 148 ] keV + 81 335790 [sigma: 1129.18 | error: 0.0522039 | coeff: 0.0522039 | eff: 1 | fom: 14.6776 | r2int: 0.00271394 | r2eff: 0 | hits: 241 ] keV + 82 337326 [sigma: 1139.63 | error: 0.0569344 | coeff: 0.0569344 | eff: 1 | fom: 12.3399 | r2int: 0.00323011 | r2eff: 0 | hits: 284 ] keV + 83 388496 [sigma: 1103.94 | error: 0.0485567 | coeff: 0.0485567 | eff: 1 | fom: 16.9653 | r2int: 0.00234968 | r2eff: 0 | hits: 292 ] keV + 84 29694.4 [sigma: 351.382 | error: 0.14541 | coeff: 0.14541 | eff: 1 | fom: 1.89179 | r2int: 0.021004 | r2eff: 0 | hits: 151 ] keV + 85 33120.8 [sigma: 396.839 | error: 0.15297 | coeff: 0.15297 | eff: 1 | fom: 1.70941 | r2int: 0.0232564 | r2eff: 0 | hits: 163 ] keV + 86 316779 [sigma: 1133.65 | error: 0.0569223 | coeff: 0.0569223 | eff: 1 | fom: 12.3451 | r2int: 0.00322734 | r2eff: 0 | hits: 253 ] keV + 87 243192 [sigma: 1063.92 | error: 0.0718856 | coeff: 0.0718856 | eff: 1 | fom: 7.74062 | r2int: 0.0051484 | r2eff: 0 | hits: 270 ] keV + 88 318554 [sigma: 1138.38 | error: 0.0586114 | coeff: 0.0586114 | eff: 1 | fom: 11.6438 | r2int: 0.00342253 | r2eff: 0 | hits: 269 ] keV + 89 27397.8 [sigma: 372.361 | error: 0.172449 | coeff: 0.172449 | eff: 1 | fom: 1.34505 | r2int: 0.029554 | r2eff: 0 | hits: 161 ] keV + 90 31496.8 [sigma: 475.834 | error: 0.178753 | coeff: 0.178753 | eff: 1 | fom: 1.25186 | r2int: 0.0317243 | r2eff: 0 | hits: 140 ] keV + 91 331867 [sigma: 1147.87 | error: 0.0535839 | coeff: 0.0535839 | eff: 1 | fom: 13.9313 | r2int: 0.00285927 | r2eff: 0 | hits: 240 ] keV + 92 341185 [sigma: 1147.47 | error: 0.0566776 | coeff: 0.0566776 | eff: 1 | fom: 12.4519 | r2int: 0.00320104 | r2eff: 0 | hits: 284 ] keV + 93 396488 [sigma: 1159.03 | error: 0.0494363 | coeff: 0.0494363 | eff: 1 | fom: 16.367 | r2int: 0.0024354 | r2eff: 0 | hits: 286 ] keV + 94 31519.2 [sigma: 449.595 | error: 0.177014 | coeff: 0.177014 | eff: 1 | fom: 1.27657 | r2int: 0.0311304 | r2eff: 0 | hits: 154 ] keV + 95 25748.7 [sigma: 438.069 | error: 0.183238 | coeff: 0.183238 | eff: 1 | fom: 1.19132 | r2int: 0.0332867 | r2eff: 0 | hits: 116 ] keV + 96 31183.6 [sigma: 377.102 | error: 0.148108 | coeff: 0.148108 | eff: 1 | fom: 1.82349 | r2int: 0.0217897 | r2eff: 0 | hits: 150 ] keV + 97 46469.6 [sigma: 506.524 | error: 0.140438 | coeff: 0.140438 | eff: 1 | fom: 2.0281 | r2int: 0.0196041 | r2eff: 0 | hits: 166 ] keV + 98 27006.9 [sigma: 351.494 | error: 0.15726 | coeff: 0.15726 | eff: 1 | fom: 1.61741 | r2int: 0.0245615 | r2eff: 0 | hits: 146 ] keV + 99 29755.7 [sigma: 482.114 | error: 0.178226 | coeff: 0.178226 | eff: 1 | fom: 1.25926 | r2int: 0.0315022 | r2eff: 0 | hits: 121 ] keV + 100 330841 [sigma: 453.426 | error: 0.0335709 | coeff: 0.0335709 | eff: 1 | fom: 35.4924 | r2int: 0.00112512 | r2eff: 0 | hits: 600 ] keV + 101 363258 [sigma: 466.015 | error: 0.0341351 | coeff: 0.0341351 | eff: 1 | fom: 34.3287 | r2int: 0.00116356 | r2eff: 0 | hits: 708 ] keV + 102 368196 [sigma: 522.586 | error: 0.0380312 | coeff: 0.0380312 | eff: 1 | fom: 27.6553 | r2int: 0.00144436 | r2eff: 0 | hits: 718 ] keV + 103 344546 [sigma: 489.12 | error: 0.037046 | coeff: 0.037046 | eff: 1 | fom: 29.1459 | r2int: 0.00137039 | r2eff: 0 | hits: 681 ] keV + 104 322247 [sigma: 480.52 | error: 0.0362813 | coeff: 0.0362813 | eff: 1 | fom: 30.3874 | r2int: 0.00131411 | r2eff: 0 | hits: 592 ] keV + 105 390380 [sigma: 486.365 | error: 0.0336156 | coeff: 0.0336156 | eff: 1 | fom: 35.398 | r2int: 0.00112846 | r2eff: 0 | hits: 728 ] keV + 106 358804 [sigma: 464.494 | error: 0.0372511 | coeff: 0.0372511 | eff: 1 | fom: 27.7172 | r2int: 0.00138597 | r2eff: 0 | hits: 828 ] keV + 107 388819 [sigma: 482.872 | error: 0.0365674 | coeff: 0.0365674 | eff: 1 | fom: 28.7633 | r2int: 0.00133563 | r2eff: 0 | hits: 867 ] keV + 108 423485 [sigma: 515.66 | error: 0.035957 | coeff: 0.035957 | eff: 1 | fom: 29.7481 | r2int: 0.00129143 | r2eff: 0 | hits: 872 ] keV + 109 348715 [sigma: 493.448 | error: 0.0367913 | coeff: 0.0367913 | eff: 1 | fom: 28.4143 | r2int: 0.00135159 | r2eff: 0 | hits: 676 ] keV + 110 347577 [sigma: 484.543 | error: 0.0369096 | coeff: 0.0369096 | eff: 1 | fom: 28.2323 | r2int: 0.00136038 | r2eff: 0 | hits: 701 ] keV + 111 401610 [sigma: 504.7 | error: 0.0364657 | coeff: 0.0364657 | eff: 1 | fom: 28.9239 | r2int: 0.00132817 | r2eff: 0 | hits: 842 ] keV + 112 396433 [sigma: 482.746 | error: 0.0366533 | coeff: 0.0366533 | eff: 1 | fom: 28.6287 | r2int: 0.00134198 | r2eff: 0 | hits: 906 ] keV + 113 412199 [sigma: 491.135 | error: 0.0352652 | coeff: 0.0352652 | eff: 1 | fom: 30.9267 | r2int: 0.00124222 | r2eff: 0 | hits: 876 ] keV + 114 348635 [sigma: 482.338 | error: 0.0356236 | coeff: 0.0356236 | eff: 1 | fom: 30.3076 | r2int: 0.00126713 | r2eff: 0 | hits: 663 ] keV + 115 361754 [sigma: 468.487 | error: 0.0343369 | coeff: 0.0343369 | eff: 1 | fom: 32.6215 | r2int: 0.00117735 | r2eff: 0 | hits: 703 ] keV + 116 389658 [sigma: 491.008 | error: 0.0364777 | coeff: 0.0364777 | eff: 1 | fom: 28.9049 | r2int: 0.00132903 | r2eff: 0 | hits: 838 ] keV + 117 397487 [sigma: 492.852 | error: 0.0361283 | coeff: 0.0361283 | eff: 1 | fom: 29.4667 | r2int: 0.00130372 | r2eff: 0 | hits: 849 ] keV + 118 430725 [sigma: 535.253 | error: 0.036506 | coeff: 0.036506 | eff: 1 | fom: 28.8602 | r2int: 0.00133114 | r2eff: 0 | hits: 863 ] keV + 119 322437 [sigma: 468.346 | error: 0.0380716 | coeff: 0.0380716 | eff: 1 | fom: 26.5353 | r2int: 0.00144734 | r2eff: 0 | hits: 687 ] keV + 120 322414 [sigma: 442.733 | error: 0.0333262 | coeff: 0.0333262 | eff: 1 | fom: 34.6301 | r2int: 0.00110875 | r2eff: 0 | hits: 589 ] keV + 121 368206 [sigma: 487.126 | error: 0.0352764 | coeff: 0.0352764 | eff: 1 | fom: 30.907 | r2int: 0.00124268 | r2eff: 0 | hits: 711 ] keV + 122 389064 [sigma: 489.758 | error: 0.0341507 | coeff: 0.0341507 | eff: 1 | fom: 32.9783 | r2int: 0.00116469 | r2eff: 0 | hits: 736 ] keV + 123 342728 [sigma: 444.835 | error: 0.0341184 | coeff: 0.0341184 | eff: 1 | fom: 33.0406 | r2int: 0.00116238 | r2eff: 0 | hits: 691 ] keV + 124 324896 [sigma: 462.859 | error: 0.0341617 | coeff: 0.0341617 | eff: 1 | fom: 32.9571 | r2int: 0.00116499 | r2eff: 0 | hits: 575 ] keV ============================================================ closed file mfd_tl_EnergyDeposit.out for output ============================================================ opened file mfd_tg_EnergyDeposit.out for output ============================================================ - 0 450.408152 keV - 1 53.852373 keV - 2 161.952941 keV - 3 496.187273 keV - 4 887.796594 keV - 5 488.511789 keV - 6 718.082408 keV - 7 325.987992 keV - 8 716.963201 keV - 9 2943.576560 keV - 10 4004.119639 keV - 11 158.745269 keV - 12 202.971796 keV - 13 909.405405 keV - 14 1870.547077 keV - 15 1781.535206 keV - 16 1072.392336 keV - 17 787.312126 keV - 18 192.366159 keV - 19 1143.131862 keV - 20 60.777762 keV - 21 1880.659827 keV - 22 84.634057 keV - 23 188.610079 keV - 24 1525.402704 keV - 25 28.487497 keV - 26 1030.295938 keV - 27 527.984214 keV - 28 433.468980 keV - 29 3185.610093 keV - 30 2137.493231 keV - 31 14285.176313 keV - 32 3052.347819 keV - 33 9775.250975 keV - 34 1627.285660 keV - 35 5843.070986 keV - 36 2299.269166 keV - 37 5802.087851 keV - 38 3888.944771 keV - 39 847.065687 keV - 40 2227.503957 keV - 41 3681.379202 keV - 42 8949.720989 keV - 43 696.528006 keV - 44 1900.742782 keV - 45 2341.586536 keV - 46 2739.316986 keV - 47 3160.306606 keV - 48 1174.063271 keV - 49 2506.518169 keV - 50 2525.715177 keV - 51 4987.548089 keV - 52 4822.551279 keV - 53 2727.636901 keV - 54 6422.250719 keV - 55 9727.402666 keV - 56 12759.724795 keV - 57 24468.184258 keV - 58 21971.221665 keV - 59 9845.622096 keV - 60 7021.523226 keV - 61 13419.031333 keV - 62 21395.818551 keV - 63 15527.364021 keV - 64 6755.418076 keV - 65 4366.960562 keV - 66 18755.369735 keV - 67 34302.221749 keV - 68 15659.919198 keV - 69 3616.141451 keV - 70 10111.055006 keV - 71 8920.922519 keV - 72 5739.693818 keV - 73 5562.169219 keV - 74 6499.269094 keV - 75 24616.409196 keV - 76 28941.468498 keV - 77 41955.389920 keV - 78 34065.758599 keV - 79 17015.112790 keV - 80 33801.572594 keV - 81 360880.371895 keV - 82 291048.077612 keV - 83 344754.837269 keV - 84 33018.818566 keV - 85 34215.424134 keV - 86 303922.780457 keV - 87 277811.369979 keV - 88 338145.585692 keV - 89 31061.004959 keV - 90 33998.369985 keV - 91 342705.722152 keV - 92 360850.205175 keV - 93 359081.848763 keV - 94 30191.192185 keV - 95 28743.427337 keV - 96 18734.721014 keV - 97 40907.736966 keV - 98 31835.697698 keV - 99 15616.277597 keV - 100 325498.885487 keV - 101 320207.593447 keV - 102 357739.214468 keV - 103 372460.067968 keV - 104 324790.021048 keV - 105 345291.861837 keV - 106 357152.272753 keV - 107 397585.124829 keV - 108 397325.423083 keV - 109 383348.564924 keV - 110 369955.151987 keV - 111 389921.629708 keV - 112 383831.643054 keV - 113 391686.635536 keV - 114 357987.676921 keV - 115 385644.004950 keV - 116 433103.160163 keV - 117 412139.228311 keV - 118 412727.319326 keV - 119 361682.967811 keV - 120 299570.884070 keV - 121 370620.612522 keV - 122 352760.726500 keV - 123 356367.374362 keV - 124 317175.552024 keV + 0 25.299195 keV + 1 680.095952 keV + 2 1132.761031 keV + 3 760.499785 keV + 4 235.459711 keV + 5 100.143618 keV + 6 118.059526 keV + 7 386.471966 keV + 8 213.898741 keV + 9 83.994002 keV + 10 1388.698599 keV + 11 974.647620 keV + 12 25.951656 keV + 13 1097.542231 keV + 14 2331.906741 keV + 15 537.225509 keV + 16 330.477185 keV + 17 1513.127832 keV + 18 72.469989 keV + 19 48.264662 keV + 20 3642.021939 keV + 21 1603.921237 keV + 22 1979.851675 keV + 23 171.658951 keV + 24 1317.511146 keV + 25 268.212008 keV + 26 5712.508762 keV + 27 7004.866765 keV + 28 1441.447673 keV + 29 1569.960590 keV + 30 2088.566144 keV + 31 6684.182602 keV + 32 6140.803793 keV + 33 670.699315 keV + 34 3065.720905 keV + 35 2225.329204 keV + 36 4992.942972 keV + 37 1680.273242 keV + 38 7353.309519 keV + 39 2807.065762 keV + 40 1791.863230 keV + 41 4202.859504 keV + 42 7543.093595 keV + 43 4697.303593 keV + 44 1905.013886 keV + 45 2104.505416 keV + 46 1648.239746 keV + 47 579.830952 keV + 48 4401.741160 keV + 49 3285.583780 keV + 50 9803.151519 keV + 51 5412.878658 keV + 52 12342.260914 keV + 53 5079.374483 keV + 54 7745.165189 keV + 55 8116.436261 keV + 56 23047.605342 keV + 57 28024.305489 keV + 58 24198.973536 keV + 59 10510.364748 keV + 60 9087.130307 keV + 61 24594.673164 keV + 62 17007.222968 keV + 63 18969.415843 keV + 64 5824.227576 keV + 65 2717.767589 keV + 66 14516.151916 keV + 67 16682.570690 keV + 68 26307.285179 keV + 69 6136.254684 keV + 70 6086.403245 keV + 71 13159.012927 keV + 72 8152.062121 keV + 73 7224.199930 keV + 74 8770.930524 keV + 75 21339.949572 keV + 76 34830.627186 keV + 77 40272.767801 keV + 78 39141.568335 keV + 79 26839.184715 keV + 80 35719.060315 keV + 81 335790.367584 keV + 82 337326.001703 keV + 83 388495.708026 keV + 84 29694.367910 keV + 85 33120.831708 keV + 86 316778.632908 keV + 87 243192.270840 keV + 88 318553.814884 keV + 89 27397.833723 keV + 90 31496.792533 keV + 91 331867.302792 keV + 92 341184.886514 keV + 93 396488.414386 keV + 94 31519.153338 keV + 95 25748.703707 keV + 96 31183.598020 keV + 97 46469.619463 keV + 98 27006.938349 keV + 99 29755.731543 keV + 100 330841.055091 keV + 101 363257.941569 keV + 102 368196.020916 keV + 103 344546.115033 keV + 104 322246.857137 keV + 105 390379.848249 keV + 106 358803.539757 keV + 107 388819.440446 keV + 108 423484.587441 keV + 109 348714.680797 keV + 110 347577.058050 keV + 111 401609.711997 keV + 112 396432.947359 keV + 113 412198.711495 keV + 114 348634.650720 keV + 115 361754.379885 keV + 116 389657.527246 keV + 117 397487.120671 keV + 118 430725.392381 keV + 119 322436.702956 keV + 120 322413.670001 keV + 121 368206.275297 keV + 122 389063.748841 keV + 123 342727.792339 keV + 124 324895.693187 keV ============================================================ closed file mfd_tg_EnergyDeposit.out for output ============================================================ opened file mfd_tl_NumberOfSteps.out for output ============================================================ - 0 38.000000 steps - 1 21.000000 steps - 2 21.000000 steps + 0 13.000000 steps + 1 58.000000 steps + 2 81.000000 steps 3 41.000000 steps - 4 62.000000 steps - 5 47.000000 steps - 6 116.000000 steps - 7 70.000000 steps - 8 70.000000 steps - 9 116.000000 steps - 10 104.000000 steps - 11 48.000000 steps - 12 128.000000 steps - 13 87.000000 steps - 14 109.000000 steps - 15 77.000000 steps - 16 42.000000 steps - 17 72.000000 steps - 18 45.000000 steps - 19 63.000000 steps - 20 17.000000 steps - 21 114.000000 steps - 22 24.000000 steps - 23 39.000000 steps - 24 34.000000 steps - 25 20.000000 steps - 26 92.000000 steps - 27 101.000000 steps - 28 94.000000 steps - 29 140.000000 steps - 30 145.000000 steps - 31 495.000000 steps - 32 358.000000 steps - 33 359.000000 steps - 34 211.000000 steps - 35 209.000000 steps - 36 207.000000 steps - 37 462.000000 steps - 38 370.000000 steps - 39 149.000000 steps - 40 175.000000 steps - 41 319.000000 steps - 42 294.000000 steps - 43 156.000000 steps - 44 116.000000 steps - 45 120.000000 steps - 46 156.000000 steps - 47 187.000000 steps - 48 142.000000 steps - 49 136.000000 steps - 50 297.000000 steps - 51 618.000000 steps - 52 431.000000 steps - 53 266.000000 steps - 54 529.000000 steps - 55 643.000000 steps - 56 720.000000 steps - 57 1158.000000 steps - 58 977.000000 steps - 59 673.000000 steps - 60 539.000000 steps - 61 1205.000000 steps - 62 1316.000000 steps - 63 970.000000 steps - 64 562.000000 steps - 65 477.000000 steps - 66 843.000000 steps - 67 1091.000000 steps - 68 1051.000000 steps - 69 488.000000 steps - 70 522.000000 steps - 71 514.000000 steps - 72 609.000000 steps - 73 651.000000 steps - 74 474.000000 steps - 75 2997.000000 steps - 76 3702.000000 steps - 77 3755.000000 steps - 78 3637.000000 steps - 79 2596.000000 steps - 80 3384.000000 steps - 81 3950.000000 steps - 82 4039.000000 steps - 83 4020.000000 steps - 84 4264.000000 steps - 85 3643.000000 steps - 86 4058.000000 steps - 87 4274.000000 steps - 88 4587.000000 steps - 89 4378.000000 steps - 90 4149.000000 steps - 91 3935.000000 steps - 92 4468.000000 steps - 93 3991.000000 steps - 94 3711.000000 steps - 95 2632.000000 steps - 96 3502.000000 steps - 97 4170.000000 steps - 98 3574.000000 steps - 99 3056.000000 steps - 100 14145.000000 steps - 101 18699.000000 steps - 102 18655.000000 steps - 103 20429.000000 steps - 104 14900.000000 steps - 105 18037.000000 steps - 106 22221.000000 steps - 107 22897.000000 steps - 108 23972.000000 steps - 109 20314.000000 steps - 110 19817.000000 steps - 111 24046.000000 steps - 112 23097.000000 steps - 113 23080.000000 steps - 114 19665.000000 steps - 115 20974.000000 steps - 116 25503.000000 steps - 117 23751.000000 steps - 118 25192.000000 steps - 119 17766.000000 steps - 120 15062.000000 steps - 121 17697.000000 steps - 122 19375.000000 steps - 123 19370.000000 steps - 124 14229.000000 steps - 0 38 [sigma: 8.84873 | error: 0.520694 | coeff: 0.520694 | eff: 1 | fom: 0.153682 | r2int: 0.216898 | r2eff: 0 | hits: 5 ] steps - 1 21 [sigma: 2.06155 | error: 0.294508 | coeff: 0.294508 | eff: 1 | fom: 0.480392 | r2int: 0.0770975 | r2eff: 0 | hits: 9 ] steps - 2 21 [sigma: 3.82971 | error: 0.482498 | coeff: 0.482498 | eff: 1 | fom: 0.178977 | r2int: 0.199546 | r2eff: 0 | hits: 7 ] steps - 3 41 [sigma: 9.14877 | error: 0.498958 | coeff: 0.498958 | eff: 1 | fom: 0.167364 | r2int: 0.199167 | r2eff: 0 | hits: 5 ] steps - 4 62 [sigma: 7.50555 | error: 0.242115 | coeff: 0.242115 | eff: 1 | fom: 0.710799 | r2int: 0.0439646 | r2eff: 0 | hits: 4 ] steps - 5 47 [sigma: 9.94509 | error: 0.559835 | coeff: 0.559835 | eff: 1 | fom: 0.132944 | r2int: 0.268641 | r2eff: 0 | hits: 7 ] steps - 6 116 [sigma: 9.19657 | error: 0.285851 | coeff: 0.285851 | eff: 1 | fom: 0.509929 | r2int: 0.0754253 | r2eff: 0 | hits: 13 ] steps - 7 70 [sigma: 6.9282 | error: 0.312984 | coeff: 0.312984 | eff: 1 | fom: 0.425347 | r2int: 0.0881633 | r2eff: 0 | hits: 10 ] steps - 8 70 [sigma: 8.44591 | error: 0.319225 | coeff: 0.319225 | eff: 1 | fom: 0.408879 | r2int: 0.0873469 | r2eff: 0 | hits: 7 ] steps - 9 116 [sigma: 20.7089 | error: 0.504944 | coeff: 0.504944 | eff: 1 | fom: 0.163419 | r2int: 0.223098 | r2eff: 0 | hits: 8 ] steps - 10 104 [sigma: 13.9809 | error: 0.32929 | coeff: 0.32929 | eff: 1 | fom: 0.384266 | r2int: 0.09036 | r2eff: 0 | hits: 6 ] steps - 11 48 [sigma: 5.52914 | error: 0.325808 | coeff: 0.325808 | eff: 1 | fom: 0.392523 | r2int: 0.0928819 | r2eff: 0 | hits: 8 ] steps - 12 128 [sigma: 19.3405 | error: 0.501134 | coeff: 0.501134 | eff: 1 | fom: 0.165913 | r2int: 0.228305 | r2eff: 0 | hits: 11 ] steps - 13 87 [sigma: 9.51652 | error: 0.394394 | coeff: 0.394394 | eff: 1 | fom: 0.267872 | r2int: 0.143582 | r2eff: 0 | hits: 13 ] steps - 14 109 [sigma: 9.46245 | error: 0.300724 | coeff: 0.300724 | eff: 1 | fom: 0.460738 | r2int: 0.0828985 | r2eff: 0 | hits: 12 ] steps - 15 77 [sigma: 11.9917 | error: 0.516518 | coeff: 0.516518 | eff: 1 | fom: 0.156178 | r2int: 0.242537 | r2eff: 0 | hits: 11 ] steps - 16 42 [sigma: 6.16441 | error: 0.359516 | coeff: 0.359516 | eff: 1 | fom: 0.322368 | r2int: 0.10771 | r2eff: 0 | hits: 6 ] steps - 17 72 [sigma: 6.20484 | error: 0.258535 | coeff: 0.258535 | eff: 1 | fom: 0.623377 | r2int: 0.0594136 | r2eff: 0 | hits: 9 ] steps - 18 45 [sigma: 5.22015 | error: 0.34801 | coeff: 0.34801 | eff: 1 | fom: 0.344037 | r2int: 0.107654 | r2eff: 0 | hits: 9 ] steps - 19 63 [sigma: 7.39594 | error: 0.28756 | coeff: 0.28756 | eff: 1 | fom: 0.503885 | r2int: 0.068909 | r2eff: 0 | hits: 6 ] steps - 20 17 [sigma: 6.5 | error: 0.764706 | coeff: 0.764706 | eff: 1 | fom: 0.0712525 | r2int: 0.438581 | r2eff: 0 | hits: 4 ] steps - 21 114 [sigma: 20.8172 | error: 0.516491 | coeff: 0.516491 | eff: 1 | fom: 0.156193 | r2int: 0.233418 | r2eff: 0 | hits: 8 ] steps - 22 24 [sigma: 2.17051 | error: 0.28599 | coeff: 0.28599 | eff: 1 | fom: 0.509434 | r2int: 0.0736111 | r2eff: 0 | hits: 10 ] steps - 23 39 [sigma: 2.63283 | error: 0.233857 | coeff: 0.233857 | eff: 1 | fom: 0.761885 | r2int: 0.0501315 | r2eff: 0 | hits: 12 ] steps - 24 34 [sigma: 12.9692 | error: 0.852941 | coeff: 0.852941 | eff: 1 | fom: 0.0572731 | r2int: 0.582007 | r2eff: 0 | hits: 5 ] steps - 25 20 [sigma: 2.82843 | error: 0.4 | coeff: 0.4 | eff: 1 | fom: 0.260417 | r2int: 0.14 | r2eff: 0 | hits: 8 ] steps - 26 92 [sigma: 6.92339 | error: 0.301017 | coeff: 0.301017 | eff: 1 | fom: 0.45984 | r2int: 0.084948 | r2eff: 0 | hits: 16 ] steps - 27 101 [sigma: 4.78141 | error: 0.216942 | coeff: 0.216942 | eff: 1 | fom: 0.885319 | r2int: 0.0448229 | r2eff: 0 | hits: 21 ] steps - 28 94 [sigma: 7.47594 | error: 0.327916 | coeff: 0.327916 | eff: 1 | fom: 0.387493 | r2int: 0.101204 | r2eff: 0 | hits: 17 ] steps - 29 140 [sigma: 12.3616 | error: 0.341974 | coeff: 0.341974 | eff: 1 | fom: 0.35629 | r2int: 0.10915 | r2eff: 0 | hits: 15 ] steps - 30 145 [sigma: 9.30263 | error: 0.300919 | coeff: 0.300919 | eff: 1 | fom: 0.46014 | r2int: 0.0864361 | r2eff: 0 | hits: 22 ] steps - 31 495 [sigma: 18.8459 | error: 0.190362 | coeff: 0.190362 | eff: 1 | fom: 1.14981 | r2int: 0.0347883 | r2eff: 0 | hits: 25 ] steps - 32 358 [sigma: 12.0957 | error: 0.181948 | coeff: 0.181948 | eff: 1 | fom: 1.25863 | r2int: 0.0319634 | r2eff: 0 | hits: 29 ] steps - 33 359 [sigma: 11.7205 | error: 0.169642 | coeff: 0.169642 | eff: 1 | fom: 1.44784 | r2int: 0.0277126 | r2eff: 0 | hits: 27 ] steps - 34 211 [sigma: 11.8469 | error: 0.26335 | coeff: 0.26335 | eff: 1 | fom: 0.600791 | r2int: 0.0662006 | r2eff: 0 | hits: 22 ] steps - 35 209 [sigma: 12.5793 | error: 0.300941 | coeff: 0.300941 | eff: 1 | fom: 0.460071 | r2int: 0.0869431 | r2eff: 0 | hits: 25 ] steps - 36 207 [sigma: 6.61232 | error: 0.156491 | coeff: 0.156491 | eff: 1 | fom: 1.70141 | r2int: 0.023469 | r2eff: 0 | hits: 24 ] steps - 37 462 [sigma: 11.5887 | error: 0.154627 | coeff: 0.154627 | eff: 1 | fom: 1.74268 | r2int: 0.0232804 | r2eff: 0 | hits: 38 ] steps - 38 370 [sigma: 12.9025 | error: 0.18779 | coeff: 0.18779 | eff: 1 | fom: 1.18153 | r2int: 0.034049 | r2eff: 0 | hits: 29 ] steps - 39 149 [sigma: 5.88426 | error: 0.189395 | coeff: 0.189395 | eff: 1 | fom: 1.16158 | r2int: 0.034311 | r2eff: 0 | hits: 23 ] steps - 40 175 [sigma: 9.37452 | error: 0.239566 | coeff: 0.239566 | eff: 1 | fom: 0.726001 | r2int: 0.0545224 | r2eff: 0 | hits: 20 ] steps - 41 319 [sigma: 10.0151 | error: 0.153805 | coeff: 0.153805 | eff: 1 | fom: 1.76136 | r2int: 0.0226704 | r2eff: 0 | hits: 24 ] steps - 42 294 [sigma: 13.7122 | error: 0.2332 | coeff: 0.2332 | eff: 1 | fom: 0.766182 | r2int: 0.052207 | r2eff: 0 | hits: 25 ] steps - 43 156 [sigma: 6.13654 | error: 0.180264 | coeff: 0.180264 | eff: 1 | fom: 1.28225 | r2int: 0.0309477 | r2eff: 0 | hits: 21 ] steps - 44 116 [sigma: 7.06459 | error: 0.258384 | coeff: 0.258384 | eff: 1 | fom: 0.624105 | r2int: 0.0630532 | r2eff: 0 | hits: 18 ] steps - 45 120 [sigma: 12.008 | error: 0.360796 | coeff: 0.360796 | eff: 1 | fom: 0.320085 | r2int: 0.12016 | r2eff: 0 | hits: 13 ] steps - 46 156 [sigma: 6.99666 | error: 0.195498 | coeff: 0.195498 | eff: 1 | fom: 1.09019 | r2int: 0.036208 | r2eff: 0 | hits: 19 ] steps - 47 187 [sigma: 8.81551 | error: 0.210824 | coeff: 0.210824 | eff: 1 | fom: 0.937449 | r2int: 0.0422245 | r2eff: 0 | hits: 20 ] steps - 48 142 [sigma: 7.39837 | error: 0.244376 | coeff: 0.244376 | eff: 1 | fom: 0.697702 | r2int: 0.0570053 | r2eff: 0 | hits: 22 ] steps - 49 136 [sigma: 13.1293 | error: 0.409581 | coeff: 0.409581 | eff: 1 | fom: 0.248376 | r2int: 0.158437 | r2eff: 0 | hits: 18 ] steps - 50 297 [sigma: 13.3041 | error: 0.257328 | coeff: 0.257328 | eff: 1 | fom: 0.629237 | r2int: 0.0642111 | r2eff: 0 | hits: 33 ] steps - 51 618 [sigma: 16.3607 | error: 0.19811 | coeff: 0.19811 | eff: 1 | fom: 1.06164 | r2int: 0.0385467 | r2eff: 0 | hits: 56 ] steps - 52 431 [sigma: 10.016 | error: 0.176982 | coeff: 0.176982 | eff: 1 | fom: 1.33024 | r2int: 0.0307827 | r2eff: 0 | hits: 58 ] steps - 53 266 [sigma: 10.9416 | error: 0.275935 | coeff: 0.275935 | eff: 1 | fom: 0.547237 | r2int: 0.074448 | r2eff: 0 | hits: 45 ] steps - 54 529 [sigma: 29.3631 | error: 0.323658 | coeff: 0.323658 | eff: 1 | fom: 0.397756 | r2int: 0.101673 | r2eff: 0 | hits: 34 ] steps - 55 643 [sigma: 15.0399 | error: 0.171882 | coeff: 0.171882 | eff: 1 | fom: 1.41035 | r2int: 0.0289964 | r2eff: 0 | hits: 54 ] steps - 56 720 [sigma: 13.0373 | error: 0.153646 | coeff: 0.153646 | eff: 1 | fom: 1.765 | r2int: 0.0232793 | r2eff: 0 | hits: 72 ] steps - 57 1158 [sigma: 16.0482 | error: 0.120816 | coeff: 0.120816 | eff: 1 | fom: 2.85458 | r2int: 0.0144044 | r2eff: 0 | hits: 76 ] steps - 58 977 [sigma: 12.0084 | error: 0.108552 | coeff: 0.108552 | eff: 1 | fom: 3.53603 | r2int: 0.0116324 | r2eff: 0 | hits: 78 ] steps - 59 673 [sigma: 14.5541 | error: 0.164697 | coeff: 0.164697 | eff: 1 | fom: 1.5361 | r2int: 0.0266573 | r2eff: 0 | hits: 58 ] steps - 60 539 [sigma: 10.7923 | error: 0.156383 | coeff: 0.156383 | eff: 1 | fom: 1.70378 | r2int: 0.0240546 | r2eff: 0 | hits: 61 ] steps - 61 1205 [sigma: 12.8958 | error: 0.103206 | coeff: 0.103206 | eff: 1 | fom: 3.91184 | r2int: 0.0105369 | r2eff: 0 | hits: 93 ] steps - 62 1316 [sigma: 12.5805 | error: 0.0941516 | coeff: 0.0941516 | eff: 1 | fom: 4.70038 | r2int: 0.00877314 | r2eff: 0 | hits: 97 ] steps - 63 970 [sigma: 10.2077 | error: 0.0970211 | coeff: 0.0970211 | eff: 1 | fom: 4.42646 | r2int: 0.00930236 | r2eff: 0 | hits: 85 ] steps - 64 562 [sigma: 14.8232 | error: 0.200872 | coeff: 0.200872 | eff: 1 | fom: 1.03264 | r2int: 0.0396538 | r2eff: 0 | hits: 58 ] steps - 65 477 [sigma: 12.9057 | error: 0.200653 | coeff: 0.200653 | eff: 1 | fom: 1.0349 | r2int: 0.0395295 | r2eff: 0 | hits: 55 ] steps - 66 843 [sigma: 12.1163 | error: 0.125299 | coeff: 0.125299 | eff: 1 | fom: 2.65393 | r2int: 0.0154934 | r2eff: 0 | hits: 76 ] steps - 67 1091 [sigma: 11.0911 | error: 0.10166 | coeff: 0.10166 | eff: 1 | fom: 4.03172 | r2int: 0.0102314 | r2eff: 0 | hits: 100 ] steps - 68 1051 [sigma: 11.9384 | error: 0.102231 | coeff: 0.102231 | eff: 1 | fom: 3.98676 | r2int: 0.0103222 | r2eff: 0 | hits: 81 ] steps - 69 488 [sigma: 14.9002 | error: 0.236509 | coeff: 0.236509 | eff: 1 | fom: 0.744892 | r2int: 0.0550043 | r2eff: 0 | hits: 60 ] steps - 70 522 [sigma: 18.2306 | error: 0.203644 | coeff: 0.203644 | eff: 1 | fom: 1.00472 | r2int: 0.040251 | r2eff: 0 | hits: 34 ] steps - 71 514 [sigma: 12.2766 | error: 0.173881 | coeff: 0.173881 | eff: 1 | fom: 1.37811 | r2int: 0.0296642 | r2eff: 0 | hits: 53 ] steps - 72 609 [sigma: 12.2506 | error: 0.169499 | coeff: 0.169499 | eff: 1 | fom: 1.45029 | r2int: 0.0283253 | r2eff: 0 | hits: 71 ] steps - 73 651 [sigma: 16.1017 | error: 0.188367 | coeff: 0.188367 | eff: 1 | fom: 1.1743 | r2int: 0.0348703 | r2eff: 0 | hits: 58 ] steps - 74 474 [sigma: 21.2288 | error: 0.261148 | coeff: 0.261148 | eff: 1 | fom: 0.610962 | r2int: 0.0661926 | r2eff: 0 | hits: 34 ] steps - 75 2997 [sigma: 34.9317 | error: 0.139867 | coeff: 0.139867 | eff: 1 | fom: 2.12991 | r2int: 0.0194268 | r2eff: 0 | hits: 144 ] steps - 76 3702 [sigma: 26.2663 | error: 0.0988244 | coeff: 0.0988244 | eff: 1 | fom: 4.26639 | r2int: 0.00971591 | r2eff: 0 | hits: 194 ] steps - 77 3755 [sigma: 24.3832 | error: 0.0949921 | coeff: 0.0949921 | eff: 1 | fom: 4.61757 | r2int: 0.00898133 | r2eff: 0 | hits: 214 ] steps - 78 3637 [sigma: 23.5453 | error: 0.092917 | coeff: 0.092917 | eff: 1 | fom: 4.82612 | r2int: 0.00859166 | r2eff: 0 | hits: 206 ] steps - 79 2596 [sigma: 26.6557 | error: 0.122787 | coeff: 0.122787 | eff: 1 | fom: 2.76365 | r2int: 0.0149713 | r2eff: 0 | hits: 143 ] steps - 80 3384 [sigma: 22.7572 | error: 0.0955792 | coeff: 0.0955792 | eff: 1 | fom: 4.56102 | r2int: 0.00909016 | r2eff: 0 | hits: 202 ] steps - 81 3950 [sigma: 13.5097 | error: 0.0595347 | coeff: 0.0595347 | eff: 1 | fom: 11.7557 | r2int: 0.00353268 | r2eff: 0 | hits: 303 ] steps - 82 4039 [sigma: 13.2251 | error: 0.0560477 | coeff: 0.0560477 | eff: 1 | fom: 13.264 | r2int: 0.00313062 | r2eff: 0 | hits: 293 ] steps - 83 4020 [sigma: 12.7422 | error: 0.0564349 | coeff: 0.0564349 | eff: 1 | fom: 13.0826 | r2int: 0.00317485 | r2eff: 0 | hits: 317 ] steps - 84 4264 [sigma: 32.9054 | error: 0.11524 | coeff: 0.11524 | eff: 1 | fom: 3.1375 | r2int: 0.0132206 | r2eff: 0 | hits: 223 ] steps - 85 3643 [sigma: 22.9317 | error: 0.093366 | coeff: 0.093366 | eff: 1 | fom: 4.77981 | r2int: 0.00867759 | r2eff: 0 | hits: 220 ] steps - 86 4058 [sigma: 12.8325 | error: 0.0564801 | coeff: 0.0564801 | eff: 1 | fom: 13.0617 | r2int: 0.00318 | r2eff: 0 | hits: 319 ] steps - 87 4274 [sigma: 13.1402 | error: 0.0554255 | coeff: 0.0554255 | eff: 1 | fom: 13.5634 | r2int: 0.00306254 | r2eff: 0 | hits: 325 ] steps - 88 4587 [sigma: 13.1602 | error: 0.0522759 | coeff: 0.0522759 | eff: 1 | fom: 15.2471 | r2int: 0.00272454 | r2eff: 0 | hits: 332 ] steps - 89 4378 [sigma: 29.8752 | error: 0.102586 | coeff: 0.102586 | eff: 1 | fom: 3.95922 | r2int: 0.0104774 | r2eff: 0 | hits: 226 ] steps - 90 4149 [sigma: 25.0754 | error: 0.0906557 | coeff: 0.0906557 | eff: 1 | fom: 5.06989 | r2int: 0.00818193 | r2eff: 0 | hits: 225 ] steps - 91 3935 [sigma: 12.6725 | error: 0.0569756 | coeff: 0.0569756 | eff: 1 | fom: 12.8354 | r2int: 0.00323585 | r2eff: 0 | hits: 313 ] steps - 92 4468 [sigma: 12.9661 | error: 0.0546776 | coeff: 0.0546776 | eff: 1 | fom: 13.937 | r2int: 0.00298122 | r2eff: 0 | hits: 355 ] steps - 93 3991 [sigma: 11.2744 | error: 0.0507707 | coeff: 0.0507707 | eff: 1 | fom: 16.1645 | r2int: 0.00256968 | r2eff: 0 | hits: 323 ] steps - 94 3711 [sigma: 27.9436 | error: 0.106223 | coeff: 0.106223 | eff: 1 | fom: 3.69277 | r2int: 0.0112266 | r2eff: 0 | hits: 199 ] steps - 95 2632 [sigma: 21.5134 | error: 0.0991019 | coeff: 0.0991019 | eff: 1 | fom: 4.24253 | r2int: 0.00975437 | r2eff: 0 | hits: 147 ] steps - 96 3502 [sigma: 27.5626 | error: 0.111027 | coeff: 0.111027 | eff: 1 | fom: 3.38009 | r2int: 0.0122651 | r2eff: 0 | hits: 199 ] steps - 97 4170 [sigma: 24.8593 | error: 0.0911928 | coeff: 0.0911928 | eff: 1 | fom: 5.01034 | r2int: 0.0082806 | r2eff: 0 | hits: 234 ] steps - 98 3574 [sigma: 26.3056 | error: 0.102517 | coeff: 0.102517 | eff: 1 | fom: 3.96459 | r2int: 0.0104555 | r2eff: 0 | hits: 194 ] steps - 99 3056 [sigma: 35.7616 | error: 0.138461 | coeff: 0.138461 | eff: 1 | fom: 2.17337 | r2int: 0.0190345 | r2eff: 0 | hits: 140 ] steps - 100 14145 [sigma: 27.9362 | error: 0.0482156 | coeff: 0.0482156 | eff: 1 | fom: 17.9231 | r2int: 0.00232084 | r2eff: 0 | hits: 596 ] steps - 101 18699 [sigma: 31.5257 | error: 0.0453018 | coeff: 0.0453018 | eff: 1 | fom: 20.3029 | r2int: 0.00204941 | r2eff: 0 | hits: 722 ] steps - 102 18655 [sigma: 31.0281 | error: 0.0460636 | coeff: 0.0460636 | eff: 1 | fom: 19.6369 | r2int: 0.00211909 | r2eff: 0 | hits: 767 ] steps - 103 20429 [sigma: 31.7282 | error: 0.0438182 | coeff: 0.0438182 | eff: 1 | fom: 21.701 | r2int: 0.00191762 | r2eff: 0 | hits: 796 ] steps - 104 14900 [sigma: 30.2977 | error: 0.0508757 | coeff: 0.0508757 | eff: 1 | fom: 16.0978 | r2int: 0.00258421 | r2eff: 0 | hits: 626 ] steps - 105 18037 [sigma: 29.5948 | error: 0.0449946 | coeff: 0.0449946 | eff: 1 | fom: 20.5811 | r2int: 0.00202182 | r2eff: 0 | hits: 752 ] steps - 106 22221 [sigma: 29.5712 | error: 0.0405396 | coeff: 0.0405396 | eff: 1 | fom: 24.3389 | r2int: 0.00164169 | r2eff: 0 | hits: 928 ] steps - 107 22897 [sigma: 31.2523 | error: 0.0416242 | coeff: 0.0416242 | eff: 1 | fom: 23.0871 | r2int: 0.00173071 | r2eff: 0 | hits: 930 ] steps - 108 23972 [sigma: 30.1602 | error: 0.0393661 | coeff: 0.0393661 | eff: 1 | fom: 25.8117 | r2int: 0.0015481 | r2eff: 0 | hits: 979 ] steps - 109 20314 [sigma: 32.2616 | error: 0.0448915 | coeff: 0.0448915 | eff: 1 | fom: 19.8487 | r2int: 0.00201273 | r2eff: 0 | hits: 799 ] steps - 110 19817 [sigma: 30.9946 | error: 0.0446505 | coeff: 0.0446505 | eff: 1 | fom: 20.0635 | r2int: 0.00199122 | r2eff: 0 | hits: 815 ] steps - 111 24046 [sigma: 30.9472 | error: 0.040617 | coeff: 0.040617 | eff: 1 | fom: 24.2462 | r2int: 0.00164809 | r2eff: 0 | hits: 996 ] steps - 112 23097 [sigma: 28.543 | error: 0.0384884 | coeff: 0.0384884 | eff: 1 | fom: 27.0023 | r2int: 0.00147983 | r2eff: 0 | hits: 970 ] steps - 113 23080 [sigma: 26.3332 | error: 0.0359537 | coeff: 0.0359537 | eff: 1 | fom: 30.9438 | r2int: 0.00129136 | r2eff: 0 | hits: 993 ] steps - 114 19665 [sigma: 30.3845 | error: 0.0436748 | coeff: 0.0436748 | eff: 1 | fom: 20.97 | r2int: 0.0019051 | r2eff: 0 | hits: 799 ] steps - 115 20974 [sigma: 31.8899 | error: 0.0435125 | coeff: 0.0435125 | eff: 1 | fom: 21.1268 | r2int: 0.00189102 | r2eff: 0 | hits: 819 ] steps - 116 25503 [sigma: 32.9406 | error: 0.0401656 | coeff: 0.0401656 | eff: 1 | fom: 24.7943 | r2int: 0.0016116 | r2eff: 0 | hits: 967 ] steps - 117 23751 [sigma: 29.012 | error: 0.0384532 | coeff: 0.0384532 | eff: 1 | fom: 27.0518 | r2int: 0.00147715 | r2eff: 0 | hits: 991 ] steps - 118 25192 [sigma: 31.9432 | error: 0.0396741 | coeff: 0.0396741 | eff: 1 | fom: 25.4124 | r2int: 0.00157243 | r2eff: 0 | hits: 979 ] steps - 119 17766 [sigma: 26.8724 | error: 0.0423251 | coeff: 0.0423251 | eff: 1 | fom: 22.3287 | r2int: 0.00178913 | r2eff: 0 | hits: 783 ] steps - 120 15062 [sigma: 30.6666 | error: 0.0505328 | coeff: 0.0505328 | eff: 1 | fom: 15.0619 | r2int: 0.00254942 | r2eff: 0 | hits: 616 ] steps - 121 17697 [sigma: 28.4743 | error: 0.0444442 | coeff: 0.0444442 | eff: 1 | fom: 19.4714 | r2int: 0.0019727 | r2eff: 0 | hits: 763 ] steps - 122 19375 [sigma: 30.6351 | error: 0.0441879 | coeff: 0.0441879 | eff: 1 | fom: 19.6979 | r2int: 0.00195007 | r2eff: 0 | hits: 781 ] steps - 123 19370 [sigma: 28.6675 | error: 0.0417295 | coeff: 0.0417295 | eff: 1 | fom: 22.0872 | r2int: 0.00173916 | r2eff: 0 | hits: 795 ] steps - 124 14229 [sigma: 28.1297 | error: 0.0501299 | coeff: 0.0501299 | eff: 1 | fom: 15.305 | r2int: 0.00250909 | r2eff: 0 | hits: 643 ] steps + 4 32.000000 steps + 5 43.000000 steps + 6 52.000000 steps + 7 48.000000 steps + 8 73.000000 steps + 9 28.000000 steps + 10 70.000000 steps + 11 87.000000 steps + 12 33.000000 steps + 13 88.000000 steps + 14 112.000000 steps + 15 60.000000 steps + 16 125.000000 steps + 17 80.000000 steps + 18 26.000000 steps + 19 18.000000 steps + 20 76.000000 steps + 21 70.000000 steps + 22 44.000000 steps + 23 20.000000 steps + 24 91.000000 steps + 25 89.000000 steps + 26 242.000000 steps + 27 356.000000 steps + 28 85.000000 steps + 29 120.000000 steps + 30 207.000000 steps + 31 486.000000 steps + 32 360.000000 steps + 33 204.000000 steps + 34 344.000000 steps + 35 185.000000 steps + 36 386.000000 steps + 37 290.000000 steps + 38 418.000000 steps + 39 177.000000 steps + 40 130.000000 steps + 41 272.000000 steps + 42 401.000000 steps + 43 430.000000 steps + 44 131.000000 steps + 45 169.000000 steps + 46 136.000000 steps + 47 128.000000 steps + 48 225.000000 steps + 49 140.000000 steps + 50 600.000000 steps + 51 523.000000 steps + 52 1018.000000 steps + 53 699.000000 steps + 54 667.000000 steps + 55 575.000000 steps + 56 995.000000 steps + 57 1129.000000 steps + 58 1137.000000 steps + 59 806.000000 steps + 60 945.000000 steps + 61 1220.000000 steps + 62 1271.000000 steps + 63 1151.000000 steps + 64 731.000000 steps + 65 519.000000 steps + 66 885.000000 steps + 67 1065.000000 steps + 68 1116.000000 steps + 69 603.000000 steps + 70 536.000000 steps + 71 705.000000 steps + 72 824.000000 steps + 73 637.000000 steps + 74 645.000000 steps + 75 3083.000000 steps + 76 3832.000000 steps + 77 4735.000000 steps + 78 4054.000000 steps + 79 3076.000000 steps + 80 3927.000000 steps + 81 3838.000000 steps + 82 4422.000000 steps + 83 4972.000000 steps + 84 3804.000000 steps + 85 3958.000000 steps + 86 4105.000000 steps + 87 4609.000000 steps + 88 4439.000000 steps + 89 3175.000000 steps + 90 3974.000000 steps + 91 3891.000000 steps + 92 4465.000000 steps + 93 4490.000000 steps + 94 4161.000000 steps + 95 3032.000000 steps + 96 3460.000000 steps + 97 4201.000000 steps + 98 4647.000000 steps + 99 3187.000000 steps + 100 14516.000000 steps + 101 18071.000000 steps + 102 19715.000000 steps + 103 19248.000000 steps + 104 14509.000000 steps + 105 19554.000000 steps + 106 22913.000000 steps + 107 25372.000000 steps + 108 25207.000000 steps + 109 18199.000000 steps + 110 19639.000000 steps + 111 23658.000000 steps + 112 24077.000000 steps + 113 25233.000000 steps + 114 18017.000000 steps + 115 18352.000000 steps + 116 21495.000000 steps + 117 24898.000000 steps + 118 24617.000000 steps + 119 18472.000000 steps + 120 14245.000000 steps + 121 19034.000000 steps + 122 20690.000000 steps + 123 17916.000000 steps + 124 14756.000000 steps + 0 13 [sigma: 4.5 | error: 0.692308 | coeff: 0.692308 | eff: 1 | fom: 0.0802469 | r2int: 0.359467 | r2eff: 0 | hits: 4 ] steps + 1 58 [sigma: 9.78775 | error: 0.377346 | coeff: 0.377346 | eff: 1 | fom: 0.270114 | r2int: 0.113912 | r2eff: 0 | hits: 5 ] steps + 2 81 [sigma: 7.01911 | error: 0.245099 | coeff: 0.245099 | eff: 1 | fom: 0.64024 | r2int: 0.0525644 | r2eff: 0 | hits: 8 ] steps + 3 41 [sigma: 12.4325 | error: 0.742762 | coeff: 0.742762 | eff: 1 | fom: 0.0697152 | r2int: 0.459746 | r2eff: 0 | hits: 6 ] steps + 4 32 [sigma: 9.50438 | error: 0.51444 | coeff: 0.51444 | eff: 1 | fom: 0.145331 | r2int: 0.176432 | r2eff: 0 | hits: 3 ] steps + 5 43 [sigma: 12.3346 | error: 0.758938 | coeff: 0.758938 | eff: 1 | fom: 0.066775 | r2int: 0.493703 | r2eff: 0 | hits: 7 ] steps + 6 52 [sigma: 5.8902 | error: 0.339819 | coeff: 0.339819 | eff: 1 | fom: 0.333066 | r2int: 0.102646 | r2eff: 0 | hits: 9 ] steps + 7 48 [sigma: 4.56937 | error: 0.356188 | coeff: 0.356188 | eff: 1 | fom: 0.303158 | r2int: 0.117808 | r2eff: 0 | hits: 14 ] steps + 8 73 [sigma: 7.25635 | error: 0.329679 | coeff: 0.329679 | eff: 1 | fom: 0.35387 | r2int: 0.0988076 | r2eff: 0 | hits: 11 ] steps + 9 28 [sigma: 9.07377 | error: 0.561294 | coeff: 0.561294 | eff: 1 | fom: 0.12208 | r2int: 0.210034 | r2eff: 0 | hits: 3 ] steps + 10 70 [sigma: 12.083 | error: 0.456696 | coeff: 0.456696 | eff: 1 | fom: 0.184405 | r2int: 0.178776 | r2eff: 0 | hits: 7 ] steps + 11 87 [sigma: 8.2334 | error: 0.299268 | coeff: 0.299268 | eff: 1 | fom: 0.429444 | r2int: 0.0806051 | r2eff: 0 | hits: 10 ] steps + 12 33 [sigma: 3 | error: 0.301511 | coeff: 0.301511 | eff: 1 | fom: 0.423077 | r2int: 0.0826446 | r2eff: 0 | hits: 11 ] steps + 13 88 [sigma: 7.90732 | error: 0.32398 | coeff: 0.32398 | eff: 1 | fom: 0.36643 | r2int: 0.0968889 | r2eff: 0 | hits: 13 ] steps + 14 112 [sigma: 19.8854 | error: 0.502182 | coeff: 0.502182 | eff: 1 | fom: 0.152512 | r2int: 0.220663 | r2eff: 0 | hits: 8 ] steps + 15 60 [sigma: 5.96571 | error: 0.358495 | coeff: 0.358495 | eff: 1 | fom: 0.299268 | r2int: 0.118632 | r2eff: 0 | hits: 13 ] steps + 16 125 [sigma: 8.04374 | error: 0.280495 | coeff: 0.280495 | eff: 1 | fom: 0.488852 | r2int: 0.0745364 | r2eff: 0 | hits: 19 ] steps + 17 80 [sigma: 10.1891 | error: 0.422419 | coeff: 0.422419 | eff: 1 | fom: 0.215546 | r2int: 0.162216 | r2eff: 0 | hits: 11 ] steps + 18 26 [sigma: 5.31395 | error: 0.540746 | coeff: 0.540746 | eff: 1 | fom: 0.131535 | r2int: 0.250634 | r2eff: 0 | hits: 7 ] steps + 19 18 [sigma: 4.42719 | error: 0.602464 | coeff: 0.602464 | eff: 1 | fom: 0.105965 | r2int: 0.302469 | r2eff: 0 | hits: 6 ] steps + 20 76 [sigma: 12.2093 | error: 0.393507 | coeff: 0.393507 | eff: 1 | fom: 0.248383 | r2int: 0.12904 | r2eff: 0 | hits: 6 ] steps + 21 70 [sigma: 16.0156 | error: 0.5116 | coeff: 0.5116 | eff: 1 | fom: 0.146949 | r2int: 0.209388 | r2eff: 0 | hits: 5 ] steps + 22 44 [sigma: 0 | error: 0 | coeff: 0 | eff: 1 | fom: 1 | r2int: 0 | r2eff: 0 | hits: 1 ] steps + 23 20 [sigma: 2.73252 | error: 0.334664 | coeff: 0.334664 | eff: 1 | fom: 0.343407 | r2int: 0.0933333 | r2eff: 0 | hits: 6 ] steps + 24 91 [sigma: 13.5535 | error: 0.421264 | coeff: 0.421264 | eff: 1 | fom: 0.21673 | r2int: 0.15528 | r2eff: 0 | hits: 8 ] steps + 25 89 [sigma: 4.61835 | error: 0.207566 | coeff: 0.207566 | eff: 1 | fom: 0.892715 | r2int: 0.040391 | r2eff: 0 | hits: 16 ] steps + 26 242 [sigma: 11.2749 | error: 0.228246 | coeff: 0.228246 | eff: 1 | fom: 0.73828 | r2int: 0.0499254 | r2eff: 0 | hits: 24 ] steps + 27 356 [sigma: 12.8032 | error: 0.193672 | coeff: 0.193672 | eff: 1 | fom: 1.0254 | r2int: 0.0362154 | r2eff: 0 | hits: 29 ] steps + 28 85 [sigma: 8.07701 | error: 0.368025 | coeff: 0.368025 | eff: 1 | fom: 0.28397 | r2int: 0.126413 | r2eff: 0 | hits: 15 ] steps + 29 120 [sigma: 10.469 | error: 0.348967 | coeff: 0.348967 | eff: 1 | fom: 0.315834 | r2int: 0.114167 | r2eff: 0 | hits: 16 ] steps + 30 207 [sigma: 9 | error: 0.22592 | coeff: 0.22592 | eff: 1 | fom: 0.753561 | r2int: 0.0491493 | r2eff: 0 | hits: 27 ] steps + 31 486 [sigma: 18.7348 | error: 0.211142 | coeff: 0.211142 | eff: 1 | fom: 0.862739 | r2int: 0.0430947 | r2eff: 0 | hits: 30 ] steps + 32 360 [sigma: 11.3593 | error: 0.172827 | coeff: 0.172827 | eff: 1 | fom: 1.28767 | r2int: 0.0288735 | r2eff: 0 | hits: 30 ] steps + 33 204 [sigma: 9.97644 | error: 0.207483 | coeff: 0.207483 | eff: 1 | fom: 0.893435 | r2int: 0.0406574 | r2eff: 0 | hits: 18 ] steps + 34 344 [sigma: 23.8966 | error: 0.318337 | coeff: 0.318337 | eff: 1 | fom: 0.379535 | r2int: 0.0965129 | r2eff: 0 | hits: 21 ] steps + 35 185 [sigma: 13.123 | error: 0.300952 | coeff: 0.300952 | eff: 1 | fom: 0.424652 | r2int: 0.0855401 | r2eff: 0 | hits: 18 ] steps + 36 386 [sigma: 14.5833 | error: 0.206932 | coeff: 0.206932 | eff: 1 | fom: 0.898196 | r2int: 0.0413935 | r2eff: 0 | hits: 30 ] steps + 37 290 [sigma: 9.06046 | error: 0.171125 | coeff: 0.171125 | eff: 1 | fom: 1.31341 | r2int: 0.0283076 | r2eff: 0 | hits: 30 ] steps + 38 418 [sigma: 15.1223 | error: 0.198154 | coeff: 0.198154 | eff: 1 | fom: 0.979535 | r2int: 0.0379562 | r2eff: 0 | hits: 30 ] steps + 39 177 [sigma: 16.0665 | error: 0.374259 | coeff: 0.374259 | eff: 1 | fom: 0.274588 | r2int: 0.13183 | r2eff: 0 | hits: 17 ] steps + 40 130 [sigma: 5.74772 | error: 0.2166 | coeff: 0.2166 | eff: 1 | fom: 0.819807 | r2int: 0.0449606 | r2eff: 0 | hits: 24 ] steps + 41 272 [sigma: 8.9271 | error: 0.173668 | coeff: 0.173668 | eff: 1 | fom: 1.27522 | r2int: 0.0290835 | r2eff: 0 | hits: 28 ] steps + 42 401 [sigma: 12.6695 | error: 0.173052 | coeff: 0.173052 | eff: 1 | fom: 1.28433 | r2int: 0.0289486 | r2eff: 0 | hits: 30 ] steps + 43 430 [sigma: 18.4603 | error: 0.235142 | coeff: 0.235142 | eff: 1 | fom: 0.695611 | r2int: 0.0534487 | r2eff: 0 | hits: 30 ] steps + 44 131 [sigma: 8.43205 | error: 0.280568 | coeff: 0.280568 | eff: 1 | fom: 0.488596 | r2int: 0.0745755 | r2eff: 0 | hits: 19 ] steps + 45 169 [sigma: 17.3536 | error: 0.384209 | coeff: 0.384209 | eff: 1 | fom: 0.26055 | r2int: 0.137073 | r2eff: 0 | hits: 14 ] steps + 46 136 [sigma: 9.7018 | error: 0.294129 | coeff: 0.294129 | eff: 1 | fom: 0.444581 | r2int: 0.081423 | r2eff: 0 | hits: 17 ] steps + 47 128 [sigma: 7.77108 | error: 0.25032 | coeff: 0.25032 | eff: 1 | fom: 0.613811 | r2int: 0.0589743 | r2eff: 0 | hits: 17 ] steps + 48 225 [sigma: 11.0905 | error: 0.256125 | coeff: 0.256125 | eff: 1 | fom: 0.586304 | r2int: 0.0631704 | r2eff: 0 | hits: 27 ] steps + 49 140 [sigma: 11.159 | error: 0.308705 | coeff: 0.308705 | eff: 1 | fom: 0.403589 | r2int: 0.0889456 | r2eff: 0 | hits: 15 ] steps + 50 600 [sigma: 21.1432 | error: 0.196201 | coeff: 0.196201 | eff: 1 | fom: 0.999136 | r2int: 0.037253 | r2eff: 0 | hits: 31 ] steps + 51 523 [sigma: 11.13 | error: 0.163464 | coeff: 0.163464 | eff: 1 | fom: 1.43941 | r2int: 0.0262675 | r2eff: 0 | hits: 59 ] steps + 52 1018 [sigma: 20.522 | error: 0.179179 | coeff: 0.179179 | eff: 1 | fom: 1.19799 | r2int: 0.0316986 | r2eff: 0 | hits: 79 ] steps + 53 699 [sigma: 17.1838 | error: 0.219881 | coeff: 0.219881 | eff: 1 | fom: 0.795518 | r2int: 0.0477434 | r2eff: 0 | hits: 80 ] steps + 54 667 [sigma: 22.7934 | error: 0.255727 | coeff: 0.255727 | eff: 1 | fom: 0.58813 | r2int: 0.0642285 | r2eff: 0 | hits: 56 ] steps + 55 575 [sigma: 12.7817 | error: 0.184649 | coeff: 0.184649 | eff: 1 | fom: 1.12807 | r2int: 0.033601 | r2eff: 0 | hits: 69 ] steps + 56 995 [sigma: 12.207 | error: 0.11177 | coeff: 0.11177 | eff: 1 | fom: 3.07874 | r2int: 0.0123421 | r2eff: 0 | hits: 83 ] steps + 57 1129 [sigma: 10.4874 | error: 0.0928911 | coeff: 0.0928911 | eff: 1 | fom: 4.45736 | r2int: 0.00854248 | r2eff: 0 | hits: 100 ] steps + 58 1137 [sigma: 10.9096 | error: 0.0894966 | coeff: 0.0894966 | eff: 1 | fom: 4.80191 | r2int: 0.00791757 | r2eff: 0 | hits: 87 ] steps + 59 806 [sigma: 16.2862 | error: 0.165395 | coeff: 0.165395 | eff: 1 | fom: 1.40598 | r2int: 0.0269473 | r2eff: 0 | hits: 67 ] steps + 60 945 [sigma: 23.7343 | error: 0.218953 | coeff: 0.218953 | eff: 1 | fom: 0.802278 | r2int: 0.0473096 | r2eff: 0 | hits: 76 ] steps + 61 1220 [sigma: 13.6675 | error: 0.106868 | coeff: 0.106868 | eff: 1 | fom: 3.36767 | r2int: 0.0112953 | r2eff: 0 | hits: 91 ] steps + 62 1271 [sigma: 10.6382 | error: 0.0893669 | coeff: 0.0893669 | eff: 1 | fom: 4.81585 | r2int: 0.00791639 | r2eff: 0 | hits: 114 ] steps + 63 1151 [sigma: 12.4192 | error: 0.104054 | coeff: 0.104054 | eff: 1 | fom: 3.55226 | r2int: 0.0107109 | r2eff: 0 | hits: 93 ] steps + 64 731 [sigma: 20.962 | error: 0.227607 | coeff: 0.227607 | eff: 1 | fom: 0.742431 | r2int: 0.0509825 | r2eff: 0 | hits: 63 ] steps + 65 519 [sigma: 13.0788 | error: 0.200019 | coeff: 0.200019 | eff: 1 | fom: 0.961356 | r2int: 0.0393725 | r2eff: 0 | hits: 63 ] steps + 66 885 [sigma: 12.5085 | error: 0.127988 | coeff: 0.127988 | eff: 1 | fom: 2.34795 | r2int: 0.0161811 | r2eff: 0 | hits: 82 ] steps + 67 1065 [sigma: 10.7001 | error: 0.100471 | coeff: 0.100471 | eff: 1 | fom: 3.81021 | r2int: 0.00999339 | r2eff: 0 | hits: 100 ] steps + 68 1116 [sigma: 10.2339 | error: 0.0903152 | coeff: 0.0903152 | eff: 1 | fom: 4.71525 | r2int: 0.00807274 | r2eff: 0 | hits: 97 ] steps + 69 603 [sigma: 18.9001 | error: 0.236637 | coeff: 0.236637 | eff: 1 | fom: 0.686847 | r2int: 0.0550149 | r2eff: 0 | hits: 57 ] steps + 70 536 [sigma: 21.0412 | error: 0.235535 | coeff: 0.235535 | eff: 1 | fom: 0.69329 | r2int: 0.0539359 | r2eff: 0 | hits: 36 ] steps + 71 705 [sigma: 13.5991 | error: 0.154316 | coeff: 0.154316 | eff: 1 | fom: 1.61511 | r2int: 0.0234414 | r2eff: 0 | hits: 64 ] steps + 72 824 [sigma: 20.116 | error: 0.19377 | coeff: 0.19377 | eff: 1 | fom: 1.02437 | r2int: 0.0369506 | r2eff: 0 | hits: 63 ] steps + 73 637 [sigma: 11.6912 | error: 0.15465 | coeff: 0.15465 | eff: 1 | fom: 1.60815 | r2int: 0.0235798 | r2eff: 0 | hits: 71 ] steps + 74 645 [sigma: 22.179 | error: 0.206316 | coeff: 0.206316 | eff: 1 | fom: 0.903567 | r2int: 0.0413839 | r2eff: 0 | hits: 36 ] steps + 75 3083 [sigma: 22.5201 | error: 0.0923967 | coeff: 0.0923967 | eff: 1 | fom: 4.5052 | r2int: 0.00848379 | r2eff: 0 | hits: 160 ] steps + 76 3832 [sigma: 22.7067 | error: 0.0862774 | coeff: 0.0862774 | eff: 1 | fom: 5.16692 | r2int: 0.00740869 | r2eff: 0 | hits: 212 ] steps + 77 4735 [sigma: 30.6073 | error: 0.0978189 | coeff: 0.0978189 | eff: 1 | fom: 4.01958 | r2int: 0.00952676 | r2eff: 0 | hits: 229 ] steps + 78 4054 [sigma: 22.2408 | error: 0.0811875 | coeff: 0.0811875 | eff: 1 | fom: 5.83509 | r2int: 0.00656132 | r2eff: 0 | hits: 219 ] steps + 79 3076 [sigma: 30.0943 | error: 0.122978 | coeff: 0.122978 | eff: 1 | fom: 2.54317 | r2int: 0.0150278 | r2eff: 0 | hits: 158 ] steps + 80 3927 [sigma: 28.8038 | error: 0.104762 | coeff: 0.104762 | eff: 1 | fom: 3.50445 | r2int: 0.0109213 | r2eff: 0 | hits: 204 ] steps + 81 3838 [sigma: 13.174 | error: 0.0585543 | coeff: 0.0585543 | eff: 1 | fom: 11.2178 | r2int: 0.00341682 | r2eff: 0 | hits: 291 ] steps + 82 4422 [sigma: 11.5061 | error: 0.0492325 | coeff: 0.0492325 | eff: 1 | fom: 15.868 | r2int: 0.00241707 | r2eff: 0 | hits: 358 ] steps + 83 4972 [sigma: 14.0897 | error: 0.0519446 | coeff: 0.0519446 | eff: 1 | fom: 14.2543 | r2int: 0.00269022 | r2eff: 0 | hits: 336 ] steps + 84 3804 [sigma: 26.7085 | error: 0.101988 | coeff: 0.101988 | eff: 1 | fom: 3.69766 | r2int: 0.0103523 | r2eff: 0 | hits: 211 ] steps + 85 3958 [sigma: 22.0115 | error: 0.0847068 | coeff: 0.0847068 | eff: 1 | fom: 5.36031 | r2int: 0.00714432 | r2eff: 0 | hits: 232 ] steps + 86 4105 [sigma: 12.4881 | error: 0.0527795 | coeff: 0.0527795 | eff: 1 | fom: 13.8069 | r2int: 0.00277642 | r2eff: 0 | hits: 301 ] steps + 87 4609 [sigma: 13.0336 | error: 0.0522963 | coeff: 0.0522963 | eff: 1 | fom: 14.0632 | r2int: 0.0027269 | r2eff: 0 | hits: 342 ] steps + 88 4439 [sigma: 12.054 | error: 0.0505835 | coeff: 0.0505835 | eff: 1 | fom: 15.0317 | r2int: 0.00255132 | r2eff: 0 | hits: 347 ] steps + 89 3175 [sigma: 19.3927 | error: 0.0891423 | coeff: 0.0891423 | eff: 1 | fom: 4.84015 | r2int: 0.00790905 | r2eff: 0 | hits: 213 ] steps + 90 3974 [sigma: 28.4493 | error: 0.103742 | coeff: 0.103742 | eff: 1 | fom: 3.57372 | r2int: 0.0107111 | r2eff: 0 | hits: 210 ] steps + 91 3891 [sigma: 12.2296 | error: 0.0543485 | coeff: 0.0543485 | eff: 1 | fom: 13.0212 | r2int: 0.00294388 | r2eff: 0 | hits: 299 ] steps + 92 4465 [sigma: 12.8189 | error: 0.0534032 | coeff: 0.0534032 | eff: 1 | fom: 13.4863 | r2int: 0.00284366 | r2eff: 0 | hits: 346 ] steps + 93 4490 [sigma: 13.1484 | error: 0.0544709 | coeff: 0.0544709 | eff: 1 | fom: 12.9627 | r2int: 0.00295851 | r2eff: 0 | hits: 346 ] steps + 94 4161 [sigma: 27.0779 | error: 0.0938532 | coeff: 0.0938532 | eff: 1 | fom: 4.36645 | r2int: 0.00876607 | r2eff: 0 | hits: 208 ] steps + 95 3032 [sigma: 28.887 | error: 0.119378 | coeff: 0.119378 | eff: 1 | fom: 2.69886 | r2int: 0.0141603 | r2eff: 0 | hits: 157 ] steps + 96 3460 [sigma: 21.8426 | error: 0.0908266 | coeff: 0.0908266 | eff: 1 | fom: 4.66231 | r2int: 0.00820961 | r2eff: 0 | hits: 207 ] steps + 97 4201 [sigma: 23.3662 | error: 0.0841693 | coeff: 0.0841693 | eff: 1 | fom: 5.42899 | r2int: 0.00705354 | r2eff: 0 | hits: 229 ] steps + 98 4647 [sigma: 33.3681 | error: 0.100784 | coeff: 0.100784 | eff: 1 | fom: 3.78655 | r2int: 0.0101058 | r2eff: 0 | hits: 197 ] steps + 99 3187 [sigma: 26.0412 | error: 0.101729 | coeff: 0.101729 | eff: 1 | fom: 3.71653 | r2int: 0.010282 | r2eff: 0 | hits: 155 ] steps + 100 14516 [sigma: 27.3208 | error: 0.0480953 | coeff: 0.0480953 | eff: 1 | fom: 16.6273 | r2int: 0.00230962 | r2eff: 0 | hits: 653 ] steps + 101 18071 [sigma: 28.3232 | error: 0.0436888 | coeff: 0.0436888 | eff: 1 | fom: 20.1505 | r2int: 0.00190625 | r2eff: 0 | hits: 777 ] steps + 102 19715 [sigma: 31.6306 | error: 0.045066 | coeff: 0.045066 | eff: 1 | fom: 18.2364 | r2int: 0.00202837 | r2eff: 0 | hits: 789 ] steps + 103 19248 [sigma: 30.9783 | error: 0.0441641 | coeff: 0.0441641 | eff: 1 | fom: 18.9888 | r2int: 0.00194787 | r2eff: 0 | hits: 753 ] steps + 104 14509 [sigma: 27.161 | error: 0.0474326 | coeff: 0.0474326 | eff: 1 | fom: 16.462 | r2int: 0.00224634 | r2eff: 0 | hits: 642 ] steps + 105 19554 [sigma: 30.3887 | error: 0.0441209 | coeff: 0.0441209 | eff: 1 | fom: 19.026 | r2int: 0.00194423 | r2eff: 0 | hits: 806 ] steps + 106 22913 [sigma: 32.7438 | error: 0.0432745 | coeff: 0.0432745 | eff: 1 | fom: 19.7775 | r2int: 0.00187064 | r2eff: 0 | hits: 917 ] steps + 107 25372 [sigma: 35.7507 | error: 0.0443351 | coeff: 0.0443351 | eff: 1 | fom: 18.1696 | r2int: 0.00196362 | r2eff: 0 | hits: 990 ] steps + 108 25207 [sigma: 31.708 | error: 0.0392378 | coeff: 0.0392378 | eff: 1 | fom: 23.197 | r2int: 0.00153802 | r2eff: 0 | hits: 973 ] steps + 109 18199 [sigma: 31.3526 | error: 0.0479907 | coeff: 0.0479907 | eff: 1 | fom: 15.507 | r2int: 0.00230014 | r2eff: 0 | hits: 776 ] steps + 110 19639 [sigma: 33.2694 | error: 0.0473425 | coeff: 0.0473425 | eff: 1 | fom: 15.9345 | r2int: 0.00223844 | r2eff: 0 | hits: 781 ] steps + 111 23658 [sigma: 31.4029 | error: 0.0409983 | coeff: 0.0409983 | eff: 1 | fom: 21.2476 | r2int: 0.0016791 | r2eff: 0 | hits: 954 ] steps + 112 24077 [sigma: 28.8991 | error: 0.0384088 | coeff: 0.0384088 | eff: 1 | fom: 24.2091 | r2int: 0.0014738 | r2eff: 0 | hits: 1024 ] steps + 113 25233 [sigma: 30.7123 | error: 0.0380833 | coeff: 0.0380833 | eff: 1 | fom: 24.6248 | r2int: 0.00144886 | r2eff: 0 | hits: 979 ] steps + 114 18017 [sigma: 30.0311 | error: 0.045373 | coeff: 0.045373 | eff: 1 | fom: 17.3479 | r2int: 0.00205593 | r2eff: 0 | hits: 741 ] steps + 115 18352 [sigma: 27.8754 | error: 0.0423398 | coeff: 0.0423398 | eff: 1 | fom: 19.9225 | r2int: 0.00179035 | r2eff: 0 | hits: 777 ] steps + 116 21495 [sigma: 28.2773 | error: 0.0403762 | coeff: 0.0403762 | eff: 1 | fom: 21.9074 | r2int: 0.00162851 | r2eff: 0 | hits: 942 ] steps + 117 24898 [sigma: 31.3589 | error: 0.0391255 | coeff: 0.0391255 | eff: 1 | fom: 23.3304 | r2int: 0.00152922 | r2eff: 0 | hits: 965 ] steps + 118 24617 [sigma: 31.0869 | error: 0.0391475 | coeff: 0.0391475 | eff: 1 | fom: 23.3041 | r2int: 0.00153093 | r2eff: 0 | hits: 961 ] steps + 119 18472 [sigma: 30.529 | error: 0.0455323 | coeff: 0.0455323 | eff: 1 | fom: 17.2268 | r2int: 0.00207045 | r2eff: 0 | hits: 759 ] steps + 120 14245 [sigma: 26.2139 | error: 0.0468081 | coeff: 0.0468081 | eff: 1 | fom: 16.3004 | r2int: 0.00218761 | r2eff: 0 | hits: 647 ] steps + 121 19034 [sigma: 30.8833 | error: 0.0457198 | coeff: 0.0457198 | eff: 1 | fom: 16.4966 | r2int: 0.00208767 | r2eff: 0 | hits: 794 ] steps + 122 20690 [sigma: 32.654 | error: 0.0453317 | coeff: 0.0453317 | eff: 1 | fom: 16.7802 | r2int: 0.00205248 | r2eff: 0 | hits: 825 ] steps + 123 17916 [sigma: 29.08 | error: 0.0447466 | coeff: 0.0447466 | eff: 1 | fom: 17.2219 | r2int: 0.00199963 | r2eff: 0 | hits: 760 ] steps + 124 14756 [sigma: 28.3773 | error: 0.0476915 | coeff: 0.0476915 | eff: 1 | fom: 15.1608 | r2int: 0.00227078 | r2eff: 0 | hits: 615 ] steps ============================================================ closed file mfd_tl_NumberOfSteps.out for output ============================================================ opened file mfd_tg_NumberOfSteps.out for output ============================================================ - 0 38.000000 steps - 1 21.000000 steps - 2 21.000000 steps + 0 13.000000 steps + 1 58.000000 steps + 2 81.000000 steps 3 41.000000 steps - 4 62.000000 steps - 5 47.000000 steps - 6 116.000000 steps - 7 70.000000 steps - 8 70.000000 steps - 9 116.000000 steps - 10 104.000000 steps - 11 48.000000 steps - 12 128.000000 steps - 13 87.000000 steps - 14 109.000000 steps - 15 77.000000 steps - 16 42.000000 steps - 17 72.000000 steps - 18 45.000000 steps - 19 63.000000 steps - 20 17.000000 steps - 21 114.000000 steps - 22 24.000000 steps - 23 39.000000 steps - 24 34.000000 steps - 25 20.000000 steps - 26 92.000000 steps - 27 101.000000 steps - 28 94.000000 steps - 29 140.000000 steps - 30 145.000000 steps - 31 495.000000 steps - 32 358.000000 steps - 33 359.000000 steps - 34 211.000000 steps - 35 209.000000 steps - 36 207.000000 steps - 37 462.000000 steps - 38 370.000000 steps - 39 149.000000 steps - 40 175.000000 steps - 41 319.000000 steps - 42 294.000000 steps - 43 156.000000 steps - 44 116.000000 steps - 45 120.000000 steps - 46 156.000000 steps - 47 187.000000 steps - 48 142.000000 steps - 49 136.000000 steps - 50 297.000000 steps - 51 618.000000 steps - 52 431.000000 steps - 53 266.000000 steps - 54 529.000000 steps - 55 643.000000 steps - 56 720.000000 steps - 57 1158.000000 steps - 58 977.000000 steps - 59 673.000000 steps - 60 539.000000 steps - 61 1205.000000 steps - 62 1316.000000 steps - 63 970.000000 steps - 64 562.000000 steps - 65 477.000000 steps - 66 843.000000 steps - 67 1091.000000 steps - 68 1051.000000 steps - 69 488.000000 steps - 70 522.000000 steps - 71 514.000000 steps - 72 609.000000 steps - 73 651.000000 steps - 74 474.000000 steps - 75 2997.000000 steps - 76 3702.000000 steps - 77 3755.000000 steps - 78 3637.000000 steps - 79 2596.000000 steps - 80 3384.000000 steps - 81 3950.000000 steps - 82 4039.000000 steps - 83 4020.000000 steps - 84 4264.000000 steps - 85 3643.000000 steps - 86 4058.000000 steps - 87 4274.000000 steps - 88 4587.000000 steps - 89 4378.000000 steps - 90 4149.000000 steps - 91 3935.000000 steps - 92 4468.000000 steps - 93 3991.000000 steps - 94 3711.000000 steps - 95 2632.000000 steps - 96 3502.000000 steps - 97 4170.000000 steps - 98 3574.000000 steps - 99 3056.000000 steps - 100 14145.000000 steps - 101 18699.000000 steps - 102 18655.000000 steps - 103 20429.000000 steps - 104 14900.000000 steps - 105 18037.000000 steps - 106 22221.000000 steps - 107 22897.000000 steps - 108 23972.000000 steps - 109 20314.000000 steps - 110 19817.000000 steps - 111 24046.000000 steps - 112 23097.000000 steps - 113 23080.000000 steps - 114 19665.000000 steps - 115 20974.000000 steps - 116 25503.000000 steps - 117 23751.000000 steps - 118 25192.000000 steps - 119 17766.000000 steps - 120 15062.000000 steps - 121 17697.000000 steps - 122 19375.000000 steps - 123 19370.000000 steps - 124 14229.000000 steps + 4 32.000000 steps + 5 43.000000 steps + 6 52.000000 steps + 7 48.000000 steps + 8 73.000000 steps + 9 28.000000 steps + 10 70.000000 steps + 11 87.000000 steps + 12 33.000000 steps + 13 88.000000 steps + 14 112.000000 steps + 15 60.000000 steps + 16 125.000000 steps + 17 80.000000 steps + 18 26.000000 steps + 19 18.000000 steps + 20 76.000000 steps + 21 70.000000 steps + 22 44.000000 steps + 23 20.000000 steps + 24 91.000000 steps + 25 89.000000 steps + 26 242.000000 steps + 27 356.000000 steps + 28 85.000000 steps + 29 120.000000 steps + 30 207.000000 steps + 31 486.000000 steps + 32 360.000000 steps + 33 204.000000 steps + 34 344.000000 steps + 35 185.000000 steps + 36 386.000000 steps + 37 290.000000 steps + 38 418.000000 steps + 39 177.000000 steps + 40 130.000000 steps + 41 272.000000 steps + 42 401.000000 steps + 43 430.000000 steps + 44 131.000000 steps + 45 169.000000 steps + 46 136.000000 steps + 47 128.000000 steps + 48 225.000000 steps + 49 140.000000 steps + 50 600.000000 steps + 51 523.000000 steps + 52 1018.000000 steps + 53 699.000000 steps + 54 667.000000 steps + 55 575.000000 steps + 56 995.000000 steps + 57 1129.000000 steps + 58 1137.000000 steps + 59 806.000000 steps + 60 945.000000 steps + 61 1220.000000 steps + 62 1271.000000 steps + 63 1151.000000 steps + 64 731.000000 steps + 65 519.000000 steps + 66 885.000000 steps + 67 1065.000000 steps + 68 1116.000000 steps + 69 603.000000 steps + 70 536.000000 steps + 71 705.000000 steps + 72 824.000000 steps + 73 637.000000 steps + 74 645.000000 steps + 75 3083.000000 steps + 76 3832.000000 steps + 77 4735.000000 steps + 78 4054.000000 steps + 79 3076.000000 steps + 80 3927.000000 steps + 81 3838.000000 steps + 82 4422.000000 steps + 83 4972.000000 steps + 84 3804.000000 steps + 85 3958.000000 steps + 86 4105.000000 steps + 87 4609.000000 steps + 88 4439.000000 steps + 89 3175.000000 steps + 90 3974.000000 steps + 91 3891.000000 steps + 92 4465.000000 steps + 93 4490.000000 steps + 94 4161.000000 steps + 95 3032.000000 steps + 96 3460.000000 steps + 97 4201.000000 steps + 98 4647.000000 steps + 99 3187.000000 steps + 100 14516.000000 steps + 101 18071.000000 steps + 102 19715.000000 steps + 103 19248.000000 steps + 104 14509.000000 steps + 105 19554.000000 steps + 106 22913.000000 steps + 107 25372.000000 steps + 108 25207.000000 steps + 109 18199.000000 steps + 110 19639.000000 steps + 111 23658.000000 steps + 112 24077.000000 steps + 113 25233.000000 steps + 114 18017.000000 steps + 115 18352.000000 steps + 116 21495.000000 steps + 117 24898.000000 steps + 118 24617.000000 steps + 119 18472.000000 steps + 120 14245.000000 steps + 121 19034.000000 steps + 122 20690.000000 steps + 123 17916.000000 steps + 124 14756.000000 steps ============================================================ closed file mfd_tg_NumberOfSteps.out for output ============================================================ diff --git a/examples/extended/parameterisations/Par01/examplePar01.out b/examples/extended/parameterisations/Par01/examplePar01.out index 92d12fc46d..3592392916 100644 --- a/examples/extended/parameterisations/Par01/examplePar01.out +++ b/examples/extended/parameterisations/Par01/examplePar01.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -55,6 +55,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -107,6 +109,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -134,7 +137,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -185,8 +188,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -668,6 +671,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1326,7 +1334,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 0 57.8 474 1.03e+03 0.511 0 0 0 Crystal initStep 1 53.7 476 1.02e+03 0.223 0 8.74 8.74 Crystal compt 2 56.6 475 1.02e+03 0.223 0 3.13 11.9 Crystal Rayl - 3 57.5 475 1.02e+03 0.223 0 0.977 12.9 Crystal Rayl + 3 57.5 475 1.02e+03 0.223 0 0.976 12.8 Crystal Rayl 4 59.8 474 1.02e+03 0 0.036 2.48 15.3 Crystal phot ********************************************************************************************************* @@ -1398,7 +1406,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 0 58.4 472 1.03e+03 0.388 0 0 0 Crystal initStep 1 57.5 473 1.03e+03 0.216 0 3.24 3.24 Crystal compt 2 57.6 474 1.03e+03 0.216 0 0.502 3.75 Crystal Rayl - 3 58.4 477 1.03e+03 0 0.036 3.24 6.98 Crystal phot + 3 58.4 477 1.03e+03 0 0.036 3.23 6.98 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 39, Parent ID = 35 @@ -1425,7 +1433,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 1 0.986 650 1.1e+03 1.56 0 1.85 1.85 Crystal CoupledTransportation 2 13.6 620 1.09e+03 0.569 0 33.2 35 Crystal compt 3 35.1 611 1.01e+03 0.195 0 79.4 114 Crystal compt - 4 33.7 616 1.02e+03 0 0.00501 6.28 121 Crystal phot + 4 33.7 616 1.02e+03 0 0.00501 6.27 121 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 42, Parent ID = 21 @@ -1458,7 +1466,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 0.207 652 1.1e+03 0.147 0 0 0 Crystal initStep - 1 0.286 652 1.1e+03 0 0.00572 0.589 0.589 Crystal phot + 1 0.286 652 1.1e+03 0 0.00572 0.588 0.588 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 43, Parent ID = 20 @@ -1565,7 +1573,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -0.436 660 1.1e+03 0.0628 0 0 0 Crystal initStep - 1 -0.449 660 1.1e+03 0 0.036 0.0952 0.0952 Crystal phot + 1 -0.449 660 1.1e+03 0 0.036 0.0953 0.0953 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 51, Parent ID = 16 @@ -1582,15 +1590,15 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -0.409 660 1.1e+03 0.275 0 0 0 Crystal initStep 1 -1.8 650 1.1e+03 0.275 0 10.3 10.3 Crystal CoupledTransportation - 2 -3.27 640 1.09e+03 0.275 0 10.9 21.3 Crystal Rayl - 3 -3.86 636 1.09e+03 0 0.0332 4.04 25.3 Crystal phot + 2 -3.27 640 1.09e+03 0.275 0 10.9 21.2 Crystal Rayl + 3 -3.85 636 1.09e+03 0 0.0332 4.04 25.3 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 52, Parent ID = 15 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.86 636 1.09e+03 0.242 0 0 0 Crystal initStep + 0 -3.85 636 1.09e+03 0.242 0 0 0 Crystal initStep 1 -3.87 636 1.09e+03 0 0.242 0.244 0.244 Crystal eIoni ********************************************************************************************************* @@ -1657,7 +1665,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 0 -9.45 573 1.09e+03 0.511 0 0 0 Crystal initStep 1 0 586 1.1e+03 0.511 0 19.3 19.3 Crystal CoupledTransportation 2 10.3 600 1.12e+03 0.511 0 21 40.3 Crystal CoupledTransportation - 3 10.6 600 1.12e+03 0 0.036 0.639 41 Crystal phot + 3 10.6 600 1.12e+03 0 0.036 0.638 41 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 62, Parent ID = 57 @@ -1678,7 +1686,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 3 50 519 1.07e+03 1.48 0 48 85.2 Crystal CoupledTransportation 4 51.1 518 1.07e+03 0.321 0 1.51 86.7 Crystal compt 5 50 517 1.07e+03 0.321 0 5.4 92.1 Crystal CoupledTransportation - 6 49.8 516 1.07e+03 0 0.036 0.783 92.9 Crystal phot + 6 49.8 516 1.07e+03 0 0.036 0.784 92.9 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 64, Parent ID = 56 @@ -1686,7 +1694,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 49.8 516 1.07e+03 0.285 0 0 0 Crystal initStep - 1 49.8 516 1.07e+03 0.218 0.0667 0.0904 0.0904 Crystal msc + 1 49.8 516 1.07e+03 0.218 0.0667 0.0905 0.0905 Crystal msc 2 49.8 516 1.07e+03 0 0.218 0.209 0.299 Crystal eIoni ********************************************************************************************************* @@ -1725,7 +1733,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -6.8 617 1.09e+03 0.138 0 0 0 Crystal initStep - 1 -7 617 1.09e+03 0 0.036 0.284 0.284 Crystal phot + 1 -7 617 1.09e+03 0 0.036 0.283 0.283 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 66, Parent ID = 65 @@ -1741,7 +1749,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -0.454 658 1.1e+03 0.0931 0 0 0 Crystal initStep - 1 -0.448 659 1.1e+03 0 0.036 0.356 0.356 Crystal phot + 1 -0.448 659 1.1e+03 0 0.036 0.357 0.357 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 67, Parent ID = 13 @@ -1848,7 +1856,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 40.5 639 1.04e+03 0.0386 0 0 0 Crystal initStep - 1 40.6 639 1.04e+03 0 0.036 0.115 0.115 Crystal phot + 1 40.6 639 1.04e+03 0 0.036 0.114 0.114 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 77, Parent ID = 76 @@ -2108,15 +2116,15 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -4.26 656 1.1e+03 0.0953 0 0 0 Crystal initStep - 1 -6.57 657 1.1e+03 0 0.00122 2.81 2.81 Crystal phot + 1 -6.58 657 1.1e+03 0 0.00122 2.82 2.82 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 105, Parent ID = 104 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -6.57 657 1.1e+03 0.0941 0 0 0 Crystal initStep - 1 -6.57 657 1.1e+03 0 0.0941 0.0547 0.0547 Crystal eIoni + 0 -6.58 657 1.1e+03 0.0941 0 0 0 Crystal initStep + 1 -6.58 657 1.1e+03 0 0.0941 0.0547 0.0547 Crystal eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 99, Parent ID = 7 @@ -2124,7 +2132,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -2.77 655 1.1e+03 0.143 0 0 0 Crystal initStep - 1 -3.82 656 1.1e+03 0 0.0332 1.86 1.86 Crystal phot + 1 -3.82 656 1.1e+03 0 0.0332 1.85 1.85 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 106, Parent ID = 99 @@ -2147,8 +2155,8 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 5 -32.8 629 1.12e+03 0.381 0 16.7 51.6 Crystal Rayl 6 -36.2 620 1.12e+03 0.231 0 9.94 61.5 Crystal compt 7 -37.5 620 1.11e+03 0.183 0 4.15 65.6 Crystal compt - 8 -37.2 620 1.11e+03 0.18 0 0.878 66.5 Crystal compt - 9 -34.1 623 1.11e+03 0 0.036 5.74 72.3 Crystal phot + 8 -37.2 620 1.11e+03 0.18 0 0.877 66.5 Crystal compt + 9 -34.1 623 1.11e+03 0 0.036 5.73 72.2 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 113, Parent ID = 98 @@ -2238,7 +2246,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -1.69 656 1.09e+03 0.194 0 0 0 Crystal initStep - 1 -1.96 655 1.1e+03 0 0.036 0.686 0.686 Crystal phot + 1 -1.96 655 1.1e+03 0 0.036 0.685 0.685 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 116, Parent ID = 96 @@ -2877,7 +2885,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -0.123 -280 934 0.0111 0 0 0 WorldPhysical initStep 1 -0.116 -300 1e+03 0.0111 0 68.5 68.5 Crystal CoupledTransportation - 2 -0.116 -300 1e+03 0 0.00572 0.000964 68.5 Crystal phot + 2 -0.116 -300 1e+03 0 0.00572 0.000965 68.5 Crystal phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 diff --git a/examples/extended/parameterisations/Par02/History b/examples/extended/parameterisations/Par02/History index f5d9f9ad31..5ba4fdac39 100644 --- a/examples/extended/parameterisations/Par02/History +++ b/examples/extended/parameterisations/Par02/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-04 I. Hrivnacova (expar02-V11-00-01) +- Fixed Doxygen file descriptions + ## 2021-12-10 Ben Morgan (expar02-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/parameterisations/Par02/examplePar02.out b/examples/extended/parameterisations/Par02/examplePar02.out index c46648c5a7..cd5cb24311 100644 --- a/examples/extended/parameterisations/Par02/examplePar02.out +++ b/examples/extended/parameterisations/Par02/examplePar02.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -31,10 +31,10 @@ Geometry loaded from file .......Par02FullDetector.gdml ecal !!! -tracker !!! - ecal !!! +tracker !!! + ecal !!! ecal !!! @@ -63,6 +63,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) diff --git a/examples/extended/parameterisations/Par02/include/Par02DetectorParametrisation.hh b/examples/extended/parameterisations/Par02/include/Par02DetectorParametrisation.hh index d46bddfe70..ffe290a718 100644 --- a/examples/extended/parameterisations/Par02/include/Par02DetectorParametrisation.hh +++ b/examples/extended/parameterisations/Par02/include/Par02DetectorParametrisation.hh @@ -25,7 +25,7 @@ // // /// \file Par02DetectorParametrisation.hh -/// \brief Definition of the Par02DetectorParameterisation class +/// \brief Definition of the Par02DetectorParametrisation class #ifndef PAR02_DETECTOR_PARAMETRSIATION_H #define PAR02_DETECTOR_PARAMETRSIATION_H diff --git a/examples/extended/parameterisations/Par03/History b/examples/extended/parameterisations/Par03/History index c775a2c165..757dc27b89 100644 --- a/examples/extended/parameterisations/Par03/History +++ b/examples/extended/parameterisations/Par03/History @@ -5,6 +5,10 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-09-13 Anna Zaborowska (expar03-V11-00-01) +- Start class member functions with uppercase + to match guidelines + ## 2021-12-10 Ben Morgan (expar03-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/parameterisations/Par03/Par03.out b/examples/extended/parameterisations/Par03/Par03.out index 78e7db866b..8fb951e446 100644 --- a/examples/extended/parameterisations/Par03/Par03.out +++ b/examples/extended/parameterisations/Par03/Par03.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -107,7 +109,6 @@ Checking overlaps for volume Detector:99 (G4Tubs) ... OK! e+ : fastSimProcess_massGeom[geom:World] e- : fastSimProcess_massGeom[geom:World] gamma : fastSimProcess_massGeom[geom:World] -Set file name: Par03_fastsim_100events.root ==================================================================== HADRONIC PROCESSES SUMMARY (verbose level 1) @@ -244,6 +245,11 @@ Set file name: Par03_fastsim_100events.root Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -513,8 +519,6 @@ Par03EMShowerModel: Gaussian distribution (transverse plane): mu = 0, sigma = 9.87274 mm Gamma distribution (along shower axis): alpha = 4.3593, beta = 0.5, max depth = 30 X0 Number of created energy deposits: 100 -Set file name: Par03_fastsimModified_100events.root Model model inactivated. -Set file name: Par03_fullsim_100events.root Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/parameterisations/Par03/include/Par03EMShowerModel.hh b/examples/extended/parameterisations/Par03/include/Par03EMShowerModel.hh index 5189971142..e1a49f6bb6 100644 --- a/examples/extended/parameterisations/Par03/include/Par03EMShowerModel.hh +++ b/examples/extended/parameterisations/Par03/include/Par03EMShowerModel.hh @@ -123,13 +123,13 @@ class Par03EMShowerModel : public G4VFastSimulationModel private: /// Gamma distribution - inline G4double gamma(G4double x, G4double alpha, G4double beta) + inline G4double Gamma(G4double x, G4double alpha, G4double beta) { return (std::pow(beta, alpha) / std::tgamma(alpha) * std::pow(x, alpha - 1) * std::exp(-beta * x)); } /// Gaussian distribution - inline G4double gaussian(G4double x, G4double sigma = 1, G4double x0 = 0) + inline G4double Gaussian(G4double x, G4double sigma = 1, G4double x0 = 0) { G4double tmp = (x - x0) / sigma; return (1.0 / (std::sqrt(2 * CLHEP::pi) * sigma)) * std::exp(-tmp * tmp / 2); diff --git a/examples/extended/parameterisations/Par03/src/Par03EMShowerModel.cc b/examples/extended/parameterisations/Par03/src/Par03EMShowerModel.cc index 702d6d2ef0..30bba84e87 100644 --- a/examples/extended/parameterisations/Par03/src/Par03EMShowerModel.cc +++ b/examples/extended/parameterisations/Par03/src/Par03EMShowerModel.cc @@ -160,13 +160,13 @@ void Par03EMShowerModel::DoIt(const G4FastTrack& aFastTrack, // then get random numbers from uniform distribution for azimuthal angle, and // from Gaussian for radius G4ThreeVector position; - G4double gammaMax = gamma((fAlpha - 1) / fBeta, fAlpha, fBeta); + G4double gammaMax = Gamma((fAlpha - 1) / fBeta, fAlpha, fBeta); G4int generatedHits = 0; while(generatedHits < fNbOfHits) { G4double random1 = G4UniformRand() * fLongMaxDepth; G4double random2 = G4UniformRand() * gammaMax; - if(gamma(random1, fAlpha, fBeta) >= random2) + if(Gamma(random1, fAlpha, fBeta) >= random2) { // Generate corresponding rho (phi) from Gaussian (flat) distribution G4double phiPosition = G4UniformRand() * 2 * CLHEP::pi; diff --git a/examples/extended/parameterisations/Par04/.README.txt b/examples/extended/parameterisations/Par04/.README.txt index 3d81f658ab..9fcb3912d5 100644 --- a/examples/extended/parameterisations/Par04/.README.txt +++ b/examples/extended/parameterisations/Par04/.README.txt @@ -1,20 +1,17 @@ -------------------------------------------------------------------- +///\file "parameterisations/Par03/.README.txt" +///\brief Example Par04 README page - ========================================================= - Geant4 - an Object-Oriented Toolkit for Simulation in HEP - ========================================================= - - Example Par04 - ------------- +/*! \page ExamplePar04 Example Par04 This example demonstrates how to use the Machine Learning (ML) inference to create energy deposits as a fast simulation model using -ONNX runtime - and LWTNN libraries. +ONNX runtime, + LWTNN, and + LibTorch libraries. The model used in this example was trained externally (in Python) on data from this examples' full simulation and can be applied to perform fast simulation. - The python scripts are availbale in the training folder. + The python scripts are available in the training folder. The geometry used in the example is a cylindrical setup of layers: tungsten absorber and silicon as the active material. 3D readout geometry (cylindrical) @@ -32,7 +29,7 @@ Input macro can specify which layer is considered an active layer (sensitive detector is attached to it). For fast simulation both layers should be marked - as sensitive. It is connected to the wway the deposits are created: position is + as sensitive. It is connected to the way the deposits are created: position is centre of the layer, which may often fall within the absorber (which is thicker than the active material). In a realistic detector setup, the positions used in fast simulation would be calculated properly, to deposit energy within the active @@ -73,7 +70,7 @@ ## 6. ML Inference - - Par04MLFastSimModel : model used for parametrisation of źelectrons, positrons, + - Par04MLFastSimModel : model used for parametrisation of electrons, positrons, and gammas. Energy is deposited and distributed according to inferred values from the ML model. This class triggers the inference setup, asks for values, @@ -91,8 +88,8 @@ - Par04InferenceInterface : is a base class that allows to read in the ML model, configure and execute inference. - - Par04OnnxInference and Par04LWTNNInference : inference library specific classes that inherit - from the base class Par04InferenceInterface. + - Par04OnnxInference and Par04LWTNNInference and Par04TorchInference : inference library specific + classes that inherit from the base class Par04InferenceInterface. ## 7. Output @@ -102,41 +99,67 @@ The macro file examplePar04.mac is used to run full simulation. It will simulate 100 events, for single 10 GeV electron beams. - If CMake is able to find inference libraries (lwtnn and/or ONNX Runtime), a configuration - macro will be available for that library (examplePar04_lwtnn.mac and/or examplePar04_onnx.mac). - It will use a trained model to run inference and create showers in the detector by directly - depositing energy. + If CMake is able to find inference libraries (LWTNN and/or ONNX Runtime and/or LibTorch), a configuration + macro will be available for that library (examplePar04_lwtnn.mac and/or examplePar04_onnx.mac + and/or examplePar04_torch.mac). It will use a trained model to run inference and create showers + in the detector by directly depositing energy. ## 8. How to build and run the example -- LWTNN and ONNX Runtime are available on LCG. In order to use them, one can setup the envirnment: - % source /cvmfs/sft.cern.ch/lcg/views/LCG_100/x86_64-centos7-gcc10-opt/setup.sh +- LWTNN, ONNX Runtime, and LibTorch are available on LCG. In order to use them, you can set a `CMAKE_PREFIX_PATH`: +\verbatim + % source /cvmfs/sft.cern.ch/lcg/contrib/gcc/11.3.0/x86_64-centos7/setup.sh + % cmake -DCMAKE_PREFIX_PATH="/cvmfs/sft.cern.ch/lcg/releases/LCG_102b/lwtnn/2.11.1/x86_64-centos7-gcc11-opt/;/cvmfs/sft.cern.ch/lcg/releases/LCG_102b/onnxruntime/1.11.1/x86_64-centos7-gcc11-opt/;/cvmfs/sft.cern.ch/lcg/releases/LCG_102b/torch/1.11.0/x86_64-centos7-gcc11-opt/lib/python3.9/site-packages/torch/" +\endverbatim -- Compile and link to generate the executable (in your CMAKE build directory): - % cmake - % make +- Compile and link to generate the executable (in your CMake build directory): +\verbatim +% cmake +% make +\endverbatim - Execute the application (in batch mode): - % ./examplePar04 -m examplePar04.mac +\verbatim +% ./examplePar04 -m examplePar04.mac +\endverbatim which produces two root file for full simulation. - Execute the application (in interactive mode): - % ./examplePar04 -i -m vis.mac +\verbatim +% ./examplePar04 -i -m vis.mac +\endverbatim which allows to visualize hits (from full simulation). - If ONNX Runtime is available: - % ./examplePar04 -m examplePar04_onnx.mac +\verbatim +% ./examplePar04 -m examplePar04_onnx.mac +\endverbatim For interactive mode with visualization: - % ./examplePar04 -i -m vis_onnx.mac +\verbatim +% ./examplePar04 -i -m vis_onnx.mac +\endverbatim - If LWTNN is available: - % ./examplePar04 -m examplePar04_lwtnn.mac +\verbatim +% ./examplePar04 -m examplePar04_lwtnn.mac +\endverbatim For interactive mode with visualization: - % ./examplePar04 -i -m vis_lwtnn.mac +\verbatim +% ./examplePar04 -i -m vis_lwtnn.mac +\endverbatim + +- If LibTorch is available: +\verbatim +% ./examplePar04 -m examplePar04_torch.mac +\endverbatim + For interactive mode with visualization: +\verbatim +% ./examplePar04 -i -m vis_torch.mac +\endverbatim By default, CMake will attempt to build fast simulation with ONNX Runtime and LWTNN. However, if none of those libraries is found, it will proceed with full simulation only. The search can be switched - off manually switching CMake flag INFERENCE_LIB to OFF (-DINFERENCE_LIB=OFF) + off manually switching CMake flag `INFERENCE_LIB` to `OFF` (`-DINFERENCE_LIB=OFF`) ## 9. Macros @@ -144,11 +167,15 @@ It can be used to visualize full simulation. vis_onnx.mac - Allows to run visualization with ONNX Runtime inference. Pass it to the example in interactive mode - ("-i" passed to the executable). It contains ecessary settings of the inference, and it treats full + ("-i" passed to the executable). It contains necessary settings of the inference, and it treats full calorimeter as sensitive material (due to deposition of hits regardless of the volume). vis_lwtnn.mac - Allows to run visualization with LWTNN inference. Pass it to the example in interactive mode - ("-i" passed to the executable). It contains ecessary settings of the inference, and it treats full + ("-i" passed to the executable). It contains necessary settings of the inference, and it treats full + calorimeter as sensitive material (due to deposition of hits regardless of the volume). + + vis_torch.mac - Allows to run visualization with LibTorch inference. Pass it to the example in interactive mode + ("-i" passed to the executable). It contains necessary settings of the inference, and it treats full calorimeter as sensitive material (due to deposition of hits regardless of the volume). examplePar04.mac - Runs full simulation. It will run 100 events with single electrons, 10 GeV and @@ -160,91 +187,70 @@ examplePar04_lwtnn.mac - Available only if LWTNN is found by CMake. Runs fast simulation with a NN stored in json file. + examplePar04_torch.mac - Available only if LibTorch is found by CMake. Runs fast simulation with + a NN stored in pt file. + ## 10. UI commands UI commands useful in this example: - activation/disactivation of the fast simulation model: - /param/ActivateModel inferenceModel - /param/InActivateModel inferenceModel +\verbatim +/param/ActivateModel inferenceModel +/param/InActivateModel inferenceModel +\endverbatim - particle gun commands - /gun/particle e- - /gun/energy 10 GeV - /gun/direction 0 1 0 - /gun/position 0 0 0 +\verbatim +/gun/particle e- +/gun/energy 10 GeV +/gun/direction 0 1 0 +/gun/position 0 0 0 +\endverbatim UI commands defined in this example: - detector settings - /Par04/detector/setDetectorInnerRadius 80 cm - /Par04/detector/setDetectorLength 2 m - /Par04/detector/setNbOfLayers 90 - /Par04/detector/setAbsorber 0 G4_W 1.4 mm false - /Par04/detector/setAbsorber 1 G4_Si 0.3 mm true +\verbatim +/Par04/detector/setDetectorInnerRadius 80 cm +/Par04/detector/setDetectorLength 2 m +/Par04/detector/setNbOfLayers 90 +/Par04/detector/setAbsorber 0 G4_W 1.4 mm false +/Par04/detector/setAbsorber 1 G4_Si 0.3 mm true +\endverbatim - readout mesh - /Par04/mesh/setSizeOfRhoCells 2.325 mm - /Par04/mesh/setSizeOfZCells 3.4 mm - /Par04/mesh/setNbOfRhoCells 18 - /Par04/mesh/setNbOfPhiCells 50 - /Par04/mesh/setNbOfZCells 45 +\verbatim +/Par04/mesh/setSizeOfRhoCells 2.325 mm +/Par04/mesh/setSizeOfZCells 3.4 mm +/Par04/mesh/setNbOfRhoCells 18 +/Par04/mesh/setNbOfPhiCells 50 +/Par04/mesh/setNbOfZCells 45 +\endverbatim - inference setup - /Par04/inference/setSizeLatentVector 10 - /Par04/inference/setSizeConditionVector 4 - /Par04/inference/setModelPathName MLModels/Generator.onnx - /Par04/inference/setProfileFlag 0 - /Par04/inference/setOptimizationFlag 0 - /Par04/inference/setInferenceLibrary ONNX - /Par04/inference/setSizeOfRhoCells 2.325 mm - /Par04/inference/setSizeOfZCells 3.4 mm - /Par04/inference/setNbOfRhoCells 18 - /Par04/inference/setNbOfPhiCells 50 - /Par04/inference/setNbOfZCells 45 +\verbatim +/Par04/inference/setSizeLatentVector 10 +/Par04/inference/setSizeConditionVector 4 +/Par04/inference/setModelPathName MLModels/Generator.onnx +/Par04/inference/setProfileFlag 0 +/Par04/inference/setOptimizationFlag 0 +/Par04/inference/setInferenceLibrary ONNX +/Par04/inference/setSizeOfRhoCells 2.325 mm +/Par04/inference/setSizeOfZCells 3.4 mm +/Par04/inference/setNbOfRhoCells 18 +/Par04/inference/setNbOfPhiCells 50 +/Par04/inference/setNbOfZCells 45 +\endverbatim ## 11. Python scripts for training The scripts available in the training folder were used to train - the VAE model of this example. + the VAE model of this example. More details can be found in + training/README. - - model: defines the VAE model as a class which contains the architecture, - the loss function and the training function. - - - utils: defines the data loading and preprocessing function and returns - the preprocessed array of shower energies and the condition arrays of energy, - angle and geometry. The input is expected to be in local directory 'detector_*'. - In this example, the model is trained on 2 detector geometries and the input - directories are 'detector_SiW' and 'detector_SciPb'. Each directory contains the - HDF5 files for each primary particle energy and angle. - - - train: defines data loading parameters and calls the data preprocessing function. - It defines the model parameters and instantiates the VAE model, performs the training - and then coverts the model into an ONNX format. - - A history object is returned from the training function of the VAE. The history is a callback - object registered during the training which records metrics for each epoch such as the loss. - The user can list the metrics collected in the history object using: - - % print(history.history.keys()) - - The data collected in the history object can be used to create plots such as the loss function - as function of the epochs. If the loss metric collected in the history object is called loss, - then to plot it using for example the matplotlib library: - - % matplotlib.pyplot.plot(history.history['loss']) - - The traing function can also generate intermediate files representing checkpoints of the model - that can be used for validation purposes. These checkpoints are generated if the early stopping flag - of the training is off, which means to train the model for the predefined number of epochs. The weights - of the model are saved every 100 epochs. - - After the training, the model (only the decoder part) is saved as an HDF5 file and then is converted - into an ONNX format. The final output model called Generator.onnx can be used to perform the inference - in this example. - - To perform the training run: - % python train.py ## 12. Public data Data generated with full simulation with this example has been published on zenodo. + + */ diff --git a/examples/extended/parameterisations/Par04/CMakeLists.txt b/examples/extended/parameterisations/Par04/CMakeLists.txt index 5c485d0bca..faeb148da6 100644 --- a/examples/extended/parameterisations/Par04/CMakeLists.txt +++ b/examples/extended/parameterisations/Par04/CMakeLists.txt @@ -54,10 +54,22 @@ if(INFERENCE_LIB) endif() endif() +# TORCH +if(INFERENCE_LIB) + find_package(Torch QUIET) + if(Torch_FOUND) + message("Torch inference library found.") + add_definitions(-DUSE_INFERENCE) + add_definitions(-DUSE_INFERENCE_TORCH) + else() + message("Torch not found!") + endif() +endif() + #---------------------------------------------------------------------------- # Locate sources and headers for this project # -include_directories(${PROJECT_SOURCE_DIR}/include +include_directories(${PROJECT_SOURCE_DIR}/include ${Geant4_INCLUDE_DIR}) file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) @@ -82,6 +94,14 @@ if(OnnxRuntime_FOUND) add_dependencies(examplePar04 examplePar04onnxdata) endif() +if(Torch_FOUND) + target_include_directories(examplePar04 PUBLIC ${TORCH_INCLUDE_DIRS}) + target_link_libraries(examplePar04 ${TORCH_LIBRARIES}) + message(STATUS "${TORCH_LIBRARIES}") + # Depend on data for runtime + add_dependencies(examplePar04 examplePar04torchdata) +endif() + #---------------------------------------------------------------------------- # Copy all scripts to the build directory, i.e. the directory in which we # build Par04. This is so that we can run the executable directly because it @@ -96,6 +116,9 @@ endif() if(OnnxRuntime_FOUND) set(Par04_SCRIPTS ${Par04_SCRIPTS} examplePar04_onnx.mac vis_onnx.mac) endif() +if(Torch_FOUND) + set(Par04_SCRIPTS ${Par04_SCRIPTS} examplePar04_torch.mac vis_torch.mac) +endif() foreach(_script ${Par04_SCRIPTS}) configure_file( @@ -132,6 +155,17 @@ if(OnnxRuntime_FOUND) DOWNLOAD_NO_EXTRACT true ) endif() +if(Torch_FOUND) + ExternalProject_Add(examplePar04torchdata + DOWNLOAD_DIR ${PROJECT_BINARY_DIR}/MLModels + URL https://cern.ch/geant4-data/datasets/examples/extended/parameterisations/Par04/Generator.pt + URL_MD5 a43337f7f976e976f1127015f2ba61db + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + DOWNLOAD_NO_EXTRACT true + ) +endif() #---------------------------------------------------------------------------- # Add program to the project targets diff --git a/examples/extended/parameterisations/Par04/History b/examples/extended/parameterisations/Par04/History index 477e804158..b1e8e222c4 100644 --- a/examples/extended/parameterisations/Par04/History +++ b/examples/extended/parameterisations/Par04/History @@ -4,6 +4,16 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-08 D. Salamani (expar04-V11-00-05) +- Add updated version of the training code (PEP 8 style guide, formatting with YAPF, +annotation with types, code upgrade to TF2.9, logic for GPU usage management) + +## 2022-11-08 A. Zaborowska (expar04-V11-00-04) +- Add support of LibTorch for inference + +## 2022-10-25 I. Hrivnacova (expar04-V11-00-03) +- Fixes in Doxygen documentation (links, formatting) + ## 2022-02-28 Dalila Salamani (expar04-V11-00-02) - Add python training scripts - Add model conversion to ONNX and LWTNN to the train script and update README diff --git a/examples/extended/parameterisations/Par04/README b/examples/extended/parameterisations/Par04/README index bae1b5a38f..8d9130d624 100644 --- a/examples/extended/parameterisations/Par04/README +++ b/examples/extended/parameterisations/Par04/README @@ -8,12 +8,12 @@ ------------- This example demonstrates how to use the Machine Learning (ML) inference - to create energy deposits as a fast simulation model using ONNX runtime [1] - and LWTNN [2] libraries. + to create energy deposits as a fast simulation model using ONNX Runtime [1], + LWTNN [2], and LibTorch [3] libraries. The model used in this example was trained externally (in Python) on data from this examples' full simulation and can be applied to perform fast simulation. - The python scripts are availbale in the training folder. + The python scripts are available in the training folder. The geometry used in the example is a cylindrical setup of layers: tungsten absorber and silicon as the active material. 3D readout geometry (cylindrical) @@ -24,6 +24,7 @@ [1]: https://github.com/microsoft/onnxruntime [2]: https://github.com/lwtnn/lwtnn + [3]: https://pytorch.org/cppdocs/frontend.html 1. Detector description ----------------------- @@ -35,7 +36,7 @@ Input macro can specify which layer is considered an active layer (sensitive detector is attached to it). For fast simulation both layers should be marked - as sensitive. It is connected to the wway the deposits are created: position is + as sensitive. It is connected to the way the deposits are created: position is centre of the layer, which may often fall within the absorber (which is thicker than the active material). In a realistic detector setup, the positions used in fast simulation would be calculated properly, to deposit energy within the active @@ -80,7 +81,7 @@ 6. ML Inference ---------------------------------------------------------- - - Par04MLFastSimModel : model used for parametrisation of źelectrons, positrons, + - Par04MLFastSimModel : model used for parametrisation of electrons, positrons, and gammas. Energy is deposited and distributed according to inferred values from the ML model. This class triggers the inference setup, asks for values, @@ -98,8 +99,8 @@ - Par04InferenceInterface : is a base class that allows to read in the ML model, configure and execute inference. - - Par04OnnxInference and Par04LWTNNInference : inference library specific classes that inherit - from the base class Par04InferenceInterface. + - Par04OnnxInference and Par04LWTNNInference and Par04TorchInference : inference library specific + classes that inherit from the base class Par04InferenceInterface. 7. Output @@ -110,17 +111,18 @@ The macro file examplePar04.mac is used to run full simulation. It will simulate 100 events, for single 10 GeV electron beams. - If CMake is able to find inference libraries (lwtnn and/or ONNX Runtime), a configuration - macro will be available for that library (examplePar04_lwtnn.mac and/or examplePar04_onnx.mac). - It will use a trained model to run inference and create showers in the detector by directly - depositing energy. + If CMake is able to find inference libraries (LWTNN and/or ONNX Runtime and/or LibTorch), a configuration + macro will be available for that library (examplePar04_lwtnn.mac and/or examplePar04_onnx.mac + and/or examplePar04_torch.mac). It will use a trained model to run inference and create showers + in the detector by directly depositing energy. 8. How to build and run the example ----------------------------------- -- LWTNN and ONNX Runtime are available on LCG. In order to use them, one can setup the envirnment: - % source /cvmfs/sft.cern.ch/lcg/views/LCG_100/x86_64-centos7-gcc10-opt/setup.sh +- LWTNN, ONNX Runtime, and LibTorch are available on LCG. In order to use them, you can set a CMAKE_PREFIX_PATH: + % source /cvmfs/sft.cern.ch/lcg/contrib/gcc/11.3.0/x86_64-centos7/setup.sh + % cmake -DCMAKE_PREFIX_PATH="/cvmfs/sft.cern.ch/lcg/releases/LCG_102b/lwtnn/2.11.1/x86_64-centos7-gcc11-opt/;/cvmfs/sft.cern.ch/lcg/releases/LCG_102b/onnxruntime/1.11.1/x86_64-centos7-gcc11-opt/;/cvmfs/sft.cern.ch/lcg/releases/LCG_102b/torch/1.11.0/x86_64-centos7-gcc11-opt/lib/python3.9/site-packages/torch/" -- Compile and link to generate the executable (in your CMAKE build directory): +- Compile and link to generate the executable (in your CMake build directory): % cmake % make @@ -141,7 +143,11 @@ % ./examplePar04 -m examplePar04_lwtnn.mac For interactive mode with visualization: % ./examplePar04 -i -m vis_lwtnn.mac - +- If LibTorch is available: + % ./examplePar04 -m examplePar04_torch.mac + For interactive mode with visualization: + % ./examplePar04 -i -m vis_torch.mac + By default, CMake will attempt to build fast simulation with ONNX Runtime and LWTNN. However, if none of those libraries is found, it will proceed with full simulation only. The search can be switched off manually switching CMake flag INFERENCE_LIB to OFF (-DINFERENCE_LIB=OFF) @@ -153,11 +159,15 @@ It can be used to visualize full simulation. vis_onnx.mac - Allows to run visualization with ONNX Runtime inference. Pass it to the example in interactive mode - ("-i" passed to the executable). It contains ecessary settings of the inference, and it treats full + ("-i" passed to the executable). It contains necessary settings of the inference, and it treats full calorimeter as sensitive material (due to deposition of hits regardless of the volume). vis_lwtnn.mac - Allows to run visualization with LWTNN inference. Pass it to the example in interactive mode - ("-i" passed to the executable). It contains ecessary settings of the inference, and it treats full + ("-i" passed to the executable). It contains necessary settings of the inference, and it treats full + calorimeter as sensitive material (due to deposition of hits regardless of the volume). + + vis_torch.mac - Allows to run visualization with LibTorch inference. Pass it to the example in interactive mode + ("-i" passed to the executable). It contains necessary settings of the inference, and it treats full calorimeter as sensitive material (due to deposition of hits regardless of the volume). examplePar04.mac - Runs full simulation. It will run 100 events with single electrons, 10 GeV and @@ -169,6 +179,9 @@ examplePar04_lwtnn.mac - Available only if LWTNN is found by CMake. Runs fast simulation with a NN stored in json file. + examplePar04_torch.mac - Available only if LibTorch is found by CMake. Runs fast simulation with + a NN stored in pt file. + 10. UI commands -------------- @@ -216,45 +229,8 @@ -------------- The scripts available in the training folder were used to train - the VAE model of this example. - - - model: defines the VAE model as a class which contains the architecture, - the loss function and the training function. - - - utils: defines the data loading and preprocessing function and returns - the preprocessed array of shower energies and the condition arrays of energy, - angle and geometry. The input is expected to be in local directory 'detector_*'. - In this example, the model is trained on 2 detector geometries and the input - directories are 'detector_SiW' and 'detector_SciPb'. Each directory contains the - HDF5 files for each primary particle energy and angle. - - - train: defines data loading parameters and calls the data preprocessing function. - It defines the model parameters and instantiates the VAE model, performs the training - and then coverts the model into an ONNX format. - - A history object is returned from the training function of the VAE. The history is a callback - object registered during the training which records metrics for each epoch such as the loss. - The user can list the metrics collected in the history object using: - - % print(history.history.keys()) - - The data collected in the history object can be used to create plots such as the loss function - as function of the epochs. If the loss metric collected in the history object is called loss, - then to plot it using for example the matplotlib library: - - % matplotlib.pyplot.plot(history.history['loss']) - - The traing function can also generate intermediate files representing checkpoints of the model - that can be used for validation purposes. These checkpoints are generated if the early stopping flag - of the training is off, which means to train the model for the predefined number of epochs. The weights - of the model are saved every 100 epochs. - - After the training, the model (only the decoder part) is saved as an HDF5 file and then is converted - into an ONNX format. The final output model called Generator.onnx can be used to perform the inference - in this example. - - To perform the training run: - % python train.py + the VAE model of this example. More details can be found in + training/README. 12. Public data diff --git a/examples/extended/parameterisations/Par04/examplePar04.out b/examples/extended/parameterisations/Par04/examplePar04.out index a381a34042..0519c8a980 100644 --- a/examples/extended/parameterisations/Par04/examplePar04.out +++ b/examples/extended/parameterisations/Par04/examplePar04.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -278,7 +280,6 @@ Checking overlaps for volume Layer:179 (G4Tubs) ... OK! e+ : fastSimProcess_massGeom[geom:World] e- : fastSimProcess_massGeom[geom:World] gamma : fastSimProcess_massGeom[geom:World] -Set file name: 10GeV_100events_fullsim.root Model defineMesh activated. Model inferenceModel not found. @@ -417,6 +418,11 @@ Model inferenceModel not found. Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda diff --git a/examples/extended/parameterisations/Par04/examplePar04_torch.mac b/examples/extended/parameterisations/Par04/examplePar04_torch.mac new file mode 100644 index 0000000000..35c07f8d6f --- /dev/null +++ b/examples/extended/parameterisations/Par04/examplePar04_torch.mac @@ -0,0 +1,47 @@ +# examplePar04_torch.mac +# +# Detector Construction +/Par04/detector/setDetectorInnerRadius 80 cm +/Par04/detector/setDetectorLength 2 m +/Par04/detector/setNbOfLayers 90 +/Par04/detector/setAbsorber 0 G4_W 1.4 mm true +/Par04/detector/setAbsorber 1 G4_Si 0.3 mm true +## 2.325 mm of tungsten =~ 0.25 * 9.327 mm = 0.25 * R_Moliere +/Par04/mesh/setSizeOfRhoCells 2.325 mm +## 2 * 1.4 mm of tungsten =~ 0.65 X_0 +/Par04/mesh/setSizeOfZCells 3.4 mm +/Par04/mesh/setNbOfRhoCells 18 +/Par04/mesh/setNbOfPhiCells 50 +/Par04/mesh/setNbOfZCells 45 + +# Initialize +/run/initialize + +/gun/energy 10 GeV +/gun/position 0 0 0 +/gun/direction 0 1 0 + +# Inference Setup +## dimension of the latent vector (encoded vector in a Variational Autoencoder model) +/Par04/inference/setSizeLatentVector 10 +## size of the condition vector (energy, angle and geometry) +/Par04/inference/setSizeConditionVector 4 +## path to the model which is set to download by cmake +/Par04/inference/setModelPathName MLModels/Generator.pt +/Par04/inference/setInferenceLibrary TORCH +## set mesh size for inference == mesh size of a full sim that +## was used for training; it coincides with readout mesh size +/Par04/inference/setSizeOfRhoCells 2.325 mm +/Par04/inference/setSizeOfZCells 3.4 mm +/Par04/inference/setNbOfRhoCells 18 +/Par04/inference/setNbOfPhiCells 50 +/Par04/inference/setNbOfZCells 45 + +# Fast Simulation +/analysis/setFileName 10GeV_100events_fastsim_libtorch.root +## dynamically set readout mesh from particle direction +## needs to be the first fast sim model! +/param/ActivateModel defineMesh +## ML fast sim, configured with the inference setup /Par04/inference +/param/ActivateModel inferenceModel +/run/beamOn 100 diff --git a/environments/zmq/zmq/G4ZMQServer.hh b/examples/extended/parameterisations/Par04/include/Par04TorchInference.hh similarity index 61% rename from environments/zmq/zmq/G4ZMQServer.hh rename to examples/extended/parameterisations/Par04/include/Par04TorchInference.hh index ee82ffaf6f..44e72c293f 100644 --- a/environments/zmq/zmq/G4ZMQServer.hh +++ b/examples/extended/parameterisations/Par04/include/Par04TorchInference.hh @@ -23,59 +23,40 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// -// -#ifndef G4ZMQ_SERVER_H_ -#define G4ZMQ_SERVER_H_ -#include "G4VBasicShell.hh" +#ifdef USE_INFERENCE_TORCH +#ifndef PAR04TORCHINFERENCE_HH +#define PAR04TORCHINFERENCE_HH +#include // for G4String +#include // for G4int, G4double +#include // for unique_ptr +#include // for vector +#include "Par04InferenceInterface.hh" // for Par04InferenceInterface +#include -class G4UItcsh; +/** + * @brief Inference using the TORCH. + * + * Runs the inference with LibTorch using the input vector from Par04InferenceSetup. + * + **/ -class G4ZMQServer : public G4VBasicShell { +class Par04TorchInference : public Par04InferenceInterface +{ public: - G4ZMQServer(); - ~G4ZMQServer(); + Par04TorchInference(G4String); + Par04TorchInference(); - void SetEndpoint(const G4String& endpoint); - G4String GetEndpoint() const; - - void SetDebug(G4bool flag); - - virtual G4UIsession* SessionStart(); - virtual void PauseSessionStart(const G4String& message); - - virtual G4int ReceiveG4cout(const G4String& coutString); - virtual G4int ReceiveG4cerr(const G4String& cerrString); + /// Run inference + /// @param[in] aGenVector Input latent space and conditions + /// @param[out] aEnergies Model output = generated shower energies + /// @param[in] aSize Size of the output + void RunInference(std::vector aGenVector, std::vector& aEnergies, int aSize); private: - G4bool qdebug_; - G4String endpoint_; - G4UItcsh* shell_; - - G4String GetCommand(const G4String& input); - - virtual void ExecuteCommand(const G4String& command); - virtual G4bool GetHelpChoice(G4int& ); - virtual void ExitHelp() const; + torch::jit::script::Module fModule; }; -// ========================================================================== -inline void G4ZMQServer::SetEndpoint(const G4String& endpoint) -{ - endpoint_ = endpoint; -} - -inline G4String G4ZMQServer::GetEndpoint() const -{ - return endpoint_; -} - -inline void G4ZMQServer::SetDebug(G4bool flag) -{ - qdebug_ = flag; -} - +#endif /* PAR04TORCHINFERENCE_HH */ #endif diff --git a/examples/extended/parameterisations/Par04/src/Par04InferenceSetup.cc b/examples/extended/parameterisations/Par04/src/Par04InferenceSetup.cc index 7a74082a3c..c1201ccc98 100644 --- a/examples/extended/parameterisations/Par04/src/Par04InferenceSetup.cc +++ b/examples/extended/parameterisations/Par04/src/Par04InferenceSetup.cc @@ -33,6 +33,9 @@ #ifdef USE_INFERENCE_LWTNN #include "Par04LwtnnInference.hh" // for Par04LwtnnInference #endif +#ifdef USE_INFERENCE_TORCH +#include "Par04TorchInference.hh" // for Par04TorchInference +#endif #include // for pi, GeV, deg #include // for HepRotation #include // for Hep3Vector @@ -82,6 +85,12 @@ void Par04InferenceSetup::SetInferenceLibrary(G4String aName) fInferenceInterface = std::unique_ptr(new Par04LwtnnInference(fModelPathName)); #endif +#ifdef USE_INFERENCE_TORCH + if(fInferenceLibrary == "TORCH") + fInferenceInterface = + std::unique_ptr(new Par04TorchInference(fModelPathName)); +#endif + CheckInferenceLibrary(); } @@ -94,7 +103,10 @@ void Par04InferenceSetup::CheckInferenceLibrary() msg += "ONNX,"; #endif #ifdef USE_INFERENCE_LWTNN - msg += "LWTNN"; + msg += "LWTNN,"; +#endif +#ifdef USE_INFERENCE_TORCH + msg += "TORCH"; #endif if(fInferenceInterface == nullptr) G4Exception("Par04InferenceSetup::CheckInferenceLibrary()", "InvalidSetup", FatalException, diff --git a/examples/extended/parameterisations/Par04/src/Par04TorchInference.cc b/examples/extended/parameterisations/Par04/src/Par04TorchInference.cc new file mode 100644 index 0000000000..5a3e81b6df --- /dev/null +++ b/examples/extended/parameterisations/Par04/src/Par04TorchInference.cc @@ -0,0 +1,90 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifdef USE_INFERENCE_TORCH +#include "Par04TorchInference.hh" +#include // for copy, max +#include // for assert +#include // for size_t +#include // for int64_t +#include // for move +#include "Par04InferenceInterface.hh" // for Par04InferenceInterface +#include + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Par04TorchInference::Par04TorchInference(G4String modelPath) + : Par04InferenceInterface() +{ + fModule = torch::jit::load( modelPath ); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Par04TorchInference::RunInference(std::vector aGenVector, std::vector& aEnergies, + int aSize) +{ + // latentSize : size of the latent space + // 4 is the size of the condition vector + int latentSize = aGenVector.size() - 4; + // split into latent and condition vectors + std::vector latent; + for ( int i=0;i energy; + energy.push_back(aGenVector[latentSize+1]); + std::vector angle; + energy.push_back(aGenVector[latentSize+2]); + std::vector geo; + for ( int i=latentSize+2;i genInput; + + genInput.push_back( latentVector ); + genInput.push_back( eTensor ); + genInput.push_back( angleTensor ); + genInput.push_back( geoTensor ); + + at::Tensor outTensor = fModule.forward( genInput).toTensor().contiguous(); + + std::vector output( outTensor.data_ptr(), outTensor.data_ptr() + outTensor.numel() ); + + aEnergies.assign(aSize, 0); + for(int i = 0; i < aSize; i++) { + aEnergies[i] = output[i]; + } +} + +#endif diff --git a/examples/extended/parameterisations/Par04/training/README.md b/examples/extended/parameterisations/Par04/training/README.md new file mode 100644 index 0000000000..65c6c70ad2 --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/README.md @@ -0,0 +1,98 @@ +This repository contains the set of scripts used to train, generate and validate the generative model used +in this example. + +- core/constants.py: defines the set of common variables. +- core/model.py: defines the VAE model class and a handler to construct the model. +- utils/preprocess.py: defines the data loading and preprocessing functions. +- utils/hyperparameter_tuner.py: defines the HyperparameterTuner class. +- utils/gpu_limiter.py: defines a logic responsible for GPU memory management. +- utils/observables.py: defines a set of observable possibly calculated from a shower. +- utils/plotter.py: defines plotting classes responsible for manufacturing various plots of observables. +- train.py: performs model training. +- generate.py: generate showers using a saved VAE model. +- observables.py: defines a set of shower observables. +- validate.py: creates validation plots using shower observables. +- convert.py: defines the conversion function to an ONNX file. +- tune_model.py: performs hyperparameters optimization. + +## Getting Started + +`setup.py` script creates necessary folders used to save model checkpoints, generate showers and validation plots. + +``` +python3 setup.py +``` + +## Full simulation dataset + +The full simulation dataset can be downloaded from/linked to [Zenodo](https://zenodo.org/record/6082201#.Ypo5UeDRaL4). + +## Training + +In order to launch the training: + +``` +python3 train.py +``` + +You may specify those three following flags. If you do not, then default values will be used. + +```--max-gpu-memory-allocation``` specifies a maximum memory allocation on a single, logic GPU unit. Should be given as +an integer. + +```--gpu-ids``` specifies IDs of physical GPUs. Should be given as a string, separated with comas, no spaces. +If you specify more than one GPU then automatically ```tf.distribute.MirroredStrategy``` will be applied to the +training. + +```--study-name``` specifies a study name. This name is used as an experiment name in W&B dashboard and as a name of +directory for saving models. + +## Hyperparameters tuning + +If you want to tune hyperparameters, specify in `tune_model.py` parameters to be tuned. There are three types of +parameters: discrete, continuous and categorical. Discrete and continuous require range specification (low, high), while +the categorical parameter requires a list of possible values to be chosen. Then run it with: + +``` +python3 tune_model.py +``` + +If you want to parallelize tuning process you need to specify a common storage (preferable MySQL database) by +setting `--storage="URL_TO_MYSQL_DATABASE"`. Then you can run multiple processes with the same command: + +``` +python3 tune_model.py --storage="URL_TO_MYSQL_DATABASE" +``` + +Similarly to training procedure, you may specify ```--max-gpu-memory-allocation```, ```--gpu-ids``` and +```--study-name```. + +## ML shower generation (MLFastSim) + +In order to generate showers using the ML model, use `generate.py` script and specify information of geometry, energy +and angle of the particle and the epoch of the saved checkpoint model. The number of events to generate can also be +specified (by default is set to 10.000): + +``` +python3 generate.py --geometry=SiW --energy=64 --angle=90 --epoch=1000 --study-name=YOUR_STUDY_NAME +``` + +If you do not specify an epoch number the based model (saved as ```VAEbest```) will be used for shower generation. + +## Validation + +In order to validate the MLFastSim and the full simulation, use `validate.py` script and specify information of +geometry, energy and angle of the particle: + +``` +python3 validate.py --geometry=SiW --energye=64 --angle=90 +``` + +## Conversion + +After training and validation, the model can be converted into a format that can be used in C++, such as ONNX, +use `convert.py` script: + +``` +python3 convert.py --epoch 1000 +``` diff --git a/examples/extended/parameterisations/Par04/training/convert.py b/examples/extended/parameterisations/Par04/training/convert.py new file mode 100644 index 0000000000..832e758da8 --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/convert.py @@ -0,0 +1,72 @@ +""" +** convert ** +defines the conversion function to and ONNX file +""" + +import argparse +import sys + +import tf2onnx +import numpy as np +from onnxruntime import InferenceSession + +from core.constants import GLOBAL_CHECKPOINT_DIR, CONV_DIR, ORIGINAL_DIM +from core.model import VAEHandler +""" + epoch: epoch of the saved checkpoint model + study-name: study-name for which the model is trained for +""" + + +def parse_args(argv): + p = argparse.ArgumentParser() + p.add_argument("--epoch", type=int, default=None) + p.add_argument("--study-name", type=str, default="default_study_name") + args = p.parse_args() + return args + + +# main function +def main(argv): + # 1. Set up the model to convert + # Parse commandline arguments + args = parse_args(argv) + epoch = args.epoch + study_name = args.study_name + + # Instantiate and load a saved model + vae = VAEHandler() + + # Load the saved weights + weights_dir = f"VAE_epoch_{epoch:03}" if epoch is not None else "VAE_best" + vae.model.load_weights( + f"{GLOBAL_CHECKPOINT_DIR}/{study_name}/{weights_dir}/model_weights" + ).expect_partial() + + # 2. Convert the model to ONNX format + # Create the Keras model, convert it into an ONNX model, and save. + keras_model = vae.model.decoder + output_path = f"{CONV_DIR}/{study_name}/Generator_{weights_dir}.onnx" + onnx_model = tf2onnx.convert.from_keras(keras_model, + output_path=output_path) + + # Checking the converted model + input_1 = np.random.randn(10).astype(np.float32).reshape(1, -1) + input_2 = np.random.randn(1).astype(np.float32).reshape(1, -1) + input_3 = np.random.randn(1).astype(np.float32).reshape(1, -1) + input_4 = np.random.randn(2).astype(np.float32).reshape(1, -1) + + sess = InferenceSession(output_path) + # TODO: @Piyush-555 Find a way to use predefined names + result = sess.run( + None, { + 'input_9': input_1, + 'input_6': input_2, + 'input_7': input_3, + 'input_8': input_4 + }) + assert result[0].shape[1] == ORIGINAL_DIM + + +if __name__ == "__main__": + exit(main(sys.argv[1:])) diff --git a/examples/extended/parameterisations/Par04/training/core/constants.py b/examples/extended/parameterisations/Par04/training/core/constants.py new file mode 100644 index 0000000000..22cfa9bcd5 --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/core/constants.py @@ -0,0 +1,86 @@ +from utils.optimizer import OptimizerType + +""" +Experiment constants. +""" +# Number of calorimeter layers (z-axis segmentation). +N_CELLS_Z = 45 +# Segmentation in the r,phi direction. +N_CELLS_R = 18 +N_CELLS_PHI = 50 +# Cell size in the r and z directions +SIZE_R = 2.325 +SIZE_Z = 3.4 + +# Minimum and maximum primary particle energy to consider for training in GeV units. +MIN_ENERGY = 1 +MAX_ENERGY = 1024 +# Minimum and maximum primary particle angle to consider for training in degrees units. +MIN_ANGLE = 50 +MAX_ANGLE = 90 + +""" +Directories. +""" +# Directory to load the full simulation dataset. +INIT_DIR = "./dataset/" +# Directory to save VAE checkpoints +GLOBAL_CHECKPOINT_DIR = "./checkpoint" +# Directory to save model after conversion to a format that can be used in C++. +CONV_DIR = "./conversion" +# Directory to save validation plots. +VALID_DIR = "./validation" +# Directory to save VAE generated showers. +GEN_DIR = "./generation" + +""" +Model default parameters. +""" +BATCH_SIZE_PER_REPLICA = 128 +# Total number of readout cells (represents the number of nodes in the input/output layers of the model). +ORIGINAL_DIM = N_CELLS_Z * N_CELLS_R * N_CELLS_PHI +INTERMEDIATE_DIMS = [100, 50, 20, 14] +LATENT_DIM = 10 +EPOCHS = 1000 +LEARNING_RATE = 0.001 +ACTIVATION = "leaky_relu" +OUT_ACTIVATION = "sigmoid" +VALIDATION_SPLIT = 0.10 +NUMBER_OF_K_FOLD_SPLITS = 1 +OPTIMIZER_TYPE = OptimizerType.ADAM +KERNEL_INITIALIZER = "RandomNormal" +BIAS_INITIALIZER = "Zeros" +EARLY_STOP = False +SAVE_BEST_MODEL = True +SAVE_MODEL_EVERY_EPOCH = True +PATIENCE = 10 +MIN_DELTA = 0.01 +BEST_MODEL_FILENAME = "VAE_best" +# GPU identifiers separated by comma, no spaces. +GPU_IDS = "0" +# Maximum allowed memory on one of the GPUs (in GB) +MAX_GPU_MEMORY_ALLOCATION = 32 +# Buffer size used while shuffling the dataset. +BUFFER_SIZE = 1000 + +""" +Optimizer parameters. +""" +N_TRIALS = 50 +# Maximum size of a hidden layer +MAX_HIDDEN_LAYER_DIM = 2000 + +""" +Validator parameter. +""" +FULL_SIM_HISTOGRAM_COLOR = "blue" +ML_SIM_HISTOGRAM_COLOR = "red" +FULL_SIM_GAUSSIAN_COLOR = "green" +ML_SIM_GAUSSIAN_COLOR = "orange" +HISTOGRAM_TYPE = "step" + +""" +W&B parameters. +""" +# Change this to your entity name. +WANDB_ENTITY = "entity-name" diff --git a/examples/extended/parameterisations/Par04/training/core/model.py b/examples/extended/parameterisations/Par04/training/core/model.py new file mode 100644 index 0000000000..e1fb9fdc8f --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/core/model.py @@ -0,0 +1,429 @@ +import gc +from dataclasses import dataclass, field +from typing import List, Tuple + +import numpy as np +import tensorflow as tf +import wandb +from sklearn.model_selection import KFold +from tensorflow.keras import backend as K +from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint, History, Callback +from tensorflow.keras.layers import BatchNormalization, Input, Dense, Layer, concatenate +from tensorflow.keras.losses import BinaryCrossentropy, Reduction +from tensorflow.keras.models import Model +from tensorflow.python.data import Dataset +from tensorflow.python.distribute.distribute_lib import Strategy +from tensorflow.python.distribute.mirrored_strategy import MirroredStrategy +from wandb.keras import WandbCallback + +from core.constants import ORIGINAL_DIM, LATENT_DIM, BATCH_SIZE_PER_REPLICA, EPOCHS, LEARNING_RATE, ACTIVATION, \ + OUT_ACTIVATION, OPTIMIZER_TYPE, KERNEL_INITIALIZER, GLOBAL_CHECKPOINT_DIR, EARLY_STOP, BIAS_INITIALIZER, \ + INTERMEDIATE_DIMS, SAVE_MODEL_EVERY_EPOCH, SAVE_BEST_MODEL, PATIENCE, MIN_DELTA, BEST_MODEL_FILENAME, \ + NUMBER_OF_K_FOLD_SPLITS, VALIDATION_SPLIT, WANDB_ENTITY +from utils.optimizer import OptimizerFactory, OptimizerType + + +class _Sampling(Layer): + """ Custom layer to do the reparameterization trick: sample random latent vectors z from the latent Gaussian + distribution. + + The sampled vector z is given by sampled_z = mean + std * epsilon + """ + + def __call__(self, inputs, **kwargs): + z_mean, z_log_var, epsilon = inputs + z_sigma = K.exp(0.5 * z_log_var) + return z_mean + z_sigma * epsilon + + +# KL divergence computation +class _KLDivergenceLayer(Layer): + + def call(self, inputs, **kwargs): + mu, log_var = inputs + kl_loss = -0.5 * (1 + log_var - K.square(mu) - K.exp(log_var)) + kl_loss = K.mean(K.sum(kl_loss, axis=-1)) + self.add_loss(kl_loss) + return inputs + + +class VAE(Model): + def get_config(self): + config = super().get_config() + config["encoder"] = self.encoder + config["decoder"] = self.decoder + return config + + def call(self, inputs, training=None, mask=None): + _, e_input, angle_input, geo_input, _ = inputs + z = self.encoder(inputs) + return self.decoder([z, e_input, angle_input, geo_input]) + + def __init__(self, encoder, decoder, **kwargs): + super(VAE, self).__init__(**kwargs) + self.encoder = encoder + self.decoder = decoder + self._set_inputs(inputs=self.encoder.inputs, outputs=self(self.encoder.inputs)) + + +@dataclass +class VAEHandler: + """ + Class to handle building and training VAE models. + """ + _wandb_project_name: str = None + _wandb_tags: List[str] = field(default_factory=list) + _original_dim: int = ORIGINAL_DIM + latent_dim: int = LATENT_DIM + _batch_size_per_replica: int = BATCH_SIZE_PER_REPLICA + _intermediate_dims: List[int] = field(default_factory=lambda: INTERMEDIATE_DIMS) + _learning_rate: float = LEARNING_RATE + _epochs: int = EPOCHS + _activation: str = ACTIVATION + _out_activation: str = OUT_ACTIVATION + _number_of_k_fold_splits: float = NUMBER_OF_K_FOLD_SPLITS + _optimizer_type: OptimizerType = OPTIMIZER_TYPE + _kernel_initializer: str = KERNEL_INITIALIZER + _bias_initializer: str = BIAS_INITIALIZER + _checkpoint_dir: str = GLOBAL_CHECKPOINT_DIR + _early_stop: bool = EARLY_STOP + _save_model_every_epoch: bool = SAVE_MODEL_EVERY_EPOCH + _save_best_model: bool = SAVE_BEST_MODEL + _patience: int = PATIENCE + _min_delta: float = MIN_DELTA + _best_model_filename: str = BEST_MODEL_FILENAME + _validation_split: float = VALIDATION_SPLIT + _strategy: Strategy = MirroredStrategy() + + def __post_init__(self) -> None: + # Calculate true batch size. + self._batch_size = self._batch_size_per_replica * self._strategy.num_replicas_in_sync + self._build_and_compile_new_model() + # Setup Wandb. + if self._wandb_project_name is not None: + self._setup_wandb() + + def _setup_wandb(self) -> None: + config = { + "learning_rate": self._learning_rate, + "batch_size": self._batch_size, + "epochs": self._epochs, + "optimizer_type": self._optimizer_type, + "intermediate_dims": self._intermediate_dims, + "latent_dim": self.latent_dim + } + # Reinit flag is needed for hyperparameter tuning. Whenever new training is started, new Wandb run should be + # created. + wandb.init(project=self._wandb_project_name, entity=WANDB_ENTITY, reinit=True, config=config, + tags=self._wandb_tags) + + def _build_and_compile_new_model(self) -> None: + """ Builds and compiles a new model. + + VAEHandler keep a list of VAE instance. The reason is that while k-fold cross validation is performed, + each fold requires a new, clear instance of model. New model is always added at the end of the list of + existing ones. + + Returns: None + + """ + # Build encoder and decoder. + encoder = self._build_encoder() + decoder = self._build_decoder() + + # Compile model within a distributed strategy. + with self._strategy.scope(): + # Build VAE. + self.model = VAE(encoder, decoder) + # Manufacture an optimizer and compile model with. + optimizer = OptimizerFactory.create_optimizer(self._optimizer_type, self._learning_rate) + reconstruction_loss = BinaryCrossentropy(reduction=Reduction.SUM) + self.model.compile(optimizer=optimizer, loss=[reconstruction_loss], loss_weights=[ORIGINAL_DIM]) + + def _prepare_input_layers(self, for_encoder: bool) -> List[Input]: + """ + Create four Input layers. Each of them is responsible to take respectively: batch of showers/batch of latent + vectors, batch of energies, batch of angles, batch of geometries. + + Args: + for_encoder: Boolean which decides whether an input is full dimensional shower or a latent vector. + + Returns: + List of Input layers (five for encoder and four for decoder). + + """ + e_input = Input(shape=(1,)) + angle_input = Input(shape=(1,)) + geo_input = Input(shape=(2,)) + if for_encoder: + x_input = Input(shape=self._original_dim) + eps_input = Input(shape=self.latent_dim) + return [x_input, e_input, angle_input, geo_input, eps_input] + else: + x_input = Input(shape=self.latent_dim) + return [x_input, e_input, angle_input, geo_input] + + def _build_encoder(self) -> Model: + """ Based on a list of intermediate dimensions, activation function and initializers for kernel and bias builds + the encoder. + + Returns: + Encoder is returned as a keras.Model. + + """ + + with self._strategy.scope(): + # Prepare input layer. + x_input, e_input, angle_input, geo_input, eps_input = self._prepare_input_layers(for_encoder=True) + x = concatenate([x_input, e_input, angle_input, geo_input]) + # Construct hidden layers (Dense and Batch Normalization). + for intermediate_dim in self._intermediate_dims: + x = Dense(units=intermediate_dim, activation=self._activation, + kernel_initializer=self._kernel_initializer, + bias_initializer=self._bias_initializer)(x) + x = BatchNormalization()(x) + # Add Dense layer to get description of multidimensional Gaussian distribution in terms of mean + # and log(variance). + z_mean = Dense(self.latent_dim, name="z_mean")(x) + z_log_var = Dense(self.latent_dim, name="z_log_var")(x) + # Add KLDivergenceLayer responsible for calculation of KL loss. + z_mean, z_log_var = _KLDivergenceLayer()([z_mean, z_log_var]) + # Sample a probe from the distribution. + encoder_output = _Sampling()([z_mean, z_log_var, eps_input]) + # Create model. + encoder = Model(inputs=[x_input, e_input, angle_input, geo_input, eps_input], outputs=encoder_output, + name="encoder") + return encoder + + def _build_decoder(self) -> Model: + """ Based on a list of intermediate dimensions, activation function and initializers for kernel and bias builds + the decoder. + + Returns: + Decoder is returned as a keras.Model. + + """ + + with self._strategy.scope(): + # Prepare input layer. + latent_input, e_input, angle_input, geo_input = self._prepare_input_layers(for_encoder=False) + x = concatenate([latent_input, e_input, angle_input, geo_input]) + # Construct hidden layers (Dense and Batch Normalization). + for intermediate_dim in reversed(self._intermediate_dims): + x = Dense(units=intermediate_dim, activation=self._activation, + kernel_initializer=self._kernel_initializer, + bias_initializer=self._bias_initializer)(x) + x = BatchNormalization()(x) + # Add Dense layer to get output which shape is compatible in an input's shape. + decoder_outputs = Dense(units=self._original_dim, activation=self._out_activation)(x) + # Create model. + decoder = Model(inputs=[latent_input, e_input, angle_input, geo_input], outputs=decoder_outputs, + name="decoder") + return decoder + + def _manufacture_callbacks(self) -> List[Callback]: + """ + Based on parameters set by the user, manufacture callbacks required for training. + + Returns: + A list of `Callback` objects. + + """ + callbacks = [] + # If the early stopping flag is on then stop the training when a monitored metric (validation) has stopped + # improving after (patience) number of epochs. + if self._early_stop: + callbacks.append( + EarlyStopping(monitor="val_loss", + min_delta=self._min_delta, + patience=self._patience, + verbose=True, + restore_best_weights=True)) + # Save model after every epoch. + if self._save_model_every_epoch: + callbacks.append(ModelCheckpoint(filepath=f"{self._checkpoint_dir}/VAE_epoch_{{epoch:03}}/model_weights", + monitor="val_loss", + verbose=True, + save_weights_only=True, + mode="min", + save_freq="epoch")) + # Pass metadata to wandb. + callbacks.append(WandbCallback( + monitor="val_loss", verbose=0, mode="auto", save_model=False)) + return callbacks + + def _get_train_and_val_data(self, dataset: np.array, e_cond: np.array, angle_cond: np.array, geo_cond: np.array, + noise: np.array, train_indexes: np.array, validation_indexes: np.array) \ + -> Tuple[Dataset, Dataset]: + """ + Splits data into train and validation set based on given lists of indexes. + + """ + + # Prepare training data. + train_dataset = dataset[train_indexes, :] + train_e_cond = e_cond[train_indexes] + train_angle_cond = angle_cond[train_indexes] + train_geo_cond = geo_cond[train_indexes, :] + train_noise = noise[train_indexes, :] + + # Prepare validation data. + val_dataset = dataset[validation_indexes, :] + val_e_cond = e_cond[validation_indexes] + val_angle_cond = angle_cond[validation_indexes] + val_geo_cond = geo_cond[validation_indexes, :] + val_noise = noise[validation_indexes, :] + + # Gather them into tuples. + train_x = (train_dataset, train_e_cond, train_angle_cond, train_geo_cond, train_noise) + train_y = train_dataset + val_x = (val_dataset, val_e_cond, val_angle_cond, val_geo_cond, val_noise) + val_y = val_dataset + + # Wrap data in Dataset objects. + # TODO(@mdragula): This approach requires loading the whole data set to RAM. It + # would be better to read the data partially when needed. Also one should bare in mind that using tf.Dataset + # slows down training process. + train_data = Dataset.from_tensor_slices((train_x, train_y)) + val_data = Dataset.from_tensor_slices((val_x, val_y)) + + # The batch size must now be set on the Dataset objects. + train_data = train_data.batch(self._batch_size) + val_data = val_data.batch(self._batch_size) + + # Disable AutoShard. + options = tf.data.Options() + options.experimental_distribute.auto_shard_policy = tf.data.experimental.AutoShardPolicy.DATA + train_data = train_data.with_options(options) + val_data = val_data.with_options(options) + + return train_data, val_data + + def _k_fold_training(self, dataset: np.array, e_cond: np.array, angle_cond: np.array, geo_cond: np.array, + noise: np.array, callbacks: List[Callback], verbose: bool = True) -> List[History]: + """ + Performs K-fold cross validation training. + + Number of fold is defined by (self._number_of_k_fold_splits). Always shuffle the dataset. + + Args: + dataset: A matrix representing showers. Shape = + (number of samples, ORIGINAL_DIM = N_CELLS_Z * N_CELLS_R * N_CELLS_PHI). + e_cond: A matrix representing an energy for each sample. Shape = (number of samples, ). + angle_cond: A matrix representing an angle for each sample. Shape = (number of samples, ). + geo_cond: A matrix representing a geometry of the detector for each sample. Shape = (number of samples, 2). + noise: A matrix representing an additional noise needed to perform a reparametrization trick. + callbacks: A list of callback forwarded to the fitting function. + verbose: A boolean which says there the training should be performed in a verbose mode or not. + + Returns: A list of `History` objects.`History.history` attribute is a record of training loss values and + metrics values at successive epochs, as well as validation loss values and validation metrics values (if + applicable). + + """ + # TODO(@mdragula): KFold cross validation can be parallelized. Each fold is independent from each the others. + k_fold = KFold(n_splits=self._number_of_k_fold_splits, shuffle=True) + histories = [] + + for i, (train_indexes, validation_indexes) in enumerate(k_fold.split(dataset)): + print(f"K-fold: {i + 1}/{self._number_of_k_fold_splits}...") + train_data, val_data = self._get_train_and_val_data(dataset, e_cond, angle_cond, geo_cond, noise, + train_indexes, validation_indexes) + + self._build_and_compile_new_model() + + history = self.model.fit(x=train_data, + shuffle=True, + epochs=self._epochs, + verbose=verbose, + validation_data=val_data, + callbacks=callbacks + ) + histories.append(history) + + if self._save_best_model: + self.model.save_weights(f"{self._checkpoint_dir}/VAE_fold_{i + 1}/model_weights") + print(f"Best model from fold {i + 1} was saved.") + + # Remove all unnecessary data from previous fold. + del self.model + del train_data + del val_data + tf.keras.backend.clear_session() + gc.collect() + + return histories + + def _single_training(self, dataset: np.array, e_cond: np.array, angle_cond: np.array, geo_cond: np.array, + noise: np.ndarray, callbacks: List[Callback], verbose: bool = True) -> List[History]: + """ + Performs a single training. + + A fraction of dataset (self._validation_split) is used as a validation data. + + Args: + dataset: A matrix representing showers. Shape = + (number of samples, ORIGINAL_DIM = N_CELLS_Z * N_CELLS_R * N_CELLS_PHI). + e_cond: A matrix representing an energy for each sample. Shape = (number of samples, ). + angle_cond: A matrix representing an angle for each sample. Shape = (number of samples, ). + geo_cond: A matrix representing a geometry of the detector for each sample. Shape = (number of samples, 2). + noise: A matrix representing an additional noise needed to perform a reparametrization trick. + callbacks: A list of callback forwarded to the fitting function. + verbose: A boolean which says there the training should be performed in a verbose mode or not. + + Returns: A one-element list of `History` objects.`History.history` attribute is a record of training loss + values and metrics values at successive epochs, as well as validation loss values and validation metrics + values (if applicable). + + """ + dataset_size, _ = dataset.shape + permutation = np.random.permutation(dataset_size) + split = int(dataset_size * self._validation_split) + train_indexes, validation_indexes = permutation[split:], permutation[:split] + + train_data, val_data = self._get_train_and_val_data(dataset, e_cond, angle_cond, geo_cond, noise, train_indexes, + validation_indexes) + + history = self.model.fit(x=train_data, + shuffle=True, + epochs=self._epochs, + verbose=verbose, + validation_data=val_data, + callbacks=callbacks + ) + if self._save_best_model: + self.model.save_weights(f"{self._checkpoint_dir}/VAE_best/model_weights") + print("Best model was saved.") + + return [history] + + def train(self, dataset: np.array, e_cond: np.array, angle_cond: np.array, geo_cond: np.array, + verbose: bool = True) -> List[History]: + """ + For a given input data trains and validates the model. + + If the numer of K-fold splits > 1 then it runs K-fold cross validation, otherwise it runs a single training + which uses (self._validation_split * 100) % of dataset as a validation data. + + Args: + dataset: A matrix representing showers. Shape = + (number of samples, ORIGINAL_DIM = N_CELLS_Z * N_CELLS_R * N_CELLS_PHI). + e_cond: A matrix representing an energy for each sample. Shape = (number of samples, ). + angle_cond: A matrix representing an angle for each sample. Shape = (number of samples, ). + geo_cond: A matrix representing a geometry of the detector for each sample. Shape = (number of samples, 2). + verbose: A boolean which says there the training should be performed in a verbose mode or not. + + Returns: A list of `History` objects.`History.history` attribute is a record of training loss values and + metrics values at successive epochs, as well as validation loss values and validation metrics values (if + applicable). + + """ + + callbacks = self._manufacture_callbacks() + + noise = np.random.normal(0, 1, size=(dataset.shape[0], self.latent_dim)) + + if self._number_of_k_fold_splits > 1: + return self._k_fold_training(dataset, e_cond, angle_cond, geo_cond, noise, callbacks, verbose) + else: + return self._single_training(dataset, e_cond, angle_cond, geo_cond, noise, callbacks, verbose) diff --git a/examples/extended/parameterisations/Par04/training/generate.py b/examples/extended/parameterisations/Par04/training/generate.py new file mode 100644 index 0000000000..0461dd64ed --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/generate.py @@ -0,0 +1,87 @@ +""" +** generate ** +generate showers using a saved VAE model +""" +import argparse + +import numpy as np +import tensorflow as tf +from tensorflow.python.data import Dataset + +from core.constants import GLOBAL_CHECKPOINT_DIR, GEN_DIR, BATCH_SIZE_PER_REPLICA, MAX_GPU_MEMORY_ALLOCATION, GPU_IDS +from utils.gpu_limiter import GPULimiter +from utils.preprocess import get_condition_arrays + + +def parse_args(): + argument_parser = argparse.ArgumentParser() + argument_parser.add_argument("--geometry", type=str, default="") + argument_parser.add_argument("--energy", type=int, default="") + argument_parser.add_argument("--angle", type=int, default="") + argument_parser.add_argument("--events", type=int, default=10000) + argument_parser.add_argument("--epoch", type=int, default=None) + argument_parser.add_argument("--study-name", type=str, default="default_study_name") + argument_parser.add_argument("--max-gpu-memory-allocation", type=int, default=MAX_GPU_MEMORY_ALLOCATION) + argument_parser.add_argument("--gpu-ids", type=str, default=GPU_IDS) + args = argument_parser.parse_args() + return args + + +# main function +def main(): + # 0. Parse arguments. + args = parse_args() + energy = args.energy + angle = args.angle + geometry = args.geometry + events = args.events + epoch = args.epoch + study_name = args.study_name + max_gpu_memory_allocation = args.max_gpu_memory_allocation + gpu_ids = args.gpu_ids + + # 1. Set GPU memory limits. + GPULimiter(_gpu_ids=gpu_ids, _max_gpu_memory_allocation=max_gpu_memory_allocation)() + + # 2. Load a saved model. + + # Create a handler and build model. + # This import must be local because otherwise it is impossible to call GPULimiter. + from core.model import VAEHandler + vae = VAEHandler() + + # Load the saved weights + weights_dir = f"VAE_epoch_{epoch:03}" if epoch is not None else "VAE_best" + vae.model.load_weights(f"{GLOBAL_CHECKPOINT_DIR}/{study_name}/{weights_dir}/model_weights").expect_partial() + + # The generator is defined as the decoder part only + generator = vae.model.decoder + + # 3. Prepare data. Get condition values. Sample from the prior (normal distribution) in d dimension (d=latent_dim, + # latent space dimension). Gather them into tuples. Wrap data in Dataset objects. The batch size must now be set + # on the Dataset objects. Disable AutoShard. + e_cond, angle_cond, geo_cond = get_condition_arrays(geometry, energy, events) + + z_r = np.random.normal(loc=0, scale=1, size=(events, vae.latent_dim)) + + data = ((z_r, e_cond, angle_cond, geo_cond),) + + data = Dataset.from_tensor_slices(data) + + batch_size = BATCH_SIZE_PER_REPLICA + + data = data.batch(batch_size) + + options = tf.data.Options() + options.experimental_distribute.auto_shard_policy = tf.data.experimental.AutoShardPolicy.OFF + data = data.with_options(options) + + # 4. Generate showers using the VAE model. + generated_events = generator.predict(data) * (energy * 1000) + + # 5. Save the generated showers. + np.save(f"{GEN_DIR}/VAE_Generated_Geo_{geometry}_E_{energy}_Angle_{angle}.npy", generated_events) + + +if __name__ == "__main__": + exit(main()) diff --git a/examples/extended/parameterisations/Par04/training/model.py b/examples/extended/parameterisations/Par04/training/model.py deleted file mode 100644 index 6400f0abbf..0000000000 --- a/examples/extended/parameterisations/Par04/training/model.py +++ /dev/null @@ -1,134 +0,0 @@ -""" -** model ** -defines the VAE model class -""" - -# Setup -import keras -from tensorflow.keras.layers import Input, Dense, Lambda, Layer, Multiply, Add, concatenate -from tensorflow.keras.layers import BatchNormalization -from tensorflow.keras.models import Model -from tensorflow.keras import backend as K -from tensorflow.keras import metrics - -# VAE model class -class VAE: - def __init__(self, **kwargs): - self.original_dim = kwargs.get('original_dim') - self.latent_dim = kwargs.get('latent_dim') - self.batch_size = kwargs.get('batch_size') - self.intermediate_dim1 = kwargs.get('intermediate_dim1') - self.intermediate_dim2 = kwargs.get('intermediate_dim2') - self.intermediate_dim3 = kwargs.get('intermediate_dim3') - self.intermediate_dim4 = kwargs.get('intermediate_dim4') - self.epsilon_std = kwargs.get('epsilon_std') - self.mu = kwargs.get('mu') - self.lr = kwargs.get('lr') - self.epochs = kwargs.get('epochs') - self.activ = kwargs.get('activ') - self.outActiv = kwargs.get('outActiv') - self.validation_split = kwargs.get('validation_split') - self.wReco = kwargs.get('wReco') - self.wkl = kwargs.get('wkl') - self.optimizer = kwargs.get('optimizer') - self.ki = kwargs.get('ki') - self.bi = kwargs.get('bi') - self.checkpoint_dir = kwargs.get('checkpoint_dir') - self.earlyStop = kwargs.get('earlyStop') - # KL divergence computation - class KLDivergenceLayer(Layer): - def __init__(self, *args, **kwargs): - self.is_placeholder = True - super(KLDivergenceLayer, self).__init__(*args, **kwargs) - def call(self, inputs): - mu, log_var = inputs - kl_batch = -self.wkl * K.sum(1 + log_var - K.square(mu) - K.exp(log_var), axis=-1) - self.add_loss(K.mean(kl_batch), inputs=inputs) - return inputs - # Build the encoder - xIn = Input((input_dim,)) - eCond = Input(shape=(1,)) - angleCond = Input(shape=(1,)) - GeoCond = Input(shape=(2,)) - mergedInput = concatenate([xIn, eCond, angleCond, GeoCond],) - h1 = Dense(self.intermediate_dim1, activation=self.activ, - kernel_initializer=self.ki, bias_initializer=self.bi)(mergedInput) - h1 = BatchNormalization()(h1) - h2 = Dense(self.intermediate_dim2, activation=self.activ, - kernel_initializer=self.ki, bias_initializer=self.bi)(h1) - h2 = BatchNormalization()(h2) - h3 = Dense(self.intermediate_dim3, activation=self.activ, - kernel_initializer=self.ki, bias_initializer=self.bi)(h2) - h3 = BatchNormalization()(h3) - h4 = Dense(self.intermediate_dim4, activation=self.activ, - kernel_initializer=self.ki, bias_initializer=self.bi)(h3) - h = BatchNormalization()(h4) - z_mu = Dense(self.latent_dim,)(h) - z_log_var = Dense(self.latent_dim,)(h) - # compute the KL divergence - z_mu, z_log_var = KLDivergenceLayer()([z_mu, z_log_var]) - # Reparameterization trick - z_sigma = Lambda(lambda t: K.exp(.5*t))(z_log_var) - eps = Input(tensor=K.random_normal(shape=(K.shape(xIn)[0], self.latent_dim))) - z_eps = Multiply()([z_sigma, eps]) - z = Add()([z_mu, z_eps]) - zCond = concatenate([z,eCond,angleCond,GeoCond],) - # This defines the encoder which takes noise and input and outputs the latent variable z - self.encoder = Model(inputs=[xIn,eCond,angleCond,GeoCond,eps], outputs=zCond) - # Build the decoder / Generator - decoL4 = Dense(self.intermediate_dim4, input_dim=(self.latent_dim+4), - activation=self.activ, kernel_initializer=self.ki, bias_initializer=self.bi) - decoL4_BN = BatchNormalization() - decoL3 = Dense(self.intermediate_dim3, input_dim=self.intermediate_dim4, - activation=self.activ, kernel_initializer=self.ki, bias_initializer=self.bi) - decoL3_BN = BatchNormalization() - decoL2 = Dense(self.intermediate_dim2, input_dim=self.intermediate_dim3, - activation=self.activ, kernel_initializer=self.ki, bias_initializer=self.bi) - decoL2_BN = BatchNormalization() - decoL1 = Dense(self.intermediate_dim1, input_dim=self.intermediate_dim2, - activation=self.activ, kernel_initializer=self.ki, bias_initializer=self.bi) - decoL1_BN = BatchNormalization() - x_reco = Dense(self.original_dim, activation=self.outActiv) - zDecoInput = Input(shape=(latent_dim+4,)) - x_recoDeco = x_reco((((decoL1_BN(decoL1(decoL2_BN(decoL2(decoL3_BN(decoL3(decoL4_BN(decoL4(zDecoInput)))))))))))) - # This defines the decoder which takes an input of size latent dimension + condition size dimension and outputs the reconstructed input version - self.decoder = Model(inputs=[zDecoInput], outputs=[x_recoDeco]) - # This defines the reconstruction loss of the VAE model - def reconstructionLoss(G4_Event, VAE_Event): - return K.mean(self.wReco*K.sum(metrics.binary_crossentropy(G4_Event, VAE_Event))) - # This defines the VAE model (encoder and decoder) - self.vae = Model(inputs=[xIn,eCond,angleCond,GeoCond,eps], outputs=[self.decoder(self.encoder([xIn, eCond,angleCond,GeoCond,eps]))]) - self.vae.compile(optimizer=self.optimizer, loss=[reconstructionLoss] ) - # Training function - def train(self, trainSet, eCond, angleCond, GeoCond): - # If the early stopping flag is on then stop the training when a monitored metric (validation) has stopped improving after (patience) number of epochs - if(self.earlyStop): - from tensorflow.keras.callbacks import EarlyStopping - cP = EarlyStopping(monitor='val_loss', min_delta=0.01, patience=5,verbose=1) - # If the early stopping flag is off then run the training for the number of epochs and save the model every (period) epochs - else: - cP = keras.callbacks.ModelCheckpoint('%s/VAE-{epoch:02d}.h5'%self.checkpoint_dir, monitor='val_loss', - verbose=0, save_best_only=False, save_weights_only=False, mode='auto', - period=100) - noise = np.random.normal(0,1, size = (trainSet.shape[0],latent_dim)) - history = self.vae.fit([trainSet, eCond, angleCond, GeoCond,noise], [trainSet], - shuffle=True, - epochs=self.epochs, - verbose=1, - validation_split=self.validation_split, - batch_size=self.batch_size, - callbacks=[cP] - ) - return history - # Encode function uses only the encoder to generate the latent representation of an input - def encode(self, dataSet): - return self.encoder.predict(dataSet, batch_size=self.batch_size) - # Generate function uses only the decoder to generate new showers using the z_sample which is a vector of 10D Gaussians in addition to - def generate(self, z_sample): - return self.decoder.predict([z_sample]) - # Encode function - def predict(self, dataSet): - return self.vae.predict(dataSet, batch_size=self.batch_size) - # Encode function - def evaluate(self, dataSet): - return self.vae.evaluate(dataSet, batch_size=self.batch_size) diff --git a/examples/extended/parameterisations/Par04/training/requirements.txt b/examples/extended/parameterisations/Par04/training/requirements.txt new file mode 100644 index 0000000000..706b621f8e --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/requirements.txt @@ -0,0 +1,12 @@ +tensorflow==2.9.1 +numpy==1.23.1 +h5py==3.7.0 +matplotlib==3.5.2 +optuna==2.10.1 +mysqlclient==2.1.1 +pymysql==1.0.2 +scikit-learn==1.1.1 +scipy==1.8.1 +wandb==0.13.1 +tf2onnx==1.12.0 +onnxruntime==1.12.1 diff --git a/examples/extended/parameterisations/Par04/training/setup.py b/examples/extended/parameterisations/Par04/training/setup.py new file mode 100644 index 0000000000..1f038b8696 --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/setup.py @@ -0,0 +1,16 @@ +""" +** setup ** +creates necessary folders +""" + +import os + +from core.constants import INIT_DIR, GLOBAL_CHECKPOINT_DIR, CONV_DIR, VALID_DIR, GEN_DIR + +for folder in [INIT_DIR, # Directory to load the full simulation dataset + GLOBAL_CHECKPOINT_DIR, # Directory to save VAE checkpoints + CONV_DIR, # Directory to save model after conversion to a format that can be used in C++ + VALID_DIR, # Directory to save validation plots + GEN_DIR, # Directory to save VAE generated showers + ]: + os.system(f"mkdir {folder}") diff --git a/examples/extended/parameterisations/Par04/training/train.py b/examples/extended/parameterisations/Par04/training/train.py index 338c50e030..1dde8d72c1 100644 --- a/examples/extended/parameterisations/Par04/training/train.py +++ b/examples/extended/parameterisations/Par04/training/train.py @@ -1,87 +1,52 @@ -""" -** train ** - - defines data loading parameters and calls the data preprocessing function - - defines the model parameters and instantiates the VAE model - - performs the training -""" +from argparse import ArgumentParser -# 1. Data loading/preprocessing -from utils import * -# Directory where the HDF5 files are saved -init_dir = './detector_' -# Number of calorimeter layers -nCells_z = 45 -# Segmentation in the r,phi direction -nCells_r = 18 -nCells_phi = 50 -# Total number of readout cells (represents the number of nodes in the input/output layers of the model) -original_dim = nCells_z*nCells_r*nCells_phi -# Minimum and maximum primary particle energy to consider for training in GeV units -min_energy = 1 -max_energy = 1024 -# Minimum and maximum primary particle angle to consider for training in degrees units -min_angle = 50 -max_angle = 90 -# The preprocess function reads the data and performs preprocessing and encoding for the values of energy, angle and geometry -energies_Train,condE_Train,condAngle_Train,condGeo_Train = preprocess(init_dir,original_dim,min_angle,max_angle,min_energy,max_energy) +from core.constants import GPU_IDS, MAX_GPU_MEMORY_ALLOCATION, GLOBAL_CHECKPOINT_DIR +from utils.gpu_limiter import GPULimiter +from utils.preprocess import preprocess -# 2. Model architecture -import model -# Instantiate a VAE model and define all the parameters -vae = model.VAE(batch_size=100 , - original_dim=original_dim, - intermediate_dim1=100, - intermediate_dim2=50, - intermediate_dim3=20, - intermediate_dim4=10+4, - latent_dim=10, - epsilon_std=1., - mu=0, - epochs=10000, - lr=0.001, - activ=tf.keras.layers.LeakyReLU(), - outActiv='sigmoid', - validation_split=0.05, - wReco=original_dim, - wkl=0.5, - optimizer=optimizers.Adam(), - ki='RandomNormal', - bi='Zeros', - earlyStop=False, - checkpoint_dir = "." - ) -# 3. Model training -history = vae.train(energies_Train, - condE_Train, - condAngle_Train, - condGeo_Train - ) +def parse_args(): + argument_parser = ArgumentParser() + argument_parser.add_argument("--max-gpu-memory-allocation", type=int, default=MAX_GPU_MEMORY_ALLOCATION) + argument_parser.add_argument("--gpu-ids", type=str, default=GPU_IDS) + argument_parser.add_argument("--study-name", type=str, default="default_study_name") + args = argument_parser.parse_args() + return args -# 4. Save the model (ony the decoder part) after traing -self.vae.decoder.save("decoder.h5") -# 5. Convert the model to ONNX format -import keras2onnx -import tensorflow -# Create the Keras model and convert itinto an ONNX model -kerasModel = tensorflow.keras.models.load_model("decoder.h5") -onnxModel = keras2onnx.convert_keras(kerasModel,"name") -# Save the ONNX model. Generator.onnx can then be used to perform the inference in the example -keras2onnx.save_model(onnxModel,"Generator.onnx") +def main(): + # 0. Parse arguments. + args = parse_args() + max_gpu_memory_allocation = args.max_gpu_memory_allocation + gpu_ids = args.gpu_ids + study_name = args.study_name + checkpoint_dir = f"{GLOBAL_CHECKPOINT_DIR}/{study_name}" -""" -# In order to convert the model into a format that can be used with the LWTNN library -# 1. After training : -# serialize model to JSON -json_model = self.vae.decoder.to_json() -with open("decoder.json", "w") as json_file: - json_file.write(json_model) -# serialize weights to HDF5 -self.vae.decoder.save_weights("decoder.h5") -# 2. Externally, after building the LWTNN code available at https://github.com/lwtnn/lwtnn -# 2.1 Run the kerasfunc2json python script (available in lwtnn/ converters/) to generate a template file of your functional model input variables by calling: -# $ kerasfunc2json.py decoder.json decoder.h5 > inputs.json -# 2.2 Run again kerasfunc2json script to get your output file that would be used for the inference in the example -# $ kerasfunc2json.py decoder.json decoder.h5 inputs.json > Generator.json -""" + # 1. Set GPU memory limits. + GPULimiter(_gpu_ids=gpu_ids, _max_gpu_memory_allocation=max_gpu_memory_allocation)() + + # 2. Data loading/preprocessing + + # The preprocess function reads the data and performs preprocessing and encoding for the values of energy, + # angle and geometry + energies_train, cond_e_train, cond_angle_train, cond_geo_train = preprocess() + + # 3. Manufacture model handler. + + # This import must be local because otherwise it is impossible to call GPULimiter. + from core.model import VAEHandler + vae = VAEHandler(_wandb_project_name=study_name, _wandb_tags=["single training"], _checkpoint_dir=checkpoint_dir) + + # 4. Train model. + histories = vae.train(energies_train, + cond_e_train, + cond_angle_train, + cond_geo_train + ) + + # Note : One history object can be used to plot the loss evaluation as function of the epochs. Remember that the + # function returns a list of those objects. Each of them represents a different fold of cross validation. + + +if __name__ == "__main__": + exit(main()) diff --git a/examples/extended/parameterisations/Par04/training/tune_model.py b/examples/extended/parameterisations/Par04/training/tune_model.py new file mode 100644 index 0000000000..a173761057 --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/tune_model.py @@ -0,0 +1,48 @@ +from argparse import ArgumentParser + +from core.constants import MAX_GPU_MEMORY_ALLOCATION, GPU_IDS +from utils.gpu_limiter import GPULimiter +from utils.optimizer import OptimizerType + +# Hyperparemeters to be optimized. +discrete_parameters = {"nb_hidden_layers": (1, 6), "latent_dim": (15, 100)} +continuous_parameters = {"learning_rate": (0.0001, 0.005)} +categorical_parameters = {"optimizer_type": [OptimizerType.ADAM, OptimizerType.RMSPROP]} + + +def parse_args(): + argument_parser = ArgumentParser() + argument_parser.add_argument("--study-name", type=str, default="default_study_name") + argument_parser.add_argument("--storage", type=str) + argument_parser.add_argument("--max-gpu-memory-allocation", type=int, default=MAX_GPU_MEMORY_ALLOCATION) + argument_parser.add_argument("--gpu-ids", type=str, default=GPU_IDS) + args = argument_parser.parse_args() + return args + + +def main(): + # 0. Parse arguments. + args = parse_args() + study_name = args.study_name + storage = args.storage + max_gpu_memory_allocation = args.max_gpu_memory_allocation + gpu_ids = args.gpu_ids + + # 1. Set GPU memory limits. + GPULimiter(_gpu_ids=gpu_ids, _max_gpu_memory_allocation=max_gpu_memory_allocation)() + + # 2. Manufacture hyperparameter tuner. + + # This import must be local because otherwise it is impossible to call GPULimiter. + from utils.hyperparameter_tuner import HyperparameterTuner + hyperparameter_tuner = HyperparameterTuner(discrete_parameters, continuous_parameters, categorical_parameters, + storage, study_name) + + # 3. Run main tuning function. + hyperparameter_tuner.tune() + # Watch out! This script neither deletes the study in DB nor deletes the database itself. If you are using + # parallelized optimization, then you should care about deleting study in the database by yourself. + + +if __name__ == "__main__": + exit(main()) diff --git a/examples/extended/parameterisations/Par04/training/utils.py b/examples/extended/parameterisations/Par04/training/utils.py deleted file mode 100644 index d1c6d2fd86..0000000000 --- a/examples/extended/parameterisations/Par04/training/utils.py +++ /dev/null @@ -1,57 +0,0 @@ -""" -** utils ** -defines the data loading and preprocessing function -""" - -# Setup -import h5py -import numpy as np - -# preprocess function returns the array of the shower energies and the condition arrays -""" - - init_dir: the name of the directory which contains the HDF5 files - - size_1DVec: represents the size of the input and output layer of the VAE which corresponds to the total number of readout cells - - min_energy,max_energy: minimum and maximum primary particle energy to consider for training in GeV units - - min_angle and max_angle: minimum and maximum primary particle angle to consider for training in degrees units -""" -def preprocess(init_dir,size_1DVec,min_angle,max_angle,min_energy,max_energy): - energies_Train = [] - condE_Train = [] - condAngle_Train = [] - condGeo_Train = [] - # This example is trained using 2 detector geometries - for geo in [ 'SiW' , 'SciPb' ]: - dirGeo = init_dir + geo + '/' - energyParticle=min_energy - # loop over the energies in powers of 2 - while(energyParticle<=max_energy): - # loop over the angles in a step of 10 - for angleParticle in range(min_angle,max_angle+10,10): - fName = 'Energy_%s_Angle_%s.hdf5' %(energyParticle,angleParticle) - fName = dirGeo + fName - # read the HDF5 file - h5 = h5py.File(fName,'r') - # get the key value of the group from the HDF5 file - GroupKey = 'Grp_Angle_%s_E_%s'%(angleParticle,energyParticle) - # get all key values of one group - listKeys = list( h5[GroupKey].keys() ) - # loop over the events - for ckey in listKeys: - # scale the energy of each cell to the energy of the primary particle (in MeV units) - energyArray = np.array(h5[GroupKey][ckey])/(energyParticle*1000) - energies_Train.append( energyArray.reshape(size_1DVec) ) - # build the energy and angle condition vectors - condE_Train.append( [energyParticle/mamax_energyxE]*len(listKeys) ) - condAngle_Train.append( [angleParticle/max_angle]*len(listKeys) ) - # build the geometry condition vector (1 hot encoding vector) - if( geo == 'SiW' ): - condGeo_Train.append( [[0,1]]*len(listKeys) ) - else: - condGeo_Train.append( [[1,0]]*len(listKeys) ) - energyParticle*=2 - # return numpy arrays - energies_Train = np.array(energies_Train) - condE_Train = np.concatenate(condE_Train) - condAngle_Train = np.concatenate(condAngle_Train) - condGeo_Train = np.concatenate(condGeo_Train) - return energies_Train,condE_Train,condAngle_Train,condGeo_Train diff --git a/examples/extended/parameterisations/Par04/training/utils/gpu_limiter.py b/examples/extended/parameterisations/Par04/training/utils/gpu_limiter.py new file mode 100644 index 0000000000..a90d2d9e1e --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/utils/gpu_limiter.py @@ -0,0 +1,36 @@ +import os +from dataclasses import dataclass + +import tensorflow as tf + + +@dataclass +class GPULimiter: + """ + Class responsible to set the limits of possible GPU usage by TensorFlow. Currently, the limiter creates one + instance of logical device per physical device. This can be changed in a future. + + Attributes: + _gpu_ids: A string representing visible devices for the process. Identifiers of physical GPUs should + be separated by commas (no spaces). + _max_gpu_memory_allocation: An integer specifying limit of allocated memory per logical device. + + """ + _gpu_ids: str + _max_gpu_memory_allocation: int + + def __call__(self): + os.environ["CUDA_VISIBLE_DEVICES"] = f"{self._gpu_ids}" + gpus = tf.config.list_physical_devices('GPU') + if gpus: + # Restrict TensorFlow to only allocate max_gpu_memory_allocation*1024 MB of memory on one of the GPUs + try: + for gpu in gpus: + tf.config.set_logical_device_configuration( + gpu, + [tf.config.LogicalDeviceConfiguration(memory_limit=1024 * self._max_gpu_memory_allocation)]) + logical_gpus = tf.config.list_logical_devices('GPU') + print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs") + except RuntimeError as e: + # Virtual devices must be set before GPUs have been initialized + print(e) diff --git a/examples/extended/parameterisations/Par04/training/utils/hyperparameter_tuner.py b/examples/extended/parameterisations/Par04/training/utils/hyperparameter_tuner.py new file mode 100644 index 0000000000..da274b7572 --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/utils/hyperparameter_tuner.py @@ -0,0 +1,216 @@ +from dataclasses import dataclass +from typing import Tuple, Dict, Any, List + +import numpy as np +from optuna import Trial, create_study, get_all_study_summaries, load_study +from optuna.pruners import MedianPruner +from optuna.samplers import TPESampler +from optuna.trial import TrialState + +from core.constants import LEARNING_RATE, BATCH_SIZE_PER_REPLICA, ACTIVATION, OUT_ACTIVATION, \ + OPTIMIZER_TYPE, KERNEL_INITIALIZER, BIAS_INITIALIZER, N_TRIALS, LATENT_DIM, \ + INTERMEDIATE_DIMS, MAX_HIDDEN_LAYER_DIM, GLOBAL_CHECKPOINT_DIR +from core.model import VAEHandler +from utils.preprocess import preprocess + + +@dataclass +class HyperparameterTuner: + """Tuner which looks for the best hyperparameters of a Variational Autoencoder specified in model.py. + + Currently, supported hyperparameters are: dimension of latent space, number of hidden layers, learning rate, + activation function, activation function after the final layer, optimizer type, kernel initializer, + bias initializer, batch size. + + Attributes: + _discrete_parameters: A dictionary of hyperparameters taking discrete values in the range [low, high]. + _continuous_parameters: A dictionary of hyperparameters taking continuous values in the range [low, high]. + _categorical_parameters: A dictionary of hyperparameters taking values specified by the list of them. + _storage: A string representing URL to a database required for a distributed training + _study_name: A string, a name of study. + + """ + _discrete_parameters: Dict[str, Tuple[int, int]] + _continuous_parameters: Dict[str, Tuple[float, float]] + _categorical_parameters: Dict[str, List[Any]] + _storage: str = None + _study_name: str = None + + def _check_hyperparameters(self): + available_hyperparameters = ["latent_dim", "nb_hidden_layers", "learning_rate", "activation", "out_activation", + "optimizer_type", "kernel_initializer", "bias_initializer", + "batch_size_per_replica"] + hyperparameters_to_be_optimized = list(self._discrete_parameters.keys()) + list( + self._continuous_parameters.keys()) + list(self._categorical_parameters.keys()) + for hyperparameter_name in hyperparameters_to_be_optimized: + if hyperparameter_name not in available_hyperparameters: + raise Exception(f"Unknown hyperparameter: {hyperparameter_name}") + + def __post_init__(self): + self._check_hyperparameters() + self._energies_train, self._cond_e_train, self._cond_angle_train, self._cond_geo_train = preprocess() + + if self._storage is not None and self._study_name is not None: + # Parallel optimization + study_summaries = get_all_study_summaries(self._storage) + if any(self._study_name == study_summary.study_name for study_summary in study_summaries): + # The study is already created in the database. Load it. + self._study = load_study(self._study_name, self._storage) + else: + # The study does not exist in the database. Create a new one. + self._study = create_study(storage=self._storage, sampler=TPESampler(), pruner=MedianPruner(), + study_name=self._study_name, direction="minimize") + else: + # Single optimization + self._study = create_study(sampler=TPESampler(), pruner=MedianPruner(), direction="minimize") + + def _create_model_handler(self, trial: Trial) -> VAEHandler: + """For a given trail builds the model. + + Optuna suggests parameters like dimensions of particular layers of the model, learning rate, optimizer, etc. + + Args: + trial: Optuna's trial + + Returns: + Variational Autoencoder (VAE) + """ + + # Discrete parameters + if "latent_dim" in self._discrete_parameters.keys(): + latent_dim = trial.suggest_int(name="latent_dim", + low=self._discrete_parameters["latent_dim"][0], + high=self._discrete_parameters["latent_dim"][1]) + else: + latent_dim = LATENT_DIM + + if "nb_hidden_layers" in self._discrete_parameters.keys(): + nb_hidden_layers = trial.suggest_int(name="nb_hidden_layers", + low=self._discrete_parameters["nb_hidden_layers"][0], + high=self._discrete_parameters["nb_hidden_layers"][1]) + + all_possible = np.arange(start=latent_dim + 5, stop=MAX_HIDDEN_LAYER_DIM) + chunks = np.array_split(all_possible, nb_hidden_layers) + ranges = [(chunk[0], chunk[-1]) for chunk in chunks] + ranges = reversed(ranges) + + # Cast from np.int to int allows to become JSON serializable. + intermediate_dims = [trial.suggest_int(name=f"intermediate_dim_{i}", low=int(low), high=int(high)) for + i, (low, high) + in enumerate(ranges)] + else: + intermediate_dims = INTERMEDIATE_DIMS + + if "batch_size_per_replica" in self._discrete_parameters.keys(): + batch_size_per_replica = trial.suggest_int(name="batch_size_per_replica", + low=self._discrete_parameters["batch_size_per_replica"][0], + high=self._discrete_parameters["batch_size_per_replica"][1]) + else: + batch_size_per_replica = BATCH_SIZE_PER_REPLICA + + # Continuous parameters + if "learning_rate" in self._continuous_parameters.keys(): + learning_rate = trial.suggest_float(name="learning_rate", + low=self._continuous_parameters["learning_rate"][0], + high=self._continuous_parameters["learning_rate"][1]) + else: + learning_rate = LEARNING_RATE + + # Categorical parameters + if "activation" in self._categorical_parameters.keys(): + activation = trial.suggest_categorical(name="activation", + choices=self._categorical_parameters["activation"]) + else: + activation = ACTIVATION + + if "out_activation" in self._categorical_parameters.keys(): + out_activation = trial.suggest_categorical(name="out_activation", + choices=self._categorical_parameters["out_activation"]) + else: + out_activation = OUT_ACTIVATION + + if "optimizer_type" in self._categorical_parameters.keys(): + optimizer_type = trial.suggest_categorical(name="optimizer_type", + choices=self._categorical_parameters["optimizer_type"]) + else: + optimizer_type = OPTIMIZER_TYPE + + if "kernel_initializer" in self._categorical_parameters.keys(): + kernel_initializer = trial.suggest_categorical(name="kernel_initializer", + choices=self._categorical_parameters["kernel_initializer"]) + else: + kernel_initializer = KERNEL_INITIALIZER + + if "bias_initializer" in self._categorical_parameters.keys(): + bias_initializer = trial.suggest_categorical(name="bias_initializer", + choices=self._categorical_parameters["bias_initializer"]) + else: + bias_initializer = BIAS_INITIALIZER + + checkpoint_dir = f"{GLOBAL_CHECKPOINT_DIR}/{self._study_name}/trial_{trial.number:03d}" + + return VAEHandler(_wandb_project_name=self._study_name, + _wandb_tags=["hyperparameter tuning", f"trial {trial.number}"], + _batch_size_per_replica=batch_size_per_replica, + _intermediate_dims=intermediate_dims, + latent_dim=latent_dim, + _learning_rate=learning_rate, + _activation=activation, + _out_activation=out_activation, + _optimizer_type=optimizer_type, + _kernel_initializer=kernel_initializer, + _bias_initializer=bias_initializer, + _checkpoint_dir=checkpoint_dir, + _early_stop=True, + _save_model_every_epoch=False, + _save_best_model=True, + ) + + def _objective(self, trial: Trial) -> float: + """For a given trial trains the model and returns an average validation loss. + + Args: + trial: Optuna's trial + + Returns: One float numer which is a validation loss. It can be either calculated as an average of k trainings + performed in cross validation mode or is one number obtained from validation on unseen before, some fraction + of the dataset. + """ + + # Generate the trial model. + model_handler = self._create_model_handler(trial) + + # Train the model. + verbose = True + histories = model_handler.train(self._energies_train, self._cond_e_train, self._cond_angle_train, + self._cond_geo_train, verbose) + + # Return validation loss (currently it is treated as an objective goal). Notice that we take into account the + # best model according to the validation loss. + final_validation_losses = [np.min(history.history["val_loss"]) for history in histories] + avg_validation_loss = np.mean(final_validation_losses).item() + return avg_validation_loss + + def tune(self) -> None: + """Main tuning function. + + Based on a given study, tunes the model and prints detailed information about the best trial (value of the + objective function and adjusted parameters). + """ + + self._study.optimize(func=self._objective, n_trials=N_TRIALS, gc_after_trial=True) + pruned_trials = self._study.get_trials(deepcopy=False, states=(TrialState.PRUNED,)) + complete_trials = self._study.get_trials(deepcopy=False, states=(TrialState.COMPLETE,)) + print("Study statistics: ") + print(" Number of finished trials: ", len(self._study.trials)) + print(" Number of pruned trials: ", len(pruned_trials)) + print(" Number of complete trials: ", len(complete_trials)) + + print("Best trial:") + trial = self._study.best_trial + + print(" Value: ", trial.value) + + print(" Params: ") + for key, value in trial.params.items(): + print(f" {key}: {value}") diff --git a/examples/extended/parameterisations/Par04/training/utils/observables.py b/examples/extended/parameterisations/Par04/training/utils/observables.py new file mode 100644 index 0000000000..850c48eade --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/utils/observables.py @@ -0,0 +1,216 @@ +from dataclasses import dataclass +from enum import Enum + +import numpy as np + +from core.constants import N_CELLS_Z, N_CELLS_R, SIZE_Z, SIZE_R + + +@dataclass +class Observable: + """ An abstract class defining interface of all observables. + + Do not use this class directly. + + Attributes: + _input: A numpy array with shape = (NE, R, PHI, Z), where NE stays for number of events. + """ + _input: np.ndarray + + +class ProfileType(Enum): + """ Enum class of various profile types. + + """ + LONGITUDINAL = 0 + LATERAL = 1 + + +@dataclass +class Profile(Observable): + """ An abstract class describing behaviour of LongitudinalProfile and LateralProfile. + + Do not use this class directly. Use LongitudinalProfile or LateralProfile instead. + + """ + + def calc_profile(self) -> np.ndarray: + pass + + def calc_first_moment(self) -> np.ndarray: + pass + + def calc_second_moment(self) -> np.ndarray: + pass + + +@dataclass +class LongitudinalProfile(Profile): + """ A class defining observables related to LongitudinalProfile. + + Attributes: + _energies_per_event: A numpy array with shape = (NE, Z) where NE stays for a number of events. An + element [i, j] is a sum of energies detected in all cells located in a jth layer for an ith event. + _total_energy_per_event: A numpy array with shape = (NE, ). An element [i] is a sum of energies detected in all + cells for an ith event. + _w: A numpy array = [0, 1, ..., Z - 1] which represents weights used in computation of first and second moment. + + """ + + def __post_init__(self): + self._energies_per_event = np.sum(self._input, axis=(1, 2)) + self._total_energy_per_event = np.sum(self._energies_per_event, axis=1) + self._w = np.arange(N_CELLS_Z) + + def calc_profile(self) -> np.ndarray: + """ Calculates a longitudinal profile. + + A longitudinal profile for a given layer l (l = 0, ..., Z - 1) is defined as: + sum_{i = 0}^{NE - 1} energy_per_event[i, l]. + + Returns: + A numpy array of longitudinal profiles for each layer with a shape = (Z, ). + + """ + return np.sum(self._energies_per_event, axis=0) + + def calc_first_moment(self) -> np.ndarray: + """ Calculates a first moment of profile. + + A first moment of a longitudinal profile for a given event e (e = 0, ..., NE - 1) is defined as: + FM[e] = alpha * (sum_{i = 0}^{Z - 1} energies_per_event[e, i] * w[i]) / total_energy_per_event[e], where + w = [0, 1, 2, ..., Z - 1], + alpha = SIZE_Z defined in core/constants.py. + + Returns: + A numpy array of first moments of longitudinal profiles for each event with a shape = (NE, ). + + """ + return SIZE_Z * np.dot(self._energies_per_event, self._w) / self._total_energy_per_event + + def calc_second_moment(self) -> np.ndarray: + """ Calculates a second moment of a longitudinal profile. + + A second moment of a longitudinal profile for a given event e (e = 0, ..., NE - 1) is defined as: + SM[e] = (sum_{i = 0}^{Z - 1} (w[i] - alpha - FM[e])^2 * energies_per_event[e, i]) total_energy_per_event[e], + where + w = [0, 1, 2, ..., Z - 1], + alpha = SIZE_Z defined in ochre/constants.py + + Returns: + A numpy array of second moments of longitudinal profiles for each event with a shape = (NE, ). + """ + first_moment = self.calc_first_moment() + first_moment = np.expand_dims(first_moment, axis=1) + w = np.expand_dims(self._w, axis=0) + # w has now a shape = [1, Z] and first moment has a shape = [NE, 1]. There is a broadcasting in the line + # below how that one create an array with a shape = [NE, Z] + return np.sum(np.multiply(np.power(w * SIZE_Z - first_moment, 2), self._energies_per_event), + axis=1) / self._total_energy_per_event + + +@dataclass +class LateralProfile(Profile): + """ A class defining observables related to LateralProfile. + + Attributes: + _energies_per_event: A numpy array with shape = (NE, R) where NE stays for a number of events. An + element [i, j] is a sum of energies detected in all cells located in a jth layer for an ith event. + _total_energy_per_event: A numpy array with shape = (NE, ). An element [i] is a sum of energies detected in all + cells for an ith event. + _w: A numpy array = [0, 1, ..., R - 1] which represents weights used in computation of first and second moment. + + """ + + def __post_init__(self): + self._energies_per_event = np.sum(self._input, axis=(2, 3)) + self._total_energy_per_event = np.sum(self._energies_per_event, axis=1) + self._w = np.arange(N_CELLS_R) + + def calc_profile(self) -> np.ndarray: + """ Calculates a lateral profile. + + A lateral profile for a given layer l (l = 0, ..., R - 1) is defined as: + sum_{i = 0}^{NE - 1} energy_per_event[i, l]. + + Returns: + A numpy array of longitudinal profiles for each layer with a shape = (R, ). + + """ + return np.sum(self._energies_per_event, axis=0) + + def calc_first_moment(self) -> np.ndarray: + """ Calculates a first moment of profile. + + A first moment of a lateral profile for a given event e (e = 0, ..., NE - 1) is defined as: + FM[e] = alpha * (sum_{i = 0}^{R - 1} energies_per_event[e, i] * w[i]) / total_energy_per_event[e], where + w = [0, 1, 2, ..., R - 1], + alpha = SIZE_R defined in core/constants.py. + + Returns: + A numpy array of first moments of lateral profiles for each event with a shape = (NE, ). + + """ + return SIZE_R * np.dot(self._energies_per_event, self._w) / self._total_energy_per_event + + def calc_second_moment(self) -> np.ndarray: + """ Calculates a second moment of a lateral profile. + + A second moment of a lateral profile for a given event e (e = 0, ..., NE - 1) is defined as: + SM[e] = (sum_{i = 0}^{R - 1} (w[i] - alpha - FM[e])^2 * energies_per_event[e, i]) total_energy_per_event[e], + where + w = [0, 1, 2, ..., R - 1], + alpha = SIZE_R defined in ochre/constants.py + + Returns: + A numpy array of second moments of lateral profiles for each event with a shape = (NE, ). + """ + first_moment = self.calc_first_moment() + first_moment = np.expand_dims(first_moment, axis=1) + w = np.expand_dims(self._w, axis=0) + # w has now a shape = [1, R] and first moment has a shape = [NE, 1]. There is a broadcasting in the line + # below how that one create an array with a shape = [NE, R] + return np.sum(np.multiply(np.power(w * SIZE_R - first_moment, 2), self._energies_per_event), + axis=1) / self._total_energy_per_event + + +@dataclass +class Energy(Observable): + """ A class defining observables total energy per event and cell energy. + + """ + + def calc_total_energy(self): + """ Calculates total energy detected in an event. + + Total energy for a given event e (e = 0, ..., NE - 1) is defined as a sum of energies detected in all cells + for this event. + + Returns: + A numpy array of total energy values with shape = (NE, ). + """ + return np.sum(self._input, axis=(1, 2, 3)) + + def calc_cell_energy(self): + """ Calculates cell energy. + + Cell energy for a given event (e = 0, ..., NE - 1) is defined by an array with shape (R * PHI * Z) storing + values of energy in particular cells. + + Returns: + A numpy array of cell energy values with shape = (NE * R * PHI * Z, ). + + """ + return np.copy(self._input).reshape(-1) + + def calc_energy_per_layer(self): + """ Calculates total energy detected in a particular layer. + + Energy per layer for a given event (e = 0, ..., NE - 1) is defined by an array with shape (Z, ) storing + values of total energy detected in a particular layer + + Returns: + A numpy array of cell energy values with shape = (NE, Z). + + """ + return np.sum(self._input, axis=(1, 2)) diff --git a/examples/extended/parameterisations/Par04/training/utils/optimizer.py b/examples/extended/parameterisations/Par04/training/utils/optimizer.py new file mode 100644 index 0000000000..9c13da9d5c --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/utils/optimizer.py @@ -0,0 +1,55 @@ +from enum import IntEnum + +from tensorflow.keras.optimizers import Optimizer, Adadelta, Adagrad, Adam, Adamax, Ftrl, SGD, Nadam, RMSprop + + +class OptimizerType(IntEnum): + """ Enum class of various optimizer types. + + This class must be IntEnum to be JSON serializable. This feature is important because, when Optuna's study is + saved in a relational DB, all objects must be JSON serializable. + """ + + SGD = 0 + RMSPROP = 1 + ADAM = 2 + ADADELTA = 3 + ADAGRAD = 4 + ADAMAX = 5 + NADAM = 6 + FTRL = 7 + + +class OptimizerFactory: + """Factory of optimizer like Stochastic Gradient Descent, RMSProp, Adam, etc. + """ + + @staticmethod + def create_optimizer(optimizer_type: OptimizerType, learning_rate: float) -> Optimizer: + """For a given type and a learning rate creates an instance of optimizer. + + Args: + optimizer_type: a type of optimizer + learning_rate: a learning rate that should be passed to an optimizer + + Returns: + An instance of optimizer. + + """ + if optimizer_type == OptimizerType.SGD: + return SGD(learning_rate) + elif optimizer_type == OptimizerType.RMSPROP: + return RMSprop(learning_rate) + elif optimizer_type == OptimizerType.ADAM: + return Adam(learning_rate) + elif optimizer_type == OptimizerType.ADADELTA: + return Adadelta(learning_rate) + elif optimizer_type == OptimizerType.ADAGRAD: + return Adagrad(learning_rate) + elif optimizer_type == OptimizerType.ADAMAX: + return Adamax(learning_rate) + elif optimizer_type == OptimizerType.NADAM: + return Nadam(learning_rate) + else: + # i.e. optimizer_type == OptimizerType.FTRL + return Ftrl(learning_rate) diff --git a/examples/extended/parameterisations/Par04/training/utils/plotters.py b/examples/extended/parameterisations/Par04/training/utils/plotters.py new file mode 100644 index 0000000000..5b1ab6f054 --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/utils/plotters.py @@ -0,0 +1,518 @@ +from dataclasses import dataclass +from typing import Tuple + +import numpy as np +from matplotlib import pyplot as plt +from scipy.optimize import curve_fit + +from core.constants import N_CELLS_Z, N_CELLS_R, VALID_DIR, SIZE_Z, SIZE_R, HISTOGRAM_TYPE, FULL_SIM_HISTOGRAM_COLOR, \ + ML_SIM_HISTOGRAM_COLOR, FULL_SIM_GAUSSIAN_COLOR, ML_SIM_GAUSSIAN_COLOR +from utils.observables import LongitudinalProfile, ProfileType, Profile, Energy + +plt.rcParams.update({"font.size": 22}) + + +@dataclass +class Plotter: + """ An abstract class defining interface of all plotters. + + Do not use this class directly. Use ProfilePlotter or EnergyPlotter instead. + + Attributes: + _particle_energy: An integer which is energy of the primary particle in GeV units. + _particle_angle: An integer which is an angle of the primary particle in degrees. + _geometry: A string which is a name of the calorimeter geometry (e.g. SiW, SciPb). + + """ + _particle_energy: int + _particle_angle: int + _geometry: str + + def plot_and_save(self): + pass + + +def _gaussian(x: np.ndarray, a: float, mu: float, sigma: float) -> np.ndarray: + """ Computes a value of a Gaussian. + + Args: + x: An argument of a function. + a: A scaling parameter. + mu: A mean. + sigma: A variance. + + Returns: + A value of a function for given arguments. + + """ + return a * np.exp(-((x - mu)**2 / (2 * sigma**2))) + + +def _best_fit(data: np.ndarray, + bins: np.ndarray, + hist: bool = False) -> Tuple[np.ndarray, np.ndarray]: + """ Finds estimated shape of a Gaussian using Use non-linear least squares. + + Args: + data: A numpy array with values of observables from multiple events. + bins: A numpy array specifying histogram bins. + hist: If histogram is calculated. Then data is the frequencies. + + Returns: + A tuple of two lists. Xs and Ys of predicted curve. + + """ + # Calculate histogram. + if not hist: + hist, _ = np.histogram(data, bins) + else: + hist = data + + # Choose only those bins which are nonzero. Nonzero() return a tuple of arrays. In this case it has a length = 1, + # hence we are interested in its first element. + indices = hist.nonzero()[0] + + # Based on previously chosen nonzero bin, calculate position of xs and ys_bar (true values) which will be used in + # fitting procedure. Len(bins) == len(hist + 1), so we choose middles of bins as xs. + bins_middles = (bins[:-1] + bins[1:]) / 2 + xs = bins_middles[indices] + ys_bar = hist[indices] + + # Set initial parameters for curve fitter. + a0 = np.max(ys_bar) + mu0 = np.mean(xs) + sigma0 = np.var(xs) + + # Fit a Gaussian to the prepared data. + (a, mu, sigma), _ = curve_fit(f=_gaussian, + xdata=xs, + ydata=ys_bar, + p0=[a0, mu0, sigma0], + method="trf", + maxfev=1000) + + # Calculate values of an approximation in given points and return values. + ys = _gaussian(xs, a, mu, sigma) + return xs, ys + + +@dataclass +class ProfilePlotter(Plotter): + """ Plotter responsible for preparing plots of profiles and their first and second moments. + + Attributes: + _full_simulation: A numpy array representing a profile of data generated by Geant4. + _ml_simulation: A numpy array representing a profile of data generated by ML model. + _plot_gaussian: A boolean. Decides whether first and second moment should be plotted as a histogram or + a fitted gaussian. + _profile_type: An enum. A profile can be either lateral or longitudinal. + + """ + _full_simulation: Profile + _ml_simulation: Profile + _plot_gaussian: bool = False + + def __post_init__(self): + # Check if profiles are either both longitudinal or lateral. + full_simulation_type = type(self._full_simulation) + ml_generation_type = type(self._ml_simulation) + assert full_simulation_type == ml_generation_type, "Both profiles within a ProfilePlotter must be the same " \ + "type." + + # Set an attribute with profile type. + if full_simulation_type == LongitudinalProfile: + self._profile_type = ProfileType.LONGITUDINAL + else: + self._profile_type = ProfileType.LATERAL + + def _plot_and_save_customizable_histogram( + self, + full_simulation: np.ndarray, + ml_simulation: np.ndarray, + bins: np.ndarray, + xlabel: str, + observable_name: str, + plot_profile: bool = False, + y_log_scale: bool = False) -> None: + """ Prepares and saves a histogram for a given pair of observables. + + Args: + full_simulation: A numpy array of observables coming from full simulation. + ml_simulation: A numpy array of observables coming from ML simulation. + bins: A numpy array specifying histogram bins. + xlabel: A string. Name of x-axis on the plot. + observable_name: A string. Name of plotted observable. + plot_profile: A boolean. If set to True, full_simulation and ml_simulation are histogram weights while x is + defined by the number of layers. This means that in order to plot histogram (and gaussian), one first + need to create a data repeating each layer or R index appropriate number of times. Should be set to True + only while plotting profiles not first or second moments. + y_log_scale: A boolean. Used log scale on y-axis is set to True. + + Returns: + None. + + """ + fig, axes = plt.subplots(2, + 1, + figsize=(15, 10), + clear=True, + sharex="all") + + # Plot histograms. + if plot_profile: + # We already have the bins (layers) and freqencies (energies), + # therefore directly plotting a step plot + lines instead of a hist plot. + axes[0].step(bins[:-1], + full_simulation, + label="FullSim", + color=FULL_SIM_HISTOGRAM_COLOR) + axes[0].step(bins[:-1], + ml_simulation, + label="MLSim", + color=ML_SIM_HISTOGRAM_COLOR) + axes[0].vlines(x=bins[0], + ymin=0, + ymax=full_simulation[0], + color=FULL_SIM_HISTOGRAM_COLOR) + axes[0].vlines(x=bins[-2], + ymin=0, + ymax=full_simulation[-1], + color=FULL_SIM_HISTOGRAM_COLOR) + axes[0].vlines(x=bins[0], + ymin=0, + ymax=ml_simulation[0], + color=ML_SIM_HISTOGRAM_COLOR) + axes[0].vlines(x=bins[-2], + ymin=0, + ymax=ml_simulation[-1], + color=ML_SIM_HISTOGRAM_COLOR) + axes[0].set_ylim(0, None) + + # For using it later for the ratios. + energy_full_sim, energy_ml_sim = full_simulation, ml_simulation + else: + energy_full_sim, _, _ = axes[0].hist( + x=full_simulation, + bins=bins, + label="FullSim", + histtype=HISTOGRAM_TYPE, + color=FULL_SIM_HISTOGRAM_COLOR) + energy_ml_sim, _, _ = axes[0].hist(x=ml_simulation, + bins=bins, + label="MLSim", + histtype=HISTOGRAM_TYPE, + color=ML_SIM_HISTOGRAM_COLOR) + + # Plot Gaussians if needed. + if self._plot_gaussian: + if plot_profile: + (xs_full_sim, ys_full_sim) = _best_fit(full_simulation, + bins, + hist=True) + (xs_ml_sim, ys_ml_sim) = _best_fit(ml_simulation, + bins, + hist=True) + else: + (xs_full_sim, ys_full_sim) = _best_fit(full_simulation, bins) + (xs_ml_sim, ys_ml_sim) = _best_fit(ml_simulation, bins) + axes[0].plot(xs_full_sim, + ys_full_sim, + color=FULL_SIM_GAUSSIAN_COLOR, + label="FullSim") + axes[0].plot(xs_ml_sim, + ys_ml_sim, + color=ML_SIM_GAUSSIAN_COLOR, + label="MLSim") + + if y_log_scale: + axes[0].set_yscale("log") + axes[0].legend(loc="best") + axes[0].set_xlabel(xlabel) + axes[0].set_ylabel("Energy [Mev]") + axes[0].set_title( + f" $e^-$, {self._particle_energy} [GeV], {self._particle_angle}$^{{\circ}}$, {self._geometry}" + ) + + # Calculate ratios. + ratio = np.divide(energy_ml_sim, + energy_full_sim, + out=np.ones_like(energy_ml_sim), + where=(energy_full_sim != 0)) + # Since len(bins) == 1 + data, we calculate middles of bins as xs. + bins_middles = (bins[:-1] + bins[1:]) / 2 + axes[1].plot(bins_middles, ratio, "-o") + axes[1].set_xlabel(xlabel) + axes[1].set_ylabel("MLSim/FullSim") + axes[1].axhline(y=1, color="black") + plt.savefig( + f"{VALID_DIR}/{observable_name}_Geo_{self._geometry}_E_{self._particle_energy}_" + + f"Angle_{self._particle_angle}.png") + plt.clf() + + def _plot_profile(self) -> None: + """ Plots profile of an observable. + + Returns: + None. + + """ + full_simulation_profile = self._full_simulation.calc_profile() + ml_simulation_profile = self._ml_simulation.calc_profile() + if self._profile_type == ProfileType.LONGITUDINAL: + # matplotlib will include the right-limit for the last bar, + # hence extending by 1. + bins = np.linspace(0, N_CELLS_Z, N_CELLS_Z + 1) + observable_name = "LongProf" + xlabel = "Layer index" + else: + bins = np.linspace(0, N_CELLS_R, N_CELLS_R + 1) + observable_name = "LatProf" + xlabel = "R index" + self._plot_and_save_customizable_histogram(full_simulation_profile, + ml_simulation_profile, + bins, + xlabel, + observable_name, + plot_profile=True) + + def _plot_first_moment(self) -> None: + """ Plots and saves a first moment of an observable's profile. + + Returns: + None. + + """ + full_simulation_first_moment = self._full_simulation.calc_first_moment( + ) + ml_simulation_first_moment = self._ml_simulation.calc_first_moment() + if self._profile_type == ProfileType.LONGITUDINAL: + xlabel = "$<\lambda> [mm]$" + observable_name = "LongFirstMoment" + bins = np.linspace(0, 0.4 * N_CELLS_Z * SIZE_Z, 128) + else: + xlabel = "$ [mm]$" + observable_name = "LatFirstMoment" + bins = np.linspace(0, 0.75 * N_CELLS_R * SIZE_R, 128) + + self._plot_and_save_customizable_histogram( + full_simulation_first_moment, ml_simulation_first_moment, bins, + xlabel, observable_name) + + def _plot_second_moment(self) -> None: + """ Plots and saves a second moment of an observable's profile. + + Returns: + None. + + """ + full_simulation_second_moment = self._full_simulation.calc_second_moment( + ) + ml_simulation_second_moment = self._ml_simulation.calc_second_moment() + if self._profile_type == ProfileType.LONGITUDINAL: + xlabel = "$<\lambda^{2}> [mm^{2}]$" + observable_name = "LongSecondMoment" + bins = np.linspace(0, pow(N_CELLS_Z * SIZE_Z, 2) / 35., 128) + else: + xlabel = "$ [mm^{2}]$" + observable_name = "LatSecondMoment" + bins = np.linspace(0, pow(N_CELLS_R * SIZE_R, 2) / 8., 128) + + self._plot_and_save_customizable_histogram( + full_simulation_second_moment, ml_simulation_second_moment, bins, + xlabel, observable_name) + + def plot_and_save(self) -> None: + """ Main plotting function. + + Calls private methods and prints the information about progress. + + Returns: + None. + + """ + if self._profile_type == ProfileType.LONGITUDINAL: + profile_type_name = "longitudinal" + else: + profile_type_name = "lateral" + print(f"Plotting the {profile_type_name} profile...") + self._plot_profile() + print(f"Plotting the first moment of {profile_type_name} profile...") + self._plot_first_moment() + print(f"Plotting the second moment of {profile_type_name} profile...") + self._plot_second_moment() + + +@dataclass +class EnergyPlotter(Plotter): + """ Plotter responsible for preparing plots of profiles and their first and second moments. + + Attributes: + _full_simulation: A numpy array representing a profile of data generated by Geant4. + _ml_simulation: A numpy array representing a profile of data generated by ML model. + + """ + _full_simulation: Energy + _ml_simulation: Energy + + def _plot_total_energy(self, y_log_scale=True) -> None: + """ Plots and saves a histogram with total energy detected in an event. + + Args: + y_log_scale: A boolean. Used log scale on y-axis is set to True. + + Returns: + None. + + """ + full_simulation_total_energy = self._full_simulation.calc_total_energy( + ) + ml_simulation_total_energy = self._ml_simulation.calc_total_energy() + + plt.figure(figsize=(12, 8)) + bins = np.linspace( + np.min(full_simulation_total_energy) - + np.min(full_simulation_total_energy) * 0.05, + np.max(full_simulation_total_energy) + + np.max(full_simulation_total_energy) * 0.05, 50) + plt.hist(x=full_simulation_total_energy, + histtype=HISTOGRAM_TYPE, + label="FullSim", + bins=bins, + color=FULL_SIM_HISTOGRAM_COLOR) + plt.hist(x=ml_simulation_total_energy, + histtype=HISTOGRAM_TYPE, + label="MLSim", + bins=bins, + color=ML_SIM_HISTOGRAM_COLOR) + plt.legend(loc="upper left") + if y_log_scale: + plt.yscale("log") + plt.xlabel("Energy [MeV]") + plt.ylabel("# events") + plt.title( + f" $e^-$, {self._particle_energy} [GeV], {self._particle_angle}$^{{\circ}}$, {self._geometry} " + ) + plt.savefig( + f"{VALID_DIR}/E_tot_Geo_{self._geometry}_E_{self._particle_energy}_Angle_{self._particle_angle}.png" + ) + plt.clf() + + def _plot_cell_energy(self) -> None: + """ Plots and saves a histogram with number of detector's cells across whole + calorimeter with particular energy detected. + + Returns: + None. + + """ + full_simulation_cell_energy = self._full_simulation.calc_cell_energy() + ml_simulation_cell_energy = self._ml_simulation.calc_cell_energy() + + log_full_simulation_cell_energy = np.log10( + full_simulation_cell_energy, + out=np.zeros_like(full_simulation_cell_energy), + where=(full_simulation_cell_energy != 0)) + log_ml_simulation_cell_energy = np.log10( + ml_simulation_cell_energy, + out=np.zeros_like(ml_simulation_cell_energy), + where=(ml_simulation_cell_energy != 0)) + plt.figure(figsize=(12, 8)) + bins = np.linspace(-4, 1, 1000) + plt.hist(x=log_full_simulation_cell_energy, + bins=bins, + histtype=HISTOGRAM_TYPE, + label="FullSim", + color=FULL_SIM_HISTOGRAM_COLOR) + plt.hist(x=log_ml_simulation_cell_energy, + bins=bins, + histtype=HISTOGRAM_TYPE, + label="MLSim", + color=ML_SIM_HISTOGRAM_COLOR) + plt.xlabel("log10(E/MeV)") + plt.ylim(bottom=1) + plt.yscale("log") + plt.ylim(bottom=1) + plt.ylabel("# entries") + plt.title( + f" $e^-$, {self._particle_energy} [GeV], {self._particle_angle}$^{{\circ}}$, {self._geometry} " + ) + plt.grid(True) + plt.legend(loc="upper left") + plt.savefig( + f"{VALID_DIR}/E_cell_Geo_{self._geometry}_E_{self._particle_energy}_Angle_{self._particle_angle}.png" + ) + plt.clf() + + def _plot_energy_per_layer(self): + """ Plots and saves N_CELLS_Z histograms with total energy detected in particular layers. + + Returns: + None. + + """ + full_simulation_energy_per_layer = self._full_simulation.calc_energy_per_layer( + ) + ml_simulation_energy_per_layer = self._ml_simulation.calc_energy_per_layer( + ) + + number_of_plots_in_row = 9 + number_of_plots_in_column = 5 + + bins = np.linspace(np.min(full_simulation_energy_per_layer - 10), + np.max(full_simulation_energy_per_layer + 10), 25) + + fig, ax = plt.subplots(number_of_plots_in_column, + number_of_plots_in_row, + figsize=(20, 15), + sharex="all", + sharey="all", + constrained_layout=True) + + for layer_nb in range(N_CELLS_Z): + i = layer_nb // number_of_plots_in_row + j = layer_nb % number_of_plots_in_row + + ax[i][j].hist(full_simulation_energy_per_layer[:, layer_nb], + histtype=HISTOGRAM_TYPE, + label="FullSim", + bins=bins, + color=FULL_SIM_HISTOGRAM_COLOR) + ax[i][j].hist(ml_simulation_energy_per_layer[:, layer_nb], + histtype=HISTOGRAM_TYPE, + label="MLSim", + bins=bins, + color=ML_SIM_HISTOGRAM_COLOR) + ax[i][j].set_title(f"Layer {layer_nb}", fontsize=13) + ax[i][j].set_yscale("log") + ax[i][j].tick_params(axis='both', which='major', labelsize=10) + + fig.supxlabel("Energy [MeV]", fontsize=14) + fig.supylabel("# entries", fontsize=14) + fig.suptitle( + f" $e^-$, {self._particle_energy} [GeV], {self._particle_angle}$^{{\circ}}$, {self._geometry} " + ) + + # Take legend from one plot and make it a global legend. + handles, labels = ax[0][0].get_legend_handles_labels() + fig.legend(handles, labels, bbox_to_anchor=(1.15, 0.5)) + + plt.savefig( + f"{VALID_DIR}/E_layer_Geo_{self._geometry}_E_{self._particle_energy}_Angle_{self._particle_angle}.png", + bbox_inches="tight") + plt.clf() + + def plot_and_save(self): + """ Main plotting function. + + Calls private methods and prints the information about progress. + + Returns: + None. + + """ + print("Plotting total energy...") + self._plot_total_energy() + print("Plotting cell energy...") + self._plot_cell_energy() + print("Plotting energy per layer...") + self._plot_energy_per_layer() diff --git a/examples/extended/parameterisations/Par04/training/utils/preprocess.py b/examples/extended/parameterisations/Par04/training/utils/preprocess.py new file mode 100644 index 0000000000..47891d4c6d --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/utils/preprocess.py @@ -0,0 +1,83 @@ +import h5py +import numpy as np + +from core.constants import INIT_DIR, ORIGINAL_DIM, MAX_ENERGY, MAX_ANGLE, MIN_ANGLE, MIN_ENERGY + + +# preprocess function loads the data and returns the array of the shower energies and the condition arrays +def preprocess(): + energies_train = [] + cond_e_train = [] + cond_angle_train = [] + cond_geo_train = [] + # This example is trained using 2 detector geometries + for geo in ["SiW", "SciPb"]: + dir_geo = INIT_DIR + geo + "/" + # loop over the angles in a step of 10 + for angle_particle in range(MIN_ANGLE, MAX_ANGLE + 10, 10): + f_name = f"{geo}_angle_{angle_particle}.h5" + f_name = dir_geo + f_name + # read the HDF5 file + h5 = h5py.File(f_name, "r") + # loop over energies from min_energy to max_energy + energy_particle = MIN_ENERGY + while energy_particle <= MAX_ENERGY: + # scale the energy of each cell to the energy of the primary particle (in MeV units) + events = np.array(h5[f"{energy_particle}"]) / (energy_particle * 1000) + energies_train.append(events.reshape(len(events), ORIGINAL_DIM)) + # build the energy and angle condition vectors + cond_e_train.append([energy_particle / MAX_ENERGY] * len(events)) + cond_angle_train.append([angle_particle / MAX_ANGLE] * len(events)) + # build the geometry condition vector (1 hot encoding vector) + if geo == "SiW": + cond_geo_train.append([[0, 1]] * len(events)) + if geo == "SciPb": + cond_geo_train.append([[1, 0]] * len(events)) + energy_particle *= 2 + # return numpy arrays + energies_train = np.concatenate(energies_train) + cond_e_train = np.concatenate(cond_e_train) + cond_angle_train = np.concatenate(cond_angle_train) + cond_geo_train = np.concatenate(cond_geo_train) + return energies_train, cond_e_train, cond_angle_train, cond_geo_train + + +# get_condition_arrays function returns condition values from a single geometry, a single energy and angle of primary +# particles +""" + - geo : name of the calorimeter geometry (eg: SiW, SciPb) + - energy_particle : energy of the primary particle in GeV units + - nb_events : number of events +""" + + +def get_condition_arrays(geo, energy_particle, nb_events): + cond_e = [energy_particle / MAX_ENERGY] * nb_events + cond_angle = [energy_particle / MAX_ENERGY] * nb_events + if geo == "SiW": + cond_geo = [[0, 1]] * nb_events + else: # geo == "SciPb" + cond_geo = [[1, 0]] * nb_events + cond_e = np.array(cond_e) + cond_angle = np.array(cond_angle) + cond_geo = np.array(cond_geo) + return cond_e, cond_angle, cond_geo + + +# load_showers function loads events from a single geometry, a single energy and angle of primary particles +""" + - init_dir: the name of the directory which contains the HDF5 files + - geo : name of the calorimeter geometry (eg: SiW, SciPb) + - energy_particle : energy of the primary particle in GeV units + - angle_particle : angle of the primary particle in degrees +""" + + +def load_showers(init_dir, geo, energy_particle, angle_particle): + dir_geo = init_dir + geo + "/" + f_name = f"{geo}_angle_{angle_particle}.h5" + f_name = dir_geo + f_name + # read the HDF5 file + h5 = h5py.File(f_name, "r") + energies = np.array(h5[f"{energy_particle}"]) + return energies diff --git a/examples/extended/parameterisations/Par04/training/validate.py b/examples/extended/parameterisations/Par04/training/validate.py new file mode 100644 index 0000000000..1b08acc47c --- /dev/null +++ b/examples/extended/parameterisations/Par04/training/validate.py @@ -0,0 +1,62 @@ +import argparse + +import numpy as np + +from core.constants import INIT_DIR, GEN_DIR, N_CELLS_PHI, N_CELLS_R, N_CELLS_Z +from utils.observables import LongitudinalProfile, LateralProfile, Energy +from utils.plotters import ProfilePlotter, EnergyPlotter +from utils.preprocess import load_showers + + +def parse_args(): + p = argparse.ArgumentParser() + p.add_argument("--geometry", type=str, default="") + p.add_argument("--energy", type=int, default="") + p.add_argument("--angle", type=int, default="") + args = p.parse_args() + return args + + +# main function +def main(): + # Parse commandline arguments + args = parse_args() + particle_energy = args.energy + particle_angle = args.angle + geometry = args.geometry + # 1. Full simulation data loading + # Load energy of showers from a single geometry, energy and angle + e_layer_g4 = load_showers(INIT_DIR, geometry, particle_energy, + particle_angle) + # 2. Fast simulation data loading, scaling to original energy range & reshaping + vae_energies = np.load(f"{GEN_DIR}/VAE_Generated_Geo_{geometry}_E_{particle_energy}_Angle_{particle_angle}.npy") + # Reshape the events into 3D + e_layer_vae = vae_energies.reshape((len(vae_energies), N_CELLS_R, N_CELLS_PHI, N_CELLS_Z)) + + print("Data has been loaded.") + + # 3. Create observables from raw data. + full_sim_long = LongitudinalProfile(_input=e_layer_g4) + full_sim_lat = LateralProfile(_input=e_layer_g4) + full_sim_energy = Energy(_input=e_layer_g4) + ml_sim_long = LongitudinalProfile(_input=e_layer_vae) + ml_sim_lat = LateralProfile(_input=e_layer_vae) + ml_sim_energy = Energy(_input=e_layer_vae) + + print("Created observables.") + + # 4. Plot observables + longitudinal_profile_plotter = ProfilePlotter(particle_energy, particle_angle, geometry, full_sim_long, ml_sim_long, + _plot_gaussian=False) + lateral_profile_plotter = ProfilePlotter(particle_energy, particle_angle, + geometry, full_sim_lat, ml_sim_lat, _plot_gaussian=False) + energy_plotter = EnergyPlotter(particle_energy, particle_angle, geometry, full_sim_energy, ml_sim_energy) + + longitudinal_profile_plotter.plot_and_save() + lateral_profile_plotter.plot_and_save() + energy_plotter.plot_and_save() + print("Done.") + + +if __name__ == "__main__": + exit(main()) diff --git a/examples/extended/parameterisations/Par04/vis_torch.mac b/examples/extended/parameterisations/Par04/vis_torch.mac new file mode 100644 index 0000000000..66960caa8f --- /dev/null +++ b/examples/extended/parameterisations/Par04/vis_torch.mac @@ -0,0 +1,118 @@ +/Par04/detector/setDetectorInnerRadius 80 cm +/Par04/detector/setDetectorLength 4 m +/Par04/detector/setNbOfLayers 90 +/Par04/detector/setAbsorber 0 G4_W 1.4 mm true +/Par04/detector/setAbsorber 1 G4_Si 0.3 mm true +/Par04/mesh/setSizeOfRhoCells 2.325 mm +/Par04/mesh/setSizeOfZCells 3.4 mm +/Par04/mesh/setNbOfRhoCells 18 +/Par04/mesh/setNbOfPhiCells 50 +/Par04/mesh/setNbOfZCells 45 +/Par04/detector/print + +# Use default detector dimensions and initialize +/run/initialize + +# If inference model is active, de-activate it because it needs configuration +/param/InActivateModel inferenceModel + +# Use this open statement to create an OpenGL view: +/vis/open OGL 600x600-0+0 +# +# Use this open statement to create a .prim file suitable for +# viewing in DAWN: +#/vis/open DAWNFILE +# +# Use this open statement to create a .heprep file suitable for +# viewing in HepRApp: +#/vis/open HepRepFile +# +# Use this open statement to create a .wrl file suitable for +# viewing in a VRML viewer: +#/vis/open VRML2FILE +# +# Disable auto refresh and quieten vis messages whilst scene and +# trajectories are established: +/vis/viewer/set/autoRefresh false +/vis/verbose errors +# +# Draw geometry: +/vis/drawVolume worlds +# +# Specify view angle: +/vis/viewer/set/viewpointThetaPhi 0 90 deg +/vis/viewer/set/targetPoint 0 800 0 mm +# +# Specify zoom value: +/vis/viewer/zoom 10 +# +# Specify style (surface or wireframe): +#/vis/viewer/set/style wireframe +# +# Draw coordinate axes: +#/vis/scene/add/axes 0 0 0 1 m +# +# Draw smooth trajectories at end of event, showing trajectory points +# as markers 2 pixels wide: +#/vis/scene/add/trajectories smooth +/vis/scene/add/trajectories +/vis/modeling/trajectories/create/drawByCharge +/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true +/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2 +# (if too many tracks cause core dump => /tracking/storeTrajectory 0) +# +# Draw hits at end of event: +/vis/scene/add/hits +# +# To draw only gammas: +#/vis/filtering/trajectories/create/particleFilter +#/vis/filtering/trajectories/particleFilter-0/add gamma +# +# To invert the above, drawing all particles except gammas, +# keep the above two lines but also add: +#/vis/filtering/trajectories/particleFilter-0/invert true +# +# Many other options are available with /vis/modeling and /vis/filtering. +# For example, to select colour by particle ID: +#/vis/modeling/trajectories/create/drawByParticleID +#/vis/modeling/trajectories/drawByParticleID-0/set e- blue +# +# Create an attribute filter to draw only particles with certain (high) momentum +/vis/filtering/trajectories/create/attributeFilter +# Select attribute "IMag" +/vis/filtering/trajectories/attributeFilter-0/setAttribute IMag +# Select trajectories with 25 MeV <= IMag < 1000 GeV +/vis/filtering/trajectories/attributeFilter-0/addInterval 25 MeV 1000 GeV +# +# To superimpose all of the events from a given run: +/vis/scene/endOfEventAction accumulate +# +# Re-establish auto refreshing and verbosity: +/vis/viewer/set/autoRefresh true +/vis/verbose warnings +# +# For file-based drivers, use this to create an empty detector view: +#/vis/viewer/flush +/vis/viewer/set/background 1 1 1 + +# Fast Simulation +# Inference Setup +## dimension of the latent vector (encoded vector in a Variational Autoencoder model) +/Par04/inference/setSizeLatentVector 10 +## size of the condition vector (energy, angle and geometry) +/Par04/inference/setSizeConditionVector 4 +## path to the model which is set to download by cmake +/Par04/inference/setModelPathName MLModels/Generator.pt +/Par04/inference/setInferenceLibrary TORCH +## set mesh size for inference == mesh size of a full sim that +## was used for training; it coincides with readout mesh size +/Par04/inference/setSizeOfRhoCells 2.325 mm +/Par04/inference/setSizeOfZCells 3.4 mm +/Par04/inference/setNbOfRhoCells 18 +/Par04/inference/setNbOfPhiCells 50 +/Par04/inference/setNbOfZCells 45 + +## Dynamic readout mesh from particle direction needs to be the first fast sim model! +/param/ActivateModel defineMesh +## ML fast sim, configured with the inference setup /Par04/inference +/param/ActivateModel inferenceModel diff --git a/examples/extended/parameterisations/gflash/History b/examples/extended/parameterisations/gflash/History index a2049d6781..42c4592811 100644 --- a/examples/extended/parameterisations/gflash/History +++ b/examples/extended/parameterisations/gflash/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-04 I. Hrivnacova (exgflash-V11-00-01) +- Fixed Doxygen file descriptions in glash2 and gflash3 + ## 2021-12-10 Ben Morgan (exgflash-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/parameterisations/gflash/gflash1/test.out b/examples/extended/parameterisations/gflash/gflash1/test.out index 582e011a99..95a9c5212e 100644 --- a/examples/extended/parameterisations/gflash/gflash1/test.out +++ b/examples/extended/parameterisations/gflash/gflash1/test.out @@ -16,7 +16,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -40,6 +40,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -140,6 +142,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -167,7 +170,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -218,8 +221,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -701,6 +704,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -972,7 +980,7 @@ See commands in /vis/modeling/trajectories/ for other options. ****************************************** -Internal Real Elapsed Time is: 0.0114715 +Internal Real Elapsed Time is: 0.0126348 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** @@ -987,7 +995,7 @@ Internal GetUserElapsed Time: 0.01 ****************************************** -Internal Real Elapsed Time is: 0.0082584 +Internal Real Elapsed Time is: 0.00956075 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** @@ -1002,7 +1010,7 @@ Internal GetUserElapsed Time: 0.01 ****************************************** -Internal Real Elapsed Time is: 0.00807009 +Internal Real Elapsed Time is: 0.00896686 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** @@ -1017,7 +1025,7 @@ Internal GetUserElapsed Time: 0.01 ****************************************** -Internal Real Elapsed Time is: 0.00824953 +Internal Real Elapsed Time is: 0.00900089 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** @@ -1032,7 +1040,7 @@ Internal GetUserElapsed Time: 0.01 ****************************************** -Internal Real Elapsed Time is: 0.00809157 +Internal Real Elapsed Time is: 0.00834381 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** @@ -1047,9 +1055,9 @@ Internal GetUserElapsed Time: 0.01 ****************************************** -Internal Real Elapsed Time is: 0.00806755 +Internal Real Elapsed Time is: 0.00876503 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0.01 +Internal GetUserElapsed Time: 0 ****************************************** ------ ExGflashEventAction::End of event nr. 5 ----- 11974 hits are stored in ExGflashHitsCollection @@ -1062,9 +1070,9 @@ Internal GetUserElapsed Time: 0.01 ****************************************** -Internal Real Elapsed Time is: 0.00807028 +Internal Real Elapsed Time is: 0.00874448 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0 +Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 6 ----- 11969 hits are stored in ExGflashHitsCollection @@ -1077,7 +1085,7 @@ Internal GetUserElapsed Time: 0 ****************************************** -Internal Real Elapsed Time is: 0.00810578 +Internal Real Elapsed Time is: 0.00922813 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** @@ -1092,7 +1100,7 @@ Internal GetUserElapsed Time: 0.01 ****************************************** -Internal Real Elapsed Time is: 0.00810629 +Internal Real Elapsed Time is: 0.00897861 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** @@ -1107,7 +1115,7 @@ Internal GetUserElapsed Time: 0.01 ****************************************** -Internal Real Elapsed Time is: 0.00820599 +Internal Real Elapsed Time is: 0.00938402 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** @@ -1120,10 +1128,10 @@ Internal GetUserElapsed Time: 0.01 number of event = 10 Graphics systems deleted. Visualization Manager deleting... -Internal Real Elapsed Time /event is: 0.00941077 +Internal Real Elapsed Time /event is: 0.0104008 ****************************************** -Total Real Elapsed Time is: 3.68181 -Total System Elapsed Time: 0.2 -Total GetUserElapsed Time: 2.53 +Total Real Elapsed Time is: 3.44206 +Total System Elapsed Time: 0.26 +Total GetUserElapsed Time: 2.69 ****************************************** diff --git a/examples/extended/parameterisations/gflash/gflash2/include/ExGflash2ParallelWorld.hh b/examples/extended/parameterisations/gflash/gflash2/include/ExGflash2ParallelWorld.hh index cae68f69c0..8077def5b8 100644 --- a/examples/extended/parameterisations/gflash/gflash2/include/ExGflash2ParallelWorld.hh +++ b/examples/extended/parameterisations/gflash/gflash2/include/ExGflash2ParallelWorld.hh @@ -24,6 +24,8 @@ // ******************************************************************** // // +/// \file ExGflash2ParallelWorld.hh +/// \brief Definition of the ExGflash2ParallelWorld class // #ifndef ExGflash2ParallelWorld_h #define ExGflash2ParallelWorld_h 1 diff --git a/examples/extended/parameterisations/gflash/gflash2/src/ExGflash2ParallelWorld.cc b/examples/extended/parameterisations/gflash/gflash2/src/ExGflash2ParallelWorld.cc index 92f9f670aa..b3dad57430 100644 --- a/examples/extended/parameterisations/gflash/gflash2/src/ExGflash2ParallelWorld.cc +++ b/examples/extended/parameterisations/gflash/gflash2/src/ExGflash2ParallelWorld.cc @@ -23,6 +23,9 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +// +/// \file ExGflash2ParallelWorld.cc +/// \brief Implementation of the ExGflash2ParallelWorld class //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parameterisations/gflash/gflash2/test.out b/examples/extended/parameterisations/gflash/gflash2/test.out index 04aa9a5122..26278e7aaa 100644 --- a/examples/extended/parameterisations/gflash/gflash2/test.out +++ b/examples/extended/parameterisations/gflash/gflash2/test.out @@ -16,7 +16,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -41,6 +41,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -142,6 +144,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -169,7 +172,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -220,8 +223,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -703,6 +706,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -974,14 +982,14 @@ See commands in /vis/modeling/trajectories/ for other options. ****************************************** -Internal Real Elapsed Time is: 0.0120578 +Internal Real Elapsed Time is: 0.0126672 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 0 ----- - 12085 hits are stored in ExGflashHitsCollection - e1 11.9887 e3x3 48.3093 GeV e5x5 48.6927 - num1 2947 num3x3 11830 num5x5 11906 + 12127 hits are stored in ExGflashHitsCollection + e1 11.9884 e3x3 48.3093 GeV e5x5 48.6927 + num1 2967 num3x3 11872 num5x5 11948 Total energy deposited in the calorimeter: 49.6505 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- @@ -989,143 +997,143 @@ Internal GetUserElapsed Time: 0.01 ****************************************** -Internal Real Elapsed Time is: 0.00814755 +Internal Real Elapsed Time is: 0.00864171 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0 +Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 1 ----- - 11963 hits are stored in ExGflashHitsCollection - e1 12.1197 e3x3 48.3344 GeV e5x5 48.8249 - num1 2937 num3x3 11665 num5x5 11760 - Total energy deposited in the calorimeter: 49.9022 (GeV) + 11960 hits are stored in ExGflashHitsCollection + e1 12.1118 e3x3 48.3289 GeV e5x5 48.8927 + num1 2919 num3x3 11665 num5x5 11769 + Total energy deposited in the calorimeter: 49.8813 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 2 ****************************************** -Internal Real Elapsed Time is: 0.00794541 +Internal Real Elapsed Time is: 0.0084523 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0 +Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 2 ----- - 11929 hits are stored in ExGflashHitsCollection - e1 12.0275 e3x3 48.0376 GeV e5x5 48.5971 - num1 2900 num3x3 11595 num5x5 11706 - Total energy deposited in the calorimeter: 49.7229 (GeV) + 11973 hits are stored in ExGflashHitsCollection + e1 12.3009 e3x3 48.4862 GeV e5x5 48.9914 + num1 3001 num3x3 11710 num5x5 11806 + Total energy deposited in the calorimeter: 49.8818 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 3 ****************************************** -Internal Real Elapsed Time is: 0.00896925 +Internal Real Elapsed Time is: 0.00872128 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 3 ----- - 12145 hits are stored in ExGflashHitsCollection - e1 12.0191 e3x3 48.0898 GeV e5x5 48.6167 - num1 2971 num3x3 11811 num5x5 11915 - Total energy deposited in the calorimeter: 49.7519 (GeV) + 11984 hits are stored in ExGflashHitsCollection + e1 12.2777 e3x3 48.4583 GeV e5x5 48.9 + num1 2984 num3x3 11710 num5x5 11796 + Total energy deposited in the calorimeter: 49.9236 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 4 ****************************************** -Internal Real Elapsed Time is: 0.00798622 +Internal Real Elapsed Time is: 0.00827424 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 4 ----- - 11982 hits are stored in ExGflashHitsCollection - e1 12.1035 e3x3 48.5975 GeV e5x5 49.0802 - num1 2950 num3x3 11739 num5x5 11824 - Total energy deposited in the calorimeter: 49.925 (GeV) + 11960 hits are stored in ExGflashHitsCollection + e1 11.9079 e3x3 48.3045 GeV e5x5 48.7837 + num1 2903 num3x3 11664 num5x5 11752 + Total energy deposited in the calorimeter: 49.8656 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 5 ****************************************** -Internal Real Elapsed Time is: 0.00808282 +Internal Real Elapsed Time is: 0.00872955 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 5 ----- - 11902 hits are stored in ExGflashHitsCollection - e1 12.2429 e3x3 48.2306 GeV e5x5 48.7573 - num1 2956 num3x3 11627 num5x5 11730 - Total energy deposited in the calorimeter: 49.6225 (GeV) + 11994 hits are stored in ExGflashHitsCollection + e1 12.304 e3x3 48.5428 GeV e5x5 49.0902 + num1 2998 num3x3 11724 num5x5 11831 + Total energy deposited in the calorimeter: 49.9511 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 6 ****************************************** -Internal Real Elapsed Time is: 0.00990653 +Internal Real Elapsed Time is: 0.00883547 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 6 ----- - 12370 hits are stored in ExGflashHitsCollection - e1 12.3026 e3x3 48.5786 GeV e5x5 48.9716 - num1 3081 num3x3 12089 num5x5 12189 - Total energy deposited in the calorimeter: 49.8896 (GeV) + 11976 hits are stored in ExGflashHitsCollection + e1 12.2379 e3x3 48.5283 GeV e5x5 48.9887 + num1 2965 num3x3 11715 num5x5 11802 + Total energy deposited in the calorimeter: 49.8984 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 7 ****************************************** -Internal Real Elapsed Time is: 0.00815245 +Internal Real Elapsed Time is: 0.00897393 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 7 ----- - 11929 hits are stored in ExGflashHitsCollection - e1 12.1488 e3x3 48.2184 GeV e5x5 48.7056 - num1 2932 num3x3 11636 num5x5 11731 - Total energy deposited in the calorimeter: 49.738 (GeV) + 11970 hits are stored in ExGflashHitsCollection + e1 12.0304 e3x3 48.3144 GeV e5x5 48.9287 + num1 2914 num3x3 11665 num5x5 11780 + Total energy deposited in the calorimeter: 49.8811 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 8 ****************************************** -Internal Real Elapsed Time is: 0.00810251 +Internal Real Elapsed Time is: 0.00858437 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0.01 +Internal GetUserElapsed Time: 0 ****************************************** ------ ExGflashEventAction::End of event nr. 8 ----- - 11939 hits are stored in ExGflashHitsCollection - e1 12.2262 e3x3 48.2914 GeV e5x5 48.7641 - num1 2959 num3x3 11664 num5x5 11755 - Total energy deposited in the calorimeter: 49.713 (GeV) + 11990 hits are stored in ExGflashHitsCollection + e1 12.3954 e3x3 48.435 GeV e5x5 48.8855 + num1 3001 num3x3 11721 num5x5 11808 + Total energy deposited in the calorimeter: 49.8618 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 9 ****************************************** -Internal Real Elapsed Time is: 0.00821934 +Internal Real Elapsed Time is: 0.00927375 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0 +Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 9 ----- - 11905 hits are stored in ExGflashHitsCollection - e1 12.0913 e3x3 48.0528 GeV e5x5 48.5527 - num1 2925 num3x3 11577 num5x5 11679 - Total energy deposited in the calorimeter: 49.6779 (GeV) + 12071 hits are stored in ExGflashHitsCollection + e1 12.2429 e3x3 48.2277 GeV e5x5 48.6982 + num1 3015 num3x3 11803 num5x5 11894 + Total energy deposited in the calorimeter: 49.5645 (GeV) 0 trajectories stored in this event. number of event = 10 Graphics systems deleted. Visualization Manager deleting... -Internal Real Elapsed Time /event is: 0.00972999 +Internal Real Elapsed Time /event is: 0.0101282 ****************************************** -Total Real Elapsed Time is: 3.74861 -Total System Elapsed Time: 0.21 -Total GetUserElapsed Time: 2.57 +Total Real Elapsed Time is: 3.20047 +Total System Elapsed Time: 0.23 +Total GetUserElapsed Time: 2.64 ****************************************** diff --git a/examples/extended/parameterisations/gflash/gflash3/include/ExGflash3ParallelWorld.hh b/examples/extended/parameterisations/gflash/gflash3/include/ExGflash3ParallelWorld.hh index d33a6ee9a7..52b8447fb8 100644 --- a/examples/extended/parameterisations/gflash/gflash3/include/ExGflash3ParallelWorld.hh +++ b/examples/extended/parameterisations/gflash/gflash3/include/ExGflash3ParallelWorld.hh @@ -24,6 +24,8 @@ // ******************************************************************** // // +/// \file ExGflash3ParallelWorld.hh +/// \brief Definition of the ExGflash3ParallelWorld class // #ifndef ExGflash3ParallelWorld_h #define ExGflash3ParallelWorld_h 1 diff --git a/examples/extended/parameterisations/gflash/gflash3/src/ExGflash3ParallelWorld.cc b/examples/extended/parameterisations/gflash/gflash3/src/ExGflash3ParallelWorld.cc index a6a4976012..1f2de89cd3 100644 --- a/examples/extended/parameterisations/gflash/gflash3/src/ExGflash3ParallelWorld.cc +++ b/examples/extended/parameterisations/gflash/gflash3/src/ExGflash3ParallelWorld.cc @@ -23,6 +23,9 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +// +/// \file ExGflash3ParallelWorld.cc +/// \brief Implementation of the ExGflash3ParallelWorld class //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parameterisations/gflash/gflash3/test.out b/examples/extended/parameterisations/gflash/gflash3/test.out index 2e006f28e6..8a0e77a73a 100644 --- a/examples/extended/parameterisations/gflash/gflash3/test.out +++ b/examples/extended/parameterisations/gflash/gflash3/test.out @@ -16,7 +16,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -41,6 +41,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -119,6 +121,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -146,7 +149,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -197,8 +200,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -680,6 +683,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -951,158 +959,158 @@ See commands in /vis/modeling/trajectories/ for other options. ****************************************** -Internal Real Elapsed Time is: 0.012577 -Internal System Elapsed Time: 0.01 +Internal Real Elapsed Time is: 0.0145248 +Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 0 ----- - 12162 hits are stored in ExGflashHitsCollection - e1 11.9891 e3x3 48.3063 GeV e5x5 48.6898 - num1 2939 num3x3 11907 num5x5 11983 - Total energy deposited in the calorimeter: 49.6475 (GeV) + 12241 hits are stored in ExGflashHitsCollection + e1 12.0206 e3x3 48.4168 GeV e5x5 48.8002 + num1 2956 num3x3 11986 num5x5 12062 + Total energy deposited in the calorimeter: 49.758 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 1 ****************************************** -Internal Real Elapsed Time is: 0.00847835 +Internal Real Elapsed Time is: 0.0092477 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 1 ----- - 11925 hits are stored in ExGflashHitsCollection - e1 12.1443 e3x3 48.4538 GeV e5x5 48.851 - num1 2955 num3x3 11701 num5x5 11779 - Total energy deposited in the calorimeter: 49.6218 (GeV) + 11979 hits are stored in ExGflashHitsCollection + e1 12.198 e3x3 48.5513 GeV e5x5 49.019 + num1 2943 num3x3 11726 num5x5 11815 + Total energy deposited in the calorimeter: 49.8949 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 2 ****************************************** -Internal Real Elapsed Time is: 0.0080578 +Internal Real Elapsed Time is: 0.00909548 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 2 ----- - 11977 hits are stored in ExGflashHitsCollection - e1 12.198 e3x3 48.4351 GeV e5x5 48.996 - num1 2971 num3x3 11706 num5x5 11810 - Total energy deposited in the calorimeter: 49.8747 (GeV) + 11870 hits are stored in ExGflashHitsCollection + e1 12.2459 e3x3 47.9484 GeV e5x5 48.4595 + num1 2930 num3x3 11573 num5x5 11677 + Total energy deposited in the calorimeter: 49.413 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 3 ****************************************** -Internal Real Elapsed Time is: 0.00812849 +Internal Real Elapsed Time is: 0.00887484 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 3 ----- - 11975 hits are stored in ExGflashHitsCollection - e1 12.2188 e3x3 48.3016 GeV e5x5 48.8188 - num1 2958 num3x3 11654 num5x5 11761 - Total energy deposited in the calorimeter: 49.9156 (GeV) + 11984 hits are stored in ExGflashHitsCollection + e1 12.2163 e3x3 48.5445 GeV e5x5 48.887 + num1 2932 num3x3 11739 num5x5 11808 + Total energy deposited in the calorimeter: 49.8899 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 4 ****************************************** -Internal Real Elapsed Time is: 0.00802218 +Internal Real Elapsed Time is: 0.00879636 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 4 ----- - 11889 hits are stored in ExGflashHitsCollection - e1 12.1243 e3x3 48.1867 GeV e5x5 48.6245 - num1 2943 num3x3 11637 num5x5 11719 - Total energy deposited in the calorimeter: 49.4898 (GeV) + 11975 hits are stored in ExGflashHitsCollection + e1 12.0163 e3x3 48.3248 GeV e5x5 48.8494 + num1 2918 num3x3 11693 num5x5 11786 + Total energy deposited in the calorimeter: 49.8604 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 5 ****************************************** -Internal Real Elapsed Time is: 0.00906508 +Internal Real Elapsed Time is: 0.00872866 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0 +Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 5 ----- - 11924 hits are stored in ExGflashHitsCollection - e1 12.2159 e3x3 48.2783 GeV e5x5 48.8263 - num1 2974 num3x3 11650 num5x5 11759 - Total energy deposited in the calorimeter: 49.6729 (GeV) + 11916 hits are stored in ExGflashHitsCollection + e1 12.0357 e3x3 48.2696 GeV e5x5 48.7361 + num1 2887 num3x3 11658 num5x5 11741 + Total energy deposited in the calorimeter: 49.6482 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 6 ****************************************** -Internal Real Elapsed Time is: 0.00814794 +Internal Real Elapsed Time is: 0.00876112 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0 +Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 6 ----- - 11914 hits are stored in ExGflashHitsCollection - e1 12.1701 e3x3 48.2857 GeV e5x5 48.7285 - num1 2949 num3x3 11655 num5x5 11741 - Total energy deposited in the calorimeter: 49.6065 (GeV) + 11991 hits are stored in ExGflashHitsCollection + e1 12.2619 e3x3 48.6374 GeV e5x5 49.0497 + num1 2973 num3x3 11756 num5x5 11832 + Total energy deposited in the calorimeter: 49.904 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 7 ****************************************** -Internal Real Elapsed Time is: 0.00805364 +Internal Real Elapsed Time is: 0.00874139 Internal System Elapsed Time: 0 -Internal GetUserElapsed Time: 0.01 +Internal GetUserElapsed Time: 0 ****************************************** ------ ExGflashEventAction::End of event nr. 7 ----- - 11897 hits are stored in ExGflashHitsCollection - e1 11.8908 e3x3 47.9607 GeV e5x5 48.4889 - num1 2877 num3x3 11558 num5x5 11665 - Total energy deposited in the calorimeter: 49.6162 (GeV) + 11876 hits are stored in ExGflashHitsCollection + e1 11.9833 e3x3 47.9937 GeV e5x5 48.5277 + num1 2892 num3x3 11585 num5x5 11691 + Total energy deposited in the calorimeter: 49.4478 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 8 ****************************************** -Internal Real Elapsed Time is: 0.00811376 +Internal Real Elapsed Time is: 0.00883146 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 8 ----- - 11971 hits are stored in ExGflashHitsCollection - e1 12.3046 e3x3 48.5196 GeV e5x5 48.9729 - num1 2964 num3x3 11690 num5x5 11781 - Total energy deposited in the calorimeter: 49.9182 (GeV) + 11984 hits are stored in ExGflashHitsCollection + e1 12.3928 e3x3 48.7789 GeV e5x5 49.0476 + num1 2980 num3x3 11769 num5x5 11824 + Total energy deposited in the calorimeter: 49.9085 (GeV) 0 trajectories stored in this event. ------ Start ExGflashEventAction ----- Start generating event Nr 9 ****************************************** -Internal Real Elapsed Time is: 0.00823134 +Internal Real Elapsed Time is: 0.00881832 Internal System Elapsed Time: 0 Internal GetUserElapsed Time: 0.01 ****************************************** ------ ExGflashEventAction::End of event nr. 9 ----- - 11981 hits are stored in ExGflashHitsCollection - e1 12.3503 e3x3 48.7753 GeV e5x5 49.1206 - num1 2994 num3x3 11765 num5x5 11832 - Total energy deposited in the calorimeter: 49.9225 (GeV) + 11957 hits are stored in ExGflashHitsCollection + e1 12.258 e3x3 48.5511 GeV e5x5 48.9852 + num1 2990 num3x3 11718 num5x5 11799 + Total energy deposited in the calorimeter: 49.7912 (GeV) 0 trajectories stored in this event. number of event = 10 Graphics systems deleted. Visualization Manager deleting... -Internal Real Elapsed Time /event is: 0.00965284 +Internal Real Elapsed Time /event is: 0.0104911 ****************************************** -Total Real Elapsed Time is: 3.79548 -Total System Elapsed Time: 0.19 -Total GetUserElapsed Time: 2.56 +Total Real Elapsed Time is: 3.20753 +Total System Elapsed Time: 0.23 +Total GetUserElapsed Time: 2.61 ****************************************** diff --git a/examples/extended/parameterisations/gflash/gflasha/test.out b/examples/extended/parameterisations/gflash/gflasha/test.out index 8889ffaeb3..18ffb292b0 100644 --- a/examples/extended/parameterisations/gflash/gflasha/test.out +++ b/examples/extended/parameterisations/gflash/gflasha/test.out @@ -16,7 +16,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -41,6 +41,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -145,6 +147,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -172,7 +175,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -223,8 +226,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -706,6 +709,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -978,9 +986,9 @@ See commands in /vis/modeling/trajectories/ for other options. ... open analysis file : gflash01.root - done ****************************************** -Run Real Elapsed Time is: 0.81585 -Run System Elapsed Time: 0.02 -Run GetUserElapsed Time: 0.8 +Run Real Elapsed Time is: 0.991647 +Run System Elapsed Time: 0.01 +Run GetUserElapsed Time: 0.98 ****************************************** number of event = 100 ... write file : gflash01.root - done @@ -991,16 +999,15 @@ There are 3 h1 histograms 2 with 0 entries: The energy of Hit (in MeV) List them with "/analysis/list". View them with "/vis/plot" or "/vis/reviewPlots". -Set file name: gflash00 ### Run 1 start. ... create file : gflash00.root - done ... open analysis file : gflash00.root - done ... open analysis file : gflash00.root - done ****************************************** -Run Real Elapsed Time is: 59.7876 -Run System Elapsed Time: 0.35 -Run GetUserElapsed Time: 58.74 +Run Real Elapsed Time is: 70.8076 +Run System Elapsed Time: 0.41 +Run GetUserElapsed Time: 69.74 ****************************************** number of event = 100 ... write file : gflash00.root - done @@ -1015,7 +1022,7 @@ Graphics systems deleted. Visualization Manager deleting... ****************************************** -Total Real Elapsed Time is: 64.7542 -Total System Elapsed Time: 0.56 -Total GetUserElapsed Time: 61.97 +Total Real Elapsed Time is: 75.0231 +Total System Elapsed Time: 0.64 +Total GetUserElapsed Time: 73.31 ****************************************** diff --git a/examples/extended/persistency/P01/p01-write.out b/examples/extended/persistency/P01/p01-write.out index 68f9723450..68072a0337 100644 --- a/examples/extended/persistency/P01/p01-write.out +++ b/examples/extended/persistency/P01/p01-write.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -32,6 +32,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -145,6 +147,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -172,7 +175,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -223,8 +226,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -706,6 +709,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -2196,15 +2204,15 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 136 um 56 um -2.44 m 192 keV 0 eV 0 fm 0 fm Target initStep - 1 181 um -58.5 um -2.44 m 0 eV 88 keV 156 um 156 um Target phot + 1 181 um -58.4 um -2.44 m 0 eV 88 keV 156 um 156 um Target phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 129, Parent ID = 128 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 181 um -58.5 um -2.44 m 104 keV 0 eV 0 fm 0 fm Target initStep - 1 183 um -58.9 um -2.44 m 0 eV 104 keV 29.3 um 29.3 um Target eIoni + 0 181 um -58.4 um -2.44 m 104 keV 0 eV 0 fm 0 fm Target initStep + 1 183 um -58.8 um -2.44 m 0 eV 104 keV 29.3 um 29.3 um Target eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 @@ -2222,15 +2230,15 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 -1.67 um -25.2 um -2.45 m 105 keV 0 eV 0 fm 0 fm Target initStep - 1 6.87 um 12.1 um -2.45 m 0 eV 88 keV 38.3 um 38.3 um Target phot + 1 6.87 um 12 um -2.45 m 0 eV 88 keV 38.2 um 38.2 um Target phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 131, Parent ID = 130 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.87 um 12.1 um -2.45 m 17.1 keV 0 eV 0 fm 0 fm Target initStep - 1 6.94 um 12.2 um -2.45 m 0 eV 17.1 keV 1.59 um 1.59 um Target eIoni + 0 6.87 um 12 um -2.45 m 17.1 keV 0 eV 0 fm 0 fm Target initStep + 1 6.93 um 12.2 um -2.45 m 0 eV 17.1 keV 1.59 um 1.59 um Target eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 @@ -2390,7 +2398,7 @@ writing Event_1 Run terminated. Run Summary Number of events processed : 1 - User=0.380000s Real=6.376710s Sys=0.390000s + User=0.370000s Real=2.370489s Sys=0.440000s Region -- -- appears in world volume This region is in the mass world. @@ -2786,7 +2794,7 @@ writing Event_4 Run terminated. Run Summary Number of events processed : 3 - User=0.000000s Real=0.006888s Sys=0.000000s + User=0.000000s Real=0.008648s Sys=0.000000s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/persistency/P03/batch.out b/examples/extended/persistency/P03/batch.out index f71fb7cc00..1057052e97 100644 --- a/examples/extended/persistency/P03/batch.out +++ b/examples/extended/persistency/P03/batch.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -84,11 +86,16 @@ physicsList->Construct() start. physicsList->CheckParticleList() start. physicsList->setCut() start. /vis/open ATree +/vis/sceneHandler/create ATree +/vis/viewer/create ! ! none Issue /vis/viewer/refresh or flush to see effect. /vis/viewer/set/autoRefresh false /vis/verbose errors Visualization verbosity changed to errors (2) /vis/drawVolume +/vis/scene/create +/vis/scene/add/volume world -1 -1 none m 0 0 0 0 0 0 +/vis/sceneHandler/attach /vis/scene/add/trajectories smooth /tracking/storeTrajectory 2 Attributes available for modeling and filtering with @@ -133,6 +140,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -160,7 +168,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -211,8 +219,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -607,7 +615,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 10 - User=0.010000s Real=0.000883s Sys=0.000000s + User=0.010000s Real=0.002072s Sys=0.000000s 10 events have been kept for refreshing and/or reviewing. "/vis/reviewKeptEvents" to review one by one. To see accumulated, "/vis/enable", then "/vis/viewer/flush" or "/vis/viewer/rebuild". diff --git a/examples/extended/persistency/gdml/G01/g01.out b/examples/extended/persistency/gdml/G01/g01.out index dda772f373..d61127e69b 100644 --- a/examples/extended/persistency/gdml/G01/g01.out +++ b/examples/extended/persistency/gdml/G01/g01.out @@ -48,7 +48,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -78,6 +78,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -135,6 +137,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -162,7 +165,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -213,8 +216,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -696,6 +699,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1336,7 +1344,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Run terminated. Run Summary Number of events processed : 20 - User=0.000000s Real=0.005273s Sys=0.000000s + User=0.010000s Real=0.006052s Sys=0.000000s /gun/direction 0 0 -1 /run/beamOn 20 @@ -1703,7 +1711,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Run terminated. Run Summary Number of events processed : 20 - User=0.010000s Real=0.004749s Sys=0.000000s + User=0.000000s Real=0.005270s Sys=0.000000s /tracking/verbose 0 /gun/direction 0.3 0.2 1 /run/beamOn 20 @@ -1743,7 +1751,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 20 - User=0.000000s Real=0.002196s Sys=0.000000s + User=0.000000s Real=0.002289s Sys=0.000000s /gun/direction 0.3 -0.2 1 /run/beamOn 20 @@ -1782,7 +1790,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 20 - User=0.000000s Real=0.002128s Sys=0.000000s + User=0.010000s Real=0.002243s Sys=0.000000s /gun/direction -0.3 0.2 0.6 /run/beamOn 20 @@ -1821,7 +1829,7 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 20 - User=0.000000s Real=0.002189s Sys=0.000000s + User=0.000000s Real=0.002567s Sys=0.000000s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/persistency/gdml/G04/g04.out b/examples/extended/persistency/gdml/G04/g04.out index 36c0937867..77e84ff3ea 100644 --- a/examples/extended/persistency/gdml/G04/g04.out +++ b/examples/extended/persistency/gdml/G04/g04.out @@ -22,7 +22,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -63,6 +63,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -117,6 +119,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -144,7 +147,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -195,8 +198,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -678,6 +681,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1197,7 +1205,7 @@ Processing hits .... Run terminated. Run Summary Number of events processed : 20 - User=0.000000s Real=0.001748s Sys=0.000000s + User=0.000000s Real=0.001491s Sys=0.000000s /gun/direction 0 0 -1 /run/beamOn 20 @@ -1449,7 +1457,7 @@ Processing hits .... Run terminated. Run Summary Number of events processed : 20 - User=0.000000s Real=0.000938s Sys=0.000000s + User=0.000000s Real=0.001054s Sys=0.000000s /tracking/verbose 0 /gun/direction 0.3 0.2 1 /run/beamOn 20 @@ -1502,7 +1510,7 @@ Processing hits .... Run terminated. Run Summary Number of events processed : 20 - User=0.000000s Real=0.000123s Sys=0.000000s + User=0.000000s Real=0.000158s Sys=0.000000s /gun/direction 0.3 -0.2 1 /run/beamOn 20 @@ -1554,7 +1562,7 @@ Processing hits .... Run terminated. Run Summary Number of events processed : 20 - User=0.000000s Real=0.000123s Sys=0.000000s + User=0.000000s Real=0.000172s Sys=0.000000s /gun/direction -0.3 0.2 0.6 /run/beamOn 20 @@ -1606,7 +1614,7 @@ Processing hits .... Run terminated. Run Summary Number of events processed : 20 - User=0.000000s Real=0.000115s Sys=0.000000s + User=0.000000s Real=0.000159s Sys=0.000000s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/physicslists/extensibleFactory/extensibleFactory.out b/examples/extended/physicslists/extensibleFactory/extensibleFactory.out index 833ba42929..66c685b85f 100644 --- a/examples/extended/physicslists/extensibleFactory/extensibleFactory.out +++ b/examples/extended/physicslists/extensibleFactory/extensibleFactory.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -36,6 +36,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -127,7 +129,6 @@ Checking overlaps for volume Screen:0 (G4Box) ... OK! Emin(FTFP)= 3 GeV Emax(FTFP)= 100000 GeV Emin(BERT)= 1 GeV Emax(BERT)= 6 GeV Emax(BERTpions)= 12 GeV Emin(BIC) = 0 GeV Emax(BIC)= 1.5 GeV. -### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 ======================================================================= ====== Electromagnetic Physics Parameters ======== ======================================================================= @@ -137,6 +138,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -164,7 +166,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -215,8 +217,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -566,28 +568,6 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 ==================================================================== HADRONIC PROCESSES SUMMARY (verbose level 1) ---------------------------------------------------- - Hadronic Processes for neutron - - Process: hadElastic - Model: hElasticCHIPS: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV - - - Process: neutronInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 1 GeV ---> 6 GeV - Model: Binary Cascade: 0 eV ---> 1.5 GeV - Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV - - - Process: nCapture - Model: nRadCapture: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV - - - Process: nKiller - --------------------------------------------------- Hadronic Processes for B- @@ -704,6 +684,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -869,6 +854,28 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: muMinusCaptureAtRest +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 1 GeV ---> 6 GeV + Model: Binary Cascade: 0 eV ---> 1.5 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + --------------------------------------------------- Hadronic Processes for pi+ diff --git a/examples/extended/physicslists/factory/README b/examples/extended/physicslists/factory/README index ef56796eec..88318c90b0 100644 --- a/examples/extended/physicslists/factory/README +++ b/examples/extended/physicslists/factory/README @@ -6,7 +6,7 @@ Example factory I. Hrivnacova, -Institut de Physique Nucléaire (IPNO), Université Paris-Sud, CNRS-IN2P3 +Institut de Physique Nucléaire (IPNO), Université Paris-Sud, CNRS-IN2P3 Based on Hadr00 by V. Ivantchenko, CERN diff --git a/examples/extended/physicslists/factory/factory-environment.out b/examples/extended/physicslists/factory/factory-environment.out index 29e64c9de4..1ba10894f8 100644 --- a/examples/extended/physicslists/factory/factory-environment.out +++ b/examples/extended/physicslists/factory/factory-environment.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -37,6 +37,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -141,6 +143,7 @@ Apply cuts on all EM processes 1 Use combined TransportationWithMsc Enabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -168,7 +171,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -696,6 +699,11 @@ CoulombScat: for pi- XStype:1 applyCuts:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda diff --git a/examples/extended/physicslists/factory/factory.out b/examples/extended/physicslists/factory/factory.out index 2ca729a239..ccef5647a7 100644 --- a/examples/extended/physicslists/factory/factory.out +++ b/examples/extended/physicslists/factory/factory.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -36,6 +36,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -138,6 +140,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -165,7 +168,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -216,8 +219,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -702,6 +705,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda diff --git a/examples/extended/physicslists/genericPL/.README.txt b/examples/extended/physicslists/genericPL/.README.txt index 681df6bac2..6f15d9d4b7 100644 --- a/examples/extended/physicslists/genericPL/.README.txt +++ b/examples/extended/physicslists/genericPL/.README.txt @@ -6,7 +6,7 @@ \author W. Pokorski(1), I. Hrivnacova(2) \n (1) CERN \n -(2) Institut de Physique Nucléaire (IPNO), Université Paris-Sud, CNRS-IN2P3 \n +(2) Institut de Physique Nucléaire (IPNO), Université Paris-Sud, CNRS-IN2P3 \n Examples in the physicslist category show the possible ways how to define a physics list from Geant4 physics constructors. This example demonstrates diff --git a/examples/extended/physicslists/genericPL/README b/examples/extended/physicslists/genericPL/README index 237adf5ef9..9b8b9f324a 100644 --- a/examples/extended/physicslists/genericPL/README +++ b/examples/extended/physicslists/genericPL/README @@ -9,7 +9,7 @@ I. Hrivnacova (2) (1) CERN - (2) Institut de Physique Nucléaire (IPNO), Université Paris-Su + (2) Institut de Physique Nucléaire (IPNO), Université Paris-Sud Examples in the physicslist category show the possible ways how to define diff --git a/examples/extended/physicslists/genericPL/genericPL.out b/examples/extended/physicslists/genericPL/genericPL.out index ac2eaa4f33..96ac581f8b 100644 --- a/examples/extended/physicslists/genericPL/genericPL.out +++ b/examples/extended/physicslists/genericPL/genericPL.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -34,6 +34,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -137,6 +139,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -164,7 +167,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -215,8 +218,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -698,6 +701,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda diff --git a/examples/extended/polarisation/Pol01/pol01.out b/examples/extended/polarisation/Pol01/pol01.out index 9d3c88561f..2a763af3b2 100644 --- a/examples/extended/polarisation/Pol01/pol01.out +++ b/examples/extended/polarisation/Pol01/pol01.out @@ -10,7 +10,7 @@ ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -64,6 +64,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -91,7 +92,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -215,7 +216,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Run terminated. Run Summary Number of events processed : 10000 - User=0.060000s Real=0.078460s Sys=0.000000s + User=0.080000s Real=0.077689s Sys=0.000000s The run consists of 10000 gamma of 10 MeV through 1.75 mm of G4_Fe (density: 7.874 g/cm3 ) diff --git a/examples/extended/radioactivedecay/Activation/Activation.out b/examples/extended/radioactivedecay/Activation/Activation.out index d693e06373..14d3339ee0 100644 --- a/examples/extended/radioactivedecay/Activation/Activation.out +++ b/examples/extended/radioactivedecay/Activation/Activation.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -51,6 +51,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 0 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -78,7 +79,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 1 +Type of fluctuation model for leptons and hadrons Universal Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -155,35 +156,35 @@ Index : 1 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=0.130000s Real=0.133912s Sys=0.000000s + User=0.160000s Real=0.158500s Sys=0.000000s The run is 1000 neutron of 25 meV through 1 cm of G4_Co (density: 8.9 g/cm3 ) Process calls frequency : - NoProcess= 1086 Radioactivation= 2859 Rayl= 112 - Transportation= 13740 annihil= 43 compt= 1624 - conv= 44 eIoni= 5319 hadElastic= 133 - ionIoni= 2039 msc= 425 nCapture= 953 - phot= 678 + NoProcess= 1082 Radioactivation= 2841 Rayl= 108 + Transportation= 13704 annihil= 47 compt= 1619 + conv= 48 eIoni= 5355 hadElastic= 135 + ionIoni= 2029 msc= 446 nCapture= 947 + phot= 675 List of generated particles (with meanLife != 0): - Co59: 133 Emean = 38.547 meV ( 1.361 meV --> 174.95 meV) stable - Co60: 953 Emean = 220.09 eV ( 1.6775 eV --> 521.51 eV ) mean life = 7.6098 y - Ni60: 953 Emean = 15.907 eV ( 15.907 eV --> 15.907 eV ) stable - anti_nu_e: 953 Emean = 224.61 keV ( 17.743 keV --> 316.97 keV) stable - e+: 44 Emean = 1.5304 MeV ( 21.541 keV --> 4.2878 MeV) stable - e-: 3300 Emean = 307.73 keV ( 4.0273 eV --> 5.7901 MeV) stable - gamma: 6049 Emean = 1.5821 MeV ( 13.027 eV --> 7.4329 MeV) stable + Co59: 135 Emean = 38.653 meV ( 0.31874 meV --> 159.3 meV) stable + Co60: 947 Emean = 220.53 eV ( 1.6775 eV --> 521.51 eV ) mean life = 7.6098 y + Ni60: 947 Emean = 15.919 eV ( 15.907 eV --> 27.832 eV ) stable + anti_nu_e: 947 Emean = 225.64 keV ( 17.743 keV --> 316.97 keV) stable + e+: 48 Emean = 1.5809 MeV ( 95.987 keV --> 4.2878 MeV) stable + e-: 3294 Emean = 313.53 keV ( 4.0273 eV --> 5.3361 MeV) stable + gamma: 6028 Emean = 1.578 MeV ( 13.027 eV --> 7.4329 MeV) stable - Mean energy deposit per event = 1.0317 MeV rms = 1.2438 MeV - Mean energy flow per event = 8.7962 MeV rms = 2.3063 MeV + Mean energy deposit per event = 1.0509 MeV rms = 1.2361 MeV + Mean energy flow per event = 8.7151 MeV rms = 2.3928 MeV List of particles emerging from the target : - anti_nu_e: 953 Emean = 224.61 keV ( 17.743 keV --> 316.97 keV) Eflow/event = 214.05 keV + anti_nu_e: 947 Emean = 225.64 keV ( 17.743 keV --> 316.97 keV) Eflow/event = 213.69 keV e+: 2 Emean = 2.7584 MeV ( 1.8677 MeV --> 3.6491 MeV) Eflow/event = 5.5168 keV - e-: 40 Emean = 1.2674 MeV ( 43.337 keV --> 4.4039 MeV) Eflow/event = 50.695 keV - gamma: 5327 Emean = 1.6005 MeV ( 56.688 keV --> 7.4329 MeV) Eflow/event = 8.526 MeV - neutron: 47 Emean = 26.277 meV ( 11.88 meV --> 46.757 meV) Eflow/event = 1.235 meV + e-: 44 Emean = 1.3024 MeV ( 43.337 keV --> 4.4039 MeV) Eflow/event = 57.305 keV + gamma: 5305 Emean = 1.5907 MeV ( 56.688 keV --> 7.4329 MeV) Eflow/event = 8.4386 MeV + neutron: 53 Emean = 24.955 meV ( 13.524 meV --> 46.757 meV) Eflow/event = 1.3226 meV histo Id for populations : Co59 id = 26 @@ -193,7 +194,7 @@ Run Summary --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 118304102, 24178735 + Current couple of seeds = 1134064772, 488124082 ---------------------------------------- G4 kernel has come to Quit state. ================== Deleting memory pools =================== diff --git a/examples/extended/radioactivedecay/rdecay01/History b/examples/extended/radioactivedecay/rdecay01/History index d7067e1407..53ef57d764 100644 --- a/examples/extended/radioactivedecay/rdecay01/History +++ b/examples/extended/radioactivedecay/rdecay01/History @@ -1,10 +1,27 @@ # Example rdecay01 History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! -## 2022-04-03 mma (rdecay01-V11-00-01) +------------------------------------------------------------------------------- + +## 2022-11-15 Vladimir Ivanchenko (rdecay01-V11-00-05) +- PhysicsList - moved setup of options to the class constructor; + use minimal list of particles defined in G4EmBuilder; added + extended comments to the code; update header according to C++11 +- rdecay.cc - do not use G4RanecuEngine + +## 2022-10-11 Michel Maire (rdecay01-V11-00-04) +- PhysicsList::PhysicsList() : adjust meanLifeTime and halfLifeTime + +## 2022-10-02 Michel Maire (rdecay01-V11-00-03) +- PhysicsList::PhysicsList() : add SetInternalConversionFlag(G4bool) + +## 2022-08-26 Gabriele Cosmo (rdecay01-V11-00-02) +- Fixed compilation warning on gcc-12.1 for EventAction::BeginOfEventAction(). + +## 2022-04-03 Michel Maire (rdecay01-V11-00-01) - PhysicsList : SetThresholdOfHalfLife(1*picosecond*log(2)) ## 2021-12-10 Ben Morgan (rdecay01-V11-00-00) diff --git a/examples/extended/radioactivedecay/rdecay01/include/PhysicsList.hh b/examples/extended/radioactivedecay/rdecay01/include/PhysicsList.hh index 073d4ffb04..984df5a755 100644 --- a/examples/extended/radioactivedecay/rdecay01/include/PhysicsList.hh +++ b/examples/extended/radioactivedecay/rdecay01/include/PhysicsList.hh @@ -34,7 +34,6 @@ #define PhysicsList_h 1 #include "G4VUserPhysicsList.hh" -#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -42,13 +41,12 @@ class PhysicsList: public G4VUserPhysicsList { public: PhysicsList(); - ~PhysicsList(); + ~PhysicsList() override = default; protected: // Construct particle and physics - virtual void ConstructParticle(); - virtual void ConstructProcess(); - virtual void SetCuts(); + void ConstructParticle() override; + void ConstructProcess() override; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/radioactivedecay/rdecay01/rdecay01.cc b/examples/extended/radioactivedecay/rdecay01/rdecay01.cc index 1b98b75882..e12c6a1693 100644 --- a/examples/extended/radioactivedecay/rdecay01/rdecay01.cc +++ b/examples/extended/radioactivedecay/rdecay01/rdecay01.cc @@ -52,9 +52,6 @@ int main(int argc,char** argv) { G4UIExecutive* ui = 0; if (argc == 1) ui = new G4UIExecutive(argc,argv); - //choose the Random engine - CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); - //use G4SteppingVerboseWithUnits G4int precision = 4; G4SteppingVerbose::UseBestUnit(precision); @@ -83,18 +80,18 @@ int main(int argc,char** argv) { G4UImanager* UImanager = G4UImanager::GetUIpointer(); if (ui) { - //interactive mode - visManager = new G4VisExecutive; - visManager->Initialize(); - UImanager->ApplyCommand("/control/execute vis.mac"); - ui->SessionStart(); - delete ui; + //interactive mode + visManager = new G4VisExecutive; + visManager->Initialize(); + UImanager->ApplyCommand("/control/execute vis.mac"); + ui->SessionStart(); + delete ui; } else { - //batch mode - G4String command = "/control/execute "; - G4String fileName = argv[1]; - UImanager->ApplyCommand(command+fileName); + //batch mode + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UImanager->ApplyCommand(command+fileName); } //job termination diff --git a/examples/extended/radioactivedecay/rdecay01/rdecay01.out b/examples/extended/radioactivedecay/rdecay01/rdecay01.out index d3e91d1dbf..8f6a1db337 100644 --- a/examples/extended/radioactivedecay/rdecay01/rdecay01.out +++ b/examples/extended/radioactivedecay/rdecay01/rdecay01.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -20,7 +20,9 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Set atomic relaxation mode 0 +### === Deexcitation model UAtomDeexcitation is activated for 1 region: +### === Auger flag: 1 +### === Ignore cuts flag: 1 /run/verbose 1 /control/cout/ignoreThreadsExcept 0 # @@ -38,11 +40,12 @@ min MeanLife (from G4NuclideTable) 1 ps Max life time (from G4DeexPrecoParameters) 1 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 0 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 -Atomic de-excitation enabled 0 -Auger electron emission enabled 0 -Check EM cuts disabled for atomic de-excitation 0 +Atomic de-excitation enabled 1 +Auger electron emission enabled 1 +Check EM cuts disabled for atomic de-excitation 1 Use Bearden atomic level energies 0 Use ANSTO fluorescence model 0 Threshold for very long decay time at rest 3.171e+10 y @@ -71,9 +74,9 @@ Step# X Y Z KineE dEStep StepLeng T 1 0 fm 0 fm 0 fm 0 eV 0 eV 0 fm 0 fm World Radioactivation :----- List of secondaries ---------------- - Ni60[2505.753]: energy = 1.818 eV time = 9.982 y - anti_nu_e: energy = 188.1 keV time = 9.982 y - e-: energy = 128.9 keV time = 9.982 y + Ni60[2505.753]: energy = 3.234 eV time = 1.348 y + anti_nu_e: energy = 40.1 keV time = 1.348 y + e-: energy = 277 keV time = 1.348 y :------------------------------------------ @@ -82,29 +85,29 @@ Step# X Y Z KineE dEStep StepLeng T ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 0 fm 0 fm 0 fm 128.9 keV 0 eV 0 fm 0 fm World initStep - 1 -2.171 mm -356.7 um 1 cm 128.9 keV 0 eV 1.024 cm 1.024 cm World OutOfWorld + 0 0 fm 0 fm 0 fm 277 keV 0 eV 0 fm 0 fm World initStep + 1 -2.027 mm 7.921 mm -1 cm 277 keV 0 eV 1.292 cm 1.292 cm World OutOfWorld ********************************************************************************************************* * G4Track Information: Particle = anti_nu_e, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 0 fm 0 fm 0 fm 188.1 keV 0 eV 0 fm 0 fm World initStep - 1 -2.269 mm -1 cm 538.6 um 188.1 keV 0 eV 1.027 cm 1.027 cm World OutOfWorld + 0 0 fm 0 fm 0 fm 40.1 keV 0 eV 0 fm 0 fm World initStep + 1 -5.072 mm 1 cm 9.102 mm 40.1 keV 0 eV 1.444 cm 1.444 cm World OutOfWorld ********************************************************************************************************* * G4Track Information: Particle = Ni60[2505.753], Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 0 fm 0 fm 0 fm 1.818 eV 0 eV 0 fm 0 fm World initStep + 0 0 fm 0 fm 0 fm 3.234 eV 0 eV 0 fm 0 fm World initStep End of event. Decay chain: Co60 ---> Ni60[2505.753] Run terminated. Run Summary Number of events processed : 1 - User=0.010000s Real=0.010993s Sys=0.010000s + User=0.010000s Real=0.002439s Sys=0.000000s ======================== run summary ====================== The run was 1 Co60 of 0 eV @@ -113,19 +116,19 @@ Run Summary Nb of generated particles: Co60: 1 Emean = 0 eV ( 0 eV --> 0 eV ) mean life = 7.61 y - Ni60[2505.753]: 1 Emean = 1.818 eV ( 1.818 eV --> 1.818 eV ) mean life = 4.761 ps - anti_nu_e: 1 Emean = 188.1 keV ( 188.1 keV --> 188.1 keV) stable - e-: 1 Emean = 128.9 keV ( 128.9 keV --> 128.9 keV) stable + Ni60[2505.753]: 1 Emean = 3.234 eV ( 3.234 eV --> 3.234 eV ) mean life = 4.761 ps + anti_nu_e: 1 Emean = 40.1 keV ( 40.1 keV --> 40.1 keV) stable + e-: 1 Emean = 277 keV ( 277 keV --> 277 keV) stable Ekin Total (Q single decay): mean = 317.1 keV ( 317.1 keV --> 317.1 keV) - Momentum balance (excluding gamma desexcitation): mean = 559.6 meV ( 559.6 meV --> 559.6 meV) + Momentum balance (excluding gamma desexcitation): mean = 94.11 meV ( 94.11 meV --> 94.11 meV) - Total time of life (full chain): mean = 9.982 y half-life = 6.919 y ( 9.982 y --> 9.982 y ) + Total time of life (full chain): mean = 1.348 y half-life = 341.1 d ( 1.348 y --> 1.348 y ) - Total visible energy (full chain) : mean = 128.9 keV ( 128.9 keV --> 128.9 keV) + Total visible energy (full chain) : mean = 277 keV ( 277 keV --> 277 keV) - Activity of Co60 = 3.188e+13 Bq/g (861.7 Ci/g) + Activity of Co60 = 2.36e+14 Bq/g (6379 Ci/g) # @@ -179,7 +182,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100000 - User=0.810000s Real=0.816016s Sys=0.000000s + User=0.990000s Real=1.005301s Sys=0.000000s ======================== run summary ====================== The run was 100000 Co60 of 0 eV @@ -188,20 +191,20 @@ Run Summary Nb of generated particles: Co60: 100000 Emean = 0 eV ( 0 eV --> 0 eV ) mean life = 7.61 y - Ni60[1332.514]: 118 Emean = 17.74 eV ( 367.3 meV --> 32.55 eV ) mean life = 1.06 ps - Ni60[2505.753]: 99882 Emean = 1.469 eV ( 0.8367 meV --> 3.757 eV ) mean life = 4.761 ps - anti_nu_e: 100000 Emean = 223 keV ( 3.89 keV --> 1.482 MeV) stable - e-: 100000 Emean = 95.49 keV ( 2.058 eV --> 1.358 MeV) stable + Ni60[1332.514]: 128 Emean = 17.74 eV ( 183.6 meV --> 33.25 eV ) mean life = 1.06 ps + Ni60[2505.753]: 99872 Emean = 1.478 eV ( 0.2474 meV --> 3.769 eV ) mean life = 4.761 ps + anti_nu_e: 100000 Emean = 222.3 keV ( 2.469 keV --> 1.461 MeV) stable + e-: 100000 Emean = 96.27 keV ( 2.178 eV --> 1.326 MeV) stable - Ekin Total (Q single decay): mean = 318.4 keV ( 317.1 keV --> 1.49 MeV) + Ekin Total (Q single decay): mean = 318.6 keV ( 317.1 keV --> 1.49 MeV) - Momentum balance (excluding gamma desexcitation): mean = 328.1 meV ( 0.0004246 meV --> 15.58 eV ) + Momentum balance (excluding gamma desexcitation): mean = 327.9 meV ( 0.0008429 meV --> 21.99 eV ) - Total time of life (full chain): mean = 7.607 y half-life = 5.273 y ( 15.92 min --> 94.63 y ) + Total time of life (full chain): mean = 7.604 y half-life = 5.271 y ( 9.09 s --> 86.28 y ) - Total visible energy (full chain) : mean = 95.49 keV ( 2.953 eV --> 1.358 MeV) + Total visible energy (full chain) : mean = 96.27 keV ( 3.074 eV --> 1.326 MeV) - Activity of Co60 = 4.184e+13 Bq/g (1131 Ci/g) + Activity of Co60 = 4.186e+13 Bq/g (1131 Ci/g) # @@ -254,7 +257,7 @@ Index : 0 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 100000 - User=1.960000s Real=1.989283s Sys=0.000000s + User=2.420000s Real=2.430876s Sys=0.000000s ======================== run summary ====================== The run was 100000 Co60 of 0 eV @@ -264,22 +267,22 @@ Run Summary Co60: 100000 Emean = 0 eV ( 0 eV --> 0 eV ) mean life = 7.61 y Ni60: 100000 Emean = 15.91 eV ( 15.91 eV --> 41.74 eV ) stable - Ni60[1332.514]: 99999 Emean = 12.34 eV ( 347.1 meV --> 32.26 eV ) mean life = 1.06 ps + Ni60[1332.514]: 99999 Emean = 12.34 eV ( 2.57 eV --> 31.52 eV ) mean life = 1.06 ps Ni60[2158.632]: 6 Emean = 1.079 eV ( 1.079 eV --> 1.079 eV ) - Ni60[2505.753]: 99878 Emean = 1.476 eV ( 0.5675 meV --> 3.762 eV ) mean life = 4.761 ps - anti_nu_e: 100000 Emean = 222.1 keV ( 3.749 keV --> 1.49 MeV) stable - e-: 100028 Emean = 96.66 keV ( 3.218 eV --> 1.458 MeV) stable - gamma: 199855 Emean = 1.253 MeV ( 347.1 keV --> 2.159 MeV) stable + Ni60[2505.753]: 99885 Emean = 1.472 eV ( 1.652 meV --> 3.747 eV ) mean life = 4.761 ps + anti_nu_e: 100000 Emean = 222.6 keV ( 4.454 keV --> 1.489 MeV) stable + e-: 100021 Emean = 96.09 keV ( 70.73 meV --> 1.36 MeV) stable + gamma: 199869 Emean = 1.253 MeV ( 347.1 keV --> 2.159 MeV) stable Ekin Total (Q single decay): mean = 941.3 keV ( 317.1 keV --> 2.159 MeV) - Momentum balance (excluding gamma desexcitation): mean = 965.8 keV ( 0.008172 meV --> 2.981 MeV) + Momentum balance (excluding gamma desexcitation): mean = 966 keV ( 0.006647 meV --> 3.019 MeV) - Total time of life (full chain): mean = 7.582 y half-life = 5.256 y ( 11.42 min --> 84.33 y ) + Total time of life (full chain): mean = 7.595 y half-life = 5.264 y ( 39.79 min --> 78.38 y ) - Total visible energy (full chain) : mean = 2.601 MeV ( 1.333 MeV --> 2.819 MeV) + Total visible energy (full chain) : mean = 2.6 MeV ( 1.334 MeV --> 2.818 MeV) - Activity of Co60 = 4.197e+13 Bq/g (1134 Ci/g) + Activity of Co60 = 4.191e+13 Bq/g (1133 Ci/g) G4 kernel has come to Quit state. diff --git a/examples/extended/radioactivedecay/rdecay01/src/EventAction.cc b/examples/extended/radioactivedecay/rdecay01/src/EventAction.cc index bfb5125b6a..98e5808215 100644 --- a/examples/extended/radioactivedecay/rdecay01/src/EventAction.cc +++ b/examples/extended/radioactivedecay/rdecay01/src/EventAction.cc @@ -58,7 +58,7 @@ EventAction::~EventAction() void EventAction::BeginOfEventAction(const G4Event*) { - fDecayChain = " "; + fDecayChain = G4String(" "); fEvisTot = 0.; } diff --git a/examples/extended/radioactivedecay/rdecay01/src/PhysicsList.cc b/examples/extended/radioactivedecay/rdecay01/src/PhysicsList.cc index abf4cf1e43..e218a9117c 100644 --- a/examples/extended/radioactivedecay/rdecay01/src/PhysicsList.cc +++ b/examples/extended/radioactivedecay/rdecay01/src/PhysicsList.cc @@ -38,60 +38,56 @@ #include "G4NuclideTable.hh" #include "G4LossTableManager.hh" #include "G4UAtomicDeexcitation.hh" +#include "G4NuclideTable.hh" #include "G4NuclearLevelData.hh" #include "G4DeexPrecoParameters.hh" -#include "G4NuclideTable.hh" +#include "G4PhysListUtil.hh" +#include "G4EmBuilder.hh" +#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysicsList::PhysicsList() : G4VUserPhysicsList() { - // mandatory for G4NuclideTable + // instantiate Physics List infrastructure // - G4NuclideTable::GetInstance()->SetThresholdOfHalfLife(1*ps*std::log(2.)); + G4PhysListUtil::InitialiseParameters(); + + // update G4NuclideTable time limit + // + const G4double meanLife = 1*picosecond; + G4NuclideTable::GetInstance()->SetMeanLifeThreshold(meanLife); G4NuclideTable::GetInstance()->SetLevelTolerance(1.0*eV); - //read new PhotonEvaporation data set + // define flags for the atomic de-excitation module + // + G4EmParameters::Instance()->SetDefaults(); + G4EmParameters::Instance()->SetAugerCascade(true); + G4EmParameters::Instance()->SetDeexcitationIgnoreCut(true); + + // define flags for nuclear gamma de-excitation model // G4DeexPrecoParameters* deex = G4NuclearLevelData::GetInstance()->GetParameters(); deex->SetCorrelatedGamma(false); deex->SetStoreAllLevels(true); + deex->SetInternalConversionFlag(true); deex->SetIsomerProduction(true); - deex->SetMaxLifeTime(G4NuclideTable::GetInstance()->GetThresholdOfHalfLife() - /std::log(2.)); + deex->SetMaxLifeTime(meanLife); + + // set default cut in range value + // + SetDefaultCutValue(1*mm); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PhysicsList::~PhysicsList() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void PhysicsList::ConstructParticle() { - // pseudo-particles - G4Geantino::GeantinoDefinition(); - - // gamma - G4Gamma::GammaDefinition(); - - // leptons - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - - G4NeutrinoE::NeutrinoEDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); - - // baryons - G4Proton::ProtonDefinition(); - G4Neutron::NeutronDefinition(); - - // ions - G4IonConstructor iConstructor; - iConstructor.ConstructParticle(); + // minimal set of particles for EM physics and radioactive decay + // + G4EmBuilder::ConstructMinimalEmSet(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -99,40 +95,27 @@ void PhysicsList::ConstructParticle() void PhysicsList::ConstructProcess() { AddTransportation(); - + G4Radioactivation* radioactiveDecay = new G4Radioactivation(); G4bool ARMflag = false; radioactiveDecay->SetARM(ARMflag); //Atomic Rearangement - - // need to initialize atomic deexcitation + + // EM physics constructor is not used in this example, so + // it is needed to instantiate and to initialize atomic deexcitation // G4LossTableManager* man = G4LossTableManager::Instance(); G4VAtomDeexcitation* deex = man->AtomDeexcitation(); - if (!deex) { - ///G4EmParameters::Instance()->SetFluo(true); - G4EmParameters::Instance()->SetAugerCascade(ARMflag); - G4EmParameters::Instance()->SetDeexcitationIgnoreCut(ARMflag); + if (nullptr == deex) { deex = new G4UAtomicDeexcitation(); - deex->InitialiseAtomicDeexcitation(); man->SetAtomDeexcitation(deex); } + deex->InitialiseAtomicDeexcitation(); // register radioactiveDecay // G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); ph->RegisterProcess(radioactiveDecay, G4GenericIon::GenericIon()); - - //printout - // - G4cout << "\n Set atomic relaxation mode " << ARMflag << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void PhysicsList::SetCuts() -{ - SetCutsWithDefault(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/radioactivedecay/rdecay02/rdecay02.out b/examples/extended/radioactivedecay/rdecay02/rdecay02.out index ed0fb50171..49ff47e052 100644 --- a/examples/extended/radioactivedecay/rdecay02/rdecay02.out +++ b/examples/extended/radioactivedecay/rdecay02/rdecay02.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -64,7 +64,6 @@ Command is ignored. /gun/ion 10 24 # /analysis/setFileName rdecay02 -Set file name: rdecay02 /analysis/h1/set 6 100 0. 2. MeV ###/analysis/ntuple/setActivation 3 true # @@ -79,6 +78,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -106,7 +106,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -142,8 +142,7 @@ Screening factor 1 ====== Atomic Deexcitation Parameters ======== ======================================================================= Fluorescence enabled 1 -Fluorescence Bearden data files enabled 0 -Fluorescence ANSTO data files enabled 0 +Directory in G4LEDATA for fluorescence data files fluor Auger electron cascade enabled 1 PIXE atomic de-excitation enabled 0 De-excitation module ignores cuts 0 @@ -173,8 +172,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -290,6 +289,7 @@ min MeanLife (from G4NuclideTable) 0.14427 ps Max life time (from G4DeexPrecoParameters) 0.14427 ps Internal e- conversion flag 1 Stored internal conversion coefficients 1 +Enabled atomic relaxation mode 1 Enable correlated gamma emission 0 Max 2J for sampling of angular correlations 10 Atomic de-excitation enabled 1 @@ -935,51 +935,51 @@ Index : 2 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10000 - User=0.810000s Real=0.814558s Sys=0.000000s + User=0.890000s Real=0.896087s Sys=0.000000s The run is 10000 Ne24 of 0 eV through : Target : Length = 1 cm Radius = 5 mm Material = G4_CESIUM_IODIDE Detector : Length = 5 cm Thickness = 2 cm Material = Germanium - Mean energy deposit in target, in time window = 808.26 keV rms = 419.4 keV - Mean energy deposit in detector, in time window = 16.622 keV rms = 102.8 keV + Mean energy deposit in target, in time window = 806.94 keV rms = 418.79 keV + Mean energy deposit in detector, in time window = 17.908 keV rms = 107.21 keV Process calls frequency in target : - NoProcess= 10000 Radioactivation= 50718 Rayl= 265 - Transportation= 50118 annihil= 173 compt= 4165 - conv= 179 eIoni= 26004 ionIoni= 39488 - msc= 3797 phot= 1622 + NoProcess= 10000 Radioactivation= 50746 Rayl= 253 + Transportation= 50164 annihil= 168 compt= 4175 + conv= 174 eIoni= 25978 ionIoni= 39517 + msc= 3734 phot= 1599 Process calls frequency in detector: - Rayl= 1698 Transportation= 45913 annihil= 344 - compt= 22125 conv= 345 eIoni= 26970 - msc= 6044 phot= 4187 + Rayl= 1251 Transportation= 45864 annihil= 356 + compt= 22561 conv= 353 eIoni= 27526 + msc= 5923 phot= 4281 List of generated particles in target: - Mg24: 10000 Emean = 42.112 eV ( 41.932 eV --> 663.49 eV ) - Mg24[1368.672]: 9995 Emean = 169.97 eV ( 45.911 eV --> 419.36 eV ) - Mg24[4122.889]: 9977 Emean = 38.876 eV ( 14.563 meV --> 74.608 eV ) - Mg24[5235.120]: 8 Emean = 3.8651 eV ( 1.4712 eV --> 5.4592 eV ) - Na24: 9995 Emean = 4.9955 eV ( 4.9901 eV --> 15.742 eV ) - Na24[1346.621]: 737 Emean = 26.789 eV ( 23.749 meV --> 52.248 eV ) - Na24[472.207]: 10000 Emean = 68.358 eV ( 154.07 meV --> 133.6 eV ) - Na24[563.199]: 6 Emean = 13.735 eV ( 13.735 eV --> 13.735 eV ) - anti_nu_e: 20000 Emean = 983.25 keV ( 30.292 keV --> 4.9555 MeV) - e+: 179 Emean = 821.85 keV ( 15.799 keV --> 1.6418 MeV) - e-: 25980 Emean = 637.15 keV ( 72.285 eV --> 4.7194 MeV) - gamma: 31057 Emean = 1.5046 MeV ( 90.991 keV --> 3.8661 MeV) + Mg24: 10000 Emean = 42.155 eV ( 41.932 eV --> 802.68 eV ) + Mg24[1368.672]: 9995 Emean = 169.92 eV ( 45.911 eV --> 349.16 eV ) + Mg24[4122.889]: 9980 Emean = 38.79 eV ( 14.563 meV --> 74.702 eV ) + Mg24[5235.120]: 9 Emean = 3.7618 eV ( 1.0366 eV --> 5.4592 eV ) + Na24: 9995 Emean = 4.9965 eV ( 4.9901 eV --> 15.742 eV ) + Na24[1346.621]: 759 Emean = 27.439 eV ( 61.911 meV --> 52.248 eV ) + Na24[472.207]: 10000 Emean = 68.294 eV ( 154.07 meV --> 133.6 eV ) + Na24[563.199]: 8 Emean = 13.735 eV ( 13.735 eV --> 13.735 eV ) + anti_nu_e: 20000 Emean = 982.25 keV ( 30.292 keV --> 4.6137 MeV) + e+: 174 Emean = 857.81 keV ( 15.799 keV --> 1.6532 MeV) + e-: 25965 Emean = 637.67 keV ( 72.285 eV --> 4.7194 MeV) + gamma: 31074 Emean = 1.5046 MeV ( 90.991 keV --> 3.8661 MeV) List of generated particles in detector: - e+: 345 Emean = 792.28 keV ( 29.283 keV --> 1.6652 MeV) - e-: 26648 Emean = 382.16 keV ( 103.28 eV --> 2.7429 MeV) - gamma: 688 Emean = 516.61 keV ( 422.15 keV --> 1.5666 MeV) + e+: 353 Emean = 811.06 keV ( 44.173 keV --> 1.6652 MeV) + e-: 27181 Emean = 373.28 keV ( 103.28 eV --> 2.7429 MeV) + gamma: 712 Emean = 516.18 keV ( 422.15 keV --> 1.5666 MeV) ... write file : rdecay02.root - done ... close file : rdecay02.root - done --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1092971881, 1165025557 + Current couple of seeds = 390690496, 754703547 ---------------------------------------- G4 kernel has come to Quit state. ================== Deleting memory pools =================== diff --git a/examples/extended/runAndEvent/RE01/sample.out b/examples/extended/runAndEvent/RE01/sample.out index cbfb99b7ce..e55ac6ae6e 100644 --- a/examples/extended/runAndEvent/RE01/sample.out +++ b/examples/extended/runAndEvent/RE01/sample.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -31,6 +31,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -95,6 +97,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -122,7 +125,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -173,8 +176,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -659,6 +662,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -936,4050 +944,4212 @@ See commands in /vis/modeling/trajectories/ for other options. Tracks in tracking region have been processed. -- Stage 0 over. -Source track ID 6929 (gamma,0.030885516027427[GeV]) at (140.51081685847,479.85071672945,-280.91521444109) +Source track ID 6920 (gamma,12.806819797131[GeV]) at (140.5070456637,479.85182100192,-280.94778579312) Original primary track ID 1 (unknown,305.48142430119[GeV]) -Cell[8,9] 0.028346597920424 [GeV] -Cell[8,10] 0.0025389181070027 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.030885516027427 (GeV) +Cell[8,9] 11.66438975136 [GeV] +Cell[8,10] 0.9155325426781 [GeV] +Cell[8,8] 0.048117018621514 [GeV] +Cell[9,8] 0.0025036811377319 [GeV] +Cell[9,9] 0.00046814365740366 [GeV] +Cell[7,9] 0.073566241269433 [GeV] +Cell[8,13] 0.0013993488421529 [GeV] +Cell[8,7] 0.0092063361439201 [GeV] +Cell[7,10] 0.027040811472188 [GeV] +Cell[8,11] 0.010066885444972 [GeV] +Cell[5,28] 0.0017201317797309 [GeV] +Cell[8,3] 0.00051099891 [GeV] +Cell[13,45] 8.8902556828213e-05 [GeV] +Cell[10,37] 0.00051099891 [GeV] +Cell[7,14] 0.0010249526938087 [GeV] +Cell[11,11] 5.0932925078087e-06 [GeV] +Cell[11,14] 2.4612560402602e-05 [GeV] +Cell[15,36] 0.00060032114436171 [GeV] +Cell[18,26] 1.4134259254206e-06 [GeV] +Cell[18,25] 1.7629499656323e-05 [GeV] +Cell[18,24] 7.7496402082033e-07 [GeV] +Cell[19,26] 1.4666285424028e-06 [GeV] +Cell[14,11] 5.9355447770031e-05 [GeV] +Cell[14,12] 9.1566707124002e-07 [GeV] +Cell[14,10] 7.0060545112938e-08 [GeV] +Cell[5,39] 0.0027189912171992 [GeV] +Cell[5,41] 0.00051099891 [GeV] +Cell[8,12] 0.00042263882445341 [GeV] +Cell[11,39] 0.0031612885017681 [GeV] +Cell[7,13] 2.1109299268574e-09 [GeV] +Cell[8,26] 2.7296832786305e-07 [GeV] +Cell[8,27] 1.0934683587038e-08 [GeV] +Cell[9,7] 0.0001557443156815 [GeV] +Cell[9,10] 0.0042131010396168 [GeV] +Cell[7,25] 0.0054443224751593 [GeV] +Cell[9,4] 0.0016270610847697 [GeV] +Cell[5,22] 0.0014787877307045 [GeV] +Cell[7,8] 0.0011657788159149 [GeV] +Cell[6,30] 0.0029049004034966 [GeV] +Cell[6,29] 0.0036634689201705 [GeV] +Cell[7,11] 0.00069292218547667 [GeV] +Cell[1,41] 0.0016374650440471 [GeV] +Cell[12,36] 0.00059378889459038 [GeV] +Cell[6,10] 0.0022033261292221 [GeV] +Cell[6,28] 0.0013211200763786 [GeV] +Cell[10,22] 0.00060771544322893 [GeV] +### Total energy deposition in calorimeter by a source track in 46 cells : 12.791382104195 (GeV) -Source track ID 6930 (gamma,2.8411235736282[GeV]) at (140.50786358846,479.85158150183,-280.91076317949) +Source track ID 6924 (gamma,0.13536799432306[GeV]) at (140.64566128361,479.81121075075,-280.91944214739) Original primary track ID 1 (unknown,305.48142430119[GeV]) -Cell[8,9] 2.60939959535 [GeV] -Cell[8,10] 0.18990346364799 [GeV] -Cell[7,9] 0.0037520212478771 [GeV] -Cell[8,11] 0.0037898722064207 [GeV] -Cell[9,35] 0.0018343585813301 [GeV] -Cell[7,11] 0.0077724618905832 [GeV] -Cell[7,8] 0.0020001758642965 [GeV] -Cell[7,12] 0.0011556261621736 [GeV] -Cell[8,12] 0.00051099891 [GeV] -Cell[16,26] 0.0014346915191491 [GeV] -Cell[8,8] 0.0036482413787346 [GeV] -Cell[9,43] 0.00014683173355803 [GeV] -Cell[2,35] 0.00051099891 [GeV] -Cell[10,5] 0.00051099891 [GeV] -Cell[3,24] 0.00095475153510186 [GeV] -Cell[7,41] 0.0014451487642845 [GeV] -Cell[7,10] 0.0024062303560271 [GeV] -Cell[9,10] 0.000152586121938 [GeV] -Cell[12,44] 0.0014361481603479 [GeV] -Cell[14,23] 0.0009552474928615 [GeV] -Cell[4,43] 0.00051099891 [GeV] -Cell[4,22] 0.0025336251408539 [GeV] -Cell[7,18] 0.0003568531173456 [GeV] -Cell[9,9] 0.0015664616245347 [GeV] -Cell[8,28] 0.0003105899911061 [GeV] -Cell[13,28] 0.00044504944496067 [GeV] -### Total energy deposition in calorimeter by a source track in 26 cells : 2.8394440269715 (GeV) +Cell[8,9] 0.12443193714601 [GeV] +Cell[8,10] 0.0058938439439693 [GeV] +Cell[7,10] 0.00087570697291546 [GeV] +Cell[8,1] 0.00020964567039 [GeV] +Cell[2,41] 0.0034511359345816 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.13486226966787 (GeV) -Source track ID 6932 (gamma,0.043873509677309[GeV]) at (140.64024007781,479.81279981974,-280.92389386282) +Source track ID 6927 (gamma,6.2387805647339[GeV]) at (140.748004777,479.78119924742,-280.91978005103) Original primary track ID 1 (unknown,305.48142430119[GeV]) -Cell[8,9] 0.041674648124537 [GeV] -Cell[8,10] 0.0011768637327719 [GeV] -Cell[8,8] 0.00051099891 [GeV] -Cell[5,39] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.043873509677309 (GeV) +Cell[8,9] 5.7489929417194 [GeV] +Cell[8,10] 0.32940941904119 [GeV] +Cell[8,8] 0.028430396862375 [GeV] +Cell[9,8] 0.0028286592614795 [GeV] +Cell[9,9] 0.0008820444072833 [GeV] +Cell[7,9] 0.023490718091545 [GeV] +Cell[8,7] 0.00074171736451205 [GeV] +Cell[7,10] 0.0071596291485783 [GeV] +Cell[8,11] 0.012791285074534 [GeV] +Cell[8,12] 0.0028480530551827 [GeV] +Cell[9,10] 0.0042633809869841 [GeV] +Cell[7,25] 2.5520844879793e-05 [GeV] +Cell[5,22] 0.0065407846668987 [GeV] +Cell[7,8] 0.0067312565766485 [GeV] +Cell[7,11] 0.0013234971722281 [GeV] +Cell[7,26] 0.00091552300467179 [GeV] +Cell[7,40] 0.0016478607878854 [GeV] +Cell[9,12] 0.0002237566950937 [GeV] +Cell[7,7] 0.00013094771781881 [GeV] +Cell[7,19] 0.00018365730562546 [GeV] +Cell[9,11] 0.0019027996280132 [GeV] +Cell[11,43] 0.0007516697993142 [GeV] +Cell[6,22] 0.00096855294662796 [GeV] +Cell[3,40] 0.0012568466565542 [GeV] +Cell[13,36] 0.00051099891 [GeV] +Cell[8,36] 0.0036262119577591 [GeV] +Cell[5,33] 0.00011009680603464 [GeV] +Cell[10,17] 0.00027540552703559 [GeV] +Cell[8,0] 0.0034590494045315 [GeV] +Cell[9,0] 0.0006713059904666 [GeV] +Cell[5,35] 0.0013985937719648 [GeV] +Cell[6,35] 0.00016823986697371 [GeV] +Cell[6,47] 0.00017832903042833 [GeV] +Cell[12,34] 6.8158359541614e-05 [GeV] +Cell[7,42] 0.00051099891 [GeV] +Cell[7,41] 0.00076279677751677 [GeV] +Cell[7,37] 0.002054112349267 [GeV] +Cell[10,29] 0.0024890782572218 [GeV] +Cell[6,45] 0.0027210180201851 [GeV] +Cell[6,26] 0.00048888608675873 [GeV] +Cell[6,27] 0.00051560179696469 [GeV] +Cell[7,24] 5.1294943550602e-06 [GeV] +Cell[6,18] 0.0017833466990321 [GeV] +Cell[9,25] 0.00059173924580037 [GeV] +### Total energy deposition in calorimeter by a source track in 44 cells : 6.2068300160771 (GeV) -Source track ID 6934 (gamma,0.020865333671816[GeV]) at (140.78115041425,479.77147444178,-280.92494843236) +Source track ID 6932 (e-,1.094080313694[GeV]) at (136.38302618222,481.04019600173,-281.00971470854) Original primary track ID 1 (unknown,305.48142430119[GeV]) -Cell[8,9] 0.015703902718779 [GeV] -Cell[9,10] 0.00025495108728558 [GeV] -Cell[5,35] 0.0046504320430368 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.020609285849101 (GeV) +Cell[8,9] 0.91901190585348 [GeV] +Cell[8,10] 0.15384640450594 [GeV] +Cell[8,8] 0.0030077348175337 [GeV] +Cell[7,10] 0.0023206974581328 [GeV] +Cell[8,11] 0.002650061411394 [GeV] +Cell[8,12] 0.0016394045194051 [GeV] +Cell[7,8] 0.0001381356295014 [GeV] +Cell[7,42] 0.00065566813902508 [GeV] +Cell[4,0] 0.0002541187391466 [GeV] +Cell[7,35] 0.00035421131044605 [GeV] +Cell[8,45] 1.6987625946058e-05 [GeV] +Cell[1,20] 0.00019473960654238 [GeV] +Cell[1,21] 0.00061026954333124 [GeV] +Cell[1,22] 1.0653199191438e-05 [GeV] +Cell[0,21] 9.1320330011513e-07 [GeV] +Cell[0,22] 4.1389587208982e-05 [GeV] +Cell[13,28] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 17 cells : 1.0852642940595 (GeV) -Source track ID 6935 (gamma,0.056359844846821[GeV]) at (140.78211986997,479.77118996967,-280.92617710645) +Source track ID 6934 (gamma,0.00020258757575915[GeV]) at (149.36223256084,477.16970092876,-281.32096421457) Original primary track ID 1 (unknown,305.48142430119[GeV]) -Cell[8,9] 0.056359844846821 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.056359844846821 (GeV) +Cell[8,9] 0.00020258757575915 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00020258757575915 (GeV) -Source track ID 6936 (gamma,0.041875182421676[GeV]) at (140.78258602999,479.77105318131,-280.92843638087) +Source track ID 6933 (e+,0.39255142292171[GeV]) at (152.16246089709,476.28414365139,-281.79253219582) Original primary track ID 1 (unknown,305.48142430119[GeV]) -Cell[8,9] 0.034436620973415 [GeV] -Cell[8,10] 0.001480947388639 [GeV] -Cell[7,9] 0.00045054578323428 [GeV] -Cell[7,10] 0.0011718092949092 [GeV] -Cell[9,26] 0.0038637689616117 [GeV] -Cell[9,25] 0.00047149001986631 [GeV] -### Total energy deposition in calorimeter by a source track in 6 cells : 0.041875182421676 (GeV) +Cell[8,9] 0.38253905381542 [GeV] +Cell[8,10] 4.0288368202083e-05 [GeV] +Cell[8,8] 0.0016876237098221 [GeV] +Cell[7,9] 0.0022456433351135 [GeV] +Cell[6,27] 0.00044794061517567 [GeV] +Cell[11,36] 0.000440144941983 [GeV] +Cell[11,24] 0.00060513941204117 [GeV] +Cell[2,1] 0.00062888976208624 [GeV] +Cell[6,34] 0.0028910752894017 [GeV] +Cell[5,14] 0.0014657686144489 [GeV] +### Total energy deposition in calorimeter by a source track in 10 cells : 0.3929915678637 (GeV) -Source track ID 6852 (e+,70.53936430519[GeV]) at (140.79841383692,479.76640843332,-280.92958631649) +Source track ID 6929 (gamma,5.9188974190344e-05[GeV]) at (140.78789127389,479.76949639452,-280.92336940519) Original primary track ID 1 (unknown,305.48142430119[GeV]) -Cell[8,9] 64.094131913561 [GeV] -Cell[8,10] 4.5526746136778 [GeV] -Cell[7,9] 0.7048180089017 [GeV] -Cell[8,11] 0.10812775113372 [GeV] -Cell[7,11] 0.034170806921574 [GeV] -Cell[7,8] 0.05105253702282 [GeV] -Cell[7,12] 0.0014738456715149 [GeV] -Cell[8,12] 0.0095756836562667 [GeV] -Cell[8,8] 0.35148277647202 [GeV] -Cell[9,43] 1.2621746282093e-06 [GeV] -Cell[7,10] 0.24808506274362 [GeV] -Cell[9,10] 0.0089225065746418 [GeV] -Cell[4,43] 0.001421685024799 [GeV] -Cell[4,22] 0.007444046067153 [GeV] -Cell[9,9] 0.019801030250864 [GeV] -Cell[8,28] 0.0002843679955975 [GeV] -Cell[7,5] 0.0054878456585725 [GeV] -Cell[7,7] 0.0052770681560403 [GeV] -Cell[8,7] 0.015352665745535 [GeV] -Cell[9,7] 0.0009037652364031 [GeV] -Cell[8,13] 0.0014069318033045 [GeV] -Cell[4,35] 0.004025536873087 [GeV] -Cell[11,36] 0.0022964881888035 [GeV] -Cell[9,8] 0.003521959183083 [GeV] -Cell[7,6] 0.010297294833661 [GeV] -Cell[11,39] 0.0022408999346688 [GeV] -Cell[3,14] 0.0002710695708537 [GeV] -Cell[4,46] 0.0008987944886265 [GeV] -Cell[5,38] 3.0207917256121e-05 [GeV] -Cell[5,37] 0.00041313207246321 [GeV] -Cell[6,10] 0.00071917755361665 [GeV] -Cell[6,11] 0.0012879255382534 [GeV] -Cell[5,19] 0.00095030581651323 [GeV] -Cell[9,42] 0.0005778322238593 [GeV] -Cell[9,12] 0.00031141653330109 [GeV] -Cell[9,13] 3.4605399323937e-05 [GeV] -Cell[6,9] 0.00044184352585709 [GeV] -Cell[6,8] 0.0015476338482063 [GeV] -Cell[9,11] 0.0057741027767572 [GeV] -Cell[6,15] 0.0029099171035976 [GeV] -Cell[6,5] 0.0024500986093644 [GeV] -Cell[6,25] 0.0018437073889463 [GeV] -Cell[6,46] 0.0034750723453337 [GeV] -Cell[9,2] 0.00080854139684946 [GeV] -Cell[9,1] 0.00017231692936173 [GeV] -Cell[8,1] 0.00012187685951437 [GeV] -Cell[5,34] 0.0010177909230917 [GeV] -Cell[6,7] 0.001109283472566 [GeV] -Cell[6,6] 0.00041044932672718 [GeV] -Cell[8,27] 0.0015623118072942 [GeV] -Cell[10,9] 0.00045938754163761 [GeV] -Cell[6,27] 0.002051158792818 [GeV] -Cell[4,27] 0.0032616516788746 [GeV] -Cell[5,26] 0.00015109109303286 [GeV] -Cell[8,14] 0.00017905525338514 [GeV] -Cell[6,34] 0.00051099891 [GeV] -Cell[7,13] 0.0030132329445757 [GeV] -Cell[7,42] 0.0012942124071736 [GeV] -Cell[3,39] 0.00010192172461172 [GeV] -Cell[8,6] 0.0035976980817294 [GeV] -Cell[6,33] 0.0042684825424151 [GeV] -Cell[6,38] 0.0026038102295122 [GeV] -Cell[5,28] 0.00071501133543813 [GeV] -Cell[8,4] 0.0012181374313789 [GeV] -Cell[7,37] 0.00060097413471752 [GeV] -Cell[7,32] 0.00069580987288703 [GeV] -Cell[8,33] 0.00048012842511477 [GeV] -Cell[8,32] 2.410444129282e-05 [GeV] -Cell[9,30] 0.00030871603348734 [GeV] -Cell[9,46] 0.00086442338400572 [GeV] -Cell[13,29] 0.00084426424468325 [GeV] -Cell[13,27] 0.00010761588768983 [GeV] -Cell[11,32] 0.0028956383838227 [GeV] -Cell[4,38] 0.0032885871182966 [GeV] -Cell[9,38] 0.000937719315196 [GeV] -Cell[3,25] 0.00019181486391833 [GeV] -Cell[4,28] 0.0022806866588327 [GeV] -Cell[9,6] 0.0013925563702705 [GeV] -Cell[9,29] 0.0015076647514735 [GeV] -Cell[5,22] 0.0003722146779544 [GeV] -Cell[6,17] 0.00091927918842283 [GeV] -Cell[9,23] 8.798047201708e-07 [GeV] -Cell[8,47] 4.0793169324616e-06 [GeV] -Cell[8,0] 1.6420962588654e-05 [GeV] -Cell[9,22] 0.00037361282508709 [GeV] -Cell[6,41] 0.00069285204616483 [GeV] -Cell[11,19] 0.00013223061026038 [GeV] -Cell[11,37] 0.00096397182480004 [GeV] -Cell[13,34] 0.0013207831236522 [GeV] -Cell[8,15] 0.00023481039226818 [GeV] -Cell[8,30] 0.0027045632741952 [GeV] -Cell[8,34] 0.003344743290271 [GeV] -Cell[11,42] 0.00487858678392 [GeV] -Cell[9,20] 0.0038076817650299 [GeV] -Cell[4,33] 0.0010294682266483 [GeV] -Cell[9,39] 0.0028566124214054 [GeV] -Cell[11,14] 0.00045650876017305 [GeV] -Cell[9,16] 1.6649211721642e-06 [GeV] -Cell[10,34] 0.0032655671463951 [GeV] -Cell[8,35] 0.00081736658355549 [GeV] -Cell[7,36] 0.00055056827487985 [GeV] -Cell[5,30] 0.0016355085436543 [GeV] -Cell[10,45] 0.00031131559993812 [GeV] -Cell[2,1] 0.0031686880430618 [GeV] -Cell[2,15] 0.00051099891 [GeV] -Cell[8,29] 0.0038002609125332 [GeV] -Cell[12,38] 0.00045677860715557 [GeV] -Cell[13,38] 5.4834735010445e-09 [GeV] -Cell[13,37] 7.1237364863919e-08 [GeV] -Cell[12,37] 1.1379597708583e-11 [GeV] -Cell[0,43] 0.00069019182306086 [GeV] -Cell[5,31] 0.0010154859643929 [GeV] -Cell[10,42] 0.00027392742644446 [GeV] -Cell[7,33] 0.0013943100554261 [GeV] -Cell[8,31] 1.0347771865781e-05 [GeV] -Cell[14,19] 2.21907676314e-05 [GeV] -Cell[14,18] 0.00031351973742517 [GeV] -Cell[10,40] 2.1121226961895e-07 [GeV] -Cell[5,40] 0.0017514552038204 [GeV] -Cell[6,36] 0.0049494538838308 [GeV] -Cell[14,32] 0.00085199406338245 [GeV] -Cell[9,0] 0.0047263151319862 [GeV] -Cell[11,41] 0.0011754678728774 [GeV] -Cell[16,28] 0.00033783888178819 [GeV] -Cell[16,24] 0.00038815816319629 [GeV] -Cell[14,29] 0.00033125647841753 [GeV] -Cell[8,3] 0.00053792515081939 [GeV] -Cell[9,47] 0.0013159601500967 [GeV] -Cell[7,40] 0.0021817243282817 [GeV] -### Total energy deposition in calorimeter by a source track in 129 cells : 70.374160148379 (GeV) +Cell[8,9] 5.9188974190344e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 5.9188974190344e-05 (GeV) -Source track ID 6833 (mu+,97.449421031543[GeV]) at (421.37471020102,269.15303008328,1659.1351101648) +Source track ID 6931 (gamma,0.89840607223587[GeV]) at (140.82215519732,479.75944035066,-280.92420261562) Original primary track ID 1 (unknown,305.48142430119[GeV]) -Cell[18,4] 0.18615389832163 [GeV] -Cell[19,4] 0.2496751723648 [GeV] -Cell[19,40] 0.0007719774915227 [GeV] -Cell[19,3] 0.0013079420939883 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.43790899027194 (GeV) +Cell[8,9] 0.84551969434797 [GeV] +Cell[8,10] 0.045572844195643 [GeV] +Cell[8,8] 0.0022768852059328 [GeV] +Cell[7,9] 2.7053096425939e-05 [GeV] +Cell[7,10] 0.0019851470155552 [GeV] +Cell[7,8] 0.00010079159243728 [GeV] +Cell[13,32] 0.0020107740640542 [GeV] +Cell[7,12] 0.00091288271785106 [GeV] +### Total energy deposition in calorimeter by a source track in 8 cells : 0.89840607223587 (GeV) -Source track ID 6834 (mu-,49.169428090914[GeV]) at (-250.06536824011,-432.9749549419,234.31991969944) +Source track ID 6851 (e+,51.990204226959[GeV]) at (140.84096983475,479.75391735348,-280.92455848224) Original primary track ID 1 (unknown,305.48142430119[GeV]) -Cell[11,32] 0.44300745314122 [GeV] -Cell[14,32] 0.4659930679762 [GeV] -Cell[11,31] 0.041468901370186 [GeV] -Cell[12,32] 0.5722836187432 [GeV] -Cell[13,32] 0.52503040086584 [GeV] -Cell[15,32] 0.52906538482358 [GeV] -Cell[16,32] 1.1199671138923 [GeV] -Cell[17,32] 0.0054820895833553 [GeV] -Cell[16,31] 0.035672432719205 [GeV] -Cell[17,31] 0.0097340626380794 [GeV] -Cell[15,31] 0.0021315248807415 [GeV] -Cell[14,31] 0.0014146578885818 [GeV] -Cell[13,31] 0.0017999420415023 [GeV] -Cell[12,31] 0.029458729205808 [GeV] -Cell[12,33] 0.0005336870816746 [GeV] -### Total energy deposition in calorimeter by a source track in 15 cells : 3.7830430668515 (GeV) +Cell[8,9] 47.523219702966 [GeV] +Cell[8,10] 3.4142367853753 [GeV] +Cell[8,8] 0.22124029549706 [GeV] +Cell[9,8] 0.0074546992901814 [GeV] +Cell[9,9] 0.0075198565605742 [GeV] +Cell[7,9] 0.25231568963488 [GeV] +Cell[8,13] 0.00051099891 [GeV] +Cell[8,7] 0.027878481024985 [GeV] +Cell[7,10] 0.12811018557952 [GeV] +Cell[8,11] 0.079505586919167 [GeV] +Cell[8,3] 0.00017956092127285 [GeV] +Cell[10,37] 0.00090756338431802 [GeV] +Cell[7,14] 0.00044714631160017 [GeV] +Cell[8,12] 0.010866009800505 [GeV] +Cell[9,7] 0.0010024569575593 [GeV] +Cell[9,10] 0.0091655611128414 [GeV] +Cell[7,8] 0.038861661262622 [GeV] +Cell[6,29] 0.00073370510466426 [GeV] +Cell[7,11] 0.014206708033162 [GeV] +Cell[6,10] 0.0096718014449409 [GeV] +Cell[2,41] 0.00054991313970985 [GeV] +Cell[7,7] 0.0062943687719955 [GeV] +Cell[9,11] 0.0032766499235926 [GeV] +Cell[6,22] 0.00062296876747533 [GeV] +Cell[3,40] 0.00029373418045581 [GeV] +Cell[6,27] 0.0015922469633844 [GeV] +Cell[9,25] 0.0026786683715344 [GeV] +Cell[8,45] 0.00019089192021333 [GeV] +Cell[7,12] 0.0016889325423907 [GeV] +Cell[7,38] 0.00041487451239613 [GeV] +Cell[7,21] 0.0018883853225441 [GeV] +Cell[9,43] 0.00010820212733918 [GeV] +Cell[5,45] 0.002131881949423 [GeV] +Cell[4,33] 0.0012699197086787 [GeV] +Cell[6,46] 0.0012363962519857 [GeV] +Cell[3,22] 0.00080062016248504 [GeV] +Cell[8,34] 0.00051099891 [GeV] +Cell[2,42] 0.00033347674627825 [GeV] +Cell[3,41] 0.0010287616194751 [GeV] +Cell[9,14] 0.0044654115133179 [GeV] +Cell[6,20] 0.0010855179092659 [GeV] +Cell[2,23] 0.0023657844684861 [GeV] +Cell[1,30] 0.0003699478185579 [GeV] +Cell[1,29] 0.0011776724847818 [GeV] +Cell[7,30] 0.00048152862060217 [GeV] +Cell[6,11] 0.0037379735132771 [GeV] +Cell[7,33] 0.0032890658017122 [GeV] +Cell[10,30] 0.0023970034138224 [GeV] +Cell[11,30] 0.0027839327463661 [GeV] +Cell[9,26] 0.00042868453443365 [GeV] +Cell[18,44] 4.2657440606704e-05 [GeV] +Cell[7,31] 0.00067575939566961 [GeV] +Cell[8,6] 0.0027703520593798 [GeV] +Cell[6,8] 2.7111637223243e-05 [GeV] +Cell[6,9] 0.0017306176008839 [GeV] +Cell[10,25] 0.0018055956210137 [GeV] +Cell[8,32] 0.00094917921751711 [GeV] +Cell[8,33] 0.00090744793746004 [GeV] +Cell[5,2] 0.00096759915798606 [GeV] +Cell[5,3] 0.00032598840649272 [GeV] +Cell[2,35] 0.00075345148796887 [GeV] +Cell[4,41] 0.00089754442141956 [GeV] +Cell[6,31] 0.001288635009399 [GeV] +Cell[11,46] 0.00053901814936493 [GeV] +Cell[10,45] 0.0019959550207406 [GeV] +Cell[10,46] 0.00081334988829163 [GeV] +Cell[9,45] 0.00043698108903405 [GeV] +Cell[19,30] 0.00012206650377318 [GeV] +Cell[7,20] 0.0051330388168295 [GeV] +Cell[9,33] 0.0015704766514237 [GeV] +Cell[10,38] 0.00052647587165921 [GeV] +Cell[5,20] 0.00032361379169273 [GeV] +Cell[12,12] 0.00013363104776429 [GeV] +Cell[10,10] 0.00013796039360638 [GeV] +Cell[15,29] 0.0013373379395875 [GeV] +Cell[8,21] 0.00064115999249038 [GeV] +Cell[1,34] 0.0042549606122285 [GeV] +Cell[6,33] 0.00094999105592868 [GeV] +Cell[8,46] 0.00020322681557751 [GeV] +Cell[12,38] 0.0013533338433061 [GeV] +Cell[2,33] 0.00084524091904462 [GeV] +Cell[12,31] 0.00097568571300577 [GeV] +Cell[0,46] 0.00081207130376351 [GeV] +Cell[16,43] 0.0011735753470808 [GeV] +Cell[16,44] 0.00051099891 [GeV] +Cell[6,21] 0.0011228908727447 [GeV] +Cell[7,43] 0.0033506336940329 [GeV] +Cell[17,22] 0.00018865152428974 [GeV] +Cell[18,32] 0.00022490193174922 [GeV] +Cell[7,27] 0.00039235414945088 [GeV] +Cell[8,19] 0.0011065107758661 [GeV] +Cell[8,14] 0.00023116779447954 [GeV] +Cell[8,38] 0.00080763178524015 [GeV] +Cell[3,45] 0.0007457158982487 [GeV] +Cell[9,20] 0.00026021295632763 [GeV] +Cell[11,3] 5.0614267820492e-08 [GeV] +Cell[10,3] 3.6831269220556e-06 [GeV] +Cell[11,2] 3.0401015351345e-08 [GeV] +Cell[10,2] 1.9207499008189e-08 [GeV] +Cell[7,44] 0.0022183470805416 [GeV] +Cell[8,43] 0.0015473244439071 [GeV] +Cell[9,32] 0.0012187517936126 [GeV] +Cell[6,37] 0.0017555260606416 [GeV] +Cell[11,27] 0.00051099891 [GeV] +Cell[5,38] 0.00035891963433615 [GeV] +Cell[7,17] 0.0015586138792893 [GeV] +Cell[1,25] 0.0026865552657187 [GeV] +Cell[10,6] 9.6774777025005e-05 [GeV] +Cell[16,6] 0.00016350108437498 [GeV] +Cell[10,23] 0.00027242282139654 [GeV] +Cell[3,38] 0.00039186217704133 [GeV] +Cell[3,37] 0.00063825971942624 [GeV] +Cell[4,38] 0.001114348784429 [GeV] +Cell[10,36] 0.0017763838052618 [GeV] +Cell[6,6] 0.0064423590244949 [GeV] +Cell[10,9] 0.00020757544635725 [GeV] +Cell[5,31] 0.00023838460386877 [GeV] +### Total energy deposition in calorimeter by a source track in 117 cells : 51.867092323921 (GeV) -Source track ID 6829 (gamma,0.18586941759822[GeV]) at (-308.57132322255,-393.4256454334,1178.6007211236) +Source track ID 6823 (mu+,97.449431059002[GeV]) at (421.35982589889,269.1763309031,1659.0832953266) +Original primary track ID 1 (unknown,305.48142430119[GeV]) +Cell[18,4] 0.17055174934384 [GeV] +Cell[19,4] 0.19874632348922 [GeV] +Cell[18,3] 0.00096749180218191 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.37026556463524 (GeV) + +Source track ID 6824 (mu-,49.166687487315[GeV]) at (-250.03299571065,-432.99365013353,234.25035752286) +Original primary track ID 1 (unknown,305.48142430119[GeV]) +Cell[13,32] 0.51434068367325 [GeV] +Cell[12,31] 0.040492369742478 [GeV] +Cell[11,31] 0.024977418723771 [GeV] +Cell[11,32] 0.42032056984853 [GeV] +Cell[12,32] 0.67236755505163 [GeV] +Cell[14,32] 0.50052735431144 [GeV] +Cell[15,32] 0.48897671488059 [GeV] +Cell[16,32] 1.2830205231372 [GeV] +Cell[16,31] 0.097066897909627 [GeV] +Cell[15,31] 0.0080656356223482 [GeV] +Cell[14,31] 0.030369481758992 [GeV] +Cell[13,31] 0.020098500327741 [GeV] +Cell[12,30] 0.002006105539514 [GeV] +### Total energy deposition in calorimeter by a source track in 13 cells : 4.1026298105271 (GeV) + +Source track ID 6819 (gamma,0.18586941759822[GeV]) at (-308.57128630296,-393.42567439014,1178.6007898015) Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[8,47] 0.00051099891 [GeV] -Cell[16,31] 0.00051099891 [GeV] -Cell[15,30] 0.12103766340066 [GeV] -Cell[18,19] 0.00025194008495175 [GeV] -Cell[16,30] 0.05849143075827 [GeV] -Cell[18,42] 0.00050106162462069 [GeV] -Cell[15,22] 0.00059312881439764 [GeV] -Cell[14,20] 0.00051099891 [GeV] -Cell[14,46] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 9 cells : 0.1829192203229 (GeV) +Cell[16,32] 0.003254192871537 [GeV] +Cell[16,31] 0.027692411866589 [GeV] +Cell[15,31] 0.0046276728139737 [GeV] +Cell[15,30] 0.07001372304966 [GeV] +Cell[16,30] 0.066850103955901 [GeV] +Cell[17,14] 0.00028672741396735 [GeV] +Cell[16,25] 0.0022959519140918 [GeV] +Cell[16,14] 0.00037368849025867 [GeV] +Cell[16,9] 6.7917550238483e-05 [GeV] +Cell[16,21] 0.0069590576805427 [GeV] +Cell[14,13] 0.0018878700782598 [GeV] +### Total energy deposition in calorimeter by a source track in 11 cells : 0.18430931768502 (GeV) -Source track ID 6830 (gamma,0.79108390679382[GeV]) at (-463.3957532322,-187.78811433732,658.34954115999) +Source track ID 6820 (gamma,0.79108390679382[GeV]) at (-463.39575590576,-187.7881077399,658.34952377391) Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[13,28] 0.0010558896776426 [GeV] -Cell[13,27] 0.14203569984893 [GeV] -Cell[13,26] 0.60139733743321 [GeV] -Cell[14,27] 0.015381040134845 [GeV] -Cell[14,26] 0.003574198728241 [GeV] -Cell[7,46] 0.001849238051437 [GeV] -Cell[14,28] 0.00057638262768277 [GeV] -Cell[14,8] 0.0051184836914925 [GeV] -Cell[11,43] 0.0014450309922609 [GeV] -Cell[13,25] 0.00054928130870737 [GeV] -Cell[14,10] 0.0017671762255417 [GeV] -### Total energy deposition in calorimeter by a source track in 11 cells : 0.77474975871999 (GeV) +Cell[13,28] 0.001059196920188 [GeV] +Cell[11,3] 0.00051092759912908 [GeV] +Cell[13,26] 0.69994161074941 [GeV] +Cell[13,27] 0.060599356405916 [GeV] +Cell[14,43] 0.00033965029458702 [GeV] +Cell[14,42] 0.00012856030844183 [GeV] +Cell[14,27] 0.0072160435323097 [GeV] +Cell[15,9] 0.0010862632807216 [GeV] +Cell[14,26] 0.0018290603297282 [GeV] +Cell[13,20] 0.0031631613792712 [GeV] +Cell[13,25] 0.0035188586094229 [GeV] +Cell[16,41] 0.0070453308675807 [GeV] +Cell[13,37] 0.0011257413494279 [GeV] +Cell[14,28] 0.0013404707187653 [GeV] +Cell[14,25] 0.0021796744489204 [GeV] +### Total energy deposition in calorimeter by a source track in 15 cells : 0.79108390679382 (GeV) -Source track ID 6761 (e-,0.00066556597678759[GeV]) at (-460.8787724097,193.88335963184,1802.5294885352) +Source track ID 6450 (gamma,0.68389327451526[GeV]) at (-406.71457776461,-290.83200001678,428.61116207548) Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[19,20] 2.4406076353483e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 2.4406076353483e-05 (GeV) +Cell[7,9] 0.00039729269338091 [GeV] +Cell[11,30] 1.4856190086731e-05 [GeV] +Cell[10,2] 0.00051099891 [GeV] +Cell[11,31] 0.00028189672720898 [GeV] +Cell[12,28] 0.65234904529099 [GeV] +Cell[13,41] 0.0052142328153039 [GeV] +Cell[13,42] 0.00051024674353595 [GeV] +Cell[19,41] 0.00056884002115069 [GeV] +Cell[13,2] 0.0012447120565274 [GeV] +Cell[12,13] 0.00051099891 [GeV] +Cell[15,45] 0.0025816010885184 [GeV] +Cell[12,29] 0.014554004002646 [GeV] +Cell[12,33] 0.00049094155737893 [GeV] +Cell[11,28] 0.0016860476076315 [GeV] +Cell[18,13] 0.0026970476882432 [GeV] +### Total energy deposition in calorimeter by a source track in 15 cells : 0.68361276230261 (GeV) -Source track ID 6605 (gamma,2.1674962356047e-05[GeV]) at (-193.17208953511,461.17734530725,1520.7576388064) +Source track ID 6500 (gamma,0.00011050707392153[GeV]) at (81.409700973105,493.32794425967,284.80349564053) Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[17,15] 2.1674962356047e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 2.1674962356047e-05 (GeV) +Cell[11,10] 0.00011050707392153 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00011050707392153 (GeV) -Source track ID 6619 (e-,0.0006073008440656[GeV]) at (152.68931650542,-476.11550344964,1448.0428912463) +Source track ID 6503 (gamma,0.005410243298954[GeV]) at (-167.65109576949,-471.05531531582,319.67541002166) Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[17,38] 9.6301934065603e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 9.6301934065603e-05 (GeV) +Cell[11,33] 0.005410243298954 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.005410243298954 (GeV) -Source track ID 6466 (gamma,0.68389327451526[GeV]) at (-406.71458022911,-290.83199657028,428.6111635388) +Source track ID 6504 (gamma,0.0062227692286086[GeV]) at (-39.301043698547,-498.45303486307,344.74948843563) Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[13,28] 0.0028964350775079 [GeV] -Cell[13,29] 0.0026630938937271 [GeV] -Cell[12,28] 0.58435460389481 [GeV] -Cell[11,26] 0.00060148621494144 [GeV] -Cell[11,27] 0.0029683978787077 [GeV] -Cell[12,30] 0.0081042546391482 [GeV] -Cell[12,29] 0.080973250210156 [GeV] -Cell[11,28] 0.0013317527062587 [GeV] -### Total energy deposition in calorimeter by a source track in 8 cells : 0.68389327451526 (GeV) +Cell[11,36] 0.0062227692286086 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0062227692286086 (GeV) -Source track ID 6536 (gamma,0.00051099891[GeV]) at (-177.85967119272,-467.29641274379,250.92762340839) +Source track ID 6508 (gamma,0.00016736019253332[GeV]) at (494.07975068199,76.715056970717,647.72138093977) Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[11,33] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00051099891 (GeV) +Cell[13,1] 0.00016736019253332 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00016736019253332 (GeV) -Source track ID 6537 (gamma,0.00051099891[GeV]) at (413.0250388424,281.79836282213,1215.0334472927) +Source track ID 6509 (gamma,0.091410217739901[GeV]) at (484.38943424861,123.96320417089,683.37445242306) Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[13,2] 0.068852439993454 [GeV] +Cell[12,29] 0.00042427020066462 [GeV] +Cell[13,1] 0.01702448855938 [GeV] +Cell[12,20] 0.00094623650632099 [GeV] +Cell[6,36] 0.00027514817254892 [GeV] +Cell[13,3] 0.0017711266790161 [GeV] +Cell[19,25] 0.0018806568910654 [GeV] +### Total energy deposition in calorimeter by a source track in 7 cells : 0.09117436700245 (GeV) + +Source track ID 6452 (e-,0.0095344399918455[GeV]) at (169.79204437517,470.28784979723,1599.3308686871) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[17,9] 0.0041643341915144 [GeV] +Cell[18,9] 0.0048591068903311 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.0090234410818455 (GeV) + +Source track ID 6455 (gamma,0.0015359197547748[GeV]) at (-360.15742088392,-346.82363267552,331.14789394407) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[11,29] 0.0015359197547748 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0015359197547748 (GeV) + +Source track ID 6457 (gamma,0.00070685917099043[GeV]) at (-454.78788157834,-207.76906114598,369.1685920041) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[11,27] 0.00070685917099043 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00070685917099043 (GeV) + +Source track ID 6463 (gamma,0.0061785964619776[GeV]) at (-328.88777833904,376.60699576509,640.41265156644) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[13,17] 0.0061785964619776 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0061785964619776 (GeV) + +Source track ID 6464 (gamma,0.0053155196448192[GeV]) at (-237.55991676854,439.96055044165,622.09273983622) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[13,15] 0.0053155196448192 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0053155196448192 (GeV) + +Source track ID 6468 (gamma,0.0020745889610896[GeV]) at (-461.80227282507,-191.67331794906,594.71140911383) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[13,26] 0.0020745889610896 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0020745889610896 (GeV) + +Source track ID 6453 (e+,0.079725495160398[GeV]) at (184.17285113226,464.84444807464,1308.8174804346) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[15,30] 0.0012102241287656 [GeV] +Cell[16,9] 0.045790102567171 [GeV] +Cell[15,46] 0.002127035433961 [GeV] +Cell[13,44] 0.00022019748213359 [GeV] +Cell[19,35] 0.0080102658691192 [GeV] +Cell[19,37] 0.00095901009521612 [GeV] +Cell[17,41] 0.0010123540319302 [GeV] +Cell[16,38] 0.0003903551683514 [GeV] +Cell[16,8] 0.017623128142665 [GeV] +### Total energy deposition in calorimeter by a source track in 9 cells : 0.077342672919313 (GeV) + +Source track ID 6388 (proton,1.6980943534109[GeV]) at (-499.9837864083,4.0265778047285,255.06496261952) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[10,37] 8.7080991129225e-06 [GeV] +Cell[7,25] 4.5170535740908e-06 [GeV] +Cell[10,22] 4.0861667505169e-05 [GeV] +Cell[9,0] 2.6919813159111e-05 [GeV] +Cell[7,24] 5.6808168010321e-06 [GeV] +Cell[9,25] 0.00091556364164018 [GeV] +Cell[11,24] 0.014025722767163 [GeV] +Cell[9,26] 0.0013715973497861 [GeV] +Cell[10,25] 0.001118453201418 [GeV] +Cell[10,45] 0.00012992627646599 [GeV] +Cell[9,45] 0.00024229797555506 [GeV] +Cell[10,38] 0.00852612401749 [GeV] +Cell[11,2] 1.2748729750456e-07 [GeV] +Cell[10,2] 0.0001073369638749 [GeV] +Cell[11,27] 0.0030582756615896 [GeV] +Cell[10,23] 0.010592175339111 [GeV] +Cell[10,36] 0.0013085803535158 [GeV] +Cell[11,32] 1.5559487306746e-05 [GeV] +Cell[13,20] 0.00044560715425246 [GeV] +Cell[12,28] 0.0048894531953226 [GeV] +Cell[12,29] 0.0037485578296397 [GeV] +Cell[11,28] 0.0040301384265346 [GeV] +Cell[11,33] 7.2007194685284e-06 [GeV] +Cell[12,20] 0.0013432014581011 [GeV] +Cell[11,29] 2.3124139988795e-07 [GeV] +Cell[13,17] 0.00071156036721356 [GeV] +Cell[11,23] 0.11514890048496 [GeV] +Cell[13,16] 1.862645149231e-12 [GeV] +Cell[11,22] 0.0026304837951403 [GeV] +Cell[11,21] 0.033807740434975 [GeV] +Cell[13,40] 1.5403155798253e-05 [GeV] +Cell[16,11] 2.6903266621048e-07 [GeV] +Cell[15,11] 3.3138185244752e-09 [GeV] +Cell[11,25] 0.0036246993077354 [GeV] +Cell[11,26] 0.0012315582754927 [GeV] +Cell[10,24] 0.0036728334506107 [GeV] +Cell[12,10] 0.0018503209971798 [GeV] +Cell[12,9] 4.7298453864641e-10 [GeV] +Cell[10,21] 1.3953810398448e-05 [GeV] +Cell[9,1] 0.00072413362753006 [GeV] +Cell[10,1] 0.00038055260985197 [GeV] +Cell[9,44] 0.0028628153403534 [GeV] +Cell[10,44] 1.1694975837599e-05 [GeV] +Cell[9,46] 0.00037985437476186 [GeV] +Cell[16,0] 0.0010378486998917 [GeV] +Cell[16,47] 0.00010480697014464 [GeV] +Cell[16,1] 1.2272560070414e-08 [GeV] +Cell[16,35] 0.00053297815580129 [GeV] +Cell[16,36] 1.4949972369322e-06 [GeV] +Cell[10,13] 0.002451112304507 [GeV] +Cell[10,39] 0.0015383843947924 [GeV] +Cell[9,3] 0.0044243453491791 [GeV] +Cell[2,44] 4.4823751086369e-06 [GeV] +Cell[1,5] 9.3597604427487e-06 [GeV] +Cell[5,44] 7.1533215523232e-06 [GeV] +Cell[4,2] 0.00024134446759558 [GeV] +Cell[9,13] 4.4900430657435e-06 [GeV] +Cell[15,2] 0.00012237042044922 [GeV] +Cell[9,2] 7.4127038260485e-06 [GeV] +Cell[11,9] 3.8154539652169e-09 [GeV] +Cell[12,2] 2.2420426830649e-09 [GeV] +Cell[11,47] 3.3880642149597e-09 [GeV] +Cell[12,47] 2.8171843939617e-07 [GeV] +Cell[10,42] 2.5021011242643e-07 [GeV] +Cell[15,17] 1.2615325146726e-05 [GeV] +Cell[15,18] 2.314165247185e-06 [GeV] +Cell[10,26] 0.0017857933997966 [GeV] +Cell[10,27] 6.3215531437891e-05 [GeV] +Cell[12,24] 0.00056687140489123 [GeV] +Cell[12,25] 0.00011979204387364 [GeV] +Cell[12,27] 0.00087817092708997 [GeV] +Cell[12,26] 1.5072013858799e-05 [GeV] +Cell[12,21] 0.027667678091347 [GeV] +Cell[11,18] 0.001038527923823 [GeV] +Cell[12,22] 0.00013615261135794 [GeV] +Cell[13,21] 0.003519655597023 [GeV] +Cell[11,20] 0.0099810534264748 [GeV] +Cell[10,20] 0.00070733558316135 [GeV] +Cell[10,19] 0.00043667234909753 [GeV] +Cell[12,19] 0.00089005830350159 [GeV] +Cell[11,19] 0.002123592440725 [GeV] +Cell[13,19] 0.016706859337031 [GeV] +Cell[14,18] 2.1684923995053e-05 [GeV] +Cell[13,18] 0.0001645504617245 [GeV] +### Total energy deposition in calorimeter by a source track in 84 cells : 0.30035539929713 (GeV) + +Source track ID 6389 (anti_proton,1.0402308437029[GeV]) at (-283.5668181573,-411.81289397024,-340.72961775898) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[8,10] 0.00023766803170072 [GeV] +Cell[9,8] 1.5227649899884e-05 [GeV] +Cell[9,9] 0.00052050168393998 [GeV] +Cell[7,10] 4.7280660184128e-05 [GeV] +Cell[14,11] 0.0038716474996806 [GeV] +Cell[14,12] 0.00042529807564863 [GeV] +Cell[8,27] 1.2601175985765e-05 [GeV] +Cell[9,7] 3.0859804204738e-05 [GeV] +Cell[9,10] 3.8322349155351e-08 [GeV] +Cell[9,4] 0.00032458706310188 [GeV] +Cell[5,22] 5.3176001820248e-06 [GeV] +Cell[7,11] 0.00014897281470257 [GeV] +Cell[6,10] 1.4456056601375e-06 [GeV] +Cell[7,26] 0.00031091127627508 [GeV] +Cell[9,12] 0.00050481181158404 [GeV] +Cell[7,7] 0.0015947263771353 [GeV] +Cell[8,0] 0.0026457918551536 [GeV] +Cell[7,42] 0.00088311555355789 [GeV] +Cell[7,37] 0.0045701626213252 [GeV] +Cell[4,0] 0.00023578439441042 [GeV] +Cell[8,45] 1.0845170095308e-08 [GeV] +Cell[11,36] 1.432379335165e-05 [GeV] +Cell[7,38] 0.0021349789557283 [GeV] +Cell[6,46] 0.0039973531474457 [GeV] +Cell[8,34] 0.0022043690157437 [GeV] +Cell[7,30] 0.011909866879387 [GeV] +Cell[6,11] 0.0032672239675157 [GeV] +Cell[7,33] 1.2508928875832e-08 [GeV] +Cell[9,26] 0.00057302301990065 [GeV] +Cell[7,31] 0.091824193473437 [GeV] +Cell[8,32] 0.03693218559888 [GeV] +Cell[8,33] 0.00065733562556811 [GeV] +Cell[9,45] 0.0019373198233858 [GeV] +Cell[8,21] 4.9371557543054e-07 [GeV] +Cell[7,27] 0.0017079511182312 [GeV] +Cell[11,3] 0.011813536378264 [GeV] +Cell[11,2] 0.0013319507615152 [GeV] +Cell[9,32] 0.14259066602114 [GeV] +Cell[10,36] 8.300575078465e-06 [GeV] +Cell[6,6] 0.00051099891 [GeV] +Cell[16,32] 4.7439680201933e-08 [GeV] +Cell[16,31] 5.2298331866041e-08 [GeV] +Cell[16,30] 2.3921254645529e-06 [GeV] +Cell[12,29] 0.00037357367377741 [GeV] +Cell[12,20] 0.00051099891 [GeV] +Cell[13,17] 0.0039162635235663 [GeV] +Cell[10,13] 8.3694059867412e-08 [GeV] +Cell[4,2] 7.3828813037835e-07 [GeV] +Cell[15,2] 0.00034228806778713 [GeV] +Cell[12,27] 0.0083043179538194 [GeV] +Cell[11,20] 0.0012472697374172 [GeV] +Cell[12,19] 0.0044707903483183 [GeV] +Cell[8,31] 1.0295443559805 [GeV] +Cell[8,30] 0.020571738542839 [GeV] +Cell[10,35] 1.7946440784726e-06 [GeV] +Cell[10,5] 0.0026348327788014 [GeV] +Cell[15,7] 0.0017175145613219 [GeV] +Cell[4,4] 0.00069528298602624 [GeV] +Cell[9,15] 1.4845818665208e-06 [GeV] +Cell[9,16] 3.9138225250781e-06 [GeV] +Cell[7,32] 0.0024113413666996 [GeV] +Cell[8,29] 0.0016353265628145 [GeV] +Cell[4,47] 9.2883588122277e-05 [GeV] +Cell[4,1] 0.00044624182674409 [GeV] +Cell[3,1] 0.0022230559896278 [GeV] +Cell[7,28] 1.8031686515315e-05 [GeV] +Cell[8,28] 0.0016103846571045 [GeV] +Cell[7,29] 0.0026965277936408 [GeV] +Cell[8,37] 0.0042579851874308 [GeV] +Cell[6,14] 0.0024384418515352 [GeV] +Cell[5,1] 0.00051099891 [GeV] +Cell[9,34] 0.0001987362843639 [GeV] +Cell[11,40] 0.00049542524597248 [GeV] +Cell[7,0] 0.015232126966755 [GeV] +Cell[7,2] 0.001366924805641 [GeV] +Cell[7,1] 0.00068496801198088 [GeV] +Cell[6,44] 0.0031601366356885 [GeV] +Cell[9,42] 0.00047399061095336 [GeV] +Cell[11,44] 0.00069335501171372 [GeV] +Cell[8,18] 0.00049522901860317 [GeV] +Cell[11,17] 0.0033507790701312 [GeV] +Cell[12,16] 0.00093239049995397 [GeV] +Cell[8,23] 0.0084351529989184 [GeV] +Cell[6,23] 0.00074968957375576 [GeV] +Cell[3,21] 0.0015194901872504 [GeV] +Cell[4,13] 0.0001600147388501 [GeV] +Cell[5,7] 0.0020859917457422 [GeV] +Cell[5,18] 0.00024872571884136 [GeV] +Cell[5,17] 0.00080891856588559 [GeV] +Cell[12,39] 7.303345102053e-05 [GeV] +Cell[3,2] 0.0022149184107321 [GeV] +Cell[8,22] 6.0481988475658e-07 [GeV] +Cell[4,6] 1.2026322656311e-07 [GeV] +Cell[3,6] 2.7326068881621e-05 [GeV] +Cell[3,7] 3.9817177366785e-08 [GeV] +Cell[4,7] 2.2636083940597e-10 [GeV] +Cell[1,2] 0.00025017553202804 [GeV] +Cell[1,1] 1.5807250747457e-07 [GeV] +Cell[2,24] 3.3105745092143e-07 [GeV] +Cell[3,17] 2.1966089843772e-07 [GeV] +Cell[3,18] 4.8697699094191e-07 [GeV] +Cell[1,46] 1.8598104361445e-07 [GeV] +Cell[2,25] 5.3675685707049e-05 [GeV] +Cell[3,29] 0.0011078350694989 [GeV] +Cell[8,44] 0.0032841399142661 [GeV] +Cell[13,24] 5.5676064512227e-06 [GeV] +Cell[14,24] 0.0030573304208948 [GeV] +Cell[14,23] 0.00029210689874856 [GeV] +Cell[14,22] 7.1398978774369e-06 [GeV] +Cell[1,39] 0.0019562010685222 [GeV] +Cell[1,40] 1.9691705820151e-06 [GeV] +Cell[1,4] 5.0003944373088e-05 [GeV] +Cell[0,4] 1.0534185207689e-08 [GeV] +Cell[2,4] 0.0026640778269901 [GeV] +Cell[7,36] 0.0095762311063892 [GeV] +Cell[3,11] 4.1023892117664e-06 [GeV] +Cell[2,26] 0.00025204077411206 [GeV] +Cell[5,13] 1.3058511577015e-05 [GeV] +Cell[5,12] 0.0018107644676645 [GeV] +Cell[4,12] 5.9518833184029e-06 [GeV] +Cell[3,42] 0.00037653988506232 [GeV] +Cell[3,43] 0.00054921557672195 [GeV] +Cell[3,47] 0.0054542821814189 [GeV] +### Total energy deposition in calorimeter by a source track in 123 cells : 1.4966656882323 (GeV) + +Source track ID 6414 (gamma,0.37133215847831[GeV]) at (-133.93656894642,-481.72709649641,181.68248134605) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[11,33] 0.020827437171157 [GeV] +Cell[10,35] 0.00032485640983708 [GeV] +Cell[10,33] 0.26692382332823 [GeV] +Cell[10,34] 0.066765010446907 [GeV] +Cell[11,34] 0.015276508207185 [GeV] +Cell[18,43] 0.0012145229149898 [GeV] +### Total energy deposition in calorimeter by a source track in 6 cells : 0.37133215847831 (GeV) + +Source track ID 6415 (gamma,0.136782797126[GeV]) at (-378.97236934366,-326.15938323778,68.392649909004) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[10,29] 0.12878758492212 [GeV] +Cell[10,30] 0.0048593140996073 [GeV] +Cell[10,28] 0.0022633102633836 [GeV] +Cell[9,29] 0.00087258784089506 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.136782797126 (GeV) + +Source track ID 6392 (pi+,0.39543295609493[GeV]) at (-476.79003331714,-150.56979819819,247.03053184758) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[11,24] 0.16396931629565 [GeV] +Cell[11,27] 0.0040999526765254 [GeV] +Cell[11,23] 0.00063094031126275 [GeV] +Cell[11,22] 0.0022321196174022 [GeV] +Cell[11,25] 0.12303778652672 [GeV] +Cell[11,26] 0.051920622758871 [GeV] +### Total energy deposition in calorimeter by a source track in 6 cells : 0.34589073818643 (GeV) + +Source track ID 6393 (pi-,0.89641282860687[GeV]) at (-160.77309760045,-473.44694643429,408.14457432343) +Original primary track ID 2 (unknown,2.8798399642419[GeV]) +Cell[13,36] 0.00059302316168339 [GeV] +Cell[12,34] 0.14031237769097 [GeV] +Cell[13,32] 0.0008475755354192 [GeV] +Cell[12,31] 2.605915597087e-09 [GeV] +Cell[12,32] 0.001103541356324 [GeV] +Cell[14,32] 0.00020364196729747 [GeV] +Cell[14,31] 1.4651290490292e-05 [GeV] +Cell[13,31] 0.00050531369802002 [GeV] +Cell[12,33] 0.13306914291504 [GeV] +Cell[13,34] 0.23648820913228 [GeV] +Cell[13,35] 0.035867503663029 [GeV] +Cell[12,35] 0.00021616860164382 [GeV] +Cell[13,33] 0.0043616022646749 [GeV] +Cell[14,35] 0.002861751792268 [GeV] +Cell[14,34] 0.0029735221446793 [GeV] +Cell[14,33] 0.0017793808977484 [GeV] +### Total energy deposition in calorimeter by a source track in 16 cells : 0.56119740871749 (GeV) + +Source track ID 6382 (gamma,0.032559394638405[GeV]) at (-498.62851054011,-37.00822174265,-1796.9981918651) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[0,24] 0.030755015474731 [GeV] +Cell[1,32] 0.00051099891 [GeV] +Cell[1,24] 0.00078238134367414 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.032048395728405 (GeV) + +Source track ID 6369 (mu+,0.56585042507812[GeV]) at (-460.10413957744,195.71453891753,-1853.2157245269) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[0,20] 0.17472988925658 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.17472988925658 (GeV) + +Source track ID 6354 (gamma,1.9015972345341[GeV]) at (-363.22356462114,343.61117866553,-955.17209450024) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[7,37] 0.00051099891 [GeV] +Cell[1,29] 0.00074994375098103 [GeV] +Cell[5,20] 0.00051099891 [GeV] +Cell[5,31] 0.00045391294001284 [GeV] +Cell[5,18] 1.2351769430309 [GeV] +Cell[5,17] 0.024063064301668 [GeV] +Cell[3,18] 0.0015112571755593 [GeV] +Cell[1,32] 0.0016554749559678 [GeV] +Cell[4,18] 0.49997040386972 [GeV] +Cell[4,17] 0.10937584461182 [GeV] +Cell[4,19] 0.0083145773768755 [GeV] +Cell[0,43] 0.002091102527558 [GeV] +Cell[5,23] 0.00045951818831794 [GeV] +Cell[4,23] 0.0003839210676448 [GeV] +Cell[0,33] 0.00056258830804161 [GeV] +Cell[5,43] 0.00072911419036877 [GeV] +Cell[4,21] 0.001736305314375 [GeV] +Cell[1,31] 0.00049111916787786 [GeV] +Cell[4,45] 0.0028638967110501 [GeV] +Cell[5,19] 0.00095912784566245 [GeV] +Cell[1,35] 0.00099074843345609 [GeV] +Cell[6,0] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 22 cells : 1.8940718604979 (GeV) + +Source track ID 6339 (pi-,4.4333382209031[GeV]) at (-407.05375694083,290.35708870347,-1899.4565410831) +Original primary track ID 8 (unknown,11.672977589613[GeV]) +Cell[5,22] 0.00035128911643176 [GeV] +Cell[6,30] 3.7964870163705e-05 [GeV] +Cell[6,22] 0.00013330805600162 [GeV] +Cell[0,21] 0.00067761116869781 [GeV] +Cell[0,22] 1.5150734368945e-05 [GeV] +Cell[13,32] 0.0033814513446939 [GeV] +Cell[5,2] 5.5261957703578e-05 [GeV] +Cell[2,35] 5.7639026199467e-06 [GeV] +Cell[6,31] 1.0271256265696e-05 [GeV] +Cell[12,31] 0.00036045648661786 [GeV] +Cell[0,46] 0.0045694757379245 [GeV] +Cell[7,43] 0.00081740709016049 [GeV] +Cell[1,25] 1.7412571651221e-10 [GeV] +Cell[3,38] 5.5246603074011e-07 [GeV] +Cell[3,37] 0.00069121814918265 [GeV] +Cell[12,32] 0.0010449430479714 [GeV] +Cell[13,31] 0.00031889011736575 [GeV] +Cell[12,30] 1.4997203834355e-10 [GeV] +Cell[9,3] 0.00059301228138324 [GeV] +Cell[1,5] 4.1759217693652e-05 [GeV] +Cell[6,14] 2.0147597824689e-06 [GeV] +Cell[5,1] 0.00017267389760639 [GeV] +Cell[4,6] 0.0018051981007311 [GeV] +Cell[1,46] 0.0013809490998832 [GeV] +Cell[1,40] 0.00036048629506877 [GeV] +Cell[1,4] 0.0006344139782168 [GeV] +Cell[0,24] 0.0013974464649244 [GeV] +Cell[0,20] 0.0048626275275962 [GeV] +Cell[1,35] 1.8992741825059e-06 [GeV] +Cell[0,19] 0.90171014803599 [GeV] +Cell[0,18] 0.12106167201538 [GeV] +Cell[0,16] 0.0027623285081714 [GeV] +Cell[0,15] 2.1819360525114e-05 [GeV] +Cell[1,16] 0.00085686629802137 [GeV] +Cell[1,15] 0.0035435953423582 [GeV] +Cell[2,43] 1.0021471302025e-05 [GeV] +Cell[1,0] 1.4027454192956e-05 [GeV] +Cell[7,16] 0.0031314714141236 [GeV] +Cell[5,0] 1.5620041722286e-08 [GeV] +Cell[0,17] 0.0018532310086339 [GeV] +Cell[6,40] 4.3449134973343e-06 [GeV] +Cell[0,26] 0.001547064101515 [GeV] +Cell[1,33] 2.782465016935e-06 [GeV] +Cell[0,27] 8.595195831731e-06 [GeV] +Cell[0,37] 0.0017445879107714 [GeV] +Cell[3,25] 2.5266217126045e-06 [GeV] +Cell[2,18] 7.929124054499e-06 [GeV] +Cell[1,18] 0.00036946346260368 [GeV] +Cell[1,19] 1.0387260408606e-06 [GeV] +Cell[4,39] 1.6697261307854e-06 [GeV] +Cell[0,41] 5.6822717668183e-05 [GeV] +Cell[0,40] 4.7078157035003e-05 [GeV] +Cell[0,23] 0.00012080914482056 [GeV] +Cell[0,25] 0.0040069478982769 [GeV] +Cell[1,26] 3.642333483981e-06 [GeV] +Cell[1,27] 2.4356859285035e-09 [GeV] +Cell[1,14] 0.004104795168965 [GeV] +Cell[1,13] 6.9934379730739e-05 [GeV] +Cell[2,16] 0.00091218609586247 [GeV] +Cell[0,6] 0.0014672551809114 [GeV] +Cell[0,5] 0.00048847999800694 [GeV] +Cell[1,3] 5.3013143360658e-07 [GeV] +Cell[1,6] 0.0010831058569404 [GeV] +Cell[1,17] 1.9669124177767e-05 [GeV] +Cell[4,5] 0.00015191593790814 [GeV] +Cell[2,38] 1.7986533668591e-05 [GeV] +Cell[4,43] 1.7347511282424e-05 [GeV] +Cell[5,16] 0.0010662782163141 [GeV] +Cell[5,15] 0.00086036654645136 [GeV] +Cell[6,16] 4.0435068058287e-09 [GeV] +Cell[0,3] 0.00095520560179155 [GeV] +Cell[0,47] 0.0011165296905204 [GeV] +Cell[3,34] 0.00058940407105484 [GeV] +Cell[2,9] 7.6269792920129e-06 [GeV] +Cell[2,32] 0.00054830410227953 [GeV] +Cell[0,28] 2.0112850383157e-05 [GeV] +Cell[1,28] 2.4108528043143e-05 [GeV] +Cell[0,38] 1.082170556765e-05 [GeV] +Cell[0,30] 0.0006214880988731 [GeV] +Cell[0,29] 1.0262126841099e-07 [GeV] +Cell[3,36] 3.8155121728778e-11 [GeV] +Cell[18,18] 0.0039441545845457 [GeV] Cell[16,4] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00051099891 (GeV) +Cell[13,30] 7.5277606005329e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 84 cells : 1.0852979882992 (GeV) -Source track ID 6519 (gamma,0.0060587064275034[GeV]) at (-132.83861361739,-482.03101843368,335.28129920649) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[11,32] 0.0026572350543809 [GeV] -Cell[11,34] 0.0034014713731226 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.0060587064275034 (GeV) - -Source track ID 6468 (e-,0.17158250693641[GeV]) at (-4.3181369329786,-499.98135334573,1017.6034170513) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[15,35] 0.011868971159231 [GeV] -Cell[15,36] 0.13444398865228 [GeV] -Cell[16,13] 0.00074392496662535 [GeV] -Cell[7,15] 0.0015487857252163 [GeV] -Cell[14,35] 0.00023708733095384 [GeV] -Cell[14,36] 4.5401179991472e-05 [GeV] -Cell[15,43] 0.0013415471127775 [GeV] -Cell[16,7] 0.00049759681798952 [GeV] -Cell[15,37] 0.0066864086304639 [GeV] -Cell[15,20] 0.000210013281362 [GeV] -Cell[12,43] 0.001136282266334 [GeV] -Cell[15,41] 0.0037639095206755 [GeV] -### Total energy deposition in calorimeter by a source track in 12 cells : 0.1625239166439 (GeV) - -Source track ID 6494 (gamma,4.2857101478205e-05[GeV]) at (-22.447415662706,-499.49585937229,1097.8514264979) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[15,35] 4.2857101478205e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 4.2857101478205e-05 (GeV) - -Source track ID 6469 (e+,0.03105106214624[GeV]) at (471.67426575742,165.9017390572,1454.5545723979) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[17,2] 0.026996286159416 [GeV] -Cell[17,3] 0.004230445400763 [GeV] -Cell[18,38] 0.00033532949606127 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.03156206105624 (GeV) - -Source track ID 6137 (proton,1.696790879409[GeV]) at (-499.9870586065,3.5973915576153,253.93867130892) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[11,26] 6.6895584041049e-09 [GeV] -Cell[11,23] 0.6492875337765 [GeV] -Cell[11,24] 0.0033335086470915 [GeV] -Cell[12,23] 0.0044694426644588 [GeV] -Cell[12,22] 0.0095608059850357 [GeV] -Cell[11,22] 0.000673285281777 [GeV] -Cell[11,21] 8.1368830251449e-10 [GeV] -Cell[11,25] 0.0036085706176327 [GeV] -Cell[10,23] 3.2155027432736e-06 [GeV] -Cell[12,24] 0.0020701503384241 [GeV] -Cell[12,25] 0.00017783570253511 [GeV] -Cell[12,21] 7.1346225740854e-07 [GeV] -Cell[13,21] 1.0270731536366e-09 [GeV] -Cell[13,22] 1.1200251037735e-09 [GeV] -### Total energy deposition in calorimeter by a source track in 14 cells : 0.6731850716288 (GeV) - -Source track ID 6138 (anti_proton,1.0377710886759[GeV]) at (-280.77433343515,-413.72185545852,-338.36582272463) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[7,9] 1.3602239778265e-07 [GeV] -Cell[9,35] 0.00020371929897073 [GeV] -Cell[7,11] 0.00051099891 [GeV] -Cell[7,8] 1.7196353487066e-05 [GeV] -Cell[8,8] 0.0022385508895707 [GeV] -Cell[9,43] 4.5076577976033e-08 [GeV] -Cell[8,28] 0.00036122893737682 [GeV] -Cell[9,26] 0.0033443672396378 [GeV] -Cell[9,25] 0.038900216828001 [GeV] -Cell[8,7] 0.00017599247031478 [GeV] -Cell[5,19] 1.4356747638544e-05 [GeV] -Cell[6,9] 8.1531041230392e-05 [GeV] -Cell[6,8] 0.0027457108028824 [GeV] -Cell[9,2] 4.643403107184e-05 [GeV] -Cell[6,6] 0.0020511216533872 [GeV] -Cell[8,27] 0.0004307309414178 [GeV] -Cell[8,6] 0.002049713229691 [GeV] -Cell[7,37] 0.00028093643996991 [GeV] -Cell[7,32] 0.01189380454096 [GeV] -Cell[8,33] 0.0015675102949213 [GeV] -Cell[8,32] 0.065917037958099 [GeV] -Cell[11,32] 0.00029755585611027 [GeV] -Cell[8,47] 7.4185663834214e-11 [GeV] -Cell[9,22] 0.0028324991862292 [GeV] -Cell[8,30] 0.0046460139310515 [GeV] -Cell[11,14] 4.9585160536481e-06 [GeV] -Cell[7,36] 5.8731394772055e-05 [GeV] -Cell[8,29] 0.00073123977475346 [GeV] -Cell[13,38] 0.0016086666687153 [GeV] -Cell[8,31] 1.0612615072367 [GeV] -Cell[6,36] 0.00062995902730613 [GeV] -Cell[7,40] 0.00025641377343366 [GeV] -Cell[7,46] 1.9264634829597e-08 [GeV] -Cell[11,43] 0.0087200484870025 [GeV] -Cell[11,23] 0.0022642714575227 [GeV] -Cell[11,24] 1.590598230905e-10 [GeV] -Cell[10,23] 0.0043539866484749 [GeV] -Cell[12,21] 0.00025167503423268 [GeV] -Cell[5,45] 0.0019861649482163 [GeV] -Cell[6,45] 0.0025705926429065 [GeV] -Cell[6,19] 0.00033138459693942 [GeV] -Cell[5,18] 5.0995281300175e-06 [GeV] -Cell[8,25] 0.0010899082866614 [GeV] -Cell[8,26] 0.0024033626164125 [GeV] -Cell[9,44] 9.167165371764e-07 [GeV] -Cell[13,43] 6.3912297191564e-06 [GeV] -Cell[13,42] 2.5840893387794e-05 [GeV] -Cell[12,20] 0.00048423626390365 [GeV] -Cell[12,19] 1.9493705648983e-05 [GeV] -Cell[10,10] 0.0001561590199417 [GeV] -Cell[11,11] 0.0024493876106311 [GeV] -Cell[11,10] 5.4935255320743e-08 [GeV] -Cell[7,44] 0.007893525479152 [GeV] -Cell[7,45] 0.001474267050839 [GeV] -Cell[8,46] 6.4744327119115e-08 [GeV] -Cell[9,32] 0.00053501643060524 [GeV] -Cell[9,33] 0.00053543718530002 [GeV] -Cell[9,34] 3.9585793831975e-05 [GeV] -Cell[5,8] 1.925753763453e-05 [GeV] -Cell[5,7] 6.7473620909936e-05 [GeV] -Cell[10,25] 0.019489386916571 [GeV] -Cell[10,26] 0.0020491654989485 [GeV] -Cell[10,24] 0.0028980915883399 [GeV] -Cell[9,27] 3.415577689384e-05 [GeV] -Cell[10,27] 0.0001859296318072 [GeV] -Cell[9,24] 0.0016390864788237 [GeV] -Cell[7,43] 8.1316061295297e-05 [GeV] -Cell[12,11] 0.0026789393288229 [GeV] -Cell[12,10] 2.6484485715628e-11 [GeV] -Cell[10,22] 4.4416821212508e-05 [GeV] -Cell[7,34] 0.01242914622686 [GeV] -Cell[7,31] 0.0027521054628231 [GeV] -Cell[7,26] 0.0030411831004726 [GeV] -Cell[7,27] 0.10435903745703 [GeV] -Cell[7,30] 0.016149366340587 [GeV] -Cell[7,28] 0.075052963102248 [GeV] -Cell[6,4] 1.2891745427623e-08 [GeV] -Cell[5,4] 1.648225588724e-08 [GeV] -Cell[8,21] 0.015671169572787 [GeV] -Cell[8,22] 0.00076592099332503 [GeV] -Cell[7,25] 0.00015769828755947 [GeV] -Cell[6,26] 5.6805078085745e-05 [GeV] -Cell[5,2] 7.5523324776441e-06 [GeV] -Cell[5,3] 0.00082465557406931 [GeV] -Cell[4,3] 6.7790831089951e-06 [GeV] -Cell[4,4] 0.00039625876818434 [GeV] -Cell[3,4] 0.0001768856873307 [GeV] -Cell[4,5] 0.0001952117427445 [GeV] -Cell[3,5] 8.3211980870942e-05 [GeV] -Cell[7,29] 0.0021455712898524 [GeV] -Cell[11,4] 0.0003132065088364 [GeV] -Cell[11,3] 0.0012960598517261 [GeV] -Cell[5,46] 1.042837247951e-05 [GeV] -Cell[6,44] 0.00012509833902857 [GeV] -Cell[8,16] 5.5809238347138e-08 [GeV] -Cell[10,14] 1.2895948777441e-05 [GeV] -Cell[11,12] 0.0025752785627259 [GeV] -Cell[11,13] 0.00018469824257181 [GeV] -Cell[10,13] 3.9817054246214e-06 [GeV] -Cell[11,15] 0.0069526673213861 [GeV] -Cell[12,14] 3.0511127988575e-09 [GeV] -Cell[11,16] 0.0018089456981422 [GeV] -Cell[7,39] 0.0036885359565089 [GeV] -Cell[3,9] 0.0014713381064922 [GeV] -Cell[2,9] 0.00051099891 [GeV] -Cell[9,31] 0.00070847429415305 [GeV] -Cell[4,21] 0.00051099891 [GeV] -Cell[6,3] 0.0013099774508083 [GeV] -Cell[14,0] 0.0027889320765627 [GeV] -Cell[13,39] 0.00031989823092223 [GeV] -Cell[16,15] 0.0042488916477415 [GeV] -Cell[11,46] 0.00051099891 [GeV] -Cell[13,3] 0.00086410249542523 [GeV] -Cell[10,35] 0.00026840685549968 [GeV] -Cell[11,44] 0.0031905399055637 [GeV] -Cell[14,47] 0.0039748785166189 [GeV] -Cell[10,28] 0.00018985617685329 [GeV] -Cell[10,18] 0.00011027272042996 [GeV] -Cell[10,17] 0.0083368635322545 [GeV] -Cell[7,21] 0.0012762231905456 [GeV] -Cell[9,21] 0.0036153946209592 [GeV] -Cell[8,18] 0.00029697339712495 [GeV] -Cell[11,1] 0.0069503746357005 [GeV] -Cell[4,16] 0.0016552872334608 [GeV] -Cell[5,5] 0.00092718782949927 [GeV] -### Total energy deposition in calorimeter by a source track in 125 cells : 1.567223271633 (GeV) - -Source track ID 6331 (gamma,7.9159401900173e-05[GeV]) at (-42.426663255504,498.19672644951,200.68611504675) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[11,12] 7.9159401900173e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 7.9159401900173e-05 (GeV) - -Source track ID 6334 (gamma,0.0002004958588898[GeV]) at (9.3591084936408,499.91239941434,417.98775379793) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[12,11] 0.0002004958588898 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0002004958588898 (GeV) - -Source track ID 6335 (gamma,6.6985389672245e-05[GeV]) at (-5.1508831041764,499.97346769928,599.18956570469) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[12,12] 6.6985389672245e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 6.6985389672245e-05 (GeV) - -Source track ID 6336 (gamma,0.0006929889677179[GeV]) at (-131.02814566637,-482.5262946651,380.53378975441) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[11,33] 0.0006929889677179 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0006929889677179 (GeV) - -Source track ID 6337 (gamma,0.00021066823585603[GeV]) at (103.93272874253,489.07871339502,482.71176073829) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[12,10] 0.00021066823585603 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00021066823585603 (GeV) - -Source track ID 6320 (e-,0.013446403373202[GeV]) at (-148.3511611752,-477.48500811855,1112.5147840907) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[11,4] 0.00064992947166292 [GeV] -Cell[15,33] 0.012285474991539 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.012935404463202 (GeV) - -Source track ID 6324 (gamma,0.00066574666379912[GeV]) at (-165.47769845782,-471.82319921037,182.96361077243) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[10,33] 0.00066574666379912 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00066574666379912 (GeV) - -Source track ID 6328 (gamma,0.022775238753551[GeV]) at (-216.9336676517,-450.4883836895,184.51878524977) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[11,32] 0.0043293656871807 [GeV] -Cell[10,32] 0.01844587306637 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.022775238753551 (GeV) - -Source track ID 6321 (e+,0.30938302780281[GeV]) at (-221.82435996751,-448.10038308956,185.01536301849) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[11,32] 0.0099452161353743 [GeV] -Cell[10,42] 0.0019891611382995 [GeV] -Cell[11,31] 0.031429001158616 [GeV] -Cell[11,22] 0.015314900554896 [GeV] -Cell[11,25] 0.0006472802552177 [GeV] -Cell[10,33] 0.00051099891 [GeV] -Cell[10,32] 0.23314529367724 [GeV] -Cell[10,31] 0.0050546184907246 [GeV] -Cell[11,30] 0.0019390312206861 [GeV] -Cell[13,5] 0.0082550814488801 [GeV] -Cell[13,6] 0.00044058387151431 [GeV] -Cell[14,7] 0.00040591103007065 [GeV] -Cell[13,14] 0.0008169488212842 [GeV] -### Total energy deposition in calorimeter by a source track in 13 cells : 0.30989402671281 (GeV) - -Source track ID 6290 (e-,0.11510759409045[GeV]) at (-345.86879632504,-361.07447393671,93.760743098813) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[9,7] 0.00021734064980226 [GeV] -Cell[10,31] 0.0083797287037213 [GeV] -Cell[10,30] 0.10450772804266 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.11310479739618 (GeV) - -Source track ID 6296 (gamma,0.00023550846512404[GeV]) at (-259.22267111452,-427.55538445943,-13.403281350258) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[9,31] 0.00023550846512404 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00023550846512404 (GeV) - -Source track ID 6301 (gamma,0.00023327410271547[GeV]) at (-394.20869050584,-307.57033070449,-7.5147645750766) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[9,29] 0.00023327410271547 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00023327410271547 (GeV) - -Source track ID 6304 (gamma,0.00051099891[GeV]) at (-456.11805004723,-204.83243010108,-101.01706402073) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[9,27] 0.00021543234771807 [GeV] -Cell[8,24] 0.00016741538220888 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.00038284772992694 (GeV) - -Source track ID 6141 (pi+,0.39443510185704[GeV]) at (-474.44068328537,-157.8164694945,240.09050636206) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[11,26] 0.25035503836646 [GeV] -Cell[11,25] 0.05447281408693 [GeV] -Cell[12,26] 0.0029305114700676 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.30775836392346 (GeV) - -Source track ID 6147 (neutron,1.2439607274568[GeV]) at (-92.888158653721,-491.2960309039,324.08260266873) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[10,5] 0.0015330346221448 [GeV] -Cell[11,36] 0.0025222397042599 [GeV] -Cell[13,29] 0.00011685943461341 [GeV] -Cell[11,32] 0.00020991036312023 [GeV] -Cell[8,47] 0.0017893693929861 [GeV] -Cell[8,0] 0.00010720040925776 [GeV] -Cell[11,37] 0.0035070888512646 [GeV] -Cell[10,45] 7.0699607022107e-09 [GeV] -Cell[6,36] 8.9289792522322e-06 [GeV] -Cell[11,31] 0.00069713619750542 [GeV] -Cell[13,31] 0.00059597786133762 [GeV] -Cell[11,33] 0.0017250089414228 [GeV] -Cell[11,34] 0.12908936046064 [GeV] -Cell[7,15] 2.7370540154834e-06 [GeV] -Cell[16,7] 0.0015222303123518 [GeV] -Cell[11,24] 4.1209149537735e-07 [GeV] -Cell[13,21] 1.2281816452742e-11 [GeV] -Cell[13,22] 3.4152626892592e-07 [GeV] -Cell[9,34] 0.00013824000259774 [GeV] -Cell[10,25] 1.7923339498793e-06 [GeV] -Cell[10,24] 8.8216193301378e-05 [GeV] -Cell[11,3] 3.535160502679e-07 [GeV] -Cell[10,35] 8.4132566224071e-05 [GeV] -Cell[11,1] 0.00029504443709402 [GeV] -Cell[11,35] 0.01886006681867 [GeV] -Cell[12,36] 2.4511872345556e-07 [GeV] -Cell[12,35] 1.8409627955407e-09 [GeV] -Cell[8,45] 5.0882966315839e-06 [GeV] -Cell[1,4] 0.00032161775108034 [GeV] -Cell[0,4] 0.001402421813624 [GeV] -Cell[1,5] 1.814330691559e-06 [GeV] -Cell[0,5] 0.00083406487388477 [GeV] -Cell[9,5] 6.6384964244207e-05 [GeV] -Cell[9,4] 6.201308578261e-05 [GeV] -Cell[10,4] 0.0019050642992734 [GeV] -Cell[10,3] 6.3193422988661e-08 [GeV] -Cell[9,3] 7.101334631443e-12 [GeV] -Cell[14,3] 1.6099828935694e-06 [GeV] -Cell[1,39] 5.4362462833524e-09 [GeV] -Cell[10,38] 0.00027592664304029 [GeV] -Cell[10,37] 0.00034874815310684 [GeV] -Cell[10,36] 3.62251659717e-05 [GeV] -Cell[11,0] 0.0030681429949123 [GeV] -Cell[10,44] 6.0801015933976e-08 [GeV] -Cell[13,20] 0.0006414985940433 [GeV] -Cell[10,12] 2.185627410654e-06 [GeV] -Cell[14,37] 3.0621934140868e-05 [GeV] -Cell[15,5] 5.2626739488915e-08 [GeV] -Cell[15,42] 7.0336827775463e-08 [GeV] -Cell[13,30] 0.0021093856512549 [GeV] -Cell[12,34] 0.00081325775864457 [GeV] -Cell[16,8] 0.00035589003771304 [GeV] -Cell[16,9] 5.4056282897363e-07 [GeV] -Cell[15,8] 0.00071269290094473 [GeV] -### Total energy deposition in calorimeter by a source track in 54 cells : 0.17589138393523 (GeV) - -Source track ID 6148 (pi-,0.26755212696545[GeV]) at (-2.159592884327,-499.99533613682,62.130347437117) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[9,35] 0.0015998794576769 [GeV] -Cell[9,1] 0.0011282126895949 [GeV] -Cell[8,1] 0.00021369656842751 [GeV] -Cell[8,4] 0.00027351683380402 [GeV] -Cell[9,46] 0.01143740677796 [GeV] -Cell[8,47] 0.0020721628556063 [GeV] -Cell[8,0] 4.4081317312589e-05 [GeV] -Cell[10,34] 0.0028612888598866 [GeV] -Cell[9,0] 3.9202199899592e-05 [GeV] -Cell[9,47] 1.3488104217686e-05 [GeV] -Cell[9,44] 4.7148205339909e-12 [GeV] -Cell[8,46] 0.00079604085427707 [GeV] -Cell[9,34] 8.5033908624155e-07 [GeV] -Cell[11,16] 0.00078309488198623 [GeV] -Cell[10,35] 0.030443033155369 [GeV] -Cell[10,33] 3.6119317358612e-05 [GeV] -Cell[8,45] 0.00017160222011319 [GeV] -Cell[9,5] 0.0016119960331506 [GeV] -Cell[10,37] 0.0027105523966476 [GeV] -Cell[10,36] 0.13627704802279 [GeV] -Cell[8,44] 2.1969186410956e-05 [GeV] -Cell[9,45] 0.00023746275236624 [GeV] -Cell[8,2] 6.3454829214606e-06 [GeV] -Cell[9,19] 7.982572860783e-06 [GeV] -Cell[6,42] 0.00048164450206161 [GeV] -Cell[5,42] 6.8451627157629e-09 [GeV] -Cell[5,43] 5.0978266142465e-07 [GeV] -Cell[5,44] 5.1784801939903e-08 [GeV] -Cell[9,36] 0.00052448893341438 [GeV] -### Total energy deposition in calorimeter by a source track in 29 cells : 0.19379373473254 (GeV) - -Source track ID 6149 (proton,1.0493957512336[GeV]) at (483.0814924745,128.9661646658,1018.9317724847) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[11,32] 0.00092454809771539 [GeV] -Cell[13,38] 0.0018618261400016 [GeV] -Cell[13,37] 9.4218834128696e-06 [GeV] -Cell[11,33] 9.6969903690933e-06 [GeV] -Cell[13,39] 5.1575252073576e-05 [GeV] -Cell[12,36] 3.7054695392726e-05 [GeV] -Cell[14,3] 0.00043351838718092 [GeV] -Cell[15,1] 0.067817627975887 [GeV] -Cell[13,17] 5.9405240315414e-05 [GeV] -Cell[15,2] 0.00021443214950523 [GeV] -Cell[17,9] 8.658225502586e-06 [GeV] -Cell[16,22] 0.00011188045852577 [GeV] -Cell[17,22] 1.6964863199973e-05 [GeV] -Cell[19,0] 0.00045515794780408 [GeV] -Cell[19,47] 0.00012828234559356 [GeV] -Cell[13,40] 5.1388924571256e-06 [GeV] -Cell[16,21] 0.0013632957584867 [GeV] -### Total energy deposition in calorimeter by a source track in 17 cells : 0.073508485303424 (GeV) - -Source track ID 6152 (neutron,0.95440268245932[GeV]) at (-283.45152948253,-411.89225585584,518.47557437513) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[13,32] 0.001261771300623 [GeV] -Cell[14,31] 2.1583308580375e-09 [GeV] -Cell[13,31] 0.0054090790149376 [GeV] -Cell[12,31] 7.2701872821199e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.0067435543467126 (GeV) - -Source track ID 6155 (neutron,0.94582354600258[GeV]) at (398.39965064205,-302.12202562589,1692.4017572231) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[18,43] 0.001161294988425 [GeV] -Cell[19,44] 0.00044559536717555 [GeV] -Cell[19,43] 6.0238093137741e-06 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.0016129141649143 (GeV) - -Source track ID 6156 (gamma,0.003761262379675[GeV]) at (-475.40303188732,154.89337388135,827.08985714861) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[14,8] 0.00051099891 [GeV] -Cell[14,21] 0.003250263469675 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.003761262379675 (GeV) - -Source track ID 6157 (neutron,0.94299520579829[GeV]) at (227.42505885227,-445.28400218966,376.45055949274) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[11,39] 0.00029960000026153 [GeV] -Cell[11,41] 2.468004822731e-11 [GeV] -Cell[11,40] 0.0030610789213858 [GeV] -Cell[12,40] 2.4101790744453e-06 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.0033630891254018 (GeV) - -Source track ID 6158 (gamma,0.00011852205525792[GeV]) at (-58.25405589879,-496.59487006144,248.70810179203) -Original primary track ID 2 (unknown,2.8798399642419[GeV]) -Cell[11,35] 0.00011852205525792 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00011852205525792 (GeV) - -Source track ID 6131 (gamma,0.032559394638405[GeV]) at (-498.62850526157,-37.008292862752,-1796.9962623242) +Source track ID 6297 (pi+,1.2124854802551[GeV]) at (-469.33744873758,172.40173784652,-1870.0230688749) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[0,24] 0.023412407251838 [GeV] -Cell[1,24] 0.00051099891 [GeV] -Cell[0,25] 0.0086359884765676 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.032559394638405 (GeV) +Cell[0,21] 0.12804438988619 [GeV] +Cell[0,20] 0.08126922552095 [GeV] +Cell[0,19] 0.16750649819728 [GeV] +Cell[0,18] 0.00029101088825155 [GeV] +Cell[1,6] 0.00035071751869647 [GeV] +Cell[0,44] 0.00078566828327544 [GeV] +Cell[0,9] 0.00063104520343495 [GeV] +### Total energy deposition in calorimeter by a source track in 7 cells : 0.37887855549808 (GeV) -Source track ID 6106 (pi+,0.77702425050526[GeV]) at (-481.02337648148,136.44233682534,-1810.7438618315) +Source track ID 6298 (anti_proton,5.3585860047021[GeV]) at (-475.21451740004,155.47077684326,-1710.0643121705) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[6,38] 3.6095829038914e-06 [GeV] -Cell[7,37] 7.7724064082304e-05 [GeV] -Cell[2,15] 0.0097236379000545 [GeV] -Cell[0,21] 0.50108256830923 [GeV] -Cell[1,21] 1.743924354821e-05 [GeV] -Cell[6,37] 0.00017282571152293 [GeV] -Cell[0,20] 0.00045648850538407 [GeV] -Cell[0,19] 0.0034569786871839 [GeV] -Cell[0,22] 0.00074175119062147 [GeV] -Cell[0,23] 0.0018454513487628 [GeV] -Cell[0,31] 2.157321429695e-05 [GeV] -Cell[1,44] 6.0450939054135e-06 [GeV] -Cell[1,45] 0.00057561186661769 [GeV] -Cell[1,47] 2.5842533065429e-05 [GeV] -Cell[1,46] 0.0016306411264968 [GeV] -Cell[0,18] 0.010811489032381 [GeV] -Cell[1,17] 0.0020820797570785 [GeV] -Cell[0,17] 0.0039866310955018 [GeV] -Cell[0,16] 7.563836864972e-05 [GeV] -Cell[1,18] 0.013994392982314 [GeV] -Cell[1,16] 6.313110498013e-06 [GeV] -Cell[2,16] 0.0024563186885016 [GeV] -Cell[1,15] 0.00036233377557278 [GeV] -Cell[1,14] 3.9960207172953e-05 [GeV] -Cell[2,14] 0.00014153017786737 [GeV] -Cell[2,18] 6.3637271053381e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 26 cells : 0.55385851284427 (GeV) +Cell[1,21] 0.13520779122286 [GeV] +Cell[0,21] 0.16187666650757 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.29708445773044 (GeV) -Source track ID 6103 (gamma,1.9015972345341[GeV]) at (-363.22356463408,343.61117865184,-955.17208618232) +Source track ID 6293 (gamma,0.3844820986824[GeV]) at (-416.05371129606,277.30724714074,-1118.9884168795) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[7,12] 0.0014839784309265 [GeV] -Cell[4,43] 0.0014196028905575 [GeV] -Cell[5,19] 5.9073419489436e-05 [GeV] -Cell[6,41] 0.00050289727758349 [GeV] -Cell[0,43] 0.00086082248335974 [GeV] -Cell[5,18] 1.1280141684038 [GeV] -Cell[6,44] 0.0016550904171922 [GeV] -Cell[10,17] 0.00027878703635525 [GeV] -Cell[4,16] 0.0027635730441277 [GeV] -Cell[4,18] 0.57388241407573 [GeV] -Cell[4,17] 0.10867254958881 [GeV] -Cell[5,17] 0.024116901152059 [GeV] -Cell[4,32] 0.00036707543839695 [GeV] -Cell[4,19] 0.011980569193223 [GeV] -Cell[4,13] 0.00016051198107317 [GeV] -Cell[6,22] 1.7416227672901e-05 [GeV] -Cell[3,18] 0.0012267715314337 [GeV] -Cell[0,45] 0.00095601751518981 [GeV] -Cell[8,36] 0.0011014233906558 [GeV] -Cell[2,30] 0.00073889115408747 [GeV] -Cell[2,31] 0.00071357475596173 [GeV] -Cell[0,42] 0.0007331905379372 [GeV] -Cell[4,11] 0.0022501711558653 [GeV] -Cell[6,35] 0.0022408467119892 [GeV] -Cell[3,41] 0.00043212778039301 [GeV] -Cell[0,47] 0.00081374542229489 [GeV] -Cell[3,44] 0.0014501152560943 [GeV] -Cell[5,16] 0.0019660816513359 [GeV] -Cell[3,17] 0.0036028789303522 [GeV] -Cell[3,34] 0.0023157591458339 [GeV] -Cell[3,19] 0.0057148184780814 [GeV] -Cell[3,22] 1.5840297885006e-05 [GeV] -Cell[3,20] 0.00083624524377751 [GeV] -Cell[5,23] 0.0013266192340028 [GeV] -Cell[2,12] 0.00038965821521365 [GeV] -Cell[0,30] 0.0012464841475945 [GeV] -Cell[3,23] 0.001226799416877 [GeV] -Cell[6,39] 0.0017289038191932 [GeV] -### Total energy deposition in calorimeter by a source track in 38 cells : 1.8892623948524 (GeV) +Cell[2,42] 0.00051099891 [GeV] +Cell[7,1] 0.00080365553577688 [GeV] +Cell[4,18] 0.003255504777025 [GeV] +Cell[4,19] 0.36835418576803 [GeV] +Cell[0,41] 0.00022914126714603 [GeV] +Cell[4,20] 0.0027701308203573 [GeV] +Cell[3,27] 0.0016181231157688 [GeV] +Cell[3,4] 0.00089219275301746 [GeV] +Cell[3,19] 0.0060481657352786 [GeV] +### Total energy deposition in calorimeter by a source track in 9 cells : 0.3844820986824 (GeV) -Source track ID 6068 (pi-,4.4331699588802[GeV]) at (-407.30427988815,290.00555785156,-1898.7057388312) +Source track ID 6101 (proton,2.1151010686661[GeV]) at (-25.116085401237,499.36878382025,-1583.3240399514) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[0,19] 0.14370663320086 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.14370663320086 (GeV) +Cell[2,12] 0.02512230647374 [GeV] +Cell[1,12] 0.22328734684088 [GeV] +Cell[0,12] 0.086766997801684 [GeV] +Cell[0,11] 0.17815435628007 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.51333100739637 (GeV) -Source track ID 6029 (pi+,1.2125894020364[GeV]) at (-444.31476472478,229.31286454877,-1914.3403297705) +Source track ID 5570 (pi+,0.78157746825723[GeV]) at (-497.45646555631,50.369285047808,-1145.6395641875) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[0,20] 0.11749816540247 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.11749816540247 (GeV) +Cell[7,10] 1.4604704608701e-07 [GeV] +Cell[7,11] 3.4339229159741e-08 [GeV] +Cell[2,41] 8.4263156459201e-06 [GeV] +Cell[3,40] 0.000752646033416 [GeV] +Cell[9,0] 0.00023572292428162 [GeV] +Cell[10,29] 7.4769537248358e-05 [GeV] +Cell[8,45] 0.00049722392084459 [GeV] +Cell[1,20] 0.0014052658579238 [GeV] +Cell[11,36] 1.0062374258268e-09 [GeV] +Cell[6,34] 0.00010529993284763 [GeV] +Cell[9,43] 0.00052948176800455 [GeV] +Cell[3,22] 0.0018918536659958 [GeV] +Cell[2,42] 0.0011803553779249 [GeV] +Cell[3,41] 0.0020666221232909 [GeV] +Cell[6,11] 2.6876974733341e-06 [GeV] +Cell[7,33] 0.00022484757286327 [GeV] +Cell[6,9] 0.00035775171568673 [GeV] +Cell[10,38] 0.00055343353020191 [GeV] +Cell[5,20] 6.1365361034404e-06 [GeV] +Cell[6,33] 0.00021626639841895 [GeV] +Cell[8,46] 0.00028200172985316 [GeV] +Cell[8,19] 2.4524479405954e-05 [GeV] +Cell[10,2] 2.3922314401716e-05 [GeV] +Cell[10,6] 0.0019960951641365 [GeV] +Cell[10,9] 9.5728093874641e-06 [GeV] +Cell[10,1] 2.8080450574635e-05 [GeV] +Cell[9,44] 0.00085846147433232 [GeV] +Cell[10,39] 0.00028200396810975 [GeV] +Cell[15,2] 1.6278820112348e-08 [GeV] +Cell[10,5] 0.001801191996844 [GeV] +Cell[7,28] 1.2633533595363e-05 [GeV] +Cell[7,29] 6.0038378287572e-06 [GeV] +Cell[3,21] 0.00064020201518281 [GeV] +Cell[5,7] 0.0005785289955362 [GeV] +Cell[4,6] 0.00054695236102816 [GeV] +Cell[4,7] 8.021834324893e-05 [GeV] +Cell[3,29] 0.0026246963372797 [GeV] +Cell[8,44] 0.00050976672122238 [GeV] +Cell[3,42] 0.00016458684117424 [GeV] +Cell[3,47] 0.00012072695907841 [GeV] +Cell[4,17] 1.4677906573411e-05 [GeV] +Cell[4,19] 5.6688369077165e-06 [GeV] +Cell[4,23] 0.34470498590165 [GeV] +Cell[4,21] 0.0007481578133993 [GeV] +Cell[6,0] 9.4077984158503e-10 [GeV] +Cell[3,25] 0.00021897336247878 [GeV] +Cell[1,18] 2.9758084565401e-09 [GeV] +Cell[1,19] 4.1397755099524e-05 [GeV] +Cell[4,39] 0.0010904753610175 [GeV] +Cell[4,20] 5.3153808694333e-06 [GeV] +Cell[6,32] 8.9677290588952e-09 [GeV] +Cell[4,24] 0.00021037390357878 [GeV] +Cell[4,25] 0.00036480120855322 [GeV] +Cell[3,26] 0.00041422645194564 [GeV] +Cell[2,17] 3.0088317453192e-07 [GeV] +Cell[4,22] 0.0097444675263891 [GeV] +Cell[4,37] 0.0013532543340516 [GeV] +Cell[6,2] 0.00046622701097431 [GeV] +Cell[6,1] 3.2239257622223e-05 [GeV] +Cell[7,22] 0.00099797988794372 [GeV] +Cell[5,9] 1.1117683548946e-05 [GeV] +Cell[5,8] 0.001698521385722 [GeV] +Cell[4,8] 7.6225142693147e-06 [GeV] +Cell[5,6] 5.8474146935623e-06 [GeV] +Cell[3,44] 0.00098507219980139 [GeV] +Cell[11,35] 0.0005658735270307 [GeV] +Cell[5,37] 0.00098822330180667 [GeV] +Cell[10,4] 0.00010967522448539 [GeV] +Cell[15,0] 0.00050325902076565 [GeV] +Cell[15,47] 3.9081302529667e-06 [GeV] +Cell[14,47] 0.00023355412644082 [GeV] +Cell[6,12] 9.3087103450671e-06 [GeV] +Cell[6,13] 7.069707417395e-05 [GeV] +Cell[2,46] 5.3093050548341e-05 [GeV] +Cell[3,24] 0.00063329710324194 [GeV] +Cell[4,32] 0.15116469893532 [GeV] +Cell[3,32] 7.9287239350379e-07 [GeV] +Cell[4,31] 0.0028645150436861 [GeV] +Cell[3,30] 8.0007106298581e-06 [GeV] +Cell[3,31] 1.1889107729075e-05 [GeV] +Cell[4,30] 0.00052870344678502 [GeV] +Cell[2,19] 3.379041232688e-05 [GeV] +Cell[2,20] 5.1754555897787e-08 [GeV] +Cell[4,16] 0.00028798264483225 [GeV] +Cell[4,29] 0.0041163646457843 [GeV] +Cell[10,0] 0.0023191707916365 [GeV] +Cell[10,47] 6.3475157021344e-05 [GeV] +Cell[9,47] 1.8690712749958e-08 [GeV] +Cell[12,15] 1.2915814295411e-08 [GeV] +### Total energy deposition in calorimeter by a source track in 89 cells : 0.54839123217462 (GeV) -Source track ID 6030 (anti_proton,5.3584989590268[GeV]) at (-479.23458505983,142.59808022037,-1704.1580369204) +Source track ID 5573 (pi+,0.50620234508352[GeV]) at (486.67122769828,114.67831586943,-1135.4328140744) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[0,21] 0.16289350429629 [GeV] -Cell[1,21] 0.12449996599623 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.28739347029252 (GeV) +Cell[7,10] 0.00087167370821498 [GeV] +Cell[10,37] 3.011249442352e-06 [GeV] +Cell[8,12] 0.0001713187167686 [GeV] +Cell[8,26] 0.00010155563104456 [GeV] +Cell[8,27] 0.0011487915647356 [GeV] +Cell[1,41] 0.001113906203637 [GeV] +Cell[3,40] 2.5948495704142e-08 [GeV] +Cell[5,33] 0.0030320178394295 [GeV] +Cell[6,26] 0.00010665437260434 [GeV] +Cell[6,27] 1.4833449735306e-05 [GeV] +Cell[4,0] 0.0039933840192676 [GeV] +Cell[2,1] 8.1518093429167e-05 [GeV] +Cell[10,30] 4.7354304697365e-05 [GeV] +Cell[9,26] 2.2314104129919e-05 [GeV] +Cell[4,41] 0.00097738111117906 [GeV] +Cell[10,38] 3.0907357577235e-06 [GeV] +Cell[5,20] 1.5460907568922e-05 [GeV] +Cell[6,33] 0.005787770941733 [GeV] +Cell[2,33] 2.8887966419916e-05 [GeV] +Cell[3,45] 2.9074726626277e-11 [GeV] +Cell[3,38] 0.00074984478942804 [GeV] +Cell[4,38] 0.0024677342195311 [GeV] +Cell[10,36] 4.445695085451e-07 [GeV] +Cell[10,39] 0.00011970859470057 [GeV] +Cell[5,44] 0.00050710453473994 [GeV] +Cell[4,2] 0.045627258461108 [GeV] +Cell[4,4] 7.114232244021e-08 [GeV] +Cell[4,47] 0.0008057922611932 [GeV] +Cell[4,1] 0.11709160226139 [GeV] +Cell[3,1] 0.02910611935824 [GeV] +Cell[8,28] 0.0022348340778172 [GeV] +Cell[8,37] 0.0031649549275047 [GeV] +Cell[3,2] 0.00016394176291737 [GeV] +Cell[3,17] 0.0006252557490443 [GeV] +Cell[1,40] 1.3501308899322e-08 [GeV] +Cell[3,47] 0.0036259758438481 [GeV] +Cell[5,43] 0.00068040948351154 [GeV] +Cell[4,45] 2.0632185944123e-05 [GeV] +Cell[5,0] 0.00014651776365817 [GeV] +Cell[6,40] 6.0349613062613e-05 [GeV] +Cell[1,33] 3.7285213920768e-09 [GeV] +Cell[4,39] 0.0089021590274985 [GeV] +Cell[2,16] 7.2235707193613e-11 [GeV] +Cell[4,43] 0.0023639498451774 [GeV] +Cell[3,34] 0.002236356734709 [GeV] +Cell[3,26] 0.00037755128591242 [GeV] +Cell[2,17] 4.4215116759005e-09 [GeV] +Cell[2,46] 1.2454615430897e-05 [GeV] +Cell[3,32] 0.00019273683360912 [GeV] +Cell[5,21] 1.0988289810484e-05 [GeV] +Cell[2,45] 0.00048664478213698 [GeV] +Cell[4,3] 5.5168315952869e-08 [GeV] +Cell[2,34] 0.0013214835017205 [GeV] +Cell[4,46] 2.5395863049198e-06 [GeV] +Cell[4,44] 0.010060303979303 [GeV] +Cell[8,24] 1.4015107415617e-05 [GeV] +Cell[8,25] 8.0154871333434e-05 [GeV] +Cell[4,42] 0.00067315651884689 [GeV] +Cell[4,40] 0.0010506792025129 [GeV] +Cell[3,39] 0.00029229517381145 [GeV] +Cell[6,41] 0.00020387318659266 [GeV] +Cell[6,42] 0.00027859894601443 [GeV] +Cell[6,43] 7.470333586889e-05 [GeV] +Cell[3,16] 0.00014711226928728 [GeV] +Cell[3,3] 0.0058066752522051 [GeV] +Cell[2,0] 0.00042181692008387 [GeV] +Cell[9,27] 0.0021217879495979 [GeV] +Cell[9,28] 0.00029104947486336 [GeV] +Cell[9,39] 0.00071168970681811 [GeV] +Cell[9,38] 0.00015595449198929 [GeV] +Cell[9,37] 0.00012952980649106 [GeV] +Cell[9,36] 3.3060472349234e-05 [GeV] +Cell[3,0] 0.0095655914447767 [GeV] +Cell[5,34] 0.0014155283556629 [GeV] +Cell[5,32] 0.00037542283975296 [GeV] +Cell[1,43] 2.2905422985787e-05 [GeV] +Cell[1,42] 0.00059402750540606 [GeV] +Cell[2,47] 7.2206048135058e-05 [GeV] +Cell[3,46] 0.00058652163782995 [GeV] +Cell[0,8] 0.00030709889969261 [GeV] +### Total energy deposition in calorimeter by a source track in 80 cells : 0.27611220271066 (GeV) -Source track ID 6025 (gamma,0.3844820986824[GeV]) at (-406.4557484986,291.1936203155,-1180.8567204202) +Source track ID 5377 (anti_proton,1.6909584732641[GeV]) at (-493.82941552468,78.31033368946,-1171.8747954397) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[5,3] 0.00037051346457812 [GeV] -Cell[4,18] 0.000405469202183 [GeV] -Cell[4,19] 0.076014019291009 [GeV] -Cell[3,18] 0.032997127474916 [GeV] -Cell[3,19] 0.2624341614185 [GeV] -Cell[0,30] 0.00025839869250249 [GeV] -Cell[0,36] 0.00093540403345448 [GeV] -Cell[3,32] 0.0094166392657683 [GeV] -Cell[4,34] 0.00057118933130188 [GeV] -Cell[0,13] 0.00051907078966059 [GeV] -Cell[2,46] 0.00056010571852945 [GeV] -### Total energy deposition in calorimeter by a source track in 11 cells : 0.3844820986824 (GeV) +Cell[9,9] 7.767986971885e-09 [GeV] +Cell[9,10] 4.294742597267e-06 [GeV] +Cell[9,4] 0.0010281545054284 [GeV] +Cell[5,22] 0.024513718288669 [GeV] +Cell[9,11] 9.4730681157671e-06 [GeV] +Cell[5,33] 4.0003127626278e-05 [GeV] +Cell[10,17] 0.0004015665241003 [GeV] +Cell[5,35] 7.9888268373907e-09 [GeV] +Cell[6,26] 0.0027197103948871 [GeV] +Cell[1,20] 1.7746366097526e-07 [GeV] +Cell[3,22] 0.65237410295019 [GeV] +Cell[2,42] 2.5238539251404e-08 [GeV] +Cell[2,23] 8.4895527834306e-09 [GeV] +Cell[6,11] 9.9961865101363e-05 [GeV] +Cell[6,9] 3.5212048260291e-08 [GeV] +Cell[5,2] 0.00024972256447006 [GeV] +Cell[5,20] 0.00062783236821826 [GeV] +Cell[10,10] 0.0002778658415624 [GeV] +Cell[4,38] 2.0935967786727e-05 [GeV] +Cell[6,6] 3.600519237807e-06 [GeV] +Cell[10,9] 5.3532131406655e-06 [GeV] +Cell[11,21] 7.2374491719529e-06 [GeV] +Cell[9,46] 6.8967120023444e-07 [GeV] +Cell[4,2] 3.5931298043579e-09 [GeV] +Cell[4,1] 5.0979808634111e-08 [GeV] +Cell[5,1] 0.00088815211883787 [GeV] +Cell[3,21] 0.011551093623286 [GeV] +Cell[2,24] 0.00014197310250415 [GeV] +Cell[3,18] 0.00039453948579296 [GeV] +Cell[2,25] 5.9813434620537e-05 [GeV] +Cell[2,26] 1.3562995752636e-07 [GeV] +Cell[4,12] 0.00088171636584076 [GeV] +Cell[4,19] 0.0010585974214745 [GeV] +Cell[5,23] 0.0082946029126971 [GeV] +Cell[4,23] 0.017181045996451 [GeV] +Cell[4,21] 0.013736688166971 [GeV] +Cell[1,16] 5.3607237350661e-06 [GeV] +Cell[2,43] 0.00043707141102504 [GeV] +Cell[3,25] 0.0014179703510285 [GeV] +Cell[2,18] 7.6884079086312e-06 [GeV] +Cell[1,26] 9.1143827594351e-06 [GeV] +Cell[1,17] 0.00011129958613037 [GeV] +Cell[2,38] 0.0027691126647619 [GeV] +Cell[0,47] 2.7744651888497e-06 [GeV] +Cell[3,36] 0.0036096351862633 [GeV] +Cell[4,20] 0.00040056932309585 [GeV] +Cell[3,27] 6.0809834394604e-09 [GeV] +Cell[3,19] 0.013181493918105 [GeV] +Cell[4,24] 0.0025987095366595 [GeV] +Cell[4,22] 0.074456372077979 [GeV] +Cell[4,37] 1.9383136487022e-05 [GeV] +Cell[6,2] 0.00011550470381133 [GeV] +Cell[5,9] 1.1213859295367e-07 [GeV] +Cell[5,37] 2.1224115975201e-05 [GeV] +Cell[3,24] 0.11971653175661 [GeV] +Cell[3,32] 0.00029671448806812 [GeV] +Cell[2,19] 0.0014188197421064 [GeV] +Cell[2,20] 0.012983469219947 [GeV] +Cell[5,21] 0.00099279742603062 [GeV] +Cell[6,41] 1.4284337230492e-06 [GeV] +Cell[5,34] 2.138873253557e-05 [GeV] +Cell[3,23] 0.88021352730186 [GeV] +Cell[2,37] 0.00016656909095157 [GeV] +Cell[2,36] 2.984517524601e-05 [GeV] +Cell[0,0] 0.00058459009896569 [GeV] +Cell[4,28] 0.0060944700731623 [GeV] +Cell[4,27] 0.002904977051488 [GeV] +Cell[5,26] 1.9645318571861e-05 [GeV] +Cell[5,27] 3.3190532121807e-08 [GeV] +Cell[3,20] 0.01655759870146 [GeV] +Cell[5,11] 1.6466854997361e-06 [GeV] +Cell[6,25] 0.022660818356447 [GeV] +Cell[5,24] 0.0012737033418294 [GeV] +Cell[6,24] 0.00056398297212274 [GeV] +Cell[5,25] 0.00012452590738656 [GeV] +Cell[9,5] 0.0024581881195223 [GeV] +Cell[2,7] 0.00064766869177959 [GeV] +Cell[2,27] 2.8452876051688e-07 [GeV] +Cell[4,34] 0.0098197919044677 [GeV] +Cell[4,35] 0.16119042935333 [GeV] +Cell[10,18] 0.00019036972751394 [GeV] +Cell[4,36] 0.003543228320806 [GeV] +Cell[4,11] 0.0021559551579291 [GeV] +Cell[4,10] 0.00046295097840925 [GeV] +### Total energy deposition in calorimeter by a source track in 84 cells : 2.082832250111 (GeV) -Source track ID 5855 (proton,2.1151365252176[GeV]) at (-59.726740609807,496.41989933536,-1605.9960364825) +Source track ID 5378 (neutron,1.4783692592721[GeV]) at (458.5309876774,199.3723484829,-606.56000985403) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[1,15] 0.00077371944020533 [GeV] -Cell[1,14] 0.0013001638381452 [GeV] -Cell[2,30] 0.002396713169372 [GeV] -Cell[2,31] 0.00052884141274262 [GeV] -Cell[3,32] 3.9439833402866e-05 [GeV] -Cell[1,12] 0.32701151140829 [GeV] -Cell[1,13] 3.3308616722934e-05 [GeV] -Cell[3,31] 9.7841585229617e-06 [GeV] -Cell[1,30] 7.0673028822057e-06 [GeV] -Cell[1,29] 0.00016803156480557 [GeV] -Cell[2,29] 0.0022383936973188 [GeV] -Cell[0,12] 0.29269640806744 [GeV] -### Total energy deposition in calorimeter by a source track in 12 cells : 0.62720338250986 (GeV) +Cell[4,0] 0.06094284329964 [GeV] +Cell[5,2] 0.0066620218029237 [GeV] +Cell[5,3] 0.036050195113862 [GeV] +Cell[4,2] 0.0015523261152567 [GeV] +Cell[4,4] 0.0041246497062416 [GeV] +Cell[4,1] 0.059514589787133 [GeV] +Cell[5,1] 2.2254371288e-08 [GeV] +Cell[5,7] 0.0019723955050778 [GeV] +Cell[4,6] 0.00089746821323502 [GeV] +Cell[5,0] 3.7132838315301e-10 [GeV] +Cell[0,27] 0.00028769804420585 [GeV] +Cell[1,27] 0.021191660667251 [GeV] +Cell[4,5] 0.0017271431064975 [GeV] +Cell[0,28] 0.00024759282944171 [GeV] +Cell[6,2] 0.014840579512535 [GeV] +Cell[5,8] 0.00032768713035671 [GeV] +Cell[5,6] 5.3640420373995e-05 [GeV] +Cell[4,3] 0.0026153798925016 [GeV] +Cell[5,4] 0.10108766878145 [GeV] +Cell[6,3] 0.00069621740976876 [GeV] +Cell[5,5] 0.0025090782468473 [GeV] +Cell[6,4] 4.7947320923981e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 22 cells : 0.31734880553122 (GeV) -Source track ID 5334 (pi+,0.7815228930069[GeV]) at (-497.60604057219,48.869503640478,-1143.5862010338) +Source track ID 5532 (gamma,8.498099275784e-05[GeV]) at (83.949458148686,492.90210841154,322.25835988434) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[4,22] 0.00024200101659778 [GeV] -Cell[1,21] 1.1065173923271e-05 [GeV] -Cell[0,23] 4.3772161006927e-11 [GeV] -Cell[0,45] 7.360596558101e-06 [GeV] -Cell[3,22] 0.15699749749282 [GeV] -Cell[3,23] 0.023198411893315 [GeV] -Cell[4,23] 0.077633897250485 [GeV] -Cell[2,22] 0.41664793015678 [GeV] -Cell[2,21] 0.0023202565203329 [GeV] -Cell[2,23] 0.0010043524161837 [GeV] -Cell[1,23] 7.3167818763068e-05 [GeV] -Cell[1,22] 0.002637348741426 [GeV] -Cell[0,44] 2.4674483574927e-07 [GeV] -Cell[3,21] 0.0021658592307557 [GeV] -### Total energy deposition in calorimeter by a source track in 14 cells : 0.68293939509655 (GeV) +Cell[11,10] 8.498099275784e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 8.498099275784e-05 (GeV) -Source track ID 5337 (pi+,0.50627215214186[GeV]) at (485.71985804227,118.64324465977,-1143.3162793637) +Source track ID 5533 (gamma,0.00032257072506878[GeV]) at (-387.01830289547,316.57042379842,503.99169844301) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[2,1] 0.001311351252785 [GeV] -Cell[3,4] 7.8324353580683e-10 [GeV] -Cell[4,1] 0.076370309148896 [GeV] -Cell[3,1] 0.34454974309027 [GeV] -Cell[3,2] 0.0012578237530107 [GeV] -Cell[3,3] 1.0846268850173e-05 [GeV] -Cell[4,15] 0.00011309654930596 [GeV] -Cell[4,14] 0.00057468078736872 [GeV] -Cell[3,47] 3.3951859222725e-05 [GeV] -Cell[3,28] 1.2641813111259e-05 [GeV] -Cell[3,0] 0.016458729103432 [GeV] -Cell[2,0] 8.591328781938e-05 [GeV] -Cell[2,2] 0.00025813092028602 [GeV] -### Total energy deposition in calorimeter by a source track in 13 cells : 0.4410372186176 (GeV) +Cell[12,18] 0.00032257072506878 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00032257072506878 (GeV) -Source track ID 5050 (anti_proton,1.6910423216608[GeV]) at (-493.98543879843,77.320024929662,-1173.7742594331) +Source track ID 5379 (pi+,0.5270960801716[GeV]) at (99.9854702446,489.90091420609,291.31895236529) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[2,35] 0.00047547437819162 [GeV] -Cell[3,24] 0.001558011311864 [GeV] -Cell[4,22] 0.038033070801968 [GeV] -Cell[9,7] 7.4445434414883e-05 [GeV] -Cell[9,2] 5.980993330013e-06 [GeV] -Cell[10,9] 7.3746540874708e-06 [GeV] -Cell[8,4] 1.3928388823842e-05 [GeV] -Cell[3,25] 0.0041350285987163 [GeV] -Cell[9,6] 9.1127786804464e-06 [GeV] -Cell[11,42] 0.0032369467423141 [GeV] -Cell[10,45] 1.1171973310411e-06 [GeV] -Cell[0,43] 6.8215201899875e-06 [GeV] -Cell[8,3] 9.5559289625271e-06 [GeV] -Cell[11,43] 0.0040001461141918 [GeV] -Cell[12,43] 0.00034542650633398 [GeV] -Cell[5,45] 0.00077068776614749 [GeV] -Cell[10,10] 1.3777474494418e-05 [GeV] -Cell[5,2] 0.00011951142584485 [GeV] -Cell[3,5] 2.4189413059503e-05 [GeV] -Cell[5,46] 0.00025167654252948 [GeV] -Cell[4,21] 9.9468705911931e-09 [GeV] -Cell[0,4] 0.00021783262898418 [GeV] -Cell[0,5] 0.00023071838214935 [GeV] -Cell[9,3] 2.0208871283103e-06 [GeV] -Cell[8,2] 8.336580850505e-05 [GeV] -Cell[1,24] 0.011425045159449 [GeV] -Cell[0,25] 1.8651456559837e-07 [GeV] -Cell[0,21] 5.5871127949558e-07 [GeV] -Cell[1,21] 0.0011482324365833 [GeV] -Cell[0,20] 5.5950211731215e-08 [GeV] -Cell[0,23] 5.2566562089851e-09 [GeV] -Cell[1,44] 0.039126745796072 [GeV] -Cell[1,45] 0.018288488377854 [GeV] -Cell[1,47] 5.000042631309e-08 [GeV] -Cell[1,46] 0.0028456344724696 [GeV] -Cell[3,19] 0.001209981152115 [GeV] -Cell[3,22] 0.078849879542549 [GeV] -Cell[3,20] 0.017128275285113 [GeV] -Cell[3,23] 0.13217363385118 [GeV] -Cell[2,46] 0.00014782073745971 [GeV] -Cell[4,23] 4.4149326186016e-09 [GeV] -Cell[2,22] 0.13296179143754 [GeV] -Cell[2,21] 0.052559723180289 [GeV] -Cell[2,23] 1.085873295629 [GeV] -Cell[1,23] 0.00026690273105839 [GeV] -Cell[1,22] 0.0027181684419645 [GeV] -Cell[0,44] 0.0014093727030819 [GeV] -Cell[3,21] 0.10956184237199 [GeV] -Cell[2,24] 0.029826840872201 [GeV] -Cell[4,31] 5.8981752954423e-07 [GeV] -Cell[1,25] 0.0081056474015521 [GeV] -Cell[0,3] 5.9223375319903e-05 [GeV] -Cell[5,1] 8.3316491463847e-06 [GeV] -Cell[1,7] 7.165771705786e-08 [GeV] -Cell[1,8] 1.3677054084837e-09 [GeV] -Cell[2,25] 0.0044953667260123 [GeV] -Cell[10,11] 2.1098543948028e-06 [GeV] -Cell[12,45] 2.5257680099458e-06 [GeV] -Cell[7,4] 2.9163212911953e-06 [GeV] -Cell[7,3] 0.0073679270220182 [GeV] -Cell[1,20] 0.0010383419095301 [GeV] -Cell[2,39] 0.00148994959604 [GeV] -Cell[2,26] 6.7074319254971e-05 [GeV] -Cell[1,28] 0.0023561864637353 [GeV] -Cell[3,6] 0.00036480384671188 [GeV] -Cell[10,0] 1.6973724937998e-05 [GeV] -Cell[12,42] 0.00040996857267282 [GeV] -Cell[10,47] 0.00020765118734016 [GeV] -Cell[2,34] 1.9180813978892e-06 [GeV] -Cell[2,36] 1.8562557525001e-06 [GeV] -Cell[1,43] 0.0041618640522132 [GeV] -Cell[1,42] 0.0008577284541733 [GeV] -Cell[2,42] 0.00075962375609231 [GeV] -Cell[2,43] 0.0004179733569415 [GeV] -Cell[2,44] 0.00074142817306472 [GeV] -Cell[2,41] 1.281194782905e-07 [GeV] -Cell[1,41] 6.8237616233091e-09 [GeV] -Cell[2,45] 0.00031059938147007 [GeV] -Cell[3,46] 5.1655486316918e-05 [GeV] -Cell[2,47] 3.5768607631326e-11 [GeV] -Cell[2,20] 0.0020762240208897 [GeV] -Cell[2,19] 7.1059912443161e-10 [GeV] -Cell[4,20] 1.6733509776259e-06 [GeV] -### Total energy deposition in calorimeter by a source track in 83 cells : 1.806527107291 (GeV) +Cell[11,11] 0.001826275931387 [GeV] +Cell[11,31] 9.4366057282969e-08 [GeV] +Cell[11,10] 0.15788147245222 [GeV] +Cell[12,10] 0.034829614552426 [GeV] +Cell[12,9] 0.0071677454748325 [GeV] +Cell[11,9] 0.27059675801636 [GeV] +Cell[12,8] 0.00022900270122295 [GeV] +Cell[12,7] 1.0178230417068e-06 [GeV] +Cell[11,12] 0.00030609989010736 [GeV] +Cell[11,8] 0.0035321265239809 [GeV] +Cell[12,11] 0.0022231856682981 [GeV] +### Total energy deposition in calorimeter by a source track in 11 cells : 0.47859339339993 (GeV) -Source track ID 5051 (neutron,1.4783692592721[GeV]) at (458.5309876774,199.3723484829,-606.56000985403) +Source track ID 5380 (kaon-,1.5187693769633[GeV]) at (462.98701457499,-188.79360247353,443.82520858643) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[4,46] 6.5655046910251e-10 [GeV] -Cell[8,4] 4.6775648082985e-05 [GeV] -Cell[8,25] 2.2729915799573e-06 [GeV] -Cell[5,4] 0.0037297844364402 [GeV] -Cell[5,2] 0.01086205880323 [GeV] -Cell[5,3] 0.10479001041397 [GeV] -Cell[4,3] 0.0022406213761976 [GeV] -Cell[4,4] 0.00042533119159767 [GeV] -Cell[6,3] 2.2230478352867e-06 [GeV] -Cell[5,5] 1.6753984855768e-05 [GeV] -Cell[2,23] 3.3964984759223e-06 [GeV] -Cell[4,1] 0.07414222144689 [GeV] -Cell[3,1] 0.00042605722834844 [GeV] -Cell[3,2] 0.0057610946205794 [GeV] -Cell[3,3] 0.0040239424822969 [GeV] -Cell[3,47] 0.0031099048347256 [GeV] -Cell[3,0] 0.00026392186428029 [GeV] -Cell[5,1] 0.0056609803621779 [GeV] -Cell[3,46] 0.010710818117612 [GeV] -Cell[4,2] 0.00037534480662021 [GeV] -Cell[6,12] 0.00012978159374279 [GeV] -Cell[6,13] 3.6988357010159e-08 [GeV] -Cell[19,42] 0.00021020616314913 [GeV] -Cell[6,1] 0.00013711805732714 [GeV] -Cell[6,2] 1.6362418688232e-06 [GeV] -Cell[4,0] 0.060576618786219 [GeV] -Cell[5,0] 0.00090567947242796 [GeV] -Cell[4,47] 0.0032513163824722 [GeV] -### Total energy deposition in calorimeter by a source track in 28 cells : 0.29180590849791 (GeV) +Cell[13,45] 0.0054486900588846 [GeV] +Cell[11,39] 8.1850035348907e-07 [GeV] +Cell[7,25] 1.4358721091412e-07 [GeV] +Cell[10,22] 0.00066080424716085 [GeV] +Cell[7,40] 3.0272640287876e-09 [GeV] +Cell[5,14] 1.0172714595683e-05 [GeV] +Cell[11,46] 0.0060930860574398 [GeV] +Cell[12,12] 0.0067922334804498 [GeV] +Cell[11,3] 9.8623165395111e-06 [GeV] +Cell[11,27] 0.0010217585677186 [GeV] +Cell[14,32] 1.3543842438821e-06 [GeV] +Cell[14,31] 3.4335117497903e-06 [GeV] +Cell[16,25] 2.9105683632224e-05 [GeV] +Cell[14,25] 0.0014330810056532 [GeV] +Cell[13,42] 0.0014828950911357 [GeV] +Cell[12,13] 0.0018685367075029 [GeV] +Cell[13,44] 0.0071576869911003 [GeV] +Cell[11,21] 2.2581979237657e-09 [GeV] +Cell[10,21] 4.2773826897474e-05 [GeV] +Cell[10,44] 8.3903122793117e-05 [GeV] +Cell[11,47] 0.00012712970992811 [GeV] +Cell[11,40] 0.0018557217264398 [GeV] +Cell[11,44] 0.00032215513142251 [GeV] +Cell[5,17] 4.647153269616e-06 [GeV] +Cell[5,13] 0.00023176698292446 [GeV] +Cell[5,12] 0.004813314191579 [GeV] +Cell[4,45] 7.0800044341013e-08 [GeV] +Cell[5,16] 1.0812425753102e-06 [GeV] +Cell[6,16] 7.3685116367415e-06 [GeV] +Cell[0,28] 6.1046332120895e-08 [GeV] +Cell[0,29] 1.0597461368889e-07 [GeV] +Cell[5,37] 7.2100335238474e-06 [GeV] +Cell[4,16] 9.3016686150804e-08 [GeV] +Cell[4,44] 1.597333198049e-05 [GeV] +Cell[3,23] 8.8354485342279e-08 [GeV] +Cell[5,11] 0.0029593012380958 [GeV] +Cell[11,12] 0.00051782214714694 [GeV] +Cell[12,45] 0.81894956623423 [GeV] +Cell[12,44] 0.34428747884765 [GeV] +Cell[12,46] 0.0052646026316145 [GeV] +Cell[13,46] 0.0079313037519888 [GeV] +Cell[12,43] 0.006364048376771 [GeV] +Cell[13,47] 0.0017774363167963 [GeV] +Cell[14,45] 9.4867104198784e-06 [GeV] +Cell[11,45] 0.0009768551994274 [GeV] +Cell[9,19] 2.4273669609101e-05 [GeV] +Cell[15,10] 3.0386581784114e-08 [GeV] +Cell[16,10] 2.0632025552914e-08 [GeV] +Cell[16,16] 2.6063469704241e-08 [GeV] +Cell[19,8] 8.1640988355502e-08 [GeV] +Cell[19,9] 4.3837702833116e-08 [GeV] +Cell[13,43] 1.0808540457333e-05 [GeV] +Cell[11,41] 6.9660780973209e-05 [GeV] +Cell[16,26] 0.0021912907948051 [GeV] +Cell[15,15] 1.8202671781182e-06 [GeV] +Cell[14,36] 1.0186531289946e-06 [GeV] +Cell[3,8] 7.356413064872e-05 [GeV] +Cell[2,8] 8.4525622841056e-06 [GeV] +Cell[18,29] 0.0017143712790369 [GeV] +Cell[18,28] 0.0059543004003535 [GeV] +Cell[17,28] 1.0941975006062e-09 [GeV] +Cell[11,4] 1.3251480035251e-05 [GeV] +Cell[12,1] 0.0035572466693396 [GeV] +Cell[11,1] 0.0050683962698856 [GeV] +Cell[11,0] 0.00035541923549033 [GeV] +Cell[12,0] 8.4640069699958e-05 [GeV] +Cell[12,4] 0.00014531291832407 [GeV] +Cell[12,3] 0.00093826085485273 [GeV] +Cell[10,40] 4.0280813118443e-07 [GeV] +Cell[4,15] 4.8491696361452e-08 [GeV] +Cell[12,41] 0.00054335052632279 [GeV] +### Total energy deposition in calorimeter by a source track in 71 cells : 1.2493211278593 (GeV) -Source track ID 5052 (pi+,0.53363694624722[GeV]) at (106.61938679457,488.50005768633,297.33633557131) +Source track ID 5506 (gamma,0.23378010273678[GeV]) at (499.39194006361,24.651373176822,861.27115521905) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[9,35] 2.022949502134e-09 [GeV] -Cell[12,44] 0.00038846083486771 [GeV] -Cell[9,26] 0.00095534631978285 [GeV] -Cell[9,25] 0.00059502999399399 [GeV] -Cell[8,27] 2.0178512932034e-07 [GeV] -Cell[11,14] 9.9366380634706e-05 [GeV] -Cell[12,38] 1.2113791774027e-05 [GeV] -Cell[13,38] 0.0022277160550918 [GeV] -Cell[13,37] 1.7513585422421e-05 [GeV] -Cell[12,37] 0.00071505870891896 [GeV] -Cell[12,31] 0.0024743294693392 [GeV] -Cell[11,26] 5.3544477268588e-06 [GeV] -Cell[12,30] 8.3750846912153e-05 [GeV] -Cell[17,2] 7.6331384482273e-06 [GeV] -Cell[17,3] 1.1688154111425e-05 [GeV] -Cell[11,25] 2.6381303090602e-05 [GeV] -Cell[12,25] 0.00038230950396804 [GeV] -Cell[6,45] 0.0013700689809863 [GeV] -Cell[8,26] 1.1115085168285e-06 [GeV] -Cell[12,20] 0.0015754227642295 [GeV] -Cell[11,11] 0.0020328028687831 [GeV] -Cell[11,10] 0.20511952021347 [GeV] -Cell[9,32] 1.4031248312676e-05 [GeV] -Cell[9,33] 0.0012818710272792 [GeV] -Cell[9,34] 1.374616999783e-08 [GeV] -Cell[9,27] 0.00069108877337044 [GeV] -Cell[7,30] 0.0022790196457699 [GeV] -Cell[11,12] 9.0407510006116e-05 [GeV] -Cell[11,13] 0.00062580708315591 [GeV] -Cell[9,31] 9.0667579685032e-05 [GeV] -Cell[14,0] 1.2376374663063e-05 [GeV] -Cell[13,39] 0.0026082029036836 [GeV] -Cell[13,5] 9.99387606862e-06 [GeV] -Cell[10,30] 1.0446957079694e-05 [GeV] -Cell[12,26] 0.00092125615248818 [GeV] -Cell[12,36] 0.0037959249240099 [GeV] -Cell[10,4] 7.4561103247106e-10 [GeV] -Cell[10,3] 9.5760559929658e-08 [GeV] -Cell[14,3] 5.5627391748203e-05 [GeV] -Cell[10,12] 3.5154702200089e-06 [GeV] -Cell[12,40] 0.0083220542789065 [GeV] -Cell[10,11] 1.159799928223e-05 [GeV] -Cell[12,45] 0.00027946735246906 [GeV] -Cell[10,0] 9.9586897010795e-07 [GeV] -Cell[12,4] 1.842535394826e-05 [GeV] -Cell[15,19] 2.6854340161663e-05 [GeV] -Cell[16,16] 9.4215183344204e-06 [GeV] -Cell[12,46] 2.0615954999812e-06 [GeV] -Cell[13,4] 0.00038591956711252 [GeV] -Cell[16,38] 0.00051981608591768 [GeV] -Cell[16,40] 2.7433270588517e-10 [GeV] -Cell[16,39] 2.4358230803045e-08 [GeV] -Cell[11,9] 0.11302843510109 [GeV] -Cell[12,39] 6.5522367658559e-06 [GeV] -Cell[12,41] 0.00045648340613045 [GeV] -Cell[10,8] 0.0012640769209389 [GeV] -Cell[8,42] 0.001754098021725 [GeV] -Cell[8,43] 2.5181774719385e-05 [GeV] -Cell[12,0] 0.0015106757351914 [GeV] -Cell[12,47] 2.305569149712e-07 [GeV] -Cell[13,47] 0.0002027082411347 [GeV] -Cell[11,8] 0.0042933394038088 [GeV] -Cell[12,3] 1.2116999569116e-05 [GeV] -Cell[12,6] 2.8514417645056e-06 [GeV] -Cell[11,6] 0.00010429399584018 [GeV] -Cell[11,5] 3.6409500553646e-05 [GeV] -Cell[14,2] 0.00021554448860695 [GeV] -Cell[14,24] 0.0011587195135562 [GeV] -Cell[13,0] 0.0015553030327225 [GeV] -Cell[13,1] 8.7436311639522e-07 [GeV] -Cell[14,1] 1.1902410733455e-08 [GeV] -Cell[17,1] 0.001771021236089 [GeV] -Cell[17,4] 3.1078202679055e-05 [GeV] -Cell[16,2] 6.0009803064531e-09 [GeV] -Cell[11,7] 0.0013431508931773 [GeV] -Cell[10,7] 3.2812131394166e-09 [GeV] -### Total energy deposition in calorimeter by a source track in 76 cells : 0.3689413346919 (GeV) +Cell[15,47] 0.0041321889628808 [GeV] +Cell[14,47] 0.0020749362335219 [GeV] +Cell[14,0] 0.22538151738933 [GeV] +Cell[14,1] 0.0011279043008123 [GeV] +Cell[14,30] 0.0004035008710929 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.23312004775764 (GeV) -Source track ID 5053 (kaon-,1.5177085823076[GeV]) at (463.07002218778,-188.58991105309,441.72211043707) +Source track ID 5507 (gamma,0.24889356279397[GeV]) at (220.29243536031,-448.8554811106,830.38547526771) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[12,44] 0.17799517903297 [GeV] -Cell[13,28] 0.0033540154196515 [GeV] -Cell[11,32] 0.00066731983600198 [GeV] -Cell[11,42] 0.0011336230540853 [GeV] -Cell[10,45] 1.233854213956e-05 [GeV] -Cell[14,19] 0.00051099891 [GeV] -Cell[14,29] 3.4401758864533e-07 [GeV] -Cell[11,31] 0.0012165367338735 [GeV] -Cell[12,32] 5.3356925491244e-09 [GeV] -Cell[13,32] 0.0094222772936066 [GeV] -Cell[12,31] 1.8433365767123e-10 [GeV] -Cell[14,20] 0.003327133664727 [GeV] -Cell[14,46] 0.0031092349362416 [GeV] -Cell[14,28] 1.1582399110921e-09 [GeV] -Cell[11,43] 0.019582058027654 [GeV] -Cell[15,43] 3.3408823167065e-06 [GeV] -Cell[12,43] 0.0029320881955531 [GeV] -Cell[15,41] 5.24645764051e-06 [GeV] -Cell[12,23] 6.9831672590226e-08 [GeV] -Cell[13,43] 0.005358726845665 [GeV] -Cell[13,42] 0.015908370024208 [GeV] -Cell[12,20] 0.0027285460618273 [GeV] -Cell[12,19] 0.00035548525696277 [GeV] -Cell[9,34] 0.00073734303397449 [GeV] -Cell[12,11] 3.4407653098469e-06 [GeV] -Cell[12,10] 0.00098189460636888 [GeV] -Cell[11,46] 0.00222153214951 [GeV] -Cell[11,44] 0.011843719843708 [GeV] -Cell[10,18] 6.4828672418571e-06 [GeV] -Cell[11,1] 0.00045912776836053 [GeV] -Cell[13,14] 0.0001528413647211 [GeV] -Cell[11,0] 4.3630218335352e-05 [GeV] -Cell[10,44] 1.9892800999514e-05 [GeV] -Cell[17,22] 5.7553791782539e-07 [GeV] -Cell[16,21] 7.6140667933942e-06 [GeV] -Cell[14,21] 0.00088978069240818 [GeV] -Cell[12,45] 0.3857255650529 [GeV] -Cell[12,42] 0.003620757693774 [GeV] -Cell[12,4] 9.7274273684889e-09 [GeV] -Cell[16,16] 0.00071702081547994 [GeV] -Cell[12,46] 0.022469060806748 [GeV] -Cell[12,41] 0.00097313111995254 [GeV] -Cell[12,0] 0.0012951227480224 [GeV] -Cell[12,47] 0.0087550694322792 [GeV] -Cell[13,47] 0.00029160891565584 [GeV] -Cell[12,6] 0.0026884482342255 [GeV] -Cell[13,0] 6.8711329163307e-08 [GeV] -Cell[11,7] 0.0016228068140559 [GeV] -Cell[13,46] 0.007860031645316 [GeV] -Cell[16,17] 2.8148808632977e-07 [GeV] -Cell[11,45] 0.0064507199602341 [GeV] -Cell[13,45] 0.0045321893005823 [GeV] -Cell[11,47] 4.8362380766775e-12 [GeV] -Cell[15,14] 0.00078680662333697 [GeV] -Cell[12,1] 0.00073187686493918 [GeV] -Cell[12,5] 0.00385458349672 [GeV] -Cell[15,29] 7.0454552769661e-10 [GeV] -Cell[14,16] 2.5767136656214e-05 [GeV] -Cell[14,15] 0.00016823582134566 [GeV] -Cell[13,44] 0.025426142230563 [GeV] -Cell[14,14] 0.00018573980245844 [GeV] -Cell[13,15] 0.0020863293778383 [GeV] -Cell[15,44] 3.4349475754425e-08 [GeV] -Cell[16,43] 1.1213825507639e-06 [GeV] -Cell[16,29] 0.003066313095206 [GeV] -Cell[13,33] 0.00074690581699484 [GeV] -Cell[17,19] 0.0053389214804447 [GeV] -Cell[17,20] 0.001418413994346 [GeV] -Cell[16,20] 7.5276565542026e-07 [GeV] -Cell[17,21] 7.8572188069757e-06 [GeV] -Cell[18,21] 0.0014453149273603 [GeV] -Cell[17,14] 0.0015895589459431 [GeV] -Cell[18,13] 1.0441622355415e-05 [GeV] -Cell[17,13] 3.5574043283759e-07 [GeV] -Cell[17,12] 1.7055583612091e-09 [GeV] -Cell[10,43] 5.1418026487227e-08 [GeV] -Cell[12,7] 0.00023531404930679 [GeV] -Cell[13,7] 0.0058587114006354 [GeV] -Cell[14,41] 0.0010965620828372 [GeV] -Cell[14,42] 0.0011426277862705 [GeV] -Cell[13,41] 0.00059884585872646 [GeV] -### Total energy deposition in calorimeter by a source track in 81 cells : 0.76781629558854 (GeV) +Cell[16,30] 0.00054403007262194 [GeV] +Cell[16,25] 0.00042104469792898 [GeV] +Cell[13,37] 0.00023496232581955 [GeV] +Cell[14,39] 0.24272447341488 [GeV] +Cell[14,38] 0.0049690522827107 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.24889356279396 (GeV) -Source track ID 5288 (gamma,0.23378010273678[GeV]) at (499.39193936304,24.651387369047,861.27114007087) +Source track ID 5503 (mu+,0.3593504163683[GeV]) at (52.252278051887,497.26220391096,352.61721160144) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[14,0] 0.18724651047874 [GeV] -Cell[14,47] 0.018475990918429 [GeV] -Cell[15,1] 0.0010024899393444 [GeV] -Cell[13,0] 0.00039382283853241 [GeV] -Cell[14,1] 0.0022423589621944 [GeV] -Cell[15,47] 0.012749590330522 [GeV] -Cell[15,0] 0.0035826622687028 [GeV] -### Total energy deposition in calorimeter by a source track in 7 cells : 0.22569342573647 (GeV) +Cell[11,11] 0.055863564249689 [GeV] +Cell[11,10] 0.045586834200035 [GeV] +Cell[12,10] 0.17918326859703 [GeV] +Cell[12,9] 0.0018943060716538 [GeV] +Cell[10,12] 0.00031286407613518 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.28284083719454 (GeV) -Source track ID 5289 (gamma,0.24889356279397[GeV]) at (220.29242369872,-448.85548683395,830.3854601996) +Source track ID 5382 (pi-,1.1892085327533[GeV]) at (43.69702889716,-498.08690975126,1039.4238324622) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[14,39] 0.24318398928285 [GeV] -Cell[14,38] 0.0031416908556187 [GeV] -Cell[14,40] 0.0025678826554992 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.24889356279396 (GeV) +Cell[15,36] 0.30700743055659 [GeV] +Cell[14,12] 7.4306797159807e-10 [GeV] +Cell[12,36] 0.0088592778844872 [GeV] +Cell[10,22] 1.7602652078494e-06 [GeV] +Cell[9,12] 0.00013572881514006 [GeV] +Cell[13,36] 0.0072525610828955 [GeV] +Cell[11,36] 0.00086398683487869 [GeV] +Cell[15,29] 5.5187265097629e-06 [GeV] +Cell[12,38] 0.0058330943746997 [GeV] +Cell[16,43] 0.00033808443328689 [GeV] +Cell[16,44] 0.0031215404974212 [GeV] +Cell[11,2] 4.2860646544796e-08 [GeV] +Cell[10,9] 2.0105776493438e-06 [GeV] +Cell[14,32] 1.1085686855949e-07 [GeV] +Cell[16,9] 2.0416337065399e-10 [GeV] +Cell[14,13] 0.0022258398352883 [GeV] +Cell[15,9] 1.7537441749482e-08 [GeV] +Cell[13,37] 0.0037612472263429 [GeV] +Cell[13,41] 0.00010674763563782 [GeV] +Cell[15,45] 0.0039847089458558 [GeV] +Cell[13,15] 0.0025771749854524 [GeV] +Cell[15,46] 0.0088507256306032 [GeV] +Cell[16,8] 2.4222108215326e-05 [GeV] +Cell[11,22] 0.0028013723908012 [GeV] +Cell[12,9] 2.4963275092887e-05 [GeV] +Cell[9,1] 2.4120808229782e-06 [GeV] +Cell[16,47] 7.2976142746484e-09 [GeV] +Cell[16,1] 0.0023995817020319 [GeV] +Cell[9,13] 0.0015433599111557 [GeV] +Cell[15,2] 0.0012608639288626 [GeV] +Cell[9,2] 1.2180614692625e-05 [GeV] +Cell[11,9] 0.0018739855515452 [GeV] +Cell[15,17] 0.00038337807967264 [GeV] +Cell[15,18] 7.0381288995122e-05 [GeV] +Cell[12,39] 0.00081658730979166 [GeV] +Cell[4,6] 3.0516182971496e-07 [GeV] +Cell[4,7] 0.00019553044930262 [GeV] +Cell[14,24] 9.6119895624724e-07 [GeV] +Cell[14,23] 5.3205917993182e-08 [GeV] +Cell[13,34] 0.0022374614970616 [GeV] +Cell[13,35] 0.0024536303318537 [GeV] +Cell[12,35] 0.0023313996152149 [GeV] +Cell[14,35] 0.0016875511585318 [GeV] +Cell[14,34] 1.2703184358998e-07 [GeV] +Cell[18,18] 0.0012915726696799 [GeV] +Cell[4,8] 0.0023423093695584 [GeV] +Cell[11,35] 5.1124281344983e-05 [GeV] +Cell[15,0] 1.4908939629095e-05 [GeV] +Cell[15,47] 2.9054427248411e-05 [GeV] +Cell[14,47] 6.3663493941363e-05 [GeV] +Cell[12,15] 7.9414108313358e-08 [GeV] +Cell[11,12] 0.00071798612433765 [GeV] +Cell[15,10] 7.8320026466372e-07 [GeV] +Cell[16,10] 0.0017048087309912 [GeV] +Cell[14,36] 0.00052564282587241 [GeV] +Cell[11,1] 1.5867293346673e-05 [GeV] +Cell[11,0] 0.00075840148798818 [GeV] +Cell[12,41] 0.000481989922813 [GeV] +Cell[14,0] 5.155461611821e-07 [GeV] +Cell[14,1] 8.5011661212775e-09 [GeV] +Cell[16,5] 0.00037589770199315 [GeV] +Cell[16,27] 6.2814622651786e-08 [GeV] +Cell[15,22] 3.288072172495e-06 [GeV] +Cell[15,21] 1.9464049501039e-09 [GeV] +Cell[15,37] 0.00070888562049549 [GeV] +Cell[15,35] 0.0010443659187326 [GeV] +Cell[15,34] 0.00096655703245426 [GeV] +Cell[18,7] 0.0011051958718535 [GeV] +Cell[18,6] 0.0012854563893027 [GeV] +Cell[15,38] 2.6134203013498e-05 [GeV] +Cell[13,22] 1.6895858891075e-05 [GeV] +Cell[16,7] 0.00036749735630497 [GeV] +Cell[17,7] 0.00020402006570748 [GeV] +Cell[17,8] 0.00071881852276442 [GeV] +Cell[18,19] 0.0014103369907689 [GeV] +Cell[14,2] 6.6817102510868e-06 [GeV] +Cell[15,1] 4.4117836068835e-09 [GeV] +Cell[14,4] 0.00012804032943177 [GeV] +Cell[14,5] 6.8801705367491e-05 [GeV] +Cell[13,4] 0.004103946561949 [GeV] +Cell[13,5] 0.00016435711860731 [GeV] +Cell[14,6] 9.0658039084701e-08 [GeV] +Cell[14,3] 0.0016709811800852 [GeV] +Cell[12,42] 7.4281572562995e-07 [GeV] +Cell[14,37] 7.2318839130276e-05 [GeV] +Cell[17,13] 0.0022056818153775 [GeV] +Cell[17,12] 0.0010518205015668 [GeV] +Cell[12,37] 0.0063443042224483 [GeV] +Cell[13,38] 6.2370505770559e-07 [GeV] +Cell[11,37] 0.0055205277943906 [GeV] +Cell[12,40] 1.8788792772284e-08 [GeV] +Cell[11,38] 0.0003302752238269 [GeV] +Cell[16,45] 0.16924236192021 [GeV] +Cell[13,11] 9.6409321413375e-06 [GeV] +Cell[17,32] 0.00010228790179701 [GeV] +Cell[15,40] 8.0135826719925e-06 [GeV] +Cell[15,23] 0.00078102665583685 [GeV] +Cell[15,24] 3.4552853321657e-08 [GeV] +Cell[15,44] 0.0013584119730884 [GeV] +Cell[15,43] 4.3863325715847e-05 [GeV] +Cell[17,45] 0.0018878365281643 [GeV] +Cell[17,46] 0.00075055642854647 [GeV] +Cell[17,44] 7.1337809167744e-06 [GeV] +Cell[16,46] 0.0011542322811002 [GeV] +Cell[10,14] 0.00013123118343228 [GeV] +Cell[13,13] 0.00011849330555776 [GeV] +Cell[13,12] 0.00013435016099015 [GeV] +Cell[13,14] 0.069293923541686 [GeV] +Cell[14,14] 5.1861633164663e-07 [GeV] +Cell[12,14] 0.0027068511597995 [GeV] +### Total energy deposition in calorimeter by a source track in 110 cells : 0.66068004150655 (GeV) -Source track ID 5286 (gamma,0.22561171295698[GeV]) at (-34.957098554867,498.77650431894,19.976566823641) +Source track ID 5483 (gamma,1.5351207931195[GeV]) at (395.55062852082,-305.84260703307,318.34458581029) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[9,12] 0.0092693962795789 [GeV] -Cell[10,24] 0.00017554030196162 [GeV] -Cell[10,13] 0.0011202921896074 [GeV] -Cell[9,21] 0.0028000443928229 [GeV] -Cell[10,12] 0.20919974703544 [GeV] -Cell[10,11] 0.0027112341495249 [GeV] -### Total energy deposition in calorimeter by a source track in 6 cells : 0.22527625434894 (GeV) +Cell[11,43] 0.30374930475095 [GeV] +Cell[13,32] 0.00054945321970327 [GeV] +Cell[10,24] 0.00073160645838831 [GeV] +Cell[12,27] 0.0014869990511581 [GeV] +Cell[11,40] 0.00215204391065 [GeV] +Cell[11,44] 0.0012554366208575 [GeV] +Cell[3,19] 0.00034361992471328 [GeV] +Cell[12,44] 0.001843879501663 [GeV] +Cell[12,43] 0.061718797481161 [GeV] +Cell[11,41] 0.0031174556849207 [GeV] +Cell[12,41] 0.0052198220377987 [GeV] +Cell[13,4] 0.0011246125127446 [GeV] +Cell[12,42] 0.034640259905904 [GeV] +Cell[13,38] 0.0003186447917138 [GeV] +Cell[12,40] 0.0036833843715068 [GeV] +Cell[11,42] 1.1131854513165 [GeV] +### Total energy deposition in calorimeter by a source track in 16 cells : 1.5351207715403 (GeV) -Source track ID 5287 (gamma,0.078972048414542[GeV]) at (304.87609364982,396.29606044071,-490.01415387392) +Source track ID 5484 (gamma,0.1244455075516[GeV]) at (447.26695214172,-223.50005262159,557.85456199776) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[7,7] 0.036368280898118 [GeV] -Cell[7,6] 0.035542207977088 [GeV] -Cell[6,6] 0.0028983419431211 [GeV] -Cell[8,34] 5.4941959143231e-05 [GeV] -Cell[9,34] 0.0012695464626363 [GeV] -### Total energy deposition in calorimeter by a source track in 5 cells : 0.076133319240107 (GeV) +Cell[13,45] 0.0043333276454552 [GeV] +Cell[11,32] 0.0022984599966264 [GeV] +Cell[13,44] 0.036091845843217 [GeV] +Cell[12,44] 0.071701926040184 [GeV] +Cell[12,43] 0.0097168523026127 [GeV] +Cell[12,42] 0.0003030957235046 [GeV] +### Total energy deposition in calorimeter by a source track in 6 cells : 0.1244455075516 (GeV) -Source track ID 5251 (pi+,0.38304325844914[GeV]) at (386.88472084318,-316.7336622118,1990.5021596691) +Source track ID 5440 (pi+,0.37489692457095[GeV]) at (186.2729391962,464.00688801268,1262.5748247069) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[19,42] 0.012025207017793 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.012025207017793 (GeV) +Cell[16,6] 0.00082948714757021 [GeV] +Cell[16,9] 0.010900818970838 [GeV] +Cell[16,8] 0.11166537756109 [GeV] +Cell[16,7] 0.15206787957442 [GeV] +Cell[17,7] 0.00078167196886669 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.27624523522278 (GeV) -Source track ID 5055 (pi-,1.1890476459035[GeV]) at (43.544118617927,-498.10030087703,1038.0038977109) +Source track ID 5431 (pi-,0.48455037252971[GeV]) at (175.26977852209,-468.2739633343,105.35849269659) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[19,40] 0.00076989562913809 [GeV] -Cell[17,38] 0.14984828110461 [GeV] -Cell[15,36] 0.11926983117055 [GeV] -Cell[15,37] 0.16157978713999 [GeV] -Cell[18,38] 0.0097442666293401 [GeV] -Cell[16,38] 0.14337818545642 [GeV] -Cell[16,39] 0.0001039526241093 [GeV] -Cell[16,37] 0.097908257458315 [GeV] -Cell[17,40] 0.00098467832985317 [GeV] -Cell[17,39] 0.00580940123504 [GeV] -Cell[15,38] 0.0010646347149732 [GeV] -Cell[18,40] 0.11926319072208 [GeV] -Cell[17,41] 0.00022889863948217 [GeV] -Cell[18,41] 0.00010907894894137 [GeV] -Cell[18,37] 5.2608590742807e-05 [GeV] -Cell[18,39] 0.0028812204299477 [GeV] -Cell[19,41] 2.0736073236094e-07 [GeV] -Cell[17,42] 0.0074821504021985 [GeV] -Cell[17,43] 0.0001284266313213 [GeV] -Cell[17,44] 1.727490181338e-07 [GeV] -Cell[19,38] 0.073789788539946 [GeV] -Cell[19,37] 0.0067357696129556 [GeV] -Cell[19,39] 9.9137704353325e-07 [GeV] -### Total energy deposition in calorimeter by a source track in 23 cells : 0.90113367549675 (GeV) +Cell[10,37] 1.1353528115819e-05 [GeV] +Cell[11,39] 0.0098792120046821 [GeV] +Cell[9,43] 0.0015944417746155 [GeV] +Cell[10,38] 0.041639084363713 [GeV] +Cell[15,45] 0.0015042645043289 [GeV] +Cell[15,46] 0.0149781675907 [GeV] +Cell[13,44] 3.8208420097362e-05 [GeV] +Cell[10,39] 0.15124148643635 [GeV] +Cell[11,40] 0.0077773694533775 [GeV] +Cell[9,42] 0.013789164595396 [GeV] +Cell[15,47] 0.05963258575954 [GeV] +Cell[14,47] 2.3510338040069e-05 [GeV] +Cell[9,39] 0.0014698966212734 [GeV] +Cell[9,38] 2.6248694742321e-05 [GeV] +Cell[11,41] 0.00043787743595351 [GeV] +Cell[10,40] 0.017849091417967 [GeV] +Cell[14,1] 0.0002241473097323 [GeV] +Cell[15,1] 0.00044516558179305 [GeV] +Cell[11,37] 4.9631870933808e-07 [GeV] +Cell[11,38] 0.0036984440877709 [GeV] +Cell[16,45] 0.00098041545734031 [GeV] +Cell[10,41] 4.5654850868004e-05 [GeV] +Cell[9,41] 8.9645054438279e-05 [GeV] +Cell[14,46] 6.6849900147645e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 24 cells : 0.32744278149969 (GeV) -Source track ID 5224 (gamma,1.5351207931195[GeV]) at (395.55062977799,-305.84260540716,318.34459102464) +Source track ID 5396 (pi+,0.96821896876174[GeV]) at (-71.767833326383,-494.82257234249,1187.8021850416) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[13,27] 0.0051345741451327 [GeV] -Cell[11,42] 1.099668356982 [GeV] -Cell[11,41] 0.0089108096098241 [GeV] -Cell[11,43] 0.31142217880502 [GeV] -Cell[12,43] 0.017554975111655 [GeV] -Cell[13,42] 0.0074322521733833 [GeV] -Cell[13,14] 0.0025776159283878 [GeV] -Cell[12,40] 0.00087470467738655 [GeV] -Cell[12,42] 0.068413698795849 [GeV] -Cell[12,41] 0.007409925081845 [GeV] -Cell[11,45] 0.00024878652807366 [GeV] -Cell[13,41] 0.0049300152802563 [GeV] -Cell[10,41] 0.00054287842154395 [GeV] -### Total energy deposition in calorimeter by a source track in 13 cells : 1.5351207715403 (GeV) +Cell[14,11] 0.00044270397352518 [GeV] +Cell[16,32] 1.0680966079235e-07 [GeV] +Cell[19,25] 0.0013648738947791 [GeV] +Cell[16,35] 0.0010849161653518 [GeV] +Cell[15,34] 0.01786432592517 [GeV] +Cell[16,34] 0.25524596494296 [GeV] +Cell[16,33] 0.0010993309647412 [GeV] +Cell[17,35] 0.0022542685597182 [GeV] +Cell[17,34] 0.63245831841041 [GeV] +Cell[17,33] 0.029789875065589 [GeV] +Cell[19,44] 0.0026828552542742 [GeV] +Cell[18,1] 0.0028878876552948 [GeV] +### Total energy deposition in calorimeter by a source track in 12 cells : 0.94717542762147 (GeV) -Source track ID 5225 (gamma,0.1244455075516[GeV]) at (447.26693781898,-223.50008128418,557.8544861897) +Source track ID 5397 (kaon-,2.4403732143944[GeV]) at (342.03270800353,-364.71033253223,532.06364522466) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[12,44] 0.074350963332617 [GeV] -Cell[10,13] 0.00044408977167422 [GeV] -Cell[13,45] 0.0019495952781821 [GeV] -Cell[13,44] 0.047700859169127 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.1244455075516 (GeV) +Cell[13,45] 9.5767211405473e-10 [GeV] +Cell[14,10] 1.6948819393292e-08 [GeV] +Cell[11,39] 3.0456545573543e-08 [GeV] +Cell[7,25] 5.0931356410729e-05 [GeV] +Cell[11,43] 0.0018391685823591 [GeV] +Cell[12,34] 0.00028832983662107 [GeV] +Cell[7,42] 7.1724136651028e-06 [GeV] +Cell[7,24] 0.0031261072095365 [GeV] +Cell[11,36] 0.00011796267828686 [GeV] +Cell[13,32] 3.1181205841904e-05 [GeV] +Cell[9,43] 0.0034197606631161 [GeV] +Cell[2,42] 1.9953011928919e-08 [GeV] +Cell[11,30] 4.2501832250196e-05 [GeV] +Cell[4,41] 4.6543431119062e-05 [GeV] +Cell[11,46] 3.6899808743556e-06 [GeV] +Cell[10,45] 0.000735335831219 [GeV] +Cell[10,38] 1.7153361693545e-07 [GeV] +Cell[12,38] 4.5530053146194e-06 [GeV] +Cell[12,31] 0.0011123336510364 [GeV] +Cell[11,3] 5.4947362514213e-07 [GeV] +Cell[11,2] 0.0016326557775388 [GeV] +Cell[8,43] 9.8934141278733e-06 [GeV] +Cell[11,27] 1.3244031462818e-05 [GeV] +Cell[10,23] 0.0014727982458204 [GeV] +Cell[12,32] 1.7345499409203e-06 [GeV] +Cell[14,32] 2.0781008061022e-09 [GeV] +Cell[13,31] 0.002601491953308 [GeV] +Cell[14,43] 0.0028871294017491 [GeV] +Cell[14,42] 0.0022948508606109 [GeV] +Cell[13,20] 7.865845645938e-10 [GeV] +Cell[13,37] 0.00040075025580938 [GeV] +Cell[12,28] 0.00023012584081619 [GeV] +Cell[13,41] 0.063167395723151 [GeV] +Cell[13,42] 0.19585391761509 [GeV] +Cell[12,29] 0.0012889494625729 [GeV] +Cell[11,28] 0.00093445866609954 [GeV] +Cell[13,1] 0.00070395987917243 [GeV] +Cell[12,20] 0.00034136668253473 [GeV] +Cell[11,29] 0.0027243813043397 [GeV] +Cell[13,15] 0.0015022889107814 [GeV] +Cell[13,44] 0.0015351036604714 [GeV] +Cell[13,40] 0.019800477799161 [GeV] +Cell[15,11] 2.9509939777199e-06 [GeV] +Cell[12,10] 3.8335396675393e-07 [GeV] +Cell[10,44] 0.0002223114616462 [GeV] +Cell[10,13] 0.000878973652436 [GeV] +Cell[10,39] 2.3506758281314e-05 [GeV] +Cell[9,13] 6.1965931672603e-07 [GeV] +Cell[11,47] 2.1890317337466e-05 [GeV] +Cell[12,47] 0.00060849074209226 [GeV] +Cell[10,42] 0.0018976808192126 [GeV] +Cell[10,27] 0.00051099891 [GeV] +Cell[12,24] 0.0004510784391353 [GeV] +Cell[12,27] 1.0393581876997e-05 [GeV] +Cell[12,21] 0.00102199782 [GeV] +Cell[11,18] 0.0015128339184266 [GeV] +Cell[12,22] 1.8833281685602e-06 [GeV] +Cell[13,21] 5.7361933081665e-06 [GeV] +Cell[11,40] 0.001139269516239 [GeV] +Cell[9,42] 0.026255908240391 [GeV] +Cell[11,44] 1.1802857814018e-06 [GeV] +Cell[12,39] 0.001836960304498 [GeV] +Cell[14,24] 0.0001668027899043 [GeV] +Cell[14,23] 0.00046328337564273 [GeV] +Cell[3,42] 0.0045701883428948 [GeV] +Cell[3,43] 7.5273176351857e-05 [GeV] +Cell[13,35] 0.00041855027916841 [GeV] +Cell[12,35] 9.2507991939783e-07 [GeV] +Cell[13,33] 0.00064332733227388 [GeV] +Cell[14,35] 1.1718380605998e-06 [GeV] +Cell[14,34] 8.9302049309481e-06 [GeV] +Cell[14,33] 3.1646848244122e-05 [GeV] +Cell[2,43] 8.8339975263807e-09 [GeV] +Cell[10,4] 0.0065721465294942 [GeV] +Cell[4,30] 0.00037222288041159 [GeV] +Cell[8,24] 0.00070615921769001 [GeV] +Cell[4,42] 1.2879377376521e-05 [GeV] +Cell[11,8] 3.0947977393225e-08 [GeV] +Cell[12,44] 0.0016591388615251 [GeV] +Cell[12,46] 1.3254202940516e-08 [GeV] +Cell[12,43] 0.05357116630853 [GeV] +Cell[14,45] 2.0353782019811e-09 [GeV] +Cell[11,45] 0.00045126150372778 [GeV] +Cell[13,43] 0.039944913367119 [GeV] +Cell[11,41] 0.0046093150591187 [GeV] +Cell[12,4] 0.00022081723345396 [GeV] +Cell[12,3] 0.00019287239783841 [GeV] +Cell[10,40] 7.1613619695654e-07 [GeV] +Cell[12,41] 0.3787088465712 [GeV] +Cell[14,1] 0.0018528899721774 [GeV] +Cell[14,39] 0.00073842727688861 [GeV] +Cell[14,38] 1.6543309840586e-05 [GeV] +Cell[10,12] 0.0044063745980764 [GeV] +Cell[13,22] 0.00058048259001441 [GeV] +Cell[14,4] 0.0013961861636512 [GeV] +Cell[13,4] 0.0011419488336498 [GeV] +Cell[13,5] 0.00027120764552274 [GeV] +Cell[12,42] 0.14181005152813 [GeV] +Cell[14,37] 9.4506683342388e-07 [GeV] +Cell[12,37] 5.3278877749108e-07 [GeV] +Cell[13,38] 0.010094397722863 [GeV] +Cell[12,40] 0.0059750497299047 [GeV] +Cell[15,24] 1.1883483087331e-05 [GeV] +Cell[15,43] 0.00013631555619133 [GeV] +Cell[10,14] 2.2840811544143e-05 [GeV] +Cell[11,42] 0.0052482293461819 [GeV] +Cell[9,41] 0.0018103822921977 [GeV] +Cell[15,12] 8.2594542764127e-06 [GeV] +Cell[14,19] 1.2068342941348e-05 [GeV] +Cell[14,20] 0.00094343336298027 [GeV] +Cell[14,16] 0.0013444818224758 [GeV] +Cell[11,13] 2.9109800438164e-05 [GeV] +Cell[13,10] 7.9520559229422e-06 [GeV] +Cell[11,6] 3.7231791357044e-06 [GeV] +Cell[11,7] 0.00053232322456961 [GeV] +Cell[7,23] 1.3458680336953e-07 [GeV] +Cell[18,22] 0.0053598444767639 [GeV] +Cell[18,23] 0.00041093034200458 [GeV] +Cell[18,21] 0.0050008241610525 [GeV] +Cell[19,23] 0.000814139473963 [GeV] +Cell[19,22] 0.00060431812902766 [GeV] +Cell[19,21] 0.0012302939439037 [GeV] +Cell[18,20] 3.2562401582254e-05 [GeV] +Cell[19,20] 5.2856512356811e-06 [GeV] +Cell[13,0] 0.00013850576319396 [GeV] +Cell[13,39] 0.0073461736574138 [GeV] +Cell[15,20] 1.1203392932657e-06 [GeV] +Cell[14,40] 0.0013219881866171 [GeV] +Cell[13,23] 3.0778759213717e-05 [GeV] +Cell[14,9] 0.00090400160902343 [GeV] +Cell[16,13] 0.00051099891 [GeV] +Cell[17,20] 0.0042058086868138 [GeV] +Cell[10,43] 0.002489721928165 [GeV] +Cell[8,42] 0.00023858217831003 [GeV] +Cell[14,15] 1.6849579928135e-05 [GeV] +Cell[14,44] 9.7198737194049e-08 [GeV] +Cell[14,41] 0.30072036891092 [GeV] +Cell[16,15] 3.5058828943875e-06 [GeV] +Cell[15,5] 0.001709318377305 [GeV] +Cell[13,6] 3.2584106200375e-05 [GeV] +Cell[15,25] 2.8911730720438e-06 [GeV] +Cell[15,42] 0.00018601090999198 [GeV] +Cell[15,41] 5.1244140877316e-09 [GeV] +### Total energy deposition in calorimeter by a source track in 143 cells : 1.351744680385 (GeV) -Source track ID 5205 (pi+,0.37519963223636[GeV]) at (181.97631690844,465.70872880422,1249.1745331213) +Source track ID 5395 (kaon0L,0.85324689363199[GeV]) at (443.61976117133,-230.65451978727,564.59737040268) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[9,30] 9.4858080501581e-10 [GeV] -Cell[9,46] 7.6023336459457e-05 [GeV] -Cell[13,29] 1.7989584011957e-05 [GeV] -Cell[9,47] 6.513502177404e-05 [GeV] -Cell[13,31] 0.00053685923732155 [GeV] -Cell[15,30] 0.00062156600015282 [GeV] -Cell[13,26] 0.0012788874303817 [GeV] -Cell[14,8] 3.8887148839422e-06 [GeV] -Cell[12,29] 1.552520529367e-05 [GeV] -Cell[16,13] 1.062423386611e-05 [GeV] -Cell[16,7] 0.0014217972059285 [GeV] -Cell[12,19] 1.5463304676814e-05 [GeV] -Cell[11,10] 4.593502584612e-06 [GeV] -Cell[9,32] 0.0011433806388673 [GeV] -Cell[9,31] 4.6740352672714e-09 [GeV] -Cell[11,46] 7.073567743646e-06 [GeV] -Cell[11,0] 6.2624749261886e-09 [GeV] -Cell[15,5] 9.4014359929133e-06 [GeV] -Cell[16,8] 0.116823809194 [GeV] -Cell[16,9] 0.02458953215479 [GeV] -Cell[15,8] 2.3724199563731e-06 [GeV] -Cell[9,45] 8.5183183955451e-09 [GeV] -Cell[18,43] 4.2367128189653e-06 [GeV] -Cell[10,0] 0.00031272284645672 [GeV] -Cell[10,47] 0.00025212165152197 [GeV] -Cell[17,14] 1.743903697934e-05 [GeV] -Cell[15,13] 5.0169150053989e-06 [GeV] -Cell[16,6] 2.0810959016671e-05 [GeV] -Cell[15,4] 9.9999442172702e-06 [GeV] -Cell[15,6] 0.00088397703851808 [GeV] -Cell[15,46] 1.3838313607948e-05 [GeV] -Cell[16,46] 0.00044779258142864 [GeV] -Cell[16,45] 0.0006566704368455 [GeV] -Cell[17,7] 0.00084991566129458 [GeV] -Cell[15,12] 0.0012874801006979 [GeV] -Cell[15,9] 0.00019675696561592 [GeV] -Cell[14,9] 2.760162926279e-06 [GeV] -Cell[15,10] 1.3000152855852e-05 [GeV] -Cell[15,11] 5.5851288891517e-07 [GeV] -Cell[10,46] 0.00086910891874652 [GeV] -Cell[16,11] 0.00016079831745117 [GeV] -Cell[16,10] 0.0017645450087439 [GeV] -### Total energy deposition in calorimeter by a source track in 42 cells : 0.15441349282973 (GeV) +Cell[13,45] 0.0073871420163715 [GeV] +Cell[12,34] 1.4120640873443e-05 [GeV] +Cell[16,43] 1.2606694363058e-06 [GeV] +Cell[10,6] 1.01190933201e-05 [GeV] +Cell[17,14] 9.7706067861054e-06 [GeV] +Cell[14,43] 0.0057232168813761 [GeV] +Cell[14,42] 0.0062385638297106 [GeV] +Cell[13,20] 0.0032128323445604 [GeV] +Cell[13,41] 3.1451344713901e-05 [GeV] +Cell[13,42] 0.016829743126535 [GeV] +Cell[15,45] 0.0040755037211017 [GeV] +Cell[13,1] 0.00017722536746939 [GeV] +Cell[15,46] 0.01183347944419 [GeV] +Cell[13,44] 0.23478472782063 [GeV] +Cell[17,41] 0.00052410884751044 [GeV] +Cell[13,21] 0.0012315812136345 [GeV] +Cell[13,19] 0.0059013170635244 [GeV] +Cell[10,5] 0.0012097898689412 [GeV] +Cell[11,40] 3.420491295401e-06 [GeV] +Cell[13,34] 0.00102131116152 [GeV] +Cell[10,4] 8.7896778859431e-07 [GeV] +Cell[15,47] 0.000234096918879 [GeV] +Cell[14,47] 3.5561759295888e-07 [GeV] +Cell[12,18] 0.00054303771928585 [GeV] +Cell[12,8] 5.6731068854788e-05 [GeV] +Cell[12,45] 1.1302355705993e-05 [GeV] +Cell[12,44] 0.00034320082635566 [GeV] +Cell[13,46] 0.0022719704483397 [GeV] +Cell[12,43] 0.0010855432508973 [GeV] +Cell[13,47] 0.0011216139045998 [GeV] +Cell[14,45] 0.0033301907682132 [GeV] +Cell[13,43] 0.013470216943454 [GeV] +Cell[12,1] 7.2787333371025e-06 [GeV] +Cell[12,0] 0.00042892292692306 [GeV] +Cell[14,0] 0.00087400394572899 [GeV] +Cell[12,42] 0.0019394307530983 [GeV] +Cell[17,13] 1.1709816113466e-05 [GeV] +Cell[15,44] 1.7171259969473e-12 [GeV] +Cell[15,43] 0.010381974716145 [GeV] +Cell[10,41] 0.0011688341289474 [GeV] +Cell[14,46] 0.0052860063057389 [GeV] +Cell[14,19] 0.0079227231686475 [GeV] +Cell[18,23] 4.3764200818259e-06 [GeV] +Cell[18,21] 3.0459430417977e-06 [GeV] +Cell[13,0] 0.0065147641045617 [GeV] +Cell[15,20] 0.00036376017249086 [GeV] +Cell[17,20] 7.7747794566676e-06 [GeV] +Cell[14,44] 0.05088266979284 [GeV] +Cell[14,41] 0.00032575677205386 [GeV] +Cell[15,42] 0.0010337217471302 [GeV] +Cell[17,15] 6.9796156987877e-05 [GeV] +Cell[18,5] 2.4863916041795e-06 [GeV] +Cell[17,19] 4.2620998574421e-06 [GeV] +Cell[17,31] 0.00037718298891025 [GeV] +Cell[17,30] 2.429355460049e-05 [GeV] +Cell[6,38] 0.00069755183770292 [GeV] +Cell[6,39] 6.4219921114272e-10 [GeV] +Cell[14,21] 5.3469013235599e-05 [GeV] +Cell[10,7] 0.00041468377658612 [GeV] +Cell[15,19] 0.00060832101650192 [GeV] +Cell[17,42] 0.014110872836972 [GeV] +Cell[18,42] 0.0012857507227712 [GeV] +### Total energy deposition in calorimeter by a source track in 62 cells : 0.42749524960945 (GeV) -Source track ID 5109 (e-,0.0026621241157195[GeV]) at (367.17404100397,339.38654011734,1797.613878582) +Source track ID 5387 (pi+,4.2124280109062[GeV]) at (194.27063136056,-460.71566262801,515.72293170133) Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[18,5] 0.0021511252057195 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0021511252057195 (GeV) +Cell[15,36] 0.00080844415684851 [GeV] +Cell[11,39] 0.00032008751842795 [GeV] +Cell[13,36] 0.0016914574501191 [GeV] +Cell[12,38] 0.11887406583379 [GeV] +Cell[14,32] 0.0010856909424826 [GeV] +Cell[15,32] 0.0096631781383318 [GeV] +Cell[15,31] 6.120404468561e-06 [GeV] +Cell[14,31] 1.5166820328432e-06 [GeV] +Cell[16,41] 6.5709959559399e-06 [GeV] +Cell[13,37] 0.0097793473901196 [GeV] +Cell[13,41] 0.0064753748645571 [GeV] +Cell[19,37] 0.0012793642037961 [GeV] +Cell[16,38] 2.2260984947025e-05 [GeV] +Cell[13,40] 0.028460935031269 [GeV] +Cell[16,36] 5.3983164216334e-05 [GeV] +Cell[11,40] 0.00021584359394285 [GeV] +Cell[12,39] 0.14461457645302 [GeV] +Cell[14,35] 0.012784141309049 [GeV] +Cell[14,34] 9.0113586629741e-06 [GeV] +Cell[14,33] 0.00024523917840156 [GeV] +Cell[11,41] 0.00014138255303601 [GeV] +Cell[14,36] 0.0062020023889473 [GeV] +Cell[12,41] 0.0040068371228917 [GeV] +Cell[14,39] 0.43774003789322 [GeV] +Cell[14,38] 0.63122545491158 [GeV] +Cell[15,37] 0.02496078266285 [GeV] +Cell[15,38] 0.32554410964578 [GeV] +Cell[14,37] 0.040211150209276 [GeV] +Cell[13,38] 0.29036989687683 [GeV] +Cell[12,40] 0.13834187075157 [GeV] +Cell[15,40] 0.0098660852505312 [GeV] +Cell[16,33] 3.7585648783534e-07 [GeV] +Cell[13,39] 0.098713462513982 [GeV] +Cell[14,40] 0.0064227450328055 [GeV] +Cell[14,41] 0.00043125693455329 [GeV] +Cell[15,42] 9.5896684296235e-05 [GeV] +Cell[15,41] 0.0051243133454941 [GeV] +Cell[15,39] 0.08037496996735 [GeV] +Cell[16,37] 0.0024884657521874 [GeV] +Cell[15,33] 0.0036702086352699 [GeV] +Cell[16,40] 0.0098534624058388 [GeV] +Cell[16,39] 0.00702691968998 [GeV] +Cell[17,40] 7.0424575824291e-09 [GeV] +Cell[16,42] 6.26615411079e-06 [GeV] +Cell[17,38] 0.068435493408203 [GeV] +Cell[18,38] 0.00030592423808639 [GeV] +Cell[17,37] 5.3162817446605e-05 [GeV] +Cell[18,37] 0.0060534983596325 [GeV] +Cell[17,39] 1.3785573025871e-07 [GeV] +Cell[18,39] 6.1254468164407e-13 [GeV] +Cell[19,38] 0.00094082471633749 [GeV] +Cell[18,36] 9.6457681172524e-07 [GeV] +Cell[19,36] 6.8325525717228e-09 [GeV] +### Total energy deposition in calorimeter by a source track in 53 cells : 2.5350051827412 (GeV) -Source track ID 5103 (pi-,0.47789768204683[GeV]) at (178.2606149308,-467.14361085698,105.85068041003) -Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[11,36] 0.00035402500354641 [GeV] -Cell[11,39] 0.0040625342702572 [GeV] -Cell[11,37] 0.00082651795860218 [GeV] -Cell[11,42] 0.0058905922926642 [GeV] -Cell[9,39] 1.0895484592766e-08 [GeV] -Cell[11,14] 4.4240196378155e-05 [GeV] -Cell[10,42] 1.5181324675268e-05 [GeV] -Cell[10,40] 0.0063397025943935 [GeV] -Cell[11,41] 0.0011051327431177 [GeV] -Cell[11,43] 1.8938457119361e-05 [GeV] -Cell[12,25] 0.00098498807059502 [GeV] -Cell[10,14] 0.00039301334570746 [GeV] -Cell[11,15] 2.770229493342e-05 [GeV] -Cell[13,39] 0.0016914740416512 [GeV] -Cell[10,35] 1.888723106822e-05 [GeV] -Cell[11,44] 0.00061403385251185 [GeV] -Cell[10,38] 0.060517026046795 [GeV] -Cell[10,37] 0.0017757816223606 [GeV] -Cell[10,36] 7.7377009271231e-06 [GeV] -Cell[11,40] 0.00022571685725632 [GeV] -Cell[12,42] 0.00082053483481241 [GeV] -Cell[12,39] 0.00075634424604391 [GeV] -Cell[12,41] 0.00013421882094025 [GeV] -Cell[11,45] 4.295824021483e-08 [GeV] -Cell[10,41] 0.0025128092530687 [GeV] -Cell[10,39] 0.18981622586933 [GeV] -Cell[9,40] 5.5821862702032e-08 [GeV] -Cell[11,38] 0.0025096501311036 [GeV] -Cell[10,16] 8.3401947049424e-06 [GeV] -Cell[10,15] 6.9290143146645e-06 [GeV] -### Total energy deposition in calorimeter by a source track in 30 cells : 0.28147838794447 (GeV) - -Source track ID 5073 (pi+,0.9682193827704[GeV]) at (-69.972278838961,-495.07967055221,1185.9373956184) -Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[15,32] 0.00020475277341041 [GeV] -Cell[16,32] 0.0033079544590626 [GeV] -Cell[16,31] 4.8005575081334e-08 [GeV] -Cell[15,31] 8.6273619672284e-08 [GeV] -Cell[13,31] 1.1307073611533e-05 [GeV] -Cell[18,19] 0.00020169914009966 [GeV] -Cell[14,20] 2.7817292721011e-06 [GeV] -Cell[14,46] 1.8471232701017e-05 [GeV] -Cell[17,38] 0.00036545650609378 [GeV] -Cell[12,28] 7.1382655005436e-06 [GeV] -Cell[15,35] 0.00071829032122378 [GeV] -Cell[11,23] 9.1382040409371e-08 [GeV] -Cell[10,23] 1.7203405544706e-06 [GeV] -Cell[8,25] 1.3171073514968e-06 [GeV] -Cell[10,35] 2.6511322357692e-07 [GeV] -Cell[15,33] 0.0013056373167141 [GeV] -Cell[10,4] 9.8298719967715e-07 [GeV] -Cell[10,36] 4.2667656089179e-07 [GeV] -Cell[12,34] 0.00086185374349168 [GeV] -Cell[4,2] 6.4680798891459e-07 [GeV] -Cell[16,38] 0.00029290340188504 [GeV] -Cell[16,40] 8.5350262338579e-08 [GeV] -Cell[15,14] 5.5876298574731e-08 [GeV] -Cell[15,44] 0.00030028637697251 [GeV] -Cell[18,21] 7.0085067418404e-06 [GeV] -Cell[15,38] 0.00011485588989603 [GeV] -Cell[15,46] 1.100006841375e-05 [GeV] -Cell[15,34] 0.019731028018032 [GeV] -Cell[16,34] 0.57792371801121 [GeV] -Cell[16,35] 0.010808499117359 [GeV] -Cell[15,21] 0.0001652479154734 [GeV] -Cell[12,18] 2.3794135311164e-06 [GeV] -Cell[16,33] 0.011070307035416 [GeV] -Cell[17,17] 1.7079491750337e-05 [GeV] -Cell[17,24] 0.00029836499793237 [GeV] -Cell[17,25] 0.00087686525490813 [GeV] -Cell[17,34] 0.00061799200208304 [GeV] -Cell[17,33] 8.1199922078667e-08 [GeV] -Cell[19,12] 7.829936221242e-06 [GeV] -Cell[16,36] 0.0065300257661369 [GeV] -Cell[15,26] 6.7459404526744e-06 [GeV] -Cell[15,25] 0.00033474191405605 [GeV] -Cell[17,37] 0.0001750510151852 [GeV] -Cell[17,36] 0.00014556419925418 [GeV] -Cell[18,23] 0.0025982218105213 [GeV] -Cell[13,9] 0.00064737423338329 [GeV] -Cell[13,10] 3.4148320776239e-07 [GeV] -Cell[18,18] 0.0070273057770491 [GeV] -Cell[18,17] 0.00040235279687852 [GeV] -Cell[14,44] 0.0031167159165027 [GeV] -Cell[19,5] 0.00027741206570579 [GeV] -Cell[19,6] 1.8300531635759e-05 [GeV] -Cell[15,45] 0.0024510902180696 [GeV] -Cell[14,45] 0.0022154322690103 [GeV] -Cell[17,35] 0.0014309425813316 [GeV] -Cell[16,19] 8.7235833052546e-07 [GeV] -Cell[15,27] 4.4585595605895e-07 [GeV] -Cell[10,20] 2.8300084057037e-05 [GeV] -Cell[10,19] 8.1982586648337e-06 [GeV] -Cell[18,2] 0.00018608524535421 [GeV] -Cell[18,3] 1.6111379693484e-07 [GeV] -### Total energy deposition in calorimeter by a source track in 61 cells : 0.65685819655414 (GeV) - -Source track ID 5074 (kaon-,2.4403982129046[GeV]) at (342.02368121269,-364.71879782885,532.02002581297) -Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[18,42] 2.9003351365873e-05 [GeV] -Cell[15,43] 0.132904642977 [GeV] -Cell[15,41] 0.4109164837404 [GeV] -Cell[13,42] 0.18499617595892 [GeV] -Cell[15,42] 0.50744136558256 [GeV] -Cell[18,43] 3.0450223283651e-06 [GeV] -Cell[16,40] 0.0012358294101177 [GeV] -Cell[12,41] 0.0871473537062 [GeV] -Cell[15,44] 0.0028447542367149 [GeV] -Cell[16,43] 0.0021549836650858 [GeV] -Cell[14,41] 0.24552550297798 [GeV] -Cell[14,42] 0.0056934370530103 [GeV] -Cell[13,41] 0.27086951245034 [GeV] -Cell[14,40] 0.00091049786317795 [GeV] -Cell[17,40] 0.00061363996756859 [GeV] -Cell[17,39] 0.00082380442804026 [GeV] -Cell[17,41] 0.0030815982457533 [GeV] -Cell[18,41] 0.0013264942714163 [GeV] -Cell[17,42] 0.013878471472807 [GeV] -Cell[14,44] 2.2378864514394e-08 [GeV] -Cell[15,40] 0.0070938171559727 [GeV] -Cell[15,39] 4.8246785008814e-06 [GeV] -Cell[16,42] 0.0081069762409766 [GeV] -Cell[16,41] 0.0084006915873498 [GeV] -Cell[14,43] 0.00065214968836062 [GeV] -### Total energy deposition in calorimeter by a source track in 25 cells : 1.8966550781108 (GeV) - -Source track ID 5072 (kaon0L,0.85324689363199[GeV]) at (443.61976117133,-230.65451978727,564.59737040268) -Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[12,44] 0.0010225054163811 [GeV] -Cell[11,42] 1.5717384539812e-05 [GeV] -Cell[11,41] 0.0023456174009861 [GeV] -Cell[11,43] 8.1491720038684e-09 [GeV] -Cell[12,43] 0.0086026639912648 [GeV] -Cell[13,43] 0.0027836986195628 [GeV] -Cell[13,42] 0.00030080367954884 [GeV] -Cell[11,44] 6.4028427004814e-11 [GeV] -Cell[13,40] 0.0022130504701247 [GeV] -Cell[11,40] 6.2314501758465e-07 [GeV] -Cell[12,40] 0.01663392985921 [GeV] -Cell[12,42] 0.0090731032427957 [GeV] -Cell[12,41] 0.49276965947404 [GeV] -Cell[13,45] 2.6210465080112e-08 [GeV] -Cell[13,44] 0.056234400169192 [GeV] -Cell[14,42] 1.55932239511e-06 [GeV] -Cell[13,41] 0.0054387931509376 [GeV] -Cell[14,40] 1.5629973029263e-07 [GeV] -Cell[15,38] 0.0022230681697946 [GeV] -Cell[14,44] 0.0008426618179019 [GeV] -Cell[14,45] 0.0011856125161443 [GeV] -Cell[14,43] 0.002351640581866 [GeV] -### Total energy deposition in calorimeter by a source track in 22 cells : 0.6040392991351 (GeV) - -Source track ID 5060 (pi+,4.2123924888386[GeV]) at (194.21460898788,-460.73928165036,515.84023425279) -Original primary track ID 8 (unknown,11.672977589613[GeV]) -Cell[12,38] 0.12608863009269 [GeV] -Cell[13,38] 0.32292561676938 [GeV] -Cell[13,37] 3.3305063459238e-05 [GeV] -Cell[12,37] 0.0009560645218074 [GeV] -Cell[16,32] 0.003056559057581 [GeV] -Cell[15,35] 0.0051187314427177 [GeV] -Cell[15,36] 0.18087655497497 [GeV] -Cell[14,35] 3.9313388790561e-06 [GeV] -Cell[14,36] 0.0054397658161354 [GeV] -Cell[15,37] 0.19445530302886 [GeV] -Cell[15,41] 0.00046356801782781 [GeV] -Cell[8,16] 0.0014902683541612 [GeV] -Cell[13,39] 0.028895735910235 [GeV] -Cell[14,37] 0.02429106741708 [GeV] -Cell[13,40] 0.00033554629390661 [GeV] -Cell[12,40] 0.00061878246914725 [GeV] -Cell[16,38] 0.0028597876040469 [GeV] -Cell[16,40] 0.0020044894522832 [GeV] -Cell[16,39] 0.0027240818420792 [GeV] -Cell[12,39] 0.26450538763556 [GeV] -Cell[14,41] 0.0053236906559787 [GeV] -Cell[14,39] 0.091281892446087 [GeV] -Cell[14,38] 1.0774446393515 [GeV] -Cell[14,40] 0.0061569964942728 [GeV] -Cell[16,37] 0.0017034124960499 [GeV] -Cell[15,38] 0.3409651813307 [GeV] -Cell[16,34] 0.13696615633682 [GeV] -Cell[16,35] 0.04347493753986 [GeV] -Cell[16,33] 0.05162588975313 [GeV] -Cell[17,33] 0.0037858729126856 [GeV] -Cell[16,36] 0.0034325988376618 [GeV] -Cell[17,37] 0.00034641266460096 [GeV] -Cell[15,40] 0.17793072071051 [GeV] -Cell[15,39] 0.2497868685852 [GeV] -Cell[13,36] 0.00012792757158127 [GeV] -Cell[11,17] 0.00070390232311087 [GeV] -Cell[15,23] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 37 cells : 3.3587112760225 (GeV) - -Source track ID 4214 (kaon+,2.4785972167211[GeV]) at (287.04818207333,-409.39387045777,-439.69653812739) +Source track ID 4581 (kaon+,2.481468188[GeV]) at (286.45209429133,-409.81117319579,-439.26213016397) Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[5,39] 0.81193639347233 [GeV] -Cell[5,38] 0.010217324562769 [GeV] -Cell[6,38] 0.001231136940423 [GeV] -Cell[7,37] 2.2942549549043e-10 [GeV] -Cell[4,38] 0.0011395100006511 [GeV] -Cell[6,41] 2.2150365248308e-07 [GeV] -Cell[5,40] 0.29274200652875 [GeV] -Cell[7,40] 0.21463587041297 [GeV] -Cell[7,39] 4.0136148982128e-10 [GeV] -Cell[6,37] 0.00045103387213851 [GeV] -Cell[6,39] 0.0049600312906963 [GeV] -Cell[6,40] 0.50694898086713 [GeV] -Cell[4,39] 0.0004996758074335 [GeV] -Cell[5,41] 0.00027399926481883 [GeV] -Cell[4,40] 1.1150040591019e-06 [GeV] -### Total energy deposition in calorimeter by a source track in 15 cells : 1.8450373001586 (GeV) +Cell[5,39] 0.42076736108449 [GeV] +Cell[5,41] 0.015191807711494 [GeV] +Cell[7,40] 0.23320347396633 [GeV] +Cell[3,40] 0.0013109413130641 [GeV] +Cell[8,36] 0.00066430192014194 [GeV] +Cell[7,41] 1.4956610471017e-08 [GeV] +Cell[7,38] 0.034052815772641 [GeV] +Cell[3,41] 4.378599327913e-05 [GeV] +Cell[4,41] 0.0010284338355556 [GeV] +Cell[8,38] 0.00044330187791866 [GeV] +Cell[5,38] 2.6489168319813e-05 [GeV] +Cell[4,38] 0.0012921221161276 [GeV] +Cell[8,37] 0.014016626394162 [GeV] +Cell[6,40] 0.27997384279352 [GeV] +Cell[4,39] 0.10342189709259 [GeV] +Cell[4,37] 8.3615182599033e-06 [GeV] +Cell[4,42] 0.0015172906603839 [GeV] +Cell[4,40] 0.076875928468659 [GeV] +Cell[3,39] 6.8722825452483e-05 [GeV] +Cell[6,41] 0.0016890811279321 [GeV] +Cell[6,38] 6.2920250841103e-05 [GeV] +Cell[6,39] 0.0016295370240585 [GeV] +Cell[5,40] 0.42559778596982 [GeV] +Cell[7,39] 0.00062995371177146 [GeV] +Cell[8,39] 3.8530288293259e-11 [GeV] +Cell[5,42] 0.025093093759239 [GeV] +### Total energy deposition in calorimeter by a source track in 26 cells : 1.6386098913512 (GeV) -Source track ID 4435 (gamma,0.19649521790461[GeV]) at (-493.90321058265,77.843551924069,489.46551393208) +Source track ID 4765 (gamma,0.19649521790461[GeV]) at (-493.90320247105,77.843603390679,489.46567844346) Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[11,42] 0.00079588215448651 [GeV] -Cell[17,3] 0.0022633730462098 [GeV] -Cell[11,24] 0.00021425502722368 [GeV] -Cell[12,23] 0.045096754147124 [GeV] -Cell[12,22] 0.13511206342175 [GeV] -Cell[12,21] 0.0018650172147558 [GeV] -Cell[12,19] 0.00093370390764811 [GeV] -Cell[13,17] 0.0023796192270128 [GeV] -Cell[13,7] 0.001003936722406 [GeV] -Cell[15,12] 0.00040898225383406 [GeV] -Cell[13,12] 0.0016485446429299 [GeV] -Cell[13,24] 0.0024728435190497 [GeV] -Cell[17,6] 0.0023002426201825 [GeV] -### Total energy deposition in calorimeter by a source track in 13 cells : 0.19649521790461 (GeV) +Cell[12,21] 0.002186852514269 [GeV] +Cell[12,22] 0.18556930349292 [GeV] +Cell[13,21] 0.0050764886948566 [GeV] +Cell[12,23] 0.0036625732025691 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.19649521790461 (GeV) -Source track ID 4436 (gamma,0.89164369738079[GeV]) at (-456.12361631122,204.82003476997,886.89513538746) +Source track ID 4766 (gamma,0.89164369738079[GeV]) at (-456.1236231552,204.82001952879,886.89508878122) Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[11,42] 0.0025036492132953 [GeV] -Cell[14,18] 0.00072931376875993 [GeV] -Cell[14,20] 0.80018671968659 [GeV] -Cell[11,43] 0.00051099891 [GeV] -Cell[15,20] 0.0023657122092214 [GeV] -Cell[13,21] 0.00043337322459953 [GeV] -Cell[13,43] 0.0011292300355556 [GeV] -Cell[11,0] 0.00059496893213075 [GeV] -Cell[14,21] 0.063148307734833 [GeV] -Cell[15,38] 0.0004580470090926 [GeV] -Cell[17,7] 0.00048758467084033 [GeV] -Cell[15,21] 0.0026818893437491 [GeV] -Cell[15,39] 0.0027651293673548 [GeV] -Cell[14,25] 0.00021990340718445 [GeV] -Cell[18,44] 0.0019392069738437 [GeV] -Cell[14,22] 0.00030400965172629 [GeV] -Cell[15,18] 0.00025739071360121 [GeV] -Cell[19,35] 4.2384567780118e-07 [GeV] -### Total energy deposition in calorimeter by a source track in 18 cells : 0.88071585869806 (GeV) +Cell[14,18] 0.00012824853429692 [GeV] +Cell[14,22] 0.0014590246488124 [GeV] +Cell[15,21] 0.0082837776140374 [GeV] +Cell[15,1] 0.0089616410176073 [GeV] +Cell[14,5] 0.0017295944794809 [GeV] +Cell[14,19] 0.0015352106611099 [GeV] +Cell[14,20] 0.76533943730159 [GeV] +Cell[15,20] 0.061682481711678 [GeV] +Cell[14,21] 0.029489960300939 [GeV] +Cell[15,19] 0.0040963638746638 [GeV] +### Total energy deposition in calorimeter by a source track in 10 cells : 0.88270574014422 (GeV) -Source track ID 4424 (pi-,0.85441472452876[GeV]) at (-164.94865537234,472.00841209756,870.49933504368) +Source track ID 4751 (pi-,0.85439008204664[GeV]) at (-164.24782055367,472.25274318247,873.17460375538) Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[11,31] 0.00092863480917254 [GeV] -Cell[16,31] 2.0020198689963e-09 [GeV] -Cell[12,31] 1.5361874829978e-09 [GeV] -Cell[15,30] 2.5667008012533e-06 [GeV] -Cell[16,30] 0.00049515512301571 [GeV] -Cell[7,46] 2.0478244987316e-06 [GeV] -Cell[12,30] 4.0212762542069e-10 [GeV] -Cell[12,14] 5.6921800739929e-07 [GeV] -Cell[16,15] 0.00073913558246818 [GeV] -Cell[13,14] 3.861694817715e-07 [GeV] -Cell[16,16] 1.6447078223791e-09 [GeV] -Cell[15,14] 0.041628785466555 [GeV] -Cell[14,16] 3.3139564654903e-06 [GeV] -Cell[14,15] 0.0051654630826676 [GeV] -Cell[14,14] 0.18941382755634 [GeV] -Cell[16,29] 0.00094770091059888 [GeV] -Cell[17,42] 9.8220480140299e-09 [GeV] -Cell[15,13] 0.00050762030190856 [GeV] -Cell[15,12] 5.7212340607293e-09 [GeV] -Cell[15,26] 0.001889026666203 [GeV] -Cell[15,25] 1.298474455416e-05 [GeV] -Cell[13,12] 1.6501576396877e-08 [GeV] -Cell[13,13] 0.0017310725989227 [GeV] -Cell[12,13] 8.2675554846674e-05 [GeV] -Cell[16,44] 0.0053347835301774 [GeV] -Cell[15,15] 0.41115245680388 [GeV] -Cell[15,16] 1.7539888487704e-05 [GeV] -Cell[14,13] 0.0034258328969894 [GeV] -Cell[14,12] 0.002771931758673 [GeV] -Cell[14,11] 0.00059643249871972 [GeV] -Cell[16,14] 3.866226129503e-07 [GeV] -Cell[18,16] 6.0845891573535e-07 [GeV] -### Total energy deposition in calorimeter by a source track in 32 cells : 0.66685097635486 (GeV) +Cell[11,43] 2.0930054497512e-06 [GeV] +Cell[13,36] 0.00085228226314686 [GeV] +Cell[18,44] 0.0029697339067351 [GeV] +Cell[11,46] 0.00091843209391607 [GeV] +Cell[10,46] 4.0873883322092e-06 [GeV] +Cell[12,38] 2.421091395081e-05 [GeV] +Cell[17,14] 0.00023109863513127 [GeV] +Cell[16,25] 0.0017690582375229 [GeV] +Cell[16,14] 4.4274073676206e-05 [GeV] +Cell[14,13] 1.3303844421671e-05 [GeV] +Cell[13,37] 0.0057343283089504 [GeV] +Cell[13,41] 4.1794781718636e-05 [GeV] +Cell[13,40] 0.0014379714146731 [GeV] +Cell[11,47] 0.00070327467533264 [GeV] +Cell[15,17] 0.096138595269124 [GeV] +Cell[15,18] 0.00014456880316557 [GeV] +Cell[11,44] 1.7367216059938e-08 [GeV] +Cell[10,47] 5.9858057320525e-06 [GeV] +Cell[11,45] 4.4724496603976e-07 [GeV] +Cell[16,16] 0.059366409152196 [GeV] +Cell[16,26] 0.00095444510649941 [GeV] +Cell[15,15] 0.010962509771698 [GeV] +Cell[12,0] 0.00016887921729995 [GeV] +Cell[12,41] 0.0027846453857442 [GeV] +Cell[14,38] 0.0021658791843497 [GeV] +Cell[12,42] 2.6450621546246e-05 [GeV] +Cell[13,38] 3.9503482560121e-07 [GeV] +Cell[12,40] 0.00046572686325984 [GeV] +Cell[15,24] 0.0022924414736871 [GeV] +Cell[14,14] 0.08908086462032 [GeV] +Cell[15,12] 6.549388044732e-07 [GeV] +Cell[14,16] 0.0092308191521978 [GeV] +Cell[11,6] 0.00042855764726619 [GeV] +Cell[11,7] 1.4030956663191e-10 [GeV] +Cell[13,39] 2.2988539740254e-08 [GeV] +Cell[10,43] 6.5717609913918e-09 [GeV] +Cell[14,15] 0.086872549305387 [GeV] +Cell[16,15] 0.0010398505116856 [GeV] +Cell[15,25] 4.6531192609109e-05 [GeV] +Cell[17,15] 0.00091399013337104 [GeV] +Cell[15,19] 0.00079733948067598 [GeV] +Cell[15,14] 0.008170080911707 [GeV] +Cell[15,27] 1.9643422332592e-05 [GeV] +Cell[18,45] 0.00013809125444971 [GeV] +Cell[19,45] 3.7487870373297e-05 [GeV] +Cell[18,46] 6.7346556988923e-09 [GeV] +Cell[15,13] 0.0042824506143719 [GeV] +Cell[17,16] 1.8943176088442e-05 [GeV] +Cell[15,16] 0.1822563308369 [GeV] +Cell[16,17] 0.029491072813727 [GeV] +Cell[16,18] 0.098984702823767 [GeV] +Cell[16,19] 0.0033983586761005 [GeV] +### Total energy deposition in calorimeter by a source track in 52 cells : 0.70543169566166 (GeV) -Source track ID 4387 (pi+,0.42448650027143[GeV]) at (-375.41638384355,-330.24617899656,-464.37469654383) +Source track ID 4727 (pi+,0.42538711366476[GeV]) at (-374.66190159961,-331.10188687134,-457.59952316638) Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[6,27] 0.088944355322675 [GeV] -Cell[7,28] 0.12625257567689 [GeV] -Cell[7,29] 0.070761495561535 [GeV] -Cell[6,28] 0.045344565353862 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.33130299191496 (GeV) +Cell[6,29] 2.5849025259959e-05 [GeV] +Cell[6,28] 0.052991053570216 [GeV] +Cell[6,27] 0.0013366387185174 [GeV] +Cell[7,30] 3.4677439194638e-05 [GeV] +Cell[7,27] 0.0017592879138589 [GeV] +Cell[7,28] 0.168585205131 [GeV] +Cell[7,29] 0.075390931000254 [GeV] +### Total energy deposition in calorimeter by a source track in 7 cells : 0.3001236427983 (GeV) -Source track ID 4388 (kaon-,0.64916033658279[GeV]) at (452.62237493937,-212.44525342838,327.45662591859) +Source track ID 4731 (mu-,0.54879126064184[GeV]) at (415.91931100448,-277.5087867682,316.08138682932) Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[12,44] 0.050196110791257 [GeV] -Cell[9,13] 0.0067904232609127 [GeV] -Cell[9,23] 0.00025453509463778 [GeV] -Cell[11,42] 0.0010987729371437 [GeV] -Cell[9,20] 0.0053244525810887 [GeV] -Cell[9,16] 0.010389174873335 [GeV] -Cell[12,33] 0.0010355823852068 [GeV] -Cell[11,43] 0.0054746671538853 [GeV] -Cell[11,34] 0.0011863314014922 [GeV] -Cell[12,43] 0.00010426213911574 [GeV] -Cell[10,23] 0.00039417863995364 [GeV] -Cell[13,43] 0.0036300421064431 [GeV] -Cell[11,11] 0.00039798530215079 [GeV] -Cell[10,22] 0.0019686123828856 [GeV] -Cell[11,46] 5.5005843023537e-05 [GeV] -Cell[11,44] 0.34817034826883 [GeV] -Cell[8,18] 0.021511241511919 [GeV] -Cell[10,32] 0.0012262531763515 [GeV] -Cell[10,31] 0.0027003370093981 [GeV] -Cell[11,35] 5.464007469467e-05 [GeV] -Cell[12,36] 0.020898217398269 [GeV] -Cell[12,35] 0.0040423545285261 [GeV] -Cell[12,34] 0.0048757178801338 [GeV] -Cell[12,45] 0.068464683422565 [GeV] -Cell[12,42] 0.00077321029019488 [GeV] -Cell[12,46] 0.0022283234329343 [GeV] -Cell[12,47] 5.4066367666337e-05 [GeV] -Cell[13,47] 1.8662582166371e-06 [GeV] -Cell[11,45] 0.0075427441937764 [GeV] -Cell[13,45] 0.0041992459264626 [GeV] -Cell[13,44] 7.2326632740442e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 31 cells : 0.57511571326521 (GeV) +Cell[13,45] 0.0095070473793486 [GeV] +Cell[11,43] 0.085417287240154 [GeV] +Cell[13,44] 1.0947938103527e-06 [GeV] +Cell[11,47] 0.0015998584372852 [GeV] +Cell[12,47] 7.3519932929571e-05 [GeV] +Cell[11,44] 0.062143670730649 [GeV] +Cell[12,45] 0.092551751883719 [GeV] +Cell[12,44] 0.21474714875302 [GeV] +Cell[12,46] 0.00018592785476415 [GeV] +Cell[13,46] 0.0014450312198753 [GeV] +Cell[12,43] 0.00065166170255679 [GeV] +Cell[13,47] 5.9076100797029e-08 [GeV] +### Total energy deposition in calorimeter by a source track in 12 cells : 0.46832405900421 (GeV) -Source track ID 4362 (gamma,0.062293140479318[GeV]) at (-277.09241876563,416.19681817935,226.70073622789) +Source track ID 4725 (gamma,0.062293140479318[GeV]) at (-277.09244323731,416.19680188677,226.70071969315) Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[14,8] 0.00067953830321864 [GeV] -Cell[11,16] 0.059268182179688 [GeV] -Cell[10,17] 0.00066250299876493 [GeV] -Cell[12,2] 0.0016829169976461 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.062293140479318 (GeV) +Cell[11,14] 0.00051099891 [GeV] +Cell[11,17] 0.00079244427751188 [GeV] +Cell[11,16] 0.051059241800642 [GeV] +Cell[11,15] 0.0090984943365472 [GeV] +Cell[10,15] 0.00083196115461603 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.062293140479318 (GeV) -Source track ID 4364 (e-,0.16217371365013[GeV]) at (369.02981849114,337.36774158831,300.32831810036) +Source track ID 4726 (gamma,0.18169391742921[GeV]) at (418.45379148047,273.67211110309,279.34342946172) Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[11,33] 0.00038248201246048 [GeV] -Cell[8,26] 7.7965976059785e-05 [GeV] -Cell[11,9] 0.0025050656037038 [GeV] -Cell[11,6] 0.012179351749218 [GeV] -Cell[11,5] 0.13694702713843 [GeV] -Cell[17,19] 0.0020869104332308 [GeV] -Cell[16,19] 0.0013631108123151 [GeV] -Cell[16,23] 0.00040750567069622 [GeV] -### Total energy deposition in calorimeter by a source track in 8 cells : 0.15594941939612 (GeV) +Cell[13,25] 0.00051099891 [GeV] +Cell[11,4] 0.17803834764943 [GeV] +Cell[12,4] 0.0028656992547623 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.1814150458142 (GeV) -Source track ID 4382 (gamma,0.0012950338374953[GeV]) at (440.54703898146,236.4705191872,309.15445784385) +Source track ID 4701 (e-,0.00064660422655951[GeV]) at (135.20918858213,481.37145254259,1043.7273680023) Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[11,4] 0.0012950338374953 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0012950338374953 (GeV) +Cell[15,9] 0.00013560531655951 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00013560531655951 (GeV) -Source track ID 4370 (gamma,0.0002551653748552[GeV]) at (497.70123960529,-47.890250525088,-36.184220081126) +Source track ID 4693 (kaon+,1.7502754107775[GeV]) at (76.347360158156,494.1367023374,1966.176258247) Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[9,47] 0.0002551653748552 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0002551653748552 (GeV) +Cell[19,10] 0.040545819813181 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.040545819813181 (GeV) -Source track ID 4371 (gamma,0.00028495545069759[GeV]) at (393.97256636508,307.87272849623,195.27783891098) +Source track ID 4585 (pi-,0.45648560790161[GeV]) at (-499.95373517688,-6.8016676401995,-202.02563599862) Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[10,5] 0.00028495545069759 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00028495545069759 (GeV) +Cell[8,26] 0.0025514321062958 [GeV] +Cell[9,25] 4.8861511459108e-10 [GeV] +Cell[9,26] 0.0095783756573064 [GeV] +Cell[11,27] 0.0096304031603859 [GeV] +Cell[11,28] 0.00052910446539283 [GeV] +Cell[10,26] 1.5781936286658e-05 [GeV] +Cell[10,27] 0.00019169393370976 [GeV] +Cell[12,27] 0.00043858348386542 [GeV] +Cell[8,24] 0.13544675183472 [GeV] +Cell[8,25] 0.26130719953976 [GeV] +### Total energy deposition in calorimeter by a source track in 10 cells : 0.41968932660634 (GeV) -Source track ID 4359 (e-,0.00053754781286304[GeV]) at (69.884898683901,495.09201259558,1908.7052757096) +Source track ID 4682 (gamma,0.43032370642417[GeV]) at (-193.66740455401,460.96956126551,1404.1021246164) Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[19,10] 2.252673034719e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 2.252673034719e-05 (GeV) +Cell[17,14] 0.064525348524762 [GeV] +Cell[19,9] 0.0028178222383331 [GeV] +Cell[18,6] 0.00051099891 [GeV] +Cell[17,15] 0.35687568413044 [GeV] +Cell[18,39] 0.00055503576719192 [GeV] +Cell[17,16] 0.0012218496074882 [GeV] +Cell[17,17] 0.00041636249290589 [GeV] +Cell[17,10] 0.0019770225688486 [GeV] +### Total energy deposition in calorimeter by a source track in 8 cells : 0.42890012423997 (GeV) -Source track ID 4332 (kaon+,1.7504362796579[GeV]) at (75.583744086363,494.25408205688,1964.9644878613) +Source track ID 4683 (gamma,0.84468519705162[GeV]) at (143.95465857436,478.82883818202,1448.6318657739) Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[19,10] 0.044463792394107 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.044463792394107 (GeV) +Cell[16,44] 0.0011017759412217 [GeV] +Cell[15,30] 0.0023961949637047 [GeV] +Cell[12,33] 0.00093905264216286 [GeV] +Cell[17,9] 0.79511900081119 [GeV] +Cell[14,18] 0.00033916148649623 [GeV] +Cell[11,40] 0.00047797853842206 [GeV] +Cell[13,30] 0.00051099891 [GeV] +Cell[4,25] 0.00090439306037821 [GeV] +Cell[15,37] 0.00051099891 [GeV] +Cell[18,36] 0.00055880466525254 [GeV] +Cell[16,17] 0.00051099891 [GeV] +Cell[17,10] 0.022205160989889 [GeV] +Cell[19,24] 0.0010145610224814 [GeV] +Cell[17,4] 0.0024595049746486 [GeV] +Cell[19,42] 0.00045196613791559 [GeV] +Cell[19,2] 0.00023415919665006 [GeV] +### Total energy deposition in calorimeter by a source track in 16 cells : 0.82973471116041 (GeV) -Source track ID 4218 (pi-,0.456218927893[GeV]) at (-499.99996827405,0.17811780401518,-208.379007273) +Source track ID 4591 (pi-,1.1276927405203[GeV]) at (-499.70864361686,17.066677901579,986.70156589314) Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[9,25] 0.0011274368237754 [GeV] -Cell[8,25] 0.12374223932854 [GeV] -Cell[8,26] 0.012550249797865 [GeV] -Cell[9,24] 2.182787284255e-12 [GeV] -Cell[8,22] 2.0176341217848e-07 [GeV] -Cell[7,25] 0.14609431428604 [GeV] -Cell[8,24] 0.12737253172388 [GeV] -Cell[8,23] 0.0005223183524967 [GeV] -Cell[7,23] 0.00011329700870124 [GeV] -Cell[7,22] 0.0016802661588878 [GeV] -### Total energy deposition in calorimeter by a source track in 10 cells : 0.41320285524578 (GeV) +Cell[18,26] 0.19639020585587 [GeV] +Cell[18,25] 0.014847649673087 [GeV] +Cell[19,26] 0.020697986092898 [GeV] +Cell[16,25] 0.085484586835775 [GeV] +Cell[19,25] 2.6354704459663e-08 [GeV] +Cell[14,23] 0.030355028952107 [GeV] +Cell[18,28] 0.0027040231622075 [GeV] +Cell[15,23] 0.068944794115867 [GeV] +Cell[15,24] 0.12272654363418 [GeV] +Cell[16,24] 0.13876099701701 [GeV] +Cell[17,25] 0.18480393268186 [GeV] +Cell[18,27] 0.0051191937116321 [GeV] +Cell[19,27] 0.00092058585286077 [GeV] +Cell[19,28] 0.003976803237311 [GeV] +### Total energy deposition in calorimeter by a source track in 14 cells : 0.87573235717736 (GeV) -Source track ID 4321 (gamma,0.43032370642417[GeV]) at (-193.66743139402,460.9695499892,1404.102091172) -Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[18,42] 0.00069285197976797 [GeV] -Cell[17,15] 0.31162312404217 [GeV] -Cell[15,43] 0.0010535509438606 [GeV] -Cell[15,42] 0.0015354699493966 [GeV] -Cell[18,43] 0.001137010389599 [GeV] -Cell[17,14] 0.094204881046797 [GeV] -Cell[17,13] 0.0049319318558359 [GeV] -Cell[16,37] 0.0024060627880043 [GeV] -Cell[17,42] 0.0015316308090296 [GeV] -Cell[17,34] 0.0019787572647223 [GeV] -Cell[17,37] 0.00045528859344396 [GeV] -Cell[16,14] 0.0012340583085004 [GeV] -Cell[18,15] 0.0018920547917503 [GeV] -### Total energy deposition in calorimeter by a source track in 13 cells : 0.42467667276288 (GeV) - -Source track ID 4322 (gamma,0.84468519705162[GeV]) at (143.95467317817,478.82883379154,1448.6318520357) -Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[12,37] 0.00051099891 [GeV] -Cell[16,28] 0.00028128873546602 [GeV] -Cell[14,29] 0.00048056438340245 [GeV] -Cell[15,31] 0.00051099891 [GeV] -Cell[15,30] 0.00051099891 [GeV] -Cell[17,15] 0.00057230840599379 [GeV] -Cell[12,35] 0.00051099891 [GeV] -Cell[17,9] 0.74283301901317 [GeV] -Cell[16,22] 0.00051099891 [GeV] -Cell[17,22] 2.1857653307961e-05 [GeV] -Cell[16,21] 0.0013737391327453 [GeV] -Cell[11,40] 8.1262777807368e-05 [GeV] -Cell[16,16] 0.0009478027774768 [GeV] -Cell[11,45] 0.00066370303774646 [GeV] -Cell[17,21] 1.6775844983385e-08 [GeV] -Cell[14,38] 0.001037219621431 [GeV] -Cell[17,7] 8.7989870064575e-07 [GeV] -Cell[15,25] 0.0021927608413945 [GeV] -Cell[10,20] 0.0003085509985648 [GeV] -Cell[16,44] 0.00065518138216085 [GeV] -Cell[17,10] 0.018756955625703 [GeV] -Cell[17,8] 0.001063562477262 [GeV] -Cell[18,8] 0.00048113920401798 [GeV] -Cell[17,47] 0.00051099891 [GeV] -Cell[18,29] 0.00051992754116364 [GeV] -Cell[13,35] 0.00042896009885687 [GeV] -Cell[18,34] 0.0040241659667685 [GeV] -Cell[18,28] 0.013963426459535 [GeV] -Cell[18,30] 0.00032311225746123 [GeV] -Cell[17,28] 0.0032992547804978 [GeV] -Cell[17,11] 0.00060875415796764 [GeV] -### Total energy deposition in calorimeter by a source track in 31 cells : 0.79798540746445 (GeV) - -Source track ID 4224 (pi-,1.1275629288747[GeV]) at (-499.98895185098,-3.3238572413817,954.48863579894) -Original primary track ID 25 (unknown,7.7728456153487[GeV]) -Cell[16,26] 0.0017104135265847 [GeV] -Cell[16,28] 1.4694453391712e-05 [GeV] -Cell[16,24] 0.039834795459441 [GeV] -Cell[17,31] 0.00074668443871963 [GeV] -Cell[16,30] 1.0009084857302e-05 [GeV] -Cell[14,24] 0.069401834376202 [GeV] -Cell[16,29] 0.00079000106858655 [GeV] -Cell[17,24] 0.0024170639294167 [GeV] -Cell[17,25] 0.090192000595466 [GeV] -Cell[18,23] 1.8652052036487e-05 [GeV] -Cell[16,23] 5.3458449963273e-07 [GeV] -Cell[18,28] 2.1000895027328e-06 [GeV] -Cell[17,28] 0.0087365292798256 [GeV] -Cell[15,24] 0.18422387034731 [GeV] -Cell[16,25] 0.17146372027452 [GeV] -Cell[17,26] 0.20529397555253 [GeV] -Cell[17,27] 0.013931454771139 [GeV] -Cell[18,27] 0.0014610257548399 [GeV] -Cell[18,26] 0.021686024947619 [GeV] -Cell[18,24] 0.0035759359406952 [GeV] -Cell[18,25] 0.0027318804640971 [GeV] -Cell[16,27] 0.0018235041466937 [GeV] -Cell[17,29] 0.0064584899627973 [GeV] -Cell[17,30] 0.0025944678921935 [GeV] -### Total energy deposition in calorimeter by a source track in 24 cells : 0.82911966299296 (GeV) - -Source track ID 4212 (gamma,0.21259862372436[GeV]) at (298.67435349681,-400.99081107085,-1192.0288687049) +Source track ID 4579 (gamma,0.21259862372436[GeV]) at (298.67436628092,-400.99080154873,-1192.0291434244) Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[6,46] 0.00039583111764659 [GeV] -Cell[6,6] 0.00035139058426998 [GeV] -Cell[5,17] 0.00085397794597698 [GeV] -Cell[3,41] 0.013418784923277 [GeV] -Cell[4,40] 0.0028814901905306 [GeV] -Cell[3,40] 0.19375893527826 [GeV] -### Total energy deposition in calorimeter by a source track in 6 cells : 0.21166041003996 (GeV) +Cell[6,10] 0.000190112005164 [GeV] +Cell[3,40] 0.16618117482093 [GeV] +Cell[3,41] 0.011015863274357 [GeV] +Cell[2,35] 0.0010656414017429 [GeV] +Cell[10,20] 0.00091027517708587 [GeV] +Cell[4,18] 0.006532176103417 [GeV] +Cell[4,17] 0.0006437460321452 [GeV] +Cell[4,40] 0.020809465879754 [GeV] +Cell[5,32] 0.00057387313372698 [GeV] +Cell[4,15] 0.00088633305327839 [GeV] +Cell[6,15] 0.0005007255895732 [GeV] +Cell[3,15] 0.00033469281665714 [GeV] +Cell[3,14] 0.0010724967060526 [GeV] +Cell[6,7] 0.00051099891 [GeV] +Cell[1,10] 0.0009063123925594 [GeV] +### Total energy deposition in calorimeter by a source track in 15 cells : 0.21213388729645 (GeV) -Source track ID 4164 (pi-,0.62978753985892[GeV]) at (343.5140566688,363.31541788224,-1015.8437419801) +Source track ID 4531 (pi-,0.62971653040469[GeV]) at (342.53611765398,364.23757096508,-1017.8904172015) Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[7,8] 1.3653895875905e-06 [GeV] -Cell[9,46] 8.9959026892075e-06 [GeV] -Cell[10,34] 3.7762709835079e-06 [GeV] -Cell[9,0] 7.7366179013779e-05 [GeV] -Cell[9,47] 3.3650372643024e-08 [GeV] -Cell[11,27] 3.1146450870438e-05 [GeV] -Cell[11,34] 5.1627627690323e-06 [GeV] -Cell[9,44] 3.3963718742598e-06 [GeV] -Cell[9,32] 5.3858783163491e-05 [GeV] -Cell[9,34] 1.0698290891014e-05 [GeV] -Cell[5,7] 7.0297196108413e-05 [GeV] -Cell[5,2] 4.0031367097981e-07 [GeV] -Cell[4,4] 1.182579388842e-05 [GeV] -Cell[3,4] 4.2285631264917e-05 [GeV] -Cell[4,5] 0.00042054283829589 [GeV] -Cell[3,5] 0.0056255249595097 [GeV] -Cell[3,9] 3.9490612380177e-08 [GeV] -Cell[9,31] 6.440051656682e-07 [GeV] -Cell[6,3] 3.890249899996e-11 [GeV] -Cell[11,35] 9.3109856709702e-05 [GeV] -Cell[9,45] 6.7265430698171e-07 [GeV] -Cell[1,14] 1.2501482007792e-05 [GeV] -Cell[4,31] 1.8647836986929e-07 [GeV] -Cell[5,1] 0.00055358248724258 [GeV] -Cell[2,26] 2.954353379323e-06 [GeV] -Cell[3,6] 0.0050408694974005 [GeV] -Cell[1,42] 3.5318740856383e-09 [GeV] -Cell[2,41] 1.4418379869312e-06 [GeV] -Cell[1,41] 1.3971570999729e-06 [GeV] -Cell[6,1] 1.6921055328567e-05 [GeV] -Cell[6,2] 0.0011354404583358 [GeV] -Cell[4,6] 0.20046335329321 [GeV] -Cell[4,7] 0.027357763366444 [GeV] -Cell[4,10] 0.00061550795491189 [GeV] -Cell[4,9] 0.0009475490465552 [GeV] -Cell[4,24] 0.00012474183218205 [GeV] -Cell[4,25] 3.3676734572509e-05 [GeV] -Cell[3,33] 8.9669665903784e-06 [GeV] -Cell[3,42] 2.1363070001826e-05 [GeV] -Cell[1,34] 6.5013335843105e-06 [GeV] -Cell[3,35] 8.854396787865e-05 [GeV] -Cell[5,6] 4.9129668461319e-05 [GeV] -Cell[1,26] 1.2291564489715e-06 [GeV] -Cell[2,27] 9.3170244678618e-05 [GeV] -Cell[1,27] 1.5559489838779e-09 [GeV] -Cell[4,8] 0.0023307722280192 [GeV] -Cell[2,6] 2.1158617922197e-05 [GeV] -Cell[2,5] 0.00027353277015789 [GeV] -Cell[3,7] 0.10677797008583 [GeV] -Cell[3,8] 0.00013370384819382 [GeV] -Cell[3,10] 3.6822236779699e-09 [GeV] -Cell[5,9] 0.0022480527999327 [GeV] -Cell[5,10] 2.0021301565976e-08 [GeV] -Cell[2,7] 0.00052952830325785 [GeV] -Cell[5,15] 1.2199482298456e-06 [GeV] -Cell[1,37] 8.7907811393961e-07 [GeV] -Cell[2,37] 1.7494318599347e-06 [GeV] -Cell[3,26] 7.7730763587169e-07 [GeV] -### Total energy deposition in calorimeter by a source track in 58 cells : 0.35535730748382 (GeV) +Cell[8,3] 0.0083928124338645 [GeV] +Cell[9,3] 1.4897195641879e-05 [GeV] +Cell[9,2] 3.7810855985754e-05 [GeV] +Cell[7,2] 0.003014455290818 [GeV] +Cell[4,6] 0.20207147070128 [GeV] +Cell[3,6] 0.0056174045789899 [GeV] +Cell[3,7] 0.097153941495012 [GeV] +Cell[4,7] 0.11033659609208 [GeV] +Cell[4,5] 0.00022805943299812 [GeV] +Cell[5,9] 0.00031574603044044 [GeV] +Cell[5,8] 6.5427622757852e-08 [GeV] +Cell[4,8] 0.00090788106564482 [GeV] +Cell[5,6] 0.0094174183844357 [GeV] +Cell[4,10] 9.6147914518951e-11 [GeV] +Cell[5,4] 6.8814972764812e-06 [GeV] +Cell[6,4] 0.0055180612733002 [GeV] +Cell[3,8] 0.00064218098031517 [GeV] +Cell[3,9] 0.0010329645924833 [GeV] +Cell[3,10] 8.4985259163659e-06 [GeV] +Cell[4,9] 0.0042658359188247 [GeV] +Cell[3,5] 2.976229552587e-09 [GeV] +Cell[7,3] 0.0082479072778244 [GeV] +Cell[7,4] 6.3759878394194e-06 [GeV] +Cell[8,2] 0.0054432380196274 [GeV] +Cell[8,4] 4.9138532176585e-10 [GeV] +### Total energy deposition in calorimeter by a source track in 25 cells : 0.46268050662198 (GeV) -Source track ID 4165 (pi+,3.2625279130506[GeV]) at (499.98918674402,-3.2883337801121,-1675.0620513135) +Source track ID 4532 (pi+,3.262500787898[GeV]) at (499.98854990884,-3.3837789613434,-1674.9775775745) Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[1,47] 0.15173851147432 [GeV] -Cell[0,47] 0.16566591163392 [GeV] -Cell[0,0] 0.0023610368437794 [GeV] -Cell[1,0] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.32027645886203 (GeV) +Cell[1,0] 0.00055553475450112 [GeV] +Cell[0,47] 0.1750534625497 [GeV] +Cell[1,47] 0.15538039284326 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.33098939014746 (GeV) -Source track ID 4161 (gamma,0.53051937575115[GeV]) at (475.84610237127,-153.52682781219,-782.17055700903) +Source track ID 4528 (gamma,0.53051937575115[GeV]) at (475.84610149197,-153.52683053751,-782.17056270031) Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[11,32] 0.00022248285753818 [GeV] -Cell[5,45] 0.41202933029907 [GeV] -Cell[6,45] 0.10307886161062 [GeV] -Cell[5,46] 0.0048589885904203 [GeV] -Cell[5,44] 0.00067650712371177 [GeV] -Cell[5,47] 0.0022465012520539 [GeV] -Cell[4,45] 0.0062897186868018 [GeV] -Cell[4,44] 0.00082846927846373 [GeV] -### Total energy deposition in calorimeter by a source track in 8 cells : 0.53023085969869 (GeV) +Cell[6,45] 0.058727491053283 [GeV] +Cell[5,45] 0.44841191042552 [GeV] +Cell[6,46] 0.00033055174366027 [GeV] +Cell[5,44] 0.0046183933665716 [GeV] +Cell[6,44] 0.00051099891 [GeV] +Cell[3,29] 0.00045715770078129 [GeV] +Cell[5,0] 0.00091452907119789 [GeV] +Cell[6,43] 0.00022705386092469 [GeV] +Cell[5,42] 0.001175059670853 [GeV] +Cell[5,46] 0.014635231038355 [GeV] +Cell[5,47] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 11 cells : 0.53051937575115 (GeV) -Source track ID 4162 (gamma,0.17927399228015[GeV]) at (168.15424007019,-470.87594071732,-1264.5234726747) +Source track ID 4529 (gamma,0.17927399228015[GeV]) at (168.15425176014,-470.87593654272,-1264.5234730436) Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[3,39] 0.00042000748700289 [GeV] -Cell[3,40] 0.00034863862889715 [GeV] -Cell[3,38] 0.17571674745244 [GeV] -Cell[3,29] 0.00051099891 [GeV] -Cell[1,9] 0.00045536346118069 [GeV] -Cell[1,31] 0.0011308707647117 [GeV] -### Total energy deposition in calorimeter by a source track in 6 cells : 0.17858262670423 (GeV) +Cell[3,40] 0.00052038190544451 [GeV] +Cell[3,38] 0.15985233025868 [GeV] +Cell[3,37] 0.00048759698008325 [GeV] +Cell[2,16] 0.0020233918705682 [GeV] +Cell[3,39] 0.015879292355372 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.17876299337015 (GeV) -Source track ID 4079 (gamma,0.15806132742612[GeV]) at (-254.34674747999,430.47384594927,-127.19314230678) +Source track ID 4523 (gamma,0.042565379936104[GeV]) at (-196.86901180363,459.6113490673,-134.11249410215) Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,16] 0.085272624806245 [GeV] -Cell[9,15] 0.07278870261988 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.15806132742612 (GeV) +Cell[9,14] 0.0093369997250925 [GeV] +Cell[9,15] 0.033228380211011 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.042565379936104 (GeV) -Source track ID 4080 (gamma,0.00018080212376349[GeV]) at (-196.41252017756,459.80661360783,-134.14975644649) +Source track ID 4506 (e+,0.30134277015674[GeV]) at (-142.36406792364,479.30415412787,-144.88358638979) Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,15] 0.00018080212376349 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00018080212376349 (GeV) +Cell[9,14] 0.15105715070147 [GeV] +Cell[8,14] 0.0021121921007518 [GeV] +Cell[9,13] 0.14695949232164 [GeV] +Cell[10,47] 0.00012848535865396 [GeV] +Cell[5,25] 0.0007604754512357 [GeV] +Cell[12,37] 0.0002565860828493 [GeV] +### Total energy deposition in calorimeter by a source track in 6 cells : 0.30127438201661 (GeV) -Source track ID 4083 (gamma,0.026868992012054[GeV]) at (-139.86432434397,480.03955126198,-142.58778513477) +Source track ID 4514 (gamma,0.021816175007659[GeV]) at (-496.45258827124,59.454416142018,-131.61890289778) Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,13] 0.00074835134151965 [GeV] -Cell[9,14] 0.026120640670534 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.026868992012054 (GeV) +Cell[8,28] 0.00020203803982053 [GeV] +Cell[9,27] 0.00060133820969423 [GeV] +Cell[9,23] 0.01652443548714 [GeV] +Cell[9,22] 0.0034208713701992 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.020748683106854 (GeV) -Source track ID 4089 (gamma,0.020587587449121[GeV]) at (166.01776740459,471.63343913043,-164.72040313015) +Source track ID 4507 (e-,0.49048472389337[GeV]) at (-499.7873776199,14.580026468591,-134.475591511) Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,9] 0.01667307804305 [GeV] -Cell[1,41] 0.003225216231571 [GeV] -Cell[0,35] 0.0006850869725377 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.020583381247159 (GeV) +Cell[8,9] 0.00063110183557698 [GeV] +Cell[8,10] 0.0016414855100607 [GeV] +Cell[6,10] 6.329965617221e-05 [GeV] +Cell[9,25] 0.00059396577623657 [GeV] +Cell[9,20] 0.0012078182567243 [GeV] +Cell[10,36] 0.00014088643819226 [GeV] +Cell[15,46] 0.00041714998241644 [GeV] +Cell[8,23] 0.0016069208991157 [GeV] +Cell[8,24] 0.0076561505410819 [GeV] +Cell[8,25] 5.4955894011073e-06 [GeV] +Cell[9,23] 0.32459216975467 [GeV] +Cell[9,22] 0.0011957603033535 [GeV] +Cell[9,24] 0.13189269045844 [GeV] +### Total energy deposition in calorimeter by a source track in 13 cells : 0.47164489500144 (GeV) -Source track ID 4090 (gamma,0.00071886346308954[GeV]) at (89.202844218249,491.97850825354,-74.54154625169) +Source track ID 4508 (gamma,0.14815181584447[GeV]) at (-470.45467941128,169.32924915687,-336.66123087015) Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,10] 0.00071886346308954 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00071886346308954 (GeV) +Cell[7,21] 0.00018712995279338 [GeV] +Cell[8,21] 0.14427387014553 [GeV] +Cell[11,37] 0.00043365825415948 [GeV] +Cell[8,20] 0.0029105572429989 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.14780521559548 (GeV) -Source track ID 4091 (gamma,0.00042015629864778[GeV]) at (212.25580820094,452.71124559145,-163.04568425453) +Source track ID 4428 (pi+,0.18747339912612[GeV]) at (-499.77934080881,-14.852962691483,1574.4537476591) Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,8] 0.00042015629864778 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00042015629864778 (GeV) +Cell[18,23] 0.0028807285895849 [GeV] +Cell[17,24] 0.067922237733464 [GeV] +Cell[17,23] 0.032563754448763 [GeV] +Cell[18,0] 0.00044211661519665 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.10380883738701 (GeV) -Source track ID 4092 (gamma,9.9489195548096e-05[GeV]) at (180.91837739155,466.12073620684,-136.64638494995) +Source track ID 4422 (gamma,0.0003342580108829[GeV]) at (346.87642499015,360.10657559402,678.38102206795) Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,9] 9.9489195548096e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 9.9489195548096e-05 (GeV) +Cell[13,6] 0.0003342580108829 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0003342580108829 (GeV) -Source track ID 4093 (gamma,0.00017316565387053[GeV]) at (364.82824548436,341.90693367758,42.276834102911) +Source track ID 4413 (pi-,0.93649360149373[GeV]) at (-378.15294137376,-327.1090841453,-225.63547798161) Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[10,5] 0.00017316565387053 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00017316565387053 (GeV) +Cell[6,30] 0.00089610234923509 [GeV] +Cell[7,30] 0.005103211400837 [GeV] +Cell[7,33] 0.0022230725949925 [GeV] +Cell[10,30] 0.0017781939246983 [GeV] +Cell[7,31] 0.0017036999522763 [GeV] +Cell[8,32] 1.1011772160828e-05 [GeV] +Cell[6,31] 4.1298608891793e-07 [GeV] +Cell[9,32] 1.1435738997534e-08 [GeV] +Cell[8,31] 0.0061227536951074 [GeV] +Cell[8,30] 0.4221949085862 [GeV] +Cell[7,32] 0.00095456040928048 [GeV] +Cell[8,29] 0.27101585597938 [GeV] +Cell[7,29] 8.5244403180695e-10 [GeV] +Cell[9,30] 0.067088482598653 [GeV] +Cell[9,31] 0.004269920528959 [GeV] +Cell[10,31] 0.00019449242585449 [GeV] +### Total energy deposition in calorimeter by a source track in 16 cells : 0.7835566914919 (GeV) -Source track ID 4095 (gamma,0.00038677604250478[GeV]) at (-75.439020604275,-494.27619219447,-20.862727683885) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,34] 0.00038677604250478 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00038677604250478 (GeV) - -Source track ID 4099 (gamma,0.0084699842510189[GeV]) at (141.45955134795,-479.57188755434,-226.39343261448) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[8,38] 0.0084699842510189 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0084699842510189 (GeV) - -Source track ID 4101 (gamma,0.00016814343875629[GeV]) at (332.74425293913,373.20404892764,-265.58075638322) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[8,6] 0.00016814343875629 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00016814343875629 (GeV) - -Source track ID 4104 (gamma,0.010965319882977[GeV]) at (-246.21322429711,435.17703085207,-179.19485355753) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,16] 0.010965319882977 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.010965319882977 (GeV) - -Source track ID 4106 (gamma,0.0022807570091158[GeV]) at (8.3397343539124,499.93044399287,-165.98667863684) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,11] 0.0022807570091158 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0022807570091158 (GeV) - -Source track ID 4108 (gamma,0.0016767512582974[GeV]) at (19.781137716428,499.60855336017,-162.8277213126) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,11] 0.0016767512582974 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0016767512582974 (GeV) - -Source track ID 4115 (gamma,0.0054445086749267[GeV]) at (-499.73773417623,16.192499510713,-191.67457671628) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,23] 0.0054445086749267 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0054445086749267 (GeV) - -Source track ID 4116 (gamma,0.028892417577265[GeV]) at (-499.45558955639,23.326252611084,-198.10409353488) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,23] 0.020538946823831 [GeV] -Cell[9,24] 0.0039447514587254 [GeV] -Cell[8,23] 0.0044087192947077 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.028892417577265 (GeV) - -Source track ID 4121 (gamma,7.2389693380766e-05[GeV]) at (158.493348752,474.21499175098,-134.1675545735) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,9] 7.2389693380766e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 7.2389693380766e-05 (GeV) - -Source track ID 4124 (gamma,0.00050161523450993[GeV]) at (347.62292232146,359.38600957284,-534.21036817784) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[7,6] 0.00050161523450993 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00050161523450993 (GeV) - -Source track ID 4128 (gamma,0.00037974349833714[GeV]) at (212.9482984083,-452.38592175819,-1621.6200769404) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[1,39] 0.00037974349833714 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00037974349833714 (GeV) - -Source track ID 4129 (gamma,0.00051099891[GeV]) at (-312.22929732999,-390.52895653052,1993.8336824767) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[19,30] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00051099891 (GeV) - -Source track ID 4062 (gamma,0.00040739781466024[GeV]) at (-493.84571207089,78.207497525444,-130.23921132905) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,22] 0.00040739781466024 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00040739781466024 (GeV) - -Source track ID 4063 (gamma,9.1279680477201e-05[GeV]) at (-496.34349466159,60.358390527933,-131.66967269263) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,23] 9.1279680477201e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 9.1279680477201e-05 (GeV) - -Source track ID 4076 (gamma,7.4774715270383e-05[GeV]) at (-364.63988635986,-342.10780943362,-48.090020560929) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[9,29] 7.4774715270383e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 7.4774715270383e-05 (GeV) - -Source track ID 4058 (e-,0.50948500274321[GeV]) at (-499.71587935547,16.85348391256,-134.14074039717) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[7,41] 6.8188477965331e-05 [GeV] -Cell[9,25] 0.0011576727156658 [GeV] -Cell[7,42] 0.00013937775335134 [GeV] -Cell[9,23] 0.33707821382136 [GeV] -Cell[8,31] 0.00018617352029732 [GeV] -Cell[9,24] 0.16552457358473 [GeV] -Cell[8,22] 0.0012218989144207 [GeV] -### Total energy deposition in calorimeter by a source track in 7 cells : 0.50537609878779 (GeV) - -Source track ID 4059 (gamma,0.14815181584447[GeV]) at (-470.45468277452,169.32923981265,-336.66125545039) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[8,21] 0.12351987153798 [GeV] -Cell[7,21] 0.011240560008408 [GeV] -Cell[6,22] 0.00010905064453447 [GeV] -Cell[7,22] 0.0025073649206825 [GeV] -Cell[1,31] 0.00051099891 [GeV] -Cell[8,20] 0.003148005957487 [GeV] -Cell[7,20] 0.002253286385506 [GeV] -Cell[6,21] 0.0048626774798734 [GeV] -### Total energy deposition in calorimeter by a source track in 8 cells : 0.14815181584447 (GeV) - -Source track ID 4012 (pi+,0.1877788804229[GeV]) at (-499.52702150475,-21.742924977769,1564.2347129884) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[17,24] 0.092508930319141 [GeV] -Cell[18,24] 0.0025747620269938 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.095083692346135 (GeV) - -Source track ID 3996 (pi-,0.95295862368114[GeV]) at (-378.83891370333,-326.31438439653,-223.17962995759) -Original primary track ID 27 (unknown,1.8699577628705[GeV]) -Cell[8,28] 0.013462808162437 [GeV] -Cell[6,27] 0.03724300953781 [GeV] -Cell[5,28] 0.00022609436822347 [GeV] -Cell[8,32] 5.7194222335966e-10 [GeV] -Cell[9,30] 8.3521171347229e-05 [GeV] -Cell[9,29] 4.0722045558709e-05 [GeV] -Cell[8,30] 0.24109571088698 [GeV] -Cell[8,29] 0.22081926677382 [GeV] -Cell[5,31] 0.00031382357494226 [GeV] -Cell[8,31] 0.00064639956305195 [GeV] -Cell[9,32] 0.0098876171347952 [GeV] -Cell[7,31] 1.6988328254115e-05 [GeV] -Cell[7,26] 0.0047950226533808 [GeV] -Cell[7,30] 0.076028906632177 [GeV] -Cell[7,28] 4.0563506059698e-05 [GeV] -Cell[6,26] 0.00015028957914828 [GeV] -Cell[7,29] 0.059449034781272 [GeV] -Cell[9,31] 0.011935634941097 [GeV] -Cell[10,30] 7.8748308851573e-09 [GeV] -Cell[6,28] 0.014754817018647 [GeV] -Cell[6,31] 0.00030572173505379 [GeV] -Cell[9,28] 0.00094252339603543 [GeV] -Cell[10,29] 8.0783423801449e-05 [GeV] -Cell[5,27] 4.3915317377696e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 24 cells : 0.69236318297804 (GeV) - -Source track ID 3938 (pi-,0.2972999821713[GeV]) at (-495.53460300203,66.674262107833,1854.2713573652) +Source track ID 4342 (pi-,0.29737671491769[GeV]) at (-495.9336558256,63.638109804194,1855.029329922) Original primary track ID 29 (unknown,1.6025887774154[GeV]) -Cell[19,22] 0.0058716512699443 [GeV] -Cell[19,23] 0.219173027172 [GeV] -Cell[19,24] 0.023195571541634 [GeV] -Cell[19,25] 2.1022731061748e-08 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.24824027100631 (GeV) +Cell[18,24] 2.9889633879066e-11 [GeV] +Cell[16,44] 0.00081608051714465 [GeV] +Cell[18,32] 4.2128522181883e-10 [GeV] +Cell[19,37] 0.00053073494866874 [GeV] +Cell[18,19] 3.4402302162562e-09 [GeV] +Cell[12,42] 0.0010232957831356 [GeV] +Cell[16,45] 0.00090319595820552 [GeV] +Cell[15,40] 0.00026783785781413 [GeV] +Cell[15,43] 0.0011774144211168 [GeV] +Cell[16,33] 1.2391648231187e-06 [GeV] +Cell[18,22] 0.0038566079498527 [GeV] +Cell[18,23] 0.005788528834503 [GeV] +Cell[18,21] 0.0029179437697359 [GeV] +Cell[19,23] 0.079685337935516 [GeV] +Cell[19,22] 0.011191100866116 [GeV] +Cell[19,21] 0.0078988708758652 [GeV] +Cell[18,20] 4.5305475941859e-06 [GeV] +Cell[19,20] 3.1147598359667e-06 [GeV] +Cell[15,41] 0.00024006606219245 [GeV] +Cell[15,33] 0.0004579717884335 [GeV] +Cell[18,38] 0.00064020080376247 [GeV] +Cell[19,24] 2.7395238250392e-05 [GeV] +Cell[18,31] 0.0033385191822956 [GeV] +Cell[17,5] 5.6155281781685e-06 [GeV] +Cell[18,33] 0.0021926908938491 [GeV] +### Total energy deposition in calorimeter by a source track in 25 cells : 0.12296829757829 (GeV) -Source track ID 3939 (pi+,3.7104152762435[GeV]) at (209.46962371907,454.00713291642,1946.1424752436) +Source track ID 4343 (pi+,3.7103579598847[GeV]) at (209.62020202726,453.93762886772,1946.9484672698) Original primary track ID 29 (unknown,1.6025887774154[GeV]) -Cell[16,26] 0.00056792949809833 [GeV] -Cell[10,5] 4.1216117097065e-08 [GeV] -Cell[9,30] 2.3050151213511e-06 [GeV] -Cell[13,27] 2.1415536366476e-09 [GeV] -Cell[9,20] 0.00027248277565354 [GeV] -Cell[16,24] 3.7519815401311e-05 [GeV] -Cell[18,4] 0.00047779047307635 [GeV] -Cell[19,4] 0.0019901663018363 [GeV] -Cell[15,32] 1.4130639266341e-06 [GeV] -Cell[16,32] 6.7327443190152e-05 [GeV] -Cell[17,32] 7.8352654782066e-09 [GeV] -Cell[16,31] 4.9442670308053e-05 [GeV] -Cell[17,31] 4.7702833819585e-06 [GeV] -Cell[13,26] 5.9092732682302e-06 [GeV] -Cell[13,25] 2.4513353655607e-05 [GeV] -Cell[17,15] 5.405218489102e-05 [GeV] -Cell[17,38] 1.3254476702969e-06 [GeV] -Cell[15,35] 0.00031168372228954 [GeV] -Cell[14,36] 6.7993177770404e-05 [GeV] -Cell[17,2] 0.0030597197090281 [GeV] -Cell[17,3] 0.00010251588455617 [GeV] -Cell[12,10] 7.5051211751997e-09 [GeV] -Cell[9,31] 1.2465665349737e-08 [GeV] -Cell[16,15] 2.5151731404435e-05 [GeV] -Cell[10,18] 6.1238745111041e-06 [GeV] -Cell[15,33] 0.001003862434795 [GeV] -Cell[10,37] 1.1967053316766e-05 [GeV] -Cell[10,36] 7.5265528284945e-06 [GeV] -Cell[9,19] 2.0493636839092e-08 [GeV] -Cell[9,36] 7.55553514864e-10 [GeV] -Cell[16,22] 5.0033233710565e-06 [GeV] -Cell[17,22] 0.0008915910900588 [GeV] -Cell[19,47] 6.1422821483575e-05 [GeV] -Cell[16,16] 0.0003253354673617 [GeV] -Cell[17,1] 0.0046660991871646 [GeV] -Cell[17,4] 1.5399436704683e-05 [GeV] -Cell[15,14] 1.3239939289633e-05 [GeV] -Cell[17,19] 1.0372929711593e-05 [GeV] -Cell[17,39] 0.0027137248334904 [GeV] -Cell[19,38] 0.00058457210021277 [GeV] -Cell[16,46] 4.2567844502628e-09 [GeV] -Cell[18,5] 0.00062294328767746 [GeV] -Cell[16,35] 6.5310118661728e-05 [GeV] -Cell[16,33] 0.00019232583194753 [GeV] -Cell[17,24] 0.0023039872387673 [GeV] -Cell[17,25] 0.0012548024462845 [GeV] -Cell[17,37] 0.0042638661158174 [GeV] -Cell[19,5] 0.0061178243209331 [GeV] -Cell[19,6] 0.013571406101325 [GeV] -Cell[10,20] 0.0019392060337271 [GeV] -Cell[11,17] 9.9077959021088e-06 [GeV] -Cell[14,25] 0.00020260424478658 [GeV] -Cell[15,15] 0.0006126894982408 [GeV] -Cell[16,23] 0.00029196745973763 [GeV] -Cell[19,10] 0.00065901316629026 [GeV] -Cell[16,25] 0.0011689289811565 [GeV] -Cell[17,26] 4.404202497426e-06 [GeV] -Cell[18,26] 0.00015800330596358 [GeV] -Cell[18,25] 0.0002383615225416 [GeV] -Cell[19,8] 0.67064309958811 [GeV] -Cell[18,47] 0.00032994274668109 [GeV] -Cell[19,9] 0.056690784139165 [GeV] -Cell[19,7] 0.014740320809186 [GeV] -Cell[19,15] 0.0026594007014246 [GeV] -Cell[19,16] 4.7757877496224e-08 [GeV] -Cell[17,23] 0.00065241756641497 [GeV] -Cell[17,18] 1.8815743736923e-05 [GeV] -Cell[12,9] 3.6066243478672e-07 [GeV] -Cell[12,16] 8.4008031774077e-05 [GeV] -Cell[11,18] 7.985518546775e-06 [GeV] -Cell[12,8] 0.00070604982479305 [GeV] -Cell[9,37] 0.0019503589137519 [GeV] -Cell[19,14] 0.00028860098472853 [GeV] -Cell[16,3] 2.2629254963249e-06 [GeV] -Cell[19,19] 0.0020977840646884 [GeV] -Cell[17,0] 0.00020172679888469 [GeV] -Cell[19,32] 0.0011990533498063 [GeV] -Cell[18,6] 5.2719806324831e-05 [GeV] -Cell[18,36] 0.00091804010848091 [GeV] -Cell[19,11] 3.2000979990698e-07 [GeV] -Cell[17,16] 0.0016968283000774 [GeV] -### Total energy deposition in calorimeter by a source track in 81 cells : 0.80605882956297 (GeV) +Cell[18,44] 0.00094661966495039 [GeV] +Cell[12,12] 2.2591718550302e-07 [GeV] +Cell[8,38] 7.160583384109e-05 [GeV] +Cell[10,6] 6.783675735619e-06 [GeV] +Cell[18,4] 0.00023918791249525 [GeV] +Cell[16,31] 0.00048405856940291 [GeV] +Cell[17,14] 5.0126080168411e-08 [GeV] +Cell[18,9] 0.0099526273720293 [GeV] +Cell[11,18] 2.1992669964675e-05 [GeV] +Cell[12,19] 1.4196337536987e-06 [GeV] +Cell[11,19] 0.0029106671292753 [GeV] +Cell[10,5] 2.140068853771e-05 [GeV] +Cell[8,37] 0.00039178180396607 [GeV] +Cell[11,44] 0.00091215514369628 [GeV] +Cell[13,24] 0.096877193505316 [GeV] +Cell[14,24] 0.004190131664537 [GeV] +Cell[18,43] 0.00052062423864675 [GeV] +Cell[5,16] 4.3347552832529e-08 [GeV] +Cell[5,15] 8.7503098929687e-05 [GeV] +Cell[10,4] 2.5797676494676e-05 [GeV] +Cell[9,37] 2.8088615224988e-05 [GeV] +Cell[19,8] 1.123978771178 [GeV] +Cell[19,9] 0.02902401184599 [GeV] +Cell[18,29] 1.0857173037948e-05 [GeV] +Cell[16,5] 0.0014906115787564 [GeV] +Cell[18,7] 0.0012943708911446 [GeV] +Cell[18,6] 0.00027603419580112 [GeV] +Cell[17,7] 5.1955453272967e-10 [GeV] +Cell[17,13] 0.001124718014657 [GeV] +Cell[17,12] 0.00150136727867 [GeV] +Cell[15,24] 3.0437726236414e-06 [GeV] +Cell[11,6] 4.4821033952758e-08 [GeV] +Cell[18,21] 1.6290927800583e-05 [GeV] +Cell[16,13] 5.8391971688252e-06 [GeV] +Cell[17,15] 0.0014115554604944 [GeV] +Cell[18,5] 0.014703922097639 [GeV] +Cell[17,40] 0.00052236399652709 [GeV] +Cell[16,42] 7.4385991320014e-07 [GeV] +Cell[17,38] 0.0012984904009809 [GeV] +Cell[18,38] 0.00037850626147826 [GeV] +Cell[18,37] 3.3321440469081e-08 [GeV] +Cell[18,45] 0.00030493455315479 [GeV] +Cell[19,10] 0.001859661113416 [GeV] +Cell[17,4] 0.006127900613342 [GeV] +Cell[19,2] 1.3085664249957e-08 [GeV] +Cell[16,24] 0.00026537039689981 [GeV] +Cell[6,15] 0.0020693022474446 [GeV] +Cell[17,24] 0.0043871899137083 [GeV] +Cell[17,23] 0.0012804368931123 [GeV] +Cell[17,5] 0.007668470997832 [GeV] +Cell[19,7] 0.0018603434120346 [GeV] +Cell[17,36] 1.1358759365976e-08 [GeV] +Cell[17,26] 1.3325812207768e-05 [GeV] +Cell[19,6] 0.0025553200524181 [GeV] +Cell[18,40] 0.0037989447162817 [GeV] +Cell[19,47] 3.0363143567229e-05 [GeV] +Cell[16,23] 2.904562279582e-11 [GeV] +Cell[17,6] 3.3444765102786e-06 [GeV] +Cell[18,8] 0.0019606859821228 [GeV] +Cell[18,10] 0.00029677558035416 [GeV] +Cell[19,11] 0.00094305826044433 [GeV] +Cell[19,5] 0.00051099891 [GeV] +Cell[19,1] 0.00013372964293982 [GeV] +Cell[19,34] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 64 cells : 1.3313127151816 (GeV) -Source track ID 3929 (pi+,0.57444937564425[GeV]) at (-437.23425535636,242.541142784,334.38025923166) +Source track ID 4083 (pi+,0.59435083902757[GeV]) at (-417.76748161309,274.71864026064,365.26983576433) Original primary track ID 29 (unknown,1.6025887774154[GeV]) -Cell[11,19] 0.11331025547412 [GeV] -Cell[12,38] 2.8604692197405e-06 [GeV] -Cell[13,38] 3.1759170815349e-07 [GeV] -Cell[14,18] 1.7047049186658e-06 [GeV] -Cell[14,35] 5.8459909071075e-05 [GeV] -Cell[14,36] 0.0012861492517948 [GeV] -Cell[12,22] 3.2952585482521e-05 [GeV] -Cell[12,24] 0.0021011852429385 [GeV] -Cell[13,21] 1.9566505216062e-10 [GeV] -Cell[12,20] 0.0020801611226775 [GeV] -Cell[12,19] 0.25650011132171 [GeV] -Cell[14,0] 8.9010818919633e-06 [GeV] -Cell[14,47] 1.9146679289406e-05 [GeV] -Cell[10,18] 3.8324287743308e-11 [GeV] -Cell[10,17] 2.0534805535362e-05 [GeV] -Cell[10,38] 0.00026135233221441 [GeV] -Cell[10,37] 0.0002641265653773 [GeV] -Cell[10,36] 3.1370018841699e-06 [GeV] -Cell[13,20] 0.00011669262597911 [GeV] -Cell[14,37] 1.6880221664906e-11 [GeV] -Cell[16,8] 2.7159935358213e-05 [GeV] -Cell[13,17] 9.1160795818723e-09 [GeV] -Cell[19,42] 0.00095637635907063 [GeV] -Cell[12,39] 9.479743312113e-07 [GeV] -Cell[15,14] 3.3436825760873e-05 [GeV] -Cell[13,44] 8.2085066242144e-07 [GeV] -Cell[18,37] 2.4943555734353e-05 [GeV] -Cell[10,16] 7.3201636997737e-06 [GeV] -Cell[12,18] 0.0076489504591388 [GeV] -Cell[17,24] 0.00055014655219802 [GeV] -Cell[15,18] 0.0012137243484603 [GeV] -Cell[15,15] 0.00035360198100648 [GeV] -Cell[15,16] 5.3763017149322e-10 [GeV] -Cell[11,20] 0.052938558641538 [GeV] -Cell[13,19] 0.00087945968136512 [GeV] -Cell[13,18] 0.0033121224533817 [GeV] -Cell[15,17] 0.0044328892523817 [GeV] -Cell[16,18] 6.1412362847477e-06 [GeV] -### Total energy deposition in calorimeter by a source track in 38 cells : 0.44845465894076 (GeV) +Cell[10,17] 0.0077313969065031 [GeV] +Cell[13,20] 0.0023778948674011 [GeV] +Cell[13,41] 0.0019810572424963 [GeV] +Cell[12,20] 0.0067161694555845 [GeV] +Cell[18,9] 1.2995807054267e-05 [GeV] +Cell[13,44] 0.00051099891 [GeV] +Cell[17,41] 9.5264596748166e-06 [GeV] +Cell[11,23] 1.9371318659978e-05 [GeV] +Cell[11,22] 0.0010140233342103 [GeV] +Cell[11,21] 0.00018563432396763 [GeV] +Cell[16,11] 0.00037512027585666 [GeV] +Cell[9,1] 0.00025725332892097 [GeV] +Cell[10,44] 0.015282074524131 [GeV] +Cell[10,39] 0.00013020503465981 [GeV] +Cell[9,3] 0.0063312560429781 [GeV] +Cell[12,21] 0.00013064085321935 [GeV] +Cell[11,18] 0.014718337156393 [GeV] +Cell[12,22] 0.0012295074435815 [GeV] +Cell[11,20] 0.00021471735966986 [GeV] +Cell[10,20] 2.7813885026262e-09 [GeV] +Cell[10,19] 0.001963855577008 [GeV] +Cell[12,19] 0.014316964722952 [GeV] +Cell[11,19] 0.18281228542773 [GeV] +Cell[14,18] 0.0001307956306078 [GeV] +Cell[11,40] 0.00051099891 [GeV] +Cell[11,17] 1.1968384694683e-07 [GeV] +Cell[12,16] 0.00016701352547687 [GeV] +Cell[1,46] 0.0015276477938238 [GeV] +Cell[14,22] 2.7527631493285e-05 [GeV] +Cell[10,28] 0.0013602713119021 [GeV] +Cell[13,34] 0.0026384199021652 [GeV] +Cell[13,33] 0.00011197237740271 [GeV] +Cell[10,18] 0.01802262221078 [GeV] +Cell[12,18] 0.0011759278717791 [GeV] +Cell[13,43] 0.0013890460411353 [GeV] +Cell[11,41] 0.018933690334984 [GeV] +Cell[12,41] 0.0092957297066453 [GeV] +Cell[15,22] 2.30058823945e-06 [GeV] +Cell[15,37] 1.6807163955605e-05 [GeV] +Cell[15,38] 0.00014079295784802 [GeV] +Cell[13,22] 0.0062258048673141 [GeV] +Cell[14,2] 0.00044356560160852 [GeV] +Cell[14,4] 7.4452396656852e-06 [GeV] +Cell[15,44] 0.00041437654296067 [GeV] +Cell[15,43] 0.0018415087281932 [GeV] +Cell[13,14] 0.00087342041616228 [GeV] +Cell[14,44] 0.0031068614213899 [GeV] +Cell[15,42] 0.00022620418448435 [GeV] +Cell[17,42] 0.00042428983043283 [GeV] +Cell[9,30] 0.00060383064252848 [GeV] +Cell[18,8] 0.00064475691455505 [GeV] +Cell[18,10] 2.8295141922854e-06 [GeV] +Cell[12,17] 0.0012436028461679 [GeV] +Cell[10,16] 0.0006213202525314 [GeV] +### Total energy deposition in calorimeter by a source track in 54 cells : 0.33045278979831 (GeV) -Source track ID 3931 (gamma,0.0015227996180296[GeV]) at (437.68745017024,241.72235304885,643.5959550919) +Source track ID 4326 (gamma,0.15251351239083[GeV]) at (-487.09323564023,-112.87240492491,-730.31338224036) Original primary track ID 29 (unknown,1.6025887774154[GeV]) -Cell[13,3] 0.0015227996180296 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0015227996180296 (GeV) +Cell[6,26] 0.0043089554919289 [GeV] +Cell[6,27] 0.00063358562445801 [GeV] +Cell[5,3] 0.00067846685197809 [GeV] +Cell[3,6] 0.0037448781564485 [GeV] +Cell[4,42] 0.00027428871451234 [GeV] +Cell[5,26] 0.00051099891 [GeV] +Cell[6,25] 0.094802668578395 [GeV] +Cell[5,25] 0.046826220757627 [GeV] +Cell[8,42] 0.00027296752408152 [GeV] +### Total energy deposition in calorimeter by a source track in 9 cells : 0.15205303060943 (GeV) -Source track ID 3932 (gamma,0.00013236362374646[GeV]) at (83.540992906597,492.97150273031,86.5587187241) +Source track ID 4327 (gamma,0.13352323164713[GeV]) at (-462.29599752665,-190.47942322163,2.9650368597331) Original primary track ID 29 (unknown,1.6025887774154[GeV]) -Cell[10,10] 0.00013236362374646 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00013236362374646 (GeV) - -Source track ID 3922 (gamma,0.15251351239083[GeV]) at (-487.09323402484,-112.87241189603,-730.31331847499) -Original primary track ID 29 (unknown,1.6025887774154[GeV]) -Cell[9,9] 0.00041637658684543 [GeV] -Cell[6,25] 0.07976766881425 [GeV] -Cell[5,26] 0.0027312769090258 [GeV] -Cell[6,26] 0.0018220233529052 [GeV] -Cell[9,14] 0.0012050367874292 [GeV] -Cell[5,25] 0.066404463104376 [GeV] -### Total energy deposition in calorimeter by a source track in 6 cells : 0.15234684555483 (GeV) - -Source track ID 3923 (gamma,0.13352323164713[GeV]) at (-462.29599928574,-190.47941895229,2.964995164046) -Original primary track ID 29 (unknown,1.6025887774154[GeV]) -Cell[9,26] 0.011725363799286 [GeV] -Cell[10,26] 0.047581010774562 [GeV] -Cell[9,27] 0.026675939954499 [GeV] -Cell[10,27] 0.04716658561154 [GeV] -Cell[10,28] 0.00037433150724194 [GeV] +Cell[9,26] 0.0015066142860211 [GeV] +Cell[10,26] 0.031902817506469 [GeV] +Cell[10,27] 0.056115976537699 [GeV] +Cell[9,27] 0.040045640597873 [GeV] +Cell[9,28] 0.003952182719066 [GeV] ### Total energy deposition in calorimeter by a source track in 5 cells : 0.13352323164713 (GeV) -Source track ID 3915 (mu-,0.7728356588254[GeV]) at (339.06049858313,-367.47513970412,727.01816399704) +Source track ID 4313 (pi-,0.85378660881098[GeV]) at (323.87526559013,-380.92625577521,733.03144306182) Original primary track ID 29 (unknown,1.6025887774154[GeV]) -Cell[15,43] 0.16964647271531 [GeV] -Cell[13,42] 0.0063829526618937 [GeV] -Cell[15,44] 0.04660770028489 [GeV] -Cell[16,43] 0.0020206848063867 [GeV] -Cell[14,42] 0.15437440983746 [GeV] -Cell[13,41] 0.084160217938607 [GeV] -Cell[15,46] 5.5489093975893e-06 [GeV] -Cell[16,46] 0.0026230050958916 [GeV] -Cell[16,45] 0.059571129173793 [GeV] -Cell[15,45] 5.8368190435544e-05 [GeV] -Cell[14,43] 0.072561041604019 [GeV] -Cell[16,44] 0.093504857272747 [GeV] -Cell[16,47] 7.0419901021523e-09 [GeV] -### Total energy deposition in calorimeter by a source track in 13 cells : 0.69151639553282 (GeV) +Cell[14,43] 0.38831000229795 [GeV] +Cell[14,42] 0.16529415410042 [GeV] +Cell[16,41] 0.0026730027912357 [GeV] +Cell[13,41] 0.095384892943662 [GeV] +Cell[12,13] 0.00049034024166103 [GeV] +Cell[14,22] 0.0005918169296544 [GeV] +Cell[15,40] 0.002027351082178 [GeV] +Cell[15,43] 0.0096877939772581 [GeV] +Cell[14,44] 1.540560082276e-07 [GeV] +Cell[14,41] 0.072230795143787 [GeV] +Cell[15,42] 0.0051954823460446 [GeV] +Cell[15,41] 0.0096785439215571 [GeV] +Cell[16,42] 0.00082517409230798 [GeV] +### Total energy deposition in calorimeter by a source track in 13 cells : 0.75238950392372 (GeV) -Source track ID 3904 (gamma,0.37778731993224[GeV]) at (315.89620857512,-387.56881377101,149.20557798732) +Source track ID 4233 (gamma,0.37778731993224[GeV]) at (315.89622177984,-387.56880300822,149.20559185856) Original primary track ID 29 (unknown,1.6025887774154[GeV]) -Cell[10,40] 0.011777836101984 [GeV] -Cell[11,41] 0.016573646730516 [GeV] -Cell[11,40] 0.00019098495177466 [GeV] -Cell[10,41] 0.34873385323797 [GeV] -Cell[10,39] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 5 cells : 0.37778731993224 (GeV) +Cell[18,26] 0.0028492685724514 [GeV] +Cell[10,39] 0.0007305473738082 [GeV] +Cell[10,42] 0.0028250535323997 [GeV] +Cell[10,19] 0.0030491698211292 [GeV] +Cell[11,40] 0.00024435430185065 [GeV] +Cell[11,41] 0.0028550758771552 [GeV] +Cell[10,40] 0.015789453048084 [GeV] +Cell[12,41] 0.0004171180912206 [GeV] +Cell[11,42] 0.00044523005952317 [GeV] +Cell[10,41] 0.34773965345628 [GeV] +Cell[18,27] 0.00084239579834093 [GeV] +### Total energy deposition in calorimeter by a source track in 11 cells : 0.37778731993224 (GeV) -Source track ID 3905 (gamma,0.13885684299554[GeV]) at (475.10691994025,-155.79927671492,345.33261772529) +Source track ID 4273 (gamma,0.000274990728697[GeV]) at (499.97716061272,4.7790025781716,508.42387883059) Original primary track ID 29 (unknown,1.6025887774154[GeV]) -Cell[11,46] 0.00059945520211528 [GeV] -Cell[12,42] 0.0019736350186244 [GeV] -Cell[12,46] 0.0017021896036913 [GeV] -Cell[11,45] 0.13404596542485 [GeV] -Cell[13,36] 0.00053559774625787 [GeV] -### Total energy deposition in calorimeter by a source track in 5 cells : 0.13885684299554 (GeV) +Cell[12,0] 0.000274990728697 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.000274990728697 (GeV) -Source track ID 3798 (gamma,0.1484777566564[GeV]) at (-237.22761015527,440.13981980732,-159.00519769524) +Source track ID 4274 (gamma,0.00011929642469816[GeV]) at (498.72784719928,35.644556778994,404.96087638574) Original primary track ID 29 (unknown,1.6025887774154[GeV]) -Cell[9,16] 0.00035814524592524 [GeV] -Cell[9,15] 0.14811961141048 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.1484777566564 (GeV) +Cell[12,0] 0.00011929642469816 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00011929642469816 (GeV) -Source track ID 3799 (gamma,0.20137908385321[GeV]) at (152.3266653603,476.23165268618,-66.01572562897) +Source track ID 4275 (gamma,0.00031717898933722[GeV]) at (493.30106320111,81.572428213557,332.66456663987) Original primary track ID 29 (unknown,1.6025887774154[GeV]) -Cell[8,10] 0.0010080826931525 [GeV] -Cell[9,10] 0.0090381431631012 [GeV] -Cell[9,9] 0.1884126894207 [GeV] -Cell[9,8] 0.0003982441392237 [GeV] -Cell[9,11] 0.0016422915824517 [GeV] -Cell[10,15] 0.00015539290412294 [GeV] -### Total energy deposition in calorimeter by a source track in 6 cells : 0.20065484390275 (GeV) +Cell[11,1] 0.00031717898933722 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00031717898933722 (GeV) -Source track ID 3787 (pi-,0.39913803910536[GeV]) at (381.97089491014,-322.64258156906,360.56767515765) +Source track ID 4276 (gamma,0.00029873397849275[GeV]) at (498.33890571411,40.72266017414,-96.455196352078) Original primary track ID 29 (unknown,1.6025887774154[GeV]) -Cell[7,9] 7.6806804726175e-06 [GeV] -Cell[7,8] 0.00066045009946117 [GeV] -Cell[12,44] 0.012275518454817 [GeV] -Cell[9,26] 1.5026560399406e-05 [GeV] -Cell[9,25] 8.0215402590511e-08 [GeV] -Cell[6,10] 5.0527913422229e-06 [GeV] -Cell[6,9] 0.00022958053294678 [GeV] -Cell[13,27] 3.76581101591e-09 [GeV] -Cell[11,42] 0.050449175868734 [GeV] -Cell[14,29] 0.0003573187499951 [GeV] -Cell[14,46] 4.5695358483044e-07 [GeV] -Cell[14,27] 0.0014003434224827 [GeV] -Cell[11,43] 0.046533071499185 [GeV] -Cell[12,43] 0.11045593751286 [GeV] -Cell[11,44] 0.0093450359542012 [GeV] -Cell[10,17] 0.0014464719968542 [GeV] -Cell[10,4] 0.0012315595781295 [GeV] -Cell[10,44] 0.00058345390234967 [GeV] -Cell[12,45] 0.0020713799534458 [GeV] -Cell[12,42] 2.4030822871737e-06 [GeV] -Cell[12,41] 1.2029170193273e-10 [GeV] -Cell[13,46] 9.5559679099097e-05 [GeV] -Cell[11,45] 4.285626929186e-05 [GeV] -Cell[13,45] 0.0015643591258275 [GeV] -Cell[13,44] 1.7222168935405e-10 [GeV] -Cell[13,15] 0.0021276447962214 [GeV] -Cell[10,43] 1.3681951043054e-07 [GeV] -Cell[15,45] 3.66696923993e-06 [GeV] -Cell[14,45] 0.001024753539951 [GeV] -Cell[10,1] 0.00019138106017399 [GeV] -Cell[19,34] 2.5629203213612e-05 [GeV] -Cell[18,33] 1.8548411142547e-05 [GeV] -Cell[19,33] 1.2858315778431e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 33 cells : 0.24217739605673 (GeV) +Cell[9,0] 0.00029873397849275 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00029873397849275 (GeV) -Source track ID 3779 (gamma,0.094503470007519[GeV]) at (318.07142315235,385.7856526283,-1059.6704622051) -Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[4,6] 0.093732919474854 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.093732919474854 (GeV) +Source track ID 4277 (gamma,0.00010929014596288[GeV]) at (302.090544776,398.42352184194,497.71218862585) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[12,7] 0.00010929014596288 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00010929014596288 (GeV) -Source track ID 3715 (pi+,0.33202977340618[GeV]) at (210.3597224762,453.59540028503,-1613.6179272098) -Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[1,7] 0.12461660517158 [GeV] -Cell[1,8] 0.10197299222705 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.22658959739863 (GeV) +Source track ID 4235 (e-,0.032955694278782[GeV]) at (431.84635188971,252.00938149115,1123.8989961835) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[15,4] 0.032444695368782 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.032444695368782 (GeV) -Source track ID 3716 (pi-,0.61477364871555[GeV]) at (85.090758463059,492.70636572322,-890.94280367766) -Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[9,35] 0.0010705765420535 [GeV] -Cell[5,19] 1.7839500622358e-05 [GeV] -Cell[6,15] 1.2777979243651e-05 [GeV] -Cell[6,25] 0.00035534737585908 [GeV] -Cell[6,7] 0.00013106114490142 [GeV] -Cell[6,6] 3.0461341857972e-05 [GeV] -Cell[4,27] 1.4953767617953e-08 [GeV] -Cell[6,34] 0.003096839507188 [GeV] -Cell[6,33] 0.001103690899663 [GeV] -Cell[4,28] 2.0345686080304e-05 [GeV] -Cell[6,17] 9.818154736422e-06 [GeV] -Cell[10,34] 0.00056363836226808 [GeV] -Cell[12,30] 9.6296810397689e-07 [GeV] -Cell[12,29] 0.00010629583127707 [GeV] -Cell[14,36] 9.7235812281724e-06 [GeV] -Cell[6,45] 0.001820738194043 [GeV] -Cell[5,18] 1.1895190837095e-05 [GeV] -Cell[8,46] 5.9139439545106e-06 [GeV] -Cell[5,8] 0.0005125057499539 [GeV] -Cell[5,7] 3.3518883810757e-09 [GeV] -Cell[4,3] 0.0013443791347151 [GeV] -Cell[3,5] 9.6679342968855e-06 [GeV] -Cell[10,35] 0.00051278549951451 [GeV] -Cell[10,36] 7.62391492799e-08 [GeV] -Cell[8,44] 2.4654791119474e-06 [GeV] -Cell[9,36] 8.6034060586826e-09 [GeV] -Cell[16,22] 0.00084165123980012 [GeV] -Cell[2,16] 0.00032236805840402 [GeV] -Cell[4,19] 0.0017134551659565 [GeV] -Cell[6,22] 2.1246048273269e-05 [GeV] -Cell[4,11] 0.0031966257875974 [GeV] -Cell[6,35] 0.00075924034009404 [GeV] -Cell[3,41] 0.001134499722495 [GeV] -Cell[5,16] 0.00022355959688286 [GeV] -Cell[5,23] 0.0019462511268811 [GeV] -Cell[2,23] 0.00071172001885941 [GeV] -Cell[0,44] 3.3706753863953e-05 [GeV] -Cell[2,24] 2.248011657116e-06 [GeV] -Cell[2,25] 2.0926744793542e-05 [GeV] -Cell[2,26] 0.0011422380503618 [GeV] -Cell[2,20] 0.00043017710365636 [GeV] -Cell[6,1] 0.00024044058241213 [GeV] -Cell[8,43] 5.8190002198444e-07 [GeV] -Cell[18,21] 0.00011354577007285 [GeV] -Cell[17,42] 0.00033549121165186 [GeV] -Cell[4,10] 0.00052861437444778 [GeV] -Cell[4,9] 7.7548079839289e-05 [GeV] -Cell[3,42] 0.00037905597973781 [GeV] -Cell[2,6] 0.0011404879366062 [GeV] -Cell[2,5] 0.00059126869749369 [GeV] -Cell[5,9] 0.0016916676775064 [GeV] -Cell[5,10] 0.27051830756717 [GeV] -Cell[5,15] 6.4747463329695e-06 [GeV] -Cell[5,11] 0.010581283884846 [GeV] -Cell[19,13] 3.5406141541898e-06 [GeV] -Cell[6,24] 0.0049625253975419 [GeV] -Cell[5,20] 0.0015536034496538 [GeV] -Cell[6,16] 0.00068590245393204 [GeV] -Cell[3,43] 3.3855024078548e-05 [GeV] -Cell[5,12] 0.00058866347357918 [GeV] -Cell[7,0] 0.0026425761737164 [GeV] -Cell[6,0] 0.0037373754096457 [GeV] -Cell[7,1] 0.00014700797401576 [GeV] -Cell[7,47] 0.0018472433459275 [GeV] -Cell[6,47] 7.1657052558294e-10 [GeV] -Cell[6,23] 0.0071999269709997 [GeV] -Cell[5,24] 3.6677920434158e-09 [GeV] -Cell[4,30] 7.878374592201e-05 [GeV] -Cell[4,29] 2.8071998319319e-05 [GeV] -Cell[6,29] 3.6932583810994e-05 [GeV] -Cell[2,3] 2.1169881540118e-05 [GeV] -Cell[4,12] 4.0738314055488e-11 [GeV] -### Total energy deposition in calorimeter by a source track in 72 cells : 0.33302169824937 (GeV) +Source track ID 4236 (e+,0.078272523772049[GeV]) at (-250.80042995368,-432.54958598414,1445.6726131029) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[16,21] 0.00051099891 [GeV] +Cell[16,41] 0.00068677557170393 [GeV] +Cell[17,32] 0.0040596723972484 [GeV] +Cell[17,31] 0.072363030243364 [GeV] +Cell[16,28] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.078131476032316 (GeV) -Source track ID 2156 (pi+,0.42348026339248[GeV]) at (-383.27668852994,321.09029887171,-1072.0726704136) -Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[4,27] 2.6156006351812e-05 [GeV] -Cell[16,28] 0.0034394782941761 [GeV] -Cell[3,9] 0.00055206797385277 [GeV] -Cell[4,16] 0.0001101501174677 [GeV] -Cell[4,18] 0.23665230177192 [GeV] -Cell[4,17] 0.066699348947119 [GeV] -Cell[5,17] 3.5692504328836e-05 [GeV] -Cell[5,16] 4.3688777969919e-05 [GeV] -Cell[1,7] 0.0022230366206149 [GeV] -Cell[2,26] 0.00023005849291633 [GeV] -Cell[2,43] 1.9980900688097e-06 [GeV] -Cell[14,16] 0.0003046881050293 [GeV] -Cell[16,29] 1.3068554078927e-05 [GeV] -Cell[15,16] 0.00011439668291678 [GeV] -Cell[17,28] 0.0008748420283988 [GeV] -Cell[4,25] 0.002526418116957 [GeV] -Cell[2,27] 7.320269016418e-06 [GeV] -Cell[2,6] 2.5948990939924e-06 [GeV] -Cell[3,7] 0.000363488000559 [GeV] -Cell[3,8] 0.0023064247420843 [GeV] -Cell[3,10] 0.00045284090369023 [GeV] -Cell[2,7] 0.0073642648990212 [GeV] -Cell[1,9] 0.00036746242423442 [GeV] -Cell[15,17] 6.1347592964921e-05 [GeV] -Cell[4,12] 6.0599722201005e-07 [GeV] -Cell[2,28] 6.0741308516299e-10 [GeV] -Cell[14,17] 0.00016713885371757 [GeV] -Cell[3,11] 1.9032578449696e-05 [GeV] -Cell[2,8] 0.0025286275323143 [GeV] -Cell[4,26] 5.1272309472552e-05 [GeV] -Cell[2,10] 0.00035030233135683 [GeV] -Cell[1,10] 0.00054912799389638 [GeV] -Cell[2,11] 4.1000617784448e-07 [GeV] -### Total energy deposition in calorimeter by a source track in 33 cells : 0.32843965302485 (GeV) +Source track ID 4120 (gamma,0.0023151116276691[GeV]) at (-246.80885918826,434.83949570639,-156.61167844705) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[9,15] 0.0023151116276691 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0023151116276691 (GeV) -Source track ID 3679 (pi-,0.49371917826327[GeV]) at (311.0294163343,-391.4852515418,-959.50622082757) -Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[7,11] 1.1070463922806e-05 [GeV] -Cell[2,35] 0.00088775997106889 [GeV] -Cell[4,43] 1.9796325359493e-06 [GeV] -Cell[4,22] 0.00097865314981814 [GeV] -Cell[5,35] 1.4641952361671e-07 [GeV] -Cell[4,35] 0.0028656503672741 [GeV] -Cell[5,38] 0.0060604628064873 [GeV] -Cell[5,37] 1.9059772603214e-06 [GeV] -Cell[4,38] 1.4813045563642e-06 [GeV] -Cell[5,22] 0.00041499972020392 [GeV] -Cell[5,30] 5.0792284893646e-05 [GeV] -Cell[2,1] 0.0012374661447407 [GeV] -Cell[5,40] 0.0010747593931757 [GeV] -Cell[6,4] 0.0026524751485716 [GeV] -Cell[4,5] 1.0441073303809e-05 [GeV] -Cell[3,9] 0.0020403947155924 [GeV] -Cell[8,18] 7.2901476523839e-06 [GeV] -Cell[5,42] 0.0013596610549014 [GeV] -Cell[5,43] 0.00067244249808857 [GeV] -Cell[1,17] 0.0062987953333632 [GeV] -Cell[1,18] 0.010528302116677 [GeV] -Cell[1,16] 5.7547759297449e-08 [GeV] -Cell[2,16] 0.00421391396146 [GeV] -Cell[2,18] 3.3460844641695e-06 [GeV] -Cell[4,18] 6.557471351698e-09 [GeV] -Cell[6,35] 1.6819103620946e-10 [GeV] -Cell[3,41] 3.0613955613717e-05 [GeV] -Cell[3,44] 0.00057168876988135 [GeV] -Cell[3,17] 6.5786011691671e-06 [GeV] -Cell[3,34] 0.0062691050337334 [GeV] -Cell[3,32] 0.00069854431173688 [GeV] -Cell[1,30] 8.1511767348275e-08 [GeV] -Cell[4,23] 0.004439810230832 [GeV] -Cell[3,3] 4.5539253333118e-06 [GeV] -Cell[4,15] 0.00019562171842722 [GeV] -Cell[4,14] 1.7207304694011e-06 [GeV] -Cell[2,0] 1.3378081930568e-05 [GeV] -Cell[2,2] 2.3542324840946e-05 [GeV] -Cell[2,25] 1.0793702676892e-07 [GeV] -Cell[7,4] 0.00205405090839 [GeV] -Cell[2,26] 0.0018740010981766 [GeV] -Cell[2,34] 0.0043766948658228 [GeV] -Cell[2,36] 6.1436791147571e-06 [GeV] -Cell[2,42] 3.2665746111888e-06 [GeV] -Cell[2,43] 0.00025951392354909 [GeV] -Cell[2,44] 2.2109717247076e-07 [GeV] -Cell[2,19] 4.9168472959991e-05 [GeV] -Cell[4,39] 5.3881859028479e-05 [GeV] -Cell[5,41] 0.036651374769161 [GeV] -Cell[4,40] 0.0024468144201795 [GeV] -Cell[3,40] 6.0905071433126e-06 [GeV] -Cell[4,24] 0.00060826731894122 [GeV] -Cell[4,25] 4.2370137845865e-05 [GeV] -Cell[3,33] 0.0015723714654873 [GeV] -Cell[3,35] 0.057950821987225 [GeV] -Cell[1,26] 3.3206933381734e-05 [GeV] -Cell[2,27] 2.8177677222629e-09 [GeV] -Cell[3,7] 3.7462072796188e-06 [GeV] -Cell[8,20] 0.00041507985126077 [GeV] -Cell[16,3] 7.2594395605847e-06 [GeV] -Cell[16,18] 0.00016213575605616 [GeV] -Cell[4,41] 0.0084153050567779 [GeV] -Cell[5,29] 0.00070316117509606 [GeV] -Cell[4,42] 0.0020572867213784 [GeV] -Cell[4,37] 1.9550720317056e-05 [GeV] -Cell[4,36] 0.00050001819667761 [GeV] -Cell[5,36] 2.9538083481384e-09 [GeV] -Cell[8,19] 4.0779799633128e-06 [GeV] -Cell[3,16] 0.0034706932262012 [GeV] -Cell[2,32] 4.5547945364888e-06 [GeV] -Cell[1,19] 0.001790458205727 [GeV] -Cell[2,17] 0.00011418644248202 [GeV] -Cell[3,36] 0.00050645451414312 [GeV] -Cell[2,33] 7.3691085651717e-07 [GeV] -Cell[3,45] 5.6783674364851e-05 [GeV] -Cell[3,15] 9.1796196768428e-06 [GeV] -### Total energy deposition in calorimeter by a source track in 76 cells : 0.17985853545784 (GeV) +Source track ID 4162 (gamma,0.0041663598610312[GeV]) at (-274.14461232497,418.14439077093,-178.42122450026) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[9,16] 0.00013325085646238 [GeV] +Cell[8,16] 0.0040331090045688 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.0041663598610312 (GeV) -Source track ID 3680 (pi+,1.8608893392171[GeV]) at (-197.27512124336,459.43718454041,-618.13343738613) -Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[7,11] 7.8380728693446e-05 [GeV] -Cell[7,12] 2.4006318426473e-09 [GeV] -Cell[7,10] 0.00020085931281562 [GeV] -Cell[3,14] 0.0011587203766868 [GeV] -Cell[6,10] 0.00049275483342922 [GeV] -Cell[6,11] 7.706134871114e-06 [GeV] -Cell[6,8] 2.3576692910865e-08 [GeV] -Cell[6,15] 0.31113356386367 [GeV] -Cell[4,38] 3.65132198624e-05 [GeV] -Cell[3,25] 1.5802880516276e-06 [GeV] -Cell[6,17] 5.5502173839159e-05 [GeV] -Cell[2,15] 0.013485843538846 [GeV] -Cell[5,8] 0.00052958924921711 [GeV] -Cell[5,7] 1.3407238584477e-05 [GeV] -Cell[2,16] 0.0034846649365147 [GeV] -Cell[1,15] 4.5835523337701e-08 [GeV] -Cell[1,14] 1.8100475244864e-08 [GeV] -Cell[2,14] 0.018772264031291 [GeV] -Cell[5,17] 0.0035885184146271 [GeV] -Cell[4,13] 9.0730702595465e-10 [GeV] -Cell[5,16] 0.013896741905469 [GeV] -Cell[0,13] 0.016694492847243 [GeV] -Cell[1,12] 0.00016511765642326 [GeV] -Cell[1,13] 0.0022539283864926 [GeV] -Cell[0,12] 0.002288925638996 [GeV] -Cell[4,15] 0.4492207050508 [GeV] -Cell[4,14] 0.045140362689007 [GeV] -Cell[2,36] 0.00060878385025205 [GeV] -Cell[6,13] 0.02396901718065 [GeV] -Cell[5,9] 1.3700855561183e-10 [GeV] -Cell[5,15] 0.22409988842059 [GeV] -Cell[1,37] 9.3132257461548e-12 [GeV] -Cell[2,37] 0.00052664621177917 [GeV] -Cell[3,26] 1.0730079666246e-06 [GeV] -Cell[6,16] 0.0016739838668899 [GeV] -Cell[3,11] 0.012512215020136 [GeV] -Cell[4,37] 3.3033748879916e-06 [GeV] -Cell[3,16] 0.00068887228323922 [GeV] -Cell[3,15] 0.00017536635855235 [GeV] -Cell[6,14] 0.33987865986334 [GeV] -Cell[2,38] 2.9207364832473e-08 [GeV] -Cell[1,38] 9.3394191935658e-11 [GeV] -Cell[6,18] 3.3330139704049e-06 [GeV] -Cell[5,14] 0.0098641156379991 [GeV] -Cell[3,12] 0.021532168414771 [GeV] -Cell[2,13] 0.0024684280616782 [GeV] -Cell[3,13] 1.9641110827706e-07 [GeV] -Cell[0,14] 1.1288559496961e-05 [GeV] -Cell[1,11] 4.6579111949541e-06 [GeV] -Cell[0,11] 1.2418602682374e-07 [GeV] -### Total energy deposition in calorimeter by a source track in 50 cells : 1.5207223844177 (GeV) +Source track ID 4163 (gamma,2.8983649509098e-05[GeV]) at (-274.00745983091,418.23427879242,-163.34784157572) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[9,16] 2.8983649509098e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 2.8983649509098e-05 (GeV) -Source track ID 3677 (gamma,1.5112205487345[GeV]) at (-499.81457434737,13.615846281326,-1633.5784327555) +Source track ID 4160 (e+,0.045006371188282[GeV]) at (-266.56109537032,423.01912774126,-154.74096836912) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[6,47] 0.00017012458646003 [GeV] +Cell[8,14] 0.00029035202428513 [GeV] +Cell[9,15] 0.0017852205918421 [GeV] +Cell[9,16] 0.04271015168644 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.044955848889027 (GeV) + +Source track ID 4129 (gamma,0.0274585945768[GeV]) at (-181.65005214774,465.83608550082,-260.16937699489) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[8,14] 0.01609943623484 [GeV] +Cell[14,43] 0.00083956317717654 [GeV] +Cell[11,9] 0.0027956415358949 [GeV] +Cell[10,27] 0.00051099891 [GeV] +Cell[7,0] 0.00014686196850759 [GeV] +Cell[11,8] 0.0052789673400319 [GeV] +Cell[18,0] 0.0017664918520091 [GeV] +### Total energy deposition in calorimeter by a source track in 7 cells : 0.02743796101846 (GeV) + +Source track ID 4133 (gamma,0.0001980606651514[GeV]) at (382.04476710031,-322.55510526307,-1086.1741112409) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[4,42] 0.0001980606651514 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0001980606651514 (GeV) + +Source track ID 4096 (e-,0.012162428888906[GeV]) at (313.3391477129,389.63903617394,-1257.4883443104) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[7,42] 0.00024489826135545 [GeV] +Cell[3,21] 0.00010904017080963 [GeV] +Cell[3,6] 0.0093901500017852 [GeV] +Cell[1,2] 0.00021191895917149 [GeV] +Cell[3,27] 1.4467104836063e-05 [GeV] +Cell[3,20] 0.00094811259036073 [GeV] +### Total energy deposition in calorimeter by a source track in 6 cells : 0.010918587088319 (GeV) + +Source track ID 4098 (gamma,0.00072601696736454[GeV]) at (-216.09898261988,450.88937635594,-163.585819418) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[9,15] 0.00072601696736454 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00072601696736454 (GeV) + +Source track ID 4099 (gamma,0.0026462951998864[GeV]) at (430.8879426635,-253.64459558054,-340.4411072802) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[8,43] 0.0026462951998864 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0026462951998864 (GeV) + +Source track ID 4107 (gamma,0.00018613230843677[GeV]) at (-221.28748664248,-448.36575276827,52.297844867583) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[10,32] 0.00018613230843677 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00018613230843677 (GeV) + +Source track ID 4108 (gamma,0.00051099891[GeV]) at (-49.049219041887,497.5883580947,-39.020368751642) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[9,12] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00051099891 (GeV) + +Source track ID 4109 (gamma,0.00051099891[GeV]) at (-446.20500886179,-225.61269925837,-501.23032273054) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[7,27] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00051099891 (GeV) + +Source track ID 4095 (gamma,0.20137908385321[GeV]) at (152.32664275887,476.23165991544,-66.015733089561) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[9,8] 0.0002611968605419 [GeV] +Cell[9,9] 0.19647057233821 [GeV] +Cell[9,10] 0.00066827162729944 [GeV] +Cell[10,9] 0.003979043027167 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.20137908385321 (GeV) + +Source track ID 4088 (pi-,0.39912509658559[GeV]) at (385.51787953589,-318.39592421724,371.46583495213) +Original primary track ID 29 (unknown,1.6025887774154[GeV]) +Cell[11,11] 1.4205179850478e-05 [GeV] +Cell[11,43] 0.021466188528113 [GeV] +Cell[8,19] 2.6023049140349e-06 [GeV] +Cell[9,20] 7.9069875027926e-08 [GeV] +Cell[14,32] 8.5342625970952e-06 [GeV] +Cell[14,31] 2.124818766606e-05 [GeV] +Cell[13,20] 0.00018362046427558 [GeV] +Cell[14,25] 7.6844901751315e-05 [GeV] +Cell[11,10] 4.9738763095775e-08 [GeV] +Cell[13,44] 0.00019908933364218 [GeV] +Cell[12,10] 0.00065945271091186 [GeV] +Cell[10,13] 0.0042681534349219 [GeV] +Cell[15,18] 0.0022696717280001 [GeV] +Cell[11,18] 0.0010346478031754 [GeV] +Cell[11,19] 5.8338966986412e-05 [GeV] +Cell[13,19] 0.00067405379492152 [GeV] +Cell[14,18] 0.050166553401138 [GeV] +Cell[11,17] 0.00030954211483606 [GeV] +Cell[12,11] 3.0806529777578e-05 [GeV] +Cell[12,45] 0.00048158933169464 [GeV] +Cell[12,44] 0.0057904267735866 [GeV] +Cell[12,43] 0.036316647645937 [GeV] +Cell[9,19] 0.00031356364258966 [GeV] +Cell[16,16] 0.0011034448753334 [GeV] +Cell[13,43] 3.9565748011228e-11 [GeV] +Cell[10,12] 0.0020721760133445 [GeV] +Cell[15,21] 5.6899371531927e-07 [GeV] +Cell[12,42] 0.0041313202635353 [GeV] +Cell[11,42] 0.044413705891311 [GeV] +Cell[14,19] 0.0051552605436518 [GeV] +Cell[14,20] 0.00023836701270079 [GeV] +Cell[15,20] 0.0016723166248053 [GeV] +Cell[16,15] 1.9391899286347e-09 [GeV] +Cell[15,19] 0.0056950704353617 [GeV] +Cell[17,16] 0.00040194849037107 [GeV] +Cell[16,17] 0.00065571235002188 [GeV] +Cell[11,16] 8.2224658290215e-06 [GeV] +Cell[17,17] 2.8843229200675e-06 [GeV] +Cell[8,20] 0.00081685742482262 [GeV] +Cell[12,17] 9.238175698556e-08 [GeV] +Cell[9,21] 4.7112277442352e-05 [GeV] +Cell[16,20] 1.935901408433e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 42 cells : 0.19078033120969 (GeV) + +Source track ID 4080 (gamma,0.094503470007519[GeV]) at (318.071425845,385.78565040826,-1059.6705949881) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[3,14] 0.00047773347597424 [GeV] -Cell[7,36] 0.00022683742173474 [GeV] -Cell[7,40] 0.00041269778421127 [GeV] +Cell[4,6] 0.093195448787394 [GeV] +Cell[4,5] 0.0013080212201241 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.094503470007518 (GeV) + +Source track ID 4067 (mu+,0.26077682668174[GeV]) at (301.91090253458,398.55966545896,-1607.0240934396) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[1,6] 0.18415025498856 [GeV] +Cell[1,7] 0.013817117632153 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.19796737262071 (GeV) + +Source track ID 4026 (pi-,0.61474472314155[GeV]) at (83.781019880957,492.93076664751,-892.19751741948) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[9,9] 4.7172238839721e-07 [GeV] +Cell[18,26] 0.0012979257958027 [GeV] +Cell[19,26] 9.8186908309685e-05 [GeV] +Cell[5,39] 1.8258872728438e-08 [GeV] +Cell[6,30] 0.0011825899535296 [GeV] +Cell[8,36] 2.2789579566052e-07 [GeV] +Cell[5,33] 2.2828695364296e-08 [GeV] +Cell[5,35] 6.3097149726445e-06 [GeV] +Cell[7,37] 8.1072687203232e-06 [GeV] +Cell[7,35] 0.0012523127811399 [GeV] +Cell[5,45] 4.6250206651166e-08 [GeV] +Cell[1,29] 2.0188418648104e-07 [GeV] +Cell[6,11] 0.024363983370638 [GeV] +Cell[6,9] 0.0023635703163172 [GeV] +Cell[5,2] 0.00014321830475524 [GeV] +Cell[4,41] 0.0018715349847845 [GeV] +Cell[10,46] 0.00074401004606955 [GeV] +Cell[7,44] 0.0021408749617843 [GeV] +Cell[5,38] 0.00056258337083273 [GeV] +Cell[6,36] 0.0018699145703539 [GeV] +Cell[19,25] 9.1197386102635e-05 [GeV] +Cell[19,37] 2.7749714790843e-05 [GeV] +Cell[9,46] 9.0682391726205e-06 [GeV] +Cell[5,44] 8.6118816398084e-09 [GeV] +Cell[5,1] 3.0629643689394e-05 [GeV] +Cell[6,44] 0.0061161146300943 [GeV] +Cell[3,29] 1.2858000613051e-05 [GeV] +Cell[1,40] 0.00032563536184716 [GeV] +Cell[7,36] 0.0005415966383548 [GeV] +Cell[0,24] 0.041912080349976 [GeV] +Cell[5,0] 0.00051567632525797 [GeV] +Cell[0,26] 3.5282981116325e-08 [GeV] +Cell[0,27] 7.8719371231273e-08 [GeV] +Cell[4,39] 0.0058225893958241 [GeV] +Cell[0,23] 4.4847423278092e-05 [GeV] +Cell[0,25] 0.00039326140631799 [GeV] +Cell[1,27] 1.3635932293255e-05 [GeV] +Cell[2,9] 8.9396798388407e-05 [GeV] +Cell[1,28] 0.00067734701023744 [GeV] +Cell[0,29] 5.8429930049897e-10 [GeV] +Cell[3,36] 0.0035683837576723 [GeV] +Cell[5,9] 0.0057842997813807 [GeV] +Cell[5,8] 0.0001508696778258 [GeV] +Cell[6,12] 2.150920636268e-09 [GeV] +Cell[4,42] 3.6324113705177e-07 [GeV] +Cell[5,11] 0.01241406307353 [GeV] +Cell[6,24] 0.0014678615374326 [GeV] +Cell[4,34] 0.00093304139342274 [GeV] +Cell[4,35] 0.00011560305714966 [GeV] +Cell[4,36] 6.0465541027952e-05 [GeV] +Cell[4,11] 0.0032619234993991 [GeV] +Cell[4,10] 0.0047641341924909 [GeV] +Cell[3,8] 0.0056455144092459 [GeV] +Cell[2,8] 3.335589937933e-06 [GeV] +Cell[18,28] 7.927403668873e-06 [GeV] +Cell[15,21] 3.7543851378359e-05 [GeV] +Cell[19,44] 0.00030544561475781 [GeV] +Cell[15,20] 0.00020195000876936 [GeV] +Cell[19,38] 0.00020125557128085 [GeV] +Cell[16,19] 3.0928729279367e-07 [GeV] +Cell[18,27] 3.0427949503064e-05 [GeV] +Cell[19,27] 1.0196908341072e-05 [GeV] +Cell[3,9] 0.012742984129495 [GeV] +Cell[3,10] 0.014500824623721 [GeV] +Cell[4,9] 0.0010534096135848 [GeV] +Cell[16,20] 0.0033843386252865 [GeV] +Cell[5,10] 0.17611264523502 [GeV] +Cell[2,40] 2.820194256492e-05 [GeV] +Cell[2,39] 3.3424006796849e-06 [GeV] +Cell[2,29] 6.4236997277476e-06 [GeV] +Cell[2,30] 7.8875407052692e-06 [GeV] +Cell[3,35] 0.00033715407068678 [GeV] +Cell[8,35] 0.00072980794727948 [GeV] +Cell[7,34] 0.0031300804941087 [GeV] +Cell[19,40] 0.0090198021517025 [GeV] +Cell[19,39] 8.3761103451252e-06 [GeV] +Cell[0,34] 0.00030424301744256 [GeV] +Cell[0,35] 1.0209245374426e-08 [GeV] +Cell[2,11] 0.00074124653216314 [GeV] +### Total energy deposition in calorimeter by a source track in 79 cells : 0.35560561448425 (GeV) + +Source track ID 2286 (pi+,0.4234145522975[GeV]) at (-383.0089074851,321.40967127184,-1075.1954952006) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[3,18] 0.0012254130964986 [GeV] +Cell[5,12] 0.0013196007312794 [GeV] +Cell[4,18] 0.20077613887188 [GeV] +Cell[4,17] 0.1624644415129 [GeV] +Cell[4,19] 0.0020309882723797 [GeV] +Cell[5,9] 1.1360098142177e-09 [GeV] +Cell[3,44] 0.00094970980944206 [GeV] +Cell[4,16] 0.0098587340872806 [GeV] +Cell[3,16] 0.0027551592077538 [GeV] +Cell[5,11] 3.4217082429677e-09 [GeV] +Cell[4,10] 7.0497044362128e-09 [GeV] +Cell[4,9] 9.2053618345744e-09 [GeV] +Cell[5,10] 1.0944038626803e-07 [GeV] +### Total energy deposition in calorimeter by a source track in 13 cells : 0.38138031584259 (GeV) + +Source track ID 3972 (pi-,0.49368256076696[GeV]) at (312.16720230283,-390.57859363568,-961.99537177871) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[8,9] 3.0895331292413e-07 [GeV] +Cell[8,8] 8.083090869718e-06 [GeV] +Cell[5,39] 9.288870738601e-06 [GeV] +Cell[5,41] 0.097017306479567 [GeV] +Cell[6,30] 3.9879256801214e-06 [GeV] +Cell[6,29] 5.6801158352755e-06 [GeV] +Cell[6,35] 5.958213375834e-08 [GeV] +Cell[4,0] 7.3896796789086e-07 [GeV] +Cell[1,22] 3.523996565491e-08 [GeV] +Cell[6,34] 0.0067018603455724 [GeV] +Cell[7,30] 3.909928883445e-05 [GeV] +Cell[9,26] 4.462526703719e-11 [GeV] +Cell[7,31] 6.3454513438046e-06 [GeV] +Cell[4,41] 0.013785572383523 [GeV] +Cell[6,31] 0.0019505233437604 [GeV] +Cell[10,45] 6.0984792071395e-07 [GeV] +Cell[9,45] 0.0024261722450929 [GeV] +Cell[12,12] 5.6679174467718e-06 [GeV] +Cell[6,33] 0.0007980533209292 [GeV] +Cell[8,38] 0.00010847401878766 [GeV] +Cell[4,38] 0.0022230567968225 [GeV] +Cell[5,31] 0.00043361367142006 [GeV] +Cell[12,13] 6.3901773296607e-05 [GeV] +Cell[6,36] 2.0826013951591e-07 [GeV] +Cell[9,46] 2.2060910706614e-06 [GeV] +Cell[9,3] 8.7476996150713e-05 [GeV] +Cell[5,44] 0.015423126876074 [GeV] +Cell[9,2] 0.0011457489198229 [GeV] +Cell[10,26] 2.4450124075202e-06 [GeV] +Cell[12,24] 2.5719758123159e-06 [GeV] +Cell[10,20] 7.6502555748448e-06 [GeV] +Cell[4,4] 0.00089226712094512 [GeV] +Cell[9,16] 7.4025751964655e-06 [GeV] +Cell[4,47] 0.0003949172106752 [GeV] +Cell[7,28] 1.6139058570843e-05 [GeV] +Cell[8,37] 1.5027961890269e-05 [GeV] +Cell[6,44] 0.0002300701592826 [GeV] +Cell[5,18] 0.0030010674696075 [GeV] +Cell[3,7] 0.00072870598610405 [GeV] +Cell[3,17] 1.4878321150036e-05 [GeV] +Cell[3,18] 9.0498078789096e-06 [GeV] +Cell[2,25] 0.0034938164033919 [GeV] +Cell[2,4] 1.47086099023e-05 [GeV] +Cell[2,26] 5.3349119291852e-05 [GeV] +Cell[4,18] 0.0040333333602732 [GeV] +Cell[4,17] 8.4929262862943e-05 [GeV] +Cell[0,33] 1.1591211659834e-08 [GeV] +Cell[5,43] 0.0035389387314184 [GeV] +Cell[5,19] 0.0018263340011241 [GeV] +Cell[0,16] 4.8469613420821e-06 [GeV] +Cell[0,15] 3.4199969377369e-08 [GeV] +Cell[2,18] 0.00050588896595764 [GeV] +Cell[1,18] 1.1534541932633e-05 [GeV] +Cell[4,39] 0.005000995844116 [GeV] +Cell[2,16] 0.00014486015951661 [GeV] +Cell[4,43] 5.183478078925e-05 [GeV] +Cell[3,27] 9.7171007946599e-06 [GeV] +Cell[3,4] 2.2461252025096e-05 [GeV] +Cell[3,19] 0.0035501309268704 [GeV] +Cell[6,32] 0.00099187225245782 [GeV] +Cell[3,26] 5.1378570205998e-06 [GeV] +Cell[2,17] 4.4107975812381e-05 [GeV] +Cell[5,9] 8.8747246772982e-06 [GeV] +Cell[2,19] 0.00024966726604634 [GeV] +Cell[4,16] 1.4681890024804e-07 [GeV] +Cell[8,24] 2.4287153995829e-05 [GeV] +Cell[4,42] 0.00072240672340581 [GeV] +Cell[4,40] 0.0083833241701562 [GeV] +Cell[6,41] 2.1700303933812e-05 [GeV] +Cell[6,42] 0.0003313484164529 [GeV] +Cell[6,43] 2.003549879862e-05 [GeV] +Cell[3,16] 0.00121177314867 [GeV] +Cell[5,32] 0.00019006790221044 [GeV] +Cell[5,26] 9.0236745600123e-06 [GeV] +Cell[5,24] 8.0110082926694e-06 [GeV] +Cell[5,25] 0.0005474168791676 [GeV] +Cell[4,11] 0.00028006868996827 [GeV] +Cell[12,11] 5.6621222142894e-08 [GeV] +Cell[3,8] 2.3936456500451e-08 [GeV] +Cell[10,14] 0.00021412834429248 [GeV] +Cell[11,13] 8.187873463612e-07 [GeV] +Cell[5,40] 0.012658440517186 [GeV] +Cell[5,42] 0.0063911460733037 [GeV] +Cell[3,9] 0.00023455168247347 [GeV] +Cell[3,10] 1.5045982426273e-05 [GeV] +Cell[3,5] 0.0034085640262176 [GeV] +Cell[8,2] 3.7891633575782e-05 [GeV] +Cell[1,7] 0.00090097384949108 [GeV] +Cell[5,10] 0.0044662002685795 [GeV] +Cell[3,28] 0.00087940930477191 [GeV] +Cell[2,13] 1.5714184031822e-05 [GeV] +Cell[5,30] 3.1353862726405e-05 [GeV] +Cell[2,5] 7.3398460129397e-05 [GeV] +Cell[0,32] 1.1317111784592e-08 [GeV] +Cell[0,13] 3.204688173355e-07 [GeV] +### Total energy deposition in calorimeter by a source track in 95 cells : 0.21229444533128 (GeV) + +Source track ID 3973 (pi+,1.8609204912463[GeV]) at (-197.42537679695,459.37263805823,-618.26476999323) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[5,39] 1.2362434063107e-09 [GeV] +Cell[5,41] 9.7773594898172e-06 [GeV] +Cell[5,14] 0.009732554290407 [GeV] +Cell[11,27] 2.0201550796628e-09 [GeV] +Cell[6,14] 0.15159074852978 [GeV] +Cell[5,17] 0.00020597946731019 [GeV] +Cell[3,17] 0.0011729336095755 [GeV] +Cell[4,18] 4.2108586058021e-09 [GeV] +Cell[4,17] 0.0029169206658413 [GeV] +Cell[5,16] 0.05048986439554 [GeV] +Cell[5,15] 0.23258001100002 [GeV] +Cell[4,16] 0.044161116178909 [GeV] +Cell[3,16] 0.0033528263188794 [GeV] +Cell[4,15] 0.76869062732534 [GeV] +Cell[5,40] 0.00029332796640347 [GeV] +Cell[6,15] 0.16721854241662 [GeV] +Cell[3,15] 0.33173642130404 [GeV] +Cell[4,14] 1.9264696097366e-05 [GeV] +Cell[2,15] 2.4690783757251e-06 [GeV] +Cell[2,14] 6.447950279005e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 20 cells : 1.7642378715727 (GeV) + +Source track ID 3970 (gamma,1.5112205487345[GeV]) at (-499.81457214901,13.615926978989,-1633.5784605845) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[5,28] 0.00051099891 [GeV] +Cell[1,22] 0.014205287245333 [GeV] +Cell[2,35] 0.00023001734271408 [GeV] +Cell[1,1] 0.0011852870339802 [GeV] +Cell[1,46] 0.00074350935024161 [GeV] +Cell[2,25] 0.0050132603666639 [GeV] +Cell[5,13] 0.0013996252114797 [GeV] +Cell[1,24] 0.11561992116326 [GeV] +Cell[0,33] 0.00044387649698022 [GeV] +Cell[1,31] 0.00078752236118669 [GeV] +Cell[0,19] 0.00027596199868019 [GeV] +Cell[1,15] 0.00082186075859172 [GeV] +Cell[0,26] 0.0010668064163226 [GeV] +Cell[0,40] 0.00015387986086258 [GeV] +Cell[0,23] 0.00051821652775775 [GeV] +Cell[0,25] 0.00031137782228018 [GeV] +Cell[1,27] 0.0011887345918904 [GeV] +Cell[0,47] 0.00102199782 [GeV] +Cell[2,45] 0.00051099891 [GeV] +Cell[3,46] 0.00021547969602959 [GeV] +Cell[4,35] 0.00095692920468632 [GeV] +Cell[10,7] 0.00044579820071917 [GeV] +Cell[3,9] 0.001273266549914 [GeV] +Cell[2,11] 0.00086808267100651 [GeV] +Cell[2,14] 0.0011529410588974 [GeV] +Cell[1,23] 1.3280406573386 [GeV] +Cell[2,2] 0.001499853330759 [GeV] +Cell[0,14] 0.0012311314957825 [GeV] +Cell[0,31] 0.0011588872939666 [GeV] +### Total energy deposition in calorimeter by a source track in 29 cells : 1.4828521670286 (GeV) + +Source track ID 3971 (gamma,2.1679106429722[GeV]) at (-488.39602935632,-107.09490421576,-1544.0566841374) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[10,37] 8.1076960322747e-05 [GeV] +Cell[2,1] 0.001717198846689 [GeV] +Cell[2,23] 0.0023012571403834 [GeV] +Cell[8,6] 0.00058568661540964 [GeV] +Cell[5,3] 0.0011451481909634 [GeV] +Cell[7,27] 9.395554345873e-05 [GeV] +Cell[1,25] 0.35887477874875 [GeV] +Cell[3,37] 0.00051099891 [GeV] +Cell[1,5] 0.00085564899397557 [GeV] +Cell[7,32] 0.0004121817413584 [GeV] +Cell[3,1] 0.0015694146120759 [GeV] +Cell[1,1] 0.00051099891 [GeV] +Cell[2,24] 0.0011025566409737 [GeV] +Cell[2,25] 1.6448476362135 [GeV] +Cell[1,4] 0.00051099891 [GeV] +Cell[3,11] 0.00051099891 [GeV] +Cell[2,26] 0.013920023462601 [GeV] +Cell[4,12] 0.00051099891 [GeV] +Cell[1,24] 0.0092192288987601 [GeV] +Cell[0,16] 0.00048984950140641 [GeV] +Cell[1,16] 0.0010340480247243 [GeV] +Cell[1,15] 0.00072663758998504 [GeV] +Cell[0,37] 0.0011678847713837 [GeV] +Cell[2,18] 0.00077649034309097 [GeV] +Cell[1,26] 0.017080301262916 [GeV] +Cell[1,27] 0.0041547683763803 [GeV] +Cell[1,13] 0.0016323629794239 [GeV] +Cell[0,6] 0.00051099891 [GeV] +Cell[1,3] 0.0017296927692774 [GeV] +Cell[1,28] 0.0005075230013429 [GeV] +Cell[0,44] 0.00035786827528263 [GeV] +Cell[3,4] 0.0022022214861978 [GeV] +Cell[2,12] 0.00048614692112161 [GeV] +Cell[0,12] 0.0017453370333118 [GeV] +Cell[2,46] 0.00501450494707 [GeV] +Cell[2,19] 0.0028879608422967 [GeV] +Cell[2,20] 0.0026109997431463 [GeV] Cell[4,3] 0.00051099891 [GeV] -Cell[0,5] 0.00069353415671881 [GeV] -Cell[0,24] 0.026115993550259 [GeV] -Cell[1,24] 0.080198058341575 [GeV] -Cell[0,21] 0.00032244974781571 [GeV] -Cell[0,22] 0.00018854916218429 [GeV] -Cell[0,23] 0.0013395003845352 [GeV] -Cell[1,45] 0.00038299789507927 [GeV] -Cell[1,47] 0.0039416120480331 [GeV] -Cell[1,17] 0.0013275349445674 [GeV] -Cell[1,18] 0.0024890290022509 [GeV] -Cell[1,16] 0.00047821300164584 [GeV] -Cell[0,47] 0.00051099891 [GeV] -Cell[3,44] 0.00051099891 [GeV] -Cell[3,32] 0.00082998295747519 [GeV] -Cell[2,23] 0.00071436710969427 [GeV] -Cell[1,23] 1.3608989492127 [GeV] -Cell[1,22] 0.0028172841685385 [GeV] -Cell[2,25] 0.0011464202850197 [GeV] -Cell[3,40] 0.00052903973756219 [GeV] -Cell[4,7] 0.00051099891 [GeV] -Cell[1,26] 0.00070610044877695 [GeV] -Cell[2,27] 0.0010269698476566 [GeV] -Cell[1,31] 0.0013416577338109 [GeV] -Cell[3,43] 0.00051099891 [GeV] -Cell[2,10] 0.00093069457454021 [GeV] -Cell[1,10] 0.00029358369142766 [GeV] -Cell[1,3] 0.0045104361021221 [GeV] -Cell[0,33] 5.8497192293651e-05 [GeV] -Cell[5,33] 0.0008069862783033 [GeV] -Cell[0,46] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 34 cells : 1.4982717037165 (GeV) - -Source track ID 3678 (gamma,2.1679106429722[GeV]) at (-488.39604080719,-107.09485199515,-1544.0567440692) -Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[2,35] 0.0024362971368577 [GeV] -Cell[8,7] 0.00051099891 [GeV] -Cell[6,7] 0.00051099891 [GeV] -Cell[3,39] 0.0025488772307891 [GeV] -Cell[2,1] 0.00023909525121405 [GeV] -Cell[5,7] 0.00095235252727029 [GeV] -Cell[6,4] 0.00070464918326877 [GeV] +Cell[2,34] 0.0016091434511601 [GeV] +Cell[2,0] 0.0019638343283134 [GeV] +Cell[3,0] 0.0028686539732468 [GeV] +Cell[3,23] 0.0002077749203741 [GeV] +Cell[2,7] 0.0016449032773275 [GeV] Cell[5,4] 0.00051099891 [GeV] -Cell[4,3] 0.00033730381461523 [GeV] -Cell[6,44] 0.0016189535622172 [GeV] -Cell[3,9] 0.00051099891 [GeV] -Cell[0,5] 0.00046327454695543 [GeV] -Cell[1,39] 0.00085498794198136 [GeV] -Cell[5,44] 0.0011016948963348 [GeV] -Cell[1,24] 0.0099637108219702 [GeV] -Cell[0,25] 0.00051099891 [GeV] -Cell[1,44] 0.00077113547873586 [GeV] -Cell[1,45] 0.001544706181541 [GeV] -Cell[0,16] 0.00034265547917253 [GeV] -Cell[2,14] 0.00051099891 [GeV] -Cell[4,13] 0.00041172895582423 [GeV] -Cell[0,13] 0.0083245773489651 [GeV] -Cell[2,46] 0.0023783892228479 [GeV] -Cell[0,12] 0.0010669037294539 [GeV] -Cell[1,22] 0.00086643885862608 [GeV] -Cell[4,14] 0.00035752796105027 [GeV] -Cell[2,0] 0.00049324681211621 [GeV] -Cell[2,24] 0.0052180822663012 [GeV] -Cell[1,25] 0.35121812913874 [GeV] +Cell[5,5] 0.0014685041936319 [GeV] +Cell[2,8] 0.00099327581259979 [GeV] +Cell[12,4] 0.00017441153670621 [GeV] +Cell[4,15] 0.002144032604169 [GeV] +Cell[3,15] 0.0038603692704226 [GeV] +Cell[1,10] 0.00071133202080935 [GeV] Cell[1,7] 0.00051099891 [GeV] -Cell[1,8] 1.7704160789026e-06 [GeV] -Cell[2,25] 1.6437666772869 [GeV] -Cell[2,26] 0.0066125460819183 [GeV] -Cell[2,34] 0.0081510666046633 [GeV] -Cell[1,42] 0.00038919267181218 [GeV] -Cell[2,45] 0.00071863640754602 [GeV] -Cell[4,2] 0.0013682353031411 [GeV] -Cell[4,6] 0.0019607631983185 [GeV] -Cell[1,26] 0.011764251218443 [GeV] -Cell[2,27] 2.7528571423176e-05 [GeV] -Cell[1,27] 0.0017068647765576 [GeV] -Cell[2,7] 0.0037294351299291 [GeV] -Cell[3,26] 0.00035519892971328 [GeV] -Cell[1,0] 0.00078656317548219 [GeV] -Cell[4,45] 0.00098921312320884 [GeV] -Cell[1,9] 0.0007994343289576 [GeV] -Cell[3,43] 0.0012867613084956 [GeV] -Cell[2,3] 0.00053163441620889 [GeV] -Cell[4,26] 0.00051099891 [GeV] -Cell[3,16] 0.0010948108256368 [GeV] -Cell[3,36] 0.00053207709078587 [GeV] -Cell[1,11] 0.0027812039322004 [GeV] -Cell[0,11] 0.018259711422495 [GeV] -Cell[3,27] 0.000300149561774 [GeV] -Cell[0,10] 0.0019392803792136 [GeV] -Cell[3,37] 0.0016467072307793 [GeV] -Cell[0,41] 0.00058516017176053 [GeV] -Cell[0,8] 0.0030088904792111 [GeV] -Cell[6,43] 0.00051099891 [GeV] -Cell[1,32] 0.00017239795537257 [GeV] -### Total energy deposition in calorimeter by a source track in 60 cells : 2.1140798705349 (GeV) +Cell[1,23] 0.0001024657890225 [GeV] +Cell[2,2] 0.0059409571140126 [GeV] +Cell[6,5] 0.00030958779623377 [GeV] +Cell[0,39] 0.00049579914383197 [GeV] +Cell[2,3] 0.0012446637816184 [GeV] +Cell[2,22] 0.0013160072716331 [GeV] +Cell[2,28] 0.00047579124040912 [GeV] +Cell[1,38] 0.00025351979161306 [GeV] +Cell[1,37] 0.00025747911838694 [GeV] +### Total energy deposition in calorimeter by a source track in 60 cells : 2.1139718871031 (GeV) -Source track ID 3639 (e-,0.0014093873053309[GeV]) at (-173.73042789738,468.84724423056,-1363.4892814579) +Source track ID 3946 (pi-,0.39147788543889[GeV]) at (-225.44787120188,446.28831193584,-1622.6141488823) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[3,14] 6.7996880545723e-05 [GeV] -Cell[2,44] 1.4033726539112e-05 [GeV] -Cell[2,47] 0.00022931224573416 [GeV] -Cell[0,38] 9.0716238187631e-06 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.00032041447663775 (GeV) +Cell[1,41] 0.00019795614327666 [GeV] +Cell[1,40] 0.00028913246984337 [GeV] +Cell[0,16] 0.011761017698713 [GeV] +Cell[0,15] 0.0017975547091931 [GeV] +Cell[1,16] 0.16959414577111 [GeV] +Cell[1,15] 0.10783123427517 [GeV] +Cell[0,17] 0.0035005263149811 [GeV] +Cell[1,18] 0.00019425366211317 [GeV] +Cell[1,19] 0.0055848733485872 [GeV] +Cell[1,17] 0.00062198749325216 [GeV] +Cell[0,14] 4.1380925949852e-08 [GeV] +### Total energy deposition in calorimeter by a source track in 11 cells : 0.30137272326716 (GeV) -Source track ID 3636 (pi-,0.39035628096601[GeV]) at (-230.85979147229,443.51297239356,-1610.6419735397) +Source track ID 3901 (pi+,4.0198286689509[GeV]) at (-418.65520922187,-273.36388896741,-1788.2350138098) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[0,31] 6.2495019619746e-08 [GeV] -Cell[1,17] 0.010115356533144 [GeV] -Cell[0,17] 0.0019410369992769 [GeV] -Cell[0,16] 0.0061872525104766 [GeV] -Cell[1,18] 1.8005571997492e-05 [GeV] -Cell[1,16] 0.20272056000663 [GeV] -Cell[1,15] 0.097582264384252 [GeV] -Cell[1,14] 0.00029585999430674 [GeV] -Cell[0,36] 0.00054561449403691 [GeV] -Cell[2,0] 8.6321961134672e-11 [GeV] -Cell[4,31] 2.9614763678182e-05 [GeV] -Cell[1,20] 2.6333698770031e-08 [GeV] -Cell[2,39] 4.2487808968872e-09 [GeV] -Cell[2,34] 1.8141999844374e-06 [GeV] -Cell[2,47] 1.8426820054174e-07 [GeV] -Cell[1,34] 7.4475831235759e-05 [GeV] -Cell[0,0] 9.1684696411903e-05 [GeV] -Cell[1,0] 0.00099289510700237 [GeV] -Cell[0,35] 0.0013574899311174 [GeV] -Cell[4,30] 1.1456338743642e-05 [GeV] -Cell[4,29] 0.00012491024652741 [GeV] -Cell[1,19] 0.0047513990883635 [GeV] -Cell[2,33] 0.00044975813650626 [GeV] -Cell[1,1] 7.5728952249847e-05 [GeV] -Cell[0,1] 0.00014104967053572 [GeV] -Cell[0,15] 0.00062056190078852 [GeV] -Cell[1,35] 0.0014941683554252 [GeV] -Cell[0,37] 1.2286386225469e-05 [GeV] -Cell[1,36] 0.0019663703937484 [GeV] -### Total energy deposition in calorimeter by a source track in 29 cells : 0.33160189192469 (GeV) +Cell[8,8] 0.0016965680155945 [GeV] +Cell[8,7] 0.00026408721396092 [GeV] +Cell[5,39] 4.113818510973e-06 [GeV] +Cell[5,41] 0.00045282231210047 [GeV] +Cell[7,13] 0.00068458068929104 [GeV] +Cell[7,8] 0.002096807980551 [GeV] +Cell[7,11] 0.00057734929922509 [GeV] +Cell[1,41] 0.00060844429845913 [GeV] +Cell[2,41] 0.00028676792200349 [GeV] +Cell[7,7] 6.9923737555655e-10 [GeV] +Cell[6,47] 0.00020586049558949 [GeV] +Cell[0,21] 3.4000574669335e-06 [GeV] +Cell[0,22] 5.719027511077e-06 [GeV] +Cell[7,12] 2.4335998128123e-05 [GeV] +Cell[6,46] 0.00034874268116431 [GeV] +Cell[2,42] 0.010201346704328 [GeV] +Cell[6,20] 4.2351973661425e-09 [GeV] +Cell[2,23] 0.00037286459038671 [GeV] +Cell[1,30] 0.0015006176863724 [GeV] +Cell[1,29] 0.0051985054866676 [GeV] +Cell[8,6] 0.00012469689332647 [GeV] +Cell[2,35] 0.0016660085149584 [GeV] +Cell[4,41] 0.0033535167681029 [GeV] +Cell[5,20] 5.3726646206428e-05 [GeV] +Cell[1,34] 7.1691903345936e-05 [GeV] +Cell[2,33] 0.00054387250567856 [GeV] +Cell[6,21] 9.2472690761497e-05 [GeV] +Cell[10,3] 0.00011357735898423 [GeV] +Cell[1,25] 0.0011361789072365 [GeV] +Cell[3,38] 0.0017763774018606 [GeV] +Cell[3,37] 0.0052728496831221 [GeV] +Cell[4,38] 0.00085654719781576 [GeV] +Cell[11,32] 2.6889386567746e-06 [GeV] +Cell[11,33] 3.2438464078268e-06 [GeV] +Cell[12,2] 0.00048586183836191 [GeV] +Cell[3,1] 0.0026592704827499 [GeV] +Cell[6,44] 3.3943719725471e-05 [GeV] +Cell[4,13] 0.001447800280831 [GeV] +Cell[5,7] 0.0039726205552075 [GeV] +Cell[5,17] 9.7061274573207e-11 [GeV] +Cell[3,2] 0.00062068237253322 [GeV] +Cell[4,6] 5.5703671849869e-05 [GeV] +Cell[4,7] 0.0015413185785813 [GeV] +Cell[1,1] 0.00067755226702513 [GeV] +Cell[2,24] 1.3902687036762e-05 [GeV] +Cell[3,18] 2.0371996811264e-08 [GeV] +Cell[1,46] 0.00051099891 [GeV] +Cell[2,25] 0.0026830119530051 [GeV] +Cell[2,4] 0.00079356870197273 [GeV] +Cell[2,26] 0.00021963531728155 [GeV] +Cell[5,12] 0.00051099891 [GeV] +Cell[4,12] 1.0247778845951e-08 [GeV] +Cell[3,42] 3.4859369596234e-05 [GeV] +Cell[0,24] 0.00069420816741578 [GeV] +Cell[1,24] 0.00051637234204019 [GeV] +Cell[0,20] 0.00040000733497254 [GeV] +Cell[0,43] 3.8083863194061e-07 [GeV] +Cell[0,33] 0.001891413063071 [GeV] +Cell[1,35] 0.0068062986252292 [GeV] +Cell[6,0] 4.2095982735191e-09 [GeV] +Cell[0,19] 0.00013370055977248 [GeV] +Cell[0,18] 0.035361222009902 [GeV] +Cell[1,0] 0.00091667261838187 [GeV] +Cell[0,26] 0.017604909911068 [GeV] +Cell[1,33] 0.0017941604620883 [GeV] +Cell[0,27] 0.20543751890034 [GeV] +Cell[0,37] 0.00074054653718986 [GeV] +Cell[2,18] 0.0034698988125922 [GeV] +Cell[4,39] 0.0023508664961292 [GeV] +Cell[0,41] 6.2442073469838e-05 [GeV] +Cell[0,23] 0.017196862345219 [GeV] +Cell[0,25] 0.0088476738289854 [GeV] +Cell[1,26] 0.013231647404393 [GeV] +Cell[1,27] 0.022713942429495 [GeV] +Cell[2,16] 0.003879236802666 [GeV] +Cell[1,17] 0.00054649105399221 [GeV] +Cell[4,5] 2.3081930703484e-07 [GeV] +Cell[5,16] 0.0014862560938118 [GeV] +Cell[0,3] 8.8853994384408e-11 [GeV] +Cell[3,34] 2.6164634968154e-05 [GeV] +Cell[2,32] 3.0771038052535e-07 [GeV] +Cell[0,28] 0.66691493156646 [GeV] +Cell[1,28] 0.50586795802496 [GeV] +Cell[0,38] 0.0071702137536858 [GeV] +Cell[0,30] 0.0062374505891546 [GeV] +Cell[0,29] 0.027187579299718 [GeV] +Cell[3,36] 0.00028751126268617 [GeV] +Cell[0,44] 1.6982967964623e-06 [GeV] +Cell[0,9] 0.037247863517369 [GeV] +Cell[3,4] 1.3451021911806e-06 [GeV] +Cell[0,12] 0.0063794512681608 [GeV] +Cell[0,11] 0.0020490804284981 [GeV] +Cell[2,17] 0.014183752656695 [GeV] +Cell[4,22] 3.6174374918119e-07 [GeV] +Cell[4,37] 0.0010214699982792 [GeV] +Cell[5,8] 3.0986969887863e-06 [GeV] +Cell[4,8] 0.00064629053820259 [GeV] +Cell[2,46] 0.001105334074687 [GeV] +Cell[2,19] 2.531670941039e-06 [GeV] +Cell[5,21] 0.00034034726232665 [GeV] +Cell[4,3] 0.00016301441098403 [GeV] +Cell[2,34] 0.00075676812934182 [GeV] +Cell[4,42] 0.00079929333480686 [GeV] +Cell[4,40] 0.0063250169281784 [GeV] +Cell[3,39] 0.0016226438891364 [GeV] +Cell[6,41] 0.0067692390989232 [GeV] +Cell[6,42] 0.0041031971511731 [GeV] +Cell[6,43] 0.0028879268220801 [GeV] +Cell[3,3] 5.4803781040391e-08 [GeV] +Cell[5,34] 0.0033892238292183 [GeV] +Cell[1,43] 6.3892746356942e-07 [GeV] +Cell[1,42] 1.7147466451206e-08 [GeV] +Cell[0,8] 0.00062775989404668 [GeV] +Cell[2,36] 0.00083666320471559 [GeV] +Cell[2,27] 0.00049450530202716 [GeV] +Cell[4,35] 0.0076483569337473 [GeV] +Cell[4,36] 0.0020582411869302 [GeV] +Cell[4,10] 7.0979600225201e-06 [GeV] +Cell[5,40] 8.8057163535154e-05 [GeV] +Cell[5,42] 0.00050505149883281 [GeV] +Cell[3,14] 3.9534526840725e-05 [GeV] +Cell[6,7] 7.1058340836316e-08 [GeV] +Cell[1,10] 0.00036552761165819 [GeV] +Cell[4,9] 5.8234197439901e-05 [GeV] +Cell[3,5] 5.4139407438925e-08 [GeV] +Cell[7,4] 3.6482873838395e-07 [GeV] +Cell[5,46] 1.4211580855772e-07 [GeV] +Cell[3,35] 0.0016086179290727 [GeV] +Cell[0,34] 0.0039723464297908 [GeV] +Cell[0,35] 0.00013202231647256 [GeV] +Cell[0,32] 0.0037678012964753 [GeV] +Cell[2,15] 0.0007980626331978 [GeV] +Cell[1,23] 9.5812637255221e-09 [GeV] +Cell[0,31] 5.603798955661e-05 [GeV] +Cell[2,3] 4.9195184317227e-05 [GeV] +Cell[2,22] 4.8254150897264e-11 [GeV] +Cell[2,28] 2.7161572239493e-05 [GeV] +Cell[0,45] 0.0012384123080174 [GeV] +Cell[1,8] 1.9172838423401e-05 [GeV] +Cell[1,9] 0.0012562583806844 [GeV] +Cell[7,6] 7.1401037419037e-05 [GeV] +Cell[7,5] 1.550368638425e-05 [GeV] +Cell[3,13] 0.0046611968794908 [GeV] +Cell[3,12] 0.00025594257007583 [GeV] +Cell[0,36] 0.00081884708907597 [GeV] +Cell[2,6] 0.00041329391812394 [GeV] +Cell[0,10] 0.00075801751887392 [GeV] +Cell[8,15] 2.512355977467e-05 [GeV] +Cell[0,2] 0.0013260098301897 [GeV] +Cell[0,1] 0.0006487021844697 [GeV] +Cell[1,44] 9.5142750069499e-09 [GeV] +Cell[0,42] 2.4457013296342e-08 [GeV] +Cell[1,36] 0.00076315759260343 [GeV] +Cell[3,33] 0.00039613708499747 [GeV] +### Total energy deposition in calorimeter by a source track in 154 cells : 1.7412450162515 (GeV) -Source track ID 3602 (pi+,4.0199496917955[GeV]) at (-418.44579588165,-273.68433625067,-1788.2200124548) +Source track ID 3902 (neutron,7.3741998938947[GeV]) at (-413.0762339184,-281.72331279429,-1776.1644807987) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[7,12] 1.3435666915029e-08 [GeV] -Cell[2,35] 6.3443175579437e-05 [GeV] -Cell[3,14] 1.4111348491497e-08 [GeV] -Cell[6,11] 0.0008588057235653 [GeV] -Cell[5,19] 0.00050078853227217 [GeV] -Cell[6,15] 6.5235578063039e-08 [GeV] -Cell[4,27] 5.4115809462019e-08 [GeV] -Cell[7,13] 0.00023620162320913 [GeV] -Cell[7,42] 1.8540132904263e-06 [GeV] -Cell[3,39] 5.1545189667763e-05 [GeV] -Cell[2,15] 0.0034277213458021 [GeV] -Cell[0,43] 3.2948464409742e-05 [GeV] -Cell[7,15] 3.1016243156046e-09 [GeV] -Cell[7,43] 0.00098626157492566 [GeV] -Cell[6,26] 4.566279167193e-05 [GeV] -Cell[3,4] 0.00011932174330013 [GeV] -Cell[4,5] 0.00015412406899327 [GeV] -Cell[3,5] 0.0049597485755166 [GeV] -Cell[5,46] 0.00025002465344335 [GeV] -Cell[6,44] 0.00066068669672859 [GeV] -Cell[0,4] 0.00072957170723343 [GeV] -Cell[1,5] 7.835495646998e-05 [GeV] -Cell[0,25] 0.0049326148435771 [GeV] -Cell[1,21] 0.0011914168749455 [GeV] -Cell[0,31] 2.4281474514282e-05 [GeV] -Cell[1,17] 0.0079061314601576 [GeV] -Cell[1,18] 0.00026337752403867 [GeV] -Cell[1,16] 0.01465548415547 [GeV] -Cell[2,16] 0.010879078524208 [GeV] -Cell[1,15] 0.0047211717338781 [GeV] -Cell[1,14] 0.020612373028954 [GeV] -Cell[2,14] 0.00014203821482738 [GeV] -Cell[2,18] 0.0024199726092126 [GeV] -Cell[4,19] 2.2701889065502e-08 [GeV] -Cell[4,13] 2.0011076820083e-05 [GeV] -Cell[0,45] 0.0022972075468039 [GeV] -Cell[2,31] 0.0021616936131769 [GeV] -Cell[0,42] 7.956717129332e-06 [GeV] -Cell[3,17] 3.0312539820443e-09 [GeV] -Cell[0,30] 0.00076666990816261 [GeV] -Cell[0,36] 0.001887948979293 [GeV] -Cell[3,32] 3.4323858606967e-05 [GeV] -Cell[0,13] 1.5872062067501e-07 [GeV] -Cell[1,13] 1.3667423627339e-07 [GeV] -Cell[3,31] 2.794345618895e-09 [GeV] -Cell[1,30] 0.0022243844418492 [GeV] -Cell[1,29] 0.0013701932798291 [GeV] -Cell[2,29] 0.0053669075983098 [GeV] -Cell[2,22] 0.0014047889374663 [GeV] -Cell[2,21] 1.8263364413883e-05 [GeV] -Cell[1,23] 1.4776753960177e-07 [GeV] -Cell[0,44] 0.0036295534579889 [GeV] -Cell[1,25] 2.0648585632443e-09 [GeV] -Cell[0,3] 0.0022099226714619 [GeV] -Cell[1,8] 2.5251375831431e-05 [GeV] -Cell[1,20] 0.0018397702995851 [GeV] -Cell[2,39] 0.0056584075523866 [GeV] -Cell[1,28] 0.031711145618101 [GeV] -Cell[3,6] 0.00075759971289248 [GeV] -Cell[2,34] 2.4067325100532e-05 [GeV] -Cell[2,36] 2.8674455825239e-07 [GeV] -Cell[2,20] 0.0015435602362166 [GeV] -Cell[2,19] 0.00022462754240121 [GeV] -Cell[6,12] 0.16711398121249 [GeV] -Cell[6,13] 0.0080880899253794 [GeV] -Cell[8,42] 1.1632240898507e-08 [GeV] -Cell[8,43] 3.1300198147619e-06 [GeV] -Cell[7,22] 9.3610728508793e-06 [GeV] -Cell[4,6] 1.2294133977775e-05 [GeV] -Cell[4,7] 0.00040959841463155 [GeV] -Cell[1,34] 0.00035904661983352 [GeV] -Cell[1,26] 1.2361877305125e-05 [GeV] -Cell[2,27] 6.3267606151385e-08 [GeV] -Cell[1,27] 0.00062322727563071 [GeV] -Cell[4,8] 0.0087972528265321 [GeV] -Cell[2,6] 0.00060293039940723 [GeV] -Cell[2,5] 5.77787148884e-05 [GeV] -Cell[3,7] 0.00016522609481558 [GeV] -Cell[5,10] 0.00058864304246022 [GeV] -Cell[2,37] 1.138305166387e-05 [GeV] -Cell[0,0] 9.1492992942221e-06 [GeV] -Cell[5,47] 0.00021069847063745 [GeV] -Cell[3,38] 0.00033113487793901 [GeV] -Cell[16,47] 0.00012634680253905 [GeV] -Cell[5,11] 0.00044369242619075 [GeV] -Cell[5,20] 1.655105734244e-09 [GeV] -Cell[5,12] 0.012456823121222 [GeV] -Cell[4,12] 0.0014294978076934 [GeV] -Cell[2,28] 0.00043494723068113 [GeV] -Cell[4,26] 9.9620567652892e-08 [GeV] -Cell[2,32] 0.00082691593530865 [GeV] -Cell[1,19] 0.00039819280428856 [GeV] -Cell[2,17] 0.0012467284294632 [GeV] -Cell[2,33] 0.00093777974780111 [GeV] -Cell[6,14] 0.0012081395692697 [GeV] -Cell[2,38] 0.00073555375212186 [GeV] -Cell[1,38] 2.7065798687545e-05 [GeV] -Cell[2,13] 6.7158444726374e-06 [GeV] -Cell[3,27] 3.1905933269627e-08 [GeV] -Cell[0,8] 3.2666325765831e-06 [GeV] -Cell[0,38] 0.0022827573075175 [GeV] -Cell[1,35] 6.6073274092673e-05 [GeV] -Cell[0,37] 1.5263700856849e-07 [GeV] -Cell[0,28] 1.3371508836929 [GeV] -Cell[0,27] 0.05007162026051 [GeV] -Cell[0,29] 0.011977917743784 [GeV] -Cell[0,26] 0.013897557872995 [GeV] -Cell[0,39] 0.0031173046006532 [GeV] -Cell[16,0] 0.00015833477459455 [GeV] -Cell[1,6] 0.0033650289694503 [GeV] -Cell[0,7] 0.00059360921395955 [GeV] -Cell[2,4] 1.7563693980264e-05 [GeV] -Cell[7,14] 0.0023164762258076 [GeV] -Cell[5,13] 0.0096221924046151 [GeV] -Cell[1,40] 1.1833483382361e-05 [GeV] -Cell[3,30] 2.9407845284368e-05 [GeV] -Cell[0,9] 0.0013885396495015 [GeV] -### Total energy deposition in calorimeter by a source track in 117 cells : 1.7898445858564 (GeV) +Cell[0,28] 0.00038512062031987 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00038512062031987 (GeV) -Source track ID 3603 (neutron,7.3741998938947[GeV]) at (-413.0762339184,-281.72331279429,-1776.1644807987) +Source track ID 3898 (anti_neutron,5.3948206100571[GeV]) at (-415.09134243251,-278.74572182829,-1871.4579101789) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[3,24] 0.00021574768551898 [GeV] -Cell[4,22] 1.1590932292165e-05 [GeV] -Cell[3,14] 8.8929664343596e-10 [GeV] -Cell[6,15] 2.28715891717e-06 [GeV] -Cell[8,1] 0.0013455879239916 [GeV] -Cell[6,27] 4.9702657561284e-06 [GeV] -Cell[7,13] 4.4243547904443e-08 [GeV] -Cell[3,25] 0.00017478704548853 [GeV] -Cell[6,17] 1.9485704775434e-05 [GeV] -Cell[6,41] 0.029243593284566 [GeV] -Cell[11,42] 4.2773608583957e-09 [GeV] -Cell[2,1] 3.1777020260506e-06 [GeV] -Cell[2,15] 0.0053977817990637 [GeV] -Cell[6,36] 0.0041561426874562 [GeV] -Cell[11,41] 6.3872721511871e-09 [GeV] -Cell[8,3] 9.1461050906219e-06 [GeV] -Cell[7,15] 0.0028844353765856 [GeV] -Cell[5,45] 0.00034071669946798 [GeV] -Cell[6,45] 0.00035222693985315 [GeV] -Cell[3,4] 3.5236098483438e-12 [GeV] -Cell[3,5] 1.6118533561325e-05 [GeV] -Cell[5,46] 6.0833745505079e-05 [GeV] -Cell[6,44] 1.7348644149024e-05 [GeV] -Cell[2,9] 0.00025977647588468 [GeV] -Cell[4,16] 0.00015151159190441 [GeV] -Cell[0,4] 0.0019316123523845 [GeV] -Cell[0,5] 0.00075707734921684 [GeV] -Cell[6,42] 0.0017139198965547 [GeV] -Cell[5,42] 6.0339829212808e-07 [GeV] -Cell[5,43] 0.00070357309413328 [GeV] -Cell[5,44] 0.0012505514317631 [GeV] -Cell[13,17] 1.4643126633018e-08 [GeV] -Cell[0,24] 0.0001914324318542 [GeV] -Cell[0,25] 0.011134795332446 [GeV] -Cell[1,21] 0.00081783812715003 [GeV] -Cell[0,22] 3.2544825226068e-06 [GeV] -Cell[0,23] 0.00068594941624735 [GeV] -Cell[0,31] 0.0029775905853678 [GeV] -Cell[1,45] 7.3244655516191e-07 [GeV] -Cell[1,47] 4.5692322601099e-06 [GeV] -Cell[1,46] 0.0013277739648285 [GeV] -Cell[0,18] 0.0027425341312183 [GeV] -Cell[1,17] 0.00039084002461573 [GeV] -Cell[0,17] 0.0081535813787081 [GeV] -Cell[0,16] 2.0742979924762e-05 [GeV] -Cell[1,18] 7.6170960383024e-06 [GeV] -Cell[1,16] 0.0009573742825141 [GeV] -Cell[2,16] 0.0041947041072636 [GeV] -Cell[1,15] 0.00051337394760373 [GeV] -Cell[1,14] 4.7970769622111e-05 [GeV] -Cell[2,18] 0.00033788102276358 [GeV] -Cell[4,32] 9.2337611713447e-06 [GeV] -Cell[4,13] 0.00072382750176189 [GeV] -Cell[3,18] 0.0017659828666671 [GeV] -Cell[0,45] 0.00046653174626942 [GeV] -Cell[4,11] 0.0045660072613539 [GeV] -Cell[6,35] 1.5982354887001e-07 [GeV] -Cell[5,16] 0.00014495299812575 [GeV] -Cell[3,17] 0.00021799968609014 [GeV] -Cell[3,20] 7.7149333665147e-06 [GeV] -Cell[0,30] 0.011595097819828 [GeV] -Cell[6,39] 1.5616762993886e-09 [GeV] -Cell[0,36] 0.00011932194813164 [GeV] -Cell[3,32] 3.7893352273386e-06 [GeV] -Cell[0,13] 0.0007391967502188 [GeV] -Cell[1,13] 0.0011291604434291 [GeV] -Cell[1,30] 0.0013502287052351 [GeV] -Cell[1,29] 0.0010750003938058 [GeV] -Cell[0,12] 0.0021703060362596 [GeV] -Cell[1,23] 4.3291154856888e-06 [GeV] -Cell[1,22] 0.00064950042002067 [GeV] -Cell[3,21] 1.9696203613421e-05 [GeV] -Cell[4,15] 4.5776622635003e-06 [GeV] -Cell[2,2] 0.00059692696577906 [GeV] -Cell[2,24] 1.8211806309409e-06 [GeV] -Cell[1,25] 0.0021102075703492 [GeV] -Cell[0,3] 0.07579568968626 [GeV] -Cell[1,7] 0.00077556040817979 [GeV] -Cell[2,25] 3.3314130439521e-07 [GeV] -Cell[2,39] 0.0040318311369542 [GeV] -Cell[1,28] 0.0156037487033 [GeV] -Cell[3,6] 0.00023398067078421 [GeV] -Cell[6,12] 0.014526184797712 [GeV] -Cell[6,13] 0.00048564605774845 [GeV] -Cell[10,43] 0.0012730914332658 [GeV] -Cell[12,18] 1.5105680923853e-06 [GeV] -Cell[6,40] 0.00021031838843578 [GeV] -Cell[6,28] 0.00072739065063149 [GeV] -Cell[4,10] 0.0030903092230121 [GeV] -Cell[4,9] 2.6195266400464e-10 [GeV] -Cell[1,34] 1.1265348293819e-05 [GeV] -Cell[1,26] 0.0018075051465349 [GeV] -Cell[1,27] 0.029403618609725 [GeV] -Cell[2,6] 4.1382758354302e-08 [GeV] -Cell[2,5] 0.0028815729905765 [GeV] -Cell[3,7] 1.1846401699586e-05 [GeV] -Cell[3,8] 9.5192699153586e-06 [GeV] -Cell[3,10] 0.0025619378714009 [GeV] -Cell[5,10] 2.9575504886452e-06 [GeV] -Cell[2,7] 9.5834537205519e-08 [GeV] -Cell[5,15] 8.7548649472865e-05 [GeV] -Cell[2,37] 0.00036588980927081 [GeV] -Cell[1,0] 0.0025769396352719 [GeV] -Cell[5,47] 8.8423839770257e-09 [GeV] -Cell[3,38] 8.2594568882541e-06 [GeV] -Cell[0,35] 0.00014266469762151 [GeV] -Cell[13,18] 3.179072518833e-08 [GeV] -Cell[6,16] 1.0293989388401e-05 [GeV] -Cell[4,30] 4.1469128571001e-05 [GeV] -Cell[2,3] 4.6608440345153e-05 [GeV] -Cell[4,12] 0.0016934210876075 [GeV] -Cell[2,28] 1.0623434471199e-05 [GeV] -Cell[2,8] 0.0023724874801943 [GeV] -Cell[1,10] 0.0014694203189149 [GeV] -Cell[4,37] 2.3654707638343e-06 [GeV] -Cell[3,16] 0.0015835356258856 [GeV] -Cell[2,32] 9.2180902811378e-08 [GeV] -Cell[2,17] 0.0077605391716768 [GeV] -Cell[2,33] 3.613589797169e-09 [GeV] -Cell[6,14] 0.017241626031844 [GeV] -Cell[2,38] 1.5965934879887e-05 [GeV] -Cell[2,13] 7.1209033485502e-06 [GeV] -Cell[0,11] 0.032904403000842 [GeV] -Cell[1,3] 5.8174537689411e-06 [GeV] -Cell[0,33] 1.1467799733964e-06 [GeV] -Cell[0,46] 0.0088464389066569 [GeV] -Cell[0,10] 6.2364724972099e-05 [GeV] -Cell[3,37] 0.0013789762728646 [GeV] -Cell[0,8] 0.0013895866554465 [GeV] -Cell[6,43] 0.0012112255685328 [GeV] -Cell[1,32] 1.1508690137134e-06 [GeV] -Cell[0,38] 9.5501660368882e-05 [GeV] -Cell[1,1] 0.00024089257563287 [GeV] -Cell[0,1] 1.4057150110602e-11 [GeV] -Cell[0,37] 0.00037473943895839 [GeV] -Cell[0,28] 2.3112434730414 [GeV] -Cell[0,27] 0.02040326341345 [GeV] -Cell[0,29] 0.053363511106679 [GeV] -Cell[0,26] 0.013289495190139 [GeV] -Cell[1,6] 0.00029430229139996 [GeV] -Cell[0,7] 0.0023177730417432 [GeV] -Cell[2,4] 6.5652481031293e-06 [GeV] -Cell[7,14] 0.00097820152428511 [GeV] -Cell[0,9] 2.7432250479364e-05 [GeV] -Cell[2,40] 0.00067433706042812 [GeV] -Cell[12,17] 0.00080476203365936 [GeV] -Cell[0,32] 6.2850920676283e-07 [GeV] -Cell[0,6] 0.00090754872510479 [GeV] -Cell[1,33] 0.00026632264212117 [GeV] -Cell[0,34] 6.5621651010588e-06 [GeV] -Cell[7,16] 6.0119616459815e-05 [GeV] -Cell[0,2] 0.0023945757845985 [GeV] -Cell[1,2] 0.0010472173050529 [GeV] -### Total energy deposition in calorimeter by a source track in 153 cells : 2.7584880088162 (GeV) +Cell[6,47] 0.0013096079888679 [GeV] +Cell[3,6] 8.4532822977053e-05 [GeV] +Cell[3,7] 0.00047812644740625 [GeV] +Cell[6,0] 0.0003483763867738 [GeV] +Cell[0,16] 0.0017284111188185 [GeV] +Cell[0,15] 0.00051099891 [GeV] +Cell[0,26] 0.0035157415473626 [GeV] +Cell[0,27] 0.019470174500591 [GeV] +Cell[1,3] 0.0012230045083838 [GeV] +Cell[2,9] 7.1722571760802e-08 [GeV] +Cell[0,28] 0.50832265087304 [GeV] +Cell[0,30] 1.7904100018619e-05 [GeV] +Cell[0,29] 0.0066582752117179 [GeV] +Cell[1,12] 0.0005763210450927 [GeV] +Cell[10,4] 0.00057243647560318 [GeV] +Cell[2,46] 0.00051099891 [GeV] +Cell[2,7] 0.00094924626684315 [GeV] +Cell[3,8] 1.6072116297437e-05 [GeV] +Cell[2,8] 0.0089620903963314 [GeV] +Cell[8,39] 0.00032688888795811 [GeV] +Cell[3,9] 2.1333768037607e-05 [GeV] +Cell[1,7] 0.00019158208961608 [GeV] +Cell[0,32] 0.00022050958511518 [GeV] +Cell[0,31] 2.5193477192479e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 24 cells : 0.55604054915662 (GeV) -Source track ID 3599 (anti_neutron,5.3948206100571[GeV]) at (-415.09134243251,-278.74572182829,-1871.4579101789) +Source track ID 3816 (pi-,5.4477160368703[GeV]) at (-298.05656421209,-401.4502267157,-1914.6545689066) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[0,28] 2.0735444850288e-06 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 2.0735444850288e-06 (GeV) +Cell[0,31] 0.12586030532671 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.12586030532671 (GeV) -Source track ID 3511 (pi-,5.447719098399[GeV]) at (-296.41317419681,-402.6651588635,-1913.2185684692) +Source track ID 2293 (pi-,5.0453267051267[GeV]) at (-463.66733410008,-187.11655001234,-1931.6543590889) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[0,31] 0.13883947058125 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.13883947058125 (GeV) +Cell[8,8] 0.0020381297938467 [GeV] +Cell[5,28] 3.8183352444321e-09 [GeV] +Cell[7,14] 1.287585333921e-05 [GeV] +Cell[15,36] 0.00011487727027475 [GeV] +Cell[5,39] 1.0304502211511e-07 [GeV] +Cell[8,26] 1.8095251551131e-05 [GeV] +Cell[7,8] 0.0005953760162891 [GeV] +Cell[6,29] 4.9983482062999e-07 [GeV] +Cell[1,41] 0.0057731826624295 [GeV] +Cell[6,28] 1.4524121070281e-08 [GeV] +Cell[7,19] 0.002159959721668 [GeV] +Cell[6,22] 3.5578098379574e-07 [GeV] +Cell[10,29] 1.9047677749768e-05 [GeV] +Cell[6,45] 0.0011656548532976 [GeV] +Cell[4,0] 1.0738310606939e-08 [GeV] +Cell[2,1] 0.017906329716421 [GeV] +Cell[4,33] 4.0075974538922e-10 [GeV] +Cell[2,42] 0.00051099891 [GeV] +Cell[1,30] 0.0037254082358854 [GeV] +Cell[1,29] 8.8454247236314e-07 [GeV] +Cell[7,20] 3.1799640242753e-05 [GeV] +Cell[8,19] 4.1331079015436e-05 [GeV] +Cell[3,38] 1.1505107067933e-08 [GeV] +Cell[3,37] 3.4713668716563e-05 [GeV] +Cell[11,28] 0.00018208732152743 [GeV] +Cell[11,29] 1.414237046265e-05 [GeV] +Cell[2,44] 0.00087190054284368 [GeV] +Cell[15,17] 8.8152666814879e-05 [GeV] +Cell[4,1] 6.236705172455e-06 [GeV] +Cell[3,1] 0.0017347258140463 [GeV] +Cell[7,0] 6.0593352423666e-05 [GeV] +Cell[7,1] 0.00035476031468431 [GeV] +Cell[6,44] 0.00038063535435811 [GeV] +Cell[6,23] 5.0328089855611e-09 [GeV] +Cell[4,13] 0.0083405791697911 [GeV] +Cell[1,2] 1.2967734619451e-09 [GeV] +Cell[1,1] 0.00069403980504876 [GeV] +Cell[1,46] 0.00087102064776946 [GeV] +Cell[1,39] 0.00099999519216135 [GeV] +Cell[1,40] 0.0099132604350706 [GeV] +Cell[1,4] 9.239382046519e-05 [GeV] +Cell[2,4] 0.00014321872287053 [GeV] +Cell[4,12] 0.027143554864535 [GeV] +Cell[3,47] 4.9710964312567e-05 [GeV] +Cell[0,24] 0.0016176128569614 [GeV] +Cell[1,32] 0.00039479407594183 [GeV] +Cell[0,43] 7.3907080513891e-06 [GeV] +Cell[0,33] 0.0014029096234385 [GeV] +Cell[1,31] 4.5744473760237e-05 [GeV] +Cell[1,35] 0.0025067486468988 [GeV] +Cell[6,0] 3.7953171349727e-06 [GeV] +Cell[1,0] 0.001390249415271 [GeV] +Cell[6,40] 1.5130761312321e-08 [GeV] +Cell[0,26] 1.3061749909304 [GeV] +Cell[1,33] 6.6929016029462e-06 [GeV] +Cell[0,27] 0.29456430440222 [GeV] +Cell[0,37] 0.00058346587038237 [GeV] +Cell[0,40] 3.8724684031877e-07 [GeV] +Cell[0,23] 2.3927569488933e-06 [GeV] +Cell[0,25] 0.13332200957876 [GeV] +Cell[1,26] 2.7410652554636e-06 [GeV] +Cell[1,27] 0.00074734312568694 [GeV] +Cell[1,13] 0.0027112348345949 [GeV] +Cell[2,16] 0.00016002104451297 [GeV] +Cell[1,3] 2.8414426691597e-05 [GeV] +Cell[1,17] 0.00029999884553547 [GeV] +Cell[2,38] 1.7515976596997e-05 [GeV] +Cell[2,9] 6.5421322915427e-06 [GeV] +Cell[0,28] 0.0030509536287947 [GeV] +Cell[1,28] 2.9642376375705e-10 [GeV] +Cell[0,38] 0.0048159927068947 [GeV] +Cell[0,30] 0.001102472092014 [GeV] +Cell[0,29] 1.6612182380186e-05 [GeV] +Cell[3,36] 3.4765367454384e-06 [GeV] +Cell[0,44] 0.0011883184387423 [GeV] +Cell[0,9] 0.0095267481386159 [GeV] +Cell[1,12] 0.0030743106568195 [GeV] +Cell[0,12] 0.00089385274442668 [GeV] +Cell[0,11] 1.380984421121e-05 [GeV] +Cell[2,17] 0.00034393488326361 [GeV] +Cell[15,47] 0.0022519695772681 [GeV] +Cell[4,32] 4.4747846649216e-06 [GeV] +Cell[3,30] 0.00065810243445826 [GeV] +Cell[4,16] 0.00081138901824521 [GeV] +Cell[4,44] 0.0016608353088186 [GeV] +Cell[4,42] 0.00051099891 [GeV] +Cell[6,41] 0.00024712900756458 [GeV] +Cell[6,42] 1.2125548459039e-05 [GeV] +Cell[6,43] 0.0094161562391781 [GeV] +Cell[2,0] 0.010154948418654 [GeV] +Cell[1,43] 0.0007510645288156 [GeV] +Cell[1,42] 0.0028406557172877 [GeV] +Cell[2,47] 0.0026294209678341 [GeV] +Cell[0,8] 0.00071784306975565 [GeV] +Cell[2,37] 0.00033802089581582 [GeV] +Cell[2,36] 9.3363783671521e-06 [GeV] +Cell[5,27] 4.9535813789134e-06 [GeV] +Cell[4,11] 0.0024134809711917 [GeV] +Cell[3,8] 1.125850644712e-08 [GeV] +Cell[2,8] 0.0047229726681172 [GeV] +Cell[14,38] 2.1650092638765e-06 [GeV] +Cell[15,37] 8.4639401576737e-05 [GeV] +Cell[14,37] 2.2370357606633e-05 [GeV] +Cell[7,23] 5.2786496894441e-08 [GeV] +Cell[6,39] 7.7989505371079e-08 [GeV] +Cell[5,40] 0.00066497223049839 [GeV] +Cell[5,42] 0.00012717194345043 [GeV] +Cell[15,16] 0.0010400449426695 [GeV] +Cell[3,14] 1.3004010043005e-08 [GeV] +Cell[1,10] 0.00051099891 [GeV] +Cell[3,9] 2.8268800633668e-10 [GeV] +Cell[1,47] 0.02580468418949 [GeV] +Cell[2,40] 0.00051099891 [GeV] +Cell[0,34] 0.00031565121215306 [GeV] +Cell[0,35] 0.0015328011215517 [GeV] +Cell[2,13] 0.0053902132568593 [GeV] +Cell[0,32] 0.00079348687499498 [GeV] +Cell[0,13] 0.0018060351233375 [GeV] +Cell[2,15] 1.7555275204359e-05 [GeV] +Cell[2,14] 0.0033761841096387 [GeV] +Cell[1,23] 0.0020718258601513 [GeV] +Cell[2,2] 0.00022553776801156 [GeV] +Cell[0,14] 1.8214586702925e-08 [GeV] +Cell[0,31] 7.5383076417779e-05 [GeV] +Cell[0,39] 0.012583189944808 [GeV] +Cell[2,3] 0.0033813760374569 [GeV] +Cell[1,38] 0.0055924011034355 [GeV] +Cell[1,37] 0.014577651577405 [GeV] +Cell[0,45] 0.0023915292732752 [GeV] +Cell[1,8] 0.002709122806417 [GeV] +Cell[1,9] 8.7363006977398e-05 [GeV] +Cell[3,13] 0.00094440600262455 [GeV] +Cell[3,12] 0.010067841564011 [GeV] +Cell[0,36] 0.0042231965854721 [GeV] +Cell[0,2] 0.00018591992516869 [GeV] +Cell[0,1] 0.00064159568537639 [GeV] +Cell[1,44] 0.0073852085391905 [GeV] +Cell[1,36] 0.001708408113003 [GeV] +Cell[1,45] 0.00096510307022891 [GeV] +Cell[14,17] 0.0016223188112897 [GeV] +### Total energy deposition in calorimeter by a source track in 140 cells : 2.0097138796511 (GeV) -Source track ID 3398 (e-,0.0011809433721381[GeV]) at (-466.08410045841,-181.01273794923,-1321.5490170467) +Source track ID 3611 (pi-,26.431226851631[GeV]) at (-348.89851584984,-358.14777067264,-1955.4159679489) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[3,26] 0.00066994446212347 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00066994446212347 (GeV) +Cell[7,9] 0.0002739553981162 [GeV] +Cell[0,30] 0.088076400740255 [GeV] +Cell[0,29] 0.0025499727296005 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.090900328867972 (GeV) -Source track ID 2163 (pi-,5.0455127032568[GeV]) at (-463.53227167059,-187.45088188617,-1930.9949255795) +Source track ID 3612 (pi+,1.1827410604901[GeV]) at (-499.03458466448,31.056131580629,-1753.0518957322) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[0,27] 0.00074787530592894 [GeV] -Cell[0,26] 0.10373399885214 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.10448187415807 (GeV) +Cell[5,35] 6.1300130619202e-06 [GeV] +Cell[1,20] 6.0670469101751e-05 [GeV] +Cell[1,21] 0.0010517055700423 [GeV] +Cell[1,22] 0.0055056848283297 [GeV] +Cell[0,21] 0.00052006907344537 [GeV] +Cell[0,22] 0.0010420340773281 [GeV] +Cell[10,25] 8.0655718338676e-06 [GeV] +Cell[1,34] 0.0064380005155276 [GeV] +Cell[1,25] 0.0020255708718732 [GeV] +Cell[14,26] 5.5555088620167e-06 [GeV] +Cell[11,25] 3.1834503461141e-06 [GeV] +Cell[10,26] 2.2258491953835e-06 [GeV] +Cell[3,2] 0.00031776737520681 [GeV] +Cell[2,24] 0.00014614900411107 [GeV] +Cell[2,25] 1.0388253765541e-05 [GeV] +Cell[1,39] 0.00085628951896786 [GeV] +Cell[0,24] 0.010259380188201 [GeV] +Cell[1,24] 0.0038992803066324 [GeV] +Cell[1,16] 1.5691734972734e-07 [GeV] +Cell[1,15] 2.2750755306333e-09 [GeV] +Cell[0,26] 0.0020574757636044 [GeV] +Cell[0,27] 0.00037978744521354 [GeV] +Cell[0,23] 0.0083640117134368 [GeV] +Cell[0,25] 0.0021688190776165 [GeV] +Cell[1,26] 0.00036676265896278 [GeV] +Cell[0,38] 4.3493939972336e-05 [GeV] +Cell[3,19] 3.8226774166105e-05 [GeV] +Cell[4,24] 0.00012092477514716 [GeV] +Cell[4,3] 2.6626965249079e-06 [GeV] +Cell[4,46] 5.1385353726801e-06 [GeV] +Cell[3,3] 0.00034638777752582 [GeV] +Cell[5,34] 1.8848839506973e-05 [GeV] +Cell[5,24] 5.9335415752457e-06 [GeV] +Cell[11,45] 1.9447364058578e-05 [GeV] +Cell[14,36] 4.1264634055551e-06 [GeV] +Cell[14,3] 5.6651189515833e-06 [GeV] +Cell[1,10] 4.0430773427943e-05 [GeV] +Cell[0,35] 0.00036618977673606 [GeV] +Cell[1,23] 0.20730161081764 [GeV] +Cell[1,37] 0.00013219058125492 [GeV] +Cell[0,36] 7.2900391824078e-06 [GeV] +### Total energy deposition in calorimeter by a source track in 41 cells : 0.25395373411154 (GeV) -Source track ID 3338 (e-,0.00091304109709519[GeV]) at (97.068318321871,-490.48724914942,-1916.9778443669) +Source track ID 3609 (gamma,1.5279055119092[GeV]) at (-73.254802114524,-494.60462388373,-436.11292009776) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[0,37] 5.5385372987983e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 5.5385372987983e-05 (GeV) +Cell[7,37] 0.00077325069973698 [GeV] +Cell[7,35] 0.23668450421138 [GeV] +Cell[6,34] 0.00029845176208534 [GeV] +Cell[8,34] 0.00056433859683829 [GeV] +Cell[7,33] 0.0034612028465685 [GeV] +Cell[8,32] 4.6406445200465e-05 [GeV] +Cell[8,33] 0.00063145067243137 [GeV] +Cell[7,32] 0.00026604377751465 [GeV] +Cell[7,36] 0.0024577951141195 [GeV] +Cell[8,35] 0.0009598620361781 [GeV] +Cell[7,34] 1.2817621683709 [GeV] +### Total energy deposition in calorimeter by a source track in 11 cells : 1.527905474533 (GeV) -Source track ID 3306 (pi-,26.430464735384[GeV]) at (-348.96579707305,-358.08221468424,-1955.4165731751) +Source track ID 3610 (gamma,2.1921548366006[GeV]) at (-105.1967675233,-488.80838792174,-488.29270685692) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[0,30] 0.07875073350225 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.07875073350225 (GeV) +Cell[6,35] 0.0066857508069576 [GeV] +Cell[7,35] 0.0071506075302128 [GeV] +Cell[6,34] 0.01151135263828 [GeV] +Cell[6,20] 0.00087097295739992 [GeV] +Cell[7,30] 0.0015303598246097 [GeV] +Cell[7,33] 0.043812863772352 [GeV] +Cell[6,8] 0.0007520063982862 [GeV] +Cell[6,33] 0.012479990774356 [GeV] +Cell[8,43] 0.0019345951304165 [GeV] +Cell[7,32] 0.0023566904389299 [GeV] +Cell[14,20] 0.0015259025077787 [GeV] +Cell[8,42] 0.001817519990404 [GeV] +Cell[7,34] 2.0974313298728 [GeV] +Cell[6,19] 0.0017927742948606 [GeV] +### Total energy deposition in calorimeter by a source track in 14 cells : 2.1916527169377 (GeV) -Source track ID 3307 (pi+,1.1826541130942[GeV]) at (-498.92008550113,32.84430366969,-1758.1752183448) +Source track ID 3586 (gamma,0.0047485197279302[GeV]) at (-293.60556312456,404.71690513532,230.12111296978) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[0,23] 0.17338303932309 [GeV] -Cell[1,23] 0.052218636721066 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.22560167604415 (GeV) +Cell[11,17] 0.00028884363543283 [GeV] +Cell[11,16] 0.0044596760924974 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.0047485197279302 (GeV) -Source track ID 3304 (gamma,1.5279055119092[GeV]) at (-73.254853076644,-494.60461633584,-436.11300440752) +Source track ID 3570 (gamma,0.003445620603751[GeV]) at (76.56802233793,494.1025581347,254.08205458566) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[8,13] 0.00055391309998206 [GeV] -Cell[7,6] 0.0004676111882909 [GeV] -Cell[6,15] 0.0014792763430136 [GeV] -Cell[6,34] 0.0024915353850281 [GeV] -Cell[6,33] 0.0017870467839926 [GeV] -Cell[8,33] 0.0055698321589812 [GeV] -Cell[8,34] 0.00051099891 [GeV] -Cell[8,35] 0.0022289836653362 [GeV] -Cell[7,36] 0.0044070815148865 [GeV] -Cell[8,29] 0.0032048270325331 [GeV] -Cell[7,33] 0.0019796132598489 [GeV] -Cell[14,35] 0.0002419407246038 [GeV] -Cell[7,34] 1.2963877456923 [GeV] -Cell[5,4] 0.00051099891 [GeV] -Cell[8,22] 0.00063415474410434 [GeV] -Cell[13,3] 0.0011765712169548 [GeV] -Cell[4,18] 0.0017442353150053 [GeV] -Cell[8,36] 0.00040060829655272 [GeV] -Cell[6,35] 0.00051099891 [GeV] -Cell[6,2] 0.00051099891 [GeV] -Cell[10,16] 0.0036136928811287 [GeV] -Cell[9,15] 0.00036663685573323 [GeV] -Cell[9,14] 0.00014436205426677 [GeV] -Cell[8,38] 0.00051099891 [GeV] -Cell[6,31] 0.00051099891 [GeV] -Cell[7,35] 0.19397568335008 [GeV] -Cell[9,17] 0.00078697048651068 [GeV] -Cell[7,2] 0.00092810083850257 [GeV] -### Total energy deposition in calorimeter by a source track in 28 cells : 1.5276364163476 (GeV) +Cell[11,10] 0.003445620603751 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.003445620603751 (GeV) -Source track ID 3305 (gamma,2.1921548366006[GeV]) at (-105.19673054626,-488.80839587959,-488.29264722942) +Source track ID 3574 (gamma,0.00012667800361787[GeV]) at (380.603894654,324.25402907937,216.94814280536) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[7,7] 0.0014792495019534 [GeV] -Cell[9,7] 0.00033092703614993 [GeV] -Cell[9,8] 0.0014587799928484 [GeV] -Cell[6,46] 0.00049023513002628 [GeV] -Cell[6,34] 0.0062431587672452 [GeV] -Cell[6,33] 0.00081541840219497 [GeV] -Cell[7,37] 0.0002420031180448 [GeV] -Cell[7,32] 0.0019923700435533 [GeV] -Cell[8,33] 0.00051099891 [GeV] -Cell[8,15] 0.0012444583982254 [GeV] -Cell[8,34] 0.00095943242680541 [GeV] -Cell[7,36] 0.0030926415082289 [GeV] -Cell[7,33] 0.088083205544275 [GeV] -Cell[6,36] 0.0027933624345709 [GeV] -Cell[10,10] 0.00057376744144844 [GeV] -Cell[5,8] 0.0011676177826 [GeV] -Cell[7,34] 2.0453636104442 [GeV] -Cell[7,26] 0.0005799429045498 [GeV] -Cell[9,45] 0.0028228743196429 [GeV] -Cell[6,35] 0.0046634877893451 [GeV] -Cell[8,43] 0.0015999944781418 [GeV] -Cell[7,35] 0.0083940139348974 [GeV] -Cell[6,32] 0.00069283791781928 [GeV] -Cell[7,17] 0.00037476231703048 [GeV] -### Total energy deposition in calorimeter by a source track in 24 cells : 2.1759691505438 (GeV) +Cell[11,5] 0.00012667800361787 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00012667800361787 (GeV) -Source track ID 3302 (gamma,0.076632669216442[GeV]) at (-300.43599208972,399.672634361,200.63466243837) +Source track ID 3575 (gamma,0.015298174224778[GeV]) at (242.26135311672,437.3893423325,216.08495705803) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[11,16] 0.058701864307271 [GeV] -Cell[10,17] 0.00016349153645915 [GeV] -Cell[11,17] 0.017419805999172 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.076285161842901 (GeV) +Cell[11,8] 0.010867116024257 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.010867116024257 (GeV) -Source track ID 3303 (gamma,0.17932025858732[GeV]) at (-255.57096006864,429.74816389322,-559.80024910815) +Source track ID 3576 (gamma,0.00067704173119965[GeV]) at (467.05751275292,-178.4860772751,19.30706998685) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[6,15] 0.0057860171690384 [GeV] -Cell[7,15] 0.014178222274425 [GeV] -Cell[5,8] 0.00051099891 [GeV] -Cell[7,43] 0.0001930239181596 [GeV] -Cell[7,27] 0.00026827140411909 [GeV] -Cell[6,16] 0.0027244420681819 [GeV] -Cell[7,16] 0.14036542322582 [GeV] -Cell[7,17] 0.0011575404105592 [GeV] -### Total energy deposition in calorimeter by a source track in 8 cells : 0.1651839393803 (GeV) +Cell[10,45] 0.00067704173119965 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00067704173119965 (GeV) -Source track ID 2167 (pi-,0.22740752838741[GeV]) at (34.879053016195,498.78196805888,-1283.2729162883) +Source track ID 3577 (gamma,0.018409317390099[GeV]) at (107.22700706835,488.36704327295,318.1952245406) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[4,22] 2.0973996015528e-09 [GeV] -Cell[3,14] 7.2306899984369e-06 [GeV] -Cell[4,21] 2.6617661546879e-08 [GeV] -Cell[0,31] 0.00079857000115734 [GeV] -Cell[4,13] 0.00074415797010192 [GeV] -Cell[4,11] 0.0016302433628631 [GeV] -Cell[4,20] 0.008113202688751 [GeV] -Cell[3,10] 0.00045673920122567 [GeV] -Cell[2,7] 0.00032333213310348 [GeV] -Cell[4,12] 0.0053120671589413 [GeV] -Cell[3,11] 0.15060282961957 [GeV] -Cell[2,8] 0.0022911706104244 [GeV] -Cell[3,12] 0.0059458842304038 [GeV] -Cell[3,13] 0.00085550551993765 [GeV] -Cell[1,2] 1.2129632872529e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 15 cells : 0.17709309153442 (GeV) +Cell[11,10] 0.011393003440774 [GeV] +Cell[11,9] 0.007016313949325 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.018409317390099 (GeV) -Source track ID 3099 (gamma,0.31054837923301[GeV]) at (447.33311955296,223.36758975065,253.2607033584) +Source track ID 3566 (gamma,0.17932025858732[GeV]) at (-255.57095729857,429.74816554058,-559.80029435368) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[11,4] 0.0034849282672461 [GeV] -Cell[11,3] 0.30316022472984 [GeV] -Cell[18,31] 0.0029740913844944 [GeV] -Cell[11,2] 0.00092913485142325 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.310548379233 (GeV) +Cell[7,16] 0.14354879444204 [GeV] +Cell[6,16] 0.010375181473379 [GeV] +Cell[3,0] 0.00044174374582065 [GeV] +Cell[6,15] 0.018467454829654 [GeV] +Cell[7,15] 0.0064870840964336 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.17932025858732 (GeV) -Source track ID 3117 (gamma,0.014018767679353[GeV]) at (499.24751678766,-27.42110467065,277.88841620135) +Source track ID 2297 (pi-,0.22755393157676[GeV]) at (42.314000461631,498.20630803406,-1287.271540141) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[11,47] 0.014018767679353 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.014018767679353 (GeV) +Cell[6,30] 3.3666428166839e-05 [GeV] +Cell[5,33] 0.00058160503595172 [GeV] +Cell[2,1] 8.8845999698606e-08 [GeV] +Cell[6,31] 1.1353695299476e-08 [GeV] +Cell[5,38] 4.048754053656e-07 [GeV] +Cell[1,2] 2.2188993170857e-08 [GeV] +Cell[1,1] 4.7817593440413e-11 [GeV] +Cell[3,11] 0.13324428731491 [GeV] +Cell[4,12] 0.0016013694980684 [GeV] +Cell[1,3] 5.9529807551826e-06 [GeV] +Cell[2,9] 0.00064425764893447 [GeV] +Cell[3,27] 0.00075967161597805 [GeV] +Cell[3,26] 2.076393221887e-05 [GeV] +Cell[4,32] 0.00012585763053244 [GeV] +Cell[4,31] 2.3202313983347e-05 [GeV] +Cell[4,30] 3.7953930179356e-05 [GeV] +Cell[2,0] 1.4904944691807e-09 [GeV] +Cell[5,32] 0.0020950587974976 [GeV] +Cell[1,43] 0.000465692072926 [GeV] +Cell[4,11] 7.9106509889243e-05 [GeV] +Cell[4,10] 9.1910459628934e-06 [GeV] +Cell[2,8] 0.0026495481869198 [GeV] +Cell[3,9] 1.9805350164461e-05 [GeV] +Cell[3,10] 0.0029993950523778 [GeV] +Cell[4,9] 0.00012954208062854 [GeV] +Cell[2,29] 1.9659637473524e-10 [GeV] +Cell[3,28] 1.0298105247784e-05 [GeV] +Cell[2,13] 8.1671878724592e-05 [GeV] +Cell[5,30] 9.9475972285745e-07 [GeV] +Cell[2,14] 1.3631884939969e-08 [GeV] +Cell[2,2] 2.0158162806183e-07 [GeV] +Cell[2,28] 8.53615347296e-11 [GeV] +Cell[3,13] 0.0047254587602557 [GeV] +Cell[3,12] 0.00066825662745009 [GeV] +Cell[1,44] 6.7036125278719e-07 [GeV] +Cell[5,29] 7.3632691055536e-12 [GeV] +Cell[2,21] 1.4255032874644e-07 [GeV] +Cell[2,10] 0.0017274064489429 [GeV] +### Total energy deposition in calorimeter by a source track in 38 cells : 0.15274157122321 (GeV) -Source track ID 3120 (gamma,0.033997788876426[GeV]) at (455.24961035971,206.7553923537,354.09034642061) +Source track ID 3405 (gamma,0.00037431089512017[GeV]) at (420.79437952431,270.05941968529,248.85487021322) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[11,4] 0.0016222773808279 [GeV] -Cell[11,3] 0.0310912925663 [GeV] -Cell[11,5] 0.0012842189292984 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.033997788876426 (GeV) +Cell[11,4] 0.00037431089512017 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00037431089512017 (GeV) -Source track ID 3121 (gamma,5.0783811364228e-05[GeV]) at (461.96570259982,191.2790883015,343.16103901907) +Source track ID 3411 (gamma,0.00014894726047339[GeV]) at (-286.44623832446,409.81526636982,551.82525084226) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[11,2] 5.0783811364228e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 5.0783811364228e-05 (GeV) +Cell[12,16] 0.00014894726047339 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00014894726047339 (GeV) -Source track ID 3123 (gamma,0.00023800925797523[GeV]) at (449.75638366929,218.44723699036,348.71518130936) +Source track ID 3412 (gamma,0.00016828685865891[GeV]) at (-476.40311859567,-151.7895536337,702.45913650645) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[11,3] 0.00023800925797523 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00023800925797523 (GeV) +Cell[13,26] 0.00016828685865891 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00016828685865891 (GeV) -Source track ID 3126 (gamma,7.9583781505059e-05[GeV]) at (-253.98474360387,430.68753176343,944.23094860642) +Source track ID 3346 (e-,0.085384615905436[GeV]) at (-488.3622999547,-107.24860830311,1342.9527566089) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[14,16] 7.9583781505059e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 7.9583781505059e-05 (GeV) +Cell[16,25] 0.077823211829335 [GeV] +Cell[19,41] 0.00034865226123743 [GeV] +Cell[15,11] 0.00051099891 [GeV] +Cell[16,26] 0.0010197292093004 [GeV] +Cell[17,7] 0.00062092800405731 [GeV] +Cell[15,43] 0.00055989265195648 [GeV] +Cell[16,33] 0.00097584025241067 [GeV] +Cell[18,41] 0.0030143638771386 [GeV] +### Total energy deposition in calorimeter by a source track in 8 cells : 0.084873616995436 (GeV) -Source track ID 3129 (gamma,0.064645934289707[GeV]) at (-491.02006777005,94.336064403256,1051.3182387293) +Source track ID 3348 (gamma,0.14793542957781[GeV]) at (447.87872599298,222.27156094045,252.95735240579) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[15,22] 0.062418686174778 [GeV] -Cell[15,23] 0.0022272481149289 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.064645934289707 (GeV) +Cell[11,3] 0.14500783776591 [GeV] +Cell[10,2] 0.0029275918118971 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.14793542957781 (GeV) -Source track ID 3130 (gamma,6.0978786032716e-05[GeV]) at (-479.28940827308,142.41370410619,1005.040612994) +Source track ID 3350 (gamma,0.0038368842966691[GeV]) at (488.48875374059,106.67116512425,263.10109139735) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[15,21] 6.0978786032716e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 6.0978786032716e-05 (GeV) +Cell[11,1] 0.0038368842966691 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0038368842966691 (GeV) -Source track ID 3132 (gamma,0.00010913744369818[GeV]) at (467.54895187636,177.19474484113,235.89475431101) +Source track ID 3402 (gamma,0.00023598884638044[GeV]) at (374.34952002565,-331.45502991592,1350.6094263266) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[11,2] 0.00010913744369818 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00010913744369818 (GeV) +Cell[16,42] 0.00023598884638044 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00023598884638044 (GeV) -Source track ID 3104 (gamma,0.00012065778248259[GeV]) at (-285.34017970657,410.58614424384,597.50298514948) +Source track ID 3357 (gamma,0.0051121565963992[GeV]) at (498.41731850134,39.751435419737,344.31943906834) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[12,16] 0.00012065778248259 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00012065778248259 (GeV) +Cell[11,0] 0.0051121565963992 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0051121565963992 (GeV) -Source track ID 3114 (gamma,0.00051099891[GeV]) at (486.45874414525,-115.57633946716,115.13902403938) +Source track ID 3359 (gamma,7.0650267030477e-05[GeV]) at (-379.82019265623,325.17167965643,404.6952246204) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[10,46] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00051099891 (GeV) +Cell[12,18] 7.0650267030477e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 7.0650267030477e-05 (GeV) -Source track ID 3115 (gamma,0.00051099891[GeV]) at (-244.19277335057,436.31398034369,1435.6926108956) +Source track ID 3360 (gamma,4.5640929323098e-05[GeV]) at (439.82164540463,237.81698895066,323.1955202868) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[17,15] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00051099891 (GeV) +Cell[11,3] 4.5640929323098e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 4.5640929323098e-05 (GeV) -Source track ID 3108 (gamma,0.00050508873832613[GeV]) at (453.71850853059,-210.09406230728,194.10730502743) +Source track ID 3367 (gamma,0.00069655624829329[GeV]) at (-413.86111587406,280.56902317875,243.84319494053) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[10,44] 0.00050508873832613 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00050508873832613 (GeV) +Cell[11,19] 0.00069655624829329 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00069655624829329 (GeV) -Source track ID 3109 (gamma,0.00041502597986137[GeV]) at (-328.31750302122,377.10425244209,387.99112728372) +Source track ID 3369 (gamma,0.0051078597711334[GeV]) at (454.4647297361,208.47496114856,318.05102213634) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[11,17] 0.00041502597986137 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00041502597986137 (GeV) +Cell[11,3] 0.0051078597711334 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0051078597711334 (GeV) -Source track ID 3084 (pi+,0.58336333552593[GeV]) at (-499.05398064781,30.7428755906,864.20515877269) +Source track ID 3370 (gamma,0.0016121478628735[GeV]) at (-449.2234255293,219.5411441068,595.48642680613) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[14,23] 0.11773989955345 [GeV] -Cell[6,7] 6.5602899703663e-06 [GeV] -Cell[11,32] 1.0860292038842e-05 [GeV] -Cell[14,19] 0.0022243825337377 [GeV] -Cell[16,24] 4.8914215632294e-06 [GeV] -Cell[11,31] 0.00039632067102775 [GeV] -Cell[12,32] 4.5144468649255e-05 [GeV] -Cell[12,31] 0.00022432172556444 [GeV] -Cell[15,22] 0.15612460497728 [GeV] -Cell[14,20] 0.00010099781925067 [GeV] -Cell[11,43] 0.00037373559219861 [GeV] -Cell[11,26] 0.00052435923755479 [GeV] -Cell[11,27] 0.00058986673641812 [GeV] -Cell[14,35] 0.00034230307395937 [GeV] -Cell[15,20] 0.007957468142737 [GeV] -Cell[10,25] 5.0230553402798e-05 [GeV] -Cell[10,26] 0.0014221429329652 [GeV] -Cell[7,39] 0.00010334466445238 [GeV] -Cell[13,39] 1.8227126588499e-07 [GeV] -Cell[10,44] 0.00055142337598215 [GeV] -Cell[16,22] 0.0013166753522659 [GeV] -Cell[14,21] 0.00051191807848301 [GeV] -Cell[15,19] 0.0017521504232985 [GeV] -Cell[15,29] 0.00057020533461089 [GeV] -Cell[15,44] 7.5746158472612e-08 [GeV] -Cell[16,43] 7.9169673297201e-06 [GeV] -Cell[10,43] 0.00043985674984754 [GeV] -Cell[14,39] 4.3832761321028e-08 [GeV] -Cell[16,11] 1.7948896856979e-07 [GeV] -Cell[15,21] 0.0064609150588552 [GeV] -Cell[17,24] 2.5157582925999e-05 [GeV] -Cell[15,25] 0.00042644180205104 [GeV] -Cell[13,9] 0.00018694322661634 [GeV] -Cell[19,6] 0.00096879083766635 [GeV] -Cell[15,23] 0.0044490539392842 [GeV] -Cell[14,22] 0.047464777538492 [GeV] -Cell[16,44] 0.0011854669135333 [GeV] -Cell[16,23] 0.0012467937195117 [GeV] -Cell[18,8] 0.00022760022010231 [GeV] -Cell[17,47] 0.00039502233256849 [GeV] -Cell[15,24] 0.00053278790480078 [GeV] -Cell[19,8] 0.00092230735425313 [GeV] -Cell[17,23] 5.7731510940698e-05 [GeV] -Cell[15,28] 1.6462745930767e-05 [GeV] -Cell[7,38] 2.8427007756704e-05 [GeV] -Cell[17,46] 8.6158254998736e-07 [GeV] -Cell[18,45] 8.0059573519975e-08 [GeV] -Cell[13,8] 0.00097956458658894 [GeV] -### Total energy deposition in calorimeter by a source track in 48 cells : 0.35896724823119 (GeV) +Cell[13,20] 0.0016121478628735 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0016121478628735 (GeV) -Source track ID 3081 (gamma,1.004682788758[GeV]) at (-131.64954807003,-482.35712547132,294.93687368173) +Source track ID 3347 (e+,0.0079687370099769[GeV]) at (-202.86870615234,456.99484467998,1261.4094615507) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[8,12] 0.00050585586420859 [GeV] -Cell[11,32] 0.0010886185973218 [GeV] -Cell[10,34] 0.0019570737305414 [GeV] -Cell[12,33] 0.011010956936745 [GeV] -Cell[11,33] 0.71568537900595 [GeV] -Cell[11,34] 0.27252489967627 [GeV] -Cell[11,35] 0.00063498214125421 [GeV] -Cell[12,34] 0.0011302867883515 [GeV] -### Total energy deposition in calorimeter by a source track in 8 cells : 1.0045380527406 (GeV) +Cell[11,30] 0.00051099891 [GeV] +Cell[16,15] 0.0079687370099769 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.0084797359199769 (GeV) -Source track ID 3082 (gamma,1.1635719616336[GeV]) at (-189.42310768404,-462.72981995471,253.06734662729) +Source track ID 3345 (gamma,0.15995014937721[GeV]) at (486.22068391921,-116.57378148252,276.4597083558) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[11,32] 0.2711271277138 [GeV] -Cell[11,31] 0.0058226266210601 [GeV] -Cell[12,32] 0.00060100673742723 [GeV] -Cell[12,33] 0.0013223513787725 [GeV] -Cell[11,33] 0.87795488270014 [GeV] -Cell[11,34] 0.001068941292693 [GeV] -Cell[5,3] 0.0011111566374847 [GeV] -Cell[12,34] 0.00028359715501026 [GeV] -Cell[13,9] 0.0042802713972652 [GeV] -### Total energy deposition in calorimeter by a source track in 9 cells : 1.1635719616337 (GeV) +Cell[11,46] 0.13560494157582 [GeV] +Cell[11,45] 0.024345207801385 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.15995014937721 (GeV) -Source track ID 2478 (e-,0.0022396840480611[GeV]) at (279.19165830343,414.79153551366,1430.1060278549) +Source track ID 3300 (pi+,0.58301678488235[GeV]) at (-499.07295689096,30.433266339862,860.1099696465) Original primary track ID 31 (unknown,691.32334101424[GeV]) -Cell[17,7] 0.00051030787642977 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00051030787642977 (GeV) +Cell[16,6] 0.0013616842811051 [GeV] +Cell[11,32] 1.5653786249459e-08 [GeV] +Cell[16,9] 0.0003306094251634 [GeV] +Cell[13,25] 2.6211986551061e-08 [GeV] +Cell[13,37] 9.5969111271188e-09 [GeV] +Cell[14,28] 2.5008955853991e-06 [GeV] +Cell[17,9] 0.0085444148160204 [GeV] +Cell[15,46] 0.00010802616449075 [GeV] +Cell[16,38] 0.00014460170474206 [GeV] +Cell[16,8] 0.0058517582217743 [GeV] +Cell[16,35] 8.8758490085183e-06 [GeV] +Cell[12,25] 6.284954451985e-09 [GeV] +Cell[12,26] 1.1216656814668e-06 [GeV] +Cell[14,24] 3.8517490315826e-07 [GeV] +Cell[14,23] 0.19898038313867 [GeV] +Cell[14,22] 0.14635164305628 [GeV] +Cell[14,34] 6.2687613535672e-09 [GeV] +Cell[17,28] 2.5580785586499e-07 [GeV] +Cell[16,5] 0.00022542772454096 [GeV] +Cell[15,34] 0.0032380579278808 [GeV] +Cell[16,7] 0.01444692463755 [GeV] +Cell[17,7] 0.00034378216453331 [GeV] +Cell[17,8] 2.5251155242358e-06 [GeV] +Cell[13,38] 0.00092320400289157 [GeV] +Cell[16,34] 1.4640724657511e-07 [GeV] +Cell[17,35] 3.5808625398204e-11 [GeV] +Cell[17,34] 2.2470153453469e-09 [GeV] +Cell[14,20] 2.5059903273359e-05 [GeV] +Cell[16,13] 4.8368169751484e-05 [GeV] +Cell[15,5] 0.00015019483938067 [GeV] +Cell[14,21] 1.3032674905844e-06 [GeV] +Cell[16,37] 0.00091175959855059 [GeV] +Cell[16,39] 8.5297945247476e-08 [GeV] +Cell[17,37] 0.001439743949235 [GeV] +Cell[17,4] 0.0013265366710377 [GeV] +Cell[17,6] 0.0002733106594693 [GeV] +Cell[19,16] 6.8968802224845e-09 [GeV] +Cell[12,5] 0.00046017611168339 [GeV] +Cell[12,6] 0.00021056151697428 [GeV] +Cell[15,6] 0.0039126222638624 [GeV] +Cell[17,27] 6.0224157641642e-07 [GeV] +### Total energy deposition in calorimeter by a source track in 41 cells : 0.38962672586779 (GeV) -Source track ID 2153 (gamma,0.17435926984906[GeV]) at (-435.61886298315,245.43065459162,445.7269859813) +Source track ID 3295 (gamma,1.004682788758[GeV]) at (-131.64956837005,-482.35711993084,294.93685997419) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[12,34] 0.0060584676114741 [GeV] +Cell[12,31] 0.00051099891 [GeV] +Cell[11,32] 0.0011984052396471 [GeV] +Cell[12,33] 0.016300715276796 [GeV] +Cell[11,33] 0.82067056330815 [GeV] +Cell[10,5] 0.0030581632529269 [GeV] +Cell[11,17] 0.00048750017006668 [GeV] +Cell[11,34] 0.15188955550129 [GeV] +Cell[12,35] 0.0015347795589793 [GeV] +Cell[11,35] 0.0029736399287145 [GeV] +### Total energy deposition in calorimeter by a source track in 10 cells : 1.004682788758 (GeV) + +Source track ID 3297 (e-,0.80298312351475[GeV]) at (-188.14970786688,-463.2490555086,253.07434773549) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[10,23] 0.00051099891 [GeV] +Cell[11,31] 0.0016524255944984 [GeV] +Cell[11,32] 0.093172922280288 [GeV] +Cell[11,33] 0.70157883589886 [GeV] +Cell[10,33] 0.0025043498180697 [GeV] +Cell[11,34] 0.0012944500772889 [GeV] +Cell[13,14] 0.00028176336668428 [GeV] +Cell[10,32] 0.0013278168522353 [GeV] +### Total energy deposition in calorimeter by a source track in 8 cells : 0.80232356279793 (GeV) + +Source track ID 3298 (e+,0.35586519004262[GeV]) at (-192.69699543281,-461.37605914391,252.74149043801) +Original primary track ID 31 (unknown,691.32334101424[GeV]) +Cell[11,31] 0.00028008568169418 [GeV] +Cell[11,32] 0.34249367016213 [GeV] +Cell[11,33] 0.013143515588046 [GeV] +Cell[6,38] 0.00045891752075079 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.35637618895262 (GeV) + +Source track ID 2283 (gamma,0.17435926984906[GeV]) at (-435.61886419772,245.43065243585,445.72701179096) Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[12,20] 0.12016509997225 [GeV] -Cell[12,19] 0.049023066360686 [GeV] -Cell[12,18] 6.4525146688839e-05 [GeV] -Cell[11,29] 0.00028594087276879 [GeV] -Cell[18,7] 0.0048206374966628 [GeV] -### Total energy deposition in calorimeter by a source track in 5 cells : 0.17435926984906 (GeV) +Cell[8,13] 0.00051099891 [GeV] +Cell[14,31] 0.00041269952325858 [GeV] +Cell[12,20] 0.13559182858342 [GeV] +Cell[12,9] 0.00044910361632058 [GeV] +Cell[12,19] 0.016026506571278 [GeV] +Cell[11,19] 0.00051099891 [GeV] +Cell[14,45] 0.0071958304626775 [GeV] +Cell[13,22] 0.00033495277161328 [GeV] +Cell[15,1] 0.00082074734009059 [GeV] +Cell[13,4] 0.00051099891 [GeV] +Cell[17,42] 0.0044748676835882 [GeV] +Cell[18,39] 0.0011907607391393 [GeV] +Cell[13,8] 0.00046192309739653 [GeV] +### Total energy deposition in calorimeter by a source track in 13 cells : 0.16849221711879 (GeV) -Source track ID 2039 (neutron,0.95634740913064[GeV]) at (-499.96812351246,-5.6458366457849,474.52828769495) +Source track ID 1499 (pi+,0.2744720904992[GeV]) at (284.86425833154,410.91648096082,4.2661245607286) Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[12,23] 0.00074721723480206 [GeV] -Cell[12,22] 3.4748782843508e-07 [GeV] -Cell[12,24] 0.0073541113852498 [GeV] -Cell[12,25] 0.0019326985217809 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.010034374629661 (GeV) +Cell[8,8] 0.0022944526967982 [GeV] +Cell[9,8] 0.00051634348138771 [GeV] +Cell[8,7] 0.00032720654523268 [GeV] +Cell[8,27] 0.00071427687640198 [GeV] +Cell[9,7] 0.002566209882648 [GeV] +Cell[7,37] 0.00017790777745176 [GeV] +Cell[10,29] 0.0023332403560915 [GeV] +Cell[10,30] 0.0021995206035967 [GeV] +Cell[8,6] 0.00072510903920955 [GeV] +Cell[6,31] 0.0002550744202357 [GeV] +Cell[12,12] 1.8614538013935e-05 [GeV] +Cell[10,2] 1.9163722085068e-05 [GeV] +Cell[7,44] 4.8133083194826e-05 [GeV] +Cell[6,37] 7.6082777734428e-06 [GeV] +Cell[10,6] 0.10583294642653 [GeV] +Cell[10,9] 8.1418205576483e-05 [GeV] +Cell[5,31] 0.00063012440545208 [GeV] +Cell[6,36] 0.00056666512080471 [GeV] +Cell[13,19] 4.5105559460353e-05 [GeV] +Cell[10,5] 1.7127494415035e-05 [GeV] +Cell[5,1] 5.5325446073337e-05 [GeV] +Cell[9,29] 2.6651182823116e-05 [GeV] +Cell[9,27] 8.027643616515e-10 [GeV] +Cell[9,5] 6.8254911457188e-07 [GeV] +Cell[5,4] 0.00023469733149344 [GeV] +Cell[14,30] 4.9262409447692e-06 [GeV] +Cell[14,6] 0.00084750130774421 [GeV] +Cell[13,11] 0.00019893629894796 [GeV] +Cell[13,12] 0.0011679935484235 [GeV] +Cell[6,38] 5.8389877085574e-06 [GeV] +Cell[10,7] 0.037581094298359 [GeV] +Cell[5,30] 6.0800652383932e-06 [GeV] +Cell[12,6] 0.00040398925563364 [GeV] +Cell[9,6] 0.0091943008617454 [GeV] +Cell[14,7] 0.00041565447048526 [GeV] +Cell[8,5] 2.752236689139e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 36 cells : 0.16954744352675 (GeV) -Source track ID 2042 (neutron,0.9465313494698[GeV]) at (-159.75291065866,473.79215647379,-150.69703802952) +Source track ID 2264 (gamma,0.67224858404432[GeV]) at (444.05232219747,-229.82065866896,-518.95901330061) Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[16,8] 0.00045639303656318 [GeV] -Cell[9,15] 0.0011715199971221 [GeV] -Cell[9,14] 0.0037305128426969 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.0053584258763822 (GeV) +Cell[5,28] 0.0011666604635431 [GeV] +Cell[6,45] 0.00080535941327502 [GeV] +Cell[6,18] 0.00051099891 [GeV] +Cell[6,20] 0.00051099891 [GeV] +Cell[7,43] 0.004543626561212 [GeV] +Cell[7,44] 0.60490999049967 [GeV] +Cell[6,44] 0.021328871691846 [GeV] +Cell[4,23] 1.1965577141382e-07 [GeV] +Cell[1,14] 0.0006308551146333 [GeV] +Cell[4,37] 7.0838833520384e-06 [GeV] +Cell[6,1] 0.00070664907309981 [GeV] +Cell[5,27] 0.0063342529317441 [GeV] +Cell[14,0] 1.0280489514116e-05 [GeV] +Cell[17,40] 0.00044209936732295 [GeV] +Cell[5,30] 5.5402680300176e-07 [GeV] +Cell[4,14] 0.00041129509189579 [GeV] +Cell[5,29] 0.00039064852359011 [GeV] +Cell[7,47] 0.00022325539188453 [GeV] +Cell[7,45] 0.0042936795978955 [GeV] +Cell[7,46] 1.4155490543999e-06 [GeV] +### Total energy deposition in calorimeter by a source track in 20 cells : 0.64722869514611 (GeV) -Source track ID 2044 (gamma,0.00020610047383331[GeV]) at (-386.20918223235,317.55703040465,707.51466592251) +Source track ID 2265 (gamma,0.13757172036947[GeV]) at (417.90942128772,-274.50266956619,-190.74600384711) Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[13,18] 0.00020610047383331 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00020610047383331 (GeV) +Cell[9,43] 0.088608559468169 [GeV] +Cell[8,43] 0.041911502845481 [GeV] +Cell[9,44] 0.00030039924428464 [GeV] +Cell[8,18] 0.0013283076952392 [GeV] +Cell[6,16] 0.0049119522062913 [GeV] +Cell[8,42] 0.00051099891 [GeV] +### Total energy deposition in calorimeter by a source track in 6 cells : 0.13757172036947 (GeV) -Source track ID 2033 (gamma,0.67224858404432[GeV]) at (444.05232288983,-229.82065733121,-518.95902278239) +Source track ID 2262 (gamma,0.00011153018092804[GeV]) at (-304.25484690107,396.77322003533,1037.8419168388) Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[8,28] 0.0006265419432763 [GeV] -Cell[7,6] 0.0014619200610303 [GeV] -Cell[6,9] 0.00051099891 [GeV] -Cell[8,32] 0.00024826921116752 [GeV] -Cell[7,44] 0.63067239399117 [GeV] -Cell[7,45] 0.0019854518276041 [GeV] -Cell[7,43] 0.026374294246427 [GeV] -Cell[7,31] 0.0024586930196669 [GeV] -Cell[6,44] 0.0034174277631972 [GeV] -Cell[9,21] 0.00038882738396827 [GeV] -Cell[6,42] 0.0019892888563514 [GeV] -Cell[8,41] 0.00067086985519925 [GeV] -### Total energy deposition in calorimeter by a source track in 12 cells : 0.67080497706906 (GeV) +Cell[15,16] 0.00011153018092804 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00011153018092804 (GeV) -Source track ID 2034 (gamma,0.13757172036947[GeV]) at (417.90941828687,-274.50267413476,-190.74596903784) +Source track ID 2236 (kaon-,1.1644884067053[GeV]) at (473.48750396678,-160.65361367647,-19.801218104036) Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[9,43] 0.00066811607493985 [GeV] -Cell[8,42] 0.0080341907586669 [GeV] -Cell[8,43] 0.12886941353586 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.13757172036947 (GeV) +Cell[8,1] 3.5821788403268e-05 [GeV] +Cell[8,0] 0.0027507151606271 [GeV] +Cell[9,0] 0.00076613609180959 [GeV] +Cell[8,45] 0.0017421612684547 [GeV] +Cell[10,45] 0.0012357932747077 [GeV] +Cell[10,46] 0.14284569313901 [GeV] +Cell[9,45] 0.39854025413498 [GeV] +Cell[8,46] 0.00087404484993135 [GeV] +Cell[9,46] 0.33298327959189 [GeV] +Cell[11,47] 0.0016063962823935 [GeV] +Cell[7,1] 6.7909058657278e-08 [GeV] +Cell[8,44] 0.0010440088306665 [GeV] +Cell[10,47] 0.00030748947271081 [GeV] +Cell[9,47] 0.013402485284296 [GeV] +Cell[11,45] 9.7328899869353e-08 [GeV] +Cell[8,47] 0.0022478813207772 [GeV] +### Total energy deposition in calorimeter by a source track in 16 cells : 0.90038232572862 (GeV) -Source track ID 2024 (gamma,8.546130621105e-05[GeV]) at (484.27697476976,124.40181553275,514.49192511789) +Source track ID 2233 (gamma,0.015859560263227[GeV]) at (453.63010115488,-210.28488135435,-430.35198695516) Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[12,1] 8.546130621105e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 8.546130621105e-05 (GeV) +Cell[7,44] 0.015601609037763 [GeV] +Cell[9,32] 8.7320524144044e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.015688929561907 (GeV) -Source track ID 2017 (kaon-,1.1683961963051[GeV]) at (474.56888814259,-157.43052565214,-19.684573064581) +Source track ID 2234 (gamma,0.75885122891297[GeV]) at (497.51078040208,-49.829944648863,326.48051373972) Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[9,43] 0.011552170681543 [GeV] -Cell[12,44] 6.5730743960103e-05 [GeV] -Cell[8,13] 1.4311150038111e-06 [GeV] -Cell[11,36] 0.0033892498361262 [GeV] -Cell[5,19] 1.6583048591201e-08 [GeV] -Cell[9,42] 1.183267051556e-05 [GeV] -Cell[6,9] 0.0059843906523387 [GeV] -Cell[7,42] 0.0012927668733754 [GeV] -Cell[8,4] 0.0021781262731226 [GeV] -Cell[9,46] 0.00097318640773767 [GeV] -Cell[11,32] 2.8496918093879e-06 [GeV] -Cell[6,17] 0.0066246741873779 [GeV] -Cell[9,23] 0.0012149782684157 [GeV] -Cell[9,22] 5.56822039689e-05 [GeV] -Cell[11,37] 1.7333925061394e-06 [GeV] -Cell[11,42] 1.0069869290419e-08 [GeV] -Cell[9,16] 0.00050135501246382 [GeV] -Cell[10,45] 0.0085507041550012 [GeV] -Cell[12,37] 1.8385471776128e-09 [GeV] -Cell[9,0] 0.023020529088057 [GeV] -Cell[9,47] 0.02492408464571 [GeV] -Cell[11,31] 4.4359651685227e-05 [GeV] -Cell[13,31] 1.0339810978621e-07 [GeV] -Cell[11,43] 6.8233416172689e-05 [GeV] -Cell[12,22] 1.2050404620823e-05 [GeV] -Cell[12,21] 3.7782796076499e-05 [GeV] -Cell[13,21] 7.2929056186695e-06 [GeV] -Cell[6,19] 1.2889358913526e-08 [GeV] -Cell[5,18] 8.5457391551358e-05 [GeV] -Cell[9,44] 0.16594997667952 [GeV] -Cell[12,20] 0.0026110597813378 [GeV] -Cell[8,46] 1.56333144987e-05 [GeV] -Cell[9,24] 1.2968527918133e-05 [GeV] -Cell[7,43] 1.3022089871811e-05 [GeV] -Cell[12,11] 1.2697944010142e-05 [GeV] -Cell[12,10] 1.4079130225582e-05 [GeV] -Cell[4,4] 7.2215986652054e-05 [GeV] -Cell[3,4] 2.3888080992265e-06 [GeV] -Cell[11,4] 0.0079537998182081 [GeV] -Cell[11,3] 0.0015144107377864 [GeV] -Cell[14,0] 0.0014159177287389 [GeV] -Cell[11,46] 1.1152633305755e-10 [GeV] -Cell[13,3] 2.94588090037e-06 [GeV] -Cell[11,44] 0.0033200724841569 [GeV] -Cell[11,1] 0.0084514503683078 [GeV] -Cell[12,12] 1.7096172086895e-09 [GeV] -Cell[11,35] 0.00055645588717596 [GeV] -Cell[12,36] 7.9045982727735e-05 [GeV] -Cell[8,45] 0.015951519710151 [GeV] -Cell[9,4] 0.00051099891 [GeV] -Cell[14,3] 7.6733497553505e-06 [GeV] -Cell[10,38] 1.1951342750081e-05 [GeV] -Cell[10,37] 0.0025909616228585 [GeV] -Cell[11,0] 0.00078714265264236 [GeV] -Cell[10,44] 0.015047497213093 [GeV] -Cell[8,44] 0.00056310153168045 [GeV] -Cell[9,45] 0.29472195732093 [GeV] -Cell[1,24] 0.00096111101991478 [GeV] -Cell[1,21] 0.0011191914252791 [GeV] -Cell[2,16] 2.7624487411231e-06 [GeV] -Cell[5,17] 0.0033687879335949 [GeV] -Cell[1,23] 0.00070627548261314 [GeV] -Cell[12,45] 0.0058002193495881 [GeV] -Cell[10,0] 0.0081505850016619 [GeV] -Cell[10,47] 0.00083373172840809 [GeV] -Cell[2,43] 2.6270684611518e-06 [GeV] -Cell[12,4] 3.7133629709956e-05 [GeV] -Cell[12,46] 0.016697157591324 [GeV] -Cell[13,4] 2.8468652744778e-06 [GeV] -Cell[8,42] 0.00071177690488505 [GeV] -Cell[8,43] 0.0038765177996002 [GeV] -Cell[12,0] 2.4587588268332e-06 [GeV] -Cell[12,47] 0.00087658748085869 [GeV] -Cell[13,47] 0.00047499818568133 [GeV] -Cell[12,3] 7.2866575169428e-07 [GeV] -Cell[11,6] 0.00053405094454797 [GeV] -Cell[11,5] 0.00099236200682594 [GeV] -Cell[13,0] 1.3101092734587e-05 [GeV] -Cell[13,46] 0.00018075679387312 [GeV] -Cell[13,45] 0.0012244961452766 [GeV] -Cell[10,43] 1.7737142352416e-06 [GeV] -Cell[12,7] 6.586528616026e-08 [GeV] -Cell[10,46] 0.00020279464058073 [GeV] -Cell[17,34] 6.9923269211358e-07 [GeV] -Cell[17,33] 0.00014867018994732 [GeV] -Cell[13,9] 7.9016977688298e-06 [GeV] -Cell[12,9] 9.0343020008731e-05 [GeV] -Cell[12,8] 4.2170860397164e-06 [GeV] -Cell[6,16] 8.9655744867855e-05 [GeV] -Cell[6,18] 0.005234118631127 [GeV] -Cell[7,14] 1.2305772979744e-05 [GeV] -Cell[7,16] 1.5895887336228e-06 [GeV] -Cell[9,17] 0.0016689453709043 [GeV] -Cell[7,17] 5.2493669209071e-06 [GeV] -Cell[14,5] 0.00023346874931391 [GeV] -Cell[9,18] 0.00075400704658205 [GeV] -Cell[13,11] 6.0187885537744e-09 [GeV] -Cell[10,6] 6.1121788803575e-09 [GeV] -### Total energy deposition in calorimeter by a source track in 98 cells : 0.66781782604122 (GeV) +Cell[11,46] 0.014919930902896 [GeV] +Cell[10,45] 0.00026577356833564 [GeV] +Cell[10,46] 0.00041657025674568 [GeV] +Cell[11,47] 0.69322984114602 [GeV] +Cell[12,47] 0.032052733712617 [GeV] +Cell[10,42] 0.0025015012221783 [GeV] +Cell[11,44] 0.00051099891 [GeV] +Cell[12,45] 0.00053527595333647 [GeV] +Cell[12,46] 0.0049409680745863 [GeV] +Cell[11,0] 0.0014935629377822 [GeV] +Cell[12,0] 0.00044870361465726 [GeV] +Cell[12,4] 0.00022699728659961 [GeV] +Cell[12,5] 0.00057057832590408 [GeV] +### Total energy deposition in calorimeter by a source track in 13 cells : 0.75211343591166 (GeV) -Source track ID 2014 (gamma,0.015859560263227[GeV]) at (453.63014255112,-210.28479205365,-430.35154709468) +Source track ID 1725 (gamma,0.12620965025075[GeV]) at (-487.28250309565,-112.05249741456,703.8898096739) Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[7,44] 0.01394307077097 [GeV] -Cell[7,38] 0.001916489492257 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.015859560263227 (GeV) +Cell[13,26] 0.0022866316292123 [GeV] +Cell[13,25] 0.12140654615321 [GeV] +Cell[13,2] 0.0011562430015731 [GeV] +Cell[14,2] 0.00037958452943417 [GeV] +Cell[17,46] 0.00098064493731469 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.12620965025075 (GeV) -Source track ID 2015 (gamma,0.75885122891297[GeV]) at (497.51078021651,-49.829946501661,326.48050535324) +Source track ID 1726 (gamma,0.088297327870564[GeV]) at (61.272156956898,-496.23152135052,76.525338250161) Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[11,14] 0.00051099891 [GeV] -Cell[11,46] 0.018857649384328 [GeV] -Cell[11,0] 0.001398884236805 [GeV] -Cell[12,46] 0.0060231559058189 [GeV] -Cell[12,0] 0.0031073255611072 [GeV] -Cell[12,47] 0.021993592203836 [GeV] -Cell[11,45] 0.0010662998513281 [GeV] -Cell[11,47] 0.70538232394975 [GeV] -Cell[13,9] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 9 cells : 0.75885122891297 (GeV) - -Source track ID 1950 (pi+,0.18216414578078[GeV]) at (710.91736706365,-652.79368064165,2000) -Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[19,42] 0.081348437001283 [GeV] -Cell[19,41] 0.0012772575326549 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.082625694533938 (GeV) - -Source track ID 1844 (mu-,0.20228608618622[GeV]) at (-499.61535562249,19.608580423191,1727.0095637319) -Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[18,4] 2.2595083448323e-05 [GeV] -Cell[19,0] 0.0021636288770866 [GeV] -Cell[18,23] 0.10578125716502 [GeV] -Cell[18,24] 0.00081026161577548 [GeV] -Cell[19,22] 0.0026247023709269 [GeV] -Cell[19,23] 4.7769753924513e-05 [GeV] -Cell[19,24] 6.4865472959355e-06 [GeV] -Cell[18,22] 7.1552304348188e-08 [GeV] -### Total energy deposition in calorimeter by a source track in 8 cells : 0.11145677296578 (GeV) - -Source track ID 1827 (gamma,0.12620965025075[GeV]) at (-487.28250271018,-112.05249909084,703.88980968784) -Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[13,26] 0.0020820157835566 [GeV] -Cell[13,25] 0.12009755478183 [GeV] -Cell[14,38] 0.00068848239044302 [GeV] -Cell[14,25] 0.0033415972949212 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.12620965025075 (GeV) - -Source track ID 1828 (gamma,0.088297327870564[GeV]) at (61.272155527412,-496.23152152702,76.52534026586) -Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[10,37] 0.028379280570783 [GeV] -Cell[10,36] 0.059918047299782 [GeV] +Cell[10,37] 0.010515171167335 [GeV] +Cell[10,36] 0.077782156703229 [GeV] ### Total energy deposition in calorimeter by a source track in 2 cells : 0.088297327870564 (GeV) -Source track ID 1663 (pi+,0.88669306217818[GeV]) at (5.9419492912797,499.96469199196,751.26443348728) +Source track ID 1504 (pi+,0.88672703629038[GeV]) at (4.920329262166,499.97578977382,750.78072865025) Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[14,18] 0.002022207059429 [GeV] -Cell[18,19] 1.4336241858587e-05 [GeV] -Cell[14,8] 0.00044822992936531 [GeV] -Cell[14,10] 0.2379937680266 [GeV] -Cell[14,7] 1.8393456002741e-09 [GeV] -Cell[15,1] 3.8502237293869e-07 [GeV] -Cell[15,19] 0.0068658607601743 [GeV] -Cell[16,17] 0.017734112783855 [GeV] -Cell[15,14] 3.3123272587545e-06 [GeV] -Cell[14,14] 2.1327331683096e-07 [GeV] -Cell[17,19] 0.001279593990425 [GeV] -Cell[17,20] 0.00026057622671692 [GeV] -Cell[16,20] 6.5892188524685e-07 [GeV] -Cell[15,12] 0.0029701203442588 [GeV] -Cell[15,9] 1.2115844892833e-06 [GeV] -Cell[14,9] 0.0016509813666751 [GeV] -Cell[15,10] 0.0012681143941895 [GeV] -Cell[15,11] 0.0026660393675074 [GeV] -Cell[17,17] 0.0017639697851548 [GeV] -Cell[13,9] 8.6498503804933e-06 [GeV] -Cell[13,10] 0.00017219401732973 [GeV] -Cell[18,18] 0.010112344207535 [GeV] -Cell[18,17] 2.1946561901132e-10 [GeV] -Cell[16,19] 0.004627390249655 [GeV] -Cell[15,18] 0.011109651023168 [GeV] -Cell[15,15] 6.1263776326086e-05 [GeV] -Cell[15,16] 2.6810911367647e-07 [GeV] -Cell[14,13] 0.0011389075565509 [GeV] -Cell[14,12] 0.0055497555509402 [GeV] -Cell[14,11] 0.22891750172693 [GeV] -Cell[17,18] 2.2009704325683e-05 [GeV] -Cell[16,18] 0.0036259060334764 [GeV] -Cell[13,8] 2.4390174075961e-09 [GeV] -Cell[13,11] 0.071060670264128 [GeV] -Cell[18,20] 3.8205406395946e-06 [GeV] -### Total energy deposition in calorimeter by a source track in 35 cells : 0.61335402851386 (GeV) +Cell[14,11] 0.45814598891972 [GeV] +Cell[14,12] 0.002529617975293 [GeV] +Cell[14,10] 0.0071592777148085 [GeV] +Cell[17,22] 0.0021502232723345 [GeV] +Cell[10,36] 0.00013507787074366 [GeV] +Cell[11,31] 2.1269640162132e-05 [GeV] +Cell[15,32] 0.00010834508767709 [GeV] +Cell[16,9] 0.0001912619496544 [GeV] +Cell[14,13] 0.00034859743300524 [GeV] +Cell[15,9] 0.015537913889411 [GeV] +Cell[13,41] 0.0019258994311913 [GeV] +Cell[12,20] 7.1791999216657e-06 [GeV] +Cell[16,11] 5.8845059306805e-05 [GeV] +Cell[15,11] 4.2323895963591e-05 [GeV] +Cell[12,25] 8.2292721490376e-06 [GeV] +Cell[10,35] 0.0014246093783295 [GeV] +Cell[15,7] 6.5418191620665e-06 [GeV] +Cell[15,47] 6.234762273607e-07 [GeV] +Cell[13,47] 4.152356996201e-08 [GeV] +Cell[15,10] 0.0027405950695665 [GeV] +Cell[16,10] 2.2291536178955e-05 [GeV] +Cell[14,36] 0.00014927613425891 [GeV] +Cell[12,41] 1.2427246838342e-05 [GeV] +Cell[14,39] 0.0029281193413144 [GeV] +Cell[14,38] 0.00065112588270688 [GeV] +Cell[14,6] 7.0308695967469e-08 [GeV] +Cell[14,37] 2.2496489691548e-07 [GeV] +Cell[13,38] 0.00082533876050729 [GeV] +Cell[13,11] 0.07902252842463 [GeV] +Cell[13,12] 4.6645050664665e-05 [GeV] +Cell[13,10] 3.2181484129978e-08 [GeV] +Cell[18,21] 1.7768013549357e-09 [GeV] +Cell[13,0] 6.7444061085098e-07 [GeV] +Cell[13,39] 1.9854852260323e-05 [GeV] +Cell[14,40] 0.00017660896115025 [GeV] +Cell[14,9] 0.015864419419312 [GeV] +Cell[16,40] 0.001351152853352 [GeV] +Cell[15,27] 0.0049012649605476 [GeV] +Cell[17,24] 5.8442921726964e-07 [GeV] +Cell[17,23] 3.8462804513983e-07 [GeV] +Cell[16,23] 4.7722059884109e-05 [GeV] +Cell[14,7] 5.5604065584021e-06 [GeV] +Cell[14,8] 0.0062317142903105 [GeV] +Cell[13,9] 3.1053715880262e-05 [GeV] +Cell[13,7] 4.5076932845404e-05 [GeV] +Cell[17,21] 0.00017332402049431 [GeV] +Cell[15,26] 0.00023196722712862 [GeV] +Cell[15,8] 0.0046668430540154 [GeV] +Cell[16,12] 2.0983861759305e-11 [GeV] +### Total energy deposition in calorimeter by a source track in 49 cells : 0.60994874975978 (GeV) -Source track ID 1725 (pi-,0.6542516062822[GeV]) at (-90.600886283479,-491.72297018204,1127.6285236762) +Source track ID 1602 (pi-,0.65399846758472[GeV]) at (-88.877495488827,-492.03738759939,1128.3520379657) Original primary track ID 41 (unknown,2.6699951779791[GeV]) -Cell[15,32] 4.1706524314691e-05 [GeV] -Cell[15,35] 0.0088799060172672 [GeV] -Cell[15,36] 0.0010753193907419 [GeV] -Cell[14,36] 4.6224019342844e-07 [GeV] -Cell[15,37] 0.001195109200809 [GeV] -Cell[15,33] 0.0015203064235529 [GeV] -Cell[14,37] 0.00044180920558267 [GeV] -Cell[15,34] 0.19192686134071 [GeV] -Cell[16,34] 0.0019590022901054 [GeV] -Cell[16,35] 6.5180719439354e-05 [GeV] -Cell[19,8] 1.5088779686039e-06 [GeV] -Cell[19,7] 5.766696202852e-05 [GeV] -Cell[18,20] 0.0012789144938333 [GeV] -Cell[14,34] 3.4476427258596e-06 [GeV] -### Total energy deposition in calorimeter by a source track in 14 cells : 0.20844720132927 (GeV) +Cell[18,32] 0.00036844189589692 [GeV] +Cell[19,35] 4.195719757422e-05 [GeV] +Cell[16,35] 0.18172861778959 [GeV] +Cell[16,36] 0.00021150502785088 [GeV] +Cell[15,35] 0.010080019944457 [GeV] +Cell[15,34] 0.091742311824927 [GeV] +Cell[17,32] 0.00024362741950358 [GeV] +Cell[16,34] 6.3332509853353e-08 [GeV] +Cell[17,35] 0.12413465655638 [GeV] +Cell[17,34] 0.0009985520866361 [GeV] +Cell[17,33] 0.00023947577549745 [GeV] +Cell[16,37] 0.00071816152973827 [GeV] +Cell[17,37] 0.0031201062975103 [GeV] +Cell[18,36] 1.3145942276992e-05 [GeV] +Cell[18,31] 5.2677933126688e-12 [GeV] +Cell[18,33] 0.0038384803030007 [GeV] +Cell[17,36] 0.0030351413583384 [GeV] +Cell[19,34] 3.9642562679774e-06 [GeV] +Cell[18,34] 0.087046154087209 [GeV] +Cell[18,35] 0.002472879789399 [GeV] +Cell[19,33] 0.00096146909730328 [GeV] +### Total energy deposition in calorimeter by a source track in 21 cells : 0.51099873151713 (GeV) -Source track ID 1654 (gamma,0.23818895051853[GeV]) at (-24.111052240173,-499.41831880686,-17.911064377671) +Source track ID 1495 (gamma,0.23818895051853[GeV]) at (-24.111052240173,-499.41831880686,-17.911064377671) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[9,35] 0.21355715937658 [GeV] -Cell[10,34] 0.00047641732799506 [GeV] -Cell[10,35] 0.016276957406431 [GeV] -Cell[10,36] 0.0073954954786666 [GeV] -Cell[9,36] 0.00048292092886212 [GeV] -### Total energy deposition in calorimeter by a source track in 5 cells : 0.23818895051853 (GeV) +Cell[10,35] 0.0056939214832898 [GeV] +Cell[9,34] 0.00088502473127537 [GeV] +Cell[9,35] 0.23161000430397 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.23818895051853 (GeV) -Source track ID 1655 (gamma,0.33413532464401[GeV]) at (245.8933673121,435.35784351717,97.500310757389) +Source track ID 1496 (gamma,0.33413532464401[GeV]) at (245.8933673121,435.35784351717,97.500310757389) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[10,9] 0.0013365706644367 [GeV] -Cell[10,8] 0.27976109581007 [GeV] -Cell[11,7] 0.00020180103574156 [GeV] -Cell[10,7] 0.052835857133757 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.334135324644 (GeV) +Cell[10,9] 0.00068129610367302 [GeV] +Cell[10,34] 0.0013637302183843 [GeV] +Cell[10,7] 0.024500266278256 [GeV] +Cell[10,8] 0.30759003204369 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.33413532464401 (GeV) -Source track ID 1561 (pi-,1.7949501242219[GeV]) at (443.19761299068,-231.46463194052,-1862.3129447221) +Source track ID 1398 (pi-,1.7949107973126[GeV]) at (442.24141421204,-233.28637241754,-1859.2472361735) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[0,42] 0.00012982385638693 [GeV] -Cell[0,44] 0.23768656484944 [GeV] -Cell[0,27] 0.0076500743656735 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.2454664630715 (GeV) +Cell[1,41] 0.00090072946806447 [GeV] +Cell[6,27] 0.00032059388616767 [GeV] +Cell[1,20] 0.014137434119057 [GeV] +Cell[1,21] 0.0053543603615868 [GeV] +Cell[1,22] 0.0014724771928209 [GeV] +Cell[0,21] 0.0012617217535501 [GeV] +Cell[0,22] 0.00011554336394067 [GeV] +Cell[2,23] 0.0005859731722727 [GeV] +Cell[0,46] 0.012757642879247 [GeV] +Cell[7,27] 0.00011709916940174 [GeV] +Cell[10,36] 1.6577823320404e-05 [GeV] +Cell[4,13] 1.9585974805523e-06 [GeV] +Cell[5,7] 0.00014208269893413 [GeV] +Cell[2,24] 0.0059294203306604 [GeV] +Cell[1,46] 0.0018506744272802 [GeV] +Cell[0,4] 1.1738109169528e-06 [GeV] +Cell[4,12] 0.00021152556319123 [GeV] +Cell[0,24] 0.0022254042776171 [GeV] +Cell[1,24] 2.9229778522222e-07 [GeV] +Cell[0,20] 0.0080019396690326 [GeV] +Cell[4,18] 4.5806518755853e-10 [GeV] +Cell[0,43] 0.042258766769024 [GeV] +Cell[1,35] 1.840335316956e-07 [GeV] +Cell[0,19] 0.0020944639640262 [GeV] +Cell[0,18] 5.049596779827e-09 [GeV] +Cell[1,16] 0.0008618510239977 [GeV] +Cell[0,17] 0.0011682506391595 [GeV] +Cell[1,19] 0.0047523030447782 [GeV] +Cell[0,41] 0.00031453333166303 [GeV] +Cell[0,23] 0.00016655730915363 [GeV] +Cell[0,6] 0.001007976534073 [GeV] +Cell[1,17] 1.3453243940603e-05 [GeV] +Cell[0,3] 1.871791157987e-05 [GeV] +Cell[0,47] 0.001281921863645 [GeV] +Cell[3,34] 0.00056813701497026 [GeV] +Cell[0,44] 0.73483512878242 [GeV] +Cell[2,12] 2.8576891927514e-06 [GeV] +Cell[5,6] 2.8179993023514e-08 [GeV] +Cell[3,32] 1.2407629690642e-05 [GeV] +Cell[3,31] 3.7578428847269e-05 [GeV] +Cell[1,43] 7.9892743087839e-11 [GeV] +Cell[1,42] 0.0084762333898474 [GeV] +Cell[0,0] 1.3171724845051e-08 [GeV] +Cell[4,35] 2.8044180362485e-07 [GeV] +Cell[4,9] 6.416445132345e-06 [GeV] +Cell[3,35] 1.7139194038464e-05 [GeV] +Cell[2,15] 5.6622050935403e-05 [GeV] +Cell[2,14] 2.4090142251225e-05 [GeV] +Cell[2,22] 8.7738063302822e-07 [GeV] +Cell[0,45] 0.087014717082161 [GeV] +Cell[1,44] 0.0045840996449565 [GeV] +Cell[0,42] 0.020953089036661 [GeV] +Cell[3,33] 6.5356617824364e-08 [GeV] +Cell[1,45] 0.012626710523683 [GeV] +Cell[0,7] 0.0048973829321717 [GeV] +### Total energy deposition in calorimeter by a source track in 55 cells : 0.98345748463618 (GeV) -Source track ID 1261 (gamma,0.16498092085606[GeV]) at (-167.27759318887,471.18808008792,-1116.9842371315) +Source track ID 1106 (gamma,0.16498092085606[GeV]) at (-167.27757145837,471.18808780251,-1116.98340474) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[3,14] 0.0074720712739151 [GeV] -Cell[5,34] 3.0798205973011e-06 [GeV] -Cell[6,34] 0.00030560085604739 [GeV] -Cell[6,17] 0.00018703260117533 [GeV] -Cell[8,29] 0.00069442369073688 [GeV] -Cell[4,18] 0.00036184516980326 [GeV] -Cell[4,17] 0.00093425375624313 [GeV] -Cell[4,15] 4.8241683696599e-05 [GeV] -Cell[4,14] 0.15387391380438 [GeV] -### Total energy deposition in calorimeter by a source track in 9 cells : 0.1638804626566 (GeV) +Cell[11,23] 0.00027435698659216 [GeV] +Cell[0,30] 0.0012964933877295 [GeV] +Cell[0,29] 0.00053829985664065 [GeV] +Cell[2,46] 0.00047354812284925 [GeV] +Cell[6,43] 0.001105651814723 [GeV] +Cell[5,5] 0.0028061563979898 [GeV] +Cell[4,14] 0.15751827742113 [GeV] +Cell[0,45] 0.00073149494500009 [GeV] +### Total energy deposition in calorimeter by a source track in 8 cells : 0.16474427893265 (GeV) -Source track ID 1152 (gamma,0.025785962614609[GeV]) at (-499.85155995778,12.182692960581,-421.85997204917) +Source track ID 1011 (gamma,0.025785962614609[GeV]) at (-499.85156274278,12.182578692594,-421.86048725385) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[6,8] 0.00051099891 [GeV] -Cell[7,23] 0.022118329757056 [GeV] -Cell[7,24] 0.0031566339475532 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.025785962614609 (GeV) +Cell[7,23] 0.025785962614609 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.025785962614609 (GeV) -Source track ID 1153 (gamma,0.77353931528222[GeV]) at (193.22390119584,-461.15563967782,-1884.3170216152) +Source track ID 1012 (gamma,0.77353931528222[GeV]) at (193.2238907232,-461.15564406585,-1884.3170512814) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[2,1] 0.00033974557775528 [GeV] -Cell[1,24] 0.00024227341153357 [GeV] -Cell[3,19] 0.00028880055045324 [GeV] -Cell[3,22] 0.00073133567017354 [GeV] -Cell[2,22] 0.0011748736255135 [GeV] -Cell[0,3] 0.00047974286200746 [GeV] -Cell[4,8] 0.00064025561550397 [GeV] -Cell[1,3] 0.00080334772547521 [GeV] -Cell[0,41] 0.00082469967115143 [GeV] -Cell[0,38] 0.18515568206823 [GeV] -Cell[0,37] 0.0040624427655073 [GeV] -Cell[0,39] 0.53056518215384 [GeV] -### Total energy deposition in calorimeter by a source track in 12 cells : 0.72530838169714 (GeV) +Cell[1,30] 0.00051099891 [GeV] +Cell[0,46] 0.00038306805995731 [GeV] +Cell[1,46] 0.0011837112456906 [GeV] +Cell[0,37] 0.00081707726589437 [GeV] +Cell[0,40] 0.0019342484966764 [GeV] +Cell[0,28] 0.0019254067814688 [GeV] +Cell[0,38] 0.075896916953242 [GeV] +Cell[0,30] 0.0042726861809404 [GeV] +Cell[0,9] 0.0015224727412243 [GeV] +Cell[0,0] 0.0011484707843624 [GeV] +Cell[3,14] 0.00074555136070044 [GeV] +Cell[0,14] 0.00051099891 [GeV] +Cell[0,39] 0.65428089604208 [GeV] +Cell[1,44] 0.0014223810373446 [GeV] +### Total energy deposition in calorimeter by a source track in 14 cells : 0.74655488476958 (GeV) -Source track ID 1112 (pi+,0.23580758949533[GeV]) at (37.440907369077,498.5962078229,-1659.2264730186) +Source track ID 989 (mu+,0.21453772810599[GeV]) at (-7.9822105273234,499.93628025489,-1614.1370661298) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[1,12] 0.0030812098245176 [GeV] -Cell[1,11] 0.12541714430552 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.12849835413004 (GeV) +Cell[1,12] 0.13051124926156 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.13051124926156 (GeV) -Source track ID 1109 (gamma,0.59980090891317[GeV]) at (255.70125528735,-429.67065066685,-1133.3038308554) +Source track ID 959 (gamma,0.59980090891317[GeV]) at (255.70125656011,-429.67064990942,-1133.3038372894) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[5,35] 0.00014437109865053 [GeV] -Cell[3,39] 0.027819968628101 [GeV] -Cell[5,7] 1.8142544904549e-05 [GeV] -Cell[10,24] 0.00028777926283479 [GeV] -Cell[3,4] 0.0015643983987563 [GeV] -Cell[0,4] 0.0012132184543015 [GeV] -Cell[9,4] 0.00037782047749704 [GeV] -Cell[4,32] 0.00050672700708863 [GeV] -Cell[4,1] 0.00051099891 [GeV] -Cell[3,1] 0.0030573464341032 [GeV] -Cell[4,15] 0.00051099891 [GeV] -Cell[4,39] 0.081602694558982 [GeV] -Cell[4,40] 0.45200933557785 [GeV] -Cell[3,40] 0.0052106126548083 [GeV] -Cell[4,6] 0.00038496331199053 [GeV] -Cell[4,7] 5.2731396863237e-08 [GeV] -Cell[5,6] 0.00011752871007411 [GeV] -Cell[1,27] 0.0029813050928095 [GeV] -Cell[3,38] 0.0026191111578332 [GeV] -Cell[5,27] 0.00051099891 [GeV] -Cell[5,20] 0.00047974093797037 [GeV] -Cell[2,3] 0.00031702630814126 [GeV] -Cell[6,18] 0.0018706993269033 [GeV] -Cell[1,3] 0.00060011173059616 [GeV] -Cell[3,37] 0.00053605782862285 [GeV] -Cell[2,4] 0.00010151936226582 [GeV] -Cell[3,30] 0.00055265091410716 [GeV] -Cell[0,9] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 28 cells : 0.58641717815058 (GeV) +Cell[3,40] 0.10580214255125 [GeV] +Cell[3,41] 0.004761346786819 [GeV] +Cell[4,41] 0.0028901677340087 [GeV] +Cell[3,2] 0.00051099891 [GeV] +Cell[3,7] 0.0025651463492998 [GeV] +Cell[3,42] 0.00075746671918901 [GeV] +Cell[1,15] 0.0018772949987648 [GeV] +Cell[4,39] 0.023200844873056 [GeV] +Cell[3,27] 0.001718706804378 [GeV] +Cell[4,40] 0.40813850093322 [GeV] +Cell[3,39] 0.037464068264496 [GeV] +Cell[3,3] 0.0044609014306871 [GeV] +Cell[3,46] 0.0020259582448618 [GeV] +Cell[2,7] 0.00069294366807125 [GeV] +Cell[2,39] 0.0029344206450649 [GeV] +### Total energy deposition in calorimeter by a source track in 15 cells : 0.59980090891317 (GeV) -Source track ID 1110 (gamma,0.053266099197347[GeV]) at (183.9944867235,464.91507703596,-1027.4558102587) +Source track ID 960 (gamma,0.053266099197347[GeV]) at (183.99450102855,464.91507137461,-1027.4558786926) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[6,38] 0.0015351996606952 [GeV] -Cell[4,9] 0.050393037710537 [GeV] -Cell[4,8] 0.0013378618261146 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.053266099197347 (GeV) +Cell[4,17] 0.001429713315787 [GeV] +Cell[4,8] 0.00081496696672181 [GeV] +Cell[4,10] 0.0016587756276574 [GeV] +Cell[4,9] 0.049362643287181 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.053266099197347 (GeV) -Source track ID 1097 (gamma,0.39597382458922[GeV]) at (-372.59429594556,-333.42688948079,-1802.3852317472) +Source track ID 957 (gamma,0.39597382458922[GeV]) at (-372.59429736352,-333.42688789626,-1802.3852137842) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[1,29] 0.00064912748704227 [GeV] -Cell[0,44] 0.00036297268873016 [GeV] -Cell[2,0] 0.00038987684465944 [GeV] -Cell[1,28] 0.000706833701827 [GeV] -Cell[1,43] 0.00063236653319694 [GeV] -Cell[1,27] 0.00039101293787675 [GeV] -Cell[3,8] 0.00046992498389086 [GeV] -Cell[0,38] 0.00038597105134538 [GeV] -Cell[0,28] 0.0086605361431916 [GeV] -Cell[0,29] 0.38100228044172 [GeV] -Cell[0,26] 0.0012964389009308 [GeV] -Cell[0,40] 0.00041662105266275 [GeV] -### Total energy deposition in calorimeter by a source track in 12 cells : 0.39536396276708 (GeV) +Cell[6,10] 0.0011099610267894 [GeV] +Cell[1,40] 0.00042673181927459 [GeV] +Cell[0,28] 0.0043592053558991 [GeV] +Cell[0,30] 0.0048542735375345 [GeV] +Cell[0,29] 0.37946889348209 [GeV] +Cell[0,10] 0.00051099891 [GeV] +Cell[1,11] 0.00086206076960459 [GeV] +### Total energy deposition in calorimeter by a source track in 7 cells : 0.3915921249012 (GeV) -Source track ID 1100 (gamma,0.00048695814820306[GeV]) at (441.67545170328,234.35612934743,-123.56504882642) +Source track ID 958 (gamma,0.02130681471934[GeV]) at (476.42904182998,151.70816754865,-84.417731860734) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[9,3] 0.00048695814820306 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00048695814820306 (GeV) +Cell[9,2] 0.02130681471934 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.02130681471934 (GeV) -Source track ID 1098 (gamma,0.0045425010313467[GeV]) at (491.82801558548,90.028901388648,-109.53484316995) +Source track ID 956 (gamma,0.19239638056034[GeV]) at (-414.65188855235,279.39901810846,-1130.207242417) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[9,1] 0.0045425010313467 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0045425010313467 (GeV) +Cell[7,7] 0.00051099891 [GeV] +Cell[3,18] 0.0038655630315839 [GeV] +Cell[4,18] 0.0016027984324263 [GeV] +Cell[4,19] 0.1824551513019 [GeV] +Cell[4,23] 0.00051099891 [GeV] +Cell[3,19] 0.0023084520843767 [GeV] +Cell[4,16] 0.00025978868478915 [GeV] +Cell[2,10] 0.00048728132466362 [GeV] +### Total energy deposition in calorimeter by a source track in 8 cells : 0.19200103267974 (GeV) -Source track ID 1096 (gamma,0.19239638056034[GeV]) at (-414.65188440568,279.39902426247,-1130.2072118745) +Source track ID 851 (e-,0.0010372932507782[GeV]) at (140.918824303,-479.73105481828,1213.7506174111) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[5,38] 0.00051099891 [GeV] -Cell[5,45] 0.00085255944234281 [GeV] -Cell[4,19] 0.17367570255726 [GeV] -Cell[3,18] 0.0034374680712981 [GeV] -Cell[3,19] 0.0062017765449592 [GeV] -Cell[4,20] 0.00073993766127169 [GeV] -Cell[5,9] 0.0017415058116656 [GeV] -Cell[5,10] 0.00044070379740663 [GeV] -Cell[4,45] 0.00033283720636842 [GeV] -Cell[2,28] 0.0022705215522105 [GeV] -Cell[0,1] 0.00065400565034046 [GeV] -### Total energy deposition in calorimeter by a source track in 11 cells : 0.19085801720512 (GeV) +Cell[16,38] 0.00052629434077821 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00052629434077821 (GeV) -Source track ID 1030 (gamma,0.25162621009879[GeV]) at (499.02634678508,-31.188222365697,957.00757664257) +Source track ID 844 (gamma,0.25162621009879[GeV]) at (499.02634686738,-31.188221048873,957.00755523307) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[13,28] 0.0023827410165872 [GeV] -Cell[14,46] 0.0003364843820575 [GeV] -Cell[14,47] 0.22678967899675 [GeV] -Cell[16,20] 0.00032272324747884 [GeV] -Cell[15,47] 0.011627543198351 [GeV] -Cell[17,7] 0.00051099891 [GeV] -Cell[16,10] 0.00075085033954446 [GeV] -Cell[17,24] 0.00059478509287373 [GeV] -Cell[14,25] 0.0047268879369937 [GeV] -Cell[12,16] 0.0014393596955588 [GeV] -Cell[11,20] 0.0012251502571089 [GeV] -Cell[13,8] 0.00091900702548839 [GeV] -### Total energy deposition in calorimeter by a source track in 12 cells : 0.25162621009879 (GeV) +Cell[15,46] 0.0016773010422471 [GeV] +Cell[15,0] 0.006331868287615 [GeV] +Cell[15,47] 0.10203136554818 [GeV] +Cell[14,47] 0.14158567522075 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.25162621009879 (GeV) -Source track ID 817 (gamma,0.23940053141976[GeV]) at (-378.30991062918,-326.92753252019,1067.9855695316) +Source track ID 616 (e-,0.00090526982284652[GeV]) at (-498.63156379342,-36.967060864038,1259.6533013212) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[16,32] 0.00015530344287264 [GeV] -Cell[15,30] 0.0048935105225142 [GeV] -Cell[10,13] 0.0010280116372815 [GeV] -Cell[13,6] 0.0024318692173906 [GeV] -Cell[16,2] 0.00051099891 [GeV] -Cell[13,46] 0.00026963703765489 [GeV] -Cell[15,29] 0.21091552308559 [GeV] -Cell[16,29] 0.001342080703514 [GeV] -Cell[15,38] 0.0091078563101739 [GeV] -Cell[16,35] 0.00018014712692454 [GeV] -Cell[15,39] 0.00050431607783764 [GeV] -Cell[16,14] 0.0021605227246877 [GeV] -Cell[14,17] 0.00051099891 [GeV] -Cell[15,28] 0.0008183249173781 [GeV] -Cell[17,46] 0.00038668377432271 [GeV] -Cell[14,6] 0.00064702676603338 [GeV] -Cell[17,5] 0.00072442444946358 [GeV] -### Total energy deposition in calorimeter by a source track in 17 cells : 0.23658723561364 (GeV) +Cell[18,22] 1.7892614901802e-05 [GeV] +Cell[18,21] 0.00011636129352254 [GeV] +Cell[16,24] 4.1086835907725e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.00017534074433207 (GeV) -Source track ID 429 (gamma,0.41164872010706[GeV]) at (-456.42208817587,204.15405316863,168.67819910927) +Source track ID 607 (gamma,0.23940053141976[GeV]) at (-378.30997202788,-326.9274614716,1067.9859666481) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[11,21] 0.0098525528906565 [GeV] -Cell[10,18] 0.0012753766316721 [GeV] -Cell[10,20] 0.2911194213074 [GeV] -Cell[11,20] 0.095309950231058 [GeV] -Cell[10,21] 0.012816942944504 [GeV] -### Total energy deposition in calorimeter by a source track in 5 cells : 0.41037424400529 (GeV) +Cell[15,29] 0.23343692158474 [GeV] +Cell[15,30] 0.00027095079481902 [GeV] +Cell[15,43] 0.00083239123119792 [GeV] +Cell[19,16] 0.0010567540556526 [GeV] +Cell[15,28] 0.0038035137533441 [GeV] +### Total energy deposition in calorimeter by a source track in 5 cells : 0.23940053141976 (GeV) -Source track ID 433 (gamma,0.001102870081753[GeV]) at (-410.93161428706,284.84242728118,-33.036544152293) +Source track ID 310 (gamma,0.0011611051711026[GeV]) at (-499.94082680641,-7.6921838334765,223.64631740486) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[9,19] 0.001102870081753 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.001102870081753 (GeV) +Cell[11,24] 0.0011611051711026 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0011611051711026 (GeV) -Source track ID 442 (gamma,0.00013028624201859[GeV]) at (-333.96875611241,-372.10868028135,2.0510937845601) +Source track ID 311 (gamma,0.00013057257307197[GeV]) at (-50.531712951191,-497.43999234704,496.51038740315) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[10,30] 0.00013028624201859 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00013028624201859 (GeV) +Cell[12,35] 0.00013057257307197 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00013057257307197 (GeV) -Source track ID 491 (gamma,9.4061297150712e-05[GeV]) at (-338.03847905462,-368.41550819481,19.508393372799) +Source track ID 312 (gamma,6.2355801675001e-05[GeV]) at (431.00118440685,-253.45212376284,566.66377786173) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[10,30] 9.4061297150712e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 9.4061297150712e-05 (GeV) +Cell[12,43] 6.2355801675001e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 6.2355801675001e-05 (GeV) -Source track ID 444 (gamma,0.00077104096523604[GeV]) at (265.43988738492,-423.72357284565,347.10956536448) +Source track ID 316 (gamma,0.00073439091428539[GeV]) at (420.2342727544,270.93016812932,556.91927982496) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[11,40] 0.00077104096523604 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00077104096523604 (GeV) +Cell[12,4] 0.00073439091428539 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00073439091428539 (GeV) -Source track ID 485 (gamma,0.0023730100268143[GeV]) at (-274.41303273921,-417.96828523569,-65.099917588446) +Source track ID 317 (gamma,0.00016330719970512[GeV]) at (445.80509160435,226.40189994706,609.25774213364) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[9,32] 0.0023730100268143 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0023730100268143 (GeV) +Cell[13,3] 0.00016330719970512 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00016330719970512 (GeV) -Source track ID 482 (gamma,0.00051099891[GeV]) at (261.74213545491,-426.01766926678,-310.11862847565) +Source track ID 319 (gamma,0.00083957828020727[GeV]) at (-466.56605230888,179.76684575557,369.78106113881) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[8,40] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00051099891 (GeV) +Cell[11,21] 0.00083957828020727 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00083957828020727 (GeV) -Source track ID 483 (gamma,0.00051099891[GeV]) at (-412.46955968037,-282.61079656849,38.34565481006) +Source track ID 320 (gamma,0.00096496218544447[GeV]) at (270.84065325779,-420.29197059056,620.96048198158) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[10,28] 0.00051099891 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00051099891 (GeV) +Cell[13,40] 0.00096496218544447 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00096496218544447 (GeV) -Source track ID 446 (gamma,0.058587228496579[GeV]) at (203.97580892993,-456.50177367824,16.094411122199) +Source track ID 321 (gamma,0.0014497203741545[GeV]) at (-496.88500727942,55.725124862404,469.47033385235) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[9,39] 0.00051099891 [GeV] -Cell[10,39] 0.05767765109509 [GeV] -Cell[9,40] 0.00022377465586425 [GeV] -### Total energy deposition in calorimeter by a source track in 3 cells : 0.058412424660955 (GeV) +Cell[12,23] 0.0014497203741545 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0014497203741545 (GeV) -Source track ID 457 (gamma,0.00015666871656936[GeV]) at (-486.54097000807,115.22970321756,44.184369478461) +Source track ID 307 (gamma,0.108076951862[GeV]) at (-452.61023653893,212.47111281342,168.44505753744) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[10,22] 0.00015666871656936 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00015666871656936 (GeV) +Cell[11,20] 0.011718149724939 [GeV] +Cell[10,20] 0.094708032179976 [GeV] +Cell[11,38] 0.00040872461118259 [GeV] +### Total energy deposition in calorimeter by a source track in 3 cells : 0.1068349065161 (GeV) -Source track ID 458 (gamma,9.5063863066647e-05[GeV]) at (-496.74775902,56.93561195428,127.89788419405) +Source track ID 308 (gamma,4.4560889836285e-05[GeV]) at (-452.49074867839,212.72546241686,169.08454651828) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[10,23] 9.5063863066647e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 9.5063863066647e-05 (GeV) +Cell[10,20] 4.4560889836285e-05 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 4.4560889836285e-05 (GeV) -Source track ID 461 (gamma,0.0047648925383177[GeV]) at (-479.3102170808,-142.34365388719,99.52460060474) +Source track ID 305 (e+,0.25717701519921[GeV]) at (-450.42114730564,217.07323662734,169.40506444975) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[10,26] 0.0047648925383177 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0047648925383177 (GeV) +Cell[11,20] 0.0318937359674 [GeV] +Cell[10,20] 0.20664758700395 [GeV] +Cell[10,19] 0.00090972926161289 [GeV] +Cell[11,19] 0.0095913843415375 [GeV] +Cell[9,34] 0.0005030892042696 [GeV] +Cell[9,35] 0.00077460531302631 [GeV] +### Total energy deposition in calorimeter by a source track in 6 cells : 0.25032013109179 (GeV) -Source track ID 467 (gamma,4.0651159905865e-05[GeV]) at (-499.92046618582,-8.9178185981476,65.969437679395) +Source track ID 303 (gamma,0.17556583448629[GeV]) at (-370.26453878658,336.01215947814,-37.728227406529) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[10,24] 4.0651159905865e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 4.0651159905865e-05 (GeV) +Cell[9,16] 0.00032027102658887 [GeV] +Cell[9,19] 0.0017927083949621 [GeV] +Cell[9,18] 0.17044296274533 [GeV] +Cell[9,17] 0.0030098923194156 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.17556583448629 (GeV) -Source track ID 430 (gamma,0.020473453434416[GeV]) at (-402.14171158613,297.12294391814,-54.086908565815) +Source track ID 301 (gamma,0.41324573943274[GeV]) at (303.44001238969,-397.39672731534,976.47730315274) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[9,19] 0.020473453434416 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.020473453434416 (GeV) +Cell[16,31] 0.00049113247097079 [GeV] +Cell[15,9] 0.00051099891 [GeV] +Cell[13,25] 0.0031835114337309 [GeV] +Cell[15,15] 0.0005397860654173 [GeV] +Cell[14,6] 0.0047535085121381 [GeV] +Cell[15,40] 0.15393817404122 [GeV] +Cell[15,24] 0.00069364443294121 [GeV] +Cell[14,16] 0.00051099891 [GeV] +Cell[14,40] 0.085857214954399 [GeV] +Cell[13,23] 0.0024835751516637 [GeV] +Cell[14,41] 0.045424318334472 [GeV] +Cell[15,42] 0.0023105719030783 [GeV] +Cell[15,41] 0.1101352479264 [GeV] +Cell[15,6] 0.0012149917548354 [GeV] +### Total energy deposition in calorimeter by a source track in 14 cells : 0.41204767480126 (GeV) -Source track ID 428 (gamma,0.41324573943274[GeV]) at (303.44001238969,-397.39672731534,976.47730315274) +Source track ID 274 (e-,0.0012974788176028[GeV]) at (-464.73527578919,184.44815921321,-1097.1726028295) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[16,26] 0.0019343668050118 [GeV] -Cell[7,7] 0.0011908697550991 [GeV] -Cell[14,32] 0.0013732167442103 [GeV] -Cell[13,32] 0.0014304047621798 [GeV] -Cell[14,26] 0.00085231071452343 [GeV] -Cell[13,25] 0.00033509650330631 [GeV] -Cell[12,29] 0.0010224493129633 [GeV] -Cell[15,41] 0.066195634041781 [GeV] -Cell[10,18] 0.00048000739733463 [GeV] -Cell[15,5] 0.00051099891 [GeV] -Cell[15,42] 0.0017813756566449 [GeV] -Cell[13,30] 0.0030548613620728 [GeV] -Cell[15,29] 0.0042186496093726 [GeV] -Cell[17,19] 0.00040893990291273 [GeV] -Cell[14,41] 0.02103154137974 [GeV] -Cell[14,39] 0.00056549985591216 [GeV] -Cell[14,40] 0.17922856754501 [GeV] -Cell[15,40] 0.12131349803976 [GeV] -Cell[13,24] 0.00051099891 [GeV] -Cell[19,13] 0.00044479873061014 [GeV] -Cell[19,26] 0.0023647040618642 [GeV] -### Total energy deposition in calorimeter by a source track in 21 cells : 0.41024879000031 (GeV) +Cell[4,21] 0.00078647990758876 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00078647990758876 (GeV) -Source track ID 412 (gamma,0.0030484066001911[GeV]) at (-368.08384053462,-338.39959565178,339.77186833576) +Source track ID 208 (pi-,0.22608068007766[GeV]) at (-388.23298757234,-315.07958893056,-1239.7739715036) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[11,29] 0.0030484066001911 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0030484066001911 (GeV) +Cell[3,40] 0.0045744076482919 [GeV] +Cell[2,42] 0.019076549289285 [GeV] +Cell[3,41] 0.0029110778093495 [GeV] +Cell[4,4] 0.00038569179299293 [GeV] +Cell[4,6] 4.4761738972738e-06 [GeV] +Cell[3,29] 0.10869997504665 [GeV] +Cell[3,42] 1.153456145164e-05 [GeV] +Cell[2,43] 0.012628022121158 [GeV] +Cell[3,36] 2.6375975401606e-05 [GeV] +Cell[3,27] 0.00076509401657336 [GeV] +Cell[3,30] 9.8575535289456e-06 [GeV] +Cell[4,30] 0.00096886163630711 [GeV] +Cell[4,29] 0.0021475733564524 [GeV] +Cell[4,3] 1.5811187011423e-05 [GeV] +Cell[3,39] 3.9009348256513e-08 [GeV] +Cell[2,0] 0.00051099891 [GeV] +Cell[4,28] 7.0518679276574e-06 [GeV] +Cell[4,27] 1.5310813714677e-06 [GeV] +Cell[4,35] 0.0013263911384422 [GeV] +Cell[4,36] 0.0011990461648561 [GeV] +Cell[2,40] 0.00096380410994232 [GeV] +Cell[3,28] 0.0030042928781484 [GeV] +Cell[4,26] 0.00052314471402042 [GeV] +### Total energy deposition in calorimeter by a source track in 23 cells : 0.15976160804241 (GeV) -Source track ID 413 (neutron,0.94251811969239[GeV]) at (-260.98835090736,-426.47987137807,785.22399157606) +Source track ID 209 (pi+,1.0808663217131[GeV]) at (389.77867518792,-313.16542652207,505.67177738808) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[13,31] 4.6413271105848e-05 [GeV] -Cell[14,27] 0.0006538800157814 [GeV] -Cell[15,29] 0.00020327983307504 [GeV] -Cell[15,28] 0.0020491865467422 [GeV] -### Total energy deposition in calorimeter by a source track in 4 cells : 0.0029527596667045 (GeV) +Cell[14,42] 0.0012636647256836 [GeV] +Cell[16,41] 0.00051922697944588 [GeV] +Cell[13,41] 0.13261968245904 [GeV] +Cell[13,42] 0.14916034388244 [GeV] +Cell[12,43] 0.00063828758820346 [GeV] +Cell[12,42] 0.13583887922182 [GeV] +Cell[15,40] 0.0025044789240298 [GeV] +Cell[14,40] 0.0051964581640561 [GeV] +Cell[14,41] 0.39556572609608 [GeV] +Cell[15,42] 0.0069693019026551 [GeV] +Cell[15,41] 0.1031785757426 [GeV] +### Total energy deposition in calorimeter by a source track in 11 cells : 0.93345462568605 (GeV) -Source track ID 414 (gamma,0.0026824127852973[GeV]) at (-489.16065637776,-103.5463773006,660.22127867177) +Source track ID 196 (gamma,0.00012510102702872[GeV]) at (499.14575527699,29.214978845894,-161.04931190008) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[13,25] 0.0026824127852973 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0026824127852973 (GeV) +Cell[9,0] 0.00012510102702872 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00012510102702872 (GeV) -Source track ID 423 (neutron,0.9407181813226[GeV]) at (-60.017509798393,-496.38482905665,130.76231457391) +Source track ID 199 (gamma,0.00019250309578168[GeV]) at (-201.47322695904,-457.61177740385,-668.75266316428) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[10,35] 4.9442321710558e-08 [GeV] -Cell[10,36] 0.0011527718796814 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.0011528213220031 (GeV) +Cell[6,32] 0.00019250309578168 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00019250309578168 (GeV) -Source track ID 424 (gamma,0.00089569306523545[GeV]) at (-483.67629929065,-126.71715552561,115.2735935974) +Source track ID 202 (gamma,0.00031821739214757[GeV]) at (385.95314166358,317.868168334,-315.44072636493) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[10,25] 0.00013562771478894 [GeV] -Cell[10,26] 0.00076006535044651 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.00089569306523545 (GeV) +Cell[8,5] 0.00031821739214757 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00031821739214757 (GeV) -Source track ID 425 (gamma,8.7158933688483e-05[GeV]) at (-458.73991024977,-198.89116306168,118.32830958808) +Source track ID 183 (gamma,0.00013138543178002[GeV]) at (346.31073856509,360.65062367131,-270.03338765088) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[10,27] 8.7158933688483e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 8.7158933688483e-05 (GeV) +Cell[8,6] 0.00013138543178002 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00013138543178002 (GeV) -Source track ID 416 (neutron,0.94084206306094[GeV]) at (-64.747051410677,-495.79009604229,350.51518765587) +Source track ID 188 (gamma,0.00034870519176809[GeV]) at (277.5626764772,-415.8833497831,1175.0198864144) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[12,37] 0.0010479627585501 [GeV] -Cell[11,35] 0.00022874029991124 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.0012767030584613 (GeV) +Cell[15,40] 0.00034870519176809 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.00034870519176809 (GeV) -Source track ID 417 (gamma,0.0012098377705591[GeV]) at (-496.65593662952,57.731106092442,-232.30297949514) +Source track ID 189 (gamma,0.0002002135192715[GeV]) at (498.13461894693,43.149755579801,-416.66485876014) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[8,23] 0.0012098377705591 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0012098377705591 (GeV) +Cell[7,0] 0.0002002135192715 [GeV] +### Total energy deposition in calorimeter by a source track in 1 cells : 0.0002002135192715 (GeV) -Source track ID 418 (gamma,0.00022438379436834[GeV]) at (401.48334572837,298.01195127503,-949.38519442569) +Source track ID 180 (gamma,0.46372847760985[GeV]) at (-465.99474922129,181.24263763856,-913.38295128771) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[5,4] 0.00022438379436834 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00022438379436834 (GeV) +Cell[1,41] 0.00058020810728664 [GeV] +Cell[6,34] 0.0022699900284673 [GeV] +Cell[6,9] 0.002152556165895 [GeV] +Cell[5,20] 0.011416757618174 [GeV] +Cell[6,33] 0.0016874252943421 [GeV] +Cell[6,37] 0.00040850814884413 [GeV] +Cell[5,31] 0.0016638364811759 [GeV] +Cell[5,44] 0.00191888039282 [GeV] +Cell[4,21] 0.029501929644371 [GeV] +Cell[4,22] 0.0020923086012964 [GeV] +Cell[5,21] 0.404837834276 [GeV] +Cell[5,46] 0.0006911592419139 [GeV] +Cell[5,30] 0.0015695626920463 [GeV] +Cell[3,33] 0.00057477722168697 [GeV] +Cell[5,29] 0.0013975511182826 [GeV] +### Total energy deposition in calorimeter by a source track in 15 cells : 0.4627632850326 (GeV) -Source track ID 239 (proton,1.008698033061[GeV]) at (-303.83971123752,-397.09121102726,-1866.7309230509) +Source track ID 177 (gamma,0.21067608644927[GeV]) at (-247.62061578369,-434.37775108643,-1046.3393927423) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[0,31] 0.070426020060959 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.070426020060959 (GeV) +Cell[9,7] 0.0070271322504335 [GeV] +Cell[8,0] 0.0025445670875493 [GeV] +Cell[1,22] 0.0008674373424837 [GeV] +Cell[9,43] 0.0013857279775166 [GeV] +Cell[3,41] 0.0015124213012275 [GeV] +Cell[0,4] 0.0027315330700638 [GeV] +Cell[5,43] 0.00036136449430052 [GeV] +Cell[4,32] 0.17271804933627 [GeV] +Cell[4,31] 0.014633695747552 [GeV] +Cell[3,15] 0.00093210174733665 [GeV] +Cell[2,11] 0.0036551700607965 [GeV] +### Total energy deposition in calorimeter by a source track in 11 cells : 0.20836920041553 (GeV) -Source track ID 240 (gamma,0.0018337703961185[GeV]) at (494.58519007664,-73.385896171246,-154.57549260347) +Source track ID 175 (gamma,0.06726801612498[GeV]) at (-461.11389798393,-193.32349336298,-562.35047877207) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[9,46] 0.0018337703961185 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.0018337703961185 (GeV) +Cell[7,26] 0.033136935338237 [GeV] +Cell[6,26] 0.00051099891 [GeV] +Cell[6,27] 0.00017080040367257 [GeV] +Cell[7,27] 0.03344928147307 [GeV] +### Total energy deposition in calorimeter by a source track in 4 cells : 0.06726801612498 (GeV) -Source track ID 241 (neutron,0.9402385009914[GeV]) at (170.02696423587,-470.2029683368,-578.97328729539) +Source track ID 176 (gamma,1.2213291054873[GeV]) at (-495.8101023425,64.593671633674,-1525.2871382147) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[8,12] 0.00012047291534452 [GeV] -Cell[8,13] 6.1818644795494e-05 [GeV] -Cell[9,12] 3.2487914406374e-05 [GeV] -Cell[9,13] 0.00042349032162804 [GeV] -Cell[8,14] 1.8399513443001e-05 [GeV] -Cell[7,38] 1.6471680544782e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 6 cells : 0.00067314099016221 (GeV) +Cell[7,40] 0.00051099891 [GeV] +Cell[1,22] 0.031275605553234 [GeV] +Cell[6,46] 0.01152322973444 [GeV] +Cell[2,23] 0.85084155997033 [GeV] +Cell[1,29] 0.00048981118687471 [GeV] +Cell[11,20] 1.2902840467177e-08 [GeV] +Cell[10,20] 0.00079355557838778 [GeV] +Cell[10,19] 3.3345310511663e-05 [GeV] +Cell[11,19] 0.00035439077284968 [GeV] +Cell[5,1] 0.00051099891 [GeV] +Cell[1,1] 0.00045608548959738 [GeV] +Cell[1,39] 0.0007811072048314 [GeV] +Cell[1,16] 0.00028274048280848 [GeV] +Cell[2,18] 0.0036490496953105 [GeV] +Cell[0,41] 0.00081992976598572 [GeV] +Cell[1,6] 0.0050254302742608 [GeV] +Cell[2,38] 0.0013263026780499 [GeV] +Cell[2,12] 0.0010136748533603 [GeV] +Cell[2,17] 0.00038576488290216 [GeV] +Cell[10,4] 0.00037246052264901 [GeV] +Cell[2,45] 0.00017887936918953 [GeV] +Cell[5,11] 0.00027522131499399 [GeV] +Cell[5,46] 0.00044637801754827 [GeV] +Cell[0,35] 0.00048542431257705 [GeV] +Cell[1,23] 0.012266544257894 [GeV] +Cell[2,22] 0.23787072881909 [GeV] +Cell[1,9] 0.0009303556616006 [GeV] +Cell[3,12] 0.00051099891 [GeV] +Cell[2,21] 0.001276384103236 [GeV] +### Total energy deposition in calorimeter by a source track in 29 cells : 1.1646869694453 (GeV) -Source track ID 242 (gamma,0.00044632467674303[GeV]) at (-499.22948896414,27.747384536342,-138.93392595644) +Source track ID 93 (proton,1.0788858215222[GeV]) at (346.94567208673,-360.03985976595,-1899.7123097536) Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[9,23] 0.00044632467674303 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00044632467674303 (GeV) - -Source track ID 243 (gamma,7.6139070438338e-05[GeV]) at (438.05089274736,241.06309415428,330.25657832781) -Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[11,3] 7.6139070438338e-05 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 7.6139070438338e-05 (GeV) - -Source track ID 244 (gamma,0.00013774748722761[GeV]) at (478.06670821138,-146.46577245191,146.73733510271) -Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[10,45] 0.00013774748722761 [GeV] -### Total energy deposition in calorimeter by a source track in 1 cells : 0.00013774748722761 (GeV) - -Source track ID 208 (pi+,1.0810237324674[GeV]) at (389.53263339063,-313.47141420513,505.44241785708) -Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[11,42] 0.00051837198361682 [GeV] -Cell[11,41] 9.7430142133703e-05 [GeV] -Cell[18,42] 2.5250979113025e-06 [GeV] -Cell[11,43] 0.0061178617251387 [GeV] -Cell[15,43] 0.0033644001288283 [GeV] -Cell[12,43] 0.0036203737960328 [GeV] -Cell[15,41] 0.26345705322118 [GeV] -Cell[13,43] 0.003378223916407 [GeV] -Cell[13,42] 0.14298190233998 [GeV] -Cell[15,42] 0.013088456349802 [GeV] -Cell[12,42] 0.1391102692469 [GeV] -Cell[16,40] 0.0015150676482319 [GeV] -Cell[16,39] 1.2792387750551e-06 [GeV] -Cell[14,41] 0.25883717211713 [GeV] -Cell[14,42] 0.0044982395469124 [GeV] -Cell[13,41] 0.11391612507134 [GeV] -Cell[14,40] 9.987053306304e-08 [GeV] -Cell[17,41] 0.00059082930054296 [GeV] -Cell[18,41] 0.001387436508528 [GeV] -Cell[17,42] 0.007816322908539 [GeV] -Cell[17,43] 6.9912259303919e-06 [GeV] -Cell[14,44] 0.0022257488114895 [GeV] -Cell[15,40] 0.0013823495574685 [GeV] -Cell[16,42] 0.0033176069473772 [GeV] -Cell[16,41] 0.0080320686989799 [GeV] -Cell[14,43] 0.0014641267678351 [GeV] -### Total energy deposition in calorimeter by a source track in 26 cells : 0.98072833216754 (GeV) - -Source track ID 205 (gamma,0.028595474656773[GeV]) at (328.18591974631,377.21877217374,-300.64121284715) -Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[4,27] 0.00043596561504194 [GeV] -Cell[8,6] 0.026009240931913 [GeV] -Cell[8,34] 0.00010110494076388 [GeV] -Cell[7,30] 0.00043491019894755 [GeV] -Cell[11,4] 0.00050226804840682 [GeV] -Cell[11,6] 0.0002486793072963 [GeV] -### Total energy deposition in calorimeter by a source track in 6 cells : 0.02773216904237 (GeV) - -Source track ID 206 (gamma,0.46372847760985[GeV]) at (-465.99474556741,181.2426470331,-913.38296434721) -Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[5,19] 0.001643164040383 [GeV] -Cell[6,27] 0.0003195318222266 [GeV] -Cell[4,27] 0.00038415453745207 [GeV] -Cell[9,38] 0.0063943850140523 [GeV] -Cell[14,36] 0.0014203901990592 [GeV] -Cell[5,45] 0.00051099891 [GeV] -Cell[9,24] 0.0002161425243988 [GeV] -Cell[7,29] 0.0050580879357025 [GeV] -Cell[4,21] 0.0016631832091515 [GeV] -Cell[6,3] 0.0024341945010094 [GeV] -Cell[4,31] 0.00029299448700814 [GeV] -Cell[4,20] 0.0049543395257714 [GeV] -Cell[6,40] 0.0020038538741906 [GeV] -Cell[4,7] 0.0002829703042519 [GeV] -Cell[10,1] 0.00049606817472839 [GeV] -Cell[5,20] 0.01765085161338 [GeV] -Cell[6,23] 0.00023872208448995 [GeV] -Cell[2,4] 0.00023569912369874 [GeV] -Cell[5,21] 0.41239992049565 [GeV] -Cell[8,39] 0.00043865833961891 [GeV] -### Total energy deposition in calorimeter by a source track in 20 cells : 0.45903831071622 (GeV) - -Source track ID 203 (gamma,0.21067608644927[GeV]) at (-247.62061642488,-434.37775072092,-1046.3394009828) -Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[4,33] 0.00032357838081318 [GeV] -Cell[4,4] 0.001186257498625 [GeV] -Cell[3,4] 0.00044791928115729 [GeV] -Cell[4,32] 0.12116635715735 [GeV] -Cell[4,31] 0.078328935404692 [GeV] -Cell[4,30] 0.0020261291496716 [GeV] -Cell[0,39] 0.00085549164371402 [GeV] -Cell[0,6] 0.0006032914410395 [GeV] -### Total energy deposition in calorimeter by a source track in 8 cells : 0.20493795995706 (GeV) - -Source track ID 201 (gamma,0.06726801612498[GeV]) at (-461.11390757756,-193.32347048032,-562.3505813802) -Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[6,27] 0.0019007420263389 [GeV] -Cell[8,31] 0.00021055325528563 [GeV] -Cell[7,26] 0.0042692713098945 [GeV] -Cell[7,27] 0.057634918562455 [GeV] -Cell[3,16] 0.0017752429962466 [GeV] -Cell[7,16] 0.00075596948223187 [GeV] -### Total energy deposition in calorimeter by a source track in 6 cells : 0.066546697632453 (GeV) - -Source track ID 202 (gamma,1.2213291054873[GeV]) at (-495.8101027191,64.593668742959,-1525.28712944) -Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[7,13] 0.00010134770126286 [GeV] -Cell[8,47] 0.00019599845760297 [GeV] -Cell[6,36] 0.00061270395674675 [GeV] -Cell[4,5] 0.0017955827618218 [GeV] -Cell[4,16] 0.0016041177971949 [GeV] -Cell[1,39] 0.00049510343751251 [GeV] -Cell[1,47] 0.00060245613522526 [GeV] -Cell[1,17] 0.0013152327526564 [GeV] -Cell[0,17] 0.00051099891 [GeV] -Cell[5,16] 0.00027578001717487 [GeV] -Cell[0,36] 0.00048154022614973 [GeV] -Cell[2,29] 3.104267734472e-05 [GeV] -Cell[2,22] 0.29770038652524 [GeV] -Cell[2,23] 0.76789701783768 [GeV] -Cell[1,23] 0.010970902605305 [GeV] -Cell[1,22] 0.074232350616483 [GeV] -Cell[0,44] 0.0064022708530104 [GeV] -Cell[3,2] 0.0015672237665477 [GeV] -Cell[3,0] 0.00051099891 [GeV] -Cell[2,2] 0.00043399936511757 [GeV] -Cell[1,7] 0.0009371973518104 [GeV] -Cell[2,36] 0.0012961153273034 [GeV] -Cell[2,43] 0.00051099891 [GeV] -Cell[2,44] 0.0033526870635947 [GeV] -Cell[2,20] 0.00051099891 [GeV] -Cell[2,19] 0.00017794153700492 [GeV] -Cell[1,34] 0.00042802505698027 [GeV] -Cell[2,6] 0.0014517032185457 [GeV] -Cell[2,5] 0.006733624292832 [GeV] -Cell[1,38] 0.00034067613776788 [GeV] -Cell[3,12] 0.00068240438018809 [GeV] -Cell[3,13] 3.983483746668e-05 [GeV] -Cell[1,3] 0.0016662709612396 [GeV] -Cell[0,46] 0.0049616640024932 [GeV] -Cell[3,27] 0.00068673216034753 [GeV] -Cell[3,37] 0.00051099891 [GeV] -Cell[0,41] 0.0019138107405165 [GeV] -Cell[0,39] 0.00014649114059297 [GeV] -Cell[1,40] 0.001184029073129 [GeV] -Cell[0,34] 0.00076896401457004 [GeV] -### Total energy deposition in calorimeter by a source track in 40 cells : 1.1960382233365 (GeV) - -Source track ID 93 (proton,1.0788769921271[GeV]) at (346.81052444928,-360.17004335621,-1899.6696354149) -Original primary track ID 43 (unknown,52.984237098069[GeV]) -Cell[0,42] 0.068534999782529 [GeV] -Cell[0,41] 0.072069979344572 [GeV] -### Total energy deposition in calorimeter by a source track in 2 cells : 0.1406049791271 (GeV) +Cell[0,41] 0.06397223475609 [GeV] +Cell[0,42] 0.076641573766084 [GeV] +### Total energy deposition in calorimeter by a source track in 2 cells : 0.14061380852217 (GeV) Source track ID 95 (gamma,0.00028998655209176[GeV]) at (433.86439034701,-248.51899482498,-1813.4541662599) Original primary track ID 43 (unknown,52.984237098069[GeV]) @@ -4989,11 +5159,11 @@ Cell[0,44] 0.00028998655209176 [GeV] >>> Summary of Event 0 Tracker hits -------------------------------------------------------------- -1821 hits are stored in RE01TrackerHitsCollection. +1887 hits are stored in RE01TrackerHitsCollection. Calorimeter hits -------------------------------------------------------------- -915 hits are stored in RE01CalorimeterHitsCollection. - Total energy deposition in calorimeter : 145.88068916673 (GeV) +912 hits are stored in RE01CalorimeterHitsCollection. + Total energy deposition in calorimeter : 147.33865335615 (GeV) Trajectories in tracker -------------------------------------------------------------- diff --git a/examples/extended/runAndEvent/RE02/History b/examples/extended/runAndEvent/RE02/History index 63fa061cc1..9867dea6db 100644 --- a/examples/extended/runAndEvent/RE02/History +++ b/examples/extended/runAndEvent/RE02/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-10-04 Ben Morgan (exampleRE02-V11-00-01) +- Replace sprintf with std::ostringstream to fix deprecation warnings on macOS 13 + ## 2021-12-10 Ben Morgan (exampleRE02-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/runAndEvent/RE02/run.out b/examples/extended/runAndEvent/RE02/run.out index 8e4f6c21e8..2492267582 100644 --- a/examples/extended/runAndEvent/RE02/run.out +++ b/examples/extended/runAndEvent/RE02/run.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -43,6 +43,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -219,6 +221,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -246,7 +249,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -297,8 +300,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -783,6 +786,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1288,7 +1296,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 2 4.01 4.9 -198 0.356 0 2 802 PhantomSens Transportation 3 4.01 4.9 -196 0.356 0 2 804 PhantomSens Transportation 4 4.01 4.9 -194 0.356 0 2 806 PhantomSens Transportation - 5 4.01 4.9 -194 0.356 0 0.0797 806 PhantomSens Rayl + 5 4.01 4.9 -194 0.356 0 0.08 806 PhantomSens Rayl 6 4.55 5.25 -193 0 0.088 0.801 807 PhantomSens phot ********************************************************************************************************* @@ -1338,7 +1346,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 4 -4.36 4.94 -194 0.356 0 2 806 PhantomSens Transportation 5 -4.36 4.94 -192 0.356 0 2 808 PhantomSens Transportation 6 -4.36 4.94 -190 0.356 0 2 810 PhantomSens Transportation - 7 -4.36 4.94 -189 0 0.0159 0.529 811 PhantomSens phot + 7 -4.36 4.94 -189 0 0.0159 0.53 811 PhantomSens phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 @@ -1359,7 +1367,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 2 -4.5 0.633 -198 0.356 0 2 802 PhantomSens Transportation 3 -4.5 0.633 -196 0.356 0 2 804 PhantomSens Transportation 4 -4.5 0.633 -194 0.356 0 2 806 PhantomSens Transportation - 5 -4.5 0.633 -194 0 0.088 0.000229 806 PhantomSens phot + 5 -4.5 0.633 -194 0 0.088 0.00112 806 PhantomSens phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 @@ -1370,89 +1378,27 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu 1 -4.5 0.637 -194 0.265 0.00328 0.00453 0.00453 PhantomSens msc 2 -4.5 0.641 -194 0.258 0.00719 0.00504 0.00957 PhantomSens msc 3 -4.51 0.64 -194 0.253 0.00416 0.00477 0.0143 PhantomSens msc - 4 -4.5 0.638 -194 0.246 0.00754 0.0056 0.0199 PhantomSens msc - 5 -4.5 0.639 -194 0.238 0.00804 0.00587 0.0258 PhantomSens msc - 6 -4.5 0.644 -194 0.229 0.00841 0.0049 0.0307 PhantomSens msc - 7 -4.5 0.646 -194 0.227 0.00217 0.00437 0.0351 PhantomSens msc - 8 -4.5 0.65 -194 0.212 0.015 0.00592 0.041 PhantomSens msc - 9 -4.5 0.653 -194 0.208 0.00422 0.0048 0.0458 PhantomSens msc - 10 -4.5 0.653 -194 0.207 0.000741 0.000892 0.0467 PhantomSens Transportation - 11 -4.5 0.655 -194 0.201 0.00584 0.00316 0.0499 PhantomSens msc - 12 -4.51 0.656 -194 0.196 0.00519 0.00347 0.0533 PhantomSens msc - 13 -4.51 0.658 -194 0.189 0.0071 0.00358 0.0569 PhantomSens msc - 14 -4.51 0.658 -194 0.179 0.00986 0.00307 0.06 PhantomSens msc - 15 -4.51 0.656 -194 0.177 0.00254 0.00331 0.0633 PhantomSens msc - 16 -4.51 0.653 -194 0.173 0.00414 0.00283 0.0661 PhantomSens msc - 17 -4.51 0.65 -194 0.167 0.0059 0.00365 0.0698 PhantomSens msc - 18 -4.51 0.647 -194 0.163 0.00394 0.004 0.0738 PhantomSens msc - 19 -4.51 0.647 -194 0.159 0.0037 0.00392 0.0777 PhantomSens msc - 20 -4.51 0.647 -194 0.151 0.00816 0.00338 0.0811 PhantomSens msc - 21 -4.5 0.645 -194 0.14 0.0106 0.00565 0.0867 PhantomSens msc - 22 -4.5 0.648 -194 0.133 0.00685 0.00737 0.0941 PhantomSens msc - 23 -4.5 0.648 -194 0.126 0.00778 0.00535 0.0994 PhantomSens msc - 24 -4.5 0.648 -194 0.118 0.00759 0.00326 0.103 PhantomSens msc - 25 -4.5 0.647 -194 0.11 0.00852 0.00372 0.106 PhantomSens msc - 26 -4.51 0.646 -194 0.107 0.00279 0.0032 0.11 PhantomSens msc - 27 -4.51 0.643 -194 0.102 0.00506 0.00361 0.113 PhantomSens msc - 28 -4.51 0.642 -194 0.0953 0.00638 0.00364 0.117 PhantomSens msc - 29 -4.51 0.641 -194 0.0867 0.00857 0.00235 0.119 PhantomSens Transportation - 30 -4.51 0.641 -194 0.0867 0 0 0.119 PhantomSens Transportation - 31 -4.51 0.64 -194 0.0855 0.0012 0.000796 0.12 PhantomSens msc - 32 -4.51 0.64 -194 0.0853 0.000244 7.36e-05 0.12 PhantomSens Transportation - 33 -4.51 0.639 -194 0.0831 0.00216 0.000813 0.121 PhantomSens msc - 34 -4.51 0.639 -194 0.08 0.00314 0.000889 0.122 PhantomSens msc - 35 -4.51 0.638 -194 0.0789 0.0011 0.000834 0.123 PhantomSens msc - 36 -4.51 0.638 -194 0.0782 0.000681 0.000121 0.123 PhantomSens Transportation - 37 -4.51 0.638 -194 0.0771 0.00108 0.000762 0.124 PhantomSens msc - 38 -4.51 0.637 -194 0.0757 0.00142 0.000654 0.124 PhantomSens Transportation - 39 -4.51 0.637 -194 0.075 0.000699 0.000695 0.125 PhantomSens msc - 40 -4.51 0.637 -194 0.073 0.00195 0.000773 0.126 PhantomSens msc - 41 -4.51 0.637 -194 0.0721 0.000945 0.000515 0.126 PhantomSens Transportation - 42 -4.51 0.636 -194 0.0714 0.000695 0.000626 0.127 PhantomSens msc - 43 -4.51 0.636 -194 0.0698 0.00159 0.000623 0.127 PhantomSens msc - 44 -4.51 0.635 -194 0.0683 0.00152 0.000629 0.128 PhantomSens msc - 45 -4.51 0.635 -194 0.0442 0.0241 0.000703 0.129 PhantomSens msc - 46 -4.51 0.635 -194 0.0433 0.000813 0.000654 0.129 PhantomSens msc - 47 -4.51 0.635 -194 0.0433 0 3.39e-05 0.129 PhantomSens Transportation - 48 -4.51 0.634 -194 0.0431 0.000194 0.000251 0.13 PhantomSens msc - 49 -4.51 0.634 -194 0.043 0.000162 0.000284 0.13 PhantomSens msc - 50 -4.51 0.634 -194 0.0418 0.00122 0.000258 0.13 PhantomSens msc - 51 -4.51 0.634 -194 0.0392 0.00253 0.00027 0.13 PhantomSens msc - 52 -4.51 0.634 -194 0.0392 0 1.95e-05 0.13 PhantomSens Transportation - 53 -4.51 0.634 -194 0.0391 0.000125 0.000243 0.131 PhantomSens msc - 54 -4.51 0.635 -194 0.0389 0.000194 0.000229 0.131 PhantomSens msc - 55 -4.51 0.635 -194 0.0388 0.00015 0.000218 0.131 PhantomSens msc - 56 -4.51 0.635 -194 0.0387 9.42e-05 0.000265 0.131 PhantomSens msc - 57 -4.51 0.635 -194 0.0384 0.000279 0.000304 0.132 PhantomSens msc - 58 -4.51 0.635 -194 0.0363 0.00213 0.000528 0.132 PhantomSens msc - 59 -4.51 0.634 -194 0.0336 0.00269 0.000742 0.133 PhantomSens msc - 60 -4.51 0.634 -194 0.0314 0.00221 0.000587 0.134 PhantomSens msc - 61 -4.51 0.634 -194 0.03 0.00136 0.000369 0.134 PhantomSens msc - 62 -4.51 0.634 -194 0.028 0.00197 0.000234 0.134 PhantomSens msc - 63 -4.51 0.634 -194 0.0278 0.000224 0.000132 0.134 PhantomSens Transportation - 64 -4.51 0.634 -194 0.0271 0.000669 0.00014 0.134 PhantomSens msc - 65 -4.51 0.634 -194 0.0267 0.000418 0.000141 0.135 PhantomSens msc - 66 -4.51 0.634 -194 0.0266 0.000141 0.00014 0.135 PhantomSens msc - 67 -4.51 0.634 -194 0.0245 0.00206 0.000139 0.135 PhantomSens msc - 68 -4.51 0.634 -194 0.0244 0.00015 0.000131 0.135 PhantomSens msc - 69 -4.51 0.635 -194 0.024 0.000318 0.00014 0.135 PhantomSens msc - 70 -4.51 0.635 -194 0.024 7.75e-05 0.000138 0.135 PhantomSens msc - 71 -4.51 0.635 -194 0.0234 0.000561 0.000132 0.135 PhantomSens msc - 72 -4.51 0.635 -194 0.0229 0.000534 0.000137 0.136 PhantomSens msc - 73 -4.51 0.635 -194 0.0228 5.21e-05 0.000142 0.136 PhantomSens msc - 74 -4.51 0.635 -194 0.0226 0.000182 0.000139 0.136 PhantomSens msc - 75 -4.51 0.635 -194 0.0226 4.05e-05 0.000137 0.136 PhantomSens msc - 76 -4.51 0.635 -194 0.0224 0.000157 0.000141 0.136 PhantomSens msc - 77 -4.51 0.635 -194 0.0218 0.000656 0.000144 0.136 PhantomSens msc - 78 -4.51 0.635 -194 0.0217 4.8e-05 0.000134 0.136 PhantomSens msc - 79 -4.51 0.635 -194 0.0216 0.000174 0.000142 0.137 PhantomSens msc - 80 -4.51 0.635 -194 0.021 0.000519 0.000136 0.137 PhantomSens msc - 81 -4.51 0.635 -194 0.0143 0.00676 0.000137 0.137 PhantomSens msc - 82 -4.51 0.635 -194 0.0127 0.00164 0.000133 0.137 PhantomSens msc - 83 -4.51 0.635 -194 0.0117 0.000984 0.000132 0.137 PhantomSens msc - 84 -4.51 0.635 -194 0.0102 0.00146 0.000153 0.137 PhantomSens msc - 85 -4.51 0.635 -194 0.00558 0.00462 0.000138 0.137 PhantomSens msc - 86 -4.51 0.635 -194 0 0.00558 0.000304 0.138 PhantomSens eIoni + 4 -4.51 0.638 -194 0.246 0.00754 0.0056 0.0199 PhantomSens msc + 5 -4.5 0.64 -194 0.237 0.00895 0.00686 0.0268 PhantomSens msc + 6 -4.5 0.644 -194 0.228 0.0092 0.00573 0.0325 PhantomSens msc + 7 -4.5 0.646 -194 0.225 0.00229 0.0046 0.0371 PhantomSens msc + 8 -4.5 0.651 -194 0.21 0.015 0.00592 0.043 PhantomSens msc + 9 -4.5 0.654 -194 0.206 0.00423 0.0048 0.0478 PhantomSens msc + 10 -4.5 0.655 -194 0.197 0.00903 0.00339 0.0512 PhantomSens Transportation + 11 -4.51 0.656 -194 0.183 0.0146 0.00347 0.0547 PhantomSens msc + 12 -4.51 0.654 -194 0.175 0.00704 0.00342 0.0581 PhantomSens msc + 13 -4.51 0.655 -194 0.169 0.00693 0.00337 0.0615 PhantomSens msc + 14 -4.51 0.657 -194 0.164 0.00441 0.00345 0.0649 PhantomSens msc + 15 -4.51 0.659 -194 0.159 0.00549 0.00322 0.0682 PhantomSens msc + 16 -4.51 0.66 -194 0.157 0.00182 0.00361 0.0718 PhantomSens msc + 17 -4.51 0.658 -194 0.147 0.01 0.00567 0.0774 PhantomSens msc + 18 -4.51 0.657 -194 0.135 0.0117 0.00906 0.0865 PhantomSens msc + 19 -4.5 0.652 -194 0.113 0.0225 0.0105 0.097 PhantomSens msc + 20 -4.51 0.647 -194 0.0908 0.0218 0.00868 0.106 PhantomSens msc + 21 -4.51 0.644 -194 0.0732 0.0176 0.007 0.113 PhantomSens msc + 22 -4.51 0.644 -194 0.0633 0.00989 0.0046 0.117 PhantomSens msc + 23 -4.51 0.645 -194 0.0598 0.00348 0.00345 0.121 PhantomSens msc + 24 -4.51 0.645 -194 0 0.0598 0.012 0.133 PhantomSens eIoni >>> Event 5 ********************************************************************************************************* @@ -1460,19 +1406,19 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.15 -1.25 -1e+03 0.356 0 0 0 World initStep - 1 1.15 -1.25 -200 0.356 0 800 800 PhantomSens Transportation - 2 1.15 -1.25 -198 0.356 0 2 802 PhantomSens Transportation - 3 1.15 -1.25 -196 0.356 0 2 804 PhantomSens Transportation - 4 1.15 -1.25 -196 0 0.088 0.152 804 PhantomSens phot + 0 -1.82 -3.49 -1e+03 0.356 0 0 0 World initStep + 1 -1.82 -3.49 -200 0.356 0 800 800 PhantomSens Transportation + 2 -1.82 -3.49 -198 0.356 0 2 802 PhantomSens Transportation + 3 -1.82 -3.49 -196 0.356 0 2 804 PhantomSens Transportation + 4 -1.82 -3.49 -195 0 0.088 1.22 805 PhantomSens phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.15 -1.25 -196 0.268 0 0 0 PhantomSens initStep - 1 1.15 -1.25 -196 0 0.268 0.126 0.126 PhantomSens eIoni + 0 -1.82 -3.49 -195 0.268 0 0 0 PhantomSens initStep + 1 -1.82 -3.49 -195 0 0.268 0.126 0.126 PhantomSens eIoni >>> Event 6 ********************************************************************************************************* @@ -1480,26 +1426,19 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.94 -1.62 -1e+03 0.356 0 0 0 World initStep - 1 1.94 -1.62 -200 0.356 0 800 800 PhantomSens Transportation - 2 1.94 -1.62 -198 0.244 0 1.68 802 PhantomSens compt - 3 1.71 -1.55 -198 0 0.088 0.256 802 PhantomSens phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.71 -1.55 -198 0.156 0 0 0 PhantomSens initStep - 1 1.71 -1.55 -198 0 0.156 0.0553 0.0553 PhantomSens eIoni + 0 2.86 2.55 -1e+03 0.356 0 0 0 World initStep + 1 2.86 2.55 -200 0.356 0 800 800 PhantomSens Transportation + 2 2.86 2.55 -198 0.356 0 2 802 PhantomSens Transportation + 3 2.86 2.55 -196 0.356 0 2 804 PhantomSens Transportation + 4 2.86 2.55 -195 0 0.013 0.532 805 PhantomSens phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 1.94 -1.62 -198 0.112 0 0 0 PhantomSens initStep - 1 1.94 -1.62 -198 0 0.112 0.033 0.033 PhantomSens eIoni + 0 2.86 2.55 -195 0.343 0 0 0 PhantomSens initStep + 1 2.86 2.55 -195 0 0.343 0.181 0.181 PhantomSens eIoni >>> Event 7 ********************************************************************************************************* @@ -1507,18 +1446,20 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0588 -4.99 -1e+03 0.356 0 0 0 World initStep - 1 -0.0588 -4.99 -200 0.356 0 800 800 PhantomSens Transportation - 2 -0.0588 -4.99 -199 0 0.088 1.24 801 PhantomSens phot + 0 -2.44 -2.19 -1e+03 0.356 0 0 0 World initStep + 1 -2.44 -2.19 -200 0.356 0 800 800 PhantomSens Transportation + 2 -2.44 -2.19 -198 0.356 0 2 802 PhantomSens Transportation + 3 -2.44 -2.19 -196 0.356 0 2 804 PhantomSens Transportation + 4 -2.44 -2.19 -194 0.356 0 2 806 PhantomSens Transportation + 5 -2.44 -2.19 -193 0 0.088 0.962 807 PhantomSens phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -0.0588 -4.99 -199 0.268 0 0 0 PhantomSens initStep - 1 -0.0726 -5.02 -199 0.189 0.0787 0.041 0.041 PhantomSens msc - 2 -0.0757 -5.02 -199 0 0.189 0.0748 0.116 PhantomSens eIoni + 0 -2.44 -2.19 -193 0.268 0 0 0 PhantomSens initStep + 1 -2.44 -2.2 -193 0 0.268 0.126 0.126 PhantomSens eIoni >>> Event 8 ********************************************************************************************************* @@ -1526,26 +1467,25 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.85 2.82 -1e+03 0.356 0 0 0 World initStep - 1 -4.85 2.82 -200 0.356 0 800 800 PhantomSens Transportation - 2 -4.85 2.82 -198 0.356 0 2 802 PhantomSens Transportation - 3 -4.85 2.82 -196 0.356 0 2 804 PhantomSens Transportation - 4 -4.85 2.82 -194 0.356 0 2 806 PhantomSens Transportation - 5 -4.85 2.82 -192 0.356 0 2 808 PhantomSens Transportation - 6 -4.85 2.82 -191 0 0.088 0.95 809 PhantomSens phot + 0 1.81 -2.1 -1e+03 0.356 0 0 0 World initStep + 1 1.81 -2.1 -200 0.356 0 800 800 PhantomSens Transportation + 2 1.81 -2.1 -198 0.356 0 2 802 PhantomSens Transportation + 3 1.81 -2.1 -196 0.356 0 2 804 PhantomSens Transportation + 4 1.81 -2.1 -194 0.356 0 2 806 PhantomSens Transportation + 5 1.81 -2.1 -193 0 0.088 0.712 807 PhantomSens phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -4.85 2.82 -191 0.268 0 0 0 PhantomSens initStep - 1 -4.85 2.82 -191 0 0.268 0.126 0.126 PhantomSens eIoni + 0 1.81 -2.1 -193 0.268 0 0 0 PhantomSens initStep + 1 1.8 -2.1 -193 0 0.268 0.126 0.126 PhantomSens eIoni >>> Event 9 Run terminated. Run Summary Number of events processed : 10 - User=0.000000s Real=0.013512s Sys=0.000000s + User=0.000000s Real=0.003396s Sys=0.000000s PrimitiveScorer RUN PhantomSD,totalEDep Number of entries 10 PrimitiveScorer RUN PhantomSD,protonEDep @@ -1553,7 +1493,7 @@ Run Summary PrimitiveScorer RUN PhantomSD,protonNStep Number of entries 0 PrimitiveScorer RUN PhantomSD,chargedPassCellFlux - Number of entries 2 + Number of entries 0 PrimitiveScorer RUN PhantomSD,chargedCellFlux Number of entries 10 PrimitiveScorer RUN PhantomSD,chargedSurfFlux @@ -1563,7 +1503,7 @@ Run Summary PrimitiveScorer RUN PhantomSD,gammaSurfCurr001 Number of entries 0 PrimitiveScorer RUN PhantomSD,gammaSurfCurr002 - Number of entries 26 + Number of entries 31 PrimitiveScorer RUN PhantomSD,gammaSurfCurr003 Number of entries 0 ============================================================= diff --git a/examples/extended/runAndEvent/RE02/run3.out b/examples/extended/runAndEvent/RE02/run3.out index c34a9d0795..b8bc8142a2 100644 --- a/examples/extended/runAndEvent/RE02/run3.out +++ b/examples/extended/runAndEvent/RE02/run3.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -43,6 +43,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -217,6 +219,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -244,7 +247,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -295,8 +298,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -781,6 +784,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1157,93 +1165,93 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 10000 - User=11.160000s Real=11.383207s Sys=0.040000s + User=10.840000s Real=11.000309s Sys=0.050000s PrimitiveScorer RUN PhantomSD,totalEDep - Number of entries 51583 + Number of entries 51141 PrimitiveScorer RUN PhantomSD,protonEDep - Number of entries 30 + Number of entries 16 PrimitiveScorer RUN PhantomSD,protonNStep - Number of entries 30 + Number of entries 16 PrimitiveScorer RUN PhantomSD,chargedPassCellFlux - Number of entries 20210 + Number of entries 20086 PrimitiveScorer RUN PhantomSD,chargedCellFlux - Number of entries 51299 + Number of entries 51038 PrimitiveScorer RUN PhantomSD,chargedSurfFlux - Number of entries 12025 + Number of entries 11777 PrimitiveScorer RUN PhantomSD,gammaSurfCurr000 - Number of entries 33 + Number of entries 34 PrimitiveScorer RUN PhantomSD,gammaSurfCurr001 - Number of entries 353 + Number of entries 332 PrimitiveScorer RUN PhantomSD,gammaSurfCurr002 - Number of entries 50522 + Number of entries 50336 PrimitiveScorer RUN PhantomSD,gammaSurfCurr003 - Number of entries 71707 + Number of entries 70759 ============================================================= Number of event processed : 10000 ============================================================= #Z Cell# totalEDep protonEDep protonNStep chargedPassCellFlux chargedCellFlux chargedSurfFlux gammaSurfCurr000 gammaSurfCurr001 gammaSurfCurr002 gammaSurfCurr003 - 0 37.3374 MeV 0 eV 0 2528.33 /cm2 2663.27 /cm2 2130.03 /cm2 0 /cm2 0 /cm2 675 /cm2 250 /cm2 - 1 478.91 MeV 0 eV 0 3278.53 /cm2 4473.73 /cm2 2878.65 /cm2 0 /cm2 100 /cm2 975 /cm2 625 /cm2 - 2 56.7193 MeV 0 eV 0 3782.91 /cm2 3962.49 /cm2 4245.84 /cm2 0 /cm2 0 /cm2 3300 /cm2 3075 /cm2 - 3 306.533 MeV 0 eV 0 1674.81 /cm2 2855.79 /cm2 3170.77 /cm2 0 /cm2 125 /cm2 2900 /cm2 3000 /cm2 - 4 19.3215 MeV 0 eV 0 1090.26 /cm2 1279.61 /cm2 1845.46 /cm2 0 /cm2 25 /cm2 2350 /cm2 3200 /cm2 - 5 106.284 MeV 0 eV 0 361.156 /cm2 978.986 /cm2 1510.66 /cm2 0 /cm2 25 /cm2 1875 /cm2 2675 /cm2 - 6 8.9446 MeV 274.45 keV 1 471.707 /cm2 575.589 /cm2 643 /cm2 0 /cm2 0 /cm2 1650 /cm2 2275 /cm2 - 7 53.8512 MeV 0 eV 0 87.7002 /cm2 476.286 /cm2 1675.15 /cm2 0 /cm2 50 /cm2 1575 /cm2 2075 /cm2 - 8 2.10148 MeV 0 eV 0 89.0705 /cm2 128.904 /cm2 27.7888 /cm2 0 /cm2 0 /cm2 1225 /cm2 2000 /cm2 - 9 38.0984 MeV 0 eV 0 40.7401 /cm2 334.353 /cm2 246.863 /cm2 0 /cm2 0 /cm2 1100 /cm2 1725 /cm2 - 10 4.74567 MeV 0 eV 0 256.93 /cm2 304.731 /cm2 180.124 /cm2 0 /cm2 0 /cm2 925 /cm2 1375 /cm2 - 11 45.2195 MeV 0 eV 0 152.48 /cm2 415.343 /cm2 601.881 /cm2 0 /cm2 0 /cm2 750 /cm2 1225 /cm2 - 12 3.68391 MeV 0 eV 0 164.078 /cm2 215.886 /cm2 155.427 /cm2 0 /cm2 0 /cm2 750 /cm2 1125 /cm2 - 13 30.895 MeV 0 eV 0 27.6322 /cm2 305.681 /cm2 66.3287 /cm2 0 /cm2 0 /cm2 600 /cm2 850 /cm2 - 14 1.8376 MeV 0 eV 0 101.538 /cm2 122.836 /cm2 0 /cm2 0 /cm2 0 /cm2 275 /cm2 800 /cm2 - 15 7.1277 MeV 0 eV 0 7.5555 /cm2 55.6114 /cm2 65.7435 /cm2 0 /cm2 0 /cm2 325 /cm2 725 /cm2 - 16 812.802 keV 0 eV 0 41.1575 /cm2 64.7569 /cm2 30.8001 /cm2 0 /cm2 25 /cm2 250 /cm2 650 /cm2 - 17 13.8512 MeV 0 eV 0 25.506 /cm2 127.887 /cm2 96.5788 /cm2 0 /cm2 0 /cm2 300 /cm2 575 /cm2 - 18 1.45132 MeV 0 eV 0 77.5487 /cm2 86.6048 /cm2 84.8414 /cm2 0 /cm2 0 /cm2 400 /cm2 575 /cm2 - 19 6.34073 MeV 0 eV 0 54.9121 /cm2 66.6248 /cm2 52.8745 /cm2 0 /cm2 0 /cm2 200 /cm2 575 /cm2 - 20 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 100 /cm2 350 /cm2 - 21 8.22022 MeV 0 eV 0 30.9659 /cm2 73.9401 /cm2 0 /cm2 0 /cm2 0 /cm2 150 /cm2 425 /cm2 - 22 1.73132 MeV 0 eV 0 63.6491 /cm2 105.96 /cm2 202.703 /cm2 0 /cm2 0 /cm2 175 /cm2 350 /cm2 - 23 2.92056 MeV 0 eV 0 0 /cm2 25.0017 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 250 /cm2 - 24 472.179 keV 0 eV 0 28.4124 /cm2 28.4124 /cm2 0 /cm2 0 /cm2 0 /cm2 125 /cm2 225 /cm2 - 25 2.05304 MeV 0 eV 0 0 /cm2 9.34442 /cm2 32.6703 /cm2 0 /cm2 0 /cm2 50 /cm2 175 /cm2 - 26 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 200 /cm2 - 27 1.20201 MeV 0 eV 0 0.0516477 /cm2 8.38472 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 200 /cm2 - 28 206.007 keV 0 eV 0 14.9773 /cm2 14.9773 /cm2 43.076 /cm2 0 /cm2 0 /cm2 75 /cm2 250 /cm2 - 29 2.35938 MeV 0 eV 0 19.8515 /cm2 22.1745 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 175 /cm2 - 30 367.184 keV 0 eV 0 27.9872 /cm2 27.9872 /cm2 27.9173 /cm2 0 /cm2 0 /cm2 25 /cm2 150 /cm2 - 31 1.46317 MeV 0 eV 0 12.8675 /cm2 13.5602 /cm2 29.4414 /cm2 0 /cm2 0 /cm2 75 /cm2 150 /cm2 - 32 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 100 /cm2 50 /cm2 - 33 228.532 keV 0 eV 0 0 /cm2 0.588498 /cm2 0 /cm2 0 /cm2 0 /cm2 100 /cm2 75 /cm2 - 34 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 125 /cm2 - 35 1.022 MeV 0 eV 0 0 /cm2 5.67682 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 - 36 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 - 37 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 50 /cm2 - 38 518.559 keV 0 eV 0 12.9008 /cm2 24.139 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 - 39 1.22507 MeV 0 eV 0 9.72645 /cm2 9.96049 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 - 40 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 175 /cm2 - 41 980.616 keV 0 eV 0 0 /cm2 7.53976 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 - 42 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 50 /cm2 - 43 173.801 keV 0 eV 0 0 /cm2 0.820133 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 100 /cm2 + 0 39.3447 MeV 0 eV 0 2710.9 /cm2 2754.63 /cm2 2321.92 /cm2 0 /cm2 25 /cm2 625 /cm2 350 /cm2 + 1 469.098 MeV 0 eV 0 3280.18 /cm2 4418.17 /cm2 3557.05 /cm2 0 /cm2 25 /cm2 1300 /cm2 725 /cm2 + 2 49.2134 MeV 0 eV 0 3038.88 /cm2 3311.66 /cm2 4337.88 /cm2 0 /cm2 25 /cm2 3475 /cm2 3525 /cm2 + 3 258.977 MeV 0 eV 0 1280.69 /cm2 2312.54 /cm2 4270.43 /cm2 0 /cm2 75 /cm2 2925 /cm2 3125 /cm2 + 4 18.8614 MeV 0 eV 0 1217.85 /cm2 1325.26 /cm2 2360.23 /cm2 0 /cm2 0 /cm2 1875 /cm2 3350 /cm2 + 5 133.766 MeV 0 eV 0 467.454 /cm2 1218.1 /cm2 1705.28 /cm2 25 /cm2 0 /cm2 2525 /cm2 2725 /cm2 + 6 7.99601 MeV 0 eV 0 418.153 /cm2 502.041 /cm2 497.846 /cm2 0 /cm2 0 /cm2 1550 /cm2 2725 /cm2 + 7 42.6911 MeV 0 eV 0 124.446 /cm2 370.944 /cm2 1828 /cm2 0 /cm2 0 /cm2 1550 /cm2 2350 /cm2 + 8 3.23516 MeV 0 eV 0 203.475 /cm2 221.581 /cm2 127.148 /cm2 0 /cm2 0 /cm2 1350 /cm2 1825 /cm2 + 9 34.4834 MeV 0 eV 0 78.8613 /cm2 307.917 /cm2 251.391 /cm2 0 /cm2 0 /cm2 1050 /cm2 1825 /cm2 + 10 6.21738 MeV 0 eV 0 282.589 /cm2 341.75 /cm2 380.157 /cm2 0 /cm2 0 /cm2 900 /cm2 1550 /cm2 + 11 22.1197 MeV 0 eV 0 52.9074 /cm2 184.902 /cm2 456.32 /cm2 0 /cm2 0 /cm2 775 /cm2 1625 /cm2 + 12 1.35947 MeV 0 eV 0 75.6201 /cm2 82.925 /cm2 149.864 /cm2 0 /cm2 0 /cm2 750 /cm2 1150 /cm2 + 13 16.8744 MeV 0 eV 0 0.483877 /cm2 146.706 /cm2 0 /cm2 0 /cm2 0 /cm2 475 /cm2 1025 /cm2 + 14 1.19449 MeV 0 eV 0 30.8923 /cm2 61.3109 /cm2 55.2133 /cm2 0 /cm2 0 /cm2 475 /cm2 900 /cm2 + 15 14.6333 MeV 0 eV 0 14.0153 /cm2 130.319 /cm2 60.1887 /cm2 0 /cm2 0 /cm2 300 /cm2 750 /cm2 + 16 974.081 keV 0 eV 0 49.9403 /cm2 60.2082 /cm2 344.832 /cm2 0 /cm2 0 /cm2 275 /cm2 725 /cm2 + 17 6.90264 MeV 0 eV 0 0.331326 /cm2 42.6033 /cm2 0 /cm2 0 /cm2 0 /cm2 275 /cm2 525 /cm2 + 18 872.525 keV 0 eV 0 3.18387 /cm2 40.7371 /cm2 0 /cm2 0 /cm2 0 /cm2 150 /cm2 575 /cm2 + 19 9.62511 MeV 0 eV 0 18.8334 /cm2 90.99 /cm2 67.0691 /cm2 0 /cm2 0 /cm2 175 /cm2 425 /cm2 + 20 124.029 keV 0 eV 0 0 /cm2 2.58758 /cm2 0 /cm2 0 /cm2 0 /cm2 200 /cm2 325 /cm2 + 21 5.9291 MeV 0 eV 0 12.4375 /cm2 48.6064 /cm2 0 /cm2 0 /cm2 0 /cm2 175 /cm2 450 /cm2 + 22 198.499 keV 0 eV 0 10.4525 /cm2 10.9561 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 375 /cm2 + 23 4.72679 MeV 0 eV 0 16.983 /cm2 40.1963 /cm2 59.555 /cm2 0 /cm2 0 /cm2 75 /cm2 350 /cm2 + 24 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 275 /cm2 + 25 1.13421 MeV 0 eV 0 0 /cm2 8.50879 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 225 /cm2 + 26 38.6124 keV 0 eV 0 1.09788 /cm2 3.75493 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 200 /cm2 + 27 894.42 keV 0 eV 0 0 /cm2 4.89816 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 250 /cm2 + 28 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 150 /cm2 + 29 1.47868 MeV 0 eV 0 0 /cm2 12.4469 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 150 /cm2 + 30 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 100 /cm2 + 31 75.8946 keV 0 eV 0 0.796999 /cm2 0.796999 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 100 /cm2 + 32 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 100 /cm2 + 33 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 75 /cm2 + 34 223.839 keV 0 eV 0 16.6503 /cm2 16.6503 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 + 35 3.48085 MeV 0 eV 0 0 /cm2 30.7415 /cm2 25.8321 /cm2 0 /cm2 0 /cm2 0 /cm2 100 /cm2 + 36 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 100 /cm2 + 37 510.999 keV 0 eV 0 0 /cm2 3.03216 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 + 38 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 75 /cm2 + 39 1.94993 MeV 0 eV 0 0 /cm2 15.7077 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 75 /cm2 + 40 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 50 /cm2 + 41 956.492 keV 0 eV 0 0 /cm2 6.84305 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 42 323.771 keV 0 eV 0 0 /cm2 13.2302 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 43 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 44 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 - 45 1.08337 MeV 0 eV 0 0 /cm2 7.10866 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 + 45 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 46 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 - 47 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 - 48 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 - 49 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 - 50 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 - 51 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 - 52 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 - 53 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 - 54 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 47 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 48 1.55027 keV 0 eV 0 0.469532 /cm2 0.469532 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 49 2.83456 MeV 0 eV 0 0 /cm2 27.738 /cm2 27.6853 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 50 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 51 160.547 keV 0 eV 0 0 /cm2 0.725043 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 52 60.3901 keV 0 eV 0 0 /cm2 0.756364 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 53 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 54 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 55 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 56 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 57 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 58 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 59 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 60 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 - 61 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 61 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 62 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 63 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 64 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 @@ -1266,9 +1274,9 @@ Run Summary 81 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 82 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 83 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 - 84 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 - 85 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 - 86 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 84 136.256 keV 0 eV 0 8.74025 /cm2 8.74025 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 85 68.7748 keV 0 eV 0 0 /cm2 0.629027 /cm2 37.1395 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 86 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 87 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 88 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 89 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 @@ -1399,10 +1407,10 @@ G4SDManager deleted. EventManager deleted. Units table cleared. TransportationManager deleted. -Total navigation history collections cleaned: 21 +Total navigation history collections cleaned: 20 G4RNGHelper object is deleted. ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.0308 MB +Pool ID '20G4NavigationLevelRep', size : 0.0298 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB Pool ID '17G4DynamicParticle', size : 0.00961 MB Pool ID '16G4SmartVoxelNode', size : 0.0192 MB @@ -1411,13 +1419,13 @@ Pool ID '7G4Event', size : 0.000961 MB Pool ID '15G4PrimaryVertex', size : 0.000961 MB Pool ID '17G4PrimaryParticle', size : 0.000961 MB Pool ID '15G4HCofThisEvent', size : 0.000961 MB -Pool ID '7G4Track', size : 0.0192 MB +Pool ID '7G4Track', size : 0.0183 MB Pool ID '18G4TouchableHistory', size : 0.00288 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB -Pool ID '10G4Fragment', size : 0.00192 MB -Pool ID '17G4ReactionProduct', size : 0.00192 MB +Pool ID '10G4Fragment', size : 0.000961 MB +Pool ID '17G4ReactionProduct', size : 0.000961 MB Number of memory pools allocated: 14 of which, static: 0 -Dynamic pools deleted: 14 / Total memory freed: 0.1 MB +Dynamic pools deleted: 14 / Total memory freed: 0.097 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/extended/runAndEvent/RE02/run4.out b/examples/extended/runAndEvent/RE02/run4.out index 0ff70b6c14..a78f83ce1b 100644 --- a/examples/extended/runAndEvent/RE02/run4.out +++ b/examples/extended/runAndEvent/RE02/run4.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -43,6 +43,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -219,6 +221,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -246,7 +249,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -297,8 +300,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -783,6 +786,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1159,23 +1167,23 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 10000 - User=0.170000s Real=0.181078s Sys=0.000000s + User=0.170000s Real=0.168696s Sys=0.010000s PrimitiveScorer RUN PhantomSD,totalEDep - Number of entries 74 + Number of entries 81 PrimitiveScorer RUN PhantomSD,protonEDep Number of entries 0 PrimitiveScorer RUN PhantomSD,protonNStep Number of entries 0 PrimitiveScorer RUN PhantomSD,chargedPassCellFlux - Number of entries 23 + Number of entries 22 PrimitiveScorer RUN PhantomSD,chargedCellFlux - Number of entries 74 + Number of entries 81 PrimitiveScorer RUN PhantomSD,chargedSurfFlux - Number of entries 27 + Number of entries 24 PrimitiveScorer RUN PhantomSD,gammaSurfCurr000 Number of entries 0 PrimitiveScorer RUN PhantomSD,gammaSurfCurr001 - Number of entries 62 + Number of entries 72 PrimitiveScorer RUN PhantomSD,gammaSurfCurr002 Number of entries 0 PrimitiveScorer RUN PhantomSD,gammaSurfCurr003 @@ -1184,8 +1192,8 @@ Run Summary Number of event processed : 10000 ============================================================= #Z Cell# totalEDep protonEDep protonNStep chargedPassCellFlux chargedCellFlux chargedSurfFlux gammaSurfCurr000 gammaSurfCurr001 gammaSurfCurr002 gammaSurfCurr003 - 0 93.0875 keV 0 eV 0 0.120234 /cm2 0.345625 /cm2 0 /cm2 0 /cm2 8950 /cm2 0 /cm2 0 /cm2 - 1 20.614 MeV 0 eV 0 0.00893585 /cm2 35.7623 /cm2 546.481 /cm2 0 /cm2 8775 /cm2 0 /cm2 0 /cm2 + 0 99.1569 keV 0 eV 0 0.26262 /cm2 0.456676 /cm2 0 /cm2 0 /cm2 9275 /cm2 0 /cm2 0 /cm2 + 1 21.3341 MeV 0 eV 0 0.0117238 /cm2 37.1961 /cm2 96.0503 /cm2 0 /cm2 9075 /cm2 0 /cm2 0 /cm2 2 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 3 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 4 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 diff --git a/examples/extended/runAndEvent/RE02/src/RE02DetectorConstruction.cc b/examples/extended/runAndEvent/RE02/src/RE02DetectorConstruction.cc index 80b973b7a9..97416488cc 100644 --- a/examples/extended/runAndEvent/RE02/src/RE02DetectorConstruction.cc +++ b/examples/extended/runAndEvent/RE02/src/RE02DetectorConstruction.cc @@ -390,10 +390,10 @@ void RE02DetectorConstruction::ConstructSDandField() { // 100 keV to 1 MeV, gammaSurfCurr002 // 1 MeV to 10 MeV. gammaSurfCurr003 // - char name[17]; for ( G4int i = 0; i < 4; i++){ - std::sprintf(name,"gammaSurfCurr%03d",i); - G4String psgName(name); + std::ostringstream name; + name << "gammaSurfCurr" << std::setfill('0') << std::setw(3) << i; + G4String psgName = name.str(); G4double kmin = std::pow(10.,(G4double)i)*keV; G4double kmax = std::pow(10.,(G4double)(i+1))*keV; //-- Particle with kinetic energy filter. diff --git a/examples/extended/runAndEvent/RE03/run.out b/examples/extended/runAndEvent/RE03/run.out index 63135ac52e..a0c1115bab 100644 --- a/examples/extended/runAndEvent/RE03/run.out +++ b/examples/extended/runAndEvent/RE03/run.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -116,6 +118,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -143,7 +146,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -194,8 +197,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -677,6 +680,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -965,7 +973,7 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 2000 - User=41.800000s Real=42.575852s Sys=0.020000s + User=42.740000s Real=43.116712s Sys=0.020000s # ######################################## # @@ -982,6 +990,6 @@ Visualization Manager deleting... G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 14 of which, static: 0 -Dynamic pools deleted: 14 / Total memory freed: 0.19 MB +Dynamic pools deleted: 14 / Total memory freed: 0.18 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/runAndEvent/RE04/exampleRE04.out b/examples/extended/runAndEvent/RE04/exampleRE04.out index 68217d93c5..6fe5ab8158 100644 --- a/examples/extended/runAndEvent/RE04/exampleRE04.out +++ b/examples/extended/runAndEvent/RE04/exampleRE04.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -154,6 +156,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -181,7 +184,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -232,8 +235,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -715,6 +718,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda diff --git a/examples/extended/runAndEvent/RE05/exampleRE05.out b/examples/extended/runAndEvent/RE05/exampleRE05.out index d557deed49..cde364c351 100644 --- a/examples/extended/runAndEvent/RE05/exampleRE05.out +++ b/examples/extended/runAndEvent/RE05/exampleRE05.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -26,7 +26,6 @@ G4HEPEvtInterface - pythia_event.data is open. Emin(FTFP)= 3 GeV Emax(FTFP)= 100000 GeV Emin(BERT)= 1 GeV Emax(BERT)= 6 GeV Emax(BERTpions)= 12 GeV Emin(BIC) = 0 GeV Emax(BIC)= 1.5 GeV. -### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 Visualization Manager instantiating with verbosity "warnings (3)"... Visualization Manager initialising... Registering graphics systems... @@ -39,6 +38,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -93,6 +94,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -120,7 +122,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -171,8 +173,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -522,28 +524,6 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 ==================================================================== HADRONIC PROCESSES SUMMARY (verbose level 1) ---------------------------------------------------- - Hadronic Processes for neutron - - Process: hadElastic - Model: hElasticCHIPS: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV - - - Process: neutronInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 1 GeV ---> 6 GeV - Model: Binary Cascade: 0 eV ---> 1.5 GeV - Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV - - - Process: nCapture - Model: nRadCapture: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV - - - Process: nKiller - --------------------------------------------------- Hadronic Processes for B- @@ -660,6 +640,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -825,6 +810,28 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: muMinusCaptureAtRest +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 1 GeV ---> 6 GeV + Model: Binary Cascade: 0 eV ---> 1.5 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + --------------------------------------------------- Hadronic Processes for pi+ @@ -1009,9 +1016,9 @@ See commands in /vis/modeling/trajectories/ for other options. ### Run 0 start. G4HEPEvtInterface - reading 484 HEPEvt particles from pythia_event.data. >>> Event 0 - 33 hits are stored in RE05TrackerHitsCollection. + 57 hits are stored in RE05TrackerHitsCollection. 45 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 5.7767695473491 (GeV) + Total energy deposition in calorimeter : 6.1916050517957 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 755 HEPEvt particles from pythia_event.data. >>> Event 1 @@ -1029,19 +1036,19 @@ G4HEPEvtInterface - reading 448 HEPEvt particles from pythia_event.data. >>> Event 3 0 hits are stored in RE05TrackerHitsCollection. 3 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.52041749038596 (GeV) + Total energy deposition in calorimeter : 0.5291609002055 (GeV) 0 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 945 HEPEvt particles from pythia_event.data. >>> Event 4 - 96 hits are stored in RE05TrackerHitsCollection. - 66 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 11.362807054804 (GeV) + 113 hits are stored in RE05TrackerHitsCollection. + 54 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 9.5924083630559 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 837 HEPEvt particles from pythia_event.data. >>> Event 5 - 39 hits are stored in RE05TrackerHitsCollection. - 7 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 2.9069264051699 (GeV) + 58 hits are stored in RE05TrackerHitsCollection. + 65 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 8.5410768778947 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 603 HEPEvt particles from pythia_event.data. >>> Event 6 @@ -1052,25 +1059,25 @@ G4HEPEvtInterface - reading 603 HEPEvt particles from pythia_event.data. G4HEPEvtInterface - reading 627 HEPEvt particles from pythia_event.data. >>> Event 7 31 hits are stored in RE05TrackerHitsCollection. - 34 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 6.7212744397673 (GeV) + 32 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 9.1229583293001 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 682 HEPEvt particles from pythia_event.data. >>> Event 8 - 46 hits are stored in RE05TrackerHitsCollection. - 48 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 9.5320007877693 (GeV) + 56 hits are stored in RE05TrackerHitsCollection. + 47 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 11.158977027138 (GeV) 1 hits are stored in RE05MuonHitsCollection. G4HEPEvtInterface - reading 330 HEPEvt particles from pythia_event.data. >>> Event 9 - 17 hits are stored in RE05TrackerHitsCollection. - 23 hits are stored in RE05CalorimeterHitsCollection. - Total energy deposition in calorimeter : 5.3027603255145 (GeV) + 9 hits are stored in RE05TrackerHitsCollection. + 20 hits are stored in RE05CalorimeterHitsCollection. + Total energy deposition in calorimeter : 6.2755512531341 (GeV) 1 hits are stored in RE05MuonHitsCollection. Run terminated. Run Summary Number of events processed : 10 - User=1.470000s Real=1.496882s Sys=0.010000s + User=2.490000s Real=2.540164s Sys=0.000000s # Graphics systems deleted. Visualization Manager deleting... @@ -1087,12 +1094,12 @@ G4SDManager deleted. EventManager deleted. Units table cleared. TransportationManager deleted. -Total navigation history collections cleaned: 421 +Total navigation history collections cleaned: 411 G4RNGHelper object is deleted. ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.689 MB +Pool ID '20G4NavigationLevelRep', size : 0.674 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.685 MB +Pool ID '17G4DynamicParticle', size : 0.69 MB Pool ID '16G4SmartVoxelNode', size : 0.00385 MB Pool ID '17G4SmartVoxelProxy', size : 0.00192 MB Pool ID '7G4Event', size : 0.000961 MB @@ -1101,17 +1108,17 @@ Pool ID '16G4HEPEvtParticle', size : 0.0221 MB Pool ID '15G4PrimaryVertex', size : 0.000961 MB Pool ID '15G4HCofThisEvent', size : 0.000961 MB Pool ID '16G4HitsCollection', size : 0.000961 MB -Pool ID '7G4Track', size : 1.17 MB -Pool ID '18G4TouchableHistory', size : 0.0509 MB +Pool ID '7G4Track', size : 1.18 MB +Pool ID '18G4TouchableHistory', size : 0.049 MB Pool ID '15G4CountedObjectIvE', size : 0.00673 MB Pool ID '12G4Trajectory', size : 0.0279 MB -Pool ID '17G4TrajectoryPoint', size : 0.156 MB -Pool ID '14RE05TrackerHit', size : 0.00385 MB +Pool ID '17G4TrajectoryPoint', size : 0.151 MB +Pool ID '14RE05TrackerHit', size : 0.00481 MB Pool ID '18RE05CalorimeterHit', size : 0.00961 MB Pool ID '11RE05MuonHit', size : 0.000961 MB Pool ID '21G4TrajectoryContainer', size : 0.000961 MB -Pool ID '10G4Fragment', size : 0.00865 MB -Pool ID '17G4ReactionProduct', size : 0.0125 MB +Pool ID '17G4ReactionProduct', size : 0.0154 MB +Pool ID '10G4Fragment', size : 0.00961 MB Number of memory pools allocated: 22 of which, static: 0 Dynamic pools deleted: 22 / Total memory freed: 3 MB ============================================================ diff --git a/examples/extended/runAndEvent/RE06/exampleRE06.out b/examples/extended/runAndEvent/RE06/exampleRE06.out index e6fd146653..359dd634dd 100644 --- a/examples/extended/runAndEvent/RE06/exampleRE06.out +++ b/examples/extended/runAndEvent/RE06/exampleRE06.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -222,6 +224,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -249,7 +252,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -300,8 +303,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -783,6 +786,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -1107,7 +1115,7 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 10 - User=1.710000s Real=2.223964s Sys=0.460000s + User=1.540000s Real=1.880752s Sys=0.330000s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -1115,124 +1123,124 @@ Region : Calor-A Production thresholds : gamma 1 mm e- 1 mm e+ 1 mm Energy deposition in an event : - Absorber 3.73287 GeV Gap 449.273 MeV + Absorber 3.00165 GeV Gap 367.513 MeV Number of secondaries in an event : - gamma in Absorber 1278.4 in Gap 82.2 - e- in Absorber 2133.3 in Gap 226.8 - e+ in Absorber 134.1 in Gap 5.1 + gamma in Absorber 883 in Gap 50.9 + e- in Absorber 1488 in Gap 161.4 + e+ in Absorber 89.2 in Gap 3.1 Minimum kinetic energy of generated secondaries : - gamma in Absorber 20.2804 keV in Gap 6.25161 keV - e- in Absorber 129.647 eV in Gap 119.191 eV - e+ in Absorber 6.79355 keV in Gap 168.397 keV + gamma in Absorber 101.822 keV in Gap 6.19663 keV + e- in Absorber 122.049 eV in Gap 370.106 eV + e+ in Absorber 23.4293 keV in Gap 244.029 keV Total track length of e+/e- in an event : - Absorber 1.70185 m Gap 1.24329 m + Absorber 1.1771 m Gap 83.5828 cm Total number of steps of e+/e- in an event : - Absorber 5446.5 Gap 847.1 + Absorber 3788.3 Gap 584 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 3812.39 1227.3 1766.2 116.7 2521.33 4933.1 - 1 222.686 83.5 321 13.7 252.138 760.4 - 2 74.5275 25.5 130 3.9 90.2115 289 - 3 33.9789 11 63.1 2.2 35.7141 134.5 - 4 19.2164 6.5 34 1.7 21.5345 73.9 - 5 9.07255 3.6 17.6 0.5 13.2476 46.8 - 6 3.95289 0.9 9.4 0.2 5.11225 23.3 - 7 2.28967 0.8 6.9 0 2.10314 12.6 - 8 0.620537 0.1 2.2 0 0.948616 3.8 - 9 0.669789 0.4 2.1 0.1 0.484591 4.5 - 10 0.21807 0 0.5 0 0.0851421 0.8 - 11 0.79251 0.3 1.9 0.1 0.90204 3 - 12 0.610164 0.1 1.5 0 0.519243 2.3 - 13 0.0920134 0.2 0.4 0 0.0459266 0.6 - 14 0.219831 0 1.1 0 0.238864 1.6 - 15 0.196592 0 0.5 0 0.10849 0.7 - 16 0.0664292 0.2 0.3 0 0.0123588 0.5 - 17 0.037295 0 0.2 0 0.0342188 0.2 - 18 0.129016 0 0.7 0 0.0547376 1 - 19 0.318824 0.2 0.3 0.1 0.237176 0.7 + 0 3106.73 836 1233.8 76.6 1761.48 3418.8 + 1 158.459 61.4 229.5 9 163.031 550.1 + 2 50.2298 17.4 89.5 3.1 45.8343 196.1 + 3 26.012 9.7 44 1.6 19.9858 96.4 + 4 13.1869 4.1 22.3 0.8 12.7909 48.6 + 5 6.20448 2.5 11.8 0.6 4.11864 25.4 + 6 2.19671 0.8 5.6 0.1 1.58577 10.9 + 7 2.09383 0.5 4.7 0.1 1.48559 12.2 + 8 1.56971 0.8 2.2 0.2 1.10319 4.2 + 9 0.916664 0.3 2.6 0.1 0.580551 4 + 10 0.209061 0 0.7 0 0.117859 1.1 + 11 0.873451 0.2 1 0 0.613023 2 + 12 0.0393146 0 0.3 0 0.00919443 0.4 + 13 0.162943 0 0.6 0 0.0729258 0.8 + 14 0.168936 0.2 0.2 0.1 0.0948411 0.5 + 15 0.0305248 0 0.3 0 0.0106401 0.4 + 16 0.0607512 0 0.3 0 0.0220514 0.4 + 17 0.00206427 0 0 0 0 0 + 18 5.82751e-05 0 0 0 0 0 + 19 0.00173966 0 0 0 0 0 ############################################################ Region : Calor-B Production thresholds : gamma 1 mm e- 1 mm e+ 1 mm Energy deposition in an event : - Absorber 4.47854 GeV Gap 483.231 MeV + Absorber 2.72722 GeV Gap 338.452 MeV Number of secondaries in an event : - gamma in Absorber 1694.9 in Gap 88.8 - e- in Absorber 2779.9 in Gap 252.7 - e+ in Absorber 181.1 in Gap 4.3 + gamma in Absorber 717.6 in Gap 42.9 + e- in Absorber 1216.5 in Gap 126.1 + e+ in Absorber 72.3 in Gap 2.8 Minimum kinetic energy of generated secondaries : - gamma in Absorber 101.804 keV in Gap 6.19015 keV - e- in Absorber 110.7 eV in Gap 359.766 eV - e+ in Absorber 8.79486 keV in Gap 191.326 keV + gamma in Absorber 101.811 keV in Gap 6.26556 keV + e- in Absorber 148.789 eV in Gap 365.794 eV + e+ in Absorber 14.1926 keV in Gap 322.994 keV Total track length of e+/e- in an event : - Absorber 2.23228 m Gap 1.40335 m + Absorber 99.1309 cm Gap 69.5154 cm Total number of steps of e+/e- in an event : - Absorber 7183.7 Gap 985 + Absorber 3116.7 Gap 481.7 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 4505.28 1620.8 2291.4 157.5 3128.46 6413.4 - 1 275.22 104.8 411.7 17.4 320.002 1004.7 - 2 89.118 26.9 158.4 4.6 94.8624 333.8 - 3 45.6014 16.1 82.1 3.6 45.3885 201.9 - 4 20.9511 7.6 39.6 0.9 16.1477 91.8 - 5 9.90439 3 18.7 0.7 10.7 51.4 - 6 6.55451 2.2 12.5 0.3 7.74589 25.9 - 7 2.78084 1 5.3 0.3 2.94306 10.6 - 8 1.10734 0.2 3.3 0 1.3989 7.8 - 9 1.28192 0.1 2 0 2.14456 3.9 - 10 0.571742 0 1.4 0 1.1743 2.9 - 11 0.792085 0.3 2 0.1 0.837633 3.3 - 12 0.261769 0 0.4 0 0.464271 4.2 - 13 0.107439 0 0.4 0 0.2882 1.1 - 14 0.607401 0.1 0.5 0 1.99981 6 - 15 0.106785 0 0.6 0 0.119152 1.1 - 16 0.425336 0 0.6 0 0.25739 1.6 - 17 0.165631 0.1 0.6 0 0.0599282 0.8 - 18 0.345856 0.1 0.3 0 0.222186 0.7 - 19 0.00886694 0 0 0 0 0 + 0 2881.04 694.3 1046.2 63.2 1490.76 2900 + 1 116.646 45.3 172.3 7.3 121.785 425.3 + 2 36.5892 12 61.7 2.7 40.8572 137.8 + 3 16.4035 5.3 28.3 1 15.8202 63.3 + 4 7.87062 2.2 15.7 0.5 10.4524 33 + 5 3.40197 0.4 8.6 0.1 2.57642 17.7 + 6 1.04794 0.1 3 0 1.74696 7.7 + 7 1.67079 0.8 3.7 0.3 1.65206 7.2 + 8 0.454252 0 1.7 0 0.274715 4.4 + 9 0.000974357 0 0 0 0 0 + 10 0.0983638 0 0.2 0 0.0521147 0.3 + 11 0.270515 0.1 0.5 0 0.341824 0.8 + 12 0.0617549 0 0.1 0 0.0395135 0.1 + 13 0.00794944 0 0 0 0 0 + 14 0.0525281 0 0.3 0 0.0199815 0.4 + 15 0.0294971 0 0.1 0 0.0800957 0.1 + 16 0.00663813 0 0 0 0 0 + 17 0.0182485 0 0.2 0 0.00381243 0.3 + 18 0 0 0 0 0 0 + 19 0.00152284 0 0 0 0 0 ############################################################ Region : Calor-C Production thresholds : gamma 10 cm e- 10 cm e+ 10 cm Energy deposition in an event : - Absorber 3.05439 GeV Gap 325.043 MeV + Absorber 2.72502 GeV Gap 286.342 MeV Number of secondaries in an event : - gamma in Absorber 195.5 in Gap 22.1 - e- in Absorber 352.3 in Gap 32.9 - e+ in Absorber 53.4 in Gap 2.9 + gamma in Absorber 138.3 in Gap 12.8 + e- in Absorber 246.8 in Gap 18 + e+ in Absorber 39.1 in Gap 1.5 Minimum kinetic energy of generated secondaries : - gamma in Absorber 159.242 keV in Gap 58.7721 keV - e- in Absorber 201.923 eV in Gap 172.786 eV - e+ in Absorber 17.5407 keV in Gap 214.377 keV + gamma in Absorber 290.06 keV in Gap 56.9198 keV + e- in Absorber 740.824 eV in Gap 533.736 eV + e+ in Absorber 12.395 keV in Gap 1.99392 MeV Total track length of e+/e- in an event : - Absorber 58.3377 cm Gap 39.2386 cm + Absorber 39.6229 cm Gap 22.2413 cm Total number of steps of e+/e- in an event : - Absorber 1052 Gap 173.6 + Absorber 726.2 Gap 87.3 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 3238.66 192.1 250.2 46.9 832.887 863.1 - 1 90.1041 17 74.5 5.9 87.6295 192.9 - 2 27.7658 4.9 27.8 2.2 29.6787 84.9 - 3 9.25121 1.4 10.9 0.4 12.6936 31.2 - 4 5.66871 0.8 9.5 0.4 4.83739 20 - 5 3.85501 1 4.6 0.4 4.88537 16 - 6 2.25882 0.2 3.7 0.1 2.01111 7.9 - 7 0.45927 0 0.7 0 0.300427 1.3 - 8 0.323809 0.2 0.7 0 0.230695 1.2 - 9 0.258813 0 1 0 0.130851 1.4 - 10 0.106277 0 0.4 0 0.0413493 0.6 - 11 0.303283 0 0.6 0 0.209456 0.7 - 12 0.18801 0 0.3 0 0.108854 2.4 - 13 0.166824 0 0 0 0.103681 1.4 - 14 0.0346391 0 0.3 0 0.0139571 0.6 - 15 0.00781652 0 0 0 0 0 - 16 0.00223066 0 0 0 0 0 - 17 0.00403513 0 0 0 0 0 - 18 0.0081599 0 0 0 0 0 - 19 0.00414026 0 0 0 0 0 + 0 2943.52 138.4 187.5 34.8 554.338 618.7 + 1 39.8175 7.8 41 3.4 33.4256 104 + 2 15.2388 2.6 16 1.3 18.2399 42.7 + 3 4.99592 0.9 8.9 0.4 4.64629 27.5 + 4 3.62198 1.2 5.3 0.6 2.43808 9.8 + 5 1.33752 0.2 2.5 0.1 1.99627 4.2 + 6 1.09416 0 1.3 0 1.08712 2.2 + 7 0.454128 0 0.6 0 0.376072 1.2 + 8 0.436519 0 0.8 0 1.14375 1.5 + 9 0.714363 0 0.6 0 0.552153 1.1 + 10 0 0 0 0 0 0 + 11 0.132832 0 0.3 0 0.398674 0.6 + 12 0 0 0 0 0 0 + 13 0 0 0 0 0 0 + 14 0 0 0 0 0 0 + 15 0 0 0 0 0 0 + 16 0 0 0 0 0 0 + 17 0 0 0 0 0 0 + 18 0 0 0 0 0 0 + 19 0 0 0 0 0 0 ############################################################ /run/dumpCouples @@ -1390,7 +1398,7 @@ Index : 6 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10 - User=1.710000s Real=2.159349s Sys=0.430000s + User=2.290000s Real=2.782753s Sys=0.480000s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -1398,124 +1406,124 @@ Region : Calor-A Production thresholds : gamma 200 um e- 200 um e+ 200 um Energy deposition in an event : - Absorber 3.1096 GeV Gap 367.08 MeV + Absorber 2.78439 GeV Gap 344.066 MeV Number of secondaries in an event : - gamma in Absorber 1238 in Gap 62.7 - e- in Absorber 2105.9 in Gap 249.4 - e+ in Absorber 99.2 in Gap 2.5 + gamma in Absorber 995.5 in Gap 53.5 + e- in Absorber 1747.6 in Gap 230.5 + e+ in Absorber 78.7 in Gap 2 Minimum kinetic energy of generated secondaries : - gamma in Absorber 47.4743 keV in Gap 2.82725 keV - e- in Absorber 20.6017 eV in Gap 28.2001 eV - e+ in Absorber 20.5829 keV in Gap 726.266 keV + gamma in Absorber 47.5012 keV in Gap 2.81561 keV + e- in Absorber 58.9897 eV in Gap 59.5862 eV + e+ in Absorber 33.5288 keV in Gap 680.226 keV Total track length of e+/e- in an event : - Absorber 1.36113 m Gap 87.091 cm + Absorber 1.11726 m Gap 75.2577 cm Total number of steps of e+/e- in an event : - Absorber 5204.6 Gap 754 + Absorber 4306.9 Gap 675.3 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 3222.43 1180.1 1891.3 86.3 1956.9 4864.1 - 1 154.54 77.5 259 9.5 176.878 628.4 - 2 52.0933 22.8 100.4 3.1 54.3892 235.7 - 3 25.6284 11.5 51.4 1.6 23.9237 113.2 - 4 8.09096 2.7 20.6 0.4 7.97658 44.7 - 5 5.36888 2 12.8 0.3 5.40939 30.8 - 6 4.1874 2.2 9 0.2 2.82366 18.7 - 7 1.63777 0.9 3.3 0.1 0.997504 8.2 - 8 0.767974 0.1 2.4 0 0.716283 5.4 - 9 0.460265 0.1 0.9 0 0.326338 1.7 - 10 0.204955 0 0.8 0 0.602573 1.3 - 11 0.93572 0.6 2.2 0.2 0.944276 4.1 - 12 0.180403 0 0.7 0 0.094748 1.3 - 13 0.0424084 0 0.2 0 0.0121172 0.3 - 14 0.0849949 0.2 0.3 0 0.0470722 0.7 - 15 0.00371141 0 0 0 0 0 - 16 0.00356456 0 0 0 0 0 - 17 0.000433949 0 0 0 0 0 - 18 0 0 0 0 0 0 - 19 0.00120863 0 0 0 0 0 + 0 2927.21 955.6 1609.1 68 1651.38 4097.6 + 1 119.394 56.2 210.4 8.2 133.511 506.8 + 2 43.9443 20.3 79 2.2 49.9659 199.4 + 3 18.371 7.8 35 0.7 14.7371 86.7 + 4 8.33078 4.1 17 0.7 8.14013 37.7 + 5 5.42033 2 12.8 0.5 7.41957 25.2 + 6 2.65571 1.7 5.7 0.4 2.26921 12.2 + 7 1.08796 0.6 2.9 0 0.800377 5.4 + 8 1.02404 0.3 3.1 0 0.768873 5.1 + 9 0.180777 0 0.8 0 0.193071 1.1 + 10 0.497924 0 0.9 0 0.473788 2.7 + 11 0.0874242 0.3 0.5 0 0.0359939 0.9 + 12 0.137709 0 0.3 0 0.0937402 0.4 + 13 0.00945093 0 0.2 0 0.00772392 0.2 + 14 0.0848626 0.1 0.4 0 0.0418827 0.8 + 15 0.0033876 0 0 0 0 0 + 16 0.00352138 0 0 0 0 0 + 17 0.00268144 0 0 0 0 0 + 18 0.001355 0 0 0 0 0 + 19 0.000799072 0 0 0 0 0 ############################################################ Region : Calor-B Production thresholds : gamma 2 mm e- 2 mm e+ 2 mm Energy deposition in an event : - Absorber 4.04457 GeV Gap 450.42 MeV + Absorber 3.02149 GeV Gap 370.996 MeV Number of secondaries in an event : - gamma in Absorber 1349 in Gap 77.9 - e- in Absorber 2253.4 in Gap 198.3 - e+ in Absorber 151.5 in Gap 5 + gamma in Absorber 816.2 in Gap 50.8 + e- in Absorber 1371.1 in Gap 140.2 + e+ in Absorber 91.5 in Gap 2.8 Minimum kinetic energy of generated secondaries : - gamma in Absorber 120.847 keV in Gap 8.85627 keV - e- in Absorber 158.478 eV in Gap 232.117 eV - e+ in Absorber 16.7858 keV in Gap 219.082 keV + gamma in Absorber 120.87 keV in Gap 8.73566 keV + e- in Absorber 109.04 eV in Gap 180.918 eV + e+ in Absorber 1.33025 keV in Gap 788.771 keV Total track length of e+/e- in an event : - Absorber 1.86647 m Gap 1.19345 m + Absorber 1.1404 m Gap 82.1008 cm Total number of steps of e+/e- in an event : - Absorber 5804.1 Gap 797.2 + Absorber 3534.4 Gap 545.3 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 4080.38 1290.3 1804 130 2635.9 5078.6 - 1 263.564 93.2 372.7 17.6 279.711 899.4 - 2 75.8941 23.5 134.6 4.8 67.4505 325.3 - 3 35.8679 8.8 64.7 1.7 39.0296 130.6 - 4 17.4604 4.8 32.9 1.1 16.5209 78 - 5 11.155 3.8 19.9 0.8 10.2051 42.9 - 6 3.51539 0.8 7.8 0.1 2.55953 13.4 - 7 1.92396 0.4 3.9 0.1 3.45598 9.8 - 8 2.16187 0.4 5.3 0.1 1.61796 10 - 9 0.86528 0 1.9 0 1.20809 3.1 - 10 1.16892 0.6 1.8 0.2 0.819531 5.3 - 11 0.121948 0 0.3 0 0.0399465 1.3 - 12 0.179094 0.1 0.1 0 0.124726 0.2 - 13 0.0388571 0 0.1 0 0.0994225 0.1 - 14 0.16612 0 0.3 0 0.0844281 0.5 - 15 0.0203148 0.1 0.3 0 0.0442428 0.3 - 16 0.331663 0.1 0.3 0 0.960382 1.4 - 17 0.0626151 0 0.2 0 0.041399 0.3 - 18 0.0519646 0 0.1 0 0.0130477 0.2 - 19 0.0122721 0 0.1 0 0.0119253 0.1 + 0 3141.85 782.1 1112.5 79.4 1668.52 3141.7 + 1 143.428 49.4 211.5 7.9 173.227 503.7 + 2 54.6024 17.5 90.8 3.3 61.2362 207.9 + 3 26.5441 10.3 46 2 26.9615 109.1 + 4 11.2394 2.6 21.9 0.7 11.1599 48.3 + 5 5.46887 1.2 8.8 0.2 10.9231 23.7 + 6 3.38355 1.3 7.2 0.4 2.8168 14.3 + 7 2.51618 1.1 5 0.1 3.58331 12 + 8 1.4416 0.6 2.8 0.1 0.967745 8.1 + 9 0.949587 0.4 2.2 0 1.37312 5.7 + 10 0.272344 0.3 0.4 0.1 0.166401 1 + 11 0.0502664 0 0.2 0 0.0583088 0.2 + 12 0.477501 0.2 1.4 0.1 0.317532 3 + 13 0.154041 0 0.5 0 0.0699222 0.7 + 14 0.0567991 0 0.1 0 0.0244663 0.3 + 15 0.00511185 0 0 0 0 0 + 16 0.00978229 0 0 0 0 0 + 17 0.00889712 0 0 0 0 0 + 18 0.00414167 0 0 0 0 0 + 19 0.00301477 0 0 0 0 0 ############################################################ Region : Calor-C Production thresholds : gamma 2 cm e- 2 cm e+ 2 cm Energy deposition in an event : - Absorber 3.10042 GeV Gap 374.503 MeV + Absorber 4.10561 GeV Gap 464.646 MeV Number of secondaries in an event : - gamma in Absorber 505.7 in Gap 38.9 - e- in Absorber 917.8 in Gap 90.1 - e+ in Absorber 84.3 in Gap 2.4 + gamma in Absorber 862 in Gap 62.4 + e- in Absorber 1603.5 in Gap 152.6 + e+ in Absorber 149 in Gap 5.3 Minimum kinetic energy of generated secondaries : - gamma in Absorber 60.585 keV in Gap 27.5846 keV - e- in Absorber 103.58 eV in Gap 134.191 eV - e+ in Absorber 21.4299 keV in Gap 156.392 keV + gamma in Absorber 70.1385 keV in Gap 27.0755 keV + e- in Absorber 116.055 eV in Gap 149.444 eV + e+ in Absorber 6.69401 keV in Gap 382.156 keV Total track length of e+/e- in an event : - Absorber 95.385 cm Gap 66.5312 cm + Absorber 1.6594 m Gap 1.10164 m Total number of steps of e+/e- in an event : - Absorber 2345.1 Gap 373.4 + Absorber 4120.9 Gap 621.9 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 3227.41 498.1 718.1 73.8 1409.7 2051.2 - 1 128.414 28.5 150 7.7 137.726 357.1 - 2 48.1666 9 65.6 2.8 38.3316 146.6 - 3 17.2847 3.2 32.4 0.9 13.9471 73.6 - 4 11.9502 2.4 19.8 0.7 10.5326 43.7 - 5 6.13749 1.1 6.6 0.4 4.53656 18.1 - 6 8.15866 0.9 7.1 0.3 1.52653 11.2 - 7 8.61463 0.5 3.8 0.1 1.25752 6.7 - 8 10.4696 0.2 1.3 0 0.320163 2 - 9 6.51482 0 0.3 0 0.186021 2.3 - 10 0.671748 0.1 1.1 0 0.611 1.7 - 11 0.226487 0 0.6 0 0.0886794 0.9 - 12 0.0459026 0 0 0 0 0 - 13 0.227164 0.3 0.3 0 0.0857455 0.6 - 14 0.118184 0 0.2 0 0.0380273 0.3 - 15 0.116709 0.1 0.1 0 0.0363984 0.2 - 16 0.1209 0 0.2 0 0.0527848 0.3 - 17 0.0271967 0 0 0 0 0 - 18 0.0903387 0 0.1 0 0.156325 1.5 - 19 0.0210572 0 0 0 0 0 + 0 4161.5 832.8 1199.3 129.5 2317.93 3432 + 1 241.992 57 294.2 14.2 279.389 739.6 + 2 85.9355 19 128.8 6.6 88.3402 285.7 + 3 34.4814 5.6 54 1.6 28.3857 125.2 + 4 20.6974 4.5 30.6 1.4 17.5915 58.9 + 5 9.84349 1.8 16.7 0.7 7.34702 33.4 + 6 4.99676 1.4 10.9 0.2 4.60893 20.7 + 7 2.92839 0.2 6.4 0 5.14092 13.8 + 8 3.23884 0.5 5.1 0.1 7.46402 13.6 + 9 1.22345 0.1 3.1 0 2.0887 6.3 + 10 0.646757 0 1.5 0 0.428673 2.4 + 11 0.481567 0 1.4 0 0.627895 2.3 + 12 0.390626 0.2 0.4 0 0.181979 0.8 + 13 0.246525 0 0.8 0 0.183698 1.7 + 14 0.655398 0.3 1.2 0 0.373725 1.8 + 15 0.336378 0.6 1 0 0.142774 1.5 + 16 0.0239329 0 0 0 0 0 + 17 0.228694 0.2 0.2 0 0.130191 0.5 + 18 0.0849275 0.2 0.3 0 0.0176393 0.5 + 19 0.29278 0 0.2 0 0.671075 2.1 ############################################################ /run/dumpCouples @@ -1704,7 +1712,7 @@ Index : 12 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10 - User=0.670000s Real=0.877745s Sys=0.190000s + User=0.430000s Real=0.548089s Sys=0.120000s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -1712,124 +1720,124 @@ Region : Calor-A Production thresholds : gamma 200 um e- 200 um e+ 200 um Energy deposition in an event : - Absorber 540.012 MeV Gap 241.835 MeV + Absorber 616.623 MeV Gap 267.396 MeV Number of secondaries in an event : - gamma in Absorber 31.2 in Gap 10.7 - e- in Absorber 234 in Gap 138 - e+ in Absorber 0.9 in Gap 0.5 + gamma in Absorber 56.5 in Gap 16.2 + e- in Absorber 359.3 in Gap 171.9 + e+ in Absorber 2.2 in Gap 0.9 Minimum kinetic energy of generated secondaries : - gamma in Absorber 3.37313 keV in Gap 1.49618 keV - e- in Absorber 127.703 eV in Gap 132.073 eV - e+ in Absorber 2.54884 MeV in Gap 1.0631 MeV + gamma in Absorber 3.27034 keV in Gap 1.57605 keV + e- in Absorber 125.086 eV in Gap 141.23 eV + e+ in Absorber 763.683 keV in Gap 200.176 keV Total track length of e+/e- in an event : - Absorber 35.9628 cm Gap 37.0909 cm + Absorber 54.7271 cm Gap 50.6981 cm Total number of steps of e+/e- in an event : - Absorber 473.3 Gap 281.9 + Absorber 700.7 Gap 365.2 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 751.889 35.5 251 1.1 637.645 563.3 - 1 15.2871 3.4 28.4 0.2 48.8264 67.1 - 2 7.1824 1.9 25.3 0.1 22.8973 37.3 - 3 3.98177 0.6 15.8 0 14.6828 24.6 - 4 1.16888 0.3 11.6 0 3.06158 16.4 - 5 0.430216 0 6.5 0 0.563832 7.4 - 6 0.225269 0.1 5.7 0 0.235632 6.4 - 7 0.143029 0 6.3 0 0.0798845 6.9 - 8 0.309974 0 4.6 0 0.421765 5.4 - 9 0.195388 0 4.2 0 0.356459 4.7 - 10 0.0687079 0 2.2 0 0.0369421 3 - 11 0.126858 0.1 1.3 0 0.184791 1.7 - 12 0.100162 0 1.1 0 0.147799 1.3 - 13 0.0793668 0 1.5 0 0.0646423 1.8 - 14 0.119791 0 0.9 0 0.167728 1.1 - 15 0.273205 0 0.6 0 0.596064 1 - 16 0.0567305 0 0.8 0 0.123574 0.9 - 17 0.0987949 0 0.4 0 0.381101 0.7 - 18 0.0168555 0 0.3 0 0.00999601 0.4 - 19 0.0268881 0 0.6 0 0.0193507 0.6 + 0 810.592 55.1 287.5 1.9 825.207 665.5 + 1 34.7783 9.9 57.5 0.7 119.219 127.1 + 2 8.40408 2.3 34.4 0.1 25.9257 52.3 + 3 8.91499 1.5 30 0.1 26.8417 43.9 + 4 4.22647 0.9 23.9 0 10.7959 34.7 + 5 5.33749 0.7 22.1 0.1 15.5155 31.9 + 6 3.12647 0.7 17.7 0 8.89276 29.9 + 7 2.83194 0.4 12.2 0 6.39387 17.5 + 8 0.600404 0.1 6.8 0 1.00854 8.4 + 9 0.505783 0 8.9 0 0.566474 9.9 + 10 3.12588 1 9.9 0.2 10.6952 15.8 + 11 0.38058 0.1 6.5 0 0.439701 7.6 + 12 0.261548 0 3.1 0 0.806024 5.2 + 13 0.148868 0 1.7 0 0.161561 3.2 + 14 0.523499 0 2.5 0 1.57842 5.5 + 15 0.0834984 0 1 0 0.0851674 1.1 + 16 0.0412349 0 2.2 0 0.0162266 2.5 + 17 0.0488198 0 1.4 0 0.0277307 1.6 + 18 0.0421562 0 0.8 0 0.0277392 1.2 + 19 0.0228369 0 0.4 0 0.0341494 0.4 ############################################################ Region : Calor-B Production thresholds : gamma 2 mm e- 2 mm e+ 2 mm Energy deposition in an event : - Absorber 1.53911 GeV Gap 660.326 MeV + Absorber 632.955 MeV Gap 279.225 MeV Number of secondaries in an event : - gamma in Absorber 272.9 in Gap 78.1 - e- in Absorber 1416.7 in Gap 570.5 - e+ in Absorber 21.1 in Gap 5.3 + gamma in Absorber 46.4 in Gap 16.9 + e- in Absorber 261.1 in Gap 111.1 + e+ in Absorber 2.7 in Gap 1.1 Minimum kinetic energy of generated secondaries : - gamma in Absorber 9.59096 keV in Gap 3.94241 keV - e- in Absorber 100.445 eV in Gap 110.932 eV - e+ in Absorber 146.721 keV in Gap 411.405 keV + gamma in Absorber 9.6956 keV in Gap 4.29993 keV + e- in Absorber 100.382 eV in Gap 100.837 eV + e+ in Absorber 741.204 keV in Gap 640.753 keV Total track length of e+/e- in an event : - Absorber 2.62376 m Gap 2.523 m + Absorber 50.6885 cm Gap 51.9062 cm Total number of steps of e+/e- in an event : - Absorber 2775.4 Gap 1210.6 + Absorber 535.1 Gap 266.7 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 1698.84 250.4 406.6 18 3674.01 1489.5 - 1 268.319 62.2 306.4 4.1 857.737 710.1 - 2 96.7714 20.4 240.3 2.4 281.986 406.1 - 3 52.1541 8.4 207.8 0.4 153.732 311.7 - 4 20.684 2.1 171.2 0.3 47.4303 220.8 - 5 15.9406 2.1 150.2 0.5 33.5014 198.2 - 6 8.8609 1.5 109.7 0.1 15.8342 139.3 - 7 9.65441 1.7 80.8 0.3 22.4891 104.6 - 8 9.20387 0.6 72.5 0.1 23.5462 99.3 - 9 3.80474 0.5 53.2 0 6.62332 65.7 - 10 2.4666 0.4 40.3 0.1 3.28543 49.9 - 11 2.08444 0.1 34.8 0 3.21749 41.1 - 12 2.05216 0 21.5 0 5.59217 30.2 - 13 1.95505 0.1 18.4 0 4.41277 24.7 - 14 1.91245 0.2 14.9 0.1 4.24285 19.9 - 15 1.93139 0.3 18.3 0 3.81551 26.6 - 16 0.639309 0 13.6 0 0.925217 16.5 - 17 0.456551 0 9.6 0 0.528411 10.7 - 18 0.500477 0 5.9 0 0.78664 6.5 - 19 0.592883 0 2.9 0 2.17747 4.1 + 0 827.501 47.9 101.9 2.4 773.442 381.2 + 1 42.9083 8.9 47.2 0.6 138.312 108.1 + 2 20.6882 3.2 52.5 0.3 62.5061 90.3 + 3 3.58376 0.7 31.8 0.1 6.44388 41.7 + 4 3.56152 0.3 28.7 0 10.0097 39.9 + 5 2.9844 0.8 22.7 0.1 7.78644 29 + 6 7.01222 1.2 22 0.3 19.4915 32.2 + 7 1.2005 0 17.8 0 2.20786 20.7 + 8 0.964623 0.1 13.5 0 2.70162 17.5 + 9 0.322782 0 7.9 0 0.517288 9.4 + 10 0.640189 0.1 7.4 0 1.56269 10 + 11 0.165101 0 4.1 0 0.121222 4.5 + 12 0.0589183 0 2.6 0 0.0317972 3 + 13 0.0603239 0 1.7 0 0.0718973 1.8 + 14 0.190356 0.1 2.5 0 0.309252 3.3 + 15 0.0747055 0 2.5 0 0.0425304 3 + 16 0.0643085 0 1.9 0 0.0372529 2.2 + 17 0.0882347 0 1.2 0 0.241309 1.4 + 18 0.0196535 0 0.4 0 0.01155 0.4 + 19 0.0238238 0 0.9 0 0.0162823 1.1 ############################################################ Region : Calor-C Production thresholds : gamma 2 cm e- 2 cm e+ 2 cm Energy deposition in an event : - Absorber 559.657 MeV Gap 239.137 MeV + Absorber 616.194 MeV Gap 252.427 MeV Number of secondaries in an event : - gamma in Absorber 20 in Gap 7.5 - e- in Absorber 117.7 in Gap 57.2 - e+ in Absorber 1.6 in Gap 0.4 + gamma in Absorber 28.9 in Gap 10.1 + e- in Absorber 173.3 in Gap 71 + e+ in Absorber 2.4 in Gap 1 Minimum kinetic energy of generated secondaries : - gamma in Absorber 29.2195 keV in Gap 10.5724 keV - e- in Absorber 183.138 eV in Gap 146.674 eV - e+ in Absorber 1.39634 MeV in Gap 2.23016 MeV + gamma in Absorber 29.7856 keV in Gap 11.0364 keV + e- in Absorber 111.243 eV in Gap 120.903 eV + e+ in Absorber 803.143 keV in Gap 547.716 keV Total track length of e+/e- in an event : - Absorber 23.0834 cm Gap 22.7598 cm + Absorber 35.9439 cm Gap 30.5549 cm Total number of steps of e+/e- in an event : - Absorber 225.8 Gap 112.3 + Absorber 337.4 Gap 136.1 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 758.648 21.6 32.6 0.8 341.176 122.3 - 1 17.3013 2.8 22.7 0.6 53.3182 48.3 - 2 9.98911 1.9 21.5 0.3 30.7258 34.1 - 3 3.95631 0.4 18.5 0 12.4401 25.6 - 4 2.115 0 13.4 0 5.89874 18.3 - 5 1.6468 0.3 12.5 0.1 4.07382 15.2 - 6 1.21797 0.3 9.9 0.1 3.00968 13.4 - 7 0.628453 0 9.3 0 0.792452 12.9 - 8 0.548153 0 3.9 0 1.32614 6.4 - 9 0.613709 0 6.9 0 1.67158 8.6 - 10 0.599307 0 6.4 0 1.48104 9.5 - 11 0.229962 0 4.6 0 0.322497 5.4 - 12 0.638179 0.2 3 0.1 1.21706 4.6 - 13 0.146453 0 2.3 0 0.324822 3.4 - 14 0.117906 0 1.6 0 0.155165 3.3 - 15 0.0115393 0 0.8 0 0.00313254 0.9 - 16 0.0250295 0 0.6 0 0.0185203 0.8 - 17 0.0524493 0 1.1 0 0.0632444 1.2 - 18 0.0823964 0 0.9 0 0.0932272 1 - 19 0.0104309 0 0.5 0 0.00644932 0.6 + 0 804.611 29.1 41.1 1.8 496.186 165.3 + 1 34.6526 7 37.5 0.9 101.771 85.2 + 2 10.2907 1.2 32.1 0.1 24.5252 50.6 + 3 7.14224 0.4 29.3 0.2 16.2512 40.3 + 4 3.22329 0.5 24.3 0.1 7.91352 30.9 + 5 2.41004 0 18.7 0 5.49777 23.2 + 6 1.57925 0.2 14.7 0.1 3.26209 17.8 + 7 1.56568 0.4 10.4 0.2 2.80041 13.2 + 8 0.40386 0 9.3 0 0.550485 11.7 + 9 0.523612 0 6.2 0 0.682252 8.7 + 10 0.192298 0 4.4 0 0.13797 5.2 + 11 0.205805 0 4.6 0 0.243432 5.6 + 12 0.91924 0.2 2.6 0 2.14075 3.8 + 13 0.140249 0 2.5 0 0.307498 3 + 14 0.398418 0 1.7 0 1.90981 2.4 + 15 0.0895712 0 0.7 0 0.280617 1.7 + 16 0.0212293 0 0.6 0 0.0163487 0.7 + 17 0.14368 0 0.8 0 0.424552 1 + 18 0.00333856 0 0.2 0 0.000824575 0.2 + 19 0.0554098 0 0.5 0 0.0628711 0.5 ############################################################ /run/dumpCouples @@ -2047,7 +2055,7 @@ Index : 12 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 10 - User=0.830000s Real=1.059280s Sys=0.220000s + User=0.980000s Real=1.253870s Sys=0.250000s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -2055,124 +2063,124 @@ Region : Calor-A Production thresholds : gamma 10 um e- 10 um e+ 10 um Energy deposition in an event : - Absorber 777.304 MeV Gap 344.205 MeV + Absorber 565.915 MeV Gap 252.071 MeV Number of secondaries in an event : - gamma in Absorber 114.4 in Gap 28.3 - e- in Absorber 1515.5 in Gap 1379 - e+ in Absorber 4.7 in Gap 1.7 + gamma in Absorber 52.6 in Gap 14 + e- in Absorber 1005.5 in Gap 985.9 + e+ in Absorber 1.1 in Gap 0.5 Minimum kinetic energy of generated secondaries : - gamma in Absorber 999.827 eV in Gap 854.768 eV - e- in Absorber 1.36831 eV in Gap 109.954 eV - e+ in Absorber 280.064 keV in Gap 981.289 keV + gamma in Absorber 1.00163 keV in Gap 1.01664 keV + e- in Absorber 37.9377 eV in Gap 228.133 eV + e+ in Absorber 685.995 keV in Gap 2.26538 MeV Total track length of e+/e- in an event : - Absorber 88.5763 cm Gap 77.794 cm + Absorber 45.8688 cm Gap 44.652 cm Total number of steps of e+/e- in an event : - Absorber 2459.9 Gap 2120.1 + Absorber 1503.4 Gap 1429.4 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 912.969 92.5 2058.9 3.3 1117.89 3131.8 - 1 48.8199 10.8 171.5 0.6 104.241 306.4 - 2 16.8133 3.8 83.7 0.6 43.7562 139.2 - 3 14.8653 3 77.8 0.4 34.0185 122.6 - 4 7.58488 1 50.2 0.2 16.8044 67.8 - 5 6.26753 1 41.3 0 14.2399 59.3 - 6 6.44971 0.8 35.2 0 11.8127 47.6 - 7 11.7776 0.9 35.5 0 5.39573 42.8 - 8 4.98753 1.2 25.7 0.2 18.3958 43.2 - 9 8.38502 2.5 29 0 25.3016 53.3 - 10 5.3906 1.3 24.5 0.1 17.703 44.8 - 11 6.59333 2.3 24.4 0.1 19.468 47 - 12 6.85138 2 27.9 0.1 27.8006 52.8 - 13 11.25 3.8 34.2 0.1 36.3762 67.4 - 14 10.8041 2.9 34.2 0.2 37.5674 73.9 - 15 7.9818 2.5 33.4 0 33.9398 75.6 - 16 3.68616 1 15.4 0 11.7648 29.8 - 17 0.899652 0 9 0 3.79059 15 - 18 2.03802 0.6 10.5 0 6.41721 16.8 - 19 3.80951 1.6 12.3 0.2 11.1726 24 + 0 788.717 59.4 1778.6 1.5 815.884 2603.7 + 1 11.6881 3.2 54.9 0 39.396 98.7 + 2 11.375 3.4 54.8 0.1 37.1274 97.9 + 3 1.43439 0.2 21.1 0 2.84238 28 + 4 0.751919 0.1 17.5 0 1.22253 22 + 5 0.623303 0.1 16 0 0.60856 18.9 + 6 0.723138 0 11.7 0 1.42638 15.4 + 7 0.230957 0 5.7 0 0.228799 7 + 8 0.409927 0 5.9 0 0.749445 7.1 + 9 0.547911 0 5.9 0 1.1195 7.8 + 10 0.210173 0 5.3 0 0.252165 6.4 + 11 0.0541984 0 2.5 0 0.0233201 2.9 + 12 0.0762205 0 2.7 0 0.0555316 3 + 13 0.206734 0 3 0 0.840699 4.1 + 14 0.543633 0.2 3 0 2.71875 5.1 + 15 0.252107 0 2.1 0 0.472104 3.1 + 16 0.135818 0 0.6 0 0.23866 1.6 + 17 0 0 0 0 0 0 + 18 0 0 0 0 0 0 + 19 0.00566549 0 0.1 0 0.00264158 0.1 ############################################################ Region : Calor-B Production thresholds : gamma 100 um e- 100 um e+ 100 um Energy deposition in an event : - Absorber 741.545 MeV Gap 318.742 MeV + Absorber 935.807 MeV Gap 385.918 MeV Number of secondaries in an event : - gamma in Absorber 96.5 in Gap 27.2 - e- in Absorber 665.6 in Gap 328.9 - e+ in Absorber 4.2 in Gap 1.8 + gamma in Absorber 148.8 in Gap 39.3 + e- in Absorber 950.7 in Gap 429.6 + e+ in Absorber 9.1 in Gap 1.4 Minimum kinetic energy of generated secondaries : - gamma in Absorber 2.35362 keV in Gap 1.11932 keV - e- in Absorber 123.837 eV in Gap 113.543 eV - e+ in Absorber 267.069 keV in Gap 208.631 keV + gamma in Absorber 2.36573 keV in Gap 1.13332 keV + e- in Absorber 101.122 eV in Gap 104.276 eV + e+ in Absorber 112.307 keV in Gap 1.55342 MeV Total track length of e+/e- in an event : - Absorber 85.9748 cm Gap 78.9341 cm + Absorber 1.20895 m Gap 1.08869 m Total number of steps of e+/e- in an event : - Absorber 1281 Gap 641.9 + Absorber 1795.6 Gap 840.7 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 894.444 83.3 469.5 3.3 1140.16 1032.2 - 1 82.1424 20.5 125.2 0.9 267.683 286.9 - 2 28.5418 7.5 81.3 0.8 87.7106 148.6 - 3 10.8323 2.4 62.5 0 35.4584 97.3 - 4 5.65708 0.5 50.8 0.2 14.1406 69.9 - 5 4.35052 0.5 35.3 0.1 10.1216 45 - 6 2.5338 0.8 28.1 0.1 4.72271 37.4 - 7 2.58341 0.2 25.1 0.1 5.37171 32.4 - 8 3.70482 1 19.5 0.2 10.0059 28.5 - 9 2.11932 1.1 14.6 0 6.46306 21.9 - 10 1.26744 0.1 11.6 0 2.26479 14.1 - 11 0.715661 0.1 9.5 0 1.25495 10.8 - 12 0.650787 0.2 6.1 0.1 1.07626 7.7 - 13 0.592373 0.1 5.3 0 1.29677 8.4 - 14 1.31844 0.1 5.6 0 3.18778 7.1 - 15 0.425029 0.1 4.4 0 0.827028 6.5 - 16 0.0958446 0 2 0 0.0651153 2.5 - 17 0.0939727 0 2.5 0 0.114835 2.8 - 18 0.042642 0 1.9 0 0.0198645 2.1 - 19 0.170696 0 2.9 0 0.206119 4.3 + 0 993.191 109.2 541.1 5.2 1448.37 1225 + 1 92.3966 24.9 153.4 1.3 247.328 308.3 + 2 30.2747 7.7 112.3 0.7 80.6962 174.2 + 3 40.7517 7.1 96.4 0.4 74.1268 150.7 + 4 25.5305 5.7 80.2 0.4 63.621 119.9 + 5 31.419 6.9 72 0.5 79.8146 123.1 + 6 30.4278 7.7 63.2 0.6 90.6707 117 + 7 27.8207 6.9 57 0.6 83.5242 111.1 + 8 21.8224 6.3 52.6 0.5 65.9013 96.3 + 9 5.34708 1.2 29.9 0 19.0465 43.4 + 10 3.69325 0.9 23.3 0 8.71191 33.7 + 11 3.39683 1.1 24.7 0.2 7.23046 32 + 12 2.92418 0.6 18.6 0.1 5.90768 25 + 13 5.33962 0.5 11.7 0 7.99029 18.8 + 14 1.53197 0.4 10.8 0 3.72571 15.5 + 15 1.34585 0.4 8.6 0 3.51775 11.4 + 16 0.953543 0 7.8 0 2.00213 9.2 + 17 0.332822 0 5.6 0 0.419942 6.7 + 18 0.449639 0 4.1 0 0.81709 5.5 + 19 0.254204 0 2.4 0 0.322898 2.6 ############################################################ Region : Calor-C Production thresholds : gamma 1 mm e- 1 mm e+ 1 mm Energy deposition in an event : - Absorber 621.667 MeV Gap 263.923 MeV + Absorber 560.237 MeV Gap 239.795 MeV Number of secondaries in an event : - gamma in Absorber 49.1 in Gap 12.4 - e- in Absorber 253.3 in Gap 109.5 - e+ in Absorber 1.9 in Gap 0.6 + gamma in Absorber 35.2 in Gap 8.4 + e- in Absorber 187.9 in Gap 87 + e+ in Absorber 2.1 in Gap 0 Minimum kinetic energy of generated secondaries : - gamma in Absorber 7.06886 keV in Gap 3.08712 keV - e- in Absorber 108.816 eV in Gap 128.985 eV - e+ in Absorber 637.936 keV in Gap 1.4659 MeV + gamma in Absorber 6.93856 keV in Gap 3.01902 keV + e- in Absorber 123.079 eV in Gap 123.431 eV + e+ in Absorber 688.819 keV in Gap 2.88022e+295 J Total track length of e+/e- in an event : - Absorber 51.475 cm Gap 46.1943 cm + Absorber 37.0281 cm Gap 32.7115 cm Total number of steps of e+/e- in an event : - Absorber 541.9 Gap 247.5 + Absorber 437.3 Gap 211 ------------------------------------------------------------ Scores in parallel geometry layer eDep/evt nGamma/evt nElec/evt nPosi/evt stpLen/evt nStep/evt - 0 812.72 45.7 133.7 1.4 761.755 429.5 - 1 39.9518 8.8 47.4 0.7 129.508 108.3 - 2 18.1323 4.9 42.2 0.3 53.4223 71.7 - 3 3.49041 0.6 32 0.1 7.66708 43.5 - 4 2.72356 0.2 21.5 0 5.97441 29.4 - 5 1.38977 0.3 17.8 0 2.24733 20.6 - 6 0.749551 0 12.8 0 1.41437 15.3 - 7 0.649527 0 14.6 0 0.833591 16.7 - 8 1.98452 0.4 14.1 0 5.08864 17.4 - 9 0.663054 0 6.7 0 1.44857 9 - 10 0.887487 0.2 6.5 0 1.84932 8.6 - 11 0.314056 0 3.7 0 0.508428 4.7 - 12 0.254698 0 1.9 0 0.495131 2.5 - 13 0.416427 0 1.9 0 0.887895 3.8 - 14 0.0383681 0 1.1 0 0.0253837 1.4 - 15 0.0252745 0 0.2 0 0.0456362 0.2 - 16 0.0388829 0 0.9 0 0.0233309 0.9 - 17 1.05253 0.4 1.6 0 3.40901 3.3 - 18 0.0279843 0 0.8 0 0.0157134 0.9 - 19 0.0244805 0 0.2 0 0.0199799 0.4 + 0 755.694 32.6 111 0.9 568.444 394 + 1 20.6778 6.6 33 0.6 64.5195 70.3 + 2 8.34472 2.1 27.9 0.3 25.7905 40 + 3 7.60148 1.5 23.5 0.2 22.7087 36.7 + 4 0.920163 0 16.2 0 1.45284 21.3 + 5 1.68839 0.1 16.7 0 4.18884 26.8 + 6 1.12795 0.2 10 0.1 2.355 14 + 7 1.17472 0.3 7.9 0 2.35883 10 + 8 0.478676 0 5.6 0 0.843991 7.3 + 9 0.727415 0.1 5.8 0 1.62076 7.3 + 10 0.140263 0 3.9 0 0.120763 4.2 + 11 0.251742 0.1 3.2 0 0.728279 4 + 12 0.0660339 0 1.4 0 0.0483444 1.9 + 13 0.10377 0 2 0 0.109395 2.1 + 14 0.329321 0 1.3 0 1.25371 1.8 + 15 0.13075 0 0.8 0 0.19726 1.2 + 16 0.0263619 0 0.7 0 0.0150243 0.7 + 17 0.0356169 0 0.7 0 0.0728165 0.8 + 18 0.0490544 0 0.3 0 0.0657378 0.3 + 19 0.0482604 0 0.4 0 0.0592436 0.5 ############################################################ /run/dumpCouples @@ -2264,6 +2272,6 @@ Visualization Manager deleting... G4 kernel has come to Quit state. ================== Deleting memory pools =================== Number of memory pools allocated: 14 of which, static: 0 -Dynamic pools deleted: 14 / Total memory freed: 0.93 MB +Dynamic pools deleted: 14 / Total memory freed: 0.79 MB ============================================================ RunManagerKernel is deleted. Good bye :) diff --git a/examples/extended/runAndEvent/RE07/History b/examples/extended/runAndEvent/RE07/History index f41e96e765..257a4de304 100644 --- a/examples/extended/runAndEvent/RE07/History +++ b/examples/extended/runAndEvent/RE07/History @@ -5,6 +5,10 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-09-14 Jonas Hahnfeld (exampleRE07-V11-00-01) +- Run `clang-format` +- Rename static class member `fMasterTrackingManager` + ## 2021-12-10 Ben Morgan (exampleRE07-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/runAndEvent/RE07/exampleRE07.cc b/examples/extended/runAndEvent/RE07/exampleRE07.cc index 925ac3acbc..444e4438fe 100644 --- a/examples/extended/runAndEvent/RE07/exampleRE07.cc +++ b/examples/extended/runAndEvent/RE07/exampleRE07.cc @@ -30,32 +30,29 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... -#include "ActionInitialization.hh" -#include "DetectorConstruction.hh" -#include "PhysicsList.hh" - #include "G4RunManagerFactory.hh" #include "G4UImanager.hh" #include "G4ios.hh" +#include "ActionInitialization.hh" +#include "DetectorConstruction.hh" +#include "PhysicsList.hh" + #include //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... int main(int argc, char** argv) { - if(argc < 2) - { + if (argc < 2) { G4cerr << "No macro file provided, exiting!" << G4endl; return 1; } // Creating run manager - std::unique_ptr runManager( - G4RunManagerFactory::CreateRunManager()); + std::unique_ptr runManager(G4RunManagerFactory::CreateRunManager()); - if(argc == 3) - { + if (argc == 3) { G4int nThreads = G4UIcommand::ConvertToInt(argv[2]); runManager->SetNumberOfThreads(nThreads); } @@ -71,7 +68,7 @@ int main(int argc, char** argv) // get the pointer to the User Interface manager G4UImanager* UImanager = G4UImanager::GetUIpointer(); - G4String command = "/control/execute "; + G4String command = "/control/execute "; G4String fileName = argv[1]; UImanager->ApplyCommand(command + fileName); diff --git a/examples/extended/runAndEvent/RE07/include/DetectorConstruction.hh b/examples/extended/runAndEvent/RE07/include/DetectorConstruction.hh index 0b0b906cc7..055ce6dcbf 100644 --- a/examples/extended/runAndEvent/RE07/include/DetectorConstruction.hh +++ b/examples/extended/runAndEvent/RE07/include/DetectorConstruction.hh @@ -81,10 +81,7 @@ class DetectorConstruction : public G4VUserDetectorConstruction G4int GetNbOfAbsor() const { return fNbOfAbsor; }; G4double GetAbsorThickness(G4int i) const { return fAbsorThickness[i]; }; - const G4Material* GetAbsorMaterial(G4int i) const - { - return fAbsorMaterial[i]; - }; + const G4Material* GetAbsorMaterial(G4int i) const { return fAbsorMaterial[i]; }; const G4VPhysicalVolume* GetphysiWorld() const { return fPhysiWorld; }; const G4Material* GetWorldMaterial() const { return fWorldMaterial; }; diff --git a/examples/extended/runAndEvent/RE07/include/EmStandardPhysicsTrackingManager.hh b/examples/extended/runAndEvent/RE07/include/EmStandardPhysicsTrackingManager.hh index 06eda284cc..4d6e25012f 100644 --- a/examples/extended/runAndEvent/RE07/include/EmStandardPhysicsTrackingManager.hh +++ b/examples/extended/runAndEvent/RE07/include/EmStandardPhysicsTrackingManager.hh @@ -91,7 +91,7 @@ class EmStandardPhysicsTrackingManager : public G4VTrackingManager G4RayleighScattering* rayleigh; } fGammaProcs; - static EmStandardPhysicsTrackingManager* masterTrackingManager; + static EmStandardPhysicsTrackingManager* fMasterTrackingManager; }; #endif diff --git a/examples/extended/runAndEvent/RE07/include/EventAction.hh b/examples/extended/runAndEvent/RE07/include/EventAction.hh index e80d073f02..d4b137c94b 100644 --- a/examples/extended/runAndEvent/RE07/include/EventAction.hh +++ b/examples/extended/runAndEvent/RE07/include/EventAction.hh @@ -33,10 +33,11 @@ #ifndef EventAction_h #define EventAction_h 1 -#include "DetectorConstruction.hh" #include "G4UserEventAction.hh" #include "globals.hh" +#include "DetectorConstruction.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class EventAction : public G4UserEventAction diff --git a/examples/extended/runAndEvent/RE07/include/Run.hh b/examples/extended/runAndEvent/RE07/include/Run.hh index 81d0001b47..e24c97acb5 100644 --- a/examples/extended/runAndEvent/RE07/include/Run.hh +++ b/examples/extended/runAndEvent/RE07/include/Run.hh @@ -33,10 +33,11 @@ #ifndef Run_h #define Run_h 1 -#include "DetectorConstruction.hh" - #include "G4Run.hh" #include "globals.hh" + +#include "DetectorConstruction.hh" + #include class DetectorConstruction; diff --git a/examples/extended/runAndEvent/RE07/include/TrackingManagerHelper.hh b/examples/extended/runAndEvent/RE07/include/TrackingManagerHelper.hh index e0a0842a89..b3a61553fb 100644 --- a/examples/extended/runAndEvent/RE07/include/TrackingManagerHelper.hh +++ b/examples/extended/runAndEvent/RE07/include/TrackingManagerHelper.hh @@ -62,41 +62,36 @@ class TrackingManagerHelper // automatically after this method returns. If secondaries should be given // back to the G4EventManager, put them into the container passed as the // last argument. - virtual void AlongStepDoIt(G4Track& track, G4Step& step, - G4TrackVector& secondaries) = 0; + virtual void AlongStepDoIt(G4Track& track, G4Step& step, G4TrackVector& secondaries) = 0; // This method is called unless the track has been killed during this step. // If secondaries should be given back to the G4EventManager, put them into // the container passed as the last argument. - virtual void PostStepDoIt(G4Track& track, G4Step& step, - G4TrackVector& secondaries) = 0; + virtual void PostStepDoIt(G4Track& track, G4Step& step, G4TrackVector& secondaries) = 0; virtual bool HasAtRestProcesses() { return false; } // This method is called when a track is stopped, but still alive. If // secondaries should be given back to the G4EventManager, put them into // the container passed as the last argument. - virtual void AtRestDoIt(G4Track& track, G4Step& step, - G4TrackVector& secondaries) + virtual void AtRestDoIt(G4Track& track, G4Step& step, G4TrackVector& secondaries) { - (void) track; - (void) step; - (void) secondaries; + (void)track; + (void)step; + (void)secondaries; } }; class Navigation { public: - virtual G4double MakeStep(G4Track& track, G4Step& step, - G4double physicalStep) = 0; + virtual G4double MakeStep(G4Track& track, G4Step& step, G4double physicalStep) = 0; virtual void FinishStep(G4Track& track, G4Step& step) = 0; }; template - static void TrackParticle(G4Track* aTrack, PhysicsImpl& physics, - NavigationImpl& navigation); + static void TrackParticle(G4Track* aTrack, PhysicsImpl& physics, NavigationImpl& navigation); template static void TrackChargedParticle(G4Track* aTrack, PhysicsImpl& physics); diff --git a/examples/extended/runAndEvent/RE07/include/TrackingManagerHelper.icc b/examples/extended/runAndEvent/RE07/include/TrackingManagerHelper.icc index e1fc764437..c437ae1bdf 100644 --- a/examples/extended/runAndEvent/RE07/include/TrackingManagerHelper.icc +++ b/examples/extended/runAndEvent/RE07/include/TrackingManagerHelper.icc @@ -35,14 +35,6 @@ // Original author: Jonas Hahnfeld, 2021 #include "G4EventManager.hh" -#include "G4Step.hh" -#include "G4StepPoint.hh" -#include "G4Track.hh" -#include "G4TrackVector.hh" -#include "G4UserSteppingAction.hh" -#include "G4UserTrackingAction.hh" -#include "G4VSensitiveDetector.hh" - #include "G4Field.hh" #include "G4FieldManager.hh" #include "G4FieldManagerStore.hh" @@ -52,23 +44,30 @@ #include "G4PropagatorInField.hh" #include "G4Region.hh" #include "G4SafetyHelper.hh" +#include "G4Step.hh" +#include "G4StepPoint.hh" #include "G4TouchableHandle.hh" #include "G4TouchableHistory.hh" +#include "G4Track.hh" +#include "G4TrackVector.hh" #include "G4TransportationManager.hh" +#include "G4UserSteppingAction.hh" +#include "G4UserTrackingAction.hh" #include "G4VPhysicalVolume.hh" +#include "G4VSensitiveDetector.hh" template -void TrackingManagerHelper::TrackParticle(G4Track* aTrack, PhysicsImpl& physics, - NavigationImpl& navigation) +void TrackingManagerHelper::TrackParticle( + G4Track* aTrack, PhysicsImpl& physics, NavigationImpl& navigation) { // Prepare for calling the user action. - auto* evtMgr = G4EventManager::GetEventManager(); + auto* evtMgr = G4EventManager::GetEventManager(); auto* userTrackingAction = evtMgr->GetUserTrackingAction(); auto* userSteppingAction = evtMgr->GetUserSteppingAction(); // Locate the track in geometry. { - auto* transMgr = G4TransportationManager::GetTransportationManager(); + auto* transMgr = G4TransportationManager::GetTransportationManager(); auto* linearNavigator = transMgr->GetNavigatorForTracking(); const G4ThreeVector& pos = aTrack->GetPosition(); @@ -76,24 +75,20 @@ void TrackingManagerHelper::TrackParticle(G4Track* aTrack, PhysicsImpl& physics, // Do not assign directly, doesn't work if the handle is empty. G4TouchableHandle touchableHandle; - if(aTrack->GetTouchableHandle()) - { + if (aTrack->GetTouchableHandle()) { touchableHandle = aTrack->GetTouchableHandle(); // FIXME: This assumes we only ever have G4TouchableHistorys! - auto* touchableHistory = (G4TouchableHistory*) touchableHandle(); + auto* touchableHistory = (G4TouchableHistory*)touchableHandle(); G4VPhysicalVolume* oldTopVolume = touchableHandle->GetVolume(); G4VPhysicalVolume* newTopVolume = linearNavigator->ResetHierarchyAndLocate(pos, dir, *touchableHistory); // TODO: WHY?! - if(newTopVolume != oldTopVolume || - oldTopVolume->GetRegularStructureId() == 1) - { + if (newTopVolume != oldTopVolume || oldTopVolume->GetRegularStructureId() == 1) { touchableHandle = linearNavigator->CreateTouchableHistory(); aTrack->SetTouchableHandle(touchableHandle); } } - else - { + else { linearNavigator->LocateGlobalPointAndSetup(pos, &dir, false, false); touchableHandle = linearNavigator->CreateTouchableHistory(); aTrack->SetTouchableHandle(touchableHandle); @@ -110,15 +105,13 @@ void TrackingManagerHelper::TrackParticle(G4Track* aTrack, PhysicsImpl& physics, G4TrackVector secondaries; // Start of tracking: Inform user and processes. - if(userTrackingAction) - { + if (userTrackingAction) { userTrackingAction->PreUserTrackingAction(aTrack); } physics.StartTracking(aTrack); - while(aTrack->GetTrackStatus() == fAlive) - { + while (aTrack->GetTrackStatus() == fAlive) { // Beginning of this step: Prepare data structures. aTrack->IncrementCurrentStepNumber(); @@ -144,15 +137,11 @@ void TrackingManagerHelper::TrackParticle(G4Track* aTrack, PhysicsImpl& physics, physics.AlongStepDoIt(*aTrack, step, secondaries); step.UpdateTrack(); - if(aTrack->GetTrackStatus() == fAlive && - aTrack->GetKineticEnergy() < DBL_MIN) - { - if(physics.HasAtRestProcesses()) - { + if (aTrack->GetTrackStatus() == fAlive && aTrack->GetKineticEnergy() < DBL_MIN) { + if (physics.HasAtRestProcesses()) { aTrack->SetTrackStatus(fStopButAlive); } - else - { + else { aTrack->SetTrackStatus(fStopAndKill); } } @@ -160,16 +149,14 @@ void TrackingManagerHelper::TrackParticle(G4Track* aTrack, PhysicsImpl& physics, navigation.FinishStep(*aTrack, step); // Check if the track left the world. - if(aTrack->GetNextVolume() == nullptr) - { + if (aTrack->GetNextVolume() == nullptr) { aTrack->SetTrackStatus(fStopAndKill); } // The check should rather check for == fAlive and avoid calling // PostStepDoIt for fStopButAlive, but the generic stepping loop // does it like this... - if(aTrack->GetTrackStatus() != fStopAndKill) - { + if (aTrack->GetTrackStatus() != fStopAndKill) { physics.PostStepDoIt(*aTrack, step, secondaries); } @@ -177,30 +164,24 @@ void TrackingManagerHelper::TrackParticle(G4Track* aTrack, PhysicsImpl& physics, aTrack->AddTrackLength(step.GetStepLength()); // End of this step: Call sensitive detector and stepping actions. - if(step.GetControlFlag() != AvoidHitInvocation) - { + if (step.GetControlFlag() != AvoidHitInvocation) { auto* sensitive = lvol->GetSensitiveDetector(); - if(sensitive) - { + if (sensitive) { sensitive->Hit(&step); } } - if(userSteppingAction) - { + if (userSteppingAction) { userSteppingAction->UserSteppingAction(&step); } auto* regionalAction = lvol->GetRegion()->GetRegionalSteppingAction(); - if(regionalAction) - { + if (regionalAction) { regionalAction->UserSteppingAction(&step); } } - if(aTrack->GetTrackStatus() == fStopButAlive && - aTrack->GetNextVolume() != nullptr) - { + if (aTrack->GetTrackStatus() == fStopButAlive && aTrack->GetNextVolume() != nullptr) { // Do one final step. aTrack->IncrementCurrentStepNumber(); @@ -211,23 +192,19 @@ void TrackingManagerHelper::TrackParticle(G4Track* aTrack, PhysicsImpl& physics, // End of this step: Call sensitive detector and stepping actions. auto* lvol = aTrack->GetTouchable()->GetVolume()->GetLogicalVolume(); - if(step.GetControlFlag() != AvoidHitInvocation) - { + if (step.GetControlFlag() != AvoidHitInvocation) { auto sensitive = lvol->GetSensitiveDetector(); - if(sensitive) - { + if (sensitive) { sensitive->Hit(&step); } } - if(userSteppingAction) - { + if (userSteppingAction) { userSteppingAction->UserSteppingAction(&step); } auto* regionalAction = lvol->GetRegion()->GetRegionalSteppingAction(); - if(regionalAction) - { + if (regionalAction) { regionalAction->UserSteppingAction(&step); } } @@ -235,8 +212,7 @@ void TrackingManagerHelper::TrackParticle(G4Track* aTrack, PhysicsImpl& physics, // End of tracking: Inform processes and user. physics.EndTracking(); - if(userTrackingAction) - { + if (userTrackingAction) { userTrackingAction->PostUserTrackingAction(aTrack); } @@ -246,20 +222,18 @@ void TrackingManagerHelper::TrackParticle(G4Track* aTrack, PhysicsImpl& physics, } template -void TrackingManagerHelper::TrackChargedParticle(G4Track* aTrack, - PhysicsImpl& physics) +void TrackingManagerHelper::TrackChargedParticle(G4Track* aTrack, PhysicsImpl& physics) { class ChargedNavigation final : public Navigation { public: ChargedNavigation() { - auto* transMgr = G4TransportationManager::GetTransportationManager(); + auto* transMgr = G4TransportationManager::GetTransportationManager(); fLinearNavigator = transMgr->GetNavigatorForTracking(); fFieldPropagator = transMgr->GetPropagatorInField(); - fSafetyHelper = transMgr->GetSafetyHelper(); - kCarTolerance = - 0.5 * G4GeometryTolerance::GetInstance()->GetSurfaceTolerance(); + fSafetyHelper = transMgr->GetSafetyHelper(); + kCarTolerance = 0.5 * G4GeometryTolerance::GetInstance()->GetSurfaceTolerance(); // Reset sstate of field propagator and all chord finders. fFieldPropagator->ClearPropagatorState(); @@ -268,20 +242,16 @@ void TrackingManagerHelper::TrackChargedParticle(G4Track* aTrack, fieldMgrStore->ClearAllChordFindersState(); } - G4double MakeStep(G4Track& track, G4Step& step, - G4double physicalStep) override + G4double MakeStep(G4Track& track, G4Step& step, G4double physicalStep) override { - G4ThreeVector pos = track.GetPosition(); - G4ThreeVector dir = track.GetMomentumDirection(); + G4ThreeVector pos = track.GetPosition(); + G4ThreeVector dir = track.GetMomentumDirection(); G4StepPoint& postStepPoint = *step.GetPostStepPoint(); bool fieldExertsForce = false; - if(auto* fieldMgr = - fFieldPropagator->FindAndSetFieldManager(track.GetVolume())) - { + if (auto* fieldMgr = fFieldPropagator->FindAndSetFieldManager(track.GetVolume())) { fieldMgr->ConfigureForTrack(&track); - if(const G4Field* ptrField = fieldMgr->GetDetectorField()) - { + if (const G4Field* ptrField = fieldMgr->GetDetectorField()) { fieldExertsForce = true; } } @@ -292,21 +262,19 @@ void TrackingManagerHelper::TrackChargedParticle(G4Track* aTrack, // short steps where the field propagator returns immediately without // calling geometry. const G4double shiftSquare = (pos - fSafetyOrigin).mag2(); - if(shiftSquare < sqr(fSafety)) - { + if (shiftSquare < sqr(fSafety)) { safety = fSafety - std::sqrt(shiftSquare); } - if(fieldExertsForce) - { + if (fieldExertsForce) { const G4DynamicParticle* pParticle = track.GetDynamicParticle(); - const G4double particleCharge = pParticle->GetCharge(); - const G4double particleMass = pParticle->GetMass(); - const G4double magneticMoment = pParticle->GetMagneticMoment(); - const G4ThreeVector particleSpin = pParticle->GetPolarization(); - const G4double kineticEnergy = pParticle->GetKineticEnergy(); - const auto pParticleDef = pParticle->GetDefinition(); - const auto particlePDGSpin = pParticleDef->GetPDGSpin(); + const G4double particleCharge = pParticle->GetCharge(); + const G4double particleMass = pParticle->GetMass(); + const G4double magneticMoment = pParticle->GetMagneticMoment(); + const G4ThreeVector particleSpin = pParticle->GetPolarization(); + const G4double kineticEnergy = pParticle->GetKineticEnergy(); + const auto pParticleDef = pParticle->GetDefinition(); + const auto particlePDGSpin = pParticleDef->GetPDGSpin(); const auto particlePDGMagM = pParticleDef->GetPDGMagneticMoment(); auto equationOfMotion = fFieldPropagator->GetCurrentEquationOfMotion(); @@ -314,32 +282,28 @@ void TrackingManagerHelper::TrackChargedParticle(G4Track* aTrack, G4ChargeState(particleCharge, magneticMoment, particlePDGSpin), pParticle->GetTotalMomentum(), particleMass); - const G4ThreeVector startPosition = pos; + const G4ThreeVector startPosition = pos; const G4ThreeVector startDirection = dir; G4FieldTrack aFieldTrack(startPosition, - track.GetGlobalTime(), // Lab. - dir, kineticEnergy, particleMass, - particleCharge, particleSpin, particlePDGMagM, - 0.0, // Length along track - particlePDGSpin); + track.GetGlobalTime(), // Lab. + dir, kineticEnergy, particleMass, particleCharge, particleSpin, particlePDGMagM, + 0.0, // Length along track + particlePDGSpin); // Do the Transport in the field (non recti-linear) // - fGeometryLimitedStep = false; + fGeometryLimitedStep = false; const G4double lengthAlongCurve = fFieldPropagator->ComputeStep( - aFieldTrack, physicalStep, safety, track.GetVolume(), - kineticEnergy < 250.0); - if(lengthAlongCurve < physicalStep) - { - physicalStep = lengthAlongCurve; + aFieldTrack, physicalStep, safety, track.GetVolume(), kineticEnergy < 250.0); + if (lengthAlongCurve < physicalStep) { + physicalStep = lengthAlongCurve; fGeometryLimitedStep = true; } fSafetyHelper->SetCurrentSafety(safety, pos); fSafetyOrigin = pos; - fSafety = safety; + fSafety = safety; - if(fFieldPropagator->IsParticleLooping()) - { + if (fFieldPropagator->IsParticleLooping()) { track.SetTrackStatus(fStopAndKill); } @@ -351,19 +315,16 @@ void TrackingManagerHelper::TrackChargedParticle(G4Track* aTrack, endpointDistance = (startPosition - pos).mag(); } - else - { + else { fGeometryLimitedStep = false; - G4double linearStepLength = - fLinearNavigator->ComputeStep(pos, dir, physicalStep, safety); - if(linearStepLength < physicalStep) - { - physicalStep = linearStepLength; + G4double linearStepLength = fLinearNavigator->ComputeStep(pos, dir, physicalStep, safety); + if (linearStepLength < physicalStep) { + physicalStep = linearStepLength; fGeometryLimitedStep = true; } fSafetyHelper->SetCurrentSafety(safety, pos); fSafetyOrigin = pos; - fSafety = safety; + fSafety = safety; // Update the position. pos += physicalStep * dir; @@ -373,43 +334,37 @@ void TrackingManagerHelper::TrackChargedParticle(G4Track* aTrack, } // Update global, local, and proper time. - double velocity = track.GetVelocity(); + double velocity = track.GetVelocity(); double deltaTime = 0; - if(velocity > 0) - { + if (velocity > 0) { deltaTime = physicalStep / velocity; } postStepPoint.AddGlobalTime(deltaTime); postStepPoint.AddLocalTime(deltaTime); - double restMass = track.GetDynamicParticle()->GetMass(); + double restMass = track.GetDynamicParticle()->GetMass(); double deltaProperTime = deltaTime * (restMass / track.GetTotalEnergy()); postStepPoint.AddProperTime(deltaProperTime); // Compute safety, including the call to safetyHelper, but don't set the // safety in the post-step point to mimick the generic stepping loop. - if(safety > physicalStep) - { + if (safety > physicalStep) { safety -= physicalStep; } - else if(safety < endpointDistance) - { + else if (safety < endpointDistance) { safety = fLinearNavigator->ComputeSafety(pos); fSafetyHelper->SetCurrentSafety(safety, pos); fSafetyOrigin = pos; - fSafety = safety; + fSafety = safety; } - else - { + else { safety = 0; } - if(safety < kCarTolerance) - { + if (safety < kCarTolerance) { fPostStepSafety = kCarTolerance; } - else - { + else { fPostStepSafety = safety; } @@ -423,25 +378,21 @@ void TrackingManagerHelper::TrackChargedParticle(G4Track* aTrack, postStepPoint.SetSafety(fPostStepSafety); G4TouchableHandle touchableHandle = track.GetTouchableHandle(); - const G4ThreeVector& pos = track.GetPosition(); - if(fGeometryLimitedStep) - { + const G4ThreeVector& pos = track.GetPosition(); + if (fGeometryLimitedStep) { // Relocate the particle. fLinearNavigator->SetGeometricallyLimitedStep(); fLinearNavigator->LocateGlobalPointAndUpdateTouchableHandle( pos, track.GetMomentumDirection(), touchableHandle, true); const G4VPhysicalVolume* newVolume = touchableHandle->GetVolume(); - if(newVolume == nullptr) - { + if (newVolume == nullptr) { postStepPoint.SetStepStatus(fWorldBoundary); } - else - { + else { postStepPoint.SetStepStatus(fGeomBoundary); } } - else - { + else { // Move the Navigator's location. fLinearNavigator->LocateGlobalPointWithinVolume(pos); } @@ -455,7 +406,7 @@ void TrackingManagerHelper::TrackChargedParticle(G4Track* aTrack, G4PropagatorInField* fFieldPropagator; G4SafetyHelper* fSafetyHelper; G4ThreeVector fSafetyOrigin; - G4double fSafety = 0; + G4double fSafety = 0; G4double fPostStepSafety = 0; G4double kCarTolerance; G4bool fGeometryLimitedStep; @@ -466,81 +417,70 @@ void TrackingManagerHelper::TrackChargedParticle(G4Track* aTrack, } template -void TrackingManagerHelper::TrackNeutralParticle(G4Track* aTrack, - PhysicsImpl& physics) +void TrackingManagerHelper::TrackNeutralParticle(G4Track* aTrack, PhysicsImpl& physics) { class NeutralNavigation final : public Navigation { public: NeutralNavigation() { - auto* transMgr = G4TransportationManager::GetTransportationManager(); + auto* transMgr = G4TransportationManager::GetTransportationManager(); fLinearNavigator = transMgr->GetNavigatorForTracking(); - fSafetyHelper = transMgr->GetSafetyHelper(); - kCarTolerance = - 0.5 * G4GeometryTolerance::GetInstance()->GetSurfaceTolerance(); + fSafetyHelper = transMgr->GetSafetyHelper(); + kCarTolerance = 0.5 * G4GeometryTolerance::GetInstance()->GetSurfaceTolerance(); } - G4double MakeStep(G4Track& track, G4Step& step, - G4double physicalStep) override + G4double MakeStep(G4Track& track, G4Step& step, G4double physicalStep) override { - G4ThreeVector pos = track.GetPosition(); - G4ThreeVector dir = track.GetMomentumDirection(); + G4ThreeVector pos = track.GetPosition(); + G4ThreeVector dir = track.GetMomentumDirection(); G4StepPoint& postStepPoint = *step.GetPostStepPoint(); - G4double safety = 0.0; + G4double safety = 0.0; const G4double shiftSquare = (pos - fSafetyOrigin).mag2(); - if(shiftSquare < sqr(fSafety)) - { + if (shiftSquare < sqr(fSafety)) { safety = fSafety - std::sqrt(shiftSquare); } fGeometryLimitedStep = false; - G4double linearStepLength = - fLinearNavigator->ComputeStep(pos, dir, physicalStep, safety); - if(linearStepLength < physicalStep) - { - physicalStep = linearStepLength; + G4double linearStepLength = fLinearNavigator->ComputeStep(pos, dir, physicalStep, safety); + if (linearStepLength < physicalStep) { + physicalStep = linearStepLength; fGeometryLimitedStep = true; } fSafetyHelper->SetCurrentSafety(safety, pos); fSafetyOrigin = pos; - fSafety = safety; + fSafety = safety; // Update the position. pos += physicalStep * dir; postStepPoint.SetPosition(pos); // Update global, local, and proper time. - double velocity = track.GetVelocity(); + double velocity = track.GetVelocity(); double deltaTime = 0; - if(velocity > 0) - { + if (velocity > 0) { deltaTime = physicalStep / velocity; } postStepPoint.AddGlobalTime(deltaTime); postStepPoint.AddLocalTime(deltaTime); - double restMass = track.GetDynamicParticle()->GetMass(); + double restMass = track.GetDynamicParticle()->GetMass(); double deltaProperTime = deltaTime * (restMass / track.GetTotalEnergy()); postStepPoint.AddProperTime(deltaProperTime); // Compute safety, but don't set the safety in the post-step point to // mimick the generic stepping loop. - if(safety > physicalStep) - { + if (safety > physicalStep) { safety -= physicalStep; } - else - { + else { safety = 0; } - if(safety < kCarTolerance) - { + if (safety < kCarTolerance) { fPostStepSafety = kCarTolerance; } - else - { + else { fPostStepSafety = safety; } @@ -554,25 +494,21 @@ void TrackingManagerHelper::TrackNeutralParticle(G4Track* aTrack, postStepPoint.SetSafety(fPostStepSafety); G4TouchableHandle touchableHandle = track.GetTouchableHandle(); - const G4ThreeVector& pos = track.GetPosition(); - if(fGeometryLimitedStep) - { + const G4ThreeVector& pos = track.GetPosition(); + if (fGeometryLimitedStep) { // Relocate the particle. fLinearNavigator->SetGeometricallyLimitedStep(); fLinearNavigator->LocateGlobalPointAndUpdateTouchableHandle( pos, track.GetMomentumDirection(), touchableHandle, true); const G4VPhysicalVolume* newVolume = touchableHandle->GetVolume(); - if(newVolume == nullptr) - { + if (newVolume == nullptr) { postStepPoint.SetStepStatus(fWorldBoundary); } - else - { + else { postStepPoint.SetStepStatus(fGeomBoundary); } } - else - { + else { // Move the Navigator's location. fLinearNavigator->LocateGlobalPointWithinVolume(pos); } @@ -585,7 +521,7 @@ void TrackingManagerHelper::TrackNeutralParticle(G4Track* aTrack, G4Navigator* fLinearNavigator; G4SafetyHelper* fSafetyHelper; G4ThreeVector fSafetyOrigin; - G4double fSafety = 0; + G4double fSafety = 0; G4double fPostStepSafety = 0; G4double kCarTolerance; G4bool fGeometryLimitedStep; diff --git a/examples/extended/runAndEvent/RE07/processes.out b/examples/extended/runAndEvent/RE07/processes.out index 3f84c68d8e..9d4d23108d 100644 --- a/examples/extended/runAndEvent/RE07/processes.out +++ b/examples/extended/runAndEvent/RE07/processes.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -64,15 +64,15 @@ Command is ignored. ------------------------------------------------------------ material Edep RMS sqrt(E0(GeV))*rmsE/Emean total tracklen - G4_Pb: 775.55 MeV : 16.21 MeV 2.09 +- 0.0661 % 54.8 cm +- 1.26 cm - G4_lAr: 214.33 MeV : 15.46 MeV 7.212 +- 0.2281 % 1.05 m +- 7.92 cm + G4_Pb: 775.16 MeV : 16.8 MeV 2.167 +- 0.06853 % 54.8 cm +- 1.27 cm + G4_lAr: 214.33 MeV : 15.48 MeV 7.224 +- 0.2284 % 1.05 m +- 7.92 cm ------------------------------------------------------------ Beam particle e- E = 1 GeV - Mean number of gamma 509 - Mean number of e- 868 + Mean number of gamma 508 + Mean number of e- 870 Mean number of e+ 53.5 - Mean number of charged steps 3667.62 - Mean number of neutral steps 3692.19 + Mean number of charged steps 3666.14 + Mean number of neutral steps 3691.55 ------------------------------------------------------------ diff --git a/examples/extended/runAndEvent/RE07/specialized.out b/examples/extended/runAndEvent/RE07/specialized.out index 4ee9cb1dca..d903e88a6e 100644 --- a/examples/extended/runAndEvent/RE07/specialized.out +++ b/examples/extended/runAndEvent/RE07/specialized.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -64,15 +64,15 @@ Command is ignored. ------------------------------------------------------------ material Edep RMS sqrt(E0(GeV))*rmsE/Emean total tracklen - G4_Pb: 774.24 MeV : 18.18 MeV 2.348 +- 0.07425 % 54.7 cm +- 1.4 cm - G4_lAr: 214.49 MeV : 15.96 MeV 7.441 +- 0.2353 % 1.06 m +- 8.16 cm + G4_Pb: 774.7 MeV : 20.7 MeV 2.672 +- 0.08451 % 54.7 cm +- 1.58 cm + G4_lAr: 213.2 MeV : 15.58 MeV 7.309 +- 0.2311 % 1.05 m +- 7.92 cm ------------------------------------------------------------ Beam particle e- E = 1 GeV Mean number of gamma 509 - Mean number of e- 868 - Mean number of e+ 53.7 - Mean number of charged steps 3665.78 - Mean number of neutral steps 3688.02 + Mean number of e- 871 + Mean number of e+ 53.6 + Mean number of charged steps 3655.39 + Mean number of neutral steps 3689.52 ------------------------------------------------------------ diff --git a/examples/extended/runAndEvent/RE07/src/ActionInitialization.cc b/examples/extended/runAndEvent/RE07/src/ActionInitialization.cc index cfcdf23ffd..b96fed1264 100644 --- a/examples/extended/runAndEvent/RE07/src/ActionInitialization.cc +++ b/examples/extended/runAndEvent/RE07/src/ActionInitialization.cc @@ -28,6 +28,7 @@ /// \brief Implementation of the ActionInitialization class #include "ActionInitialization.hh" + #include "DetectorConstruction.hh" #include "EventAction.hh" #include "PrimaryGeneratorAction.hh" @@ -38,8 +39,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... ActionInitialization::ActionInitialization(DetectorConstruction* det) - : G4VUserActionInitialization() - , fDetector(det) + : G4VUserActionInitialization(), fDetector(det) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,10 +48,7 @@ ActionInitialization::~ActionInitialization() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void ActionInitialization::BuildForMaster() const -{ - SetUserAction(new RunAction(fDetector)); -} +void ActionInitialization::BuildForMaster() const { SetUserAction(new RunAction(fDetector)); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/runAndEvent/RE07/src/DetectorConstruction.cc b/examples/extended/runAndEvent/RE07/src/DetectorConstruction.cc index 608402e2a1..8fa3626799 100644 --- a/examples/extended/runAndEvent/RE07/src/DetectorConstruction.cc +++ b/examples/extended/runAndEvent/RE07/src/DetectorConstruction.cc @@ -31,7 +31,6 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "DetectorConstruction.hh" -#include "DetectorMessenger.hh" #include "G4Box.hh" #include "G4LogicalVolume.hh" @@ -39,39 +38,39 @@ #include "G4NistManager.hh" #include "G4PVPlacement.hh" #include "G4PVReplica.hh" +#include "G4PhysicalConstants.hh" #include "G4ProductionCutsTable.hh" #include "G4Region.hh" - -#include "G4PhysicalConstants.hh" #include "G4RunManager.hh" #include "G4SystemOfUnits.hh" #include "G4UnitsTable.hh" +#include "DetectorMessenger.hh" + #include //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorConstruction::DetectorConstruction() - : fWorldMaterial(nullptr) - , fLogicWorld(nullptr) - , fPhysiWorld(nullptr) - , fLogicLayerFront(nullptr) - , fLogicLayerBack(nullptr) + : fWorldMaterial(nullptr), + fLogicWorld(nullptr), + fPhysiWorld(nullptr), + fLogicLayerFront(nullptr), + fLogicLayerBack(nullptr) { - for(G4int i = 0; i < kMaxAbsor; ++i) - { - fAbsorMaterial[i] = nullptr; - fAbsorThickness[i] = 0.0; + for (G4int i = 0; i < kMaxAbsor; ++i) { + fAbsorMaterial[i] = nullptr; + fAbsorThickness[i] = 0.0; fLogicAbsorFront[i] = nullptr; - fLogicAbsorBack[i] = nullptr; + fLogicAbsorBack[i] = nullptr; } // default parameter values of the calorimeter - fNbOfAbsor = 2; + fNbOfAbsor = 2; fAbsorThickness[1] = 2.3 * mm; fAbsorThickness[2] = 5.7 * mm; - fNbOfLayers = 50; - fCalorSizeYZ = 40. * cm; + fNbOfLayers = 50; + fCalorSizeYZ = 40. * cm; ComputeCalorParameters(); // materials @@ -89,21 +88,19 @@ void DetectorConstruction::ComputeCalorParameters() { // Compute derived parameters of the calorimeter fLayerThickness = 0.; - for(G4int iAbs = 1; iAbs <= fNbOfAbsor; iAbs++) - { + for (G4int iAbs = 1; iAbs <= fNbOfAbsor; iAbs++) { fLayerThickness += fAbsorThickness[iAbs]; } fCalorThickness = fNbOfLayers * fLayerThickness; - fWorldSizeX = 1.2 * fCalorThickness; - fWorldSizeYZ = 1.2 * fCalorSizeYZ; + fWorldSizeX = 1.2 * fCalorThickness; + fWorldSizeYZ = 1.2 * fCalorSizeYZ; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4VPhysicalVolume* DetectorConstruction::Construct() { - if(fPhysiWorld) - { + if (fPhysiWorld) { return fPhysiWorld; } // complete the Calor parameters definition @@ -113,62 +110,55 @@ G4VPhysicalVolume* DetectorConstruction::Construct() // World // auto* solidWorld = new G4Box("World", // its name - fWorldSizeX / 2, fWorldSizeYZ / 2, - fWorldSizeYZ / 2); // its size + fWorldSizeX / 2, fWorldSizeYZ / 2, + fWorldSizeYZ / 2); // its size - fLogicWorld = new G4LogicalVolume(solidWorld, // its solid - fWorldMaterial, // its material - "World"); // its name + fLogicWorld = new G4LogicalVolume(solidWorld, // its solid + fWorldMaterial, // its material + "World"); // its name - fPhysiWorld = new G4PVPlacement(0, // no rotation - G4ThreeVector(), // at (0,0,0) - fLogicWorld, // its fLogical volume - "World", // its name - 0, // its mother volume - false, // no boolean operation - 0); // copy number + fPhysiWorld = new G4PVPlacement(0, // no rotation + G4ThreeVector(), // at (0,0,0) + fLogicWorld, // its fLogical volume + "World", // its name + 0, // its mother volume + false, // no boolean operation + 0); // copy number // // Calorimeter // - auto* solidCalor = new G4Box("Calorimeter", fCalorThickness / 2, - fCalorSizeYZ / 2, fCalorSizeYZ / 2); + auto* solidCalor = + new G4Box("Calorimeter", fCalorThickness / 2, fCalorSizeYZ / 2, fCalorSizeYZ / 2); - auto* logicCalor = - new G4LogicalVolume(solidCalor, fWorldMaterial, "Calorimeter"); + auto* logicCalor = new G4LogicalVolume(solidCalor, fWorldMaterial, "Calorimeter"); - new G4PVPlacement(0, // no rotation - G4ThreeVector(), // at (0,0,0) - logicCalor, // its fLogical volume - "Calorimeter", // its name - fLogicWorld, // its mother volume - false, // no boolean operation - 0); // copy number + new G4PVPlacement(0, // no rotation + G4ThreeVector(), // at (0,0,0) + logicCalor, // its fLogical volume + "Calorimeter", // its name + fLogicWorld, // its mother volume + false, // no boolean operation + 0); // copy number // // Layers // - auto* solidLayer = - new G4Box("Layer", fLayerThickness / 2, fCalorSizeYZ / 2, fCalorSizeYZ / 2); + auto* solidLayer = new G4Box("Layer", fLayerThickness / 2, fCalorSizeYZ / 2, fCalorSizeYZ / 2); - fLogicLayerFront = - new G4LogicalVolume(solidLayer, fWorldMaterial, "Layer-front"); - fLogicLayerBack = - new G4LogicalVolume(solidLayer, fWorldMaterial, "Layer-back"); + fLogicLayerFront = new G4LogicalVolume(solidLayer, fWorldMaterial, "Layer-front"); + fLogicLayerBack = new G4LogicalVolume(solidLayer, fWorldMaterial, "Layer-back"); G4double xfront = -0.5 * fCalorThickness; - for(G4int l = 0; l < fNbOfLayers; ++l) - { + for (G4int l = 0; l < fNbOfLayers; ++l) { G4double xcenter = xfront + 0.5 * fLayerThickness; xfront += fLayerThickness; G4LogicalVolume* logicLayer = fLogicLayerFront; - if(xcenter > 0) - { + if (xcenter > 0) { logicLayer = fLogicLayerBack; } - new G4PVPlacement(0, G4ThreeVector(xcenter, 0, 0), logicLayer, "Layer", - logicCalor, false, l); + new G4PVPlacement(0, G4ThreeVector(xcenter, 0, 0), logicLayer, "Layer", logicCalor, false, l); } // @@ -176,12 +166,12 @@ G4VPhysicalVolume* DetectorConstruction::Construct() // auto* regionFront = new G4Region("Front"); - regionFront->SetProductionCuts(G4ProductionCutsTable::GetProductionCutsTable() - ->GetDefaultProductionCuts()); + regionFront->SetProductionCuts( + G4ProductionCutsTable::GetProductionCutsTable()->GetDefaultProductionCuts()); regionFront->AddRootLogicalVolume(fLogicLayerFront); auto* regionBack = new G4Region("Back"); - regionBack->SetProductionCuts(G4ProductionCutsTable::GetProductionCutsTable() - ->GetDefaultProductionCuts()); + regionBack->SetProductionCuts( + G4ProductionCutsTable::GetProductionCutsTable()->GetDefaultProductionCuts()); regionBack->AddRootLogicalVolume(fLogicLayerBack); // @@ -189,28 +179,25 @@ G4VPhysicalVolume* DetectorConstruction::Construct() // xfront = -0.5 * fLayerThickness; - for(G4int k = 1; k <= fNbOfAbsor; ++k) - { - auto* solidAbsor = - new G4Box("Absorber", // its name - fAbsorThickness[k] / 2, fCalorSizeYZ / 2, fCalorSizeYZ / 2); + for (G4int k = 1; k <= fNbOfAbsor; ++k) { + auto* solidAbsor = new G4Box("Absorber", // its name + fAbsorThickness[k] / 2, fCalorSizeYZ / 2, fCalorSizeYZ / 2); - fLogicAbsorFront[k] = - new G4LogicalVolume(solidAbsor, // its solid - fAbsorMaterial[k], // its material - fAbsorMaterial[k]->GetName()); - fLogicAbsorBack[k] = new G4LogicalVolume(solidAbsor, // its solid - fAbsorMaterial[k], // its material - fAbsorMaterial[k]->GetName()); + fLogicAbsorFront[k] = new G4LogicalVolume(solidAbsor, // its solid + fAbsorMaterial[k], // its material + fAbsorMaterial[k]->GetName()); + fLogicAbsorBack[k] = new G4LogicalVolume(solidAbsor, // its solid + fAbsorMaterial[k], // its material + fAbsorMaterial[k]->GetName()); G4double xcenter = xfront + 0.5 * fAbsorThickness[k]; xfront += fAbsorThickness[k]; new G4PVPlacement(0, G4ThreeVector(xcenter, 0., 0.), fLogicAbsorFront[k], - fAbsorMaterial[k]->GetName(), fLogicLayerFront, false, - k); // copy number + fAbsorMaterial[k]->GetName(), fLogicLayerFront, false, + k); // copy number new G4PVPlacement(0, G4ThreeVector(xcenter, 0., 0.), fLogicAbsorBack[k], - fAbsorMaterial[k]->GetName(), fLogicLayerBack, false, - k); // copy number + fAbsorMaterial[k]->GetName(), fLogicLayerBack, false, + k); // copy number } PrintCalorParameters(); @@ -226,16 +213,14 @@ void DetectorConstruction::PrintCalorParameters() { G4cout << "\n-------------------------------------------------------------" << "\n ---> The calorimeter is " << fNbOfLayers << " layers of:"; - for(G4int i = 1; i <= fNbOfAbsor; ++i) - { - G4cout << "\n \t" << std::setw(12) << fAbsorMaterial[i]->GetName() << ": " - << std::setw(6) << G4BestUnit(fAbsorThickness[i], "Length"); + for (G4int i = 1; i <= fNbOfAbsor; ++i) { + G4cout << "\n \t" << std::setw(12) << fAbsorMaterial[i]->GetName() << ": " << std::setw(6) + << G4BestUnit(fAbsorThickness[i], "Length"); } G4cout << "\n-------------------------------------------------------------\n"; G4cout << "\n" << fWorldMaterial << G4endl; - for(G4int j = 1; j <= fNbOfAbsor; ++j) - { + for (G4int j = 1; j <= fNbOfAbsor; ++j) { G4cout << "\n" << fAbsorMaterial[j] << G4endl; } G4cout << "\n-------------------------------------------------------------\n"; @@ -246,13 +231,10 @@ void DetectorConstruction::PrintCalorParameters() void DetectorConstruction::SetWorldMaterial(const G4String& material) { // search the material by its name - G4Material* pttoMaterial = - G4NistManager::Instance()->FindOrBuildMaterial(material); - if(pttoMaterial) - { + G4Material* pttoMaterial = G4NistManager::Instance()->FindOrBuildMaterial(material); + if (pttoMaterial) { fWorldMaterial = pttoMaterial; - if(fLogicWorld) - { + if (fLogicWorld) { fLogicWorld->SetMaterial(fWorldMaterial); fLogicLayerFront->SetMaterial(fWorldMaterial); fLogicLayerBack->SetMaterial(fWorldMaterial); @@ -267,8 +249,7 @@ void DetectorConstruction::SetNbOfLayers(G4int ival) { // set the number of Layers // - if(ival < 2) - { + if (ival < 2) { G4cout << "\n --->warning from SetfNbOfLayers: " << ival << " must be at least 2. Command refused" << G4endl; return; @@ -282,11 +263,9 @@ void DetectorConstruction::SetNbOfAbsor(G4int ival) { // set the number of Absorbers // - if(ival < 1 || ival > (kMaxAbsor - 1)) - { - G4cout << "\n ---> warning from SetfNbOfAbsor: " << ival - << " must be at least 1 and and most " << kMaxAbsor - 1 - << ". Command refused" << G4endl; + if (ival < 1 || ival > (kMaxAbsor - 1)) { + G4cout << "\n ---> warning from SetfNbOfAbsor: " << ival << " must be at least 1 and and most " + << kMaxAbsor - 1 << ". Command refused" << G4endl; return; } fNbOfAbsor = ival; @@ -294,25 +273,20 @@ void DetectorConstruction::SetNbOfAbsor(G4int ival) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetAbsorMaterial(G4int ival, - const G4String& material) +void DetectorConstruction::SetAbsorMaterial(G4int ival, const G4String& material) { // search the material by its name // - if(ival > fNbOfAbsor || ival <= 0) - { + if (ival > fNbOfAbsor || ival <= 0) { G4cout << "\n --->warning from SetAbsorMaterial: absor number " << ival << " out of range. Command refused" << G4endl; return; } - G4Material* pttoMaterial = - G4NistManager::Instance()->FindOrBuildMaterial(material); - if(pttoMaterial) - { + G4Material* pttoMaterial = G4NistManager::Instance()->FindOrBuildMaterial(material); + if (pttoMaterial) { fAbsorMaterial[ival] = pttoMaterial; - if(fLogicAbsorFront[ival]) - { + if (fLogicAbsorFront[ival]) { fLogicAbsorFront[ival]->SetMaterial(pttoMaterial); fLogicAbsorBack[ival]->SetMaterial(pttoMaterial); G4RunManager::GetRunManager()->PhysicsHasBeenModified(); @@ -326,14 +300,12 @@ void DetectorConstruction::SetAbsorThickness(G4int ival, G4double val) { // change Absorber thickness // - if(ival > fNbOfAbsor || ival <= 0) - { + if (ival > fNbOfAbsor || ival <= 0) { G4cout << "\n --->warning from SetAbsorThickness: absor number " << ival << " out of range. Command refused" << G4endl; return; } - if(val <= DBL_MIN) - { + if (val <= DBL_MIN) { G4cout << "\n --->warning from SetAbsorThickness: thickness " << val << " out of range. Command refused" << G4endl; return; @@ -347,8 +319,7 @@ void DetectorConstruction::SetCalorSizeYZ(G4double val) { // change the transverse size // - if(val <= DBL_MIN) - { + if (val <= DBL_MIN) { G4cout << "\n --->warning from SetfCalorSizeYZ: thickness " << val << " out of range. Command refused" << G4endl; return; @@ -363,12 +334,11 @@ void DetectorConstruction::SetCalorSizeYZ(G4double val) void DetectorConstruction::ConstructSDandField() { - if(fFieldMessenger.Get() == nullptr) - { + if (fFieldMessenger.Get() == nullptr) { // Create global magnetic field messenger. // Uniform magnetic field is then created automatically if // the field value is not zero. - G4ThreeVector fieldValue = G4ThreeVector(); + G4ThreeVector fieldValue = G4ThreeVector(); G4GlobalMagFieldMessenger* msg = new G4GlobalMagFieldMessenger(fieldValue); // msg->SetVerboseLevel(1); G4AutoDelete::Register(msg); diff --git a/examples/extended/runAndEvent/RE07/src/DetectorMessenger.cc b/examples/extended/runAndEvent/RE07/src/DetectorMessenger.cc index d7dfbb4879..92a007f996 100644 --- a/examples/extended/runAndEvent/RE07/src/DetectorMessenger.cc +++ b/examples/extended/runAndEvent/RE07/src/DetectorMessenger.cc @@ -32,9 +32,6 @@ #include "DetectorMessenger.hh" -#include - -#include "DetectorConstruction.hh" #include "G4UIcmdWithADoubleAndUnit.hh" #include "G4UIcmdWithAnInteger.hh" #include "G4UIcmdWithoutParameter.hh" @@ -42,11 +39,13 @@ #include "G4UIdirectory.hh" #include "G4UIparameter.hh" +#include "DetectorConstruction.hh" + +#include + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -DetectorMessenger::DetectorMessenger(DetectorConstruction* Det) - : G4UImessenger() - , fDetector(Det) +DetectorMessenger::DetectorMessenger(DetectorConstruction* Det) : G4UImessenger(), fDetector(Det) { fDetDir.reset(new G4UIdirectory("/det/")); fDetDir->SetGuidance("detector construction commands"); @@ -111,20 +110,16 @@ DetectorMessenger::~DetectorMessenger() = default; void DetectorMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { - if(command == fSizeYZCmd.get()) - { + if (command == fSizeYZCmd.get()) { fDetector->SetCalorSizeYZ(fSizeYZCmd->GetNewDoubleValue(newValue)); } - else if(command == fNbLayersCmd.get()) - { + else if (command == fNbLayersCmd.get()) { fDetector->SetNbOfLayers(fNbLayersCmd->GetNewIntValue(newValue)); } - else if(command == fNbAbsorCmd.get()) - { + else if (command == fNbAbsorCmd.get()) { fDetector->SetNbOfAbsor(fNbAbsorCmd->GetNewIntValue(newValue)); } - else if(command == fAbsorCmd.get()) - { + else if (command == fAbsorCmd.get()) { G4int num; G4double tick; G4String unt, mat; diff --git a/examples/extended/runAndEvent/RE07/src/EmStandardPhysicsTrackingManager.cc b/examples/extended/runAndEvent/RE07/src/EmStandardPhysicsTrackingManager.cc index 3c2a461321..5ace36e59a 100644 --- a/examples/extended/runAndEvent/RE07/src/EmStandardPhysicsTrackingManager.cc +++ b/examples/extended/runAndEvent/RE07/src/EmStandardPhysicsTrackingManager.cc @@ -29,9 +29,21 @@ // Original author: Jonas Hahnfeld, 2021 #include "EmStandardPhysicsTrackingManager.hh" -#include "TrackingManagerHelper.hh" +#include "G4ComptonScattering.hh" #include "G4CoulombScattering.hh" +#include "G4Electron.hh" +#include "G4EmParameters.hh" +#include "G4Gamma.hh" +#include "G4GammaConversion.hh" +#include "G4KleinNishinaModel.hh" +#include "G4LivermorePhotoElectricModel.hh" +#include "G4LivermorePolarizedRayleighModel.hh" +#include "G4PhotoElectricAngularGeneratorPolarized.hh" +#include "G4PhotoElectricEffect.hh" +#include "G4Positron.hh" +#include "G4RayleighScattering.hh" +#include "G4SystemOfUnits.hh" #include "G4UrbanMscModel.hh" #include "G4WentzelVIModel.hh" #include "G4eBremsstrahlung.hh" @@ -40,46 +52,32 @@ #include "G4eMultipleScattering.hh" #include "G4eplusAnnihilation.hh" -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4KleinNishinaModel.hh" -#include "G4LivermorePhotoElectricModel.hh" -#include "G4LivermorePolarizedRayleighModel.hh" -#include "G4PhotoElectricAngularGeneratorPolarized.hh" -#include "G4PhotoElectricEffect.hh" -#include "G4RayleighScattering.hh" +#include "TrackingManagerHelper.hh" -#include "G4EmParameters.hh" -#include "G4SystemOfUnits.hh" - -#include "G4Electron.hh" -#include "G4Gamma.hh" -#include "G4Positron.hh" - -EmStandardPhysicsTrackingManager* - EmStandardPhysicsTrackingManager::masterTrackingManager = nullptr; +EmStandardPhysicsTrackingManager* EmStandardPhysicsTrackingManager::fMasterTrackingManager = + nullptr; EmStandardPhysicsTrackingManager::EmStandardPhysicsTrackingManager() { - G4EmParameters* param = G4EmParameters::Instance(); + G4EmParameters* param = G4EmParameters::Instance(); G4double highEnergyLimit = param->MscEnergyLimit(); - G4bool polar = param->EnablePolarisation(); + G4bool polar = param->EnablePolarisation(); // e- { G4eMultipleScattering* msc = new G4eMultipleScattering; - G4UrbanMscModel* msc1 = new G4UrbanMscModel; - G4WentzelVIModel* msc2 = new G4WentzelVIModel; + G4UrbanMscModel* msc1 = new G4UrbanMscModel; + G4WentzelVIModel* msc2 = new G4WentzelVIModel; msc1->SetHighEnergyLimit(highEnergyLimit); msc2->SetLowEnergyLimit(highEnergyLimit); msc->SetEmModel(msc1); msc->SetEmModel(msc2); fElectronProcs.msc = msc; - fElectronProcs.ioni = new G4eIonisation; + fElectronProcs.ioni = new G4eIonisation; fElectronProcs.brems = new G4eBremsstrahlung; - G4CoulombScattering* ss = new G4CoulombScattering; + G4CoulombScattering* ss = new G4CoulombScattering; G4eCoulombScatteringModel* ssm = new G4eCoulombScatteringModel; ssm->SetLowEnergyLimit(highEnergyLimit); ssm->SetActivationLowEnergyLimit(highEnergyLimit); @@ -91,19 +89,19 @@ EmStandardPhysicsTrackingManager::EmStandardPhysicsTrackingManager() // e+ { G4eMultipleScattering* msc = new G4eMultipleScattering; - G4UrbanMscModel* msc1 = new G4UrbanMscModel; - G4WentzelVIModel* msc2 = new G4WentzelVIModel; + G4UrbanMscModel* msc1 = new G4UrbanMscModel; + G4WentzelVIModel* msc2 = new G4WentzelVIModel; msc1->SetHighEnergyLimit(highEnergyLimit); msc2->SetLowEnergyLimit(highEnergyLimit); msc->SetEmModel(msc1); msc->SetEmModel(msc2); fPositronProcs.msc = msc; - fPositronProcs.ioni = new G4eIonisation; - fPositronProcs.brems = new G4eBremsstrahlung; + fPositronProcs.ioni = new G4eIonisation; + fPositronProcs.brems = new G4eBremsstrahlung; fPositronProcs.annihilation = new G4eplusAnnihilation; - G4CoulombScattering* ss = new G4CoulombScattering; + G4CoulombScattering* ss = new G4CoulombScattering; G4eCoulombScatteringModel* ssm = new G4eCoulombScatteringModel; ssm->SetLowEnergyLimit(highEnergyLimit); ssm->SetActivationLowEnergyLimit(highEnergyLimit); @@ -114,18 +112,15 @@ EmStandardPhysicsTrackingManager::EmStandardPhysicsTrackingManager() { G4PhotoElectricEffect* pe = new G4PhotoElectricEffect; - G4VEmModel* peModel = new G4LivermorePhotoElectricModel; - if(polar) - { - peModel->SetAngularDistribution( - new G4PhotoElectricAngularGeneratorPolarized); + G4VEmModel* peModel = new G4LivermorePhotoElectricModel; + if (polar) { + peModel->SetAngularDistribution(new G4PhotoElectricAngularGeneratorPolarized); } pe->SetEmModel(peModel); fGammaProcs.pe = pe; G4ComptonScattering* cs = new G4ComptonScattering; - if(polar) - { + if (polar) { cs->SetEmModel(new G4KleinNishinaModel); } fGammaProcs.compton = cs; @@ -133,77 +128,58 @@ EmStandardPhysicsTrackingManager::EmStandardPhysicsTrackingManager() fGammaProcs.conversion = new G4GammaConversion; G4RayleighScattering* rl = new G4RayleighScattering; - if(polar) - { + if (polar) { rl->SetEmModel(new G4LivermorePolarizedRayleighModel); } fGammaProcs.rayleigh = rl; } - if(masterTrackingManager == nullptr) - { - masterTrackingManager = this; + if (fMasterTrackingManager == nullptr) { + fMasterTrackingManager = this; } - else - { - fElectronProcs.msc->SetMasterProcess( - masterTrackingManager->fElectronProcs.msc); - fElectronProcs.ss->SetMasterProcess( - masterTrackingManager->fElectronProcs.ss); - fElectronProcs.ioni->SetMasterProcess( - masterTrackingManager->fElectronProcs.ioni); - fElectronProcs.brems->SetMasterProcess( - masterTrackingManager->fElectronProcs.brems); + else { + fElectronProcs.msc->SetMasterProcess(fMasterTrackingManager->fElectronProcs.msc); + fElectronProcs.ss->SetMasterProcess(fMasterTrackingManager->fElectronProcs.ss); + fElectronProcs.ioni->SetMasterProcess(fMasterTrackingManager->fElectronProcs.ioni); + fElectronProcs.brems->SetMasterProcess(fMasterTrackingManager->fElectronProcs.brems); - fPositronProcs.msc->SetMasterProcess( - masterTrackingManager->fPositronProcs.msc); - fPositronProcs.ss->SetMasterProcess( - masterTrackingManager->fPositronProcs.ss); - fPositronProcs.ioni->SetMasterProcess( - masterTrackingManager->fPositronProcs.ioni); - fPositronProcs.brems->SetMasterProcess( - masterTrackingManager->fPositronProcs.brems); + fPositronProcs.msc->SetMasterProcess(fMasterTrackingManager->fPositronProcs.msc); + fPositronProcs.ss->SetMasterProcess(fMasterTrackingManager->fPositronProcs.ss); + fPositronProcs.ioni->SetMasterProcess(fMasterTrackingManager->fPositronProcs.ioni); + fPositronProcs.brems->SetMasterProcess(fMasterTrackingManager->fPositronProcs.brems); fPositronProcs.annihilation->SetMasterProcess( - masterTrackingManager->fPositronProcs.annihilation); + fMasterTrackingManager->fPositronProcs.annihilation); - fGammaProcs.pe->SetMasterProcess(masterTrackingManager->fGammaProcs.pe); - fGammaProcs.compton->SetMasterProcess( - masterTrackingManager->fGammaProcs.compton); - fGammaProcs.conversion->SetMasterProcess( - masterTrackingManager->fGammaProcs.conversion); - fGammaProcs.rayleigh->SetMasterProcess( - masterTrackingManager->fGammaProcs.rayleigh); + fGammaProcs.pe->SetMasterProcess(fMasterTrackingManager->fGammaProcs.pe); + fGammaProcs.compton->SetMasterProcess(fMasterTrackingManager->fGammaProcs.compton); + fGammaProcs.conversion->SetMasterProcess(fMasterTrackingManager->fGammaProcs.conversion); + fGammaProcs.rayleigh->SetMasterProcess(fMasterTrackingManager->fGammaProcs.rayleigh); } } EmStandardPhysicsTrackingManager::~EmStandardPhysicsTrackingManager() { - if(masterTrackingManager == this) - { - masterTrackingManager = nullptr; + if (fMasterTrackingManager == this) { + fMasterTrackingManager = nullptr; } } -void EmStandardPhysicsTrackingManager::BuildPhysicsTable( - const G4ParticleDefinition& part) +void EmStandardPhysicsTrackingManager::BuildPhysicsTable(const G4ParticleDefinition& part) { - if(&part == G4Electron::Definition()) - { + if (&part == G4Electron::Definition()) { fElectronProcs.msc->BuildPhysicsTable(part); fElectronProcs.ioni->BuildPhysicsTable(part); fElectronProcs.brems->BuildPhysicsTable(part); fElectronProcs.ss->BuildPhysicsTable(part); } - else if(&part == G4Positron::Definition()) - { + else if (&part == G4Positron::Definition()) { fPositronProcs.msc->BuildPhysicsTable(part); fPositronProcs.ioni->BuildPhysicsTable(part); fPositronProcs.brems->BuildPhysicsTable(part); fPositronProcs.annihilation->BuildPhysicsTable(part); fPositronProcs.ss->BuildPhysicsTable(part); } - else if(&part == G4Gamma::Definition()) - { + else if (&part == G4Gamma::Definition()) { fGammaProcs.pe->BuildPhysicsTable(part); fGammaProcs.compton->BuildPhysicsTable(part); fGammaProcs.conversion->BuildPhysicsTable(part); @@ -211,26 +187,22 @@ void EmStandardPhysicsTrackingManager::BuildPhysicsTable( } } -void EmStandardPhysicsTrackingManager::PreparePhysicsTable( - const G4ParticleDefinition& part) +void EmStandardPhysicsTrackingManager::PreparePhysicsTable(const G4ParticleDefinition& part) { - if(&part == G4Electron::Definition()) - { + if (&part == G4Electron::Definition()) { fElectronProcs.msc->PreparePhysicsTable(part); fElectronProcs.ioni->PreparePhysicsTable(part); fElectronProcs.brems->PreparePhysicsTable(part); fElectronProcs.ss->PreparePhysicsTable(part); } - else if(&part == G4Positron::Definition()) - { + else if (&part == G4Positron::Definition()) { fPositronProcs.msc->PreparePhysicsTable(part); fPositronProcs.ioni->PreparePhysicsTable(part); fPositronProcs.brems->PreparePhysicsTable(part); fPositronProcs.annihilation->PreparePhysicsTable(part); fPositronProcs.ss->PreparePhysicsTable(part); } - else if(&part == G4Gamma::Definition()) - { + else if (&part == G4Gamma::Definition()) { fGammaProcs.pe->PreparePhysicsTable(part); fGammaProcs.compton->PreparePhysicsTable(part); fGammaProcs.conversion->PreparePhysicsTable(part); @@ -243,9 +215,7 @@ void EmStandardPhysicsTrackingManager::TrackElectron(G4Track* aTrack) class ElectronPhysics final : public TrackingManagerHelper::Physics { public: - ElectronPhysics(EmStandardPhysicsTrackingManager& mgr) - : fMgr(mgr) - {} + ElectronPhysics(EmStandardPhysicsTrackingManager& mgr) : fMgr(mgr) {} void StartTracking(G4Track* aTrack) override { @@ -276,49 +246,40 @@ void EmStandardPhysicsTrackingManager::TrackElectron(G4Track* aTrack) G4GPILSelection selection; fProposedStep = DBL_MAX; - fSelected = -1; + fSelected = -1; - physIntLength = - electronProcs.ss->PostStepGPIL(track, fPreviousStepLength, &condition); - if(physIntLength < fProposedStep) - { + physIntLength = electronProcs.ss->PostStepGPIL(track, fPreviousStepLength, &condition); + if (physIntLength < fProposedStep) { fProposedStep = physIntLength; - fSelected = 0; + fSelected = 0; } - physIntLength = electronProcs.brems->PostStepGPIL( - track, fPreviousStepLength, &condition); - if(physIntLength < fProposedStep) - { + physIntLength = electronProcs.brems->PostStepGPIL(track, fPreviousStepLength, &condition); + if (physIntLength < fProposedStep) { fProposedStep = physIntLength; - fSelected = 1; + fSelected = 1; } - physIntLength = electronProcs.ioni->PostStepGPIL( - track, fPreviousStepLength, &condition); - if(physIntLength < fProposedStep) - { + physIntLength = electronProcs.ioni->PostStepGPIL(track, fPreviousStepLength, &condition); + if (physIntLength < fProposedStep) { fProposedStep = physIntLength; - fSelected = 2; + fSelected = 2; } physIntLength = electronProcs.ioni->AlongStepGPIL( track, fPreviousStepLength, fProposedStep, proposedSafety, &selection); - if(physIntLength < fProposedStep) - { + if (physIntLength < fProposedStep) { fProposedStep = physIntLength; - fSelected = -1; + fSelected = -1; } physIntLength = electronProcs.msc->AlongStepGPIL( track, fPreviousStepLength, fProposedStep, proposedSafety, &selection); - if(physIntLength < fProposedStep) - { + if (physIntLength < fProposedStep) { fProposedStep = physIntLength; // Check if MSC actually wants to win, in most cases it only limits the // step size. - if(selection == CandidateForSelection) - { + if (selection == CandidateForSelection) { fSelected = -1; } } @@ -328,12 +289,10 @@ void EmStandardPhysicsTrackingManager::TrackElectron(G4Track* aTrack) void AlongStepDoIt(G4Track& track, G4Step& step, G4TrackVector&) override { - if(step.GetStepLength() == fProposedStep) - { + if (step.GetStepLength() == fProposedStep) { step.GetPostStepPoint()->SetStepStatus(fAlongStepDoItProc); } - else - { + else { // Remember that the step was limited by geometry. fSelected = -1; } @@ -353,31 +312,28 @@ void EmStandardPhysicsTrackingManager::TrackElectron(G4Track* aTrack) fPreviousStepLength = step.GetStepLength(); } - void PostStepDoIt(G4Track& track, G4Step& step, - G4TrackVector& secondaries) override + void PostStepDoIt(G4Track& track, G4Step& step, G4TrackVector& secondaries) override { - if(fSelected < 0) - { + if (fSelected < 0) { return; } step.GetPostStepPoint()->SetStepStatus(fPostStepDoItProc); - auto& electronProcs = fMgr.fElectronProcs; - G4VProcess* process = nullptr; + auto& electronProcs = fMgr.fElectronProcs; + G4VProcess* process = nullptr; G4VParticleChange* particleChange = nullptr; - switch(fSelected) - { + switch (fSelected) { case 0: - process = electronProcs.ss; + process = electronProcs.ss; particleChange = electronProcs.ss->PostStepDoIt(track, step); break; case 1: - process = electronProcs.brems; + process = electronProcs.brems; particleChange = electronProcs.brems->PostStepDoIt(track, step); break; case 2: - process = electronProcs.ioni; + process = electronProcs.ioni; particleChange = electronProcs.ioni->PostStepDoIt(track, step); break; } @@ -386,8 +342,7 @@ void EmStandardPhysicsTrackingManager::TrackElectron(G4Track* aTrack) step.UpdateTrack(); int numSecondaries = particleChange->GetNumberOfSecondaries(); - for(int i = 0; i < numSecondaries; i++) - { + for (int i = 0; i < numSecondaries; i++) { G4Track* secondary = particleChange->GetSecondary(i); secondary->SetParentID(track.GetTrackID()); secondary->SetCreatorProcess(process); @@ -414,9 +369,7 @@ void EmStandardPhysicsTrackingManager::TrackPositron(G4Track* aTrack) class PositronPhysics final : public TrackingManagerHelper::Physics { public: - PositronPhysics(EmStandardPhysicsTrackingManager& mgr) - : fMgr(mgr) - {} + PositronPhysics(EmStandardPhysicsTrackingManager& mgr) : fMgr(mgr) {} void StartTracking(G4Track* aTrack) override { @@ -449,57 +402,47 @@ void EmStandardPhysicsTrackingManager::TrackPositron(G4Track* aTrack) G4GPILSelection selection; fProposedStep = DBL_MAX; - fSelected = -1; + fSelected = -1; + + physIntLength = positronProcs.ss->PostStepGPIL(track, fPreviousStepLength, &condition); + if (physIntLength < fProposedStep) { + fProposedStep = physIntLength; + fSelected = 0; + } physIntLength = - positronProcs.ss->PostStepGPIL(track, fPreviousStepLength, &condition); - if(physIntLength < fProposedStep) - { + positronProcs.annihilation->PostStepGPIL(track, fPreviousStepLength, &condition); + if (physIntLength < fProposedStep) { fProposedStep = physIntLength; - fSelected = 0; + fSelected = 1; } - physIntLength = positronProcs.annihilation->PostStepGPIL( - track, fPreviousStepLength, &condition); - if(physIntLength < fProposedStep) - { + physIntLength = positronProcs.brems->PostStepGPIL(track, fPreviousStepLength, &condition); + if (physIntLength < fProposedStep) { fProposedStep = physIntLength; - fSelected = 1; + fSelected = 2; } - physIntLength = positronProcs.brems->PostStepGPIL( - track, fPreviousStepLength, &condition); - if(physIntLength < fProposedStep) - { + physIntLength = positronProcs.ioni->PostStepGPIL(track, fPreviousStepLength, &condition); + if (physIntLength < fProposedStep) { fProposedStep = physIntLength; - fSelected = 2; - } - - physIntLength = positronProcs.ioni->PostStepGPIL( - track, fPreviousStepLength, &condition); - if(physIntLength < fProposedStep) - { - fProposedStep = physIntLength; - fSelected = 3; + fSelected = 3; } physIntLength = positronProcs.ioni->AlongStepGPIL( track, fPreviousStepLength, fProposedStep, proposedSafety, &selection); - if(physIntLength < fProposedStep) - { + if (physIntLength < fProposedStep) { fProposedStep = physIntLength; - fSelected = -1; + fSelected = -1; } physIntLength = positronProcs.msc->AlongStepGPIL( track, fPreviousStepLength, fProposedStep, proposedSafety, &selection); - if(physIntLength < fProposedStep) - { + if (physIntLength < fProposedStep) { fProposedStep = physIntLength; // Check if MSC actually wants to win, in most cases it only limits the // step size. - if(selection == CandidateForSelection) - { + if (selection == CandidateForSelection) { fSelected = -1; } } @@ -509,12 +452,10 @@ void EmStandardPhysicsTrackingManager::TrackPositron(G4Track* aTrack) void AlongStepDoIt(G4Track& track, G4Step& step, G4TrackVector&) override { - if(step.GetStepLength() == fProposedStep) - { + if (step.GetStepLength() == fProposedStep) { step.GetPostStepPoint()->SetStepStatus(fAlongStepDoItProc); } - else - { + else { // Remember that the step was limited by geometry. fSelected = -1; } @@ -534,11 +475,9 @@ void EmStandardPhysicsTrackingManager::TrackPositron(G4Track* aTrack) fPreviousStepLength = step.GetStepLength(); } - void PostStepDoIt(G4Track& track, G4Step& step, - G4TrackVector& secondaries) override + void PostStepDoIt(G4Track& track, G4Step& step, G4TrackVector& secondaries) override { - if(fSelected < 0) - { + if (fSelected < 0) { return; } step.GetPostStepPoint()->SetStepStatus(fPostStepDoItProc); @@ -547,23 +486,21 @@ void EmStandardPhysicsTrackingManager::TrackPositron(G4Track* aTrack) G4VProcess* process; G4VParticleChange* particleChange = nullptr; - switch(fSelected) - { + switch (fSelected) { case 0: - process = positronProcs.ss; + process = positronProcs.ss; particleChange = positronProcs.ss->PostStepDoIt(track, step); break; case 1: process = positronProcs.annihilation; - particleChange = - positronProcs.annihilation->PostStepDoIt(track, step); + particleChange = positronProcs.annihilation->PostStepDoIt(track, step); break; case 2: - process = positronProcs.brems; + process = positronProcs.brems; particleChange = positronProcs.brems->PostStepDoIt(track, step); break; case 3: - process = positronProcs.ioni; + process = positronProcs.ioni; particleChange = positronProcs.ioni->PostStepDoIt(track, step); break; } @@ -572,8 +509,7 @@ void EmStandardPhysicsTrackingManager::TrackPositron(G4Track* aTrack) step.UpdateTrack(); int numSecondaries = particleChange->GetNumberOfSecondaries(); - for(int i = 0; i < numSecondaries; i++) - { + for (int i = 0; i < numSecondaries; i++) { G4Track* secondary = particleChange->GetSecondary(i); secondary->SetParentID(track.GetTrackID()); secondary->SetCreatorProcess(process); @@ -586,19 +522,16 @@ void EmStandardPhysicsTrackingManager::TrackPositron(G4Track* aTrack) G4bool HasAtRestProcesses() override { return true; } - void AtRestDoIt(G4Track& track, G4Step& step, - G4TrackVector& secondaries) override + void AtRestDoIt(G4Track& track, G4Step& step, G4TrackVector& secondaries) override { auto& positronProcs = fMgr.fPositronProcs; // Annihilate the positron at rest. - G4VParticleChange* particleChange = - positronProcs.annihilation->AtRestDoIt(track, step); + G4VParticleChange* particleChange = positronProcs.annihilation->AtRestDoIt(track, step); particleChange->UpdateStepForAtRest(&step); step.UpdateTrack(); int numSecondaries = particleChange->GetNumberOfSecondaries(); - for(int i = 0; i < numSecondaries; i++) - { + for (int i = 0; i < numSecondaries; i++) { G4Track* secondary = particleChange->GetSecondary(i); secondary->SetParentID(track.GetTrackID()); secondary->SetCreatorProcess(positronProcs.annihilation); @@ -625,9 +558,7 @@ void EmStandardPhysicsTrackingManager::TrackGamma(G4Track* aTrack) class GammaPhysics final : public TrackingManagerHelper::Physics { public: - GammaPhysics(EmStandardPhysicsTrackingManager& mgr) - : fMgr(mgr) - {} + GammaPhysics(EmStandardPhysicsTrackingManager& mgr) : fMgr(mgr) {} void StartTracking(G4Track* aTrack) override { @@ -657,38 +588,30 @@ void EmStandardPhysicsTrackingManager::TrackGamma(G4Track* aTrack) G4ForceCondition condition; fProposedStep = DBL_MAX; - fSelected = -1; + fSelected = -1; - physIntLength = gammaProcs.rayleigh->PostStepGPIL( - track, fPreviousStepLength, &condition); - if(physIntLength < fProposedStep) - { + physIntLength = gammaProcs.rayleigh->PostStepGPIL(track, fPreviousStepLength, &condition); + if (physIntLength < fProposedStep) { fProposedStep = physIntLength; - fSelected = 0; + fSelected = 0; } - physIntLength = gammaProcs.conversion->PostStepGPIL( - track, fPreviousStepLength, &condition); - if(physIntLength < fProposedStep) - { + physIntLength = gammaProcs.conversion->PostStepGPIL(track, fPreviousStepLength, &condition); + if (physIntLength < fProposedStep) { fProposedStep = physIntLength; - fSelected = 1; + fSelected = 1; } - physIntLength = gammaProcs.compton->PostStepGPIL( - track, fPreviousStepLength, &condition); - if(physIntLength < fProposedStep) - { + physIntLength = gammaProcs.compton->PostStepGPIL(track, fPreviousStepLength, &condition); + if (physIntLength < fProposedStep) { fProposedStep = physIntLength; - fSelected = 2; + fSelected = 2; } - physIntLength = - gammaProcs.pe->PostStepGPIL(track, fPreviousStepLength, &condition); - if(physIntLength < fProposedStep) - { + physIntLength = gammaProcs.pe->PostStepGPIL(track, fPreviousStepLength, &condition); + if (physIntLength < fProposedStep) { fProposedStep = physIntLength; - fSelected = 3; + fSelected = 3; } return fProposedStep; @@ -696,47 +619,42 @@ void EmStandardPhysicsTrackingManager::TrackGamma(G4Track* aTrack) void AlongStepDoIt(G4Track&, G4Step& step, G4TrackVector&) override { - if(step.GetStepLength() == fProposedStep) - { + if (step.GetStepLength() == fProposedStep) { step.GetPostStepPoint()->SetStepStatus(fAlongStepDoItProc); } - else - { + else { // Remember that the step was limited by geometry. fSelected = -1; } fPreviousStepLength = step.GetStepLength(); } - void PostStepDoIt(G4Track& track, G4Step& step, - G4TrackVector& secondaries) override + void PostStepDoIt(G4Track& track, G4Step& step, G4TrackVector& secondaries) override { - if(fSelected < 0) - { + if (fSelected < 0) { return; } step.GetPostStepPoint()->SetStepStatus(fPostStepDoItProc); - auto& gammaProcs = fMgr.fGammaProcs; - G4VProcess* process = nullptr; + auto& gammaProcs = fMgr.fGammaProcs; + G4VProcess* process = nullptr; G4VParticleChange* particleChange = nullptr; - switch(fSelected) - { + switch (fSelected) { case 0: - process = gammaProcs.rayleigh; + process = gammaProcs.rayleigh; particleChange = gammaProcs.rayleigh->PostStepDoIt(track, step); break; case 1: - process = gammaProcs.conversion; + process = gammaProcs.conversion; particleChange = gammaProcs.conversion->PostStepDoIt(track, step); break; case 2: - process = gammaProcs.compton; + process = gammaProcs.compton; particleChange = gammaProcs.compton->PostStepDoIt(track, step); break; case 3: - process = gammaProcs.pe; + process = gammaProcs.pe; particleChange = gammaProcs.pe->PostStepDoIt(track, step); break; } @@ -745,8 +663,7 @@ void EmStandardPhysicsTrackingManager::TrackGamma(G4Track* aTrack) step.UpdateTrack(); int numSecondaries = particleChange->GetNumberOfSecondaries(); - for(int i = 0; i < numSecondaries; i++) - { + for (int i = 0; i < numSecondaries; i++) { G4Track* secondary = particleChange->GetSecondary(i); secondary->SetParentID(track.GetTrackID()); secondary->SetCreatorProcess(process); @@ -772,16 +689,13 @@ void EmStandardPhysicsTrackingManager::HandOverOneTrack(G4Track* aTrack) { const G4ParticleDefinition* part = aTrack->GetParticleDefinition(); - if(part == G4Electron::Definition()) - { + if (part == G4Electron::Definition()) { TrackElectron(aTrack); } - else if(part == G4Positron::Definition()) - { + else if (part == G4Positron::Definition()) { TrackPositron(aTrack); } - else if(part == G4Gamma::Definition()) - { + else if (part == G4Gamma::Definition()) { TrackGamma(aTrack); } diff --git a/examples/extended/runAndEvent/RE07/src/EventAction.cc b/examples/extended/runAndEvent/RE07/src/EventAction.cc index beb9878819..2d419d2a90 100644 --- a/examples/extended/runAndEvent/RE07/src/EventAction.cc +++ b/examples/extended/runAndEvent/RE07/src/EventAction.cc @@ -32,24 +32,20 @@ #include "EventAction.hh" -#include "Run.hh" - #include "G4Event.hh" #include "G4RunManager.hh" +#include "Run.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -EventAction::EventAction(DetectorConstruction* det) - : G4UserEventAction() - , fDetector(det) -{} +EventAction::EventAction(DetectorConstruction* det) : G4UserEventAction(), fDetector(det) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void EventAction::BeginOfEventAction(const G4Event*) { - for(G4int k = 0; k < kMaxAbsor; k++) - { + for (G4int k = 0; k < kMaxAbsor; k++) { fEnergyDeposit[k] = fTrackLengthCh[k] = 0.0; } } @@ -58,11 +54,9 @@ void EventAction::BeginOfEventAction(const G4Event*) void EventAction::EndOfEventAction(const G4Event*) { - Run* run = - static_cast(G4RunManager::GetRunManager()->GetNonConstCurrentRun()); + Run* run = static_cast(G4RunManager::GetRunManager()->GetNonConstCurrentRun()); - for(G4int k = 1; k <= fDetector->GetNbOfAbsor(); k++) - { + for (G4int k = 1; k <= fDetector->GetNbOfAbsor(); k++) { run->FillPerEvent(k, fEnergyDeposit[k], fTrackLengthCh[k]); } } diff --git a/examples/extended/runAndEvent/RE07/src/PhysicsList.cc b/examples/extended/runAndEvent/RE07/src/PhysicsList.cc index 8ad8f08f2c..5bbaceb1a6 100644 --- a/examples/extended/runAndEvent/RE07/src/PhysicsList.cc +++ b/examples/extended/runAndEvent/RE07/src/PhysicsList.cc @@ -31,20 +31,19 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "PhysicsList.hh" -#include "PhysicsListMessenger.hh" - -#include "PhysicsListEmSpecialized.hh" -#include "PhysicsListEmStandardTracking.hh" - -#include "G4EmStandardPhysics.hh" #include "G4BaryonConstructor.hh" #include "G4BosonConstructor.hh" +#include "G4EmStandardPhysics.hh" #include "G4IonConstructor.hh" #include "G4LeptonConstructor.hh" #include "G4MesonConstructor.hh" #include "G4ShortLivedConstructor.hh" +#include "PhysicsListEmSpecialized.hh" +#include "PhysicsListEmStandardTracking.hh" +#include "PhysicsListMessenger.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysicsList::PhysicsList() @@ -80,25 +79,20 @@ void PhysicsList::ConstructProcess() void PhysicsList::SetMode(const G4String& name) { - if(verboseLevel > -1) - { + if (verboseLevel > -1) { G4cout << "PhysicsList::SetMode: <" << name << ">" << G4endl; } - if(name == "processes") - { + if (name == "processes") { fEmPhysicsList.reset(new G4EmStandardPhysics(GetVerboseLevel())); } - else if(name == "tracking") - { + else if (name == "tracking") { fEmPhysicsList.reset(new PhysicsListEmStandardTracking(GetVerboseLevel())); } - else if(name == "specialized") - { + else if (name == "specialized") { fEmPhysicsList.reset(new PhysicsListEmSpecialized(GetVerboseLevel())); } - else - { + else { G4cout << "PhysicsList::SetMode: <" << name << ">" << " is not defined" << G4endl; } diff --git a/examples/extended/runAndEvent/RE07/src/PhysicsListEmSpecialized.cc b/examples/extended/runAndEvent/RE07/src/PhysicsListEmSpecialized.cc index ee144b7531..5cd6ecb393 100644 --- a/examples/extended/runAndEvent/RE07/src/PhysicsListEmSpecialized.cc +++ b/examples/extended/runAndEvent/RE07/src/PhysicsListEmSpecialized.cc @@ -29,17 +29,16 @@ #include "PhysicsListEmSpecialized.hh" -#include "SpecializedTrackingManager.hh" - #include "G4Electron.hh" #include "G4Gamma.hh" #include "G4ParticleDefinition.hh" #include "G4Positron.hh" +#include "SpecializedTrackingManager.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PhysicsListEmSpecialized::PhysicsListEmSpecialized(G4int ver, - const G4String& name) +PhysicsListEmSpecialized::PhysicsListEmSpecialized(G4int ver, const G4String& name) : G4EmStandardPhysics(ver, name) {} diff --git a/examples/extended/runAndEvent/RE07/src/PhysicsListEmStandardTracking.cc b/examples/extended/runAndEvent/RE07/src/PhysicsListEmStandardTracking.cc index 9af14216f6..7710c1b4da 100644 --- a/examples/extended/runAndEvent/RE07/src/PhysicsListEmStandardTracking.cc +++ b/examples/extended/runAndEvent/RE07/src/PhysicsListEmStandardTracking.cc @@ -29,14 +29,14 @@ #include "PhysicsListEmStandardTracking.hh" -#include "EmStandardPhysicsTrackingManager.hh" - #include "G4Electron.hh" #include "G4EmBuilder.hh" #include "G4Gamma.hh" #include "G4ParticleDefinition.hh" #include "G4Positron.hh" +#include "EmStandardPhysicsTrackingManager.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysicsListEmStandardTracking::PhysicsListEmStandardTracking(G4int ver) diff --git a/examples/extended/runAndEvent/RE07/src/PhysicsListMessenger.cc b/examples/extended/runAndEvent/RE07/src/PhysicsListMessenger.cc index b54a135f65..7755bf9c33 100644 --- a/examples/extended/runAndEvent/RE07/src/PhysicsListMessenger.cc +++ b/examples/extended/runAndEvent/RE07/src/PhysicsListMessenger.cc @@ -34,13 +34,13 @@ #include "G4UIcmdWithAString.hh" #include "G4UIdirectory.hh" + #include "PhysicsList.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys) - : G4UImessenger() - , fPhysicsList(pPhys) + : G4UImessenger(), fPhysicsList(pPhys) { fModeCmd.reset(new G4UIcmdWithAString("/setMode", this)); fModeCmd->SetGuidance("Add physics mode."); @@ -57,8 +57,7 @@ PhysicsListMessenger::~PhysicsListMessenger() = default; void PhysicsListMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { - if(command == fModeCmd.get()) - { + if (command == fModeCmd.get()) { fPhysicsList->SetMode(newValue); } } diff --git a/examples/extended/runAndEvent/RE07/src/PrimaryGeneratorAction.cc b/examples/extended/runAndEvent/RE07/src/PrimaryGeneratorAction.cc index e7eae3be52..fe69d0bfbb 100644 --- a/examples/extended/runAndEvent/RE07/src/PrimaryGeneratorAction.cc +++ b/examples/extended/runAndEvent/RE07/src/PrimaryGeneratorAction.cc @@ -32,16 +32,15 @@ #include "PrimaryGeneratorAction.hh" -#include "DetectorConstruction.hh" - #include "G4Electron.hh" #include "G4ParticleGun.hh" #include "G4SystemOfUnits.hh" +#include "DetectorConstruction.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* det) - : fDetector(det) +PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* det) : fDetector(det) { G4int numberOfParticles = 1; fParticleGun.reset(new G4ParticleGun(numberOfParticles)); diff --git a/examples/extended/runAndEvent/RE07/src/Run.cc b/examples/extended/runAndEvent/RE07/src/Run.cc index d0e8360dc2..8db27b7622 100644 --- a/examples/extended/runAndEvent/RE07/src/Run.cc +++ b/examples/extended/runAndEvent/RE07/src/Run.cc @@ -31,38 +31,37 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "Run.hh" -#include "DetectorConstruction.hh" -#include "PrimaryGeneratorAction.hh" #include "G4Electron.hh" #include "G4Gamma.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" #include "G4Positron.hh" -#include "G4Track.hh" - #include "G4SystemOfUnits.hh" +#include "G4Track.hh" #include "G4UnitsTable.hh" +#include "DetectorConstruction.hh" +#include "PrimaryGeneratorAction.hh" + #include //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... Run::Run(DetectorConstruction* det) - : G4Run() - , fDetector(det) - , fParticle(nullptr) - , fEkin(0.) - , fChargedStep(0) - , fNeutralStep(0) - , fN_gamma(0) - , fN_elec(0) - , fN_pos(0) + : G4Run(), + fDetector(det), + fParticle(nullptr), + fEkin(0.), + fChargedStep(0), + fNeutralStep(0), + fN_gamma(0), + fN_elec(0), + fN_pos(0) { // initialize cumulative quantities // - for(G4int k = 0; k < kMaxAbsor; k++) - { + for (G4int k = 0; k < kMaxAbsor; k++) { fSumEAbs[k] = fSum2EAbs[k] = fSumLAbs[k] = fSum2LAbs[k] = 0.; fEnergyDeposit[k].clear(); } @@ -77,7 +76,7 @@ Run::~Run() {} void Run::SetPrimary(G4ParticleDefinition* particle, G4double energy) { fParticle = particle; - fEkin = energy; + fEkin = energy; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -106,16 +105,13 @@ void Run::AddNeutralStep() { fNeutralStep += 1.0; } void Run::AddSecondaryTrack(const G4Track* track) { const G4ParticleDefinition* d = track->GetDefinition(); - if(d == G4Gamma::Gamma()) - { + if (d == G4Gamma::Gamma()) { ++fN_gamma; } - else if(d == G4Electron::Electron()) - { + else if (d == G4Electron::Electron()) { ++fN_elec; } - else if(d == G4Positron::Positron()) - { + else if (d == G4Positron::Positron()) { ++fN_pos; } } @@ -128,12 +124,11 @@ void Run::Merge(const G4Run* run) // pass information about primary particle fParticle = localRun->fParticle; - fEkin = localRun->fEkin; + fEkin = localRun->fEkin; // accumulate sums // - for(G4int k = 0; k < kMaxAbsor; k++) - { + for (G4int k = 0; k < kMaxAbsor; k++) { fSumEAbs[k] += localRun->fSumEAbs[k]; fSum2EAbs[k] += localRun->fSum2EAbs[k]; fSumLAbs[k] += localRun->fSumLAbs[k]; @@ -154,10 +149,9 @@ void Run::Merge(const G4Run* run) void Run::EndOfRun() { - G4int nEvt = numberOfEvent; + G4int nEvt = numberOfEvent; G4double norm = G4double(nEvt); - if(norm > 0) - norm = 1. / norm; + if (norm > 0) norm = 1. / norm; G4double qnorm = std::sqrt(norm); fChargedStep *= norm; @@ -166,61 +160,52 @@ void Run::EndOfRun() // compute and print statistic // G4double beamEnergy = fEkin; - G4double sqbeam = std::sqrt(beamEnergy / GeV); + G4double sqbeam = std::sqrt(beamEnergy / GeV); G4double MeanEAbs, MeanEAbs2, rmsEAbs, resolution, rmsres; G4double MeanLAbs, MeanLAbs2, rmsLAbs; std::ios::fmtflags mode = G4cout.flags(); - G4int prec = G4cout.precision(2); + G4int prec = G4cout.precision(2); G4cout << "\n------------------------------------------------------------\n"; - G4cout << std::setw(14) << "material" << std::setw(17) << "Edep RMS" - << std::setw(33) << "sqrt(E0(GeV))*rmsE/Emean" << std::setw(23) - << "total tracklen \n \n"; + G4cout << std::setw(14) << "material" << std::setw(17) << "Edep RMS" << std::setw(33) + << "sqrt(E0(GeV))*rmsE/Emean" << std::setw(23) << "total tracklen \n \n"; - for(G4int k = 1; k <= fDetector->GetNbOfAbsor(); k++) - { - MeanEAbs = fSumEAbs[k] * norm; + for (G4int k = 1; k <= fDetector->GetNbOfAbsor(); k++) { + MeanEAbs = fSumEAbs[k] * norm; MeanEAbs2 = fSum2EAbs[k] * norm; - rmsEAbs = std::sqrt(std::abs(MeanEAbs2 - MeanEAbs * MeanEAbs)); + rmsEAbs = std::sqrt(std::abs(MeanEAbs2 - MeanEAbs * MeanEAbs)); resolution = 100. * sqbeam * rmsEAbs / MeanEAbs; - rmsres = resolution * qnorm; + rmsres = resolution * qnorm; // Save mean and RMS - fSumEAbs[k] = MeanEAbs; + fSumEAbs[k] = MeanEAbs; fSum2EAbs[k] = rmsEAbs; - MeanLAbs = fSumLAbs[k] * norm; + MeanLAbs = fSumLAbs[k] * norm; MeanLAbs2 = fSum2LAbs[k] * norm; - rmsLAbs = std::sqrt(std::abs(MeanLAbs2 - MeanLAbs * MeanLAbs)); + rmsLAbs = std::sqrt(std::abs(MeanLAbs2 - MeanLAbs * MeanLAbs)); // print // G4cout << std::setw(14) << fDetector->GetAbsorMaterial(k)->GetName() << ": " - << std::setprecision(5) << std::setw(6) - << G4BestUnit(MeanEAbs, "Energy") << " : " << std::setprecision(4) - << std::setw(5) << G4BestUnit(rmsEAbs, "Energy") << std::setw(10) - << resolution << " +- " << std::setw(5) << rmsres << " %" - << std::setprecision(3) << std::setw(10) - << G4BestUnit(MeanLAbs, "Length") << " +- " << std::setw(4) + << std::setprecision(5) << std::setw(6) << G4BestUnit(MeanEAbs, "Energy") << " : " + << std::setprecision(4) << std::setw(5) << G4BestUnit(rmsEAbs, "Energy") << std::setw(10) + << resolution << " +- " << std::setw(5) << rmsres << " %" << std::setprecision(3) + << std::setw(10) << G4BestUnit(MeanLAbs, "Length") << " +- " << std::setw(4) << G4BestUnit(rmsLAbs, "Length") << G4endl; } G4cout << "\n------------------------------------------------------------\n"; G4cout << " Beam particle " << fParticle->GetParticleName() << " E = " << G4BestUnit(beamEnergy, "Energy") << G4endl; - G4cout << " Mean number of gamma " << (G4double) fN_gamma * norm - << G4endl; - G4cout << " Mean number of e- " << (G4double) fN_elec * norm - << G4endl; - G4cout << " Mean number of e+ " << (G4double) fN_pos * norm - << G4endl; - G4cout << std::setprecision(6) << " Mean number of charged steps " - << fChargedStep << G4endl; + G4cout << " Mean number of gamma " << (G4double)fN_gamma * norm << G4endl; + G4cout << " Mean number of e- " << (G4double)fN_elec * norm << G4endl; + G4cout << " Mean number of e+ " << (G4double)fN_pos * norm << G4endl; + G4cout << std::setprecision(6) << " Mean number of charged steps " << fChargedStep << G4endl; G4cout << " Mean number of neutral steps " << fNeutralStep << G4endl; - G4cout << "------------------------------------------------------------\n" - << G4endl; + G4cout << "------------------------------------------------------------\n" << G4endl; G4cout.setf(mode, std::ios::floatfield); G4cout.precision(prec); diff --git a/examples/extended/runAndEvent/RE07/src/RunAction.cc b/examples/extended/runAndEvent/RE07/src/RunAction.cc index 03fb5f125a..4547d6b5d5 100644 --- a/examples/extended/runAndEvent/RE07/src/RunAction.cc +++ b/examples/extended/runAndEvent/RE07/src/RunAction.cc @@ -32,20 +32,18 @@ #include "RunAction.hh" -#include "DetectorConstruction.hh" #include "G4RunManager.hh" #include "G4Timer.hh" -#include "PrimaryGeneratorAction.hh" #include "Randomize.hh" + +#include "DetectorConstruction.hh" +#include "PrimaryGeneratorAction.hh" #include "Run.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RunAction::RunAction(DetectorConstruction* det, PrimaryGeneratorAction* prim) - : G4UserRunAction() - , fDetector(det) - , fPrimary(prim) - , fRun(nullptr) + : G4UserRunAction(), fDetector(det), fPrimary(prim), fRun(nullptr) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -61,16 +59,13 @@ G4Run* RunAction::GenerateRun() void RunAction::BeginOfRunAction(const G4Run*) { // keep run condition - if(fPrimary) - { - G4ParticleDefinition* particle = - fPrimary->GetParticleGun()->GetParticleDefinition(); + if (fPrimary) { + G4ParticleDefinition* particle = fPrimary->GetParticleGun()->GetParticleDefinition(); G4double energy = fPrimary->GetParticleGun()->GetParticleEnergy(); fRun->SetPrimary(particle, energy); } - if(isMaster) - { + if (isMaster) { fTimer.Start(); } } @@ -80,15 +75,11 @@ void RunAction::BeginOfRunAction(const G4Run*) void RunAction::EndOfRunAction(const G4Run*) { // compute and print statistic - if(isMaster) - { + if (isMaster) { fTimer.Stop(); - if(!((G4RunManager::GetRunManager()->GetRunManagerType() == - G4RunManager::sequentialRM))) - { + if (! ((G4RunManager::GetRunManager()->GetRunManagerType() == G4RunManager::sequentialRM))) { G4cout << "\n" - << "Total number of events: " << fRun->GetNumberOfEvent() - << G4endl; + << "Total number of events: " << fRun->GetNumberOfEvent() << G4endl; G4cout << "Master thread time: " << fTimer << G4endl; } fRun->EndOfRun(); diff --git a/examples/extended/runAndEvent/RE07/src/SpecializedTrackingManager.cc b/examples/extended/runAndEvent/RE07/src/SpecializedTrackingManager.cc index 7cb33354a3..9dd4770807 100644 --- a/examples/extended/runAndEvent/RE07/src/SpecializedTrackingManager.cc +++ b/examples/extended/runAndEvent/RE07/src/SpecializedTrackingManager.cc @@ -33,9 +33,8 @@ #include "G4ProcessManager.hh" #include "G4RegionStore.hh" #include "G4StackManager.hh" -#include "G4TrackingManager.hh" - #include "G4SystemOfUnits.hh" +#include "G4TrackingManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -47,26 +46,21 @@ SpecializedTrackingManager::~SpecializedTrackingManager() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void SpecializedTrackingManager::BuildPhysicsTable( - const G4ParticleDefinition& part) +void SpecializedTrackingManager::BuildPhysicsTable(const G4ParticleDefinition& part) { - if(fBackRegion == nullptr) - { + if (fBackRegion == nullptr) { fBackRegion = G4RegionStore::GetInstance()->GetRegion("Back", false); } - G4ProcessManager* pManager = part.GetProcessManager(); + G4ProcessManager* pManager = part.GetProcessManager(); G4ProcessManager* pManagerShadow = part.GetMasterProcessManager(); G4ProcessVector* pVector = pManager->GetProcessList(); - for(std::size_t j = 0; j < pVector->size(); ++j) - { - if(pManagerShadow == pManager) - { + for (std::size_t j = 0; j < pVector->size(); ++j) { + if (pManagerShadow == pManager) { (*pVector)[j]->BuildPhysicsTable(part); } - else - { + else { (*pVector)[j]->BuildWorkerPhysicsTable(part); } } @@ -74,21 +68,17 @@ void SpecializedTrackingManager::BuildPhysicsTable( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void SpecializedTrackingManager::PreparePhysicsTable( - const G4ParticleDefinition& part) +void SpecializedTrackingManager::PreparePhysicsTable(const G4ParticleDefinition& part) { - G4ProcessManager* pManager = part.GetProcessManager(); + G4ProcessManager* pManager = part.GetProcessManager(); G4ProcessManager* pManagerShadow = part.GetMasterProcessManager(); G4ProcessVector* pVector = pManager->GetProcessList(); - for(std::size_t j = 0; j < pVector->size(); ++j) - { - if(pManagerShadow == pManager) - { + for (std::size_t j = 0; j < pVector->size(); ++j) { + if (pManagerShadow == pManager) { (*pVector)[j]->PreparePhysicsTable(part); } - else - { + else { (*pVector)[j]->PrepareWorkerPhysicsTable(part); } } @@ -98,20 +88,18 @@ void SpecializedTrackingManager::PreparePhysicsTable( void SpecializedTrackingManager::HandOverOneTrack(G4Track* aTrack) { - if(aTrack->GetKineticEnergy() < 100 * MeV) - { + if (aTrack->GetKineticEnergy() < 100 * MeV) { // If the particle energy is lower than 100 MeV, track it immediately by // passing to the generic G4TrackingManager. This avoids storing lower // energy particles in the buffer and feeding it through the specialized // tracking. - G4EventManager* eventManager = G4EventManager::GetEventManager(); + G4EventManager* eventManager = G4EventManager::GetEventManager(); G4TrackingManager* trackManager = eventManager->GetTrackingManager(); trackManager->ProcessOneTrack(aTrack); - if(aTrack->GetTrackStatus() != fStopAndKill) - { - G4Exception("SpecializedTrackingManager::HandOverOneTrack", "NotStopped", - FatalException, "track was not stopped"); + if (aTrack->GetTrackStatus() != fStopAndKill) { + G4Exception("SpecializedTrackingManager::HandOverOneTrack", "NotStopped", FatalException, + "track was not stopped"); } G4TrackVector* secondaries = trackManager->GimmeSecondaries(); @@ -127,26 +115,22 @@ void SpecializedTrackingManager::HandOverOneTrack(G4Track* aTrack) void SpecializedTrackingManager::FlushEvent() { - G4EventManager* eventManager = G4EventManager::GetEventManager(); - G4TrackingManager* trackManager = eventManager->GetTrackingManager(); + G4EventManager* eventManager = G4EventManager::GetEventManager(); + G4TrackingManager* trackManager = eventManager->GetTrackingManager(); G4SteppingManager* steppingManager = trackManager->GetSteppingManager(); - G4TrackVector* secondaries = trackManager->GimmeSecondaries(); + G4TrackVector* secondaries = trackManager->GimmeSecondaries(); - for(G4Track* aTrack : fBufferedTracks) - { + for (G4Track* aTrack : fBufferedTracks) { // Clear secondary particle vector - for(std::size_t itr = 0; itr < secondaries->size(); ++itr) - { - delete(*secondaries)[itr]; + for (std::size_t itr = 0; itr < secondaries->size(); ++itr) { + delete (*secondaries)[itr]; } secondaries->clear(); steppingManager->SetInitialStep(aTrack); - G4UserTrackingAction* userTrackingAction = - trackManager->GetUserTrackingAction(); - if(userTrackingAction != nullptr) - { + G4UserTrackingAction* userTrackingAction = trackManager->GetUserTrackingAction(); + if (userTrackingAction != nullptr) { userTrackingAction->PreUserTrackingAction(aTrack); } @@ -160,24 +144,19 @@ void SpecializedTrackingManager::FlushEvent() aTrack->GetDefinition()->GetProcessManager()->StartTracking(aTrack); // Track the particle Step-by-Step while it is alive - while((aTrack->GetTrackStatus() == fAlive) || - (aTrack->GetTrackStatus() == fStopButAlive)) - { + while ((aTrack->GetTrackStatus() == fAlive) || (aTrack->GetTrackStatus() == fStopButAlive)) { G4Region* region = aTrack->GetVolume()->GetLogicalVolume()->GetRegion(); - if(region == fBackRegion) - { + if (region == fBackRegion) { StepInBackRegion(aTrack); } - else - { + else { StepOutside(aTrack); } } aTrack->GetDefinition()->GetProcessManager()->EndTracking(); - if(userTrackingAction != nullptr) - { + if (userTrackingAction != nullptr) { userTrackingAction->PostUserTrackingAction(aTrack); } @@ -192,33 +171,28 @@ void SpecializedTrackingManager::FlushEvent() void SpecializedTrackingManager::StepInBackRegion(G4Track* aTrack) { - G4EventManager* eventManager = G4EventManager::GetEventManager(); - G4TrackingManager* trackManager = eventManager->GetTrackingManager(); + G4EventManager* eventManager = G4EventManager::GetEventManager(); + G4TrackingManager* trackManager = eventManager->GetTrackingManager(); G4SteppingManager* steppingManager = trackManager->GetSteppingManager(); // Track the particle Step-by-Step while it is alive and inside the "Back" // region of the detector. Implement a low-energy cut-off for particles // below 100 MeV. More specialized handling would also be possible, such // as only killing particles in non-sensitive materials / volumes. - while((aTrack->GetTrackStatus() == fAlive) || - (aTrack->GetTrackStatus() == fStopButAlive)) - { + while ((aTrack->GetTrackStatus() == fAlive) || (aTrack->GetTrackStatus() == fStopButAlive)) { aTrack->IncrementCurrentStepNumber(); steppingManager->Stepping(); - if(aTrack->GetTrackStatus() != fStopAndKill) - { + if (aTrack->GetTrackStatus() != fStopAndKill) { // Switch the touchable to update the volume, which is checked in the // condition below and at the call site. aTrack->SetTouchableHandle(aTrack->GetNextTouchableHandle()); G4Region* region = aTrack->GetVolume()->GetLogicalVolume()->GetRegion(); - if(region != fBackRegion) - { + if (region != fBackRegion) { return; } - if(aTrack->GetKineticEnergy() < 100 * MeV) - { + if (aTrack->GetKineticEnergy() < 100 * MeV) { // Kill the particle. aTrack->SetTrackStatus(fStopAndKill); } @@ -230,26 +204,22 @@ void SpecializedTrackingManager::StepInBackRegion(G4Track* aTrack) void SpecializedTrackingManager::StepOutside(G4Track* aTrack) { - G4EventManager* eventManager = G4EventManager::GetEventManager(); - G4TrackingManager* trackManager = eventManager->GetTrackingManager(); + G4EventManager* eventManager = G4EventManager::GetEventManager(); + G4TrackingManager* trackManager = eventManager->GetTrackingManager(); G4SteppingManager* steppingManager = trackManager->GetSteppingManager(); // Track the particle Step-by-Step while it is alive and still outside of // the "Back" region. - while((aTrack->GetTrackStatus() == fAlive) || - (aTrack->GetTrackStatus() == fStopButAlive)) - { + while ((aTrack->GetTrackStatus() == fAlive) || (aTrack->GetTrackStatus() == fStopButAlive)) { aTrack->IncrementCurrentStepNumber(); steppingManager->Stepping(); - if(aTrack->GetTrackStatus() != fStopAndKill) - { + if (aTrack->GetTrackStatus() != fStopAndKill) { // Switch the touchable to update the volume, which is checked in the // condition below and at the call site. aTrack->SetTouchableHandle(aTrack->GetNextTouchableHandle()); G4Region* region = aTrack->GetVolume()->GetLogicalVolume()->GetRegion(); - if(region == fBackRegion) - { + if (region == fBackRegion) { return; } } diff --git a/examples/extended/runAndEvent/RE07/src/SteppingAction.cc b/examples/extended/runAndEvent/RE07/src/SteppingAction.cc index e0c9c7dfa9..b3a23482b4 100644 --- a/examples/extended/runAndEvent/RE07/src/SteppingAction.cc +++ b/examples/extended/runAndEvent/RE07/src/SteppingAction.cc @@ -32,20 +32,18 @@ #include "SteppingAction.hh" -#include "DetectorConstruction.hh" -#include "EventAction.hh" -#include "Run.hh" - #include "G4PhysicalConstants.hh" #include "G4Positron.hh" #include "G4RunManager.hh" +#include "DetectorConstruction.hh" +#include "EventAction.hh" +#include "Run.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... SteppingAction::SteppingAction(DetectorConstruction* det, EventAction* evt) - : G4UserSteppingAction() - , fDetector(det) - , fEventAct(evt) + : G4UserSteppingAction(), fDetector(det), fEventAct(evt) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -61,8 +59,7 @@ void SteppingAction::UserSteppingAction(const G4Step* aStep) // if sum of absorbers do not fill exactly a layer: check material, not // volume. const G4Material* mat = volume->GetLogicalVolume()->GetMaterial(); - if(mat == fDetector->GetWorldMaterial()) - return; + if (mat == fDetector->GetWorldMaterial()) return; const G4ParticleDefinition* particle = aStep->GetTrack()->GetDefinition(); @@ -72,22 +69,18 @@ void SteppingAction::UserSteppingAction(const G4Step* aStep) // G4int layerNum = prePoint->GetTouchableHandle()->GetCopyNumber(1); // get Run - Run* run = - static_cast(G4RunManager::GetRunManager()->GetNonConstCurrentRun()); + Run* run = static_cast(G4RunManager::GetRunManager()->GetNonConstCurrentRun()); // collect energy deposit taking into account track weight - G4double edep = - aStep->GetTotalEnergyDeposit() * aStep->GetTrack()->GetWeight(); + G4double edep = aStep->GetTotalEnergyDeposit() * aStep->GetTrack()->GetWeight(); // collect step length of charged particles G4double stepl = 0.; - if(particle->GetPDGCharge() != 0.) - { + if (particle->GetPDGCharge() != 0.) { stepl = aStep->GetStepLength(); run->AddChargedStep(); } - else - { + else { run->AddNeutralStep(); } diff --git a/examples/extended/runAndEvent/RE07/src/TrackingAction.cc b/examples/extended/runAndEvent/RE07/src/TrackingAction.cc index 9423feb8a5..6771e2354e 100644 --- a/examples/extended/runAndEvent/RE07/src/TrackingAction.cc +++ b/examples/extended/runAndEvent/RE07/src/TrackingAction.cc @@ -33,28 +33,24 @@ #include "TrackingAction.hh" -#include "Run.hh" - #include "G4PhysicalConstants.hh" #include "G4Positron.hh" #include "G4RunManager.hh" +#include "Run.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -TrackingAction::TrackingAction() - : G4UserTrackingAction() -{} +TrackingAction::TrackingAction() : G4UserTrackingAction() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void TrackingAction::PreUserTrackingAction(const G4Track* track) { // get Run - Run* run = - static_cast(G4RunManager::GetRunManager()->GetNonConstCurrentRun()); + Run* run = static_cast(G4RunManager::GetRunManager()->GetNonConstCurrentRun()); - if(track->GetTrackID() != 1) - { + if (track->GetTrackID() != 1) { run->AddSecondaryTrack(track); } } diff --git a/examples/extended/runAndEvent/RE07/tracking.out b/examples/extended/runAndEvent/RE07/tracking.out index d237bfe6f2..09b35b8428 100644 --- a/examples/extended/runAndEvent/RE07/tracking.out +++ b/examples/extended/runAndEvent/RE07/tracking.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -64,15 +64,15 @@ Command is ignored. ------------------------------------------------------------ material Edep RMS sqrt(E0(GeV))*rmsE/Emean total tracklen - G4_Pb: 775.99 MeV : 16.74 MeV 2.158 +- 0.06824 % 54.8 cm +- 1.3 cm - G4_lAr: 213.94 MeV : 15.58 MeV 7.284 +- 0.2304 % 1.05 m +- 7.93 cm + G4_Pb: 775.71 MeV : 16.23 MeV 2.092 +- 0.06615 % 54.8 cm +- 1.28 cm + G4_lAr: 214.08 MeV : 15.48 MeV 7.229 +- 0.2286 % 1.05 m +- 7.91 cm ------------------------------------------------------------ Beam particle e- E = 1 GeV - Mean number of gamma 510 - Mean number of e- 874 + Mean number of gamma 509 + Mean number of e- 871 Mean number of e+ 53.7 - Mean number of charged steps 3671.37 - Mean number of neutral steps 3699.68 + Mean number of charged steps 3677.35 + Mean number of neutral steps 3694.33 ------------------------------------------------------------ diff --git a/examples/extended/visualization/movies/.README.txt b/examples/extended/visualization/movies/.README.txt index 1f0634b37b..2e24a67026 100644 --- a/examples/extended/visualization/movies/.README.txt +++ b/examples/extended/visualization/movies/.README.txt @@ -1,7 +1,7 @@ ///\file "visualization/movies/.README.txt" ///\brief Example movies README page -/*! \page ExampleMovies Example movies +/*! \page Examplemovies Example movies examples/extended/visualization/movies @@ -9,70 +9,90 @@ This example illustrates how to create a movie. See https://geant4-userdoc.web.cern.ch/UsersGuides/ForApplicationDeveloper/html/Visualization/makingamovie.html#. -A) USING /vis/viewer/save AND /vis/viewer/interpolate -===================================================== +A) USING `/vis/viewer/save` AND `/vis/viewer/interpolate` +========================================================= -1) a) To see a pre-prepared example, start this example in interactive mode +1. a. To see a pre-prepared example, start this example in interactive mode (i.e., without any command line arguments). Just type - /vis/viewer/interpolate viewfiles/movie-1 - If you want to see an electromagnetic shower - /run/beamOn - /vis/viewer/interpolate viewfiles/movie-1 - b) To make your own movie, save a sequence of views with - "/vis/viewer/save". Then "fly through" with "/vis/viewer/interpolate". + /vis/viewer/interpolate viewfiles/movie-1 + + If you want to see an electromagnetic shower + + /run/beamOn + /vis/viewer/interpolate viewfiles/movie-1 + + b. To make your own movie, save a sequence of views with + + /vis/viewer/save + + Then "fly through" with + + /vis/viewer/interpolate". The procedure is: choose a view, save, choose another view, save, and so on until you have, say, 10 saved views. Then you may - /vis/viewer/interpolate + + /vis/viewer/interpolate Note: This saves views to your current working directory. It is always good to remove any pre-existing saved files: - rm *.g4view + + rm *.g4view + or save them, e.g. - mkdir views - mv *.g4view views + + mkdir views + mv *.g4view views + which can subsequently be interpolated with - /vis/viewer/interpolate views - c) Then you have a choice of how to export the movie - see 3 below. + /vis/viewer/interpolate views -2) You can use time-slicing to see particles progress through time + c. Then you have a choice of how to export the movie - see 3 below. - a) To see a pre-prepared example - /vis/modeling/trajectories/drawByCharge-0/default/setTimeSliceInterval 0.01 ns - /run/beamOn - /vis/viewer/interpolate viewfiles/movie-2 +2. You can use time-slicing to see particles progress through time - b) To make your own movie - /vis/scene/add/trajectories rich - /vis/modeling/trajectories/drawByCharge-0/default/setTimeSliceInterval 0.01 ns - # Optionally add features (see guidance on /vis/viewer/set/timeWindow/) - /vis/viewer/set/timeWindow/displayLightFront true 0 0 -20 cm -0.01 ns - /vis/viewer/set/timeWindow/displayHeadTime true - /vis/viewer/set/timeWindow/fadeFactor 1 - /run/beamOn - # Then set a time window and save - /vis/viewer/set/timeWindow/startTime 0 ns .1 ns - /vis/viewer/save - # Then zoom, pan etc to a view of interest - # Then set the next time window and save - /vis/viewer/set/timeWindow/startTime .5 ns .1 ns - /vis/viewer/save - # Then zoom, pan etc to a view of interest - # Then set the next time window and save - /vis/viewer/set/timeWindow/startTime 1 ns .1 ns - /vis/viewer/save - # Then another view, the next time window, and a save... - # ...repeat a few more times - # Then try - /vis/viewer/interpolate + a. To see a pre-prepared example + + /vis/modeling/trajectories/drawByCharge-0/default/setTimeSliceInterval 0.01 ns + /run/beamOn + /vis/viewer/interpolate viewfiles/movie-2 + + b. To make your own movie + + /vis/scene/add/trajectories rich + /vis/modeling/trajectories/drawByCharge-0/default/setTimeSliceInterval 0.01 ns + # Optionally add features (see guidance on /vis/viewer/set/timeWindow/) + /vis/viewer/set/timeWindow/displayLightFront true 0 0 -20 cm -0.01 ns + /vis/viewer/set/timeWindow/displayHeadTime true + /vis/viewer/set/timeWindow/fadeFactor 1 + /run/beamOn + # Then set a time window and save + /vis/viewer/set/timeWindow/startTime 0 ns .1 ns + /vis/viewer/save + # Then zoom, pan etc to a view of interest + # Then set the next time window and save + /vis/viewer/set/timeWindow/startTime .5 ns .1 ns + /vis/viewer/save + # Then zoom, pan etc to a view of interest + # Then set the next time window and save + /vis/viewer/set/timeWindow/startTime 1 ns .1 ns + /vis/viewer/save + # Then another view, the next time window, and a save... + # ...repeat a few more times + # Then try + /vis/viewer/interpolate + +3. How to export images using /vis/viewer/interpolate (OpenGL only) + + /vis/viewer/interpolate ! ! ! ! export -3) How to export images using /vis/viewer/interpolate (OpenGL only) - /vis/viewer/interpolate ! ! ! ! export This produces lots of files. You can change export format with (for example) - /vis/ogl/set/exportFormat jpg + + /vis/ogl/set/exportFormat jpg + Then import them into your favourite movie maker - see https://geant4-userdoc.web.cern.ch/UsersGuides/ForApplicationDeveloper/html/Visualization/makingamovie.html# diff --git a/examples/extended/visualization/movies/History b/examples/extended/visualization/movies/History index 67e96908ad..033f290fe9 100644 --- a/examples/extended/visualization/movies/History +++ b/examples/extended/visualization/movies/History @@ -5,6 +5,10 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-04 I. Hrivnacova (exam-ext-vis-movies-V11-00-01) +- Fixed Doxygen file descriptions (mostly missing) +- Fixed formatting in .README.txt + ## 2021-12-10 Ben Morgan (exam-ext-vis-movies-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/visualization/movies/include/MoviesActionInitialization.hh b/examples/extended/visualization/movies/include/MoviesActionInitialization.hh index 19ebecaa82..efbdf2ce72 100644 --- a/examples/extended/visualization/movies/include/MoviesActionInitialization.hh +++ b/examples/extended/visualization/movies/include/MoviesActionInitialization.hh @@ -23,6 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +/// \file MoviesActionInitialization.hh +/// \brief Definition of the MoviesActionInitialization class // #ifndef MoviesActionInitialization_h diff --git a/examples/extended/visualization/movies/include/MoviesDetectorConstruction.hh b/examples/extended/visualization/movies/include/MoviesDetectorConstruction.hh index 78db5eff58..b79bb65198 100644 --- a/examples/extended/visualization/movies/include/MoviesDetectorConstruction.hh +++ b/examples/extended/visualization/movies/include/MoviesDetectorConstruction.hh @@ -23,6 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +/// \file MoviesDetectorConstruction.hh +/// \brief Definition of the MoviesDetectorConstruction class // #ifndef MoviesDetectorConstruction_h diff --git a/examples/extended/visualization/movies/include/MoviesPrimaryGeneratorAction.hh b/examples/extended/visualization/movies/include/MoviesPrimaryGeneratorAction.hh index 1bfdc16df1..e2e446ba87 100644 --- a/examples/extended/visualization/movies/include/MoviesPrimaryGeneratorAction.hh +++ b/examples/extended/visualization/movies/include/MoviesPrimaryGeneratorAction.hh @@ -23,6 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +/// \file MoviesPrimaryGeneratorAction.hh +/// \brief Definition of the MoviesPrimaryGeneratorAction class // #ifndef MoviesPrimaryGeneratorAction_h diff --git a/examples/extended/visualization/movies/movies.cc b/examples/extended/visualization/movies/movies.cc index 4262b12775..0189dcd5fc 100644 --- a/examples/extended/visualization/movies/movies.cc +++ b/examples/extended/visualization/movies/movies.cc @@ -24,7 +24,7 @@ // ******************************************************************** // // -/// \file exampleMovies.cc +/// \file movies.cc /// \brief Main program of the Movies example #include "MoviesDetectorConstruction.hh" diff --git a/examples/extended/visualization/movies/movies.out b/examples/extended/visualization/movies/movies.out index c96b4c2be9..c54eaff412 100644 --- a/examples/extended/visualization/movies/movies.out +++ b/examples/extended/visualization/movies/movies.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -33,6 +33,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -130,6 +132,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -157,7 +160,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -208,8 +211,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -691,6 +694,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda diff --git a/examples/extended/visualization/movies/src/MoviesActionInitialization.cc b/examples/extended/visualization/movies/src/MoviesActionInitialization.cc index ec9e5859d8..e33114a374 100644 --- a/examples/extended/visualization/movies/src/MoviesActionInitialization.cc +++ b/examples/extended/visualization/movies/src/MoviesActionInitialization.cc @@ -23,6 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +/// \file MoviesActionInitialization.cc +/// \brief Implementation of the MoviesActionInitialization class // #include "MoviesActionInitialization.hh" diff --git a/examples/extended/visualization/movies/src/MoviesDetectorConstruction.cc b/examples/extended/visualization/movies/src/MoviesDetectorConstruction.cc index 8507fa2331..afb255bacb 100644 --- a/examples/extended/visualization/movies/src/MoviesDetectorConstruction.cc +++ b/examples/extended/visualization/movies/src/MoviesDetectorConstruction.cc @@ -23,6 +23,8 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +/// \file MoviesDetectorConstruction.cc +/// \brief Implementation of the MoviesDetectorConstruction class // #include "MoviesDetectorConstruction.hh" diff --git a/examples/extended/visualization/movies/src/MoviesPrimaryGeneratorAction.cc b/examples/extended/visualization/movies/src/MoviesPrimaryGeneratorAction.cc index 69a8ac0020..8e0abf6967 100644 --- a/examples/extended/visualization/movies/src/MoviesPrimaryGeneratorAction.cc +++ b/examples/extended/visualization/movies/src/MoviesPrimaryGeneratorAction.cc @@ -23,9 +23,9 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// /// \file MoviesPrimaryGeneratorAction.cc /// \brief Implementation of the MoviesPrimaryGeneratorAction class +// #include "MoviesPrimaryGeneratorAction.hh" diff --git a/examples/extended/visualization/standalone/.README.txt b/examples/extended/visualization/standalone/.README.txt index 4330a79a42..ea50f00966 100644 --- a/examples/extended/visualization/standalone/.README.txt +++ b/examples/extended/visualization/standalone/.README.txt @@ -6,7 +6,7 @@ examples/extended/visualization/standalone -This example illustrates how one might use the Geant Visualization +This example illustrates how one might use the Geant4 Visualization System as a "stand alone" graphics library and viewer. It makes use of the "user action" feature of the Geant4 vis manager - for a fuller example of the use of this feature see diff --git a/examples/extended/visualization/standalone/History b/examples/extended/visualization/standalone/History index 1817f7720f..08e542d7a6 100644 --- a/examples/extended/visualization/standalone/History +++ b/examples/extended/visualization/standalone/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-11-04 John Allison (exam-ext-vis-standalone-V11-00-01) +- Fix typo in README files + ## 2021-12-10 Ben Morgan (exam-ext-vis-standalone-V11-00-00) - Change to new Markdown History format diff --git a/examples/extended/visualization/standalone/README b/examples/extended/visualization/standalone/README index 8797c59551..e7feb8bad2 100644 --- a/examples/extended/visualization/standalone/README +++ b/examples/extended/visualization/standalone/README @@ -5,7 +5,7 @@ examples/extended/visualization/standalone ------------------------------------------ -This example illustrates how one might use the Geant Visualization +This example illustrates how one might use the Geant4 Visualization System as a "stand alone" graphics library and viewer. It makes use of the "user action" feature of the Geant4 vis manager - for a fuller example of the use of this feature see diff --git a/examples/extended/visualization/userVisAction/run1.out b/examples/extended/visualization/userVisAction/run1.out index 8f2d90c442..b3ab7f0ed9 100644 --- a/examples/extended/visualization/userVisAction/run1.out +++ b/examples/extended/visualization/userVisAction/run1.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -32,6 +32,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -83,7 +85,6 @@ Checking overlaps for volume Shape2:0 (G4Trd) ... OK! Emin(FTFP)= 3 GeV Emax(FTFP)= 100000 GeV Emin(BERT)= 1 GeV Emax(BERT)= 6 GeV Emax(BERTpions)= 12 GeV Emin(BIC) = 0 GeV Emax(BIC)= 1.5 GeV. -### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 /run/verbose 2 /event/verbose 0 /tracking/verbose 1 @@ -103,6 +104,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -130,7 +132,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -181,8 +183,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -532,28 +534,6 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 ==================================================================== HADRONIC PROCESSES SUMMARY (verbose level 1) ---------------------------------------------------- - Hadronic Processes for neutron - - Process: hadElastic - Model: hElasticCHIPS: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV - - - Process: neutronInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 1 GeV ---> 6 GeV - Model: Binary Cascade: 0 eV ---> 1.5 GeV - Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV - - - Process: nCapture - Model: nRadCapture: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV - - - Process: nKiller - --------------------------------------------------- Hadronic Processes for B- @@ -670,6 +650,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -835,6 +820,28 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: muMinusCaptureAtRest +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 1 GeV ---> 6 GeV + Model: Binary Cascade: 0 eV ---> 1.5 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + --------------------------------------------------- Hadronic Processes for pi+ @@ -1091,13 +1098,13 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName 0 -55.2 5.55 -116 0.183 0 0 0 Envelope initStep 1 -44.3 -10.9 -84.7 0.167 0 37.3 37.3 Envelope compt - 2 -64.8 -32.2 -48.1 0.107 0 47 84.3 Envelope compt - 3 -27.4 -1.99 -54.6 0.107 0 48.5 133 Shape1 Transportation - 4 -2.87 17.8 -58.9 0.0774 0 31.8 165 Shape1 compt - 5 -3.32 16.8 -58.2 0.0673 0 1.34 166 Shape1 compt - 6 -3.8 -1.3 -87.7 0.0575 0 34.6 201 Shape1 compt - 7 0.697 1.55 -87.7 0.0544 0 5.32 206 Shape1 compt - 8 5.94 6.17 -100 0.0544 0 14.1 220 Envelope Transportation + 2 -64.8 -32.2 -48.2 0.107 0 47 84.3 Envelope compt + 3 -27.4 -1.98 -54.6 0.107 0 48.5 133 Shape1 Transportation + 4 -2.85 17.9 -58.9 0.0774 0 31.8 165 Shape1 compt + 5 -3.31 16.8 -58.2 0.0673 0 1.34 166 Shape1 compt + 6 -3.78 -1.31 -87.8 0.0575 0 34.7 201 Shape1 compt + 7 0.714 1.54 -87.8 0.0544 0 5.32 206 Shape1 compt + 8 5.92 6.13 -100 0.0544 0 14 220 Envelope Transportation 9 27.3 25 -150 0.0544 0 57.5 278 World Transportation 10 40.1 36.3 -180 0.0544 0 34.5 312 OutOfWorld Transportation @@ -1106,39 +1113,39 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0.697 1.55 -87.7 0.00311 0 0 0 Shape1 initStep - 1 0.697 1.55 -87.7 0 0.00311 0.000294 0.000294 Shape1 eIoni + 0 0.714 1.54 -87.8 0.00311 0 0 0 Shape1 initStep + 1 0.714 1.54 -87.8 0 0.00311 0.000294 0.000294 Shape1 eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 10, Parent ID = 5 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.8 -1.3 -87.7 0.00975 0 0 0 Shape1 initStep - 1 -3.8 -1.3 -87.7 0 0.00975 0.0021 0.0021 Shape1 eIoni + 0 -3.78 -1.31 -87.8 0.00975 0 0 0 Shape1 initStep + 1 -3.78 -1.32 -87.8 0 0.00975 0.0021 0.0021 Shape1 eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 5 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -3.32 16.8 -58.2 0.0101 0 0 0 Shape1 initStep - 1 -3.32 16.8 -58.2 0 0.0101 0.00226 0.00226 Shape1 eIoni + 0 -3.31 16.8 -58.2 0.0101 0 0 0 Shape1 initStep + 1 -3.31 16.8 -58.2 0 0.0101 0.00226 0.00226 Shape1 eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 5 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -2.87 17.8 -58.9 0.0296 0 0 0 Shape1 initStep - 1 -2.86 17.9 -58.9 0 0.0296 0.015 0.015 Shape1 eIoni + 0 -2.85 17.9 -58.9 0.0296 0 0 0 Shape1 initStep + 1 -2.85 17.9 -58.9 0 0.0296 0.015 0.015 Shape1 eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 5 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 -64.8 -32.2 -48.1 0.0604 0 0 0 Envelope initStep + 0 -64.8 -32.2 -48.2 0.0604 0 0 0 Envelope initStep 1 -64.8 -32.2 -48.1 0 0.0604 0.0605 0.0605 Envelope eIoni ********************************************************************************************************* @@ -1195,7 +1202,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Run terminated. Run Summary Number of events processed : 5 - User=0.000000s Real=0.001601s Sys=0.000000s + User=0.000000s Real=0.001957s Sys=0.000000s --------------------End of Global Run----------------------- The run consists of 5 gamma of 6 MeV @@ -1306,7 +1313,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Run terminated. Run Summary Number of events processed : 1 - User=0.000000s Real=0.000757s Sys=0.000000s + User=0.000000s Real=0.000907s Sys=0.000000s --------------------End of Global Run----------------------- The run consists of 1 proton of 210 MeV diff --git a/examples/extended/visualization/userVisAction/run2.out b/examples/extended/visualization/userVisAction/run2.out index c147d43a87..d8621eb572 100644 --- a/examples/extended/visualization/userVisAction/run2.out +++ b/examples/extended/visualization/userVisAction/run2.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -32,6 +32,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -83,7 +85,6 @@ Checking overlaps for volume Shape2:0 (G4Trd) ... OK! Emin(FTFP)= 3 GeV Emax(FTFP)= 100000 GeV Emin(BERT)= 1 GeV Emax(BERT)= 6 GeV Emax(BERTpions)= 12 GeV Emin(BIC) = 0 GeV Emax(BIC)= 1.5 GeV. -### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 /run/verbose 2 # # gamma 6 MeV to the direction (0.,0.,1.) @@ -103,6 +104,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -130,7 +132,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -181,8 +183,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -532,28 +534,6 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 ==================================================================== HADRONIC PROCESSES SUMMARY (verbose level 1) ---------------------------------------------------- - Hadronic Processes for neutron - - Process: hadElastic - Model: hElasticCHIPS: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV - - - Process: neutronInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 1 GeV ---> 6 GeV - Model: Binary Cascade: 0 eV ---> 1.5 GeV - Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV - - - Process: nCapture - Model: nRadCapture: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV - - - Process: nKiller - --------------------------------------------------- Hadronic Processes for B- @@ -670,6 +650,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -835,6 +820,28 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: muMinusCaptureAtRest +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 1 GeV ---> 6 GeV + Model: Binary Cascade: 0 eV ---> 1.5 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + --------------------------------------------------- Hadronic Processes for pi+ @@ -1013,11 +1020,11 @@ See commands in /vis/modeling/trajectories/ for other options. Run terminated. Run Summary Number of events processed : 1000 - User=0.030000s Real=0.029822s Sys=0.000000s + User=0.030000s Real=0.034076s Sys=0.000000s --------------------End of Global Run----------------------- The run consists of 1000 gamma of 6 MeV - Dose in scoring volume : 45.4775 picoGy +- 3.93022 picoGy + Dose in scoring volume : 45.9908 picoGy +- 4.00657 picoGy ------------------------------------------------------------ # @@ -1088,11 +1095,11 @@ Index : 3 used in the geometry : Yes Run terminated. Run Summary Number of events processed : 1000 - User=0.250000s Real=0.249798s Sys=0.000000s + User=0.260000s Real=0.267783s Sys=0.010000s --------------------End of Global Run----------------------- The run consists of 1000 proton of 210 MeV - Dose in scoring volume : 5.10447 nanoGy +- 145.91 picoGy + Dose in scoring volume : 5.03 nanoGy +- 146.913 picoGy ------------------------------------------------------------ Graphics systems deleted. @@ -1110,24 +1117,24 @@ G4SDManager deleted. EventManager deleted. Units table cleared. TransportationManager deleted. -Total navigation history collections cleaned: 10 +Total navigation history collections cleaned: 13 G4RNGHelper object is deleted. ================== Deleting memory pools =================== -Pool ID '20G4NavigationLevelRep', size : 0.0135 MB +Pool ID '20G4NavigationLevelRep', size : 0.0183 MB Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB -Pool ID '17G4DynamicParticle', size : 0.00385 MB +Pool ID '17G4DynamicParticle', size : 0.00481 MB Pool ID '16G4SmartVoxelNode', size : 0.000961 MB Pool ID '17G4SmartVoxelProxy', size : 0.000961 MB Pool ID '7G4Event', size : 0.000961 MB Pool ID '15G4PrimaryVertex', size : 0.000961 MB Pool ID '17G4PrimaryParticle', size : 0.000961 MB -Pool ID '7G4Track', size : 0.00673 MB -Pool ID '18G4TouchableHistory', size : 0.000961 MB +Pool ID '7G4Track', size : 0.00865 MB +Pool ID '18G4TouchableHistory', size : 0.00192 MB Pool ID '15G4CountedObjectIvE', size : 0.000961 MB Pool ID '10G4Fragment', size : 0.00192 MB Pool ID '17G4ReactionProduct', size : 0.00192 MB Number of memory pools allocated: 13 of which, static: 0 -Dynamic pools deleted: 13 / Total memory freed: 0.036 MB +Dynamic pools deleted: 13 / Total memory freed: 0.044 MB ============================================================ G4Allocator objects are deleted. UImanager deleted. diff --git a/examples/extended/visualization/userVisAction/userVisAction.out b/examples/extended/visualization/userVisAction/userVisAction.out index bbc96919ee..e52392c63f 100644 --- a/examples/extended/visualization/userVisAction/userVisAction.out +++ b/examples/extended/visualization/userVisAction/userVisAction.out @@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo ************************************************************** - Geant4 version Name: geant4-11-01-beta-01 (30-June-2022) + Geant4 version Name: geant4-11-01-ref-00 (9-December-2022) Copyright : Geant4 Collaboration References : NIM A 506 (2003), 250-303 : IEEE-TNS 53 (2006), 270-278 @@ -32,6 +32,8 @@ Registered graphics systems are: RayTracer (RayTracer) VRML2FILE (VRML2FILE) gMocrenFile (gMocrenFile) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) + TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) OpenGLImmediateQt (OGLIQt, OGLI) OpenGLStoredQt (OGLSQt, OGL, OGLS) OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) @@ -83,7 +85,6 @@ Checking overlaps for volume Shape2:0 (G4Trd) ... OK! Emin(FTFP)= 3 GeV Emax(FTFP)= 100000 GeV Emin(BERT)= 1 GeV Emax(BERT)= 6 GeV Emax(BERTpions)= 12 GeV Emin(BIC) = 0 GeV Emax(BIC)= 1.5 GeV. -### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 ======================================================================= ====== Electromagnetic Physics Parameters ======== ======================================================================= @@ -93,6 +94,7 @@ Apply cuts on all EM processes 0 Use combined TransportationWithMsc Disabled Use general process 1 Enable linear polarisation for gamma 0 +Enable photoeffect sampling below K-shell 1 Enable sampling of quantum entanglement 0 X-section factor for integral approach 0.8 Min kinetic energy for tables 100 eV @@ -120,7 +122,7 @@ Lowest e+e- kinetic energy 1 keV Lowest muon/hadron kinetic energy 1 keV Use ICRU90 data 0 Fluctuations of dE/dx are enabled 1 -Type of fluctuation model 2 +Type of fluctuation model for leptons and hadrons Urban Use built-in Birks satuaration 0 Build CSDA range enabled 0 Use cut as a final range enabled 0 @@ -171,8 +173,8 @@ conv: for gamma SubType=14 BuildTable=1 BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 100 keV to 100 TeV in 63 bins + Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 + LambdaPrime table from 150 keV to 100 TeV in 62 bins ===== EM models for the G4Region DefaultRegionForTheWorld ====== LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator @@ -522,28 +524,6 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 ==================================================================== HADRONIC PROCESSES SUMMARY (verbose level 1) ---------------------------------------------------- - Hadronic Processes for neutron - - Process: hadElastic - Model: hElasticCHIPS: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV - - - Process: neutronInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 1 GeV ---> 6 GeV - Model: Binary Cascade: 0 eV ---> 1.5 GeV - Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV - - - Process: nCapture - Model: nRadCapture: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV - - - Process: nKiller - --------------------------------------------------- Hadronic Processes for B- @@ -660,6 +640,11 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: hFritiofCaptureAtRest +--------------------------------------------------- + Hadronic Processes for anti_hypertriton + + Process: hFritiofCaptureAtRest + --------------------------------------------------- Hadronic Processes for anti_lambda @@ -825,6 +810,28 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 Process: muMinusCaptureAtRest +--------------------------------------------------- + Hadronic Processes for neutron + + Process: hadElastic + Model: hElasticCHIPS: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV + + + Process: neutronInelastic + Model: FTFP: 3 GeV ---> 100 TeV + Model: BertiniCascade: 1 GeV ---> 6 GeV + Model: Binary Cascade: 0 eV ---> 1.5 GeV + Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV + + + Process: nCapture + Model: nRadCapture: 0 eV ---> 100 TeV + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV + + --------------------------------------------------- Hadronic Processes for pi+ @@ -942,7 +949,7 @@ See commands in /vis/modeling/trajectories/ for other options. --------------------End of Global Run----------------------- The run consists of 1000 gamma of 6 MeV - Dose in scoring volume : 45.4775 picoGy +- 3.93022 picoGy + Dose in scoring volume : 45.9908 picoGy +- 4.00657 picoGy ------------------------------------------------------------ ### Run 1 starts. @@ -959,7 +966,7 @@ See commands in /vis/modeling/trajectories/ for other options. --------------------End of Global Run----------------------- The run consists of 1000 proton of 210 MeV - Dose in scoring volume : 5.10447 nanoGy +- 145.91 picoGy + Dose in scoring volume : 5.03 nanoGy +- 146.913 picoGy ------------------------------------------------------------ Graphics systems deleted. diff --git a/source/GNUmakefile b/source/GNUmakefile index 4b92b4e93b..24f394a645 100644 --- a/source/GNUmakefile +++ b/source/GNUmakefile @@ -167,8 +167,8 @@ endif banner: @$(ECHO) "*************************************************************" - @$(ECHO) " Installation Geant4 version geant4-11-01-beta-01 " - @$(ECHO) " Copyright (C) 1994-2022 Geant4 Collaboration " + @$(ECHO) " Installation Geant4 version geant4-11-01 " + @$(ECHO) " Copyright (C) 1994-2023 Geant4 Collaboration " @$(ECHO) "*************************************************************" clean_libs:: diff --git a/source/analysis/History b/source/analysis/History index 6a0a336722..aa0d83ec01 100644 --- a/source/analysis/History +++ b/source/analysis/History @@ -1,8 +1,156 @@ # Category analysis History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-28 I. Hrivnacova (analysis-V11-00-27) +- Implemented analysis manager list command (missing in analysis-V11-00-10): + /analysis/ntuple/list [onlyIfActive] + +## 2022-11-25 Gabriele Cosmo (analysis-V11-00-26) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-14 I. Hrivnacova (analysis-V11-00-25) +- Added a protection against nullptr in G4VAnalysisManager::GetNofNtuples() + - addressing the problem report #2518. + +## 2022-11-09 I. Hrivnacova (analysis-V11-00-24) +- Restored G4RootNtupleFileManager::CloseNtupleFiles() + used in MPI overriding class + +## 2022-11-03 I. Hrivnacova (analysis-V11-00-23) +- Removed debug printing from G4XmlFileManager + +## 2022-11-02 I. Hrivnacova (analysis-V11-00-22) +- Coverity fixes: + - Dead code (G4THnMessenger, G4RootFileManager) + - Resource leak (G4NtupleMessenger) + - Recursion in included headers (G4THnToolsManager, G4THnMessenger) + +## 2022-10-28 I. Hrivnacova (analysis-V11-00-21) +- Removed debug printing from G4AnalysisMessenger constructor + +## 2022-10-21 I. Hrivnacova (analysis-V11-00-20) +- Added new UI commands for analysis file management: + + - New commands in G4AnalysisMessenger class: + /analysis/openFile, write, closeFile and reset + New command in new G4GenericAnalysisMessenger class: + /analysis/setDefaultFileType + - Support also multiple write with/without calling write and/or reset + in between two runs + - Demonstrated (and tested) in new analysis example AnaEx03 + + - Implementation details: + - Do not broadcast commands for actions called at the end of run + (write, reset and closeFile) and let master to execute action on workers + and master in the right order + - Added alternative private methods for Write, Reset and CloseFile + with the name suffix FromUI, executed only on master + and taking care of processing on workers in the right order + - Make G4AnalyssMessenger friend class to give access to these functions + - Added G4AnalysisState::fThreadId and its getter needed for + accessing thread Id when triggering workers actions from master + - Added a protection from calling OpenFile twice + - Reset histograms on workers (G4THnManager.icc) after they were merged + in master (otherwise they contribute again in the accumulation of data + when successive write is called without previous reset) + +## 2022-10-15 I. Hrivnacova (analysis-V11-00-19) +- Corrected multiple write for ntuples with set file and activated merging + (files n1.root and ntuples.root in test32) + +## 2022-10-14 I. Hrivnacova (analysis-V11-00-18) +- Implemented support for writing ntuples in a file multiple times: + - The object cycle number is attributed in the same way as for histograms + - fCycle data and its functions moved from Hn information objects in G4AnalysisState + - Fixed development in analysis-V11-00-16: corrected updating Csv file names per histograms + with cycle number + +## 2022-10-13 I. Hrivnacova (analysis-V11-00-17) +- Replaced G4TNtupleDescription, G4RootPNtupleDescription structures with classes + more suitable for adding members for handling ntuple cycles + +## 2022-10-10 I. Hrivnacova (analysis-V11-00-16) +- Implemented support for writing histograms in a file multiple times: + - With the Root output type the object cycle number is attributed automatically + - With other output types ,that do not support object cycles, the object name + is appended with _vN, where N is the number of the write cycle, when the object + is written more than once. + No extension is added when the object is written for the first time (cycle 0). + +## 2022-10-05 I. Hrivnacova (analysis-V11-00-15) +- Fix in applying units in "create" and "set" commands + +## 2022-09-08 Ben Morgan (analysis-V11-00-14) +- Resolve inconsistent dependency in hntools + +## 2022-08-31 I. Hrivnacova (analysis-V11-00-13) + +- Introduced a common implementation for histogram/profiles manager: + - New classes: + - G4VTBaseHnManager - replaces G4VHn|PnManager + - G4THnToolsManager - replaces G4H*|P*Manager classes + - G4THnMessenger - replaces G4H*|P*Messenger class + - G4HnDimension - helper type to manipulate ndim, xmin, xmake parameters + together + - Updated classes: + - G4THnManager: added a vector of pairs of histogram and information + as a data member to simplify the access when both objects are used + - Updated HnInformation structures functions to use compacted + parameters + - Updated functions in G4AnalysisUtilities: + - Moved Check*, UpdateTitle functions in appropriate classes + - Added G4Analysis::IsProfile() + - All messenger classes: replaced the usage of the analysis messenger helper + with private helper functions + - G4Plot* classes moved from managent in hntools + - Removed classes + - G4VH1Manager, etc. for H2, H3, P1, P2 + - G4H1Manager, etc. for H2, H3, P1, P2 + - G4H1Messenger, etc. for H2, H3, P1, P2 + - G4ToolsAnalysisMassenger, G4FileMessenger + - G4BaseHistoUtilities + +## 2022-08-25 G. Cosmo (analysis-V11-00-12) +- Attempt to fix compilation warning on gcc-12.1 in function ObjectType() + in G4AnalysisMessengerHelper. + +## 2022-08-24 I. Hrivnacova (analysis-V11-00-11) +- Fix in deleting files (root): + do not delete the final (merged) file when only ntuples are present + +## 2022-08-22 I. Hrivnacova (analysis-V11-00-10) +- Implemented new analysis manager List functions and associated commands: + /analysis/list [onlyIfActive] + /analysis/xy/list [onlyIfActive] + where xy = h1, h2, h3, p1, p2, ntuple + +## 2022-08-09 I. Hrivnacova (analysis-V11-00-09) +- Refactored the of the analysis manager methods for file handlling from + the output specific managers in the common implementation in G4ToolsAnalysisManger. + Besides code simplification, this guaranties identical behavior with generic analysis + manager. +- Reviewed/fixed resetting data when postponed after CloseFile (for plotting) +- Fixes in deleting files: + do not delete (not empty) main ntuple files with generic analysis manager, + delete empty ntuple csv and xml files created on the main thread + +## 2022-08-01 I. Hrivnacova (analysis-V11-00-08) +- clang-tidy fixes - checks recommended in CODING_GUIDELINES.rst + +## 2022-07-27 I. Hrivnacova (analysis-V11-00-07) +- Fix Coverity: use auto& to avoid copying of shared_ptr and pair objects + +## 2022-07-13 I. Hrivnacova (analysis-V11-00-06) +- Added G4RootRFile type = a tuple for the Root read file including its directories, + analogic to G4RootRFile for Root output, used now in the G4RootRfileManager::fRFiles + map instead of tools::rroot::file. + This allows deleting file directories in the class dtor, and should fix + the Coverity defect (deleting local variable 'newDir' in G4RootRNtupleManager) ## 2022-05-18 Guy Barrand (analysis-V11-00-05) - have "toolx" namespace for g4tools classes related to "externals", then: diff --git a/source/analysis/History.fix-auto b/source/analysis/History.fix-auto new file mode 100644 index 0000000000..4916cab5c4 --- /dev/null +++ b/source/analysis/History.fix-auto @@ -0,0 +1,1521 @@ +# Category analysis History + +See `CONTRIBUTING.rst` for details of **required** info/format for each entry, +which **must** added in reverse chronological order (newest at the top). It must **not** +be used as a substitute for writing good git commit messages! + +## 2022-07-27 I. Hrivnacova (analysis-V11-00-07) +- Fix Coverity: use auto& to avoid copying of shared_ptr and pair objects + +## 2022-07-13 I. Hrivnacova (analysis-V11-00-06) +- Added G4RootRFile type = a tuple for the Root read file including its directories, + analogic to G4RootRFile for Root output, used now in the G4RootRfileManager::fRFiles + map instead of tools::rroot::file. + This allows deleting file directories in the class dtor, and should fix + the Coverity defect (deleting local variable 'newDir' in G4RootRNtupleManager) + +## 2022-05-18 Guy Barrand (analysis-V11-00-05) +- have "toolx" namespace for g4tools classes related to "externals", then: + - tools::[hdf5,zlib,xml::xml_style,raxml,sg::text_freetype] become toolx::[hdf5,zlib,xml::xml_style,raxml,sg::text_freetype]. + - corresponding includes #include become #include + +## 2022-03-24 Ben Morgan (analysis-V11-00-04) +- Use geant4_category_modules to optionaly add G4hdf5 module to category + +## 2022-03-02 I. Hrivnacova (analysis-V11-00-03) +- Fix notifying about closing file in G4GenericAnalysisManager; + this fixes savinng scorers in analysis file in B3 example + for the second and further runs. + +## 2022-02-23 I. Hrivnacova (analysis-V11-00-02) +- Added "getVector" commands (for visualization): + /analysis/hn|pn/getVector + +## 2022-01-28 Ben Morgan (analysis-V11-00-01) +- Replace `geant4_global_library_target` with direct file inclusion and + call to `geant4_add_category` to define library build from source modules. + +## 2021-12-10 Ben Morgan (analysis-V11-00-00) +- Change to new Markdown History format + +--- + +# History entries prior to 11.0 + +November 15, 2021 I. Hrivnacova (analysis-V10-07-30) +- Fixed remaining Coverity issues + +November 15, 2021 I. Hrivnacova (analysis-V10-07-29) +- Fixed Coverity issues + +November 09, 2021 I. Hrivnacova (analysis-V10-07-28) +- Fix in G4MPIToolsManager: do not call Receive() twice + +November 05, 2021 I. Hrivnacova (analysis-V10-07-27) +- Added new public function G4VAnalysisManager::Clear() + that deletes all allocated analysis objects and clears + their collections. + This function should be used as a replacement for deleting + the analysis manager in the applications that allocate the + analysis data in begin of run and deleted the analysis + manager in end of run. +- Minor code clean-up + +November 04, 2021 I. Hrivnacova (analysis-V10-07-26) +- Renamed G4VAnalysisReader::ReadNtuple(const G4String&) + back in GetNtuple. Cannot reproduce the ambiguity error + with GetNtuple(G4int). + +October 28, 2021 I. Hrivnacova (analysis-V10-07-25) +- Moved data members initialization in header files; + added deleted default constructor where appropriate, + added explicit keyword to one argument construtors where + missing +- Use brace data members initialization everywhere +- Implemented missing WriteOnAscii() - for h2,h3,p1,p2 +- Use fonts from tools in G4PlotManager.cc +- Removed CMake -DTOOLS_USE_EXPAT definition (not needed) +- Added G4ToolsAnalysisMessenger that implements "get" commands + /analysis/hn|pn/get id + +October 27, 2021 B.Morgan (analysis-V10-07-24) +- Use G4StrUtil functions replacing deprecated G4String member functions + +October 26, 2021 I. Hrivnacova (analysis-V10-07-23) +- Fixed G4*RFileManager destructors; + thanks to B. Morgan for spotting this bug + +October 25, 2021 I. Hrivnacova (analysis-V10-07-22) +- Added public function G4VAnalysisManager::Reset() + - Needed when calling files are closed without reset + by calling analysisManager->CloseFile(false) + (see B5 example with interactive plotting) +- Minor fixes: + - Do not issue same log messages from generic analysis manager + and generic file manager + - Do not call SetIsEmpty() twice in Hdf5 + +October 22, 2021 I. Hrivnacova (analysis-V10-07-21) +- Support for ntuple columns of string vector type + for Xml, Hdf5 output type: + - added helper code for Xml reader, no update needed for Hdf5 + +October 19, 2021 I. Hrivnacova (analysis-V10-07-20) +- Implemented support for file system directories with Csv output + as proposed in [GitHub PR #32](https://github.com/Geant4/geant4/pull/32) +- Fixed reading objects from files with directories (Root, Hdf5) +- Implemented handling directories in Generic analysis manager +- Clean-up in G4ToolsAnalysisManager +- Reimplemented utility functions GetBaseName(), GetExtension() using + library + +October 6, 2021 I. Hrivnacova (analysis-V10-07-19) +- Added new G4AnalysisManager.hh header defining + using G4AnalysisManager = G4GenericAnalysisManager +- Removed g4csv.hh, g4hdf5.hh, g4root.hh, g4xml.hh +- Reduced output specific type definitions in + g4xyz_defs.hh to ntuple end rntuple types +- Removed g4analysis.hh with the + G4Analysis::MasterInstance() factory method +- Removed the default value ("root") for the default file type + in G4GenericAnalysisManager - the default must be set by + user if using fileNames without extensions +- Updated exception codes and messages in accummulables + +September 20, 2021 I. Hrivnacova (analysis-V10-07-18) +- clang-tidy performance fixes: + - use const auto&, std::move where appropriate + - revisited passing by std::shared_ptr +- clang-tidy modernize fixes: + - use make_unique, nullptr, auto, emplace_back, using + - use default for disabled constructors and destructors, + delete for private member functions not implemented +- Removed explicit for constructors with more than 1 parameters + +September 17, 2021 I. Hrivnacova (analysis-V10-07-17) +- Fixed evaluation of result of deleting empty file + in G4RootAnalysisManager causing wrong warnings + +September 3, 2021 I. Hrivnacova (analysis-V10-07-16) +- Added support for ntuple columns of string vectors via + new public functions in G4VAnalysisManager and G4VAnalysisReader: + G4bool SetNtupleSColumn(const G4String& columnName, + std::vector& vector) final; + G4bool SetNtupleSColumn(G4int ntupleId, const G4String& columnName, + std::vector& vector) = 0; + +August 31, 2021 I. Hrivnacova (analysis-V10-07-15) +- Code clean-up: + - Review of static data members: + - changed static const to static constexpr where possible + or inline static const otherwise (for G4String) + - declares static data members inline and moved their initialization + in header file + - Be consistent: + - "" for includes from g4tools + - "fk" prefix for class constexpr data names + - Template argument names: + HT, NT, FT for histogram/profile, ntuple, file types + - Removed redundant includes of "G4Threading.hh", + +August 26, 2021 B. Morgan (analysis-V10-07-14) +- Remove default: in switch for GetMergeFunction + - Prevents accidental fall through of Windows + +August 25, 2021 I. Hrivnacova (analysis-V10-07-13) +- Separated Hn/Pn object file handling from output specific analysis readers + in Hn file manager classes for reading (G4XHnRFileManager) +- Replaced the explicit Read[Hn|Pn] functions in the analysis readers + by a common implementation in G4ToolsAnalysisReader + using the newly introduced Hn file manager classes for reading +- Separated ReadNtuple functions from the analysis readers in + the RNtuple manager classes +- Renamed G4VAnalysisReader::GetNtuple(const G4String&) in ReadNtuple + to avoid ambiguity with GetNtuple(G4int). + Note that this change brings backward incompatibility. +- Using more shared pointers + +August 18, 2021 I. Hrivnacova (analysis-V10-07-12) +- Simplified verbosity messages +- Plus more simplifications in Warn calls +- Separated inline functions from G4MPIToolsManager.hh + to new .icc + +August 16, 2021 I. Hrivnacova (analysis-V10-07-11) +- Simplified calls to G4Exceptions: + - Added G4Analysis::Warn() and changed the calls to G4Exception in + all analysis classes (except accummulables) + - Reduced exception classification to + Analysis_F001: Fatal exceptions - all fatal exception + Analysis_W001: Warnings - all warnings +- Replaced some constants with constexpr + +August 12, 2021 I. Hrivnacova (analysis-V10-07-10) +- Replaced the explicit Write[Hn|Pn] functions in the analysis managers + by a common implementation in G4ToolsAnalysisManager::WriteImpl() and Merge() + using the new Hn file manager classes introduced for the generic file manager + last year. + The same code is now used for writing histograms/profiles by specific analysis managers and the generic analysis manager. +- Added new G4ToolsAnalysisManager::IsEmpty() function +- Removed trailing whitespaces + +August 6, 2021 I. Hrivnacova (analysis-V10-07-09) +- Added new G4VAnalysisReader public function + G4bool CloseFiles(G4bool reset = true); + to be called by user before the end of program + and its implementation for all readers. + This prevents from errors in the Hdf5 read test + after migration of the readers to G4ThreadLocalSingleton. + +July 19, 2021 I. Hrivnacova (analysis-V10-07-08) +- Migration to G4ThreadLocalSingleton: + in all specific analysis manager and reader classes. + After this migration the singleton instances are deletes + by the Geant4 kernel, that's why their deleting has to be + removed from the client code. +- Removed isMaster argument from managers/reders constructors, + and retrieve this info from G4Threading where needed. + +July 15, 2021 I. Hrivnacova (analysis-V10-07-07) +- Replaced G4Analysis::make_unique with std::make_unique +- Using [[maybe_unused]] where appropriate + +June 29, 2021 G. Cosmo (analysis-V10-07-06) +- Fixed compilation errors in G4CsvAnalysisReader and G4XmlAnalysisReader + occurring with c++20 enabled. + +May 25, 2021 B. Morgan (analysis-V10-07-05) +- Move fonts/ directory and install logic to g4tools external, as prime interface + to Freetype. + +March 30, 2021 B. Morgan (analysis-V10-07-04) +- Migrate build to modular CMake API + +February 26, 2021 I. Hrivnacova (analysis-V10-07-03) +- Fixed ntuple indexing when FinishNtuple is called in different order + than CreateNtuple. + Addressing the problem report #2335. + +February 18, 2021 B. Morgan (analysis-V10-07-02) +- Move g4tools to externals category + +February 2, 2021 I. Hrivnacova (analysis-V10-07-01) +- Fixed the problem with merging ntuples with columns of vector type + reported by Riccardo Pilato in G4 Forum. + +January 5, 2021 I. Hrivnacova (analysis-V10-07-00) +- Updated to g4tools 5.2.3 (Guy Barrand): + Bug fix in tools/histo/h2,h3 : get_bin_content(): have '&' in "get" arguments. + Addressing the problem report #2306. + See History_tools for the complete list of modifications. + +November 16, 2020 G. Cosmo (analysis-V10-06-11) +- Fixed typos in printed-out text. Addressing problem report #2285. + +November 12, 2020 B. Morgan (analysis-V10-06-10) +- Apply typo fixes from Gurkan Myczko (https://github.com/Geant4/geant4/pull/15) + +November 10, 2020 I. Hrivnacova (analysis-V10-06-09) +- Fixed the memory leak reported by valgrind in deleting files + +November 06, 2020 I. Hrivnacova (analysis-V10-06-08) +- Make GenericAnalysisManager working with file names without extension + (needed for backward compatibility): + - Added fDefaultType data member and its setter, getter (with "root" default) +- Fixed deleting empty files +- Fixed minor memory leaks + +November 04, 2020 I. Hrivnacova (analysis-V10-06-07) +- Changes to allow overriding Root classes in g4mpi/analysis +- Removed redundant variable in G4RootNtupleFileManager::Reset() + +October 30, 2020 I. Hrivnacova (analysis-V10-06-06) +- Implemented writing ntuples in multiple files of the same output type: + - New G4VAnalysisManager function: + void SetNtupleFileName(G4int objectId, const G4String& name); + and UI commands: + /analysis/ntuple/setFileName id fileName + /analysis/ntuple/setFileNameToAll fileName +- Finalizes implementation of extra write of histograms + - Polished G4GenericAnalysisManager::WriteH1 and added + functions for other Hn types +- This also fixes issues in the ntuple output introduced with previous tag + (observed in B4, TestEm1, microbeam) + +October 21, 2020 I. Hrivnacova (analysis-V10-06-05) +- Major upgrade including the support for multiple files + and multiple output types: + - New G4GenericAnalysisManager,G4GenericFileManager classes + if factory category + - New G4VAnalysisManager functions: + void SetH1FileName(G4int objectId, const G4String& name); + ... etc. for H2, H3, P1, P2 + and corresponding UI commands: + /analysis/h1/setFileName id name + /analysis/h1/setFileName id name + ... etc. for h2, h3, p1, p2 + - Redesign of management classes to separate object file handling + from output specifuc analysis managers + - The multiple file output is tested in new test32 + +October 14, 2020 I. Hrivnacova (analysis-V10-06-04) +- Updated G4PlotManager.cc - using new wrap_viewplot_fonts_google_style + header +- Updated to g4tools 5.2.1 (Guy Barrand): + - Change the usage of arialbd.ttf, helvetica.ttf with roboto_bold.ttf + and lato_regular.ttf (google fonts). + - Modifications in tools/hdf5 to use H5free_memory() instead free() at + some places (needed for HDF5/1.12.0). + - Modifations in graphics to be be in sync with the code in inlib/exlib + around Apple/Metal, but they should not have an impact on offscreen plotting. + See History_tools for the complete list of modifications. + +June 10, 2020 J. Madsen (analysis-V10-06-03) +- (bug-fix) Added a null-pointer check to ntupleDescription->fNtuple in + G4RootPNtupleManager::Merge. This happened during testing of new + G4TaskRunManager in basic/B5, which defaults to a higher + number of threads than G4MTRunManager. + +May 22, 2020 I. Hrivnacova (analysis-V10-06-02) +- Updated to g4tools 5.1.0 (Guy Barrand): + Corrections to handle automatic min/max axes values in case of log scale. + See History_tools for the complete list of modifications. + +April 29, 2020 G. Folger (analysis-V10-06-01) +- (trivial) fix for clang10, affects header g4tools/include/tools/gl2ps + +December 9, 2019 B. Morgan (analysis-V10-06-00) +- Cleanup CMake build, removing obsolete granular library options and + explicit include_directories. +- Update granular dependencies in preparation for modularization +- Remove uneeded links to externals in factory + +December 3, 2019 I. Hrivnacova (analysis-V10-05-13) +- Use consistently the same default value of rowMode + in G4RootAnalysisManager::SetNtupleRowWise() as defined in the + G4VAnalysisManager base class. + +November 19, 2019 G. Cosmo (analysis-V10-05-12) +- Fixed more cases of implicit type conversions. + +November 17, 2019 I. Hrivnacova (analysis-V10-05-11) +- Updated to g4tools 5.0.5 (Guy Barrand): + Fixed compilation warning from gl2ps showing up on gcc-9.2. + See History_tools for the complete list of modifications. + +November 15, 2019 G. Cosmo (analysis-V10-05-10) +- Fixed cases of implicit type conversions from size_t to G4int. + +November 11, 2019 B. Morgan (analysis-V10-05-09) +- Link directly to FreeType and HDF5 impormted targets + +November 8, 2019 I. Hrivnacova (analysis-V10-05-08) +- In G4PlotManager: Disabled PAW encoding + (this fixes a problem with unwanted axis labels in Greek) +- Updated to g4tools 5.0.4 (Guy Barrand): + - sg/plotter: added function set_encoding(), set_encoding_none() which allow + to disable (unwanted) paw specific encoding + - Fixed Coverity warnings + +October 21, 2019 I. Hrivnacova (analysis-V10-05-07) +- Added fRowWise data member in G4RootNtupleManager to make the parameter + available in MPI + +October 17, 2019 I. Hrivnacova (analysis-V10-05-06) +- Updated to g4tools 5.0.2 (Guy Barrand): + Handle axis label of format "10^%d?" in case of freetype font. + +October 14, 2019 I. Hrivnacova (analysis-V10-05-05) +- Enhanced the G4VAnalysisManager interface: + - Added new option for ntuple merging and updated/added functions for merging: + - SetNtupleMerging(): removed rowWise and basketSize optional paremeters + - SetNtupleRowWise(): added parameter 'rowMode' with a default value + - SetBasketSize(), SetBasketEntries(): new methods + - Added functions and UI commands for setting axis log scale for plotting: + - Set[H,P][1,2,3][X,Y.Z]AxisIsLog() + and analoguos getters + - New UI commands + /analysis/[h,p][1,2,3]/set[X,Y,Z]axisLog true|false +- Fix in g4tools for axis labels with log scale + +October 9, 2019 I. Hrivnacova (analysis-V10-05-04) +- Updated to g4tools 5.0.1 (Guy Barrand): + - ROOT format : restore a "per event/row view" for the ntuple column-wise in MT and MPI. + - batch plotting : fixes to avoid labels overlap when having a grid of plotters. + - MPI : fix a memory leak. + - scene graph : have material for interactive plotting. + - include modifications coming from other usage of inlib/exlib, for example, in rroot, to be able to read TClonesArray. + See History_tools for the complete list of modifications. + +September 24, 2019 I. Hrivnacova (analysis-V10-05-03) +- Fix in g4tools: + - mpi_create_basket: fixed memory leak (Guy Barrand) + +September 10, 2019 I. Hrivnacova (analysis-V10-05-02) +- Added new factory function G4Analysis::ManagerInstance(): + which allows to create the analysis manager of the type selected via a string argument; example of the user code: + #include "g4analysis.hh" + G4AnalysisManager* analysisManager = G4Analysis::ManagerInstance("root"); + + Note that G4AnalysisManager is in this case G4ToolsAnalysisManager, and not + the output type specific manager (eg. G4RootAnalysisManager), as it is + in case of using a type specific include, eg. "g4root.hh" + + Details: + - Added new analysis sub-category "factory" + - Clean-up analysis type definitions: + G4Hn*, G4Pn* types moved out of type specific namespace + - Added methods for setting ntuple merge mode in G4VAnalysisManager + with a default implementatation (issuing a warning if merging is not available) + +June 12, 2019 I. Hrivnacova (analysis-V10-05-01) +- Fixed CSV, XML ntuple file names + +March 11, 2019 G. Cosmo (analysis-V10-05-00) +- Fixed typos in printouts in G4P1Messenger, G4PlotMessenger, G4PlotParameters. + +November 28, 2018 I. Hrivnacova (analysis-V10-04-10) +- Use the same mutex in Root pntuple add_row and end_fill. + This should fix occassional failures of tests in MT mode. + +November 21, 2018 I. Hrivnacova (analysis-V10-04-09) +- Added G4RootAnalysisManager::SetNtupleRowWise(G4bool rowWise): + this allows to choose rowWise/columnWise mode also in sequential mode +- Added "boolean reset" argument in G4AnalysisManager::CloseFile() function: + this allows to close a file without resetting data + (used in MPI example) +- Allow overriding selected functions in G4RootAnalysisManager, G4RootNtupleManager + and G4TNtupleManager: needed for an external implementation of MPI ntuple merging + in MPI examples + +November 9, 2018 G. Cosmo (analysis-V10-04-08) +- tools/hatcher.icc: fixed printout typos. + +November 7, 2018 I. Hrivnacova (analysis-V10-04-07) +- Fixed creating ntuples after OpenFile for other then Root formats + +October 11, 2018 I. Hrivnacova (analysis-V10-04-06) +- Switched the default Root ntuple merge mode to rowWise +- Added friend class declarations to allow an implementation + of MPI ntuple merging in the MPI example + +October 11, 2018 I. Hrivnacova (analysis-V10-04-05) +- Modified management of plotting: + G4PlotManager is now instantiated with G4AnalysisManager what makes + possible to remove static G4PlotParameters. + (This fixes the problem report ##2083.) + +September 12, 2018 I. Hrivnacova (analysis-V10-04-04) +- Fixed the default value of rowWise argument (false) + in G4RootAnalysisManager::SetNtupleMerging(). +- Updated G4TNtupleManager::FinishTNtuple to support creating ntuples + both before and after OpenFile. + +May 25, 2018 I. Hrivnacova (analysis-V10-04-03) +- Updated to g4tools 4.2.3 (Guy Barrand): + Fixed remaining gcc-8.1.0 warnings. + See History_tools for the complete list of modifications. + +May 23, 2018 I. Hrivnacova (analysis-V10-04-02) +- Updated to g4tools 4.2.2 (Guy Barrand): + Fixed gcc-8.1.0 warnings. + See History_tools for the complete list of modifications. + +February 15, 2018 J. Madsen (analysis-V10-04-01) +- Fixed a deadlock issue with G4RootPNtupleManager where the mutex + was locked before being passed to ROOT + +December 21, 2017 G. Cosmo (analysis-V10-04-00) +- Fixed self-consistency in headers (missing #include) in G4BaseAnalysisManager, + and G4PlotManager. + +November 16, 2017 I. Hrivnacova (analysis-V10-03-17) +- Updated to g4tools 4.2.1 (Guy Barrand): + Coverity fixes. + See History_tools for the complete list of modifications. + +November 2, 2017 I. Hrivnacova (analysis-V10-03-16) +- Fixed compilation warning + +October 25, 2017 I. Hrivnacova (analysis-V10-03-15) +- Updated to g4tools 4.2.0 (Guy Barrand): + Changes in wroot, rroot in order to handle row wise ntuple in case of MT or MPI. + See History_tools for the complete list of modifications. +- Added rowWise option to G4RootAnalysisManager::SetNtupleMerging() + +October 19, 2017 I. Hrivnacova (analysis-V10-03-14) +- Fixed compiler warning in G4Hdf5FileManager.cc + +September 26, 2017 I. Hrivnacova (analysis-V10-03-13) +- Updated to g4tools 3.7.0 (Guy Barrand): + - Update in colorf, colors to make possible to use the tools/colors color + table in G4Colour class. + - Coverity fixes graphics/plotting code. + See History_tools for the complete list of modifications. + +September 11, 2017 I. Hrivnacova (analysis-V10-03-12) +- Fixed generating file name on workers (adding _tN extension). + (The problem was reported in analysis category in hypernews as item #537.) + +August 3, 2017 I. Hrivnacova (analysis-V10-03-11) +- Updated to g4tools 3.6.0 (Guy Barrand): + Fixing problems introduced in previous version. + See History_tools for the complete list of modifications. + +August 1, 2017 I. Hrivnacova (analysis-V10-03-09, 10) +- Several fixes in hdf5 +- Updated to g4tools 3.5.0 (Guy Barrand): + Coverity fixes and test/cpp/hdf5_threads.cpp program. + See History_tools for the complete list of modifications. + +July 27, 2017 I. Hrivnacova (analysis-V10-03-08) +- Adding support for Hdf5 +- Updated to g4tools 3.4.0 (Guy Barrand): + See History_tools for the complete list of modifications. + +July 21, 2017 I. Hrivnacova (analysis-V10-03-07) +- Updated to g4tools 3.3.0 (Guy Barrand): + Adding support for HDF5, improved tests. + See History_tools for the complete list of modifications. + +July 21, 2017 I. Hrivnacova (analysis-V10-03-06) +- Fixing remaining compilation warnings (gcc) + +July 21, 2017 I. Hrivnacova (analysis-V10-03-05) +- Fixing compilation warnings (gcc53) + +July 20, 2017 I. Hrivnacova (analysis-V10-03-04) +- Code improvements: + - Moved common implementation from G4V[R]NtupleManager in + new G4Base[R]NtupleManager classes + - Introduced G4TRNtupleDescription, G4TRNtupleManager template classes + - Always create an ntuple from ntuple booking (removed usage of + ntupel::create_column) + - Added an optional directoryName argument in Read[Hn][Pn][Ntuple] + functions in G4VAnalysisReader (needed for HDF5) + +April 12, 2017 I. Hrivnacova (analysis-V10-03-03) +- Corrected handling of open file failure + (This fixes problem report #1957.) + +March 14, 2017 I. Hrivnacova (analysis-V10-03-02) +- Added GetP[1,2]Id(const G4String&) functions to + the G4AnaysisManager public interface. + (This fixes problem report #1949.) + +March 03, 2017 I. Hrivnacova (analysis-V10-03-01) +- Fixed problem of removing non-empty ntuple files + in user application where ntuples are created after + open file. + (This mode is used in dna examples, eg. dnaphysics.) + +February 24, 2017 I. Hrivnacova (analysis-V10-03-00) +- Restored clean-up of Root empty files in MT mode + (which was lost with previous updates) + +November 17, 2016 I. Hrivnacova (analysis-V10-02-25) +- Fixed compiler warning issued when G4VERBOSE is not set. +- Updated to g4tools 2.3.0 (Guy Barrand): + Adding methods to tools/impi for passing ntuple data. + See History_tools for the complete list of modifications. + +November 03, 2016 I. Hrivnacova (analysis-V10-02-24) +- Updated to g4tools 2.2.0 (Guy Barrand): + Coverity fixes, + See History_tools for the complete list of modifications. +- Added prefix, postfix increment operators to G4Accumulable + +October 30, 2016 I. Hrivnacova (analysis-V10-02-23) +- Simplified G4RootAnalysisManager::GetNtupleFileNumber() to avoid using + G4Threading::GetNumberOfRunningWorkerThreads() which seems to be failing + on gcc and icc plaftorms +- Added temporary debug printing from this method + +October 28, 2016 I. Hrivnacova (analysis-V10-02-22) +- Merging ntuples in a selected number of output files + +October 24, 2016 I. Hrivnacova (analysis-V10-02-21) +- Set back not merging ntuples by default. +- Fixed resetting ntuples (which was failing in case when + a new file is written per event and ntuples are created + after file is open (examples/advanced/gammaray_telescope + use case). + +October 14, 2016 I. Hrivnacova (analysis-V10-02-20) +- Merging ntuples improvements: + - now working also when ntuples are booked after OpenFile (use case in AnaEx01) + - use directory if directory name is set + - added basketSize parameter in the SetNtupleMerging() public function + +October 10, 2016 I. Hrivnacova (analysis-V10-02-19) +- Do not merge ntuples by default. + Merging ntuples requires the application to call CreateNtuple both on master + and workers, what is not done in all examples. + +October 08, 2016 I. Hrivnacova (analysis-V10-02-18) +- Disabled code using the number of threads in G4RootAnalysisManager + untill this function is available in G4Threading; + user setting of numbert of reduced ntuple files is ignored. + +October 08, 2016 I. Hrivnacova (analysis-V10-02-17) +- Fixed case in included file name + +October 08, 2016 I. Hrivnacova (analysis-V10-02-16) +- Implemented merging of ntuples in MT mode: + - Added G4RootAnalysisManager::SetMerging(G4bool mergeNtuples, G4int nofReducedNtupleFile) + - Added G4RootPNtupleManager, G4RootMainNtupleManager classes +- Updated to g4tools 2.1.0 (Guy Barrand) + For parallel ntuple : handle properly the user std::vector for column of vector. + See History_tools for the complete list of modifications. + +October 3, 2016 I. Hrivnacova (analysis-V10-02-15) +- Removing dependencies of accumulables on other analysis categories + +October 3, 2016 G. Cosmo (analysis-V10-02-14) +- Fixed again GNUmakefile in "accumulables" module... + +September 30, 2016 I. Hrivnacova (analysis-V10-02-13) +- Updated to g4tools 2.0.0 (Guy Barrand) + Added parallel ntuple : on a same booked nutple, pass baskets from threads + or mpi ranks to a "main ntuple" tied to a file. + See History_tools for the complete list of modifications. + +September 27, 2016 G. Cosmo (analysis-V10-02-12) +- Fixed GNUmakefile in new "accumulables" module. + +September 26, 2016 I. Hrivnacova (analysis-V10-02-11) +- Renamed G4Parameter in G4Accumulable (as suggested in CM in Ferrara) + including all related classes and the subdirectory parameters + in accumulables + +September 8, 2016 I. Hrivnacova (analysis-V10-02-10) +- Enable creating/configurion profiles without cut values (vmin, vmax). + This feature was disabled by a check for the values in G4VAnalysisManager; + these values are now treated in a special way. +- Fixed duplicating Csv ntuple header + +September 6, 2016 I. Hrivnacova (analysis-V10-02-09) +- Fixed writing CSV profiles + (to be propagated in the patch to 10.2) + +July 4, 2016 I. Hrivnacova (analysis-V10-02-08) +- Adding missing inline keyword to functions defined in + G4ParameterManager.icc + +June 24, 2016 I. Hrivnacova (analysis-V10-02-07) +- Fixing compilation with gcc: added missing include + +June 23, 2016 I. Hrivnacova (analysis-V10-02-06) +- Extended and improved current implementation of parameters: + - The parameters names are optional + - Extended merge mode with kMaximum, kMinimum + and removed kUser (not needed anymore) + - Added access to paremeters via iterators and ids + (defined by the order of registering) + - Introduced G4MergeFunction type and apply merging via a function + defined accorting to the merge mode + (thanks to Jonathan Madsen for providing an example of the code) +- Return 0. instead of 0 when the return type is double +- Return nullptr instead of 0 + +June 7, 2016 I. Hrivnacova (analysis-V10-02-05) +- Updated to g4tools 1.27.4 (Guy Barrand): + Fixed remaining Windows-64 compiler warnings. + See History_tools for the complete list of modifications. + +June 3, 2016 I. Hrivnacova (analysis-V10-02-04) +- Updated to g4tools 1.27.3 (Guy Barrand): + Fixed Windows-64 compiler warnings. + See History_tools for the complete list of modifications. + +May 25, 2016 I. Hrivnacova (analysis-V10-02-03) +- Updated to g4tools 1.27.2 (Guy Barrand): + Fixed Mac OSX compiler warnings. + +May 4, 2016 I. Hrivnacova (analysis-V10-02-02) +- Updated to g4tools 1.27.1 (Guy Barrand): + Fixed gcc 6.1 compiler warnings. + +April 18, 2016 I. Hrivnacova (analysis-V10-02-01) +- Updated to g4tools 1.27.0 (Guy Barrand): + Fixed incompatibility with ROOT 5.x and 6.x formats reported in ROOT forum: + https://root.cern.ch/phpBB3/viewtopic.php?t=21315 + +December 8, 2015 I. Hrivnacova (analysis-V10-02-00) +- Fixed definition of /analysis/ntuple command directory + which was created implicitly with the commands and so + defined without a guideline and not deleted + +November 25, 2015 I. Hrivnacova (analysis-V10-01-47) +- Adding GNUmakefile in parameters sub-category + +November 25, 2015 I. Hrivnacova (analysis-V10-01-46) +- Updated GNUmakefile for added parameters sub-category + +November 20, 2015 I. Hrivnacova (analysis-V10-01-45) +- Fix compiler warning about unused parameter 'size' observed on MacOS/clang + (Guy Barrand) + +November 6, 2015 I. Hrivnacova (analysis-V10-01-44) +- Fixed default viewer settings and finalized supported plotting + configurations: + - Updated to g4tools 1.26.2 (G. Barrand): + - See History_tools for the complete list of modifications. + - Extended viewplot.cpp with a test which mimics usage in analysis category + - Set limits for layout parameters which can be changed via UI commands + +November 3, 2015 I. Hrivnacova (analysis-V10-00-46) +- Fixed handling ntuples created in MT mode on master thread + This fixes the problem reported in hypernews (#495) and the problem + of deleting non-empty Root file containing only ntuples. + +November 2, 2015 I. Hrivnacova (analysis-V10-01-43) +- Fixed G4Parameter constructor + +Oct 30, 2015 I. Hrivnacova (analysis-V10-01-42) +- Fixed handling ntuples created in MT mode on master thread + This fixes the problem reported in hypernews (#495) and the problem + of deleting non-empty Root file containing only ntuples. + +Oct 22, 2015 I. Hrivnacova (analysis-V10-01-41) +- Updated to g4tools 1.26.0 (Guy Barrand): + with added support for using freetype rendering in plotting + See History_tools for the complete list of modifications. +- Implemented support for freetype in G4PlotManager +- Added G4PlotParameters and G4PlotMessenger classes which + define the plot configuration parameters that can be set via UI + commands +- Removed unused include of G4PlotManager in hntools/src/G4ToolsAnalysisReader.cc + +Sep 23, 2015 I. Hrivnacova (analysis-V10-01-40) +- Fixed compiler warning + +Sep 23, 2015 I. Hrivnacova (analysis-V10-01-39) +- Added G4AnalysisOutput type (as class enum) and + G4AnalysisManager functions needed to connect analysis to Geant4 scorers: + static G4bool IsInstance(); + G4bool IsOpenFile() const; +- Two more minor fixes + +Sep 21, 2015 I. Hrivnacova (analysis-V10-01-38) +- Implemented setPlotting commands and added G4HnManager::SetPlotting() function + to set plotting to all objects +- Fixed false warning issued from G4TNtupleManager +- Fixed plotting in more pages + +Sep 18, 2015 I. Hrivnacova (analysis-V10-01-37) +- Fixed return value also in FillNtupleTColumn() in G4TNtupleManager.icc + +Sep 18, 2015 I. Hrivnacova (analysis-V10-01-36) +- Fixed return value in FillNtupleTColumn() in G4RootNtupleManager.hh + +Sep 18, 2015 I. Hrivnacova (analysis-V10-01-35) +- Updated to g4tools 1.24.2 (Guy Barrand): + - tools/wcsv_ntuple, tools/wroot/ntuple : have class icol public. + - tools/mpi/wrmpi : fixed use of TOOLS_USE_MPI_PACK_NOT_CONST + - See History_tools for the complete list of modifications. +- Use tools ntuple column base type (icol, iobj), which access is now enabled in tools, + to avoid casting to/from void* and type check in FillNtupleXColumn (where both column type and + column Id must be consistent with ntuple definition) +- Simplified definitions of G4TNtupleManager pure virtual functions + +Sep 16, 2015 I. Hrivnacova (analysis-V10-01-34) +- In G4TNtupleManager::FillNtupleTColumn: + changed Tvalue in const T& value to match exactlly with fill() + functions in tools + +Sep 15, 2015 I. Hrivnacova (analysis-V10-01-33) +- Do not delete ntuple with Root output type + +Sep 14, 2015 I. Hrivnacova (analysis-V10-01-32) +- One more fix in G4RootNtupleManager - exact match of arguments in + template specialization + +Sep 14, 2015 I. Hrivnacova (analysis-V10-01-31) +- Added declaration for template specializations in G4RootNtupleManager.hh; + Trying to fix vc12 compiler error: + 'none of the 5 overloads could convert all the argument types' + +Sep 14, 2015 I. Hrivnacova (analysis-V10-01-30) +- Added scope G4Analysis:: to all calls to make_unique + (to avoid ambiguity error on vc12 with std::make_unique ) + +Sep 14, 2015 I. Hrivnacova (analysis-V10-01-29) +- Replaced constexpr (not supported on vc12) with const definitions + +Sep 12, 2015 I. Hrivnacova (analysis-V10-01-28) +- Removed G4CsvNtupleManager.icc file, not used + +Sep 11, 2015 I. Hrivnacova (analysis-V10-01-27) +- Fixed compilation warnings about unused variables + +Sep 11, 2015 I. Hrivnacova (analysis-V10-01-26) +- Fixed compilation with gcc 5.1: + Added #include where missing + +Sep 11, 2015 I. Hrivnacova (analysis-V10-01-25) +Merged developments from analysis_c++11 branch: +- Introduced C++11 features +- Added classes for common handling of tools objects + to avoid code duplication: + - G4ToolsAnalysisManager, ToolsAnalysisReader; G4THnAnalysisManager (templated) + - Improved G4XNtupleManager classes: + - Introduced template functions to avoid code duplication and added + G4TNtupleManager class template with a common implementation + for all output types +- G4BaseToolsManager class replaced with G4Analysis namespace utility functions, + defined in G4BaseHistoUtilies +- Added new sub-category parameters + with first implementation of G4ParameterManager (still to be finalized) + +Sep 03, 2015 I. Hrivnacova (analysis-V10-01-24) +- Updated to g4tools 1.24.1 (Guy Barrand): + Added ability to handle old MPI_[Pack,UnPack] signature; + make whbook.cpp test compiling with tools in Geant4; + Coverity fixes. + See History_tools for the complete list of modifications. + +Aug 27, 2015 I. Hrivnacova (analysis-V10-01-23) +- Removed profile directory; the profiles are put in the histograms directory, + if its name is set by the user. + +Aug 17, 2015 I. Hrivnacova (analysis-V10-01-22) +- Updated exception_classification: + Added Analysis_W041: Requested feature is not available with selected output. + +Aug 12, 2015 I. Hrivnacova (analysis-V10-01-21) +- Fixed parameter range in setAscii command + (thanks to Mihaly Novak for reporting this problem) + +Jul 01, 2015 I. Hrivnacova (analysis-V10-01-20) +- Updated to g4tools 1.23.1 (Guy Barrand): + Finalize interfaces to MPI; + prepare the ground for plot style files. + See History_tools for the complete list of modifications. +- Added G4VAnalysisManager::Merge(tools::histo::hmpi*) + and G4MMPIToolsManager class which implements histogram & profiles + MPI merging using tools/histo/hmpi interface + +Jun 23, 2015 I. Hrivnacova (analysis-V10-00-45) +- Fixed G4Analysis::Tokenize() which was failing when processsing a string + containing opening double quota without a closing one. + +Jun 23, 2015 I. Hrivnacova (analysis-V10-01-19) +- Revised while loops and fixed G4Analysis::Tokenize() + +Jun 10, 2015 I. Hrivnacova (analysis-V10-01-18) +- Make new functions SetNtupleSColumn() in G4VRNtupleManager + pure virtual. + +Jun 03, 2015 I. Hrivnacova (analysis-V10-01-17) +- Updated to g4tools 1.22.1 (Guy Barrand): + Revisit structure for plotting related code. + Added methods for writing multiple pages in a file. +- Integrated changes in g4tools: + generating a single plot file with multiple pages. + +Jun 03, 2015 I. Hrivnacova (analysis-V10-01-16) +- Added functions for batch plotting: + o to activate batch plotting of a selected hitsogram/profile: + analysisManger->SetH1Plotting(id, true); + o the output .ps file is then create on Write() call + in addition to standard output files + o Plotting available for 1D, 2D histograms +- Updated to g4tools 1.21.0 (Guy Barrand): + Revisit #include paths to avoid too much -I when compiling. + +May 19, 2015 I. Hrivnacova (analysis-V10-01-15) + - Updated to g4tools 1.20.0 (Guy Barrand): + Added "batch plotting" facility. + +May 6, 2015 I. Hrivnacova (analysis-V10-01-14) + - Fixed command directory names and code clean-up. + +May 6, 2015 I. Hrivnacova (analysis-V10-01-13) + - Attempt to fix a compilation error on Windows: + replaced use of string operator [] with substr() + +May 6, 2015 I. Hrivnacova (analysis-V10-01-12) + - Attempt to fix a compilation error on Windows. + +May 5, 2015 I. Hrivnacova (analysis-V10-01-11) + - Implemented activation of ntuples + - Implemented setX,Y,Z commands for setting histograms/profiles + parameters per dimensiion. They can be used as an alternative to the + complex set commands. + Note: The parameters per dimensions have to be set sucessively; eg. + /analysis/h2/setX ... + /analysis/h2/setY ... + Incomplete or ordre-reverted setting will result in issuing a warning + and will be ignored. + - Restructured messenger classes to avoid code duplications. + +May 3, 2015 I. Hrivnacova (analysis-V10-01-10) + - Implemented support for ntuple vector columns with Csv output + - Added Set/GetCompressionLevel() functions to G4AnalysisManager + (used only with Root output) and changed its default value to 1 (was 9)) + +April 14, 2015 I. Hrivnacova (analysis-V10-01-09) + - Updated to g4tools 1.19.2 (Guy Barrand): + Fixed compilation on Mac, clang 3.4. + See History_tools for the complete list of modifications. + +April 13, 2015 I. Hrivnacova (analysis-V10-01-08) + - Updated to g4tools 1.19.1 (Guy Barrand): + csv: handle vector column if using the ntuple_booking way + See History_tools for the complete list of modifications. + +April 9, 2015 I. Hrivnacova (analysis-V10-00-44) + tag to be included in the patch release: +- Updated to g4tools 1.17.2 (Guy Barrand): + Changes for Windows (MinGW) - fixing problem #1721 (mainly to change + #ifdef WIN32 to #ifdef _MSC_VER, which more clean) + +April 02, 2015 I. Hrivnacova (analysis-V10-01-07) + - Updated to g4tools 1.19.0 (Guy Barrand): + - Csv handles vector columns + - Changes for Windows (MinGW) - fixing problem #1721 (mainly to change + #ifdef WIN32 to #ifdef _MSC_VER, which more clean) + - Various optimisations to be faster in converting numbers to strings + (huge improvements with that around csv and xml tuples) + - See History_tools for the complete list of modifications. + +March 18, 2015 I. Hrivnacova (analysis-V10-00-43) + tag to be included in the patch release: +- Fixed reading XML ntuples with a column of a vector type + tools do not support direct use of ntuple_bindings with a vector, + use of a temorary sub-ntuple is needed + +March 17, 2015 I. Hrivnacova (analysis-V10-01-06) +- Fixed reading XML ntuples with a column of a vector type + tools do not support direct use of ntuple_bindings with a vector, + use of a temorary sub-ntuple is needed + +March 13, 2015 I. Hrivnacova (analysis-V10-01-05) +- Fixed false warnings about unknown column type when an ntuple contains + a column of a vector type and is created via ntuple booking + +March 13, 2015 I. Hrivnacova (analysis-V10-01-04) +- Fixed G4AnalysisManager::IsActive() - now taken into all Hn & Pn + managers + +March 13, 2015 I. Hrivnacova (analysis-V10-00-42) + tag to be included in the patch release: +- Fixed G4AnalysisManager::IsActive() - now taken into all Hn & Pn + managers + +February 20, 2015 I. Hrivnacova (analysis-V10-01-03) +- Updated to g4tools 1.18.2 (Guy Barrand): + Added code to send/recv histos through MPI; + see History_tools for the complete list of modifications. + +February 04, 2015 I. Hrivnacova (analysis-V10-01-02) +- Updated to g4tools 1.17.1 (Guy Barrand): + Fixed resetting histograms; + see History_tools for the complete list of modifications. + +January 21, 2015 I. Hrivnacova (analysis-V10-01-01) +- Updated to g4tools 1.17.0 (Guy Barrand): + Fixes in the Root files output to be compatible with ROOT 6.02/x; + see History_tools for the complete list of modifications. + +December 5, 2014 G. Cosmo (analysis-V10-01-00) +- Corrected csv/sources.cmake to include missing file: + G4CsvAnalysisReader.icc + +November 24, 2014 I. Hrivnacova (analysis-V10-00-41) +- Fixed update to g4tools 1.16.3: + the update of g4tools/src/csz_inflate.cc with Coverity fix + was missing + +November 07, 2014 I. Hrivnacova (analysis-V09-06-33) +- Fixed createH2/setH2 commands implementation + (was missing in the previous tag V09-06-32) + +November 06, 2014 I. Hrivnacova (analysis-V10-00-40) +- Fixed Coverity defect also in Csv, Root ntuple and Xml rntuple managers + +November 05, 2014 I. Hrivnacova (analysis-V10-00-39) +- Fixed Coverity defect in G4XmlNtupleManager + +October 27, 2014 I. Hrivnacova (analysis-V10-00-38) +- Revised (and simplified) numbering of warnings in exception messages + +October 25, 2014 I. Hrivnacova (analysis-V10-00-37) +- Updated to g4tools 1.16.3 (by G. Barrand): + Fixed problem with csv reading on windows; + see History_tools for complete list of modifications. + +October 22, 2014 I. Hrivnacova (analysis-V10-00-36) +- Updated to g4tools 1.16.2 (by G. Barrand): + modifs for example code to read csv ntuple by using ntuple_binding + see History_tools for complete list of modifications. +- Added writing commented header (default) for csv ntuple +- Implemented reading csv ntuples +- Removed H1, H2, P1 dummy manager classes and H3, P3 moved in + hbook implementation in examples +- Use kInvalidId instead of -1 +- Added checks for ntupleId in RNtupleManager classes + +October 22, 2014 I. Hrivnacova (analysis-V10-00-35) +- Fixed compiler warning in tools/wroot/leaf: + base class tools::wroot::ibo should be explicitly initialized in the copy constructor + +October 21, 2014 I. Hrivnacova (analysis-V10-00-34) +- Updated to g4tools 1.16.1 (by G. Barrand): + Fixed reading root ntuple with column of std::string type + by using ntuple_binding. + see History_tools for complete list of modifications. + +October 20, 2014 I. Hrivnacova (analysis-V10-00-33) +- Updated to g4tools 1.16.0 (by G. Barrand) + Write/read ntuple with std::string columns, + see History_tools for complete list of modifications. +- Implemented reading H3 for Root (now supported in tools) +- Added functions for handling ntuple columns of std::string type +- Added an option to write the Hippo header in csv ntuple output + (default true) + +October 13, 2014 I. Hrivnacova (analysis-V10-00-32) +- Fixed variable initialization in G4CsvAnalysisReader + +October 13, 2014 I. Hrivnacova (analysis-V10-00-31) +- Do not include G4CsvRNtupleManager, which is not yet commited. + +October 07, 2014 I. Hrivnacova (analysis-V10-00-30) +- Implemented G4CsvAnalysisReader: reading all histograms and profiles; + ntuples noy yet done +- Updated to g4tools 1.15.2 (by G. Barrand) + Fixed reading csv histograms and profiles (rcsv_histo) + +September 30, 2014 I. Hrivnacova (analysis-V10-00-29) +- Updated to g4tools 1.15.1 (by G. Barrand) + Fixed reading histograms with titles of more words; + see History_tools for complete list of modifications. + +September 30, 2014 I. Hrivnacova (analysis-V10-00-28) +- Updated to g4tools 1.15.0 (by G. Barrand) + See History_tools for complete list of modifications. + +September 18, 2014 I. Hrivnacova (analysis-V10-00-27) +- Fixed units in /analysis/[h|p]n/create and /analysis/[h|p]n/set + commands + +September 12, 2014 G. Cosmo (analysis-V10-00-26) +- Fixed xml/GNUmakefile to add missing dependency on expat, to + cover cases when internal expat is used or for WIN32 builds. + +September 12, 2014 I. Hrivnacova (analysis-V10-00-25) +- Fixes in XML reader: + - Added expat includes and libraries in xml sources.cmake + - Removed unused function from G4XmlAnalysisReader + +September 11, 2014 I. Hrivnacova (analysis-V10-00-24) +- Adding histograms and profiles support in Csv +- Finalized G4VAnalysisReader interface: + - Added reading P1, P2, H3 + - Modifications to fit to all outputs + - Support for both user defined file names and "generic" file names + (generated automatically by G4AnalysisManager from the base name) +- Introduced G4BaseFileManager and separated implementation for + output/input file managers +- Implemented reading P1, P2 in G4RootAnalysisReader; + prepared code for H3 which reading is not yet available in tools +- Implemented G4XmlAnalysisReader (complete) +- Fixed writing ntuples when more than one ntuple is defined (Xml) +- Do not overwrite user defined file extension + +September 08, 2014 I. Hrivnacova (analysis-V10-00-23) +- Updated to g4tools 1.14.0 (by G. Barrand): + Fixed compiler warning (converting to unsigned int from double) + +September 04, 2014 I. Hrivnacova (analysis-V10-00-22) +- Updated to g4tools 1.14.0 (by G. Barrand): + See History_tools for complete list of modifications. + +September 02, 2014 I. Hrivnacova (analysis-V10-00-21) +- Fixed Coverity defects: + - Initialization of data members in G4VAnalysisManager + - Provided assignment operator for G4HnDimensionInformation +- Removed unused data member in G4HnDimensionInformation + +July 28, 2014 I. Hrivnacova (analysis-V10-00-20) +- Removed unsused data member in G4P1DummyManager + +July 24, 2014 I. Hrivnacova (analysis-V10-00-19) +- Added H3, P1 and P2 +- Added G4BaseToolsManager - common implementation for + setters/getters related to axes annotations +- Fixed applying unit to min, max values in H1, H2 managers +- Issue the warning about not supported histograms/profiles only once per run + +July 23, 2014 I. Hrivnacova (analysis-V10-00-18) +- Updated to g4tools 1.11.1 (by G. Barrand): + Fixed problem on Windows with including windows.h. + +July 23, 2014 I. Hrivnacova (analysis-V09-06-32) +- Fixed applying unit to min, max values in H1, H2 managers +- Fixed createH2/setH2 commands implementation + +July 18, 2014 I. Hrivnacova (analysis-V10-00-17) +- Updated to g4tools 1.11.0 (by G. Barrand): + See History_tools for complete list of modifications. + +July 02, 2014 I. Hrivnacova (analysis-V10-00-16) +- Replaced use of std::cout with G4cout in Root managers + (to fix data race reported by A. Dotti) + +June 27, 2014 G. Cosmo (analysis-V10-00-15) +- Get rid of obsolete 'register' keyword in csz_inflate.cc.. + +June 12, 2014 I. Hrivnacova (analysis-V10-00-14) +- Added typedefs and functions for accessing iterators + over H1, H2, Ntuples; + Usage: + G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); + for (G4H1Iterator it = analysisManager->BeginH1(); + it != analysisManager->EndH1(); it++ ) { + G4H1* h1 = *it; + // call any h1 function define in tools + } +- Added G4AnalysisManager functions to access FirstIds + G4int GetFirst[H1|H2|Ntuple|NtupleColumn]Id() const; + +June 11, 2014 I. Hrivnacova (analysis-V10-00-13) +- Restored hbook files lost with moving to g4tools 1.9.4 + +June 04, 2014 I. Hrivnacova (analysis-V10-00-12) +- Udated History with the descriptions of the tags analysis-V09-06-* + applied from the analysis_10-00-patches branch. + +June 03, 2014 I. Hrivnacova (analysis-V09-06-31) +- Do not remove Root base file if ntuples are in use + (this addresses problem report #1633) + +May 16, 2014 I. Hrivnacova (analysis-V10-00-11) +- Fixed Coverity defects. +- Updated to g4tools 1.10.0 (by G. Barrand): + See History_tools for complete list of modifications. + +April 25, 2014 I. Hrivnacova (analysis-V10-00-10) +April 25, 2014 I. Hrivnacova (analysis-V09-06-30) +- Fixed implementation of compound commands in G4H[1,2,n]Messenger classes + using new G4AnalysisUtilities::Tokenize() function. + This allows to pass multi-word strings within "" and fixes problem report + #1616. +- Fixed G4H2ToolsManager::SetH2YAxisTitle: set title to y-axis and not x-axis. + This addresses problem report #1620. + +April 16, 2014 I. Hrivnacova (analysis-V09-06-29) +- Do not allow creating objects with empty names + (this addresses problem report #1579) + +April 14, 2014 I. Hrivnacova (analysis-V10-00-09) +- Use G4Threading::IsMultithreadedApplication() instead of + G4AnalysisManagerState::IsMT() (now removed); + this function fixes files clean-up at the end of sequential + application built against multi-threaded Geant4 libraries. + +April 14, 2014 I. Hrivnacova (analysis-V10-00-08) +- Do not allow creating objects with empty names + (this addresses problem report #1579) +- Introduced independent numbering of warnings from reader +- Renamed g4tools/src/inflate.cc in csz_inflate.cc to avoid confusion with + zlib inflate.cc + +April 10, 2014 G. Cosmo (analysis-V10-00-07) +- Corrected organisation of source files in g4tools sub-module to + allow for building with GNUmake system: + o Moved g4tools/src/csz/inflate.c to g4tools/src and renamed to inflate.cc. + o Corrected main GNUmakefile for build order. + +April 10, 2014 I. Hrivnacova (analysis-V10-00-06) +- Fixed GNUmakefile (Gabriele) + +April 10, 2014 I. Hrivnacova (analysis-V10-00-05) +- Updated to g4tools 1.9.4 (by G. Barrand): + See History_tools for complete list of modifications. +- Added interface classes for reading: + G4VAnalysisReader, G4VRNtupleManager + and their implementation for Root: + G4RootAnalysisReader, G4RootRNtupleManager + +March 12, 2014 I. Hrivnacova (analysis-V09-06-28) +March 11, 2014 I. Hrivnacova (analysis-V10-00-04) +- Fixed H1, H2 functions to access xmin, xmax and width + (do not apply function and unit to return values) + +March 10, 2014 I. Hrivnacova (analysis-V09-06-27) +- Fixed bug in /analysis/h1/setAscii command + (introduced with refactoring messenger classes in analysis-V09-06-19) + +March 05, 2014 I. Hrivnacova (analysis-V10-00-03) +- Fixed bug in /analysis/h1/setAscii command + (introduced with refactoring messenger classes in analysis-V09-06-19) + +February 05, 2014 I. Hrivnacova (analysis-V10-00-02) +- Updated tools ntuple_booking and ntuple classes from + g4tools 1.9.0 (by G. Barrand) what should hopefully fix warnings issued + on x86_64-slc5-gcc41. + +February 04, 2014 I. Hrivnacova (analysis-V10-00-01) +- Adding new functions for ntuple columns of vectors + in G4AnalysisManer: + // Create columns of vector in the last created ntuple + G4int CreateNtupleTColumn( + const G4String& name, std::vector& vector); + G4int CreateNtupleTColumn(G4int ntupleId, + const G4String& name, std::vector& vector); + where T can be I, F, T +- Updated to g4tools 1.8.0 (by G. Barrand) + See History_tools for complete list of modifications. + +January 21, 2014 I. Hrivnacova (analysis-V10-00-00) +January 21, 2014 I. Hrivnacova (analysis-V09-06-26) +- Updated to g4tools 1.7.1 (by G. Barrand): + Fixed performance issue observed for an ntuple with large numbers of columns + reported in item #455 in Geant4 hypernews, Analysis category. + See History_tools for complete list of modifications. + +October 02, 2013 I. Hrivnacova (analysis-V09-06-25) +- Do not call WriteH1[2]() when no histograms are defined. + This allows to run application which uses only ntuples without + a master instance of analysis manager. + +September 30, 2013 I. Hrivnacova (analysis-V09-06-24) +- Removed static G4AnalysisManager::Create(G4bool isMaster) function + (the master/worker is now identified automatically) +- Removed instances counter and its mutex +- Reimplemented G4AnalysisManagerState::IsMT() with use of + G4Threading functions +- Removed virtual declaration for GetH1, GetH2, GetNtuple functions + in manager classes (to follow NVI pattern) +- Fixed installing of g4analysis_defs.hh header +- Fixed g4csv.hh (it was overwritten by mistake with g4csv_defs.hh) +- Fixed g4csv_defs.hh (G4Ntuple is the ntuple type, and not a pointer) + +September 17, 2013 I. Hrivnacova (analysis-V09-06-23) +- Use thread Id (now available) in generating file names instead + of thread Pid. + +September 02, 2013 I. Hrivnacova (analysis-V09-06-22) +- Updated to g4tools 1.7.0 (by G. Barrand): + Fixed problem report #1523 (incorrect setting the list of free blocks + in the ROOT file). + See History_tools for complete list of modifications. + +September 02, 2013 I. Hrivnacova (analysis-V09-06-21) +- Fixed saving binScheme in H2 information + +August 26, 2013 I. Hrivnacova (analysis-V09-06-20) +- Fixed Coverity defects + (missing copy constructor and assignment operator in G4VH1Manager + and G4VH2Manager) + +August 26, 2013 A.Dotti (analysis-V09-06-19) +- New interface for functions in G4Threading.hh, + now in G4Threading namespace + And also (I. Hrivnacova): +- Added a possibility to define logarithmic binning for H1 and H2 +- Reorganized messenger classes per objects: they are now associated + with the public interface (G4VAnalysisManager) +- Fixed path to g4tools in test/build + +August 1, 2013 I.Hrivnacova (analysis-V09-06-18) +- Fixed CMake build (added missing *.icc files in HEADERS); + thanks to Mike Kelsey for pointing at this. + +July 15, 2013 I.Hrivnacova (analysis-V09-06-17) +- Added set_property(...GEANT4_BUILDTREE_INCLUDE_DIRS) in + g4tools/CMakeLists.txt + +July 15, 2013 I.Hrivnacova (analysis-V09-06-16) +- Added GLOBAL_DEPENDENCIES lists in sources.cmake files + +July 15, 2013 I.Hrivnacova (analysis-V09-06-15) +- Fixed dependencies on zlib + (previous tag failed on linking error on Mac) + +July 15, 2013 I.Hrivnacova (analysis-V09-06-14) +- Introduced subdirectories: + csv, g4tools, hntools, management, root, xml + and updated CMake & GNUmake files accordingly + +July 12, 2013 I.Hrivnacova (analysis-V09-06-13) +- Fixed warnings on clang: + Use struct keyword instead of class for forward declaration of structs. + +July 11, 2013 I.Hrivnacova (analysis-V09-06-12) +- Refactoring manager classes: + - Introduced managers per object types (H1, H2, Ntuple, File) + and re-implemented G4VAnalysisManager as a composite of the objects + managers + - Removed enum G4VAnalysisManager::ObjectType and replaced related methods + with methods per object type; eg. + void SetActivation(ObjectType type, G4int id, G4bool activation); + with + void SetH1Activation(G4int id, G4bool activation); + void SetH2Activation(G4int id, G4bool activation); + +June 20, 2013 I.Hrivnacova (analysis-V09-06-11) +- Fixed the problem in Root files clean-up (manifested in + examples/advanced/microbeam): + non-empty Root file was deleted when only ntuples and no histograms + were booked and the application was built against MT Geant4 but run + in sequential mode. + +June 11, 2013 I.Hrivnacova (analysis-V09-06-10) +- Fixed deleting fNtuple in G4RootNtupleDescription + (the ntuple is deleted with root file) + +June 03, 2013 I.Hrivnacova (analysis-V09-06-09) +- Improved handling files: empty files are now removed in CloseFile() +- Moved generation of file name in G4VAnalysisManager +- Forced setting fIsMaster=true in sequential mode + +May 31, 2013 I.Hrivnacova (analysis-V09-06-08) +- Fix in G4RootAnalysisManager::WriteOnAscii() - bug report #1473 + +April 18, 2013 I.Hrivnacova (analysis-V09-06-07) +- Manager classes updated for MT: + Added fgMasterInstance, fIsMaster data members and functions for + mergings histograms (Root, Xml) from worker tom master: + void AddH1Vector(std::vector& h1Vector); + void AddH2Vector(std::vector& h2Vector); + These functions are automatically called on Worker::Write(). + Added ThreadId to ntuple file names when processing on workers. + +April 10, 2013 I.Hrivnacova (analysis-V09-06-06) +- Updated to g4tools 1.6.0 (by G. Barrand) - see History_tools + +March 29, 2013 I.Hrivnacova (analysis-V09-06-05) +- Extended analysis managers for handling more than one ntuple + +March 26, 2013 B.Morgan (analysis-V09-06-04) +- source.cmake : Corrected zlib setup for transparent use of + internal or external variants. + +March 22, 2013 G.Cosmo (analysis-V09-06-03) +- Corrected GNUmakefile and CMakeLists.txt for zlib dependency. + +March 21, 2013 I.Hrivnacova (analysis-V09-06-02) +- Updated CMakeList.txt for zlib dependencies + +March 21, 2013 I.Hrivnacova (analysis-V09-06-01) +- Updated to g4tools 1.5.0 (by G. Barrand) - see History_tools +- Adding file compression in Root manager (now available) +- Adding use of zlib in GNUmakefile (needed for compression) + +December 17, 2012 I.Hrivnacova (analysis-V09-06-00) +- Added 'svn:keywords' property to all files (except for tools) + +October 26, 2012 I.Hrivnacova (analysis-V09-05-15) +- Updated to g4tools 1.4.3 (by G. Barrand) - see History_tools; + includes bug correction for histo/h3::fill + +October 14, 2012 I.Hrivnacova (analysis-V09-05-14) +- Adding function G4VAnalysisManager::SetActivation(..) + for setting activation to all histograms of one type +- Adding commands to activate/inactivate 1D, 2D histograms +- Fixed GetH1[2]Width: return the correct value also when histogram is + inactive. + +October 10, 2012 I.Hrivnacova (analysis-V09-05-13) +- Adding commands for handling h2d histograms. +- Adding functions for accessing h1d, h2d by name +- Splitting verbose level 1 in 2 levels and shifting the upper levels + +September 28, 2012 I.Hrivnacova (analysis-V09-05-12) +- Fixed loops in G4Root/XmlAnalysisManager::WriteOnAscii; + (causing compilation warning for shadowing) + +September 4, 2012 I.Hrivnacova (analysis-V09-05-11) +- Adding missing header file in CMakeLists.txt + +August 28, 2012 I.Hrivnacova (analysis-V09-05-10) +- Adding SetH2Title() in all managers +- Minor fixes + +August 22, 2012 I.Hrivnacova (analysis-V09-05-09) +- Updated to g4tools 1.4.1 (by G. Barrand) - see History_tools +- Adding setters/getters for histogram axis titles + and commands for setting histogram title and axis titles + +August 20, 2012 I.Hrivnacova (analysis-V09-05-08) +- Updated to g4tools 1.3.2 (by G. Barrand) - see History_tools +- Adding a possibility to fill h1, h2 with values with automatically + applied function (eg. log10, exp) +- Pass units via a name instead of value +- Adding getters for many h1, h2 attributes +- Adding ScaleH1(), ScaleH2() +- Fixed warning in G4RootAnalysisManager when trying to fill inactivated + histogram +- Adding W013, W014 in exception classification + +July 27, 2012 I.Hrivnacova (analysis-V09-05-07) +- Updated to g4tools 1.3.1 (by G. Barrand) - see History_tools +- Messages from Fill functions only in verbose level 3 +- Fixes in memory management: + delete file before opening a new one (all); + delete ntuple before closing a file (csv, xml) + +July 25, 2012 I.Hrivnacova (analysis-V09-05-06) +- Fix returned values in newly added functions for accessing additional + information. (This fixes compiler warnings.) + +July 24, 2012 I.Hrivnacova (analysis-V09-05-05) +- Fix CMake build once more - adding new source files in + and dependence on G4intercoms library + +July 24, 2012 I.Hrivnacova (analysis-V09-05-04) +- Fix CMake build - adding intercoms to include path + (now needed for the messenger class) + +July 24, 2012 I.Hrivnacova (analysis-V09-05-03) +- Updated to g4tools-1.3.0 (G. Barrand) - see History_tools +- Adding an additional information to the analysis objects + (defined in G4HnInformation.hh): + units, activation, ascii output +- Implemented a possibility to book histograms/ntuples + before opening a file +- Adding a messenger class allowing to configure file and directories + names, verbosity level and histogram parameters interactively. + +June 5, 2012 I.Hrivnacova (analysis-V09-05-02) +- Updated to g4tools-1.2.0 (G. Barrand) - see History_tools + +February 23, 2012 I.Hrivnacova (analysis-V09-05-01) +- Adding locks for functions which define directory names, + setting Ids etc. so that these parameters cannot be changed once + they were used +- Changed return type for the functions with locks to G4bool +- Renamed FirstNtupleId data member and its setter to FirstNtupleColumnId + to better reflect its meaning +- Adding W009-W012 warning in exception_classification.txt + +February 14, 2012 I.Hrivnacova (analysis-V09-05-00) +- Updated to g4tools-1.1.0 (G. Barrand) - see History_tools +- Adding defs include files per manager type +- Adding GetNtuple() function to specific managers +- Adding GetType() function to G4VAnalysisManager +- Increased granularity of verbose levels (now 3 levels are available) +- Adding test for result of openning file in Root manager + (which was not provided in previous versions of g4tools) +- Making creating directories optional + +November 30th 2011 B.Morgan (analysis-V09-04-15) +- CMakeLists.txt : Updated to build G4analysis in granular as well as global + mode. + +November 24 2001 I.Hrivnacova (analysis-V09-04-14) +- Updated to g4tools-1.0.5 (G. Barrand): + - wroot : streamers, buffer, wbuf, named : + arrange to avoid the usage of the std::vector<>::data() method + which is quite not portable for the moment. + - remove the no more needed (and problematic) tools/vdata file. + +November 24 2001 I.Hrivnacova (analysis-V09-04-13) +- tools/vdata: restored protection __GXX_EXPERIMENTAL_CXX0X__ + which got lost with update to g4tools-1.0.4 + +November 24 2001 I.Hrivnacova (analysis-V09-04-12) +- Updated to g4tools-1.0.4 (G. Barrand): + - Fix in tools/vdata: + Adding a protection against an empty vector + +November 19 2001 I.Hrivnacova (analysis-V09-04-11) +- Updated to g4tools-1.0.3 (G. Barrand): + - Removed warning in CHBOOK/CHPWDF + - Remove #ifdef WIN32 in wroot/date. + +November 8 2011 G.Cosmo (analysis-V09-04-10) +- tools/vdata: restored protection __GXX_EXPERIMENTAL_CXX0X__ to use of + std::vector<>::data() feature, to allow compilation on Leopard systems. + +October 27 2011 G.Cosmo (analysis-V09-04-09) +- Added workaround to use 'this' pointer for internal calls in histo/b1, + to allow for compilation on Xcode on MacOX Lion. + +October 18 2011 I.Hrivnacova (analysis-V09-04-08) +- Fix in CMakeLists.txt - adding new G4AnalysisVerbose.* files + +October 17 2011 I.Hrivnacova (analysis-V09-04-07) +- Added support for H2 histograms +- Added verbose printing (for levels: 0,1,2) +- Updated to g4tools-1.0.2 (G. Barrand): + - Removed "inline" keyword for the methods having code implementation + within classes. Dixit C++ docs, this kind of method is treated defacto + as "inline". The keyword "inline" remains or for functions or for the + few methods having their implementation outside the class. + - Fixed some warnings (coming from Coverity or some specific version of g++) + about the lacking of calling the copy constructor of an inherited interface + in some copy constructors. + - wroot/tree : have the streaming of the list of leaves. This permits to have + the ROOT/TTree::Scan() method working when looking for a ntuple + stored in a .root file as a TTree. + +September 15 2011 I.Hrivnacova (analysis-V09-04-06) +- Added static access to specific manager classes. +- Migration to G4Exception for all warning/error messages. + +August 4 2011 G.Cosmo (analysis-V09-04-05) +- Extended fix in tools/vdata for compilation error on olders GCC compiler + versions (MacOSX 10.5, SLC4, ...). Addressing problem report #1238. + +July 29 2011 G.Cosmo (analysis-V09-04-04) +- Fix in tools/vdata for compilation error in Intel ICC compiler. + +July 28 2011 B.Morgan (analysis-V09-04-02) +- Creating new tag because previous ones were not documented here!! + +July 28 2011 B.Morgan (analysis-V09-04-01.5) +- CMakeLists.txt : Added to provide CMake build for G4Analysis. Implemented + without using a sources.cmake because we only have one library, and tools + headers need a specialized install to retain their nested structure. + +July 28 2011 G. Cosmo +- Fix in tools/wroot/file to avoid gcc dependency error on WIN32 with CygWin. + + +July 28, 2011 B.Morgan +- Created History file for analysis module. diff --git a/source/analysis/accumulables/include/G4Accumulable.hh b/source/analysis/accumulables/include/G4Accumulable.hh index bf47d9ea69..64d4607d48 100644 --- a/source/analysis/accumulables/include/G4Accumulable.hh +++ b/source/analysis/accumulables/include/G4Accumulable.hh @@ -45,13 +45,13 @@ class G4Accumulable : public G4VAccumulable G4Accumulable(T initValue, G4MergeMode mergeMode = G4MergeMode::kAddition); G4Accumulable(const G4Accumulable& rhs); - G4Accumulable(G4Accumulable&& rhs); + G4Accumulable(G4Accumulable&& rhs) noexcept; G4Accumulable() = delete; - virtual ~G4Accumulable() = default; + ~G4Accumulable() override = default; // Operators G4Accumulable& operator= (const G4Accumulable& rhs); - G4Accumulable& operator= (G4Accumulable&& rhs); + G4Accumulable& operator=(G4Accumulable&& rhs) noexcept; G4Accumulable& operator+=(const G4Accumulable& rhs); G4Accumulable& operator*=(const G4Accumulable& rhs); G4Accumulable operator++(int); // postfix increment @@ -62,8 +62,8 @@ class G4Accumulable : public G4VAccumulable G4Accumulable& operator*=(const T& rhs); // Methods - virtual void Merge(const G4VAccumulable& other) final; - virtual void Reset() final; + void Merge(const G4VAccumulable& other) final; + void Reset() final; // Get methods T GetValue() const; diff --git a/source/analysis/accumulables/include/G4Accumulable.icc b/source/analysis/accumulables/include/G4Accumulable.icc index 8a49e8528a..4cdf208bd9 100644 --- a/source/analysis/accumulables/include/G4Accumulable.icc +++ b/source/analysis/accumulables/include/G4Accumulable.icc @@ -66,7 +66,7 @@ G4Accumulable::G4Accumulable(const G4Accumulable& rhs) //_____________________________________________________________________________ template -G4Accumulable::G4Accumulable(G4Accumulable&& rhs) +G4Accumulable::G4Accumulable(G4Accumulable&& rhs) noexcept : G4VAccumulable(rhs), fValue(std::move(rhs.fValue)), fInitValue(std::move(rhs.fInitValue)), @@ -96,8 +96,7 @@ G4Accumulable::operator=(const G4Accumulable& rhs) //_____________________________________________________________________________ template -G4Accumulable& -G4Accumulable::operator=(G4Accumulable&& rhs) +G4Accumulable& G4Accumulable::operator=(G4Accumulable&& rhs) noexcept { // check assignment to self if (this == &rhs) return *this; diff --git a/source/analysis/accumulables/include/G4VAccumulable.hh b/source/analysis/accumulables/include/G4VAccumulable.hh index 669bd6be3c..05a598c699 100644 --- a/source/analysis/accumulables/include/G4VAccumulable.hh +++ b/source/analysis/accumulables/include/G4VAccumulable.hh @@ -40,7 +40,7 @@ class G4VAccumulable friend class G4AccumulableManager; public: - G4VAccumulable(const G4String& name = ""); + G4VAccumulable(G4String name = ""); G4VAccumulable(const G4VAccumulable& rhs) = default; G4VAccumulable(G4VAccumulable&& rhs) = default; virtual ~G4VAccumulable() = default; diff --git a/source/analysis/accumulables/include/G4VAccumulable.icc b/source/analysis/accumulables/include/G4VAccumulable.icc index 4d19e7e12f..e34e1dc3c9 100644 --- a/source/analysis/accumulables/include/G4VAccumulable.icc +++ b/source/analysis/accumulables/include/G4VAccumulable.icc @@ -24,9 +24,11 @@ // ******************************************************************** // +#include + //_____________________________________________________________________________ -inline G4VAccumulable::G4VAccumulable(const G4String& name) - : fName(name) +inline G4VAccumulable::G4VAccumulable(G4String name) + : fName(std::move(name)) {} //_____________________________________________________________________________ diff --git a/source/analysis/accumulables/src/G4AccumulableManager.cc b/source/analysis/accumulables/src/G4AccumulableManager.cc index 43cd0d87b1..de45d1854a 100644 --- a/source/analysis/accumulables/src/G4AccumulableManager.cc +++ b/source/analysis/accumulables/src/G4AccumulableManager.cc @@ -102,7 +102,7 @@ G4bool G4AccumulableManager::RegisterAccumulable(G4VAccumulable* accumulable) if ( ! CheckName(name, "RegisterAccumulable") ) return false; // generate name if empty - if ( ! name.length() ) { + if (name.length() == 0u) { name = GenerateName(); accumulable->fName = name; } @@ -154,10 +154,10 @@ void G4AccumulableManager::Merge() { // Do nothing if there are no accumulables registered // or if master thread - if ( (! fVector.size()) || (! G4Threading::IsWorkerThread()) ) return; + if ((fVector.size() == 0u) || (! G4Threading::IsWorkerThread())) return; // The manager on mastter must exist - if ( ! fgMasterInstance ) { + if (fgMasterInstance == nullptr) { G4ExceptionDescription description; description << "No master G4AccumulableManager instance exists." << G4endl diff --git a/source/analysis/accumulables/src/G4MergeMode.cc b/source/analysis/accumulables/src/G4MergeMode.cc index db92fb5815..e8aaf668ca 100644 --- a/source/analysis/accumulables/src/G4MergeMode.cc +++ b/source/analysis/accumulables/src/G4MergeMode.cc @@ -32,18 +32,17 @@ namespace G4Accumulables { //_____________________________________________________________________________ -G4MergeMode GetMergeMode(const G4String& mergeModeName) { - if ( mergeModeName == "+" ) { return G4MergeMode::kAddition; } - else if ( mergeModeName == "*" ) { return G4MergeMode::kMultiplication; } - else { - G4ExceptionDescription description; - description - << "\"" << mergeModeName << "\" merge mode is not supported." << G4endl - << "Addition will be applied."; - G4Exception("G4Analysis::GetMergeMode", - "Analysis_W001", JustWarning, description); - return G4MergeMode::kAddition; - } +G4MergeMode GetMergeMode(const G4String& mergeModeName) +{ + if (mergeModeName == "+") return G4MergeMode::kAddition; + if (mergeModeName == "*") return G4MergeMode::kMultiplication; + + G4ExceptionDescription description; + description << "\"" << mergeModeName << "\" merge mode is not supported." << G4endl + << "Addition will be applied."; + G4Exception("G4Analysis::GetMergeMode", "Analysis_W001", JustWarning, description); + return G4MergeMode::kAddition; } } + diff --git a/source/analysis/csv/include/G4CsvAnalysisManager.hh b/source/analysis/csv/include/G4CsvAnalysisManager.hh index 3bc1b5eb84..134a71b332 100644 --- a/source/analysis/csv/include/G4CsvAnalysisManager.hh +++ b/source/analysis/csv/include/G4CsvAnalysisManager.hh @@ -41,7 +41,6 @@ #include class G4CsvAnalysisManager; -class G4CsvFileManager; class G4CsvNtupleFileManager; template class G4ThreadLocalSingleton; @@ -51,7 +50,7 @@ class G4CsvAnalysisManager : public G4ToolsAnalysisManager friend class G4ThreadLocalSingleton; public: - ~G4CsvAnalysisManager(); + ~G4CsvAnalysisManager() override; // Static methods static G4CsvAnalysisManager* Instance(); @@ -71,29 +70,17 @@ class G4CsvAnalysisManager : public G4ToolsAnalysisManager void SetIsCommentedHeader(G4bool isCommentedHeader); void SetIsHippoHeader(G4bool isHippoHeader); - protected: - // Virtual methods from base class - virtual G4bool OpenFileImpl(const G4String& fileName) final; - virtual G4bool WriteImpl() final; - virtual G4bool CloseFileImpl(G4bool reset) final; - virtual G4bool ResetImpl() final; - virtual G4bool IsOpenFileImpl() const final; - private: G4CsvAnalysisManager(); // Static data members - // - inline static G4CsvAnalysisManager* fgMasterInstance { nullptr }; inline static G4ThreadLocal G4bool fgIsInstance { false }; static constexpr std::string_view fkClass { "G4CsvAnalysisManager" }; // Data members - std::shared_ptr fFileManager { nullptr }; std::shared_ptr fNtupleFileManager { nullptr }; }; #include "G4CsvAnalysisManager.icc" #endif - diff --git a/source/analysis/csv/include/G4CsvAnalysisManager.icc b/source/analysis/csv/include/G4CsvAnalysisManager.icc index e5b6a9b09b..10b5438d0d 100644 --- a/source/analysis/csv/include/G4CsvAnalysisManager.icc +++ b/source/analysis/csv/include/G4CsvAnalysisManager.icc @@ -28,13 +28,6 @@ #include "G4CsvNtupleFileManager.hh" #include "G4CsvFileManager.hh" -//_____________________________________________________________________________ -inline -G4bool G4CsvAnalysisManager::IsOpenFileImpl() const -{ - return fFileManager->IsOpenFile(); -} - //_____________________________________________________________________________ inline tools::wcsv::ntuple* G4CsvAnalysisManager::GetNtuple() const diff --git a/source/analysis/csv/include/G4CsvAnalysisReader.hh b/source/analysis/csv/include/G4CsvAnalysisReader.hh index 44cd4b9f3e..80365e9ed5 100644 --- a/source/analysis/csv/include/G4CsvAnalysisReader.hh +++ b/source/analysis/csv/include/G4CsvAnalysisReader.hh @@ -51,7 +51,7 @@ class G4CsvAnalysisReader : public G4ToolsAnalysisReader friend class G4ThreadLocalSingleton; public: - virtual ~G4CsvAnalysisReader(); + ~G4CsvAnalysisReader() override; // Static methods static G4CsvAnalysisReader* Instance(); @@ -63,7 +63,7 @@ class G4CsvAnalysisReader : public G4ToolsAnalysisReader protected: // Virtual methods from base class - virtual G4bool CloseFilesImpl(G4bool reset) final; + G4bool CloseFilesImpl(G4bool reset) final; private: G4CsvAnalysisReader(); diff --git a/source/analysis/csv/include/G4CsvFileManager.hh b/source/analysis/csv/include/G4CsvFileManager.hh index 73d882de6b..3779acd84c 100644 --- a/source/analysis/csv/include/G4CsvFileManager.hh +++ b/source/analysis/csv/include/G4CsvFileManager.hh @@ -47,21 +47,22 @@ class G4CsvFileManager : public G4VTFileManager public: explicit G4CsvFileManager(const G4AnalysisManagerState& state); G4CsvFileManager() = delete; - ~G4CsvFileManager() = default; + ~G4CsvFileManager() override = default; using G4BaseFileManager::GetNtupleFileName; using G4VTFileManager::WriteFile; using G4VTFileManager::CloseFile; // Methods to manipulate output files - virtual G4bool OpenFile(const G4String& fileName) final; + G4bool OpenFile(const G4String& fileName) final; - virtual G4bool SetHistoDirectoryName(const G4String& dirName) final; - virtual G4bool SetNtupleDirectoryName(const G4String& dirName) final; + G4bool SetHistoDirectoryName(const G4String& dirName) final; + G4bool SetNtupleDirectoryName(const G4String& dirName) final; - virtual G4String GetFileType() const final { return "csv"; } + G4String GetFileType() const final { return "csv"; } // Specific methods for files per objects + G4bool NotifyNtupleFile(CsvNtupleDescription* ntupleDescription); G4bool CreateNtupleFile(CsvNtupleDescription* ntupleDescription); G4bool CloseNtupleFile(CsvNtupleDescription* ntupleDescription); @@ -70,9 +71,9 @@ class G4CsvFileManager : public G4VTFileManager protected: // Methods derived from templated base class - virtual std::shared_ptr CreateFileImpl(const G4String& fileName) final; - virtual G4bool WriteFileImpl(std::shared_ptr file) final; - virtual G4bool CloseFileImpl(std::shared_ptr file) final; + std::shared_ptr CreateFileImpl(const G4String& fileName) final; + G4bool WriteFileImpl(std::shared_ptr file) final; + G4bool CloseFileImpl(std::shared_ptr file) final; private: // Utility method diff --git a/source/analysis/csv/include/G4CsvHnFileManager.hh b/source/analysis/csv/include/G4CsvHnFileManager.hh index 91e9586a01..2fb6829bc9 100644 --- a/source/analysis/csv/include/G4CsvHnFileManager.hh +++ b/source/analysis/csv/include/G4CsvHnFileManager.hh @@ -45,12 +45,12 @@ class G4CsvHnFileManager : public G4VTHnFileManager explicit G4CsvHnFileManager(G4CsvFileManager* fileManger) : G4VTHnFileManager(), fFileManager(fileManger) {} G4CsvHnFileManager() = delete; - virtual ~G4CsvHnFileManager() = default; + ~G4CsvHnFileManager() override = default; // Methods for writing objects - virtual G4bool WriteExtra(HT* ht, const G4String& htName, const G4String& fileName) final; + G4bool WriteExtra(HT* ht, const G4String& htName, const G4String& fileName) final; // Write to the default file (handled with OpenFile()/CloseFile methods) - virtual G4bool Write(HT* ht, const G4String& htName, G4String& fileName) final; + G4bool Write(HT* ht, const G4String& htName, G4String& fileName) final; private: // Methods diff --git a/source/analysis/csv/include/G4CsvHnFileManager.icc b/source/analysis/csv/include/G4CsvHnFileManager.icc index ef0909415e..216c75549c 100644 --- a/source/analysis/csv/include/G4CsvHnFileManager.icc +++ b/source/analysis/csv/include/G4CsvHnFileManager.icc @@ -99,6 +99,9 @@ G4bool G4CsvHnFileManager::Write( return false; } + // Update fileName with cycle number + fileName = fFileManager->GetHnFileName(fileName, fFileManager->GetCycle()); + auto hnFile = fFileManager->GetTFile(fileName, false); if ( ! hnFile ) { // If histogram file name was not defined per object @@ -118,9 +121,8 @@ G4bool G4CsvHnFileManager::Write( if ( ! hnFile ) { G4Analysis::Warn("Failed to get Csv file " + fileName, fkClass, "Write"); return false; - } else { - fileName = hnFileName; } + fileName = hnFileName; } return Write(*hnFile, ht); diff --git a/source/analysis/csv/include/G4CsvHnRFileManager.hh b/source/analysis/csv/include/G4CsvHnRFileManager.hh index 4d62441d7a..a4a0281978 100644 --- a/source/analysis/csv/include/G4CsvHnRFileManager.hh +++ b/source/analysis/csv/include/G4CsvHnRFileManager.hh @@ -44,11 +44,11 @@ class G4CsvHnRFileManager : public G4VTHnRFileManager explicit G4CsvHnRFileManager(G4CsvRFileManager* rfileManger) : G4VTHnRFileManager(), fRFileManager(rfileManger) {} G4CsvHnRFileManager() = delete; - virtual ~G4CsvHnRFileManager() = default; + ~G4CsvHnRFileManager() override = default; // Methods for writing objects - virtual HT* Read(const G4String& htName, const G4String& fileName, - const G4String& dirName, G4bool isUserFileName) final; + HT* Read(const G4String& htName, const G4String& fileName, const G4String& dirName, + G4bool isUserFileName) final; private: // Methods diff --git a/source/analysis/csv/include/G4CsvHnRFileManager.icc b/source/analysis/csv/include/G4CsvHnRFileManager.icc index da697eb63e..31fab72adc 100644 --- a/source/analysis/csv/include/G4CsvHnRFileManager.icc +++ b/source/analysis/csv/include/G4CsvHnRFileManager.icc @@ -40,9 +40,7 @@ G4String G4CsvHnRFileManager::GetHnFileName( if ( isUserFileName ) { return fRFileManager->GetFullFileName(fileName); } - else { - return fRFileManager->GetHnFileName(hnType, hnName); - } + return fRFileManager->GetHnFileName(hnType, hnName); } //_____________________________________________________________________________ @@ -61,7 +59,7 @@ HT* G4CsvHnRFileManager::ReadT( fkClass, inFunction); return nullptr; } - if ( objectTypeInFile.compare(HT::s_class()) != 0 ) { + if (objectTypeInFile != HT::s_class()) { G4Analysis::Warn( "Object type read in " + G4Analysis::GetHnType() +" does not match", fkClass, inFunction); diff --git a/source/analysis/csv/include/G4CsvNtupleFileManager.hh b/source/analysis/csv/include/G4CsvNtupleFileManager.hh index b25cfcf1d3..684c38f908 100644 --- a/source/analysis/csv/include/G4CsvNtupleFileManager.hh +++ b/source/analysis/csv/include/G4CsvNtupleFileManager.hh @@ -35,6 +35,7 @@ #include "globals.hh" #include +#include class G4CsvFileManager; class G4CsvNtupleManager; @@ -48,24 +49,21 @@ class G4CsvNtupleFileManager : public G4VNtupleFileManager public: explicit G4CsvNtupleFileManager(const G4AnalysisManagerState& state); G4CsvNtupleFileManager() = delete; - virtual ~G4CsvNtupleFileManager() = default; + ~G4CsvNtupleFileManager() override = default; - virtual std::shared_ptr CreateNtupleManager() override; + std::shared_ptr CreateNtupleManager() override; // Methods to be performed at file management - virtual G4bool ActionAtOpenFile(const G4String& fileName) override; - virtual G4bool ActionAtWrite() override; - virtual G4bool ActionAtCloseFile(G4bool reset) override; - virtual G4bool Reset() override; + G4bool ActionAtOpenFile(const G4String& fileName) override; + G4bool ActionAtWrite() override; + G4bool ActionAtCloseFile() override; + G4bool Reset() override; void SetFileManager(std::shared_ptr fileManager); std::shared_ptr GetNtupleManager() const; private: - // Methods - G4bool CloseNtupleFiles(); - // Static data members static constexpr std::string_view fkClass { "G4CsvNtupleFileManager" }; @@ -78,7 +76,9 @@ class G4CsvNtupleFileManager : public G4VNtupleFileManager inline void G4CsvNtupleFileManager::SetFileManager( std::shared_ptr fileManager) -{ fFileManager = fileManager; } +{ + fFileManager = std::move(fileManager); +} inline std::shared_ptr G4CsvNtupleFileManager::GetNtupleManager() const { return fNtupleManager; } diff --git a/source/analysis/csv/include/G4CsvNtupleManager.hh b/source/analysis/csv/include/G4CsvNtupleManager.hh index c537bb9ec5..16f6cd8aa2 100644 --- a/source/analysis/csv/include/G4CsvNtupleManager.hh +++ b/source/analysis/csv/include/G4CsvNtupleManager.hh @@ -38,6 +38,7 @@ #include #include +#include // Types alias using CsvNtupleDescription = G4TNtupleDescription; @@ -53,7 +54,7 @@ class G4CsvNtupleManager : public G4TNtupleManager fileManager) -{ fFileManager = fileManager; } +{ + fFileManager = std::move(fileManager); +} inline const std::vector*>& G4CsvNtupleManager::GetNtupleDescriptionVector() const diff --git a/source/analysis/csv/include/G4CsvRFileManager.hh b/source/analysis/csv/include/G4CsvRFileManager.hh index 968bca0a5b..69d2fbd74e 100644 --- a/source/analysis/csv/include/G4CsvRFileManager.hh +++ b/source/analysis/csv/include/G4CsvRFileManager.hh @@ -45,12 +45,12 @@ class G4CsvRFileManager : public G4VRFileManager public: explicit G4CsvRFileManager(const G4AnalysisManagerState& state); G4CsvRFileManager() = delete; - ~G4CsvRFileManager(); + ~G4CsvRFileManager() override; - virtual G4String GetFileType() const final { return "csv"; } + G4String GetFileType() const final { return "csv"; } // Methods from base class - virtual void CloseFiles() final {} + void CloseFiles() final {} // Methods to manipulate input files virtual G4bool OpenRFile(const G4String& fileName); diff --git a/source/analysis/csv/include/G4CsvRNtupleManager.hh b/source/analysis/csv/include/G4CsvRNtupleManager.hh index d3e3dfab46..eadd4a8ea0 100644 --- a/source/analysis/csv/include/G4CsvRNtupleManager.hh +++ b/source/analysis/csv/include/G4CsvRNtupleManager.hh @@ -38,6 +38,7 @@ #include "tools/rcsv_ntuple" #include +#include class G4CsvRFileManager; @@ -48,16 +49,16 @@ class G4CsvRNtupleManager : public G4TRNtupleManager public: explicit G4CsvRNtupleManager(const G4AnalysisManagerState& state); G4CsvRNtupleManager() = delete; - virtual ~G4CsvRNtupleManager() = default; + ~G4CsvRNtupleManager() override = default; private: // Set methods void SetFileManager(std::shared_ptr fileManager); // Methods from the base class - virtual G4int ReadNtupleImpl(const G4String& ntupleName, const G4String& fileName, - const G4String& dirName, G4bool isUserFileName) final; - virtual G4bool GetTNtupleRow(G4TRNtupleDescription* ntupleDescription) final; + G4int ReadNtupleImpl(const G4String& ntupleName, const G4String& fileName, + const G4String& dirName, G4bool isUserFileName) final; + G4bool GetTNtupleRow(G4TRNtupleDescription* ntupleDescription) final; // Static data members static constexpr std::string_view fkClass { "G4CsvRNtupleManager" }; @@ -68,7 +69,9 @@ class G4CsvRNtupleManager : public G4TRNtupleManager inline void G4CsvRNtupleManager::SetFileManager(std::shared_ptr fileManager) -{ fFileManager = fileManager; } +{ + fFileManager = std::move(fileManager); +} #endif diff --git a/source/analysis/csv/src/G4CsvAnalysisManager.cc b/source/analysis/csv/src/G4CsvAnalysisManager.cc index b598eb052c..d75324d930 100644 --- a/source/analysis/csv/src/G4CsvAnalysisManager.cc +++ b/source/analysis/csv/src/G4CsvAnalysisManager.cc @@ -55,112 +55,19 @@ G4bool G4CsvAnalysisManager::IsInstance() G4CsvAnalysisManager::G4CsvAnalysisManager() : G4ToolsAnalysisManager("Csv") { - if ( ! G4Threading::IsWorkerThread() ) fgMasterInstance = this; - // File Manager - fFileManager = std::make_shared(fState); - SetFileManager(fFileManager); + auto fileManager = std::make_shared(fState); + SetFileManager(fileManager); // Ntuple file manager fNtupleFileManager = std::make_shared(fState); - fNtupleFileManager->SetFileManager(fFileManager); + SetNtupleFileManager(fNtupleFileManager); + fNtupleFileManager->SetFileManager(fileManager); fNtupleFileManager->SetBookingManager(fNtupleBookingManager); } //_____________________________________________________________________________ G4CsvAnalysisManager::~G4CsvAnalysisManager() { - if ( fState.GetIsMaster() ) fgMasterInstance = nullptr; fgIsInstance = false; } - -// -// protected methods -// - -//_____________________________________________________________________________ -G4bool G4CsvAnalysisManager::OpenFileImpl(const G4String& fileName) -{ - // Create ntuple manager(s) - // and set it to base class which takes then their ownership - SetNtupleManager(fNtupleFileManager->CreateNtupleManager()); - - auto result = true; - - // Save file name in file manager - result &= fFileManager->OpenFile(fileName); - - // Open ntuple files and create ntuples from bookings - result &= fNtupleFileManager->ActionAtOpenFile(fFileManager->GetFullFileName()); - - return result; -} - -//_____________________________________________________________________________ -G4bool G4CsvAnalysisManager::WriteImpl() -{ - // nothing to be done for Csv file - auto result = true; - - Message(kVL4, "write", "files"); - - if ( G4Threading::IsWorkerThread() ) { - result &= G4ToolsAnalysisManager::Merge(); - } - else { - // Write all histograms/profile on master - result &= G4ToolsAnalysisManager::WriteImpl(); - } - - // Ntuples - // Nothing to be done - - // Write ASCII if activated - // Not available - //if ( IsAscii() ) { - // result &= WriteAscii(); - //} - - Message(kVL3, "write", "files", "", result); - - return result; -} - -//_____________________________________________________________________________ -G4bool G4CsvAnalysisManager::CloseFileImpl(G4bool reset) -{ - auto result = true; - - // close open files - result &= fFileManager->CloseFiles(); - - // Histogram and profile files are created/closed indivudually for each - // object in WriteT function - - result &= fNtupleFileManager->ActionAtCloseFile(reset); - - // Reset data - if ( reset ) { - result = Reset(); - if ( ! result ) { - Warn("Resetting data failed", fkClass, "CloseFileImpl"); - } - } - - return result; -} - -//_____________________________________________________________________________ -G4bool G4CsvAnalysisManager::ResetImpl() -{ -// Reset histograms and ntuple - - auto result = true; - - result &= G4ToolsAnalysisManager::ResetImpl(); - if ( fNtupleFileManager != nullptr ) { - result &= fNtupleFileManager->Reset(); - } - - return result; -} diff --git a/source/analysis/csv/src/G4CsvFileManager.cc b/source/analysis/csv/src/G4CsvFileManager.cc index 64037a3941..3121501587 100644 --- a/source/analysis/csv/src/G4CsvFileManager.cc +++ b/source/analysis/csv/src/G4CsvFileManager.cc @@ -55,13 +55,15 @@ G4CsvFileManager::G4CsvFileManager(const G4AnalysisManagerState& state) G4String G4CsvFileManager::GetNtupleFileName(CsvNtupleDescription* ntupleDescription) { // get ntuple file name - auto ntupleFileName = ntupleDescription->fFileName; - if ( ntupleFileName.size() ) { + auto ntupleFileName = ntupleDescription->GetFileName(); + auto cycle = GetCycle(); + if (ntupleFileName.size() != 0u) { // update filename per object per thread - ntupleFileName = GetTnFileName(ntupleFileName, GetFileType()); - } else { + ntupleFileName = GetTnFileName(ntupleFileName, GetFileType(), cycle); + } + else { // compose ntuple file name from the default file name - ntupleFileName = GetNtupleFileName(ntupleDescription->fNtupleBooking.name()); + ntupleFileName = GetNtupleFileName(ntupleDescription->GetNtupleBooking().name(), cycle); } if ( IsNtupleDirectory() ) { @@ -150,21 +152,28 @@ G4bool G4CsvFileManager::SetNtupleDirectoryName(const G4String& dirName) return false; } +//_____________________________________________________________________________ +G4bool G4CsvFileManager::NotifyNtupleFile(CsvNtupleDescription* ntupleDescription) +{ + // Notify not empty file + auto ntupleFileName = GetNtupleFileName(ntupleDescription); + + return SetIsEmpty(ntupleFileName, ! ntupleDescription->GetHasFill()); +} + //_____________________________________________________________________________ G4bool G4CsvFileManager::CreateNtupleFile( CsvNtupleDescription* ntupleDescription) { - // get ntuple file name per object (if defined) + // Get ntuple file name per object (if defined) auto ntupleFileName = GetNtupleFileName(ntupleDescription); - Message(kVL4, "create", "ntuple file", ntupleFileName); - - // update file name if it is already in use - while ( GetTFile(ntupleFileName, false) ) { + // Update file name if it is already in use + while ( GetTFile(ntupleFileName, false) != nullptr ) { // the file is already in use - auto oldName = ntupleDescription->fFileName; + auto oldName = ntupleFileName; auto newName = GetBaseName(oldName) + "_bis." + GetExtension(oldName); - ntupleDescription->fFileName = newName; + ntupleDescription->SetFileName(newName); Warn("Ntuple filename " + oldName + " is already in use.\n" + "It will be replaced with : " + newName, @@ -173,35 +182,24 @@ G4bool G4CsvFileManager::CreateNtupleFile( ntupleFileName = GetNtupleFileName(ntupleDescription); } - ntupleDescription->fFile = CreateTFile(ntupleFileName); + // Create new ntuple file + ntupleDescription->SetFile(CreateTFile(ntupleFileName)); - Message(kVL2, "create", "ntuple file", ntupleFileName); - - return (ntupleDescription->fFile != nullptr); + return (ntupleDescription->GetFile() != nullptr); } //_____________________________________________________________________________ G4bool G4CsvFileManager::CloseNtupleFile( CsvNtupleDescription* ntupleDescription) { - // Do nothing if there is no file - if ( ! ntupleDescription->fFile ) return true; + // Notifying not empty file is done in G4CsvNtupleFileManager::ActionAtWrite, + // as here we increment the cycle number and GetNtupleFileName returns a file name + // for the next cycle version. - auto result = true; + // Ntuple files are registered in file manager map. + // they will be closed with CloseFiles() calls - auto ntupleFileName = GetNtupleFileName(ntupleDescription); + ntupleDescription->GetFile().reset(); - Message(kVL4, "close", "ntuple file", ntupleFileName); - - // close file - result &= CloseTFile(ntupleFileName); - // Notify not empty file - result &= SetIsEmpty(ntupleFileName, ! ntupleDescription->fHasFill); - - // Reset file info in ntuple description - ntupleDescription->fFile.reset(); - - Message(kVL2, "close", "ntuple file", ntupleFileName); - - return result; + return true; } diff --git a/source/analysis/csv/src/G4CsvNtupleFileManager.cc b/source/analysis/csv/src/G4CsvNtupleFileManager.cc index 3a7e27e8f5..aa18e5291a 100644 --- a/source/analysis/csv/src/G4CsvNtupleFileManager.cc +++ b/source/analysis/csv/src/G4CsvNtupleFileManager.cc @@ -39,24 +39,6 @@ G4CsvNtupleFileManager::G4CsvNtupleFileManager(const G4AnalysisManagerState& sta : G4VNtupleFileManager(state, "csv") {} -// -// private methods -// - -//_____________________________________________________________________________ -G4bool G4CsvNtupleFileManager::CloseNtupleFiles() -{ - // Close ntuple files - - auto result = true; - auto ntupleVector = fNtupleManager->GetNtupleDescriptionVector(); - for ( auto ntupleDescription : ntupleVector) { - result &= fFileManager->CloseNtupleFile(ntupleDescription); - } - - return result; -} - // // public methods // @@ -88,23 +70,29 @@ G4bool G4CsvNtupleFileManager::ActionAtOpenFile(const G4String& /*fileName*/) //_____________________________________________________________________________ G4bool G4CsvNtupleFileManager::ActionAtWrite() { - return true; + auto result = true; + + auto ntupleVector = fNtupleManager->GetNtupleDescriptionVector(); + + for ( auto ntupleDescription : ntupleVector ) { + if (ntupleDescription->GetNtuple() != nullptr) { + // Notify not empty file + result &= fFileManager->NotifyNtupleFile(ntupleDescription); + } + } + + return result; } //_____________________________________________________________________________ -G4bool G4CsvNtupleFileManager::ActionAtCloseFile(G4bool reset) +G4bool G4CsvNtupleFileManager::ActionAtCloseFile() { auto result = true; - // close ntuple files - result &= CloseNtupleFiles(); - - if ( ! reset ) { - // The ntuples must be always reset when closing file) - result = Reset(); - if ( ! result ) { - Warn("Resetting data failed", fkClass, "ActionAtCloseFile"); - } + // Close ntuple files + auto ntupleVector = fNtupleManager->GetNtupleDescriptionVector(); + for ( auto ntupleDescription : ntupleVector) { + result &= fFileManager->CloseNtupleFile(ntupleDescription); } return result; diff --git a/source/analysis/csv/src/G4CsvNtupleManager.cc b/source/analysis/csv/src/G4CsvNtupleManager.cc index 334b4b5409..bc6fbca93b 100644 --- a/source/analysis/csv/src/G4CsvNtupleManager.cc +++ b/source/analysis/csv/src/G4CsvNtupleManager.cc @@ -54,10 +54,10 @@ void G4CsvNtupleManager::CreateTNtupleFromBooking( if ( ! fFileManager->CreateNtupleFile(ntupleDescription) ) return; // create ntuple - ntupleDescription->fNtuple - = new tools::wcsv::ntuple( - *(ntupleDescription->fFile), G4cerr, ntupleDescription->fNtupleBooking); - fNtupleVector.push_back(ntupleDescription->fNtuple); + ntupleDescription->SetNtuple( + new tools::wcsv::ntuple( + *(ntupleDescription->GetFile()), G4cerr, ntupleDescription->GetNtupleBooking())); + fNtupleVector.push_back(ntupleDescription->GetNtuple()); } //_____________________________________________________________________________ @@ -67,22 +67,21 @@ void G4CsvNtupleManager::FinishTNtuple( { // Do nothing if the base file name was not yet defined - if ( ! fFileManager->GetFileName().size() ) return; + if (fFileManager->GetFileName().size() == 0u) return; // Create ntuple from booking - if ( ! ntupleDescription->fNtuple ) { + if (ntupleDescription->GetNtuple() == nullptr) { CreateTNtupleFromBooking(ntupleDescription); } // Return if creating ntuple failed - if ( ! ntupleDescription->fNtuple ) { + if (ntupleDescription->GetNtuple() == nullptr) { Warn("Creating ntuple has failed.", fkClass, "FinishTNtuple"); return; } - // Write header if ntuple already exists - if ( ! WriteHeader(ntupleDescription->fNtuple) ) { + if ( ! WriteHeader(ntupleDescription->GetNtuple()) ) { Warn("Writing ntuple header has failed.", fkClass, "FinishTNtuple"); } } diff --git a/source/analysis/csv/src/G4CsvRFileManager.cc b/source/analysis/csv/src/G4CsvRFileManager.cc index e61ff50aa2..40b3b794f2 100644 --- a/source/analysis/csv/src/G4CsvRFileManager.cc +++ b/source/analysis/csv/src/G4CsvRFileManager.cc @@ -89,9 +89,8 @@ G4bool G4CsvRFileManager::OpenRFile(const G4String& fileName) std::ifstream* G4CsvRFileManager::GetRFile(const G4String& fileName) const { auto it = fRFiles.find(fileName); - if ( it != fRFiles.end() ) + if (it != fRFiles.end()) { return it->second; - else { - return nullptr; } + return nullptr; } diff --git a/source/analysis/factory/include/G4GenericAnalysisManager.hh b/source/analysis/factory/include/G4GenericAnalysisManager.hh index b692b746ca..af97d845d9 100644 --- a/source/analysis/factory/include/G4GenericAnalysisManager.hh +++ b/source/analysis/factory/include/G4GenericAnalysisManager.hh @@ -41,6 +41,7 @@ #include class G4GenericAnalysisManager; +class G4GenericAnalysisMessenger; class G4GenericFileManager; class G4HnInformation; class G4VNtupleFileManager; @@ -53,18 +54,17 @@ class G4GenericAnalysisManager : public G4ToolsAnalysisManager friend class G4ThreadLocalSingleton; public: - virtual ~G4GenericAnalysisManager(); + ~G4GenericAnalysisManager() override; // Static methods static G4GenericAnalysisManager* Instance(); static G4bool IsInstance(); // MT/MPI - virtual void SetNtupleMerging(G4bool mergeNtuples, - G4int nofReducedNtupleFiles = 0) override; - virtual void SetNtupleRowWise(G4bool rowWise, G4bool rowMode = true) override; - virtual void SetBasketSize(unsigned int basketSize) override; - virtual void SetBasketEntries(unsigned int basketEntries) override; + void SetNtupleMerging(G4bool mergeNtuples, G4int nofReducedNtupleFiles = 0) override; + void SetNtupleRowWise(G4bool rowWise, G4bool rowMode = true) override; + void SetBasketSize(unsigned int basketSize) override; + void SetBasketEntries(unsigned int basketEntries) override; // write in an extra file G4bool WriteH1(G4int id, const G4String& fileName); @@ -80,14 +80,9 @@ class G4GenericAnalysisManager : public G4ToolsAnalysisManager protected: // Virtual methods from base class - virtual G4bool OpenFileImpl(const G4String& fileName) override; - virtual G4bool WriteImpl() final; - virtual G4bool CloseFileImpl(G4bool reset = true) override; - virtual G4bool ResetImpl() final; - virtual G4bool IsOpenFileImpl() const final; + G4bool OpenFileImpl(const G4String& fileName) override; // File manager access - virtual std::shared_ptr GetFileManager(const G4String& fileName) final; - + std::shared_ptr GetFileManager(const G4String& fileName) final; private: G4GenericAnalysisManager(); @@ -100,6 +95,7 @@ class G4GenericAnalysisManager : public G4ToolsAnalysisManager static constexpr std::string_view fkClass { "G4GenericAnalysisManager" }; // Data members + std::unique_ptr fMessenger; std::shared_ptr fFileManager { nullptr }; // add G4GenericNtupleManager // this class will be analogic to file managers but with ntuples diff --git a/source/analysis/factory/include/G4GenericAnalysisManager.icc b/source/analysis/factory/include/G4GenericAnalysisManager.icc index d2e9ea67a5..6d480ec308 100644 --- a/source/analysis/factory/include/G4GenericAnalysisManager.icc +++ b/source/analysis/factory/include/G4GenericAnalysisManager.icc @@ -76,10 +76,3 @@ inline G4String G4GenericAnalysisManager::GetDefaultFileType() const { return fFileManager->GetDefaultFileType(); } - -//_____________________________________________________________________________ -inline -G4bool G4GenericAnalysisManager::IsOpenFileImpl() const -{ - return fFileManager->IsOpenFile(); -} diff --git a/source/analysis/management/include/G4P1Messenger.hh b/source/analysis/factory/include/G4GenericAnalysisMessenger.hh similarity index 55% rename from source/analysis/management/include/G4P1Messenger.hh rename to source/analysis/factory/include/G4GenericAnalysisMessenger.hh index 6dbb9306c2..f38516a01b 100644 --- a/source/analysis/management/include/G4P1Messenger.hh +++ b/source/analysis/factory/include/G4GenericAnalysisMessenger.hh @@ -24,55 +24,57 @@ // ******************************************************************** // -// The messenger class for P1 management. -// It implements commands in /analysis/p1 directory. +// The messenger class for G4GenericAnalysisManager. +// It implements command: +// - /analysis/setDefaultFileType // -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) +// Author: Ivana Hrivnacova, 18/10/2022 (ivana@ipno.in2p3.fr) -#ifndef G4P1Messenger_h -#define G4P1Messenger_h 1 +#ifndef G4GenericAnalysisMessenger_h +#define G4GenericAnalysisMessenger_h 1 #include "G4UImessenger.hh" -#include "G4AnalysisMessengerHelper.hh" -#include "G4AnalysisUtilities.hh" #include "globals.hh" #include -class G4VAnalysisManager; -class G4UIdirectory; -class G4UIcommand; +class G4GenericAnalysisManager; +class G4UIcmdWithAString; -class G4P1Messenger : public G4UImessenger +class G4GenericAnalysisMessenger : public G4UImessenger { public: - explicit G4P1Messenger(G4VAnalysisManager* manager); - G4P1Messenger() = delete; - virtual ~G4P1Messenger(); + explicit G4GenericAnalysisMessenger(G4GenericAnalysisManager* manager); + G4GenericAnalysisMessenger() = delete; + ~G4GenericAnalysisMessenger() override; // Methods - virtual void SetNewValue(G4UIcommand* command, G4String value) final; + void SetNewValue(G4UIcommand* command, G4String value) final; private: - void CreateP1Cmd(); - void SetP1Cmd(); + template + std::unique_ptr CreateCommand( + G4String name, G4String guidance, G4String paremeterName, + G4bool ommitable = false); - G4VAnalysisManager* fManager { nullptr }; ///< Associated class - std::unique_ptr fHelper; - std::unique_ptr fDirectory; - - std::unique_ptr fCreateP1Cmd; - std::unique_ptr fSetP1Cmd; - std::unique_ptr fSetP1XCmd; - std::unique_ptr fSetP1YCmd; - std::unique_ptr fSetP1TitleCmd; - std::unique_ptr fSetP1XAxisCmd; - std::unique_ptr fSetP1YAxisCmd; - std::unique_ptr fSetP1XAxisLogCmd; - std::unique_ptr fSetP1YAxisLogCmd; - - G4int fXId { G4Analysis::kInvalidId }; - G4AnalysisMessengerHelper::BinData fXData; + // Data members + G4GenericAnalysisManager* fManager { nullptr }; ///< Associated class + std::unique_ptr fSetDefaultFileTypeCmd; }; +//_____________________________________________________________________________ +template +std::unique_ptr G4GenericAnalysisMessenger::CreateCommand( + G4String name, G4String guidance, G4String paremeterName, G4bool ommitable) +{ + G4String fullName = "/analysis/" + name; + + auto command = std::make_unique(fullName, this); + command->SetGuidance(guidance.c_str()); + command->SetParameterName(paremeterName.c_str(), ommitable); + command->AvailableForStates(G4State_PreInit, G4State_Idle); + + return command; +} + #endif diff --git a/source/analysis/factory/include/G4GenericFileManager.hh b/source/analysis/factory/include/G4GenericFileManager.hh index ae23f66ce8..36ff622e07 100644 --- a/source/analysis/factory/include/G4GenericFileManager.hh +++ b/source/analysis/factory/include/G4GenericFileManager.hh @@ -53,30 +53,30 @@ class G4GenericFileManager : public G4VFileManager { public: explicit G4GenericFileManager(const G4AnalysisManagerState& state); - virtual ~G4GenericFileManager() = default; + ~G4GenericFileManager() override = default; // Method to manipulate a default file - virtual G4bool OpenFile(const G4String& fileName) final; + G4bool OpenFile(const G4String& fileName) final; // Methods applied to all registered files virtual G4bool OpenFiles() final; - virtual G4bool WriteFiles() final; - virtual G4bool CloseFiles() final; - virtual G4bool DeleteEmptyFiles() final; + G4bool WriteFiles() final; + G4bool CloseFiles() final; + G4bool DeleteEmptyFiles() final; // Clear all data - virtual void Clear() final; + void Clear() final; // Methods applied to file per name - virtual G4bool CreateFile(const G4String& fileName) final; - virtual G4bool WriteFile(const G4String& fileName) final; - virtual G4bool CloseFile(const G4String& fileName) final; - virtual G4bool SetIsEmpty(const G4String& fileName, G4bool isEmpty) final; + G4bool CreateFile(const G4String& fileName) final; + G4bool WriteFile(const G4String& fileName) final; + G4bool CloseFile(const G4String& fileName) final; + G4bool SetIsEmpty(const G4String& fileName, G4bool isEmpty) final; - virtual G4bool SetHistoDirectoryName(const G4String& dirName); - virtual G4bool SetNtupleDirectoryName(const G4String& dirName); + G4bool SetHistoDirectoryName(const G4String& dirName) override; + G4bool SetNtupleDirectoryName(const G4String& dirName) override; - virtual G4String GetFileType() const final { return ""; } + G4String GetFileType() const final { return ""; } // Set default output type (backward compatibility) // this type will be used for file names without extension diff --git a/source/analysis/factory/sources.cmake b/source/analysis/factory/sources.cmake index b2f01e8b73..60fc19d7ce 100644 --- a/source/analysis/factory/sources.cmake +++ b/source/analysis/factory/sources.cmake @@ -6,14 +6,16 @@ geant4_add_module(G4analysisfac G4AnalysisManager.hh G4GenericAnalysisManager.hh G4GenericAnalysisManager.icc + G4GenericAnalysisMessenger.hh G4GenericFileManager.hh G4GenericFileManager.icc SOURCES G4GenericAnalysisManager.cc + G4GenericAnalysisMessenger.cc G4GenericFileManager.cc) geant4_module_link_libraries(G4analysisfac - PUBLIC G4analysismng G4hntools G4globman + PUBLIC G4analysismng G4hntools G4globman G4intercoms PRIVATE G4csv G4root G4xml) # HDF5, if enabled diff --git a/source/analysis/factory/src/G4GenericAnalysisManager.cc b/source/analysis/factory/src/G4GenericAnalysisManager.cc index 648e695855..f4c2f776a6 100644 --- a/source/analysis/factory/src/G4GenericAnalysisManager.cc +++ b/source/analysis/factory/src/G4GenericAnalysisManager.cc @@ -27,6 +27,7 @@ // Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr) #include "G4GenericAnalysisManager.hh" +#include "G4GenericAnalysisMessenger.hh" #include "G4GenericFileManager.hh" #include "G4AnalysisManagerState.hh" #include "G4AnalysisUtilities.hh" @@ -70,6 +71,8 @@ G4bool G4GenericAnalysisManager::IsInstance() G4GenericAnalysisManager::G4GenericAnalysisManager() : G4ToolsAnalysisManager("") { + fMessenger = std::make_unique(this); + if ( ! G4Threading::IsWorkerThread() ) fgMasterInstance = this; // File manager @@ -112,6 +115,7 @@ void G4GenericAnalysisManager::CreateNtupleFileManager(const G4String& fileName) fNtupleFileManager = fFileManager->CreateNtupleFileManager(output); if (fNtupleFileManager) { + SetNtupleFileManager(fNtupleFileManager); fNtupleFileManager->SetBookingManager(fNtupleBookingManager); if ( fNtupleFileManager->IsNtupleMergingSupported() ) { @@ -142,10 +146,10 @@ G4bool G4GenericAnalysisManager::OpenFileImpl(const G4String& fileName) // Add file name extension, if missing auto fullFileName = fileName; - if ( ! GetExtension(fileName).size() ) { + if (GetExtension(fileName).size() == 0u) { auto defaultFileType = fFileManager->GetDefaultFileType(); // G4cout << "File type is not defined, using default: " << defaultFileType << G4endl; - if ( ! defaultFileType.size() ) { + if (defaultFileType.size() == 0u) { G4Exception("G4GenericAnalysisManager::OpenFileImpl", "Analysis_F001", FatalException, G4String("Cannot open file \"" + fileName + "\".\n" @@ -161,110 +165,16 @@ G4bool G4GenericAnalysisManager::OpenFileImpl(const G4String& fileName) CreateNtupleFileManager(fullFileName); } - // Create ntuple manager - // and set it to base class which takes then its ownership - if (fNtupleFileManager) { - SetNtupleManager(fNtupleFileManager->CreateNtupleManager()); - } - auto result = true; - - // Open file for histograms/profiles - result &= fFileManager->OpenFile(fullFileName); - - // Open ntuple file(s) and create ntuples from bookings if (fNtupleFileManager) { - result &= fNtupleFileManager->ActionAtOpenFile(fullFileName); - } - - Message(kVL3, "open", "file", fileName); - - return result; -} - -//_____________________________________________________________________________ -G4bool G4GenericAnalysisManager::WriteImpl() -{ - Message(kVL4, "write", "files"); - - auto result = true; - if ( G4Threading::IsWorkerThread() ) { - result &= G4ToolsAnalysisManager::Merge(); + result &= G4ToolsAnalysisManager::OpenFileImpl(fullFileName); } else { - // Open all files registered with objects - fFileManager->OpenFiles(); - - // Write all histograms/profile on master - result &= G4ToolsAnalysisManager::WriteImpl(); + // no ntuples (check if this mode is supported) + result &= fFileManager->OpenFile(fullFileName); } - // Ntuples - if (fNtupleFileManager) { - result &= fNtupleFileManager->ActionAtWrite(); - } - - // File - result &= fFileManager->WriteFiles(); - - // Write ASCII if activated - if ( IsAscii() ) { - result &= WriteAscii(fFileManager->GetFileName()); - } - - Message(kVL3, "write", "files", "", result); - - return result; -} - -//_____________________________________________________________________________ -G4bool G4GenericAnalysisManager::CloseFileImpl(G4bool reset) -{ - Message(kVL4, "close", "files"); - - auto result = true; - if (fNtupleFileManager) { - result &= fNtupleFileManager->ActionAtCloseFile(reset); - } - - // close file - if ( ! fFileManager->CloseFiles() ) { - Warn("Closing files failed", fkClass, "CloseFileImpl"); - result = false; - } - - // delete empty files - if ( ! fFileManager->DeleteEmptyFiles() ) { - Warn("Deleting empty files failed", fkClass, "CloseFileImpl"); - result = false; - } - - if ( reset ) { - if ( ! Reset() ) { - Warn("Resetting data failed", fkClass, "CloseFileImpl"); - result = false; - } - } - - Message(kVL3, "close", "files", "", result); - - return result; -} - -//_____________________________________________________________________________ -G4bool G4GenericAnalysisManager::ResetImpl() -{ -// Reset histograms and ntuple - - Message(kVL4, "reset", ""); - - auto result = true; - result &= G4ToolsAnalysisManager::ResetImpl(); - if ( fNtupleFileManager != nullptr ) { - result &= fNtupleFileManager->Reset(); - } - - Message(kVL3, "reset", "", "", result); + Message(kVL3, "open", "file", fileName, result); return result; } @@ -279,7 +189,7 @@ G4bool G4GenericAnalysisManager::WriteH1(G4int id, const G4String& fileName) if ( G4Threading::IsWorkerThread() ) return false; auto h1d = GetH1(id, false); - if ( ! h1d ) { + if (h1d == nullptr) { WriteHnWarning("H1", id, fkClass, "WriteH1"); return false; } @@ -298,7 +208,7 @@ G4bool G4GenericAnalysisManager::WriteH2(G4int id, const G4String& fileName) if ( G4Threading::IsWorkerThread() ) return false; auto h2d = GetH2(id, false); - if ( ! h2d ) { + if (h2d == nullptr) { WriteHnWarning("H2", id, fkClass, "WriteH2"); return false; } @@ -316,7 +226,7 @@ G4bool G4GenericAnalysisManager::WriteH3(G4int id, const G4String& fileName) if ( G4Threading::IsWorkerThread() ) return false; auto h3d = GetH3(id, false); - if ( ! h3d ) { + if (h3d == nullptr) { WriteHnWarning("H3", id, fkClass, "WriteH3"); return false; } @@ -335,7 +245,7 @@ G4bool G4GenericAnalysisManager::WriteP1(G4int id, const G4String& fileName) if ( G4Threading::IsWorkerThread() ) return false; auto p1d = GetP1(id, false); - if ( ! p1d ) { + if (p1d == nullptr) { WriteHnWarning("P1", id, fkClass, "WriteP1"); return false; } @@ -353,7 +263,7 @@ G4bool G4GenericAnalysisManager::WriteP2(G4int id, const G4String& fileName) if ( G4Threading::IsWorkerThread() ) return false; auto p2d = GetP2(id, false); - if ( ! p2d ) { + if (p2d == nullptr) { WriteHnWarning("P2", id, fkClass, "WriteP2"); return false; } diff --git a/source/analysis/hntools/include/G4BaseHistoUtilities.hh b/source/analysis/factory/src/G4GenericAnalysisMessenger.cc similarity index 60% rename from source/analysis/hntools/include/G4BaseHistoUtilities.hh rename to source/analysis/factory/src/G4GenericAnalysisMessenger.cc index b75ced5610..e7dceff779 100644 --- a/source/analysis/hntools/include/G4BaseHistoUtilities.hh +++ b/source/analysis/factory/src/G4GenericAnalysisMessenger.cc @@ -24,44 +24,39 @@ // ******************************************************************** // -// Utility functions using tools::histo::base_histo information. -// -// Author: Ivana Hrivnacova, 22/06/2015 (ivana@ipno.in2p3.fr) +// Author: Ivana Hrivnacova, 18/10/2022 (ivana@ipno.in2p3.fr) -#ifndef G4BaseHistoUtilities_h -#define G4BaseHistoUtilities_h 1 +#include "G4GenericAnalysisMessenger.hh" +#include "G4GenericAnalysisManager.hh" -#include "globals.hh" +#include "G4UIcmdWithAString.hh" -#include "tools/histo/base_histo" - -namespace G4Analysis +//_____________________________________________________________________________ +G4GenericAnalysisMessenger::G4GenericAnalysisMessenger(G4GenericAnalysisManager* manager) + : fManager(manager) { - -using G4ToolsBaseHisto - = tools::histo::base_histo; - -// Access to data parameters -// -G4int GetNbins(const G4ToolsBaseHisto& baseHisto, G4int dimension); -G4double GetMin(const G4ToolsBaseHisto& baseHisto, G4int dimension); -G4double GetMax(const G4ToolsBaseHisto& baseHisto, G4int dimension); -G4double GetWidth(const G4ToolsBaseHisto& baseHisto, G4int dimension, - const G4String& hnType); - -// Attributes for plotting -// - -// Setters -G4bool SetTitle(G4ToolsBaseHisto& baseHisto, const G4String& title); -G4bool SetAxisTitle(G4ToolsBaseHisto& baseHisto, G4int dimension, const G4String& title); - -// Accessors -G4String GetTitle(const G4ToolsBaseHisto& baseHisto); -G4String GetAxisTitle(const G4ToolsBaseHisto& baseHisto, G4int dimension, - const G4String& hnType); - + fSetDefaultFileTypeCmd = CreateCommand( + "setDefaultFileType", "Set default output file type", "DefaultFileType", false); +#ifdef TOOLS_USE_HDF5 + fSetDefaultFileTypeCmd->SetCandidates("csv hdf5 root xml"); +#else + fSetDefaultFileTypeCmd->SetCandidates("csv root xml"); +#endif } -#endif +//_____________________________________________________________________________ +G4GenericAnalysisMessenger::~G4GenericAnalysisMessenger() = default; +// +// +// public functions +// + +//_____________________________________________________________________________ +void G4GenericAnalysisMessenger::SetNewValue(G4UIcommand* command, G4String newValues) +{ + if ( command == fSetDefaultFileTypeCmd.get() ) { + fManager->SetDefaultFileType(newValues); + return; + } +} diff --git a/source/analysis/factory/src/G4GenericFileManager.cc b/source/analysis/factory/src/G4GenericFileManager.cc index bcc9d89ebd..bd65d8ee2a 100644 --- a/source/analysis/factory/src/G4GenericFileManager.cc +++ b/source/analysis/factory/src/G4GenericFileManager.cc @@ -135,7 +135,7 @@ G4GenericFileManager::GetFileManager(const G4String& fileName) { // Get file extension G4String extension = GetExtension(fileName); - if ( ! extension.size() ) { + if (extension.size() == 0u) { // use the default extension = fDefaultFileType; } @@ -212,7 +212,13 @@ G4bool G4GenericFileManager::OpenFiles() continue; } - result &= fileManager->CreateFile(fileName); + // filenames for csv need to be updated + auto newFileName = fileName; + if (fileManager == fCsvFileManager) { + newFileName = fileManager->GetHnFileName(fileName, GetCycle()); + } + + result &= fileManager->CreateFile(newFileName); } Message(kVL3, "open", "analysis files", "", result); @@ -360,7 +366,7 @@ G4bool G4GenericFileManager::SetHistoDirectoryName(const G4String& dirName) { auto result = G4VFileManager::SetHistoDirectoryName(dirName); - for (auto fileManager : fFileManagers ) { + for (auto& fileManager : fFileManagers ) { if ( fileManager != nullptr ) { result &= fileManager->SetHistoDirectoryName(dirName); } @@ -373,7 +379,7 @@ G4bool G4GenericFileManager::SetNtupleDirectoryName(const G4String& dirName) { auto result = G4VFileManager::SetNtupleDirectoryName(dirName); - for (auto fileManager : fFileManagers ) { + for (auto& fileManager : fFileManagers ) { if ( fileManager != nullptr ) { result &= fileManager->SetNtupleDirectoryName(dirName); } diff --git a/source/analysis/hdf5/include/G4Hdf5AnalysisManager.hh b/source/analysis/hdf5/include/G4Hdf5AnalysisManager.hh index 67b3cf189a..c4e72eeb10 100644 --- a/source/analysis/hdf5/include/G4Hdf5AnalysisManager.hh +++ b/source/analysis/hdf5/include/G4Hdf5AnalysisManager.hh @@ -41,7 +41,6 @@ #include class G4Hdf5AnalysisManager; -class G4Hdf5FileManager; class G4Hdf5NtupleFileManager; template class G4ThreadLocalSingleton; @@ -51,7 +50,7 @@ class G4Hdf5AnalysisManager : public G4ToolsAnalysisManager friend class G4ThreadLocalSingleton; public: - virtual ~G4Hdf5AnalysisManager(); + ~G4Hdf5AnalysisManager() override; // Static methods static G4Hdf5AnalysisManager* Instance(); @@ -69,23 +68,18 @@ class G4Hdf5AnalysisManager : public G4ToolsAnalysisManager protected: // Virtual methods from base class - virtual G4bool OpenFileImpl(const G4String& fileName) final; - virtual G4bool WriteImpl() final; - virtual G4bool CloseFileImpl(G4bool reset) final; - virtual G4bool ResetImpl() final; - virtual G4bool IsOpenFileImpl() const final; + G4bool OpenFileImpl(const G4String& fileName) final; + G4bool CloseFileImpl(G4bool reset) final; private: G4Hdf5AnalysisManager(); // Static data members - inline static G4Hdf5AnalysisManager* fgMasterInstance { nullptr }; inline static G4ThreadLocal G4bool fgIsInstance { false }; static constexpr std::string_view fkClass { "G4Hdf5AnalysisManager" }; // Data members std::shared_ptr fNtupleFileManager { nullptr }; - std::shared_ptr fFileManager { nullptr }; }; #include "G4Hdf5AnalysisManager.icc" diff --git a/source/analysis/hdf5/include/G4Hdf5AnalysisManager.icc b/source/analysis/hdf5/include/G4Hdf5AnalysisManager.icc index f9eb57b323..c50297a446 100644 --- a/source/analysis/hdf5/include/G4Hdf5AnalysisManager.icc +++ b/source/analysis/hdf5/include/G4Hdf5AnalysisManager.icc @@ -30,13 +30,6 @@ #include "G4Hdf5NtupleManager.hh" #include "G4Hdf5FileManager.hh" -//_____________________________________________________________________________ -inline -G4bool G4Hdf5AnalysisManager::IsOpenFileImpl() const -{ - return fFileManager->IsOpenFile(); -} - //_____________________________________________________________________________ inline toolx::hdf5::ntuple* G4Hdf5AnalysisManager::GetNtuple() const diff --git a/source/analysis/hdf5/include/G4Hdf5AnalysisReader.hh b/source/analysis/hdf5/include/G4Hdf5AnalysisReader.hh index 19bcd6aed8..84377e162b 100644 --- a/source/analysis/hdf5/include/G4Hdf5AnalysisReader.hh +++ b/source/analysis/hdf5/include/G4Hdf5AnalysisReader.hh @@ -51,7 +51,7 @@ class G4Hdf5AnalysisReader : public G4ToolsAnalysisReader friend class G4ThreadLocalSingleton; public: - virtual ~G4Hdf5AnalysisReader(); + ~G4Hdf5AnalysisReader() override; // Static methods static G4Hdf5AnalysisReader* Instance(); @@ -63,7 +63,7 @@ class G4Hdf5AnalysisReader : public G4ToolsAnalysisReader protected: // Virtual methods from base class - virtual G4bool CloseFilesImpl(G4bool reset) final; + G4bool CloseFilesImpl(G4bool reset) final; private: G4Hdf5AnalysisReader(); diff --git a/source/analysis/hdf5/include/G4Hdf5FileManager.hh b/source/analysis/hdf5/include/G4Hdf5FileManager.hh index 1594987b08..ea76bd75fd 100644 --- a/source/analysis/hdf5/include/G4Hdf5FileManager.hh +++ b/source/analysis/hdf5/include/G4Hdf5FileManager.hh @@ -49,16 +49,16 @@ class G4Hdf5FileManager : public G4VTFileManager public: explicit G4Hdf5FileManager(const G4AnalysisManagerState& state); G4Hdf5FileManager() = delete; - ~G4Hdf5FileManager() = default; + ~G4Hdf5FileManager() override = default; using G4BaseFileManager::GetNtupleFileName; using G4VTFileManager::WriteFile; using G4VTFileManager::CloseFile; // Methods to manipulate output files - virtual G4bool OpenFile(const G4String& fileName) final; + G4bool OpenFile(const G4String& fileName) final; - virtual G4String GetFileType() const final { return "hdf5"; } + G4String GetFileType() const final { return "hdf5"; } // Specific methods for files per objects G4bool CreateNtupleFile(Hdf5NtupleDescription* ntupleDescription); @@ -74,9 +74,9 @@ class G4Hdf5FileManager : public G4VTFileManager protected: // // Methods derived from base class - virtual std::shared_ptr CreateFileImpl(const G4String& fileName) final; - virtual G4bool WriteFileImpl(std::shared_ptr file) final; - virtual G4bool CloseFileImpl(std::shared_ptr file) final; + std::shared_ptr CreateFileImpl(const G4String& fileName) final; + G4bool WriteFileImpl(std::shared_ptr file) final; + G4bool CloseFileImpl(std::shared_ptr file) final; private: hid_t CreateDirectory(hid_t& file, const G4String& directoryName, diff --git a/source/analysis/hdf5/include/G4Hdf5HnFileManager.hh b/source/analysis/hdf5/include/G4Hdf5HnFileManager.hh index 50ee041b69..48d221bc2c 100644 --- a/source/analysis/hdf5/include/G4Hdf5HnFileManager.hh +++ b/source/analysis/hdf5/include/G4Hdf5HnFileManager.hh @@ -45,14 +45,14 @@ class G4Hdf5HnFileManager : public G4VTHnFileManager public: explicit G4Hdf5HnFileManager(G4Hdf5FileManager* fileManger) : G4VTHnFileManager(), fFileManager(fileManger) {} - G4Hdf5HnFileManager() = delete; - virtual ~G4Hdf5HnFileManager() = default; + G4Hdf5HnFileManager() = delete; + ~G4Hdf5HnFileManager() override = default; // Methods for writing objects // Write to a new file (the file is closed after write) - virtual G4bool WriteExtra(HT* ht, const G4String& htName, const G4String& fileName) final; + G4bool WriteExtra(HT* ht, const G4String& htName, const G4String& fileName) final; // Write to the default file (handled with OpenFile()/CloseFile methods) - virtual G4bool Write(HT* ht, const G4String& htName, G4String& fileName) final; + G4bool Write(HT* ht, const G4String& htName, G4String& fileName) final; private: // Methods diff --git a/source/analysis/hdf5/include/G4Hdf5HnFileManager.icc b/source/analysis/hdf5/include/G4Hdf5HnFileManager.icc index 89b3c830af..7e81b28bde 100644 --- a/source/analysis/hdf5/include/G4Hdf5HnFileManager.icc +++ b/source/analysis/hdf5/include/G4Hdf5HnFileManager.icc @@ -36,8 +36,6 @@ #include "tools/histo/p1d" #include "tools/histo/p2d" -#include "toolx/hdf5/h2file" - //_____________________________________________________________________________ template <> inline diff --git a/source/analysis/hdf5/include/G4Hdf5HnRFileManager.hh b/source/analysis/hdf5/include/G4Hdf5HnRFileManager.hh index de194d184d..605a94b084 100644 --- a/source/analysis/hdf5/include/G4Hdf5HnRFileManager.hh +++ b/source/analysis/hdf5/include/G4Hdf5HnRFileManager.hh @@ -46,11 +46,11 @@ class G4Hdf5HnRFileManager : public G4VTHnRFileManager explicit G4Hdf5HnRFileManager(G4Hdf5RFileManager* rfileManger) : G4VTHnRFileManager(), fRFileManager(rfileManger) {} G4Hdf5HnRFileManager() = delete; - virtual ~G4Hdf5HnRFileManager() = default; + ~G4Hdf5HnRFileManager() override = default; // Methods for writing objects - virtual HT* Read(const G4String& htName, const G4String& fileName, - const G4String& dirName, G4bool isUserFileName) final; + HT* Read(const G4String& htName, const G4String& fileName, const G4String& dirName, + G4bool isUserFileName) final; private: // Methods diff --git a/source/analysis/hdf5/include/G4Hdf5HnRFileManager.icc b/source/analysis/hdf5/include/G4Hdf5HnRFileManager.icc index 76e1938193..ab5e5c16e4 100644 --- a/source/analysis/hdf5/include/G4Hdf5HnRFileManager.icc +++ b/source/analysis/hdf5/include/G4Hdf5HnRFileManager.icc @@ -36,8 +36,6 @@ #include "tools/histo/p1d" #include "tools/histo/p2d" -#include "toolx/hdf5/h2file" - //_____________________________________________________________________________ template inline diff --git a/source/analysis/hdf5/include/G4Hdf5NtupleFileManager.hh b/source/analysis/hdf5/include/G4Hdf5NtupleFileManager.hh index 6b12f0fadf..1ffb755ece 100644 --- a/source/analysis/hdf5/include/G4Hdf5NtupleFileManager.hh +++ b/source/analysis/hdf5/include/G4Hdf5NtupleFileManager.hh @@ -35,6 +35,7 @@ #include "globals.hh" #include +#include class G4Hdf5FileManager; class G4Hdf5NtupleManager; @@ -48,24 +49,21 @@ class G4Hdf5NtupleFileManager : public G4VNtupleFileManager public: explicit G4Hdf5NtupleFileManager(const G4AnalysisManagerState& state); G4Hdf5NtupleFileManager() = delete; - virtual ~G4Hdf5NtupleFileManager() = default; + ~G4Hdf5NtupleFileManager() override = default; - virtual std::shared_ptr CreateNtupleManager() override; + std::shared_ptr CreateNtupleManager() override; // Methods to be performed at file management - virtual G4bool ActionAtOpenFile(const G4String& fileName) override; - virtual G4bool ActionAtWrite() override; - virtual G4bool ActionAtCloseFile(G4bool reset) override; - virtual G4bool Reset() override; + G4bool ActionAtOpenFile(const G4String& fileName) override; + G4bool ActionAtWrite() override; + G4bool ActionAtCloseFile() override; + G4bool Reset() override; void SetFileManager(std::shared_ptr fileManager); std::shared_ptr GetNtupleManager() const; private: - // Methods - G4bool CloseNtupleFiles(); - // Static data members static constexpr std::string_view fkClass { "G4Hdf5NtupleFileManager" }; @@ -76,7 +74,9 @@ class G4Hdf5NtupleFileManager : public G4VNtupleFileManager inline void G4Hdf5NtupleFileManager::SetFileManager( std::shared_ptr fileManager) -{ fFileManager = fileManager; } +{ + fFileManager = std::move(fileManager); +} inline std::shared_ptr G4Hdf5NtupleFileManager::GetNtupleManager() const { return fNtupleManager; } diff --git a/source/analysis/hdf5/include/G4Hdf5NtupleManager.hh b/source/analysis/hdf5/include/G4Hdf5NtupleManager.hh index 273216ac44..bf73a389ae 100644 --- a/source/analysis/hdf5/include/G4Hdf5NtupleManager.hh +++ b/source/analysis/hdf5/include/G4Hdf5NtupleManager.hh @@ -37,8 +37,9 @@ #include "toolx/hdf5/ntuple" -#include #include +#include +#include class G4Hdf5FileManager; @@ -63,7 +64,7 @@ class G4Hdf5NtupleManager : public G4TNtupleManager fileManager) -{ fFileManager = fileManager; } +{ + fFileManager = std::move(fileManager); +} inline const std::vector& G4Hdf5NtupleManager::GetNtupleDescriptionVector() const @@ -115,7 +115,7 @@ inline G4bool G4TNtupleManager::FillNtupleTColu // get ntuple auto ntuple = GetNtupleInFunction(ntupleId, "FillNtupleTColumn"); - if ( ! ntuple ) return false; + if (ntuple == nullptr) return false; // get generic column auto index = columnId - fFirstNtupleColumnId; @@ -129,7 +129,7 @@ inline G4bool G4TNtupleManager::FillNtupleTColu // get column and check its type auto column = dynamic_cast(icolumn); - if ( ! column ) { + if (column == nullptr) { G4Analysis::Warn( "Column type does not match: ntupleId " + to_string(ntupleId) + " columnId " + to_string(columnId) + " value " + value, diff --git a/source/analysis/hdf5/include/G4Hdf5RFileManager.hh b/source/analysis/hdf5/include/G4Hdf5RFileManager.hh index 06279b6721..27da3a7484 100644 --- a/source/analysis/hdf5/include/G4Hdf5RFileManager.hh +++ b/source/analysis/hdf5/include/G4Hdf5RFileManager.hh @@ -47,12 +47,12 @@ class G4Hdf5RFileManager : public G4VRFileManager public: explicit G4Hdf5RFileManager(const G4AnalysisManagerState& state); G4Hdf5RFileManager() = delete; - virtual ~G4Hdf5RFileManager() = default; + ~G4Hdf5RFileManager() override = default; - virtual G4String GetFileType() const final { return "hdf5"; } + G4String GetFileType() const final { return "hdf5"; } // Methods from base class - virtual void CloseFiles() final; + void CloseFiles() final; // Get methods G4Hdf5File* GetRFile(const G4String& fileName, G4bool isPerThread); diff --git a/source/analysis/hdf5/include/G4Hdf5RNtupleManager.hh b/source/analysis/hdf5/include/G4Hdf5RNtupleManager.hh index dc8f1bca13..a5642f7e4e 100644 --- a/source/analysis/hdf5/include/G4Hdf5RNtupleManager.hh +++ b/source/analysis/hdf5/include/G4Hdf5RNtupleManager.hh @@ -38,6 +38,7 @@ #include "toolx/hdf5/ntuple" #include +#include class G4Hdf5RFileManager; @@ -48,16 +49,16 @@ class G4Hdf5RNtupleManager : public G4TRNtupleManager public: explicit G4Hdf5RNtupleManager(const G4AnalysisManagerState& state); G4Hdf5RNtupleManager() = delete; - virtual ~G4Hdf5RNtupleManager() = default; + ~G4Hdf5RNtupleManager() override = default; private: // Set methods void SetFileManager(std::shared_ptr fileManager); // Methods from the base class - virtual G4int ReadNtupleImpl(const G4String& ntupleName, const G4String& fileName, - const G4String& dirName, G4bool isUserFileName) final; - virtual G4bool GetTNtupleRow(G4TRNtupleDescription* ntupleDescription) final; + G4int ReadNtupleImpl(const G4String& ntupleName, const G4String& fileName, + const G4String& dirName, G4bool isUserFileName) final; + G4bool GetTNtupleRow(G4TRNtupleDescription* ntupleDescription) final; // Static data members static constexpr std::string_view fkClass { "G4Hdf5RNtupleManager" }; @@ -70,7 +71,9 @@ class G4Hdf5RNtupleManager : public G4TRNtupleManager inline void G4Hdf5RNtupleManager::SetFileManager(std::shared_ptr fileManager) -{ fFileManager = fileManager; } +{ + fFileManager = std::move(fileManager); +} #endif diff --git a/source/analysis/hdf5/src/G4Hdf5AnalysisManager.cc b/source/analysis/hdf5/src/G4Hdf5AnalysisManager.cc index d921326413..8bb83ba171 100644 --- a/source/analysis/hdf5/src/G4Hdf5AnalysisManager.cc +++ b/source/analysis/hdf5/src/G4Hdf5AnalysisManager.cc @@ -75,22 +75,20 @@ G4Hdf5AnalysisManager::G4Hdf5AnalysisManager() #endif #endif - if ( ! G4Threading::IsWorkerThread() ) fgMasterInstance = this; - // File manager - fFileManager = std::make_shared(fState); - SetFileManager(fFileManager); + auto fileManager = std::make_shared(fState); + SetFileManager(fileManager); // Ntuple file manager fNtupleFileManager = std::make_shared(fState); - fNtupleFileManager->SetFileManager(fFileManager); + SetNtupleFileManager(fNtupleFileManager); + fNtupleFileManager->SetFileManager(fileManager); fNtupleFileManager->SetBookingManager(fNtupleBookingManager); } //_____________________________________________________________________________ G4Hdf5AnalysisManager::~G4Hdf5AnalysisManager() { - if ( fState.GetIsMaster() ) fgMasterInstance = nullptr; fgIsInstance = false; } @@ -101,79 +99,19 @@ G4Hdf5AnalysisManager::~G4Hdf5AnalysisManager() //_____________________________________________________________________________ G4bool G4Hdf5AnalysisManager::OpenFileImpl(const G4String& fileName) { - // Create ntuple manager(s) - // and set it to base class which takes then their ownership - SetNtupleManager(fNtupleFileManager->CreateNtupleManager()); - - auto result = true; - G4AutoLock lock(&openFileMutex); - result &= fFileManager->OpenFile(fileName); - result &= fNtupleFileManager->ActionAtOpenFile(fFileManager->GetFullFileName()); + auto result = G4ToolsAnalysisManager::OpenFileImpl(fileName); lock.unlock(); return result; } -//_____________________________________________________________________________ -G4bool G4Hdf5AnalysisManager::WriteImpl() -{ - auto result = true; - - Message(kVL4, "write", "files"); - - if ( G4Threading::IsWorkerThread() ) { - result &= G4ToolsAnalysisManager::Merge(); - } - else { - // Open all files registered with objects - fFileManager->OpenFiles(); - - // Write all histograms/profile on master - result &= G4ToolsAnalysisManager::WriteImpl(); - } - - // Write ASCII if activated - if ( IsAscii() ) { - result &= WriteAscii(fFileManager->GetFileName()); - } - - Message(kVL3, "write", "files", "", result); - - return result; -} - //_____________________________________________________________________________ G4bool G4Hdf5AnalysisManager::CloseFileImpl(G4bool reset) { - auto result = true; - G4AutoLock lock(&closeFileMutex); - result &= fFileManager->CloseFiles(); - - if ( reset ) { - // reset data - result = ResetImpl(); - if ( ! result ) { - Warn("Resetting data failed", fkClass, "OpenDirectory"); - } - } - result &= fNtupleFileManager->ActionAtCloseFile(reset); - + auto result = G4ToolsAnalysisManager::CloseFileImpl(reset); lock.unlock(); return result; } - -//_____________________________________________________________________________ -G4bool G4Hdf5AnalysisManager::ResetImpl() -{ - auto result = true; - - result &= G4ToolsAnalysisManager::ResetImpl(); - if ( fNtupleFileManager != nullptr ) { - result &= fNtupleFileManager->Reset(); - } - - return result; -} diff --git a/source/analysis/hdf5/src/G4Hdf5AnalysisManager.cc.newLocking b/source/analysis/hdf5/src/G4Hdf5AnalysisManager.cc.newLocking new file mode 100644 index 0000000000..86499bbb96 --- /dev/null +++ b/source/analysis/hdf5/src/G4Hdf5AnalysisManager.cc.newLocking @@ -0,0 +1,185 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Author: Ivana Hrivnacova, 20/07/2017 (ivana@ipno.in2p3.fr) + +#include "G4Hdf5AnalysisManager.hh" +#include "G4Hdf5FileManager.hh" +#include "G4Hdf5NtupleFileManager.hh" +#include "G4AnalysisManagerState.hh" +#include "G4AnalysisUtilities.hh" +#include "G4ThreadLocalSingleton.hh" +#include "G4Threading.hh" +#include "G4AutoLock.hh" + +using namespace G4Analysis; + +// mutex in a file scope + +namespace { + //Mutex to lock master manager when opening a file + G4Mutex openFileMutex = G4MUTEX_INITIALIZER; + //Mutex to lock master manager when writing sata + G4Mutex writeMutex = G4MUTEX_INITIALIZER; + //Mutex to lock master manager when closing a file + G4Mutex closeFileMutex = G4MUTEX_INITIALIZER; +} + +// G4Hdf5AnalysisManager* G4Hdf5AnalysisManager::fgMasterInstance = nullptr; +// G4ThreadLocal G4bool G4Hdf5AnalysisManager::fgIsInstance = false; + +//_____________________________________________________________________________ +G4Hdf5AnalysisManager* G4Hdf5AnalysisManager::Instance() +{ + static G4ThreadLocalSingleton instance; + fgIsInstance = true; + return instance.Instance(); +} + +//_____________________________________________________________________________ +G4bool G4Hdf5AnalysisManager::IsInstance() +{ + return fgIsInstance; +} + +//_____________________________________________________________________________ +G4Hdf5AnalysisManager::G4Hdf5AnalysisManager() + : G4ToolsAnalysisManager("Hdf5") +{ +// #ifdef G4MULTITHREADED +// #ifndef H5_HAVE_THREADSAFE +// G4Exception("G4Hdf5AnalysisManager::G4Hdf5AnalysisManager", +// "Analysis_F001", FatalException, +// "Your HDF5 lib is not built with H5_HAVE_THREADSAFE."); +// #endif +// #endif + + if ( ! G4Threading::IsWorkerThread() ) fgMasterInstance = this; + + // File manager + fFileManager = std::make_shared(fState); + SetFileManager(fFileManager); + + // Ntuple file manager + fNtupleFileManager = std::make_shared(fState); + fNtupleFileManager->SetFileManager(fFileManager); + fNtupleFileManager->SetBookingManager(fNtupleBookingManager); +} + +//_____________________________________________________________________________ +G4Hdf5AnalysisManager::~G4Hdf5AnalysisManager() +{ + if ( fState.GetIsMaster() ) fgMasterInstance = nullptr; + fgIsInstance = false; +} + +// +// protected methods +// + +//_____________________________________________________________________________ +G4bool G4Hdf5AnalysisManager::OpenFileImpl(const G4String& fileName) +{ + // Create ntuple manager(s) + // and set it to base class which takes then their ownership + SetNtupleManager(fNtupleFileManager->CreateNtupleManager()); + + auto result = true; + + G4AutoLock lock(&openFileMutex); + result &= fFileManager->OpenFile(fileName); + result &= fNtupleFileManager->ActionAtOpenFile(fFileManager->GetFullFileName()); + lock.unlock(); + + return result; +} + +//_____________________________________________________________________________ +G4bool G4Hdf5AnalysisManager::WriteImpl() +{ + auto result = true; + + Message(kVL4, "write", "files"); + + G4AutoLock lock(&writeMutex); + + if ( G4Threading::IsWorkerThread() ) { + result &= G4ToolsAnalysisManager::Merge(); + } + else { + // Open all files registered with objects + fFileManager->OpenFiles(); + + // Write all histograms/profile on master + result &= G4ToolsAnalysisManager::WriteImpl(); + } + + // Write ASCII if activated + if ( IsAscii() ) { + result &= WriteAscii(fFileManager->GetFileName()); + } + + lock.unlock(); + + Message(kVL3, "write", "files", "", result); + + return result; +} + +//_____________________________________________________________________________ +G4bool G4Hdf5AnalysisManager::CloseFileImpl(G4bool reset) +{ + auto result = true; + + G4AutoLock lock(&closeFileMutex); + result &= fFileManager->CloseFiles(); + + if ( reset ) { + // reset data + result = ResetImpl(); + if ( ! result ) { + Warn("Resetting data failed", fkClass, "OpenDirectory"); + } + } + result &= fNtupleFileManager->ActionAtCloseFile(reset); + + lock.unlock(); + + return result; +} + +//_____________________________________________________________________________ +G4bool G4Hdf5AnalysisManager::ResetImpl() +{ + auto result = true; + + result &= G4ToolsAnalysisManager::ResetImpl(); + if ( fNtupleFileManager != nullptr ) { + result &= fNtupleFileManager->Reset(); + } + + return result; +} diff --git a/source/analysis/hdf5/src/G4Hdf5FileManager.cc b/source/analysis/hdf5/src/G4Hdf5FileManager.cc index 689f536931..9dce35180c 100644 --- a/source/analysis/hdf5/src/G4Hdf5FileManager.cc +++ b/source/analysis/hdf5/src/G4Hdf5FileManager.cc @@ -67,7 +67,7 @@ hid_t G4Hdf5FileManager::CreateDirectory(hid_t& file, // Method for both histograms and ntuples directories. // return if no file provided - if ( file < 0 ) return false; + if (file < 0) return kInvalidId; // use default directory name if not provided auto newDirectoryName = directoryName; @@ -110,11 +110,12 @@ hid_t G4Hdf5FileManager::CreateDirectory(hid_t& file, G4String G4Hdf5FileManager::GetNtupleFileName(Hdf5NtupleDescription* ntupleDescription) { // get ntuple file name - auto ntupleFileName = ntupleDescription->fFileName; - if ( ntupleFileName.size() ) { + auto ntupleFileName = ntupleDescription->GetFileName(); + if (ntupleFileName.size() != 0u) { // update filename per object per thread ntupleFileName = GetTnFileName(ntupleFileName, GetFileType()); - } else { + } + else { // get default file name ntupleFileName = GetFullFileName(); } @@ -227,24 +228,22 @@ G4bool G4Hdf5FileManager::CreateNtupleFile( if (! file) { file = CreateTFile(ntupleFileName); } - ntupleDescription->fFile = file; + ntupleDescription->SetFile(file); - return (ntupleDescription->fFile != nullptr); + return (ntupleDescription->GetFile() != nullptr); } //_____________________________________________________________________________ G4bool G4Hdf5FileManager::CloseNtupleFile( Hdf5NtupleDescription* ntupleDescription) { - // Do nothing if there is no file - if ( ntupleDescription->fFile == nullptr ) return true; - - // Ntuple files will be closed with CloseFiles() calls - ntupleDescription->fFile.reset(); - // Notify not empty file auto ntupleFileName = GetNtupleFileName(ntupleDescription); - auto result = SetIsEmpty(ntupleFileName, ! ntupleDescription->fHasFill); + auto result = SetIsEmpty(ntupleFileName, ! ntupleDescription->GetHasFill()); + + // Ntuple files are registered in file manager map. + // they will be closed with CloseFiles() calls + ntupleDescription->GetFile().reset(); return result; } diff --git a/source/analysis/hdf5/src/G4Hdf5NtupleFileManager.cc b/source/analysis/hdf5/src/G4Hdf5NtupleFileManager.cc index c0c0451520..d2c926283e 100644 --- a/source/analysis/hdf5/src/G4Hdf5NtupleFileManager.cc +++ b/source/analysis/hdf5/src/G4Hdf5NtupleFileManager.cc @@ -43,24 +43,6 @@ G4Hdf5NtupleFileManager::G4Hdf5NtupleFileManager(const G4AnalysisManagerState& s : G4VNtupleFileManager(state, "hdf5") {} -// -// private methods -// - -//_____________________________________________________________________________ -G4bool G4Hdf5NtupleFileManager::CloseNtupleFiles() -{ - // Close ntuple files - - auto result = true; - auto ntupleVector = fNtupleManager->GetNtupleDescriptionVector(); - for ( auto ntupleDescription : ntupleVector) { - result &= fFileManager->CloseNtupleFile(ntupleDescription); - } - - return result; -} - // // public methods // @@ -95,19 +77,14 @@ G4bool G4Hdf5NtupleFileManager::ActionAtWrite() } //_____________________________________________________________________________ -G4bool G4Hdf5NtupleFileManager::ActionAtCloseFile(G4bool reset) +G4bool G4Hdf5NtupleFileManager::ActionAtCloseFile() { auto result = true; // Close ntuple files - result &= CloseNtupleFiles(); - - if ( ! reset ) { - // The ntuples must be always reset when closing file) - result = Reset(); - if ( ! result ) { - Warn("Resetting data failed", fkClass, "ActionAtCloseFile"); - } + auto ntupleVector = fNtupleManager->GetNtupleDescriptionVector(); + for ( auto ntupleDescription : ntupleVector) { + result &= fFileManager->CloseNtupleFile(ntupleDescription); } return result; diff --git a/source/analysis/hdf5/src/G4Hdf5NtupleManager.cc b/source/analysis/hdf5/src/G4Hdf5NtupleManager.cc index cceae5f696..2d86d02386 100644 --- a/source/analysis/hdf5/src/G4Hdf5NtupleManager.cc +++ b/source/analysis/hdf5/src/G4Hdf5NtupleManager.cc @@ -52,7 +52,7 @@ void G4Hdf5NtupleManager::CreateTNtuple( // return with or without warning otherwise // Get ntuple file from ntuple description - auto ntupleFile = ntupleDescription->fFile; + auto ntupleFile = ntupleDescription->GetFile(); if (! ntupleFile) { ntupleFile = fFileManager->GetFile(); } @@ -71,13 +71,21 @@ void G4Hdf5NtupleManager::CreateTNtuple( // auto compressionLevel = fState.GetCompressionLevel(); auto compressionLevel = 0; - // create ntuple - ntupleDescription->fNtuple - = new toolx::hdf5::ntuple( - G4cout, directory, ntupleDescription->fNtupleBooking, - compressionLevel, basketSize); + // Update ntuple name if cycle >0 + auto ntupleBooking = ntupleDescription->GetNtupleBooking(); + if (GetCycle() > 0) { + auto newNtupleName = ntupleDescription->GetNtupleBooking().name(); + newNtupleName.append("_v"); + newNtupleName.append(std::to_string(GetCycle())); + ntupleBooking.set_name(newNtupleName); + } - fNtupleVector.push_back(ntupleDescription->fNtuple); + // create ntuple + ntupleDescription->SetNtuple( + new toolx::hdf5::ntuple( + G4cout, directory, ntupleBooking, compressionLevel, basketSize)); + + fNtupleVector.push_back(ntupleDescription->GetNtuple()); } //_____________________________________________________________________________ @@ -85,7 +93,7 @@ void G4Hdf5NtupleManager::CreateTNtupleFromBooking( Hdf5NtupleDescription* ntupleDescription) { // Create file if file name per object is set - if ( ntupleDescription->fFileName.size() ) { + if (ntupleDescription->GetFileName().size() != 0u) { fFileManager->CreateNtupleFile(ntupleDescription); } @@ -98,8 +106,8 @@ void G4Hdf5NtupleManager::FinishTNtuple( Hdf5NtupleDescription* ntupleDescription, G4bool /*fromBooking*/) { - if ( ! ntupleDescription->fNtuple ) { - // Create ntuple from booking if file is open, do nothing otherwise + if (ntupleDescription->GetNtuple() == nullptr) { + // Create ntuple from booking if file is open, do nothing otherwise CreateTNtuple(ntupleDescription, false); } diff --git a/source/analysis/hdf5/src/G4Hdf5RFileManager.cc b/source/analysis/hdf5/src/G4Hdf5RFileManager.cc index 56909765c1..ab3a7a7cc8 100644 --- a/source/analysis/hdf5/src/G4Hdf5RFileManager.cc +++ b/source/analysis/hdf5/src/G4Hdf5RFileManager.cc @@ -90,10 +90,8 @@ hid_t G4Hdf5RFileManager::OpenDirectory(hid_t file, const G4String& directoryNam Warn("Cannot open directory " + directoryName, fkClass, "OpenDirectory"); return kInvalidId; } - else { - Message(kVL2, "open", "read directory", directoryName); - return directory; - } + Message(kVL2, "open", "read directory", directoryName); + return directory; } //_____________________________________________________________________________ @@ -104,7 +102,7 @@ hid_t G4Hdf5RFileManager::GetRDirectory(const G4String& directoryType, { // Get or open a file auto rfile = GetRFile(fileName, isPerThread); - if ( ! rfile ) { + if (rfile == nullptr) { // Try to open it if not found in the map if ( OpenRFile(fileName, isPerThread) < 0 ) return kInvalidId; rfile = GetRFile(fileName, isPerThread); @@ -158,11 +156,10 @@ G4Hdf5File* G4Hdf5RFileManager::GetRFile(const G4String& fileName, G4String name = GetFullFileName(fileName, isPerThread); auto it = fRFiles.find(name); - if ( it != fRFiles.end() ) + if (it != fRFiles.end()) { return &(it->second); - else { - return nullptr; } + return nullptr; } //_____________________________________________________________________________ diff --git a/source/analysis/hntools/include/G4H1ToolsManager.hh b/source/analysis/hntools/include/G4H1ToolsManager.hh deleted file mode 100644 index f5465056ab..0000000000 --- a/source/analysis/hntools/include/G4H1ToolsManager.hh +++ /dev/null @@ -1,179 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Manager class for tools::histo::h1d. -// It implements functions specific to the H1 type -// (defined in g4tools). -// -// Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr) - -#ifndef G4H1ToolsManager_h -#define G4H1ToolsManager_h 1 - -#include "G4VH1Manager.hh" -#include "G4THnManager.hh" -#include "G4HnManager.hh" -#include "globals.hh" - -#include -#include -#include -#include - -namespace tools { -namespace histo { -class h1d; -} -} - -class G4H1ToolsManager : public G4VH1Manager, - public G4THnManager -{ - public: - explicit G4H1ToolsManager(const G4AnalysisManagerState& state); - G4H1ToolsManager() = delete; - virtual ~G4H1ToolsManager() = default; - - // Method to add histograms read from a file - G4int AddH1(const G4String& name, tools::histo::h1d* h1d); - // Method for merge (MT) - void AddH1Vector(const std::vector& h1Vector); - - // Access methods - // - tools::histo::h1d* GetH1(G4int id, G4bool warn = true, - G4bool onlyIfActive = true) const; - - // Iterators - std::vector::iterator BeginH1(); - std::vector::iterator EndH1(); - std::vector::const_iterator BeginConstH1() const; - std::vector::const_iterator EndConstH1() const; - - // Access to histogram vector (needed for Write()) - const std::vector& GetH1Vector() const; - const std::vector& GetHnVector() const; - - protected: - // Virtual functions from base class - // - - // Methods to create histograms - // - virtual G4int CreateH1(const G4String& name, const G4String& title, - G4int nbins, G4double xmin, G4double xmax, - const G4String& unitName = "none", - const G4String& fcnName = "none", - const G4String& binScheme = "linear") final; - virtual G4int CreateH1(const G4String& name, const G4String& title, - const std::vector& edges, - const G4String& unitName = "none", - const G4String& fcnName = "none") final; - - virtual G4bool SetH1(G4int id, - G4int nbins, G4double xmin, G4double xmax, - const G4String& unitName = "none", - const G4String& fcnName = "none", - const G4String& binSchemeName = "linear") final; - virtual G4bool SetH1(G4int id, - const std::vector& edges, - const G4String& unitName = "none", - const G4String& fcnName = "none") final; - virtual G4bool ScaleH1(G4int id, G4double factor) final; - - // Method to fill histograms - // - virtual G4bool FillH1(G4int id, G4double value, G4double weight = 1.0) final; - - // Access methods - // - virtual G4int GetH1Id(const G4String& name, G4bool warn = true) const final; - - // Access to H1 parameters - virtual G4int GetH1Nbins(G4int id) const final; - virtual G4double GetH1Xmin(G4int id) const final; - virtual G4double GetH1Xmax(G4int id) const final; - virtual G4double GetH1Width(G4int id) const final; - - // Attributes for plotting - // - - // Setters - virtual G4bool SetH1Title(G4int id, const G4String& title) final; - virtual G4bool SetH1XAxisTitle(G4int id, const G4String& title) final; - virtual G4bool SetH1YAxisTitle(G4int id, const G4String& title) final; - - // Accessors - virtual G4String GetH1Title(G4int id) const final; - virtual G4String GetH1XAxisTitle(G4int id) const final; - virtual G4String GetH1YAxisTitle(G4int id) const final; - - // Write data on ASCII file - virtual G4bool WriteOnAscii(std::ofstream& output) final; - - // Access to Hn manager - virtual std::shared_ptr GetHnManager() final; - - private: - // Methods - // - void AddH1Information(const G4String& name, - const G4String& unitName, - const G4String& fcnName, - G4BinScheme binScheme) const; - - // Static data members - static constexpr std::string_view fkClass { "G4H1ToolsManager" }; - static constexpr G4int fkDimension = 1; -}; - -// inline methods - -inline std::vector::iterator G4H1ToolsManager::BeginH1() -{ return BeginT(); } - -inline std::vector::iterator G4H1ToolsManager::EndH1() -{ return EndT(); } - -inline std::vector::const_iterator -G4H1ToolsManager::BeginConstH1() const -{ return BeginConstT(); } - -inline std::vector::const_iterator -G4H1ToolsManager::EndConstH1() const -{ return EndConstT(); } - -inline const std::vector& G4H1ToolsManager::GetH1Vector() const -{ return fTVector; } - -inline const std::vector& G4H1ToolsManager::GetHnVector() const -{ return fHnManager->GetHnVector(); } - -inline std::shared_ptr G4H1ToolsManager::GetHnManager() -{ return std::shared_ptr(fHnManager); } - -#endif - diff --git a/source/analysis/hntools/include/G4H2ToolsManager.hh b/source/analysis/hntools/include/G4H2ToolsManager.hh deleted file mode 100644 index 1b46c50ce6..0000000000 --- a/source/analysis/hntools/include/G4H2ToolsManager.hh +++ /dev/null @@ -1,201 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Manager class for tools::histo::h2d. -// It implements functions specific to the H2 type -// (defined in g4tools). -// -// Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr) - -#ifndef G4H2ToolsManager_h -#define G4H2ToolsManager_h 1 - -#include "G4VH2Manager.hh" -#include "G4THnManager.hh" -#include "G4HnManager.hh" -#include "globals.hh" - -#include -#include -#include -#include - -namespace tools { -namespace histo { -class h2d; -} -} - -class G4H2ToolsManager : public G4VH2Manager, - public G4THnManager -{ - public: - explicit G4H2ToolsManager(const G4AnalysisManagerState& state); - virtual ~G4H2ToolsManager() = default; - - // Method to add histograms read from a file - G4int AddH2(const G4String& name, tools::histo::h2d* h2d); - // Method for merge (MT) - void AddH2Vector(const std::vector& h2Vector); - - // Access methods - // - tools::histo::h2d* GetH2(G4int id, G4bool warn = true, - G4bool onlyIfActive = true) const; - // Iterators - std::vector::iterator BeginH2(); - std::vector::iterator EndH2(); - std::vector::const_iterator BeginConstH2() const; - std::vector::const_iterator EndConstH2() const; - - // Access to histogram vector (needed for Write()) - const std::vector& GetH2Vector() const; - const std::vector& GetHnVector() const; - - protected: - // Virtual functions from base class - // - - // Methods to create histograms - // - virtual G4int CreateH2(const G4String& name, const G4String& title, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& xbinScheme = "linear", - const G4String& ybinScheme = "linear") final; - - virtual G4int CreateH2(const G4String& name, const G4String& title, - const std::vector& xedges, - const std::vector& yedges, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none") final; - - virtual G4bool SetH2(G4int id, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& xbinScheme = "linear", - const G4String& ybinScheme = "linear") final; - - virtual G4bool SetH2(G4int id, - const std::vector& xedges, - const std::vector& yedges, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none") final; - - virtual G4bool ScaleH2(G4int id, G4double factor) final; - - // Method to fill histograms - // - virtual G4bool FillH2(G4int id, G4double xvalue, G4double yvalue, - G4double weight = 1.0) final; - - - // Methods to manipulate histograms - // - - // Access methods - virtual G4int GetH2Id(const G4String& name, G4bool warn = true) const final; - - // Access to H2 parameters - virtual G4int GetH2Nxbins(G4int id) const final; - virtual G4double GetH2Xmin(G4int id) const final; - virtual G4double GetH2Xmax(G4int id) const final; - virtual G4double GetH2XWidth(G4int id) const final; - virtual G4int GetH2Nybins(G4int id) const final; - virtual G4double GetH2Ymin(G4int id) const final; - virtual G4double GetH2Ymax(G4int id) const final; - virtual G4double GetH2YWidth(G4int id) const final; - - // Setters for attributes for plotting - virtual G4bool SetH2Title(G4int id, const G4String& title) final; - virtual G4bool SetH2XAxisTitle(G4int id, const G4String& title) final; - virtual G4bool SetH2YAxisTitle(G4int id, const G4String& title) final; - virtual G4bool SetH2ZAxisTitle(G4int id, const G4String& title) final; - - // Access attributes for plotting - virtual G4String GetH2Title(G4int id) const final; - virtual G4String GetH2XAxisTitle(G4int id) const final; - virtual G4String GetH2YAxisTitle(G4int id) const final; - virtual G4String GetH2ZAxisTitle(G4int id) const final; - - // Write data on ASCII file - virtual G4bool WriteOnAscii(std::ofstream& output) final; - - // Access to Hn manager - virtual std::shared_ptr GetHnManager() final; - - private: - void AddH2Information(const G4String& name, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName, - G4BinScheme xbinScheme, - G4BinScheme ybinScheme) const; - - // Static data members - static constexpr std::string_view fkClass { "G4H2ToolsManager" }; - static constexpr G4int fkDimension = 2; -}; -// inline methods - -inline std::vector::iterator G4H2ToolsManager::BeginH2() -{ return BeginT(); } - -inline std::vector::iterator G4H2ToolsManager::EndH2() -{ return EndT(); } - -inline std::vector::const_iterator -G4H2ToolsManager::BeginConstH2() const -{ return BeginConstT(); } - -inline std::vector::const_iterator -G4H2ToolsManager::EndConstH2() const -{ return EndConstT(); } - -inline const std::vector& G4H2ToolsManager::GetH2Vector() const -{ return fTVector; } - -inline const std::vector& G4H2ToolsManager::GetHnVector() const -{ return fHnManager->GetHnVector(); } - -inline std::shared_ptr G4H2ToolsManager::GetHnManager() -{ return std::shared_ptr(fHnManager); } - -#endif - diff --git a/source/analysis/hntools/include/G4H3ToolsManager.hh b/source/analysis/hntools/include/G4H3ToolsManager.hh deleted file mode 100644 index 1bb32fb0c5..0000000000 --- a/source/analysis/hntools/include/G4H3ToolsManager.hh +++ /dev/null @@ -1,224 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Manager class for tools::histo::h3d. -// It implements functions specific to the H3 type -// (defined in g4tools). -// -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#ifndef G4H3ToolsManager_h -#define G4H3ToolsManager_h 1 - -#include "G4VH3Manager.hh" -#include "G4THnManager.hh" -#include "G4HnManager.hh" -#include "G4BinScheme.hh" -#include "globals.hh" - -#include -#include -#include -#include - -namespace tools { -namespace histo { -class h3d; -} -} - -class G4H3ToolsManager : public G4VH3Manager, - public G4THnManager -{ - public: - explicit G4H3ToolsManager(const G4AnalysisManagerState& state); - virtual ~G4H3ToolsManager() = default; - - // Method to add histograms read from a file - G4int AddH3(const G4String& name, tools::histo::h3d* h3d); - // Method for merge (MT) - void AddH3Vector(const std::vector& h3Vector); - - // Access methods - // - tools::histo::h3d* GetH3(G4int id, G4bool warn = true, - G4bool onlyIfActive = true) const; - // Iterators - std::vector::iterator BeginH3(); - std::vector::iterator EndH3(); - std::vector::const_iterator BeginConstH3() const; - std::vector::const_iterator EndConstH3() const; - - // Access to histogram vector (needed for Write()) - const std::vector& GetH3Vector() const; - const std::vector& GetHnVector() const; - - protected: - // Virtual functions from base class - // - - // Methods to create histograms - // - virtual G4int CreateH3(const G4String& name, const G4String& title, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4int nzbins, G4double zmin, G4double zmax, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none", - const G4String& xbinScheme = "linear", - const G4String& ybinScheme = "linear", - const G4String& zbinScheme = "linear") final; - - virtual G4int CreateH3(const G4String& name, const G4String& title, - const std::vector& xedges, - const std::vector& yedges, - const std::vector& zedges, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none") final; - - virtual G4bool SetH3(G4int id, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4int nzbins, G4double zmin, G4double zmax, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none", - const G4String& xbinScheme = "linear", - const G4String& ybinScheme = "linear", - const G4String& zbinScheme = "linear") final; - - virtual G4bool SetH3(G4int id, - const std::vector& xedges, - const std::vector& yedges, - const std::vector& zedges, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none") final; - - virtual G4bool ScaleH3(G4int id, G4double factor) final; - - // Method to fill histograms - // - virtual G4bool FillH3(G4int id, - G4double xvalue, G4double yvalue, G4double zvalue, - G4double weight = 1.0) final; - - - // Methods to manipulate histograms - // - - // Access methods - virtual G4int GetH3Id(const G4String& name, G4bool warn = true) const final; - - // Access to H3 parameters - virtual G4int GetH3Nxbins(G4int id) const final; - virtual G4double GetH3Xmin(G4int id) const final; - virtual G4double GetH3Xmax(G4int id) const final; - virtual G4double GetH3XWidth(G4int id) const final; - virtual G4int GetH3Nybins(G4int id) const final; - virtual G4double GetH3Ymin(G4int id) const final; - virtual G4double GetH3Ymax(G4int id) const final; - virtual G4double GetH3YWidth(G4int id) const final; - virtual G4int GetH3Nzbins(G4int id) const final; - virtual G4double GetH3Zmin(G4int id) const final; - virtual G4double GetH3Zmax(G4int id) const final; - virtual G4double GetH3ZWidth(G4int id) const final; - - // Setters for attributes for plotting - virtual G4bool SetH3Title(G4int id, const G4String& title) final; - virtual G4bool SetH3XAxisTitle(G4int id, const G4String& title) final; - virtual G4bool SetH3YAxisTitle(G4int id, const G4String& title) final; - virtual G4bool SetH3ZAxisTitle(G4int id, const G4String& title) final; - - // Access attributes for plotting - virtual G4String GetH3Title(G4int id) const final; - virtual G4String GetH3XAxisTitle(G4int id) const final; - virtual G4String GetH3YAxisTitle(G4int id) const final; - virtual G4String GetH3ZAxisTitle(G4int id) const final; - - // Write data on ASCII file - virtual G4bool WriteOnAscii(std::ofstream& output) final; - - // Access to Hn manager - virtual std::shared_ptr GetHnManager() final; - - private: - void AddH3Information(const G4String& name, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& zfcnName, - G4BinScheme xbinScheme, - G4BinScheme ybinScheme, - G4BinScheme zbinScheme) const; - - // Static data members - static constexpr std::string_view fkClass { "G4H3ToolsManager" }; - static constexpr G4int fkDimension = 3; -}; -// inline methods - -inline std::vector::iterator G4H3ToolsManager::BeginH3() -{ return BeginT(); } - -inline std::vector::iterator G4H3ToolsManager::EndH3() -{ return EndT(); } - -inline std::vector::const_iterator -G4H3ToolsManager::BeginConstH3() const -{ return BeginConstT(); } - -inline std::vector::const_iterator -G4H3ToolsManager::EndConstH3() const -{ return EndConstT(); } - -inline const std::vector& G4H3ToolsManager::GetH3Vector() const -{ return fTVector; } - -inline const std::vector& G4H3ToolsManager::GetHnVector() const -{ return fHnManager->GetHnVector(); } - -inline std::shared_ptr G4H3ToolsManager::GetHnManager() -{ return std::shared_ptr(fHnManager); } - -#endif - diff --git a/source/analysis/hntools/include/G4MPIToolsManager.hh b/source/analysis/hntools/include/G4MPIToolsManager.hh index bd8986b562..cf5ed09b1f 100644 --- a/source/analysis/hntools/include/G4MPIToolsManager.hh +++ b/source/analysis/hntools/include/G4MPIToolsManager.hh @@ -53,19 +53,22 @@ class G4MPIToolsManager public: // Methods template - G4bool Merge(const std::vector& htVector, - const std::vector& hnVector); + G4bool Merge(const std::vector>& hnVector + +); private: // Methods template G4bool Send(G4int nofActiveT, - const std::vector& htVector, - const std::vector& hnVector); + const std::vector>& hnVector + +); template G4bool Receive(G4int nofActiveT, - const std::vector& htVector, - const std::vector& hnVector); + const std::vector>& hnVector + +); // Static data members static constexpr std::string_view fkClass { "G4MPIToolsManager" }; diff --git a/source/analysis/hntools/include/G4MPIToolsManager.icc b/source/analysis/hntools/include/G4MPIToolsManager.icc index cbdfa28c51..0b411ee6f1 100644 --- a/source/analysis/hntools/include/G4MPIToolsManager.icc +++ b/source/analysis/hntools/include/G4MPIToolsManager.icc @@ -33,9 +33,8 @@ using std::to_string; //_____________________________________________________________________________ template inline -G4bool G4MPIToolsManager::Send(G4int nofActiveT, - const std::vector& htVector, - const std::vector& hnVector) +G4bool G4MPIToolsManager::Send( + G4int nofActiveT, const std::vector>& hnVector) { auto result = true; @@ -44,13 +43,11 @@ G4bool G4MPIToolsManager::Send(G4int nofActiveT, fHmpi->beg_send(nofActiveT); // pack objects - for ( G4int i=0; iGetActivation() ) ) ) continue; // pack histogram for sending // G4cout << "Packed " << i << "th T" << G4endl; - auto ht = htVector[i]; result &= fHmpi->pack(*ht); } @@ -68,9 +65,8 @@ G4bool G4MPIToolsManager::Send(G4int nofActiveT, //_____________________________________________________________________________ template inline -G4bool G4MPIToolsManager::Receive(G4int nofActiveT, - const std::vector& htVector, - const std::vector& hnVector) +G4bool G4MPIToolsManager::Receive( + G4int nofActiveT, const std::vector>& hnVector) { G4int commSize; G4bool result = fHmpi->comm_size(commSize); @@ -109,12 +105,10 @@ G4bool G4MPIToolsManager::Receive(G4int nofActiveT, // merge the objects to destination rank G4int counter = 0; - for ( G4int i=0; iGetActivation() ) ) ) continue; // merge histograms - auto ht = htVector[i]; auto newHt = static_cast(hs[counter++].second); ht->add(*newHt); } @@ -126,21 +120,21 @@ G4bool G4MPIToolsManager::Receive(G4int nofActiveT, //_____________________________________________________________________________ template inline -G4bool G4MPIToolsManager::Merge(const std::vector& htVector, - const std::vector& hnVector) +G4bool G4MPIToolsManager::Merge( + const std::vector>& hnVector) { - if ( ! htVector.size() ) return true; + if ( hnVector.empty() ) return true; // Get number of objects to be sent G4int nofActiveT = 0; if ( fState.GetIsActivation() ) { // only activated histograms will be treated - for ( G4int i=0; iGetActivation(); + for (const auto& htn : hnVector) { + auto activation = htn.second->GetActivation(); if ( activation ) ++nofActiveT; } } else { - nofActiveT = G4int(htVector.size()); + nofActiveT = G4int(hnVector.size()); } if ( ! nofActiveT ) return true; @@ -160,7 +154,7 @@ G4bool G4MPIToolsManager::Merge(const std::vector& htVector, "on rank " + to_string(commRank) + " destination rank: " + to_string(fHmpi->rank())); - result &= Send(nofActiveT, htVector, hnVector); + result &= Send(nofActiveT, hnVector); fState.Message(G4Analysis::kVL1, "mpi send", "Hn|Pn", "on rank " + to_string(commRank) + @@ -171,7 +165,7 @@ G4bool G4MPIToolsManager::Merge(const std::vector& htVector, "on rank " + to_string(commRank) + " destination rank: " + to_string(fHmpi->rank())); - result &= Receive(nofActiveT, htVector, hnVector); + result &= Receive(nofActiveT, hnVector); fState.Message(G4Analysis::kVL1, "mpi wait_histos", "Hn|Pn", "on rank " + to_string(commRank) + diff --git a/source/analysis/hntools/include/G4P1ToolsManager.hh b/source/analysis/hntools/include/G4P1ToolsManager.hh deleted file mode 100644 index 40beaf7b44..0000000000 --- a/source/analysis/hntools/include/G4P1ToolsManager.hh +++ /dev/null @@ -1,197 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Manager class for tools::histo::P1d. -// It implements functions specific to the P1 type -// (defined in g4tools). -// -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#ifndef G4P1ToolsManager_h -#define G4P1ToolsManager_h 1 - -#include "G4VP1Manager.hh" -#include "G4THnManager.hh" -#include "G4HnManager.hh" -#include "G4BinScheme.hh" -#include "globals.hh" - -#include -#include -#include -#include - -namespace tools { -namespace histo { -class p1d; -} -} - -class G4P1ToolsManager : public G4VP1Manager, - public G4THnManager -{ - public: - explicit G4P1ToolsManager(const G4AnalysisManagerState& state); - G4P1ToolsManager() = delete; - virtual ~G4P1ToolsManager() = default; - - // Method to add profiles read from a file - G4int AddP1(const G4String& name, tools::histo::p1d* p1d); - // Method for merge (MT) - void AddP1Vector(const std::vector& p1Vector); - - // Access methods - // - tools::histo::p1d* GetP1(G4int id, G4bool warn = true, - G4bool onlyIfActive = true) const; - - // Iterators - std::vector::iterator BeginP1(); - std::vector::iterator EndP1(); - std::vector::const_iterator BeginConstP1() const; - std::vector::const_iterator EndConstP1() const; - - // Access to profile vector (needed for Write()) - const std::vector& GetP1Vector() const; - const std::vector& GetHnVector() const; - - protected: - // Virtual functions from base class - // - - // Methods to create profiles - // - virtual G4int CreateP1(const G4String& name, const G4String& title, - G4int nbins, G4double xmin, G4double xmax, - G4double ymin = 0, G4double ymax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& xbinScheme = "linear") final; - virtual G4int CreateP1(const G4String& name, const G4String& title, - const std::vector& edges, - G4double ymin = 0, G4double ymax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none") final; - - virtual G4bool SetP1(G4int id, - G4int nbins, G4double xmin, G4double xmax, - G4double ymin = 0, G4double ymax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& xbinScheme = "linear") final; - virtual G4bool SetP1(G4int id, - const std::vector& edges, - G4double ymin = 0, G4double ymax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none") final; - virtual G4bool ScaleP1(G4int id, G4double factor) final; - - // Method to fill profiles - // - virtual G4bool FillP1(G4int id, G4double xvalue, G4double yvalue, - G4double weight = 1.0) final; - - // Access methods - // - virtual G4int GetP1Id(const G4String& name, G4bool warn = true) const final; - - // Access to P1 parameters - virtual G4int GetP1Nbins(G4int id) const final; - virtual G4double GetP1Xmin(G4int id) const final; - virtual G4double GetP1Xmax(G4int id) const final; - virtual G4double GetP1XWidth(G4int id) const final; - virtual G4double GetP1Ymin(G4int id) const final; - virtual G4double GetP1Ymax(G4int id) const final; - - // Attributes for plotting - // - - // Setters - virtual G4bool SetP1Title(G4int id, const G4String& title) final; - virtual G4bool SetP1XAxisTitle(G4int id, const G4String& title) final; - virtual G4bool SetP1YAxisTitle(G4int id, const G4String& title) final; - - // Accessors - virtual G4String GetP1Title(G4int id) const final; - virtual G4String GetP1XAxisTitle(G4int id) const final; - virtual G4String GetP1YAxisTitle(G4int id) const final; - - // Write data on ASCII file - virtual G4bool WriteOnAscii(std::ofstream& output) final; - - // Access to Hn manager - virtual std::shared_ptr GetHnManager() final; - - private: - // Methods - // - void AddP1Information(const G4String& name, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName, - G4BinScheme xbinScheme) const; - - // Static data members - static constexpr std::string_view fkClass { "G4P1ToolsManager" }; - static constexpr G4int fkDimension = 2; -}; - -// inline methods - -inline std::vector::iterator G4P1ToolsManager::BeginP1() -{ return BeginT(); } - -inline std::vector::iterator G4P1ToolsManager::EndP1() -{ return EndT(); } - -inline std::vector::const_iterator -G4P1ToolsManager::BeginConstP1() const -{ return BeginConstT(); } - -inline std::vector::const_iterator -G4P1ToolsManager::EndConstP1() const -{ return EndConstT(); } - -inline const std::vector& G4P1ToolsManager::GetP1Vector() const -{ return fTVector; } - -inline const std::vector& G4P1ToolsManager::GetHnVector() const -{ return fHnManager->GetHnVector(); } - -inline std::shared_ptr G4P1ToolsManager::GetHnManager() -{ return std::shared_ptr(fHnManager); } - -#endif - diff --git a/source/analysis/hntools/include/G4P2ToolsManager.hh b/source/analysis/hntools/include/G4P2ToolsManager.hh deleted file mode 100644 index 24dade5eb0..0000000000 --- a/source/analysis/hntools/include/G4P2ToolsManager.hh +++ /dev/null @@ -1,220 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Manager class for tools::histo::p2d. -// It implements functions specific to the P2 type -// (defined in g4tools). -// -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#ifndef G4P2ToolsManager_h -#define G4P2ToolsManager_h 1 - -#include "G4VP2Manager.hh" -#include "G4THnManager.hh" -#include "G4HnManager.hh" -#include "globals.hh" - -#include -#include -#include -#include - -namespace tools { -namespace histo { -class p2d; -} -} - -class G4P2ToolsManager : public G4VP2Manager, - public G4THnManager -{ - public: - explicit G4P2ToolsManager(const G4AnalysisManagerState& state); - G4P2ToolsManager() = delete; - virtual ~G4P2ToolsManager() = default; - - // Method to add histograms read from a file - G4int AddP2(const G4String& name, tools::histo::p2d* p2d); - // Method for merge (MT) - void AddP2Vector(const std::vector& p2Vector); - - // Access methods - // - tools::histo::p2d* GetP2(G4int id, G4bool warn = true, - G4bool onlyIfActive = true) const; - // Iterators - std::vector::iterator BeginP2(); - std::vector::iterator EndP2(); - std::vector::const_iterator BeginConstP2() const; - std::vector::const_iterator EndConstP2() const; - - // Access to histogram vector (needed for Write()) - const std::vector& GetP2Vector() const; - const std::vector& GetHnVector() const; - - protected: - // Virtual functions from base class - // - - // Methods to create histograms - // - virtual G4int CreateP2(const G4String& name, const G4String& title, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4double zmin = 0, G4double zmax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none", - const G4String& xbinScheme = "linear", - const G4String& ybinScheme = "linear") final; - - virtual G4int CreateP2(const G4String& name, const G4String& title, - const std::vector& xedges, - const std::vector& yedges, - G4double zmin = 0, G4double zmax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none") final; - - virtual G4bool SetP2(G4int id, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4double zmin = 0, G4double zmax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none", - const G4String& xbinScheme = "linear", - const G4String& ybinScheme = "linear") final; - - virtual G4bool SetP2(G4int id, - const std::vector& xedges, - const std::vector& yedges, - G4double zmin = 0, G4double zmax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none") final; - - virtual G4bool ScaleP2(G4int id, G4double factor) final; - - // Method to fill histograms - // - virtual G4bool FillP2(G4int id, - G4double xvalue, G4double yvalue, G4double zvalue, - G4double weight = 1.0) final; - - - // Methods to manipulate histograms - // - - // Access methods - virtual G4int GetP2Id(const G4String& name, G4bool warn = true) const final; - - // Access to P2 parameters - virtual G4int GetP2Nxbins(G4int id) const final; - virtual G4double GetP2Xmin(G4int id) const final; - virtual G4double GetP2Xmax(G4int id) const final; - virtual G4double GetP2XWidth(G4int id) const final; - virtual G4int GetP2Nybins(G4int id) const final; - virtual G4double GetP2Ymin(G4int id) const final; - virtual G4double GetP2Ymax(G4int id) const final; - virtual G4double GetP2YWidth(G4int id) const final; - virtual G4double GetP2Zmin(G4int id) const final; - virtual G4double GetP2Zmax(G4int id) const final; - - // Setters for attributes for plotting - virtual G4bool SetP2Title(G4int id, const G4String& title) final; - virtual G4bool SetP2XAxisTitle(G4int id, const G4String& title) final; - virtual G4bool SetP2YAxisTitle(G4int id, const G4String& title) final; - virtual G4bool SetP2ZAxisTitle(G4int id, const G4String& title) final; - - // Access attributes for plotting - virtual G4String GetP2Title(G4int id) const final; - virtual G4String GetP2XAxisTitle(G4int id) const final; - virtual G4String GetP2YAxisTitle(G4int id) const final; - virtual G4String GetP2ZAxisTitle(G4int id) const final; - - // Write data on ASCII file - virtual G4bool WriteOnAscii(std::ofstream& output) final; - - // Access to Hn manager - virtual std::shared_ptr GetHnManager() final; - - private: - void AddP2Information(const G4String& name, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& zfcnName, - G4BinScheme xbinScheme, - G4BinScheme ybinScheme) const; - - // Static data members - static constexpr std::string_view fkClass { "G4P2ToolsManager" }; - static constexpr G4int fkDimension = 3; -}; - -// inline methods - -inline std::vector::iterator G4P2ToolsManager::BeginP2() -{ return BeginT(); } - -inline std::vector::iterator G4P2ToolsManager::EndP2() -{ return EndT(); } - -inline std::vector::const_iterator -G4P2ToolsManager::BeginConstP2() const -{ return BeginConstT(); } - -inline std::vector::const_iterator -G4P2ToolsManager::EndConstP2() const -{ return EndConstT(); } - -inline const std::vector& G4P2ToolsManager::GetP2Vector() const -{ return fTVector; } - -inline const std::vector& G4P2ToolsManager::GetHnVector() const -{ return fHnManager->GetHnVector(); } - -inline std::shared_ptr G4P2ToolsManager::GetHnManager() -{ return std::shared_ptr(fHnManager); } - -#endif - diff --git a/source/analysis/management/include/G4PlotManager.hh b/source/analysis/hntools/include/G4PlotManager.hh similarity index 92% rename from source/analysis/management/include/G4PlotManager.hh rename to source/analysis/hntools/include/G4PlotManager.hh index b15d04ef5b..a5d3f2c801 100644 --- a/source/analysis/management/include/G4PlotManager.hh +++ b/source/analysis/hntools/include/G4PlotManager.hh @@ -56,8 +56,7 @@ class G4PlotManager // Methods G4bool OpenFile(const G4String& fileName); template - G4bool PlotAndWrite(const std::vector& htVector, - const std::vector& hnVector); + G4bool PlotAndWrite(const std::vector>& hnVector); G4bool CloseFile(); private: @@ -84,10 +83,10 @@ inline G4int G4PlotManager::GetNofPlotsPerPage() const //_____________________________________________________________________________ template -inline G4bool G4PlotManager::PlotAndWrite(const std::vector& htVector, - const std::vector& hnVector) +inline G4bool G4PlotManager::PlotAndWrite( + const std::vector>& hnVector) { - if ( ! htVector.size() ) return true; + if ( ! hnVector.size() ) return true; fViewer->plots().init_sg(); //it will recreate the sg::plotters and then reset the styles on new ones. @@ -97,8 +96,7 @@ inline G4bool G4PlotManager::PlotAndWrite(const std::vector& htVector, auto result = true; auto isWriteNeeded = false; - for ( G4int i=0; iGetPlotting(); G4bool activation = info->GetActivation(); G4String name = info->GetName(); @@ -107,8 +105,6 @@ inline G4bool G4PlotManager::PlotAndWrite(const std::vector& htVector, if ( ( ! plotting ) || ( fState.GetIsActivation() && ( ! activation ) ) ) continue; - HT* ht = htVector[i]; - // plot this object fViewer->plot(*ht); fViewer->set_current_plotter_style(fPlotParameters.GetStyle()); diff --git a/source/analysis/management/include/G4PlotMessenger.hh b/source/analysis/hntools/include/G4PlotMessenger.hh similarity index 73% rename from source/analysis/management/include/G4PlotMessenger.hh rename to source/analysis/hntools/include/G4PlotMessenger.hh index 84a7135a3f..3d4890547e 100644 --- a/source/analysis/management/include/G4PlotMessenger.hh +++ b/source/analysis/hntools/include/G4PlotMessenger.hh @@ -36,30 +36,41 @@ #include "globals.hh" #include +#include class G4PlotParameters; -class G4AnalysisMessengerHelper; class G4UIdirectory; class G4UIcommand; class G4UIcmdWithAString; +class G4UIparameter; class G4PlotMessenger : public G4UImessenger { public: explicit G4PlotMessenger(G4PlotParameters* plotParameters); G4PlotMessenger() = delete; - virtual ~G4PlotMessenger(); + ~G4PlotMessenger() override; // Methods - virtual void SetNewValue(G4UIcommand* command, G4String value) final; + void SetNewValue(G4UIcommand* command, G4String value) final; private: + // Helper functions + template + std::unique_ptr CreateCommand(G4String name, G4String guidance); + void AddIntParameter( + G4UIcommand& command, G4String name, G4String guidance, G4String range = ""); + + // Functions to create commands void SetStyleCmd(); void SetLayoutCmd(); void SetDimensionsCmd(); + // constants + static constexpr std::string_view fkClass { "G4PlotMessenger" }; + + // Data members G4PlotParameters* fPlotParameters { nullptr }; ///< Associated class - std::unique_ptr fHelper; std::unique_ptr fDirectory; std::unique_ptr fSetLayoutCmd; @@ -67,5 +78,19 @@ class G4PlotMessenger : public G4UImessenger std::unique_ptr fSetStyleCmd; }; +//_____________________________________________________________________________ +template +std::unique_ptr G4PlotMessenger::CreateCommand( + G4String name, G4String guidance) +{ + G4String fullName = "/analysis/plot/" + name; + + auto command = std::make_unique(fullName, this); + command->SetGuidance(guidance.c_str()); + command->AvailableForStates(G4State_PreInit, G4State_Idle); + + return command; +} + #endif diff --git a/source/analysis/management/include/G4PlotParameters.hh b/source/analysis/hntools/include/G4PlotParameters.hh similarity index 100% rename from source/analysis/management/include/G4PlotParameters.hh rename to source/analysis/hntools/include/G4PlotParameters.hh diff --git a/source/analysis/hntools/include/G4TH1ToolsManager.hh b/source/analysis/hntools/include/G4TH1ToolsManager.hh new file mode 100644 index 0000000000..7264a374b6 --- /dev/null +++ b/source/analysis/hntools/include/G4TH1ToolsManager.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Common implementation for histograms managers. +// +// Author: Ivana Hrivnacova, 10/08/2022 (ivana@ipno.in2p3.fr) + +#ifndef G4TH1ToolsManager_h +#define G4TH1ToolsManager_h 1 + +#include "G4THnToolsManager.hh" + +//_____________________________________________________________________________ +template <> +tools::histo::h1d* G4THnToolsManager<1, tools::histo::h1d>::CreateToolsHT( + const G4String& title, + const std::array& bins, + const std::array& hnInfo); + +//_____________________________________________________________________________ +template <> +void G4THnToolsManager<1, tools::histo::h1d>::ConfigureToolsHT( + tools::histo::h1d* ht, + const std::array& bins, + const std::array& hnInfo); + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<1, tools::histo::h1d>::FillHT( + tools::histo::h1d* ht, const G4HnInformation& hnInformation, + std::array& value, G4double weight); + + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<1, tools::histo::h1d>::WriteOnAscii( + std::ofstream& output); + +#endif \ No newline at end of file diff --git a/source/analysis/hntools/include/G4TH2ToolsManager.hh b/source/analysis/hntools/include/G4TH2ToolsManager.hh new file mode 100644 index 0000000000..ac8f674460 --- /dev/null +++ b/source/analysis/hntools/include/G4TH2ToolsManager.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Common implementation for histograms managers. +// +// Author: Ivana Hrivnacova, 10/08/2022 (ivana@ipno.in2p3.fr) + +#ifndef G4TH2ToolsManager_h +#define G4TH2ToolsManager_h 1 + +#include "G4THnToolsManager.hh" + +//_____________________________________________________________________________ +template <> +tools::histo::h2d* G4THnToolsManager<2, tools::histo::h2d>::CreateToolsHT( + const G4String& title, + const std::array& bins, + const std::array& hnInfo); + +//_____________________________________________________________________________ +template <> +void G4THnToolsManager<2, tools::histo::h2d>::ConfigureToolsHT( + tools::histo::h2d* ht, + const std::array& bins, + const std::array& hnInfo); + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<2, tools::histo::h2d>::FillHT( + tools::histo::h2d* ht, const G4HnInformation& hnInformation, + std::array& value, G4double weight); + + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<2, tools::histo::h2d>::WriteOnAscii( + std::ofstream& output); + +#endif \ No newline at end of file diff --git a/source/analysis/hntools/include/G4TH3ToolsManager.hh b/source/analysis/hntools/include/G4TH3ToolsManager.hh new file mode 100644 index 0000000000..9d0d1a8277 --- /dev/null +++ b/source/analysis/hntools/include/G4TH3ToolsManager.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Common implementation for histograms managers. +// +// Author: Ivana Hrivnacova, 10/08/2022 (ivana@ipno.in2p3.fr) + +#ifndef G4TH3ToolsManager_h +#define G4TH3ToolsManager_h 1 + +#include "G4THnToolsManager.hh" + +//_____________________________________________________________________________ +template <> +tools::histo::h3d* G4THnToolsManager<3, tools::histo::h3d>::CreateToolsHT( + const G4String& title, + const std::array& bins, + const std::array& hnInfo); + +//_____________________________________________________________________________ +template <> +void G4THnToolsManager<3, tools::histo::h3d>::ConfigureToolsHT( + tools::histo::h3d* ht, + const std::array& bins, + const std::array& hnInfo); + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<3, tools::histo::h3d>::FillHT( + tools::histo::h3d* ht, const G4HnInformation& hnInformation, + std::array& value, G4double weight); + + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<3, tools::histo::h3d>::WriteOnAscii( + std::ofstream& output); + +#endif \ No newline at end of file diff --git a/source/analysis/hntools/include/G4TP1ToolsManager.hh b/source/analysis/hntools/include/G4TP1ToolsManager.hh new file mode 100644 index 0000000000..4b36f13278 --- /dev/null +++ b/source/analysis/hntools/include/G4TP1ToolsManager.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Common implementation for histograms managers. +// +// Author: Ivana Hrivnacova, 10/08/2022 (ivana@ipno.in2p3.fr) + +#ifndef G4TH2ToolsManager_h +#define G4TH2ToolsManager_h 1 + +#include "G4THnToolsManager.hh" + +//_____________________________________________________________________________ +template <> +tools::histo::p1d* G4THnToolsManager<2, tools::histo::p1d>::CreateToolsHT( + const G4String& title, + const std::array& bins, + const std::array& hnInfo); + +//_____________________________________________________________________________ +template <> +void G4THnToolsManager<2, tools::histo::p1d>::ConfigureToolsHT( + tools::histo::p1d* ht, + const std::array& bins, + const std::array& hnInfo); + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<2, tools::histo::p1d>::FillHT( + tools::histo::p1d* ht, const G4HnInformation& hnInformation, + std::array& value, G4double weight); + + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<2, tools::histo::p1d>::WriteOnAscii( + std::ofstream& output); + +#endif \ No newline at end of file diff --git a/environments/g4py/examples/demos/TestEm0/module/PhysicsList.hh b/source/analysis/hntools/include/G4TP2ToolsManager.hh similarity index 56% rename from environments/g4py/examples/demos/TestEm0/module/PhysicsList.hh rename to source/analysis/hntools/include/G4TP2ToolsManager.hh index c801c8e961..272e5ea108 100644 --- a/environments/g4py/examples/demos/TestEm0/module/PhysicsList.hh +++ b/source/analysis/hntools/include/G4TP2ToolsManager.hh @@ -23,54 +23,42 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // + +// Common implementation for histograms managers. // -// -//....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...... +// Author: Ivana Hrivnacova, 10/08/2022 (ivana@ipno.in2p3.fr) -#ifndef PhysicsList_h -#define PhysicsList_h 1 +#ifndef G4TH2ToolsManager_h +#define G4TH2ToolsManager_h 1 -#include "G4VModularPhysicsList.hh" -#include "globals.hh" +#include "G4THnToolsManager.hh" -class PhysicsListMessenger; -class G4VPhysicsConstructor; +//_____________________________________________________________________________ +template <> +tools::histo::p2d* G4THnToolsManager<3, tools::histo::p2d>::CreateToolsHT( + const G4String& title, + const std::array& bins, + const std::array& hnInfo, + std::string_view className); -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//_____________________________________________________________________________ +template <> +void G4THnToolsManager<3, tools::histo::p2d>::ConfigureToolsHT( + tools::histo::p2d* ht, + const std::array& bins, + const std::array& hnInfo, + std::string_view className); -class PhysicsList: public G4VModularPhysicsList -{ - public: - PhysicsList(); - ~PhysicsList(); +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<3, tools::histo::p2d>::FillHT( + tools::histo::p2d* ht, const G4HnInformation& hnInformation, + std::array& value, G4double weight); - void ConstructParticle(); - void ConstructProcess(); - void AddPhysicsList(const G4String& name); - void SetCuts(); - void SetCutForGamma(G4double); - void SetCutForElectron(G4double); - void SetCutForPositron(G4double); - - private: - G4double cutForGamma; - G4double cutForElectron; - G4double cutForPositron; - G4double currentDefaultCut; - - G4VPhysicsConstructor* emPhysicsList; - G4String emName; - - PhysicsListMessenger* pMessenger; -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<3, tools::histo::p2d>::WriteOnAscii( + std::ofstream& output); +#endif \ No newline at end of file diff --git a/source/analysis/hntools/include/G4ToolsAnalysisManager.hh b/source/analysis/hntools/include/G4ToolsAnalysisManager.hh index 0266233372..0ccd5dfb22 100644 --- a/source/analysis/hntools/include/G4ToolsAnalysisManager.hh +++ b/source/analysis/hntools/include/G4ToolsAnalysisManager.hh @@ -32,9 +32,15 @@ #define G4ToolsAnalysisManager_h 1 #include "G4VAnalysisManager.hh" -#include "G4ToolsAnalysisMessenger.hh" +#include "G4TH1ToolsManager.hh" +#include "G4TH2ToolsManager.hh" +#include "G4TH3ToolsManager.hh" +#include "G4TP1ToolsManager.hh" +#include "G4TP2ToolsManager.hh" #include "globals.hh" +#include "G4THnToolsManager.hh" // make forward declaration if possible + #include "tools/histo/h1d" #include "tools/histo/h2d" #include "tools/histo/h3d" @@ -43,11 +49,7 @@ #include -class G4H1ToolsManager; -class G4H2ToolsManager; -class G4H3ToolsManager; -class G4P1ToolsManager; -class G4P2ToolsManager; +class G4PlotManager; namespace tools { namespace histo { @@ -60,9 +62,9 @@ class G4ToolsAnalysisManager : public G4VAnalysisManager friend class G4ToolsAnalysisMessenger; public: - virtual ~G4ToolsAnalysisManager(); + ~G4ToolsAnalysisManager() override; - // Static methods + // Static methods static G4ToolsAnalysisManager* Instance(); static G4bool IsInstance(); @@ -108,14 +110,16 @@ class G4ToolsAnalysisManager : public G4VAnalysisManager explicit G4ToolsAnalysisManager(const G4String& type); // Virtual methods from base class - virtual G4bool PlotImpl() final; - virtual G4bool MergeImpl(tools::histo::hmpi* hmpi) final; - virtual G4bool WriteImpl() override; - virtual G4bool ResetImpl() override; - virtual void ClearImpl() override; + G4bool OpenFileImpl(const G4String& fileName) override; + G4bool WriteImpl() override; + G4bool CloseFileImpl(G4bool reset) override; + G4bool ResetImpl() override; + void ClearImpl() override; + G4bool PlotImpl() final; + G4bool MergeImpl(tools::histo::hmpi* hmpi) final; + G4bool IsOpenFileImpl() const final; // Methods - G4bool Merge(); G4bool IsEmpty(); // Static data members @@ -124,22 +128,25 @@ class G4ToolsAnalysisManager : public G4VAnalysisManager static constexpr std::string_view fkClass { "G4ToolsAnalysisManager" }; // Data members - G4H1ToolsManager* fH1Manager { nullptr }; - G4H2ToolsManager* fH2Manager { nullptr }; - G4H3ToolsManager* fH3Manager { nullptr }; - G4P1ToolsManager* fP1Manager { nullptr }; - G4P2ToolsManager* fP2Manager { nullptr }; + G4THnToolsManager* fH1Manager { nullptr }; + G4THnToolsManager* fH2Manager { nullptr }; + G4THnToolsManager* fH3Manager { nullptr }; + G4THnToolsManager* fP1Manager { nullptr }; + G4THnToolsManager* fP2Manager { nullptr }; private: // // Static data members // Static G4ThreadLocal G4ToolsAnalysisManager* fgToolsInstance; // Methods template - G4bool WriteT(const std::vector& htVector, - const std::vector& hnVector); + G4bool WriteT(const std::vector>& hnVector); + + G4bool WriteHns(); + G4bool ResetHns(); + G4bool MergeHns(); // Data members - std::unique_ptr fMessenger; + std::shared_ptr fPlotManager { nullptr }; }; #include "G4ToolsAnalysisManager.icc" diff --git a/source/analysis/hntools/include/G4ToolsAnalysisManager.icc b/source/analysis/hntools/include/G4ToolsAnalysisManager.icc index 62260a6391..4910d38413 100644 --- a/source/analysis/hntools/include/G4ToolsAnalysisManager.icc +++ b/source/analysis/hntools/include/G4ToolsAnalysisManager.icc @@ -25,29 +25,22 @@ // #include "G4HnInformation.hh" -#include "G4H1ToolsManager.hh" -#include "G4H2ToolsManager.hh" -#include "G4H3ToolsManager.hh" -#include "G4P1ToolsManager.hh" -#include "G4P2ToolsManager.hh" //_____________________________________________________________________________ template inline -G4bool G4ToolsAnalysisManager::WriteT(const std::vector& htVector, - const std::vector& hnVector) +G4bool G4ToolsAnalysisManager::WriteT( + const std::vector>& hnVector) { auto result = true; - for ( G4int i=0; iGetActivation(); + // skip writing if activation is enabled and H1 is inactivated if ( fState.GetIsActivation() && ( ! activation ) ) continue; auto name = info->GetName(); - auto ht = htVector[i]; - auto fileName = info->GetFileName(); auto fileManager = GetFileManager(fileName); @@ -67,10 +60,15 @@ G4bool G4ToolsAnalysisManager::WriteT(const std::vector& htVector, fileName = fileManager->GetFullFileName(); } + // update name with a cycle number + if (! fileManager->HasCycles() && fState.GetCycle() > 0) { + name += "_v" + std::to_string(fState.GetCycle()); + } + Message(G4Analysis::kVL4, "write", G4Analysis::GetHnType(), name + fileKind + fileName); - if ( ! fileManager->GetHnFileManager()->Write(ht, name, fileName) ) { + if ( ! fileManager->template GetHnFileManager()->Write(ht, name, fileName) ) { G4Analysis::Warn( "Writing " + G4Analysis::GetHnType() + " " + name + " to file " + fileName + " failed.", @@ -78,8 +76,10 @@ G4bool G4ToolsAnalysisManager::WriteT(const std::vector& htVector, result = false; } - // notify that file has a written object - fileManager->SetIsEmpty(fileName, false); + if (result) { + // notify that file has a written object + fileManager->SetIsEmpty(fileName, false); + } Message(G4Analysis::kVL3, "write", G4Analysis::GetHnType(), name + " in the " + fileKind + " file " + fileName); @@ -88,12 +88,19 @@ G4bool G4ToolsAnalysisManager::WriteT(const std::vector& htVector, return result; } +//_____________________________________________________________________________ +inline +G4bool G4ToolsAnalysisManager::IsOpenFileImpl() const +{ + return fVFileManager->IsOpenFile(); +} + //_____________________________________________________________________________ inline tools::histo::h1d* G4ToolsAnalysisManager::GetH1(G4int id, G4bool warn, G4bool onlyIfActive) const { - return fH1Manager->GetH1(id, warn, onlyIfActive); + return fH1Manager->GetT(id, warn, onlyIfActive); } //_____________________________________________________________________________ @@ -101,7 +108,7 @@ inline tools::histo::h2d* G4ToolsAnalysisManager::GetH2(G4int id, G4bool warn, G4bool onlyIfActive) const { - return fH2Manager->GetH2(id, warn, onlyIfActive); + return fH2Manager->GetT(id, warn, onlyIfActive); } //_____________________________________________________________________________ @@ -109,7 +116,7 @@ inline tools::histo::h3d* G4ToolsAnalysisManager::GetH3(G4int id, G4bool warn, G4bool onlyIfActive) const { - return fH3Manager->GetH3(id, warn, onlyIfActive); + return fH3Manager->GetT(id, warn, onlyIfActive); } //_____________________________________________________________________________ @@ -117,7 +124,7 @@ inline tools::histo::p1d* G4ToolsAnalysisManager::GetP1(G4int id, G4bool warn, G4bool onlyIfActive) const { - return fP1Manager->GetP1(id, warn, onlyIfActive); + return fP1Manager->GetT(id, warn, onlyIfActive); } //_____________________________________________________________________________ @@ -125,21 +132,21 @@ inline tools::histo::p2d* G4ToolsAnalysisManager::GetP2(G4int id, G4bool warn, G4bool onlyIfActive) const { - return fP2Manager->GetP2(id, warn, onlyIfActive); + return fP2Manager->GetT(id, warn, onlyIfActive); } //_____________________________________________________________________________ inline std::vector::iterator G4ToolsAnalysisManager::BeginH1() { - return fH1Manager->BeginH1(); + return fH1Manager->BeginT(); } //_____________________________________________________________________________ inline std::vector::iterator G4ToolsAnalysisManager::EndH1() { - return fH1Manager->EndH1(); + return fH1Manager->EndT(); } //_____________________________________________________________________________ @@ -147,7 +154,7 @@ inline std::vector::const_iterator G4ToolsAnalysisManager::BeginConstH1() const { - return fH1Manager->BeginConstH1(); + return fH1Manager->BeginConstT(); } //_____________________________________________________________________________ @@ -155,21 +162,21 @@ inline std::vector::const_iterator G4ToolsAnalysisManager::EndConstH1() const { - return fH1Manager->EndConstH1(); + return fH1Manager->EndConstT(); } //_____________________________________________________________________________ inline std::vector::iterator G4ToolsAnalysisManager::BeginH2() { - return fH2Manager->BeginH2(); + return fH2Manager->BeginT(); } //_____________________________________________________________________________ inline std::vector::iterator G4ToolsAnalysisManager::EndH2() { - return fH2Manager->EndH2(); + return fH2Manager->EndT(); } //_____________________________________________________________________________ @@ -177,7 +184,7 @@ inline std::vector::const_iterator G4ToolsAnalysisManager::BeginConstH2() const { - return fH2Manager->BeginConstH2(); + return fH2Manager->BeginConstT(); } //_____________________________________________________________________________ @@ -185,21 +192,21 @@ inline std::vector::const_iterator G4ToolsAnalysisManager::EndConstH2() const { - return fH2Manager->EndConstH2(); + return fH2Manager->EndConstT(); } //_____________________________________________________________________________ inline std::vector::iterator G4ToolsAnalysisManager::BeginH3() { - return fH3Manager->BeginH3(); + return fH3Manager->BeginT(); } //_____________________________________________________________________________ inline std::vector::iterator G4ToolsAnalysisManager::EndH3() { - return fH3Manager->EndH3(); + return fH3Manager->EndT(); } //_____________________________________________________________________________ @@ -207,7 +214,7 @@ inline std::vector::const_iterator G4ToolsAnalysisManager::BeginConstH3() const { - return fH3Manager->BeginConstH3(); + return fH3Manager->BeginConstT(); } //_____________________________________________________________________________ @@ -215,21 +222,21 @@ inline std::vector::const_iterator G4ToolsAnalysisManager::EndConstH3() const { - return fH3Manager->EndConstH3(); + return fH3Manager->EndConstT(); } //_____________________________________________________________________________ inline std::vector::iterator G4ToolsAnalysisManager::BeginP1() { - return fP1Manager->BeginP1(); + return fP1Manager->BeginT(); } //_____________________________________________________________________________ inline std::vector::iterator G4ToolsAnalysisManager::EndP1() { - return fP1Manager->EndP1(); + return fP1Manager->EndT(); } //_____________________________________________________________________________ @@ -237,7 +244,7 @@ inline std::vector::const_iterator G4ToolsAnalysisManager::BeginConstP1() const { - return fP1Manager->BeginConstP1(); + return fP1Manager->BeginConstT(); } //_____________________________________________________________________________ @@ -245,21 +252,21 @@ inline std::vector::const_iterator G4ToolsAnalysisManager::EndConstP1() const { - return fP1Manager->EndConstP1(); + return fP1Manager->EndConstT(); } //_____________________________________________________________________________ inline std::vector::iterator G4ToolsAnalysisManager::BeginP2() { - return fP2Manager->BeginP2(); + return fP2Manager->BeginT(); } //_____________________________________________________________________________ inline std::vector::iterator G4ToolsAnalysisManager::EndP2() { - return fP2Manager->EndP2(); + return fP2Manager->EndT(); } //_____________________________________________________________________________ @@ -267,7 +274,7 @@ inline std::vector::const_iterator G4ToolsAnalysisManager::BeginConstP2() const { - return fP2Manager->BeginConstP2(); + return fP2Manager->BeginConstT(); } //_____________________________________________________________________________ @@ -275,6 +282,5 @@ inline std::vector::const_iterator G4ToolsAnalysisManager::EndConstP2() const { - return fP2Manager->EndConstP2(); + return fP2Manager->EndConstT(); } - diff --git a/source/analysis/hntools/include/G4ToolsAnalysisMessenger.hh b/source/analysis/hntools/include/G4ToolsAnalysisMessenger.hh deleted file mode 100644 index e3a926e76b..0000000000 --- a/source/analysis/hntools/include/G4ToolsAnalysisMessenger.hh +++ /dev/null @@ -1,118 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// The messenger class for tools objects getters. -// -// Author: Ivana Hrivnacova, 29/10/2021 (ivana@ipno.in2p3.fr) - -#ifndef G4ToolsAnalysisMessenger_h -#define G4ToolsAnalysisMessenger_h 1 - -#include "G4UImessenger.hh" -#include "G4THnManager.hh" -#include "globals.hh" - -#include - -class G4ToolsAnalysisManager; -class G4UIcommand; - -class G4ToolsAnalysisMessenger : public G4UImessenger -{ - public: - explicit G4ToolsAnalysisMessenger(G4ToolsAnalysisManager* manager); - virtual ~G4ToolsAnalysisMessenger(); - - // Methods - G4String GetCurrentValue (G4UIcommand* command); - virtual void SetNewValue(G4UIcommand* command, G4String value) final; - - private: - // Methods - template - G4String GetHnAddress(G4int id, G4THnManager* htManager) const; - template - G4String GetHnVectorAddress(G4THnManager* htManager) const; - - // Data members - G4ToolsAnalysisManager* fManager; ///< Associated class - - // analysis/hn|pn/get command - std::unique_ptr fGetH1Cmd; - std::unique_ptr fGetH2Cmd; - std::unique_ptr fGetH3Cmd; - std::unique_ptr fGetP1Cmd; - std::unique_ptr fGetP2Cmd; - G4String fH1Value; - G4String fH2Value; - G4String fH3Value; - G4String fP1Value; - G4String fP2Value; - - // analysis/hn|pn/getVector command - std::unique_ptr fGetH1VectorCmd; - std::unique_ptr fGetH2VectorCmd; - std::unique_ptr fGetH3VectorCmd; - std::unique_ptr fGetP1VectorCmd; - std::unique_ptr fGetP2VectorCmd; - G4String fH1VectorValue; - G4String fH2VectorValue; - G4String fH3VectorValue; - G4String fP1VectorValue; - G4String fP2VectorValue; -}; - -// inline functions - -template -inline -G4String G4ToolsAnalysisMessenger::GetHnAddress( - G4int id, G4THnManager* htManager) const -{ - auto ht = htManager->GetT(id); - if ( ht != nullptr ) { - std::ostringstream os; - os << static_cast(ht); - return os.str(); - } - return G4String(); -} - -template -inline -G4String G4ToolsAnalysisMessenger::GetHnVectorAddress( - G4THnManager* htManager) const -{ - auto htVector = htManager->GetTVector(); - if ( htVector != nullptr ) { - std::ostringstream os; - os << static_cast(htVector); - return os.str(); - } - return G4String(); -} - -#endif diff --git a/source/analysis/hntools/include/G4ToolsAnalysisReader.hh b/source/analysis/hntools/include/G4ToolsAnalysisReader.hh index 3036fcb305..18b7e8517c 100644 --- a/source/analysis/hntools/include/G4ToolsAnalysisReader.hh +++ b/source/analysis/hntools/include/G4ToolsAnalysisReader.hh @@ -35,16 +35,14 @@ #include "G4THnManager.hh" #include "globals.hh" +#include "G4THnToolsManager.hh" // TO DO: make forward declaration if possible + #include "tools/histo/h1d" #include "tools/histo/h2d" #include "tools/histo/h3d" #include "tools/histo/p1d" #include "tools/histo/p2d" -class G4H1ToolsManager; -class G4H2ToolsManager; -class G4H3ToolsManager; -class G4P1ToolsManager; class G4P2ToolsManager; namespace tools { @@ -56,7 +54,7 @@ class hmpi; class G4ToolsAnalysisReader : public G4VAnalysisReader { public: - virtual ~G4ToolsAnalysisReader() = default; + ~G4ToolsAnalysisReader() override = default; // Access methods tools::histo::h1d* GetH1(G4int id, G4bool warn = true) const; @@ -69,16 +67,16 @@ class G4ToolsAnalysisReader : public G4VAnalysisReader explicit G4ToolsAnalysisReader(const G4String& type); // Virtual methods from base class - virtual G4int ReadH1Impl(const G4String& h1Name, const G4String& fileName, - const G4String& dirName, G4bool isUserFileName) final; - virtual G4int ReadH2Impl(const G4String& h2Name, const G4String& fileName, - const G4String& dirName, G4bool isUserFileName) final; - virtual G4int ReadH3Impl(const G4String& h3Name, const G4String& fileName, - const G4String& dirName, G4bool isUserFileName) final; - virtual G4int ReadP1Impl(const G4String& p1Name, const G4String& fileName, - const G4String& dirName, G4bool isUserFileName) final; - virtual G4int ReadP2Impl(const G4String& p2Name, const G4String& fileName, - const G4String& dirName, G4bool isUserFileName) final; + G4int ReadH1Impl(const G4String& h1Name, const G4String& fileName, const G4String& dirName, + G4bool isUserFileName) final; + G4int ReadH2Impl(const G4String& h2Name, const G4String& fileName, const G4String& dirName, + G4bool isUserFileName) final; + G4int ReadH3Impl(const G4String& h3Name, const G4String& fileName, const G4String& dirName, + G4bool isUserFileName) final; + G4int ReadP1Impl(const G4String& p1Name, const G4String& fileName, const G4String& dirName, + G4bool isUserFileName) final; + G4int ReadP2Impl(const G4String& p2Name, const G4String& fileName, const G4String& dirName, + G4bool isUserFileName) final; // Fuction specific to output type template @@ -93,14 +91,13 @@ class G4ToolsAnalysisReader : public G4VAnalysisReader static constexpr std::string_view fkClass { "G4ToolsAnalysisReader" }; // Data members - G4H1ToolsManager* fH1Manager { nullptr }; - G4H2ToolsManager* fH2Manager { nullptr }; - G4H3ToolsManager* fH3Manager { nullptr }; - G4P1ToolsManager* fP1Manager { nullptr }; - G4P2ToolsManager* fP2Manager { nullptr }; + G4THnToolsManager<1, tools::histo::h1d>* fH1Manager { nullptr }; + G4THnToolsManager<2, tools::histo::h2d>* fH2Manager { nullptr }; + G4THnToolsManager<3, tools::histo::h3d>* fH3Manager { nullptr }; + G4THnToolsManager<2, tools::histo::p1d>* fP1Manager { nullptr }; + G4THnToolsManager<3, tools::histo::p2d>* fP2Manager { nullptr }; }; #include "G4ToolsAnalysisReader.icc" #endif - diff --git a/source/analysis/hntools/include/G4ToolsAnalysisReader.icc b/source/analysis/hntools/include/G4ToolsAnalysisReader.icc index d383673296..45f95ebfb1 100644 --- a/source/analysis/hntools/include/G4ToolsAnalysisReader.icc +++ b/source/analysis/hntools/include/G4ToolsAnalysisReader.icc @@ -24,11 +24,6 @@ // ******************************************************************** // -#include "G4H1ToolsManager.hh" -#include "G4H2ToolsManager.hh" -#include "G4H3ToolsManager.hh" -#include "G4P1ToolsManager.hh" -#include "G4P2ToolsManager.hh" #include "G4AnalysisUtilities.hh" //_____________________________________________________________________________ @@ -53,7 +48,7 @@ G4int G4ToolsAnalysisReader::ReadTImpl( return G4Analysis::kInvalidId; } - auto id = htManager->RegisterT(static_cast(ht), htName); + auto id = htManager->RegisterT(htName, static_cast(ht)); Message(G4Analysis::kVL2, "read", G4Analysis::GetHnType(), htName, id > G4Analysis::kInvalidId); @@ -66,33 +61,33 @@ G4int G4ToolsAnalysisReader::ReadTImpl( inline tools::histo::h1d* G4ToolsAnalysisReader::GetH1(G4int id, G4bool warn) const { - return fH1Manager->GetH1(id, warn, false); + return fH1Manager->GetT(id, warn, false); } //_____________________________________________________________________________ inline tools::histo::h2d* G4ToolsAnalysisReader::GetH2(G4int id, G4bool warn) const { - return fH2Manager->GetH2(id, warn, false); + return fH2Manager->GetT(id, warn, false); } //_____________________________________________________________________________ inline tools::histo::h3d* G4ToolsAnalysisReader::GetH3(G4int id, G4bool warn) const { - return fH3Manager->GetH3(id, warn, false); + return fH3Manager->GetT(id, warn, false); } //_____________________________________________________________________________ inline tools::histo::p1d* G4ToolsAnalysisReader::GetP1(G4int id, G4bool warn) const { - return fP1Manager->GetP1(id, warn, false); + return fP1Manager->GetT(id, warn, false); } //_____________________________________________________________________________ inline tools::histo::p2d* G4ToolsAnalysisReader::GetP2(G4int id, G4bool warn) const { - return fP2Manager->GetP2(id, warn, false); + return fP2Manager->GetT(id, warn, false); } diff --git a/source/analysis/hntools/sources.cmake b/source/analysis/hntools/sources.cmake index 8cf84fa979..bc7c01ed07 100644 --- a/source/analysis/hntools/sources.cmake +++ b/source/analysis/hntools/sources.cmake @@ -3,29 +3,31 @@ # Define the Geant4 Module. geant4_add_module(G4hntools PUBLIC_HEADERS - G4BaseHistoUtilities.hh G4MPIToolsManager.hh G4MPIToolsManager.icc - G4H1ToolsManager.hh - G4H2ToolsManager.hh - G4H3ToolsManager.hh - G4P1ToolsManager.hh - G4P2ToolsManager.hh + G4PlotManager.hh + G4PlotMessenger.hh + G4PlotParameters.hh + G4TH1ToolsManager.hh + G4TH2ToolsManager.hh + G4TH3ToolsManager.hh + G4TP1ToolsManager.hh + G4TP2ToolsManager.hh G4ToolsAnalysisManager.hh G4ToolsAnalysisManager.icc - G4ToolsAnalysisMessenger.hh G4ToolsAnalysisReader.hh G4ToolsAnalysisReader.icc g4hntools_defs.hh SOURCES - G4BaseHistoUtilities.cc - G4H1ToolsManager.cc - G4H2ToolsManager.cc - G4H3ToolsManager.cc - G4P1ToolsManager.cc - G4P2ToolsManager.cc + G4PlotManager.cc + G4PlotMessenger.cc + G4PlotParameters.cc + G4TH1ToolsManager.cc + G4TH2ToolsManager.cc + G4TH3ToolsManager.cc + G4TP1ToolsManager.cc + G4TP2ToolsManager.cc G4ToolsAnalysisManager.cc - G4ToolsAnalysisMessenger.cc G4ToolsAnalysisReader.cc) -geant4_module_link_libraries(G4hntools PUBLIC G4analysismng G4globman G4tools) +geant4_module_link_libraries(G4hntools PUBLIC G4analysismng G4globman G4intercoms G4tools) diff --git a/source/analysis/hntools/src/G4BaseHistoUtilities.cc b/source/analysis/hntools/src/G4BaseHistoUtilities.cc deleted file mode 100644 index 43a9a9ebfa..0000000000 --- a/source/analysis/hntools/src/G4BaseHistoUtilities.cc +++ /dev/null @@ -1,131 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#include "G4BaseHistoUtilities.hh" -#include "G4AnalysisUtilities.hh" - -#include "tools/histo/axis" - -using std::to_string; - -namespace G4Analysis -{ - -//_____________________________________________________________________________ -G4int GetNbins(const G4ToolsBaseHisto& baseHisto, G4int dimension) -{ - return baseHisto.get_axis(dimension).bins(); -} - -//_____________________________________________________________________________ -G4double GetMin(const G4ToolsBaseHisto& baseHisto, G4int dimension) -{ -// Returns min data value - - return baseHisto.get_axis(dimension).lower_edge(); -} - -//_____________________________________________________________________________ -G4double GetMax(const G4ToolsBaseHisto& baseHisto, G4int dimension) -{ -// Returns max data value - - return baseHisto.get_axis(dimension).upper_edge(); -} - -//_____________________________________________________________________________ -G4double GetWidth(const G4ToolsBaseHisto& baseHisto, G4int dimension, - const G4String& hnType) -{ - auto nbins = baseHisto.get_axis(dimension).bins(); - if ( ! nbins ) { - Warn("nbins = 0 ! for " + hnType, kNamespaceName, "GetWidth"); - return 0.; - } - - return ( baseHisto.get_axis(dimension).upper_edge() - - baseHisto.get_axis(dimension).lower_edge() )/nbins; -} - -//_____________________________________________________________________________ -G4bool SetTitle(G4ToolsBaseHisto& baseHisto, const G4String& title) -{ - return baseHisto.set_title(title); -} - -//_____________________________________________________________________________ -G4bool SetAxisTitle(G4ToolsBaseHisto& baseHisto, G4int dimension, - const G4String& title) -{ - if ( dimension == kX ) { - baseHisto.add_annotation(tools::histo::key_axis_x_title(), title); - } - else if ( dimension == kY ) { - baseHisto.add_annotation(tools::histo::key_axis_y_title(), title); - } - else if ( dimension == kZ ) { - baseHisto.add_annotation(tools::histo::key_axis_z_title(), title); - } - - return true; -} - -//_____________________________________________________________________________ -G4String GetTitle(const G4ToolsBaseHisto& baseHisto) -{ - return baseHisto.title(); -} - - -//_____________________________________________________________________________ -G4String GetAxisTitle(const G4ToolsBaseHisto& baseHisto, G4int dimension, - const G4String& hnType) -{ - G4String title; - G4bool result = false; - if ( dimension == kX ) { - result = baseHisto.annotation(tools::histo::key_axis_x_title(), title); - } - else if ( dimension == kY ) { - result = baseHisto.annotation(tools::histo::key_axis_y_title(), title); - } - else if ( dimension == kZ ) { - result = baseHisto.annotation(tools::histo::key_axis_z_title(), title); - } - - if ( ! result ) { - Warn("Got wrong dimension " + to_string(dimension) + " for " + hnType, - kNamespaceName, "GetAxisTitle"); - - return ""; - } - - return title; -} - -} diff --git a/source/analysis/hntools/src/G4H1ToolsManager.cc b/source/analysis/hntools/src/G4H1ToolsManager.cc deleted file mode 100644 index 529ccf2888..0000000000 --- a/source/analysis/hntools/src/G4H1ToolsManager.cc +++ /dev/null @@ -1,502 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr) - -#include "G4H1ToolsManager.hh" -#include "G4AnalysisManagerState.hh" -#include "G4BaseHistoUtilities.hh" -#include "G4AnalysisUtilities.hh" - -#include "tools/histo/h1d" - -#include - -using namespace G4Analysis; -using std::to_string; - -// -// Constructors, destructor -// - -//_____________________________________________________________________________ -G4H1ToolsManager::G4H1ToolsManager(const G4AnalysisManagerState& state) - : G4VH1Manager(), - G4THnManager(state, "H1") -{} - -// -// Utility functions -// - - -namespace { - -//_____________________________________________________________________________ -void UpdateH1Information(G4HnInformation* hnInformation, - const G4String& unitName, - const G4String& fcnName, - G4BinScheme binScheme) -{ - hnInformation->SetDimension(kX, unitName, fcnName, binScheme); -} - -//_____________________________________________________________________________ -void AddH1Annotation(tools::histo::h1d* h1d, - const G4String& unitName, - const G4String& fcnName) -{ - G4String axisTitle; - UpdateTitle(axisTitle, unitName, fcnName); - h1d->add_annotation(tools::histo::key_axis_x_title(), axisTitle); -} - -//_____________________________________________________________________________ -tools::histo::h1d* CreateToolsH1(const G4String& title, - G4int nbins, G4double xmin, G4double xmax, - const G4String& unitName, - const G4String& fcnName, - const G4String& binSchemeName, - std::string_view className) -{ - auto unit = GetUnitValue(unitName); - auto fcn = GetFunction(fcnName); - auto binScheme = GetBinScheme(binSchemeName); - - if ( binScheme != G4BinScheme::kLog ) { - if ( binScheme == G4BinScheme::kUser ) { - // This should never happen, but let's make sure about it - // by issuing a warning - Warn("User binning scheme setting was ignored.\n" - "Linear binning will be applied with given (nbins, xmin, xmax) values.", - className, "CreateToolsH1"); - } - return new tools::histo::h1d(title, nbins, fcn(xmin/unit), fcn(xmax/unit)); - } - else { - // Compute edges - std::vector edges; - ComputeEdges(nbins, xmin, xmax, unit, fcn, binScheme, edges); - return new tools::histo::h1d(title, edges); - } -} - -//_____________________________________________________________________________ -tools::histo::h1d* CreateToolsH1(const G4String& title, - const std::vector& edges, - const G4String& unitName, - const G4String& fcnName) -{ - auto unit = GetUnitValue(unitName); - auto fcn = GetFunction(fcnName); - - // Apply function - std::vector newEdges; - ComputeEdges(edges, unit, fcn, newEdges); - - return new tools::histo::h1d(title, newEdges); -} - -//_____________________________________________________________________________ -void ConfigureToolsH1(tools::histo::h1d* h1d, - G4int nbins, G4double xmin, G4double xmax, - const G4String& unitName, - const G4String& fcnName, - const G4String& binSchemeName, - std::string_view className) -{ - auto unit = GetUnitValue(unitName); - auto fcn = GetFunction(fcnName); - auto binScheme = GetBinScheme(binSchemeName); - - if ( binScheme != G4BinScheme::kLog ) { - if ( binScheme == G4BinScheme::kUser ) { - // This should never happen, but let's make sure about it - // by issuing a warning - Warn("User binning scheme setting was ignored.\n" - "Linear binning will be applied with given (nbins, xmin, xmax) values.", - className, "ConfigureToolsH1"); - - } - h1d->configure(nbins, fcn(xmin/unit), fcn(xmax/unit)); - } - else { - // Compute bins - std::vector edges; - ComputeEdges(nbins, xmin, xmax, unit, fcn, binScheme, edges); - h1d->configure(edges); - } -} - -//_____________________________________________________________________________ -void ConfigureToolsH1(tools::histo::h1d* h1d, - const std::vector& edges, - const G4String& unitName, - const G4String& fcnName) -{ - // Apply function to edges - auto unit = GetUnitValue(unitName); - auto fcn = GetFunction(fcnName); - std::vector newEdges; - ComputeEdges(edges, unit, fcn, newEdges); - - h1d->configure(newEdges); -} - -} - -// -// private methods -// - -//_____________________________________________________________________________ -void G4H1ToolsManager::AddH1Information(const G4String& name, - const G4String& unitName, - const G4String& fcnName, - G4BinScheme binScheme) const -{ - auto hnInformation = fHnManager->AddHnInformation(name, fkDimension); - hnInformation->AddDimension(unitName, fcnName, binScheme); -} - -// -// protected methods -// - -//_____________________________________________________________________________ -G4int G4H1ToolsManager::CreateH1(const G4String& name, const G4String& title, - G4int nbins, G4double xmin, G4double xmax, - const G4String& unitName, const G4String& fcnName, - const G4String& binSchemeName) -{ - Message(kVL4, "create", "H1", name); - - // Create H1 - auto h1d - = CreateToolsH1(title, nbins, xmin, xmax, unitName, fcnName, binSchemeName, - fkClass); - - // Add annotation - AddH1Annotation(h1d, unitName, fcnName); - - // Save H1 information - auto binScheme = GetBinScheme(binSchemeName); - AddH1Information(name, unitName, fcnName, binScheme); - - // Register histogram - auto id = RegisterT(h1d, name); - - Message(kVL2, "create", "H1", name); - - return id; -} - -//_____________________________________________________________________________ -G4int G4H1ToolsManager::CreateH1(const G4String& name, const G4String& title, - const std::vector& edges, - const G4String& unitName, const G4String& fcnName) -{ - Message(kVL4, "create", "H1", name); - - auto h1d - = CreateToolsH1(title, edges, unitName, fcnName); - - // Add annotation - AddH1Annotation(h1d, unitName, fcnName); - - // Save H1 information - AddH1Information(name, unitName, fcnName, G4BinScheme::kUser); - - // Register histogram - auto id = RegisterT(h1d, name); - - Message(kVL2, "create", "H1", name); - - return id; -} - -//_____________________________________________________________________________ -G4bool G4H1ToolsManager::SetH1(G4int id, - G4int nbins, G4double xmin, G4double xmax, - const G4String& unitName, const G4String& fcnName, - const G4String& binSchemeName) -{ - auto h1d = GetTInFunction(id, "SetH1", false, false); - if ( ! h1d ) return false; - - auto info = fHnManager->GetHnInformation(id,"SetH1"); - - Message(kVL4, "configure", "H1", info->GetName()); - - // Configure tools h1 - ConfigureToolsH1(h1d, nbins, xmin, xmax, unitName, fcnName, binSchemeName, - fkClass); - - // Add annotation - AddH1Annotation(h1d, unitName, fcnName); - - // Update information - auto binScheme = GetBinScheme(binSchemeName); - UpdateH1Information(info, unitName, fcnName, binScheme); - - // Set activation - fHnManager->SetActivation(id, true); - - return true; -} - -//_____________________________________________________________________________ -G4bool G4H1ToolsManager::SetH1(G4int id, - const std::vector& edges, - const G4String& unitName, - const G4String& fcnName) -{ - auto h1d = GetTInFunction(id, "SetH1", false, false); - if ( ! h1d ) return false; - - auto info = fHnManager->GetHnInformation(id,"SetH1"); - - Message(kVL4, "configure", "H1", info->GetName()); - - // Configure tools h1 - ConfigureToolsH1(h1d, edges, unitName, fcnName); - - // Add annotation - AddH1Annotation(h1d, unitName, fcnName); - - // Update information - UpdateH1Information(info, unitName, fcnName, G4BinScheme::kUser); - - // Set activation - fHnManager->SetActivation(id, true); - - return true; -} - - -//_____________________________________________________________________________ -G4bool G4H1ToolsManager::ScaleH1(G4int id, G4double factor) -{ - auto h1d = GetTInFunction(id, "ScaleH1", false, false); - if ( ! h1d ) return false; - - return h1d->scale(factor); -} - -//_____________________________________________________________________________ -G4bool G4H1ToolsManager::FillH1(G4int id, G4double value, G4double weight) -{ - auto h1d = GetTInFunction(id, "FillH1", true, false); - if ( ! h1d ) return false; - - if ( fState.GetIsActivation() && ( ! fHnManager->GetActivation(id) ) ) { - //G4cout << "Skipping FillH1 for " << id << G4endl; - return false; - } - - auto info - = fHnManager->GetHnDimensionInformation(id, kX, "FillH1"); - h1d->fill(info->fFcn(value/info->fUnit), weight); - - if ( IsVerbose(kVL4) ) { - Message(kVL4, "fill", "H1", - " id " + to_string(id) + " value " + to_string(value) + - " fcn(value/unit) " + to_string(info->fFcn(value/info->fUnit)) + - " weight " + to_string(weight)); - } - - return true; -} - -//_____________________________________________________________________________ -G4int G4H1ToolsManager::GetH1Id(const G4String& name, G4bool warn) const -{ - return GetTId(name, warn); -} - -//_____________________________________________________________________________ -G4int G4H1ToolsManager::GetH1Nbins(G4int id) const -{ - auto h1d = GetTInFunction(id, "GetH1Nbins"); - if ( ! h1d ) return 0; - - return GetNbins(*h1d, kX); -} - -//_____________________________________________________________________________ -G4double G4H1ToolsManager::GetH1Xmin(G4int id) const -{ -// Returns xmin value with applied unit and histogram function - - auto h1d = GetTInFunction(id, "GetH1Xmin"); - if ( ! h1d ) return 0.; - - return GetMin(*h1d, kX); -} - -//_____________________________________________________________________________ -G4double G4H1ToolsManager::GetH1Xmax(G4int id) const -{ - auto h1d = GetTInFunction(id, "GetH1Xmax"); - if ( ! h1d ) return 0.; - - return GetMax(*h1d, kX); -} - -//_____________________________________________________________________________ -G4double G4H1ToolsManager::GetH1Width(G4int id) const -{ - auto h1d = GetTInFunction(id, "GetH1XWidth", true, false); - if ( ! h1d ) return 0.; - - return GetWidth(*h1d, kX, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4bool G4H1ToolsManager::SetH1Title(G4int id, const G4String& title) -{ - auto h1d = GetTInFunction(id, "SetH1Title"); - if ( ! h1d ) return false; - - return SetTitle(*h1d, title); -} - -//_____________________________________________________________________________ -G4bool G4H1ToolsManager::SetH1XAxisTitle(G4int id, const G4String& title) -{ - auto h1d = GetTInFunction(id, "SetH1XAxisTitle"); - if ( ! h1d ) return false; - - return SetAxisTitle(*h1d, kX, title); -} - -//_____________________________________________________________________________ -G4bool G4H1ToolsManager::SetH1YAxisTitle(G4int id, const G4String& title) -{ - auto h1d = GetTInFunction(id, "SetH1YAxisTitle"); - if ( ! h1d ) return false; - - return SetAxisTitle(*h1d, kY, title); -} - -//_____________________________________________________________________________ -G4String G4H1ToolsManager::GetH1Title(G4int id) const -{ - auto h1d = GetTInFunction(id, "GetH1Title"); - if ( ! h1d ) return ""; - - return GetTitle(*h1d); -} - - -//_____________________________________________________________________________ -G4String G4H1ToolsManager::GetH1XAxisTitle(G4int id) const -{ - auto h1d = GetTInFunction(id, "GetH1XAxisTitle"); - if ( ! h1d ) return ""; - - return GetAxisTitle(*h1d, kX, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4String G4H1ToolsManager::GetH1YAxisTitle(G4int id) const -{ - auto h1d = GetTInFunction(id, "GetH1YAxisTitle"); - if ( ! h1d ) return ""; - - return GetAxisTitle(*h1d, kY, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4bool G4H1ToolsManager::WriteOnAscii(std::ofstream& output) -{ -// Write selected objects on ASCII file -// According to the implementation by Michel Maire, originally in -// extended examples. - - // Do nothing if no histograms are selected - if ( ! fHnManager->IsAscii() ) return true; - - // Write h1 histograms - for ( G4int i=0; iGetFirstId(); - auto info = fHnManager->GetHnInformation(id,"WriteOnAscii"); - // skip writing if activation is enabled and H1 is inactivated - if ( ! info->GetAscii() ) continue; - auto h1 = fTVector[i]; - - Message(kVL3, "write on ascii", "h1d", info->GetName()); - - output << "\n 1D histogram " << id << ": " << h1->title() - << "\n \n \t X \t\t Bin Height" << G4endl; - - for (G4int j=0; j< G4int(h1->axis().bins()); ++j) { - output << " " << j << "\t" - << h1->axis().bin_center(j) << "\t" - << h1->bin_height(j) << G4endl; - } - } - - return output.good(); -} - -// -// public methods -// - -//_____________________________________________________________________________ -G4int G4H1ToolsManager::AddH1(const G4String& name, tools::histo::h1d* h1d) -{ - Message(kVL4, "add", "H1", name); - - // Add annotation - AddH1Annotation(h1d, "none", "none"); - // Add information - AddH1Information(name, "none", "none", G4BinScheme::kLinear); - - // Register histogram - auto id = RegisterT(h1d, name); - - Message(kVL2, "add", "H1", name); - - return id; -} - - -//_____________________________________________________________________________ -void G4H1ToolsManager::AddH1Vector( - const std::vector& h1Vector) -{ - AddTVector(h1Vector); -} - -//_____________________________________________________________________________ -tools::histo::h1d* G4H1ToolsManager::GetH1(G4int id, G4bool warn, - G4bool onlyIfActive) const -{ - return GetTInFunction(id, "GetH1", warn, onlyIfActive); -} - diff --git a/source/analysis/hntools/src/G4H2ToolsManager.cc b/source/analysis/hntools/src/G4H2ToolsManager.cc deleted file mode 100644 index 04a33faf1c..0000000000 --- a/source/analysis/hntools/src/G4H2ToolsManager.cc +++ /dev/null @@ -1,634 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr) - -#include "G4H2ToolsManager.hh" -#include "G4AnalysisManagerState.hh" -#include "G4BaseHistoUtilities.hh" -#include "G4AnalysisUtilities.hh" - -#include "tools/histo/h2d" - -#include - -using namespace G4Analysis; -using std::to_string; - -//_____________________________________________________________________________ -G4H2ToolsManager::G4H2ToolsManager(const G4AnalysisManagerState& state) - : G4VH2Manager(), - G4THnManager(state, "H2") -{} - -// -// Utility functions -// - -namespace { - -//_____________________________________________________________________________ -void UpdateH2Information(G4HnInformation* hnInformation, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName, - G4BinScheme xbinScheme, - G4BinScheme ybinScheme) -{ - hnInformation->SetDimension(kX, xunitName, xfcnName, xbinScheme); - hnInformation->SetDimension(kY, yunitName, yfcnName, ybinScheme); -} - -//_____________________________________________________________________________ -void AddH2Annotation(tools::histo::h2d* h2d, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName) -{ - G4String xaxisTitle; - G4String yaxisTitle; - UpdateTitle(xaxisTitle, xunitName, xfcnName); - UpdateTitle(yaxisTitle, yunitName, yfcnName); - h2d->add_annotation(tools::histo::key_axis_x_title(), xaxisTitle); - h2d->add_annotation(tools::histo::key_axis_y_title(), yaxisTitle); -} - -//_____________________________________________________________________________ -tools::histo::h2d* CreateToolsH2( - const G4String& title, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& xbinSchemeName, - const G4String& ybinSchemeName, - std::string_view className) - -{ - auto xunit = GetUnitValue(xunitName); - auto yunit = GetUnitValue(yunitName); - auto xfcn = GetFunction(xfcnName); - auto yfcn = GetFunction(yfcnName); - auto xbinScheme = GetBinScheme(xbinSchemeName); - auto ybinScheme = GetBinScheme(ybinSchemeName); - - if ( xbinScheme != G4BinScheme::kLog && ybinScheme != G4BinScheme::kLog) { - if ( xbinScheme == G4BinScheme::kUser || ybinScheme == G4BinScheme::kUser) { - // This should never happen, but let's make sure about it - // by issuing a warning - Warn("User binning scheme setting was ignored.\n" - "Linear binning will be applied with given (nbins, xmin, xmax) values.", - className, "CreateToolsH2"); - } - return new tools::histo::h2d(title, - nxbins, xfcn(xmin/xunit), xfcn(xmax/xunit), - nybins, yfcn(ymin/yunit), yfcn(ymax/yunit)); - // h2 objects are deleted in destructor and reset when - // closing a file. - } - else { - // Compute edges - std::vector xedges; - ComputeEdges(nxbins, xmin, xmax, xunit, xfcn, xbinScheme, xedges); - std::vector yedges; - ComputeEdges(nybins, ymin, ymax, yunit, yfcn, ybinScheme, yedges); - return new tools::histo::h2d(title, xedges, yedges); - } -} - -//_____________________________________________________________________________ -tools::histo::h2d* CreateToolsH2( - const G4String& title, - const std::vector& xedges, - const std::vector& yedges, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName) -{ - auto xunit = GetUnitValue(xunitName); - auto yunit = GetUnitValue(yunitName); - auto xfcn = GetFunction(xfcnName); - auto yfcn = GetFunction(yfcnName); - - // Apply function - std::vector xnewEdges; - ComputeEdges(xedges, xunit, xfcn, xnewEdges); - std::vector ynewEdges; - ComputeEdges(yedges, yunit, yfcn, ynewEdges); - - return new tools::histo::h2d(title, xnewEdges, ynewEdges); - // h2 objects are deleted in destructor and reset when - // closing a file. -} - -//_____________________________________________________________________________ -void ConfigureToolsH2(tools::histo::h2d* h2d, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& xbinSchemeName, - const G4String& ybinSchemeName, - std::string_view className) -{ - auto xunit = GetUnitValue(xunitName); - auto yunit = GetUnitValue(yunitName); - auto xfcn = GetFunction(xfcnName); - auto yfcn = GetFunction(yfcnName); - auto xbinScheme = GetBinScheme(xbinSchemeName); - auto ybinScheme = GetBinScheme(ybinSchemeName); - - if ( xbinScheme != G4BinScheme::kLog && ybinScheme != G4BinScheme::kLog) { - if ( xbinScheme == G4BinScheme::kUser || ybinScheme == G4BinScheme::kUser) { - // This should never happen, but let's make sure about it - // by issuing a warning - Warn("User binning scheme setting was ignored.\n" - "Linear binning will be applied with given (nbins, xmin, xmax) values.", - className, "ConfigureToolsH2"); - } - h2d->configure(nxbins, xfcn(xmin/xunit), xfcn(xmax/xunit), - nybins, yfcn(ymin/yunit), yfcn(ymax/yunit)); - } - else { - // Compute bins - std::vector xedges; - ComputeEdges(nxbins, xmin, xmax, xunit, xfcn, xbinScheme, xedges); - std::vector yedges; - ComputeEdges(nybins, ymin, ymax, yunit, yfcn, ybinScheme, yedges); - h2d->configure(xedges, yedges); - } -} - -//_____________________________________________________________________________ -void ConfigureToolsH2(tools::histo::h2d* h2d, - const std::vector& xedges, - const std::vector& yedges, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName) -{ - auto xunit = GetUnitValue(xunitName); - auto xfcn = GetFunction(xfcnName); - std::vector xnewEdges; - ComputeEdges(xedges, xunit, xfcn, xnewEdges); - - auto yunit = GetUnitValue(yunitName); - auto yfcn = GetFunction(yfcnName); - std::vector ynewEdges; - ComputeEdges(yedges, yunit, yfcn, ynewEdges); - - h2d->configure(xnewEdges, ynewEdges); -} - -} - - -// -// private methods -// - -//_____________________________________________________________________________ -void G4H2ToolsManager::AddH2Information(const G4String& name, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName, - G4BinScheme xbinScheme, - G4BinScheme ybinScheme) const -{ - auto hnInformation = fHnManager->AddHnInformation(name, fkDimension); - hnInformation->AddDimension(xunitName, xfcnName, xbinScheme); - hnInformation->AddDimension(yunitName, yfcnName, ybinScheme); -} - -// -// protected methods -// - -//_____________________________________________________________________________ -G4int G4H2ToolsManager::CreateH2(const G4String& name, const G4String& title, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - const G4String& xunitName, const G4String& yunitName, - const G4String& xfcnName, const G4String& yfcnName, - const G4String& xbinSchemeName, - const G4String& ybinSchemeName) - -{ - Message(kVL4, "create", "H2", name); - - tools::histo::h2d* h2d - = CreateToolsH2(title, nxbins, xmin, xmax, nybins, ymin, ymax, - xunitName, yunitName, xfcnName, yfcnName, - xbinSchemeName, ybinSchemeName, fkClass); - - // Add annotation - AddH2Annotation(h2d, xunitName, yunitName, xfcnName, yfcnName); - - // Save H2 information - auto xbinScheme = GetBinScheme(xbinSchemeName); - auto ybinScheme = GetBinScheme(ybinSchemeName); - AddH2Information( - name, xunitName, yunitName, xfcnName, yfcnName, xbinScheme, ybinScheme); - - // Register histogram - G4int id = RegisterT(h2d, name); - - Message(kVL2, "create", "H2", name); - - return id; -} - -//_____________________________________________________________________________ -G4int G4H2ToolsManager::CreateH2(const G4String& name, const G4String& title, - const std::vector& xedges, - const std::vector& yedges, - const G4String& xunitName, const G4String& yunitName, - const G4String& xfcnName, const G4String& yfcnName) - -{ - Message(kVL4, "create", "H2", name); - - tools::histo::h2d* h2d - = CreateToolsH2(title, xedges, yedges, - xunitName, yunitName, xfcnName, yfcnName); - - // Add annotation - AddH2Annotation(h2d, xunitName, yunitName, xfcnName, yfcnName); - - // Save H2 information - AddH2Information( - name, xunitName, yunitName, xfcnName, yfcnName, G4BinScheme::kUser, G4BinScheme::kUser); - - // Register histogram - G4int id = RegisterT(h2d, name); - - Message(kVL2, "create", "H2", name); - - return id; -} - -//_____________________________________________________________________________ -G4bool G4H2ToolsManager::SetH2(G4int id, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - const G4String& xunitName, const G4String& yunitName, - const G4String& xfcnName, const G4String& yfcnName, - const G4String& xbinSchemeName, - const G4String& ybinSchemeName) -{ - auto h2d = GetTInFunction(id, "SetH2", false, false); - if ( ! h2d ) return false; - - auto info = fHnManager->GetHnInformation(id, "SetH2"); - - Message(kVL4, "configure", "H2", info->GetName()); - - // Configure tools h2 - ConfigureToolsH2( - h2d, nxbins, xmin, xmax, nybins, ymin, ymax, - xunitName, yunitName, xfcnName, yfcnName, xbinSchemeName, ybinSchemeName, - fkClass); - - // Add annotation - AddH2Annotation(h2d, xunitName, yunitName, xfcnName, yfcnName); - - // Update information - auto xbinScheme = GetBinScheme(xbinSchemeName); - auto ybinScheme = GetBinScheme(ybinSchemeName); - UpdateH2Information( - info, xunitName, yunitName, xfcnName, yfcnName, xbinScheme, ybinScheme); - - // Set activation - fHnManager->SetActivation(id, true); - - return true; -} - -//_____________________________________________________________________________ -G4bool G4H2ToolsManager::SetH2(G4int id, - const std::vector& xedges, - const std::vector& yedges, - const G4String& xunitName, const G4String& yunitName, - const G4String& xfcnName, const G4String& yfcnName) -{ - auto h2d = GetTInFunction(id, "SetH2", false, false); - if ( ! h2d ) return false; - - auto info = fHnManager->GetHnInformation(id, "SetH2"); - - Message(kVL4, "configure", "H2", info->GetName()); - - // Configure tools h2 - ConfigureToolsH2(h2d, xedges, yedges, xunitName, yunitName, xfcnName, yfcnName); - - // Add annotation - AddH2Annotation(h2d, xunitName, yunitName, xfcnName, yfcnName); - - // Update information - UpdateH2Information( - info, xunitName, yunitName, xfcnName, yfcnName, G4BinScheme::kUser, G4BinScheme::kUser); - - // Set activation - fHnManager->SetActivation(id, true); - - return true; -} - -//_____________________________________________________________________________ -G4bool G4H2ToolsManager::ScaleH2(G4int id, G4double factor) -{ - auto h2d = GetTInFunction(id, "ScaleH2", false, false); - if ( ! h2d ) return false; - - return h2d->scale(factor); -} - -//_____________________________________________________________________________ -G4bool G4H2ToolsManager::FillH2(G4int id, - G4double xvalue, G4double yvalue, - G4double weight) -{ - auto h2d = GetTInFunction(id, "FillH2", true, false); - if ( ! h2d ) return false; - - if ( fState.GetIsActivation() && ( ! fHnManager->GetActivation(id) ) ) { - return false; - } - - G4HnDimensionInformation* xInfo - = fHnManager->GetHnDimensionInformation(id, kX, "FillH2"); - G4HnDimensionInformation* yInfo - = fHnManager->GetHnDimensionInformation(id, kY, "FillH2"); - - h2d->fill(xInfo->fFcn(xvalue/xInfo->fUnit), - yInfo->fFcn(yvalue/yInfo->fUnit), weight); - - if ( IsVerbose(kVL4) ) { - Message(kVL4, "fill", "H2", - " id " + to_string(id) + - " xvalue " + to_string(xvalue) + - " xfcn(xvalue/xunit) " + to_string(xInfo->fFcn(xvalue/xInfo->fUnit)) + - " yvalue " + to_string(yvalue) + - " yfcn(yvalue/yunit) " + to_string(yInfo->fFcn(yvalue/yInfo->fUnit)) + - " weight " + to_string(weight)); - } - - return true; -} - -//_____________________________________________________________________________ -G4int G4H2ToolsManager::GetH2Id(const G4String& name, G4bool warn) const -{ - return GetTId(name, warn); -} - -//_____________________________________________________________________________ -G4int G4H2ToolsManager::GetH2Nxbins(G4int id) const -{ - auto h2d = GetTInFunction(id, "GetH2NXbins"); - if ( ! h2d ) return 0; - - return GetNbins(*h2d, kX); -} - -//_____________________________________________________________________________ -G4double G4H2ToolsManager::GetH2Xmin(G4int id) const -{ -// Returns xmin value with applied unit and histogram function - - auto h2d = GetTInFunction(id, "GetH2Xmin"); - if ( ! h2d ) return 0.; - - return GetMin(*h2d, kX); -} - -//_____________________________________________________________________________ -G4double G4H2ToolsManager::GetH2Xmax(G4int id) const -{ - auto h2d = GetTInFunction(id, "GetH2Xmax"); - if ( ! h2d ) return 0.; - - return GetMax(*h2d, kX); -} - -//_____________________________________________________________________________ -G4double G4H2ToolsManager::GetH2XWidth(G4int id) const -{ - auto h2d = GetTInFunction(id, "GetH2XWidth", true, false); - if ( ! h2d ) return 0.; - - return GetWidth(*h2d, kX, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4int G4H2ToolsManager::GetH2Nybins(G4int id) const -{ - auto h2d = GetTInFunction(id, "GetH2NYbins"); - if ( ! h2d ) return 0; - - return GetNbins(*h2d, kY); -} - -//_____________________________________________________________________________ -G4double G4H2ToolsManager::GetH2Ymin(G4int id) const -{ -// Returns xmin value with applied unit and histogram function - - auto h2d = GetTInFunction(id, "GetH2Ymin"); - if ( ! h2d ) return 0.; - - return GetMin(*h2d, kY); -} - -//_____________________________________________________________________________ -G4double G4H2ToolsManager::GetH2Ymax(G4int id) const -{ - auto h2d = GetTInFunction(id, "GetH2Ymax"); - if ( ! h2d ) return 0.; - - return GetMax(*h2d, kY); -} - -//_____________________________________________________________________________ -G4double G4H2ToolsManager::GetH2YWidth(G4int id) const -{ - auto h2d = GetTInFunction(id, "GetH2YWidth", true, false); - if ( ! h2d ) return 0.; - - return GetWidth(*h2d, kY, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4bool G4H2ToolsManager::SetH2Title(G4int id, const G4String& title) -{ - auto h2d = GetTInFunction(id, "SetH2Title"); - if ( ! h2d ) return false; - - return SetTitle(*h2d, title); -} - -//_____________________________________________________________________________ -G4bool G4H2ToolsManager::SetH2XAxisTitle(G4int id, const G4String& title) -{ - auto h2d = GetTInFunction(id, "SetH2XAxisTitle"); - if ( ! h2d ) return false; - - return SetAxisTitle(*h2d, kX, title); -} - -//_____________________________________________________________________________ -G4bool G4H2ToolsManager::SetH2YAxisTitle(G4int id, const G4String& title) -{ - auto h2d = GetTInFunction(id, "SetH2YAxisTitle"); - if ( ! h2d ) return false; - - return SetAxisTitle(*h2d, kY, title); -} - -//_____________________________________________________________________________ -G4bool G4H2ToolsManager::SetH2ZAxisTitle(G4int id, const G4String& title) -{ - auto h2d = GetTInFunction(id, "SetH2ZAxisTitle"); - if ( ! h2d ) return false; - - return SetAxisTitle(*h2d, kZ, title); -} - -//_____________________________________________________________________________ -G4String G4H2ToolsManager::GetH2Title(G4int id) const -{ - auto h2d = GetTInFunction(id, "GetH2Title"); - if ( ! h2d ) return ""; - - return GetTitle(*h2d); -} - -//_____________________________________________________________________________ -G4String G4H2ToolsManager::GetH2XAxisTitle(G4int id) const -{ - auto h2d = GetTInFunction(id, "GetH2XAxisTitle"); - if ( ! h2d ) return ""; - - return GetAxisTitle(*h2d, kX, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4String G4H2ToolsManager::GetH2YAxisTitle(G4int id) const -{ - auto h2d = GetTInFunction(id, "GetH2YAxisTitle"); - if ( ! h2d ) return ""; - - return GetAxisTitle(*h2d, kY, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4String G4H2ToolsManager::GetH2ZAxisTitle(G4int id) const -{ - auto h2d = GetTInFunction(id, "GetH2ZAxisTitle"); - if ( ! h2d ) return ""; - - return GetAxisTitle(*h2d, kZ, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4bool G4H2ToolsManager::WriteOnAscii(std::ofstream& output) -{ -// Write selected objects on ASCII file - - // Do nothing if no histograms are selected - if ( ! fHnManager->IsAscii() ) return true; - - // Write h2 histograms - for ( G4int i=0; iGetFirstId(); - auto info = fHnManager->GetHnInformation(id,"WriteOnAscii"); - // skip writing if activation is enabled and H1 is inactivated - if ( ! info->GetAscii() ) continue; - auto h2 = fTVector[i]; - - Message(kVL3, "write on ascii", "h2d", info->GetName()); - - output << "\n 2D histogram " << id << ": " << h2->title() - << "\n \n \t \t X \t\t Y \t\t Bin Height" << G4endl; - - for (G4int j=0; j< G4int(h2->axis_x().bins()); ++j) { - for (G4int k=0; k< G4int(h2->axis_y().bins()); ++k) { - output << " " << j << "\t" << k << "\t" - << h2->axis_x().bin_center(j) << "\t" - << h2->axis_y().bin_center(k) << "\t" - << h2->bin_height(j, k) << G4endl; - } - } - } - - return output.good(); -} - -// -// public methods -// - -//_____________________________________________________________________________ -G4int G4H2ToolsManager::AddH2(const G4String& name, tools::histo::h2d* h2d) -{ - Message(kVL4, "add", "H2", name); - - // Add annotation - AddH2Annotation(h2d, "none", "none", "none", "none"); - // Add information - AddH2Information(name, "none", "none", "none", "none", - G4BinScheme::kLinear, G4BinScheme::kLinear); - - // Register histogram - G4int id = RegisterT(h2d, name); - - Message(kVL2, "add", "H2", name); - - return id; -} - -//_____________________________________________________________________________ -void G4H2ToolsManager::AddH2Vector( - const std::vector& h2Vector) -{ - AddTVector(h2Vector); -} -//_____________________________________________________________________________ -tools::histo::h2d* G4H2ToolsManager::GetH2(G4int id, G4bool warn, - G4bool onlyIfActive) const -{ - return GetTInFunction(id, "GetH2", warn, onlyIfActive); -} - diff --git a/source/analysis/hntools/src/G4H3ToolsManager.cc b/source/analysis/hntools/src/G4H3ToolsManager.cc deleted file mode 100644 index 23daea01c9..0000000000 --- a/source/analysis/hntools/src/G4H3ToolsManager.cc +++ /dev/null @@ -1,755 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#include "G4H3ToolsManager.hh" -#include "G4AnalysisManagerState.hh" -#include "G4BaseHistoUtilities.hh" -#include "G4AnalysisUtilities.hh" - -#include "tools/histo/h3d" - -#include - -using namespace G4Analysis; -using std::to_string; - -//_____________________________________________________________________________ -G4H3ToolsManager::G4H3ToolsManager(const G4AnalysisManagerState& state) - : G4VH3Manager(), - G4THnManager(state, "H3") -{} - -// -// Utility functions -// - -namespace { - -//_____________________________________________________________________________ -void UpdateH3Information(G4HnInformation* hnInformation, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& zfcnName, - G4BinScheme xbinScheme, - G4BinScheme ybinScheme, - G4BinScheme zbinScheme) -{ - hnInformation->SetDimension(kX, xunitName, xfcnName, xbinScheme); - hnInformation->SetDimension(kY, yunitName, yfcnName, ybinScheme); - hnInformation->SetDimension(kZ, zunitName, zfcnName, zbinScheme); -} - -//_____________________________________________________________________________ -void AddH3Annotation(tools::histo::h3d* h3d, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& zfcnName) -{ - G4String xaxisTitle; - G4String yaxisTitle; - G4String zaxisTitle; - UpdateTitle(xaxisTitle, xunitName, xfcnName); - UpdateTitle(yaxisTitle, yunitName, yfcnName); - UpdateTitle(zaxisTitle, zunitName, zfcnName); - h3d->add_annotation(tools::histo::key_axis_x_title(), xaxisTitle); - h3d->add_annotation(tools::histo::key_axis_y_title(), yaxisTitle); - h3d->add_annotation(tools::histo::key_axis_z_title(), zaxisTitle); -} - -//_____________________________________________________________________________ -tools::histo::h3d* CreateToolsH3( - const G4String& title, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4int nzbins, G4double zmin, G4double zmax, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& zfcnName, - const G4String& yfcnName, - const G4String& xbinSchemeName, - const G4String& ybinSchemeName, - const G4String& zbinSchemeName, - std::string_view className) -{ - auto xunit = GetUnitValue(xunitName); - auto yunit = GetUnitValue(yunitName); - auto zunit = GetUnitValue(zunitName); - auto xfcn = GetFunction(xfcnName); - auto yfcn = GetFunction(yfcnName); - auto zfcn = GetFunction(zfcnName); - auto xbinScheme = GetBinScheme(xbinSchemeName); - auto ybinScheme = GetBinScheme(ybinSchemeName); - auto zbinScheme = GetBinScheme(zbinSchemeName); - - if ( xbinScheme != G4BinScheme::kLog && ybinScheme != G4BinScheme::kLog && zbinScheme != G4BinScheme::kLog) { - if ( xbinScheme == G4BinScheme::kUser || ybinScheme == G4BinScheme::kUser || zbinScheme == G4BinScheme::kUser) { - // This should never happen, but let's make sure about it - // by issuing a warning - Warn("User binning scheme setting was ignored.\n" - "Linear binning will be applied with given (nbins, xmin, xmax) values.", - className, "CreateToolsH3"); - } - return new tools::histo::h3d(title, - nxbins, xfcn(xmin/xunit), xfcn(xmax/xunit), - nybins, yfcn(ymin/yunit), yfcn(ymax/yunit), - nzbins, zfcn(zmin/zunit), zfcn(zmax/zunit)); - // h3 objects are deleted in destructor and reset when - // closing a file. - } - else { - // Compute edges - std::vector xedges; - ComputeEdges(nxbins, xmin, xmax, xunit, xfcn, xbinScheme, xedges); - std::vector yedges; - ComputeEdges(nybins, ymin, ymax, yunit, yfcn, ybinScheme, yedges); - std::vector zedges; - ComputeEdges(nzbins, zmin, zmax, zunit, zfcn, zbinScheme, zedges); - return new tools::histo::h3d(title, xedges, yedges, zedges); - } -} - -//_____________________________________________________________________________ -tools::histo::h3d* CreateToolsH3( - const G4String& title, - const std::vector& xedges, - const std::vector& yedges, - const std::vector& zedges, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& zfcnName) -{ - auto xunit = GetUnitValue(xunitName); - auto yunit = GetUnitValue(yunitName); - auto zunit = GetUnitValue(zunitName); - auto xfcn = GetFunction(xfcnName); - auto yfcn = GetFunction(yfcnName); - auto zfcn = GetFunction(zfcnName); - - // Apply function - std::vector xnewEdges; - ComputeEdges(xedges, xunit, xfcn, xnewEdges); - std::vector ynewEdges; - ComputeEdges(yedges, yunit, yfcn, ynewEdges); - std::vector znewEdges; - ComputeEdges(zedges, zunit, zfcn, znewEdges); - - return new tools::histo::h3d(title, xnewEdges, ynewEdges, znewEdges); - // h3 objects are deleted in destructor and reset when - // closing a file. -} - -//_____________________________________________________________________________ -void ConfigureToolsH3(tools::histo::h3d* h3d, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4int nzbins, G4double zmin, G4double zmax, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& zfcnName, - const G4String& xbinSchemeName, - const G4String& ybinSchemeName, - const G4String& zbinSchemeName, - std::string_view className) -{ - auto xunit = GetUnitValue(xunitName); - auto yunit = GetUnitValue(yunitName); - auto zunit = GetUnitValue(zunitName); - auto xfcn = GetFunction(xfcnName); - auto yfcn = GetFunction(yfcnName); - auto zfcn = GetFunction(zfcnName); - auto xbinScheme = GetBinScheme(xbinSchemeName); - auto ybinScheme = GetBinScheme(ybinSchemeName); - auto zbinScheme = GetBinScheme(zbinSchemeName); - - if ( xbinScheme != G4BinScheme::kLog && ybinScheme != G4BinScheme::kLog && zbinScheme != G4BinScheme::kLog) { - if ( xbinScheme == G4BinScheme::kUser || ybinScheme == G4BinScheme::kUser || zbinScheme == G4BinScheme::kUser) { - // This should never happen, but let's make sure about it - // by issuing a warning - Warn("User binning scheme setting was ignored.\n" - "Linear binning will be applied with given (nbins, xmin, xmax) values.", - className, "ConfigureToolsH3"); - } - h3d->configure(nxbins, xfcn(xmin/xunit), xfcn(xmax/xunit), - nybins, yfcn(ymin/yunit), yfcn(ymax/yunit), - nzbins, zfcn(zmin/zunit), zfcn(zmax/zunit)); - } - else { - // Compute bins - std::vector xedges; - ComputeEdges(nxbins, xmin, xmax, xunit, xfcn, xbinScheme, xedges); - std::vector yedges; - ComputeEdges(nybins, ymin, ymax, yunit, yfcn, ybinScheme, yedges); - std::vector zedges; - ComputeEdges(nzbins, zmin, zmax, zunit, zfcn, zbinScheme, zedges); - h3d->configure(xedges, yedges, zedges); - } -} - -//_____________________________________________________________________________ -void ConfigureToolsH3(tools::histo::h3d* h3d, - const std::vector& xedges, - const std::vector& yedges, - const std::vector& zedges, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& zfcnName) -{ - auto xunit = GetUnitValue(xunitName); - auto xfcn = GetFunction(xfcnName); - std::vector xnewEdges; - ComputeEdges(xedges, xunit, xfcn, xnewEdges); - - auto yunit = GetUnitValue(yunitName); - auto yfcn = GetFunction(yfcnName); - std::vector ynewEdges; - ComputeEdges(yedges, yunit, yfcn, ynewEdges); - - auto zunit = GetUnitValue(zunitName); - auto zfcn = GetFunction(zfcnName); - std::vector znewEdges; - ComputeEdges(zedges, zunit, zfcn, znewEdges); - - h3d->configure(xnewEdges, ynewEdges, znewEdges); -} - -} - - -// -// private methods -// - -//_____________________________________________________________________________ -void G4H3ToolsManager::AddH3Information(const G4String& name, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& zfcnName, - G4BinScheme xbinScheme, - G4BinScheme ybinScheme, - G4BinScheme zbinScheme) const -{ - auto hnInformation = fHnManager->AddHnInformation(name, fkDimension); - hnInformation->AddDimension(xunitName, xfcnName, xbinScheme); - hnInformation->AddDimension(yunitName, yfcnName, ybinScheme); - hnInformation->AddDimension(zunitName, zfcnName, zbinScheme); -} - -// -// protected methods -// - -//_____________________________________________________________________________ -G4int G4H3ToolsManager::CreateH3(const G4String& name, const G4String& title, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4int nzbins, G4double zmin, G4double zmax, - const G4String& xunitName, const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, const G4String& yfcnName, - const G4String& zfcnName, - const G4String& xbinSchemeName, - const G4String& ybinSchemeName, - const G4String& zbinSchemeName) - -{ - Message(kVL4, "create", "H3", name); - - tools::histo::h3d* h3d - = CreateToolsH3(title, - nxbins, xmin, xmax, nybins, ymin, ymax, nzbins, zmin, zmax, - xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName, - xbinSchemeName, ybinSchemeName, zbinSchemeName, fkClass); - - // Add annotation - AddH3Annotation(h3d, xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName); - - // Save H3 information - auto xbinScheme = GetBinScheme(xbinSchemeName); - auto ybinScheme = GetBinScheme(ybinSchemeName); - auto zbinScheme = GetBinScheme(zbinSchemeName); - AddH3Information( - name, xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName, - xbinScheme, ybinScheme, zbinScheme); - - // Register histogram - G4int id = RegisterT(h3d, name); - - Message(kVL2, "create", "H3", name); - - return id; -} - -//_____________________________________________________________________________ -G4int G4H3ToolsManager::CreateH3(const G4String& name, const G4String& title, - const std::vector& xedges, - const std::vector& yedges, - const std::vector& zedges, - const G4String& xunitName, const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, const G4String& yfcnName, - const G4String& zfcnName) - -{ - Message(kVL4, "create", "H3", name); - - tools::histo::h3d* h3d - = CreateToolsH3(title, xedges, yedges, zedges, - xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName); - - // Add annotation - AddH3Annotation(h3d, xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName); - - // Save H3 information - AddH3Information( - name, xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName, - G4BinScheme::kUser, G4BinScheme::kUser, G4BinScheme::kUser); - - // Register histogram - G4int id = RegisterT(h3d, name); - - Message(kVL2, "create", "H3", name); - - return id; -} - -//_____________________________________________________________________________ -G4bool G4H3ToolsManager::SetH3(G4int id, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4int nzbins, G4double zmin, G4double zmax, - const G4String& xunitName, const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, const G4String& yfcnName, - const G4String& zfcnName, - const G4String& xbinSchemeName, - const G4String& ybinSchemeName, - const G4String& zbinSchemeName) -{ - auto h3d = GetTInFunction(id, "SetH3", false, false); - if ( ! h3d ) return false; - - auto info = fHnManager->GetHnInformation(id, "SetH3"); - - Message(kVL4, "configure", "H3", info->GetName()); - - // Configure tools h3 - ConfigureToolsH3( - h3d, nxbins, xmin, xmax, nybins, ymin, ymax, nzbins, zmin, zmax, - xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName, - xbinSchemeName, ybinSchemeName, zbinSchemeName, fkClass); - - // Add annotation - AddH3Annotation(h3d, xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName); - - // Update information - auto xbinScheme = GetBinScheme(xbinSchemeName); - auto ybinScheme = GetBinScheme(ybinSchemeName); - auto zbinScheme = GetBinScheme(zbinSchemeName); - UpdateH3Information( - info, xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName, - xbinScheme, ybinScheme, zbinScheme); - - // Set activation - fHnManager->SetActivation(id, true); - - return true; -} - -//_____________________________________________________________________________ -G4bool G4H3ToolsManager::SetH3(G4int id, - const std::vector& xedges, - const std::vector& yedges, - const std::vector& zedges, - const G4String& xunitName, const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, const G4String& yfcnName, - const G4String& zfcnName) -{ - auto h3d = GetTInFunction(id, "SetH3", false, false); - if ( ! h3d ) return false; - - auto info = fHnManager->GetHnInformation(id, "SetH3"); - - Message(kVL4, "configure", "H3", info->GetName()); - - // Configure tools h3 - ConfigureToolsH3(h3d, xedges, yedges, zedges, - xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName); - - // Add annotation - AddH3Annotation(h3d, xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName); - - // Update information - UpdateH3Information( - info, xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName, - G4BinScheme::kUser, G4BinScheme::kUser, G4BinScheme::kUser); - - // Set activation - fHnManager->SetActivation(id, true); - - return true; -} - -//_____________________________________________________________________________ -G4bool G4H3ToolsManager::ScaleH3(G4int id, G4double factor) -{ - auto h3d = GetTInFunction(id, "ScaleH3", false, false); - if ( ! h3d ) return false; - - return h3d->scale(factor); -} - -//_____________________________________________________________________________ -G4bool G4H3ToolsManager::FillH3(G4int id, - G4double xvalue, G4double yvalue, G4double zvalue, - G4double weight) -{ - auto h3d = GetTInFunction(id, "FillH3", true, false); - if ( ! h3d ) return false; - - if ( fState.GetIsActivation() && ( ! fHnManager->GetActivation(id) ) ) { - return false; - } - - G4HnDimensionInformation* xInfo - = fHnManager->GetHnDimensionInformation(id, kX, "FillH3"); - G4HnDimensionInformation* yInfo - = fHnManager->GetHnDimensionInformation(id, kY, "FillH3"); - G4HnDimensionInformation* zInfo - = fHnManager->GetHnDimensionInformation(id, kZ, "FillH3"); - - h3d->fill(xInfo->fFcn(xvalue/xInfo->fUnit), - yInfo->fFcn(yvalue/yInfo->fUnit), - zInfo->fFcn(zvalue/zInfo->fUnit), weight); - - if ( IsVerbose(kVL4) ) { - Message(kVL4, "fill", "H3", - " id " + to_string(id) + - " xvalue " + to_string(xvalue) + - " xfcn(xvalue/xunit) " + to_string(xInfo->fFcn(xvalue/xInfo->fUnit)) + - " yvalue " + to_string(yvalue) + - " yfcn(yvalue/yunit) " + to_string(yInfo->fFcn(yvalue/yInfo->fUnit)) + - " zvalue " + to_string(zvalue) + - " zfcn(zvalue/zunit) " + to_string(zInfo->fFcn(zvalue/zInfo->fUnit)) + - " weight " + to_string(weight)); - } - - return true; -} - -//_____________________________________________________________________________ -G4int G4H3ToolsManager::GetH3Id(const G4String& name, G4bool warn) const -{ - return GetTId(name, warn); -} - -//_____________________________________________________________________________ -G4int G4H3ToolsManager::GetH3Nxbins(G4int id) const -{ - auto h3d = GetTInFunction(id, "GetH3NXbins"); - if ( ! h3d ) return 0; - - return GetNbins(*h3d, kX); -} - -//_____________________________________________________________________________ -G4double G4H3ToolsManager::GetH3Xmin(G4int id) const -{ -// Returns xmin value with applied unit and histogram function - - auto h3d = GetTInFunction(id, "GetH3Xmin"); - if ( ! h3d ) return 0.; - - return GetMin(*h3d, kX); -} - -//_____________________________________________________________________________ -G4double G4H3ToolsManager::GetH3Xmax(G4int id) const -{ - auto h3d = GetTInFunction(id, "GetH3Xmax"); - if ( ! h3d ) return 0.; - - return GetMax(*h3d, kX); -} - -//_____________________________________________________________________________ -G4double G4H3ToolsManager::GetH3XWidth(G4int id) const -{ - auto h3d = GetTInFunction(id, "GetH3XWidth", true, false); - if ( ! h3d ) return 0.; - - return GetWidth(*h3d, kX, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4int G4H3ToolsManager::GetH3Nybins(G4int id) const -{ - auto h3d = GetTInFunction(id, "GetH3NYbins"); - if ( ! h3d ) return 0; - - return GetNbins(*h3d, kY); -} - -//_____________________________________________________________________________ -G4double G4H3ToolsManager::GetH3Ymin(G4int id) const -{ -// Returns xmin value with applied unit and histogram function - - auto h3d = GetTInFunction(id, "GetH3Ymin"); - if ( ! h3d ) return 0.; - - return GetMin(*h3d, kY); -} - -//_____________________________________________________________________________ -G4double G4H3ToolsManager::GetH3Ymax(G4int id) const -{ - auto h3d = GetTInFunction(id, "GetH3Ymax"); - if ( ! h3d ) return 0.; - - return GetMax(*h3d, kY); -} - -//_____________________________________________________________________________ -G4double G4H3ToolsManager::GetH3YWidth(G4int id) const -{ - auto h3d = GetTInFunction(id, "GetH3YWidth", true, false); - if ( ! h3d ) return 0.; - - return GetWidth(*h3d, kY, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4int G4H3ToolsManager::GetH3Nzbins(G4int id) const -{ - auto h3d = GetTInFunction(id, "GetH3NZbins"); - if ( ! h3d ) return 0; - - return GetNbins(*h3d, kZ); -} - -//_____________________________________________________________________________ -G4double G4H3ToolsManager::GetH3Zmin(G4int id) const -{ -// Returns xmin value with applied unit and histogram function - - auto h3d = GetTInFunction(id, "GetH3Zmin"); - if ( ! h3d ) return 0.; - - return GetMin(*h3d, kZ); -} - -//_____________________________________________________________________________ -G4double G4H3ToolsManager::GetH3Zmax(G4int id) const -{ - auto h3d = GetTInFunction(id, "GetH3Zmax"); - if ( ! h3d ) return 0.; - - return GetMax(*h3d, kZ); -} - -//_____________________________________________________________________________ -G4double G4H3ToolsManager::GetH3ZWidth(G4int id) const -{ - auto h3d = GetTInFunction(id, "GetH3ZWidth", true, false); - if ( ! h3d ) return 0.; - - return GetWidth(*h3d, kZ, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4bool G4H3ToolsManager::SetH3Title(G4int id, const G4String& title) -{ - auto h3d = GetTInFunction(id, "SetH3Title"); - if ( ! h3d ) return false; - - return SetTitle(*h3d, title); -} - -//_____________________________________________________________________________ -G4bool G4H3ToolsManager::SetH3XAxisTitle(G4int id, const G4String& title) -{ - auto h3d = GetTInFunction(id, "SetH3XAxisTitle"); - if ( ! h3d ) return false; - - return SetAxisTitle(*h3d, kX, title); -} - -//_____________________________________________________________________________ -G4bool G4H3ToolsManager::SetH3YAxisTitle(G4int id, const G4String& title) -{ - auto h3d = GetTInFunction(id, "SetH3YAxisTitle"); - if ( ! h3d ) return false; - - return SetAxisTitle(*h3d, kY, title); -} - -//_____________________________________________________________________________ -G4bool G4H3ToolsManager::SetH3ZAxisTitle(G4int id, const G4String& title) -{ - auto h3d = GetTInFunction(id, "SetH3ZAxisTitle"); - if ( ! h3d ) return false; - - return SetAxisTitle(*h3d, kZ, title); -} - -//_____________________________________________________________________________ -G4String G4H3ToolsManager::GetH3Title(G4int id) const -{ - auto h3d = GetTInFunction(id, "GetH3Title"); - if ( ! h3d ) return ""; - - return GetTitle(*h3d); -} - -//_____________________________________________________________________________ -G4String G4H3ToolsManager::GetH3XAxisTitle(G4int id) const -{ - auto h3d = GetTInFunction(id, "GetH3XAxisTitle"); - if ( ! h3d ) return ""; - - return GetAxisTitle(*h3d, kX, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4String G4H3ToolsManager::GetH3YAxisTitle(G4int id) const -{ - auto h3d = GetTInFunction(id, "GetH3YAxisTitle"); - if ( ! h3d ) return ""; - - return GetAxisTitle(*h3d, kY, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4String G4H3ToolsManager::GetH3ZAxisTitle(G4int id) const -{ - auto h3d = GetTInFunction(id, "GetH3ZAxisTitle"); - if ( ! h3d ) return ""; - - return GetAxisTitle(*h3d, kZ, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4bool G4H3ToolsManager::WriteOnAscii(std::ofstream& output) -{ -// Write selected objects on ASCII file - - // Do nothing if no histograms are selected - if ( ! fHnManager->IsAscii() ) return true; - - // Write h3 histograms - for ( G4int i=0; iGetFirstId(); - auto info = fHnManager->GetHnInformation(id,"WriteOnAscii"); - // skip writing if activation is enabled and H1 is inactivated - if ( ! info->GetAscii() ) continue; - auto h3 = fTVector[i]; - - Message(kVL3, "write on ascii", "h3d", info->GetName()); - - output << "\n 3D histogram " << id << ": " << h3->title() - << "\n \n \t \t \t X \t\t Y \t\t Z \t\t Bin Height" << G4endl; - - for (G4int j=0; j< G4int(h3->axis_x().bins()); ++j) { - for (G4int k=0; k< G4int(h3->axis_y().bins()); ++k) { - for (G4int l=0; l< G4int(h3->axis_y().bins()); ++l) { - output << " " << j << "\t" << k << "\t" << l << "\t" - << h3->axis_x().bin_center(j) << "\t" - << h3->axis_y().bin_center(k) << "\t" - << h3->axis_y().bin_center(l) << "\t" - << h3->bin_height(j, k, l) << G4endl; - } - } - } - } - - return output.good(); -} - -// -// public methods -// - -//_____________________________________________________________________________ -G4int G4H3ToolsManager::AddH3(const G4String& name, tools::histo::h3d* h3d) -{ - Message(kVL4, "add", "H3", name); - - // Add annotation - AddH3Annotation(h3d, "none", "none", "none", "none", "none", "none"); - // Add information - AddH3Information(name, "none", "none", "none", "none", "none", "none", - G4BinScheme::kLinear, G4BinScheme::kLinear, G4BinScheme::kLinear); - - // Register histogram - G4int id = RegisterT(h3d, name); - - Message(kVL2, "add", "H3", name); - - return id; -} - -//_____________________________________________________________________________ -void G4H3ToolsManager::AddH3Vector( - const std::vector& h3Vector) -{ - AddTVector(h3Vector); -} - -//_____________________________________________________________________________ -tools::histo::h3d* G4H3ToolsManager::GetH3(G4int id, G4bool warn, - G4bool onlyIfActive) const -{ - return GetTInFunction(id, "GetH3", warn, onlyIfActive); -} - diff --git a/source/analysis/hntools/src/G4P1ToolsManager.cc b/source/analysis/hntools/src/G4P1ToolsManager.cc deleted file mode 100644 index 8d52c742ab..0000000000 --- a/source/analysis/hntools/src/G4P1ToolsManager.cc +++ /dev/null @@ -1,597 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#include "G4P1ToolsManager.hh" -#include "G4AnalysisManagerState.hh" -#include "G4BaseHistoUtilities.hh" -#include "G4AnalysisUtilities.hh" - -#include "tools/histo/p1d" - -#include - -using namespace G4Analysis; -using std::to_string; - -// -// Constructors, destructor -// - -//_____________________________________________________________________________ -G4P1ToolsManager::G4P1ToolsManager(const G4AnalysisManagerState& state) - : G4VP1Manager(), - G4THnManager(state, "P1") -{} - -// -// Utility functions -// - -namespace { - -//_____________________________________________________________________________ -void UpdateP1Information(G4HnInformation* hnInformation, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName, - G4BinScheme xbinScheme) -{ - hnInformation->SetDimension(kX, xunitName, xfcnName, xbinScheme); - hnInformation->SetDimension(kY, yunitName, yfcnName, G4BinScheme::kLinear); -} - -//_____________________________________________________________________________ -void AddP1Annotation(tools::histo::p1d* p1d, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName) -{ - G4String xaxisTitle; - G4String yaxisTitle; - UpdateTitle(xaxisTitle, xunitName, xfcnName); - UpdateTitle(yaxisTitle, yunitName, yfcnName); - p1d->add_annotation(tools::histo::key_axis_x_title(), xaxisTitle); - p1d->add_annotation(tools::histo::key_axis_y_title(), yaxisTitle); -} - -//_____________________________________________________________________________ -tools::histo::p1d* CreateToolsP1(const G4String& title, - G4int nbins, G4double xmin, G4double xmax, - G4double ymin, G4double ymax, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& xbinSchemeName, - std::string_view className) -{ - auto xunit = GetUnitValue(xunitName); - auto yunit = GetUnitValue(yunitName); - auto xfcn = GetFunction(xfcnName); - auto yfcn = GetFunction(yfcnName); - auto xbinScheme = GetBinScheme(xbinSchemeName); - - if ( xbinScheme != G4BinScheme::kLog ) { - if ( xbinScheme == G4BinScheme::kUser ) { - // This should never happen, but let's make sure about it - // by issuing a warning - Warn("User binning scheme setting was ignored.\n" - "Linear binning will be applied with given (nbins, xmin, xmax) values.", - className, "CreateToolsP1"); - } - if ( ymin == 0. && ymax == 0.) { - return new tools::histo::p1d(title, - nbins, xfcn(xmin/xunit), xfcn(xmax/xunit)); - } else { - return new tools::histo::p1d(title, - nbins, xfcn(xmin/xunit), xfcn(xmax/xunit), - yfcn(ymin/yunit), yfcn(ymax/yunit)); - } - } - else { - // Compute edges - std::vector edges; - ComputeEdges(nbins, xmin, xmax, xunit, xfcn, xbinScheme, edges); - if ( ymin == 0. && ymax == 0.) { - return new tools::histo::p1d(title, edges); - } else { - return new tools::histo::p1d(title, edges, yfcn(ymin/yunit), yfcn(ymax/yunit)); - } - } -} - -//_____________________________________________________________________________ -tools::histo::p1d* CreateToolsP1(const G4String& title, - const std::vector& edges, - G4double ymin, G4double ymax, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName) -{ - auto xunit = GetUnitValue(xunitName); - auto yunit = GetUnitValue(yunitName); - auto xfcn = GetFunction(xfcnName); - auto yfcn = GetFunction(yfcnName); - - // Apply function - std::vector newEdges; - ComputeEdges(edges, xunit, xfcn, newEdges); - - return new tools::histo::p1d(title, newEdges, yfcn(ymin/yunit), yfcn(ymax/yunit)); -} - -//_____________________________________________________________________________ -void ConfigureToolsP1(tools::histo::p1d* p1d, - G4int nbins, G4double xmin, G4double xmax, - G4double ymin, G4double ymax, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& xbinSchemeName, - std::string_view className) -{ - auto xunit = GetUnitValue(xunitName); - auto yunit = GetUnitValue(yunitName); - auto xfcn = GetFunction(xfcnName); - auto yfcn = GetFunction(yfcnName); - auto xbinScheme = GetBinScheme(xbinSchemeName); - - if ( xbinScheme != G4BinScheme::kLog ) { - if ( xbinScheme == G4BinScheme::kUser ) { - // This should never happen, but let's make sure about it - // by issuing a warning - Warn("User binning scheme setting was ignored.\n" - "Linear binning will be applied with given (nbins, xmin, xmax) values.", - className, "ConfigureToolsP1"); - } - if ( ymin == 0. && ymax == 0. ) { - p1d->configure(nbins, xfcn(xmin/xunit), xfcn(xmax/xunit)); - } else { - p1d->configure(nbins, xfcn(xmin/xunit), xfcn(xmax/xunit), - yfcn(ymin/yunit), yfcn(ymax/yunit)); - } - } - else { - // Compute bins - std::vector edges; - ComputeEdges(nbins, xmin, xmax, xunit, xfcn, xbinScheme, edges); - if ( ymin == 0. && ymax == 0. ) { - p1d->configure(edges); - } else { - p1d->configure(edges, yfcn(ymin/yunit), yfcn(ymax/yunit)); - } - } -} - -//_____________________________________________________________________________ -void ConfigureToolsP1(tools::histo::p1d* p1d, - const std::vector& edges, - G4double ymin, G4double ymax, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName) -{ - // Apply function to edges - auto xunit = GetUnitValue(xunitName); - auto yunit = GetUnitValue(yunitName); - auto xfcn = GetFunction(xfcnName); - auto yfcn = GetFunction(yfcnName); - std::vector newEdges; - ComputeEdges(edges, xunit, xfcn, newEdges); - - if ( ymin == 0. && ymax == 0. ) { - p1d->configure(newEdges); - } else { - p1d->configure(newEdges, yfcn(ymin/yunit), yfcn(ymax/yunit)); - } -} - -} - -// -// private methods -// - -//_____________________________________________________________________________ -void G4P1ToolsManager::AddP1Information(const G4String& name, - const G4String& xunitName, - const G4String& yunitName, - const G4String& xfcnName, - const G4String& yfcnName, - G4BinScheme xbinScheme) const -{ - auto hnInformation = fHnManager->AddHnInformation(name, fkDimension); - hnInformation->AddDimension(xunitName, xfcnName, xbinScheme); - hnInformation->AddDimension(yunitName, yfcnName, G4BinScheme::kLinear); -} - -// -// protected methods -// - -//_____________________________________________________________________________ -G4int G4P1ToolsManager::CreateP1(const G4String& name, const G4String& title, - G4int nbins, G4double xmin, G4double xmax, - G4double ymin, G4double ymax, - const G4String& xunitName, const G4String& yunitName, - const G4String& xfcnName, const G4String& yfcnName, - const G4String& xbinSchemeName) -{ - Message(kVL4, "create", "P1", name); - - tools::histo::p1d* p1d - = CreateToolsP1(title, nbins, xmin, xmax, ymin, ymax, - xunitName, yunitName, xfcnName, yfcnName, - xbinSchemeName, fkClass); - - // Add annotation - AddP1Annotation(p1d, xunitName, yunitName, xfcnName, yfcnName); - - // Save P1 information - auto xbinScheme = GetBinScheme(xbinSchemeName); - AddP1Information( - name, xunitName, yunitName, xfcnName, yfcnName, xbinScheme); - - // Register profile - G4int id = RegisterT(p1d, name); - - Message(kVL2, "create", "P1", name); - - return id; -} - -//_____________________________________________________________________________ -G4int G4P1ToolsManager::CreateP1(const G4String& name, const G4String& title, - const std::vector& edges, - G4double ymin, G4double ymax, - const G4String& xunitName, const G4String& yunitName, - const G4String& xfcnName, const G4String& yfcnName) -{ - Message(kVL4, "create", "P1", name); - - tools::histo::p1d* p1d - = CreateToolsP1(title, edges, ymin, ymax, - xunitName, yunitName, xfcnName, yfcnName); - - // Add annotation - AddP1Annotation(p1d, xunitName, yunitName, xfcnName, yfcnName); - - // Save P1 information - AddP1Information( - name, xunitName, yunitName, xfcnName, yfcnName, G4BinScheme::kUser); - - // Register profile - G4int id = RegisterT(p1d, name); - - Message(kVL2, "create", "P1", name); - - return id; -} - -//_____________________________________________________________________________ -G4bool G4P1ToolsManager::SetP1(G4int id, - G4int nbins, G4double xmin, G4double xmax, - G4double ymin, G4double ymax, - const G4String& xunitName, const G4String& yunitName, - const G4String& xfcnName, const G4String& yfcnName, - const G4String& xbinSchemeName) -{ - auto p1d = GetTInFunction(id, "SetP1", false, false); - if ( ! p1d ) return false; - - auto info = fHnManager->GetHnInformation(id,"SetP1"); - - Message(kVL4, "configure", "P1", info->GetName()); - - // Configure tools p1 - ConfigureToolsP1( - p1d, nbins, xmin, xmax, ymin, ymax, - xunitName, yunitName, xfcnName, yfcnName, xbinSchemeName, fkClass); - - // Add annotation - AddP1Annotation(p1d, xunitName, yunitName, xfcnName, yfcnName); - - // Update information - auto xbinScheme = GetBinScheme(xbinSchemeName); - UpdateP1Information( - info, xunitName, yunitName, xfcnName, yfcnName, xbinScheme); - - // Set activation - fHnManager->SetActivation(id, true); - - return true; -} - -//_____________________________________________________________________________ -G4bool G4P1ToolsManager::SetP1(G4int id, - const std::vector& edges, - G4double ymin, G4double ymax, - const G4String& xunitName, const G4String& yunitName, - const G4String& xfcnName, const G4String& yfcnName) -{ - auto p1d = GetTInFunction(id, "SetP1", false, false); - if ( ! p1d ) return false; - - auto info = fHnManager->GetHnInformation(id,"SetP1"); - - Message(kVL4, "configure", "P1", info->GetName()); - - // Configure tools p1 - ConfigureToolsP1(p1d, edges, ymin, ymax, - xunitName, yunitName, xfcnName, yfcnName); - - // Add annotation - AddP1Annotation(p1d, xunitName, yunitName, xfcnName, yfcnName); - - // Update information - UpdateP1Information( - info, xunitName, yunitName, xfcnName, yfcnName, G4BinScheme::kUser); - - // Set activation - fHnManager->SetActivation(id, true); - - return true; -} - - -//_____________________________________________________________________________ -G4bool G4P1ToolsManager::ScaleP1(G4int id, G4double factor) -{ - auto p1d = GetTInFunction(id, "ScaleP1", false, false); - if ( ! p1d ) return false; - - return p1d->scale(factor); -} - -//_____________________________________________________________________________ -G4bool G4P1ToolsManager::FillP1(G4int id, G4double xvalue, G4double yvalue, - G4double weight) -{ - auto p1d = GetTInFunction(id, "FillP1", true, false); - if ( ! p1d ) return false; - - if ( fState.GetIsActivation() && ( ! fHnManager->GetActivation(id) ) ) { - //G4cout << "Skipping FillP1 for " << id << G4endl; - return false; - } - - auto xInfo - = fHnManager->GetHnDimensionInformation(id, kX, "FillP1"); - auto yInfo - = fHnManager->GetHnDimensionInformation(id, kY, "FillP1"); - - p1d->fill(xInfo->fFcn(xvalue/xInfo->fUnit), - yInfo->fFcn(yvalue/yInfo->fUnit), weight); - - if ( IsVerbose(kVL4) ) { - Message(kVL4, "fill", "P1", - " id " + to_string(id) + - " xvalue " + to_string(xvalue) + - " xfcn(xvalue/xunit) " + to_string(xInfo->fFcn(xvalue/xInfo->fUnit)) + - " yvalue " + to_string(yvalue) + - " yfcn(yvalue/yunit) " + to_string(yInfo->fFcn(yvalue/yInfo->fUnit)) + - " weight " + to_string(weight)); - } - - return true; -} - -//_____________________________________________________________________________ -G4int G4P1ToolsManager::GetP1Id(const G4String& name, G4bool warn) const -{ - return GetTId(name, warn); -} - -//_____________________________________________________________________________ -G4int G4P1ToolsManager::GetP1Nbins(G4int id) const -{ - auto p1d = GetTInFunction(id, "GetP1Nbins"); - if ( ! p1d ) return 0; - - return GetNbins(*p1d, kX); -} - -//_____________________________________________________________________________ -G4double G4P1ToolsManager::GetP1Xmin(G4int id) const -{ -// Returns xmin value with applied unit and profile function - - auto p1d = GetTInFunction(id, "GetP1Xmin"); - if ( ! p1d ) return 0.; - - return GetMin(*p1d, kX); -} - -//_____________________________________________________________________________ -G4double G4P1ToolsManager::GetP1Xmax(G4int id) const -{ - auto p1d = GetTInFunction(id, "GetP1Xmax"); - if ( ! p1d ) return 0.; - - return GetMax(*p1d, kX); -} - -//_____________________________________________________________________________ -G4double G4P1ToolsManager::GetP1XWidth(G4int id) const -{ - auto p1d = GetTInFunction(id, "GetP1XWidth", true, false); - if ( ! p1d ) return 0.; - - return GetWidth(*p1d, kX, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4double G4P1ToolsManager::GetP1Ymin(G4int id) const -{ -// Returns xmin value with applied unit and profile function - - auto p1d = GetTInFunction(id, "GetP1Ymin"); - if ( ! p1d ) return 0.; - - return p1d->min_v(); -} - -//_____________________________________________________________________________ -G4double G4P1ToolsManager::GetP1Ymax(G4int id) const -{ - auto p1d = GetTInFunction(id, "GetP1Ymax"); - if ( ! p1d ) return 0.; - - return p1d->max_v(); -} - -//_____________________________________________________________________________ -G4bool G4P1ToolsManager::SetP1Title(G4int id, const G4String& title) -{ - auto p1d = GetTInFunction(id, "SetP1Title"); - if ( ! p1d ) return false; - - return SetTitle(*p1d, title); -} - -//_____________________________________________________________________________ -G4bool G4P1ToolsManager::SetP1XAxisTitle(G4int id, const G4String& title) -{ - auto p1d = GetTInFunction(id, "SetP1XAxisTitle"); - if ( ! p1d ) return false; - - return SetAxisTitle(*p1d, kX, title); -} - -//_____________________________________________________________________________ -G4bool G4P1ToolsManager::SetP1YAxisTitle(G4int id, const G4String& title) -{ - auto p1d = GetTInFunction(id, "SetP1YAxisTitle"); - if ( ! p1d ) return false; - - return SetAxisTitle(*p1d, kY, title); -} - -//_____________________________________________________________________________ -G4String G4P1ToolsManager::GetP1Title(G4int id) const -{ - auto p1d = GetTInFunction(id, "GetP1Title"); - if ( ! p1d ) return ""; - - return GetTitle(*p1d); -} - - -//_____________________________________________________________________________ -G4String G4P1ToolsManager::GetP1XAxisTitle(G4int id) const -{ - auto p1d = GetTInFunction(id, "GetP1XAxisTitle"); - if ( ! p1d ) return ""; - - return GetAxisTitle(*p1d, kX, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4String G4P1ToolsManager::GetP1YAxisTitle(G4int id) const -{ - auto p1d = GetTInFunction(id, "GetP1YAxisTitle"); - if ( ! p1d ) return ""; - - return GetAxisTitle(*p1d, kY, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4bool G4P1ToolsManager::WriteOnAscii(std::ofstream& output) -{ -// Write selected objects on ASCII file - - // Do nothing if no histograms are selected - if ( ! fHnManager->IsAscii() ) return true; - - // Write p1 histograms - for ( G4int i=0; iGetFirstId(); - auto info = fHnManager->GetHnInformation(id,"WriteOnAscii"); - // skip writing if activation is enabled and H1 is inactivated - if ( ! info->GetAscii() ) continue; - auto p1 = fTVector[i]; - - Message(kVL3, "write on ascii", "p1d", info->GetName()); - - output << "\n 1D profile " << id << ": " << p1->title() - << "\n \n \t X \t\t MeanY" << G4endl; - - for (G4int j=0; j< G4int(p1->axis().bins()); ++j) { - auto sw = p1->bin_Sw(j); - auto svw = p1->bin_Svw(j); - auto mean = ( sw != 0. ) ? (svw / sw) : 0.; - output << " " << j << "\t" - << p1->axis().bin_center(j) << "\t" - << mean << G4endl; - } - } - - return output.good(); -} - -// -// public methods -// - -//_____________________________________________________________________________ -G4int G4P1ToolsManager::AddP1(const G4String& name, tools::histo::p1d* p1d) -{ - Message(kVL4, "add", "P1", name); - - // Add annotation - AddP1Annotation(p1d, "none", "none", "none", "none"); - // Add information - AddP1Information(name, "none", "none", "none", "none", G4BinScheme::kLinear); - - // Register profile - auto id = RegisterT(p1d, name); - - Message(kVL2, "add", "P1", name); - - return id; -} - -//_____________________________________________________________________________ -void G4P1ToolsManager::AddP1Vector( - const std::vector& p1Vector) -{ - AddTVector(p1Vector); -} - -//_____________________________________________________________________________ -tools::histo::p1d* G4P1ToolsManager::GetP1(G4int id, G4bool warn, - G4bool onlyIfActive) const -{ - return GetTInFunction(id, "GetP1", warn, onlyIfActive); -} - diff --git a/source/analysis/hntools/src/G4P2ToolsManager.cc b/source/analysis/hntools/src/G4P2ToolsManager.cc deleted file mode 100644 index 3986edaec1..0000000000 --- a/source/analysis/hntools/src/G4P2ToolsManager.cc +++ /dev/null @@ -1,752 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#include "G4P2ToolsManager.hh" -#include "G4AnalysisManagerState.hh" -#include "G4BaseHistoUtilities.hh" -#include "G4AnalysisUtilities.hh" - -#include "tools/histo/p2d" - -#include - -using namespace G4Analysis; -using std::to_string; - -//_____________________________________________________________________________ -G4P2ToolsManager::G4P2ToolsManager(const G4AnalysisManagerState& state) - : G4VP2Manager(), - G4THnManager(state, "P2") -{} - -// -// Utility functions -// - -namespace { - -//_____________________________________________________________________________ -void UpdateP2Information(G4HnInformation* hnInformation, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& zfcnName, - G4BinScheme xbinScheme, - G4BinScheme ybinScheme) -{ - hnInformation->SetDimension(kX, xunitName, xfcnName, xbinScheme); - hnInformation->SetDimension(kY, yunitName, yfcnName, ybinScheme); - hnInformation->SetDimension(kZ, zunitName, zfcnName, G4BinScheme::kLinear); -} - -//_____________________________________________________________________________ -void AddP2Annotation(tools::histo::p2d* p2d, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& zfcnName) -{ - G4String xaxisTitle; - G4String yaxisTitle; - G4String zaxisTitle; - UpdateTitle(xaxisTitle, xunitName, xfcnName); - UpdateTitle(yaxisTitle, yunitName, yfcnName); - UpdateTitle(zaxisTitle, zunitName, zfcnName); - p2d->add_annotation(tools::histo::key_axis_x_title(), xaxisTitle); - p2d->add_annotation(tools::histo::key_axis_y_title(), yaxisTitle); - p2d->add_annotation(tools::histo::key_axis_z_title(), zaxisTitle); -} - -//_____________________________________________________________________________ -tools::histo::p2d* CreateToolsP2( - const G4String& title, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4double zmin, G4double zmax, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& zfcnName, - const G4String& yfcnName, - const G4String& xbinSchemeName, - const G4String& ybinSchemeName, - std::string_view className) -{ - auto xunit = GetUnitValue(xunitName); - auto yunit = GetUnitValue(yunitName); - auto zunit = GetUnitValue(zunitName); - auto xfcn = GetFunction(xfcnName); - auto yfcn = GetFunction(yfcnName); - auto zfcn = GetFunction(zfcnName); - auto xbinScheme = GetBinScheme(xbinSchemeName); - auto ybinScheme = GetBinScheme(ybinSchemeName); - - if ( xbinScheme != G4BinScheme::kLog && ybinScheme != G4BinScheme::kLog) { - if ( xbinScheme == G4BinScheme::kUser || ybinScheme == G4BinScheme::kUser ) { - // This should never happen, but let's make sure about it - // by issuing a warning - Warn("User binning scheme setting was ignored.\n" - "Linear binning will be applied with given (nbins, xmin, xmax) values.", - className, "CreateToolsP2"); - } - if ( zmin == 0. && zmax == 0.) { - return new tools::histo::p2d(title, - nxbins, xfcn(xmin/xunit), xfcn(xmax/xunit), - nybins, yfcn(ymin/yunit), yfcn(ymax/yunit)); - // p2 objects are deleted in destructor and reset when - // closing a file. - } else { - return new tools::histo::p2d(title, - nxbins, xfcn(xmin/xunit), xfcn(xmax/xunit), - nybins, yfcn(ymin/yunit), yfcn(ymax/yunit), - zfcn(zmin/zunit), zfcn(zmax/zunit)); - // p2 objects are deleted in destructor and reset when - // closing a file. - } - } - else { - // Compute edges - std::vector xedges; - ComputeEdges(nxbins, xmin, xmax, xunit, xfcn, xbinScheme, xedges); - std::vector yedges; - ComputeEdges(nybins, ymin, ymax, yunit, yfcn, ybinScheme, yedges); - if ( zmin == 0. && zmax == 0.) { - return new tools::histo::p2d(title, xedges, yedges); - } else { - return new tools::histo::p2d(title, xedges, yedges, - zfcn(zmin/zunit), zfcn(zmax/zunit)); - } - } -} - -//_____________________________________________________________________________ -tools::histo::p2d* CreateToolsP2( - const G4String& title, - const std::vector& xedges, - const std::vector& yedges, - G4double zmin, G4double zmax, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& zfcnName) -{ - auto xunit = GetUnitValue(xunitName); - auto yunit = GetUnitValue(yunitName); - auto zunit = GetUnitValue(zunitName); - auto xfcn = GetFunction(xfcnName); - auto yfcn = GetFunction(yfcnName); - auto zfcn = GetFunction(zfcnName); - - // Apply function - std::vector xnewEdges; - ComputeEdges(xedges, xunit, xfcn, xnewEdges); - std::vector ynewEdges; - ComputeEdges(yedges, yunit, yfcn, ynewEdges); - - if ( zmin == 0. && zmax == 0.) { - return new tools::histo::p2d(title, xnewEdges, ynewEdges); - // p2 objects are deleted in destructor and reset when - // closing a file. - } else { - return new tools::histo::p2d(title, xnewEdges, ynewEdges, - zfcn(zmin/zunit), zfcn(zmax/zunit)); - // p2 objects are deleted in destructor and reset when - // closing a file. - } -} - -//_____________________________________________________________________________ -void ConfigureToolsP2(tools::histo::p2d* p2d, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4double zmin, G4double zmax, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& zfcnName, - const G4String& xbinSchemeName, - const G4String& ybinSchemeName, - std::string_view className) -{ - auto xunit = GetUnitValue(xunitName); - auto yunit = GetUnitValue(yunitName); - auto zunit = GetUnitValue(zunitName); - auto xfcn = GetFunction(xfcnName); - auto yfcn = GetFunction(yfcnName); - auto zfcn = GetFunction(zfcnName); - auto xbinScheme = GetBinScheme(xbinSchemeName); - auto ybinScheme = GetBinScheme(ybinSchemeName); - - if ( xbinScheme != G4BinScheme::kLog && ybinScheme != G4BinScheme::kLog) { - if ( xbinScheme == G4BinScheme::kUser || ybinScheme == G4BinScheme::kUser) { - // This should never happen, but let's make sure about it - // by issuing a warning - Warn("User binning scheme setting was ignored.\n" - "Linear binning will be applied with given (nbins, xmin, xmax) values.", - className, "ConfigureToolsP2"); - } - if ( zmin == 0. && zmax == 0. ) { - p2d->configure(nxbins, xfcn(xmin/xunit), xfcn(xmax/xunit), - nybins, yfcn(ymin/yunit), yfcn(ymax/yunit)); - } else { - p2d->configure(nxbins, xfcn(xmin/xunit), xfcn(xmax/xunit), - nybins, yfcn(ymin/yunit), yfcn(ymax/yunit), - zfcn(zmin/zunit), zfcn(zmax/zunit)); - } - } - else { - // Compute bins - std::vector xedges; - ComputeEdges(nxbins, xmin, xmax, xunit, xfcn, xbinScheme, xedges); - std::vector yedges; - ComputeEdges(nybins, ymin, ymax, yunit, yfcn, ybinScheme, yedges); - if ( zmin == 0. && zmax == 0. ) { - p2d->configure(xedges, yedges); - } else { - p2d->configure(xedges, yedges, zfcn(zmin/zunit), zfcn(zmax/zunit)); - } - } -} - -//_____________________________________________________________________________ -void ConfigureToolsP2(tools::histo::p2d* p2d, - const std::vector& xedges, - const std::vector& yedges, - G4double zmin, G4double zmax, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& zfcnName) -{ - // Apply function to edges - auto xunit = GetUnitValue(xunitName); - auto xfcn = GetFunction(xfcnName); - std::vector xnewEdges; - ComputeEdges(xedges, xunit, xfcn, xnewEdges); - - auto yunit = GetUnitValue(yunitName); - auto yfcn = GetFunction(yfcnName); - std::vector ynewEdges; - ComputeEdges(yedges, yunit, yfcn, ynewEdges); - - auto zunit = GetUnitValue(zunitName); - auto zfcn = GetFunction(zfcnName); - if ( zmin == 0. && zmax == 0. ) { - p2d->configure(xnewEdges, ynewEdges); - } else { - p2d->configure(xnewEdges, ynewEdges, zfcn(zmin/zunit), zfcn(zmax/zunit)); - } -} - -} - - -// -// private methods -// - -//_____________________________________________________________________________ -void G4P2ToolsManager::AddP2Information(const G4String& name, - const G4String& xunitName, - const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, - const G4String& yfcnName, - const G4String& zfcnName, - G4BinScheme xbinScheme, - G4BinScheme ybinScheme) const -{ - auto hnInformation = fHnManager->AddHnInformation(name, fkDimension); - hnInformation->AddDimension(xunitName, xfcnName, xbinScheme); - hnInformation->AddDimension(yunitName, yfcnName, ybinScheme); - hnInformation->AddDimension(zunitName, zfcnName, G4BinScheme::kLinear); -} - -// -// protected methods -// - -//_____________________________________________________________________________ -G4int G4P2ToolsManager::CreateP2(const G4String& name, const G4String& title, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4double zmin, G4double zmax, - const G4String& xunitName, const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, const G4String& yfcnName, - const G4String& zfcnName, - const G4String& xbinSchemeName, - const G4String& ybinSchemeName) - -{ - Message(kVL4, "create", "P2", name); - - tools::histo::p2d* p2d - = CreateToolsP2(title, - nxbins, xmin, xmax, nybins, ymin, ymax, zmin, zmax, - xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName, - xbinSchemeName, ybinSchemeName, fkClass); - - // Add annotation - AddP2Annotation(p2d, xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName); - - // Save P2 information - auto xbinScheme = GetBinScheme(xbinSchemeName); - auto ybinScheme = GetBinScheme(ybinSchemeName); - AddP2Information( - name, xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName, - xbinScheme, ybinScheme); - - // Register profile - G4int id = RegisterT(p2d, name); - - Message(kVL2, "create", "P2", name); - - return id; -} - -//_____________________________________________________________________________ -G4int G4P2ToolsManager::CreateP2(const G4String& name, const G4String& title, - const std::vector& xedges, - const std::vector& yedges, - G4double zmin, G4double zmax, - const G4String& xunitName, const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, const G4String& yfcnName, - const G4String& zfcnName) - -{ - Message(kVL4, "create", "P2", name); - - tools::histo::p2d* p2d - = CreateToolsP2(title, xedges, yedges, zmin, zmax, - xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName); - - // Add annotation - AddP2Annotation( - p2d, xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName); - - // Save P2 information - AddP2Information( - name, xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName, - G4BinScheme::kUser, G4BinScheme::kUser); - - // Register profile - G4int id = RegisterT(p2d, name); - - Message(kVL2, "create", "P2", name); - - return id; -} - -//_____________________________________________________________________________ -G4bool G4P2ToolsManager::SetP2(G4int id, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4double zmin, G4double zmax, - const G4String& xunitName, const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, const G4String& yfcnName, - const G4String& zfcnName, - const G4String& xbinSchemeName, - const G4String& ybinSchemeName) -{ - auto p2d = GetTInFunction(id, "SetP2", false, false); - if ( ! p2d ) return false; - - auto info = fHnManager->GetHnInformation(id, "SetP2"); - - Message(kVL4, "configure", "P2", info->GetName()); - - // Configure tools p2 - ConfigureToolsP2( - p2d, nxbins, xmin, xmax, nybins, ymin, ymax, zmin, zmax, - xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName, - xbinSchemeName, ybinSchemeName, fkClass); - - // Add annotation - AddP2Annotation(p2d, xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName); - - // Update information - auto xbinScheme = GetBinScheme(xbinSchemeName); - auto ybinScheme = GetBinScheme(ybinSchemeName); - UpdateP2Information( - info, xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName, - xbinScheme, ybinScheme); - - // Set activation - fHnManager->SetActivation(id, true); - - return true; -} - -//_____________________________________________________________________________ -G4bool G4P2ToolsManager::SetP2(G4int id, - const std::vector& xedges, - const std::vector& yedges, - G4double zmin, G4double zmax, - const G4String& xunitName, const G4String& yunitName, - const G4String& zunitName, - const G4String& xfcnName, const G4String& yfcnName, - const G4String& zfcnName) -{ - auto p2d = GetTInFunction(id, "SetP2", false, false); - if ( ! p2d ) return false; - - auto info = fHnManager->GetHnInformation(id, "SetP2"); - - Message(kVL4, "configure", "P2", info->GetName()); - - // Configure tools p2 - ConfigureToolsP2(p2d, xedges, yedges, zmin, zmax, - xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName); - - // Add annotation - AddP2Annotation(p2d, xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName); - - // Update information - UpdateP2Information( - info, xunitName, yunitName, zunitName, xfcnName, yfcnName, zfcnName, - G4BinScheme::kUser, G4BinScheme::kUser); - - // Set activation - fHnManager->SetActivation(id, true); - - return true; -} - -//_____________________________________________________________________________ -G4bool G4P2ToolsManager::ScaleP2(G4int id, G4double factor) -{ - auto p2d = GetTInFunction(id, "ScaleP2", false, false); - if ( ! p2d ) return false; - - return p2d->scale(factor); -} - -//_____________________________________________________________________________ -G4bool G4P2ToolsManager::FillP2(G4int id, - G4double xvalue, G4double yvalue, G4double zvalue, - G4double weight) -{ - auto p2d = GetTInFunction(id, "FillP2", true, false); - if ( ! p2d ) return false; - - if ( fState.GetIsActivation() && ( ! fHnManager->GetActivation(id) ) ) { - return false; - } - - auto xInfo - = fHnManager->GetHnDimensionInformation(id, kX, "FillP2"); - auto yInfo - = fHnManager->GetHnDimensionInformation(id, kY, "FillP2"); - auto zInfo - = fHnManager->GetHnDimensionInformation(id, kZ, "FillP2"); - - p2d->fill(xInfo->fFcn(xvalue/xInfo->fUnit), - yInfo->fFcn(yvalue/yInfo->fUnit), - zInfo->fFcn(zvalue/zInfo->fUnit), weight); - - if ( IsVerbose(kVL4) ) { - Message(kVL4, "fill", "P2", - " id " + to_string(id) + - " xvalue " + to_string(xvalue) + - " xfcn(xvalue/xunit) " + to_string(xInfo->fFcn(xvalue/xInfo->fUnit)) + - " yvalue " + to_string(yvalue) + - " yfcn(yvalue/yunit) " + to_string(yInfo->fFcn(yvalue/yInfo->fUnit)) + - " zvalue " + to_string(zvalue) + - " zfcn(zvalue/zunit) " + to_string(zInfo->fFcn(zvalue/zInfo->fUnit)) + - " weight " + to_string(weight)); - } - - return true; -} - -//_____________________________________________________________________________ -G4int G4P2ToolsManager::GetP2Id(const G4String& name, G4bool warn) const -{ - return GetTId(name, warn); -} - -//_____________________________________________________________________________ -G4int G4P2ToolsManager::GetP2Nxbins(G4int id) const -{ - auto p2d = GetTInFunction(id, "GetP2NXbins"); - if ( ! p2d ) return 0; - - return GetNbins(*p2d, kX); -} - -//_____________________________________________________________________________ -G4double G4P2ToolsManager::GetP2Xmin(G4int id) const -{ -// Returns xmin value with applied unit and profile function - - auto p2d = GetTInFunction(id, "GetP2Xmin"); - if ( ! p2d ) return 0.; - - return GetMin(*p2d, kX); -} - -//_____________________________________________________________________________ -G4double G4P2ToolsManager::GetP2Xmax(G4int id) const -{ - auto p2d = GetTInFunction(id, "GetP2Xmax"); - if ( ! p2d ) return 0.; - - return GetMax(*p2d, kX); -} - -//_____________________________________________________________________________ -G4double G4P2ToolsManager::GetP2XWidth(G4int id) const -{ - auto p2d = GetTInFunction(id, "GetP2XWidth", true, false); - if ( ! p2d ) return 0.; - - return GetWidth(*p2d, kX, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4int G4P2ToolsManager::GetP2Nybins(G4int id) const -{ - auto p2d = GetTInFunction(id, "GetP2NYbins"); - if ( ! p2d ) return 0; - - return GetNbins(*p2d, kY); -} - -//_____________________________________________________________________________ -G4double G4P2ToolsManager::GetP2Ymin(G4int id) const -{ -// Returns xmin value with applied unit and profile function - - auto p2d = GetTInFunction(id, "GetP2Ymin"); - if ( ! p2d ) return 0.; - - return GetMin(*p2d, kY); -} - -//_____________________________________________________________________________ -G4double G4P2ToolsManager::GetP2Ymax(G4int id) const -{ - auto p2d = GetTInFunction(id, "GetP2Ymax"); - if ( ! p2d ) return 0.; - - return GetMax(*p2d, kY); -} - -//_____________________________________________________________________________ -G4double G4P2ToolsManager::GetP2YWidth(G4int id) const -{ - auto p2d = GetTInFunction(id, "GetP2YWidth", true, false); - if ( ! p2d ) return 0.; - - return GetWidth(*p2d, kY, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4double G4P2ToolsManager::GetP2Zmin(G4int id) const -{ -// Returns xmin value with applied unit and profile function - - auto p2d = GetTInFunction(id, "GetP2Zmin"); - if ( ! p2d ) return 0.; - - return GetMin(*p2d, kZ); -} - -//_____________________________________________________________________________ -G4double G4P2ToolsManager::GetP2Zmax(G4int id) const -{ - auto p2d = GetTInFunction(id, "GetP2Zmax"); - if ( ! p2d ) return 0.; - - return GetMax(*p2d, kZ); -} - -//_____________________________________________________________________________ -G4bool G4P2ToolsManager::SetP2Title(G4int id, const G4String& title) -{ - auto p2d = GetTInFunction(id, "SetP2Title"); - if ( ! p2d ) return false; - - return SetTitle(*p2d, title); -} - -//_____________________________________________________________________________ -G4bool G4P2ToolsManager::SetP2XAxisTitle(G4int id, const G4String& title) -{ - auto p2d = GetTInFunction(id, "SetP2XAxisTitle"); - if ( ! p2d ) return false; - - return SetAxisTitle(*p2d, kX, title); -} - -//_____________________________________________________________________________ -G4bool G4P2ToolsManager::SetP2YAxisTitle(G4int id, const G4String& title) -{ - auto p2d = GetTInFunction(id, "SetP2YAxisTitle"); - if ( ! p2d ) return false; - - return SetAxisTitle(*p2d, kY, title); -} - -//_____________________________________________________________________________ -G4bool G4P2ToolsManager::SetP2ZAxisTitle(G4int id, const G4String& title) -{ - auto p2d = GetTInFunction(id, "SetP2ZAxisTitle"); - if ( ! p2d ) return false; - - return SetAxisTitle(*p2d, kZ, title); -} - -//_____________________________________________________________________________ -G4String G4P2ToolsManager::GetP2Title(G4int id) const -{ - auto p2d = GetTInFunction(id, "GetP2Title"); - if ( ! p2d ) return ""; - - return GetTitle(*p2d); -} - -//_____________________________________________________________________________ -G4String G4P2ToolsManager::GetP2XAxisTitle(G4int id) const -{ - auto p2d = GetTInFunction(id, "GetP2XAxisTitle"); - if ( ! p2d ) return ""; - - return GetAxisTitle(*p2d, kX, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4String G4P2ToolsManager::GetP2YAxisTitle(G4int id) const -{ - auto p2d = GetTInFunction(id, "GetP2YAxisTitle"); - if ( ! p2d ) return ""; - - return GetAxisTitle(*p2d, kY, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4String G4P2ToolsManager::GetP2ZAxisTitle(G4int id) const -{ - auto p2d = GetTInFunction(id, "GetP2ZAxisTitle"); - if ( ! p2d ) return ""; - - return GetAxisTitle(*p2d, kZ, fHnManager->GetHnType()); -} - -//_____________________________________________________________________________ -G4bool G4P2ToolsManager::WriteOnAscii(std::ofstream& output) -{ -// Write selected objects on ASCII file - - // Do nothing if no histograms are selected - if ( ! fHnManager->IsAscii() ) return true; - - // Write p2 histograms - for ( G4int i=0; iGetFirstId(); - auto info = fHnManager->GetHnInformation(id,"WriteOnAscii"); - // skip writing if activation is enabled and H1 is inactivated - if ( ! info->GetAscii() ) continue; - auto p2 = fTVector[i]; - - Message(kVL3, "write on ascii", "p2d", info->GetName()); - - output << "\n 2D profile " << id << ": " << p2->title() - << "\n \n \t \t X \t\t Y \t\t MeanZ" << G4endl; - - for (G4int j=0; j< G4int(p2->axis_x().bins()); ++j) { - for (G4int k=0; k< G4int(p2->axis_y().bins()); ++k) { - auto sw = p2->bin_Sw(j, k); - auto svw = p2->bin_Svw(j, k); - auto mean = ( sw != 0. ) ? (svw / sw) : 0.; - output << " " << j << "\t" << k << "\t" - << p2->axis_x().bin_center(j) << "\t" - << p2->axis_y().bin_center(k) << "\t" - << mean << G4endl; - } - } - } - - return output.good(); -} - -// -// public methods -// - -//_____________________________________________________________________________ -G4int G4P2ToolsManager::AddP2(const G4String& name, tools::histo::p2d* p2d) -{ - Message(kVL4, "add", "P2", name); - - // Add annotation - AddP2Annotation(p2d, "none", "none", "none", "none", "none", "none"); - // Add information - AddP2Information(name, "none", "none", "none", "none", "none", "none", - G4BinScheme::kLinear, G4BinScheme::kLinear); - - // Register profile - G4int id = RegisterT(p2d, name); - - Message(kVL2, "add", "P2", name); - - return id; -} - -//_____________________________________________________________________________ -void G4P2ToolsManager::AddP2Vector( - const std::vector& p2Vector) -{ - AddTVector(p2Vector); -} - -//_____________________________________________________________________________ -tools::histo::p2d* G4P2ToolsManager::GetP2(G4int id, G4bool warn, - G4bool onlyIfActive) const -{ - return GetTInFunction(id, "GetP2", warn, onlyIfActive); -} - diff --git a/source/analysis/management/src/G4PlotManager.cc b/source/analysis/hntools/src/G4PlotManager.cc similarity index 100% rename from source/analysis/management/src/G4PlotManager.cc rename to source/analysis/hntools/src/G4PlotManager.cc diff --git a/source/analysis/management/src/G4PlotMessenger.cc b/source/analysis/hntools/src/G4PlotMessenger.cc similarity index 54% rename from source/analysis/management/src/G4PlotMessenger.cc rename to source/analysis/hntools/src/G4PlotMessenger.cc index 4f36a9a669..2859db1599 100644 --- a/source/analysis/management/src/G4PlotMessenger.cc +++ b/source/analysis/hntools/src/G4PlotMessenger.cc @@ -29,13 +29,11 @@ #include "G4PlotMessenger.hh" #include "G4PlotParameters.hh" #include "G4AnalysisUtilities.hh" -#include "G4AnalysisMessengerHelper.hh" #include "G4UIdirectory.hh" #include "G4UIcommand.hh" #include "G4UIparameter.hh" #include "G4UIcmdWithAString.hh" -//#include "G4Tokenizer.hh" #include @@ -44,12 +42,10 @@ using std::to_string; //_____________________________________________________________________________ G4PlotMessenger::G4PlotMessenger(G4PlotParameters* plotParameters) - : G4UImessenger(), - fPlotParameters(plotParameters) + : fPlotParameters(plotParameters) { - fHelper = std::make_unique("plot"); - - fDirectory = fHelper->CreateHnDirectory(); + fDirectory = std::make_unique("/analysis/plot/"); + fDirectory->SetGuidance("Analysis batch plotting control"); SetStyleCmd(); SetLayoutCmd(); @@ -63,77 +59,71 @@ G4PlotMessenger::~G4PlotMessenger() = default; // private functions // +//_____________________________________________________________________________ +void G4PlotMessenger::AddIntParameter( + G4UIcommand& command, G4String name, G4String guidance, G4String range) +{ + auto param = new G4UIparameter(name.c_str(), 'i', false); + param->SetGuidance(guidance.c_str()); + if (! range.empty()) { + param->SetParameterRange(range); + } + command.SetParameter(param); +} + //_____________________________________________________________________________ void G4PlotMessenger::SetStyleCmd() { - fSetStyleCmd = std::make_unique("/analysis/plot/setStyle",this); + G4String guidance; + G4String candidates; #if defined(TOOLS_USE_FREETYPE) - fSetStyleCmd->SetGuidance("Set plotting style from: "); - fSetStyleCmd->SetGuidance(" ROOT_default: ROOT style with high resolution fonts"); - fSetStyleCmd->SetGuidance(" hippodraw: hippodraw style with high resolution fonts"); - fSetStyleCmd->SetGuidance(" inlib_default: PAW style with low resolution fonts"); - fSetStyleCmd->SetParameterName("Style", false); + guidance = + "Set plotting style from: \n" + " ROOT_default: ROOT style with high resolution fonts\n" + " hippodraw: hippodraw style with high resolution fonts\n" + " inlib_default: PAW style with low resolution fonts"; + candidates = + "ROOT_default hippodraw inlib_default"; #else - fSetStyleCmd->SetGuidance("Only one plotting style is available in low resolution: "); - fSetStyleCmd->SetGuidance(" inlib_default: PAW style with low resolution fonts"); + guidance = + "Only one plotting style is available in low resolution: \n" + " inlib_default: PAW style with low resolution fonts"; + candidates = + "inlib_default"; +#endif + + fSetStyleCmd = CreateCommand("setStyle", guidance); fSetStyleCmd->SetParameterName("Style", false); fSetStyleCmd->SetCandidates("inlib_default"); -#endif - fSetStyleCmd->SetCandidates(fPlotParameters->GetAvailableStyles()); - fSetStyleCmd->AvailableForStates(G4State_PreInit, G4State_Idle); } //_____________________________________________________________________________ void G4PlotMessenger::SetLayoutCmd() { - auto columns = new G4UIparameter("columns", 'i', false); - columns->SetGuidance("The number of columns in the page layout."); - G4String range = "columns>=1 && columns<="; - auto maxColumns = fPlotParameters->GetMaxColumns(); - range.append(to_string(maxColumns)); - columns->SetParameterRange(range); + fSetLayoutCmd = CreateCommand( + "setLayout", + "Set page layout (number of columns and rows per page).\n" + " Supported layouts:\n" + " columns = 1 .. maxValueAllowed\n" + " rows = 1 .. maxValueAllowed, and >= columns\""); - auto rows = new G4UIparameter("rows", 'i', false); - rows->SetGuidance("The number of rows in the page layout."); - range = "rows>=1 && rows<="; - auto maxRows = fPlotParameters->GetMaxRows(); - range.append(to_string(maxRows)); - rows->SetParameterRange(range); - - fSetLayoutCmd = std::make_unique("/analysis/plot/setLayout", this); - // Guidance text: - // Set page layout (number of columns and rows per page). - // Supported layouts: - // columns = 1 .. maxValueAllowed - // rows = 1 .. maxValueAllowed, and >= columns - fSetLayoutCmd->SetGuidance("Set page layout (number of columns and rows per page)."); - fSetLayoutCmd->SetGuidance(" Supported layouts: "); - G4String guidance = " columns = 1 .. "; - guidance.append(to_string(maxColumns)); - fSetLayoutCmd->SetGuidance(guidance); - guidance = " rows = 1 .. "; - guidance.append(to_string(maxRows)); - guidance.append(" and >= columns"); - fSetLayoutCmd->SetGuidance(guidance); - fSetLayoutCmd->SetParameter(columns); - fSetLayoutCmd->SetParameter(rows); - fSetLayoutCmd->AvailableForStates(G4State_PreInit, G4State_Idle); + AddIntParameter(*fSetLayoutCmd, "columns", + "The number of columns in the page layout.", + "columns>=1 && columns<=" + std::to_string(fPlotParameters->GetMaxColumns())); + AddIntParameter(*fSetLayoutCmd, "rows", + "The number of rows in the page layout.", + "rows>=1 && rows<=" + std::to_string(fPlotParameters->GetMaxRows())); } //_____________________________________________________________________________ void G4PlotMessenger::SetDimensionsCmd() { - auto width = new G4UIparameter("width", 'i', false); - width->SetGuidance("The page width."); + fSetDimensionsCmd = CreateCommand( + "setDimensions", + "Set the plotter window size (width and height) in pixels."); - auto height = new G4UIparameter("height", 'i', false); - height->SetGuidance("The page height."); - - fSetDimensionsCmd = std::make_unique("/analysis/plot/setDimensions", this); - fSetDimensionsCmd->SetGuidance("Set the plotter window size (width and height) in pixels."); - fSetDimensionsCmd->SetParameter(width); - fSetDimensionsCmd->SetParameter(height); - fSetDimensionsCmd->AvailableForStates(G4State_PreInit, G4State_Idle); + AddIntParameter(*fSetDimensionsCmd, "width", "The page width."); + AddIntParameter(*fSetDimensionsCmd, "height", "The page height."); } // @@ -149,25 +139,31 @@ void G4PlotMessenger::SetNewValue(G4UIcommand* command, G4String newValues) // check consistency if ( parameters.size() != command->GetParameterEntries() ) { // Should never happen but let's check anyway for consistency - fHelper->WarnAboutParameters(command, parameters.size()); + G4Analysis::Warn( + "Got wrong number of \"" + command->GetCommandName() + + "\" parameters: " + to_string(parameters.size()) + + " instead of " + to_string(command->GetParameterEntries()) + " expected", + fkClass, "WarnAboutParameters"); return; } + auto counter = 0; if ( command == fSetLayoutCmd.get() ) { - auto counter = 0; auto columns = G4UIcommand::ConvertToInt(parameters[counter++]); auto rows = G4UIcommand::ConvertToInt(parameters[counter++]); fPlotParameters->SetLayout(columns, rows); + return; } - else if ( command == fSetDimensionsCmd.get() ) { - auto counter = 0; + + if ( command == fSetDimensionsCmd.get() ) { auto width = G4UIcommand::ConvertToInt(parameters[counter++]); auto height = G4UIcommand::ConvertToInt(parameters[counter++]); fPlotParameters->SetDimensions(width, height); + return; } -#if defined(TOOLS_USE_FREETYPE) - else if ( command == fSetStyleCmd.get() ) { + + if ( command == fSetStyleCmd.get() ) { fPlotParameters->SetStyle(newValues); + return; } -#endif } diff --git a/source/analysis/management/src/G4PlotParameters.cc b/source/analysis/hntools/src/G4PlotParameters.cc similarity index 100% rename from source/analysis/management/src/G4PlotParameters.cc rename to source/analysis/hntools/src/G4PlotParameters.cc diff --git a/source/analysis/hntools/src/G4TH1ToolsManager.cc b/source/analysis/hntools/src/G4TH1ToolsManager.cc new file mode 100644 index 0000000000..0a608f363b --- /dev/null +++ b/source/analysis/hntools/src/G4TH1ToolsManager.cc @@ -0,0 +1,129 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Author: Ivana Hrivnacova, 10/08/2022 (ivana@ipno.in2p3.fr) + +#include "G4THnToolsManager.hh" + +#include "tools/histo/h1d" + +using namespace G4Analysis; + +#include + +// Specialization for H1 type + + +//_____________________________________________________________________________ +template <> +tools::histo::h1d* G4THnToolsManager<1, tools::histo::h1d>::CreateToolsHT( + const G4String& title, + const std::array& bins, + const std::array& hnInfo) +{ + // Apply hn information to bins + auto newBins(bins[kX]); + Update(newBins, hnInfo[kX]); + + if (hnInfo[kX].fBinScheme == G4BinScheme::kLinear) { + return new tools::histo::h1d(title, newBins.fNBins, newBins.fMinValue, newBins.fMaxValue); + } + + return new tools::histo::h1d(title, newBins.fEdges); +} + +//_____________________________________________________________________________ +template <> +void G4THnToolsManager<1, tools::histo::h1d>::ConfigureToolsHT( + tools::histo::h1d* ht, + const std::array& bins, + const std::array& hnInfo) +{ + // Apply hn information to bins + auto newBins(bins[kX]); + Update(newBins, hnInfo[kX]); + + if (hnInfo[kX].fBinScheme == G4BinScheme::kLinear) { + ht->configure(newBins.fNBins, newBins.fMinValue, newBins.fMaxValue); + return; + } + + ht->configure(newBins.fEdges); +} + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<1, tools::histo::h1d>::FillHT( + tools::histo::h1d* ht, const G4HnInformation& hnInformation, + std::array& value, G4double weight) +{ + auto xInfo = hnInformation.GetHnDimensionInformation(kX); + + // Apply hn information to value + Update(value[kX], xInfo); + + // Fill updated value + ht->fill(value[kX], weight); + + return true; +} + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<1, tools::histo::h1d>::WriteOnAscii( + std::ofstream& output) +{ +// Write selected objects on ASCII file +// According to the implementation by Michel Maire, originally in +// extended examples. + + // Do nothing if no histograms are selected + if ( ! GetHnManager()->IsAscii() ) return true; + + // Write h1 histograms + auto id = GetHnManager()->GetFirstId(); + for (const auto& [h1, info] : *GetTHnVector()) { + + if ( ! info->GetAscii() ) { + // skip writing if activation is enabled and H1 is inactivated + id++; + continue; + } + + Message(kVL3, "write on ascii", "h1d", info->GetName()); + + output << "\n 1D histogram " << id++ << ": " << h1->title() + << "\n \n \t X \t\t Bin Height" << G4endl; + + for (G4int j=0; j< G4int(h1->axis().bins()); ++j) { + output << " " << j << "\t" + << h1->axis().bin_center(j) << "\t" + << h1->bin_height(j) << G4endl; + } + } + + return output.good(); +} diff --git a/source/analysis/hntools/src/G4TH2ToolsManager.cc b/source/analysis/hntools/src/G4TH2ToolsManager.cc new file mode 100644 index 0000000000..9a0448f80d --- /dev/null +++ b/source/analysis/hntools/src/G4TH2ToolsManager.cc @@ -0,0 +1,144 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Author: Ivana Hrivnacova, 10/08/2022 (ivana@ipno.in2p3.fr) + +#include "G4THnToolsManager.hh" + +#include "tools/histo/h2d" + +using namespace G4Analysis; + +#include + +// Specialization for H2 type + + +//_____________________________________________________________________________ +template <> +tools::histo::h2d* G4THnToolsManager<2, tools::histo::h2d>::CreateToolsHT( + const G4String& title, + const std::array& bins, + const std::array& hnInfo) +{ + // Apply hn information to bins + auto newXBins(bins[kX]); + Update(newXBins, hnInfo[kX]); + auto newYBins(bins[kY]); + Update(newYBins, hnInfo[kY]); + + if ((hnInfo[kX].fBinScheme == G4BinScheme::kLinear) && + (hnInfo[kY].fBinScheme == G4BinScheme::kLinear)) { + return new tools::histo::h2d(title, + newXBins.fNBins, newXBins.fMinValue, newXBins.fMaxValue, + newYBins.fNBins, newYBins.fMinValue, newYBins.fMaxValue); + } + + return new tools::histo::h2d(title, newXBins.fEdges, newYBins.fEdges); +} + +//_____________________________________________________________________________ +template <> +void G4THnToolsManager<2, tools::histo::h2d>::ConfigureToolsHT( + tools::histo::h2d* ht, + const std::array& bins, + const std::array& hnInfo) +{ + // Apply hn information to bins + auto newXBins(bins[kX]); + Update(newXBins, hnInfo[kX]); + auto newYBins(bins[kY]); + Update(newYBins, hnInfo[kY]); + + if ((hnInfo[kX].fBinScheme == G4BinScheme::kLinear) && + (hnInfo[kY].fBinScheme == G4BinScheme::kLinear)) { + ht->configure( + newXBins.fNBins, newXBins.fMinValue, newXBins.fMaxValue, + newYBins.fNBins, newYBins.fMinValue, newYBins.fMaxValue); + return; + } + + ht->configure(newXBins.fEdges, newYBins.fEdges); +} + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<2, tools::histo::h2d>::FillHT( + tools::histo::h2d* ht, const G4HnInformation& hnInformation, + std::array& value, G4double weight) +{ + auto xInfo = hnInformation.GetHnDimensionInformation(kX); + auto yInfo = hnInformation.GetHnDimensionInformation(kY); + + // Apply hn information to value + Update(value[kX], xInfo); + Update(value[kY], yInfo); + + // Fill updated value + ht->fill(value[kX], value[kY], weight); + + return true; +} + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<2, tools::histo::h2d>::WriteOnAscii( + std::ofstream& output) +{ +// Write selected objects on ASCII file +// According to the implementation by Michel Maire, originally in +// extended examples. + + // Do nothing if no histograms are selected + if ( ! GetHnManager()->IsAscii() ) return true; + + // Write h2 histograms + auto id = GetHnManager()->GetFirstId(); + for (const auto& [h2, info] : *GetTHnVector()) { + + if ( ! info->GetAscii() ) { + // skip writing if activation is enabled and H1 is inactivated + id++; + continue; + } + + Message(kVL3, "write on ascii", "h2d", info->GetName()); + + output << "\n 2D histogram " << id++ << ": " << h2->title() + << "\n \n \t \t X \t\t Y \t\t Bin Height" << G4endl; + + for (G4int j=0; j< G4int(h2->axis_x().bins()); ++j) { + for (G4int k=0; k< G4int(h2->axis_y().bins()); ++k) { + output << " " << j << "\t" << k << "\t" + << h2->axis_x().bin_center(j) << "\t" + << h2->axis_y().bin_center(k) << "\t" + << h2->bin_height(j, k) << G4endl; + } + } + } + + return output.good(); +} diff --git a/source/analysis/hntools/src/G4TH3ToolsManager.cc b/source/analysis/hntools/src/G4TH3ToolsManager.cc new file mode 100644 index 0000000000..fbaedb458a --- /dev/null +++ b/source/analysis/hntools/src/G4TH3ToolsManager.cc @@ -0,0 +1,158 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Author: Ivana Hrivnacova, 10/08/2022 (ivana@ipno.in2p3.fr) + +#include "G4THnToolsManager.hh" + +#include "tools/histo/h3d" + +using namespace G4Analysis; + +#include + +// Specialization for H3 type + + +//_____________________________________________________________________________ +template <> +tools::histo::h3d* G4THnToolsManager<3, tools::histo::h3d>::CreateToolsHT( + const G4String& title, + const std::array& bins, + const std::array& hnInfo) +{ + // Apply hn information to bins + auto newXBins(bins[kX]); + Update(newXBins, hnInfo[kX]); + auto newYBins(bins[kY]); + Update(newYBins, hnInfo[kY]); + auto newZBins(bins[kZ]); + Update(newZBins, hnInfo[kZ]); + + if ((hnInfo[kX].fBinScheme == G4BinScheme::kLinear) && + (hnInfo[kY].fBinScheme == G4BinScheme::kLinear) && + (hnInfo[kZ].fBinScheme == G4BinScheme::kLinear)) { + return new tools::histo::h3d(title, + newXBins.fNBins, newXBins.fMinValue, newXBins.fMaxValue, + newYBins.fNBins, newYBins.fMinValue, newYBins.fMaxValue, + newZBins.fNBins, newZBins.fMinValue, newZBins.fMaxValue); + } + + return new tools::histo::h3d(title, + newXBins.fEdges, newYBins.fEdges, newZBins.fEdges); +} + +//_____________________________________________________________________________ +template <> +void G4THnToolsManager<3, tools::histo::h3d>::ConfigureToolsHT( + tools::histo::h3d* ht, + const std::array& bins, + const std::array& hnInfo) +{ + // Apply hn information to bins + auto newXBins(bins[kX]); + Update(newXBins, hnInfo[kX]); + auto newYBins(bins[kY]); + Update(newYBins, hnInfo[kY]); + auto newZBins(bins[kZ]); + Update(newZBins, hnInfo[kZ]); + + if ((hnInfo[kX].fBinScheme == G4BinScheme::kLinear) && + (hnInfo[kY].fBinScheme == G4BinScheme::kLinear) && + (hnInfo[kZ].fBinScheme == G4BinScheme::kLinear)) { + ht->configure( + newXBins.fNBins, newXBins.fMinValue, newXBins.fMaxValue, + newYBins.fNBins, newYBins.fMinValue, newYBins.fMaxValue, + newZBins.fNBins, newZBins.fMinValue, newZBins.fMaxValue); + return; + } + + ht->configure(newXBins.fEdges, newYBins.fEdges, newZBins.fEdges); +} + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<3, tools::histo::h3d>::FillHT( + tools::histo::h3d* ht, const G4HnInformation& hnInformation, + std::array& value, G4double weight) +{ + auto xInfo = hnInformation.GetHnDimensionInformation(kX); + auto yInfo = hnInformation.GetHnDimensionInformation(kY); + auto zInfo = hnInformation.GetHnDimensionInformation(kZ); + + // Apply hn information to value + Update(value[kX], xInfo); + Update(value[kY], yInfo); + Update(value[kZ], zInfo); + + // Fill updated value + ht->fill(value[kX], value[kY], value[kZ], weight); + + return true; +} + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<3, tools::histo::h3d>::WriteOnAscii( + std::ofstream& output) +{ +// Write selected objects on ASCII file +// According to the implementation by Michel Maire, originally in +// extended examples. + + // Do nothing if no histograms are selected + if ( ! GetHnManager()->IsAscii() ) return true; + + // Write h3 histograms + auto id = GetHnManager()->GetFirstId(); + for (const auto& [h3, info] : *GetTHnVector()) { + + if ( ! info->GetAscii() ) { + // skip writing if activation is enabled and H1 is inactivated + id++; + continue; + } + + Message(kVL3, "write on ascii", "h3d", info->GetName()); + + output << "\n 3D histogram " << id++ << ": " << h3->title() + << "\n \n \t \t \t X \t\t Y \t\t Z \t\t Bin Height" << G4endl; + + for (G4int j=0; j< G4int(h3->axis_x().bins()); ++j) { + for (G4int k=0; k< G4int(h3->axis_y().bins()); ++k) { + for (G4int l=0; l< G4int(h3->axis_y().bins()); ++l) { + output << " " << j << "\t" << k << "\t" << l << "\t" + << h3->axis_x().bin_center(j) << "\t" + << h3->axis_y().bin_center(k) << "\t" + << h3->axis_y().bin_center(l) << "\t" + << h3->bin_height(j, k, l) << G4endl; + } + } + } + } + + return output.good(); +} diff --git a/source/analysis/hntools/src/G4TP1ToolsManager.cc b/source/analysis/hntools/src/G4TP1ToolsManager.cc new file mode 100644 index 0000000000..3449bf3ce9 --- /dev/null +++ b/source/analysis/hntools/src/G4TP1ToolsManager.cc @@ -0,0 +1,159 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Author: Ivana Hrivnacova, 10/08/2022 (ivana@ipno.in2p3.fr) + +#include "G4THnToolsManager.hh" + +#include "tools/histo/p1d" + +using namespace G4Analysis; + +#include + +// Specialization for P1 type + + +//_____________________________________________________________________________ +template <> +tools::histo::p1d* G4THnToolsManager<2, tools::histo::p1d>::CreateToolsHT( + const G4String& title, + const std::array& bins, + const std::array& hnInfo) +{ + // Apply hn information to bins + auto newXBins(bins[kX]); + Update(newXBins, hnInfo[kX]); + auto newYBins(bins[kY]); + UpdateValues(newYBins, hnInfo[kY]); + + if (hnInfo[kX].fBinScheme == G4BinScheme::kLinear) { + if ( newYBins.fMinValue == 0. && newYBins.fMaxValue == 0.) { + return new tools::histo::p1d( + title, newXBins.fNBins, newXBins.fMinValue, newXBins.fMaxValue); + } + return new tools::histo::p1d( + title, newXBins.fNBins, newXBins.fMinValue, newXBins.fMaxValue, + newYBins.fMinValue, newYBins.fMaxValue); + } + + if ( newYBins.fMinValue == 0. && newYBins.fMaxValue == 0.) { + return new tools::histo::p1d(title, newXBins.fEdges); + } + + return new tools::histo::p1d(title, newXBins.fEdges, + newYBins.fMinValue, newYBins.fMaxValue); +} + +//_____________________________________________________________________________ +template <> +void G4THnToolsManager<2, tools::histo::p1d>::ConfigureToolsHT( + tools::histo::p1d* ht, + const std::array& bins, + const std::array& hnInfo) +{ + // Apply hn information to bins + auto newXBins(bins[kX]); + Update(newXBins, hnInfo[kX]); + auto newYBins(bins[kY]); + UpdateValues(newYBins, hnInfo[kY]); + + if (hnInfo[kX].fBinScheme == G4BinScheme::kLinear) { + if ( newYBins.fMinValue == 0. && newYBins.fMaxValue == 0.) { + ht->configure( + newXBins.fNBins, newXBins.fMinValue, newXBins.fMaxValue); + return; + } + ht->configure( + newXBins.fNBins, newXBins.fMinValue, newXBins.fMaxValue, + newYBins.fMinValue, newYBins.fMaxValue); + return; + } + + if ( newYBins.fMinValue == 0. && newYBins.fMaxValue == 0.) { + ht->configure(newXBins.fEdges); + return; + } + ht->configure(newXBins.fEdges, newYBins.fMinValue, newYBins.fMaxValue); + return; +} + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<2, tools::histo::p1d>::FillHT( + tools::histo::p1d* ht, const G4HnInformation& hnInformation, + std::array& value, G4double weight) +{ + auto xInfo = hnInformation.GetHnDimensionInformation(kX); + auto yInfo = hnInformation.GetHnDimensionInformation(kY); + + // Apply hn information to value + Update(value[kX], xInfo); + Update(value[kY], yInfo); + + // Fill updated value + ht->fill(value[kX], value[kY], weight); + + return true; +} + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<2, tools::histo::p1d>::WriteOnAscii( + std::ofstream& output) +{ +// Write selected objects on ASCII file + + // Do nothing if no histograms are selected + if ( ! GetHnManager()->IsAscii() ) return true; + + // Write p1 histograms + auto id = GetHnManager()->GetFirstId(); + for (const auto& [p1, info] : *GetTHnVector()) { + + if ( ! info->GetAscii() ) { + // skip writing if activation is enabled and H1 is inactivated + id++; + continue; + } + + Message(kVL3, "write on ascii", "p1d", info->GetName()); + + output << "\n 1D profile " << id++ << ": " << p1->title() + << "\n \n \t \t X \t\t MeanY" << G4endl; + + for (G4int j=0; j< G4int(p1->axis().bins()); ++j) { + auto sw = p1->bin_Sw(j); + auto svw = p1->bin_Svw(j); + auto mean = ( sw != 0. ) ? (svw / sw) : 0.; + output << " " << j << "\t" + << p1->axis().bin_center(j) << "\t" + << mean << G4endl; + } + } + + return output.good(); +} diff --git a/source/analysis/hntools/src/G4TP2ToolsManager.cc b/source/analysis/hntools/src/G4TP2ToolsManager.cc new file mode 100644 index 0000000000..d997e40a19 --- /dev/null +++ b/source/analysis/hntools/src/G4TP2ToolsManager.cc @@ -0,0 +1,174 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Author: Ivana Hrivnacova, 10/08/2022 (ivana@ipno.in2p3.fr) + +#include "G4THnToolsManager.hh" + +#include "tools/histo/p2d" + +using namespace G4Analysis; + +#include + +// Specialization for P2 type + + +//_____________________________________________________________________________ +template <> +tools::histo::p2d* G4THnToolsManager<3, tools::histo::p2d>::CreateToolsHT( + const G4String& title, + const std::array& bins, + const std::array& hnInfo) +{ + // Apply hn information to bins + auto newXBins(bins[kX]); + Update(newXBins, hnInfo[kX]); + auto newYBins(bins[kY]); + Update(newYBins, hnInfo[kY]); + auto newZBins(bins[kZ]); + UpdateValues(newZBins, hnInfo[kZ]); + + if ((hnInfo[kX].fBinScheme == G4BinScheme::kLinear) && + (hnInfo[kY].fBinScheme == G4BinScheme::kLinear)) { + if ( newZBins.fMinValue == 0. && newZBins.fMaxValue == 0.) { + return new tools::histo::p2d( + title, newXBins.fNBins, newXBins.fMinValue, newXBins.fMaxValue, + newYBins.fNBins, newYBins.fMinValue, newYBins.fMaxValue); + } + return new tools::histo::p2d( + title, newXBins.fNBins, newXBins.fMinValue, newXBins.fMaxValue, + newYBins.fNBins, newYBins.fMinValue, newYBins.fMaxValue, + newZBins.fMinValue, newZBins.fMaxValue); + } + + if ( newZBins.fMinValue == 0. && newZBins.fMaxValue == 0.) { + return new tools::histo::p2d(title, newXBins.fEdges, newYBins.fEdges); + } + return new tools::histo::p2d(title, newXBins.fEdges, newYBins.fEdges, + newZBins.fMinValue, newZBins.fMaxValue); +} + +//_____________________________________________________________________________ +template <> +void G4THnToolsManager<3, tools::histo::p2d>::ConfigureToolsHT( + tools::histo::p2d* ht, + const std::array& bins, + const std::array& hnInfo) +{ + // Apply hn information to bins + auto newXBins(bins[kX]); + Update(newXBins, hnInfo[kX]); + auto newYBins(bins[kY]); + Update(newYBins, hnInfo[kY]); + auto newZBins(bins[kZ]); + UpdateValues(newZBins, hnInfo[kZ]); + + if ((hnInfo[kX].fBinScheme == G4BinScheme::kLinear) && + (hnInfo[kY].fBinScheme == G4BinScheme::kLinear)) { + if ( newZBins.fMinValue == 0. && newZBins.fMaxValue == 0.) { + ht->configure( + newXBins.fNBins, newXBins.fMinValue, newXBins.fMaxValue, + newYBins.fNBins, newYBins.fMinValue, newYBins.fMaxValue); + return; + } + ht->configure( + newXBins.fNBins, newXBins.fMinValue, newXBins.fMaxValue, + newYBins.fNBins, newYBins.fMinValue, newYBins.fMaxValue, + newZBins.fMinValue, newZBins.fMaxValue); + return; + } + + if ( newZBins.fMinValue == 0. && newZBins.fMaxValue == 0.) { + ht->configure(newXBins.fEdges, newYBins.fEdges); + return; + } + + ht->configure(newXBins.fEdges, newYBins.fEdges, + newZBins.fMinValue, newZBins.fMaxValue); +} + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<3, tools::histo::p2d>::FillHT( + tools::histo::p2d* ht, const G4HnInformation& hnInformation, + std::array& value, G4double weight) +{ + auto xInfo = hnInformation.GetHnDimensionInformation(kX); + auto yInfo = hnInformation.GetHnDimensionInformation(kY); + auto zInfo = hnInformation.GetHnDimensionInformation(kZ); + + // Apply hn information to value + Update(value[kX], xInfo); + Update(value[kY], yInfo); + Update(value[kZ], zInfo); + + // Fill updated value + ht->fill(value[kX], value[kY], value[kZ], weight); + + return true; +} + +//_____________________________________________________________________________ +template <> +G4bool G4THnToolsManager<3, tools::histo::p2d>::WriteOnAscii( + std::ofstream& output) +{ +// Write selected objects on ASCII file + + // Do nothing if no histograms are selected + if ( ! GetHnManager()->IsAscii() ) return true; + + // Write p2 histograms + auto id = GetHnManager()->GetFirstId(); + for (const auto& [p2, info] : *GetTHnVector()) { + + if ( ! info->GetAscii() ) { + // skip writing if activation is enabled and H1 is inactivated + id++; + continue; + } + + Message(kVL3, "write on ascii", "p2d", info->GetName()); + + output << "\n 2D profile " << id++ << ": " << p2->title() + << "\n \n \t \t X \t\t Y \t\t MeanZ" << G4endl; + + for (G4int j=0; j< G4int(p2->axis_x().bins()); ++j) { + for (G4int k=0; k< G4int(p2->axis_y().bins()); ++k) { + auto sw = p2->bin_Sw(j, k); + auto svw = p2->bin_Svw(j, k); + auto mean = ( sw != 0. ) ? (svw / sw) : 0.; + output << " " << j << "\t" << k << "\t" + << p2->axis_x().bin_center(j) << "\t" + << p2->axis_y().bin_center(k) << "\t" + << mean << G4endl; + } + } + } + + return output.good(); +} diff --git a/source/analysis/hntools/src/G4ToolsAnalysisManager.cc b/source/analysis/hntools/src/G4ToolsAnalysisManager.cc index 1df93bdb6d..6229959ab7 100644 --- a/source/analysis/hntools/src/G4ToolsAnalysisManager.cc +++ b/source/analysis/hntools/src/G4ToolsAnalysisManager.cc @@ -27,11 +27,7 @@ // Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr) #include "G4ToolsAnalysisManager.hh" -#include "G4H1ToolsManager.hh" -#include "G4H2ToolsManager.hh" -#include "G4H3ToolsManager.hh" -#include "G4P1ToolsManager.hh" -#include "G4P2ToolsManager.hh" +#include "G4VNtupleFileManager.hh" #include "G4PlotManager.hh" #include "G4MPIToolsManager.hh" #include "G4AnalysisUtilities.hh" @@ -66,11 +62,11 @@ G4ToolsAnalysisManager::G4ToolsAnalysisManager(const G4String& type) fgToolsInstance = this; // Create managers - fH1Manager = new G4H1ToolsManager(fState); - fH2Manager = new G4H2ToolsManager(fState); - fH3Manager = new G4H3ToolsManager(fState); - fP1Manager = new G4P1ToolsManager(fState); - fP2Manager = new G4P2ToolsManager(fState); + fH1Manager = new G4THnToolsManager(fState); + fH2Manager = new G4THnToolsManager(fState); + fH3Manager = new G4THnToolsManager(fState); + fP1Manager = new G4THnToolsManager(fState); + fP2Manager = new G4THnToolsManager(fState); // The managers will be deleted by the base class // Set managers to base class which takes then their ownership @@ -81,10 +77,7 @@ G4ToolsAnalysisManager::G4ToolsAnalysisManager(const G4String& type) SetP2Manager(fP2Manager); // Plot manager - SetPlotManager(std::make_shared(fState)); - - // Messenger - fMessenger = std::make_unique(this); + fPlotManager = std::make_unique(fState); } //_____________________________________________________________________________ @@ -95,91 +88,11 @@ G4ToolsAnalysisManager::~G4ToolsAnalysisManager() } // -// protected methods +// private methods // //_____________________________________________________________________________ -G4bool G4ToolsAnalysisManager::PlotImpl() -{ - - // Only master thread performs plotting - if ( G4Threading::IsWorkerThread() ) return true; - - auto result = true; - - // Open output file - fPlotManager->OpenFile(fVFileManager->GetPlotFileName()); - - // H1 - result - &= fPlotManager->PlotAndWrite(fH1Manager->GetH1Vector(), - fH1Manager->GetHnVector()); - - // H2 - result - &= fPlotManager->PlotAndWrite(fH2Manager->GetH2Vector(), - fH2Manager->GetHnVector()); - - // H3 - // not yet available in tools - - // P1 - result - &= fPlotManager->PlotAndWrite(fP1Manager->GetP1Vector(), - fP1Manager->GetHnVector()); - - // P2 - // not yet available in tools - - // Close output file - result &= fPlotManager->CloseFile(); - - return result; -} - -//_____________________________________________________________________________ -G4bool G4ToolsAnalysisManager::MergeImpl(tools::histo::hmpi* hmpi) -{ - - // if ( G4Threading::IsWorkerThread() ) return true; - - if ( ! hmpi ) return false; - - auto result = true; - - // Create MPI manager - G4MPIToolsManager mpiToolsManager(fState, hmpi); - - // H1 - result - &= mpiToolsManager.Merge(fH1Manager->GetH1Vector(), - fH1Manager->GetHnVector()); - - // H2 - result - &= mpiToolsManager.Merge(fH2Manager->GetH2Vector(), - fH2Manager->GetHnVector()); - - // H3 - result - &= mpiToolsManager.Merge(fH3Manager->GetH3Vector(), - fH3Manager->GetHnVector()); - - // P1 - result - &= mpiToolsManager.Merge(fP1Manager->GetP1Vector(), - fP1Manager->GetHnVector()); - - // P2 - result - &= mpiToolsManager.Merge(fP2Manager->GetP2Vector(), - fP2Manager->GetHnVector()); - - return result; -} - -//_____________________________________________________________________________ -G4bool G4ToolsAnalysisManager::WriteImpl() +G4bool G4ToolsAnalysisManager::WriteHns() { // Nothing to be done on worker if ( G4Threading::IsWorkerThread() ) return false; @@ -187,17 +100,17 @@ G4bool G4ToolsAnalysisManager::WriteImpl() auto result = true; // Write all histograms/profile on master - result &=WriteT(fH1Manager->GetH1Vector(), fH1Manager->GetHnVector()); - result &=WriteT(fH2Manager->GetH2Vector(), fH2Manager->GetHnVector()); - result &=WriteT(fH3Manager->GetH3Vector(), fH3Manager->GetHnVector()); - result &=WriteT(fP1Manager->GetP1Vector(), fP1Manager->GetHnVector()); - result &=WriteT(fP2Manager->GetP2Vector(), fP2Manager->GetHnVector()); + result &= WriteT(fH1Manager->GetTHnVectorRef()); + result &= WriteT(fH2Manager->GetTHnVectorRef()); + result &= WriteT(fH3Manager->GetTHnVectorRef()); + result &= WriteT(fP1Manager->GetTHnVectorRef()); + result &= WriteT(fP2Manager->GetTHnVectorRef()); return result; } //_____________________________________________________________________________ -G4bool G4ToolsAnalysisManager::ResetImpl() +G4bool G4ToolsAnalysisManager::ResetHns() { // Reset histograms and profiles @@ -213,24 +126,12 @@ G4bool G4ToolsAnalysisManager::ResetImpl() } //_____________________________________________________________________________ -void G4ToolsAnalysisManager::ClearImpl() -{ -// Reset histograms and profiles - - fH1Manager->ClearData(); - fH2Manager->ClearData(); - fH3Manager->ClearData(); - fP1Manager->ClearData(); - fP2Manager->ClearData(); -} - -//_____________________________________________________________________________ -G4bool G4ToolsAnalysisManager::Merge() +G4bool G4ToolsAnalysisManager::MergeHns() { // Nothing to be done on master if ( ! G4Threading::IsWorkerThread() ) return false; - if ( ! fgMasterToolsInstance ) { + if (fgMasterToolsInstance == nullptr) { if (! IsEmpty() ) { Warn("No master G4AnalysisManager instance exists.\n" "Histogram/profile data will not be merged.", @@ -254,6 +155,204 @@ G4bool G4ToolsAnalysisManager::Merge() return true; } +// +// protected methods +// + +//_____________________________________________________________________________ +G4bool G4ToolsAnalysisManager::OpenFileImpl(const G4String& fileName) +{ + // Create ntuple manager(s) + // and set it to base class which takes then their ownership + SetNtupleManager(fVNtupleFileManager->CreateNtupleManager()); + + auto result = true; + + // Open file + if ( fVNtupleFileManager->GetMergeMode() != G4NtupleMergeMode::kSlave ) { + result &= fVFileManager->OpenFile(fileName); + } + + // Open ntuple files and create ntuples from bookings + result &= fVNtupleFileManager->ActionAtOpenFile(fVFileManager->GetFullFileName()); + + return result; +} + +//_____________________________________________________________________________ +G4bool G4ToolsAnalysisManager::WriteImpl() +{ + Message(kVL4, "write", "files"); + + auto result = true; + if ( G4Threading::IsWorkerThread() ) { + result &= MergeHns(); + } + else { + // Open all files registered with objects + fVFileManager->OpenFiles(); + + // Write all histograms/profile on master + result &= WriteHns(); + } + + // Ntuples + if (fVNtupleFileManager) { + result &= fVNtupleFileManager->ActionAtWrite(); + } + + // Files + if ( (fVNtupleFileManager == nullptr) || + (fVNtupleFileManager->GetMergeMode() != G4NtupleMergeMode::kSlave) ) { + result &= fVFileManager->WriteFiles(); + } + + // Write ASCII if activated + if ( IsAscii() ) { + result &= WriteAscii(fVFileManager->GetFileName()); + } + + Message(kVL3, "write", "files", "", result); + + return result; +} + +//_____________________________________________________________________________ +G4bool G4ToolsAnalysisManager::CloseFileImpl(G4bool reset) +{ + Message(kVL4, "close", "files"); + + auto result = true; + if (fVNtupleFileManager) { + result &= fVNtupleFileManager->ActionAtCloseFile(); + } + + // close file + if ( (fVNtupleFileManager == nullptr) || + (fVNtupleFileManager->GetMergeMode() != G4NtupleMergeMode::kSlave) ) { + if ( ! fVFileManager->CloseFiles() ) { + Warn("Closing files failed", fkClass, "CloseFileImpl"); + result = false; + } + } + + // delete empty files + if ( ! fVFileManager->DeleteEmptyFiles() ) { + Warn("Deleting empty files failed", fkClass, "CloseFileImpl"); + result = false; + } + + // reset histograms + if ( reset ) { + if ( ! Reset() ) { + Warn("Resetting data failed", fkClass, "CloseFileImpl"); + result = false; + } + } + + Message(kVL3, "close", "files", "", result); + + return result; +} + +//_____________________________________________________________________________ +G4bool G4ToolsAnalysisManager::ResetImpl() +{ +// Reset histograms and ntuple + + Message(kVL4, "reset", ""); + + auto result = true; + result &= ResetHns(); + if ( fVNtupleFileManager != nullptr ) { + result &= fVNtupleFileManager->Reset(); + } + + Message(kVL3, "reset", "", "", result); + + return result; +} + +//_____________________________________________________________________________ +void G4ToolsAnalysisManager::ClearImpl() +{ +// Reset histograms and profiles + + fH1Manager->ClearData(); + fH2Manager->ClearData(); + fH3Manager->ClearData(); + fP1Manager->ClearData(); + fP2Manager->ClearData(); +} + +//_____________________________________________________________________________ +G4bool G4ToolsAnalysisManager::PlotImpl() +{ + + // Only master thread performs plotting + if ( G4Threading::IsWorkerThread() ) return true; + + auto result = true; + + // Open output file + fPlotManager->OpenFile(fVFileManager->GetPlotFileName()); + + // H1 + result + &= fPlotManager->PlotAndWrite(fH1Manager->GetTHnVectorRef()); + + // H2 + result + &= fPlotManager->PlotAndWrite(fH2Manager->GetTHnVectorRef()); + + // H3 + // not yet available in tools + + // P1 + result + &= fPlotManager->PlotAndWrite(fP1Manager->GetTHnVectorRef()); + + // P2 + // not yet available in tools + + // Close output file + result &= fPlotManager->CloseFile(); + + return result; +} + +//_____________________________________________________________________________ +G4bool G4ToolsAnalysisManager::MergeImpl(tools::histo::hmpi* hmpi) +{ + + // if ( G4Threading::IsWorkerThread() ) return true; + + if (hmpi == nullptr) return false; + + auto result = true; + + // Create MPI manager + G4MPIToolsManager mpiToolsManager(fState, hmpi); + + // H1 + result &= mpiToolsManager.Merge(fH1Manager->GetTHnVectorRef()); + + // H2 + result &= mpiToolsManager.Merge(fH2Manager->GetTHnVectorRef()); + + // H3 + result &= mpiToolsManager.Merge(fH3Manager->GetTHnVectorRef()); + + // P1 + result &= mpiToolsManager.Merge(fP1Manager->GetTHnVectorRef()); + + // P2 + result &= mpiToolsManager.Merge(fP2Manager->GetTHnVectorRef()); + + return result; +} + + //_____________________________________________________________________________ G4bool G4ToolsAnalysisManager::IsEmpty() { diff --git a/source/analysis/hntools/src/G4ToolsAnalysisMessenger.cc b/source/analysis/hntools/src/G4ToolsAnalysisMessenger.cc deleted file mode 100644 index 91339dd786..0000000000 --- a/source/analysis/hntools/src/G4ToolsAnalysisMessenger.cc +++ /dev/null @@ -1,125 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Author: Ivana Hrivnacova, 29/10/2021 (ivana@ipno.in2p3.fr) - -#include "G4ToolsAnalysisMessenger.hh" -#include "G4ToolsAnalysisManager.hh" -#include "G4AnalysisUtilities.hh" -#include "G4AnalysisMessengerHelper.hh" - -#include "G4UIcommand.hh" -#include "G4UIparameter.hh" - -using namespace G4Analysis; - -//_____________________________________________________________________________ -G4ToolsAnalysisMessenger::G4ToolsAnalysisMessenger(G4ToolsAnalysisManager* manager) - : G4UImessenger(), - fManager(manager) -{ - // Create get commands - G4AnalysisMessengerHelper helper("h1"); - fGetH1Cmd = helper.CreateGetCommand(this); - fGetH1VectorCmd = helper.CreateGetVectorCommand(this); - - helper.SetHnType("h2"); - fGetH2Cmd = helper.CreateGetCommand(this); - fGetH2VectorCmd = helper.CreateGetVectorCommand(this); - - helper.SetHnType("h3"); - fGetH3Cmd = helper.CreateGetCommand(this); - fGetH3VectorCmd = helper.CreateGetVectorCommand(this); - - helper.SetHnType("p1"); - fGetP1Cmd = helper.CreateGetCommand(this); - fGetP1VectorCmd = helper.CreateGetVectorCommand(this); - - helper.SetHnType("p2"); - fGetP2Cmd = helper.CreateGetCommand(this); - fGetP2VectorCmd = helper.CreateGetVectorCommand(this); -} - -//_____________________________________________________________________________ -G4ToolsAnalysisMessenger::~G4ToolsAnalysisMessenger() = default; - -/// -// public functions -// - -//_____________________________________________________________________________ -G4String G4ToolsAnalysisMessenger::GetCurrentValue (G4UIcommand* command) -{ - if ( command == fGetH1Cmd.get() ) return fH1Value; - if ( command == fGetH2Cmd.get() ) return fH2Value; - if ( command == fGetH3Cmd.get() ) return fH3Value; - if ( command == fGetP1Cmd.get() ) return fP1Value; - if ( command == fGetP2Cmd.get() ) return fP2Value; - - if ( command == fGetH1VectorCmd.get() ) return fH1VectorValue; - if ( command == fGetH2VectorCmd.get() ) return fH2VectorValue; - if ( command == fGetH3VectorCmd.get() ) return fH3VectorValue; - if ( command == fGetP1VectorCmd.get() ) return fP1VectorValue; - if ( command == fGetP2VectorCmd.get() ) return fP2VectorValue; - - return ""; -} - -//_____________________________________________________________________________ -void G4ToolsAnalysisMessenger::SetNewValue(G4UIcommand* command, G4String value) -{ - auto id = G4UIcommand::ConvertToInt(value); - if ( command == fGetH1Cmd.get() ) { - fH1Value = GetHnAddress(id, fManager->fH1Manager); - } - else if ( command == fGetH2Cmd.get() ) { - fH2Value = GetHnAddress(id, fManager->fH2Manager); - } - else if ( command == fGetH3Cmd.get() ) { - fH3Value = GetHnAddress(id, fManager->fH3Manager); - } - else if ( command == fGetP1Cmd.get() ) { - fP1Value = GetHnAddress(id, fManager->fP1Manager); - } - else if ( command == fGetP2Cmd.get() ) { - fP2Value = GetHnAddress(id, fManager->fP2Manager); - } - if ( command == fGetH1VectorCmd.get() ) { - fH1VectorValue = GetHnVectorAddress(fManager->fH1Manager); - } - else if ( command == fGetH2VectorCmd.get() ) { - fH2VectorValue = GetHnVectorAddress(fManager->fH2Manager); - } - else if ( command == fGetH3VectorCmd.get() ) { - fH3VectorValue = GetHnVectorAddress(fManager->fH3Manager); - } - else if ( command == fGetP1VectorCmd.get() ) { - fP1VectorValue = GetHnVectorAddress(fManager->fP1Manager); - } - else if ( command == fGetP2VectorCmd.get() ) { - fP2VectorValue = GetHnVectorAddress(fManager->fP2Manager); - } -} diff --git a/source/analysis/hntools/src/G4ToolsAnalysisReader.cc b/source/analysis/hntools/src/G4ToolsAnalysisReader.cc index 5150be5304..2dc88d51f3 100644 --- a/source/analysis/hntools/src/G4ToolsAnalysisReader.cc +++ b/source/analysis/hntools/src/G4ToolsAnalysisReader.cc @@ -27,22 +27,17 @@ // Author: Ivana Hrivnacova, 20/07/2015 (ivana@ipno.in2p3.fr) #include "G4ToolsAnalysisReader.hh" -#include "G4H1ToolsManager.hh" -#include "G4H2ToolsManager.hh" -#include "G4H3ToolsManager.hh" -#include "G4P1ToolsManager.hh" -#include "G4P2ToolsManager.hh" //_____________________________________________________________________________ G4ToolsAnalysisReader::G4ToolsAnalysisReader(const G4String& type) : G4VAnalysisReader(type) { // Create managers - fH1Manager = new G4H1ToolsManager(fState); - fH2Manager = new G4H2ToolsManager(fState); - fH3Manager = new G4H3ToolsManager(fState); - fP1Manager = new G4P1ToolsManager(fState); - fP2Manager = new G4P2ToolsManager(fState); + fH1Manager = new G4THnToolsManager<1, tools::histo::h1d>(fState); + fH2Manager = new G4THnToolsManager<2, tools::histo::h2d>(fState); + fH3Manager = new G4THnToolsManager<3, tools::histo::h3d>(fState); + fP1Manager = new G4THnToolsManager<2, tools::histo::p1d>(fState); + fP2Manager = new G4THnToolsManager<3, tools::histo::p2d>(fState); // The managers will be deleted by the base class // Set managers to base class which takes then their ownership diff --git a/source/analysis/management/include/G4AnalysisManagerState.hh b/source/analysis/management/include/G4AnalysisManagerState.hh index 0a0d4ed55f..eba530b6ac 100644 --- a/source/analysis/management/include/G4AnalysisManagerState.hh +++ b/source/analysis/management/include/G4AnalysisManagerState.hh @@ -32,6 +32,7 @@ #define G4AnalysisManagerState_h 1 #include "G4AnalysisVerbose.hh" +#include "G4Threading.hh" #include "globals.hh" #include @@ -44,7 +45,7 @@ class G4AnalysisManagerState friend class G4ParameterManager; public: - G4AnalysisManagerState(const G4String& type, G4bool isMaster); + G4AnalysisManagerState(G4String type, G4bool isMaster); // disabled constructors, operators G4AnalysisManagerState() = delete; G4AnalysisManagerState(const G4AnalysisManagerState&) = delete; @@ -56,14 +57,18 @@ class G4AnalysisManagerState [[maybe_unused]] const G4String& objectType, [[maybe_unused]] const G4String& objectName = "", [[maybe_unused]] G4bool success = true) const; + void IncrementCycle(); + void ResetCycle(); // get methods G4String GetType() const; G4bool GetIsMaster() const; + G4int GetThreadId() const; G4bool GetIsActivation() const; G4int GetVerboseLevel() const; G4bool IsVerbose(G4int verboseLevel) const; G4int GetCompressionLevel() const; + G4int GetCycle() const; private: // set methods @@ -78,9 +83,11 @@ class G4AnalysisManagerState // Data members G4String fType; G4bool fIsMaster; + G4int fThreadId { G4Threading::SEQUENTIAL_ID }; G4bool fIsActivation { false }; G4int fVerboseLevel { 0 }; G4int fCompressionLevel { 1 }; + G4int fCycle { 0 }; G4AnalysisVerbose fVerbose; }; @@ -92,12 +99,21 @@ inline void G4AnalysisManagerState::SetIsActivation(G4bool isActivation) inline void G4AnalysisManagerState::SetCompressionLevel(G4int level) { fCompressionLevel = level; } +inline void G4AnalysisManagerState::IncrementCycle() +{ ++fCycle; } + +inline void G4AnalysisManagerState::ResetCycle() +{ fCycle = 0; } + inline G4String G4AnalysisManagerState::GetType() const { return fType; } inline G4bool G4AnalysisManagerState::GetIsMaster() const { return fIsMaster; } +inline G4int G4AnalysisManagerState::GetThreadId() const +{ return fThreadId; } + inline G4bool G4AnalysisManagerState::GetIsActivation() const { return fIsActivation; } @@ -110,4 +126,7 @@ inline G4bool G4AnalysisManagerState::IsVerbose(G4int verboseLevel) const inline G4int G4AnalysisManagerState::GetCompressionLevel() const { return fCompressionLevel; } +inline G4int G4AnalysisManagerState::GetCycle() const +{ return fCycle; } + #endif diff --git a/source/analysis/management/include/G4AnalysisMessenger.hh b/source/analysis/management/include/G4AnalysisMessenger.hh index c5e2c7ff09..3d81cd6f57 100644 --- a/source/analysis/management/include/G4AnalysisMessenger.hh +++ b/source/analysis/management/include/G4AnalysisMessenger.hh @@ -26,8 +26,17 @@ // The messenger class for G4VAnalysisManager. // It implements commands: +// - /analysis/closeFile +// - /analysis/compression +// - /analysis/list +// - /analysis/openFile +// - /analysis/reset // - /analysis/setActivation +// - /analysis/setFileName +// - /analysis/setHistoDirName +// - /analysis/setNtupleDirName // - /analysis/verbose +// - /analysis/write // // Author: Ivana Hrivnacova, 24/06/2013 (ivana@ipno.in2p3.fr) @@ -40,58 +49,65 @@ #include class G4VAnalysisManager; -class G4HnManager; -class G4FileMessenger; -class G4H1Messenger; -class G4H2Messenger; -class G4H3Messenger; -class G4P1Messenger; -class G4P2Messenger; class G4NtupleMessenger; -class G4HnMessenger; class G4UIdirectory; class G4UIcmdWithABool; class G4UIcmdWithAnInteger; +class G4UIcmdWithAString; +class G4UIcmdWithoutParameter; class G4AnalysisMessenger : public G4UImessenger { public: explicit G4AnalysisMessenger(G4VAnalysisManager* manager); G4AnalysisMessenger() = delete; - virtual ~G4AnalysisMessenger(); + ~G4AnalysisMessenger() override; // Methods - void SetH1HnManager(G4HnManager& h1HnManager); - void SetH2HnManager(G4HnManager& h2HnManager); - void SetH3HnManager(G4HnManager& h3HnManager); - void SetP1HnManager(G4HnManager& p1HnManager); - void SetP2HnManager(G4HnManager& p2HnManager); - - // Methods - virtual void SetNewValue(G4UIcommand* command, G4String value) final; + void SetNewValue(G4UIcommand* command, G4String value) final; private: + template + std::unique_ptr CreateCommand( + G4String name, G4String guidance, G4String paremeterName, + G4bool ommitable = false); + std::unique_ptr CreateCommandWithoutParameter( + G4String name, G4String guidance); + // Data members G4VAnalysisManager* fManager { nullptr }; ///< Associated class - std::unique_ptr fFileMessenger; - std::unique_ptr fH1Messenger; - std::unique_ptr fH2Messenger; - std::unique_ptr fH3Messenger; - std::unique_ptr fP1Messenger; - std::unique_ptr fP2Messenger; std::unique_ptr fNtupleMessenger; - std::unique_ptr fH1HnMessenger; - std::unique_ptr fH2HnMessenger; - std::unique_ptr fH3HnMessenger; - std::unique_ptr fP1HnMessenger; - std::unique_ptr fP2HnMessenger; std::unique_ptr fAnalysisDir; + std::unique_ptr fOpenFileCmd; + std::unique_ptr fWriteCmd; + std::unique_ptr fResetCmd; + // These command need to revert order of execution master-worker + // To be investigated + std::unique_ptr fCloseFileCmd; + std::unique_ptr fListCmd; std::unique_ptr fSetActivationCmd; std::unique_ptr fVerboseCmd; std::unique_ptr fCompressionCmd; + std::unique_ptr fSetFileNameCmd; + std::unique_ptr fSetHistoDirNameCmd; + std::unique_ptr fSetNtupleDirNameCmd; }; -#endif +//_____________________________________________________________________________ +template +std::unique_ptr G4AnalysisMessenger::CreateCommand( + G4String name, G4String guidance, G4String paremeterName, G4bool ommitable) +{ + G4String fullName = "/analysis/" + name; + auto command = std::make_unique(fullName, this); + command->SetGuidance(guidance.c_str()); + command->SetParameterName(paremeterName.c_str(), ommitable); + command->AvailableForStates(G4State_PreInit, G4State_Idle); + + return command; +} + +#endif diff --git a/source/analysis/management/include/G4AnalysisMessengerHelper.hh b/source/analysis/management/include/G4AnalysisMessengerHelper.hh deleted file mode 100644 index ef5fdac805..0000000000 --- a/source/analysis/management/include/G4AnalysisMessengerHelper.hh +++ /dev/null @@ -1,125 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// The helper class for histogram and profiles messengers. -// It implements reusable commands in /analysis/[hn|pn] directory. -// -// Author: Ivana Hrivnacova, 05/05/2015 (ivana@ipno.in2p3.fr) - -#ifndef G4AnalysisMessengerHelper_h -#define G4AnalysisMessengerHelper_h 1 - -#include "G4UImessenger.hh" -#include "globals.hh" - -#include -#include - -class G4VAnalysisManager; -class G4UIdirectory; -class G4UIcommand; - -class G4AnalysisMessengerHelper -{ - public: - // types - struct BinData { - BinData() {} - G4int fNbins { 0 }; - G4double fVmin { 0. }; - G4double fVmax { 0. }; - G4String fSunit; - G4String fSfcn; - G4String fSbinScheme; - }; - // types - struct ValueData { - ValueData() {} - G4double fVmin { 0. }; - G4double fVmax { 0. }; - G4String fSunit; - G4String fSfcn; - }; - - public: - // Make available utility Update method - friend class G4HnMessenger; - - public: - explicit G4AnalysisMessengerHelper(const G4String& hnType); - G4AnalysisMessengerHelper() = delete; - ~G4AnalysisMessengerHelper() = default; - - // Methods to create commands - std::unique_ptr CreateHnDirectory() const; - - std::unique_ptr CreateGetCommand( - G4UImessenger* messenger) const; - std::unique_ptr CreateGetVectorCommand( - G4UImessenger* messenger) const; - - std::unique_ptr CreateSetTitleCommand( - G4UImessenger* messenger) const; - std::unique_ptr CreateSetBinsCommand(const G4String& axis, - G4UImessenger* messenger) const; - std::unique_ptr CreateSetValuesCommand(const G4String& axis, - G4UImessenger* messenger) const; - std::unique_ptr CreateSetAxisCommand(const G4String& axis, - G4UImessenger* messenger) const; - std::unique_ptr CreateSetAxisLogCommand(const G4String& axis, - G4UImessenger* messenger) const; - - // Methods to read command paremeters - void GetBinData(BinData& data, std::vector& parameters, - G4int& counter) const; - void GetValueData(ValueData& data, std::vector& parameters, - G4int& counter) const; - - // Set methods - void SetHnType(const G4String& hnType); - - // warnings - void WarnAboutParameters(G4UIcommand* command, G4int nofParameters) const; - void WarnAboutSetCommands() const; - - private: - // Methods - G4String Update(const G4String& str, const G4String& axis = "") const; - - // Static data members - static constexpr std::string_view fkClass { "G4AnalysisMessengerHelper" }; - - // Data members - G4String fHnType; -}; - -// inline functions - -inline void G4AnalysisMessengerHelper::SetHnType(const G4String& hnType) -{ fHnType = hnType; } - -#endif - diff --git a/source/analysis/management/include/G4AnalysisUtilities.hh b/source/analysis/management/include/G4AnalysisUtilities.hh index 54c1ddf873..0d85154e3e 100644 --- a/source/analysis/management/include/G4AnalysisUtilities.hh +++ b/source/analysis/management/include/G4AnalysisUtilities.hh @@ -70,22 +70,9 @@ void Warn(const G4String& message, const std::string_view inClass, const std::string_view inFunction); -// Utility functions for checking input parameters -// -G4bool CheckNbins(G4int nbins); -G4bool CheckMinMax(G4double xmin, G4double xmax, - const G4String& fcnName = "none", - const G4String& binSchemeName = "linear"); -G4bool CheckEdges(const std::vector& edges); -G4bool CheckName(const G4String& name, const G4String& objectType); - // Get unit value with added handling of "none" G4double GetUnitValue(const G4String& unit); -// Add unit & fcn to the title -void UpdateTitle(G4String& title, - const G4String& unitName, const G4String& fcnName); - // Tokenizer with taking into account composed strings within "" void Tokenize(const G4String& line, std::vector& tokens); @@ -105,15 +92,15 @@ G4String GetHnType() return hnTypeLong.substr(14, 2); } -// template -// G4bool IsProfile() -// { -// // tools::histo::h1d etc. -// G4String hnTypeLong = HT::s_class(); +template +G4bool IsProfile() +{ + // tools::histo::h1d etc. + G4String hnTypeLong = HT::s_class(); -// // tools::histo::h1d -> h1 etc. -// return (hnTypeLong.substr(14, 1) == "p"); -// } + // tools::histo::h1d -> h1 etc. + return hnTypeLong[14] == 'p'; +} // String conversion template @@ -144,30 +131,42 @@ G4String GetHnFileName( const G4String& hnType, const G4String& hnName); -// Compose and return the ntuple specific file name: -// - add _nt_ntupleName suffix to the file base name -// - add _tN suffix if called on thread worker -// - add file extension if not present -G4String GetNtupleFileName( +// Update Hn file name: +// - add _vN suffix to the base namer if cycle > 0 +G4String GetHnFileName( const G4String& fileName, const G4String& fileType, - const G4String& ntupleName); + G4int cycle = 0); // Compose and return the ntuple specific file name: // - add _nt_ntupleName suffix to the file base name +// - add _vN suffix if cycle > 0 // - add _tN suffix if called on thread worker // - add file extension if not present G4String GetNtupleFileName( const G4String& fileName, const G4String& fileType, - G4int ntupleFileNumber); + const G4String& ntupleName, + G4int cycle = 0); + +// Compose and return the ntuple specific file name: +// - add _mFN suffix to the file base name where FN = ntupleFileNumber +// - add _vN suffix if cycle > 0 +// - add file extension if not present +G4String GetNtupleFileName( + const G4String& fileName, + const G4String& fileType, + G4int ntupleFileNumber, + G4int cycle = 0); // Update file base name with the thread suffix: +// - add _vN suffix if cycle > 0 // - add _tN suffix if called on thread worker // - add file extension if not present G4String GetTnFileName( const G4String& fileName, - const G4String& fileType); + const G4String& fileType, + G4int cycle = 0); // Generate plot file name for an output file name G4String GetPlotFileName(const G4String& fileName); diff --git a/source/analysis/management/include/G4BaseAnalysisManager.hh b/source/analysis/management/include/G4BaseAnalysisManager.hh index 8038fb4d7b..da842227e1 100644 --- a/source/analysis/management/include/G4BaseAnalysisManager.hh +++ b/source/analysis/management/include/G4BaseAnalysisManager.hh @@ -55,6 +55,7 @@ class G4BaseAnalysisManager // Access method G4int GetFirstId() const; + G4int GetCycle() const; protected: // Methods for verbose @@ -95,5 +96,9 @@ inline G4int G4BaseAnalysisManager::GetFirstId() const { return fFirstId; } +inline G4int G4BaseAnalysisManager::GetCycle() const { + return fState.GetCycle(); +} + #endif diff --git a/source/analysis/management/include/G4BaseFileManager.hh b/source/analysis/management/include/G4BaseFileManager.hh index f71ddfb04b..d613719a25 100644 --- a/source/analysis/management/include/G4BaseFileManager.hh +++ b/source/analysis/management/include/G4BaseFileManager.hh @@ -47,6 +47,10 @@ class G4BaseFileManager // Set the base file name (without extension) virtual G4String GetFileType() const; // Return the manager type (starts with a lowercase letter) + virtual G4bool HasCycles() const; + // Return true when the output supports writing the same object in a file + // multiple times. + // The default implementation returns false. void AddFileName(const G4String& fileName); // For handling multiple files @@ -68,15 +72,24 @@ class G4BaseFileManager // - add _hn_hnName suffix to the file base name // - add file extension if not present - G4String GetNtupleFileName(const G4String& ntupleName) const; + G4String GetHnFileName(const G4String& fileName, + G4int cycle = 0) const; + // Update Hn file name: + // - add _vN suffix to the base namer if cycle > 0 + + G4String GetNtupleFileName(const G4String& ntupleName, + G4int cycle = 0) const; // Compose and return the ntuple specific file name: // - add _nt_ntupleName suffix to the file base name + // - add _vN suffix if cycle > 0 // - add _tN suffix if called on thread worker // - add file extension if not present - G4String GetNtupleFileName(G4int ntupleFileNumber) const; + G4String GetNtupleFileName(G4int ntupleFileNumber, + G4int cycle = 0) const; // Compose and return the ntuple specific file name: // - add _mN suffix to the file base name + // - add _vN suffix if cycle > 0 // - add file extension if not present G4String GetPlotFileName() const; @@ -102,6 +115,10 @@ inline G4bool G4BaseFileManager::SetFileName(const G4String& fileName) { return true; } +inline G4bool G4BaseFileManager::HasCycles() const { + return false; +} + inline G4String G4BaseFileManager::GetFileName() const { return fFileName; } diff --git a/source/analysis/management/include/G4BaseNtupleManager.hh b/source/analysis/management/include/G4BaseNtupleManager.hh index 25dcce3873..37adef72de 100644 --- a/source/analysis/management/include/G4BaseNtupleManager.hh +++ b/source/analysis/management/include/G4BaseNtupleManager.hh @@ -40,7 +40,7 @@ class G4BaseNtupleManager : public G4VNtupleManager public: explicit G4BaseNtupleManager(const G4AnalysisManagerState& state); G4BaseNtupleManager() = delete; - virtual ~G4BaseNtupleManager() = default; + ~G4BaseNtupleManager() override = default; // deleted copy constructor & assignment operator G4BaseNtupleManager(const G4BaseNtupleManager& rhs) = delete; @@ -48,26 +48,25 @@ class G4BaseNtupleManager : public G4VNtupleManager protected: // Methods for handling ntuples - virtual G4int CreateNtuple(G4NtupleBooking* booking) = 0; + G4int CreateNtuple(G4NtupleBooking* booking) override = 0; // Methods to fill ntuples // Methods for ntuple with id = FirstNtupleId - virtual G4bool FillNtupleIColumn(G4int id, G4int value) final; - virtual G4bool FillNtupleFColumn(G4int id, G4float value) final; - virtual G4bool FillNtupleDColumn(G4int id, G4double value) final; - virtual G4bool FillNtupleSColumn(G4int id, const G4String& value) final; - virtual G4bool AddNtupleRow() final; + G4bool FillNtupleIColumn(G4int id, G4int value) final; + G4bool FillNtupleFColumn(G4int id, G4float value) final; + G4bool FillNtupleDColumn(G4int id, G4double value) final; + G4bool FillNtupleSColumn(G4int id, const G4String& value) final; + G4bool AddNtupleRow() final; // Methods for ntuple with id > FirstNtupleId (when more ntuples exist) - virtual G4bool FillNtupleIColumn(G4int ntupleId, G4int columnId, G4int value) = 0; - virtual G4bool FillNtupleFColumn(G4int ntupleId, G4int columnId, G4float value) = 0; - virtual G4bool FillNtupleDColumn(G4int ntupleId, G4int columnId, G4double value) = 0; - virtual G4bool FillNtupleSColumn(G4int ntupleId, G4int columnId, - const G4String& value) = 0; - virtual G4bool AddNtupleRow(G4int ntupleId) = 0; + G4bool FillNtupleIColumn(G4int ntupleId, G4int columnId, G4int value) override = 0; + G4bool FillNtupleFColumn(G4int ntupleId, G4int columnId, G4float value) override = 0; + G4bool FillNtupleDColumn(G4int ntupleId, G4int columnId, G4double value) override = 0; + G4bool FillNtupleSColumn(G4int ntupleId, G4int columnId, const G4String& value) override = 0; + G4bool AddNtupleRow(G4int ntupleId) override = 0; // Fisrt column id - virtual G4bool SetFirstNtupleColumnId(G4int firstId) final; + G4bool SetFirstNtupleColumnId(G4int firstId) final; protected: G4int fFirstNtupleColumnId { 0 }; diff --git a/source/analysis/management/include/G4BaseRNtupleManager.hh b/source/analysis/management/include/G4BaseRNtupleManager.hh index 14731fe43f..ecff745f02 100644 --- a/source/analysis/management/include/G4BaseRNtupleManager.hh +++ b/source/analysis/management/include/G4BaseRNtupleManager.hh @@ -45,7 +45,7 @@ class G4BaseRNtupleManager : public G4VRNtupleManager public: explicit G4BaseRNtupleManager(const G4AnalysisManagerState& state); - virtual ~G4BaseRNtupleManager() = default; + ~G4BaseRNtupleManager() override = default; // deleted default © constructors & assignment operator G4BaseRNtupleManager() = delete; @@ -55,47 +55,38 @@ class G4BaseRNtupleManager : public G4VRNtupleManager protected: // Methods to read ntuple from a file // Methods for ntuple with id = FirstNtupleId - virtual G4bool SetNtupleIColumn(const G4String& columnName, - G4int& value) final; - virtual G4bool SetNtupleFColumn(const G4String& columnName, - G4float& value) final; - virtual G4bool SetNtupleDColumn(const G4String& columnName, - G4double& value) final; - virtual G4bool SetNtupleSColumn(const G4String& columnName, - G4String& value) final; + G4bool SetNtupleIColumn(const G4String& columnName, G4int& value) final; + G4bool SetNtupleFColumn(const G4String& columnName, G4float& value) final; + G4bool SetNtupleDColumn(const G4String& columnName, G4double& value) final; + G4bool SetNtupleSColumn(const G4String& columnName, G4String& value) final; // Methods for ntuple with id > FirstNtupleId - virtual G4bool SetNtupleIColumn(G4int ntupleId, - const G4String& columnName, G4int& value)= 0; - virtual G4bool SetNtupleFColumn(G4int ntupleId, - const G4String& columnName, G4float& value)= 0; - virtual G4bool SetNtupleDColumn(G4int ntupleId, - const G4String& columnName, G4double& value)= 0; - virtual G4bool SetNtupleSColumn(G4int ntupleId, - const G4String& columnName, G4String& value)= 0; + G4bool SetNtupleIColumn(G4int ntupleId, const G4String& columnName, G4int& value) override = 0; + G4bool SetNtupleFColumn( + G4int ntupleId, const G4String& columnName, G4float& value) override = 0; + G4bool SetNtupleDColumn( + G4int ntupleId, const G4String& columnName, G4double& value) override = 0; + G4bool SetNtupleSColumn( + G4int ntupleId, const G4String& columnName, G4String& value) override = 0; // Bind the ntuple columns of vector type // Methods for ntuple with id = FirstNtupleId - virtual G4bool SetNtupleIColumn(const G4String& columnName, - std::vector& vector) final; - virtual G4bool SetNtupleFColumn(const G4String& columnName, - std::vector& vector) final; - virtual G4bool SetNtupleDColumn(const G4String& columnName, - std::vector& vector) final; - virtual G4bool SetNtupleSColumn(const G4String& columnName, - std::vector& vector) final; + G4bool SetNtupleIColumn(const G4String& columnName, std::vector& vector) final; + G4bool SetNtupleFColumn(const G4String& columnName, std::vector& vector) final; + G4bool SetNtupleDColumn(const G4String& columnName, std::vector& vector) final; + G4bool SetNtupleSColumn(const G4String& columnName, std::vector& vector) final; // Methods for ntuple with id > FirstNtupleId - virtual G4bool SetNtupleIColumn(G4int ntupleId, const G4String& columnName, - std::vector& vector) = 0; - virtual G4bool SetNtupleFColumn(G4int ntupleId, const G4String& columnName, - std::vector& vector) = 0; - virtual G4bool SetNtupleDColumn(G4int ntupleId, const G4String& columnName, - std::vector& vector) = 0; - virtual G4bool SetNtupleSColumn(G4int ntupleId, const G4String& columnName, - std::vector& vector) = 0; - virtual G4bool GetNtupleRow() final; - virtual G4bool GetNtupleRow(G4int ntupleId) = 0; + G4bool SetNtupleIColumn( + G4int ntupleId, const G4String& columnName, std::vector& vector) override = 0; + G4bool SetNtupleFColumn( + G4int ntupleId, const G4String& columnName, std::vector& vector) override = 0; + G4bool SetNtupleDColumn( + G4int ntupleId, const G4String& columnName, std::vector& vector) override = 0; + G4bool SetNtupleSColumn( + G4int ntupleId, const G4String& columnName, std::vector& vector) override = 0; + G4bool GetNtupleRow() final; + G4bool GetNtupleRow(G4int ntupleId) override = 0; // Access methods - virtual G4int GetNofNtuples() const = 0; + G4int GetNofNtuples() const override = 0; private: // Methods diff --git a/source/analysis/management/include/G4H1Messenger.hh b/source/analysis/management/include/G4H1Messenger.hh deleted file mode 100644 index 2998900d5d..0000000000 --- a/source/analysis/management/include/G4H1Messenger.hh +++ /dev/null @@ -1,78 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// The messenger class for H1 management. -// It implements commands in /analysis/h1 directory. -// -// This messenger class is a generalization of the HistoMessenger class, -// originally developed for the extended/electromagnetic examples -// by Michel Maire (michel.maire@lapp.in2p3.fr) -// -// Author: Ivana Hrivnacova, 24/06/2013 (ivana@ipno.in2p3.fr) - -#ifndef G4H1Messenger_h -#define G4H1Messenger_h 1 - -#include "G4UImessenger.hh" -#include "globals.hh" - -#include - -class G4VAnalysisManager; -class G4AnalysisMessengerHelper; -class G4UIdirectory; -class G4UIcommand; - -class G4H1Messenger : public G4UImessenger -{ - public: - explicit G4H1Messenger(G4VAnalysisManager* manager); - G4H1Messenger() = delete; - virtual ~G4H1Messenger(); - - // Methods - virtual void SetNewValue(G4UIcommand* command, G4String value) final; - - private: - void CreateH1Cmd(); - void SetH1Cmd(); - - G4VAnalysisManager* fManager { nullptr }; ///< Associated class - std::unique_ptr fHelper; - std::unique_ptr fDirectory; - - std::unique_ptr fCreateH1Cmd; - std::unique_ptr fSetH1Cmd; - std::unique_ptr fSetH1XCmd; - std::unique_ptr fSetH1TitleCmd; - std::unique_ptr fSetH1XAxisCmd; - std::unique_ptr fSetH1YAxisCmd; - std::unique_ptr fSetH1XAxisLogCmd; - std::unique_ptr fSetH1YAxisLogCmd; -}; - -#endif - diff --git a/source/analysis/management/include/G4H2Messenger.hh b/source/analysis/management/include/G4H2Messenger.hh deleted file mode 100644 index 323bcb7674..0000000000 --- a/source/analysis/management/include/G4H2Messenger.hh +++ /dev/null @@ -1,80 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// The messenger class for H2 management. -// It implements commands in /analysis/h2 directory. -// -// Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr) - -#ifndef G4H2Messenger_h -#define G4H2Messenger_h 1 - -#include "G4UImessenger.hh" -#include "G4AnalysisMessengerHelper.hh" -#include "G4AnalysisUtilities.hh" -#include "globals.hh" - -#include - -class G4VAnalysisManager; -class G4UIdirectory; -class G4UIcommand; - -class G4H2Messenger : public G4UImessenger -{ - public: - explicit G4H2Messenger(G4VAnalysisManager* manager); - G4H2Messenger() = delete; - virtual ~G4H2Messenger(); - - // Methods - virtual void SetNewValue(G4UIcommand* command, G4String value) final; - - private: - void CreateH2Cmd(); - void SetH2Cmd(); - - G4VAnalysisManager* fManager { nullptr }; ///< Associated class - std::unique_ptr fHelper; - std::unique_ptr fDirectory; - - std::unique_ptr fCreateH2Cmd; - std::unique_ptr fSetH2Cmd; - std::unique_ptr fSetH2XCmd; - std::unique_ptr fSetH2YCmd; - std::unique_ptr fSetH2TitleCmd; - std::unique_ptr fSetH2XAxisCmd; - std::unique_ptr fSetH2YAxisCmd; - std::unique_ptr fSetH2ZAxisCmd; - std::unique_ptr fSetH2XAxisLogCmd; - std::unique_ptr fSetH2YAxisLogCmd; - std::unique_ptr fSetH2ZAxisLogCmd; - - G4int fXId { G4Analysis::kInvalidId }; - G4AnalysisMessengerHelper::BinData fXData; -}; - -#endif diff --git a/source/analysis/management/include/G4H3Messenger.hh b/source/analysis/management/include/G4H3Messenger.hh deleted file mode 100644 index 8391a38e9a..0000000000 --- a/source/analysis/management/include/G4H3Messenger.hh +++ /dev/null @@ -1,83 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// The messenger class for H3 management. -// It implements commands in /analysis/h3 directory. -// -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#ifndef G4H3Messenger_h -#define G4H3Messenger_h 1 - -#include "G4UImessenger.hh" -#include "G4AnalysisMessengerHelper.hh" -#include "G4AnalysisUtilities.hh" -#include "globals.hh" - -#include - -class G4VAnalysisManager; -class G4UIdirectory; -class G4UIcommand; - -class G4H3Messenger : public G4UImessenger -{ - public: - explicit G4H3Messenger(G4VAnalysisManager* manager); - G4H3Messenger() = delete; - virtual ~G4H3Messenger(); - - // Methods - virtual void SetNewValue(G4UIcommand* command, G4String value) final; - - private: - void CreateH3Cmd(); - void SetH3Cmd(); - - G4VAnalysisManager* fManager { nullptr }; ///< Associated class - std::unique_ptr fHelper; - std::unique_ptr fDirectory; - - std::unique_ptr fCreateH3Cmd; - std::unique_ptr fSetH3Cmd; - std::unique_ptr fSetH3XCmd; - std::unique_ptr fSetH3YCmd; - std::unique_ptr fSetH3ZCmd; - std::unique_ptr fSetH3TitleCmd; - std::unique_ptr fSetH3XAxisCmd; - std::unique_ptr fSetH3YAxisCmd; - std::unique_ptr fSetH3ZAxisCmd; - std::unique_ptr fSetH3XAxisLogCmd; - std::unique_ptr fSetH3YAxisLogCmd; - std::unique_ptr fSetH3ZAxisLogCmd; - - G4int fXId { G4Analysis::kInvalidId }; - G4int fYId { G4Analysis::kInvalidId }; - G4AnalysisMessengerHelper::BinData fXData; - G4AnalysisMessengerHelper::BinData fYData; -}; - -#endif diff --git a/source/analysis/management/include/G4HnInformation.hh b/source/analysis/management/include/G4HnInformation.hh index c8c8f96ee1..0870cc676f 100644 --- a/source/analysis/management/include/G4HnInformation.hh +++ b/source/analysis/management/include/G4HnInformation.hh @@ -31,66 +31,102 @@ #ifndef G4HnInformation_h #define G4HnInformation_h 1 -#include "globals.hh" -#include "G4Fcn.hh" -#include "G4BinScheme.hh" #include "G4AnalysisUtilities.hh" +#include "G4BinScheme.hh" +#include "G4Fcn.hh" +#include "globals.hh" -// The additional Hn information per dimension +#include +#include +// The histogram input parameters per dimension +struct G4HnDimension +{ + G4HnDimension( + G4int nbins, + G4double minValue, + G4double maxValue) + : fNBins(nbins), + fMinValue(minValue), + fMaxValue(maxValue) + { + fEdges.clear(); + } + + G4HnDimension(const std::vector& edges) + : fNBins(0), + fMinValue(0.), + fMaxValue(0.), + fEdges(edges) + {} + + G4HnDimension() = default; + G4HnDimension(const G4HnDimension& rhs) = default; + G4HnDimension& operator=(const G4HnDimension& rhs) = default; + + void Print() const; + + G4int fNBins{0}; + G4double fMinValue{0.}; + G4double fMaxValue{0.}; + std::vector fEdges; +}; + +// The additional histogram information per dimension struct G4HnDimensionInformation { G4HnDimensionInformation( - const G4String& unitName, - const G4String& fcnName, - G4double unit, - G4Fcn fcn, - G4BinScheme binScheme) - : fUnitName(unitName), - fFcnName(fcnName), - fUnit(unit), - fFcn(fcn), - fBinScheme(binScheme) + G4String unitName, + G4String fcnName, + G4String binSchemeName = "linear") + : fUnitName(std::move(unitName)), + fFcnName(std::move(fcnName)), + fBinSchemeName(std::move(binSchemeName)), + fUnit(G4Analysis::GetUnitValue(fUnitName)), + fFcn(G4Analysis::GetFunction(fFcnName)), + fBinScheme(G4Analysis::GetBinScheme(fBinSchemeName)) {} - G4HnDimensionInformation() = default; + G4HnDimensionInformation() + : G4HnDimensionInformation("none", "none", "linear") {} G4HnDimensionInformation(const G4HnDimensionInformation& rhs) = default; G4HnDimensionInformation& operator=(const G4HnDimensionInformation& rhs) = default; - //G4String fName; + void Print() const; + G4String fUnitName; G4String fFcnName; + G4String fBinSchemeName; G4double fUnit; G4Fcn fFcn; G4BinScheme fBinScheme; }; +// The additional histogram information class G4HnInformation { public: - G4HnInformation(const G4String& name, G4int nofDimensions) - : fName(name) + G4HnInformation(G4String name, G4int nofDimensions) + : fName(std::move(name)) { fHnDimensionInformations.reserve(nofDimensions); } // Deleted default constructor G4HnInformation() = delete; // Set methods - void AddHnDimensionInformation( - const G4HnDimensionInformation& hnDimensionInformation); - void AddDimension( - const G4String& unitName, const G4String& fcnName, G4BinScheme binScheme); - void SetDimension(G4int dimension, - const G4String& unitName, const G4String& fcnName, G4BinScheme binScheme); + void AddDimension(const G4HnDimensionInformation& hnDimensionInformation); + void SetDimension(G4int dimension, const G4HnDimensionInformation& hnDimensionInformation); + void SetIsLogAxis(G4int axis, G4bool isLog); void SetActivation(G4bool activation); void SetAscii(G4bool ascii); void SetPlotting(G4bool plotting); - void SetFileName(G4String fileName); + void SetFileName(const G4String& fileName); // Get methods G4String GetName() const; G4HnDimensionInformation* GetHnDimensionInformation(G4int dimension); + const G4HnDimensionInformation& GetHnDimensionInformation(G4int dimension) const; G4bool GetIsLogAxis(G4int axis) const; G4bool GetActivation() const; G4bool GetAscii() const; @@ -108,32 +144,38 @@ class G4HnInformation G4String fFileName; }; +namespace G4Analysis +{ + +// Apply Hn information +void Update(G4double& value, const G4HnDimensionInformation& hnInfo); +void UpdateValues(G4HnDimension& bins, const G4HnDimensionInformation& hnInfo); +void Update(G4HnDimension& bins, const G4HnDimensionInformation& hnInfo); +void UpdateTitle(G4String& title, const G4HnDimensionInformation& hnInfo); + +// Paremeters check +G4bool CheckMinMax(G4double min, G4double max); +G4bool CheckDimension(unsigned int idim, + const G4HnDimension& dimension, const G4HnDimensionInformation& info); + +template +G4bool CheckDimensions( + const std::array& bins, + const std::array& hnInfo, + G4bool isProfile = false); +} + // inline functions -inline void G4HnInformation::AddHnDimensionInformation( +inline void G4HnInformation::AddDimension( const G4HnDimensionInformation& hnDimensionInformation) { fHnDimensionInformations.push_back(hnDimensionInformation); } -inline void G4HnInformation::AddDimension( - const G4String& unitName, const G4String& fcnName, G4BinScheme binScheme) -{ - auto unit = G4Analysis::GetUnitValue(unitName); - auto fcn = G4Analysis::GetFunction(fcnName); - fHnDimensionInformations.emplace_back( - unitName, fcnName, unit, fcn, binScheme); -} - -inline void G4HnInformation::SetDimension(G4int dimension, - const G4String& unitName, const G4String& fcnName, G4BinScheme binScheme) +inline void G4HnInformation::SetDimension( + G4int dimension, const G4HnDimensionInformation& hnDimensionInformation) { auto info = GetHnDimensionInformation(dimension); - auto unit = G4Analysis::GetUnitValue(unitName); - auto fcn = G4Analysis::GetFunction(fcnName); - info->fUnitName = unitName; - info->fFcnName = fcnName; - info->fUnit = unit; - info->fFcn = fcn; - info->fBinScheme = binScheme; + (*info) = hnDimensionInformation; } inline void G4HnInformation::SetIsLogAxis(G4int axis, G4bool isLog) @@ -148,7 +190,7 @@ inline void G4HnInformation::SetAscii(G4bool ascii) inline void G4HnInformation::SetPlotting(G4bool plotting) { fPlotting = plotting; } -inline void G4HnInformation::SetFileName(G4String fileName) +inline void G4HnInformation::SetFileName(const G4String& fileName) { fFileName = fileName; } inline G4String G4HnInformation::GetName() const @@ -157,6 +199,9 @@ inline G4String G4HnInformation::GetName() const inline G4HnDimensionInformation* G4HnInformation::GetHnDimensionInformation(G4int dimension) { return &(fHnDimensionInformations[dimension]); } +inline const G4HnDimensionInformation& G4HnInformation::GetHnDimensionInformation(G4int dimension) const +{ return fHnDimensionInformations[dimension]; } + inline G4bool G4HnInformation::GetIsLogAxis(G4int axis) const { return fIsLogAxis[axis]; } @@ -172,4 +217,27 @@ inline G4bool G4HnInformation::GetPlotting() const inline G4String G4HnInformation::GetFileName() const { return fFileName; } +template +inline G4bool G4Analysis::CheckDimensions( + const std::array& bins, + const std::array& hnInfo, + G4bool isProfile) +{ + G4bool result = true; + + // Check bins parameters + // (the last dimension has special meaninh for profiles) + auto dimToCheck = (isProfile) ? DIM -1 : DIM ; + for (unsigned int idim = 0; idim < dimToCheck; ++idim) { + result &= CheckDimension(idim, bins[idim], hnInfo[idim]); + } + + // Check profile min/max value + if (isProfile) { + result &= CheckMinMax(bins[DIM-1].fMinValue, bins[DIM-1].fMaxValue); + } + + return result; +} + #endif diff --git a/source/analysis/management/include/G4HnManager.hh b/source/analysis/management/include/G4HnManager.hh index b3734018ce..5c6986223a 100644 --- a/source/analysis/management/include/G4HnManager.hh +++ b/source/analysis/management/include/G4HnManager.hh @@ -37,18 +37,19 @@ #include "G4HnInformation.hh" #include "globals.hh" -#include #include +#include +#include class G4VFileManager; +class G4HnMessenger; class G4HnManager : public G4BaseAnalysisManager { public: - G4HnManager(const G4String& hnType, - const G4AnalysisManagerState& state); + G4HnManager(G4String hnType, const G4AnalysisManagerState& state); G4HnManager() = delete; - virtual ~G4HnManager(); + ~G4HnManager() override; // Methods to manipulate additional information @@ -68,6 +69,7 @@ class G4HnManager : public G4BaseAnalysisManager const std::vector& GetHnVector() const; G4int GetNofHns() const; + G4int GetNofActiveHns() const; G4String GetHnType() const; // Activation option @@ -100,19 +102,13 @@ class G4HnManager : public G4BaseAnalysisManager void SetPlotting(G4bool plotting); void SetFileName(G4int id, const G4String& fileName); void SetFileName(const G4String& fileName); - G4bool SetXAxisIsLog(G4int id, G4bool isLogAxis); - G4bool SetYAxisIsLog(G4int id, G4bool isLogAxis); - G4bool SetZAxisIsLog(G4int id, G4bool isLogAxis); + G4bool SetAxisIsLog(unsigned int idim, G4int id, G4bool isLogAxis); // Access to Hn additional information G4String GetName(G4int id) const; - G4double GetXUnit(G4int id) const; - G4double GetYUnit(G4int id) const; - G4double GetZUnit(G4int id) const; - G4bool GetXAxisIsLog(G4int id) const; - G4bool GetYAxisIsLog(G4int id) const; - G4bool GetZAxisIsLog(G4int id) const; + G4double GetUnit(unsigned int idim, G4int id) const; + G4bool GetAxisIsLog(unsigned int idim, G4int id) const; G4bool GetActivation(G4int id) const; G4bool GetAscii(G4int id) const; G4bool GetPlotting(G4int id) const; @@ -139,11 +135,17 @@ class G4HnManager : public G4BaseAnalysisManager // Additional histograms/ntuple properties not included in tools std::vector fHnVector; std::shared_ptr fFileManager { nullptr }; + + // Messenger + std::unique_ptr fMessenger; }; inline G4int G4HnManager::GetNofHns() const { return G4int(fHnVector.size()); } +inline G4int G4HnManager::GetNofActiveHns() const +{ return fNofActiveObjects; } + inline G4String G4HnManager::GetHnType() const { return fHnType; } @@ -151,7 +153,9 @@ inline const std::vector& G4HnManager::GetHnVector() const { return fHnVector; } inline void G4HnManager::SetFileManager(std::shared_ptr fileManager) -{ fFileManager = fileManager; } +{ + fFileManager = std::move(fileManager); +} #endif diff --git a/source/analysis/management/include/G4HnMessenger.hh b/source/analysis/management/include/G4HnMessenger.hh index 651ccfe79c..71860c86b8 100644 --- a/source/analysis/management/include/G4HnMessenger.hh +++ b/source/analysis/management/include/G4HnMessenger.hh @@ -38,10 +38,8 @@ #include class G4HnManager; -class G4AnalysisMessengerHelper; class G4UIcommand; class G4UIcmdWithABool; -class G4UIcmdWithAnInteger; class G4UIcmdWithAString; class G4HnMessenger : public G4UImessenger @@ -49,12 +47,19 @@ class G4HnMessenger : public G4UImessenger public: explicit G4HnMessenger(G4HnManager& manager); G4HnMessenger() = delete; - virtual ~G4HnMessenger(); + ~G4HnMessenger() override; // Methods - virtual void SetNewValue(G4UIcommand* command, G4String value) final; + void SetNewValue(G4UIcommand* command, G4String value) final; private: + // Helper functions + G4String GetObjectType() const; + template + std::unique_ptr CreateCommand(G4String name, G4String guidance); + void AddIdParameter(G4UIcommand& command); + void AddOptionParameter(G4UIcommand& command, G4String optionName); + void SetHnAsciiCmd(); void SetHnActivationCmd(); void SetHnActivationToAllCmd(); @@ -63,17 +68,34 @@ class G4HnMessenger : public G4UImessenger void SetHnFileNameCmd(); void SetHnFileNameToAllCmd(); - G4HnManager& fManager; ///< Associated class - std::unique_ptr fHelper; + // constants + static constexpr std::string_view fkClass { "G4HnMessenger" }; - std::unique_ptr fSetHnAsciiCmd; - std::unique_ptr fSetHnActivationCmd; - std::unique_ptr fSetHnActivationAllCmd; - std::unique_ptr fSetHnPlottingCmd; - std::unique_ptr fSetHnPlottingAllCmd; - std::unique_ptr fSetHnFileNameCmd; - std::unique_ptr fSetHnFileNameAllCmd; + // Data members + G4HnManager& fManager; ///< Associated class + G4String fHnType; + std::unique_ptr fSetAsciiCmd; + std::unique_ptr fSetActivationCmd; + std::unique_ptr fSetActivationAllCmd; + std::unique_ptr fSetPlottingCmd; + std::unique_ptr fSetPlottingAllCmd; + std::unique_ptr fSetFileNameCmd; + std::unique_ptr fSetFileNameAllCmd; }; -#endif +//_____________________________________________________________________________ +template +std::unique_ptr G4HnMessenger::CreateCommand( + G4String name, G4String guidance) +{ + G4String fullName = "/analysis/" + fHnType + "/" + name; + G4String fullGuidance = guidance + GetObjectType(); + auto command = std::make_unique(fullName, this); + command->SetGuidance(fullGuidance); + command->AvailableForStates(G4State_PreInit, G4State_Idle); + + return command; +} + +#endif diff --git a/source/analysis/management/include/G4NtupleBookingManager.hh b/source/analysis/management/include/G4NtupleBookingManager.hh index 808dac430d..8ba68dfd6a 100644 --- a/source/analysis/management/include/G4NtupleBookingManager.hh +++ b/source/analysis/management/include/G4NtupleBookingManager.hh @@ -42,7 +42,7 @@ struct G4NtupleBooking { - G4NtupleBooking() {} + G4NtupleBooking() = default; ~G4NtupleBooking() = default; tools::ntuple_booking fNtupleBooking; @@ -60,7 +60,7 @@ class G4NtupleBookingManager : public G4BaseAnalysisManager public: explicit G4NtupleBookingManager(const G4AnalysisManagerState& state); G4NtupleBookingManager() = delete; - ~G4NtupleBookingManager(); + ~G4NtupleBookingManager() override; const std::vector& GetNtupleBookingVector() const; @@ -132,6 +132,8 @@ class G4NtupleBookingManager : public G4BaseAnalysisManager G4int id, std::string_view function, G4bool warn = true) const; + + G4bool CheckName(const G4String& name, const G4String& objectType) const; template G4int CreateNtupleTColumn(G4int ntupleId, const G4String& name, std::vector* vector); diff --git a/source/analysis/management/include/G4NtupleBookingManager.icc b/source/analysis/management/include/G4NtupleBookingManager.icc index efb18e5ca1..e502f9420a 100644 --- a/source/analysis/management/include/G4NtupleBookingManager.icc +++ b/source/analysis/management/include/G4NtupleBookingManager.icc @@ -36,6 +36,8 @@ template G4int G4NtupleBookingManager::CreateNtupleTColumn( G4int ntupleId, const G4String& name, std::vector* vector) { + if (! CheckName(name, "NtupleColumn")) return G4Analysis::kInvalidId; + Message(G4Analysis::kVL4, "create", "ntuple T column", " ntupleId " + std::to_string(ntupleId)); @@ -46,10 +48,12 @@ G4int G4NtupleBookingManager::CreateNtupleTColumn( // Save column info in booking auto& ntupleBooking = g4NtupleBooking->fNtupleBooking; auto index = ntupleBooking.columns().size(); - if ( ! vector ) + if (! vector) { ntupleBooking.template add_column(name); - else + } + else { ntupleBooking.template add_column(name, *vector); + } // Create column if ntuple already exists // CreateTColumnInNtuple(ntupleBooking, name, vector); diff --git a/source/analysis/management/include/G4NtupleMessenger.hh b/source/analysis/management/include/G4NtupleMessenger.hh index 49f34a46d9..f4ef0b57fd 100644 --- a/source/analysis/management/include/G4NtupleMessenger.hh +++ b/source/analysis/management/include/G4NtupleMessenger.hh @@ -24,8 +24,10 @@ // ******************************************************************** // -// The messenger class for histogram information management. -// It implements commands in /analysis/h1 directory. +// The messenger class for ntuple management. +// It implements commands in /analysis/ntuple directory. +// It is asscoiciated with G4VAnalysisManager and this delegates +// call to both ntuple booking and ntuple managers. // // Author: Ivana Hrivnacova, 05/05/2015 (ivana@ipno.in2p3.fr) @@ -48,17 +50,22 @@ class G4NtupleMessenger : public G4UImessenger public: explicit G4NtupleMessenger(G4VAnalysisManager* manager); G4NtupleMessenger() = delete; - virtual ~G4NtupleMessenger(); + ~G4NtupleMessenger() override; // Methods - virtual void SetNewValue(G4UIcommand* command, G4String value) final; + void SetNewValue(G4UIcommand* command, G4String value) final; private: // Methods + template + std::unique_ptr CreateCommand(G4String name, G4String guidance); + void AddIdParameter(G4UIcommand& command); + void SetActivationCmd(); void SetActivationToAllCmd(); void SetFileNameCmd(); void SetFileNameToAllCmd(); + void ListCmd(); // Static data members static constexpr std::string_view fkClass { "G4NtupleMessenger" }; @@ -71,6 +78,21 @@ class G4NtupleMessenger : public G4UImessenger std::unique_ptr fSetActivationAllCmd; std::unique_ptr fSetFileNameCmd; std::unique_ptr fSetFileNameAllCmd; + std::unique_ptr fListCmd; }; +//_____________________________________________________________________________ +template +std::unique_ptr G4NtupleMessenger::CreateCommand( + G4String name, G4String guidance) +{ + G4String fullName = "/analysis/ntuple/" + name; + + auto command = std::make_unique(fullName, this); + command->SetGuidance(guidance.c_str()); + command->AvailableForStates(G4State_PreInit, G4State_Idle); + + return command; +} + #endif diff --git a/source/analysis/management/include/G4P2Messenger.hh b/source/analysis/management/include/G4P2Messenger.hh deleted file mode 100644 index a348d717c6..0000000000 --- a/source/analysis/management/include/G4P2Messenger.hh +++ /dev/null @@ -1,83 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// The messenger class for P2 management. -// It implements commands in /analysis/p2 directory. -// -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#ifndef G4P2Messenger_h -#define G4P2Messenger_h 1 - -#include "G4UImessenger.hh" -#include "G4AnalysisMessengerHelper.hh" -#include "G4AnalysisUtilities.hh" -#include "globals.hh" - -#include - -class G4VAnalysisManager; -class G4UIdirectory; -class G4UIcommand; - -class G4P2Messenger : public G4UImessenger -{ - public: - explicit G4P2Messenger(G4VAnalysisManager* manager); - G4P2Messenger() = delete; - virtual ~G4P2Messenger(); - - // Methods - virtual void SetNewValue(G4UIcommand* command, G4String value) final; - - private: - void CreateP2Cmd(); - void SetP2Cmd(); - - G4VAnalysisManager* fManager { nullptr }; ///< Associated class - std::unique_ptr fHelper; - std::unique_ptr fDirectory; - - std::unique_ptr fCreateP2Cmd; - std::unique_ptr fSetP2Cmd; - std::unique_ptr fSetP2XCmd; - std::unique_ptr fSetP2YCmd; - std::unique_ptr fSetP2ZCmd; - std::unique_ptr fSetP2TitleCmd; - std::unique_ptr fSetP2XAxisCmd; - std::unique_ptr fSetP2YAxisCmd; - std::unique_ptr fSetP2ZAxisCmd; - std::unique_ptr fSetP2XAxisLogCmd; - std::unique_ptr fSetP2YAxisLogCmd; - std::unique_ptr fSetP2ZAxisLogCmd; - - G4int fXId { G4Analysis::kInvalidId }; - G4int fYId { G4Analysis::kInvalidId }; - G4AnalysisMessengerHelper::BinData fXData; - G4AnalysisMessengerHelper::BinData fYData; -}; - -#endif diff --git a/source/analysis/management/include/G4TFileInformation.hh b/source/analysis/management/include/G4TFileInformation.hh index b74215d88a..56129ed957 100644 --- a/source/analysis/management/include/G4TFileInformation.hh +++ b/source/analysis/management/include/G4TFileInformation.hh @@ -35,20 +35,19 @@ #include "globals.hh" #include +#include template struct G4TFileInformation { - G4TFileInformation(const G4String fileName) - : fFileName(fileName) {} - + G4TFileInformation(G4String fileName) : fFileName(std::move(fileName)) {} G4TFileInformation() = default; ~G4TFileInformation() = default; G4String fFileName; std::shared_ptr fFile { nullptr }; G4bool fIsOpen { false }; - G4bool fIsEmpty { true }; + G4bool fIsEmpty {true }; G4bool fIsDeleted { false }; }; diff --git a/source/analysis/management/include/G4TFileManager.icc b/source/analysis/management/include/G4TFileManager.icc index 99fbee220f..7a684123fb 100644 --- a/source/analysis/management/include/G4TFileManager.icc +++ b/source/analysis/management/include/G4TFileManager.icc @@ -170,9 +170,17 @@ std::shared_ptr G4TFileManager::CreateTFile(const G4String& fileName) { // Check if file already exists if ( GetFileInFunction(fileName, "CreateTFile", false) ) { - G4Analysis::Warn("File " + fileName + " already exists.", - fkClass, "CreateTFile"); - return nullptr; + // Do not issue the warning if cycle > 0 + if (fAMState.GetCycle() == 0) { + G4Analysis::Warn("File " + fileName + " already exists.", + fkClass, "CreateTFile"); + return nullptr; + } + else { + return GetFileInFunction(fileName, "CreateTFile", false); + // should we also update fileInformation ?? + } + } auto fileInformation = GetFileInfoInFunction(fileName, "CreateTFile", false); diff --git a/source/analysis/management/include/G4THnManager.hh b/source/analysis/management/include/G4THnManager.hh index 6e8c1db53d..01930ab04f 100644 --- a/source/analysis/management/include/G4THnManager.hh +++ b/source/analysis/management/include/G4THnManager.hh @@ -43,17 +43,17 @@ class G4AnalysisManagerState; class G4HnManager; +class G4HnInformation; template class G4THnManager { public: - G4THnManager(const G4AnalysisManagerState& state, - const G4String& hnType); + G4THnManager(const G4AnalysisManagerState& state); G4THnManager() = delete; virtual ~G4THnManager(); - G4int RegisterT(HT* t, const G4String& name); + G4int RegisterT(const G4String& name, HT* ht, G4HnInformation* info = nullptr); // Reset data G4bool Reset(); @@ -69,18 +69,32 @@ class G4THnManager // New method for merge void Merge(G4Mutex& mergeMutex, G4THnManager* masterInstance); + // TO DO: change to shared_ptr> masterInstance // Get method - HT* GetT(G4int id) const; - std::vector* GetTVector(); + // HT* GetT(G4int id) const; + HT* GetT(G4int id, G4bool warn = true, G4bool onlyIfActive = true) const; + + std::vector* GetTVector(); + const std::vector& GetTVectorRef() const; + std::vector>* GetTHnVector(); + const std::vector>& GetTHnVectorRef() const; + + // Methods to list/print histograms + G4bool List(std::ostream& output, G4bool onlyIfActive) const; - protected: // Iterators typename std::vector::iterator BeginT(); typename std::vector::iterator EndT(); typename std::vector::const_iterator BeginConstT() const; typename std::vector::const_iterator EndConstT() const; + protected: + std::pair GetTHnInFunction(G4int id, + std::string_view functionName, + G4bool warn = true, + G4bool onlyIfActive = true) const; + HT* GetTInFunction(G4int id, std::string_view functionName, G4bool warn = true, @@ -102,6 +116,7 @@ class G4THnManager // Data members const G4AnalysisManagerState& fState; std::vector fTVector; + std::vector> fTHnVector; std::map fNameIdMap; std::shared_ptr fHnManager { nullptr }; }; diff --git a/source/analysis/management/include/G4THnManager.icc b/source/analysis/management/include/G4THnManager.icc index 1c24c710a3..b86e16c82a 100644 --- a/source/analysis/management/include/G4THnManager.icc +++ b/source/analysis/management/include/G4THnManager.icc @@ -31,15 +31,16 @@ #include "G4AnalysisUtilities.hh" #include "G4AutoLock.hh" +#include + using std::to_string; //_____________________________________________________________________________ template -G4THnManager::G4THnManager(const G4AnalysisManagerState& state, - const G4String& hnType) +G4THnManager::G4THnManager(const G4AnalysisManagerState& state) : fState(state) { - fHnManager = std::make_shared(hnType, state); + fHnManager = std::make_shared(G4Analysis::GetHnType(), state); } //_____________________________________________________________________________ @@ -57,25 +58,32 @@ G4THnManager::~G4THnManager() //_____________________________________________________________________________ template -HT* G4THnManager::GetTInFunction(G4int id, - std::string_view functionName, G4bool warn, - G4bool onlyIfActive) const +std::pair G4THnManager::GetTHnInFunction( + G4int id, std::string_view functionName, G4bool warn, G4bool onlyIfActive) const { G4int index = id - fHnManager->GetFirstId(); - if ( index < 0 || index >= G4int(fTVector.size()) ) { + if ( index < 0 || index >= G4int(fTHnVector.size()) ) { if ( warn) { G4Analysis::Warn("Histogram " + to_string(id) + " does not exist.", fkClass, functionName); } - return nullptr; + return {nullptr, nullptr}; } // Do not return histogram if inactive if ( fState.GetIsActivation() && onlyIfActive && ( ! fHnManager->GetActivation(id) ) ) { - return nullptr; + return {nullptr, nullptr}; } - return fTVector[index]; + return fTHnVector[index]; +} + +//_____________________________________________________________________________ +template +HT* G4THnManager::GetTInFunction( + G4int id, std::string_view functionName, G4bool warn, G4bool onlyIfActive) const +{ + return GetTHnInFunction(id, functionName, warn, onlyIfActive).first; } //_____________________________________________________________________________ @@ -122,7 +130,8 @@ void G4THnManager::AddTVector(const std::vector& tVector) // } auto itw = tVector.begin(); for ( auto t : fTVector ) { - t->add(*(*itw++)); + t->add(*(*itw)); + (*itw++)->reset(); } Message(G4Analysis::kVL1, "merge", "all " + fHnManager->GetHnType()); @@ -172,10 +181,11 @@ typename std::vector::const_iterator G4THnManager::EndConstT() const //_____________________________________________________________________________ template -G4int G4THnManager::RegisterT(HT* t, const G4String& name) +G4int G4THnManager::RegisterT(const G4String& name, HT* ht, G4HnInformation* info) { - G4int index = fTVector.size(); - fTVector.push_back(t); + G4int index = (G4int)fTVector.size(); + fTVector.push_back(ht); + fTHnVector.push_back({ht, info}); fHnManager->SetLockFirstId(true); fNameIdMap[name] = index + fHnManager->GetFirstId(); @@ -207,6 +217,7 @@ G4THnManager::ClearData() } fTVector.clear(); + fTHnVector.clear(); fNameIdMap.clear(); if ( fHnManager != nullptr ) { @@ -225,9 +236,9 @@ G4bool G4THnManager::IsEmpty() const //_____________________________________________________________________________ template -HT* G4THnManager::GetT(G4int id) const +HT* G4THnManager::GetT(G4int id, G4bool warn, G4bool onlyIfActive) const { - return GetTInFunction(id, "GetT"); + return GetTInFunction(id, "GetT", warn, onlyIfActive); } //_____________________________________________________________________________ @@ -236,3 +247,86 @@ std::vector* G4THnManager::GetTVector() { return &fTVector; } + +//_____________________________________________________________________________ +template +const std::vector& G4THnManager::GetTVectorRef() const +{ + return fTVector; +} + +//_____________________________________________________________________________ +template +std::vector>* G4THnManager::GetTHnVector() +{ + return &fTHnVector; +} + +//_____________________________________________________________________________ +template +const std::vector>& G4THnManager::GetTHnVectorRef() const +{ + return fTHnVector; +} + +//_____________________________________________________________________________ +template +G4bool G4THnManager::List(std::ostream& output, G4bool onlyIfActive) const +{ + // Save current output stream formatting + std::ios_base::fmtflags outputFlags(output.flags() ); + + // List general info + output << fHnManager->GetHnType() << ": " << fHnManager->GetNofActiveHns() << " active "; + if (! onlyIfActive) { + output << " of " << fHnManager->GetNofHns() << " defined "; + } + output << G4endl; + + // Define optimal field widths + size_t maxNameLength = 0; + size_t maxTitleLength = 0; + size_t maxEntries = 0; + for ( const auto& [ht, hnInfo] : fTHnVector) { + if (hnInfo->GetName().length() > maxNameLength) { + maxNameLength = hnInfo->GetName().length(); + } + if (ht->title().length() > maxTitleLength) { + maxTitleLength = ht->title().length(); + } + if (ht->entries() > maxEntries) { + maxEntries = ht->entries(); + } + } + size_t maxIdWidth = std::to_string(fTVector.size() + fHnManager->GetFirstId()).length(); + size_t maxEntriesWidth = std::to_string(maxEntries).length(); + // update string width for adde double quotas + maxNameLength += 2; + maxTitleLength += 2; + + // List objects + auto id = fHnManager->GetFirstId(); + for (const auto& [ht, hnInfo] : fTHnVector) { + + // skip inactivated objects + if (fState.GetIsActivation() && onlyIfActive && (! hnInfo->GetActivation())) { + id++; + continue; + } + + // print selected info + output << " id: " << std::setw((G4int)maxIdWidth) << id++ + << " name: \"" << std::setw((G4int)maxNameLength) << std::left << hnInfo->GetName() + "\"" + << " title: \"" << std::setw((G4int)maxTitleLength) << std::left << ht->title() + "\"" + << " entries: " << std::setw((G4int)maxEntriesWidth) << ht->entries(); + if (! onlyIfActive) { + output << " active: " << std::boolalpha << hnInfo->GetActivation(); + } + output << G4endl; + } + + // Restore the output stream formatting + output.flags(outputFlags); + + return output.good(); +} diff --git a/source/analysis/management/include/G4THnMessenger.hh b/source/analysis/management/include/G4THnMessenger.hh new file mode 100644 index 0000000000..1d699ef51d --- /dev/null +++ b/source/analysis/management/include/G4THnMessenger.hh @@ -0,0 +1,125 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Common implementation for histograms messengers. +// It implements commands in /analysis/hn|pn directories +// +// Author: Ivana Hrivnacova, 26/08/2022 (ivana@ipno.in2p3.fr) + +#ifndef G4THnMessenger_h +#define G4THnMessenger_h 1 + +#include "G4UImessenger.hh" +// #include "G4THnToolsManager.hh" + // to avoid include recursion this messenger header is included in G4THnToolsManager.hh + // after the G4THnToolsManager class definition +#include "globals.hh" + +#include +#include +#include +#include + +class G4VAnalysisManager; +class G4UIdirectory; +class G4UIcommand; +struct G4HnDimension; +struct G4HnDimensionInformation; + +template +class G4THnMessenger : public G4UImessenger +{ + public: + G4THnMessenger(G4THnToolsManager* manager); + G4THnMessenger() = delete; + ~G4THnMessenger() override = default; + + // Methods + G4String GetCurrentValue(G4UIcommand* command) final; + void SetNewValue(G4UIcommand* command, G4String value) final; + + private: + // Helper functions + G4String GetObjectType() const; + G4bool IsProfileLastDimension(unsigned int idim) const; + std::unique_ptr CreateCommand(G4String name, G4String guideline); + void CreateDimensionParameters(unsigned int idim, + std::vector& parameters) const; + void AddIdParameter(G4UIcommand& command); + G4String GetTAddress(G4int id) const; + G4String GetTVectorAddress() const; + + // Functions to create commands + void CreateDirectory() const; + void CreateCmd(); + void SetCmd(); + std::unique_ptr CreateSetBinsCommand(unsigned int ibin); + void CreateSetTitleCommand(); + std::unique_ptr CreateSetAxisCommand(unsigned int ibin); + std::unique_ptr CreateSetAxisLogCommand(unsigned int ibin); + void CreateListCommand(); + void CreateGetCommand(); + void CreateGetVectorCommand(); + + // Functions to retrieve data + void GetBinData(unsigned int idim, G4int& counter, + const std::vector& parameters, G4HnDimension& bins) const; + void GetBinInfoData(unsigned int idim, G4int& counter, + const std::vector& parameters, G4HnDimension& bins, + G4HnDimensionInformation& info) const; + void GetData(G4int& counter, const std::vector& parameters, + std::array& bins, + std::array& info) const; + + // constants + static constexpr unsigned int kMaxDim{3}; + static constexpr std::string_view fkClass { "G4THnMessenger" }; + + // Data members + G4THnToolsManager* fManager { nullptr }; ///< TO DO Associated class + + std::unique_ptr fCreateCmd; + std::unique_ptr fSetCmd; + std::array, DIM> fSetDimensionCmd; + std::unique_ptr fSetTitleCmd; + std::array, DIM+1> fSetAxisCmd; + std::array, DIM+1> fSetAxisLogCmd; + std::unique_ptr fListCmd; + std::unique_ptr fGetTCmd; + std::unique_ptr fGetTVectorCmd; + + std::array fTmpId; + std::array fTmpBins; + std::array fTmpInfo; + + G4String fTValue; + G4String fTVectorValue; +}; + +// #include "G4THnMessenger.icc" + // to avoid include recursion the implementation is included in G4THnToolsManager.hh + +#endif diff --git a/source/analysis/management/include/G4THnMessenger.icc b/source/analysis/management/include/G4THnMessenger.icc new file mode 100644 index 0000000000..e16c83b9bb --- /dev/null +++ b/source/analysis/management/include/G4THnMessenger.icc @@ -0,0 +1,599 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Author: Ivana Hrivnacova, 26/08/2022 (ivana@ipno.in2p3.fr) + +#include "G4AnalysisUtilities.hh" + +#include "G4UIdirectory.hh" +#include "G4UIcommand.hh" +#include "G4UIparameter.hh" +#include "G4Tokenizer.hh" + +#include + +using namespace G4Analysis; + +//_____________________________________________________________________________ +template +G4THnMessenger::G4THnMessenger(G4THnToolsManager* manager) + : fManager(manager) +{ + CreateDirectory(); + + CreateCmd(); + SetCmd(); + for (unsigned int idim = 0; idim < DIM; ++idim) { + fSetDimensionCmd[idim] = CreateSetBinsCommand(idim); + } + + CreateSetTitleCommand(); + + for (unsigned int idim = 0; idim < DIM + 1; ++idim) { + fSetAxisCmd[idim] = CreateSetAxisCommand(idim); + fSetAxisLogCmd[idim] = CreateSetAxisLogCommand(idim); + } + + CreateListCommand(); + CreateGetCommand(); + CreateGetVectorCommand(); + + // Initialize data + for (unsigned int idim = 0; idim < DIM; ++idim) { + fTmpId[idim] = G4Analysis::kInvalidId; + fTmpBins[idim] = G4HnDimension(); + fTmpInfo[idim] = G4HnDimensionInformation(); + } +} + +// +// private functions +// + +//_____________________________________________________________________________ +template +G4String G4THnMessenger::GetObjectType() const +{ + return (G4Analysis::IsProfile()) ? + std::to_string(DIM - 1) + "D profile " : std::to_string(DIM) + "D histogram"; +} + +//_____________________________________________________________________________ +template +G4bool G4THnMessenger::IsProfileLastDimension(unsigned int idim) const +{ + return (idim == DIM - 1) && (G4Analysis::IsProfile()); +} + +//_____________________________________________________________________________ +template +std::unique_ptr G4THnMessenger::CreateCommand( + G4String name, G4String guidance) +{ + G4String fullName = "/analysis/" + G4Analysis::GetHnType() + "/" + name; + G4String fullGuidance = guidance + GetObjectType(); + + auto command = std::make_unique(fullName, this); + command->SetGuidance(fullGuidance); + + return command; +} + +//_____________________________________________________________________________ +template +void G4THnMessenger::CreateDimensionParameters( + unsigned int idim, std::vector& parameters) const +{ +// Create [nbins], valMin, valMax, valUnit, valFcn, [valBinScheme] parameters. +// The parameters in [] are omitted for the last dimension for profiles + + std::string xyz{"xyz"}; + std::string axis = xyz.substr(idim, 1); + + if (! IsProfileLastDimension(idim)) { + auto parName = axis + "nBins"; + auto guidance = + std::string("Number of ") + axis + "-bins (default = 100)\n" + "Can be reset with /analysis/hn/set command"; + + auto param = new G4UIparameter(parName.c_str(), 'i', false); + param->SetGuidance(guidance.c_str()); + param->SetDefaultValue(100); + parameters.push_back(param); + } + + auto parName = axis + "valMin"; + auto guidance = + std::string("Minimum ") + axis + "-value, expressed in unit (default = 0.)\n" + "Can be reset with /analysis/hn/set command"; + auto param = new G4UIparameter(parName.c_str(), 'd', false); + param->SetGuidance(guidance.c_str()); + param->SetDefaultValue(0.); + parameters.push_back(param); + + parName = axis + "valMax"; + guidance = + std::string("Maximum ") + axis + "-value, expressed in unit (default = 1.)\n" + "Can be reset with /analysis/hn/set command"; + param = new G4UIparameter(parName.c_str(), 'd', false); + param->SetGuidance(guidance.c_str()); + param->SetDefaultValue(1.); + parameters.push_back(param); + + parName = axis + "valUnit"; + guidance = + std::string("The unit applied to filled ") + axis + "-values and \n" + "Can be reset with /analysis/hn/set command"; + param = new G4UIparameter(parName.c_str(), 's', true); + param->SetGuidance(guidance.c_str()); + param->SetDefaultValue("none"); + parameters.push_back(param); + + parName = axis + "valFcn"; + guidance = + std::string("The function applied to filled ") + axis + "-values (log, log10, exp, none).\n" + "Note that the unit parameter cannot be omitted in this case,\n" + "but none value should be used instead."; + param = new G4UIparameter(parName.c_str(), 's', true); + param->SetGuidance(guidance.c_str()); + param->SetParameterCandidates("log log10 exp none"); + param->SetDefaultValue("none"); + parameters.push_back(param); + + if (! IsProfileLastDimension(idim)) { + parName = axis + "valBinScheme"; + guidance = + std::string("The binning scheme (linear, log).\n" + "Note that the unit and fcn parameters cannot be omitted in this case,\n" + "but none value should be used instead."); + param = new G4UIparameter(parName.c_str(), 's', true); + param->SetGuidance(guidance.c_str()); + param->SetParameterCandidates("linear log"); + param->SetDefaultValue("linear"); + parameters.push_back(param); + } +} + +//_____________________________________________________________________________ +template +void G4THnMessenger::AddIdParameter(G4UIcommand& command) +{ + // update guidance + // // TO DO: this will add a new guidance as a new line !! + // auto guidance = command.GetGuidanceLine(0); + // guidance += " of given id"; + // command.SetGuidance(guidance); + + // add parameter + auto htId = new G4UIparameter("id", 'i', false); + htId->SetGuidance("Histogram id"); + htId->SetParameterRange("id>=0"); + command.SetParameter(htId); +} + +//_____________________________________________________________________________ +template +G4String G4THnMessenger::GetTAddress(G4int id) const +{ + auto ht = fManager->GetT(id); + if ( ht != nullptr ) { + std::ostringstream os; + os << static_cast(ht); + return os.str(); + } + return {}; +} + +//_____________________________________________________________________________ +template +G4String G4THnMessenger::GetTVectorAddress() const +{ + auto htVector = fManager->GetTVector(); + if ( htVector != nullptr ) { + std::ostringstream os; + os << static_cast(htVector); + return os.str(); + } + return {}; +} + +//_____________________________________________________________________________ +template +void G4THnMessenger::CreateDirectory() const +{ + G4String dirName = "/analysis/" + G4Analysis::GetHnType() + "/"; + G4String guidance = GetObjectType() + " control"; + + auto directory = std::make_unique(dirName); + directory->SetGuidance(guidance.c_str()); +} + +//_____________________________________________________________________________ +template +void G4THnMessenger::CreateCmd() +{ + fCreateCmd = CreateCommand("create", "Create "); + fCreateCmd->AvailableForStates(G4State_PreInit, G4State_Idle); + + auto htName = new G4UIparameter("name", 's', false); + htName->SetGuidance("Histogram name (label)"); + fCreateCmd->SetParameter(htName); + + auto htTitle = new G4UIparameter("title", 's', false); + htTitle->SetGuidance("Histogram title"); + fCreateCmd->SetParameter(htTitle); + + std::vector parameters; + for (unsigned int idim = 0; idim < DIM; ++idim) { + CreateDimensionParameters(idim, parameters); + for (size_t ipar = 0; ipar < parameters.size(); ++ipar) { + // the first three parameters can be omittes in create command + if (ipar < 3) parameters[ipar]->SetOmittable(true); + fCreateCmd->SetParameter(parameters[ipar]); + } + parameters.clear(); + } +} + +//_____________________________________________________________________________ +template +void G4THnMessenger::SetCmd() +{ + fSetCmd = CreateCommand("set", "Set "); + fSetCmd->AvailableForStates(G4State_PreInit, G4State_Idle); + + // Add Id parameter + AddIdParameter(*fSetCmd); + + // Update guidance + fSetCmd->SetGuidance("\n nbins; valMin; valMax; unit; function; binScheme"); + + std::vector parameters; + for (unsigned int idim = 0; idim < DIM; ++idim) { + CreateDimensionParameters(idim, parameters); + for (auto parameter: parameters) { + fSetCmd->SetParameter(parameter); + } + parameters.clear(); + } +} + +//_____________________________________________________________________________ +template +std::unique_ptr +G4THnMessenger::CreateSetBinsCommand(unsigned int idim) +{ + G4String xyz{"XYZ"}; + auto axis = xyz.substr(idim, 1); + + auto command = CreateCommand("set" + axis, "Set " + axis + " parameters for the "); + command->AvailableForStates(G4State_PreInit, G4State_Idle); + + // Add Id parameter + AddIdParameter(*command); + + // Update guidance + G4String guidance = + "\n nAXISbins; AXISvalMin; AXISvalMax; AXISunit; AXISfunction; AXISbinScheme"; + // update AXIS with xyz + std::string::size_type n = 0; + std::string ts{"AXIS"}; + while ( ( n = guidance.find(ts, n)) != std::string::npos ) { + guidance.replace(n, ts.size(), axis); + n += ts.size(); + } + command->SetGuidance(guidance); + + std::vector parameters; + CreateDimensionParameters(idim, parameters); + for (auto parameter: parameters) { + command->SetParameter(parameter); + } + + return command; +} + +//_____________________________________________________________________________ +template +void G4THnMessenger::CreateSetTitleCommand() +{ + fSetTitleCmd = CreateCommand("setTitle", "Set title for the "); + fSetTitleCmd->AvailableForStates(G4State_PreInit, G4State_Idle); + + // Add Id parameter + AddIdParameter(*fSetTitleCmd); + + auto parTitle = new G4UIparameter("title", 's', true); + auto guidance = GetObjectType() + " title"; + parTitle->SetGuidance(guidance.c_str()); + parTitle->SetDefaultValue("none"); + fSetTitleCmd->SetParameter(parTitle); +} + +//_____________________________________________________________________________ +template +std::unique_ptr +G4THnMessenger::CreateSetAxisCommand(unsigned int idim) +{ + G4String xyz{"XYZ"}; + auto axis = xyz.substr(idim, 1); + + G4String commandName = "set" + axis + "axis"; + G4String guidance = "Set " + axis + "-axis title for the ";; + + auto command = CreateCommand(commandName, guidance); + command->AvailableForStates(G4State_PreInit, G4State_Idle); + + // Add Id parameter + AddIdParameter(*command); + + auto parAxis = new G4UIparameter("axis", 's', false); + guidance = GetObjectType() + " " + axis + "-axis title"; + parAxis->SetGuidance(guidance.c_str()); + command->SetParameter(parAxis); + + return command; +} + +//_____________________________________________________________________________ +template +std::unique_ptr +G4THnMessenger::CreateSetAxisLogCommand(unsigned int idim) +{ + G4String xyz{"XYZ"}; + auto axis = xyz.substr(idim, 1); + + G4String commandName = "set" + axis + "axisLog"; + G4String guidance = "Activate " + axis + "-axis log scale for plotting of the "; + + auto command = CreateCommand(commandName, guidance); + command->AvailableForStates(G4State_PreInit, G4State_Idle); + + // Add Id parameter + AddIdParameter(*command); + + auto parAxisLog = new G4UIparameter("axis", 'b', false); + guidance = GetObjectType() + " " + axis + "-axis log scale"; + parAxisLog->SetGuidance(guidance.c_str()); + command->SetParameter(parAxisLog); + + return command; +} + +//_____________________________________________________________________________ +template +void G4THnMessenger::CreateListCommand() +{ + fListCmd = CreateCommand("list", "List all/activate "); + fListCmd->AvailableForStates(G4State_Idle, G4State_GeomClosed, G4State_EventProc); + + auto parOnlyIfActive = new G4UIparameter("onlyIfActive", 'b', true); + parOnlyIfActive->SetGuidance("Option whether to list only active objects"); + parOnlyIfActive->SetDefaultValue("true"); + fListCmd->SetParameter(parOnlyIfActive); +} + +//_____________________________________________________________________________ +template +void G4THnMessenger::CreateGetCommand() +{ + fGetTCmd = CreateCommand("get", "Get the address of the "); + fGetTCmd->SetGuidance( "This command is only for Geant4 internal use."); + fGetTCmd->AvailableForStates(G4State_Idle, G4State_GeomClosed, G4State_EventProc); + + // Add Id parameter + AddIdParameter(*fGetTCmd); +} + +//_____________________________________________________________________________ +template +void G4THnMessenger::CreateGetVectorCommand() +{ + fGetTVectorCmd = CreateCommand("getVector", "Get the address of the vector of the "); + fGetTVectorCmd->SetGuidance( "This command is only for Geant4 internal use."); + fGetTVectorCmd->AvailableForStates(G4State_Idle, G4State_GeomClosed, G4State_EventProc); +} + +//_____________________________________________________________________________ +template +void G4THnMessenger::GetBinData( + unsigned int idim, G4int& counter, const std::vector& parameters, + G4HnDimension& bins) const +{ + G4int nbins = (! IsProfileLastDimension(idim)) ? + G4UIcommand::ConvertToInt(parameters[counter++]) : 0; + + bins = {nbins, + G4UIcommand::ConvertToDouble(parameters[counter]), + G4UIcommand::ConvertToDouble(parameters[counter + 1])}; + counter += 2; +} + +//_____________________________________________________________________________ +template +void G4THnMessenger::GetBinInfoData( + unsigned int idim, G4int& counter, const std::vector& parameters, + G4HnDimension& bins, G4HnDimensionInformation& info) const +{ + // get bin data (this will shift the counter for hnInfo data) + GetBinData(idim, counter, parameters, bins); + + // get dimension information data + if (! IsProfileLastDimension(idim)) { + info = {parameters[counter], parameters[counter + 1], parameters[counter + 2]}; + counter += 3; + } + else { + info = {parameters[counter], parameters[counter + 1]}; + counter += 2; + } + + // apply unit to minValue and maxValue + bins.fMinValue *= info.fUnit; + bins.fMaxValue *= info.fUnit; +} + +//_____________________________________________________________________________ +template +void G4THnMessenger::GetData( + G4int& counter, const std::vector& parameters, + std::array& bins, + std::array& info) const +{ + for (unsigned int idim = 0; idim < DIM; ++idim) { + // get bin data (this will shift the counter for hnInfo data) + GetBinInfoData(idim, counter, parameters, bins[idim], info[idim]); + } +} + +// +// public functions +// + +//_____________________________________________________________________________ +template +G4String G4THnMessenger::GetCurrentValue (G4UIcommand* command) +{ + if ( command == fGetTCmd.get() ) return fTValue; + + if ( command == fGetTVectorCmd.get() ) return fTVectorValue; + + return ""; +} + +//_____________________________________________________________________________ +template +void G4THnMessenger::SetNewValue(G4UIcommand* command, G4String newValues) +{ + // tokenize parameters in a vector + std::vector parameters; + G4Analysis::Tokenize(newValues, parameters); + // check consistency + if ( parameters.size() != command->GetParameterEntries() ) { + // Should never happen but let's check anyway for consistency + G4Analysis::Warn( + "Got wrong number of \"" + command->GetCommandName() + + "\" parameters: " + to_string(parameters.size()) + + " instead of " + to_string(command->GetParameterEntries()) + " expected", + fkClass, "WarnAboutParameters"); + return; + } + + std::array bins; + std::array info; + + if ( command == fCreateCmd.get() ) { + auto counter = 0; + auto name = parameters[counter++]; + auto title = parameters[counter++]; + GetData(counter, parameters, bins, info); + fManager->Create(name, title, bins, info); + return; + } + + if ( command == fSetCmd.get() ) { + auto counter = 0; + auto id = G4UIcommand::ConvertToInt(parameters[counter++]); + GetData(counter, parameters, bins, info); + fManager->Set(id, bins, info); + return; + } + + if ( command == fSetTitleCmd.get() ) { + auto counter = 0; + auto id = G4UIcommand::ConvertToInt(parameters[counter++]); + auto title = parameters[counter++]; + fManager->SetTitle(id, title); + return; + } + + for (unsigned int idim = 0; idim < DIM; ++idim) { + if ( command == fSetDimensionCmd[idim].get() ) { + auto counter = 0; + fTmpId[idim] = G4UIcommand::ConvertToInt(parameters[counter++]); + GetBinInfoData(idim, counter, parameters, fTmpBins[idim], fTmpInfo[idim]); + + if ( DIM > 1 && idim > 0) { + // the setX, setY, setZ must be apply consequently + if (fTmpId[idim - 1] != fTmpId[idim]) { + G4Analysis::Warn( + "Command setX, setY, setZ must be called successively in this order.\n" + "Command was ignored.", fkClass, "SetNewValue"); + return; + } + } + if ( idim == DIM - 1) { + // Apply parameters when all dimensions are set + fManager->Set(fTmpId[idim], bins, info); + return; + } + } + } + + if ( command == fSetTitleCmd.get() ) { + auto counter = 0; + auto id = G4UIcommand::ConvertToInt(parameters[counter++]); + auto title = parameters[counter++]; + fManager->SetTitle(id, title); + return; + } + + auto maxDim = (DIM < kMaxDim) ? DIM + 1 : kMaxDim; + for (unsigned int idim = 0; idim < maxDim; ++idim) { + if ( command == fSetAxisCmd[idim].get() ) { + auto counter = 0; + auto id = G4UIcommand::ConvertToInt(parameters[counter++]); + auto axisTitle = parameters[counter++]; + fManager->SetAxisTitle(idim, id, axisTitle); + return; + } + if ( command == fSetAxisLogCmd[idim].get() ) { + // TO DO: this should go in HnMessenger + auto counter = 0; + auto id = G4UIcommand::ConvertToInt(parameters[counter++]); + auto axisLog = G4UIcommand::ConvertToBool(parameters[counter++]); + fManager->GetHnManager()->SetAxisIsLog(idim, id, axisLog); + return; + } + } + + if ( command == fListCmd.get() ) { + auto onlyIfActive = G4UIcommand::ConvertToBool(parameters[0]); + fManager->List(G4cout, onlyIfActive); + return; + } + + if ( command == fGetTCmd.get() ) { + auto id = G4UIcommand::ConvertToInt(newValues); + fTValue = GetTAddress(id); + return; + } + + if ( command == fGetTVectorCmd.get() ) { + fTVectorValue = GetTVectorAddress(); + return; + } +} diff --git a/source/analysis/management/include/G4THnToolsManager.hh b/source/analysis/management/include/G4THnToolsManager.hh new file mode 100644 index 0000000000..fa655cb4db --- /dev/null +++ b/source/analysis/management/include/G4THnToolsManager.hh @@ -0,0 +1,153 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Common implementation for histograms managers. +// +// Author: Ivana Hrivnacova, 10/08/2022 (ivana@ipno.in2p3.fr) + +#ifndef G4THnToolsManager_h +#define G4THnToolsManager_h 1 + +#include "G4VTBaseHnManager.hh" +#include "G4THnManager.hh" +#include "globals.hh" + +#include +#include +#include + +class G4AnalysisManagerState; +class G4HnManager; +class G4UImessenger; + +template +class G4THnToolsManager : public G4VTBaseHnManager, + public G4THnManager + +{ + // Disable using the object managers outside + friend class G4VAnalysisManager; + friend class G4VAnalysisReader; + + public: + G4THnToolsManager(const G4AnalysisManagerState& state); + virtual ~G4THnToolsManager() = default; + + // deleted copy constructor & assignment operator + G4THnToolsManager(const G4THnToolsManager& rhs) = delete; + G4THnToolsManager& operator=(const G4THnToolsManager& rhs) = delete; + + // Methods for handling histograms + G4int Create(const G4String& name, const G4String& title, + const std::array& bins, + const std::array& hnInfo) override; + + G4bool Set(G4int id, + const std::array& bins, + const std::array& hnInfo) override; + + virtual G4bool Scale(G4int id, G4double factor) override; + + // Methods to fill histograms + virtual G4bool Fill(G4int id, std::array value, G4double weight = 1.0) override; + + // Access methods + virtual G4int GetId(const G4String& name, G4bool warn = true) const override; + + // Access to bins parameters + virtual G4int GetNbins(unsigned int idim, G4int id) const override; + virtual G4double GetMinValue(unsigned int idim, G4int id) const override; + virtual G4double GetMaxValue(unsigned int idim, G4int id) const override; + virtual G4double GetWidth(unsigned int idim, G4int id) const override; + + // Setters for attributes for plotting + virtual G4bool SetTitle(G4int id, const G4String& title) override; + virtual G4bool SetAxisTitle(unsigned int idim, G4int id, const G4String& title) override; + + // Access attributes for plotting + virtual G4String GetTitle(G4int id) const override; + virtual G4String GetAxisTitle(unsigned int idim, G4int id) const override; + + // Methods to list/print histograms + virtual G4bool WriteOnAscii(std::ofstream& output) override; + // Function with specialization per histo type + virtual G4bool List(std::ostream& output, G4bool onlyIfActive = true) override; + + // // Access to Hn manager + virtual std::shared_ptr GetHnManager() override; + virtual const std::shared_ptr GetHnManager() const override; + + protected: + // Functions from base class + using G4THnManager::RegisterT; + using G4THnManager::GetTHnInFunction; + using G4THnManager::GetTInFunction; + using G4THnManager::GetTId; + using G4THnManager::IsVerbose; + using G4THnManager::Message; + + static constexpr std::string_view fkClass { "G4THnToolsManager" }; + + private: + void UpdateInformation(G4HnInformation* hnInformation, + const std::array& hnInfo); + + G4HnInformation* AddInformation(const G4String& name, + const std::array& hnInfo); + + void AddAnnotation(HT* ht, + const std::array& hnInfo); + + G4bool CheckName(const G4String& name) const; + + // Functions with specialization per histo type + + HT* CreateToolsHT(const G4String& title, + const std::array& bins, + const std::array& hnInfo); + + void ConfigureToolsHT(HT* ht, + const std::array& bins, + const std::array& hnInfo); + + G4bool FillHT(HT* ht, const G4HnInformation& hnInformation, + std::array& value, + G4double weight = 1.0); + + // redefine tools::histo::key_axis_x_title() - not available via upper types + static const std::array fkKeyAxisTitle; + + std::unique_ptr fMessenger; +}; + +// inline functions + +#include "G4THnMessenger.hh" +#include "G4THnToolsManager.icc" +#include "G4THnMessenger.icc" + // include messenger and its implementation here to avoid include recursion + +#endif diff --git a/source/analysis/management/include/G4THnToolsManager.icc b/source/analysis/management/include/G4THnToolsManager.icc new file mode 100644 index 0000000000..8e8bc3826d --- /dev/null +++ b/source/analysis/management/include/G4THnToolsManager.icc @@ -0,0 +1,332 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Author: Ivana Hrivnacova, 10/08/2022 (ivana@ipno.in2p3.fr) + +#include "G4AnalysisUtilities.hh" + +using G4Analysis::kX; +using G4Analysis::kY; +using G4Analysis::kZ; +using G4Analysis::CheckDimensions; +using G4Analysis::GetHnType; +using G4Analysis::IsProfile; +using G4Analysis::Warn; + +//_____________________________________________________________________________ +template +const std::array G4THnToolsManager::fkKeyAxisTitle = +{ "axis_x.title", "axis_y.title", "axis_z.title" }; + +//_____________________________________________________________________________ +template +G4THnToolsManager::G4THnToolsManager(const G4AnalysisManagerState& state) + : G4THnManager(state) +{ + fMessenger = std::make_unique>(this); +} + +//_____________________________________________________________________________ +template +void G4THnToolsManager::UpdateInformation(G4HnInformation* hnInformation, + const std::array& hnInfo) +{ + for (unsigned int idim = 0; idim < DIM; ++idim) { + hnInformation->SetDimension(idim, hnInfo[idim]); + } +} + +//_____________________________________________________________________________ +template +G4HnInformation* G4THnToolsManager::AddInformation(const G4String& name, + const std::array& hnInfo) +{ + auto hnInformation = GetHnManager()->AddHnInformation(name, DIM); + for (unsigned int idim = 0; idim < DIM; ++idim) { + hnInformation->AddDimension(hnInfo[idim]); + } + + return hnInformation; +} + +//_____________________________________________________________________________ +template +void G4THnToolsManager::AddAnnotation(HT* ht, + const std::array& hnInfo) +{ + for (unsigned int idim = 0; idim < DIM; ++idim) { + G4String axisTitle; + G4Analysis::UpdateTitle(axisTitle, hnInfo[idim]); + + ht->add_annotation(fkKeyAxisTitle[idim], axisTitle); + } +} + +//_____________________________________________________________________________ +template +G4bool G4THnToolsManager::CheckName(const G4String& name) const +{ + if (name.size() == 0u) { + G4Analysis::Warn("Empty " + GetHnType() + " name is not allowed.\n" + + GetHnType() + " was not created.", fkClass, "CheckName"); + return false; + } + return true; +} + +//_____________________________________________________________________________ +template +G4int G4THnToolsManager::Create( + const G4String& name, const G4String& title, + const std::array& bins, + const std::array& hnInfo) +{ + // Check parameters + if ((! CheckName(name)) || + (! CheckDimensions(bins, hnInfo, IsProfile()))) { + return G4Analysis::kInvalidId; + } + + Message(G4Analysis::kVL4, "create", GetHnType(), name); + + auto ht = CreateToolsHT(title, bins, hnInfo); + + // Add annotation + AddAnnotation(ht, hnInfo); + + // Save hn information + auto info = AddInformation(name, hnInfo); + + // Register histogram + auto id = RegisterT(name, ht, info); + + Message(G4Analysis::kVL2, "create", GetHnType(), name); + + return id; +} + +//_____________________________________________________________________________ +template +G4bool G4THnToolsManager::Set(G4int id, + const std::array& bins, + const std::array& hnInfo) +{ + // Check parameters + if (! CheckDimensions(bins, hnInfo, IsProfile())) { + return false; + } + + auto [ht, info] = GetTHnInFunction(id, "Set" + GetHnType(), false, false); + if (ht == nullptr) return false; + + Message(G4Analysis::kVL4, "configure", GetHnType(), info->GetName()); + + // Configure tools h2 + ConfigureToolsHT(ht, bins, hnInfo); + + // Add annotation + AddAnnotation(ht, hnInfo); + + // Update information + UpdateInformation(info, hnInfo); + + // Set activation + GetHnManager()->SetActivation(id, true); + + return true; +} + +//_____________________________________________________________________________ +template +G4bool G4THnToolsManager::Scale(G4int id, G4double factor) +{ + auto ht = GetTInFunction(id, "Scale" + GetHnType(), false, false); + if (ht == nullptr) return false; + + return ht->scale(factor); +} + +//_____________________________________________________________________________ +template +G4bool G4THnToolsManager::Fill(G4int id, + std::array value, G4double weight) +{ + auto [ht, info] = GetTHnInFunction(id, "Fill"+ GetHnType(), true, false); + if (ht == nullptr) return false; + + if ( G4THnManager::fState.GetIsActivation() && ( ! info->GetActivation() ) ) { + return false; + } + + std::array newValue(value); + auto result = FillHT(ht, *info, newValue, weight); + + if ( IsVerbose(G4Analysis::kVL4) ) { + // compose message + G4String dims("xyz"); + G4String message = " id " + to_string(id); + for (unsigned int idim = 0; idim < DIM; ++idim) { + auto xyz = dims[idim]; + message += + xyz + to_string(value[idim]) + " " + + xyz + "fcn(" + xyz + "value/" + xyz + "xunit) " + to_string(newValue[idim]); + } + message += " weight " + to_string(weight); + + Message(G4Analysis::kVL4, "fill", GetHnType(), message); + } + + return result; +} + +//_____________________________________________________________________________ +template +G4int G4THnToolsManager::GetId(const G4String& name, G4bool warn) const +{ + return GetTId(name, warn); +} + + +//_____________________________________________________________________________ +template +G4int G4THnToolsManager::GetNbins(unsigned int idim, G4int id) const +{ + auto ht = GetTInFunction(id, "GetNbins"); + if (ht == nullptr) return 0; + + return ht->get_axis(idim).bins(); +} + +//_____________________________________________________________________________ +template +G4double G4THnToolsManager::GetMinValue(unsigned int idim, G4int id) const +{ + auto ht = GetTInFunction(id, "GetMinValue"); + if (ht == nullptr) return 0.; + + return ht->get_axis(idim).lower_edge(); +} + +//_____________________________________________________________________________ +template +G4double G4THnToolsManager::GetMaxValue(unsigned int idim, G4int id) const +{ + auto ht = GetTInFunction(id, "GetMaxValue"); + if (ht == nullptr) return 0.; + + return ht->get_axis(idim).upper_edge(); +} + +//_____________________________________________________________________________ +template +G4double G4THnToolsManager::GetWidth(unsigned int idim, G4int id) const +{ + auto ht = GetTInFunction(id, "GetWidth", true, false); + if (ht == nullptr) return 0.; + + auto nbins = ht->get_axis(idim).bins(); + if (nbins == 0u) { + Warn("nbins = 0 ! for " + GetHnType(), fkClass, "GetWidth"); + return 0.; + } + + return ( ht->get_axis(idim).upper_edge() - + ht->get_axis(idim).lower_edge() )/nbins; +} + +//_____________________________________________________________________________ +template +G4bool G4THnToolsManager::SetTitle(G4int id, const G4String& title) +{ + auto ht = GetTInFunction(id, "SetTitle"); + if (ht == nullptr) return false; + + return ht->set_title(title); +} + +//_____________________________________________________________________________ +template +G4bool G4THnToolsManager::SetAxisTitle(unsigned int idim, G4int id, const G4String& title) +{ + auto ht = GetTInFunction(id, "SetAxisTitle"); + if (ht == nullptr) return false; + + ht->add_annotation(fkKeyAxisTitle[idim], title); + + return true; +} + +//_____________________________________________________________________________ +template +G4String G4THnToolsManager::GetTitle(G4int id) const +{ + auto ht = GetTInFunction(id, "GetTitle"); + if (ht == nullptr) return 0; + + return ht->title(); +} + + +//_____________________________________________________________________________ +template +G4String G4THnToolsManager::GetAxisTitle(unsigned int idim, G4int id) const +{ + auto ht = GetTInFunction(id, "GetAxisTitle"); + if (ht == nullptr) return 0; + + G4String title; + G4bool result = ht->annotation(fkKeyAxisTitle[idim], title); + + if ( ! result ) { + Warn("Got wrong dimension " + to_string(idim) + " for " + GetHnType(), + fkClass, "GetAxisTitle"); + + return {}; + } + + return title; +} + +//_____________________________________________________________________________ +template +G4bool G4THnToolsManager::List(std::ostream& output, G4bool onlyIfActive) +{ + return G4THnManager::List(output, onlyIfActive); +} + +//_____________________________________________________________________________ +template +std::shared_ptr G4THnToolsManager::GetHnManager() { + return G4THnManager::fHnManager; +} + +//_____________________________________________________________________________ +template +const std::shared_ptr G4THnToolsManager::GetHnManager() const +{ + return G4THnManager::fHnManager; +} + diff --git a/source/analysis/management/include/G4TNtupleDescription.hh b/source/analysis/management/include/G4TNtupleDescription.hh index 921cfbe562..b7383cfd9f 100644 --- a/source/analysis/management/include/G4TNtupleDescription.hh +++ b/source/analysis/management/include/G4TNtupleDescription.hh @@ -40,25 +40,109 @@ #include template -struct G4TNtupleDescription +class G4TNtupleDescription { - G4TNtupleDescription(G4NtupleBooking* g4NtupleBooking) - : fNtupleBooking(g4NtupleBooking->fNtupleBooking), - fFileName(g4NtupleBooking->fFileName), - fActivation(g4NtupleBooking->fActivation) - {} + public: + G4TNtupleDescription(G4NtupleBooking* g4NtupleBooking) + : fNtupleBooking(g4NtupleBooking->fNtupleBooking), + fFileName(g4NtupleBooking->fFileName), + fActivation(g4NtupleBooking->fActivation) + {} - G4TNtupleDescription() = delete; - ~G4TNtupleDescription() - { if ( fIsNtupleOwner ) delete fNtuple; } + G4TNtupleDescription() = delete; + ~G4TNtupleDescription() + { + if ( fIsNtupleOwner ) delete fNtuple; + } - std::shared_ptr fFile { nullptr }; - NT* fNtuple { nullptr }; - tools::ntuple_booking fNtupleBooking; - G4String fFileName; - G4bool fActivation; - G4bool fIsNtupleOwner { true }; - G4bool fHasFill { false }; + // Set methods + void SetFile(std::shared_ptr file); + void SetNtuple(NT* ntuple); + void SetFileName(const G4String& fileName); + void SetActivation(G4bool activation); + void SetIsNtupleOwner(G4bool isNtupleOwner); + void SetHasFill(G4bool hasFill); + void Reset(); + + // Get methods + std::shared_ptr GetFile() const; + NT* GetNtuple() const; + const tools::ntuple_booking& GetNtupleBooking() const; + G4String GetFileName() const; + G4bool GetActivation() const; + G4bool GetIsNtupleOwner() const; + G4bool GetHasFill() const; + + private: + std::shared_ptr fFile { nullptr }; + NT* fNtuple { nullptr }; + tools::ntuple_booking fNtupleBooking; + G4String fFileName; + G4bool fActivation { true }; + G4bool fIsNtupleOwner { true }; + G4bool fHasFill { false }; }; +// inline functions + +template +void G4TNtupleDescription::SetFile(std::shared_ptr file) +{ fFile = file; } + +template +void G4TNtupleDescription::SetNtuple(NT* ntuple) +{ fNtuple = ntuple; } + +template +void G4TNtupleDescription::SetFileName(const G4String& fileName) +{ fFileName = fileName; } + +template +void G4TNtupleDescription::SetActivation(G4bool activation) +{ fActivation = activation; } + +template +void G4TNtupleDescription::SetIsNtupleOwner(G4bool isNtupleOwner) +{ fIsNtupleOwner = isNtupleOwner; } + +template +void G4TNtupleDescription::SetHasFill(G4bool hasFill) +{ fHasFill = hasFill; } + +template +void G4TNtupleDescription::Reset() +{ + if (fIsNtupleOwner) delete fNtuple; + fNtuple = nullptr; +} + +template +std::shared_ptr G4TNtupleDescription::GetFile() const +{ return fFile; } + +template +NT* G4TNtupleDescription::GetNtuple() const +{ return fNtuple; } + +template +const tools::ntuple_booking& +G4TNtupleDescription::GetNtupleBooking() const +{ return fNtupleBooking; } + +template +G4String G4TNtupleDescription::GetFileName() const +{ return fFileName; } + +template +G4bool G4TNtupleDescription::GetActivation() const +{ return fActivation; } + +template +G4bool G4TNtupleDescription::GetIsNtupleOwner() const +{ return fIsNtupleOwner; } + +template +G4bool G4TNtupleDescription::GetHasFill() const +{ return fHasFill; } + #endif diff --git a/source/analysis/management/include/G4TNtupleManager.hh b/source/analysis/management/include/G4TNtupleManager.hh index e9cea8159a..0152e831e8 100644 --- a/source/analysis/management/include/G4TNtupleManager.hh +++ b/source/analysis/management/include/G4TNtupleManager.hh @@ -45,17 +45,17 @@ class G4TNtupleManager : public G4BaseNtupleManager { public: explicit G4TNtupleManager(const G4AnalysisManagerState& state); G4TNtupleManager() = delete; - ~G4TNtupleManager(); + ~G4TNtupleManager() override; protected: // Methods to manipulate ntuples - virtual G4int CreateNtuple(G4NtupleBooking* ntupleBooking) override; + G4int CreateNtuple(G4NtupleBooking* ntupleBooking) override; virtual void CreateNtuplesFromBooking( const std::vector& ntupleBookings); virtual G4bool Reset(); - virtual void Clear() override; + void Clear() override; // Methods to create ntuples // are implemented in G4NtupleBookingManager base class @@ -68,23 +68,29 @@ class G4TNtupleManager : public G4BaseNtupleManager { using G4BaseNtupleManager::FillNtupleSColumn; using G4BaseNtupleManager::AddNtupleRow; // Methods for ntuple with id > FirstNtupleId (when more ntuples exist) - virtual G4bool FillNtupleIColumn(G4int ntupleId, G4int columnId, G4int value) final; - virtual G4bool FillNtupleFColumn(G4int ntupleId, G4int columnId, G4float value) final; - virtual G4bool FillNtupleDColumn(G4int ntupleId, G4int columnId, G4double value) final; - virtual G4bool FillNtupleSColumn(G4int ntupleId, G4int columnId, - const G4String& value) final; - virtual G4bool AddNtupleRow(G4int ntupleId) override; + G4bool FillNtupleIColumn(G4int ntupleId, G4int columnId, G4int value) final; + G4bool FillNtupleFColumn(G4int ntupleId, G4int columnId, G4float value) final; + G4bool FillNtupleDColumn(G4int ntupleId, G4int columnId, G4double value) final; + G4bool FillNtupleSColumn(G4int ntupleId, G4int columnId, const G4String& value) final; + G4bool AddNtupleRow(G4int ntupleId) override; // Activation option // - virtual void SetActivation(G4bool activation) final; - virtual void SetActivation(G4int ntupleId, G4bool activation) final; - virtual G4bool GetActivation(G4int ntupleId) const final; + void SetActivation(G4bool activation) final; + void SetActivation(G4int ntupleId, G4bool activation) final; + G4bool GetActivation(G4int ntupleId) const final; + + // New cycle option + void SetNewCycle(G4bool value) override; + G4bool GetNewCycle() const override; // Access methods NT* GetNtuple() const; NT* GetNtuple(G4int ntupleId) const; - virtual G4int GetNofNtuples() const final; + G4int GetNofNtuples() const final; + + // List ntuples + G4bool List(std::ostream& output, G4bool onlyIfActive = true) final; // Iterators typename std::vector::iterator BeginNtuple(); @@ -95,6 +101,8 @@ class G4TNtupleManager : public G4BaseNtupleManager { // Data members std::vector*> fNtupleDescriptionVector; std::vector fNtupleVector; + const std::vector* fNtupleBookingVector { nullptr }; + G4bool fNewCycle { false }; private: // Methods diff --git a/source/analysis/management/include/G4TNtupleManager.icc b/source/analysis/management/include/G4TNtupleManager.icc index 3736fa6996..4e8a8710c6 100644 --- a/source/analysis/management/include/G4TNtupleManager.icc +++ b/source/analysis/management/include/G4TNtupleManager.icc @@ -75,7 +75,7 @@ NT* G4TNtupleManager::GetNtupleInFunction( auto ntupleDescription = GetNtupleDescriptionInFunction(id, functionName); if ( ! ntupleDescription ) return nullptr; - if ( ! ntupleDescription->fNtuple ) { + if ( ! ntupleDescription->GetNtuple() ) { if ( warn ) { G4Analysis::Warn("Ntuple " + to_string(id) + " does not exist.", fkClass, functionName); @@ -83,7 +83,7 @@ NT* G4TNtupleManager::GetNtupleInFunction( return nullptr; } - return ntupleDescription->fNtuple; + return ntupleDescription->GetNtuple(); } //_____________________________________________________________________________ @@ -92,6 +92,11 @@ template G4bool G4TNtupleManager::FillNtupleTColumn( G4int ntupleId, G4int columnId, const T& value) { + if (fNewCycle && fNtupleVector.empty()) { + CreateNtuplesFromBooking(*fNtupleBookingVector); + fNewCycle = false; + } + if ( fState.GetIsActivation() && ( ! GetActivation(ntupleId) ) ) { //G4cout << "Skipping FillNtupleIColumn for " << ntupleId << G4endl; return false; @@ -149,32 +154,25 @@ G4int G4TNtupleManager::CreateNtuple(G4NtupleBooking* ntupleBooking) // The ntuple index auto index = ntupleBooking->fNtupleId - fFirstId; - // Check if the ntuple description of this id already exists - // (what should normally never happen) - // delete it and print a warning - if ( index < G4int(fNtupleDescriptionVector.size()) && - fNtupleDescriptionVector[index] ) { - delete fNtupleDescriptionVector[index]; - G4Analysis::Warn( - "Ntuple description " + to_string(ntupleBooking->fNtupleId) + - " already exists.", fkClass, "CreateNtuple"); - } - - // Allocate the vector element(s) + // Allocate the vector element(s) if needed while ( index >= G4int(fNtupleDescriptionVector.size()) ) { fNtupleDescriptionVector.push_back(nullptr); } - // Create ntuple description from ntuple booking. - auto ntupleDescription = new G4TNtupleDescription(ntupleBooking); - fNtupleDescriptionVector[index] = ntupleDescription; + auto ntupleDescription = fNtupleDescriptionVector[index]; + if (ntupleDescription == nullptr) { + // Create ntuple description from ntuple booking + // if it does not yet exist + ntupleDescription = new G4TNtupleDescription(ntupleBooking); + fNtupleDescriptionVector[index] = ntupleDescription; + } // Do not create ntuple if it is inactivated if ( fState.GetIsActivation() && - ( ! ntupleDescription->fActivation ) ) return G4Analysis::kInvalidId; + ( ! ntupleDescription->GetActivation() ) ) return G4Analysis::kInvalidId; // Do not create ntuple if it already exists - if ( ntupleDescription->fNtuple ) { + if ( ntupleDescription->GetNtuple() != nullptr ) { G4Analysis::Warn( "Ntuple " + to_string(ntupleBooking->fNtupleId) + " already exists.", fkClass, "CreateNtuple"); @@ -201,6 +199,9 @@ void G4TNtupleManager::CreateNtuplesFromBooking( { // Create ntuple from ntuple bookings. + // Save the ntuple booking for new cycle + fNtupleBookingVector = &ntupleBookings; + // Create ntuple descriptions from ntuple booking. for ( auto ntupleBooking : ntupleBookings ) { CreateNtuple(ntupleBooking); @@ -212,11 +213,14 @@ template G4bool G4TNtupleManager::Reset() { + // Reset ntuple description, this will delete ntuple if present and + // we have its ownership. + // The ntuples will be recreated with new cycle or new open file. + for ( auto ntupleDescription : fNtupleDescriptionVector ) { - delete ntupleDescription; + ntupleDescription->Reset(); } - fNtupleDescriptionVector.clear(); fNtupleVector.clear(); return true; @@ -227,8 +231,14 @@ template void G4TNtupleManager::Clear() { - // Reset function clears all data - Reset(); + // Clear all data + + for ( auto ntupleDescription : fNtupleDescriptionVector ) { + delete ntupleDescription; + } + + fNtupleDescriptionVector.clear(); + fNtupleVector.clear(); Message(G4Analysis::kVL2, "clear", "ntuples"); } @@ -282,7 +292,7 @@ G4bool G4TNtupleManager::AddNtupleRow( auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "AddNtupleRow"); if ( ! ntupleDescription ) return false; - auto ntuple = ntupleDescription->fNtuple; + auto ntuple = ntupleDescription->GetNtuple(); if ( ! ntuple ) return false; auto result = ntuple->add_row(); @@ -292,7 +302,7 @@ G4bool G4TNtupleManager::AddNtupleRow( fkClass, "AddTNtupleRow"); } - ntupleDescription->fHasFill = true; + ntupleDescription->SetHasFill(true); if ( IsVerbose(G4Analysis::kVL4) ) { Message(G4Analysis::kVL4, "add", "ntuple row", @@ -308,7 +318,7 @@ void G4TNtupleManager::SetActivation( G4bool activation) { for ( auto ntupleDescription : fNtupleDescriptionVector ) { - ntupleDescription->fActivation = activation; + ntupleDescription->SetActivation(activation); } } @@ -320,7 +330,7 @@ void G4TNtupleManager::SetActivation( auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "SetActivation"); if ( ! ntupleDescription ) return; - ntupleDescription->fActivation = activation; + ntupleDescription->SetActivation(activation); } //_____________________________________________________________________________ @@ -331,7 +341,21 @@ G4bool G4TNtupleManager::GetActivation( auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "GetActivation"); if ( ! ntupleDescription ) return false; - return ntupleDescription->fActivation; + return ntupleDescription->GetActivation(); +} + +//_____________________________________________________________________________ +template +void G4TNtupleManager::SetNewCycle(G4bool value) +{ + fNewCycle = value; +} + +//_____________________________________________________________________________ +template +G4bool G4TNtupleManager::GetNewCycle() const +{ + return fNewCycle; } //_____________________________________________________________________________ @@ -350,7 +374,7 @@ G4TNtupleManager::GetNtuple(G4int ntupleId) const auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "GetNtuple"); if ( ! ntupleDescription ) return nullptr; - return ntupleDescription->fNtuple; + return ntupleDescription->GetNtuple(); } //_____________________________________________________________________________ @@ -391,3 +415,69 @@ G4int G4TNtupleManager::GetNofNtuples() const { return G4int(fNtupleVector.size()); } + +//_____________________________________________________________________________ +template +G4bool G4TNtupleManager::List(std::ostream& output, G4bool onlyIfActive) +{ + // Save current output stream formatting + std::ios_base::fmtflags outputFlags(output.flags() ); + + // Define optimal field widths + size_t maxNameLength = 0; + size_t maxTitleLength = 0; + // size_t maxEntries = 0; + size_t nofActive = 0; + for (size_t i = 0; i < fNtupleDescriptionVector.size(); ++i) { + // auto ntuple = fNtupleVector[i]; + const auto& ntupleBooking = fNtupleDescriptionVector[i]->GetNtupleBooking(); + if (ntupleBooking.name().length() > maxNameLength) { + maxNameLength = ntupleBooking.name().length(); + } + if (ntupleBooking.title().length() > maxTitleLength) { + maxTitleLength = ntupleBooking.title().length(); + } + // if (ntuple->entries() > maxEntries) { + // maxEntries = ntuple->entries(); + // } + if (fNtupleDescriptionVector[i]->GetActivation()) { + ++nofActive; + } + } + size_t maxIdWidth = std::to_string(fNtupleVector.size() + GetFirstId()).length(); + // size_t maxEntriesWidth = std::to_string(maxEntries).length(); + // update string width for adde double quotas + maxNameLength += 2; + maxTitleLength += 2; + + // List general info + output << "Ntuple: " << nofActive << " active "; + if (! onlyIfActive) { + output << " of " << GetNofNtuples() << " defined "; + } + output << G4endl; + + // List objects + for (size_t i = 0; i < fNtupleDescriptionVector.size(); ++i) { + // auto ntuple = fNtupleVector[i]; + const auto& ntupleBooking = fNtupleDescriptionVector[i]->GetNtupleBooking(); + + // skip inactivated objcets + if (fState.GetIsActivation() && onlyIfActive && (! fNtupleDescriptionVector[i]->GetActivation())) continue; + + // print selected info + output << " id: " << std::setw((G4int)maxIdWidth) << GetFirstId() + i + << " name: \"" << std::setw((G4int)maxNameLength) << std::left << ntupleBooking.name() + "\"" + << " title: \"" << std::setw((G4int)maxTitleLength) << std::left << ntupleBooking.title() + "\""; + // << " entries: " << std::setw((G4int)maxEntriesWidth) << ntuple->entries(); + if (! onlyIfActive) { + output << " active: " << std::boolalpha << fNtupleDescriptionVector[i]->GetActivation(); + } + output << G4endl; + } + + // Restore the output stream formatting + output.flags(outputFlags); + + return output.good(); +} diff --git a/source/analysis/management/include/G4TRNtupleDescription.hh b/source/analysis/management/include/G4TRNtupleDescription.hh index fd33784e04..4d8d7dae2a 100644 --- a/source/analysis/management/include/G4TRNtupleDescription.hh +++ b/source/analysis/management/include/G4TRNtupleDescription.hh @@ -54,16 +54,16 @@ struct G4TRNtupleDescription delete fNtupleBinding; delete fNtuple; - {for ( auto mapElement : fIVectorBindingMap ) { + {for ( auto& mapElement : fIVectorBindingMap ) { delete mapElement.first; }} - {for ( auto mapElement : fFVectorBindingMap ) { + {for ( auto& mapElement : fFVectorBindingMap ) { delete mapElement.first; }} - {for ( auto mapElement : fDVectorBindingMap ) { + {for ( auto& mapElement : fDVectorBindingMap ) { delete mapElement.first; }} - {for ( auto mapElement : fSVectorBindingMap ) { + {for ( auto& mapElement : fSVectorBindingMap ) { delete mapElement.first; }} } diff --git a/source/analysis/management/include/G4TRNtupleManager.hh b/source/analysis/management/include/G4TRNtupleManager.hh index 69a867c86c..8edce10d65 100644 --- a/source/analysis/management/include/G4TRNtupleManager.hh +++ b/source/analysis/management/include/G4TRNtupleManager.hh @@ -41,10 +41,12 @@ template class G4TRNtupleManager : public G4BaseRNtupleManager { + public: + G4TRNtupleManager() = delete; + protected: explicit G4TRNtupleManager(const G4AnalysisManagerState& state); - G4TRNtupleManager() = delete; - virtual ~G4TRNtupleManager(); + ~G4TRNtupleManager() override; // Methods to manipulate ntuples G4bool IsEmpty() const; @@ -66,30 +68,26 @@ class G4TRNtupleManager : public G4BaseRNtupleManager using G4BaseRNtupleManager::SetNtupleSColumn; // Methods to bind ntuple - virtual G4bool SetNtupleIColumn(G4int ntupleId, - const G4String& columnName, G4int& value) final; - virtual G4bool SetNtupleFColumn(G4int ntupleId, - const G4String& columnName, G4float& value) final; - virtual G4bool SetNtupleDColumn(G4int ntupleId, - const G4String& columnName, G4double& value) final; - virtual G4bool SetNtupleSColumn(G4int ntupleId, - const G4String& columnName, G4String& value) final; + G4bool SetNtupleIColumn(G4int ntupleId, const G4String& columnName, G4int& value) final; + G4bool SetNtupleFColumn(G4int ntupleId, const G4String& columnName, G4float& value) final; + G4bool SetNtupleDColumn(G4int ntupleId, const G4String& columnName, G4double& value) final; + G4bool SetNtupleSColumn(G4int ntupleId, const G4String& columnName, G4String& value) final; // Bind the ntuple columns of vector type - virtual G4bool SetNtupleIColumn(G4int ntupleId, const G4String& columnName, - std::vector& vector) override; - virtual G4bool SetNtupleFColumn(G4int ntupleId, const G4String& columnName, - std::vector& vector) override; - virtual G4bool SetNtupleDColumn(G4int ntupleId, const G4String& columnName, - std::vector& vector) override; - virtual G4bool SetNtupleSColumn(G4int ntupleId, const G4String& columnName, - std::vector& vector) override; + G4bool SetNtupleIColumn( + G4int ntupleId, const G4String& columnName, std::vector& vector) override; + G4bool SetNtupleFColumn( + G4int ntupleId, const G4String& columnName, std::vector& vector) override; + G4bool SetNtupleDColumn( + G4int ntupleId, const G4String& columnName, std::vector& vector) override; + G4bool SetNtupleSColumn( + G4int ntupleId, const G4String& columnName, std::vector& vector) override; using G4BaseRNtupleManager::GetNtupleRow; - virtual G4bool GetNtupleRow(G4int ntupleId) final; + G4bool GetNtupleRow(G4int ntupleId) final; // Access methods - virtual G4int GetNofNtuples() const final; + G4int GetNofNtuples() const final; // Utility method G4TRNtupleDescription* GetNtupleDescriptionInFunction(G4int id, diff --git a/source/analysis/management/include/G4TRNtupleManager.icc b/source/analysis/management/include/G4TRNtupleManager.icc index 834a1e8c84..fc35bdf27b 100644 --- a/source/analysis/management/include/G4TRNtupleManager.icc +++ b/source/analysis/management/include/G4TRNtupleManager.icc @@ -163,7 +163,7 @@ template G4int G4TRNtupleManager::SetNtuple( G4TRNtupleDescription* rntupleDescription) { - G4int id = fNtupleDescriptionVector.size() + fFirstId; + G4int id = G4int(fNtupleDescriptionVector.size() + fFirstId); fNtupleDescriptionVector.push_back(rntupleDescription); diff --git a/source/analysis/management/include/G4VAnalysisManager.hh b/source/analysis/management/include/G4VAnalysisManager.hh index e5888017b1..37a3fef30b 100644 --- a/source/analysis/management/include/G4VAnalysisManager.hh +++ b/source/analysis/management/include/G4VAnalysisManager.hh @@ -45,17 +45,14 @@ #include #include +#include "G4VTBaseHnManager.hh" // make forward declaration if possible + class G4AnalysisMessenger; class G4NtupleBookingManager; class G4HnManager; -class G4VH1Manager; -class G4VH2Manager; -class G4VH3Manager; -class G4VP1Manager; -class G4VP2Manager; class G4VNtupleManager; +class G4VNtupleFileManager; class G4VFileManager; -class G4PlotManager; namespace tools { namespace histo{ @@ -65,7 +62,11 @@ class hmpi; class G4VAnalysisManager { + friend class G4AnalysisMessenger; + public: + G4VAnalysisManager() = delete; + // Methods for handling files G4bool OpenFile(const G4String& fileName = ""); G4bool Write(); @@ -418,6 +419,15 @@ class G4VAnalysisManager G4int GetP1Id(const G4String& name, G4bool warn = true) const; G4int GetP2Id(const G4String& name, G4bool warn = true) const; + // List objects + G4bool ListH1(G4bool onlyIfActive = true) const; + G4bool ListH2(G4bool onlyIfActive = true) const; + G4bool ListH3(G4bool onlyIfActive = true) const; + G4bool ListP1(G4bool onlyIfActive = true) const; + G4bool ListP2(G4bool onlyIfActive = true) const; + G4bool ListNtuple(G4bool onlyIfActive = true) const; + G4bool List(G4bool onlyIfActive = true) const; + // Methods to manipulate histogram, profiles & ntuples additional information // void SetH1Activation(G4bool activation); @@ -632,7 +642,6 @@ class G4VAnalysisManager protected: G4VAnalysisManager(const G4String& type); - G4VAnalysisManager() = delete; virtual ~G4VAnalysisManager(); // Virtual methods @@ -653,14 +662,14 @@ class G4VAnalysisManager G4bool success = true) const; // Methods - void SetH1Manager(G4VH1Manager* h1Manager); - void SetH2Manager(G4VH2Manager* h2Manager); - void SetH3Manager(G4VH3Manager* h3Manager); - void SetP1Manager(G4VP1Manager* p1Manager); - void SetP2Manager(G4VP2Manager* p2Manager); + void SetH1Manager(G4VTBaseHnManager<1>* h1Manager); + void SetH2Manager(G4VTBaseHnManager<2>* h2Manager); + void SetH3Manager(G4VTBaseHnManager<3>* h3Manager); + void SetP1Manager(G4VTBaseHnManager<2>* p1Manager); + void SetP2Manager(G4VTBaseHnManager<3>* p2Manager); void SetNtupleManager(std::shared_ptr ntupleManager); + void SetNtupleFileManager(std::shared_ptr ntupleFileManager); void SetFileManager(std::shared_ptr fileManager); - void SetPlotManager(std::shared_ptr plotManager); // Methods to manipulate additional information G4bool WriteAscii(const G4String& fileName); @@ -668,17 +677,31 @@ class G4VAnalysisManager // File manager access virtual std::shared_ptr GetFileManager(const G4String& fileName); + // Static data members + static constexpr unsigned int kDim1 { 1 }; + static constexpr unsigned int kDim2 { 2 }; + static constexpr unsigned int kDim3 { 3 }; + // Data members G4AnalysisManagerState fState; std::shared_ptr fVFileManager { nullptr }; - std::shared_ptr fPlotManager { nullptr }; std::shared_ptr fNtupleBookingManager { nullptr }; std::shared_ptr fVNtupleManager { nullptr }; + std::shared_ptr fVNtupleFileManager { nullptr }; private: + // Method invoked from UI commands + G4bool WriteFromUI(); + G4bool CloseFileFromUI(G4bool reset = true); + G4bool ResetFromUI(); + // Static data members static constexpr std::string_view fkClass { "G4VAnalysisManager" }; + // Static data members + inline static G4VAnalysisManager* fgMasterInstance { nullptr }; + // For registering worker managers needed in "FromUI" functions + // Data members std::unique_ptr fMessenger; std::shared_ptr fH1HnManager { nullptr }; @@ -686,11 +709,14 @@ class G4VAnalysisManager std::shared_ptr fH3HnManager { nullptr }; std::shared_ptr fP1HnManager { nullptr }; std::shared_ptr fP2HnManager { nullptr }; - std::unique_ptr fVH1Manager; - std::unique_ptr fVH2Manager; - std::unique_ptr fVH3Manager; - std::unique_ptr fVP1Manager; - std::unique_ptr fVP2Manager; + std::unique_ptr> fVH1Manager; + std::unique_ptr> fVH2Manager; + std::unique_ptr> fVH3Manager; + std::unique_ptr> fVP1Manager; + std::unique_ptr> fVP2Manager; + + std::vector fWorkerManagers; + // Used only in "FromUI" functions }; // inline functions diff --git a/source/analysis/management/include/G4VAnalysisManager.icc b/source/analysis/management/include/G4VAnalysisManager.icc index 030b135711..ed89e76477 100644 --- a/source/analysis/management/include/G4VAnalysisManager.icc +++ b/source/analysis/management/include/G4VAnalysisManager.icc @@ -26,11 +26,6 @@ #include "G4HnManager.hh" #include "G4NtupleBookingManager.hh" -#include "G4VH1Manager.hh" -#include "G4VH2Manager.hh" -#include "G4VH3Manager.hh" -#include "G4VP1Manager.hh" -#include "G4VP2Manager.hh" #include "G4VNtupleManager.hh" #include "G4VFileManager.hh" @@ -47,7 +42,7 @@ void G4VAnalysisManager::Message( inline G4bool G4VAnalysisManager::FillH1(G4int id, G4double value, G4double weight) { - return fVH1Manager->FillH1(id, value, weight); + return fVH1Manager->Fill(id, {{value}}, weight); } //_____________________________________________________________________________ @@ -56,7 +51,7 @@ G4bool G4VAnalysisManager::FillH2(G4int id, G4double xvalue, G4double yvalue, G4double weight) { - return fVH2Manager->FillH2(id, xvalue, yvalue, weight); + return fVH2Manager->Fill(id, {{xvalue, yvalue}}, weight); } //_____________________________________________________________________________ @@ -65,7 +60,7 @@ G4bool G4VAnalysisManager::FillH3(G4int id, G4double xvalue, G4double yvalue, G4double zvalue, G4double weight) { - return fVH3Manager->FillH3(id, xvalue, yvalue, zvalue, weight); + return fVH3Manager->Fill(id, { {xvalue, yvalue, zvalue}}, weight); } //_____________________________________________________________________________ @@ -73,7 +68,7 @@ inline G4bool G4VAnalysisManager::FillP1(G4int id, G4double xvalue, G4double yvalue, G4double weight) { - return fVP1Manager->FillP1(id, xvalue, yvalue, weight); + return fVP1Manager->Fill(id, {{xvalue, yvalue}}, weight); } //_____________________________________________________________________________ @@ -82,7 +77,7 @@ G4bool G4VAnalysisManager::FillP2(G4int id, G4double xvalue, G4double yvalue, G4double zvalue, G4double weight) { - return fVP2Manager->FillP2(id, xvalue, yvalue, zvalue, weight); + return fVP2Manager->Fill(id, {{xvalue, yvalue, zvalue}}, weight); } //_____________________________________________________________________________ @@ -169,42 +164,42 @@ G4bool G4VAnalysisManager::GetActivation() const inline G4int G4VAnalysisManager::GetH1Id(const G4String& name, G4bool warn) const { - return fVH1Manager->GetH1Id(name, warn); + return fVH1Manager->GetId(name, warn); } //_____________________________________________________________________________ inline G4int G4VAnalysisManager::GetH2Id(const G4String& name, G4bool warn) const { - return fVH2Manager->GetH2Id(name, warn); + return fVH2Manager->GetId(name, warn); } //_____________________________________________________________________________ inline G4int G4VAnalysisManager::GetH3Id(const G4String& name, G4bool warn) const { - return fVH3Manager->GetH3Id(name, warn); + return fVH3Manager->GetId(name, warn); } //_____________________________________________________________________________ inline G4int G4VAnalysisManager::GetP1Id(const G4String& name, G4bool warn) const { - return fVP1Manager->GetP1Id(name, warn); + return fVP1Manager->GetId(name, warn); } //_____________________________________________________________________________ inline G4int G4VAnalysisManager::GetP2Id(const G4String& name, G4bool warn) const { - return fVP2Manager->GetP2Id(name, warn); + return fVP2Manager->GetId(name, warn); } //_____________________________________________________________________________ inline G4int G4VAnalysisManager::GetH1Nbins(G4int id) const { - return fVH1Manager->GetH1Nbins(id); + return fVH1Manager->GetNbins(G4Analysis::kX, id); } //_____________________________________________________________________________ @@ -213,28 +208,28 @@ G4double G4VAnalysisManager::GetH1Xmin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVH1Manager->GetH1Xmin(id); + return fVH1Manager->GetMinValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH1Xmax(G4int id) const { - return fVH1Manager->GetH1Xmax(id); + return fVH1Manager->GetMaxValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH1Width(G4int id) const { - return fVH1Manager->GetH1Width(id); + return fVH1Manager->GetWidth(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisManager::GetH2Nxbins(G4int id) const { - return fVH2Manager->GetH2Nxbins(id); + return fVH2Manager->GetNbins(G4Analysis::kX, id); } //_____________________________________________________________________________ @@ -243,28 +238,28 @@ G4double G4VAnalysisManager::GetH2Xmin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVH2Manager->GetH2Xmin(id); + return fVH2Manager->GetMinValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH2Xmax(G4int id) const { - return fVH2Manager->GetH2Xmax(id); + return fVH2Manager->GetMaxValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH2XWidth(G4int id) const { - return fVH2Manager->GetH2XWidth(id); + return fVH2Manager->GetWidth(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisManager::GetH2Nybins(G4int id) const { - return fVH2Manager->GetH2Nybins(id); + return fVH2Manager->GetNbins(G4Analysis::kY, id); } //_____________________________________________________________________________ @@ -273,28 +268,28 @@ G4double G4VAnalysisManager::GetH2Ymin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVH2Manager->GetH2Ymin(id); + return fVH2Manager->GetMinValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH2Ymax(G4int id) const { - return fVH2Manager->GetH2Ymax(id); + return fVH2Manager->GetMaxValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH2YWidth(G4int id) const { - return fVH2Manager->GetH2YWidth(id); + return fVH2Manager->GetWidth(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisManager::GetH3Nxbins(G4int id) const { - return fVH3Manager->GetH3Nxbins(id); + return fVH3Manager->GetNbins(G4Analysis::kX, id); } //_____________________________________________________________________________ @@ -303,28 +298,28 @@ G4double G4VAnalysisManager::GetH3Xmin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVH3Manager->GetH3Xmin(id); + return fVH3Manager->GetMinValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH3Xmax(G4int id) const { - return fVH3Manager->GetH3Xmax(id); + return fVH3Manager->GetMaxValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH3XWidth(G4int id) const { - return fVH3Manager->GetH3XWidth(id); + return fVH3Manager->GetWidth(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisManager::GetH3Nybins(G4int id) const { - return fVH3Manager->GetH3Nybins(id); + return fVH3Manager->GetNbins(G4Analysis::kY, id); } //_____________________________________________________________________________ @@ -333,28 +328,28 @@ G4double G4VAnalysisManager::GetH3Ymin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVH3Manager->GetH3Ymin(id); + return fVH3Manager->GetMinValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH3Ymax(G4int id) const { - return fVH3Manager->GetH3Ymax(id); + return fVH3Manager->GetMaxValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH3YWidth(G4int id) const { - return fVH3Manager->GetH3YWidth(id); + return fVH3Manager->GetWidth(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisManager::GetH3Nzbins(G4int id) const { - return fVH3Manager->GetH3Nzbins(id); + return fVH3Manager->GetNbins(G4Analysis::kZ, id); } //_____________________________________________________________________________ @@ -363,28 +358,28 @@ G4double G4VAnalysisManager::GetH3Zmin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVH3Manager->GetH3Zmin(id); + return fVH3Manager->GetMinValue(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH3Zmax(G4int id) const { - return fVH3Manager->GetH3Zmax(id); + return fVH3Manager->GetMaxValue(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH3ZWidth(G4int id) const { - return fVH3Manager->GetH3ZWidth(id); + return fVH3Manager->GetWidth(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisManager::GetP1Nbins(G4int id) const { - return fVP1Manager->GetP1Nbins(id); + return fVP1Manager->GetNbins(G4Analysis::kX, id); } //_____________________________________________________________________________ @@ -393,21 +388,21 @@ G4double G4VAnalysisManager::GetP1Xmin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVP1Manager->GetP1Xmin(id); + return fVP1Manager->GetMinValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetP1Xmax(G4int id) const { - return fVP1Manager->GetP1Xmax(id); + return fVP1Manager->GetMaxValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetP1XWidth(G4int id) const { - return fVP1Manager->GetP1XWidth(id); + return fVP1Manager->GetWidth(G4Analysis::kX, id); } //_____________________________________________________________________________ @@ -416,21 +411,21 @@ G4double G4VAnalysisManager::GetP1Ymin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVP1Manager->GetP1Ymin(id); + return fVP1Manager->GetMinValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetP1Ymax(G4int id) const { - return fVP1Manager->GetP1Ymax(id); + return fVP1Manager->GetMaxValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisManager::GetP2Nxbins(G4int id) const { - return fVP2Manager->GetP2Nxbins(id); + return fVP2Manager->GetNbins(G4Analysis::kX, id); } //_____________________________________________________________________________ @@ -439,28 +434,28 @@ G4double G4VAnalysisManager::GetP2Xmin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVP2Manager->GetP2Xmin(id); + return fVP2Manager->GetMinValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetP2Xmax(G4int id) const { - return fVP2Manager->GetP2Xmax(id); + return fVP2Manager->GetMaxValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetP2XWidth(G4int id) const { - return fVP2Manager->GetP2XWidth(id); + return fVP2Manager->GetWidth(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisManager::GetP2Nybins(G4int id) const { - return fVP2Manager->GetP2Nybins(id); + return fVP2Manager->GetNbins(G4Analysis::kY, id); } //_____________________________________________________________________________ @@ -469,21 +464,21 @@ G4double G4VAnalysisManager::GetP2Ymin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVP2Manager->GetP2Ymin(id); + return fVP2Manager->GetMinValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetP2Ymax(G4int id) const { - return fVP2Manager->GetP2Ymax(id); + return fVP2Manager->GetMaxValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetP2YWidth(G4int id) const { - return fVP2Manager->GetP2YWidth(id); + return fVP2Manager->GetWidth(G4Analysis::kY, id); } //_____________________________________________________________________________ @@ -492,14 +487,14 @@ G4double G4VAnalysisManager::GetP2Zmin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVP2Manager->GetP2Zmin(id); + return fVP2Manager->GetMinValue(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetP2Zmax(G4int id) const { - return fVP2Manager->GetP2Zmax(id); + return fVP2Manager->GetMaxValue(G4Analysis::kZ, id); } //_____________________________________________________________________________ @@ -513,7 +508,7 @@ G4String G4VAnalysisManager::GetH1Name(G4int id) const inline G4double G4VAnalysisManager::GetH1Unit(G4int id) const { - return fH1HnManager->GetXUnit(id); + return fH1HnManager->GetUnit(G4Analysis::kX, id); } //_____________________________________________________________________________ @@ -548,14 +543,14 @@ G4String G4VAnalysisManager::GetH2Name(G4int id) const inline G4double G4VAnalysisManager::GetH2XUnit(G4int id) const { - return fH2HnManager->GetXUnit(id); + return fH2HnManager->GetUnit(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH2YUnit(G4int id) const { - return fH2HnManager->GetYUnit(id); + return fH2HnManager->GetUnit(G4Analysis::kY, id); } //_____________________________________________________________________________ @@ -590,21 +585,21 @@ G4String G4VAnalysisManager::GetH3Name(G4int id) const inline G4double G4VAnalysisManager::GetH3XUnit(G4int id) const { - return fH3HnManager->GetXUnit(id); + return fH3HnManager->GetUnit(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH3YUnit(G4int id) const { - return fH3HnManager->GetYUnit(id); + return fH3HnManager->GetUnit(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetH3ZUnit(G4int id) const { - return fH3HnManager->GetZUnit(id); + return fH3HnManager->GetUnit(G4Analysis::kZ, id); } //_____________________________________________________________________________ @@ -639,14 +634,14 @@ G4String G4VAnalysisManager::GetP1Name(G4int id) const inline G4double G4VAnalysisManager::GetP1XUnit(G4int id) const { - return fP1HnManager->GetXUnit(id); + return fP1HnManager->GetUnit(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetP1YUnit(G4int id) const { - return fP1HnManager->GetYUnit(id); + return fP1HnManager->GetUnit(G4Analysis::kY, id); } //_____________________________________________________________________________ @@ -681,21 +676,21 @@ G4String G4VAnalysisManager::GetP2Name(G4int id) const inline G4double G4VAnalysisManager::GetP2XUnit(G4int id) const { - return fP2HnManager->GetXUnit(id); + return fP2HnManager->GetUnit(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetP2YUnit(G4int id) const { - return fP2HnManager->GetYUnit(id); + return fP2HnManager->GetUnit(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisManager::GetP2ZUnit(G4int id) const { - return fP2HnManager->GetZUnit(id); + return fP2HnManager->GetUnit(G4Analysis::kZ, id); } //_____________________________________________________________________________ @@ -725,444 +720,442 @@ G4bool G4VAnalysisManager::GetNtupleActivation(G4int id) const { if ( fVNtupleManager ) { return fVNtupleManager->GetActivation(id); - } else { - return fNtupleBookingManager->GetActivation(id); - } + return fNtupleBookingManager->GetActivation(id); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH1Title(G4int id, const G4String& title) { - return fVH1Manager->SetH1Title(id, title); + return fVH1Manager->SetTitle(id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH1XAxisTitle(G4int id, const G4String& title) { - return fVH1Manager->SetH1XAxisTitle(id, title); + return fVH1Manager->SetAxisTitle(G4Analysis::kX, id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH1YAxisTitle(G4int id, const G4String& title) { - return fVH1Manager->SetH1YAxisTitle(id, title); + return fVH1Manager->SetAxisTitle(G4Analysis::kY, id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH1XAxisIsLog(G4int id, G4bool isLog) { - return fH1HnManager->SetXAxisIsLog(id, isLog); + return fH1HnManager->SetAxisIsLog(G4Analysis::kX, id, isLog); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH1YAxisIsLog(G4int id, G4bool isLog) { - return fH1HnManager->SetYAxisIsLog(id, isLog); + return fH1HnManager->SetAxisIsLog(G4Analysis::kY, id, isLog); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH2Title(G4int id, const G4String& title) { - return fVH2Manager->SetH2Title(id, title); + return fVH2Manager->SetTitle(id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH2XAxisTitle(G4int id, const G4String& title) { - return fVH2Manager->SetH2XAxisTitle(id, title); + return fVH2Manager->SetAxisTitle(G4Analysis::kX, id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH2YAxisTitle(G4int id, const G4String& title) { - return fVH2Manager->SetH2YAxisTitle(id, title); + return fVH2Manager->SetAxisTitle(G4Analysis::kY, id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH2ZAxisTitle(G4int id, const G4String& title) { - return fVH2Manager->SetH2ZAxisTitle(id, title); + return fVH2Manager->SetAxisTitle(G4Analysis::kZ, id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH2XAxisIsLog(G4int id, G4bool isLog) { - return fH2HnManager->SetXAxisIsLog(id, isLog); + return fH2HnManager->SetAxisIsLog(G4Analysis::kX, id, isLog); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH2YAxisIsLog(G4int id, G4bool isLog) { - return fH2HnManager->SetYAxisIsLog(id, isLog); + return fH2HnManager->SetAxisIsLog(G4Analysis::kY, id, isLog); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH2ZAxisIsLog(G4int id, G4bool isLog) { - return fH2HnManager->SetZAxisIsLog(id, isLog); + return fH2HnManager->SetAxisIsLog(G4Analysis::kZ, id, isLog); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH3Title(G4int id, const G4String& title) { - return fVH3Manager->SetH3Title(id, title); + return fVH3Manager->SetTitle(id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH3XAxisTitle(G4int id, const G4String& title) { - return fVH3Manager->SetH3XAxisTitle(id, title); + return fVH3Manager->SetAxisTitle(G4Analysis::kX, id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH3YAxisTitle(G4int id, const G4String& title) { - return fVH3Manager->SetH3YAxisTitle(id, title); + return fVH3Manager->SetAxisTitle(G4Analysis::kY, id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH3ZAxisTitle(G4int id, const G4String& title) { - return fVH3Manager->SetH3ZAxisTitle(id, title); + return fVH3Manager->SetAxisTitle(G4Analysis::kZ, id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH3XAxisIsLog(G4int id, G4bool isLog) { - return fH3HnManager->SetXAxisIsLog(id, isLog); + return fH3HnManager->SetAxisIsLog(G4Analysis::kX, id, isLog); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH3YAxisIsLog(G4int id, G4bool isLog) { - return fH3HnManager->SetYAxisIsLog(id, isLog); + return fH3HnManager->SetAxisIsLog(G4Analysis::kY, id, isLog); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetH3ZAxisIsLog(G4int id, G4bool isLog) { - return fH3HnManager->SetZAxisIsLog(id, isLog); + return fH3HnManager->SetAxisIsLog(G4Analysis::kZ, id, isLog); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetP1Title(G4int id, const G4String& title) { - return fVP1Manager->SetP1Title(id, title); + return fVP1Manager->SetTitle(id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetP1XAxisTitle(G4int id, const G4String& title) { - return fVP1Manager->SetP1XAxisTitle(id, title); + return fVP1Manager->SetAxisTitle(G4Analysis::kX, id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetP1YAxisTitle(G4int id, const G4String& title) { - return fVP1Manager->SetP1YAxisTitle(id, title); + return fVP1Manager->SetAxisTitle(G4Analysis::kY, id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetP1XAxisIsLog(G4int id, G4bool isLog) { - return fP1HnManager->SetXAxisIsLog(id, isLog); + return fP1HnManager->SetAxisIsLog(G4Analysis::kX, id, isLog); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetP1YAxisIsLog(G4int id, G4bool isLog) { - return fP1HnManager->SetYAxisIsLog(id, isLog); + return fP1HnManager->SetAxisIsLog(G4Analysis::kY, id, isLog); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetP2Title(G4int id, const G4String& title) { - return fVP2Manager->SetP2Title(id, title); + return fVP2Manager->SetTitle(id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetP2XAxisTitle(G4int id, const G4String& title) { - return fVP2Manager->SetP2XAxisTitle(id, title); + return fVP2Manager->SetAxisTitle(G4Analysis::kX, id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetP2YAxisTitle(G4int id, const G4String& title) { - return fVP2Manager->SetP2YAxisTitle(id, title); + return fVP2Manager->SetAxisTitle(G4Analysis::kY, id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetP2ZAxisTitle(G4int id, const G4String& title) { - return fVP2Manager->SetP2ZAxisTitle(id, title); + return fVP2Manager->SetAxisTitle(G4Analysis::kZ, id, title); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetP2XAxisIsLog(G4int id, G4bool isLog) { - return fP2HnManager->SetXAxisIsLog(id, isLog); + return fP2HnManager->SetAxisIsLog(G4Analysis::kX, id, isLog); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetP2YAxisIsLog(G4int id, G4bool isLog) { - return fP2HnManager->SetYAxisIsLog(id, isLog); + return fP2HnManager->SetAxisIsLog(G4Analysis::kY, id, isLog); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::SetP2ZAxisIsLog(G4int id, G4bool isLog) { - return fP2HnManager->SetZAxisIsLog(id, isLog); + return fP2HnManager->SetAxisIsLog(G4Analysis::kZ, id, isLog); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetH1Title(G4int id) const { - return fVH1Manager->GetH1Title(id); + return fVH1Manager->GetTitle(id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetH1XAxisTitle(G4int id) const { - return fVH1Manager->GetH1XAxisTitle(id); + return fVH1Manager->GetAxisTitle(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetH1YAxisTitle(G4int id) const { - return fVH1Manager->GetH1YAxisTitle(id); + return fVH1Manager->GetAxisTitle(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::GetH1XAxisIsLog(G4int id) const { - return fH1HnManager->GetXAxisIsLog(id); + return fH1HnManager->GetAxisIsLog(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::GetH1YAxisIsLog(G4int id) const { - return fH1HnManager->GetYAxisIsLog(id); + return fH1HnManager->GetAxisIsLog(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetH2Title(G4int id) const { - return fVH2Manager->GetH2Title(id); + return fVH2Manager->GetTitle(id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetH2XAxisTitle(G4int id) const { - return fVH2Manager->GetH2XAxisTitle(id); + return fVH2Manager->GetAxisTitle(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetH2YAxisTitle(G4int id) const { - return fVH2Manager->GetH2YAxisTitle(id); + return fVH2Manager->GetAxisTitle(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetH2ZAxisTitle(G4int id) const { - return fVH2Manager->GetH2ZAxisTitle(id); + return fVH2Manager->GetAxisTitle(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::GetH2XAxisIsLog(G4int id) const { - return fH2HnManager->GetXAxisIsLog(id); + return fH2HnManager->GetAxisIsLog(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::GetH2YAxisIsLog(G4int id) const { - return fH2HnManager->GetYAxisIsLog(id); + return fH2HnManager->GetAxisIsLog(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::GetH2ZAxisIsLog(G4int id) const { - return fH2HnManager->GetZAxisIsLog(id); + return fH2HnManager->GetAxisIsLog(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetH3Title(G4int id) const { - return fVH3Manager->GetH3Title(id); + return fVH3Manager->GetTitle(id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetH3XAxisTitle(G4int id) const { - return fVH3Manager->GetH3XAxisTitle(id); + return fVH3Manager->GetAxisTitle(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetH3YAxisTitle(G4int id) const { - return fVH3Manager->GetH3YAxisTitle(id); + return fVH3Manager->GetAxisTitle(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetH3ZAxisTitle(G4int id) const { - return fVH3Manager->GetH3ZAxisTitle(id); + return fVH3Manager->GetAxisTitle(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::GetH3XAxisIsLog(G4int id) const { - return fH3HnManager->GetXAxisIsLog(id); + return fH3HnManager->GetAxisIsLog(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::GetH3YAxisIsLog(G4int id) const { - return fH3HnManager->GetYAxisIsLog(id); + return fH3HnManager->GetAxisIsLog(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::GetH3ZAxisIsLog(G4int id) const { - return fH3HnManager->GetZAxisIsLog(id); + return fH3HnManager->GetAxisIsLog(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetP1Title(G4int id) const { - return fVP1Manager->GetP1Title(id); + return fVP1Manager->GetTitle(id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetP1XAxisTitle(G4int id) const { - return fVP1Manager->GetP1XAxisTitle(id); + return fVP1Manager->GetAxisTitle(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetP1YAxisTitle(G4int id) const { - return fVP1Manager->GetP1YAxisTitle(id); + return fVP1Manager->GetAxisTitle(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::GetP1XAxisIsLog(G4int id) const { - return fP1HnManager->GetXAxisIsLog(id); + return fP1HnManager->GetAxisIsLog(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::GetP1YAxisIsLog(G4int id) const { - return fP1HnManager->GetYAxisIsLog(id); + return fP1HnManager->GetAxisIsLog(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetP2Title(G4int id) const { - return fVP2Manager->GetP2Title(id); + return fVP2Manager->GetTitle(id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetP2XAxisTitle(G4int id) const { - return fVP2Manager->GetP2XAxisTitle(id); + return fVP2Manager->GetAxisTitle(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetP2YAxisTitle(G4int id) const { - return fVP2Manager->GetP2YAxisTitle(id); + return fVP2Manager->GetAxisTitle(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisManager::GetP2ZAxisTitle(G4int id) const { - return fVP2Manager->GetP2ZAxisTitle(id); + return fVP2Manager->GetAxisTitle(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::GetP2XAxisIsLog(G4int id) const { - return fP2HnManager->GetXAxisIsLog(id); + return fP2HnManager->GetAxisIsLog(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::GetP2YAxisIsLog(G4int id) const { - return fP2HnManager->GetYAxisIsLog(id); + return fP2HnManager->GetAxisIsLog(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4bool G4VAnalysisManager::GetP2ZAxisIsLog(G4int id) const { - return fP2HnManager->GetZAxisIsLog(id); + return fP2HnManager->GetAxisIsLog(G4Analysis::kZ, id); } diff --git a/source/analysis/management/include/G4VAnalysisReader.hh b/source/analysis/management/include/G4VAnalysisReader.hh index d5c1578e84..52dbd3438d 100644 --- a/source/analysis/management/include/G4VAnalysisReader.hh +++ b/source/analysis/management/include/G4VAnalysisReader.hh @@ -40,16 +40,13 @@ #include "G4AnalysisManagerState.hh" #include "globals.hh" +#include "G4VTBaseHnManager.hh" // make forward declaration if possible + #include #include #include class G4HnManager; -class G4VH1Manager; -class G4VH2Manager; -class G4VH3Manager; -class G4VP1Manager; -class G4VP2Manager; class G4VRNtupleManager; class G4VRFileManager; @@ -250,11 +247,11 @@ class G4VAnalysisReader G4bool success = true) const; // Methods - void SetH1Manager(G4VH1Manager* h1Manager); - void SetH2Manager(G4VH2Manager* h2Manager); - void SetH3Manager(G4VH3Manager* h3Manager); - void SetP1Manager(G4VP1Manager* p1Manager); - void SetP2Manager(G4VP2Manager* p2Manager); + void SetH1Manager(G4VTBaseHnManager<1>* h1Manager); + void SetH2Manager(G4VTBaseHnManager<2>* h2Manager); + void SetH3Manager(G4VTBaseHnManager<3>* h3Manager); + void SetP1Manager(G4VTBaseHnManager<2>* p1Manager); + void SetP2Manager(G4VTBaseHnManager<3>* p2Manager); void SetNtupleManager(std::shared_ptr ntupleManager); void SetFileManager(std::shared_ptr fileManager); @@ -269,11 +266,11 @@ class G4VAnalysisReader static constexpr std::string_view fkClass { "G4VAnalysisReader" }; // Data members - std::unique_ptr fVH1Manager; - std::unique_ptr fVH2Manager; - std::unique_ptr fVH3Manager; - std::unique_ptr fVP1Manager; - std::unique_ptr fVP2Manager; + std::unique_ptr> fVH1Manager; + std::unique_ptr> fVH2Manager; + std::unique_ptr> fVH3Manager; + std::unique_ptr> fVP1Manager; + std::unique_ptr> fVP2Manager; std::shared_ptr fVNtupleManager { nullptr }; }; @@ -282,4 +279,3 @@ class G4VAnalysisReader #include "G4VAnalysisReader.icc" #endif - diff --git a/source/analysis/management/include/G4VAnalysisReader.icc b/source/analysis/management/include/G4VAnalysisReader.icc index 1aa34a6828..0724b381da 100644 --- a/source/analysis/management/include/G4VAnalysisReader.icc +++ b/source/analysis/management/include/G4VAnalysisReader.icc @@ -25,11 +25,6 @@ // #include "G4HnManager.hh" -#include "G4VH1Manager.hh" -#include "G4VH2Manager.hh" -#include "G4VH3Manager.hh" -#include "G4VP1Manager.hh" -#include "G4VP2Manager.hh" #include "G4VRFileManager.hh" //_____________________________________________________________________________ @@ -45,42 +40,42 @@ void G4VAnalysisReader::Message( inline G4int G4VAnalysisReader::GetH1Id(const G4String& name, G4bool warn) const { - return fVH1Manager->GetH1Id(name, warn); + return fVH1Manager->GetId(name, warn); } //_____________________________________________________________________________ inline G4int G4VAnalysisReader::GetH2Id(const G4String& name, G4bool warn) const { - return fVH2Manager->GetH2Id(name, warn); + return fVH2Manager->GetId(name, warn); } //_____________________________________________________________________________ inline G4int G4VAnalysisReader::GetH3Id(const G4String& name, G4bool warn) const { - return fVH3Manager->GetH3Id(name, warn); + return fVH3Manager->GetId(name, warn); } //_____________________________________________________________________________ inline G4int G4VAnalysisReader::GetP1Id(const G4String& name, G4bool warn) const { - return fVP1Manager->GetP1Id(name, warn); + return fVP1Manager->GetId(name, warn); } //_____________________________________________________________________________ inline G4int G4VAnalysisReader::GetP2Id(const G4String& name, G4bool warn) const { - return fVP2Manager->GetP2Id(name, warn); + return fVP2Manager->GetId(name, warn); } //_____________________________________________________________________________ inline G4int G4VAnalysisReader::GetH1Nbins(G4int id) const { - return fVH1Manager->GetH1Nbins(id); + return fVH1Manager->GetNbins(G4Analysis::kX, id); } //_____________________________________________________________________________ @@ -89,28 +84,28 @@ G4double G4VAnalysisReader::GetH1Xmin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVH1Manager->GetH1Xmin(id); + return fVH1Manager->GetMinValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetH1Xmax(G4int id) const { - return fVH1Manager->GetH1Xmax(id); + return fVH1Manager->GetMaxValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetH1Width(G4int id) const { - return fVH1Manager->GetH1Width(id); + return fVH1Manager->GetWidth(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisReader::GetH2Nxbins(G4int id) const { - return fVH2Manager->GetH2Nxbins(id); + return fVH2Manager->GetNbins(G4Analysis::kX, id); } //_____________________________________________________________________________ @@ -119,28 +114,28 @@ G4double G4VAnalysisReader::GetH2Xmin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVH2Manager->GetH2Xmin(id); + return fVH2Manager->GetMinValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetH2Xmax(G4int id) const { - return fVH2Manager->GetH2Xmax(id); + return fVH2Manager->GetMaxValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetH2XWidth(G4int id) const { - return fVH2Manager->GetH2XWidth(id); + return fVH2Manager->GetWidth(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisReader::GetH2Nybins(G4int id) const { - return fVH2Manager->GetH2Nybins(id); + return fVH2Manager->GetNbins(G4Analysis::kY, id); } //_____________________________________________________________________________ @@ -149,29 +144,28 @@ G4double G4VAnalysisReader::GetH2Ymin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVH2Manager->GetH2Ymin(id); + return fVH2Manager->GetMinValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetH2Ymax(G4int id) const { - return fVH2Manager->GetH2Ymax(id); + return fVH2Manager->GetMaxValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetH2YWidth(G4int id) const { - return fVH2Manager->GetH2YWidth(id); + return fVH2Manager->GetWidth(G4Analysis::kY, id); } - //_____________________________________________________________________________ inline G4int G4VAnalysisReader::GetH3Nxbins(G4int id) const { - return fVH3Manager->GetH3Nxbins(id); + return fVH3Manager->GetNbins(G4Analysis::kX, id); } //_____________________________________________________________________________ @@ -180,28 +174,28 @@ G4double G4VAnalysisReader::GetH3Xmin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVH3Manager->GetH3Xmin(id); + return fVH3Manager->GetMinValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetH3Xmax(G4int id) const { - return fVH3Manager->GetH3Xmax(id); + return fVH3Manager->GetMaxValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetH3XWidth(G4int id) const { - return fVH3Manager->GetH3XWidth(id); + return fVH3Manager->GetWidth(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisReader::GetH3Nybins(G4int id) const { - return fVH3Manager->GetH3Nybins(id); + return fVH3Manager->GetNbins(G4Analysis::kY, id); } //_____________________________________________________________________________ @@ -210,28 +204,28 @@ G4double G4VAnalysisReader::GetH3Ymin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVH3Manager->GetH3Ymin(id); + return fVH3Manager->GetMinValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetH3Ymax(G4int id) const { - return fVH3Manager->GetH3Ymax(id); + return fVH3Manager->GetMaxValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetH3YWidth(G4int id) const { - return fVH3Manager->GetH3YWidth(id); + return fVH3Manager->GetWidth(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisReader::GetH3Nzbins(G4int id) const { - return fVH3Manager->GetH3Nzbins(id); + return fVH3Manager->GetNbins(G4Analysis::kZ, id); } //_____________________________________________________________________________ @@ -240,28 +234,28 @@ G4double G4VAnalysisReader::GetH3Zmin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVH3Manager->GetH3Zmin(id); + return fVH3Manager->GetMinValue(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetH3Zmax(G4int id) const { - return fVH3Manager->GetH3Zmax(id); + return fVH3Manager->GetMaxValue(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetH3ZWidth(G4int id) const { - return fVH3Manager->GetH3ZWidth(id); + return fVH3Manager->GetWidth(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisReader::GetP1Nbins(G4int id) const { - return fVP1Manager->GetP1Nbins(id); + return fVP1Manager->GetNbins(G4Analysis::kX, id); } //_____________________________________________________________________________ @@ -270,21 +264,21 @@ G4double G4VAnalysisReader::GetP1Xmin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVP1Manager->GetP1Xmin(id); + return fVP1Manager->GetMinValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetP1Xmax(G4int id) const { - return fVP1Manager->GetP1Xmax(id); + return fVP1Manager->GetMaxValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetP1XWidth(G4int id) const { - return fVP1Manager->GetP1XWidth(id); + return fVP1Manager->GetWidth(G4Analysis::kX, id); } //_____________________________________________________________________________ @@ -293,21 +287,21 @@ G4double G4VAnalysisReader::GetP1Ymin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVP1Manager->GetP1Ymin(id); + return fVP1Manager->GetMinValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetP1Ymax(G4int id) const { - return fVP1Manager->GetP1Ymax(id); + return fVP1Manager->GetMaxValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisReader::GetP2Nxbins(G4int id) const { - return fVP2Manager->GetP2Nxbins(id); + return fVP2Manager->GetNbins(G4Analysis::kX, id); } //_____________________________________________________________________________ @@ -316,28 +310,28 @@ G4double G4VAnalysisReader::GetP2Xmin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVP2Manager->GetP2Xmin(id); + return fVP2Manager->GetMinValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetP2Xmax(G4int id) const { - return fVP2Manager->GetP2Xmax(id); + return fVP2Manager->GetMaxValue(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetP2XWidth(G4int id) const { - return fVP2Manager->GetP2XWidth(id); + return fVP2Manager->GetWidth(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4int G4VAnalysisReader::GetP2Nybins(G4int id) const { - return fVP2Manager->GetP2Nybins(id); + return fVP2Manager->GetNbins(G4Analysis::kY, id); } //_____________________________________________________________________________ @@ -346,21 +340,21 @@ G4double G4VAnalysisReader::GetP2Ymin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVP2Manager->GetP2Ymin(id); + return fVP2Manager->GetMinValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetP2Ymax(G4int id) const { - return fVP2Manager->GetP2Ymax(id); + return fVP2Manager->GetMaxValue(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetP2YWidth(G4int id) const { - return fVP2Manager->GetP2YWidth(id); + return fVP2Manager->GetWidth(G4Analysis::kY, id); } //_____________________________________________________________________________ @@ -369,140 +363,140 @@ G4double G4VAnalysisReader::GetP2Zmin(G4int id) const { // Returns xmin value with applied unit and histogram function - return fVP2Manager->GetP2Zmin(id); + return fVP2Manager->GetMinValue(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4double G4VAnalysisReader::GetP2Zmax(G4int id) const { - return fVP2Manager->GetP2Zmax(id); + return fVP2Manager->GetMaxValue(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetH1Title(G4int id) const { - return fVH1Manager->GetH1Title(id); + return fVH1Manager->GetTitle(id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetH1XAxisTitle(G4int id) const { - return fVH1Manager->GetH1XAxisTitle(id); + return fVH1Manager->GetAxisTitle(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetH1YAxisTitle(G4int id) const { - return fVH1Manager->GetH1YAxisTitle(id); + return fVH1Manager->GetAxisTitle(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetH2Title(G4int id) const { - return fVH2Manager->GetH2Title(id); + return fVH2Manager->GetTitle(id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetH2XAxisTitle(G4int id) const { - return fVH2Manager->GetH2XAxisTitle(id); + return fVH2Manager->GetAxisTitle(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetH2YAxisTitle(G4int id) const { - return fVH2Manager->GetH2YAxisTitle(id); + return fVH2Manager->GetAxisTitle(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetH2ZAxisTitle(G4int id) const { - return fVH2Manager->GetH2ZAxisTitle(id); + return fVH2Manager->GetAxisTitle(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetH3Title(G4int id) const { - return fVH3Manager->GetH3Title(id); + return fVH3Manager->GetTitle(id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetH3XAxisTitle(G4int id) const { - return fVH3Manager->GetH3XAxisTitle(id); + return fVH3Manager->GetAxisTitle(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetH3YAxisTitle(G4int id) const { - return fVH3Manager->GetH3YAxisTitle(id); + return fVH3Manager->GetAxisTitle(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetH3ZAxisTitle(G4int id) const { - return fVH3Manager->GetH3ZAxisTitle(id); + return fVH3Manager->GetAxisTitle(G4Analysis::kZ, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetP1Title(G4int id) const { - return fVP1Manager->GetP1Title(id); + return fVP1Manager->GetTitle(id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetP1XAxisTitle(G4int id) const { - return fVP1Manager->GetP1XAxisTitle(id); + return fVP1Manager->GetAxisTitle(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetP1YAxisTitle(G4int id) const { - return fVP1Manager->GetP1YAxisTitle(id); + return fVP1Manager->GetAxisTitle(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetP2Title(G4int id) const { - return fVP2Manager->GetP2Title(id); + return fVP2Manager->GetTitle(id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetP2XAxisTitle(G4int id) const { - return fVP2Manager->GetP2XAxisTitle(id); + return fVP2Manager->GetAxisTitle(G4Analysis::kX, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetP2YAxisTitle(G4int id) const { - return fVP2Manager->GetP2YAxisTitle(id); + return fVP2Manager->GetAxisTitle(G4Analysis::kY, id); } //_____________________________________________________________________________ inline G4String G4VAnalysisReader::GetP2ZAxisTitle(G4int id) const { - return fVP2Manager->GetP2ZAxisTitle(id); + return fVP2Manager->GetAxisTitle(G4Analysis::kZ, id); } //_____________________________________________________________________________ diff --git a/source/analysis/management/include/G4VFileManager.hh b/source/analysis/management/include/G4VFileManager.hh index 0928ee5385..4d4dd990fd 100644 --- a/source/analysis/management/include/G4VFileManager.hh +++ b/source/analysis/management/include/G4VFileManager.hh @@ -53,7 +53,7 @@ class G4VFileManager : public G4BaseFileManager public: explicit G4VFileManager(const G4AnalysisManagerState& state); G4VFileManager() = delete; - virtual ~G4VFileManager() = default; + ~G4VFileManager() override = default; // Method to open default file virtual G4bool OpenFile(const G4String& fileName) = 0; @@ -65,6 +65,7 @@ class G4VFileManager : public G4BaseFileManager virtual G4bool SetIsEmpty(const G4String& fileName, G4bool isEmpty) = 0; // Methods applied to all registered files + virtual G4bool OpenFiles() = 0; virtual G4bool WriteFiles() = 0; virtual G4bool CloseFiles() = 0; virtual G4bool DeleteEmptyFiles() = 0; @@ -73,7 +74,7 @@ class G4VFileManager : public G4BaseFileManager virtual void Clear() = 0; // Methods for handling files and directories names - virtual G4bool SetFileName(const G4String& fileName) final; + G4bool SetFileName(const G4String& fileName) final; virtual G4bool SetHistoDirectoryName(const G4String& dirName); virtual G4bool SetNtupleDirectoryName(const G4String& dirName); @@ -83,6 +84,7 @@ class G4VFileManager : public G4BaseFileManager G4bool IsOpenFile() const; G4String GetHistoDirectoryName() const; G4String GetNtupleDirectoryName() const; + G4int GetCycle() const; // Access to helpers template @@ -123,6 +125,9 @@ inline G4String G4VFileManager::GetHistoDirectoryName() const inline G4String G4VFileManager::GetNtupleDirectoryName() const { return fNtupleDirectoryName; } +inline G4int G4VFileManager::GetCycle() const +{ return fState.GetCycle(); } + template <> inline std::shared_ptr> diff --git a/source/analysis/management/include/G4VH1Manager.hh b/source/analysis/management/include/G4VH1Manager.hh deleted file mode 100644 index b08ba460a8..0000000000 --- a/source/analysis/management/include/G4VH1Manager.hh +++ /dev/null @@ -1,109 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Base class for H1 manager. -// -// Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr) - -#ifndef G4VH1Manager_h -#define G4VH1Manager_h 1 - -#include "globals.hh" - -#include -#include - -class G4HnManager; - -class G4VH1Manager -{ - // Disable using the object managers outside - friend class G4VAnalysisManager; - friend class G4VAnalysisReader; - - public: - G4VH1Manager() = default; - virtual ~G4VH1Manager() = default; - - // deleted copy constructor & assignment operator - G4VH1Manager(const G4VH1Manager& rhs) = delete; - G4VH1Manager& operator=(const G4VH1Manager& rhs) = delete; - - protected: - // Methods for handling histograms - virtual G4int CreateH1(const G4String& name, const G4String& title, - G4int nbins, G4double xmin, G4double xmax, - const G4String& unitName = "none", - const G4String& fcnName = "none", - const G4String& binSchemeName = "linear") = 0; - virtual G4int CreateH1(const G4String& name, const G4String& title, - const std::vector& edges, - const G4String& unitName = "none", - const G4String& fcnName = "none") = 0; - - virtual G4bool SetH1(G4int id, - G4int nbins, G4double xmin, G4double xmax, - const G4String& unitName = "none", - const G4String& fcnName = "none", - const G4String& binSchemeName = "linear") = 0; - virtual G4bool SetH1(G4int id, - const std::vector& edges, - const G4String& unitName = "none", - const G4String& fcnName = "none") = 0; - - virtual G4bool ScaleH1(G4int id, G4double factor) = 0; - - // Methods to fill histograms - virtual G4bool FillH1(G4int id, G4double value, G4double weight = 1.0) = 0; - - // Access methods - virtual G4int GetH1Id(const G4String& name, G4bool warn = true) const = 0; - - // Access to H1 parameters - virtual G4int GetH1Nbins(G4int id) const = 0; - virtual G4double GetH1Xmin(G4int id) const = 0; - virtual G4double GetH1Xmax(G4int id) const = 0; - virtual G4double GetH1Width(G4int id) const = 0; - - // Setters for attributes for plotting - virtual G4bool SetH1Title(G4int id, const G4String& title) = 0; - virtual G4bool SetH1XAxisTitle(G4int id, const G4String& title) = 0; - virtual G4bool SetH1YAxisTitle(G4int id, const G4String& title) = 0; - - // Access attributes for plotting - virtual G4String GetH1Title(G4int id) const = 0; - virtual G4String GetH1XAxisTitle(G4int id) const = 0; - virtual G4String GetH1YAxisTitle(G4int id) const = 0; - - // Methods to manipulate histograms - virtual G4bool WriteOnAscii(std::ofstream& output) = 0; - - // Access to Hn manager - virtual std::shared_ptr GetHnManager() = 0; -}; - -#endif - diff --git a/source/analysis/management/include/G4VH2Manager.hh b/source/analysis/management/include/G4VH2Manager.hh deleted file mode 100644 index b9f40bfd82..0000000000 --- a/source/analysis/management/include/G4VH2Manager.hh +++ /dev/null @@ -1,132 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Base class for H2 manager. -// -// Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr) - -#ifndef G4VH2Manager_h -#define G4VH2Manager_h 1 - -#include "globals.hh" - -#include -#include - -class G4HnManager; - -class G4VH2Manager -{ - // Disable using the object managers outside G4VAnalysisManager - friend class G4VAnalysisManager; - friend class G4VAnalysisReader; - - public: - G4VH2Manager() = default; - virtual ~G4VH2Manager() = default; - - // deleted copy constructor & assignment operator - G4VH2Manager(const G4VH2Manager& rhs) = delete; - G4VH2Manager& operator=(const G4VH2Manager& rhs) =delete; - - protected: - // Methods for handling histograms - virtual G4int CreateH2(const G4String& name, const G4String& title, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& xbinScheme = "linear", - const G4String& ybinScheme = "linear") = 0; - - virtual G4int CreateH2(const G4String& name, const G4String& title, - const std::vector& xedges, - const std::vector& yedges, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none") = 0; - - virtual G4bool SetH2(G4int id, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& xbinScheme = "linear", - const G4String& ybinScheme = "linear") = 0; - - virtual G4bool SetH2(G4int id, - const std::vector& xedges, - const std::vector& yedges, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none") = 0; - - virtual G4bool ScaleH2(G4int id, G4double factor) = 0; - - // Methods to fill histograms - virtual G4bool FillH2(G4int id, G4double xvalue, G4double yvalue, - G4double weight = 1.0) = 0; - - // Access methods - virtual G4int GetH2Id(const G4String& name, G4bool warn = true) const = 0; - - // Access to H2 parameters - virtual G4int GetH2Nxbins(G4int id) const = 0; - virtual G4double GetH2Xmin(G4int id) const = 0; - virtual G4double GetH2Xmax(G4int id) const = 0; - virtual G4double GetH2XWidth(G4int id) const = 0; - virtual G4int GetH2Nybins(G4int id) const = 0; - virtual G4double GetH2Ymin(G4int id) const = 0; - virtual G4double GetH2Ymax(G4int id) const = 0; - virtual G4double GetH2YWidth(G4int id) const = 0; - - // Setters for attributes for plotting - virtual G4bool SetH2Title(G4int id, const G4String& title) = 0; - virtual G4bool SetH2XAxisTitle(G4int id, const G4String& title) = 0; - virtual G4bool SetH2YAxisTitle(G4int id, const G4String& title) = 0; - virtual G4bool SetH2ZAxisTitle(G4int id, const G4String& title) = 0; - - // Access attributes for plotting - virtual G4String GetH2Title(G4int id) const = 0; - virtual G4String GetH2XAxisTitle(G4int id) const = 0; - virtual G4String GetH2YAxisTitle(G4int id) const = 0; - virtual G4String GetH2ZAxisTitle(G4int id) const = 0; - - // Methods to manipulate histograms - virtual G4bool WriteOnAscii(std::ofstream& output) = 0; - - // Access to Hn manager - virtual std::shared_ptr GetHnManager() = 0; -}; - -#endif - diff --git a/source/analysis/management/include/G4VH3Manager.hh b/source/analysis/management/include/G4VH3Manager.hh deleted file mode 100644 index 57a901ecb8..0000000000 --- a/source/analysis/management/include/G4VH3Manager.hh +++ /dev/null @@ -1,151 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Base class for H3 manager. -// -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#ifndef G4VH3Manager_h -#define G4VH3Manager_h 1 - -#include "globals.hh" - -#include -#include - -class G4HnManager; - -class G4VH3Manager -{ - // Disable using the object managers outside G4VAnalysisManager - friend class G4VAnalysisManager; - friend class G4VAnalysisReader; - - public: - G4VH3Manager() = default; - virtual ~G4VH3Manager() = default; - - // deleted copy constructor & assignment operator - G4VH3Manager(const G4VH3Manager& rhs) = delete; - G4VH3Manager& operator=(const G4VH3Manager& rhs) = delete; - - protected: - // Methods for handling histograms - virtual G4int CreateH3(const G4String& name, const G4String& title, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4int nzbins, G4double zmin, G4double zmax, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none", - const G4String& xbinScheme = "linear", - const G4String& ybinScheme = "linear", - const G4String& zbinScheme = "linear") = 0; - - virtual G4int CreateH3(const G4String& name, const G4String& title, - const std::vector& xedges, - const std::vector& yedges, - const std::vector& zedges, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none") = 0; - - virtual G4bool SetH3(G4int id, - G4int nxbins, G4double xmin, G4double xmax, - G4int nzbins, G4double zmin, G4double zmax, - G4int nybins, G4double ymin, G4double ymax, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none", - const G4String& xbinScheme = "linear", - const G4String& ybinScheme = "linear", - const G4String& zbinScheme = "linear") = 0; - - virtual G4bool SetH3(G4int id, - const std::vector& xedges, - const std::vector& yedges, - const std::vector& zedges, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none") = 0; - - virtual G4bool ScaleH3(G4int id, G4double factor) = 0; - - // Methods to fill histograms - virtual G4bool FillH3(G4int id, - G4double xvalue, G4double yvalue, G4double zvalue, - G4double weight = 1.0) = 0; - - // Access methods - virtual G4int GetH3Id(const G4String& name, G4bool warn = true) const = 0; - - // Access to H3 parameters - virtual G4int GetH3Nxbins(G4int id) const = 0; - virtual G4double GetH3Xmin(G4int id) const = 0; - virtual G4double GetH3Xmax(G4int id) const = 0; - virtual G4double GetH3XWidth(G4int id) const = 0; - virtual G4int GetH3Nybins(G4int id) const = 0; - virtual G4double GetH3Ymin(G4int id) const = 0; - virtual G4double GetH3Ymax(G4int id) const = 0; - virtual G4double GetH3YWidth(G4int id) const = 0; - virtual G4int GetH3Nzbins(G4int id) const = 0; - virtual G4double GetH3Zmin(G4int id) const = 0; - virtual G4double GetH3Zmax(G4int id) const = 0; - virtual G4double GetH3ZWidth(G4int id) const = 0; - - // Setters for attributes for plotting - virtual G4bool SetH3Title(G4int id, const G4String& title) = 0; - virtual G4bool SetH3XAxisTitle(G4int id, const G4String& title) = 0; - virtual G4bool SetH3YAxisTitle(G4int id, const G4String& title) = 0; - virtual G4bool SetH3ZAxisTitle(G4int id, const G4String& title) = 0; - - // Access attributes for plotting - virtual G4String GetH3Title(G4int id) const = 0; - virtual G4String GetH3XAxisTitle(G4int id) const = 0; - virtual G4String GetH3YAxisTitle(G4int id) const = 0; - virtual G4String GetH3ZAxisTitle(G4int id) const = 0; - - // Methods to manipulate histograms - virtual G4bool WriteOnAscii(std::ofstream& output) = 0; - - // Access to Hn manager - virtual std::shared_ptr GetHnManager() = 0; -}; - -#endif - diff --git a/source/analysis/management/include/G4VNtupleFileManager.hh b/source/analysis/management/include/G4VNtupleFileManager.hh index a2f926de5b..e637425cb2 100644 --- a/source/analysis/management/include/G4VNtupleFileManager.hh +++ b/source/analysis/management/include/G4VNtupleFileManager.hh @@ -36,10 +36,17 @@ #include #include +#include class G4VNtupleManager; class G4NtupleBookingManager; +enum class G4NtupleMergeMode { + kNone, + kMain, + kSlave +}; + class G4VNtupleFileManager { // Disable using the object managers outside G4VAnalysisManager and @@ -47,8 +54,7 @@ class G4VNtupleFileManager friend class G4VAnalysisManager; public: - G4VNtupleFileManager(const G4AnalysisManagerState& state, - const G4String& fileType); + G4VNtupleFileManager(const G4AnalysisManagerState& state, G4String fileType); G4VNtupleFileManager() = delete; virtual ~G4VNtupleFileManager() = default; @@ -69,9 +75,10 @@ class G4VNtupleFileManager // Methods to be performed at file management virtual G4bool ActionAtOpenFile(const G4String& /*fileName*/) = 0; virtual G4bool ActionAtWrite() = 0; - virtual G4bool ActionAtCloseFile(G4bool /*reset*/) = 0; + virtual G4bool ActionAtCloseFile() = 0; virtual G4bool Reset() = 0; virtual G4bool IsNtupleMergingSupported() const; + virtual G4NtupleMergeMode GetMergeMode() const; // Get methods G4String GetFileType() const; @@ -98,7 +105,9 @@ class G4VNtupleFileManager inline void G4VNtupleFileManager::SetBookingManager( std::shared_ptr bookingManager) -{ fBookingManager = bookingManager; } +{ + fBookingManager = std::move(bookingManager); +} inline G4bool G4VNtupleFileManager::IsNtupleMergingSupported() const { return false; @@ -115,4 +124,8 @@ inline void G4VNtupleFileManager::Message( fState.Message(level, action, objectType, objectName, success); } +inline G4NtupleMergeMode G4VNtupleFileManager::GetMergeMode() const { + return G4NtupleMergeMode::kNone; +} + #endif diff --git a/source/analysis/management/include/G4VNtupleManager.hh b/source/analysis/management/include/G4VNtupleManager.hh index 4278679a44..928aa85099 100644 --- a/source/analysis/management/include/G4VNtupleManager.hh +++ b/source/analysis/management/include/G4VNtupleManager.hh @@ -49,7 +49,7 @@ class G4VNtupleManager : public G4BaseAnalysisManager explicit G4VNtupleManager(const G4AnalysisManagerState& state) : G4BaseAnalysisManager(state) {} G4VNtupleManager() = delete; - virtual ~G4VNtupleManager() = default; + ~G4VNtupleManager() override = default; // deleted copy constructor & assignment operator G4VNtupleManager(const G4VNtupleManager& rhs) = delete; @@ -80,6 +80,10 @@ class G4VNtupleManager : public G4BaseAnalysisManager virtual void SetActivation(G4int id, G4bool activation) = 0; virtual G4bool GetActivation(G4int id) const = 0; + // New cycle option + virtual void SetNewCycle(G4bool value) = 0; + virtual G4bool GetNewCycle() const = 0; + // Access methods virtual G4int GetNofNtuples() const = 0; // virtual G4int GetNofNtupleBookings() const = 0; @@ -89,7 +93,9 @@ class G4VNtupleManager : public G4BaseAnalysisManager // Clear all date virtual void Clear() = 0; + + // List ntuples + virtual G4bool List(std::ostream& output, G4bool onlyIfActive = true) = 0; }; #endif - diff --git a/source/analysis/management/include/G4VP1Manager.hh b/source/analysis/management/include/G4VP1Manager.hh deleted file mode 100644 index f6e9f45777..0000000000 --- a/source/analysis/management/include/G4VP1Manager.hh +++ /dev/null @@ -1,124 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Base class for P1 manager. -// -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#ifndef G4VP1Manager_h -#define G4VP1Manager_h 1 - -#include "globals.hh" - -#include -#include - -class G4HnManager; - -class G4VP1Manager -{ - // Disable using the object managers outside - friend class G4VAnalysisManager; - friend class G4VAnalysisReader; - - public: - G4VP1Manager() = default; - virtual ~G4VP1Manager() = default; - - // deleted copy constructor & assignment operator - G4VP1Manager(const G4VP1Manager& rhs) = delete; - G4VP1Manager& operator=(const G4VP1Manager& rhs) = delete; - - protected: - // Methods for handling profiles - virtual G4int CreateP1(const G4String& name, const G4String& title, - G4int nbins, G4double xmin, G4double xmax, - G4double ymin = 0, G4double ymax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& xbinScheme = "linear") = 0; - virtual G4int CreateP1(const G4String& name, const G4String& title, - const std::vector& edges, - G4double ymin = 0, G4double ymax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none") = 0; - - virtual G4bool SetP1(G4int id, - G4int nbins, G4double xmin, G4double xmax, - G4double ymin = 0, G4double ymax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& xbinScheme = "linear") = 0; - virtual G4bool SetP1(G4int id, - const std::vector& edges, - G4double ymin = 0, G4double ymax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none") = 0; - - virtual G4bool ScaleP1(G4int id, G4double factor) = 0; - - // Methods to fill profiles - virtual G4bool FillP1(G4int id, G4double xvalue, G4double yvalue, - G4double weight = 1.0) = 0; - - // Access methods - virtual G4int GetP1Id(const G4String& name, G4bool warn = true) const = 0; - - // Access to P1 parameters - virtual G4int GetP1Nbins(G4int id) const = 0; - virtual G4double GetP1Xmin(G4int id) const = 0; - virtual G4double GetP1Xmax(G4int id) const = 0; - virtual G4double GetP1XWidth(G4int id) const = 0; - virtual G4double GetP1Ymin(G4int id) const = 0; - virtual G4double GetP1Ymax(G4int id) const = 0; - - // Setters for attributes for plotting - virtual G4bool SetP1Title(G4int id, const G4String& title) = 0; - virtual G4bool SetP1XAxisTitle(G4int id, const G4String& title) = 0; - virtual G4bool SetP1YAxisTitle(G4int id, const G4String& title) = 0; - - // Access attributes for plotting - virtual G4String GetP1Title(G4int id) const = 0; - virtual G4String GetP1XAxisTitle(G4int id) const = 0; - virtual G4String GetP1YAxisTitle(G4int id) const = 0; - - // Methods to manipulate profiles - virtual G4bool WriteOnAscii(std::ofstream& output) = 0; - - // Access to Hn manager - virtual std::shared_ptr GetHnManager() = 0; -}; - -#endif - diff --git a/source/analysis/management/include/G4VP2Manager.hh b/source/analysis/management/include/G4VP2Manager.hh deleted file mode 100644 index 3188c7b4ec..0000000000 --- a/source/analysis/management/include/G4VP2Manager.hh +++ /dev/null @@ -1,147 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Base class for P2 manager. -// -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#ifndef G4VP2Manager_h -#define G4VP2Manager_h 1 - -#include "globals.hh" - -#include -#include - -class G4HnManager; - -class G4VP2Manager -{ - // Disable using the object managers outside G4VAnalysisManager - friend class G4VAnalysisManager; - friend class G4VAnalysisReader; - - public: - G4VP2Manager() = default; - virtual ~G4VP2Manager() = default; - - // deleted copy constructor & assignment operator - G4VP2Manager(const G4VP2Manager& rhs) = delete; - G4VP2Manager& operator=(const G4VP2Manager& rhs) = delete; - - protected: - // Methods for handling histograms - virtual G4int CreateP2(const G4String& name, const G4String& title, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4double zmin = 0, G4double zmax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none", - const G4String& xbinScheme = "linear", - const G4String& ybinScheme = "linear") = 0; - - virtual G4int CreateP2(const G4String& name, const G4String& title, - const std::vector& xedges, - const std::vector& yedges, - G4double zmin = 0, G4double zmax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none") = 0; - - virtual G4bool SetP2(G4int id, - G4int nxbins, G4double xmin, G4double xmax, - G4int nybins, G4double ymin, G4double ymax, - G4double zmin = 0, G4double zmax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none", - const G4String& xbinScheme = "linear", - const G4String& ybinScheme = "linear") = 0; - - virtual G4bool SetP2(G4int id, - const std::vector& xedges, - const std::vector& yedges, - G4double zmin = 0, G4double zmax = 0, - const G4String& xunitName = "none", - const G4String& yunitName = "none", - const G4String& zunitName = "none", - const G4String& xfcnName = "none", - const G4String& yfcnName = "none", - const G4String& zfcnName = "none") = 0; - - virtual G4bool ScaleP2(G4int id, G4double factor) = 0; - - // Methods to fill histograms - virtual G4bool FillP2(G4int id, - G4double xvalue, G4double yvalue, G4double zvalue, - G4double weight = 1.0) = 0; - - // Access methods - virtual G4int GetP2Id(const G4String& name, G4bool warn = true) const = 0; - - // Access to P2 parameters - virtual G4int GetP2Nxbins(G4int id) const = 0; - virtual G4double GetP2Xmin(G4int id) const = 0; - virtual G4double GetP2Xmax(G4int id) const = 0; - virtual G4double GetP2XWidth(G4int id) const = 0; - virtual G4int GetP2Nybins(G4int id) const = 0; - virtual G4double GetP2Ymin(G4int id) const = 0; - virtual G4double GetP2Ymax(G4int id) const = 0; - virtual G4double GetP2YWidth(G4int id) const = 0; - virtual G4double GetP2Zmin(G4int id) const = 0; - virtual G4double GetP2Zmax(G4int id) const = 0; - - // Setters for attributes for plotting - virtual G4bool SetP2Title(G4int id, const G4String& title) = 0; - virtual G4bool SetP2XAxisTitle(G4int id, const G4String& title) = 0; - virtual G4bool SetP2YAxisTitle(G4int id, const G4String& title) = 0; - virtual G4bool SetP2ZAxisTitle(G4int id, const G4String& title) = 0; - - // Access attributes for plotting - virtual G4String GetP2Title(G4int id) const = 0; - virtual G4String GetP2XAxisTitle(G4int id) const = 0; - virtual G4String GetP2YAxisTitle(G4int id) const = 0; - virtual G4String GetP2ZAxisTitle(G4int id) const = 0; - - // Methods to manipulate histograms - virtual G4bool WriteOnAscii(std::ofstream& output) = 0; - - // Access to Hn manager - virtual std::shared_ptr GetHnManager() = 0; -}; - -#endif - diff --git a/source/analysis/management/include/G4VRFileManager.hh b/source/analysis/management/include/G4VRFileManager.hh index 8717ecee22..b0a5b2f9ce 100644 --- a/source/analysis/management/include/G4VRFileManager.hh +++ b/source/analysis/management/include/G4VRFileManager.hh @@ -53,7 +53,7 @@ class G4VRFileManager : public G4BaseFileManager explicit G4VRFileManager(const G4AnalysisManagerState& state) : G4BaseFileManager(state) {} G4VRFileManager() = delete; - virtual ~G4VRFileManager() = default; + ~G4VRFileManager() override = default; // Methods applied to all registered files virtual void CloseFiles() = 0; diff --git a/source/analysis/management/include/G4VRNtupleManager.hh b/source/analysis/management/include/G4VRNtupleManager.hh index 2540161053..c29f59fdf1 100644 --- a/source/analysis/management/include/G4VRNtupleManager.hh +++ b/source/analysis/management/include/G4VRNtupleManager.hh @@ -46,7 +46,7 @@ class G4VRNtupleManager : public G4BaseAnalysisManager explicit G4VRNtupleManager(const G4AnalysisManagerState& state) : G4BaseAnalysisManager(state) {} G4VRNtupleManager() = delete; - virtual ~G4VRNtupleManager() = default; + ~G4VRNtupleManager() override = default; // deleted copy constructor & assignment operator G4VRNtupleManager(const G4VRNtupleManager& rhs) = delete; diff --git a/source/analysis/management/include/G4VTBaseHnManager.hh b/source/analysis/management/include/G4VTBaseHnManager.hh new file mode 100644 index 0000000000..d4818a630d --- /dev/null +++ b/source/analysis/management/include/G4VTBaseHnManager.hh @@ -0,0 +1,105 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Base class for common implementation for histograms managers. +// +// Author: Ivana Hrivnacova, 10/08/2022 (ivana@ipno.in2p3.fr) + +#ifndef G4VTBaseHnManager_h +#define G4VTBaseHnManager_h 1 + +#include "G4HnInformation.hh" +#include "globals.hh" + +#include +#include +#include + +class G4HnManager; + +template +class G4VTBaseHnManager +{ + // Disable using the object managers outside + friend class G4VAnalysisManager; + friend class G4VAnalysisReader; + + public: + G4VTBaseHnManager() = default; + virtual ~G4VTBaseHnManager() = default; + + // deleted copy constructor & assignment operator + G4VTBaseHnManager(const G4VTBaseHnManager& rhs) = delete; + G4VTBaseHnManager& operator=(const G4VTBaseHnManager& rhs) = delete; + + // Methods for handling histograms + virtual G4int Create(const G4String& name, const G4String& title, + const std::array& bins, + const std::array& hnInfo) = 0; + + // virtual G4int Create(const G4String& name, const G4String& title, + // const std::array, DIM> edges, + // const std::array& hnInfo) = 0; + + virtual G4bool Set(G4int id, + const std::array& bins, + const std::array& hnInfo) = 0; + + // virtual G4bool Set(G4int id, + // const std::array, DIM>& edges, + // const std::array& hnInfo) = 0; + + virtual G4bool Scale(G4int id, G4double factor) = 0; + + // Methods to fill histograms + virtual G4bool Fill(G4int id, std::array value, G4double weight = 1.0) = 0; + + // Access methods + virtual G4int GetId(const G4String& name, G4bool warn = true) const = 0; + + // Access to bins parameters + virtual G4int GetNbins(unsigned int idim, G4int id) const = 0; + virtual G4double GetMinValue(unsigned int idim, G4int id) const = 0; + virtual G4double GetMaxValue(unsigned int idim, G4int id) const = 0; + virtual G4double GetWidth(unsigned int idim, G4int id) const = 0; + + // Setters for attributes for plotting + virtual G4bool SetTitle(G4int id, const G4String& title) = 0; + virtual G4bool SetAxisTitle(unsigned int idim, G4int id, const G4String& title) = 0; + + // Access attributes for plotting + virtual G4String GetTitle(G4int id) const = 0; + virtual G4String GetAxisTitle(unsigned int idim, G4int id) const = 0; + + // Methods to list/print histograms + virtual G4bool WriteOnAscii(std::ofstream& output) = 0; + virtual G4bool List(std::ostream& output, G4bool onlyIfActive = true) = 0; + + virtual std::shared_ptr GetHnManager() = 0; + virtual const std::shared_ptr GetHnManager() const = 0; +}; + +#endif diff --git a/source/analysis/management/include/G4VTFileManager.hh b/source/analysis/management/include/G4VTFileManager.hh index b79cdef4b7..8ba8c0e0d6 100644 --- a/source/analysis/management/include/G4VTFileManager.hh +++ b/source/analysis/management/include/G4VTFileManager.hh @@ -45,24 +45,25 @@ class G4VTFileManager : public G4VFileManager, public: explicit G4VTFileManager(const G4AnalysisManagerState& state) : G4VFileManager(state), G4TFileManager(state) {} - virtual ~G4VTFileManager() = default; + ~G4VTFileManager() override = default; using G4VFileManager::WriteFile; using G4VFileManager::CloseFile; // Methods applied to file per name - virtual G4bool CreateFile(const G4String& fileName) final; - virtual G4bool WriteFile(const G4String& fileName) final; - virtual G4bool CloseFile(const G4String& fileName) final; - virtual G4bool SetIsEmpty(const G4String& fileName, G4bool isEmpty) final; + G4bool CreateFile(const G4String& fileName) final; + G4bool WriteFile(const G4String& fileName) final; + G4bool CloseFile(const G4String& fileName) final; + G4bool SetIsEmpty(const G4String& fileName, G4bool isEmpty) final; // Methods applied to all registered files - virtual G4bool WriteFiles() final; - virtual G4bool CloseFiles() final; - virtual G4bool DeleteEmptyFiles() final; + G4bool OpenFiles() final; + G4bool WriteFiles() final; + G4bool CloseFiles() final; + G4bool DeleteEmptyFiles() final; // Clear all data - virtual void Clear() final; + void Clear() final; // Get method std::shared_ptr GetFile() const; @@ -105,6 +106,14 @@ G4bool G4VTFileManager::SetIsEmpty(const G4String& fileName, G4bool isEmpty) return G4TFileManager::SetIsEmpty(fileName, isEmpty); } +//_____________________________________________________________________________ +template +inline +G4bool G4VTFileManager::OpenFiles() +{ + return G4TFileManager::OpenFiles(); +} + //_____________________________________________________________________________ template inline diff --git a/source/analysis/management/sources.cmake b/source/analysis/management/sources.cmake index 52b052f1ff..870793ffd4 100644 --- a/source/analysis/management/sources.cmake +++ b/source/analysis/management/sources.cmake @@ -17,27 +17,21 @@ geant4_add_module(G4analysismng G4BaseRNtupleManager.hh G4BinScheme.hh G4Fcn.hh - G4AnalysisMessengerHelper.hh - G4FileMessenger.hh - G4H1Messenger.hh - G4H2Messenger.hh - G4H3Messenger.hh - G4P1Messenger.hh - G4P2Messenger.hh G4NtupleBookingManager.hh G4NtupleBookingManager.icc G4NtupleMessenger.hh G4HnInformation.hh G4HnManager.hh G4HnMessenger.hh - G4PlotManager.hh - G4PlotMessenger.hh - G4PlotParameters.hh G4TFileInformation.hh G4TFileManager.hh G4TFileManager.icc G4THnManager.hh G4THnManager.icc + G4THnMessenger.hh + G4THnMessenger.icc + G4THnToolsManager.hh + G4THnToolsManager.icc G4TNtupleDescription.hh G4TNtupleManager.hh G4TNtupleManager.icc @@ -49,15 +43,11 @@ geant4_add_module(G4analysismng G4VAnalysisReader.hh G4VAnalysisReader.icc G4VFileManager.hh - G4VH1Manager.hh - G4VH2Manager.hh - G4VH3Manager.hh G4VNtupleFileManager.hh G4VNtupleManager.hh - G4VP1Manager.hh - G4VP2Manager.hh G4VRFileManager.hh G4VRNtupleManager.hh + G4VTBaseHnManager.hh G4VTFileManager.hh G4VTHnFileManager.hh G4VTHnRFileManager.hh @@ -65,27 +55,18 @@ geant4_add_module(G4analysismng G4AnalysisVerbose.cc G4AnalysisManagerState.cc G4AnalysisMessenger.cc + G4AnalysisUtilities.cc G4BaseAnalysisManager.cc G4BaseFileManager.cc G4BaseNtupleManager.cc G4BaseRNtupleManager.cc - G4AnalysisUtilities.cc G4BinScheme.cc G4Fcn.cc - G4AnalysisMessengerHelper.cc - G4FileMessenger.cc - G4H1Messenger.cc - G4H2Messenger.cc - G4H3Messenger.cc - G4P1Messenger.cc - G4P2Messenger.cc G4NtupleBookingManager.cc G4NtupleMessenger.cc + G4HnInformation.cc G4HnManager.cc G4HnMessenger.cc - G4PlotManager.cc - G4PlotMessenger.cc - G4PlotParameters.cc G4VAnalysisManager.cc G4VAnalysisReader.cc G4VFileManager.cc diff --git a/source/analysis/management/src/G4AnalysisManagerState.cc b/source/analysis/management/src/G4AnalysisManagerState.cc index 681cb52118..337a836ca6 100644 --- a/source/analysis/management/src/G4AnalysisManagerState.cc +++ b/source/analysis/management/src/G4AnalysisManagerState.cc @@ -27,16 +27,19 @@ // Author: Ivana Hrivnacova, 09/07/2013 (ivana@ipno.in2p3.fr) #include "G4AnalysisManagerState.hh" + #include "G4AnalysisUtilities.hh" #include "G4UnitsTable.hh" +#include + using namespace G4Analysis; //_____________________________________________________________________________ -G4AnalysisManagerState::G4AnalysisManagerState( - const G4String& type, G4bool isMaster) - : fType(type), - fIsMaster(isMaster) +G4AnalysisManagerState::G4AnalysisManagerState(G4String type, G4bool isMaster) + : fType(std::move(type)), + fIsMaster(isMaster), + fThreadId(G4Threading::G4GetThreadId()) {} // diff --git a/source/analysis/management/src/G4AnalysisMessenger.cc b/source/analysis/management/src/G4AnalysisMessenger.cc index 541442cf57..2922668e73 100644 --- a/source/analysis/management/src/G4AnalysisMessenger.cc +++ b/source/analysis/management/src/G4AnalysisMessenger.cc @@ -28,103 +28,155 @@ #include "G4AnalysisMessenger.hh" #include "G4VAnalysisManager.hh" -#include "G4FileMessenger.hh" -#include "G4H1Messenger.hh" -#include "G4H2Messenger.hh" -#include "G4H3Messenger.hh" -#include "G4P1Messenger.hh" -#include "G4P2Messenger.hh" #include "G4NtupleMessenger.hh" -#include "G4HnMessenger.hh" -#include "G4AnalysisUtilities.hh" #include "G4UIcmdWithABool.hh" #include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4Threading.hh" using namespace G4Analysis; //_____________________________________________________________________________ G4AnalysisMessenger::G4AnalysisMessenger(G4VAnalysisManager* manager) - : G4UImessenger(), - fManager(manager) + : fManager(manager) { fAnalysisDir = std::make_unique("/analysis/"); fAnalysisDir->SetGuidance("analysis control"); - fSetActivationCmd = std::make_unique("/analysis/setActivation",this); - G4String guidance = "Set activation. \n"; - guidance += "When this option is enabled, only the histograms marked as activated\n"; - guidance += "are returned, filled or saved on file.\n"; - guidance += "No warning is issued when Get or Fill is called on inactive histogram."; - fSetActivationCmd->SetGuidance(guidance); - fSetActivationCmd->SetParameterName("Activation",false); + fOpenFileCmd = CreateCommand( + "openFile", "Open analysis file", "FileName", true); + fOpenFileCmd->SetDefaultValue(""); + fOpenFileCmd->SetToBeBroadcasted(true); - fVerboseCmd = std::make_unique("/analysis/verbose",this); - fVerboseCmd->SetGuidance("Set verbose level"); - fVerboseCmd->SetParameterName("VerboseLevel",false); + fWriteCmd = CreateCommandWithoutParameter( + "write", "Write analysis data."); + fWriteCmd->SetToBeBroadcasted(false); + + fResetCmd = CreateCommandWithoutParameter( + "reset", "Reset analysis data."); + fResetCmd->SetToBeBroadcasted(false); + + fCloseFileCmd = CreateCommand( + "closeFile", "Close analysis file and (optionally) reset data.", "IsReset", true); + fCloseFileCmd->SetDefaultValue(true); + fCloseFileCmd->SetToBeBroadcasted(false); + + fListCmd = CreateCommand( + "list", "List all/activate analysis objects.", "OnlyIfActive", true); + fListCmd->SetDefaultValue(true); + + fSetActivationCmd = CreateCommand( + "setActivation", + "Set activation. \n" + "When this option is enabled, only the histograms marked as activated\n" + "are returned, filled or saved on file.\n" + "No warning is issued when Get or Fill is called on inactive histogram.", + "Activation"); + + fVerboseCmd = CreateCommand( + "verbose", "Set verbose level", "VerboseLevel"); fVerboseCmd->SetRange("VerboseLevel>=0 && VerboseLevel<=4"); - fCompressionCmd = std::make_unique("/analysis/compression",this); - fCompressionCmd->SetGuidance("Set compression level"); - fCompressionCmd->SetParameterName("CompressionLevel",false); + fCompressionCmd = CreateCommand( + "compression", "Set compression level", "CompressionLevel"); fCompressionCmd->SetRange("CompressionLevel>=0 && CompressionLevel<=4"); - fFileMessenger = std::make_unique(manager); - fH1Messenger = std::make_unique(manager); - fH2Messenger = std::make_unique(manager); - fH3Messenger = std::make_unique(manager); - fP1Messenger = std::make_unique(manager); - fP2Messenger = std::make_unique(manager); + fSetFileNameCmd = CreateCommand( + "setFileName", "Set name for the histograms & ntuple file", "Filename"); + + fSetHistoDirNameCmd = CreateCommand( + "setHistoDirName", "Set name for the histograms directory", "HistoDirName"); + + fSetNtupleDirNameCmd = CreateCommand( + "setNtupleDirName", "Set name for the ntuple directory", "NtupleDirName"); + fNtupleMessenger = std::make_unique(manager); } //_____________________________________________________________________________ G4AnalysisMessenger::~G4AnalysisMessenger() = default; +// +// private functions +// + + +//_____________________________________________________________________________ +std::unique_ptr +G4AnalysisMessenger::CreateCommandWithoutParameter( + G4String name, G4String guidance) +{ + G4String fullName = "/analysis/" + name; + + auto command = std::make_unique(fullName, this); + command->SetGuidance(guidance.c_str()); + command->AvailableForStates(G4State_PreInit, G4State_Idle); + + return command; +} + // // public functions // -//_____________________________________________________________________________ -void G4AnalysisMessenger::SetH1HnManager(G4HnManager& h1HnManager) -{ - fH1HnMessenger = std::make_unique(h1HnManager); -} - -//_____________________________________________________________________________ -void G4AnalysisMessenger::SetH2HnManager(G4HnManager& h2HnManager) -{ - fH2HnMessenger = std::make_unique(h2HnManager); -} - -//_____________________________________________________________________________ -void G4AnalysisMessenger::SetH3HnManager(G4HnManager& h3HnManager) -{ - fH3HnMessenger = std::make_unique(h3HnManager); -} - -//_____________________________________________________________________________ -void G4AnalysisMessenger::SetP1HnManager(G4HnManager& p1HnManager) -{ - fP1HnMessenger = std::make_unique(p1HnManager); -} - -//_____________________________________________________________________________ -void G4AnalysisMessenger::SetP2HnManager(G4HnManager& p2HnManager) -{ - fP2HnMessenger = std::make_unique(p2HnManager); -} - //_____________________________________________________________________________ void G4AnalysisMessenger::SetNewValue(G4UIcommand* command, G4String newValues) { + if ( command == fOpenFileCmd.get() ) { + // G4cout << "Calling OpenFile from command for " << fManager << G4endl; + fManager->OpenFile(newValues); + return; + } + + if ( command == fWriteCmd.get() ) { + fManager->WriteFromUI(); + return; + } + + if ( command == fResetCmd.get() ) { + fManager->ResetFromUI(); + return; + } + + if ( command == fCloseFileCmd.get() ) { + fManager->CloseFileFromUI(fCloseFileCmd->GetNewBoolValue(newValues)); + return; + } + + if ( command == fListCmd.get() ) { + fManager->List(fListCmd->GetNewBoolValue(newValues)); + return; + } + if ( command == fSetActivationCmd.get() ) { fManager->SetActivation(fSetActivationCmd->GetNewBoolValue(newValues)); + return; } - else if ( command == fVerboseCmd.get() ) { + + if ( command == fVerboseCmd.get() ) { fManager->SetVerboseLevel(fVerboseCmd->GetNewIntValue(newValues)); + return; } - else if ( command == fCompressionCmd.get() ) { + + if ( command == fCompressionCmd.get() ) { fManager->SetCompressionLevel(fCompressionCmd->GetNewIntValue(newValues)); + return; + } + + if ( command == fSetFileNameCmd.get() ) { + fManager->SetFileName(newValues); + return; + } + + if ( command == fSetHistoDirNameCmd.get() ) { + fManager->SetHistoDirectoryName(newValues); + return; + } + + if ( command == fSetNtupleDirNameCmd.get() ) { + fManager->SetNtupleDirectoryName(newValues); + return; } } diff --git a/source/analysis/management/src/G4AnalysisMessengerHelper.cc b/source/analysis/management/src/G4AnalysisMessengerHelper.cc deleted file mode 100644 index f73d79aa98..0000000000 --- a/source/analysis/management/src/G4AnalysisMessengerHelper.cc +++ /dev/null @@ -1,373 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Author: Ivana Hrivnacova, 05/05/2015 (ivana@ipno.in2p3.fr) -// -// This messenger class is a generalization of the HistoMessenger class, -// originally developed for the extended/electromagnetic examples -// by Michel Maire (michel.maire@lapp.in2p3.fr) - -#include "G4AnalysisMessengerHelper.hh" -#include "G4VAnalysisManager.hh" -#include "G4AnalysisUtilities.hh" - -#include "G4UIdirectory.hh" -#include "G4UIcommand.hh" -#include "G4UIparameter.hh" -#include "G4Tokenizer.hh" - -#include -#include - -using namespace G4Analysis; -using std::to_string; - -namespace { - -//_____________________________________________________________________________ -G4String ObjectType(const G4String& hnType) -{ - G4String first = hnType.substr(0,1); - if (first == "h") { - return "Histogram"; - } else if (first == "p") { - return "Profile"; - } else { - // other possibilitied not handled - return ""; - } -} - -//_____________________________________________________________________________ -void Replace(std::string& str, const std::string& from, const std::string& to) { - // Replace all occurrences of from string - if (from.empty()) return; - size_t start_pos = 0; - while ((start_pos = str.find(from, start_pos)) != std::string::npos) { - str.replace(start_pos, from.length(), to); - start_pos += to.length(); // In case 'to' contains 'from', like replacing 'x' with 'yx' - } -} - -} - -//_____________________________________________________________________________ -G4AnalysisMessengerHelper::G4AnalysisMessengerHelper(const G4String& hnType) - : fHnType(hnType) -{} - -// -// private functions -// - -//_____________________________________________________________________________ -G4String G4AnalysisMessengerHelper::Update(const G4String& str, const G4String& axis) const -{ - G4String newStr(str); - - // Hn, Pn - G4String upperHnType = G4StrUtil::to_upper_copy(str); - Replace(newStr, "UHNTYPE_", upperHnType); - - // hn, pn - Replace(newStr, "HNTYPE_", fHnType); - - // n = 1,2,3 - G4String second = fHnType.substr(1,1); - Replace(newStr, "NDIM_", second); - - // histogram, profile - G4String lowerObjectType = G4StrUtil::to_lower_copy(ObjectType(fHnType)); - Replace(newStr, "LOBJECT", lowerObjectType); - - // Histogram, Profile - Replace(newStr, "OBJECT", ObjectType(fHnType)); - - // X, Y, Z - G4String upperAxis = G4StrUtil::to_upper_copy(axis); - Replace(newStr, "UAXIS", upperAxis); - - // x, y, z - Replace(newStr, "AXIS", axis); - - // return result - return newStr; -} - -// -// public functions -// - -//_____________________________________________________________________________ -std::unique_ptr -G4AnalysisMessengerHelper::CreateHnDirectory() const -{ - std::unique_ptr directory(new G4UIdirectory(Update("/analysis/HNTYPE_/"))); - directory->SetGuidance(Update("NDIM_D LOBJECT control")); - return directory; -} - -//_____________________________________________________________________________ -std::unique_ptr -G4AnalysisMessengerHelper::CreateGetCommand(G4UImessenger* messenger) const -{ - auto parId = new G4UIparameter("id", 'i', false); - parId->SetGuidance(Update("OBJECT id")); - parId->SetParameterRange("id>=0"); - - std::unique_ptr command( - new G4UIcommand(Update("/analysis/HNTYPE_/get"), messenger)); - command->SetGuidance(Update("Get the address of the NDIM_D LOBJECT of given id.\n" - "This command is only for Geant4 internal use.")); - command->SetParameter(parId); - command->AvailableForStates(G4State_Idle, G4State_GeomClosed, G4State_EventProc); - - return command; -} - -//_____________________________________________________________________________ -std::unique_ptr -G4AnalysisMessengerHelper::CreateGetVectorCommand(G4UImessenger* messenger) const -{ - std::unique_ptr command( - new G4UIcommand(Update("/analysis/HNTYPE_/getVector"), messenger)); - command->SetGuidance(Update("Get the address of the NDIM_D LOBJECT vector.\n" - "This command is only for Geant4 internal use.")); - command->AvailableForStates(G4State_Idle, G4State_GeomClosed, G4State_EventProc); - - return command; -} - -//_____________________________________________________________________________ -std::unique_ptr -G4AnalysisMessengerHelper::CreateSetTitleCommand(G4UImessenger* messenger) const -{ - auto parId = new G4UIparameter("id", 'i', false); - parId->SetGuidance(Update("OBJECT id")); - parId->SetParameterRange("id>=0"); - - auto parTitle = new G4UIparameter("title", 's', true); - parTitle->SetGuidance(Update("OBJECT title")); - parTitle->SetDefaultValue("none"); - - std::unique_ptr command( - new G4UIcommand(Update("/analysis/HNTYPE_/setTitle"), messenger)); - command->SetGuidance(Update("Set title for the NDIM_D LOBJECT of given id")); - command->SetParameter(parId); - command->SetParameter(parTitle); - command->AvailableForStates(G4State_PreInit, G4State_Idle); - - return command; -} - - -//_____________________________________________________________________________ -std::unique_ptr -G4AnalysisMessengerHelper::CreateSetBinsCommand(const G4String& axis, - G4UImessenger* messenger) const -{ - auto parId = new G4UIparameter("id", 'i', false); - parId->SetGuidance(Update( "OBJECT id")); - parId->SetParameterRange("id>=0"); - - auto parNbins = new G4UIparameter("nbins", 'i', false); - parNbins->SetGuidance("Number of bins"); - - auto parValMin = new G4UIparameter("valMin", 'd', false); - parValMin->SetGuidance("Minimum value, expressed in unit"); - - auto parValMax = new G4UIparameter("valMax", 'd', false); - parValMax->SetGuidance("Maximum value, expressed in unit"); - - auto parValUnit = new G4UIparameter("valUnit", 's', true); - parValUnit->SetGuidance("The unit applied to filled values and valMin, valMax"); - parValUnit->SetDefaultValue("none"); - - auto parValFcn = new G4UIparameter("valFcn", 's', true); - parValFcn->SetParameterCandidates("log log10 exp none"); - G4String fcnGuidance = "The function applied to filled values (log, log10, exp, none).\n"; - fcnGuidance += "Note that the unit parameter cannot be omitted in this case,\n"; - fcnGuidance += "but none value should be used instead."; - parValFcn->SetGuidance(fcnGuidance); - parValFcn->SetDefaultValue("none"); - - auto parValBinScheme = new G4UIparameter("valBinScheme", 's', true); - parValBinScheme->SetParameterCandidates("linear log"); - G4String binSchemeGuidance = "The binning scheme (linear, log).\n"; - binSchemeGuidance - += "Note that the unit and fcn parameters cannot be omitted in this case,\n"; - binSchemeGuidance += "but none value should be used instead."; - parValBinScheme->SetGuidance(binSchemeGuidance); - parValBinScheme->SetDefaultValue("linear"); - - auto commandName = Update("/analysis/HNTYPE_/setUAXIS", axis); - std::unique_ptr command( - new G4UIcommand(Update("/analysis/HNTYPE_/setUAXIS", axis), messenger)); - command->SetGuidance(Update("Set parameters for the NDIM_D LOBJECT of given id:")); - command->SetGuidance( - Update(" nAXISbins; AXISvalMin; AXISvalMax; AXISunit; AXISfunction; AXISbinScheme", axis)); - command->SetParameter(parId); - command->SetParameter(parNbins); - command->SetParameter(parValMin); - command->SetParameter(parValMax); - command->SetParameter(parValUnit); - command->SetParameter(parValFcn); - command->SetParameter(parValBinScheme); - command->AvailableForStates(G4State_PreInit, G4State_Idle); - - return command; -} - -//_____________________________________________________________________________ - std::unique_ptr - G4AnalysisMessengerHelper::CreateSetValuesCommand(const G4String& axis, - G4UImessenger* messenger) const -{ - auto parId = new G4UIparameter("id", 'i', false); - parId->SetGuidance(Update("OBJECT id")); - parId->SetParameterRange("id>=0"); - - auto parValMin = new G4UIparameter("valMin", 'd', false); - parValMin->SetGuidance(Update("Minimum AXIS-value expressed in unit", axis)); - - auto parValMax = new G4UIparameter("valMax", 'd', false); - parValMax->SetGuidance(Update("Maximum AXIS-value expressed in unit", axis)); - - auto parValUnit = new G4UIparameter("valUnit", 's', true); - parValUnit->SetGuidance("The unit applied to filled values and valMin, valMax"); - parValUnit->SetDefaultValue("none"); - - auto parValFcn = new G4UIparameter("valFcn", 's', true); - parValFcn->SetParameterCandidates("log log10 exp none"); - G4String fcnGuidance = "The function applied to filled values (log, log10, exp, none).\n"; - fcnGuidance += "Note that the unit parameter cannot be omitted in this case,\n"; - fcnGuidance += "but none value should be used instead."; - parValFcn->SetGuidance(fcnGuidance); - parValFcn->SetDefaultValue("none"); - - std::unique_ptr command( - new G4UIcommand(Update("/analysis/HNTYPE_/setUAXIS", axis), messenger)); - command->SetGuidance(Update("Set parameters for the NDIM_D LOBJECT of #id:")); - command->SetGuidance( - Update(" AXISvalMin; AXISvalMax; AXISunit; AXISfunction", axis)); - command->SetParameter(parId); - command->SetParameter(parValMin); - command->SetParameter(parValMax); - command->SetParameter(parValUnit); - command->SetParameter(parValFcn); - command->AvailableForStates(G4State_PreInit, G4State_Idle); - - return command; -} - -//_____________________________________________________________________________ -std::unique_ptr -G4AnalysisMessengerHelper::CreateSetAxisCommand(const G4String& axis, - G4UImessenger* messenger) const -{ - auto parId = new G4UIparameter("id", 'i', false); - parId->SetGuidance(Update("OBJECT id")); - parId->SetParameterRange("id>=0"); - - auto parAxis = new G4UIparameter("axis", 's', false); - parAxis->SetGuidance(Update("Histogram AXIS-axis title", axis)); - - std::unique_ptr command( - new G4UIcommand(Update("/analysis/HNTYPE_/setUAXISaxis", axis), messenger)); - command->SetGuidance(Update("Set AXIS-axis title for the NDIM_D LOBJECT of given id", axis)); - command->SetParameter(parId); - command->SetParameter(parAxis); - command->AvailableForStates(G4State_PreInit, G4State_Idle); - - return command; -} - -//_____________________________________________________________________________ -std::unique_ptr -G4AnalysisMessengerHelper::CreateSetAxisLogCommand(const G4String& axis, - G4UImessenger* messenger) const -{ - auto parId = new G4UIparameter("id", 'i', false); - parId->SetGuidance(Update("OBJECT id")); - parId->SetParameterRange("id>=0"); - - auto parAxisLog = new G4UIparameter("axis", 'b', false); - parAxisLog->SetGuidance(Update("Histogram AXIS-axis log scale", axis)); - - std::unique_ptr command( - new G4UIcommand(Update("/analysis/HNTYPE_/setUAXISaxisLog", axis), messenger)); - command->SetGuidance( - Update("Activate AXIS-axis log scale for plotting of the NDIM_D LOBJECT of given id", axis)); - command->SetParameter(parId); - command->SetParameter(parAxisLog); - command->AvailableForStates(G4State_PreInit, G4State_Idle); - - return command; -} - -//_____________________________________________________________________________ -void G4AnalysisMessengerHelper::GetBinData(BinData& data, - std::vector& parameters, - G4int& counter) const -{ - data.fNbins = G4UIcommand::ConvertToInt(parameters[counter++]); - data.fVmin = G4UIcommand::ConvertToDouble(parameters[counter++]); - data.fVmax = G4UIcommand::ConvertToDouble(parameters[counter++]); ; - data.fSunit = parameters[counter++]; - data.fSfcn = parameters[counter++]; - data.fSbinScheme = parameters[counter++]; -} - -//_____________________________________________________________________________ -void G4AnalysisMessengerHelper::GetValueData(ValueData& data, - std::vector& parameters, - G4int& counter) const -{ - data.fVmin = G4UIcommand::ConvertToDouble(parameters[counter++]); - data.fVmax = G4UIcommand::ConvertToDouble(parameters[counter++]); ; - data.fSunit = parameters[counter++]; - data.fSfcn = parameters[counter++]; -} - -//_____________________________________________________________________________ -void G4AnalysisMessengerHelper::WarnAboutParameters(G4UIcommand* command, - G4int nofParameters) const -{ - Warn( - "Got wrong number of \"" + command->GetCommandName() + - "\" parameters: " + to_string(nofParameters) + - " instead of " + to_string(command->GetParameterEntries()) + " expected", - fkClass, "WarnAboutParameters"); -} - -//_____________________________________________________________________________ -void G4AnalysisMessengerHelper::WarnAboutSetCommands() const -{ - Warn( - "Command setX, setY, setZ must be called successively in this order.\n" - "Command was ignored.", - fkClass, "WarnAboutSetCommands"); -} diff --git a/source/analysis/management/src/G4AnalysisUtilities.cc b/source/analysis/management/src/G4AnalysisUtilities.cc index 6d1ec2fe4a..c1c383f5e1 100644 --- a/source/analysis/management/src/G4AnalysisUtilities.cc +++ b/source/analysis/management/src/G4AnalysisUtilities.cc @@ -42,8 +42,8 @@ namespace { G4bool GetToken(const G4String& line, G4String& token, std::string::size_type begIdx, std::string::size_type& endIdx) { - while ( line[begIdx] == ' ') ++begIdx; // Loop checking, 23.06.2015, I. Hrivnacova - if ( line[begIdx] == '"' ) { + while ( line[(G4int)begIdx] == ' ') ++begIdx; // Loop checking, 23.06.2015, I. Hrivnacova + if ( line[(G4int)begIdx] == '"' ) { endIdx = line.find('"', begIdx+1); if ( endIdx == std::string::npos ) endIdx = line.length(); token = line.substr(begIdx+1, (endIdx-1)-begIdx); @@ -71,72 +71,6 @@ void Warn(const G4String& message, G4Exception(source.data(), "Analysis_W001", JustWarning, message); } -//_____________________________________________________________________________ -G4bool CheckNbins(G4int nbins) -{ - if ( nbins <= 0 ) { - Warn("Illegal value of number of bins: nbins <= 0", - kNamespaceName, "CheckNbins"); - return false; - } - else - return true; -} - - -//_____________________________________________________________________________ -G4bool CheckMinMax(G4double xmin, G4double xmax, - const G4String& fcnName, const G4String& binSchemeName) -{ - auto result = true; - - if ( xmax <= xmin ) { - Warn("Illegal value of number of (xmin >= xmax)", - kNamespaceName, "CheckMinMax"); - result = false; - } - - if ( ( fcnName != "none" ) && ( binSchemeName != "linear" ) ) { - Warn("Combining Function and Binning scheme is not supported.", - kNamespaceName, "CheckMinMax"); - result = false; - } - - if ( ( GetBinScheme(binSchemeName) == G4BinScheme::kLog || - fcnName == "log" || fcnName == "log10" ) && ( xmin == 0 ) ) { - Warn("Illegal value of (xmin = 0) with logarithmic function or binning", - kNamespaceName, "CheckMinMax"); - result = false; - } - - return result; -} - -//_____________________________________________________________________________ -G4bool CheckEdges(const std::vector& edges) -{ - if ( edges.size() <= 1 ) { - Warn("Illegal edges vector (size <= 1)", - kNamespaceName, "CheckEdges"); - return false; - } - else - return true; - -} - -//_____________________________________________________________________________ -G4bool CheckName(const G4String& name, const G4String& objectType) -{ - if ( ! name.size() ) { - Warn("Empty " + objectType + " name is not allowed.\n" + - objectType + " was not created.", kNamespaceName, "CheckEdges"); - return false; - } - else - return true; -} - //_____________________________________________________________________________ G4double GetUnitValue(const G4String& unit) { @@ -148,16 +82,6 @@ G4double GetUnitValue(const G4String& unit) return value; } -//_____________________________________________________________________________ -void UpdateTitle(G4String& title, - const G4String& unitName, - const G4String& fcnName) -{ - if ( fcnName != "none" ) { title += " "; title += fcnName; title += "("; } - if ( unitName != "none" ) { title += " ["; title += unitName; title += "]";} - if ( fcnName != "none" ) { title += ")"; } -} - //_____________________________________________________________________________ void Tokenize(const G4String& line, std::vector& tokens) { @@ -178,23 +102,23 @@ void Tokenize(const G4String& line, std::vector& tokens) } //_____________________________________________________________________________ -G4AnalysisOutput GetOutput(const G4String& outputName, G4bool warn) { - if ( outputName == "csv" ) { return G4AnalysisOutput::kCsv; } - else if ( outputName == "hdf5" ) { return G4AnalysisOutput::kHdf5; } - else if ( outputName == "root" ) { return G4AnalysisOutput::kRoot; } - else if ( outputName == "xml" ) { return G4AnalysisOutput::kXml; } - else if ( outputName == "none" ) { return G4AnalysisOutput::kNone; } - else { - if (warn) { - Warn("\"" + outputName + "\" output type is not supported.", - kNamespaceName, "GetOutput"); - } - return G4AnalysisOutput::kNone; +G4AnalysisOutput GetOutput(const G4String& outputName, G4bool warn) +{ + if (outputName == "csv") return G4AnalysisOutput::kCsv; + if (outputName == "hdf5") return G4AnalysisOutput::kHdf5; + if (outputName == "root") return G4AnalysisOutput::kRoot; + if (outputName == "xml") return G4AnalysisOutput::kXml; + if (outputName == "none") return G4AnalysisOutput::kNone; + + if (warn) { + Warn("\"" + outputName + "\" output type is not supported.", kNamespaceName, "GetOutput"); } + return G4AnalysisOutput::kNone; } //_____________________________________________________________________________ -G4String GetOutputName(G4AnalysisOutput output) { +G4String GetOutputName(G4AnalysisOutput output) +{ switch ( output ) { case G4AnalysisOutput::kCsv: return "csv"; @@ -258,6 +182,7 @@ G4String GetHnFileName( { // Compose and return the histogram or profile specific file name: // - add _hn_hnName suffix to the file base name +// - add _vN suffix if cycle > 0 // - add file extension if not present auto name = GetBaseName(fileName); @@ -270,7 +195,34 @@ G4String GetHnFileName( // Add file extension auto extension = GetExtension(fileName, fileType); - if ( extension.size() ) { + if (extension.size() != 0u) { + name.append("."); + name.append(extension); + } + + return name; +} + +//_____________________________________________________________________________ +G4String GetHnFileName( + const G4String& fileName, + const G4String& fileType, + G4int cycle) +{ +// Update Hn file name: +// - add _vN suffix to the base namer if cycle > 0 + + auto name = GetBaseName(fileName); + + // Add cycle number + if (cycle > 0) { + name.append("_v"); + name.append(std::to_string(cycle)); + } + + // Add file extension + auto extension = GetExtension(fileName, fileType); + if (extension.size() != 0u) { name.append("."); name.append(extension); } @@ -282,10 +234,12 @@ G4String GetHnFileName( G4String GetNtupleFileName( const G4String& fileName, const G4String& fileType, - const G4String& ntupleName) + const G4String& ntupleName, + G4int cycle) { // Compose and return the ntuple specific file name: // - add _nt_ntupleName suffix to the file base name +// - add _vN suffix if cycle > 0 // - add _tN suffix if called on thread worker // - add file extension if not present @@ -295,6 +249,12 @@ G4String GetNtupleFileName( name.append("_nt_"); name.append(ntupleName); + // Add cycle number + if (cycle > 0) { + name.append("_v"); + name.append(std::to_string(cycle)); + } + // Add thread Id to a file name if MT processing if ( ! G4Threading::IsMasterThread() ) { std::ostringstream os; @@ -305,7 +265,7 @@ G4String GetNtupleFileName( // Add file extension auto extension = GetExtension(fileName, fileType); - if ( extension.size() ) { + if (extension.size() != 0u) { name.append("."); name.append(extension); } @@ -317,10 +277,12 @@ G4String GetNtupleFileName( G4String GetNtupleFileName( const G4String& fileName, const G4String& fileType, - G4int ntupleFileNumber) + G4int ntupleFileNumber, + G4int cycle) { // Compose and return the ntuple specific file name: // - add _mFN suffix to the file base name where FN = ntupleFileNumber +// - add _vN suffix if cycle > 0 // - add file extension if not present auto name = GetBaseName(fileName); @@ -331,9 +293,15 @@ G4String GetNtupleFileName( name.append("_m"); name.append(os.str()); + // Add cycle number + if (cycle > 0) { + name.append("_v"); + name.append(std::to_string(cycle)); + } + // Add file extension auto extension = GetExtension(fileName, fileType); - if ( extension.size() ) { + if (extension.size() != 0u) { name.append("."); name.append(extension); } @@ -344,7 +312,8 @@ G4String GetNtupleFileName( //_____________________________________________________________________________ G4String GetTnFileName( const G4String& fileName, - const G4String& fileType) + const G4String& fileType, + G4int cycle) { // Update file base name with the thread suffix: // - add _tN suffix if called on thread worker @@ -352,6 +321,12 @@ G4String GetTnFileName( auto name = GetBaseName(fileName); + // Add cycle number + if (cycle > 0) { + name.append("_v"); + name.append(std::to_string(cycle)); + } + // Add thread Id to a file name if MT processing if ( ! G4Threading::IsMasterThread() ) { std::ostringstream os; @@ -362,7 +337,7 @@ G4String GetTnFileName( // Add file extension auto extension = GetExtension(fileName, fileType); - if ( extension.size() ) { + if (extension.size() != 0u) { name.append("."); name.append(extension); } diff --git a/source/analysis/management/src/G4AnalysisVerbose.cc b/source/analysis/management/src/G4AnalysisVerbose.cc index 6ae53c6473..a32b535685 100644 --- a/source/analysis/management/src/G4AnalysisVerbose.cc +++ b/source/analysis/management/src/G4AnalysisVerbose.cc @@ -31,8 +31,7 @@ #include "G4ios.hh" //_____________________________________________________________________________ -G4AnalysisVerbose::G4AnalysisVerbose() -{} +G4AnalysisVerbose::G4AnalysisVerbose() = default; // // public method @@ -57,16 +56,16 @@ void G4AnalysisVerbose::Message(G4int level, << action << " " << object; - if ( objectName.size() ) { - G4cout - << " : " - << objectName; + if (objectName.size() != 0u) { + G4cout << " : " << objectName; } - if ( success ) + if (success) { G4cout << " " << fDoneText[level-1]; - else + } + else { G4cout << " " << fFailureText; + } G4cout << G4endl; } diff --git a/source/analysis/management/src/G4BaseFileManager.cc b/source/analysis/management/src/G4BaseFileManager.cc index fda5c8ed53..735542698e 100644 --- a/source/analysis/management/src/G4BaseFileManager.cc +++ b/source/analysis/management/src/G4BaseFileManager.cc @@ -79,7 +79,7 @@ G4String G4BaseFileManager::GetFullFileName(const G4String& baseFileName, // Add (back if it was present or is defined) file extension auto extension = G4Analysis::GetExtension(fileName, GetFileType()); - if ( extension.size() ) { + if (extension.size() != 0u) { name.append("."); name.append(extension); } @@ -95,15 +95,33 @@ G4String G4BaseFileManager::GetHnFileName(const G4String& hnType, } //_____________________________________________________________________________ -G4String G4BaseFileManager::GetNtupleFileName(const G4String& ntupleName) const +G4String G4BaseFileManager::GetHnFileName(const G4String& fileName, + G4int cycle) const { - return G4Analysis::GetNtupleFileName(fFileName, GetFileType(), ntupleName); + // Do nothing if cycle is supported by the output type + if (HasCycles()) return fileName; + + return G4Analysis::GetHnFileName(fileName, GetFileType(), cycle); } //_____________________________________________________________________________ -G4String G4BaseFileManager::GetNtupleFileName(G4int ntupleFileNumber) const +G4String G4BaseFileManager::GetNtupleFileName(const G4String& ntupleName, + G4int cycle) const { - return G4Analysis::GetNtupleFileName(fFileName, GetFileType(), ntupleFileNumber); + // Do not pass cycle if supported by the output type + auto cycleToPass = (HasCycles()) ? 0 : cycle; + + return G4Analysis::GetNtupleFileName(fFileName, GetFileType(), ntupleName, cycleToPass); +} + +//_____________________________________________________________________________ +G4String G4BaseFileManager::GetNtupleFileName(G4int ntupleFileNumber, + G4int cycle) const +{ + // Do not pass cycle if supported by the output type + auto cycleToPass = (HasCycles()) ? 0 : cycle; + + return G4Analysis::GetNtupleFileName(fFileName, GetFileType(), ntupleFileNumber, cycleToPass); } //_____________________________________________________________________________ diff --git a/source/analysis/management/src/G4BinScheme.cc b/source/analysis/management/src/G4BinScheme.cc index 5f06840f19..c56665197a 100644 --- a/source/analysis/management/src/G4BinScheme.cc +++ b/source/analysis/management/src/G4BinScheme.cc @@ -35,18 +35,15 @@ namespace G4Analysis //_____________________________________________________________________________ G4BinScheme GetBinScheme(const G4String& binSchemeName) { - G4BinScheme binScheme = G4BinScheme::kLinear; - if ( binSchemeName != "linear" ) { - if ( binSchemeName == "log" ) - binScheme = G4BinScheme::kLog; - else { - // There is no name associated with G4BinScheme::kUser - Warn("\"" + binSchemeName + "\" binning scheme is not supported.\n" - "Linear binning will be applied.", - kNamespaceName, "GetBinScheme"); - } - } - return binScheme; + if (binSchemeName == "linear") return G4BinScheme::kLinear; + if (binSchemeName == "log") return G4BinScheme::kLog; + if (binSchemeName == "user") return G4BinScheme::kUser; + + // No other name is supported + Warn("\"" + binSchemeName + "\" binning scheme is not supported.\n" + "Linear binning will be applied.", kNamespaceName, "GetBinScheme"); + + return G4BinScheme::kLinear; } //_____________________________________________________________________________ @@ -56,6 +53,27 @@ void ComputeEdges(G4int nbins, G4double xmin, G4double xmax, { // Compute edges from parameters + if ( binScheme == G4BinScheme::kUser ) { + // This call should never happen for user bin scheme + Warn("There is no need to compute edges for G4BinScheme::kUser\n" + "Call is ignored.", kNamespaceName, "GetBinScheme"); + return; + } + + if (unit == 0.) { + // Should never happen + Warn("Illegal unit value (0), 1. will be used instead", + kNamespaceName, "ComputeEdges"); + unit = 1.; + } + + if (nbins == 0) { + // Should never happen + Warn("Illegal number of nbins value (0), call will be ignored", + kNamespaceName, "ComputeEdges"); + return; + } + // Apply units auto xumin = xmin/unit; auto xumax = xmax/unit; @@ -67,24 +85,19 @@ void ComputeEdges(G4int nbins, G4double xmin, G4double xmax, edges.push_back(binValue); binValue += dx; } + return; } - else if ( binScheme == G4BinScheme::kLog ) { + + if ( binScheme == G4BinScheme::kLog ) { // do not apply fcn - auto dlog - = (std::log10(xumax) - std::log10(xumin))/ nbins; + auto dlog = (std::log10(xumax) - std::log10(xumin))/ nbins; auto dx = std::pow(10, dlog); auto binValue = xumin; while ( G4int(edges.size()) <= nbins ) { // Loop checking, 23.06.2015, I. Hrivnacova edges.push_back(binValue); binValue *= dx; } - } - else if ( binScheme == G4BinScheme::kUser ) { - // This should never happen, but let's make sure about it - // by issuing a warning - Warn("User binning scheme setting was ignored.\n" - "Linear binning will be applied with given (nbins, xmin, xmax) values", - kNamespaceName, "GetBinScheme"); + return; } } @@ -93,7 +106,14 @@ void ComputeEdges(const std::vector& edges, G4double unit, G4Fcn fcn, std::vector& newBins) { -// Apply function to defined edges +// Apply function & unit to defined edges + + if (unit == 0.) { + // Should never happen + Warn("Illegal unit value (0), 1. will be used instead", + kNamespaceName, "ComputeEdges"); + unit = 1.; + } for (auto element : edges) { newBins.push_back(fcn(element/unit)); diff --git a/source/analysis/management/src/G4Fcn.cc b/source/analysis/management/src/G4Fcn.cc index 1ad2cc949e..a739ca8d76 100644 --- a/source/analysis/management/src/G4Fcn.cc +++ b/source/analysis/management/src/G4Fcn.cc @@ -35,8 +35,9 @@ namespace G4Analysis //_____________________________________________________________________________ G4Fcn GetFunction(const G4String& fcnName) { + // clang-format off G4Fcn fcn = G4FcnIdentity; - if ( fcnName != "none" ) { + if ( fcnName != "none" ) { if ( fcnName == "log" ) fcn = std::log; else if ( fcnName == "log10") fcn = std::log10; else if ( fcnName == "exp" ) fcn = std::exp; @@ -48,6 +49,7 @@ G4Fcn GetFunction(const G4String& fcnName) } } return fcn; + // clang-format on } } diff --git a/source/analysis/management/src/G4FileMessenger.cc b/source/analysis/management/src/G4FileMessenger.cc deleted file mode 100644 index 898b1fb379..0000000000 --- a/source/analysis/management/src/G4FileMessenger.cc +++ /dev/null @@ -1,78 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr) - -#include "G4FileMessenger.hh" -#include "G4VAnalysisManager.hh" -#include "G4AnalysisUtilities.hh" - -#include "G4UIdirectory.hh" -#include "G4UIcmdWithAString.hh" - -using namespace G4Analysis; - -//_____________________________________________________________________________ -G4FileMessenger::G4FileMessenger(G4VAnalysisManager* manager) - : G4UImessenger(), - fManager(manager) -{ - fSetFileNameCmd = std::make_unique("/analysis/setFileName",this); - fSetFileNameCmd->SetGuidance("Set name for the histograms & ntuple file"); - fSetFileNameCmd->SetParameterName("Filename", false); - fSetFileNameCmd->AvailableForStates(G4State_PreInit, G4State_Idle); - - fSetHistoDirNameCmd = std::make_unique("/analysis/setHistoDirName",this); - fSetHistoDirNameCmd->SetGuidance("Set name for the histograms directory"); - fSetHistoDirNameCmd->SetParameterName("HistoDirName", false); - fSetHistoDirNameCmd->AvailableForStates(G4State_PreInit, G4State_Idle); - - fSetNtupleDirNameCmd = std::make_unique("/analysis/setNtupleDirName",this); - fSetNtupleDirNameCmd->SetGuidance("Set name for the ntuple directory"); - fSetNtupleDirNameCmd->SetParameterName("NtupleDirName", false); - fSetNtupleDirNameCmd->AvailableForStates(G4State_PreInit, G4State_Idle); -} - -//_____________________________________________________________________________ -G4FileMessenger::~G4FileMessenger() = default; - -// -// public functions - -//_____________________________________________________________________________ -void G4FileMessenger::SetNewValue(G4UIcommand* command, G4String newValues) -{ - if ( command == fSetFileNameCmd.get() ) { - G4cout << "Set file name: " << newValues << G4endl; - fManager->SetFileName(newValues); - } - else if ( command == fSetHistoDirNameCmd.get() ) { - fManager->SetHistoDirectoryName(newValues); - } - else if ( command == fSetNtupleDirNameCmd.get() ) { - fManager->SetNtupleDirectoryName(newValues); - } -} diff --git a/source/analysis/management/src/G4H1Messenger.cc b/source/analysis/management/src/G4H1Messenger.cc deleted file mode 100644 index b901d49c06..0000000000 --- a/source/analysis/management/src/G4H1Messenger.cc +++ /dev/null @@ -1,263 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Author: Ivana Hrivnacova, 24/06/2013 (ivana@ipno.in2p3.fr) -// -// This messenger class is a generalization of the HistoMessenger class, -// originally developed for the extended/electromagnetic examples -// by Michel Maire (michel.maire@lapp.in2p3.fr) - -#include "G4H1Messenger.hh" -#include "G4VAnalysisManager.hh" -#include "G4AnalysisUtilities.hh" -#include "G4AnalysisMessengerHelper.hh" - -#include "G4UIdirectory.hh" -#include "G4UIcommand.hh" -#include "G4UIparameter.hh" -#include "G4Tokenizer.hh" - -#include - -using namespace G4Analysis; - -//_____________________________________________________________________________ -G4H1Messenger::G4H1Messenger(G4VAnalysisManager* manager) - : G4UImessenger(), - fManager(manager) -{ - fHelper = std::make_unique("h1"); - - fDirectory = fHelper->CreateHnDirectory(); - - CreateH1Cmd(); - - SetH1Cmd(); - fSetH1XCmd = fHelper->CreateSetBinsCommand("x", this); - - - fSetH1TitleCmd = fHelper->CreateSetTitleCommand(this); - fSetH1XAxisCmd = fHelper->CreateSetAxisCommand("x", this); - fSetH1YAxisCmd = fHelper->CreateSetAxisCommand("y", this); - fSetH1XAxisLogCmd = fHelper->CreateSetAxisLogCommand("x", this); - fSetH1YAxisLogCmd = fHelper->CreateSetAxisLogCommand("y", this); -} - -//_____________________________________________________________________________ -G4H1Messenger::~G4H1Messenger() = default; - -// -// private functions -// - -//_____________________________________________________________________________ -void G4H1Messenger::CreateH1Cmd() -{ - auto h1Name = new G4UIparameter("name", 's', false); - h1Name->SetGuidance("Histogram name (label)"); - - auto h1Title = new G4UIparameter("title", 's', false); - h1Title->SetGuidance("Histogram title"); - - auto h1Nbins0 = new G4UIparameter("nbins0", 'i', true); - h1Nbins0->SetGuidance("Number of bins (default = 100)"); - h1Nbins0->SetGuidance("Can be reset with /analysis/h1/set command"); - h1Nbins0->SetDefaultValue(100); - - auto h1ValMin0 = new G4UIparameter("valMin0", 'd', true); - h1ValMin0->SetGuidance("Minimum value, expressed in unit (default = 0.)"); - h1ValMin0->SetGuidance("Can be reset with /analysis/h1/set command"); - h1ValMin0->SetDefaultValue(0.); - - auto h1ValMax0 = new G4UIparameter("valMax0", 'd', true); - h1ValMax0->SetGuidance("Maximum value, expressed in unit (default = 1.)"); - h1ValMax0->SetGuidance("Can be reset with /analysis/h1/set command"); - h1ValMax0->SetDefaultValue(1.); - - auto h1ValUnit0 = new G4UIparameter("valUnit0", 's', true); - h1ValUnit0->SetGuidance("The unit applied to filled values and valMin0, valMax0"); - h1ValUnit0->SetDefaultValue("none"); - - auto h1ValFcn0 = new G4UIparameter("valFcn0", 's', true); - G4String fcnGuidance = "The function applied to filled values (log, log10, exp).\n"; - fcnGuidance += "Note that the unit parameter cannot be omitted in this case,\n"; - fcnGuidance += "but none value should be used instead."; - h1ValFcn0->SetGuidance(fcnGuidance); - h1ValFcn0->SetParameterCandidates("log log10 exp none"); - h1ValFcn0->SetDefaultValue("none"); - - auto h1ValBinScheme0 = new G4UIparameter("valBinScheme0", 's', true); - G4String binSchemeGuidance = "The binning scheme (linear, log).\n"; - h1ValBinScheme0->SetParameterCandidates("linear log"); - binSchemeGuidance - += "Note that the unit and fcn parameters cannot be omitted in this case,\n"; - binSchemeGuidance += "but none value should be used instead."; - h1ValBinScheme0->SetGuidance(binSchemeGuidance); - h1ValBinScheme0->SetDefaultValue("linear"); - - fCreateH1Cmd = std::make_unique("/analysis/h1/create", this); - fCreateH1Cmd->SetGuidance("Create 1D histogram"); - fCreateH1Cmd->SetParameter(h1Name); - fCreateH1Cmd->SetParameter(h1Title); - fCreateH1Cmd->SetParameter(h1Nbins0); - fCreateH1Cmd->SetParameter(h1ValMin0); - fCreateH1Cmd->SetParameter(h1ValMax0); - fCreateH1Cmd->SetParameter(h1ValUnit0); - fCreateH1Cmd->SetParameter(h1ValFcn0); - fCreateH1Cmd->SetParameter(h1ValBinScheme0); - fCreateH1Cmd->AvailableForStates(G4State_PreInit, G4State_Idle); -} - - -//_____________________________________________________________________________ -void G4H1Messenger::SetH1Cmd() -{ - auto h1Id = new G4UIparameter("id", 'i', false); - h1Id->SetGuidance("Histogram id"); - h1Id->SetParameterRange("id>=0"); - - auto h1Nbins = new G4UIparameter("nbins", 'i', false); - h1Nbins->SetGuidance("Number of bins"); - - auto h1ValMin = new G4UIparameter("valMin", 'd', false); - h1ValMin->SetGuidance("Minimum value, expressed in unit"); - - auto h1ValMax = new G4UIparameter("valMax", 'd', false); - h1ValMax->SetGuidance("Maximum value, expressed in unit"); - - auto h1ValUnit = new G4UIparameter("valUnit", 's', true); - h1ValUnit->SetGuidance("The unit applied to filled values and valMin, valMax"); - h1ValUnit->SetDefaultValue("none"); - - auto h1ValFcn = new G4UIparameter("valFcn", 's', true); - h1ValFcn->SetParameterCandidates("log log10 exp none"); - G4String fcnGuidance = "The function applied to filled values (log, log10, exp, none).\n"; - fcnGuidance += "Note that the unit parameter cannot be omitted in this case,\n"; - fcnGuidance += "but none value should be used instead."; - h1ValFcn->SetGuidance(fcnGuidance); - h1ValFcn->SetDefaultValue("none"); - - auto h1ValBinScheme = new G4UIparameter("valBinScheme", 's', true); - h1ValBinScheme->SetParameterCandidates("linear log"); - G4String binSchemeGuidance = "The binning scheme (linear, log).\n"; - binSchemeGuidance - += "Note that the unit and fcn parameters cannot be omitted in this case,\n"; - binSchemeGuidance += "but none value should be used instead."; - h1ValBinScheme->SetGuidance(binSchemeGuidance); - h1ValBinScheme->SetDefaultValue("linear"); - - fSetH1Cmd = std::make_unique("/analysis/h1/set", this); - fSetH1Cmd->SetGuidance("Set parameters for the 1D histogram of given id:"); - fSetH1Cmd->SetGuidance(" nbins; valMin; valMax; unit; function; binScheme"); - fSetH1Cmd->SetParameter(h1Id); - fSetH1Cmd->SetParameter(h1Nbins); - fSetH1Cmd->SetParameter(h1ValMin); - fSetH1Cmd->SetParameter(h1ValMax); - fSetH1Cmd->SetParameter(h1ValUnit); - fSetH1Cmd->SetParameter(h1ValFcn); - fSetH1Cmd->SetParameter(h1ValBinScheme); - fSetH1Cmd->AvailableForStates(G4State_PreInit, G4State_Idle); -} - -// -// public functions -// - -//_____________________________________________________________________________ -void G4H1Messenger::SetNewValue(G4UIcommand* command, G4String newValues) -{ - // tokenize parameters in a vector - std::vector parameters; - G4Analysis::Tokenize(newValues, parameters); - // check consistency - if ( parameters.size() != command->GetParameterEntries() ) { - // Should never happen but let's check anyway for consistency - fHelper->WarnAboutParameters(command, parameters.size()); - return; - } - - if ( command == fCreateH1Cmd.get() ) { - auto counter = 0; - auto name = parameters[counter++]; - auto title = parameters[counter++]; - G4AnalysisMessengerHelper::BinData xdata; - fHelper->GetBinData(xdata, parameters, counter); - auto unit = GetUnitValue(xdata.fSunit); - fManager->CreateH1(name, title, - xdata.fNbins, xdata.fVmin*unit, xdata.fVmax*unit, - xdata.fSunit, xdata.fSfcn, xdata.fSbinScheme); - } - else if ( command == fSetH1Cmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - G4AnalysisMessengerHelper::BinData xdata; - fHelper->GetBinData(xdata, parameters, counter); - auto unit = GetUnitValue(xdata.fSunit); - fManager->SetH1(id, - xdata.fNbins, xdata.fVmin*unit, xdata.fVmax*unit, - xdata.fSunit, xdata.fSfcn, xdata.fSbinScheme); - } - else if ( command == fSetH1XCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - G4AnalysisMessengerHelper::BinData xdata; - fHelper->GetBinData(xdata, parameters, counter); - auto unit = GetUnitValue(xdata.fSunit); - fManager->SetH1(id, - xdata.fNbins, xdata.fVmin*unit, xdata.fVmax*unit, - xdata.fSunit, xdata.fSfcn, xdata.fSbinScheme); - } - else if ( command == fSetH1TitleCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto title = parameters[counter++]; - fManager->SetH1Title(id, title); - } - else if ( command == fSetH1XAxisCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto xaxis = parameters[counter++]; - fManager->SetH1XAxisTitle(id, xaxis); - } - else if ( command == fSetH1YAxisCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto yaxis = parameters[counter++]; - fManager->SetH1YAxisTitle(id, yaxis); - } - else if ( command == fSetH1XAxisLogCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto xaxisLog = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager->SetH1XAxisIsLog(id, xaxisLog); - } - else if ( command == fSetH1YAxisLogCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto yaxisLog = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager->SetH1YAxisIsLog(id, yaxisLog); - } -} diff --git a/source/analysis/management/src/G4H2Messenger.cc b/source/analysis/management/src/G4H2Messenger.cc deleted file mode 100644 index 79283f4ea6..0000000000 --- a/source/analysis/management/src/G4H2Messenger.cc +++ /dev/null @@ -1,356 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr) - -#include "G4H2Messenger.hh" -#include "G4VAnalysisManager.hh" - -#include "G4UIdirectory.hh" -#include "G4UIcommand.hh" -#include "G4UIparameter.hh" - -using namespace G4Analysis; - -//_____________________________________________________________________________ -G4H2Messenger::G4H2Messenger(G4VAnalysisManager* manager) - : G4UImessenger(), - fManager(manager) -{ - fHelper = std::make_unique("h2"); - - fDirectory = fHelper->CreateHnDirectory(); - - CreateH2Cmd(); - - SetH2Cmd(); - fSetH2XCmd = fHelper->CreateSetBinsCommand("x", this); - fSetH2YCmd = fHelper->CreateSetBinsCommand("y", this); - - fSetH2TitleCmd = fHelper->CreateSetTitleCommand(this); - fSetH2XAxisCmd = fHelper->CreateSetAxisCommand("x", this); - fSetH2YAxisCmd = fHelper->CreateSetAxisCommand("y", this); - fSetH2ZAxisCmd = fHelper->CreateSetAxisCommand("z", this); - fSetH2XAxisLogCmd = fHelper->CreateSetAxisLogCommand("x", this); - fSetH2YAxisLogCmd = fHelper->CreateSetAxisLogCommand("y", this); - fSetH2ZAxisLogCmd = fHelper->CreateSetAxisLogCommand("z", this); -} - -//_____________________________________________________________________________ -G4H2Messenger::~G4H2Messenger() = default; - -// -// private functions -// - -//_____________________________________________________________________________ -void G4H2Messenger::CreateH2Cmd() -{ - auto h2Name = new G4UIparameter("name", 's', false); - h2Name->SetGuidance("Histogram name (label)"); - - auto h2Title = new G4UIparameter("title", 's', false); - h2Title->SetGuidance("Histogram title"); - - auto h2xNbins0 = new G4UIparameter("xnbins0", 'i', true); - h2xNbins0->SetGuidance("Number of x-bins (default = 100)"); - h2xNbins0->SetGuidance("Can be reset with /analysis/h2/set command"); - h2xNbins0->SetDefaultValue(100); - - auto h2xValMin0 = new G4UIparameter("xvalMin0", 'd', true); - h2xValMin0->SetGuidance("Minimum x-value, expressed in unit (default = 0.)"); - h2xValMin0->SetGuidance("Can be reset with /analysis/h2/set command"); - h2xValMin0->SetDefaultValue(0.); - - auto h2xValMax0 = new G4UIparameter("xvalMax0", 'd', true); - h2xValMax0->SetGuidance("Maximum x-value, expressed in unit (default = 1.)"); - h2xValMax0->SetGuidance("Can be reset with /analysis/h2/set command"); - h2xValMax0->SetDefaultValue(1.); - - auto h2xValUnit0 = new G4UIparameter("xvalUnit0", 's', true); - h2xValUnit0->SetGuidance("The unit applied to filled x-values and xvalMin0, xvalMax0"); - h2xValUnit0->SetDefaultValue("none"); - - auto h2xValFcn0 = new G4UIparameter("xvalFcn0", 's', true); - G4String fcnxGuidance = "The function applied to filled x-values (log, log10, exp, none)."; - h2xValFcn0->SetGuidance(fcnxGuidance); - h2xValFcn0->SetParameterCandidates("log log10 exp none"); - h2xValFcn0->SetDefaultValue("none"); - - auto h2xValBinScheme0 = new G4UIparameter("xvalBinScheme0", 's', true); - G4String xbinSchemeGuidance = "The binning scheme (linear, log)."; - h2xValBinScheme0->SetParameterCandidates("linear log"); - h2xValBinScheme0->SetGuidance(xbinSchemeGuidance); - h2xValBinScheme0->SetDefaultValue("linear"); - - auto h2yNbins0 = new G4UIparameter("ynbins0", 'i', true); - h2yNbins0->SetGuidance("Number of y-bins (default = 100)"); - h2yNbins0->SetGuidance("Can be reset with /analysis/h2/set command"); - h2yNbins0->SetDefaultValue(100); - - auto h2yValMin0 = new G4UIparameter("yvalMin0", 'd', true); - h2yValMin0->SetGuidance("Minimum y-value, expressed in unit (default = 0.)"); - h2yValMin0->SetGuidance("Can be reset with /analysis/h2/set command"); - h2yValMin0->SetDefaultValue(0.); - - auto h2yValMax0 = new G4UIparameter("yvalMax0", 'd', true); - h2yValMax0->SetGuidance("Maximum y-value, expressed in unit (default = 1.)"); - h2yValMax0->SetGuidance("Can be reset with /analysis/h2/set command"); - h2yValMax0->SetDefaultValue(1.); - - auto h2yValUnit0 = new G4UIparameter("yvalUnit0", 's', true); - h2yValUnit0->SetGuidance("The unit applied to filled y-values and yvalMin0, yvalMax0"); - h2yValUnit0->SetDefaultValue("none"); - - auto h2yValFcn0 = new G4UIparameter("yvalFcn0", 's', true); - G4String fcnyGuidance = "The function applied to filled y-values (log, log10, exp, none)."; - h2yValFcn0->SetGuidance(fcnyGuidance); - h2yValFcn0->SetParameterCandidates("log log10 exp none"); - h2yValFcn0->SetDefaultValue("none"); - - auto h2yValBinScheme0 = new G4UIparameter("yvalBinScheme0", 's', true); - G4String ybinSchemeGuidance = "The binning scheme (linear, log)."; - h2yValBinScheme0->SetParameterCandidates("linear log"); - h2yValBinScheme0->SetGuidance(ybinSchemeGuidance); - h2yValBinScheme0->SetDefaultValue("linear"); - - fCreateH2Cmd = std::make_unique("/analysis/h2/create", this); - fCreateH2Cmd->SetGuidance("Create 2D histogram"); - fCreateH2Cmd->SetParameter(h2Name); - fCreateH2Cmd->SetParameter(h2Title); - fCreateH2Cmd->SetParameter(h2xNbins0); - fCreateH2Cmd->SetParameter(h2xValMin0); - fCreateH2Cmd->SetParameter(h2xValMax0); - fCreateH2Cmd->SetParameter(h2xValUnit0); - fCreateH2Cmd->SetParameter(h2xValFcn0); - fCreateH2Cmd->SetParameter(h2xValBinScheme0); - fCreateH2Cmd->SetParameter(h2yNbins0); - fCreateH2Cmd->SetParameter(h2yValMin0); - fCreateH2Cmd->SetParameter(h2yValMax0); - fCreateH2Cmd->SetParameter(h2yValUnit0); - fCreateH2Cmd->SetParameter(h2yValFcn0); - fCreateH2Cmd->SetParameter(h2yValBinScheme0); - fCreateH2Cmd->AvailableForStates(G4State_PreInit, G4State_Idle); -} - - -//_____________________________________________________________________________ -void G4H2Messenger::SetH2Cmd() -{ - auto h2Id = new G4UIparameter("id", 'i', false); - h2Id->SetGuidance("Histogram id"); - h2Id->SetParameterRange("id>=0"); - - auto h2xNbins = new G4UIparameter("xnbins", 'i', false); - h2xNbins->SetGuidance("Number of x-bins"); - - auto h2xValMin = new G4UIparameter("xvalMin", 'd', false); - h2xValMin->SetGuidance("Minimum x-value, expressed in unit"); - - auto h2xValMax = new G4UIparameter("xvalMax", 'd', false); - h2xValMax->SetGuidance("Maximum x-value, expressed in unit"); - - auto h2xValUnit = new G4UIparameter("xvalUnit", 's', false); - h2xValUnit->SetGuidance("The unit applied to filled x-values and xvalMin, xvalMax"); - h2xValUnit->SetDefaultValue("none"); - - auto h2xValFcn = new G4UIparameter("xvalFcn", 's', false); - h2xValFcn->SetParameterCandidates("log log10 exp none"); - G4String fcnxGuidance = "The function applied to filled x-values (log, log10, exp, none)."; - h2xValFcn->SetGuidance(fcnxGuidance); - h2xValFcn->SetDefaultValue("none"); - - auto h2xValBinScheme = new G4UIparameter("xvalBinScheme", 's', true); - G4String xbinSchemeGuidance = "The binning scheme (linear, log)."; - h2xValBinScheme->SetParameterCandidates("linear log"); - h2xValBinScheme->SetGuidance(xbinSchemeGuidance); - h2xValBinScheme->SetDefaultValue("linear"); - - auto h2yNbins = new G4UIparameter("nybins", 'i', false); - h2yNbins->SetGuidance("Number of y-bins"); - - auto h2yValMin = new G4UIparameter("yvalMin", 'd', false); - h2yValMin->SetGuidance("Minimum y-value, expressed in unit"); - - auto h2yValMax = new G4UIparameter("yvalMax", 'd', false); - h2yValMax->SetGuidance("Maximum y-value, expressed in unit"); - - auto h2yValUnit = new G4UIparameter("yvalUnit", 's', true); - h2yValUnit->SetGuidance("The unit applied to filled y-values and yvalMin, yvalMax"); - h2yValUnit->SetDefaultValue("none"); - - auto h2yValFcn = new G4UIparameter("yvalFcn", 's', false); - h2yValFcn->SetParameterCandidates("log log10 exp none"); - G4String fcnyGuidance = "The function applied to filled y-values (log, log10, exp, none)."; - h2yValFcn->SetGuidance(fcnyGuidance); - h2yValFcn->SetDefaultValue("none"); - - auto h2yValBinScheme = new G4UIparameter("yvalBinScheme", 's', true); - G4String ybinSchemeGuidance = "The binning scheme (linear, log)."; - h2yValBinScheme->SetParameterCandidates("linear log"); - h2yValBinScheme->SetGuidance(ybinSchemeGuidance); - h2yValBinScheme->SetDefaultValue("linear"); - - fSetH2Cmd = std::make_unique("/analysis/h2/set", this); - fSetH2Cmd->SetGuidance("Set parameters for the 2D histogram of given id:"); - fSetH2Cmd->SetGuidance(" nxbins; xvalMin; xvalMax; xunit; xfunction; xbinScheme"); - fSetH2Cmd->SetGuidance(" nybins; yvalMin; yvalMax; yunit; yfunction; ybinScheme"); - fSetH2Cmd->SetParameter(h2Id); - fSetH2Cmd->SetParameter(h2xNbins); - fSetH2Cmd->SetParameter(h2xValMin); - fSetH2Cmd->SetParameter(h2xValMax); - fSetH2Cmd->SetParameter(h2xValUnit); - fSetH2Cmd->SetParameter(h2xValFcn); - fSetH2Cmd->SetParameter(h2xValBinScheme); - fSetH2Cmd->SetParameter(h2yNbins); - fSetH2Cmd->SetParameter(h2yValMin); - fSetH2Cmd->SetParameter(h2yValMax); - fSetH2Cmd->SetParameter(h2yValUnit); - fSetH2Cmd->SetParameter(h2yValFcn); - fSetH2Cmd->SetParameter(h2yValBinScheme); - fSetH2Cmd->AvailableForStates(G4State_PreInit, G4State_Idle); -} - - -// -// public functions -// - -//_____________________________________________________________________________ -void G4H2Messenger::SetNewValue(G4UIcommand* command, G4String newValues) -{ - // tokenize parameters in a vector - std::vector parameters; - G4Analysis::Tokenize(newValues, parameters); - // check consistency - if ( parameters.size() != command->GetParameterEntries() ) { - // Should never happen but let's check anyway for consistency - fHelper->WarnAboutParameters(command, parameters.size()); - return; - } - - if ( command == fCreateH2Cmd.get() ) { - auto counter = 0; - auto name = parameters[counter++]; - auto title = parameters[counter++]; - G4AnalysisMessengerHelper::BinData xdata; - fHelper->GetBinData(xdata, parameters, counter); - auto xunit = GetUnitValue(xdata.fSunit); - G4AnalysisMessengerHelper::BinData ydata; - fHelper->GetBinData(ydata, parameters, counter); - auto yunit = GetUnitValue(ydata.fSunit); - fManager->CreateH2(name, title, - xdata.fNbins, xdata.fVmin*xunit, xdata.fVmax*xunit, - ydata.fNbins, ydata.fVmin*yunit, ydata.fVmax*yunit, - xdata.fSunit, ydata.fSunit, - xdata.fSfcn, ydata.fSfcn, - xdata.fSbinScheme, ydata.fSbinScheme); - } - else if ( command == fSetH2Cmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - G4AnalysisMessengerHelper::BinData xdata; - fHelper->GetBinData(xdata, parameters, counter); - auto xunit = GetUnitValue(xdata.fSunit); - G4AnalysisMessengerHelper::BinData ydata; - fHelper->GetBinData(ydata, parameters, counter); - auto yunit = GetUnitValue(ydata.fSunit); - fManager->SetH2(id, - xdata.fNbins, xdata.fVmin*xunit, xdata.fVmax*xunit, - ydata.fNbins, ydata.fVmin*yunit, ydata.fVmax*yunit, - xdata.fSunit, ydata.fSunit, - xdata.fSfcn, ydata.fSfcn, - xdata.fSbinScheme, ydata.fSbinScheme); - } - else if ( command == fSetH2XCmd.get() ) { - // Only save values - auto counter = 0; - fXId = G4UIcommand::ConvertToInt(parameters[counter++]); - fHelper->GetBinData(fXData, parameters, counter); - } - else if ( command == fSetH2YCmd.get() ) { - // Check if setX command was called - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - if ( fXId == -1 || fXId != id ) { - fHelper->WarnAboutSetCommands(); - return; - } - auto xunit = GetUnitValue(fXData.fSunit); - G4AnalysisMessengerHelper::BinData ydata; - fHelper->GetBinData(ydata, parameters, counter); - auto yunit = GetUnitValue(ydata.fSunit); - fManager->SetH2(id, - fXData.fNbins, fXData.fVmin*xunit, fXData.fVmax*xunit, - ydata.fNbins, ydata.fVmin*yunit, ydata.fVmax*yunit, - fXData.fSunit, ydata.fSunit, - fXData.fSfcn, ydata.fSfcn, - fXData.fSbinScheme, ydata.fSbinScheme); - fXId = -1; - } - else if ( command == fSetH2TitleCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto title = parameters[counter++]; - fManager->SetH2Title(id, title); - } - else if ( command == fSetH2XAxisCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto xaxis = parameters[counter++]; - fManager->SetH2XAxisTitle(id, xaxis); - } - else if ( command == fSetH2YAxisCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto yaxis = parameters[counter++]; - fManager->SetH2YAxisTitle(id, yaxis); - } - else if ( command == fSetH2ZAxisCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto zaxis = parameters[counter++]; - fManager->SetH2ZAxisTitle(id, zaxis); - } - else if ( command == fSetH2XAxisLogCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto xaxisLog = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager->SetH2XAxisIsLog(id, xaxisLog); - } - else if ( command == fSetH2YAxisLogCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto yaxisLog = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager->SetH2YAxisIsLog(id, yaxisLog); - } - else if ( command == fSetH2ZAxisLogCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto zaxisLog = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager->SetH2ZAxisIsLog(id, zaxisLog); - } -} diff --git a/source/analysis/management/src/G4H3Messenger.cc b/source/analysis/management/src/G4H3Messenger.cc deleted file mode 100644 index c936d2e0bd..0000000000 --- a/source/analysis/management/src/G4H3Messenger.cc +++ /dev/null @@ -1,443 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#include "G4H3Messenger.hh" -#include "G4VAnalysisManager.hh" - -#include "G4UIdirectory.hh" -#include "G4UIcommand.hh" -#include "G4UIparameter.hh" - -using namespace G4Analysis; - -//_____________________________________________________________________________ -G4H3Messenger::G4H3Messenger(G4VAnalysisManager* manager) - : G4UImessenger(), - fManager(manager) -{ - fHelper = std::make_unique("h3"); - - fDirectory = fHelper->CreateHnDirectory(); - - CreateH3Cmd(); - - SetH3Cmd(); - fSetH3XCmd = fHelper->CreateSetBinsCommand("x", this); - fSetH3YCmd = fHelper->CreateSetBinsCommand("y", this); - - fSetH3TitleCmd = fHelper->CreateSetTitleCommand(this); - fSetH3XAxisCmd = fHelper->CreateSetAxisCommand("x", this); - fSetH3YAxisCmd = fHelper->CreateSetAxisCommand("y", this); - fSetH3ZAxisCmd = fHelper->CreateSetAxisCommand("z", this); - fSetH3XAxisLogCmd = fHelper->CreateSetAxisLogCommand("x", this); - fSetH3YAxisLogCmd = fHelper->CreateSetAxisLogCommand("y", this); - fSetH3ZAxisLogCmd = fHelper->CreateSetAxisLogCommand("z", this); -} - -//_____________________________________________________________________________ -G4H3Messenger::~G4H3Messenger() = default; - -// -// private functions -// - -//_____________________________________________________________________________ -void G4H3Messenger::CreateH3Cmd() -{ - auto h3Name = new G4UIparameter("name", 's', false); - h3Name->SetGuidance("Histogram name (label)"); - - auto h3Title = new G4UIparameter("title", 's', false); - h3Title->SetGuidance("Histogram title"); - - auto h3xNbins0 = new G4UIparameter("xnbins0", 'i', true); - h3xNbins0->SetGuidance("Number of x-bins (default = 100)"); - h3xNbins0->SetGuidance("Can be reset with /analysis/h3/set command"); - h3xNbins0->SetDefaultValue(100); - - auto h3xValMin0 = new G4UIparameter("xvalMin0", 'd', true); - h3xValMin0->SetGuidance("Minimum x-value, expressed in unit (default = 0.)"); - h3xValMin0->SetGuidance("Can be reset with /analysis/h3/set command"); - h3xValMin0->SetDefaultValue(0.); - - auto h3xValMax0 = new G4UIparameter("xvalMax0", 'd', true); - h3xValMax0->SetGuidance("Maximum x-value, expressed in unit (default = 1.)"); - h3xValMax0->SetGuidance("Can be reset with /analysis/h3/set command"); - h3xValMax0->SetDefaultValue(1.); - - auto h3xValUnit0 = new G4UIparameter("xvalUnit0", 's', true); - h3xValUnit0->SetGuidance("The unit applied to filled x-values and xvalMin0, xvalMax0"); - h3xValUnit0->SetDefaultValue("none"); - - auto h3xValFcn0 = new G4UIparameter("xvalFcn0", 's', true); - G4String fcnxGuidance = "The function applied to filled x-values (log, log10, exp, none)."; - h3xValFcn0->SetGuidance(fcnxGuidance); - h3xValFcn0->SetParameterCandidates("log log10 exp none"); - h3xValFcn0->SetDefaultValue("none"); - - auto h3xValBinScheme0 = new G4UIparameter("xvalBinScheme0", 's', true); - G4String xbinSchemeGuidance = "The binning scheme (linear, log)."; - h3xValBinScheme0->SetParameterCandidates("linear log"); - h3xValBinScheme0->SetGuidance(xbinSchemeGuidance); - h3xValBinScheme0->SetDefaultValue("linear"); - - auto h3yNbins0 = new G4UIparameter("ynbins0", 'i', true); - h3yNbins0->SetGuidance("Number of y-bins (default = 100)"); - h3yNbins0->SetGuidance("Can be reset with /analysis/h3/set command"); - h3yNbins0->SetDefaultValue(100); - - auto h3yValMin0 = new G4UIparameter("yvalMin0", 'd', true); - h3yValMin0->SetGuidance("Minimum y-value, expressed in unit (default = 0.)"); - h3yValMin0->SetGuidance("Can be reset with /analysis/h3/set command"); - h3yValMin0->SetDefaultValue(0.); - - auto h3yValMax0 = new G4UIparameter("yvalMax0", 'd', true); - h3yValMax0->SetGuidance("Maximum y-value, expressed in unit (default = 1.)"); - h3yValMax0->SetGuidance("Can be reset with /analysis/h3/set command"); - h3yValMax0->SetDefaultValue(1.); - - auto h3yValUnit0 = new G4UIparameter("yvalUnit0", 's', true); - h3yValUnit0->SetGuidance("The unit applied to filled y-values and yvalMin0, yvalMax0"); - h3yValUnit0->SetDefaultValue("none"); - - auto h3yValFcn0 = new G4UIparameter("yvalFcn0", 's', true); - G4String fcnyGuidance = "The function applied to filled y-values (log, log10, exp, none)."; - h3yValFcn0->SetGuidance(fcnyGuidance); - h3yValFcn0->SetParameterCandidates("log log10 exp none"); - h3yValFcn0->SetDefaultValue("none"); - - auto h3yValBinScheme0 = new G4UIparameter("yvalBinScheme0", 's', true); - G4String ybinSchemeGuidance = "The binning scheme (linear, log)."; - h3yValBinScheme0->SetParameterCandidates("linear log"); - h3yValBinScheme0->SetGuidance(ybinSchemeGuidance); - h3yValBinScheme0->SetDefaultValue("linear"); - - auto h3zNbins0 = new G4UIparameter("znbins0", 'i', true); - h3zNbins0->SetGuidance("Number of z-bins (default = 100)"); - h3zNbins0->SetGuidance("Can be reset with /analysis/h3/set command"); - h3zNbins0->SetDefaultValue(100); - - auto h3zValMin0 = new G4UIparameter("zvalMin0", 'd', true); - h3zValMin0->SetGuidance("Minimum z-value, expressed in unit (default = 0.)"); - h3zValMin0->SetGuidance("Can be reset with /analysis/h3/set command"); - h3zValMin0->SetDefaultValue(0.); - - auto h3zValMax0 = new G4UIparameter("zvalMax0", 'd', true); - h3zValMax0->SetGuidance("Maximum z-value, expressed in unit (default = 1.)"); - h3zValMax0->SetGuidance("Can be reset with /analysis/h3/set command"); - h3zValMax0->SetDefaultValue(1.); - - auto h3zValUnit0 = new G4UIparameter("zvalUnit0", 's', true); - h3zValUnit0->SetGuidance("The unit applied to filled z-values and zvalMin0, zvalMax0"); - h3zValUnit0->SetDefaultValue("none"); - - auto h3zValFcn0 = new G4UIparameter("zvalFcn0", 's', true); - G4String fcnzGuidance = "The function applied to filled z-values (log, log10, exp, none)."; - h3zValFcn0->SetGuidance(fcnzGuidance); - h3zValFcn0->SetParameterCandidates("log log10 exp none"); - h3zValFcn0->SetDefaultValue("none"); - - auto h3zValBinScheme0 = new G4UIparameter("zvalBinScheme0", 's', true); - G4String zbinSchemeGuidance = "The binning scheme (linear, log)."; - h3zValBinScheme0->SetParameterCandidates("linear log"); - h3zValBinScheme0->SetGuidance(zbinSchemeGuidance); - h3zValBinScheme0->SetDefaultValue("linear"); - - fCreateH3Cmd = std::make_unique("/analysis/h3/create", this); - fCreateH3Cmd->SetGuidance("Create 3D histogram"); - fCreateH3Cmd->SetParameter(h3Name); - fCreateH3Cmd->SetParameter(h3Title); - fCreateH3Cmd->SetParameter(h3xNbins0); - fCreateH3Cmd->SetParameter(h3xValMin0); - fCreateH3Cmd->SetParameter(h3xValMax0); - fCreateH3Cmd->SetParameter(h3xValUnit0); - fCreateH3Cmd->SetParameter(h3xValFcn0); - fCreateH3Cmd->SetParameter(h3xValBinScheme0); - fCreateH3Cmd->SetParameter(h3yNbins0); - fCreateH3Cmd->SetParameter(h3yValMin0); - fCreateH3Cmd->SetParameter(h3yValMax0); - fCreateH3Cmd->SetParameter(h3yValUnit0); - fCreateH3Cmd->SetParameter(h3yValFcn0); - fCreateH3Cmd->SetParameter(h3yValBinScheme0); - fCreateH3Cmd->SetParameter(h3zNbins0); - fCreateH3Cmd->SetParameter(h3zValMin0); - fCreateH3Cmd->SetParameter(h3zValMax0); - fCreateH3Cmd->SetParameter(h3zValUnit0); - fCreateH3Cmd->SetParameter(h3zValFcn0); - fCreateH3Cmd->SetParameter(h3zValBinScheme0); - fCreateH3Cmd->AvailableForStates(G4State_PreInit, G4State_Idle); -} - - -//_____________________________________________________________________________ -void G4H3Messenger::SetH3Cmd() -{ - auto h3Id = new G4UIparameter("id", 'i', false); - h3Id->SetGuidance("Histogram id"); - h3Id->SetParameterRange("id>=0"); - - auto h3xNbins = new G4UIparameter("xnbins", 'i', false); - h3xNbins->SetGuidance("Number of x-bins"); - - auto h3xValMin = new G4UIparameter("xvalMin", 'd', false); - h3xValMin->SetGuidance("Minimum x-value, expressed in unit"); - - auto h3xValMax = new G4UIparameter("xvalMax", 'd', false); - h3xValMax->SetGuidance("Maximum x-value, expressed in unit"); - - auto h3xValUnit = new G4UIparameter("xvalUnit", 's', false); - h3xValUnit->SetGuidance("The unit applied to filled x-values and xvalMin0, xvalMax0"); - h3xValUnit->SetDefaultValue("none"); - - auto h3xValFcn = new G4UIparameter("xvalFcn", 's', false); - h3xValFcn->SetParameterCandidates("log log10 exp none"); - G4String fcnxGuidance = "The function applied to filled x-values (log, log10, exp, none)."; - h3xValFcn->SetGuidance(fcnxGuidance); - h3xValFcn->SetDefaultValue("none"); - - auto h3xValBinScheme = new G4UIparameter("xvalBinScheme", 's', true); - G4String xbinSchemeGuidance = "The binning scheme (linear, log)."; - h3xValBinScheme->SetParameterCandidates("linear log"); - h3xValBinScheme->SetGuidance(xbinSchemeGuidance); - h3xValBinScheme->SetDefaultValue("linear"); - - auto h3yNbins = new G4UIparameter("nybins", 'i', false); - h3yNbins->SetGuidance("Number of y-bins"); - - auto h3yValMin = new G4UIparameter("yvalMin", 'd', false); - h3yValMin->SetGuidance("Minimum y-value, expressed in unit"); - - auto h3yValMax = new G4UIparameter("yvalMax", 'd', false); - h3yValMax->SetGuidance("Maximum y-value, expressed in unit"); - - auto h3yValUnit = new G4UIparameter("yvalUnit", 's', true); - h3yValUnit->SetGuidance("The unit applied to filled y-values and yvalMin0, yvalMax0"); - h3yValUnit->SetDefaultValue("none"); - - auto h3yValFcn = new G4UIparameter("yvalFcn", 's', false); - h3yValFcn->SetParameterCandidates("log log10 exp none"); - G4String fcnyGuidance = "The function applied to filled y-values (log, log10, exp, none)."; - h3yValFcn->SetGuidance(fcnyGuidance); - h3yValFcn->SetDefaultValue("none"); - - auto h3yValBinScheme = new G4UIparameter("yvalBinScheme", 's', true); - G4String ybinSchemeGuidance = "The binning scheme (linear, log)."; - h3yValBinScheme->SetParameterCandidates("linear log"); - h3yValBinScheme->SetGuidance(ybinSchemeGuidance); - h3yValBinScheme->SetDefaultValue("linear"); - - auto h3zNbins = new G4UIparameter("nzbins", 'i', false); - h3zNbins->SetGuidance("Number of z-bins"); - - auto h3zValMin = new G4UIparameter("zvalMin", 'd', false); - h3zValMin->SetGuidance("Minimum z-value, expressed in unit"); - - auto h3zValMax = new G4UIparameter("zvalMax", 'd', false); - h3zValMax->SetGuidance("Maximum z-value, expressed in unit"); - - auto h3zValUnit = new G4UIparameter("zvalUnit", 's', true); - h3zValUnit->SetGuidance("The unit applied to filled z-values and zvalMin0, zvalMax0"); - h3zValUnit->SetDefaultValue("none"); - - auto h3zValFcn = new G4UIparameter("zvalFcn", 's', false); - h3zValFcn->SetParameterCandidates("log log10 exp none"); - G4String fcnzGuidance = "The function applied to filled z-values (log, log10, exp, none)."; - h3zValFcn->SetGuidance(fcnzGuidance); - h3zValFcn->SetDefaultValue("none"); - - auto h3zValBinScheme = new G4UIparameter("zvalBinScheme", 's', true); - G4String zbinSchemeGuidance = "The binning scheme (linear, log)."; - h3zValBinScheme->SetParameterCandidates("linear log"); - h3zValBinScheme->SetGuidance(zbinSchemeGuidance); - h3zValBinScheme->SetDefaultValue("linear"); - - fSetH3Cmd = std::make_unique("/analysis/h3/set", this); - fSetH3Cmd->SetGuidance("Set parameters for the 3D histogram of given id:"); - fSetH3Cmd->SetGuidance(" nxbins; xvalMin; xvalMax; xunit; xfunction; xbinScheme"); - fSetH3Cmd->SetGuidance(" nybins; yvalMin; yvalMax; yunit; yfunction; ybinScheme"); - fSetH3Cmd->SetGuidance(" nzbins; zvalMin; zvalMax; zunit; zfunction; zbinScheme"); - fSetH3Cmd->SetParameter(h3Id); - fSetH3Cmd->SetParameter(h3xNbins); - fSetH3Cmd->SetParameter(h3xValMin); - fSetH3Cmd->SetParameter(h3xValMax); - fSetH3Cmd->SetParameter(h3xValUnit); - fSetH3Cmd->SetParameter(h3xValFcn); - fSetH3Cmd->SetParameter(h3xValBinScheme); - fSetH3Cmd->SetParameter(h3yNbins); - fSetH3Cmd->SetParameter(h3yValMin); - fSetH3Cmd->SetParameter(h3yValMax); - fSetH3Cmd->SetParameter(h3yValUnit); - fSetH3Cmd->SetParameter(h3yValFcn); - fSetH3Cmd->SetParameter(h3yValBinScheme); - fSetH3Cmd->SetParameter(h3zNbins); - fSetH3Cmd->SetParameter(h3zValMin); - fSetH3Cmd->SetParameter(h3zValMax); - fSetH3Cmd->SetParameter(h3zValUnit); - fSetH3Cmd->SetParameter(h3zValFcn); - fSetH3Cmd->SetParameter(h3zValBinScheme); - fSetH3Cmd->AvailableForStates(G4State_PreInit, G4State_Idle); -} - - -// -// public functions -// - -//_____________________________________________________________________________ -void G4H3Messenger::SetNewValue(G4UIcommand* command, G4String newValues) -{ - // tokenize parameters in a vector - std::vector parameters; - G4Analysis::Tokenize(newValues, parameters); - // check consistency - if ( parameters.size() != command->GetParameterEntries() ) { - // Should never happen but let's check anyway for consistency - fHelper->WarnAboutParameters(command, parameters.size()); - return; - } - - if ( command == fCreateH3Cmd.get() ) { - auto counter = 0; - auto name = parameters[counter++]; - auto title = parameters[counter++]; - G4AnalysisMessengerHelper::BinData xdata; - fHelper->GetBinData(xdata, parameters, counter); - auto xunit = GetUnitValue(xdata.fSunit); - G4AnalysisMessengerHelper::BinData ydata; - fHelper->GetBinData(ydata, parameters, counter); - auto yunit = GetUnitValue(ydata.fSunit); - G4AnalysisMessengerHelper::BinData zdata; - fHelper->GetBinData(zdata, parameters, counter); - auto zunit = GetUnitValue(zdata.fSunit); - fManager->CreateH3(name, title, - xdata.fNbins, xdata.fVmin*xunit, xdata.fVmax*xunit, - ydata.fNbins, ydata.fVmin*yunit, ydata.fVmax*yunit, - zdata.fNbins, zdata.fVmin*zunit, zdata.fVmax*zunit, - xdata.fSunit, ydata.fSunit, zdata.fSunit, - xdata.fSfcn, ydata.fSfcn, zdata.fSfcn, - xdata.fSbinScheme, ydata.fSbinScheme, zdata.fSbinScheme); - } - else if ( command == fSetH3Cmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - G4AnalysisMessengerHelper::BinData xdata; - fHelper->GetBinData(xdata, parameters, counter); - auto xunit = GetUnitValue(xdata.fSunit); - G4AnalysisMessengerHelper::BinData ydata; - fHelper->GetBinData(ydata, parameters, counter); - auto yunit = GetUnitValue(ydata.fSunit); - G4AnalysisMessengerHelper::BinData zdata; - fHelper->GetBinData(zdata, parameters, counter); - auto zunit = GetUnitValue(zdata.fSunit); - fManager->SetH3(id, - xdata.fNbins, xdata.fVmin*xunit, xdata.fVmax*xunit, - ydata.fNbins, ydata.fVmin*yunit, ydata.fVmax*yunit, - zdata.fNbins, zdata.fVmin*zunit, zdata.fVmax*zunit, - xdata.fSunit, ydata.fSunit, zdata.fSunit, - xdata.fSfcn, ydata.fSfcn, zdata.fSfcn, - xdata.fSbinScheme, ydata.fSbinScheme, zdata.fSbinScheme); - } - else if ( command == fSetH3XCmd.get() ) { - // Only save values - auto counter = 0; - fXId = G4UIcommand::ConvertToInt(parameters[counter++]); - fHelper->GetBinData(fXData, parameters, counter); - } - else if ( command == fSetH3YCmd.get() ) { - // Only save values - auto counter = 0; - fYId = G4UIcommand::ConvertToInt(parameters[counter++]); - fHelper->GetBinData(fYData, parameters, counter); - } - else if ( command == fSetH3ZCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - // Check if setX and setY command was called - if ( fXId == -1 || fXId != id || - fYId == -1 || fYId != id ) { - fHelper->WarnAboutSetCommands(); - return; - } - auto xunit = GetUnitValue(fXData.fSunit); - auto yunit = GetUnitValue(fYData.fSunit); - G4AnalysisMessengerHelper::BinData zdata; - fHelper->GetBinData(zdata, parameters, counter); - auto zunit = GetUnitValue(zdata.fSunit); - fManager->SetH3(id, - fXData.fNbins, fXData.fVmin*xunit, fXData.fVmax*xunit, - fYData.fNbins, fYData.fVmin*yunit, fYData.fVmax*yunit, - zdata.fNbins, zdata.fVmin*zunit, zdata.fVmax*zunit, - fXData.fSunit, fYData.fSunit, zdata.fSunit, - fXData.fSfcn, fYData.fSfcn, zdata.fSfcn, - fXData.fSbinScheme, fYData.fSbinScheme, zdata.fSbinScheme); - fXId = -1; - fYId = -1; - } - else if ( command == fSetH3TitleCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto title = parameters[counter++]; - fManager->SetH3Title(id, title); - } - else if ( command == fSetH3XAxisCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto xaxis = parameters[counter++]; - fManager->SetH3XAxisTitle(id, xaxis); - } - else if ( command == fSetH3YAxisCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto yaxis = parameters[counter++]; - fManager->SetH3YAxisTitle(id, yaxis); - } - else if ( command == fSetH3ZAxisCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto zaxis = parameters[counter++]; - fManager->SetH3ZAxisTitle(id, zaxis); - } - else if ( command == fSetH3XAxisLogCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto xaxisLog = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager->SetH3XAxisIsLog(id, xaxisLog); - } - else if ( command == fSetH3YAxisLogCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto yaxisLog = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager->SetH3YAxisIsLog(id, yaxisLog); - } - else if ( command == fSetH3ZAxisLogCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto zaxisLog = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager->SetH3ZAxisIsLog(id, zaxisLog); - } -} diff --git a/source/analysis/management/src/G4HnInformation.cc b/source/analysis/management/src/G4HnInformation.cc new file mode 100644 index 0000000000..61a20c5886 --- /dev/null +++ b/source/analysis/management/src/G4HnInformation.cc @@ -0,0 +1,198 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// Author: Ivana Hrivnacova, 10/08/2022 (ivana@ipno.in2p3.fr) + +#include "G4HnInformation.hh" +#include "G4AnalysisUtilities.hh" + + +//_____________________________________________________________________________ +void G4HnDimension::Print() const +{ + G4cout + << "NBins: " << fNBins << " minValue: " << fMinValue << " maxValue: " + << fMaxValue << ";" << " edges: "; + for ( auto value : fEdges ) { + G4cout << value << ", "; + } + G4cout << G4endl; +} + +//_____________________________________________________________________________ +void G4HnDimensionInformation::Print() const +{ + G4cout + << "Unit name: " << fUnitName << " Fcn Name: " << fFcnName << " BinSchemeName: " + << fBinSchemeName << " Unit: " << fUnit << " BinScheme: " << static_cast(fBinScheme) + << G4endl; +} + +namespace G4Analysis +{ + +//_____________________________________________________________________________ +void Update(G4double& value, const G4HnDimensionInformation& hnInfo) +{ +// Apply hnInfo to a value + + auto unit = hnInfo.fUnit; + auto fcn = hnInfo.fFcn; + + if (unit == 0.) { + // Should never happen + Warn("Illegal unit value (0), 1. will be used instead", + kNamespaceName, "UpdateBins"); + unit = 1.; + } + value = fcn(value/unit); +} + +//_____________________________________________________________________________ +void UpdateValues( + G4HnDimension& bins, const G4HnDimensionInformation& hnInfo) +{ +// Apply hnInfo to bins min and max value + + auto unit = hnInfo.fUnit; + auto fcn = hnInfo.fFcn; + + if (unit == 0.) { + // Should never happen + Warn("Illegal unit value (0), 1. will be used instead", + kNamespaceName, "UpdateBins"); + unit = 1.; + } + // Update min/max values + bins.fMinValue = fcn(bins.fMinValue/unit); + bins.fMaxValue = fcn(bins.fMaxValue/unit); +} + +//_____________________________________________________________________________ +void Update( + G4HnDimension& bins, const G4HnDimensionInformation& hnInfo) +{ +// Apply hnInfo to bins, compute edges + + auto unit = hnInfo.fUnit; + auto fcn = hnInfo.fFcn; + auto binScheme = hnInfo.fBinScheme; + + if (binScheme == G4BinScheme::kLinear) { + // Compute edges, as they may be needed in the context of 2D or 3D histograms + // with log binning in other dimension + G4Analysis::ComputeEdges( + bins.fNBins, bins.fMinValue, bins.fMaxValue, unit, fcn, binScheme, bins.fEdges); + + // Update min/max Values + UpdateValues(bins, hnInfo); + + return; + } + + if (binScheme == G4BinScheme::kLog) { + // Logarithmic bin scheme + // compute edges from parameters + G4Analysis::ComputeEdges( + bins.fNBins, bins.fMinValue, bins.fMaxValue, unit, fcn, binScheme, bins.fEdges); + } + + if (binScheme == G4BinScheme::kUser) { + G4Analysis::ComputeEdges(bins.fEdges, unit, fcn, bins.fEdges); + } +} + +//_____________________________________________________________________________ +void UpdateTitle(G4String& title, const G4HnDimensionInformation& hnInfo) +{ + if ( hnInfo.fFcnName != "none" ) { title += " "; title += hnInfo.fFcnName; title += "("; } + if ( hnInfo.fUnitName != "none" ) { title += " ["; title += hnInfo.fUnitName; title += "]";} + if ( hnInfo.fFcnName != "none" ) { title += ")"; } +} + +//_____________________________________________________________________________ +G4bool CheckMinMax(G4double minValue, G4double maxValue) +{ + auto result = true; + + // Do not check default values + if ( minValue == 0. && maxValue == 0. ) return result; + + if ( maxValue <= minValue ) { + Warn("Illegal value of (minValue >= maxMaxValue)", kNamespaceName, "CheckMinMax"); + result = false; + } + + return result; +} + +//_____________________________________________________________________________ +G4bool CheckDimension(unsigned int idim, + const G4HnDimension& dimension, const G4HnDimensionInformation& info) +{ + auto result = true; + G4String xyz {"xyz"}; + + // Check nbins + if ( (dimension.fNBins <= 0) && (info.fBinScheme != G4BinScheme::kUser) ) { + Warn("Illegal value of number of " + xyz.substr(idim,1) + " bins: nbins <= 0.", + kNamespaceName, "CheckDimension"); + result = false; + } + + // Check edges + if ( dimension.fEdges.empty() && (info.fBinScheme == G4BinScheme::kUser) ) { + Warn("Illegal value of number of " + xyz.substr(idim,1) + " edges vector size", + kNamespaceName, "CheckDimension"); + result = false; + } + + // Check min/max + if ( dimension.fMaxValue <= dimension.fMinValue ) { + Warn("Illegal value of " + xyz.substr(idim,1) + " (min >= max)", + kNamespaceName, "CheckDimension"); + result = false; + } + + // Check function + if ( ( info.fFcnName != "none" ) && ( info.fBinScheme != G4BinScheme::kLinear ) ) { + Warn("Combining " + xyz.substr(idim,1) + " Function and Binning scheme is not supported.", + kNamespaceName, "CheckDimension"); + result = false; + } + + // Check minValue if log binning or log function + if ( ( info.fBinScheme == G4BinScheme::kLog || + info.fFcnName == "log" || info.fFcnName == "log10" ) && ( dimension.fMinValue == 0 ) ) { + Warn("Illegal value of " + xyz.substr(idim,1) + " (min = 0) with logarithmic function or binning", + kNamespaceName, "CheckDimension"); + result = false; + } + + return result; +} + +} diff --git a/source/analysis/management/src/G4HnManager.cc b/source/analysis/management/src/G4HnManager.cc index 452061a52c..239e579874 100644 --- a/source/analysis/management/src/G4HnManager.cc +++ b/source/analysis/management/src/G4HnManager.cc @@ -27,18 +27,22 @@ // Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr) #include "G4HnManager.hh" -#include "G4VFileManager.hh" +#include "G4HnMessenger.hh" + #include "G4AnalysisUtilities.hh" +#include "G4VFileManager.hh" + +#include using namespace G4Analysis; using std::to_string; //_____________________________________________________________________________ -G4HnManager::G4HnManager(const G4String& hnType, - const G4AnalysisManagerState& state) - : G4BaseAnalysisManager(state), - fHnType(hnType) -{} +G4HnManager::G4HnManager(G4String hnType, const G4AnalysisManagerState& state) + : G4BaseAnalysisManager(state), fHnType(std::move(hnType)) +{ + fMessenger = std::make_unique(*this); +} //_____________________________________________________________________________ G4HnManager::~G4HnManager() @@ -62,10 +66,12 @@ void G4HnManager::SetActivation(G4HnInformation* info, G4bool activation) // Change activation and account it in fNofActiveObjects info->SetActivation(activation); - if ( activation ) + if (activation) { fNofActiveObjects++; - else + } + else { fNofActiveObjects--; + } } //_____________________________________________________________________________ @@ -76,10 +82,12 @@ void G4HnManager::SetPlotting(G4HnInformation* info, G4bool plotting) // Change Plotting and account it in fNofPlottingObjects info->SetPlotting(plotting); - if ( plotting ) + if (plotting) { fNofPlottingObjects++; - else + } + else { fNofPlottingObjects--; + } } //_____________________________________________________________________________ @@ -151,7 +159,7 @@ G4HnDimensionInformation* G4HnManager::GetHnDimensionInformation(G4int id, std::string_view functionName, G4bool warn) const { auto info = GetHnInformation(id, functionName, warn); - if ( ! info ) return nullptr; + if (info == nullptr) return nullptr; return info->GetHnDimensionInformation(dimension); } @@ -187,7 +195,7 @@ void G4HnManager::SetActivation(G4int id, G4bool activation) auto info = GetHnInformation(id, "SetActivation"); - if ( ! info ) return; + if (info == nullptr) return; SetActivation(info, activation); } @@ -211,17 +219,19 @@ void G4HnManager::SetAscii(G4int id, G4bool ascii) { auto info = GetHnInformation(id, "SetAscii"); - if ( ! info ) return; + if (info == nullptr) return; // Do nothing if ascii does not change if ( info->GetAscii() == ascii ) return; // Change ascii and account it in fNofAsciiObjects info->SetAscii(ascii); - if ( ascii ) + if (ascii) { fNofAsciiObjects++; - else + } + else { fNofAsciiObjects--; + } } //_____________________________________________________________________________ @@ -229,7 +239,7 @@ void G4HnManager::SetPlotting(G4int id, G4bool plotting) { auto info = GetHnInformation(id, "SetPlotting"); - if ( ! info ) return; + if (info == nullptr) return; SetPlotting(info, plotting); } @@ -249,7 +259,7 @@ void G4HnManager::SetFileName(G4int id, const G4String& fileName) { auto info = GetHnInformation(id, "SetFileName"); - if ( ! info ) return; + if (info == nullptr) return; SetFileName(info, fileName); } @@ -265,35 +275,13 @@ void G4HnManager::SetFileName(const G4String& fileName) } //_____________________________________________________________________________ -G4bool G4HnManager::SetXAxisIsLog(G4int id, G4bool isLog) +G4bool G4HnManager::SetAxisIsLog(unsigned int idim, G4int id, G4bool isLog) { - auto info = GetHnInformation(id, "SetXAxisIsLog"); + auto info = GetHnInformation(id, "SetAxisIsLog"); - if ( ! info ) return false; + if (info == nullptr) return false; - info->SetIsLogAxis(kX, isLog); - return true; -} - -//_____________________________________________________________________________ -G4bool G4HnManager::SetYAxisIsLog(G4int id, G4bool isLog) -{ - auto info = GetHnInformation(id, "SetYAxisIsLog"); - - if ( ! info ) return false; - - info->SetIsLogAxis(kY, isLog); - return true; -} - -//_____________________________________________________________________________ -G4bool G4HnManager::SetZAxisIsLog(G4int id, G4bool isLog) -{ - auto info = GetHnInformation(id, "SetZAxisIsLog"); - - if ( ! info ) return false; - - info->SetIsLogAxis(kZ, isLog); + info->SetIsLogAxis(idim, isLog); return true; } @@ -302,69 +290,29 @@ G4String G4HnManager::GetName(G4int id) const { auto info = GetHnInformation(id, "GetName"); - if ( ! info ) return ""; + if (info == nullptr) return ""; return info->GetName(); } //_____________________________________________________________________________ -G4double G4HnManager::GetXUnit(G4int id) const +G4double G4HnManager::GetUnit(unsigned int idim, G4int id) const { - auto info = GetHnDimensionInformation(id, kX, "GetXUnit"); + auto info = GetHnDimensionInformation(id, idim, "GetXUnit"); - if ( ! info ) return 1.0; + if (info == nullptr) return 1.0; return info->fUnit; } //_____________________________________________________________________________ -G4double G4HnManager::GetYUnit(G4int id) const -{ - auto info = GetHnDimensionInformation(id, kY, "GetYUnit"); - - if ( ! info ) return 1.0; - - return info->fUnit; -} - -//_____________________________________________________________________________ -G4double G4HnManager::GetZUnit(G4int id) const -{ - auto info = GetHnDimensionInformation(id, kZ, "GetZUnit"); - - if ( ! info ) return 1.0; - - return info->fUnit; -} - -//_____________________________________________________________________________ -G4bool G4HnManager::GetXAxisIsLog(G4int id) const +G4bool G4HnManager::GetAxisIsLog(unsigned int idim, G4int id) const { auto info = GetHnInformation(id, "GetXAxisIsLog"); - if ( ! info ) return false; + if (info == nullptr) return false; - return info->GetIsLogAxis(kX); -} - -//_____________________________________________________________________________ -G4bool G4HnManager::GetYAxisIsLog(G4int id) const -{ - auto info = GetHnInformation(id, "GetYAxisIsLog"); - - if ( ! info ) return 1.0; - - return info->GetIsLogAxis(kY); -} - -//_____________________________________________________________________________ -G4bool G4HnManager::GetZAxisIsLog(G4int id) const -{ - auto info = GetHnInformation(id, "GetZAxisIsLog"); - - if ( ! info ) return 1.0; - - return info->GetIsLogAxis(kZ); + return info->GetIsLogAxis(idim); } //_____________________________________________________________________________ @@ -372,7 +320,7 @@ G4bool G4HnManager::GetActivation(G4int id) const { auto info = GetHnInformation(id, "GetActivation"); - if ( ! info ) return true; + if (info == nullptr) return true; return info->GetActivation(); } @@ -382,7 +330,7 @@ G4bool G4HnManager::GetAscii(G4int id) const { auto info = GetHnInformation(id, "GetAscii"); - if ( ! info ) return false; + if (info == nullptr) return false; return info->GetAscii(); } @@ -392,7 +340,7 @@ G4bool G4HnManager::GetPlotting(G4int id) const { auto info = GetHnInformation(id, "GetPlotting"); - if ( ! info ) return false; + if (info == nullptr) return false; return info->GetPlotting(); } @@ -402,7 +350,7 @@ G4String G4HnManager::GetFileName(G4int id) const { auto info = GetHnInformation(id, "GetFileName"); - if ( ! info ) return ""; + if (info == nullptr) return ""; return info->GetFileName(); } diff --git a/source/analysis/management/src/G4HnMessenger.cc b/source/analysis/management/src/G4HnMessenger.cc index eee1806255..5a2c606e40 100644 --- a/source/analysis/management/src/G4HnMessenger.cc +++ b/source/analysis/management/src/G4HnMessenger.cc @@ -28,24 +28,17 @@ #include "G4HnMessenger.hh" #include "G4HnManager.hh" -#include "G4AnalysisUtilities.hh" -#include "G4AnalysisMessengerHelper.hh" #include "G4UIcommand.hh" #include "G4UIparameter.hh" -#include "G4UIcmdWithAnInteger.hh" #include "G4UIcmdWithABool.hh" #include "G4UIcmdWithAString.hh" -using namespace G4Analysis; - +//_____________________________________________________________________________ G4HnMessenger::G4HnMessenger(G4HnManager& manager) - : G4UImessenger(), - fManager(manager) + : fManager(manager), + fHnType(manager.GetHnType()) { - G4String hnType = G4StrUtil::to_lower_copy(fManager.GetHnType()); - fHelper = std::make_unique(hnType); - SetHnAsciiCmd(); SetHnActivationCmd(); SetHnActivationToAllCmd(); @@ -62,107 +55,103 @@ G4HnMessenger::~G4HnMessenger() = default; // private functions // +//_____________________________________________________________________________ +G4String G4HnMessenger::GetObjectType() const +{ + return (fHnType[0] == 'h') ? + fHnType.substr(1,1) + "D histogram" : + fHnType.substr(1,1) + "D profile"; +} + +//_____________________________________________________________________________ +void G4HnMessenger::AddIdParameter(G4UIcommand& command) +{ + auto htId = new G4UIparameter("id", 'i', false); + htId->SetGuidance("Histogram id"); + htId->SetParameterRange("id>=0"); + command.SetParameter(htId); +} + +//_____________________________________________________________________________ +void G4HnMessenger::AddOptionParameter(G4UIcommand& command, G4String optionName) +{ + auto param = new G4UIparameter(optionName, 'b', true); + auto guidance = GetObjectType() + " " + optionName + " option"; + param->SetGuidance(guidance.c_str()); + param->SetDefaultValue("true"); + command.SetParameter(param); +} + //_____________________________________________________________________________ void G4HnMessenger::SetHnAsciiCmd() { - fSetHnAsciiCmd - = std::make_unique(fHelper->Update("/analysis/HNTYPE_/setAscii"), this); - fSetHnAsciiCmd->SetGuidance( - fHelper->Update("Print NDIM_D LOBJECT of given id on ascii file.")); + fSetAsciiCmd = + CreateCommand("setAscii", "Print on ascii file the "); + + AddIdParameter(*fSetAsciiCmd); + AddOptionParameter(*fSetAsciiCmd, "hnAscii"); - fSetHnAsciiCmd->SetParameterName("id",false); - fSetHnAsciiCmd->SetRange("id>=0"); - fSetHnAsciiCmd->AvailableForStates(G4State_PreInit, G4State_Idle); } //_____________________________________________________________________________ void G4HnMessenger::SetHnActivationCmd() { - auto hnId = new G4UIparameter("id", 'i', false); - hnId->SetGuidance(fHelper->Update("OBJECT id")); - hnId->SetParameterRange("id>=0"); + fSetActivationCmd = + CreateCommand("setActivation", "Set activation to the "); - auto hnActivation = new G4UIparameter("hnActivation", 's', true); - hnActivation->SetGuidance(fHelper->Update("OBJECT activation")); - hnActivation->SetDefaultValue("none"); - - fSetHnActivationCmd - = std::make_unique(fHelper->Update("/analysis/HNTYPE_/setActivation"), this); - fSetHnActivationCmd->SetGuidance( - fHelper->Update("Set activation for the NDIM_D LOBJECT of given id")); - fSetHnActivationCmd->SetParameter(hnId); - fSetHnActivationCmd->SetParameter(hnActivation); - fSetHnActivationCmd->AvailableForStates(G4State_PreInit, G4State_Idle); + AddIdParameter(*fSetActivationCmd); + AddOptionParameter(*fSetActivationCmd, "hnActivation"); } //_____________________________________________________________________________ void G4HnMessenger::SetHnActivationToAllCmd() { - fSetHnActivationAllCmd - = std::make_unique(fHelper->Update("/analysis/HNTYPE_/setActivationToAll"), this); - fSetHnActivationAllCmd->SetGuidance( - fHelper->Update("Set activation to all NDIM_D LOBJECTs")); - fSetHnActivationAllCmd->SetParameterName("Activation",false); + fSetActivationAllCmd = + CreateCommand( + "setActivationToAll", "Set activation to all"); + fSetActivationAllCmd->SetParameterName("Activation", false); } //_____________________________________________________________________________ void G4HnMessenger::SetHnPlottingCmd() { - auto hnId = new G4UIparameter("id", 'i', false); - hnId->SetGuidance(fHelper->Update("OBJECT id")); - hnId->SetParameterRange("id>=0"); + fSetPlottingCmd = + CreateCommand("setPlotting", "(In)Activate batch plotting of the "); - auto hnPlotting = new G4UIparameter("hnPlotting", 's', true); - hnPlotting->SetGuidance(fHelper->Update("(In)Activate OBJECT plotting")); - hnPlotting->SetDefaultValue("none"); - - fSetHnPlottingCmd - = std::make_unique(fHelper->Update("/analysis/HNTYPE_/setPlotting"), this); - fSetHnPlottingCmd->SetGuidance( - fHelper->Update("(In)Activate batch plotting of the NDIM_D LOBJECT of given id")); - fSetHnPlottingCmd->SetParameter(hnId); - fSetHnPlottingCmd->SetParameter(hnPlotting); - fSetHnPlottingCmd->AvailableForStates(G4State_PreInit, G4State_Idle); + AddIdParameter(*fSetPlottingCmd); + AddOptionParameter(*fSetPlottingCmd, "hnPlotting"); } //_____________________________________________________________________________ void G4HnMessenger::SetHnPlottingToAllCmd() { - fSetHnPlottingAllCmd - = std::make_unique(fHelper->Update("/analysis/HNTYPE_/setPlottingToAll"), this); - fSetHnPlottingAllCmd->SetGuidance( - fHelper->Update("(In)Activate batch plotting of all NDIM_D LOBJECTs")); - fSetHnPlottingAllCmd->SetParameterName("Plotting",false); + fSetPlottingAllCmd = + CreateCommand( + "setPlottingToAll", "(In)Activate batch plotting of all "); + fSetPlottingAllCmd->SetParameterName("Plotting", false); } //_____________________________________________________________________________ void G4HnMessenger::SetHnFileNameCmd() { - auto hnId = new G4UIparameter("id", 'i', false); - hnId->SetGuidance(fHelper->Update("OBJECT id")); - hnId->SetParameterRange("id>=0"); + fSetFileNameCmd = + CreateCommand("setFileName", "Set the output file name for the "); - auto hnFileName = new G4UIparameter("hnFileName", 's', true); - hnFileName->SetGuidance(fHelper->Update("OBJECT output file name")); - hnFileName->SetDefaultValue("none"); + AddIdParameter(*fSetFileNameCmd); - fSetHnFileNameCmd - = std::make_unique(fHelper->Update("/analysis/HNTYPE_/setFileName"), this); - fSetHnFileNameCmd->SetGuidance( - fHelper->Update("Set the NDIM_D LOBJECT of given id output file name")); - fSetHnFileNameCmd->SetParameter(hnId); - fSetHnFileNameCmd->SetParameter(hnFileName); - fSetHnFileNameCmd->AvailableForStates(G4State_PreInit, G4State_Idle); + auto param = new G4UIparameter("hnFileName", 's', false); + auto guidance = GetObjectType() + " output file name"; + param->SetGuidance(guidance.c_str()); + fSetFileNameCmd->SetParameter(param); } //_____________________________________________________________________________ void G4HnMessenger::SetHnFileNameToAllCmd() { - fSetHnFileNameAllCmd - = std::make_unique(fHelper->Update("/analysis/HNTYPE_/setFileNameToAll"), this); - fSetHnFileNameAllCmd->SetGuidance( - fHelper->Update("Set output file name for all NDIM_D LOBJECTs")); - fSetHnFileNameAllCmd->SetParameterName("FileName",false); + fSetFileNameAllCmd = + CreateCommand( + "setFileNameToAll", "Set output file name for all "); + fSetFileNameAllCmd->SetParameterName("FileName", false); } // @@ -172,68 +161,56 @@ void G4HnMessenger::SetHnFileNameToAllCmd() //_____________________________________________________________________________ void G4HnMessenger::SetNewValue(G4UIcommand* command, G4String newValues) { - if ( command == fSetHnAsciiCmd.get() ) { - auto id = fSetHnAsciiCmd->GetNewIntValue(newValues); - fManager.SetAscii(id, true); + // process "All" commands first + if ( command == fSetActivationAllCmd.get() ) { + fManager.SetActivation(fSetActivationAllCmd->GetNewBoolValue(newValues)); + return; } - else if ( command == fSetHnActivationCmd.get() ) { - // tokenize parameters in a vector - std::vector parameters; - G4Analysis::Tokenize(newValues, parameters); - // check consistency - if ( parameters.size() == command->GetParameterEntries() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto activation = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager.SetActivation(id, activation); - } - else { - // Should never happen but let's check anyway for consistency - fHelper->WarnAboutParameters(command, parameters.size()); - } + + if ( command == fSetPlottingAllCmd.get() ) { + fManager.SetPlotting(fSetPlottingAllCmd->GetNewBoolValue(newValues)); + return; } - else if ( command == fSetHnActivationAllCmd.get() ) { - auto activation = fSetHnActivationAllCmd->GetNewBoolValue(newValues); - fManager.SetActivation(activation); + + if ( command == fSetFileNameAllCmd.get() ) { + fManager.SetFileName(newValues); + return; } - else if ( command == fSetHnPlottingCmd.get() ) { - // tokenize parameters in a vector - std::vector parameters; - G4Analysis::Tokenize(newValues, parameters); - // check consistency - if ( parameters.size() == command->GetParameterEntries() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto activation = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager.SetPlotting(id, activation); - } - else { - // Should never happen but let's check anyway for consistency - fHelper->WarnAboutParameters(command, parameters.size()); - } + + // Tokenize parameters in a vector + std::vector parameters; + G4Analysis::Tokenize(newValues, parameters); + // check consistency + if ( parameters.size() != command->GetParameterEntries() ) { + // Should never happen but let's check anyway for consistency + G4Analysis::Warn( + "Got wrong number of \"" + command->GetCommandName() + + "\" parameters: " + std::to_string(parameters.size()) + + " instead of " + std::to_string(command->GetParameterEntries()) + " expected", + fkClass, "WarnAboutParameters"); + return; } - else if ( command == fSetHnPlottingAllCmd.get() ) { - auto activation = fSetHnPlottingAllCmd->GetNewBoolValue(newValues); - fManager.SetPlotting(activation); + + auto counter = 0; + auto id = G4UIcommand::ConvertToInt(parameters[counter++]); + + if ( command == fSetAsciiCmd.get() ) { + fManager.SetAscii(id, G4UIcommand::ConvertToBool(parameters[counter++])); + return; } - else if ( command == fSetHnFileNameCmd.get() ) { - // tokenize parameters in a vector - std::vector parameters; - G4Analysis::Tokenize(newValues, parameters); - // check consistency - if ( parameters.size() == command->GetParameterEntries() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto fileName = parameters[counter++]; - fManager.SetFileName(id, fileName); - } - else { - // Should never happen but let's check anyway for consistency - fHelper->WarnAboutParameters(command, parameters.size()); - } + + if ( command == fSetActivationCmd.get() ) { + fManager.SetActivation(id, G4UIcommand::ConvertToBool(parameters[counter++])); + return; } - else if ( command == fSetHnFileNameAllCmd.get() ) { - auto fileName = newValues; - fManager.SetFileName(fileName); + + if ( command == fSetPlottingCmd.get() ) { + fManager.SetPlotting(id, G4UIcommand::ConvertToBool(parameters[counter++])); + return; + } + + if ( command == fSetFileNameCmd.get() ) { + fManager.SetFileName(id, parameters[counter++]); + return; } } diff --git a/source/analysis/management/src/G4NtupleBookingManager.cc b/source/analysis/management/src/G4NtupleBookingManager.cc index 8706817a77..81e5ada690 100644 --- a/source/analysis/management/src/G4NtupleBookingManager.cc +++ b/source/analysis/management/src/G4NtupleBookingManager.cc @@ -68,6 +68,18 @@ G4NtupleBookingManager::GetNtupleBookingInFunction( return fNtupleBookingVector[index]; } +//_____________________________________________________________________________ +G4bool G4NtupleBookingManager::CheckName( + const G4String& name, const G4String& objectType) const +{ + if (name.size() == 0u) { + Warn("Empty " + objectType + " name is not allowed.\n" + + objectType + " was not created.", fkClass, "CheckName"); + return false; + } + return true; +} + // // protected functions // @@ -75,13 +87,15 @@ G4NtupleBookingManager::GetNtupleBookingInFunction( //_____________________________________________________________________________ G4bool G4NtupleBookingManager::IsEmpty() const { - return ! fNtupleBookingVector.size(); + return fNtupleBookingVector.size() == 0u; } //_____________________________________________________________________________ G4int G4NtupleBookingManager::CreateNtuple( const G4String& name, const G4String& title) { + if ( ! CheckName(name, "Ntuple") ) return kInvalidId; + Message(kVL4, "create", "ntuple booking", name); // Create ntuple description @@ -201,7 +215,7 @@ void G4NtupleBookingManager::SetActivation( { auto ntupleBooking = GetNtupleBookingInFunction(ntupleId, "SetActivation"); - if ( ! ntupleBooking ) return; + if (ntupleBooking == nullptr) return; ntupleBooking->fActivation = activation; } @@ -212,7 +226,7 @@ G4bool G4NtupleBookingManager::GetActivation( { auto ntupleBooking = GetNtupleBookingInFunction(ntupleId, "GetActivation"); - if ( ! ntupleBooking ) return false; + if (ntupleBooking == nullptr) return false; return ntupleBooking->fActivation; } @@ -232,14 +246,14 @@ void G4NtupleBookingManager::SetFileName( { auto ntupleBooking = GetNtupleBookingInFunction(ntupleId, "SetFileName"); - if ( ! ntupleBooking ) return; + if (ntupleBooking == nullptr) return; // Do nothing if file name does not change if ( ntupleBooking->fFileName == fileName ) return; auto ntupleFileName = fileName; auto extension = GetExtension(fileName); - if ( extension.size() ) { + if (extension.size() != 0u) { // Check if valid extension (if present) auto output = G4Analysis::GetOutput(extension); if ( output == G4AnalysisOutput::kNone ) { @@ -249,7 +263,7 @@ void G4NtupleBookingManager::SetFileName( } } else { - if ( fFileType.size() ) { + if (fFileType.size() != 0u) { //add extension if missing and file type is defined ntupleFileName = fileName + "." + fFileType; } @@ -267,7 +281,7 @@ G4String G4NtupleBookingManager::GetFileName( { auto ntupleBooking = GetNtupleBookingInFunction(ntupleId, "GetFileName"); - if ( ! ntupleBooking ) return ""; + if (ntupleBooking == nullptr) return ""; return ntupleBooking->fFileName; } @@ -300,8 +314,7 @@ void G4NtupleBookingManager::SetFileType(const G4String& fileType) // Give warning and redefine file extension in bookings // with file name of different fileTypes for ( auto ntupleBooking : fNtupleBookingVector ) { - - if ( ! (ntupleBooking->fFileName).size() ) continue; + if ((ntupleBooking->fFileName).size() == 0u) continue; auto extension = GetExtension(ntupleBooking->fFileName); if ( fFileType == extension ) continue; @@ -309,7 +322,7 @@ void G4NtupleBookingManager::SetFileType(const G4String& fileType) // multiple file types are not suported auto baseFileName = GetBaseName(ntupleBooking->fFileName); auto ntupleFileName = baseFileName + "." + fFileType; - if ( extension.size() ) { + if (extension.size() != 0u) { Warn("Writing ntuples in files of different output types " + fFileType + ", " + extension + " is not supported.", fkClass, "SetFileType"); diff --git a/source/analysis/management/src/G4NtupleMessenger.cc b/source/analysis/management/src/G4NtupleMessenger.cc index 3454c324af..8bf3507949 100644 --- a/source/analysis/management/src/G4NtupleMessenger.cc +++ b/source/analysis/management/src/G4NtupleMessenger.cc @@ -38,25 +38,9 @@ using namespace G4Analysis; using std::to_string; -namespace { - -//_____________________________________________________________________________ -void WrongParametersWarning( - const G4String& commandName, std::size_t got, std::size_t expected, - std::string_view className) -{ - Warn( - "Got wrong number of \"" + commandName + "\" parameters: " + - to_string(got) + " instead of " + to_string(expected) + " expected", - className, "SetNewValue"); -} - -} - //_____________________________________________________________________________ G4NtupleMessenger::G4NtupleMessenger(G4VAnalysisManager* manager) - : G4UImessenger(), - fManager(manager) + : fManager(manager) { fNtupleDir = std::make_unique("/analysis/ntuple/"); fNtupleDir->SetGuidance("ntuple control"); @@ -65,75 +49,81 @@ G4NtupleMessenger::G4NtupleMessenger(G4VAnalysisManager* manager) SetActivationToAllCmd(); SetFileNameCmd(); SetFileNameToAllCmd(); + ListCmd(); } //_____________________________________________________________________________ G4NtupleMessenger::~G4NtupleMessenger() = default; // -// public functions +// private functions // //_____________________________________________________________________________ -void G4NtupleMessenger::SetActivationCmd() +void G4NtupleMessenger::AddIdParameter(G4UIcommand& command) { auto ntupleId = new G4UIparameter("NtupleId", 'i', false); ntupleId->SetGuidance("Ntuple id"); ntupleId->SetParameterRange("NtupleId>=0"); - auto ntupleActivation = new G4UIparameter("NtupleActivation", 's', true); + command.SetParameter(ntupleId); +} + +//_____________________________________________________________________________ +void G4NtupleMessenger::SetActivationCmd() +{ + fSetActivationCmd = CreateCommand( + "setActivation", "Set activation for the ntuple"); + + AddIdParameter(*fSetActivationCmd); + + auto ntupleActivation = new G4UIparameter("NtupleActivation", 'b', true); ntupleActivation->SetGuidance("Ntuple activation"); - ntupleActivation->SetDefaultValue("none"); - - fSetActivationCmd = std::make_unique("/analysis/ntuple/setActivation", this); - G4String guidance("Set activation for the ntuple of given id"); - - fSetActivationCmd->SetGuidance(guidance); - fSetActivationCmd->SetParameter(ntupleId); + ntupleActivation->SetDefaultValue(true); fSetActivationCmd->SetParameter(ntupleActivation); - fSetActivationCmd->AvailableForStates(G4State_PreInit, G4State_Idle); } //_____________________________________________________________________________ void G4NtupleMessenger::SetActivationToAllCmd() { - fSetActivationAllCmd - = std::make_unique("/analysis/ntuple/setActivationToAll", this); - G4String guidance("Set activation to all ntuples"); - fSetActivationAllCmd->SetGuidance(guidance); + fSetActivationAllCmd = CreateCommand( + "setActivationToAll", "Set activation to all ntuples"); fSetActivationAllCmd->SetParameterName("AllNtupleActivation",false); } //_____________________________________________________________________________ void G4NtupleMessenger::SetFileNameCmd() { - auto ntupleId = new G4UIparameter("NtupleId", 'i', false); - ntupleId->SetGuidance("Ntuple id"); - ntupleId->SetParameterRange("NtupleId>=0"); + fSetFileNameCmd = CreateCommand( + "setFileName", "Set file name for the ntuple"); - auto ntupleFileName = new G4UIparameter("NtupleFileName", 's', true); + AddIdParameter(*fSetFileNameCmd); + + auto ntupleFileName = new G4UIparameter("NtupleFileName", 's', false); ntupleFileName->SetGuidance("Ntuple file name"); - ntupleFileName->SetDefaultValue("none"); - - fSetFileNameCmd = std::make_unique("/analysis/ntuple/setFileName", this); - G4String guidance("Set file name for the ntuple of given id"); - - fSetFileNameCmd->SetGuidance(guidance); - fSetFileNameCmd->SetParameter(ntupleId); fSetFileNameCmd->SetParameter(ntupleFileName); - fSetFileNameCmd->AvailableForStates(G4State_PreInit, G4State_Idle); } //_____________________________________________________________________________ void G4NtupleMessenger::SetFileNameToAllCmd() { - fSetFileNameAllCmd - = std::make_unique("/analysis/ntuple/setFileNameToAll", this); - G4String guidance("Set file name to all ntuples"); - fSetFileNameAllCmd->SetGuidance(guidance); + fSetFileNameAllCmd = CreateCommand( + "setFileNameToAll", "Set file name to all ntuples"); fSetFileNameAllCmd->SetParameterName("AllNtupleFileName",false); } +//_____________________________________________________________________________ +void G4NtupleMessenger::ListCmd() +{ + fListCmd = CreateCommand("list", "List all/active ntuples"); + fListCmd->AvailableForStates(G4State_Idle, G4State_GeomClosed, G4State_EventProc); + + auto parOnlyIfActive = new G4UIparameter("onlyIfActive", 'b', true); + parOnlyIfActive->SetGuidance("Option whether to list only active objects"); + parOnlyIfActive->SetDefaultValue("true"); + fListCmd->SetParameter(parOnlyIfActive); +} + // // public methods // @@ -141,46 +131,48 @@ void G4NtupleMessenger::SetFileNameToAllCmd() //_____________________________________________________________________________ void G4NtupleMessenger::SetNewValue(G4UIcommand* command, G4String newValues) { + // process "All" commands first + + if ( command == fSetActivationAllCmd.get() ) { + fManager->SetActivation(fSetActivationAllCmd->GetNewBoolValue(newValues)); + return; + } + + if ( command == fSetFileNameAllCmd.get() ) { + fManager->SetFileName(newValues); + return; + } + + // Tokenize parameters in a vector + std::vector parameters; + G4Analysis::Tokenize(newValues, parameters); + // check consistency + if ( parameters.size() != command->GetParameterEntries() ) { + // Should never happen but let's check anyway for consistency + G4Analysis::Warn( + "Got wrong number of \"" + command->GetCommandName() + + "\" parameters: " + std::to_string(parameters.size()) + + " instead of " + std::to_string(command->GetParameterEntries()) + " expected", + fkClass, "WarnAboutParameters"); + return; + } + + auto counter = 0; + auto id = G4UIcommand::ConvertToInt(parameters[counter++]); + if ( command == fSetActivationCmd.get() ) { - // tokenize parameters in a vector - std::vector parameters; - G4Analysis::Tokenize(newValues, parameters); - // check consistency - if ( parameters.size() == command->GetParameterEntries() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto activation = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager->SetNtupleActivation(id, activation); - } - else { - // Should never happen but let's check anyway for consistency - WrongParametersWarning(command->GetCommandName(), - parameters.size(),command->GetParameterEntries(), fkClass); - } + fManager->SetNtupleActivation(id, G4UIcommand::ConvertToBool(parameters[counter++])); + return; } - else if ( command == fSetActivationAllCmd.get() ) { - auto activation = fSetActivationAllCmd->GetNewBoolValue(newValues); - fManager->SetNtupleActivation(activation); + + if ( command == fSetFileNameCmd.get() ) { + fManager->SetNtupleFileName(id, parameters[counter++]); + return; } - else if ( command == fSetFileNameCmd.get() ) { - // tokenize parameters in a vector - std::vector parameters; - G4Analysis::Tokenize(newValues, parameters); - // check consistency - if ( parameters.size() == command->GetParameterEntries() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto fileName = parameters[counter++]; - fManager->SetNtupleFileName(id, fileName); - } - else { - // Should never happen but let's check anyway for consistency - WrongParametersWarning(command->GetCommandName(), - parameters.size(),command->GetParameterEntries(), fkClass); - } - } - else if ( command == fSetFileNameAllCmd.get() ) { - auto fileName = newValues; - fManager->SetNtupleFileName(fileName); + + if ( command == fListCmd.get() ) { + auto onlyIfActive = G4UIcommand::ConvertToBool(parameters[0]); + fManager->ListNtuple(onlyIfActive); + return; } } diff --git a/source/analysis/management/src/G4P1Messenger.cc b/source/analysis/management/src/G4P1Messenger.cc deleted file mode 100644 index 70583f5adf..0000000000 --- a/source/analysis/management/src/G4P1Messenger.cc +++ /dev/null @@ -1,340 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#include "G4P1Messenger.hh" -#include "G4VAnalysisManager.hh" - -#include "G4UIdirectory.hh" -#include "G4UIcommand.hh" -#include "G4UIparameter.hh" - -using namespace G4Analysis; - -//_____________________________________________________________________________ -G4P1Messenger::G4P1Messenger(G4VAnalysisManager* manager) - : G4UImessenger(), - fManager(manager) -{ - fHelper = std::make_unique("p1"); - - fDirectory = fHelper->CreateHnDirectory(); - - CreateP1Cmd(); - - SetP1Cmd(); - fSetP1XCmd = fHelper->CreateSetBinsCommand("x", this); - fSetP1YCmd = fHelper->CreateSetValuesCommand("y", this); - - fSetP1TitleCmd = fHelper->CreateSetTitleCommand(this); - fSetP1XAxisCmd = fHelper->CreateSetAxisCommand("x", this); - fSetP1YAxisCmd = fHelper->CreateSetAxisCommand("y", this); - fSetP1XAxisLogCmd = fHelper->CreateSetAxisLogCommand("x", this); - fSetP1YAxisLogCmd = fHelper->CreateSetAxisLogCommand("y", this); -} - -//_____________________________________________________________________________ -G4P1Messenger::~G4P1Messenger() = default; - -// -// private functions -// - -//_____________________________________________________________________________ -void G4P1Messenger::CreateP1Cmd() -{ - auto p1Name = new G4UIparameter("name", 's', false); - p1Name->SetGuidance("Profile name (label)"); - - auto p1Title = new G4UIparameter("title", 's', false); - p1Title->SetGuidance("Profile title"); - - auto p1xNbins0 = new G4UIparameter("xnbins0", 'i', true); - p1xNbins0->SetGuidance("Number of x-bins (default = 100)"); - p1xNbins0->SetGuidance("Can be reset with /analysis/p1/set command"); - p1xNbins0->SetDefaultValue(100); - - auto p1xValMin0 = new G4UIparameter("xvalMin0", 'd', true); - p1xValMin0->SetGuidance("Minimum x-value, expressed in unit (default = 0.)"); - p1xValMin0->SetGuidance("Can be reset with /analysis/p1/set command"); - p1xValMin0->SetDefaultValue(0.); - - auto p1xValMax0 = new G4UIparameter("xvalMax0", 'd', true); - p1xValMax0->SetGuidance("Maximum x-value, expressed in unit (default = 1.)"); - p1xValMax0->SetGuidance("Can be reset with /analysis/p1/set command"); - p1xValMax0->SetDefaultValue(1.); - - auto p1xValUnit0 = new G4UIparameter("xvalUnit0", 's', true); - p1xValUnit0->SetGuidance("The unit applied to filled x-values and xvalMin0, xvalMax0"); - p1xValUnit0->SetDefaultValue("none"); - - auto p1xValFcn0 = new G4UIparameter("xvalFcn0", 's', true); - G4String fcnxGuidance = "The function applied to filled x-values (log, log10, exp, none).\n"; - fcnxGuidance += "Note that the unit parameter cannot be omitted in this case,\n"; - fcnxGuidance += "but none value should be used instead."; - p1xValFcn0->SetGuidance(fcnxGuidance); - p1xValFcn0->SetParameterCandidates("log log10 exp none"); - p1xValFcn0->SetDefaultValue("none"); - - auto p1xValBinScheme0 = new G4UIparameter("xvalBinScheme0", 's', true); - G4String binSchemeGuidance = "The binning scheme (linear, log).\n"; - p1xValBinScheme0->SetParameterCandidates("linear log"); - binSchemeGuidance - += "Note that the unit and fcn parameters cannot be omitted in this case,\n"; - binSchemeGuidance += "but none value should be used instead."; - p1xValBinScheme0->SetGuidance(binSchemeGuidance); - p1xValBinScheme0->SetDefaultValue("linear"); - - auto p1yValMin0 = new G4UIparameter("yvalMin0", 'd', true); - p1yValMin0->SetGuidance("Minimum y-value, expressed in unit (default = 0.)"); - p1yValMin0->SetGuidance("Can be reset with /analysis/p1/set command"); - p1yValMin0->SetDefaultValue(0.); - - auto p1yValMax0 = new G4UIparameter("yvalMax0", 'd', true); - p1yValMax0->SetGuidance("Maximum y-value, expressed in unit (default = 1.)"); - p1yValMax0->SetGuidance("Can be reset with /analysis/p1/set command"); - p1yValMax0->SetDefaultValue(1.); - - auto p1yValUnit0 = new G4UIparameter("yvalUnit0", 's', true); - p1yValUnit0->SetGuidance("The unit applied to filled y-values and yvalMin0, yvalMax0"); - p1yValUnit0->SetDefaultValue("none"); - - auto p1yValFcn0 = new G4UIparameter("yvalFcn0", 's', true); - G4String fcnyGuidance = "The function applied to filled y-values (log, log10, exp, none).\n"; - fcnyGuidance += "Note that the unit parameter cannot be omitted in this case,\n"; - fcnyGuidance += "but none value should be used instead."; - p1yValFcn0->SetGuidance(fcnyGuidance); - p1yValFcn0->SetParameterCandidates("log log10 exp none"); - p1yValFcn0->SetDefaultValue("none"); - - fCreateP1Cmd = std::make_unique("/analysis/p1/create", this); - fCreateP1Cmd->SetGuidance("Create 1D profile"); - fCreateP1Cmd->SetParameter(p1Name); - fCreateP1Cmd->SetParameter(p1Title); - fCreateP1Cmd->SetParameter(p1xNbins0); - fCreateP1Cmd->SetParameter(p1xValMin0); - fCreateP1Cmd->SetParameter(p1xValMax0); - fCreateP1Cmd->SetParameter(p1xValUnit0); - fCreateP1Cmd->SetParameter(p1xValFcn0); - fCreateP1Cmd->SetParameter(p1xValBinScheme0); - fCreateP1Cmd->SetParameter(p1yValMin0); - fCreateP1Cmd->SetParameter(p1yValMax0); - fCreateP1Cmd->SetParameter(p1yValUnit0); - fCreateP1Cmd->SetParameter(p1yValFcn0); - fCreateP1Cmd->AvailableForStates(G4State_PreInit, G4State_Idle); -} - - -//_____________________________________________________________________________ -void G4P1Messenger::SetP1Cmd() -{ - auto p1Id = new G4UIparameter("id", 'i', false); - p1Id->SetGuidance("Profile id"); - p1Id->SetParameterRange("id>=0"); - - auto p1xNbins = new G4UIparameter("xnbins", 'i', false); - p1xNbins->SetGuidance("Number of x-bins"); - - auto p1xValMin = new G4UIparameter("xvalMin", 'd', false); - p1xValMin->SetGuidance("Minimum x-value, expressed in unit"); - - auto p1xValMax = new G4UIparameter("xvalMax", 'd', false); - p1xValMax->SetGuidance("Maximum x-value, expressed in unit"); - - auto p1xValUnit = new G4UIparameter("xvalUnit", 's', true); - p1xValUnit->SetGuidance("The unit applied to filled x-values and xvalMin0, xvalMax0"); - p1xValUnit->SetDefaultValue("none"); - - auto p1xValFcn = new G4UIparameter("xvalFcn", 's', true); - p1xValFcn->SetParameterCandidates("log log10 exp none"); - G4String fcnxGuidance = "The function applied to filled x-values (log, log10, exp, none).\n"; - fcnxGuidance += "Note that the unit parameter cannot be omitted in this case,\n"; - fcnxGuidance += "but none value should be used instead."; - p1xValFcn->SetGuidance(fcnxGuidance); - p1xValFcn->SetDefaultValue("none"); - - auto p1xValBinScheme = new G4UIparameter("xvalBinScheme", 's', true); - G4String binSchemeGuidance = "The binning scheme (linear, log).\n"; - p1xValBinScheme->SetParameterCandidates("linear log"); - binSchemeGuidance - += "Note that the unit and fcn parameters cannot be omitted in this case,\n"; - binSchemeGuidance += "but none value should be used instead."; - p1xValBinScheme->SetGuidance(binSchemeGuidance); - p1xValBinScheme->SetDefaultValue("linear"); - - auto p1yValMin = new G4UIparameter("yvalMin", 'd', true); - p1yValMin->SetGuidance("Minimum y-value, expressed in unit"); - - auto p1yValMax = new G4UIparameter("yvalMax", 'd', true); - p1yValMax->SetGuidance("Maximum y-value, expressed in unit"); - - auto p1yValUnit = new G4UIparameter("yvalUnit", 's', true); - p1yValUnit->SetGuidance("The unit applied to filled y-values and yvalMin0, yvalMax0"); - p1yValUnit->SetDefaultValue("none"); - - auto p1yValFcn = new G4UIparameter("yvalFcn", 's', true); - p1yValFcn->SetParameterCandidates("log log10 exp none"); - G4String fcnyGuidance = "The function applied to filled y-values (log, log10, exp, none).\n"; - fcnyGuidance += "Note that the unit parameter cannot be omitted in this case,\n"; - fcnyGuidance += "but none value should be used instead."; - p1yValFcn->SetGuidance(fcnyGuidance); - p1yValFcn->SetDefaultValue("none"); - - fSetP1Cmd = std::make_unique("/analysis/p1/set", this); - fSetP1Cmd->SetGuidance("Set parameters for the 1D profile of given id:"); - fSetP1Cmd->SetGuidance(" nbins; xvalMin; xvalMax; xunit; xfunction; xbinScheme"); - fSetP1Cmd->SetGuidance(" yvalMin; yvalMax; yunit; yfunction"); - fSetP1Cmd->SetParameter(p1Id); - fSetP1Cmd->SetParameter(p1xNbins); - fSetP1Cmd->SetParameter(p1xValMin); - fSetP1Cmd->SetParameter(p1xValMax); - fSetP1Cmd->SetParameter(p1xValUnit); - fSetP1Cmd->SetParameter(p1xValFcn); - fSetP1Cmd->SetParameter(p1xValBinScheme); - fSetP1Cmd->SetParameter(p1yValMin); - fSetP1Cmd->SetParameter(p1yValMax); - fSetP1Cmd->SetParameter(p1yValUnit); - fSetP1Cmd->SetParameter(p1yValFcn); - fSetP1Cmd->AvailableForStates(G4State_PreInit, G4State_Idle); -} - -// -// public functions -// - -//_____________________________________________________________________________ -void G4P1Messenger::SetNewValue(G4UIcommand* command, G4String newValues) -{ - // tokenize parameters in a vector - std::vector parameters; - G4Analysis::Tokenize(newValues, parameters); - // check consistency - if ( parameters.size() != command->GetParameterEntries() ) { - // Should never happen but let's check anyway for consistency - fHelper->WarnAboutParameters(command, parameters.size()); - return; - } - - if ( command == fCreateP1Cmd.get() ) { - auto counter = 0; - auto name = parameters[counter++]; - auto title = parameters[counter++]; - G4AnalysisMessengerHelper::BinData xdata; - fHelper->GetBinData(xdata, parameters, counter); - auto xunit = GetUnitValue(xdata.fSunit); - G4AnalysisMessengerHelper::ValueData ydata; - fHelper->GetValueData(ydata, parameters, counter); - auto yunit = GetUnitValue(ydata.fSunit); - fManager->CreateP1(name, title, - xdata.fNbins, xdata.fVmin*xunit, xdata.fVmax*xunit, - ydata.fVmin*yunit, ydata.fVmax*yunit, - xdata.fSunit, ydata.fSunit, - xdata.fSfcn, ydata.fSfcn, - xdata.fSbinScheme); - } - else if ( command == fSetP1Cmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - G4AnalysisMessengerHelper::BinData xdata; - fHelper->GetBinData(xdata, parameters, counter); - auto xunit = GetUnitValue(xdata.fSunit); - G4AnalysisMessengerHelper::ValueData ydata; - fHelper->GetValueData(ydata, parameters, counter); - auto yunit = GetUnitValue(ydata.fSunit); - fManager->SetP1(id, - xdata.fNbins, xdata.fVmin*xunit, xdata.fVmax*xunit, - ydata.fVmin*yunit, ydata.fVmax*yunit, - xdata.fSunit, ydata.fSunit, - xdata.fSfcn, ydata.fSfcn, - xdata.fSbinScheme); - } - else if ( command == fSetP1XCmd.get() ) { - // Save values - auto counter = 0; - fXId = G4UIcommand::ConvertToInt(parameters[counter++]); - fHelper->GetBinData(fXData, parameters, counter); - // Set values - // (another set may follow if setY is also called) - auto xunit = GetUnitValue(fXData.fSunit); - fManager->SetP1(fXId, - fXData.fNbins, fXData.fVmin*xunit, fXData.fVmax*xunit, - 0., 0., - fXData.fSunit, "none", - fXData.fSfcn, "none", - fXData.fSbinScheme); - } - else if ( command == fSetP1YCmd.get() ) { - // Check if setX command was called - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - if ( fXId == -1 || fXId != id ) { - fHelper->WarnAboutSetCommands(); - return; - } - auto xunit = GetUnitValue(fXData.fSunit); - G4AnalysisMessengerHelper::ValueData ydata; - fHelper->GetValueData(ydata, parameters, counter); - auto yunit = GetUnitValue(ydata.fSunit); - fManager->SetP1(id, - fXData.fNbins, fXData.fVmin*xunit, fXData.fVmax*xunit, - ydata.fVmin*yunit, ydata.fVmax*yunit, - fXData.fSunit, ydata.fSunit, - fXData.fSfcn, ydata.fSfcn, - fXData.fSbinScheme); - fXId = -1; - } - else if ( command == fSetP1TitleCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto title = parameters[counter++]; - fManager->SetP1Title(id, title); - } - else if ( command == fSetP1XAxisCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto xaxis = parameters[counter++]; - fManager->SetP1XAxisTitle(id, xaxis); - } - else if ( command == fSetP1YAxisCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto yaxis = parameters[counter++]; - fManager->SetP1YAxisTitle(id, yaxis); - } - else if ( command == fSetP1XAxisLogCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto xaxisLog = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager->SetP1XAxisIsLog(id, xaxisLog); - } - else if ( command == fSetP1YAxisLogCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto yaxisLog = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager->SetP1YAxisIsLog(id, yaxisLog); - } -} diff --git a/source/analysis/management/src/G4P2Messenger.cc b/source/analysis/management/src/G4P2Messenger.cc deleted file mode 100644 index ce1ced8f06..0000000000 --- a/source/analysis/management/src/G4P2Messenger.cc +++ /dev/null @@ -1,434 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -// Author: Ivana Hrivnacova, 24/07/2014 (ivana@ipno.in2p3.fr) - -#include "G4P2Messenger.hh" -#include "G4VAnalysisManager.hh" - -#include "G4UIdirectory.hh" -#include "G4UIcommand.hh" -#include "G4UIparameter.hh" - -using namespace G4Analysis; - -//_____________________________________________________________________________ -G4P2Messenger::G4P2Messenger(G4VAnalysisManager* manager) - : G4UImessenger(), - fManager(manager) -{ - fHelper = std::make_unique("p2"); - - fDirectory = fHelper->CreateHnDirectory(); - - CreateP2Cmd(); - - SetP2Cmd(); - fSetP2XCmd = fHelper->CreateSetBinsCommand("x", this); - fSetP2YCmd = fHelper->CreateSetBinsCommand("y", this); - fSetP2ZCmd = fHelper->CreateSetValuesCommand("z", this); - - fSetP2TitleCmd = fHelper->CreateSetTitleCommand(this); - fSetP2XAxisCmd = fHelper->CreateSetAxisCommand("x", this); - fSetP2YAxisCmd = fHelper->CreateSetAxisCommand("y", this); - fSetP2ZAxisCmd = fHelper->CreateSetAxisCommand("z", this); - fSetP2XAxisLogCmd = fHelper->CreateSetAxisLogCommand("x", this); - fSetP2YAxisLogCmd = fHelper->CreateSetAxisLogCommand("y", this); - fSetP2ZAxisLogCmd = fHelper->CreateSetAxisLogCommand("z", this); -} - -//_____________________________________________________________________________ -G4P2Messenger::~G4P2Messenger() = default; - -// -// private functions -// - -//_____________________________________________________________________________ -void G4P2Messenger::CreateP2Cmd() -{ - auto p2Name = new G4UIparameter("name", 's', false); - p2Name->SetGuidance("Profile name (label)"); - - auto p2Title = new G4UIparameter("title", 's', false); - p2Title->SetGuidance("Profile title"); - - auto p2xNbins0 = new G4UIparameter("xnbins0", 'i', true); - p2xNbins0->SetGuidance("Number of x-bins (default = 100)"); - p2xNbins0->SetGuidance("Can be reset with /analysis/p2/set command"); - p2xNbins0->SetDefaultValue(100); - - auto p2xValMin0 = new G4UIparameter("xvalMin0", 'd', true); - p2xValMin0->SetGuidance("Minimum x-value, expressed in unit (default = 0.)"); - p2xValMin0->SetGuidance("Can be reset with /analysis/p2/set command"); - p2xValMin0->SetDefaultValue(0.); - - auto p2xValMax0 = new G4UIparameter("xvalMax0", 'd', true); - p2xValMax0->SetGuidance("Maximum x-value, expressed in unit (default = 1.)"); - p2xValMax0->SetGuidance("Can be reset with /analysis/p2/set command"); - p2xValMax0->SetDefaultValue(1.); - - auto p2xValUnit0 = new G4UIparameter("xvalUnit0", 's', true); - p2xValUnit0->SetGuidance("The unit applied to filled x-values and xvalMin0, xvalMax0"); - p2xValUnit0->SetDefaultValue("none"); - - auto p2xValFcn0 = new G4UIparameter("xvalFcn0", 's', true); - G4String fcnxGuidance = "The function applied to filled x-values (log, log10, exp, none)."; - p2xValFcn0->SetGuidance(fcnxGuidance); - p2xValFcn0->SetParameterCandidates("log log10 exp none"); - p2xValFcn0->SetDefaultValue("none"); - - auto p2xValBinScheme0 = new G4UIparameter("xvalBinScheme0", 's', true); - G4String binSchemeGuidance = "The binning scheme (linear, log)."; - p2xValBinScheme0->SetParameterCandidates("linear log"); - p2xValBinScheme0->SetGuidance(binSchemeGuidance); - p2xValBinScheme0->SetDefaultValue("linear"); - - auto p2yNbins0 = new G4UIparameter("ynbins0", 'i', true); - p2yNbins0->SetGuidance("Number of y-bins (default = 100)"); - p2yNbins0->SetGuidance("Can be reset with /analysis/p2/set command"); - p2yNbins0->SetDefaultValue(100); - - auto p2yValMin0 = new G4UIparameter("yvalMin0", 'd', true); - p2yValMin0->SetGuidance("Minimum y-value, expressed in unit (default = 0.)"); - p2yValMin0->SetGuidance("Can be reset with /analysis/p2/set command"); - p2yValMin0->SetDefaultValue(0.); - - auto p2yValMax0 = new G4UIparameter("yvalMax0", 'd', true); - p2yValMax0->SetGuidance("Maximum y-value, expressed in unit (default = 1.)"); - p2yValMax0->SetGuidance("Can be reset with /analysis/p2/set command"); - p2yValMax0->SetDefaultValue(1.); - - auto p2yValUnit0 = new G4UIparameter("yvalUnit0", 's', true); - p2yValUnit0->SetGuidance("The unit applied to filled y-values and yvalMin0, yvalMax0"); - p2yValUnit0->SetDefaultValue("none"); - - auto p2yValFcn0 = new G4UIparameter("yvalFcn0", 's', true); - G4String fcnyGuidance = "The function applied to filled y-values (log, log10, exp, none)."; - p2yValFcn0->SetGuidance(fcnyGuidance); - p2yValFcn0->SetParameterCandidates("log log10 exp none"); - p2yValFcn0->SetDefaultValue("none"); - - auto p2yValBinScheme0 = new G4UIparameter("yvalBinScheme0", 's', true); - p2yValBinScheme0->SetParameterCandidates("linear log"); - p2yValBinScheme0->SetGuidance(binSchemeGuidance); - p2yValBinScheme0->SetDefaultValue("linear"); - - auto p2zValMin0 = new G4UIparameter("zvalMin0", 'd', true); - p2zValMin0->SetGuidance("Minimum z-value, expressed in unit (default = 0.)"); - p2zValMin0->SetGuidance("Can be reset with /analysis/p2/set command"); - p2zValMin0->SetDefaultValue(0.); - - auto p2zValMax0 = new G4UIparameter("zvalMax0", 'd', true); - p2zValMax0->SetGuidance("Maximum z-value, expressed in unit (default = 1.)"); - p2zValMax0->SetGuidance("Can be reset with /analysis/p2/set command"); - p2zValMax0->SetDefaultValue(1.); - - auto p2zValUnit0 = new G4UIparameter("zvalUnit0", 's', true); - p2zValUnit0->SetGuidance("The unit applied to filled z-values and zvalMin0, zvalMax0"); - p2zValUnit0->SetDefaultValue("none"); - - auto p2zValFcn0 = new G4UIparameter("zvalFcn0", 's', true); - G4String fcnzGuidance = "The function applied to filled z-values (log, log10, exp, none)."; - p2zValFcn0->SetGuidance(fcnzGuidance); - p2zValFcn0->SetParameterCandidates("log log10 exp none"); - p2zValFcn0->SetDefaultValue("none"); - - fCreateP2Cmd = std::make_unique("/analysis/p2/create", this); - fCreateP2Cmd->SetGuidance("Create 2D profile"); - fCreateP2Cmd->SetParameter(p2Name); - fCreateP2Cmd->SetParameter(p2Title); - fCreateP2Cmd->SetParameter(p2xNbins0); - fCreateP2Cmd->SetParameter(p2xValMin0); - fCreateP2Cmd->SetParameter(p2xValMax0); - fCreateP2Cmd->SetParameter(p2xValUnit0); - fCreateP2Cmd->SetParameter(p2xValFcn0); - fCreateP2Cmd->SetParameter(p2xValBinScheme0); - fCreateP2Cmd->SetParameter(p2yNbins0); - fCreateP2Cmd->SetParameter(p2yValMin0); - fCreateP2Cmd->SetParameter(p2yValMax0); - fCreateP2Cmd->SetParameter(p2yValUnit0); - fCreateP2Cmd->SetParameter(p2yValFcn0); - fCreateP2Cmd->SetParameter(p2yValBinScheme0); - fCreateP2Cmd->SetParameter(p2zValMin0); - fCreateP2Cmd->SetParameter(p2zValMax0); - fCreateP2Cmd->SetParameter(p2zValUnit0); - fCreateP2Cmd->SetParameter(p2zValFcn0); - fCreateP2Cmd->AvailableForStates(G4State_PreInit, G4State_Idle); -} - - -//_____________________________________________________________________________ -void G4P2Messenger::SetP2Cmd() -{ - auto p2Id = new G4UIparameter("id", 'i', false); - p2Id->SetGuidance("Profile id"); - p2Id->SetParameterRange("id>=0"); - - auto p2xNbins = new G4UIparameter("xnbins", 'i', false); - p2xNbins->SetGuidance("Number of x-bins"); - - auto p2xValMin = new G4UIparameter("xvalMin", 'd', false); - p2xValMin->SetGuidance("Minimum x-value, expressed in unit"); - - auto p2xValMax = new G4UIparameter("xvalMax", 'd', false); - p2xValMax->SetGuidance("Maximum x-value, expressed in unit"); - - auto p2xValUnit = new G4UIparameter("xvalUnit", 's', true); - p2xValUnit->SetGuidance("The unit applied to filled x-values and xvalMin0, xvalMax0"); - p2xValUnit->SetDefaultValue("none"); - - auto p2xValFcn = new G4UIparameter("xvalFcn", 's', true); - p2xValFcn->SetParameterCandidates("log log10 exp none"); - G4String fcnxGuidance = "The function applied to filled x-values (log, log10, exp, none)."; - p2xValFcn->SetGuidance(fcnxGuidance); - p2xValFcn->SetDefaultValue("none"); - - auto p2xValBinScheme = new G4UIparameter("xvalBinScheme", 's', true); - G4String binSchemeGuidance = "The binning scheme (linear, log)."; - p2xValBinScheme->SetParameterCandidates("linear log"); - p2xValBinScheme->SetGuidance(binSchemeGuidance); - p2xValBinScheme->SetDefaultValue("linear"); - - auto p2yNbins = new G4UIparameter("nybins", 'i', true); - p2yNbins->SetGuidance("Number of y-bins"); - - auto p2yValMin = new G4UIparameter("yvalMin", 'd', true); - p2yValMin->SetGuidance("Minimum y-value, expressed in unit"); - - auto p2yValMax = new G4UIparameter("yvalMax", 'd', true); - p2yValMax->SetGuidance("Maximum y-value, expressed in unit"); - - auto p2yValUnit = new G4UIparameter("yvalUnit", 's', true); - p2yValUnit->SetGuidance("The unit applied to filled y-values and yvalMin0, yvalMax0"); - p2yValUnit->SetDefaultValue("none"); - - auto p2yValFcn = new G4UIparameter("yvalFcn", 's', true); - p2yValFcn->SetParameterCandidates("log log10 exp none"); - G4String fcnyGuidance = "The function applied to filled y-values (log, log10, exp, none)."; - p2yValFcn->SetGuidance(fcnyGuidance); - p2yValFcn->SetDefaultValue("none"); - - auto p2yValBinScheme = new G4UIparameter("yvalBinScheme", 's', true); - p2yValBinScheme->SetParameterCandidates("linear log"); - p2yValBinScheme->SetGuidance(binSchemeGuidance); - p2yValBinScheme->SetDefaultValue("linear"); - - auto p2zValMin = new G4UIparameter("zvalMin", 'd', true); - p2zValMin->SetGuidance("Minimum z-value, expressed in unit"); - - auto p2zValMax = new G4UIparameter("zvalMax", 'd', true); - p2zValMax->SetGuidance("Maximum z-value, expressed in unit"); - - auto p2zValUnit = new G4UIparameter("zvalUnit", 's', true); - p2zValUnit->SetGuidance("The unit applied to filled z-values and zvalMin0, zvalMax0"); - p2zValUnit->SetDefaultValue("none"); - - auto p2zValFcn = new G4UIparameter("zvalFcn", 's', true); - p2zValFcn->SetParameterCandidates("log log10 exp none"); - G4String fcnzGuidance = "The function applied to filled z-values (log, log10, exp, none)."; - p2zValFcn->SetGuidance(fcnzGuidance); - p2zValFcn->SetDefaultValue("none"); - - fSetP2Cmd = std::make_unique("/analysis/p2/set", this); - fSetP2Cmd->SetGuidance("Set parameters for the 2D profile of given id:"); - fSetP2Cmd->SetGuidance(" nxbins; xvalMin; xvalMax; xunit; xbinScheme"); - fSetP2Cmd->SetGuidance(" nybins; yvalMin; yvalMax; yunit; ybinScheme"); - fSetP2Cmd->SetGuidance(" zvalMin; zvalMax; zunit; zfunction"); - fSetP2Cmd->SetParameter(p2Id); - fSetP2Cmd->SetParameter(p2xNbins); - fSetP2Cmd->SetParameter(p2xValMin); - fSetP2Cmd->SetParameter(p2xValMax); - fSetP2Cmd->SetParameter(p2xValUnit); - fSetP2Cmd->SetParameter(p2xValFcn); - fSetP2Cmd->SetParameter(p2xValBinScheme); - fSetP2Cmd->SetParameter(p2yNbins); - fSetP2Cmd->SetParameter(p2yValMin); - fSetP2Cmd->SetParameter(p2yValMax); - fSetP2Cmd->SetParameter(p2yValUnit); - fSetP2Cmd->SetParameter(p2yValFcn); - fSetP2Cmd->SetParameter(p2yValBinScheme); - fSetP2Cmd->SetParameter(p2zValMin); - fSetP2Cmd->SetParameter(p2zValMax); - fSetP2Cmd->SetParameter(p2zValUnit); - fSetP2Cmd->SetParameter(p2zValFcn); - fSetP2Cmd->AvailableForStates(G4State_PreInit, G4State_Idle); -} - - -// -// public functions -// - -//_____________________________________________________________________________ -void G4P2Messenger::SetNewValue(G4UIcommand* command, G4String newValues) -{ - // tokenize parameters in a vector - std::vector parameters; - G4Analysis::Tokenize(newValues, parameters); - // check consistency - if ( parameters.size() != command->GetParameterEntries() ) { - // Should never happen but let's check anyway for consistency - fHelper->WarnAboutParameters(command, parameters.size()); - return; - } - - if ( command == fCreateP2Cmd.get() ) { - auto counter = 0; - auto name = parameters[counter++]; - auto title = parameters[counter++]; - G4AnalysisMessengerHelper::BinData xdata; - fHelper->GetBinData(xdata, parameters, counter); - auto xunit = GetUnitValue(xdata.fSunit); - G4AnalysisMessengerHelper::BinData ydata; - fHelper->GetBinData(ydata, parameters, counter); - auto yunit = GetUnitValue(ydata.fSunit); - G4AnalysisMessengerHelper::ValueData zdata; - fHelper->GetValueData(zdata, parameters, counter); - auto zunit = GetUnitValue(zdata.fSunit); - fManager->CreateP2(name, title, - xdata.fNbins, xdata.fVmin*xunit, xdata.fVmax*xunit, - ydata.fNbins, ydata.fVmin*yunit, ydata.fVmax*yunit, - zdata.fVmin*zunit, zdata.fVmax*zunit, - xdata.fSunit, ydata.fSunit, zdata.fSunit, - xdata.fSfcn, ydata.fSfcn, zdata.fSfcn, - xdata.fSbinScheme, ydata.fSbinScheme); - } - else if ( command == fSetP2Cmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - G4AnalysisMessengerHelper::BinData xdata; - fHelper->GetBinData(xdata, parameters, counter); - auto xunit = GetUnitValue(xdata.fSunit); - G4AnalysisMessengerHelper::BinData ydata; - fHelper->GetBinData(ydata, parameters, counter); - auto yunit = GetUnitValue(ydata.fSunit); - G4AnalysisMessengerHelper::ValueData zdata; - fHelper->GetValueData(zdata, parameters, counter); - auto zunit = GetUnitValue(zdata.fSunit); - fManager->SetP2(id, - xdata.fNbins, xdata.fVmin*xunit, xdata.fVmax*xunit, - ydata.fNbins, ydata.fVmin*yunit, ydata.fVmax*yunit, - zdata.fVmin*zunit, zdata.fVmax*zunit, - xdata.fSunit, ydata.fSunit, zdata.fSunit, - xdata.fSfcn, ydata.fSfcn, zdata.fSfcn, - xdata.fSbinScheme, ydata.fSbinScheme); - } - else if ( command == fSetP2XCmd.get() ) { - // Only save values - auto counter = 0; - fXId = G4UIcommand::ConvertToInt(parameters[counter++]); - fHelper->GetBinData(fXData, parameters, counter); - } - else if ( command == fSetP2YCmd.get() ) { - // Save values - auto counter = 0; - fYId = G4UIcommand::ConvertToInt(parameters[counter++]); - // Check if setX command was called - if ( fXId == -1 || fXId != fYId ) { - fHelper->WarnAboutSetCommands(); - return; - } - fHelper->GetBinData(fYData, parameters, counter); - // Set values - // (another set may follow if setZ is also called) - auto xunit = GetUnitValue(fXData.fSunit); - auto yunit = GetUnitValue(fYData.fSunit); - fManager->SetP2(fYId, - fXData.fNbins, fXData.fVmin*xunit, fXData.fVmax*xunit, - fYData.fNbins, fYData.fVmin*yunit, fYData.fVmax*yunit, - 0., 0., - fXData.fSunit, fYData.fSunit, "none", - fXData.fSfcn, fYData.fSfcn, "none", - fXData.fSbinScheme, fYData.fSbinScheme); - } - else if ( command == fSetP2ZCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - // Check if setX and setY command was called - if ( fXId == -1 || fXId != id || - fYId == -1 || fYId != id ) { - fHelper->WarnAboutSetCommands(); - return; - } - auto xunit = GetUnitValue(fXData.fSunit); - auto yunit = GetUnitValue(fYData.fSunit); - G4AnalysisMessengerHelper::ValueData zdata; - fHelper->GetValueData(zdata, parameters, counter); - auto zunit = GetUnitValue(zdata.fSunit); - fManager->SetP2(id, - fXData.fNbins, fXData.fVmin*xunit, fXData.fVmax*xunit, - fYData.fNbins, fYData.fVmin*yunit, fYData.fVmax*yunit, - zdata.fVmin*zunit, zdata.fVmax*zunit, - fXData.fSunit, fYData.fSunit, zdata.fSunit, - fXData.fSfcn, fYData.fSfcn, zdata.fSfcn, - fXData.fSbinScheme, fYData.fSbinScheme); - fXId = -1; - fYId = -1; - } - else if ( command == fSetP2TitleCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto title = parameters[counter++]; - fManager->SetP2Title(id, title); - } - else if ( command == fSetP2XAxisCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto xaxis = parameters[counter++]; - fManager->SetP2XAxisTitle(id, xaxis); - } - else if ( command == fSetP2YAxisCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto yaxis = parameters[counter++]; - fManager->SetP2YAxisTitle(id, yaxis); - } - else if ( command == fSetP2ZAxisCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto zaxis = parameters[counter++]; - fManager->SetP2ZAxisTitle(id, zaxis); - } - else if ( command == fSetP2XAxisLogCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto xaxisLog = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager->SetP2XAxisIsLog(id, xaxisLog); - } - else if ( command == fSetP2YAxisLogCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto yaxisLog = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager->SetP2YAxisIsLog(id, yaxisLog); - } - else if ( command == fSetP2ZAxisLogCmd.get() ) { - auto counter = 0; - auto id = G4UIcommand::ConvertToInt(parameters[counter++]); - auto zaxisLog = G4UIcommand::ConvertToBool(parameters[counter++]); - fManager->SetP2ZAxisIsLog(id, zaxisLog); - } -} diff --git a/source/analysis/management/src/G4VAnalysisManager.cc b/source/analysis/management/src/G4VAnalysisManager.cc index 674387195c..3f23963f4a 100644 --- a/source/analysis/management/src/G4VAnalysisManager.cc +++ b/source/analysis/management/src/G4VAnalysisManager.cc @@ -30,18 +30,20 @@ #include "G4AnalysisMessenger.hh" #include "G4AnalysisUtilities.hh" #include "G4HnManager.hh" -#include "G4VH1Manager.hh" -#include "G4VH2Manager.hh" -#include "G4VH3Manager.hh" -#include "G4VP1Manager.hh" -#include "G4VP2Manager.hh" #include "G4VNtupleManager.hh" +#include "G4VNtupleFileManager.hh" #include "G4VFileManager.hh" #include "G4NtupleBookingManager.hh" #include "G4Threading.hh" +#include "G4AutoLock.hh" using namespace G4Analysis; +namespace { + //Mutex to lock master manager when merging histograms + G4Mutex registerWorkerMutex = G4MUTEX_INITIALIZER; +} + namespace { //_____________________________________________________________________________ @@ -57,62 +59,159 @@ void NtupleMergingWarning(std::string_view className, } // -// protected methods +// ctor/dtor // //_____________________________________________________________________________ G4VAnalysisManager::G4VAnalysisManager(const G4String& type) : fState(type, ! G4Threading::IsWorkerThread()) { - fMessenger = std::make_unique(this); - fNtupleBookingManager = std::make_shared(fState); + fMessenger = std::make_unique(this); + fNtupleBookingManager = std::make_shared(fState); + + // Set master/worker instances + // used only in "FromUI" functions + if ( ! G4Threading::IsWorkerThread() ) { + fgMasterInstance = this; + } + else { + if (fgMasterInstance != nullptr) { + G4AutoLock lock(®isterWorkerMutex); + fgMasterInstance->fWorkerManagers.push_back(this); + lock.unlock(); + } + } } //_____________________________________________________________________________ G4VAnalysisManager::~G4VAnalysisManager() = default; +// +// private methods +// + //_____________________________________________________________________________ -void G4VAnalysisManager::SetH1Manager(G4VH1Manager* h1Manager) +G4bool G4VAnalysisManager::WriteFromUI() +{ +// Write is performed on workers first, then on master + + if (! fState.GetIsMaster() ) return true; + + auto result = true; + + // Process first all workers + for (auto workerManger : fWorkerManagers) { + // Update G4Threading + auto g4ThreadingValue = G4Threading::G4GetThreadId(); + G4Threading::G4SetThreadId(workerManger->fState.GetThreadId()); + + result &= workerManger->Write(); + + // Set G4Threading back + G4Threading::G4SetThreadId(g4ThreadingValue); + } + + // Process write on master + result &= Write(); + + return result; +} + +//_____________________________________________________________________________ +G4bool G4VAnalysisManager::CloseFileFromUI(G4bool reset) +{ +// Close file is performed on workers first, then on master + + if (! fState.GetIsMaster() ) return true; + + auto result = true; + + // Process first all workers + for (auto workerManger : fWorkerManagers) { + // Update G4Threading + auto g4ThreadingValue = G4Threading::G4GetThreadId(); + G4Threading::G4SetThreadId(workerManger->fState.GetThreadId()); + + result &= workerManger->CloseFile(reset); + + // Set G4Threading back + G4Threading::G4SetThreadId(g4ThreadingValue); + } + + // Process write on master + result &= CloseFile(reset); + + return result; +} + +//_____________________________________________________________________________ +G4bool G4VAnalysisManager::ResetFromUI() +{ +// Reset file is performed on workers first, then on master + + if (! fState.GetIsMaster() ) return true; + + auto result = true; + + // Process first all workers + for (auto workerManger : fWorkerManagers) { + // Update G4Threading + auto g4ThreadingValue = G4Threading::G4GetThreadId(); + G4Threading::G4SetThreadId(workerManger->fState.GetThreadId()); + + result &= workerManger->Reset(); + + // Set G4Threading back + G4Threading::G4SetThreadId(g4ThreadingValue); + } + + // Process write on master + result &= Reset(); + + return result; +} + +// +// protected methods +// + +//_____________________________________________________________________________ +void G4VAnalysisManager::SetH1Manager(G4VTBaseHnManager* h1Manager) { fVH1Manager.reset(h1Manager); fH1HnManager = h1Manager->GetHnManager(); - fMessenger->SetH1HnManager(*fH1HnManager); if (fVFileManager != nullptr ) fH1HnManager->SetFileManager(fVFileManager); } //_____________________________________________________________________________ -void G4VAnalysisManager::SetH2Manager(G4VH2Manager* h2Manager) +void G4VAnalysisManager::SetH2Manager(G4VTBaseHnManager* h2Manager) { fVH2Manager.reset(h2Manager); fH2HnManager = h2Manager->GetHnManager(); - fMessenger->SetH2HnManager(*fH2HnManager); if (fVFileManager != nullptr ) fH2HnManager->SetFileManager(fVFileManager); } //_____________________________________________________________________________ -void G4VAnalysisManager::SetH3Manager(G4VH3Manager* h3Manager) +void G4VAnalysisManager::SetH3Manager(G4VTBaseHnManager* h3Manager) { fVH3Manager.reset(h3Manager); fH3HnManager = h3Manager->GetHnManager(); - fMessenger->SetH3HnManager(*fH3HnManager); if (fVFileManager != nullptr ) fH3HnManager->SetFileManager(fVFileManager); } //_____________________________________________________________________________ -void G4VAnalysisManager::SetP1Manager(G4VP1Manager* p1Manager) +void G4VAnalysisManager::SetP1Manager(G4VTBaseHnManager* p1Manager) { fVP1Manager.reset(p1Manager); fP1HnManager = p1Manager->GetHnManager(); - fMessenger->SetP1HnManager(*fP1HnManager); if (fVFileManager != nullptr ) fP1HnManager->SetFileManager(fVFileManager); } //_____________________________________________________________________________ -void G4VAnalysisManager::SetP2Manager(G4VP2Manager* p2Manager) +void G4VAnalysisManager::SetP2Manager(G4VTBaseHnManager* p2Manager) { fVP2Manager.reset(p2Manager); fP2HnManager = p2Manager->GetHnManager(); - fMessenger->SetP2HnManager(*fP2HnManager); if (fVFileManager != nullptr ) fP2HnManager->SetFileManager(fVFileManager); } @@ -124,6 +223,13 @@ void G4VAnalysisManager::SetNtupleManager(std::shared_ptr ntup fVNtupleManager->SetFirstNtupleColumnId(fNtupleBookingManager->GetFirstNtupleColumnId()); } +//_____________________________________________________________________________ +void G4VAnalysisManager::SetNtupleFileManager( + std::shared_ptr ntupleFileManager) +{ + fVNtupleFileManager = std::move(ntupleFileManager); +} + //_____________________________________________________________________________ void G4VAnalysisManager::SetFileManager(std::shared_ptr fileManager) { @@ -136,12 +242,6 @@ void G4VAnalysisManager::SetFileManager(std::shared_ptr fileMana if ( fP2HnManager != nullptr ) fP2HnManager->SetFileManager(std::move(fileManager)); } -//_____________________________________________________________________________ -void G4VAnalysisManager::SetPlotManager(std::shared_ptr plotManager) -{ - fPlotManager = std::move(plotManager); -} - //_____________________________________________________________________________ G4bool G4VAnalysisManager::WriteAscii(const G4String& fileName) { @@ -152,8 +252,8 @@ G4bool G4VAnalysisManager::WriteAscii(const G4String& fileName) // Replace or add file extension .ascii G4String name(fileName); - if ( name.find(".") != std::string::npos ) { - name.erase(name.find("."), name.length()); + if (name.find('.') != std::string::npos) { + name.erase(name.find('.'), name.length()); } name.append(".ascii"); @@ -184,7 +284,7 @@ G4VAnalysisManager::GetFileManager(const G4String& fileName) { // Check if file type corresponds the manager output type G4String extension = GetExtension(fileName); - if ( extension.size() && extension != GetFileType() ) { + if ((extension.size() != 0u) && extension != GetFileType()) { Warn( "The file extension differs from " + GetFileType() + " output type.\n" + GetFileType() + " output type will be used.", @@ -201,16 +301,21 @@ G4VAnalysisManager::GetFileManager(const G4String& fileName) //_____________________________________________________________________________ G4bool G4VAnalysisManager::OpenFile(const G4String& fileName) { + // Protection against opening file twice + // (Seems to happen when opening file via UI command after the first run) + if (IsOpenFile()) { + // G4cout << "Skipping OpenFile. File is already open" << G4endl; + return true; + } + if ( fileName != "" ) { return OpenFileImpl(fileName); } - else { - if ( fVFileManager->GetFileName() == "" ) { - Warn("Cannot open file. File name is not defined.", fkClass, "OpenFile"); - return false; - } - return OpenFileImpl(fVFileManager->GetFileName()); + if (fVFileManager->GetFileName() == "") { + Warn("Cannot open file. File name is not defined.", fkClass, "OpenFile"); + return false; } + return OpenFileImpl(fVFileManager->GetFileName()); } //_____________________________________________________________________________ @@ -223,18 +328,35 @@ G4bool G4VAnalysisManager::Write() result &= PlotImpl(); } + // Increment cycle number + fState.IncrementCycle(); + return result; } //_____________________________________________________________________________ G4bool G4VAnalysisManager::CloseFile(G4bool reset) { - return CloseFileImpl(reset); + auto result = CloseFileImpl(reset); + + // Notify about new cycle + fState.ResetCycle(); + if (fVNtupleManager != nullptr) { + fVNtupleManager->SetNewCycle(false); + } + + return result; } //_____________________________________________________________________________ G4bool G4VAnalysisManager::Reset() { + // Notify about new cycle + // (as reset causes deleting ntuples) + if (fVNtupleManager != nullptr) { + fVNtupleManager->SetNewCycle(true); + } + return ResetImpl(); } @@ -326,12 +448,12 @@ G4int G4VAnalysisManager::CreateH1(const G4String& name, const G4String& title, const G4String& unitName, const G4String& fcnName, const G4String& binSchemeName) { - if ( ! CheckName(name, "H1") ) return kInvalidId; - if ( ! CheckNbins(nbins) ) return kInvalidId; - if ( ! CheckMinMax(xmin, xmax, fcnName, binSchemeName) ) return kInvalidId; + std::array bins = { + G4HnDimension(nbins, xmin, xmax)}; + std::array info = { + G4HnDimensionInformation(unitName, fcnName, binSchemeName) }; - return fVH1Manager->CreateH1(name, title, nbins, xmin, xmax, - unitName, fcnName, binSchemeName); + return fVH1Manager->Create(name, title, bins, info); } //_____________________________________________________________________________ @@ -339,10 +461,12 @@ G4int G4VAnalysisManager::CreateH1(const G4String& name, const G4String& title, const std::vector& edges, const G4String& unitName, const G4String& fcnName) { - if ( ! CheckName(name, "H1") ) return kInvalidId; - if ( ! CheckEdges(edges) ) return kInvalidId; + std::array bins = { + G4HnDimension(edges)}; + std::array info = { + G4HnDimensionInformation(unitName, fcnName, "user")}; - return fVH1Manager->CreateH1(name, title, edges, unitName, fcnName); + return fVH1Manager->Create(name, title, bins, info); } //_____________________________________________________________________________ @@ -355,18 +479,14 @@ G4int G4VAnalysisManager::CreateH2(const G4String& name, const G4String& title, const G4String& ybinSchemeName) { - if ( ! CheckName(name, "H2") ) return kInvalidId; + std::array bins = { + G4HnDimension(nxbins, xmin, xmax), + G4HnDimension(nybins, ymin, ymax) }; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName, xbinSchemeName), + G4HnDimensionInformation(yunitName, yfcnName, ybinSchemeName)}; - if ( ! CheckNbins(nxbins) ) return kInvalidId; - if ( ! CheckMinMax(xmin, xmax, xfcnName, xbinSchemeName) ) return kInvalidId; - - if ( ! CheckNbins(nybins) ) return kInvalidId; - if ( ! CheckMinMax(ymin, ymax, yfcnName, ybinSchemeName) ) return kInvalidId; - - return fVH2Manager->CreateH2(name, title, - nxbins, xmin, xmax, nybins, ymin, ymax, - xunitName, yunitName, xfcnName, yfcnName, - xbinSchemeName, ybinSchemeName); + return fVH2Manager->Create(name, title, bins, info); } //_____________________________________________________________________________ @@ -377,14 +497,13 @@ G4int G4VAnalysisManager::CreateH2(const G4String& name, const G4String& title, const G4String& xfcnName, const G4String& yfcnName) { - if ( ! CheckName(name, "H2") ) return kInvalidId; + std::array bins = { + G4HnDimension(xedges), G4HnDimension(yedges)}; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName, "user"), + G4HnDimensionInformation(yunitName, yfcnName, "user")}; - if ( ! CheckEdges(xedges) ) return kInvalidId; - if ( ! CheckEdges(yedges) ) return kInvalidId; - - return fVH2Manager->CreateH2(name, title, - xedges, yedges, - xunitName, yunitName, xfcnName, yfcnName); + return fVH2Manager->Create(name, title, bins, info); } //_____________________________________________________________________________ @@ -401,23 +520,16 @@ G4int G4VAnalysisManager::CreateH3(const G4String& name, const G4String& title, const G4String& zbinSchemeName) { - if ( ! CheckName(name, "H3") ) return kInvalidId; + std::array bins = { + G4HnDimension(nxbins, xmin, xmax), + G4HnDimension(nybins, ymin, ymax), + G4HnDimension(nzbins, zmin, zmax)}; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName, xbinSchemeName), + G4HnDimensionInformation(yunitName, yfcnName, ybinSchemeName), + G4HnDimensionInformation(zunitName, zfcnName, zbinSchemeName)}; - if ( ! CheckNbins(nxbins) ) return kInvalidId; - if ( ! CheckMinMax(xmin, xmax, xfcnName, xbinSchemeName) ) return kInvalidId; - - if ( ! CheckNbins(nybins) ) return kInvalidId; - if ( ! CheckMinMax(ymin, ymax, yfcnName, ybinSchemeName) ) return kInvalidId; - - if ( ! CheckNbins(nzbins) ) return kInvalidId; - if ( ! CheckMinMax(zmin, zmax, zfcnName, zbinSchemeName) ) return kInvalidId; - - return fVH3Manager->CreateH3(name, title, - nxbins, xmin, xmax, nybins, ymin, ymax, - nzbins, zmin, zmax, - xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName, - xbinSchemeName, ybinSchemeName, zbinSchemeName); + return fVH3Manager->Create(name, title, bins, info); } //_____________________________________________________________________________ @@ -431,16 +543,14 @@ G4int G4VAnalysisManager::CreateH3(const G4String& name, const G4String& title, const G4String& zfcnName) { - if ( ! CheckName(name, "H3") ) return kInvalidId; + std::array bins = { + G4HnDimension(xedges), G4HnDimension(yedges), G4HnDimension(zedges) }; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName, "user"), + G4HnDimensionInformation(yunitName, yfcnName, "user"), + G4HnDimensionInformation(zunitName, zfcnName, "user")}; - if ( ! CheckEdges(xedges) ) return kInvalidId; - if ( ! CheckEdges(yedges) ) return kInvalidId; - if ( ! CheckEdges(zedges) ) return kInvalidId; - - return fVH3Manager->CreateH3(name, title, - xedges, yedges, zedges, - xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName); + return fVH3Manager->Create(name, title, bins, info); } //_____________________________________________________________________________ @@ -449,10 +559,12 @@ G4bool G4VAnalysisManager::SetH1(G4int id, const G4String& unitName, const G4String& fcnName, const G4String& binSchemeName) { - if ( ! CheckNbins(nbins) ) return kInvalidId; - if ( ! CheckMinMax(xmin, xmax, fcnName, binSchemeName) ) return kInvalidId; + std::array bins = { + G4HnDimension(nbins, xmin, xmax)}; + std::array info = { + G4HnDimensionInformation(unitName, fcnName, binSchemeName) }; - return fVH1Manager->SetH1(id, nbins, xmin, xmax, unitName, fcnName, binSchemeName); + return fVH1Manager->Set(id, bins, info); } //_____________________________________________________________________________ @@ -460,9 +572,12 @@ G4bool G4VAnalysisManager::SetH1(G4int id, const std::vector& edges, const G4String& unitName, const G4String& fcnName) { - if ( ! CheckEdges(edges) ) return kInvalidId; + std::array bins = { + G4HnDimension(edges)}; + std::array info = { + G4HnDimensionInformation(unitName, fcnName, "user")}; - return fVH1Manager->SetH1(id, edges, unitName, fcnName); + return fVH1Manager->Set(id, bins, info); } //_____________________________________________________________________________ @@ -474,15 +589,14 @@ G4bool G4VAnalysisManager::SetH2(G4int id, const G4String& xbinSchemeName, const G4String& ybinSchemeName) { - if ( ! CheckNbins(nxbins) ) return kInvalidId; - if ( ! CheckMinMax(xmin, xmax, xfcnName, xbinSchemeName) ) return kInvalidId; + std::array bins = { + G4HnDimension(nxbins, xmin, xmax), + G4HnDimension(nybins, ymin, ymax) }; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName, xbinSchemeName), + G4HnDimensionInformation(yunitName, yfcnName, ybinSchemeName)}; - if ( ! CheckNbins(nybins) ) return kInvalidId; - if ( ! CheckMinMax(ymin, ymax, yfcnName, ybinSchemeName) ) return kInvalidId; - - return fVH2Manager->SetH2(id, nxbins, xmin, xmax, nybins, ymin, ymax, - xunitName, yunitName, xfcnName, yfcnName, - xbinSchemeName, ybinSchemeName); + return fVH2Manager->Set(id, bins, info); } //_____________________________________________________________________________ @@ -492,11 +606,13 @@ G4bool G4VAnalysisManager::SetH2(G4int id, const G4String& xunitName, const G4String& yunitName, const G4String& xfcnName, const G4String& yfcnName) { - if ( ! CheckEdges(xedges) ) return kInvalidId; - if ( ! CheckEdges(yedges) ) return kInvalidId; + std::array bins = { + G4HnDimension(xedges), G4HnDimension(yedges)}; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName, "user"), + G4HnDimensionInformation(yunitName, yfcnName, "user")}; - return fVH2Manager->SetH2(id, xedges, yedges, - xunitName, yunitName, xfcnName, yfcnName); + return fVH2Manager->Set(id, bins, info); } //_____________________________________________________________________________ @@ -512,21 +628,16 @@ G4bool G4VAnalysisManager::SetH3(G4int id, const G4String& ybinSchemeName, const G4String& zbinSchemeName) { - if ( ! CheckNbins(nxbins) ) return kInvalidId; - if ( ! CheckMinMax(xmin, xmax, xfcnName, xbinSchemeName) ) return kInvalidId; + std::array bins = { + G4HnDimension(nxbins, xmin, xmax), + G4HnDimension(nybins, ymin, ymax), + G4HnDimension(nzbins, zmin, zmax)}; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName, xbinSchemeName), + G4HnDimensionInformation(yunitName, yfcnName, ybinSchemeName), + G4HnDimensionInformation(zunitName, zfcnName, zbinSchemeName)}; - if ( ! CheckNbins(nybins) ) return kInvalidId; - if ( ! CheckMinMax(ymin, ymax, yfcnName, ybinSchemeName) ) return kInvalidId; - - if ( ! CheckNbins(nzbins) ) return kInvalidId; - if ( ! CheckMinMax(zmin, zmax, zfcnName, zbinSchemeName) ) return kInvalidId; - - return fVH3Manager->SetH3(id, - nxbins, xmin, xmax, nybins, ymin, ymax, - nzbins, zmin, zmax, - xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName, - xbinSchemeName, ybinSchemeName, zbinSchemeName); + return fVH3Manager->Set(id, bins, info); } //_____________________________________________________________________________ @@ -539,31 +650,32 @@ G4bool G4VAnalysisManager::SetH3(G4int id, const G4String& xfcnName, const G4String& yfcnName, const G4String& zfcnName) { - if ( ! CheckEdges(xedges) ) return kInvalidId; - if ( ! CheckEdges(yedges) ) return kInvalidId; - if ( ! CheckEdges(zedges) ) return kInvalidId; + std::array bins = { + G4HnDimension(xedges), G4HnDimension(yedges), G4HnDimension(zedges) }; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName, "user"), + G4HnDimensionInformation(yunitName, yfcnName, "user"), + G4HnDimensionInformation(zunitName, zfcnName, "user")}; - return fVH3Manager->SetH3(id, xedges, yedges, zedges, - xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName); + return fVH3Manager->Set(id, bins, info); } //_____________________________________________________________________________ G4bool G4VAnalysisManager::ScaleH1(G4int id, G4double factor) { - return fVH1Manager->ScaleH1(id, factor); + return fVH1Manager->Scale(id, factor); } //_____________________________________________________________________________ G4bool G4VAnalysisManager::ScaleH2(G4int id, G4double factor) { - return fVH2Manager->ScaleH2(id, factor); + return fVH2Manager->Scale(id, factor); } //_____________________________________________________________________________ G4bool G4VAnalysisManager::ScaleH3(G4int id, G4double factor) { - return fVH3Manager->ScaleH3(id, factor); + return fVH3Manager->Scale(id, factor); } //_____________________________________________________________________________ @@ -574,17 +686,14 @@ G4int G4VAnalysisManager::CreateP1(const G4String& name, const G4String& title, const G4String& xfcnName, const G4String& yfcnName, const G4String& xbinSchemeName) { - if ( ! CheckName(name, "P1") ) return kInvalidId; - if ( ! CheckNbins(nbins) ) return kInvalidId; - if ( ! CheckMinMax(xmin, xmax, xfcnName, xbinSchemeName) ) return kInvalidId; - if ( ymin != 0. || ymax != 0. ) { - // Do not check default values - if ( ! CheckMinMax(ymin, ymax) ) return kInvalidId; - } + std::array bins = { + G4HnDimension(nbins, xmin, xmax), + G4HnDimension(0, ymin, ymax) }; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName, xbinSchemeName), + G4HnDimensionInformation(yunitName, yfcnName)}; - return fVP1Manager->CreateP1(name, title, nbins, xmin, xmax, ymin, ymax, - xunitName, yunitName, xfcnName, yfcnName, - xbinSchemeName); + return fVP1Manager->Create(name, title, bins, info); } //_____________________________________________________________________________ @@ -594,15 +703,13 @@ G4int G4VAnalysisManager::CreateP1(const G4String& name, const G4String& title, const G4String& xunitName, const G4String& yunitName, const G4String& xfcnName, const G4String& yfcnName) { - if ( ! CheckName(name, "P1") ) return kInvalidId; - if ( ! CheckEdges(edges) ) return kInvalidId; - if ( ymin != 0. || ymax != 0. ) { - // Do not check default values - if ( ! CheckMinMax(ymin, ymax) ) return kInvalidId; - } + std::array bins = { + G4HnDimension(edges), G4HnDimension(0, ymin, ymax)}; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName), + G4HnDimensionInformation(yunitName, yfcnName)}; - return fVP1Manager->CreateP1(name, title, edges, ymin, ymax, - xunitName, yunitName, xfcnName, yfcnName); + return fVP1Manager->Create(name, title, bins, info); } //_____________________________________________________________________________ @@ -617,21 +724,16 @@ G4int G4VAnalysisManager::CreateP2(const G4String& name, const G4String& title, const G4String& xbinSchemeName, const G4String& ybinSchemeName) { - if ( ! CheckName(name, "P2") ) return kInvalidId; - if ( ! CheckNbins(nxbins) ) return kInvalidId; - if ( ! CheckMinMax(xmin, xmax, xfcnName, xbinSchemeName) ) return kInvalidId; - if ( ! CheckMinMax(ymin, ymax, yfcnName, xbinSchemeName) ) return kInvalidId; - if ( zmin != 0. || zmax != 0. ) { - // Do not check default values - if ( ! CheckMinMax(zmin, zmax) ) return kInvalidId; - } + std::array bins = { + G4HnDimension(nxbins, xmin, xmax), + G4HnDimension(nybins, ymin, ymax), + G4HnDimension(0, zmin, zmax)}; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName, xbinSchemeName), + G4HnDimensionInformation(yunitName, yfcnName, ybinSchemeName), + G4HnDimensionInformation(zunitName, zfcnName)}; - return fVP2Manager->CreateP2(name, title, - nxbins, xmin, xmax, nybins, ymin, ymax, - zmin, zmax, - xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName, - xbinSchemeName, ybinSchemeName); + return fVP2Manager->Create(name, title, bins, info); } //_____________________________________________________________________________ @@ -644,17 +746,14 @@ G4int G4VAnalysisManager::CreateP2(const G4String& name, const G4String& title, const G4String& xfcnName, const G4String& yfcnName, const G4String& zfcnName) { - if ( ! CheckName(name, "P2") ) return kInvalidId; - if ( ! CheckEdges(xedges) ) return kInvalidId; - if ( ! CheckEdges(yedges) ) return kInvalidId; - if ( zmin != 0. || zmax != 0. ) { - // Do not check default values - if ( ! CheckMinMax(zmin, zmax) ) return kInvalidId; - } + std::array bins = { + G4HnDimension(xedges), G4HnDimension(yedges), G4HnDimension(0, zmin, zmax)}; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName), + G4HnDimensionInformation(yunitName, yfcnName), + G4HnDimensionInformation(zunitName, zfcnName)}; - return fVP2Manager->CreateP2(name, title, xedges, yedges, zmin, zmax, - xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName); + return fVP2Manager->Create(name, title, bins, info); } //_____________________________________________________________________________ @@ -665,16 +764,14 @@ G4bool G4VAnalysisManager::SetP1(G4int id, const G4String& xfcnName, const G4String& yfcnName, const G4String& xbinSchemeName) { - if ( ! CheckNbins(nbins) ) return kInvalidId; - if ( ! CheckMinMax(xmin, xmax, xfcnName, xbinSchemeName) ) return kInvalidId; - if ( ymin != 0. || ymax != 0. ) { - // Do not check default values - if ( ! CheckMinMax(ymin, ymax) ) return kInvalidId; - } + std::array bins = { + G4HnDimension(nbins, xmin, xmax), + G4HnDimension(0, ymin, ymax) }; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName, xbinSchemeName), + G4HnDimensionInformation(yunitName, yfcnName)}; - return fVP1Manager->SetP1(id, nbins, xmin, xmax, ymin, ymax, - xunitName, yunitName, xfcnName, yfcnName, - xbinSchemeName); + return fVP1Manager->Set(id, bins, info); } //_____________________________________________________________________________ @@ -684,14 +781,13 @@ G4bool G4VAnalysisManager::SetP1(G4int id, const G4String& xunitName, const G4String& yunitName, const G4String& xfcnName, const G4String& yfcnName) { - if ( ! CheckEdges(edges) ) return kInvalidId; - if ( ymin != 0. || ymax != 0. ) { - // Do not check default values - if ( ! CheckMinMax(ymin, ymax) ) return kInvalidId; - } + std::array bins = { + G4HnDimension(edges), G4HnDimension(0, ymin, ymax)}; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName), + G4HnDimensionInformation(yunitName, yfcnName)}; - return fVP1Manager->SetP1(id, edges, ymin, ymax, - xunitName, yunitName, xfcnName, yfcnName); + return fVP1Manager->Set(id, bins, info); } //_____________________________________________________________________________ @@ -706,20 +802,16 @@ G4bool G4VAnalysisManager::SetP2(G4int id, const G4String& xbinSchemeName, const G4String& ybinSchemeName) { - if ( ! CheckNbins(nxbins) ) return kInvalidId; - if ( ! CheckNbins(nybins) ) return kInvalidId; - if ( ! CheckMinMax(xmin, xmax, xfcnName, xbinSchemeName) ) return kInvalidId; - if ( ! CheckMinMax(ymin, ymax, yfcnName, ybinSchemeName) ) return kInvalidId; - if ( zmin != 0. || zmax != 0. ) { - // Do not check default values - if ( ! CheckMinMax(zmin, zmax) ) return kInvalidId; - } + std::array bins = { + G4HnDimension(nxbins, xmin, xmax), + G4HnDimension(nybins, ymin, ymax), + G4HnDimension(0, zmin, zmax)}; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName, xbinSchemeName), + G4HnDimensionInformation(yunitName, yfcnName, ybinSchemeName), + G4HnDimensionInformation(zunitName, zfcnName)}; - return fVP2Manager->SetP2(id, nxbins, xmin, xmax, nybins, ymin, ymax, - zmin, zmax, - xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName, - xbinSchemeName, ybinSchemeName); + return fVP2Manager->Set(id, bins, info); } //_____________________________________________________________________________ @@ -734,68 +826,56 @@ G4bool G4VAnalysisManager::SetP2(G4int id, const G4String& yfcnName, const G4String& zfcnName) { - if ( ! CheckEdges(xedges) ) return kInvalidId; - if ( ! CheckEdges(yedges) ) return kInvalidId; - if ( zmin != 0. || zmax != 0. ) { - // Do not check default values - if ( ! CheckMinMax(zmin, zmax) ) return kInvalidId; - } + std::array bins = { + G4HnDimension(xedges), G4HnDimension(yedges), G4HnDimension(0, zmin, zmax)}; + std::array info = { + G4HnDimensionInformation(xunitName, xfcnName), + G4HnDimensionInformation(yunitName, yfcnName), + G4HnDimensionInformation(zunitName, zfcnName)}; - return fVP2Manager->SetP2(id, xedges, yedges, zmin, zmax, - xunitName, yunitName, zunitName, - xfcnName, yfcnName, zfcnName); + return fVP2Manager->Set(id, bins, info); } //_____________________________________________________________________________ G4bool G4VAnalysisManager::ScaleP1(G4int id, G4double factor) { - return fVP1Manager->ScaleP1(id, factor); + return fVP1Manager->Scale(id, factor); } //_____________________________________________________________________________ G4bool G4VAnalysisManager::ScaleP2(G4int id, G4double factor) { - return fVP2Manager->ScaleP2(id, factor); + return fVP2Manager->Scale(id, factor); } //_____________________________________________________________________________ G4int G4VAnalysisManager::CreateNtuple(const G4String& name, const G4String& title) { - if ( ! CheckName(name, "Ntuple") ) return kInvalidId; - return fNtupleBookingManager->CreateNtuple(name, title); } //_____________________________________________________________________________ G4int G4VAnalysisManager::CreateNtupleIColumn(const G4String& name) { - if ( ! CheckName(name, "NtupleIColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleIColumn(name, nullptr); } //_____________________________________________________________________________ G4int G4VAnalysisManager::CreateNtupleFColumn(const G4String& name) { - if ( ! CheckName(name, "NtupleFColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleFColumn(name, nullptr); } //_____________________________________________________________________________ G4int G4VAnalysisManager::CreateNtupleDColumn(const G4String& name) { - if ( ! CheckName(name, "NtupleDColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleDColumn(name, nullptr); } //_____________________________________________________________________________ G4int G4VAnalysisManager::CreateNtupleSColumn(const G4String& name) { - if ( ! CheckName(name, "NtupleSColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleSColumn(name, nullptr); } @@ -803,8 +883,6 @@ G4int G4VAnalysisManager::CreateNtupleSColumn(const G4String& name) G4int G4VAnalysisManager::CreateNtupleIColumn(const G4String& name, std::vector& vector) { - if ( ! CheckName(name, "NtupleIColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleIColumn(name, &vector); } @@ -812,8 +890,6 @@ G4int G4VAnalysisManager::CreateNtupleIColumn(const G4String& name, G4int G4VAnalysisManager::CreateNtupleFColumn(const G4String& name, std::vector& vector) { - if ( ! CheckName(name, "NtupleFColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleFColumn(name, &vector); } @@ -821,8 +897,6 @@ G4int G4VAnalysisManager::CreateNtupleFColumn(const G4String& name, G4int G4VAnalysisManager::CreateNtupleDColumn(const G4String& name, std::vector& vector) { - if ( ! CheckName(name, "NtupleDColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleDColumn(name, &vector); } @@ -830,8 +904,6 @@ G4int G4VAnalysisManager::CreateNtupleDColumn(const G4String& name, G4int G4VAnalysisManager::CreateNtupleSColumn(const G4String& name, std::vector& vector) { - if ( ! CheckName(name, "NtupleDColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleSColumn(name, &vector); } @@ -887,8 +959,6 @@ void G4VAnalysisManager::SetBasketEntries(unsigned int /*basketEntries*/) G4int G4VAnalysisManager::CreateNtupleIColumn(G4int ntupleId, const G4String& name) { - if ( ! CheckName(name, "NtupleIColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleIColumn(ntupleId, name, nullptr); } @@ -896,8 +966,6 @@ G4int G4VAnalysisManager::CreateNtupleIColumn(G4int ntupleId, G4int G4VAnalysisManager::CreateNtupleFColumn(G4int ntupleId, const G4String& name) { - if ( ! CheckName(name, "NtupleFColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleFColumn(ntupleId, name, nullptr); } @@ -906,8 +974,6 @@ G4int G4VAnalysisManager::CreateNtupleFColumn(G4int ntupleId, G4int G4VAnalysisManager::CreateNtupleDColumn(G4int ntupleId, const G4String& name) { - if ( ! CheckName(name, "NtupleDColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleDColumn(ntupleId, name, nullptr); } @@ -915,8 +981,6 @@ G4int G4VAnalysisManager::CreateNtupleDColumn(G4int ntupleId, G4int G4VAnalysisManager::CreateNtupleSColumn(G4int ntupleId, const G4String& name) { - if ( ! CheckName(name, "NtupleSColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleSColumn(ntupleId, name, nullptr); } @@ -925,8 +989,6 @@ G4int G4VAnalysisManager::CreateNtupleIColumn(G4int ntupleId, const G4String& name, std::vector& vector) { - if ( ! CheckName(name, "NtupleIColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleIColumn(ntupleId, name, &vector); } @@ -935,8 +997,6 @@ G4int G4VAnalysisManager::CreateNtupleFColumn(G4int ntupleId, const G4String& name, std::vector& vector) { - if ( ! CheckName(name, "NtupleFColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleFColumn(ntupleId, name, &vector); } @@ -945,8 +1005,6 @@ G4int G4VAnalysisManager::CreateNtupleDColumn(G4int ntupleId, const G4String& name, std::vector& vector) { - if ( ! CheckName(name, "NtupleDColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleDColumn(ntupleId, name, &vector); } @@ -955,8 +1013,6 @@ G4int G4VAnalysisManager::CreateNtupleSColumn(G4int ntupleId, const G4String& name, std::vector& vector) { - if ( ! CheckName(name, "NtupleDColumn") ) return kInvalidId; - return fNtupleBookingManager->CreateNtupleSColumn(ntupleId, name, &vector); } @@ -1186,11 +1242,68 @@ G4int G4VAnalysisManager::GetNofP2s() const //_____________________________________________________________________________ G4int G4VAnalysisManager::GetNofNtuples() const { - return fVNtupleManager->GetNofNtuples(); + if (fVNtupleManager != nullptr) { + return fVNtupleManager->GetNofNtuples(); + } + + return 0; } // GetH1Id(), GetH2Id in .icc +//_____________________________________________________________________________ +G4bool G4VAnalysisManager::ListH1(G4bool onlyIfActive) const +{ + return fVH1Manager->List(G4cout, onlyIfActive); +} + +//_____________________________________________________________________________ +G4bool G4VAnalysisManager::ListH2(G4bool onlyIfActive) const +{ + return fVH2Manager->List(G4cout, onlyIfActive); +} + +//_____________________________________________________________________________ +G4bool G4VAnalysisManager::ListH3(G4bool onlyIfActive) const +{ + return fVH3Manager->List(G4cout, onlyIfActive); +} + +//_____________________________________________________________________________ +G4bool G4VAnalysisManager::ListP1(G4bool onlyIfActive) const +{ + return fVP1Manager->List(G4cout, onlyIfActive); +} + +//_____________________________________________________________________________ +G4bool G4VAnalysisManager::ListP2(G4bool onlyIfActive) const +{ + return fVP2Manager->List(G4cout, onlyIfActive); +} + +//_____________________________________________________________________________ +G4bool G4VAnalysisManager::ListNtuple(G4bool onlyIfActive) const +{ + if (fVNtupleManager != nullptr) { + return fVNtupleManager->List(G4cout, onlyIfActive); + } + return false; +} + +//_____________________________________________________________________________ +G4bool G4VAnalysisManager::List(G4bool onlyIfActive) const +{ + auto result = true; + result &= ListH1(onlyIfActive); + result &= ListH2(onlyIfActive); + result &= ListH3(onlyIfActive); + result &= ListP1(onlyIfActive); + result &= ListP2(onlyIfActive); + result &= ListNtuple(onlyIfActive); + + return result; +} + //_____________________________________________________________________________ void G4VAnalysisManager::SetH1Activation(G4int id, G4bool activation) { diff --git a/source/analysis/management/src/G4VAnalysisReader.cc b/source/analysis/management/src/G4VAnalysisReader.cc index f39e72e916..7c23cfdaa0 100644 --- a/source/analysis/management/src/G4VAnalysisReader.cc +++ b/source/analysis/management/src/G4VAnalysisReader.cc @@ -29,11 +29,6 @@ #include "G4VAnalysisReader.hh" #include "G4AnalysisUtilities.hh" #include "G4HnManager.hh" -#include "G4VH1Manager.hh" -#include "G4VH2Manager.hh" -#include "G4VH3Manager.hh" -#include "G4VP1Manager.hh" -#include "G4VP2Manager.hh" #include "G4VRNtupleManager.hh" #include "G4VRFileManager.hh" #include "G4Threading.hh" @@ -53,31 +48,31 @@ G4VAnalysisReader::~G4VAnalysisReader() = default; // //_____________________________________________________________________________ -void G4VAnalysisReader::SetH1Manager(G4VH1Manager* h1Manager) +void G4VAnalysisReader::SetH1Manager(G4VTBaseHnManager<1>* h1Manager) { fVH1Manager.reset(h1Manager); } //_____________________________________________________________________________ -void G4VAnalysisReader::SetH2Manager(G4VH2Manager* h2Manager) +void G4VAnalysisReader::SetH2Manager(G4VTBaseHnManager<2>* h2Manager) { fVH2Manager.reset(h2Manager); } //_____________________________________________________________________________ -void G4VAnalysisReader::SetH3Manager(G4VH3Manager* h3Manager) +void G4VAnalysisReader::SetH3Manager(G4VTBaseHnManager<3>* h3Manager) { fVH3Manager.reset(h3Manager); } //_____________________________________________________________________________ -void G4VAnalysisReader::SetP1Manager(G4VP1Manager* p1Manager) +void G4VAnalysisReader::SetP1Manager(G4VTBaseHnManager<2>* p1Manager) { fVP1Manager.reset(p1Manager); } //_____________________________________________________________________________ -void G4VAnalysisReader::SetP2Manager(G4VP2Manager* p2Manager) +void G4VAnalysisReader::SetP2Manager(G4VTBaseHnManager<3>* p2Manager) { fVP2Manager.reset(p2Manager); } @@ -124,14 +119,11 @@ G4int G4VAnalysisReader::ReadH1(const G4String& h1Name, if ( fileName != "" ) { return ReadH1Impl(h1Name, fileName, dirName, true); } - else { - if ( fVFileManager->GetFileName() == "" ) { - Warn("Cannot get H1 " + h1Name + ". File name has to be set first.", - fkClass, "ReadH1"); - return kInvalidId; - } - return ReadH1Impl(h1Name, fVFileManager->GetFileName(), dirName, false); + if (fVFileManager->GetFileName() == "") { + Warn("Cannot get H1 " + h1Name + ". File name has to be set first.", fkClass, "ReadH1"); + return kInvalidId; } + return ReadH1Impl(h1Name, fVFileManager->GetFileName(), dirName, false); } //_____________________________________________________________________________ @@ -142,14 +134,11 @@ G4int G4VAnalysisReader::ReadH2(const G4String& h2Name, if ( fileName != "" ) { return ReadH2Impl(h2Name, fileName, dirName, true); } - else { - if ( fVFileManager->GetFileName() == "" ) { - Warn("Cannot get H2 " + h2Name + ". File name has to be set first.", - fkClass, "ReadH2"); - return kInvalidId; - } - return ReadH2Impl(h2Name, fVFileManager->GetFileName(), dirName, false); + if (fVFileManager->GetFileName() == "") { + Warn("Cannot get H2 " + h2Name + ". File name has to be set first.", fkClass, "ReadH2"); + return kInvalidId; } + return ReadH2Impl(h2Name, fVFileManager->GetFileName(), dirName, false); } //_____________________________________________________________________________ @@ -160,14 +149,11 @@ G4int G4VAnalysisReader::ReadH3(const G4String& h3Name, if ( fileName != "" ) { return ReadH3Impl(h3Name, fileName, dirName, true); } - else { - if ( fVFileManager->GetFileName() == "" ) { - Warn("Cannot get H3 " + h3Name + ". File name has to be set first.", - fkClass, "ReadH3"); - return kInvalidId; - } - return ReadH3Impl(h3Name, fVFileManager->GetFileName(), dirName, false); + if (fVFileManager->GetFileName() == "") { + Warn("Cannot get H3 " + h3Name + ". File name has to be set first.", fkClass, "ReadH3"); + return kInvalidId; } + return ReadH3Impl(h3Name, fVFileManager->GetFileName(), dirName, false); } //_____________________________________________________________________________ @@ -178,14 +164,11 @@ G4int G4VAnalysisReader::ReadP1(const G4String& p1Name, if ( fileName != "" ) { return ReadP1Impl(p1Name, fileName, dirName, true); } - else { - if ( fVFileManager->GetFileName() == "" ) { - Warn("Cannot get P1 " + p1Name + ". File name has to be set first.", - fkClass, "ReadP1"); - return kInvalidId; - } - return ReadP1Impl(p1Name, fVFileManager->GetFileName(), dirName, false); + if (fVFileManager->GetFileName() == "") { + Warn("Cannot get P1 " + p1Name + ". File name has to be set first.", fkClass, "ReadP1"); + return kInvalidId; } + return ReadP1Impl(p1Name, fVFileManager->GetFileName(), dirName, false); } //_____________________________________________________________________________ @@ -196,14 +179,11 @@ G4int G4VAnalysisReader::ReadP2(const G4String& p2Name, if ( fileName != "" ) { return ReadP2Impl(p2Name, fileName, dirName, true); } - else { - if ( fVFileManager->GetFileName() == "" ) { - Warn("Cannot get P2 " + p2Name + ". File name has to be set first.", - fkClass, "ReadP2"); - return kInvalidId; - } - return ReadP2Impl(p2Name, fVFileManager->GetFileName(), dirName, false); + if (fVFileManager->GetFileName() == "") { + Warn("Cannot get P2 " + p2Name + ". File name has to be set first.", fkClass, "ReadP2"); + return kInvalidId; } + return ReadP2Impl(p2Name, fVFileManager->GetFileName(), dirName, false); } //_____________________________________________________________________________ @@ -273,16 +253,13 @@ G4int G4VAnalysisReader::GetNtuple(const G4String& ntupleName, if ( fileName != "" ) { return fVNtupleManager->ReadNtupleImpl(ntupleName, fileName, dirName, true); } - else { - // Check if fileName was set - if ( fVFileManager->GetFileName() == "" ) { - Warn("Cannot read Ntuple " + ntupleName += ". File name has to be set first.", - fkClass, "ReadNtuple"); - return kInvalidId; - } - return fVNtupleManager->ReadNtupleImpl( - ntupleName, fVFileManager->GetFileName(), dirName, false); + // Check if fileName was set + if (fVFileManager->GetFileName() == "") { + Warn("Cannot read Ntuple " + ntupleName += ". File name has to be set first.", fkClass, + "ReadNtuple"); + return kInvalidId; } + return fVNtupleManager->ReadNtupleImpl(ntupleName, fVFileManager->GetFileName(), dirName, false); } //_____________________________________________________________________________ diff --git a/source/analysis/management/src/G4VFileManager.cc b/source/analysis/management/src/G4VFileManager.cc index 26d495fd4f..dc49ea0c53 100644 --- a/source/analysis/management/src/G4VFileManager.cc +++ b/source/analysis/management/src/G4VFileManager.cc @@ -47,7 +47,7 @@ G4bool G4VFileManager::SetFileName(const G4String& fileName) // Check extension auto name = fileName; auto extension = G4Analysis::GetExtension(fileName); - if ( extension.size() && GetFileType().size() && extension != GetFileType() ) { + if ((extension.size() != 0u) && (GetFileType().size() != 0u) && extension != GetFileType()) { // replace extension name = G4Analysis::GetBaseName(fileName) + "." + GetFileType(); Warn(fileName + " file extension is not valid for " + GetFileType() + " output.\n" + diff --git a/source/analysis/management/src/G4VNtupleFileManager.cc b/source/analysis/management/src/G4VNtupleFileManager.cc index 014c5d4193..2a3951c3f5 100644 --- a/source/analysis/management/src/G4VNtupleFileManager.cc +++ b/source/analysis/management/src/G4VNtupleFileManager.cc @@ -27,9 +27,12 @@ // Author: Ivana Hrivnacova, 15/09/2020 (ivana@ipno.in2p3.fr) #include "G4VNtupleFileManager.hh" + #include "G4AnalysisUtilities.hh" #include "globals.hh" +#include + using namespace G4Analysis; namespace { @@ -46,10 +49,9 @@ void NtupleMergingWarning(std::string_view className, } //_____________________________________________________________________________ -G4VNtupleFileManager::G4VNtupleFileManager(const G4AnalysisManagerState& state, - const G4String& fileType) - : fState(state), - fFileType(fileType) +G4VNtupleFileManager::G4VNtupleFileManager(const G4AnalysisManagerState& state, G4String fileType) + : fState(state), + fFileType(std::move(fileType)) {} ///_____________________________________________________________________________ diff --git a/source/analysis/root/include/G4RootAnalysisManager.hh b/source/analysis/root/include/G4RootAnalysisManager.hh index a979bd57ea..3e438e0c3e 100644 --- a/source/analysis/root/include/G4RootAnalysisManager.hh +++ b/source/analysis/root/include/G4RootAnalysisManager.hh @@ -36,7 +36,6 @@ #include "globals.hh" #include "tools/wroot/ntuple" -#include "tools/histo/hmpi" #include #include @@ -59,7 +58,7 @@ class G4RootAnalysisManager : public G4ToolsAnalysisManager friend class G4ThreadLocalSingleton; public: - virtual ~G4RootAnalysisManager(); + ~G4RootAnalysisManager() override; // Static methods static G4RootAnalysisManager* Instance(); @@ -76,29 +75,19 @@ class G4RootAnalysisManager : public G4ToolsAnalysisManager std::vector::const_iterator EndConstNtuple() const; // MT/MPI - virtual void SetNtupleMerging(G4bool mergeNtuples, - G4int nofReducedNtupleFiles = 0) override; - virtual void SetNtupleRowWise(G4bool rowWise, G4bool rowMode = true) override; - virtual void SetBasketSize(unsigned int basketSize) override; - virtual void SetBasketEntries(unsigned int basketEntries) override; - - protected: - // virtual methods from base class - virtual G4bool OpenFileImpl(const G4String& fileName) override; - virtual G4bool WriteImpl() override; - virtual G4bool CloseFileImpl(G4bool reset) override; - virtual G4bool ResetImpl() override; - virtual G4bool IsOpenFileImpl() const final; + void SetNtupleMerging(G4bool mergeNtuples, G4int nofReducedNtupleFiles = 0) override; + void SetNtupleRowWise(G4bool rowWise, G4bool rowMode = true) override; + void SetBasketSize(unsigned int basketSize) override; + void SetBasketEntries(unsigned int basketEntries) override; private: G4RootAnalysisManager(); // Static data members - inline static G4RootAnalysisManager* fgMasterInstance { nullptr }; inline static G4ThreadLocal G4bool fgIsInstance { false }; static constexpr std::string_view fkClass { "G4RootAnalysisManager" }; - // data members + // Data members std::shared_ptr fFileManager { nullptr }; std::shared_ptr fNtupleFileManager { nullptr }; }; diff --git a/source/analysis/root/include/G4RootAnalysisManager.icc b/source/analysis/root/include/G4RootAnalysisManager.icc index 441b7619f5..d87756479e 100644 --- a/source/analysis/root/include/G4RootAnalysisManager.icc +++ b/source/analysis/root/include/G4RootAnalysisManager.icc @@ -28,13 +28,6 @@ #include "G4RootNtupleFileManager.hh" #include "G4RootFileManager.hh" -//_____________________________________________________________________________ -inline -G4bool G4RootAnalysisManager::IsOpenFileImpl() const -{ - return fFileManager->IsOpenFile(); -} - //_____________________________________________________________________________ inline tools::wroot::ntuple* G4RootAnalysisManager::GetNtuple() const diff --git a/source/analysis/root/include/G4RootAnalysisReader.hh b/source/analysis/root/include/G4RootAnalysisReader.hh index 7293f49f3a..cacb731fbe 100644 --- a/source/analysis/root/include/G4RootAnalysisReader.hh +++ b/source/analysis/root/include/G4RootAnalysisReader.hh @@ -51,7 +51,7 @@ class G4RootAnalysisReader : public G4ToolsAnalysisReader friend class G4ThreadLocalSingleton; public: - virtual ~G4RootAnalysisReader(); + ~G4RootAnalysisReader() override; // Static methods static G4RootAnalysisReader* Instance(); @@ -65,7 +65,7 @@ class G4RootAnalysisReader : public G4ToolsAnalysisReader G4RootAnalysisReader(); // // Virtual methods from base class - virtual G4bool CloseFilesImpl(G4bool reset) final; + G4bool CloseFilesImpl(G4bool reset) final; private: // Static data members diff --git a/source/analysis/root/include/G4RootFileDef.hh b/source/analysis/root/include/G4RootFileDef.hh index 8f0978161e..dfbbd35e04 100644 --- a/source/analysis/root/include/G4RootFileDef.hh +++ b/source/analysis/root/include/G4RootFileDef.hh @@ -24,8 +24,7 @@ // ******************************************************************** // -// Manager class for Root ntuples. -// It implements functions specific to Root ntuples in sequential mode. +// The tuple for root file including its directories // // Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr) diff --git a/source/analysis/root/include/G4RootFileManager.hh b/source/analysis/root/include/G4RootFileManager.hh index 339c676582..7d82bc0b72 100644 --- a/source/analysis/root/include/G4RootFileManager.hh +++ b/source/analysis/root/include/G4RootFileManager.hh @@ -55,16 +55,17 @@ class G4RootFileManager : public G4VTFileManager public: explicit G4RootFileManager(const G4AnalysisManagerState& state); G4RootFileManager() = delete; - virtual ~G4RootFileManager() = default; + ~G4RootFileManager() override = default; using G4BaseFileManager::GetNtupleFileName; using G4VTFileManager::WriteFile; using G4VTFileManager::CloseFile; // Methods to manipulate file from base classes - virtual G4bool OpenFile(const G4String& fileName) final; + G4bool OpenFile(const G4String& fileName) final; - virtual G4String GetFileType() const final { return "root"; } + G4String GetFileType() const final { return "root"; } + G4bool HasCycles() const final { return true; } // Specific methods for files per objects std::shared_ptr CreateNtupleFile(RootNtupleDescription* ntupleDescription, @@ -72,8 +73,8 @@ class G4RootFileManager : public G4VTFileManager std::shared_ptr GetNtupleFile(RootNtupleDescription* ntupleDescription, G4bool perThread = true, G4int mainNumber = -1) const; - G4bool WriteNtupleFile(RootNtupleDescription* ntupleDescription); - G4bool CloseNtupleFile(RootNtupleDescription* ntupleDescription); + G4bool CloseNtupleFile(RootNtupleDescription* ntupleDescription, + G4int mainNumber = -1); // Set methods void SetBasketSize(unsigned int basketSize); @@ -85,9 +86,9 @@ class G4RootFileManager : public G4VTFileManager protected: // Methods derived from templated base class - virtual std::shared_ptr CreateFileImpl(const G4String& fileName) final; - virtual G4bool WriteFileImpl(std::shared_ptr file) final; - virtual G4bool CloseFileImpl(std::shared_ptr file) final; + std::shared_ptr CreateFileImpl(const G4String& fileName) final; + G4bool WriteFileImpl(std::shared_ptr file) final; + G4bool CloseFileImpl(std::shared_ptr file) final; private: // Methods diff --git a/source/analysis/root/include/G4RootHnFileManager.hh b/source/analysis/root/include/G4RootHnFileManager.hh index 060f90abc8..c911069ec2 100644 --- a/source/analysis/root/include/G4RootHnFileManager.hh +++ b/source/analysis/root/include/G4RootHnFileManager.hh @@ -45,13 +45,13 @@ class G4RootHnFileManager : public G4VTHnFileManager explicit G4RootHnFileManager(G4RootFileManager* fileManger) : G4VTHnFileManager(), fFileManager(fileManger) {} G4RootHnFileManager() = delete; - virtual ~G4RootHnFileManager() = default; + ~G4RootHnFileManager() override = default; // Methods for writing objects // Write to a new file (the file is closed after write) - virtual G4bool WriteExtra(HT* ht, const G4String& htName, const G4String& fileName) final; + G4bool WriteExtra(HT* ht, const G4String& htName, const G4String& fileName) final; // Write to the default file (handled with OpenFile()/CloseFile methods) - virtual G4bool Write(HT* ht, const G4String& htName, G4String& fileName) final; + G4bool Write(HT* ht, const G4String& htName, G4String& fileName) final; private: // Methods diff --git a/source/analysis/root/include/G4RootHnFileManager.icc b/source/analysis/root/include/G4RootHnFileManager.icc index 74f0a30188..79e6e22105 100644 --- a/source/analysis/root/include/G4RootHnFileManager.icc +++ b/source/analysis/root/include/G4RootHnFileManager.icc @@ -53,11 +53,11 @@ G4bool G4RootHnFileManager::WriteExtra( // TO DO // rfile->add_ziper('Z', toolx::compress_buffer); // rfile->set_compression(fState.GetCompressionLevel()); - if ( ! rfile ) return false; + if (rfile == nullptr) return false; // no directory supported in this mode auto hdirectory = &(rfile->dir()); - if ( ! hdirectory ) return false; + if (hdirectory == nullptr) return false; // write histo result &= Write(hdirectory, ht, htName); diff --git a/source/analysis/root/include/G4RootHnRFileManager.hh b/source/analysis/root/include/G4RootHnRFileManager.hh index 30ca2c6084..4d5d29ac5f 100644 --- a/source/analysis/root/include/G4RootHnRFileManager.hh +++ b/source/analysis/root/include/G4RootHnRFileManager.hh @@ -52,15 +52,15 @@ class G4RootHnRFileManager : public G4VTHnRFileManager explicit G4RootHnRFileManager(G4RootRFileManager* rfileManger) : G4VTHnRFileManager(), fRFileManager(rfileManger) {} G4RootHnRFileManager() = delete; - virtual ~G4RootHnRFileManager() = default; + ~G4RootHnRFileManager() override = default; // Methods for reading objects - virtual HT* Read(const G4String& htName, const G4String& fileName, - const G4String& dirName, G4bool isUserFileName) final; + HT* Read(const G4String& htName, const G4String& fileName, const G4String& dirName, + G4bool isUserFileName) final; private: // Methods - std::tuple GetBuffer( + tools::rroot::buffer* GetBuffer( const G4String& fileName, const G4String& dirName, const G4String& name); diff --git a/source/analysis/root/include/G4RootHnRFileManager.icc b/source/analysis/root/include/G4RootHnRFileManager.icc index 02d892e53c..aad244c7c1 100644 --- a/source/analysis/root/include/G4RootHnRFileManager.icc +++ b/source/analysis/root/include/G4RootHnRFileManager.icc @@ -27,6 +27,7 @@ // Author: Ivana Hrivnacova, 26/08/2021 (ivana@ipno.in2p3.fr) #include "G4AnalysisUtilities.hh" +#include "G4RootRFileDef.hh" #include "tools/rroot/file" #include "tools/rroot/rall" @@ -35,8 +36,7 @@ //_____________________________________________________________________________ template inline -std::tuple -G4RootHnRFileManager::GetBuffer( +tools::rroot::buffer* G4RootHnRFileManager::GetBuffer( const G4String& fileName, const G4String& dirName, const G4String& objectName) { // Get buffer for reading histogram or profile specified by objectNmae @@ -47,53 +47,62 @@ G4RootHnRFileManager::GetBuffer( G4bool isPerThread = false; // Get or open a file - auto rfile = fRFileManager->GetRFile(fileName, isPerThread); - if ( ! rfile ) { + auto rfileTuple = fRFileManager->GetRFile(fileName, isPerThread); + if (rfileTuple == nullptr) { if ( ! fRFileManager->OpenRFile(fileName, isPerThread) ) { - return std::tuple(nullptr, nullptr); + return nullptr; + } + rfileTuple = fRFileManager->GetRFile(fileName, isPerThread); + } + auto rfile = std::get<0>(*rfileTuple); + + // Get or open a directory if dirName is defined + tools::rroot::TDirectory* histoDirectory = nullptr; + if ( histoDirectory == nullptr ) { + // Retrieve directory only once as analysis manager supports only + // 1 histo directory par file) + if ( ! dirName.empty() ) { + histoDirectory = tools::rroot::find_dir(rfile->dir(), dirName); + if ( histoDirectory != nullptr ) { + std::get<1>(*rfileTuple) = histoDirectory; + } + else { + G4Analysis::Warn( + "Directory " + dirName + " not found in file " + fileName + ".", + fkClass, "ReadNtupleImpl"); + return nullptr; + } } - rfile = fRFileManager->GetRFile(fileName, isPerThread); } // Get key tools::rroot::key* key = nullptr; - tools::rroot::TDirectory* newDir = nullptr; - if ( ! dirName.empty() ) { - newDir = tools::rroot::find_dir(rfile->dir(), dirName); - if ( newDir ) { - key = newDir->find_key(objectName); - } - else { - G4Analysis::Warn( - "Directory " + dirName + " not found in file " + fileName + ".", - fkClass, "GetBuffer"); - return std::tuple(nullptr, nullptr); - } + if ( histoDirectory != nullptr ) { + key = histoDirectory->find_key(objectName); } else { key = rfile->dir().find_key(objectName); } - - if ( ! key ) { + if (key == nullptr) { G4Analysis::Warn( "Key " + objectName + " for Histogram/Profile not found in file " + fileName + ", directory " + dirName, fkClass, "GetBuffer"); - return std::tuple(nullptr, newDir); + return nullptr; } unsigned int size; char* charBuffer = key->get_object_buffer(*rfile, size); - if ( ! charBuffer ) { + if (charBuffer == nullptr) { G4Analysis::Warn( "Cannot get " + objectName + " in file " + fileName, fkClass, "GetBuffer"); - return std::tuple(nullptr, newDir); + return nullptr; } auto verbose = false; - return std::tuple(new tools::rroot::buffer(G4cout, rfile->byte_swap(), size, charBuffer, - key->key_length(), verbose), newDir); + return new tools::rroot::buffer(G4cout, rfile->byte_swap(), size, charBuffer, + key->key_length(), verbose); } //_____________________________________________________________________________ @@ -148,15 +157,13 @@ HT* G4RootHnRFileManager::Read( const G4String& htName, const G4String& fileName, const G4String& dirName, G4bool /*isUserFileName*/) { - auto [buffer, newDir] = GetBuffer(fileName, dirName, htName); + auto buffer = GetBuffer(fileName, dirName, htName); if ( ! buffer ) { - delete newDir; return nullptr; } auto ht = ReadT(buffer); delete buffer; - delete newDir; if ( ! ht ) { G4Analysis::Warn( diff --git a/source/analysis/root/include/G4RootMainNtupleManager.hh b/source/analysis/root/include/G4RootMainNtupleManager.hh index c2acda7f85..6a72994d15 100644 --- a/source/analysis/root/include/G4RootMainNtupleManager.hh +++ b/source/analysis/root/include/G4RootMainNtupleManager.hh @@ -33,13 +33,14 @@ #include "G4BaseAnalysisManager.hh" #include "G4NtupleBookingManager.hh" -#include "G4TNtupleDescription.hh" -#include "G4RootNtupleManager.hh" #include "G4RootFileDef.hh" +#include "G4RootNtupleManager.hh" +#include "G4TNtupleDescription.hh" #include "globals.hh" -#include #include +#include +#include class G4RootFileManager; class G4RootNtupleManager; @@ -53,6 +54,7 @@ class ntuple; // Types alias using RootNtupleDescription = G4TNtupleDescription; +using RootMainNtupleDescription = std::pair>; class G4RootMainNtupleManager : public G4BaseAnalysisManager { @@ -66,7 +68,9 @@ class G4RootMainNtupleManager : public G4BaseAnalysisManager G4bool rowWise, G4int fileNumber, const G4AnalysisManagerState& state); G4RootMainNtupleManager() = delete; - virtual ~G4RootMainNtupleManager() = default; + ~G4RootMainNtupleManager() override = default; + + void CreateNtuplesFromBooking(); protected: // Methods to manipulate ntuples @@ -80,6 +84,10 @@ class G4RootMainNtupleManager : public G4BaseAnalysisManager void SetRowWise(G4bool rowWise); std::shared_ptr GetNtupleFile(RootNtupleDescription* ntupleDescription) const; + // New cycle option + void SetNewCycle(G4bool value); + G4bool GetNewCycle() const; + // Access functions const std::vector& GetNtupleVector() { return fNtupleVector; } @@ -96,12 +104,15 @@ class G4RootMainNtupleManager : public G4BaseAnalysisManager G4bool fRowWise; G4int fFileNumber; std::vector fNtupleVector; - std::vector fNtupleDescriptionVector; + std::vector fNtupleDescriptionVector; + G4bool fNewCycle { false }; }; inline void G4RootMainNtupleManager::SetFileManager( std::shared_ptr fileManager) -{ fFileManager = fileManager; } +{ + fFileManager = std::move(fileManager); +} inline void G4RootMainNtupleManager::SetRowWise(G4bool rowWise) { fRowWise = rowWise; } @@ -109,5 +120,10 @@ inline void G4RootMainNtupleManager::SetRowWise(G4bool rowWise) inline unsigned int G4RootMainNtupleManager::GetBasketEntries() const { return fNtupleBuilder->GetBasketEntries(); } -#endif +inline void G4RootMainNtupleManager::SetNewCycle(G4bool value) +{ fNewCycle = value; } +inline G4bool G4RootMainNtupleManager::GetNewCycle() const +{ return fNewCycle; } + +#endif diff --git a/source/analysis/root/include/G4RootNtupleFileManager.hh b/source/analysis/root/include/G4RootNtupleFileManager.hh index e84f3ba29a..8a3d666381 100644 --- a/source/analysis/root/include/G4RootNtupleFileManager.hh +++ b/source/analysis/root/include/G4RootNtupleFileManager.hh @@ -35,6 +35,7 @@ #include "G4VNtupleFileManager.hh" #include +#include class G4RootFileManager; class G4RootNtupleManager; @@ -42,12 +43,6 @@ class G4RootPNtupleManager; class G4VNtupleManager; class G4NtupleBookingManager; -enum class G4NtupleMergeMode { - kNone, - kMain, - kSlave -}; - class G4RootNtupleFileManager : public G4VNtupleFileManager { friend class G4RootMpiNtupleFileManager; @@ -55,27 +50,26 @@ class G4RootNtupleFileManager : public G4VNtupleFileManager public: explicit G4RootNtupleFileManager(const G4AnalysisManagerState& state); G4RootNtupleFileManager() = delete; - virtual ~G4RootNtupleFileManager(); + ~G4RootNtupleFileManager() override; // MT/MPI - virtual void SetNtupleMerging(G4bool mergeNtuples, - G4int nofReducedNtupleFiles = 0) override; - virtual void SetNtupleRowWise(G4bool rowWise, G4bool rowMode = true) override; - virtual void SetBasketSize(unsigned int basketSize) override; - virtual void SetBasketEntries(unsigned int basketEntries) override; + void SetNtupleMerging(G4bool mergeNtuples, G4int nofReducedNtupleFiles = 0) override; + void SetNtupleRowWise(G4bool rowWise, G4bool rowMode = true) override; + void SetBasketSize(unsigned int basketSize) override; + void SetBasketEntries(unsigned int basketEntries) override; // virtual methods from base class - virtual G4bool ActionAtOpenFile(const G4String& fileName) override; - virtual G4bool ActionAtWrite() override; - virtual G4bool ActionAtCloseFile(G4bool reset) override; - virtual G4bool Reset() override; - virtual G4bool IsNtupleMergingSupported() const override; + G4bool ActionAtOpenFile(const G4String& fileName) override; + G4bool ActionAtWrite() override; + G4bool ActionAtCloseFile() override; + G4bool Reset() override; + G4bool IsNtupleMergingSupported() const override; - virtual std::shared_ptr CreateNtupleManager() override; + std::shared_ptr CreateNtupleManager() override; void SetFileManager(std::shared_ptr fileManager); - G4NtupleMergeMode GetMergeMode() const; + G4NtupleMergeMode GetMergeMode() const override; std::shared_ptr GetNtupleManager() const; private: @@ -102,7 +96,9 @@ class G4RootNtupleFileManager : public G4VNtupleFileManager inline void G4RootNtupleFileManager::SetFileManager( std::shared_ptr fileManager) -{ fFileManager = fileManager; } +{ + fFileManager = std::move(fileManager); +} inline G4NtupleMergeMode G4RootNtupleFileManager::GetMergeMode() const { return fNtupleMergeMode; } diff --git a/source/analysis/root/include/G4RootNtupleManager.hh b/source/analysis/root/include/G4RootNtupleManager.hh index 716435372c..f5e279be06 100644 --- a/source/analysis/root/include/G4RootNtupleManager.hh +++ b/source/analysis/root/include/G4RootNtupleManager.hh @@ -70,17 +70,14 @@ class G4RootNtupleManager : public G4TNtupleManager file); void SetNtupleRowWise(G4bool rowWise, G4bool rowMode); + // New cycle option + void SetNewCycle(G4bool value) final; + // Access functions const std::vector& GetNtupleDescriptionVector() const; std::shared_ptr GetMainNtupleManager(G4int index) const; diff --git a/source/analysis/root/include/G4RootNtupleManager.icc b/source/analysis/root/include/G4RootNtupleManager.icc index 6153d06d3e..a9262f6f47 100644 --- a/source/analysis/root/include/G4RootNtupleManager.icc +++ b/source/analysis/root/include/G4RootNtupleManager.icc @@ -56,7 +56,7 @@ inline G4bool G4TNtupleManager::FillNtupleTCol } auto ntuple = GetNtupleInFunction(ntupleId, "FillNtupleTColumn"); - if ( ! ntuple ) return false; + if (ntuple == nullptr) return false; auto index = columnId - fFirstNtupleColumnId; if ( index < 0 || index >= G4int(ntuple->columns().size()) ) { @@ -69,7 +69,7 @@ inline G4bool G4TNtupleManager::FillNtupleTCol auto icolumn = ntuple->columns()[index]; auto column = dynamic_cast(icolumn); - if ( ! column ) { + if (column == nullptr) { G4Analysis::Warn( "Column type does not match: ntupleId " + to_string(ntupleId) + " columnId " + to_string(columnId) + " value " + value, diff --git a/source/analysis/root/include/G4RootPNtupleDescription.hh b/source/analysis/root/include/G4RootPNtupleDescription.hh index 3e33ea0399..e680edc204 100644 --- a/source/analysis/root/include/G4RootPNtupleDescription.hh +++ b/source/analysis/root/include/G4RootPNtupleDescription.hh @@ -50,20 +50,65 @@ class ntuple; using RootNtupleDescription = G4TNtupleDescription; -struct G4RootPNtupleDescription +class G4RootPNtupleDescription { - G4RootPNtupleDescription(G4NtupleBooking* g4NtupleBooking) - : fDescription(g4NtupleBooking) {} + public: + G4RootPNtupleDescription(G4NtupleBooking* g4NtupleBooking) + : fDescription(g4NtupleBooking) {} - ~G4RootPNtupleDescription() + ~G4RootPNtupleDescription() { - if ( fDescription.fIsNtupleOwner ) delete fNtuple; + if ( fDescription.GetIsNtupleOwner() ) delete fNtuple; } - RootNtupleDescription fDescription; - tools::wroot::imt_ntuple* fNtuple { nullptr }; - tools::wroot::base_pntuple* fBasePNtuple { nullptr }; - std::vector fMainBranches; + // Set methods + void SetNtuple(tools::wroot::imt_ntuple* intuple); + void SetBasePNtuple(tools::wroot::base_pntuple* basePNtuple); + void Reset(); + + // Get methods + RootNtupleDescription& GetDescription(); + tools::wroot::imt_ntuple* GetNtuple() const; + tools::wroot::base_pntuple* GetBasePNtuple() const; + std::vector& GetMainBranches(); + + private: + RootNtupleDescription fDescription; + tools::wroot::imt_ntuple* fNtuple { nullptr }; + tools::wroot::base_pntuple* fBasePNtuple { nullptr }; + std::vector fMainBranches; }; +// inline function + +inline void G4RootPNtupleDescription::SetNtuple( + tools::wroot::imt_ntuple* intuple) +{ fNtuple = intuple; } + +inline void G4RootPNtupleDescription::SetBasePNtuple( + tools::wroot::base_pntuple* basePNtuple) +{ fBasePNtuple = basePNtuple; } + +inline void G4RootPNtupleDescription::Reset() +{ + if ( fDescription.GetIsNtupleOwner() ) delete fNtuple; + fNtuple = nullptr; +} + +inline RootNtupleDescription& +G4RootPNtupleDescription::GetDescription() +{ return fDescription; } + +inline tools::wroot::imt_ntuple* +G4RootPNtupleDescription::GetNtuple() const +{ return fNtuple; } + +inline tools::wroot::base_pntuple* +G4RootPNtupleDescription::GetBasePNtuple() const +{ return fBasePNtuple; } + +inline std::vector& +G4RootPNtupleDescription::GetMainBranches() +{ return fMainBranches; } + #endif diff --git a/source/analysis/root/include/G4RootPNtupleManager.hh b/source/analysis/root/include/G4RootPNtupleManager.hh index 11d1767fbc..01ee593154 100644 --- a/source/analysis/root/include/G4RootPNtupleManager.hh +++ b/source/analysis/root/include/G4RootPNtupleManager.hh @@ -32,6 +32,7 @@ #define G4RootPNtupleManager_h 1 #include "G4BaseNtupleManager.hh" +#include "G4RootMainNtupleManager.hh" #include "G4RootPNtupleDescription.hh" #include "G4AnalysisManagerState.hh" #include "G4AnalysisUtilities.hh" @@ -57,20 +58,25 @@ class imt_ntuple; class mutex : public virtual tools::wroot::imutex { using parent = tools::wroot::imutex; public: - virtual bool lock() { + bool lock() override + { // G4cout << "!!! Mutex lock" << G4endl; m_mutex.lock(); - return true;} - virtual bool unlock() { + return true; + } + bool unlock() override + { m_mutex.unlock(); // G4cout << "!!! Mutex unlock" << G4endl; - return true; } + return true; + } //virtual bool trylock() {return m_mutex.trylock();} public: mutex(G4AutoLock& a_mutex):m_mutex(a_mutex){} - virtual ~mutex() = default; + ~mutex() override = default; + protected: - mutex(const mutex& a_from):parent(a_from),m_mutex(a_from.m_mutex){} + mutex(const mutex& a_from) = default; mutex& operator=(const mutex&){return *this;} protected: G4AutoLock& m_mutex; @@ -87,19 +93,19 @@ class G4RootPNtupleManager : public G4BaseNtupleManager std::shared_ptr main, G4bool rowWise, G4bool rowMode); G4RootPNtupleManager() = delete; - virtual ~G4RootPNtupleManager(); + ~G4RootPNtupleManager() override; private: // Methods to manipulate ntuples void CreateNtupleFromMain(G4RootPNtupleDescription* ntupleDescription, tools::wroot::ntuple* mainNtuple); - // void CreateNtupleFromMain(G4NtupleBooking* g4NtupleBooking, - // tools::wroot::ntuple* mainNtuple); + void CreateNtupleDescriptionsFromBooking(); void CreateNtuplesFromMain(); + void CreateNtuplesIfNeeded(); // Methods to create ntuples // - virtual G4int CreateNtuple(G4NtupleBooking* booking) final; + G4int CreateNtuple(G4NtupleBooking* booking) final; // Methods to fill ntuples // Methods for ntuple with id = FirstNtupleId (from base class) @@ -109,29 +115,35 @@ class G4RootPNtupleManager : public G4BaseNtupleManager using G4BaseNtupleManager::FillNtupleSColumn; using G4BaseNtupleManager::AddNtupleRow; // Methods for ntuple with id > FirstNtupleId (when more ntuples exist) - virtual G4bool FillNtupleIColumn(G4int ntupleId, G4int columnId, G4int value) final; - virtual G4bool FillNtupleFColumn(G4int ntupleId, G4int columnId, G4float value) final; - virtual G4bool FillNtupleDColumn(G4int ntupleId, G4int columnId, G4double value) final; - virtual G4bool FillNtupleSColumn(G4int ntupleId, G4int columnId, - const G4String& value) final; - virtual G4bool AddNtupleRow(G4int ntupleId) final; + G4bool FillNtupleIColumn(G4int ntupleId, G4int columnId, G4int value) final; + G4bool FillNtupleFColumn(G4int ntupleId, G4int columnId, G4float value) final; + G4bool FillNtupleDColumn(G4int ntupleId, G4int columnId, G4double value) final; + G4bool FillNtupleSColumn(G4int ntupleId, G4int columnId, const G4String& value) final; + G4bool AddNtupleRow(G4int ntupleId) final; virtual G4bool Merge() final; - // Clear all data - virtual void Clear() final; + virtual G4bool Reset(); + void Clear() final; // Activation option // - virtual void SetActivation(G4bool activation) final; - virtual void SetActivation(G4int ntupleId, G4bool activation) final; - virtual G4bool GetActivation(G4int ntupleId) const final; + void SetActivation(G4bool activation) final; + void SetActivation(G4int ntupleId, G4bool activation) final; + G4bool GetActivation(G4int ntupleId) const final; + + // New cycle option + void SetNewCycle(G4bool value) final; + G4bool GetNewCycle() const final; // Access methods - virtual G4int GetNofNtuples() const final; + G4int GetNofNtuples() const final; // Set methods void SetNtupleRowWise(G4bool rowWise, G4bool rowMode); + // List ntuples + G4bool List(std::ostream& output, G4bool onlyIfActive = true) final; + private: G4RootPNtupleDescription* GetNtupleDescriptionInFunction(G4int id, std::string_view function, G4bool warn = true) const; @@ -157,6 +169,7 @@ class G4RootPNtupleManager : public G4BaseNtupleManager G4bool fRowWise; G4bool fRowMode; G4bool fCreateNtuples { true }; + G4bool fNewCycle { false }; }; #include "G4RootPNtupleManager.icc" diff --git a/source/analysis/root/include/G4RootPNtupleManager.icc b/source/analysis/root/include/G4RootPNtupleManager.icc index 9fd67eaca9..f0577bf185 100644 --- a/source/analysis/root/include/G4RootPNtupleManager.icc +++ b/source/analysis/root/include/G4RootPNtupleManager.icc @@ -33,10 +33,6 @@ template <> inline G4bool G4RootPNtupleManager::FillNtupleTColumn( G4int ntupleId, G4int columnId, const std::string& value) { - if (fCreateNtuples) { - CreateNtuplesFromMain(); - } - if ( fState.GetIsActivation() && ( ! GetActivation(ntupleId) ) ) { G4cout << "Skipping FillNtupleIColumn for " << ntupleId << G4endl; return false; @@ -48,8 +44,12 @@ inline G4bool G4RootPNtupleManager::FillNtupleTColumn( " value " + G4Analysis::ToString(value)); } + // Creating ntuples on workers is triggered with the first FillColumn + // or AddRow (in only columns of vector type call) + CreateNtuplesIfNeeded(); + auto ntuple = GetNtupleInFunction(ntupleId, "FillNtupleTColumn"); - if ( ! ntuple ) return false; + if (ntuple == nullptr) return false; auto index = columnId - fFirstNtupleColumnId; if ( index < 0 || index >= G4int(ntuple->columns().size()) ) { @@ -62,7 +62,7 @@ inline G4bool G4RootPNtupleManager::FillNtupleTColumn( auto icolumn = ntuple->columns()[index]; auto column = dynamic_cast(icolumn); - if ( ! column ) { + if (column == nullptr) { G4Analysis::Warn( " Column type does not match: ntupleId " + to_string(ntupleId) + " columnId " + to_string(columnId) + " value " + value, @@ -87,9 +87,9 @@ template G4bool G4RootPNtupleManager::FillNtupleTColumn( G4int ntupleId, G4int columnId, const T& value) { - if (fCreateNtuples) { - CreateNtuplesFromMain(); - } + // Creating ntuples on workers is triggered with the first FillColumn + // or AddRow (in only columns of vector type call) + CreateNtuplesIfNeeded(); if ( fState.GetIsActivation() && ( ! GetActivation(ntupleId) ) ) { G4cout << "Skipping FillNtupleIColumn for " << ntupleId << G4endl; diff --git a/source/analysis/root/include/G4RootRFileDef.hh b/source/analysis/root/include/G4RootRFileDef.hh new file mode 100644 index 0000000000..de9aa82180 --- /dev/null +++ b/source/analysis/root/include/G4RootRFileDef.hh @@ -0,0 +1,45 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +// The tuple for root read file including its directories +// +// Author: Ivana Hrivnacova, 13/07/2022 (ivana@ipno.in2p3.fr) + +#ifndef G4RootRFile_h +#define G4RootRFile_h 1 + +namespace tools { +namespace rroot { +class directory; +class file; +} +} + +using G4RootRFile = std::tuple; + +#endif diff --git a/source/analysis/root/include/G4RootRFileManager.hh b/source/analysis/root/include/G4RootRFileManager.hh index 79e25177c4..977788994a 100644 --- a/source/analysis/root/include/G4RootRFileManager.hh +++ b/source/analysis/root/include/G4RootRFileManager.hh @@ -32,44 +32,37 @@ #define G4RootRFileManager_h 1 #include "G4VRFileManager.hh" +#include "G4RootRFileDef.hh" #include "globals.hh" #include #include -namespace tools { -namespace rroot { -class file; -//class directory; -} -} - class G4RootRFileManager : public G4VRFileManager { public: explicit G4RootRFileManager(const G4AnalysisManagerState& state); G4RootRFileManager() = delete; - virtual ~G4RootRFileManager(); + ~G4RootRFileManager() override; - virtual G4String GetFileType() const final { return "Root"; } + G4String GetFileType() const final { return "Root"; } // Methods from base class - virtual void CloseFiles() final {} + void CloseFiles() final {} // Methods to manipulate input files virtual G4bool OpenRFile(const G4String& fileName, G4bool isPerThread); // Get methods - tools::rroot::file* GetRFile(const G4String& fileName, - G4bool isPerThread) const; + G4RootRFile* GetRFile(const G4String& fileName, G4bool isPerThread) const; private: // Static data members static constexpr std::string_view fkClass { "G4RootRFileManager" }; // data members - std::map fRFiles; + std::map fRFiles; }; #endif diff --git a/source/analysis/root/include/G4RootRNtupleManager.hh b/source/analysis/root/include/G4RootRNtupleManager.hh index f60a8d1f2e..184fcfc62f 100644 --- a/source/analysis/root/include/G4RootRNtupleManager.hh +++ b/source/analysis/root/include/G4RootRNtupleManager.hh @@ -38,6 +38,7 @@ #include "tools/rroot/ntuple" #include +#include class G4RootRFileManager; struct G4RootRNtupleDescription; @@ -49,16 +50,16 @@ class G4RootRNtupleManager : public G4TRNtupleManager public: explicit G4RootRNtupleManager(const G4AnalysisManagerState& state); G4RootRNtupleManager() = delete; - virtual ~G4RootRNtupleManager() = default; + ~G4RootRNtupleManager() override = default; private: // Set methods void SetFileManager(std::shared_ptr fileManager); // Methods from the base class - virtual G4int ReadNtupleImpl(const G4String& ntupleName, const G4String& fileName, - const G4String& dirName, G4bool isUserFileName) final; - virtual G4bool GetTNtupleRow(G4TRNtupleDescription* ntupleDescription) final; + G4int ReadNtupleImpl(const G4String& ntupleName, const G4String& fileName, + const G4String& dirName, G4bool isUserFileName) final; + G4bool GetTNtupleRow(G4TRNtupleDescription* ntupleDescription) final; // Static data members static constexpr std::string_view fkClass { "G4RootPNtupleManager" }; @@ -69,7 +70,9 @@ class G4RootRNtupleManager : public G4TRNtupleManager inline void G4RootRNtupleManager::SetFileManager(std::shared_ptr fileManager) -{ fFileManager = fileManager; } +{ + fFileManager = std::move(fileManager); +} #endif diff --git a/source/analysis/root/sources.cmake b/source/analysis/root/sources.cmake index 2ba063823f..212f9ba662 100644 --- a/source/analysis/root/sources.cmake +++ b/source/analysis/root/sources.cmake @@ -20,6 +20,7 @@ geant4_add_module(G4root G4RootPNtupleDescription.hh G4RootPNtupleManager.hh G4RootPNtupleManager.icc + G4RootRFileDef.hh G4RootRFileManager.hh G4RootRNtupleManager.hh g4root_defs.hh diff --git a/source/analysis/root/src/G4RootAnalysisManager.cc b/source/analysis/root/src/G4RootAnalysisManager.cc index 8fd6728f6c..7fe020803e 100644 --- a/source/analysis/root/src/G4RootAnalysisManager.cc +++ b/source/analysis/root/src/G4RootAnalysisManager.cc @@ -54,14 +54,13 @@ G4bool G4RootAnalysisManager::IsInstance() G4RootAnalysisManager::G4RootAnalysisManager() : G4ToolsAnalysisManager("Root") { - if ( ! G4Threading::IsWorkerThread() ) fgMasterInstance = this; - // File manager fFileManager = std::make_shared(fState); SetFileManager(fFileManager); // Ntuple file manager fNtupleFileManager = std::make_shared(fState); + SetNtupleFileManager(fNtupleFileManager); fNtupleFileManager->SetFileManager(fFileManager); fNtupleFileManager->SetBookingManager(fNtupleBookingManager); } @@ -69,135 +68,9 @@ G4RootAnalysisManager::G4RootAnalysisManager() //_____________________________________________________________________________ G4RootAnalysisManager::~G4RootAnalysisManager() { - if ( fState.GetIsMaster() ) fgMasterInstance = nullptr; fgIsInstance = false; } -// -// protected methods -// - -//_____________________________________________________________________________ -G4bool G4RootAnalysisManager::OpenFileImpl(const G4String& fileName) -{ - // Create ntuple manager(s) - // and set it to base class which takes then their ownership - SetNtupleManager(fNtupleFileManager->CreateNtupleManager()); - - auto result = true; - - // Open file - if ( fNtupleFileManager->GetMergeMode() != G4NtupleMergeMode::kSlave ) { - result &= fFileManager->OpenFile(fileName); - } - - // Open ntuple file(s) and create ntuples from bookings - result &= fNtupleFileManager->ActionAtOpenFile(fFileManager->GetFullFileName()); - - return result; -} - -//_____________________________________________________________________________ -G4bool G4RootAnalysisManager::WriteImpl() -{ - - auto result = true; - - Message(kVL4, "write", "files"); - - if ( G4Threading::IsWorkerThread() ) { - result &= G4ToolsAnalysisManager::Merge(); - } - else { - // Open all files registered with objects - fFileManager->OpenFiles(); - - // Write all histograms/profile on master - result &= G4ToolsAnalysisManager::WriteImpl(); - } - - // Ntuples - result &= fNtupleFileManager->ActionAtWrite(); - - // File - if ( fNtupleFileManager->GetMergeMode() != G4NtupleMergeMode::kSlave ) { - // write all open files - result &= fFileManager->WriteFiles(); - } - - // Write ASCII if activated - if ( IsAscii() ) { - result &= WriteAscii(fFileManager->GetFileName()); - } - - Message(kVL3, "write", "files", "", result); - - return result; -} - -//_____________________________________________________________________________ -G4bool G4RootAnalysisManager::CloseFileImpl(G4bool reset) -{ - auto result = true; - - Message(kVL4, "close", "files"); - - if ( reset ) { - if ( ! Reset() ) { - Warn("Resetting data failed", fkClass, "CloseFileImpl"); - result = false; - } - } - - result &= fNtupleFileManager->ActionAtCloseFile(reset); - - if ( fNtupleFileManager->GetMergeMode() != G4NtupleMergeMode::kSlave ) { - // close all open files - result &= fFileManager->CloseFiles(); - } - - // No files clean-up in sequential mode - if ( ! G4Threading::IsMultithreadedApplication() ) return result; - - G4bool isNtupleManagerEmpty = fNtupleBookingManager->IsEmpty(); - - // Delete files if empty in MT mode - if ( ( fState.GetIsMaster() && G4ToolsAnalysisManager::IsEmpty() && - isNtupleManagerEmpty ) || - ( (! fState.GetIsMaster()) && isNtupleManagerEmpty && - fNtupleFileManager->GetMergeMode() == G4NtupleMergeMode::kNone ) ) { - - if ( std::remove(fFileManager->GetFullFileName()) ) { - // std::remove returns 0 when success - Warn( "Removing file " + fFileManager->GetFullFileName() + " failed", - fkClass, "CloseFileImpl"); - result = false; - } - - Message(kVL1, "delete", "empty file", fFileManager->GetFullFileName()); - } - else { - Message(kVL3, "close", "files"); - } - - return result; -} - -//_____________________________________________________________________________ -G4bool G4RootAnalysisManager::ResetImpl() -{ -// Reset histograms and ntuple - - auto result = true; - - result &= G4ToolsAnalysisManager::ResetImpl(); - if ( fNtupleFileManager != nullptr ) { - result &= fNtupleFileManager->Reset(); - } - - return result; -} - // // public methods // diff --git a/source/analysis/root/src/G4RootFileManager.cc b/source/analysis/root/src/G4RootFileManager.cc index e3ed2b739b..160d548e13 100644 --- a/source/analysis/root/src/G4RootFileManager.cc +++ b/source/analysis/root/src/G4RootFileManager.cc @@ -59,7 +59,7 @@ tools::wroot::directory* G4RootFileManager::CreateDirectory( tools::wroot::file* rfile, const G4String& directoryName, [[maybe_unused]] const G4String& objectType) const { - if ( ! rfile ) return nullptr; + if (rfile == nullptr) return nullptr; if ( directoryName == "" ) { // Do not create a new directory if its name is not set @@ -69,13 +69,11 @@ tools::wroot::directory* G4RootFileManager::CreateDirectory( Message(kVL4, "create", "directory for " + objectType, directoryName); auto directory = rfile->dir().mkdir(directoryName); - if ( ! directory ) { + if (directory == nullptr) { Warn("Cannot create directory " + directoryName, fkClass, "CreateDirectory"); return nullptr; } - else { - Message(kVL2, "create", "directory for " + objectType, directoryName); - } + Message(kVL2, "create", "directory for " + objectType, directoryName); return directory; } @@ -88,12 +86,13 @@ G4String G4RootFileManager::GetNtupleFileName( { // get ntuple file name - auto ntupleFileName = ntupleDescription->fFileName; - if ( ntupleFileName.size() ) { + auto ntupleFileName = ntupleDescription->GetFileName(); + if (ntupleFileName.size() != 0u) { if ( perThread ) { ntupleFileName = GetTnFileName(ntupleFileName, GetFileType()); } - } else { + } + else { // get default file name ntupleFileName = GetFullFileName(fFileName, perThread); } @@ -129,7 +128,7 @@ G4RootFileManager::CreateFileImpl(const G4String& fileName) // create histo directory tools::wroot::directory* hdirectory = CreateDirectory(file.get(), fHistoDirectoryName, "histograms"); - if ( ! hdirectory ) { + if (hdirectory == nullptr) { // Warning is issued in CreateDirectory return std::make_shared(nullptr, nullptr, nullptr); } @@ -137,7 +136,7 @@ G4RootFileManager::CreateFileImpl(const G4String& fileName) // create ntuple directory tools::wroot::directory* ndirectory = CreateDirectory(file.get(), fNtupleDirectoryName, "ntuples"); - if ( ! ndirectory ) { + if (ndirectory == nullptr) { // Warning is issued in CreateDirectory return std::make_shared(nullptr, nullptr, nullptr); } @@ -150,10 +149,9 @@ G4bool G4RootFileManager::WriteFileImpl(std::shared_ptr file) { // New prototype: called by G4TFileManager base classe - if ( ! file ) return false; + // nothing to be done, but file should exist + return (file == nullptr) ? false : true; - unsigned int n; - return std::get<0>(*file)->write(n); } //_____________________________________________________________________________ @@ -161,7 +159,11 @@ G4bool G4RootFileManager::CloseFileImpl(std::shared_ptr file) { // New prototype: called by G4TFileManager base classe - if ( ! file ) return false; + if (file == nullptr) return false; + + // write file (only once) + unsigned int n; + std::get<0>(*file)->write(n); // close file std::get<0>(*file)->close(); @@ -215,7 +217,7 @@ std::shared_ptr G4RootFileManager::CreateNtupleFile( // register file in ntuple description only if it is not main ntuple file // (main ntuple files are managed in main ntuple manager) if ( mainNumber == -1 ) { - ntupleDescription->fFile = file; + ntupleDescription->SetFile(file); } return file; @@ -233,19 +235,16 @@ std::shared_ptr G4RootFileManager::GetNtupleFile( //_____________________________________________________________________________ G4bool G4RootFileManager::CloseNtupleFile( - RootNtupleDescription* ntupleDescription) + RootNtupleDescription* ntupleDescription, G4int mainNumber) { - auto result = true; + // auto result = true; - if ( ntupleDescription->fFile ) { - // Ntuple files are registered in file manager map. - // they will be closed with CloseFiles() calls - ntupleDescription->fFile.reset(); - // Notify not empty file - auto ntupleFileName = GetNtupleFileName(ntupleDescription); - result &= SetIsEmpty(ntupleFileName, ! ntupleDescription->fHasFill); - } + // Notify not empty file + auto ntupleFileName = GetNtupleFileName(ntupleDescription, true, mainNumber); + auto result = SetIsEmpty(ntupleFileName, ! ntupleDescription->GetHasFill()); + + // Ntuple files will be closed with CloseFiles() calls + ntupleDescription->GetFile().reset(); return result; } - diff --git a/source/analysis/root/src/G4RootMainNtupleManager.cc b/source/analysis/root/src/G4RootMainNtupleManager.cc index 39e7cce449..683b036c99 100644 --- a/source/analysis/root/src/G4RootMainNtupleManager.cc +++ b/source/analysis/root/src/G4RootMainNtupleManager.cc @@ -62,17 +62,17 @@ void G4RootMainNtupleManager::CreateNtuple(RootNtupleDescription* ntupleDescript // Get/Create main ntuple file auto ntupleFile = fFileManager->CreateNtupleFile(ntupleDescription, fFileNumber); - if ( ! ntupleFile ) { + if ( ntupleFile == nullptr ) { if ( warn ) { - Warn("Ntuple file must be defined first.\n" - "Cannot create main ntuple.", - fkClass, "CreateNtuple"); - } + Warn("Ntuple file must be defined first.\n" + "Cannot create main ntuple.", + fkClass, "CreateNtuple"); + } return; } // Get ntuple booking - auto ntupleBooking = ntupleDescription->fNtupleBooking; + const auto& ntupleBooking = ntupleDescription->GetNtupleBooking(); Message(kVL4, "create", "main ntuple", ntupleBooking.name()); @@ -83,7 +83,7 @@ void G4RootMainNtupleManager::CreateNtuple(RootNtupleDescription* ntupleDescript ntuple->set_basket_size(basketSize); fNtupleVector.push_back(ntuple); - fNtupleDescriptionVector.push_back(ntupleDescription); + fNtupleDescriptionVector.push_back(std::make_pair(ntupleDescription, ntupleFile)); Message(kVL3, "create", "main ntuple", ntupleBooking.name()); } @@ -97,9 +97,9 @@ G4bool G4RootMainNtupleManager::Merge() ntuple->merge_number_of_entries(); // Notify ntuple description that file is not empty - if ( ntuple->entries() ) { - auto ntupleDescription = fNtupleDescriptionVector.at(counter); - ntupleDescription->fHasFill = true; + if (ntuple->entries() != 0u) { + auto ntupleDescription = fNtupleDescriptionVector.at(counter).first; + ntupleDescription->SetHasFill(true); } ++counter; } @@ -110,10 +110,10 @@ G4bool G4RootMainNtupleManager::Merge() //_____________________________________________________________________________ G4bool G4RootMainNtupleManager::Reset() { - // ntuple object is deleted automatically when closing a file + // The ntuples will be recreated with new cycle or new open file. + // Ntuple objects are deleted automatically when closing a file fNtupleVector.clear(); - fNtupleDescriptionVector.clear(); return true; } @@ -121,8 +121,8 @@ G4bool G4RootMainNtupleManager::Reset() //_____________________________________________________________________________ void G4RootMainNtupleManager::ClearData() { - // Reset function clears all data - Reset(); + fNtupleDescriptionVector.clear(); + fNtupleVector.clear(); Message(G4Analysis::kVL2, "clear", "main ntuples"); } @@ -134,3 +134,34 @@ G4RootMainNtupleManager::GetNtupleFile(RootNtupleDescription* ntupleDescription) auto perThread = false; return fFileManager->GetNtupleFile(ntupleDescription, perThread, fFileNumber); } + +// +// public functions +// + +//_____________________________________________________________________________ +void G4RootMainNtupleManager::CreateNtuplesFromBooking() +{ +// Create ntuples from booking. +// This function is triggered from workers at new cycle. + + for (auto [ntupleDescription, ntupleFile] : fNtupleDescriptionVector) { + + // Get ntuple booking + const auto& ntupleBooking = ntupleDescription->GetNtupleBooking(); + + Message(kVL4, "create", "main ntuple", ntupleBooking.name()); + + // Create ntuple + auto ntuple = new tools::wroot::ntuple(*std::get<2>(*ntupleFile), ntupleBooking, fRowWise); + // ntuple object is deleted automatically when closing a file + auto basketSize = fNtupleBuilder->GetBasketSize(); + ntuple->set_basket_size(basketSize); + + fNtupleVector.push_back(ntuple); + + Message(kVL3, "create", "main ntuple", ntupleBooking.name()); + } + + SetNewCycle(false); +} diff --git a/source/analysis/root/src/G4RootNtupleFileManager.cc b/source/analysis/root/src/G4RootNtupleFileManager.cc index efc375d615..d715007c56 100644 --- a/source/analysis/root/src/G4RootNtupleFileManager.cc +++ b/source/analysis/root/src/G4RootNtupleFileManager.cc @@ -87,8 +87,7 @@ void G4RootNtupleFileManager::SetNtupleMergingMode(G4bool mergeNtuples, } // Illegal situations - if ( mergeNtuples && G4Threading::IsMultithreadedApplication() && - ( ! fgMasterInstance ) ) { + if (mergeNtuples && G4Threading::IsMultithreadedApplication() && (fgMasterInstance == nullptr)) { Warn("Merging ntuples requires G4AnalysisManager instance on master.\n" "Setting was ignored.", fkClass, "SetNtupleMergingMode"); @@ -115,6 +114,7 @@ void G4RootNtupleFileManager::SetNtupleMergingMode(G4bool mergeNtuples, // Forced merging mode G4bool isMaster = ! G4Threading::IsWorkerThread(); + // G4bool isMaster = fState.GetIsMaster(); if ( isMaster ) { fNtupleMergeMode = G4NtupleMergeMode::kMain; mergingMode = "G4NtupleMergeMode::kMain"; @@ -130,10 +130,10 @@ void G4RootNtupleFileManager::SetNtupleMergingMode(G4bool mergeNtuples, //_____________________________________________________________________________ G4int G4RootNtupleFileManager::GetNtupleFileNumber() { - if ( ! fNofNtupleFiles ) return 0; + if (fNofNtupleFiles == 0) return 0; G4int nofMainManagers = fNofNtupleFiles; - if ( ! nofMainManagers ) nofMainManagers = 1; + if (nofMainManagers == 0) nofMainManagers = 1; auto fileNumber = G4Threading::G4GetThreadId() % nofMainManagers; return fileNumber; @@ -142,14 +142,16 @@ G4int G4RootNtupleFileManager::GetNtupleFileNumber() //_____________________________________________________________________________ G4bool G4RootNtupleFileManager::CloseNtupleFiles() { - // Close ntuple files + // Take into account main ntuple files if present + auto mainNumber = ( fNofNtupleFiles > 0 ) ? 0 : -1; auto result = true; auto ntupleVector = fNtupleManager->GetNtupleDescriptionVector(); for ( auto ntupleDescription : ntupleVector) { - result &= fFileManager->CloseNtupleFile(ntupleDescription); + for (G4int i = mainNumber; i < fNofNtupleFiles; ++i ) { + result &= fFileManager->CloseNtupleFile(ntupleDescription, i); + } } - return result; } @@ -243,8 +245,10 @@ std::shared_ptr G4RootNtupleFileManager::CreateNtupleManager() case G4NtupleMergeMode::kMain: { G4int nofMainManagers = fNofNtupleFiles; - if ( ! nofMainManagers ) nofMainManagers = 1; - // create one manager if merging required into the histos & profiles files + if (nofMainManagers == 0) { + // create one manager if merging required into the histos & profiles files + nofMainManagers = 1; + } fNtupleManager = make_shared( fState, fBookingManager, nofMainManagers, fNofNtupleFiles, fNtupleRowWise, fNtupleRowMode); @@ -343,24 +347,14 @@ G4bool G4RootNtupleFileManager::ActionAtWrite() } //_____________________________________________________________________________ -G4bool G4RootNtupleFileManager::ActionAtCloseFile(G4bool reset) +G4bool G4RootNtupleFileManager::ActionAtCloseFile() { - auto result = true; - - // close files - if ( fNtupleMergeMode != G4NtupleMergeMode::kSlave ) { - result &= CloseNtupleFiles(); + if ( fNtupleMergeMode == G4NtupleMergeMode::kSlave) { + fSlaveNtupleManager->SetNewCycle(false); + return true; } - if ( ! reset ) { - // The ntuples must be always reset when closing file) - if ( ! Reset() ) { - Warn("Resetting data failed", fkClass, "ActionAtCloseFile"); - result = false; - } - } - - return result; + return CloseNtupleFiles(); } //_____________________________________________________________________________ @@ -375,5 +369,9 @@ G4bool G4RootNtupleFileManager::Reset() result &= fNtupleManager->Reset(); } + if ( fNtupleMergeMode == G4NtupleMergeMode::kSlave ) { + fSlaveNtupleManager->Reset(); + } + return result; } diff --git a/source/analysis/root/src/G4RootNtupleManager.cc b/source/analysis/root/src/G4RootNtupleManager.cc index 94c277d33f..34efcb8689 100644 --- a/source/analysis/root/src/G4RootNtupleManager.cc +++ b/source/analysis/root/src/G4RootNtupleManager.cc @@ -66,9 +66,9 @@ G4RootNtupleManager::G4RootNtupleManager(const G4AnalysisManagerState& state, void G4RootNtupleManager::CreateTNtupleFromBooking( RootNtupleDescription* ntupleDescription) { - if ( ! fMainNtupleManagers.size() ) { + if (fMainNtupleManagers.size() == 0u) { // No merging - if ( ntupleDescription->fNtuple ) { + if (ntupleDescription->GetNtuple() != nullptr) { Warn("Cannot create ntuple. Ntuple already exists.", fkClass, "CreateTNtupleFromBooking"); return; @@ -83,16 +83,16 @@ void G4RootNtupleManager::CreateTNtupleFromBooking( } auto directory = std::get<2>(*ntupleFile); - ntupleDescription->fNtuple - = new tools::wroot::ntuple( - *directory, ntupleDescription->fNtupleBooking, fRowWise); + ntupleDescription->SetNtuple( + new tools::wroot::ntuple( + *directory, ntupleDescription->GetNtupleBooking(), fRowWise)); auto basketSize = fFileManager->GetBasketSize(); - ntupleDescription->fNtuple->set_basket_size(basketSize); + ntupleDescription->GetNtuple()->set_basket_size(basketSize); - ntupleDescription->fIsNtupleOwner = false; + ntupleDescription->SetIsNtupleOwner(false); // ntuple object is deleted automatically when closing a file - fNtupleVector.push_back(ntupleDescription->fNtuple); + fNtupleVector.push_back(ntupleDescription->GetNtuple()); } else { // Merging activated @@ -171,6 +171,16 @@ void G4RootNtupleManager::SetNtupleRowWise(G4bool rowWise, G4bool rowMode) } } +//_____________________________________________________________________________ +void G4RootNtupleManager::SetNewCycle(G4bool value) +{ + G4TNtupleManager::SetNewCycle(value); + + for ( const auto& manager : fMainNtupleManagers ) { + manager->SetNewCycle(value); + } +} + //_____________________________________________________________________________ std::shared_ptr G4RootNtupleManager::GetMainNtupleManager(G4int index) const diff --git a/source/analysis/root/src/G4RootPNtupleManager.cc b/source/analysis/root/src/G4RootPNtupleManager.cc index 26e60e656d..470204fd74 100644 --- a/source/analysis/root/src/G4RootPNtupleManager.cc +++ b/source/analysis/root/src/G4RootPNtupleManager.cc @@ -28,7 +28,6 @@ #include "G4NtupleBookingManager.hh" #include "G4RootPNtupleManager.hh" -#include "G4RootMainNtupleManager.hh" #include "G4AnalysisUtilities.hh" #include "tools/wroot/file" @@ -42,6 +41,8 @@ namespace { //Mutex to lock master manager when adding ntuple row and ending fill G4Mutex pntupleMutex = G4MUTEX_INITIALIZER; +//Mutex to lock master manager when createing main ntuples at new cycle +G4Mutex createMainMutex = G4MUTEX_INITIALIZER; //_____________________________________________________________________________ void NotExistWarning(const G4String& what, G4int id, @@ -101,15 +102,15 @@ tools::wroot::base_pntuple* G4int id, std::string_view functionName, G4bool warn) const { auto ntupleDescription = GetNtupleDescriptionInFunction(id, functionName); - if ( ! ntupleDescription ) return nullptr; + if (ntupleDescription == nullptr) return nullptr; - if ( ! ntupleDescription->fBasePNtuple ) { + if (ntupleDescription->GetBasePNtuple() == nullptr) { if ( warn ) { NotExistWarning("ntuple", id, fkClass, functionName); } return nullptr; } - return ntupleDescription->fBasePNtuple; + return ntupleDescription->GetBasePNtuple(); } //_____________________________________________________________________________ @@ -141,17 +142,17 @@ void G4RootPNtupleManager::CreateNtupleFromMain( { Message(kVL4, "create from main", "pntuple", mainNtuple->name()); - auto file = fMainNtupleManager->GetNtupleFile(&ntupleDescription->fDescription); + auto file = fMainNtupleManager->GetNtupleFile(&ntupleDescription->GetDescription()); if ( ! file ) { Warn("Cannot create pntuple. Main ntuple file does not exist.", fkClass, "CreateNtupleFromMain"); return; } - ntupleDescription->fDescription.fFile = file; + ntupleDescription->GetDescription().SetFile(file); // Get parameters from ntupleDescription - mainNtuple->get_branches(ntupleDescription->fMainBranches); + mainNtuple->get_branches(ntupleDescription->GetMainBranches()); auto rfile = std::get<0>(*file); G4bool verbose = true; @@ -162,16 +163,16 @@ void G4RootPNtupleManager::CreateNtupleFromMain( G4cout, rfile->byte_swap(), rfile->compression(), mainNtuple->dir().seek_directory(), *mainBranch, mainBranch->basket_size(), - ntupleDescription->fDescription.fNtupleBooking, verbose); + ntupleDescription->GetDescription().GetNtupleBooking(), verbose); - ntupleDescription->fNtuple - = static_cast(mtNtuple); - ntupleDescription->fBasePNtuple - = static_cast(mtNtuple); + ntupleDescription->SetNtuple( + static_cast(mtNtuple)); + ntupleDescription->SetBasePNtuple( + static_cast(mtNtuple)); } else { std::vector basketSizes; - tools_vforcit(tools::wroot::branch*, ntupleDescription->fMainBranches, it) { + tools_vforcit(tools::wroot::branch*, ntupleDescription->GetMainBranches(), it) { basketSizes.push_back((*it)->basket_size()); } auto basketEntries = fMainNtupleManager->GetBasketEntries(); @@ -180,36 +181,44 @@ void G4RootPNtupleManager::CreateNtupleFromMain( new tools::wroot::mt_ntuple_column_wise( G4cout, rfile->byte_swap(), rfile->compression(), mainNtuple->dir().seek_directory(), - ntupleDescription->fMainBranches, basketSizes, - ntupleDescription->fDescription.fNtupleBooking, + ntupleDescription->GetMainBranches(), basketSizes, + ntupleDescription->GetDescription().GetNtupleBooking(), fRowMode, basketEntries, verbose); - ntupleDescription->fNtuple - = static_cast(mtNtuple); - ntupleDescription->fBasePNtuple - = static_cast(mtNtuple); + ntupleDescription->SetNtuple( + static_cast(mtNtuple)); + ntupleDescription->SetBasePNtuple( + static_cast(mtNtuple)); } - ntupleDescription->fDescription.fIsNtupleOwner = true; + ntupleDescription->GetDescription().SetIsNtupleOwner(true); // // pntuple object is not deleted automatically - fNtupleVector.push_back(ntupleDescription->fNtuple); + fNtupleVector.push_back(ntupleDescription->GetNtuple()); Message(kVL3, "create from main", "pntuple", mainNtuple->name()); } //_____________________________________________________________________________ -void G4RootPNtupleManager::CreateNtuplesFromMain() +void G4RootPNtupleManager::CreateNtupleDescriptionsFromBooking() { -// Create ntuple from booking (if not yet done) and main ntuple +// Create ntuple descriptions from booking. // This function is called from the first Fill call. // Create pntuple descriptions from ntuple booking. auto g4NtupleBookings = fBookingManager->GetNtupleBookingVector(); + for ( auto g4NtupleBooking : g4NtupleBookings ) { auto ntupleDescription = new G4RootPNtupleDescription(g4NtupleBooking); // Save g4booking, activation in pntuple booking fNtupleDescriptionVector.push_back(ntupleDescription); } +} + +//_____________________________________________________________________________ +void G4RootPNtupleManager::CreateNtuplesFromMain() +{ +// Create slave ntuples from main ntuple. +// This function is called from the first Fill call. auto& mainNtupleVector = fMainNtupleManager->GetNtupleVector(); @@ -218,8 +227,52 @@ void G4RootPNtupleManager::CreateNtuplesFromMain() auto& ntupleDescription = fNtupleDescriptionVector[lcounter++]; CreateNtupleFromMain(ntupleDescription, mainNtuple); } +} - fCreateNtuples = false; +//_____________________________________________________________________________ +void G4RootPNtupleManager::CreateNtuplesIfNeeded() +{ +// The ntuples on workers are created at first FillColumn or AddRow +// (if only columns of vector type) call. +// When writing multiple times in teh same file, the main ntuples have +// to be recreated as well. + + // G4cout << "G4RootPNtupleManager::CreateNtuplesIfNeeded: " + // << " fCreateNtuple: " << fCreateNtuples << " " + // << " fNewCycle: " << fNewCycle + // << " fMainNtupleManager->GetNewCycle(): " << fMainNtupleManager->GetNewCycle() + // << " fNtupleDescriptionVector.size(): " << fNtupleDescriptionVector.size() + // << " fNtupleVector.size(): " << fNtupleVector.size() + // << G4endl; + + if (fCreateNtuples) { + // create ntuple descriptions + CreateNtupleDescriptionsFromBooking(); + + // create main ntuples if needed + G4AutoLock lock(&createMainMutex); + if (fMainNtupleManager->GetNewCycle()) { + fMainNtupleManager->CreateNtuplesFromBooking(); + } + lock.unlock(); + + // create slave ntuples + CreateNtuplesFromMain(); + fCreateNtuples = false; + } + + if (fNewCycle) { + // create main ntuples if needed + G4AutoLock lock(&createMainMutex); + if (fMainNtupleManager->GetNewCycle()) { + fMainNtupleManager->CreateNtuplesFromBooking(); + } + lock.unlock(); + + // create slave ntuples + CreateNtuplesFromMain(); + fNewCycle = false; + } } //_____________________________________________________________________________ @@ -262,10 +315,6 @@ G4bool G4RootPNtupleManager::FillNtupleSColumn( //_____________________________________________________________________________ G4bool G4RootPNtupleManager::AddNtupleRow(G4int ntupleId) { - if (fCreateNtuples) { - CreateNtuplesFromMain(); - } - if ( fState.GetIsActivation() && ( ! GetActivation(ntupleId) ) ) { //G4cout << "Skipping AddNtupleRow for " << ntupleId << G4endl; return false; @@ -275,23 +324,27 @@ G4bool G4RootPNtupleManager::AddNtupleRow(G4int ntupleId) Message(kVL4, "add", "pntuple row", " ntupleId " + to_string(ntupleId)); } - auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "AddNtupleRow"); - if ( ! ntupleDescription ) return false; + // Creating ntuples on workers is triggered with the first FillColumn + // or AddRow (in only columns of vector type call) + CreateNtuplesIfNeeded(); - auto rfile = std::get<0>(*ntupleDescription->fDescription.fFile); + auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "AddNtupleRow"); + if (ntupleDescription == nullptr) return false; + + auto rfile = std::get<0>(*ntupleDescription->GetDescription().GetFile()); G4AutoLock lock(&pntupleMutex); lock.unlock(); mutex toolsLock(lock); auto result - = ntupleDescription->fNtuple->add_row(toolsLock, *rfile); + = ntupleDescription->GetNtuple()->add_row(toolsLock, *rfile); if ( ! result ) { Warn("NtupleId " + to_string(ntupleId) + "adding row failed.", fkClass, "AddNtupleRow"); } - ntupleDescription->fDescription.fHasFill = true; + ntupleDescription->GetDescription().SetHasFill(true); if ( IsVerbose(kVL3) ) { Message(kVL3, "add", "pntuple row", " ntupleId " + to_string(ntupleId)); @@ -307,45 +360,64 @@ G4bool G4RootPNtupleManager::Merge() for ( auto ntupleDescription : fNtupleDescriptionVector) { // skip inactivated ntuples - if(!ntupleDescription->fDescription.fActivation || !ntupleDescription->fNtuple) { + if (! ntupleDescription->GetDescription().GetActivation() || + (ntupleDescription->GetNtuple() == nullptr)) { // G4cout << "skipping inactive ntuple " << G4endl; continue; } if ( IsVerbose(kVL4) ) { - Message(kVL4, "merge", "pntuple", ntupleDescription->fDescription.fNtupleBooking.name()); + Message(kVL4, "merge", "pntuple", + ntupleDescription->GetDescription().GetNtupleBooking().name()); } - auto rfile = std::get<0>(*ntupleDescription->fDescription.fFile); + auto rfile = std::get<0>(*ntupleDescription->GetDescription().GetFile()); G4AutoLock lock(&pntupleMutex); lock.unlock(); mutex toolsLock(lock); auto result - = ntupleDescription->fNtuple->end_fill(toolsLock, *rfile); + = ntupleDescription->GetNtuple()->end_fill(toolsLock, *rfile); if ( ! result ) { - Warn("Ntuple " + ntupleDescription->fDescription.fNtupleBooking.name() + + Warn("Ntuple " + ntupleDescription->GetDescription().GetNtupleBooking().name() + "end fill has failed.", fkClass, "Merge"); } - delete ntupleDescription->fNtuple; - ntupleDescription->fNtuple = nullptr; - if ( IsVerbose(kVL3) ) { - Message(kVL3, "merge", "pntuple", ntupleDescription->fDescription.fNtupleBooking.name()); + Message(kVL3, "merge", "pntuple", + ntupleDescription->GetDescription().GetNtupleBooking().name()); } } - return true; + // Set new cycle + fNewCycle = true; + + return true; +} + +//_____________________________________________________________________________ +G4bool G4RootPNtupleManager::Reset() +{ + // Reset ntuple description, this will delete ntuple if present and + // we have its ownership. + // The ntuples will be recreated with new cycle or new open file. + + for ( auto ntupleDescription : fNtupleDescriptionVector ) { + ntupleDescription->Reset(); + } + + fNtupleVector.clear(); + + return true; } //_____________________________________________________________________________ void G4RootPNtupleManager::Clear() { for ( auto ntupleDescription : fNtupleDescriptionVector ) { - delete ntupleDescription->fNtuple; + delete ntupleDescription->GetNtuple(); } fNtupleDescriptionVector.clear(); @@ -360,7 +432,7 @@ void G4RootPNtupleManager::SetActivation( G4bool activation) { for ( auto ntupleDescription : fNtupleDescriptionVector ) { - ntupleDescription->fDescription.fActivation = activation; + ntupleDescription->GetDescription().SetActivation(activation); } } @@ -370,9 +442,9 @@ void G4RootPNtupleManager::SetActivation( G4int ntupleId, G4bool activation) { auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "SetActivation"); - if ( ! ntupleDescription ) return; + if (ntupleDescription == nullptr) return; - ntupleDescription->fDescription.fActivation = activation; + ntupleDescription->GetDescription().SetActivation(activation); } //_____________________________________________________________________________ @@ -380,15 +452,27 @@ G4bool G4RootPNtupleManager::GetActivation( G4int ntupleId) const { auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "GetActivation"); - if ( ! ntupleDescription ) return false; + if (ntupleDescription == nullptr) return false; - return ntupleDescription->fDescription.fActivation; + return ntupleDescription->GetDescription().GetActivation(); +} + +//_____________________________________________________________________________ +void G4RootPNtupleManager::SetNewCycle(G4bool value) +{ + fNewCycle = value; +} + +//_____________________________________________________________________________ +G4bool G4RootPNtupleManager::GetNewCycle() const +{ + return fNewCycle; } //_____________________________________________________________________________ G4int G4RootPNtupleManager::GetNofNtuples() const { - return fNtupleVector.size(); + return (G4int)fNtupleVector.size(); } //_____________________________________________________________________________ @@ -397,3 +481,10 @@ void G4RootPNtupleManager::SetNtupleRowWise(G4bool rowWise, G4bool rowMode) fRowWise = rowWise; fRowMode = rowMode; } + +//_____________________________________________________________________________ +G4bool G4RootPNtupleManager::List(std::ostream& /*output*/, G4bool /*onlyIfActive*/) +{ + Warn("Not implemented.", fkClass, "List"); + return false; +} diff --git a/source/analysis/root/src/G4RootRFileManager.cc b/source/analysis/root/src/G4RootRFileManager.cc index 4ca7ed7bb5..2b2e449011 100644 --- a/source/analysis/root/src/G4RootRFileManager.cc +++ b/source/analysis/root/src/G4RootRFileManager.cc @@ -27,6 +27,7 @@ // Author: Ivana Hrivnacova, 10/09/2014 (ivana@ipno.in2p3.fr) #include "G4RootRFileManager.hh" +#include "G4RootRFileDef.hh" #include "G4RootHnRFileManager.hh" #include "G4AnalysisManagerState.hh" #include "G4AnalysisUtilities.hh" @@ -52,8 +53,13 @@ G4RootRFileManager::G4RootRFileManager(const G4AnalysisManagerState& state) //_____________________________________________________________________________ G4RootRFileManager::~G4RootRFileManager() { - for ( auto& rfile : fRFiles ) { - delete rfile.second; + // Delete all open file and their directories + for ( auto& mapElement : fRFiles ) { + auto rfileTuple = mapElement.second; + delete std::get<1>(*rfileTuple); // histo directory + delete std::get<2>(*rfileTuple);; // ntuple directory + delete std::get<0>(*rfileTuple); // rfile + delete rfileTuple; } } @@ -80,14 +86,16 @@ G4bool G4RootRFileManager::OpenRFile(const G4String& fileName, return false; } + auto newFileTuple = new G4RootRFile(newFile, nullptr, nullptr); + // add file in a map and delete the previous file if it exists auto it = fRFiles.find(name); if ( it != fRFiles.end() ) { delete it->second; - it->second = newFile; + it->second = newFileTuple; } else { - fRFiles[name] = newFile; + fRFiles[name] = newFileTuple; } Message(kVL1, "open", "read analysis file", name); @@ -96,16 +104,15 @@ G4bool G4RootRFileManager::OpenRFile(const G4String& fileName, } //_____________________________________________________________________________ -tools::rroot::file* G4RootRFileManager::GetRFile(const G4String& fileName, - G4bool isPerThread) const +G4RootRFile* G4RootRFileManager::GetRFile(const G4String& fileName, + G4bool isPerThread) const { // Get full file name G4String name = GetFullFileName(fileName, isPerThread); auto it = fRFiles.find(name); - if ( it != fRFiles.end() ) + if (it != fRFiles.end()) { return it->second; - else { - return nullptr; } + return nullptr; } diff --git a/source/analysis/root/src/G4RootRNtupleManager.cc b/source/analysis/root/src/G4RootRNtupleManager.cc index 4b08e0a843..374d151776 100644 --- a/source/analysis/root/src/G4RootRNtupleManager.cc +++ b/source/analysis/root/src/G4RootRNtupleManager.cc @@ -62,44 +62,51 @@ G4int G4RootRNtupleManager::ReadNtupleImpl(const G4String& ntupleName, if ( isUserFileName ) isPerThread = false; // Get or open a file - auto rfile = fFileManager->GetRFile(fileName, isPerThread); - if ( ! rfile ) { + auto rfileTuple = fFileManager->GetRFile(fileName, isPerThread); + if (rfileTuple == nullptr) { if ( ! fFileManager->OpenRFile(fileName, isPerThread) ) return kInvalidId; - rfile = fFileManager->GetRFile(fileName, isPerThread); + rfileTuple = fFileManager->GetRFile(fileName, isPerThread); + } + auto rfile = std::get<0>(*rfileTuple); + + // Get or open a directory if dirName is defined + tools::rroot::TDirectory* ntupleDirectory = nullptr; + if ( ntupleDirectory == nullptr ) { + // Retrieve directory only once as analysis manager supports only + // 1 ntuple directory par file) + if ( ! dirName.empty() ) { + ntupleDirectory = tools::rroot::find_dir(rfile->dir(), dirName); + if ( ntupleDirectory != nullptr ) { + std::get<2>(*rfileTuple) = ntupleDirectory; + } + else { + G4Analysis::Warn( + "Directory " + dirName + " not found in file " + fileName + ".", + fkClass, "ReadNtupleImpl"); + return kInvalidId; + } + } } // Get key tools::rroot::key* key = nullptr; - tools::rroot::TDirectory* newDir = nullptr; - if ( ! dirName.empty() ) { - newDir = tools::rroot::find_dir(rfile->dir(), dirName); - if ( newDir ) { - key = newDir->find_key(ntupleName); - } - else { - G4Analysis::Warn( - "Directory " + dirName + " not found in file " + fileName + ".", - fkClass, "ReadNtupleImpl"); - return kInvalidId; - } + if ( ntupleDirectory != nullptr ) { + key = ntupleDirectory->find_key(ntupleName); } else { key = rfile->dir().find_key(ntupleName); } - - if ( ! key ) { + if (key == nullptr) { Warn("Key " + ntupleName + " for Ntuple not found in file " + fileName + ", directory " + dirName, fkClass, "ReadNtupleImpl"); - delete newDir; return kInvalidId; } unsigned int size; char* charBuffer = key->get_object_buffer(*rfile, size); - if ( ! charBuffer ) { + if (charBuffer == nullptr) { Warn("Cannot get data buffer for Ntuple " + ntupleName + " in file " + fileName, fkClass, "ReadNtupleImpl"); - delete newDir; return kInvalidId; } @@ -119,7 +126,6 @@ G4int G4RootRNtupleManager::ReadNtupleImpl(const G4String& ntupleName, delete buffer; delete tree; - delete newDir; return kInvalidId; } @@ -128,6 +134,7 @@ G4int G4RootRNtupleManager::ReadNtupleImpl(const G4String& ntupleName, auto id = SetNtuple(rntupleDescription); + Message(kVL2, "read", "ntuple", ntupleName, id > kInvalidId); return id; diff --git a/source/analysis/xml/include/G4XmlAnalysisManager.hh b/source/analysis/xml/include/G4XmlAnalysisManager.hh index 49343737d5..e4c94bedaa 100644 --- a/source/analysis/xml/include/G4XmlAnalysisManager.hh +++ b/source/analysis/xml/include/G4XmlAnalysisManager.hh @@ -41,7 +41,6 @@ #include class G4XmlAnalysisManager; -class G4XmlFileManager; class G4XmlNtupleFileManager; template class G4ThreadLocalSingleton; @@ -51,7 +50,7 @@ class G4XmlAnalysisManager : public G4ToolsAnalysisManager friend class G4ThreadLocalSingleton; public: - virtual ~G4XmlAnalysisManager(); + ~G4XmlAnalysisManager() override; // Static methods static G4XmlAnalysisManager* Instance(); @@ -67,24 +66,14 @@ class G4XmlAnalysisManager : public G4ToolsAnalysisManager std::vector::const_iterator BeginConstNtuple() const; std::vector::const_iterator EndConstNtuple() const; - protected: - // Virtual methods from base class - virtual G4bool OpenFileImpl(const G4String& fileName) final; - virtual G4bool WriteImpl() final; - virtual G4bool CloseFileImpl(G4bool reset) final; - virtual G4bool ResetImpl() final; - virtual G4bool IsOpenFileImpl() const final; - private: G4XmlAnalysisManager(); // Static data members - inline static G4XmlAnalysisManager* fgMasterInstance { nullptr }; inline static G4ThreadLocal G4bool fgIsInstance { false }; static constexpr std::string_view fkClass { "G4XmlAnalysisManager" }; // Data members - std::shared_ptr fFileManager { nullptr }; std::shared_ptr fNtupleFileManager { nullptr }; }; diff --git a/source/analysis/xml/include/G4XmlAnalysisManager.icc b/source/analysis/xml/include/G4XmlAnalysisManager.icc index d3e806bc00..792f947a07 100644 --- a/source/analysis/xml/include/G4XmlAnalysisManager.icc +++ b/source/analysis/xml/include/G4XmlAnalysisManager.icc @@ -28,13 +28,6 @@ #include "G4XmlNtupleManager.hh" #include "G4XmlFileManager.hh" -//_____________________________________________________________________________ -inline -G4bool G4XmlAnalysisManager::IsOpenFileImpl() const -{ - return fFileManager->IsOpenFile(); -} - //_____________________________________________________________________________ inline tools::waxml::ntuple* G4XmlAnalysisManager::GetNtuple() const diff --git a/source/analysis/xml/include/G4XmlAnalysisReader.hh b/source/analysis/xml/include/G4XmlAnalysisReader.hh index 93d86c9633..b189a01be4 100644 --- a/source/analysis/xml/include/G4XmlAnalysisReader.hh +++ b/source/analysis/xml/include/G4XmlAnalysisReader.hh @@ -51,7 +51,7 @@ class G4XmlAnalysisReader : public G4ToolsAnalysisReader friend class G4ThreadLocalSingleton; public: - virtual ~G4XmlAnalysisReader(); + ~G4XmlAnalysisReader() override; // Static methods static G4XmlAnalysisReader* Instance(); @@ -65,7 +65,7 @@ class G4XmlAnalysisReader : public G4ToolsAnalysisReader G4XmlAnalysisReader(); // Virtual methods from base class - virtual G4bool CloseFilesImpl(G4bool reset) final; + G4bool CloseFilesImpl(G4bool reset) final; private: // Static data members diff --git a/source/analysis/xml/include/G4XmlFileManager.hh b/source/analysis/xml/include/G4XmlFileManager.hh index 68a17532d2..20ab0ff440 100644 --- a/source/analysis/xml/include/G4XmlFileManager.hh +++ b/source/analysis/xml/include/G4XmlFileManager.hh @@ -52,16 +52,16 @@ class G4XmlFileManager : public G4VTFileManager public: explicit G4XmlFileManager(const G4AnalysisManagerState& state); G4XmlFileManager() = delete; - virtual ~G4XmlFileManager() = default; + ~G4XmlFileManager() override = default; using G4BaseFileManager::GetNtupleFileName; using G4VTFileManager::WriteFile; using G4VTFileManager::CloseFile; // Methods to manipulate output files - virtual G4bool OpenFile(const G4String& fileName) final; + G4bool OpenFile(const G4String& fileName) final; - virtual G4String GetFileType() const final { return "xml"; } + G4String GetFileType() const final { return "xml"; } // Specific methods for files per objects G4bool CreateNtupleFile(XmlNtupleDescription* ntupleDescription); @@ -69,11 +69,11 @@ class G4XmlFileManager : public G4VTFileManager protected: // Methods derived from templated base class - virtual std::shared_ptr CreateFileImpl(const G4String& fileName) final; - virtual G4bool WriteFileImpl(std::shared_ptr file) final; - virtual G4bool CloseFileImpl(std::shared_ptr file) final; + std::shared_ptr CreateFileImpl(const G4String& fileName) final; + G4bool WriteFileImpl(std::shared_ptr file) final; + G4bool CloseFileImpl(std::shared_ptr file) final; - private: + private: // Utility method G4String GetNtupleFileName(XmlNtupleDescription* ntupleDescription); diff --git a/source/analysis/xml/include/G4XmlHnFileManager.hh b/source/analysis/xml/include/G4XmlHnFileManager.hh index 424c6e1bc9..712e750f5a 100644 --- a/source/analysis/xml/include/G4XmlHnFileManager.hh +++ b/source/analysis/xml/include/G4XmlHnFileManager.hh @@ -44,13 +44,13 @@ class G4XmlHnFileManager : public G4VTHnFileManager G4XmlHnFileManager(G4XmlFileManager* fileManger) : G4VTHnFileManager(), fFileManager(fileManger) {} G4XmlHnFileManager() = delete; - virtual ~G4XmlHnFileManager() = default; + ~G4XmlHnFileManager() override = default; // Methods for writing objects // Write to a new file (the file is closed after write) - virtual G4bool WriteExtra(HT* ht, const G4String& htName, const G4String& fileName) final; + G4bool WriteExtra(HT* ht, const G4String& htName, const G4String& fileName) final; // Write to the default file (handled with OpenFile()/CloseFile methods) - virtual G4bool Write(HT* ht, const G4String& htName, G4String& fileName) final; + G4bool Write(HT* ht, const G4String& htName, G4String& fileName) final; private: // Static data members diff --git a/source/analysis/xml/include/G4XmlHnRFileManager.hh b/source/analysis/xml/include/G4XmlHnRFileManager.hh index c23a0b47bf..e993495b13 100644 --- a/source/analysis/xml/include/G4XmlHnRFileManager.hh +++ b/source/analysis/xml/include/G4XmlHnRFileManager.hh @@ -44,11 +44,11 @@ class G4XmlHnRFileManager : public G4VTHnRFileManager G4XmlHnRFileManager(G4XmlRFileManager* rfileManger) : G4VTHnRFileManager(), fRFileManager(rfileManger) {} G4XmlHnRFileManager() = delete; - virtual ~G4XmlHnRFileManager() = default; + ~G4XmlHnRFileManager() override = default; // Methods for writing objects - virtual HT* Read(const G4String& htName, const G4String& fileName, - const G4String& dirName, G4bool isUserFileName) final; + HT* Read(const G4String& htName, const G4String& fileName, const G4String& dirName, + G4bool isUserFileName) final; private: // Static data members diff --git a/source/analysis/xml/include/G4XmlNtupleFileManager.hh b/source/analysis/xml/include/G4XmlNtupleFileManager.hh index 0d9e3ffb2e..21b4394a98 100644 --- a/source/analysis/xml/include/G4XmlNtupleFileManager.hh +++ b/source/analysis/xml/include/G4XmlNtupleFileManager.hh @@ -37,6 +37,7 @@ #include "tools/waxml/ntuple" #include +#include class G4XmlFileManager; class G4XmlNtupleManager; @@ -46,24 +47,21 @@ class G4XmlNtupleFileManager : public G4VNtupleFileManager public: explicit G4XmlNtupleFileManager(const G4AnalysisManagerState& state); G4XmlNtupleFileManager() = delete; - virtual ~G4XmlNtupleFileManager() = default; + ~G4XmlNtupleFileManager() override = default; - virtual std::shared_ptr CreateNtupleManager() override; + std::shared_ptr CreateNtupleManager() override; // Methods to be performed at file management - virtual G4bool ActionAtOpenFile(const G4String& fileName) override; - virtual G4bool ActionAtWrite() override; - virtual G4bool ActionAtCloseFile(G4bool reset) override; - virtual G4bool Reset() override; + G4bool ActionAtOpenFile(const G4String& fileName) override; + G4bool ActionAtWrite() override; + G4bool ActionAtCloseFile() override; + G4bool Reset() override; void SetFileManager(std::shared_ptr fileManager); std::shared_ptr GetNtupleManager() const; private: - // Methods - G4bool CloseNtupleFiles(); - // Static data members static constexpr std::string_view fkClass { "G4XmlNtupleFileManager" }; @@ -76,7 +74,9 @@ class G4XmlNtupleFileManager : public G4VNtupleFileManager inline void G4XmlNtupleFileManager::SetFileManager( std::shared_ptr fileManager) -{ fFileManager = fileManager; } +{ + fFileManager = std::move(fileManager); +} inline std::shared_ptr G4XmlNtupleFileManager::GetNtupleManager() const { return fNtupleManager; } diff --git a/source/analysis/xml/include/G4XmlNtupleManager.hh b/source/analysis/xml/include/G4XmlNtupleManager.hh index 67f0b1f94e..7eb0ebb8c9 100644 --- a/source/analysis/xml/include/G4XmlNtupleManager.hh +++ b/source/analysis/xml/include/G4XmlNtupleManager.hh @@ -36,9 +36,10 @@ #include "tools/waxml/ntuple" -#include #include #include +#include +#include // Types alias using XmlNtupleDescription = G4TNtupleDescription; @@ -54,7 +55,7 @@ class G4XmlNtupleManager : public G4TNtupleManager fileManager) -{ fFileManager = fileManager; } +{ + fFileManager = std::move(fileManager); +} inline const std::vector*>& G4XmlNtupleManager::GetNtupleDescriptionVector() const diff --git a/source/analysis/xml/include/G4XmlRFileManager.hh b/source/analysis/xml/include/G4XmlRFileManager.hh index c98aa8f0be..71c6cec85e 100644 --- a/source/analysis/xml/include/G4XmlRFileManager.hh +++ b/source/analysis/xml/include/G4XmlRFileManager.hh @@ -45,12 +45,12 @@ class G4XmlRFileManager : public G4VRFileManager public: explicit G4XmlRFileManager(const G4AnalysisManagerState& state); G4XmlRFileManager() = delete; - virtual ~G4XmlRFileManager(); + ~G4XmlRFileManager() override; - virtual G4String GetFileType() const final { return "xml"; } + G4String GetFileType() const final { return "xml"; } // Methods from base class - virtual void CloseFiles() final {} + void CloseFiles() final {} // Methods to manipulate input files virtual G4bool OpenRFile(const G4String& fileName); diff --git a/source/analysis/xml/include/G4XmlRFileManager.icc b/source/analysis/xml/include/G4XmlRFileManager.icc index 63df5adc52..673d380bea 100644 --- a/source/analysis/xml/include/G4XmlRFileManager.icc +++ b/source/analysis/xml/include/G4XmlRFileManager.icc @@ -53,8 +53,7 @@ tools::raxml_out* G4XmlRFileManager::GetHandler( std::vector::iterator it; for (it = objects.begin(); it!=objects.end(); ++it) { tools::raxml_out& object = *it; - if ( (object.cls().compare(HT::s_class()) == 0) && - (object.name().compare(objectName) == 0) ) { + if ((object.cls() == HT::s_class()) && (object.name() == objectName)) { handler = &object; handler->disown(); break; diff --git a/source/analysis/xml/include/G4XmlRNtupleManager.hh b/source/analysis/xml/include/G4XmlRNtupleManager.hh index 945d7d3bfd..b1b77fedc7 100644 --- a/source/analysis/xml/include/G4XmlRNtupleManager.hh +++ b/source/analysis/xml/include/G4XmlRNtupleManager.hh @@ -37,8 +37,9 @@ #include "toolx/raxml" -#include #include +#include +#include class G4XmlRFileManager; struct G4XmlRNtupleDescription; @@ -50,7 +51,7 @@ class G4XmlRNtupleManager : public G4TRNtupleManager public: explicit G4XmlRNtupleManager(const G4AnalysisManagerState& state); G4XmlRNtupleManager() = delete; - virtual ~G4XmlRNtupleManager() = default; + ~G4XmlRNtupleManager() override = default; protected: // Set methods @@ -68,20 +69,20 @@ class G4XmlRNtupleManager : public G4TRNtupleManager // Override base class functions for vector columns // in order to fill the maps - virtual G4bool SetNtupleIColumn(G4int ntupleId, const G4String& columnName, - std::vector& vector) final; - virtual G4bool SetNtupleFColumn(G4int ntupleId, const G4String& columnName, - std::vector& vector) final; - virtual G4bool SetNtupleDColumn(G4int ntupleId, const G4String& columnName, - std::vector& vector) final; - virtual G4bool SetNtupleSColumn(G4int ntupleId, const G4String& columnName, - std::vector& vector) final; + G4bool SetNtupleIColumn( + G4int ntupleId, const G4String& columnName, std::vector& vector) final; + G4bool SetNtupleFColumn( + G4int ntupleId, const G4String& columnName, std::vector& vector) final; + G4bool SetNtupleDColumn( + G4int ntupleId, const G4String& columnName, std::vector& vector) final; + G4bool SetNtupleSColumn( + G4int ntupleId, const G4String& columnName, std::vector& vector) final; private: // Methods from the base class - virtual G4int ReadNtupleImpl(const G4String& ntupleName, const G4String& fileName, - const G4String& dirName, G4bool isUserFileName) final; - virtual G4bool GetTNtupleRow(G4TRNtupleDescription* ntupleDescription) final; + G4int ReadNtupleImpl(const G4String& ntupleName, const G4String& fileName, + const G4String& dirName, G4bool isUserFileName) final; + G4bool GetTNtupleRow(G4TRNtupleDescription* ntupleDescription) final; // Static data members static constexpr std::string_view fkClass { "G4XmlRNtupleManager" }; @@ -92,6 +93,8 @@ class G4XmlRNtupleManager : public G4TRNtupleManager inline void G4XmlRNtupleManager::SetFileManager(std::shared_ptr fileManager) -{ fFileManager = fileManager; } +{ + fFileManager = std::move(fileManager); +} #endif diff --git a/source/analysis/xml/src/G4XmlAnalysisManager.cc b/source/analysis/xml/src/G4XmlAnalysisManager.cc index 672e46b2b5..321ef7a765 100644 --- a/source/analysis/xml/src/G4XmlAnalysisManager.cc +++ b/source/analysis/xml/src/G4XmlAnalysisManager.cc @@ -55,132 +55,19 @@ G4bool G4XmlAnalysisManager::IsInstance() G4XmlAnalysisManager::G4XmlAnalysisManager() : G4ToolsAnalysisManager("Xml") { - if ( ! G4Threading::IsWorkerThread() ) fgMasterInstance = this; - // File Manager - fFileManager = std::make_shared(fState); - SetFileManager(fFileManager); + auto fileManager = std::make_shared(fState); + SetFileManager(fileManager); // Ntuple file manager fNtupleFileManager = std::make_shared(fState); - fNtupleFileManager->SetFileManager(fFileManager); + SetNtupleFileManager(fNtupleFileManager); + fNtupleFileManager->SetFileManager(fileManager); fNtupleFileManager->SetBookingManager(fNtupleBookingManager); } //_____________________________________________________________________________ G4XmlAnalysisManager::~G4XmlAnalysisManager() { - if ( fState.GetIsMaster() ) fgMasterInstance = nullptr; fgIsInstance = false; } - -// -// protected methods -// - -//_____________________________________________________________________________ -G4bool G4XmlAnalysisManager::OpenFileImpl(const G4String& fileName) -{ - // Create ntuple manager(s) - // and set it to base class which takes then their ownership - SetNtupleManager(fNtupleFileManager->CreateNtupleManager()); - - auto result = true; - - // Save file name in file manager - result &= fFileManager->OpenFile(fileName); - - // Open ntuple files and create ntuples from bookings - result &= fNtupleFileManager->ActionAtOpenFile(fFileManager->GetFullFileName()); - - return result; -} - -//_____________________________________________________________________________ -G4bool G4XmlAnalysisManager::WriteImpl() -{ - auto result = true; - - Message(kVL4, "write", "files"); - - // ntuples - fNtupleFileManager->ActionAtWrite(); - - if ( G4Threading::IsWorkerThread() ) { - result &= G4ToolsAnalysisManager::Merge(); - } - else { - // Open all files registered with objects - fFileManager->OpenFiles(); - - // Write all histograms/profile on master - result &= G4ToolsAnalysisManager::WriteImpl(); - } - - // Write ASCII if activated - if ( IsAscii() ) { - result &= WriteAscii(fFileManager->GetFileName()); - } - - // File - result &= fFileManager->WriteFiles(); - - Message(kVL3, "write", "files", "", result); - - return result; -} - -//_____________________________________________________________________________ -G4bool G4XmlAnalysisManager::CloseFileImpl(G4bool reset) -{ - auto result = true; - - Message(kVL4, "close", "files"); - - // Close open files - result &= fFileManager->CloseFiles(); - - // Close ntuple files - result &= fNtupleFileManager->ActionAtCloseFile(reset); - - // Reset data - if ( reset ) { - if ( ! Reset() ) { - Warn("Resetting data failed", fkClass, "CloseFileImpl"); - result = false; - } - } - - // delete files if empty - // (ntuple files are created only if an ntuple is created) - if ( fFileManager->GetFile() && G4ToolsAnalysisManager::IsEmpty() ) { - if ( std::remove(fFileManager->GetFullFileName()) ) { - // std::remove returns 0 when success - Warn(G4String( - "Removing file ") + fFileManager->GetFullFileName() + " failed", - fkClass, "CloseFileImpl"); - result = false; - } - Message(kVL1, "delete", "empty file", fFileManager->GetFullFileName()); - } - else { - Message(kVL3, "close", "files"); - } - - return result; -} - -//_____________________________________________________________________________ -G4bool G4XmlAnalysisManager::ResetImpl() -{ -// Reset histograms and ntuple - - auto result = true; - - result &= G4ToolsAnalysisManager::ResetImpl(); - if ( fNtupleFileManager != nullptr ) { - result &= fNtupleFileManager->Reset(); - } - - return result; -} diff --git a/source/analysis/xml/src/G4XmlFileManager.cc b/source/analysis/xml/src/G4XmlFileManager.cc index 6bd6319322..73ce1d3e03 100644 --- a/source/analysis/xml/src/G4XmlFileManager.cc +++ b/source/analysis/xml/src/G4XmlFileManager.cc @@ -56,14 +56,18 @@ G4XmlFileManager::G4XmlFileManager(const G4AnalysisManagerState& state) G4String G4XmlFileManager::GetNtupleFileName(XmlNtupleDescription* ntupleDescription) { // get ntuple file name - auto ntupleFileName = ntupleDescription->fFileName; - if ( ntupleFileName.size() ) { + auto ntupleFileName = ntupleDescription->GetFileName(); + if (ntupleFileName.size() != 0u) { // update filename per object per thread - ntupleFileName = GetTnFileName(ntupleFileName, GetFileType()); - } else { - // compose ntuple file name from the default file name - ntupleFileName = GetNtupleFileName(ntupleDescription->fNtupleBooking.name()); + ntupleFileName = + GetTnFileName(ntupleFileName, GetFileType()/*, ntupleDescription->GetCycle()*/); } + else { + // compose ntuple file name from the default file name + ntupleFileName = GetNtupleFileName( + ntupleDescription->GetNtupleBooking().name()/*, ntupleDescription->GetCycle()*/); + } + return ntupleFileName; } @@ -138,54 +142,31 @@ G4bool G4XmlFileManager::OpenFile(const G4String& fileName) G4bool G4XmlFileManager::CreateNtupleFile( XmlNtupleDescription* ntupleDescription) { - // get ntuple file name per object (if defined) + // Get ntuple file name per object (if defined) auto ntupleFileName = GetNtupleFileName(ntupleDescription); - Message(kVL4, "create", "ntuple file", ntupleFileName); - - // update file name if it is already in use - while ( GetTFile(ntupleFileName, false) ) { - // the file is already in use - auto oldName = ntupleDescription->fFileName; - auto newName = GetBaseName(oldName) + "_bis." + GetExtension(oldName); - ntupleDescription->fFileName = newName; - - Warn(G4String( "Ntuple filename ") + oldName + " is already in use.\n" + - "It will be replaced with : " + newName, - fkClass, "CreateNtupleFile"); - - ntupleFileName = GetNtupleFileName(ntupleDescription); + // Create ntuple file name if it does not yet exist + auto ntupleFile = GetTFile(ntupleFileName, false); + if ( ntupleFile == nullptr) { + ntupleFile = CreateTFile(ntupleFileName); } - ntupleDescription->fFile = CreateTFile(ntupleFileName); + ntupleDescription->SetFile(ntupleFile); - Message(kVL2, "create", "ntuple file", ntupleFileName); - - return (ntupleDescription->fFile != nullptr); + return (ntupleDescription->GetFile() != nullptr); } //_____________________________________________________________________________ G4bool G4XmlFileManager::CloseNtupleFile( XmlNtupleDescription* ntupleDescription) { - // Do nothing if there is no file - if ( ! ntupleDescription->fFile ) return true; - - auto result = true; - - auto ntupleFileName = GetNtupleFileName(ntupleDescription); - - Message(kVL4, "close", "ntuple file", ntupleFileName); - - // Close file - result &= CloseTFile(ntupleFileName); // Notify not empty file - result &=SetIsEmpty(ntupleFileName, ! ntupleDescription->fHasFill); + auto ntupleFileName = GetNtupleFileName(ntupleDescription); + auto result = SetIsEmpty(ntupleFileName, ! ntupleDescription->GetHasFill()); - // Reset file info in ntuple description - ntupleDescription->fFile.reset(); - - Message(kVL2, "close", "ntuple file", ntupleFileName); + // Ntuple files are registered in file manager map. + // they will be closed with CloseFiles() calls + ntupleDescription->GetFile().reset(); return result; } diff --git a/source/analysis/xml/src/G4XmlNtupleFileManager.cc b/source/analysis/xml/src/G4XmlNtupleFileManager.cc index b3df48f833..bdc2edf321 100644 --- a/source/analysis/xml/src/G4XmlNtupleFileManager.cc +++ b/source/analysis/xml/src/G4XmlNtupleFileManager.cc @@ -41,24 +41,6 @@ G4XmlNtupleFileManager::G4XmlNtupleFileManager(const G4AnalysisManagerState& sta : G4VNtupleFileManager(state, "csv") {} -// -// private methods -// - -//_____________________________________________________________________________ -G4bool G4XmlNtupleFileManager::CloseNtupleFiles() -{ - // Close ntuple files - - auto result = true; - auto ntupleVector = fNtupleManager->GetNtupleDescriptionVector(); - for ( auto ntupleDescription : ntupleVector) { - result &= fFileManager->CloseNtupleFile(ntupleDescription); - } - - return result; -} - // // public methods // @@ -88,27 +70,24 @@ G4bool G4XmlNtupleFileManager::ActionAtWrite() { auto ntupleVector = fNtupleManager->GetNtupleDescriptionVector(); - for ( auto ntuple : ntupleVector ) { - if ( ntuple->fNtuple ) ntuple->fNtuple->write_trailer(); + for ( auto ntupleDescription : ntupleVector ) { + if (ntupleDescription->GetNtuple() != nullptr) { + ntupleDescription->GetNtuple()->write_trailer(); + } } return true; } //_____________________________________________________________________________ -G4bool G4XmlNtupleFileManager::ActionAtCloseFile(G4bool reset) +G4bool G4XmlNtupleFileManager::ActionAtCloseFile() { auto result = true; // Close ntuple files - result &= CloseNtupleFiles(); - - // Reset data - if ( ! reset ) { - result = Reset(); - if ( ! result ) { - Warn("Resetting data failed", fkClass, "ActionAtCloseFile"); - } + auto ntupleVector = fNtupleManager->GetNtupleDescriptionVector(); + for ( auto ntupleDescription : ntupleVector) { + result &= fFileManager->CloseNtupleFile(ntupleDescription); } return result; diff --git a/source/analysis/xml/src/G4XmlNtupleManager.cc b/source/analysis/xml/src/G4XmlNtupleManager.cc index 2a13cb5e3f..42303bcae3 100644 --- a/source/analysis/xml/src/G4XmlNtupleManager.cc +++ b/source/analysis/xml/src/G4XmlNtupleManager.cc @@ -53,10 +53,11 @@ void G4XmlNtupleManager::CreateTNtupleFromBooking( if ( ! fFileManager->CreateNtupleFile(ntupleDescription) ) return; // create ntuple - ntupleDescription->fNtuple - = new tools::waxml::ntuple( - *(ntupleDescription->fFile), G4cerr, ntupleDescription->fNtupleBooking); - fNtupleVector.push_back(ntupleDescription->fNtuple); + ntupleDescription->SetNtuple( + new tools::waxml::ntuple( + *(ntupleDescription->GetFile()), G4cerr, + ntupleDescription->GetNtupleBooking())); + fNtupleVector.push_back(ntupleDescription->GetNtuple()); } //_____________________________________________________________________________ @@ -66,24 +67,32 @@ void G4XmlNtupleManager::FinishTNtuple( { // Do nothing if the base file name was not yet defined - if ( ! fFileManager->GetFileName().size() ) return; + if (fFileManager->GetFileName().size() == 0u) return; // Create ntuple from booking - if ( ! ntupleDescription->fNtuple ) { + if (ntupleDescription->GetNtuple() == nullptr) { CreateTNtupleFromBooking(ntupleDescription); } // Return if creating ntuple failed - if ( ! ntupleDescription->fNtuple ) { + if (ntupleDescription->GetNtuple() == nullptr) { Warn("Creating ntuple has failed. ", fkClass, "FinishTNtuple"); return; } + // Update ntuple name if cycle >0 + auto ntupleName = ntupleDescription->GetNtupleBooking().name(); + // if (ntupleDescription->GetCycle() > 0) { + if (GetCycle() > 0) { + ntupleName.append("_v"); + ntupleName.append(std::to_string(GetCycle())); + } + // Write header G4String path = "/"; path.append(fFileManager->GetNtupleDirectoryName()); - ntupleDescription->fNtuple - ->write_header(path, ntupleDescription->fNtupleBooking.name(), - ntupleDescription->fNtupleBooking.title()); + ntupleDescription->GetNtuple() + ->write_header(path, ntupleName, + ntupleDescription->GetNtupleBooking().title()); fFileManager->LockDirectoryNames(); } diff --git a/source/analysis/xml/src/G4XmlRFileManager.cc b/source/analysis/xml/src/G4XmlRFileManager.cc index 35d8ef548e..846fc943c9 100644 --- a/source/analysis/xml/src/G4XmlRFileManager.cc +++ b/source/analysis/xml/src/G4XmlRFileManager.cc @@ -74,7 +74,7 @@ G4bool G4XmlRFileManager::OpenRFile(const G4String& fileName) G4bool verbose = false; // create factory (if it does not yet exist) - if ( ! fReadFactory ) { + if (fReadFactory == nullptr) { fReadFactory = new tools::xml::default_factory(); } @@ -116,9 +116,8 @@ toolx::raxml* G4XmlRFileManager::GetRFile(const G4String& fileName) const G4String name = GetFullFileName(fileName, isPerThread); auto it = fRFiles.find(name); - if ( it != fRFiles.end() ) + if (it != fRFiles.end()) { return it->second; - else { - return nullptr; } + return nullptr; } diff --git a/source/analysis/xml/src/G4XmlRNtupleManager.cc b/source/analysis/xml/src/G4XmlRNtupleManager.cc index 9532162a6f..0d445f29ce 100644 --- a/source/analysis/xml/src/G4XmlRNtupleManager.cc +++ b/source/analysis/xml/src/G4XmlRNtupleManager.cc @@ -88,7 +88,7 @@ G4int G4XmlRNtupleManager::ReadNtupleImpl(const G4String& ntupleName, auto handler = fFileManager->GetHandler( fullFileName, ntupleName, "ReadNtupleImpl"); - if ( ! handler ) return kInvalidId; + if (handler == nullptr) return kInvalidId; auto rntuple = static_cast(handler->object()); auto id = SetNtuple(new G4TRNtupleDescription(rntuple)); @@ -109,7 +109,7 @@ G4bool G4XmlRNtupleManager::SetNtupleIColumn(G4int ntupleId, " ntupleId " + to_string(ntupleId) + " " + columnName); auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "SetNtupleIColumn"); - if ( ! ntupleDescription ) return false; + if (ntupleDescription == nullptr) return false; // not supported //tools::ntuple_binding* ntupleBinding = ntupleDescription->fNtupleBinding; @@ -138,7 +138,7 @@ G4bool G4XmlRNtupleManager::SetNtupleFColumn(G4int ntupleId, auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "SetNtupleFColumn"); - if ( ! ntupleDescription ) return false; + if (ntupleDescription == nullptr) return false; // not supported //tools::ntuple_binding* ntupleBinding = ntupleDescription->fNtupleBinding; @@ -166,7 +166,7 @@ G4bool G4XmlRNtupleManager::SetNtupleDColumn(G4int ntupleId, " ntupleId " + to_string(ntupleId) + " " + columnName); auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "SetNtupleDColumn"); - if ( ! ntupleDescription ) return false; + if (ntupleDescription == nullptr) return false; // not supported //tools::ntuple_binding* ntupleBinding = ntupleDescription->fNtupleBinding; @@ -194,7 +194,7 @@ G4bool G4XmlRNtupleManager::SetNtupleSColumn(G4int ntupleId, " ntupleId " + to_string(ntupleId) + " " + columnName); auto ntupleDescription = GetNtupleDescriptionInFunction(ntupleId, "SetNtupleSColumn"); - if ( ! ntupleDescription ) return false; + if (ntupleDescription == nullptr) return false; // not supported //tools::ntuple_binding* ntupleBinding = ntupleDescription->fNtupleBinding; diff --git a/source/digits_hits/History b/source/digits_hits/History index cef6a643b9..7d20b102b6 100644 --- a/source/digits_hits/History +++ b/source/digits_hits/History @@ -1,8 +1,16 @@ # Category digits_hits History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-17 Gabriele Cosmo (digits_hits-V11-00-04) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-09-05 Ben Morgan (digits_hits-V11-00-03) +- Add needed public dependency to G4detscorer ## 2022-01-28 Ben Morgan (digits_hits-V11-00-02) - Replace `geant4_global_library_target` with direct file inclusion and diff --git a/source/digits_hits/detector/History b/source/digits_hits/detector/History index ee73732b44..39681b7154 100644 --- a/source/digits_hits/detector/History +++ b/source/digits_hits/detector/History @@ -1,9 +1,13 @@ # Category det History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-17 Gabriele Cosmo (det-V11-00-01) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2021-12-10 Ben Morgan (det-V11-00-00) - Change to new Markdown History format diff --git a/source/digits_hits/detector/include/G4VPrimitivePlotter.hh b/source/digits_hits/detector/include/G4VPrimitivePlotter.hh index 63baf59ec0..3358ac1b61 100644 --- a/source/digits_hits/detector/include/G4VPrimitivePlotter.hh +++ b/source/digits_hits/detector/include/G4VPrimitivePlotter.hh @@ -48,7 +48,7 @@ class G4VPrimitivePlotter : public G4VPrimitiveScorer std::map hitIDMap; public: - G4int GetNumberOfHist() const { return hitIDMap.size(); } + G4int GetNumberOfHist() const { return (G4int)hitIDMap.size(); } }; #endif diff --git a/source/digits_hits/detector/src/G4HCtable.cc b/source/digits_hits/detector/src/G4HCtable.cc index 8fb349af5e..64389fe05a 100644 --- a/source/digits_hits/detector/src/G4HCtable.cc +++ b/source/digits_hits/detector/src/G4HCtable.cc @@ -35,14 +35,14 @@ G4HCtable::~G4HCtable() { ; } G4int G4HCtable::Registor(G4String SDname, G4String HCname) { - for(size_t i = 0; i < HClist.size(); i++) + for(std::size_t i = 0; i < HClist.size(); ++i) { if(HClist[i] == HCname && SDlist[i] == SDname) return -1; } HClist.push_back(HCname); SDlist.push_back(SDname); - return HClist.size(); + return (G4int)HClist.size(); } G4int G4HCtable::GetCollectionID(G4String HCname) const @@ -50,19 +50,19 @@ G4int G4HCtable::GetCollectionID(G4String HCname) const G4int i = -1; if(HCname.find("/") == std::string::npos) // HCname only { - for(size_t j = 0; j < HClist.size(); j++) + for(std::size_t j = 0; j < HClist.size(); ++j) { if(HClist[j] == HCname) { if(i >= 0) return -2; - i = j; + i = (G4int)j; } } } else { - for(size_t j = 0; j < HClist.size(); j++) + for(std::size_t j = 0; j < HClist.size(); ++j) { G4String tgt = SDlist[j]; tgt += "/"; @@ -71,7 +71,7 @@ G4int G4HCtable::GetCollectionID(G4String HCname) const { if(i >= 0) return -2; - i = j; + i = (G4int)j; } } } @@ -91,17 +91,17 @@ G4int G4HCtable::GetCollectionID(G4VSensitiveDetector* aSD) const G4cerr << "Sensitive detector <" << aSD->GetName() << "> has more than one registered hits collections." << G4endl; G4cerr << "Candidates are : "; - for(G4int j = 0; j < aSD->GetNumberOfCollections(); j++) + for(G4int j = 0; j < aSD->GetNumberOfCollections(); ++j) { G4cerr << aSD->GetCollectionName(j) << " "; } G4cerr << G4endl; return -1; } - for(size_t k = 0; k < SDlist.size(); k++) + for(std::size_t k = 0; k < SDlist.size(); ++k) { if(SDlist[k] == aSD->GetName()) - return k; + return (G4int)k; } return -1; } diff --git a/source/digits_hits/detector/src/G4SDStructure.cc b/source/digits_hits/detector/src/G4SDStructure.cc index 30308fb7c9..f3dce22d82 100644 --- a/source/digits_hits/detector/src/G4SDStructure.cc +++ b/source/digits_hits/detector/src/G4SDStructure.cc @@ -35,11 +35,11 @@ G4SDStructure::G4SDStructure(const G4String& aPath) { pathName = aPath; dirName = aPath; - G4int i = dirName.length(); + auto i = dirName.length(); if(i > 1) { dirName.erase(i - 1); - G4int isl = dirName.rfind('/'); + auto isl = dirName.rfind('/'); dirName.erase(0, isl + 1); dirName += "/"; } diff --git a/source/digits_hits/detector/src/G4TrackLogger.cc b/source/digits_hits/detector/src/G4TrackLogger.cc index 3aae5f5254..2684d84717 100644 --- a/source/digits_hits/detector/src/G4TrackLogger.cc +++ b/source/digits_hits/detector/src/G4TrackLogger.cc @@ -52,7 +52,7 @@ void G4TrackLogger::SetEventID(G4int id) G4bool G4TrackLogger::FirstEnterance(G4int trid) { G4bool first = true; - G4int n = fTrackIDsSet.count(trid); + auto n = fTrackIDsSet.count(trid); if(n == 1) { first = false; diff --git a/source/digits_hits/scorer/History b/source/digits_hits/scorer/History index 2771ae36c8..c4674a7925 100644 --- a/source/digits_hits/scorer/History +++ b/source/digits_hits/scorer/History @@ -4,6 +4,13 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-10-03 Ben Morgan (detscorer-V11-00-01) +- Apply standard clang-tidy plus range-based for and boolean simplification fixes +- General code tidy and modernization + - Use consistent, grouped ordering of public-protected-private members + - Do not override virtual members when no difference to base class implementation + - Use delegating constructors to remove duplicated code + - Use C++ boolean true/false keywords ## 2021-12-10 Ben Morgan (detscorer-V11-00-00) - Change to new Markdown History format diff --git a/source/digits_hits/scorer/include/G4PSCellCharge.hh b/source/digits_hits/scorer/include/G4PSCellCharge.hh index 1ffec61431..bae436ebfe 100644 --- a/source/digits_hits/scorer/include/G4PSCellCharge.hh +++ b/source/digits_hits/scorer/include/G4PSCellCharge.hh @@ -43,23 +43,20 @@ class G4PSCellCharge : public G4VPrimitiveScorer { - public: // with description + public: G4PSCellCharge(G4String name, G4int depth = 0); G4PSCellCharge(G4String name, const G4String& unit, G4int depth = 0); - virtual ~G4PSCellCharge(); + ~G4PSCellCharge() override = default; - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + private: G4int HCID; G4THitsMap* EvtMap; diff --git a/source/digits_hits/scorer/include/G4PSCellCharge3D.hh b/source/digits_hits/scorer/include/G4PSCellCharge3D.hh index 499332db21..430993e7c8 100644 --- a/source/digits_hits/scorer/include/G4PSCellCharge3D.hh +++ b/source/digits_hits/scorer/include/G4PSCellCharge3D.hh @@ -42,17 +42,17 @@ class G4PSCellCharge3D : public G4PSCellCharge { - public: // with description + public: G4PSCellCharge3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); G4PSCellCharge3D(G4String name, const G4String& unit, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSCellCharge3D(); + ~G4PSCellCharge3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSCellFlux.hh b/source/digits_hits/scorer/include/G4PSCellFlux.hh index fd108bb8ed..87b5820318 100644 --- a/source/digits_hits/scorer/include/G4PSCellFlux.hh +++ b/source/digits_hits/scorer/include/G4PSCellFlux.hh @@ -56,29 +56,23 @@ class G4VSolid; class G4PSCellFlux : public G4VPrimitivePlotter { - public: // with description + public: G4PSCellFlux(G4String name, G4int depth = 0); G4PSCellFlux(G4String name, const G4String& unit, G4int depth = 0); - virtual ~G4PSCellFlux(); + ~G4PSCellFlux() override = default; inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - - virtual G4double ComputeVolume(G4Step*, G4int idx); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + virtual G4double ComputeVolume(G4Step*, G4int idx); virtual void DefineUnitAndCategory(); private: diff --git a/source/digits_hits/scorer/include/G4PSCellFlux3D.hh b/source/digits_hits/scorer/include/G4PSCellFlux3D.hh index fb498825bd..6e04783a8e 100644 --- a/source/digits_hits/scorer/include/G4PSCellFlux3D.hh +++ b/source/digits_hits/scorer/include/G4PSCellFlux3D.hh @@ -49,16 +49,16 @@ class G4PSCellFlux3D : public G4PSCellFlux { - public: // with description + public: G4PSCellFlux3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); G4PSCellFlux3D(G4String name, const G4String& unit, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSCellFlux3D(); + ~G4PSCellFlux3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSCellFluxForCylinder3D.hh b/source/digits_hits/scorer/include/G4PSCellFluxForCylinder3D.hh index 7aac0e5421..e8583d7d07 100644 --- a/source/digits_hits/scorer/include/G4PSCellFluxForCylinder3D.hh +++ b/source/digits_hits/scorer/include/G4PSCellFluxForCylinder3D.hh @@ -50,20 +50,20 @@ class G4PSCellFluxForCylinder3D : public G4PSCellFlux3D { - public: // with description + public: G4PSCellFluxForCylinder3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); G4PSCellFluxForCylinder3D(G4String name, const G4String& unit, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSCellFluxForCylinder3D(); + ~G4PSCellFluxForCylinder3D() override = default; void SetCylinderSize(G4ThreeVector cylSize, G4double startAng, G4double angSpan); void SetNumberOfSegments(G4int nSeg[3]); - protected: // with description - virtual G4double ComputeVolume(G4Step*, G4int idx); + protected: + G4double ComputeVolume(G4Step*, G4int idx) override; private: // Order of segmentation (Z PHI R) in CylinderMesh diff --git a/source/digits_hits/scorer/include/G4PSCylinderSurfaceCurrent.hh b/source/digits_hits/scorer/include/G4PSCylinderSurfaceCurrent.hh index 895c3c1c70..534a7fbd82 100644 --- a/source/digits_hits/scorer/include/G4PSCylinderSurfaceCurrent.hh +++ b/source/digits_hits/scorer/include/G4PSCylinderSurfaceCurrent.hh @@ -59,11 +59,11 @@ class G4PSCylinderSurfaceCurrent : public G4VPrimitivePlotter { - public: // with description + public: G4PSCylinderSurfaceCurrent(G4String name, G4int direction, G4int depth = 0); G4PSCylinderSurfaceCurrent(G4String name, G4int direction, const G4String& unit, G4int depth = 0); - virtual ~G4PSCylinderSurfaceCurrent(); + ~G4PSCylinderSurfaceCurrent() override = default; inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight @@ -71,20 +71,15 @@ class G4PSCylinderSurfaceCurrent : public G4VPrimitivePlotter inline void DivideByArea(G4bool flg = true) { divideByArea = flg; } // Divided by Area. - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - G4int IsSelectedSurface(G4Step*, G4Tubs*); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); - protected: + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + G4int IsSelectedSurface(G4Step*, G4Tubs*); virtual void DefineUnitAndCategory(); private: diff --git a/source/digits_hits/scorer/include/G4PSCylinderSurfaceCurrent3D.hh b/source/digits_hits/scorer/include/G4PSCylinderSurfaceCurrent3D.hh index e3928904a6..2071bd2a60 100644 --- a/source/digits_hits/scorer/include/G4PSCylinderSurfaceCurrent3D.hh +++ b/source/digits_hits/scorer/include/G4PSCylinderSurfaceCurrent3D.hh @@ -51,7 +51,7 @@ class G4PSCylinderSurfaceCurrent3D : public G4PSCylinderSurfaceCurrent { - public: // with description + public: G4PSCylinderSurfaceCurrent3D(G4String name, G4int direction, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); @@ -59,10 +59,10 @@ class G4PSCylinderSurfaceCurrent3D : public G4PSCylinderSurfaceCurrent const G4String& unit, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSCylinderSurfaceCurrent3D(); + ~G4PSCylinderSurfaceCurrent3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSCylinderSurfaceFlux.hh b/source/digits_hits/scorer/include/G4PSCylinderSurfaceFlux.hh index 4af6a18199..75f72c4496 100644 --- a/source/digits_hits/scorer/include/G4PSCylinderSurfaceFlux.hh +++ b/source/digits_hits/scorer/include/G4PSCylinderSurfaceFlux.hh @@ -59,11 +59,11 @@ class G4PSCylinderSurfaceFlux : public G4VPrimitivePlotter { - public: // with description + public: G4PSCylinderSurfaceFlux(G4String name, G4int direction, G4int depth = 0); G4PSCylinderSurfaceFlux(G4String name, G4int direction, const G4String& unit, G4int depth = 0); - virtual ~G4PSCylinderSurfaceFlux(); + ~G4PSCylinderSurfaceFlux() override = default; inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight @@ -71,20 +71,15 @@ class G4PSCylinderSurfaceFlux : public G4VPrimitivePlotter inline void DivideByArea(G4bool flg = true) { divideByArea = flg; } // Divided by Area. - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - G4int IsSelectedSurface(G4Step*, G4Tubs*); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + G4int IsSelectedSurface(G4Step*, G4Tubs*); virtual void DefineUnitAndCategory(); private: diff --git a/source/digits_hits/scorer/include/G4PSCylinderSurfaceFlux3D.hh b/source/digits_hits/scorer/include/G4PSCylinderSurfaceFlux3D.hh index 1928e5b156..d3102ae1bd 100644 --- a/source/digits_hits/scorer/include/G4PSCylinderSurfaceFlux3D.hh +++ b/source/digits_hits/scorer/include/G4PSCylinderSurfaceFlux3D.hh @@ -51,7 +51,7 @@ class G4PSCylinderSurfaceFlux3D : public G4PSCylinderSurfaceFlux { - public: // with description + public: G4PSCylinderSurfaceFlux3D(G4String name, G4int direction, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int di = 2, G4int dj = 1, G4int dk = 0); @@ -59,10 +59,10 @@ class G4PSCylinderSurfaceFlux3D : public G4PSCylinderSurfaceFlux const G4String& unit, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int di = 2, G4int dj = 1, G4int dk = 0); - virtual ~G4PSCylinderSurfaceFlux3D(); + ~G4PSCylinderSurfaceFlux3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSDoseDeposit.hh b/source/digits_hits/scorer/include/G4PSDoseDeposit.hh index 0e8eed72ee..8319b17373 100644 --- a/source/digits_hits/scorer/include/G4PSDoseDeposit.hh +++ b/source/digits_hits/scorer/include/G4PSDoseDeposit.hh @@ -45,25 +45,21 @@ class G4PSDoseDeposit : public G4VPrimitivePlotter { - public: // with description + public: G4PSDoseDeposit(G4String name, G4int depth = 0); G4PSDoseDeposit(G4String name, const G4String& unit, G4int depth = 0); - virtual ~G4PSDoseDeposit(); + ~G4PSDoseDeposit() override = default; - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - - virtual G4double ComputeVolume(G4Step*, G4int idx); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + virtual G4double ComputeVolume(G4Step*, G4int idx); + private: G4int HCID; G4THitsMap* EvtMap; diff --git a/source/digits_hits/scorer/include/G4PSDoseDeposit3D.hh b/source/digits_hits/scorer/include/G4PSDoseDeposit3D.hh index 7f0981dd3e..4c0f0ee643 100644 --- a/source/digits_hits/scorer/include/G4PSDoseDeposit3D.hh +++ b/source/digits_hits/scorer/include/G4PSDoseDeposit3D.hh @@ -42,17 +42,17 @@ class G4PSDoseDeposit3D : public G4PSDoseDeposit { - public: // with description + public: G4PSDoseDeposit3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); G4PSDoseDeposit3D(G4String name, const G4String& unit, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSDoseDeposit3D(); + ~G4PSDoseDeposit3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSDoseDepositForCylinder3D.hh b/source/digits_hits/scorer/include/G4PSDoseDepositForCylinder3D.hh index e38fff8e79..d7e9ca7175 100644 --- a/source/digits_hits/scorer/include/G4PSDoseDepositForCylinder3D.hh +++ b/source/digits_hits/scorer/include/G4PSDoseDepositForCylinder3D.hh @@ -43,7 +43,7 @@ class G4PSDoseDepositForCylinder3D : public G4PSDoseDeposit3D { - public: // with description + public: G4PSDoseDepositForCylinder3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); @@ -51,13 +51,13 @@ class G4PSDoseDepositForCylinder3D : public G4PSDoseDeposit3D G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSDoseDepositForCylinder3D(); + ~G4PSDoseDepositForCylinder3D() override = default; void SetCylinderSize(G4ThreeVector cylSize, G4double startAng, G4double angSpan); void SetNumberOfSegments(G4int nSeg[3]); - protected: // with description - virtual G4double ComputeVolume(G4Step*, G4int idx); + protected: + G4double ComputeVolume(G4Step*, G4int idx) override; private: // Order of segmentation (Z PHI R) in CylinderMesh diff --git a/source/digits_hits/scorer/include/G4PSEnergyDeposit.hh b/source/digits_hits/scorer/include/G4PSEnergyDeposit.hh index 4ab898f628..f4b2fe9818 100644 --- a/source/digits_hits/scorer/include/G4PSEnergyDeposit.hh +++ b/source/digits_hits/scorer/include/G4PSEnergyDeposit.hh @@ -46,23 +46,21 @@ class G4PSEnergyDeposit : public G4VPrimitivePlotter { - public: // with description + public: G4PSEnergyDeposit(G4String name, G4int depth = 0); // default unit G4PSEnergyDeposit(G4String name, const G4String& unit, G4int depth = 0); - virtual ~G4PSEnergyDeposit(); - - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); + ~G4PSEnergyDeposit() override = default; public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + private: G4int HCID; G4THitsMap* EvtMap; diff --git a/source/digits_hits/scorer/include/G4PSEnergyDeposit3D.hh b/source/digits_hits/scorer/include/G4PSEnergyDeposit3D.hh index b678ee246b..83287916ac 100644 --- a/source/digits_hits/scorer/include/G4PSEnergyDeposit3D.hh +++ b/source/digits_hits/scorer/include/G4PSEnergyDeposit3D.hh @@ -40,17 +40,17 @@ class G4PSEnergyDeposit3D : public G4PSEnergyDeposit { - public: // with description + public: G4PSEnergyDeposit3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); G4PSEnergyDeposit3D(G4String name, const G4String& unit, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSEnergyDeposit3D(); + ~G4PSEnergyDeposit3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSFlatSurfaceCurrent.hh b/source/digits_hits/scorer/include/G4PSFlatSurfaceCurrent.hh index 264ad5f072..a12a3fd4cf 100644 --- a/source/digits_hits/scorer/include/G4PSFlatSurfaceCurrent.hh +++ b/source/digits_hits/scorer/include/G4PSFlatSurfaceCurrent.hh @@ -60,32 +60,27 @@ class G4PSFlatSurfaceCurrent : public G4VPrimitivePlotter { - public: // with description + public: G4PSFlatSurfaceCurrent(G4String name, G4int direction, G4int depth = 0); G4PSFlatSurfaceCurrent(G4String name, G4int direction, const G4String& unit, G4int depth = 0); - virtual ~G4PSFlatSurfaceCurrent(); + ~G4PSFlatSurfaceCurrent() override = default; // Scoring options inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight inline void DivideByArea(G4bool flg = true) { divideByArea = flg; } // Divided By Area - - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - G4int IsSelectedSurface(G4Step*, G4Box*); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - virtual void DrawAll(); - virtual void PrintAll(); + + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + G4int IsSelectedSurface(G4Step*, G4Box*); virtual void DefineUnitAndCategory(); private: diff --git a/source/digits_hits/scorer/include/G4PSFlatSurfaceCurrent3D.hh b/source/digits_hits/scorer/include/G4PSFlatSurfaceCurrent3D.hh index 9b4f8335f4..804d728753 100644 --- a/source/digits_hits/scorer/include/G4PSFlatSurfaceCurrent3D.hh +++ b/source/digits_hits/scorer/include/G4PSFlatSurfaceCurrent3D.hh @@ -51,17 +51,17 @@ class G4PSFlatSurfaceCurrent3D : public G4PSFlatSurfaceCurrent { - public: // with description + public: G4PSFlatSurfaceCurrent3D(G4String name, G4int direction, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); G4PSFlatSurfaceCurrent3D(G4String name, G4int direction, const G4String& unit, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSFlatSurfaceCurrent3D(); + ~G4PSFlatSurfaceCurrent3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSFlatSurfaceFlux.hh b/source/digits_hits/scorer/include/G4PSFlatSurfaceFlux.hh index c68aa2fa3a..7e5cf8c58b 100644 --- a/source/digits_hits/scorer/include/G4PSFlatSurfaceFlux.hh +++ b/source/digits_hits/scorer/include/G4PSFlatSurfaceFlux.hh @@ -62,11 +62,11 @@ class G4PSFlatSurfaceFlux : public G4VPrimitivePlotter { - public: // with description + public: G4PSFlatSurfaceFlux(G4String name, G4int direction, G4int depth = 0); G4PSFlatSurfaceFlux(G4String name, G4int direction, const G4String& unit, G4int depth = 0); - virtual ~G4PSFlatSurfaceFlux(); + ~G4PSFlatSurfaceFlux() override = default; inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight @@ -74,20 +74,15 @@ class G4PSFlatSurfaceFlux : public G4VPrimitivePlotter inline void DivideByArea(G4bool flg = true) { divideByArea = flg; } // Divided by Area. - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - G4int IsSelectedSurface(G4Step*, G4Box*); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + G4int IsSelectedSurface(G4Step*, G4Box*); virtual void DefineUnitAndCategory(); private: diff --git a/source/digits_hits/scorer/include/G4PSFlatSurfaceFlux3D.hh b/source/digits_hits/scorer/include/G4PSFlatSurfaceFlux3D.hh index 19142e266a..bb5c59da7e 100644 --- a/source/digits_hits/scorer/include/G4PSFlatSurfaceFlux3D.hh +++ b/source/digits_hits/scorer/include/G4PSFlatSurfaceFlux3D.hh @@ -53,17 +53,17 @@ class G4PSFlatSurfaceFlux3D : public G4PSFlatSurfaceFlux { - public: // with description + public: G4PSFlatSurfaceFlux3D(G4String name, G4int direction, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); G4PSFlatSurfaceFlux3D(G4String name, G4int direction, const G4String& unit, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSFlatSurfaceFlux3D(); + ~G4PSFlatSurfaceFlux3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSMinKinEAtGeneration.hh b/source/digits_hits/scorer/include/G4PSMinKinEAtGeneration.hh index 4f505cfbbd..4339276c63 100644 --- a/source/digits_hits/scorer/include/G4PSMinKinEAtGeneration.hh +++ b/source/digits_hits/scorer/include/G4PSMinKinEAtGeneration.hh @@ -47,32 +47,23 @@ class G4PSMinKinEAtGeneration : public G4VPrimitivePlotter { - public: // with description + public: G4PSMinKinEAtGeneration(G4String name, G4int depth = 0); G4PSMinKinEAtGeneration(G4String name, const G4String& unit, G4int depth = 0); + ~G4PSMinKinEAtGeneration() override = default; - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - - public: - virtual ~G4PSMinKinEAtGeneration(); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - - public: - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + private: G4int HCID; G4THitsMap* EvtMap; - - public: }; #endif diff --git a/source/digits_hits/scorer/include/G4PSMinKinEAtGeneration3D.hh b/source/digits_hits/scorer/include/G4PSMinKinEAtGeneration3D.hh index 71d7e1297e..a307e15795 100644 --- a/source/digits_hits/scorer/include/G4PSMinKinEAtGeneration3D.hh +++ b/source/digits_hits/scorer/include/G4PSMinKinEAtGeneration3D.hh @@ -44,17 +44,17 @@ class G4PSMinKinEAtGeneration3D : public G4PSMinKinEAtGeneration { - public: // with description + public: G4PSMinKinEAtGeneration3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); G4PSMinKinEAtGeneration3D(G4String name, const G4String& unit, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSMinKinEAtGeneration3D(); + ~G4PSMinKinEAtGeneration3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSNofCollision.hh b/source/digits_hits/scorer/include/G4PSNofCollision.hh index 55617f7b70..06f4ee5954 100644 --- a/source/digits_hits/scorer/include/G4PSNofCollision.hh +++ b/source/digits_hits/scorer/include/G4PSNofCollision.hh @@ -43,35 +43,26 @@ class G4PSNofCollision : public G4VPrimitiveScorer { - public: // with description - G4PSNofCollision(G4String name, G4int depth = 0); - - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - public: - virtual ~G4PSNofCollision(); + G4PSNofCollision(G4String name, G4int depth = 0); + ~G4PSNofCollision() override = default; inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - - public: - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); - private: - G4int HCID; - G4THitsMap* EvtMap; - G4bool weighted; + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; - public: + private: + G4int HCID{-1}; + G4THitsMap* EvtMap{nullptr}; + G4bool weighted{false}; }; #endif diff --git a/source/digits_hits/scorer/include/G4PSNofCollision3D.hh b/source/digits_hits/scorer/include/G4PSNofCollision3D.hh index 56dcba8728..6416238486 100644 --- a/source/digits_hits/scorer/include/G4PSNofCollision3D.hh +++ b/source/digits_hits/scorer/include/G4PSNofCollision3D.hh @@ -41,15 +41,13 @@ class G4PSNofCollision3D : public G4PSNofCollision { - public: // with description + public: G4PSNofCollision3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); + ~G4PSNofCollision3D() override = default; - public: - virtual ~G4PSNofCollision3D(); - - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSNofSecondary.hh b/source/digits_hits/scorer/include/G4PSNofSecondary.hh index e467aa6375..c94bfc5742 100644 --- a/source/digits_hits/scorer/include/G4PSNofSecondary.hh +++ b/source/digits_hits/scorer/include/G4PSNofSecondary.hh @@ -52,8 +52,9 @@ class G4PSNofSecondary : public G4VPrimitivePlotter { - public: // with description + public: G4PSNofSecondary(G4String name, G4int depth = 0); + ~G4PSNofSecondary() override = default; // Scoring option void SetParticle(const G4String& particleName); @@ -61,30 +62,20 @@ class G4PSNofSecondary : public G4VPrimitivePlotter inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - - public: - virtual ~G4PSNofSecondary(); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - - public: - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); - private: - G4int HCID; - G4THitsMap* EvtMap; - G4ParticleDefinition* particleDef; - G4bool weighted; + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; - public: + private: + G4int HCID{-1}; + G4THitsMap* EvtMap{nullptr}; + G4ParticleDefinition* particleDef{nullptr}; + G4bool weighted{true}; }; #endif diff --git a/source/digits_hits/scorer/include/G4PSNofSecondary3D.hh b/source/digits_hits/scorer/include/G4PSNofSecondary3D.hh index f28875260f..57c279d798 100644 --- a/source/digits_hits/scorer/include/G4PSNofSecondary3D.hh +++ b/source/digits_hits/scorer/include/G4PSNofSecondary3D.hh @@ -40,13 +40,13 @@ class G4PSNofSecondary3D : public G4PSNofSecondary { - public: // with description + public: G4PSNofSecondary3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSNofSecondary3D(); + ~G4PSNofSecondary3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSNofStep.hh b/source/digits_hits/scorer/include/G4PSNofStep.hh index b32158e307..31e8a284e4 100644 --- a/source/digits_hits/scorer/include/G4PSNofStep.hh +++ b/source/digits_hits/scorer/include/G4PSNofStep.hh @@ -45,36 +45,25 @@ class G4PSNofStep : public G4VPrimitivePlotter { - public: // with description + public: G4PSNofStep(G4String name, G4int depth = 0); + ~G4PSNofStep() override = default; - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - - public: - virtual ~G4PSNofStep(); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - - public: - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); - - public: void SetBoundaryFlag(G4bool flg = true) { boundaryFlag = flg; } + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + private: - G4int HCID; - G4THitsMap* EvtMap; + G4int HCID{-1}; + G4THitsMap* EvtMap{nullptr}; - G4bool boundaryFlag; - - public: + G4bool boundaryFlag{false}; }; #endif diff --git a/source/digits_hits/scorer/include/G4PSNofStep3D.hh b/source/digits_hits/scorer/include/G4PSNofStep3D.hh index df779bba93..29da161f09 100644 --- a/source/digits_hits/scorer/include/G4PSNofStep3D.hh +++ b/source/digits_hits/scorer/include/G4PSNofStep3D.hh @@ -41,13 +41,13 @@ class G4PSNofStep3D : public G4PSNofStep { - public: // with description + public: G4PSNofStep3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSNofStep3D(); + ~G4PSNofStep3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSPassageCellCurrent.hh b/source/digits_hits/scorer/include/G4PSPassageCellCurrent.hh index 9eb4d7fa72..8225f63126 100644 --- a/source/digits_hits/scorer/include/G4PSPassageCellCurrent.hh +++ b/source/digits_hits/scorer/include/G4PSPassageCellCurrent.hh @@ -48,35 +48,30 @@ class G4PSPassageCellCurrent : public G4VPrimitivePlotter { - public: // with description + public: G4PSPassageCellCurrent(G4String name, G4int depth = 0); - virtual ~G4PSPassageCellCurrent(); + ~G4PSPassageCellCurrent() override = default; inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - - virtual G4bool IsPassed(G4Step*); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - - public: - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + + virtual G4bool IsPassed(G4Step*); + private: - G4int HCID; - G4int fCurrentTrkID; - G4double fCurrent; - G4THitsMap* EvtMap; - G4bool weighted; + G4int HCID{-1}; + G4int fCurrentTrkID{-1}; + G4double fCurrent{0}; + G4THitsMap* EvtMap{nullptr}; + G4bool weighted{true}; }; #endif diff --git a/source/digits_hits/scorer/include/G4PSPassageCellCurrent3D.hh b/source/digits_hits/scorer/include/G4PSPassageCellCurrent3D.hh index 48b59a9cc8..6bb8fad896 100644 --- a/source/digits_hits/scorer/include/G4PSPassageCellCurrent3D.hh +++ b/source/digits_hits/scorer/include/G4PSPassageCellCurrent3D.hh @@ -44,14 +44,14 @@ class G4PSPassageCellCurrent3D : public G4PSPassageCellCurrent { - public: // with description + public: G4PSPassageCellCurrent3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSPassageCellCurrent3D(); + ~G4PSPassageCellCurrent3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSPassageCellFlux.hh b/source/digits_hits/scorer/include/G4PSPassageCellFlux.hh index b29bd18e41..d2aee2186a 100644 --- a/source/digits_hits/scorer/include/G4PSPassageCellFlux.hh +++ b/source/digits_hits/scorer/include/G4PSPassageCellFlux.hh @@ -52,30 +52,25 @@ class G4PSPassageCellFlux : public G4VPrimitivePlotter { - public: // with description + public: G4PSPassageCellFlux(G4String name, G4int depth = 0); G4PSPassageCellFlux(G4String name, const G4String& unit, G4int depth = 0); - - virtual ~G4PSPassageCellFlux(); + ~G4PSPassageCellFlux() override = default; inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - virtual G4bool IsPassed(G4Step*); - virtual G4double ComputeVolume(G4Step*, G4int idx); - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + virtual G4bool IsPassed(G4Step*); + virtual G4double ComputeVolume(G4Step*, G4int idx); virtual void DefineUnitAndCategory(); private: diff --git a/source/digits_hits/scorer/include/G4PSPassageCellFlux3D.hh b/source/digits_hits/scorer/include/G4PSPassageCellFlux3D.hh index f6b509762e..af87857f56 100644 --- a/source/digits_hits/scorer/include/G4PSPassageCellFlux3D.hh +++ b/source/digits_hits/scorer/include/G4PSPassageCellFlux3D.hh @@ -46,16 +46,16 @@ class G4PSPassageCellFlux3D : public G4PSPassageCellFlux { - public: // with description + public: G4PSPassageCellFlux3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); G4PSPassageCellFlux3D(G4String name, const G4String& unit, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSPassageCellFlux3D(); + ~G4PSPassageCellFlux3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSPassageCellFluxForCylinder3D.hh b/source/digits_hits/scorer/include/G4PSPassageCellFluxForCylinder3D.hh index 57c0e0cb39..6c4c7657aa 100644 --- a/source/digits_hits/scorer/include/G4PSPassageCellFluxForCylinder3D.hh +++ b/source/digits_hits/scorer/include/G4PSPassageCellFluxForCylinder3D.hh @@ -47,7 +47,7 @@ class G4PSPassageCellFluxForCylinder3D : public G4PSPassageCellFlux3D { - public: // with description + public: G4PSPassageCellFluxForCylinder3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); @@ -55,13 +55,13 @@ class G4PSPassageCellFluxForCylinder3D : public G4PSPassageCellFlux3D G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSPassageCellFluxForCylinder3D(); + ~G4PSPassageCellFluxForCylinder3D() override = default; void SetCylinderSize(G4ThreeVector cylSize, G4double startAng, G4double angSpan); void SetNumberOfSegments(G4int nSeg[3]); - protected: // with description - virtual G4double ComputeVolume(G4Step*, G4int idx); + protected: + G4double ComputeVolume(G4Step*, G4int idx) override; private: // Order of segmentation (Z PHI R) in CylinderMesh diff --git a/source/digits_hits/scorer/include/G4PSPassageTrackLength.hh b/source/digits_hits/scorer/include/G4PSPassageTrackLength.hh index 25d5294b02..02aafc89e8 100644 --- a/source/digits_hits/scorer/include/G4PSPassageTrackLength.hh +++ b/source/digits_hits/scorer/include/G4PSPassageTrackLength.hh @@ -47,27 +47,24 @@ class G4PSPassageTrackLength : public G4VPrimitivePlotter { - public: // with description + public: G4PSPassageTrackLength(G4String name, G4int depth = 0); G4PSPassageTrackLength(G4String name, const G4String& unit, G4int depth = 0); - virtual ~G4PSPassageTrackLength(); + ~G4PSPassageTrackLength() override = default; inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - G4bool IsPassed(G4Step*); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + G4bool IsPassed(G4Step*); + private: G4int HCID; G4int fCurrentTrkID; diff --git a/source/digits_hits/scorer/include/G4PSPassageTrackLength3D.hh b/source/digits_hits/scorer/include/G4PSPassageTrackLength3D.hh index b513ddd3b2..e1cb6ac982 100644 --- a/source/digits_hits/scorer/include/G4PSPassageTrackLength3D.hh +++ b/source/digits_hits/scorer/include/G4PSPassageTrackLength3D.hh @@ -44,7 +44,7 @@ class G4PSPassageTrackLength3D : public G4PSPassageTrackLength { - public: // with description + public: G4PSPassageTrackLength3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); @@ -52,10 +52,10 @@ class G4PSPassageTrackLength3D : public G4PSPassageTrackLength G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSPassageTrackLength3D(); + ~G4PSPassageTrackLength3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSPopulation.hh b/source/digits_hits/scorer/include/G4PSPopulation.hh index 3560fb3c76..2a37b889c8 100644 --- a/source/digits_hits/scorer/include/G4PSPopulation.hh +++ b/source/digits_hits/scorer/include/G4PSPopulation.hh @@ -46,36 +46,28 @@ class G4PSPopulation : public G4VPrimitiveScorer { - public: // with description - G4PSPopulation(G4String name, G4int depth = 0); - - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - public: - virtual ~G4PSPopulation(); + G4PSPopulation(G4String name, G4int depth = 0); + ~G4PSPopulation() override = default; inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - - public: - virtual void DrawAll(); - virtual void PrintAll(); + + void Initialize(G4HCofThisEvent*) override; + void EndOfEvent(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); - private: - G4int HCID; - G4THitsMap* EvtMap; - G4bool weighted; - std::map fCellTrackLogger; + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; - public: + private: + G4int HCID{-1}; + G4THitsMap* EvtMap{nullptr}; + G4bool weighted{false}; + std::map fCellTrackLogger; }; #endif diff --git a/source/digits_hits/scorer/include/G4PSPopulation3D.hh b/source/digits_hits/scorer/include/G4PSPopulation3D.hh index 83af764254..e2fa6d7407 100644 --- a/source/digits_hits/scorer/include/G4PSPopulation3D.hh +++ b/source/digits_hits/scorer/include/G4PSPopulation3D.hh @@ -41,15 +41,13 @@ class G4PSPopulation3D : public G4PSPopulation { - public: // with description + public: G4PSPopulation3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); + ~G4PSPopulation3D() override = default; - public: - virtual ~G4PSPopulation3D(); - - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSSphereSurfaceCurrent.hh b/source/digits_hits/scorer/include/G4PSSphereSurfaceCurrent.hh index 431d1ab181..15f412fbfd 100644 --- a/source/digits_hits/scorer/include/G4PSSphereSurfaceCurrent.hh +++ b/source/digits_hits/scorer/include/G4PSSphereSurfaceCurrent.hh @@ -57,31 +57,26 @@ class G4PSSphereSurfaceCurrent : public G4VPrimitiveScorer { - public: // with description + public: G4PSSphereSurfaceCurrent(G4String name, G4int direction, G4int depth = 0); G4PSSphereSurfaceCurrent(G4String name, G4int direction, const G4String& unit, G4int depth = 0); - virtual ~G4PSSphereSurfaceCurrent(); + ~G4PSSphereSurfaceCurrent() override = default; inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight inline void DivideByArea(G4bool flg = true) { divideByArea = flg; } // Divided by Area. - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - G4int IsSelectedSurface(G4Step*, G4Sphere*); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + G4int IsSelectedSurface(G4Step*, G4Sphere*); virtual void DefineUnitAndCategory(); private: diff --git a/source/digits_hits/scorer/include/G4PSSphereSurfaceCurrent3D.hh b/source/digits_hits/scorer/include/G4PSSphereSurfaceCurrent3D.hh index 9ef17c1950..58d8bc2bde 100644 --- a/source/digits_hits/scorer/include/G4PSSphereSurfaceCurrent3D.hh +++ b/source/digits_hits/scorer/include/G4PSSphereSurfaceCurrent3D.hh @@ -51,7 +51,7 @@ class G4PSSphereSurfaceCurrent3D : public G4PSSphereSurfaceCurrent { - public: // with description + public: G4PSSphereSurfaceCurrent3D(G4String name, G4int direction, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); @@ -59,11 +59,10 @@ class G4PSSphereSurfaceCurrent3D : public G4PSSphereSurfaceCurrent const G4String& unit, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); + ~G4PSSphereSurfaceCurrent3D() override = default; - virtual ~G4PSSphereSurfaceCurrent3D(); - - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSSphereSurfaceFlux.hh b/source/digits_hits/scorer/include/G4PSSphereSurfaceFlux.hh index c338166325..f09f5f8281 100644 --- a/source/digits_hits/scorer/include/G4PSSphereSurfaceFlux.hh +++ b/source/digits_hits/scorer/include/G4PSSphereSurfaceFlux.hh @@ -58,32 +58,27 @@ class G4PSSphereSurfaceFlux : public G4VPrimitiveScorer { - public: // with description + public: G4PSSphereSurfaceFlux(G4String name, G4int direction, G4int depth = 0); G4PSSphereSurfaceFlux(G4String name, G4int direction, const G4String& unit, G4int depth = 0); - virtual ~G4PSSphereSurfaceFlux(); + ~G4PSSphereSurfaceFlux() override = default; inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight inline void DivideByArea(G4bool flg = true) { divideByArea = flg; } // Divided by Area. - - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - G4int IsSelectedSurface(G4Step*, G4Sphere*); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - virtual void DrawAll(); - virtual void PrintAll(); + + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); - protected: + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + G4int IsSelectedSurface(G4Step*, G4Sphere*); virtual void DefineUnitAndCategory(); private: diff --git a/source/digits_hits/scorer/include/G4PSSphereSurfaceFlux3D.hh b/source/digits_hits/scorer/include/G4PSSphereSurfaceFlux3D.hh index 6d9d5e5981..ef72e072be 100644 --- a/source/digits_hits/scorer/include/G4PSSphereSurfaceFlux3D.hh +++ b/source/digits_hits/scorer/include/G4PSSphereSurfaceFlux3D.hh @@ -51,7 +51,7 @@ class G4PSSphereSurfaceFlux3D : public G4PSSphereSurfaceFlux { - public: // with description + public: G4PSSphereSurfaceFlux3D(G4String name, G4int direction, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); @@ -60,10 +60,10 @@ class G4PSSphereSurfaceFlux3D : public G4PSSphereSurfaceFlux G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSSphereSurfaceFlux3D(); + ~G4PSSphereSurfaceFlux3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSStepChecker.hh b/source/digits_hits/scorer/include/G4PSStepChecker.hh index b879f9664c..d3ae84c2e4 100644 --- a/source/digits_hits/scorer/include/G4PSStepChecker.hh +++ b/source/digits_hits/scorer/include/G4PSStepChecker.hh @@ -42,26 +42,12 @@ class G4PSStepChecker : public G4VPrimitiveScorer { - public: // with description + public: G4PSStepChecker(G4String name, G4int depth = 0); + ~G4PSStepChecker() override = default; - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - - public: - virtual ~G4PSStepChecker(); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - - public: - virtual void DrawAll(); - virtual void PrintAll(); - - private: - public: + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; }; #endif diff --git a/source/digits_hits/scorer/include/G4PSStepChecker3D.hh b/source/digits_hits/scorer/include/G4PSStepChecker3D.hh index 5ba7ee8f7c..68fb9c6fe0 100644 --- a/source/digits_hits/scorer/include/G4PSStepChecker3D.hh +++ b/source/digits_hits/scorer/include/G4PSStepChecker3D.hh @@ -41,15 +41,13 @@ class G4PSStepChecker3D : public G4PSStepChecker { - public: // with description + public: G4PSStepChecker3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); + ~G4PSStepChecker3D() override = default; - public: - virtual ~G4PSStepChecker3D(); - - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSTermination.hh b/source/digits_hits/scorer/include/G4PSTermination.hh index 490de3f852..49b72b94e5 100644 --- a/source/digits_hits/scorer/include/G4PSTermination.hh +++ b/source/digits_hits/scorer/include/G4PSTermination.hh @@ -43,35 +43,26 @@ class G4PSTermination : public G4VPrimitiveScorer { - public: // with description - G4PSTermination(G4String name, G4int depth = 0); - - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - public: - virtual ~G4PSTermination(); + G4PSTermination(G4String name, G4int depth = 0); + ~G4PSTermination() override = default; inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - - public: - virtual void DrawAll(); - virtual void PrintAll(); + + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); - private: - G4int HCID; - G4THitsMap* EvtMap; - G4bool weighted; + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; - public: + private: + G4int HCID{-1}; + G4THitsMap* EvtMap{nullptr}; + G4bool weighted{false}; }; #endif diff --git a/source/digits_hits/scorer/include/G4PSTermination3D.hh b/source/digits_hits/scorer/include/G4PSTermination3D.hh index decfcbd228..ab6c3951a9 100644 --- a/source/digits_hits/scorer/include/G4PSTermination3D.hh +++ b/source/digits_hits/scorer/include/G4PSTermination3D.hh @@ -41,13 +41,13 @@ class G4PSTermination3D : public G4PSTermination { - public: // with description + public: G4PSTermination3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int di = 2, G4int dj = 1, G4int dk = 0); - virtual ~G4PSTermination3D(); + ~G4PSTermination3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSTrackCounter.hh b/source/digits_hits/scorer/include/G4PSTrackCounter.hh index 269a2c194e..c4f2adffce 100644 --- a/source/digits_hits/scorer/include/G4PSTrackCounter.hh +++ b/source/digits_hits/scorer/include/G4PSTrackCounter.hh @@ -47,36 +47,27 @@ class G4PSTrackCounter : public G4VPrimitivePlotter { - public: // with description + public: G4PSTrackCounter(G4String name, G4int direction, G4int depth = 0); - - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - - public: - virtual ~G4PSTrackCounter(); + ~G4PSTrackCounter() override = default; inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - - public: - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); - private: - G4int HCID; - G4int fDirection; - G4THitsMap* EvtMap; - G4bool weighted; + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; - public: + private: + G4int HCID{-1}; + G4int fDirection; + G4THitsMap* EvtMap{nullptr}; + G4bool weighted{false}; }; #endif diff --git a/source/digits_hits/scorer/include/G4PSTrackCounter3D.hh b/source/digits_hits/scorer/include/G4PSTrackCounter3D.hh index e0b6d32c8f..27833cbb1f 100644 --- a/source/digits_hits/scorer/include/G4PSTrackCounter3D.hh +++ b/source/digits_hits/scorer/include/G4PSTrackCounter3D.hh @@ -42,15 +42,13 @@ class G4PSTrackCounter3D : public G4PSTrackCounter { - public: // with description + public: G4PSTrackCounter3D(G4String name, G4int direction, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int di = 2, G4int dj = 1, G4int dk = 0); + ~G4PSTrackCounter3D() override = default; - public: - virtual ~G4PSTrackCounter3D(); - - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSTrackLength.hh b/source/digits_hits/scorer/include/G4PSTrackLength.hh index 1081943c3c..892441900b 100644 --- a/source/digits_hits/scorer/include/G4PSTrackLength.hh +++ b/source/digits_hits/scorer/include/G4PSTrackLength.hh @@ -47,10 +47,10 @@ class G4PSTrackLength : public G4VPrimitiveScorer { - public: // with description + public: G4PSTrackLength(G4String name, G4int depth = 0); G4PSTrackLength(G4String name, const G4String& unit, G4int depth = 0); - virtual ~G4PSTrackLength(); + ~G4PSTrackLength() override = default; inline void Weighted(G4bool flg = true) { weighted = flg; } // Multiply track weight @@ -61,19 +61,14 @@ class G4PSTrackLength : public G4VPrimitiveScorer void DivideByVelocity(G4bool flg = true); // Divide by velocity - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); - - public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; virtual void SetUnit(const G4String& unit); protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; virtual void DefineUnitAndCategory(); private: diff --git a/source/digits_hits/scorer/include/G4PSTrackLength3D.hh b/source/digits_hits/scorer/include/G4PSTrackLength3D.hh index c86335add0..4dec92aa98 100644 --- a/source/digits_hits/scorer/include/G4PSTrackLength3D.hh +++ b/source/digits_hits/scorer/include/G4PSTrackLength3D.hh @@ -43,17 +43,16 @@ class G4PSTrackLength3D : public G4PSTrackLength { - public: // with description + public: G4PSTrackLength3D(G4String name, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); G4PSTrackLength3D(G4String name, const G4String& unit, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); + ~G4PSTrackLength3D() override = default; - virtual ~G4PSTrackLength3D(); - - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4PSVolumeFlux.hh b/source/digits_hits/scorer/include/G4PSVolumeFlux.hh index 8e34be7f5a..b7918d1f81 100644 --- a/source/digits_hits/scorer/include/G4PSVolumeFlux.hh +++ b/source/digits_hits/scorer/include/G4PSVolumeFlux.hh @@ -42,30 +42,27 @@ class G4PSVolumeFlux : public G4VPrimitivePlotter { - public: // with description + public: G4PSVolumeFlux(G4String name, G4int direction = 1, G4int depth = 0); - virtual ~G4PSVolumeFlux(); - - protected: // with description - virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*); + ~G4PSVolumeFlux() override = default; public: - virtual void Initialize(G4HCofThisEvent*); - virtual void EndOfEvent(G4HCofThisEvent*); - virtual void clear(); - virtual void DrawAll(); - virtual void PrintAll(); + void Initialize(G4HCofThisEvent*) override; + void clear() override; + void PrintAll() override; - private: - G4int HCID; - G4int fDirection; - G4THitsMap* EvtMap; - G4bool divare = false; // divide by the surface area - G4bool divcos = false; // divide by cos(theta) - - public: void SetDivAre(G4bool val) { divare = val; } void SetDivCos(G4bool val) { divcos = val; } + + protected: + G4bool ProcessHits(G4Step*, G4TouchableHistory*) override; + + private: + G4int HCID{-1}; + G4int fDirection; + G4THitsMap* EvtMap{nullptr}; + G4bool divare = false; // divide by the surface area + G4bool divcos = false; // divide by cos(theta) }; #endif diff --git a/source/digits_hits/scorer/include/G4PSVolumeFlux3D.hh b/source/digits_hits/scorer/include/G4PSVolumeFlux3D.hh index a22da6be1f..0d343e848e 100644 --- a/source/digits_hits/scorer/include/G4PSVolumeFlux3D.hh +++ b/source/digits_hits/scorer/include/G4PSVolumeFlux3D.hh @@ -40,15 +40,15 @@ class G4PSVolumeFlux3D : public G4PSVolumeFlux { - public: // with description + public: G4PSVolumeFlux3D(G4String name, G4int direction = 1, G4int ni = 1, G4int nj = 1, G4int nk = 1, G4int depi = 2, G4int depj = 1, G4int depk = 0); - virtual ~G4PSVolumeFlux3D(); + ~G4PSVolumeFlux3D() override = default; - protected: // with description - virtual G4int GetIndex(G4Step*); + protected: + G4int GetIndex(G4Step*) override; private: G4int fDepthi, fDepthj, fDepthk; diff --git a/source/digits_hits/scorer/include/G4SDChargedFilter.hh b/source/digits_hits/scorer/include/G4SDChargedFilter.hh index 7169ed2d2e..c791ce5bad 100644 --- a/source/digits_hits/scorer/include/G4SDChargedFilter.hh +++ b/source/digits_hits/scorer/include/G4SDChargedFilter.hh @@ -47,11 +47,10 @@ class G4ChargedDefinition; class G4SDChargedFilter : public G4VSDFilter { - public: // with description + public: G4SDChargedFilter(G4String name); - virtual ~G4SDChargedFilter(); + ~G4SDChargedFilter() override = default; - public: // with description - virtual G4bool Accept(const G4Step*) const; + G4bool Accept(const G4Step*) const override; }; #endif diff --git a/source/digits_hits/scorer/include/G4SDKineticEnergyFilter.hh b/source/digits_hits/scorer/include/G4SDKineticEnergyFilter.hh index d5957fbe79..1b0ddeb9af 100644 --- a/source/digits_hits/scorer/include/G4SDKineticEnergyFilter.hh +++ b/source/digits_hits/scorer/include/G4SDKineticEnergyFilter.hh @@ -49,22 +49,20 @@ class G4SDKineticEnergyFilter : public G4VSDFilter { - //------- - public: // with description + public: G4SDKineticEnergyFilter(G4String name, G4double elow = 0.0, G4double ehigh = DBL_MAX); // Constructor. Filter name and kinetic energy range( elow, ehigh). - virtual ~G4SDKineticEnergyFilter(); + ~G4SDKineticEnergyFilter() override = default; - public: // with description - virtual G4bool Accept(const G4Step*) const; + G4bool Accept(const G4Step*) const override; void SetKineticEnergy(G4double elow, G4double ehigh); void SetLowEnergy(G4double elow); void SetHighEnergy(G4double ehigh); // Set methods for kinetic energy range. - // + void show(); private: diff --git a/source/digits_hits/scorer/include/G4SDNeutralFilter.hh b/source/digits_hits/scorer/include/G4SDNeutralFilter.hh index 39036dfdeb..5cbf96f2bf 100644 --- a/source/digits_hits/scorer/include/G4SDNeutralFilter.hh +++ b/source/digits_hits/scorer/include/G4SDNeutralFilter.hh @@ -48,12 +48,11 @@ class G4NeutralDefinition; class G4SDNeutralFilter : public G4VSDFilter { - public: // with description + public: G4SDNeutralFilter(G4String name); - virtual ~G4SDNeutralFilter(); + ~G4SDNeutralFilter() override = default; - public: // with description - virtual G4bool Accept(const G4Step*) const; + G4bool Accept(const G4Step*) const override; }; #endif diff --git a/source/digits_hits/scorer/include/G4SDParticleFilter.hh b/source/digits_hits/scorer/include/G4SDParticleFilter.hh index d3a85c28b3..d769b0671e 100644 --- a/source/digits_hits/scorer/include/G4SDParticleFilter.hh +++ b/source/digits_hits/scorer/include/G4SDParticleFilter.hh @@ -51,7 +51,7 @@ class G4ParticleDefinition; class G4SDParticleFilter : public G4VSDFilter { - public: // with description + public: G4SDParticleFilter(G4String name); G4SDParticleFilter(G4String name, const G4String& particleName); G4SDParticleFilter(G4String name, const std::vector& particleNames); @@ -60,10 +60,9 @@ class G4SDParticleFilter : public G4VSDFilter // Constructors. Filter name and particle's name. // - virtual ~G4SDParticleFilter(); + ~G4SDParticleFilter() override = default; - public: // with description - virtual G4bool Accept(const G4Step*) const; + G4bool Accept(const G4Step*) const override; void add(const G4String& particleName); // set method for acceptable particle name. diff --git a/source/digits_hits/scorer/include/G4SDParticleWithEnergyFilter.hh b/source/digits_hits/scorer/include/G4SDParticleWithEnergyFilter.hh index 3f3b35811b..2956a67bc9 100644 --- a/source/digits_hits/scorer/include/G4SDParticleWithEnergyFilter.hh +++ b/source/digits_hits/scorer/include/G4SDParticleWithEnergyFilter.hh @@ -49,13 +49,14 @@ class G4ParticleDefinition; class G4SDParticleWithEnergyFilter : public G4VSDFilter { - public: // with description + public: G4SDParticleWithEnergyFilter(G4String name, G4double elow = 0.0, G4double ehigh = DBL_MAX); - virtual ~G4SDParticleWithEnergyFilter(); + G4SDParticleWithEnergyFilter(const G4SDParticleWithEnergyFilter&); + G4SDParticleWithEnergyFilter& operator=(const G4SDParticleWithEnergyFilter&); + ~G4SDParticleWithEnergyFilter() override; - public: // with description - virtual G4bool Accept(const G4Step*) const; + G4bool Accept(const G4Step*) const override; void add(const G4String& particleName); // add the particle into accepatable particle list. @@ -68,10 +69,6 @@ class G4SDParticleWithEnergyFilter : public G4VSDFilter private: G4SDParticleFilter* fParticleFilter; G4SDKineticEnergyFilter* fKineticFilter; - - public: - G4SDParticleWithEnergyFilter(const G4SDParticleWithEnergyFilter&); - G4SDParticleWithEnergyFilter& operator=(const G4SDParticleWithEnergyFilter&); }; #endif diff --git a/source/digits_hits/scorer/sources.cmake b/source/digits_hits/scorer/sources.cmake index a200dd872e..f581cef073 100644 --- a/source/digits_hits/scorer/sources.cmake +++ b/source/digits_hits/scorer/sources.cmake @@ -115,5 +115,5 @@ geant4_add_module(G4detscorer G4SDParticleWithEnergyFilter.cc) geant4_module_link_libraries(G4detscorer - PUBLIC G4detector G4csg G4partman G4globman + PUBLIC G4detector G4csg G4hits G4partman G4globman PRIVATE G4track G4volumes G4geometrymng) diff --git a/source/digits_hits/scorer/src/G4PSCellCharge.cc b/source/digits_hits/scorer/src/G4PSCellCharge.cc index d3131b2517..815e176d6e 100644 --- a/source/digits_hits/scorer/src/G4PSCellCharge.cc +++ b/source/digits_hits/scorer/src/G4PSCellCharge.cc @@ -39,23 +39,17 @@ /////////////////////////////////////////////////////////////////////////////// G4PSCellCharge::G4PSCellCharge(G4String name, G4int depth) - : G4VPrimitiveScorer(name, depth) - , HCID(-1) - , EvtMap(0) -{ - SetUnit("e+"); -} + : G4PSCellCharge(name, "e+", depth) +{} G4PSCellCharge::G4PSCellCharge(G4String name, const G4String& unit, G4int depth) : G4VPrimitiveScorer(name, depth) , HCID(-1) - , EvtMap(0) + , EvtMap(nullptr) { SetUnit(unit); } -G4PSCellCharge::~G4PSCellCharge() { ; } - G4bool G4PSCellCharge::ProcessHits(G4Step* aStep, G4TouchableHistory*) { // Enter or First step of primary. @@ -79,7 +73,7 @@ G4bool G4PSCellCharge::ProcessHits(G4Step* aStep, G4TouchableHistory*) EvtMap->add(index, CellCharge); } - return TRUE; + return true; } void G4PSCellCharge::Initialize(G4HCofThisEvent* HCE) @@ -90,22 +84,17 @@ void G4PSCellCharge::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, EvtMap); } -void G4PSCellCharge::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSCellCharge::clear() { EvtMap->clear(); } -void G4PSCellCharge::DrawAll() { ; } - void G4PSCellCharge::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, charge] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " cell charge : " << *(itr->second) / GetUnitValue() << " [" + G4cout << " copy no.: " << copy + << " cell charge : " << *(charge) / GetUnitValue() << " [" << GetUnit() << "]" << G4endl; } } diff --git a/source/digits_hits/scorer/src/G4PSCellCharge3D.cc b/source/digits_hits/scorer/src/G4PSCellCharge3D.cc index a1958cc586..c193c21a11 100644 --- a/source/digits_hits/scorer/src/G4PSCellCharge3D.cc +++ b/source/digits_hits/scorer/src/G4PSCellCharge3D.cc @@ -48,27 +48,17 @@ G4PSCellCharge3D::G4PSCellCharge3D(G4String name, G4int ni, G4int nj, G4int nk, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } G4PSCellCharge3D::G4PSCellCharge3D(G4String name, const G4String& unit, G4int ni, G4int nj, G4int nk, G4int depi, G4int depj, G4int depk) - : G4PSCellCharge(name) - , fDepthi(depi) - , fDepthj(depj) - , fDepthk(depk) + : G4PSCellCharge3D(name, ni, nj, nk, depi, depj, depk) { - fNi = ni; - fNj = nj; - fNk = nk; SetUnit(unit); } -G4PSCellCharge3D::~G4PSCellCharge3D() { ; } - G4int G4PSCellCharge3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSCellFlux.cc b/source/digits_hits/scorer/src/G4PSCellFlux.cc index 0511655d81..fc04f040a4 100644 --- a/source/digits_hits/scorer/src/G4PSCellFlux.cc +++ b/source/digits_hits/scorer/src/G4PSCellFlux.cc @@ -56,33 +56,24 @@ /////////////////////////////////////////////////////////////////////////////// G4PSCellFlux::G4PSCellFlux(G4String name, G4int depth) - : G4VPrimitivePlotter(name, depth) - , HCID(-1) - , EvtMap(0) - , weighted(true) -{ - DefineUnitAndCategory(); - SetUnit("percm2"); - // verboseLevel = 10; -} + : G4PSCellFlux(name, "percm2", depth) +{} G4PSCellFlux::G4PSCellFlux(G4String name, const G4String& unit, G4int depth) : G4VPrimitivePlotter(name, depth) , HCID(-1) - , EvtMap(0) + , EvtMap(nullptr) , weighted(true) { DefineUnitAndCategory(); SetUnit(unit); } -G4PSCellFlux::~G4PSCellFlux() { ; } - G4bool G4PSCellFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4double stepLength = aStep->GetStepLength(); if(stepLength == 0.) - return FALSE; + return false; G4int idx = ((G4TouchableHistory*) (aStep->GetPreStepPoint()->GetTouchable())) ->GetReplicaNumber(indexDepth); @@ -94,10 +85,10 @@ G4bool G4PSCellFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) G4int index = GetIndex(aStep); EvtMap->add(index, CellFlux); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.end()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception( "G4PSCellFlux::ProcessHits", "SCORER0123", JustWarning, @@ -110,7 +101,7 @@ G4bool G4PSCellFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) } } - return TRUE; + return true; } void G4PSCellFlux::Initialize(G4HCofThisEvent* HCE) @@ -121,22 +112,17 @@ void G4PSCellFlux::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, EvtMap); } -void G4PSCellFlux::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSCellFlux::clear() { EvtMap->clear(); } -void G4PSCellFlux::DrawAll() { ; } - void G4PSCellFlux::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, flux]: *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " cell flux : " << *(itr->second) / GetUnitValue() << " [" + G4cout << " copy no.: " << copy + << " cell flux : " << *(flux) / GetUnitValue() << " [" << GetUnit() << "]" << G4endl; } } diff --git a/source/digits_hits/scorer/src/G4PSCellFlux3D.cc b/source/digits_hits/scorer/src/G4PSCellFlux3D.cc index 36be2b615e..e949643f0f 100644 --- a/source/digits_hits/scorer/src/G4PSCellFlux3D.cc +++ b/source/digits_hits/scorer/src/G4PSCellFlux3D.cc @@ -52,27 +52,17 @@ G4PSCellFlux3D::G4PSCellFlux3D(G4String name, G4int ni, G4int nj, G4int nk, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } G4PSCellFlux3D::G4PSCellFlux3D(G4String name, const G4String& unit, G4int ni, G4int nj, G4int nk, G4int depi, G4int depj, G4int depk) - : G4PSCellFlux(name) - , fDepthi(depi) - , fDepthj(depj) - , fDepthk(depk) + : G4PSCellFlux3D(name, ni, nj, nk, depi, depj, depk) { - fNi = ni; - fNj = nj; - fNk = nk; SetUnit(unit); } -G4PSCellFlux3D::~G4PSCellFlux3D() { ; } - G4int G4PSCellFlux3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSCellFluxForCylinder3D.cc b/source/digits_hits/scorer/src/G4PSCellFluxForCylinder3D.cc index 2e04b0bc6f..e768d3444e 100644 --- a/source/digits_hits/scorer/src/G4PSCellFluxForCylinder3D.cc +++ b/source/digits_hits/scorer/src/G4PSCellFluxForCylinder3D.cc @@ -67,8 +67,6 @@ G4PSCellFluxForCylinder3D::G4PSCellFluxForCylinder3D(G4String name, nSegment[0] = nSegment[1] = nSegment[2] = 0; } -G4PSCellFluxForCylinder3D::~G4PSCellFluxForCylinder3D() { ; } - void G4PSCellFluxForCylinder3D::SetCylinderSize(G4ThreeVector cylSize, G4double StartAng, G4double AngSpan) { cylinderSize = cylSize; // rMin, rMax, halfZ diff --git a/source/digits_hits/scorer/src/G4PSCylinderSurfaceCurrent.cc b/source/digits_hits/scorer/src/G4PSCylinderSurfaceCurrent.cc index c07a7bce9b..b58280fcaf 100644 --- a/source/digits_hits/scorer/src/G4PSCylinderSurfaceCurrent.cc +++ b/source/digits_hits/scorer/src/G4PSCylinderSurfaceCurrent.cc @@ -59,16 +59,8 @@ G4PSCylinderSurfaceCurrent::G4PSCylinderSurfaceCurrent(G4String name, G4int direction, G4int depth) - : G4VPrimitivePlotter(name, depth) - , HCID(-1) - , fDirection(direction) - , EvtMap(0) - , weighted(true) - , divideByArea(true) -{ - DefineUnitAndCategory(); - SetUnit("percm2"); -} + : G4PSCylinderSurfaceCurrent(name, direction, "percm2", depth) +{} G4PSCylinderSurfaceCurrent::G4PSCylinderSurfaceCurrent(G4String name, G4int direction, @@ -77,7 +69,7 @@ G4PSCylinderSurfaceCurrent::G4PSCylinderSurfaceCurrent(G4String name, : G4VPrimitivePlotter(name, depth) , HCID(-1) , fDirection(direction) - , EvtMap(0) + , EvtMap(nullptr) , weighted(true) , divideByArea(true) { @@ -85,14 +77,12 @@ G4PSCylinderSurfaceCurrent::G4PSCylinderSurfaceCurrent(G4String name, SetUnit(unit); } -G4PSCylinderSurfaceCurrent::~G4PSCylinderSurfaceCurrent() { ; } - G4bool G4PSCylinderSurfaceCurrent::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4StepPoint* preStep = aStep->GetPreStepPoint(); G4VSolid* solid = ComputeCurrentSolid(aStep); - G4Tubs* tubsSolid = static_cast(solid); + auto tubsSolid = static_cast(solid); G4int dirFlag = IsSelectedSurface(aStep, tubsSolid); // G4cout << " pos " << preStep->GetPosition() <<" dirFlag " << G4endl; @@ -117,10 +107,10 @@ G4bool G4PSCylinderSurfaceCurrent::ProcessHits(G4Step* aStep, G4int index = GetIndex(aStep); EvtMap->add(index, current); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.cend()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception("G4PSCylinderSurfaceCurrent::ProcessHits", "SCORER0123", JustWarning, @@ -135,7 +125,7 @@ G4bool G4PSCylinderSurfaceCurrent::ProcessHits(G4Step* aStep, } } - return TRUE; + return true; } G4int G4PSCylinderSurfaceCurrent::IsSelectedSurface(G4Step* aStep, @@ -197,28 +187,23 @@ void G4PSCylinderSurfaceCurrent::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSCylinderSurfaceCurrent::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSCylinderSurfaceCurrent::clear() { EvtMap->clear(); } -void G4PSCylinderSurfaceCurrent::DrawAll() { ; } - void G4PSCylinderSurfaceCurrent::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, current] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first << " current : "; + G4cout << " copy no.: " << copy << " current : "; if(divideByArea) { - G4cout << *(itr->second) / GetUnitValue() << " [" << GetUnit() << "]"; + G4cout << *(current) / GetUnitValue() << " [" << GetUnit() << "]"; } else { - G4cout << *(itr->second) << " [tracks]"; + G4cout << *(current) << " [tracks]"; } G4cout << G4endl; } @@ -232,7 +217,7 @@ void G4PSCylinderSurfaceCurrent::SetUnit(const G4String& unit) } else { - if(unit == "") + if(unit.empty()) { unitName = unit; unitValue = 1.0; diff --git a/source/digits_hits/scorer/src/G4PSCylinderSurfaceCurrent3D.cc b/source/digits_hits/scorer/src/G4PSCylinderSurfaceCurrent3D.cc index 74b398d6c8..6d7e264f34 100644 --- a/source/digits_hits/scorer/src/G4PSCylinderSurfaceCurrent3D.cc +++ b/source/digits_hits/scorer/src/G4PSCylinderSurfaceCurrent3D.cc @@ -57,27 +57,17 @@ G4PSCylinderSurfaceCurrent3D::G4PSCylinderSurfaceCurrent3D(G4String name, , fDepthj(dj) , fDepthk(dk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } G4PSCylinderSurfaceCurrent3D::G4PSCylinderSurfaceCurrent3D( G4String name, G4int direction, const G4String& unit, G4int ni, G4int nj, G4int nk, G4int di, G4int dj, G4int dk) - : G4PSCylinderSurfaceCurrent(name, direction) - , fDepthi(di) - , fDepthj(dj) - , fDepthk(dk) + : G4PSCylinderSurfaceCurrent3D(name, direction, ni, nj, nk, di, dj, dk) { - fNi = ni; - fNj = nj; - fNk = nk; SetUnit(unit); } -G4PSCylinderSurfaceCurrent3D::~G4PSCylinderSurfaceCurrent3D() { ; } - G4int G4PSCylinderSurfaceCurrent3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSCylinderSurfaceFlux.cc b/source/digits_hits/scorer/src/G4PSCylinderSurfaceFlux.cc index db3699a2fa..1a08143438 100644 --- a/source/digits_hits/scorer/src/G4PSCylinderSurfaceFlux.cc +++ b/source/digits_hits/scorer/src/G4PSCylinderSurfaceFlux.cc @@ -61,16 +61,8 @@ G4PSCylinderSurfaceFlux::G4PSCylinderSurfaceFlux(G4String name, G4int direction, G4int depth) - : G4VPrimitivePlotter(name, depth) - , HCID(-1) - , fDirection(direction) - , EvtMap(0) - , weighted(true) - , divideByArea(true) -{ - DefineUnitAndCategory(); - SetUnit("percm2"); -} + : G4PSCylinderSurfaceFlux(name, direction, "percm2", depth) +{} G4PSCylinderSurfaceFlux::G4PSCylinderSurfaceFlux(G4String name, G4int direction, const G4String& unit, @@ -78,7 +70,7 @@ G4PSCylinderSurfaceFlux::G4PSCylinderSurfaceFlux(G4String name, G4int direction, : G4VPrimitivePlotter(name, depth) , HCID(-1) , fDirection(direction) - , EvtMap(0) + , EvtMap(nullptr) , weighted(true) , divideByArea(true) { @@ -86,15 +78,13 @@ G4PSCylinderSurfaceFlux::G4PSCylinderSurfaceFlux(G4String name, G4int direction, SetUnit(unit); } -G4PSCylinderSurfaceFlux::~G4PSCylinderSurfaceFlux() { ; } - G4bool G4PSCylinderSurfaceFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4StepPoint* preStep = aStep->GetPreStepPoint(); G4VSolid* solid = ComputeCurrentSolid(aStep); assert(dynamic_cast(solid)); - G4Tubs* tubsSolid = static_cast(solid); + auto tubsSolid = static_cast(solid); G4int dirFlag = IsSelectedSurface(aStep, tubsSolid); @@ -102,7 +92,7 @@ G4bool G4PSCylinderSurfaceFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) { if(fDirection == fFlux_InOut || dirFlag == fDirection) { - G4StepPoint* thisStep = 0; + G4StepPoint* thisStep = nullptr; if(dirFlag == fFlux_In) { thisStep = preStep; @@ -113,7 +103,7 @@ G4bool G4PSCylinderSurfaceFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) } else { - return FALSE; + return false; } G4TouchableHandle theTouchable = thisStep->GetTouchableHandle(); @@ -147,10 +137,10 @@ G4bool G4PSCylinderSurfaceFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) G4int index = GetIndex(aStep); EvtMap->add(index, flux); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.cend()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception("G4PSCylinderSurfaceFlux::ProcessHits", "SCORER0123", JustWarning, @@ -163,17 +153,13 @@ G4bool G4PSCylinderSurfaceFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) } } - return TRUE; - } - else - { - return FALSE; + return true; } + + return false; } - else - { - return FALSE; - } + + return false; } G4int G4PSCylinderSurfaceFlux::IsSelectedSurface(G4Step* aStep, @@ -242,22 +228,17 @@ void G4PSCylinderSurfaceFlux::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSCylinderSurfaceFlux::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSCylinderSurfaceFlux::clear() { EvtMap->clear(); } -void G4PSCylinderSurfaceFlux::DrawAll() { ; } - void G4PSCylinderSurfaceFlux::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer" << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, flux] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " flux : " << *(itr->second) / GetUnitValue() << " [" + G4cout << " copy no.: " << copy + << " flux : " << *(flux) / GetUnitValue() << " [" << GetUnit() << "]" << G4endl; } } @@ -270,7 +251,7 @@ void G4PSCylinderSurfaceFlux::SetUnit(const G4String& unit) } else { - if(unit == "") + if(unit.empty()) { unitName = unit; unitValue = 1.0; diff --git a/source/digits_hits/scorer/src/G4PSCylinderSurfaceFlux3D.cc b/source/digits_hits/scorer/src/G4PSCylinderSurfaceFlux3D.cc index 2b26c1cfe5..abfe039aae 100644 --- a/source/digits_hits/scorer/src/G4PSCylinderSurfaceFlux3D.cc +++ b/source/digits_hits/scorer/src/G4PSCylinderSurfaceFlux3D.cc @@ -57,27 +57,17 @@ G4PSCylinderSurfaceFlux3D::G4PSCylinderSurfaceFlux3D(G4String name, , fDepthj(dj) , fDepthk(dk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } G4PSCylinderSurfaceFlux3D::G4PSCylinderSurfaceFlux3D( G4String name, G4int direction, const G4String& unit, G4int ni, G4int nj, G4int nk, G4int di, G4int dj, G4int dk) - : G4PSCylinderSurfaceFlux(name, direction) - , fDepthi(di) - , fDepthj(dj) - , fDepthk(dk) + : G4PSCylinderSurfaceFlux3D(name, direction, ni, nj, nk, di, dj, dk) { - fNi = ni; - fNj = nj; - fNk = nk; SetUnit(unit); } -G4PSCylinderSurfaceFlux3D::~G4PSCylinderSurfaceFlux3D() { ; } - G4int G4PSCylinderSurfaceFlux3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSDoseDeposit.cc b/source/digits_hits/scorer/src/G4PSDoseDeposit.cc index 882e75ae06..3e787ba9f7 100644 --- a/source/digits_hits/scorer/src/G4PSDoseDeposit.cc +++ b/source/digits_hits/scorer/src/G4PSDoseDeposit.cc @@ -46,29 +46,23 @@ /////////////////////////////////////////////////////////////////////////////// G4PSDoseDeposit::G4PSDoseDeposit(G4String name, G4int depth) - : G4VPrimitivePlotter(name, depth) - , HCID(-1) - , EvtMap(0) -{ - SetUnit("Gy"); -} + : G4PSDoseDeposit(name, "Gy", depth) +{} G4PSDoseDeposit::G4PSDoseDeposit(G4String name, const G4String& unit, G4int depth) : G4VPrimitivePlotter(name, depth) , HCID(-1) - , EvtMap(0) + , EvtMap(nullptr) { SetUnit(unit); } -G4PSDoseDeposit::~G4PSDoseDeposit() { ; } - G4bool G4PSDoseDeposit::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); if(edep == 0.) - return FALSE; + return false; G4int idx = ((G4TouchableHistory*) (aStep->GetPreStepPoint()->GetTouchable())) ->GetReplicaNumber(indexDepth); @@ -85,10 +79,10 @@ G4bool G4PSDoseDeposit::ProcessHits(G4Step* aStep, G4TouchableHistory*) G4double dosew = dose * wei; EvtMap->add(index, dosew); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.cend()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception( "G4PSDoseDeposit::ProcessHits", "SCORER0123", JustWarning, @@ -100,7 +94,7 @@ G4bool G4PSDoseDeposit::ProcessHits(G4Step* aStep, G4TouchableHistory*) } } - return TRUE; + return true; } void G4PSDoseDeposit::Initialize(G4HCofThisEvent* HCE) @@ -114,22 +108,17 @@ void G4PSDoseDeposit::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSDoseDeposit::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSDoseDeposit::clear() { EvtMap->clear(); } -void G4PSDoseDeposit::DrawAll() { ; } - void G4PSDoseDeposit::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, dose] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " dose deposit: " << *(itr->second) / GetUnitValue() << " [" + G4cout << " copy no.: " << copy + << " dose deposit: " << *(dose) / GetUnitValue() << " [" << GetUnit() << "]" << G4endl; } } diff --git a/source/digits_hits/scorer/src/G4PSDoseDeposit3D.cc b/source/digits_hits/scorer/src/G4PSDoseDeposit3D.cc index 50c1f51ec5..6f1d47b101 100644 --- a/source/digits_hits/scorer/src/G4PSDoseDeposit3D.cc +++ b/source/digits_hits/scorer/src/G4PSDoseDeposit3D.cc @@ -44,27 +44,17 @@ G4PSDoseDeposit3D::G4PSDoseDeposit3D(G4String name, G4int ni, G4int nj, , fDepthj(dj) , fDepthk(dk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } G4PSDoseDeposit3D::G4PSDoseDeposit3D(G4String name, const G4String& unit, G4int ni, G4int nj, G4int nk, G4int di, G4int dj, G4int dk) - : G4PSDoseDeposit(name) - , fDepthi(di) - , fDepthj(dj) - , fDepthk(dk) + : G4PSDoseDeposit3D(name, ni, nj, nk, di, dj, dk) { - fNi = ni; - fNj = nj; - fNk = nk; SetUnit(unit); } -G4PSDoseDeposit3D::~G4PSDoseDeposit3D() { ; } - G4int G4PSDoseDeposit3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSDoseDepositForCylinder3D.cc b/source/digits_hits/scorer/src/G4PSDoseDepositForCylinder3D.cc index 05ba535560..5b07a38441 100644 --- a/source/digits_hits/scorer/src/G4PSDoseDepositForCylinder3D.cc +++ b/source/digits_hits/scorer/src/G4PSDoseDepositForCylinder3D.cc @@ -59,8 +59,6 @@ G4PSDoseDepositForCylinder3D::G4PSDoseDepositForCylinder3D(G4String name, nSegment[0] = nSegment[1] = nSegment[2] = 0; } -G4PSDoseDepositForCylinder3D::~G4PSDoseDepositForCylinder3D() { ; } - void G4PSDoseDepositForCylinder3D::SetCylinderSize(G4ThreeVector cylSize, G4double StartAng, G4double AngSpan) { cylinderSize = cylSize; // rMin, rMax, halfZ diff --git a/source/digits_hits/scorer/src/G4PSEnergyDeposit.cc b/source/digits_hits/scorer/src/G4PSEnergyDeposit.cc index a646eeff54..a5cf4bd3f0 100644 --- a/source/digits_hits/scorer/src/G4PSEnergyDeposit.cc +++ b/source/digits_hits/scorer/src/G4PSEnergyDeposit.cc @@ -41,38 +41,32 @@ /////////////////////////////////////////////////////////////////////////////// G4PSEnergyDeposit::G4PSEnergyDeposit(G4String name, G4int depth) - : G4VPrimitivePlotter(name, depth) - , HCID(-1) - , EvtMap(0) -{ - SetUnit("MeV"); -} + : G4PSEnergyDeposit(name, "MeV", depth) +{} G4PSEnergyDeposit::G4PSEnergyDeposit(G4String name, const G4String& unit, G4int depth) : G4VPrimitivePlotter(name, depth) , HCID(-1) - , EvtMap(0) + , EvtMap(nullptr) { SetUnit(unit); } -G4PSEnergyDeposit::~G4PSEnergyDeposit() { ; } - G4bool G4PSEnergyDeposit::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); if(edep == 0.) - return FALSE; + return false; G4double wei = aStep->GetPreStepPoint()->GetWeight(); // (Particle Weight) G4int index = GetIndex(aStep); G4double edepwei = edep * wei; EvtMap->add(index, edepwei); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.cend()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception( "G4PSEnergyDeposit::ProcessHits", "SCORER0123", JustWarning, @@ -84,7 +78,7 @@ G4bool G4PSEnergyDeposit::ProcessHits(G4Step* aStep, G4TouchableHistory*) } } - return TRUE; + return true; } void G4PSEnergyDeposit::Initialize(G4HCofThisEvent* HCE) @@ -98,22 +92,17 @@ void G4PSEnergyDeposit::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSEnergyDeposit::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSEnergyDeposit::clear() { EvtMap->clear(); } -void G4PSEnergyDeposit::DrawAll() { ; } - void G4PSEnergyDeposit::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, edep] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " energy deposit: " << *(itr->second) / GetUnitValue() << " [" + G4cout << " copy no.: " << copy + << " energy deposit: " << *(edep) / GetUnitValue() << " [" << GetUnit() << "]" << G4endl; } } diff --git a/source/digits_hits/scorer/src/G4PSEnergyDeposit3D.cc b/source/digits_hits/scorer/src/G4PSEnergyDeposit3D.cc index a976617529..49a64b60fb 100644 --- a/source/digits_hits/scorer/src/G4PSEnergyDeposit3D.cc +++ b/source/digits_hits/scorer/src/G4PSEnergyDeposit3D.cc @@ -43,27 +43,17 @@ G4PSEnergyDeposit3D::G4PSEnergyDeposit3D(G4String name, G4int ni, G4int nj, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } G4PSEnergyDeposit3D::G4PSEnergyDeposit3D(G4String name, const G4String& unit, G4int ni, G4int nj, G4int nk, G4int depi, G4int depj, G4int depk) - : G4PSEnergyDeposit(name) - , fDepthi(depi) - , fDepthj(depj) - , fDepthk(depk) + : G4PSEnergyDeposit3D(name, ni, nj, nk, depi, depj, depk) { - fNi = ni; - fNj = nj; - fNk = nk; SetUnit(unit); } -G4PSEnergyDeposit3D::~G4PSEnergyDeposit3D() { ; } - G4int G4PSEnergyDeposit3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSFlatSurfaceCurrent.cc b/source/digits_hits/scorer/src/G4PSFlatSurfaceCurrent.cc index 84fdd006dd..a290bb9bbc 100644 --- a/source/digits_hits/scorer/src/G4PSFlatSurfaceCurrent.cc +++ b/source/digits_hits/scorer/src/G4PSFlatSurfaceCurrent.cc @@ -60,16 +60,8 @@ G4PSFlatSurfaceCurrent::G4PSFlatSurfaceCurrent(G4String name, G4int direction, G4int depth) - : G4VPrimitivePlotter(name, depth) - , HCID(-1) - , fDirection(direction) - , EvtMap(0) - , weighted(true) - , divideByArea(true) -{ - DefineUnitAndCategory(); - SetUnit("percm2"); -} + : G4PSFlatSurfaceCurrent(name, direction, "percm2", depth) +{} G4PSFlatSurfaceCurrent::G4PSFlatSurfaceCurrent(G4String name, G4int direction, const G4String& unit, @@ -77,7 +69,7 @@ G4PSFlatSurfaceCurrent::G4PSFlatSurfaceCurrent(G4String name, G4int direction, : G4VPrimitivePlotter(name, depth) , HCID(-1) , fDirection(direction) - , EvtMap(0) + , EvtMap(nullptr) , weighted(true) , divideByArea(true) { @@ -85,15 +77,13 @@ G4PSFlatSurfaceCurrent::G4PSFlatSurfaceCurrent(G4String name, G4int direction, SetUnit(unit); } -G4PSFlatSurfaceCurrent::~G4PSFlatSurfaceCurrent() { ; } - G4bool G4PSFlatSurfaceCurrent::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4StepPoint* preStep = aStep->GetPreStepPoint(); G4VPhysicalVolume* physVol = preStep->GetPhysicalVolume(); G4VPVParameterisation* physParam = physVol->GetParameterisation(); - G4VSolid* solid = 0; - if(physParam) + G4VSolid* solid = nullptr; + if(physParam != nullptr) { // for parameterized volume G4int idx = ((G4TouchableHistory*) (aStep->GetPreStepPoint()->GetTouchable())) @@ -106,7 +96,7 @@ G4bool G4PSFlatSurfaceCurrent::ProcessHits(G4Step* aStep, G4TouchableHistory*) solid = physVol->GetLogicalVolume()->GetSolid(); } - G4Box* boxSolid = (G4Box*) (solid); + auto boxSolid = (G4Box*) (solid); G4int dirFlag = IsSelectedSurface(aStep, boxSolid); if(dirFlag > 0) @@ -126,10 +116,10 @@ G4bool G4PSFlatSurfaceCurrent::ProcessHits(G4Step* aStep, G4TouchableHistory*) } EvtMap->add(index, current); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.cend()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception("G4PSFlatSurfaceCurrent::ProcessHits", "SCORER0123", JustWarning, @@ -144,7 +134,7 @@ G4bool G4PSFlatSurfaceCurrent::ProcessHits(G4Step* aStep, G4TouchableHistory*) } } - return TRUE; + return true; } G4int G4PSFlatSurfaceCurrent::IsSelectedSurface(G4Step* aStep, G4Box* boxSolid) @@ -189,28 +179,23 @@ void G4PSFlatSurfaceCurrent::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSFlatSurfaceCurrent::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSFlatSurfaceCurrent::clear() { EvtMap->clear(); } -void G4PSFlatSurfaceCurrent::DrawAll() { ; } - void G4PSFlatSurfaceCurrent::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, current] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first << " current : "; + G4cout << " copy no.: " << copy << " current : "; if(divideByArea) { - G4cout << *(itr->second) / GetUnitValue() << " [" << GetUnit() << "]"; + G4cout << *(current) / GetUnitValue() << " [" << GetUnit() << "]"; } else { - G4cout << *(itr->second) / GetUnitValue() << " [tracks]"; + G4cout << *(current) / GetUnitValue() << " [tracks]"; } G4cout << G4endl; } @@ -224,7 +209,7 @@ void G4PSFlatSurfaceCurrent::SetUnit(const G4String& unit) } else { - if(unit == "") + if(unit.empty()) { unitName = unit; unitValue = 1.0; diff --git a/source/digits_hits/scorer/src/G4PSFlatSurfaceCurrent3D.cc b/source/digits_hits/scorer/src/G4PSFlatSurfaceCurrent3D.cc index 03ef9e7bf4..e3bd0e2a62 100644 --- a/source/digits_hits/scorer/src/G4PSFlatSurfaceCurrent3D.cc +++ b/source/digits_hits/scorer/src/G4PSFlatSurfaceCurrent3D.cc @@ -51,15 +51,12 @@ G4PSFlatSurfaceCurrent3D::G4PSFlatSurfaceCurrent3D(G4String name, G4int direction, G4int ni, G4int nj, G4int nk, G4int di, G4int dj, G4int dk) - : G4PSFlatSurfaceCurrent(name, direction) , fDepthi(di) , fDepthj(dj) , fDepthk(dk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } G4PSFlatSurfaceCurrent3D::G4PSFlatSurfaceCurrent3D(G4String name, @@ -67,20 +64,11 @@ G4PSFlatSurfaceCurrent3D::G4PSFlatSurfaceCurrent3D(G4String name, const G4String& unit, G4int ni, G4int nj, G4int nk, G4int di, G4int dj, G4int dk) - - : G4PSFlatSurfaceCurrent(name, direction) - , fDepthi(di) - , fDepthj(dj) - , fDepthk(dk) + : G4PSFlatSurfaceCurrent3D(name, direction, ni, nj, nk, di, dj, dk) { - fNi = ni; - fNj = nj; - fNk = nk; SetUnit(unit); } -G4PSFlatSurfaceCurrent3D::~G4PSFlatSurfaceCurrent3D() { ; } - G4int G4PSFlatSurfaceCurrent3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSFlatSurfaceFlux.cc b/source/digits_hits/scorer/src/G4PSFlatSurfaceFlux.cc index e4ddd52494..1fa7cd251a 100644 --- a/source/digits_hits/scorer/src/G4PSFlatSurfaceFlux.cc +++ b/source/digits_hits/scorer/src/G4PSFlatSurfaceFlux.cc @@ -62,23 +62,15 @@ G4PSFlatSurfaceFlux::G4PSFlatSurfaceFlux(G4String name, G4int direction, G4int depth) - : G4VPrimitivePlotter(name, depth) - , HCID(-1) - , fDirection(direction) - , EvtMap(0) - , weighted(true) - , divideByArea(true) -{ - DefineUnitAndCategory(); - SetUnit("percm2"); -} + : G4PSFlatSurfaceFlux(name, direction, "percm2", depth) +{} G4PSFlatSurfaceFlux::G4PSFlatSurfaceFlux(G4String name, G4int direction, const G4String& unit, G4int depth) : G4VPrimitivePlotter(name, depth) , HCID(-1) , fDirection(direction) - , EvtMap(0) + , EvtMap(nullptr) , weighted(true) , divideByArea(true) { @@ -86,15 +78,13 @@ G4PSFlatSurfaceFlux::G4PSFlatSurfaceFlux(G4String name, G4int direction, SetUnit(unit); } -G4PSFlatSurfaceFlux::~G4PSFlatSurfaceFlux() { ; } - G4bool G4PSFlatSurfaceFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4StepPoint* preStep = aStep->GetPreStepPoint(); G4VPhysicalVolume* physVol = preStep->GetPhysicalVolume(); G4VPVParameterisation* physParam = physVol->GetParameterisation(); - G4VSolid* solid = 0; - if(physParam) + G4VSolid* solid = nullptr; + if(physParam != nullptr) { // for parameterized volume G4int idx = ((G4TouchableHistory*) (aStep->GetPreStepPoint()->GetTouchable())) @@ -107,14 +97,14 @@ G4bool G4PSFlatSurfaceFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) solid = physVol->GetLogicalVolume()->GetSolid(); } - G4Box* boxSolid = (G4Box*) (solid); + auto boxSolid = (G4Box*) (solid); G4int dirFlag = IsSelectedSurface(aStep, boxSolid); if(dirFlag > 0) { if(fDirection == fFlux_InOut || fDirection == dirFlag) { - G4StepPoint* thisStep = 0; + G4StepPoint* thisStep = nullptr; if(dirFlag == fFlux_In) { thisStep = preStep; @@ -125,7 +115,7 @@ G4bool G4PSFlatSurfaceFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) } else { - return FALSE; + return false; } G4TouchableHandle theTouchable = thisStep->GetTouchableHandle(); @@ -150,10 +140,10 @@ G4bool G4PSFlatSurfaceFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) G4int index = GetIndex(aStep); EvtMap->add(index, flux); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.cend()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception("G4PSFlatSurfaceFlux::ProcessHits", "SCORER0123", JustWarning, @@ -172,7 +162,7 @@ G4bool G4PSFlatSurfaceFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) << fFlatSurfaceFlux << G4endl; #endif - return TRUE; + return true; } G4int G4PSFlatSurfaceFlux::IsSelectedSurface(G4Step* aStep, G4Box* boxSolid) @@ -218,22 +208,17 @@ void G4PSFlatSurfaceFlux::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSFlatSurfaceFlux::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSFlatSurfaceFlux::clear() { EvtMap->clear(); } -void G4PSFlatSurfaceFlux::DrawAll() { ; } - void G4PSFlatSurfaceFlux::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer" << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, flux] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " flux : " << *(itr->second) / GetUnitValue() << " [" + G4cout << " copy no.: " << copy + << " flux : " << *(flux) / GetUnitValue() << " [" << GetUnit() << "]" << G4endl; } } @@ -246,7 +231,7 @@ void G4PSFlatSurfaceFlux::SetUnit(const G4String& unit) } else { - if(unit == "") + if(unit.empty()) { unitName = unit; unitValue = 1.0; diff --git a/source/digits_hits/scorer/src/G4PSFlatSurfaceFlux3D.cc b/source/digits_hits/scorer/src/G4PSFlatSurfaceFlux3D.cc index ec162dd9f9..1f7c78bd7f 100644 --- a/source/digits_hits/scorer/src/G4PSFlatSurfaceFlux3D.cc +++ b/source/digits_hits/scorer/src/G4PSFlatSurfaceFlux3D.cc @@ -57,28 +57,18 @@ G4PSFlatSurfaceFlux3D::G4PSFlatSurfaceFlux3D(G4String name, G4int direction, , fDepthj(dj) , fDepthk(dk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } G4PSFlatSurfaceFlux3D::G4PSFlatSurfaceFlux3D(G4String name, G4int direction, const G4String& unit, G4int ni, G4int nj, G4int nk, G4int di, G4int dj, G4int dk) - : G4PSFlatSurfaceFlux(name, direction) - , fDepthi(di) - , fDepthj(dj) - , fDepthk(dk) + : G4PSFlatSurfaceFlux3D(name, direction, ni, nj, nk, di, dj, dk) { - fNi = ni; - fNj = nj; - fNk = nk; SetUnit(unit); } -G4PSFlatSurfaceFlux3D::~G4PSFlatSurfaceFlux3D() { ; } - G4int G4PSFlatSurfaceFlux3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSMinKinEAtGeneration.cc b/source/digits_hits/scorer/src/G4PSMinKinEAtGeneration.cc index 6610102de7..e50b341a93 100644 --- a/source/digits_hits/scorer/src/G4PSMinKinEAtGeneration.cc +++ b/source/digits_hits/scorer/src/G4PSMinKinEAtGeneration.cc @@ -42,25 +42,19 @@ // G4PSMinKinEAtGeneration::G4PSMinKinEAtGeneration(G4String name, G4int depth) - : G4VPrimitivePlotter(name, depth) - , HCID(-1) - , EvtMap(0) -{ - SetUnit("MeV"); -} + : G4PSMinKinEAtGeneration(name, "MeV", depth) +{} G4PSMinKinEAtGeneration::G4PSMinKinEAtGeneration(G4String name, const G4String& unit, G4int depth) : G4VPrimitivePlotter(name, depth) , HCID(-1) - , EvtMap(0) + , EvtMap(nullptr) { SetUnit(unit); } -G4PSMinKinEAtGeneration::~G4PSMinKinEAtGeneration() { ; } - G4bool G4PSMinKinEAtGeneration::ProcessHits(G4Step* aStep, G4TouchableHistory*) { // =============== @@ -69,10 +63,10 @@ G4bool G4PSMinKinEAtGeneration::ProcessHits(G4Step* aStep, G4TouchableHistory*) // //- check for newly produced particle. e.g. Step number is 1. if(aStep->GetTrack()->GetCurrentStepNumber() != 1) - return FALSE; + return false; //- check for this is not a primary particle. e.g. ParentID != 0 . if(aStep->GetTrack()->GetParentID() == 0) - return FALSE; + return false; //=============================================== //- This is a newly produced secondary particle. @@ -87,10 +81,10 @@ G4bool G4PSMinKinEAtGeneration::ProcessHits(G4Step* aStep, G4TouchableHistory*) G4int index = GetIndex(aStep); G4double kinetic = aStep->GetPreStepPoint()->GetKineticEnergy(); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.cend()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception( "G4PSMinKinEAtGeneration::ProcessHits", "SCORER0123", JustWarning, @@ -109,15 +103,15 @@ G4bool G4PSMinKinEAtGeneration::ProcessHits(G4Step* aStep, G4TouchableHistory*) // - // If mapValue exits (e.g not NULL ), compare it with // current track's kinetic energy. - if(mapValue && (kinetic > *mapValue)) - return FALSE; + if((mapValue != nullptr) && (kinetic > *mapValue)) + return false; // - // Current Track is a newly produced secondary and has lower // kinetic energy than previous one in this geometry. // EvtMap->set(index, kinetic); - return TRUE; + return true; } void G4PSMinKinEAtGeneration::Initialize(G4HCofThisEvent* HCE) @@ -130,21 +124,16 @@ void G4PSMinKinEAtGeneration::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSMinKinEAtGeneration::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSMinKinEAtGeneration::clear() { EvtMap->clear(); } -void G4PSMinKinEAtGeneration::DrawAll() { ; } - void G4PSMinKinEAtGeneration::PrintAll() { G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, energy] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " energy: " << *(itr->second) / GetUnitValue() << " [" + G4cout << " copy no.: " << copy + << " energy: " << *(energy) / GetUnitValue() << " [" << GetUnit() << "]" << G4endl; } } diff --git a/source/digits_hits/scorer/src/G4PSMinKinEAtGeneration3D.cc b/source/digits_hits/scorer/src/G4PSMinKinEAtGeneration3D.cc index a35d54dcf3..49cde17454 100644 --- a/source/digits_hits/scorer/src/G4PSMinKinEAtGeneration3D.cc +++ b/source/digits_hits/scorer/src/G4PSMinKinEAtGeneration3D.cc @@ -48,9 +48,7 @@ G4PSMinKinEAtGeneration3D::G4PSMinKinEAtGeneration3D(G4String name, G4int ni, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } G4PSMinKinEAtGeneration3D::G4PSMinKinEAtGeneration3D(G4String name, @@ -58,19 +56,11 @@ G4PSMinKinEAtGeneration3D::G4PSMinKinEAtGeneration3D(G4String name, G4int ni, G4int nj, G4int nk, G4int depi, G4int depj, G4int depk) - : G4PSMinKinEAtGeneration(name) - , fDepthi(depi) - , fDepthj(depj) - , fDepthk(depk) + : G4PSMinKinEAtGeneration3D(name, ni, nj, nk, depi, depj, depk) { - fNi = ni; - fNj = nj; - fNk = nk; SetUnit(unit); } -G4PSMinKinEAtGeneration3D::~G4PSMinKinEAtGeneration3D() { ; } - G4int G4PSMinKinEAtGeneration3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSNofCollision.cc b/source/digits_hits/scorer/src/G4PSNofCollision.cc index 6fda7ad34e..3596fba908 100644 --- a/source/digits_hits/scorer/src/G4PSNofCollision.cc +++ b/source/digits_hits/scorer/src/G4PSNofCollision.cc @@ -39,27 +39,22 @@ /////////////////////////////////////////////////////////////////////////////// G4PSNofCollision::G4PSNofCollision(G4String name, G4int depth) - : G4VPrimitiveScorer(name, depth) - , HCID(-1) - , EvtMap(0) - , weighted(false) + : G4VPrimitiveScorer(name, depth) { SetUnit(""); } -G4PSNofCollision::~G4PSNofCollision() { ; } - G4bool G4PSNofCollision::ProcessHits(G4Step* aStep, G4TouchableHistory*) { if(aStep->GetPostStepPoint()->GetStepStatus() == fGeomBoundary) - return TRUE; + return true; G4int index = GetIndex(aStep); G4double val = 1.0; if(weighted) val *= aStep->GetPreStepPoint()->GetWeight(); EvtMap->add(index, val); - return TRUE; + return true; } void G4PSNofCollision::Initialize(G4HCofThisEvent* HCE) @@ -72,29 +67,24 @@ void G4PSNofCollision::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSNofCollision::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSNofCollision::clear() { EvtMap->clear(); } -void G4PSNofCollision::DrawAll() { ; } - void G4PSNofCollision::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, collisions] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " collisions: " << *(itr->second) / GetUnitValue() + G4cout << " copy no.: " << copy + << " collisions: " << *(collisions) / GetUnitValue() << " [collision] " << G4endl; } } void G4PSNofCollision::SetUnit(const G4String& unit) { - if(unit == "") + if(unit.empty()) { unitName = unit; unitValue = 1.0; diff --git a/source/digits_hits/scorer/src/G4PSNofCollision3D.cc b/source/digits_hits/scorer/src/G4PSNofCollision3D.cc index b8dbf29bfd..0e5644ca97 100644 --- a/source/digits_hits/scorer/src/G4PSNofCollision3D.cc +++ b/source/digits_hits/scorer/src/G4PSNofCollision3D.cc @@ -44,13 +44,9 @@ G4PSNofCollision3D::G4PSNofCollision3D(G4String name, G4int ni, G4int nj, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } -G4PSNofCollision3D::~G4PSNofCollision3D() { ; } - G4int G4PSNofCollision3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSNofSecondary.cc b/source/digits_hits/scorer/src/G4PSNofSecondary.cc index f79d5ea881..3cc3662446 100644 --- a/source/digits_hits/scorer/src/G4PSNofSecondary.cc +++ b/source/digits_hits/scorer/src/G4PSNofSecondary.cc @@ -42,27 +42,19 @@ G4PSNofSecondary::G4PSNofSecondary(G4String name, G4int depth) : G4VPrimitivePlotter(name, depth) - , HCID(-1) - , EvtMap(0) - , particleDef(0) - , weighted(true) -{ - ; -} - -G4PSNofSecondary::~G4PSNofSecondary() { ; } +{} G4bool G4PSNofSecondary::ProcessHits(G4Step* aStep, G4TouchableHistory*) { //- check for newly produced particle. e.g. first step. if(aStep->GetTrack()->GetCurrentStepNumber() != 1) - return FALSE; + return false; //- check for this is not a primary particle. e.g. ParentID > 0 . if(aStep->GetTrack()->GetParentID() == 0) - return FALSE; + return false; //- check the particle if the partifle definition is given. - if(particleDef && particleDef != aStep->GetTrack()->GetDefinition()) - return FALSE; + if((particleDef != nullptr) && particleDef != aStep->GetTrack()->GetDefinition()) + return false; // //- This is a newly produced secondary particle. G4int index = GetIndex(aStep); @@ -71,10 +63,10 @@ G4bool G4PSNofSecondary::ProcessHits(G4Step* aStep, G4TouchableHistory*) weight *= aStep->GetPreStepPoint()->GetWeight(); EvtMap->add(index, weight); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.cend()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception( "G4PSVolumeFlux::ProcessHits", "SCORER0123", JustWarning, @@ -87,14 +79,14 @@ G4bool G4PSNofSecondary::ProcessHits(G4Step* aStep, G4TouchableHistory*) } } - return TRUE; + return true; } void G4PSNofSecondary::SetParticle(const G4String& particleName) { G4ParticleDefinition* pd = G4ParticleTable::GetParticleTable()->FindParticle(particleName); - if(!pd) + if(pd == nullptr) { G4String msg = "Particle <"; msg += particleName; @@ -115,28 +107,23 @@ void G4PSNofSecondary::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSNofSecondary::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSNofSecondary::clear() { EvtMap->clear(); } -void G4PSNofSecondary::DrawAll() { ; } - void G4PSNofSecondary::PrintAll() { G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, secondaries] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " num of secondaries: " << *(itr->second) / GetUnitValue() + G4cout << " copy no.: " << copy + << " num of secondaries: " << *(secondaries) / GetUnitValue() << G4endl; } } void G4PSNofSecondary::SetUnit(const G4String& unit) { - if(unit == "") + if(unit.empty()) { unitName = unit; unitValue = 1.0; diff --git a/source/digits_hits/scorer/src/G4PSNofSecondary3D.cc b/source/digits_hits/scorer/src/G4PSNofSecondary3D.cc index cd9eff02e9..091c2b844b 100644 --- a/source/digits_hits/scorer/src/G4PSNofSecondary3D.cc +++ b/source/digits_hits/scorer/src/G4PSNofSecondary3D.cc @@ -44,13 +44,9 @@ G4PSNofSecondary3D::G4PSNofSecondary3D(G4String name, G4int ni, G4int nj, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } -G4PSNofSecondary3D::~G4PSNofSecondary3D() { ; } - G4int G4PSNofSecondary3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSNofStep.cc b/source/digits_hits/scorer/src/G4PSNofStep.cc index 046ff2605c..f887bb8248 100644 --- a/source/digits_hits/scorer/src/G4PSNofStep.cc +++ b/source/digits_hits/scorer/src/G4PSNofStep.cc @@ -42,30 +42,25 @@ G4PSNofStep::G4PSNofStep(G4String name, G4int depth) : G4VPrimitivePlotter(name, depth) - , HCID(-1) - , EvtMap(0) - , boundaryFlag(false) { SetUnit(""); } -G4PSNofStep::~G4PSNofStep() { ; } - G4bool G4PSNofStep::ProcessHits(G4Step* aStep, G4TouchableHistory*) { if(boundaryFlag) { if(aStep->GetStepLength() == 0.) - return FALSE; + return false; } G4int index = GetIndex(aStep); G4double val = 1.0; EvtMap->add(index, val); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.cend()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception( "G4PSNofStep::ProcessHits", "SCORER0123", JustWarning, @@ -77,7 +72,7 @@ G4bool G4PSNofStep::ProcessHits(G4Step* aStep, G4TouchableHistory*) } } - return TRUE; + return true; } void G4PSNofStep::Initialize(G4HCofThisEvent* HCE) @@ -90,28 +85,23 @@ void G4PSNofStep::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSNofStep::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSNofStep::clear() { EvtMap->clear(); } -void G4PSNofStep::DrawAll() { ; } - void G4PSNofStep::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, nsteps] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " num of step: " << *(itr->second) << " [steps] " << G4endl; + G4cout << " copy no.: " << copy + << " num of step: " << *(nsteps) << " [steps] " << G4endl; } } void G4PSNofStep::SetUnit(const G4String& unit) { - if(unit == "") + if(unit.empty()) { unitName = unit; unitValue = 1.0; diff --git a/source/digits_hits/scorer/src/G4PSNofStep3D.cc b/source/digits_hits/scorer/src/G4PSNofStep3D.cc index 5e6bae33d2..f5e4b6a279 100644 --- a/source/digits_hits/scorer/src/G4PSNofStep3D.cc +++ b/source/digits_hits/scorer/src/G4PSNofStep3D.cc @@ -43,13 +43,9 @@ G4PSNofStep3D::G4PSNofStep3D(G4String name, G4int ni, G4int nj, G4int nk, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } -G4PSNofStep3D::~G4PSNofStep3D() { ; } - G4int G4PSNofStep3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSPassageCellCurrent.cc b/source/digits_hits/scorer/src/G4PSPassageCellCurrent.cc index b9379f06c0..66a527cdaf 100644 --- a/source/digits_hits/scorer/src/G4PSPassageCellCurrent.cc +++ b/source/digits_hits/scorer/src/G4PSPassageCellCurrent.cc @@ -49,17 +49,10 @@ G4PSPassageCellCurrent::G4PSPassageCellCurrent(G4String name, G4int depth) : G4VPrimitivePlotter(name, depth) - , HCID(-1) - , fCurrentTrkID(-1) - , fCurrent(0) - , EvtMap(0) - , weighted(true) { SetUnit(""); } -G4PSPassageCellCurrent::~G4PSPassageCellCurrent() { ; } - G4bool G4PSPassageCellCurrent::ProcessHits(G4Step* aStep, G4TouchableHistory*) { if(IsPassed(aStep)) @@ -70,10 +63,10 @@ G4bool G4PSPassageCellCurrent::ProcessHits(G4Step* aStep, G4TouchableHistory*) G4int index = GetIndex(aStep); EvtMap->add(index, fCurrent); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.cend()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception( "G4PSVolumeFlux::ProcessHits", "SCORER0123", JustWarning, @@ -87,12 +80,12 @@ G4bool G4PSPassageCellCurrent::ProcessHits(G4Step* aStep, G4TouchableHistory*) } } - return TRUE; + return true; } G4bool G4PSPassageCellCurrent::IsPassed(G4Step* aStep) { - G4bool Passed = FALSE; + G4bool Passed = false; G4bool IsEnter = aStep->GetPreStepPoint()->GetStepStatus() == fGeomBoundary; G4bool IsExit = aStep->GetPostStepPoint()->GetStepStatus() == fGeomBoundary; @@ -101,7 +94,7 @@ G4bool G4PSPassageCellCurrent::IsPassed(G4Step* aStep) if(IsEnter && IsExit) { // Passed at one step - Passed = TRUE; + Passed = true; } else if(IsEnter) { // Enter a new geometry @@ -111,7 +104,7 @@ G4bool G4PSPassageCellCurrent::IsPassed(G4Step* aStep) { // Exit a current geometry if(fCurrentTrkID == trkid) { - Passed = TRUE; // if the track is same as entered. + Passed = true; // if the track is same as entered. } } else @@ -133,28 +126,23 @@ void G4PSPassageCellCurrent::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, EvtMap); } -void G4PSPassageCellCurrent::EndOfEvent(G4HCofThisEvent*) {} - void G4PSPassageCellCurrent::clear() { EvtMap->clear(); } -void G4PSPassageCellCurrent::DrawAll() { ; } - void G4PSPassageCellCurrent::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, current] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " cell current : " << *(itr->second) << " [tracks] " << G4endl; + G4cout << " copy no.: " << copy + << " cell current : " << *(current) << " [tracks] " << G4endl; } } void G4PSPassageCellCurrent::SetUnit(const G4String& unit) { - if(unit == "") + if(unit.empty()) { unitName = unit; unitValue = 1.0; diff --git a/source/digits_hits/scorer/src/G4PSPassageCellCurrent3D.cc b/source/digits_hits/scorer/src/G4PSPassageCellCurrent3D.cc index 3494e06204..8965741ed0 100644 --- a/source/digits_hits/scorer/src/G4PSPassageCellCurrent3D.cc +++ b/source/digits_hits/scorer/src/G4PSPassageCellCurrent3D.cc @@ -47,13 +47,9 @@ G4PSPassageCellCurrent3D::G4PSPassageCellCurrent3D(G4String name, G4int ni, , fDepthj(dj) , fDepthk(dk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } -G4PSPassageCellCurrent3D::~G4PSPassageCellCurrent3D() { ; } - G4int G4PSPassageCellCurrent3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSPassageCellFlux.cc b/source/digits_hits/scorer/src/G4PSPassageCellFlux.cc index a00c0bf4fd..d9885e19a0 100644 --- a/source/digits_hits/scorer/src/G4PSPassageCellFlux.cc +++ b/source/digits_hits/scorer/src/G4PSPassageCellFlux.cc @@ -56,16 +56,8 @@ /////////////////////////////////////////////////////////////////////////////// G4PSPassageCellFlux::G4PSPassageCellFlux(G4String name, G4int depth) - : G4VPrimitivePlotter(name, depth) - , HCID(-1) - , fCurrentTrkID(-1) - , fCellFlux(0) - , EvtMap(0) - , weighted(true) -{ - DefineUnitAndCategory(); - SetUnit("percm2"); -} + : G4PSPassageCellFlux(name, "percm2", depth) +{} G4PSPassageCellFlux::G4PSPassageCellFlux(G4String name, const G4String& unit, G4int depth) @@ -73,15 +65,13 @@ G4PSPassageCellFlux::G4PSPassageCellFlux(G4String name, const G4String& unit, , HCID(-1) , fCurrentTrkID(-1) , fCellFlux(0) - , EvtMap(0) + , EvtMap(nullptr) , weighted(true) { DefineUnitAndCategory(); SetUnit(unit); } -G4PSPassageCellFlux::~G4PSPassageCellFlux() { ; } - G4bool G4PSPassageCellFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) { if(IsPassed(aStep)) @@ -95,10 +85,10 @@ G4bool G4PSPassageCellFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) G4int index = GetIndex(aStep); EvtMap->add(index, fCellFlux); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.cend()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception( "G4PSPassageCellFlux::ProcessHits", "SCORER0123", JustWarning, @@ -112,12 +102,12 @@ G4bool G4PSPassageCellFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) } } - return TRUE; + return true; } G4bool G4PSPassageCellFlux::IsPassed(G4Step* aStep) { - G4bool Passed = FALSE; + G4bool Passed = false; G4bool IsEnter = aStep->GetPreStepPoint()->GetStepStatus() == fGeomBoundary; G4bool IsExit = aStep->GetPostStepPoint()->GetStepStatus() == fGeomBoundary; @@ -130,7 +120,7 @@ G4bool G4PSPassageCellFlux::IsPassed(G4Step* aStep) if(IsEnter && IsExit) { // Passed at one step fCellFlux = trklength; // Track length is absolutely given. - Passed = TRUE; + Passed = true; } else if(IsEnter) { // Enter a new geometry @@ -142,7 +132,7 @@ G4bool G4PSPassageCellFlux::IsPassed(G4Step* aStep) if(fCurrentTrkID == trkid) { // if the track is same as entered, fCellFlux += trklength; // add the track length to current one. - Passed = TRUE; + Passed = true; } } else @@ -166,22 +156,17 @@ void G4PSPassageCellFlux::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, EvtMap); } -void G4PSPassageCellFlux::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSPassageCellFlux::clear() { EvtMap->clear(); } -void G4PSPassageCellFlux::DrawAll() { ; } - void G4PSPassageCellFlux::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, flux] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " cell flux : " << *(itr->second) / GetUnitValue() << " [" + G4cout << " copy no.: " << copy + << " cell flux : " << *(flux) / GetUnitValue() << " [" << GetUnit() << G4endl; } } diff --git a/source/digits_hits/scorer/src/G4PSPassageCellFlux3D.cc b/source/digits_hits/scorer/src/G4PSPassageCellFlux3D.cc index ef5aa57687..260a75aadc 100644 --- a/source/digits_hits/scorer/src/G4PSPassageCellFlux3D.cc +++ b/source/digits_hits/scorer/src/G4PSPassageCellFlux3D.cc @@ -49,28 +49,18 @@ G4PSPassageCellFlux3D::G4PSPassageCellFlux3D(G4String name, G4int ni, G4int nj, , fDepthj(dj) , fDepthk(dk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } G4PSPassageCellFlux3D::G4PSPassageCellFlux3D(G4String name, const G4String& unit, G4int ni, G4int nj, G4int nk, G4int di, G4int dj, G4int dk) - : G4PSPassageCellFlux(name) - , fDepthi(di) - , fDepthj(dj) - , fDepthk(dk) + : G4PSPassageCellFlux3D(name, ni, nj, nk, di, dj, dk) { - fNi = ni; - fNj = nj; - fNk = nk; SetUnit(unit); } -G4PSPassageCellFlux3D::~G4PSPassageCellFlux3D() { ; } - G4int G4PSPassageCellFlux3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSPassageCellFluxForCylinder3D.cc b/source/digits_hits/scorer/src/G4PSPassageCellFluxForCylinder3D.cc index 4fafb0429e..57619103a9 100644 --- a/source/digits_hits/scorer/src/G4PSPassageCellFluxForCylinder3D.cc +++ b/source/digits_hits/scorer/src/G4PSPassageCellFluxForCylinder3D.cc @@ -59,8 +59,6 @@ G4PSPassageCellFluxForCylinder3D::G4PSPassageCellFluxForCylinder3D( nSegment[0] = nSegment[1] = nSegment[2] = 0; } -G4PSPassageCellFluxForCylinder3D::~G4PSPassageCellFluxForCylinder3D() { ; } - void G4PSPassageCellFluxForCylinder3D::SetCylinderSize(G4ThreeVector cylSize, G4double StartAng, G4double AngSpan) { cylinderSize = cylSize; // rMin, rMax, halfZ diff --git a/source/digits_hits/scorer/src/G4PSPassageTrackLength.cc b/source/digits_hits/scorer/src/G4PSPassageTrackLength.cc index 26f774d9cd..963bd93b35 100644 --- a/source/digits_hits/scorer/src/G4PSPassageTrackLength.cc +++ b/source/digits_hits/scorer/src/G4PSPassageTrackLength.cc @@ -46,15 +46,8 @@ /////////////////////////////////////////////////////////////////////////////// G4PSPassageTrackLength::G4PSPassageTrackLength(G4String name, G4int depth) - : G4VPrimitivePlotter(name, depth) - , HCID(-1) - , fCurrentTrkID(-1) - , fTrackLength(0.) - , EvtMap(0) - , weighted(false) -{ - SetUnit("mm"); -} + : G4PSPassageTrackLength(name, "mm", depth) +{} G4PSPassageTrackLength::G4PSPassageTrackLength(G4String name, const G4String& unit, @@ -63,14 +56,12 @@ G4PSPassageTrackLength::G4PSPassageTrackLength(G4String name, , HCID(-1) , fCurrentTrkID(-1) , fTrackLength(0.) - , EvtMap(0) + , EvtMap(nullptr) , weighted(false) { SetUnit(unit); } -G4PSPassageTrackLength::~G4PSPassageTrackLength() { ; } - G4bool G4PSPassageTrackLength::ProcessHits(G4Step* aStep, G4TouchableHistory*) { if(IsPassed(aStep)) @@ -78,10 +69,10 @@ G4bool G4PSPassageTrackLength::ProcessHits(G4Step* aStep, G4TouchableHistory*) G4int index = GetIndex(aStep); EvtMap->add(index, fTrackLength); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.cend()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception( "G4PSPassageTrackLength::ProcessHits", "SCORER0123", JustWarning, @@ -94,12 +85,12 @@ G4bool G4PSPassageTrackLength::ProcessHits(G4Step* aStep, G4TouchableHistory*) } } - return TRUE; + return true; } G4bool G4PSPassageTrackLength::IsPassed(G4Step* aStep) { - G4bool Passed = FALSE; + G4bool Passed = false; G4bool IsEnter = aStep->GetPreStepPoint()->GetStepStatus() == fGeomBoundary; G4bool IsExit = aStep->GetPostStepPoint()->GetStepStatus() == fGeomBoundary; @@ -112,7 +103,7 @@ G4bool G4PSPassageTrackLength::IsPassed(G4Step* aStep) if(IsEnter && IsExit) { // Passed at one step fTrackLength = trklength; // Track length is absolutely given. - Passed = TRUE; + Passed = true; } else if(IsEnter) { // Enter a new geometry @@ -124,7 +115,7 @@ G4bool G4PSPassageTrackLength::IsPassed(G4Step* aStep) if(fCurrentTrkID == trkid) { fTrackLength += trklength; // Adding the track length to current one, - Passed = TRUE; // if the track is same as entered. + Passed = true; // if the track is same as entered. } } else @@ -148,22 +139,17 @@ void G4PSPassageTrackLength::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, EvtMap); } -void G4PSPassageTrackLength::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSPassageTrackLength::clear() { EvtMap->clear(); } -void G4PSPassageTrackLength::DrawAll() { ; } - void G4PSPassageTrackLength::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveSenstivity " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, length] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " track length : " << *(itr->second) / GetUnitValue() << " [" + G4cout << " copy no.: " << copy + << " track length : " << *(length) / GetUnitValue() << " [" << GetUnit() << "]" << G4endl; } } diff --git a/source/digits_hits/scorer/src/G4PSPassageTrackLength3D.cc b/source/digits_hits/scorer/src/G4PSPassageTrackLength3D.cc index 3dff2588f4..94b217380c 100644 --- a/source/digits_hits/scorer/src/G4PSPassageTrackLength3D.cc +++ b/source/digits_hits/scorer/src/G4PSPassageTrackLength3D.cc @@ -48,9 +48,7 @@ G4PSPassageTrackLength3D::G4PSPassageTrackLength3D(G4String name, G4int ni, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } G4PSPassageTrackLength3D::G4PSPassageTrackLength3D(G4String name, @@ -58,19 +56,11 @@ G4PSPassageTrackLength3D::G4PSPassageTrackLength3D(G4String name, G4int ni, G4int nj, G4int nk, G4int depi, G4int depj, G4int depk) - : G4PSPassageTrackLength(name) - , fDepthi(depi) - , fDepthj(depj) - , fDepthk(depk) + : G4PSPassageTrackLength3D(name, ni, nj, nk, depi, depj, depk) { - fNi = ni; - fNj = nj; - fNk = nk; SetUnit(unit); } -G4PSPassageTrackLength3D::~G4PSPassageTrackLength3D() { ; } - G4int G4PSPassageTrackLength3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSPopulation.cc b/source/digits_hits/scorer/src/G4PSPopulation.cc index ef85f6ebda..46057554eb 100644 --- a/source/digits_hits/scorer/src/G4PSPopulation.cc +++ b/source/digits_hits/scorer/src/G4PSPopulation.cc @@ -39,15 +39,10 @@ G4PSPopulation::G4PSPopulation(G4String name, G4int depth) : G4VPrimitiveScorer(name, depth) - , HCID(-1) - , EvtMap(0) - , weighted(false) { SetUnit(""); } -G4PSPopulation::~G4PSPopulation() { ; } - G4bool G4PSPopulation::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4int index = GetIndex(aStep); @@ -60,7 +55,7 @@ G4bool G4PSPopulation::ProcessHits(G4Step* aStep, G4TouchableHistory*) EvtMap->add(index, val); } - return TRUE; + return true; } void G4PSPopulation::Initialize(G4HCofThisEvent* HCE) @@ -81,25 +76,22 @@ void G4PSPopulation::clear() fCellTrackLogger.clear(); } -void G4PSPopulation::DrawAll() { ; } - void G4PSPopulation::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, population] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " population: " << *(itr->second) / GetUnitValue() << " [tracks]" + G4cout << " copy no.: " << copy + << " population: " << *(population) / GetUnitValue() << " [tracks]" << G4endl; } } void G4PSPopulation::SetUnit(const G4String& unit) { - if(unit == "") + if(unit.empty()) { unitName = unit; unitValue = 1.0; diff --git a/source/digits_hits/scorer/src/G4PSPopulation3D.cc b/source/digits_hits/scorer/src/G4PSPopulation3D.cc index 989c6c9542..f6be36eb61 100644 --- a/source/digits_hits/scorer/src/G4PSPopulation3D.cc +++ b/source/digits_hits/scorer/src/G4PSPopulation3D.cc @@ -42,13 +42,9 @@ G4PSPopulation3D::G4PSPopulation3D(G4String name, G4int ni, G4int nj, G4int nk, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } -G4PSPopulation3D::~G4PSPopulation3D() { ; } - G4int G4PSPopulation3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSSphereSurfaceCurrent.cc b/source/digits_hits/scorer/src/G4PSSphereSurfaceCurrent.cc index dc129b8622..78cd4ce970 100644 --- a/source/digits_hits/scorer/src/G4PSSphereSurfaceCurrent.cc +++ b/source/digits_hits/scorer/src/G4PSSphereSurfaceCurrent.cc @@ -54,16 +54,8 @@ G4PSSphereSurfaceCurrent::G4PSSphereSurfaceCurrent(G4String name, G4int direction, G4int depth) - : G4VPrimitiveScorer(name, depth) - , HCID(-1) - , fDirection(direction) - , EvtMap(0) - , weighted(true) - , divideByArea(true) -{ - DefineUnitAndCategory(); - SetUnit("percm2"); -} + : G4PSSphereSurfaceCurrent(name, direction, "percm2", depth) +{} G4PSSphereSurfaceCurrent::G4PSSphereSurfaceCurrent(G4String name, G4int direction, @@ -72,7 +64,7 @@ G4PSSphereSurfaceCurrent::G4PSSphereSurfaceCurrent(G4String name, : G4VPrimitiveScorer(name, depth) , HCID(-1) , fDirection(direction) - , EvtMap(0) + , EvtMap(nullptr) , weighted(true) , divideByArea(true) { @@ -80,15 +72,13 @@ G4PSSphereSurfaceCurrent::G4PSSphereSurfaceCurrent(G4String name, SetUnit(unit); } -G4PSSphereSurfaceCurrent::~G4PSSphereSurfaceCurrent() { ; } - G4bool G4PSSphereSurfaceCurrent::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4StepPoint* preStep = aStep->GetPreStepPoint(); G4VSolid* solid = ComputeCurrentSolid(aStep); assert(dynamic_cast(solid) != nullptr); - G4Sphere* sphereSolid = static_cast(solid); + auto sphereSolid = static_cast(solid); G4int dirFlag = IsSelectedSurface(aStep, sphereSolid); if(dirFlag > 0) @@ -114,7 +104,7 @@ G4bool G4PSSphereSurfaceCurrent::ProcessHits(G4Step* aStep, G4TouchableHistory*) } } - return TRUE; + return true; } G4int G4PSSphereSurfaceCurrent::IsSelectedSurface(G4Step* aStep, @@ -180,28 +170,23 @@ void G4PSSphereSurfaceCurrent::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSSphereSurfaceCurrent::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSSphereSurfaceCurrent::clear() { EvtMap->clear(); } -void G4PSSphereSurfaceCurrent::DrawAll() { ; } - void G4PSSphereSurfaceCurrent::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, current] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first << " current : "; + G4cout << " copy no.: " << copy << " current : "; if(divideByArea) { - G4cout << *(itr->second) / GetUnitValue() << " [" << GetUnit() << "]"; + G4cout << *(current) / GetUnitValue() << " [" << GetUnit() << "]"; } else { - G4cout << *(itr->second) << " [tracks]"; + G4cout << *(current) << " [tracks]"; } G4cout << G4endl; } @@ -215,7 +200,7 @@ void G4PSSphereSurfaceCurrent::SetUnit(const G4String& unit) } else { - if(unit == "") + if(unit.empty()) { unitName = unit; unitValue = 1.0; diff --git a/source/digits_hits/scorer/src/G4PSSphereSurfaceCurrent3D.cc b/source/digits_hits/scorer/src/G4PSSphereSurfaceCurrent3D.cc index 66742468e6..f8ea634049 100644 --- a/source/digits_hits/scorer/src/G4PSSphereSurfaceCurrent3D.cc +++ b/source/digits_hits/scorer/src/G4PSSphereSurfaceCurrent3D.cc @@ -57,27 +57,17 @@ G4PSSphereSurfaceCurrent3D::G4PSSphereSurfaceCurrent3D(G4String name, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } G4PSSphereSurfaceCurrent3D::G4PSSphereSurfaceCurrent3D( G4String name, G4int direction, const G4String& unit, G4int ni, G4int nj, G4int nk, G4int depi, G4int depj, G4int depk) - : G4PSSphereSurfaceCurrent(name, direction) - , fDepthi(depi) - , fDepthj(depj) - , fDepthk(depk) + : G4PSSphereSurfaceCurrent3D(name, direction, ni, nj, nk, depi, depj, depk) { - fNi = ni; - fNj = nj; - fNk = nk; SetUnit(unit); } -G4PSSphereSurfaceCurrent3D::~G4PSSphereSurfaceCurrent3D() { ; } - G4int G4PSSphereSurfaceCurrent3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSSphereSurfaceFlux.cc b/source/digits_hits/scorer/src/G4PSSphereSurfaceFlux.cc index d91c5928cb..942b03973d 100644 --- a/source/digits_hits/scorer/src/G4PSSphereSurfaceFlux.cc +++ b/source/digits_hits/scorer/src/G4PSSphereSurfaceFlux.cc @@ -58,23 +58,15 @@ G4PSSphereSurfaceFlux::G4PSSphereSurfaceFlux(G4String name, G4int direction, G4int depth) - : G4VPrimitiveScorer(name, depth) - , HCID(-1) - , fDirection(direction) - , EvtMap(0) - , weighted(true) - , divideByArea(true) -{ - DefineUnitAndCategory(); - SetUnit("percm2"); -} + : G4PSSphereSurfaceFlux(name, direction, "percm2", depth) +{} G4PSSphereSurfaceFlux::G4PSSphereSurfaceFlux(G4String name, G4int direction, const G4String& unit, G4int depth) : G4VPrimitiveScorer(name, depth) , HCID(-1) , fDirection(direction) - , EvtMap(0) + , EvtMap(nullptr) , weighted(true) , divideByArea(true) { @@ -82,16 +74,14 @@ G4PSSphereSurfaceFlux::G4PSSphereSurfaceFlux(G4String name, G4int direction, SetUnit(unit); } -G4PSSphereSurfaceFlux::~G4PSSphereSurfaceFlux() { ; } - G4bool G4PSSphereSurfaceFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4StepPoint* preStep = aStep->GetPreStepPoint(); G4VPhysicalVolume* physVol = preStep->GetPhysicalVolume(); G4VPVParameterisation* physParam = physVol->GetParameterisation(); - G4VSolid* solid = 0; - if(physParam) + G4VSolid* solid = nullptr; + if(physParam != nullptr) { // for parameterized volume G4int idx = ((G4TouchableHistory*) (aStep->GetPreStepPoint()->GetTouchable())) @@ -104,14 +94,14 @@ G4bool G4PSSphereSurfaceFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) solid = physVol->GetLogicalVolume()->GetSolid(); } - G4Sphere* sphereSolid = (G4Sphere*) (solid); + auto sphereSolid = (G4Sphere*) (solid); G4int dirFlag = IsSelectedSurface(aStep, sphereSolid); if(dirFlag > 0) { if(fDirection == fFlux_InOut || fDirection == dirFlag) { - G4StepPoint* thisStep = 0; + G4StepPoint* thisStep = nullptr; if(dirFlag == fFlux_In) { thisStep = preStep; @@ -122,7 +112,7 @@ G4bool G4PSSphereSurfaceFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) } else { - return FALSE; + return false; } G4TouchableHandle theTouchable = thisStep->GetTouchableHandle(); @@ -162,7 +152,7 @@ G4bool G4PSSphereSurfaceFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) } } - return TRUE; + return true; } G4int G4PSSphereSurfaceFlux::IsSelectedSurface(G4Step* aStep, @@ -228,22 +218,17 @@ void G4PSSphereSurfaceFlux::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSSphereSurfaceFlux::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSSphereSurfaceFlux::clear() { EvtMap->clear(); } -void G4PSSphereSurfaceFlux::DrawAll() { ; } - void G4PSSphereSurfaceFlux::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, flux] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " Flux : " << *(itr->second) / GetUnitValue() << " [" + G4cout << " copy no.: " << copy + << " Flux : " << *(flux) / GetUnitValue() << " [" << GetUnit() << "]" << G4endl; } } @@ -256,7 +241,7 @@ void G4PSSphereSurfaceFlux::SetUnit(const G4String& unit) } else { - if(unit == "") + if(unit.empty()) { unitName = unit; unitValue = 1.0; diff --git a/source/digits_hits/scorer/src/G4PSSphereSurfaceFlux3D.cc b/source/digits_hits/scorer/src/G4PSSphereSurfaceFlux3D.cc index 5bac8ada8d..a7a789affb 100644 --- a/source/digits_hits/scorer/src/G4PSSphereSurfaceFlux3D.cc +++ b/source/digits_hits/scorer/src/G4PSSphereSurfaceFlux3D.cc @@ -55,28 +55,18 @@ G4PSSphereSurfaceFlux3D::G4PSSphereSurfaceFlux3D(G4String name, G4int direction, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } G4PSSphereSurfaceFlux3D::G4PSSphereSurfaceFlux3D(G4String name, G4int direction, const G4String& unit, G4int ni, G4int nj, G4int nk, G4int depi, G4int depj, G4int depk) - : G4PSSphereSurfaceFlux(name, direction) - , fDepthi(depi) - , fDepthj(depj) - , fDepthk(depk) + : G4PSSphereSurfaceFlux3D(name, direction, ni, nj, nk, depi, depj, depk) { - fNi = ni; - fNj = nj; - fNk = nk; SetUnit(unit); } -G4PSSphereSurfaceFlux3D::~G4PSSphereSurfaceFlux3D() { ; } - G4int G4PSSphereSurfaceFlux3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSStepChecker.cc b/source/digits_hits/scorer/src/G4PSStepChecker.cc index 7c57842493..2c4a98a84a 100644 --- a/source/digits_hits/scorer/src/G4PSStepChecker.cc +++ b/source/digits_hits/scorer/src/G4PSStepChecker.cc @@ -40,21 +40,9 @@ G4PSStepChecker::G4PSStepChecker(G4String name, G4int depth) : G4VPrimitiveScorer(name, depth) {} -G4PSStepChecker::~G4PSStepChecker() {} - G4bool G4PSStepChecker::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4cout << "G4PSStepChecker:: Step identified index= " << GetIndex(aStep) << G4endl; - return TRUE; + return true; } - -void G4PSStepChecker::Initialize(G4HCofThisEvent*) {} - -void G4PSStepChecker::EndOfEvent(G4HCofThisEvent*) {} - -void G4PSStepChecker::clear() {} - -void G4PSStepChecker::DrawAll() {} - -void G4PSStepChecker::PrintAll() {} diff --git a/source/digits_hits/scorer/src/G4PSStepChecker3D.cc b/source/digits_hits/scorer/src/G4PSStepChecker3D.cc index a03b656d5e..3744488a94 100644 --- a/source/digits_hits/scorer/src/G4PSStepChecker3D.cc +++ b/source/digits_hits/scorer/src/G4PSStepChecker3D.cc @@ -44,13 +44,9 @@ G4PSStepChecker3D::G4PSStepChecker3D(G4String name, G4int ni, G4int nj, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } -G4PSStepChecker3D::~G4PSStepChecker3D() { ; } - G4int G4PSStepChecker3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSTermination.cc b/source/digits_hits/scorer/src/G4PSTermination.cc index b91e434ddd..e2f8c1de73 100644 --- a/source/digits_hits/scorer/src/G4PSTermination.cc +++ b/source/digits_hits/scorer/src/G4PSTermination.cc @@ -41,26 +41,21 @@ G4PSTermination::G4PSTermination(G4String name, G4int depth) : G4VPrimitiveScorer(name, depth) - , HCID(-1) - , EvtMap(0) - , weighted(false) { SetUnit(""); } -G4PSTermination::~G4PSTermination() { ; } - G4bool G4PSTermination::ProcessHits(G4Step* aStep, G4TouchableHistory*) { if(aStep->GetTrack()->GetTrackStatus() != fStopAndKill) - return FALSE; + return false; G4int index = GetIndex(aStep); G4double val = 1.0; if(weighted) val *= aStep->GetPreStepPoint()->GetWeight(); EvtMap->add(index, val); - return TRUE; + return true; } void G4PSTermination::Initialize(G4HCofThisEvent* HCE) @@ -73,28 +68,23 @@ void G4PSTermination::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSTermination::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSTermination::clear() { EvtMap->clear(); } -void G4PSTermination::DrawAll() { ; } - void G4PSTermination::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, terminations] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " terminations: " << *(itr->second) << G4endl; + G4cout << " copy no.: " << copy + << " terminations: " << *(terminations) << G4endl; } } void G4PSTermination::SetUnit(const G4String& unit) { - if(unit == "") + if(unit.empty()) { unitName = unit; unitValue = 1.0; diff --git a/source/digits_hits/scorer/src/G4PSTermination3D.cc b/source/digits_hits/scorer/src/G4PSTermination3D.cc index 024e5a2cb3..ac536382b9 100644 --- a/source/digits_hits/scorer/src/G4PSTermination3D.cc +++ b/source/digits_hits/scorer/src/G4PSTermination3D.cc @@ -53,13 +53,9 @@ G4PSTermination3D::G4PSTermination3D(G4String name, G4int ni, G4int nj, , fDepthj(dj) , fDepthk(dk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } -G4PSTermination3D::~G4PSTermination3D() { ; } - G4int G4PSTermination3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSTrackCounter.cc b/source/digits_hits/scorer/src/G4PSTrackCounter.cc index 62166d81f6..0cff38c949 100644 --- a/source/digits_hits/scorer/src/G4PSTrackCounter.cc +++ b/source/digits_hits/scorer/src/G4PSTrackCounter.cc @@ -41,16 +41,11 @@ G4PSTrackCounter::G4PSTrackCounter(G4String name, G4int direction, G4int depth) : G4VPrimitivePlotter(name, depth) - , HCID(-1) , fDirection(direction) - , EvtMap(0) - , weighted(false) { SetUnit(""); } -G4PSTrackCounter::~G4PSTrackCounter() { ; } - G4bool G4PSTrackCounter::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4StepPoint* preStep = aStep->GetPreStepPoint(); @@ -68,14 +63,14 @@ G4bool G4PSTrackCounter::ProcessHits(G4Step* aStep, G4TouchableHistory*) // << " w " << aStep->GetPreStepPoint()->GetWeight() // << G4endl; - G4bool flag = FALSE; + G4bool flag = false; if(IsEnter && fDirection == fCurrent_In) - flag = TRUE; + flag = true; else if(IsExit && fDirection == fCurrent_Out) - flag = TRUE; + flag = true; else if((IsExit || IsEnter) && fDirection == fCurrent_InOut) - flag = TRUE; + flag = true; if(flag) { @@ -85,10 +80,10 @@ G4bool G4PSTrackCounter::ProcessHits(G4Step* aStep, G4TouchableHistory*) val *= aStep->GetPreStepPoint()->GetWeight(); EvtMap->add(index, val); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.cend()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception( "G4PSTrackCounter::ProcessHits", "SCORER0123", JustWarning, @@ -102,7 +97,7 @@ G4bool G4PSTrackCounter::ProcessHits(G4Step* aStep, G4TouchableHistory*) } } - return TRUE; + return true; } void G4PSTrackCounter::Initialize(G4HCofThisEvent* HCE) @@ -116,28 +111,23 @@ void G4PSTrackCounter::Initialize(G4HCofThisEvent* HCE) // G4cout << "----- PS Initialize " << G4endl; } -void G4PSTrackCounter::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSTrackCounter::clear() { EvtMap->clear(); } -void G4PSTrackCounter::DrawAll() { ; } - void G4PSTrackCounter::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, count] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first - << " track count: " << *(itr->second) << " [tracks] " << G4endl; + G4cout << " copy no.: " << copy + << " track count: " << *(count) << " [tracks] " << G4endl; } } void G4PSTrackCounter::SetUnit(const G4String& unit) { - if(unit == "") + if(unit.empty()) { unitName = unit; unitValue = 1.0; diff --git a/source/digits_hits/scorer/src/G4PSTrackCounter3D.cc b/source/digits_hits/scorer/src/G4PSTrackCounter3D.cc index 6362f0b39e..dd0bf55a10 100644 --- a/source/digits_hits/scorer/src/G4PSTrackCounter3D.cc +++ b/source/digits_hits/scorer/src/G4PSTrackCounter3D.cc @@ -44,13 +44,9 @@ G4PSTrackCounter3D::G4PSTrackCounter3D(G4String name, G4int direction, G4int ni, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } -G4PSTrackCounter3D::~G4PSTrackCounter3D() { ; } - G4int G4PSTrackCounter3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSTrackLength.cc b/source/digits_hits/scorer/src/G4PSTrackLength.cc index 83522ce391..114e1e72a0 100644 --- a/source/digits_hits/scorer/src/G4PSTrackLength.cc +++ b/source/digits_hits/scorer/src/G4PSTrackLength.cc @@ -41,22 +41,14 @@ /////////////////////////////////////////////////////////////////////////////// G4PSTrackLength::G4PSTrackLength(G4String name, G4int depth) - : G4VPrimitiveScorer(name, depth) - , HCID(-1) - , EvtMap(0) - , weighted(false) - , multiplyKinE(false) - , divideByVelocity(false) -{ - DefineUnitAndCategory(); - SetUnit("mm"); -} + : G4PSTrackLength(name, "mm", depth) +{} G4PSTrackLength::G4PSTrackLength(G4String name, const G4String& unit, G4int depth) : G4VPrimitiveScorer(name, depth) , HCID(-1) - , EvtMap(0) + , EvtMap(nullptr) , weighted(false) , multiplyKinE(false) , divideByVelocity(false) @@ -65,8 +57,6 @@ G4PSTrackLength::G4PSTrackLength(G4String name, const G4String& unit, SetUnit(unit); } -G4PSTrackLength::~G4PSTrackLength() { ; } - void G4PSTrackLength::MultiplyKineticEnergy(G4bool flg) { multiplyKinE = flg; @@ -85,7 +75,7 @@ G4bool G4PSTrackLength::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4double trklength = aStep->GetStepLength(); if(trklength == 0.) - return FALSE; + return false; if(weighted) trklength *= aStep->GetPreStepPoint()->GetWeight(); if(multiplyKinE) @@ -94,7 +84,7 @@ G4bool G4PSTrackLength::ProcessHits(G4Step* aStep, G4TouchableHistory*) trklength /= aStep->GetPreStepPoint()->GetVelocity(); G4int index = GetIndex(aStep); EvtMap->add(index, trklength); - return TRUE; + return true; } void G4PSTrackLength::Initialize(G4HCofThisEvent* HCE) @@ -107,21 +97,16 @@ void G4PSTrackLength::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSTrackLength::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSTrackLength::clear() { EvtMap->clear(); } -void G4PSTrackLength::DrawAll() { ; } - void G4PSTrackLength::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer " << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, length] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first; + G4cout << " copy no.: " << copy; if(multiplyKinE) { if(divideByVelocity) @@ -136,7 +121,7 @@ void G4PSTrackLength::PrintAll() else G4cout << " Length: "; } - G4cout << *(itr->second) / GetUnitValue() << " [" << GetUnit() << "]"; + G4cout << *(length) / GetUnitValue() << " [" << GetUnit() << "]"; G4cout << G4endl; } } @@ -147,7 +132,7 @@ void G4PSTrackLength::SetUnit(const G4String& unit) { if(divideByVelocity) { - if(unit == "") + if(unit.empty()) { CheckAndSetUnit("MeV_second", "EnergyFlux"); } @@ -158,7 +143,7 @@ void G4PSTrackLength::SetUnit(const G4String& unit) } else { - if(unit == "") + if(unit.empty()) { CheckAndSetUnit("MeV_mm", "EnergyFlow"); } @@ -172,7 +157,7 @@ void G4PSTrackLength::SetUnit(const G4String& unit) { if(divideByVelocity) { - if(unit == "") + if(unit.empty()) { CheckAndSetUnit("second", "Time"); } @@ -183,7 +168,7 @@ void G4PSTrackLength::SetUnit(const G4String& unit) } else { - if(unit == "") + if(unit.empty()) { CheckAndSetUnit("mm", "Length"); } diff --git a/source/digits_hits/scorer/src/G4PSTrackLength3D.cc b/source/digits_hits/scorer/src/G4PSTrackLength3D.cc index e5a83ed1e3..0493a6625a 100644 --- a/source/digits_hits/scorer/src/G4PSTrackLength3D.cc +++ b/source/digits_hits/scorer/src/G4PSTrackLength3D.cc @@ -46,27 +46,17 @@ G4PSTrackLength3D::G4PSTrackLength3D(G4String name, G4int ni, G4int nj, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } G4PSTrackLength3D::G4PSTrackLength3D(G4String name, const G4String& unit, G4int ni, G4int nj, G4int nk, G4int depi, G4int depj, G4int depk) - : G4PSTrackLength(name) - , fDepthi(depi) - , fDepthj(depj) - , fDepthk(depk) + : G4PSTrackLength3D(name, ni, nj, nk, depi, depj, depk) { - fNi = ni; - fNj = nj; - fNk = nk; SetUnit(unit); } -G4PSTrackLength3D::~G4PSTrackLength3D() { ; } - G4int G4PSTrackLength3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4PSVolumeFlux.cc b/source/digits_hits/scorer/src/G4PSVolumeFlux.cc index 2c02623caf..8735819a79 100644 --- a/source/digits_hits/scorer/src/G4PSVolumeFlux.cc +++ b/source/digits_hits/scorer/src/G4PSVolumeFlux.cc @@ -48,14 +48,8 @@ G4PSVolumeFlux::G4PSVolumeFlux(G4String name, G4int direction, G4int depth) : G4VPrimitivePlotter(name, depth) - , HCID(-1) , fDirection(direction) - , EvtMap(nullptr) -{ - ; -} - -G4PSVolumeFlux::~G4PSVolumeFlux() { ; } +{} G4bool G4PSVolumeFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) { @@ -92,7 +86,7 @@ G4bool G4PSVolumeFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) G4VPhysicalVolume* physVol = preStepPoint->GetPhysicalVolume(); G4VPVParameterisation* physParam = physVol->GetParameterisation(); G4VSolid* solid = nullptr; - if(physParam) + if(physParam != nullptr) { // for parameterized volume auto idx = ((G4TouchableHistory*) (preStepPoint->GetTouchable())) ->GetReplicaNumber(indexDepth); @@ -128,10 +122,10 @@ G4bool G4PSVolumeFlux::ProcessHits(G4Step* aStep, G4TouchableHistory*) G4int index = GetIndex(aStep); EvtMap->add(index, flux); - if(hitIDMap.size() > 0 && hitIDMap.find(index) != hitIDMap.end()) + if(!hitIDMap.empty() && hitIDMap.find(index) != hitIDMap.cend()) { auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4Exception( "G4PSVolumeFlux::ProcessHits", "SCORER0123", JustWarning, @@ -155,21 +149,16 @@ void G4PSVolumeFlux::Initialize(G4HCofThisEvent* HCE) HCE->AddHitsCollection(HCID, (G4VHitsCollection*) EvtMap); } -void G4PSVolumeFlux::EndOfEvent(G4HCofThisEvent*) { ; } - void G4PSVolumeFlux::clear() { EvtMap->clear(); } -void G4PSVolumeFlux::DrawAll() { ; } - void G4PSVolumeFlux::PrintAll() { G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; G4cout << " PrimitiveScorer" << GetName() << G4endl; G4cout << " Number of entries " << EvtMap->entries() << G4endl; - std::map::iterator itr = EvtMap->GetMap()->begin(); - for(; itr != EvtMap->GetMap()->end(); itr++) + for(const auto& [copy, flux] : *(EvtMap->GetMap())) { - G4cout << " copy no.: " << itr->first << " flux : " << *(itr->second) + G4cout << " copy no.: " << copy << " flux : " << *(flux) << G4endl; } } diff --git a/source/digits_hits/scorer/src/G4PSVolumeFlux3D.cc b/source/digits_hits/scorer/src/G4PSVolumeFlux3D.cc index eb37780b41..8e17dce085 100644 --- a/source/digits_hits/scorer/src/G4PSVolumeFlux3D.cc +++ b/source/digits_hits/scorer/src/G4PSVolumeFlux3D.cc @@ -44,13 +44,9 @@ G4PSVolumeFlux3D::G4PSVolumeFlux3D(G4String name, G4int direction, G4int ni, , fDepthj(depj) , fDepthk(depk) { - fNi = ni; - fNj = nj; - fNk = nk; + SetNijk(ni, nj, nk); } -G4PSVolumeFlux3D::~G4PSVolumeFlux3D() { ; } - G4int G4PSVolumeFlux3D::GetIndex(G4Step* aStep) { const G4VTouchable* touchable = aStep->GetPreStepPoint()->GetTouchable(); diff --git a/source/digits_hits/scorer/src/G4SDChargedFilter.cc b/source/digits_hits/scorer/src/G4SDChargedFilter.cc index bad74fd75c..6a5585f05a 100644 --- a/source/digits_hits/scorer/src/G4SDChargedFilter.cc +++ b/source/digits_hits/scorer/src/G4SDChargedFilter.cc @@ -44,15 +44,9 @@ G4SDChargedFilter::G4SDChargedFilter(G4String name) : G4VSDFilter(name) -{ - ; -} - -G4SDChargedFilter::~G4SDChargedFilter() { ; } +{} G4bool G4SDChargedFilter::Accept(const G4Step* aStep) const { - if(aStep->GetPreStepPoint()->GetCharge() != 0.) - return TRUE; - return FALSE; + return aStep->GetPreStepPoint()->GetCharge() != 0.; } diff --git a/source/digits_hits/scorer/src/G4SDKineticEnergyFilter.cc b/source/digits_hits/scorer/src/G4SDKineticEnergyFilter.cc index 178545639d..52904f0d38 100644 --- a/source/digits_hits/scorer/src/G4SDKineticEnergyFilter.cc +++ b/source/digits_hits/scorer/src/G4SDKineticEnergyFilter.cc @@ -45,20 +45,16 @@ G4SDKineticEnergyFilter::G4SDKineticEnergyFilter(G4String name, G4double elow, : G4VSDFilter(name) , fLowEnergy(elow) , fHighEnergy(ehigh) -{ - ; -} - -G4SDKineticEnergyFilter::~G4SDKineticEnergyFilter() { ; } +{} G4bool G4SDKineticEnergyFilter::Accept(const G4Step* aStep) const { G4double kinetic = aStep->GetPreStepPoint()->GetKineticEnergy(); if(kinetic < fLowEnergy) - return FALSE; + return false; if(kinetic >= fHighEnergy) - return FALSE; - return TRUE; + return false; + return true; } void G4SDKineticEnergyFilter::SetKineticEnergy(G4double elow, G4double ehigh) diff --git a/source/digits_hits/scorer/src/G4SDNeutralFilter.cc b/source/digits_hits/scorer/src/G4SDNeutralFilter.cc index 7080d18202..c75966fef2 100644 --- a/source/digits_hits/scorer/src/G4SDNeutralFilter.cc +++ b/source/digits_hits/scorer/src/G4SDNeutralFilter.cc @@ -44,15 +44,9 @@ G4SDNeutralFilter::G4SDNeutralFilter(G4String name) : G4VSDFilter(name) -{ - ; -} - -G4SDNeutralFilter::~G4SDNeutralFilter() { ; } +{} G4bool G4SDNeutralFilter::Accept(const G4Step* aStep) const { - if(aStep->GetPreStepPoint()->GetCharge() == 0.) - return TRUE; - return FALSE; + return aStep->GetPreStepPoint()->GetCharge() == 0.; } diff --git a/source/digits_hits/scorer/src/G4SDParticleFilter.cc b/source/digits_hits/scorer/src/G4SDParticleFilter.cc index 390b91010d..b144c2a9ee 100644 --- a/source/digits_hits/scorer/src/G4SDParticleFilter.cc +++ b/source/digits_hits/scorer/src/G4SDParticleFilter.cc @@ -44,20 +44,15 @@ G4SDParticleFilter::G4SDParticleFilter(G4String name) : G4VSDFilter(name) -{ - thePdef.clear(); - theIonZ.clear(); - theIonA.clear(); -} +{} G4SDParticleFilter::G4SDParticleFilter(G4String name, const G4String& particleName) : G4VSDFilter(name) { - thePdef.clear(); G4ParticleDefinition* pd = G4ParticleTable::GetParticleTable()->FindParticle(particleName); - if(!pd) + if(pd == nullptr) { G4String msg = "Particle <"; msg += particleName; @@ -66,30 +61,25 @@ G4SDParticleFilter::G4SDParticleFilter(G4String name, FatalException, msg); } thePdef.push_back(pd); - theIonZ.clear(); - theIonA.clear(); } G4SDParticleFilter::G4SDParticleFilter( G4String name, const std::vector& particleNames) : G4VSDFilter(name) { - thePdef.clear(); - for(size_t i = 0; i < particleNames.size(); i++) + for(const auto & particleName : particleNames) { G4ParticleDefinition* pd = - G4ParticleTable::GetParticleTable()->FindParticle(particleNames[i]); - if(!pd) + G4ParticleTable::GetParticleTable()->FindParticle(particleName); + if(pd == nullptr) { G4String msg = "Particle <"; - msg += particleNames[i]; + msg += particleName; msg += "> not found."; G4Exception("G4SDParticleFilter::G4SDParticleFilter", "DetPS0102", FatalException, msg); } thePdef.push_back(pd); - theIonZ.clear(); - theIonA.clear(); } } @@ -98,30 +88,21 @@ G4SDParticleFilter::G4SDParticleFilter( : G4VSDFilter(name) , thePdef(particleDef) { - for(size_t i = 0; i < particleDef.size(); i++) + for(auto i : particleDef) { - if(!particleDef[i]) + if(i == nullptr) G4Exception("G4SDParticleFilter::G4SDParticleFilter", "DetPS0103", FatalException, "NULL pointer is found in the given particleDef vector."); } - theIonZ.clear(); - theIonA.clear(); -} - -G4SDParticleFilter::~G4SDParticleFilter() -{ - thePdef.clear(); - theIonZ.clear(); - theIonA.clear(); } G4bool G4SDParticleFilter::Accept(const G4Step* aStep) const { - for(size_t i = 0; i < thePdef.size(); i++) + for(auto i : thePdef) { - if(thePdef[i] == aStep->GetTrack()->GetDefinition()) - return TRUE; + if(i == aStep->GetTrack()->GetDefinition()) + return true; } // Ions by Z,A @@ -130,27 +111,27 @@ G4bool G4SDParticleFilter::Accept(const G4Step* aStep) const if(theIonZ[i] == aStep->GetTrack()->GetDefinition()->GetAtomicNumber() && theIonA[i] == aStep->GetTrack()->GetDefinition()->GetAtomicMass()) { - return TRUE; + return true; } } - return FALSE; + return false; } void G4SDParticleFilter::add(const G4String& particleName) { G4ParticleDefinition* pd = G4ParticleTable::GetParticleTable()->FindParticle(particleName); - if(!pd) + if(pd == nullptr) { G4String msg = "Particle <"; msg += particleName; msg += "> not found."; G4Exception("G4SDParticleFilter::add()", "DetPS0104", FatalException, msg); } - for(size_t i = 0; i < thePdef.size(); i++) + for(auto & i : thePdef) { - if(thePdef[i] == pd) + if(i == pd) return; } thePdef.push_back(pd); @@ -174,9 +155,9 @@ void G4SDParticleFilter::addIon(G4int Z, G4int A) void G4SDParticleFilter::show() { G4cout << "----G4SDParticleFileter particle list------" << G4endl; - for(size_t i = 0; i < thePdef.size(); i++) + for(auto & i : thePdef) { - G4cout << thePdef[i]->GetParticleName() << G4endl; + G4cout << i->GetParticleName() << G4endl; } for(size_t i = 0; i < theIonZ.size(); i++) { diff --git a/source/digits_hits/scorer/src/G4SDParticleWithEnergyFilter.cc b/source/digits_hits/scorer/src/G4SDParticleWithEnergyFilter.cc index 7b99ab9a9f..abb92c4e2e 100644 --- a/source/digits_hits/scorer/src/G4SDParticleWithEnergyFilter.cc +++ b/source/digits_hits/scorer/src/G4SDParticleWithEnergyFilter.cc @@ -60,10 +60,10 @@ G4SDParticleWithEnergyFilter::~G4SDParticleWithEnergyFilter() G4bool G4SDParticleWithEnergyFilter::Accept(const G4Step* aStep) const { if(!fParticleFilter->Accept(aStep)) - return FALSE; + return false; if(!fKineticFilter->Accept(aStep)) - return FALSE; - return TRUE; + return false; + return true; } void G4SDParticleWithEnergyFilter::add(const G4String& particleName) diff --git a/source/digits_hits/utils/History b/source/digits_hits/utils/History index 0c75068787..c8bd309eec 100644 --- a/source/digits_hits/utils/History +++ b/source/digits_hits/utils/History @@ -1,9 +1,29 @@ # Category detutil History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-29 I. Hrivnacova (detutil-V11-00-06) +- Added support for ntuple merging in G4TScoreNtupleWriter; + it can be activated with + G4TScoreNtupleWriter::SetNtupleMerging() + +## 2022-11-17 Gabriele Cosmo (detutil-V11-00-05) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-05 Ben Morgan (detutil-V11-00-04) +- Remove large commented-out blocks of dead code + +## 2022-09-27 Ben Morgan (detutil-V11-00-03) +- Remove inclusion of unused interfaces from G4detscorer +- Apply core+recommended clang-tidy fixes, plus some code cleanup + +## 2022-09-01 Gabriele Cosmo (detutil-V11-00-02) +- G4VScoringMesh: fixed reported Coverity defects for use of auto&. + Some minor code cleanup. ## 2022-05-17 Makoto Asai (detutil-V11-00-01) - G4VScoringMesh.hh : Fixing virtual keyword. diff --git a/source/digits_hits/utils/include/G4DefaultLinearColorMap.hh b/source/digits_hits/utils/include/G4DefaultLinearColorMap.hh index 22f8913341..c031739b1a 100644 --- a/source/digits_hits/utils/include/G4DefaultLinearColorMap.hh +++ b/source/digits_hits/utils/include/G4DefaultLinearColorMap.hh @@ -35,11 +35,11 @@ class G4DefaultLinearColorMap : public G4VScoreColorMap { public: - G4DefaultLinearColorMap(G4String mName); - virtual ~G4DefaultLinearColorMap(); + using G4VScoreColorMap::G4VScoreColorMap; + ~G4DefaultLinearColorMap() override = default; public: - virtual void GetMapColor(G4double val, G4double color[4]); + void GetMapColor(G4double val, G4double color[4]) override; }; #endif diff --git a/source/digits_hits/utils/include/G4ScoreLogColorMap.hh b/source/digits_hits/utils/include/G4ScoreLogColorMap.hh index a07e8cb01b..c7adf29e2f 100644 --- a/source/digits_hits/utils/include/G4ScoreLogColorMap.hh +++ b/source/digits_hits/utils/include/G4ScoreLogColorMap.hh @@ -35,15 +35,15 @@ class G4ScoreLogColorMap : public G4VScoreColorMap { public: - G4ScoreLogColorMap(G4String mName); - virtual ~G4ScoreLogColorMap(); + using G4VScoreColorMap::G4VScoreColorMap; + ~G4ScoreLogColorMap() override = default; public: - virtual void GetMapColor(G4double val, G4double color[4]); + void GetMapColor(G4double val, G4double color[4]) override; // draw a color chart - virtual void DrawColorChartBar(G4int nPoint); - virtual void DrawColorChartText(G4int nPoint); + void DrawColorChartBar(G4int nPoint) override; + void DrawColorChartText(G4int nPoint) override; }; #endif diff --git a/source/digits_hits/utils/include/G4ScoreQuantityMessenger.hh b/source/digits_hits/utils/include/G4ScoreQuantityMessenger.hh index 4429d8a2a0..a21e8f3dba 100644 --- a/source/digits_hits/utils/include/G4ScoreQuantityMessenger.hh +++ b/source/digits_hits/utils/include/G4ScoreQuantityMessenger.hh @@ -46,7 +46,7 @@ class G4UIcmdWithAString; class G4UIcmdWithoutParameter; class G4UIcommand; -typedef std::vector G4TokenVec; +using G4TokenVec = std::vector; // class description: // @@ -59,11 +59,11 @@ class G4ScoreQuantityMessenger : public G4UImessenger public: G4ScoreQuantityMessenger(G4ScoringManager* SManager); - ~G4ScoreQuantityMessenger(); + ~G4ScoreQuantityMessenger() override; - void SetNewValue(G4UIcommand* command, G4String newValues); + void SetNewValue(G4UIcommand* command, G4String newValues) override; - G4String GetCurrentValue(G4UIcommand*); + G4String GetCurrentValue(G4UIcommand*) override; protected: void FillTokenVec(G4String newValues, G4TokenVec& token); @@ -101,16 +101,11 @@ class G4ScoreQuantityMessenger : public G4UImessenger G4UIcommand* qFlatSurfCurrCmd; G4UIcommand* qFlatSurfFluxCmd; G4UIcommand* qVolFluxCmd; - // G4UIcommand* qSphereSurfCurrCmd; - // G4UIcommand* qSphereSurfFluxCmd; - // G4UIcommand* qCylSurfCurrCmd; - // G4UIcommand* qCylSurfFluxCmd; G4UIcommand* qNofCollisionCmd; G4UIcommand* qPopulationCmd; G4UIcommand* qTrackCountCmd; G4UIcommand* qTerminationCmd; G4UIcommand* qMinKinEAtGeneCmd; - // G4UIcommand* qStepCheckerCmd; // diff --git a/source/digits_hits/utils/include/G4ScoringBox.hh b/source/digits_hits/utils/include/G4ScoringBox.hh index bf7f39de3b..add46616d6 100644 --- a/source/digits_hits/utils/include/G4ScoringBox.hh +++ b/source/digits_hits/utils/include/G4ScoringBox.hh @@ -43,21 +43,21 @@ class G4ScoringBox : public G4VScoringMesh { public: G4ScoringBox(G4String wName); - ~G4ScoringBox(); - - protected: - // construct this mesh - virtual void SetupGeometry(G4VPhysicalVolume* fWorldPhys); + ~G4ScoringBox() override = default; public: - void List() const; - void Draw(RunScore* map, G4VScoreColorMap* colorMap, G4int axflg = 111); + void List() const override; + void Draw(RunScore* map, G4VScoreColorMap* colorMap, G4int axflg = 111) override; void DrawColumn(RunScore* map, G4VScoreColorMap* colorMap, G4int idxProj, - G4int idxColumn); + G4int idxColumn) override; // set a direction to segment this mesh void SetSegmentDirection(G4int dir) { fSegmentDirection = dir; } + protected: + // construct this mesh + void SetupGeometry(G4VPhysicalVolume* fWorldPhys) override; + private: // get replicated position from 3D index (x,y,z) G4ThreeVector GetReplicaPosition(G4int x, G4int y, G4int z); diff --git a/source/digits_hits/utils/include/G4ScoringCylinder.hh b/source/digits_hits/utils/include/G4ScoringCylinder.hh index 83a7c16a53..955d2964ca 100644 --- a/source/digits_hits/utils/include/G4ScoringCylinder.hh +++ b/source/digits_hits/utils/include/G4ScoringCylinder.hh @@ -41,17 +41,15 @@ class G4ScoringCylinder : public G4VScoringMesh { public: G4ScoringCylinder(G4String wName); - ~G4ScoringCylinder(); + ~G4ScoringCylinder() override = default; - protected: - virtual void SetupGeometry(G4VPhysicalVolume* fWorldPhys); public: - virtual void List() const; - virtual void Draw(RunScore* map, G4VScoreColorMap* colorMap, - G4int axflg = 111); - virtual void DrawColumn(RunScore* map, G4VScoreColorMap* colorMap, - G4int idxProj, G4int idxColumn); + void List() const override; + void Draw(RunScore* map, G4VScoreColorMap* colorMap, + G4int axflg = 111) override; + void DrawColumn(RunScore* map, G4VScoreColorMap* colorMap, + G4int idxProj, G4int idxColumn) override; void SetRMin(G4double rMin) { fSize[0] = rMin; } void SetRMax(G4double rMax) { fSize[1] = rMax; } @@ -62,10 +60,11 @@ class G4ScoringCylinder : public G4VScoringMesh // get 3D index (z,phi,r) from sequential index void GetRZPhi(G4int index, G4int q[3]) const; + protected: + void SetupGeometry(G4VPhysicalVolume* fWorldPhys) override; + + private: // Xin Dong 09302011 for Scorers - public: - // private: - // enum IDX {IR, IZ, IPHI}; enum IDX { IZ, @@ -73,7 +72,6 @@ class G4ScoringCylinder : public G4VScoringMesh IR }; - private: void DumpVolumes(); void DumpSolids(G4int); void DumpLogVols(G4int); diff --git a/source/digits_hits/utils/include/G4ScoringManager.hh b/source/digits_hits/utils/include/G4ScoringManager.hh index 4eaf398fa6..091520487e 100644 --- a/source/digits_hits/utils/include/G4ScoringManager.hh +++ b/source/digits_hits/utils/include/G4ScoringManager.hh @@ -48,41 +48,34 @@ class G4VScoreColorMap; // the singleton object. // -typedef std::vector MeshVec; -typedef std::vector::iterator MeshVecItr; -typedef std::vector::const_iterator MeshVecConstItr; -typedef std::map ColorMapDict; -typedef std::map::iterator ColorMapDictItr; -typedef std::map::const_iterator - ColorMapDictConstItr; -typedef std::map MeshMap; -typedef std::map::iterator MeshMapItr; -typedef std::map::const_iterator MeshMapConstItr; +using MeshVec = std::vector; +using MeshVecItr = MeshVec::iterator; +using MeshVecConstItr = MeshVec::const_iterator; +using ColorMapDict = std::map; +using ColorMapDictItr = ColorMapDict::iterator; +using ColorMapDictConstItr = ColorMapDict::const_iterator; +using MeshMap = std::map; +using MeshMapItr = MeshMap::iterator; +using MeshMapConstItr = MeshMap::const_iterator; class G4ScoringManager { public: // with description static G4ScoringManager* GetScoringManager(); // Returns the pointer to the singleton object. - public: + static G4ScoringManager* GetScoringManagerIfExist(); + ~G4ScoringManager(); + public: static void SetReplicaLevel(G4int); static G4int GetReplicaLevel(); - protected: - G4ScoringManager(); - - public: - ~G4ScoringManager(); - - public: // with description void RegisterScoreColorMap(G4VScoreColorMap* colorMap); // Register a color map. Once registered, it is available by /score/draw and // /score/drawColumn commands. - public: void Accumulate(G4VHitsCollection* map); void Merge(const G4ScoringManager* scMan); G4VScoringMesh* FindMesh(G4VHitsCollection* map); @@ -102,34 +95,17 @@ class G4ScoringManager G4VScoreColorMap* GetScoreColorMap(const G4String& mapName); void ListScoreColorMaps(); - private: - static G4ThreadLocal G4ScoringManager* fSManager; - static G4ThreadLocal G4int replicaLevel; - G4int verboseLevel; - G4ScoringMessenger* fMessenger; - G4ScoreQuantityMessenger* fQuantityMessenger; - - MeshVec fMeshVec; - G4VScoringMesh* fCurrentMesh; - - G4VScoreWriter* writer; - G4VScoreColorMap* fDefaultLinearColorMap; - ColorMapDict* fColorMapDict; - - MeshMap fMeshMap; - - public: inline void SetCurrentMesh(G4VScoringMesh* scm) { fCurrentMesh = scm; } inline G4VScoringMesh* GetCurrentMesh() const { return fCurrentMesh; } - inline void CloseCurrentMesh() { fCurrentMesh = 0; } + inline void CloseCurrentMesh() { fCurrentMesh = nullptr; } inline void SetVerboseLevel(G4int vl) { verboseLevel = vl; - for(MeshVecItr itr = fMeshVec.begin(); itr != fMeshVec.end(); itr++) + for(auto& itr : fMeshVec) { - (*itr)->SetVerboseLevel(vl); + itr->SetVerboseLevel(vl); } - if(writer) + if(writer != nullptr) writer->SetVerboseLevel(vl); } inline G4int GetVerboseLevel() const { return verboseLevel; } @@ -149,12 +125,9 @@ class G4ScoringManager public: // with description inline void SetScoreWriter(G4VScoreWriter* sw) { - if(writer) - { - delete writer; - } + delete writer; writer = sw; - if(writer) + if(writer != nullptr) writer->SetVerboseLevel(verboseLevel); } // Replace score writers. @@ -162,25 +135,42 @@ class G4ScoringManager public: inline void SetFactor(G4double val = 1.0) { - if(writer) + if(writer != nullptr) writer->SetFactor(val); } inline G4double GetFactor() const { - if(writer) + if(writer != nullptr) { return writer->GetFactor(); } - else - { - return -1.0; - } + + return -1.0; } + protected: + G4ScoringManager(); + private: // Disable copy constructor and assignement operator G4ScoringManager(const G4ScoringManager&); G4ScoringManager& operator=(const G4ScoringManager&); + + private: + static G4ThreadLocal G4ScoringManager* fSManager; + static G4ThreadLocal G4int replicaLevel; + G4int verboseLevel; + G4ScoringMessenger* fMessenger; + G4ScoreQuantityMessenger* fQuantityMessenger; + + MeshVec fMeshVec; + G4VScoringMesh* fCurrentMesh; + + G4VScoreWriter* writer; + G4VScoreColorMap* fDefaultLinearColorMap; + ColorMapDict* fColorMapDict; + + MeshMap fMeshMap; }; #endif diff --git a/source/digits_hits/utils/include/G4ScoringMessenger.hh b/source/digits_hits/utils/include/G4ScoringMessenger.hh index 6b8e09a243..1b3589539b 100644 --- a/source/digits_hits/utils/include/G4ScoringMessenger.hh +++ b/source/digits_hits/utils/include/G4ScoringMessenger.hh @@ -50,7 +50,7 @@ class G4UIcmdWithADoubleAndUnit; class G4UIcmdWith3VectorAndUnit; class G4UIcommand; -typedef std::vector G4TokenVec; +using G4TokenVec = std::vector; // class description: // @@ -63,11 +63,11 @@ class G4ScoringMessenger : public G4UImessenger public: G4ScoringMessenger(G4ScoringManager* SManager); - ~G4ScoringMessenger(); + ~G4ScoringMessenger() override; - void SetNewValue(G4UIcommand* command, G4String newValues); + void SetNewValue(G4UIcommand* command, G4String newValues) override; - G4String GetCurrentValue(G4UIcommand* command); + G4String GetCurrentValue(G4UIcommand* command) override; protected: void FillTokenVec(G4String newValues, G4TokenVec& token); @@ -84,7 +84,6 @@ class G4ScoringMessenger : public G4UImessenger G4UIdirectory* meshCreateDir; G4UIcmdWithAString* meshBoxCreateCmd; G4UIcmdWithAString* meshCylinderCreateCmd; - // G4UIcmdWithAString* meshSphereCreateCmd; G4UIcommand* meshRWLogVolCreateCmd; G4UIcommand* probeCreateCmd; // @@ -93,14 +92,12 @@ class G4ScoringMessenger : public G4UImessenger G4UIcmdWithAString* meshOpnCmd; // G4UIcmdWithoutParameter* meshClsCmd; - // G4UIcmdWithABool* meshActCmd; // // Size commands G4UIcmdWith3VectorAndUnit* mBoxSizeCmd; G4UIcommand* mCylinderSizeCmd; G4UIcmdWithADoubleAndUnit* mCylinderRMinCmd; G4UIcommand* mCylinderAngleCmd; - // G4UIcmdWith3VectorAndUnit* mSphereSizeCmd; // // Division command G4UIcommand* mBinCmd; @@ -110,7 +107,6 @@ class G4ScoringMessenger : public G4UImessenger G4UIcmdWithoutParameter* mTResetCmd; G4UIcmdWith3VectorAndUnit* mTXyzCmd; G4UIdirectory* mRotDir; - // G4UIcmdWithoutParameter* mRResetCmd; G4UIcmdWithADoubleAndUnit* mRotXCmd; G4UIcmdWithADoubleAndUnit* mRotYCmd; G4UIcmdWithADoubleAndUnit* mRotZCmd; @@ -127,7 +123,6 @@ class G4ScoringMessenger : public G4UImessenger G4UIcmdWithoutParameter* listColorMapCmd; G4UIcmdWithAString* floatMinMaxCmd; G4UIcommand* colorMapMinMaxCmd; - // G4UIcommand * chartCmd; // // Dump scoring result to file G4UIcommand* dumpQtyToFileCmd; diff --git a/source/digits_hits/utils/include/G4ScoringProbe.hh b/source/digits_hits/utils/include/G4ScoringProbe.hh index 2dc10da2d7..494426b0d9 100644 --- a/source/digits_hits/utils/include/G4ScoringProbe.hh +++ b/source/digits_hits/utils/include/G4ScoringProbe.hh @@ -30,20 +30,44 @@ #include "globals.hh" #include "G4VScoringMesh.hh" + +#include + class G4VPhysicalVolume; class G4Material; -#include class G4ScoringProbe : public G4VScoringMesh { public: G4ScoringProbe(G4String lvName, G4double half_size, G4bool checkOverlap = false); - ~G4ScoringProbe(); + ~G4ScoringProbe() override = default; + + public: + void LocateProbe(G4ThreeVector pos) + { + posVec.push_back(pos); + G4int nbin[] = { static_cast(posVec.size()), 1, 1 }; + SetNumberOfSegments(nbin); + } + G4int GetNumberOfProbes() const { return (G4int)posVec.size(); } + void SetProbeSize(G4double val) { probeSize = val; } + G4double GetProbeSize() const { return probeSize; } + G4bool SetMaterial(G4String val); + + void List() const override; + + //++++++++++ visualization method not yet implemented + void Draw(RunScore* /*map*/, G4VScoreColorMap* /*colorMap*/, + G4int /*axflg=111*/) override + {} + void DrawColumn(RunScore* /*map*/, G4VScoreColorMap* /*colorMap*/, + G4int /*idxProj*/, G4int /*idxColumn*/) override + {} protected: // construct scoring volume - virtual void SetupGeometry(G4VPhysicalVolume*); + void SetupGeometry(G4VPhysicalVolume*) override; protected: G4String logVolName; @@ -53,34 +77,6 @@ class G4ScoringProbe : public G4VScoringMesh G4String layeredMaterialName; G4Material* layeredMaterial; G4String regName; - - public: - void LocateProbe(G4ThreeVector pos) - { - posVec.push_back(pos); - G4int nbin[] = { static_cast(posVec.size()), 1, 1 }; - SetNumberOfSegments(nbin); - } - G4int GetNumberOfProbes() const { return posVec.size(); } - void SetProbeSize(G4double val) { probeSize = val; } - G4double GetProbeSize() const { return probeSize; } - G4bool SetMaterial(G4String val); - - public: - virtual void List() const; - - public: - //++++++++++ visualization method not yet implemented - virtual void Draw(RunScore* /*map*/, G4VScoreColorMap* /*colorMap*/, - G4int /*axflg=111*/) - { - ; - } - virtual void DrawColumn(RunScore* /*map*/, G4VScoreColorMap* /*colorMap*/, - G4int /*idxProj*/, G4int /*idxColumn*/) - { - ; - } }; #endif diff --git a/source/digits_hits/utils/include/G4ScoringRealWorld.hh b/source/digits_hits/utils/include/G4ScoringRealWorld.hh index 28dc3cd912..1265e16de9 100644 --- a/source/digits_hits/utils/include/G4ScoringRealWorld.hh +++ b/source/digits_hits/utils/include/G4ScoringRealWorld.hh @@ -35,30 +35,26 @@ class G4ScoringRealWorld : public G4VScoringMesh { public: G4ScoringRealWorld(G4String lvName); - ~G4ScoringRealWorld(); + ~G4ScoringRealWorld() override = default; + + public: + void List() const override; + + //++++++++++ visualization method not yet implemented + void Draw(RunScore* /*map*/, G4VScoreColorMap* /*colorMap*/, + G4int /*axflg=111*/) override + {} + + void DrawColumn(RunScore* /*map*/, G4VScoreColorMap* /*colorMap*/, + G4int /*idxProj*/, G4int /*idxColumn*/) override + {} protected: // construct this mesh - virtual void SetupGeometry(G4VPhysicalVolume*); + void SetupGeometry(G4VPhysicalVolume*) override; protected: G4String logVolName; - - public: - virtual void List() const; - - public: - //++++++++++ visualization method not yet implemented - virtual void Draw(RunScore* /*map*/, G4VScoreColorMap* /*colorMap*/, - G4int /*axflg=111*/) - { - ; - } - virtual void DrawColumn(RunScore* /*map*/, G4VScoreColorMap* /*colorMap*/, - G4int /*idxProj*/, G4int /*idxColumn*/) - { - ; - } }; #endif diff --git a/source/digits_hits/utils/include/G4TScoreNtupleWriter.hh b/source/digits_hits/utils/include/G4TScoreNtupleWriter.hh index a2ae8909d5..2068557759 100644 --- a/source/digits_hits/utils/include/G4TScoreNtupleWriter.hh +++ b/source/digits_hits/utils/include/G4TScoreNtupleWriter.hh @@ -71,6 +71,7 @@ class G4TScoreNtupleWriter : public G4VScoreNtupleWriter void SetDefaultFileType(const G4String& value); void SetFileName(const G4String& fileName); void SetVerboseLevel(G4int value); + void SetNtupleMerging(G4bool value); // get methods G4String GetFileName() const { return fFileName; } @@ -91,6 +92,7 @@ class G4TScoreNtupleWriter : public G4VScoreNtupleWriter G4String fDefaultFileType; G4String fFileName; G4int fVerboseLevel; + G4bool fMergeNtuples; G4bool fHasAnalysisFile; G4bool fIsBooked; G4bool fIsInitialized; diff --git a/source/digits_hits/utils/include/G4TScoreNtupleWriter.icc b/source/digits_hits/utils/include/G4TScoreNtupleWriter.icc index 06e5a5a621..d70005ed15 100644 --- a/source/digits_hits/utils/include/G4TScoreNtupleWriter.icc +++ b/source/digits_hits/utils/include/G4TScoreNtupleWriter.icc @@ -46,6 +46,7 @@ G4TScoreNtupleWriter::G4TScoreNtupleWriter() , fDefaultFileType("root") , fFileName("scoring") , fVerboseLevel(1) + , fMergeNtuples(false) , fHasAnalysisFile(false) , fIsBooked(false) , fIsInitialized(false) @@ -72,14 +73,16 @@ G4TScoreNtupleWriter::~G4TScoreNtupleWriter() template void G4TScoreNtupleWriter::CreateAnalysisManager() { - if(fAnalysisManager) + if(fAnalysisManager) { return; + } // create/get analysis manager fAnalysisManager = T::Instance(); fAnalysisManager->SetDefaultFileType(fDefaultFileType); fAnalysisManager->SetVerboseLevel(fVerboseLevel); + fAnalysisManager->SetNtupleMerging(fMergeNtuples); } // @@ -93,6 +96,8 @@ G4VScoreNtupleWriter* G4TScoreNtupleWriter::CreateInstance() const auto instance = new G4TScoreNtupleWriter(); instance->SetFileName(fFileName); instance->SetVerboseLevel(fVerboseLevel); + instance->SetNtupleMerging(fMergeNtuples); + instance->fHasAnalysisFile = fHasAnalysisFile; return instance; } @@ -231,7 +236,9 @@ void G4TScoreNtupleWriter::OpenFile() } #endif - fHasAnalysisFile = fAnalysisManager->IsOpenFile(); + fHasAnalysisFile = fHasAnalysisFile || fAnalysisManager->IsOpenFile(); + // Do not overwrite file ownership + // if merging is activated and file is not open on workers } //_____________________________________________________________________________ @@ -342,3 +349,14 @@ void G4TScoreNtupleWriter::SetVerboseLevel(G4int value) fAnalysisManager->SetVerboseLevel(value); } } + +//_____________________________________________________________________________ +template +void G4TScoreNtupleWriter::SetNtupleMerging(G4bool value) +{ + fMergeNtuples = value; + if(fAnalysisManager) + { + fAnalysisManager->SetNtupleMerging(value); + } +} diff --git a/source/digits_hits/utils/include/G4VScoreColorMap.hh b/source/digits_hits/utils/include/G4VScoreColorMap.hh index 710cda0069..44a9f8e1a8 100644 --- a/source/digits_hits/utils/include/G4VScoreColorMap.hh +++ b/source/digits_hits/utils/include/G4VScoreColorMap.hh @@ -37,7 +37,7 @@ class G4VScoreColorMap { public: G4VScoreColorMap(G4String mName); - virtual ~G4VScoreColorMap(); + virtual ~G4VScoreColorMap() = default; public: virtual void GetMapColor(G4double val, G4double color[4]) = 0; @@ -77,12 +77,12 @@ class G4VScoreColorMap protected: G4String fName; - G4bool ifFloat; - G4double fMinVal; - G4double fMaxVal; - G4VVisManager* fVisManager; - G4String fPSUnit; - G4String fPSName; + G4bool ifFloat = true; + G4double fMinVal = 0.0; + G4double fMaxVal = DBL_MAX; + G4VVisManager* fVisManager = nullptr; + G4String fPSUnit = ""; + G4String fPSName = ""; }; #endif diff --git a/source/digits_hits/utils/include/G4VScoreWriter.hh b/source/digits_hits/utils/include/G4VScoreWriter.hh index ab4807e755..7534e3ef7c 100644 --- a/source/digits_hits/utils/include/G4VScoreWriter.hh +++ b/source/digits_hits/utils/include/G4VScoreWriter.hh @@ -40,8 +40,8 @@ class G4VScoringMesh; class G4VScoreWriter { public: - G4VScoreWriter(); - virtual ~G4VScoreWriter(); + G4VScoreWriter() = default; + virtual ~G4VScoreWriter() = default; public: // store a quantity into a file @@ -64,10 +64,10 @@ class G4VScoreWriter G4int GetIndex(G4int x, G4int y, G4int z) const; protected: - G4int fNMeshSegments[3]; // number of segments of the mesh - G4VScoringMesh* fScoringMesh; - G4int verboseLevel; - G4double fact; + G4int fNMeshSegments[3] = {0, 0, 0}; // number of segments of the mesh + G4VScoringMesh* fScoringMesh = nullptr; + G4int verboseLevel = 0; + G4double fact = 1.0; }; #endif diff --git a/source/digits_hits/utils/include/G4VScoringMesh.hh b/source/digits_hits/utils/include/G4VScoringMesh.hh index 0ad9eceec3..935f4d95e7 100644 --- a/source/digits_hits/utils/include/G4VScoringMesh.hh +++ b/source/digits_hits/utils/include/G4VScoringMesh.hh @@ -69,21 +69,15 @@ class G4VScoringMesh public: G4VScoringMesh(const G4String& wName); - virtual ~G4VScoringMesh(); + virtual ~G4VScoringMesh() = default; public: // with description virtual void Construct(G4VPhysicalVolume* fWorldPhys); virtual void WorkerConstruct(G4VPhysicalVolume* fWorldPhys); - protected: - // a pure virtual function to construct this mesh geometry - virtual void SetupGeometry(G4VPhysicalVolume* fWorldPhys) = 0; - - public: // with description // list infomration of this mesh virtual void List() const; - public: // with description // get the world name // If this ScoringMesh is for parallel world, it returns the name of the // parallel world If this ScoringMesh is for real world logical volume, it @@ -140,10 +134,9 @@ class G4VScoringMesh // get a rotation matrix G4RotationMatrix GetRotationMatrix() const { - if(fRotationMatrix) + if(fRotationMatrix != nullptr) return *fRotationMatrix; - else - return G4RotationMatrix::IDENTITY; + return G4RotationMatrix::IDENTITY; } // set number of segments of this mesh @@ -163,10 +156,7 @@ class G4VScoringMesh // get whether current primitive scorer is set or not G4bool IsCurrentPrimitiveScorerNull() { - if(fCurrentPS == nullptr) - return true; - else - return false; + return fCurrentPS == nullptr; } // get unit of primitive scorer by the name G4String GetPSUnit(const G4String& psname); @@ -195,6 +185,40 @@ class G4VScoringMesh // get registered primitive socrer by the name G4VPrimitiveScorer* GetPrimitiveScorer(const G4String& name); + inline void SetMeshElementLogical(G4LogicalVolume* val) + { + fMeshElementLogical = val; + } + inline G4LogicalVolume* GetMeshElementLogical() const + { + return fMeshElementLogical; + } + + inline void SetParallelWorldProcess(G4ParallelWorldProcess* proc) + { + fParallelWorldProcess = proc; + } + inline G4ParallelWorldProcess* GetParallelWorldProcess() const + { + return fParallelWorldProcess; + } + inline void GeometryHasBeenDestroyed() + { + fGeometryHasBeenDestroyed = true; + fMeshElementLogical = nullptr; + } + + // Geometry hirarchy level (bottom = 0) to be used as the copy number + // This is used only for real-world scorer + inline void SetCopyNumberLevel(G4int val) { copyNumberLevel = val; } + inline G4int GetCopyNumberLevel() const { return copyNumberLevel; } + + G4bool LayeredMassFlg() { return layeredMassFlg; } + + protected: + // a pure virtual function to construct this mesh geometry + virtual void SetupGeometry(G4VPhysicalVolume* fWorldPhys) = 0; + protected: G4String fWorldName; G4VPrimitiveScorer* fCurrentPS; @@ -224,52 +248,15 @@ class G4VScoringMesh G4LogicalVolume* fMeshElementLogical; - public: - inline void SetMeshElementLogical(G4LogicalVolume* val) - { - fMeshElementLogical = val; - } - inline G4LogicalVolume* GetMeshElementLogical() const - { - return fMeshElementLogical; - } - - protected: G4ParallelWorldProcess* fParallelWorldProcess; G4bool fGeometryHasBeenDestroyed; - - public: - inline void SetParallelWorldProcess(G4ParallelWorldProcess* proc) - { - fParallelWorldProcess = proc; - } - inline G4ParallelWorldProcess* GetParallelWorldProcess() const - { - return fParallelWorldProcess; - } - inline void GeometryHasBeenDestroyed() - { - fGeometryHasBeenDestroyed = true; - fMeshElementLogical = nullptr; - } - - protected: + G4int copyNumberLevel; - public: - // Geometry hirarchy level (bottom = 0) to be used as the copy number - // This is used only for real-world scorer - inline void SetCopyNumberLevel(G4int val) { copyNumberLevel = val; } - inline G4int GetCopyNumberLevel() const { return copyNumberLevel; } - - protected: // This flag may be set to true for Probe scoring mesh. // There is no public set method for this boolean flag, but it should be set // to true through SetMaterial() method of Probe scoring mesh. G4bool layeredMassFlg; - - public: - G4bool LayeredMassFlg() { return layeredMassFlg; } }; #endif diff --git a/source/digits_hits/utils/sources.cmake b/source/digits_hits/utils/sources.cmake index bc705bff08..3c9f807f5a 100644 --- a/source/digits_hits/utils/sources.cmake +++ b/source/digits_hits/utils/sources.cmake @@ -25,7 +25,6 @@ geant4_add_module(G4detutils G4ScoreLogColorMap.cc G4VScoreNtupleWriter.cc G4ScoreQuantityMessenger.cc - G4ScoreQuantityMessengerQCmd.cc G4ScoringBox.cc G4ScoringCylinder.cc G4ScoringManager.cc diff --git a/source/digits_hits/utils/src/G4DefaultLinearColorMap.cc b/source/digits_hits/utils/src/G4DefaultLinearColorMap.cc index 9d73879ae1..6bae007eb8 100644 --- a/source/digits_hits/utils/src/G4DefaultLinearColorMap.cc +++ b/source/digits_hits/utils/src/G4DefaultLinearColorMap.cc @@ -28,14 +28,6 @@ #include "G4DefaultLinearColorMap.hh" -G4DefaultLinearColorMap::G4DefaultLinearColorMap(G4String mName) - : G4VScoreColorMap(mName) -{ - ; -} - -G4DefaultLinearColorMap::~G4DefaultLinearColorMap() { ; } - void G4DefaultLinearColorMap::GetMapColor(G4double val, G4double color[4]) { G4double value; diff --git a/source/digits_hits/utils/src/G4ScoreLogColorMap.cc b/source/digits_hits/utils/src/G4ScoreLogColorMap.cc index 0dcfdec2f8..3d935676af 100644 --- a/source/digits_hits/utils/src/G4ScoreLogColorMap.cc +++ b/source/digits_hits/utils/src/G4ScoreLogColorMap.cc @@ -38,16 +38,8 @@ #include "G4Circle.hh" #include "G4Polyline.hh" #include "G4Colour.hh" - -G4ScoreLogColorMap::G4ScoreLogColorMap(G4String mName) - : G4VScoreColorMap(mName) -{ - ; -} - -G4ScoreLogColorMap::~G4ScoreLogColorMap() { ; } - #include "G4UIcommand.hh" + void G4ScoreLogColorMap::GetMapColor(G4double val, G4double color[4]) { G4bool lmin = true, lmax = true, lval = true; @@ -119,7 +111,7 @@ void G4ScoreLogColorMap::GetMapColor(G4double val, G4double color[4]) } // color map - const int NCOLOR = 6; + const G4int NCOLOR = 6; struct ColorMap { G4double val; @@ -131,7 +123,7 @@ void G4ScoreLogColorMap::GetMapColor(G4double val, G4double color[4]) // search G4int during[2] = { 0, 0 }; - for(int i = 1; i < NCOLOR; i++) + for(auto i = 1; i < NCOLOR; ++i) { if(colormap[i].val >= value) { @@ -144,7 +136,7 @@ void G4ScoreLogColorMap::GetMapColor(G4double val, G4double color[4]) // interpolate G4double a = std::fabs(value - colormap[during[0]].val); G4double b = std::fabs(value - colormap[during[1]].val); - for(int i = 0; i < 4; i++) + for(auto i = 0; i < 4; ++i) { color[i] = (b * colormap[during[0]].rgb[i] + a * colormap[during[1]].rgb[i]) / @@ -156,7 +148,6 @@ void G4ScoreLogColorMap::GetMapColor(G4double val, G4double color[4]) void G4ScoreLogColorMap::DrawColorChartBar(G4int _nPoint) { - // G4cout << "++++++ " << fMinVal << " - " << fMaxVal << G4endl; G4bool lmin = true, lmax = true; if(fMinVal <= 0.) lmin = false; @@ -171,7 +162,7 @@ void G4ScoreLogColorMap::DrawColorChartBar(G4int _nPoint) G4double smin = -0.89, smax = smin + 0.05 * (_nPoint) *0.83, step = 0.001; G4double c[4]; - for(G4double y = smin; y < smax; y += step) + for(auto y = smin; y < smax; y += step) { G4double ra = (y - smin) / (smax - smin), rb = 1. - ra; G4Polyline line; @@ -200,18 +191,14 @@ void G4ScoreLogColorMap::DrawColorChartText(G4int _nPoint) G4double min = 0.; if(lmin) min = std::log10(fMinVal); - // if(min > 0.) min = std::floor(min); - // else min = std::ceil(min); G4double max = 0.; if(lmax) max = std::log10(fMaxVal); - // if(max > 0.) max = std::ceil(max); - // else max = std::floor(max); G4double c[4] = { 1., 1., 1., 1. }; G4Colour black(0., 0., 0.); - for(int n = 0; n < _nPoint; n++) + for(auto n = 0; n < _nPoint; ++n) { G4double a = n / (_nPoint - 1.), b = 1. - a; G4double v = (a * max + b * min) / (a + b); @@ -223,7 +210,7 @@ void G4ScoreLogColorMap::DrawColorChartText(G4int _nPoint) continue; // background color - for(int l = 0; l < 21; l++) + for(auto l = 0; l < 21; ++l) { G4Polyline line; line.push_back(G4Point3D(-0.908, -0.905 + 0.05 * n + 0.002 * l, 0.)); @@ -233,19 +220,15 @@ void G4ScoreLogColorMap::DrawColorChartText(G4int _nPoint) fVisManager->Draw2D(line); } // text - // char cstring[80]; - // std::sprintf(cstring, "%8.1e", std::pow(10., v)); - // G4String value(cstring); std::ostringstream oss; oss << std::setw(8) << std::setprecision(1) << std::scientific << std::pow(10., v); std::string str = oss.str(); - G4String value(str); //.c_str()); + G4String value(str); G4Text text(value, G4Point3D(-0.9, -0.9 + 0.05 * n, 0)); G4double size = 12.; text.SetScreenSize(size); - // this->GetMapColor(std::pow(10., v), c); - G4Colour color(1., 1., 1.); // c[0], c[1], c[2], 1.); + G4Colour color(1., 1., 1.); G4VisAttributes att(color); text.SetVisAttributes(&att); @@ -254,16 +237,15 @@ void G4ScoreLogColorMap::DrawColorChartText(G4int _nPoint) // draw ps name // background - G4int lpsname = 20; // fPSName.size(); + G4int lpsname = 20; if(lpsname > 0) { - for(int l = 0; l < 22; l++) + for(auto l = 0; l < 22; ++l) { G4Polyline line; line.push_back(G4Point3D(-0.9, -0.965 + 0.002 * l, 0.)); line.push_back(G4Point3D(-0.9 + 0.025 * lpsname, -0.965 + 0.002 * l, 0.)); G4VisAttributes attblack(black); - // G4VisAttributes attblack(G4Colour(.0, .5, .0)); line.SetVisAttributes(&attblack); fVisManager->Draw2D(line); } @@ -279,16 +261,15 @@ void G4ScoreLogColorMap::DrawColorChartText(G4int _nPoint) // draw unit // background - G4int len = fPSUnit.size(); + auto len = fPSUnit.size(); if(len > 0) { - for(int l = 0; l < 21; l++) + for(auto l = 0; l < 21; ++l) { G4Polyline line; line.push_back(G4Point3D(-0.7, -0.9 + 0.002 * l, 0.)); line.push_back(G4Point3D(-0.7 + 0.3, -0.9 + 0.002 * l, 0.)); G4VisAttributes attblack(black); - // G4VisAttributes attblack(G4Colour(.5, .0, .0)); line.SetVisAttributes(&attblack); fVisManager->Draw2D(line); } diff --git a/source/digits_hits/utils/src/G4ScoreQuantityMessenger.cc b/source/digits_hits/utils/src/G4ScoreQuantityMessenger.cc index 732acf2487..e6f67f4f7d 100644 --- a/source/digits_hits/utils/src/G4ScoreQuantityMessenger.cc +++ b/source/digits_hits/utils/src/G4ScoreQuantityMessenger.cc @@ -121,6 +121,313 @@ G4ScoreQuantityMessenger::G4ScoreQuantityMessenger(G4ScoringManager* SManager) FilterCommands(); } +void G4ScoreQuantityMessenger::QuantityCommands() +{ + G4UIparameter* param; + + // + // Quantity commands + quantityDir = new G4UIdirectory("/score/quantity/"); + quantityDir->SetGuidance("Scoring quantity of the mesh."); + // + qTouchCmd = new G4UIcmdWithAString("/score/quantity/touch", this); + qTouchCmd->SetGuidance( + "Assign previously defined quantity to the current quantity."); + qTouchCmd->SetParameterName("qname", false); + // + qGetUnitCmd = new G4UIcmdWithoutParameter("/score/quantity/get/unit", this); + qGetUnitCmd->SetGuidance("Print output unit of the current quantity."); + // + qSetUnitCmd = new G4UIcmdWithAString("/score/quantity/set/unit", this); + qSetUnitCmd->SetGuidance("Set output unit of the current quantity."); + qSetUnitCmd->SetParameterName("unit", false); + + // Primitive Scorers + qeDepCmd = new G4UIcommand("/score/quantity/energyDeposit", this); + qeDepCmd->SetGuidance("Energy deposit scorer."); + qeDepCmd->SetGuidance("[usage] /score/quantity/energyDeposit qname unit"); + qeDepCmd->SetGuidance(" qname :(String) scorer name"); + qeDepCmd->SetGuidance(" unit :(String) unit"); + param = new G4UIparameter("qname", 's', false); + qeDepCmd->SetParameter(param); + param = new G4UIparameter("unit", 's', true); + param->SetDefaultUnit("MeV"); + qeDepCmd->SetParameter(param); + // + qCellChgCmd = new G4UIcommand("/score/quantity/cellCharge", this); + qCellChgCmd->SetGuidance("Cell charge scorer."); + qCellChgCmd->SetGuidance("[usage] /score/quantity/cellCharge qname unit"); + qCellChgCmd->SetGuidance(" qname :(String) scorer name"); + qCellChgCmd->SetGuidance(" unit :(String) unit"); + param = new G4UIparameter("qname", 's', false); + qCellChgCmd->SetParameter(param); + param = new G4UIparameter("unit", 's', true); + param->SetDefaultUnit("e+"); + qCellChgCmd->SetParameter(param); + // + qCellFluxCmd = new G4UIcommand("/score/quantity/cellFlux", this); + qCellFluxCmd->SetGuidance("Cell flux scorer."); + qCellFluxCmd->SetGuidance("[usage] /score/quantity/cellFlux qname unit"); + qCellFluxCmd->SetGuidance(" qname :(String) scorer name"); + qCellFluxCmd->SetGuidance(" unit :(String) unit"); + param = new G4UIparameter("qname", 's', false); + qCellFluxCmd->SetParameter(param); + param = new G4UIparameter("unit", 's', true); + param->SetDefaultValue("percm2"); + qCellFluxCmd->SetParameter(param); + // + qPassCellFluxCmd = new G4UIcommand("/score/quantity/passageCellFlux", this); + qPassCellFluxCmd->SetGuidance("Passage cell flux scorer"); + qPassCellFluxCmd->SetGuidance( + "[usage] /score/quantity/passageCellFlux qname unit"); + qPassCellFluxCmd->SetGuidance(" qname :(String) scorer name"); + qPassCellFluxCmd->SetGuidance(" unit :(String) unit"); + param = new G4UIparameter("qname", 's', false); + qPassCellFluxCmd->SetParameter(param); + param = new G4UIparameter("unit", 's', true); + param->SetDefaultValue("percm2"); + qPassCellFluxCmd->SetParameter(param); + // + qdoseDepCmd = new G4UIcommand("/score/quantity/doseDeposit", this); + qdoseDepCmd->SetGuidance("Dose deposit scorer."); + qdoseDepCmd->SetGuidance("[usage] /score/quantity/doseDeposit qname unit"); + qdoseDepCmd->SetGuidance(" qname :(String) scorer name"); + qdoseDepCmd->SetGuidance(" unit :(String) unit"); + param = new G4UIparameter("qname", 's', false); + qdoseDepCmd->SetParameter(param); + param = new G4UIparameter("unit", 's', true); + param->SetDefaultUnit("Gy"); + qdoseDepCmd->SetParameter(param); + // + qnOfStepCmd = new G4UIcommand("/score/quantity/nOfStep", this); + qnOfStepCmd->SetGuidance("Number of step scorer."); + qnOfStepCmd->SetGuidance("[usage] /score/quantity/nOfStep qname"); + qnOfStepCmd->SetGuidance("[usage] /score/quantity/nOfStep qname bflag"); + qnOfStepCmd->SetGuidance(" qname :(String) scorer name"); + qnOfStepCmd->SetGuidance(" bflag :(Bool) Skip zero step "); + qnOfStepCmd->SetGuidance(" at geometry boundary if true"); + param = new G4UIparameter("qname", 's', false); + qnOfStepCmd->SetParameter(param); + param = new G4UIparameter("bflag", 'b', true); + param->SetDefaultValue("false"); + qnOfStepCmd->SetParameter(param); + // + qnOfSecondaryCmd = new G4UIcommand("/score/quantity/nOfSecondary", this); + qnOfSecondaryCmd->SetGuidance("Number of secondary scorer."); + qnOfSecondaryCmd->SetGuidance("[usage] /score/quantity/nOfSecondary qname"); + qnOfSecondaryCmd->SetGuidance(" qname :(String) scorer name"); + param = new G4UIparameter("qname", 's', false); + qnOfSecondaryCmd->SetParameter(param); + // + qTrackLengthCmd = new G4UIcommand("/score/quantity/trackLength", this); + qTrackLengthCmd->SetGuidance("Track length scorer."); + qTrackLengthCmd->SetGuidance( + "[usage] /score/quantity/trackLength qname wflag kflag vflag unit"); + qTrackLengthCmd->SetGuidance(" qname :(String) scorer name"); + qTrackLengthCmd->SetGuidance(" wflag :(Bool) weighted"); + qTrackLengthCmd->SetGuidance(" kflag :(Bool) multiply kinetic energy"); + qTrackLengthCmd->SetGuidance(" vflag :(Bool) divide by velocity"); + qTrackLengthCmd->SetGuidance(" unit :(String) unit"); + param = new G4UIparameter("qname", 's', false); + qTrackLengthCmd->SetParameter(param); + param = new G4UIparameter("wflag", 'b', true); + param->SetDefaultValue("false"); + qTrackLengthCmd->SetParameter(param); + param = new G4UIparameter("kflag", 'b', true); + param->SetDefaultValue("false"); + qTrackLengthCmd->SetParameter(param); + param = new G4UIparameter("vflag", 'b', true); + param->SetDefaultValue("false"); + qTrackLengthCmd->SetParameter(param); + param = new G4UIparameter("unit", 's', true); + param->SetDefaultValue("mm"); + qTrackLengthCmd->SetParameter(param); + // + qPassCellCurrCmd = + new G4UIcommand("/score/quantity/passageCellCurrent", this); + qPassCellCurrCmd->SetGuidance("Passage cell current scorer."); + qPassCellCurrCmd->SetGuidance( + "[usage] /score/quantity/passageCellCurrent qname wflag"); + qPassCellCurrCmd->SetGuidance(" qname :(String) scorer name"); + qPassCellCurrCmd->SetGuidance(" wflag :(Bool) weighted"); + param = new G4UIparameter("qname", 's', false); + qPassCellCurrCmd->SetParameter(param); + param = new G4UIparameter("wflag", 'b', true); + param->SetDefaultValue("true"); + qPassCellCurrCmd->SetParameter(param); + // + qPassTrackLengthCmd = + new G4UIcommand("/score/quantity/passageTrackLength", this); + qPassTrackLengthCmd->SetGuidance("Passage track length scorer."); + qPassTrackLengthCmd->SetGuidance( + "[usage] /score/quantity/passageTrackLength qname wflag unit"); + qPassTrackLengthCmd->SetGuidance(" qname :(String) scorer name"); + qPassTrackLengthCmd->SetGuidance(" wflag :(Bool) weighted"); + qPassTrackLengthCmd->SetGuidance(" unit :(Bool) unit"); + param = new G4UIparameter("qname", 's', false); + qPassTrackLengthCmd->SetParameter(param); + param = new G4UIparameter("wflag", 'b', true); + param->SetDefaultValue("true"); + qPassTrackLengthCmd->SetParameter(param); + param = new G4UIparameter("unit", 's', true); + param->SetDefaultUnit("mm"); + qPassTrackLengthCmd->SetParameter(param); + // + qFlatSurfCurrCmd = + new G4UIcommand("/score/quantity/flatSurfaceCurrent", this); + qFlatSurfCurrCmd->SetGuidance("Flat surface current Scorer."); + qFlatSurfCurrCmd->SetGuidance( + "[usage] /score/quantity/flatSurfaceCurrent qname dflag wflag aflag unit"); + qFlatSurfCurrCmd->SetGuidance(" qname :(String) scorer name"); + qFlatSurfCurrCmd->SetGuidance(" dflag :(Int) direction flag"); + qFlatSurfCurrCmd->SetGuidance(" : 0 = Both In and Out"); + qFlatSurfCurrCmd->SetGuidance(" : 1 = In only"); + qFlatSurfCurrCmd->SetGuidance(" : 2 = Out only"); + qFlatSurfCurrCmd->SetGuidance(" wflag :(Bool) weighted"); + qFlatSurfCurrCmd->SetGuidance(" aflag :(Bool) divide by area"); + qFlatSurfCurrCmd->SetGuidance(" unit :(String) unit"); + param = new G4UIparameter("qname", 's', false); + qFlatSurfCurrCmd->SetParameter(param); + param = new G4UIparameter("dflag", 'i', true); + param->SetDefaultValue("0"); + qFlatSurfCurrCmd->SetParameter(param); + param = new G4UIparameter("wflag", 'b', true); + param->SetDefaultValue("true"); + qFlatSurfCurrCmd->SetParameter(param); + param = new G4UIparameter("aflag", 'b', true); + param->SetDefaultValue("true"); + qFlatSurfCurrCmd->SetParameter(param); + param = new G4UIparameter("unit", 's', true); + param->SetDefaultValue("percm2"); + qFlatSurfCurrCmd->SetParameter(param); + // + qFlatSurfFluxCmd = new G4UIcommand("/score/quantity/flatSurfaceFlux", this); + qFlatSurfFluxCmd->SetGuidance("Flat surface flux scorer."); + qFlatSurfFluxCmd->SetGuidance( + "[usage] /score/quantity/flatSurfaceFlux qname dflag unit"); + qFlatSurfFluxCmd->SetGuidance(" qname :(String) scorer name"); + qFlatSurfFluxCmd->SetGuidance(" dflag :(Int) direction flag"); + qFlatSurfFluxCmd->SetGuidance(" : 0 = Both In and Out"); + qFlatSurfFluxCmd->SetGuidance(" : 1 = In only"); + qFlatSurfFluxCmd->SetGuidance(" : 2 = Out only"); + qFlatSurfFluxCmd->SetGuidance(" wflag :(Bool) weighted"); + qFlatSurfFluxCmd->SetGuidance(" aflag :(Bool) divide by area"); + qFlatSurfFluxCmd->SetGuidance(" unit :(String) unit"); + param = new G4UIparameter("qname", 's', false); + qFlatSurfFluxCmd->SetParameter(param); + param = new G4UIparameter("dflag", 'i', true); + param->SetDefaultValue("0"); + qFlatSurfFluxCmd->SetParameter(param); + param = new G4UIparameter("wflag", 'b', true); + param->SetDefaultValue("true"); + qFlatSurfFluxCmd->SetParameter(param); + param = new G4UIparameter("aflag", 'b', true); + param->SetDefaultValue("true"); + qFlatSurfFluxCmd->SetParameter(param); + param = new G4UIparameter("unit", 's', true); + param->SetDefaultValue("percm2"); + qFlatSurfFluxCmd->SetParameter(param); + // + + qVolFluxCmd = new G4UIcommand("/score/quantity/volumeFlux", this); + qVolFluxCmd->SetGuidance("Volume flux scorer."); + qVolFluxCmd->SetGuidance( + "This scorer scores the number of particles getting into the volume " + "without normalized by the surface area."); + qVolFluxCmd->SetGuidance( + "[usage] /score/quantity/volumeFlux qname divcos dflag"); + qVolFluxCmd->SetGuidance(" qname :(String) scorer name"); + qVolFluxCmd->SetGuidance(" divcos :(Bool) divide by cos(theta), where theta " + "is the incident angle (default : false)"); + qVolFluxCmd->SetGuidance( + " dflag :(Int) direction, 1 : inward (default), 2 : outward"); + param = new G4UIparameter("qname", 's', false); + qVolFluxCmd->SetParameter(param); + param = new G4UIparameter("divcos", 'b', true); + param->SetDefaultValue(0); + qVolFluxCmd->SetParameter(param); + param = new G4UIparameter("dflag", 'i', true); + param->SetParameterRange("dflag>=1 && dflag<=2"); + param->SetDefaultValue(1); + qVolFluxCmd->SetParameter(param); + + qNofCollisionCmd = new G4UIcommand("/score/quantity/nOfCollision", this); + qNofCollisionCmd->SetGuidance("Number of collision scorer."); + qNofCollisionCmd->SetGuidance( + "[usage] /score/quantity/nOfCollision qname wflag"); + qNofCollisionCmd->SetGuidance(" qname :(String) scorer name"); + param = new G4UIparameter("qname", 's', false); + qNofCollisionCmd->SetParameter(param); + param = new G4UIparameter("wflag", 'b', true); + param->SetDefaultValue("false"); + qNofCollisionCmd->SetParameter(param); + // + qPopulationCmd = new G4UIcommand("/score/quantity/population", this); + qPopulationCmd->SetGuidance("Population scorer."); + qPopulationCmd->SetGuidance("[usage] /score/quantity/population qname wflag"); + qPopulationCmd->SetGuidance(" qname :(String) scorer name"); + qPopulationCmd->SetGuidance(" wflag :(Bool) weighted"); + param = new G4UIparameter("qname", 's', false); + qPopulationCmd->SetParameter(param); + param = new G4UIparameter("wflag", 'b', true); + param->SetDefaultValue("false"); + qPopulationCmd->SetParameter(param); + + // + qTrackCountCmd = new G4UIcommand("/score/quantity/nOfTrack", this); + qTrackCountCmd->SetGuidance("Number of track scorer."); + qTrackCountCmd->SetGuidance( + "[usage] /score/quantity/nOfTrack qname dflag wflag"); + qTrackCountCmd->SetGuidance(" qname :(String) scorer name"); + qTrackCountCmd->SetGuidance(" dflag :(Int) direction"); + qTrackCountCmd->SetGuidance(" : 0 = Both In and Out"); + qTrackCountCmd->SetGuidance(" : 1 = In only"); + qTrackCountCmd->SetGuidance(" : 2 = Out only"); + qTrackCountCmd->SetGuidance(" wflag :(Bool) weighted"); + param = new G4UIparameter("qname", 's', false); + qTrackCountCmd->SetParameter(param); + param = new G4UIparameter("dflag", 'i', true); + param->SetDefaultValue("0"); + qTrackCountCmd->SetParameter(param); + param = new G4UIparameter("wflag", 'b', true); + param->SetDefaultValue("false"); + qTrackCountCmd->SetParameter(param); + + // + qTerminationCmd = new G4UIcommand("/score/quantity/nOfTerminatedTrack", this); + qTerminationCmd->SetGuidance("Number of terminated tracks scorer."); + qTerminationCmd->SetGuidance( + "[usage] /score/quantity/nOfTerminatedTrack qname wflag"); + qTerminationCmd->SetGuidance(" qname :(String) scorer name"); + qTerminationCmd->SetGuidance(" wflag :(Bool) weighted"); + param = new G4UIparameter("qname", 's', false); + qTerminationCmd->SetParameter(param); + param = new G4UIparameter("wflag", 'b', true); + param->SetDefaultValue("false"); + qTerminationCmd->SetParameter(param); + + // + qMinKinEAtGeneCmd = + new G4UIcommand("/score/quantity/minKinEAtGeneration", this); + qMinKinEAtGeneCmd->SetGuidance("Min Kinetic Energy at Generation"); + qMinKinEAtGeneCmd->SetGuidance( + "[usage] /score/quantity/minKinEAtGeneration qname unit"); + qMinKinEAtGeneCmd->SetGuidance(" qname :(String) scorer name"); + qMinKinEAtGeneCmd->SetGuidance(" unit :(String) unit name"); + param = new G4UIparameter("qname", 's', false); + qMinKinEAtGeneCmd->SetParameter(param); + param = new G4UIparameter("unit", 's', true); + param->SetDefaultUnit("MeV"); + qMinKinEAtGeneCmd->SetParameter(param); + // + qStepCheckerCmd = new G4UIcommand("/score/quantity/stepChecker", this); + qStepCheckerCmd->SetGuidance("Display a comment when this PS is invoked"); + qStepCheckerCmd->SetGuidance("[usage] /score/quantity/stepChecker qname"); + qStepCheckerCmd->SetGuidance(" qname :(String) scorer name"); + param = new G4UIparameter("qname", 's', false); + qStepCheckerCmd->SetParameter(param); +} + void G4ScoreQuantityMessenger::FilterCommands() { G4UIparameter* param; @@ -226,10 +533,7 @@ G4ScoreQuantityMessenger::~G4ScoreQuantityMessenger() delete qFlatSurfCurrCmd; delete qFlatSurfFluxCmd; delete qVolFluxCmd; - // delete qSphereSurfCurrCmd; - // delete qSphereSurfFluxCmd; - // delete qCylSurfCurrCmd; - // delete qCylSurfFluxCmd; + delete qNofCollisionCmd; delete qPopulationCmd; delete qTrackCountCmd; @@ -257,7 +561,7 @@ void G4ScoreQuantityMessenger::SetNewValue(G4UIcommand* command, // Get Current Mesh // G4VScoringMesh* mesh = fSMan->GetCurrentMesh(); - if(!mesh) + if(mesh == nullptr) { ed << "ERROR : No mesh is currently open. Open/create a mesh first. " "Command ignored."; @@ -311,7 +615,7 @@ void G4ScoreQuantityMessenger::SetNewValue(G4UIcommand* command, } else if(shape == MeshShape::cylinder) { - G4PSCellFluxForCylinder3D* pps = + auto pps = new G4PSCellFluxForCylinder3D(token[0]); pps->SetCylinderSize(mesh->GetSize(),mesh->GetStartAngle(),mesh->GetAngleSpan()); G4int nSeg[3]; @@ -345,7 +649,7 @@ void G4ScoreQuantityMessenger::SetNewValue(G4UIcommand* command, } else if(shape == MeshShape::cylinder) { - G4PSPassageCellFluxForCylinder3D* pps = + auto pps = new G4PSPassageCellFluxForCylinder3D(token[0]); pps->SetCylinderSize(mesh->GetSize(),mesh->GetStartAngle(),mesh->GetAngleSpan()); G4int nSeg[3]; @@ -396,7 +700,7 @@ void G4ScoreQuantityMessenger::SetNewValue(G4UIcommand* command, } else if(shape == MeshShape::cylinder) { - G4PSDoseDepositForCylinder3D* pps = + auto pps = new G4PSDoseDepositForCylinder3D(token[0]); pps->SetUnit(token[1]); pps->SetCylinderSize(mesh->GetSize(),mesh->GetStartAngle(),mesh->GetAngleSpan()); @@ -569,63 +873,9 @@ void G4ScoreQuantityMessenger::SetNewValue(G4UIcommand* command, { ps = new G4PSVolumeFlux3D(token[0], StoI(token[2])); } - ps->SetDivCos(StoI(token[1])); + ps->SetDivCos(StoI(token[1]) != 0); mesh->SetPrimitiveScorer(ps); } - - // } else if(command== qSphereSurfCurrCmd){ - // if( CheckMeshPS(mesh, token[0],command )) { - // G4PSSphereSurfaceCurrent3D* ps = - // new G4PSSphereSurfaceCurrent3D(token[0],StoI(token[1])); - // ps->Weighted(StoB(token[2])); - // ps->DivideByArea(StoB(token[3])); - // if ( StoB(token[3]) ){ - // ps->SetUnit(token[4]); - // }else{ - // ps->SetUnit(""); - // } - // mesh->SetPrimitiveScorer(ps); - // } - // } else if(command== qSphereSurfFluxCmd){ - // if( CheckMeshPS(mesh,token[0],command)) { - // G4PSSphereSurfaceFlux3D* ps = new - // G4PSSphereSurfaceFlux3D(token[0], StoI(token[1])); - // ps->Weighted(StoB(token[2])); - // ps->DivideByArea(StoB(token[3])); - // if ( StoB(token[3]) ){ - // ps->SetUnit(token[4]); - // }else{ - // ps->SetUnit(""); - // } - // mesh->SetPrimitiveScorer(ps); - // } - // } else if(command== qCylSurfCurrCmd){ - // if( CheckMeshPS(mesh, token[0],command ) ) { - // G4PSCylinderSurfaceCurrent3D* ps = - // new G4PSCylinderSurfaceCurrent3D(token[0],StoI(token[1])); - // ps->Weighted(StoB(token[2])); - // ps->DivideByArea(StoB(token[3])); - // if ( StoB(token[3]) ){ - // ps->SetUnit(token[4]); - // }else{ - // ps->SetUnit(""); - // } - // ps->SetUnit(token[4]); - // mesh->SetPrimitiveScorer(ps); - // } - // } else if(command== qCylSurfFluxCmd){ - // if( CheckMeshPS(mesh, token[0],command ) { - // G4PSCylinerSurfaceFlux3D* ps =new - // G4PSCylinderSurfaceFlux3D(token[0], StoI(token[1])); - // ps->Weighted(StoB(token[2])); - // ps->DivideByArea(StoB(token[3])); - // if ( StoB(token[3]) ){ - // ps->SetUnit(token[4]); - // }else{ - // ps->SetUnit(""); - // } - // mesh->SetPrimitiveScorer(ps); - // } } else if(command == qNofCollisionCmd) { @@ -848,7 +1098,7 @@ void G4ScoreQuantityMessenger::FParticleWithEnergyCommand(G4VScoringMesh* mesh, G4double elow = StoD(token[1]); G4double ehigh = StoD(token[2]); G4double unitVal = G4UnitDefinition::GetValueOf(token[3]); - G4SDParticleWithEnergyFilter* filter = + auto filter = new G4SDParticleWithEnergyFilter(name, elow * unitVal, ehigh * unitVal); for(G4int i = 4; i < (G4int) token.size(); i++) { @@ -865,13 +1115,11 @@ G4bool G4ScoreQuantityMessenger::CheckMeshPS(G4VScoringMesh* mesh, { return true; } - else - { - G4ExceptionDescription ed; - ed << "WARNING[" << qTouchCmd->GetCommandPath() << "] : Quantity name, \"" - << psname << "\", is already existing."; - command->CommandFailed(ed); - mesh->SetNullToCurrentPrimitiveScorer(); - return false; - } + + G4ExceptionDescription ed; + ed << "WARNING[" << qTouchCmd->GetCommandPath() << "] : Quantity name, \"" + << psname << "\", is already existing."; + command->CommandFailed(ed); + mesh->SetNullToCurrentPrimitiveScorer(); + return false; } diff --git a/source/digits_hits/utils/src/G4ScoreQuantityMessengerQCmd.cc b/source/digits_hits/utils/src/G4ScoreQuantityMessengerQCmd.cc deleted file mode 100644 index 5dcd0c99c4..0000000000 --- a/source/digits_hits/utils/src/G4ScoreQuantityMessengerQCmd.cc +++ /dev/null @@ -1,506 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// -// -// --------------------------------------------------------------------- -// Modifications -// 08-Oct-2010 T.Aso remove unit of G4PSPassageCellCurrent. -// 01-Jun-2012 T.Aso Support weighted/dividedByArea options -// in flatCurrent and flatFulx commands. -// 29-Mar-2013 T.Aso Support weighted options in the nOfTrack command. -// Support a boundary flag option in the nOfStep command -// for skipping stepLength=0 steps. -// 13-Feb-2020 T.Aso Change SetDefaultUnit() in trackLength scorer to -// SetDefaultValue() to support various unit category. -// --------------------------------------------------------------------- - -#include "G4ScoreQuantityMessenger.hh" -#include "G4ScoringManager.hh" -#include "G4VScoringMesh.hh" - -#include "G4PSCellCharge3D.hh" -#include "G4PSCellFlux3D.hh" -#include "G4PSPassageCellFlux3D.hh" -#include "G4PSEnergyDeposit3D.hh" -#include "G4PSDoseDeposit3D.hh" -#include "G4PSNofStep3D.hh" -#include "G4PSNofSecondary3D.hh" -// -#include "G4PSTrackLength3D.hh" -#include "G4PSPassageCellCurrent3D.hh" -#include "G4PSPassageTrackLength3D.hh" -#include "G4PSFlatSurfaceCurrent3D.hh" -#include "G4PSFlatSurfaceFlux3D.hh" -#include "G4PSSphereSurfaceCurrent3D.hh" -#include "G4PSSphereSurfaceFlux3D.hh" -#include "G4PSCylinderSurfaceCurrent3D.hh" -#include "G4PSCylinderSurfaceFlux3D.hh" -#include "G4PSVolumeFlux3D.hh" -#include "G4PSNofCollision3D.hh" -#include "G4PSPopulation3D.hh" -#include "G4PSTrackCounter3D.hh" -#include "G4PSTermination3D.hh" - -#include "G4SDChargedFilter.hh" -#include "G4SDNeutralFilter.hh" -#include "G4SDKineticEnergyFilter.hh" -#include "G4SDParticleFilter.hh" -#include "G4SDParticleWithEnergyFilter.hh" - -#include "G4UIdirectory.hh" -#include "G4UIcmdWithoutParameter.hh" -#include "G4UIcmdWithAnInteger.hh" -#include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithABool.hh" -#include "G4UIcmdWithADoubleAndUnit.hh" -#include "G4UIcmdWith3VectorAndUnit.hh" -#include "G4UIcommand.hh" -#include "G4UIparameter.hh" -#include "G4Tokenizer.hh" -#include "G4UnitsTable.hh" - -void G4ScoreQuantityMessenger::QuantityCommands() -{ - G4UIparameter* param; - - // - // Quantity commands - quantityDir = new G4UIdirectory("/score/quantity/"); - quantityDir->SetGuidance("Scoring quantity of the mesh."); - // - qTouchCmd = new G4UIcmdWithAString("/score/quantity/touch", this); - qTouchCmd->SetGuidance( - "Assign previously defined quantity to the current quantity."); - qTouchCmd->SetParameterName("qname", false); - // - qGetUnitCmd = new G4UIcmdWithoutParameter("/score/quantity/get/unit", this); - qGetUnitCmd->SetGuidance("Print output unit of the current quantity."); - // - qSetUnitCmd = new G4UIcmdWithAString("/score/quantity/set/unit", this); - qSetUnitCmd->SetGuidance("Set output unit of the current quantity."); - qSetUnitCmd->SetParameterName("unit", false); - - // Primitive Scorers - qeDepCmd = new G4UIcommand("/score/quantity/energyDeposit", this); - qeDepCmd->SetGuidance("Energy deposit scorer."); - qeDepCmd->SetGuidance("[usage] /score/quantity/energyDeposit qname unit"); - qeDepCmd->SetGuidance(" qname :(String) scorer name"); - qeDepCmd->SetGuidance(" unit :(String) unit"); - param = new G4UIparameter("qname", 's', false); - qeDepCmd->SetParameter(param); - param = new G4UIparameter("unit", 's', true); - param->SetDefaultUnit("MeV"); - qeDepCmd->SetParameter(param); - // - qCellChgCmd = new G4UIcommand("/score/quantity/cellCharge", this); - qCellChgCmd->SetGuidance("Cell charge scorer."); - qCellChgCmd->SetGuidance("[usage] /score/quantity/cellCharge qname unit"); - qCellChgCmd->SetGuidance(" qname :(String) scorer name"); - qCellChgCmd->SetGuidance(" unit :(String) unit"); - param = new G4UIparameter("qname", 's', false); - qCellChgCmd->SetParameter(param); - param = new G4UIparameter("unit", 's', true); - param->SetDefaultUnit("e+"); - qCellChgCmd->SetParameter(param); - // - qCellFluxCmd = new G4UIcommand("/score/quantity/cellFlux", this); - qCellFluxCmd->SetGuidance("Cell flux scorer."); - qCellFluxCmd->SetGuidance("[usage] /score/quantity/cellFlux qname unit"); - qCellFluxCmd->SetGuidance(" qname :(String) scorer name"); - qCellFluxCmd->SetGuidance(" unit :(String) unit"); - param = new G4UIparameter("qname", 's', false); - qCellFluxCmd->SetParameter(param); - param = new G4UIparameter("unit", 's', true); - param->SetDefaultValue("percm2"); - qCellFluxCmd->SetParameter(param); - // - qPassCellFluxCmd = new G4UIcommand("/score/quantity/passageCellFlux", this); - qPassCellFluxCmd->SetGuidance("Passage cell flux scorer"); - qPassCellFluxCmd->SetGuidance( - "[usage] /score/quantity/passageCellFlux qname unit"); - qPassCellFluxCmd->SetGuidance(" qname :(String) scorer name"); - qPassCellFluxCmd->SetGuidance(" unit :(String) unit"); - param = new G4UIparameter("qname", 's', false); - qPassCellFluxCmd->SetParameter(param); - param = new G4UIparameter("unit", 's', true); - param->SetDefaultValue("percm2"); - qPassCellFluxCmd->SetParameter(param); - // - qdoseDepCmd = new G4UIcommand("/score/quantity/doseDeposit", this); - qdoseDepCmd->SetGuidance("Dose deposit scorer."); - qdoseDepCmd->SetGuidance("[usage] /score/quantity/doseDeposit qname unit"); - qdoseDepCmd->SetGuidance(" qname :(String) scorer name"); - qdoseDepCmd->SetGuidance(" unit :(String) unit"); - param = new G4UIparameter("qname", 's', false); - qdoseDepCmd->SetParameter(param); - param = new G4UIparameter("unit", 's', true); - param->SetDefaultUnit("Gy"); - qdoseDepCmd->SetParameter(param); - // - qnOfStepCmd = new G4UIcommand("/score/quantity/nOfStep", this); - qnOfStepCmd->SetGuidance("Number of step scorer."); - qnOfStepCmd->SetGuidance("[usage] /score/quantity/nOfStep qname"); - qnOfStepCmd->SetGuidance("[usage] /score/quantity/nOfStep qname bflag"); - qnOfStepCmd->SetGuidance(" qname :(String) scorer name"); - qnOfStepCmd->SetGuidance(" bflag :(Bool) Skip zero step "); - qnOfStepCmd->SetGuidance(" at geometry boundary if true"); - param = new G4UIparameter("qname", 's', false); - qnOfStepCmd->SetParameter(param); - param = new G4UIparameter("bflag", 'b', true); - param->SetDefaultValue("false"); - qnOfStepCmd->SetParameter(param); - // - qnOfSecondaryCmd = new G4UIcommand("/score/quantity/nOfSecondary", this); - qnOfSecondaryCmd->SetGuidance("Number of secondary scorer."); - qnOfSecondaryCmd->SetGuidance("[usage] /score/quantity/nOfSecondary qname"); - qnOfSecondaryCmd->SetGuidance(" qname :(String) scorer name"); - param = new G4UIparameter("qname", 's', false); - qnOfSecondaryCmd->SetParameter(param); - // - qTrackLengthCmd = new G4UIcommand("/score/quantity/trackLength", this); - qTrackLengthCmd->SetGuidance("Track length scorer."); - qTrackLengthCmd->SetGuidance( - "[usage] /score/quantity/trackLength qname wflag kflag vflag unit"); - qTrackLengthCmd->SetGuidance(" qname :(String) scorer name"); - qTrackLengthCmd->SetGuidance(" wflag :(Bool) weighted"); - qTrackLengthCmd->SetGuidance(" kflag :(Bool) multiply kinetic energy"); - qTrackLengthCmd->SetGuidance(" vflag :(Bool) divide by velocity"); - qTrackLengthCmd->SetGuidance(" unit :(String) unit"); - param = new G4UIparameter("qname", 's', false); - qTrackLengthCmd->SetParameter(param); - param = new G4UIparameter("wflag", 'b', true); - param->SetDefaultValue("false"); - qTrackLengthCmd->SetParameter(param); - param = new G4UIparameter("kflag", 'b', true); - param->SetDefaultValue("false"); - qTrackLengthCmd->SetParameter(param); - param = new G4UIparameter("vflag", 'b', true); - param->SetDefaultValue("false"); - qTrackLengthCmd->SetParameter(param); - param = new G4UIparameter("unit", 's', true); - param->SetDefaultValue("mm"); - qTrackLengthCmd->SetParameter(param); - // - qPassCellCurrCmd = - new G4UIcommand("/score/quantity/passageCellCurrent", this); - qPassCellCurrCmd->SetGuidance("Passage cell current scorer."); - qPassCellCurrCmd->SetGuidance( - "[usage] /score/quantity/passageCellCurrent qname wflag"); - qPassCellCurrCmd->SetGuidance(" qname :(String) scorer name"); - qPassCellCurrCmd->SetGuidance(" wflag :(Bool) weighted"); - param = new G4UIparameter("qname", 's', false); - qPassCellCurrCmd->SetParameter(param); - param = new G4UIparameter("wflag", 'b', true); - param->SetDefaultValue("true"); - qPassCellCurrCmd->SetParameter(param); - // - qPassTrackLengthCmd = - new G4UIcommand("/score/quantity/passageTrackLength", this); - qPassTrackLengthCmd->SetGuidance("Passage track length scorer."); - qPassTrackLengthCmd->SetGuidance( - "[usage] /score/quantity/passageTrackLength qname wflag unit"); - qPassTrackLengthCmd->SetGuidance(" qname :(String) scorer name"); - qPassTrackLengthCmd->SetGuidance(" wflag :(Bool) weighted"); - qPassTrackLengthCmd->SetGuidance(" unit :(Bool) unit"); - param = new G4UIparameter("qname", 's', false); - qPassTrackLengthCmd->SetParameter(param); - param = new G4UIparameter("wflag", 'b', true); - param->SetDefaultValue("true"); - qPassTrackLengthCmd->SetParameter(param); - param = new G4UIparameter("unit", 's', true); - param->SetDefaultUnit("mm"); - qPassTrackLengthCmd->SetParameter(param); - // - qFlatSurfCurrCmd = - new G4UIcommand("/score/quantity/flatSurfaceCurrent", this); - qFlatSurfCurrCmd->SetGuidance("Flat surface current Scorer."); - qFlatSurfCurrCmd->SetGuidance( - "[usage] /score/quantity/flatSurfaceCurrent qname dflag wflag aflag unit"); - qFlatSurfCurrCmd->SetGuidance(" qname :(String) scorer name"); - qFlatSurfCurrCmd->SetGuidance(" dflag :(Int) direction flag"); - qFlatSurfCurrCmd->SetGuidance(" : 0 = Both In and Out"); - qFlatSurfCurrCmd->SetGuidance(" : 1 = In only"); - qFlatSurfCurrCmd->SetGuidance(" : 2 = Out only"); - qFlatSurfCurrCmd->SetGuidance(" wflag :(Bool) weighted"); - qFlatSurfCurrCmd->SetGuidance(" aflag :(Bool) divide by area"); - qFlatSurfCurrCmd->SetGuidance(" unit :(String) unit"); - param = new G4UIparameter("qname", 's', false); - qFlatSurfCurrCmd->SetParameter(param); - param = new G4UIparameter("dflag", 'i', true); - param->SetDefaultValue("0"); - qFlatSurfCurrCmd->SetParameter(param); - param = new G4UIparameter("wflag", 'b', true); - param->SetDefaultValue("true"); - qFlatSurfCurrCmd->SetParameter(param); - param = new G4UIparameter("aflag", 'b', true); - param->SetDefaultValue("true"); - qFlatSurfCurrCmd->SetParameter(param); - param = new G4UIparameter("unit", 's', true); - param->SetDefaultValue("percm2"); - qFlatSurfCurrCmd->SetParameter(param); - // - qFlatSurfFluxCmd = new G4UIcommand("/score/quantity/flatSurfaceFlux", this); - qFlatSurfFluxCmd->SetGuidance("Flat surface flux scorer."); - qFlatSurfFluxCmd->SetGuidance( - "[usage] /score/quantity/flatSurfaceFlux qname dflag unit"); - qFlatSurfFluxCmd->SetGuidance(" qname :(String) scorer name"); - qFlatSurfFluxCmd->SetGuidance(" dflag :(Int) direction flag"); - qFlatSurfFluxCmd->SetGuidance(" : 0 = Both In and Out"); - qFlatSurfFluxCmd->SetGuidance(" : 1 = In only"); - qFlatSurfFluxCmd->SetGuidance(" : 2 = Out only"); - qFlatSurfFluxCmd->SetGuidance(" wflag :(Bool) weighted"); - qFlatSurfFluxCmd->SetGuidance(" aflag :(Bool) divide by area"); - qFlatSurfFluxCmd->SetGuidance(" unit :(String) unit"); - param = new G4UIparameter("qname", 's', false); - qFlatSurfFluxCmd->SetParameter(param); - param = new G4UIparameter("dflag", 'i', true); - param->SetDefaultValue("0"); - qFlatSurfFluxCmd->SetParameter(param); - param = new G4UIparameter("wflag", 'b', true); - param->SetDefaultValue("true"); - qFlatSurfFluxCmd->SetParameter(param); - param = new G4UIparameter("aflag", 'b', true); - param->SetDefaultValue("true"); - qFlatSurfFluxCmd->SetParameter(param); - param = new G4UIparameter("unit", 's', true); - param->SetDefaultValue("percm2"); - qFlatSurfFluxCmd->SetParameter(param); - // - - qVolFluxCmd = new G4UIcommand("/score/quantity/volumeFlux", this); - qVolFluxCmd->SetGuidance("Volume flux scorer."); - qVolFluxCmd->SetGuidance( - "This scorer scores the number of particles getting into the volume " - "without normalized by the surface area."); - qVolFluxCmd->SetGuidance( - "[usage] /score/quantity/volumeFlux qname divcos dflag"); - qVolFluxCmd->SetGuidance(" qname :(String) scorer name"); - qVolFluxCmd->SetGuidance(" divcos :(Bool) divide by cos(theta), where theta " - "is the incident angle (default : false)"); - qVolFluxCmd->SetGuidance( - " dflag :(Int) direction, 1 : inward (default), 2 : outward"); - param = new G4UIparameter("qname", 's', false); - qVolFluxCmd->SetParameter(param); - param = new G4UIparameter("divcos", 'b', true); - param->SetDefaultValue(false); - qVolFluxCmd->SetParameter(param); - param = new G4UIparameter("dflag", 'i', true); - param->SetParameterRange("dflag>=1 && dflag<=2"); - param->SetDefaultValue(1); - qVolFluxCmd->SetParameter(param); - - // qSphereSurfCurrCmd = new - // G4UIcommand("/score/quantity/sphereSurfaceCurrent",this); - // qSphereSurfCurrCmd->SetGuidance("Sphere surface current Scorer."); - // qSphereSurfCurrCmd-> - // SetGuidance("[usage] /score/quantity/sphereSurfaceCurrent qname dflag - // wflag aflag unit"); - // qSphereSurfCurrCmd->SetGuidance(" qname :(String) scorer name"); - // qSphereSurfCurrCmd->SetGuidance(" dflag :(Int) direction flag"); - // qSphereSurfCurrCmd->SetGuidance(" : 0 = Both In and Out"); - // qSphereSurfCurrCmd->SetGuidance(" : 1 = In only"); - // qSphereSurfCurrCmd->SetGuidance(" : 2 = Out only"); - // qSphereSurfCurrCmd->SetGuidance(" wflag :(Bool) Weighted"); - // qSphereSurfCurrCmd->SetGuidance(" aflag :(Bool) DivideByArea"); - // qSphereSurfCurrCmd->SetGuidance(" unit :(String) unit"); - // param = new G4UIparameter("qname",'s',false); - // qSphereSurfCurrCmd->SetParameter(param); - // param = new G4UIparameter("dflag",'i',true); - // param->SetDefaultValue("0"); - // qSphereSurfCurrCmd->SetParameter(param); - // param = new G4UIparameter("wflag",'b',true); - // param->SetDefaultValue("true"); - // qSphereSurfCurrCmd->SetParameter(param); - // param = new G4UIparameter("aflag",'b',true); - // param->SetDefaultValue("true"); - // qSphereSurfCurrCmd->SetParameter(param); - // param = new G4UIparameter("unit",'s',true); - // param->SetDefaultValue("percm2"); - // qSphereSurfCurrCmd->SetParameter(param); - - // - // qSphereSurfFluxCmd = new - // G4UIcommand("/score/quantity/sphereSurfaceFlux",this); - // qSphereSurfFluxCmd->SetGuidance("Sphere surface Flux Scorer."); - // qSphereSurfFluxCmd-> - // SetGuidance("[usage] /score/quantity/sphereSurfaceFlux qname dflag unit"); - // qSphereSurfFluxCmd->SetGuidance(" qname :(String) scorer name"); - // qSphereSurfFluxCmd->SetGuidance(" dflag :(Int) direction flag"); - // qSphereSurfFluxCmd->SetGuidance(" : 0 = Both In and Out"); - // qSphereSurfFluxCmd->SetGuidance(" : 1 = In only"); - // qSphereSurfFluxCmd->SetGuidance(" : 2 = Out only"); - // qSphereSurfFluxCmd->SetGuidance(" wflag :(Bool) weighted"); - // qSphereSurfFluxCmd->SetGuidance(" aflag :(Bool) divide by area"); - // qSphereSurfFluxCmd->SetGuidance(" unit :(String) unit"); - // param = new G4UIparameter("qname",'s',false); - // qSphereSurfFluxCmd->SetParameter(param); - // param = new G4UIparameter("dflag",'i',true); - // param->SetDefaultValue("0"); - // qSphereSurfFluxCmd->SetParameter(param); - // param = new G4UIparameter("wflag",'b',true); - // param->SetDefaultValue("true"); - // qSphereSurfFluxCmd->SetParameter(param); - // param = new G4UIparameter("aflag",'b',true); - // param->SetDefaultValue("true"); - // qSphereSurfFluxCmd->SetParameter(param); - // param = new G4UIparameter("unit",'s',true); - // param->SetDefaultValue("percm2"); - // qSphereSurfFluxCmd->SetParameter(param); - - // - // qCylSurfCurrCmd = new - // G4UIcommand("/score/quantity/cylinderSurfaceCurrent",this); - // qCylSurfCurrCmd->SetGuidance("Cylinder surface current Scorer."); - // qCylSurfCurrCmd-> - // SetGuidance("[usage] /score/quantity/cylinderSurfaceCurrent qname dflag - // wflag aflag unit"); qCylSurfCurrCmd->SetGuidance(" qname :(String) - // scorer name"); qCylSurfCurrCmd->SetGuidance(" dflag :(Int) direction - // flag"); qCylSurfCurrCmd->SetGuidance(" : 0 = Both In and Out"); - // qCylSurfCurrCmd->SetGuidance(" : 1 = In only"); - // qCylSurfCurrCmd->SetGuidance(" : 2 = Out only"); - // qCylSurfCurrCmd->SetGuidance(" wflag :(Bool) Weighted"); - // qCylSurfCurrCmd->SetGuidance(" aflag :(Bool) DivideByArea"); - // qCylSurfCurrCmd->SetGuidance(" unit :(String) unit"); - // param = new G4UIparameter("qname",'s',false); - // qCylSurfCurrCmd->SetParameter(param); - // param = new G4UIparameter("dflag",'i',true); - // param->SetDefaultValue("0"); - // qCylSurfCurrCmd->SetParameter(param); - // param = new G4UIparameter("wflag",'b',true); - // param->SetDefaultValue("true"); - // qCylSurfCurrCmd->SetParameter(param); - // param = new G4UIparameter("aflag",'b',true); - // param->SetDefaultValue("true"); - // qCylSurfCurrCmd->SetParameter(param); - // param = new G4UIparameter("unit",'s',true); - // param->SetDefaultValue("percm2"); - // qCylSurfCurrCmd->SetParameter(param); - // - // qCylSurfFluxCmd = new - // G4UIcommand("/score/quantity/cylinderSurfaceFlux",this); - // qCylSurfFluxCmd->SetGuidance("Cylinder surface Flux Scorer."); - // qCylSurfFluxCmd-> - // SetGuidance("[usage] /score/quantity/cylinderSurfaceFlux qname dflag - // unit"); qCylSurfFluxCmd->SetGuidance(" qname :(String) scorer name"); - // qCylSurfFluxCmd->SetGuidance(" dflag :(Int) direction flag"); - // qCylSurfFluxCmd->SetGuidance(" : 0 = Both In and Out"); - // qCylSurfFluxCmd->SetGuidance(" : 1 = In only"); - // qCylSurfFluxCmd->SetGuidance(" : 2 = Out only"); - // qCylSurfFluxCmd->SetGuidance(" wflag :(Bool) weighted"); - // qCylSurfFluxCmd->SetGuidance(" aflag :(Bool) divide by area"); - // qCylSurfFluxCmd->SetGuidance(" unit :(String) unit"); - // param = new G4UIparameter("qname",'s',false); - // qCylSurfFluxCmd->SetParameter(param); - // param = new G4UIparameter("dflag",'i',true); - // param->SetDefaultValue("0"); - // qCylSurfFluxCmd->SetParameter(param); - // param = new G4UIparameter("wflag",'b',true); - // param->SetDefaultValue("true"); - // qCylSurfFluxCmd->SetParameter(param); - // param = new G4UIparameter("aflag",'b',true); - // param->SetDefaultValue("true"); - // qCylSurfFluxCmd->SetParameter(param); - // param = new G4UIparameter("unit",'s',true); - // param->SetDefaultValue("percm2"); - // qCylSurfFluxCmd->SetParameter(param); - // - // - qNofCollisionCmd = new G4UIcommand("/score/quantity/nOfCollision", this); - qNofCollisionCmd->SetGuidance("Number of collision scorer."); - qNofCollisionCmd->SetGuidance( - "[usage] /score/quantity/nOfCollision qname wflag"); - qNofCollisionCmd->SetGuidance(" qname :(String) scorer name"); - param = new G4UIparameter("qname", 's', false); - qNofCollisionCmd->SetParameter(param); - param = new G4UIparameter("wflag", 'b', true); - param->SetDefaultValue("false"); - qNofCollisionCmd->SetParameter(param); - // - qPopulationCmd = new G4UIcommand("/score/quantity/population", this); - qPopulationCmd->SetGuidance("Population scorer."); - qPopulationCmd->SetGuidance("[usage] /score/quantity/population qname wflag"); - qPopulationCmd->SetGuidance(" qname :(String) scorer name"); - qPopulationCmd->SetGuidance(" wflag :(Bool) weighted"); - param = new G4UIparameter("qname", 's', false); - qPopulationCmd->SetParameter(param); - param = new G4UIparameter("wflag", 'b', true); - param->SetDefaultValue("false"); - qPopulationCmd->SetParameter(param); - - // - qTrackCountCmd = new G4UIcommand("/score/quantity/nOfTrack", this); - qTrackCountCmd->SetGuidance("Number of track scorer."); - qTrackCountCmd->SetGuidance( - "[usage] /score/quantity/nOfTrack qname dflag wflag"); - qTrackCountCmd->SetGuidance(" qname :(String) scorer name"); - qTrackCountCmd->SetGuidance(" dflag :(Int) direction"); - qTrackCountCmd->SetGuidance(" : 0 = Both In and Out"); - qTrackCountCmd->SetGuidance(" : 1 = In only"); - qTrackCountCmd->SetGuidance(" : 2 = Out only"); - qTrackCountCmd->SetGuidance(" wflag :(Bool) weighted"); - param = new G4UIparameter("qname", 's', false); - qTrackCountCmd->SetParameter(param); - param = new G4UIparameter("dflag", 'i', true); - param->SetDefaultValue("0"); - qTrackCountCmd->SetParameter(param); - param = new G4UIparameter("wflag", 'b', true); - param->SetDefaultValue("false"); - qTrackCountCmd->SetParameter(param); - - // - qTerminationCmd = new G4UIcommand("/score/quantity/nOfTerminatedTrack", this); - qTerminationCmd->SetGuidance("Number of terminated tracks scorer."); - qTerminationCmd->SetGuidance( - "[usage] /score/quantity/nOfTerminatedTrack qname wflag"); - qTerminationCmd->SetGuidance(" qname :(String) scorer name"); - qTerminationCmd->SetGuidance(" wflag :(Bool) weighted"); - param = new G4UIparameter("qname", 's', false); - qTerminationCmd->SetParameter(param); - param = new G4UIparameter("wflag", 'b', true); - param->SetDefaultValue("false"); - qTerminationCmd->SetParameter(param); - - // - qMinKinEAtGeneCmd = - new G4UIcommand("/score/quantity/minKinEAtGeneration", this); - qMinKinEAtGeneCmd->SetGuidance("Min Kinetic Energy at Generation"); - qMinKinEAtGeneCmd->SetGuidance( - "[usage] /score/quantity/minKinEAtGeneration qname unit"); - qMinKinEAtGeneCmd->SetGuidance(" qname :(String) scorer name"); - qMinKinEAtGeneCmd->SetGuidance(" unit :(String) unit name"); - param = new G4UIparameter("qname", 's', false); - qMinKinEAtGeneCmd->SetParameter(param); - param = new G4UIparameter("unit", 's', true); - param->SetDefaultUnit("MeV"); - qMinKinEAtGeneCmd->SetParameter(param); - // - qStepCheckerCmd = new G4UIcommand("/score/quantity/stepChecker", this); - qStepCheckerCmd->SetGuidance("Display a comment when this PS is invoked"); - qStepCheckerCmd->SetGuidance("[usage] /score/quantity/stepChecker qname"); - qStepCheckerCmd->SetGuidance(" qname :(String) scorer name"); - param = new G4UIparameter("qname", 's', false); - qStepCheckerCmd->SetParameter(param); -} diff --git a/source/digits_hits/utils/src/G4ScoringBox.cc b/source/digits_hits/utils/src/G4ScoringBox.cc index b16e4a178a..8462584cc3 100644 --- a/source/digits_hits/utils/src/G4ScoringBox.cc +++ b/source/digits_hits/utils/src/G4ScoringBox.cc @@ -39,7 +39,6 @@ #include "G4VScoreColorMap.hh" #include "G4MultiFunctionalDetector.hh" -#include "G4SDParticleFilter.hh" #include "G4VPrimitiveScorer.hh" #include "G4Polyhedron.hh" @@ -61,8 +60,6 @@ G4ScoringBox::G4ScoringBox(G4String wName) fDivisionAxisNames[2] = "Z"; } -G4ScoringBox::~G4ScoringBox() {} - void G4ScoringBox::SetupGeometry(G4VPhysicalVolume* fWorldPhys) { if(verboseLevel > 9) @@ -80,16 +77,11 @@ void G4ScoringBox::SetupGeometry(G4VPhysicalVolume* fWorldPhys) if(verboseLevel > 9) G4cout << fSize[0] << ", " << fSize[1] << ", " << fSize[2] << G4endl; G4VSolid* boxSolid = new G4Box(boxName + "0", fSize[0], fSize[1], fSize[2]); - G4LogicalVolume* boxLogical = - new G4LogicalVolume(boxSolid, 0, boxName + "_0"); + auto boxLogical = + new G4LogicalVolume(boxSolid, nullptr, boxName + "_0"); new G4PVPlacement(fRotationMatrix, fCenterPosition, boxLogical, boxName + "0", worldLogical, false, 0); - // G4double fsegment[3][3]; - // G4int segOrder[3]; - // GetSegmentOrder(fSegmentDirection, fNSegment, segOrder, fsegment); - // EAxis axis[3] = {kXAxis, kYAxis, kZAxis}; - G4String layerName[2] = { boxName + "_1", boxName + "_2" }; G4VSolid* layerSolid[2]; G4LogicalVolume* layerLogical[2]; @@ -99,7 +91,7 @@ void G4ScoringBox::SetupGeometry(G4VPhysicalVolume* fWorldPhys) G4cout << "layer 1 :" << G4endl; layerSolid[0] = new G4Box(layerName[0], fSize[0] / fNSegment[0], fSize[1], fSize[2]); - layerLogical[0] = new G4LogicalVolume(layerSolid[0], 0, layerName[0]); + layerLogical[0] = new G4LogicalVolume(layerSolid[0], nullptr, layerName[0]); if(fNSegment[0] > 1) { if(verboseLevel > 9) @@ -120,7 +112,7 @@ void G4ScoringBox::SetupGeometry(G4VPhysicalVolume* fWorldPhys) { if(verboseLevel > 9) G4cout << "G4ScoringBox::Construct() : Placement" << G4endl; - new G4PVPlacement(0, G4ThreeVector(0., 0., 0.), layerLogical[0], + new G4PVPlacement(nullptr, G4ThreeVector(0., 0., 0.), layerLogical[0], layerName[0], boxLogical, false, 0); } else @@ -141,7 +133,7 @@ void G4ScoringBox::SetupGeometry(G4VPhysicalVolume* fWorldPhys) G4cout << "layer 2 :" << G4endl; layerSolid[1] = new G4Box(layerName[1], fSize[0] / fNSegment[0], fSize[1] / fNSegment[1], fSize[2]); - layerLogical[1] = new G4LogicalVolume(layerSolid[1], 0, layerName[1]); + layerLogical[1] = new G4LogicalVolume(layerSolid[1], nullptr, layerName[1]); if(fNSegment[1] > 1) { if(verboseLevel > 9) @@ -162,7 +154,7 @@ void G4ScoringBox::SetupGeometry(G4VPhysicalVolume* fWorldPhys) { if(verboseLevel > 9) G4cout << "G4ScoringBox::Construct() : Placement" << G4endl; - new G4PVPlacement(0, G4ThreeVector(0., 0., 0.), layerLogical[1], + new G4PVPlacement(nullptr, G4ThreeVector(0., 0., 0.), layerLogical[1], layerName[1], layerLogical[0], false, 0); } else @@ -185,7 +177,7 @@ void G4ScoringBox::SetupGeometry(G4VPhysicalVolume* fWorldPhys) G4VSolid* elementSolid = new G4Box(elementName, fSize[0] / fNSegment[0], fSize[1] / fNSegment[1], fSize[2] / fNSegment[2]); - fMeshElementLogical = new G4LogicalVolume(elementSolid, 0, elementName); + fMeshElementLogical = new G4LogicalVolume(elementSolid, nullptr, elementName); if(fNSegment[2] > 1) { if(verboseLevel > 9) @@ -207,7 +199,7 @@ void G4ScoringBox::SetupGeometry(G4VPhysicalVolume* fWorldPhys) { if(verboseLevel > 9) G4cout << "G4ScoringBox::Construct() : Placement" << G4endl; - new G4PVPlacement(0, G4ThreeVector(0., 0., 0.), fMeshElementLogical, + new G4PVPlacement(nullptr, G4ThreeVector(0., 0., 0.), fMeshElementLogical, elementName, layerLogical[1], false, 0); } else @@ -227,7 +219,7 @@ void G4ScoringBox::SetupGeometry(G4VPhysicalVolume* fWorldPhys) fMeshElementLogical->SetSensitiveDetector(fMFD); // vis. attributes - G4VisAttributes* visatt = new G4VisAttributes(G4Colour(.5, .5, .5)); + auto visatt = new G4VisAttributes(G4Colour(.5, .5, .5)); visatt->SetVisibility(false); layerLogical[0]->SetVisAttributes(visatt); layerLogical[1]->SetVisAttributes(visatt); @@ -247,7 +239,7 @@ void G4ScoringBox::List() const void G4ScoringBox::Draw(RunScore* map, G4VScoreColorMap* colorMap, G4int axflg) { G4VVisManager* pVisManager = G4VVisManager::GetConcreteInstance(); - if(pVisManager) + if(pVisManager != nullptr) { // cell vectors std::vector>> cell; // cell[X][Y][Z] @@ -277,7 +269,7 @@ void G4ScoringBox::Draw(RunScore* map, G4VScoreColorMap* colorMap, G4int axflg) // projections G4int q[3]; - std::map::iterator itr = map->GetMap()->begin(); + auto itr = map->GetMap()->begin(); for(; itr != map->GetMap()->end(); itr++) { GetXYZ(itr->first, q); @@ -342,7 +334,7 @@ void G4ScoringBox::Draw(RunScore* map, G4VScoreColorMap* colorMap, G4int axflg) G4ThreeVector pos2(GetReplicaPosition(x, y, fNSegment[2] - 1) + zhalf); G4Transform3D trans, trans2; - if(fRotationMatrix) + if(fRotationMatrix != nullptr) { trans = G4Rotate3D(*fRotationMatrix).inverse() * G4Translate3D(pos); trans = G4Translate3D(fCenterPosition) * trans; @@ -371,27 +363,6 @@ void G4ScoringBox::Draw(RunScore* map, G4VScoreColorMap* colorMap, G4int axflg) poly2->Transform(trans2); poly2->SetVisAttributes(&att); pVisManager->Draw(*poly2); - - /* - G4double nodes[][3] = - {{-fSize[0]/fNSegment[0], -fSize[1]/fNSegment[1], 0.}, - { fSize[0]/fNSegment[0], -fSize[1]/fNSegment[1], 0.}, - { fSize[0]/fNSegment[0], fSize[1]/fNSegment[1], 0.}, - {-fSize[0]/fNSegment[0], fSize[1]/fNSegment[1], 0.}}; - G4int facets[][4] = {{4, 3, 2, 1}}; - G4int facets2[][4] = {{1, 2, 3, 4}}; - - G4Polyhedron poly, poly2; - poly.createPolyhedron(4, 1, nodes, facets); - poly.Transform(trans); - poly.SetVisAttributes(att); - pVisManager->Draw(poly); - - poly2.createPolyhedron(4, 1, nodes, facets2); - poly2.Transform(trans2); - poly2.SetVisAttributes(att); - pVisManager->Draw(poly2); - */ } } pVisManager->EndDraw(); @@ -415,7 +386,7 @@ void G4ScoringBox::Draw(RunScore* map, G4VScoreColorMap* colorMap, G4int axflg) G4ThreeVector pos2(GetReplicaPosition(fNSegment[0] - 1, y, z) + xhalf); G4Transform3D trans, trans2; - if(fRotationMatrix) + if(fRotationMatrix != nullptr) { trans = G4Rotate3D(*fRotationMatrix).inverse() * G4Translate3D(pos); trans = G4Translate3D(fCenterPosition) * trans; @@ -444,27 +415,6 @@ void G4ScoringBox::Draw(RunScore* map, G4VScoreColorMap* colorMap, G4int axflg) poly2->Transform(trans2); poly2->SetVisAttributes(&att); pVisManager->Draw(*poly2); - - /* - G4double nodes[][3] = - {{0., -fSize[1]/fNSegment[1], -fSize[2]/fNSegment[2]}, - {0., fSize[1]/fNSegment[1], -fSize[2]/fNSegment[2]}, - {0., fSize[1]/fNSegment[1], fSize[2]/fNSegment[2]}, - {0., -fSize[1]/fNSegment[1], fSize[2]/fNSegment[2]}}; - G4int facets[][4] = {{4, 3, 2, 1}}; - G4int facets2[][4] = {{1, 2, 3, 4}}; - - G4Polyhedron poly, poly2; - poly.createPolyhedron(4, 1, nodes, facets); - poly.Transform(trans); - poly.SetVisAttributes(att); - pVisManager->Draw(poly); - - poly2.createPolyhedron(4, 1, nodes, facets2); - poly2.Transform(trans2); - poly2.SetVisAttributes(att); - pVisManager->Draw(poly2); - */ } } pVisManager->EndDraw(); @@ -488,7 +438,7 @@ void G4ScoringBox::Draw(RunScore* map, G4VScoreColorMap* colorMap, G4int axflg) G4ThreeVector pos2(GetReplicaPosition(x, fNSegment[1] - 1, z) + yhalf); G4Transform3D trans, trans2; - if(fRotationMatrix) + if(fRotationMatrix != nullptr) { trans = G4Rotate3D(*fRotationMatrix).inverse() * G4Translate3D(pos); trans = G4Translate3D(fCenterPosition) * trans; @@ -518,27 +468,6 @@ void G4ScoringBox::Draw(RunScore* map, G4VScoreColorMap* colorMap, G4int axflg) poly2->Transform(trans2); poly2->SetVisAttributes(&att); pVisManager->Draw(*poly2); - - /* - G4double nodes[][3] = - {{-fSize[1]/fNSegment[1], 0., -fSize[2]/fNSegment[2]}, - { fSize[1]/fNSegment[1], 0., -fSize[2]/fNSegment[2]}, - { fSize[1]/fNSegment[1], 0., fSize[2]/fNSegment[2]}, - {-fSize[1]/fNSegment[1], 0., fSize[2]/fNSegment[2]}}; - G4int facets[][4] = {{1, 2, 3, 4}}; - G4int facets2[][4] = {{4, 3, 2, 1}}; - - G4Polyhedron poly, poly2; - poly.createPolyhedron(4, 1, nodes, facets); - poly.Transform(trans); - poly.SetVisAttributes(att); - pVisManager->Draw(poly); - - poly2.createPolyhedron(4, 1, nodes, facets2); - poly2.Transform(trans2); - poly2.SetVisAttributes(att); - pVisManager->Draw(poly2); - */ } } pVisManager->EndDraw(); @@ -584,7 +513,7 @@ void G4ScoringBox::DrawColumn(RunScore* map, G4VScoreColorMap* colorMap, return; } G4VVisManager* pVisManager = G4VVisManager::GetConcreteInstance(); - if(pVisManager) + if(pVisManager != nullptr) { pVisManager->BeginDraw(); @@ -616,7 +545,7 @@ void G4ScoringBox::DrawColumn(RunScore* map, G4VScoreColorMap* colorMap, // projections G4int q[3]; - std::map::iterator itr = map->GetMap()->begin(); + auto itr = map->GetMap()->begin(); for(; itr != map->GetMap()->end(); itr++) { GetXYZ(itr->first, q); @@ -687,7 +616,7 @@ void G4ScoringBox::DrawColumn(RunScore* map, G4VScoreColorMap* colorMap, G4ThreeVector pos(GetReplicaPosition(x, y, idxColumn)); G4Transform3D trans; - if(fRotationMatrix) + if(fRotationMatrix != nullptr) { trans = G4Rotate3D(*fRotationMatrix).inverse() * G4Translate3D(pos); trans = G4Translate3D(fCenterPosition) * trans; @@ -724,7 +653,7 @@ void G4ScoringBox::DrawColumn(RunScore* map, G4VScoreColorMap* colorMap, G4ThreeVector pos(GetReplicaPosition(idxColumn, y, z)); G4Transform3D trans; - if(fRotationMatrix) + if(fRotationMatrix != nullptr) { trans = G4Rotate3D(*fRotationMatrix).inverse() * G4Translate3D(pos); trans = G4Translate3D(fCenterPosition) * trans; @@ -761,7 +690,7 @@ void G4ScoringBox::DrawColumn(RunScore* map, G4VScoreColorMap* colorMap, G4ThreeVector pos(GetReplicaPosition(x, idxColumn, z)); G4Transform3D trans; - if(fRotationMatrix) + if(fRotationMatrix != nullptr) { trans = G4Rotate3D(*fRotationMatrix).inverse() * G4Translate3D(pos); trans = G4Translate3D(fCenterPosition) * trans; diff --git a/source/digits_hits/utils/src/G4ScoringCylinder.cc b/source/digits_hits/utils/src/G4ScoringCylinder.cc index b4f6fb08a5..a4d269ad08 100644 --- a/source/digits_hits/utils/src/G4ScoringCylinder.cc +++ b/source/digits_hits/utils/src/G4ScoringCylinder.cc @@ -28,29 +28,22 @@ #include "G4ScoringCylinder.hh" -#include "G4VPhysicalVolume.hh" -#include "G4Tubs.hh" #include "G4LogicalVolume.hh" -#include "G4VPhysicalVolume.hh" +#include "G4MultiFunctionalDetector.hh" +#include "G4PVDivision.hh" #include "G4PVPlacement.hh" #include "G4PVReplica.hh" -#include "G4PVDivision.hh" -#include "G4VisAttributes.hh" -#include "G4VVisManager.hh" -#include "G4VScoreColorMap.hh" - +#include "G4PhysicalConstants.hh" #include "G4SDManager.hh" -#include "G4MultiFunctionalDetector.hh" -#include "G4SDParticleFilter.hh" -#include "G4VPrimitiveScorer.hh" -#include "G4PSEnergyDeposit.hh" -#include "G4PSTrackLength.hh" -#include "G4PSNofStep.hh" #include "G4ScoringManager.hh" #include "G4StatDouble.hh" - -#include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" +#include "G4Tubs.hh" +#include "G4VPhysicalVolume.hh" +#include "G4VPrimitiveScorer.hh" +#include "G4VScoreColorMap.hh" +#include "G4VVisManager.hh" +#include "G4VisAttributes.hh" G4ScoringCylinder::G4ScoringCylinder(G4String wName) : G4VScoringMesh(wName) @@ -62,8 +55,6 @@ G4ScoringCylinder::G4ScoringCylinder(G4String wName) fDivisionAxisNames[2] = "R"; } -G4ScoringCylinder::~G4ScoringCylinder() { ; } - void G4ScoringCylinder::SetupGeometry(G4VPhysicalVolume* fWorldPhys) { if(verboseLevel > 9) @@ -89,7 +80,7 @@ void G4ScoringCylinder::SetupGeometry(G4VPhysicalVolume* fWorldPhys) fSize[2], // Dz fAngle[0], // starting phi fAngle[1]); // segment phi - G4LogicalVolume* tubsLogical = new G4LogicalVolume(tubsSolid, 0, tubsName); + auto tubsLogical = new G4LogicalVolume(tubsSolid, nullptr, tubsName); new G4PVPlacement(fRotationMatrix, fCenterPosition, tubsLogical, tubsName + "0", worldLogical, false, 0); @@ -110,7 +101,7 @@ void G4ScoringCylinder::SetupGeometry(G4VPhysicalVolume* fWorldPhys) fSize[2] / fNSegment[IZ], // half len. in z fAngle[0], // starting phi angle fAngle[1]); // delta angle of the segment - layerLogical[0] = new G4LogicalVolume(layerSolid[0], 0, layerName[0]); + layerLogical[0] = new G4LogicalVolume(layerSolid[0], nullptr, layerName[0]); if(fNSegment[IZ] > 1) { if(verboseLevel > 9) @@ -135,7 +126,7 @@ void G4ScoringCylinder::SetupGeometry(G4VPhysicalVolume* fWorldPhys) { if(verboseLevel > 9) G4cout << "G4ScoringCylinder::Construct() : Placement" << G4endl; - new G4PVPlacement(0, G4ThreeVector(0., 0., 0.), layerLogical[0], + new G4PVPlacement(nullptr, G4ThreeVector(0., 0., 0.), layerLogical[0], layerName[0], tubsLogical, false, 0); } else @@ -151,7 +142,7 @@ void G4ScoringCylinder::SetupGeometry(G4VPhysicalVolume* fWorldPhys) layerSolid[1] = new G4Tubs(layerName[1], fSize[0], fSize[1], fSize[2] / fNSegment[IZ], fAngle[0], fAngle[1] / fNSegment[IPHI]); - layerLogical[1] = new G4LogicalVolume(layerSolid[1], 0, layerName[1]); + layerLogical[1] = new G4LogicalVolume(layerSolid[1], nullptr, layerName[1]); if(fNSegment[IPHI] > 1) { if(verboseLevel > 9) @@ -176,7 +167,7 @@ void G4ScoringCylinder::SetupGeometry(G4VPhysicalVolume* fWorldPhys) { if(verboseLevel > 9) G4cout << "G4ScoringCylinder::Construct() : Placement" << G4endl; - new G4PVPlacement(0, G4ThreeVector(0., 0., 0.), layerLogical[1], + new G4PVPlacement(nullptr, G4ThreeVector(0., 0., 0.), layerLogical[1], layerName[1], layerLogical[0], false, 0); } else @@ -191,7 +182,7 @@ void G4ScoringCylinder::SetupGeometry(G4VPhysicalVolume* fWorldPhys) G4VSolid* elementSolid = new G4Tubs( elementName, fSize[0], (fSize[1] - fSize[0]) / fNSegment[IR] + fSize[0], fSize[2] / fNSegment[IZ], fAngle[0], fAngle[1] / fNSegment[IPHI]); - fMeshElementLogical = new G4LogicalVolume(elementSolid, 0, elementName); + fMeshElementLogical = new G4LogicalVolume(elementSolid, nullptr, elementName); if(fNSegment[IR] >= 1) { if(verboseLevel > 9) @@ -213,12 +204,6 @@ void G4ScoringCylinder::SetupGeometry(G4VPhysicalVolume* fWorldPhys) new G4PVDivision(elementName, fMeshElementLogical, layerLogical[1], kRho, fNSegment[IR], 0.); } - // } else if(fNSegment[IR] == 1) { - // if(verboseLevel > 9) G4cout << "G4ScoringCylinder::Construct() : - // Placement" << G4endl; - // G4cout<<"#@#@#@#@#@ G4ScoringCylinder::Construct() : Placement "<SetSensitiveDetector(fMFD); // vis. attributes - G4VisAttributes* visatt = new G4VisAttributes(G4Colour(.5, .5, .5)); + auto visatt = new G4VisAttributes(G4Colour(.5, .5, .5)); visatt->SetVisibility(true); layerLogical[0]->SetVisAttributes(visatt); layerLogical[1]->SetVisAttributes(visatt); @@ -260,7 +245,7 @@ void G4ScoringCylinder::Draw(RunScore* map, G4VScoreColorMap* colorMap, G4int axflg) { G4VVisManager* pVisManager = G4VVisManager::GetConcreteInstance(); - if(pVisManager) + if(pVisManager != nullptr) { // cell vectors std::vector ephi; @@ -277,7 +262,7 @@ void G4ScoringCylinder::Draw(RunScore* map, G4VScoreColorMap* colorMap, // projections G4int q[3]; - std::map::iterator itr = map->GetMap()->begin(); + auto itr = map->GetMap()->begin(); for(; itr != map->GetMap()->end(); itr++) { if(itr->first < 0) @@ -349,7 +334,7 @@ void G4ScoringCylinder::Draw(RunScore* map, G4VScoreColorMap* colorMap, G4ThreeVector zpos( 0., 0., -fSize[2] + fSize[2] / fNSegment[IZ] * (1 + 2. * z)); G4Transform3D trans; - if(fRotationMatrix) + if(fRotationMatrix != nullptr) { trans = G4Rotate3D(*fRotationMatrix).inverse() * G4Translate3D(zpos); @@ -396,7 +381,7 @@ void G4ScoringCylinder::Draw(RunScore* map, G4VScoreColorMap* colorMap, G4ThreeVector zposn(0., 0., -fSize[2]); G4ThreeVector zposp(0., 0., fSize[2]); G4Transform3D transn, transp; - if(fRotationMatrix) + if(fRotationMatrix != nullptr) { transn = G4Rotate3D(*fRotationMatrix).inverse() * G4Translate3D(zposn); @@ -460,7 +445,7 @@ void G4ScoringCylinder::DrawColumn(RunScore* map, G4VScoreColorMap* colorMap, return; } G4VVisManager* pVisManager = G4VVisManager::GetConcreteInstance(); - if(pVisManager) + if(pVisManager != nullptr) { // cell vectors std::vector>> cell; // cell[R][Z][PHI] @@ -490,7 +475,7 @@ void G4ScoringCylinder::DrawColumn(RunScore* map, G4VScoreColorMap* colorMap, // projections G4int q[3]; - std::map::iterator itr = map->GetMap()->begin(); + auto itr = map->GetMap()->begin(); for(; itr != map->GetMap()->end(); itr++) { if(itr->first < 0) @@ -577,7 +562,7 @@ void G4ScoringCylinder::DrawColumn(RunScore* map, G4VScoreColorMap* colorMap, G4ThreeVector zpos( 0., 0., -fSize[2] + fSize[2] / fNSegment[IZ] * (1 + 2. * z)); G4Transform3D trans; - if(fRotationMatrix) + if(fRotationMatrix != nullptr) { trans = G4Rotate3D(*fRotationMatrix).inverse() * G4Translate3D(zpos); @@ -620,7 +605,7 @@ void G4ScoringCylinder::DrawColumn(RunScore* map, G4VScoreColorMap* colorMap, G4ThreeVector zpos( 0., 0., -fSize[2] + fSize[2] / fNSegment[IZ] * (idxColumn * 2 + 1)); G4Transform3D trans; - if(fRotationMatrix) + if(fRotationMatrix != nullptr) { trans = G4Rotate3D(*fRotationMatrix).inverse() * G4Translate3D(zpos); @@ -664,7 +649,7 @@ void G4ScoringCylinder::DrawColumn(RunScore* map, G4VScoreColorMap* colorMap, G4ThreeVector zpos( 0., 0., -fSize[2] + fSize[2] / fNSegment[IZ] * (2. * z + 1)); G4Transform3D trans; - if(fRotationMatrix) + if(fRotationMatrix != nullptr) { trans = G4Rotate3D(*fRotationMatrix).inverse() * G4Translate3D(zpos); @@ -707,15 +692,13 @@ void G4ScoringCylinder::GetRZPhi(G4int index, G4int q[3]) const q[k] = index - q[j] * fNSegment[k] - q[i] * jk; } -#include "G4UnitsTable.hh" -#include "G4VSolid.hh" -#include "G4SolidStore.hh" -#include "G4LogicalVolume.hh" #include "G4LogicalVolumeStore.hh" #include "G4Material.hh" -#include "G4VSensitiveDetector.hh" -#include "G4VPhysicalVolume.hh" #include "G4PhysicalVolumeStore.hh" +#include "G4SolidStore.hh" +#include "G4UnitsTable.hh" +#include "G4VSensitiveDetector.hh" +#include "G4VSolid.hh" void G4ScoringCylinder::DumpVolumes() { @@ -760,7 +743,7 @@ void G4ScoringCylinder::DumpLogVols(G4int lvl) { G4cout << (*itr)->GetName() << "\t Solid = " << (*itr)->GetSolid()->GetName(); - if((*itr)->GetMaterial()) + if((*itr)->GetMaterial() != nullptr) { G4cout << "\t Material = " << (*itr)->GetMaterial()->GetName() << G4endl; } @@ -771,7 +754,7 @@ void G4ScoringCylinder::DumpLogVols(G4int lvl) if(lvl < 1) continue; G4cout << "\t region = "; - if((*itr)->GetRegion()) + if((*itr)->GetRegion() != nullptr) { G4cout << (*itr)->GetRegion()->GetName(); } @@ -780,7 +763,7 @@ void G4ScoringCylinder::DumpLogVols(G4int lvl) G4cout << "not defined"; } G4cout << "\t sensitive detector = "; - if((*itr)->GetSensitiveDetector()) + if((*itr)->GetSensitiveDetector() != nullptr) { G4cout << (*itr)->GetSensitiveDetector()->GetName(); } @@ -811,7 +794,7 @@ void G4ScoringCylinder::DumpLogVols(G4int lvl) G4cout << G4endl; if(lvl < 2) continue; - if((*itr)->GetMaterial()) + if((*itr)->GetMaterial() != nullptr) { G4cout << "\t weight = " << G4BestUnit((*itr)->GetMass(), "Mass") << G4endl; @@ -840,7 +823,7 @@ void G4ScoringCylinder::DumpPhysVols(G4int lvl) G4cout << (*itr)->GetName() << "\t logical volume = " << (*itr)->GetLogicalVolume()->GetName() << "\t mother logical = "; - if((*itr)->GetMotherLogical()) + if((*itr)->GetMotherLogical() != nullptr) { G4cout << (*itr)->GetMotherLogical()->GetName(); } @@ -854,7 +837,7 @@ void G4ScoringCylinder::DumpPhysVols(G4int lvl) G4cout << (*itr)->GetName() << "\t logical volume = " << (*itr)->GetLogicalVolume()->GetName() << "\t mother logical = "; - if((*itr)->GetMotherLogical()) + if((*itr)->GetMotherLogical() != nullptr) { G4cout << (*itr)->GetMotherLogical()->GetName(); } diff --git a/source/digits_hits/utils/src/G4ScoringManager.cc b/source/digits_hits/utils/src/G4ScoringManager.cc index 2d2f26d483..1a5a641131 100644 --- a/source/digits_hits/utils/src/G4ScoringManager.cc +++ b/source/digits_hits/utils/src/G4ScoringManager.cc @@ -41,7 +41,7 @@ G4ThreadLocal G4int G4ScoringManager::replicaLevel = 3; G4ScoringManager* G4ScoringManager::GetScoringManager() { - if(!fSManager) + if(fSManager == nullptr) { fSManager = new G4ScoringManager; } @@ -68,11 +68,8 @@ G4ScoringManager::G4ScoringManager() } G4ScoringManager::~G4ScoringManager() -{ - if(writer) - { - delete writer; - } +{ + delete writer; delete fDefaultLinearColorMap; delete fColorMapDict; delete fQuantityMessenger; @@ -86,7 +83,7 @@ G4int G4ScoringManager::GetReplicaLevel() { return replicaLevel; } void G4ScoringManager::Accumulate(G4VHitsCollection* map) { auto sm = FindMesh(map); - if(!sm) + if(sm == nullptr) return; if(verboseLevel > 9) { @@ -124,7 +121,7 @@ G4VScoringMesh* G4ScoringManager::FindMesh(const G4String& wName) if(msh->GetWorldName() == wName) return msh; } - if(!sm && verboseLevel > 9) + if((sm == nullptr) && verboseLevel > 9) { G4cout << "WARNING : G4ScoringManager::FindMesh() --- <" << wName << "> is not found. Null returned." << G4endl; @@ -151,10 +148,10 @@ void G4ScoringManager::DrawMesh(const G4String& meshName, const G4String& colorMapName, G4int axflg) { G4VScoringMesh* mesh = FindMesh(meshName); - if(mesh) + if(mesh != nullptr) { G4VScoreColorMap* colorMap = GetScoreColorMap(colorMapName); - if(!colorMap) + if(colorMap == nullptr) { G4cerr << "WARNING : Score color map <" << colorMapName << "> is not found. Default linear color map is used." << G4endl; @@ -174,10 +171,10 @@ void G4ScoringManager::DrawMesh(const G4String& meshName, G4int iColumn, const G4String& colorMapName) { G4VScoringMesh* mesh = FindMesh(meshName); - if(mesh) + if(mesh != nullptr) { G4VScoreColorMap* colorMap = GetScoreColorMap(colorMapName); - if(!colorMap) + if(colorMap == nullptr) { G4cerr << "WARNING : Score color map <" << colorMapName << "> is not found. Default linear color map is used." << G4endl; @@ -198,7 +195,7 @@ void G4ScoringManager::DumpQuantityToFile(const G4String& meshName, const G4String& option) { G4VScoringMesh* mesh = FindMesh(meshName); - if(mesh) + if(mesh != nullptr) { writer->SetScoringMesh(mesh); writer->DumpQuantityToFile(psName, fileName, option); @@ -215,7 +212,7 @@ void G4ScoringManager::DumpAllQuantitiesToFile(const G4String& meshName, const G4String& option) { G4VScoringMesh* mesh = FindMesh(meshName); - if(mesh) + if(mesh != nullptr) { writer->SetScoringMesh(mesh); writer->DumpAllQuantitiesToFile(fileName, option); @@ -229,7 +226,7 @@ void G4ScoringManager::DumpAllQuantitiesToFile(const G4String& meshName, void G4ScoringManager::RegisterScoreColorMap(G4VScoreColorMap* colorMap) { - if(fColorMapDict->find(colorMap->GetName()) != fColorMapDict->end()) + if(fColorMapDict->find(colorMap->GetName()) != fColorMapDict->cend()) { G4cerr << "ERROR : G4ScoringManager::RegisterScoreColorMap -- " << colorMap->GetName() @@ -243,8 +240,8 @@ void G4ScoringManager::RegisterScoreColorMap(G4VScoreColorMap* colorMap) G4VScoreColorMap* G4ScoringManager::GetScoreColorMap(const G4String& mapName) { - ColorMapDictItr mItr = fColorMapDict->find(mapName); - if(mItr == fColorMapDict->end()) + auto mItr = fColorMapDict->find(mapName); + if(mItr == fColorMapDict->cend()) { return nullptr; } @@ -256,8 +253,8 @@ void G4ScoringManager::ListScoreColorMaps() G4cout << "Registered Score Color Maps " "-------------------------------------------------------" << G4endl; - ColorMapDictItr mItr = fColorMapDict->begin(); - for(; mItr != fColorMapDict->end(); mItr++) + auto mItr = fColorMapDict->cbegin(); + for(; mItr != fColorMapDict->cend(); ++mItr) { G4cout << " " << mItr->first; } @@ -266,7 +263,7 @@ void G4ScoringManager::ListScoreColorMaps() void G4ScoringManager::Merge(const G4ScoringManager* mgr) { - for(size_t i = 0; i < GetNumberOfMesh(); i++) + for(G4int i = 0; i < (G4int)GetNumberOfMesh(); ++i) { G4VScoringMesh* fMesh = GetMesh(i); G4VScoringMesh* scMesh = mgr->GetMesh(i); diff --git a/source/digits_hits/utils/src/G4ScoringMessenger.cc b/source/digits_hits/utils/src/G4ScoringMessenger.cc index 4eaa14f2e7..1b7ce8d183 100644 --- a/source/digits_hits/utils/src/G4ScoringMessenger.cc +++ b/source/digits_hits/utils/src/G4ScoringMessenger.cc @@ -78,12 +78,7 @@ G4ScoringMessenger::G4ScoringMessenger(G4ScoringManager* SManager) new G4UIcmdWithAString("/score/create/cylinderMesh", this); meshCylinderCreateCmd->SetGuidance("Create scoring mesh."); meshCylinderCreateCmd->SetParameterName("MeshName", false); - // - // meshSphereCreateCmd = new - // G4UIcmdWithAString("/score/create/sphereMesh",this); - // meshSphereCreateCmd->SetGuidance("Create scoring mesh."); - // meshSphereCreateCmd->SetParameterName("MeshName",false); - // + meshRWLogVolCreateCmd = new G4UIcommand("/score/create/realWorldLogVol", this); meshRWLogVolCreateCmd->SetGuidance( @@ -115,7 +110,7 @@ G4ScoringMessenger::G4ScoringMessenger(G4ScoringManager* SManager) param->SetDefaultUnit("mm"); probeCreateCmd->SetParameter(param); param = new G4UIparameter("checkOverlap", 'b', true); - param->SetDefaultValue(false); + param->SetDefaultValue(0); probeCreateCmd->SetParameter(param); // meshOpnCmd = new G4UIcmdWithAString("/score/open", this); @@ -124,11 +119,7 @@ G4ScoringMessenger::G4ScoringMessenger(G4ScoringManager* SManager) // meshClsCmd = new G4UIcmdWithoutParameter("/score/close", this); meshClsCmd->SetGuidance("Close scoring mesh."); - // - // meshActCmd = new G4UIcmdWithABool("/score/mesh/activate",this); - // meshActCmd->SetGuidance("Activate scoring mesh."); - // meshActCmd->SetParameterName("MeshName",false); - // + meshDir = new G4UIdirectory("/score/mesh/"); meshDir->SetGuidance(" Mesh processing commands."); // @@ -186,9 +177,7 @@ G4ScoringMessenger::G4ScoringMessenger(G4ScoringManager* SManager) mBinCmd->SetGuidance(" Nr :(int) Number of bins in radial axis "); mBinCmd->SetGuidance(" Nz :(int) Number of bins in z axis "); mBinCmd->SetGuidance(" Nphi:(int) Number of bins in phi axis "); - // mBinCmd->SetGuidance(" Axis:(int) Axis of division "); - // mBinCmd->SetGuidance(" P1..Pn-1 :(double) \"paramter from P1 to Pn-1 for - // division.\""); + param = new G4UIparameter("Ni", 'i', false); param->SetDefaultValue("1"); param->SetParameterRange("Ni>0"); @@ -201,10 +190,7 @@ G4ScoringMessenger::G4ScoringMessenger(G4ScoringManager* SManager) param->SetDefaultValue("1"); mBinCmd->SetParameter(param); param->SetParameterRange("Nk>0"); - // param = new G4UIparameter("Axis",'i',true); - // param->SetDefaultValue("3"); - // mBinCmd->SetParameter(param); - // + // Placement command mTransDir = new G4UIdirectory("/score/mesh/translate/"); mTransDir->SetGuidance("Mesh translation commands."); @@ -219,10 +205,7 @@ G4ScoringMessenger::G4ScoringMessenger(G4ScoringManager* SManager) // mRotDir = new G4UIdirectory("/score/mesh/rotate/"); mRotDir->SetGuidance("Mesh rotation commands."); - // - // mRResetCmd = new G4UIcmdWithoutParameter("/score/mesh/rotate/reset",this); - // mRResetCmd->SetGuidance("Reset rotation angles of the scoring mesh."); - // + mRotXCmd = new G4UIcmdWithADoubleAndUnit("/score/mesh/rotate/rotateX", this); mRotXCmd->SetGuidance("Rotate the scoring mesh in X axis."); mRotXCmd->SetParameterName("Rx", false); @@ -328,26 +311,6 @@ G4ScoringMessenger::G4ScoringMessenger(G4ScoringManager* SManager) colorMapMinMaxCmd->SetParameter(param); colorMapMinMaxCmd->SetToBeBroadcasted(false); - /* - chartCmd = new G4UIcommand("/score/drawChart",this); - chartCmd->SetGuidance("Draw color chart on the screen."); - chartCmd->SetGuidance("[usage] /score/drawChart"); - chartCmd->SetGuidance(" mesh :(String) Mesh name."); - chartCmd->SetGuidance(" psname :(String) PS name."); - chartCmd->SetGuidance(" On/Off :(boolean) On or Off the color chart."); - chartCmd->SetGuidance(" scale :(String) default=linear, or log "); - param = new G4UIparameter("meshName",'s',false); - chartCmd->SetParameter(param); - param = new G4UIparameter("psName",'s',false); - chartCmd->SetParameter(param); - param = new G4UIparameter("On",'s',true); - param->SetDefaultValue("true"); - chartCmd->SetParameter(param); - param = new G4UIparameter("scale",'s',true); - param->SetDefaultValue("linear"); - chartCmd->SetParameter(param); - */ - // Dump a scored quantity dumpQtyToFileCmd = new G4UIcommand("/score/dumpQuantityToFile", this); dumpQtyToFileCmd->SetGuidance("Dump one scored quantity to file."); @@ -439,26 +402,22 @@ G4ScoringMessenger::~G4ScoringMessenger() delete meshRWLogVolCreateCmd; delete probeCreateCmd; delete meshCreateDir; - // delete meshSphereCreateCmd; // delete meshOpnCmd; // delete meshClsCmd; - // delete meshActCmd; delete meshDir; // delete mBoxSizeCmd; delete mCylinderSizeCmd; delete mCylinderRMinCmd; delete mCylinderAngleCmd; - // delete mSphereSizeCmd; // delete mBinCmd; // delete mTResetCmd; delete mTXyzCmd; delete mTransDir; - // delete mRResetCmd; delete mRotXCmd; delete mRotYCmd; delete mRotZCmd; @@ -468,7 +427,6 @@ G4ScoringMessenger::~G4ScoringMessenger() delete probeMatCmd; delete probeDir; // - // delete chartCmd; delete dumpCmd; delete drawCmd; delete drawColumnCmd; @@ -515,13 +473,6 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) G4int iColumn = StoI(next()); G4String colorMapName = next(); fSMan->DrawMesh(meshName, psName, iPlane, iColumn, colorMapName); - // } else if(command==chartCmd ){ - // G4Tokenizer next(newVal); - // G4String meshName = next(); - // G4String psName = next(); - // //G4bool onFlag = StoB(next()); - // G4String scaleOption = next(); - // fSMan->DrawChart(meshName,psName,onFlag,scaleOption); } else if(command == dumpQtyToFileCmd) { @@ -531,7 +482,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) G4String fileName = next(); G4String option = next("\n"); auto mesh = fSMan->FindMesh(meshName); - if(!mesh) + if(mesh == nullptr) { G4ExceptionDescription ed; ed << "Mesh name <" << meshName << "> is not found. Command ignored."; @@ -549,7 +500,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) G4double fac = StoD(next()); G4String option = next("\n"); auto mesh = fSMan->FindMesh(meshName); - if(!mesh) + if(mesh == nullptr) { G4ExceptionDescription ed; ed << "Mesh name <" << meshName << "> is not found. Command ignored."; @@ -567,7 +518,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) G4String fileName = next(); G4String option = next("\n"); auto mesh = fSMan->FindMesh(meshName); - if(!mesh) + if(mesh == nullptr) { G4ExceptionDescription ed; ed << "Mesh name <" << meshName << "> is not found. Command ignored."; @@ -584,7 +535,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) G4double fac = StoD(next()); G4String option = next("\n"); auto mesh = fSMan->FindMesh(meshName); - if(!mesh) + if(mesh == nullptr) { G4ExceptionDescription ed; ed << "Mesh name <" << meshName << "> is not found. Command ignored."; @@ -606,7 +557,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) else if(command == meshBoxCreateCmd) { G4VScoringMesh* currentmesh = fSMan->GetCurrentMesh(); - if(currentmesh) + if(currentmesh != nullptr) { G4ExceptionDescription ed; ed << "ERROR[" << meshBoxCreateCmd->GetCommandPath() << "] : Mesh <" @@ -617,7 +568,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) else { G4VScoringMesh* mesh = fSMan->FindMesh(newVal); - if(!mesh) + if(mesh == nullptr) { mesh = new G4ScoringBox(newVal); fSMan->RegisterScoringMesh(mesh); @@ -635,7 +586,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) else if(command == meshCylinderCreateCmd) { G4VScoringMesh* currentmesh = fSMan->GetCurrentMesh(); - if(currentmesh) + if(currentmesh != nullptr) { G4ExceptionDescription ed; ed << "ERROR[" << meshCylinderCreateCmd->GetCommandPath() << "] : Mesh <" @@ -646,7 +597,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) else { G4VScoringMesh* mesh = fSMan->FindMesh(newVal); - if(!mesh) + if(mesh == nullptr) { mesh = new G4ScoringCylinder(newVal); fSMan->RegisterScoringMesh(mesh); @@ -664,7 +615,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) else if(command == meshRWLogVolCreateCmd) { auto mesh = fSMan->GetCurrentMesh(); - if(mesh) + if(mesh != nullptr) { G4ExceptionDescription ed; ed << "ERROR[" << meshRWLogVolCreateCmd->GetCommandPath() << "] : Mesh <" @@ -678,7 +629,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) G4String meshName = next(); G4int idx = StoI(next()); mesh = fSMan->FindMesh(meshName); - if(!mesh) + if(mesh == nullptr) { mesh = new G4ScoringRealWorld(meshName); mesh->SetCopyNumberLevel(idx); @@ -697,7 +648,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) else if(command == probeCreateCmd) { auto mesh = fSMan->GetCurrentMesh(); - if(mesh) + if(mesh != nullptr) { G4ExceptionDescription ed; ed << "ERROR[" << meshRWLogVolCreateCmd->GetCommandPath() << "] : Mesh <" @@ -713,7 +664,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) halfSize *= G4UIcommand::ValueOf(next()); G4bool checkOverlap = StoB(next()); mesh = fSMan->FindMesh(qname); - if(!mesh) + if(mesh == nullptr) { mesh = new G4ScoringProbe(qname, halfSize, checkOverlap); fSMan->RegisterScoringMesh(mesh); @@ -730,7 +681,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) else if(command == probeMatCmd || command == probeLocateCmd) { auto mesh = fSMan->GetCurrentMesh(); - if(!mesh) + if(mesh == nullptr) { G4ExceptionDescription ed; ed << "ERROR : No mesh is currently open. Open/create a mesh first. " @@ -774,7 +725,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) else if(command == floatMinMaxCmd) { G4VScoreColorMap* colorMap = fSMan->GetScoreColorMap(newVal); - if(colorMap) + if(colorMap != nullptr) { colorMap->SetFloatingMinMax(true); } @@ -793,7 +744,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) G4double minVal = StoD(next()); G4double maxVal = StoD(next()); G4VScoreColorMap* colorMap = fSMan->GetScoreColorMap(mapName); - if(colorMap) + if(colorMap != nullptr) { colorMap->SetFloatingMinMax(false); colorMap->SetMinMax(minVal, maxVal); @@ -809,7 +760,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) else if(command == meshOpnCmd) { G4VScoringMesh* currentmesh = fSMan->GetCurrentMesh(); - if(currentmesh) + if(currentmesh != nullptr) { G4ExceptionDescription ed; ed << "ERROR[" << meshOpnCmd->GetCommandPath() << "] : Mesh <" @@ -820,7 +771,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) else { G4VScoringMesh* mesh = fSMan->FindMesh(newVal); - if(!mesh) + if(mesh == nullptr) { G4ExceptionDescription ed; ed << "ERROR[" << meshOpnCmd->GetCommandPath() << "] : Scoring mesh <" @@ -845,7 +796,7 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) G4VScoringMesh* mesh = fSMan->GetCurrentMesh(); // // Commands for Current Mesh - if(mesh) + if(mesh != nullptr) { MeshShape shape = mesh->GetShape(); if(shape == MeshShape::realWorldLogVol) @@ -863,10 +814,6 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) FillTokenVec(newVal, token); // // Mesh Geometry - // - // if(command==meshActCmd) { - // mesh->Activate(meshActCmd->GetNewBoolValue(newVal)); - // } else if(command == mBoxSizeCmd) { if(shape == MeshShape::box) @@ -943,7 +890,6 @@ void G4ScoringMessenger::SetNewValue(G4UIcommand* command, G4String newVal) centerPosition[1] = xyz.y(); centerPosition[2] = xyz.z(); mesh->SetCenterPosition(centerPosition); - // } else if(command==mRResetCmd) { } else if(command == mRotXCmd) { @@ -1000,7 +946,7 @@ void G4ScoringMessenger::MeshBinCommand(G4VScoringMesh* mesh, G4TokenVec& token) G4int Nk = StoI(token[2]); G4int nSegment[3]; - if(dynamic_cast(mesh)) + if(dynamic_cast(mesh) != nullptr) { G4cout << ".... G4ScoringMessenger::MeshBinCommand - G4ScoringBox" << G4endl; @@ -1008,7 +954,7 @@ void G4ScoringMessenger::MeshBinCommand(G4VScoringMesh* mesh, G4TokenVec& token) nSegment[1] = Nj; nSegment[2] = Nk; } - else if(dynamic_cast(mesh)) + else if(dynamic_cast(mesh) != nullptr) { G4cout << ".... G4ScoringMessenger::MeshBinCommand - G4ScoringCylinder" << G4endl; @@ -1040,7 +986,7 @@ void G4ScoringMessenger::Fill1D(G4UIcommand* cmd, G4String newVal) G4int copyNo = StoI(next()); auto filler = G4VScoreHistFiller::Instance(); - if(!filler) + if(filler == nullptr) { G4ExceptionDescription ed; ed << "G4TScoreHistFiller is not instantiated in this application."; diff --git a/source/digits_hits/utils/src/G4ScoringProbe.cc b/source/digits_hits/utils/src/G4ScoringProbe.cc index 10ce53f2fc..09a20b1275 100644 --- a/source/digits_hits/utils/src/G4ScoringProbe.cc +++ b/source/digits_hits/utils/src/G4ScoringProbe.cc @@ -38,7 +38,6 @@ #include "G4NistManager.hh" #include "G4MultiFunctionalDetector.hh" -#include "G4SDParticleFilter.hh" #include "G4VPrimitiveScorer.hh" #include "G4ScoringManager.hh" @@ -68,13 +67,11 @@ G4ScoringProbe::G4ScoringProbe(G4String lvName, G4double half_size, } } -G4ScoringProbe::~G4ScoringProbe() {} - void G4ScoringProbe::List() const { G4cout << "G4ScoringProbe : " << logVolName << G4endl; - G4int np = posVec.size(); - for(G4int i = 0; i < np; i++) + std::size_t np = posVec.size(); + for(std::size_t i = 0; i < np; ++i) { G4cout << " >> probe #" << i << " at " << posVec[i] << G4endl; } @@ -102,17 +99,17 @@ void G4ScoringProbe::SetupGeometry(G4VPhysicalVolume* worldPhys) fMeshElementLogical = new G4LogicalVolume(boxSolid, layeredMaterial, logVolName + "_log"); - G4int np = posVec.size(); - for(G4int i = 0; i < np; i++) + std::size_t np = posVec.size(); + for(std::size_t i = 0; i < np; ++i) { - new G4PVPlacement(0, posVec[i], fMeshElementLogical, logVolName + "_phy", - worldLog, false, i, chkOverlap); + new G4PVPlacement(nullptr, posVec[i], fMeshElementLogical, logVolName + "_phy", + worldLog, false, (G4int)i, chkOverlap); } - G4VisAttributes* wisatt = new G4VisAttributes(G4Colour(.5, .5, .5)); + auto wisatt = new G4VisAttributes(G4Colour(.5, .5, .5)); wisatt->SetVisibility(false); worldLog->SetVisAttributes(wisatt); - G4VisAttributes* visatt = new G4VisAttributes(G4Colour(.5, .5, .5)); + auto visatt = new G4VisAttributes(G4Colour(.5, .5, .5)); visatt->SetVisibility(true); fMeshElementLogical->SetVisAttributes(visatt); } @@ -141,7 +138,7 @@ G4bool G4ScoringProbe::SetMaterial(G4String val) else { auto mat = G4NistManager::Instance()->FindOrBuildMaterial(val); - if(!mat) + if(mat == nullptr) { return false; } diff --git a/source/digits_hits/utils/src/G4ScoringRealWorld.cc b/source/digits_hits/utils/src/G4ScoringRealWorld.cc index d8e0ce1d69..83f3723224 100644 --- a/source/digits_hits/utils/src/G4ScoringRealWorld.cc +++ b/source/digits_hits/utils/src/G4ScoringRealWorld.cc @@ -32,7 +32,6 @@ #include "G4Region.hh" #include "G4MultiFunctionalDetector.hh" -#include "G4SDParticleFilter.hh" #include "G4VPrimitiveScorer.hh" #include "G4ScoringManager.hh" @@ -51,8 +50,6 @@ G4ScoringRealWorld::G4ScoringRealWorld(G4String lvName) SetNumberOfSegments(nBin); } -G4ScoringRealWorld::~G4ScoringRealWorld() {} - void G4ScoringRealWorld::List() const { G4cout << "G4ScoringRealWorld : " << logVolName << G4endl; @@ -88,7 +85,7 @@ void G4ScoringRealWorld::SetupGeometry(G4VPhysicalVolume*) SetNumberOfSegments(nBin); // check if this logical volume belongs to the real world auto region = (*itr)->GetRegion(); - if(region && !(region->IsInMassGeometry())) + if((region != nullptr) && !(region->IsInMassGeometry())) { G4ExceptionDescription ed; ed << "Logical Volume with name <" << logVolName diff --git a/source/digits_hits/utils/src/G4VScoreColorMap.cc b/source/digits_hits/utils/src/G4VScoreColorMap.cc index 64d847a8d3..b4af209569 100644 --- a/source/digits_hits/utils/src/G4VScoreColorMap.cc +++ b/source/digits_hits/utils/src/G4VScoreColorMap.cc @@ -41,20 +41,12 @@ G4VScoreColorMap::G4VScoreColorMap(G4String mName) : fName(mName) - , ifFloat(true) - , fMinVal(0.) - , fMaxVal(DBL_MAX) - , fVisManager(nullptr) -{ - ; -} - -G4VScoreColorMap::~G4VScoreColorMap() { ; } +{} void G4VScoreColorMap::DrawColorChart(G4int _nPoint) { fVisManager = G4VVisManager::GetConcreteInstance(); - if(!fVisManager) + if(fVisManager == nullptr) { G4cerr << "G4VScoringMesh::DrawColorChart(): no visualization system" << G4endl; @@ -116,13 +108,9 @@ void G4VScoreColorMap::DrawColorChartText(G4int _nPoint) } // text - // char cstring[80]; - // std::sprintf(cstring, "%8.2e", v); - // G4String value(cstring); std::ostringstream oss; oss << std::setw(8) << std::setprecision(1) << std::scientific << v; - std::string str = oss.str(); - G4String value = str; //.c_str()); + G4String value = oss.str(); G4Text text(value, G4Point3D(-0.9, -0.9 + 0.05 * n, 0.4)); G4double size = 12.; @@ -147,7 +135,6 @@ void G4VScoreColorMap::DrawColorChartText(G4int _nPoint) line.push_back( G4Point3D(-0.92 + 0.025 * lpsname, -0.965 + 0.002 * l, 0.)); G4VisAttributes attblack(black); - // G4VisAttributes attblack(G4Colour(.5, .5, 1.)); line.SetVisAttributes(&attblack); fVisManager->Draw2D(line); } @@ -173,7 +160,6 @@ void G4VScoreColorMap::DrawColorChartText(G4int _nPoint) line.push_back(G4Point3D(-0.7, -0.9 + 0.002 * l, 0.)); line.push_back(G4Point3D(-0.7 + 0.025 * len, -0.9 + 0.002 * l, 0.)); G4VisAttributes attblack(black); - // G4VisAttributes attblack(G4Colour(.5, .5, .5)); line.SetVisAttributes(&attblack); fVisManager->Draw2D(line); } diff --git a/source/digits_hits/utils/src/G4VScoreNtupleWriter.cc b/source/digits_hits/utils/src/G4VScoreNtupleWriter.cc index 8437071291..38f921372d 100644 --- a/source/digits_hits/utils/src/G4VScoreNtupleWriter.cc +++ b/source/digits_hits/utils/src/G4VScoreNtupleWriter.cc @@ -30,8 +30,8 @@ #include "G4VScoreNtupleWriter.hh" //_____________________________________________________________________________ -G4VScoreNtupleWriter* G4VScoreNtupleWriter::fgMasterInstance = 0; -G4ThreadLocal G4VScoreNtupleWriter* G4VScoreNtupleWriter::fgInstance = 0; +G4VScoreNtupleWriter* G4VScoreNtupleWriter::fgMasterInstance = nullptr; +G4ThreadLocal G4VScoreNtupleWriter* G4VScoreNtupleWriter::fgInstance = nullptr; //_____________________________________________________________________________ G4VScoreNtupleWriter* G4VScoreNtupleWriter::Instance() @@ -42,9 +42,9 @@ G4VScoreNtupleWriter* G4VScoreNtupleWriter::Instance() G4bool isMaster = !G4Threading::IsWorkerThread(); - if((!isMaster) && (!fgInstance)) + if((!isMaster) && (fgInstance == nullptr)) { - if(fgMasterInstance) + if(fgMasterInstance != nullptr) { fgInstance = fgMasterInstance->CreateInstance(); } @@ -53,16 +53,12 @@ G4VScoreNtupleWriter* G4VScoreNtupleWriter::Instance() return fgInstance; } -// -// ctor, dtor -// - //_____________________________________________________________________________ G4VScoreNtupleWriter::G4VScoreNtupleWriter() { G4bool isMaster = !G4Threading::IsWorkerThread(); - if(isMaster && fgMasterInstance) + if(isMaster && (fgMasterInstance != nullptr)) { G4ExceptionDescription description; description << " " @@ -71,7 +67,7 @@ G4VScoreNtupleWriter::G4VScoreNtupleWriter() G4Exception("G4VScoreNtupleWriter::G4VScoreNtupleWriter()", "Analysis_F001", FatalException, description); } - if(fgInstance) + if(fgInstance != nullptr) { G4ExceptionDescription description; description << " " @@ -86,4 +82,4 @@ G4VScoreNtupleWriter::G4VScoreNtupleWriter() } //_____________________________________________________________________________ -G4VScoreNtupleWriter::~G4VScoreNtupleWriter() { fgInstance = 0; } +G4VScoreNtupleWriter::~G4VScoreNtupleWriter() { fgInstance = nullptr; } diff --git a/source/digits_hits/utils/src/G4VScoreWriter.cc b/source/digits_hits/utils/src/G4VScoreWriter.cc index f0ab821368..0a95928923 100644 --- a/source/digits_hits/utils/src/G4VScoreWriter.cc +++ b/source/digits_hits/utils/src/G4VScoreWriter.cc @@ -29,25 +29,15 @@ #include "G4VScoreWriter.hh" #include "G4MultiFunctionalDetector.hh" -#include "G4SDParticleFilter.hh" #include "G4VPrimitiveScorer.hh" #include "G4VScoringMesh.hh" #include #include -G4VScoreWriter::G4VScoreWriter() - : fScoringMesh(nullptr) - , verboseLevel(0) - , fact(1.0) -{ - fNMeshSegments[0] = fNMeshSegments[1] = fNMeshSegments[2] = 0; -} - -G4VScoreWriter::~G4VScoreWriter() {} - void G4VScoreWriter::SetScoringMesh(G4VScoringMesh* sm) { + // Should be checked for nullptr! fScoringMesh = sm; fScoringMesh->GetNumberOfSegments(fNMeshSegments); } @@ -61,7 +51,7 @@ void G4VScoreWriter::DumpQuantityToFile(const G4String& psName, std::transform(opt.begin(), opt.end(), opt.begin(), (int (*)(int))(tolower)); // confirm the option - if(opt.size() == 0) + if(opt.empty()) opt = "csv"; if(opt.find("csv") == std::string::npos && opt.find("sequence") == std::string::npos) @@ -83,6 +73,7 @@ void G4VScoreWriter::DumpQuantityToFile(const G4String& psName, // retrieve the map MeshScoreMap fSMap = fScoringMesh->GetScoreMap(); + // NOLINTNEXTLINE(modernize-use-auto): Explicitly want a const_iterator MeshScoreMap::const_iterator msMapItr = fSMap.find(psName); if(msMapItr == fSMap.end()) { @@ -107,7 +98,7 @@ void G4VScoreWriter::DumpQuantityToFile(const G4String& psName, << ", i" << divisionAxisNames[2]; // unit of scored value ofile << ", total(value) "; - if(unit.size() > 0) + if(!unit.empty()) ofile << "[" << unit << "]"; ofile << ", total(val^2), entry" << G4endl; @@ -132,7 +123,7 @@ void G4VScoreWriter::DumpQuantityToFile(const G4String& psName, if(opt.find("csv") != std::string::npos) ofile << x << "," << y << "," << z << ","; - std::map::iterator value = score->find(idx); + auto value = score->find(idx); if(value == score->end()) { ofile << 0. << "," << 0. << "," << 0; @@ -173,7 +164,7 @@ void G4VScoreWriter::DumpAllQuantitiesToFile(const G4String& fileName, std::transform(opt.begin(), opt.end(), opt.begin(), (int (*)(int))(tolower)); // confirm the option - if(opt.size() == 0) + if(opt.empty()) opt = "csv"; if(opt.find("csv") == std::string::npos && opt.find("sequence") == std::string::npos) @@ -196,8 +187,9 @@ void G4VScoreWriter::DumpAllQuantitiesToFile(const G4String& fileName, } // retrieve the map - using MeshScoreMap = G4VScoringMesh::MeshScoreMap; - MeshScoreMap fSMap = fScoringMesh->GetScoreMap(); + using MeshScoreMap = G4VScoringMesh::MeshScoreMap; + MeshScoreMap fSMap = fScoringMesh->GetScoreMap(); + // NOLINTNEXTLINE(modernize-use-auto): Explicitly want a const_iterator MeshScoreMap::const_iterator msMapItr = fSMap.begin(); std::map* score; for(; msMapItr != fSMap.end(); msMapItr++) @@ -216,7 +208,7 @@ void G4VScoreWriter::DumpAllQuantitiesToFile(const G4String& fileName, << ", i" << divisionAxisNames[2]; // unit of scored value ofile << ", total(value) "; - if(unit.size() > 0) + if(!unit.empty()) ofile << "[" << unit << "]"; ofile << ", total(val^2), entry" << G4endl; @@ -241,7 +233,7 @@ void G4VScoreWriter::DumpAllQuantitiesToFile(const G4String& fileName, if(opt.find("csv") != std::string::npos) ofile << x << "," << y << "," << z << ","; - std::map::iterator value = score->find(idx); + auto value = score->find(idx); if(value == score->end()) { ofile << 0. << "," << 0. << "," << 0; @@ -278,6 +270,5 @@ void G4VScoreWriter::DumpAllQuantitiesToFile(const G4String& fileName, G4int G4VScoreWriter::GetIndex(G4int x, G4int y, G4int z) const { - // return x + y*fNMeshSegments[0] + z*fNMeshSegments[0]*fNMeshSegments[1]; return x * fNMeshSegments[1] * fNMeshSegments[2] + y * fNMeshSegments[2] + z; } diff --git a/source/digits_hits/utils/src/G4VScoringMesh.cc b/source/digits_hits/utils/src/G4VScoringMesh.cc index 19afca1fa6..3c26bb97af 100644 --- a/source/digits_hits/utils/src/G4VScoringMesh.cc +++ b/source/digits_hits/utils/src/G4VScoringMesh.cc @@ -70,13 +70,11 @@ G4VScoringMesh::G4VScoringMesh(const G4String& wName) fDivisionAxisNames[0] = fDivisionAxisNames[1] = fDivisionAxisNames[2] = ""; } -G4VScoringMesh::~G4VScoringMesh() { ; } - void G4VScoringMesh::ResetScore() { if(verboseLevel > 9) G4cout << "G4VScoringMesh::ResetScore() is called." << G4endl; - for(auto mp : fMap) + for(const auto& mp : fMap) { if(verboseLevel > 9) G4cout << "G4VScoringMesh::ResetScore()" << mp.first << G4endl; @@ -89,7 +87,7 @@ void G4VScoringMesh::SetSize(G4double size[3]) if(!sizeIsSet) { sizeIsSet = true; - for(int i = 0; i < 3; i++) + for(G4int i = 0; i < 3; ++i) { fSize[i] = size[i]; } @@ -102,13 +100,14 @@ void G4VScoringMesh::SetSize(G4double size[3]) "DigiHitsUtilsScoreVScoringMesh000", JustWarning, message); } } + G4ThreeVector G4VScoringMesh::GetSize() const { if(sizeIsSet) return G4ThreeVector(fSize[0], fSize[1], fSize[2]); - else - return G4ThreeVector(0., 0., 0.); + return G4ThreeVector(0., 0., 0.); } + void G4VScoringMesh::SetAngles(G4double startAngle, G4double spanAngle) { fAngle[0] = startAngle; @@ -120,12 +119,13 @@ void G4VScoringMesh::SetCenterPosition(G4double centerPosition[3]) fCenterPosition = G4ThreeVector(centerPosition[0], centerPosition[1], centerPosition[2]); } + void G4VScoringMesh::SetNumberOfSegments(G4int nSegment[3]) { if(!nMeshIsSet || fShape == MeshShape::realWorldLogVol || fShape == MeshShape::probe) { - for(int i = 0; i < 3; i++) + for(G4int i = 0; i < 3; ++i) fNSegment[i] = nSegment[i]; nMeshIsSet = true; } @@ -137,28 +137,30 @@ void G4VScoringMesh::SetNumberOfSegments(G4int nSegment[3]) "DigiHitsUtilsScoreVScoringMesh000", JustWarning, message); } } + void G4VScoringMesh::GetNumberOfSegments(G4int nSegment[3]) { - for(int i = 0; i < 3; i++) + for(G4int i = 0; i < 3; ++i) nSegment[i] = fNSegment[i]; } + void G4VScoringMesh::RotateX(G4double delta) { - if(!fRotationMatrix) + if(fRotationMatrix == nullptr) fRotationMatrix = new G4RotationMatrix(); fRotationMatrix->rotateX(delta); } void G4VScoringMesh::RotateY(G4double delta) { - if(!fRotationMatrix) + if(fRotationMatrix == nullptr) fRotationMatrix = new G4RotationMatrix(); fRotationMatrix->rotateY(delta); } void G4VScoringMesh::RotateZ(G4double delta) { - if(!fRotationMatrix) + if(fRotationMatrix == nullptr) fRotationMatrix = new G4RotationMatrix(); fRotationMatrix->rotateZ(delta); } @@ -182,14 +184,14 @@ void G4VScoringMesh::SetPrimitiveScorer(G4VPrimitiveScorer* prs) prs->SetNijk(fNSegment[0], fNSegment[1], fNSegment[2]); fCurrentPS = prs; fMFD->RegisterPrimitive(prs); - G4THitsMap* map = + auto map = new G4THitsMap(fWorldName, prs->GetName()); fMap[prs->GetName()] = map; } void G4VScoringMesh::SetFilter(G4VSDFilter* filter) { - if(!fCurrentPS) + if(fCurrentPS == nullptr) { G4cerr << "ERROR : G4VScoringMesh::SetSDFilter() : a quantity must be " "defined first. This method is ignored." @@ -201,7 +203,7 @@ void G4VScoringMesh::SetFilter(G4VSDFilter* filter) << " is set to " << fCurrentPS->GetName() << G4endl; G4VSDFilter* oldFilter = fCurrentPS->GetFilter(); - if(oldFilter) + if(oldFilter != nullptr) { G4cout << "WARNING : G4VScoringMesh::SetFilter() : " << oldFilter->GetName() << " is overwritten by " << filter->GetName() << G4endl; @@ -212,7 +214,7 @@ void G4VScoringMesh::SetFilter(G4VSDFilter* filter) void G4VScoringMesh::SetCurrentPrimitiveScorer(const G4String& name) { fCurrentPS = GetPrimitiveScorer(name); - if(!fCurrentPS) + if(fCurrentPS == nullptr) { G4cerr << "ERROR : G4VScoringMesh::SetCurrentPrimitiveScorer() : The " "primitive scorer <" @@ -222,29 +224,25 @@ void G4VScoringMesh::SetCurrentPrimitiveScorer(const G4String& name) G4bool G4VScoringMesh::FindPrimitiveScorer(const G4String& psname) { - MeshScoreMap::iterator itr = fMap.find(psname); - if(itr == fMap.end()) - return false; - return true; + const auto itr = fMap.find(psname); + return itr != fMap.cend(); } G4String G4VScoringMesh::GetPSUnit(const G4String& psname) { - MeshScoreMap::iterator itr = fMap.find(psname); - if(itr == fMap.end()) + const auto itr = fMap.find(psname); + if(itr == fMap.cend()) { return G4String(""); } - else - { - return GetPrimitiveScorer(psname)->GetUnit(); - } + + return GetPrimitiveScorer(psname)->GetUnit(); } G4String G4VScoringMesh::GetCurrentPSUnit() { G4String unit = ""; - if(!fCurrentPS) + if(fCurrentPS == nullptr) { G4String msg = "ERROR : G4VScoringMesh::GetCurrentPSUnit() : "; msg += " Current primitive scorer is null."; @@ -259,7 +257,7 @@ G4String G4VScoringMesh::GetCurrentPSUnit() void G4VScoringMesh::SetCurrentPSUnit(const G4String& unit) { - if(!fCurrentPS) + if(fCurrentPS == nullptr) { G4String msg = "ERROR : G4VScoringMesh::GetCurrentPSUnit() : "; msg += " Current primitive scorer is null."; @@ -273,30 +271,28 @@ void G4VScoringMesh::SetCurrentPSUnit(const G4String& unit) G4double G4VScoringMesh::GetPSUnitValue(const G4String& psname) { - MeshScoreMap::iterator itr = fMap.find(psname); - if(itr == fMap.end()) + const auto itr = fMap.find(psname); + if(itr == fMap.cend()) { return 1.; } - else - { - return GetPrimitiveScorer(psname)->GetUnitValue(); - } + + return GetPrimitiveScorer(psname)->GetUnitValue(); } void G4VScoringMesh::GetDivisionAxisNames(G4String divisionAxisNames[3]) { - for(int i = 0; i < 3; i++) + for(G4int i = 0; i < 3; ++i) divisionAxisNames[i] = fDivisionAxisNames[i]; } G4VPrimitiveScorer* G4VScoringMesh::GetPrimitiveScorer(const G4String& name) { - if(!fMFD) + if(fMFD == nullptr) return nullptr; G4int nps = fMFD->GetNumberOfPrimitives(); - for(G4int i = 0; i < nps; i++) + for(G4int i = 0; i < nps; ++i) { G4VPrimitiveScorer* prs = fMFD->GetPrimitive(i); if(name == prs->GetName()) @@ -305,6 +301,7 @@ G4VPrimitiveScorer* G4VScoringMesh::GetPrimitiveScorer(const G4String& name) return nullptr; } + void G4VScoringMesh::List() const { G4cout << " # of segments: (" << fNSegment[0] << ", " << fNSegment[1] << ", " @@ -312,7 +309,7 @@ void G4VScoringMesh::List() const G4cout << " displacement: (" << fCenterPosition.x() / cm << ", " << fCenterPosition.y() / cm << ", " << fCenterPosition.z() / cm << ") [cm]" << G4endl; - if(fRotationMatrix != 0) + if(fRotationMatrix != nullptr) { G4cout << " rotation matrix: " << fRotationMatrix->xx() << " " << fRotationMatrix->xy() << " " << fRotationMatrix->xz() << G4endl @@ -325,11 +322,11 @@ void G4VScoringMesh::List() const G4cout << " registered primitve scorers : " << G4endl; G4int nps = fMFD->GetNumberOfPrimitives(); G4VPrimitiveScorer* prs; - for(int i = 0; i < nps; i++) + for(G4int i = 0; i < nps; ++i) { prs = fMFD->GetPrimitive(i); G4cout << " " << i << " " << prs->GetName(); - if(prs->GetFilter() != 0) + if(prs->GetFilter() != nullptr) G4cout << " with " << prs->GetFilter()->GetName(); G4cout << G4endl; } @@ -339,7 +336,7 @@ void G4VScoringMesh::Dump() { G4cout << "scoring mesh name: " << fWorldName << G4endl; G4cout << "# of G4THitsMap : " << fMap.size() << G4endl; - for(auto mp : fMap) + for(const auto& mp : fMap) { G4cout << "[" << mp.first << "]" << G4endl; mp.second->PrintAllHits(); @@ -350,9 +347,9 @@ void G4VScoringMesh::Dump() void G4VScoringMesh::DrawMesh(const G4String& psName, G4VScoreColorMap* colorMap, G4int axflg) { - fDrawPSName = psName; - MeshScoreMap::const_iterator fMapItr = fMap.find(psName); - if(fMapItr != fMap.end()) + fDrawPSName = psName; + const auto fMapItr = fMap.find(psName); + if(fMapItr != fMap.cend()) { fDrawUnit = GetPSUnit(psName); fDrawUnitValue = GetPSUnitValue(psName); @@ -368,9 +365,9 @@ void G4VScoringMesh::DrawMesh(const G4String& psName, void G4VScoringMesh::DrawMesh(const G4String& psName, G4int idxPlane, G4int iColumn, G4VScoreColorMap* colorMap) { - fDrawPSName = psName; - MeshScoreMap::const_iterator fMapItr = fMap.find(psName); - if(fMapItr != fMap.end()) + fDrawPSName = psName; + const auto fMapItr = fMap.find(psName); + if(fMapItr != fMap.cend()) { fDrawUnit = GetPSUnit(psName); fDrawUnitValue = GetPSUnitValue(psName); @@ -385,8 +382,8 @@ void G4VScoringMesh::DrawMesh(const G4String& psName, G4int idxPlane, void G4VScoringMesh::Accumulate(G4THitsMap* map) { - G4String psName = map->GetName(); - MeshScoreMap::const_iterator fMapItr = fMap.find(psName); + G4String psName = map->GetName(); + const auto fMapItr = fMap.find(psName); *(fMapItr->second) += *map; if(verboseLevel > 9) @@ -394,7 +391,7 @@ void G4VScoringMesh::Accumulate(G4THitsMap* map) G4cout << G4endl; G4cout << "G4VScoringMesh::Accumulate()" << G4endl; G4cout << " PS name : " << psName << G4endl; - if(fMapItr == fMap.end()) + if(fMapItr == fMap.cend()) { G4cout << " " << psName << " was not found." << G4endl; } @@ -409,8 +406,8 @@ void G4VScoringMesh::Accumulate(G4THitsMap* map) void G4VScoringMesh::Accumulate(G4THitsMap* map) { - G4String psName = map->GetName(); - MeshScoreMap::const_iterator fMapItr = fMap.find(psName); + G4String psName = map->GetName(); + const auto fMapItr = fMap.find(psName); *(fMapItr->second) += *map; if(verboseLevel > 9) @@ -418,7 +415,7 @@ void G4VScoringMesh::Accumulate(G4THitsMap* map) G4cout << G4endl; G4cout << "G4VScoringMesh::Accumulate()" << G4endl; G4cout << " PS name : " << psName << G4endl; - if(fMapItr == fMap.end()) + if(fMapItr == fMap.cend()) { G4cout << " " << psName << " was not found." << G4endl; } @@ -477,13 +474,13 @@ void G4VScoringMesh::Merge(const G4VScoringMesh* scMesh) { const MeshScoreMap scMap = scMesh->GetScoreMap(); - MeshScoreMap::const_iterator fMapItr = fMap.begin(); - MeshScoreMap::const_iterator mapItr = scMap.begin(); - for(; fMapItr != fMap.end(); fMapItr++) + auto fMapItr = fMap.cbegin(); + auto mapItr = scMap.cbegin(); + for(; fMapItr != fMap.cend(); ++fMapItr) { if(verboseLevel > 9) G4cout << "G4VScoringMesh::Merge()" << fMapItr->first << G4endl; *(fMapItr->second) += *(mapItr->second); - mapItr++; + ++mapItr; } } diff --git a/source/error_propagation/History b/source/error_propagation/History index 59bcbb536f..abb448440c 100644 --- a/source/error_propagation/History +++ b/source/error_propagation/History @@ -1,8 +1,13 @@ # Category error-propagation History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-17 Gabriele Cosmo (error-propagation-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2022-01-28 Ben Morgan (error-propagation-V11-00-01) - Replace `geant4_global_library_target` with direct file inclusion and diff --git a/source/error_propagation/src/G4ErrorFreeTrajParam.cc b/source/error_propagation/src/G4ErrorFreeTrajParam.cc index 016e2ee8e0..1850d2d166 100644 --- a/source/error_propagation/src/G4ErrorFreeTrajParam.cc +++ b/source/error_propagation/src/G4ErrorFreeTrajParam.cc @@ -86,7 +86,7 @@ void G4ErrorFreeTrajParam::Update(const G4Track* aTrack) //------------------------------------------------------------------------ std::ostream& operator<<(std::ostream& out, const G4ErrorFreeTrajParam& tp) { - G4int oldprc = out.precision(8); + G4long oldprc = out.precision(8); out << " InvP= " << tp.fInvP << " Theta= " << tp.fLambda << " Phi= " << tp.fPhi << " YPerp= " << tp.fYPerp << " ZPerp= " << tp.fZPerp << G4endl; diff --git a/source/error_propagation/src/G4ErrorFreeTrajState.cc b/source/error_propagation/src/G4ErrorFreeTrajState.cc index 859e9e2f52..4f0bc53240 100644 --- a/source/error_propagation/src/G4ErrorFreeTrajState.cc +++ b/source/error_propagation/src/G4ErrorFreeTrajState.cc @@ -301,7 +301,7 @@ G4int G4ErrorFreeTrajState::PropagateError(const G4Track* aTrack) transf[3][2] = stepLengthCm * sinpPost; transf[4][1] = stepLengthCm; - for(size_t ii = 0; ii < 5; ii++) + for(auto ii = 0; ii < 5; ++ii) { transf[ii][ii] = 1.; } @@ -854,9 +854,9 @@ void G4ErrorFreeTrajState::CalculateEffectiveZandA(const G4Material* mate, { effZ = 0.; effA = 0.; - G4int ii, nelem = mate->GetNumberOfElements(); + auto nelem = mate->GetNumberOfElements(); const G4double* fracVec = mate->GetFractionVector(); - for(ii = 0; ii < nelem; ii++) + for(G4int ii = 0; ii < (G4int)nelem; ++ii) { effZ += mate->GetElement(ii)->GetZ() * fracVec[ii]; effA += mate->GetElement(ii)->GetA() * fracVec[ii] / g * mole; diff --git a/source/error_propagation/src/G4ErrorMatrix.cc b/source/error_propagation/src/G4ErrorMatrix.cc index 9a558b4dfb..de7973130b 100644 --- a/source/error_propagation/src/G4ErrorMatrix.cc +++ b/source/error_propagation/src/G4ErrorMatrix.cc @@ -375,7 +375,7 @@ std::ostream& operator<<(std::ostream& os, const G4ErrorMatrix& q) // Fixed format needs 3 extra characters for field, // while scientific needs 7 - G4int width; + std::size_t width; if(os.flags() & std::ios::fixed) { width = os.precision() + 3; @@ -384,9 +384,9 @@ std::ostream& operator<<(std::ostream& os, const G4ErrorMatrix& q) { width = os.precision() + 7; } - for(G4int irow = 1; irow <= q.num_row(); irow++) + for(G4int irow = 1; irow <= q.num_row(); ++irow) { - for(G4int icol = 1; icol <= q.num_col(); icol++) + for(G4int icol = 1; icol <= q.num_col(); ++icol) { os.width(width); os << q(irow, icol) << " "; @@ -417,11 +417,11 @@ G4ErrorMatrix G4ErrorMatrix::T() const G4ErrorMatrix G4ErrorMatrix::apply(G4double (*f)(G4double, G4int, G4int)) const { G4ErrorMatrix mret(num_row(), num_col()); - G4ErrorMatrixConstIter a = m.begin(); + G4ErrorMatrixConstIter a = m.cbegin(); G4ErrorMatrixIter b = mret.m.begin(); - for(G4int ir = 1; ir <= num_row(); ir++) + for(G4int ir = 1; ir <= num_row(); ++ir) { - for(G4int ic = 1; ic <= num_col(); ic++) + for(G4int ic = 1; ic <= num_col(); ++ic) { *(b++) = (*f)(*(a++), ir, ic); } diff --git a/source/error_propagation/src/G4ErrorSymMatrix.cc b/source/error_propagation/src/G4ErrorSymMatrix.cc index 664d3a3332..aefb257bb0 100644 --- a/source/error_propagation/src/G4ErrorSymMatrix.cc +++ b/source/error_propagation/src/G4ErrorSymMatrix.cc @@ -568,7 +568,7 @@ std::ostream& operator<<(std::ostream& os, const G4ErrorSymMatrix& q) // Fixed format needs 3 extra characters for field, // while scientific needs 7 - G4int width; + std::size_t width; if(os.flags() & std::ios::fixed) { width = os.precision() + 3; @@ -577,9 +577,9 @@ std::ostream& operator<<(std::ostream& os, const G4ErrorSymMatrix& q) { width = os.precision() + 7; } - for(G4int irow = 1; irow <= q.num_row(); irow++) + for(G4int irow = 1; irow <= q.num_row(); ++irow) { - for(G4int icol = 1; icol <= q.num_col(); icol++) + for(G4int icol = 1; icol <= q.num_col(); ++icol) { os.width(width); os << q(irow, icol) << " "; @@ -593,11 +593,11 @@ G4ErrorSymMatrix G4ErrorSymMatrix::apply(G4double (*f)(G4double, G4int, G4int)) const { G4ErrorSymMatrix mret(num_row()); - G4ErrorMatrixConstIter a = m.begin(); + G4ErrorMatrixConstIter a = m.cbegin(); G4ErrorMatrixIter b = mret.m.begin(); - for(G4int ir = 1; ir <= num_row(); ir++) + for(G4int ir = 1; ir <= num_row(); ++ir) { - for(G4int ic = 1; ic <= ir; ic++) + for(G4int ic = 1; ic <= ir; ++ic) { *(b++) = (*f)(*(a++), ir, ic); } diff --git a/source/error_propagation/src/G4ErrorTrackLengthTarget.cc b/source/error_propagation/src/G4ErrorTrackLengthTarget.cc index 1e235cce4f..a801c6a379 100644 --- a/source/error_propagation/src/G4ErrorTrackLengthTarget.cc +++ b/source/error_propagation/src/G4ErrorTrackLengthTarget.cc @@ -71,9 +71,9 @@ G4ErrorTrackLengthTarget::G4ErrorTrackLengthTarget(const G4double maxTrkLength) else { G4ProcessVector* procvec = pmanager->GetProcessList(); - size_t isiz = procvec->size(); + std::size_t isiz = (G4int)procvec->size(); - for(size_t ii = 0; ii < isiz; ii++) + for(G4int ii = 0; ii < (G4int)isiz; ++ii) { if(((*procvec)[ii])->GetProcessName() == "G4ErrorTrackLengthTarget") { diff --git a/source/event/History b/source/event/History index 2d99c0a27d..9a17a3a3d1 100644 --- a/source/event/History +++ b/source/event/History @@ -6,6 +6,12 @@ be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-17 Gabriele Cosmo (event-V11-00-07) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-09-05 Ben Morgan (event-V11-00-06) +- Remove unneeded dependency on G4magneticfield + ## 2022-04-04 Ben Morgan (event-V11-00-05) - Apply basic set of C++ modernization fixes suggested by clang-tidy diff --git a/source/event/sources.cmake b/source/event/sources.cmake index 038e66b01a..0ce94dc2ea 100644 --- a/source/event/sources.cmake +++ b/source/event/sources.cmake @@ -96,5 +96,4 @@ geant4_module_link_libraries(G4event G4graphics_reps G4materials G4heprandom - G4magneticfield G4parameterisation) diff --git a/source/event/src/G4Event.cc b/source/event/src/G4Event.cc index 8f2a5ffe3c..9a8f23a5be 100644 --- a/source/event/src/G4Event.cc +++ b/source/event/src/G4Event.cc @@ -90,27 +90,27 @@ void G4Event::Draw() const if(trajectoryContainer != nullptr) { - G4int n_traj = trajectoryContainer->entries(); - for(G4int i=0; ientries(); + for(std::size_t i=0; iDrawTrajectory(); } } if(HC != nullptr) { - G4int n_HC = HC->GetCapacity(); - for(G4int j=0; jGetCapacity(); + for(std::size_t j=0; jGetHC(j); + G4VHitsCollection* VHC = HC->GetHC((G4int)j); if(VHC != nullptr) VHC->DrawAllHits(); } } if(DC != nullptr) { - G4int n_DC = DC->GetCapacity(); - for(G4int j=0; jGetCapacity(); + for(std::size_t j=0; jGetDC(j); + G4VDigiCollection* VDC = DC->GetDC((G4int)j); if(VDC != nullptr) VDC->DrawAllDigi(); } } diff --git a/source/event/src/G4GeneralParticleSource.cc b/source/event/src/G4GeneralParticleSource.cc index 38e0f30de3..f7e6b91854 100644 --- a/source/event/src/G4GeneralParticleSource.cc +++ b/source/event/src/G4GeneralParticleSource.cc @@ -202,7 +202,7 @@ void G4GeneralParticleSource::GeneratePrimaryVertex(G4Event* evt) GPSData->Unlock(); } G4double rndm = G4UniformRand(); - std::size_t i = 0 ; + G4int i = 0 ; if (! GPSData->GetFlatSampling() ) { while ( rndm > GPSData->GetSourceProbability(i) ) ++i; @@ -210,7 +210,7 @@ void G4GeneralParticleSource::GeneratePrimaryVertex(G4Event* evt) } else { - i = std::size_t (GPSData->GetIntensityVectorSize()*rndm); + i = G4int (GPSData->GetIntensityVectorSize()*rndm); currentSource = GPSData->GetCurrentSource(i); } } diff --git a/source/event/src/G4GeneralParticleSourceData.cc b/source/event/src/G4GeneralParticleSourceData.cc index fac0987bc9..86d9d6b207 100644 --- a/source/event/src/G4GeneralParticleSourceData.cc +++ b/source/event/src/G4GeneralParticleSourceData.cc @@ -95,11 +95,11 @@ void G4GeneralParticleSourceData::IntensityNormalise() { if (!flat_sampling) { - GetCurrentSource(i)->GetBiasRndm()->SetIntensityWeight(1.); + GetCurrentSource((G4int)i)->GetBiasRndm()->SetIntensityWeight(1.); } else { - GetCurrentSource(i)->GetBiasRndm() + GetCurrentSource((G4int)i)->GetBiasRndm() ->SetIntensityWeight(sourceNormalizedIntensity[i]*sourceIntensity.size()); } } @@ -117,7 +117,7 @@ void G4GeneralParticleSourceData::AddASource(G4double intensity) currentSource = new G4SingleParticleSource(); sourceVector.push_back(currentSource); sourceIntensity.push_back(intensity); - currentSourceIdx = sourceVector.size() - 1; + currentSourceIdx = G4int(sourceVector.size() - 1); normalised = false; } diff --git a/source/event/src/G4SPSEneDistribution.cc b/source/event/src/G4SPSEneDistribution.cc index d0a02b1659..b9b1665ef9 100644 --- a/source/event/src/G4SPSEneDistribution.cc +++ b/source/event/src/G4SPSEneDistribution.cc @@ -582,13 +582,13 @@ void G4SPSEneDistribution::LinearInterpolation() // MT: Lock in caller // Create a cumulative array which is then normalised Arb_Cum_Area 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(); + G4double sum = 0., Arb_x[1024]={0.}, Arb_y[1024]={0.}, Arb_Cum_Area[1024]={0.}; + std::size_t i, count; + std::size_t maxi = ArbEnergyH.GetVectorLength(); for (i = 0; i < maxi; ++i) { - Arb_x[i] = ArbEnergyH.GetLowEdgeEnergy(std::size_t(i)); - Arb_y[i] = ArbEnergyH(std::size_t(i)); + Arb_x[i] = ArbEnergyH.GetLowEdgeEnergy(i); + Arb_y[i] = ArbEnergyH(i); } // Points are now in x,y arrays. If the spectrum is integral it has to be @@ -725,13 +725,13 @@ void G4SPSEneDistribution::LogInterpolation() // MT: Lock in caller // Create normalised, cumulative array Arb_Cum_Area 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(); + G4double sum = 0., Arb_x[1024]={0.}, Arb_y[1024]={0.}, Arb_Cum_Area[1024]={0.}; + std::size_t i, count; + std::size_t maxi = ArbEnergyH.GetVectorLength(); for (i = 0; i < maxi; ++i) { - Arb_x[i] = ArbEnergyH.GetLowEdgeEnergy(std::size_t(i)); - Arb_y[i] = ArbEnergyH(std::size_t(i)); + Arb_x[i] = ArbEnergyH.GetLowEdgeEnergy(i); + Arb_y[i] = ArbEnergyH(i); } // Points are now in x,y arrays. If the spectrum is integral it has to be @@ -880,13 +880,13 @@ void G4SPSEneDistribution::ExpInterpolation() // MT: Lock in caller // Create normalised, cumulative array Arb_Cum_Area 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(); + G4double sum = 0., Arb_x[1024]={0.}, Arb_y[1024]={0.}, Arb_Cum_Area[1024]={0.}; + std::size_t i, count; + std::size_t maxi = ArbEnergyH.GetVectorLength(); for (i = 0; i < maxi; ++i) { - Arb_x[i] = ArbEnergyH.GetLowEdgeEnergy(std::size_t(i)); - Arb_y[i] = ArbEnergyH(std::size_t(i)); + Arb_x[i] = ArbEnergyH.GetLowEdgeEnergy(i); + Arb_y[i] = ArbEnergyH(i); } // Points are now in x,y arrays. If the spectrum is integral it has to be @@ -1005,14 +1005,14 @@ void G4SPSEneDistribution::SplineInterpolation() // MT: Lock in caller // Current method based on the above will not work in all cases. // New method is implemented below. - G4double sum, Arb_x[1024], Arb_y[1024], Arb_Cum_Area[1024]; - G4int i, count; + G4double sum, Arb_x[1024]={0.}, Arb_y[1024]={0.}, Arb_Cum_Area[1024]={0.}; + std::size_t i, count; + std::size_t maxi = ArbEnergyH.GetVectorLength(); - G4int maxi = ArbEnergyH.GetVectorLength(); for (i = 0; i < maxi; ++i) { - Arb_x[i] = ArbEnergyH.GetLowEdgeEnergy(std::size_t(i)); - Arb_y[i] = ArbEnergyH(std::size_t(i)); + Arb_x[i] = ArbEnergyH.GetLowEdgeEnergy(i); + Arb_y[i] = ArbEnergyH(i); } // Points are now in x,y arrays. If the spectrum is integral it has to be @@ -1065,7 +1065,7 @@ void G4SPSEneDistribution::SplineInterpolation() // MT: Lock in caller i = 1; Arb_Cum_Area[0] = 0.; sum = 0.; - Splinetemp = new G4DataInterpolation(Arb_x, Arb_y, maxi, 0., 0.); + Splinetemp = new G4DataInterpolation(Arb_x, Arb_y, (G4int)maxi, 0., 0.); G4double ei[101], prob[101]; for (auto & it : SplineInt) { @@ -1584,8 +1584,8 @@ void G4SPSEneDistribution::GenUserHistEnergies() if (!IPDFEnergyExist) { - G4int ii; - G4int maxbin = G4int(UDefEnergyH.GetVectorLength()); + std::size_t ii; + std::size_t maxbin = UDefEnergyH.GetVectorLength(); G4double bins[1024], vals[1024], sum; for ( ii = 0 ; ii<1024 ; ++ii ) { bins[ii]=0; vals[ii]=0; } sum = 0.; @@ -1612,14 +1612,14 @@ void G4SPSEneDistribution::GenUserHistEnergies() } else { - bins[0] = UDefEnergyH.GetLowEdgeEnergy(std::size_t(0)); - vals[0] = UDefEnergyH(std::size_t(0)); + bins[0] = UDefEnergyH.GetLowEdgeEnergy(0); + vals[0] = UDefEnergyH(0); sum = vals[0]; for (ii = 1; ii < maxbin; ++ii) { - bins[ii] = UDefEnergyH.GetLowEdgeEnergy(std::size_t(ii)); - vals[ii] = UDefEnergyH(std::size_t(ii)) + vals[ii - 1]; - sum = sum + UDefEnergyH(std::size_t(ii)); + bins[ii] = UDefEnergyH.GetLowEdgeEnergy(ii); + vals[ii] = UDefEnergyH(ii) + vals[ii - 1]; + sum = sum + UDefEnergyH(ii); } } @@ -1717,18 +1717,18 @@ void G4SPSEneDistribution::GenArbPointEnergies() // Find the Bin, have x, y, no of points, and cumulative area distribution // - G4int nabove = IPDFArbEnergyH.GetVectorLength(), nbelow = 0, middle; + std::size_t nabove = IPDFArbEnergyH.GetVectorLength(), nbelow = 0, middle; // Binary search to find bin that rndm is in // while (nabove - nbelow > 1) { middle = (nabove + nbelow) / 2; - if (rndm == IPDFArbEnergyH(std::size_t(middle))) + if (rndm == IPDFArbEnergyH(middle)) { break; } - if (rndm < IPDFArbEnergyH(std::size_t(middle))) + if (rndm < IPDFArbEnergyH(middle)) { nabove = middle; } @@ -1742,30 +1742,30 @@ void G4SPSEneDistribution::GenArbPointEnergies() { // Update thread-local copy of parameters // - params.Emax = IPDFArbEnergyH.GetLowEdgeEnergy(std::size_t(nbelow + 1)); - params.Emin = IPDFArbEnergyH.GetLowEdgeEnergy(std::size_t(nbelow)); + params.Emax = IPDFArbEnergyH.GetLowEdgeEnergy(nbelow + 1); + params.Emin = IPDFArbEnergyH.GetLowEdgeEnergy(nbelow); params.grad = Arb_grad[nbelow + 1]; params.cept = Arb_cept[nbelow + 1]; GenerateLinearEnergies(true); } else if (IntType == "Log") { - params.Emax = IPDFArbEnergyH.GetLowEdgeEnergy(std::size_t(nbelow + 1)); - params.Emin = IPDFArbEnergyH.GetLowEdgeEnergy(std::size_t(nbelow)); + params.Emax = IPDFArbEnergyH.GetLowEdgeEnergy(nbelow + 1); + params.Emin = IPDFArbEnergyH.GetLowEdgeEnergy(nbelow); params.alpha = Arb_alpha[nbelow + 1]; GeneratePowEnergies(true); } else if (IntType == "Exp") { - params.Emax = IPDFArbEnergyH.GetLowEdgeEnergy(std::size_t(nbelow + 1)); - params.Emin = IPDFArbEnergyH.GetLowEdgeEnergy(std::size_t(nbelow)); + params.Emax = IPDFArbEnergyH.GetLowEdgeEnergy(nbelow + 1); + params.Emin = IPDFArbEnergyH.GetLowEdgeEnergy(nbelow); params.Ezero = Arb_ezero[nbelow + 1]; GenerateExpEnergies(true); } else if (IntType == "Spline") { - params.Emax = IPDFArbEnergyH.GetLowEdgeEnergy(std::size_t(nbelow + 1)); - params.Emin = IPDFArbEnergyH.GetLowEdgeEnergy(std::size_t(nbelow)); + params.Emax = IPDFArbEnergyH.GetLowEdgeEnergy(nbelow + 1); + params.Emin = IPDFArbEnergyH.GetLowEdgeEnergy(nbelow); params.particle_energy = -1e100; rndm = eneRndm->GenRandEnergy(); while (params.particle_energy < params.Emin @@ -1804,16 +1804,16 @@ void G4SPSEneDistribution::GenEpnHistEnergies() // IPDF has not been created, so create it // G4double bins[1024], vals[1024], sum; - G4int ii; - G4int maxbin = G4int(UDefEnergyH.GetVectorLength()); - bins[0] = UDefEnergyH.GetLowEdgeEnergy(std::size_t(0)); - vals[0] = UDefEnergyH(std::size_t(0)); + std::size_t ii; + std::size_t maxbin = UDefEnergyH.GetVectorLength(); + bins[0] = UDefEnergyH.GetLowEdgeEnergy(0); + vals[0] = UDefEnergyH(0); sum = vals[0]; for (ii = 1; ii < maxbin; ++ii) { - bins[ii] = UDefEnergyH.GetLowEdgeEnergy(std::size_t(ii)); - vals[ii] = UDefEnergyH(std::size_t(ii)) + vals[ii - 1]; - sum = sum + UDefEnergyH(std::size_t(ii)); + bins[ii] = UDefEnergyH.GetLowEdgeEnergy(ii); + vals[ii] = UDefEnergyH(ii) + vals[ii - 1]; + sum = sum + UDefEnergyH(ii); } l.lock(); @@ -1857,8 +1857,8 @@ void G4SPSEneDistribution::ConvertEPNToEnergy() // MT: lock in caller // Change values in histogram, Read it out, delete it, re-create it // - G4int count, maxcount; - maxcount = G4int(EpnEnergyH.GetVectorLength()); + std::size_t count, maxcount; + maxcount = EpnEnergyH.GetVectorLength(); G4double ebins[1024], evals[1024]; if (maxcount > 1024) { @@ -1878,8 +1878,8 @@ void G4SPSEneDistribution::ConvertEPNToEnergy() // MT: lock in caller for (count = 0; count < maxcount; ++count) { // Read out - ebins[count] = EpnEnergyH.GetLowEdgeEnergy(std::size_t(count)); - evals[count] = EpnEnergyH(std::size_t(count)); + ebins[count] = EpnEnergyH.GetLowEdgeEnergy(count); + evals[count] = EpnEnergyH(count); } // Multiply the channels by the nucleon number to give energies diff --git a/source/event/src/G4SPSRandomGenerator.cc b/source/event/src/G4SPSRandomGenerator.cc index 9b64c7c2cd..dd06f0c64d 100644 --- a/source/event/src/G4SPSRandomGenerator.cc +++ b/source/event/src/G4SPSRandomGenerator.cc @@ -275,16 +275,16 @@ G4double G4SPSRandomGenerator::GenRandX() // IPDF has not been created, so create it // G4double bins[1024], vals[1024], sum; - G4int ii; - G4int maxbin = G4int(XBiasH.GetVectorLength()); - bins[0] = XBiasH.GetLowEdgeEnergy(std::size_t(0)); - vals[0] = XBiasH(std::size_t(0)); + std::size_t ii; + std::size_t maxbin = XBiasH.GetVectorLength(); + bins[0] = XBiasH.GetLowEdgeEnergy(0); + vals[0] = XBiasH(0); sum = vals[0]; for (ii=1; ii IPDFXBiasH(biasn2)) @@ -322,8 +322,8 @@ G4double G4SPSRandomGenerator::GenRandX() // bweights_t& w = bweights.Get(); w[0] = IPDFXBiasH(biasn2) - IPDFXBiasH(biasn2 - 1); - G4double xaxisl = IPDFXBiasH.GetLowEdgeEnergy(std::size_t(biasn2 - 1)); - G4double xaxisu = IPDFXBiasH.GetLowEdgeEnergy(std::size_t(biasn2)); + G4double xaxisl = IPDFXBiasH.GetLowEdgeEnergy(biasn2 - 1); + G4double xaxisu = IPDFXBiasH.GetLowEdgeEnergy(biasn2); G4double NatProb = xaxisu - xaxisl; w[0] = NatProb / w[0]; if (verbosityLevel >= 1) @@ -356,16 +356,16 @@ G4double G4SPSRandomGenerator::GenRandY() // IPDF has not been created, so create it // G4double bins[1024], vals[1024], sum; - G4int ii; - G4int maxbin = G4int(YBiasH.GetVectorLength()); - bins[0] = YBiasH.GetLowEdgeEnergy(std::size_t(0)); - vals[0] = YBiasH(std::size_t(0)); + std::size_t ii; + std::size_t maxbin = YBiasH.GetVectorLength(); + bins[0] = YBiasH.GetLowEdgeEnergy(0); + vals[0] = YBiasH(0); sum = vals[0]; for (ii=1; ii IPDFYBiasH(biasn2)) @@ -394,8 +394,8 @@ G4double G4SPSRandomGenerator::GenRandY() } bweights_t& w = bweights.Get(); w[1] = IPDFYBiasH(biasn2) - IPDFYBiasH(biasn2 - 1); - G4double xaxisl = IPDFYBiasH.GetLowEdgeEnergy(std::size_t(biasn2 - 1)); - G4double xaxisu = IPDFYBiasH.GetLowEdgeEnergy(std::size_t(biasn2)); + G4double xaxisl = IPDFYBiasH.GetLowEdgeEnergy(biasn2 - 1); + G4double xaxisu = IPDFYBiasH.GetLowEdgeEnergy(biasn2); G4double NatProb = xaxisu - xaxisl; w[1] = NatProb / w[1]; if (verbosityLevel >= 1) @@ -428,16 +428,16 @@ G4double G4SPSRandomGenerator::GenRandZ() // IPDF has not been created, so create it // G4double bins[1024], vals[1024], sum; - G4int ii; - G4int maxbin = G4int(ZBiasH.GetVectorLength()); - bins[0] = ZBiasH.GetLowEdgeEnergy(std::size_t(0)); - vals[0] = ZBiasH(std::size_t(0)); + std::size_t ii; + std::size_t maxbin = ZBiasH.GetVectorLength(); + bins[0] = ZBiasH.GetLowEdgeEnergy(0); + vals[0] = ZBiasH(0); sum = vals[0]; for (ii=1; ii IPDFZBiasH(biasn2)) @@ -466,8 +466,8 @@ G4double G4SPSRandomGenerator::GenRandZ() } bweights_t& w = bweights.Get(); w[2] = IPDFZBiasH(biasn2) - IPDFZBiasH(biasn2 - 1); - G4double xaxisl = IPDFZBiasH.GetLowEdgeEnergy(std::size_t(biasn2 - 1)); - G4double xaxisu = IPDFZBiasH.GetLowEdgeEnergy(std::size_t(biasn2)); + G4double xaxisl = IPDFZBiasH.GetLowEdgeEnergy(biasn2 - 1); + G4double xaxisu = IPDFZBiasH.GetLowEdgeEnergy(biasn2); G4double NatProb = xaxisu - xaxisl; w[2] = NatProb / w[2]; if (verbosityLevel >= 1) @@ -501,16 +501,16 @@ G4double G4SPSRandomGenerator::GenRandTheta() // IPDF has not been created, so create it // G4double bins[1024], vals[1024], sum; - G4int ii; - G4int maxbin = G4int(ThetaBiasH.GetVectorLength()); - bins[0] = ThetaBiasH.GetLowEdgeEnergy(std::size_t(0)); - vals[0] = ThetaBiasH(std::size_t(0)); + std::size_t ii; + std::size_t maxbin = ThetaBiasH.GetVectorLength(); + bins[0] = ThetaBiasH.GetLowEdgeEnergy(0); + vals[0] = ThetaBiasH(0); sum = vals[0]; for (ii=1; ii IPDFThetaBiasH(biasn2)) @@ -539,8 +539,8 @@ G4double G4SPSRandomGenerator::GenRandTheta() } bweights_t& w = bweights.Get(); w[3] = IPDFThetaBiasH(biasn2) - IPDFThetaBiasH(biasn2 - 1); - G4double xaxisl = IPDFThetaBiasH.GetLowEdgeEnergy(std::size_t(biasn2 - 1)); - G4double xaxisu = IPDFThetaBiasH.GetLowEdgeEnergy(std::size_t(biasn2)); + G4double xaxisl = IPDFThetaBiasH.GetLowEdgeEnergy(biasn2 - 1); + G4double xaxisu = IPDFThetaBiasH.GetLowEdgeEnergy(biasn2); G4double NatProb = xaxisu - xaxisl; w[3] = NatProb / w[3]; if (verbosityLevel >= 1) @@ -573,16 +573,16 @@ G4double G4SPSRandomGenerator::GenRandPhi() // IPDF has not been created, so create it // G4double bins[1024], vals[1024], sum; - G4int ii; - G4int maxbin = G4int(PhiBiasH.GetVectorLength()); - bins[0] = PhiBiasH.GetLowEdgeEnergy(std::size_t(0)); - vals[0] = PhiBiasH(std::size_t(0)); + std::size_t ii; + std::size_t maxbin = PhiBiasH.GetVectorLength(); + bins[0] = PhiBiasH.GetLowEdgeEnergy(0); + vals[0] = PhiBiasH(0); sum = vals[0]; for (ii=1; ii IPDFPhiBiasH(biasn2)) @@ -611,8 +611,8 @@ G4double G4SPSRandomGenerator::GenRandPhi() } bweights_t& w = bweights.Get(); w[4] = IPDFPhiBiasH(biasn2) - IPDFPhiBiasH(biasn2 - 1); - G4double xaxisl = IPDFPhiBiasH.GetLowEdgeEnergy(std::size_t(biasn2 - 1)); - G4double xaxisu = IPDFPhiBiasH.GetLowEdgeEnergy(std::size_t(biasn2)); + G4double xaxisl = IPDFPhiBiasH.GetLowEdgeEnergy(biasn2 - 1); + G4double xaxisu = IPDFPhiBiasH.GetLowEdgeEnergy(biasn2); G4double NatProb = xaxisu - xaxisl; w[4] = NatProb / w[4]; if (verbosityLevel >= 1) @@ -645,16 +645,16 @@ G4double G4SPSRandomGenerator::GenRandEnergy() // IPDF has not been created, so create it // G4double bins[1024], vals[1024], sum; - G4int ii; - G4int maxbin = G4int(EnergyBiasH.GetVectorLength()); - bins[0] = EnergyBiasH.GetLowEdgeEnergy(std::size_t(0)); - vals[0] = EnergyBiasH(std::size_t(0)); + std::size_t ii; + std::size_t maxbin = EnergyBiasH.GetVectorLength(); + bins[0] = EnergyBiasH.GetLowEdgeEnergy(0); + vals[0] = EnergyBiasH(0); sum = vals[0]; for (ii=1; ii IPDFEnergyBiasH(biasn2)) @@ -683,8 +683,8 @@ G4double G4SPSRandomGenerator::GenRandEnergy() } bweights_t& w = bweights.Get(); w[5] = IPDFEnergyBiasH(biasn2) - IPDFEnergyBiasH(biasn2 - 1); - G4double xaxisl = IPDFEnergyBiasH.GetLowEdgeEnergy(std::size_t(biasn2 - 1)); - G4double xaxisu = IPDFEnergyBiasH.GetLowEdgeEnergy(std::size_t(biasn2)); + G4double xaxisl = IPDFEnergyBiasH.GetLowEdgeEnergy(biasn2 - 1); + G4double xaxisu = IPDFEnergyBiasH.GetLowEdgeEnergy(biasn2); G4double NatProb = xaxisu - xaxisl; w[5] = NatProb / w[5]; if (verbosityLevel >= 1) @@ -718,16 +718,16 @@ G4double G4SPSRandomGenerator::GenRandPosTheta() // IPDF has not been created, so create it // G4double bins[1024], vals[1024], sum; - G4int ii; - G4int maxbin = G4int(PosThetaBiasH.GetVectorLength()); - bins[0] = PosThetaBiasH.GetLowEdgeEnergy(std::size_t(0)); - vals[0] = PosThetaBiasH(std::size_t(0)); + std::size_t ii; + std::size_t maxbin = PosThetaBiasH.GetVectorLength(); + bins[0] = PosThetaBiasH.GetLowEdgeEnergy(0); + vals[0] = PosThetaBiasH(0); sum = vals[0]; for (ii=1; ii IPDFPosThetaBiasH(biasn2)) @@ -756,8 +756,8 @@ G4double G4SPSRandomGenerator::GenRandPosTheta() } bweights_t& w = bweights.Get(); w[6] = IPDFPosThetaBiasH(biasn2) - IPDFPosThetaBiasH(biasn2 - 1); - G4double xaxisl = IPDFPosThetaBiasH.GetLowEdgeEnergy(std::size_t(biasn2-1)); - G4double xaxisu = IPDFPosThetaBiasH.GetLowEdgeEnergy(std::size_t(biasn2)); + G4double xaxisl = IPDFPosThetaBiasH.GetLowEdgeEnergy(biasn2-1); + G4double xaxisu = IPDFPosThetaBiasH.GetLowEdgeEnergy(biasn2); G4double NatProb = xaxisu - xaxisl; w[6] = NatProb / w[6]; if (verbosityLevel >= 1) @@ -790,16 +790,16 @@ G4double G4SPSRandomGenerator::GenRandPosPhi() // IPDF has not been created, so create it // G4double bins[1024], vals[1024], sum; - G4int ii; - G4int maxbin = G4int(PosPhiBiasH.GetVectorLength()); - bins[0] = PosPhiBiasH.GetLowEdgeEnergy(std::size_t(0)); - vals[0] = PosPhiBiasH(std::size_t(0)); + std::size_t ii; + std::size_t maxbin = PosPhiBiasH.GetVectorLength(); + bins[0] = PosPhiBiasH.GetLowEdgeEnergy(0); + vals[0] = PosPhiBiasH(0); sum = vals[0]; for (ii=1; ii IPDFPosPhiBiasH(biasn2)) @@ -828,8 +828,8 @@ G4double G4SPSRandomGenerator::GenRandPosPhi() } bweights_t& w = bweights.Get(); w[7] = IPDFPosPhiBiasH(biasn2) - IPDFPosPhiBiasH(biasn2 - 1); - G4double xaxisl = IPDFPosPhiBiasH.GetLowEdgeEnergy(std::size_t(biasn2 - 1)); - G4double xaxisu = IPDFPosPhiBiasH.GetLowEdgeEnergy(std::size_t(biasn2)); + G4double xaxisl = IPDFPosPhiBiasH.GetLowEdgeEnergy(biasn2 - 1); + G4double xaxisu = IPDFPosPhiBiasH.GetLowEdgeEnergy(biasn2); G4double NatProb = xaxisu - xaxisl; w[7] = NatProb / w[7]; if (verbosityLevel >= 1) diff --git a/source/event/src/G4SmartTrackStack.cc b/source/event/src/G4SmartTrackStack.cc index af953340bd..b4fbab9d6f 100644 --- a/source/event/src/G4SmartTrackStack.cc +++ b/source/event/src/G4SmartTrackStack.cc @@ -123,8 +123,8 @@ void G4SmartTrackStack::PushToStack( const G4StackedTrack& aStackedTrack ) energies[iDest] += aStackedTrack.GetTrack()->GetDynamicParticle()->GetTotalEnergy(); ++nTracks; - G4int dy1 = stacks[iDest]->GetNTrack() - stacks[iDest]->GetSafetyValue1(); - G4int dy2 = stacks[fTurn]->GetNTrack() - stacks[fTurn]->GetSafetyValue2(); + G4long dy1 = stacks[iDest]->GetNTrack() - stacks[iDest]->GetSafetyValue1(); + G4long dy2 = stacks[fTurn]->GetNTrack() - stacks[fTurn]->GetSafetyValue2(); if (dy1 > 0 || dy1 > dy2 || (iDest == 2 && diff --git a/source/event/src/G4StackManager.cc b/source/event/src/G4StackManager.cc index 684385d1ab..2415f277e6 100644 --- a/source/event/src/G4StackManager.cc +++ b/source/event/src/G4StackManager.cc @@ -581,31 +581,31 @@ void G4StackManager::ClearPostponeStack() G4int G4StackManager::GetNTotalTrack() const { - G4int n = urgentStack->GetNTrack() - + waitingStack->GetNTrack() - + postponeStack->GetNTrack(); + std::size_t n = urgentStack->GetNTrack() + + waitingStack->GetNTrack() + + postponeStack->GetNTrack(); for(G4int i=1; i<=numberOfAdditionalWaitingStacks; ++i) { n += additionalWaitingStacks[i-1]->GetNTrack(); } - return n; + return G4int(n); } G4int G4StackManager::GetNUrgentTrack() const { - return urgentStack->GetNTrack(); + return (G4int)urgentStack->GetNTrack(); } G4int G4StackManager::GetNWaitingTrack(int i) const { if(i==0) { - return waitingStack->GetNTrack(); + return (G4int)waitingStack->GetNTrack(); } if(i<=numberOfAdditionalWaitingStacks) { - return additionalWaitingStacks[i-1]->GetNTrack(); + return (G4int)additionalWaitingStacks[i-1]->GetNTrack(); } return 0; @@ -613,7 +613,7 @@ G4int G4StackManager::GetNWaitingTrack(int i) const G4int G4StackManager::GetNPostponedTrack() const { - return postponeStack->GetNTrack(); + return (G4int)postponeStack->GetNTrack(); } void G4StackManager::SetVerboseLevel( G4int const value ) diff --git a/source/externals/History b/source/externals/History index dca8aafb29..1bd4603cee 100644 --- a/source/externals/History +++ b/source/externals/History @@ -1,8 +1,19 @@ # Category externals History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-10-10 Gabriele Cosmo (externals-V11-00-05) +- Synchronised with CLHEP-2.4.6.0. + o Resolved gcc-12 warnings in Evaluator source (C.Green). + +## 2022-10-06 Gabriele Cosmo (externals-V11-00-04) +- Synchronised with CLHEP-2.4.5.4. + o Fix in RandGamma::genGamma() to fix reproducibility in multi-threading + environment (J.Junggeburth). ## 2022-05-31 Guilherme Amadio (externals-V11-00-03) - Update CMake install directory for PTL to match recent changes diff --git a/source/externals/clhep/CMakeLists.txt b/source/externals/clhep/CMakeLists.txt index bbecfd0d36..e811b7b2cb 100644 --- a/source/externals/clhep/CMakeLists.txt +++ b/source/externals/clhep/CMakeLists.txt @@ -4,9 +4,6 @@ # - Headers set(G4clhep_HEADERS include/CLHEP/Evaluator/Evaluator.h - include/CLHEP/Evaluator/hash_map.icc - include/CLHEP/Evaluator/stack.icc - include/CLHEP/Evaluator/string.icc include/CLHEP/Geometry/BasicVector3D.h include/CLHEP/Geometry/Normal3D.h include/CLHEP/Geometry/Plane3D.h diff --git a/source/externals/clhep/History b/source/externals/clhep/History index 02af0fd9d5..d1541d2722 100644 --- a/source/externals/clhep/History +++ b/source/externals/clhep/History @@ -6,6 +6,31 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-10-10 Gabriele Cosmo (clhep-V11-00-08) +- Synchronised with CLHEP-2.4.6.2. + * Random (L.Garren) + o Add header where uint32_t and uint64_t are used. + +## 2022-10-10 Gabriele Cosmo (clhep-V11-00-07) +- Synchronised with CLHEP-2.4.6.1. + * Evaluator (G.Cosmo) + o Fixed inconsistencies in evaluator set of units [setSystemOfUnits.cc] + with SystemOfUnits header. + +## 2022-10-10 Gabriele Cosmo (clhep-V11-00-06) +- Synchronised with CLHEP-2.4.6.0. + * Evaluator (C.Green) + o Resolved gcc-12 warnings. + +## 2022-10-06 Gabriele Cosmo (clhep-V11-00-05) +- Synchronised with CLHEP-2.4.5.4. + * Random (J.Junggeburth) + o Fix in RandGamma::genGamma() to fix reproducibility in multi-threading + environment. + +## 2022-09-22 Ben Morgan (clhep-V11-00-04) +- Apply patch for MinGW from [GitHub PR 51](https://github.com/Geant4/geant4/pull/51) + ## 2022-03-10 Evgueni Tcherniaev (clhep-V11-00-03) - Fixed compilation warnings in LorentzVector.h when c++20 is enabled diff --git a/source/externals/clhep/include/CLHEP/Evaluator/hash_map.icc b/source/externals/clhep/include/CLHEP/Evaluator/hash_map.icc deleted file mode 100644 index 2f9fd67064..0000000000 --- a/source/externals/clhep/include/CLHEP/Evaluator/hash_map.icc +++ /dev/null @@ -1,185 +0,0 @@ -// -*- C++ -*- -// --------------------------------------------------------------------------- - -#ifndef HEP_HASH_MAP_SRC -#define HEP_HASH_MAP_SRC - -#include -#include -#include "CLHEP/Evaluator/string.icc" - -/* - * Simplified hash_map class. - * It provides only basic functions of the standard and - * is intended to be used as a replacement of the standard class where - * full functionality of is not required, but it is essential - * to have highly portable and effective code. - * - * This file should be used exclusively inside *.cc files. - * Usage inside header files can result to a clash with standard . - * - * @author Evgeni Chernyaev - */ -template -class hash_map { -public: - struct Entry { // Hash_map entry - std::pair data; - Entry* next; - Entry(K k, T v, Entry* n) : data(k,v), next(n) {} - }; - - class hash_map_iterator { // Hash_map iterator - Entry* entry; - public: - hash_map_iterator() : entry(0) {} - hash_map_iterator(Entry & e) : entry(&e) {} - std::pair & operator * () const { return entry->data; } - std::pair * operator ->() const { return &(operator*()); } - bool operator==(hash_map_iterator i) const { - return (entry == i.entry); - } - bool operator!=(hash_map_iterator i) const { - return (entry != i.entry); - } - }; - -public: - typedef unsigned int size_type; - typedef std::pair value_type; - typedef hash_map_iterator iterator; - typedef hash_map_iterator const_iterator; - -private: - Entry** table; // Hash table: pointers to entries - size_type cur_size; // Number of entries - size_type max_size; // Bucket_count - current size of the table - float max_load; // Keep (n) <= (max_size * max_load) - float grow; // When necessary, resize(max_size * grow) - const T default_value; // Default value used by [] - - size_type hash(const char * key) const { - size_type res = 0; - while(*key) { res = res*31 + *key++; } - return res; - } - - size_type hash(const string & key) const { - return hash(key.c_str()); - } - - bool eq(const char * a, const char * b) const { - return (strcmp(a, b) == 0); - } - - bool eq(const string & a, const string & b) const { - return (a == b); - } - -public: - - // Constructor. - hash_map(const T & dv = T(), size_type n = 107) - : table(0), cur_size(0), max_size(0), default_value(dv) - { - set_load(); - resize(n); - } - - // Destructor. - ~hash_map() { - for(size_type i=0; inext; delete p; } - } - delete [] table; - } - - // Sets load and grow parameters. - void set_load(float m = 0.7, float g = 1.7) { max_load = m; grow = g; } - - // Returns number of elements. - size_type size() const { return cur_size; } - - // Returns size of the hash table. - size_type bucket_count() const { return max_size; } - - // Resizes the hash table. - void resize(size_type s) { - if (s <= max_size) return; - Entry** tmp = table; - table = new Entry* [s]; - for (size_type k=0; knext; - size_type ii = hash(p->data.first) % s; - p->next = table[ii]; - table[ii] = p; - } - } - max_size = s; - delete [] tmp; - } - - // Subscripting. - T & operator[](const K & key) { - size_type i = hash(key) % max_size; - for (Entry* p=table[hash(key) % max_size]; p; p=p->next) { - if (eq(key,p->data.first)) return p->data.second; - } - if (cur_size++ >= max_size*max_load) { - resize(size_type(max_size*grow)); - i = hash(key) % max_size; - } - table[i] = new Entry(key, default_value, table[i]); - return table[i]->data.second; - } - - // Finds element with given key. - iterator find(const K & key) const { - size_type i = hash(key) % max_size; - for (Entry* p=table[i]; p; p=p->next) { - if (eq(key,p->data.first)) return iterator(*p); - } - return end(); - } - - // Erases element with given key. - size_type erase(const K & key) { - size_type i = hash(key) % max_size; - Entry* p = table[i]; - if (p == 0) return 0; - if (eq(key,p->data.first)) { - table[i] = p->next; delete p; cur_size--; return 1; - } - Entry** pp = &table[i]; - for (p=p->next; p; p=p->next) { - if (eq(key,p->data.first)) { - *pp = p->next; delete p; cur_size--; return 1; - }else{ - pp = &(p->next); - } - } - return 0; - } - - // Clears the hash table. - void clear() { - for(size_type i=0; inext; delete pp; - } - table[i] = 0; - } - cur_size = 0; - } - - // Returns end iterator. - iterator end() const { return iterator(); } - -}; - -#endif /* HEP_HASH_MAP_SRC */ diff --git a/source/externals/clhep/include/CLHEP/Evaluator/stack.icc b/source/externals/clhep/include/CLHEP/Evaluator/stack.icc deleted file mode 100644 index c8f162f823..0000000000 --- a/source/externals/clhep/include/CLHEP/Evaluator/stack.icc +++ /dev/null @@ -1,44 +0,0 @@ -// -*- C++ -*- -// --------------------------------------------------------------------------- - -#ifndef HEP_STACK_SRC -#define HEP_STACK_SRC - -/* - * Simplified stack class. - * It is intended to be used as a replacement of the standard class where - * full functionality of is not required, but it is essential - * to have highly portable and effective code. - * - * This file should be used exclusively inside *.cc files. - * Usage inside header files can result to a clash with standard . - * - * @author Evgeni Chernyaev - */ -template -class stack { - private: - int k, max_size; - T * v; - - public: - stack() : k(0), max_size(20), v(new T[20]) {} - ~stack() { delete [] v; } - - int size() const { return k; } - T top () const { return v[k-1]; } - T & top () { return v[k-1]; } - void pop () { k--; } - void push(T a) { - if (k == max_size) { - T * w = v; - max_size *= 2; - v = new T[max_size]; - for (int i=0; i -#include - -/* - * Simplified string class. - * It provides only few basic functions of the standard and - * is intended to be used as a replacement of the standard class where - * full functionality of is not required, but it is essential - * to have highly portable and effective code. - * - * This file should be used exclusively inside *.cc files. - * Usage inside header files can result to a clash with standard . - */ -struct string { - struct srep { - char* s; // pointer to data - int n; // reference count - srep() : n(1) {} - } *p; - - // Default constructor. - string() { p = new srep; p->s = 0; } - - // Constructor from character string. - string(const char* s) { - p = new srep; p->s = new char[strlen(s)+1]; strcpy(p->s, s); - } - - // Constructor from character substring. - string(const char* s, unsigned int n) { - p = new srep; p->s = new char[n+1]; strncpy(p->s, s, n); *(p->s+n) = '\0'; - } - - // Copy constructor from string. - string(const string& x) { x.p->n++; p = x.p; } - - // Destructor. - ~string() { if (--p->n == 0) { delete [] p->s; delete p; } } - - // Assignment from character string. - string& operator=(const char* s) { - if (p->n > 1) { // disconnect self - p->n--; - p = new srep; - }else{ - delete [] p->s; // free old string - } - p->s = new char[strlen(s)+1]; - strcpy(p->s, s); - return *this; - } - - // Assignment from string. - string& operator=(const string & x) { - x.p->n++; // protect against "st = st" - if (--p->n == 0) { delete [] p->s; delete p; } - p = x.p; - return *this; - } - - // Returns C-style character string. - const char* c_str() const { return p->s; } -}; - -// -// Concatinations. -// -inline string operator+(char a, const string & b) { - string s; s.p->s = new char[strlen(b.c_str())+2]; - s.p->s[0] = a; strcpy(s.p->s+1, b.c_str()); - return s; -} - -inline string operator+(const char * a, const string & b) { - int lena = strlen(a); - string s; s.p->s = new char[lena+strlen(b.c_str())+1]; - strcpy(s.p->s, a); strcpy(s.p->s+lena, b.c_str()); - return s; -} - -inline string operator+(const string & a, const char * b) { - int lena = strlen(a.c_str()); - string s; s.p->s = new char[lena+strlen(b)+1]; - strcpy(s.p->s, a.c_str()); strcpy(s.p->s+lena, b); - return s; -} - -inline string operator+(const string & a, const string & b) { - int lena = strlen(a.c_str()); - string s; s.p->s = new char[lena+strlen(b.c_str())+1]; - strcpy(s.p->s, a.c_str()); strcpy(s.p->s+lena, b.c_str()); - return s; -} - -// -// Comparisons. -// -inline bool operator==(const string & x, const char* s) { - return strcmp(x.p->s, s) == 0; -} -inline bool operator==(const string & x, const string & y) { - return strcmp(x.p->s, y.p->s) == 0; -} -inline bool operator!=(const string & x, const char* s) { - return strcmp(x.p->s, s) != 0; -} -inline bool operator!=(const string & x, const string & y) { - return strcmp(x.p->s, y.p->s) != 0; -} - -// -// Output to a stream. -// -std::ostream & operator<<(std::ostream & s, const string & x) { - return s << x.p->s; -} - -#endif /* HEP_STRING_SRC */ diff --git a/source/externals/clhep/include/CLHEP/Random/MixMaxRng.h b/source/externals/clhep/include/CLHEP/Random/MixMaxRng.h index 3cd58aef40..06c2cc2a89 100644 --- a/source/externals/clhep/include/CLHEP/Random/MixMaxRng.h +++ b/source/externals/clhep/include/CLHEP/Random/MixMaxRng.h @@ -34,6 +34,7 @@ #define MixMaxRng_h 1 #include +#include #include "CLHEP/Random/RandomEngine.h" namespace CLHEP { diff --git a/source/externals/clhep/include/CLHEP/Random/RanluxppEngine.h b/source/externals/clhep/include/CLHEP/Random/RanluxppEngine.h index 8aa5133bfd..b0a3bdf361 100644 --- a/source/externals/clhep/include/CLHEP/Random/RanluxppEngine.h +++ b/source/externals/clhep/include/CLHEP/Random/RanluxppEngine.h @@ -24,6 +24,8 @@ #include "CLHEP/Random/RandomEngine.h" +#include + namespace CLHEP { /** diff --git a/source/externals/clhep/include/CLHEP/Utility/thread_local.h b/source/externals/clhep/include/CLHEP/Utility/thread_local.h index ac40cb6197..580915b50e 100644 --- a/source/externals/clhep/include/CLHEP/Utility/thread_local.h +++ b/source/externals/clhep/include/CLHEP/Utility/thread_local.h @@ -7,7 +7,7 @@ // // ====================================================================== -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 7) || __clang__ || WIN32 +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 7) || __clang__ || defined(WIN32) || defined(__MINGW32__) #define CLHEP_THREAD_LOCAL thread_local #else #define CLHEP_THREAD_LOCAL diff --git a/source/externals/clhep/src/Evaluator.cc b/source/externals/clhep/src/Evaluator.cc index 75a1654730..d4f0b9f308 100644 --- a/source/externals/clhep/src/Evaluator.cc +++ b/source/externals/clhep/src/Evaluator.cc @@ -5,15 +5,18 @@ #include #include +#include #include // for std::pow() -#include "CLHEP/Evaluator/stack.icc" -#include "CLHEP/Evaluator/string.icc" -#include "CLHEP/Evaluator/hash_map.icc" +#include +#include #include #include #include #include // for strtod() +using std::string; +using std::stack; + //--------------------------------------------------------------------------- // Fix non ISO C++ compliant cast from pointer to function // to void*, which is a pointer to an object @@ -33,8 +36,8 @@ struct Item { Item(voidfuncptr x) : what(FUNCTION), variable(0),expression(), function(x) {} }; -typedef char * pchar; -typedef hash_map dic_type; +using pchar = char *; +using dic_type = std::unordered_map; struct Struct { dic_type theDictionary; diff --git a/source/externals/clhep/src/MixMaxRng.cc b/source/externals/clhep/src/MixMaxRng.cc index fe81f2b11c..a1d4dacafd 100644 --- a/source/externals/clhep/src/MixMaxRng.cc +++ b/source/externals/clhep/src/MixMaxRng.cc @@ -701,7 +701,7 @@ myuint_t MixMaxRng::modadd(myuint_t foo, myuint_t bar) #if defined(__x86_64__) && defined(__GNUC__) && (!defined(__ICC)) //#warning Using assembler routine in modadd myuint_t out; - /* Assembler trick suggested by Andrzej Görlich */ + /* Assembler trick suggested by Andrzej Görlich */ __asm__ ("addq %2, %0; " "btrq $61, %0; " "adcq $0, %0; " diff --git a/source/externals/clhep/src/RandGamma.cc b/source/externals/clhep/src/RandGamma.cc index 07f5a365d5..d2beff6894 100644 --- a/source/externals/clhep/src/RandGamma.cc +++ b/source/externals/clhep/src/RandGamma.cc @@ -79,8 +79,8 @@ double RandGamma::genGamma( HepRandomEngine *anEngine, * Acceptance complement method gd * *************************************************************************/ - static CLHEP_THREAD_LOCAL double aa = -1.0, aaa = -1.0, b, c, d, e, r, s, si, ss, q0; - static const double q1 = 0.0416666664, q2 = 0.0208333723, q3 = 0.0079849875, + double aa = -1.0, aaa = -1.0, b{0.}, c{0.}, d{0.}, e{0.}, r{0.}, s{0.}, si{0.}, ss{0.}, q0{0.}; + constexpr double q1 = 0.0416666664, q2 = 0.0208333723, q3 = 0.0079849875, q4 = 0.0015746717, q5 = -0.0003349403, q6 = 0.0003340332, q7 = 0.0006053049, q8 = -0.0004701849, q9 = 0.0001710320, a1 = 0.333333333, a2 = -0.249999949, a3 = 0.199999867, @@ -90,8 +90,8 @@ double RandGamma::genGamma( HepRandomEngine *anEngine, e4 = 0.041664508, e5 = 0.008345522, e6 = 0.001353826, e7 = 0.000247453; -double gds,p,q,t,sign_u,u,v,w,x; -double v1,v2,v12; + double gds{0.},p{0.},q{0.},t{0.},sign_u{0.},u{0.},v{0.},w{0.},x{0.}; + double v1{0.},v2{0.},v12{0.}; // Check for invalid input values diff --git a/source/externals/clhep/src/RanluxppEngine.cc b/source/externals/clhep/src/RanluxppEngine.cc index bfe810cfdb..1ce9272bbc 100644 --- a/source/externals/clhep/src/RanluxppEngine.cc +++ b/source/externals/clhep/src/RanluxppEngine.cc @@ -46,6 +46,7 @@ #include #include #include +#include namespace CLHEP { diff --git a/source/externals/clhep/src/setSystemOfUnits.cc b/source/externals/clhep/src/setSystemOfUnits.cc index 3e861cf159..7d3760b6d0 100644 --- a/source/externals/clhep/src/setSystemOfUnits.cc +++ b/source/externals/clhep/src/setSystemOfUnits.cc @@ -263,7 +263,13 @@ void Evaluator::setSystemOfUnits(double meter, setVariable("micrometer", micro_ * m); setVariable("micron", micro_ * m); + setVariable("um", micro_ * m); setVariable("nanometer", nano_ * m); + setVariable("nm", nano_ * m); + + const double parsec = 3.0856775807e+16 * m; + setVariable("parsec", parsec); + setVariable("pc", parsec); // --- honors Anders Jonas Angstrom (1814-1874) of Sweden setVariable("angstrom", 1.e-10 * m); @@ -329,6 +335,15 @@ void Evaluator::setSystemOfUnits(double meter, setVariable("picosecond", pico_ * s); setVariable("ps", pico_ * s); + const double minute = 60*s; + setVariable("minute", minute); + const double hour = 60*minute; + setVariable("hour", hour); + const double day = 24*hour; + setVariable("day", day); + const double year = 365*day; + setVariable("year", year); + // Current setVariable("milliampere", milli_ * A); @@ -361,11 +376,12 @@ void Evaluator::setSystemOfUnits(double meter, setVariable("gigajoule", giga_ * J); setVariable("GJ", giga_ * J); - const double e_SI = 1.60217733e-19; // positron charge in coulomb + const double e_SI = 1.602176634e-19; // positron charge in coulomb const double ePlus = e_SI * C; // positron charge const double eV = ePlus * V; setVariable("electronvolt", eV); setVariable("eV", eV); + setVariable("millielectronvolt", milli_ * eV); setVariable("kiloelectronvolt", kilo_ * eV); setVariable("keV", kilo_ * eV); setVariable("megaelectronvolt", mega_ * eV); diff --git a/source/externals/expat/CMakeLists.txt b/source/externals/expat/CMakeLists.txt index c86d08be23..b26fad7bf9 100644 --- a/source/externals/expat/CMakeLists.txt +++ b/source/externals/expat/CMakeLists.txt @@ -10,6 +10,7 @@ set(XML_CONTEXT_BYTES 1024) set(XML_DTD 1) set(XML_NS 1) +include(CheckCSourceCompiles) include(CheckIncludeFile) include(CheckIncludeFiles) include(CheckFunctionExists) @@ -28,10 +29,14 @@ check_include_file("sys/stat.h" HAVE_SYS_STAT_H) check_include_file("sys/types.h" HAVE_SYS_TYPES_H) check_include_file("unistd.h" HAVE_UNISTD_H) -check_function_exists("getpagesize" HAVE_GETPAGESIZE) -check_function_exists("bcopy" HAVE_BCOPY) -check_symbol_exists("memmove" "string.h" HAVE_MEMMOVE) -check_function_exists("mmap" HAVE_MMAP) +check_symbol_exists("getpagesize" "unistd.h" HAVE_GETPAGESIZE) +check_symbol_exists("mmap" "sys/mman.h" HAVE_MMAP) +check_symbol_exists("getrandom" "sys/random.h" HAVE_GETRANDOM) + +check_symbol_exists("arc4random_buf" "${_bsd}stdlib.h" HAVE_ARC4RANDOM_BUF) +if(NOT HAVE_ARC4RANDOM_BUF) + check_symbol_exists("arc4random" "${_bsd}stdlib.h" HAVE_ARC4RANDOM) +endif() #/* Define to 1 if you have the ANSI C header files. */ check_include_files("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS) @@ -52,6 +57,16 @@ else(HAVE_SYS_TYPES_H) set(SIZE_T "unsigned") endif(HAVE_SYS_TYPES_H) +check_c_source_compiles(" + #include /* for NULL */ + #include /* for syscall */ + #include /* for SYS_getrandom */ + int main() { + syscall(SYS_getrandom, NULL, 0, 0); + return 0; + }" + HAVE_SYSCALL_GETRANDOM) + configure_file(expat_config.h.cmake expat_config.h) add_definitions(-DHAVE_EXPAT_CONFIG_H) @@ -69,24 +84,23 @@ set(G4expat_HEADERS set(G4expat_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/expat_config.h - src/amigaconfig.h src/ascii.h src/asciitab.h src/iasciitab.h src/internal.h src/latin1tab.h - src/macconfig.h src/nametab.h + src/siphash.h src/utf8tab.h src/winconfig.h - src/xmlparse.cc - src/xmlrole.cc + src/xmlparse.c + src/xmlrole.c src/xmlrole.h - src/xmltok.cc + src/xmltok.c src/xmltok.h - src/xmltok_impl.cc + src/xmltok_impl.c src/xmltok_impl.h - src/xmltok_ns.cc) + src/xmltok_ns.c) # - Create target(s) and set usage requirements geant4_add_external_library(NAME G4expat SOURCES ${G4expat_SOURCES} ${G4expat_HEADERS}) diff --git a/source/externals/expat/History b/source/externals/expat/History index 6886e730a9..293c8cf64a 100644 --- a/source/externals/expat/History +++ b/source/externals/expat/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-10-07 Ben Morgan (expat-V11-00-01) +- Update source/build with Expat 2.4.9 sources from upstream + ## 2021-12-10 Ben Morgan (expat-V11-00-00) - Change to new Markdown History format diff --git a/source/externals/expat/expat_config.h.cmake b/source/externals/expat/expat_config.h.cmake index e5147915b5..ee4adc6df1 100644 --- a/source/externals/expat/expat_config.h.cmake +++ b/source/externals/expat/expat_config.h.cmake @@ -1,91 +1,115 @@ -/* expat_config.h.in. Generated from configure.in by autoheader. */ - -/* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */ -#cmakedefine BYTEORDER @BYTEORDER@ - -/* Define to 1 if you have the `bcopy' function. */ -#cmakedefine HAVE_BCOPY - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_DLFCN_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_FCNTL_H - -/* Define to 1 if you have the `getpagesize' function. */ -#cmakedefine HAVE_GETPAGESIZE - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_INTTYPES_H - -/* Define to 1 if you have the `memmove' function. */ -#cmakedefine HAVE_MEMMOVE - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_MEMORY_H - -/* Define to 1 if you have a working `mmap' system call. */ -#cmakedefine HAVE_MMAP - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_STDLIB_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_STRING_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_SYS_TYPES_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_UNISTD_H - -/* Define to the address where bug reports for this package should be sent. */ -#cmakedefine PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#cmakedefine PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#cmakedefine PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#cmakedefine PACKAGE_TARNAME - -/* Define to the version of this package. */ -#cmakedefine PACKAGE_VERSION - -/* Define to 1 if you have the ANSI C header files. */ -#cmakedefine STDC_HEADERS - -/* whether byteorder is bigendian */ -#cmakedefine WORDS_BIGENDIAN - -/* Define to specify how much context to retain around the current parse - point. */ -#cmakedefine XML_CONTEXT_BYTES @XML_CONTEXT_BYTES@ - -/* Define to make parameter entity parsing functionality available. */ -#cmakedefine XML_DTD - -/* Define to make XML Namespaces functionality available. */ -#cmakedefine XML_NS - -/* Define to __FUNCTION__ or "" if `__func__' does not conform to ANSI C. */ -#ifdef _MSC_VER -# define __func__ __FUNCTION__ -#endif - -/* Define to `long' if does not define. */ -#cmakedefine off_t @OFF_T@ - -/* Define to `unsigned' if does not define. */ -#cmakedefine size_t @SIZE_T@ +/* expat_config.h.cmake. Based upon generated expat_config.h.in. */ + +/* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */ +#cmakedefine BYTEORDER @BYTEORDER@ + +/* Define to 1 if you have the `arc4random' function. */ +#cmakedefine HAVE_ARC4RANDOM + +/* Define to 1 if you have the `arc4random_buf' function. */ +#cmakedefine HAVE_ARC4RANDOM_BUF + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_FCNTL_H + +/* Define to 1 if you have the `getpagesize' function. */ +#cmakedefine HAVE_GETPAGESIZE + +/* Define to 1 if you have the `getrandom' function. */ +#cmakedefine HAVE_GETRANDOM + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_INTTYPES_H + +/* Define to 1 if you have the `bsd' library (-lbsd). */ +#cmakedefine HAVE_LIBBSD + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MEMORY_H + +/* Define to 1 if you have a working `mmap' system call. */ +#cmakedefine HAVE_MMAP + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRING_H + +/* Define to 1 if you have `syscall' and `SYS_getrandom'. */ +#cmakedefine HAVE_SYSCALL_GETRANDOM + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UNISTD_H + +/* Name of package */ +#define PACKAGE "@PACKAGE_NAME@" + +/* Define to the address where bug reports for this package should be sent. */ +#cmakedefine PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@" + +/* Define to the full name of this package. */ +#cmakedefine PACKAGE_NAME "@PACKAGE_NAME@" + +/* Define to the full name and version of this package. */ +#cmakedefine PACKAGE_STRING "@PACKAGE_STRING@" + +/* Define to the one symbol short name of this package. */ +#cmakedefine PACKAGE_TARNAME "@PACKAGE_TARNAME@" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#cmakedefine PACKAGE_VERSION "@PACKAGE_VERSION@" + +/* Define to 1 if you have the ANSI C header files. */ +#cmakedefine STDC_HEADERS + +/* whether byteorder is bigendian */ +#cmakedefine WORDS_BIGENDIAN + +/* Define to allow retrieving the byte offsets for attribute names and values. + */ +#cmakedefine XML_ATTR_INFO + +/* Define to specify how much context to retain around the current parse + point. */ +#cmakedefine XML_CONTEXT_BYTES @XML_CONTEXT_BYTES@ + +#if ! defined(_WIN32) +/* Define to include code reading entropy from `/dev/urandom'. */ +#cmakedefine XML_DEV_URANDOM +#endif + +/* Define to make parameter entity parsing functionality available. */ +#cmakedefine XML_DTD + +/* Define to make XML Namespaces functionality available. */ +#cmakedefine XML_NS + +/* Define to __FUNCTION__ or "" if `__func__' does not conform to ANSI C. */ +#ifdef _MSC_VER +# define __func__ __FUNCTION__ +#endif + +/* Define to `long' if does not define. */ +#cmakedefine off_t @OFF_T@ + +/* Define to `unsigned' if does not define. */ +#cmakedefine size_t @SIZE_T@ diff --git a/source/externals/expat/include/expat.h b/source/externals/expat/include/expat.h index 9a21680be4..2b47ce2a8d 100644 --- a/source/externals/expat/include/expat.h +++ b/source/externals/expat/include/expat.h @@ -1,19 +1,46 @@ -/* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2000-2005 Fred L. Drake, Jr. + Copyright (c) 2001-2002 Greg Stein + Copyright (c) 2002-2016 Karl Waclawek + Copyright (c) 2016-2022 Sebastian Pipping + Copyright (c) 2016 Cristian Rodríguez + Copyright (c) 2016 Thomas Beutlich + Copyright (c) 2017 Rhodri James + Copyright (c) 2022 Thijs Schreijer + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef Expat_INCLUDED #define Expat_INCLUDED 1 -#ifdef __VMS -/* 0 1 2 3 0 1 2 3 - 1234567890123456789012345678901 1234567890123456789012345678901 */ -#define XML_SetProcessingInstructionHandler XML_SetProcessingInstrHandler -#define XML_SetUnparsedEntityDeclHandler XML_SetUnparsedEntDeclHandler -#define XML_SetStartNamespaceDeclHandler XML_SetStartNamespcDeclHandler -#define XML_SetExternalEntityRefHandlerArg XML_SetExternalEntRefHandlerArg -#endif - #include #include "expat_external.h" @@ -24,10 +51,9 @@ extern "C" { struct XML_ParserStruct; typedef struct XML_ParserStruct *XML_Parser; -/* Should this be defined using stdbool.h when C99 is available? */ typedef unsigned char XML_Bool; -#define XML_TRUE ((XML_Bool) 1) -#define XML_FALSE ((XML_Bool) 0) +#define XML_TRUE ((XML_Bool)1) +#define XML_FALSE ((XML_Bool)0) /* The XML_Status enum gives the possible return values for several API functions. The preprocessor #defines are included so this @@ -95,7 +121,13 @@ enum XML_Error { /* Added in 2.0. */ XML_ERROR_RESERVED_PREFIX_XML, XML_ERROR_RESERVED_PREFIX_XMLNS, - XML_ERROR_RESERVED_NAMESPACE_URI + XML_ERROR_RESERVED_NAMESPACE_URI, + /* Added in 2.2.1. */ + XML_ERROR_INVALID_ARGUMENT, + /* Added in 2.3.0. */ + XML_ERROR_NO_BUFFER, + /* Added in 2.4.0. */ + XML_ERROR_AMPLIFICATION_LIMIT_BREACH }; enum XML_Content_Type { @@ -135,25 +167,25 @@ enum XML_Content_Quant { typedef struct XML_cp XML_Content; struct XML_cp { - enum XML_Content_Type type; - enum XML_Content_Quant quant; - XML_Char * name; - unsigned int numchildren; - XML_Content * children; + enum XML_Content_Type type; + enum XML_Content_Quant quant; + XML_Char *name; + unsigned int numchildren; + XML_Content *children; }; - /* This is called for an element declaration. See above for - description of the model argument. It's the caller's responsibility - to free model when finished with it. + description of the model argument. It's the user code's responsibility + to free model when finished with it. See XML_FreeContentModel. + There is no need to free the model from the handler, it can be kept + around and freed at a later stage. */ -typedef void (XMLCALL *XML_ElementDeclHandler) (void *userData, - const XML_Char *name, - XML_Content *model); +typedef void(XMLCALL *XML_ElementDeclHandler)(void *userData, + const XML_Char *name, + XML_Content *model); XMLPARSEAPI(void) -XML_SetElementDeclHandler(XML_Parser parser, - XML_ElementDeclHandler eldecl); +XML_SetElementDeclHandler(XML_Parser parser, XML_ElementDeclHandler eldecl); /* The Attlist declaration handler is called for *each* attribute. So a single Attlist declaration with multiple attributes declared will @@ -163,17 +195,12 @@ XML_SetElementDeclHandler(XML_Parser parser, value will be NULL in the case of "#REQUIRED". If "isrequired" is true and default is non-NULL, then this is a "#FIXED" default. */ -typedef void (XMLCALL *XML_AttlistDeclHandler) ( - void *userData, - const XML_Char *elname, - const XML_Char *attname, - const XML_Char *att_type, - const XML_Char *dflt, - int isrequired); +typedef void(XMLCALL *XML_AttlistDeclHandler)( + void *userData, const XML_Char *elname, const XML_Char *attname, + const XML_Char *att_type, const XML_Char *dflt, int isrequired); XMLPARSEAPI(void) -XML_SetAttlistDeclHandler(XML_Parser parser, - XML_AttlistDeclHandler attdecl); +XML_SetAttlistDeclHandler(XML_Parser parser, XML_AttlistDeclHandler attdecl); /* The XML declaration handler is called for *both* XML declarations and text declarations. The way to distinguish is that the version @@ -183,15 +210,13 @@ XML_SetAttlistDeclHandler(XML_Parser parser, was no standalone parameter in the declaration, that it was given as no, or that it was given as yes. */ -typedef void (XMLCALL *XML_XmlDeclHandler) (void *userData, - const XML_Char *version, - const XML_Char *encoding, - int standalone); +typedef void(XMLCALL *XML_XmlDeclHandler)(void *userData, + const XML_Char *version, + const XML_Char *encoding, + int standalone); XMLPARSEAPI(void) -XML_SetXmlDeclHandler(XML_Parser parser, - XML_XmlDeclHandler xmldecl); - +XML_SetXmlDeclHandler(XML_Parser parser, XML_XmlDeclHandler xmldecl); typedef struct { void *(*malloc_fcn)(size_t size); @@ -215,11 +240,21 @@ XML_ParserCreate(const XML_Char *encoding); and the local part will be concatenated without any separator. It is a programming error to use the separator '\0' with namespace triplets (see XML_SetReturnNSTriplet). + If a namespace separator is chosen that can be part of a URI or + part of an XML name, splitting an expanded name back into its + 1, 2 or 3 original parts on application level in the element handler + may end up vulnerable, so these are advised against; sane choices for + a namespace separator are e.g. '\n' (line feed) and '|' (pipe). + + Note that Expat does not validate namespace URIs (beyond encoding) + against RFC 3986 today (and is not required to do so with regard to + the XML 1.0 namespaces specification) but it may start doing that + in future releases. Before that, an application using Expat must + be ready to receive namespace URIs containing non-URI characters. */ XMLPARSEAPI(XML_Parser) XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator); - /* Constructs a new parser using the memory management suite referred to by memsuite. If memsuite is NULL, then use the standard library memory suite. If namespaceSeparator is non-NULL it creates a parser with @@ -235,7 +270,7 @@ XML_ParserCreate_MM(const XML_Char *encoding, const XML_Char *namespaceSeparator); /* Prepare a parser object to be re-used. This is particularly - valuable when memory allocation overhead is disproportionatly high, + valuable when memory allocation overhead is disproportionately high, such as when a large number of small documnents need to be parsed. All handlers are cleared from the parser, except for the unknownEncodingHandler. The parser's external state is re-initialized @@ -249,31 +284,27 @@ XML_ParserReset(XML_Parser parser, const XML_Char *encoding); /* atts is array of name/value pairs, terminated by 0; names and values are 0 terminated. */ -typedef void (XMLCALL *XML_StartElementHandler) (void *userData, - const XML_Char *name, - const XML_Char **atts); - -typedef void (XMLCALL *XML_EndElementHandler) (void *userData, - const XML_Char *name); +typedef void(XMLCALL *XML_StartElementHandler)(void *userData, + const XML_Char *name, + const XML_Char **atts); +typedef void(XMLCALL *XML_EndElementHandler)(void *userData, + const XML_Char *name); /* s is not 0 terminated. */ -typedef void (XMLCALL *XML_CharacterDataHandler) (void *userData, - const XML_Char *s, - int len); +typedef void(XMLCALL *XML_CharacterDataHandler)(void *userData, + const XML_Char *s, int len); /* target and data are 0 terminated */ -typedef void (XMLCALL *XML_ProcessingInstructionHandler) ( - void *userData, - const XML_Char *target, - const XML_Char *data); +typedef void(XMLCALL *XML_ProcessingInstructionHandler)(void *userData, + const XML_Char *target, + const XML_Char *data); /* data is 0 terminated */ -typedef void (XMLCALL *XML_CommentHandler) (void *userData, - const XML_Char *data); +typedef void(XMLCALL *XML_CommentHandler)(void *userData, const XML_Char *data); -typedef void (XMLCALL *XML_StartCdataSectionHandler) (void *userData); -typedef void (XMLCALL *XML_EndCdataSectionHandler) (void *userData); +typedef void(XMLCALL *XML_StartCdataSectionHandler)(void *userData); +typedef void(XMLCALL *XML_EndCdataSectionHandler)(void *userData); /* This is called for any characters in the XML document for which there is no applicable handler. This includes both characters that @@ -288,25 +319,23 @@ typedef void (XMLCALL *XML_EndCdataSectionHandler) (void *userData); default handler: for example, a comment might be split between multiple calls. */ -typedef void (XMLCALL *XML_DefaultHandler) (void *userData, - const XML_Char *s, - int len); +typedef void(XMLCALL *XML_DefaultHandler)(void *userData, const XML_Char *s, + int len); /* This is called for the start of the DOCTYPE declaration, before any DTD or internal subset is parsed. */ -typedef void (XMLCALL *XML_StartDoctypeDeclHandler) ( - void *userData, - const XML_Char *doctypeName, - const XML_Char *sysid, - const XML_Char *pubid, - int has_internal_subset); +typedef void(XMLCALL *XML_StartDoctypeDeclHandler)(void *userData, + const XML_Char *doctypeName, + const XML_Char *sysid, + const XML_Char *pubid, + int has_internal_subset); -/* This is called for the start of the DOCTYPE declaration when the +/* This is called for the end of the DOCTYPE declaration when the closing > is encountered, but after processing any external subset. */ -typedef void (XMLCALL *XML_EndDoctypeDeclHandler)(void *userData); +typedef void(XMLCALL *XML_EndDoctypeDeclHandler)(void *userData); /* This is called for entity declarations. The is_parameter_entity argument will be non-zero if the entity is a parameter entity, zero @@ -314,7 +343,7 @@ typedef void (XMLCALL *XML_EndDoctypeDeclHandler)(void *userData); For internal entities (), value will be non-NULL and systemId, publicID, and notationName will be NULL. - The value string is NOT nul-terminated; the length is provided in + The value string is NOT null-terminated; the length is provided in the value_length argument. Since it is legal to have zero-length values, do not use this argument to test for internal entities. @@ -326,23 +355,17 @@ typedef void (XMLCALL *XML_EndDoctypeDeclHandler)(void *userData); Note that is_parameter_entity can't be changed to XML_Bool, since that would break binary compatibility. */ -typedef void (XMLCALL *XML_EntityDeclHandler) ( - void *userData, - const XML_Char *entityName, - int is_parameter_entity, - const XML_Char *value, - int value_length, - const XML_Char *base, - const XML_Char *systemId, - const XML_Char *publicId, - const XML_Char *notationName); +typedef void(XMLCALL *XML_EntityDeclHandler)( + void *userData, const XML_Char *entityName, int is_parameter_entity, + const XML_Char *value, int value_length, const XML_Char *base, + const XML_Char *systemId, const XML_Char *publicId, + const XML_Char *notationName); XMLPARSEAPI(void) -XML_SetEntityDeclHandler(XML_Parser parser, - XML_EntityDeclHandler handler); +XML_SetEntityDeclHandler(XML_Parser parser, XML_EntityDeclHandler handler); /* OBSOLETE -- OBSOLETE -- OBSOLETE - This handler has been superceded by the EntityDeclHandler above. + This handler has been superseded by the EntityDeclHandler above. It is provided here for backward compatibility. This is called for a declaration of an unparsed (NDATA) entity. @@ -350,24 +373,20 @@ XML_SetEntityDeclHandler(XML_Parser parser, entityName, systemId and notationName arguments will never be NULL. The other arguments may be. */ -typedef void (XMLCALL *XML_UnparsedEntityDeclHandler) ( - void *userData, - const XML_Char *entityName, - const XML_Char *base, - const XML_Char *systemId, - const XML_Char *publicId, - const XML_Char *notationName); +typedef void(XMLCALL *XML_UnparsedEntityDeclHandler)( + void *userData, const XML_Char *entityName, const XML_Char *base, + const XML_Char *systemId, const XML_Char *publicId, + const XML_Char *notationName); /* This is called for a declaration of notation. The base argument is whatever was set by XML_SetBase. The notationName will never be NULL. The other arguments can be. */ -typedef void (XMLCALL *XML_NotationDeclHandler) ( - void *userData, - const XML_Char *notationName, - const XML_Char *base, - const XML_Char *systemId, - const XML_Char *publicId); +typedef void(XMLCALL *XML_NotationDeclHandler)(void *userData, + const XML_Char *notationName, + const XML_Char *base, + const XML_Char *systemId, + const XML_Char *publicId); /* When namespace processing is enabled, these are called once for each namespace declaration. The call to the start and end element @@ -375,14 +394,12 @@ typedef void (XMLCALL *XML_NotationDeclHandler) ( declaration handlers. For an xmlns attribute, prefix will be NULL. For an xmlns="" attribute, uri will be NULL. */ -typedef void (XMLCALL *XML_StartNamespaceDeclHandler) ( - void *userData, - const XML_Char *prefix, - const XML_Char *uri); +typedef void(XMLCALL *XML_StartNamespaceDeclHandler)(void *userData, + const XML_Char *prefix, + const XML_Char *uri); -typedef void (XMLCALL *XML_EndNamespaceDeclHandler) ( - void *userData, - const XML_Char *prefix); +typedef void(XMLCALL *XML_EndNamespaceDeclHandler)(void *userData, + const XML_Char *prefix); /* This is called if the document is not standalone, that is, it has an external subset or a reference to a parameter entity, but does not @@ -393,7 +410,7 @@ typedef void (XMLCALL *XML_EndNamespaceDeclHandler) ( conditions above this handler will only be called if the referenced entity was actually read. */ -typedef int (XMLCALL *XML_NotStandaloneHandler) (void *userData); +typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData); /* This is called for a reference to an external parsed general entity. The referenced entity is not automatically parsed. The @@ -429,12 +446,11 @@ typedef int (XMLCALL *XML_NotStandaloneHandler) (void *userData); Note that unlike other handlers the first argument is the parser, not userData. */ -typedef int (XMLCALL *XML_ExternalEntityRefHandler) ( - XML_Parser parser, - const XML_Char *context, - const XML_Char *base, - const XML_Char *systemId, - const XML_Char *publicId); +typedef int(XMLCALL *XML_ExternalEntityRefHandler)(XML_Parser parser, + const XML_Char *context, + const XML_Char *base, + const XML_Char *systemId, + const XML_Char *publicId); /* This is called in two situations: 1) An entity reference is encountered for which no declaration @@ -446,10 +462,9 @@ typedef int (XMLCALL *XML_ExternalEntityRefHandler) ( the event would be out of sync with the reporting of the declarations or attribute values */ -typedef void (XMLCALL *XML_SkippedEntityHandler) ( - void *userData, - const XML_Char *entityName, - int is_parameter_entity); +typedef void(XMLCALL *XML_SkippedEntityHandler)(void *userData, + const XML_Char *entityName, + int is_parameter_entity); /* This structure is filled in by the XML_UnknownEncodingHandler to provide information to the parser about encodings that are unknown @@ -506,8 +521,8 @@ typedef void (XMLCALL *XML_SkippedEntityHandler) ( typedef struct { int map[256]; void *data; - int (XMLCALL *convert)(void *data, const char *s); - void (XMLCALL *release)(void *data); + int(XMLCALL *convert)(void *data, const char *s); + void(XMLCALL *release)(void *data); } XML_Encoding; /* This is called for an encoding that is unknown to the parser. @@ -523,25 +538,21 @@ typedef struct { Otherwise it must return XML_STATUS_ERROR. If info does not describe a suitable encoding, then the parser will - return an XML_UNKNOWN_ENCODING error. + return an XML_ERROR_UNKNOWN_ENCODING error. */ -typedef int (XMLCALL *XML_UnknownEncodingHandler) ( - void *encodingHandlerData, - const XML_Char *name, - XML_Encoding *info); +typedef int(XMLCALL *XML_UnknownEncodingHandler)(void *encodingHandlerData, + const XML_Char *name, + XML_Encoding *info); XMLPARSEAPI(void) -XML_SetElementHandler(XML_Parser parser, - XML_StartElementHandler start, +XML_SetElementHandler(XML_Parser parser, XML_StartElementHandler start, XML_EndElementHandler end); XMLPARSEAPI(void) -XML_SetStartElementHandler(XML_Parser parser, - XML_StartElementHandler handler); +XML_SetStartElementHandler(XML_Parser parser, XML_StartElementHandler handler); XMLPARSEAPI(void) -XML_SetEndElementHandler(XML_Parser parser, - XML_EndElementHandler handler); +XML_SetEndElementHandler(XML_Parser parser, XML_EndElementHandler handler); XMLPARSEAPI(void) XML_SetCharacterDataHandler(XML_Parser parser, @@ -551,8 +562,7 @@ XMLPARSEAPI(void) XML_SetProcessingInstructionHandler(XML_Parser parser, XML_ProcessingInstructionHandler handler); XMLPARSEAPI(void) -XML_SetCommentHandler(XML_Parser parser, - XML_CommentHandler handler); +XML_SetCommentHandler(XML_Parser parser, XML_CommentHandler handler); XMLPARSEAPI(void) XML_SetCdataSectionHandler(XML_Parser parser, @@ -572,20 +582,17 @@ XML_SetEndCdataSectionHandler(XML_Parser parser, default handler, or to the skipped entity handler, if one is set. */ XMLPARSEAPI(void) -XML_SetDefaultHandler(XML_Parser parser, - XML_DefaultHandler handler); +XML_SetDefaultHandler(XML_Parser parser, XML_DefaultHandler handler); /* This sets the default handler but does not inhibit expansion of internal entities. The entity reference will not be passed to the default handler. */ XMLPARSEAPI(void) -XML_SetDefaultHandlerExpand(XML_Parser parser, - XML_DefaultHandler handler); +XML_SetDefaultHandlerExpand(XML_Parser parser, XML_DefaultHandler handler); XMLPARSEAPI(void) -XML_SetDoctypeDeclHandler(XML_Parser parser, - XML_StartDoctypeDeclHandler start, +XML_SetDoctypeDeclHandler(XML_Parser parser, XML_StartDoctypeDeclHandler start, XML_EndDoctypeDeclHandler end); XMLPARSEAPI(void) @@ -593,16 +600,14 @@ XML_SetStartDoctypeDeclHandler(XML_Parser parser, XML_StartDoctypeDeclHandler start); XMLPARSEAPI(void) -XML_SetEndDoctypeDeclHandler(XML_Parser parser, - XML_EndDoctypeDeclHandler end); +XML_SetEndDoctypeDeclHandler(XML_Parser parser, XML_EndDoctypeDeclHandler end); XMLPARSEAPI(void) XML_SetUnparsedEntityDeclHandler(XML_Parser parser, XML_UnparsedEntityDeclHandler handler); XMLPARSEAPI(void) -XML_SetNotationDeclHandler(XML_Parser parser, - XML_NotationDeclHandler handler); +XML_SetNotationDeclHandler(XML_Parser parser, XML_NotationDeclHandler handler); XMLPARSEAPI(void) XML_SetNamespaceDeclHandler(XML_Parser parser, @@ -630,8 +635,7 @@ XML_SetExternalEntityRefHandler(XML_Parser parser, instead of the parser object. */ XMLPARSEAPI(void) -XML_SetExternalEntityRefHandlerArg(XML_Parser parser, - void *arg); +XML_SetExternalEntityRefHandlerArg(XML_Parser parser, void *arg); XMLPARSEAPI(void) XML_SetSkippedEntityHandler(XML_Parser parser, @@ -706,11 +710,11 @@ XML_UseParserAsHandlerArg(XML_Parser parser); be called, despite an external subset being parsed. Note: If XML_DTD is not defined when Expat is compiled, returns XML_ERROR_FEATURE_REQUIRES_XML_DTD. + Note: If parser == NULL, returns XML_ERROR_INVALID_ARGUMENT. */ XMLPARSEAPI(enum XML_Error) XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD); - /* Sets the base to be used for resolving relative URIs in system identifiers in declarations. Resolving relative identifiers is left to the application: this value will be passed through as the @@ -728,16 +732,17 @@ XML_GetBase(XML_Parser parser); /* Returns the number of the attribute/value pairs passed in last call to the XML_StartElementHandler that were specified in the start-tag rather than defaulted. Each attribute/value pair counts as 2; thus - this correspondds to an index into the atts array passed to the - XML_StartElementHandler. + this corresponds to an index into the atts array passed to the + XML_StartElementHandler. Returns -1 if parser == NULL. */ XMLPARSEAPI(int) XML_GetSpecifiedAttributeCount(XML_Parser parser); /* Returns the index of the ID attribute passed in the last call to - XML_StartElementHandler, or -1 if there is no ID attribute. Each - attribute/value pair counts as 2; thus this correspondds to an - index into the atts array passed to the XML_StartElementHandler. + XML_StartElementHandler, or -1 if there is no ID attribute or + parser == NULL. Each attribute/value pair counts as 2; thus this + corresponds to an index into the atts array passed to the + XML_StartElementHandler. */ XMLPARSEAPI(int) XML_GetIdAttributeIndex(XML_Parser parser); @@ -749,10 +754,10 @@ XML_GetIdAttributeIndex(XML_Parser parser); info->valueEnd - info->valueStart = 4 bytes. */ typedef struct { - XML_Index nameStart; /* Offset to beginning of the attribute name. */ - XML_Index nameEnd; /* Offset after the attribute name's last byte. */ - XML_Index valueStart; /* Offset to beginning of the attribute value. */ - XML_Index valueEnd; /* Offset after the attribute value's last byte. */ + XML_Index nameStart; /* Offset to beginning of the attribute name. */ + XML_Index nameEnd; /* Offset after the attribute name's last byte. */ + XML_Index valueStart; /* Offset to beginning of the attribute value. */ + XML_Index valueEnd; /* Offset after the attribute value's last byte. */ } XML_AttrInfo; /* Returns an array of XML_AttrInfo structures for the attribute/value pairs @@ -788,20 +793,20 @@ XML_ParseBuffer(XML_Parser parser, int len, int isFinal); (resumable = 0) an already suspended parser. Some call-backs may still follow because they would otherwise get lost. Examples: - endElementHandler() for empty elements when stopped in - startElementHandler(), - - endNameSpaceDeclHandler() when stopped in endElementHandler(), + startElementHandler(), + - endNameSpaceDeclHandler() when stopped in endElementHandler(), and possibly others. Can be called from most handlers, including DTD related call-backs, except when parsing an external parameter entity and resumable != 0. Returns XML_STATUS_OK when successful, XML_STATUS_ERROR otherwise. - Possible error codes: + Possible error codes: - XML_ERROR_SUSPENDED: when suspending an already suspended parser. - XML_ERROR_FINISHED: when the parser has already finished. - XML_ERROR_SUSPEND_PE: when suspending while parsing an external PE. - When resumable != 0 (true) then parsing is suspended, that is, - XML_Parse() and XML_ParseBuffer() return XML_STATUS_SUSPENDED. + When resumable != 0 (true) then parsing is suspended, that is, + XML_Parse() and XML_ParseBuffer() return XML_STATUS_SUSPENDED. Otherwise, parsing is aborted, that is, XML_Parse() and XML_ParseBuffer() return XML_STATUS_ERROR with error code XML_ERROR_ABORTED. @@ -812,7 +817,7 @@ XML_ParseBuffer(XML_Parser parser, int len, int isFinal); the externalEntityRefHandler() to call XML_StopParser() on the parent parser (recursively), if one wants to stop parsing altogether. - When suspended, parsing can be resumed by calling XML_ResumeParser(). + When suspended, parsing can be resumed by calling XML_ResumeParser(). */ XMLPARSEAPI(enum XML_Status) XML_StopParser(XML_Parser parser, XML_Bool resumable); @@ -820,7 +825,7 @@ XML_StopParser(XML_Parser parser, XML_Bool resumable); /* Resumes parsing after it has been suspended with XML_StopParser(). Must not be called from within a handler call-back. Returns same status codes as XML_Parse() or XML_ParseBuffer(). - Additional error code XML_ERROR_NOT_SUSPENDED possible. + Additional error code XML_ERROR_NOT_SUSPENDED possible. *Note*: This must be called on the most deeply nested child parser instance @@ -832,12 +837,7 @@ XML_StopParser(XML_Parser parser, XML_Bool resumable); XMLPARSEAPI(enum XML_Status) XML_ResumeParser(XML_Parser parser); -enum XML_Parsing { - XML_INITIALIZED, - XML_PARSING, - XML_FINISHED, - XML_SUSPENDED -}; +enum XML_Parsing { XML_INITIALIZED, XML_PARSING, XML_FINISHED, XML_SUSPENDED }; typedef struct { enum XML_Parsing parsing; @@ -869,8 +869,7 @@ XML_GetParsingStatus(XML_Parser parser, XML_ParsingStatus *status); Otherwise returns a new XML_Parser object. */ XMLPARSEAPI(XML_Parser) -XML_ExternalEntityParserCreate(XML_Parser parser, - const XML_Char *context, +XML_ExternalEntityParserCreate(XML_Parser parser, const XML_Char *context, const XML_Char *encoding); enum XML_ParamEntityParsing { @@ -901,6 +900,7 @@ enum XML_ParamEntityParsing { entities is requested; otherwise it will return non-zero. Note: If XML_SetParamEntityParsing is called after XML_Parse or XML_ParseBuffer, then it has no effect and will always return 0. + Note: If parser == NULL, the function will do nothing and return 0. */ XMLPARSEAPI(int) XML_SetParamEntityParsing(XML_Parser parser, @@ -910,10 +910,10 @@ XML_SetParamEntityParsing(XML_Parser parser, Helps in preventing DoS attacks based on predicting hash function behavior. This must be called before parsing is started. Returns 1 if successful, 0 when called after parsing has started. + Note: If parser == NULL, the function will do nothing and return 0. */ XMLPARSEAPI(int) -XML_SetHashSalt(XML_Parser parser, - unsigned long hash_salt); +XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt); /* If XML_Parse or XML_ParseBuffer have returned XML_STATUS_ERROR, then XML_GetErrorCode returns information about the error. @@ -930,12 +930,16 @@ XML_GetErrorCode(XML_Parser parser); be within the relevant markup. When called outside of the callback functions, the position indicated will be just past the last parse event (regardless of whether there was an associated callback). - + They may also be called after returning from a call to XML_Parse or XML_ParseBuffer. If the return value is XML_STATUS_ERROR then the location is the location of the character at which the error was detected; otherwise the location is the location of the last parse event, as described above. + + Note: XML_GetCurrentLineNumber and XML_GetCurrentColumnNumber + return 0 to indicate an error. + Note: XML_GetCurrentByteIndex returns -1 to indicate an error. */ XMLPARSEAPI(XML_Size) XML_GetCurrentLineNumber(XML_Parser parser); XMLPARSEAPI(XML_Size) XML_GetCurrentColumnNumber(XML_Parser parser); @@ -958,14 +962,12 @@ XML_GetCurrentByteCount(XML_Parser parser); the handler that makes the call. */ XMLPARSEAPI(const char *) -XML_GetInputContext(XML_Parser parser, - int *offset, - int *size); +XML_GetInputContext(XML_Parser parser, int *offset, int *size); /* For backwards compatibility with previous versions. */ -#define XML_GetErrorLineNumber XML_GetCurrentLineNumber +#define XML_GetErrorLineNumber XML_GetCurrentLineNumber #define XML_GetErrorColumnNumber XML_GetCurrentColumnNumber -#define XML_GetErrorByteIndex XML_GetCurrentByteIndex +#define XML_GetErrorByteIndex XML_GetCurrentByteIndex /* Frees the content model passed to the element declaration handler */ XMLPARSEAPI(void) @@ -973,9 +975,12 @@ XML_FreeContentModel(XML_Parser parser, XML_Content *model); /* Exposing the memory handling functions used in Expat */ XMLPARSEAPI(void *) +XML_ATTR_MALLOC +XML_ATTR_ALLOC_SIZE(2) XML_MemMalloc(XML_Parser parser, size_t size); XMLPARSEAPI(void *) +XML_ATTR_ALLOC_SIZE(3) XML_MemRealloc(XML_Parser parser, void *ptr, size_t size); XMLPARSEAPI(void) @@ -1017,28 +1022,40 @@ enum XML_FeatureEnum { XML_FEATURE_SIZEOF_XML_LCHAR, XML_FEATURE_NS, XML_FEATURE_LARGE_SIZE, - XML_FEATURE_ATTR_INFO + XML_FEATURE_ATTR_INFO, + /* Added in Expat 2.4.0. */ + XML_FEATURE_BILLION_LAUGHS_ATTACK_PROTECTION_MAXIMUM_AMPLIFICATION_DEFAULT, + XML_FEATURE_BILLION_LAUGHS_ATTACK_PROTECTION_ACTIVATION_THRESHOLD_DEFAULT /* Additional features must be added to the end of this enum. */ }; typedef struct { - enum XML_FeatureEnum feature; - const XML_LChar *name; - long int value; + enum XML_FeatureEnum feature; + const XML_LChar *name; + long int value; } XML_Feature; XMLPARSEAPI(const XML_Feature *) XML_GetFeatureList(void); +#ifdef XML_DTD +/* Added in Expat 2.4.0. */ +XMLPARSEAPI(XML_Bool) +XML_SetBillionLaughsAttackProtectionMaximumAmplification( + XML_Parser parser, float maximumAmplificationFactor); -/* Expat follows the GNU/Linux convention of odd number minor version for - beta/development releases and even number minor version for stable - releases. Micro is bumped with each release, and set to 0 with each - change to major or minor version. +/* Added in Expat 2.4.0. */ +XMLPARSEAPI(XML_Bool) +XML_SetBillionLaughsAttackProtectionActivationThreshold( + XML_Parser parser, unsigned long long activationThresholdBytes); +#endif + +/* Expat follows the semantic versioning convention. + See http://semver.org. */ #define XML_MAJOR_VERSION 2 -#define XML_MINOR_VERSION 1 -#define XML_MICRO_VERSION 0 +#define XML_MINOR_VERSION 4 +#define XML_MICRO_VERSION 9 #ifdef __cplusplus } diff --git a/source/externals/expat/include/expat_external.h b/source/externals/expat/include/expat_external.h index a8553ffc21..8829f77091 100644 --- a/source/externals/expat/include/expat_external.h +++ b/source/externals/expat/include/expat_external.h @@ -1,5 +1,40 @@ -/* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2000-2004 Fred L. Drake, Jr. + Copyright (c) 2001-2002 Greg Stein + Copyright (c) 2002-2006 Karl Waclawek + Copyright (c) 2016 Cristian Rodríguez + Copyright (c) 2016-2019 Sebastian Pipping + Copyright (c) 2017 Rhodri James + Copyright (c) 2018 Yury Gribov + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef Expat_External_INCLUDED @@ -7,10 +42,6 @@ /* External API definitions */ -#if defined(_MSC_EXTENSIONS) && !defined(__BEOS__) && !defined(__CYGWIN__) -#define XML_USE_MSC_EXTENSIONS 1 -#endif - /* Expat tries very hard to make the API boundary very specifically defined. There are two macros defined to control this boundary; each of these can be defined before including this header to @@ -34,11 +65,11 @@ system headers may assume the cdecl convention. */ #ifndef XMLCALL -#if defined(_MSC_VER) -#define XMLCALL __cdecl -#elif defined(__GNUC__) && defined(__i386) && !defined(__INTEL_COMPILER) -#define XMLCALL __attribute__((cdecl)) -#else +# if defined(_MSC_VER) +# define XMLCALL __cdecl +# elif defined(__GNUC__) && defined(__i386) && ! defined(__INTEL_COMPILER) +# define XMLCALL __attribute__((cdecl)) +# else /* For any platform which uses this definition and supports more than one calling convention, we need to extend this definition to declare the convention used on that platform, if it's possible to @@ -49,28 +80,47 @@ pre-processor and how to specify the same calling convention as the platform's malloc() implementation. */ -#define XMLCALL -#endif -#endif /* not defined XMLCALL */ +# define XMLCALL +# endif +#endif /* not defined XMLCALL */ - -#if !defined(XML_STATIC) && !defined(XMLIMPORT) -#ifndef XML_BUILDING_EXPAT +#if ! defined(XML_STATIC) && ! defined(XMLIMPORT) +# ifndef XML_BUILDING_EXPAT /* using Expat from an application */ -#ifdef XML_USE_MSC_EXTENSIONS -#define XMLIMPORT __declspec(dllimport) +# if defined(_MSC_EXTENSIONS) && ! defined(__BEOS__) && ! defined(__CYGWIN__) +# define XMLIMPORT __declspec(dllimport) +# endif + +# endif +#endif /* not defined XML_STATIC */ + +#ifndef XML_ENABLE_VISIBILITY +# define XML_ENABLE_VISIBILITY 0 #endif +#if ! defined(XMLIMPORT) && XML_ENABLE_VISIBILITY +# define XMLIMPORT __attribute__((visibility("default"))) #endif -#endif /* not defined XML_STATIC */ - /* If we didn't define it above, define it away: */ #ifndef XMLIMPORT -#define XMLIMPORT +# define XMLIMPORT #endif +#if defined(__GNUC__) \ + && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)) +# define XML_ATTR_MALLOC __attribute__((__malloc__)) +#else +# define XML_ATTR_MALLOC +#endif + +#if defined(__GNUC__) \ + && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) +# define XML_ATTR_ALLOC_SIZE(x) __attribute__((__alloc_size__(x))) +#else +# define XML_ATTR_ALLOC_SIZE(x) +#endif #define XMLPARSEAPI(type) XMLIMPORT type XMLCALL @@ -79,30 +129,30 @@ extern "C" { #endif #ifdef XML_UNICODE_WCHAR_T -#define XML_UNICODE +# ifndef XML_UNICODE +# define XML_UNICODE +# endif +# if defined(__SIZEOF_WCHAR_T__) && (__SIZEOF_WCHAR_T__ != 2) +# error "sizeof(wchar_t) != 2; Need -fshort-wchar for both Expat and libc" +# endif #endif -#ifdef XML_UNICODE /* Information is UTF-16 encoded. */ -#ifdef XML_UNICODE_WCHAR_T +#ifdef XML_UNICODE /* Information is UTF-16 encoded. */ +# ifdef XML_UNICODE_WCHAR_T typedef wchar_t XML_Char; typedef wchar_t XML_LChar; -#else +# else typedef unsigned short XML_Char; typedef char XML_LChar; -#endif /* XML_UNICODE_WCHAR_T */ -#else /* Information is UTF-8 encoded. */ +# endif /* XML_UNICODE_WCHAR_T */ +#else /* Information is UTF-8 encoded. */ typedef char XML_Char; typedef char XML_LChar; -#endif /* XML_UNICODE */ +#endif /* XML_UNICODE */ -#ifdef XML_LARGE_SIZE /* Use large integers for file/stream positions. */ -#if defined(XML_USE_MSC_EXTENSIONS) && _MSC_VER < 1400 -typedef __int64 XML_Index; -typedef unsigned __int64 XML_Size; -#else +#ifdef XML_LARGE_SIZE /* Use large integers for file/stream positions. */ typedef long long XML_Index; typedef unsigned long long XML_Size; -#endif #else typedef long XML_Index; typedef unsigned long XML_Size; diff --git a/source/externals/expat/src/amigaconfig.h b/source/externals/expat/src/amigaconfig.h deleted file mode 100644 index 86c6115040..0000000000 --- a/source/externals/expat/src/amigaconfig.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef AMIGACONFIG_H -#define AMIGACONFIG_H - -/* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */ -#define BYTEORDER 4321 - -/* Define to 1 if you have the `bcopy' function. */ -#define HAVE_BCOPY 1 - -/* Define to 1 if you have the header file. */ -#undef HAVE_CHECK_H - -/* Define to 1 if you have the `memmove' function. */ -#define HAVE_MEMMOVE 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* whether byteorder is bigendian */ -#define WORDS_BIGENDIAN - -/* Define to specify how much context to retain around the current parse - point. */ -#define XML_CONTEXT_BYTES 1024 - -/* Define to make parameter entity parsing functionality available. */ -#define XML_DTD - -/* Define to make XML Namespaces functionality available. */ -#define XML_NS - -#endif /* AMIGACONFIG_H */ diff --git a/source/externals/expat/src/ascii.h b/source/externals/expat/src/ascii.h index d10530b09b..1f594d2e54 100644 --- a/source/externals/expat/src/ascii.h +++ b/source/externals/expat/src/ascii.h @@ -1,5 +1,36 @@ -/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1999-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2002 Fred L. Drake, Jr. + Copyright (c) 2007 Karl Waclawek + Copyright (c) 2017 Sebastian Pipping + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. */ #define ASCII_A 0x41 diff --git a/source/externals/expat/src/asciitab.h b/source/externals/expat/src/asciitab.h index 79a15c28ca..af766fb247 100644 --- a/source/externals/expat/src/asciitab.h +++ b/source/externals/expat/src/asciitab.h @@ -1,36 +1,66 @@ -/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2002 Fred L. Drake, Jr. + Copyright (c) 2017 Sebastian Pipping + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* 0x00 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x04 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x08 */ BT_NONXML, BT_S, BT_LF, BT_NONXML, -/* 0x0C */ BT_NONXML, BT_CR, BT_NONXML, BT_NONXML, -/* 0x10 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x14 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x18 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x1C */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x20 */ BT_S, BT_EXCL, BT_QUOT, BT_NUM, -/* 0x24 */ BT_OTHER, BT_PERCNT, BT_AMP, BT_APOS, -/* 0x28 */ BT_LPAR, BT_RPAR, BT_AST, BT_PLUS, -/* 0x2C */ BT_COMMA, BT_MINUS, BT_NAME, BT_SOL, -/* 0x30 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, -/* 0x34 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, -/* 0x38 */ BT_DIGIT, BT_DIGIT, BT_COLON, BT_SEMI, -/* 0x3C */ BT_LT, BT_EQUALS, BT_GT, BT_QUEST, -/* 0x40 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, -/* 0x44 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, -/* 0x48 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x4C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x50 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x54 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x58 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_LSQB, -/* 0x5C */ BT_OTHER, BT_RSQB, BT_OTHER, BT_NMSTRT, -/* 0x60 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, -/* 0x64 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, -/* 0x68 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x6C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x70 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x74 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x78 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, -/* 0x7C */ BT_VERBAR, BT_OTHER, BT_OTHER, BT_OTHER, + /* 0x04 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, + /* 0x08 */ BT_NONXML, BT_S, BT_LF, BT_NONXML, + /* 0x0C */ BT_NONXML, BT_CR, BT_NONXML, BT_NONXML, + /* 0x10 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, + /* 0x14 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, + /* 0x18 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, + /* 0x1C */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, + /* 0x20 */ BT_S, BT_EXCL, BT_QUOT, BT_NUM, + /* 0x24 */ BT_OTHER, BT_PERCNT, BT_AMP, BT_APOS, + /* 0x28 */ BT_LPAR, BT_RPAR, BT_AST, BT_PLUS, + /* 0x2C */ BT_COMMA, BT_MINUS, BT_NAME, BT_SOL, + /* 0x30 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, + /* 0x34 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, + /* 0x38 */ BT_DIGIT, BT_DIGIT, BT_COLON, BT_SEMI, + /* 0x3C */ BT_LT, BT_EQUALS, BT_GT, BT_QUEST, + /* 0x40 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, + /* 0x44 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, + /* 0x48 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x4C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x50 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x54 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x58 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_LSQB, + /* 0x5C */ BT_OTHER, BT_RSQB, BT_OTHER, BT_NMSTRT, + /* 0x60 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, + /* 0x64 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, + /* 0x68 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x6C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x70 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x74 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x78 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, + /* 0x7C */ BT_VERBAR, BT_OTHER, BT_OTHER, BT_OTHER, diff --git a/source/externals/expat/src/iasciitab.h b/source/externals/expat/src/iasciitab.h index 24a1d5ccc9..5d8646f2a3 100644 --- a/source/externals/expat/src/iasciitab.h +++ b/source/externals/expat/src/iasciitab.h @@ -1,37 +1,67 @@ -/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2002 Fred L. Drake, Jr. + Copyright (c) 2017 Sebastian Pipping + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* Like asciitab.h, except that 0xD has code BT_S rather than BT_CR */ /* 0x00 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x04 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x08 */ BT_NONXML, BT_S, BT_LF, BT_NONXML, -/* 0x0C */ BT_NONXML, BT_S, BT_NONXML, BT_NONXML, -/* 0x10 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x14 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x18 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x1C */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0x20 */ BT_S, BT_EXCL, BT_QUOT, BT_NUM, -/* 0x24 */ BT_OTHER, BT_PERCNT, BT_AMP, BT_APOS, -/* 0x28 */ BT_LPAR, BT_RPAR, BT_AST, BT_PLUS, -/* 0x2C */ BT_COMMA, BT_MINUS, BT_NAME, BT_SOL, -/* 0x30 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, -/* 0x34 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, -/* 0x38 */ BT_DIGIT, BT_DIGIT, BT_COLON, BT_SEMI, -/* 0x3C */ BT_LT, BT_EQUALS, BT_GT, BT_QUEST, -/* 0x40 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, -/* 0x44 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, -/* 0x48 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x4C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x50 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x54 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x58 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_LSQB, -/* 0x5C */ BT_OTHER, BT_RSQB, BT_OTHER, BT_NMSTRT, -/* 0x60 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, -/* 0x64 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, -/* 0x68 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x6C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x70 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x74 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0x78 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, -/* 0x7C */ BT_VERBAR, BT_OTHER, BT_OTHER, BT_OTHER, + /* 0x04 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, + /* 0x08 */ BT_NONXML, BT_S, BT_LF, BT_NONXML, + /* 0x0C */ BT_NONXML, BT_S, BT_NONXML, BT_NONXML, + /* 0x10 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, + /* 0x14 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, + /* 0x18 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, + /* 0x1C */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, + /* 0x20 */ BT_S, BT_EXCL, BT_QUOT, BT_NUM, + /* 0x24 */ BT_OTHER, BT_PERCNT, BT_AMP, BT_APOS, + /* 0x28 */ BT_LPAR, BT_RPAR, BT_AST, BT_PLUS, + /* 0x2C */ BT_COMMA, BT_MINUS, BT_NAME, BT_SOL, + /* 0x30 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, + /* 0x34 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, + /* 0x38 */ BT_DIGIT, BT_DIGIT, BT_COLON, BT_SEMI, + /* 0x3C */ BT_LT, BT_EQUALS, BT_GT, BT_QUEST, + /* 0x40 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, + /* 0x44 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, + /* 0x48 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x4C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x50 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x54 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x58 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_LSQB, + /* 0x5C */ BT_OTHER, BT_RSQB, BT_OTHER, BT_NMSTRT, + /* 0x60 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, + /* 0x64 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, + /* 0x68 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x6C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x70 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x74 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x78 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, + /* 0x7C */ BT_VERBAR, BT_OTHER, BT_OTHER, BT_OTHER, diff --git a/source/externals/expat/src/internal.h b/source/externals/expat/src/internal.h index dd5454831d..e09f533b23 100644 --- a/source/externals/expat/src/internal.h +++ b/source/externals/expat/src/internal.h @@ -18,9 +18,42 @@ Note: Use of these macros is based on judgement, not hard rules, and therefore subject to change. + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 2002-2003 Fred L. Drake, Jr. + Copyright (c) 2002-2006 Karl Waclawek + Copyright (c) 2003 Greg Stein + Copyright (c) 2016-2022 Sebastian Pipping + Copyright (c) 2018 Yury Gribov + Copyright (c) 2019 David Loffredo + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#if defined(__GNUC__) && defined(__i386__) && !defined(__MINGW32__) +#if defined(__GNUC__) && defined(__i386__) && ! defined(__MINGW32__) /* We'll use this version by default only where we know it helps. regparm() generates warnings on Solaris boxes. See SF bug #692878. @@ -30,8 +63,8 @@ #define FASTCALL __attribute__((stdcall, regparm(3))) and let's try this: */ -#define FASTCALL __attribute__((regparm(3))) -#define PTRFASTCALL __attribute__((regparm(3))) +# define FASTCALL __attribute__((regparm(3))) +# define PTRFASTCALL __attribute__((regparm(3))) #endif /* Using __fastcall seems to have an unexpected negative effect under @@ -45,29 +78,88 @@ /* Make sure all of these are defined if they aren't already. */ #ifndef FASTCALL -#define FASTCALL +# define FASTCALL #endif #ifndef PTRCALL -#define PTRCALL +# define PTRCALL #endif #ifndef PTRFASTCALL -#define PTRFASTCALL +# define PTRFASTCALL #endif #ifndef XML_MIN_SIZE -#if !defined(__cplusplus) && !defined(inline) -#ifdef __GNUC__ -#define inline __inline -#endif /* __GNUC__ */ -#endif +# if ! defined(__cplusplus) && ! defined(inline) +# ifdef __GNUC__ +# define inline __inline +# endif /* __GNUC__ */ +# endif #endif /* XML_MIN_SIZE */ #ifdef __cplusplus -#define inline inline +# define inline inline #else -#ifndef inline -#define inline +# ifndef inline +# define inline +# endif #endif + +#include // ULONG_MAX + +#if defined(_WIN32) \ + && (! defined(__USE_MINGW_ANSI_STDIO) \ + || (1 - __USE_MINGW_ANSI_STDIO - 1 == 0)) +# define EXPAT_FMT_ULL(midpart) "%" midpart "I64u" +# if defined(_WIN64) // Note: modifiers "td" and "zu" do not work for MinGW +# define EXPAT_FMT_PTRDIFF_T(midpart) "%" midpart "I64d" +# define EXPAT_FMT_SIZE_T(midpart) "%" midpart "I64u" +# else +# define EXPAT_FMT_PTRDIFF_T(midpart) "%" midpart "d" +# define EXPAT_FMT_SIZE_T(midpart) "%" midpart "u" +# endif +#else +# define EXPAT_FMT_ULL(midpart) "%" midpart "llu" +# if ! defined(ULONG_MAX) +# error Compiler did not define ULONG_MAX for us +# elif ULONG_MAX == 18446744073709551615u // 2^64-1 +# define EXPAT_FMT_PTRDIFF_T(midpart) "%" midpart "ld" +# define EXPAT_FMT_SIZE_T(midpart) "%" midpart "lu" +# else +# define EXPAT_FMT_PTRDIFF_T(midpart) "%" midpart "d" +# define EXPAT_FMT_SIZE_T(midpart) "%" midpart "u" +# endif +#endif + +#ifndef UNUSED_P +# define UNUSED_P(p) (void)p +#endif + +/* NOTE BEGIN If you ever patch these defaults to greater values + for non-attack XML payload in your environment, + please file a bug report with libexpat. Thank you! +*/ +#define EXPAT_BILLION_LAUGHS_ATTACK_PROTECTION_MAXIMUM_AMPLIFICATION_DEFAULT \ + 100.0f +#define EXPAT_BILLION_LAUGHS_ATTACK_PROTECTION_ACTIVATION_THRESHOLD_DEFAULT \ + 8388608 // 8 MiB, 2^23 +/* NOTE END */ + +#include "expat.h" // so we can use type XML_Parser below + +#ifdef __cplusplus +extern "C" { +#endif + +void _INTERNAL_trim_to_complete_utf8_characters(const char *from, + const char **fromLimRef); + +#if defined(XML_DTD) +unsigned long long testingAccountingGetCountBytesDirect(XML_Parser parser); +unsigned long long testingAccountingGetCountBytesIndirect(XML_Parser parser); +const char *unsignedCharToPrintable(unsigned char c); +#endif + +#ifdef __cplusplus +} #endif diff --git a/source/externals/expat/src/latin1tab.h b/source/externals/expat/src/latin1tab.h index 53c25d76b2..b681d278af 100644 --- a/source/externals/expat/src/latin1tab.h +++ b/source/externals/expat/src/latin1tab.h @@ -1,36 +1,66 @@ -/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2002 Fred L. Drake, Jr. + Copyright (c) 2017 Sebastian Pipping + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* 0x80 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0x84 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0x88 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0x8C */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0x90 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0x94 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0x98 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0x9C */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0xA0 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0xA4 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0xA8 */ BT_OTHER, BT_OTHER, BT_NMSTRT, BT_OTHER, -/* 0xAC */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0xB0 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0xB4 */ BT_OTHER, BT_NMSTRT, BT_OTHER, BT_NAME, -/* 0xB8 */ BT_OTHER, BT_OTHER, BT_NMSTRT, BT_OTHER, -/* 0xBC */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, -/* 0xC0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xC4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xC8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xCC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xD0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xD4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, -/* 0xD8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xDC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xE0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xE4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xE8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xEC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xF0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xF4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, -/* 0xF8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, -/* 0xFC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0x84 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, + /* 0x88 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, + /* 0x8C */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, + /* 0x90 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, + /* 0x94 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, + /* 0x98 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, + /* 0x9C */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, + /* 0xA0 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, + /* 0xA4 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, + /* 0xA8 */ BT_OTHER, BT_OTHER, BT_NMSTRT, BT_OTHER, + /* 0xAC */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, + /* 0xB0 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, + /* 0xB4 */ BT_OTHER, BT_NMSTRT, BT_OTHER, BT_NAME, + /* 0xB8 */ BT_OTHER, BT_OTHER, BT_NMSTRT, BT_OTHER, + /* 0xBC */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, + /* 0xC0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0xC4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0xC8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0xCC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0xD0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0xD4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, + /* 0xD8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0xDC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0xE0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0xE4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0xE8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0xEC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0xF0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0xF4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, + /* 0xF8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, + /* 0xFC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, diff --git a/source/externals/expat/src/macconfig.h b/source/externals/expat/src/macconfig.h deleted file mode 100644 index 2725caaf54..0000000000 --- a/source/externals/expat/src/macconfig.h +++ /dev/null @@ -1,53 +0,0 @@ -/*================================================================ -** Copyright 2000, Clark Cooper -** All rights reserved. -** -** This is free software. You are permitted to copy, distribute, or modify -** it under the terms of the MIT/X license (contained in the COPYING file -** with this distribution.) -** -*/ - -#ifndef MACCONFIG_H -#define MACCONFIG_H - - -/* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */ -#define BYTEORDER 4321 - -/* Define to 1 if you have the `bcopy' function. */ -#undef HAVE_BCOPY - -/* Define to 1 if you have the `memmove' function. */ -#define HAVE_MEMMOVE - -/* Define to 1 if you have a working `mmap' system call. */ -#undef HAVE_MMAP - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* whether byteorder is bigendian */ -#define WORDS_BIGENDIAN - -/* Define to specify how much context to retain around the current parse - point. */ -#undef XML_CONTEXT_BYTES - -/* Define to make parameter entity parsing functionality available. */ -#define XML_DTD - -/* Define to make XML Namespaces functionality available. */ -#define XML_NS - -/* Define to empty if `const' does not conform to ANSI C. */ -#undef const - -/* Define to `long' if does not define. */ -#define off_t long - -/* Define to `unsigned' if does not define. */ -#undef size_t - - -#endif /* ifndef MACCONFIG_H */ diff --git a/source/externals/expat/src/nametab.h b/source/externals/expat/src/nametab.h index b05e62c77a..63485446b9 100644 --- a/source/externals/expat/src/nametab.h +++ b/source/externals/expat/src/nametab.h @@ -1,150 +1,136 @@ +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 2000 Clark Cooper + Copyright (c) 2017 Sebastian Pipping + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + static const unsigned namingBitmap[] = { -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, -0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, -0x00000000, 0x04000000, 0x87FFFFFE, 0x07FFFFFE, -0x00000000, 0x00000000, 0xFF7FFFFF, 0xFF7FFFFF, -0xFFFFFFFF, 0x7FF3FFFF, 0xFFFFFDFE, 0x7FFFFFFF, -0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE00F, 0xFC31FFFF, -0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF, -0xFFFFFFFF, 0xF80001FF, 0x00000003, 0x00000000, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0xFFFFD740, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD, -0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF, -0xFFFF0003, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF, -0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE, -0x0000007F, 0x00000000, 0xFFFF0000, 0x000707FF, -0x00000000, 0x07FFFFFE, 0x000007FE, 0xFFFE0000, -0xFFFFFFFF, 0x7CFFFFFF, 0x002F7FFF, 0x00000060, -0xFFFFFFE0, 0x23FFFFFF, 0xFF000000, 0x00000003, -0xFFF99FE0, 0x03C5FDFF, 0xB0000000, 0x00030003, -0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000, -0xFFFBAFE0, 0x23EDFDFF, 0x00000000, 0x00000001, -0xFFF99FE0, 0x23CDFDFF, 0xB0000000, 0x00000003, -0xD63DC7E0, 0x03BFC718, 0x00000000, 0x00000000, -0xFFFDDFE0, 0x03EFFDFF, 0x00000000, 0x00000003, -0xFFFDDFE0, 0x03EFFDFF, 0x40000000, 0x00000003, -0xFFFDDFE0, 0x03FFFDFF, 0x00000000, 0x00000003, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0xFFFFFFFE, 0x000D7FFF, 0x0000003F, 0x00000000, -0xFEF02596, 0x200D6CAE, 0x0000001F, 0x00000000, -0x00000000, 0x00000000, 0xFFFFFEFF, 0x000003FF, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x007FFFFF, -0x0007DAED, 0x50000000, 0x82315001, 0x002C62AB, -0x40000000, 0xF580C900, 0x00000007, 0x02010800, -0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, -0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, -0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF, -0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF, -0x00000000, 0x00004C40, 0x00000000, 0x00000000, -0x00000007, 0x00000000, 0x00000000, 0x00000000, -0x00000080, 0x000003FE, 0xFFFFFFFE, 0xFFFFFFFF, -0x001FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x07FFFFFF, -0xFFFFFFE0, 0x00001FFF, 0x00000000, 0x00000000, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, -0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000, -0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, -0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000, -0x00000000, 0x07FF6000, 0x87FFFFFE, 0x07FFFFFE, -0x00000000, 0x00800000, 0xFF7FFFFF, 0xFF7FFFFF, -0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF, -0xFFFFFFFF, 0xF80001FF, 0x00030003, 0x00000000, -0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000003, -0xFFFFD7C0, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD, -0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF, -0xFFFF007B, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF, -0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE, -0xFFFE007F, 0xBBFFFFFB, 0xFFFF0016, 0x000707FF, -0x00000000, 0x07FFFFFE, 0x0007FFFF, 0xFFFF03FF, -0xFFFFFFFF, 0x7CFFFFFF, 0xFFEF7FFF, 0x03FF3DFF, -0xFFFFFFEE, 0xF3FFFFFF, 0xFF1E3FFF, 0x0000FFCF, -0xFFF99FEE, 0xD3C5FDFF, 0xB080399F, 0x0003FFCF, -0xFFF987E4, 0xD36DFDFF, 0x5E003987, 0x001FFFC0, -0xFFFBAFEE, 0xF3EDFDFF, 0x00003BBF, 0x0000FFC1, -0xFFF99FEE, 0xF3CDFDFF, 0xB0C0398F, 0x0000FFC3, -0xD63DC7EC, 0xC3BFC718, 0x00803DC7, 0x0000FF80, -0xFFFDDFEE, 0xC3EFFDFF, 0x00603DDF, 0x0000FFC3, -0xFFFDDFEC, 0xC3EFFDFF, 0x40603DDF, 0x0000FFC3, -0xFFFDDFEC, 0xC3FFFDFF, 0x00803DCF, 0x0000FFC3, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0xFFFFFFFE, 0x07FF7FFF, 0x03FF7FFF, 0x00000000, -0xFEF02596, 0x3BFF6CAE, 0x03FF3F5F, 0x00000000, -0x03000000, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE03FF, -0xFEBF0FDF, 0x02FE3FFF, 0x00000000, 0x00000000, -0x00000000, 0x00000000, 0x00000000, 0x00000000, -0x00000000, 0x00000000, 0x1FFF0000, 0x00000002, -0x000000A0, 0x003EFFFE, 0xFFFFFFFE, 0xFFFFFFFF, -0x661FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x77FFFFFF, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, + 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x04000000, + 0x87FFFFFE, 0x07FFFFFE, 0x00000000, 0x00000000, 0xFF7FFFFF, 0xFF7FFFFF, + 0xFFFFFFFF, 0x7FF3FFFF, 0xFFFFFDFE, 0x7FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, + 0xFFFFE00F, 0xFC31FFFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF, + 0xFFFFFFFF, 0xF80001FF, 0x00000003, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0xFFFFD740, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD, + 0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF, 0xFFFF0003, 0xFFFFFFFF, + 0xFFFF199F, 0x033FCFFF, 0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE, + 0x0000007F, 0x00000000, 0xFFFF0000, 0x000707FF, 0x00000000, 0x07FFFFFE, + 0x000007FE, 0xFFFE0000, 0xFFFFFFFF, 0x7CFFFFFF, 0x002F7FFF, 0x00000060, + 0xFFFFFFE0, 0x23FFFFFF, 0xFF000000, 0x00000003, 0xFFF99FE0, 0x03C5FDFF, + 0xB0000000, 0x00030003, 0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000, + 0xFFFBAFE0, 0x23EDFDFF, 0x00000000, 0x00000001, 0xFFF99FE0, 0x23CDFDFF, + 0xB0000000, 0x00000003, 0xD63DC7E0, 0x03BFC718, 0x00000000, 0x00000000, + 0xFFFDDFE0, 0x03EFFDFF, 0x00000000, 0x00000003, 0xFFFDDFE0, 0x03EFFDFF, + 0x40000000, 0x00000003, 0xFFFDDFE0, 0x03FFFDFF, 0x00000000, 0x00000003, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFE, 0x000D7FFF, + 0x0000003F, 0x00000000, 0xFEF02596, 0x200D6CAE, 0x0000001F, 0x00000000, + 0x00000000, 0x00000000, 0xFFFFFEFF, 0x000003FF, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x007FFFFF, 0x0007DAED, 0x50000000, + 0x82315001, 0x002C62AB, 0x40000000, 0xF580C900, 0x00000007, 0x02010800, + 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0FFFFFFF, 0xFFFFFFFF, + 0xFFFFFFFF, 0x03FFFFFF, 0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF, + 0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF, 0x00000000, 0x00004C40, + 0x00000000, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000000, + 0x00000080, 0x000003FE, 0xFFFFFFFE, 0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFE, + 0xFFFFFFFF, 0x07FFFFFF, 0xFFFFFFE0, 0x00001FFF, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, + 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000, + 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, + 0x00000000, 0x00000000, 0x00000000, 0x07FF6000, 0x87FFFFFE, 0x07FFFFFE, + 0x00000000, 0x00800000, 0xFF7FFFFF, 0xFF7FFFFF, 0x00FFFFFF, 0x00000000, + 0xFFFF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0xF80001FF, 0x00030003, 0x00000000, + 0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000003, 0xFFFFD7C0, 0xFFFFFFFB, + 0x547F7FFF, 0x000FFFFD, 0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF, + 0xFFFF007B, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF, 0x00000000, 0xFFFE0000, + 0x027FFFFF, 0xFFFFFFFE, 0xFFFE007F, 0xBBFFFFFB, 0xFFFF0016, 0x000707FF, + 0x00000000, 0x07FFFFFE, 0x0007FFFF, 0xFFFF03FF, 0xFFFFFFFF, 0x7CFFFFFF, + 0xFFEF7FFF, 0x03FF3DFF, 0xFFFFFFEE, 0xF3FFFFFF, 0xFF1E3FFF, 0x0000FFCF, + 0xFFF99FEE, 0xD3C5FDFF, 0xB080399F, 0x0003FFCF, 0xFFF987E4, 0xD36DFDFF, + 0x5E003987, 0x001FFFC0, 0xFFFBAFEE, 0xF3EDFDFF, 0x00003BBF, 0x0000FFC1, + 0xFFF99FEE, 0xF3CDFDFF, 0xB0C0398F, 0x0000FFC3, 0xD63DC7EC, 0xC3BFC718, + 0x00803DC7, 0x0000FF80, 0xFFFDDFEE, 0xC3EFFDFF, 0x00603DDF, 0x0000FFC3, + 0xFFFDDFEC, 0xC3EFFDFF, 0x40603DDF, 0x0000FFC3, 0xFFFDDFEC, 0xC3FFFDFF, + 0x00803DCF, 0x0000FFC3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0xFFFFFFFE, 0x07FF7FFF, 0x03FF7FFF, 0x00000000, 0xFEF02596, 0x3BFF6CAE, + 0x03FF3F5F, 0x00000000, 0x03000000, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE03FF, + 0xFEBF0FDF, 0x02FE3FFF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1FFF0000, 0x00000002, + 0x000000A0, 0x003EFFFE, 0xFFFFFFFE, 0xFFFFFFFF, 0x661FFFFF, 0xFFFFFFFE, + 0xFFFFFFFF, 0x77FFFFFF, }; static const unsigned char nmstrtPages[] = { -0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00, -0x00, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, -0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13, -0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x15, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x09, 0x0A, 0x0B, + 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13, 0x00, 0x14, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x15, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, }; static const unsigned char namePages[] = { -0x19, 0x03, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x00, -0x00, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, -0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13, -0x26, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x27, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x19, 0x03, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x00, 0x00, 0x1F, 0x20, 0x21, + 0x22, 0x23, 0x24, 0x25, 0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13, 0x26, 0x14, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x27, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, }; diff --git a/source/externals/expat/src/siphash.h b/source/externals/expat/src/siphash.h new file mode 100644 index 0000000000..303283ad2d --- /dev/null +++ b/source/externals/expat/src/siphash.h @@ -0,0 +1,393 @@ +/* ========================================================================== + * siphash.h - SipHash-2-4 in a single header file + * -------------------------------------------------------------------------- + * Derived by William Ahern from the reference implementation[1] published[2] + * by Jean-Philippe Aumasson and Daniel J. Berstein. + * Minimal changes by Sebastian Pipping and Victor Stinner on top, see below. + * Licensed under the CC0 Public Domain Dedication license. + * + * 1. https://www.131002.net/siphash/siphash24.c + * 2. https://www.131002.net/siphash/ + * -------------------------------------------------------------------------- + * HISTORY: + * + * 2020-10-03 (Sebastian Pipping) + * - Drop support for Visual Studio 9.0/2008 and earlier + * + * 2019-08-03 (Sebastian Pipping) + * - Mark part of sip24_valid as to be excluded from clang-format + * - Re-format code using clang-format 9 + * + * 2018-07-08 (Anton Maklakov) + * - Add "fall through" markers for GCC's -Wimplicit-fallthrough + * + * 2017-11-03 (Sebastian Pipping) + * - Hide sip_tobin and sip_binof unless SIPHASH_TOBIN macro is defined + * + * 2017-07-25 (Vadim Zeitlin) + * - Fix use of SIPHASH_MAIN macro + * + * 2017-07-05 (Sebastian Pipping) + * - Use _SIP_ULL macro to not require a C++11 compiler if compiled as C++ + * - Add const qualifiers at two places + * - Ensure <=80 characters line length (assuming tab width 4) + * + * 2017-06-23 (Victor Stinner) + * - Address Win64 compile warnings + * + * 2017-06-18 (Sebastian Pipping) + * - Clarify license note in the header + * - Address C89 issues: + * - Stop using inline keyword (and let compiler decide) + * - Replace _Bool by int + * - Turn macro siphash24 into a function + * - Address invalid conversion (void pointer) by explicit cast + * - Address lack of stdint.h for Visual Studio 2003 to 2008 + * - Always expose sip24_valid (for self-tests) + * + * 2012-11-04 - Born. (William Ahern) + * -------------------------------------------------------------------------- + * USAGE: + * + * SipHash-2-4 takes as input two 64-bit words as the key, some number of + * message bytes, and outputs a 64-bit word as the message digest. This + * implementation employs two data structures: a struct sipkey for + * representing the key, and a struct siphash for representing the hash + * state. + * + * For converting a 16-byte unsigned char array to a key, use either the + * macro sip_keyof or the routine sip_tokey. The former instantiates a + * compound literal key, while the latter requires a key object as a + * parameter. + * + * unsigned char secret[16]; + * arc4random_buf(secret, sizeof secret); + * struct sipkey *key = sip_keyof(secret); + * + * For hashing a message, use either the convenience macro siphash24 or the + * routines sip24_init, sip24_update, and sip24_final. + * + * struct siphash state; + * void *msg; + * size_t len; + * uint64_t hash; + * + * sip24_init(&state, key); + * sip24_update(&state, msg, len); + * hash = sip24_final(&state); + * + * or + * + * hash = siphash24(msg, len, key); + * + * To convert the 64-bit hash value to a canonical 8-byte little-endian + * binary representation, use either the macro sip_binof or the routine + * sip_tobin. The former instantiates and returns a compound literal array, + * while the latter requires an array object as a parameter. + * -------------------------------------------------------------------------- + * NOTES: + * + * o Neither sip_keyof, sip_binof, nor siphash24 will work with compilers + * lacking compound literal support. Instead, you must use the lower-level + * interfaces which take as parameters the temporary state objects. + * + * o Uppercase macros may evaluate parameters more than once. Lowercase + * macros should not exhibit any such side effects. + * ========================================================================== + */ +#ifndef SIPHASH_H +#define SIPHASH_H + +#include /* size_t */ +#include /* uint64_t uint32_t uint8_t */ + +/* + * Workaround to not require a C++11 compiler for using ULL suffix + * if this code is included and compiled as C++; related GCC warning is: + * warning: use of C++11 long long integer constant [-Wlong-long] + */ +#define _SIP_ULL(high, low) ((((uint64_t)high) << 32) | (low)) + +#define SIP_ROTL(x, b) (uint64_t)(((x) << (b)) | ((x) >> (64 - (b)))) + +#define SIP_U32TO8_LE(p, v) \ + (p)[0] = (uint8_t)((v) >> 0); \ + (p)[1] = (uint8_t)((v) >> 8); \ + (p)[2] = (uint8_t)((v) >> 16); \ + (p)[3] = (uint8_t)((v) >> 24); + +#define SIP_U64TO8_LE(p, v) \ + SIP_U32TO8_LE((p) + 0, (uint32_t)((v) >> 0)); \ + SIP_U32TO8_LE((p) + 4, (uint32_t)((v) >> 32)); + +#define SIP_U8TO64_LE(p) \ + (((uint64_t)((p)[0]) << 0) | ((uint64_t)((p)[1]) << 8) \ + | ((uint64_t)((p)[2]) << 16) | ((uint64_t)((p)[3]) << 24) \ + | ((uint64_t)((p)[4]) << 32) | ((uint64_t)((p)[5]) << 40) \ + | ((uint64_t)((p)[6]) << 48) | ((uint64_t)((p)[7]) << 56)) + +#define SIPHASH_INITIALIZER \ + { 0, 0, 0, 0, {0}, 0, 0 } + +struct siphash { + uint64_t v0, v1, v2, v3; + + unsigned char buf[8], *p; + uint64_t c; +}; /* struct siphash */ + +#define SIP_KEYLEN 16 + +struct sipkey { + uint64_t k[2]; +}; /* struct sipkey */ + +#define sip_keyof(k) sip_tokey(&(struct sipkey){{0}}, (k)) + +static struct sipkey * +sip_tokey(struct sipkey *key, const void *src) { + key->k[0] = SIP_U8TO64_LE((const unsigned char *)src); + key->k[1] = SIP_U8TO64_LE((const unsigned char *)src + 8); + return key; +} /* sip_tokey() */ + +#ifdef SIPHASH_TOBIN + +# define sip_binof(v) sip_tobin((unsigned char[8]){0}, (v)) + +static void * +sip_tobin(void *dst, uint64_t u64) { + SIP_U64TO8_LE((unsigned char *)dst, u64); + return dst; +} /* sip_tobin() */ + +#endif /* SIPHASH_TOBIN */ + +static void +sip_round(struct siphash *H, const int rounds) { + int i; + + for (i = 0; i < rounds; i++) { + H->v0 += H->v1; + H->v1 = SIP_ROTL(H->v1, 13); + H->v1 ^= H->v0; + H->v0 = SIP_ROTL(H->v0, 32); + + H->v2 += H->v3; + H->v3 = SIP_ROTL(H->v3, 16); + H->v3 ^= H->v2; + + H->v0 += H->v3; + H->v3 = SIP_ROTL(H->v3, 21); + H->v3 ^= H->v0; + + H->v2 += H->v1; + H->v1 = SIP_ROTL(H->v1, 17); + H->v1 ^= H->v2; + H->v2 = SIP_ROTL(H->v2, 32); + } +} /* sip_round() */ + +static struct siphash * +sip24_init(struct siphash *H, const struct sipkey *key) { + H->v0 = _SIP_ULL(0x736f6d65U, 0x70736575U) ^ key->k[0]; + H->v1 = _SIP_ULL(0x646f7261U, 0x6e646f6dU) ^ key->k[1]; + H->v2 = _SIP_ULL(0x6c796765U, 0x6e657261U) ^ key->k[0]; + H->v3 = _SIP_ULL(0x74656462U, 0x79746573U) ^ key->k[1]; + + H->p = H->buf; + H->c = 0; + + return H; +} /* sip24_init() */ + +#define sip_endof(a) (&(a)[sizeof(a) / sizeof *(a)]) + +static struct siphash * +sip24_update(struct siphash *H, const void *src, size_t len) { + const unsigned char *p = (const unsigned char *)src, *pe = p + len; + uint64_t m; + + do { + while (p < pe && H->p < sip_endof(H->buf)) + *H->p++ = *p++; + + if (H->p < sip_endof(H->buf)) + break; + + m = SIP_U8TO64_LE(H->buf); + H->v3 ^= m; + sip_round(H, 2); + H->v0 ^= m; + + H->p = H->buf; + H->c += 8; + } while (p < pe); + + return H; +} /* sip24_update() */ + +static uint64_t +sip24_final(struct siphash *H) { + const char left = (char)(H->p - H->buf); + uint64_t b = (H->c + left) << 56; + + switch (left) { + case 7: + b |= (uint64_t)H->buf[6] << 48; + /* fall through */ + case 6: + b |= (uint64_t)H->buf[5] << 40; + /* fall through */ + case 5: + b |= (uint64_t)H->buf[4] << 32; + /* fall through */ + case 4: + b |= (uint64_t)H->buf[3] << 24; + /* fall through */ + case 3: + b |= (uint64_t)H->buf[2] << 16; + /* fall through */ + case 2: + b |= (uint64_t)H->buf[1] << 8; + /* fall through */ + case 1: + b |= (uint64_t)H->buf[0] << 0; + /* fall through */ + case 0: + break; + } + + H->v3 ^= b; + sip_round(H, 2); + H->v0 ^= b; + H->v2 ^= 0xff; + sip_round(H, 4); + + return H->v0 ^ H->v1 ^ H->v2 ^ H->v3; +} /* sip24_final() */ + +static uint64_t +siphash24(const void *src, size_t len, const struct sipkey *key) { + struct siphash state = SIPHASH_INITIALIZER; + return sip24_final(sip24_update(sip24_init(&state, key), src, len)); +} /* siphash24() */ + +/* + * SipHash-2-4 output with + * k = 00 01 02 ... + * and + * in = (empty string) + * in = 00 (1 byte) + * in = 00 01 (2 bytes) + * in = 00 01 02 (3 bytes) + * ... + * in = 00 01 02 ... 3e (63 bytes) + */ +static int +sip24_valid(void) { + /* clang-format off */ + static const unsigned char vectors[64][8] = { + { 0x31, 0x0e, 0x0e, 0xdd, 0x47, 0xdb, 0x6f, 0x72, }, + { 0xfd, 0x67, 0xdc, 0x93, 0xc5, 0x39, 0xf8, 0x74, }, + { 0x5a, 0x4f, 0xa9, 0xd9, 0x09, 0x80, 0x6c, 0x0d, }, + { 0x2d, 0x7e, 0xfb, 0xd7, 0x96, 0x66, 0x67, 0x85, }, + { 0xb7, 0x87, 0x71, 0x27, 0xe0, 0x94, 0x27, 0xcf, }, + { 0x8d, 0xa6, 0x99, 0xcd, 0x64, 0x55, 0x76, 0x18, }, + { 0xce, 0xe3, 0xfe, 0x58, 0x6e, 0x46, 0xc9, 0xcb, }, + { 0x37, 0xd1, 0x01, 0x8b, 0xf5, 0x00, 0x02, 0xab, }, + { 0x62, 0x24, 0x93, 0x9a, 0x79, 0xf5, 0xf5, 0x93, }, + { 0xb0, 0xe4, 0xa9, 0x0b, 0xdf, 0x82, 0x00, 0x9e, }, + { 0xf3, 0xb9, 0xdd, 0x94, 0xc5, 0xbb, 0x5d, 0x7a, }, + { 0xa7, 0xad, 0x6b, 0x22, 0x46, 0x2f, 0xb3, 0xf4, }, + { 0xfb, 0xe5, 0x0e, 0x86, 0xbc, 0x8f, 0x1e, 0x75, }, + { 0x90, 0x3d, 0x84, 0xc0, 0x27, 0x56, 0xea, 0x14, }, + { 0xee, 0xf2, 0x7a, 0x8e, 0x90, 0xca, 0x23, 0xf7, }, + { 0xe5, 0x45, 0xbe, 0x49, 0x61, 0xca, 0x29, 0xa1, }, + { 0xdb, 0x9b, 0xc2, 0x57, 0x7f, 0xcc, 0x2a, 0x3f, }, + { 0x94, 0x47, 0xbe, 0x2c, 0xf5, 0xe9, 0x9a, 0x69, }, + { 0x9c, 0xd3, 0x8d, 0x96, 0xf0, 0xb3, 0xc1, 0x4b, }, + { 0xbd, 0x61, 0x79, 0xa7, 0x1d, 0xc9, 0x6d, 0xbb, }, + { 0x98, 0xee, 0xa2, 0x1a, 0xf2, 0x5c, 0xd6, 0xbe, }, + { 0xc7, 0x67, 0x3b, 0x2e, 0xb0, 0xcb, 0xf2, 0xd0, }, + { 0x88, 0x3e, 0xa3, 0xe3, 0x95, 0x67, 0x53, 0x93, }, + { 0xc8, 0xce, 0x5c, 0xcd, 0x8c, 0x03, 0x0c, 0xa8, }, + { 0x94, 0xaf, 0x49, 0xf6, 0xc6, 0x50, 0xad, 0xb8, }, + { 0xea, 0xb8, 0x85, 0x8a, 0xde, 0x92, 0xe1, 0xbc, }, + { 0xf3, 0x15, 0xbb, 0x5b, 0xb8, 0x35, 0xd8, 0x17, }, + { 0xad, 0xcf, 0x6b, 0x07, 0x63, 0x61, 0x2e, 0x2f, }, + { 0xa5, 0xc9, 0x1d, 0xa7, 0xac, 0xaa, 0x4d, 0xde, }, + { 0x71, 0x65, 0x95, 0x87, 0x66, 0x50, 0xa2, 0xa6, }, + { 0x28, 0xef, 0x49, 0x5c, 0x53, 0xa3, 0x87, 0xad, }, + { 0x42, 0xc3, 0x41, 0xd8, 0xfa, 0x92, 0xd8, 0x32, }, + { 0xce, 0x7c, 0xf2, 0x72, 0x2f, 0x51, 0x27, 0x71, }, + { 0xe3, 0x78, 0x59, 0xf9, 0x46, 0x23, 0xf3, 0xa7, }, + { 0x38, 0x12, 0x05, 0xbb, 0x1a, 0xb0, 0xe0, 0x12, }, + { 0xae, 0x97, 0xa1, 0x0f, 0xd4, 0x34, 0xe0, 0x15, }, + { 0xb4, 0xa3, 0x15, 0x08, 0xbe, 0xff, 0x4d, 0x31, }, + { 0x81, 0x39, 0x62, 0x29, 0xf0, 0x90, 0x79, 0x02, }, + { 0x4d, 0x0c, 0xf4, 0x9e, 0xe5, 0xd4, 0xdc, 0xca, }, + { 0x5c, 0x73, 0x33, 0x6a, 0x76, 0xd8, 0xbf, 0x9a, }, + { 0xd0, 0xa7, 0x04, 0x53, 0x6b, 0xa9, 0x3e, 0x0e, }, + { 0x92, 0x59, 0x58, 0xfc, 0xd6, 0x42, 0x0c, 0xad, }, + { 0xa9, 0x15, 0xc2, 0x9b, 0xc8, 0x06, 0x73, 0x18, }, + { 0x95, 0x2b, 0x79, 0xf3, 0xbc, 0x0a, 0xa6, 0xd4, }, + { 0xf2, 0x1d, 0xf2, 0xe4, 0x1d, 0x45, 0x35, 0xf9, }, + { 0x87, 0x57, 0x75, 0x19, 0x04, 0x8f, 0x53, 0xa9, }, + { 0x10, 0xa5, 0x6c, 0xf5, 0xdf, 0xcd, 0x9a, 0xdb, }, + { 0xeb, 0x75, 0x09, 0x5c, 0xcd, 0x98, 0x6c, 0xd0, }, + { 0x51, 0xa9, 0xcb, 0x9e, 0xcb, 0xa3, 0x12, 0xe6, }, + { 0x96, 0xaf, 0xad, 0xfc, 0x2c, 0xe6, 0x66, 0xc7, }, + { 0x72, 0xfe, 0x52, 0x97, 0x5a, 0x43, 0x64, 0xee, }, + { 0x5a, 0x16, 0x45, 0xb2, 0x76, 0xd5, 0x92, 0xa1, }, + { 0xb2, 0x74, 0xcb, 0x8e, 0xbf, 0x87, 0x87, 0x0a, }, + { 0x6f, 0x9b, 0xb4, 0x20, 0x3d, 0xe7, 0xb3, 0x81, }, + { 0xea, 0xec, 0xb2, 0xa3, 0x0b, 0x22, 0xa8, 0x7f, }, + { 0x99, 0x24, 0xa4, 0x3c, 0xc1, 0x31, 0x57, 0x24, }, + { 0xbd, 0x83, 0x8d, 0x3a, 0xaf, 0xbf, 0x8d, 0xb7, }, + { 0x0b, 0x1a, 0x2a, 0x32, 0x65, 0xd5, 0x1a, 0xea, }, + { 0x13, 0x50, 0x79, 0xa3, 0x23, 0x1c, 0xe6, 0x60, }, + { 0x93, 0x2b, 0x28, 0x46, 0xe4, 0xd7, 0x06, 0x66, }, + { 0xe1, 0x91, 0x5f, 0x5c, 0xb1, 0xec, 0xa4, 0x6c, }, + { 0xf3, 0x25, 0x96, 0x5c, 0xa1, 0x6d, 0x62, 0x9f, }, + { 0x57, 0x5f, 0xf2, 0x8e, 0x60, 0x38, 0x1b, 0xe5, }, + { 0x72, 0x45, 0x06, 0xeb, 0x4c, 0x32, 0x8a, 0x95, } + }; + /* clang-format on */ + + unsigned char in[64]; + struct sipkey k; + size_t i; + + sip_tokey(&k, "\000\001\002\003\004\005\006\007\010\011" + "\012\013\014\015\016\017"); + + for (i = 0; i < sizeof in; ++i) { + in[i] = (unsigned char)i; + + if (siphash24(in, i, &k) != SIP_U8TO64_LE(vectors[i])) + return 0; + } + + return 1; +} /* sip24_valid() */ + +#ifdef SIPHASH_MAIN + +# include + +int +main(void) { + const int ok = sip24_valid(); + + if (ok) + puts("OK"); + else + puts("FAIL"); + + return ! ok; +} /* main() */ + +#endif /* SIPHASH_MAIN */ + +#endif /* SIPHASH_H */ diff --git a/source/externals/expat/src/utf8tab.h b/source/externals/expat/src/utf8tab.h index 7bb3e77603..88efcf91cc 100644 --- a/source/externals/expat/src/utf8tab.h +++ b/source/externals/expat/src/utf8tab.h @@ -1,37 +1,66 @@ -/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2002 Fred L. Drake, Jr. + Copyright (c) 2017 Sebastian Pipping + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. */ - /* 0x80 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0x84 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0x88 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0x8C */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0x90 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0x94 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0x98 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0x9C */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xA0 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xA4 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xA8 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xAC */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xB0 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xB4 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xB8 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xBC */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, -/* 0xC0 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xC4 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xC8 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xCC */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xD0 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xD4 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xD8 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xDC */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, -/* 0xE0 */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, -/* 0xE4 */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, -/* 0xE8 */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, -/* 0xEC */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, -/* 0xF0 */ BT_LEAD4, BT_LEAD4, BT_LEAD4, BT_LEAD4, -/* 0xF4 */ BT_LEAD4, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0xF8 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, -/* 0xFC */ BT_NONXML, BT_NONXML, BT_MALFORM, BT_MALFORM, + /* 0x84 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0x88 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0x8C */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0x90 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0x94 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0x98 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0x9C */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0xA0 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0xA4 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0xA8 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0xAC */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0xB0 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0xB4 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0xB8 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0xBC */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, + /* 0xC0 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, + /* 0xC4 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, + /* 0xC8 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, + /* 0xCC */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, + /* 0xD0 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, + /* 0xD4 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, + /* 0xD8 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, + /* 0xDC */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, + /* 0xE0 */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, + /* 0xE4 */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, + /* 0xE8 */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, + /* 0xEC */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, + /* 0xF0 */ BT_LEAD4, BT_LEAD4, BT_LEAD4, BT_LEAD4, + /* 0xF4 */ BT_LEAD4, BT_NONXML, BT_NONXML, BT_NONXML, + /* 0xF8 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, + /* 0xFC */ BT_NONXML, BT_NONXML, BT_MALFORM, BT_MALFORM, diff --git a/source/externals/expat/src/winconfig.h b/source/externals/expat/src/winconfig.h index c1b791d62d..2ecd61b5b9 100644 --- a/source/externals/expat/src/winconfig.h +++ b/source/externals/expat/src/winconfig.h @@ -1,10 +1,35 @@ -/*================================================================ -** Copyright 2000, Clark Cooper -** All rights reserved. -** -** This is free software. You are permitted to copy, distribute, or modify -** it under the terms of the MIT/X license (contained in the COPYING file -** with this distribution.) +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 2000 Clark Cooper + Copyright (c) 2002 Greg Stein + Copyright (c) 2005 Karl Waclawek + Copyright (c) 2017-2021 Sebastian Pipping + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef WINCONFIG_H @@ -17,14 +42,4 @@ #include #include -#define XML_NS 1 -#define XML_DTD 1 -#define XML_CONTEXT_BYTES 1024 - -/* we will assume all Windows platforms are little endian */ -#define BYTEORDER 1234 - -/* Windows has memmove() available. */ -#define HAVE_MEMMOVE - #endif /* ndef WINCONFIG_H */ diff --git a/source/externals/expat/src/xmlparse.c b/source/externals/expat/src/xmlparse.c new file mode 100644 index 0000000000..d3c12129d4 --- /dev/null +++ b/source/externals/expat/src/xmlparse.c @@ -0,0 +1,8387 @@ +/* 90815a2b2c80c03b2b889fe1d427bb2b9e3282aa065e42784e001db4f23de324 (2.4.9+) + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2000-2006 Fred L. Drake, Jr. + Copyright (c) 2001-2002 Greg Stein + Copyright (c) 2002-2016 Karl Waclawek + Copyright (c) 2005-2009 Steven Solie + Copyright (c) 2016 Eric Rahm + Copyright (c) 2016-2022 Sebastian Pipping + Copyright (c) 2016 Gaurav + Copyright (c) 2016 Thomas Beutlich + Copyright (c) 2016 Gustavo Grieco + Copyright (c) 2016 Pascal Cuoq + Copyright (c) 2016 Ed Schouten + Copyright (c) 2017-2022 Rhodri James + Copyright (c) 2017 Václav Slavík + Copyright (c) 2017 Viktor Szakats + Copyright (c) 2017 Chanho Park + Copyright (c) 2017 Rolf Eike Beer + Copyright (c) 2017 Hans Wennborg + Copyright (c) 2018 Anton Maklakov + Copyright (c) 2018 Benjamin Peterson + Copyright (c) 2018 Marco Maggi + Copyright (c) 2018 Mariusz Zaborski + Copyright (c) 2019 David Loffredo + Copyright (c) 2019-2020 Ben Wagner + Copyright (c) 2019 Vadim Zeitlin + Copyright (c) 2021 Dong-hee Na + Copyright (c) 2022 Samanta Navarro + Copyright (c) 2022 Jeffrey Walton + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#define XML_BUILDING_EXPAT 1 + +#include + +#if ! defined(_GNU_SOURCE) +# define _GNU_SOURCE 1 /* syscall prototype */ +#endif + +#ifdef _WIN32 +/* force stdlib to define rand_s() */ +# if ! defined(_CRT_RAND_S) +# define _CRT_RAND_S +# endif +#endif + +#include +#include /* memset(), memcpy() */ +#include +#include /* UINT_MAX */ +#include /* fprintf */ +#include /* getenv, rand_s */ +#include /* uintptr_t */ +#include /* isnan */ + +#ifdef _WIN32 +# define getpid GetCurrentProcessId +#else +# include /* gettimeofday() */ +# include /* getpid() */ +# include /* getpid() */ +# include /* O_RDONLY */ +# include +#endif + +#ifdef _WIN32 +# include "winconfig.h" +#endif + +#include "ascii.h" +#include "expat.h" +#include "siphash.h" + +#if defined(HAVE_GETRANDOM) || defined(HAVE_SYSCALL_GETRANDOM) +# if defined(HAVE_GETRANDOM) +# include /* getrandom */ +# else +# include /* syscall */ +# include /* SYS_getrandom */ +# endif +# if ! defined(GRND_NONBLOCK) +# define GRND_NONBLOCK 0x0001 +# endif /* defined(GRND_NONBLOCK) */ +#endif /* defined(HAVE_GETRANDOM) || defined(HAVE_SYSCALL_GETRANDOM) */ + +#if defined(HAVE_LIBBSD) \ + && (defined(HAVE_ARC4RANDOM_BUF) || defined(HAVE_ARC4RANDOM)) +# include +#endif + +#if defined(_WIN32) && ! defined(LOAD_LIBRARY_SEARCH_SYSTEM32) +# define LOAD_LIBRARY_SEARCH_SYSTEM32 0x00000800 +#endif + +#if ! defined(HAVE_GETRANDOM) && ! defined(HAVE_SYSCALL_GETRANDOM) \ + && ! defined(HAVE_ARC4RANDOM_BUF) && ! defined(HAVE_ARC4RANDOM) \ + && ! defined(XML_DEV_URANDOM) && ! defined(_WIN32) \ + && ! defined(XML_POOR_ENTROPY) +# error You do not have support for any sources of high quality entropy \ + enabled. For end user security, that is probably not what you want. \ + \ + Your options include: \ + * Linux >=3.17 + glibc >=2.25 (getrandom): HAVE_GETRANDOM, \ + * Linux >=3.17 + glibc (including <2.25) (syscall SYS_getrandom): HAVE_SYSCALL_GETRANDOM, \ + * BSD / macOS >=10.7 (arc4random_buf): HAVE_ARC4RANDOM_BUF, \ + * BSD / macOS (including <10.7) (arc4random): HAVE_ARC4RANDOM, \ + * libbsd (arc4random_buf): HAVE_ARC4RANDOM_BUF + HAVE_LIBBSD, \ + * libbsd (arc4random): HAVE_ARC4RANDOM + HAVE_LIBBSD, \ + * Linux (including <3.17) / BSD / macOS (including <10.7) / Solaris >=8 (/dev/urandom): XML_DEV_URANDOM, \ + * Windows >=Vista (rand_s): _WIN32. \ + \ + If insist on not using any of these, bypass this error by defining \ + XML_POOR_ENTROPY; you have been warned. \ + \ + If you have reasons to patch this detection code away or need changes \ + to the build system, please open a bug. Thank you! +#endif + +#ifdef XML_UNICODE +# define XML_ENCODE_MAX XML_UTF16_ENCODE_MAX +# define XmlConvert XmlUtf16Convert +# define XmlGetInternalEncoding XmlGetUtf16InternalEncoding +# define XmlGetInternalEncodingNS XmlGetUtf16InternalEncodingNS +# define XmlEncode XmlUtf16Encode +# define MUST_CONVERT(enc, s) (! (enc)->isUtf16 || (((uintptr_t)(s)) & 1)) +typedef unsigned short ICHAR; +#else +# define XML_ENCODE_MAX XML_UTF8_ENCODE_MAX +# define XmlConvert XmlUtf8Convert +# define XmlGetInternalEncoding XmlGetUtf8InternalEncoding +# define XmlGetInternalEncodingNS XmlGetUtf8InternalEncodingNS +# define XmlEncode XmlUtf8Encode +# define MUST_CONVERT(enc, s) (! (enc)->isUtf8) +typedef char ICHAR; +#endif + +#ifndef XML_NS + +# define XmlInitEncodingNS XmlInitEncoding +# define XmlInitUnknownEncodingNS XmlInitUnknownEncoding +# undef XmlGetInternalEncodingNS +# define XmlGetInternalEncodingNS XmlGetInternalEncoding +# define XmlParseXmlDeclNS XmlParseXmlDecl + +#endif + +#ifdef XML_UNICODE + +# ifdef XML_UNICODE_WCHAR_T +# define XML_T(x) (const wchar_t) x +# define XML_L(x) L##x +# else +# define XML_T(x) (const unsigned short)x +# define XML_L(x) x +# endif + +#else + +# define XML_T(x) x +# define XML_L(x) x + +#endif + +/* Round up n to be a multiple of sz, where sz is a power of 2. */ +#define ROUND_UP(n, sz) (((n) + ((sz)-1)) & ~((sz)-1)) + +/* Do safe (NULL-aware) pointer arithmetic */ +#define EXPAT_SAFE_PTR_DIFF(p, q) (((p) && (q)) ? ((p) - (q)) : 0) + +#include "internal.h" +#include "xmltok.h" +#include "xmlrole.h" + +typedef const XML_Char *KEY; + +typedef struct { + KEY name; +} NAMED; + +typedef struct { + NAMED **v; + unsigned char power; + size_t size; + size_t used; + const XML_Memory_Handling_Suite *mem; +} HASH_TABLE; + +static size_t keylen(KEY s); + +static void copy_salt_to_sipkey(XML_Parser parser, struct sipkey *key); + +/* For probing (after a collision) we need a step size relative prime + to the hash table size, which is a power of 2. We use double-hashing, + since we can calculate a second hash value cheaply by taking those bits + of the first hash value that were discarded (masked out) when the table + index was calculated: index = hash & mask, where mask = table->size - 1. + We limit the maximum step size to table->size / 4 (mask >> 2) and make + it odd, since odd numbers are always relative prime to a power of 2. +*/ +#define SECOND_HASH(hash, mask, power) \ + ((((hash) & ~(mask)) >> ((power)-1)) & ((mask) >> 2)) +#define PROBE_STEP(hash, mask, power) \ + ((unsigned char)((SECOND_HASH(hash, mask, power)) | 1)) + +typedef struct { + NAMED **p; + NAMED **end; +} HASH_TABLE_ITER; + +#define INIT_TAG_BUF_SIZE 32 /* must be a multiple of sizeof(XML_Char) */ +#define INIT_DATA_BUF_SIZE 1024 +#define INIT_ATTS_SIZE 16 +#define INIT_ATTS_VERSION 0xFFFFFFFF +#define INIT_BLOCK_SIZE 1024 +#define INIT_BUFFER_SIZE 1024 + +#define EXPAND_SPARE 24 + +typedef struct binding { + struct prefix *prefix; + struct binding *nextTagBinding; + struct binding *prevPrefixBinding; + const struct attribute_id *attId; + XML_Char *uri; + int uriLen; + int uriAlloc; +} BINDING; + +typedef struct prefix { + const XML_Char *name; + BINDING *binding; +} PREFIX; + +typedef struct { + const XML_Char *str; + const XML_Char *localPart; + const XML_Char *prefix; + int strLen; + int uriLen; + int prefixLen; +} TAG_NAME; + +/* TAG represents an open element. + The name of the element is stored in both the document and API + encodings. The memory buffer 'buf' is a separately-allocated + memory area which stores the name. During the XML_Parse()/ + XMLParseBuffer() when the element is open, the memory for the 'raw' + version of the name (in the document encoding) is shared with the + document buffer. If the element is open across calls to + XML_Parse()/XML_ParseBuffer(), the buffer is re-allocated to + contain the 'raw' name as well. + + A parser re-uses these structures, maintaining a list of allocated + TAG objects in a free list. +*/ +typedef struct tag { + struct tag *parent; /* parent of this element */ + const char *rawName; /* tagName in the original encoding */ + int rawNameLength; + TAG_NAME name; /* tagName in the API encoding */ + char *buf; /* buffer for name components */ + char *bufEnd; /* end of the buffer */ + BINDING *bindings; +} TAG; + +typedef struct { + const XML_Char *name; + const XML_Char *textPtr; + int textLen; /* length in XML_Chars */ + int processed; /* # of processed bytes - when suspended */ + const XML_Char *systemId; + const XML_Char *base; + const XML_Char *publicId; + const XML_Char *notation; + XML_Bool open; + XML_Bool is_param; + XML_Bool is_internal; /* true if declared in internal subset outside PE */ +} ENTITY; + +typedef struct { + enum XML_Content_Type type; + enum XML_Content_Quant quant; + const XML_Char *name; + int firstchild; + int lastchild; + int childcnt; + int nextsib; +} CONTENT_SCAFFOLD; + +#define INIT_SCAFFOLD_ELEMENTS 32 + +typedef struct block { + struct block *next; + int size; + XML_Char s[1]; +} BLOCK; + +typedef struct { + BLOCK *blocks; + BLOCK *freeBlocks; + const XML_Char *end; + XML_Char *ptr; + XML_Char *start; + const XML_Memory_Handling_Suite *mem; +} STRING_POOL; + +/* The XML_Char before the name is used to determine whether + an attribute has been specified. */ +typedef struct attribute_id { + XML_Char *name; + PREFIX *prefix; + XML_Bool maybeTokenized; + XML_Bool xmlns; +} ATTRIBUTE_ID; + +typedef struct { + const ATTRIBUTE_ID *id; + XML_Bool isCdata; + const XML_Char *value; +} DEFAULT_ATTRIBUTE; + +typedef struct { + unsigned long version; + unsigned long hash; + const XML_Char *uriName; +} NS_ATT; + +typedef struct { + const XML_Char *name; + PREFIX *prefix; + const ATTRIBUTE_ID *idAtt; + int nDefaultAtts; + int allocDefaultAtts; + DEFAULT_ATTRIBUTE *defaultAtts; +} ELEMENT_TYPE; + +typedef struct { + HASH_TABLE generalEntities; + HASH_TABLE elementTypes; + HASH_TABLE attributeIds; + HASH_TABLE prefixes; + STRING_POOL pool; + STRING_POOL entityValuePool; + /* false once a parameter entity reference has been skipped */ + XML_Bool keepProcessing; + /* true once an internal or external PE reference has been encountered; + this includes the reference to an external subset */ + XML_Bool hasParamEntityRefs; + XML_Bool standalone; +#ifdef XML_DTD + /* indicates if external PE has been read */ + XML_Bool paramEntityRead; + HASH_TABLE paramEntities; +#endif /* XML_DTD */ + PREFIX defaultPrefix; + /* === scaffolding for building content model === */ + XML_Bool in_eldecl; + CONTENT_SCAFFOLD *scaffold; + unsigned contentStringLen; + unsigned scaffSize; + unsigned scaffCount; + int scaffLevel; + int *scaffIndex; +} DTD; + +typedef struct open_internal_entity { + const char *internalEventPtr; + const char *internalEventEndPtr; + struct open_internal_entity *next; + ENTITY *entity; + int startTagLevel; + XML_Bool betweenDecl; /* WFC: PE Between Declarations */ +} OPEN_INTERNAL_ENTITY; + +enum XML_Account { + XML_ACCOUNT_DIRECT, /* bytes directly passed to the Expat parser */ + XML_ACCOUNT_ENTITY_EXPANSION, /* intermediate bytes produced during entity + expansion */ + XML_ACCOUNT_NONE /* i.e. do not account, was accounted already */ +}; + +#ifdef XML_DTD +typedef unsigned long long XmlBigCount; +typedef struct accounting { + XmlBigCount countBytesDirect; + XmlBigCount countBytesIndirect; + int debugLevel; + float maximumAmplificationFactor; // >=1.0 + unsigned long long activationThresholdBytes; +} ACCOUNTING; + +typedef struct entity_stats { + unsigned int countEverOpened; + unsigned int currentDepth; + unsigned int maximumDepthSeen; + int debugLevel; +} ENTITY_STATS; +#endif /* XML_DTD */ + +typedef enum XML_Error PTRCALL Processor(XML_Parser parser, const char *start, + const char *end, const char **endPtr); + +static Processor prologProcessor; +static Processor prologInitProcessor; +static Processor contentProcessor; +static Processor cdataSectionProcessor; +#ifdef XML_DTD +static Processor ignoreSectionProcessor; +static Processor externalParEntProcessor; +static Processor externalParEntInitProcessor; +static Processor entityValueProcessor; +static Processor entityValueInitProcessor; +#endif /* XML_DTD */ +static Processor epilogProcessor; +static Processor errorProcessor; +static Processor externalEntityInitProcessor; +static Processor externalEntityInitProcessor2; +static Processor externalEntityInitProcessor3; +static Processor externalEntityContentProcessor; +static Processor internalEntityProcessor; + +static enum XML_Error handleUnknownEncoding(XML_Parser parser, + const XML_Char *encodingName); +static enum XML_Error processXmlDecl(XML_Parser parser, int isGeneralTextEntity, + const char *s, const char *next); +static enum XML_Error initializeEncoding(XML_Parser parser); +static enum XML_Error doProlog(XML_Parser parser, const ENCODING *enc, + const char *s, const char *end, int tok, + const char *next, const char **nextPtr, + XML_Bool haveMore, XML_Bool allowClosingDoctype, + enum XML_Account account); +static enum XML_Error processInternalEntity(XML_Parser parser, ENTITY *entity, + XML_Bool betweenDecl); +static enum XML_Error doContent(XML_Parser parser, int startTagLevel, + const ENCODING *enc, const char *start, + const char *end, const char **endPtr, + XML_Bool haveMore, enum XML_Account account); +static enum XML_Error doCdataSection(XML_Parser parser, const ENCODING *, + const char **startPtr, const char *end, + const char **nextPtr, XML_Bool haveMore, + enum XML_Account account); +#ifdef XML_DTD +static enum XML_Error doIgnoreSection(XML_Parser parser, const ENCODING *, + const char **startPtr, const char *end, + const char **nextPtr, XML_Bool haveMore); +#endif /* XML_DTD */ + +static void freeBindings(XML_Parser parser, BINDING *bindings); +static enum XML_Error storeAtts(XML_Parser parser, const ENCODING *, + const char *s, TAG_NAME *tagNamePtr, + BINDING **bindingsPtr, + enum XML_Account account); +static enum XML_Error addBinding(XML_Parser parser, PREFIX *prefix, + const ATTRIBUTE_ID *attId, const XML_Char *uri, + BINDING **bindingsPtr); +static int defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *, XML_Bool isCdata, + XML_Bool isId, const XML_Char *dfltValue, + XML_Parser parser); +static enum XML_Error storeAttributeValue(XML_Parser parser, const ENCODING *, + XML_Bool isCdata, const char *, + const char *, STRING_POOL *, + enum XML_Account account); +static enum XML_Error appendAttributeValue(XML_Parser parser, const ENCODING *, + XML_Bool isCdata, const char *, + const char *, STRING_POOL *, + enum XML_Account account); +static ATTRIBUTE_ID *getAttributeId(XML_Parser parser, const ENCODING *enc, + const char *start, const char *end); +static int setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *); +static enum XML_Error storeEntityValue(XML_Parser parser, const ENCODING *enc, + const char *start, const char *end, + enum XML_Account account); +static int reportProcessingInstruction(XML_Parser parser, const ENCODING *enc, + const char *start, const char *end); +static int reportComment(XML_Parser parser, const ENCODING *enc, + const char *start, const char *end); +static void reportDefault(XML_Parser parser, const ENCODING *enc, + const char *start, const char *end); + +static const XML_Char *getContext(XML_Parser parser); +static XML_Bool setContext(XML_Parser parser, const XML_Char *context); + +static void FASTCALL normalizePublicId(XML_Char *s); + +static DTD *dtdCreate(const XML_Memory_Handling_Suite *ms); +/* do not call if m_parentParser != NULL */ +static void dtdReset(DTD *p, const XML_Memory_Handling_Suite *ms); +static void dtdDestroy(DTD *p, XML_Bool isDocEntity, + const XML_Memory_Handling_Suite *ms); +static int dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd, + const XML_Memory_Handling_Suite *ms); +static int copyEntityTable(XML_Parser oldParser, HASH_TABLE *, STRING_POOL *, + const HASH_TABLE *); +static NAMED *lookup(XML_Parser parser, HASH_TABLE *table, KEY name, + size_t createSize); +static void FASTCALL hashTableInit(HASH_TABLE *, + const XML_Memory_Handling_Suite *ms); +static void FASTCALL hashTableClear(HASH_TABLE *); +static void FASTCALL hashTableDestroy(HASH_TABLE *); +static void FASTCALL hashTableIterInit(HASH_TABLE_ITER *, const HASH_TABLE *); +static NAMED *FASTCALL hashTableIterNext(HASH_TABLE_ITER *); + +static void FASTCALL poolInit(STRING_POOL *, + const XML_Memory_Handling_Suite *ms); +static void FASTCALL poolClear(STRING_POOL *); +static void FASTCALL poolDestroy(STRING_POOL *); +static XML_Char *poolAppend(STRING_POOL *pool, const ENCODING *enc, + const char *ptr, const char *end); +static XML_Char *poolStoreString(STRING_POOL *pool, const ENCODING *enc, + const char *ptr, const char *end); +static XML_Bool FASTCALL poolGrow(STRING_POOL *pool); +static const XML_Char *FASTCALL poolCopyString(STRING_POOL *pool, + const XML_Char *s); +static const XML_Char *poolCopyStringN(STRING_POOL *pool, const XML_Char *s, + int n); +static const XML_Char *FASTCALL poolAppendString(STRING_POOL *pool, + const XML_Char *s); + +static int FASTCALL nextScaffoldPart(XML_Parser parser); +static XML_Content *build_model(XML_Parser parser); +static ELEMENT_TYPE *getElementType(XML_Parser parser, const ENCODING *enc, + const char *ptr, const char *end); + +static XML_Char *copyString(const XML_Char *s, + const XML_Memory_Handling_Suite *memsuite); + +static unsigned long generate_hash_secret_salt(XML_Parser parser); +static XML_Bool startParsing(XML_Parser parser); + +static XML_Parser parserCreate(const XML_Char *encodingName, + const XML_Memory_Handling_Suite *memsuite, + const XML_Char *nameSep, DTD *dtd); + +static void parserInit(XML_Parser parser, const XML_Char *encodingName); + +#ifdef XML_DTD +static float accountingGetCurrentAmplification(XML_Parser rootParser); +static void accountingReportStats(XML_Parser originParser, const char *epilog); +static void accountingOnAbort(XML_Parser originParser); +static void accountingReportDiff(XML_Parser rootParser, + unsigned int levelsAwayFromRootParser, + const char *before, const char *after, + ptrdiff_t bytesMore, int source_line, + enum XML_Account account); +static XML_Bool accountingDiffTolerated(XML_Parser originParser, int tok, + const char *before, const char *after, + int source_line, + enum XML_Account account); + +static void entityTrackingReportStats(XML_Parser parser, ENTITY *entity, + const char *action, int sourceLine); +static void entityTrackingOnOpen(XML_Parser parser, ENTITY *entity, + int sourceLine); +static void entityTrackingOnClose(XML_Parser parser, ENTITY *entity, + int sourceLine); + +static XML_Parser getRootParserOf(XML_Parser parser, + unsigned int *outLevelDiff); +#endif /* XML_DTD */ + +static unsigned long getDebugLevel(const char *variableName, + unsigned long defaultDebugLevel); + +#define poolStart(pool) ((pool)->start) +#define poolEnd(pool) ((pool)->ptr) +#define poolLength(pool) ((pool)->ptr - (pool)->start) +#define poolChop(pool) ((void)--(pool->ptr)) +#define poolLastChar(pool) (((pool)->ptr)[-1]) +#define poolDiscard(pool) ((pool)->ptr = (pool)->start) +#define poolFinish(pool) ((pool)->start = (pool)->ptr) +#define poolAppendChar(pool, c) \ + (((pool)->ptr == (pool)->end && ! poolGrow(pool)) \ + ? 0 \ + : ((*((pool)->ptr)++ = c), 1)) + +struct XML_ParserStruct { + /* The first member must be m_userData so that the XML_GetUserData + macro works. */ + void *m_userData; + void *m_handlerArg; + char *m_buffer; + const XML_Memory_Handling_Suite m_mem; + /* first character to be parsed */ + const char *m_bufferPtr; + /* past last character to be parsed */ + char *m_bufferEnd; + /* allocated end of m_buffer */ + const char *m_bufferLim; + XML_Index m_parseEndByteIndex; + const char *m_parseEndPtr; + XML_Char *m_dataBuf; + XML_Char *m_dataBufEnd; + XML_StartElementHandler m_startElementHandler; + XML_EndElementHandler m_endElementHandler; + XML_CharacterDataHandler m_characterDataHandler; + XML_ProcessingInstructionHandler m_processingInstructionHandler; + XML_CommentHandler m_commentHandler; + XML_StartCdataSectionHandler m_startCdataSectionHandler; + XML_EndCdataSectionHandler m_endCdataSectionHandler; + XML_DefaultHandler m_defaultHandler; + XML_StartDoctypeDeclHandler m_startDoctypeDeclHandler; + XML_EndDoctypeDeclHandler m_endDoctypeDeclHandler; + XML_UnparsedEntityDeclHandler m_unparsedEntityDeclHandler; + XML_NotationDeclHandler m_notationDeclHandler; + XML_StartNamespaceDeclHandler m_startNamespaceDeclHandler; + XML_EndNamespaceDeclHandler m_endNamespaceDeclHandler; + XML_NotStandaloneHandler m_notStandaloneHandler; + XML_ExternalEntityRefHandler m_externalEntityRefHandler; + XML_Parser m_externalEntityRefHandlerArg; + XML_SkippedEntityHandler m_skippedEntityHandler; + XML_UnknownEncodingHandler m_unknownEncodingHandler; + XML_ElementDeclHandler m_elementDeclHandler; + XML_AttlistDeclHandler m_attlistDeclHandler; + XML_EntityDeclHandler m_entityDeclHandler; + XML_XmlDeclHandler m_xmlDeclHandler; + const ENCODING *m_encoding; + INIT_ENCODING m_initEncoding; + const ENCODING *m_internalEncoding; + const XML_Char *m_protocolEncodingName; + XML_Bool m_ns; + XML_Bool m_ns_triplets; + void *m_unknownEncodingMem; + void *m_unknownEncodingData; + void *m_unknownEncodingHandlerData; + void(XMLCALL *m_unknownEncodingRelease)(void *); + PROLOG_STATE m_prologState; + Processor *m_processor; + enum XML_Error m_errorCode; + const char *m_eventPtr; + const char *m_eventEndPtr; + const char *m_positionPtr; + OPEN_INTERNAL_ENTITY *m_openInternalEntities; + OPEN_INTERNAL_ENTITY *m_freeInternalEntities; + XML_Bool m_defaultExpandInternalEntities; + int m_tagLevel; + ENTITY *m_declEntity; + const XML_Char *m_doctypeName; + const XML_Char *m_doctypeSysid; + const XML_Char *m_doctypePubid; + const XML_Char *m_declAttributeType; + const XML_Char *m_declNotationName; + const XML_Char *m_declNotationPublicId; + ELEMENT_TYPE *m_declElementType; + ATTRIBUTE_ID *m_declAttributeId; + XML_Bool m_declAttributeIsCdata; + XML_Bool m_declAttributeIsId; + DTD *m_dtd; + const XML_Char *m_curBase; + TAG *m_tagStack; + TAG *m_freeTagList; + BINDING *m_inheritedBindings; + BINDING *m_freeBindingList; + int m_attsSize; + int m_nSpecifiedAtts; + int m_idAttIndex; + ATTRIBUTE *m_atts; + NS_ATT *m_nsAtts; + unsigned long m_nsAttsVersion; + unsigned char m_nsAttsPower; +#ifdef XML_ATTR_INFO + XML_AttrInfo *m_attInfo; +#endif + POSITION m_position; + STRING_POOL m_tempPool; + STRING_POOL m_temp2Pool; + char *m_groupConnector; + unsigned int m_groupSize; + XML_Char m_namespaceSeparator; + XML_Parser m_parentParser; + XML_ParsingStatus m_parsingStatus; +#ifdef XML_DTD + XML_Bool m_isParamEntity; + XML_Bool m_useForeignDTD; + enum XML_ParamEntityParsing m_paramEntityParsing; +#endif + unsigned long m_hash_secret_salt; +#ifdef XML_DTD + ACCOUNTING m_accounting; + ENTITY_STATS m_entity_stats; +#endif +}; + +#define MALLOC(parser, s) (parser->m_mem.malloc_fcn((s))) +#define REALLOC(parser, p, s) (parser->m_mem.realloc_fcn((p), (s))) +#define FREE(parser, p) (parser->m_mem.free_fcn((p))) + +XML_Parser XMLCALL +XML_ParserCreate(const XML_Char *encodingName) { + return XML_ParserCreate_MM(encodingName, NULL, NULL); +} + +XML_Parser XMLCALL +XML_ParserCreateNS(const XML_Char *encodingName, XML_Char nsSep) { + XML_Char tmp[2] = {nsSep, 0}; + return XML_ParserCreate_MM(encodingName, NULL, tmp); +} + +// "xml=http://www.w3.org/XML/1998/namespace" +static const XML_Char implicitContext[] + = {ASCII_x, ASCII_m, ASCII_l, ASCII_EQUALS, ASCII_h, + ASCII_t, ASCII_t, ASCII_p, ASCII_COLON, ASCII_SLASH, + ASCII_SLASH, ASCII_w, ASCII_w, ASCII_w, ASCII_PERIOD, + ASCII_w, ASCII_3, ASCII_PERIOD, ASCII_o, ASCII_r, + ASCII_g, ASCII_SLASH, ASCII_X, ASCII_M, ASCII_L, + ASCII_SLASH, ASCII_1, ASCII_9, ASCII_9, ASCII_8, + ASCII_SLASH, ASCII_n, ASCII_a, ASCII_m, ASCII_e, + ASCII_s, ASCII_p, ASCII_a, ASCII_c, ASCII_e, + '\0'}; + +/* To avoid warnings about unused functions: */ +#if ! defined(HAVE_ARC4RANDOM_BUF) && ! defined(HAVE_ARC4RANDOM) + +# if defined(HAVE_GETRANDOM) || defined(HAVE_SYSCALL_GETRANDOM) + +/* Obtain entropy on Linux 3.17+ */ +static int +writeRandomBytes_getrandom_nonblock(void *target, size_t count) { + int success = 0; /* full count bytes written? */ + size_t bytesWrittenTotal = 0; + const unsigned int getrandomFlags = GRND_NONBLOCK; + + do { + void *const currentTarget = (void *)((char *)target + bytesWrittenTotal); + const size_t bytesToWrite = count - bytesWrittenTotal; + + const int bytesWrittenMore = +# if defined(HAVE_GETRANDOM) + getrandom(currentTarget, bytesToWrite, getrandomFlags); +# else + syscall(SYS_getrandom, currentTarget, bytesToWrite, getrandomFlags); +# endif + + if (bytesWrittenMore > 0) { + bytesWrittenTotal += bytesWrittenMore; + if (bytesWrittenTotal >= count) + success = 1; + } + } while (! success && (errno == EINTR)); + + return success; +} + +# endif /* defined(HAVE_GETRANDOM) || defined(HAVE_SYSCALL_GETRANDOM) */ + +# if ! defined(_WIN32) && defined(XML_DEV_URANDOM) + +/* Extract entropy from /dev/urandom */ +static int +writeRandomBytes_dev_urandom(void *target, size_t count) { + int success = 0; /* full count bytes written? */ + size_t bytesWrittenTotal = 0; + + const int fd = open("/dev/urandom", O_RDONLY); + if (fd < 0) { + return 0; + } + + do { + void *const currentTarget = (void *)((char *)target + bytesWrittenTotal); + const size_t bytesToWrite = count - bytesWrittenTotal; + + const ssize_t bytesWrittenMore = read(fd, currentTarget, bytesToWrite); + + if (bytesWrittenMore > 0) { + bytesWrittenTotal += bytesWrittenMore; + if (bytesWrittenTotal >= count) + success = 1; + } + } while (! success && (errno == EINTR)); + + close(fd); + return success; +} + +# endif /* ! defined(_WIN32) && defined(XML_DEV_URANDOM) */ + +#endif /* ! defined(HAVE_ARC4RANDOM_BUF) && ! defined(HAVE_ARC4RANDOM) */ + +#if defined(HAVE_ARC4RANDOM) && ! defined(HAVE_ARC4RANDOM_BUF) + +static void +writeRandomBytes_arc4random(void *target, size_t count) { + size_t bytesWrittenTotal = 0; + + while (bytesWrittenTotal < count) { + const uint32_t random32 = arc4random(); + size_t i = 0; + + for (; (i < sizeof(random32)) && (bytesWrittenTotal < count); + i++, bytesWrittenTotal++) { + const uint8_t random8 = (uint8_t)(random32 >> (i * 8)); + ((uint8_t *)target)[bytesWrittenTotal] = random8; + } + } +} + +#endif /* defined(HAVE_ARC4RANDOM) && ! defined(HAVE_ARC4RANDOM_BUF) */ + +#ifdef _WIN32 + +/* Provide declaration of rand_s() for MinGW-32 (not 64, which has it), + as it didn't declare it in its header prior to version 5.3.0 of its + runtime package (mingwrt, containing stdlib.h). The upstream fix + was introduced at https://osdn.net/projects/mingw/ticket/39658 . */ +# if defined(__MINGW32__) && defined(__MINGW32_VERSION) \ + && __MINGW32_VERSION < 5003000L && ! defined(__MINGW64_VERSION_MAJOR) +__declspec(dllimport) int rand_s(unsigned int *); +# endif + +/* Obtain entropy on Windows using the rand_s() function which + * generates cryptographically secure random numbers. Internally it + * uses RtlGenRandom API which is present in Windows XP and later. + */ +static int +writeRandomBytes_rand_s(void *target, size_t count) { + size_t bytesWrittenTotal = 0; + + while (bytesWrittenTotal < count) { + unsigned int random32 = 0; + size_t i = 0; + + if (rand_s(&random32)) + return 0; /* failure */ + + for (; (i < sizeof(random32)) && (bytesWrittenTotal < count); + i++, bytesWrittenTotal++) { + const uint8_t random8 = (uint8_t)(random32 >> (i * 8)); + ((uint8_t *)target)[bytesWrittenTotal] = random8; + } + } + return 1; /* success */ +} + +#endif /* _WIN32 */ + +#if ! defined(HAVE_ARC4RANDOM_BUF) && ! defined(HAVE_ARC4RANDOM) + +static unsigned long +gather_time_entropy(void) { +# ifdef _WIN32 + FILETIME ft; + GetSystemTimeAsFileTime(&ft); /* never fails */ + return ft.dwHighDateTime ^ ft.dwLowDateTime; +# else + struct timeval tv; + int gettimeofday_res; + + gettimeofday_res = gettimeofday(&tv, NULL); + +# if defined(NDEBUG) + (void)gettimeofday_res; +# else + assert(gettimeofday_res == 0); +# endif /* defined(NDEBUG) */ + + /* Microseconds time is <20 bits entropy */ + return tv.tv_usec; +# endif +} + +#endif /* ! defined(HAVE_ARC4RANDOM_BUF) && ! defined(HAVE_ARC4RANDOM) */ + +static unsigned long +ENTROPY_DEBUG(const char *label, unsigned long entropy) { + if (getDebugLevel("EXPAT_ENTROPY_DEBUG", 0) >= 1u) { + fprintf(stderr, "expat: Entropy: %s --> 0x%0*lx (%lu bytes)\n", label, + (int)sizeof(entropy) * 2, entropy, (unsigned long)sizeof(entropy)); + } + return entropy; +} + +static unsigned long +generate_hash_secret_salt(XML_Parser parser) { + unsigned long entropy; + (void)parser; + + /* "Failproof" high quality providers: */ +#if defined(HAVE_ARC4RANDOM_BUF) + arc4random_buf(&entropy, sizeof(entropy)); + return ENTROPY_DEBUG("arc4random_buf", entropy); +#elif defined(HAVE_ARC4RANDOM) + writeRandomBytes_arc4random((void *)&entropy, sizeof(entropy)); + return ENTROPY_DEBUG("arc4random", entropy); +#else + /* Try high quality providers first .. */ +# ifdef _WIN32 + if (writeRandomBytes_rand_s((void *)&entropy, sizeof(entropy))) { + return ENTROPY_DEBUG("rand_s", entropy); + } +# elif defined(HAVE_GETRANDOM) || defined(HAVE_SYSCALL_GETRANDOM) + if (writeRandomBytes_getrandom_nonblock((void *)&entropy, sizeof(entropy))) { + return ENTROPY_DEBUG("getrandom", entropy); + } +# endif +# if ! defined(_WIN32) && defined(XML_DEV_URANDOM) + if (writeRandomBytes_dev_urandom((void *)&entropy, sizeof(entropy))) { + return ENTROPY_DEBUG("/dev/urandom", entropy); + } +# endif /* ! defined(_WIN32) && defined(XML_DEV_URANDOM) */ + /* .. and self-made low quality for backup: */ + + /* Process ID is 0 bits entropy if attacker has local access */ + entropy = gather_time_entropy() ^ getpid(); + + /* Factors are 2^31-1 and 2^61-1 (Mersenne primes M31 and M61) */ + if (sizeof(unsigned long) == 4) { + return ENTROPY_DEBUG("fallback(4)", entropy * 2147483647); + } else { + return ENTROPY_DEBUG("fallback(8)", + entropy * (unsigned long)2305843009213693951ULL); + } +#endif +} + +static unsigned long +get_hash_secret_salt(XML_Parser parser) { + if (parser->m_parentParser != NULL) + return get_hash_secret_salt(parser->m_parentParser); + return parser->m_hash_secret_salt; +} + +static XML_Bool /* only valid for root parser */ +startParsing(XML_Parser parser) { + /* hash functions must be initialized before setContext() is called */ + if (parser->m_hash_secret_salt == 0) + parser->m_hash_secret_salt = generate_hash_secret_salt(parser); + if (parser->m_ns) { + /* implicit context only set for root parser, since child + parsers (i.e. external entity parsers) will inherit it + */ + return setContext(parser, implicitContext); + } + return XML_TRUE; +} + +XML_Parser XMLCALL +XML_ParserCreate_MM(const XML_Char *encodingName, + const XML_Memory_Handling_Suite *memsuite, + const XML_Char *nameSep) { + return parserCreate(encodingName, memsuite, nameSep, NULL); +} + +static XML_Parser +parserCreate(const XML_Char *encodingName, + const XML_Memory_Handling_Suite *memsuite, const XML_Char *nameSep, + DTD *dtd) { + XML_Parser parser; + + if (memsuite) { + XML_Memory_Handling_Suite *mtemp; + parser = memsuite->malloc_fcn(sizeof(struct XML_ParserStruct)); + if (parser != NULL) { + mtemp = (XML_Memory_Handling_Suite *)&(parser->m_mem); + mtemp->malloc_fcn = memsuite->malloc_fcn; + mtemp->realloc_fcn = memsuite->realloc_fcn; + mtemp->free_fcn = memsuite->free_fcn; + } + } else { + XML_Memory_Handling_Suite *mtemp; + parser = (XML_Parser)malloc(sizeof(struct XML_ParserStruct)); + if (parser != NULL) { + mtemp = (XML_Memory_Handling_Suite *)&(parser->m_mem); + mtemp->malloc_fcn = malloc; + mtemp->realloc_fcn = realloc; + mtemp->free_fcn = free; + } + } + + if (! parser) + return parser; + + parser->m_buffer = NULL; + parser->m_bufferLim = NULL; + + parser->m_attsSize = INIT_ATTS_SIZE; + parser->m_atts + = (ATTRIBUTE *)MALLOC(parser, parser->m_attsSize * sizeof(ATTRIBUTE)); + if (parser->m_atts == NULL) { + FREE(parser, parser); + return NULL; + } +#ifdef XML_ATTR_INFO + parser->m_attInfo = (XML_AttrInfo *)MALLOC( + parser, parser->m_attsSize * sizeof(XML_AttrInfo)); + if (parser->m_attInfo == NULL) { + FREE(parser, parser->m_atts); + FREE(parser, parser); + return NULL; + } +#endif + parser->m_dataBuf + = (XML_Char *)MALLOC(parser, INIT_DATA_BUF_SIZE * sizeof(XML_Char)); + if (parser->m_dataBuf == NULL) { + FREE(parser, parser->m_atts); +#ifdef XML_ATTR_INFO + FREE(parser, parser->m_attInfo); +#endif + FREE(parser, parser); + return NULL; + } + parser->m_dataBufEnd = parser->m_dataBuf + INIT_DATA_BUF_SIZE; + + if (dtd) + parser->m_dtd = dtd; + else { + parser->m_dtd = dtdCreate(&parser->m_mem); + if (parser->m_dtd == NULL) { + FREE(parser, parser->m_dataBuf); + FREE(parser, parser->m_atts); +#ifdef XML_ATTR_INFO + FREE(parser, parser->m_attInfo); +#endif + FREE(parser, parser); + return NULL; + } + } + + parser->m_freeBindingList = NULL; + parser->m_freeTagList = NULL; + parser->m_freeInternalEntities = NULL; + + parser->m_groupSize = 0; + parser->m_groupConnector = NULL; + + parser->m_unknownEncodingHandler = NULL; + parser->m_unknownEncodingHandlerData = NULL; + + parser->m_namespaceSeparator = ASCII_EXCL; + parser->m_ns = XML_FALSE; + parser->m_ns_triplets = XML_FALSE; + + parser->m_nsAtts = NULL; + parser->m_nsAttsVersion = 0; + parser->m_nsAttsPower = 0; + + parser->m_protocolEncodingName = NULL; + + poolInit(&parser->m_tempPool, &(parser->m_mem)); + poolInit(&parser->m_temp2Pool, &(parser->m_mem)); + parserInit(parser, encodingName); + + if (encodingName && ! parser->m_protocolEncodingName) { + XML_ParserFree(parser); + return NULL; + } + + if (nameSep) { + parser->m_ns = XML_TRUE; + parser->m_internalEncoding = XmlGetInternalEncodingNS(); + parser->m_namespaceSeparator = *nameSep; + } else { + parser->m_internalEncoding = XmlGetInternalEncoding(); + } + + return parser; +} + +static void +parserInit(XML_Parser parser, const XML_Char *encodingName) { + parser->m_processor = prologInitProcessor; + XmlPrologStateInit(&parser->m_prologState); + if (encodingName != NULL) { + parser->m_protocolEncodingName = copyString(encodingName, &(parser->m_mem)); + } + parser->m_curBase = NULL; + XmlInitEncoding(&parser->m_initEncoding, &parser->m_encoding, 0); + parser->m_userData = NULL; + parser->m_handlerArg = NULL; + parser->m_startElementHandler = NULL; + parser->m_endElementHandler = NULL; + parser->m_characterDataHandler = NULL; + parser->m_processingInstructionHandler = NULL; + parser->m_commentHandler = NULL; + parser->m_startCdataSectionHandler = NULL; + parser->m_endCdataSectionHandler = NULL; + parser->m_defaultHandler = NULL; + parser->m_startDoctypeDeclHandler = NULL; + parser->m_endDoctypeDeclHandler = NULL; + parser->m_unparsedEntityDeclHandler = NULL; + parser->m_notationDeclHandler = NULL; + parser->m_startNamespaceDeclHandler = NULL; + parser->m_endNamespaceDeclHandler = NULL; + parser->m_notStandaloneHandler = NULL; + parser->m_externalEntityRefHandler = NULL; + parser->m_externalEntityRefHandlerArg = parser; + parser->m_skippedEntityHandler = NULL; + parser->m_elementDeclHandler = NULL; + parser->m_attlistDeclHandler = NULL; + parser->m_entityDeclHandler = NULL; + parser->m_xmlDeclHandler = NULL; + parser->m_bufferPtr = parser->m_buffer; + parser->m_bufferEnd = parser->m_buffer; + parser->m_parseEndByteIndex = 0; + parser->m_parseEndPtr = NULL; + parser->m_declElementType = NULL; + parser->m_declAttributeId = NULL; + parser->m_declEntity = NULL; + parser->m_doctypeName = NULL; + parser->m_doctypeSysid = NULL; + parser->m_doctypePubid = NULL; + parser->m_declAttributeType = NULL; + parser->m_declNotationName = NULL; + parser->m_declNotationPublicId = NULL; + parser->m_declAttributeIsCdata = XML_FALSE; + parser->m_declAttributeIsId = XML_FALSE; + memset(&parser->m_position, 0, sizeof(POSITION)); + parser->m_errorCode = XML_ERROR_NONE; + parser->m_eventPtr = NULL; + parser->m_eventEndPtr = NULL; + parser->m_positionPtr = NULL; + parser->m_openInternalEntities = NULL; + parser->m_defaultExpandInternalEntities = XML_TRUE; + parser->m_tagLevel = 0; + parser->m_tagStack = NULL; + parser->m_inheritedBindings = NULL; + parser->m_nSpecifiedAtts = 0; + parser->m_unknownEncodingMem = NULL; + parser->m_unknownEncodingRelease = NULL; + parser->m_unknownEncodingData = NULL; + parser->m_parentParser = NULL; + parser->m_parsingStatus.parsing = XML_INITIALIZED; +#ifdef XML_DTD + parser->m_isParamEntity = XML_FALSE; + parser->m_useForeignDTD = XML_FALSE; + parser->m_paramEntityParsing = XML_PARAM_ENTITY_PARSING_NEVER; +#endif + parser->m_hash_secret_salt = 0; + +#ifdef XML_DTD + memset(&parser->m_accounting, 0, sizeof(ACCOUNTING)); + parser->m_accounting.debugLevel = getDebugLevel("EXPAT_ACCOUNTING_DEBUG", 0u); + parser->m_accounting.maximumAmplificationFactor + = EXPAT_BILLION_LAUGHS_ATTACK_PROTECTION_MAXIMUM_AMPLIFICATION_DEFAULT; + parser->m_accounting.activationThresholdBytes + = EXPAT_BILLION_LAUGHS_ATTACK_PROTECTION_ACTIVATION_THRESHOLD_DEFAULT; + + memset(&parser->m_entity_stats, 0, sizeof(ENTITY_STATS)); + parser->m_entity_stats.debugLevel = getDebugLevel("EXPAT_ENTITY_DEBUG", 0u); +#endif +} + +/* moves list of bindings to m_freeBindingList */ +static void FASTCALL +moveToFreeBindingList(XML_Parser parser, BINDING *bindings) { + while (bindings) { + BINDING *b = bindings; + bindings = bindings->nextTagBinding; + b->nextTagBinding = parser->m_freeBindingList; + parser->m_freeBindingList = b; + } +} + +XML_Bool XMLCALL +XML_ParserReset(XML_Parser parser, const XML_Char *encodingName) { + TAG *tStk; + OPEN_INTERNAL_ENTITY *openEntityList; + + if (parser == NULL) + return XML_FALSE; + + if (parser->m_parentParser) + return XML_FALSE; + /* move m_tagStack to m_freeTagList */ + tStk = parser->m_tagStack; + while (tStk) { + TAG *tag = tStk; + tStk = tStk->parent; + tag->parent = parser->m_freeTagList; + moveToFreeBindingList(parser, tag->bindings); + tag->bindings = NULL; + parser->m_freeTagList = tag; + } + /* move m_openInternalEntities to m_freeInternalEntities */ + openEntityList = parser->m_openInternalEntities; + while (openEntityList) { + OPEN_INTERNAL_ENTITY *openEntity = openEntityList; + openEntityList = openEntity->next; + openEntity->next = parser->m_freeInternalEntities; + parser->m_freeInternalEntities = openEntity; + } + moveToFreeBindingList(parser, parser->m_inheritedBindings); + FREE(parser, parser->m_unknownEncodingMem); + if (parser->m_unknownEncodingRelease) + parser->m_unknownEncodingRelease(parser->m_unknownEncodingData); + poolClear(&parser->m_tempPool); + poolClear(&parser->m_temp2Pool); + FREE(parser, (void *)parser->m_protocolEncodingName); + parser->m_protocolEncodingName = NULL; + parserInit(parser, encodingName); + dtdReset(parser->m_dtd, &parser->m_mem); + return XML_TRUE; +} + +enum XML_Status XMLCALL +XML_SetEncoding(XML_Parser parser, const XML_Char *encodingName) { + if (parser == NULL) + return XML_STATUS_ERROR; + /* Block after XML_Parse()/XML_ParseBuffer() has been called. + XXX There's no way for the caller to determine which of the + XXX possible error cases caused the XML_STATUS_ERROR return. + */ + if (parser->m_parsingStatus.parsing == XML_PARSING + || parser->m_parsingStatus.parsing == XML_SUSPENDED) + return XML_STATUS_ERROR; + + /* Get rid of any previous encoding name */ + FREE(parser, (void *)parser->m_protocolEncodingName); + + if (encodingName == NULL) + /* No new encoding name */ + parser->m_protocolEncodingName = NULL; + else { + /* Copy the new encoding name into allocated memory */ + parser->m_protocolEncodingName = copyString(encodingName, &(parser->m_mem)); + if (! parser->m_protocolEncodingName) + return XML_STATUS_ERROR; + } + return XML_STATUS_OK; +} + +XML_Parser XMLCALL +XML_ExternalEntityParserCreate(XML_Parser oldParser, const XML_Char *context, + const XML_Char *encodingName) { + XML_Parser parser = oldParser; + DTD *newDtd = NULL; + DTD *oldDtd; + XML_StartElementHandler oldStartElementHandler; + XML_EndElementHandler oldEndElementHandler; + XML_CharacterDataHandler oldCharacterDataHandler; + XML_ProcessingInstructionHandler oldProcessingInstructionHandler; + XML_CommentHandler oldCommentHandler; + XML_StartCdataSectionHandler oldStartCdataSectionHandler; + XML_EndCdataSectionHandler oldEndCdataSectionHandler; + XML_DefaultHandler oldDefaultHandler; + XML_UnparsedEntityDeclHandler oldUnparsedEntityDeclHandler; + XML_NotationDeclHandler oldNotationDeclHandler; + XML_StartNamespaceDeclHandler oldStartNamespaceDeclHandler; + XML_EndNamespaceDeclHandler oldEndNamespaceDeclHandler; + XML_NotStandaloneHandler oldNotStandaloneHandler; + XML_ExternalEntityRefHandler oldExternalEntityRefHandler; + XML_SkippedEntityHandler oldSkippedEntityHandler; + XML_UnknownEncodingHandler oldUnknownEncodingHandler; + XML_ElementDeclHandler oldElementDeclHandler; + XML_AttlistDeclHandler oldAttlistDeclHandler; + XML_EntityDeclHandler oldEntityDeclHandler; + XML_XmlDeclHandler oldXmlDeclHandler; + ELEMENT_TYPE *oldDeclElementType; + + void *oldUserData; + void *oldHandlerArg; + XML_Bool oldDefaultExpandInternalEntities; + XML_Parser oldExternalEntityRefHandlerArg; +#ifdef XML_DTD + enum XML_ParamEntityParsing oldParamEntityParsing; + int oldInEntityValue; +#endif + XML_Bool oldns_triplets; + /* Note that the new parser shares the same hash secret as the old + parser, so that dtdCopy and copyEntityTable can lookup values + from hash tables associated with either parser without us having + to worry which hash secrets each table has. + */ + unsigned long oldhash_secret_salt; + + /* Validate the oldParser parameter before we pull everything out of it */ + if (oldParser == NULL) + return NULL; + + /* Stash the original parser contents on the stack */ + oldDtd = parser->m_dtd; + oldStartElementHandler = parser->m_startElementHandler; + oldEndElementHandler = parser->m_endElementHandler; + oldCharacterDataHandler = parser->m_characterDataHandler; + oldProcessingInstructionHandler = parser->m_processingInstructionHandler; + oldCommentHandler = parser->m_commentHandler; + oldStartCdataSectionHandler = parser->m_startCdataSectionHandler; + oldEndCdataSectionHandler = parser->m_endCdataSectionHandler; + oldDefaultHandler = parser->m_defaultHandler; + oldUnparsedEntityDeclHandler = parser->m_unparsedEntityDeclHandler; + oldNotationDeclHandler = parser->m_notationDeclHandler; + oldStartNamespaceDeclHandler = parser->m_startNamespaceDeclHandler; + oldEndNamespaceDeclHandler = parser->m_endNamespaceDeclHandler; + oldNotStandaloneHandler = parser->m_notStandaloneHandler; + oldExternalEntityRefHandler = parser->m_externalEntityRefHandler; + oldSkippedEntityHandler = parser->m_skippedEntityHandler; + oldUnknownEncodingHandler = parser->m_unknownEncodingHandler; + oldElementDeclHandler = parser->m_elementDeclHandler; + oldAttlistDeclHandler = parser->m_attlistDeclHandler; + oldEntityDeclHandler = parser->m_entityDeclHandler; + oldXmlDeclHandler = parser->m_xmlDeclHandler; + oldDeclElementType = parser->m_declElementType; + + oldUserData = parser->m_userData; + oldHandlerArg = parser->m_handlerArg; + oldDefaultExpandInternalEntities = parser->m_defaultExpandInternalEntities; + oldExternalEntityRefHandlerArg = parser->m_externalEntityRefHandlerArg; +#ifdef XML_DTD + oldParamEntityParsing = parser->m_paramEntityParsing; + oldInEntityValue = parser->m_prologState.inEntityValue; +#endif + oldns_triplets = parser->m_ns_triplets; + /* Note that the new parser shares the same hash secret as the old + parser, so that dtdCopy and copyEntityTable can lookup values + from hash tables associated with either parser without us having + to worry which hash secrets each table has. + */ + oldhash_secret_salt = parser->m_hash_secret_salt; + +#ifdef XML_DTD + if (! context) + newDtd = oldDtd; +#endif /* XML_DTD */ + + /* Note that the magical uses of the pre-processor to make field + access look more like C++ require that `parser' be overwritten + here. This makes this function more painful to follow than it + would be otherwise. + */ + if (parser->m_ns) { + XML_Char tmp[2] = {parser->m_namespaceSeparator, 0}; + parser = parserCreate(encodingName, &parser->m_mem, tmp, newDtd); + } else { + parser = parserCreate(encodingName, &parser->m_mem, NULL, newDtd); + } + + if (! parser) + return NULL; + + parser->m_startElementHandler = oldStartElementHandler; + parser->m_endElementHandler = oldEndElementHandler; + parser->m_characterDataHandler = oldCharacterDataHandler; + parser->m_processingInstructionHandler = oldProcessingInstructionHandler; + parser->m_commentHandler = oldCommentHandler; + parser->m_startCdataSectionHandler = oldStartCdataSectionHandler; + parser->m_endCdataSectionHandler = oldEndCdataSectionHandler; + parser->m_defaultHandler = oldDefaultHandler; + parser->m_unparsedEntityDeclHandler = oldUnparsedEntityDeclHandler; + parser->m_notationDeclHandler = oldNotationDeclHandler; + parser->m_startNamespaceDeclHandler = oldStartNamespaceDeclHandler; + parser->m_endNamespaceDeclHandler = oldEndNamespaceDeclHandler; + parser->m_notStandaloneHandler = oldNotStandaloneHandler; + parser->m_externalEntityRefHandler = oldExternalEntityRefHandler; + parser->m_skippedEntityHandler = oldSkippedEntityHandler; + parser->m_unknownEncodingHandler = oldUnknownEncodingHandler; + parser->m_elementDeclHandler = oldElementDeclHandler; + parser->m_attlistDeclHandler = oldAttlistDeclHandler; + parser->m_entityDeclHandler = oldEntityDeclHandler; + parser->m_xmlDeclHandler = oldXmlDeclHandler; + parser->m_declElementType = oldDeclElementType; + parser->m_userData = oldUserData; + if (oldUserData == oldHandlerArg) + parser->m_handlerArg = parser->m_userData; + else + parser->m_handlerArg = parser; + if (oldExternalEntityRefHandlerArg != oldParser) + parser->m_externalEntityRefHandlerArg = oldExternalEntityRefHandlerArg; + parser->m_defaultExpandInternalEntities = oldDefaultExpandInternalEntities; + parser->m_ns_triplets = oldns_triplets; + parser->m_hash_secret_salt = oldhash_secret_salt; + parser->m_parentParser = oldParser; +#ifdef XML_DTD + parser->m_paramEntityParsing = oldParamEntityParsing; + parser->m_prologState.inEntityValue = oldInEntityValue; + if (context) { +#endif /* XML_DTD */ + if (! dtdCopy(oldParser, parser->m_dtd, oldDtd, &parser->m_mem) + || ! setContext(parser, context)) { + XML_ParserFree(parser); + return NULL; + } + parser->m_processor = externalEntityInitProcessor; +#ifdef XML_DTD + } else { + /* The DTD instance referenced by parser->m_dtd is shared between the + document's root parser and external PE parsers, therefore one does not + need to call setContext. In addition, one also *must* not call + setContext, because this would overwrite existing prefix->binding + pointers in parser->m_dtd with ones that get destroyed with the external + PE parser. This would leave those prefixes with dangling pointers. + */ + parser->m_isParamEntity = XML_TRUE; + XmlPrologStateInitExternalEntity(&parser->m_prologState); + parser->m_processor = externalParEntInitProcessor; + } +#endif /* XML_DTD */ + return parser; +} + +static void FASTCALL +destroyBindings(BINDING *bindings, XML_Parser parser) { + for (;;) { + BINDING *b = bindings; + if (! b) + break; + bindings = b->nextTagBinding; + FREE(parser, b->uri); + FREE(parser, b); + } +} + +void XMLCALL +XML_ParserFree(XML_Parser parser) { + TAG *tagList; + OPEN_INTERNAL_ENTITY *entityList; + if (parser == NULL) + return; + /* free m_tagStack and m_freeTagList */ + tagList = parser->m_tagStack; + for (;;) { + TAG *p; + if (tagList == NULL) { + if (parser->m_freeTagList == NULL) + break; + tagList = parser->m_freeTagList; + parser->m_freeTagList = NULL; + } + p = tagList; + tagList = tagList->parent; + FREE(parser, p->buf); + destroyBindings(p->bindings, parser); + FREE(parser, p); + } + /* free m_openInternalEntities and m_freeInternalEntities */ + entityList = parser->m_openInternalEntities; + for (;;) { + OPEN_INTERNAL_ENTITY *openEntity; + if (entityList == NULL) { + if (parser->m_freeInternalEntities == NULL) + break; + entityList = parser->m_freeInternalEntities; + parser->m_freeInternalEntities = NULL; + } + openEntity = entityList; + entityList = entityList->next; + FREE(parser, openEntity); + } + + destroyBindings(parser->m_freeBindingList, parser); + destroyBindings(parser->m_inheritedBindings, parser); + poolDestroy(&parser->m_tempPool); + poolDestroy(&parser->m_temp2Pool); + FREE(parser, (void *)parser->m_protocolEncodingName); +#ifdef XML_DTD + /* external parameter entity parsers share the DTD structure + parser->m_dtd with the root parser, so we must not destroy it + */ + if (! parser->m_isParamEntity && parser->m_dtd) +#else + if (parser->m_dtd) +#endif /* XML_DTD */ + dtdDestroy(parser->m_dtd, (XML_Bool)! parser->m_parentParser, + &parser->m_mem); + FREE(parser, (void *)parser->m_atts); +#ifdef XML_ATTR_INFO + FREE(parser, (void *)parser->m_attInfo); +#endif + FREE(parser, parser->m_groupConnector); + FREE(parser, parser->m_buffer); + FREE(parser, parser->m_dataBuf); + FREE(parser, parser->m_nsAtts); + FREE(parser, parser->m_unknownEncodingMem); + if (parser->m_unknownEncodingRelease) + parser->m_unknownEncodingRelease(parser->m_unknownEncodingData); + FREE(parser, parser); +} + +void XMLCALL +XML_UseParserAsHandlerArg(XML_Parser parser) { + if (parser != NULL) + parser->m_handlerArg = parser; +} + +enum XML_Error XMLCALL +XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD) { + if (parser == NULL) + return XML_ERROR_INVALID_ARGUMENT; +#ifdef XML_DTD + /* block after XML_Parse()/XML_ParseBuffer() has been called */ + if (parser->m_parsingStatus.parsing == XML_PARSING + || parser->m_parsingStatus.parsing == XML_SUSPENDED) + return XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING; + parser->m_useForeignDTD = useDTD; + return XML_ERROR_NONE; +#else + UNUSED_P(useDTD); + return XML_ERROR_FEATURE_REQUIRES_XML_DTD; +#endif +} + +void XMLCALL +XML_SetReturnNSTriplet(XML_Parser parser, int do_nst) { + if (parser == NULL) + return; + /* block after XML_Parse()/XML_ParseBuffer() has been called */ + if (parser->m_parsingStatus.parsing == XML_PARSING + || parser->m_parsingStatus.parsing == XML_SUSPENDED) + return; + parser->m_ns_triplets = do_nst ? XML_TRUE : XML_FALSE; +} + +void XMLCALL +XML_SetUserData(XML_Parser parser, void *p) { + if (parser == NULL) + return; + if (parser->m_handlerArg == parser->m_userData) + parser->m_handlerArg = parser->m_userData = p; + else + parser->m_userData = p; +} + +enum XML_Status XMLCALL +XML_SetBase(XML_Parser parser, const XML_Char *p) { + if (parser == NULL) + return XML_STATUS_ERROR; + if (p) { + p = poolCopyString(&parser->m_dtd->pool, p); + if (! p) + return XML_STATUS_ERROR; + parser->m_curBase = p; + } else + parser->m_curBase = NULL; + return XML_STATUS_OK; +} + +const XML_Char *XMLCALL +XML_GetBase(XML_Parser parser) { + if (parser == NULL) + return NULL; + return parser->m_curBase; +} + +int XMLCALL +XML_GetSpecifiedAttributeCount(XML_Parser parser) { + if (parser == NULL) + return -1; + return parser->m_nSpecifiedAtts; +} + +int XMLCALL +XML_GetIdAttributeIndex(XML_Parser parser) { + if (parser == NULL) + return -1; + return parser->m_idAttIndex; +} + +#ifdef XML_ATTR_INFO +const XML_AttrInfo *XMLCALL +XML_GetAttributeInfo(XML_Parser parser) { + if (parser == NULL) + return NULL; + return parser->m_attInfo; +} +#endif + +void XMLCALL +XML_SetElementHandler(XML_Parser parser, XML_StartElementHandler start, + XML_EndElementHandler end) { + if (parser == NULL) + return; + parser->m_startElementHandler = start; + parser->m_endElementHandler = end; +} + +void XMLCALL +XML_SetStartElementHandler(XML_Parser parser, XML_StartElementHandler start) { + if (parser != NULL) + parser->m_startElementHandler = start; +} + +void XMLCALL +XML_SetEndElementHandler(XML_Parser parser, XML_EndElementHandler end) { + if (parser != NULL) + parser->m_endElementHandler = end; +} + +void XMLCALL +XML_SetCharacterDataHandler(XML_Parser parser, + XML_CharacterDataHandler handler) { + if (parser != NULL) + parser->m_characterDataHandler = handler; +} + +void XMLCALL +XML_SetProcessingInstructionHandler(XML_Parser parser, + XML_ProcessingInstructionHandler handler) { + if (parser != NULL) + parser->m_processingInstructionHandler = handler; +} + +void XMLCALL +XML_SetCommentHandler(XML_Parser parser, XML_CommentHandler handler) { + if (parser != NULL) + parser->m_commentHandler = handler; +} + +void XMLCALL +XML_SetCdataSectionHandler(XML_Parser parser, + XML_StartCdataSectionHandler start, + XML_EndCdataSectionHandler end) { + if (parser == NULL) + return; + parser->m_startCdataSectionHandler = start; + parser->m_endCdataSectionHandler = end; +} + +void XMLCALL +XML_SetStartCdataSectionHandler(XML_Parser parser, + XML_StartCdataSectionHandler start) { + if (parser != NULL) + parser->m_startCdataSectionHandler = start; +} + +void XMLCALL +XML_SetEndCdataSectionHandler(XML_Parser parser, + XML_EndCdataSectionHandler end) { + if (parser != NULL) + parser->m_endCdataSectionHandler = end; +} + +void XMLCALL +XML_SetDefaultHandler(XML_Parser parser, XML_DefaultHandler handler) { + if (parser == NULL) + return; + parser->m_defaultHandler = handler; + parser->m_defaultExpandInternalEntities = XML_FALSE; +} + +void XMLCALL +XML_SetDefaultHandlerExpand(XML_Parser parser, XML_DefaultHandler handler) { + if (parser == NULL) + return; + parser->m_defaultHandler = handler; + parser->m_defaultExpandInternalEntities = XML_TRUE; +} + +void XMLCALL +XML_SetDoctypeDeclHandler(XML_Parser parser, XML_StartDoctypeDeclHandler start, + XML_EndDoctypeDeclHandler end) { + if (parser == NULL) + return; + parser->m_startDoctypeDeclHandler = start; + parser->m_endDoctypeDeclHandler = end; +} + +void XMLCALL +XML_SetStartDoctypeDeclHandler(XML_Parser parser, + XML_StartDoctypeDeclHandler start) { + if (parser != NULL) + parser->m_startDoctypeDeclHandler = start; +} + +void XMLCALL +XML_SetEndDoctypeDeclHandler(XML_Parser parser, XML_EndDoctypeDeclHandler end) { + if (parser != NULL) + parser->m_endDoctypeDeclHandler = end; +} + +void XMLCALL +XML_SetUnparsedEntityDeclHandler(XML_Parser parser, + XML_UnparsedEntityDeclHandler handler) { + if (parser != NULL) + parser->m_unparsedEntityDeclHandler = handler; +} + +void XMLCALL +XML_SetNotationDeclHandler(XML_Parser parser, XML_NotationDeclHandler handler) { + if (parser != NULL) + parser->m_notationDeclHandler = handler; +} + +void XMLCALL +XML_SetNamespaceDeclHandler(XML_Parser parser, + XML_StartNamespaceDeclHandler start, + XML_EndNamespaceDeclHandler end) { + if (parser == NULL) + return; + parser->m_startNamespaceDeclHandler = start; + parser->m_endNamespaceDeclHandler = end; +} + +void XMLCALL +XML_SetStartNamespaceDeclHandler(XML_Parser parser, + XML_StartNamespaceDeclHandler start) { + if (parser != NULL) + parser->m_startNamespaceDeclHandler = start; +} + +void XMLCALL +XML_SetEndNamespaceDeclHandler(XML_Parser parser, + XML_EndNamespaceDeclHandler end) { + if (parser != NULL) + parser->m_endNamespaceDeclHandler = end; +} + +void XMLCALL +XML_SetNotStandaloneHandler(XML_Parser parser, + XML_NotStandaloneHandler handler) { + if (parser != NULL) + parser->m_notStandaloneHandler = handler; +} + +void XMLCALL +XML_SetExternalEntityRefHandler(XML_Parser parser, + XML_ExternalEntityRefHandler handler) { + if (parser != NULL) + parser->m_externalEntityRefHandler = handler; +} + +void XMLCALL +XML_SetExternalEntityRefHandlerArg(XML_Parser parser, void *arg) { + if (parser == NULL) + return; + if (arg) + parser->m_externalEntityRefHandlerArg = (XML_Parser)arg; + else + parser->m_externalEntityRefHandlerArg = parser; +} + +void XMLCALL +XML_SetSkippedEntityHandler(XML_Parser parser, + XML_SkippedEntityHandler handler) { + if (parser != NULL) + parser->m_skippedEntityHandler = handler; +} + +void XMLCALL +XML_SetUnknownEncodingHandler(XML_Parser parser, + XML_UnknownEncodingHandler handler, void *data) { + if (parser == NULL) + return; + parser->m_unknownEncodingHandler = handler; + parser->m_unknownEncodingHandlerData = data; +} + +void XMLCALL +XML_SetElementDeclHandler(XML_Parser parser, XML_ElementDeclHandler eldecl) { + if (parser != NULL) + parser->m_elementDeclHandler = eldecl; +} + +void XMLCALL +XML_SetAttlistDeclHandler(XML_Parser parser, XML_AttlistDeclHandler attdecl) { + if (parser != NULL) + parser->m_attlistDeclHandler = attdecl; +} + +void XMLCALL +XML_SetEntityDeclHandler(XML_Parser parser, XML_EntityDeclHandler handler) { + if (parser != NULL) + parser->m_entityDeclHandler = handler; +} + +void XMLCALL +XML_SetXmlDeclHandler(XML_Parser parser, XML_XmlDeclHandler handler) { + if (parser != NULL) + parser->m_xmlDeclHandler = handler; +} + +int XMLCALL +XML_SetParamEntityParsing(XML_Parser parser, + enum XML_ParamEntityParsing peParsing) { + if (parser == NULL) + return 0; + /* block after XML_Parse()/XML_ParseBuffer() has been called */ + if (parser->m_parsingStatus.parsing == XML_PARSING + || parser->m_parsingStatus.parsing == XML_SUSPENDED) + return 0; +#ifdef XML_DTD + parser->m_paramEntityParsing = peParsing; + return 1; +#else + return peParsing == XML_PARAM_ENTITY_PARSING_NEVER; +#endif +} + +int XMLCALL +XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt) { + if (parser == NULL) + return 0; + if (parser->m_parentParser) + return XML_SetHashSalt(parser->m_parentParser, hash_salt); + /* block after XML_Parse()/XML_ParseBuffer() has been called */ + if (parser->m_parsingStatus.parsing == XML_PARSING + || parser->m_parsingStatus.parsing == XML_SUSPENDED) + return 0; + parser->m_hash_secret_salt = hash_salt; + return 1; +} + +enum XML_Status XMLCALL +XML_Parse(XML_Parser parser, const char *s, int len, int isFinal) { + if ((parser == NULL) || (len < 0) || ((s == NULL) && (len != 0))) { + if (parser != NULL) + parser->m_errorCode = XML_ERROR_INVALID_ARGUMENT; + return XML_STATUS_ERROR; + } + switch (parser->m_parsingStatus.parsing) { + case XML_SUSPENDED: + parser->m_errorCode = XML_ERROR_SUSPENDED; + return XML_STATUS_ERROR; + case XML_FINISHED: + parser->m_errorCode = XML_ERROR_FINISHED; + return XML_STATUS_ERROR; + case XML_INITIALIZED: + if (parser->m_parentParser == NULL && ! startParsing(parser)) { + parser->m_errorCode = XML_ERROR_NO_MEMORY; + return XML_STATUS_ERROR; + } + /* fall through */ + default: + parser->m_parsingStatus.parsing = XML_PARSING; + } + + if (len == 0) { + parser->m_parsingStatus.finalBuffer = (XML_Bool)isFinal; + if (! isFinal) + return XML_STATUS_OK; + parser->m_positionPtr = parser->m_bufferPtr; + parser->m_parseEndPtr = parser->m_bufferEnd; + + /* If data are left over from last buffer, and we now know that these + data are the final chunk of input, then we have to check them again + to detect errors based on that fact. + */ + parser->m_errorCode + = parser->m_processor(parser, parser->m_bufferPtr, + parser->m_parseEndPtr, &parser->m_bufferPtr); + + if (parser->m_errorCode == XML_ERROR_NONE) { + switch (parser->m_parsingStatus.parsing) { + case XML_SUSPENDED: + /* It is hard to be certain, but it seems that this case + * cannot occur. This code is cleaning up a previous parse + * with no new data (since len == 0). Changing the parsing + * state requires getting to execute a handler function, and + * there doesn't seem to be an opportunity for that while in + * this circumstance. + * + * Given the uncertainty, we retain the code but exclude it + * from coverage tests. + * + * LCOV_EXCL_START + */ + XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, + parser->m_bufferPtr, &parser->m_position); + parser->m_positionPtr = parser->m_bufferPtr; + return XML_STATUS_SUSPENDED; + /* LCOV_EXCL_STOP */ + case XML_INITIALIZED: + case XML_PARSING: + parser->m_parsingStatus.parsing = XML_FINISHED; + /* fall through */ + default: + return XML_STATUS_OK; + } + } + parser->m_eventEndPtr = parser->m_eventPtr; + parser->m_processor = errorProcessor; + return XML_STATUS_ERROR; + } +#ifndef XML_CONTEXT_BYTES + else if (parser->m_bufferPtr == parser->m_bufferEnd) { + const char *end; + int nLeftOver; + enum XML_Status result; + /* Detect overflow (a+b > MAX <==> b > MAX-a) */ + if ((XML_Size)len > ((XML_Size)-1) / 2 - parser->m_parseEndByteIndex) { + parser->m_errorCode = XML_ERROR_NO_MEMORY; + parser->m_eventPtr = parser->m_eventEndPtr = NULL; + parser->m_processor = errorProcessor; + return XML_STATUS_ERROR; + } + parser->m_parseEndByteIndex += len; + parser->m_positionPtr = s; + parser->m_parsingStatus.finalBuffer = (XML_Bool)isFinal; + + parser->m_errorCode + = parser->m_processor(parser, s, parser->m_parseEndPtr = s + len, &end); + + if (parser->m_errorCode != XML_ERROR_NONE) { + parser->m_eventEndPtr = parser->m_eventPtr; + parser->m_processor = errorProcessor; + return XML_STATUS_ERROR; + } else { + switch (parser->m_parsingStatus.parsing) { + case XML_SUSPENDED: + result = XML_STATUS_SUSPENDED; + break; + case XML_INITIALIZED: + case XML_PARSING: + if (isFinal) { + parser->m_parsingStatus.parsing = XML_FINISHED; + return XML_STATUS_OK; + } + /* fall through */ + default: + result = XML_STATUS_OK; + } + } + + XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, end, + &parser->m_position); + nLeftOver = s + len - end; + if (nLeftOver) { + if (parser->m_buffer == NULL + || nLeftOver > parser->m_bufferLim - parser->m_buffer) { + /* avoid _signed_ integer overflow */ + char *temp = NULL; + const int bytesToAllocate = (int)((unsigned)len * 2U); + if (bytesToAllocate > 0) { + temp = (char *)REALLOC(parser, parser->m_buffer, bytesToAllocate); + } + if (temp == NULL) { + parser->m_errorCode = XML_ERROR_NO_MEMORY; + parser->m_eventPtr = parser->m_eventEndPtr = NULL; + parser->m_processor = errorProcessor; + return XML_STATUS_ERROR; + } + parser->m_buffer = temp; + parser->m_bufferLim = parser->m_buffer + bytesToAllocate; + } + memcpy(parser->m_buffer, end, nLeftOver); + } + parser->m_bufferPtr = parser->m_buffer; + parser->m_bufferEnd = parser->m_buffer + nLeftOver; + parser->m_positionPtr = parser->m_bufferPtr; + parser->m_parseEndPtr = parser->m_bufferEnd; + parser->m_eventPtr = parser->m_bufferPtr; + parser->m_eventEndPtr = parser->m_bufferPtr; + return result; + } +#endif /* not defined XML_CONTEXT_BYTES */ + else { + void *buff = XML_GetBuffer(parser, len); + if (buff == NULL) + return XML_STATUS_ERROR; + else { + memcpy(buff, s, len); + return XML_ParseBuffer(parser, len, isFinal); + } + } +} + +enum XML_Status XMLCALL +XML_ParseBuffer(XML_Parser parser, int len, int isFinal) { + const char *start; + enum XML_Status result = XML_STATUS_OK; + + if (parser == NULL) + return XML_STATUS_ERROR; + switch (parser->m_parsingStatus.parsing) { + case XML_SUSPENDED: + parser->m_errorCode = XML_ERROR_SUSPENDED; + return XML_STATUS_ERROR; + case XML_FINISHED: + parser->m_errorCode = XML_ERROR_FINISHED; + return XML_STATUS_ERROR; + case XML_INITIALIZED: + /* Has someone called XML_GetBuffer successfully before? */ + if (! parser->m_bufferPtr) { + parser->m_errorCode = XML_ERROR_NO_BUFFER; + return XML_STATUS_ERROR; + } + + if (parser->m_parentParser == NULL && ! startParsing(parser)) { + parser->m_errorCode = XML_ERROR_NO_MEMORY; + return XML_STATUS_ERROR; + } + /* fall through */ + default: + parser->m_parsingStatus.parsing = XML_PARSING; + } + + start = parser->m_bufferPtr; + parser->m_positionPtr = start; + parser->m_bufferEnd += len; + parser->m_parseEndPtr = parser->m_bufferEnd; + parser->m_parseEndByteIndex += len; + parser->m_parsingStatus.finalBuffer = (XML_Bool)isFinal; + + parser->m_errorCode = parser->m_processor( + parser, start, parser->m_parseEndPtr, &parser->m_bufferPtr); + + if (parser->m_errorCode != XML_ERROR_NONE) { + parser->m_eventEndPtr = parser->m_eventPtr; + parser->m_processor = errorProcessor; + return XML_STATUS_ERROR; + } else { + switch (parser->m_parsingStatus.parsing) { + case XML_SUSPENDED: + result = XML_STATUS_SUSPENDED; + break; + case XML_INITIALIZED: + case XML_PARSING: + if (isFinal) { + parser->m_parsingStatus.parsing = XML_FINISHED; + return result; + } + default:; /* should not happen */ + } + } + + XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, + parser->m_bufferPtr, &parser->m_position); + parser->m_positionPtr = parser->m_bufferPtr; + return result; +} + +void *XMLCALL +XML_GetBuffer(XML_Parser parser, int len) { + if (parser == NULL) + return NULL; + if (len < 0) { + parser->m_errorCode = XML_ERROR_NO_MEMORY; + return NULL; + } + switch (parser->m_parsingStatus.parsing) { + case XML_SUSPENDED: + parser->m_errorCode = XML_ERROR_SUSPENDED; + return NULL; + case XML_FINISHED: + parser->m_errorCode = XML_ERROR_FINISHED; + return NULL; + default:; + } + + if (len > EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_bufferEnd)) { +#ifdef XML_CONTEXT_BYTES + int keep; +#endif /* defined XML_CONTEXT_BYTES */ + /* Do not invoke signed arithmetic overflow: */ + int neededSize = (int)((unsigned)len + + (unsigned)EXPAT_SAFE_PTR_DIFF( + parser->m_bufferEnd, parser->m_bufferPtr)); + if (neededSize < 0) { + parser->m_errorCode = XML_ERROR_NO_MEMORY; + return NULL; + } +#ifdef XML_CONTEXT_BYTES + keep = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer); + if (keep > XML_CONTEXT_BYTES) + keep = XML_CONTEXT_BYTES; + /* Detect and prevent integer overflow */ + if (keep > INT_MAX - neededSize) { + parser->m_errorCode = XML_ERROR_NO_MEMORY; + return NULL; + } + neededSize += keep; +#endif /* defined XML_CONTEXT_BYTES */ + if (neededSize + <= EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_buffer)) { +#ifdef XML_CONTEXT_BYTES + if (keep < EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer)) { + int offset + = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer) + - keep; + /* The buffer pointers cannot be NULL here; we have at least some bytes + * in the buffer */ + memmove(parser->m_buffer, &parser->m_buffer[offset], + parser->m_bufferEnd - parser->m_bufferPtr + keep); + parser->m_bufferEnd -= offset; + parser->m_bufferPtr -= offset; + } +#else + if (parser->m_buffer && parser->m_bufferPtr) { + memmove(parser->m_buffer, parser->m_bufferPtr, + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr)); + parser->m_bufferEnd + = parser->m_buffer + + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr); + parser->m_bufferPtr = parser->m_buffer; + } +#endif /* not defined XML_CONTEXT_BYTES */ + } else { + char *newBuf; + int bufferSize + = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_bufferPtr); + if (bufferSize == 0) + bufferSize = INIT_BUFFER_SIZE; + do { + /* Do not invoke signed arithmetic overflow: */ + bufferSize = (int)(2U * (unsigned)bufferSize); + } while (bufferSize < neededSize && bufferSize > 0); + if (bufferSize <= 0) { + parser->m_errorCode = XML_ERROR_NO_MEMORY; + return NULL; + } + newBuf = (char *)MALLOC(parser, bufferSize); + if (newBuf == 0) { + parser->m_errorCode = XML_ERROR_NO_MEMORY; + return NULL; + } + parser->m_bufferLim = newBuf + bufferSize; +#ifdef XML_CONTEXT_BYTES + if (parser->m_bufferPtr) { + memcpy(newBuf, &parser->m_bufferPtr[-keep], + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr) + + keep); + FREE(parser, parser->m_buffer); + parser->m_buffer = newBuf; + parser->m_bufferEnd + = parser->m_buffer + + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr) + + keep; + parser->m_bufferPtr = parser->m_buffer + keep; + } else { + /* This must be a brand new buffer with no data in it yet */ + parser->m_bufferEnd = newBuf; + parser->m_bufferPtr = parser->m_buffer = newBuf; + } +#else + if (parser->m_bufferPtr) { + memcpy(newBuf, parser->m_bufferPtr, + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr)); + FREE(parser, parser->m_buffer); + parser->m_bufferEnd + = newBuf + + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr); + } else { + /* This must be a brand new buffer with no data in it yet */ + parser->m_bufferEnd = newBuf; + } + parser->m_bufferPtr = parser->m_buffer = newBuf; +#endif /* not defined XML_CONTEXT_BYTES */ + } + parser->m_eventPtr = parser->m_eventEndPtr = NULL; + parser->m_positionPtr = NULL; + } + return parser->m_bufferEnd; +} + +enum XML_Status XMLCALL +XML_StopParser(XML_Parser parser, XML_Bool resumable) { + if (parser == NULL) + return XML_STATUS_ERROR; + switch (parser->m_parsingStatus.parsing) { + case XML_SUSPENDED: + if (resumable) { + parser->m_errorCode = XML_ERROR_SUSPENDED; + return XML_STATUS_ERROR; + } + parser->m_parsingStatus.parsing = XML_FINISHED; + break; + case XML_FINISHED: + parser->m_errorCode = XML_ERROR_FINISHED; + return XML_STATUS_ERROR; + default: + if (resumable) { +#ifdef XML_DTD + if (parser->m_isParamEntity) { + parser->m_errorCode = XML_ERROR_SUSPEND_PE; + return XML_STATUS_ERROR; + } +#endif + parser->m_parsingStatus.parsing = XML_SUSPENDED; + } else + parser->m_parsingStatus.parsing = XML_FINISHED; + } + return XML_STATUS_OK; +} + +enum XML_Status XMLCALL +XML_ResumeParser(XML_Parser parser) { + enum XML_Status result = XML_STATUS_OK; + + if (parser == NULL) + return XML_STATUS_ERROR; + if (parser->m_parsingStatus.parsing != XML_SUSPENDED) { + parser->m_errorCode = XML_ERROR_NOT_SUSPENDED; + return XML_STATUS_ERROR; + } + parser->m_parsingStatus.parsing = XML_PARSING; + + parser->m_errorCode = parser->m_processor( + parser, parser->m_bufferPtr, parser->m_parseEndPtr, &parser->m_bufferPtr); + + if (parser->m_errorCode != XML_ERROR_NONE) { + parser->m_eventEndPtr = parser->m_eventPtr; + parser->m_processor = errorProcessor; + return XML_STATUS_ERROR; + } else { + switch (parser->m_parsingStatus.parsing) { + case XML_SUSPENDED: + result = XML_STATUS_SUSPENDED; + break; + case XML_INITIALIZED: + case XML_PARSING: + if (parser->m_parsingStatus.finalBuffer) { + parser->m_parsingStatus.parsing = XML_FINISHED; + return result; + } + default:; + } + } + + XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, + parser->m_bufferPtr, &parser->m_position); + parser->m_positionPtr = parser->m_bufferPtr; + return result; +} + +void XMLCALL +XML_GetParsingStatus(XML_Parser parser, XML_ParsingStatus *status) { + if (parser == NULL) + return; + assert(status != NULL); + *status = parser->m_parsingStatus; +} + +enum XML_Error XMLCALL +XML_GetErrorCode(XML_Parser parser) { + if (parser == NULL) + return XML_ERROR_INVALID_ARGUMENT; + return parser->m_errorCode; +} + +XML_Index XMLCALL +XML_GetCurrentByteIndex(XML_Parser parser) { + if (parser == NULL) + return -1; + if (parser->m_eventPtr) + return (XML_Index)(parser->m_parseEndByteIndex + - (parser->m_parseEndPtr - parser->m_eventPtr)); + return -1; +} + +int XMLCALL +XML_GetCurrentByteCount(XML_Parser parser) { + if (parser == NULL) + return 0; + if (parser->m_eventEndPtr && parser->m_eventPtr) + return (int)(parser->m_eventEndPtr - parser->m_eventPtr); + return 0; +} + +const char *XMLCALL +XML_GetInputContext(XML_Parser parser, int *offset, int *size) { +#ifdef XML_CONTEXT_BYTES + if (parser == NULL) + return NULL; + if (parser->m_eventPtr && parser->m_buffer) { + if (offset != NULL) + *offset = (int)(parser->m_eventPtr - parser->m_buffer); + if (size != NULL) + *size = (int)(parser->m_bufferEnd - parser->m_buffer); + return parser->m_buffer; + } +#else + (void)parser; + (void)offset; + (void)size; +#endif /* defined XML_CONTEXT_BYTES */ + return (const char *)0; +} + +XML_Size XMLCALL +XML_GetCurrentLineNumber(XML_Parser parser) { + if (parser == NULL) + return 0; + if (parser->m_eventPtr && parser->m_eventPtr >= parser->m_positionPtr) { + XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, + parser->m_eventPtr, &parser->m_position); + parser->m_positionPtr = parser->m_eventPtr; + } + return parser->m_position.lineNumber + 1; +} + +XML_Size XMLCALL +XML_GetCurrentColumnNumber(XML_Parser parser) { + if (parser == NULL) + return 0; + if (parser->m_eventPtr && parser->m_eventPtr >= parser->m_positionPtr) { + XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, + parser->m_eventPtr, &parser->m_position); + parser->m_positionPtr = parser->m_eventPtr; + } + return parser->m_position.columnNumber; +} + +void XMLCALL +XML_FreeContentModel(XML_Parser parser, XML_Content *model) { + if (parser != NULL) + FREE(parser, model); +} + +void *XMLCALL +XML_MemMalloc(XML_Parser parser, size_t size) { + if (parser == NULL) + return NULL; + return MALLOC(parser, size); +} + +void *XMLCALL +XML_MemRealloc(XML_Parser parser, void *ptr, size_t size) { + if (parser == NULL) + return NULL; + return REALLOC(parser, ptr, size); +} + +void XMLCALL +XML_MemFree(XML_Parser parser, void *ptr) { + if (parser != NULL) + FREE(parser, ptr); +} + +void XMLCALL +XML_DefaultCurrent(XML_Parser parser) { + if (parser == NULL) + return; + if (parser->m_defaultHandler) { + if (parser->m_openInternalEntities) + reportDefault(parser, parser->m_internalEncoding, + parser->m_openInternalEntities->internalEventPtr, + parser->m_openInternalEntities->internalEventEndPtr); + else + reportDefault(parser, parser->m_encoding, parser->m_eventPtr, + parser->m_eventEndPtr); + } +} + +const XML_LChar *XMLCALL +XML_ErrorString(enum XML_Error code) { + switch (code) { + case XML_ERROR_NONE: + return NULL; + case XML_ERROR_NO_MEMORY: + return XML_L("out of memory"); + case XML_ERROR_SYNTAX: + return XML_L("syntax error"); + case XML_ERROR_NO_ELEMENTS: + return XML_L("no element found"); + case XML_ERROR_INVALID_TOKEN: + return XML_L("not well-formed (invalid token)"); + case XML_ERROR_UNCLOSED_TOKEN: + return XML_L("unclosed token"); + case XML_ERROR_PARTIAL_CHAR: + return XML_L("partial character"); + case XML_ERROR_TAG_MISMATCH: + return XML_L("mismatched tag"); + case XML_ERROR_DUPLICATE_ATTRIBUTE: + return XML_L("duplicate attribute"); + case XML_ERROR_JUNK_AFTER_DOC_ELEMENT: + return XML_L("junk after document element"); + case XML_ERROR_PARAM_ENTITY_REF: + return XML_L("illegal parameter entity reference"); + case XML_ERROR_UNDEFINED_ENTITY: + return XML_L("undefined entity"); + case XML_ERROR_RECURSIVE_ENTITY_REF: + return XML_L("recursive entity reference"); + case XML_ERROR_ASYNC_ENTITY: + return XML_L("asynchronous entity"); + case XML_ERROR_BAD_CHAR_REF: + return XML_L("reference to invalid character number"); + case XML_ERROR_BINARY_ENTITY_REF: + return XML_L("reference to binary entity"); + case XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF: + return XML_L("reference to external entity in attribute"); + case XML_ERROR_MISPLACED_XML_PI: + return XML_L("XML or text declaration not at start of entity"); + case XML_ERROR_UNKNOWN_ENCODING: + return XML_L("unknown encoding"); + case XML_ERROR_INCORRECT_ENCODING: + return XML_L("encoding specified in XML declaration is incorrect"); + case XML_ERROR_UNCLOSED_CDATA_SECTION: + return XML_L("unclosed CDATA section"); + case XML_ERROR_EXTERNAL_ENTITY_HANDLING: + return XML_L("error in processing external entity reference"); + case XML_ERROR_NOT_STANDALONE: + return XML_L("document is not standalone"); + case XML_ERROR_UNEXPECTED_STATE: + return XML_L("unexpected parser state - please send a bug report"); + case XML_ERROR_ENTITY_DECLARED_IN_PE: + return XML_L("entity declared in parameter entity"); + case XML_ERROR_FEATURE_REQUIRES_XML_DTD: + return XML_L("requested feature requires XML_DTD support in Expat"); + case XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING: + return XML_L("cannot change setting once parsing has begun"); + /* Added in 1.95.7. */ + case XML_ERROR_UNBOUND_PREFIX: + return XML_L("unbound prefix"); + /* Added in 1.95.8. */ + case XML_ERROR_UNDECLARING_PREFIX: + return XML_L("must not undeclare prefix"); + case XML_ERROR_INCOMPLETE_PE: + return XML_L("incomplete markup in parameter entity"); + case XML_ERROR_XML_DECL: + return XML_L("XML declaration not well-formed"); + case XML_ERROR_TEXT_DECL: + return XML_L("text declaration not well-formed"); + case XML_ERROR_PUBLICID: + return XML_L("illegal character(s) in public id"); + case XML_ERROR_SUSPENDED: + return XML_L("parser suspended"); + case XML_ERROR_NOT_SUSPENDED: + return XML_L("parser not suspended"); + case XML_ERROR_ABORTED: + return XML_L("parsing aborted"); + case XML_ERROR_FINISHED: + return XML_L("parsing finished"); + case XML_ERROR_SUSPEND_PE: + return XML_L("cannot suspend in external parameter entity"); + /* Added in 2.0.0. */ + case XML_ERROR_RESERVED_PREFIX_XML: + return XML_L( + "reserved prefix (xml) must not be undeclared or bound to another namespace name"); + case XML_ERROR_RESERVED_PREFIX_XMLNS: + return XML_L("reserved prefix (xmlns) must not be declared or undeclared"); + case XML_ERROR_RESERVED_NAMESPACE_URI: + return XML_L( + "prefix must not be bound to one of the reserved namespace names"); + /* Added in 2.2.5. */ + case XML_ERROR_INVALID_ARGUMENT: /* Constant added in 2.2.1, already */ + return XML_L("invalid argument"); + /* Added in 2.3.0. */ + case XML_ERROR_NO_BUFFER: + return XML_L( + "a successful prior call to function XML_GetBuffer is required"); + /* Added in 2.4.0. */ + case XML_ERROR_AMPLIFICATION_LIMIT_BREACH: + return XML_L( + "limit on input amplification factor (from DTD and entities) breached"); + } + return NULL; +} + +const XML_LChar *XMLCALL +XML_ExpatVersion(void) { + /* V1 is used to string-ize the version number. However, it would + string-ize the actual version macro *names* unless we get them + substituted before being passed to V1. CPP is defined to expand + a macro, then rescan for more expansions. Thus, we use V2 to expand + the version macros, then CPP will expand the resulting V1() macro + with the correct numerals. */ + /* ### I'm assuming cpp is portable in this respect... */ + +#define V1(a, b, c) XML_L(#a) XML_L(".") XML_L(#b) XML_L(".") XML_L(#c) +#define V2(a, b, c) XML_L("expat_") V1(a, b, c) + + return V2(XML_MAJOR_VERSION, XML_MINOR_VERSION, XML_MICRO_VERSION); + +#undef V1 +#undef V2 +} + +XML_Expat_Version XMLCALL +XML_ExpatVersionInfo(void) { + XML_Expat_Version version; + + version.major = XML_MAJOR_VERSION; + version.minor = XML_MINOR_VERSION; + version.micro = XML_MICRO_VERSION; + + return version; +} + +const XML_Feature *XMLCALL +XML_GetFeatureList(void) { + static const XML_Feature features[] = { + {XML_FEATURE_SIZEOF_XML_CHAR, XML_L("sizeof(XML_Char)"), + sizeof(XML_Char)}, + {XML_FEATURE_SIZEOF_XML_LCHAR, XML_L("sizeof(XML_LChar)"), + sizeof(XML_LChar)}, +#ifdef XML_UNICODE + {XML_FEATURE_UNICODE, XML_L("XML_UNICODE"), 0}, +#endif +#ifdef XML_UNICODE_WCHAR_T + {XML_FEATURE_UNICODE_WCHAR_T, XML_L("XML_UNICODE_WCHAR_T"), 0}, +#endif +#ifdef XML_DTD + {XML_FEATURE_DTD, XML_L("XML_DTD"), 0}, +#endif +#ifdef XML_CONTEXT_BYTES + {XML_FEATURE_CONTEXT_BYTES, XML_L("XML_CONTEXT_BYTES"), + XML_CONTEXT_BYTES}, +#endif +#ifdef XML_MIN_SIZE + {XML_FEATURE_MIN_SIZE, XML_L("XML_MIN_SIZE"), 0}, +#endif +#ifdef XML_NS + {XML_FEATURE_NS, XML_L("XML_NS"), 0}, +#endif +#ifdef XML_LARGE_SIZE + {XML_FEATURE_LARGE_SIZE, XML_L("XML_LARGE_SIZE"), 0}, +#endif +#ifdef XML_ATTR_INFO + {XML_FEATURE_ATTR_INFO, XML_L("XML_ATTR_INFO"), 0}, +#endif +#ifdef XML_DTD + /* Added in Expat 2.4.0. */ + {XML_FEATURE_BILLION_LAUGHS_ATTACK_PROTECTION_MAXIMUM_AMPLIFICATION_DEFAULT, + XML_L("XML_BLAP_MAX_AMP"), + (long int) + EXPAT_BILLION_LAUGHS_ATTACK_PROTECTION_MAXIMUM_AMPLIFICATION_DEFAULT}, + {XML_FEATURE_BILLION_LAUGHS_ATTACK_PROTECTION_ACTIVATION_THRESHOLD_DEFAULT, + XML_L("XML_BLAP_ACT_THRES"), + EXPAT_BILLION_LAUGHS_ATTACK_PROTECTION_ACTIVATION_THRESHOLD_DEFAULT}, +#endif + {XML_FEATURE_END, NULL, 0}}; + + return features; +} + +#ifdef XML_DTD +XML_Bool XMLCALL +XML_SetBillionLaughsAttackProtectionMaximumAmplification( + XML_Parser parser, float maximumAmplificationFactor) { + if ((parser == NULL) || (parser->m_parentParser != NULL) + || isnan(maximumAmplificationFactor) + || (maximumAmplificationFactor < 1.0f)) { + return XML_FALSE; + } + parser->m_accounting.maximumAmplificationFactor = maximumAmplificationFactor; + return XML_TRUE; +} + +XML_Bool XMLCALL +XML_SetBillionLaughsAttackProtectionActivationThreshold( + XML_Parser parser, unsigned long long activationThresholdBytes) { + if ((parser == NULL) || (parser->m_parentParser != NULL)) { + return XML_FALSE; + } + parser->m_accounting.activationThresholdBytes = activationThresholdBytes; + return XML_TRUE; +} +#endif /* XML_DTD */ + +/* Initially tag->rawName always points into the parse buffer; + for those TAG instances opened while the current parse buffer was + processed, and not yet closed, we need to store tag->rawName in a more + permanent location, since the parse buffer is about to be discarded. +*/ +static XML_Bool +storeRawNames(XML_Parser parser) { + TAG *tag = parser->m_tagStack; + while (tag) { + int bufSize; + int nameLen = sizeof(XML_Char) * (tag->name.strLen + 1); + size_t rawNameLen; + char *rawNameBuf = tag->buf + nameLen; + /* Stop if already stored. Since m_tagStack is a stack, we can stop + at the first entry that has already been copied; everything + below it in the stack is already been accounted for in a + previous call to this function. + */ + if (tag->rawName == rawNameBuf) + break; + /* For re-use purposes we need to ensure that the + size of tag->buf is a multiple of sizeof(XML_Char). + */ + rawNameLen = ROUND_UP(tag->rawNameLength, sizeof(XML_Char)); + /* Detect and prevent integer overflow. */ + if (rawNameLen > (size_t)INT_MAX - nameLen) + return XML_FALSE; + bufSize = nameLen + (int)rawNameLen; + if (bufSize > tag->bufEnd - tag->buf) { + char *temp = (char *)REALLOC(parser, tag->buf, bufSize); + if (temp == NULL) + return XML_FALSE; + /* if tag->name.str points to tag->buf (only when namespace + processing is off) then we have to update it + */ + if (tag->name.str == (XML_Char *)tag->buf) + tag->name.str = (XML_Char *)temp; + /* if tag->name.localPart is set (when namespace processing is on) + then update it as well, since it will always point into tag->buf + */ + if (tag->name.localPart) + tag->name.localPart + = (XML_Char *)temp + (tag->name.localPart - (XML_Char *)tag->buf); + tag->buf = temp; + tag->bufEnd = temp + bufSize; + rawNameBuf = temp + nameLen; + } + memcpy(rawNameBuf, tag->rawName, tag->rawNameLength); + tag->rawName = rawNameBuf; + tag = tag->parent; + } + return XML_TRUE; +} + +static enum XML_Error PTRCALL +contentProcessor(XML_Parser parser, const char *start, const char *end, + const char **endPtr) { + enum XML_Error result = doContent( + parser, 0, parser->m_encoding, start, end, endPtr, + (XML_Bool)! parser->m_parsingStatus.finalBuffer, XML_ACCOUNT_DIRECT); + if (result == XML_ERROR_NONE) { + if (! storeRawNames(parser)) + return XML_ERROR_NO_MEMORY; + } + return result; +} + +static enum XML_Error PTRCALL +externalEntityInitProcessor(XML_Parser parser, const char *start, + const char *end, const char **endPtr) { + enum XML_Error result = initializeEncoding(parser); + if (result != XML_ERROR_NONE) + return result; + parser->m_processor = externalEntityInitProcessor2; + return externalEntityInitProcessor2(parser, start, end, endPtr); +} + +static enum XML_Error PTRCALL +externalEntityInitProcessor2(XML_Parser parser, const char *start, + const char *end, const char **endPtr) { + const char *next = start; /* XmlContentTok doesn't always set the last arg */ + int tok = XmlContentTok(parser->m_encoding, start, end, &next); + switch (tok) { + case XML_TOK_BOM: +#ifdef XML_DTD + if (! accountingDiffTolerated(parser, tok, start, next, __LINE__, + XML_ACCOUNT_DIRECT)) { + accountingOnAbort(parser); + return XML_ERROR_AMPLIFICATION_LIMIT_BREACH; + } +#endif /* XML_DTD */ + + /* If we are at the end of the buffer, this would cause the next stage, + i.e. externalEntityInitProcessor3, to pass control directly to + doContent (by detecting XML_TOK_NONE) without processing any xml text + declaration - causing the error XML_ERROR_MISPLACED_XML_PI in doContent. + */ + if (next == end && ! parser->m_parsingStatus.finalBuffer) { + *endPtr = next; + return XML_ERROR_NONE; + } + start = next; + break; + case XML_TOK_PARTIAL: + if (! parser->m_parsingStatus.finalBuffer) { + *endPtr = start; + return XML_ERROR_NONE; + } + parser->m_eventPtr = start; + return XML_ERROR_UNCLOSED_TOKEN; + case XML_TOK_PARTIAL_CHAR: + if (! parser->m_parsingStatus.finalBuffer) { + *endPtr = start; + return XML_ERROR_NONE; + } + parser->m_eventPtr = start; + return XML_ERROR_PARTIAL_CHAR; + } + parser->m_processor = externalEntityInitProcessor3; + return externalEntityInitProcessor3(parser, start, end, endPtr); +} + +static enum XML_Error PTRCALL +externalEntityInitProcessor3(XML_Parser parser, const char *start, + const char *end, const char **endPtr) { + int tok; + const char *next = start; /* XmlContentTok doesn't always set the last arg */ + parser->m_eventPtr = start; + tok = XmlContentTok(parser->m_encoding, start, end, &next); + /* Note: These bytes are accounted later in: + - processXmlDecl + - externalEntityContentProcessor + */ + parser->m_eventEndPtr = next; + + switch (tok) { + case XML_TOK_XML_DECL: { + enum XML_Error result; + result = processXmlDecl(parser, 1, start, next); + if (result != XML_ERROR_NONE) + return result; + switch (parser->m_parsingStatus.parsing) { + case XML_SUSPENDED: + *endPtr = next; + return XML_ERROR_NONE; + case XML_FINISHED: + return XML_ERROR_ABORTED; + default: + start = next; + } + } break; + case XML_TOK_PARTIAL: + if (! parser->m_parsingStatus.finalBuffer) { + *endPtr = start; + return XML_ERROR_NONE; + } + return XML_ERROR_UNCLOSED_TOKEN; + case XML_TOK_PARTIAL_CHAR: + if (! parser->m_parsingStatus.finalBuffer) { + *endPtr = start; + return XML_ERROR_NONE; + } + return XML_ERROR_PARTIAL_CHAR; + } + parser->m_processor = externalEntityContentProcessor; + parser->m_tagLevel = 1; + return externalEntityContentProcessor(parser, start, end, endPtr); +} + +static enum XML_Error PTRCALL +externalEntityContentProcessor(XML_Parser parser, const char *start, + const char *end, const char **endPtr) { + enum XML_Error result + = doContent(parser, 1, parser->m_encoding, start, end, endPtr, + (XML_Bool)! parser->m_parsingStatus.finalBuffer, + XML_ACCOUNT_ENTITY_EXPANSION); + if (result == XML_ERROR_NONE) { + if (! storeRawNames(parser)) + return XML_ERROR_NO_MEMORY; + } + return result; +} + +static enum XML_Error +doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc, + const char *s, const char *end, const char **nextPtr, + XML_Bool haveMore, enum XML_Account account) { + /* save one level of indirection */ + DTD *const dtd = parser->m_dtd; + + const char **eventPP; + const char **eventEndPP; + if (enc == parser->m_encoding) { + eventPP = &parser->m_eventPtr; + eventEndPP = &parser->m_eventEndPtr; + } else { + eventPP = &(parser->m_openInternalEntities->internalEventPtr); + eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); + } + *eventPP = s; + + for (;;) { + const char *next = s; /* XmlContentTok doesn't always set the last arg */ + int tok = XmlContentTok(enc, s, end, &next); +#ifdef XML_DTD + const char *accountAfter + = ((tok == XML_TOK_TRAILING_RSQB) || (tok == XML_TOK_TRAILING_CR)) + ? (haveMore ? s /* i.e. 0 bytes */ : end) + : next; + if (! accountingDiffTolerated(parser, tok, s, accountAfter, __LINE__, + account)) { + accountingOnAbort(parser); + return XML_ERROR_AMPLIFICATION_LIMIT_BREACH; + } +#endif + *eventEndPP = next; + switch (tok) { + case XML_TOK_TRAILING_CR: + if (haveMore) { + *nextPtr = s; + return XML_ERROR_NONE; + } + *eventEndPP = end; + if (parser->m_characterDataHandler) { + XML_Char c = 0xA; + parser->m_characterDataHandler(parser->m_handlerArg, &c, 1); + } else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, end); + /* We are at the end of the final buffer, should we check for + XML_SUSPENDED, XML_FINISHED? + */ + if (startTagLevel == 0) + return XML_ERROR_NO_ELEMENTS; + if (parser->m_tagLevel != startTagLevel) + return XML_ERROR_ASYNC_ENTITY; + *nextPtr = end; + return XML_ERROR_NONE; + case XML_TOK_NONE: + if (haveMore) { + *nextPtr = s; + return XML_ERROR_NONE; + } + if (startTagLevel > 0) { + if (parser->m_tagLevel != startTagLevel) + return XML_ERROR_ASYNC_ENTITY; + *nextPtr = s; + return XML_ERROR_NONE; + } + return XML_ERROR_NO_ELEMENTS; + case XML_TOK_INVALID: + *eventPP = next; + return XML_ERROR_INVALID_TOKEN; + case XML_TOK_PARTIAL: + if (haveMore) { + *nextPtr = s; + return XML_ERROR_NONE; + } + return XML_ERROR_UNCLOSED_TOKEN; + case XML_TOK_PARTIAL_CHAR: + if (haveMore) { + *nextPtr = s; + return XML_ERROR_NONE; + } + return XML_ERROR_PARTIAL_CHAR; + case XML_TOK_ENTITY_REF: { + const XML_Char *name; + ENTITY *entity; + XML_Char ch = (XML_Char)XmlPredefinedEntityName( + enc, s + enc->minBytesPerChar, next - enc->minBytesPerChar); + if (ch) { +#ifdef XML_DTD + /* NOTE: We are replacing 4-6 characters original input for 1 character + * so there is no amplification and hence recording without + * protection. */ + accountingDiffTolerated(parser, tok, (char *)&ch, + ((char *)&ch) + sizeof(XML_Char), __LINE__, + XML_ACCOUNT_ENTITY_EXPANSION); +#endif /* XML_DTD */ + if (parser->m_characterDataHandler) + parser->m_characterDataHandler(parser->m_handlerArg, &ch, 1); + else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + break; + } + name = poolStoreString(&dtd->pool, enc, s + enc->minBytesPerChar, + next - enc->minBytesPerChar); + if (! name) + return XML_ERROR_NO_MEMORY; + entity = (ENTITY *)lookup(parser, &dtd->generalEntities, name, 0); + poolDiscard(&dtd->pool); + /* First, determine if a check for an existing declaration is needed; + if yes, check that the entity exists, and that it is internal, + otherwise call the skipped entity or default handler. + */ + if (! dtd->hasParamEntityRefs || dtd->standalone) { + if (! entity) + return XML_ERROR_UNDEFINED_ENTITY; + else if (! entity->is_internal) + return XML_ERROR_ENTITY_DECLARED_IN_PE; + } else if (! entity) { + if (parser->m_skippedEntityHandler) + parser->m_skippedEntityHandler(parser->m_handlerArg, name, 0); + else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + break; + } + if (entity->open) + return XML_ERROR_RECURSIVE_ENTITY_REF; + if (entity->notation) + return XML_ERROR_BINARY_ENTITY_REF; + if (entity->textPtr) { + enum XML_Error result; + if (! parser->m_defaultExpandInternalEntities) { + if (parser->m_skippedEntityHandler) + parser->m_skippedEntityHandler(parser->m_handlerArg, entity->name, + 0); + else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + break; + } + result = processInternalEntity(parser, entity, XML_FALSE); + if (result != XML_ERROR_NONE) + return result; + } else if (parser->m_externalEntityRefHandler) { + const XML_Char *context; + entity->open = XML_TRUE; + context = getContext(parser); + entity->open = XML_FALSE; + if (! context) + return XML_ERROR_NO_MEMORY; + if (! parser->m_externalEntityRefHandler( + parser->m_externalEntityRefHandlerArg, context, entity->base, + entity->systemId, entity->publicId)) + return XML_ERROR_EXTERNAL_ENTITY_HANDLING; + poolDiscard(&parser->m_tempPool); + } else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + break; + } + case XML_TOK_START_TAG_NO_ATTS: + /* fall through */ + case XML_TOK_START_TAG_WITH_ATTS: { + TAG *tag; + enum XML_Error result; + XML_Char *toPtr; + if (parser->m_freeTagList) { + tag = parser->m_freeTagList; + parser->m_freeTagList = parser->m_freeTagList->parent; + } else { + tag = (TAG *)MALLOC(parser, sizeof(TAG)); + if (! tag) + return XML_ERROR_NO_MEMORY; + tag->buf = (char *)MALLOC(parser, INIT_TAG_BUF_SIZE); + if (! tag->buf) { + FREE(parser, tag); + return XML_ERROR_NO_MEMORY; + } + tag->bufEnd = tag->buf + INIT_TAG_BUF_SIZE; + } + tag->bindings = NULL; + tag->parent = parser->m_tagStack; + parser->m_tagStack = tag; + tag->name.localPart = NULL; + tag->name.prefix = NULL; + tag->rawName = s + enc->minBytesPerChar; + tag->rawNameLength = XmlNameLength(enc, tag->rawName); + ++parser->m_tagLevel; + { + const char *rawNameEnd = tag->rawName + tag->rawNameLength; + const char *fromPtr = tag->rawName; + toPtr = (XML_Char *)tag->buf; + for (;;) { + int bufSize; + int convLen; + const enum XML_Convert_Result convert_res + = XmlConvert(enc, &fromPtr, rawNameEnd, (ICHAR **)&toPtr, + (ICHAR *)tag->bufEnd - 1); + convLen = (int)(toPtr - (XML_Char *)tag->buf); + if ((fromPtr >= rawNameEnd) + || (convert_res == XML_CONVERT_INPUT_INCOMPLETE)) { + tag->name.strLen = convLen; + break; + } + bufSize = (int)(tag->bufEnd - tag->buf) << 1; + { + char *temp = (char *)REALLOC(parser, tag->buf, bufSize); + if (temp == NULL) + return XML_ERROR_NO_MEMORY; + tag->buf = temp; + tag->bufEnd = temp + bufSize; + toPtr = (XML_Char *)temp + convLen; + } + } + } + tag->name.str = (XML_Char *)tag->buf; + *toPtr = XML_T('\0'); + result + = storeAtts(parser, enc, s, &(tag->name), &(tag->bindings), account); + if (result) + return result; + if (parser->m_startElementHandler) + parser->m_startElementHandler(parser->m_handlerArg, tag->name.str, + (const XML_Char **)parser->m_atts); + else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + poolClear(&parser->m_tempPool); + break; + } + case XML_TOK_EMPTY_ELEMENT_NO_ATTS: + /* fall through */ + case XML_TOK_EMPTY_ELEMENT_WITH_ATTS: { + const char *rawName = s + enc->minBytesPerChar; + enum XML_Error result; + BINDING *bindings = NULL; + XML_Bool noElmHandlers = XML_TRUE; + TAG_NAME name; + name.str = poolStoreString(&parser->m_tempPool, enc, rawName, + rawName + XmlNameLength(enc, rawName)); + if (! name.str) + return XML_ERROR_NO_MEMORY; + poolFinish(&parser->m_tempPool); + result = storeAtts(parser, enc, s, &name, &bindings, + XML_ACCOUNT_NONE /* token spans whole start tag */); + if (result != XML_ERROR_NONE) { + freeBindings(parser, bindings); + return result; + } + poolFinish(&parser->m_tempPool); + if (parser->m_startElementHandler) { + parser->m_startElementHandler(parser->m_handlerArg, name.str, + (const XML_Char **)parser->m_atts); + noElmHandlers = XML_FALSE; + } + if (parser->m_endElementHandler) { + if (parser->m_startElementHandler) + *eventPP = *eventEndPP; + parser->m_endElementHandler(parser->m_handlerArg, name.str); + noElmHandlers = XML_FALSE; + } + if (noElmHandlers && parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + poolClear(&parser->m_tempPool); + freeBindings(parser, bindings); + } + if ((parser->m_tagLevel == 0) + && (parser->m_parsingStatus.parsing != XML_FINISHED)) { + if (parser->m_parsingStatus.parsing == XML_SUSPENDED) + parser->m_processor = epilogProcessor; + else + return epilogProcessor(parser, next, end, nextPtr); + } + break; + case XML_TOK_END_TAG: + if (parser->m_tagLevel == startTagLevel) + return XML_ERROR_ASYNC_ENTITY; + else { + int len; + const char *rawName; + TAG *tag = parser->m_tagStack; + parser->m_tagStack = tag->parent; + tag->parent = parser->m_freeTagList; + parser->m_freeTagList = tag; + rawName = s + enc->minBytesPerChar * 2; + len = XmlNameLength(enc, rawName); + if (len != tag->rawNameLength + || memcmp(tag->rawName, rawName, len) != 0) { + *eventPP = rawName; + return XML_ERROR_TAG_MISMATCH; + } + --parser->m_tagLevel; + if (parser->m_endElementHandler) { + const XML_Char *localPart; + const XML_Char *prefix; + XML_Char *uri; + localPart = tag->name.localPart; + if (parser->m_ns && localPart) { + /* localPart and prefix may have been overwritten in + tag->name.str, since this points to the binding->uri + buffer which gets re-used; so we have to add them again + */ + uri = (XML_Char *)tag->name.str + tag->name.uriLen; + /* don't need to check for space - already done in storeAtts() */ + while (*localPart) + *uri++ = *localPart++; + prefix = (XML_Char *)tag->name.prefix; + if (parser->m_ns_triplets && prefix) { + *uri++ = parser->m_namespaceSeparator; + while (*prefix) + *uri++ = *prefix++; + } + *uri = XML_T('\0'); + } + parser->m_endElementHandler(parser->m_handlerArg, tag->name.str); + } else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + while (tag->bindings) { + BINDING *b = tag->bindings; + if (parser->m_endNamespaceDeclHandler) + parser->m_endNamespaceDeclHandler(parser->m_handlerArg, + b->prefix->name); + tag->bindings = tag->bindings->nextTagBinding; + b->nextTagBinding = parser->m_freeBindingList; + parser->m_freeBindingList = b; + b->prefix->binding = b->prevPrefixBinding; + } + if ((parser->m_tagLevel == 0) + && (parser->m_parsingStatus.parsing != XML_FINISHED)) { + if (parser->m_parsingStatus.parsing == XML_SUSPENDED) + parser->m_processor = epilogProcessor; + else + return epilogProcessor(parser, next, end, nextPtr); + } + } + break; + case XML_TOK_CHAR_REF: { + int n = XmlCharRefNumber(enc, s); + if (n < 0) + return XML_ERROR_BAD_CHAR_REF; + if (parser->m_characterDataHandler) { + XML_Char buf[XML_ENCODE_MAX]; + parser->m_characterDataHandler(parser->m_handlerArg, buf, + XmlEncode(n, (ICHAR *)buf)); + } else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + } break; + case XML_TOK_XML_DECL: + return XML_ERROR_MISPLACED_XML_PI; + case XML_TOK_DATA_NEWLINE: + if (parser->m_characterDataHandler) { + XML_Char c = 0xA; + parser->m_characterDataHandler(parser->m_handlerArg, &c, 1); + } else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + break; + case XML_TOK_CDATA_SECT_OPEN: { + enum XML_Error result; + if (parser->m_startCdataSectionHandler) + parser->m_startCdataSectionHandler(parser->m_handlerArg); + /* BEGIN disabled code */ + /* Suppose you doing a transformation on a document that involves + changing only the character data. You set up a defaultHandler + and a characterDataHandler. The defaultHandler simply copies + characters through. The characterDataHandler does the + transformation and writes the characters out escaping them as + necessary. This case will fail to work if we leave out the + following two lines (because & and < inside CDATA sections will + be incorrectly escaped). + + However, now we have a start/endCdataSectionHandler, so it seems + easier to let the user deal with this. + */ + else if (0 && parser->m_characterDataHandler) + parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf, + 0); + /* END disabled code */ + else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + result + = doCdataSection(parser, enc, &next, end, nextPtr, haveMore, account); + if (result != XML_ERROR_NONE) + return result; + else if (! next) { + parser->m_processor = cdataSectionProcessor; + return result; + } + } break; + case XML_TOK_TRAILING_RSQB: + if (haveMore) { + *nextPtr = s; + return XML_ERROR_NONE; + } + if (parser->m_characterDataHandler) { + if (MUST_CONVERT(enc, s)) { + ICHAR *dataPtr = (ICHAR *)parser->m_dataBuf; + XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)parser->m_dataBufEnd); + parser->m_characterDataHandler( + parser->m_handlerArg, parser->m_dataBuf, + (int)(dataPtr - (ICHAR *)parser->m_dataBuf)); + } else + parser->m_characterDataHandler( + parser->m_handlerArg, (XML_Char *)s, + (int)((XML_Char *)end - (XML_Char *)s)); + } else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, end); + /* We are at the end of the final buffer, should we check for + XML_SUSPENDED, XML_FINISHED? + */ + if (startTagLevel == 0) { + *eventPP = end; + return XML_ERROR_NO_ELEMENTS; + } + if (parser->m_tagLevel != startTagLevel) { + *eventPP = end; + return XML_ERROR_ASYNC_ENTITY; + } + *nextPtr = end; + return XML_ERROR_NONE; + case XML_TOK_DATA_CHARS: { + XML_CharacterDataHandler charDataHandler = parser->m_characterDataHandler; + if (charDataHandler) { + if (MUST_CONVERT(enc, s)) { + for (;;) { + ICHAR *dataPtr = (ICHAR *)parser->m_dataBuf; + const enum XML_Convert_Result convert_res = XmlConvert( + enc, &s, next, &dataPtr, (ICHAR *)parser->m_dataBufEnd); + *eventEndPP = s; + charDataHandler(parser->m_handlerArg, parser->m_dataBuf, + (int)(dataPtr - (ICHAR *)parser->m_dataBuf)); + if ((convert_res == XML_CONVERT_COMPLETED) + || (convert_res == XML_CONVERT_INPUT_INCOMPLETE)) + break; + *eventPP = s; + } + } else + charDataHandler(parser->m_handlerArg, (XML_Char *)s, + (int)((XML_Char *)next - (XML_Char *)s)); + } else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + } break; + case XML_TOK_PI: + if (! reportProcessingInstruction(parser, enc, s, next)) + return XML_ERROR_NO_MEMORY; + break; + case XML_TOK_COMMENT: + if (! reportComment(parser, enc, s, next)) + return XML_ERROR_NO_MEMORY; + break; + default: + /* All of the tokens produced by XmlContentTok() have their own + * explicit cases, so this default is not strictly necessary. + * However it is a useful safety net, so we retain the code and + * simply exclude it from the coverage tests. + * + * LCOV_EXCL_START + */ + if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + break; + /* LCOV_EXCL_STOP */ + } + *eventPP = s = next; + switch (parser->m_parsingStatus.parsing) { + case XML_SUSPENDED: + *nextPtr = next; + return XML_ERROR_NONE; + case XML_FINISHED: + return XML_ERROR_ABORTED; + default:; + } + } + /* not reached */ +} + +/* This function does not call free() on the allocated memory, merely + * moving it to the parser's m_freeBindingList where it can be freed or + * reused as appropriate. + */ +static void +freeBindings(XML_Parser parser, BINDING *bindings) { + while (bindings) { + BINDING *b = bindings; + + /* m_startNamespaceDeclHandler will have been called for this + * binding in addBindings(), so call the end handler now. + */ + if (parser->m_endNamespaceDeclHandler) + parser->m_endNamespaceDeclHandler(parser->m_handlerArg, b->prefix->name); + + bindings = bindings->nextTagBinding; + b->nextTagBinding = parser->m_freeBindingList; + parser->m_freeBindingList = b; + b->prefix->binding = b->prevPrefixBinding; + } +} + +/* Precondition: all arguments must be non-NULL; + Purpose: + - normalize attributes + - check attributes for well-formedness + - generate namespace aware attribute names (URI, prefix) + - build list of attributes for startElementHandler + - default attributes + - process namespace declarations (check and report them) + - generate namespace aware element name (URI, prefix) +*/ +static enum XML_Error +storeAtts(XML_Parser parser, const ENCODING *enc, const char *attStr, + TAG_NAME *tagNamePtr, BINDING **bindingsPtr, + enum XML_Account account) { + DTD *const dtd = parser->m_dtd; /* save one level of indirection */ + ELEMENT_TYPE *elementType; + int nDefaultAtts; + const XML_Char **appAtts; /* the attribute list for the application */ + int attIndex = 0; + int prefixLen; + int i; + int n; + XML_Char *uri; + int nPrefixes = 0; + BINDING *binding; + const XML_Char *localPart; + + /* lookup the element type name */ + elementType + = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, tagNamePtr->str, 0); + if (! elementType) { + const XML_Char *name = poolCopyString(&dtd->pool, tagNamePtr->str); + if (! name) + return XML_ERROR_NO_MEMORY; + elementType = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, name, + sizeof(ELEMENT_TYPE)); + if (! elementType) + return XML_ERROR_NO_MEMORY; + if (parser->m_ns && ! setElementTypePrefix(parser, elementType)) + return XML_ERROR_NO_MEMORY; + } + nDefaultAtts = elementType->nDefaultAtts; + + /* get the attributes from the tokenizer */ + n = XmlGetAttributes(enc, attStr, parser->m_attsSize, parser->m_atts); + + /* Detect and prevent integer overflow */ + if (n > INT_MAX - nDefaultAtts) { + return XML_ERROR_NO_MEMORY; + } + + if (n + nDefaultAtts > parser->m_attsSize) { + int oldAttsSize = parser->m_attsSize; + ATTRIBUTE *temp; +#ifdef XML_ATTR_INFO + XML_AttrInfo *temp2; +#endif + + /* Detect and prevent integer overflow */ + if ((nDefaultAtts > INT_MAX - INIT_ATTS_SIZE) + || (n > INT_MAX - (nDefaultAtts + INIT_ATTS_SIZE))) { + return XML_ERROR_NO_MEMORY; + } + + parser->m_attsSize = n + nDefaultAtts + INIT_ATTS_SIZE; + + /* Detect and prevent integer overflow. + * The preprocessor guard addresses the "always false" warning + * from -Wtype-limits on platforms where + * sizeof(unsigned int) < sizeof(size_t), e.g. on x86_64. */ +#if UINT_MAX >= SIZE_MAX + if ((unsigned)parser->m_attsSize > (size_t)(-1) / sizeof(ATTRIBUTE)) { + parser->m_attsSize = oldAttsSize; + return XML_ERROR_NO_MEMORY; + } +#endif + + temp = (ATTRIBUTE *)REALLOC(parser, (void *)parser->m_atts, + parser->m_attsSize * sizeof(ATTRIBUTE)); + if (temp == NULL) { + parser->m_attsSize = oldAttsSize; + return XML_ERROR_NO_MEMORY; + } + parser->m_atts = temp; +#ifdef XML_ATTR_INFO + /* Detect and prevent integer overflow. + * The preprocessor guard addresses the "always false" warning + * from -Wtype-limits on platforms where + * sizeof(unsigned int) < sizeof(size_t), e.g. on x86_64. */ +# if UINT_MAX >= SIZE_MAX + if ((unsigned)parser->m_attsSize > (size_t)(-1) / sizeof(XML_AttrInfo)) { + parser->m_attsSize = oldAttsSize; + return XML_ERROR_NO_MEMORY; + } +# endif + + temp2 = (XML_AttrInfo *)REALLOC(parser, (void *)parser->m_attInfo, + parser->m_attsSize * sizeof(XML_AttrInfo)); + if (temp2 == NULL) { + parser->m_attsSize = oldAttsSize; + return XML_ERROR_NO_MEMORY; + } + parser->m_attInfo = temp2; +#endif + if (n > oldAttsSize) + XmlGetAttributes(enc, attStr, n, parser->m_atts); + } + + appAtts = (const XML_Char **)parser->m_atts; + for (i = 0; i < n; i++) { + ATTRIBUTE *currAtt = &parser->m_atts[i]; +#ifdef XML_ATTR_INFO + XML_AttrInfo *currAttInfo = &parser->m_attInfo[i]; +#endif + /* add the name and value to the attribute list */ + ATTRIBUTE_ID *attId + = getAttributeId(parser, enc, currAtt->name, + currAtt->name + XmlNameLength(enc, currAtt->name)); + if (! attId) + return XML_ERROR_NO_MEMORY; +#ifdef XML_ATTR_INFO + currAttInfo->nameStart + = parser->m_parseEndByteIndex - (parser->m_parseEndPtr - currAtt->name); + currAttInfo->nameEnd + = currAttInfo->nameStart + XmlNameLength(enc, currAtt->name); + currAttInfo->valueStart = parser->m_parseEndByteIndex + - (parser->m_parseEndPtr - currAtt->valuePtr); + currAttInfo->valueEnd = parser->m_parseEndByteIndex + - (parser->m_parseEndPtr - currAtt->valueEnd); +#endif + /* Detect duplicate attributes by their QNames. This does not work when + namespace processing is turned on and different prefixes for the same + namespace are used. For this case we have a check further down. + */ + if ((attId->name)[-1]) { + if (enc == parser->m_encoding) + parser->m_eventPtr = parser->m_atts[i].name; + return XML_ERROR_DUPLICATE_ATTRIBUTE; + } + (attId->name)[-1] = 1; + appAtts[attIndex++] = attId->name; + if (! parser->m_atts[i].normalized) { + enum XML_Error result; + XML_Bool isCdata = XML_TRUE; + + /* figure out whether declared as other than CDATA */ + if (attId->maybeTokenized) { + int j; + for (j = 0; j < nDefaultAtts; j++) { + if (attId == elementType->defaultAtts[j].id) { + isCdata = elementType->defaultAtts[j].isCdata; + break; + } + } + } + + /* normalize the attribute value */ + result = storeAttributeValue( + parser, enc, isCdata, parser->m_atts[i].valuePtr, + parser->m_atts[i].valueEnd, &parser->m_tempPool, account); + if (result) + return result; + appAtts[attIndex] = poolStart(&parser->m_tempPool); + poolFinish(&parser->m_tempPool); + } else { + /* the value did not need normalizing */ + appAtts[attIndex] = poolStoreString(&parser->m_tempPool, enc, + parser->m_atts[i].valuePtr, + parser->m_atts[i].valueEnd); + if (appAtts[attIndex] == 0) + return XML_ERROR_NO_MEMORY; + poolFinish(&parser->m_tempPool); + } + /* handle prefixed attribute names */ + if (attId->prefix) { + if (attId->xmlns) { + /* deal with namespace declarations here */ + enum XML_Error result = addBinding(parser, attId->prefix, attId, + appAtts[attIndex], bindingsPtr); + if (result) + return result; + --attIndex; + } else { + /* deal with other prefixed names later */ + attIndex++; + nPrefixes++; + (attId->name)[-1] = 2; + } + } else + attIndex++; + } + + /* set-up for XML_GetSpecifiedAttributeCount and XML_GetIdAttributeIndex */ + parser->m_nSpecifiedAtts = attIndex; + if (elementType->idAtt && (elementType->idAtt->name)[-1]) { + for (i = 0; i < attIndex; i += 2) + if (appAtts[i] == elementType->idAtt->name) { + parser->m_idAttIndex = i; + break; + } + } else + parser->m_idAttIndex = -1; + + /* do attribute defaulting */ + for (i = 0; i < nDefaultAtts; i++) { + const DEFAULT_ATTRIBUTE *da = elementType->defaultAtts + i; + if (! (da->id->name)[-1] && da->value) { + if (da->id->prefix) { + if (da->id->xmlns) { + enum XML_Error result = addBinding(parser, da->id->prefix, da->id, + da->value, bindingsPtr); + if (result) + return result; + } else { + (da->id->name)[-1] = 2; + nPrefixes++; + appAtts[attIndex++] = da->id->name; + appAtts[attIndex++] = da->value; + } + } else { + (da->id->name)[-1] = 1; + appAtts[attIndex++] = da->id->name; + appAtts[attIndex++] = da->value; + } + } + } + appAtts[attIndex] = 0; + + /* expand prefixed attribute names, check for duplicates, + and clear flags that say whether attributes were specified */ + i = 0; + if (nPrefixes) { + int j; /* hash table index */ + unsigned long version = parser->m_nsAttsVersion; + + /* Detect and prevent invalid shift */ + if (parser->m_nsAttsPower >= sizeof(unsigned int) * 8 /* bits per byte */) { + return XML_ERROR_NO_MEMORY; + } + + unsigned int nsAttsSize = 1u << parser->m_nsAttsPower; + unsigned char oldNsAttsPower = parser->m_nsAttsPower; + /* size of hash table must be at least 2 * (# of prefixed attributes) */ + if ((nPrefixes << 1) + >> parser->m_nsAttsPower) { /* true for m_nsAttsPower = 0 */ + NS_ATT *temp; + /* hash table size must also be a power of 2 and >= 8 */ + while (nPrefixes >> parser->m_nsAttsPower++) + ; + if (parser->m_nsAttsPower < 3) + parser->m_nsAttsPower = 3; + + /* Detect and prevent invalid shift */ + if (parser->m_nsAttsPower >= sizeof(nsAttsSize) * 8 /* bits per byte */) { + /* Restore actual size of memory in m_nsAtts */ + parser->m_nsAttsPower = oldNsAttsPower; + return XML_ERROR_NO_MEMORY; + } + + nsAttsSize = 1u << parser->m_nsAttsPower; + + /* Detect and prevent integer overflow. + * The preprocessor guard addresses the "always false" warning + * from -Wtype-limits on platforms where + * sizeof(unsigned int) < sizeof(size_t), e.g. on x86_64. */ +#if UINT_MAX >= SIZE_MAX + if (nsAttsSize > (size_t)(-1) / sizeof(NS_ATT)) { + /* Restore actual size of memory in m_nsAtts */ + parser->m_nsAttsPower = oldNsAttsPower; + return XML_ERROR_NO_MEMORY; + } +#endif + + temp = (NS_ATT *)REALLOC(parser, parser->m_nsAtts, + nsAttsSize * sizeof(NS_ATT)); + if (! temp) { + /* Restore actual size of memory in m_nsAtts */ + parser->m_nsAttsPower = oldNsAttsPower; + return XML_ERROR_NO_MEMORY; + } + parser->m_nsAtts = temp; + version = 0; /* force re-initialization of m_nsAtts hash table */ + } + /* using a version flag saves us from initializing m_nsAtts every time */ + if (! version) { /* initialize version flags when version wraps around */ + version = INIT_ATTS_VERSION; + for (j = nsAttsSize; j != 0;) + parser->m_nsAtts[--j].version = version; + } + parser->m_nsAttsVersion = --version; + + /* expand prefixed names and check for duplicates */ + for (; i < attIndex; i += 2) { + const XML_Char *s = appAtts[i]; + if (s[-1] == 2) { /* prefixed */ + ATTRIBUTE_ID *id; + const BINDING *b; + unsigned long uriHash; + struct siphash sip_state; + struct sipkey sip_key; + + copy_salt_to_sipkey(parser, &sip_key); + sip24_init(&sip_state, &sip_key); + + ((XML_Char *)s)[-1] = 0; /* clear flag */ + id = (ATTRIBUTE_ID *)lookup(parser, &dtd->attributeIds, s, 0); + if (! id || ! id->prefix) { + /* This code is walking through the appAtts array, dealing + * with (in this case) a prefixed attribute name. To be in + * the array, the attribute must have already been bound, so + * has to have passed through the hash table lookup once + * already. That implies that an entry for it already + * exists, so the lookup above will return a pointer to + * already allocated memory. There is no opportunaity for + * the allocator to fail, so the condition above cannot be + * fulfilled. + * + * Since it is difficult to be certain that the above + * analysis is complete, we retain the test and merely + * remove the code from coverage tests. + */ + return XML_ERROR_NO_MEMORY; /* LCOV_EXCL_LINE */ + } + b = id->prefix->binding; + if (! b) + return XML_ERROR_UNBOUND_PREFIX; + + for (j = 0; j < b->uriLen; j++) { + const XML_Char c = b->uri[j]; + if (! poolAppendChar(&parser->m_tempPool, c)) + return XML_ERROR_NO_MEMORY; + } + + sip24_update(&sip_state, b->uri, b->uriLen * sizeof(XML_Char)); + + while (*s++ != XML_T(ASCII_COLON)) + ; + + sip24_update(&sip_state, s, keylen(s) * sizeof(XML_Char)); + + do { /* copies null terminator */ + if (! poolAppendChar(&parser->m_tempPool, *s)) + return XML_ERROR_NO_MEMORY; + } while (*s++); + + uriHash = (unsigned long)sip24_final(&sip_state); + + { /* Check hash table for duplicate of expanded name (uriName). + Derived from code in lookup(parser, HASH_TABLE *table, ...). + */ + unsigned char step = 0; + unsigned long mask = nsAttsSize - 1; + j = uriHash & mask; /* index into hash table */ + while (parser->m_nsAtts[j].version == version) { + /* for speed we compare stored hash values first */ + if (uriHash == parser->m_nsAtts[j].hash) { + const XML_Char *s1 = poolStart(&parser->m_tempPool); + const XML_Char *s2 = parser->m_nsAtts[j].uriName; + /* s1 is null terminated, but not s2 */ + for (; *s1 == *s2 && *s1 != 0; s1++, s2++) + ; + if (*s1 == 0) + return XML_ERROR_DUPLICATE_ATTRIBUTE; + } + if (! step) + step = PROBE_STEP(uriHash, mask, parser->m_nsAttsPower); + j < step ? (j += nsAttsSize - step) : (j -= step); + } + } + + if (parser->m_ns_triplets) { /* append namespace separator and prefix */ + parser->m_tempPool.ptr[-1] = parser->m_namespaceSeparator; + s = b->prefix->name; + do { + if (! poolAppendChar(&parser->m_tempPool, *s)) + return XML_ERROR_NO_MEMORY; + } while (*s++); + } + + /* store expanded name in attribute list */ + s = poolStart(&parser->m_tempPool); + poolFinish(&parser->m_tempPool); + appAtts[i] = s; + + /* fill empty slot with new version, uriName and hash value */ + parser->m_nsAtts[j].version = version; + parser->m_nsAtts[j].hash = uriHash; + parser->m_nsAtts[j].uriName = s; + + if (! --nPrefixes) { + i += 2; + break; + } + } else /* not prefixed */ + ((XML_Char *)s)[-1] = 0; /* clear flag */ + } + } + /* clear flags for the remaining attributes */ + for (; i < attIndex; i += 2) + ((XML_Char *)(appAtts[i]))[-1] = 0; + for (binding = *bindingsPtr; binding; binding = binding->nextTagBinding) + binding->attId->name[-1] = 0; + + if (! parser->m_ns) + return XML_ERROR_NONE; + + /* expand the element type name */ + if (elementType->prefix) { + binding = elementType->prefix->binding; + if (! binding) + return XML_ERROR_UNBOUND_PREFIX; + localPart = tagNamePtr->str; + while (*localPart++ != XML_T(ASCII_COLON)) + ; + } else if (dtd->defaultPrefix.binding) { + binding = dtd->defaultPrefix.binding; + localPart = tagNamePtr->str; + } else + return XML_ERROR_NONE; + prefixLen = 0; + if (parser->m_ns_triplets && binding->prefix->name) { + for (; binding->prefix->name[prefixLen++];) + ; /* prefixLen includes null terminator */ + } + tagNamePtr->localPart = localPart; + tagNamePtr->uriLen = binding->uriLen; + tagNamePtr->prefix = binding->prefix->name; + tagNamePtr->prefixLen = prefixLen; + for (i = 0; localPart[i++];) + ; /* i includes null terminator */ + + /* Detect and prevent integer overflow */ + if (binding->uriLen > INT_MAX - prefixLen + || i > INT_MAX - (binding->uriLen + prefixLen)) { + return XML_ERROR_NO_MEMORY; + } + + n = i + binding->uriLen + prefixLen; + if (n > binding->uriAlloc) { + TAG *p; + + /* Detect and prevent integer overflow */ + if (n > INT_MAX - EXPAND_SPARE) { + return XML_ERROR_NO_MEMORY; + } + /* Detect and prevent integer overflow. + * The preprocessor guard addresses the "always false" warning + * from -Wtype-limits on platforms where + * sizeof(unsigned int) < sizeof(size_t), e.g. on x86_64. */ +#if UINT_MAX >= SIZE_MAX + if ((unsigned)(n + EXPAND_SPARE) > (size_t)(-1) / sizeof(XML_Char)) { + return XML_ERROR_NO_MEMORY; + } +#endif + + uri = (XML_Char *)MALLOC(parser, (n + EXPAND_SPARE) * sizeof(XML_Char)); + if (! uri) + return XML_ERROR_NO_MEMORY; + binding->uriAlloc = n + EXPAND_SPARE; + memcpy(uri, binding->uri, binding->uriLen * sizeof(XML_Char)); + for (p = parser->m_tagStack; p; p = p->parent) + if (p->name.str == binding->uri) + p->name.str = uri; + FREE(parser, binding->uri); + binding->uri = uri; + } + /* if m_namespaceSeparator != '\0' then uri includes it already */ + uri = binding->uri + binding->uriLen; + memcpy(uri, localPart, i * sizeof(XML_Char)); + /* we always have a namespace separator between localPart and prefix */ + if (prefixLen) { + uri += i - 1; + *uri = parser->m_namespaceSeparator; /* replace null terminator */ + memcpy(uri + 1, binding->prefix->name, prefixLen * sizeof(XML_Char)); + } + tagNamePtr->str = binding->uri; + return XML_ERROR_NONE; +} + +static XML_Bool +is_rfc3986_uri_char(XML_Char candidate) { + // For the RFC 3986 ANBF grammar see + // https://datatracker.ietf.org/doc/html/rfc3986#appendix-A + + switch (candidate) { + // From rule "ALPHA" (uppercase half) + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + + // From rule "ALPHA" (lowercase half) + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': + + // From rule "DIGIT" + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + + // From rule "pct-encoded" + case '%': + + // From rule "unreserved" + case '-': + case '.': + case '_': + case '~': + + // From rule "gen-delims" + case ':': + case '/': + case '?': + case '#': + case '[': + case ']': + case '@': + + // From rule "sub-delims" + case '!': + case '$': + case '&': + case '\'': + case '(': + case ')': + case '*': + case '+': + case ',': + case ';': + case '=': + return XML_TRUE; + + default: + return XML_FALSE; + } +} + +/* addBinding() overwrites the value of prefix->binding without checking. + Therefore one must keep track of the old value outside of addBinding(). +*/ +static enum XML_Error +addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId, + const XML_Char *uri, BINDING **bindingsPtr) { + // "http://www.w3.org/XML/1998/namespace" + static const XML_Char xmlNamespace[] + = {ASCII_h, ASCII_t, ASCII_t, ASCII_p, ASCII_COLON, + ASCII_SLASH, ASCII_SLASH, ASCII_w, ASCII_w, ASCII_w, + ASCII_PERIOD, ASCII_w, ASCII_3, ASCII_PERIOD, ASCII_o, + ASCII_r, ASCII_g, ASCII_SLASH, ASCII_X, ASCII_M, + ASCII_L, ASCII_SLASH, ASCII_1, ASCII_9, ASCII_9, + ASCII_8, ASCII_SLASH, ASCII_n, ASCII_a, ASCII_m, + ASCII_e, ASCII_s, ASCII_p, ASCII_a, ASCII_c, + ASCII_e, '\0'}; + static const int xmlLen = (int)sizeof(xmlNamespace) / sizeof(XML_Char) - 1; + // "http://www.w3.org/2000/xmlns/" + static const XML_Char xmlnsNamespace[] + = {ASCII_h, ASCII_t, ASCII_t, ASCII_p, ASCII_COLON, ASCII_SLASH, + ASCII_SLASH, ASCII_w, ASCII_w, ASCII_w, ASCII_PERIOD, ASCII_w, + ASCII_3, ASCII_PERIOD, ASCII_o, ASCII_r, ASCII_g, ASCII_SLASH, + ASCII_2, ASCII_0, ASCII_0, ASCII_0, ASCII_SLASH, ASCII_x, + ASCII_m, ASCII_l, ASCII_n, ASCII_s, ASCII_SLASH, '\0'}; + static const int xmlnsLen + = (int)sizeof(xmlnsNamespace) / sizeof(XML_Char) - 1; + + XML_Bool mustBeXML = XML_FALSE; + XML_Bool isXML = XML_TRUE; + XML_Bool isXMLNS = XML_TRUE; + + BINDING *b; + int len; + + /* empty URI is only valid for default namespace per XML NS 1.0 (not 1.1) */ + if (*uri == XML_T('\0') && prefix->name) + return XML_ERROR_UNDECLARING_PREFIX; + + if (prefix->name && prefix->name[0] == XML_T(ASCII_x) + && prefix->name[1] == XML_T(ASCII_m) + && prefix->name[2] == XML_T(ASCII_l)) { + /* Not allowed to bind xmlns */ + if (prefix->name[3] == XML_T(ASCII_n) && prefix->name[4] == XML_T(ASCII_s) + && prefix->name[5] == XML_T('\0')) + return XML_ERROR_RESERVED_PREFIX_XMLNS; + + if (prefix->name[3] == XML_T('\0')) + mustBeXML = XML_TRUE; + } + + for (len = 0; uri[len]; len++) { + if (isXML && (len > xmlLen || uri[len] != xmlNamespace[len])) + isXML = XML_FALSE; + + if (! mustBeXML && isXMLNS + && (len > xmlnsLen || uri[len] != xmlnsNamespace[len])) + isXMLNS = XML_FALSE; + + // NOTE: While Expat does not validate namespace URIs against RFC 3986 + // today (and is not REQUIRED to do so with regard to the XML 1.0 + // namespaces specification) we have to at least make sure, that + // the application on top of Expat (that is likely splitting expanded + // element names ("qualified names") of form + // "[uri sep] local [sep prefix] '\0'" back into 1, 2 or 3 pieces + // in its element handler code) cannot be confused by an attacker + // putting additional namespace separator characters into namespace + // declarations. That would be ambiguous and not to be expected. + // + // While the HTML API docs of function XML_ParserCreateNS have been + // advising against use of a namespace separator character that can + // appear in a URI for >20 years now, some widespread applications + // are using URI characters (':' (colon) in particular) for a + // namespace separator, in practice. To keep these applications + // functional, we only reject namespaces URIs containing the + // application-chosen namespace separator if the chosen separator + // is a non-URI character with regard to RFC 3986. + if (parser->m_ns && (uri[len] == parser->m_namespaceSeparator) + && ! is_rfc3986_uri_char(uri[len])) { + return XML_ERROR_SYNTAX; + } + } + isXML = isXML && len == xmlLen; + isXMLNS = isXMLNS && len == xmlnsLen; + + if (mustBeXML != isXML) + return mustBeXML ? XML_ERROR_RESERVED_PREFIX_XML + : XML_ERROR_RESERVED_NAMESPACE_URI; + + if (isXMLNS) + return XML_ERROR_RESERVED_NAMESPACE_URI; + + if (parser->m_namespaceSeparator) + len++; + if (parser->m_freeBindingList) { + b = parser->m_freeBindingList; + if (len > b->uriAlloc) { + /* Detect and prevent integer overflow */ + if (len > INT_MAX - EXPAND_SPARE) { + return XML_ERROR_NO_MEMORY; + } + + /* Detect and prevent integer overflow. + * The preprocessor guard addresses the "always false" warning + * from -Wtype-limits on platforms where + * sizeof(unsigned int) < sizeof(size_t), e.g. on x86_64. */ +#if UINT_MAX >= SIZE_MAX + if ((unsigned)(len + EXPAND_SPARE) > (size_t)(-1) / sizeof(XML_Char)) { + return XML_ERROR_NO_MEMORY; + } +#endif + + XML_Char *temp = (XML_Char *)REALLOC( + parser, b->uri, sizeof(XML_Char) * (len + EXPAND_SPARE)); + if (temp == NULL) + return XML_ERROR_NO_MEMORY; + b->uri = temp; + b->uriAlloc = len + EXPAND_SPARE; + } + parser->m_freeBindingList = b->nextTagBinding; + } else { + b = (BINDING *)MALLOC(parser, sizeof(BINDING)); + if (! b) + return XML_ERROR_NO_MEMORY; + + /* Detect and prevent integer overflow */ + if (len > INT_MAX - EXPAND_SPARE) { + return XML_ERROR_NO_MEMORY; + } + /* Detect and prevent integer overflow. + * The preprocessor guard addresses the "always false" warning + * from -Wtype-limits on platforms where + * sizeof(unsigned int) < sizeof(size_t), e.g. on x86_64. */ +#if UINT_MAX >= SIZE_MAX + if ((unsigned)(len + EXPAND_SPARE) > (size_t)(-1) / sizeof(XML_Char)) { + return XML_ERROR_NO_MEMORY; + } +#endif + + b->uri + = (XML_Char *)MALLOC(parser, sizeof(XML_Char) * (len + EXPAND_SPARE)); + if (! b->uri) { + FREE(parser, b); + return XML_ERROR_NO_MEMORY; + } + b->uriAlloc = len + EXPAND_SPARE; + } + b->uriLen = len; + memcpy(b->uri, uri, len * sizeof(XML_Char)); + if (parser->m_namespaceSeparator) + b->uri[len - 1] = parser->m_namespaceSeparator; + b->prefix = prefix; + b->attId = attId; + b->prevPrefixBinding = prefix->binding; + /* NULL binding when default namespace undeclared */ + if (*uri == XML_T('\0') && prefix == &parser->m_dtd->defaultPrefix) + prefix->binding = NULL; + else + prefix->binding = b; + b->nextTagBinding = *bindingsPtr; + *bindingsPtr = b; + /* if attId == NULL then we are not starting a namespace scope */ + if (attId && parser->m_startNamespaceDeclHandler) + parser->m_startNamespaceDeclHandler(parser->m_handlerArg, prefix->name, + prefix->binding ? uri : 0); + return XML_ERROR_NONE; +} + +/* The idea here is to avoid using stack for each CDATA section when + the whole file is parsed with one call. +*/ +static enum XML_Error PTRCALL +cdataSectionProcessor(XML_Parser parser, const char *start, const char *end, + const char **endPtr) { + enum XML_Error result = doCdataSection( + parser, parser->m_encoding, &start, end, endPtr, + (XML_Bool)! parser->m_parsingStatus.finalBuffer, XML_ACCOUNT_DIRECT); + if (result != XML_ERROR_NONE) + return result; + if (start) { + if (parser->m_parentParser) { /* we are parsing an external entity */ + parser->m_processor = externalEntityContentProcessor; + return externalEntityContentProcessor(parser, start, end, endPtr); + } else { + parser->m_processor = contentProcessor; + return contentProcessor(parser, start, end, endPtr); + } + } + return result; +} + +/* startPtr gets set to non-null if the section is closed, and to null if + the section is not yet closed. +*/ +static enum XML_Error +doCdataSection(XML_Parser parser, const ENCODING *enc, const char **startPtr, + const char *end, const char **nextPtr, XML_Bool haveMore, + enum XML_Account account) { + const char *s = *startPtr; + const char **eventPP; + const char **eventEndPP; + if (enc == parser->m_encoding) { + eventPP = &parser->m_eventPtr; + *eventPP = s; + eventEndPP = &parser->m_eventEndPtr; + } else { + eventPP = &(parser->m_openInternalEntities->internalEventPtr); + eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); + } + *eventPP = s; + *startPtr = NULL; + + for (;;) { + const char *next = s; /* in case of XML_TOK_NONE or XML_TOK_PARTIAL */ + int tok = XmlCdataSectionTok(enc, s, end, &next); +#ifdef XML_DTD + if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, account)) { + accountingOnAbort(parser); + return XML_ERROR_AMPLIFICATION_LIMIT_BREACH; + } +#else + UNUSED_P(account); +#endif + *eventEndPP = next; + switch (tok) { + case XML_TOK_CDATA_SECT_CLOSE: + if (parser->m_endCdataSectionHandler) + parser->m_endCdataSectionHandler(parser->m_handlerArg); + /* BEGIN disabled code */ + /* see comment under XML_TOK_CDATA_SECT_OPEN */ + else if (0 && parser->m_characterDataHandler) + parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf, + 0); + /* END disabled code */ + else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + *startPtr = next; + *nextPtr = next; + if (parser->m_parsingStatus.parsing == XML_FINISHED) + return XML_ERROR_ABORTED; + else + return XML_ERROR_NONE; + case XML_TOK_DATA_NEWLINE: + if (parser->m_characterDataHandler) { + XML_Char c = 0xA; + parser->m_characterDataHandler(parser->m_handlerArg, &c, 1); + } else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + break; + case XML_TOK_DATA_CHARS: { + XML_CharacterDataHandler charDataHandler = parser->m_characterDataHandler; + if (charDataHandler) { + if (MUST_CONVERT(enc, s)) { + for (;;) { + ICHAR *dataPtr = (ICHAR *)parser->m_dataBuf; + const enum XML_Convert_Result convert_res = XmlConvert( + enc, &s, next, &dataPtr, (ICHAR *)parser->m_dataBufEnd); + *eventEndPP = next; + charDataHandler(parser->m_handlerArg, parser->m_dataBuf, + (int)(dataPtr - (ICHAR *)parser->m_dataBuf)); + if ((convert_res == XML_CONVERT_COMPLETED) + || (convert_res == XML_CONVERT_INPUT_INCOMPLETE)) + break; + *eventPP = s; + } + } else + charDataHandler(parser->m_handlerArg, (XML_Char *)s, + (int)((XML_Char *)next - (XML_Char *)s)); + } else if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + } break; + case XML_TOK_INVALID: + *eventPP = next; + return XML_ERROR_INVALID_TOKEN; + case XML_TOK_PARTIAL_CHAR: + if (haveMore) { + *nextPtr = s; + return XML_ERROR_NONE; + } + return XML_ERROR_PARTIAL_CHAR; + case XML_TOK_PARTIAL: + case XML_TOK_NONE: + if (haveMore) { + *nextPtr = s; + return XML_ERROR_NONE; + } + return XML_ERROR_UNCLOSED_CDATA_SECTION; + default: + /* Every token returned by XmlCdataSectionTok() has its own + * explicit case, so this default case will never be executed. + * We retain it as a safety net and exclude it from the coverage + * statistics. + * + * LCOV_EXCL_START + */ + *eventPP = next; + return XML_ERROR_UNEXPECTED_STATE; + /* LCOV_EXCL_STOP */ + } + + *eventPP = s = next; + switch (parser->m_parsingStatus.parsing) { + case XML_SUSPENDED: + *nextPtr = next; + return XML_ERROR_NONE; + case XML_FINISHED: + return XML_ERROR_ABORTED; + default:; + } + } + /* not reached */ +} + +#ifdef XML_DTD + +/* The idea here is to avoid using stack for each IGNORE section when + the whole file is parsed with one call. +*/ +static enum XML_Error PTRCALL +ignoreSectionProcessor(XML_Parser parser, const char *start, const char *end, + const char **endPtr) { + enum XML_Error result + = doIgnoreSection(parser, parser->m_encoding, &start, end, endPtr, + (XML_Bool)! parser->m_parsingStatus.finalBuffer); + if (result != XML_ERROR_NONE) + return result; + if (start) { + parser->m_processor = prologProcessor; + return prologProcessor(parser, start, end, endPtr); + } + return result; +} + +/* startPtr gets set to non-null is the section is closed, and to null + if the section is not yet closed. +*/ +static enum XML_Error +doIgnoreSection(XML_Parser parser, const ENCODING *enc, const char **startPtr, + const char *end, const char **nextPtr, XML_Bool haveMore) { + const char *next = *startPtr; /* in case of XML_TOK_NONE or XML_TOK_PARTIAL */ + int tok; + const char *s = *startPtr; + const char **eventPP; + const char **eventEndPP; + if (enc == parser->m_encoding) { + eventPP = &parser->m_eventPtr; + *eventPP = s; + eventEndPP = &parser->m_eventEndPtr; + } else { + /* It's not entirely clear, but it seems the following two lines + * of code cannot be executed. The only occasions on which 'enc' + * is not 'encoding' are when this function is called + * from the internal entity processing, and IGNORE sections are an + * error in internal entities. + * + * Since it really isn't clear that this is true, we keep the code + * and just remove it from our coverage tests. + * + * LCOV_EXCL_START + */ + eventPP = &(parser->m_openInternalEntities->internalEventPtr); + eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); + /* LCOV_EXCL_STOP */ + } + *eventPP = s; + *startPtr = NULL; + tok = XmlIgnoreSectionTok(enc, s, end, &next); +# ifdef XML_DTD + if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, + XML_ACCOUNT_DIRECT)) { + accountingOnAbort(parser); + return XML_ERROR_AMPLIFICATION_LIMIT_BREACH; + } +# endif + *eventEndPP = next; + switch (tok) { + case XML_TOK_IGNORE_SECT: + if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + *startPtr = next; + *nextPtr = next; + if (parser->m_parsingStatus.parsing == XML_FINISHED) + return XML_ERROR_ABORTED; + else + return XML_ERROR_NONE; + case XML_TOK_INVALID: + *eventPP = next; + return XML_ERROR_INVALID_TOKEN; + case XML_TOK_PARTIAL_CHAR: + if (haveMore) { + *nextPtr = s; + return XML_ERROR_NONE; + } + return XML_ERROR_PARTIAL_CHAR; + case XML_TOK_PARTIAL: + case XML_TOK_NONE: + if (haveMore) { + *nextPtr = s; + return XML_ERROR_NONE; + } + return XML_ERROR_SYNTAX; /* XML_ERROR_UNCLOSED_IGNORE_SECTION */ + default: + /* All of the tokens that XmlIgnoreSectionTok() returns have + * explicit cases to handle them, so this default case is never + * executed. We keep it as a safety net anyway, and remove it + * from our test coverage statistics. + * + * LCOV_EXCL_START + */ + *eventPP = next; + return XML_ERROR_UNEXPECTED_STATE; + /* LCOV_EXCL_STOP */ + } + /* not reached */ +} + +#endif /* XML_DTD */ + +static enum XML_Error +initializeEncoding(XML_Parser parser) { + const char *s; +#ifdef XML_UNICODE + char encodingBuf[128]; + /* See comments about `protocolEncodingName` in parserInit() */ + if (! parser->m_protocolEncodingName) + s = NULL; + else { + int i; + for (i = 0; parser->m_protocolEncodingName[i]; i++) { + if (i == sizeof(encodingBuf) - 1 + || (parser->m_protocolEncodingName[i] & ~0x7f) != 0) { + encodingBuf[0] = '\0'; + break; + } + encodingBuf[i] = (char)parser->m_protocolEncodingName[i]; + } + encodingBuf[i] = '\0'; + s = encodingBuf; + } +#else + s = parser->m_protocolEncodingName; +#endif + if ((parser->m_ns ? XmlInitEncodingNS : XmlInitEncoding)( + &parser->m_initEncoding, &parser->m_encoding, s)) + return XML_ERROR_NONE; + return handleUnknownEncoding(parser, parser->m_protocolEncodingName); +} + +static enum XML_Error +processXmlDecl(XML_Parser parser, int isGeneralTextEntity, const char *s, + const char *next) { + const char *encodingName = NULL; + const XML_Char *storedEncName = NULL; + const ENCODING *newEncoding = NULL; + const char *version = NULL; + const char *versionend = NULL; + const XML_Char *storedversion = NULL; + int standalone = -1; + +#ifdef XML_DTD + if (! accountingDiffTolerated(parser, XML_TOK_XML_DECL, s, next, __LINE__, + XML_ACCOUNT_DIRECT)) { + accountingOnAbort(parser); + return XML_ERROR_AMPLIFICATION_LIMIT_BREACH; + } +#endif + + if (! (parser->m_ns ? XmlParseXmlDeclNS : XmlParseXmlDecl)( + isGeneralTextEntity, parser->m_encoding, s, next, &parser->m_eventPtr, + &version, &versionend, &encodingName, &newEncoding, &standalone)) { + if (isGeneralTextEntity) + return XML_ERROR_TEXT_DECL; + else + return XML_ERROR_XML_DECL; + } + if (! isGeneralTextEntity && standalone == 1) { + parser->m_dtd->standalone = XML_TRUE; +#ifdef XML_DTD + if (parser->m_paramEntityParsing + == XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE) + parser->m_paramEntityParsing = XML_PARAM_ENTITY_PARSING_NEVER; +#endif /* XML_DTD */ + } + if (parser->m_xmlDeclHandler) { + if (encodingName != NULL) { + storedEncName = poolStoreString( + &parser->m_temp2Pool, parser->m_encoding, encodingName, + encodingName + XmlNameLength(parser->m_encoding, encodingName)); + if (! storedEncName) + return XML_ERROR_NO_MEMORY; + poolFinish(&parser->m_temp2Pool); + } + if (version) { + storedversion + = poolStoreString(&parser->m_temp2Pool, parser->m_encoding, version, + versionend - parser->m_encoding->minBytesPerChar); + if (! storedversion) + return XML_ERROR_NO_MEMORY; + } + parser->m_xmlDeclHandler(parser->m_handlerArg, storedversion, storedEncName, + standalone); + } else if (parser->m_defaultHandler) + reportDefault(parser, parser->m_encoding, s, next); + if (parser->m_protocolEncodingName == NULL) { + if (newEncoding) { + /* Check that the specified encoding does not conflict with what + * the parser has already deduced. Do we have the same number + * of bytes in the smallest representation of a character? If + * this is UTF-16, is it the same endianness? + */ + if (newEncoding->minBytesPerChar != parser->m_encoding->minBytesPerChar + || (newEncoding->minBytesPerChar == 2 + && newEncoding != parser->m_encoding)) { + parser->m_eventPtr = encodingName; + return XML_ERROR_INCORRECT_ENCODING; + } + parser->m_encoding = newEncoding; + } else if (encodingName) { + enum XML_Error result; + if (! storedEncName) { + storedEncName = poolStoreString( + &parser->m_temp2Pool, parser->m_encoding, encodingName, + encodingName + XmlNameLength(parser->m_encoding, encodingName)); + if (! storedEncName) + return XML_ERROR_NO_MEMORY; + } + result = handleUnknownEncoding(parser, storedEncName); + poolClear(&parser->m_temp2Pool); + if (result == XML_ERROR_UNKNOWN_ENCODING) + parser->m_eventPtr = encodingName; + return result; + } + } + + if (storedEncName || storedversion) + poolClear(&parser->m_temp2Pool); + + return XML_ERROR_NONE; +} + +static enum XML_Error +handleUnknownEncoding(XML_Parser parser, const XML_Char *encodingName) { + if (parser->m_unknownEncodingHandler) { + XML_Encoding info; + int i; + for (i = 0; i < 256; i++) + info.map[i] = -1; + info.convert = NULL; + info.data = NULL; + info.release = NULL; + if (parser->m_unknownEncodingHandler(parser->m_unknownEncodingHandlerData, + encodingName, &info)) { + ENCODING *enc; + parser->m_unknownEncodingMem = MALLOC(parser, XmlSizeOfUnknownEncoding()); + if (! parser->m_unknownEncodingMem) { + if (info.release) + info.release(info.data); + return XML_ERROR_NO_MEMORY; + } + enc = (parser->m_ns ? XmlInitUnknownEncodingNS : XmlInitUnknownEncoding)( + parser->m_unknownEncodingMem, info.map, info.convert, info.data); + if (enc) { + parser->m_unknownEncodingData = info.data; + parser->m_unknownEncodingRelease = info.release; + parser->m_encoding = enc; + return XML_ERROR_NONE; + } + } + if (info.release != NULL) + info.release(info.data); + } + return XML_ERROR_UNKNOWN_ENCODING; +} + +static enum XML_Error PTRCALL +prologInitProcessor(XML_Parser parser, const char *s, const char *end, + const char **nextPtr) { + enum XML_Error result = initializeEncoding(parser); + if (result != XML_ERROR_NONE) + return result; + parser->m_processor = prologProcessor; + return prologProcessor(parser, s, end, nextPtr); +} + +#ifdef XML_DTD + +static enum XML_Error PTRCALL +externalParEntInitProcessor(XML_Parser parser, const char *s, const char *end, + const char **nextPtr) { + enum XML_Error result = initializeEncoding(parser); + if (result != XML_ERROR_NONE) + return result; + + /* we know now that XML_Parse(Buffer) has been called, + so we consider the external parameter entity read */ + parser->m_dtd->paramEntityRead = XML_TRUE; + + if (parser->m_prologState.inEntityValue) { + parser->m_processor = entityValueInitProcessor; + return entityValueInitProcessor(parser, s, end, nextPtr); + } else { + parser->m_processor = externalParEntProcessor; + return externalParEntProcessor(parser, s, end, nextPtr); + } +} + +static enum XML_Error PTRCALL +entityValueInitProcessor(XML_Parser parser, const char *s, const char *end, + const char **nextPtr) { + int tok; + const char *start = s; + const char *next = start; + parser->m_eventPtr = start; + + for (;;) { + tok = XmlPrologTok(parser->m_encoding, start, end, &next); + /* Note: Except for XML_TOK_BOM below, these bytes are accounted later in: + - storeEntityValue + - processXmlDecl + */ + parser->m_eventEndPtr = next; + if (tok <= 0) { + if (! parser->m_parsingStatus.finalBuffer && tok != XML_TOK_INVALID) { + *nextPtr = s; + return XML_ERROR_NONE; + } + switch (tok) { + case XML_TOK_INVALID: + return XML_ERROR_INVALID_TOKEN; + case XML_TOK_PARTIAL: + return XML_ERROR_UNCLOSED_TOKEN; + case XML_TOK_PARTIAL_CHAR: + return XML_ERROR_PARTIAL_CHAR; + case XML_TOK_NONE: /* start == end */ + default: + break; + } + /* found end of entity value - can store it now */ + return storeEntityValue(parser, parser->m_encoding, s, end, + XML_ACCOUNT_DIRECT); + } else if (tok == XML_TOK_XML_DECL) { + enum XML_Error result; + result = processXmlDecl(parser, 0, start, next); + if (result != XML_ERROR_NONE) + return result; + /* At this point, m_parsingStatus.parsing cannot be XML_SUSPENDED. For + * that to happen, a parameter entity parsing handler must have attempted + * to suspend the parser, which fails and raises an error. The parser can + * be aborted, but can't be suspended. + */ + if (parser->m_parsingStatus.parsing == XML_FINISHED) + return XML_ERROR_ABORTED; + *nextPtr = next; + /* stop scanning for text declaration - we found one */ + parser->m_processor = entityValueProcessor; + return entityValueProcessor(parser, next, end, nextPtr); + } + /* If we are at the end of the buffer, this would cause XmlPrologTok to + return XML_TOK_NONE on the next call, which would then cause the + function to exit with *nextPtr set to s - that is what we want for other + tokens, but not for the BOM - we would rather like to skip it; + then, when this routine is entered the next time, XmlPrologTok will + return XML_TOK_INVALID, since the BOM is still in the buffer + */ + else if (tok == XML_TOK_BOM && next == end + && ! parser->m_parsingStatus.finalBuffer) { +# ifdef XML_DTD + if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, + XML_ACCOUNT_DIRECT)) { + accountingOnAbort(parser); + return XML_ERROR_AMPLIFICATION_LIMIT_BREACH; + } +# endif + + *nextPtr = next; + return XML_ERROR_NONE; + } + /* If we get this token, we have the start of what might be a + normal tag, but not a declaration (i.e. it doesn't begin with + "m_eventPtr = start; + } +} + +static enum XML_Error PTRCALL +externalParEntProcessor(XML_Parser parser, const char *s, const char *end, + const char **nextPtr) { + const char *next = s; + int tok; + + tok = XmlPrologTok(parser->m_encoding, s, end, &next); + if (tok <= 0) { + if (! parser->m_parsingStatus.finalBuffer && tok != XML_TOK_INVALID) { + *nextPtr = s; + return XML_ERROR_NONE; + } + switch (tok) { + case XML_TOK_INVALID: + return XML_ERROR_INVALID_TOKEN; + case XML_TOK_PARTIAL: + return XML_ERROR_UNCLOSED_TOKEN; + case XML_TOK_PARTIAL_CHAR: + return XML_ERROR_PARTIAL_CHAR; + case XML_TOK_NONE: /* start == end */ + default: + break; + } + } + /* This would cause the next stage, i.e. doProlog to be passed XML_TOK_BOM. + However, when parsing an external subset, doProlog will not accept a BOM + as valid, and report a syntax error, so we have to skip the BOM, and + account for the BOM bytes. + */ + else if (tok == XML_TOK_BOM) { + if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, + XML_ACCOUNT_DIRECT)) { + accountingOnAbort(parser); + return XML_ERROR_AMPLIFICATION_LIMIT_BREACH; + } + + s = next; + tok = XmlPrologTok(parser->m_encoding, s, end, &next); + } + + parser->m_processor = prologProcessor; + return doProlog(parser, parser->m_encoding, s, end, tok, next, nextPtr, + (XML_Bool)! parser->m_parsingStatus.finalBuffer, XML_TRUE, + XML_ACCOUNT_DIRECT); +} + +static enum XML_Error PTRCALL +entityValueProcessor(XML_Parser parser, const char *s, const char *end, + const char **nextPtr) { + const char *start = s; + const char *next = s; + const ENCODING *enc = parser->m_encoding; + int tok; + + for (;;) { + tok = XmlPrologTok(enc, start, end, &next); + /* Note: These bytes are accounted later in: + - storeEntityValue + */ + if (tok <= 0) { + if (! parser->m_parsingStatus.finalBuffer && tok != XML_TOK_INVALID) { + *nextPtr = s; + return XML_ERROR_NONE; + } + switch (tok) { + case XML_TOK_INVALID: + return XML_ERROR_INVALID_TOKEN; + case XML_TOK_PARTIAL: + return XML_ERROR_UNCLOSED_TOKEN; + case XML_TOK_PARTIAL_CHAR: + return XML_ERROR_PARTIAL_CHAR; + case XML_TOK_NONE: /* start == end */ + default: + break; + } + /* found end of entity value - can store it now */ + return storeEntityValue(parser, enc, s, end, XML_ACCOUNT_DIRECT); + } + start = next; + } +} + +#endif /* XML_DTD */ + +static enum XML_Error PTRCALL +prologProcessor(XML_Parser parser, const char *s, const char *end, + const char **nextPtr) { + const char *next = s; + int tok = XmlPrologTok(parser->m_encoding, s, end, &next); + return doProlog(parser, parser->m_encoding, s, end, tok, next, nextPtr, + (XML_Bool)! parser->m_parsingStatus.finalBuffer, XML_TRUE, + XML_ACCOUNT_DIRECT); +} + +static enum XML_Error +doProlog(XML_Parser parser, const ENCODING *enc, const char *s, const char *end, + int tok, const char *next, const char **nextPtr, XML_Bool haveMore, + XML_Bool allowClosingDoctype, enum XML_Account account) { +#ifdef XML_DTD + static const XML_Char externalSubsetName[] = {ASCII_HASH, '\0'}; +#endif /* XML_DTD */ + static const XML_Char atypeCDATA[] + = {ASCII_C, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0'}; + static const XML_Char atypeID[] = {ASCII_I, ASCII_D, '\0'}; + static const XML_Char atypeIDREF[] + = {ASCII_I, ASCII_D, ASCII_R, ASCII_E, ASCII_F, '\0'}; + static const XML_Char atypeIDREFS[] + = {ASCII_I, ASCII_D, ASCII_R, ASCII_E, ASCII_F, ASCII_S, '\0'}; + static const XML_Char atypeENTITY[] + = {ASCII_E, ASCII_N, ASCII_T, ASCII_I, ASCII_T, ASCII_Y, '\0'}; + static const XML_Char atypeENTITIES[] + = {ASCII_E, ASCII_N, ASCII_T, ASCII_I, ASCII_T, + ASCII_I, ASCII_E, ASCII_S, '\0'}; + static const XML_Char atypeNMTOKEN[] + = {ASCII_N, ASCII_M, ASCII_T, ASCII_O, ASCII_K, ASCII_E, ASCII_N, '\0'}; + static const XML_Char atypeNMTOKENS[] + = {ASCII_N, ASCII_M, ASCII_T, ASCII_O, ASCII_K, + ASCII_E, ASCII_N, ASCII_S, '\0'}; + static const XML_Char notationPrefix[] + = {ASCII_N, ASCII_O, ASCII_T, ASCII_A, ASCII_T, + ASCII_I, ASCII_O, ASCII_N, ASCII_LPAREN, '\0'}; + static const XML_Char enumValueSep[] = {ASCII_PIPE, '\0'}; + static const XML_Char enumValueStart[] = {ASCII_LPAREN, '\0'}; + +#ifndef XML_DTD + UNUSED_P(account); +#endif + + /* save one level of indirection */ + DTD *const dtd = parser->m_dtd; + + const char **eventPP; + const char **eventEndPP; + enum XML_Content_Quant quant; + + if (enc == parser->m_encoding) { + eventPP = &parser->m_eventPtr; + eventEndPP = &parser->m_eventEndPtr; + } else { + eventPP = &(parser->m_openInternalEntities->internalEventPtr); + eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); + } + + for (;;) { + int role; + XML_Bool handleDefault = XML_TRUE; + *eventPP = s; + *eventEndPP = next; + if (tok <= 0) { + if (haveMore && tok != XML_TOK_INVALID) { + *nextPtr = s; + return XML_ERROR_NONE; + } + switch (tok) { + case XML_TOK_INVALID: + *eventPP = next; + return XML_ERROR_INVALID_TOKEN; + case XML_TOK_PARTIAL: + return XML_ERROR_UNCLOSED_TOKEN; + case XML_TOK_PARTIAL_CHAR: + return XML_ERROR_PARTIAL_CHAR; + case -XML_TOK_PROLOG_S: + tok = -tok; + break; + case XML_TOK_NONE: +#ifdef XML_DTD + /* for internal PE NOT referenced between declarations */ + if (enc != parser->m_encoding + && ! parser->m_openInternalEntities->betweenDecl) { + *nextPtr = s; + return XML_ERROR_NONE; + } + /* WFC: PE Between Declarations - must check that PE contains + complete markup, not only for external PEs, but also for + internal PEs if the reference occurs between declarations. + */ + if (parser->m_isParamEntity || enc != parser->m_encoding) { + if (XmlTokenRole(&parser->m_prologState, XML_TOK_NONE, end, end, enc) + == XML_ROLE_ERROR) + return XML_ERROR_INCOMPLETE_PE; + *nextPtr = s; + return XML_ERROR_NONE; + } +#endif /* XML_DTD */ + return XML_ERROR_NO_ELEMENTS; + default: + tok = -tok; + next = end; + break; + } + } + role = XmlTokenRole(&parser->m_prologState, tok, s, next, enc); +#ifdef XML_DTD + switch (role) { + case XML_ROLE_INSTANCE_START: // bytes accounted in contentProcessor + case XML_ROLE_XML_DECL: // bytes accounted in processXmlDecl + case XML_ROLE_TEXT_DECL: // bytes accounted in processXmlDecl + break; + default: + if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, account)) { + accountingOnAbort(parser); + return XML_ERROR_AMPLIFICATION_LIMIT_BREACH; + } + } +#endif + switch (role) { + case XML_ROLE_XML_DECL: { + enum XML_Error result = processXmlDecl(parser, 0, s, next); + if (result != XML_ERROR_NONE) + return result; + enc = parser->m_encoding; + handleDefault = XML_FALSE; + } break; + case XML_ROLE_DOCTYPE_NAME: + if (parser->m_startDoctypeDeclHandler) { + parser->m_doctypeName + = poolStoreString(&parser->m_tempPool, enc, s, next); + if (! parser->m_doctypeName) + return XML_ERROR_NO_MEMORY; + poolFinish(&parser->m_tempPool); + parser->m_doctypePubid = NULL; + handleDefault = XML_FALSE; + } + parser->m_doctypeSysid = NULL; /* always initialize to NULL */ + break; + case XML_ROLE_DOCTYPE_INTERNAL_SUBSET: + if (parser->m_startDoctypeDeclHandler) { + parser->m_startDoctypeDeclHandler( + parser->m_handlerArg, parser->m_doctypeName, parser->m_doctypeSysid, + parser->m_doctypePubid, 1); + parser->m_doctypeName = NULL; + poolClear(&parser->m_tempPool); + handleDefault = XML_FALSE; + } + break; +#ifdef XML_DTD + case XML_ROLE_TEXT_DECL: { + enum XML_Error result = processXmlDecl(parser, 1, s, next); + if (result != XML_ERROR_NONE) + return result; + enc = parser->m_encoding; + handleDefault = XML_FALSE; + } break; +#endif /* XML_DTD */ + case XML_ROLE_DOCTYPE_PUBLIC_ID: +#ifdef XML_DTD + parser->m_useForeignDTD = XML_FALSE; + parser->m_declEntity = (ENTITY *)lookup( + parser, &dtd->paramEntities, externalSubsetName, sizeof(ENTITY)); + if (! parser->m_declEntity) + return XML_ERROR_NO_MEMORY; +#endif /* XML_DTD */ + dtd->hasParamEntityRefs = XML_TRUE; + if (parser->m_startDoctypeDeclHandler) { + XML_Char *pubId; + if (! XmlIsPublicId(enc, s, next, eventPP)) + return XML_ERROR_PUBLICID; + pubId = poolStoreString(&parser->m_tempPool, enc, + s + enc->minBytesPerChar, + next - enc->minBytesPerChar); + if (! pubId) + return XML_ERROR_NO_MEMORY; + normalizePublicId(pubId); + poolFinish(&parser->m_tempPool); + parser->m_doctypePubid = pubId; + handleDefault = XML_FALSE; + goto alreadyChecked; + } + /* fall through */ + case XML_ROLE_ENTITY_PUBLIC_ID: + if (! XmlIsPublicId(enc, s, next, eventPP)) + return XML_ERROR_PUBLICID; + alreadyChecked: + if (dtd->keepProcessing && parser->m_declEntity) { + XML_Char *tem + = poolStoreString(&dtd->pool, enc, s + enc->minBytesPerChar, + next - enc->minBytesPerChar); + if (! tem) + return XML_ERROR_NO_MEMORY; + normalizePublicId(tem); + parser->m_declEntity->publicId = tem; + poolFinish(&dtd->pool); + /* Don't suppress the default handler if we fell through from + * the XML_ROLE_DOCTYPE_PUBLIC_ID case. + */ + if (parser->m_entityDeclHandler && role == XML_ROLE_ENTITY_PUBLIC_ID) + handleDefault = XML_FALSE; + } + break; + case XML_ROLE_DOCTYPE_CLOSE: + if (allowClosingDoctype != XML_TRUE) { + /* Must not close doctype from within expanded parameter entities */ + return XML_ERROR_INVALID_TOKEN; + } + + if (parser->m_doctypeName) { + parser->m_startDoctypeDeclHandler( + parser->m_handlerArg, parser->m_doctypeName, parser->m_doctypeSysid, + parser->m_doctypePubid, 0); + poolClear(&parser->m_tempPool); + handleDefault = XML_FALSE; + } + /* parser->m_doctypeSysid will be non-NULL in the case of a previous + XML_ROLE_DOCTYPE_SYSTEM_ID, even if parser->m_startDoctypeDeclHandler + was not set, indicating an external subset + */ +#ifdef XML_DTD + if (parser->m_doctypeSysid || parser->m_useForeignDTD) { + XML_Bool hadParamEntityRefs = dtd->hasParamEntityRefs; + dtd->hasParamEntityRefs = XML_TRUE; + if (parser->m_paramEntityParsing + && parser->m_externalEntityRefHandler) { + ENTITY *entity = (ENTITY *)lookup(parser, &dtd->paramEntities, + externalSubsetName, sizeof(ENTITY)); + if (! entity) { + /* The external subset name "#" will have already been + * inserted into the hash table at the start of the + * external entity parsing, so no allocation will happen + * and lookup() cannot fail. + */ + return XML_ERROR_NO_MEMORY; /* LCOV_EXCL_LINE */ + } + if (parser->m_useForeignDTD) + entity->base = parser->m_curBase; + dtd->paramEntityRead = XML_FALSE; + if (! parser->m_externalEntityRefHandler( + parser->m_externalEntityRefHandlerArg, 0, entity->base, + entity->systemId, entity->publicId)) + return XML_ERROR_EXTERNAL_ENTITY_HANDLING; + if (dtd->paramEntityRead) { + if (! dtd->standalone && parser->m_notStandaloneHandler + && ! parser->m_notStandaloneHandler(parser->m_handlerArg)) + return XML_ERROR_NOT_STANDALONE; + } + /* if we didn't read the foreign DTD then this means that there + is no external subset and we must reset dtd->hasParamEntityRefs + */ + else if (! parser->m_doctypeSysid) + dtd->hasParamEntityRefs = hadParamEntityRefs; + /* end of DTD - no need to update dtd->keepProcessing */ + } + parser->m_useForeignDTD = XML_FALSE; + } +#endif /* XML_DTD */ + if (parser->m_endDoctypeDeclHandler) { + parser->m_endDoctypeDeclHandler(parser->m_handlerArg); + handleDefault = XML_FALSE; + } + break; + case XML_ROLE_INSTANCE_START: +#ifdef XML_DTD + /* if there is no DOCTYPE declaration then now is the + last chance to read the foreign DTD + */ + if (parser->m_useForeignDTD) { + XML_Bool hadParamEntityRefs = dtd->hasParamEntityRefs; + dtd->hasParamEntityRefs = XML_TRUE; + if (parser->m_paramEntityParsing + && parser->m_externalEntityRefHandler) { + ENTITY *entity = (ENTITY *)lookup(parser, &dtd->paramEntities, + externalSubsetName, sizeof(ENTITY)); + if (! entity) + return XML_ERROR_NO_MEMORY; + entity->base = parser->m_curBase; + dtd->paramEntityRead = XML_FALSE; + if (! parser->m_externalEntityRefHandler( + parser->m_externalEntityRefHandlerArg, 0, entity->base, + entity->systemId, entity->publicId)) + return XML_ERROR_EXTERNAL_ENTITY_HANDLING; + if (dtd->paramEntityRead) { + if (! dtd->standalone && parser->m_notStandaloneHandler + && ! parser->m_notStandaloneHandler(parser->m_handlerArg)) + return XML_ERROR_NOT_STANDALONE; + } + /* if we didn't read the foreign DTD then this means that there + is no external subset and we must reset dtd->hasParamEntityRefs + */ + else + dtd->hasParamEntityRefs = hadParamEntityRefs; + /* end of DTD - no need to update dtd->keepProcessing */ + } + } +#endif /* XML_DTD */ + parser->m_processor = contentProcessor; + return contentProcessor(parser, s, end, nextPtr); + case XML_ROLE_ATTLIST_ELEMENT_NAME: + parser->m_declElementType = getElementType(parser, enc, s, next); + if (! parser->m_declElementType) + return XML_ERROR_NO_MEMORY; + goto checkAttListDeclHandler; + case XML_ROLE_ATTRIBUTE_NAME: + parser->m_declAttributeId = getAttributeId(parser, enc, s, next); + if (! parser->m_declAttributeId) + return XML_ERROR_NO_MEMORY; + parser->m_declAttributeIsCdata = XML_FALSE; + parser->m_declAttributeType = NULL; + parser->m_declAttributeIsId = XML_FALSE; + goto checkAttListDeclHandler; + case XML_ROLE_ATTRIBUTE_TYPE_CDATA: + parser->m_declAttributeIsCdata = XML_TRUE; + parser->m_declAttributeType = atypeCDATA; + goto checkAttListDeclHandler; + case XML_ROLE_ATTRIBUTE_TYPE_ID: + parser->m_declAttributeIsId = XML_TRUE; + parser->m_declAttributeType = atypeID; + goto checkAttListDeclHandler; + case XML_ROLE_ATTRIBUTE_TYPE_IDREF: + parser->m_declAttributeType = atypeIDREF; + goto checkAttListDeclHandler; + case XML_ROLE_ATTRIBUTE_TYPE_IDREFS: + parser->m_declAttributeType = atypeIDREFS; + goto checkAttListDeclHandler; + case XML_ROLE_ATTRIBUTE_TYPE_ENTITY: + parser->m_declAttributeType = atypeENTITY; + goto checkAttListDeclHandler; + case XML_ROLE_ATTRIBUTE_TYPE_ENTITIES: + parser->m_declAttributeType = atypeENTITIES; + goto checkAttListDeclHandler; + case XML_ROLE_ATTRIBUTE_TYPE_NMTOKEN: + parser->m_declAttributeType = atypeNMTOKEN; + goto checkAttListDeclHandler; + case XML_ROLE_ATTRIBUTE_TYPE_NMTOKENS: + parser->m_declAttributeType = atypeNMTOKENS; + checkAttListDeclHandler: + if (dtd->keepProcessing && parser->m_attlistDeclHandler) + handleDefault = XML_FALSE; + break; + case XML_ROLE_ATTRIBUTE_ENUM_VALUE: + case XML_ROLE_ATTRIBUTE_NOTATION_VALUE: + if (dtd->keepProcessing && parser->m_attlistDeclHandler) { + const XML_Char *prefix; + if (parser->m_declAttributeType) { + prefix = enumValueSep; + } else { + prefix = (role == XML_ROLE_ATTRIBUTE_NOTATION_VALUE ? notationPrefix + : enumValueStart); + } + if (! poolAppendString(&parser->m_tempPool, prefix)) + return XML_ERROR_NO_MEMORY; + if (! poolAppend(&parser->m_tempPool, enc, s, next)) + return XML_ERROR_NO_MEMORY; + parser->m_declAttributeType = parser->m_tempPool.start; + handleDefault = XML_FALSE; + } + break; + case XML_ROLE_IMPLIED_ATTRIBUTE_VALUE: + case XML_ROLE_REQUIRED_ATTRIBUTE_VALUE: + if (dtd->keepProcessing) { + if (! defineAttribute(parser->m_declElementType, + parser->m_declAttributeId, + parser->m_declAttributeIsCdata, + parser->m_declAttributeIsId, 0, parser)) + return XML_ERROR_NO_MEMORY; + if (parser->m_attlistDeclHandler && parser->m_declAttributeType) { + if (*parser->m_declAttributeType == XML_T(ASCII_LPAREN) + || (*parser->m_declAttributeType == XML_T(ASCII_N) + && parser->m_declAttributeType[1] == XML_T(ASCII_O))) { + /* Enumerated or Notation type */ + if (! poolAppendChar(&parser->m_tempPool, XML_T(ASCII_RPAREN)) + || ! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) + return XML_ERROR_NO_MEMORY; + parser->m_declAttributeType = parser->m_tempPool.start; + poolFinish(&parser->m_tempPool); + } + *eventEndPP = s; + parser->m_attlistDeclHandler( + parser->m_handlerArg, parser->m_declElementType->name, + parser->m_declAttributeId->name, parser->m_declAttributeType, 0, + role == XML_ROLE_REQUIRED_ATTRIBUTE_VALUE); + poolClear(&parser->m_tempPool); + handleDefault = XML_FALSE; + } + } + break; + case XML_ROLE_DEFAULT_ATTRIBUTE_VALUE: + case XML_ROLE_FIXED_ATTRIBUTE_VALUE: + if (dtd->keepProcessing) { + const XML_Char *attVal; + enum XML_Error result = storeAttributeValue( + parser, enc, parser->m_declAttributeIsCdata, + s + enc->minBytesPerChar, next - enc->minBytesPerChar, &dtd->pool, + XML_ACCOUNT_NONE); + if (result) + return result; + attVal = poolStart(&dtd->pool); + poolFinish(&dtd->pool); + /* ID attributes aren't allowed to have a default */ + if (! defineAttribute( + parser->m_declElementType, parser->m_declAttributeId, + parser->m_declAttributeIsCdata, XML_FALSE, attVal, parser)) + return XML_ERROR_NO_MEMORY; + if (parser->m_attlistDeclHandler && parser->m_declAttributeType) { + if (*parser->m_declAttributeType == XML_T(ASCII_LPAREN) + || (*parser->m_declAttributeType == XML_T(ASCII_N) + && parser->m_declAttributeType[1] == XML_T(ASCII_O))) { + /* Enumerated or Notation type */ + if (! poolAppendChar(&parser->m_tempPool, XML_T(ASCII_RPAREN)) + || ! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) + return XML_ERROR_NO_MEMORY; + parser->m_declAttributeType = parser->m_tempPool.start; + poolFinish(&parser->m_tempPool); + } + *eventEndPP = s; + parser->m_attlistDeclHandler( + parser->m_handlerArg, parser->m_declElementType->name, + parser->m_declAttributeId->name, parser->m_declAttributeType, + attVal, role == XML_ROLE_FIXED_ATTRIBUTE_VALUE); + poolClear(&parser->m_tempPool); + handleDefault = XML_FALSE; + } + } + break; + case XML_ROLE_ENTITY_VALUE: + if (dtd->keepProcessing) { + enum XML_Error result + = storeEntityValue(parser, enc, s + enc->minBytesPerChar, + next - enc->minBytesPerChar, XML_ACCOUNT_NONE); + if (parser->m_declEntity) { + parser->m_declEntity->textPtr = poolStart(&dtd->entityValuePool); + parser->m_declEntity->textLen + = (int)(poolLength(&dtd->entityValuePool)); + poolFinish(&dtd->entityValuePool); + if (parser->m_entityDeclHandler) { + *eventEndPP = s; + parser->m_entityDeclHandler( + parser->m_handlerArg, parser->m_declEntity->name, + parser->m_declEntity->is_param, parser->m_declEntity->textPtr, + parser->m_declEntity->textLen, parser->m_curBase, 0, 0, 0); + handleDefault = XML_FALSE; + } + } else + poolDiscard(&dtd->entityValuePool); + if (result != XML_ERROR_NONE) + return result; + } + break; + case XML_ROLE_DOCTYPE_SYSTEM_ID: +#ifdef XML_DTD + parser->m_useForeignDTD = XML_FALSE; +#endif /* XML_DTD */ + dtd->hasParamEntityRefs = XML_TRUE; + if (parser->m_startDoctypeDeclHandler) { + parser->m_doctypeSysid = poolStoreString(&parser->m_tempPool, enc, + s + enc->minBytesPerChar, + next - enc->minBytesPerChar); + if (parser->m_doctypeSysid == NULL) + return XML_ERROR_NO_MEMORY; + poolFinish(&parser->m_tempPool); + handleDefault = XML_FALSE; + } +#ifdef XML_DTD + else + /* use externalSubsetName to make parser->m_doctypeSysid non-NULL + for the case where no parser->m_startDoctypeDeclHandler is set */ + parser->m_doctypeSysid = externalSubsetName; +#endif /* XML_DTD */ + if (! dtd->standalone +#ifdef XML_DTD + && ! parser->m_paramEntityParsing +#endif /* XML_DTD */ + && parser->m_notStandaloneHandler + && ! parser->m_notStandaloneHandler(parser->m_handlerArg)) + return XML_ERROR_NOT_STANDALONE; +#ifndef XML_DTD + break; +#else /* XML_DTD */ + if (! parser->m_declEntity) { + parser->m_declEntity = (ENTITY *)lookup( + parser, &dtd->paramEntities, externalSubsetName, sizeof(ENTITY)); + if (! parser->m_declEntity) + return XML_ERROR_NO_MEMORY; + parser->m_declEntity->publicId = NULL; + } +#endif /* XML_DTD */ + /* fall through */ + case XML_ROLE_ENTITY_SYSTEM_ID: + if (dtd->keepProcessing && parser->m_declEntity) { + parser->m_declEntity->systemId + = poolStoreString(&dtd->pool, enc, s + enc->minBytesPerChar, + next - enc->minBytesPerChar); + if (! parser->m_declEntity->systemId) + return XML_ERROR_NO_MEMORY; + parser->m_declEntity->base = parser->m_curBase; + poolFinish(&dtd->pool); + /* Don't suppress the default handler if we fell through from + * the XML_ROLE_DOCTYPE_SYSTEM_ID case. + */ + if (parser->m_entityDeclHandler && role == XML_ROLE_ENTITY_SYSTEM_ID) + handleDefault = XML_FALSE; + } + break; + case XML_ROLE_ENTITY_COMPLETE: + if (dtd->keepProcessing && parser->m_declEntity + && parser->m_entityDeclHandler) { + *eventEndPP = s; + parser->m_entityDeclHandler( + parser->m_handlerArg, parser->m_declEntity->name, + parser->m_declEntity->is_param, 0, 0, parser->m_declEntity->base, + parser->m_declEntity->systemId, parser->m_declEntity->publicId, 0); + handleDefault = XML_FALSE; + } + break; + case XML_ROLE_ENTITY_NOTATION_NAME: + if (dtd->keepProcessing && parser->m_declEntity) { + parser->m_declEntity->notation + = poolStoreString(&dtd->pool, enc, s, next); + if (! parser->m_declEntity->notation) + return XML_ERROR_NO_MEMORY; + poolFinish(&dtd->pool); + if (parser->m_unparsedEntityDeclHandler) { + *eventEndPP = s; + parser->m_unparsedEntityDeclHandler( + parser->m_handlerArg, parser->m_declEntity->name, + parser->m_declEntity->base, parser->m_declEntity->systemId, + parser->m_declEntity->publicId, parser->m_declEntity->notation); + handleDefault = XML_FALSE; + } else if (parser->m_entityDeclHandler) { + *eventEndPP = s; + parser->m_entityDeclHandler( + parser->m_handlerArg, parser->m_declEntity->name, 0, 0, 0, + parser->m_declEntity->base, parser->m_declEntity->systemId, + parser->m_declEntity->publicId, parser->m_declEntity->notation); + handleDefault = XML_FALSE; + } + } + break; + case XML_ROLE_GENERAL_ENTITY_NAME: { + if (XmlPredefinedEntityName(enc, s, next)) { + parser->m_declEntity = NULL; + break; + } + if (dtd->keepProcessing) { + const XML_Char *name = poolStoreString(&dtd->pool, enc, s, next); + if (! name) + return XML_ERROR_NO_MEMORY; + parser->m_declEntity = (ENTITY *)lookup(parser, &dtd->generalEntities, + name, sizeof(ENTITY)); + if (! parser->m_declEntity) + return XML_ERROR_NO_MEMORY; + if (parser->m_declEntity->name != name) { + poolDiscard(&dtd->pool); + parser->m_declEntity = NULL; + } else { + poolFinish(&dtd->pool); + parser->m_declEntity->publicId = NULL; + parser->m_declEntity->is_param = XML_FALSE; + /* if we have a parent parser or are reading an internal parameter + entity, then the entity declaration is not considered "internal" + */ + parser->m_declEntity->is_internal + = ! (parser->m_parentParser || parser->m_openInternalEntities); + if (parser->m_entityDeclHandler) + handleDefault = XML_FALSE; + } + } else { + poolDiscard(&dtd->pool); + parser->m_declEntity = NULL; + } + } break; + case XML_ROLE_PARAM_ENTITY_NAME: +#ifdef XML_DTD + if (dtd->keepProcessing) { + const XML_Char *name = poolStoreString(&dtd->pool, enc, s, next); + if (! name) + return XML_ERROR_NO_MEMORY; + parser->m_declEntity = (ENTITY *)lookup(parser, &dtd->paramEntities, + name, sizeof(ENTITY)); + if (! parser->m_declEntity) + return XML_ERROR_NO_MEMORY; + if (parser->m_declEntity->name != name) { + poolDiscard(&dtd->pool); + parser->m_declEntity = NULL; + } else { + poolFinish(&dtd->pool); + parser->m_declEntity->publicId = NULL; + parser->m_declEntity->is_param = XML_TRUE; + /* if we have a parent parser or are reading an internal parameter + entity, then the entity declaration is not considered "internal" + */ + parser->m_declEntity->is_internal + = ! (parser->m_parentParser || parser->m_openInternalEntities); + if (parser->m_entityDeclHandler) + handleDefault = XML_FALSE; + } + } else { + poolDiscard(&dtd->pool); + parser->m_declEntity = NULL; + } +#else /* not XML_DTD */ + parser->m_declEntity = NULL; +#endif /* XML_DTD */ + break; + case XML_ROLE_NOTATION_NAME: + parser->m_declNotationPublicId = NULL; + parser->m_declNotationName = NULL; + if (parser->m_notationDeclHandler) { + parser->m_declNotationName + = poolStoreString(&parser->m_tempPool, enc, s, next); + if (! parser->m_declNotationName) + return XML_ERROR_NO_MEMORY; + poolFinish(&parser->m_tempPool); + handleDefault = XML_FALSE; + } + break; + case XML_ROLE_NOTATION_PUBLIC_ID: + if (! XmlIsPublicId(enc, s, next, eventPP)) + return XML_ERROR_PUBLICID; + if (parser + ->m_declNotationName) { /* means m_notationDeclHandler != NULL */ + XML_Char *tem = poolStoreString(&parser->m_tempPool, enc, + s + enc->minBytesPerChar, + next - enc->minBytesPerChar); + if (! tem) + return XML_ERROR_NO_MEMORY; + normalizePublicId(tem); + parser->m_declNotationPublicId = tem; + poolFinish(&parser->m_tempPool); + handleDefault = XML_FALSE; + } + break; + case XML_ROLE_NOTATION_SYSTEM_ID: + if (parser->m_declNotationName && parser->m_notationDeclHandler) { + const XML_Char *systemId = poolStoreString(&parser->m_tempPool, enc, + s + enc->minBytesPerChar, + next - enc->minBytesPerChar); + if (! systemId) + return XML_ERROR_NO_MEMORY; + *eventEndPP = s; + parser->m_notationDeclHandler( + parser->m_handlerArg, parser->m_declNotationName, parser->m_curBase, + systemId, parser->m_declNotationPublicId); + handleDefault = XML_FALSE; + } + poolClear(&parser->m_tempPool); + break; + case XML_ROLE_NOTATION_NO_SYSTEM_ID: + if (parser->m_declNotationPublicId && parser->m_notationDeclHandler) { + *eventEndPP = s; + parser->m_notationDeclHandler( + parser->m_handlerArg, parser->m_declNotationName, parser->m_curBase, + 0, parser->m_declNotationPublicId); + handleDefault = XML_FALSE; + } + poolClear(&parser->m_tempPool); + break; + case XML_ROLE_ERROR: + switch (tok) { + case XML_TOK_PARAM_ENTITY_REF: + /* PE references in internal subset are + not allowed within declarations. */ + return XML_ERROR_PARAM_ENTITY_REF; + case XML_TOK_XML_DECL: + return XML_ERROR_MISPLACED_XML_PI; + default: + return XML_ERROR_SYNTAX; + } +#ifdef XML_DTD + case XML_ROLE_IGNORE_SECT: { + enum XML_Error result; + if (parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + handleDefault = XML_FALSE; + result = doIgnoreSection(parser, enc, &next, end, nextPtr, haveMore); + if (result != XML_ERROR_NONE) + return result; + else if (! next) { + parser->m_processor = ignoreSectionProcessor; + return result; + } + } break; +#endif /* XML_DTD */ + case XML_ROLE_GROUP_OPEN: + if (parser->m_prologState.level >= parser->m_groupSize) { + if (parser->m_groupSize) { + { + /* Detect and prevent integer overflow */ + if (parser->m_groupSize > (unsigned int)(-1) / 2u) { + return XML_ERROR_NO_MEMORY; + } + + char *const new_connector = (char *)REALLOC( + parser, parser->m_groupConnector, parser->m_groupSize *= 2); + if (new_connector == NULL) { + parser->m_groupSize /= 2; + return XML_ERROR_NO_MEMORY; + } + parser->m_groupConnector = new_connector; + } + + if (dtd->scaffIndex) { + /* Detect and prevent integer overflow. + * The preprocessor guard addresses the "always false" warning + * from -Wtype-limits on platforms where + * sizeof(unsigned int) < sizeof(size_t), e.g. on x86_64. */ +#if UINT_MAX >= SIZE_MAX + if (parser->m_groupSize > (size_t)(-1) / sizeof(int)) { + return XML_ERROR_NO_MEMORY; + } +#endif + + int *const new_scaff_index = (int *)REALLOC( + parser, dtd->scaffIndex, parser->m_groupSize * sizeof(int)); + if (new_scaff_index == NULL) + return XML_ERROR_NO_MEMORY; + dtd->scaffIndex = new_scaff_index; + } + } else { + parser->m_groupConnector + = (char *)MALLOC(parser, parser->m_groupSize = 32); + if (! parser->m_groupConnector) { + parser->m_groupSize = 0; + return XML_ERROR_NO_MEMORY; + } + } + } + parser->m_groupConnector[parser->m_prologState.level] = 0; + if (dtd->in_eldecl) { + int myindex = nextScaffoldPart(parser); + if (myindex < 0) + return XML_ERROR_NO_MEMORY; + assert(dtd->scaffIndex != NULL); + dtd->scaffIndex[dtd->scaffLevel] = myindex; + dtd->scaffLevel++; + dtd->scaffold[myindex].type = XML_CTYPE_SEQ; + if (parser->m_elementDeclHandler) + handleDefault = XML_FALSE; + } + break; + case XML_ROLE_GROUP_SEQUENCE: + if (parser->m_groupConnector[parser->m_prologState.level] == ASCII_PIPE) + return XML_ERROR_SYNTAX; + parser->m_groupConnector[parser->m_prologState.level] = ASCII_COMMA; + if (dtd->in_eldecl && parser->m_elementDeclHandler) + handleDefault = XML_FALSE; + break; + case XML_ROLE_GROUP_CHOICE: + if (parser->m_groupConnector[parser->m_prologState.level] == ASCII_COMMA) + return XML_ERROR_SYNTAX; + if (dtd->in_eldecl + && ! parser->m_groupConnector[parser->m_prologState.level] + && (dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel - 1]].type + != XML_CTYPE_MIXED)) { + dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel - 1]].type + = XML_CTYPE_CHOICE; + if (parser->m_elementDeclHandler) + handleDefault = XML_FALSE; + } + parser->m_groupConnector[parser->m_prologState.level] = ASCII_PIPE; + break; + case XML_ROLE_PARAM_ENTITY_REF: +#ifdef XML_DTD + case XML_ROLE_INNER_PARAM_ENTITY_REF: + dtd->hasParamEntityRefs = XML_TRUE; + if (! parser->m_paramEntityParsing) + dtd->keepProcessing = dtd->standalone; + else { + const XML_Char *name; + ENTITY *entity; + name = poolStoreString(&dtd->pool, enc, s + enc->minBytesPerChar, + next - enc->minBytesPerChar); + if (! name) + return XML_ERROR_NO_MEMORY; + entity = (ENTITY *)lookup(parser, &dtd->paramEntities, name, 0); + poolDiscard(&dtd->pool); + /* first, determine if a check for an existing declaration is needed; + if yes, check that the entity exists, and that it is internal, + otherwise call the skipped entity handler + */ + if (parser->m_prologState.documentEntity + && (dtd->standalone ? ! parser->m_openInternalEntities + : ! dtd->hasParamEntityRefs)) { + if (! entity) + return XML_ERROR_UNDEFINED_ENTITY; + else if (! entity->is_internal) { + /* It's hard to exhaustively search the code to be sure, + * but there doesn't seem to be a way of executing the + * following line. There are two cases: + * + * If 'standalone' is false, the DTD must have no + * parameter entities or we wouldn't have passed the outer + * 'if' statement. That means the only entity in the hash + * table is the external subset name "#" which cannot be + * given as a parameter entity name in XML syntax, so the + * lookup must have returned NULL and we don't even reach + * the test for an internal entity. + * + * If 'standalone' is true, it does not seem to be + * possible to create entities taking this code path that + * are not internal entities, so fail the test above. + * + * Because this analysis is very uncertain, the code is + * being left in place and merely removed from the + * coverage test statistics. + */ + return XML_ERROR_ENTITY_DECLARED_IN_PE; /* LCOV_EXCL_LINE */ + } + } else if (! entity) { + dtd->keepProcessing = dtd->standalone; + /* cannot report skipped entities in declarations */ + if ((role == XML_ROLE_PARAM_ENTITY_REF) + && parser->m_skippedEntityHandler) { + parser->m_skippedEntityHandler(parser->m_handlerArg, name, 1); + handleDefault = XML_FALSE; + } + break; + } + if (entity->open) + return XML_ERROR_RECURSIVE_ENTITY_REF; + if (entity->textPtr) { + enum XML_Error result; + XML_Bool betweenDecl + = (role == XML_ROLE_PARAM_ENTITY_REF ? XML_TRUE : XML_FALSE); + result = processInternalEntity(parser, entity, betweenDecl); + if (result != XML_ERROR_NONE) + return result; + handleDefault = XML_FALSE; + break; + } + if (parser->m_externalEntityRefHandler) { + dtd->paramEntityRead = XML_FALSE; + entity->open = XML_TRUE; + entityTrackingOnOpen(parser, entity, __LINE__); + if (! parser->m_externalEntityRefHandler( + parser->m_externalEntityRefHandlerArg, 0, entity->base, + entity->systemId, entity->publicId)) { + entityTrackingOnClose(parser, entity, __LINE__); + entity->open = XML_FALSE; + return XML_ERROR_EXTERNAL_ENTITY_HANDLING; + } + entityTrackingOnClose(parser, entity, __LINE__); + entity->open = XML_FALSE; + handleDefault = XML_FALSE; + if (! dtd->paramEntityRead) { + dtd->keepProcessing = dtd->standalone; + break; + } + } else { + dtd->keepProcessing = dtd->standalone; + break; + } + } +#endif /* XML_DTD */ + if (! dtd->standalone && parser->m_notStandaloneHandler + && ! parser->m_notStandaloneHandler(parser->m_handlerArg)) + return XML_ERROR_NOT_STANDALONE; + break; + + /* Element declaration stuff */ + + case XML_ROLE_ELEMENT_NAME: + if (parser->m_elementDeclHandler) { + parser->m_declElementType = getElementType(parser, enc, s, next); + if (! parser->m_declElementType) + return XML_ERROR_NO_MEMORY; + dtd->scaffLevel = 0; + dtd->scaffCount = 0; + dtd->in_eldecl = XML_TRUE; + handleDefault = XML_FALSE; + } + break; + + case XML_ROLE_CONTENT_ANY: + case XML_ROLE_CONTENT_EMPTY: + if (dtd->in_eldecl) { + if (parser->m_elementDeclHandler) { + XML_Content *content + = (XML_Content *)MALLOC(parser, sizeof(XML_Content)); + if (! content) + return XML_ERROR_NO_MEMORY; + content->quant = XML_CQUANT_NONE; + content->name = NULL; + content->numchildren = 0; + content->children = NULL; + content->type = ((role == XML_ROLE_CONTENT_ANY) ? XML_CTYPE_ANY + : XML_CTYPE_EMPTY); + *eventEndPP = s; + parser->m_elementDeclHandler( + parser->m_handlerArg, parser->m_declElementType->name, content); + handleDefault = XML_FALSE; + } + dtd->in_eldecl = XML_FALSE; + } + break; + + case XML_ROLE_CONTENT_PCDATA: + if (dtd->in_eldecl) { + dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel - 1]].type + = XML_CTYPE_MIXED; + if (parser->m_elementDeclHandler) + handleDefault = XML_FALSE; + } + break; + + case XML_ROLE_CONTENT_ELEMENT: + quant = XML_CQUANT_NONE; + goto elementContent; + case XML_ROLE_CONTENT_ELEMENT_OPT: + quant = XML_CQUANT_OPT; + goto elementContent; + case XML_ROLE_CONTENT_ELEMENT_REP: + quant = XML_CQUANT_REP; + goto elementContent; + case XML_ROLE_CONTENT_ELEMENT_PLUS: + quant = XML_CQUANT_PLUS; + elementContent: + if (dtd->in_eldecl) { + ELEMENT_TYPE *el; + const XML_Char *name; + size_t nameLen; + const char *nxt + = (quant == XML_CQUANT_NONE ? next : next - enc->minBytesPerChar); + int myindex = nextScaffoldPart(parser); + if (myindex < 0) + return XML_ERROR_NO_MEMORY; + dtd->scaffold[myindex].type = XML_CTYPE_NAME; + dtd->scaffold[myindex].quant = quant; + el = getElementType(parser, enc, s, nxt); + if (! el) + return XML_ERROR_NO_MEMORY; + name = el->name; + dtd->scaffold[myindex].name = name; + nameLen = 0; + for (; name[nameLen++];) + ; + + /* Detect and prevent integer overflow */ + if (nameLen > UINT_MAX - dtd->contentStringLen) { + return XML_ERROR_NO_MEMORY; + } + + dtd->contentStringLen += (unsigned)nameLen; + if (parser->m_elementDeclHandler) + handleDefault = XML_FALSE; + } + break; + + case XML_ROLE_GROUP_CLOSE: + quant = XML_CQUANT_NONE; + goto closeGroup; + case XML_ROLE_GROUP_CLOSE_OPT: + quant = XML_CQUANT_OPT; + goto closeGroup; + case XML_ROLE_GROUP_CLOSE_REP: + quant = XML_CQUANT_REP; + goto closeGroup; + case XML_ROLE_GROUP_CLOSE_PLUS: + quant = XML_CQUANT_PLUS; + closeGroup: + if (dtd->in_eldecl) { + if (parser->m_elementDeclHandler) + handleDefault = XML_FALSE; + dtd->scaffLevel--; + dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel]].quant = quant; + if (dtd->scaffLevel == 0) { + if (! handleDefault) { + XML_Content *model = build_model(parser); + if (! model) + return XML_ERROR_NO_MEMORY; + *eventEndPP = s; + parser->m_elementDeclHandler( + parser->m_handlerArg, parser->m_declElementType->name, model); + } + dtd->in_eldecl = XML_FALSE; + dtd->contentStringLen = 0; + } + } + break; + /* End element declaration stuff */ + + case XML_ROLE_PI: + if (! reportProcessingInstruction(parser, enc, s, next)) + return XML_ERROR_NO_MEMORY; + handleDefault = XML_FALSE; + break; + case XML_ROLE_COMMENT: + if (! reportComment(parser, enc, s, next)) + return XML_ERROR_NO_MEMORY; + handleDefault = XML_FALSE; + break; + case XML_ROLE_NONE: + switch (tok) { + case XML_TOK_BOM: + handleDefault = XML_FALSE; + break; + } + break; + case XML_ROLE_DOCTYPE_NONE: + if (parser->m_startDoctypeDeclHandler) + handleDefault = XML_FALSE; + break; + case XML_ROLE_ENTITY_NONE: + if (dtd->keepProcessing && parser->m_entityDeclHandler) + handleDefault = XML_FALSE; + break; + case XML_ROLE_NOTATION_NONE: + if (parser->m_notationDeclHandler) + handleDefault = XML_FALSE; + break; + case XML_ROLE_ATTLIST_NONE: + if (dtd->keepProcessing && parser->m_attlistDeclHandler) + handleDefault = XML_FALSE; + break; + case XML_ROLE_ELEMENT_NONE: + if (parser->m_elementDeclHandler) + handleDefault = XML_FALSE; + break; + } /* end of big switch */ + + if (handleDefault && parser->m_defaultHandler) + reportDefault(parser, enc, s, next); + + switch (parser->m_parsingStatus.parsing) { + case XML_SUSPENDED: + *nextPtr = next; + return XML_ERROR_NONE; + case XML_FINISHED: + return XML_ERROR_ABORTED; + default: + s = next; + tok = XmlPrologTok(enc, s, end, &next); + } + } + /* not reached */ +} + +static enum XML_Error PTRCALL +epilogProcessor(XML_Parser parser, const char *s, const char *end, + const char **nextPtr) { + parser->m_processor = epilogProcessor; + parser->m_eventPtr = s; + for (;;) { + const char *next = NULL; + int tok = XmlPrologTok(parser->m_encoding, s, end, &next); +#ifdef XML_DTD + if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, + XML_ACCOUNT_DIRECT)) { + accountingOnAbort(parser); + return XML_ERROR_AMPLIFICATION_LIMIT_BREACH; + } +#endif + parser->m_eventEndPtr = next; + switch (tok) { + /* report partial linebreak - it might be the last token */ + case -XML_TOK_PROLOG_S: + if (parser->m_defaultHandler) { + reportDefault(parser, parser->m_encoding, s, next); + if (parser->m_parsingStatus.parsing == XML_FINISHED) + return XML_ERROR_ABORTED; + } + *nextPtr = next; + return XML_ERROR_NONE; + case XML_TOK_NONE: + *nextPtr = s; + return XML_ERROR_NONE; + case XML_TOK_PROLOG_S: + if (parser->m_defaultHandler) + reportDefault(parser, parser->m_encoding, s, next); + break; + case XML_TOK_PI: + if (! reportProcessingInstruction(parser, parser->m_encoding, s, next)) + return XML_ERROR_NO_MEMORY; + break; + case XML_TOK_COMMENT: + if (! reportComment(parser, parser->m_encoding, s, next)) + return XML_ERROR_NO_MEMORY; + break; + case XML_TOK_INVALID: + parser->m_eventPtr = next; + return XML_ERROR_INVALID_TOKEN; + case XML_TOK_PARTIAL: + if (! parser->m_parsingStatus.finalBuffer) { + *nextPtr = s; + return XML_ERROR_NONE; + } + return XML_ERROR_UNCLOSED_TOKEN; + case XML_TOK_PARTIAL_CHAR: + if (! parser->m_parsingStatus.finalBuffer) { + *nextPtr = s; + return XML_ERROR_NONE; + } + return XML_ERROR_PARTIAL_CHAR; + default: + return XML_ERROR_JUNK_AFTER_DOC_ELEMENT; + } + parser->m_eventPtr = s = next; + switch (parser->m_parsingStatus.parsing) { + case XML_SUSPENDED: + *nextPtr = next; + return XML_ERROR_NONE; + case XML_FINISHED: + return XML_ERROR_ABORTED; + default:; + } + } +} + +static enum XML_Error +processInternalEntity(XML_Parser parser, ENTITY *entity, XML_Bool betweenDecl) { + const char *textStart, *textEnd; + const char *next; + enum XML_Error result; + OPEN_INTERNAL_ENTITY *openEntity; + + if (parser->m_freeInternalEntities) { + openEntity = parser->m_freeInternalEntities; + parser->m_freeInternalEntities = openEntity->next; + } else { + openEntity + = (OPEN_INTERNAL_ENTITY *)MALLOC(parser, sizeof(OPEN_INTERNAL_ENTITY)); + if (! openEntity) + return XML_ERROR_NO_MEMORY; + } + entity->open = XML_TRUE; +#ifdef XML_DTD + entityTrackingOnOpen(parser, entity, __LINE__); +#endif + entity->processed = 0; + openEntity->next = parser->m_openInternalEntities; + parser->m_openInternalEntities = openEntity; + openEntity->entity = entity; + openEntity->startTagLevel = parser->m_tagLevel; + openEntity->betweenDecl = betweenDecl; + openEntity->internalEventPtr = NULL; + openEntity->internalEventEndPtr = NULL; + textStart = (const char *)entity->textPtr; + textEnd = (const char *)(entity->textPtr + entity->textLen); + /* Set a safe default value in case 'next' does not get set */ + next = textStart; + +#ifdef XML_DTD + if (entity->is_param) { + int tok + = XmlPrologTok(parser->m_internalEncoding, textStart, textEnd, &next); + result = doProlog(parser, parser->m_internalEncoding, textStart, textEnd, + tok, next, &next, XML_FALSE, XML_FALSE, + XML_ACCOUNT_ENTITY_EXPANSION); + } else +#endif /* XML_DTD */ + result = doContent(parser, parser->m_tagLevel, parser->m_internalEncoding, + textStart, textEnd, &next, XML_FALSE, + XML_ACCOUNT_ENTITY_EXPANSION); + + if (result == XML_ERROR_NONE) { + if (textEnd != next && parser->m_parsingStatus.parsing == XML_SUSPENDED) { + entity->processed = (int)(next - textStart); + parser->m_processor = internalEntityProcessor; + } else { +#ifdef XML_DTD + entityTrackingOnClose(parser, entity, __LINE__); +#endif /* XML_DTD */ + entity->open = XML_FALSE; + parser->m_openInternalEntities = openEntity->next; + /* put openEntity back in list of free instances */ + openEntity->next = parser->m_freeInternalEntities; + parser->m_freeInternalEntities = openEntity; + } + } + return result; +} + +static enum XML_Error PTRCALL +internalEntityProcessor(XML_Parser parser, const char *s, const char *end, + const char **nextPtr) { + ENTITY *entity; + const char *textStart, *textEnd; + const char *next; + enum XML_Error result; + OPEN_INTERNAL_ENTITY *openEntity = parser->m_openInternalEntities; + if (! openEntity) + return XML_ERROR_UNEXPECTED_STATE; + + entity = openEntity->entity; + textStart = ((const char *)entity->textPtr) + entity->processed; + textEnd = (const char *)(entity->textPtr + entity->textLen); + /* Set a safe default value in case 'next' does not get set */ + next = textStart; + +#ifdef XML_DTD + if (entity->is_param) { + int tok + = XmlPrologTok(parser->m_internalEncoding, textStart, textEnd, &next); + result = doProlog(parser, parser->m_internalEncoding, textStart, textEnd, + tok, next, &next, XML_FALSE, XML_TRUE, + XML_ACCOUNT_ENTITY_EXPANSION); + } else +#endif /* XML_DTD */ + result = doContent(parser, openEntity->startTagLevel, + parser->m_internalEncoding, textStart, textEnd, &next, + XML_FALSE, XML_ACCOUNT_ENTITY_EXPANSION); + + if (result != XML_ERROR_NONE) + return result; + else if (textEnd != next + && parser->m_parsingStatus.parsing == XML_SUSPENDED) { + entity->processed = (int)(next - (const char *)entity->textPtr); + return result; + } else { +#ifdef XML_DTD + entityTrackingOnClose(parser, entity, __LINE__); +#endif + entity->open = XML_FALSE; + parser->m_openInternalEntities = openEntity->next; + /* put openEntity back in list of free instances */ + openEntity->next = parser->m_freeInternalEntities; + parser->m_freeInternalEntities = openEntity; + } + +#ifdef XML_DTD + if (entity->is_param) { + int tok; + parser->m_processor = prologProcessor; + tok = XmlPrologTok(parser->m_encoding, s, end, &next); + return doProlog(parser, parser->m_encoding, s, end, tok, next, nextPtr, + (XML_Bool)! parser->m_parsingStatus.finalBuffer, XML_TRUE, + XML_ACCOUNT_DIRECT); + } else +#endif /* XML_DTD */ + { + parser->m_processor = contentProcessor; + /* see externalEntityContentProcessor vs contentProcessor */ + result = doContent(parser, parser->m_parentParser ? 1 : 0, + parser->m_encoding, s, end, nextPtr, + (XML_Bool)! parser->m_parsingStatus.finalBuffer, + XML_ACCOUNT_DIRECT); + if (result == XML_ERROR_NONE) { + if (! storeRawNames(parser)) + return XML_ERROR_NO_MEMORY; + } + return result; + } +} + +static enum XML_Error PTRCALL +errorProcessor(XML_Parser parser, const char *s, const char *end, + const char **nextPtr) { + UNUSED_P(s); + UNUSED_P(end); + UNUSED_P(nextPtr); + return parser->m_errorCode; +} + +static enum XML_Error +storeAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata, + const char *ptr, const char *end, STRING_POOL *pool, + enum XML_Account account) { + enum XML_Error result + = appendAttributeValue(parser, enc, isCdata, ptr, end, pool, account); + if (result) + return result; + if (! isCdata && poolLength(pool) && poolLastChar(pool) == 0x20) + poolChop(pool); + if (! poolAppendChar(pool, XML_T('\0'))) + return XML_ERROR_NO_MEMORY; + return XML_ERROR_NONE; +} + +static enum XML_Error +appendAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata, + const char *ptr, const char *end, STRING_POOL *pool, + enum XML_Account account) { + DTD *const dtd = parser->m_dtd; /* save one level of indirection */ +#ifndef XML_DTD + UNUSED_P(account); +#endif + + for (;;) { + const char *next + = ptr; /* XmlAttributeValueTok doesn't always set the last arg */ + int tok = XmlAttributeValueTok(enc, ptr, end, &next); +#ifdef XML_DTD + if (! accountingDiffTolerated(parser, tok, ptr, next, __LINE__, account)) { + accountingOnAbort(parser); + return XML_ERROR_AMPLIFICATION_LIMIT_BREACH; + } +#endif + switch (tok) { + case XML_TOK_NONE: + return XML_ERROR_NONE; + case XML_TOK_INVALID: + if (enc == parser->m_encoding) + parser->m_eventPtr = next; + return XML_ERROR_INVALID_TOKEN; + case XML_TOK_PARTIAL: + if (enc == parser->m_encoding) + parser->m_eventPtr = ptr; + return XML_ERROR_INVALID_TOKEN; + case XML_TOK_CHAR_REF: { + XML_Char buf[XML_ENCODE_MAX]; + int i; + int n = XmlCharRefNumber(enc, ptr); + if (n < 0) { + if (enc == parser->m_encoding) + parser->m_eventPtr = ptr; + return XML_ERROR_BAD_CHAR_REF; + } + if (! isCdata && n == 0x20 /* space */ + && (poolLength(pool) == 0 || poolLastChar(pool) == 0x20)) + break; + n = XmlEncode(n, (ICHAR *)buf); + /* The XmlEncode() functions can never return 0 here. That + * error return happens if the code point passed in is either + * negative or greater than or equal to 0x110000. The + * XmlCharRefNumber() functions will all return a number + * strictly less than 0x110000 or a negative value if an error + * occurred. The negative value is intercepted above, so + * XmlEncode() is never passed a value it might return an + * error for. + */ + for (i = 0; i < n; i++) { + if (! poolAppendChar(pool, buf[i])) + return XML_ERROR_NO_MEMORY; + } + } break; + case XML_TOK_DATA_CHARS: + if (! poolAppend(pool, enc, ptr, next)) + return XML_ERROR_NO_MEMORY; + break; + case XML_TOK_TRAILING_CR: + next = ptr + enc->minBytesPerChar; + /* fall through */ + case XML_TOK_ATTRIBUTE_VALUE_S: + case XML_TOK_DATA_NEWLINE: + if (! isCdata && (poolLength(pool) == 0 || poolLastChar(pool) == 0x20)) + break; + if (! poolAppendChar(pool, 0x20)) + return XML_ERROR_NO_MEMORY; + break; + case XML_TOK_ENTITY_REF: { + const XML_Char *name; + ENTITY *entity; + char checkEntityDecl; + XML_Char ch = (XML_Char)XmlPredefinedEntityName( + enc, ptr + enc->minBytesPerChar, next - enc->minBytesPerChar); + if (ch) { +#ifdef XML_DTD + /* NOTE: We are replacing 4-6 characters original input for 1 character + * so there is no amplification and hence recording without + * protection. */ + accountingDiffTolerated(parser, tok, (char *)&ch, + ((char *)&ch) + sizeof(XML_Char), __LINE__, + XML_ACCOUNT_ENTITY_EXPANSION); +#endif /* XML_DTD */ + if (! poolAppendChar(pool, ch)) + return XML_ERROR_NO_MEMORY; + break; + } + name = poolStoreString(&parser->m_temp2Pool, enc, + ptr + enc->minBytesPerChar, + next - enc->minBytesPerChar); + if (! name) + return XML_ERROR_NO_MEMORY; + entity = (ENTITY *)lookup(parser, &dtd->generalEntities, name, 0); + poolDiscard(&parser->m_temp2Pool); + /* First, determine if a check for an existing declaration is needed; + if yes, check that the entity exists, and that it is internal. + */ + if (pool == &dtd->pool) /* are we called from prolog? */ + checkEntityDecl = +#ifdef XML_DTD + parser->m_prologState.documentEntity && +#endif /* XML_DTD */ + (dtd->standalone ? ! parser->m_openInternalEntities + : ! dtd->hasParamEntityRefs); + else /* if (pool == &parser->m_tempPool): we are called from content */ + checkEntityDecl = ! dtd->hasParamEntityRefs || dtd->standalone; + if (checkEntityDecl) { + if (! entity) + return XML_ERROR_UNDEFINED_ENTITY; + else if (! entity->is_internal) + return XML_ERROR_ENTITY_DECLARED_IN_PE; + } else if (! entity) { + /* Cannot report skipped entity here - see comments on + parser->m_skippedEntityHandler. + if (parser->m_skippedEntityHandler) + parser->m_skippedEntityHandler(parser->m_handlerArg, name, 0); + */ + /* Cannot call the default handler because this would be + out of sync with the call to the startElementHandler. + if ((pool == &parser->m_tempPool) && parser->m_defaultHandler) + reportDefault(parser, enc, ptr, next); + */ + break; + } + if (entity->open) { + if (enc == parser->m_encoding) { + /* It does not appear that this line can be executed. + * + * The "if (entity->open)" check catches recursive entity + * definitions. In order to be called with an open + * entity, it must have gone through this code before and + * been through the recursive call to + * appendAttributeValue() some lines below. That call + * sets the local encoding ("enc") to the parser's + * internal encoding (internal_utf8 or internal_utf16), + * which can never be the same as the principle encoding. + * It doesn't appear there is another code path that gets + * here with entity->open being TRUE. + * + * Since it is not certain that this logic is watertight, + * we keep the line and merely exclude it from coverage + * tests. + */ + parser->m_eventPtr = ptr; /* LCOV_EXCL_LINE */ + } + return XML_ERROR_RECURSIVE_ENTITY_REF; + } + if (entity->notation) { + if (enc == parser->m_encoding) + parser->m_eventPtr = ptr; + return XML_ERROR_BINARY_ENTITY_REF; + } + if (! entity->textPtr) { + if (enc == parser->m_encoding) + parser->m_eventPtr = ptr; + return XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF; + } else { + enum XML_Error result; + const XML_Char *textEnd = entity->textPtr + entity->textLen; + entity->open = XML_TRUE; +#ifdef XML_DTD + entityTrackingOnOpen(parser, entity, __LINE__); +#endif + result = appendAttributeValue(parser, parser->m_internalEncoding, + isCdata, (const char *)entity->textPtr, + (const char *)textEnd, pool, + XML_ACCOUNT_ENTITY_EXPANSION); +#ifdef XML_DTD + entityTrackingOnClose(parser, entity, __LINE__); +#endif + entity->open = XML_FALSE; + if (result) + return result; + } + } break; + default: + /* The only token returned by XmlAttributeValueTok() that does + * not have an explicit case here is XML_TOK_PARTIAL_CHAR. + * Getting that would require an entity name to contain an + * incomplete XML character (e.g. \xE2\x82); however previous + * tokenisers will have already recognised and rejected such + * names before XmlAttributeValueTok() gets a look-in. This + * default case should be retained as a safety net, but the code + * excluded from coverage tests. + * + * LCOV_EXCL_START + */ + if (enc == parser->m_encoding) + parser->m_eventPtr = ptr; + return XML_ERROR_UNEXPECTED_STATE; + /* LCOV_EXCL_STOP */ + } + ptr = next; + } + /* not reached */ +} + +static enum XML_Error +storeEntityValue(XML_Parser parser, const ENCODING *enc, + const char *entityTextPtr, const char *entityTextEnd, + enum XML_Account account) { + DTD *const dtd = parser->m_dtd; /* save one level of indirection */ + STRING_POOL *pool = &(dtd->entityValuePool); + enum XML_Error result = XML_ERROR_NONE; +#ifdef XML_DTD + int oldInEntityValue = parser->m_prologState.inEntityValue; + parser->m_prologState.inEntityValue = 1; +#else + UNUSED_P(account); +#endif /* XML_DTD */ + /* never return Null for the value argument in EntityDeclHandler, + since this would indicate an external entity; therefore we + have to make sure that entityValuePool.start is not null */ + if (! pool->blocks) { + if (! poolGrow(pool)) + return XML_ERROR_NO_MEMORY; + } + + for (;;) { + const char *next + = entityTextPtr; /* XmlEntityValueTok doesn't always set the last arg */ + int tok = XmlEntityValueTok(enc, entityTextPtr, entityTextEnd, &next); + +#ifdef XML_DTD + if (! accountingDiffTolerated(parser, tok, entityTextPtr, next, __LINE__, + account)) { + accountingOnAbort(parser); + result = XML_ERROR_AMPLIFICATION_LIMIT_BREACH; + goto endEntityValue; + } +#endif + + switch (tok) { + case XML_TOK_PARAM_ENTITY_REF: +#ifdef XML_DTD + if (parser->m_isParamEntity || enc != parser->m_encoding) { + const XML_Char *name; + ENTITY *entity; + name = poolStoreString(&parser->m_tempPool, enc, + entityTextPtr + enc->minBytesPerChar, + next - enc->minBytesPerChar); + if (! name) { + result = XML_ERROR_NO_MEMORY; + goto endEntityValue; + } + entity = (ENTITY *)lookup(parser, &dtd->paramEntities, name, 0); + poolDiscard(&parser->m_tempPool); + if (! entity) { + /* not a well-formedness error - see XML 1.0: WFC Entity Declared */ + /* cannot report skipped entity here - see comments on + parser->m_skippedEntityHandler + if (parser->m_skippedEntityHandler) + parser->m_skippedEntityHandler(parser->m_handlerArg, name, 0); + */ + dtd->keepProcessing = dtd->standalone; + goto endEntityValue; + } + if (entity->open) { + if (enc == parser->m_encoding) + parser->m_eventPtr = entityTextPtr; + result = XML_ERROR_RECURSIVE_ENTITY_REF; + goto endEntityValue; + } + if (entity->systemId) { + if (parser->m_externalEntityRefHandler) { + dtd->paramEntityRead = XML_FALSE; + entity->open = XML_TRUE; + entityTrackingOnOpen(parser, entity, __LINE__); + if (! parser->m_externalEntityRefHandler( + parser->m_externalEntityRefHandlerArg, 0, entity->base, + entity->systemId, entity->publicId)) { + entityTrackingOnClose(parser, entity, __LINE__); + entity->open = XML_FALSE; + result = XML_ERROR_EXTERNAL_ENTITY_HANDLING; + goto endEntityValue; + } + entityTrackingOnClose(parser, entity, __LINE__); + entity->open = XML_FALSE; + if (! dtd->paramEntityRead) + dtd->keepProcessing = dtd->standalone; + } else + dtd->keepProcessing = dtd->standalone; + } else { + entity->open = XML_TRUE; + entityTrackingOnOpen(parser, entity, __LINE__); + result = storeEntityValue( + parser, parser->m_internalEncoding, (const char *)entity->textPtr, + (const char *)(entity->textPtr + entity->textLen), + XML_ACCOUNT_ENTITY_EXPANSION); + entityTrackingOnClose(parser, entity, __LINE__); + entity->open = XML_FALSE; + if (result) + goto endEntityValue; + } + break; + } +#endif /* XML_DTD */ + /* In the internal subset, PE references are not legal + within markup declarations, e.g entity values in this case. */ + parser->m_eventPtr = entityTextPtr; + result = XML_ERROR_PARAM_ENTITY_REF; + goto endEntityValue; + case XML_TOK_NONE: + result = XML_ERROR_NONE; + goto endEntityValue; + case XML_TOK_ENTITY_REF: + case XML_TOK_DATA_CHARS: + if (! poolAppend(pool, enc, entityTextPtr, next)) { + result = XML_ERROR_NO_MEMORY; + goto endEntityValue; + } + break; + case XML_TOK_TRAILING_CR: + next = entityTextPtr + enc->minBytesPerChar; + /* fall through */ + case XML_TOK_DATA_NEWLINE: + if (pool->end == pool->ptr && ! poolGrow(pool)) { + result = XML_ERROR_NO_MEMORY; + goto endEntityValue; + } + *(pool->ptr)++ = 0xA; + break; + case XML_TOK_CHAR_REF: { + XML_Char buf[XML_ENCODE_MAX]; + int i; + int n = XmlCharRefNumber(enc, entityTextPtr); + if (n < 0) { + if (enc == parser->m_encoding) + parser->m_eventPtr = entityTextPtr; + result = XML_ERROR_BAD_CHAR_REF; + goto endEntityValue; + } + n = XmlEncode(n, (ICHAR *)buf); + /* The XmlEncode() functions can never return 0 here. That + * error return happens if the code point passed in is either + * negative or greater than or equal to 0x110000. The + * XmlCharRefNumber() functions will all return a number + * strictly less than 0x110000 or a negative value if an error + * occurred. The negative value is intercepted above, so + * XmlEncode() is never passed a value it might return an + * error for. + */ + for (i = 0; i < n; i++) { + if (pool->end == pool->ptr && ! poolGrow(pool)) { + result = XML_ERROR_NO_MEMORY; + goto endEntityValue; + } + *(pool->ptr)++ = buf[i]; + } + } break; + case XML_TOK_PARTIAL: + if (enc == parser->m_encoding) + parser->m_eventPtr = entityTextPtr; + result = XML_ERROR_INVALID_TOKEN; + goto endEntityValue; + case XML_TOK_INVALID: + if (enc == parser->m_encoding) + parser->m_eventPtr = next; + result = XML_ERROR_INVALID_TOKEN; + goto endEntityValue; + default: + /* This default case should be unnecessary -- all the tokens + * that XmlEntityValueTok() can return have their own explicit + * cases -- but should be retained for safety. We do however + * exclude it from the coverage statistics. + * + * LCOV_EXCL_START + */ + if (enc == parser->m_encoding) + parser->m_eventPtr = entityTextPtr; + result = XML_ERROR_UNEXPECTED_STATE; + goto endEntityValue; + /* LCOV_EXCL_STOP */ + } + entityTextPtr = next; + } +endEntityValue: +#ifdef XML_DTD + parser->m_prologState.inEntityValue = oldInEntityValue; +#endif /* XML_DTD */ + return result; +} + +static void FASTCALL +normalizeLines(XML_Char *s) { + XML_Char *p; + for (;; s++) { + if (*s == XML_T('\0')) + return; + if (*s == 0xD) + break; + } + p = s; + do { + if (*s == 0xD) { + *p++ = 0xA; + if (*++s == 0xA) + s++; + } else + *p++ = *s++; + } while (*s); + *p = XML_T('\0'); +} + +static int +reportProcessingInstruction(XML_Parser parser, const ENCODING *enc, + const char *start, const char *end) { + const XML_Char *target; + XML_Char *data; + const char *tem; + if (! parser->m_processingInstructionHandler) { + if (parser->m_defaultHandler) + reportDefault(parser, enc, start, end); + return 1; + } + start += enc->minBytesPerChar * 2; + tem = start + XmlNameLength(enc, start); + target = poolStoreString(&parser->m_tempPool, enc, start, tem); + if (! target) + return 0; + poolFinish(&parser->m_tempPool); + data = poolStoreString(&parser->m_tempPool, enc, XmlSkipS(enc, tem), + end - enc->minBytesPerChar * 2); + if (! data) + return 0; + normalizeLines(data); + parser->m_processingInstructionHandler(parser->m_handlerArg, target, data); + poolClear(&parser->m_tempPool); + return 1; +} + +static int +reportComment(XML_Parser parser, const ENCODING *enc, const char *start, + const char *end) { + XML_Char *data; + if (! parser->m_commentHandler) { + if (parser->m_defaultHandler) + reportDefault(parser, enc, start, end); + return 1; + } + data = poolStoreString(&parser->m_tempPool, enc, + start + enc->minBytesPerChar * 4, + end - enc->minBytesPerChar * 3); + if (! data) + return 0; + normalizeLines(data); + parser->m_commentHandler(parser->m_handlerArg, data); + poolClear(&parser->m_tempPool); + return 1; +} + +static void +reportDefault(XML_Parser parser, const ENCODING *enc, const char *s, + const char *end) { + if (MUST_CONVERT(enc, s)) { + enum XML_Convert_Result convert_res; + const char **eventPP; + const char **eventEndPP; + if (enc == parser->m_encoding) { + eventPP = &parser->m_eventPtr; + eventEndPP = &parser->m_eventEndPtr; + } else { + /* To get here, two things must be true; the parser must be + * using a character encoding that is not the same as the + * encoding passed in, and the encoding passed in must need + * conversion to the internal format (UTF-8 unless XML_UNICODE + * is defined). The only occasions on which the encoding passed + * in is not the same as the parser's encoding are when it is + * the internal encoding (e.g. a previously defined parameter + * entity, already converted to internal format). This by + * definition doesn't need conversion, so the whole branch never + * gets executed. + * + * For safety's sake we don't delete these lines and merely + * exclude them from coverage statistics. + * + * LCOV_EXCL_START + */ + eventPP = &(parser->m_openInternalEntities->internalEventPtr); + eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); + /* LCOV_EXCL_STOP */ + } + do { + ICHAR *dataPtr = (ICHAR *)parser->m_dataBuf; + convert_res + = XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)parser->m_dataBufEnd); + *eventEndPP = s; + parser->m_defaultHandler(parser->m_handlerArg, parser->m_dataBuf, + (int)(dataPtr - (ICHAR *)parser->m_dataBuf)); + *eventPP = s; + } while ((convert_res != XML_CONVERT_COMPLETED) + && (convert_res != XML_CONVERT_INPUT_INCOMPLETE)); + } else + parser->m_defaultHandler(parser->m_handlerArg, (XML_Char *)s, + (int)((XML_Char *)end - (XML_Char *)s)); +} + +static int +defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool isCdata, + XML_Bool isId, const XML_Char *value, XML_Parser parser) { + DEFAULT_ATTRIBUTE *att; + if (value || isId) { + /* The handling of default attributes gets messed up if we have + a default which duplicates a non-default. */ + int i; + for (i = 0; i < type->nDefaultAtts; i++) + if (attId == type->defaultAtts[i].id) + return 1; + if (isId && ! type->idAtt && ! attId->xmlns) + type->idAtt = attId; + } + if (type->nDefaultAtts == type->allocDefaultAtts) { + if (type->allocDefaultAtts == 0) { + type->allocDefaultAtts = 8; + type->defaultAtts = (DEFAULT_ATTRIBUTE *)MALLOC( + parser, type->allocDefaultAtts * sizeof(DEFAULT_ATTRIBUTE)); + if (! type->defaultAtts) { + type->allocDefaultAtts = 0; + return 0; + } + } else { + DEFAULT_ATTRIBUTE *temp; + + /* Detect and prevent integer overflow */ + if (type->allocDefaultAtts > INT_MAX / 2) { + return 0; + } + + int count = type->allocDefaultAtts * 2; + + /* Detect and prevent integer overflow. + * The preprocessor guard addresses the "always false" warning + * from -Wtype-limits on platforms where + * sizeof(unsigned int) < sizeof(size_t), e.g. on x86_64. */ +#if UINT_MAX >= SIZE_MAX + if ((unsigned)count > (size_t)(-1) / sizeof(DEFAULT_ATTRIBUTE)) { + return 0; + } +#endif + + temp = (DEFAULT_ATTRIBUTE *)REALLOC(parser, type->defaultAtts, + (count * sizeof(DEFAULT_ATTRIBUTE))); + if (temp == NULL) + return 0; + type->allocDefaultAtts = count; + type->defaultAtts = temp; + } + } + att = type->defaultAtts + type->nDefaultAtts; + att->id = attId; + att->value = value; + att->isCdata = isCdata; + if (! isCdata) + attId->maybeTokenized = XML_TRUE; + type->nDefaultAtts += 1; + return 1; +} + +static int +setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType) { + DTD *const dtd = parser->m_dtd; /* save one level of indirection */ + const XML_Char *name; + for (name = elementType->name; *name; name++) { + if (*name == XML_T(ASCII_COLON)) { + PREFIX *prefix; + const XML_Char *s; + for (s = elementType->name; s != name; s++) { + if (! poolAppendChar(&dtd->pool, *s)) + return 0; + } + if (! poolAppendChar(&dtd->pool, XML_T('\0'))) + return 0; + prefix = (PREFIX *)lookup(parser, &dtd->prefixes, poolStart(&dtd->pool), + sizeof(PREFIX)); + if (! prefix) + return 0; + if (prefix->name == poolStart(&dtd->pool)) + poolFinish(&dtd->pool); + else + poolDiscard(&dtd->pool); + elementType->prefix = prefix; + break; + } + } + return 1; +} + +static ATTRIBUTE_ID * +getAttributeId(XML_Parser parser, const ENCODING *enc, const char *start, + const char *end) { + DTD *const dtd = parser->m_dtd; /* save one level of indirection */ + ATTRIBUTE_ID *id; + const XML_Char *name; + if (! poolAppendChar(&dtd->pool, XML_T('\0'))) + return NULL; + name = poolStoreString(&dtd->pool, enc, start, end); + if (! name) + return NULL; + /* skip quotation mark - its storage will be re-used (like in name[-1]) */ + ++name; + id = (ATTRIBUTE_ID *)lookup(parser, &dtd->attributeIds, name, + sizeof(ATTRIBUTE_ID)); + if (! id) + return NULL; + if (id->name != name) + poolDiscard(&dtd->pool); + else { + poolFinish(&dtd->pool); + if (! parser->m_ns) + ; + else if (name[0] == XML_T(ASCII_x) && name[1] == XML_T(ASCII_m) + && name[2] == XML_T(ASCII_l) && name[3] == XML_T(ASCII_n) + && name[4] == XML_T(ASCII_s) + && (name[5] == XML_T('\0') || name[5] == XML_T(ASCII_COLON))) { + if (name[5] == XML_T('\0')) + id->prefix = &dtd->defaultPrefix; + else + id->prefix = (PREFIX *)lookup(parser, &dtd->prefixes, name + 6, + sizeof(PREFIX)); + id->xmlns = XML_TRUE; + } else { + int i; + for (i = 0; name[i]; i++) { + /* attributes without prefix are *not* in the default namespace */ + if (name[i] == XML_T(ASCII_COLON)) { + int j; + for (j = 0; j < i; j++) { + if (! poolAppendChar(&dtd->pool, name[j])) + return NULL; + } + if (! poolAppendChar(&dtd->pool, XML_T('\0'))) + return NULL; + id->prefix = (PREFIX *)lookup(parser, &dtd->prefixes, + poolStart(&dtd->pool), sizeof(PREFIX)); + if (! id->prefix) + return NULL; + if (id->prefix->name == poolStart(&dtd->pool)) + poolFinish(&dtd->pool); + else + poolDiscard(&dtd->pool); + break; + } + } + } + } + return id; +} + +#define CONTEXT_SEP XML_T(ASCII_FF) + +static const XML_Char * +getContext(XML_Parser parser) { + DTD *const dtd = parser->m_dtd; /* save one level of indirection */ + HASH_TABLE_ITER iter; + XML_Bool needSep = XML_FALSE; + + if (dtd->defaultPrefix.binding) { + int i; + int len; + if (! poolAppendChar(&parser->m_tempPool, XML_T(ASCII_EQUALS))) + return NULL; + len = dtd->defaultPrefix.binding->uriLen; + if (parser->m_namespaceSeparator) + len--; + for (i = 0; i < len; i++) { + if (! poolAppendChar(&parser->m_tempPool, + dtd->defaultPrefix.binding->uri[i])) { + /* Because of memory caching, I don't believe this line can be + * executed. + * + * This is part of a loop copying the default prefix binding + * URI into the parser's temporary string pool. Previously, + * that URI was copied into the same string pool, with a + * terminating NUL character, as part of setContext(). When + * the pool was cleared, that leaves a block definitely big + * enough to hold the URI on the free block list of the pool. + * The URI copy in getContext() therefore cannot run out of + * memory. + * + * If the pool is used between the setContext() and + * getContext() calls, the worst it can do is leave a bigger + * block on the front of the free list. Given that this is + * all somewhat inobvious and program logic can be changed, we + * don't delete the line but we do exclude it from the test + * coverage statistics. + */ + return NULL; /* LCOV_EXCL_LINE */ + } + } + needSep = XML_TRUE; + } + + hashTableIterInit(&iter, &(dtd->prefixes)); + for (;;) { + int i; + int len; + const XML_Char *s; + PREFIX *prefix = (PREFIX *)hashTableIterNext(&iter); + if (! prefix) + break; + if (! prefix->binding) { + /* This test appears to be (justifiable) paranoia. There does + * not seem to be a way of injecting a prefix without a binding + * that doesn't get errored long before this function is called. + * The test should remain for safety's sake, so we instead + * exclude the following line from the coverage statistics. + */ + continue; /* LCOV_EXCL_LINE */ + } + if (needSep && ! poolAppendChar(&parser->m_tempPool, CONTEXT_SEP)) + return NULL; + for (s = prefix->name; *s; s++) + if (! poolAppendChar(&parser->m_tempPool, *s)) + return NULL; + if (! poolAppendChar(&parser->m_tempPool, XML_T(ASCII_EQUALS))) + return NULL; + len = prefix->binding->uriLen; + if (parser->m_namespaceSeparator) + len--; + for (i = 0; i < len; i++) + if (! poolAppendChar(&parser->m_tempPool, prefix->binding->uri[i])) + return NULL; + needSep = XML_TRUE; + } + + hashTableIterInit(&iter, &(dtd->generalEntities)); + for (;;) { + const XML_Char *s; + ENTITY *e = (ENTITY *)hashTableIterNext(&iter); + if (! e) + break; + if (! e->open) + continue; + if (needSep && ! poolAppendChar(&parser->m_tempPool, CONTEXT_SEP)) + return NULL; + for (s = e->name; *s; s++) + if (! poolAppendChar(&parser->m_tempPool, *s)) + return 0; + needSep = XML_TRUE; + } + + if (! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) + return NULL; + return parser->m_tempPool.start; +} + +static XML_Bool +setContext(XML_Parser parser, const XML_Char *context) { + DTD *const dtd = parser->m_dtd; /* save one level of indirection */ + const XML_Char *s = context; + + while (*context != XML_T('\0')) { + if (*s == CONTEXT_SEP || *s == XML_T('\0')) { + ENTITY *e; + if (! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) + return XML_FALSE; + e = (ENTITY *)lookup(parser, &dtd->generalEntities, + poolStart(&parser->m_tempPool), 0); + if (e) + e->open = XML_TRUE; + if (*s != XML_T('\0')) + s++; + context = s; + poolDiscard(&parser->m_tempPool); + } else if (*s == XML_T(ASCII_EQUALS)) { + PREFIX *prefix; + if (poolLength(&parser->m_tempPool) == 0) + prefix = &dtd->defaultPrefix; + else { + if (! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) + return XML_FALSE; + prefix + = (PREFIX *)lookup(parser, &dtd->prefixes, + poolStart(&parser->m_tempPool), sizeof(PREFIX)); + if (! prefix) + return XML_FALSE; + if (prefix->name == poolStart(&parser->m_tempPool)) { + prefix->name = poolCopyString(&dtd->pool, prefix->name); + if (! prefix->name) + return XML_FALSE; + } + poolDiscard(&parser->m_tempPool); + } + for (context = s + 1; *context != CONTEXT_SEP && *context != XML_T('\0'); + context++) + if (! poolAppendChar(&parser->m_tempPool, *context)) + return XML_FALSE; + if (! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) + return XML_FALSE; + if (addBinding(parser, prefix, NULL, poolStart(&parser->m_tempPool), + &parser->m_inheritedBindings) + != XML_ERROR_NONE) + return XML_FALSE; + poolDiscard(&parser->m_tempPool); + if (*context != XML_T('\0')) + ++context; + s = context; + } else { + if (! poolAppendChar(&parser->m_tempPool, *s)) + return XML_FALSE; + s++; + } + } + return XML_TRUE; +} + +static void FASTCALL +normalizePublicId(XML_Char *publicId) { + XML_Char *p = publicId; + XML_Char *s; + for (s = publicId; *s; s++) { + switch (*s) { + case 0x20: + case 0xD: + case 0xA: + if (p != publicId && p[-1] != 0x20) + *p++ = 0x20; + break; + default: + *p++ = *s; + } + } + if (p != publicId && p[-1] == 0x20) + --p; + *p = XML_T('\0'); +} + +static DTD * +dtdCreate(const XML_Memory_Handling_Suite *ms) { + DTD *p = ms->malloc_fcn(sizeof(DTD)); + if (p == NULL) + return p; + poolInit(&(p->pool), ms); + poolInit(&(p->entityValuePool), ms); + hashTableInit(&(p->generalEntities), ms); + hashTableInit(&(p->elementTypes), ms); + hashTableInit(&(p->attributeIds), ms); + hashTableInit(&(p->prefixes), ms); +#ifdef XML_DTD + p->paramEntityRead = XML_FALSE; + hashTableInit(&(p->paramEntities), ms); +#endif /* XML_DTD */ + p->defaultPrefix.name = NULL; + p->defaultPrefix.binding = NULL; + + p->in_eldecl = XML_FALSE; + p->scaffIndex = NULL; + p->scaffold = NULL; + p->scaffLevel = 0; + p->scaffSize = 0; + p->scaffCount = 0; + p->contentStringLen = 0; + + p->keepProcessing = XML_TRUE; + p->hasParamEntityRefs = XML_FALSE; + p->standalone = XML_FALSE; + return p; +} + +static void +dtdReset(DTD *p, const XML_Memory_Handling_Suite *ms) { + HASH_TABLE_ITER iter; + hashTableIterInit(&iter, &(p->elementTypes)); + for (;;) { + ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter); + if (! e) + break; + if (e->allocDefaultAtts != 0) + ms->free_fcn(e->defaultAtts); + } + hashTableClear(&(p->generalEntities)); +#ifdef XML_DTD + p->paramEntityRead = XML_FALSE; + hashTableClear(&(p->paramEntities)); +#endif /* XML_DTD */ + hashTableClear(&(p->elementTypes)); + hashTableClear(&(p->attributeIds)); + hashTableClear(&(p->prefixes)); + poolClear(&(p->pool)); + poolClear(&(p->entityValuePool)); + p->defaultPrefix.name = NULL; + p->defaultPrefix.binding = NULL; + + p->in_eldecl = XML_FALSE; + + ms->free_fcn(p->scaffIndex); + p->scaffIndex = NULL; + ms->free_fcn(p->scaffold); + p->scaffold = NULL; + + p->scaffLevel = 0; + p->scaffSize = 0; + p->scaffCount = 0; + p->contentStringLen = 0; + + p->keepProcessing = XML_TRUE; + p->hasParamEntityRefs = XML_FALSE; + p->standalone = XML_FALSE; +} + +static void +dtdDestroy(DTD *p, XML_Bool isDocEntity, const XML_Memory_Handling_Suite *ms) { + HASH_TABLE_ITER iter; + hashTableIterInit(&iter, &(p->elementTypes)); + for (;;) { + ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter); + if (! e) + break; + if (e->allocDefaultAtts != 0) + ms->free_fcn(e->defaultAtts); + } + hashTableDestroy(&(p->generalEntities)); +#ifdef XML_DTD + hashTableDestroy(&(p->paramEntities)); +#endif /* XML_DTD */ + hashTableDestroy(&(p->elementTypes)); + hashTableDestroy(&(p->attributeIds)); + hashTableDestroy(&(p->prefixes)); + poolDestroy(&(p->pool)); + poolDestroy(&(p->entityValuePool)); + if (isDocEntity) { + ms->free_fcn(p->scaffIndex); + ms->free_fcn(p->scaffold); + } + ms->free_fcn(p); +} + +/* Do a deep copy of the DTD. Return 0 for out of memory, non-zero otherwise. + The new DTD has already been initialized. +*/ +static int +dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd, + const XML_Memory_Handling_Suite *ms) { + HASH_TABLE_ITER iter; + + /* Copy the prefix table. */ + + hashTableIterInit(&iter, &(oldDtd->prefixes)); + for (;;) { + const XML_Char *name; + const PREFIX *oldP = (PREFIX *)hashTableIterNext(&iter); + if (! oldP) + break; + name = poolCopyString(&(newDtd->pool), oldP->name); + if (! name) + return 0; + if (! lookup(oldParser, &(newDtd->prefixes), name, sizeof(PREFIX))) + return 0; + } + + hashTableIterInit(&iter, &(oldDtd->attributeIds)); + + /* Copy the attribute id table. */ + + for (;;) { + ATTRIBUTE_ID *newA; + const XML_Char *name; + const ATTRIBUTE_ID *oldA = (ATTRIBUTE_ID *)hashTableIterNext(&iter); + + if (! oldA) + break; + /* Remember to allocate the scratch byte before the name. */ + if (! poolAppendChar(&(newDtd->pool), XML_T('\0'))) + return 0; + name = poolCopyString(&(newDtd->pool), oldA->name); + if (! name) + return 0; + ++name; + newA = (ATTRIBUTE_ID *)lookup(oldParser, &(newDtd->attributeIds), name, + sizeof(ATTRIBUTE_ID)); + if (! newA) + return 0; + newA->maybeTokenized = oldA->maybeTokenized; + if (oldA->prefix) { + newA->xmlns = oldA->xmlns; + if (oldA->prefix == &oldDtd->defaultPrefix) + newA->prefix = &newDtd->defaultPrefix; + else + newA->prefix = (PREFIX *)lookup(oldParser, &(newDtd->prefixes), + oldA->prefix->name, 0); + } + } + + /* Copy the element type table. */ + + hashTableIterInit(&iter, &(oldDtd->elementTypes)); + + for (;;) { + int i; + ELEMENT_TYPE *newE; + const XML_Char *name; + const ELEMENT_TYPE *oldE = (ELEMENT_TYPE *)hashTableIterNext(&iter); + if (! oldE) + break; + name = poolCopyString(&(newDtd->pool), oldE->name); + if (! name) + return 0; + newE = (ELEMENT_TYPE *)lookup(oldParser, &(newDtd->elementTypes), name, + sizeof(ELEMENT_TYPE)); + if (! newE) + return 0; + if (oldE->nDefaultAtts) { + newE->defaultAtts + = ms->malloc_fcn(oldE->nDefaultAtts * sizeof(DEFAULT_ATTRIBUTE)); + if (! newE->defaultAtts) { + return 0; + } + } + if (oldE->idAtt) + newE->idAtt = (ATTRIBUTE_ID *)lookup(oldParser, &(newDtd->attributeIds), + oldE->idAtt->name, 0); + newE->allocDefaultAtts = newE->nDefaultAtts = oldE->nDefaultAtts; + if (oldE->prefix) + newE->prefix = (PREFIX *)lookup(oldParser, &(newDtd->prefixes), + oldE->prefix->name, 0); + for (i = 0; i < newE->nDefaultAtts; i++) { + newE->defaultAtts[i].id = (ATTRIBUTE_ID *)lookup( + oldParser, &(newDtd->attributeIds), oldE->defaultAtts[i].id->name, 0); + newE->defaultAtts[i].isCdata = oldE->defaultAtts[i].isCdata; + if (oldE->defaultAtts[i].value) { + newE->defaultAtts[i].value + = poolCopyString(&(newDtd->pool), oldE->defaultAtts[i].value); + if (! newE->defaultAtts[i].value) + return 0; + } else + newE->defaultAtts[i].value = NULL; + } + } + + /* Copy the entity tables. */ + if (! copyEntityTable(oldParser, &(newDtd->generalEntities), &(newDtd->pool), + &(oldDtd->generalEntities))) + return 0; + +#ifdef XML_DTD + if (! copyEntityTable(oldParser, &(newDtd->paramEntities), &(newDtd->pool), + &(oldDtd->paramEntities))) + return 0; + newDtd->paramEntityRead = oldDtd->paramEntityRead; +#endif /* XML_DTD */ + + newDtd->keepProcessing = oldDtd->keepProcessing; + newDtd->hasParamEntityRefs = oldDtd->hasParamEntityRefs; + newDtd->standalone = oldDtd->standalone; + + /* Don't want deep copying for scaffolding */ + newDtd->in_eldecl = oldDtd->in_eldecl; + newDtd->scaffold = oldDtd->scaffold; + newDtd->contentStringLen = oldDtd->contentStringLen; + newDtd->scaffSize = oldDtd->scaffSize; + newDtd->scaffLevel = oldDtd->scaffLevel; + newDtd->scaffIndex = oldDtd->scaffIndex; + + return 1; +} /* End dtdCopy */ + +static int +copyEntityTable(XML_Parser oldParser, HASH_TABLE *newTable, + STRING_POOL *newPool, const HASH_TABLE *oldTable) { + HASH_TABLE_ITER iter; + const XML_Char *cachedOldBase = NULL; + const XML_Char *cachedNewBase = NULL; + + hashTableIterInit(&iter, oldTable); + + for (;;) { + ENTITY *newE; + const XML_Char *name; + const ENTITY *oldE = (ENTITY *)hashTableIterNext(&iter); + if (! oldE) + break; + name = poolCopyString(newPool, oldE->name); + if (! name) + return 0; + newE = (ENTITY *)lookup(oldParser, newTable, name, sizeof(ENTITY)); + if (! newE) + return 0; + if (oldE->systemId) { + const XML_Char *tem = poolCopyString(newPool, oldE->systemId); + if (! tem) + return 0; + newE->systemId = tem; + if (oldE->base) { + if (oldE->base == cachedOldBase) + newE->base = cachedNewBase; + else { + cachedOldBase = oldE->base; + tem = poolCopyString(newPool, cachedOldBase); + if (! tem) + return 0; + cachedNewBase = newE->base = tem; + } + } + if (oldE->publicId) { + tem = poolCopyString(newPool, oldE->publicId); + if (! tem) + return 0; + newE->publicId = tem; + } + } else { + const XML_Char *tem + = poolCopyStringN(newPool, oldE->textPtr, oldE->textLen); + if (! tem) + return 0; + newE->textPtr = tem; + newE->textLen = oldE->textLen; + } + if (oldE->notation) { + const XML_Char *tem = poolCopyString(newPool, oldE->notation); + if (! tem) + return 0; + newE->notation = tem; + } + newE->is_param = oldE->is_param; + newE->is_internal = oldE->is_internal; + } + return 1; +} + +#define INIT_POWER 6 + +static XML_Bool FASTCALL +keyeq(KEY s1, KEY s2) { + for (; *s1 == *s2; s1++, s2++) + if (*s1 == 0) + return XML_TRUE; + return XML_FALSE; +} + +static size_t +keylen(KEY s) { + size_t len = 0; + for (; *s; s++, len++) + ; + return len; +} + +static void +copy_salt_to_sipkey(XML_Parser parser, struct sipkey *key) { + key->k[0] = 0; + key->k[1] = get_hash_secret_salt(parser); +} + +static unsigned long FASTCALL +hash(XML_Parser parser, KEY s) { + struct siphash state; + struct sipkey key; + (void)sip24_valid; + copy_salt_to_sipkey(parser, &key); + sip24_init(&state, &key); + sip24_update(&state, s, keylen(s) * sizeof(XML_Char)); + return (unsigned long)sip24_final(&state); +} + +static NAMED * +lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize) { + size_t i; + if (table->size == 0) { + size_t tsize; + if (! createSize) + return NULL; + table->power = INIT_POWER; + /* table->size is a power of 2 */ + table->size = (size_t)1 << INIT_POWER; + tsize = table->size * sizeof(NAMED *); + table->v = table->mem->malloc_fcn(tsize); + if (! table->v) { + table->size = 0; + return NULL; + } + memset(table->v, 0, tsize); + i = hash(parser, name) & ((unsigned long)table->size - 1); + } else { + unsigned long h = hash(parser, name); + unsigned long mask = (unsigned long)table->size - 1; + unsigned char step = 0; + i = h & mask; + while (table->v[i]) { + if (keyeq(name, table->v[i]->name)) + return table->v[i]; + if (! step) + step = PROBE_STEP(h, mask, table->power); + i < step ? (i += table->size - step) : (i -= step); + } + if (! createSize) + return NULL; + + /* check for overflow (table is half full) */ + if (table->used >> (table->power - 1)) { + unsigned char newPower = table->power + 1; + + /* Detect and prevent invalid shift */ + if (newPower >= sizeof(unsigned long) * 8 /* bits per byte */) { + return NULL; + } + + size_t newSize = (size_t)1 << newPower; + unsigned long newMask = (unsigned long)newSize - 1; + + /* Detect and prevent integer overflow */ + if (newSize > (size_t)(-1) / sizeof(NAMED *)) { + return NULL; + } + + size_t tsize = newSize * sizeof(NAMED *); + NAMED **newV = table->mem->malloc_fcn(tsize); + if (! newV) + return NULL; + memset(newV, 0, tsize); + for (i = 0; i < table->size; i++) + if (table->v[i]) { + unsigned long newHash = hash(parser, table->v[i]->name); + size_t j = newHash & newMask; + step = 0; + while (newV[j]) { + if (! step) + step = PROBE_STEP(newHash, newMask, newPower); + j < step ? (j += newSize - step) : (j -= step); + } + newV[j] = table->v[i]; + } + table->mem->free_fcn(table->v); + table->v = newV; + table->power = newPower; + table->size = newSize; + i = h & newMask; + step = 0; + while (table->v[i]) { + if (! step) + step = PROBE_STEP(h, newMask, newPower); + i < step ? (i += newSize - step) : (i -= step); + } + } + } + table->v[i] = table->mem->malloc_fcn(createSize); + if (! table->v[i]) + return NULL; + memset(table->v[i], 0, createSize); + table->v[i]->name = name; + (table->used)++; + return table->v[i]; +} + +static void FASTCALL +hashTableClear(HASH_TABLE *table) { + size_t i; + for (i = 0; i < table->size; i++) { + table->mem->free_fcn(table->v[i]); + table->v[i] = NULL; + } + table->used = 0; +} + +static void FASTCALL +hashTableDestroy(HASH_TABLE *table) { + size_t i; + for (i = 0; i < table->size; i++) + table->mem->free_fcn(table->v[i]); + table->mem->free_fcn(table->v); +} + +static void FASTCALL +hashTableInit(HASH_TABLE *p, const XML_Memory_Handling_Suite *ms) { + p->power = 0; + p->size = 0; + p->used = 0; + p->v = NULL; + p->mem = ms; +} + +static void FASTCALL +hashTableIterInit(HASH_TABLE_ITER *iter, const HASH_TABLE *table) { + iter->p = table->v; + iter->end = iter->p ? iter->p + table->size : NULL; +} + +static NAMED *FASTCALL +hashTableIterNext(HASH_TABLE_ITER *iter) { + while (iter->p != iter->end) { + NAMED *tem = *(iter->p)++; + if (tem) + return tem; + } + return NULL; +} + +static void FASTCALL +poolInit(STRING_POOL *pool, const XML_Memory_Handling_Suite *ms) { + pool->blocks = NULL; + pool->freeBlocks = NULL; + pool->start = NULL; + pool->ptr = NULL; + pool->end = NULL; + pool->mem = ms; +} + +static void FASTCALL +poolClear(STRING_POOL *pool) { + if (! pool->freeBlocks) + pool->freeBlocks = pool->blocks; + else { + BLOCK *p = pool->blocks; + while (p) { + BLOCK *tem = p->next; + p->next = pool->freeBlocks; + pool->freeBlocks = p; + p = tem; + } + } + pool->blocks = NULL; + pool->start = NULL; + pool->ptr = NULL; + pool->end = NULL; +} + +static void FASTCALL +poolDestroy(STRING_POOL *pool) { + BLOCK *p = pool->blocks; + while (p) { + BLOCK *tem = p->next; + pool->mem->free_fcn(p); + p = tem; + } + p = pool->freeBlocks; + while (p) { + BLOCK *tem = p->next; + pool->mem->free_fcn(p); + p = tem; + } +} + +static XML_Char * +poolAppend(STRING_POOL *pool, const ENCODING *enc, const char *ptr, + const char *end) { + if (! pool->ptr && ! poolGrow(pool)) + return NULL; + for (;;) { + const enum XML_Convert_Result convert_res = XmlConvert( + enc, &ptr, end, (ICHAR **)&(pool->ptr), (ICHAR *)pool->end); + if ((convert_res == XML_CONVERT_COMPLETED) + || (convert_res == XML_CONVERT_INPUT_INCOMPLETE)) + break; + if (! poolGrow(pool)) + return NULL; + } + return pool->start; +} + +static const XML_Char *FASTCALL +poolCopyString(STRING_POOL *pool, const XML_Char *s) { + do { + if (! poolAppendChar(pool, *s)) + return NULL; + } while (*s++); + s = pool->start; + poolFinish(pool); + return s; +} + +static const XML_Char * +poolCopyStringN(STRING_POOL *pool, const XML_Char *s, int n) { + if (! pool->ptr && ! poolGrow(pool)) { + /* The following line is unreachable given the current usage of + * poolCopyStringN(). Currently it is called from exactly one + * place to copy the text of a simple general entity. By that + * point, the name of the entity is already stored in the pool, so + * pool->ptr cannot be NULL. + * + * If poolCopyStringN() is used elsewhere as it well might be, + * this line may well become executable again. Regardless, this + * sort of check shouldn't be removed lightly, so we just exclude + * it from the coverage statistics. + */ + return NULL; /* LCOV_EXCL_LINE */ + } + for (; n > 0; --n, s++) { + if (! poolAppendChar(pool, *s)) + return NULL; + } + s = pool->start; + poolFinish(pool); + return s; +} + +static const XML_Char *FASTCALL +poolAppendString(STRING_POOL *pool, const XML_Char *s) { + while (*s) { + if (! poolAppendChar(pool, *s)) + return NULL; + s++; + } + return pool->start; +} + +static XML_Char * +poolStoreString(STRING_POOL *pool, const ENCODING *enc, const char *ptr, + const char *end) { + if (! poolAppend(pool, enc, ptr, end)) + return NULL; + if (pool->ptr == pool->end && ! poolGrow(pool)) + return NULL; + *(pool->ptr)++ = 0; + return pool->start; +} + +static size_t +poolBytesToAllocateFor(int blockSize) { + /* Unprotected math would be: + ** return offsetof(BLOCK, s) + blockSize * sizeof(XML_Char); + ** + ** Detect overflow, avoiding _signed_ overflow undefined behavior + ** For a + b * c we check b * c in isolation first, so that addition of a + ** on top has no chance of making us accept a small non-negative number + */ + const size_t stretch = sizeof(XML_Char); /* can be 4 bytes */ + + if (blockSize <= 0) + return 0; + + if (blockSize > (int)(INT_MAX / stretch)) + return 0; + + { + const int stretchedBlockSize = blockSize * (int)stretch; + const int bytesToAllocate + = (int)(offsetof(BLOCK, s) + (unsigned)stretchedBlockSize); + if (bytesToAllocate < 0) + return 0; + + return (size_t)bytesToAllocate; + } +} + +static XML_Bool FASTCALL +poolGrow(STRING_POOL *pool) { + if (pool->freeBlocks) { + if (pool->start == 0) { + pool->blocks = pool->freeBlocks; + pool->freeBlocks = pool->freeBlocks->next; + pool->blocks->next = NULL; + pool->start = pool->blocks->s; + pool->end = pool->start + pool->blocks->size; + pool->ptr = pool->start; + return XML_TRUE; + } + if (pool->end - pool->start < pool->freeBlocks->size) { + BLOCK *tem = pool->freeBlocks->next; + pool->freeBlocks->next = pool->blocks; + pool->blocks = pool->freeBlocks; + pool->freeBlocks = tem; + memcpy(pool->blocks->s, pool->start, + (pool->end - pool->start) * sizeof(XML_Char)); + pool->ptr = pool->blocks->s + (pool->ptr - pool->start); + pool->start = pool->blocks->s; + pool->end = pool->start + pool->blocks->size; + return XML_TRUE; + } + } + if (pool->blocks && pool->start == pool->blocks->s) { + BLOCK *temp; + int blockSize = (int)((unsigned)(pool->end - pool->start) * 2U); + size_t bytesToAllocate; + + /* NOTE: Needs to be calculated prior to calling `realloc` + to avoid dangling pointers: */ + const ptrdiff_t offsetInsideBlock = pool->ptr - pool->start; + + if (blockSize < 0) { + /* This condition traps a situation where either more than + * INT_MAX/2 bytes have already been allocated. This isn't + * readily testable, since it is unlikely that an average + * machine will have that much memory, so we exclude it from the + * coverage statistics. + */ + return XML_FALSE; /* LCOV_EXCL_LINE */ + } + + bytesToAllocate = poolBytesToAllocateFor(blockSize); + if (bytesToAllocate == 0) + return XML_FALSE; + + temp = (BLOCK *)pool->mem->realloc_fcn(pool->blocks, + (unsigned)bytesToAllocate); + if (temp == NULL) + return XML_FALSE; + pool->blocks = temp; + pool->blocks->size = blockSize; + pool->ptr = pool->blocks->s + offsetInsideBlock; + pool->start = pool->blocks->s; + pool->end = pool->start + blockSize; + } else { + BLOCK *tem; + int blockSize = (int)(pool->end - pool->start); + size_t bytesToAllocate; + + if (blockSize < 0) { + /* This condition traps a situation where either more than + * INT_MAX bytes have already been allocated (which is prevented + * by various pieces of program logic, not least this one, never + * mind the unlikelihood of actually having that much memory) or + * the pool control fields have been corrupted (which could + * conceivably happen in an extremely buggy user handler + * function). Either way it isn't readily testable, so we + * exclude it from the coverage statistics. + */ + return XML_FALSE; /* LCOV_EXCL_LINE */ + } + + if (blockSize < INIT_BLOCK_SIZE) + blockSize = INIT_BLOCK_SIZE; + else { + /* Detect overflow, avoiding _signed_ overflow undefined behavior */ + if ((int)((unsigned)blockSize * 2U) < 0) { + return XML_FALSE; + } + blockSize *= 2; + } + + bytesToAllocate = poolBytesToAllocateFor(blockSize); + if (bytesToAllocate == 0) + return XML_FALSE; + + tem = pool->mem->malloc_fcn(bytesToAllocate); + if (! tem) + return XML_FALSE; + tem->size = blockSize; + tem->next = pool->blocks; + pool->blocks = tem; + if (pool->ptr != pool->start) + memcpy(tem->s, pool->start, (pool->ptr - pool->start) * sizeof(XML_Char)); + pool->ptr = tem->s + (pool->ptr - pool->start); + pool->start = tem->s; + pool->end = tem->s + blockSize; + } + return XML_TRUE; +} + +static int FASTCALL +nextScaffoldPart(XML_Parser parser) { + DTD *const dtd = parser->m_dtd; /* save one level of indirection */ + CONTENT_SCAFFOLD *me; + int next; + + if (! dtd->scaffIndex) { + dtd->scaffIndex = (int *)MALLOC(parser, parser->m_groupSize * sizeof(int)); + if (! dtd->scaffIndex) + return -1; + dtd->scaffIndex[0] = 0; + } + + if (dtd->scaffCount >= dtd->scaffSize) { + CONTENT_SCAFFOLD *temp; + if (dtd->scaffold) { + /* Detect and prevent integer overflow */ + if (dtd->scaffSize > UINT_MAX / 2u) { + return -1; + } + /* Detect and prevent integer overflow. + * The preprocessor guard addresses the "always false" warning + * from -Wtype-limits on platforms where + * sizeof(unsigned int) < sizeof(size_t), e.g. on x86_64. */ +#if UINT_MAX >= SIZE_MAX + if (dtd->scaffSize > (size_t)(-1) / 2u / sizeof(CONTENT_SCAFFOLD)) { + return -1; + } +#endif + + temp = (CONTENT_SCAFFOLD *)REALLOC( + parser, dtd->scaffold, dtd->scaffSize * 2 * sizeof(CONTENT_SCAFFOLD)); + if (temp == NULL) + return -1; + dtd->scaffSize *= 2; + } else { + temp = (CONTENT_SCAFFOLD *)MALLOC(parser, INIT_SCAFFOLD_ELEMENTS + * sizeof(CONTENT_SCAFFOLD)); + if (temp == NULL) + return -1; + dtd->scaffSize = INIT_SCAFFOLD_ELEMENTS; + } + dtd->scaffold = temp; + } + next = dtd->scaffCount++; + me = &dtd->scaffold[next]; + if (dtd->scaffLevel) { + CONTENT_SCAFFOLD *parent + = &dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel - 1]]; + if (parent->lastchild) { + dtd->scaffold[parent->lastchild].nextsib = next; + } + if (! parent->childcnt) + parent->firstchild = next; + parent->lastchild = next; + parent->childcnt++; + } + me->firstchild = me->lastchild = me->childcnt = me->nextsib = 0; + return next; +} + +static XML_Content * +build_model(XML_Parser parser) { + /* Function build_model transforms the existing parser->m_dtd->scaffold + * array of CONTENT_SCAFFOLD tree nodes into a new array of + * XML_Content tree nodes followed by a gapless list of zero-terminated + * strings. */ + DTD *const dtd = parser->m_dtd; /* save one level of indirection */ + XML_Content *ret; + XML_Char *str; /* the current string writing location */ + + /* Detect and prevent integer overflow. + * The preprocessor guard addresses the "always false" warning + * from -Wtype-limits on platforms where + * sizeof(unsigned int) < sizeof(size_t), e.g. on x86_64. */ +#if UINT_MAX >= SIZE_MAX + if (dtd->scaffCount > (size_t)(-1) / sizeof(XML_Content)) { + return NULL; + } + if (dtd->contentStringLen > (size_t)(-1) / sizeof(XML_Char)) { + return NULL; + } +#endif + if (dtd->scaffCount * sizeof(XML_Content) + > (size_t)(-1) - dtd->contentStringLen * sizeof(XML_Char)) { + return NULL; + } + + const size_t allocsize = (dtd->scaffCount * sizeof(XML_Content) + + (dtd->contentStringLen * sizeof(XML_Char))); + + ret = (XML_Content *)MALLOC(parser, allocsize); + if (! ret) + return NULL; + + /* What follows is an iterative implementation (of what was previously done + * recursively in a dedicated function called "build_node". The old recursive + * build_node could be forced into stack exhaustion from input as small as a + * few megabyte, and so that was a security issue. Hence, a function call + * stack is avoided now by resolving recursion.) + * + * The iterative approach works as follows: + * + * - We have two writing pointers, both walking up the result array; one does + * the work, the other creates "jobs" for its colleague to do, and leads + * the way: + * + * - The faster one, pointer jobDest, always leads and writes "what job + * to do" by the other, once they reach that place in the + * array: leader "jobDest" stores the source node array index (relative + * to array dtd->scaffold) in field "numchildren". + * + * - The slower one, pointer dest, looks at the value stored in the + * "numchildren" field (which actually holds a source node array index + * at that time) and puts the real data from dtd->scaffold in. + * + * - Before the loop starts, jobDest writes source array index 0 + * (where the root node is located) so that dest will have something to do + * when it starts operation. + * + * - Whenever nodes with children are encountered, jobDest appends + * them as new jobs, in order. As a result, tree node siblings are + * adjacent in the resulting array, for example: + * + * [0] root, has two children + * [1] first child of 0, has three children + * [3] first child of 1, does not have children + * [4] second child of 1, does not have children + * [5] third child of 1, does not have children + * [2] second child of 0, does not have children + * + * Or (the same data) presented in flat array view: + * + * [0] root, has two children + * + * [1] first child of 0, has three children + * [2] second child of 0, does not have children + * + * [3] first child of 1, does not have children + * [4] second child of 1, does not have children + * [5] third child of 1, does not have children + * + * - The algorithm repeats until all target array indices have been processed. + */ + XML_Content *dest = ret; /* tree node writing location, moves upwards */ + XML_Content *const destLimit = &ret[dtd->scaffCount]; + XML_Content *jobDest = ret; /* next free writing location in target array */ + str = (XML_Char *)&ret[dtd->scaffCount]; + + /* Add the starting job, the root node (index 0) of the source tree */ + (jobDest++)->numchildren = 0; + + for (; dest < destLimit; dest++) { + /* Retrieve source tree array index from job storage */ + const int src_node = (int)dest->numchildren; + + /* Convert item */ + dest->type = dtd->scaffold[src_node].type; + dest->quant = dtd->scaffold[src_node].quant; + if (dest->type == XML_CTYPE_NAME) { + const XML_Char *src; + dest->name = str; + src = dtd->scaffold[src_node].name; + for (;;) { + *str++ = *src; + if (! *src) + break; + src++; + } + dest->numchildren = 0; + dest->children = NULL; + } else { + unsigned int i; + int cn; + dest->name = NULL; + dest->numchildren = dtd->scaffold[src_node].childcnt; + dest->children = jobDest; + + /* Append scaffold indices of children to array */ + for (i = 0, cn = dtd->scaffold[src_node].firstchild; + i < dest->numchildren; i++, cn = dtd->scaffold[cn].nextsib) + (jobDest++)->numchildren = (unsigned int)cn; + } + } + + return ret; +} + +static ELEMENT_TYPE * +getElementType(XML_Parser parser, const ENCODING *enc, const char *ptr, + const char *end) { + DTD *const dtd = parser->m_dtd; /* save one level of indirection */ + const XML_Char *name = poolStoreString(&dtd->pool, enc, ptr, end); + ELEMENT_TYPE *ret; + + if (! name) + return NULL; + ret = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, name, + sizeof(ELEMENT_TYPE)); + if (! ret) + return NULL; + if (ret->name != name) + poolDiscard(&dtd->pool); + else { + poolFinish(&dtd->pool); + if (! setElementTypePrefix(parser, ret)) + return NULL; + } + return ret; +} + +static XML_Char * +copyString(const XML_Char *s, const XML_Memory_Handling_Suite *memsuite) { + size_t charsRequired = 0; + XML_Char *result; + + /* First determine how long the string is */ + while (s[charsRequired] != 0) { + charsRequired++; + } + /* Include the terminator */ + charsRequired++; + + /* Now allocate space for the copy */ + result = memsuite->malloc_fcn(charsRequired * sizeof(XML_Char)); + if (result == NULL) + return NULL; + /* Copy the original into place */ + memcpy(result, s, charsRequired * sizeof(XML_Char)); + return result; +} + +#ifdef XML_DTD + +static float +accountingGetCurrentAmplification(XML_Parser rootParser) { + const XmlBigCount countBytesOutput + = rootParser->m_accounting.countBytesDirect + + rootParser->m_accounting.countBytesIndirect; + const float amplificationFactor + = rootParser->m_accounting.countBytesDirect + ? (countBytesOutput + / (float)(rootParser->m_accounting.countBytesDirect)) + : 1.0f; + assert(! rootParser->m_parentParser); + return amplificationFactor; +} + +static void +accountingReportStats(XML_Parser originParser, const char *epilog) { + const XML_Parser rootParser = getRootParserOf(originParser, NULL); + assert(! rootParser->m_parentParser); + + if (rootParser->m_accounting.debugLevel < 1) { + return; + } + + const float amplificationFactor + = accountingGetCurrentAmplification(rootParser); + fprintf(stderr, + "expat: Accounting(%p): Direct " EXPAT_FMT_ULL( + "10") ", indirect " EXPAT_FMT_ULL("10") ", amplification %8.2f%s", + (void *)rootParser, rootParser->m_accounting.countBytesDirect, + rootParser->m_accounting.countBytesIndirect, + (double)amplificationFactor, epilog); +} + +static void +accountingOnAbort(XML_Parser originParser) { + accountingReportStats(originParser, " ABORTING\n"); +} + +static void +accountingReportDiff(XML_Parser rootParser, + unsigned int levelsAwayFromRootParser, const char *before, + const char *after, ptrdiff_t bytesMore, int source_line, + enum XML_Account account) { + assert(! rootParser->m_parentParser); + + fprintf(stderr, + " (+" EXPAT_FMT_PTRDIFF_T("6") " bytes %s|%d, xmlparse.c:%d) %*s\"", + bytesMore, (account == XML_ACCOUNT_DIRECT) ? "DIR" : "EXP", + levelsAwayFromRootParser, source_line, 10, ""); + + const char ellipis[] = "[..]"; + const size_t ellipsisLength = sizeof(ellipis) /* because compile-time */ - 1; + const unsigned int contextLength = 10; + + /* Note: Performance is of no concern here */ + const char *walker = before; + if ((rootParser->m_accounting.debugLevel >= 3) + || (after - before) + <= (ptrdiff_t)(contextLength + ellipsisLength + contextLength)) { + for (; walker < after; walker++) { + fprintf(stderr, "%s", unsignedCharToPrintable(walker[0])); + } + } else { + for (; walker < before + contextLength; walker++) { + fprintf(stderr, "%s", unsignedCharToPrintable(walker[0])); + } + fprintf(stderr, ellipis); + walker = after - contextLength; + for (; walker < after; walker++) { + fprintf(stderr, "%s", unsignedCharToPrintable(walker[0])); + } + } + fprintf(stderr, "\"\n"); +} + +static XML_Bool +accountingDiffTolerated(XML_Parser originParser, int tok, const char *before, + const char *after, int source_line, + enum XML_Account account) { + /* Note: We need to check the token type *first* to be sure that + * we can even access variable , safely. + * E.g. for XML_TOK_NONE may hold an invalid pointer. */ + switch (tok) { + case XML_TOK_INVALID: + case XML_TOK_PARTIAL: + case XML_TOK_PARTIAL_CHAR: + case XML_TOK_NONE: + return XML_TRUE; + } + + if (account == XML_ACCOUNT_NONE) + return XML_TRUE; /* because these bytes have been accounted for, already */ + + unsigned int levelsAwayFromRootParser; + const XML_Parser rootParser + = getRootParserOf(originParser, &levelsAwayFromRootParser); + assert(! rootParser->m_parentParser); + + const int isDirect + = (account == XML_ACCOUNT_DIRECT) && (originParser == rootParser); + const ptrdiff_t bytesMore = after - before; + + XmlBigCount *const additionTarget + = isDirect ? &rootParser->m_accounting.countBytesDirect + : &rootParser->m_accounting.countBytesIndirect; + + /* Detect and avoid integer overflow */ + if (*additionTarget > (XmlBigCount)(-1) - (XmlBigCount)bytesMore) + return XML_FALSE; + *additionTarget += bytesMore; + + const XmlBigCount countBytesOutput + = rootParser->m_accounting.countBytesDirect + + rootParser->m_accounting.countBytesIndirect; + const float amplificationFactor + = accountingGetCurrentAmplification(rootParser); + const XML_Bool tolerated + = (countBytesOutput < rootParser->m_accounting.activationThresholdBytes) + || (amplificationFactor + <= rootParser->m_accounting.maximumAmplificationFactor); + + if (rootParser->m_accounting.debugLevel >= 2) { + accountingReportStats(rootParser, ""); + accountingReportDiff(rootParser, levelsAwayFromRootParser, before, after, + bytesMore, source_line, account); + } + + return tolerated; +} + +unsigned long long +testingAccountingGetCountBytesDirect(XML_Parser parser) { + if (! parser) + return 0; + return parser->m_accounting.countBytesDirect; +} + +unsigned long long +testingAccountingGetCountBytesIndirect(XML_Parser parser) { + if (! parser) + return 0; + return parser->m_accounting.countBytesIndirect; +} + +static void +entityTrackingReportStats(XML_Parser rootParser, ENTITY *entity, + const char *action, int sourceLine) { + assert(! rootParser->m_parentParser); + if (rootParser->m_entity_stats.debugLevel < 1) + return; + +# if defined(XML_UNICODE) + const char *const entityName = "[..]"; +# else + const char *const entityName = entity->name; +# endif + + fprintf( + stderr, + "expat: Entities(%p): Count %9d, depth %2d/%2d %*s%s%s; %s length %d (xmlparse.c:%d)\n", + (void *)rootParser, rootParser->m_entity_stats.countEverOpened, + rootParser->m_entity_stats.currentDepth, + rootParser->m_entity_stats.maximumDepthSeen, + (rootParser->m_entity_stats.currentDepth - 1) * 2, "", + entity->is_param ? "%" : "&", entityName, action, entity->textLen, + sourceLine); +} + +static void +entityTrackingOnOpen(XML_Parser originParser, ENTITY *entity, int sourceLine) { + const XML_Parser rootParser = getRootParserOf(originParser, NULL); + assert(! rootParser->m_parentParser); + + rootParser->m_entity_stats.countEverOpened++; + rootParser->m_entity_stats.currentDepth++; + if (rootParser->m_entity_stats.currentDepth + > rootParser->m_entity_stats.maximumDepthSeen) { + rootParser->m_entity_stats.maximumDepthSeen++; + } + + entityTrackingReportStats(rootParser, entity, "OPEN ", sourceLine); +} + +static void +entityTrackingOnClose(XML_Parser originParser, ENTITY *entity, int sourceLine) { + const XML_Parser rootParser = getRootParserOf(originParser, NULL); + assert(! rootParser->m_parentParser); + + entityTrackingReportStats(rootParser, entity, "CLOSE", sourceLine); + rootParser->m_entity_stats.currentDepth--; +} + +static XML_Parser +getRootParserOf(XML_Parser parser, unsigned int *outLevelDiff) { + XML_Parser rootParser = parser; + unsigned int stepsTakenUpwards = 0; + while (rootParser->m_parentParser) { + rootParser = rootParser->m_parentParser; + stepsTakenUpwards++; + } + assert(! rootParser->m_parentParser); + if (outLevelDiff != NULL) { + *outLevelDiff = stepsTakenUpwards; + } + return rootParser; +} + +const char * +unsignedCharToPrintable(unsigned char c) { + switch (c) { + case 0: + return "\\0"; + case 1: + return "\\x1"; + case 2: + return "\\x2"; + case 3: + return "\\x3"; + case 4: + return "\\x4"; + case 5: + return "\\x5"; + case 6: + return "\\x6"; + case 7: + return "\\x7"; + case 8: + return "\\x8"; + case 9: + return "\\t"; + case 10: + return "\\n"; + case 11: + return "\\xB"; + case 12: + return "\\xC"; + case 13: + return "\\r"; + case 14: + return "\\xE"; + case 15: + return "\\xF"; + case 16: + return "\\x10"; + case 17: + return "\\x11"; + case 18: + return "\\x12"; + case 19: + return "\\x13"; + case 20: + return "\\x14"; + case 21: + return "\\x15"; + case 22: + return "\\x16"; + case 23: + return "\\x17"; + case 24: + return "\\x18"; + case 25: + return "\\x19"; + case 26: + return "\\x1A"; + case 27: + return "\\x1B"; + case 28: + return "\\x1C"; + case 29: + return "\\x1D"; + case 30: + return "\\x1E"; + case 31: + return "\\x1F"; + case 32: + return " "; + case 33: + return "!"; + case 34: + return "\\\""; + case 35: + return "#"; + case 36: + return "$"; + case 37: + return "%"; + case 38: + return "&"; + case 39: + return "'"; + case 40: + return "("; + case 41: + return ")"; + case 42: + return "*"; + case 43: + return "+"; + case 44: + return ","; + case 45: + return "-"; + case 46: + return "."; + case 47: + return "/"; + case 48: + return "0"; + case 49: + return "1"; + case 50: + return "2"; + case 51: + return "3"; + case 52: + return "4"; + case 53: + return "5"; + case 54: + return "6"; + case 55: + return "7"; + case 56: + return "8"; + case 57: + return "9"; + case 58: + return ":"; + case 59: + return ";"; + case 60: + return "<"; + case 61: + return "="; + case 62: + return ">"; + case 63: + return "?"; + case 64: + return "@"; + case 65: + return "A"; + case 66: + return "B"; + case 67: + return "C"; + case 68: + return "D"; + case 69: + return "E"; + case 70: + return "F"; + case 71: + return "G"; + case 72: + return "H"; + case 73: + return "I"; + case 74: + return "J"; + case 75: + return "K"; + case 76: + return "L"; + case 77: + return "M"; + case 78: + return "N"; + case 79: + return "O"; + case 80: + return "P"; + case 81: + return "Q"; + case 82: + return "R"; + case 83: + return "S"; + case 84: + return "T"; + case 85: + return "U"; + case 86: + return "V"; + case 87: + return "W"; + case 88: + return "X"; + case 89: + return "Y"; + case 90: + return "Z"; + case 91: + return "["; + case 92: + return "\\\\"; + case 93: + return "]"; + case 94: + return "^"; + case 95: + return "_"; + case 96: + return "`"; + case 97: + return "a"; + case 98: + return "b"; + case 99: + return "c"; + case 100: + return "d"; + case 101: + return "e"; + case 102: + return "f"; + case 103: + return "g"; + case 104: + return "h"; + case 105: + return "i"; + case 106: + return "j"; + case 107: + return "k"; + case 108: + return "l"; + case 109: + return "m"; + case 110: + return "n"; + case 111: + return "o"; + case 112: + return "p"; + case 113: + return "q"; + case 114: + return "r"; + case 115: + return "s"; + case 116: + return "t"; + case 117: + return "u"; + case 118: + return "v"; + case 119: + return "w"; + case 120: + return "x"; + case 121: + return "y"; + case 122: + return "z"; + case 123: + return "{"; + case 124: + return "|"; + case 125: + return "}"; + case 126: + return "~"; + case 127: + return "\\x7F"; + case 128: + return "\\x80"; + case 129: + return "\\x81"; + case 130: + return "\\x82"; + case 131: + return "\\x83"; + case 132: + return "\\x84"; + case 133: + return "\\x85"; + case 134: + return "\\x86"; + case 135: + return "\\x87"; + case 136: + return "\\x88"; + case 137: + return "\\x89"; + case 138: + return "\\x8A"; + case 139: + return "\\x8B"; + case 140: + return "\\x8C"; + case 141: + return "\\x8D"; + case 142: + return "\\x8E"; + case 143: + return "\\x8F"; + case 144: + return "\\x90"; + case 145: + return "\\x91"; + case 146: + return "\\x92"; + case 147: + return "\\x93"; + case 148: + return "\\x94"; + case 149: + return "\\x95"; + case 150: + return "\\x96"; + case 151: + return "\\x97"; + case 152: + return "\\x98"; + case 153: + return "\\x99"; + case 154: + return "\\x9A"; + case 155: + return "\\x9B"; + case 156: + return "\\x9C"; + case 157: + return "\\x9D"; + case 158: + return "\\x9E"; + case 159: + return "\\x9F"; + case 160: + return "\\xA0"; + case 161: + return "\\xA1"; + case 162: + return "\\xA2"; + case 163: + return "\\xA3"; + case 164: + return "\\xA4"; + case 165: + return "\\xA5"; + case 166: + return "\\xA6"; + case 167: + return "\\xA7"; + case 168: + return "\\xA8"; + case 169: + return "\\xA9"; + case 170: + return "\\xAA"; + case 171: + return "\\xAB"; + case 172: + return "\\xAC"; + case 173: + return "\\xAD"; + case 174: + return "\\xAE"; + case 175: + return "\\xAF"; + case 176: + return "\\xB0"; + case 177: + return "\\xB1"; + case 178: + return "\\xB2"; + case 179: + return "\\xB3"; + case 180: + return "\\xB4"; + case 181: + return "\\xB5"; + case 182: + return "\\xB6"; + case 183: + return "\\xB7"; + case 184: + return "\\xB8"; + case 185: + return "\\xB9"; + case 186: + return "\\xBA"; + case 187: + return "\\xBB"; + case 188: + return "\\xBC"; + case 189: + return "\\xBD"; + case 190: + return "\\xBE"; + case 191: + return "\\xBF"; + case 192: + return "\\xC0"; + case 193: + return "\\xC1"; + case 194: + return "\\xC2"; + case 195: + return "\\xC3"; + case 196: + return "\\xC4"; + case 197: + return "\\xC5"; + case 198: + return "\\xC6"; + case 199: + return "\\xC7"; + case 200: + return "\\xC8"; + case 201: + return "\\xC9"; + case 202: + return "\\xCA"; + case 203: + return "\\xCB"; + case 204: + return "\\xCC"; + case 205: + return "\\xCD"; + case 206: + return "\\xCE"; + case 207: + return "\\xCF"; + case 208: + return "\\xD0"; + case 209: + return "\\xD1"; + case 210: + return "\\xD2"; + case 211: + return "\\xD3"; + case 212: + return "\\xD4"; + case 213: + return "\\xD5"; + case 214: + return "\\xD6"; + case 215: + return "\\xD7"; + case 216: + return "\\xD8"; + case 217: + return "\\xD9"; + case 218: + return "\\xDA"; + case 219: + return "\\xDB"; + case 220: + return "\\xDC"; + case 221: + return "\\xDD"; + case 222: + return "\\xDE"; + case 223: + return "\\xDF"; + case 224: + return "\\xE0"; + case 225: + return "\\xE1"; + case 226: + return "\\xE2"; + case 227: + return "\\xE3"; + case 228: + return "\\xE4"; + case 229: + return "\\xE5"; + case 230: + return "\\xE6"; + case 231: + return "\\xE7"; + case 232: + return "\\xE8"; + case 233: + return "\\xE9"; + case 234: + return "\\xEA"; + case 235: + return "\\xEB"; + case 236: + return "\\xEC"; + case 237: + return "\\xED"; + case 238: + return "\\xEE"; + case 239: + return "\\xEF"; + case 240: + return "\\xF0"; + case 241: + return "\\xF1"; + case 242: + return "\\xF2"; + case 243: + return "\\xF3"; + case 244: + return "\\xF4"; + case 245: + return "\\xF5"; + case 246: + return "\\xF6"; + case 247: + return "\\xF7"; + case 248: + return "\\xF8"; + case 249: + return "\\xF9"; + case 250: + return "\\xFA"; + case 251: + return "\\xFB"; + case 252: + return "\\xFC"; + case 253: + return "\\xFD"; + case 254: + return "\\xFE"; + case 255: + return "\\xFF"; + default: + assert(0); /* never gets here */ + return "dead code"; + } + assert(0); /* never gets here */ +} + +#endif /* XML_DTD */ + +static unsigned long +getDebugLevel(const char *variableName, unsigned long defaultDebugLevel) { + const char *const valueOrNull = getenv(variableName); + if (valueOrNull == NULL) { + return defaultDebugLevel; + } + const char *const value = valueOrNull; + + errno = 0; + char *afterValue = (char *)value; + unsigned long debugLevel = strtoul(value, &afterValue, 10); + if ((errno != 0) || (afterValue[0] != '\0')) { + errno = 0; + return defaultDebugLevel; + } + + return debugLevel; +} diff --git a/source/externals/expat/src/xmlparse.cc b/source/externals/expat/src/xmlparse.cc deleted file mode 100644 index 20262562b4..0000000000 --- a/source/externals/expat/src/xmlparse.cc +++ /dev/null @@ -1,6409 +0,0 @@ -/* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. -*/ - - -#if defined(__clang__) || defined(__GNUC__) -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wunused-parameter" -#endif - -#include -#include /* memset(), memcpy() */ -#include -#include /* UINT_MAX */ -#include /* time() */ - -#define XML_BUILDING_EXPAT 1 - -#ifdef COMPILED_FROM_DSP -#include "winconfig.h" -#elif defined(MACOS_CLASSIC) -#include "macconfig.h" -#elif defined(__amigaos__) -#include "amigaconfig.h" -#elif defined(__WATCOMC__) -#include "watcomconfig.h" -#elif defined(HAVE_EXPAT_CONFIG_H) -#include -#endif /* ndef COMPILED_FROM_DSP */ - -#include "ascii.h" -#include "expat.h" - -#ifdef XML_UNICODE -#define XML_ENCODE_MAX XML_UTF16_ENCODE_MAX -#define XmlConvert XmlUtf16Convert -#define XmlGetInternalEncoding XmlGetUtf16InternalEncoding -#define XmlGetInternalEncodingNS XmlGetUtf16InternalEncodingNS -#define XmlEncode XmlUtf16Encode -/* Using pointer subtraction to convert to integer type. */ -#define MUST_CONVERT(enc, s) (!(enc)->isUtf16 || (((char *)(s) - (char *)NULL) & 1)) -typedef unsigned short ICHAR; -#else -#define XML_ENCODE_MAX XML_UTF8_ENCODE_MAX -#define XmlConvert XmlUtf8Convert -#define XmlGetInternalEncoding XmlGetUtf8InternalEncoding -#define XmlGetInternalEncodingNS XmlGetUtf8InternalEncodingNS -#define XmlEncode XmlUtf8Encode -#define MUST_CONVERT(enc, s) (!(enc)->isUtf8) -typedef char ICHAR; -#endif - - -#ifndef XML_NS - -#define XmlInitEncodingNS XmlInitEncoding -#define XmlInitUnknownEncodingNS XmlInitUnknownEncoding -#undef XmlGetInternalEncodingNS -#define XmlGetInternalEncodingNS XmlGetInternalEncoding -#define XmlParseXmlDeclNS XmlParseXmlDecl - -#endif - -#ifdef XML_UNICODE - -#ifdef XML_UNICODE_WCHAR_T -#define XML_T(x) (const wchar_t)x -#define XML_L(x) L ## x -#else -#define XML_T(x) (const unsigned short)x -#define XML_L(x) x -#endif - -#else - -#define XML_T(x) x -#define XML_L(x) x - -#endif - -/* Round up n to be a multiple of sz, where sz is a power of 2. */ -#define ROUND_UP(n, sz) (((n) + ((sz) - 1)) & ~((sz) - 1)) - -/* Handle the case where memmove() doesn't exist. */ -#ifndef HAVE_MEMMOVE -#ifdef HAVE_BCOPY -#define memmove(d,s,l) bcopy((s),(d),(l)) -#else -#error memmove does not exist on this platform, nor is a substitute available -#endif /* HAVE_BCOPY */ -#endif /* HAVE_MEMMOVE */ - -#include "internal.h" -#include "xmltok.h" -#include "xmlrole.h" - -typedef const XML_Char *KEY; - -typedef struct { - KEY name; -} NAMED; - -typedef struct { - NAMED **v; - unsigned char power; - size_t size; - size_t used; - const XML_Memory_Handling_Suite *mem; -} HASH_TABLE; - -/* Basic character hash algorithm, taken from Python's string hash: - h = h * 1000003 ^ character, the constant being a prime number. - -*/ -#ifdef XML_UNICODE -#define CHAR_HASH(h, c) \ - (((h) * 0xF4243) ^ (unsigned short)(c)) -#else -#define CHAR_HASH(h, c) \ - (((h) * 0xF4243) ^ (unsigned char)(c)) -#endif - -/* For probing (after a collision) we need a step size relative prime - to the hash table size, which is a power of 2. We use double-hashing, - since we can calculate a second hash value cheaply by taking those bits - of the first hash value that were discarded (masked out) when the table - index was calculated: index = hash & mask, where mask = table->size - 1. - We limit the maximum step size to table->size / 4 (mask >> 2) and make - it odd, since odd numbers are always relative prime to a power of 2. -*/ -#define SECOND_HASH(hash, mask, power) \ - ((((hash) & ~(mask)) >> ((power) - 1)) & ((mask) >> 2)) -#define PROBE_STEP(hash, mask, power) \ - ((unsigned char)((SECOND_HASH(hash, mask, power)) | 1)) - -typedef struct { - NAMED **p; - NAMED **end; -} HASH_TABLE_ITER; - -#define INIT_TAG_BUF_SIZE 32 /* must be a multiple of sizeof(XML_Char) */ -#define INIT_DATA_BUF_SIZE 1024 -#define INIT_ATTS_SIZE 16 -#define INIT_ATTS_VERSION 0xFFFFFFFF -#define INIT_BLOCK_SIZE 1024 -#define INIT_BUFFER_SIZE 1024 - -#define EXPAND_SPARE 24 - -typedef struct binding { - struct prefix *prefix; - struct binding *nextTagBinding; - struct binding *prevPrefixBinding; - const struct attribute_id *attId; - XML_Char *uri; - int uriLen; - int uriAlloc; -} BINDING; - -typedef struct prefix { - const XML_Char *name; - BINDING *binding; -} PREFIX; - -typedef struct { - const XML_Char *str; - const XML_Char *localPart; - const XML_Char *prefix; - int strLen; - int uriLen; - int prefixLen; -} TAG_NAME; - -/* TAG represents an open element. - The name of the element is stored in both the document and API - encodings. The memory buffer 'buf' is a separately-allocated - memory area which stores the name. During the XML_Parse()/ - XMLParseBuffer() when the element is open, the memory for the 'raw' - version of the name (in the document encoding) is shared with the - document buffer. If the element is open across calls to - XML_Parse()/XML_ParseBuffer(), the buffer is re-allocated to - contain the 'raw' name as well. - - A parser re-uses these structures, maintaining a list of allocated - TAG objects in a free list. -*/ -typedef struct tag { - struct tag *parent; /* parent of this element */ - const char *rawName; /* tagName in the original encoding */ - int rawNameLength; - TAG_NAME name; /* tagName in the API encoding */ - char *buf; /* buffer for name components */ - char *bufEnd; /* end of the buffer */ - BINDING *bindings; -} TAG; - -typedef struct { - const XML_Char *name; - const XML_Char *textPtr; - int textLen; /* length in XML_Chars */ - int processed; /* # of processed bytes - when suspended */ - const XML_Char *systemId; - const XML_Char *base; - const XML_Char *publicId; - const XML_Char *notation; - XML_Bool open; - XML_Bool is_param; - XML_Bool is_internal; /* true if declared in internal subset outside PE */ -} ENTITY; - -typedef struct { - enum XML_Content_Type type; - enum XML_Content_Quant quant; - const XML_Char * name; - int firstchild; - int lastchild; - int childcnt; - int nextsib; -} CONTENT_SCAFFOLD; - -#define INIT_SCAFFOLD_ELEMENTS 32 - -typedef struct block { - struct block *next; - int size; - XML_Char s[1]; -} BLOCK; - -typedef struct { - BLOCK *blocks; - BLOCK *freeBlocks; - const XML_Char *end; - XML_Char *ptr; - XML_Char *start; - const XML_Memory_Handling_Suite *mem; -} STRING_POOL; - -/* The XML_Char before the name is used to determine whether - an attribute has been specified. */ -typedef struct attribute_id { - XML_Char *name; - PREFIX *prefix; - XML_Bool maybeTokenized; - XML_Bool xmlns; -} ATTRIBUTE_ID; - -typedef struct { - const ATTRIBUTE_ID *id; - XML_Bool isCdata; - const XML_Char *value; -} DEFAULT_ATTRIBUTE; - -typedef struct { - unsigned long version; - unsigned long hash; - const XML_Char *uriName; -} NS_ATT; - -typedef struct { - const XML_Char *name; - PREFIX *prefix; - const ATTRIBUTE_ID *idAtt; - int nDefaultAtts; - int allocDefaultAtts; - DEFAULT_ATTRIBUTE *defaultAtts; -} ELEMENT_TYPE; - -typedef struct { - HASH_TABLE generalEntities; - HASH_TABLE elementTypes; - HASH_TABLE attributeIds; - HASH_TABLE prefixes; - STRING_POOL pool; - STRING_POOL entityValuePool; - /* false once a parameter entity reference has been skipped */ - XML_Bool keepProcessing; - /* true once an internal or external PE reference has been encountered; - this includes the reference to an external subset */ - XML_Bool hasParamEntityRefs; - XML_Bool standalone; -#ifdef XML_DTD - /* indicates if external PE has been read */ - XML_Bool paramEntityRead; - HASH_TABLE paramEntities; -#endif /* XML_DTD */ - PREFIX defaultPrefix; - /* === scaffolding for building content model === */ - XML_Bool in_eldecl; - CONTENT_SCAFFOLD *scaffold; - unsigned contentStringLen; - unsigned scaffSize; - unsigned scaffCount; - int scaffLevel; - int *scaffIndex; -} DTD; - -typedef struct open_internal_entity { - const char *internalEventPtr; - const char *internalEventEndPtr; - struct open_internal_entity *next; - ENTITY *entity; - int startTagLevel; - XML_Bool betweenDecl; /* WFC: PE Between Declarations */ -} OPEN_INTERNAL_ENTITY; - -typedef enum XML_Error PTRCALL Processor(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr); - -static Processor prologProcessor; -static Processor prologInitProcessor; -static Processor contentProcessor; -static Processor cdataSectionProcessor; -#ifdef XML_DTD -static Processor ignoreSectionProcessor; -static Processor externalParEntProcessor; -static Processor externalParEntInitProcessor; -static Processor entityValueProcessor; -static Processor entityValueInitProcessor; -#endif /* XML_DTD */ -static Processor epilogProcessor; -static Processor errorProcessor; -static Processor externalEntityInitProcessor; -static Processor externalEntityInitProcessor2; -static Processor externalEntityInitProcessor3; -static Processor externalEntityContentProcessor; -static Processor internalEntityProcessor; - -static enum XML_Error -handleUnknownEncoding(XML_Parser parser, const XML_Char *encodingName); -static enum XML_Error -processXmlDecl(XML_Parser parser, int isGeneralTextEntity, - const char *s, const char *next); -static enum XML_Error -initializeEncoding(XML_Parser parser); -static enum XML_Error -doProlog(XML_Parser parser, const ENCODING *enc, const char *s, - const char *end, int tok, const char *next, const char **nextPtr, - XML_Bool haveMore); -static enum XML_Error -processInternalEntity(XML_Parser parser, ENTITY *entity, - XML_Bool betweenDecl); -static enum XML_Error -doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc, - const char *start, const char *end, const char **endPtr, - XML_Bool haveMore); -static enum XML_Error -doCdataSection(XML_Parser parser, const ENCODING *, const char **startPtr, - const char *end, const char **nextPtr, XML_Bool haveMore); -#ifdef XML_DTD -static enum XML_Error -doIgnoreSection(XML_Parser parser, const ENCODING *, const char **startPtr, - const char *end, const char **nextPtr, XML_Bool haveMore); -#endif /* XML_DTD */ - -static enum XML_Error -storeAtts(XML_Parser parser, const ENCODING *, const char *s, - TAG_NAME *tagNamePtr, BINDING **bindingsPtr); -static enum XML_Error -addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId, - const XML_Char *uri, BINDING **bindingsPtr); -static int -defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *, XML_Bool isCdata, - XML_Bool isId, const XML_Char *dfltValue, XML_Parser parser); -static enum XML_Error -storeAttributeValue(XML_Parser parser, const ENCODING *, XML_Bool isCdata, - const char *, const char *, STRING_POOL *); -static enum XML_Error -appendAttributeValue(XML_Parser parser, const ENCODING *, XML_Bool isCdata, - const char *, const char *, STRING_POOL *); -static ATTRIBUTE_ID * -getAttributeId(XML_Parser parser, const ENCODING *enc, const char *start, - const char *end); -static int -setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *); -static enum XML_Error -storeEntityValue(XML_Parser parser, const ENCODING *enc, const char *start, - const char *end); -static int -reportProcessingInstruction(XML_Parser parser, const ENCODING *enc, - const char *start, const char *end); -static int -reportComment(XML_Parser parser, const ENCODING *enc, const char *start, - const char *end); -static void -reportDefault(XML_Parser parser, const ENCODING *enc, const char *start, - const char *end); - -static const XML_Char * getContext(XML_Parser parser); -static XML_Bool -setContext(XML_Parser parser, const XML_Char *context); - -static void FASTCALL normalizePublicId(XML_Char *s); - -static DTD * dtdCreate(const XML_Memory_Handling_Suite *ms); -/* do not call if parentParser != NULL */ -static void dtdReset(DTD *p, const XML_Memory_Handling_Suite *ms); -static void -dtdDestroy(DTD *p, XML_Bool isDocEntity, const XML_Memory_Handling_Suite *ms); -static int -dtdCopy(XML_Parser oldParser, - DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms); -static int -copyEntityTable(XML_Parser oldParser, - HASH_TABLE *, STRING_POOL *, const HASH_TABLE *); -static NAMED * -lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize); -static void FASTCALL -hashTableInit(HASH_TABLE *, const XML_Memory_Handling_Suite *ms); -static void FASTCALL hashTableClear(HASH_TABLE *); -static void FASTCALL hashTableDestroy(HASH_TABLE *); -static void FASTCALL -hashTableIterInit(HASH_TABLE_ITER *, const HASH_TABLE *); -static NAMED * FASTCALL hashTableIterNext(HASH_TABLE_ITER *); - -static void FASTCALL -poolInit(STRING_POOL *, const XML_Memory_Handling_Suite *ms); -static void FASTCALL poolClear(STRING_POOL *); -static void FASTCALL poolDestroy(STRING_POOL *); -static XML_Char * -poolAppend(STRING_POOL *pool, const ENCODING *enc, - const char *ptr, const char *end); -static XML_Char * -poolStoreString(STRING_POOL *pool, const ENCODING *enc, - const char *ptr, const char *end); -static XML_Bool FASTCALL poolGrow(STRING_POOL *pool); -static const XML_Char * FASTCALL -poolCopyString(STRING_POOL *pool, const XML_Char *s); -static const XML_Char * -poolCopyStringN(STRING_POOL *pool, const XML_Char *s, int n); -static const XML_Char * FASTCALL -poolAppendString(STRING_POOL *pool, const XML_Char *s); - -static int FASTCALL nextScaffoldPart(XML_Parser parser); -static XML_Content * build_model(XML_Parser parser); -static ELEMENT_TYPE * -getElementType(XML_Parser parser, const ENCODING *enc, - const char *ptr, const char *end); - -static unsigned long generate_hash_secret_salt(void); -static XML_Bool startParsing(XML_Parser parser); - -static XML_Parser -parserCreate(const XML_Char *encodingName, - const XML_Memory_Handling_Suite *memsuite, - const XML_Char *nameSep, - DTD *dtd); - -static void -parserInit(XML_Parser parser, const XML_Char *encodingName); - -#define poolStart(pool) ((pool)->start) -#define poolEnd(pool) ((pool)->ptr) -#define poolLength(pool) ((pool)->ptr - (pool)->start) -#define poolChop(pool) ((void)--(pool->ptr)) -#define poolLastChar(pool) (((pool)->ptr)[-1]) -#define poolDiscard(pool) ((pool)->ptr = (pool)->start) -#define poolFinish(pool) ((pool)->start = (pool)->ptr) -#define poolAppendChar(pool, c) \ - (((pool)->ptr == (pool)->end && !poolGrow(pool)) \ - ? 0 \ - : ((*((pool)->ptr)++ = c), 1)) - -struct XML_ParserStruct { - /* The first member must be userData so that the XML_GetUserData - macro works. */ - void *m_userData; - void *m_handlerArg; - char *m_buffer; - const XML_Memory_Handling_Suite m_mem; - /* first character to be parsed */ - const char *m_bufferPtr; - /* past last character to be parsed */ - char *m_bufferEnd; - /* allocated end of buffer */ - const char *m_bufferLim; - XML_Index m_parseEndByteIndex; - const char *m_parseEndPtr; - XML_Char *m_dataBuf; - XML_Char *m_dataBufEnd; - XML_StartElementHandler m_startElementHandler; - XML_EndElementHandler m_endElementHandler; - XML_CharacterDataHandler m_characterDataHandler; - XML_ProcessingInstructionHandler m_processingInstructionHandler; - XML_CommentHandler m_commentHandler; - XML_StartCdataSectionHandler m_startCdataSectionHandler; - XML_EndCdataSectionHandler m_endCdataSectionHandler; - XML_DefaultHandler m_defaultHandler; - XML_StartDoctypeDeclHandler m_startDoctypeDeclHandler; - XML_EndDoctypeDeclHandler m_endDoctypeDeclHandler; - XML_UnparsedEntityDeclHandler m_unparsedEntityDeclHandler; - XML_NotationDeclHandler m_notationDeclHandler; - XML_StartNamespaceDeclHandler m_startNamespaceDeclHandler; - XML_EndNamespaceDeclHandler m_endNamespaceDeclHandler; - XML_NotStandaloneHandler m_notStandaloneHandler; - XML_ExternalEntityRefHandler m_externalEntityRefHandler; - XML_Parser m_externalEntityRefHandlerArg; - XML_SkippedEntityHandler m_skippedEntityHandler; - XML_UnknownEncodingHandler m_unknownEncodingHandler; - XML_ElementDeclHandler m_elementDeclHandler; - XML_AttlistDeclHandler m_attlistDeclHandler; - XML_EntityDeclHandler m_entityDeclHandler; - XML_XmlDeclHandler m_xmlDeclHandler; - const ENCODING *m_encoding; - INIT_ENCODING m_initEncoding; - const ENCODING *m_internalEncoding; - const XML_Char *m_protocolEncodingName; - XML_Bool m_ns; - XML_Bool m_ns_triplets; - void *m_unknownEncodingMem; - void *m_unknownEncodingData; - void *m_unknownEncodingHandlerData; - void (XMLCALL *m_unknownEncodingRelease)(void *); - PROLOG_STATE m_prologState; - Processor *m_processor; - enum XML_Error m_errorCode; - const char *m_eventPtr; - const char *m_eventEndPtr; - const char *m_positionPtr; - OPEN_INTERNAL_ENTITY *m_openInternalEntities; - OPEN_INTERNAL_ENTITY *m_freeInternalEntities; - XML_Bool m_defaultExpandInternalEntities; - int m_tagLevel; - ENTITY *m_declEntity; - const XML_Char *m_doctypeName; - const XML_Char *m_doctypeSysid; - const XML_Char *m_doctypePubid; - const XML_Char *m_declAttributeType; - const XML_Char *m_declNotationName; - const XML_Char *m_declNotationPublicId; - ELEMENT_TYPE *m_declElementType; - ATTRIBUTE_ID *m_declAttributeId; - XML_Bool m_declAttributeIsCdata; - XML_Bool m_declAttributeIsId; - DTD *m_dtd; - const XML_Char *m_curBase; - TAG *m_tagStack; - TAG *m_freeTagList; - BINDING *m_inheritedBindings; - BINDING *m_freeBindingList; - int m_attsSize; - int m_nSpecifiedAtts; - int m_idAttIndex; - ATTRIBUTE *m_atts; - NS_ATT *m_nsAtts; - unsigned long m_nsAttsVersion; - unsigned char m_nsAttsPower; -#ifdef XML_ATTR_INFO - XML_AttrInfo *m_attInfo; -#endif - POSITION m_position; - STRING_POOL m_tempPool; - STRING_POOL m_temp2Pool; - char *m_groupConnector; - unsigned int m_groupSize; - XML_Char m_namespaceSeparator; - XML_Parser m_parentParser; - XML_ParsingStatus m_parsingStatus; -#ifdef XML_DTD - XML_Bool m_isParamEntity; - XML_Bool m_useForeignDTD; - enum XML_ParamEntityParsing m_paramEntityParsing; -#endif - unsigned long m_hash_secret_salt; -}; - -#define MALLOC(s) (parser->m_mem.malloc_fcn((s))) -#define REALLOC(p,s) (parser->m_mem.realloc_fcn((p),(s))) -#define FREE(p) (parser->m_mem.free_fcn((p))) - -#define userData (parser->m_userData) -#define handlerArg (parser->m_handlerArg) -#define startElementHandler (parser->m_startElementHandler) -#define endElementHandler (parser->m_endElementHandler) -#define characterDataHandler (parser->m_characterDataHandler) -#define processingInstructionHandler \ - (parser->m_processingInstructionHandler) -#define commentHandler (parser->m_commentHandler) -#define startCdataSectionHandler \ - (parser->m_startCdataSectionHandler) -#define endCdataSectionHandler (parser->m_endCdataSectionHandler) -#define defaultHandler (parser->m_defaultHandler) -#define startDoctypeDeclHandler (parser->m_startDoctypeDeclHandler) -#define endDoctypeDeclHandler (parser->m_endDoctypeDeclHandler) -#define unparsedEntityDeclHandler \ - (parser->m_unparsedEntityDeclHandler) -#define notationDeclHandler (parser->m_notationDeclHandler) -#define startNamespaceDeclHandler \ - (parser->m_startNamespaceDeclHandler) -#define endNamespaceDeclHandler (parser->m_endNamespaceDeclHandler) -#define notStandaloneHandler (parser->m_notStandaloneHandler) -#define externalEntityRefHandler \ - (parser->m_externalEntityRefHandler) -#define externalEntityRefHandlerArg \ - (parser->m_externalEntityRefHandlerArg) -#define internalEntityRefHandler \ - (parser->m_internalEntityRefHandler) -#define skippedEntityHandler (parser->m_skippedEntityHandler) -#define unknownEncodingHandler (parser->m_unknownEncodingHandler) -#define elementDeclHandler (parser->m_elementDeclHandler) -#define attlistDeclHandler (parser->m_attlistDeclHandler) -#define entityDeclHandler (parser->m_entityDeclHandler) -#define xmlDeclHandler (parser->m_xmlDeclHandler) -#define encoding (parser->m_encoding) -#define initEncoding (parser->m_initEncoding) -#define internalEncoding (parser->m_internalEncoding) -#define unknownEncodingMem (parser->m_unknownEncodingMem) -#define unknownEncodingData (parser->m_unknownEncodingData) -#define unknownEncodingHandlerData \ - (parser->m_unknownEncodingHandlerData) -#define unknownEncodingRelease (parser->m_unknownEncodingRelease) -#define protocolEncodingName (parser->m_protocolEncodingName) -#define ns (parser->m_ns) -#define ns_triplets (parser->m_ns_triplets) -#define prologState (parser->m_prologState) -#define processor (parser->m_processor) -#define errorCode (parser->m_errorCode) -#define eventPtr (parser->m_eventPtr) -#define eventEndPtr (parser->m_eventEndPtr) -#define positionPtr (parser->m_positionPtr) -#define position (parser->m_position) -#define openInternalEntities (parser->m_openInternalEntities) -#define freeInternalEntities (parser->m_freeInternalEntities) -#define defaultExpandInternalEntities \ - (parser->m_defaultExpandInternalEntities) -#define tagLevel (parser->m_tagLevel) -#define buffer (parser->m_buffer) -#define bufferPtr (parser->m_bufferPtr) -#define bufferEnd (parser->m_bufferEnd) -#define parseEndByteIndex (parser->m_parseEndByteIndex) -#define parseEndPtr (parser->m_parseEndPtr) -#define bufferLim (parser->m_bufferLim) -#define dataBuf (parser->m_dataBuf) -#define dataBufEnd (parser->m_dataBufEnd) -#define _dtd (parser->m_dtd) -#define curBase (parser->m_curBase) -#define declEntity (parser->m_declEntity) -#define doctypeName (parser->m_doctypeName) -#define doctypeSysid (parser->m_doctypeSysid) -#define doctypePubid (parser->m_doctypePubid) -#define declAttributeType (parser->m_declAttributeType) -#define declNotationName (parser->m_declNotationName) -#define declNotationPublicId (parser->m_declNotationPublicId) -#define declElementType (parser->m_declElementType) -#define declAttributeId (parser->m_declAttributeId) -#define declAttributeIsCdata (parser->m_declAttributeIsCdata) -#define declAttributeIsId (parser->m_declAttributeIsId) -#define freeTagList (parser->m_freeTagList) -#define freeBindingList (parser->m_freeBindingList) -#define inheritedBindings (parser->m_inheritedBindings) -#define tagStack (parser->m_tagStack) -#define atts (parser->m_atts) -#define attsSize (parser->m_attsSize) -#define nSpecifiedAtts (parser->m_nSpecifiedAtts) -#define idAttIndex (parser->m_idAttIndex) -#define nsAtts (parser->m_nsAtts) -#define nsAttsVersion (parser->m_nsAttsVersion) -#define nsAttsPower (parser->m_nsAttsPower) -#define attInfo (parser->m_attInfo) -#define tempPool (parser->m_tempPool) -#define temp2Pool (parser->m_temp2Pool) -#define groupConnector (parser->m_groupConnector) -#define groupSize (parser->m_groupSize) -#define namespaceSeparator (parser->m_namespaceSeparator) -#define parentParser (parser->m_parentParser) -#define ps_parsing (parser->m_parsingStatus.parsing) -#define ps_finalBuffer (parser->m_parsingStatus.finalBuffer) -#ifdef XML_DTD -#define isParamEntity (parser->m_isParamEntity) -#define useForeignDTD (parser->m_useForeignDTD) -#define paramEntityParsing (parser->m_paramEntityParsing) -#endif /* XML_DTD */ -#define hash_secret_salt (parser->m_hash_secret_salt) - -XML_Parser XMLCALL -XML_ParserCreate(const XML_Char *encodingName) -{ - return XML_ParserCreate_MM(encodingName, NULL, NULL); -} - -XML_Parser XMLCALL -XML_ParserCreateNS(const XML_Char *encodingName, XML_Char nsSep) -{ - XML_Char tmp[2]; - *tmp = nsSep; - return XML_ParserCreate_MM(encodingName, NULL, tmp); -} - -static const XML_Char implicitContext[] = { - ASCII_x, ASCII_m, ASCII_l, ASCII_EQUALS, ASCII_h, ASCII_t, ASCII_t, ASCII_p, - ASCII_COLON, ASCII_SLASH, ASCII_SLASH, ASCII_w, ASCII_w, ASCII_w, - ASCII_PERIOD, ASCII_w, ASCII_3, ASCII_PERIOD, ASCII_o, ASCII_r, ASCII_g, - ASCII_SLASH, ASCII_X, ASCII_M, ASCII_L, ASCII_SLASH, ASCII_1, ASCII_9, - ASCII_9, ASCII_8, ASCII_SLASH, ASCII_n, ASCII_a, ASCII_m, ASCII_e, - ASCII_s, ASCII_p, ASCII_a, ASCII_c, ASCII_e, '\0' -}; - -static unsigned long -generate_hash_secret_salt(void) -{ - unsigned int seed = time(NULL) % UINT_MAX; - srand(seed); - return rand(); -} - -static XML_Bool /* only valid for root parser */ -startParsing(XML_Parser parser) -{ - /* hash functions must be initialized before setContext() is called */ - if (hash_secret_salt == 0) - hash_secret_salt = generate_hash_secret_salt(); - if (ns) { - /* implicit context only set for root parser, since child - parsers (i.e. external entity parsers) will inherit it - */ - return setContext(parser, implicitContext); - } - return XML_TRUE; -} - -XML_Parser XMLCALL -XML_ParserCreate_MM(const XML_Char *encodingName, - const XML_Memory_Handling_Suite *memsuite, - const XML_Char *nameSep) -{ - return parserCreate(encodingName, memsuite, nameSep, NULL); -} - -static XML_Parser -parserCreate(const XML_Char *encodingName, - const XML_Memory_Handling_Suite *memsuite, - const XML_Char *nameSep, - DTD *dtd) -{ - XML_Parser parser; - - if (memsuite) { - XML_Memory_Handling_Suite *mtemp; - parser = (XML_Parser) - memsuite->malloc_fcn(sizeof(struct XML_ParserStruct)); - if (parser != NULL) { - mtemp = (XML_Memory_Handling_Suite *)&(parser->m_mem); - mtemp->malloc_fcn = memsuite->malloc_fcn; - mtemp->realloc_fcn = memsuite->realloc_fcn; - mtemp->free_fcn = memsuite->free_fcn; - } - } - else { - XML_Memory_Handling_Suite *mtemp; - parser = (XML_Parser)malloc(sizeof(struct XML_ParserStruct)); - if (parser != NULL) { - mtemp = (XML_Memory_Handling_Suite *)&(parser->m_mem); - mtemp->malloc_fcn = malloc; - mtemp->realloc_fcn = realloc; - mtemp->free_fcn = free; - } - } - - if (!parser) - return parser; - - buffer = NULL; - bufferLim = NULL; - - attsSize = INIT_ATTS_SIZE; - atts = (ATTRIBUTE *)MALLOC(attsSize * sizeof(ATTRIBUTE)); - if (atts == NULL) { - FREE(parser); - return NULL; - } -#ifdef XML_ATTR_INFO - attInfo = (XML_AttrInfo*)MALLOC(attsSize * sizeof(XML_AttrInfo)); - if (attInfo == NULL) { - FREE(atts); - FREE(parser); - return NULL; - } -#endif - dataBuf = (XML_Char *)MALLOC(INIT_DATA_BUF_SIZE * sizeof(XML_Char)); - if (dataBuf == NULL) { - FREE(atts); -#ifdef XML_ATTR_INFO - FREE(attInfo); -#endif - FREE(parser); - return NULL; - } - dataBufEnd = dataBuf + INIT_DATA_BUF_SIZE; - - if (dtd) - _dtd = dtd; - else { - _dtd = dtdCreate(&parser->m_mem); - if (_dtd == NULL) { - FREE(dataBuf); - FREE(atts); -#ifdef XML_ATTR_INFO - FREE(attInfo); -#endif - FREE(parser); - return NULL; - } - } - - freeBindingList = NULL; - freeTagList = NULL; - freeInternalEntities = NULL; - - groupSize = 0; - groupConnector = NULL; - - unknownEncodingHandler = NULL; - unknownEncodingHandlerData = NULL; - - namespaceSeparator = ASCII_EXCL; - ns = XML_FALSE; - ns_triplets = XML_FALSE; - - nsAtts = NULL; - nsAttsVersion = 0; - nsAttsPower = 0; - - poolInit(&tempPool, &(parser->m_mem)); - poolInit(&temp2Pool, &(parser->m_mem)); - parserInit(parser, encodingName); - - if (encodingName && !protocolEncodingName) { - XML_ParserFree(parser); - return NULL; - } - - if (nameSep) { - ns = XML_TRUE; - internalEncoding = XmlGetInternalEncodingNS(); - namespaceSeparator = *nameSep; - } - else { - internalEncoding = XmlGetInternalEncoding(); - } - - return parser; -} - -static void -parserInit(XML_Parser parser, const XML_Char *encodingName) -{ - processor = prologInitProcessor; - XmlPrologStateInit(&prologState); - protocolEncodingName = (encodingName != NULL - ? poolCopyString(&tempPool, encodingName) - : NULL); - curBase = NULL; - XmlInitEncoding(&initEncoding, &encoding, 0); - userData = NULL; - handlerArg = NULL; - startElementHandler = NULL; - endElementHandler = NULL; - characterDataHandler = NULL; - processingInstructionHandler = NULL; - commentHandler = NULL; - startCdataSectionHandler = NULL; - endCdataSectionHandler = NULL; - defaultHandler = NULL; - startDoctypeDeclHandler = NULL; - endDoctypeDeclHandler = NULL; - unparsedEntityDeclHandler = NULL; - notationDeclHandler = NULL; - startNamespaceDeclHandler = NULL; - endNamespaceDeclHandler = NULL; - notStandaloneHandler = NULL; - externalEntityRefHandler = NULL; - externalEntityRefHandlerArg = parser; - skippedEntityHandler = NULL; - elementDeclHandler = NULL; - attlistDeclHandler = NULL; - entityDeclHandler = NULL; - xmlDeclHandler = NULL; - bufferPtr = buffer; - bufferEnd = buffer; - parseEndByteIndex = 0; - parseEndPtr = NULL; - declElementType = NULL; - declAttributeId = NULL; - declEntity = NULL; - doctypeName = NULL; - doctypeSysid = NULL; - doctypePubid = NULL; - declAttributeType = NULL; - declNotationName = NULL; - declNotationPublicId = NULL; - declAttributeIsCdata = XML_FALSE; - declAttributeIsId = XML_FALSE; - memset(&position, 0, sizeof(POSITION)); - errorCode = XML_ERROR_NONE; - eventPtr = NULL; - eventEndPtr = NULL; - positionPtr = NULL; - openInternalEntities = NULL; - defaultExpandInternalEntities = XML_TRUE; - tagLevel = 0; - tagStack = NULL; - inheritedBindings = NULL; - nSpecifiedAtts = 0; - unknownEncodingMem = NULL; - unknownEncodingRelease = NULL; - unknownEncodingData = NULL; - parentParser = NULL; - ps_parsing = XML_INITIALIZED; -#ifdef XML_DTD - isParamEntity = XML_FALSE; - useForeignDTD = XML_FALSE; - paramEntityParsing = XML_PARAM_ENTITY_PARSING_NEVER; -#endif - hash_secret_salt = 0; -} - -/* moves list of bindings to freeBindingList */ -static void FASTCALL -moveToFreeBindingList(XML_Parser parser, BINDING *bindings) -{ - while (bindings) { - BINDING *b = bindings; - bindings = bindings->nextTagBinding; - b->nextTagBinding = freeBindingList; - freeBindingList = b; - } -} - -XML_Bool XMLCALL -XML_ParserReset(XML_Parser parser, const XML_Char *encodingName) -{ - TAG *tStk; - OPEN_INTERNAL_ENTITY *openEntityList; - if (parentParser) - return XML_FALSE; - /* move tagStack to freeTagList */ - tStk = tagStack; - while (tStk) { - TAG *tag = tStk; - tStk = tStk->parent; - tag->parent = freeTagList; - moveToFreeBindingList(parser, tag->bindings); - tag->bindings = NULL; - freeTagList = tag; - } - /* move openInternalEntities to freeInternalEntities */ - openEntityList = openInternalEntities; - while (openEntityList) { - OPEN_INTERNAL_ENTITY *openEntity = openEntityList; - openEntityList = openEntity->next; - openEntity->next = freeInternalEntities; - freeInternalEntities = openEntity; - } - moveToFreeBindingList(parser, inheritedBindings); - FREE(unknownEncodingMem); - if (unknownEncodingRelease) - unknownEncodingRelease(unknownEncodingData); - poolClear(&tempPool); - poolClear(&temp2Pool); - parserInit(parser, encodingName); - dtdReset(_dtd, &parser->m_mem); - return XML_TRUE; -} - -enum XML_Status XMLCALL -XML_SetEncoding(XML_Parser parser, const XML_Char *encodingName) -{ - /* Block after XML_Parse()/XML_ParseBuffer() has been called. - XXX There's no way for the caller to determine which of the - XXX possible error cases caused the XML_STATUS_ERROR return. - */ - if (ps_parsing == XML_PARSING || ps_parsing == XML_SUSPENDED) - return XML_STATUS_ERROR; - if (encodingName == NULL) - protocolEncodingName = NULL; - else { - protocolEncodingName = poolCopyString(&tempPool, encodingName); - if (!protocolEncodingName) - return XML_STATUS_ERROR; - } - return XML_STATUS_OK; -} - -XML_Parser XMLCALL -XML_ExternalEntityParserCreate(XML_Parser oldParser, - const XML_Char *context, - const XML_Char *encodingName) -{ - XML_Parser parser = oldParser; - DTD *newDtd = NULL; - DTD *oldDtd = _dtd; - XML_StartElementHandler oldStartElementHandler = startElementHandler; - XML_EndElementHandler oldEndElementHandler = endElementHandler; - XML_CharacterDataHandler oldCharacterDataHandler = characterDataHandler; - XML_ProcessingInstructionHandler oldProcessingInstructionHandler - = processingInstructionHandler; - XML_CommentHandler oldCommentHandler = commentHandler; - XML_StartCdataSectionHandler oldStartCdataSectionHandler - = startCdataSectionHandler; - XML_EndCdataSectionHandler oldEndCdataSectionHandler - = endCdataSectionHandler; - XML_DefaultHandler oldDefaultHandler = defaultHandler; - XML_UnparsedEntityDeclHandler oldUnparsedEntityDeclHandler - = unparsedEntityDeclHandler; - XML_NotationDeclHandler oldNotationDeclHandler = notationDeclHandler; - XML_StartNamespaceDeclHandler oldStartNamespaceDeclHandler - = startNamespaceDeclHandler; - XML_EndNamespaceDeclHandler oldEndNamespaceDeclHandler - = endNamespaceDeclHandler; - XML_NotStandaloneHandler oldNotStandaloneHandler = notStandaloneHandler; - XML_ExternalEntityRefHandler oldExternalEntityRefHandler - = externalEntityRefHandler; - XML_SkippedEntityHandler oldSkippedEntityHandler = skippedEntityHandler; - XML_UnknownEncodingHandler oldUnknownEncodingHandler - = unknownEncodingHandler; - XML_ElementDeclHandler oldElementDeclHandler = elementDeclHandler; - XML_AttlistDeclHandler oldAttlistDeclHandler = attlistDeclHandler; - XML_EntityDeclHandler oldEntityDeclHandler = entityDeclHandler; - XML_XmlDeclHandler oldXmlDeclHandler = xmlDeclHandler; - ELEMENT_TYPE * oldDeclElementType = declElementType; - - void *oldUserData = userData; - void *oldHandlerArg = handlerArg; - XML_Bool oldDefaultExpandInternalEntities = defaultExpandInternalEntities; - XML_Parser oldExternalEntityRefHandlerArg = externalEntityRefHandlerArg; -#ifdef XML_DTD - enum XML_ParamEntityParsing oldParamEntityParsing = paramEntityParsing; - int oldInEntityValue = prologState.inEntityValue; -#endif - XML_Bool oldns_triplets = ns_triplets; - /* Note that the new parser shares the same hash secret as the old - parser, so that dtdCopy and copyEntityTable can lookup values - from hash tables associated with either parser without us having - to worry which hash secrets each table has. - */ - unsigned long oldhash_secret_salt = hash_secret_salt; - -#ifdef XML_DTD - if (!context) - newDtd = oldDtd; -#endif /* XML_DTD */ - - /* Note that the magical uses of the pre-processor to make field - access look more like C++ require that `parser' be overwritten - here. This makes this function more painful to follow than it - would be otherwise. - */ - if (ns) { - XML_Char tmp[2]; - *tmp = namespaceSeparator; - parser = parserCreate(encodingName, &parser->m_mem, tmp, newDtd); - } - else { - parser = parserCreate(encodingName, &parser->m_mem, NULL, newDtd); - } - - if (!parser) - return NULL; - - startElementHandler = oldStartElementHandler; - endElementHandler = oldEndElementHandler; - characterDataHandler = oldCharacterDataHandler; - processingInstructionHandler = oldProcessingInstructionHandler; - commentHandler = oldCommentHandler; - startCdataSectionHandler = oldStartCdataSectionHandler; - endCdataSectionHandler = oldEndCdataSectionHandler; - defaultHandler = oldDefaultHandler; - unparsedEntityDeclHandler = oldUnparsedEntityDeclHandler; - notationDeclHandler = oldNotationDeclHandler; - startNamespaceDeclHandler = oldStartNamespaceDeclHandler; - endNamespaceDeclHandler = oldEndNamespaceDeclHandler; - notStandaloneHandler = oldNotStandaloneHandler; - externalEntityRefHandler = oldExternalEntityRefHandler; - skippedEntityHandler = oldSkippedEntityHandler; - unknownEncodingHandler = oldUnknownEncodingHandler; - elementDeclHandler = oldElementDeclHandler; - attlistDeclHandler = oldAttlistDeclHandler; - entityDeclHandler = oldEntityDeclHandler; - xmlDeclHandler = oldXmlDeclHandler; - declElementType = oldDeclElementType; - userData = oldUserData; - if (oldUserData == oldHandlerArg) - handlerArg = userData; - else - handlerArg = parser; - if (oldExternalEntityRefHandlerArg != oldParser) - externalEntityRefHandlerArg = oldExternalEntityRefHandlerArg; - defaultExpandInternalEntities = oldDefaultExpandInternalEntities; - ns_triplets = oldns_triplets; - hash_secret_salt = oldhash_secret_salt; - parentParser = oldParser; -#ifdef XML_DTD - paramEntityParsing = oldParamEntityParsing; - prologState.inEntityValue = oldInEntityValue; - if (context) { -#endif /* XML_DTD */ - if (!dtdCopy(oldParser, _dtd, oldDtd, &parser->m_mem) - || !setContext(parser, context)) { - XML_ParserFree(parser); - return NULL; - } - processor = externalEntityInitProcessor; -#ifdef XML_DTD - } - else { - /* The DTD instance referenced by _dtd is shared between the document's - root parser and external PE parsers, therefore one does not need to - call setContext. In addition, one also *must* not call setContext, - because this would overwrite existing prefix->binding pointers in - _dtd with ones that get destroyed with the external PE parser. - This would leave those prefixes with dangling pointers. - */ - isParamEntity = XML_TRUE; - XmlPrologStateInitExternalEntity(&prologState); - processor = externalParEntInitProcessor; - } -#endif /* XML_DTD */ - return parser; -} - -static void FASTCALL -destroyBindings(BINDING *bindings, XML_Parser parser) -{ - for (;;) { - BINDING *b = bindings; - if (!b) - break; - bindings = b->nextTagBinding; - FREE(b->uri); - FREE(b); - } -} - -void XMLCALL -XML_ParserFree(XML_Parser parser) -{ - TAG *tagList; - OPEN_INTERNAL_ENTITY *entityList; - if (parser == NULL) - return; - /* free tagStack and freeTagList */ - tagList = tagStack; - for (;;) { - TAG *p; - if (tagList == NULL) { - if (freeTagList == NULL) - break; - tagList = freeTagList; - freeTagList = NULL; - } - p = tagList; - tagList = tagList->parent; - FREE(p->buf); - destroyBindings(p->bindings, parser); - FREE(p); - } - /* free openInternalEntities and freeInternalEntities */ - entityList = openInternalEntities; - for (;;) { - OPEN_INTERNAL_ENTITY *openEntity; - if (entityList == NULL) { - if (freeInternalEntities == NULL) - break; - entityList = freeInternalEntities; - freeInternalEntities = NULL; - } - openEntity = entityList; - entityList = entityList->next; - FREE(openEntity); - } - - destroyBindings(freeBindingList, parser); - destroyBindings(inheritedBindings, parser); - poolDestroy(&tempPool); - poolDestroy(&temp2Pool); -#ifdef XML_DTD - /* external parameter entity parsers share the DTD structure - parser->m_dtd with the root parser, so we must not destroy it - */ - if (!isParamEntity && _dtd) -#else - if (_dtd) -#endif /* XML_DTD */ - dtdDestroy(_dtd, (XML_Bool)!parentParser, &parser->m_mem); - FREE((void *)atts); -#ifdef XML_ATTR_INFO - FREE((void *)attInfo); -#endif - FREE(groupConnector); - FREE(buffer); - FREE(dataBuf); - FREE(nsAtts); - FREE(unknownEncodingMem); - if (unknownEncodingRelease) - unknownEncodingRelease(unknownEncodingData); - FREE(parser); -} - -void XMLCALL -XML_UseParserAsHandlerArg(XML_Parser parser) -{ - handlerArg = parser; -} - -enum XML_Error XMLCALL -XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD) -{ -#ifdef XML_DTD - /* block after XML_Parse()/XML_ParseBuffer() has been called */ - if (ps_parsing == XML_PARSING || ps_parsing == XML_SUSPENDED) - return XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING; - useForeignDTD = useDTD; - return XML_ERROR_NONE; -#else - return XML_ERROR_FEATURE_REQUIRES_XML_DTD; -#endif -} - -void XMLCALL -XML_SetReturnNSTriplet(XML_Parser parser, int do_nst) -{ - /* block after XML_Parse()/XML_ParseBuffer() has been called */ - if (ps_parsing == XML_PARSING || ps_parsing == XML_SUSPENDED) - return; - ns_triplets = do_nst ? XML_TRUE : XML_FALSE; -} - -void XMLCALL -XML_SetUserData(XML_Parser parser, void *p) -{ - if (handlerArg == userData) - handlerArg = userData = p; - else - userData = p; -} - -enum XML_Status XMLCALL -XML_SetBase(XML_Parser parser, const XML_Char *p) -{ - if (p) { - p = poolCopyString(&_dtd->pool, p); - if (!p) - return XML_STATUS_ERROR; - curBase = p; - } - else - curBase = NULL; - return XML_STATUS_OK; -} - -const XML_Char * XMLCALL -XML_GetBase(XML_Parser parser) -{ - return curBase; -} - -int XMLCALL -XML_GetSpecifiedAttributeCount(XML_Parser parser) -{ - return nSpecifiedAtts; -} - -int XMLCALL -XML_GetIdAttributeIndex(XML_Parser parser) -{ - return idAttIndex; -} - -#ifdef XML_ATTR_INFO -const XML_AttrInfo * XMLCALL -XML_GetAttributeInfo(XML_Parser parser) -{ - return attInfo; -} -#endif - -void XMLCALL -XML_SetElementHandler(XML_Parser parser, - XML_StartElementHandler start, - XML_EndElementHandler end) -{ - startElementHandler = start; - endElementHandler = end; -} - -void XMLCALL -XML_SetStartElementHandler(XML_Parser parser, - XML_StartElementHandler start) { - startElementHandler = start; -} - -void XMLCALL -XML_SetEndElementHandler(XML_Parser parser, - XML_EndElementHandler end) { - endElementHandler = end; -} - -void XMLCALL -XML_SetCharacterDataHandler(XML_Parser parser, - XML_CharacterDataHandler handler) -{ - characterDataHandler = handler; -} - -void XMLCALL -XML_SetProcessingInstructionHandler(XML_Parser parser, - XML_ProcessingInstructionHandler handler) -{ - processingInstructionHandler = handler; -} - -void XMLCALL -XML_SetCommentHandler(XML_Parser parser, - XML_CommentHandler handler) -{ - commentHandler = handler; -} - -void XMLCALL -XML_SetCdataSectionHandler(XML_Parser parser, - XML_StartCdataSectionHandler start, - XML_EndCdataSectionHandler end) -{ - startCdataSectionHandler = start; - endCdataSectionHandler = end; -} - -void XMLCALL -XML_SetStartCdataSectionHandler(XML_Parser parser, - XML_StartCdataSectionHandler start) { - startCdataSectionHandler = start; -} - -void XMLCALL -XML_SetEndCdataSectionHandler(XML_Parser parser, - XML_EndCdataSectionHandler end) { - endCdataSectionHandler = end; -} - -void XMLCALL -XML_SetDefaultHandler(XML_Parser parser, - XML_DefaultHandler handler) -{ - defaultHandler = handler; - defaultExpandInternalEntities = XML_FALSE; -} - -void XMLCALL -XML_SetDefaultHandlerExpand(XML_Parser parser, - XML_DefaultHandler handler) -{ - defaultHandler = handler; - defaultExpandInternalEntities = XML_TRUE; -} - -void XMLCALL -XML_SetDoctypeDeclHandler(XML_Parser parser, - XML_StartDoctypeDeclHandler start, - XML_EndDoctypeDeclHandler end) -{ - startDoctypeDeclHandler = start; - endDoctypeDeclHandler = end; -} - -void XMLCALL -XML_SetStartDoctypeDeclHandler(XML_Parser parser, - XML_StartDoctypeDeclHandler start) { - startDoctypeDeclHandler = start; -} - -void XMLCALL -XML_SetEndDoctypeDeclHandler(XML_Parser parser, - XML_EndDoctypeDeclHandler end) { - endDoctypeDeclHandler = end; -} - -void XMLCALL -XML_SetUnparsedEntityDeclHandler(XML_Parser parser, - XML_UnparsedEntityDeclHandler handler) -{ - unparsedEntityDeclHandler = handler; -} - -void XMLCALL -XML_SetNotationDeclHandler(XML_Parser parser, - XML_NotationDeclHandler handler) -{ - notationDeclHandler = handler; -} - -void XMLCALL -XML_SetNamespaceDeclHandler(XML_Parser parser, - XML_StartNamespaceDeclHandler start, - XML_EndNamespaceDeclHandler end) -{ - startNamespaceDeclHandler = start; - endNamespaceDeclHandler = end; -} - -void XMLCALL -XML_SetStartNamespaceDeclHandler(XML_Parser parser, - XML_StartNamespaceDeclHandler start) { - startNamespaceDeclHandler = start; -} - -void XMLCALL -XML_SetEndNamespaceDeclHandler(XML_Parser parser, - XML_EndNamespaceDeclHandler end) { - endNamespaceDeclHandler = end; -} - -void XMLCALL -XML_SetNotStandaloneHandler(XML_Parser parser, - XML_NotStandaloneHandler handler) -{ - notStandaloneHandler = handler; -} - -void XMLCALL -XML_SetExternalEntityRefHandler(XML_Parser parser, - XML_ExternalEntityRefHandler handler) -{ - externalEntityRefHandler = handler; -} - -void XMLCALL -XML_SetExternalEntityRefHandlerArg(XML_Parser parser, void *arg) -{ - if (arg) - externalEntityRefHandlerArg = (XML_Parser)arg; - else - externalEntityRefHandlerArg = parser; -} - -void XMLCALL -XML_SetSkippedEntityHandler(XML_Parser parser, - XML_SkippedEntityHandler handler) -{ - skippedEntityHandler = handler; -} - -void XMLCALL -XML_SetUnknownEncodingHandler(XML_Parser parser, - XML_UnknownEncodingHandler handler, - void *data) -{ - unknownEncodingHandler = handler; - unknownEncodingHandlerData = data; -} - -void XMLCALL -XML_SetElementDeclHandler(XML_Parser parser, - XML_ElementDeclHandler eldecl) -{ - elementDeclHandler = eldecl; -} - -void XMLCALL -XML_SetAttlistDeclHandler(XML_Parser parser, - XML_AttlistDeclHandler attdecl) -{ - attlistDeclHandler = attdecl; -} - -void XMLCALL -XML_SetEntityDeclHandler(XML_Parser parser, - XML_EntityDeclHandler handler) -{ - entityDeclHandler = handler; -} - -void XMLCALL -XML_SetXmlDeclHandler(XML_Parser parser, - XML_XmlDeclHandler handler) { - xmlDeclHandler = handler; -} - -int XMLCALL -XML_SetParamEntityParsing(XML_Parser parser, - enum XML_ParamEntityParsing peParsing) -{ - /* block after XML_Parse()/XML_ParseBuffer() has been called */ - if (ps_parsing == XML_PARSING || ps_parsing == XML_SUSPENDED) - return 0; -#ifdef XML_DTD - paramEntityParsing = peParsing; - return 1; -#else - return peParsing == XML_PARAM_ENTITY_PARSING_NEVER; -#endif -} - -int XMLCALL -XML_SetHashSalt(XML_Parser parser, - unsigned long hash_salt) -{ - /* block after XML_Parse()/XML_ParseBuffer() has been called */ - if (ps_parsing == XML_PARSING || ps_parsing == XML_SUSPENDED) - return 0; - hash_secret_salt = hash_salt; - return 1; -} - -enum XML_Status XMLCALL -XML_Parse(XML_Parser parser, const char *s, int len, int isFinal) -{ - switch (ps_parsing) { - case XML_SUSPENDED: - errorCode = XML_ERROR_SUSPENDED; - return XML_STATUS_ERROR; - case XML_FINISHED: - errorCode = XML_ERROR_FINISHED; - return XML_STATUS_ERROR; - case XML_INITIALIZED: - if (parentParser == NULL && !startParsing(parser)) { - errorCode = XML_ERROR_NO_MEMORY; - return XML_STATUS_ERROR; - } - default: - ps_parsing = XML_PARSING; - } - - if (len == 0) { - ps_finalBuffer = (XML_Bool)isFinal; - if (!isFinal) - return XML_STATUS_OK; - positionPtr = bufferPtr; - parseEndPtr = bufferEnd; - - /* If data are left over from last buffer, and we now know that these - data are the final chunk of input, then we have to check them again - to detect errors based on that fact. - */ - errorCode = processor(parser, bufferPtr, parseEndPtr, &bufferPtr); - - if (errorCode == XML_ERROR_NONE) { - switch (ps_parsing) { - case XML_SUSPENDED: - XmlUpdatePosition(encoding, positionPtr, bufferPtr, &position); - positionPtr = bufferPtr; - return XML_STATUS_SUSPENDED; - case XML_INITIALIZED: - case XML_PARSING: - ps_parsing = XML_FINISHED; - /* fall through */ - default: - return XML_STATUS_OK; - } - } - eventEndPtr = eventPtr; - processor = errorProcessor; - return XML_STATUS_ERROR; - } -#ifndef XML_CONTEXT_BYTES - else if (bufferPtr == bufferEnd) { - const char *end; - int nLeftOver; - enum XML_Error result; - parseEndByteIndex += len; - positionPtr = s; - ps_finalBuffer = (XML_Bool)isFinal; - - errorCode = processor(parser, s, parseEndPtr = s + len, &end); - - if (errorCode != XML_ERROR_NONE) { - eventEndPtr = eventPtr; - processor = errorProcessor; - return XML_STATUS_ERROR; - } - else { - switch (ps_parsing) { - case XML_SUSPENDED: - result = XML_STATUS_SUSPENDED; - break; - case XML_INITIALIZED: - case XML_PARSING: - if (isFinal) { - ps_parsing = XML_FINISHED; - return XML_STATUS_OK; - } - /* fall through */ - default: - result = XML_STATUS_OK; - } - } - - XmlUpdatePosition(encoding, positionPtr, end, &position); - nLeftOver = s + len - end; - if (nLeftOver) { - if (buffer == NULL || nLeftOver > bufferLim - buffer) { - /* FIXME avoid integer overflow */ - char *temp; - temp = (buffer == NULL - ? (char *)MALLOC(len * 2) - : (char *)REALLOC(buffer, len * 2)); - if (temp == NULL) { - errorCode = XML_ERROR_NO_MEMORY; - eventPtr = eventEndPtr = NULL; - processor = errorProcessor; - return XML_STATUS_ERROR; - } - buffer = temp; - bufferLim = buffer + len * 2; - } - memcpy(buffer, end, nLeftOver); - } - bufferPtr = buffer; - bufferEnd = buffer + nLeftOver; - positionPtr = bufferPtr; - parseEndPtr = bufferEnd; - eventPtr = bufferPtr; - eventEndPtr = bufferPtr; - return result; - } -#endif /* not defined XML_CONTEXT_BYTES */ - else { - void *buff = XML_GetBuffer(parser, len); - if (buff == NULL) - return XML_STATUS_ERROR; - else { - memcpy(buff, s, len); - return XML_ParseBuffer(parser, len, isFinal); - } - } -} - -enum XML_Status XMLCALL -XML_ParseBuffer(XML_Parser parser, int len, int isFinal) -{ - const char *start; - enum XML_Status result = XML_STATUS_OK; - - switch (ps_parsing) { - case XML_SUSPENDED: - errorCode = XML_ERROR_SUSPENDED; - return XML_STATUS_ERROR; - case XML_FINISHED: - errorCode = XML_ERROR_FINISHED; - return XML_STATUS_ERROR; - case XML_INITIALIZED: - if (parentParser == NULL && !startParsing(parser)) { - errorCode = XML_ERROR_NO_MEMORY; - return XML_STATUS_ERROR; - } - default: - ps_parsing = XML_PARSING; - } - - start = bufferPtr; - positionPtr = start; - bufferEnd += len; - parseEndPtr = bufferEnd; - parseEndByteIndex += len; - ps_finalBuffer = (XML_Bool)isFinal; - - errorCode = processor(parser, start, parseEndPtr, &bufferPtr); - - if (errorCode != XML_ERROR_NONE) { - eventEndPtr = eventPtr; - processor = errorProcessor; - return XML_STATUS_ERROR; - } - else { - switch (ps_parsing) { - case XML_SUSPENDED: - result = XML_STATUS_SUSPENDED; - break; - case XML_INITIALIZED: - case XML_PARSING: - if (isFinal) { - ps_parsing = XML_FINISHED; - return result; - } - default: ; /* should not happen */ - } - } - - XmlUpdatePosition(encoding, positionPtr, bufferPtr, &position); - positionPtr = bufferPtr; - return result; -} - -void * XMLCALL -XML_GetBuffer(XML_Parser parser, int len) -{ - switch (ps_parsing) { - case XML_SUSPENDED: - errorCode = XML_ERROR_SUSPENDED; - return NULL; - case XML_FINISHED: - errorCode = XML_ERROR_FINISHED; - return NULL; - default: ; - } - - if (len > bufferLim - bufferEnd) { - /* FIXME avoid integer overflow */ - int neededSize = len + (int)(bufferEnd - bufferPtr); -#ifdef XML_CONTEXT_BYTES - int keep = (int)(bufferPtr - buffer); - - if (keep > XML_CONTEXT_BYTES) - keep = XML_CONTEXT_BYTES; - neededSize += keep; -#endif /* defined XML_CONTEXT_BYTES */ - if (neededSize <= bufferLim - buffer) { -#ifdef XML_CONTEXT_BYTES - if (keep < bufferPtr - buffer) { - int offset = (int)(bufferPtr - buffer) - keep; - memmove(buffer, &buffer[offset], bufferEnd - bufferPtr + keep); - bufferEnd -= offset; - bufferPtr -= offset; - } -#else - memmove(buffer, bufferPtr, bufferEnd - bufferPtr); - bufferEnd = buffer + (bufferEnd - bufferPtr); - bufferPtr = buffer; -#endif /* not defined XML_CONTEXT_BYTES */ - } - else { - char *newBuf; - int bufferSize = (int)(bufferLim - bufferPtr); - if (bufferSize == 0) - bufferSize = INIT_BUFFER_SIZE; - do { - bufferSize *= 2; - } while (bufferSize < neededSize); - newBuf = (char *)MALLOC(bufferSize); - if (newBuf == 0) { - errorCode = XML_ERROR_NO_MEMORY; - return NULL; - } - bufferLim = newBuf + bufferSize; -#ifdef XML_CONTEXT_BYTES - if (bufferPtr) { - int keep = (int)(bufferPtr - buffer); - if (keep > XML_CONTEXT_BYTES) - keep = XML_CONTEXT_BYTES; - memcpy(newBuf, &bufferPtr[-keep], bufferEnd - bufferPtr + keep); - FREE(buffer); - buffer = newBuf; - bufferEnd = buffer + (bufferEnd - bufferPtr) + keep; - bufferPtr = buffer + keep; - } - else { - bufferEnd = newBuf + (bufferEnd - bufferPtr); - bufferPtr = buffer = newBuf; - } -#else - if (bufferPtr) { - memcpy(newBuf, bufferPtr, bufferEnd - bufferPtr); - FREE(buffer); - } - bufferEnd = newBuf + (bufferEnd - bufferPtr); - bufferPtr = buffer = newBuf; -#endif /* not defined XML_CONTEXT_BYTES */ - } - eventPtr = eventEndPtr = NULL; - positionPtr = NULL; - } - return bufferEnd; -} - -enum XML_Status XMLCALL -XML_StopParser(XML_Parser parser, XML_Bool resumable) -{ - switch (ps_parsing) { - case XML_SUSPENDED: - if (resumable) { - errorCode = XML_ERROR_SUSPENDED; - return XML_STATUS_ERROR; - } - ps_parsing = XML_FINISHED; - break; - case XML_FINISHED: - errorCode = XML_ERROR_FINISHED; - return XML_STATUS_ERROR; - default: - if (resumable) { -#ifdef XML_DTD - if (isParamEntity) { - errorCode = XML_ERROR_SUSPEND_PE; - return XML_STATUS_ERROR; - } -#endif - ps_parsing = XML_SUSPENDED; - } - else - ps_parsing = XML_FINISHED; - } - return XML_STATUS_OK; -} - -enum XML_Status XMLCALL -XML_ResumeParser(XML_Parser parser) -{ - enum XML_Status result = XML_STATUS_OK; - - if (ps_parsing != XML_SUSPENDED) { - errorCode = XML_ERROR_NOT_SUSPENDED; - return XML_STATUS_ERROR; - } - ps_parsing = XML_PARSING; - - errorCode = processor(parser, bufferPtr, parseEndPtr, &bufferPtr); - - if (errorCode != XML_ERROR_NONE) { - eventEndPtr = eventPtr; - processor = errorProcessor; - return XML_STATUS_ERROR; - } - else { - switch (ps_parsing) { - case XML_SUSPENDED: - result = XML_STATUS_SUSPENDED; - break; - case XML_INITIALIZED: - case XML_PARSING: - if (ps_finalBuffer) { - ps_parsing = XML_FINISHED; - return result; - } - default: ; - } - } - - XmlUpdatePosition(encoding, positionPtr, bufferPtr, &position); - positionPtr = bufferPtr; - return result; -} - -void XMLCALL -XML_GetParsingStatus(XML_Parser parser, XML_ParsingStatus *status) -{ - assert(status != NULL); - *status = parser->m_parsingStatus; -} - -enum XML_Error XMLCALL -XML_GetErrorCode(XML_Parser parser) -{ - return errorCode; -} - -XML_Index XMLCALL -XML_GetCurrentByteIndex(XML_Parser parser) -{ - if (eventPtr) - return parseEndByteIndex - (parseEndPtr - eventPtr); - return -1; -} - -int XMLCALL -XML_GetCurrentByteCount(XML_Parser parser) -{ - if (eventEndPtr && eventPtr) - return (int)(eventEndPtr - eventPtr); - return 0; -} - -const char * XMLCALL -XML_GetInputContext(XML_Parser parser, int *offset, int *size) -{ -#ifdef XML_CONTEXT_BYTES - if (eventPtr && buffer) { - *offset = (int)(eventPtr - buffer); - *size = (int)(bufferEnd - buffer); - return buffer; - } -#endif /* defined XML_CONTEXT_BYTES */ - return (char *) 0; -} - -XML_Size XMLCALL -XML_GetCurrentLineNumber(XML_Parser parser) -{ - if (eventPtr && eventPtr >= positionPtr) { - XmlUpdatePosition(encoding, positionPtr, eventPtr, &position); - positionPtr = eventPtr; - } - return position.lineNumber + 1; -} - -XML_Size XMLCALL -XML_GetCurrentColumnNumber(XML_Parser parser) -{ - if (eventPtr && eventPtr >= positionPtr) { - XmlUpdatePosition(encoding, positionPtr, eventPtr, &position); - positionPtr = eventPtr; - } - return position.columnNumber; -} - -void XMLCALL -XML_FreeContentModel(XML_Parser parser, XML_Content *model) -{ - FREE(model); -} - -void * XMLCALL -XML_MemMalloc(XML_Parser parser, size_t size) -{ - return MALLOC(size); -} - -void * XMLCALL -XML_MemRealloc(XML_Parser parser, void *ptr, size_t size) -{ - return REALLOC(ptr, size); -} - -void XMLCALL -XML_MemFree(XML_Parser parser, void *ptr) -{ - FREE(ptr); -} - -void XMLCALL -XML_DefaultCurrent(XML_Parser parser) -{ - if (defaultHandler) { - if (openInternalEntities) - reportDefault(parser, - internalEncoding, - openInternalEntities->internalEventPtr, - openInternalEntities->internalEventEndPtr); - else - reportDefault(parser, encoding, eventPtr, eventEndPtr); - } -} - -const XML_LChar * XMLCALL -XML_ErrorString(enum XML_Error code) -{ - static const XML_LChar* const message[] = { - 0, - XML_L("out of memory"), - XML_L("syntax error"), - XML_L("no element found"), - XML_L("not well-formed (invalid token)"), - XML_L("unclosed token"), - XML_L("partial character"), - XML_L("mismatched tag"), - XML_L("duplicate attribute"), - XML_L("junk after document element"), - XML_L("illegal parameter entity reference"), - XML_L("undefined entity"), - XML_L("recursive entity reference"), - XML_L("asynchronous entity"), - XML_L("reference to invalid character number"), - XML_L("reference to binary entity"), - XML_L("reference to external entity in attribute"), - XML_L("XML or text declaration not at start of entity"), - XML_L("unknown encoding"), - XML_L("encoding specified in XML declaration is incorrect"), - XML_L("unclosed CDATA section"), - XML_L("error in processing external entity reference"), - XML_L("document is not standalone"), - XML_L("unexpected parser state - please send a bug report"), - XML_L("entity declared in parameter entity"), - XML_L("requested feature requires XML_DTD support in Expat"), - XML_L("cannot change setting once parsing has begun"), - XML_L("unbound prefix"), - XML_L("must not undeclare prefix"), - XML_L("incomplete markup in parameter entity"), - XML_L("XML declaration not well-formed"), - XML_L("text declaration not well-formed"), - XML_L("illegal character(s) in public id"), - XML_L("parser suspended"), - XML_L("parser not suspended"), - XML_L("parsing aborted"), - XML_L("parsing finished"), - XML_L("cannot suspend in external parameter entity"), - XML_L("reserved prefix (xml) must not be undeclared or bound to another namespace name"), - XML_L("reserved prefix (xmlns) must not be declared or undeclared"), - XML_L("prefix must not be bound to one of the reserved namespace names") - }; - if (code > 0 && code < sizeof(message)/sizeof(message[0])) - return message[code]; - return NULL; -} - -const XML_LChar * XMLCALL -XML_ExpatVersion(void) { - - /* V1 is used to string-ize the version number. However, it would - string-ize the actual version macro *names* unless we get them - substituted before being passed to V1. CPP is defined to expand - a macro, then rescan for more expansions. Thus, we use V2 to expand - the version macros, then CPP will expand the resulting V1() macro - with the correct numerals. */ - /* ### I'm assuming cpp is portable in this respect... */ - -#define V1(a,b,c) XML_L(#a)XML_L(".")XML_L(#b)XML_L(".")XML_L(#c) -#define V2(a,b,c) XML_L("expat_")V1(a,b,c) - - return V2(XML_MAJOR_VERSION, XML_MINOR_VERSION, XML_MICRO_VERSION); - -#undef V1 -#undef V2 -} - -XML_Expat_Version XMLCALL -XML_ExpatVersionInfo(void) -{ - XML_Expat_Version version; - - version.major = XML_MAJOR_VERSION; - version.minor = XML_MINOR_VERSION; - version.micro = XML_MICRO_VERSION; - - return version; -} - -const XML_Feature * XMLCALL -XML_GetFeatureList(void) -{ - static const XML_Feature features[] = { - {XML_FEATURE_SIZEOF_XML_CHAR, XML_L("sizeof(XML_Char)"), - sizeof(XML_Char)}, - {XML_FEATURE_SIZEOF_XML_LCHAR, XML_L("sizeof(XML_LChar)"), - sizeof(XML_LChar)}, -#ifdef XML_UNICODE - {XML_FEATURE_UNICODE, XML_L("XML_UNICODE"), 0}, -#endif -#ifdef XML_UNICODE_WCHAR_T - {XML_FEATURE_UNICODE_WCHAR_T, XML_L("XML_UNICODE_WCHAR_T"), 0}, -#endif -#ifdef XML_DTD - {XML_FEATURE_DTD, XML_L("XML_DTD"), 0}, -#endif -#ifdef XML_CONTEXT_BYTES - {XML_FEATURE_CONTEXT_BYTES, XML_L("XML_CONTEXT_BYTES"), - XML_CONTEXT_BYTES}, -#endif -#ifdef XML_MIN_SIZE - {XML_FEATURE_MIN_SIZE, XML_L("XML_MIN_SIZE"), 0}, -#endif -#ifdef XML_NS - {XML_FEATURE_NS, XML_L("XML_NS"), 0}, -#endif -#ifdef XML_LARGE_SIZE - {XML_FEATURE_LARGE_SIZE, XML_L("XML_LARGE_SIZE"), 0}, -#endif -#ifdef XML_ATTR_INFO - {XML_FEATURE_ATTR_INFO, XML_L("XML_ATTR_INFO"), 0}, -#endif - {XML_FEATURE_END, NULL, 0} - }; - - return features; -} - -/* Initially tag->rawName always points into the parse buffer; - for those TAG instances opened while the current parse buffer was - processed, and not yet closed, we need to store tag->rawName in a more - permanent location, since the parse buffer is about to be discarded. -*/ -static XML_Bool -storeRawNames(XML_Parser parser) -{ - TAG *tag = tagStack; - while (tag) { - int bufSize; - int nameLen = sizeof(XML_Char) * (tag->name.strLen + 1); - char *rawNameBuf = tag->buf + nameLen; - /* Stop if already stored. Since tagStack is a stack, we can stop - at the first entry that has already been copied; everything - below it in the stack is already been accounted for in a - previous call to this function. - */ - if (tag->rawName == rawNameBuf) - break; - /* For re-use purposes we need to ensure that the - size of tag->buf is a multiple of sizeof(XML_Char). - */ - bufSize = nameLen + ROUND_UP(tag->rawNameLength, sizeof(XML_Char)); - if (bufSize > tag->bufEnd - tag->buf) { - char *temp = (char *)REALLOC(tag->buf, bufSize); - if (temp == NULL) - return XML_FALSE; - /* if tag->name.str points to tag->buf (only when namespace - processing is off) then we have to update it - */ - if (tag->name.str == (XML_Char *)tag->buf) - tag->name.str = (XML_Char *)temp; - /* if tag->name.localPart is set (when namespace processing is on) - then update it as well, since it will always point into tag->buf - */ - if (tag->name.localPart) - tag->name.localPart = (XML_Char *)temp + (tag->name.localPart - - (XML_Char *)tag->buf); - tag->buf = temp; - tag->bufEnd = temp + bufSize; - rawNameBuf = temp + nameLen; - } - memcpy(rawNameBuf, tag->rawName, tag->rawNameLength); - tag->rawName = rawNameBuf; - tag = tag->parent; - } - return XML_TRUE; -} - -static enum XML_Error PTRCALL -contentProcessor(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr) -{ - enum XML_Error result = doContent(parser, 0, encoding, start, end, - endPtr, (XML_Bool)!ps_finalBuffer); - if (result == XML_ERROR_NONE) { - if (!storeRawNames(parser)) - return XML_ERROR_NO_MEMORY; - } - return result; -} - -static enum XML_Error PTRCALL -externalEntityInitProcessor(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr) -{ - enum XML_Error result = initializeEncoding(parser); - if (result != XML_ERROR_NONE) - return result; - processor = externalEntityInitProcessor2; - return externalEntityInitProcessor2(parser, start, end, endPtr); -} - -static enum XML_Error PTRCALL -externalEntityInitProcessor2(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr) -{ - const char *next = start; /* XmlContentTok doesn't always set the last arg */ - int tok = XmlContentTok(encoding, start, end, &next); - switch (tok) { - case XML_TOK_BOM: - /* If we are at the end of the buffer, this would cause the next stage, - i.e. externalEntityInitProcessor3, to pass control directly to - doContent (by detecting XML_TOK_NONE) without processing any xml text - declaration - causing the error XML_ERROR_MISPLACED_XML_PI in doContent. - */ - if (next == end && !ps_finalBuffer) { - *endPtr = next; - return XML_ERROR_NONE; - } - start = next; - break; - case XML_TOK_PARTIAL: - if (!ps_finalBuffer) { - *endPtr = start; - return XML_ERROR_NONE; - } - eventPtr = start; - return XML_ERROR_UNCLOSED_TOKEN; - case XML_TOK_PARTIAL_CHAR: - if (!ps_finalBuffer) { - *endPtr = start; - return XML_ERROR_NONE; - } - eventPtr = start; - return XML_ERROR_PARTIAL_CHAR; - } - processor = externalEntityInitProcessor3; - return externalEntityInitProcessor3(parser, start, end, endPtr); -} - -static enum XML_Error PTRCALL -externalEntityInitProcessor3(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr) -{ - int tok; - const char *next = start; /* XmlContentTok doesn't always set the last arg */ - eventPtr = start; - tok = XmlContentTok(encoding, start, end, &next); - eventEndPtr = next; - - switch (tok) { - case XML_TOK_XML_DECL: - { - enum XML_Error result; - result = processXmlDecl(parser, 1, start, next); - if (result != XML_ERROR_NONE) - return result; - switch (ps_parsing) { - case XML_SUSPENDED: - *endPtr = next; - return XML_ERROR_NONE; - case XML_FINISHED: - return XML_ERROR_ABORTED; - default: - start = next; - } - } - break; - case XML_TOK_PARTIAL: - if (!ps_finalBuffer) { - *endPtr = start; - return XML_ERROR_NONE; - } - return XML_ERROR_UNCLOSED_TOKEN; - case XML_TOK_PARTIAL_CHAR: - if (!ps_finalBuffer) { - *endPtr = start; - return XML_ERROR_NONE; - } - return XML_ERROR_PARTIAL_CHAR; - } - processor = externalEntityContentProcessor; - tagLevel = 1; - return externalEntityContentProcessor(parser, start, end, endPtr); -} - -static enum XML_Error PTRCALL -externalEntityContentProcessor(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr) -{ - enum XML_Error result = doContent(parser, 1, encoding, start, end, - endPtr, (XML_Bool)!ps_finalBuffer); - if (result == XML_ERROR_NONE) { - if (!storeRawNames(parser)) - return XML_ERROR_NO_MEMORY; - } - return result; -} - -static enum XML_Error -doContent(XML_Parser parser, - int startTagLevel, - const ENCODING *enc, - const char *s, - const char *end, - const char **nextPtr, - XML_Bool haveMore) -{ - /* save one level of indirection */ - DTD * const dtd = _dtd; - - const char **eventPP; - const char **eventEndPP; - if (enc == encoding) { - eventPP = &eventPtr; - eventEndPP = &eventEndPtr; - } - else { - eventPP = &(openInternalEntities->internalEventPtr); - eventEndPP = &(openInternalEntities->internalEventEndPtr); - } - *eventPP = s; - - for (;;) { - const char *next = s; /* XmlContentTok doesn't always set the last arg */ - int tok = XmlContentTok(enc, s, end, &next); - *eventEndPP = next; - switch (tok) { - case XML_TOK_TRAILING_CR: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - *eventEndPP = end; - if (characterDataHandler) { - XML_Char c = 0xA; - characterDataHandler(handlerArg, &c, 1); - } - else if (defaultHandler) - reportDefault(parser, enc, s, end); - /* We are at the end of the final buffer, should we check for - XML_SUSPENDED, XML_FINISHED? - */ - if (startTagLevel == 0) - return XML_ERROR_NO_ELEMENTS; - if (tagLevel != startTagLevel) - return XML_ERROR_ASYNC_ENTITY; - *nextPtr = end; - return XML_ERROR_NONE; - case XML_TOK_NONE: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - if (startTagLevel > 0) { - if (tagLevel != startTagLevel) - return XML_ERROR_ASYNC_ENTITY; - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_NO_ELEMENTS; - case XML_TOK_INVALID: - *eventPP = next; - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_UNCLOSED_TOKEN; - case XML_TOK_PARTIAL_CHAR: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_PARTIAL_CHAR; - case XML_TOK_ENTITY_REF: - { - const XML_Char *name; - ENTITY *entity; - XML_Char ch = (XML_Char) XmlPredefinedEntityName(enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (ch) { - if (characterDataHandler) - characterDataHandler(handlerArg, &ch, 1); - else if (defaultHandler) - reportDefault(parser, enc, s, next); - break; - } - name = poolStoreString(&dtd->pool, enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!name) - return XML_ERROR_NO_MEMORY; - entity = (ENTITY *)lookup(parser, &dtd->generalEntities, name, 0); - poolDiscard(&dtd->pool); - /* First, determine if a check for an existing declaration is needed; - if yes, check that the entity exists, and that it is internal, - otherwise call the skipped entity or default handler. - */ - if (!dtd->hasParamEntityRefs || dtd->standalone) { - if (!entity) - return XML_ERROR_UNDEFINED_ENTITY; - else if (!entity->is_internal) - return XML_ERROR_ENTITY_DECLARED_IN_PE; - } - else if (!entity) { - if (skippedEntityHandler) - skippedEntityHandler(handlerArg, name, 0); - else if (defaultHandler) - reportDefault(parser, enc, s, next); - break; - } - if (entity->open) - return XML_ERROR_RECURSIVE_ENTITY_REF; - if (entity->notation) - return XML_ERROR_BINARY_ENTITY_REF; - if (entity->textPtr) { - enum XML_Error result; - if (!defaultExpandInternalEntities) { - if (skippedEntityHandler) - skippedEntityHandler(handlerArg, entity->name, 0); - else if (defaultHandler) - reportDefault(parser, enc, s, next); - break; - } - result = processInternalEntity(parser, entity, XML_FALSE); - if (result != XML_ERROR_NONE) - return result; - } - else if (externalEntityRefHandler) { - const XML_Char *context; - entity->open = XML_TRUE; - context = getContext(parser); - entity->open = XML_FALSE; - if (!context) - return XML_ERROR_NO_MEMORY; - if (!externalEntityRefHandler(externalEntityRefHandlerArg, - context, - entity->base, - entity->systemId, - entity->publicId)) - return XML_ERROR_EXTERNAL_ENTITY_HANDLING; - poolDiscard(&tempPool); - } - else if (defaultHandler) - reportDefault(parser, enc, s, next); - break; - } - case XML_TOK_START_TAG_NO_ATTS: - /* fall through */ - case XML_TOK_START_TAG_WITH_ATTS: - { - TAG *tag; - enum XML_Error result; - XML_Char *toPtr; - if (freeTagList) { - tag = freeTagList; - freeTagList = freeTagList->parent; - } - else { - tag = (TAG *)MALLOC(sizeof(TAG)); - if (!tag) - return XML_ERROR_NO_MEMORY; - tag->buf = (char *)MALLOC(INIT_TAG_BUF_SIZE); - if (!tag->buf) { - FREE(tag); - return XML_ERROR_NO_MEMORY; - } - tag->bufEnd = tag->buf + INIT_TAG_BUF_SIZE; - } - tag->bindings = NULL; - tag->parent = tagStack; - tagStack = tag; - tag->name.localPart = NULL; - tag->name.prefix = NULL; - tag->rawName = s + enc->minBytesPerChar; - tag->rawNameLength = XmlNameLength(enc, tag->rawName); - ++tagLevel; - { - const char *rawNameEnd = tag->rawName + tag->rawNameLength; - const char *fromPtr = tag->rawName; - toPtr = (XML_Char *)tag->buf; - for (;;) { - int bufSize; - int convLen; - XmlConvert(enc, - &fromPtr, rawNameEnd, - (ICHAR **)&toPtr, (ICHAR *)tag->bufEnd - 1); - convLen = (int)(toPtr - (XML_Char *)tag->buf); - if (fromPtr == rawNameEnd) { - tag->name.strLen = convLen; - break; - } - bufSize = (int)(tag->bufEnd - tag->buf) << 1; - { - char *temp = (char *)REALLOC(tag->buf, bufSize); - if (temp == NULL) - return XML_ERROR_NO_MEMORY; - tag->buf = temp; - tag->bufEnd = temp + bufSize; - toPtr = (XML_Char *)temp + convLen; - } - } - } - tag->name.str = (XML_Char *)tag->buf; - *toPtr = XML_T('\0'); - result = storeAtts(parser, enc, s, &(tag->name), &(tag->bindings)); - if (result) - return result; - if (startElementHandler) - startElementHandler(handlerArg, tag->name.str, - (const XML_Char **)atts); - else if (defaultHandler) - reportDefault(parser, enc, s, next); - poolClear(&tempPool); - break; - } - case XML_TOK_EMPTY_ELEMENT_NO_ATTS: - /* fall through */ - case XML_TOK_EMPTY_ELEMENT_WITH_ATTS: - { - const char *rawName = s + enc->minBytesPerChar; - enum XML_Error result; - BINDING *bindings = NULL; - XML_Bool noElmHandlers = XML_TRUE; - TAG_NAME name; - name.str = poolStoreString(&tempPool, enc, rawName, - rawName + XmlNameLength(enc, rawName)); - if (!name.str) - return XML_ERROR_NO_MEMORY; - poolFinish(&tempPool); - result = storeAtts(parser, enc, s, &name, &bindings); - if (result) - return result; - poolFinish(&tempPool); - if (startElementHandler) { - startElementHandler(handlerArg, name.str, (const XML_Char **)atts); - noElmHandlers = XML_FALSE; - } - if (endElementHandler) { - if (startElementHandler) - *eventPP = *eventEndPP; - endElementHandler(handlerArg, name.str); - noElmHandlers = XML_FALSE; - } - if (noElmHandlers && defaultHandler) - reportDefault(parser, enc, s, next); - poolClear(&tempPool); - while (bindings) { - BINDING *b = bindings; - if (endNamespaceDeclHandler) - endNamespaceDeclHandler(handlerArg, b->prefix->name); - bindings = bindings->nextTagBinding; - b->nextTagBinding = freeBindingList; - freeBindingList = b; - b->prefix->binding = b->prevPrefixBinding; - } - } - if (tagLevel == 0) - return epilogProcessor(parser, next, end, nextPtr); - break; - case XML_TOK_END_TAG: - if (tagLevel == startTagLevel) - return XML_ERROR_ASYNC_ENTITY; - else { - int len; - const char *rawName; - TAG *tag = tagStack; - tagStack = tag->parent; - tag->parent = freeTagList; - freeTagList = tag; - rawName = s + enc->minBytesPerChar*2; - len = XmlNameLength(enc, rawName); - if (len != tag->rawNameLength - || memcmp(tag->rawName, rawName, len) != 0) { - *eventPP = rawName; - return XML_ERROR_TAG_MISMATCH; - } - --tagLevel; - if (endElementHandler) { - const XML_Char *localPart; - const XML_Char *prefix; - XML_Char *uri; - localPart = tag->name.localPart; - if (ns && localPart) { - /* localPart and prefix may have been overwritten in - tag->name.str, since this points to the binding->uri - buffer which gets re-used; so we have to add them again - */ - uri = (XML_Char *)tag->name.str + tag->name.uriLen; - /* don't need to check for space - already done in storeAtts() */ - while (*localPart) *uri++ = *localPart++; - prefix = (XML_Char *)tag->name.prefix; - if (ns_triplets && prefix) { - *uri++ = namespaceSeparator; - while (*prefix) *uri++ = *prefix++; - } - *uri = XML_T('\0'); - } - endElementHandler(handlerArg, tag->name.str); - } - else if (defaultHandler) - reportDefault(parser, enc, s, next); - while (tag->bindings) { - BINDING *b = tag->bindings; - if (endNamespaceDeclHandler) - endNamespaceDeclHandler(handlerArg, b->prefix->name); - tag->bindings = tag->bindings->nextTagBinding; - b->nextTagBinding = freeBindingList; - freeBindingList = b; - b->prefix->binding = b->prevPrefixBinding; - } - if (tagLevel == 0) - return epilogProcessor(parser, next, end, nextPtr); - } - break; - case XML_TOK_CHAR_REF: - { - int n = XmlCharRefNumber(enc, s); - if (n < 0) - return XML_ERROR_BAD_CHAR_REF; - if (characterDataHandler) { - XML_Char buf[XML_ENCODE_MAX]; - characterDataHandler(handlerArg, buf, XmlEncode(n, (ICHAR *)buf)); - } - else if (defaultHandler) - reportDefault(parser, enc, s, next); - } - break; - case XML_TOK_XML_DECL: - return XML_ERROR_MISPLACED_XML_PI; - case XML_TOK_DATA_NEWLINE: - if (characterDataHandler) { - XML_Char c = 0xA; - characterDataHandler(handlerArg, &c, 1); - } - else if (defaultHandler) - reportDefault(parser, enc, s, next); - break; - case XML_TOK_CDATA_SECT_OPEN: - { - enum XML_Error result; - if (startCdataSectionHandler) - startCdataSectionHandler(handlerArg); -#if 0 - /* Suppose you doing a transformation on a document that involves - changing only the character data. You set up a defaultHandler - and a characterDataHandler. The defaultHandler simply copies - characters through. The characterDataHandler does the - transformation and writes the characters out escaping them as - necessary. This case will fail to work if we leave out the - following two lines (because & and < inside CDATA sections will - be incorrectly escaped). - - However, now we have a start/endCdataSectionHandler, so it seems - easier to let the user deal with this. - */ - else if (characterDataHandler) - characterDataHandler(handlerArg, dataBuf, 0); -#endif - else if (defaultHandler) - reportDefault(parser, enc, s, next); - result = doCdataSection(parser, enc, &next, end, nextPtr, haveMore); - if (result != XML_ERROR_NONE) - return result; - else if (!next) { - processor = cdataSectionProcessor; - return result; - } - } - break; - case XML_TOK_TRAILING_RSQB: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - if (characterDataHandler) { - if (MUST_CONVERT(enc, s)) { - ICHAR *dataPtr = (ICHAR *)dataBuf; - XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)dataBufEnd); - characterDataHandler(handlerArg, dataBuf, - (int)(dataPtr - (ICHAR *)dataBuf)); - } - else - characterDataHandler(handlerArg, - (XML_Char *)s, - (int)((XML_Char *)end - (XML_Char *)s)); - } - else if (defaultHandler) - reportDefault(parser, enc, s, end); - /* We are at the end of the final buffer, should we check for - XML_SUSPENDED, XML_FINISHED? - */ - if (startTagLevel == 0) { - *eventPP = end; - return XML_ERROR_NO_ELEMENTS; - } - if (tagLevel != startTagLevel) { - *eventPP = end; - return XML_ERROR_ASYNC_ENTITY; - } - *nextPtr = end; - return XML_ERROR_NONE; - case XML_TOK_DATA_CHARS: - { - XML_CharacterDataHandler charDataHandler = characterDataHandler; - if (charDataHandler) { - if (MUST_CONVERT(enc, s)) { - for (;;) { - ICHAR *dataPtr = (ICHAR *)dataBuf; - XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd); - *eventEndPP = s; - charDataHandler(handlerArg, dataBuf, - (int)(dataPtr - (ICHAR *)dataBuf)); - if (s == next) - break; - *eventPP = s; - } - } - else - charDataHandler(handlerArg, - (XML_Char *)s, - (int)((XML_Char *)next - (XML_Char *)s)); - } - else if (defaultHandler) - reportDefault(parser, enc, s, next); - } - break; - case XML_TOK_PI: - if (!reportProcessingInstruction(parser, enc, s, next)) - return XML_ERROR_NO_MEMORY; - break; - case XML_TOK_COMMENT: - if (!reportComment(parser, enc, s, next)) - return XML_ERROR_NO_MEMORY; - break; - default: - if (defaultHandler) - reportDefault(parser, enc, s, next); - break; - } - *eventPP = s = next; - switch (ps_parsing) { - case XML_SUSPENDED: - *nextPtr = next; - return XML_ERROR_NONE; - case XML_FINISHED: - return XML_ERROR_ABORTED; - default: ; - } - } - /* not reached */ -} - -/* Precondition: all arguments must be non-NULL; - Purpose: - - normalize attributes - - check attributes for well-formedness - - generate namespace aware attribute names (URI, prefix) - - build list of attributes for startElementHandler - - default attributes - - process namespace declarations (check and report them) - - generate namespace aware element name (URI, prefix) -*/ -static enum XML_Error -storeAtts(XML_Parser parser, const ENCODING *enc, - const char *attStr, TAG_NAME *tagNamePtr, - BINDING **bindingsPtr) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - ELEMENT_TYPE *elementType; - int nDefaultAtts; - const XML_Char **appAtts; /* the attribute list for the application */ - int attIndex = 0; - int prefixLen; - int i; - int n; - XML_Char *uri; - int nPrefixes = 0; - BINDING *binding; - const XML_Char *localPart; - - /* lookup the element type name */ - elementType = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, tagNamePtr->str,0); - if (!elementType) { - const XML_Char *name = poolCopyString(&dtd->pool, tagNamePtr->str); - if (!name) - return XML_ERROR_NO_MEMORY; - elementType = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, name, - sizeof(ELEMENT_TYPE)); - if (!elementType) - return XML_ERROR_NO_MEMORY; - if (ns && !setElementTypePrefix(parser, elementType)) - return XML_ERROR_NO_MEMORY; - } - nDefaultAtts = elementType->nDefaultAtts; - - /* get the attributes from the tokenizer */ - n = XmlGetAttributes(enc, attStr, attsSize, atts); - if (n + nDefaultAtts > attsSize) { - int oldAttsSize = attsSize; - ATTRIBUTE *temp; -#ifdef XML_ATTR_INFO - XML_AttrInfo *temp2; -#endif - attsSize = n + nDefaultAtts + INIT_ATTS_SIZE; - temp = (ATTRIBUTE *)REALLOC((void *)atts, attsSize * sizeof(ATTRIBUTE)); - if (temp == NULL) - return XML_ERROR_NO_MEMORY; - atts = temp; -#ifdef XML_ATTR_INFO - temp2 = (XML_AttrInfo *)REALLOC((void *)attInfo, attsSize * sizeof(XML_AttrInfo)); - if (temp2 == NULL) - return XML_ERROR_NO_MEMORY; - attInfo = temp2; -#endif - if (n > oldAttsSize) - XmlGetAttributes(enc, attStr, n, atts); - } - - appAtts = (const XML_Char **)atts; - for (i = 0; i < n; i++) { - ATTRIBUTE *currAtt = &atts[i]; -#ifdef XML_ATTR_INFO - XML_AttrInfo *currAttInfo = &attInfo[i]; -#endif - /* add the name and value to the attribute list */ - ATTRIBUTE_ID *attId = getAttributeId(parser, enc, currAtt->name, - currAtt->name - + XmlNameLength(enc, currAtt->name)); - if (!attId) - return XML_ERROR_NO_MEMORY; -#ifdef XML_ATTR_INFO - currAttInfo->nameStart = parseEndByteIndex - (parseEndPtr - currAtt->name); - currAttInfo->nameEnd = currAttInfo->nameStart + - XmlNameLength(enc, currAtt->name); - currAttInfo->valueStart = parseEndByteIndex - - (parseEndPtr - currAtt->valuePtr); - currAttInfo->valueEnd = parseEndByteIndex - (parseEndPtr - currAtt->valueEnd); -#endif - /* Detect duplicate attributes by their QNames. This does not work when - namespace processing is turned on and different prefixes for the same - namespace are used. For this case we have a check further down. - */ - if ((attId->name)[-1]) { - if (enc == encoding) - eventPtr = atts[i].name; - return XML_ERROR_DUPLICATE_ATTRIBUTE; - } - (attId->name)[-1] = 1; - appAtts[attIndex++] = attId->name; - if (!atts[i].normalized) { - enum XML_Error result; - XML_Bool isCdata = XML_TRUE; - - /* figure out whether declared as other than CDATA */ - if (attId->maybeTokenized) { - int j; - for (j = 0; j < nDefaultAtts; j++) { - if (attId == elementType->defaultAtts[j].id) { - isCdata = elementType->defaultAtts[j].isCdata; - break; - } - } - } - - /* normalize the attribute value */ - result = storeAttributeValue(parser, enc, isCdata, - atts[i].valuePtr, atts[i].valueEnd, - &tempPool); - if (result) - return result; - appAtts[attIndex] = poolStart(&tempPool); - poolFinish(&tempPool); - } - else { - /* the value did not need normalizing */ - appAtts[attIndex] = poolStoreString(&tempPool, enc, atts[i].valuePtr, - atts[i].valueEnd); - if (appAtts[attIndex] == 0) - return XML_ERROR_NO_MEMORY; - poolFinish(&tempPool); - } - /* handle prefixed attribute names */ - if (attId->prefix) { - if (attId->xmlns) { - /* deal with namespace declarations here */ - enum XML_Error result = addBinding(parser, attId->prefix, attId, - appAtts[attIndex], bindingsPtr); - if (result) - return result; - --attIndex; - } - else { - /* deal with other prefixed names later */ - attIndex++; - nPrefixes++; - (attId->name)[-1] = 2; - } - } - else - attIndex++; - } - - /* set-up for XML_GetSpecifiedAttributeCount and XML_GetIdAttributeIndex */ - nSpecifiedAtts = attIndex; - if (elementType->idAtt && (elementType->idAtt->name)[-1]) { - for (i = 0; i < attIndex; i += 2) - if (appAtts[i] == elementType->idAtt->name) { - idAttIndex = i; - break; - } - } - else - idAttIndex = -1; - - /* do attribute defaulting */ - for (i = 0; i < nDefaultAtts; i++) { - const DEFAULT_ATTRIBUTE *da = elementType->defaultAtts + i; - if (!(da->id->name)[-1] && da->value) { - if (da->id->prefix) { - if (da->id->xmlns) { - enum XML_Error result = addBinding(parser, da->id->prefix, da->id, - da->value, bindingsPtr); - if (result) - return result; - } - else { - (da->id->name)[-1] = 2; - nPrefixes++; - appAtts[attIndex++] = da->id->name; - appAtts[attIndex++] = da->value; - } - } - else { - (da->id->name)[-1] = 1; - appAtts[attIndex++] = da->id->name; - appAtts[attIndex++] = da->value; - } - } - } - appAtts[attIndex] = 0; - - /* expand prefixed attribute names, check for duplicates, - and clear flags that say whether attributes were specified */ - i = 0; - if (nPrefixes) { - int j; /* hash table index */ - unsigned long version = nsAttsVersion; - int nsAttsSize = (int)1 << nsAttsPower; - /* size of hash table must be at least 2 * (# of prefixed attributes) */ - if ((nPrefixes << 1) >> nsAttsPower) { /* true for nsAttsPower = 0 */ - NS_ATT *temp; - /* hash table size must also be a power of 2 and >= 8 */ - while (nPrefixes >> nsAttsPower++); - if (nsAttsPower < 3) - nsAttsPower = 3; - nsAttsSize = (int)1 << nsAttsPower; - temp = (NS_ATT *)REALLOC(nsAtts, nsAttsSize * sizeof(NS_ATT)); - if (!temp) - return XML_ERROR_NO_MEMORY; - nsAtts = temp; - version = 0; /* force re-initialization of nsAtts hash table */ - } - /* using a version flag saves us from initializing nsAtts every time */ - if (!version) { /* initialize version flags when version wraps around */ - version = INIT_ATTS_VERSION; - for (j = nsAttsSize; j != 0; ) - nsAtts[--j].version = version; - } - nsAttsVersion = --version; - - /* expand prefixed names and check for duplicates */ - for (; i < attIndex; i += 2) { - const XML_Char *s = appAtts[i]; - if (s[-1] == 2) { /* prefixed */ - ATTRIBUTE_ID *id; - const BINDING *b; - unsigned long uriHash = hash_secret_salt; - ((XML_Char *)s)[-1] = 0; /* clear flag */ - id = (ATTRIBUTE_ID *)lookup(parser, &dtd->attributeIds, s, 0); - b = id->prefix->binding; - if (!b) - return XML_ERROR_UNBOUND_PREFIX; - - /* as we expand the name we also calculate its hash value */ - for (j = 0; j < b->uriLen; j++) { - const XML_Char c = b->uri[j]; - if (!poolAppendChar(&tempPool, c)) - return XML_ERROR_NO_MEMORY; - uriHash = CHAR_HASH(uriHash, c); - } - while (*s++ != XML_T(ASCII_COLON)) - ; - do { /* copies null terminator */ - const XML_Char c = *s; - if (!poolAppendChar(&tempPool, *s)) - return XML_ERROR_NO_MEMORY; - uriHash = CHAR_HASH(uriHash, c); - } while (*s++); - - { /* Check hash table for duplicate of expanded name (uriName). - Derived from code in lookup(parser, HASH_TABLE *table, ...). - */ - unsigned char step = 0; - unsigned long mask = nsAttsSize - 1; - j = uriHash & mask; /* index into hash table */ - while (nsAtts[j].version == version) { - /* for speed we compare stored hash values first */ - if (uriHash == nsAtts[j].hash) { - const XML_Char *s1 = poolStart(&tempPool); - const XML_Char *s2 = nsAtts[j].uriName; - /* s1 is null terminated, but not s2 */ - for (; *s1 == *s2 && *s1 != 0; s1++, s2++); - if (*s1 == 0) - return XML_ERROR_DUPLICATE_ATTRIBUTE; - } - if (!step) - step = PROBE_STEP(uriHash, mask, nsAttsPower); - j < step ? (j += nsAttsSize - step) : (j -= step); - } - } - - if (ns_triplets) { /* append namespace separator and prefix */ - tempPool.ptr[-1] = namespaceSeparator; - s = b->prefix->name; - do { - if (!poolAppendChar(&tempPool, *s)) - return XML_ERROR_NO_MEMORY; - } while (*s++); - } - - /* store expanded name in attribute list */ - s = poolStart(&tempPool); - poolFinish(&tempPool); - appAtts[i] = s; - - /* fill empty slot with new version, uriName and hash value */ - nsAtts[j].version = version; - nsAtts[j].hash = uriHash; - nsAtts[j].uriName = s; - - if (!--nPrefixes) { - i += 2; - break; - } - } - else /* not prefixed */ - ((XML_Char *)s)[-1] = 0; /* clear flag */ - } - } - /* clear flags for the remaining attributes */ - for (; i < attIndex; i += 2) - ((XML_Char *)(appAtts[i]))[-1] = 0; - for (binding = *bindingsPtr; binding; binding = binding->nextTagBinding) - binding->attId->name[-1] = 0; - - if (!ns) - return XML_ERROR_NONE; - - /* expand the element type name */ - if (elementType->prefix) { - binding = elementType->prefix->binding; - if (!binding) - return XML_ERROR_UNBOUND_PREFIX; - localPart = tagNamePtr->str; - while (*localPart++ != XML_T(ASCII_COLON)) - ; - } - else if (dtd->defaultPrefix.binding) { - binding = dtd->defaultPrefix.binding; - localPart = tagNamePtr->str; - } - else - return XML_ERROR_NONE; - prefixLen = 0; - if (ns_triplets && binding->prefix->name) { - for (; binding->prefix->name[prefixLen++];) - ; /* prefixLen includes null terminator */ - } - tagNamePtr->localPart = localPart; - tagNamePtr->uriLen = binding->uriLen; - tagNamePtr->prefix = binding->prefix->name; - tagNamePtr->prefixLen = prefixLen; - for (i = 0; localPart[i++];) - ; /* i includes null terminator */ - n = i + binding->uriLen + prefixLen; - if (n > binding->uriAlloc) { - TAG *p; - uri = (XML_Char *)MALLOC((n + EXPAND_SPARE) * sizeof(XML_Char)); - if (!uri) - return XML_ERROR_NO_MEMORY; - binding->uriAlloc = n + EXPAND_SPARE; - memcpy(uri, binding->uri, binding->uriLen * sizeof(XML_Char)); - for (p = tagStack; p; p = p->parent) - if (p->name.str == binding->uri) - p->name.str = uri; - FREE(binding->uri); - binding->uri = uri; - } - /* if namespaceSeparator != '\0' then uri includes it already */ - uri = binding->uri + binding->uriLen; - memcpy(uri, localPart, i * sizeof(XML_Char)); - /* we always have a namespace separator between localPart and prefix */ - if (prefixLen) { - uri += i - 1; - *uri = namespaceSeparator; /* replace null terminator */ - memcpy(uri + 1, binding->prefix->name, prefixLen * sizeof(XML_Char)); - } - tagNamePtr->str = binding->uri; - return XML_ERROR_NONE; -} - -/* addBinding() overwrites the value of prefix->binding without checking. - Therefore one must keep track of the old value outside of addBinding(). -*/ -static enum XML_Error -addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId, - const XML_Char *uri, BINDING **bindingsPtr) -{ - static const XML_Char xmlNamespace[] = { - ASCII_h, ASCII_t, ASCII_t, ASCII_p, ASCII_COLON, ASCII_SLASH, ASCII_SLASH, - ASCII_w, ASCII_w, ASCII_w, ASCII_PERIOD, ASCII_w, ASCII_3, ASCII_PERIOD, - ASCII_o, ASCII_r, ASCII_g, ASCII_SLASH, ASCII_X, ASCII_M, ASCII_L, - ASCII_SLASH, ASCII_1, ASCII_9, ASCII_9, ASCII_8, ASCII_SLASH, - ASCII_n, ASCII_a, ASCII_m, ASCII_e, ASCII_s, ASCII_p, ASCII_a, ASCII_c, - ASCII_e, '\0' - }; - static const int xmlLen = - (int)sizeof(xmlNamespace)/sizeof(XML_Char) - 1; - static const XML_Char xmlnsNamespace[] = { - ASCII_h, ASCII_t, ASCII_t, ASCII_p, ASCII_COLON, ASCII_SLASH, ASCII_SLASH, - ASCII_w, ASCII_w, ASCII_w, ASCII_PERIOD, ASCII_w, ASCII_3, ASCII_PERIOD, - ASCII_o, ASCII_r, ASCII_g, ASCII_SLASH, ASCII_2, ASCII_0, ASCII_0, - ASCII_0, ASCII_SLASH, ASCII_x, ASCII_m, ASCII_l, ASCII_n, ASCII_s, - ASCII_SLASH, '\0' - }; - static const int xmlnsLen = - (int)sizeof(xmlnsNamespace)/sizeof(XML_Char) - 1; - - XML_Bool mustBeXML = XML_FALSE; - XML_Bool isXML = XML_TRUE; - XML_Bool isXMLNS = XML_TRUE; - - BINDING *b; - int len; - - /* empty URI is only valid for default namespace per XML NS 1.0 (not 1.1) */ - if (*uri == XML_T('\0') && prefix->name) - return XML_ERROR_UNDECLARING_PREFIX; - - if (prefix->name - && prefix->name[0] == XML_T(ASCII_x) - && prefix->name[1] == XML_T(ASCII_m) - && prefix->name[2] == XML_T(ASCII_l)) { - - /* Not allowed to bind xmlns */ - if (prefix->name[3] == XML_T(ASCII_n) - && prefix->name[4] == XML_T(ASCII_s) - && prefix->name[5] == XML_T('\0')) - return XML_ERROR_RESERVED_PREFIX_XMLNS; - - if (prefix->name[3] == XML_T('\0')) - mustBeXML = XML_TRUE; - } - - for (len = 0; uri[len]; len++) { - if (isXML && (len > xmlLen || uri[len] != xmlNamespace[len])) - isXML = XML_FALSE; - - if (!mustBeXML && isXMLNS - && (len > xmlnsLen || uri[len] != xmlnsNamespace[len])) - isXMLNS = XML_FALSE; - } - isXML = isXML && len == xmlLen; - isXMLNS = isXMLNS && len == xmlnsLen; - - if (mustBeXML != isXML) - return mustBeXML ? XML_ERROR_RESERVED_PREFIX_XML - : XML_ERROR_RESERVED_NAMESPACE_URI; - - if (isXMLNS) - return XML_ERROR_RESERVED_NAMESPACE_URI; - - if (namespaceSeparator) - len++; - if (freeBindingList) { - b = freeBindingList; - if (len > b->uriAlloc) { - XML_Char *temp = (XML_Char *)REALLOC(b->uri, - sizeof(XML_Char) * (len + EXPAND_SPARE)); - if (temp == NULL) - return XML_ERROR_NO_MEMORY; - b->uri = temp; - b->uriAlloc = len + EXPAND_SPARE; - } - freeBindingList = b->nextTagBinding; - } - else { - b = (BINDING *)MALLOC(sizeof(BINDING)); - if (!b) - return XML_ERROR_NO_MEMORY; - b->uri = (XML_Char *)MALLOC(sizeof(XML_Char) * (len + EXPAND_SPARE)); - if (!b->uri) { - FREE(b); - return XML_ERROR_NO_MEMORY; - } - b->uriAlloc = len + EXPAND_SPARE; - } - b->uriLen = len; - memcpy(b->uri, uri, len * sizeof(XML_Char)); - if (namespaceSeparator) - b->uri[len - 1] = namespaceSeparator; - b->prefix = prefix; - b->attId = attId; - b->prevPrefixBinding = prefix->binding; - /* NULL binding when default namespace undeclared */ - if (*uri == XML_T('\0') && prefix == &_dtd->defaultPrefix) - prefix->binding = NULL; - else - prefix->binding = b; - b->nextTagBinding = *bindingsPtr; - *bindingsPtr = b; - /* if attId == NULL then we are not starting a namespace scope */ - if (attId && startNamespaceDeclHandler) - startNamespaceDeclHandler(handlerArg, prefix->name, - prefix->binding ? uri : 0); - return XML_ERROR_NONE; -} - -/* The idea here is to avoid using stack for each CDATA section when - the whole file is parsed with one call. -*/ -static enum XML_Error PTRCALL -cdataSectionProcessor(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr) -{ - enum XML_Error result = doCdataSection(parser, encoding, &start, end, - endPtr, (XML_Bool)!ps_finalBuffer); - if (result != XML_ERROR_NONE) - return result; - if (start) { - if (parentParser) { /* we are parsing an external entity */ - processor = externalEntityContentProcessor; - return externalEntityContentProcessor(parser, start, end, endPtr); - } - else { - processor = contentProcessor; - return contentProcessor(parser, start, end, endPtr); - } - } - return result; -} - -/* startPtr gets set to non-null if the section is closed, and to null if - the section is not yet closed. -*/ -static enum XML_Error -doCdataSection(XML_Parser parser, - const ENCODING *enc, - const char **startPtr, - const char *end, - const char **nextPtr, - XML_Bool haveMore) -{ - const char *s = *startPtr; - const char **eventPP; - const char **eventEndPP; - if (enc == encoding) { - eventPP = &eventPtr; - *eventPP = s; - eventEndPP = &eventEndPtr; - } - else { - eventPP = &(openInternalEntities->internalEventPtr); - eventEndPP = &(openInternalEntities->internalEventEndPtr); - } - *eventPP = s; - *startPtr = NULL; - - for (;;) { - const char *next; - int tok = XmlCdataSectionTok(enc, s, end, &next); - *eventEndPP = next; - switch (tok) { - case XML_TOK_CDATA_SECT_CLOSE: - if (endCdataSectionHandler) - endCdataSectionHandler(handlerArg); -#if 0 - /* see comment under XML_TOK_CDATA_SECT_OPEN */ - else if (characterDataHandler) - characterDataHandler(handlerArg, dataBuf, 0); -#endif - else if (defaultHandler) - reportDefault(parser, enc, s, next); - *startPtr = next; - *nextPtr = next; - if (ps_parsing == XML_FINISHED) - return XML_ERROR_ABORTED; - else - return XML_ERROR_NONE; - case XML_TOK_DATA_NEWLINE: - if (characterDataHandler) { - XML_Char c = 0xA; - characterDataHandler(handlerArg, &c, 1); - } - else if (defaultHandler) - reportDefault(parser, enc, s, next); - break; - case XML_TOK_DATA_CHARS: - { - XML_CharacterDataHandler charDataHandler = characterDataHandler; - if (charDataHandler) { - if (MUST_CONVERT(enc, s)) { - for (;;) { - ICHAR *dataPtr = (ICHAR *)dataBuf; - XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd); - *eventEndPP = next; - charDataHandler(handlerArg, dataBuf, - (int)(dataPtr - (ICHAR *)dataBuf)); - if (s == next) - break; - *eventPP = s; - } - } - else - charDataHandler(handlerArg, - (XML_Char *)s, - (int)((XML_Char *)next - (XML_Char *)s)); - } - else if (defaultHandler) - reportDefault(parser, enc, s, next); - } - break; - case XML_TOK_INVALID: - *eventPP = next; - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL_CHAR: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_PARTIAL_CHAR; - case XML_TOK_PARTIAL: - case XML_TOK_NONE: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_UNCLOSED_CDATA_SECTION; - default: - *eventPP = next; - return XML_ERROR_UNEXPECTED_STATE; - } - - *eventPP = s = next; - switch (ps_parsing) { - case XML_SUSPENDED: - *nextPtr = next; - return XML_ERROR_NONE; - case XML_FINISHED: - return XML_ERROR_ABORTED; - default: ; - } - } - /* not reached */ -} - -#ifdef XML_DTD - -/* The idea here is to avoid using stack for each IGNORE section when - the whole file is parsed with one call. -*/ -static enum XML_Error PTRCALL -ignoreSectionProcessor(XML_Parser parser, - const char *start, - const char *end, - const char **endPtr) -{ - enum XML_Error result = doIgnoreSection(parser, encoding, &start, end, - endPtr, (XML_Bool)!ps_finalBuffer); - if (result != XML_ERROR_NONE) - return result; - if (start) { - processor = prologProcessor; - return prologProcessor(parser, start, end, endPtr); - } - return result; -} - -/* startPtr gets set to non-null is the section is closed, and to null - if the section is not yet closed. -*/ -static enum XML_Error -doIgnoreSection(XML_Parser parser, - const ENCODING *enc, - const char **startPtr, - const char *end, - const char **nextPtr, - XML_Bool haveMore) -{ - const char *next; - int tok; - const char *s = *startPtr; - const char **eventPP; - const char **eventEndPP; - if (enc == encoding) { - eventPP = &eventPtr; - *eventPP = s; - eventEndPP = &eventEndPtr; - } - else { - eventPP = &(openInternalEntities->internalEventPtr); - eventEndPP = &(openInternalEntities->internalEventEndPtr); - } - *eventPP = s; - *startPtr = NULL; - tok = XmlIgnoreSectionTok(enc, s, end, &next); - *eventEndPP = next; - switch (tok) { - case XML_TOK_IGNORE_SECT: - if (defaultHandler) - reportDefault(parser, enc, s, next); - *startPtr = next; - *nextPtr = next; - if (ps_parsing == XML_FINISHED) - return XML_ERROR_ABORTED; - else - return XML_ERROR_NONE; - case XML_TOK_INVALID: - *eventPP = next; - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL_CHAR: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_PARTIAL_CHAR; - case XML_TOK_PARTIAL: - case XML_TOK_NONE: - if (haveMore) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_SYNTAX; /* XML_ERROR_UNCLOSED_IGNORE_SECTION */ - default: - *eventPP = next; - return XML_ERROR_UNEXPECTED_STATE; - } - /* not reached */ -} - -#endif /* XML_DTD */ - -static enum XML_Error -initializeEncoding(XML_Parser parser) -{ - const char *s; -#ifdef XML_UNICODE - char encodingBuf[128]; - if (!protocolEncodingName) - s = NULL; - else { - int i; - for (i = 0; protocolEncodingName[i]; i++) { - if (i == sizeof(encodingBuf) - 1 - || (protocolEncodingName[i] & ~0x7f) != 0) { - encodingBuf[0] = '\0'; - break; - } - encodingBuf[i] = (char)protocolEncodingName[i]; - } - encodingBuf[i] = '\0'; - s = encodingBuf; - } -#else - s = protocolEncodingName; -#endif - if ((ns ? XmlInitEncodingNS : XmlInitEncoding)(&initEncoding, &encoding, s)) - return XML_ERROR_NONE; - return handleUnknownEncoding(parser, protocolEncodingName); -} - -static enum XML_Error -processXmlDecl(XML_Parser parser, int isGeneralTextEntity, - const char *s, const char *next) -{ - const char *encodingName = NULL; - const XML_Char *storedEncName = NULL; - const ENCODING *newEncoding = NULL; - const char *version = NULL; - const char *versionend; - const XML_Char *storedversion = NULL; - int standalone = -1; - if (!(ns - ? XmlParseXmlDeclNS - : XmlParseXmlDecl)(isGeneralTextEntity, - encoding, - s, - next, - &eventPtr, - &version, - &versionend, - &encodingName, - &newEncoding, - &standalone)) { - if (isGeneralTextEntity) - return XML_ERROR_TEXT_DECL; - else - return XML_ERROR_XML_DECL; - } - if (!isGeneralTextEntity && standalone == 1) { - _dtd->standalone = XML_TRUE; -#ifdef XML_DTD - if (paramEntityParsing == XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE) - paramEntityParsing = XML_PARAM_ENTITY_PARSING_NEVER; -#endif /* XML_DTD */ - } - if (xmlDeclHandler) { - if (encodingName != NULL) { - storedEncName = poolStoreString(&temp2Pool, - encoding, - encodingName, - encodingName - + XmlNameLength(encoding, encodingName)); - if (!storedEncName) - return XML_ERROR_NO_MEMORY; - poolFinish(&temp2Pool); - } - if (version) { - storedversion = poolStoreString(&temp2Pool, - encoding, - version, - versionend - encoding->minBytesPerChar); - if (!storedversion) - return XML_ERROR_NO_MEMORY; - } - xmlDeclHandler(handlerArg, storedversion, storedEncName, standalone); - } - else if (defaultHandler) - reportDefault(parser, encoding, s, next); - if (protocolEncodingName == NULL) { - if (newEncoding) { - if (newEncoding->minBytesPerChar != encoding->minBytesPerChar) { - eventPtr = encodingName; - return XML_ERROR_INCORRECT_ENCODING; - } - encoding = newEncoding; - } - else if (encodingName) { - enum XML_Error result; - if (!storedEncName) { - storedEncName = poolStoreString( - &temp2Pool, encoding, encodingName, - encodingName + XmlNameLength(encoding, encodingName)); - if (!storedEncName) - return XML_ERROR_NO_MEMORY; - } - result = handleUnknownEncoding(parser, storedEncName); - poolClear(&temp2Pool); - if (result == XML_ERROR_UNKNOWN_ENCODING) - eventPtr = encodingName; - return result; - } - } - - if (storedEncName || storedversion) - poolClear(&temp2Pool); - - return XML_ERROR_NONE; -} - -static enum XML_Error -handleUnknownEncoding(XML_Parser parser, const XML_Char *encodingName) -{ - if (unknownEncodingHandler) { - XML_Encoding info; - int i; - for (i = 0; i < 256; i++) - info.map[i] = -1; - info.convert = NULL; - info.data = NULL; - info.release = NULL; - if (unknownEncodingHandler(unknownEncodingHandlerData, encodingName, - &info)) { - ENCODING *enc; - unknownEncodingMem = MALLOC(XmlSizeOfUnknownEncoding()); - if (!unknownEncodingMem) { - if (info.release) - info.release(info.data); - return XML_ERROR_NO_MEMORY; - } - enc = (ns - ? XmlInitUnknownEncodingNS - : XmlInitUnknownEncoding)(unknownEncodingMem, - info.map, - info.convert, - info.data); - if (enc) { - unknownEncodingData = info.data; - unknownEncodingRelease = info.release; - encoding = enc; - return XML_ERROR_NONE; - } - } - if (info.release != NULL) - info.release(info.data); - } - return XML_ERROR_UNKNOWN_ENCODING; -} - -static enum XML_Error PTRCALL -prologInitProcessor(XML_Parser parser, - const char *s, - const char *end, - const char **nextPtr) -{ - enum XML_Error result = initializeEncoding(parser); - if (result != XML_ERROR_NONE) - return result; - processor = prologProcessor; - return prologProcessor(parser, s, end, nextPtr); -} - -#ifdef XML_DTD - -static enum XML_Error PTRCALL -externalParEntInitProcessor(XML_Parser parser, - const char *s, - const char *end, - const char **nextPtr) -{ - enum XML_Error result = initializeEncoding(parser); - if (result != XML_ERROR_NONE) - return result; - - /* we know now that XML_Parse(Buffer) has been called, - so we consider the external parameter entity read */ - _dtd->paramEntityRead = XML_TRUE; - - if (prologState.inEntityValue) { - processor = entityValueInitProcessor; - return entityValueInitProcessor(parser, s, end, nextPtr); - } - else { - processor = externalParEntProcessor; - return externalParEntProcessor(parser, s, end, nextPtr); - } -} - -static enum XML_Error PTRCALL -entityValueInitProcessor(XML_Parser parser, - const char *s, - const char *end, - const char **nextPtr) -{ - int tok; - const char *start = s; - const char *next = start; - eventPtr = start; - - for (;;) { - tok = XmlPrologTok(encoding, start, end, &next); - eventEndPtr = next; - if (tok <= 0) { - if (!ps_finalBuffer && tok != XML_TOK_INVALID) { - *nextPtr = s; - return XML_ERROR_NONE; - } - switch (tok) { - case XML_TOK_INVALID: - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL: - return XML_ERROR_UNCLOSED_TOKEN; - case XML_TOK_PARTIAL_CHAR: - return XML_ERROR_PARTIAL_CHAR; - case XML_TOK_NONE: /* start == end */ - default: - break; - } - /* found end of entity value - can store it now */ - return storeEntityValue(parser, encoding, s, end); - } - else if (tok == XML_TOK_XML_DECL) { - enum XML_Error result; - result = processXmlDecl(parser, 0, start, next); - if (result != XML_ERROR_NONE) - return result; - switch (ps_parsing) { - case XML_SUSPENDED: - *nextPtr = next; - return XML_ERROR_NONE; - case XML_FINISHED: - return XML_ERROR_ABORTED; - default: - *nextPtr = next; - } - /* stop scanning for text declaration - we found one */ - processor = entityValueProcessor; - return entityValueProcessor(parser, next, end, nextPtr); - } - /* If we are at the end of the buffer, this would cause XmlPrologTok to - return XML_TOK_NONE on the next call, which would then cause the - function to exit with *nextPtr set to s - that is what we want for other - tokens, but not for the BOM - we would rather like to skip it; - then, when this routine is entered the next time, XmlPrologTok will - return XML_TOK_INVALID, since the BOM is still in the buffer - */ - else if (tok == XML_TOK_BOM && next == end && !ps_finalBuffer) { - *nextPtr = next; - return XML_ERROR_NONE; - } - start = next; - eventPtr = start; - } -} - -static enum XML_Error PTRCALL -externalParEntProcessor(XML_Parser parser, - const char *s, - const char *end, - const char **nextPtr) -{ - const char *next = s; - int tok; - - tok = XmlPrologTok(encoding, s, end, &next); - if (tok <= 0) { - if (!ps_finalBuffer && tok != XML_TOK_INVALID) { - *nextPtr = s; - return XML_ERROR_NONE; - } - switch (tok) { - case XML_TOK_INVALID: - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL: - return XML_ERROR_UNCLOSED_TOKEN; - case XML_TOK_PARTIAL_CHAR: - return XML_ERROR_PARTIAL_CHAR; - case XML_TOK_NONE: /* start == end */ - default: - break; - } - } - /* This would cause the next stage, i.e. doProlog to be passed XML_TOK_BOM. - However, when parsing an external subset, doProlog will not accept a BOM - as valid, and report a syntax error, so we have to skip the BOM - */ - else if (tok == XML_TOK_BOM) { - s = next; - tok = XmlPrologTok(encoding, s, end, &next); - } - - processor = prologProcessor; - return doProlog(parser, encoding, s, end, tok, next, - nextPtr, (XML_Bool)!ps_finalBuffer); -} - -static enum XML_Error PTRCALL -entityValueProcessor(XML_Parser parser, - const char *s, - const char *end, - const char **nextPtr) -{ - const char *start = s; - const char *next = s; - const ENCODING *enc = encoding; - int tok; - - for (;;) { - tok = XmlPrologTok(enc, start, end, &next); - if (tok <= 0) { - if (!ps_finalBuffer && tok != XML_TOK_INVALID) { - *nextPtr = s; - return XML_ERROR_NONE; - } - switch (tok) { - case XML_TOK_INVALID: - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL: - return XML_ERROR_UNCLOSED_TOKEN; - case XML_TOK_PARTIAL_CHAR: - return XML_ERROR_PARTIAL_CHAR; - case XML_TOK_NONE: /* start == end */ - default: - break; - } - /* found end of entity value - can store it now */ - return storeEntityValue(parser, enc, s, end); - } - start = next; - } -} - -#endif /* XML_DTD */ - -static enum XML_Error PTRCALL -prologProcessor(XML_Parser parser, - const char *s, - const char *end, - const char **nextPtr) -{ - const char *next = s; - int tok = XmlPrologTok(encoding, s, end, &next); - return doProlog(parser, encoding, s, end, tok, next, - nextPtr, (XML_Bool)!ps_finalBuffer); -} - -static enum XML_Error -doProlog(XML_Parser parser, - const ENCODING *enc, - const char *s, - const char *end, - int tok, - const char *next, - const char **nextPtr, - XML_Bool haveMore) -{ -#ifdef XML_DTD - static const XML_Char externalSubsetName[] = { ASCII_HASH , '\0' }; -#endif /* XML_DTD */ - static const XML_Char atypeCDATA[] = - { ASCII_C, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0' }; - static const XML_Char atypeID[] = { ASCII_I, ASCII_D, '\0' }; - static const XML_Char atypeIDREF[] = - { ASCII_I, ASCII_D, ASCII_R, ASCII_E, ASCII_F, '\0' }; - static const XML_Char atypeIDREFS[] = - { ASCII_I, ASCII_D, ASCII_R, ASCII_E, ASCII_F, ASCII_S, '\0' }; - static const XML_Char atypeENTITY[] = - { ASCII_E, ASCII_N, ASCII_T, ASCII_I, ASCII_T, ASCII_Y, '\0' }; - static const XML_Char atypeENTITIES[] = { ASCII_E, ASCII_N, - ASCII_T, ASCII_I, ASCII_T, ASCII_I, ASCII_E, ASCII_S, '\0' }; - static const XML_Char atypeNMTOKEN[] = { - ASCII_N, ASCII_M, ASCII_T, ASCII_O, ASCII_K, ASCII_E, ASCII_N, '\0' }; - static const XML_Char atypeNMTOKENS[] = { ASCII_N, ASCII_M, ASCII_T, - ASCII_O, ASCII_K, ASCII_E, ASCII_N, ASCII_S, '\0' }; - static const XML_Char notationPrefix[] = { ASCII_N, ASCII_O, ASCII_T, - ASCII_A, ASCII_T, ASCII_I, ASCII_O, ASCII_N, ASCII_LPAREN, '\0' }; - static const XML_Char enumValueSep[] = { ASCII_PIPE, '\0' }; - static const XML_Char enumValueStart[] = { ASCII_LPAREN, '\0' }; - - /* save one level of indirection */ - DTD * const dtd = _dtd; - - const char **eventPP; - const char **eventEndPP; - enum XML_Content_Quant quant; - - if (enc == encoding) { - eventPP = &eventPtr; - eventEndPP = &eventEndPtr; - } - else { - eventPP = &(openInternalEntities->internalEventPtr); - eventEndPP = &(openInternalEntities->internalEventEndPtr); - } - - for (;;) { - int role; - XML_Bool handleDefault = XML_TRUE; - *eventPP = s; - *eventEndPP = next; - if (tok <= 0) { - if (haveMore && tok != XML_TOK_INVALID) { - *nextPtr = s; - return XML_ERROR_NONE; - } - switch (tok) { - case XML_TOK_INVALID: - *eventPP = next; - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL: - return XML_ERROR_UNCLOSED_TOKEN; - case XML_TOK_PARTIAL_CHAR: - return XML_ERROR_PARTIAL_CHAR; - case -XML_TOK_PROLOG_S: - tok = -tok; - break; - case XML_TOK_NONE: -#ifdef XML_DTD - /* for internal PE NOT referenced between declarations */ - if (enc != encoding && !openInternalEntities->betweenDecl) { - *nextPtr = s; - return XML_ERROR_NONE; - } - /* WFC: PE Between Declarations - must check that PE contains - complete markup, not only for external PEs, but also for - internal PEs if the reference occurs between declarations. - */ - if (isParamEntity || enc != encoding) { - if (XmlTokenRole(&prologState, XML_TOK_NONE, end, end, enc) - == XML_ROLE_ERROR) - return XML_ERROR_INCOMPLETE_PE; - *nextPtr = s; - return XML_ERROR_NONE; - } -#endif /* XML_DTD */ - return XML_ERROR_NO_ELEMENTS; - default: - tok = -tok; - next = end; - break; - } - } - role = XmlTokenRole(&prologState, tok, s, next, enc); - switch (role) { - case XML_ROLE_XML_DECL: - { - enum XML_Error result = processXmlDecl(parser, 0, s, next); - if (result != XML_ERROR_NONE) - return result; - enc = encoding; - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_DOCTYPE_NAME: - if (startDoctypeDeclHandler) { - doctypeName = poolStoreString(&tempPool, enc, s, next); - if (!doctypeName) - return XML_ERROR_NO_MEMORY; - poolFinish(&tempPool); - doctypePubid = NULL; - handleDefault = XML_FALSE; - } - doctypeSysid = NULL; /* always initialize to NULL */ - break; - case XML_ROLE_DOCTYPE_INTERNAL_SUBSET: - if (startDoctypeDeclHandler) { - startDoctypeDeclHandler(handlerArg, doctypeName, doctypeSysid, - doctypePubid, 1); - doctypeName = NULL; - poolClear(&tempPool); - handleDefault = XML_FALSE; - } - break; -#ifdef XML_DTD - case XML_ROLE_TEXT_DECL: - { - enum XML_Error result = processXmlDecl(parser, 1, s, next); - if (result != XML_ERROR_NONE) - return result; - enc = encoding; - handleDefault = XML_FALSE; - } - break; -#endif /* XML_DTD */ - case XML_ROLE_DOCTYPE_PUBLIC_ID: -#ifdef XML_DTD - useForeignDTD = XML_FALSE; - declEntity = (ENTITY *)lookup(parser, - &dtd->paramEntities, - externalSubsetName, - sizeof(ENTITY)); - if (!declEntity) - return XML_ERROR_NO_MEMORY; -#endif /* XML_DTD */ - dtd->hasParamEntityRefs = XML_TRUE; - if (startDoctypeDeclHandler) { - XML_Char *pubId; - if (!XmlIsPublicId(enc, s, next, eventPP)) - return XML_ERROR_PUBLICID; - pubId = poolStoreString(&tempPool, enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!pubId) - return XML_ERROR_NO_MEMORY; - normalizePublicId(pubId); - poolFinish(&tempPool); - doctypePubid = pubId; - handleDefault = XML_FALSE; - goto alreadyChecked; - } - /* fall through */ - case XML_ROLE_ENTITY_PUBLIC_ID: - if (!XmlIsPublicId(enc, s, next, eventPP)) - return XML_ERROR_PUBLICID; - alreadyChecked: - if (dtd->keepProcessing && declEntity) { - XML_Char *tem = poolStoreString(&dtd->pool, - enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!tem) - return XML_ERROR_NO_MEMORY; - normalizePublicId(tem); - declEntity->publicId = tem; - poolFinish(&dtd->pool); - if (entityDeclHandler) - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_DOCTYPE_CLOSE: - if (doctypeName) { - startDoctypeDeclHandler(handlerArg, doctypeName, - doctypeSysid, doctypePubid, 0); - poolClear(&tempPool); - handleDefault = XML_FALSE; - } - /* doctypeSysid will be non-NULL in the case of a previous - XML_ROLE_DOCTYPE_SYSTEM_ID, even if startDoctypeDeclHandler - was not set, indicating an external subset - */ -#ifdef XML_DTD - if (doctypeSysid || useForeignDTD) { - XML_Bool hadParamEntityRefs = dtd->hasParamEntityRefs; - dtd->hasParamEntityRefs = XML_TRUE; - if (paramEntityParsing && externalEntityRefHandler) { - ENTITY *entity = (ENTITY *)lookup(parser, - &dtd->paramEntities, - externalSubsetName, - sizeof(ENTITY)); - if (!entity) - return XML_ERROR_NO_MEMORY; - if (useForeignDTD) - entity->base = curBase; - dtd->paramEntityRead = XML_FALSE; - if (!externalEntityRefHandler(externalEntityRefHandlerArg, - 0, - entity->base, - entity->systemId, - entity->publicId)) - return XML_ERROR_EXTERNAL_ENTITY_HANDLING; - if (dtd->paramEntityRead) { - if (!dtd->standalone && - notStandaloneHandler && - !notStandaloneHandler(handlerArg)) - return XML_ERROR_NOT_STANDALONE; - } - /* if we didn't read the foreign DTD then this means that there - is no external subset and we must reset dtd->hasParamEntityRefs - */ - else if (!doctypeSysid) - dtd->hasParamEntityRefs = hadParamEntityRefs; - /* end of DTD - no need to update dtd->keepProcessing */ - } - useForeignDTD = XML_FALSE; - } -#endif /* XML_DTD */ - if (endDoctypeDeclHandler) { - endDoctypeDeclHandler(handlerArg); - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_INSTANCE_START: -#ifdef XML_DTD - /* if there is no DOCTYPE declaration then now is the - last chance to read the foreign DTD - */ - if (useForeignDTD) { - XML_Bool hadParamEntityRefs = dtd->hasParamEntityRefs; - dtd->hasParamEntityRefs = XML_TRUE; - if (paramEntityParsing && externalEntityRefHandler) { - ENTITY *entity = (ENTITY *)lookup(parser, &dtd->paramEntities, - externalSubsetName, - sizeof(ENTITY)); - if (!entity) - return XML_ERROR_NO_MEMORY; - entity->base = curBase; - dtd->paramEntityRead = XML_FALSE; - if (!externalEntityRefHandler(externalEntityRefHandlerArg, - 0, - entity->base, - entity->systemId, - entity->publicId)) - return XML_ERROR_EXTERNAL_ENTITY_HANDLING; - if (dtd->paramEntityRead) { - if (!dtd->standalone && - notStandaloneHandler && - !notStandaloneHandler(handlerArg)) - return XML_ERROR_NOT_STANDALONE; - } - /* if we didn't read the foreign DTD then this means that there - is no external subset and we must reset dtd->hasParamEntityRefs - */ - else - dtd->hasParamEntityRefs = hadParamEntityRefs; - /* end of DTD - no need to update dtd->keepProcessing */ - } - } -#endif /* XML_DTD */ - processor = contentProcessor; - return contentProcessor(parser, s, end, nextPtr); - case XML_ROLE_ATTLIST_ELEMENT_NAME: - declElementType = getElementType(parser, enc, s, next); - if (!declElementType) - return XML_ERROR_NO_MEMORY; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_NAME: - declAttributeId = getAttributeId(parser, enc, s, next); - if (!declAttributeId) - return XML_ERROR_NO_MEMORY; - declAttributeIsCdata = XML_FALSE; - declAttributeType = NULL; - declAttributeIsId = XML_FALSE; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_CDATA: - declAttributeIsCdata = XML_TRUE; - declAttributeType = atypeCDATA; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_ID: - declAttributeIsId = XML_TRUE; - declAttributeType = atypeID; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_IDREF: - declAttributeType = atypeIDREF; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_IDREFS: - declAttributeType = atypeIDREFS; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_ENTITY: - declAttributeType = atypeENTITY; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_ENTITIES: - declAttributeType = atypeENTITIES; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_NMTOKEN: - declAttributeType = atypeNMTOKEN; - goto checkAttListDeclHandler; - case XML_ROLE_ATTRIBUTE_TYPE_NMTOKENS: - declAttributeType = atypeNMTOKENS; - checkAttListDeclHandler: - if (dtd->keepProcessing && attlistDeclHandler) - handleDefault = XML_FALSE; - break; - case XML_ROLE_ATTRIBUTE_ENUM_VALUE: - case XML_ROLE_ATTRIBUTE_NOTATION_VALUE: - if (dtd->keepProcessing && attlistDeclHandler) { - const XML_Char *prefix; - if (declAttributeType) { - prefix = enumValueSep; - } - else { - prefix = (role == XML_ROLE_ATTRIBUTE_NOTATION_VALUE - ? notationPrefix - : enumValueStart); - } - if (!poolAppendString(&tempPool, prefix)) - return XML_ERROR_NO_MEMORY; - if (!poolAppend(&tempPool, enc, s, next)) - return XML_ERROR_NO_MEMORY; - declAttributeType = tempPool.start; - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_IMPLIED_ATTRIBUTE_VALUE: - case XML_ROLE_REQUIRED_ATTRIBUTE_VALUE: - if (dtd->keepProcessing) { - if (!defineAttribute(declElementType, declAttributeId, - declAttributeIsCdata, declAttributeIsId, - 0, parser)) - return XML_ERROR_NO_MEMORY; - if (attlistDeclHandler && declAttributeType) { - if (*declAttributeType == XML_T(ASCII_LPAREN) - || (*declAttributeType == XML_T(ASCII_N) - && declAttributeType[1] == XML_T(ASCII_O))) { - /* Enumerated or Notation type */ - if (!poolAppendChar(&tempPool, XML_T(ASCII_RPAREN)) - || !poolAppendChar(&tempPool, XML_T('\0'))) - return XML_ERROR_NO_MEMORY; - declAttributeType = tempPool.start; - poolFinish(&tempPool); - } - *eventEndPP = s; - attlistDeclHandler(handlerArg, declElementType->name, - declAttributeId->name, declAttributeType, - 0, role == XML_ROLE_REQUIRED_ATTRIBUTE_VALUE); - poolClear(&tempPool); - handleDefault = XML_FALSE; - } - } - break; - case XML_ROLE_DEFAULT_ATTRIBUTE_VALUE: - case XML_ROLE_FIXED_ATTRIBUTE_VALUE: - if (dtd->keepProcessing) { - const XML_Char *attVal; - enum XML_Error result = - storeAttributeValue(parser, enc, declAttributeIsCdata, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar, - &dtd->pool); - if (result) - return result; - attVal = poolStart(&dtd->pool); - poolFinish(&dtd->pool); - /* ID attributes aren't allowed to have a default */ - if (!defineAttribute(declElementType, declAttributeId, - declAttributeIsCdata, XML_FALSE, attVal, parser)) - return XML_ERROR_NO_MEMORY; - if (attlistDeclHandler && declAttributeType) { - if (*declAttributeType == XML_T(ASCII_LPAREN) - || (*declAttributeType == XML_T(ASCII_N) - && declAttributeType[1] == XML_T(ASCII_O))) { - /* Enumerated or Notation type */ - if (!poolAppendChar(&tempPool, XML_T(ASCII_RPAREN)) - || !poolAppendChar(&tempPool, XML_T('\0'))) - return XML_ERROR_NO_MEMORY; - declAttributeType = tempPool.start; - poolFinish(&tempPool); - } - *eventEndPP = s; - attlistDeclHandler(handlerArg, declElementType->name, - declAttributeId->name, declAttributeType, - attVal, - role == XML_ROLE_FIXED_ATTRIBUTE_VALUE); - poolClear(&tempPool); - handleDefault = XML_FALSE; - } - } - break; - case XML_ROLE_ENTITY_VALUE: - if (dtd->keepProcessing) { - enum XML_Error result = storeEntityValue(parser, enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (declEntity) { - declEntity->textPtr = poolStart(&dtd->entityValuePool); - declEntity->textLen = (int)(poolLength(&dtd->entityValuePool)); - poolFinish(&dtd->entityValuePool); - if (entityDeclHandler) { - *eventEndPP = s; - entityDeclHandler(handlerArg, - declEntity->name, - declEntity->is_param, - declEntity->textPtr, - declEntity->textLen, - curBase, 0, 0, 0); - handleDefault = XML_FALSE; - } - } - else - poolDiscard(&dtd->entityValuePool); - if (result != XML_ERROR_NONE) - return result; - } - break; - case XML_ROLE_DOCTYPE_SYSTEM_ID: -#ifdef XML_DTD - useForeignDTD = XML_FALSE; -#endif /* XML_DTD */ - dtd->hasParamEntityRefs = XML_TRUE; - if (startDoctypeDeclHandler) { - doctypeSysid = poolStoreString(&tempPool, enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (doctypeSysid == NULL) - return XML_ERROR_NO_MEMORY; - poolFinish(&tempPool); - handleDefault = XML_FALSE; - } -#ifdef XML_DTD - else - /* use externalSubsetName to make doctypeSysid non-NULL - for the case where no startDoctypeDeclHandler is set */ - doctypeSysid = externalSubsetName; -#endif /* XML_DTD */ - if (!dtd->standalone -#ifdef XML_DTD - && !paramEntityParsing -#endif /* XML_DTD */ - && notStandaloneHandler - && !notStandaloneHandler(handlerArg)) - return XML_ERROR_NOT_STANDALONE; -#ifndef XML_DTD - break; -#else /* XML_DTD */ - if (!declEntity) { - declEntity = (ENTITY *)lookup(parser, - &dtd->paramEntities, - externalSubsetName, - sizeof(ENTITY)); - if (!declEntity) - return XML_ERROR_NO_MEMORY; - declEntity->publicId = NULL; - } - /* fall through */ -#endif /* XML_DTD */ - case XML_ROLE_ENTITY_SYSTEM_ID: - if (dtd->keepProcessing && declEntity) { - declEntity->systemId = poolStoreString(&dtd->pool, enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!declEntity->systemId) - return XML_ERROR_NO_MEMORY; - declEntity->base = curBase; - poolFinish(&dtd->pool); - if (entityDeclHandler) - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_ENTITY_COMPLETE: - if (dtd->keepProcessing && declEntity && entityDeclHandler) { - *eventEndPP = s; - entityDeclHandler(handlerArg, - declEntity->name, - declEntity->is_param, - 0,0, - declEntity->base, - declEntity->systemId, - declEntity->publicId, - 0); - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_ENTITY_NOTATION_NAME: - if (dtd->keepProcessing && declEntity) { - declEntity->notation = poolStoreString(&dtd->pool, enc, s, next); - if (!declEntity->notation) - return XML_ERROR_NO_MEMORY; - poolFinish(&dtd->pool); - if (unparsedEntityDeclHandler) { - *eventEndPP = s; - unparsedEntityDeclHandler(handlerArg, - declEntity->name, - declEntity->base, - declEntity->systemId, - declEntity->publicId, - declEntity->notation); - handleDefault = XML_FALSE; - } - else if (entityDeclHandler) { - *eventEndPP = s; - entityDeclHandler(handlerArg, - declEntity->name, - 0,0,0, - declEntity->base, - declEntity->systemId, - declEntity->publicId, - declEntity->notation); - handleDefault = XML_FALSE; - } - } - break; - case XML_ROLE_GENERAL_ENTITY_NAME: - { - if (XmlPredefinedEntityName(enc, s, next)) { - declEntity = NULL; - break; - } - if (dtd->keepProcessing) { - const XML_Char *name = poolStoreString(&dtd->pool, enc, s, next); - if (!name) - return XML_ERROR_NO_MEMORY; - declEntity = (ENTITY *)lookup(parser, &dtd->generalEntities, name, - sizeof(ENTITY)); - if (!declEntity) - return XML_ERROR_NO_MEMORY; - if (declEntity->name != name) { - poolDiscard(&dtd->pool); - declEntity = NULL; - } - else { - poolFinish(&dtd->pool); - declEntity->publicId = NULL; - declEntity->is_param = XML_FALSE; - /* if we have a parent parser or are reading an internal parameter - entity, then the entity declaration is not considered "internal" - */ - declEntity->is_internal = !(parentParser || openInternalEntities); - if (entityDeclHandler) - handleDefault = XML_FALSE; - } - } - else { - poolDiscard(&dtd->pool); - declEntity = NULL; - } - } - break; - case XML_ROLE_PARAM_ENTITY_NAME: -#ifdef XML_DTD - if (dtd->keepProcessing) { - const XML_Char *name = poolStoreString(&dtd->pool, enc, s, next); - if (!name) - return XML_ERROR_NO_MEMORY; - declEntity = (ENTITY *)lookup(parser, &dtd->paramEntities, - name, sizeof(ENTITY)); - if (!declEntity) - return XML_ERROR_NO_MEMORY; - if (declEntity->name != name) { - poolDiscard(&dtd->pool); - declEntity = NULL; - } - else { - poolFinish(&dtd->pool); - declEntity->publicId = NULL; - declEntity->is_param = XML_TRUE; - /* if we have a parent parser or are reading an internal parameter - entity, then the entity declaration is not considered "internal" - */ - declEntity->is_internal = !(parentParser || openInternalEntities); - if (entityDeclHandler) - handleDefault = XML_FALSE; - } - } - else { - poolDiscard(&dtd->pool); - declEntity = NULL; - } -#else /* not XML_DTD */ - declEntity = NULL; -#endif /* XML_DTD */ - break; - case XML_ROLE_NOTATION_NAME: - declNotationPublicId = NULL; - declNotationName = NULL; - if (notationDeclHandler) { - declNotationName = poolStoreString(&tempPool, enc, s, next); - if (!declNotationName) - return XML_ERROR_NO_MEMORY; - poolFinish(&tempPool); - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_NOTATION_PUBLIC_ID: - if (!XmlIsPublicId(enc, s, next, eventPP)) - return XML_ERROR_PUBLICID; - if (declNotationName) { /* means notationDeclHandler != NULL */ - XML_Char *tem = poolStoreString(&tempPool, - enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!tem) - return XML_ERROR_NO_MEMORY; - normalizePublicId(tem); - declNotationPublicId = tem; - poolFinish(&tempPool); - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_NOTATION_SYSTEM_ID: - if (declNotationName && notationDeclHandler) { - const XML_Char *systemId - = poolStoreString(&tempPool, enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!systemId) - return XML_ERROR_NO_MEMORY; - *eventEndPP = s; - notationDeclHandler(handlerArg, - declNotationName, - curBase, - systemId, - declNotationPublicId); - handleDefault = XML_FALSE; - } - poolClear(&tempPool); - break; - case XML_ROLE_NOTATION_NO_SYSTEM_ID: - if (declNotationPublicId && notationDeclHandler) { - *eventEndPP = s; - notationDeclHandler(handlerArg, - declNotationName, - curBase, - 0, - declNotationPublicId); - handleDefault = XML_FALSE; - } - poolClear(&tempPool); - break; - case XML_ROLE_ERROR: - switch (tok) { - case XML_TOK_PARAM_ENTITY_REF: - /* PE references in internal subset are - not allowed within declarations. */ - return XML_ERROR_PARAM_ENTITY_REF; - case XML_TOK_XML_DECL: - return XML_ERROR_MISPLACED_XML_PI; - default: - return XML_ERROR_SYNTAX; - } -#ifdef XML_DTD - case XML_ROLE_IGNORE_SECT: - { - enum XML_Error result; - if (defaultHandler) - reportDefault(parser, enc, s, next); - handleDefault = XML_FALSE; - result = doIgnoreSection(parser, enc, &next, end, nextPtr, haveMore); - if (result != XML_ERROR_NONE) - return result; - else if (!next) { - processor = ignoreSectionProcessor; - return result; - } - } - break; -#endif /* XML_DTD */ - case XML_ROLE_GROUP_OPEN: - if (prologState.level >= groupSize) { - if (groupSize) { - char *temp = (char *)REALLOC(groupConnector, groupSize *= 2); - if (temp == NULL) - return XML_ERROR_NO_MEMORY; - groupConnector = temp; - if (dtd->scaffIndex) { - int *temp = (int *)REALLOC(dtd->scaffIndex, - groupSize * sizeof(int)); - if (temp == NULL) - return XML_ERROR_NO_MEMORY; - dtd->scaffIndex = temp; - } - } - else { - groupConnector = (char *)MALLOC(groupSize = 32); - if (!groupConnector) - return XML_ERROR_NO_MEMORY; - } - } - groupConnector[prologState.level] = 0; - if (dtd->in_eldecl) { - int myindex = nextScaffoldPart(parser); - if (myindex < 0) - return XML_ERROR_NO_MEMORY; - dtd->scaffIndex[dtd->scaffLevel] = myindex; - dtd->scaffLevel++; - dtd->scaffold[myindex].type = XML_CTYPE_SEQ; - if (elementDeclHandler) - handleDefault = XML_FALSE; - } - break; - case XML_ROLE_GROUP_SEQUENCE: - if (groupConnector[prologState.level] == ASCII_PIPE) - return XML_ERROR_SYNTAX; - groupConnector[prologState.level] = ASCII_COMMA; - if (dtd->in_eldecl && elementDeclHandler) - handleDefault = XML_FALSE; - break; - case XML_ROLE_GROUP_CHOICE: - if (groupConnector[prologState.level] == ASCII_COMMA) - return XML_ERROR_SYNTAX; - if (dtd->in_eldecl - && !groupConnector[prologState.level] - && (dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel - 1]].type - != XML_CTYPE_MIXED) - ) { - dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel - 1]].type - = XML_CTYPE_CHOICE; - if (elementDeclHandler) - handleDefault = XML_FALSE; - } - groupConnector[prologState.level] = ASCII_PIPE; - break; - case XML_ROLE_PARAM_ENTITY_REF: -#ifdef XML_DTD - case XML_ROLE_INNER_PARAM_ENTITY_REF: - dtd->hasParamEntityRefs = XML_TRUE; - if (!paramEntityParsing) - dtd->keepProcessing = dtd->standalone; - else { - const XML_Char *name; - ENTITY *entity; - name = poolStoreString(&dtd->pool, enc, - s + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!name) - return XML_ERROR_NO_MEMORY; - entity = (ENTITY *)lookup(parser, &dtd->paramEntities, name, 0); - poolDiscard(&dtd->pool); - /* first, determine if a check for an existing declaration is needed; - if yes, check that the entity exists, and that it is internal, - otherwise call the skipped entity handler - */ - if (prologState.documentEntity && - (dtd->standalone - ? !openInternalEntities - : !dtd->hasParamEntityRefs)) { - if (!entity) - return XML_ERROR_UNDEFINED_ENTITY; - else if (!entity->is_internal) - return XML_ERROR_ENTITY_DECLARED_IN_PE; - } - else if (!entity) { - dtd->keepProcessing = dtd->standalone; - /* cannot report skipped entities in declarations */ - if ((role == XML_ROLE_PARAM_ENTITY_REF) && skippedEntityHandler) { - skippedEntityHandler(handlerArg, name, 1); - handleDefault = XML_FALSE; - } - break; - } - if (entity->open) - return XML_ERROR_RECURSIVE_ENTITY_REF; - if (entity->textPtr) { - enum XML_Error result; - XML_Bool betweenDecl = - (role == XML_ROLE_PARAM_ENTITY_REF ? XML_TRUE : XML_FALSE); - result = processInternalEntity(parser, entity, betweenDecl); - if (result != XML_ERROR_NONE) - return result; - handleDefault = XML_FALSE; - break; - } - if (externalEntityRefHandler) { - dtd->paramEntityRead = XML_FALSE; - entity->open = XML_TRUE; - if (!externalEntityRefHandler(externalEntityRefHandlerArg, - 0, - entity->base, - entity->systemId, - entity->publicId)) { - entity->open = XML_FALSE; - return XML_ERROR_EXTERNAL_ENTITY_HANDLING; - } - entity->open = XML_FALSE; - handleDefault = XML_FALSE; - if (!dtd->paramEntityRead) { - dtd->keepProcessing = dtd->standalone; - break; - } - } - else { - dtd->keepProcessing = dtd->standalone; - break; - } - } -#endif /* XML_DTD */ - if (!dtd->standalone && - notStandaloneHandler && - !notStandaloneHandler(handlerArg)) - return XML_ERROR_NOT_STANDALONE; - break; - - /* Element declaration stuff */ - - case XML_ROLE_ELEMENT_NAME: - if (elementDeclHandler) { - declElementType = getElementType(parser, enc, s, next); - if (!declElementType) - return XML_ERROR_NO_MEMORY; - dtd->scaffLevel = 0; - dtd->scaffCount = 0; - dtd->in_eldecl = XML_TRUE; - handleDefault = XML_FALSE; - } - break; - - case XML_ROLE_CONTENT_ANY: - case XML_ROLE_CONTENT_EMPTY: - if (dtd->in_eldecl) { - if (elementDeclHandler) { - XML_Content * content = (XML_Content *) MALLOC(sizeof(XML_Content)); - if (!content) - return XML_ERROR_NO_MEMORY; - content->quant = XML_CQUANT_NONE; - content->name = NULL; - content->numchildren = 0; - content->children = NULL; - content->type = ((role == XML_ROLE_CONTENT_ANY) ? - XML_CTYPE_ANY : - XML_CTYPE_EMPTY); - *eventEndPP = s; - elementDeclHandler(handlerArg, declElementType->name, content); - handleDefault = XML_FALSE; - } - dtd->in_eldecl = XML_FALSE; - } - break; - - case XML_ROLE_CONTENT_PCDATA: - if (dtd->in_eldecl) { - dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel - 1]].type - = XML_CTYPE_MIXED; - if (elementDeclHandler) - handleDefault = XML_FALSE; - } - break; - - case XML_ROLE_CONTENT_ELEMENT: - quant = XML_CQUANT_NONE; - goto elementContent; - case XML_ROLE_CONTENT_ELEMENT_OPT: - quant = XML_CQUANT_OPT; - goto elementContent; - case XML_ROLE_CONTENT_ELEMENT_REP: - quant = XML_CQUANT_REP; - goto elementContent; - case XML_ROLE_CONTENT_ELEMENT_PLUS: - quant = XML_CQUANT_PLUS; - elementContent: - if (dtd->in_eldecl) { - ELEMENT_TYPE *el; - const XML_Char *name; - int nameLen; - const char *nxt = (quant == XML_CQUANT_NONE - ? next - : next - enc->minBytesPerChar); - int myindex = nextScaffoldPart(parser); - if (myindex < 0) - return XML_ERROR_NO_MEMORY; - dtd->scaffold[myindex].type = XML_CTYPE_NAME; - dtd->scaffold[myindex].quant = quant; - el = getElementType(parser, enc, s, nxt); - if (!el) - return XML_ERROR_NO_MEMORY; - name = el->name; - dtd->scaffold[myindex].name = name; - nameLen = 0; - for (; name[nameLen++]; ); - dtd->contentStringLen += nameLen; - if (elementDeclHandler) - handleDefault = XML_FALSE; - } - break; - - case XML_ROLE_GROUP_CLOSE: - quant = XML_CQUANT_NONE; - goto closeGroup; - case XML_ROLE_GROUP_CLOSE_OPT: - quant = XML_CQUANT_OPT; - goto closeGroup; - case XML_ROLE_GROUP_CLOSE_REP: - quant = XML_CQUANT_REP; - goto closeGroup; - case XML_ROLE_GROUP_CLOSE_PLUS: - quant = XML_CQUANT_PLUS; - closeGroup: - if (dtd->in_eldecl) { - if (elementDeclHandler) - handleDefault = XML_FALSE; - dtd->scaffLevel--; - dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel]].quant = quant; - if (dtd->scaffLevel == 0) { - if (!handleDefault) { - XML_Content *model = build_model(parser); - if (!model) - return XML_ERROR_NO_MEMORY; - *eventEndPP = s; - elementDeclHandler(handlerArg, declElementType->name, model); - } - dtd->in_eldecl = XML_FALSE; - dtd->contentStringLen = 0; - } - } - break; - /* End element declaration stuff */ - - case XML_ROLE_PI: - if (!reportProcessingInstruction(parser, enc, s, next)) - return XML_ERROR_NO_MEMORY; - handleDefault = XML_FALSE; - break; - case XML_ROLE_COMMENT: - if (!reportComment(parser, enc, s, next)) - return XML_ERROR_NO_MEMORY; - handleDefault = XML_FALSE; - break; - case XML_ROLE_NONE: - switch (tok) { - case XML_TOK_BOM: - handleDefault = XML_FALSE; - break; - } - break; - case XML_ROLE_DOCTYPE_NONE: - if (startDoctypeDeclHandler) - handleDefault = XML_FALSE; - break; - case XML_ROLE_ENTITY_NONE: - if (dtd->keepProcessing && entityDeclHandler) - handleDefault = XML_FALSE; - break; - case XML_ROLE_NOTATION_NONE: - if (notationDeclHandler) - handleDefault = XML_FALSE; - break; - case XML_ROLE_ATTLIST_NONE: - if (dtd->keepProcessing && attlistDeclHandler) - handleDefault = XML_FALSE; - break; - case XML_ROLE_ELEMENT_NONE: - if (elementDeclHandler) - handleDefault = XML_FALSE; - break; - } /* end of big switch */ - - if (handleDefault && defaultHandler) - reportDefault(parser, enc, s, next); - - switch (ps_parsing) { - case XML_SUSPENDED: - *nextPtr = next; - return XML_ERROR_NONE; - case XML_FINISHED: - return XML_ERROR_ABORTED; - default: - s = next; - tok = XmlPrologTok(enc, s, end, &next); - } - } - /* not reached */ -} - -static enum XML_Error PTRCALL -epilogProcessor(XML_Parser parser, - const char *s, - const char *end, - const char **nextPtr) -{ - processor = epilogProcessor; - eventPtr = s; - for (;;) { - const char *next = NULL; - int tok = XmlPrologTok(encoding, s, end, &next); - eventEndPtr = next; - switch (tok) { - /* report partial linebreak - it might be the last token */ - case -XML_TOK_PROLOG_S: - if (defaultHandler) { - reportDefault(parser, encoding, s, next); - if (ps_parsing == XML_FINISHED) - return XML_ERROR_ABORTED; - } - *nextPtr = next; - return XML_ERROR_NONE; - case XML_TOK_NONE: - *nextPtr = s; - return XML_ERROR_NONE; - case XML_TOK_PROLOG_S: - if (defaultHandler) - reportDefault(parser, encoding, s, next); - break; - case XML_TOK_PI: - if (!reportProcessingInstruction(parser, encoding, s, next)) - return XML_ERROR_NO_MEMORY; - break; - case XML_TOK_COMMENT: - if (!reportComment(parser, encoding, s, next)) - return XML_ERROR_NO_MEMORY; - break; - case XML_TOK_INVALID: - eventPtr = next; - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL: - if (!ps_finalBuffer) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_UNCLOSED_TOKEN; - case XML_TOK_PARTIAL_CHAR: - if (!ps_finalBuffer) { - *nextPtr = s; - return XML_ERROR_NONE; - } - return XML_ERROR_PARTIAL_CHAR; - default: - return XML_ERROR_JUNK_AFTER_DOC_ELEMENT; - } - eventPtr = s = next; - switch (ps_parsing) { - case XML_SUSPENDED: - *nextPtr = next; - return XML_ERROR_NONE; - case XML_FINISHED: - return XML_ERROR_ABORTED; - default: ; - } - } -} - -static enum XML_Error -processInternalEntity(XML_Parser parser, ENTITY *entity, - XML_Bool betweenDecl) -{ - const char *textStart, *textEnd; - const char *next; - enum XML_Error result; - OPEN_INTERNAL_ENTITY *openEntity; - - if (freeInternalEntities) { - openEntity = freeInternalEntities; - freeInternalEntities = openEntity->next; - } - else { - openEntity = (OPEN_INTERNAL_ENTITY *)MALLOC(sizeof(OPEN_INTERNAL_ENTITY)); - if (!openEntity) - return XML_ERROR_NO_MEMORY; - } - entity->open = XML_TRUE; - entity->processed = 0; - openEntity->next = openInternalEntities; - openInternalEntities = openEntity; - openEntity->entity = entity; - openEntity->startTagLevel = tagLevel; - openEntity->betweenDecl = betweenDecl; - openEntity->internalEventPtr = NULL; - openEntity->internalEventEndPtr = NULL; - textStart = (char *)entity->textPtr; - textEnd = (char *)(entity->textPtr + entity->textLen); - -#ifdef XML_DTD - if (entity->is_param) { - int tok = XmlPrologTok(internalEncoding, textStart, textEnd, &next); - result = doProlog(parser, internalEncoding, textStart, textEnd, tok, - next, &next, XML_FALSE); - } - else -#endif /* XML_DTD */ - result = doContent(parser, tagLevel, internalEncoding, textStart, - textEnd, &next, XML_FALSE); - - if (result == XML_ERROR_NONE) { - if (textEnd != next && ps_parsing == XML_SUSPENDED) { - entity->processed = (int)(next - textStart); - processor = internalEntityProcessor; - } - else { - entity->open = XML_FALSE; - openInternalEntities = openEntity->next; - /* put openEntity back in list of free instances */ - openEntity->next = freeInternalEntities; - freeInternalEntities = openEntity; - } - } - return result; -} - -static enum XML_Error PTRCALL -internalEntityProcessor(XML_Parser parser, - const char *s, - const char *end, - const char **nextPtr) -{ - ENTITY *entity; - const char *textStart, *textEnd; - const char *next; - enum XML_Error result; - OPEN_INTERNAL_ENTITY *openEntity = openInternalEntities; - if (!openEntity) - return XML_ERROR_UNEXPECTED_STATE; - - entity = openEntity->entity; - textStart = ((char *)entity->textPtr) + entity->processed; - textEnd = (char *)(entity->textPtr + entity->textLen); - -#ifdef XML_DTD - if (entity->is_param) { - int tok = XmlPrologTok(internalEncoding, textStart, textEnd, &next); - result = doProlog(parser, internalEncoding, textStart, textEnd, tok, - next, &next, XML_FALSE); - } - else -#endif /* XML_DTD */ - result = doContent(parser, openEntity->startTagLevel, internalEncoding, - textStart, textEnd, &next, XML_FALSE); - - if (result != XML_ERROR_NONE) - return result; - else if (textEnd != next && ps_parsing == XML_SUSPENDED) { - entity->processed = (int)(next - (char *)entity->textPtr); - return result; - } - else { - entity->open = XML_FALSE; - openInternalEntities = openEntity->next; - /* put openEntity back in list of free instances */ - openEntity->next = freeInternalEntities; - freeInternalEntities = openEntity; - } - -#ifdef XML_DTD - if (entity->is_param) { - int tok; - processor = prologProcessor; - tok = XmlPrologTok(encoding, s, end, &next); - return doProlog(parser, encoding, s, end, tok, next, nextPtr, - (XML_Bool)!ps_finalBuffer); - } - else -#endif /* XML_DTD */ - { - processor = contentProcessor; - /* see externalEntityContentProcessor vs contentProcessor */ - return doContent(parser, parentParser ? 1 : 0, encoding, s, end, - nextPtr, (XML_Bool)!ps_finalBuffer); - } -} - -static enum XML_Error PTRCALL -errorProcessor(XML_Parser parser, - const char *s, - const char *end, - const char **nextPtr) -{ - return errorCode; -} - -static enum XML_Error -storeAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata, - const char *ptr, const char *end, - STRING_POOL *pool) -{ - enum XML_Error result = appendAttributeValue(parser, enc, isCdata, ptr, - end, pool); - if (result) - return result; - if (!isCdata && poolLength(pool) && poolLastChar(pool) == 0x20) - poolChop(pool); - if (!poolAppendChar(pool, XML_T('\0'))) - return XML_ERROR_NO_MEMORY; - return XML_ERROR_NONE; -} - -static enum XML_Error -appendAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata, - const char *ptr, const char *end, - STRING_POOL *pool) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - for (;;) { - const char *next; - int tok = XmlAttributeValueTok(enc, ptr, end, &next); - switch (tok) { - case XML_TOK_NONE: - return XML_ERROR_NONE; - case XML_TOK_INVALID: - if (enc == encoding) - eventPtr = next; - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_PARTIAL: - if (enc == encoding) - eventPtr = ptr; - return XML_ERROR_INVALID_TOKEN; - case XML_TOK_CHAR_REF: - { - XML_Char buf[XML_ENCODE_MAX]; - int i; - int n = XmlCharRefNumber(enc, ptr); - if (n < 0) { - if (enc == encoding) - eventPtr = ptr; - return XML_ERROR_BAD_CHAR_REF; - } - if (!isCdata - && n == 0x20 /* space */ - && (poolLength(pool) == 0 || poolLastChar(pool) == 0x20)) - break; - n = XmlEncode(n, (ICHAR *)buf); - if (!n) { - if (enc == encoding) - eventPtr = ptr; - return XML_ERROR_BAD_CHAR_REF; - } - for (i = 0; i < n; i++) { - if (!poolAppendChar(pool, buf[i])) - return XML_ERROR_NO_MEMORY; - } - } - break; - case XML_TOK_DATA_CHARS: - if (!poolAppend(pool, enc, ptr, next)) - return XML_ERROR_NO_MEMORY; - break; - case XML_TOK_TRAILING_CR: - next = ptr + enc->minBytesPerChar; - /* fall through */ - case XML_TOK_ATTRIBUTE_VALUE_S: - case XML_TOK_DATA_NEWLINE: - if (!isCdata && (poolLength(pool) == 0 || poolLastChar(pool) == 0x20)) - break; - if (!poolAppendChar(pool, 0x20)) - return XML_ERROR_NO_MEMORY; - break; - case XML_TOK_ENTITY_REF: - { - const XML_Char *name; - ENTITY *entity; - char checkEntityDecl; - XML_Char ch = (XML_Char) XmlPredefinedEntityName(enc, - ptr + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (ch) { - if (!poolAppendChar(pool, ch)) - return XML_ERROR_NO_MEMORY; - break; - } - name = poolStoreString(&temp2Pool, enc, - ptr + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!name) - return XML_ERROR_NO_MEMORY; - entity = (ENTITY *)lookup(parser, &dtd->generalEntities, name, 0); - poolDiscard(&temp2Pool); - /* First, determine if a check for an existing declaration is needed; - if yes, check that the entity exists, and that it is internal. - */ - if (pool == &dtd->pool) /* are we called from prolog? */ - checkEntityDecl = -#ifdef XML_DTD - prologState.documentEntity && -#endif /* XML_DTD */ - (dtd->standalone - ? !openInternalEntities - : !dtd->hasParamEntityRefs); - else /* if (pool == &tempPool): we are called from content */ - checkEntityDecl = !dtd->hasParamEntityRefs || dtd->standalone; - if (checkEntityDecl) { - if (!entity) - return XML_ERROR_UNDEFINED_ENTITY; - else if (!entity->is_internal) - return XML_ERROR_ENTITY_DECLARED_IN_PE; - } - else if (!entity) { - /* Cannot report skipped entity here - see comments on - skippedEntityHandler. - if (skippedEntityHandler) - skippedEntityHandler(handlerArg, name, 0); - */ - /* Cannot call the default handler because this would be - out of sync with the call to the startElementHandler. - if ((pool == &tempPool) && defaultHandler) - reportDefault(parser, enc, ptr, next); - */ - break; - } - if (entity->open) { - if (enc == encoding) - eventPtr = ptr; - return XML_ERROR_RECURSIVE_ENTITY_REF; - } - if (entity->notation) { - if (enc == encoding) - eventPtr = ptr; - return XML_ERROR_BINARY_ENTITY_REF; - } - if (!entity->textPtr) { - if (enc == encoding) - eventPtr = ptr; - return XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF; - } - else { - enum XML_Error result; - const XML_Char *textEnd = entity->textPtr + entity->textLen; - entity->open = XML_TRUE; - result = appendAttributeValue(parser, internalEncoding, isCdata, - (char *)entity->textPtr, - (char *)textEnd, pool); - entity->open = XML_FALSE; - if (result) - return result; - } - } - break; - default: - if (enc == encoding) - eventPtr = ptr; - return XML_ERROR_UNEXPECTED_STATE; - } - ptr = next; - } - /* not reached */ -} - -static enum XML_Error -storeEntityValue(XML_Parser parser, - const ENCODING *enc, - const char *entityTextPtr, - const char *entityTextEnd) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - STRING_POOL *pool = &(dtd->entityValuePool); - enum XML_Error result = XML_ERROR_NONE; -#ifdef XML_DTD - int oldInEntityValue = prologState.inEntityValue; - prologState.inEntityValue = 1; -#endif /* XML_DTD */ - /* never return Null for the value argument in EntityDeclHandler, - since this would indicate an external entity; therefore we - have to make sure that entityValuePool.start is not null */ - if (!pool->blocks) { - if (!poolGrow(pool)) - return XML_ERROR_NO_MEMORY; - } - - for (;;) { - const char *next; - int tok = XmlEntityValueTok(enc, entityTextPtr, entityTextEnd, &next); - switch (tok) { - case XML_TOK_PARAM_ENTITY_REF: -#ifdef XML_DTD - if (isParamEntity || enc != encoding) { - const XML_Char *name; - ENTITY *entity; - name = poolStoreString(&tempPool, enc, - entityTextPtr + enc->minBytesPerChar, - next - enc->minBytesPerChar); - if (!name) { - result = XML_ERROR_NO_MEMORY; - goto endEntityValue; - } - entity = (ENTITY *)lookup(parser, &dtd->paramEntities, name, 0); - poolDiscard(&tempPool); - if (!entity) { - /* not a well-formedness error - see XML 1.0: WFC Entity Declared */ - /* cannot report skipped entity here - see comments on - skippedEntityHandler - if (skippedEntityHandler) - skippedEntityHandler(handlerArg, name, 0); - */ - dtd->keepProcessing = dtd->standalone; - goto endEntityValue; - } - if (entity->open) { - if (enc == encoding) - eventPtr = entityTextPtr; - result = XML_ERROR_RECURSIVE_ENTITY_REF; - goto endEntityValue; - } - if (entity->systemId) { - if (externalEntityRefHandler) { - dtd->paramEntityRead = XML_FALSE; - entity->open = XML_TRUE; - if (!externalEntityRefHandler(externalEntityRefHandlerArg, - 0, - entity->base, - entity->systemId, - entity->publicId)) { - entity->open = XML_FALSE; - result = XML_ERROR_EXTERNAL_ENTITY_HANDLING; - goto endEntityValue; - } - entity->open = XML_FALSE; - if (!dtd->paramEntityRead) - dtd->keepProcessing = dtd->standalone; - } - else - dtd->keepProcessing = dtd->standalone; - } - else { - entity->open = XML_TRUE; - result = storeEntityValue(parser, - internalEncoding, - (char *)entity->textPtr, - (char *)(entity->textPtr - + entity->textLen)); - entity->open = XML_FALSE; - if (result) - goto endEntityValue; - } - break; - } -#endif /* XML_DTD */ - /* In the internal subset, PE references are not legal - within markup declarations, e.g entity values in this case. */ - eventPtr = entityTextPtr; - result = XML_ERROR_PARAM_ENTITY_REF; - goto endEntityValue; - case XML_TOK_NONE: - result = XML_ERROR_NONE; - goto endEntityValue; - case XML_TOK_ENTITY_REF: - case XML_TOK_DATA_CHARS: - if (!poolAppend(pool, enc, entityTextPtr, next)) { - result = XML_ERROR_NO_MEMORY; - goto endEntityValue; - } - break; - case XML_TOK_TRAILING_CR: - next = entityTextPtr + enc->minBytesPerChar; - /* fall through */ - case XML_TOK_DATA_NEWLINE: - if (pool->end == pool->ptr && !poolGrow(pool)) { - result = XML_ERROR_NO_MEMORY; - goto endEntityValue; - } - *(pool->ptr)++ = 0xA; - break; - case XML_TOK_CHAR_REF: - { - XML_Char buf[XML_ENCODE_MAX]; - int i; - int n = XmlCharRefNumber(enc, entityTextPtr); - if (n < 0) { - if (enc == encoding) - eventPtr = entityTextPtr; - result = XML_ERROR_BAD_CHAR_REF; - goto endEntityValue; - } - n = XmlEncode(n, (ICHAR *)buf); - if (!n) { - if (enc == encoding) - eventPtr = entityTextPtr; - result = XML_ERROR_BAD_CHAR_REF; - goto endEntityValue; - } - for (i = 0; i < n; i++) { - if (pool->end == pool->ptr && !poolGrow(pool)) { - result = XML_ERROR_NO_MEMORY; - goto endEntityValue; - } - *(pool->ptr)++ = buf[i]; - } - } - break; - case XML_TOK_PARTIAL: - if (enc == encoding) - eventPtr = entityTextPtr; - result = XML_ERROR_INVALID_TOKEN; - goto endEntityValue; - case XML_TOK_INVALID: - if (enc == encoding) - eventPtr = next; - result = XML_ERROR_INVALID_TOKEN; - goto endEntityValue; - default: - if (enc == encoding) - eventPtr = entityTextPtr; - result = XML_ERROR_UNEXPECTED_STATE; - goto endEntityValue; - } - entityTextPtr = next; - } -endEntityValue: -#ifdef XML_DTD - prologState.inEntityValue = oldInEntityValue; -#endif /* XML_DTD */ - return result; -} - -static void FASTCALL -normalizeLines(XML_Char *s) -{ - XML_Char *p; - for (;; s++) { - if (*s == XML_T('\0')) - return; - if (*s == 0xD) - break; - } - p = s; - do { - if (*s == 0xD) { - *p++ = 0xA; - if (*++s == 0xA) - s++; - } - else - *p++ = *s++; - } while (*s); - *p = XML_T('\0'); -} - -static int -reportProcessingInstruction(XML_Parser parser, const ENCODING *enc, - const char *start, const char *end) -{ - const XML_Char *target; - XML_Char *data; - const char *tem; - if (!processingInstructionHandler) { - if (defaultHandler) - reportDefault(parser, enc, start, end); - return 1; - } - start += enc->minBytesPerChar * 2; - tem = start + XmlNameLength(enc, start); - target = poolStoreString(&tempPool, enc, start, tem); - if (!target) - return 0; - poolFinish(&tempPool); - data = poolStoreString(&tempPool, enc, - XmlSkipS(enc, tem), - end - enc->minBytesPerChar*2); - if (!data) - return 0; - normalizeLines(data); - processingInstructionHandler(handlerArg, target, data); - poolClear(&tempPool); - return 1; -} - -static int -reportComment(XML_Parser parser, const ENCODING *enc, - const char *start, const char *end) -{ - XML_Char *data; - if (!commentHandler) { - if (defaultHandler) - reportDefault(parser, enc, start, end); - return 1; - } - data = poolStoreString(&tempPool, - enc, - start + enc->minBytesPerChar * 4, - end - enc->minBytesPerChar * 3); - if (!data) - return 0; - normalizeLines(data); - commentHandler(handlerArg, data); - poolClear(&tempPool); - return 1; -} - -static void -reportDefault(XML_Parser parser, const ENCODING *enc, - const char *s, const char *end) -{ - if (MUST_CONVERT(enc, s)) { - const char **eventPP; - const char **eventEndPP; - if (enc == encoding) { - eventPP = &eventPtr; - eventEndPP = &eventEndPtr; - } - else { - eventPP = &(openInternalEntities->internalEventPtr); - eventEndPP = &(openInternalEntities->internalEventEndPtr); - } - do { - ICHAR *dataPtr = (ICHAR *)dataBuf; - XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)dataBufEnd); - *eventEndPP = s; - defaultHandler(handlerArg, dataBuf, (int)(dataPtr - (ICHAR *)dataBuf)); - *eventPP = s; - } while (s != end); - } - else - defaultHandler(handlerArg, (XML_Char *)s, (int)((XML_Char *)end - (XML_Char *)s)); -} - - -static int -defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool isCdata, - XML_Bool isId, const XML_Char *value, XML_Parser parser) -{ - DEFAULT_ATTRIBUTE *att; - if (value || isId) { - /* The handling of default attributes gets messed up if we have - a default which duplicates a non-default. */ - int i; - for (i = 0; i < type->nDefaultAtts; i++) - if (attId == type->defaultAtts[i].id) - return 1; - if (isId && !type->idAtt && !attId->xmlns) - type->idAtt = attId; - } - if (type->nDefaultAtts == type->allocDefaultAtts) { - if (type->allocDefaultAtts == 0) { - type->allocDefaultAtts = 8; - type->defaultAtts = (DEFAULT_ATTRIBUTE *)MALLOC(type->allocDefaultAtts - * sizeof(DEFAULT_ATTRIBUTE)); - if (!type->defaultAtts) - return 0; - } - else { - DEFAULT_ATTRIBUTE *temp; - int count = type->allocDefaultAtts * 2; - temp = (DEFAULT_ATTRIBUTE *) - REALLOC(type->defaultAtts, (count * sizeof(DEFAULT_ATTRIBUTE))); - if (temp == NULL) - return 0; - type->allocDefaultAtts = count; - type->defaultAtts = temp; - } - } - att = type->defaultAtts + type->nDefaultAtts; - att->id = attId; - att->value = value; - att->isCdata = isCdata; - if (!isCdata) - attId->maybeTokenized = XML_TRUE; - type->nDefaultAtts += 1; - return 1; -} - -static int -setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - const XML_Char *name; - for (name = elementType->name; *name; name++) { - if (*name == XML_T(ASCII_COLON)) { - PREFIX *prefix; - const XML_Char *s; - for (s = elementType->name; s != name; s++) { - if (!poolAppendChar(&dtd->pool, *s)) - return 0; - } - if (!poolAppendChar(&dtd->pool, XML_T('\0'))) - return 0; - prefix = (PREFIX *)lookup(parser, &dtd->prefixes, poolStart(&dtd->pool), - sizeof(PREFIX)); - if (!prefix) - return 0; - if (prefix->name == poolStart(&dtd->pool)) - poolFinish(&dtd->pool); - else - poolDiscard(&dtd->pool); - elementType->prefix = prefix; - - } - } - return 1; -} - -static ATTRIBUTE_ID * -getAttributeId(XML_Parser parser, const ENCODING *enc, - const char *start, const char *end) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - ATTRIBUTE_ID *id; - const XML_Char *name; - if (!poolAppendChar(&dtd->pool, XML_T('\0'))) - return NULL; - name = poolStoreString(&dtd->pool, enc, start, end); - if (!name) - return NULL; - /* skip quotation mark - its storage will be re-used (like in name[-1]) */ - ++name; - id = (ATTRIBUTE_ID *)lookup(parser, &dtd->attributeIds, name, sizeof(ATTRIBUTE_ID)); - if (!id) - return NULL; - if (id->name != name) - poolDiscard(&dtd->pool); - else { - poolFinish(&dtd->pool); - if (!ns) - ; - else if (name[0] == XML_T(ASCII_x) - && name[1] == XML_T(ASCII_m) - && name[2] == XML_T(ASCII_l) - && name[3] == XML_T(ASCII_n) - && name[4] == XML_T(ASCII_s) - && (name[5] == XML_T('\0') || name[5] == XML_T(ASCII_COLON))) { - if (name[5] == XML_T('\0')) - id->prefix = &dtd->defaultPrefix; - else - id->prefix = (PREFIX *)lookup(parser, &dtd->prefixes, name + 6, sizeof(PREFIX)); - id->xmlns = XML_TRUE; - } - else { - int i; - for (i = 0; name[i]; i++) { - /* attributes without prefix are *not* in the default namespace */ - if (name[i] == XML_T(ASCII_COLON)) { - int j; - for (j = 0; j < i; j++) { - if (!poolAppendChar(&dtd->pool, name[j])) - return NULL; - } - if (!poolAppendChar(&dtd->pool, XML_T('\0'))) - return NULL; - id->prefix = (PREFIX *)lookup(parser, &dtd->prefixes, poolStart(&dtd->pool), - sizeof(PREFIX)); - if (id->prefix->name == poolStart(&dtd->pool)) - poolFinish(&dtd->pool); - else - poolDiscard(&dtd->pool); - break; - } - } - } - } - return id; -} - -#define CONTEXT_SEP XML_T(ASCII_FF) - -static const XML_Char * -getContext(XML_Parser parser) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - HASH_TABLE_ITER iter; - XML_Bool needSep = XML_FALSE; - - if (dtd->defaultPrefix.binding) { - int i; - int len; - if (!poolAppendChar(&tempPool, XML_T(ASCII_EQUALS))) - return NULL; - len = dtd->defaultPrefix.binding->uriLen; - if (namespaceSeparator) - len--; - for (i = 0; i < len; i++) - if (!poolAppendChar(&tempPool, dtd->defaultPrefix.binding->uri[i])) - return NULL; - needSep = XML_TRUE; - } - - hashTableIterInit(&iter, &(dtd->prefixes)); - for (;;) { - int i; - int len; - const XML_Char *s; - PREFIX *prefix = (PREFIX *)hashTableIterNext(&iter); - if (!prefix) - break; - if (!prefix->binding) - continue; - if (needSep && !poolAppendChar(&tempPool, CONTEXT_SEP)) - return NULL; - for (s = prefix->name; *s; s++) - if (!poolAppendChar(&tempPool, *s)) - return NULL; - if (!poolAppendChar(&tempPool, XML_T(ASCII_EQUALS))) - return NULL; - len = prefix->binding->uriLen; - if (namespaceSeparator) - len--; - for (i = 0; i < len; i++) - if (!poolAppendChar(&tempPool, prefix->binding->uri[i])) - return NULL; - needSep = XML_TRUE; - } - - - hashTableIterInit(&iter, &(dtd->generalEntities)); - for (;;) { - const XML_Char *s; - ENTITY *e = (ENTITY *)hashTableIterNext(&iter); - if (!e) - break; - if (!e->open) - continue; - if (needSep && !poolAppendChar(&tempPool, CONTEXT_SEP)) - return NULL; - for (s = e->name; *s; s++) - if (!poolAppendChar(&tempPool, *s)) - return 0; - needSep = XML_TRUE; - } - - if (!poolAppendChar(&tempPool, XML_T('\0'))) - return NULL; - return tempPool.start; -} - -static XML_Bool -setContext(XML_Parser parser, const XML_Char *context) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - const XML_Char *s = context; - - while (*context != XML_T('\0')) { - if (*s == CONTEXT_SEP || *s == XML_T('\0')) { - ENTITY *e; - if (!poolAppendChar(&tempPool, XML_T('\0'))) - return XML_FALSE; - e = (ENTITY *)lookup(parser, &dtd->generalEntities, poolStart(&tempPool), 0); - if (e) - e->open = XML_TRUE; - if (*s != XML_T('\0')) - s++; - context = s; - poolDiscard(&tempPool); - } - else if (*s == XML_T(ASCII_EQUALS)) { - PREFIX *prefix; - if (poolLength(&tempPool) == 0) - prefix = &dtd->defaultPrefix; - else { - if (!poolAppendChar(&tempPool, XML_T('\0'))) - return XML_FALSE; - prefix = (PREFIX *)lookup(parser, &dtd->prefixes, poolStart(&tempPool), - sizeof(PREFIX)); - if (!prefix) - return XML_FALSE; - if (prefix->name == poolStart(&tempPool)) { - prefix->name = poolCopyString(&dtd->pool, prefix->name); - if (!prefix->name) - return XML_FALSE; - } - poolDiscard(&tempPool); - } - for (context = s + 1; - *context != CONTEXT_SEP && *context != XML_T('\0'); - context++) - if (!poolAppendChar(&tempPool, *context)) - return XML_FALSE; - if (!poolAppendChar(&tempPool, XML_T('\0'))) - return XML_FALSE; - if (addBinding(parser, prefix, NULL, poolStart(&tempPool), - &inheritedBindings) != XML_ERROR_NONE) - return XML_FALSE; - poolDiscard(&tempPool); - if (*context != XML_T('\0')) - ++context; - s = context; - } - else { - if (!poolAppendChar(&tempPool, *s)) - return XML_FALSE; - s++; - } - } - return XML_TRUE; -} - -static void FASTCALL -normalizePublicId(XML_Char *publicId) -{ - XML_Char *p = publicId; - XML_Char *s; - for (s = publicId; *s; s++) { - switch (*s) { - case 0x20: - case 0xD: - case 0xA: - if (p != publicId && p[-1] != 0x20) - *p++ = 0x20; - break; - default: - *p++ = *s; - } - } - if (p != publicId && p[-1] == 0x20) - --p; - *p = XML_T('\0'); -} - -static DTD * -dtdCreate(const XML_Memory_Handling_Suite *ms) -{ - DTD *p = (DTD *)ms->malloc_fcn(sizeof(DTD)); - if (p == NULL) - return p; - poolInit(&(p->pool), ms); - poolInit(&(p->entityValuePool), ms); - hashTableInit(&(p->generalEntities), ms); - hashTableInit(&(p->elementTypes), ms); - hashTableInit(&(p->attributeIds), ms); - hashTableInit(&(p->prefixes), ms); -#ifdef XML_DTD - p->paramEntityRead = XML_FALSE; - hashTableInit(&(p->paramEntities), ms); -#endif /* XML_DTD */ - p->defaultPrefix.name = NULL; - p->defaultPrefix.binding = NULL; - - p->in_eldecl = XML_FALSE; - p->scaffIndex = NULL; - p->scaffold = NULL; - p->scaffLevel = 0; - p->scaffSize = 0; - p->scaffCount = 0; - p->contentStringLen = 0; - - p->keepProcessing = XML_TRUE; - p->hasParamEntityRefs = XML_FALSE; - p->standalone = XML_FALSE; - return p; -} - -static void -dtdReset(DTD *p, const XML_Memory_Handling_Suite *ms) -{ - HASH_TABLE_ITER iter; - hashTableIterInit(&iter, &(p->elementTypes)); - for (;;) { - ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter); - if (!e) - break; - if (e->allocDefaultAtts != 0) - ms->free_fcn(e->defaultAtts); - } - hashTableClear(&(p->generalEntities)); -#ifdef XML_DTD - p->paramEntityRead = XML_FALSE; - hashTableClear(&(p->paramEntities)); -#endif /* XML_DTD */ - hashTableClear(&(p->elementTypes)); - hashTableClear(&(p->attributeIds)); - hashTableClear(&(p->prefixes)); - poolClear(&(p->pool)); - poolClear(&(p->entityValuePool)); - p->defaultPrefix.name = NULL; - p->defaultPrefix.binding = NULL; - - p->in_eldecl = XML_FALSE; - - ms->free_fcn(p->scaffIndex); - p->scaffIndex = NULL; - ms->free_fcn(p->scaffold); - p->scaffold = NULL; - - p->scaffLevel = 0; - p->scaffSize = 0; - p->scaffCount = 0; - p->contentStringLen = 0; - - p->keepProcessing = XML_TRUE; - p->hasParamEntityRefs = XML_FALSE; - p->standalone = XML_FALSE; -} - -static void -dtdDestroy(DTD *p, XML_Bool isDocEntity, const XML_Memory_Handling_Suite *ms) -{ - HASH_TABLE_ITER iter; - hashTableIterInit(&iter, &(p->elementTypes)); - for (;;) { - ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter); - if (!e) - break; - if (e->allocDefaultAtts != 0) - ms->free_fcn(e->defaultAtts); - } - hashTableDestroy(&(p->generalEntities)); -#ifdef XML_DTD - hashTableDestroy(&(p->paramEntities)); -#endif /* XML_DTD */ - hashTableDestroy(&(p->elementTypes)); - hashTableDestroy(&(p->attributeIds)); - hashTableDestroy(&(p->prefixes)); - poolDestroy(&(p->pool)); - poolDestroy(&(p->entityValuePool)); - if (isDocEntity) { - ms->free_fcn(p->scaffIndex); - ms->free_fcn(p->scaffold); - } - ms->free_fcn(p); -} - -/* Do a deep copy of the DTD. Return 0 for out of memory, non-zero otherwise. - The new DTD has already been initialized. -*/ -static int -dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms) -{ - HASH_TABLE_ITER iter; - - /* Copy the prefix table. */ - - hashTableIterInit(&iter, &(oldDtd->prefixes)); - for (;;) { - const XML_Char *name; - const PREFIX *oldP = (PREFIX *)hashTableIterNext(&iter); - if (!oldP) - break; - name = poolCopyString(&(newDtd->pool), oldP->name); - if (!name) - return 0; - if (!lookup(oldParser, &(newDtd->prefixes), name, sizeof(PREFIX))) - return 0; - } - - hashTableIterInit(&iter, &(oldDtd->attributeIds)); - - /* Copy the attribute id table. */ - - for (;;) { - ATTRIBUTE_ID *newA; - const XML_Char *name; - const ATTRIBUTE_ID *oldA = (ATTRIBUTE_ID *)hashTableIterNext(&iter); - - if (!oldA) - break; - /* Remember to allocate the scratch byte before the name. */ - if (!poolAppendChar(&(newDtd->pool), XML_T('\0'))) - return 0; - name = poolCopyString(&(newDtd->pool), oldA->name); - if (!name) - return 0; - ++name; - newA = (ATTRIBUTE_ID *)lookup(oldParser, &(newDtd->attributeIds), name, - sizeof(ATTRIBUTE_ID)); - if (!newA) - return 0; - newA->maybeTokenized = oldA->maybeTokenized; - if (oldA->prefix) { - newA->xmlns = oldA->xmlns; - if (oldA->prefix == &oldDtd->defaultPrefix) - newA->prefix = &newDtd->defaultPrefix; - else - newA->prefix = (PREFIX *)lookup(oldParser, &(newDtd->prefixes), - oldA->prefix->name, 0); - } - } - - /* Copy the element type table. */ - - hashTableIterInit(&iter, &(oldDtd->elementTypes)); - - for (;;) { - int i; - ELEMENT_TYPE *newE; - const XML_Char *name; - const ELEMENT_TYPE *oldE = (ELEMENT_TYPE *)hashTableIterNext(&iter); - if (!oldE) - break; - name = poolCopyString(&(newDtd->pool), oldE->name); - if (!name) - return 0; - newE = (ELEMENT_TYPE *)lookup(oldParser, &(newDtd->elementTypes), name, - sizeof(ELEMENT_TYPE)); - if (!newE) - return 0; - if (oldE->nDefaultAtts) { - newE->defaultAtts = (DEFAULT_ATTRIBUTE *) - ms->malloc_fcn(oldE->nDefaultAtts * sizeof(DEFAULT_ATTRIBUTE)); - if (!newE->defaultAtts) { - ms->free_fcn(newE); - return 0; - } - } - if (oldE->idAtt) - newE->idAtt = (ATTRIBUTE_ID *) - lookup(oldParser, &(newDtd->attributeIds), oldE->idAtt->name, 0); - newE->allocDefaultAtts = newE->nDefaultAtts = oldE->nDefaultAtts; - if (oldE->prefix) - newE->prefix = (PREFIX *)lookup(oldParser, &(newDtd->prefixes), - oldE->prefix->name, 0); - for (i = 0; i < newE->nDefaultAtts; i++) { - newE->defaultAtts[i].id = (ATTRIBUTE_ID *) - lookup(oldParser, &(newDtd->attributeIds), oldE->defaultAtts[i].id->name, 0); - newE->defaultAtts[i].isCdata = oldE->defaultAtts[i].isCdata; - if (oldE->defaultAtts[i].value) { - newE->defaultAtts[i].value - = poolCopyString(&(newDtd->pool), oldE->defaultAtts[i].value); - if (!newE->defaultAtts[i].value) - return 0; - } - else - newE->defaultAtts[i].value = NULL; - } - } - - /* Copy the entity tables. */ - if (!copyEntityTable(oldParser, - &(newDtd->generalEntities), - &(newDtd->pool), - &(oldDtd->generalEntities))) - return 0; - -#ifdef XML_DTD - if (!copyEntityTable(oldParser, - &(newDtd->paramEntities), - &(newDtd->pool), - &(oldDtd->paramEntities))) - return 0; - newDtd->paramEntityRead = oldDtd->paramEntityRead; -#endif /* XML_DTD */ - - newDtd->keepProcessing = oldDtd->keepProcessing; - newDtd->hasParamEntityRefs = oldDtd->hasParamEntityRefs; - newDtd->standalone = oldDtd->standalone; - - /* Don't want deep copying for scaffolding */ - newDtd->in_eldecl = oldDtd->in_eldecl; - newDtd->scaffold = oldDtd->scaffold; - newDtd->contentStringLen = oldDtd->contentStringLen; - newDtd->scaffSize = oldDtd->scaffSize; - newDtd->scaffLevel = oldDtd->scaffLevel; - newDtd->scaffIndex = oldDtd->scaffIndex; - - return 1; -} /* End dtdCopy */ - -static int -copyEntityTable(XML_Parser oldParser, - HASH_TABLE *newTable, - STRING_POOL *newPool, - const HASH_TABLE *oldTable) -{ - HASH_TABLE_ITER iter; - const XML_Char *cachedOldBase = NULL; - const XML_Char *cachedNewBase = NULL; - - hashTableIterInit(&iter, oldTable); - - for (;;) { - ENTITY *newE; - const XML_Char *name; - const ENTITY *oldE = (ENTITY *)hashTableIterNext(&iter); - if (!oldE) - break; - name = poolCopyString(newPool, oldE->name); - if (!name) - return 0; - newE = (ENTITY *)lookup(oldParser, newTable, name, sizeof(ENTITY)); - if (!newE) - return 0; - if (oldE->systemId) { - const XML_Char *tem = poolCopyString(newPool, oldE->systemId); - if (!tem) - return 0; - newE->systemId = tem; - if (oldE->base) { - if (oldE->base == cachedOldBase) - newE->base = cachedNewBase; - else { - cachedOldBase = oldE->base; - tem = poolCopyString(newPool, cachedOldBase); - if (!tem) - return 0; - cachedNewBase = newE->base = tem; - } - } - if (oldE->publicId) { - tem = poolCopyString(newPool, oldE->publicId); - if (!tem) - return 0; - newE->publicId = tem; - } - } - else { - const XML_Char *tem = poolCopyStringN(newPool, oldE->textPtr, - oldE->textLen); - if (!tem) - return 0; - newE->textPtr = tem; - newE->textLen = oldE->textLen; - } - if (oldE->notation) { - const XML_Char *tem = poolCopyString(newPool, oldE->notation); - if (!tem) - return 0; - newE->notation = tem; - } - newE->is_param = oldE->is_param; - newE->is_internal = oldE->is_internal; - } - return 1; -} - -#define INIT_POWER 6 - -static XML_Bool FASTCALL -keyeq(KEY s1, KEY s2) -{ - for (; *s1 == *s2; s1++, s2++) - if (*s1 == 0) - return XML_TRUE; - return XML_FALSE; -} - -static unsigned long FASTCALL -hash(XML_Parser parser, KEY s) -{ - unsigned long h = hash_secret_salt; - while (*s) - h = CHAR_HASH(h, *s++); - return h; -} - -static NAMED * -lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize) -{ - size_t i; - if (table->size == 0) { - size_t tsize; - if (!createSize) - return NULL; - table->power = INIT_POWER; - /* table->size is a power of 2 */ - table->size = (size_t)1 << INIT_POWER; - tsize = table->size * sizeof(NAMED *); - table->v = (NAMED **)table->mem->malloc_fcn(tsize); - if (!table->v) { - table->size = 0; - return NULL; - } - memset(table->v, 0, tsize); - i = hash(parser, name) & ((unsigned long)table->size - 1); - } - else { - unsigned long h = hash(parser, name); - unsigned long mask = (unsigned long)table->size - 1; - unsigned char step = 0; - i = h & mask; - while (table->v[i]) { - if (keyeq(name, table->v[i]->name)) - return table->v[i]; - if (!step) - step = PROBE_STEP(h, mask, table->power); - i < step ? (i += table->size - step) : (i -= step); - } - if (!createSize) - return NULL; - - /* check for overflow (table is half full) */ - if (table->used >> (table->power - 1)) { - unsigned char newPower = table->power + 1; - size_t newSize = (size_t)1 << newPower; - unsigned long newMask = (unsigned long)newSize - 1; - size_t tsize = newSize * sizeof(NAMED *); - NAMED **newV = (NAMED **)table->mem->malloc_fcn(tsize); - if (!newV) - return NULL; - memset(newV, 0, tsize); - for (i = 0; i < table->size; i++) - if (table->v[i]) { - unsigned long newHash = hash(parser, table->v[i]->name); - size_t j = newHash & newMask; - step = 0; - while (newV[j]) { - if (!step) - step = PROBE_STEP(newHash, newMask, newPower); - j < step ? (j += newSize - step) : (j -= step); - } - newV[j] = table->v[i]; - } - table->mem->free_fcn(table->v); - table->v = newV; - table->power = newPower; - table->size = newSize; - i = h & newMask; - step = 0; - while (table->v[i]) { - if (!step) - step = PROBE_STEP(h, newMask, newPower); - i < step ? (i += newSize - step) : (i -= step); - } - } - } - table->v[i] = (NAMED *)table->mem->malloc_fcn(createSize); - if (!table->v[i]) - return NULL; - memset(table->v[i], 0, createSize); - table->v[i]->name = name; - (table->used)++; - return table->v[i]; -} - -static void FASTCALL -hashTableClear(HASH_TABLE *table) -{ - size_t i; - for (i = 0; i < table->size; i++) { - table->mem->free_fcn(table->v[i]); - table->v[i] = NULL; - } - table->used = 0; -} - -static void FASTCALL -hashTableDestroy(HASH_TABLE *table) -{ - size_t i; - for (i = 0; i < table->size; i++) - table->mem->free_fcn(table->v[i]); - table->mem->free_fcn(table->v); -} - -static void FASTCALL -hashTableInit(HASH_TABLE *p, const XML_Memory_Handling_Suite *ms) -{ - p->power = 0; - p->size = 0; - p->used = 0; - p->v = NULL; - p->mem = ms; -} - -static void FASTCALL -hashTableIterInit(HASH_TABLE_ITER *iter, const HASH_TABLE *table) -{ - iter->p = table->v; - iter->end = iter->p + table->size; -} - -static NAMED * FASTCALL -hashTableIterNext(HASH_TABLE_ITER *iter) -{ - while (iter->p != iter->end) { - NAMED *tem = *(iter->p)++; - if (tem) - return tem; - } - return NULL; -} - -static void FASTCALL -poolInit(STRING_POOL *pool, const XML_Memory_Handling_Suite *ms) -{ - pool->blocks = NULL; - pool->freeBlocks = NULL; - pool->start = NULL; - pool->ptr = NULL; - pool->end = NULL; - pool->mem = ms; -} - -static void FASTCALL -poolClear(STRING_POOL *pool) -{ - if (!pool->freeBlocks) - pool->freeBlocks = pool->blocks; - else { - BLOCK *p = pool->blocks; - while (p) { - BLOCK *tem = p->next; - p->next = pool->freeBlocks; - pool->freeBlocks = p; - p = tem; - } - } - pool->blocks = NULL; - pool->start = NULL; - pool->ptr = NULL; - pool->end = NULL; -} - -static void FASTCALL -poolDestroy(STRING_POOL *pool) -{ - BLOCK *p = pool->blocks; - while (p) { - BLOCK *tem = p->next; - pool->mem->free_fcn(p); - p = tem; - } - p = pool->freeBlocks; - while (p) { - BLOCK *tem = p->next; - pool->mem->free_fcn(p); - p = tem; - } -} - -static XML_Char * -poolAppend(STRING_POOL *pool, const ENCODING *enc, - const char *ptr, const char *end) -{ - if (!pool->ptr && !poolGrow(pool)) - return NULL; - for (;;) { - XmlConvert(enc, &ptr, end, (ICHAR **)&(pool->ptr), (ICHAR *)pool->end); - if (ptr == end) - break; - if (!poolGrow(pool)) - return NULL; - } - return pool->start; -} - -static const XML_Char * FASTCALL -poolCopyString(STRING_POOL *pool, const XML_Char *s) -{ - do { - if (!poolAppendChar(pool, *s)) - return NULL; - } while (*s++); - s = pool->start; - poolFinish(pool); - return s; -} - -static const XML_Char * -poolCopyStringN(STRING_POOL *pool, const XML_Char *s, int n) -{ - if (!pool->ptr && !poolGrow(pool)) - return NULL; - for (; n > 0; --n, s++) { - if (!poolAppendChar(pool, *s)) - return NULL; - } - s = pool->start; - poolFinish(pool); - return s; -} - -static const XML_Char * FASTCALL -poolAppendString(STRING_POOL *pool, const XML_Char *s) -{ - while (*s) { - if (!poolAppendChar(pool, *s)) - return NULL; - s++; - } - return pool->start; -} - -static XML_Char * -poolStoreString(STRING_POOL *pool, const ENCODING *enc, - const char *ptr, const char *end) -{ - if (!poolAppend(pool, enc, ptr, end)) - return NULL; - if (pool->ptr == pool->end && !poolGrow(pool)) - return NULL; - *(pool->ptr)++ = 0; - return pool->start; -} - -static XML_Bool FASTCALL -poolGrow(STRING_POOL *pool) -{ - if (pool->freeBlocks) { - if (pool->start == 0) { - pool->blocks = pool->freeBlocks; - pool->freeBlocks = pool->freeBlocks->next; - pool->blocks->next = NULL; - pool->start = pool->blocks->s; - pool->end = pool->start + pool->blocks->size; - pool->ptr = pool->start; - return XML_TRUE; - } - if (pool->end - pool->start < pool->freeBlocks->size) { - BLOCK *tem = pool->freeBlocks->next; - pool->freeBlocks->next = pool->blocks; - pool->blocks = pool->freeBlocks; - pool->freeBlocks = tem; - memcpy(pool->blocks->s, pool->start, - (pool->end - pool->start) * sizeof(XML_Char)); - pool->ptr = pool->blocks->s + (pool->ptr - pool->start); - pool->start = pool->blocks->s; - pool->end = pool->start + pool->blocks->size; - return XML_TRUE; - } - } - if (pool->blocks && pool->start == pool->blocks->s) { - int blockSize = (int)(pool->end - pool->start)*2; - BLOCK *temp = (BLOCK *) - pool->mem->realloc_fcn(pool->blocks, - (offsetof(BLOCK, s) - + blockSize * sizeof(XML_Char))); - if (temp == NULL) - return XML_FALSE; - pool->blocks = temp; - pool->blocks->size = blockSize; - pool->ptr = pool->blocks->s + (pool->ptr - pool->start); - pool->start = pool->blocks->s; - pool->end = pool->start + blockSize; - } - else { - BLOCK *tem; - int blockSize = (int)(pool->end - pool->start); - if (blockSize < INIT_BLOCK_SIZE) - blockSize = INIT_BLOCK_SIZE; - else - blockSize *= 2; - tem = (BLOCK *)pool->mem->malloc_fcn(offsetof(BLOCK, s) - + blockSize * sizeof(XML_Char)); - if (!tem) - return XML_FALSE; - tem->size = blockSize; - tem->next = pool->blocks; - pool->blocks = tem; - if (pool->ptr != pool->start) - memcpy(tem->s, pool->start, - (pool->ptr - pool->start) * sizeof(XML_Char)); - pool->ptr = tem->s + (pool->ptr - pool->start); - pool->start = tem->s; - pool->end = tem->s + blockSize; - } - return XML_TRUE; -} - -static int FASTCALL -nextScaffoldPart(XML_Parser parser) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - CONTENT_SCAFFOLD * me; - int next; - - if (!dtd->scaffIndex) { - dtd->scaffIndex = (int *)MALLOC(groupSize * sizeof(int)); - if (!dtd->scaffIndex) - return -1; - dtd->scaffIndex[0] = 0; - } - - if (dtd->scaffCount >= dtd->scaffSize) { - CONTENT_SCAFFOLD *temp; - if (dtd->scaffold) { - temp = (CONTENT_SCAFFOLD *) - REALLOC(dtd->scaffold, dtd->scaffSize * 2 * sizeof(CONTENT_SCAFFOLD)); - if (temp == NULL) - return -1; - dtd->scaffSize *= 2; - } - else { - temp = (CONTENT_SCAFFOLD *)MALLOC(INIT_SCAFFOLD_ELEMENTS - * sizeof(CONTENT_SCAFFOLD)); - if (temp == NULL) - return -1; - dtd->scaffSize = INIT_SCAFFOLD_ELEMENTS; - } - dtd->scaffold = temp; - } - next = dtd->scaffCount++; - me = &dtd->scaffold[next]; - if (dtd->scaffLevel) { - CONTENT_SCAFFOLD *parent = &dtd->scaffold[dtd->scaffIndex[dtd->scaffLevel-1]]; - if (parent->lastchild) { - dtd->scaffold[parent->lastchild].nextsib = next; - } - if (!parent->childcnt) - parent->firstchild = next; - parent->lastchild = next; - parent->childcnt++; - } - me->firstchild = me->lastchild = me->childcnt = me->nextsib = 0; - return next; -} - -static void -build_node(XML_Parser parser, - int src_node, - XML_Content *dest, - XML_Content **contpos, - XML_Char **strpos) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - dest->type = dtd->scaffold[src_node].type; - dest->quant = dtd->scaffold[src_node].quant; - if (dest->type == XML_CTYPE_NAME) { - const XML_Char *src; - dest->name = *strpos; - src = dtd->scaffold[src_node].name; - for (;;) { - *(*strpos)++ = *src; - if (!*src) - break; - src++; - } - dest->numchildren = 0; - dest->children = NULL; - } - else { - unsigned int i; - int cn; - dest->numchildren = dtd->scaffold[src_node].childcnt; - dest->children = *contpos; - *contpos += dest->numchildren; - for (i = 0, cn = dtd->scaffold[src_node].firstchild; - i < dest->numchildren; - i++, cn = dtd->scaffold[cn].nextsib) { - build_node(parser, cn, &(dest->children[i]), contpos, strpos); - } - dest->name = NULL; - } -} - -static XML_Content * -build_model (XML_Parser parser) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - XML_Content *ret; - XML_Content *cpos; - XML_Char * str; - int allocsize = (dtd->scaffCount * sizeof(XML_Content) - + (dtd->contentStringLen * sizeof(XML_Char))); - - ret = (XML_Content *)MALLOC(allocsize); - if (!ret) - return NULL; - - str = (XML_Char *) (&ret[dtd->scaffCount]); - cpos = &ret[1]; - - build_node(parser, 0, ret, &cpos, &str); - return ret; -} - -static ELEMENT_TYPE * -getElementType(XML_Parser parser, - const ENCODING *enc, - const char *ptr, - const char *end) -{ - DTD * const dtd = _dtd; /* save one level of indirection */ - const XML_Char *name = poolStoreString(&dtd->pool, enc, ptr, end); - ELEMENT_TYPE *ret; - - if (!name) - return NULL; - ret = (ELEMENT_TYPE *) lookup(parser, &dtd->elementTypes, name, sizeof(ELEMENT_TYPE)); - if (!ret) - return NULL; - if (ret->name != name) - poolDiscard(&dtd->pool); - else { - poolFinish(&dtd->pool); - if (!setElementTypePrefix(parser, ret)) - return NULL; - } - return ret; -} diff --git a/source/externals/expat/src/xmlrole.cc b/source/externals/expat/src/xmlrole.c similarity index 55% rename from source/externals/expat/src/xmlrole.cc rename to source/externals/expat/src/xmlrole.c index c5a5489435..3f0f5c150c 100644 --- a/source/externals/expat/src/xmlrole.cc +++ b/source/externals/expat/src/xmlrole.c @@ -1,26 +1,50 @@ -/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2002 Greg Stein + Copyright (c) 2002-2006 Karl Waclawek + Copyright (c) 2002-2003 Fred L. Drake, Jr. + Copyright (c) 2005-2009 Steven Solie + Copyright (c) 2016-2021 Sebastian Pipping + Copyright (c) 2017 Rhodri James + Copyright (c) 2019 David Loffredo + Copyright (c) 2021 Dong-hee Na + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#if defined(__clang__) || defined(__GNUC__) -#pragma GCC diagnostic ignored "-Wunused-parameter" -#endif +#include #include -#ifdef COMPILED_FROM_DSP -#include "winconfig.h" -#elif defined(MACOS_CLASSIC) -#include "macconfig.h" -#elif defined(__amigaos__) -#include "amigaconfig.h" -#elif defined(__WATCOMC__) -#include "watcomconfig.h" -#else -#ifdef HAVE_EXPAT_CONFIG_H -#include +#ifdef _WIN32 +# include "winconfig.h" #endif -#endif /* ndef COMPILED_FROM_DSP */ #include "expat_external.h" #include "internal.h" @@ -34,107 +58,88 @@ */ -static const char KW_ANY[] = { - ASCII_A, ASCII_N, ASCII_Y, '\0' }; -static const char KW_ATTLIST[] = { - ASCII_A, ASCII_T, ASCII_T, ASCII_L, ASCII_I, ASCII_S, ASCII_T, '\0' }; -static const char KW_CDATA[] = { - ASCII_C, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0' }; -static const char KW_DOCTYPE[] = { - ASCII_D, ASCII_O, ASCII_C, ASCII_T, ASCII_Y, ASCII_P, ASCII_E, '\0' }; -static const char KW_ELEMENT[] = { - ASCII_E, ASCII_L, ASCII_E, ASCII_M, ASCII_E, ASCII_N, ASCII_T, '\0' }; -static const char KW_EMPTY[] = { - ASCII_E, ASCII_M, ASCII_P, ASCII_T, ASCII_Y, '\0' }; -static const char KW_ENTITIES[] = { - ASCII_E, ASCII_N, ASCII_T, ASCII_I, ASCII_T, ASCII_I, ASCII_E, ASCII_S, - '\0' }; -static const char KW_ENTITY[] = { - ASCII_E, ASCII_N, ASCII_T, ASCII_I, ASCII_T, ASCII_Y, '\0' }; -static const char KW_FIXED[] = { - ASCII_F, ASCII_I, ASCII_X, ASCII_E, ASCII_D, '\0' }; -static const char KW_ID[] = { - ASCII_I, ASCII_D, '\0' }; -static const char KW_IDREF[] = { - ASCII_I, ASCII_D, ASCII_R, ASCII_E, ASCII_F, '\0' }; -static const char KW_IDREFS[] = { - ASCII_I, ASCII_D, ASCII_R, ASCII_E, ASCII_F, ASCII_S, '\0' }; +static const char KW_ANY[] = {ASCII_A, ASCII_N, ASCII_Y, '\0'}; +static const char KW_ATTLIST[] + = {ASCII_A, ASCII_T, ASCII_T, ASCII_L, ASCII_I, ASCII_S, ASCII_T, '\0'}; +static const char KW_CDATA[] + = {ASCII_C, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0'}; +static const char KW_DOCTYPE[] + = {ASCII_D, ASCII_O, ASCII_C, ASCII_T, ASCII_Y, ASCII_P, ASCII_E, '\0'}; +static const char KW_ELEMENT[] + = {ASCII_E, ASCII_L, ASCII_E, ASCII_M, ASCII_E, ASCII_N, ASCII_T, '\0'}; +static const char KW_EMPTY[] + = {ASCII_E, ASCII_M, ASCII_P, ASCII_T, ASCII_Y, '\0'}; +static const char KW_ENTITIES[] = {ASCII_E, ASCII_N, ASCII_T, ASCII_I, ASCII_T, + ASCII_I, ASCII_E, ASCII_S, '\0'}; +static const char KW_ENTITY[] + = {ASCII_E, ASCII_N, ASCII_T, ASCII_I, ASCII_T, ASCII_Y, '\0'}; +static const char KW_FIXED[] + = {ASCII_F, ASCII_I, ASCII_X, ASCII_E, ASCII_D, '\0'}; +static const char KW_ID[] = {ASCII_I, ASCII_D, '\0'}; +static const char KW_IDREF[] + = {ASCII_I, ASCII_D, ASCII_R, ASCII_E, ASCII_F, '\0'}; +static const char KW_IDREFS[] + = {ASCII_I, ASCII_D, ASCII_R, ASCII_E, ASCII_F, ASCII_S, '\0'}; #ifdef XML_DTD -static const char KW_IGNORE[] = { - ASCII_I, ASCII_G, ASCII_N, ASCII_O, ASCII_R, ASCII_E, '\0' }; +static const char KW_IGNORE[] + = {ASCII_I, ASCII_G, ASCII_N, ASCII_O, ASCII_R, ASCII_E, '\0'}; #endif -static const char KW_IMPLIED[] = { - ASCII_I, ASCII_M, ASCII_P, ASCII_L, ASCII_I, ASCII_E, ASCII_D, '\0' }; +static const char KW_IMPLIED[] + = {ASCII_I, ASCII_M, ASCII_P, ASCII_L, ASCII_I, ASCII_E, ASCII_D, '\0'}; #ifdef XML_DTD -static const char KW_INCLUDE[] = { - ASCII_I, ASCII_N, ASCII_C, ASCII_L, ASCII_U, ASCII_D, ASCII_E, '\0' }; +static const char KW_INCLUDE[] + = {ASCII_I, ASCII_N, ASCII_C, ASCII_L, ASCII_U, ASCII_D, ASCII_E, '\0'}; #endif -static const char KW_NDATA[] = { - ASCII_N, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0' }; -static const char KW_NMTOKEN[] = { - ASCII_N, ASCII_M, ASCII_T, ASCII_O, ASCII_K, ASCII_E, ASCII_N, '\0' }; -static const char KW_NMTOKENS[] = { - ASCII_N, ASCII_M, ASCII_T, ASCII_O, ASCII_K, ASCII_E, ASCII_N, ASCII_S, - '\0' }; -static const char KW_NOTATION[] = - { ASCII_N, ASCII_O, ASCII_T, ASCII_A, ASCII_T, ASCII_I, ASCII_O, ASCII_N, - '\0' }; -static const char KW_PCDATA[] = { - ASCII_P, ASCII_C, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0' }; -static const char KW_PUBLIC[] = { - ASCII_P, ASCII_U, ASCII_B, ASCII_L, ASCII_I, ASCII_C, '\0' }; -static const char KW_REQUIRED[] = { - ASCII_R, ASCII_E, ASCII_Q, ASCII_U, ASCII_I, ASCII_R, ASCII_E, ASCII_D, - '\0' }; -static const char KW_SYSTEM[] = { - ASCII_S, ASCII_Y, ASCII_S, ASCII_T, ASCII_E, ASCII_M, '\0' }; +static const char KW_NDATA[] + = {ASCII_N, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0'}; +static const char KW_NMTOKEN[] + = {ASCII_N, ASCII_M, ASCII_T, ASCII_O, ASCII_K, ASCII_E, ASCII_N, '\0'}; +static const char KW_NMTOKENS[] = {ASCII_N, ASCII_M, ASCII_T, ASCII_O, ASCII_K, + ASCII_E, ASCII_N, ASCII_S, '\0'}; +static const char KW_NOTATION[] = {ASCII_N, ASCII_O, ASCII_T, ASCII_A, ASCII_T, + ASCII_I, ASCII_O, ASCII_N, '\0'}; +static const char KW_PCDATA[] + = {ASCII_P, ASCII_C, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0'}; +static const char KW_PUBLIC[] + = {ASCII_P, ASCII_U, ASCII_B, ASCII_L, ASCII_I, ASCII_C, '\0'}; +static const char KW_REQUIRED[] = {ASCII_R, ASCII_E, ASCII_Q, ASCII_U, ASCII_I, + ASCII_R, ASCII_E, ASCII_D, '\0'}; +static const char KW_SYSTEM[] + = {ASCII_S, ASCII_Y, ASCII_S, ASCII_T, ASCII_E, ASCII_M, '\0'}; #ifndef MIN_BYTES_PER_CHAR -#define MIN_BYTES_PER_CHAR(enc) ((enc)->minBytesPerChar) +# define MIN_BYTES_PER_CHAR(enc) ((enc)->minBytesPerChar) #endif #ifdef XML_DTD -#define setTopLevel(state) \ - ((state)->handler = ((state)->documentEntity \ - ? internalSubset \ - : externalSubset1)) +# define setTopLevel(state) \ + ((state)->handler \ + = ((state)->documentEntity ? internalSubset : externalSubset1)) #else /* not XML_DTD */ -#define setTopLevel(state) ((state)->handler = internalSubset) +# define setTopLevel(state) ((state)->handler = internalSubset) #endif /* not XML_DTD */ -typedef int PTRCALL PROLOG_HANDLER(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, +typedef int PTRCALL PROLOG_HANDLER(PROLOG_STATE *state, int tok, + const char *ptr, const char *end, const ENCODING *enc); -static PROLOG_HANDLER - prolog0, prolog1, prolog2, - doctype0, doctype1, doctype2, doctype3, doctype4, doctype5, - internalSubset, - entity0, entity1, entity2, entity3, entity4, entity5, entity6, - entity7, entity8, entity9, entity10, - notation0, notation1, notation2, notation3, notation4, - attlist0, attlist1, attlist2, attlist3, attlist4, attlist5, attlist6, - attlist7, attlist8, attlist9, - element0, element1, element2, element3, element4, element5, element6, - element7, +static PROLOG_HANDLER prolog0, prolog1, prolog2, doctype0, doctype1, doctype2, + doctype3, doctype4, doctype5, internalSubset, entity0, entity1, entity2, + entity3, entity4, entity5, entity6, entity7, entity8, entity9, entity10, + notation0, notation1, notation2, notation3, notation4, attlist0, attlist1, + attlist2, attlist3, attlist4, attlist5, attlist6, attlist7, attlist8, + attlist9, element0, element1, element2, element3, element4, element5, + element6, element7, #ifdef XML_DTD - externalSubset0, externalSubset1, - condSect0, condSect1, condSect2, + externalSubset0, externalSubset1, condSect0, condSect1, condSect2, #endif /* XML_DTD */ - declClose, - error; + declClose, error; static int FASTCALL common(PROLOG_STATE *state, int tok); static int PTRCALL -prolog0(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +prolog0(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { switch (tok) { case XML_TOK_PROLOG_S: state->handler = prolog1; @@ -151,10 +156,8 @@ prolog0(PROLOG_STATE *state, case XML_TOK_BOM: return XML_ROLE_NONE; case XML_TOK_DECL_OPEN: - if (!XmlNameMatchesAscii(enc, - ptr + 2 * MIN_BYTES_PER_CHAR(enc), - end, - KW_DOCTYPE)) + if (! XmlNameMatchesAscii(enc, ptr + 2 * MIN_BYTES_PER_CHAR(enc), end, + KW_DOCTYPE)) break; state->handler = doctype0; return XML_ROLE_DOCTYPE_NONE; @@ -166,12 +169,8 @@ prolog0(PROLOG_STATE *state, } static int PTRCALL -prolog1(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +prolog1(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; @@ -180,12 +179,17 @@ prolog1(PROLOG_STATE *state, case XML_TOK_COMMENT: return XML_ROLE_COMMENT; case XML_TOK_BOM: - return XML_ROLE_NONE; + /* This case can never arise. To reach this role function, the + * parse must have passed through prolog0 and therefore have had + * some form of input, even if only a space. At that point, a + * byte order mark is no longer a valid character (though + * technically it should be interpreted as a non-breaking space), + * so will be rejected by the tokenizing stages. + */ + return XML_ROLE_NONE; /* LCOV_EXCL_LINE */ case XML_TOK_DECL_OPEN: - if (!XmlNameMatchesAscii(enc, - ptr + 2 * MIN_BYTES_PER_CHAR(enc), - end, - KW_DOCTYPE)) + if (! XmlNameMatchesAscii(enc, ptr + 2 * MIN_BYTES_PER_CHAR(enc), end, + KW_DOCTYPE)) break; state->handler = doctype0; return XML_ROLE_DOCTYPE_NONE; @@ -197,12 +201,11 @@ prolog1(PROLOG_STATE *state, } static int PTRCALL -prolog2(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +prolog2(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; @@ -218,12 +221,11 @@ prolog2(PROLOG_STATE *state, } static int PTRCALL -doctype0(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +doctype0(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_DOCTYPE_NONE; @@ -236,12 +238,8 @@ doctype0(PROLOG_STATE *state, } static int PTRCALL -doctype1(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +doctype1(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_DOCTYPE_NONE; @@ -266,12 +264,11 @@ doctype1(PROLOG_STATE *state, } static int PTRCALL -doctype2(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +doctype2(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_DOCTYPE_NONE; @@ -283,12 +280,11 @@ doctype2(PROLOG_STATE *state, } static int PTRCALL -doctype3(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +doctype3(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_DOCTYPE_NONE; @@ -300,12 +296,11 @@ doctype3(PROLOG_STATE *state, } static int PTRCALL -doctype4(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +doctype4(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_DOCTYPE_NONE; @@ -320,12 +315,11 @@ doctype4(PROLOG_STATE *state, } static int PTRCALL -doctype5(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +doctype5(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_DOCTYPE_NONE; @@ -337,40 +331,28 @@ doctype5(PROLOG_STATE *state, } static int PTRCALL -internalSubset(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +internalSubset(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_DECL_OPEN: - if (XmlNameMatchesAscii(enc, - ptr + 2 * MIN_BYTES_PER_CHAR(enc), - end, + if (XmlNameMatchesAscii(enc, ptr + 2 * MIN_BYTES_PER_CHAR(enc), end, KW_ENTITY)) { state->handler = entity0; return XML_ROLE_ENTITY_NONE; } - if (XmlNameMatchesAscii(enc, - ptr + 2 * MIN_BYTES_PER_CHAR(enc), - end, + if (XmlNameMatchesAscii(enc, ptr + 2 * MIN_BYTES_PER_CHAR(enc), end, KW_ATTLIST)) { state->handler = attlist0; return XML_ROLE_ATTLIST_NONE; } - if (XmlNameMatchesAscii(enc, - ptr + 2 * MIN_BYTES_PER_CHAR(enc), - end, + if (XmlNameMatchesAscii(enc, ptr + 2 * MIN_BYTES_PER_CHAR(enc), end, KW_ELEMENT)) { state->handler = element0; return XML_ROLE_ELEMENT_NONE; } - if (XmlNameMatchesAscii(enc, - ptr + 2 * MIN_BYTES_PER_CHAR(enc), - end, + if (XmlNameMatchesAscii(enc, ptr + 2 * MIN_BYTES_PER_CHAR(enc), end, KW_NOTATION)) { state->handler = notation0; return XML_ROLE_NOTATION_NONE; @@ -394,12 +376,8 @@ internalSubset(PROLOG_STATE *state, #ifdef XML_DTD static int PTRCALL -externalSubset0(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +externalSubset0(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { state->handler = externalSubset1; if (tok == XML_TOK_XML_DECL) return XML_ROLE_TEXT_DECL; @@ -407,12 +385,8 @@ externalSubset0(PROLOG_STATE *state, } static int PTRCALL -externalSubset1(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +externalSubset1(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { switch (tok) { case XML_TOK_COND_SECT_OPEN: state->handler = condSect0; @@ -439,12 +413,11 @@ externalSubset1(PROLOG_STATE *state, #endif /* XML_DTD */ static int PTRCALL -entity0(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +entity0(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ENTITY_NONE; @@ -459,12 +432,11 @@ entity0(PROLOG_STATE *state, } static int PTRCALL -entity1(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +entity1(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ENTITY_NONE; @@ -476,12 +448,8 @@ entity1(PROLOG_STATE *state, } static int PTRCALL -entity2(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +entity2(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ENTITY_NONE; @@ -504,12 +472,11 @@ entity2(PROLOG_STATE *state, } static int PTRCALL -entity3(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +entity3(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ENTITY_NONE; @@ -521,12 +488,11 @@ entity3(PROLOG_STATE *state, } static int PTRCALL -entity4(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +entity4(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ENTITY_NONE; @@ -538,12 +504,8 @@ entity4(PROLOG_STATE *state, } static int PTRCALL -entity5(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +entity5(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ENTITY_NONE; @@ -561,12 +523,11 @@ entity5(PROLOG_STATE *state, } static int PTRCALL -entity6(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +entity6(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ENTITY_NONE; @@ -579,12 +540,8 @@ entity6(PROLOG_STATE *state, } static int PTRCALL -entity7(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +entity7(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ENTITY_NONE; @@ -607,12 +564,11 @@ entity7(PROLOG_STATE *state, } static int PTRCALL -entity8(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +entity8(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ENTITY_NONE; @@ -624,12 +580,11 @@ entity8(PROLOG_STATE *state, } static int PTRCALL -entity9(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +entity9(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ENTITY_NONE; @@ -641,12 +596,11 @@ entity9(PROLOG_STATE *state, } static int PTRCALL -entity10(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +entity10(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ENTITY_NONE; @@ -658,12 +612,11 @@ entity10(PROLOG_STATE *state, } static int PTRCALL -notation0(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +notation0(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NOTATION_NONE; @@ -675,12 +628,8 @@ notation0(PROLOG_STATE *state, } static int PTRCALL -notation1(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +notation1(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NOTATION_NONE; @@ -699,12 +648,11 @@ notation1(PROLOG_STATE *state, } static int PTRCALL -notation2(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +notation2(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NOTATION_NONE; @@ -716,12 +664,11 @@ notation2(PROLOG_STATE *state, } static int PTRCALL -notation3(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +notation3(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NOTATION_NONE; @@ -734,12 +681,11 @@ notation3(PROLOG_STATE *state, } static int PTRCALL -notation4(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +notation4(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NOTATION_NONE; @@ -755,12 +701,11 @@ notation4(PROLOG_STATE *state, } static int PTRCALL -attlist0(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +attlist0(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ATTLIST_NONE; @@ -773,12 +718,11 @@ attlist0(PROLOG_STATE *state, } static int PTRCALL -attlist1(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +attlist1(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ATTLIST_NONE; @@ -794,34 +738,23 @@ attlist1(PROLOG_STATE *state, } static int PTRCALL -attlist2(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +attlist2(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ATTLIST_NONE; - case XML_TOK_NAME: - { - static const char * const types[] = { - KW_CDATA, - KW_ID, - KW_IDREF, - KW_IDREFS, - KW_ENTITY, - KW_ENTITIES, - KW_NMTOKEN, - KW_NMTOKENS, - }; - int i; - for (i = 0; i < (int)(sizeof(types)/sizeof(types[0])); i++) - if (XmlNameMatchesAscii(enc, ptr, end, types[i])) { - state->handler = attlist8; - return XML_ROLE_ATTRIBUTE_TYPE_CDATA + i; - } - } + case XML_TOK_NAME: { + static const char *const types[] = { + KW_CDATA, KW_ID, KW_IDREF, KW_IDREFS, + KW_ENTITY, KW_ENTITIES, KW_NMTOKEN, KW_NMTOKENS, + }; + int i; + for (i = 0; i < (int)(sizeof(types) / sizeof(types[0])); i++) + if (XmlNameMatchesAscii(enc, ptr, end, types[i])) { + state->handler = attlist8; + return XML_ROLE_ATTRIBUTE_TYPE_CDATA + i; + } + } if (XmlNameMatchesAscii(enc, ptr, end, KW_NOTATION)) { state->handler = attlist5; return XML_ROLE_ATTLIST_NONE; @@ -835,12 +768,11 @@ attlist2(PROLOG_STATE *state, } static int PTRCALL -attlist3(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +attlist3(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ATTLIST_NONE; @@ -854,12 +786,11 @@ attlist3(PROLOG_STATE *state, } static int PTRCALL -attlist4(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +attlist4(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ATTLIST_NONE; @@ -874,12 +805,11 @@ attlist4(PROLOG_STATE *state, } static int PTRCALL -attlist5(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +attlist5(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ATTLIST_NONE; @@ -891,12 +821,11 @@ attlist5(PROLOG_STATE *state, } static int PTRCALL -attlist6(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +attlist6(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ATTLIST_NONE; @@ -908,12 +837,11 @@ attlist6(PROLOG_STATE *state, } static int PTRCALL -attlist7(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +attlist7(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ATTLIST_NONE; @@ -929,33 +857,23 @@ attlist7(PROLOG_STATE *state, /* default value */ static int PTRCALL -attlist8(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +attlist8(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ATTLIST_NONE; case XML_TOK_POUND_NAME: - if (XmlNameMatchesAscii(enc, - ptr + MIN_BYTES_PER_CHAR(enc), - end, + if (XmlNameMatchesAscii(enc, ptr + MIN_BYTES_PER_CHAR(enc), end, KW_IMPLIED)) { state->handler = attlist1; return XML_ROLE_IMPLIED_ATTRIBUTE_VALUE; } - if (XmlNameMatchesAscii(enc, - ptr + MIN_BYTES_PER_CHAR(enc), - end, + if (XmlNameMatchesAscii(enc, ptr + MIN_BYTES_PER_CHAR(enc), end, KW_REQUIRED)) { state->handler = attlist1; return XML_ROLE_REQUIRED_ATTRIBUTE_VALUE; } - if (XmlNameMatchesAscii(enc, - ptr + MIN_BYTES_PER_CHAR(enc), - end, + if (XmlNameMatchesAscii(enc, ptr + MIN_BYTES_PER_CHAR(enc), end, KW_FIXED)) { state->handler = attlist9; return XML_ROLE_ATTLIST_NONE; @@ -969,12 +887,11 @@ attlist8(PROLOG_STATE *state, } static int PTRCALL -attlist9(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +attlist9(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ATTLIST_NONE; @@ -986,12 +903,11 @@ attlist9(PROLOG_STATE *state, } static int PTRCALL -element0(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +element0(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ELEMENT_NONE; @@ -1004,12 +920,8 @@ element0(PROLOG_STATE *state, } static int PTRCALL -element1(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +element1(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ELEMENT_NONE; @@ -1034,19 +946,13 @@ element1(PROLOG_STATE *state, } static int PTRCALL -element2(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +element2(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ELEMENT_NONE; case XML_TOK_POUND_NAME: - if (XmlNameMatchesAscii(enc, - ptr + MIN_BYTES_PER_CHAR(enc), - end, + if (XmlNameMatchesAscii(enc, ptr + MIN_BYTES_PER_CHAR(enc), end, KW_PCDATA)) { state->handler = element3; return XML_ROLE_CONTENT_PCDATA; @@ -1074,12 +980,11 @@ element2(PROLOG_STATE *state, } static int PTRCALL -element3(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +element3(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ELEMENT_NONE; @@ -1099,12 +1004,11 @@ element3(PROLOG_STATE *state, } static int PTRCALL -element4(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +element4(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ELEMENT_NONE; @@ -1117,12 +1021,11 @@ element4(PROLOG_STATE *state, } static int PTRCALL -element5(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +element5(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ELEMENT_NONE; @@ -1138,12 +1041,11 @@ element5(PROLOG_STATE *state, } static int PTRCALL -element6(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +element6(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ELEMENT_NONE; @@ -1168,12 +1070,11 @@ element6(PROLOG_STATE *state, } static int PTRCALL -element7(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +element7(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_ELEMENT_NONE; @@ -1218,12 +1119,8 @@ element7(PROLOG_STATE *state, #ifdef XML_DTD static int PTRCALL -condSect0(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +condSect0(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; @@ -1242,12 +1139,11 @@ condSect0(PROLOG_STATE *state, } static int PTRCALL -condSect1(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +condSect1(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; @@ -1260,12 +1156,11 @@ condSect1(PROLOG_STATE *state, } static int PTRCALL -condSect2(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +condSect2(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; @@ -1279,12 +1174,11 @@ condSect2(PROLOG_STATE *state, #endif /* XML_DTD */ static int PTRCALL -declClose(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +declClose(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); switch (tok) { case XML_TOK_PROLOG_S: return state->role_none; @@ -1295,30 +1189,52 @@ declClose(PROLOG_STATE *state, return common(state, tok); } +/* This function will only be invoked if the internal logic of the + * parser has broken down. It is used in two cases: + * + * 1: When the XML prolog has been finished. At this point the + * processor (the parser level above these role handlers) should + * switch from prologProcessor to contentProcessor and reinitialise + * the handler function. + * + * 2: When an error has been detected (via common() below). At this + * point again the processor should be switched to errorProcessor, + * which will never call a handler. + * + * The result of this is that error() can only be called if the + * processor switch failed to happen, which is an internal error and + * therefore we shouldn't be able to provoke it simply by using the + * library. It is a necessary backstop, however, so we merely exclude + * it from the coverage statistics. + * + * LCOV_EXCL_START + */ static int PTRCALL -error(PROLOG_STATE *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc) -{ +error(PROLOG_STATE *state, int tok, const char *ptr, const char *end, + const ENCODING *enc) { + UNUSED_P(state); + UNUSED_P(tok); + UNUSED_P(ptr); + UNUSED_P(end); + UNUSED_P(enc); return XML_ROLE_NONE; } +/* LCOV_EXCL_STOP */ static int FASTCALL -common(PROLOG_STATE *state, int tok) -{ +common(PROLOG_STATE *state, int tok) { #ifdef XML_DTD - if (!state->documentEntity && tok == XML_TOK_PARAM_ENTITY_REF) + if (! state->documentEntity && tok == XML_TOK_PARAM_ENTITY_REF) return XML_ROLE_INNER_PARAM_ENTITY_REF; +#else + UNUSED_P(tok); #endif state->handler = error; return XML_ROLE_ERROR; } void -XmlPrologStateInit(PROLOG_STATE *state) -{ +XmlPrologStateInit(PROLOG_STATE *state) { state->handler = prolog0; #ifdef XML_DTD state->documentEntity = 1; @@ -1330,8 +1246,7 @@ XmlPrologStateInit(PROLOG_STATE *state) #ifdef XML_DTD void -XmlPrologStateInitExternalEntity(PROLOG_STATE *state) -{ +XmlPrologStateInitExternalEntity(PROLOG_STATE *state) { state->handler = externalSubset0; state->documentEntity = 0; state->includeLevel = 0; diff --git a/source/externals/expat/src/xmlrole.h b/source/externals/expat/src/xmlrole.h index 4dd9f06f97..d6e1fa150a 100644 --- a/source/externals/expat/src/xmlrole.h +++ b/source/externals/expat/src/xmlrole.h @@ -1,5 +1,36 @@ -/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2002 Karl Waclawek + Copyright (c) 2002 Fred L. Drake, Jr. + Copyright (c) 2017 Sebastian Pipping + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef XmlRole_INCLUDED @@ -8,7 +39,7 @@ #ifdef __VMS /* 0 1 2 3 0 1 2 3 1234567890123456789012345678901 1234567890123456789012345678901 */ -#define XmlPrologStateInitExternalEntity XmlPrologStateInitExternalEnt +# define XmlPrologStateInitExternalEntity XmlPrologStateInitExternalEnt #endif #include "xmltok.h" @@ -85,11 +116,8 @@ enum { }; typedef struct prolog_state { - int (PTRCALL *handler) (struct prolog_state *state, - int tok, - const char *ptr, - const char *end, - const ENCODING *enc); + int(PTRCALL *handler)(struct prolog_state *state, int tok, const char *ptr, + const char *end, const ENCODING *enc); unsigned level; int role_none; #ifdef XML_DTD @@ -104,8 +132,8 @@ void XmlPrologStateInit(PROLOG_STATE *); void XmlPrologStateInitExternalEntity(PROLOG_STATE *); #endif /* XML_DTD */ -#define XmlTokenRole(state, tok, ptr, end, enc) \ - (((state)->handler)(state, tok, ptr, end, enc)) +#define XmlTokenRole(state, tok, ptr, end, enc) \ + (((state)->handler)(state, tok, ptr, end, enc)) #ifdef __cplusplus } diff --git a/source/externals/expat/src/xmltok.c b/source/externals/expat/src/xmltok.c new file mode 100644 index 0000000000..2b7012a58b --- /dev/null +++ b/source/externals/expat/src/xmltok.c @@ -0,0 +1,1677 @@ +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2001-2003 Fred L. Drake, Jr. + Copyright (c) 2002 Greg Stein + Copyright (c) 2002-2016 Karl Waclawek + Copyright (c) 2005-2009 Steven Solie + Copyright (c) 2016-2022 Sebastian Pipping + Copyright (c) 2016 Pascal Cuoq + Copyright (c) 2016 Don Lewis + Copyright (c) 2017 Rhodri James + Copyright (c) 2017 Alexander Bluhm + Copyright (c) 2017 Benbuck Nason + Copyright (c) 2017 José Gutiérrez de la Concha + Copyright (c) 2019 David Loffredo + Copyright (c) 2021 Dong-hee Na + Copyright (c) 2022 Martin Ettl + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#include + +#include +#include /* memcpy */ +#include + +#ifdef _WIN32 +# include "winconfig.h" +#endif + +#include "expat_external.h" +#include "internal.h" +#include "xmltok.h" +#include "nametab.h" + +#ifdef XML_DTD +# define IGNORE_SECTION_TOK_VTABLE , PREFIX(ignoreSectionTok) +#else +# define IGNORE_SECTION_TOK_VTABLE /* as nothing */ +#endif + +#define VTABLE1 \ + {PREFIX(prologTok), PREFIX(contentTok), \ + PREFIX(cdataSectionTok) IGNORE_SECTION_TOK_VTABLE}, \ + {PREFIX(attributeValueTok), PREFIX(entityValueTok)}, \ + PREFIX(nameMatchesAscii), PREFIX(nameLength), PREFIX(skipS), \ + PREFIX(getAtts), PREFIX(charRefNumber), PREFIX(predefinedEntityName), \ + PREFIX(updatePosition), PREFIX(isPublicId) + +#define VTABLE VTABLE1, PREFIX(toUtf8), PREFIX(toUtf16) + +#define UCS2_GET_NAMING(pages, hi, lo) \ + (namingBitmap[(pages[hi] << 3) + ((lo) >> 5)] & (1u << ((lo)&0x1F))) + +/* A 2 byte UTF-8 representation splits the characters 11 bits between + the bottom 5 and 6 bits of the bytes. We need 8 bits to index into + pages, 3 bits to add to that index and 5 bits to generate the mask. +*/ +#define UTF8_GET_NAMING2(pages, byte) \ + (namingBitmap[((pages)[(((byte)[0]) >> 2) & 7] << 3) \ + + ((((byte)[0]) & 3) << 1) + ((((byte)[1]) >> 5) & 1)] \ + & (1u << (((byte)[1]) & 0x1F))) + +/* A 3 byte UTF-8 representation splits the characters 16 bits between + the bottom 4, 6 and 6 bits of the bytes. We need 8 bits to index + into pages, 3 bits to add to that index and 5 bits to generate the + mask. +*/ +#define UTF8_GET_NAMING3(pages, byte) \ + (namingBitmap \ + [((pages)[((((byte)[0]) & 0xF) << 4) + ((((byte)[1]) >> 2) & 0xF)] \ + << 3) \ + + ((((byte)[1]) & 3) << 1) + ((((byte)[2]) >> 5) & 1)] \ + & (1u << (((byte)[2]) & 0x1F))) + +/* Detection of invalid UTF-8 sequences is based on Table 3.1B + of Unicode 3.2: http://www.unicode.org/unicode/reports/tr28/ + with the additional restriction of not allowing the Unicode + code points 0xFFFF and 0xFFFE (sequences EF,BF,BF and EF,BF,BE). + Implementation details: + (A & 0x80) == 0 means A < 0x80 + and + (A & 0xC0) == 0xC0 means A > 0xBF +*/ + +#define UTF8_INVALID2(p) \ + ((*p) < 0xC2 || ((p)[1] & 0x80) == 0 || ((p)[1] & 0xC0) == 0xC0) + +#define UTF8_INVALID3(p) \ + (((p)[2] & 0x80) == 0 \ + || ((*p) == 0xEF && (p)[1] == 0xBF ? (p)[2] > 0xBD \ + : ((p)[2] & 0xC0) == 0xC0) \ + || ((*p) == 0xE0 \ + ? (p)[1] < 0xA0 || ((p)[1] & 0xC0) == 0xC0 \ + : ((p)[1] & 0x80) == 0 \ + || ((*p) == 0xED ? (p)[1] > 0x9F : ((p)[1] & 0xC0) == 0xC0))) + +#define UTF8_INVALID4(p) \ + (((p)[3] & 0x80) == 0 || ((p)[3] & 0xC0) == 0xC0 || ((p)[2] & 0x80) == 0 \ + || ((p)[2] & 0xC0) == 0xC0 \ + || ((*p) == 0xF0 \ + ? (p)[1] < 0x90 || ((p)[1] & 0xC0) == 0xC0 \ + : ((p)[1] & 0x80) == 0 \ + || ((*p) == 0xF4 ? (p)[1] > 0x8F : ((p)[1] & 0xC0) == 0xC0))) + +static int PTRFASTCALL +isNever(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + UNUSED_P(p); + return 0; +} + +static int PTRFASTCALL +utf8_isName2(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + return UTF8_GET_NAMING2(namePages, (const unsigned char *)p); +} + +static int PTRFASTCALL +utf8_isName3(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + return UTF8_GET_NAMING3(namePages, (const unsigned char *)p); +} + +#define utf8_isName4 isNever + +static int PTRFASTCALL +utf8_isNmstrt2(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + return UTF8_GET_NAMING2(nmstrtPages, (const unsigned char *)p); +} + +static int PTRFASTCALL +utf8_isNmstrt3(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + return UTF8_GET_NAMING3(nmstrtPages, (const unsigned char *)p); +} + +#define utf8_isNmstrt4 isNever + +static int PTRFASTCALL +utf8_isInvalid2(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + return UTF8_INVALID2((const unsigned char *)p); +} + +static int PTRFASTCALL +utf8_isInvalid3(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + return UTF8_INVALID3((const unsigned char *)p); +} + +static int PTRFASTCALL +utf8_isInvalid4(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + return UTF8_INVALID4((const unsigned char *)p); +} + +struct normal_encoding { + ENCODING enc; + unsigned char type[256]; +#ifdef XML_MIN_SIZE + int(PTRFASTCALL *byteType)(const ENCODING *, const char *); + int(PTRFASTCALL *isNameMin)(const ENCODING *, const char *); + int(PTRFASTCALL *isNmstrtMin)(const ENCODING *, const char *); + int(PTRFASTCALL *byteToAscii)(const ENCODING *, const char *); + int(PTRCALL *charMatches)(const ENCODING *, const char *, int); +#endif /* XML_MIN_SIZE */ + int(PTRFASTCALL *isName2)(const ENCODING *, const char *); + int(PTRFASTCALL *isName3)(const ENCODING *, const char *); + int(PTRFASTCALL *isName4)(const ENCODING *, const char *); + int(PTRFASTCALL *isNmstrt2)(const ENCODING *, const char *); + int(PTRFASTCALL *isNmstrt3)(const ENCODING *, const char *); + int(PTRFASTCALL *isNmstrt4)(const ENCODING *, const char *); + int(PTRFASTCALL *isInvalid2)(const ENCODING *, const char *); + int(PTRFASTCALL *isInvalid3)(const ENCODING *, const char *); + int(PTRFASTCALL *isInvalid4)(const ENCODING *, const char *); +}; + +#define AS_NORMAL_ENCODING(enc) ((const struct normal_encoding *)(enc)) + +#ifdef XML_MIN_SIZE + +# define STANDARD_VTABLE(E) \ + E##byteType, E##isNameMin, E##isNmstrtMin, E##byteToAscii, E##charMatches, + +#else + +# define STANDARD_VTABLE(E) /* as nothing */ + +#endif + +#define NORMAL_VTABLE(E) \ + E##isName2, E##isName3, E##isName4, E##isNmstrt2, E##isNmstrt3, \ + E##isNmstrt4, E##isInvalid2, E##isInvalid3, E##isInvalid4 + +#define NULL_VTABLE \ + /* isName2 */ NULL, /* isName3 */ NULL, /* isName4 */ NULL, \ + /* isNmstrt2 */ NULL, /* isNmstrt3 */ NULL, /* isNmstrt4 */ NULL, \ + /* isInvalid2 */ NULL, /* isInvalid3 */ NULL, /* isInvalid4 */ NULL + +static int FASTCALL checkCharRefNumber(int); + +#include "xmltok_impl.h" +#include "ascii.h" + +#ifdef XML_MIN_SIZE +# define sb_isNameMin isNever +# define sb_isNmstrtMin isNever +#endif + +#ifdef XML_MIN_SIZE +# define MINBPC(enc) ((enc)->minBytesPerChar) +#else +/* minimum bytes per character */ +# define MINBPC(enc) 1 +#endif + +#define SB_BYTE_TYPE(enc, p) \ + (((struct normal_encoding *)(enc))->type[(unsigned char)*(p)]) + +#ifdef XML_MIN_SIZE +static int PTRFASTCALL +sb_byteType(const ENCODING *enc, const char *p) { + return SB_BYTE_TYPE(enc, p); +} +# define BYTE_TYPE(enc, p) (AS_NORMAL_ENCODING(enc)->byteType(enc, p)) +#else +# define BYTE_TYPE(enc, p) SB_BYTE_TYPE(enc, p) +#endif + +#ifdef XML_MIN_SIZE +# define BYTE_TO_ASCII(enc, p) (AS_NORMAL_ENCODING(enc)->byteToAscii(enc, p)) +static int PTRFASTCALL +sb_byteToAscii(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + return *p; +} +#else +# define BYTE_TO_ASCII(enc, p) (*(p)) +#endif + +#define IS_NAME_CHAR(enc, p, n) (AS_NORMAL_ENCODING(enc)->isName##n(enc, p)) +#define IS_NMSTRT_CHAR(enc, p, n) (AS_NORMAL_ENCODING(enc)->isNmstrt##n(enc, p)) +#ifdef XML_MIN_SIZE +# define IS_INVALID_CHAR(enc, p, n) \ + (AS_NORMAL_ENCODING(enc)->isInvalid##n \ + && AS_NORMAL_ENCODING(enc)->isInvalid##n(enc, p)) +#else +# define IS_INVALID_CHAR(enc, p, n) \ + (AS_NORMAL_ENCODING(enc)->isInvalid##n(enc, p)) +#endif + +#ifdef XML_MIN_SIZE +# define IS_NAME_CHAR_MINBPC(enc, p) \ + (AS_NORMAL_ENCODING(enc)->isNameMin(enc, p)) +# define IS_NMSTRT_CHAR_MINBPC(enc, p) \ + (AS_NORMAL_ENCODING(enc)->isNmstrtMin(enc, p)) +#else +# define IS_NAME_CHAR_MINBPC(enc, p) (0) +# define IS_NMSTRT_CHAR_MINBPC(enc, p) (0) +#endif + +#ifdef XML_MIN_SIZE +# define CHAR_MATCHES(enc, p, c) \ + (AS_NORMAL_ENCODING(enc)->charMatches(enc, p, c)) +static int PTRCALL +sb_charMatches(const ENCODING *enc, const char *p, int c) { + UNUSED_P(enc); + return *p == c; +} +#else +/* c is an ASCII character */ +# define CHAR_MATCHES(enc, p, c) (*(p) == (c)) +#endif + +#define PREFIX(ident) normal_##ident +#define XML_TOK_IMPL_C +#include "xmltok_impl.c" +#undef XML_TOK_IMPL_C + +#undef MINBPC +#undef BYTE_TYPE +#undef BYTE_TO_ASCII +#undef CHAR_MATCHES +#undef IS_NAME_CHAR +#undef IS_NAME_CHAR_MINBPC +#undef IS_NMSTRT_CHAR +#undef IS_NMSTRT_CHAR_MINBPC +#undef IS_INVALID_CHAR + +enum { /* UTF8_cvalN is value of masked first byte of N byte sequence */ + UTF8_cval1 = 0x00, + UTF8_cval2 = 0xc0, + UTF8_cval3 = 0xe0, + UTF8_cval4 = 0xf0 +}; + +void +_INTERNAL_trim_to_complete_utf8_characters(const char *from, + const char **fromLimRef) { + const char *fromLim = *fromLimRef; + size_t walked = 0; + for (; fromLim > from; fromLim--, walked++) { + const unsigned char prev = (unsigned char)fromLim[-1]; + if ((prev & 0xf8u) + == 0xf0u) { /* 4-byte character, lead by 0b11110xxx byte */ + if (walked + 1 >= 4) { + fromLim += 4 - 1; + break; + } else { + walked = 0; + } + } else if ((prev & 0xf0u) + == 0xe0u) { /* 3-byte character, lead by 0b1110xxxx byte */ + if (walked + 1 >= 3) { + fromLim += 3 - 1; + break; + } else { + walked = 0; + } + } else if ((prev & 0xe0u) + == 0xc0u) { /* 2-byte character, lead by 0b110xxxxx byte */ + if (walked + 1 >= 2) { + fromLim += 2 - 1; + break; + } else { + walked = 0; + } + } else if ((prev & 0x80u) + == 0x00u) { /* 1-byte character, matching 0b0xxxxxxx */ + break; + } + } + *fromLimRef = fromLim; +} + +static enum XML_Convert_Result PTRCALL +utf8_toUtf8(const ENCODING *enc, const char **fromP, const char *fromLim, + char **toP, const char *toLim) { + bool input_incomplete = false; + bool output_exhausted = false; + + /* Avoid copying partial characters (due to limited space). */ + const ptrdiff_t bytesAvailable = fromLim - *fromP; + const ptrdiff_t bytesStorable = toLim - *toP; + UNUSED_P(enc); + if (bytesAvailable > bytesStorable) { + fromLim = *fromP + bytesStorable; + output_exhausted = true; + } + + /* Avoid copying partial characters (from incomplete input). */ + { + const char *const fromLimBefore = fromLim; + _INTERNAL_trim_to_complete_utf8_characters(*fromP, &fromLim); + if (fromLim < fromLimBefore) { + input_incomplete = true; + } + } + + { + const ptrdiff_t bytesToCopy = fromLim - *fromP; + memcpy(*toP, *fromP, bytesToCopy); + *fromP += bytesToCopy; + *toP += bytesToCopy; + } + + if (output_exhausted) /* needs to go first */ + return XML_CONVERT_OUTPUT_EXHAUSTED; + else if (input_incomplete) + return XML_CONVERT_INPUT_INCOMPLETE; + else + return XML_CONVERT_COMPLETED; +} + +static enum XML_Convert_Result PTRCALL +utf8_toUtf16(const ENCODING *enc, const char **fromP, const char *fromLim, + unsigned short **toP, const unsigned short *toLim) { + enum XML_Convert_Result res = XML_CONVERT_COMPLETED; + unsigned short *to = *toP; + const char *from = *fromP; + while (from < fromLim && to < toLim) { + switch (((struct normal_encoding *)enc)->type[(unsigned char)*from]) { + case BT_LEAD2: + if (fromLim - from < 2) { + res = XML_CONVERT_INPUT_INCOMPLETE; + goto after; + } + *to++ = (unsigned short)(((from[0] & 0x1f) << 6) | (from[1] & 0x3f)); + from += 2; + break; + case BT_LEAD3: + if (fromLim - from < 3) { + res = XML_CONVERT_INPUT_INCOMPLETE; + goto after; + } + *to++ = (unsigned short)(((from[0] & 0xf) << 12) | ((from[1] & 0x3f) << 6) + | (from[2] & 0x3f)); + from += 3; + break; + case BT_LEAD4: { + unsigned long n; + if (toLim - to < 2) { + res = XML_CONVERT_OUTPUT_EXHAUSTED; + goto after; + } + if (fromLim - from < 4) { + res = XML_CONVERT_INPUT_INCOMPLETE; + goto after; + } + n = ((from[0] & 0x7) << 18) | ((from[1] & 0x3f) << 12) + | ((from[2] & 0x3f) << 6) | (from[3] & 0x3f); + n -= 0x10000; + to[0] = (unsigned short)((n >> 10) | 0xD800); + to[1] = (unsigned short)((n & 0x3FF) | 0xDC00); + to += 2; + from += 4; + } break; + default: + *to++ = *from++; + break; + } + } + if (from < fromLim) + res = XML_CONVERT_OUTPUT_EXHAUSTED; +after: + *fromP = from; + *toP = to; + return res; +} + +#ifdef XML_NS +static const struct normal_encoding utf8_encoding_ns + = {{VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0}, + { +# include "asciitab.h" +# include "utf8tab.h" + }, + STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_)}; +#endif + +static const struct normal_encoding utf8_encoding + = {{VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0}, + { +#define BT_COLON BT_NMSTRT +#include "asciitab.h" +#undef BT_COLON +#include "utf8tab.h" + }, + STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_)}; + +#ifdef XML_NS + +static const struct normal_encoding internal_utf8_encoding_ns + = {{VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0}, + { +# include "iasciitab.h" +# include "utf8tab.h" + }, + STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_)}; + +#endif + +static const struct normal_encoding internal_utf8_encoding + = {{VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0}, + { +#define BT_COLON BT_NMSTRT +#include "iasciitab.h" +#undef BT_COLON +#include "utf8tab.h" + }, + STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_)}; + +static enum XML_Convert_Result PTRCALL +latin1_toUtf8(const ENCODING *enc, const char **fromP, const char *fromLim, + char **toP, const char *toLim) { + UNUSED_P(enc); + for (;;) { + unsigned char c; + if (*fromP == fromLim) + return XML_CONVERT_COMPLETED; + c = (unsigned char)**fromP; + if (c & 0x80) { + if (toLim - *toP < 2) + return XML_CONVERT_OUTPUT_EXHAUSTED; + *(*toP)++ = (char)((c >> 6) | UTF8_cval2); + *(*toP)++ = (char)((c & 0x3f) | 0x80); + (*fromP)++; + } else { + if (*toP == toLim) + return XML_CONVERT_OUTPUT_EXHAUSTED; + *(*toP)++ = *(*fromP)++; + } + } +} + +static enum XML_Convert_Result PTRCALL +latin1_toUtf16(const ENCODING *enc, const char **fromP, const char *fromLim, + unsigned short **toP, const unsigned short *toLim) { + UNUSED_P(enc); + while (*fromP < fromLim && *toP < toLim) + *(*toP)++ = (unsigned char)*(*fromP)++; + + if ((*toP == toLim) && (*fromP < fromLim)) + return XML_CONVERT_OUTPUT_EXHAUSTED; + else + return XML_CONVERT_COMPLETED; +} + +#ifdef XML_NS + +static const struct normal_encoding latin1_encoding_ns + = {{VTABLE1, latin1_toUtf8, latin1_toUtf16, 1, 0, 0}, + { +# include "asciitab.h" +# include "latin1tab.h" + }, + STANDARD_VTABLE(sb_) NULL_VTABLE}; + +#endif + +static const struct normal_encoding latin1_encoding + = {{VTABLE1, latin1_toUtf8, latin1_toUtf16, 1, 0, 0}, + { +#define BT_COLON BT_NMSTRT +#include "asciitab.h" +#undef BT_COLON +#include "latin1tab.h" + }, + STANDARD_VTABLE(sb_) NULL_VTABLE}; + +static enum XML_Convert_Result PTRCALL +ascii_toUtf8(const ENCODING *enc, const char **fromP, const char *fromLim, + char **toP, const char *toLim) { + UNUSED_P(enc); + while (*fromP < fromLim && *toP < toLim) + *(*toP)++ = *(*fromP)++; + + if ((*toP == toLim) && (*fromP < fromLim)) + return XML_CONVERT_OUTPUT_EXHAUSTED; + else + return XML_CONVERT_COMPLETED; +} + +#ifdef XML_NS + +static const struct normal_encoding ascii_encoding_ns + = {{VTABLE1, ascii_toUtf8, latin1_toUtf16, 1, 1, 0}, + { +# include "asciitab.h" + /* BT_NONXML == 0 */ + }, + STANDARD_VTABLE(sb_) NULL_VTABLE}; + +#endif + +static const struct normal_encoding ascii_encoding + = {{VTABLE1, ascii_toUtf8, latin1_toUtf16, 1, 1, 0}, + { +#define BT_COLON BT_NMSTRT +#include "asciitab.h" +#undef BT_COLON + /* BT_NONXML == 0 */ + }, + STANDARD_VTABLE(sb_) NULL_VTABLE}; + +static int PTRFASTCALL +unicode_byte_type(char hi, char lo) { + switch ((unsigned char)hi) { + /* 0xD800-0xDBFF first 16-bit code unit or high surrogate (W1) */ + case 0xD8: + case 0xD9: + case 0xDA: + case 0xDB: + return BT_LEAD4; + /* 0xDC00-0xDFFF second 16-bit code unit or low surrogate (W2) */ + case 0xDC: + case 0xDD: + case 0xDE: + case 0xDF: + return BT_TRAIL; + case 0xFF: + switch ((unsigned char)lo) { + case 0xFF: /* noncharacter-FFFF */ + case 0xFE: /* noncharacter-FFFE */ + return BT_NONXML; + } + break; + } + return BT_NONASCII; +} + +#define DEFINE_UTF16_TO_UTF8(E) \ + static enum XML_Convert_Result PTRCALL E##toUtf8( \ + const ENCODING *enc, const char **fromP, const char *fromLim, \ + char **toP, const char *toLim) { \ + const char *from = *fromP; \ + UNUSED_P(enc); \ + fromLim = from + (((fromLim - from) >> 1) << 1); /* shrink to even */ \ + for (; from < fromLim; from += 2) { \ + int plane; \ + unsigned char lo2; \ + unsigned char lo = GET_LO(from); \ + unsigned char hi = GET_HI(from); \ + switch (hi) { \ + case 0: \ + if (lo < 0x80) { \ + if (*toP == toLim) { \ + *fromP = from; \ + return XML_CONVERT_OUTPUT_EXHAUSTED; \ + } \ + *(*toP)++ = lo; \ + break; \ + } \ + /* fall through */ \ + case 0x1: \ + case 0x2: \ + case 0x3: \ + case 0x4: \ + case 0x5: \ + case 0x6: \ + case 0x7: \ + if (toLim - *toP < 2) { \ + *fromP = from; \ + return XML_CONVERT_OUTPUT_EXHAUSTED; \ + } \ + *(*toP)++ = ((lo >> 6) | (hi << 2) | UTF8_cval2); \ + *(*toP)++ = ((lo & 0x3f) | 0x80); \ + break; \ + default: \ + if (toLim - *toP < 3) { \ + *fromP = from; \ + return XML_CONVERT_OUTPUT_EXHAUSTED; \ + } \ + /* 16 bits divided 4, 6, 6 amongst 3 bytes */ \ + *(*toP)++ = ((hi >> 4) | UTF8_cval3); \ + *(*toP)++ = (((hi & 0xf) << 2) | (lo >> 6) | 0x80); \ + *(*toP)++ = ((lo & 0x3f) | 0x80); \ + break; \ + case 0xD8: \ + case 0xD9: \ + case 0xDA: \ + case 0xDB: \ + if (toLim - *toP < 4) { \ + *fromP = from; \ + return XML_CONVERT_OUTPUT_EXHAUSTED; \ + } \ + if (fromLim - from < 4) { \ + *fromP = from; \ + return XML_CONVERT_INPUT_INCOMPLETE; \ + } \ + plane = (((hi & 0x3) << 2) | ((lo >> 6) & 0x3)) + 1; \ + *(*toP)++ = (char)((plane >> 2) | UTF8_cval4); \ + *(*toP)++ = (((lo >> 2) & 0xF) | ((plane & 0x3) << 4) | 0x80); \ + from += 2; \ + lo2 = GET_LO(from); \ + *(*toP)++ = (((lo & 0x3) << 4) | ((GET_HI(from) & 0x3) << 2) \ + | (lo2 >> 6) | 0x80); \ + *(*toP)++ = ((lo2 & 0x3f) | 0x80); \ + break; \ + } \ + } \ + *fromP = from; \ + if (from < fromLim) \ + return XML_CONVERT_INPUT_INCOMPLETE; \ + else \ + return XML_CONVERT_COMPLETED; \ + } + +#define DEFINE_UTF16_TO_UTF16(E) \ + static enum XML_Convert_Result PTRCALL E##toUtf16( \ + const ENCODING *enc, const char **fromP, const char *fromLim, \ + unsigned short **toP, const unsigned short *toLim) { \ + enum XML_Convert_Result res = XML_CONVERT_COMPLETED; \ + UNUSED_P(enc); \ + fromLim = *fromP + (((fromLim - *fromP) >> 1) << 1); /* shrink to even */ \ + /* Avoid copying first half only of surrogate */ \ + if (fromLim - *fromP > ((toLim - *toP) << 1) \ + && (GET_HI(fromLim - 2) & 0xF8) == 0xD8) { \ + fromLim -= 2; \ + res = XML_CONVERT_INPUT_INCOMPLETE; \ + } \ + for (; *fromP < fromLim && *toP < toLim; *fromP += 2) \ + *(*toP)++ = (GET_HI(*fromP) << 8) | GET_LO(*fromP); \ + if ((*toP == toLim) && (*fromP < fromLim)) \ + return XML_CONVERT_OUTPUT_EXHAUSTED; \ + else \ + return res; \ + } + +#define SET2(ptr, ch) (((ptr)[0] = ((ch)&0xff)), ((ptr)[1] = ((ch) >> 8))) +#define GET_LO(ptr) ((unsigned char)(ptr)[0]) +#define GET_HI(ptr) ((unsigned char)(ptr)[1]) + +DEFINE_UTF16_TO_UTF8(little2_) +DEFINE_UTF16_TO_UTF16(little2_) + +#undef SET2 +#undef GET_LO +#undef GET_HI + +#define SET2(ptr, ch) (((ptr)[0] = ((ch) >> 8)), ((ptr)[1] = ((ch)&0xFF))) +#define GET_LO(ptr) ((unsigned char)(ptr)[1]) +#define GET_HI(ptr) ((unsigned char)(ptr)[0]) + +DEFINE_UTF16_TO_UTF8(big2_) +DEFINE_UTF16_TO_UTF16(big2_) + +#undef SET2 +#undef GET_LO +#undef GET_HI + +#define LITTLE2_BYTE_TYPE(enc, p) \ + ((p)[1] == 0 ? ((struct normal_encoding *)(enc))->type[(unsigned char)*(p)] \ + : unicode_byte_type((p)[1], (p)[0])) +#define LITTLE2_BYTE_TO_ASCII(p) ((p)[1] == 0 ? (p)[0] : -1) +#define LITTLE2_CHAR_MATCHES(p, c) ((p)[1] == 0 && (p)[0] == (c)) +#define LITTLE2_IS_NAME_CHAR_MINBPC(p) \ + UCS2_GET_NAMING(namePages, (unsigned char)p[1], (unsigned char)p[0]) +#define LITTLE2_IS_NMSTRT_CHAR_MINBPC(p) \ + UCS2_GET_NAMING(nmstrtPages, (unsigned char)p[1], (unsigned char)p[0]) + +#ifdef XML_MIN_SIZE + +static int PTRFASTCALL +little2_byteType(const ENCODING *enc, const char *p) { + return LITTLE2_BYTE_TYPE(enc, p); +} + +static int PTRFASTCALL +little2_byteToAscii(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + return LITTLE2_BYTE_TO_ASCII(p); +} + +static int PTRCALL +little2_charMatches(const ENCODING *enc, const char *p, int c) { + UNUSED_P(enc); + return LITTLE2_CHAR_MATCHES(p, c); +} + +static int PTRFASTCALL +little2_isNameMin(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + return LITTLE2_IS_NAME_CHAR_MINBPC(p); +} + +static int PTRFASTCALL +little2_isNmstrtMin(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + return LITTLE2_IS_NMSTRT_CHAR_MINBPC(p); +} + +# undef VTABLE +# define VTABLE VTABLE1, little2_toUtf8, little2_toUtf16 + +#else /* not XML_MIN_SIZE */ + +# undef PREFIX +# define PREFIX(ident) little2_##ident +# define MINBPC(enc) 2 +/* CHAR_MATCHES is guaranteed to have MINBPC bytes available. */ +# define BYTE_TYPE(enc, p) LITTLE2_BYTE_TYPE(enc, p) +# define BYTE_TO_ASCII(enc, p) LITTLE2_BYTE_TO_ASCII(p) +# define CHAR_MATCHES(enc, p, c) LITTLE2_CHAR_MATCHES(p, c) +# define IS_NAME_CHAR(enc, p, n) 0 +# define IS_NAME_CHAR_MINBPC(enc, p) LITTLE2_IS_NAME_CHAR_MINBPC(p) +# define IS_NMSTRT_CHAR(enc, p, n) (0) +# define IS_NMSTRT_CHAR_MINBPC(enc, p) LITTLE2_IS_NMSTRT_CHAR_MINBPC(p) + +# define XML_TOK_IMPL_C +# include "xmltok_impl.c" +# undef XML_TOK_IMPL_C + +# undef MINBPC +# undef BYTE_TYPE +# undef BYTE_TO_ASCII +# undef CHAR_MATCHES +# undef IS_NAME_CHAR +# undef IS_NAME_CHAR_MINBPC +# undef IS_NMSTRT_CHAR +# undef IS_NMSTRT_CHAR_MINBPC +# undef IS_INVALID_CHAR + +#endif /* not XML_MIN_SIZE */ + +#ifdef XML_NS + +static const struct normal_encoding little2_encoding_ns + = {{VTABLE, 2, 0, +# if BYTEORDER == 1234 + 1 +# else + 0 +# endif + }, + { +# include "asciitab.h" +# include "latin1tab.h" + }, + STANDARD_VTABLE(little2_) NULL_VTABLE}; + +#endif + +static const struct normal_encoding little2_encoding + = {{VTABLE, 2, 0, +#if BYTEORDER == 1234 + 1 +#else + 0 +#endif + }, + { +#define BT_COLON BT_NMSTRT +#include "asciitab.h" +#undef BT_COLON +#include "latin1tab.h" + }, + STANDARD_VTABLE(little2_) NULL_VTABLE}; + +#if BYTEORDER != 4321 + +# ifdef XML_NS + +static const struct normal_encoding internal_little2_encoding_ns + = {{VTABLE, 2, 0, 1}, + { +# include "iasciitab.h" +# include "latin1tab.h" + }, + STANDARD_VTABLE(little2_) NULL_VTABLE}; + +# endif + +static const struct normal_encoding internal_little2_encoding + = {{VTABLE, 2, 0, 1}, + { +# define BT_COLON BT_NMSTRT +# include "iasciitab.h" +# undef BT_COLON +# include "latin1tab.h" + }, + STANDARD_VTABLE(little2_) NULL_VTABLE}; + +#endif + +#define BIG2_BYTE_TYPE(enc, p) \ + ((p)[0] == 0 \ + ? ((struct normal_encoding *)(enc))->type[(unsigned char)(p)[1]] \ + : unicode_byte_type((p)[0], (p)[1])) +#define BIG2_BYTE_TO_ASCII(p) ((p)[0] == 0 ? (p)[1] : -1) +#define BIG2_CHAR_MATCHES(p, c) ((p)[0] == 0 && (p)[1] == (c)) +#define BIG2_IS_NAME_CHAR_MINBPC(p) \ + UCS2_GET_NAMING(namePages, (unsigned char)p[0], (unsigned char)p[1]) +#define BIG2_IS_NMSTRT_CHAR_MINBPC(p) \ + UCS2_GET_NAMING(nmstrtPages, (unsigned char)p[0], (unsigned char)p[1]) + +#ifdef XML_MIN_SIZE + +static int PTRFASTCALL +big2_byteType(const ENCODING *enc, const char *p) { + return BIG2_BYTE_TYPE(enc, p); +} + +static int PTRFASTCALL +big2_byteToAscii(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + return BIG2_BYTE_TO_ASCII(p); +} + +static int PTRCALL +big2_charMatches(const ENCODING *enc, const char *p, int c) { + UNUSED_P(enc); + return BIG2_CHAR_MATCHES(p, c); +} + +static int PTRFASTCALL +big2_isNameMin(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + return BIG2_IS_NAME_CHAR_MINBPC(p); +} + +static int PTRFASTCALL +big2_isNmstrtMin(const ENCODING *enc, const char *p) { + UNUSED_P(enc); + return BIG2_IS_NMSTRT_CHAR_MINBPC(p); +} + +# undef VTABLE +# define VTABLE VTABLE1, big2_toUtf8, big2_toUtf16 + +#else /* not XML_MIN_SIZE */ + +# undef PREFIX +# define PREFIX(ident) big2_##ident +# define MINBPC(enc) 2 +/* CHAR_MATCHES is guaranteed to have MINBPC bytes available. */ +# define BYTE_TYPE(enc, p) BIG2_BYTE_TYPE(enc, p) +# define BYTE_TO_ASCII(enc, p) BIG2_BYTE_TO_ASCII(p) +# define CHAR_MATCHES(enc, p, c) BIG2_CHAR_MATCHES(p, c) +# define IS_NAME_CHAR(enc, p, n) 0 +# define IS_NAME_CHAR_MINBPC(enc, p) BIG2_IS_NAME_CHAR_MINBPC(p) +# define IS_NMSTRT_CHAR(enc, p, n) (0) +# define IS_NMSTRT_CHAR_MINBPC(enc, p) BIG2_IS_NMSTRT_CHAR_MINBPC(p) + +# define XML_TOK_IMPL_C +# include "xmltok_impl.c" +# undef XML_TOK_IMPL_C + +# undef MINBPC +# undef BYTE_TYPE +# undef BYTE_TO_ASCII +# undef CHAR_MATCHES +# undef IS_NAME_CHAR +# undef IS_NAME_CHAR_MINBPC +# undef IS_NMSTRT_CHAR +# undef IS_NMSTRT_CHAR_MINBPC +# undef IS_INVALID_CHAR + +#endif /* not XML_MIN_SIZE */ + +#ifdef XML_NS + +static const struct normal_encoding big2_encoding_ns + = {{VTABLE, 2, 0, +# if BYTEORDER == 4321 + 1 +# else + 0 +# endif + }, + { +# include "asciitab.h" +# include "latin1tab.h" + }, + STANDARD_VTABLE(big2_) NULL_VTABLE}; + +#endif + +static const struct normal_encoding big2_encoding + = {{VTABLE, 2, 0, +#if BYTEORDER == 4321 + 1 +#else + 0 +#endif + }, + { +#define BT_COLON BT_NMSTRT +#include "asciitab.h" +#undef BT_COLON +#include "latin1tab.h" + }, + STANDARD_VTABLE(big2_) NULL_VTABLE}; + +#if BYTEORDER != 1234 + +# ifdef XML_NS + +static const struct normal_encoding internal_big2_encoding_ns + = {{VTABLE, 2, 0, 1}, + { +# include "iasciitab.h" +# include "latin1tab.h" + }, + STANDARD_VTABLE(big2_) NULL_VTABLE}; + +# endif + +static const struct normal_encoding internal_big2_encoding + = {{VTABLE, 2, 0, 1}, + { +# define BT_COLON BT_NMSTRT +# include "iasciitab.h" +# undef BT_COLON +# include "latin1tab.h" + }, + STANDARD_VTABLE(big2_) NULL_VTABLE}; + +#endif + +#undef PREFIX + +static int FASTCALL +streqci(const char *s1, const char *s2) { + for (;;) { + char c1 = *s1++; + char c2 = *s2++; + if (ASCII_a <= c1 && c1 <= ASCII_z) + c1 += ASCII_A - ASCII_a; + if (ASCII_a <= c2 && c2 <= ASCII_z) + /* The following line will never get executed. streqci() is + * only called from two places, both of which guarantee to put + * upper-case strings into s2. + */ + c2 += ASCII_A - ASCII_a; /* LCOV_EXCL_LINE */ + if (c1 != c2) + return 0; + if (! c1) + break; + } + return 1; +} + +static void PTRCALL +initUpdatePosition(const ENCODING *enc, const char *ptr, const char *end, + POSITION *pos) { + UNUSED_P(enc); + normal_updatePosition(&utf8_encoding.enc, ptr, end, pos); +} + +static int +toAscii(const ENCODING *enc, const char *ptr, const char *end) { + char buf[1]; + char *p = buf; + XmlUtf8Convert(enc, &ptr, end, &p, p + 1); + if (p == buf) + return -1; + else + return buf[0]; +} + +static int FASTCALL +isSpace(int c) { + switch (c) { + case 0x20: + case 0xD: + case 0xA: + case 0x9: + return 1; + } + return 0; +} + +/* Return 1 if there's just optional white space or there's an S + followed by name=val. +*/ +static int +parsePseudoAttribute(const ENCODING *enc, const char *ptr, const char *end, + const char **namePtr, const char **nameEndPtr, + const char **valPtr, const char **nextTokPtr) { + int c; + char open; + if (ptr == end) { + *namePtr = NULL; + return 1; + } + if (! isSpace(toAscii(enc, ptr, end))) { + *nextTokPtr = ptr; + return 0; + } + do { + ptr += enc->minBytesPerChar; + } while (isSpace(toAscii(enc, ptr, end))); + if (ptr == end) { + *namePtr = NULL; + return 1; + } + *namePtr = ptr; + for (;;) { + c = toAscii(enc, ptr, end); + if (c == -1) { + *nextTokPtr = ptr; + return 0; + } + if (c == ASCII_EQUALS) { + *nameEndPtr = ptr; + break; + } + if (isSpace(c)) { + *nameEndPtr = ptr; + do { + ptr += enc->minBytesPerChar; + } while (isSpace(c = toAscii(enc, ptr, end))); + if (c != ASCII_EQUALS) { + *nextTokPtr = ptr; + return 0; + } + break; + } + ptr += enc->minBytesPerChar; + } + if (ptr == *namePtr) { + *nextTokPtr = ptr; + return 0; + } + ptr += enc->minBytesPerChar; + c = toAscii(enc, ptr, end); + while (isSpace(c)) { + ptr += enc->minBytesPerChar; + c = toAscii(enc, ptr, end); + } + if (c != ASCII_QUOT && c != ASCII_APOS) { + *nextTokPtr = ptr; + return 0; + } + open = (char)c; + ptr += enc->minBytesPerChar; + *valPtr = ptr; + for (;; ptr += enc->minBytesPerChar) { + c = toAscii(enc, ptr, end); + if (c == open) + break; + if (! (ASCII_a <= c && c <= ASCII_z) && ! (ASCII_A <= c && c <= ASCII_Z) + && ! (ASCII_0 <= c && c <= ASCII_9) && c != ASCII_PERIOD + && c != ASCII_MINUS && c != ASCII_UNDERSCORE) { + *nextTokPtr = ptr; + return 0; + } + } + *nextTokPtr = ptr + enc->minBytesPerChar; + return 1; +} + +static const char KW_version[] + = {ASCII_v, ASCII_e, ASCII_r, ASCII_s, ASCII_i, ASCII_o, ASCII_n, '\0'}; + +static const char KW_encoding[] = {ASCII_e, ASCII_n, ASCII_c, ASCII_o, ASCII_d, + ASCII_i, ASCII_n, ASCII_g, '\0'}; + +static const char KW_standalone[] + = {ASCII_s, ASCII_t, ASCII_a, ASCII_n, ASCII_d, ASCII_a, + ASCII_l, ASCII_o, ASCII_n, ASCII_e, '\0'}; + +static const char KW_yes[] = {ASCII_y, ASCII_e, ASCII_s, '\0'}; + +static const char KW_no[] = {ASCII_n, ASCII_o, '\0'}; + +static int +doParseXmlDecl(const ENCODING *(*encodingFinder)(const ENCODING *, const char *, + const char *), + int isGeneralTextEntity, const ENCODING *enc, const char *ptr, + const char *end, const char **badPtr, const char **versionPtr, + const char **versionEndPtr, const char **encodingName, + const ENCODING **encoding, int *standalone) { + const char *val = NULL; + const char *name = NULL; + const char *nameEnd = NULL; + ptr += 5 * enc->minBytesPerChar; + end -= 2 * enc->minBytesPerChar; + if (! parsePseudoAttribute(enc, ptr, end, &name, &nameEnd, &val, &ptr) + || ! name) { + *badPtr = ptr; + return 0; + } + if (! XmlNameMatchesAscii(enc, name, nameEnd, KW_version)) { + if (! isGeneralTextEntity) { + *badPtr = name; + return 0; + } + } else { + if (versionPtr) + *versionPtr = val; + if (versionEndPtr) + *versionEndPtr = ptr; + if (! parsePseudoAttribute(enc, ptr, end, &name, &nameEnd, &val, &ptr)) { + *badPtr = ptr; + return 0; + } + if (! name) { + if (isGeneralTextEntity) { + /* a TextDecl must have an EncodingDecl */ + *badPtr = ptr; + return 0; + } + return 1; + } + } + if (XmlNameMatchesAscii(enc, name, nameEnd, KW_encoding)) { + int c = toAscii(enc, val, end); + if (! (ASCII_a <= c && c <= ASCII_z) && ! (ASCII_A <= c && c <= ASCII_Z)) { + *badPtr = val; + return 0; + } + if (encodingName) + *encodingName = val; + if (encoding) + *encoding = encodingFinder(enc, val, ptr - enc->minBytesPerChar); + if (! parsePseudoAttribute(enc, ptr, end, &name, &nameEnd, &val, &ptr)) { + *badPtr = ptr; + return 0; + } + if (! name) + return 1; + } + if (! XmlNameMatchesAscii(enc, name, nameEnd, KW_standalone) + || isGeneralTextEntity) { + *badPtr = name; + return 0; + } + if (XmlNameMatchesAscii(enc, val, ptr - enc->minBytesPerChar, KW_yes)) { + if (standalone) + *standalone = 1; + } else if (XmlNameMatchesAscii(enc, val, ptr - enc->minBytesPerChar, KW_no)) { + if (standalone) + *standalone = 0; + } else { + *badPtr = val; + return 0; + } + while (isSpace(toAscii(enc, ptr, end))) + ptr += enc->minBytesPerChar; + if (ptr != end) { + *badPtr = ptr; + return 0; + } + return 1; +} + +static int FASTCALL +checkCharRefNumber(int result) { + switch (result >> 8) { + case 0xD8: + case 0xD9: + case 0xDA: + case 0xDB: + case 0xDC: + case 0xDD: + case 0xDE: + case 0xDF: + return -1; + case 0: + if (latin1_encoding.type[result] == BT_NONXML) + return -1; + break; + case 0xFF: + if (result == 0xFFFE || result == 0xFFFF) + return -1; + break; + } + return result; +} + +int FASTCALL +XmlUtf8Encode(int c, char *buf) { + enum { + /* minN is minimum legal resulting value for N byte sequence */ + min2 = 0x80, + min3 = 0x800, + min4 = 0x10000 + }; + + if (c < 0) + return 0; /* LCOV_EXCL_LINE: this case is always eliminated beforehand */ + if (c < min2) { + buf[0] = (char)(c | UTF8_cval1); + return 1; + } + if (c < min3) { + buf[0] = (char)((c >> 6) | UTF8_cval2); + buf[1] = (char)((c & 0x3f) | 0x80); + return 2; + } + if (c < min4) { + buf[0] = (char)((c >> 12) | UTF8_cval3); + buf[1] = (char)(((c >> 6) & 0x3f) | 0x80); + buf[2] = (char)((c & 0x3f) | 0x80); + return 3; + } + if (c < 0x110000) { + buf[0] = (char)((c >> 18) | UTF8_cval4); + buf[1] = (char)(((c >> 12) & 0x3f) | 0x80); + buf[2] = (char)(((c >> 6) & 0x3f) | 0x80); + buf[3] = (char)((c & 0x3f) | 0x80); + return 4; + } + return 0; /* LCOV_EXCL_LINE: this case too is eliminated before calling */ +} + +int FASTCALL +XmlUtf16Encode(int charNum, unsigned short *buf) { + if (charNum < 0) + return 0; + if (charNum < 0x10000) { + buf[0] = (unsigned short)charNum; + return 1; + } + if (charNum < 0x110000) { + charNum -= 0x10000; + buf[0] = (unsigned short)((charNum >> 10) + 0xD800); + buf[1] = (unsigned short)((charNum & 0x3FF) + 0xDC00); + return 2; + } + return 0; +} + +struct unknown_encoding { + struct normal_encoding normal; + CONVERTER convert; + void *userData; + unsigned short utf16[256]; + char utf8[256][4]; +}; + +#define AS_UNKNOWN_ENCODING(enc) ((const struct unknown_encoding *)(enc)) + +int +XmlSizeOfUnknownEncoding(void) { + return sizeof(struct unknown_encoding); +} + +static int PTRFASTCALL +unknown_isName(const ENCODING *enc, const char *p) { + const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); + int c = uenc->convert(uenc->userData, p); + if (c & ~0xFFFF) + return 0; + return UCS2_GET_NAMING(namePages, c >> 8, c & 0xFF); +} + +static int PTRFASTCALL +unknown_isNmstrt(const ENCODING *enc, const char *p) { + const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); + int c = uenc->convert(uenc->userData, p); + if (c & ~0xFFFF) + return 0; + return UCS2_GET_NAMING(nmstrtPages, c >> 8, c & 0xFF); +} + +static int PTRFASTCALL +unknown_isInvalid(const ENCODING *enc, const char *p) { + const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); + int c = uenc->convert(uenc->userData, p); + return (c & ~0xFFFF) || checkCharRefNumber(c) < 0; +} + +static enum XML_Convert_Result PTRCALL +unknown_toUtf8(const ENCODING *enc, const char **fromP, const char *fromLim, + char **toP, const char *toLim) { + const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); + char buf[XML_UTF8_ENCODE_MAX]; + for (;;) { + const char *utf8; + int n; + if (*fromP == fromLim) + return XML_CONVERT_COMPLETED; + utf8 = uenc->utf8[(unsigned char)**fromP]; + n = *utf8++; + if (n == 0) { + int c = uenc->convert(uenc->userData, *fromP); + n = XmlUtf8Encode(c, buf); + if (n > toLim - *toP) + return XML_CONVERT_OUTPUT_EXHAUSTED; + utf8 = buf; + *fromP += (AS_NORMAL_ENCODING(enc)->type[(unsigned char)**fromP] + - (BT_LEAD2 - 2)); + } else { + if (n > toLim - *toP) + return XML_CONVERT_OUTPUT_EXHAUSTED; + (*fromP)++; + } + memcpy(*toP, utf8, n); + *toP += n; + } +} + +static enum XML_Convert_Result PTRCALL +unknown_toUtf16(const ENCODING *enc, const char **fromP, const char *fromLim, + unsigned short **toP, const unsigned short *toLim) { + const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); + while (*fromP < fromLim && *toP < toLim) { + unsigned short c = uenc->utf16[(unsigned char)**fromP]; + if (c == 0) { + c = (unsigned short)uenc->convert(uenc->userData, *fromP); + *fromP += (AS_NORMAL_ENCODING(enc)->type[(unsigned char)**fromP] + - (BT_LEAD2 - 2)); + } else + (*fromP)++; + *(*toP)++ = c; + } + + if ((*toP == toLim) && (*fromP < fromLim)) + return XML_CONVERT_OUTPUT_EXHAUSTED; + else + return XML_CONVERT_COMPLETED; +} + +ENCODING * +XmlInitUnknownEncoding(void *mem, int *table, CONVERTER convert, + void *userData) { + int i; + struct unknown_encoding *e = (struct unknown_encoding *)mem; + memcpy(mem, &latin1_encoding, sizeof(struct normal_encoding)); + for (i = 0; i < 128; i++) + if (latin1_encoding.type[i] != BT_OTHER + && latin1_encoding.type[i] != BT_NONXML && table[i] != i) + return 0; + for (i = 0; i < 256; i++) { + int c = table[i]; + if (c == -1) { + e->normal.type[i] = BT_MALFORM; + /* This shouldn't really get used. */ + e->utf16[i] = 0xFFFF; + e->utf8[i][0] = 1; + e->utf8[i][1] = 0; + } else if (c < 0) { + if (c < -4) + return 0; + /* Multi-byte sequences need a converter function */ + if (! convert) + return 0; + e->normal.type[i] = (unsigned char)(BT_LEAD2 - (c + 2)); + e->utf8[i][0] = 0; + e->utf16[i] = 0; + } else if (c < 0x80) { + if (latin1_encoding.type[c] != BT_OTHER + && latin1_encoding.type[c] != BT_NONXML && c != i) + return 0; + e->normal.type[i] = latin1_encoding.type[c]; + e->utf8[i][0] = 1; + e->utf8[i][1] = (char)c; + e->utf16[i] = (unsigned short)(c == 0 ? 0xFFFF : c); + } else if (checkCharRefNumber(c) < 0) { + e->normal.type[i] = BT_NONXML; + /* This shouldn't really get used. */ + e->utf16[i] = 0xFFFF; + e->utf8[i][0] = 1; + e->utf8[i][1] = 0; + } else { + if (c > 0xFFFF) + return 0; + if (UCS2_GET_NAMING(nmstrtPages, c >> 8, c & 0xff)) + e->normal.type[i] = BT_NMSTRT; + else if (UCS2_GET_NAMING(namePages, c >> 8, c & 0xff)) + e->normal.type[i] = BT_NAME; + else + e->normal.type[i] = BT_OTHER; + e->utf8[i][0] = (char)XmlUtf8Encode(c, e->utf8[i] + 1); + e->utf16[i] = (unsigned short)c; + } + } + e->userData = userData; + e->convert = convert; + if (convert) { + e->normal.isName2 = unknown_isName; + e->normal.isName3 = unknown_isName; + e->normal.isName4 = unknown_isName; + e->normal.isNmstrt2 = unknown_isNmstrt; + e->normal.isNmstrt3 = unknown_isNmstrt; + e->normal.isNmstrt4 = unknown_isNmstrt; + e->normal.isInvalid2 = unknown_isInvalid; + e->normal.isInvalid3 = unknown_isInvalid; + e->normal.isInvalid4 = unknown_isInvalid; + } + e->normal.enc.utf8Convert = unknown_toUtf8; + e->normal.enc.utf16Convert = unknown_toUtf16; + return &(e->normal.enc); +} + +/* If this enumeration is changed, getEncodingIndex and encodings +must also be changed. */ +enum { + UNKNOWN_ENC = -1, + ISO_8859_1_ENC = 0, + US_ASCII_ENC, + UTF_8_ENC, + UTF_16_ENC, + UTF_16BE_ENC, + UTF_16LE_ENC, + /* must match encodingNames up to here */ + NO_ENC +}; + +static const char KW_ISO_8859_1[] + = {ASCII_I, ASCII_S, ASCII_O, ASCII_MINUS, ASCII_8, ASCII_8, + ASCII_5, ASCII_9, ASCII_MINUS, ASCII_1, '\0'}; +static const char KW_US_ASCII[] + = {ASCII_U, ASCII_S, ASCII_MINUS, ASCII_A, ASCII_S, + ASCII_C, ASCII_I, ASCII_I, '\0'}; +static const char KW_UTF_8[] + = {ASCII_U, ASCII_T, ASCII_F, ASCII_MINUS, ASCII_8, '\0'}; +static const char KW_UTF_16[] + = {ASCII_U, ASCII_T, ASCII_F, ASCII_MINUS, ASCII_1, ASCII_6, '\0'}; +static const char KW_UTF_16BE[] + = {ASCII_U, ASCII_T, ASCII_F, ASCII_MINUS, ASCII_1, + ASCII_6, ASCII_B, ASCII_E, '\0'}; +static const char KW_UTF_16LE[] + = {ASCII_U, ASCII_T, ASCII_F, ASCII_MINUS, ASCII_1, + ASCII_6, ASCII_L, ASCII_E, '\0'}; + +static int FASTCALL +getEncodingIndex(const char *name) { + static const char *const encodingNames[] = { + KW_ISO_8859_1, KW_US_ASCII, KW_UTF_8, KW_UTF_16, KW_UTF_16BE, KW_UTF_16LE, + }; + int i; + if (name == NULL) + return NO_ENC; + for (i = 0; i < (int)(sizeof(encodingNames) / sizeof(encodingNames[0])); i++) + if (streqci(name, encodingNames[i])) + return i; + return UNKNOWN_ENC; +} + +/* For binary compatibility, we store the index of the encoding + specified at initialization in the isUtf16 member. +*/ + +#define INIT_ENC_INDEX(enc) ((int)(enc)->initEnc.isUtf16) +#define SET_INIT_ENC_INDEX(enc, i) ((enc)->initEnc.isUtf16 = (char)i) + +/* This is what detects the encoding. encodingTable maps from + encoding indices to encodings; INIT_ENC_INDEX(enc) is the index of + the external (protocol) specified encoding; state is + XML_CONTENT_STATE if we're parsing an external text entity, and + XML_PROLOG_STATE otherwise. +*/ + +static int +initScan(const ENCODING *const *encodingTable, const INIT_ENCODING *enc, + int state, const char *ptr, const char *end, const char **nextTokPtr) { + const ENCODING **encPtr; + + if (ptr >= end) + return XML_TOK_NONE; + encPtr = enc->encPtr; + if (ptr + 1 == end) { + /* only a single byte available for auto-detection */ +#ifndef XML_DTD /* FIXME */ + /* a well-formed document entity must have more than one byte */ + if (state != XML_CONTENT_STATE) + return XML_TOK_PARTIAL; +#endif + /* so we're parsing an external text entity... */ + /* if UTF-16 was externally specified, then we need at least 2 bytes */ + switch (INIT_ENC_INDEX(enc)) { + case UTF_16_ENC: + case UTF_16LE_ENC: + case UTF_16BE_ENC: + return XML_TOK_PARTIAL; + } + switch ((unsigned char)*ptr) { + case 0xFE: + case 0xFF: + case 0xEF: /* possibly first byte of UTF-8 BOM */ + if (INIT_ENC_INDEX(enc) == ISO_8859_1_ENC && state == XML_CONTENT_STATE) + break; + /* fall through */ + case 0x00: + case 0x3C: + return XML_TOK_PARTIAL; + } + } else { + switch (((unsigned char)ptr[0] << 8) | (unsigned char)ptr[1]) { + case 0xFEFF: + if (INIT_ENC_INDEX(enc) == ISO_8859_1_ENC && state == XML_CONTENT_STATE) + break; + *nextTokPtr = ptr + 2; + *encPtr = encodingTable[UTF_16BE_ENC]; + return XML_TOK_BOM; + /* 00 3C is handled in the default case */ + case 0x3C00: + if ((INIT_ENC_INDEX(enc) == UTF_16BE_ENC + || INIT_ENC_INDEX(enc) == UTF_16_ENC) + && state == XML_CONTENT_STATE) + break; + *encPtr = encodingTable[UTF_16LE_ENC]; + return XmlTok(*encPtr, state, ptr, end, nextTokPtr); + case 0xFFFE: + if (INIT_ENC_INDEX(enc) == ISO_8859_1_ENC && state == XML_CONTENT_STATE) + break; + *nextTokPtr = ptr + 2; + *encPtr = encodingTable[UTF_16LE_ENC]; + return XML_TOK_BOM; + case 0xEFBB: + /* Maybe a UTF-8 BOM (EF BB BF) */ + /* If there's an explicitly specified (external) encoding + of ISO-8859-1 or some flavour of UTF-16 + and this is an external text entity, + don't look for the BOM, + because it might be a legal data. + */ + if (state == XML_CONTENT_STATE) { + int e = INIT_ENC_INDEX(enc); + if (e == ISO_8859_1_ENC || e == UTF_16BE_ENC || e == UTF_16LE_ENC + || e == UTF_16_ENC) + break; + } + if (ptr + 2 == end) + return XML_TOK_PARTIAL; + if ((unsigned char)ptr[2] == 0xBF) { + *nextTokPtr = ptr + 3; + *encPtr = encodingTable[UTF_8_ENC]; + return XML_TOK_BOM; + } + break; + default: + if (ptr[0] == '\0') { + /* 0 isn't a legal data character. Furthermore a document + entity can only start with ASCII characters. So the only + way this can fail to be big-endian UTF-16 if it it's an + external parsed general entity that's labelled as + UTF-16LE. + */ + if (state == XML_CONTENT_STATE && INIT_ENC_INDEX(enc) == UTF_16LE_ENC) + break; + *encPtr = encodingTable[UTF_16BE_ENC]; + return XmlTok(*encPtr, state, ptr, end, nextTokPtr); + } else if (ptr[1] == '\0') { + /* We could recover here in the case: + - parsing an external entity + - second byte is 0 + - no externally specified encoding + - no encoding declaration + by assuming UTF-16LE. But we don't, because this would mean when + presented just with a single byte, we couldn't reliably determine + whether we needed further bytes. + */ + if (state == XML_CONTENT_STATE) + break; + *encPtr = encodingTable[UTF_16LE_ENC]; + return XmlTok(*encPtr, state, ptr, end, nextTokPtr); + } + break; + } + } + *encPtr = encodingTable[INIT_ENC_INDEX(enc)]; + return XmlTok(*encPtr, state, ptr, end, nextTokPtr); +} + +#define NS(x) x +#define ns(x) x +#define XML_TOK_NS_C +#include "xmltok_ns.c" +#undef XML_TOK_NS_C +#undef NS +#undef ns + +#ifdef XML_NS + +# define NS(x) x##NS +# define ns(x) x##_ns + +# define XML_TOK_NS_C +# include "xmltok_ns.c" +# undef XML_TOK_NS_C + +# undef NS +# undef ns + +ENCODING * +XmlInitUnknownEncodingNS(void *mem, int *table, CONVERTER convert, + void *userData) { + ENCODING *enc = XmlInitUnknownEncoding(mem, table, convert, userData); + if (enc) + ((struct normal_encoding *)enc)->type[ASCII_COLON] = BT_COLON; + return enc; +} + +#endif /* XML_NS */ diff --git a/source/externals/expat/src/xmltok.cc b/source/externals/expat/src/xmltok.cc deleted file mode 100644 index 4089cb2bf0..0000000000 --- a/source/externals/expat/src/xmltok.cc +++ /dev/null @@ -1,1656 +0,0 @@ -/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. -*/ - -#if defined(__clang__) || defined(__GNUC__) -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wmissing-field-initializers" -#endif - -#include - -#ifdef COMPILED_FROM_DSP -#include "winconfig.h" -#elif defined(MACOS_CLASSIC) -#include "macconfig.h" -#elif defined(__amigaos__) -#include "amigaconfig.h" -#elif defined(__WATCOMC__) -#include "watcomconfig.h" -#else -#ifdef HAVE_EXPAT_CONFIG_H -#include -#endif -#endif /* ndef COMPILED_FROM_DSP */ - -#include "expat_external.h" -#include "internal.h" -#include "xmltok.h" -#include "nametab.h" - -#ifdef XML_DTD -#define IGNORE_SECTION_TOK_VTABLE , PREFIX(ignoreSectionTok) -#else -#define IGNORE_SECTION_TOK_VTABLE /* as nothing */ -#endif - -#define VTABLE1 \ - { PREFIX(prologTok), PREFIX(contentTok), \ - PREFIX(cdataSectionTok) IGNORE_SECTION_TOK_VTABLE }, \ - { PREFIX(attributeValueTok), PREFIX(entityValueTok) }, \ - PREFIX(sameName), \ - PREFIX(nameMatchesAscii), \ - PREFIX(nameLength), \ - PREFIX(skipS), \ - PREFIX(getAtts), \ - PREFIX(charRefNumber), \ - PREFIX(predefinedEntityName), \ - PREFIX(updatePosition), \ - PREFIX(isPublicId) - -#define VTABLE VTABLE1, PREFIX(toUtf8), PREFIX(toUtf16) - -#define UCS2_GET_NAMING(pages, hi, lo) \ - (namingBitmap[(pages[hi] << 3) + ((lo) >> 5)] & (1 << ((lo) & 0x1F))) - -/* A 2 byte UTF-8 representation splits the characters 11 bits between - the bottom 5 and 6 bits of the bytes. We need 8 bits to index into - pages, 3 bits to add to that index and 5 bits to generate the mask. -*/ -#define UTF8_GET_NAMING2(pages, byte) \ - (namingBitmap[((pages)[(((byte)[0]) >> 2) & 7] << 3) \ - + ((((byte)[0]) & 3) << 1) \ - + ((((byte)[1]) >> 5) & 1)] \ - & (1 << (((byte)[1]) & 0x1F))) - -/* A 3 byte UTF-8 representation splits the characters 16 bits between - the bottom 4, 6 and 6 bits of the bytes. We need 8 bits to index - into pages, 3 bits to add to that index and 5 bits to generate the - mask. -*/ -#define UTF8_GET_NAMING3(pages, byte) \ - (namingBitmap[((pages)[((((byte)[0]) & 0xF) << 4) \ - + ((((byte)[1]) >> 2) & 0xF)] \ - << 3) \ - + ((((byte)[1]) & 3) << 1) \ - + ((((byte)[2]) >> 5) & 1)] \ - & (1 << (((byte)[2]) & 0x1F))) - -#define UTF8_GET_NAMING(pages, p, n) \ - ((n) == 2 \ - ? UTF8_GET_NAMING2(pages, (const unsigned char *)(p)) \ - : ((n) == 3 \ - ? UTF8_GET_NAMING3(pages, (const unsigned char *)(p)) \ - : 0)) - -/* Detection of invalid UTF-8 sequences is based on Table 3.1B - of Unicode 3.2: http://www.unicode.org/unicode/reports/tr28/ - with the additional restriction of not allowing the Unicode - code points 0xFFFF and 0xFFFE (sequences EF,BF,BF and EF,BF,BE). - Implementation details: - (A & 0x80) == 0 means A < 0x80 - and - (A & 0xC0) == 0xC0 means A > 0xBF -*/ - -#define UTF8_INVALID2(p) \ - ((*p) < 0xC2 || ((p)[1] & 0x80) == 0 || ((p)[1] & 0xC0) == 0xC0) - -#define UTF8_INVALID3(p) \ - (((p)[2] & 0x80) == 0 \ - || \ - ((*p) == 0xEF && (p)[1] == 0xBF \ - ? \ - (p)[2] > 0xBD \ - : \ - ((p)[2] & 0xC0) == 0xC0) \ - || \ - ((*p) == 0xE0 \ - ? \ - (p)[1] < 0xA0 || ((p)[1] & 0xC0) == 0xC0 \ - : \ - ((p)[1] & 0x80) == 0 \ - || \ - ((*p) == 0xED ? (p)[1] > 0x9F : ((p)[1] & 0xC0) == 0xC0))) - -#define UTF8_INVALID4(p) \ - (((p)[3] & 0x80) == 0 || ((p)[3] & 0xC0) == 0xC0 \ - || \ - ((p)[2] & 0x80) == 0 || ((p)[2] & 0xC0) == 0xC0 \ - || \ - ((*p) == 0xF0 \ - ? \ - (p)[1] < 0x90 || ((p)[1] & 0xC0) == 0xC0 \ - : \ - ((p)[1] & 0x80) == 0 \ - || \ - ((*p) == 0xF4 ? (p)[1] > 0x8F : ((p)[1] & 0xC0) == 0xC0))) - -static int PTRFASTCALL -isNever(const ENCODING *enc, const char *p) -{ - return 0; -} - -static int PTRFASTCALL -utf8_isName2(const ENCODING *enc, const char *p) -{ - return UTF8_GET_NAMING2(namePages, (const unsigned char *)p); -} - -static int PTRFASTCALL -utf8_isName3(const ENCODING *enc, const char *p) -{ - return UTF8_GET_NAMING3(namePages, (const unsigned char *)p); -} - -#define utf8_isName4 isNever - -static int PTRFASTCALL -utf8_isNmstrt2(const ENCODING *enc, const char *p) -{ - return UTF8_GET_NAMING2(nmstrtPages, (const unsigned char *)p); -} - -static int PTRFASTCALL -utf8_isNmstrt3(const ENCODING *enc, const char *p) -{ - return UTF8_GET_NAMING3(nmstrtPages, (const unsigned char *)p); -} - -#define utf8_isNmstrt4 isNever - -static int PTRFASTCALL -utf8_isInvalid2(const ENCODING *enc, const char *p) -{ - return UTF8_INVALID2((const unsigned char *)p); -} - -static int PTRFASTCALL -utf8_isInvalid3(const ENCODING *enc, const char *p) -{ - return UTF8_INVALID3((const unsigned char *)p); -} - -static int PTRFASTCALL -utf8_isInvalid4(const ENCODING *enc, const char *p) -{ - return UTF8_INVALID4((const unsigned char *)p); -} - -struct normal_encoding { - ENCODING enc; - unsigned char type[256]; -#ifdef XML_MIN_SIZE - int (PTRFASTCALL *byteType)(const ENCODING *, const char *); - int (PTRFASTCALL *isNameMin)(const ENCODING *, const char *); - int (PTRFASTCALL *isNmstrtMin)(const ENCODING *, const char *); - int (PTRFASTCALL *byteToAscii)(const ENCODING *, const char *); - int (PTRCALL *charMatches)(const ENCODING *, const char *, int); -#endif /* XML_MIN_SIZE */ - int (PTRFASTCALL *isName2)(const ENCODING *, const char *); - int (PTRFASTCALL *isName3)(const ENCODING *, const char *); - int (PTRFASTCALL *isName4)(const ENCODING *, const char *); - int (PTRFASTCALL *isNmstrt2)(const ENCODING *, const char *); - int (PTRFASTCALL *isNmstrt3)(const ENCODING *, const char *); - int (PTRFASTCALL *isNmstrt4)(const ENCODING *, const char *); - int (PTRFASTCALL *isInvalid2)(const ENCODING *, const char *); - int (PTRFASTCALL *isInvalid3)(const ENCODING *, const char *); - int (PTRFASTCALL *isInvalid4)(const ENCODING *, const char *); -}; - -#define AS_NORMAL_ENCODING(enc) ((const struct normal_encoding *) (enc)) - -#ifdef XML_MIN_SIZE - -#define STANDARD_VTABLE(E) \ - E ## byteType, \ - E ## isNameMin, \ - E ## isNmstrtMin, \ - E ## byteToAscii, \ - E ## charMatches, - -#else - -#define STANDARD_VTABLE(E) /* as nothing */ - -#endif - -#define NORMAL_VTABLE(E) \ - E ## isName2, \ - E ## isName3, \ - E ## isName4, \ - E ## isNmstrt2, \ - E ## isNmstrt3, \ - E ## isNmstrt4, \ - E ## isInvalid2, \ - E ## isInvalid3, \ - E ## isInvalid4 - -static int FASTCALL checkCharRefNumber(int); - -#include "xmltok_impl.h" -#include "ascii.h" - -#ifdef XML_MIN_SIZE -#define sb_isNameMin isNever -#define sb_isNmstrtMin isNever -#endif - -#ifdef XML_MIN_SIZE -#define MINBPC(enc) ((enc)->minBytesPerChar) -#else -/* minimum bytes per character */ -#define MINBPC(enc) 1 -#endif - -#define SB_BYTE_TYPE(enc, p) \ - (((struct normal_encoding *)(enc))->type[(unsigned char)*(p)]) - -#ifdef XML_MIN_SIZE -static int PTRFASTCALL -sb_byteType(const ENCODING *enc, const char *p) -{ - return SB_BYTE_TYPE(enc, p); -} -#define BYTE_TYPE(enc, p) \ - (AS_NORMAL_ENCODING(enc)->byteType(enc, p)) -#else -#define BYTE_TYPE(enc, p) SB_BYTE_TYPE(enc, p) -#endif - -#ifdef XML_MIN_SIZE -#define BYTE_TO_ASCII(enc, p) \ - (AS_NORMAL_ENCODING(enc)->byteToAscii(enc, p)) -static int PTRFASTCALL -sb_byteToAscii(const ENCODING *enc, const char *p) -{ - return *p; -} -#else -#define BYTE_TO_ASCII(enc, p) (*(p)) -#endif - -#define IS_NAME_CHAR(enc, p, n) \ - (AS_NORMAL_ENCODING(enc)->isName ## n(enc, p)) -#define IS_NMSTRT_CHAR(enc, p, n) \ - (AS_NORMAL_ENCODING(enc)->isNmstrt ## n(enc, p)) -#define IS_INVALID_CHAR(enc, p, n) \ - (AS_NORMAL_ENCODING(enc)->isInvalid ## n(enc, p)) - -#ifdef XML_MIN_SIZE -#define IS_NAME_CHAR_MINBPC(enc, p) \ - (AS_NORMAL_ENCODING(enc)->isNameMin(enc, p)) -#define IS_NMSTRT_CHAR_MINBPC(enc, p) \ - (AS_NORMAL_ENCODING(enc)->isNmstrtMin(enc, p)) -#else -#define IS_NAME_CHAR_MINBPC(enc, p) (0) -#define IS_NMSTRT_CHAR_MINBPC(enc, p) (0) -#endif - -#ifdef XML_MIN_SIZE -#define CHAR_MATCHES(enc, p, c) \ - (AS_NORMAL_ENCODING(enc)->charMatches(enc, p, c)) -static int PTRCALL -sb_charMatches(const ENCODING *enc, const char *p, int c) -{ - return *p == c; -} -#else -/* c is an ASCII character */ -#define CHAR_MATCHES(enc, p, c) (*(p) == c) -#endif - -#define PREFIX(ident) normal_ ## ident -#define XML_TOK_IMPL_C -#include "xmltok_impl.cc" -#undef XML_TOK_IMPL_C - -#undef MINBPC -#undef BYTE_TYPE -#undef BYTE_TO_ASCII -#undef CHAR_MATCHES -#undef IS_NAME_CHAR -#undef IS_NAME_CHAR_MINBPC -#undef IS_NMSTRT_CHAR -#undef IS_NMSTRT_CHAR_MINBPC -#undef IS_INVALID_CHAR - -enum { /* UTF8_cvalN is value of masked first byte of N byte sequence */ - UTF8_cval1 = 0x00, - UTF8_cval2 = 0xc0, - UTF8_cval3 = 0xe0, - UTF8_cval4 = 0xf0 -}; - -static void PTRCALL -utf8_toUtf8(const ENCODING *enc, - const char **fromP, const char *fromLim, - char **toP, const char *toLim) -{ - char *to; - const char *from; - if (fromLim - *fromP > toLim - *toP) { - /* Avoid copying partial characters. */ - for (fromLim = *fromP + (toLim - *toP); fromLim > *fromP; fromLim--) - if (((unsigned char)fromLim[-1] & 0xc0) != 0x80) - break; - } - for (to = *toP, from = *fromP; from != fromLim; from++, to++) - *to = *from; - *fromP = from; - *toP = to; -} - -static void PTRCALL -utf8_toUtf16(const ENCODING *enc, - const char **fromP, const char *fromLim, - unsigned short **toP, const unsigned short *toLim) -{ - unsigned short *to = *toP; - const char *from = *fromP; - while (from != fromLim && to != toLim) { - switch (((struct normal_encoding *)enc)->type[(unsigned char)*from]) { - case BT_LEAD2: - *to++ = (unsigned short)(((from[0] & 0x1f) << 6) | (from[1] & 0x3f)); - from += 2; - break; - case BT_LEAD3: - *to++ = (unsigned short)(((from[0] & 0xf) << 12) - | ((from[1] & 0x3f) << 6) | (from[2] & 0x3f)); - from += 3; - break; - case BT_LEAD4: - { - unsigned long n; - if (to + 1 == toLim) - goto after; - n = ((from[0] & 0x7) << 18) | ((from[1] & 0x3f) << 12) - | ((from[2] & 0x3f) << 6) | (from[3] & 0x3f); - n -= 0x10000; - to[0] = (unsigned short)((n >> 10) | 0xD800); - to[1] = (unsigned short)((n & 0x3FF) | 0xDC00); - to += 2; - from += 4; - } - break; - default: - *to++ = *from++; - break; - } - } -after: - *fromP = from; - *toP = to; -} - -#ifdef XML_NS -static const struct normal_encoding utf8_encoding_ns = { - { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 }, - { -#include "asciitab.h" -#include "utf8tab.h" - }, - STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_) -}; -#endif - -static const struct normal_encoding utf8_encoding = { - { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 }, - { -#define BT_COLON BT_NMSTRT -#include "asciitab.h" -#undef BT_COLON -#include "utf8tab.h" - }, - STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_) -}; - -#ifdef XML_NS - -static const struct normal_encoding internal_utf8_encoding_ns = { - { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 }, - { -#include "iasciitab.h" -#include "utf8tab.h" - }, - STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_) -}; - -#endif - -static const struct normal_encoding internal_utf8_encoding = { - { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 }, - { -#define BT_COLON BT_NMSTRT -#include "iasciitab.h" -#undef BT_COLON -#include "utf8tab.h" - }, - STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_) -}; - -static void PTRCALL -latin1_toUtf8(const ENCODING *enc, - const char **fromP, const char *fromLim, - char **toP, const char *toLim) -{ - for (;;) { - unsigned char c; - if (*fromP == fromLim) - break; - c = (unsigned char)**fromP; - if (c & 0x80) { - if (toLim - *toP < 2) - break; - *(*toP)++ = (char)((c >> 6) | UTF8_cval2); - *(*toP)++ = (char)((c & 0x3f) | 0x80); - (*fromP)++; - } - else { - if (*toP == toLim) - break; - *(*toP)++ = *(*fromP)++; - } - } -} - -static void PTRCALL -latin1_toUtf16(const ENCODING *enc, - const char **fromP, const char *fromLim, - unsigned short **toP, const unsigned short *toLim) -{ - while (*fromP != fromLim && *toP != toLim) - *(*toP)++ = (unsigned char)*(*fromP)++; -} - -#ifdef XML_NS - -static const struct normal_encoding latin1_encoding_ns = { - { VTABLE1, latin1_toUtf8, latin1_toUtf16, 1, 0, 0 }, - { -#include "asciitab.h" -#include "latin1tab.h" - }, - STANDARD_VTABLE(sb_) -}; - -#endif - -static const struct normal_encoding latin1_encoding = { - { VTABLE1, latin1_toUtf8, latin1_toUtf16, 1, 0, 0 }, - { -#define BT_COLON BT_NMSTRT -#include "asciitab.h" -#undef BT_COLON -#include "latin1tab.h" - }, - STANDARD_VTABLE(sb_) -}; - -static void PTRCALL -ascii_toUtf8(const ENCODING *enc, - const char **fromP, const char *fromLim, - char **toP, const char *toLim) -{ - while (*fromP != fromLim && *toP != toLim) - *(*toP)++ = *(*fromP)++; -} - -#ifdef XML_NS - -static const struct normal_encoding ascii_encoding_ns = { - { VTABLE1, ascii_toUtf8, latin1_toUtf16, 1, 1, 0 }, - { -#include "asciitab.h" -/* BT_NONXML == 0 */ - }, - STANDARD_VTABLE(sb_) -}; - -#endif - -static const struct normal_encoding ascii_encoding = { - { VTABLE1, ascii_toUtf8, latin1_toUtf16, 1, 1, 0 }, - { -#define BT_COLON BT_NMSTRT -#include "asciitab.h" -#undef BT_COLON -/* BT_NONXML == 0 */ - }, - STANDARD_VTABLE(sb_) -}; - -static int PTRFASTCALL -unicode_byte_type(char hi, char lo) -{ - switch ((unsigned char)hi) { - case 0xD8: case 0xD9: case 0xDA: case 0xDB: - return BT_LEAD4; - case 0xDC: case 0xDD: case 0xDE: case 0xDF: - return BT_TRAIL; - case 0xFF: - switch ((unsigned char)lo) { - case 0xFF: - case 0xFE: - return BT_NONXML; - } - break; - } - return BT_NONASCII; -} - -#define DEFINE_UTF16_TO_UTF8(E) \ -static void PTRCALL \ -E ## toUtf8(const ENCODING *enc, \ - const char **fromP, const char *fromLim, \ - char **toP, const char *toLim) \ -{ \ - const char *from; \ - for (from = *fromP; from != fromLim; from += 2) { \ - int plane; \ - unsigned char lo2; \ - unsigned char lo = GET_LO(from); \ - unsigned char hi = GET_HI(from); \ - switch (hi) { \ - case 0: \ - if (lo < 0x80) { \ - if (*toP == toLim) { \ - *fromP = from; \ - return; \ - } \ - *(*toP)++ = lo; \ - break; \ - } \ - /* fall through */ \ - case 0x1: case 0x2: case 0x3: \ - case 0x4: case 0x5: case 0x6: case 0x7: \ - if (toLim - *toP < 2) { \ - *fromP = from; \ - return; \ - } \ - *(*toP)++ = ((lo >> 6) | (hi << 2) | UTF8_cval2); \ - *(*toP)++ = ((lo & 0x3f) | 0x80); \ - break; \ - default: \ - if (toLim - *toP < 3) { \ - *fromP = from; \ - return; \ - } \ - /* 16 bits divided 4, 6, 6 amongst 3 bytes */ \ - *(*toP)++ = ((hi >> 4) | UTF8_cval3); \ - *(*toP)++ = (((hi & 0xf) << 2) | (lo >> 6) | 0x80); \ - *(*toP)++ = ((lo & 0x3f) | 0x80); \ - break; \ - case 0xD8: case 0xD9: case 0xDA: case 0xDB: \ - if (toLim - *toP < 4) { \ - *fromP = from; \ - return; \ - } \ - plane = (((hi & 0x3) << 2) | ((lo >> 6) & 0x3)) + 1; \ - *(*toP)++ = ((plane >> 2) | UTF8_cval4); \ - *(*toP)++ = (((lo >> 2) & 0xF) | ((plane & 0x3) << 4) | 0x80); \ - from += 2; \ - lo2 = GET_LO(from); \ - *(*toP)++ = (((lo & 0x3) << 4) \ - | ((GET_HI(from) & 0x3) << 2) \ - | (lo2 >> 6) \ - | 0x80); \ - *(*toP)++ = ((lo2 & 0x3f) | 0x80); \ - break; \ - } \ - } \ - *fromP = from; \ -} - -#define DEFINE_UTF16_TO_UTF16(E) \ -static void PTRCALL \ -E ## toUtf16(const ENCODING *enc, \ - const char **fromP, const char *fromLim, \ - unsigned short **toP, const unsigned short *toLim) \ -{ \ - /* Avoid copying first half only of surrogate */ \ - if (fromLim - *fromP > ((toLim - *toP) << 1) \ - && (GET_HI(fromLim - 2) & 0xF8) == 0xD8) \ - fromLim -= 2; \ - for (; *fromP != fromLim && *toP != toLim; *fromP += 2) \ - *(*toP)++ = (GET_HI(*fromP) << 8) | GET_LO(*fromP); \ -} - -#define SET2(ptr, ch) \ - (((ptr)[0] = ((ch) & 0xff)), ((ptr)[1] = ((ch) >> 8))) -#define GET_LO(ptr) ((unsigned char)(ptr)[0]) -#define GET_HI(ptr) ((unsigned char)(ptr)[1]) - -DEFINE_UTF16_TO_UTF8(little2_) -DEFINE_UTF16_TO_UTF16(little2_) - -#undef SET2 -#undef GET_LO -#undef GET_HI - -#define SET2(ptr, ch) \ - (((ptr)[0] = ((ch) >> 8)), ((ptr)[1] = ((ch) & 0xFF))) -#define GET_LO(ptr) ((unsigned char)(ptr)[1]) -#define GET_HI(ptr) ((unsigned char)(ptr)[0]) - -DEFINE_UTF16_TO_UTF8(big2_) -DEFINE_UTF16_TO_UTF16(big2_) - -#undef SET2 -#undef GET_LO -#undef GET_HI - -#define LITTLE2_BYTE_TYPE(enc, p) \ - ((p)[1] == 0 \ - ? ((struct normal_encoding *)(enc))->type[(unsigned char)*(p)] \ - : unicode_byte_type((p)[1], (p)[0])) -#define LITTLE2_BYTE_TO_ASCII(enc, p) ((p)[1] == 0 ? (p)[0] : -1) -#define LITTLE2_CHAR_MATCHES(enc, p, c) ((p)[1] == 0 && (p)[0] == c) -#define LITTLE2_IS_NAME_CHAR_MINBPC(enc, p) \ - UCS2_GET_NAMING(namePages, (unsigned char)p[1], (unsigned char)p[0]) -#define LITTLE2_IS_NMSTRT_CHAR_MINBPC(enc, p) \ - UCS2_GET_NAMING(nmstrtPages, (unsigned char)p[1], (unsigned char)p[0]) - -#ifdef XML_MIN_SIZE - -static int PTRFASTCALL -little2_byteType(const ENCODING *enc, const char *p) -{ - return LITTLE2_BYTE_TYPE(enc, p); -} - -static int PTRFASTCALL -little2_byteToAscii(const ENCODING *enc, const char *p) -{ - return LITTLE2_BYTE_TO_ASCII(enc, p); -} - -static int PTRCALL -little2_charMatches(const ENCODING *enc, const char *p, int c) -{ - return LITTLE2_CHAR_MATCHES(enc, p, c); -} - -static int PTRFASTCALL -little2_isNameMin(const ENCODING *enc, const char *p) -{ - return LITTLE2_IS_NAME_CHAR_MINBPC(enc, p); -} - -static int PTRFASTCALL -little2_isNmstrtMin(const ENCODING *enc, const char *p) -{ - return LITTLE2_IS_NMSTRT_CHAR_MINBPC(enc, p); -} - -#undef VTABLE -#define VTABLE VTABLE1, little2_toUtf8, little2_toUtf16 - -#else /* not XML_MIN_SIZE */ - -#undef PREFIX -#define PREFIX(ident) little2_ ## ident -#define MINBPC(enc) 2 -/* CHAR_MATCHES is guaranteed to have MINBPC bytes available. */ -#define BYTE_TYPE(enc, p) LITTLE2_BYTE_TYPE(enc, p) -#define BYTE_TO_ASCII(enc, p) LITTLE2_BYTE_TO_ASCII(enc, p) -#define CHAR_MATCHES(enc, p, c) LITTLE2_CHAR_MATCHES(enc, p, c) -#define IS_NAME_CHAR(enc, p, n) 0 -#define IS_NAME_CHAR_MINBPC(enc, p) LITTLE2_IS_NAME_CHAR_MINBPC(enc, p) -#define IS_NMSTRT_CHAR(enc, p, n) (0) -#define IS_NMSTRT_CHAR_MINBPC(enc, p) LITTLE2_IS_NMSTRT_CHAR_MINBPC(enc, p) - -#define XML_TOK_IMPL_C -#include "xmltok_impl.cc" -#undef XML_TOK_IMPL_C - -#undef MINBPC -#undef BYTE_TYPE -#undef BYTE_TO_ASCII -#undef CHAR_MATCHES -#undef IS_NAME_CHAR -#undef IS_NAME_CHAR_MINBPC -#undef IS_NMSTRT_CHAR -#undef IS_NMSTRT_CHAR_MINBPC -#undef IS_INVALID_CHAR - -#endif /* not XML_MIN_SIZE */ - -#ifdef XML_NS - -static const struct normal_encoding little2_encoding_ns = { - { VTABLE, 2, 0, -#if BYTEORDER == 1234 - 1 -#else - 0 -#endif - }, - { -#include "asciitab.h" -#include "latin1tab.h" - }, - STANDARD_VTABLE(little2_) -}; - -#endif - -static const struct normal_encoding little2_encoding = { - { VTABLE, 2, 0, -#if BYTEORDER == 1234 - 1 -#else - 0 -#endif - }, - { -#define BT_COLON BT_NMSTRT -#include "asciitab.h" -#undef BT_COLON -#include "latin1tab.h" - }, - STANDARD_VTABLE(little2_) -}; - -#if BYTEORDER != 4321 - -#ifdef XML_NS - -static const struct normal_encoding internal_little2_encoding_ns = { - { VTABLE, 2, 0, 1 }, - { -#include "iasciitab.h" -#include "latin1tab.h" - }, - STANDARD_VTABLE(little2_) -}; - -#endif - -static const struct normal_encoding internal_little2_encoding = { - { VTABLE, 2, 0, 1 }, - { -#define BT_COLON BT_NMSTRT -#include "iasciitab.h" -#undef BT_COLON -#include "latin1tab.h" - }, - STANDARD_VTABLE(little2_) -}; - -#endif - - -#define BIG2_BYTE_TYPE(enc, p) \ - ((p)[0] == 0 \ - ? ((struct normal_encoding *)(enc))->type[(unsigned char)(p)[1]] \ - : unicode_byte_type((p)[0], (p)[1])) -#define BIG2_BYTE_TO_ASCII(enc, p) ((p)[0] == 0 ? (p)[1] : -1) -#define BIG2_CHAR_MATCHES(enc, p, c) ((p)[0] == 0 && (p)[1] == c) -#define BIG2_IS_NAME_CHAR_MINBPC(enc, p) \ - UCS2_GET_NAMING(namePages, (unsigned char)p[0], (unsigned char)p[1]) -#define BIG2_IS_NMSTRT_CHAR_MINBPC(enc, p) \ - UCS2_GET_NAMING(nmstrtPages, (unsigned char)p[0], (unsigned char)p[1]) - -#ifdef XML_MIN_SIZE - -static int PTRFASTCALL -big2_byteType(const ENCODING *enc, const char *p) -{ - return BIG2_BYTE_TYPE(enc, p); -} - -static int PTRFASTCALL -big2_byteToAscii(const ENCODING *enc, const char *p) -{ - return BIG2_BYTE_TO_ASCII(enc, p); -} - -static int PTRCALL -big2_charMatches(const ENCODING *enc, const char *p, int c) -{ - return BIG2_CHAR_MATCHES(enc, p, c); -} - -static int PTRFASTCALL -big2_isNameMin(const ENCODING *enc, const char *p) -{ - return BIG2_IS_NAME_CHAR_MINBPC(enc, p); -} - -static int PTRFASTCALL -big2_isNmstrtMin(const ENCODING *enc, const char *p) -{ - return BIG2_IS_NMSTRT_CHAR_MINBPC(enc, p); -} - -#undef VTABLE -#define VTABLE VTABLE1, big2_toUtf8, big2_toUtf16 - -#else /* not XML_MIN_SIZE */ - -#undef PREFIX -#define PREFIX(ident) big2_ ## ident -#define MINBPC(enc) 2 -/* CHAR_MATCHES is guaranteed to have MINBPC bytes available. */ -#define BYTE_TYPE(enc, p) BIG2_BYTE_TYPE(enc, p) -#define BYTE_TO_ASCII(enc, p) BIG2_BYTE_TO_ASCII(enc, p) -#define CHAR_MATCHES(enc, p, c) BIG2_CHAR_MATCHES(enc, p, c) -#define IS_NAME_CHAR(enc, p, n) 0 -#define IS_NAME_CHAR_MINBPC(enc, p) BIG2_IS_NAME_CHAR_MINBPC(enc, p) -#define IS_NMSTRT_CHAR(enc, p, n) (0) -#define IS_NMSTRT_CHAR_MINBPC(enc, p) BIG2_IS_NMSTRT_CHAR_MINBPC(enc, p) - -#define XML_TOK_IMPL_C -#include "xmltok_impl.cc" -#undef XML_TOK_IMPL_C - -#undef MINBPC -#undef BYTE_TYPE -#undef BYTE_TO_ASCII -#undef CHAR_MATCHES -#undef IS_NAME_CHAR -#undef IS_NAME_CHAR_MINBPC -#undef IS_NMSTRT_CHAR -#undef IS_NMSTRT_CHAR_MINBPC -#undef IS_INVALID_CHAR - -#endif /* not XML_MIN_SIZE */ - -#ifdef XML_NS - -static const struct normal_encoding big2_encoding_ns = { - { VTABLE, 2, 0, -#if BYTEORDER == 4321 - 1 -#else - 0 -#endif - }, - { -#include "asciitab.h" -#include "latin1tab.h" - }, - STANDARD_VTABLE(big2_) -}; - -#endif - -static const struct normal_encoding big2_encoding = { - { VTABLE, 2, 0, -#if BYTEORDER == 4321 - 1 -#else - 0 -#endif - }, - { -#define BT_COLON BT_NMSTRT -#include "asciitab.h" -#undef BT_COLON -#include "latin1tab.h" - }, - STANDARD_VTABLE(big2_) -}; - -#if BYTEORDER != 1234 - -#ifdef XML_NS - -static const struct normal_encoding internal_big2_encoding_ns = { - { VTABLE, 2, 0, 1 }, - { -#include "iasciitab.h" -#include "latin1tab.h" - }, - STANDARD_VTABLE(big2_) -}; - -#endif - -static const struct normal_encoding internal_big2_encoding = { - { VTABLE, 2, 0, 1 }, - { -#define BT_COLON BT_NMSTRT -#include "iasciitab.h" -#undef BT_COLON -#include "latin1tab.h" - }, - STANDARD_VTABLE(big2_) -}; - -#endif - -#undef PREFIX - -static int FASTCALL -streqci(const char *s1, const char *s2) -{ - for (;;) { - char c1 = *s1++; - char c2 = *s2++; - if (ASCII_a <= c1 && c1 <= ASCII_z) - c1 += ASCII_A - ASCII_a; - if (ASCII_a <= c2 && c2 <= ASCII_z) - c2 += ASCII_A - ASCII_a; - if (c1 != c2) - return 0; - if (!c1) - break; - } - return 1; -} - -static void PTRCALL -initUpdatePosition(const ENCODING *enc, const char *ptr, - const char *end, POSITION *pos) -{ - normal_updatePosition(&utf8_encoding.enc, ptr, end, pos); -} - -static int -toAscii(const ENCODING *enc, const char *ptr, const char *end) -{ - char buf[1]; - char *p = buf; - XmlUtf8Convert(enc, &ptr, end, &p, p + 1); - if (p == buf) - return -1; - else - return buf[0]; -} - -static int FASTCALL -isSpace(int c) -{ - switch (c) { - case 0x20: - case 0xD: - case 0xA: - case 0x9: - return 1; - } - return 0; -} - -/* Return 1 if there's just optional white space or there's an S - followed by name=val. -*/ -static int -parsePseudoAttribute(const ENCODING *enc, - const char *ptr, - const char *end, - const char **namePtr, - const char **nameEndPtr, - const char **valPtr, - const char **nextTokPtr) -{ - int c; - char open; - if (ptr == end) { - *namePtr = NULL; - return 1; - } - if (!isSpace(toAscii(enc, ptr, end))) { - *nextTokPtr = ptr; - return 0; - } - do { - ptr += enc->minBytesPerChar; - } while (isSpace(toAscii(enc, ptr, end))); - if (ptr == end) { - *namePtr = NULL; - return 1; - } - *namePtr = ptr; - for (;;) { - c = toAscii(enc, ptr, end); - if (c == -1) { - *nextTokPtr = ptr; - return 0; - } - if (c == ASCII_EQUALS) { - *nameEndPtr = ptr; - break; - } - if (isSpace(c)) { - *nameEndPtr = ptr; - do { - ptr += enc->minBytesPerChar; - } while (isSpace(c = toAscii(enc, ptr, end))); - if (c != ASCII_EQUALS) { - *nextTokPtr = ptr; - return 0; - } - break; - } - ptr += enc->minBytesPerChar; - } - if (ptr == *namePtr) { - *nextTokPtr = ptr; - return 0; - } - ptr += enc->minBytesPerChar; - c = toAscii(enc, ptr, end); - while (isSpace(c)) { - ptr += enc->minBytesPerChar; - c = toAscii(enc, ptr, end); - } - if (c != ASCII_QUOT && c != ASCII_APOS) { - *nextTokPtr = ptr; - return 0; - } - open = (char)c; - ptr += enc->minBytesPerChar; - *valPtr = ptr; - for (;; ptr += enc->minBytesPerChar) { - c = toAscii(enc, ptr, end); - if (c == open) - break; - if (!(ASCII_a <= c && c <= ASCII_z) - && !(ASCII_A <= c && c <= ASCII_Z) - && !(ASCII_0 <= c && c <= ASCII_9) - && c != ASCII_PERIOD - && c != ASCII_MINUS - && c != ASCII_UNDERSCORE) { - *nextTokPtr = ptr; - return 0; - } - } - *nextTokPtr = ptr + enc->minBytesPerChar; - return 1; -} - -static const char KW_version[] = { - ASCII_v, ASCII_e, ASCII_r, ASCII_s, ASCII_i, ASCII_o, ASCII_n, '\0' -}; - -static const char KW_encoding[] = { - ASCII_e, ASCII_n, ASCII_c, ASCII_o, ASCII_d, ASCII_i, ASCII_n, ASCII_g, '\0' -}; - -static const char KW_standalone[] = { - ASCII_s, ASCII_t, ASCII_a, ASCII_n, ASCII_d, ASCII_a, ASCII_l, ASCII_o, - ASCII_n, ASCII_e, '\0' -}; - -static const char KW_yes[] = { - ASCII_y, ASCII_e, ASCII_s, '\0' -}; - -static const char KW_no[] = { - ASCII_n, ASCII_o, '\0' -}; - -static int -doParseXmlDecl(const ENCODING *(*encodingFinder)(const ENCODING *, - const char *, - const char *), - int isGeneralTextEntity, - const ENCODING *enc, - const char *ptr, - const char *end, - const char **badPtr, - const char **versionPtr, - const char **versionEndPtr, - const char **encodingName, - const ENCODING **encoding, - int *standalone) -{ - const char *val = NULL; - const char *name = NULL; - const char *nameEnd = NULL; - ptr += 5 * enc->minBytesPerChar; - end -= 2 * enc->minBytesPerChar; - if (!parsePseudoAttribute(enc, ptr, end, &name, &nameEnd, &val, &ptr) - || !name) { - *badPtr = ptr; - return 0; - } - if (!XmlNameMatchesAscii(enc, name, nameEnd, KW_version)) { - if (!isGeneralTextEntity) { - *badPtr = name; - return 0; - } - } - else { - if (versionPtr) - *versionPtr = val; - if (versionEndPtr) - *versionEndPtr = ptr; - if (!parsePseudoAttribute(enc, ptr, end, &name, &nameEnd, &val, &ptr)) { - *badPtr = ptr; - return 0; - } - if (!name) { - if (isGeneralTextEntity) { - /* a TextDecl must have an EncodingDecl */ - *badPtr = ptr; - return 0; - } - return 1; - } - } - if (XmlNameMatchesAscii(enc, name, nameEnd, KW_encoding)) { - int c = toAscii(enc, val, end); - if (!(ASCII_a <= c && c <= ASCII_z) && !(ASCII_A <= c && c <= ASCII_Z)) { - *badPtr = val; - return 0; - } - if (encodingName) - *encodingName = val; - if (encoding) - *encoding = encodingFinder(enc, val, ptr - enc->minBytesPerChar); - if (!parsePseudoAttribute(enc, ptr, end, &name, &nameEnd, &val, &ptr)) { - *badPtr = ptr; - return 0; - } - if (!name) - return 1; - } - if (!XmlNameMatchesAscii(enc, name, nameEnd, KW_standalone) - || isGeneralTextEntity) { - *badPtr = name; - return 0; - } - if (XmlNameMatchesAscii(enc, val, ptr - enc->minBytesPerChar, KW_yes)) { - if (standalone) - *standalone = 1; - } - else if (XmlNameMatchesAscii(enc, val, ptr - enc->minBytesPerChar, KW_no)) { - if (standalone) - *standalone = 0; - } - else { - *badPtr = val; - return 0; - } - while (isSpace(toAscii(enc, ptr, end))) - ptr += enc->minBytesPerChar; - if (ptr != end) { - *badPtr = ptr; - return 0; - } - return 1; -} - -static int FASTCALL -checkCharRefNumber(int result) -{ - switch (result >> 8) { - case 0xD8: case 0xD9: case 0xDA: case 0xDB: - case 0xDC: case 0xDD: case 0xDE: case 0xDF: - return -1; - case 0: - if (latin1_encoding.type[result] == BT_NONXML) - return -1; - break; - case 0xFF: - if (result == 0xFFFE || result == 0xFFFF) - return -1; - break; - } - return result; -} - -int FASTCALL -XmlUtf8Encode(int c, char *buf) -{ - enum { - /* minN is minimum legal resulting value for N byte sequence */ - min2 = 0x80, - min3 = 0x800, - min4 = 0x10000 - }; - - if (c < 0) - return 0; - if (c < min2) { - buf[0] = (char)(c | UTF8_cval1); - return 1; - } - if (c < min3) { - buf[0] = (char)((c >> 6) | UTF8_cval2); - buf[1] = (char)((c & 0x3f) | 0x80); - return 2; - } - if (c < min4) { - buf[0] = (char)((c >> 12) | UTF8_cval3); - buf[1] = (char)(((c >> 6) & 0x3f) | 0x80); - buf[2] = (char)((c & 0x3f) | 0x80); - return 3; - } - if (c < 0x110000) { - buf[0] = (char)((c >> 18) | UTF8_cval4); - buf[1] = (char)(((c >> 12) & 0x3f) | 0x80); - buf[2] = (char)(((c >> 6) & 0x3f) | 0x80); - buf[3] = (char)((c & 0x3f) | 0x80); - return 4; - } - return 0; -} - -int FASTCALL -XmlUtf16Encode(int charNum, unsigned short *buf) -{ - if (charNum < 0) - return 0; - if (charNum < 0x10000) { - buf[0] = (unsigned short)charNum; - return 1; - } - if (charNum < 0x110000) { - charNum -= 0x10000; - buf[0] = (unsigned short)((charNum >> 10) + 0xD800); - buf[1] = (unsigned short)((charNum & 0x3FF) + 0xDC00); - return 2; - } - return 0; -} - -struct unknown_encoding { - struct normal_encoding normal; - CONVERTER convert; - void *userData; - unsigned short utf16[256]; - char utf8[256][4]; -}; - -#define AS_UNKNOWN_ENCODING(enc) ((const struct unknown_encoding *) (enc)) - -int -XmlSizeOfUnknownEncoding(void) -{ - return sizeof(struct unknown_encoding); -} - -static int PTRFASTCALL -unknown_isName(const ENCODING *enc, const char *p) -{ - const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); - int c = uenc->convert(uenc->userData, p); - if (c & ~0xFFFF) - return 0; - return UCS2_GET_NAMING(namePages, c >> 8, c & 0xFF); -} - -static int PTRFASTCALL -unknown_isNmstrt(const ENCODING *enc, const char *p) -{ - const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); - int c = uenc->convert(uenc->userData, p); - if (c & ~0xFFFF) - return 0; - return UCS2_GET_NAMING(nmstrtPages, c >> 8, c & 0xFF); -} - -static int PTRFASTCALL -unknown_isInvalid(const ENCODING *enc, const char *p) -{ - const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); - int c = uenc->convert(uenc->userData, p); - return (c & ~0xFFFF) || checkCharRefNumber(c) < 0; -} - -static void PTRCALL -unknown_toUtf8(const ENCODING *enc, - const char **fromP, const char *fromLim, - char **toP, const char *toLim) -{ - const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); - char buf[XML_UTF8_ENCODE_MAX]; - for (;;) { - const char *utf8; - int n; - if (*fromP == fromLim) - break; - utf8 = uenc->utf8[(unsigned char)**fromP]; - n = *utf8++; - if (n == 0) { - int c = uenc->convert(uenc->userData, *fromP); - n = XmlUtf8Encode(c, buf); - if (n > toLim - *toP) - break; - utf8 = buf; - *fromP += (AS_NORMAL_ENCODING(enc)->type[(unsigned char)**fromP] - - (BT_LEAD2 - 2)); - } - else { - if (n > toLim - *toP) - break; - (*fromP)++; - } - do { - *(*toP)++ = *utf8++; - } while (--n != 0); - } -} - -static void PTRCALL -unknown_toUtf16(const ENCODING *enc, - const char **fromP, const char *fromLim, - unsigned short **toP, const unsigned short *toLim) -{ - const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); - while (*fromP != fromLim && *toP != toLim) { - unsigned short c = uenc->utf16[(unsigned char)**fromP]; - if (c == 0) { - c = (unsigned short) - uenc->convert(uenc->userData, *fromP); - *fromP += (AS_NORMAL_ENCODING(enc)->type[(unsigned char)**fromP] - - (BT_LEAD2 - 2)); - } - else - (*fromP)++; - *(*toP)++ = c; - } -} - -ENCODING * -XmlInitUnknownEncoding(void *mem, - int *table, - CONVERTER convert, - void *userData) -{ - int i; - struct unknown_encoding *e = (struct unknown_encoding *)mem; - for (i = 0; i < (int)sizeof(struct normal_encoding); i++) - ((char *)mem)[i] = ((char *)&latin1_encoding)[i]; - for (i = 0; i < 128; i++) - if (latin1_encoding.type[i] != BT_OTHER - && latin1_encoding.type[i] != BT_NONXML - && table[i] != i) - return 0; - for (i = 0; i < 256; i++) { - int c = table[i]; - if (c == -1) { - e->normal.type[i] = BT_MALFORM; - /* This shouldn't really get used. */ - e->utf16[i] = 0xFFFF; - e->utf8[i][0] = 1; - e->utf8[i][1] = 0; - } - else if (c < 0) { - if (c < -4) - return 0; - e->normal.type[i] = (unsigned char)(BT_LEAD2 - (c + 2)); - e->utf8[i][0] = 0; - e->utf16[i] = 0; - } - else if (c < 0x80) { - if (latin1_encoding.type[c] != BT_OTHER - && latin1_encoding.type[c] != BT_NONXML - && c != i) - return 0; - e->normal.type[i] = latin1_encoding.type[c]; - e->utf8[i][0] = 1; - e->utf8[i][1] = (char)c; - e->utf16[i] = (unsigned short)(c == 0 ? 0xFFFF : c); - } - else if (checkCharRefNumber(c) < 0) { - e->normal.type[i] = BT_NONXML; - /* This shouldn't really get used. */ - e->utf16[i] = 0xFFFF; - e->utf8[i][0] = 1; - e->utf8[i][1] = 0; - } - else { - if (c > 0xFFFF) - return 0; - if (UCS2_GET_NAMING(nmstrtPages, c >> 8, c & 0xff)) - e->normal.type[i] = BT_NMSTRT; - else if (UCS2_GET_NAMING(namePages, c >> 8, c & 0xff)) - e->normal.type[i] = BT_NAME; - else - e->normal.type[i] = BT_OTHER; - e->utf8[i][0] = (char)XmlUtf8Encode(c, e->utf8[i] + 1); - e->utf16[i] = (unsigned short)c; - } - } - e->userData = userData; - e->convert = convert; - if (convert) { - e->normal.isName2 = unknown_isName; - e->normal.isName3 = unknown_isName; - e->normal.isName4 = unknown_isName; - e->normal.isNmstrt2 = unknown_isNmstrt; - e->normal.isNmstrt3 = unknown_isNmstrt; - e->normal.isNmstrt4 = unknown_isNmstrt; - e->normal.isInvalid2 = unknown_isInvalid; - e->normal.isInvalid3 = unknown_isInvalid; - e->normal.isInvalid4 = unknown_isInvalid; - } - e->normal.enc.utf8Convert = unknown_toUtf8; - e->normal.enc.utf16Convert = unknown_toUtf16; - return &(e->normal.enc); -} - -/* If this enumeration is changed, getEncodingIndex and encodings -must also be changed. */ -enum { - UNKNOWN_ENC = -1, - ISO_8859_1_ENC = 0, - US_ASCII_ENC, - UTF_8_ENC, - UTF_16_ENC, - UTF_16BE_ENC, - UTF_16LE_ENC, - /* must match encodingNames up to here */ - NO_ENC -}; - -static const char KW_ISO_8859_1[] = { - ASCII_I, ASCII_S, ASCII_O, ASCII_MINUS, ASCII_8, ASCII_8, ASCII_5, ASCII_9, - ASCII_MINUS, ASCII_1, '\0' -}; -static const char KW_US_ASCII[] = { - ASCII_U, ASCII_S, ASCII_MINUS, ASCII_A, ASCII_S, ASCII_C, ASCII_I, ASCII_I, - '\0' -}; -static const char KW_UTF_8[] = { - ASCII_U, ASCII_T, ASCII_F, ASCII_MINUS, ASCII_8, '\0' -}; -static const char KW_UTF_16[] = { - ASCII_U, ASCII_T, ASCII_F, ASCII_MINUS, ASCII_1, ASCII_6, '\0' -}; -static const char KW_UTF_16BE[] = { - ASCII_U, ASCII_T, ASCII_F, ASCII_MINUS, ASCII_1, ASCII_6, ASCII_B, ASCII_E, - '\0' -}; -static const char KW_UTF_16LE[] = { - ASCII_U, ASCII_T, ASCII_F, ASCII_MINUS, ASCII_1, ASCII_6, ASCII_L, ASCII_E, - '\0' -}; - -static int FASTCALL -getEncodingIndex(const char *name) -{ - static const char * const encodingNames[] = { - KW_ISO_8859_1, - KW_US_ASCII, - KW_UTF_8, - KW_UTF_16, - KW_UTF_16BE, - KW_UTF_16LE, - }; - int i; - if (name == NULL) - return NO_ENC; - for (i = 0; i < (int)(sizeof(encodingNames)/sizeof(encodingNames[0])); i++) - if (streqci(name, encodingNames[i])) - return i; - return UNKNOWN_ENC; -} - -/* For binary compatibility, we store the index of the encoding - specified at initialization in the isUtf16 member. -*/ - -#define INIT_ENC_INDEX(enc) ((int)(enc)->initEnc.isUtf16) -#define SET_INIT_ENC_INDEX(enc, i) ((enc)->initEnc.isUtf16 = (char)i) - -/* This is what detects the encoding. encodingTable maps from - encoding indices to encodings; INIT_ENC_INDEX(enc) is the index of - the external (protocol) specified encoding; state is - XML_CONTENT_STATE if we're parsing an external text entity, and - XML_PROLOG_STATE otherwise. -*/ - - -static int -initScan(const ENCODING * const *encodingTable, - const INIT_ENCODING *enc, - int state, - const char *ptr, - const char *end, - const char **nextTokPtr) -{ - const ENCODING **encPtr; - - if (ptr == end) - return XML_TOK_NONE; - encPtr = enc->encPtr; - if (ptr + 1 == end) { - /* only a single byte available for auto-detection */ -#ifndef XML_DTD /* FIXME */ - /* a well-formed document entity must have more than one byte */ - if (state != XML_CONTENT_STATE) - return XML_TOK_PARTIAL; -#endif - /* so we're parsing an external text entity... */ - /* if UTF-16 was externally specified, then we need at least 2 bytes */ - switch (INIT_ENC_INDEX(enc)) { - case UTF_16_ENC: - case UTF_16LE_ENC: - case UTF_16BE_ENC: - return XML_TOK_PARTIAL; - } - switch ((unsigned char)*ptr) { - case 0xFE: - case 0xFF: - case 0xEF: /* possibly first byte of UTF-8 BOM */ - if (INIT_ENC_INDEX(enc) == ISO_8859_1_ENC - && state == XML_CONTENT_STATE) - break; - /* fall through */ - case 0x00: - case 0x3C: - return XML_TOK_PARTIAL; - } - } - else { - switch (((unsigned char)ptr[0] << 8) | (unsigned char)ptr[1]) { - case 0xFEFF: - if (INIT_ENC_INDEX(enc) == ISO_8859_1_ENC - && state == XML_CONTENT_STATE) - break; - *nextTokPtr = ptr + 2; - *encPtr = encodingTable[UTF_16BE_ENC]; - return XML_TOK_BOM; - /* 00 3C is handled in the default case */ - case 0x3C00: - if ((INIT_ENC_INDEX(enc) == UTF_16BE_ENC - || INIT_ENC_INDEX(enc) == UTF_16_ENC) - && state == XML_CONTENT_STATE) - break; - *encPtr = encodingTable[UTF_16LE_ENC]; - return XmlTok(*encPtr, state, ptr, end, nextTokPtr); - case 0xFFFE: - if (INIT_ENC_INDEX(enc) == ISO_8859_1_ENC - && state == XML_CONTENT_STATE) - break; - *nextTokPtr = ptr + 2; - *encPtr = encodingTable[UTF_16LE_ENC]; - return XML_TOK_BOM; - case 0xEFBB: - /* Maybe a UTF-8 BOM (EF BB BF) */ - /* If there's an explicitly specified (external) encoding - of ISO-8859-1 or some flavour of UTF-16 - and this is an external text entity, - don't look for the BOM, - because it might be a legal data. - */ - if (state == XML_CONTENT_STATE) { - int e = INIT_ENC_INDEX(enc); - if (e == ISO_8859_1_ENC || e == UTF_16BE_ENC - || e == UTF_16LE_ENC || e == UTF_16_ENC) - break; - } - if (ptr + 2 == end) - return XML_TOK_PARTIAL; - if ((unsigned char)ptr[2] == 0xBF) { - *nextTokPtr = ptr + 3; - *encPtr = encodingTable[UTF_8_ENC]; - return XML_TOK_BOM; - } - break; - default: - if (ptr[0] == '\0') { - /* 0 isn't a legal data character. Furthermore a document - entity can only start with ASCII characters. So the only - way this can fail to be big-endian UTF-16 if it it's an - external parsed general entity that's labelled as - UTF-16LE. - */ - if (state == XML_CONTENT_STATE && INIT_ENC_INDEX(enc) == UTF_16LE_ENC) - break; - *encPtr = encodingTable[UTF_16BE_ENC]; - return XmlTok(*encPtr, state, ptr, end, nextTokPtr); - } - else if (ptr[1] == '\0') { - /* We could recover here in the case: - - parsing an external entity - - second byte is 0 - - no externally specified encoding - - no encoding declaration - by assuming UTF-16LE. But we don't, because this would mean when - presented just with a single byte, we couldn't reliably determine - whether we needed further bytes. - */ - if (state == XML_CONTENT_STATE) - break; - *encPtr = encodingTable[UTF_16LE_ENC]; - return XmlTok(*encPtr, state, ptr, end, nextTokPtr); - } - break; - } - } - *encPtr = encodingTable[INIT_ENC_INDEX(enc)]; - return XmlTok(*encPtr, state, ptr, end, nextTokPtr); -} - - -#define NS(x) x -#define ns(x) x -#define XML_TOK_NS_C -#include "xmltok_ns.cc" -#undef XML_TOK_NS_C -#undef NS -#undef ns - -#ifdef XML_NS - -#define NS(x) x ## NS -#define ns(x) x ## _ns - -#define XML_TOK_NS_C -#include "xmltok_ns.cc" -#undef XML_TOK_NS_C - -#undef NS -#undef ns - -ENCODING * -XmlInitUnknownEncodingNS(void *mem, - int *table, - CONVERTER convert, - void *userData) -{ - ENCODING *enc = XmlInitUnknownEncoding(mem, table, convert, userData); - if (enc) - ((struct normal_encoding *)enc)->type[ASCII_COLON] = BT_COLON; - return enc; -} - -#endif /* XML_NS */ diff --git a/source/externals/expat/src/xmltok.h b/source/externals/expat/src/xmltok.h index ca867aa6b4..6f630c2f9b 100644 --- a/source/externals/expat/src/xmltok.h +++ b/source/externals/expat/src/xmltok.h @@ -1,5 +1,37 @@ -/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2002 Fred L. Drake, Jr. + Copyright (c) 2002-2005 Karl Waclawek + Copyright (c) 2016-2017 Sebastian Pipping + Copyright (c) 2017 Rhodri James + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef XmlTok_INCLUDED @@ -10,16 +42,18 @@ extern "C" { #endif /* The following token may be returned by XmlContentTok */ -#define XML_TOK_TRAILING_RSQB -5 /* ] or ]] at the end of the scan; might be - start of illegal ]]> sequence */ +#define XML_TOK_TRAILING_RSQB \ + -5 /* ] or ]] at the end of the scan; might be \ + start of illegal ]]> sequence */ /* The following tokens may be returned by both XmlPrologTok and XmlContentTok. */ -#define XML_TOK_NONE -4 /* The string to be scanned is empty */ -#define XML_TOK_TRAILING_CR -3 /* A CR at the end of the scan; - might be part of CRLF sequence */ -#define XML_TOK_PARTIAL_CHAR -2 /* only part of a multibyte sequence */ -#define XML_TOK_PARTIAL -1 /* only part of a token */ +#define XML_TOK_NONE -4 /* The string to be scanned is empty */ +#define XML_TOK_TRAILING_CR \ + -3 /* A CR at the end of the scan; \ + might be part of CRLF sequence */ +#define XML_TOK_PARTIAL_CHAR -2 /* only part of a multibyte sequence */ +#define XML_TOK_PARTIAL -1 /* only part of a token */ #define XML_TOK_INVALID 0 /* The following tokens are returned by XmlContentTok; some are also @@ -34,24 +68,24 @@ extern "C" { #define XML_TOK_DATA_NEWLINE 7 #define XML_TOK_CDATA_SECT_OPEN 8 #define XML_TOK_ENTITY_REF 9 -#define XML_TOK_CHAR_REF 10 /* numeric character reference */ +#define XML_TOK_CHAR_REF 10 /* numeric character reference */ /* The following tokens may be returned by both XmlPrologTok and XmlContentTok. */ -#define XML_TOK_PI 11 /* processing instruction */ -#define XML_TOK_XML_DECL 12 /* XML decl or text decl */ +#define XML_TOK_PI 11 /* processing instruction */ +#define XML_TOK_XML_DECL 12 /* XML decl or text decl */ #define XML_TOK_COMMENT 13 -#define XML_TOK_BOM 14 /* Byte order mark */ +#define XML_TOK_BOM 14 /* Byte order mark */ /* The following tokens are returned only by XmlPrologTok */ #define XML_TOK_PROLOG_S 15 -#define XML_TOK_DECL_OPEN 16 /* */ +#define XML_TOK_DECL_OPEN 16 /* */ #define XML_TOK_NAME 18 #define XML_TOK_NMTOKEN 19 -#define XML_TOK_POUND_NAME 20 /* #name */ -#define XML_TOK_OR 21 /* | */ +#define XML_TOK_POUND_NAME 20 /* #name */ +#define XML_TOK_OR 21 /* | */ #define XML_TOK_PERCENT 22 #define XML_TOK_OPEN_PAREN 23 #define XML_TOK_CLOSE_PAREN 24 @@ -62,14 +96,14 @@ extern "C" { #define XML_TOK_INSTANCE_START 29 /* The following occur only in element type declarations */ -#define XML_TOK_NAME_QUESTION 30 /* name? */ -#define XML_TOK_NAME_ASTERISK 31 /* name* */ -#define XML_TOK_NAME_PLUS 32 /* name+ */ -#define XML_TOK_COND_SECT_OPEN 33 /* */ -#define XML_TOK_CLOSE_PAREN_QUESTION 35 /* )? */ -#define XML_TOK_CLOSE_PAREN_ASTERISK 36 /* )* */ -#define XML_TOK_CLOSE_PAREN_PLUS 37 /* )+ */ +#define XML_TOK_NAME_QUESTION 30 /* name? */ +#define XML_TOK_NAME_ASTERISK 31 /* name* */ +#define XML_TOK_NAME_PLUS 32 /* name+ */ +#define XML_TOK_COND_SECT_OPEN 33 /* */ +#define XML_TOK_CLOSE_PAREN_QUESTION 35 /* )? */ +#define XML_TOK_CLOSE_PAREN_ASTERISK 36 /* )* */ +#define XML_TOK_CLOSE_PAREN_PLUS 37 /* )+ */ #define XML_TOK_COMMA 38 /* The following token is returned only by XmlAttributeValueTok */ @@ -84,20 +118,20 @@ extern "C" { #define XML_TOK_PREFIXED_NAME 41 #ifdef XML_DTD -#define XML_TOK_IGNORE_SECT 42 +# define XML_TOK_IGNORE_SECT 42 #endif /* XML_DTD */ #ifdef XML_DTD -#define XML_N_STATES 4 +# define XML_N_STATES 4 #else /* not XML_DTD */ -#define XML_N_STATES 3 +# define XML_N_STATES 3 #endif /* not XML_DTD */ #define XML_PROLOG_STATE 0 #define XML_CONTENT_STATE 1 #define XML_CDATA_SECTION_STATE 2 #ifdef XML_DTD -#define XML_IGNORE_SECTION_STATE 3 +# define XML_IGNORE_SECTION_STATE 3 #endif /* XML_DTD */ #define XML_N_LITERAL_TYPES 2 @@ -125,49 +159,41 @@ typedef struct { struct encoding; typedef struct encoding ENCODING; -typedef int (PTRCALL *SCANNER)(const ENCODING *, - const char *, - const char *, - const char **); +typedef int(PTRCALL *SCANNER)(const ENCODING *, const char *, const char *, + const char **); + +enum XML_Convert_Result { + XML_CONVERT_COMPLETED = 0, + XML_CONVERT_INPUT_INCOMPLETE = 1, + XML_CONVERT_OUTPUT_EXHAUSTED + = 2 /* and therefore potentially input remaining as well */ +}; struct encoding { SCANNER scanners[XML_N_STATES]; SCANNER literalScanners[XML_N_LITERAL_TYPES]; - int (PTRCALL *sameName)(const ENCODING *, - const char *, - const char *); - int (PTRCALL *nameMatchesAscii)(const ENCODING *, - const char *, - const char *, - const char *); - int (PTRFASTCALL *nameLength)(const ENCODING *, const char *); + int(PTRCALL *nameMatchesAscii)(const ENCODING *, const char *, const char *, + const char *); + int(PTRFASTCALL *nameLength)(const ENCODING *, const char *); const char *(PTRFASTCALL *skipS)(const ENCODING *, const char *); - int (PTRCALL *getAtts)(const ENCODING *enc, - const char *ptr, - int attsMax, - ATTRIBUTE *atts); - int (PTRFASTCALL *charRefNumber)(const ENCODING *enc, const char *ptr); - int (PTRCALL *predefinedEntityName)(const ENCODING *, - const char *, - const char *); - void (PTRCALL *updatePosition)(const ENCODING *, - const char *ptr, - const char *end, - POSITION *); - int (PTRCALL *isPublicId)(const ENCODING *enc, - const char *ptr, - const char *end, - const char **badPtr); - void (PTRCALL *utf8Convert)(const ENCODING *enc, - const char **fromP, - const char *fromLim, - char **toP, - const char *toLim); - void (PTRCALL *utf16Convert)(const ENCODING *enc, - const char **fromP, - const char *fromLim, - unsigned short **toP, - const unsigned short *toLim); + int(PTRCALL *getAtts)(const ENCODING *enc, const char *ptr, int attsMax, + ATTRIBUTE *atts); + int(PTRFASTCALL *charRefNumber)(const ENCODING *enc, const char *ptr); + int(PTRCALL *predefinedEntityName)(const ENCODING *, const char *, + const char *); + void(PTRCALL *updatePosition)(const ENCODING *, const char *ptr, + const char *end, POSITION *); + int(PTRCALL *isPublicId)(const ENCODING *enc, const char *ptr, + const char *end, const char **badPtr); + enum XML_Convert_Result(PTRCALL *utf8Convert)(const ENCODING *enc, + const char **fromP, + const char *fromLim, char **toP, + const char *toLim); + enum XML_Convert_Result(PTRCALL *utf16Convert)(const ENCODING *enc, + const char **fromP, + const char *fromLim, + unsigned short **toP, + const unsigned short *toLim); int minBytesPerChar; char isUtf8; char isUtf16; @@ -194,68 +220,62 @@ struct encoding { the prolog outside literals, comments and processing instructions. */ - -#define XmlTok(enc, state, ptr, end, nextTokPtr) \ +#define XmlTok(enc, state, ptr, end, nextTokPtr) \ (((enc)->scanners[state])(enc, ptr, end, nextTokPtr)) -#define XmlPrologTok(enc, ptr, end, nextTokPtr) \ - XmlTok(enc, XML_PROLOG_STATE, ptr, end, nextTokPtr) +#define XmlPrologTok(enc, ptr, end, nextTokPtr) \ + XmlTok(enc, XML_PROLOG_STATE, ptr, end, nextTokPtr) -#define XmlContentTok(enc, ptr, end, nextTokPtr) \ - XmlTok(enc, XML_CONTENT_STATE, ptr, end, nextTokPtr) +#define XmlContentTok(enc, ptr, end, nextTokPtr) \ + XmlTok(enc, XML_CONTENT_STATE, ptr, end, nextTokPtr) -#define XmlCdataSectionTok(enc, ptr, end, nextTokPtr) \ - XmlTok(enc, XML_CDATA_SECTION_STATE, ptr, end, nextTokPtr) +#define XmlCdataSectionTok(enc, ptr, end, nextTokPtr) \ + XmlTok(enc, XML_CDATA_SECTION_STATE, ptr, end, nextTokPtr) #ifdef XML_DTD -#define XmlIgnoreSectionTok(enc, ptr, end, nextTokPtr) \ - XmlTok(enc, XML_IGNORE_SECTION_STATE, ptr, end, nextTokPtr) +# define XmlIgnoreSectionTok(enc, ptr, end, nextTokPtr) \ + XmlTok(enc, XML_IGNORE_SECTION_STATE, ptr, end, nextTokPtr) #endif /* XML_DTD */ /* This is used for performing a 2nd-level tokenization on the content of a literal that has already been returned by XmlTok. */ -#define XmlLiteralTok(enc, literalType, ptr, end, nextTokPtr) \ +#define XmlLiteralTok(enc, literalType, ptr, end, nextTokPtr) \ (((enc)->literalScanners[literalType])(enc, ptr, end, nextTokPtr)) -#define XmlAttributeValueTok(enc, ptr, end, nextTokPtr) \ - XmlLiteralTok(enc, XML_ATTRIBUTE_VALUE_LITERAL, ptr, end, nextTokPtr) +#define XmlAttributeValueTok(enc, ptr, end, nextTokPtr) \ + XmlLiteralTok(enc, XML_ATTRIBUTE_VALUE_LITERAL, ptr, end, nextTokPtr) -#define XmlEntityValueTok(enc, ptr, end, nextTokPtr) \ - XmlLiteralTok(enc, XML_ENTITY_VALUE_LITERAL, ptr, end, nextTokPtr) +#define XmlEntityValueTok(enc, ptr, end, nextTokPtr) \ + XmlLiteralTok(enc, XML_ENTITY_VALUE_LITERAL, ptr, end, nextTokPtr) -#define XmlSameName(enc, ptr1, ptr2) (((enc)->sameName)(enc, ptr1, ptr2)) - -#define XmlNameMatchesAscii(enc, ptr1, end1, ptr2) \ +#define XmlNameMatchesAscii(enc, ptr1, end1, ptr2) \ (((enc)->nameMatchesAscii)(enc, ptr1, end1, ptr2)) -#define XmlNameLength(enc, ptr) \ - (((enc)->nameLength)(enc, ptr)) +#define XmlNameLength(enc, ptr) (((enc)->nameLength)(enc, ptr)) -#define XmlSkipS(enc, ptr) \ - (((enc)->skipS)(enc, ptr)) +#define XmlSkipS(enc, ptr) (((enc)->skipS)(enc, ptr)) -#define XmlGetAttributes(enc, ptr, attsMax, atts) \ +#define XmlGetAttributes(enc, ptr, attsMax, atts) \ (((enc)->getAtts)(enc, ptr, attsMax, atts)) -#define XmlCharRefNumber(enc, ptr) \ - (((enc)->charRefNumber)(enc, ptr)) +#define XmlCharRefNumber(enc, ptr) (((enc)->charRefNumber)(enc, ptr)) -#define XmlPredefinedEntityName(enc, ptr, end) \ +#define XmlPredefinedEntityName(enc, ptr, end) \ (((enc)->predefinedEntityName)(enc, ptr, end)) -#define XmlUpdatePosition(enc, ptr, end, pos) \ +#define XmlUpdatePosition(enc, ptr, end, pos) \ (((enc)->updatePosition)(enc, ptr, end, pos)) -#define XmlIsPublicId(enc, ptr, end, badPtr) \ +#define XmlIsPublicId(enc, ptr, end, badPtr) \ (((enc)->isPublicId)(enc, ptr, end, badPtr)) -#define XmlUtf8Convert(enc, fromP, fromLim, toP, toLim) \ +#define XmlUtf8Convert(enc, fromP, fromLim, toP, toLim) \ (((enc)->utf8Convert)(enc, fromP, fromLim, toP, toLim)) -#define XmlUtf16Convert(enc, fromP, fromLim, toP, toLim) \ +#define XmlUtf16Convert(enc, fromP, fromLim, toP, toLim) \ (((enc)->utf16Convert)(enc, fromP, fromLim, toP, toLim)) typedef struct { @@ -263,16 +283,11 @@ typedef struct { const ENCODING **encPtr; } INIT_ENCODING; -int XmlParseXmlDecl(int isGeneralTextEntity, - const ENCODING *enc, - const char *ptr, - const char *end, - const char **badPtr, - const char **versionPtr, - const char **versionEndPtr, +int XmlParseXmlDecl(int isGeneralTextEntity, const ENCODING *enc, + const char *ptr, const char *end, const char **badPtr, + const char **versionPtr, const char **versionEndPtr, const char **encodingNamePtr, - const ENCODING **namedEncodingPtr, - int *standalonePtr); + const ENCODING **namedEncodingPtr, int *standalonePtr); int XmlInitEncoding(INIT_ENCODING *, const ENCODING **, const char *name); const ENCODING *XmlGetUtf8InternalEncoding(void); @@ -281,34 +296,22 @@ int FASTCALL XmlUtf8Encode(int charNumber, char *buf); int FASTCALL XmlUtf16Encode(int charNumber, unsigned short *buf); int XmlSizeOfUnknownEncoding(void); +typedef int(XMLCALL *CONVERTER)(void *userData, const char *p); -typedef int (XMLCALL *CONVERTER) (void *userData, const char *p); +ENCODING *XmlInitUnknownEncoding(void *mem, int *table, CONVERTER convert, + void *userData); -ENCODING * -XmlInitUnknownEncoding(void *mem, - int *table, - CONVERTER convert, - void *userData); - -int XmlParseXmlDeclNS(int isGeneralTextEntity, - const ENCODING *enc, - const char *ptr, - const char *end, - const char **badPtr, - const char **versionPtr, - const char **versionEndPtr, +int XmlParseXmlDeclNS(int isGeneralTextEntity, const ENCODING *enc, + const char *ptr, const char *end, const char **badPtr, + const char **versionPtr, const char **versionEndPtr, const char **encodingNamePtr, - const ENCODING **namedEncodingPtr, - int *standalonePtr); + const ENCODING **namedEncodingPtr, int *standalonePtr); int XmlInitEncodingNS(INIT_ENCODING *, const ENCODING **, const char *name); const ENCODING *XmlGetUtf8InternalEncodingNS(void); const ENCODING *XmlGetUtf16InternalEncodingNS(void); -ENCODING * -XmlInitUnknownEncodingNS(void *mem, - int *table, - CONVERTER convert, - void *userData); +ENCODING *XmlInitUnknownEncodingNS(void *mem, int *table, CONVERTER convert, + void *userData); #ifdef __cplusplus } #endif diff --git a/source/externals/expat/src/xmltok_impl.c b/source/externals/expat/src/xmltok_impl.c new file mode 100644 index 0000000000..1971d74bf8 --- /dev/null +++ b/source/externals/expat/src/xmltok_impl.c @@ -0,0 +1,1819 @@ +/* This file is included (from xmltok.c, 1-3 times depending on XML_MIN_SIZE)! + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2002 Fred L. Drake, Jr. + Copyright (c) 2002-2016 Karl Waclawek + Copyright (c) 2016-2022 Sebastian Pipping + Copyright (c) 2017 Rhodri James + Copyright (c) 2018 Benjamin Peterson + Copyright (c) 2018 Anton Maklakov + Copyright (c) 2019 David Loffredo + Copyright (c) 2020 Boris Kolpackov + Copyright (c) 2022 Martin Ettl + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#ifdef XML_TOK_IMPL_C + +# ifndef IS_INVALID_CHAR // i.e. for UTF-16 and XML_MIN_SIZE not defined +# define IS_INVALID_CHAR(enc, ptr, n) (0) +# endif + +# define INVALID_LEAD_CASE(n, ptr, nextTokPtr) \ + case BT_LEAD##n: \ + if (end - ptr < n) \ + return XML_TOK_PARTIAL_CHAR; \ + if (IS_INVALID_CHAR(enc, ptr, n)) { \ + *(nextTokPtr) = (ptr); \ + return XML_TOK_INVALID; \ + } \ + ptr += n; \ + break; + +# define INVALID_CASES(ptr, nextTokPtr) \ + INVALID_LEAD_CASE(2, ptr, nextTokPtr) \ + INVALID_LEAD_CASE(3, ptr, nextTokPtr) \ + INVALID_LEAD_CASE(4, ptr, nextTokPtr) \ + case BT_NONXML: \ + case BT_MALFORM: \ + case BT_TRAIL: \ + *(nextTokPtr) = (ptr); \ + return XML_TOK_INVALID; + +# define CHECK_NAME_CASE(n, enc, ptr, end, nextTokPtr) \ + case BT_LEAD##n: \ + if (end - ptr < n) \ + return XML_TOK_PARTIAL_CHAR; \ + if (IS_INVALID_CHAR(enc, ptr, n) || ! IS_NAME_CHAR(enc, ptr, n)) { \ + *nextTokPtr = ptr; \ + return XML_TOK_INVALID; \ + } \ + ptr += n; \ + break; + +# define CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) \ + case BT_NONASCII: \ + if (! IS_NAME_CHAR_MINBPC(enc, ptr)) { \ + *nextTokPtr = ptr; \ + return XML_TOK_INVALID; \ + } \ + /* fall through */ \ + case BT_NMSTRT: \ + case BT_HEX: \ + case BT_DIGIT: \ + case BT_NAME: \ + case BT_MINUS: \ + ptr += MINBPC(enc); \ + break; \ + CHECK_NAME_CASE(2, enc, ptr, end, nextTokPtr) \ + CHECK_NAME_CASE(3, enc, ptr, end, nextTokPtr) \ + CHECK_NAME_CASE(4, enc, ptr, end, nextTokPtr) + +# define CHECK_NMSTRT_CASE(n, enc, ptr, end, nextTokPtr) \ + case BT_LEAD##n: \ + if ((end) - (ptr) < (n)) \ + return XML_TOK_PARTIAL_CHAR; \ + if (IS_INVALID_CHAR(enc, ptr, n) || ! IS_NMSTRT_CHAR(enc, ptr, n)) { \ + *nextTokPtr = ptr; \ + return XML_TOK_INVALID; \ + } \ + ptr += n; \ + break; + +# define CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) \ + case BT_NONASCII: \ + if (! IS_NMSTRT_CHAR_MINBPC(enc, ptr)) { \ + *nextTokPtr = ptr; \ + return XML_TOK_INVALID; \ + } \ + /* fall through */ \ + case BT_NMSTRT: \ + case BT_HEX: \ + ptr += MINBPC(enc); \ + break; \ + CHECK_NMSTRT_CASE(2, enc, ptr, end, nextTokPtr) \ + CHECK_NMSTRT_CASE(3, enc, ptr, end, nextTokPtr) \ + CHECK_NMSTRT_CASE(4, enc, ptr, end, nextTokPtr) + +# ifndef PREFIX +# define PREFIX(ident) ident +# endif + +# define HAS_CHARS(enc, ptr, end, count) \ + ((end) - (ptr) >= ((count)*MINBPC(enc))) + +# define HAS_CHAR(enc, ptr, end) HAS_CHARS(enc, ptr, end, 1) + +# define REQUIRE_CHARS(enc, ptr, end, count) \ + { \ + if (! HAS_CHARS(enc, ptr, end, count)) { \ + return XML_TOK_PARTIAL; \ + } \ + } + +# define REQUIRE_CHAR(enc, ptr, end) REQUIRE_CHARS(enc, ptr, end, 1) + +/* ptr points to character following " */ + switch (BYTE_TYPE(enc, ptr + MINBPC(enc))) { + case BT_S: + case BT_CR: + case BT_LF: + case BT_PERCNT: + *nextTokPtr = ptr; + return XML_TOK_INVALID; + } + /* fall through */ + case BT_S: + case BT_CR: + case BT_LF: + *nextTokPtr = ptr; + return XML_TOK_DECL_OPEN; + case BT_NMSTRT: + case BT_HEX: + ptr += MINBPC(enc); + break; + default: + *nextTokPtr = ptr; + return XML_TOK_INVALID; + } + } + return XML_TOK_PARTIAL; +} + +static int PTRCALL +PREFIX(checkPiTarget)(const ENCODING *enc, const char *ptr, const char *end, + int *tokPtr) { + int upper = 0; + UNUSED_P(enc); + *tokPtr = XML_TOK_PI; + if (end - ptr != MINBPC(enc) * 3) + return 1; + switch (BYTE_TO_ASCII(enc, ptr)) { + case ASCII_x: + break; + case ASCII_X: + upper = 1; + break; + default: + return 1; + } + ptr += MINBPC(enc); + switch (BYTE_TO_ASCII(enc, ptr)) { + case ASCII_m: + break; + case ASCII_M: + upper = 1; + break; + default: + return 1; + } + ptr += MINBPC(enc); + switch (BYTE_TO_ASCII(enc, ptr)) { + case ASCII_l: + break; + case ASCII_L: + upper = 1; + break; + default: + return 1; + } + if (upper) + return 0; + *tokPtr = XML_TOK_XML_DECL; + return 1; +} + +/* ptr points to character following "= end) + return XML_TOK_NONE; + if (MINBPC(enc) > 1) { + size_t n = end - ptr; + if (n & (MINBPC(enc) - 1)) { + n &= ~(MINBPC(enc) - 1); + if (n == 0) + return XML_TOK_PARTIAL; + end = ptr + n; + } + } + switch (BYTE_TYPE(enc, ptr)) { + case BT_RSQB: + ptr += MINBPC(enc); + REQUIRE_CHAR(enc, ptr, end); + if (! CHAR_MATCHES(enc, ptr, ASCII_RSQB)) + break; + ptr += MINBPC(enc); + REQUIRE_CHAR(enc, ptr, end); + if (! CHAR_MATCHES(enc, ptr, ASCII_GT)) { + ptr -= MINBPC(enc); + break; + } + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_CDATA_SECT_CLOSE; + case BT_CR: + ptr += MINBPC(enc); + REQUIRE_CHAR(enc, ptr, end); + if (BYTE_TYPE(enc, ptr) == BT_LF) + ptr += MINBPC(enc); + *nextTokPtr = ptr; + return XML_TOK_DATA_NEWLINE; + case BT_LF: + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_DATA_NEWLINE; + INVALID_CASES(ptr, nextTokPtr) + default: + ptr += MINBPC(enc); + break; + } + while (HAS_CHAR(enc, ptr, end)) { + switch (BYTE_TYPE(enc, ptr)) { +# define LEAD_CASE(n) \ + case BT_LEAD##n: \ + if (end - ptr < n || IS_INVALID_CHAR(enc, ptr, n)) { \ + *nextTokPtr = ptr; \ + return XML_TOK_DATA_CHARS; \ + } \ + ptr += n; \ + break; + LEAD_CASE(2) + LEAD_CASE(3) + LEAD_CASE(4) +# undef LEAD_CASE + case BT_NONXML: + case BT_MALFORM: + case BT_TRAIL: + case BT_CR: + case BT_LF: + case BT_RSQB: + *nextTokPtr = ptr; + return XML_TOK_DATA_CHARS; + default: + ptr += MINBPC(enc); + break; + } + } + *nextTokPtr = ptr; + return XML_TOK_DATA_CHARS; +} + +/* ptr points to character following "= end) + return XML_TOK_NONE; + if (MINBPC(enc) > 1) { + size_t n = end - ptr; + if (n & (MINBPC(enc) - 1)) { + n &= ~(MINBPC(enc) - 1); + if (n == 0) + return XML_TOK_PARTIAL; + end = ptr + n; + } + } + switch (BYTE_TYPE(enc, ptr)) { + case BT_LT: + return PREFIX(scanLt)(enc, ptr + MINBPC(enc), end, nextTokPtr); + case BT_AMP: + return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); + case BT_CR: + ptr += MINBPC(enc); + if (! HAS_CHAR(enc, ptr, end)) + return XML_TOK_TRAILING_CR; + if (BYTE_TYPE(enc, ptr) == BT_LF) + ptr += MINBPC(enc); + *nextTokPtr = ptr; + return XML_TOK_DATA_NEWLINE; + case BT_LF: + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_DATA_NEWLINE; + case BT_RSQB: + ptr += MINBPC(enc); + if (! HAS_CHAR(enc, ptr, end)) + return XML_TOK_TRAILING_RSQB; + if (! CHAR_MATCHES(enc, ptr, ASCII_RSQB)) + break; + ptr += MINBPC(enc); + if (! HAS_CHAR(enc, ptr, end)) + return XML_TOK_TRAILING_RSQB; + if (! CHAR_MATCHES(enc, ptr, ASCII_GT)) { + ptr -= MINBPC(enc); + break; + } + *nextTokPtr = ptr; + return XML_TOK_INVALID; + INVALID_CASES(ptr, nextTokPtr) + default: + ptr += MINBPC(enc); + break; + } + while (HAS_CHAR(enc, ptr, end)) { + switch (BYTE_TYPE(enc, ptr)) { +# define LEAD_CASE(n) \ + case BT_LEAD##n: \ + if (end - ptr < n || IS_INVALID_CHAR(enc, ptr, n)) { \ + *nextTokPtr = ptr; \ + return XML_TOK_DATA_CHARS; \ + } \ + ptr += n; \ + break; + LEAD_CASE(2) + LEAD_CASE(3) + LEAD_CASE(4) +# undef LEAD_CASE + case BT_RSQB: + if (HAS_CHARS(enc, ptr, end, 2)) { + if (! CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_RSQB)) { + ptr += MINBPC(enc); + break; + } + if (HAS_CHARS(enc, ptr, end, 3)) { + if (! CHAR_MATCHES(enc, ptr + 2 * MINBPC(enc), ASCII_GT)) { + ptr += MINBPC(enc); + break; + } + *nextTokPtr = ptr + 2 * MINBPC(enc); + return XML_TOK_INVALID; + } + } + /* fall through */ + case BT_AMP: + case BT_LT: + case BT_NONXML: + case BT_MALFORM: + case BT_TRAIL: + case BT_CR: + case BT_LF: + *nextTokPtr = ptr; + return XML_TOK_DATA_CHARS; + default: + ptr += MINBPC(enc); + break; + } + } + *nextTokPtr = ptr; + return XML_TOK_DATA_CHARS; +} + +/* ptr points to character following "%" */ + +static int PTRCALL +PREFIX(scanPercent)(const ENCODING *enc, const char *ptr, const char *end, + const char **nextTokPtr) { + REQUIRE_CHAR(enc, ptr, end); + switch (BYTE_TYPE(enc, ptr)) { + CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) + case BT_S: + case BT_LF: + case BT_CR: + case BT_PERCNT: + *nextTokPtr = ptr; + return XML_TOK_PERCENT; + default: + *nextTokPtr = ptr; + return XML_TOK_INVALID; + } + while (HAS_CHAR(enc, ptr, end)) { + switch (BYTE_TYPE(enc, ptr)) { + CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) + case BT_SEMI: + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_PARAM_ENTITY_REF; + default: + *nextTokPtr = ptr; + return XML_TOK_INVALID; + } + } + return XML_TOK_PARTIAL; +} + +static int PTRCALL +PREFIX(scanPoundName)(const ENCODING *enc, const char *ptr, const char *end, + const char **nextTokPtr) { + REQUIRE_CHAR(enc, ptr, end); + switch (BYTE_TYPE(enc, ptr)) { + CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) + default: + *nextTokPtr = ptr; + return XML_TOK_INVALID; + } + while (HAS_CHAR(enc, ptr, end)) { + switch (BYTE_TYPE(enc, ptr)) { + CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) + case BT_CR: + case BT_LF: + case BT_S: + case BT_RPAR: + case BT_GT: + case BT_PERCNT: + case BT_VERBAR: + *nextTokPtr = ptr; + return XML_TOK_POUND_NAME; + default: + *nextTokPtr = ptr; + return XML_TOK_INVALID; + } + } + return -XML_TOK_POUND_NAME; +} + +static int PTRCALL +PREFIX(scanLit)(int open, const ENCODING *enc, const char *ptr, const char *end, + const char **nextTokPtr) { + while (HAS_CHAR(enc, ptr, end)) { + int t = BYTE_TYPE(enc, ptr); + switch (t) { + INVALID_CASES(ptr, nextTokPtr) + case BT_QUOT: + case BT_APOS: + ptr += MINBPC(enc); + if (t != open) + break; + if (! HAS_CHAR(enc, ptr, end)) + return -XML_TOK_LITERAL; + *nextTokPtr = ptr; + switch (BYTE_TYPE(enc, ptr)) { + case BT_S: + case BT_CR: + case BT_LF: + case BT_GT: + case BT_PERCNT: + case BT_LSQB: + return XML_TOK_LITERAL; + default: + return XML_TOK_INVALID; + } + default: + ptr += MINBPC(enc); + break; + } + } + return XML_TOK_PARTIAL; +} + +static int PTRCALL +PREFIX(prologTok)(const ENCODING *enc, const char *ptr, const char *end, + const char **nextTokPtr) { + int tok; + if (ptr >= end) + return XML_TOK_NONE; + if (MINBPC(enc) > 1) { + size_t n = end - ptr; + if (n & (MINBPC(enc) - 1)) { + n &= ~(MINBPC(enc) - 1); + if (n == 0) + return XML_TOK_PARTIAL; + end = ptr + n; + } + } + switch (BYTE_TYPE(enc, ptr)) { + case BT_QUOT: + return PREFIX(scanLit)(BT_QUOT, enc, ptr + MINBPC(enc), end, nextTokPtr); + case BT_APOS: + return PREFIX(scanLit)(BT_APOS, enc, ptr + MINBPC(enc), end, nextTokPtr); + case BT_LT: { + ptr += MINBPC(enc); + REQUIRE_CHAR(enc, ptr, end); + switch (BYTE_TYPE(enc, ptr)) { + case BT_EXCL: + return PREFIX(scanDecl)(enc, ptr + MINBPC(enc), end, nextTokPtr); + case BT_QUEST: + return PREFIX(scanPi)(enc, ptr + MINBPC(enc), end, nextTokPtr); + case BT_NMSTRT: + case BT_HEX: + case BT_NONASCII: + case BT_LEAD2: + case BT_LEAD3: + case BT_LEAD4: + *nextTokPtr = ptr - MINBPC(enc); + return XML_TOK_INSTANCE_START; + } + *nextTokPtr = ptr; + return XML_TOK_INVALID; + } + case BT_CR: + if (ptr + MINBPC(enc) == end) { + *nextTokPtr = end; + /* indicate that this might be part of a CR/LF pair */ + return -XML_TOK_PROLOG_S; + } + /* fall through */ + case BT_S: + case BT_LF: + for (;;) { + ptr += MINBPC(enc); + if (! HAS_CHAR(enc, ptr, end)) + break; + switch (BYTE_TYPE(enc, ptr)) { + case BT_S: + case BT_LF: + break; + case BT_CR: + /* don't split CR/LF pair */ + if (ptr + MINBPC(enc) != end) + break; + /* fall through */ + default: + *nextTokPtr = ptr; + return XML_TOK_PROLOG_S; + } + } + *nextTokPtr = ptr; + return XML_TOK_PROLOG_S; + case BT_PERCNT: + return PREFIX(scanPercent)(enc, ptr + MINBPC(enc), end, nextTokPtr); + case BT_COMMA: + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_COMMA; + case BT_LSQB: + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_OPEN_BRACKET; + case BT_RSQB: + ptr += MINBPC(enc); + if (! HAS_CHAR(enc, ptr, end)) + return -XML_TOK_CLOSE_BRACKET; + if (CHAR_MATCHES(enc, ptr, ASCII_RSQB)) { + REQUIRE_CHARS(enc, ptr, end, 2); + if (CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_GT)) { + *nextTokPtr = ptr + 2 * MINBPC(enc); + return XML_TOK_COND_SECT_CLOSE; + } + } + *nextTokPtr = ptr; + return XML_TOK_CLOSE_BRACKET; + case BT_LPAR: + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_OPEN_PAREN; + case BT_RPAR: + ptr += MINBPC(enc); + if (! HAS_CHAR(enc, ptr, end)) + return -XML_TOK_CLOSE_PAREN; + switch (BYTE_TYPE(enc, ptr)) { + case BT_AST: + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_CLOSE_PAREN_ASTERISK; + case BT_QUEST: + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_CLOSE_PAREN_QUESTION; + case BT_PLUS: + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_CLOSE_PAREN_PLUS; + case BT_CR: + case BT_LF: + case BT_S: + case BT_GT: + case BT_COMMA: + case BT_VERBAR: + case BT_RPAR: + *nextTokPtr = ptr; + return XML_TOK_CLOSE_PAREN; + } + *nextTokPtr = ptr; + return XML_TOK_INVALID; + case BT_VERBAR: + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_OR; + case BT_GT: + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_DECL_CLOSE; + case BT_NUM: + return PREFIX(scanPoundName)(enc, ptr + MINBPC(enc), end, nextTokPtr); +# define LEAD_CASE(n) \ + case BT_LEAD##n: \ + if (end - ptr < n) \ + return XML_TOK_PARTIAL_CHAR; \ + if (IS_INVALID_CHAR(enc, ptr, n)) { \ + *nextTokPtr = ptr; \ + return XML_TOK_INVALID; \ + } \ + if (IS_NMSTRT_CHAR(enc, ptr, n)) { \ + ptr += n; \ + tok = XML_TOK_NAME; \ + break; \ + } \ + if (IS_NAME_CHAR(enc, ptr, n)) { \ + ptr += n; \ + tok = XML_TOK_NMTOKEN; \ + break; \ + } \ + *nextTokPtr = ptr; \ + return XML_TOK_INVALID; + LEAD_CASE(2) + LEAD_CASE(3) + LEAD_CASE(4) +# undef LEAD_CASE + case BT_NMSTRT: + case BT_HEX: + tok = XML_TOK_NAME; + ptr += MINBPC(enc); + break; + case BT_DIGIT: + case BT_NAME: + case BT_MINUS: +# ifdef XML_NS + case BT_COLON: +# endif + tok = XML_TOK_NMTOKEN; + ptr += MINBPC(enc); + break; + case BT_NONASCII: + if (IS_NMSTRT_CHAR_MINBPC(enc, ptr)) { + ptr += MINBPC(enc); + tok = XML_TOK_NAME; + break; + } + if (IS_NAME_CHAR_MINBPC(enc, ptr)) { + ptr += MINBPC(enc); + tok = XML_TOK_NMTOKEN; + break; + } + /* fall through */ + default: + *nextTokPtr = ptr; + return XML_TOK_INVALID; + } + while (HAS_CHAR(enc, ptr, end)) { + switch (BYTE_TYPE(enc, ptr)) { + CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) + case BT_GT: + case BT_RPAR: + case BT_COMMA: + case BT_VERBAR: + case BT_LSQB: + case BT_PERCNT: + case BT_S: + case BT_CR: + case BT_LF: + *nextTokPtr = ptr; + return tok; +# ifdef XML_NS + case BT_COLON: + ptr += MINBPC(enc); + switch (tok) { + case XML_TOK_NAME: + REQUIRE_CHAR(enc, ptr, end); + tok = XML_TOK_PREFIXED_NAME; + switch (BYTE_TYPE(enc, ptr)) { + CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) + default: + tok = XML_TOK_NMTOKEN; + break; + } + break; + case XML_TOK_PREFIXED_NAME: + tok = XML_TOK_NMTOKEN; + break; + } + break; +# endif + case BT_PLUS: + if (tok == XML_TOK_NMTOKEN) { + *nextTokPtr = ptr; + return XML_TOK_INVALID; + } + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_NAME_PLUS; + case BT_AST: + if (tok == XML_TOK_NMTOKEN) { + *nextTokPtr = ptr; + return XML_TOK_INVALID; + } + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_NAME_ASTERISK; + case BT_QUEST: + if (tok == XML_TOK_NMTOKEN) { + *nextTokPtr = ptr; + return XML_TOK_INVALID; + } + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_NAME_QUESTION; + default: + *nextTokPtr = ptr; + return XML_TOK_INVALID; + } + } + return -tok; +} + +static int PTRCALL +PREFIX(attributeValueTok)(const ENCODING *enc, const char *ptr, const char *end, + const char **nextTokPtr) { + const char *start; + if (ptr >= end) + return XML_TOK_NONE; + else if (! HAS_CHAR(enc, ptr, end)) { + /* This line cannot be executed. The incoming data has already + * been tokenized once, so incomplete characters like this have + * already been eliminated from the input. Retaining the paranoia + * check is still valuable, however. + */ + return XML_TOK_PARTIAL; /* LCOV_EXCL_LINE */ + } + start = ptr; + while (HAS_CHAR(enc, ptr, end)) { + switch (BYTE_TYPE(enc, ptr)) { +# define LEAD_CASE(n) \ + case BT_LEAD##n: \ + ptr += n; /* NOTE: The encoding has already been validated. */ \ + break; + LEAD_CASE(2) + LEAD_CASE(3) + LEAD_CASE(4) +# undef LEAD_CASE + case BT_AMP: + if (ptr == start) + return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); + *nextTokPtr = ptr; + return XML_TOK_DATA_CHARS; + case BT_LT: + /* this is for inside entity references */ + *nextTokPtr = ptr; + return XML_TOK_INVALID; + case BT_LF: + if (ptr == start) { + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_DATA_NEWLINE; + } + *nextTokPtr = ptr; + return XML_TOK_DATA_CHARS; + case BT_CR: + if (ptr == start) { + ptr += MINBPC(enc); + if (! HAS_CHAR(enc, ptr, end)) + return XML_TOK_TRAILING_CR; + if (BYTE_TYPE(enc, ptr) == BT_LF) + ptr += MINBPC(enc); + *nextTokPtr = ptr; + return XML_TOK_DATA_NEWLINE; + } + *nextTokPtr = ptr; + return XML_TOK_DATA_CHARS; + case BT_S: + if (ptr == start) { + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_ATTRIBUTE_VALUE_S; + } + *nextTokPtr = ptr; + return XML_TOK_DATA_CHARS; + default: + ptr += MINBPC(enc); + break; + } + } + *nextTokPtr = ptr; + return XML_TOK_DATA_CHARS; +} + +static int PTRCALL +PREFIX(entityValueTok)(const ENCODING *enc, const char *ptr, const char *end, + const char **nextTokPtr) { + const char *start; + if (ptr >= end) + return XML_TOK_NONE; + else if (! HAS_CHAR(enc, ptr, end)) { + /* This line cannot be executed. The incoming data has already + * been tokenized once, so incomplete characters like this have + * already been eliminated from the input. Retaining the paranoia + * check is still valuable, however. + */ + return XML_TOK_PARTIAL; /* LCOV_EXCL_LINE */ + } + start = ptr; + while (HAS_CHAR(enc, ptr, end)) { + switch (BYTE_TYPE(enc, ptr)) { +# define LEAD_CASE(n) \ + case BT_LEAD##n: \ + ptr += n; /* NOTE: The encoding has already been validated. */ \ + break; + LEAD_CASE(2) + LEAD_CASE(3) + LEAD_CASE(4) +# undef LEAD_CASE + case BT_AMP: + if (ptr == start) + return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); + *nextTokPtr = ptr; + return XML_TOK_DATA_CHARS; + case BT_PERCNT: + if (ptr == start) { + int tok = PREFIX(scanPercent)(enc, ptr + MINBPC(enc), end, nextTokPtr); + return (tok == XML_TOK_PERCENT) ? XML_TOK_INVALID : tok; + } + *nextTokPtr = ptr; + return XML_TOK_DATA_CHARS; + case BT_LF: + if (ptr == start) { + *nextTokPtr = ptr + MINBPC(enc); + return XML_TOK_DATA_NEWLINE; + } + *nextTokPtr = ptr; + return XML_TOK_DATA_CHARS; + case BT_CR: + if (ptr == start) { + ptr += MINBPC(enc); + if (! HAS_CHAR(enc, ptr, end)) + return XML_TOK_TRAILING_CR; + if (BYTE_TYPE(enc, ptr) == BT_LF) + ptr += MINBPC(enc); + *nextTokPtr = ptr; + return XML_TOK_DATA_NEWLINE; + } + *nextTokPtr = ptr; + return XML_TOK_DATA_CHARS; + default: + ptr += MINBPC(enc); + break; + } + } + *nextTokPtr = ptr; + return XML_TOK_DATA_CHARS; +} + +# ifdef XML_DTD + +static int PTRCALL +PREFIX(ignoreSectionTok)(const ENCODING *enc, const char *ptr, const char *end, + const char **nextTokPtr) { + int level = 0; + if (MINBPC(enc) > 1) { + size_t n = end - ptr; + if (n & (MINBPC(enc) - 1)) { + n &= ~(MINBPC(enc) - 1); + end = ptr + n; + } + } + while (HAS_CHAR(enc, ptr, end)) { + switch (BYTE_TYPE(enc, ptr)) { + INVALID_CASES(ptr, nextTokPtr) + case BT_LT: + ptr += MINBPC(enc); + REQUIRE_CHAR(enc, ptr, end); + if (CHAR_MATCHES(enc, ptr, ASCII_EXCL)) { + ptr += MINBPC(enc); + REQUIRE_CHAR(enc, ptr, end); + if (CHAR_MATCHES(enc, ptr, ASCII_LSQB)) { + ++level; + ptr += MINBPC(enc); + } + } + break; + case BT_RSQB: + ptr += MINBPC(enc); + REQUIRE_CHAR(enc, ptr, end); + if (CHAR_MATCHES(enc, ptr, ASCII_RSQB)) { + ptr += MINBPC(enc); + REQUIRE_CHAR(enc, ptr, end); + if (CHAR_MATCHES(enc, ptr, ASCII_GT)) { + ptr += MINBPC(enc); + if (level == 0) { + *nextTokPtr = ptr; + return XML_TOK_IGNORE_SECT; + } + --level; + } + } + break; + default: + ptr += MINBPC(enc); + break; + } + } + return XML_TOK_PARTIAL; +} + +# endif /* XML_DTD */ + +static int PTRCALL +PREFIX(isPublicId)(const ENCODING *enc, const char *ptr, const char *end, + const char **badPtr) { + ptr += MINBPC(enc); + end -= MINBPC(enc); + for (; HAS_CHAR(enc, ptr, end); ptr += MINBPC(enc)) { + switch (BYTE_TYPE(enc, ptr)) { + case BT_DIGIT: + case BT_HEX: + case BT_MINUS: + case BT_APOS: + case BT_LPAR: + case BT_RPAR: + case BT_PLUS: + case BT_COMMA: + case BT_SOL: + case BT_EQUALS: + case BT_QUEST: + case BT_CR: + case BT_LF: + case BT_SEMI: + case BT_EXCL: + case BT_AST: + case BT_PERCNT: + case BT_NUM: +# ifdef XML_NS + case BT_COLON: +# endif + break; + case BT_S: + if (CHAR_MATCHES(enc, ptr, ASCII_TAB)) { + *badPtr = ptr; + return 0; + } + break; + case BT_NAME: + case BT_NMSTRT: + if (! (BYTE_TO_ASCII(enc, ptr) & ~0x7f)) + break; + /* fall through */ + default: + switch (BYTE_TO_ASCII(enc, ptr)) { + case 0x24: /* $ */ + case 0x40: /* @ */ + break; + default: + *badPtr = ptr; + return 0; + } + break; + } + } + return 1; +} + +/* This must only be called for a well-formed start-tag or empty + element tag. Returns the number of attributes. Pointers to the + first attsMax attributes are stored in atts. +*/ + +static int PTRCALL +PREFIX(getAtts)(const ENCODING *enc, const char *ptr, int attsMax, + ATTRIBUTE *atts) { + enum { other, inName, inValue } state = inName; + int nAtts = 0; + int open = 0; /* defined when state == inValue; + initialization just to shut up compilers */ + + for (ptr += MINBPC(enc);; ptr += MINBPC(enc)) { + switch (BYTE_TYPE(enc, ptr)) { +# define START_NAME \ + if (state == other) { \ + if (nAtts < attsMax) { \ + atts[nAtts].name = ptr; \ + atts[nAtts].normalized = 1; \ + } \ + state = inName; \ + } +# define LEAD_CASE(n) \ + case BT_LEAD##n: /* NOTE: The encoding has already been validated. */ \ + START_NAME ptr += (n - MINBPC(enc)); \ + break; + LEAD_CASE(2) + LEAD_CASE(3) + LEAD_CASE(4) +# undef LEAD_CASE + case BT_NONASCII: + case BT_NMSTRT: + case BT_HEX: + START_NAME + break; +# undef START_NAME + case BT_QUOT: + if (state != inValue) { + if (nAtts < attsMax) + atts[nAtts].valuePtr = ptr + MINBPC(enc); + state = inValue; + open = BT_QUOT; + } else if (open == BT_QUOT) { + state = other; + if (nAtts < attsMax) + atts[nAtts].valueEnd = ptr; + nAtts++; + } + break; + case BT_APOS: + if (state != inValue) { + if (nAtts < attsMax) + atts[nAtts].valuePtr = ptr + MINBPC(enc); + state = inValue; + open = BT_APOS; + } else if (open == BT_APOS) { + state = other; + if (nAtts < attsMax) + atts[nAtts].valueEnd = ptr; + nAtts++; + } + break; + case BT_AMP: + if (nAtts < attsMax) + atts[nAtts].normalized = 0; + break; + case BT_S: + if (state == inName) + state = other; + else if (state == inValue && nAtts < attsMax && atts[nAtts].normalized + && (ptr == atts[nAtts].valuePtr + || BYTE_TO_ASCII(enc, ptr) != ASCII_SPACE + || BYTE_TO_ASCII(enc, ptr + MINBPC(enc)) == ASCII_SPACE + || BYTE_TYPE(enc, ptr + MINBPC(enc)) == open)) + atts[nAtts].normalized = 0; + break; + case BT_CR: + case BT_LF: + /* This case ensures that the first attribute name is counted + Apart from that we could just change state on the quote. */ + if (state == inName) + state = other; + else if (state == inValue && nAtts < attsMax) + atts[nAtts].normalized = 0; + break; + case BT_GT: + case BT_SOL: + if (state != inValue) + return nAtts; + break; + default: + break; + } + } + /* not reached */ +} + +static int PTRFASTCALL +PREFIX(charRefNumber)(const ENCODING *enc, const char *ptr) { + int result = 0; + /* skip &# */ + UNUSED_P(enc); + ptr += 2 * MINBPC(enc); + if (CHAR_MATCHES(enc, ptr, ASCII_x)) { + for (ptr += MINBPC(enc); ! CHAR_MATCHES(enc, ptr, ASCII_SEMI); + ptr += MINBPC(enc)) { + int c = BYTE_TO_ASCII(enc, ptr); + switch (c) { + case ASCII_0: + case ASCII_1: + case ASCII_2: + case ASCII_3: + case ASCII_4: + case ASCII_5: + case ASCII_6: + case ASCII_7: + case ASCII_8: + case ASCII_9: + result <<= 4; + result |= (c - ASCII_0); + break; + case ASCII_A: + case ASCII_B: + case ASCII_C: + case ASCII_D: + case ASCII_E: + case ASCII_F: + result <<= 4; + result += 10 + (c - ASCII_A); + break; + case ASCII_a: + case ASCII_b: + case ASCII_c: + case ASCII_d: + case ASCII_e: + case ASCII_f: + result <<= 4; + result += 10 + (c - ASCII_a); + break; + } + if (result >= 0x110000) + return -1; + } + } else { + for (; ! CHAR_MATCHES(enc, ptr, ASCII_SEMI); ptr += MINBPC(enc)) { + int c = BYTE_TO_ASCII(enc, ptr); + result *= 10; + result += (c - ASCII_0); + if (result >= 0x110000) + return -1; + } + } + return checkCharRefNumber(result); +} + +static int PTRCALL +PREFIX(predefinedEntityName)(const ENCODING *enc, const char *ptr, + const char *end) { + UNUSED_P(enc); + switch ((end - ptr) / MINBPC(enc)) { + case 2: + if (CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_t)) { + switch (BYTE_TO_ASCII(enc, ptr)) { + case ASCII_l: + return ASCII_LT; + case ASCII_g: + return ASCII_GT; + } + } + break; + case 3: + if (CHAR_MATCHES(enc, ptr, ASCII_a)) { + ptr += MINBPC(enc); + if (CHAR_MATCHES(enc, ptr, ASCII_m)) { + ptr += MINBPC(enc); + if (CHAR_MATCHES(enc, ptr, ASCII_p)) + return ASCII_AMP; + } + } + break; + case 4: + switch (BYTE_TO_ASCII(enc, ptr)) { + case ASCII_q: + ptr += MINBPC(enc); + if (CHAR_MATCHES(enc, ptr, ASCII_u)) { + ptr += MINBPC(enc); + if (CHAR_MATCHES(enc, ptr, ASCII_o)) { + ptr += MINBPC(enc); + if (CHAR_MATCHES(enc, ptr, ASCII_t)) + return ASCII_QUOT; + } + } + break; + case ASCII_a: + ptr += MINBPC(enc); + if (CHAR_MATCHES(enc, ptr, ASCII_p)) { + ptr += MINBPC(enc); + if (CHAR_MATCHES(enc, ptr, ASCII_o)) { + ptr += MINBPC(enc); + if (CHAR_MATCHES(enc, ptr, ASCII_s)) + return ASCII_APOS; + } + } + break; + } + } + return 0; +} + +static int PTRCALL +PREFIX(nameMatchesAscii)(const ENCODING *enc, const char *ptr1, + const char *end1, const char *ptr2) { + UNUSED_P(enc); + for (; *ptr2; ptr1 += MINBPC(enc), ptr2++) { + if (end1 - ptr1 < MINBPC(enc)) { + /* This line cannot be executed. The incoming data has already + * been tokenized once, so incomplete characters like this have + * already been eliminated from the input. Retaining the + * paranoia check is still valuable, however. + */ + return 0; /* LCOV_EXCL_LINE */ + } + if (! CHAR_MATCHES(enc, ptr1, *ptr2)) + return 0; + } + return ptr1 == end1; +} + +static int PTRFASTCALL +PREFIX(nameLength)(const ENCODING *enc, const char *ptr) { + const char *start = ptr; + for (;;) { + switch (BYTE_TYPE(enc, ptr)) { +# define LEAD_CASE(n) \ + case BT_LEAD##n: \ + ptr += n; /* NOTE: The encoding has already been validated. */ \ + break; + LEAD_CASE(2) + LEAD_CASE(3) + LEAD_CASE(4) +# undef LEAD_CASE + case BT_NONASCII: + case BT_NMSTRT: +# ifdef XML_NS + case BT_COLON: +# endif + case BT_HEX: + case BT_DIGIT: + case BT_NAME: + case BT_MINUS: + ptr += MINBPC(enc); + break; + default: + return (int)(ptr - start); + } + } +} + +static const char *PTRFASTCALL +PREFIX(skipS)(const ENCODING *enc, const char *ptr) { + for (;;) { + switch (BYTE_TYPE(enc, ptr)) { + case BT_LF: + case BT_CR: + case BT_S: + ptr += MINBPC(enc); + break; + default: + return ptr; + } + } +} + +static void PTRCALL +PREFIX(updatePosition)(const ENCODING *enc, const char *ptr, const char *end, + POSITION *pos) { + while (HAS_CHAR(enc, ptr, end)) { + switch (BYTE_TYPE(enc, ptr)) { +# define LEAD_CASE(n) \ + case BT_LEAD##n: \ + ptr += n; /* NOTE: The encoding has already been validated. */ \ + pos->columnNumber++; \ + break; + LEAD_CASE(2) + LEAD_CASE(3) + LEAD_CASE(4) +# undef LEAD_CASE + case BT_LF: + pos->columnNumber = 0; + pos->lineNumber++; + ptr += MINBPC(enc); + break; + case BT_CR: + pos->lineNumber++; + ptr += MINBPC(enc); + if (HAS_CHAR(enc, ptr, end) && BYTE_TYPE(enc, ptr) == BT_LF) + ptr += MINBPC(enc); + pos->columnNumber = 0; + break; + default: + ptr += MINBPC(enc); + pos->columnNumber++; + break; + } + } +} + +# undef DO_LEAD_CASE +# undef MULTIBYTE_CASES +# undef INVALID_CASES +# undef CHECK_NAME_CASE +# undef CHECK_NAME_CASES +# undef CHECK_NMSTRT_CASE +# undef CHECK_NMSTRT_CASES + +#endif /* XML_TOK_IMPL_C */ diff --git a/source/externals/expat/src/xmltok_impl.cc b/source/externals/expat/src/xmltok_impl.cc deleted file mode 100644 index 9c2895b877..0000000000 --- a/source/externals/expat/src/xmltok_impl.cc +++ /dev/null @@ -1,1783 +0,0 @@ -/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. -*/ - -/* This file is included! */ -#ifdef XML_TOK_IMPL_C - -#ifndef IS_INVALID_CHAR -#define IS_INVALID_CHAR(enc, ptr, n) (0) -#endif - -#define INVALID_LEAD_CASE(n, ptr, nextTokPtr) \ - case BT_LEAD ## n: \ - if (end - ptr < n) \ - return XML_TOK_PARTIAL_CHAR; \ - if (IS_INVALID_CHAR(enc, ptr, n)) { \ - *(nextTokPtr) = (ptr); \ - return XML_TOK_INVALID; \ - } \ - ptr += n; \ - break; - -#define INVALID_CASES(ptr, nextTokPtr) \ - INVALID_LEAD_CASE(2, ptr, nextTokPtr) \ - INVALID_LEAD_CASE(3, ptr, nextTokPtr) \ - INVALID_LEAD_CASE(4, ptr, nextTokPtr) \ - case BT_NONXML: \ - case BT_MALFORM: \ - case BT_TRAIL: \ - *(nextTokPtr) = (ptr); \ - return XML_TOK_INVALID; - -#define CHECK_NAME_CASE(n, enc, ptr, end, nextTokPtr) \ - case BT_LEAD ## n: \ - if (end - ptr < n) \ - return XML_TOK_PARTIAL_CHAR; \ - if (!IS_NAME_CHAR(enc, ptr, n)) { \ - *nextTokPtr = ptr; \ - return XML_TOK_INVALID; \ - } \ - ptr += n; \ - break; - -#define CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) \ - case BT_NONASCII: \ - if (!IS_NAME_CHAR_MINBPC(enc, ptr)) { \ - *nextTokPtr = ptr; \ - return XML_TOK_INVALID; \ - } \ - case BT_NMSTRT: \ - case BT_HEX: \ - case BT_DIGIT: \ - case BT_NAME: \ - case BT_MINUS: \ - ptr += MINBPC(enc); \ - break; \ - CHECK_NAME_CASE(2, enc, ptr, end, nextTokPtr) \ - CHECK_NAME_CASE(3, enc, ptr, end, nextTokPtr) \ - CHECK_NAME_CASE(4, enc, ptr, end, nextTokPtr) - -#define CHECK_NMSTRT_CASE(n, enc, ptr, end, nextTokPtr) \ - case BT_LEAD ## n: \ - if (end - ptr < n) \ - return XML_TOK_PARTIAL_CHAR; \ - if (!IS_NMSTRT_CHAR(enc, ptr, n)) { \ - *nextTokPtr = ptr; \ - return XML_TOK_INVALID; \ - } \ - ptr += n; \ - break; - -#define CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) \ - case BT_NONASCII: \ - if (!IS_NMSTRT_CHAR_MINBPC(enc, ptr)) { \ - *nextTokPtr = ptr; \ - return XML_TOK_INVALID; \ - } \ - case BT_NMSTRT: \ - case BT_HEX: \ - ptr += MINBPC(enc); \ - break; \ - CHECK_NMSTRT_CASE(2, enc, ptr, end, nextTokPtr) \ - CHECK_NMSTRT_CASE(3, enc, ptr, end, nextTokPtr) \ - CHECK_NMSTRT_CASE(4, enc, ptr, end, nextTokPtr) - -#ifndef PREFIX -#define PREFIX(ident) ident -#endif - -/* ptr points to character following " */ - switch (BYTE_TYPE(enc, ptr + MINBPC(enc))) { - case BT_S: case BT_CR: case BT_LF: case BT_PERCNT: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - /* fall through */ - case BT_S: case BT_CR: case BT_LF: - *nextTokPtr = ptr; - return XML_TOK_DECL_OPEN; - case BT_NMSTRT: - case BT_HEX: - ptr += MINBPC(enc); - break; - default: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - } - return XML_TOK_PARTIAL; -} - -static int PTRCALL -PREFIX(checkPiTarget)(const ENCODING *enc, const char *ptr, - const char *end, int *tokPtr) -{ - int upper = 0; - *tokPtr = XML_TOK_PI; - if (end - ptr != MINBPC(enc)*3) - return 1; - switch (BYTE_TO_ASCII(enc, ptr)) { - case ASCII_x: - break; - case ASCII_X: - upper = 1; - break; - default: - return 1; - } - ptr += MINBPC(enc); - switch (BYTE_TO_ASCII(enc, ptr)) { - case ASCII_m: - break; - case ASCII_M: - upper = 1; - break; - default: - return 1; - } - ptr += MINBPC(enc); - switch (BYTE_TO_ASCII(enc, ptr)) { - case ASCII_l: - break; - case ASCII_L: - upper = 1; - break; - default: - return 1; - } - if (upper) - return 0; - *tokPtr = XML_TOK_XML_DECL; - return 1; -} - -/* ptr points to character following " 1) { - size_t n = end - ptr; - if (n & (MINBPC(enc) - 1)) { - n &= ~(MINBPC(enc) - 1); - if (n == 0) - return XML_TOK_PARTIAL; - end = ptr + n; - } - } - switch (BYTE_TYPE(enc, ptr)) { - case BT_RSQB: - ptr += MINBPC(enc); - if (ptr == end) - return XML_TOK_PARTIAL; - if (!CHAR_MATCHES(enc, ptr, ASCII_RSQB)) - break; - ptr += MINBPC(enc); - if (ptr == end) - return XML_TOK_PARTIAL; - if (!CHAR_MATCHES(enc, ptr, ASCII_GT)) { - ptr -= MINBPC(enc); - break; - } - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_CDATA_SECT_CLOSE; - case BT_CR: - ptr += MINBPC(enc); - if (ptr == end) - return XML_TOK_PARTIAL; - if (BYTE_TYPE(enc, ptr) == BT_LF) - ptr += MINBPC(enc); - *nextTokPtr = ptr; - return XML_TOK_DATA_NEWLINE; - case BT_LF: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_DATA_NEWLINE; - INVALID_CASES(ptr, nextTokPtr) - default: - ptr += MINBPC(enc); - break; - } - while (ptr != end) { - switch (BYTE_TYPE(enc, ptr)) { -#define LEAD_CASE(n) \ - case BT_LEAD ## n: \ - if (end - ptr < n || IS_INVALID_CHAR(enc, ptr, n)) { \ - *nextTokPtr = ptr; \ - return XML_TOK_DATA_CHARS; \ - } \ - ptr += n; \ - break; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_NONXML: - case BT_MALFORM: - case BT_TRAIL: - case BT_CR: - case BT_LF: - case BT_RSQB: - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - default: - ptr += MINBPC(enc); - break; - } - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; -} - -/* ptr points to character following " 1) { - size_t n = end - ptr; - if (n & (MINBPC(enc) - 1)) { - n &= ~(MINBPC(enc) - 1); - if (n == 0) - return XML_TOK_PARTIAL; - end = ptr + n; - } - } - switch (BYTE_TYPE(enc, ptr)) { - case BT_LT: - return PREFIX(scanLt)(enc, ptr + MINBPC(enc), end, nextTokPtr); - case BT_AMP: - return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); - case BT_CR: - ptr += MINBPC(enc); - if (ptr == end) - return XML_TOK_TRAILING_CR; - if (BYTE_TYPE(enc, ptr) == BT_LF) - ptr += MINBPC(enc); - *nextTokPtr = ptr; - return XML_TOK_DATA_NEWLINE; - case BT_LF: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_DATA_NEWLINE; - case BT_RSQB: - ptr += MINBPC(enc); - if (ptr == end) - return XML_TOK_TRAILING_RSQB; - if (!CHAR_MATCHES(enc, ptr, ASCII_RSQB)) - break; - ptr += MINBPC(enc); - if (ptr == end) - return XML_TOK_TRAILING_RSQB; - if (!CHAR_MATCHES(enc, ptr, ASCII_GT)) { - ptr -= MINBPC(enc); - break; - } - *nextTokPtr = ptr; - return XML_TOK_INVALID; - INVALID_CASES(ptr, nextTokPtr) - default: - ptr += MINBPC(enc); - break; - } - while (ptr != end) { - switch (BYTE_TYPE(enc, ptr)) { -#define LEAD_CASE(n) \ - case BT_LEAD ## n: \ - if (end - ptr < n || IS_INVALID_CHAR(enc, ptr, n)) { \ - *nextTokPtr = ptr; \ - return XML_TOK_DATA_CHARS; \ - } \ - ptr += n; \ - break; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_RSQB: - if (ptr + MINBPC(enc) != end) { - if (!CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_RSQB)) { - ptr += MINBPC(enc); - break; - } - if (ptr + 2*MINBPC(enc) != end) { - if (!CHAR_MATCHES(enc, ptr + 2*MINBPC(enc), ASCII_GT)) { - ptr += MINBPC(enc); - break; - } - *nextTokPtr = ptr + 2*MINBPC(enc); - return XML_TOK_INVALID; - } - } - /* fall through */ - case BT_AMP: - case BT_LT: - case BT_NONXML: - case BT_MALFORM: - case BT_TRAIL: - case BT_CR: - case BT_LF: - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - default: - ptr += MINBPC(enc); - break; - } - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; -} - -/* ptr points to character following "%" */ - -static int PTRCALL -PREFIX(scanPercent)(const ENCODING *enc, const char *ptr, const char *end, - const char **nextTokPtr) -{ - if (ptr == end) - return XML_TOK_PARTIAL; - switch (BYTE_TYPE(enc, ptr)) { - CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) - case BT_S: case BT_LF: case BT_CR: case BT_PERCNT: - *nextTokPtr = ptr; - return XML_TOK_PERCENT; - default: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - while (ptr != end) { - switch (BYTE_TYPE(enc, ptr)) { - CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) - case BT_SEMI: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_PARAM_ENTITY_REF; - default: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - } - return XML_TOK_PARTIAL; -} - -static int PTRCALL -PREFIX(scanPoundName)(const ENCODING *enc, const char *ptr, const char *end, - const char **nextTokPtr) -{ - if (ptr == end) - return XML_TOK_PARTIAL; - switch (BYTE_TYPE(enc, ptr)) { - CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) - default: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - while (ptr != end) { - switch (BYTE_TYPE(enc, ptr)) { - CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) - case BT_CR: case BT_LF: case BT_S: - case BT_RPAR: case BT_GT: case BT_PERCNT: case BT_VERBAR: - *nextTokPtr = ptr; - return XML_TOK_POUND_NAME; - default: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - } - return -XML_TOK_POUND_NAME; -} - -static int PTRCALL -PREFIX(scanLit)(int open, const ENCODING *enc, - const char *ptr, const char *end, - const char **nextTokPtr) -{ - while (ptr != end) { - int t = BYTE_TYPE(enc, ptr); - switch (t) { - INVALID_CASES(ptr, nextTokPtr) - case BT_QUOT: - case BT_APOS: - ptr += MINBPC(enc); - if (t != open) - break; - if (ptr == end) - return -XML_TOK_LITERAL; - *nextTokPtr = ptr; - switch (BYTE_TYPE(enc, ptr)) { - case BT_S: case BT_CR: case BT_LF: - case BT_GT: case BT_PERCNT: case BT_LSQB: - return XML_TOK_LITERAL; - default: - return XML_TOK_INVALID; - } - default: - ptr += MINBPC(enc); - break; - } - } - return XML_TOK_PARTIAL; -} - -static int PTRCALL -PREFIX(prologTok)(const ENCODING *enc, const char *ptr, const char *end, - const char **nextTokPtr) -{ - int tok; - if (ptr == end) - return XML_TOK_NONE; - if (MINBPC(enc) > 1) { - size_t n = end - ptr; - if (n & (MINBPC(enc) - 1)) { - n &= ~(MINBPC(enc) - 1); - if (n == 0) - return XML_TOK_PARTIAL; - end = ptr + n; - } - } - switch (BYTE_TYPE(enc, ptr)) { - case BT_QUOT: - return PREFIX(scanLit)(BT_QUOT, enc, ptr + MINBPC(enc), end, nextTokPtr); - case BT_APOS: - return PREFIX(scanLit)(BT_APOS, enc, ptr + MINBPC(enc), end, nextTokPtr); - case BT_LT: - { - ptr += MINBPC(enc); - if (ptr == end) - return XML_TOK_PARTIAL; - switch (BYTE_TYPE(enc, ptr)) { - case BT_EXCL: - return PREFIX(scanDecl)(enc, ptr + MINBPC(enc), end, nextTokPtr); - case BT_QUEST: - return PREFIX(scanPi)(enc, ptr + MINBPC(enc), end, nextTokPtr); - case BT_NMSTRT: - case BT_HEX: - case BT_NONASCII: - case BT_LEAD2: - case BT_LEAD3: - case BT_LEAD4: - *nextTokPtr = ptr - MINBPC(enc); - return XML_TOK_INSTANCE_START; - } - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - case BT_CR: - if (ptr + MINBPC(enc) == end) { - *nextTokPtr = end; - /* indicate that this might be part of a CR/LF pair */ - return -XML_TOK_PROLOG_S; - } - /* fall through */ - case BT_S: case BT_LF: - for (;;) { - ptr += MINBPC(enc); - if (ptr == end) - break; - switch (BYTE_TYPE(enc, ptr)) { - case BT_S: case BT_LF: - break; - case BT_CR: - /* don't split CR/LF pair */ - if (ptr + MINBPC(enc) != end) - break; - /* fall through */ - default: - *nextTokPtr = ptr; - return XML_TOK_PROLOG_S; - } - } - *nextTokPtr = ptr; - return XML_TOK_PROLOG_S; - case BT_PERCNT: - return PREFIX(scanPercent)(enc, ptr + MINBPC(enc), end, nextTokPtr); - case BT_COMMA: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_COMMA; - case BT_LSQB: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_OPEN_BRACKET; - case BT_RSQB: - ptr += MINBPC(enc); - if (ptr == end) - return -XML_TOK_CLOSE_BRACKET; - if (CHAR_MATCHES(enc, ptr, ASCII_RSQB)) { - if (ptr + MINBPC(enc) == end) - return XML_TOK_PARTIAL; - if (CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_GT)) { - *nextTokPtr = ptr + 2*MINBPC(enc); - return XML_TOK_COND_SECT_CLOSE; - } - } - *nextTokPtr = ptr; - return XML_TOK_CLOSE_BRACKET; - case BT_LPAR: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_OPEN_PAREN; - case BT_RPAR: - ptr += MINBPC(enc); - if (ptr == end) - return -XML_TOK_CLOSE_PAREN; - switch (BYTE_TYPE(enc, ptr)) { - case BT_AST: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_CLOSE_PAREN_ASTERISK; - case BT_QUEST: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_CLOSE_PAREN_QUESTION; - case BT_PLUS: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_CLOSE_PAREN_PLUS; - case BT_CR: case BT_LF: case BT_S: - case BT_GT: case BT_COMMA: case BT_VERBAR: - case BT_RPAR: - *nextTokPtr = ptr; - return XML_TOK_CLOSE_PAREN; - } - *nextTokPtr = ptr; - return XML_TOK_INVALID; - case BT_VERBAR: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_OR; - case BT_GT: - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_DECL_CLOSE; - case BT_NUM: - return PREFIX(scanPoundName)(enc, ptr + MINBPC(enc), end, nextTokPtr); -#define LEAD_CASE(n) \ - case BT_LEAD ## n: \ - if (end - ptr < n) \ - return XML_TOK_PARTIAL_CHAR; \ - if (IS_NMSTRT_CHAR(enc, ptr, n)) { \ - ptr += n; \ - tok = XML_TOK_NAME; \ - break; \ - } \ - if (IS_NAME_CHAR(enc, ptr, n)) { \ - ptr += n; \ - tok = XML_TOK_NMTOKEN; \ - break; \ - } \ - *nextTokPtr = ptr; \ - return XML_TOK_INVALID; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_NMSTRT: - case BT_HEX: - tok = XML_TOK_NAME; - ptr += MINBPC(enc); - break; - case BT_DIGIT: - case BT_NAME: - case BT_MINUS: -#ifdef XML_NS - case BT_COLON: -#endif - tok = XML_TOK_NMTOKEN; - ptr += MINBPC(enc); - break; - case BT_NONASCII: - if (IS_NMSTRT_CHAR_MINBPC(enc, ptr)) { - ptr += MINBPC(enc); - tok = XML_TOK_NAME; - break; - } - if (IS_NAME_CHAR_MINBPC(enc, ptr)) { - ptr += MINBPC(enc); - tok = XML_TOK_NMTOKEN; - break; - } - /* fall through */ - default: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - while (ptr != end) { - switch (BYTE_TYPE(enc, ptr)) { - CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) - case BT_GT: case BT_RPAR: case BT_COMMA: - case BT_VERBAR: case BT_LSQB: case BT_PERCNT: - case BT_S: case BT_CR: case BT_LF: - *nextTokPtr = ptr; - return tok; -#ifdef XML_NS - case BT_COLON: - ptr += MINBPC(enc); - switch (tok) { - case XML_TOK_NAME: - if (ptr == end) - return XML_TOK_PARTIAL; - tok = XML_TOK_PREFIXED_NAME; - switch (BYTE_TYPE(enc, ptr)) { - CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) - default: - tok = XML_TOK_NMTOKEN; - break; - } - break; - case XML_TOK_PREFIXED_NAME: - tok = XML_TOK_NMTOKEN; - break; - } - break; -#endif - case BT_PLUS: - if (tok == XML_TOK_NMTOKEN) { - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_NAME_PLUS; - case BT_AST: - if (tok == XML_TOK_NMTOKEN) { - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_NAME_ASTERISK; - case BT_QUEST: - if (tok == XML_TOK_NMTOKEN) { - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_NAME_QUESTION; - default: - *nextTokPtr = ptr; - return XML_TOK_INVALID; - } - } - return -tok; -} - -static int PTRCALL -PREFIX(attributeValueTok)(const ENCODING *enc, const char *ptr, - const char *end, const char **nextTokPtr) -{ - const char *start; - if (ptr == end) - return XML_TOK_NONE; - start = ptr; - while (ptr != end) { - switch (BYTE_TYPE(enc, ptr)) { -#define LEAD_CASE(n) \ - case BT_LEAD ## n: ptr += n; break; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_AMP: - if (ptr == start) - return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - case BT_LT: - /* this is for inside entity references */ - *nextTokPtr = ptr; - return XML_TOK_INVALID; - case BT_LF: - if (ptr == start) { - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_DATA_NEWLINE; - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - case BT_CR: - if (ptr == start) { - ptr += MINBPC(enc); - if (ptr == end) - return XML_TOK_TRAILING_CR; - if (BYTE_TYPE(enc, ptr) == BT_LF) - ptr += MINBPC(enc); - *nextTokPtr = ptr; - return XML_TOK_DATA_NEWLINE; - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - case BT_S: - if (ptr == start) { - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_ATTRIBUTE_VALUE_S; - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - default: - ptr += MINBPC(enc); - break; - } - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; -} - -static int PTRCALL -PREFIX(entityValueTok)(const ENCODING *enc, const char *ptr, - const char *end, const char **nextTokPtr) -{ - const char *start; - if (ptr == end) - return XML_TOK_NONE; - start = ptr; - while (ptr != end) { - switch (BYTE_TYPE(enc, ptr)) { -#define LEAD_CASE(n) \ - case BT_LEAD ## n: ptr += n; break; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_AMP: - if (ptr == start) - return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - case BT_PERCNT: - if (ptr == start) { - int tok = PREFIX(scanPercent)(enc, ptr + MINBPC(enc), - end, nextTokPtr); - return (tok == XML_TOK_PERCENT) ? XML_TOK_INVALID : tok; - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - case BT_LF: - if (ptr == start) { - *nextTokPtr = ptr + MINBPC(enc); - return XML_TOK_DATA_NEWLINE; - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - case BT_CR: - if (ptr == start) { - ptr += MINBPC(enc); - if (ptr == end) - return XML_TOK_TRAILING_CR; - if (BYTE_TYPE(enc, ptr) == BT_LF) - ptr += MINBPC(enc); - *nextTokPtr = ptr; - return XML_TOK_DATA_NEWLINE; - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; - default: - ptr += MINBPC(enc); - break; - } - } - *nextTokPtr = ptr; - return XML_TOK_DATA_CHARS; -} - -#ifdef XML_DTD - -static int PTRCALL -PREFIX(ignoreSectionTok)(const ENCODING *enc, const char *ptr, - const char *end, const char **nextTokPtr) -{ - int level = 0; - if (MINBPC(enc) > 1) { - size_t n = end - ptr; - if (n & (MINBPC(enc) - 1)) { - n &= ~(MINBPC(enc) - 1); - end = ptr + n; - } - } - while (ptr != end) { - switch (BYTE_TYPE(enc, ptr)) { - INVALID_CASES(ptr, nextTokPtr) - case BT_LT: - if ((ptr += MINBPC(enc)) == end) - return XML_TOK_PARTIAL; - if (CHAR_MATCHES(enc, ptr, ASCII_EXCL)) { - if ((ptr += MINBPC(enc)) == end) - return XML_TOK_PARTIAL; - if (CHAR_MATCHES(enc, ptr, ASCII_LSQB)) { - ++level; - ptr += MINBPC(enc); - } - } - break; - case BT_RSQB: - if ((ptr += MINBPC(enc)) == end) - return XML_TOK_PARTIAL; - if (CHAR_MATCHES(enc, ptr, ASCII_RSQB)) { - if ((ptr += MINBPC(enc)) == end) - return XML_TOK_PARTIAL; - if (CHAR_MATCHES(enc, ptr, ASCII_GT)) { - ptr += MINBPC(enc); - if (level == 0) { - *nextTokPtr = ptr; - return XML_TOK_IGNORE_SECT; - } - --level; - } - } - break; - default: - ptr += MINBPC(enc); - break; - } - } - return XML_TOK_PARTIAL; -} - -#endif /* XML_DTD */ - -static int PTRCALL -PREFIX(isPublicId)(const ENCODING *enc, const char *ptr, const char *end, - const char **badPtr) -{ - ptr += MINBPC(enc); - end -= MINBPC(enc); - for (; ptr != end; ptr += MINBPC(enc)) { - switch (BYTE_TYPE(enc, ptr)) { - case BT_DIGIT: - case BT_HEX: - case BT_MINUS: - case BT_APOS: - case BT_LPAR: - case BT_RPAR: - case BT_PLUS: - case BT_COMMA: - case BT_SOL: - case BT_EQUALS: - case BT_QUEST: - case BT_CR: - case BT_LF: - case BT_SEMI: - case BT_EXCL: - case BT_AST: - case BT_PERCNT: - case BT_NUM: -#ifdef XML_NS - case BT_COLON: -#endif - break; - case BT_S: - if (CHAR_MATCHES(enc, ptr, ASCII_TAB)) { - *badPtr = ptr; - return 0; - } - break; - case BT_NAME: - case BT_NMSTRT: - if (!(BYTE_TO_ASCII(enc, ptr) & ~0x7f)) - break; - default: - switch (BYTE_TO_ASCII(enc, ptr)) { - case 0x24: /* $ */ - case 0x40: /* @ */ - break; - default: - *badPtr = ptr; - return 0; - } - break; - } - } - return 1; -} - -/* This must only be called for a well-formed start-tag or empty - element tag. Returns the number of attributes. Pointers to the - first attsMax attributes are stored in atts. -*/ - -static int PTRCALL -PREFIX(getAtts)(const ENCODING *enc, const char *ptr, - int attsMax, ATTRIBUTE *atts) -{ - enum { other, inName, inValue } state = inName; - int nAtts = 0; - int open = 0; /* defined when state == inValue; - initialization just to shut up compilers */ - - for (ptr += MINBPC(enc);; ptr += MINBPC(enc)) { - switch (BYTE_TYPE(enc, ptr)) { -#define START_NAME \ - if (state == other) { \ - if (nAtts < attsMax) { \ - atts[nAtts].name = ptr; \ - atts[nAtts].normalized = 1; \ - } \ - state = inName; \ - } -#define LEAD_CASE(n) \ - case BT_LEAD ## n: START_NAME ptr += (n - MINBPC(enc)); break; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_NONASCII: - case BT_NMSTRT: - case BT_HEX: - START_NAME - break; -#undef START_NAME - case BT_QUOT: - if (state != inValue) { - if (nAtts < attsMax) - atts[nAtts].valuePtr = ptr + MINBPC(enc); - state = inValue; - open = BT_QUOT; - } - else if (open == BT_QUOT) { - state = other; - if (nAtts < attsMax) - atts[nAtts].valueEnd = ptr; - nAtts++; - } - break; - case BT_APOS: - if (state != inValue) { - if (nAtts < attsMax) - atts[nAtts].valuePtr = ptr + MINBPC(enc); - state = inValue; - open = BT_APOS; - } - else if (open == BT_APOS) { - state = other; - if (nAtts < attsMax) - atts[nAtts].valueEnd = ptr; - nAtts++; - } - break; - case BT_AMP: - if (nAtts < attsMax) - atts[nAtts].normalized = 0; - break; - case BT_S: - if (state == inName) - state = other; - else if (state == inValue - && nAtts < attsMax - && atts[nAtts].normalized - && (ptr == atts[nAtts].valuePtr - || BYTE_TO_ASCII(enc, ptr) != ASCII_SPACE - || BYTE_TO_ASCII(enc, ptr + MINBPC(enc)) == ASCII_SPACE - || BYTE_TYPE(enc, ptr + MINBPC(enc)) == open)) - atts[nAtts].normalized = 0; - break; - case BT_CR: case BT_LF: - /* This case ensures that the first attribute name is counted - Apart from that we could just change state on the quote. */ - if (state == inName) - state = other; - else if (state == inValue && nAtts < attsMax) - atts[nAtts].normalized = 0; - break; - case BT_GT: - case BT_SOL: - if (state != inValue) - return nAtts; - break; - default: - break; - } - } - /* not reached */ -} - -static int PTRFASTCALL -PREFIX(charRefNumber)(const ENCODING *enc, const char *ptr) -{ - int result = 0; - /* skip &# */ - ptr += 2*MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_x)) { - for (ptr += MINBPC(enc); - !CHAR_MATCHES(enc, ptr, ASCII_SEMI); - ptr += MINBPC(enc)) { - int c = BYTE_TO_ASCII(enc, ptr); - switch (c) { - case ASCII_0: case ASCII_1: case ASCII_2: case ASCII_3: case ASCII_4: - case ASCII_5: case ASCII_6: case ASCII_7: case ASCII_8: case ASCII_9: - result <<= 4; - result |= (c - ASCII_0); - break; - case ASCII_A: case ASCII_B: case ASCII_C: - case ASCII_D: case ASCII_E: case ASCII_F: - result <<= 4; - result += 10 + (c - ASCII_A); - break; - case ASCII_a: case ASCII_b: case ASCII_c: - case ASCII_d: case ASCII_e: case ASCII_f: - result <<= 4; - result += 10 + (c - ASCII_a); - break; - } - if (result >= 0x110000) - return -1; - } - } - else { - for (; !CHAR_MATCHES(enc, ptr, ASCII_SEMI); ptr += MINBPC(enc)) { - int c = BYTE_TO_ASCII(enc, ptr); - result *= 10; - result += (c - ASCII_0); - if (result >= 0x110000) - return -1; - } - } - return checkCharRefNumber(result); -} - -static int PTRCALL -PREFIX(predefinedEntityName)(const ENCODING *enc, const char *ptr, - const char *end) -{ - switch ((end - ptr)/MINBPC(enc)) { - case 2: - if (CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_t)) { - switch (BYTE_TO_ASCII(enc, ptr)) { - case ASCII_l: - return ASCII_LT; - case ASCII_g: - return ASCII_GT; - } - } - break; - case 3: - if (CHAR_MATCHES(enc, ptr, ASCII_a)) { - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_m)) { - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_p)) - return ASCII_AMP; - } - } - break; - case 4: - switch (BYTE_TO_ASCII(enc, ptr)) { - case ASCII_q: - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_u)) { - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_o)) { - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_t)) - return ASCII_QUOT; - } - } - break; - case ASCII_a: - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_p)) { - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_o)) { - ptr += MINBPC(enc); - if (CHAR_MATCHES(enc, ptr, ASCII_s)) - return ASCII_APOS; - } - } - break; - } - } - return 0; -} - -static int PTRCALL -PREFIX(sameName)(const ENCODING *enc, const char *ptr1, const char *ptr2) -{ - for (;;) { - switch (BYTE_TYPE(enc, ptr1)) { -#define LEAD_CASE(n) \ - case BT_LEAD ## n: \ - if (*ptr1++ != *ptr2++) \ - return 0; - LEAD_CASE(4) LEAD_CASE(3) LEAD_CASE(2) -#undef LEAD_CASE - /* fall through */ - if (*ptr1++ != *ptr2++) - return 0; - break; - case BT_NONASCII: - case BT_NMSTRT: -#ifdef XML_NS - case BT_COLON: -#endif - case BT_HEX: - case BT_DIGIT: - case BT_NAME: - case BT_MINUS: - if (*ptr2++ != *ptr1++) - return 0; - if (MINBPC(enc) > 1) { - if (*ptr2++ != *ptr1++) - return 0; - if (MINBPC(enc) > 2) { - if (*ptr2++ != *ptr1++) - return 0; - if (MINBPC(enc) > 3) { - if (*ptr2++ != *ptr1++) - return 0; - } - } - } - break; - default: - if (MINBPC(enc) == 1 && *ptr1 == *ptr2) - return 1; - switch (BYTE_TYPE(enc, ptr2)) { - case BT_LEAD2: - case BT_LEAD3: - case BT_LEAD4: - case BT_NONASCII: - case BT_NMSTRT: -#ifdef XML_NS - case BT_COLON: -#endif - case BT_HEX: - case BT_DIGIT: - case BT_NAME: - case BT_MINUS: - return 0; - default: - return 1; - } - } - } - /* not reached */ -} - -static int PTRCALL -PREFIX(nameMatchesAscii)(const ENCODING *enc, const char *ptr1, - const char *end1, const char *ptr2) -{ - for (; *ptr2; ptr1 += MINBPC(enc), ptr2++) { - if (ptr1 == end1) - return 0; - if (!CHAR_MATCHES(enc, ptr1, *ptr2)) - return 0; - } - return ptr1 == end1; -} - -static int PTRFASTCALL -PREFIX(nameLength)(const ENCODING *enc, const char *ptr) -{ - const char *start = ptr; - for (;;) { - switch (BYTE_TYPE(enc, ptr)) { -#define LEAD_CASE(n) \ - case BT_LEAD ## n: ptr += n; break; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_NONASCII: - case BT_NMSTRT: -#ifdef XML_NS - case BT_COLON: -#endif - case BT_HEX: - case BT_DIGIT: - case BT_NAME: - case BT_MINUS: - ptr += MINBPC(enc); - break; - default: - return (int)(ptr - start); - } - } -} - -static const char * PTRFASTCALL -PREFIX(skipS)(const ENCODING *enc, const char *ptr) -{ - for (;;) { - switch (BYTE_TYPE(enc, ptr)) { - case BT_LF: - case BT_CR: - case BT_S: - ptr += MINBPC(enc); - break; - default: - return ptr; - } - } -} - -static void PTRCALL -PREFIX(updatePosition)(const ENCODING *enc, - const char *ptr, - const char *end, - POSITION *pos) -{ - while (ptr < end) { - switch (BYTE_TYPE(enc, ptr)) { -#define LEAD_CASE(n) \ - case BT_LEAD ## n: \ - ptr += n; \ - break; - LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) -#undef LEAD_CASE - case BT_LF: - pos->columnNumber = (XML_Size)-1; - pos->lineNumber++; - ptr += MINBPC(enc); - break; - case BT_CR: - pos->lineNumber++; - ptr += MINBPC(enc); - if (ptr != end && BYTE_TYPE(enc, ptr) == BT_LF) - ptr += MINBPC(enc); - pos->columnNumber = (XML_Size)-1; - break; - default: - ptr += MINBPC(enc); - break; - } - pos->columnNumber++; - } -} - -#undef DO_LEAD_CASE -#undef MULTIBYTE_CASES -#undef INVALID_CASES -#undef CHECK_NAME_CASE -#undef CHECK_NAME_CASES -#undef CHECK_NMSTRT_CASE -#undef CHECK_NMSTRT_CASES - -#endif /* XML_TOK_IMPL_C */ diff --git a/source/externals/expat/src/xmltok_impl.h b/source/externals/expat/src/xmltok_impl.h index da0ea60a65..3469c4ae13 100644 --- a/source/externals/expat/src/xmltok_impl.h +++ b/source/externals/expat/src/xmltok_impl.h @@ -1,46 +1,74 @@ /* -Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd -See the file COPYING for copying permission. + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2017-2019 Sebastian Pipping + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. */ enum { - BT_NONXML, - BT_MALFORM, - BT_LT, - BT_AMP, - BT_RSQB, - BT_LEAD2, - BT_LEAD3, - BT_LEAD4, - BT_TRAIL, - BT_CR, - BT_LF, - BT_GT, - BT_QUOT, - BT_APOS, - BT_EQUALS, - BT_QUEST, - BT_EXCL, - BT_SOL, - BT_SEMI, - BT_NUM, - BT_LSQB, - BT_S, - BT_NMSTRT, - BT_COLON, - BT_HEX, - BT_DIGIT, - BT_NAME, - BT_MINUS, - BT_OTHER, /* known not to be a name or name start character */ + BT_NONXML, /* e.g. noncharacter-FFFF */ + BT_MALFORM, /* illegal, with regard to encoding */ + BT_LT, /* less than = "<" */ + BT_AMP, /* ampersand = "&" */ + BT_RSQB, /* right square bracket = "[" */ + BT_LEAD2, /* lead byte of a 2-byte UTF-8 character */ + BT_LEAD3, /* lead byte of a 3-byte UTF-8 character */ + BT_LEAD4, /* lead byte of a 4-byte UTF-8 character */ + BT_TRAIL, /* trailing unit, e.g. second 16-bit unit of a 4-byte char. */ + BT_CR, /* carriage return = "\r" */ + BT_LF, /* line feed = "\n" */ + BT_GT, /* greater than = ">" */ + BT_QUOT, /* quotation character = "\"" */ + BT_APOS, /* apostrophe = "'" */ + BT_EQUALS, /* equal sign = "=" */ + BT_QUEST, /* question mark = "?" */ + BT_EXCL, /* exclamation mark = "!" */ + BT_SOL, /* solidus, slash = "/" */ + BT_SEMI, /* semicolon = ";" */ + BT_NUM, /* number sign = "#" */ + BT_LSQB, /* left square bracket = "[" */ + BT_S, /* white space, e.g. "\t", " "[, "\r"] */ + BT_NMSTRT, /* non-hex name start letter = "G".."Z" + "g".."z" + "_" */ + BT_COLON, /* colon = ":" */ + BT_HEX, /* hex letter = "A".."F" + "a".."f" */ + BT_DIGIT, /* digit = "0".."9" */ + BT_NAME, /* dot and middle dot = "." + chr(0xb7) */ + BT_MINUS, /* minus = "-" */ + BT_OTHER, /* known not to be a name or name start character */ BT_NONASCII, /* might be a name or name start character */ - BT_PERCNT, - BT_LPAR, - BT_RPAR, - BT_AST, - BT_PLUS, - BT_COMMA, - BT_VERBAR + BT_PERCNT, /* percent sign = "%" */ + BT_LPAR, /* left parenthesis = "(" */ + BT_RPAR, /* right parenthesis = "(" */ + BT_AST, /* asterisk = "*" */ + BT_PLUS, /* plus sign = "+" */ + BT_COMMA, /* comma = "," */ + BT_VERBAR /* vertical bar = "|" */ }; #include diff --git a/source/externals/expat/src/xmltok_ns.c b/source/externals/expat/src/xmltok_ns.c new file mode 100644 index 0000000000..fbdd3e3c7b --- /dev/null +++ b/source/externals/expat/src/xmltok_ns.c @@ -0,0 +1,122 @@ +/* This file is included! + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2002 Greg Stein + Copyright (c) 2002 Fred L. Drake, Jr. + Copyright (c) 2002-2006 Karl Waclawek + Copyright (c) 2017-2021 Sebastian Pipping + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#ifdef XML_TOK_NS_C + +const ENCODING * +NS(XmlGetUtf8InternalEncoding)(void) { + return &ns(internal_utf8_encoding).enc; +} + +const ENCODING * +NS(XmlGetUtf16InternalEncoding)(void) { +# if BYTEORDER == 1234 + return &ns(internal_little2_encoding).enc; +# elif BYTEORDER == 4321 + return &ns(internal_big2_encoding).enc; +# else + const short n = 1; + return (*(const char *)&n ? &ns(internal_little2_encoding).enc + : &ns(internal_big2_encoding).enc); +# endif +} + +static const ENCODING *const NS(encodings)[] = { + &ns(latin1_encoding).enc, &ns(ascii_encoding).enc, + &ns(utf8_encoding).enc, &ns(big2_encoding).enc, + &ns(big2_encoding).enc, &ns(little2_encoding).enc, + &ns(utf8_encoding).enc /* NO_ENC */ +}; + +static int PTRCALL +NS(initScanProlog)(const ENCODING *enc, const char *ptr, const char *end, + const char **nextTokPtr) { + return initScan(NS(encodings), (const INIT_ENCODING *)enc, XML_PROLOG_STATE, + ptr, end, nextTokPtr); +} + +static int PTRCALL +NS(initScanContent)(const ENCODING *enc, const char *ptr, const char *end, + const char **nextTokPtr) { + return initScan(NS(encodings), (const INIT_ENCODING *)enc, XML_CONTENT_STATE, + ptr, end, nextTokPtr); +} + +int +NS(XmlInitEncoding)(INIT_ENCODING *p, const ENCODING **encPtr, + const char *name) { + int i = getEncodingIndex(name); + if (i == UNKNOWN_ENC) + return 0; + SET_INIT_ENC_INDEX(p, i); + p->initEnc.scanners[XML_PROLOG_STATE] = NS(initScanProlog); + p->initEnc.scanners[XML_CONTENT_STATE] = NS(initScanContent); + p->initEnc.updatePosition = initUpdatePosition; + p->encPtr = encPtr; + *encPtr = &(p->initEnc); + return 1; +} + +static const ENCODING * +NS(findEncoding)(const ENCODING *enc, const char *ptr, const char *end) { +# define ENCODING_MAX 128 + char buf[ENCODING_MAX] = ""; + char *p = buf; + int i; + XmlUtf8Convert(enc, &ptr, end, &p, p + ENCODING_MAX - 1); + if (ptr != end) + return 0; + *p = 0; + if (streqci(buf, KW_UTF_16) && enc->minBytesPerChar == 2) + return enc; + i = getEncodingIndex(buf); + if (i == UNKNOWN_ENC) + return 0; + return NS(encodings)[i]; +} + +int +NS(XmlParseXmlDecl)(int isGeneralTextEntity, const ENCODING *enc, + const char *ptr, const char *end, const char **badPtr, + const char **versionPtr, const char **versionEndPtr, + const char **encodingName, const ENCODING **encoding, + int *standalone) { + return doParseXmlDecl(NS(findEncoding), isGeneralTextEntity, enc, ptr, end, + badPtr, versionPtr, versionEndPtr, encodingName, + encoding, standalone); +} + +#endif /* XML_TOK_NS_C */ diff --git a/source/externals/expat/src/xmltok_ns.cc b/source/externals/expat/src/xmltok_ns.cc deleted file mode 100644 index c3b88fdf4e..0000000000 --- a/source/externals/expat/src/xmltok_ns.cc +++ /dev/null @@ -1,115 +0,0 @@ -/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. -*/ - -/* This file is included! */ -#ifdef XML_TOK_NS_C - -const ENCODING * -NS(XmlGetUtf8InternalEncoding)(void) -{ - return &ns(internal_utf8_encoding).enc; -} - -const ENCODING * -NS(XmlGetUtf16InternalEncoding)(void) -{ -#if BYTEORDER == 1234 - return &ns(internal_little2_encoding).enc; -#elif BYTEORDER == 4321 - return &ns(internal_big2_encoding).enc; -#else - const short n = 1; - return (*(const char *)&n - ? &ns(internal_little2_encoding).enc - : &ns(internal_big2_encoding).enc); -#endif -} - -static const ENCODING * const NS(encodings)[] = { - &ns(latin1_encoding).enc, - &ns(ascii_encoding).enc, - &ns(utf8_encoding).enc, - &ns(big2_encoding).enc, - &ns(big2_encoding).enc, - &ns(little2_encoding).enc, - &ns(utf8_encoding).enc /* NO_ENC */ -}; - -static int PTRCALL -NS(initScanProlog)(const ENCODING *enc, const char *ptr, const char *end, - const char **nextTokPtr) -{ - return initScan(NS(encodings), (const INIT_ENCODING *)enc, - XML_PROLOG_STATE, ptr, end, nextTokPtr); -} - -static int PTRCALL -NS(initScanContent)(const ENCODING *enc, const char *ptr, const char *end, - const char **nextTokPtr) -{ - return initScan(NS(encodings), (const INIT_ENCODING *)enc, - XML_CONTENT_STATE, ptr, end, nextTokPtr); -} - -int -NS(XmlInitEncoding)(INIT_ENCODING *p, const ENCODING **encPtr, - const char *name) -{ - int i = getEncodingIndex(name); - if (i == UNKNOWN_ENC) - return 0; - SET_INIT_ENC_INDEX(p, i); - p->initEnc.scanners[XML_PROLOG_STATE] = NS(initScanProlog); - p->initEnc.scanners[XML_CONTENT_STATE] = NS(initScanContent); - p->initEnc.updatePosition = initUpdatePosition; - p->encPtr = encPtr; - *encPtr = &(p->initEnc); - return 1; -} - -static const ENCODING * -NS(findEncoding)(const ENCODING *enc, const char *ptr, const char *end) -{ -#define ENCODING_MAX 128 - char buf[ENCODING_MAX]; - char *p = buf; - int i; - XmlUtf8Convert(enc, &ptr, end, &p, p + ENCODING_MAX - 1); - if (ptr != end) - return 0; - *p = 0; - if (streqci(buf, KW_UTF_16) && enc->minBytesPerChar == 2) - return enc; - i = getEncodingIndex(buf); - if (i == UNKNOWN_ENC) - return 0; - return NS(encodings)[i]; -} - -int -NS(XmlParseXmlDecl)(int isGeneralTextEntity, - const ENCODING *enc, - const char *ptr, - const char *end, - const char **badPtr, - const char **versionPtr, - const char **versionEndPtr, - const char **encodingName, - const ENCODING **encoding, - int *standalone) -{ - return doParseXmlDecl(NS(findEncoding), - isGeneralTextEntity, - enc, - ptr, - end, - badPtr, - versionPtr, - versionEndPtr, - encodingName, - encoding, - standalone); -} - -#endif /* XML_TOK_NS_C */ diff --git a/source/externals/g4tools/History b/source/externals/g4tools/History index 0797ec6988..f68118b012 100644 --- a/source/externals/g4tools/History +++ b/source/externals/g4tools/History @@ -1,8 +1,49 @@ # Category g4tools History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-25 Gabriele Cosmo (g4tools-V11-00-13) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1 + in files: spline, THistogram and zlib. + +## 2022-10-13 Guy Barrand (g4tools-V11-00-12) +- tools/fpng, fpng.icc: a pure header, thread safe, png writer. +- tools/toojpeg, toojpeg.icc: a pure header, thread safe, jpeg writer. +- tools/offscreen/session, sg_viewer: to handle offscreen graphics. +- tools/sg/gl2ps_action: revisit lightening logic to be closer than the OpenGL one. +- tools/sg/zb_action: revisit lightening logic to be closer than the OpenGL one. +- tools/sg/zb_action: handle blending (transparency). +- tools/sg/plots_viewer: handle blending (transparency). +- tools/zb/buffer: handle blending (transparency). +- tools/sg/torche, head_light, gl2ps_action, render_action: handle ambient color lightening. +- toolx/sg/GL_action: handle ambient color lightening. +- tools/sg/write_paper: gl2ps, zb formats: handle transparency. +- tools/gl2ps: handle the TOOLS_GL2PS_PORTABLE_SORT to be able to produce same output + file on all platforms. (Related to the fact that qsort, for "same objects", may not + produce the same "equal" sub lists on all platforms). +- tools/version: pass to 6.1.0. + +## 2022-10-10 Guy Barrand (g4tools-V11-00-11) +- intel-icx: fix compilation warnings for the variable "size" + set but not used glutess/render/static_RenderFan, static_RenderStrip. +- intel-icx: fix compilation warnings #3179: deprecated conversion of string literal to char*. + +## 2022-10-05 Guy Barrand (g4tools-V11-00-10) +- tools/typedefs, rroot/file, wroot/file and toolx/Windows/glarea, Qt/session, mpi/wrmpi: + some #ifdef for MinGW. The ones in wroot/file are important to produce good .root files. +- tools/gl2ps: replace the usage of sprintf, by strcpy or std::ostringstream. + +## 2022-10-04 Gabriele Cosmo (g4tools-V11-00-09) +- Fixed compilation warnings on Intel-icx compiler for variables + set but not used in plotter::rep_bins2D_xy_random_one() and + plots::update_sg(). + +## 2022-09-22 Ben Morgan (g4tools-V11-00-08) +- Apply patch for MinGW from [GitHub PR 51](https://github.com/Geant4/geant4/pull/51) ## 2022-06-09 Guy Barrand (g4tools-V11-00-07) - toolx/X11/base_session: show_window(): check that the window is not already mapped. (Else it hangs in the XIfEvent). diff --git a/source/externals/g4tools/History_tools b/source/externals/g4tools/History_tools index fff60577a5..7f6e93c2bc 100644 --- a/source/externals/g4tools/History_tools +++ b/source/externals/g4tools/History_tools @@ -1,8 +1,45 @@ +6.1.0: +- tools/fpng, fpng.icc: a pure header, thread safe, png writer. +- tools/toojpeg, toojpeg.icc: a pure header, thread safe, jpeg writer. +- tools/offscreen/session, sg_viewer: to handle offscreen graphics. +- tools/sg/gl2ps_action: revisit lightening logic to be closer than the OpenGL one. +- tools/sg/zb_action: revisit lightening logic to be closer than the OpenGL one. +- tools/sg/zb_action: handle blending (transparency). +- tools/sg/plots_viewer: handle blending (transparency). +- tools/zb/buffer: handle blending (transparency). +- tools/sg/torche, head_light, gl2ps_action, render_action: handle ambient color lightening. +- toolx/sg/GL_action: handle ambient color lightening. +- tools/sg/write_paper: gl2ps, zb formats: handle transparency. +- tools/gl2ps: handle the TOOLS_GL2PS_PORTABLE_SORT to be able to produce same output + file on all platforms. (Related to the fact that qsort, for "same objects", may not + produce the same "equal" sub lists on all platforms). + +- tools/typedefs, rroot/file, wroot/file and toolx/Windows/glarea, Qt/session, mpi/wrmpi: + some #ifdef for MinGW. The ones in wroot/file are important to produce good .root files. +- tools/gl2ps: replace the usage of sprintf, by strcpy or std::ostringstream. + +- Fixed compilation warnings on Intel-icx compiler for variables + set but not used in plotter::rep_bins2D_xy_random_one() and + plots::update_sg(). +- Apply patch for MinGW from [GitHub PR 51](https://github.com/Geant4/geant4/pull/51) +- toolx/X11/base_session: show_window(): check that the window is not already mapped. (Else it hangs in the XIfEvent). + +- tools/version: pass to 6.1.0. + 6.0.1: +- intel-icx: fix compilation warnings for the variable "size" + set but not used glutess/render/static_RenderFan, static_RenderStrip. +- intel-icx: fix compilation warnings #3179: deprecated conversion of string literal to char*. +- tools/typedefs, rroot/file, wroot/file and toolx/Windows/glarea, Qt/session, mpi/wrmpi: + some #ifdef for MinGW. The ones in wroot/file are importants to produce good .root files. +- tools/gl2ps: replace the usage of sprintf, by strcpy or std::ostringstream. +- Fixed compilation warnings on Intel-icx compiler for variables + set but not used in plotter::rep_bins2D_xy_random_one() and + plots::update_sg(). +- Apply patch for MinGW from [GitHub PR 51](https://github.com/Geant4/geant4/pull/51) - toolx/X11/base_session: show_window(): check that the window is not already mapped. (Else it hangs in the XIfEvent). - tools/version: pass to 6.0.1. - 6.0.0: toolx directory and namespace. - have code related to "externals" under toolx directory and namespaced with toolx. It concerns code related to Qt, Windows, X11, Xt, OpenGL, hdf5, expat, mpi, zlib. - tools/version: have 6.0.0. diff --git a/source/externals/g4tools/include/tools/colorf b/source/externals/g4tools/include/tools/colorf index 3d880e0ab9..9844f50447 100644 --- a/source/externals/g4tools/include/tools/colorf +++ b/source/externals/g4tools/include/tools/colorf @@ -29,6 +29,32 @@ public: return *this; } public: + colorf& operator*=(const colorf& a_v) { + m_data[0] *= a_v.m_data[0]; + m_data[1] *= a_v.m_data[1]; + m_data[2] *= a_v.m_data[2]; + m_data[3] *= a_v.m_data[3]; + return *this; + } + colorf& operator*=(float a_v) { + m_data[0] *= a_v; + m_data[1] *= a_v; + m_data[2] *= a_v; + m_data[3] *= a_v; + return *this; + } +public: + void clamp(float a_min = 0,float a_max = 1) { + if(m_data[0] +#include +#include + +namespace tools { +namespace fpng +{ + // Fast CRC-32 SSE4.1+pclmul or a scalar fallback (slice by 4) + const uint32_t FPNG_CRC32_INIT = 0; + uint32_t fpng_crc32(const void* pData, size_t size, uint32_t prev_crc32 = FPNG_CRC32_INIT); + + // Fast Adler32 SSE4.1 Adler-32 with a scalar fallback. + const uint32_t FPNG_ADLER32_INIT = 1; + uint32_t fpng_adler32(const void* pData, size_t size, uint32_t adler = FPNG_ADLER32_INIT); + + // ---- Compression + enum + { + // Enables computing custom Huffman tables for each file, instead of using the custom global tables. + // Results in roughly 6% smaller files on average, but compression is around 40% slower. + FPNG_ENCODE_SLOWER = 1, + + // Only use raw Deflate blocks (no compression at all). Intended for testing. + FPNG_FORCE_UNCOMPRESSED = 2, + }; + + // Fast PNG encoding. The resulting file can be decoded either using a standard PNG decoder or by the fpng_decode_memory() function below. + // pImage: pointer to RGB or RGBA image pixels, R first in memory, B/A last. + // w/h - image dimensions. Image's row pitch in bytes must is w*num_chans. + // num_chans must be 3 or 4. + bool fpng_encode_image_to_memory(const void* pImage, uint32_t w, uint32_t h, uint32_t num_chans, std::vector& out_buf, uint32_t flags = 0); + + // Fast PNG encoding to the specified file. + bool fpng_encode_image_to_file(const char* pFilename, const void* pImage, uint32_t w, uint32_t h, uint32_t num_chans, uint32_t flags = 0); + + // ---- Decompression + + enum + { + FPNG_DECODE_SUCCESS = 0, // file is a valid PNG file and written by FPNG and the decode succeeded + + FPNG_DECODE_NOT_FPNG, // file is a valid PNG file, but it wasn't written by FPNG so you should try decoding it with a general purpose PNG decoder + + FPNG_DECODE_INVALID_ARG, // invalid function parameter + + FPNG_DECODE_FAILED_NOT_PNG, // file cannot be a PNG file + FPNG_DECODE_FAILED_HEADER_CRC32, // a chunk CRC32 check failed, file is likely corrupted or not PNG + FPNG_DECODE_FAILED_INVALID_DIMENSIONS, // invalid image dimensions in IHDR chunk (0 or too large) + FPNG_DECODE_FAILED_DIMENSIONS_TOO_LARGE, // decoding the file fully into memory would likely require too much memory (only on 32bpp builds) + FPNG_DECODE_FAILED_CHUNK_PARSING, // failed while parsing the chunk headers, or file is corrupted + FPNG_DECODE_FAILED_INVALID_IDAT, // IDAT data length is too small and cannot be valid, file is either corrupted or it's a bug + + // fpng_decode_file() specific errors + FPNG_DECODE_FILE_OPEN_FAILED, + FPNG_DECODE_FILE_TOO_LARGE, + FPNG_DECODE_FILE_READ_FAILED, + FPNG_DECODE_FILE_SEEK_FAILED + }; + + // Fast PNG decoding of files ONLY created by fpng_encode_image_to_memory() or fpng_encode_image_to_file(). + // If fpng_get_info() or fpng_decode_memory() returns FPNG_DECODE_NOT_FPNG, you should decode the PNG by falling back to a general purpose decoder. + // + // fpng_get_info() parses the PNG header and iterates through all chunks to determine if it's a file written by FPNG, but does not decompress the actual image data so it's relatively fast. + // + // pImage, image_size: Pointer to PNG image data and its size + // width, height: output image's dimensions + // channels_in_file: will be 3 or 4 + // + // Returns FPNG_DECODE_SUCCESS on success, otherwise one of the failure codes above. + // If FPNG_DECODE_NOT_FPNG is returned, you must decompress the file with a general purpose PNG decoder. + // If another error occurs, the file is likely corrupted or invalid, but you can still try to decompress the file with another decoder (which will likely fail). + int fpng_get_info(const void* pImage, uint32_t image_size, uint32_t& width, uint32_t& height, uint32_t& channels_in_file); + + // fpng_decode_memory() decompresses 24/32bpp PNG files ONLY encoded by this module. + // If the image was written by FPNG, it will decompress the image data, otherwise it will return FPNG_DECODE_NOT_FPNG in which case you should fall back to a general purpose PNG decoder (lodepng, stb_image, libpng, etc.) + // + // pImage, image_size: Pointer to PNG image data and its size + // out: Output 24/32bpp image buffer + // width, height: output image's dimensions + // channels_in_file: will be 3 or 4 + // desired_channels: must be 3 or 4 + // + // If the image is 24bpp and 32bpp is requested, the alpha values will be set to 0xFF. + // If the image is 32bpp and 24bpp is requested, the alpha values will be discarded. + // + // Returns FPNG_DECODE_SUCCESS on success, otherwise one of the failure codes above. + // If FPNG_DECODE_NOT_FPNG is returned, you must decompress the file with a general purpose PNG decoder. + // If another error occurs, the file is likely corrupted or invalid, but you can still try to decompress the file with another decoder (which will likely fail). + int fpng_decode_memory(const void* pImage, uint32_t image_size, std::vector& out, uint32_t& width, uint32_t& height, uint32_t& channels_in_file, uint32_t desired_channels); + + int fpng_decode_file(const char* pFilename, std::vector& out, uint32_t& width, uint32_t& height, uint32_t& channels_in_file, uint32_t desired_channels); + +} // namespace fpng +} // namespace tools + +//G.Barrand specific: +#include "fpng.icc" + +#include "sout" + +#include + +namespace tools { +namespace fpng { + +inline bool write(std::ostream& a_out, + const std::string& a_file, + unsigned char* a_buffer, + unsigned int a_width, + unsigned int a_height, + unsigned int a_bpp) { + if((a_bpp!=3)&&(a_bpp!=4)) { + a_out << "tools::fpng::write : bpp " << a_bpp << " not handled." << std::endl; + return false; + } + if(!fpng_encode_image_to_file(a_file.c_str(),a_buffer, a_width, a_height, a_bpp)) { + a_out << "tools::fpng::write : encode() failed for file " << sout(a_file) << "." << std::endl; + return false; + } + return true; +} + +}} + +#endif //tools_fpng diff --git a/source/externals/g4tools/include/tools/fpng.icc b/source/externals/g4tools/include/tools/fpng.icc new file mode 100644 index 0000000000..cc477d8270 --- /dev/null +++ b/source/externals/g4tools/include/tools/fpng.icc @@ -0,0 +1,2766 @@ + +// G.Barrand: pure header version of fpng found at https://github.com/richgel999/fpng + +// fpng.cpp 1.0.6 - Fast 24/32bpp .PNG image writer/reader. See unlicense at the end of this file. +// PNG's generated by this code have been tested to load successfully with stb_image.h, lodepng.cpp, wuffs, libpng, and pngcheck. +// +// Uses code from the simple PNG writer function by Alex Evans, 2011. Released into the public domain: https://gist.github.com/908299 +// Some low-level Deflate/Huffman functions derived from the original 2011 Google Code version of miniz (public domain by R. Geldreich, Jr.): https://code.google.com/archive/p/miniz/ +// Low-level Huffman code size function: public domain, originally written by: Alistair Moffat, alistair@cs.mu.oz.au, Jyrki Katajainen, jyrki@diku.dk, November 1996. +// + +#include +#include +#include + +namespace tools { +namespace fpng +{ + static const int FPNG_FALSE = 0; + static const uint8_t FPNG_FDEC_VERSION = 0; + static const uint32_t FPNG_MAX_SUPPORTED_DIM = 1 << 24; + + template static inline S maximum(S a, S b) { return (a > b) ? a : b; } + template static inline S minimum(S a, S b) { return (a < b) ? a : b; } + + // A good compiler should be able to optimize these routines - hopefully. They are crucial for performance. + static inline uint32_t READ_LE32(const void* p) + { + const uint8_t* pBytes = (const uint8_t*)p; + return ((uint32_t)pBytes[0]) | (((uint32_t)pBytes[1]) << 8U) | (((uint32_t)pBytes[2]) << 16U) | (((uint32_t)pBytes[3]) << 24U); + } + + static inline uint32_t READ_BE32(const void* p) + { + const uint8_t* pBytes = (const uint8_t*)p; + return ((uint32_t)pBytes[3]) | (((uint32_t)pBytes[2]) << 8U) | (((uint32_t)pBytes[1]) << 16U) | (((uint32_t)pBytes[0]) << 24U); + } + + static inline void WRITE_LE32(const void* p, uint32_t v) + { + uint8_t* pBytes = (uint8_t*)p; + pBytes[0] = (uint8_t)(v); + pBytes[1] = (uint8_t)(v >> 8); + pBytes[2] = (uint8_t)(v >> 16); + pBytes[3] = (uint8_t)(v >> 24); + } + + static inline void WRITE_LE64(const void* p, uint64_t v) + { + uint8_t* pBytes = (uint8_t*)p; + pBytes[0] = (uint8_t)(v); + pBytes[1] = (uint8_t)(v >> 8); + pBytes[2] = (uint8_t)(v >> 16); + pBytes[3] = (uint8_t)(v >> 24); + pBytes[4] = (uint8_t)(v >> 32); + pBytes[5] = (uint8_t)(v >> 40); + pBytes[6] = (uint8_t)(v >> 48); + pBytes[7] = (uint8_t)(v >> 56); + } + + // Customized the very common case of reading a 24bpp pixel from memory + static inline uint32_t READ_RGB_PIXEL(const void* p) + { + const uint8_t* pBytes = (const uint8_t*)p; + return ((uint32_t)pBytes[0]) | (((uint32_t)pBytes[1]) << 8U) | (((uint32_t)pBytes[2]) << 16U); + } + + // See "Slicing by 4" CRC-32 algorithm here: + // https://create.stephan-brumme.com/crc32/ + + // Precomputed 4KB of CRC-32 tables + static const uint32_t g_crc32_4[4][256] = { + {00, 016701630226, 035603460454, 023102250672, 0733342031, 016032572217, 035130722465, 023631112643, 01666704062, 017167134244, 034065364436, 022764554610, 01155446053, 017654276275, 034756026407, 022057616621, 03555610144, 015254020362, 036356270510, 020457440736, 03266552175, 015567362353, 036465132521, 020364702707, 02333114126, 014432724300, 037530574572, 021231344754, 02400256117, 014301466331, 037203636543, 021502006765, + 07333420310, 011432210136, 032530040744, 024231670562, 07400762321, 011301152107, 032203302775, 024502532553, 06555324372, 010254514154, 033356744726, 025457174500, 06266066343, 010567656165, 033465406717, 025364236531, 04666230254, 012167400072, 031065650600, 027764060426, 04155172265, 012654742043, 031756512631, 027057322417, 05000534236, 013701304010, 030603154662, 026102764444, 05733676207, 013032046021, 030130216653, 026631426475, + 016667040620, 0166670406, 023064420274, 035765210052, 016154302611, 0655532437, 023757762245, 035056152063, 017001744642, 01700174464, 022602324216, 034103514030, 017732406673, 01033236455, 022131066227, 034630656001, 015332650764, 03433060542, 020531230330, 036230400116, 015401512755, 03300322573, 020202172301, 036503742127, 014554154706, 02255764520, 021357534352, 037456304174, 014267216737, 02566426511, 021464676363, 037365046145, + 011554460530, 07255250716, 024357000164, 032456630342, 011267722501, 07566112727, 024464342155, 032365572373, 010332364552, 06433554774, 025531704106, 033230134320, 010401026563, 06300616745, 025202446137, 033503276311, 012001270474, 04700440652, 027602610020, 031103020206, 012732132445, 04033702663, 027131552011, 031630362237, 013667574416, 05166344630, 026064114042, 030765724264, 013154636427, 05655006601, 026757256073, 030056466255, + 035556101440, 023257731666, 0355561014, 016454351232, 035265243471, 023564473657, 0466623025, 016367013203, 034330605422, 022431035604, 01533265076, 017232455250, 034403547413, 022302377635, 01200127047, 017501717261, 036003711504, 020702121722, 03600371150, 015101541376, 036730453535, 020031263713, 03133033161, 015632603347, 037665015566, 021164625740, 02066475132, 014767245314, 037156357557, 021657567771, 02755737103, 014054107325, + 032665521750, 024164311576, 07066141304, 011767771122, 032156663761, 024657053547, 07755203335, 011054433113, 033003225732, 025702415514, 06600645366, 010101075140, 033730167703, 025031757525, 06133507357, 010632337171, 031330331614, 027431501432, 04533751240, 012232161066, 031403073625, 027302643403, 04200413271, 012501223057, 030556435676, 026257205450, 05355055222, 013454665004, 030265777647, 026564147461, 05466317213, 013367527035, + 023331141260, 035430771046, 016532521634, 0233311412, 023402203251, 035303433077, 016201663605, 0500053423, 022557645202, 034256075024, 017354225656, 01455415470, 022264507233, 034565337015, 017467167667, 01366757441, 020664751324, 036165161102, 015067331770, 03766501556, 020157413315, 036656223133, 015754073741, 03055643567, 021002055346, 037703665160, 014601435712, 02100205534, 021731317377, 037030527151, 014132777723, 02633147505, + 024002561170, 032703351356, 011601101524, 07100731702, 024731623141, 032030013367, 011132243515, 07633473733, 025664265112, 033165455334, 010067605546, 06766035760, 025157127123, 033656717305, 010754547577, 06055377751, 027557371034, 031256541212, 012354711460, 04455121646, 027264033005, 031565603223, 012467453451, 04366263677, 026331475056, 030430245270, 013532015402, 05233625624, 026402737067, 030303107241, 013201357433, 05500567615, + }, { 00,03106630501,06215461202,05313251703,014433142404,017535772105,012626523606,011720313307,031066305010,032160535511,037273764212,034375154713,025455247414,026553477115,023640626616,020746016317,011260411121,012366221420,017075070323,014173640622,05653553525,06755363024,03446132727,0540702226,020206714131,023300124430,026013375333,025115545632,034635656535,037733066034,032420237737,031526407236, + 022541022242,021447612743,024754443040,027652273541,036172160646,035074750347,030367501444,033261331145,013527327252,010421517753,015732746050,016634176551,07114265656,04012455357,01301604454,02207034155,033721433363,030627203662,035534052161,036432662460,027312571767,024214341266,021107110565,022001720064,02747736373,01641106672,04552357171,07454567470,016374674777,015272044276,010161215575,013067425074, + 036036247405,035130477104,030223626607,033325016306,022405305001,021503535500,024610764203,027716154702,07050142415,04156772114,01245523617,02343313316,013463000011,010565630510,015676461213,016770251712,027256656524,024350066025,021043237726,022145407227,033665714120,030763124421,035470375322,036576545623,016230553534,015336363035,010025132736,013123702237,02603411130,01705221431,04416070332,07510640633, + 014577265647,017471455346,012762604445,011664034144,0144327243,03042517742,06351746041,05257176540,025511160657,026417750356,023704501455,020602331154,031122022253,032024612752,037337443051,034231273550,05717674766,06611044267,03502215564,0404425065,011324736362,012222106663,017131357160,014037567461,034771571776,037677341277,032564110574,031462720075,020342433372,023244203673,026157052170,025051662471, + 07340714113,04246124412,01155375311,02053545610,013773656517,010675066016,015566237715,016460407214,036326411103,035220221402,030133070301,033035640600,022715553507,021613363006,024500132705,027406702204,016120305032,015026535533,010335764230,013233154731,02513247436,01415477137,04706626634,07600016335,027146000022,024040630523,021353461220,022255251721,033575142426,030473772127,035760523624,036666313325, + 025601736351,026707106650,023414357153,020512567452,031232674755,032334044254,037027215557,034121425056,014667433341,017761203640,012472052143,011574662442,0254571745,03352341244,06041110547,05147720046,034461327270,037567517771,032674746072,031772176573,020052265674,023154455375,026247604476,025341034177,05407022260,06501612761,03612443062,0714273563,011034160664,012132750365,017221501466,014327331167, + 031376553516,032270363017,037163132714,034065702215,025745411112,026643221413,023550070310,020456640611,0310656506,03216066007,06105237704,05003407205,014723714102,017625124403,012536375300,011430545601,020116142437,023010772136,026303523635,025205313334,034525000033,037423630532,032730461231,031636251730,011170247427,012076477126,017365626625,014263016324,05543305023,06445535522,03756764221,0650154720, + 013637571754,010731341255,015422110556,016524720057,07204433350,04302203651,01011052152,02117662453,022651674744,021757044245,024444215546,027542425047,036262736340,035364106641,030077357142,033171567443,02457160675,01551750374,04642501477,07744331176,016064022271,015162612770,010271443073,013377273572,033431265665,030537455364,035624604467,036722034166,027002327261,024104517760,021217746063,022311176562, + }, { 00,0160465067,0341152156,0221537131,0702324334,0662741353,0443276262,0523613205,01604650670,01764235617,01545702726,01425367741,01106574544,01066111523,01247426412,01327043475,03411521560,03571144507,03750473436,03630016451,03313605654,03273260633,03052757702,03132332765,02215371310,02375714377,02154223246,02034646221,02517055024,02477430043,02656107172,02736562115, + 07023243340,07143626327,07362311216,07202774271,07721167074,07641502013,07460035122,07500450145,06627413530,06747076557,06566541466,06406124401,06125737604,06045352663,06264665752,06304200735,04432762620,04552307647,04773630776,04613255711,04330446514,04250023573,04071514442,04111171425,05236132050,05356557037,05177060106,05017405161,05534216364,05454673303,05675344232,05715721255, + 016046506700,016126163767,016307454656,016267031631,016744622434,016624247453,016405770562,016565315505,017642356170,017722733117,017503204026,017463661041,017140072244,017020417223,017201120312,017361545375,015457027260,015537442207,015716175336,015676510351,015355303154,015235766133,015014251002,015174634065,014253677410,014333212477,014112725546,014072340521,014551553724,014431136743,014610401672,014770064615, + 011065745440,011105320427,011324617516,011244272571,011767461774,011607004713,011426533622,011546156645,010661115230,010701570257,010520047366,010440422301,010163231104,010003654163,010222363052,010342706035,012474264120,012514601147,012735336076,012655753011,012376140214,012216525273,012037012342,012157477325,013270434750,013310051737,013131566606,013051103661,013572710464,013412375403,013633642532,013753227555, + 034115215600,034075670667,034254347756,034334722731,034617131534,034777554553,034556063462,034436406405,035711445070,035671020017,035450517126,035530172141,035013761344,035173304323,035352633212,035232256275,037504734360,037464351307,037645666236,037725203251,037206410054,037366075033,037147542102,037027127165,036300164510,036260501577,036041036446,036121453421,036402240624,036562625643,036743312772,036623777715, + 033136056540,033056433527,033277104416,033317561471,033634372674,033754717613,033575220722,033415645745,032732606330,032652263357,032473754266,032513331201,032030522004,032150147063,032371470152,032211015135,030527577020,030447112047,030666425176,030706040111,030225653314,030345236373,030164701242,030004364225,031323327650,031243742637,031062275706,031102610761,031421003564,031541466503,031760151432,031600534455, + 022153713100,022033376167,022212641056,022372224031,022651437234,022731052253,022510565362,022470100305,023757143770,023637526717,023416011626,023576474641,023055267444,023135602423,023314335512,023274750575,021542232460,021422657407,021603360536,021763705551,021240116754,021320573733,021101044602,021061421665,020346462210,020226007277,020007530346,020167155321,020444746124,020524323143,020705614072,020665271015, + 025170550240,025010135227,025231402316,025351067371,025672674174,025712211113,025533726022,025453343045,024774300430,024614765457,024435252566,024555637501,024076024704,024116441763,024337176652,024257513635,026561071720,026401414747,026620123676,026740546611,026263355414,026303730473,026122207542,026042662525,027365621150,027205244137,027024773006,027144316061,027467505264,027507160203,027726457332,027646032355, + }, { 00,027057063545,025202344213,02255327756,021730513527,06767570062,04532657734,023565634271,030555024357,017502047612,015757360144,032700303401,011265537670,036232554335,034067673463,013030610126,012006253637,035051230372,037204117424,010253174161,033736740310,014761723655,016534404103,031563467446,022553277560,05504214025,07751133773,020706150236,03263764047,024234707502,026061420254,01036443711, + 024014527476,03043544133,01216663665,026241600320,05724034151,022773057414,020526370342,07571313607,014541503721,033516560264,031743647532,016714624077,035271010206,012226073743,010073354015,037024337550,036012774241,011045717704,013210430052,034247453517,017722267766,030775204223,032520123575,015577140030,06547750116,021510733453,023745414305,04712477640,027277243431,0220220174,02075107622,025022164367, + 023305054075,04352037530,06107310266,021150373723,02435547552,025462524017,027637603741,0660660204,013650070322,034607013667,036452334131,011405357474,032160563605,015137500340,017362627416,030335644153,031303207642,016354264307,014101143451,033156120114,010433714365,037464777620,035631450176,012666433433,01656223515,026601240050,024454167706,03403104243,020166730032,07131753577,05364474221,022333417764, + 07311573403,020346510146,022113637610,05144654355,026421060124,01476003461,03623324337,024674347672,037644557754,010613534211,012446613547,035411670002,016174044273,031123027736,033376300060,014321363525,015317720234,032340743771,030115464027,017142407562,034427233713,013470250256,011625177500,036672114045,025642704163,02615767426,0440440370,027417423635,04172217444,023125274101,021370153657,06327130312, + 035526333073,012571350536,010724077260,037773014725,014216620554,033241643011,031014564747,016043507202,05073317324,022024374661,020271053137,07226030472,024743604603,03714667346,01541540410,026516523155,027520160644,0577103301,02722224457,025775247112,06210473363,021247410626,023012737170,04045754435,017075144513,030022127056,032277200700,015220263245,036745457034,011712434571,013547713227,034510770762, + 011532614405,036565677140,034730550616,013767533353,030202307122,017255364467,015000043331,032057020674,021067630752,06030653217,04265574541,023232517004,0757323275,027700340730,025555067066,02502004523,03534447232,024563424777,026736703021,01761760564,022204154715,05253137250,07006210506,020051273043,033061463165,014036400420,016263727376,031234744633,012751170442,035706113107,037553234651,010504257314, + 016623367006,031674304543,033421023215,014476040750,037113674521,010144617064,012311530732,035346553277,026376343351,01321320614,03174007142,024123064407,07446650676,020411633333,022644514465,05613577120,04625134631,023672157374,021427270422,06470213167,025115427316,02142444653,0317763105,027340700440,034370110566,013327173023,011172254775,036125237230,015440403041,032417460504,030642747252,017615724717, + 032637640470,015660623135,017435504663,030462567326,013107353157,034150330412,036305017344,011352074601,02362664727,025335607262,027160520534,0137543071,023452377200,04405314745,06650033013,021607050556,020631413247,07666470702,05433757054,022464734511,01101100760,026156163225,024303244573,03354227036,010364437110,037333454455,035166773303,012131710646,031454124437,016403147172,014656260624,033601203361, + } }; + + static uint32_t crc32_slice_by_4(const void* pData, size_t data_len, uint32_t cur_crc32 = 0) + { + uint32_t crc = ~cur_crc32; + const uint32_t* pData32 = static_cast(pData); + + for (; data_len >= sizeof(uint32_t); ++pData32, data_len -= 4) + { + uint32_t v = READ_LE32(pData32) ^ crc; + crc = g_crc32_4[0][v >> 24] ^ g_crc32_4[1][(v >> 16) & 0xFF] ^ g_crc32_4[2][(v >> 8) & 0xFF] ^ g_crc32_4[3][v & 0xFF]; + } + + for (const uint8_t* pData8 = reinterpret_cast(pData32); data_len; --data_len) + crc = (crc >> 8) ^ g_crc32_4[0][(crc & 0xFF) ^ *pData8++]; + + return ~crc; + } + + inline uint32_t fpng_crc32(const void* pData, size_t size, uint32_t prev_crc32) + { + return crc32_slice_by_4(pData, size, prev_crc32); + } + + static uint32_t fpng_adler32_scalar(const uint8_t* ptr, size_t buf_len, uint32_t adler) + { + uint32_t i, s1 = (uint32_t)(adler & 0xffff), s2 = (uint32_t)(adler >> 16); uint32_t block_len = (uint32_t)(buf_len % 5552); + if (!ptr) return FPNG_ADLER32_INIT; + while (buf_len) { + for (i = 0; i + 7 < block_len; i += 8, ptr += 8) { + s1 += ptr[0], s2 += s1; s1 += ptr[1], s2 += s1; s1 += ptr[2], s2 += s1; s1 += ptr[3], s2 += s1; + s1 += ptr[4], s2 += s1; s1 += ptr[5], s2 += s1; s1 += ptr[6], s2 += s1; s1 += ptr[7], s2 += s1; + } + for (; i < block_len; ++i) s1 += *ptr++, s2 += s1; + s1 %= 65521U, s2 %= 65521U; buf_len -= block_len; block_len = 5552; + } + return (s2 << 16) + s1; + } + + inline uint32_t fpng_adler32(const void* pData, size_t size, uint32_t adler) + { + return fpng_adler32_scalar((const uint8_t*)pData, size, adler); + } + + // Ensure we've been configured for endianness correctly. + static inline bool endian_check() + { + uint32_t endian_check = 0; + WRITE_LE32(&endian_check, 0x1234ABCD); + const uint32_t first_byte = reinterpret_cast(&endian_check)[0]; + return first_byte == 0xCD; + } + + static const uint16_t g_defl_len_sym[256] = { + 257,258,259,260,261,262,263,264,265,265,266,266,267,267,268,268,269,269,269,269,270,270,270,270,271,271,271,271,272,272,272,272, + 273,273,273,273,273,273,273,273,274,274,274,274,274,274,274,274,275,275,275,275,275,275,275,275,276,276,276,276,276,276,276,276, + 277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278, + 279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280, + 281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281, + 282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282, + 283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283, + 284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,285 }; + + static const uint8_t g_defl_len_extra[256] = { + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0 }; + + static const uint8_t g_defl_small_dist_sym[512] = { + 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,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17 }; + + static const uint32_t g_bitmasks[17] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000F, 0x001F, 0x003F, 0x007F, 0x00FF, 0x01FF, 0x03FF, 0x07FF, 0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF }; + + // Huffman tables generated by fpng_test -t @filelist.txt. Total alpha files : 1440, Total opaque files : 5627. + // Feel free to retrain the encoder on your opaque/alpha PNG files by setting FPNG_TRAIN_HUFFMAN_TABLES and running fpng_test with the -t option. + static const uint8_t g_dyn_huff_3[] = { + 120, 1, 237, 195, 3, 176, 110, 89, 122, 128, 225, 247, 251, 214, 218, 248, 113, 124, 173, 190, 109, 12, 50, 201, 196, 182, 109, 219, 182, 109, 219, 182, + 109, 219, 201, 36, 147, 153, 105, 235, 246, 53, 142, 207, 143, 141, 181, 214, 151, 93, 117, 170, 78, 117, 117, 58, 206, 77, 210, 217, 169, 122 }; + const uint32_t DYN_HUFF_3_BITBUF = 30, DYN_HUFF_3_BITBUF_SIZE = 7; + static const struct { uint8_t m_code_size; uint16_t m_code; } g_dyn_huff_3_codes[288] = { + {2,0},{4,2},{4,10},{5,14},{5,30},{6,25},{6,57},{6,5},{6,37},{7,3},{7,67},{7,35},{7,99},{8,11},{8,139},{8,75},{8,203},{8,43},{8,171},{8,107},{9,135},{9,391},{9,71},{9,327},{9,199},{9,455},{9,39},{9,295},{9,167},{9,423},{9,103},{10,183}, + {9,359},{10,695},{10,439},{10,951},{10,119},{10,631},{10,375},{10,887},{10,247},{10,759},{10,503},{11,975},{11,1999},{11,47},{11,1071},{12,1199},{11,559},{12,3247},{12,687},{11,1583},{12,2735},{12,1711},{12,3759},{12,431},{12,2479},{12,1455},{12,3503},{12,943},{12,2991},{12,1967},{12,4015},{12,111}, + {12,2159},{12,1135},{12,3183},{12,623},{12,2671},{12,1647},{12,3695},{12,367},{12,2415},{12,1391},{12,3439},{12,879},{12,2927},{12,1903},{12,3951},{12,239},{12,2287},{12,1263},{12,3311},{12,751},{12,2799},{12,1775},{12,3823},{12,495},{12,2543},{12,1519},{12,3567},{12,1007},{12,3055},{12,2031},{12,4079},{12,31}, + {12,2079},{12,1055},{12,3103},{12,543},{12,2591},{12,1567},{12,3615},{12,287},{12,2335},{12,1311},{12,3359},{12,799},{12,2847},{12,1823},{12,3871},{12,159},{12,2207},{12,1183},{12,3231},{12,671},{12,2719},{12,1695},{12,3743},{12,415},{12,2463},{12,1439},{12,3487},{12,927},{12,2975},{12,1951},{12,3999},{12,95}, + {12,2143},{12,1119},{12,3167},{12,607},{12,2655},{12,1631},{12,3679},{12,351},{12,2399},{12,1375},{12,3423},{12,863},{12,2911},{12,1887},{12,3935},{12,223},{12,2271},{12,1247},{12,3295},{12,735},{12,2783},{12,1759},{12,3807},{12,479},{12,2527},{12,1503},{12,3551},{12,991},{12,3039},{12,2015},{12,4063},{12,63}, + {12,2111},{12,1087},{12,3135},{12,575},{12,2623},{12,1599},{12,3647},{12,319},{12,2367},{12,1343},{12,3391},{12,831},{12,2879},{12,1855},{12,3903},{12,191},{12,2239},{12,1215},{12,3263},{12,703},{12,2751},{12,1727},{12,3775},{12,447},{12,2495},{12,1471},{12,3519},{12,959},{12,3007},{12,1983},{12,4031},{12,127}, + {12,2175},{12,1151},{12,3199},{12,639},{12,2687},{12,1663},{12,3711},{12,383},{12,2431},{12,1407},{12,3455},{12,895},{12,2943},{11,303},{12,1919},{12,3967},{11,1327},{12,255},{11,815},{11,1839},{11,175},{10,1015},{10,15},{10,527},{10,271},{10,783},{10,143},{10,655},{10,399},{10,911},{10,79},{10,591}, + {9,231},{10,335},{9,487},{9,23},{9,279},{9,151},{9,407},{9,87},{9,343},{9,215},{9,471},{9,55},{8,235},{8,27},{8,155},{8,91},{8,219},{8,59},{8,187},{8,123},{7,19},{7,83},{7,51},{7,115},{6,21},{6,53},{6,13},{6,45},{5,1},{5,17},{5,9},{4,6}, + {12,2303},{6,29},{0,0},{0,0},{8,251},{0,0},{0,0},{8,7},{0,0},{10,847},{0,0},{10,207},{12,1279},{10,719},{12,3327},{12,767},{12,2815},{12,1791},{12,3839},{12,511},{12,2559},{12,1535},{9,311},{12,3583},{12,1023},{12,3071},{10,463},{12,2047},{6,61},{12,4095},{0,0},{0,0} + }; + + static const uint8_t g_dyn_huff_4[] = { + 120, 1, 229, 196, 99, 180, 37, 103, 218, 128, 225, 251, 121, 171, 106, 243, 216, 231, 180, 109, 196, 182, 51, 51, 73, 6, 201, 216, 182, 109, 219, 182, + 17, 140, 98, 219, 102, 219, 60, 125, 172, 205, 170, 122, 159, 111, 213, 143, 179, 214, 94, 189, 58, 153, 104, 166, 103, 190, 247, 199, 117 }; + const uint32_t DYN_HUFF_4_BITBUF = 1, DYN_HUFF_4_BITBUF_SIZE = 2; + static const struct { uint8_t m_code_size; uint16_t m_code; } g_dyn_huff_4_codes[288] = { + {2,0},{4,2},{5,6},{6,30},{6,62},{6,1},{7,41},{7,105},{7,25},{7,89},{7,57},{7,121},{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},{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},{10,7},{10,519},{10,263},{10,775},{10,135},{10,647},{10,391},{10,903},{10,71},{10,583},{10,327},{10,839},{10,199},{10,711},{10,455}, + {10,967},{10,39},{10,551},{10,295},{10,807},{10,167},{10,679},{10,423},{10,935},{10,103},{10,615},{11,463},{11,1487},{11,975},{10,359},{10,871},{10,231},{11,1999},{11,47},{11,1071},{11,559},{10,743},{10,487},{11,1583},{11,303},{11,1327},{11,815},{11,1839},{11,175},{11,1199},{11,687},{11,1711}, + {11,431},{11,1455},{11,943},{11,1967},{11,111},{11,1135},{11,623},{11,1647},{11,367},{11,1391},{11,879},{11,1903},{11,239},{11,1263},{11,751},{11,1775},{11,495},{11,1519},{11,1007},{11,2031},{11,31},{11,1055},{11,543},{11,1567},{11,287},{11,1311},{11,799},{11,1823},{11,159},{11,1183},{11,671},{11,1695}, + {11,415},{11,1439},{11,927},{11,1951},{11,95},{11,1119},{11,607},{11,1631},{11,351},{11,1375},{11,863},{11,1887},{11,223},{11,1247},{11,735},{11,1759},{11,479},{11,1503},{11,991},{11,2015},{11,63},{11,1087},{11,575},{11,1599},{11,319},{11,1343},{11,831},{11,1855},{11,191},{11,1215},{11,703},{11,1727}, + {11,447},{11,1471},{11,959},{11,1983},{11,127},{11,1151},{11,639},{11,1663},{11,383},{10,999},{10,23},{10,535},{10,279},{11,1407},{11,895},{11,1919},{11,255},{11,1279},{10,791},{10,151},{10,663},{10,407},{10,919},{10,87},{10,599},{10,343},{10,855},{10,215},{10,727},{10,471},{10,983},{10,55}, + {10,567},{10,311},{10,823},{10,183},{10,695},{10,439},{10,951},{10,119},{10,631},{10,375},{10,887},{10,247},{10,759},{10,503},{10,1015},{10,15},{10,527},{10,271},{10,783},{10,143},{10,655},{10,399},{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},{8,189},{9,123},{8,125},{8,253},{8,3},{8,131},{8,67},{8,195},{8,35},{8,163},{8,99},{8,227},{8,19},{7,5},{7,69},{7,37},{7,101},{7,21},{7,85},{6,33},{6,17},{6,49},{5,22},{4,10}, + {12,2047},{0,0},{6,9},{0,0},{0,0},{0,0},{8,147},{0,0},{0,0},{7,53},{0,0},{9,379},{0,0},{9,251},{10,911},{10,79},{11,767},{10,591},{10,335},{10,847},{10,207},{10,719},{11,1791},{11,511},{9,507},{11,1535},{11,1023},{12,4095},{5,14},{0,0},{0,0},{0,0} + }; + +#define TOOLS_FPNG_PUT_BITS(bb, ll) do { uint32_t b = bb, l = ll; assert(/*(l) >= 0 &&*/ (l) <= 16); assert((b) < (1ULL << (l))); bit_buf |= (((uint64_t)(b)) << bit_buf_size); bit_buf_size += (l); assert(bit_buf_size <= 64); } while(0) +#define TOOLS_FPNG_PUT_BITS_CZ(bb, ll) do { uint32_t b = bb, l = ll; assert((l) >= 1 && (l) <= 16); assert((b) < (1ULL << (l))); bit_buf |= (((uint64_t)(b)) << bit_buf_size); bit_buf_size += (l); assert(bit_buf_size <= 64); } while(0) + +#define TOOLS_FPNG_PUT_BITS_FLUSH do { \ + if ((dst_ofs + 8) > dst_buf_size) \ + return 0; \ + WRITE_LE64(pDst + dst_ofs, bit_buf); \ + uint32_t bits_to_shift = bit_buf_size & ~7; \ + dst_ofs += (bits_to_shift >> 3); \ + assert(bits_to_shift < 64); \ + bit_buf = bit_buf >> bits_to_shift; \ + bit_buf_size -= bits_to_shift; \ +} while(0) + +#define TOOLS_FPNG_PUT_BITS_FORCE_FLUSH do { \ + while (bit_buf_size > 0) \ + { \ + if ((dst_ofs + 1) > dst_buf_size) \ + return 0; \ + *(uint8_t*)(pDst + dst_ofs) = (uint8_t)bit_buf; \ + dst_ofs++; \ + bit_buf >>= 8; \ + bit_buf_size -= 8; \ + } \ +} while(0) + + enum + { + DEFL_MAX_HUFF_TABLES = 3, + DEFL_MAX_HUFF_SYMBOLS = 288, + DEFL_MAX_HUFF_SYMBOLS_0 = 288, + DEFL_MAX_HUFF_SYMBOLS_1 = 32, + DEFL_MAX_HUFF_SYMBOLS_2 = 19, + DEFL_LZ_DICT_SIZE = 32768, + DEFL_LZ_DICT_SIZE_MASK = DEFL_LZ_DICT_SIZE - 1, + DEFL_MIN_MATCH_LEN = 3, + DEFL_MAX_MATCH_LEN = 258 + }; + + struct defl_huff + { + uint16_t m_huff_count[DEFL_MAX_HUFF_TABLES][DEFL_MAX_HUFF_SYMBOLS]; + uint16_t m_huff_codes[DEFL_MAX_HUFF_TABLES][DEFL_MAX_HUFF_SYMBOLS]; + uint8_t m_huff_code_sizes[DEFL_MAX_HUFF_TABLES][DEFL_MAX_HUFF_SYMBOLS]; + }; + + struct defl_sym_freq + { + uint16_t m_key; + uint16_t m_sym_index; + }; + +#define TOOLS_FPNG_DEFL_CLEAR_OBJ(obj) memset(&(obj), 0, sizeof(obj)) + + static defl_sym_freq* defl_radix_sort_syms(uint32_t num_syms, defl_sym_freq* pSyms0, defl_sym_freq* pSyms1) + { + uint32_t total_passes = 2, pass_shift, pass, i, hist[256 * 2]; defl_sym_freq* pCur_syms = pSyms0, * pNew_syms = pSyms1; TOOLS_FPNG_DEFL_CLEAR_OBJ(hist); + for (i = 0; i < num_syms; i++) { uint32_t freq = pSyms0[i].m_key; hist[freq & 0xFF]++; hist[256 + ((freq >> 8) & 0xFF)]++; } + while ((total_passes > 1) && (num_syms == hist[(total_passes - 1) * 256])) total_passes--; + for (pass_shift = 0, pass = 0; pass < total_passes; pass++, pass_shift += 8) + { + const uint32_t* pHist = &hist[pass << 8]; + uint32_t offsets[256], cur_ofs = 0; + for (i = 0; i < 256; i++) { offsets[i] = cur_ofs; cur_ofs += pHist[i]; } + for (i = 0; i < num_syms; i++) pNew_syms[offsets[(pCur_syms[i].m_key >> pass_shift) & 0xFF]++] = pCur_syms[i]; + { defl_sym_freq* t = pCur_syms; pCur_syms = pNew_syms; pNew_syms = t; } + } + return pCur_syms; + } + + // defl_calculate_minimum_redundancy() originally written by: Alistair Moffat, alistair@cs.mu.oz.au, Jyrki Katajainen, jyrki@diku.dk, November 1996. + static void defl_calculate_minimum_redundancy(defl_sym_freq* A, int n) + { + int root, leaf, next, avbl, used, dpth; + if (n == 0) return; else if (n == 1) { A[0].m_key = 1; return; } + A[0].m_key += A[1].m_key; root = 0; leaf = 2; + for (next = 1; next < n - 1; next++) + { + if (leaf >= n || A[root].m_key < A[leaf].m_key) { A[next].m_key = A[root].m_key; A[root++].m_key = (uint16_t)next; } + else A[next].m_key = A[leaf++].m_key; + if (leaf >= n || (root < next && A[root].m_key < A[leaf].m_key)) { A[next].m_key = (uint16_t)(A[next].m_key + A[root].m_key); A[root++].m_key = (uint16_t)next; } + else A[next].m_key = (uint16_t)(A[next].m_key + A[leaf++].m_key); + } + A[n - 2].m_key = 0; for (next = n - 3; next >= 0; next--) A[next].m_key = A[A[next].m_key].m_key + 1; + avbl = 1; used = dpth = 0; root = n - 2; next = n - 1; + while (avbl > 0) + { + while (root >= 0 && (int)A[root].m_key == dpth) { used++; root--; } + while (avbl > used) { A[next--].m_key = (uint16_t)(dpth); avbl--; } + avbl = 2 * used; dpth++; used = 0; + } + } + + // Limits canonical Huffman code table's max code size. + enum { DEFL_MAX_SUPPORTED_HUFF_CODESIZE = 32 }; + static void defl_huffman_enforce_max_code_size(int* pNum_codes, int code_list_len, int max_code_size) + { + int i; uint32_t total = 0; if (code_list_len <= 1) return; + for (i = max_code_size + 1; i <= DEFL_MAX_SUPPORTED_HUFF_CODESIZE; i++) pNum_codes[max_code_size] += pNum_codes[i]; + for (i = max_code_size; i > 0; i--) total += (((uint32_t)pNum_codes[i]) << (max_code_size - i)); + while (total != (1UL << max_code_size)) + { + pNum_codes[max_code_size]--; + for (i = max_code_size - 1; i > 0; i--) if (pNum_codes[i]) { pNum_codes[i]--; pNum_codes[i + 1] += 2; break; } + total--; + } + } + + static void defl_optimize_huffman_table(defl_huff* d, int table_num, int table_len, int code_size_limit, int static_table) + { + int i, j, l, num_codes[1 + DEFL_MAX_SUPPORTED_HUFF_CODESIZE]; uint32_t next_code[DEFL_MAX_SUPPORTED_HUFF_CODESIZE + 1]; TOOLS_FPNG_DEFL_CLEAR_OBJ(num_codes); + if (static_table) + { + for (i = 0; i < table_len; i++) num_codes[d->m_huff_code_sizes[table_num][i]]++; + } + else + { + defl_sym_freq syms0[DEFL_MAX_HUFF_SYMBOLS], syms1[DEFL_MAX_HUFF_SYMBOLS], * pSyms; + int num_used_syms = 0; + const uint16_t* pSym_count = &d->m_huff_count[table_num][0]; + for (i = 0; i < table_len; i++) if (pSym_count[i]) { syms0[num_used_syms].m_key = (uint16_t)pSym_count[i]; syms0[num_used_syms++].m_sym_index = (uint16_t)i; } + + pSyms = defl_radix_sort_syms(num_used_syms, syms0, syms1); defl_calculate_minimum_redundancy(pSyms, num_used_syms); + + for (i = 0; i < num_used_syms; i++) num_codes[pSyms[i].m_key]++; + + defl_huffman_enforce_max_code_size(num_codes, num_used_syms, code_size_limit); + + TOOLS_FPNG_DEFL_CLEAR_OBJ(d->m_huff_code_sizes[table_num]); TOOLS_FPNG_DEFL_CLEAR_OBJ(d->m_huff_codes[table_num]); + for (i = 1, j = num_used_syms; i <= code_size_limit; i++) + for (l = num_codes[i]; l > 0; l--) d->m_huff_code_sizes[table_num][pSyms[--j].m_sym_index] = (uint8_t)(i); + } + + next_code[1] = 0; for (j = 0, i = 2; i <= code_size_limit; i++) next_code[i] = j = ((j + num_codes[i - 1]) << 1); + + for (i = 0; i < table_len; i++) + { + uint32_t rev_code = 0, code, code_size; if ((code_size = d->m_huff_code_sizes[table_num][i]) == 0) continue; + code = next_code[code_size]++; for (l = code_size; l > 0; l--, code >>= 1) rev_code = (rev_code << 1) | (code & 1); + d->m_huff_codes[table_num][i] = (uint16_t)rev_code; + } + } + +#define TOOLS_FPNG_DEFL_RLE_PREV_CODE_SIZE() { if (rle_repeat_count) { \ + if (rle_repeat_count < 3) { \ + d->m_huff_count[2][prev_code_size] = (uint16_t)(d->m_huff_count[2][prev_code_size] + rle_repeat_count); \ + while (rle_repeat_count--) packed_code_sizes[num_packed_code_sizes++] = prev_code_size; \ + } else { \ + d->m_huff_count[2][16] = (uint16_t)(d->m_huff_count[2][16] + 1); packed_code_sizes[num_packed_code_sizes++] = 16; packed_code_sizes[num_packed_code_sizes++] = (uint8_t)(rle_repeat_count - 3); \ +} rle_repeat_count = 0; } } + +#define TOOLS_FPNG_DEFL_RLE_ZERO_CODE_SIZE() { if (rle_z_count) { \ + if (rle_z_count < 3) { \ + d->m_huff_count[2][0] = (uint16_t)(d->m_huff_count[2][0] + rle_z_count); while (rle_z_count--) packed_code_sizes[num_packed_code_sizes++] = 0; \ + } else if (rle_z_count <= 10) { \ + d->m_huff_count[2][17] = (uint16_t)(d->m_huff_count[2][17] + 1); packed_code_sizes[num_packed_code_sizes++] = 17; packed_code_sizes[num_packed_code_sizes++] = (uint8_t)(rle_z_count - 3); \ + } else { \ + d->m_huff_count[2][18] = (uint16_t)(d->m_huff_count[2][18] + 1); packed_code_sizes[num_packed_code_sizes++] = 18; packed_code_sizes[num_packed_code_sizes++] = (uint8_t)(rle_z_count - 11); \ +} rle_z_count = 0; } } + + //G.Barrand: const in the below: + static const uint8_t g_defl_packed_code_size_syms_swizzle[] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; + +#define TOOLS_FPNG_DEFL_DYN_PUT_BITS(bb, ll) \ +do { \ + uint32_t b = (bb), l = (ll); \ + assert((l) >= 1 && (l) <= 16); assert((b) < (1ULL << (l))); \ + bit_buf |= (((uint64_t)(b)) << bit_buf_size); bit_buf_size += (l); assert(bit_buf_size <= 64); \ + while (bit_buf_size >= 8) \ + { \ + if ((dst_ofs + 1) > dst_buf_size) \ + return false; \ + *(uint8_t*)(pDst + dst_ofs) = (uint8_t)bit_buf; \ + dst_ofs++; \ + bit_buf >>= 8; \ + bit_buf_size -= 8; \ + } \ +} while(0) + + static bool defl_start_dynamic_block(defl_huff* d, uint8_t* pDst, uint32_t& dst_ofs, uint32_t dst_buf_size, uint64_t& bit_buf, int& bit_buf_size) + { + int num_lit_codes, num_dist_codes, num_bit_lengths; uint32_t i, total_code_sizes_to_pack, num_packed_code_sizes, rle_z_count, rle_repeat_count, packed_code_sizes_index; + uint8_t code_sizes_to_pack[DEFL_MAX_HUFF_SYMBOLS_0 + DEFL_MAX_HUFF_SYMBOLS_1], packed_code_sizes[DEFL_MAX_HUFF_SYMBOLS_0 + DEFL_MAX_HUFF_SYMBOLS_1], prev_code_size = 0xFF; + + d->m_huff_count[0][256] = 1; + + defl_optimize_huffman_table(d, 0, DEFL_MAX_HUFF_SYMBOLS_0, 12, FPNG_FALSE); + defl_optimize_huffman_table(d, 1, DEFL_MAX_HUFF_SYMBOLS_1, 12, FPNG_FALSE); + + for (num_lit_codes = 286; num_lit_codes > 257; num_lit_codes--) if (d->m_huff_code_sizes[0][num_lit_codes - 1]) break; + for (num_dist_codes = 30; num_dist_codes > 1; num_dist_codes--) if (d->m_huff_code_sizes[1][num_dist_codes - 1]) break; + + memcpy(code_sizes_to_pack, &d->m_huff_code_sizes[0][0], num_lit_codes); + memcpy(code_sizes_to_pack + num_lit_codes, &d->m_huff_code_sizes[1][0], num_dist_codes); + total_code_sizes_to_pack = num_lit_codes + num_dist_codes; num_packed_code_sizes = 0; rle_z_count = 0; rle_repeat_count = 0; + + memset(&d->m_huff_count[2][0], 0, sizeof(d->m_huff_count[2][0]) * DEFL_MAX_HUFF_SYMBOLS_2); + for (i = 0; i < total_code_sizes_to_pack; i++) + { + uint8_t code_size = code_sizes_to_pack[i]; + if (!code_size) + { + TOOLS_FPNG_DEFL_RLE_PREV_CODE_SIZE(); + if (++rle_z_count == 138) { TOOLS_FPNG_DEFL_RLE_ZERO_CODE_SIZE(); } + } + else + { + TOOLS_FPNG_DEFL_RLE_ZERO_CODE_SIZE(); + if (code_size != prev_code_size) + { + TOOLS_FPNG_DEFL_RLE_PREV_CODE_SIZE(); + d->m_huff_count[2][code_size] = (uint16_t)(d->m_huff_count[2][code_size] + 1); packed_code_sizes[num_packed_code_sizes++] = code_size; + } + else if (++rle_repeat_count == 6) + { + TOOLS_FPNG_DEFL_RLE_PREV_CODE_SIZE(); + } + } + prev_code_size = code_size; + } + if (rle_repeat_count) { TOOLS_FPNG_DEFL_RLE_PREV_CODE_SIZE(); } + else { TOOLS_FPNG_DEFL_RLE_ZERO_CODE_SIZE(); } + + defl_optimize_huffman_table(d, 2, DEFL_MAX_HUFF_SYMBOLS_2, 7, FPNG_FALSE); + + // max of 2+5+5+4+18*3+(288+32)*7=2310 bits + TOOLS_FPNG_DEFL_DYN_PUT_BITS(2, 2); + + TOOLS_FPNG_DEFL_DYN_PUT_BITS(num_lit_codes - 257, 5); + TOOLS_FPNG_DEFL_DYN_PUT_BITS(num_dist_codes - 1, 5); + + for (num_bit_lengths = 18; num_bit_lengths >= 0; num_bit_lengths--) if (d->m_huff_code_sizes[2][g_defl_packed_code_size_syms_swizzle[num_bit_lengths]]) break; + num_bit_lengths = maximum(4, (num_bit_lengths + 1)); TOOLS_FPNG_DEFL_DYN_PUT_BITS(num_bit_lengths - 4, 4); + for (i = 0; (int)i < num_bit_lengths; i++) TOOLS_FPNG_DEFL_DYN_PUT_BITS(d->m_huff_code_sizes[2][g_defl_packed_code_size_syms_swizzle[i]], 3); + + for (packed_code_sizes_index = 0; packed_code_sizes_index < num_packed_code_sizes; ) + { + uint32_t code = packed_code_sizes[packed_code_sizes_index++]; assert(code < DEFL_MAX_HUFF_SYMBOLS_2); + TOOLS_FPNG_DEFL_DYN_PUT_BITS(d->m_huff_codes[2][code], d->m_huff_code_sizes[2][code]); + if (code >= 16) TOOLS_FPNG_DEFL_DYN_PUT_BITS(packed_code_sizes[packed_code_sizes_index++], "\02\03\07"[code - 16]); + } + + return true; + } + + static uint32_t write_raw_block(const uint8_t* pSrc, uint32_t src_len, uint8_t* pDst, uint32_t dst_buf_size) + { + if (dst_buf_size < 2) + return 0; + + pDst[0] = 0x78; + pDst[1] = 0x01; + + uint32_t dst_ofs = 2; + + uint32_t src_ofs = 0; + while (src_ofs < src_len) + { + const uint32_t src_remaining = src_len - src_ofs; + const uint32_t block_size = minimum(UINT16_MAX, src_remaining); + const bool final_block = (block_size == src_remaining); + + if ((dst_ofs + 5 + block_size) > dst_buf_size) + return 0; + + pDst[dst_ofs + 0] = final_block ? 1 : 0; + + pDst[dst_ofs + 1] = block_size & 0xFF; + pDst[dst_ofs + 2] = (block_size >> 8) & 0xFF; + + pDst[dst_ofs + 3] = (~block_size) & 0xFF; + pDst[dst_ofs + 4] = ((~block_size) >> 8) & 0xFF; + + memcpy(pDst + dst_ofs + 5, pSrc + src_ofs, block_size); + + src_ofs += block_size; + dst_ofs += 5 + block_size; + } + + uint32_t src_adler32 = fpng_adler32(pSrc, src_len, FPNG_ADLER32_INIT); + + for (uint32_t i = 0; i < 4; i++) + { + if (dst_ofs + 1 > dst_buf_size) + return 0; + + pDst[dst_ofs] = (uint8_t)(src_adler32 >> 24); + dst_ofs++; + + src_adler32 <<= 8; + } + + return dst_ofs; + } + + static void adjust_freq32(uint32_t num_freq, uint32_t* pFreq, uint16_t* pFreq16) + { + uint32_t total_freq = 0; + for (uint32_t i = 0; i < num_freq; i++) + total_freq += pFreq[i]; + + if (!total_freq) + { + memset(pFreq16, 0, num_freq * sizeof(uint16_t)); + return; + } + + uint32_t total_freq16 = 0; + for (uint32_t i = 0; i < num_freq; i++) + { + uint64_t f = pFreq[i]; + if (!f) + { + pFreq16[i] = 0; + continue; + } + + pFreq16[i] = (uint16_t)maximum(1, (uint32_t)((f * UINT16_MAX) / total_freq)); + + total_freq16 += pFreq16[i]; + } + + while (total_freq16 > UINT16_MAX) + { + total_freq16 = 0; + for (uint32_t i = 0; i < num_freq; i++) + { + if (pFreq[i]) + { + pFreq[i] = maximum(1, pFreq[i] >> 1); + total_freq16 += pFreq[i]; + } + } + } + } + + static uint32_t pixel_deflate_dyn_3_rle( + const uint8_t* pImg, uint32_t w, uint32_t h, + uint8_t* pDst, uint32_t dst_buf_size) + { + const uint32_t bpl = 1 + w * 3; + + uint64_t bit_buf = 0; + int bit_buf_size = 0; + + uint32_t dst_ofs = 0; + + // zlib header + TOOLS_FPNG_PUT_BITS(0x78, 8); + TOOLS_FPNG_PUT_BITS(0x01, 8); + + // write BFINAL bit + TOOLS_FPNG_PUT_BITS(1, 1); + + std::vector codes((w + 1) * h); + uint32_t* pDst_codes = codes.data(); + + uint32_t lit_freq[DEFL_MAX_HUFF_SYMBOLS_0]; + memset(lit_freq, 0, sizeof(lit_freq)); + + const uint8_t* pSrc = pImg; + uint32_t src_ofs = 0; + + uint32_t src_adler32 = fpng_adler32(pImg, bpl * h, FPNG_ADLER32_INIT); + + const uint32_t dist_sym = g_defl_small_dist_sym[3 - 1]; + + for (uint32_t y = 0; y < h; y++) + { + const uint32_t end_src_ofs = src_ofs + bpl; + + const uint32_t filter_lit = pSrc[src_ofs++]; + *pDst_codes++ = 1 | (filter_lit << 8); + lit_freq[filter_lit]++; + + uint32_t prev_lits; + + { + uint32_t lits = READ_RGB_PIXEL(pSrc + src_ofs); + + *pDst_codes++ = lits << 8; + + lit_freq[lits & 0xFF]++; + lit_freq[(lits >> 8) & 0xFF]++; + lit_freq[lits >> 16]++; + + src_ofs += 3; + + prev_lits = lits; + } + + while (src_ofs < end_src_ofs) + { + uint32_t lits = READ_RGB_PIXEL(pSrc + src_ofs); + + if (lits == prev_lits) + { + uint32_t match_len = 3; + uint32_t max_match_len = minimum(255, (int)(end_src_ofs - src_ofs)); + + while (match_len < max_match_len) + { + if (READ_RGB_PIXEL(pSrc + src_ofs + match_len) != lits) + break; + match_len += 3; + } + + *pDst_codes++ = match_len - 1; + + uint32_t adj_match_len = match_len - 3; + + lit_freq[g_defl_len_sym[adj_match_len]]++; + + src_ofs += match_len; + } + else + { + *pDst_codes++ = lits << 8; + + lit_freq[lits & 0xFF]++; + lit_freq[(lits >> 8) & 0xFF]++; + lit_freq[lits >> 16]++; + + prev_lits = lits; + + src_ofs += 3; + } + + } // while (src_ofs < end_src_ofs) + + } // y + + assert(src_ofs == h * bpl); + const uint32_t total_codes = (uint32_t)(pDst_codes - codes.data()); + assert(total_codes <= codes.size()); + + defl_huff dh; + + lit_freq[256] = 1; + + adjust_freq32(DEFL_MAX_HUFF_SYMBOLS_0, lit_freq, &dh.m_huff_count[0][0]); + + memset(&dh.m_huff_count[1][0], 0, sizeof(dh.m_huff_count[1][0]) * DEFL_MAX_HUFF_SYMBOLS_1); + dh.m_huff_count[1][dist_sym] = 1; + dh.m_huff_count[1][dist_sym + 1] = 1; // to workaround a bug in wuffs decoder + + if (!defl_start_dynamic_block(&dh, pDst, dst_ofs, dst_buf_size, bit_buf, bit_buf_size)) + return 0; + + assert(bit_buf_size <= 7); + assert(dh.m_huff_codes[1][dist_sym] == 0 && dh.m_huff_code_sizes[1][dist_sym] == 1); + + for (uint32_t i = 0; i < total_codes; i++) + { + uint32_t c = codes[i]; + + uint32_t c_type = c & 0xFF; + if (c_type == 0) + { + uint32_t lits = c >> 8; + + TOOLS_FPNG_PUT_BITS_CZ(dh.m_huff_codes[0][lits & 0xFF], dh.m_huff_code_sizes[0][lits & 0xFF]); + lits >>= 8; + + TOOLS_FPNG_PUT_BITS_CZ(dh.m_huff_codes[0][lits & 0xFF], dh.m_huff_code_sizes[0][lits & 0xFF]); + lits >>= 8; + + TOOLS_FPNG_PUT_BITS_CZ(dh.m_huff_codes[0][lits], dh.m_huff_code_sizes[0][lits]); + } + else if (c_type == 1) + { + uint32_t lit = c >> 8; + TOOLS_FPNG_PUT_BITS_CZ(dh.m_huff_codes[0][lit], dh.m_huff_code_sizes[0][lit]); + } + else + { + uint32_t match_len = c_type + 1; + + uint32_t adj_match_len = match_len - 3; + + TOOLS_FPNG_PUT_BITS_CZ(dh.m_huff_codes[0][g_defl_len_sym[adj_match_len]], dh.m_huff_code_sizes[0][g_defl_len_sym[adj_match_len]]); + TOOLS_FPNG_PUT_BITS(adj_match_len & g_bitmasks[g_defl_len_extra[adj_match_len]], g_defl_len_extra[adj_match_len] + 1); // up to 6 bits, +1 for the match distance Huff code which is always 0 + + // no need to write the distance code, it's always 0 + //TOOLS_FPNG_PUT_BITS_CZ(dh.m_huff_codes[1][dist_sym], dh.m_huff_code_sizes[1][dist_sym]); + } + + // up to 55 bits + TOOLS_FPNG_PUT_BITS_FLUSH; + } + + TOOLS_FPNG_PUT_BITS_CZ(dh.m_huff_codes[0][256], dh.m_huff_code_sizes[0][256]); + + TOOLS_FPNG_PUT_BITS_FORCE_FLUSH; + + // Write zlib adler32 + for (uint32_t i = 0; i < 4; i++) + { + if ((dst_ofs + 1) > dst_buf_size) + return 0; + *(uint8_t*)(pDst + dst_ofs) = (uint8_t)(src_adler32 >> 24); + dst_ofs++; + + src_adler32 <<= 8; + } + + return dst_ofs; + } + + static uint32_t pixel_deflate_dyn_3_rle_one_pass( + const uint8_t* pImg, uint32_t w, uint32_t h, + uint8_t* pDst, uint32_t dst_buf_size) + { + const uint32_t bpl = 1 + w * 3; + + if (dst_buf_size < sizeof(g_dyn_huff_3)) + return false; + memcpy(pDst, g_dyn_huff_3, sizeof(g_dyn_huff_3)); + uint32_t dst_ofs = sizeof(g_dyn_huff_3); + + uint64_t bit_buf = DYN_HUFF_3_BITBUF; + int bit_buf_size = DYN_HUFF_3_BITBUF_SIZE; + + const uint8_t* pSrc = pImg; + uint32_t src_ofs = 0; + + uint32_t src_adler32 = fpng_adler32(pImg, bpl * h, FPNG_ADLER32_INIT); + + for (uint32_t y = 0; y < h; y++) + { + const uint32_t end_src_ofs = src_ofs + bpl; + + const uint32_t filter_lit = pSrc[src_ofs++]; + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_3_codes[filter_lit].m_code, g_dyn_huff_3_codes[filter_lit].m_code_size); + + uint32_t prev_lits; + + { + uint32_t lits = READ_RGB_PIXEL(pSrc + src_ofs); + + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_3_codes[lits & 0xFF].m_code, g_dyn_huff_3_codes[lits & 0xFF].m_code_size); + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_3_codes[(lits >> 8) & 0xFF].m_code, g_dyn_huff_3_codes[(lits >> 8) & 0xFF].m_code_size); + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_3_codes[(lits >> 16)].m_code, g_dyn_huff_3_codes[(lits >> 16)].m_code_size); + + src_ofs += 3; + + prev_lits = lits; + } + + TOOLS_FPNG_PUT_BITS_FLUSH; + + while (src_ofs < end_src_ofs) + { + uint32_t lits = READ_RGB_PIXEL(pSrc + src_ofs); + + if (lits == prev_lits) + { + uint32_t match_len = 3; + uint32_t max_match_len = minimum(255, (int)(end_src_ofs - src_ofs)); + + while (match_len < max_match_len) + { + if (READ_RGB_PIXEL(pSrc + src_ofs + match_len) != lits) + break; + match_len += 3; + } + + uint32_t adj_match_len = match_len - 3; + + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_3_codes[g_defl_len_sym[adj_match_len]].m_code, g_dyn_huff_3_codes[g_defl_len_sym[adj_match_len]].m_code_size); + TOOLS_FPNG_PUT_BITS(adj_match_len & g_bitmasks[g_defl_len_extra[adj_match_len]], g_defl_len_extra[adj_match_len] + 1); // up to 6 bits, +1 for the match distance Huff code which is always 0 + + src_ofs += match_len; + } + else + { + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_3_codes[lits & 0xFF].m_code, g_dyn_huff_3_codes[lits & 0xFF].m_code_size); + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_3_codes[(lits >> 8) & 0xFF].m_code, g_dyn_huff_3_codes[(lits >> 8) & 0xFF].m_code_size); + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_3_codes[(lits >> 16)].m_code, g_dyn_huff_3_codes[(lits >> 16)].m_code_size); + + prev_lits = lits; + + src_ofs += 3; + } + + TOOLS_FPNG_PUT_BITS_FLUSH; + + } // while (src_ofs < end_src_ofs) + + } // y + + assert(src_ofs == h * bpl); + + assert(bit_buf_size <= 7); + + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_3_codes[256].m_code, g_dyn_huff_3_codes[256].m_code_size); + + TOOLS_FPNG_PUT_BITS_FORCE_FLUSH; + + // Write zlib adler32 + for (uint32_t i = 0; i < 4; i++) + { + if ((dst_ofs + 1) > dst_buf_size) + return 0; + *(uint8_t*)(pDst + dst_ofs) = (uint8_t)(src_adler32 >> 24); + dst_ofs++; + + src_adler32 <<= 8; + } + + return dst_ofs; + } + + static uint32_t pixel_deflate_dyn_4_rle( + const uint8_t* pImg, uint32_t w, uint32_t h, + uint8_t* pDst, uint32_t dst_buf_size) + { + const uint32_t bpl = 1 + w * 4; + + uint64_t bit_buf = 0; + int bit_buf_size = 0; + + uint32_t dst_ofs = 0; + + // zlib header + TOOLS_FPNG_PUT_BITS(0x78, 8); + TOOLS_FPNG_PUT_BITS(0x01, 8); + + // write BFINAL bit + TOOLS_FPNG_PUT_BITS(1, 1); + + std::vector codes; + codes.resize((w + 1) * h); + uint64_t* pDst_codes = codes.data(); + + uint32_t lit_freq[DEFL_MAX_HUFF_SYMBOLS_0]; + memset(lit_freq, 0, sizeof(lit_freq)); + + const uint8_t* pSrc = pImg; + uint32_t src_ofs = 0; + + uint32_t src_adler32 = fpng_adler32(pImg, bpl * h, FPNG_ADLER32_INIT); + + const uint32_t dist_sym = g_defl_small_dist_sym[4 - 1]; + + for (uint32_t y = 0; y < h; y++) + { + const uint32_t end_src_ofs = src_ofs + bpl; + + const uint32_t filter_lit = pSrc[src_ofs++]; + *pDst_codes++ = 1 | (filter_lit << 8); + lit_freq[filter_lit]++; + + uint32_t prev_lits; + { + uint32_t lits = READ_LE32(pSrc + src_ofs); + + *pDst_codes++ = (uint64_t)lits << 8; + + lit_freq[lits & 0xFF]++; + lit_freq[(lits >> 8) & 0xFF]++; + lit_freq[(lits >> 16) & 0xFF]++; + lit_freq[lits >> 24]++; + + src_ofs += 4; + + prev_lits = lits; + } + + while (src_ofs < end_src_ofs) + { + uint32_t lits = READ_LE32(pSrc + src_ofs); + + if (lits == prev_lits) + { + uint32_t match_len = 4; + uint32_t max_match_len = minimum(252, (int)(end_src_ofs - src_ofs)); + + while (match_len < max_match_len) + { + if (READ_LE32(pSrc + src_ofs + match_len) != lits) + break; + match_len += 4; + } + + *pDst_codes++ = match_len - 1; + + uint32_t adj_match_len = match_len - 3; + + lit_freq[g_defl_len_sym[adj_match_len]]++; + + src_ofs += match_len; + } + else + { + *pDst_codes++ = (uint64_t)lits << 8; + + lit_freq[lits & 0xFF]++; + lit_freq[(lits >> 8) & 0xFF]++; + lit_freq[(lits >> 16) & 0xFF]++; + lit_freq[lits >> 24]++; + + prev_lits = lits; + + src_ofs += 4; + } + + } // while (src_ofs < end_src_ofs) + + } // y + + assert(src_ofs == h * bpl); + const uint32_t total_codes = (uint32_t)(pDst_codes - codes.data()); + assert(total_codes <= codes.size()); + + defl_huff dh; + + lit_freq[256] = 1; + + adjust_freq32(DEFL_MAX_HUFF_SYMBOLS_0, lit_freq, &dh.m_huff_count[0][0]); + + memset(&dh.m_huff_count[1][0], 0, sizeof(dh.m_huff_count[1][0]) * DEFL_MAX_HUFF_SYMBOLS_1); + dh.m_huff_count[1][dist_sym] = 1; + dh.m_huff_count[1][dist_sym + 1] = 1; // to workaround a bug in wuffs decoder + + if (!defl_start_dynamic_block(&dh, pDst, dst_ofs, dst_buf_size, bit_buf, bit_buf_size)) + return 0; + + assert(bit_buf_size <= 7); + assert(dh.m_huff_codes[1][dist_sym] == 0 && dh.m_huff_code_sizes[1][dist_sym] == 1); + + for (uint32_t i = 0; i < total_codes; i++) + { + uint64_t c = codes[i]; + + uint32_t c_type = (uint32_t)(c & 0xFF); + if (c_type == 0) + { + uint32_t lits = (uint32_t)(c >> 8); + + TOOLS_FPNG_PUT_BITS_CZ(dh.m_huff_codes[0][lits & 0xFF], dh.m_huff_code_sizes[0][lits & 0xFF]); + lits >>= 8; + + TOOLS_FPNG_PUT_BITS_CZ(dh.m_huff_codes[0][lits & 0xFF], dh.m_huff_code_sizes[0][lits & 0xFF]); + lits >>= 8; + + TOOLS_FPNG_PUT_BITS_CZ(dh.m_huff_codes[0][lits & 0xFF], dh.m_huff_code_sizes[0][lits & 0xFF]); + lits >>= 8; + + if (bit_buf_size >= 49) + { + TOOLS_FPNG_PUT_BITS_FLUSH; + } + + TOOLS_FPNG_PUT_BITS_CZ(dh.m_huff_codes[0][lits], dh.m_huff_code_sizes[0][lits]); + } + else if (c_type == 1) + { + uint32_t lit = (uint32_t)(c >> 8); + TOOLS_FPNG_PUT_BITS_CZ(dh.m_huff_codes[0][lit], dh.m_huff_code_sizes[0][lit]); + } + else + { + uint32_t match_len = c_type + 1; + + uint32_t adj_match_len = match_len - 3; + + TOOLS_FPNG_PUT_BITS_CZ(dh.m_huff_codes[0][g_defl_len_sym[adj_match_len]], dh.m_huff_code_sizes[0][g_defl_len_sym[adj_match_len]]); + TOOLS_FPNG_PUT_BITS(adj_match_len & g_bitmasks[g_defl_len_extra[adj_match_len]], g_defl_len_extra[adj_match_len] + 1); // up to 6 bits, +1 for the match distance Huff code which is always 0 + + // no need to write the distance code, it's always 0 + } + + // up to 55 bits + TOOLS_FPNG_PUT_BITS_FLUSH; + } + + TOOLS_FPNG_PUT_BITS_CZ(dh.m_huff_codes[0][256], dh.m_huff_code_sizes[0][256]); + + TOOLS_FPNG_PUT_BITS_FORCE_FLUSH; + + // Write zlib adler32 + for (uint32_t i = 0; i < 4; i++) + { + if ((dst_ofs + 1) > dst_buf_size) + return 0; + *(uint8_t*)(pDst + dst_ofs) = (uint8_t)(src_adler32 >> 24); + dst_ofs++; + + src_adler32 <<= 8; + } + + return dst_ofs; + } + + static uint32_t pixel_deflate_dyn_4_rle_one_pass( + const uint8_t* pImg, uint32_t w, uint32_t h, + uint8_t* pDst, uint32_t dst_buf_size) + { + const uint32_t bpl = 1 + w * 4; + + if (dst_buf_size < sizeof(g_dyn_huff_4)) + return false; + memcpy(pDst, g_dyn_huff_4, sizeof(g_dyn_huff_4)); + uint32_t dst_ofs = sizeof(g_dyn_huff_4); + + uint64_t bit_buf = DYN_HUFF_4_BITBUF; + int bit_buf_size = DYN_HUFF_4_BITBUF_SIZE; + + const uint8_t* pSrc = pImg; + uint32_t src_ofs = 0; + + uint32_t src_adler32 = fpng_adler32(pImg, bpl * h, FPNG_ADLER32_INIT); + + for (uint32_t y = 0; y < h; y++) + { + const uint32_t end_src_ofs = src_ofs + bpl; + + const uint32_t filter_lit = pSrc[src_ofs++]; + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_4_codes[filter_lit].m_code, g_dyn_huff_4_codes[filter_lit].m_code_size); + + TOOLS_FPNG_PUT_BITS_FLUSH; + + uint32_t prev_lits; + { + uint32_t lits = READ_LE32(pSrc + src_ofs); + + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_4_codes[lits & 0xFF].m_code, g_dyn_huff_4_codes[lits & 0xFF].m_code_size); + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_4_codes[(lits >> 8) & 0xFF].m_code, g_dyn_huff_4_codes[(lits >> 8) & 0xFF].m_code_size); + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_4_codes[(lits >> 16) & 0xFF].m_code, g_dyn_huff_4_codes[(lits >> 16) & 0xFF].m_code_size); + + if (bit_buf_size >= 49) + { + TOOLS_FPNG_PUT_BITS_FLUSH; + } + + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_4_codes[(lits >> 24)].m_code, g_dyn_huff_4_codes[(lits >> 24)].m_code_size); + + src_ofs += 4; + + prev_lits = lits; + } + + TOOLS_FPNG_PUT_BITS_FLUSH; + + while (src_ofs < end_src_ofs) + { + uint32_t lits = READ_LE32(pSrc + src_ofs); + + if (lits == prev_lits) + { + uint32_t match_len = 4; + uint32_t max_match_len = minimum(252, (int)(end_src_ofs - src_ofs)); + + while (match_len < max_match_len) + { + if (READ_LE32(pSrc + src_ofs + match_len) != lits) + break; + match_len += 4; + } + + uint32_t adj_match_len = match_len - 3; + + const uint32_t match_code_bits = g_dyn_huff_4_codes[g_defl_len_sym[adj_match_len]].m_code_size; + const uint32_t len_extra_bits = g_defl_len_extra[adj_match_len]; + + if (match_len == 4) + { + // This check is optional - see if just encoding 4 literals would be cheaper than using a short match. + uint32_t lit_bits = g_dyn_huff_4_codes[lits & 0xFF].m_code_size + g_dyn_huff_4_codes[(lits >> 8) & 0xFF].m_code_size + + g_dyn_huff_4_codes[(lits >> 16) & 0xFF].m_code_size + g_dyn_huff_4_codes[(lits >> 24)].m_code_size; + + if ((match_code_bits + len_extra_bits + 1) > lit_bits) + goto do_literals; + } + + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_4_codes[g_defl_len_sym[adj_match_len]].m_code, match_code_bits); + TOOLS_FPNG_PUT_BITS(adj_match_len & g_bitmasks[g_defl_len_extra[adj_match_len]], len_extra_bits + 1); // up to 6 bits, +1 for the match distance Huff code which is always 0 + + src_ofs += match_len; + } + else + { +do_literals: + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_4_codes[lits & 0xFF].m_code, g_dyn_huff_4_codes[lits & 0xFF].m_code_size); + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_4_codes[(lits >> 8) & 0xFF].m_code, g_dyn_huff_4_codes[(lits >> 8) & 0xFF].m_code_size); + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_4_codes[(lits >> 16) & 0xFF].m_code, g_dyn_huff_4_codes[(lits >> 16) & 0xFF].m_code_size); + + if (bit_buf_size >= 49) + { + TOOLS_FPNG_PUT_BITS_FLUSH; + } + + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_4_codes[(lits >> 24)].m_code, g_dyn_huff_4_codes[(lits >> 24)].m_code_size); + + src_ofs += 4; + + prev_lits = lits; + } + + TOOLS_FPNG_PUT_BITS_FLUSH; + + } // while (src_ofs < end_src_ofs) + + } // y + + assert(src_ofs == h * bpl); + + assert(bit_buf_size <= 7); + + TOOLS_FPNG_PUT_BITS_CZ(g_dyn_huff_4_codes[256].m_code, g_dyn_huff_4_codes[256].m_code_size); + + TOOLS_FPNG_PUT_BITS_FORCE_FLUSH; + + // Write zlib adler32 + for (uint32_t i = 0; i < 4; i++) + { + if ((dst_ofs + 1) > dst_buf_size) + return 0; + *(uint8_t*)(pDst + dst_ofs) = (uint8_t)(src_adler32 >> 24); + dst_ofs++; + + src_adler32 <<= 8; + } + + return dst_ofs; + } + + static void vector_append(std::vector& buf, const void* pData, size_t len) + { + if (len) + { + size_t l = buf.size(); + buf.resize(l + len); + memcpy(buf.data() + l, pData, len); + } + } + + static void apply_filter(uint32_t filter, int w, int h, uint32_t num_chans, uint32_t bpl, const uint8_t* pSrc, const uint8_t* pPrev_src, uint8_t* pDst) + { + (void)h; + + switch (filter) + { + case 0: + { + *pDst++ = 0; + + memcpy(pDst, pSrc, bpl); + break; + } + case 2: + { + assert(pPrev_src); + + // Previous scanline + *pDst++ = 2; + + { + if (num_chans == 3) + { + for (uint32_t x = 0; x < (uint32_t)w; x++) + { + pDst[0] = (uint8_t)(pSrc[0] - pPrev_src[0]); + pDst[1] = (uint8_t)(pSrc[1] - pPrev_src[1]); + pDst[2] = (uint8_t)(pSrc[2] - pPrev_src[2]); + + pSrc += 3; + pPrev_src += 3; + pDst += 3; + } + } + else + { + for (uint32_t x = 0; x < (uint32_t)w; x++) + { + pDst[0] = (uint8_t)(pSrc[0] - pPrev_src[0]); + pDst[1] = (uint8_t)(pSrc[1] - pPrev_src[1]); + pDst[2] = (uint8_t)(pSrc[2] - pPrev_src[2]); + pDst[3] = (uint8_t)(pSrc[3] - pPrev_src[3]); + + pSrc += 4; + pPrev_src += 4; + pDst += 4; + } + } + } + + break; + } + default: + assert(0); + break; + } + } + + inline bool fpng_encode_image_to_memory(const void* pImage, uint32_t w, uint32_t h, uint32_t num_chans, std::vector& out_buf, uint32_t flags) + { + if (!endian_check()) + { + assert(0); + return false; + } + + if ((w < 1) || (h < 1) || (w * (uint64_t)h > UINT32_MAX) || (w > FPNG_MAX_SUPPORTED_DIM) || (h > FPNG_MAX_SUPPORTED_DIM)) + { + assert(0); + return false; + } + + if ((num_chans != 3) && (num_chans != 4)) + { + assert(0); + return false; + } + + int i, bpl = w * num_chans; + uint32_t y; + + std::vector temp_buf; + temp_buf.resize((bpl + 1) * h + 7); + uint32_t temp_buf_ofs = 0; + + for (y = 0; y < h; ++y) + { + const uint8_t* pSrc = (uint8_t*)pImage + y * bpl; + const uint8_t* pPrev_src = y ? ((uint8_t*)pImage + (y - 1) * bpl) : NULL/*nullptr*/; + + uint8_t* pDst = &temp_buf[temp_buf_ofs]; + + apply_filter(y ? 2 : 0, w, h, num_chans, bpl, pSrc, pPrev_src, pDst); + + temp_buf_ofs += 1 + bpl; + } + + const uint32_t PNG_HEADER_SIZE = 58; + + uint32_t out_ofs = PNG_HEADER_SIZE; + + out_buf.resize((out_ofs + (bpl + 1) * h + 7) & ~7); + + uint32_t defl_size = 0; + if ((flags & FPNG_FORCE_UNCOMPRESSED) == 0) + { + if (num_chans == 3) + { + if (flags & FPNG_ENCODE_SLOWER) + defl_size = pixel_deflate_dyn_3_rle(temp_buf.data(), w, h, &out_buf[out_ofs], (uint32_t)out_buf.size() - out_ofs); + else + defl_size = pixel_deflate_dyn_3_rle_one_pass(temp_buf.data(), w, h, &out_buf[out_ofs], (uint32_t)out_buf.size() - out_ofs); + } + else + { + if (flags & FPNG_ENCODE_SLOWER) + defl_size = pixel_deflate_dyn_4_rle(temp_buf.data(), w, h, &out_buf[out_ofs], (uint32_t)out_buf.size() - out_ofs); + else + defl_size = pixel_deflate_dyn_4_rle_one_pass(temp_buf.data(), w, h, &out_buf[out_ofs], (uint32_t)out_buf.size() - out_ofs); + } + } + + uint32_t zlib_size = defl_size; + + if (!defl_size) + { + // Dynamic block failed to compress - fall back to uncompressed blocks, filter 0. + + temp_buf_ofs = 0; + + for (y = 0; y < h; ++y) + { + const uint8_t* pSrc = (uint8_t*)pImage + y * bpl; + + uint8_t* pDst = &temp_buf[temp_buf_ofs]; + + apply_filter(0, w, h, num_chans, bpl, pSrc, NULL/*nullptr*/, pDst); + + temp_buf_ofs += 1 + bpl; + } + + assert(temp_buf_ofs <= temp_buf.size()); + + out_buf.resize(out_ofs + 6 + temp_buf_ofs + ((temp_buf_ofs + 65534) / 65535) * 5); + + uint32_t raw_size = write_raw_block(temp_buf.data(), (uint32_t)temp_buf_ofs, out_buf.data() + out_ofs, (uint32_t)out_buf.size() - out_ofs); + if (!raw_size) + { + // Somehow we miscomputed the size of the output buffer. + assert(0); + return false; + } + + zlib_size = raw_size; + } + + assert((out_ofs + zlib_size) <= out_buf.size()); + + out_buf.resize(out_ofs + zlib_size); + + const uint32_t idat_len = (uint32_t)out_buf.size() - PNG_HEADER_SIZE; + + // Write real PNG header, fdEC chunk, and the beginning of the IDAT chunk + { + static const uint8_t s_color_type[] = { 0x00, 0x00, 0x04, 0x02, 0x06 }; + + uint8_t pnghdr[58] = { + 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a, // PNG sig + 0x00,0x00,0x00,0x0d, 'I','H','D','R', // IHDR chunk len, type + 0,0,(uint8_t)(w >> 8),(uint8_t)w, // width + 0,0,(uint8_t)(h >> 8),(uint8_t)h, // height + 8, //bit_depth + s_color_type[num_chans], // color_type + 0, // compression + 0, // filter + 0, // interlace + 0, 0, 0, 0, // IHDR crc32 + 0, 0, 0, 5, 'f', 'd', 'E', 'C', 82, 36, 147, 227, FPNG_FDEC_VERSION, 0xE5, 0xAB, 0x62, 0x99, // our custom private, ancillary, do not copy, fdEC chunk + (uint8_t)(idat_len >> 24),(uint8_t)(idat_len >> 16),(uint8_t)(idat_len >> 8),(uint8_t)idat_len, 'I','D','A','T' // IDATA chunk len, type + }; + + // Compute IHDR CRC32 + uint32_t c = (uint32_t)fpng_crc32(pnghdr + 12, 17, FPNG_CRC32_INIT); + for (i = 0; i < 4; ++i, c <<= 8) + ((uint8_t*)(pnghdr + 29))[i] = (uint8_t)(c >> 24); + + memcpy(out_buf.data(), pnghdr, PNG_HEADER_SIZE); + } + + // Write IDAT chunk's CRC32 and a 0 length IEND chunk + vector_append(out_buf, "\0\0\0\0\0\0\0\0\x49\x45\x4e\x44\xae\x42\x60\x82", 16); // IDAT CRC32, followed by the IEND chunk + + // Compute IDAT crc32 + uint32_t c = (uint32_t)fpng_crc32(out_buf.data() + PNG_HEADER_SIZE - 4, idat_len + 4, FPNG_CRC32_INIT); + + for (i = 0; i < 4; ++i, c <<= 8) + (out_buf.data() + out_buf.size() - 16)[i] = (uint8_t)(c >> 24); + + return true; + } + + inline bool fpng_encode_image_to_file(const char* pFilename, const void* pImage, uint32_t w, uint32_t h, uint32_t num_chans, uint32_t flags) + { + std::vector out_buf; + if (!fpng_encode_image_to_memory(pImage, w, h, num_chans, out_buf, flags)) + return false; + + FILE* pFile = fopen(pFilename, "wb"); + if (!pFile) return false; + + if (fwrite(out_buf.data(), 1, out_buf.size(), pFile) != out_buf.size()) + { + fclose(pFile); + return false; + } + + return (fclose(pFile) != EOF); + } + + // Decompression + + const uint32_t FPNG_DECODER_TABLE_BITS = 12; + const uint32_t FPNG_DECODER_TABLE_SIZE = 1 << FPNG_DECODER_TABLE_BITS; + + static bool build_decoder_table(uint32_t num_syms, uint8_t* pCode_sizes, uint32_t* pTable) + { + uint32_t num_codes[16]; + + memset(num_codes, 0, sizeof(num_codes)); + for (uint32_t i = 0; i < num_syms; i++) + { + assert(uint32_t(pCode_sizes[i]) <= FPNG_DECODER_TABLE_SIZE); //G.Barrand: uint32_t cast. + num_codes[pCode_sizes[i]]++; + } + + uint32_t next_code[17]; + next_code[0] = next_code[1] = 0; + uint32_t total = 0; + for (uint32_t i = 1; i <= 15; i++) + next_code[i + 1] = (uint32_t)(total = ((total + ((uint32_t)num_codes[i])) << 1)); + + if (total != 0x10000) + { + uint32_t j = 0; + + for (uint32_t i = 15; i != 0; i--) + if ((j += num_codes[i]) > 1) + return false; + + if (j != 1) + return false; + } + + uint32_t rev_codes[DEFL_MAX_HUFF_SYMBOLS]; + + for (uint32_t i = 0; i < num_syms; i++) + rev_codes[i] = next_code[pCode_sizes[i]]++; + + memset(pTable, 0, sizeof(uint32_t) * FPNG_DECODER_TABLE_SIZE); + + for (uint32_t i = 0; i < num_syms; i++) + { + const uint32_t code_size = pCode_sizes[i]; + if (!code_size) + continue; + + uint32_t old_code = rev_codes[i], new_code = 0; + for (uint32_t j = code_size; j != 0; j--) + { + new_code = (new_code << 1) | (old_code & 1); + old_code >>= 1; + } + + uint32_t j = 1 << code_size; + + while (new_code < FPNG_DECODER_TABLE_SIZE) + { + pTable[new_code] = i | (code_size << 9); + new_code += j; + } + } + + return true; + } + + static const uint16_t g_run_len3_to_4[259] = + { + 0, + 0, 0, 4, 0, 0, 8, 0, 0, 12, 0, 0, 16, 0, 0, 20, 0, 0, 24, 0, 0, 28, 0, 0, + 32, 0, 0, 36, 0, 0, 40, 0, 0, 44, 0, 0, 48, 0, 0, 52, 0, 0, 56, 0, 0, + 60, 0, 0, 64, 0, 0, 68, 0, 0, 72, 0, 0, 76, 0, 0, 80, 0, 0, 84, 0, 0, + 88, 0, 0, 92, 0, 0, 96, 0, 0, 100, 0, 0, 104, 0, 0, 108, 0, 0, 112, 0, 0, + 116, 0, 0, 120, 0, 0, 124, 0, 0, 128, 0, 0, 132, 0, 0, 136, 0, 0, 140, 0, 0, + 144, 0, 0, 148, 0, 0, 152, 0, 0, 156, 0, 0, 160, 0, 0, 164, 0, 0, 168, 0, 0, + 172, 0, 0, 176, 0, 0, 180, 0, 0, 184, 0, 0, 188, 0, 0, 192, 0, 0, 196, 0, 0, + 200, 0, 0, 204, 0, 0, 208, 0, 0, 212, 0, 0, 216, 0, 0, 220, 0, 0, 224, 0, 0, + 228, 0, 0, 232, 0, 0, 236, 0, 0, 240, 0, 0, 244, 0, 0, 248, 0, 0, 252, 0, 0, + 256, 0, 0, 260, 0, 0, 264, 0, 0, 268, 0, 0, 272, 0, 0, 276, 0, 0, 280, 0, 0, + 284, 0, 0, 288, 0, 0, 292, 0, 0, 296, 0, 0, 300, 0, 0, 304, 0, 0, 308, 0, 0, + 312, 0, 0, 316, 0, 0, 320, 0, 0, 324, 0, 0, 328, 0, 0, 332, 0, 0, 336, 0, 0, + 340, 0, 0, + 344, + }; + + static const int s_length_extra[] = { 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, 0,0 }; + static const int s_length_range[] = { 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 }; + +#define TOOLS_FPNG_ENSURE_32BITS() do { \ + if (bit_buf_size < 32) { \ + if ((src_ofs + 4) > src_len) return false; \ + bit_buf |= ((uint64_t)READ_LE32(pSrc + src_ofs)) << bit_buf_size; \ + src_ofs += 4; bit_buf_size += 32; } \ + } while(0) + +#define TOOLS_FPNG_GET_BITS(b, ll) do { \ + uint32_t l = ll; assert(l && (l <= 32)); \ + b = (uint32_t)(bit_buf & g_bitmasks[l]); \ + bit_buf >>= l; \ + bit_buf_size -= l; \ + TOOLS_FPNG_ENSURE_32BITS(); \ + } while(0) + +#define TOOLS_FPNG_SKIP_BITS(ll) do { \ + uint32_t l = ll; assert(l <= 32); \ + bit_buf >>= l; \ + bit_buf_size -= l; \ + TOOLS_FPNG_ENSURE_32BITS(); \ + } while(0) + +#define TOOLS_FPNG_GET_BITS_NE(b, ll) do { \ + uint32_t l = ll; assert(l && (l <= 32) && (bit_buf_size >= l)); \ + b = (uint32_t)(bit_buf & g_bitmasks[l]); \ + bit_buf >>= l; \ + bit_buf_size -= l; \ + } while(0) + +#define TOOLS_FPNG_SKIP_BITS_NE(ll) do { \ + uint32_t l = ll; assert(l <= 32 && (bit_buf_size >= l)); \ + bit_buf >>= l; \ + bit_buf_size -= l; \ + } while(0) + + static bool prepare_dynamic_block( + const uint8_t* pSrc, uint32_t src_len, uint32_t& src_ofs, + uint32_t& bit_buf_size, uint64_t& bit_buf, + uint32_t* pLit_table, uint32_t num_chans) + { + static const uint8_t s_bit_length_order[] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; + + uint32_t num_lit_codes, num_dist_codes, num_clen_codes; + + TOOLS_FPNG_GET_BITS(num_lit_codes, 5); + num_lit_codes += 257; + + TOOLS_FPNG_GET_BITS(num_dist_codes, 5); + num_dist_codes += 1; + + uint32_t total_codes = num_lit_codes + num_dist_codes; + if (total_codes > (DEFL_MAX_HUFF_SYMBOLS_0 + DEFL_MAX_HUFF_SYMBOLS_1)) + return false; + + uint8_t code_sizes[DEFL_MAX_HUFF_SYMBOLS_0 + DEFL_MAX_HUFF_SYMBOLS_1]; + memset(code_sizes, 0, sizeof(code_sizes)); + + TOOLS_FPNG_GET_BITS(num_clen_codes, 4); + num_clen_codes += 4; + + uint8_t clen_codesizes[DEFL_MAX_HUFF_SYMBOLS_2]; + memset(clen_codesizes, 0, sizeof(clen_codesizes)); + + for (uint32_t i = 0; i < num_clen_codes; i++) + { + uint32_t len = 0; + TOOLS_FPNG_GET_BITS(len, 3); + clen_codesizes[s_bit_length_order[i]] = (uint8_t)len; + } + + uint32_t clen_table[FPNG_DECODER_TABLE_SIZE]; + if (!build_decoder_table(DEFL_MAX_HUFF_SYMBOLS_2, clen_codesizes, clen_table)) + return false; + + uint32_t min_code_size = 15; + + for (uint32_t cur_code = 0; cur_code < total_codes; ) + { + uint32_t sym = clen_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + uint32_t sym_len = sym >> 9; + if (!sym_len) + return false; + TOOLS_FPNG_SKIP_BITS(sym_len); + sym &= 511; + + if (sym <= 15) + { + // Can't be a fpng Huffman table + if (sym > FPNG_DECODER_TABLE_BITS) + return false; + + if (sym) + min_code_size = minimum(min_code_size, sym); + + code_sizes[cur_code++] = (uint8_t)sym; + continue; + } + + uint32_t rep_len = 0, rep_code_size = 0; + + switch (sym) + { + case 16: + { + TOOLS_FPNG_GET_BITS(rep_len, 2); + rep_len += 3; + if (!cur_code) + return false; + rep_code_size = code_sizes[cur_code - 1]; + break; + } + case 17: + { + TOOLS_FPNG_GET_BITS(rep_len, 3); + rep_len += 3; + rep_code_size = 0; + break; + } + case 18: + { + TOOLS_FPNG_GET_BITS(rep_len, 7); + rep_len += 11; + rep_code_size = 0; + break; + } + } + + if ((cur_code + rep_len) > total_codes) + return false; + + for (; rep_len; rep_len--) + code_sizes[cur_code++] = (uint8_t)rep_code_size; + } + + uint8_t lit_codesizes[DEFL_MAX_HUFF_SYMBOLS_0]; + + memcpy(lit_codesizes, code_sizes, num_lit_codes); + memset(lit_codesizes + num_lit_codes, 0, DEFL_MAX_HUFF_SYMBOLS_0 - num_lit_codes); + + uint32_t total_valid_distcodes = 0; + for (uint32_t i = 0; i < num_dist_codes; i++) + total_valid_distcodes += (code_sizes[num_lit_codes + i] == 1); + + // 1 or 2 because the first version of FPNG only issued 1 valid distance code, but that upset wuffs. So we let 1 or 2 through. + if ((total_valid_distcodes < 1) || (total_valid_distcodes > 2)) + return false; + + if (code_sizes[num_lit_codes + (num_chans - 1)] != 1) + return false; + + if (total_valid_distcodes == 2) + { + // If there are two valid distance codes, make sure the first is 1 bit. + if (code_sizes[num_lit_codes + num_chans] != 1) + return false; + } + + if (!build_decoder_table(num_lit_codes, lit_codesizes, pLit_table)) + return false; + + // Add next symbol to decoder table, when it fits + for (uint32_t i = 0; i < FPNG_DECODER_TABLE_SIZE; i++) + { + uint32_t sym = pLit_table[i] & 511; + if (sym >= 256) + continue; + + uint32_t sym_bits = (pLit_table[i] >> 9) & 15; + if (!sym_bits) + continue; + assert(sym_bits <= FPNG_DECODER_TABLE_BITS); + + uint32_t bits_left = FPNG_DECODER_TABLE_BITS - sym_bits; + if (bits_left < min_code_size) + continue; + + uint32_t next_bits = i >> sym_bits; + uint32_t next_sym = pLit_table[next_bits] & 511; + uint32_t next_sym_bits = (pLit_table[next_bits] >> 9) & 15; + if ((!next_sym_bits) || (bits_left < next_sym_bits)) + continue; + + pLit_table[i] |= (next_sym << 16) | (next_sym_bits << (16 + 9)); + } + + return true; + } + + static bool fpng_pixel_zlib_raw_decompress( + const uint8_t* pSrc, uint32_t src_len, uint32_t zlib_len, + uint8_t* pDst, uint32_t w, uint32_t h, + uint32_t src_chans, uint32_t dst_chans) + { + assert((src_chans == 3) || (src_chans == 4)); + assert((dst_chans == 3) || (dst_chans == 4)); + + const uint32_t src_bpl = w * src_chans; + const uint32_t dst_bpl = w * dst_chans; + const uint32_t dst_len = dst_bpl * h; + + uint32_t src_ofs = 2; + uint32_t dst_ofs = 0; + uint32_t raster_ofs = 0; + uint32_t comp_ofs = 0; + + for (; ; ) + { + if ((src_ofs + 1) > src_len) + return false; + + const bool bfinal = (pSrc[src_ofs] & 1) != 0; + const uint32_t btype = (pSrc[src_ofs] >> 1) & 3; + if (btype != 0) + return false; + + src_ofs++; + + if ((src_ofs + 4) > src_len) + return false; + uint32_t len = pSrc[src_ofs + 0] | (pSrc[src_ofs + 1] << 8); + uint32_t nlen = pSrc[src_ofs + 2] | (pSrc[src_ofs + 3] << 8); + src_ofs += 4; + + if (len != (~nlen & 0xFFFF)) + return false; + + if ((src_ofs + len) > src_len) + return false; + + // Raw blocks are a relatively uncommon case so this isn't well optimized. + // Supports 3->4 and 4->3 byte/pixel conversion. + for (uint32_t i = 0; i < len; i++) + { + uint32_t c = pSrc[src_ofs + i]; + + if (!raster_ofs) + { + // Check filter type + if (c != 0) + return false; + + assert(!comp_ofs); + } + else + { + if (comp_ofs < dst_chans) + { + if (dst_ofs == dst_len) + return false; + + pDst[dst_ofs++] = (uint8_t)c; + } + + if (++comp_ofs == src_chans) + { + if (dst_chans > src_chans) + { + if (dst_ofs == dst_len) + return false; + + pDst[dst_ofs++] = (uint8_t)0xFF; + } + + comp_ofs = 0; + } + } + + if (++raster_ofs == (src_bpl + 1)) + { + assert(!comp_ofs); + raster_ofs = 0; + } + } + + src_ofs += len; + + if (bfinal) + break; + } + + if (comp_ofs != 0) + return false; + + // Check for zlib adler32 + if ((src_ofs + 4) != zlib_len) + return false; + + return (dst_ofs == dst_len); + } + + template + static bool fpng_pixel_zlib_decompress_3( + const uint8_t* pSrc, uint32_t src_len, uint32_t zlib_len, + uint8_t* pDst, uint32_t w, uint32_t h) + { + assert(src_len >= (zlib_len + 4)); + + const uint32_t dst_bpl = w * dst_comps; + //const uint32_t dst_len = dst_bpl * h; + + if (zlib_len < 7) + return false; + + // check zlib header + if ((pSrc[0] != 0x78) || (pSrc[1] != 0x01)) + return false; + + uint32_t src_ofs = 2; + + if ((pSrc[src_ofs] & 6) == 0) + return fpng_pixel_zlib_raw_decompress(pSrc, src_len, zlib_len, pDst, w, h, 3, dst_comps); + + if ((src_ofs + 4) > src_len) + return false; + uint64_t bit_buf = READ_LE32(pSrc + src_ofs); + src_ofs += 4; + + uint32_t bit_buf_size = 32; + + uint32_t bfinal, btype; + TOOLS_FPNG_GET_BITS(bfinal, 1); + TOOLS_FPNG_GET_BITS(btype, 2); + + // Must be the final block or it's not valid, and type=2 (dynamic) + if ((bfinal != 1) || (btype != 2)) + return false; + + uint32_t lit_table[FPNG_DECODER_TABLE_SIZE]; + if (!prepare_dynamic_block(pSrc, src_len, src_ofs, bit_buf_size, bit_buf, lit_table, 3)) + return false; + + const uint8_t* pPrev_scanline = NULL/*nullptr*/; + uint8_t* pCur_scanline = pDst; + + for (uint32_t y = 0; y < h; y++) + { + // At start of PNG scanline, so read the filter literal + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + uint32_t filter = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + uint32_t filter_len = (filter >> 9) & 15; + if (!filter_len) + return false; + TOOLS_FPNG_SKIP_BITS(filter_len); + filter &= 511; + + uint32_t expected_filter = (y ? 2 : 0); + if (filter != expected_filter) + return false; + + uint32_t x_ofs = 0; + uint8_t prev_delta_r = 0, prev_delta_g = 0, prev_delta_b = 0; + do + { + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + uint32_t lit0_tab = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + + uint32_t lit0 = lit0_tab; + uint32_t lit0_len = (lit0_tab >> 9) & 15; + if (!lit0_len) + return false; + TOOLS_FPNG_SKIP_BITS(lit0_len); + + if (lit0 & 256) + { + lit0 &= 511; + + // Can't be EOB - we still have more pixels to decompress. + if (lit0 == 256) + return false; + + // Must be an RLE match against the previous pixel. + uint32_t run_len = s_length_range[lit0 - 257]; + if (lit0 >= 265) + { + uint32_t e; + TOOLS_FPNG_GET_BITS_NE(e, s_length_extra[lit0 - 257]); + + run_len += e; + } + + // Skip match distance - it's always the same (3) + TOOLS_FPNG_SKIP_BITS_NE(1); + + // Matches must always be a multiple of 3/4 bytes + assert((run_len % 3) == 0); + + if (dst_comps == 4) + { + const uint32_t x_ofs_end = x_ofs + g_run_len3_to_4[run_len]; + + // Check for valid run lengths + if (x_ofs == x_ofs_end) + return false; + + // Matches cannot cross scanlines. + if (x_ofs_end > dst_bpl) + return false; + + if (pPrev_scanline) + { + if ((prev_delta_r | prev_delta_g | prev_delta_b) == 0) + { + memcpy(pCur_scanline + x_ofs, pPrev_scanline + x_ofs, x_ofs_end - x_ofs); + x_ofs = x_ofs_end; + } + else + { + do + { + pCur_scanline[x_ofs] = (uint8_t)(pPrev_scanline[x_ofs] + prev_delta_r); + pCur_scanline[x_ofs + 1] = (uint8_t)(pPrev_scanline[x_ofs + 1] + prev_delta_g); + pCur_scanline[x_ofs + 2] = (uint8_t)(pPrev_scanline[x_ofs + 2] + prev_delta_b); + pCur_scanline[x_ofs + 3] = 0xFF; + x_ofs += 4; + } while (x_ofs < x_ofs_end); + } + } + else + { + do + { + pCur_scanline[x_ofs] = prev_delta_r; + pCur_scanline[x_ofs + 1] = prev_delta_g; + pCur_scanline[x_ofs + 2] = prev_delta_b; + pCur_scanline[x_ofs + 3] = 0xFF; + x_ofs += 4; + } while (x_ofs < x_ofs_end); + } + } + else + { + // Check for valid run lengths + if (!g_run_len3_to_4[run_len]) + return false; + + const uint32_t x_ofs_end = x_ofs + run_len; + + // Matches cannot cross scanlines. + if (x_ofs_end > dst_bpl) + return false; + + if (pPrev_scanline) + { + if ((prev_delta_r | prev_delta_g | prev_delta_b) == 0) + { + memcpy(pCur_scanline + x_ofs, pPrev_scanline + x_ofs, run_len); + x_ofs = x_ofs_end; + } + else + { + do + { + pCur_scanline[x_ofs] = (uint8_t)(pPrev_scanline[x_ofs] + prev_delta_r); + pCur_scanline[x_ofs + 1] = (uint8_t)(pPrev_scanline[x_ofs + 1] + prev_delta_g); + pCur_scanline[x_ofs + 2] = (uint8_t)(pPrev_scanline[x_ofs + 2] + prev_delta_b); + x_ofs += 3; + } while (x_ofs < x_ofs_end); + } + } + else + { + do + { + pCur_scanline[x_ofs] = prev_delta_r; + pCur_scanline[x_ofs + 1] = prev_delta_g; + pCur_scanline[x_ofs + 2] = prev_delta_b; + x_ofs += 3; + } while (x_ofs < x_ofs_end); + } + } + } + else + { + uint32_t lit1, lit2; + + uint32_t lit1_spec_len = (lit0_tab >> (16 + 9)); + uint32_t lit2_len; + if (lit1_spec_len) + { + lit1 = (lit0_tab >> 16) & 511; + TOOLS_FPNG_SKIP_BITS_NE(lit1_spec_len); + + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + lit2 = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + lit2_len = (lit2 >> 9) & 15; + if (!lit2_len) + return false; + } + else + { + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + lit1 = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + uint32_t lit1_len = (lit1 >> 9) & 15; + if (!lit1_len) + return false; + TOOLS_FPNG_SKIP_BITS_NE(lit1_len); + + lit2_len = (lit1 >> (16 + 9)); + if (lit2_len) + lit2 = lit1 >> 16; + else + { + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + lit2 = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + lit2_len = (lit2 >> 9) & 15; + if (!lit2_len) + return false; + } + } + + TOOLS_FPNG_SKIP_BITS(lit2_len); + + // Check for matches + if ((lit1 | lit2) & 256) + return false; + + if (dst_comps == 4) + { + if (pPrev_scanline) + { + pCur_scanline[x_ofs] = (uint8_t)(pPrev_scanline[x_ofs] + lit0); + pCur_scanline[x_ofs + 1] = (uint8_t)(pPrev_scanline[x_ofs + 1] + lit1); + pCur_scanline[x_ofs + 2] = (uint8_t)(pPrev_scanline[x_ofs + 2] + lit2); + pCur_scanline[x_ofs + 3] = 0xFF; + } + else + { + pCur_scanline[x_ofs] = (uint8_t)lit0; + pCur_scanline[x_ofs + 1] = (uint8_t)lit1; + pCur_scanline[x_ofs + 2] = (uint8_t)lit2; + pCur_scanline[x_ofs + 3] = 0xFF; + } + x_ofs += 4; + } + else + { + if (pPrev_scanline) + { + pCur_scanline[x_ofs] = (uint8_t)(pPrev_scanline[x_ofs] + lit0); + pCur_scanline[x_ofs + 1] = (uint8_t)(pPrev_scanline[x_ofs + 1] + lit1); + pCur_scanline[x_ofs + 2] = (uint8_t)(pPrev_scanline[x_ofs + 2] + lit2); + } + else + { + pCur_scanline[x_ofs] = (uint8_t)lit0; + pCur_scanline[x_ofs + 1] = (uint8_t)lit1; + pCur_scanline[x_ofs + 2] = (uint8_t)lit2; + } + x_ofs += 3; + } + + prev_delta_r = (uint8_t)lit0; + prev_delta_g = (uint8_t)lit1; + prev_delta_b = (uint8_t)lit2; + + // See if we can decode one more pixel. + uint32_t spec_next_len0_len = lit2 >> (16 + 9); + if ((spec_next_len0_len) && (x_ofs < dst_bpl)) + { + lit0 = (lit2 >> 16) & 511; + if (lit0 < 256) + { + TOOLS_FPNG_SKIP_BITS_NE(spec_next_len0_len); + + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + lit1 = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + uint32_t lit1_len = (lit1 >> 9) & 15; + if (!lit1_len) + return false; + TOOLS_FPNG_SKIP_BITS(lit1_len); + + lit2_len = (lit1 >> (16 + 9)); + if (lit2_len) + lit2 = lit1 >> 16; + else + { + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + lit2 = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + lit2_len = (lit2 >> 9) & 15; + if (!lit2_len) + return false; + } + + TOOLS_FPNG_SKIP_BITS_NE(lit2_len); + + // Check for matches + if ((lit1 | lit2) & 256) + return false; + + if (dst_comps == 4) + { + if (pPrev_scanline) + { + pCur_scanline[x_ofs] = (uint8_t)(pPrev_scanline[x_ofs] + lit0); + pCur_scanline[x_ofs + 1] = (uint8_t)(pPrev_scanline[x_ofs + 1] + lit1); + pCur_scanline[x_ofs + 2] = (uint8_t)(pPrev_scanline[x_ofs + 2] + lit2); + pCur_scanline[x_ofs + 3] = 0xFF; + } + else + { + pCur_scanline[x_ofs] = (uint8_t)lit0; + pCur_scanline[x_ofs + 1] = (uint8_t)lit1; + pCur_scanline[x_ofs + 2] = (uint8_t)lit2; + pCur_scanline[x_ofs + 3] = 0xFF; + } + x_ofs += 4; + } + else + { + if (pPrev_scanline) + { + pCur_scanline[x_ofs] = (uint8_t)(pPrev_scanline[x_ofs] + lit0); + pCur_scanline[x_ofs + 1] = (uint8_t)(pPrev_scanline[x_ofs + 1] + lit1); + pCur_scanline[x_ofs + 2] = (uint8_t)(pPrev_scanline[x_ofs + 2] + lit2); + } + else + { + pCur_scanline[x_ofs] = (uint8_t)lit0; + pCur_scanline[x_ofs + 1] = (uint8_t)lit1; + pCur_scanline[x_ofs + 2] = (uint8_t)lit2; + } + x_ofs += 3; + } + + prev_delta_r = (uint8_t)lit0; + prev_delta_g = (uint8_t)lit1; + prev_delta_b = (uint8_t)lit2; + + } // if (lit0 < 256) + + } // if ((spec_next_len0_len) && (x_ofs < bpl)) + } + + } while (x_ofs < dst_bpl); + + pPrev_scanline = pCur_scanline; + pCur_scanline += dst_bpl; + + } // y + + // The last symbol should be EOB + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + uint32_t lit0 = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + uint32_t lit0_len = (lit0 >> 9) & 15; + if (!lit0_len) + return false; + lit0 &= 511; + if (lit0 != 256) + return false; + + bit_buf_size -= lit0_len; + bit_buf >>= lit0_len; + + uint32_t align_bits = bit_buf_size & 7; + bit_buf_size -= align_bits; + bit_buf >>= align_bits; + + if (src_ofs < (bit_buf_size >> 3)) + return false; + src_ofs -= (bit_buf_size >> 3); + + // We should be at the very end, because the bit buf reads ahead 32-bits (which contains the zlib adler32). + if ((src_ofs + 4) != zlib_len) + return false; + + return true; + } + + template + static bool fpng_pixel_zlib_decompress_4( + const uint8_t* pSrc, uint32_t src_len, uint32_t zlib_len, + uint8_t* pDst, uint32_t w, uint32_t h) + { + assert(src_len >= (zlib_len + 4)); + + const uint32_t dst_bpl = w * dst_comps; + //const uint32_t dst_len = dst_bpl * h; + + if (zlib_len < 7) + return false; + + // check zlib header + if ((pSrc[0] != 0x78) || (pSrc[1] != 0x01)) + return false; + + uint32_t src_ofs = 2; + + if ((pSrc[src_ofs] & 6) == 0) + return fpng_pixel_zlib_raw_decompress(pSrc, src_len, zlib_len, pDst, w, h, 4, dst_comps); + + if ((src_ofs + 4) > src_len) + return false; + uint64_t bit_buf = READ_LE32(pSrc + src_ofs); + src_ofs += 4; + + uint32_t bit_buf_size = 32; + + uint32_t bfinal, btype; + TOOLS_FPNG_GET_BITS(bfinal, 1); + TOOLS_FPNG_GET_BITS(btype, 2); + + // Must be the final block or it's not valid, and type=2 (dynamic) + if ((bfinal != 1) || (btype != 2)) + return false; + + uint32_t lit_table[FPNG_DECODER_TABLE_SIZE]; + if (!prepare_dynamic_block(pSrc, src_len, src_ofs, bit_buf_size, bit_buf, lit_table, 4)) + return false; + + const uint8_t* pPrev_scanline = NULL/*nullptr*/; + uint8_t* pCur_scanline = pDst; + + for (uint32_t y = 0; y < h; y++) + { + // At start of PNG scanline, so read the filter literal + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + uint32_t filter = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + uint32_t filter_len = (filter >> 9) & 15; + if (!filter_len) + return false; + TOOLS_FPNG_SKIP_BITS(filter_len); + filter &= 511; + + uint32_t expected_filter = (y ? 2 : 0); + if (filter != expected_filter) + return false; + + uint32_t x_ofs = 0; + uint8_t prev_delta_r = 0, prev_delta_g = 0, prev_delta_b = 0, prev_delta_a = 0; + do + { + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + uint32_t lit0_tab = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + + uint32_t lit0 = lit0_tab; + uint32_t lit0_len = (lit0_tab >> 9) & 15; + if (!lit0_len) + return false; + TOOLS_FPNG_SKIP_BITS(lit0_len); + + if (lit0 & 256) + { + lit0 &= 511; + + // Can't be EOB - we still have more pixels to decompress. + if (lit0 == 256) + return false; + + // Must be an RLE match against the previous pixel. + uint32_t run_len = s_length_range[lit0 - 257]; + if (lit0 >= 265) + { + uint32_t e; + TOOLS_FPNG_GET_BITS_NE(e, s_length_extra[lit0 - 257]); + + run_len += e; + } + + // Skip match distance - it's always the same (4) + TOOLS_FPNG_SKIP_BITS_NE(1); + + // Matches must always be a multiple of 3/4 bytes + if (run_len & 3) + return false; + + if (dst_comps == 3) + { + const uint32_t run_len3 = (run_len >> 2) * 3; + const uint32_t x_ofs_end = x_ofs + run_len3; + + // Matches cannot cross scanlines. + if (x_ofs_end > dst_bpl) + return false; + + if (pPrev_scanline) + { + if ((prev_delta_r | prev_delta_g | prev_delta_b | prev_delta_a) == 0) + { + memcpy(pCur_scanline + x_ofs, pPrev_scanline + x_ofs, run_len3); + x_ofs = x_ofs_end; + } + else + { + do + { + pCur_scanline[x_ofs] = (uint8_t)(pPrev_scanline[x_ofs] + prev_delta_r); + pCur_scanline[x_ofs + 1] = (uint8_t)(pPrev_scanline[x_ofs + 1] + prev_delta_g); + pCur_scanline[x_ofs + 2] = (uint8_t)(pPrev_scanline[x_ofs + 2] + prev_delta_b); + x_ofs += 3; + } while (x_ofs < x_ofs_end); + } + } + else + { + do + { + pCur_scanline[x_ofs] = prev_delta_r; + pCur_scanline[x_ofs + 1] = prev_delta_g; + pCur_scanline[x_ofs + 2] = prev_delta_b; + x_ofs += 3; + } while (x_ofs < x_ofs_end); + } + } + else + { + const uint32_t x_ofs_end = x_ofs + run_len; + + // Matches cannot cross scanlines. + if (x_ofs_end > dst_bpl) + return false; + + if (pPrev_scanline) + { + if ((prev_delta_r | prev_delta_g | prev_delta_b | prev_delta_a) == 0) + { + memcpy(pCur_scanline + x_ofs, pPrev_scanline + x_ofs, run_len); + x_ofs = x_ofs_end; + } + else + { + do + { + pCur_scanline[x_ofs] = (uint8_t)(pPrev_scanline[x_ofs] + prev_delta_r); + pCur_scanline[x_ofs + 1] = (uint8_t)(pPrev_scanline[x_ofs + 1] + prev_delta_g); + pCur_scanline[x_ofs + 2] = (uint8_t)(pPrev_scanline[x_ofs + 2] + prev_delta_b); + pCur_scanline[x_ofs + 3] = (uint8_t)(pPrev_scanline[x_ofs + 3] + prev_delta_a); + x_ofs += 4; + } while (x_ofs < x_ofs_end); + } + } + else + { + do + { + pCur_scanline[x_ofs] = prev_delta_r; + pCur_scanline[x_ofs + 1] = prev_delta_g; + pCur_scanline[x_ofs + 2] = prev_delta_b; + pCur_scanline[x_ofs + 3] = prev_delta_a; + x_ofs += 4; + } while (x_ofs < x_ofs_end); + } + } + } + else + { + uint32_t lit1, lit2; + + uint32_t lit1_spec_len = (lit0_tab >> (16 + 9)); + uint32_t lit2_len; + if (lit1_spec_len) + { + lit1 = (lit0_tab >> 16) & 511; + TOOLS_FPNG_SKIP_BITS_NE(lit1_spec_len); + + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + lit2 = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + lit2_len = (lit2 >> 9) & 15; + if (!lit2_len) + return false; + } + else + { + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + lit1 = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + uint32_t lit1_len = (lit1 >> 9) & 15; + if (!lit1_len) + return false; + TOOLS_FPNG_SKIP_BITS_NE(lit1_len); + + lit2_len = (lit1 >> (16 + 9)); + if (lit2_len) + lit2 = lit1 >> 16; + else + { + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + lit2 = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + lit2_len = (lit2 >> 9) & 15; + if (!lit2_len) + return false; + } + } + + uint32_t lit3; + uint32_t lit3_len = lit2 >> (16 + 9); + + if (lit3_len) + { + lit3 = (lit2 >> 16); + TOOLS_FPNG_SKIP_BITS(lit2_len + lit3_len); + } + else + { + TOOLS_FPNG_SKIP_BITS(lit2_len); + + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + lit3 = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + lit3_len = (lit3 >> 9) & 15; + if (!lit3_len) + return false; + + TOOLS_FPNG_SKIP_BITS_NE(lit3_len); + } + + // Check for matches + if ((lit1 | lit2 | lit3) & 256) + return false; + + if (dst_comps == 3) + { + if (pPrev_scanline) + { + pCur_scanline[x_ofs] = (uint8_t)(pPrev_scanline[x_ofs] + lit0); + pCur_scanline[x_ofs + 1] = (uint8_t)(pPrev_scanline[x_ofs + 1] + lit1); + pCur_scanline[x_ofs + 2] = (uint8_t)(pPrev_scanline[x_ofs + 2] + lit2); + } + else + { + pCur_scanline[x_ofs] = (uint8_t)lit0; + pCur_scanline[x_ofs + 1] = (uint8_t)lit1; + pCur_scanline[x_ofs + 2] = (uint8_t)lit2; + } + + x_ofs += 3; + } + else + { + if (pPrev_scanline) + { + pCur_scanline[x_ofs] = (uint8_t)(pPrev_scanline[x_ofs] + lit0); + pCur_scanline[x_ofs + 1] = (uint8_t)(pPrev_scanline[x_ofs + 1] + lit1); + pCur_scanline[x_ofs + 2] = (uint8_t)(pPrev_scanline[x_ofs + 2] + lit2); + pCur_scanline[x_ofs + 3] = (uint8_t)(pPrev_scanline[x_ofs + 3] + lit3); + } + else + { + pCur_scanline[x_ofs] = (uint8_t)lit0; + pCur_scanline[x_ofs + 1] = (uint8_t)lit1; + pCur_scanline[x_ofs + 2] = (uint8_t)lit2; + pCur_scanline[x_ofs + 3] = (uint8_t)lit3; + } + + x_ofs += 4; + } + + prev_delta_r = (uint8_t)lit0; + prev_delta_g = (uint8_t)lit1; + prev_delta_b = (uint8_t)lit2; + prev_delta_a = (uint8_t)lit3; + } + + } while (x_ofs < dst_bpl); + + pPrev_scanline = pCur_scanline; + pCur_scanline += dst_bpl; + } // y + + // The last symbol should be EOB + assert(bit_buf_size >= FPNG_DECODER_TABLE_BITS); + uint32_t lit0 = lit_table[bit_buf & (FPNG_DECODER_TABLE_SIZE - 1)]; + uint32_t lit0_len = (lit0 >> 9) & 15; + if (!lit0_len) + return false; + lit0 &= 511; + if (lit0 != 256) + return false; + + bit_buf_size -= lit0_len; + bit_buf >>= lit0_len; + + uint32_t align_bits = bit_buf_size & 7; + bit_buf_size -= align_bits; + bit_buf >>= align_bits; + + if (src_ofs < (bit_buf_size >> 3)) + return false; + src_ofs -= (bit_buf_size >> 3); + + // We should be at the very end, because the bit buf reads ahead 32-bits (which contains the zlib adler32). + if ((src_ofs + 4) != zlib_len) + return false; + + return true; + } + +#pragma pack(push) +#pragma pack(1) + struct png_chunk_prefix + { + uint32_t m_length; + uint8_t m_type[4]; + }; + struct png_ihdr + { + png_chunk_prefix m_prefix; + uint32_t m_width; + uint32_t m_height; + uint8_t m_bitdepth; + uint8_t m_color_type; + uint8_t m_comp_method; + uint8_t m_filter_method; + uint8_t m_interlace_method; + uint32_t m_crc32; + }; + const uint32_t IHDR_EXPECTED_LENGTH = 13; + struct png_iend + { + png_chunk_prefix m_prefix; + uint32_t m_crc32; + }; +#pragma pack(pop) + + static int fpng_get_info_internal(const void* pImage, uint32_t image_size, uint32_t& width, uint32_t& height, uint32_t& channels_in_file, uint32_t &idat_ofs, uint32_t &idat_len) + { + static const uint8_t s_png_sig[8] = { 137, 80, 78, 71, 13, 10, 26, 10 }; + + if (!endian_check()) + { + assert(0); + return false; + } + + width = 0; + height = 0; + channels_in_file = 0; + idat_ofs = 0, idat_len = 0; + + // Ensure the file has at least a minimum possible size + if (image_size < (sizeof(s_png_sig) + sizeof(png_ihdr) + sizeof(png_chunk_prefix) + 1 + sizeof(uint32_t) + sizeof(png_iend))) + return FPNG_DECODE_FAILED_NOT_PNG; + + if (memcmp(pImage, s_png_sig, 8) != 0) + return FPNG_DECODE_FAILED_NOT_PNG; + + const uint8_t* pImage_u8 = static_cast(pImage) + 8; + + const png_ihdr& ihdr = *reinterpret_cast(pImage_u8); + pImage_u8 += sizeof(png_ihdr); + + if (READ_BE32(&ihdr.m_prefix.m_length) != IHDR_EXPECTED_LENGTH) + return FPNG_DECODE_FAILED_NOT_PNG; + + if (fpng_crc32(ihdr.m_prefix.m_type, 4 + IHDR_EXPECTED_LENGTH, FPNG_CRC32_INIT) != READ_BE32(&ihdr.m_crc32)) + return FPNG_DECODE_FAILED_HEADER_CRC32; + + width = READ_BE32(&ihdr.m_width); + height = READ_BE32(&ihdr.m_height); + + if (!width || !height || (width > FPNG_MAX_SUPPORTED_DIM) || (height > FPNG_MAX_SUPPORTED_DIM)) + return FPNG_DECODE_FAILED_INVALID_DIMENSIONS; + + uint64_t total_pixels = (uint64_t)width * height; + if (total_pixels > (1 << 30)) + return FPNG_DECODE_FAILED_INVALID_DIMENSIONS; + + if ((ihdr.m_comp_method) || (ihdr.m_filter_method) || (ihdr.m_interlace_method) || (ihdr.m_bitdepth != 8)) + return FPNG_DECODE_NOT_FPNG; + + if (ihdr.m_color_type == 2) + channels_in_file = 3; + else if (ihdr.m_color_type == 6) + channels_in_file = 4; + + if (!channels_in_file) + return FPNG_DECODE_NOT_FPNG; + + // Scan all the chunks. Look for one IDAT, IEND, and our custom fdEC chunk that indicates the file was compressed by us. Skip any ancillary chunks. + bool found_fdec_chunk = false; + + for (; ; ) + { + const size_t src_ofs = pImage_u8 - static_cast(pImage); + if (src_ofs >= image_size) + return FPNG_DECODE_FAILED_CHUNK_PARSING; + + const uint32_t bytes_remaining = image_size - (uint32_t)src_ofs; + if (bytes_remaining < sizeof(uint32_t) * 3) + return FPNG_DECODE_FAILED_CHUNK_PARSING; + + const png_chunk_prefix* pChunk = reinterpret_cast(pImage_u8); + + const uint32_t chunk_len = READ_BE32(&pChunk->m_length); + if ((src_ofs + sizeof(uint32_t) + chunk_len + sizeof(uint32_t)) > image_size) + return FPNG_DECODE_FAILED_CHUNK_PARSING; + + for (uint32_t i = 0; i < 4; i++) + { + const uint8_t c = pChunk->m_type[i]; + const bool is_upper = (c >= 65) && (c <= 90), is_lower = (c >= 97) && (c <= 122); + if ((!is_upper) && (!is_lower)) + return FPNG_DECODE_FAILED_CHUNK_PARSING; + } + + char chunk_type[5] = { (char)pChunk->m_type[0], (char)pChunk->m_type[1], (char)pChunk->m_type[2], (char)pChunk->m_type[3], 0 }; + const bool is_idat = strcmp(chunk_type, "IDAT") == 0; + + const uint8_t* pChunk_data = pImage_u8 + sizeof(uint32_t) * 2; + + if (strcmp(chunk_type, "IEND") == 0) + break; + else if (is_idat) + { + // If there were multiple IDAT's, or we didn't find the fdEC chunk, then it's not FPNG. + if ((idat_ofs) || (!found_fdec_chunk)) + return FPNG_DECODE_NOT_FPNG; + + idat_ofs = (uint32_t)src_ofs; + idat_len = chunk_len; + + // Sanity check the IDAT chunk length + if (idat_len < 7) + return FPNG_DECODE_FAILED_INVALID_IDAT; + } + else if (strcmp(chunk_type, "fdEC") == 0) + { + if (found_fdec_chunk) + return FPNG_DECODE_NOT_FPNG; + + // We've got our fdEC chunk. Now make sure it's big enough and check its contents. + if (chunk_len != 5) + return FPNG_DECODE_NOT_FPNG; + + // Check fdEC chunk sig + if ((pChunk_data[0] != 82) || (pChunk_data[1] != 36) || (pChunk_data[2] != 147) || (pChunk_data[3] != 227)) + return FPNG_DECODE_NOT_FPNG; + + // Check fdEC version + if (pChunk_data[4] != FPNG_FDEC_VERSION) + return FPNG_DECODE_NOT_FPNG; + + found_fdec_chunk = true; + } + else + { + // Bail if it's a critical chunk - can't be FPNG + if ((chunk_type[0] & 32) == 0) + return FPNG_DECODE_NOT_FPNG; + + // ancillary chunk - skip it + } + + pImage_u8 += sizeof(png_chunk_prefix) + chunk_len + sizeof(uint32_t); + } + + if ((!found_fdec_chunk) || (!idat_ofs)) + return FPNG_DECODE_NOT_FPNG; + + return FPNG_DECODE_SUCCESS; + } + + inline int fpng_get_info(const void* pImage, uint32_t image_size, uint32_t& width, uint32_t& height, uint32_t& channels_in_file) + { + uint32_t idat_ofs = 0, idat_len = 0; + return fpng_get_info_internal(pImage, image_size, width, height, channels_in_file, idat_ofs, idat_len); + } + + inline int fpng_decode_memory(const void *pImage, uint32_t image_size, std::vector &out, uint32_t& width, uint32_t& height, uint32_t &channels_in_file, uint32_t desired_channels) + { + out.resize(0); + width = 0; + height = 0; + channels_in_file = 0; + + if ((!pImage) || (!image_size) || ((desired_channels != 3) && (desired_channels != 4))) + { + assert(0); + return FPNG_DECODE_INVALID_ARG; + } + + uint32_t idat_ofs = 0, idat_len = 0; + int status = fpng_get_info_internal(pImage, image_size, width, height, channels_in_file, idat_ofs, idat_len); + if (status) + return status; + + const uint64_t mem_needed = (uint64_t)width * height * desired_channels; + if (mem_needed > UINT32_MAX) + return FPNG_DECODE_FAILED_DIMENSIONS_TOO_LARGE; + + // On 32-bit systems do a quick sanity check before we try to resize the output buffer. + if ((sizeof(size_t) == sizeof(uint32_t)) && (mem_needed >= 0x80000000)) + return FPNG_DECODE_FAILED_DIMENSIONS_TOO_LARGE; + + out.resize(mem_needed); + + const uint8_t* pIDAT_data = static_cast(pImage) + idat_ofs + sizeof(uint32_t) * 2; + const uint32_t src_len = image_size - (idat_ofs + sizeof(uint32_t) * 2); + + bool decomp_status; + if (desired_channels == 3) + { + if (channels_in_file == 3) + decomp_status = fpng_pixel_zlib_decompress_3<3>(pIDAT_data, src_len, idat_len, out.data(), width, height); + else + decomp_status = fpng_pixel_zlib_decompress_4<3>(pIDAT_data, src_len, idat_len, out.data(), width, height); + } + else + { + if (channels_in_file == 3) + decomp_status = fpng_pixel_zlib_decompress_3<4>(pIDAT_data, src_len, idat_len, out.data(), width, height); + else + decomp_status = fpng_pixel_zlib_decompress_4<4>(pIDAT_data, src_len, idat_len, out.data(), width, height); + } + if (!decomp_status) + { + // Something went wrong. Either the file data was corrupted, or it doesn't conform to one of our zlib/Deflate constraints. + // The conservative thing to do is indicate it wasn't written by us, and let the general purpose PNG decoder handle it. + return FPNG_DECODE_NOT_FPNG; + } + + return FPNG_DECODE_SUCCESS; + } + + inline int fpng_decode_file(const char* pFilename, std::vector& out, uint32_t& width, uint32_t& height, uint32_t& channels_in_file, uint32_t desired_channels) + { + FILE* pFile = fopen(pFilename, "rb"); + if (!pFile) return FPNG_DECODE_FILE_OPEN_FAILED; + + if (fseek(pFile, 0, SEEK_END) != 0) + { + fclose(pFile); + return FPNG_DECODE_FILE_SEEK_FAILED; + } + +#ifdef _MSC_VER + int64_t filesize = _ftelli64(pFile); +#else + int64_t filesize = ftello(pFile); +#endif + + if (fseek(pFile, 0, SEEK_SET) != 0) + { + fclose(pFile); + return FPNG_DECODE_FILE_SEEK_FAILED; + } + + if ( (filesize < 0) || (filesize > UINT32_MAX) || ( (sizeof(size_t) == sizeof(uint32_t)) && (filesize > 0x70000000) ) ) + { + fclose(pFile); + return FPNG_DECODE_FILE_TOO_LARGE; + } + + std::vector buf((size_t)filesize); + if (fread(buf.data(), 1, buf.size(), pFile) != buf.size()) + { + fclose(pFile); + return FPNG_DECODE_FILE_READ_FAILED; + } + + fclose(pFile); + + return fpng_decode_memory(buf.data(), (uint32_t)buf.size(), out, width, height, channels_in_file, desired_channels); + } + +#undef TOOLS_FPNG_PUT_BITS +#undef TOOLS_FPNG_PUT_BITS_CZ +#undef TOOLS_FPNG_PUT_BITS_FLUSH +#undef TOOLS_FPNG_PUT_BITS_FORCE_FLUSH +#undef TOOLS_FPNG_DEFL_CLEAR_OBJ +#undef TOOLS_FPNG_DEFL_RLE_PREV_CODE_SIZE +#undef TOOLS_FPNG_DEFL_RLE_ZERO_CODE_SIZE +#undef TOOLS_FPNG_DEFL_DYN_PUT_BITS +#undef TOOLS_FPNG_ENSURE_32BITS +#undef TOOLS_FPNG_GET_BITS +#undef TOOLS_FPNG_SKIP_BITS +#undef TOOLS_FPNG_GET_BITS_NE +#undef TOOLS_FPNG_SKIP_BITS_NE + +} // namespace fpng +} // namespace tools + +/* + This is free and unencumbered software released into the public domain. + + Anyone is free to copy, modify, publish, use, compile, sell, or + distribute this software, either in source code form or as a compiled + binary, for any purpose, commercial or non-commercial, and by any + means. + + In jurisdictions that recognize copyright laws, the author or authors + of this software dedicate any and all copyright interest in the + software to the public domain. We make this dedication for the benefit + of the public at large and to the detriment of our heirs and + successors. We intend this dedication to be an overt act of + relinquishment in perpetuity of all present and future rights to this + software under copyright law. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + For more information, please refer to + + Richard Geldreich, Jr. + 12/30/2021 +*/ diff --git a/source/externals/g4tools/include/tools/gl2ps b/source/externals/g4tools/include/tools/gl2ps index 75974e736c..96fb40605c 100644 --- a/source/externals/g4tools/include/tools/gl2ps +++ b/source/externals/g4tools/include/tools/gl2ps @@ -821,12 +821,46 @@ inline void *tools_gl2psListPointer(tools_GL2PSlist *list, tools_GLint idx) return &list->array[idx * list->size]; } -inline void tools_gl2psListSort(tools_GL2PSlist *list, - int (*fcmp)(const void *a, const void *b)) +//G.Barrand: begin: +inline bool tools_gl2psPortableSort(void* a_items,size_t a_nitem,size_t a_item_size,int(*a_cmp)(const void*,const void*)) { + // We observed that qsort on macOS/clang, Linux/gcc, Windows/VisualC++ + // does not produce the same output list for objects considered as "the same". + // "Same objects" are put correctly contiguously but not in the same order + // according the platform. In case of gl2ps, if using qsort we have, at end, + // primitives in the output file which are not in the same order according the platform. + // Then, we let the possibility to use a portable sort algorithm that will + // give the same sorted list, and then the same output file, on all platforms. + if(a_nitem<=1) return true; + if(!a_item_size) return true; + void* tmp = ::malloc(a_item_size); + if(!tmp) return false; + char* p = (char*)a_items; + size_t i,j; + char* a = p;char* b; + for(i=0;i=0) continue; //b>=a + ::memcpy(tmp,a,a_item_size); + ::memcpy(a,b,a_item_size); + ::memcpy(b,tmp,a_item_size); + } + } + ::free(tmp); + return true; +} +//G.Barrand: end. + +inline void tools_gl2psListSort(tools_GL2PScontext* gl2ps, + tools_GL2PSlist *list, + int (*fcmp)(const void *a, const void *b)) { - if(!list) - return; - qsort(list->array, list->n, list->size, fcmp); + if(!list) return; + if(gl2ps->options & TOOLS_GL2PS_PORTABLE_SORT) { + tools_gl2psPortableSort(list->array, list->n, list->size, fcmp); + } else { + ::qsort(list->array, list->n, list->size, fcmp); + } } /* Must be a list of tools_GL2PSprimitives. */ @@ -1715,6 +1749,7 @@ inline int tools_gl2psCompareDepth(const void *a, const void *b) } else{ /* Ensure that initial ordering is preserved when depths match. */ + if(q->sortid==w->sortid) return 0; //G.Barrand. return q->sortid < w->sortid ? -1 : 1; } } @@ -1725,6 +1760,7 @@ inline int tools_gl2psTrianglesFirst(const void *a, const void *b) q = *(const tools_GL2PSprimitive* const*)a; w = *(const tools_GL2PSprimitive* const*)b; + if(q->type==w->type) return 0; //G.Barrand. return (q->type < w->type ? 1 : -1); } @@ -1882,11 +1918,11 @@ inline void tools_gl2psBuildBspTree(tools_GL2PScontext* gl2ps, tools_GL2PSbsptre } if(tools_gl2psListNbr(tree->primitives)){ - tools_gl2psListSort(tree->primitives, tools_gl2psTrianglesFirst); + tools_gl2psListSort(gl2ps, tree->primitives, tools_gl2psTrianglesFirst); } if(tools_gl2psListNbr(frontlist)){ - tools_gl2psListSort(frontlist, tools_gl2psTrianglesFirst); + tools_gl2psListSort(gl2ps, frontlist, tools_gl2psTrianglesFirst); tree->front = (tools_GL2PSbsptree*)tools_gl2psMalloc(sizeof(tools_GL2PSbsptree)); tools_gl2psBuildBspTree(gl2ps, tree->front, frontlist); } @@ -1895,7 +1931,7 @@ inline void tools_gl2psBuildBspTree(tools_GL2PScontext* gl2ps, tools_GL2PSbsptre } if(tools_gl2psListNbr(backlist)){ - tools_gl2psListSort(backlist, tools_gl2psTrianglesFirst); + tools_gl2psListSort(gl2ps, backlist, tools_gl2psTrianglesFirst); tree->back = (tools_GL2PSbsptree*)tools_gl2psMalloc(sizeof(tools_GL2PSbsptree)); tools_gl2psBuildBspTree(gl2ps, tree->back, backlist); } @@ -5335,6 +5371,9 @@ inline void tools_gl2psSVGGetCoordsAndColors(tools_GL2PScontext* gl2ps, int n, t } } +#include //G.Barrand +#include //G.Barrand + inline void tools_gl2psSVGGetColorString(tools_GL2PSrgba rgba, char str[32]) { int _r = (int)(255. * rgba[0]); @@ -5343,7 +5382,15 @@ inline void tools_gl2psSVGGetColorString(tools_GL2PSrgba rgba, char str[32]) int rc = (_r < 0) ? 0 : (_r > 255) ? 255 : _r; int gc = (_g < 0) ? 0 : (_g > 255) ? 255 : _g; int bc = (_b < 0) ? 0 : (_b > 255) ? 255 : _b; - sprintf(str, "#%2.2x%2.2x%2.2x", rc, gc, bc); +//sprintf(str, "#%2.2x%2.2x%2.2x", rc, gc, bc); //G.Barrand +//G.Barrand:begin: + std::ostringstream oss; + oss << "#"; + oss << std::setw(2) << std::setfill('0') << std::hex << rc; + oss << std::setw(2) << std::setfill('0') << std::hex << gc; + oss << std::setw(2) << std::setfill('0') << std::hex << bc; + strcpy(str,oss.str().c_str()); +//G.Barrand:end. } inline void tools_gl2psPrintSVGHeader(tools_GL2PScontext* gl2ps) @@ -5594,30 +5641,38 @@ inline void tools_gl2psPrintSVGPrimitive(tools_GL2PScontext* gl2ps, void *data) col, prim->width); switch (prim->linecap){ case TOOLS_GL2PS_LINE_CAP_BUTT: - sprintf (lcap, "%s", "butt"); + //sprintf (lcap, "%s", "butt"); //G.Barrand + strcpy (lcap, "butt"); //G.Barrand break; case TOOLS_GL2PS_LINE_CAP_ROUND: - sprintf (lcap, "%s", "round"); + //sprintf (lcap, "%s", "round"); //G.Barrand + strcpy (lcap, "round"); //G.Barrand break; case TOOLS_GL2PS_LINE_CAP_SQUARE: - sprintf (lcap, "%s", "square"); + //sprintf (lcap, "%s", "square"); //G.Barrand + strcpy (lcap, "square"); //G.Barrand break; default: /*G.Barrand : to quiet Coverity :*/ - sprintf (lcap, "%s", "butt"); + //sprintf (lcap, "%s", "butt"); //G.Barrand + strcpy (lcap, "butt"); //G.Barrand break; } switch (prim->linejoin){ case TOOLS_GL2PS_LINE_JOIN_MITER: - sprintf (ljoin, "%s", "miter"); + //sprintf (ljoin, "%s", "miter"); //G.Barrand + strcpy (ljoin, "miter"); //G.Barrand break; case TOOLS_GL2PS_LINE_JOIN_ROUND: - sprintf (ljoin, "%s", "round"); + //sprintf (ljoin, "%s", "round"); //G.Barrand + strcpy (ljoin, "round"); //G.Barrand break; case TOOLS_GL2PS_LINE_JOIN_BEVEL: - sprintf (ljoin, "%s", "bevel"); + //sprintf (ljoin, "%s", "bevel"); //G.Barrand + strcpy (ljoin, "bevel"); //G.Barrand break; default: /*G.Barrand : to quiet Coverity :*/ - sprintf (ljoin, "%s", "miter"); + //sprintf (ljoin, "%s", "miter"); //G.Barrand + strcpy (ljoin, "miter"); //G.Barrand break; } tools_gl2psPrintf(gl2ps,"stroke-linecap=\"%s\" stroke-linejoin=\"%s\" ", @@ -6168,7 +6223,7 @@ inline tools_GLint tools_gl2psPrintPrimitives(tools_GL2PScontext* gl2ps) break; case TOOLS_GL2PS_SIMPLE_SORT : tools_gl2psListAssignSortIds(gl2ps->primitives); - tools_gl2psListSort(gl2ps->primitives, tools_gl2psCompareDepth); + tools_gl2psListSort(gl2ps, gl2ps->primitives, tools_gl2psCompareDepth); if(gl2ps->options & TOOLS_GL2PS_OCCLUSION_CULL){ tools_gl2psListActionInverseContext(gl2ps, gl2ps->primitives, tools_gl2psAddInImageTree); tools_gl2psFreeBspImageTree(&gl2ps->imagetree); diff --git a/source/externals/g4tools/include/tools/gl2ps_def.h b/source/externals/g4tools/include/tools/gl2ps_def.h index a368cc664e..3f774ed0ae 100644 --- a/source/externals/g4tools/include/tools/gl2ps_def.h +++ b/source/externals/g4tools/include/tools/gl2ps_def.h @@ -72,6 +72,7 @@ typedef unsigned char tools_GLboolean; #define TOOLS_GL2PS_TIGHT_BOUNDING_BOX (1<<12) #define TOOLS_GL2PS_NO_OPENGL_CONTEXT (1<<13) #define TOOLS_GL2PS_NO_TEX_FONTSIZE (1<<14) +#define TOOLS_GL2PS_PORTABLE_SORT (1<<15) /* Arguments for tools_gl2psEnable/tools_gl2psDisable */ diff --git a/source/externals/g4tools/include/tools/glutess/render b/source/externals/g4tools/include/tools/glutess/render index f35f906e39..7d9c1f6484 100644 --- a/source/externals/g4tools/include/tools/glutess/render +++ b/source/externals/g4tools/include/tools/glutess/render @@ -272,6 +272,7 @@ inline/*static*/ void static_RenderFan( GLUtesselator *tess, GLUhalfEdge *e, lon assert( size == 0 ); CALL_END_OR_END_DATA(); + (void)size; } @@ -300,6 +301,7 @@ inline/*static*/ void static_RenderStrip( GLUtesselator *tess, GLUhalfEdge *e, l assert( size == 0 ); CALL_END_OR_END_DATA(); + (void)size; } diff --git a/source/externals/g4tools/include/tools/offscreen/session b/source/externals/g4tools/include/tools/offscreen/session new file mode 100644 index 0000000000..41ee9b753f --- /dev/null +++ b/source/externals/g4tools/include/tools/offscreen/session @@ -0,0 +1,60 @@ +// Copyright (C) 2010, Guy Barrand. All rights reserved. +// See the file tools.license for terms. + +#ifndef tools_offscreen_session +#define tools_offscreen_session + +namespace tools { +namespace offscreen { + +class viewer { +public: + virtual ~viewer() {} +public: + virtual void render() = 0; +}; + +}} + +#include "../forit" +#include "../vmanip" + +#include + +namespace tools { +namespace offscreen { + +class session { +public: + session(std::ostream& a_out):m_out(a_out) {} + virtual ~session() {} +protected: + session(const session& a_from):m_out(a_from.m_out) {} + session& operator=(const session& a_from) {if(&a_from==this) return *this;return *this;} +public: + std::ostream& out() const {return m_out;} + bool is_valid() const {return true;} + bool steer() { + tools_vforcit(viewer*,m_to_render,it) {(*it)->render();} + m_to_render.clear(); + return true; + } + bool sync() { + tools_vforcit(viewer*,m_to_render,it) {(*it)->render();} + m_to_render.clear(); + return true; + } +public: + void to_render(viewer* a_viewer) { + if(is_inp(m_to_render,a_viewer)) return; + m_to_render.push_back(a_viewer); + } +protected: + std::ostream& m_out; + std::vector m_to_render; +}; + +}} + +#endif + diff --git a/source/externals/g4tools/include/tools/offscreen/sg_viewer b/source/externals/g4tools/include/tools/offscreen/sg_viewer new file mode 100644 index 0000000000..496dd460cf --- /dev/null +++ b/source/externals/g4tools/include/tools/offscreen/sg_viewer @@ -0,0 +1,123 @@ +// Copyright (C) 2010, Guy Barrand. All rights reserved. +// See the file tools.license for terms. + +#ifndef tools_offscreen_sg_viewer +#define tools_offscreen_sg_viewer + +#include "session" + +#include "../sg/viewer" +#include "../sg/zb_manager" +#include "../sg/gl2ps_manager" +#include "../sg/write_paper" + +namespace tools {namespace sg {class device_interactor;}} + +namespace tools { +namespace offscreen { + +class sg_viewer : public sg::viewer, public offscreen::viewer { + typedef sg::viewer parent; +protected: + virtual void render() {write_paper();} +public: + sg_viewer(session& a_session, + int /*a_x*/ = 0,int /*a_y*/ = 0, + unsigned int a_width = 500,unsigned int a_height = 500, + const std::string& /*a_win_title*/ = "") + :parent(a_session.out(),a_width,a_height) + ,m_session(a_session) + ,m_file_format("zb_ps") + ,m_file_name("out_zb.ps") + ,m_png_writer(0) + ,m_jpeg_writer(0) + ,m_do_transparency(true) + ,m_top_to_bottom(true) + {} + virtual ~sg_viewer() {} +protected: + sg_viewer(const sg_viewer& a_from) + :parent(a_from) + ,offscreen::viewer(a_from) + ,m_session(a_from.m_session) + ,m_zb_mgr(a_from.m_zb_mgr) + ,m_gl2ps_mgr(a_from.m_gl2ps_mgr) + ,m_file_format(a_from.m_file_format) + ,m_file_name(a_from.m_file_name) + ,m_png_writer(a_from.m_png_writer) + ,m_jpeg_writer(a_from.m_jpeg_writer) + ,m_do_transparency(a_from.m_do_transparency) + ,m_top_to_bottom(a_from.m_top_to_bottom) + ,m_opts_1(a_from.m_opts_1) + ,m_opts_2(a_from.m_opts_2) + {} + sg_viewer& operator=(const sg_viewer& a_from){ + parent::operator=(a_from); + m_file_format = a_from.m_file_format; + m_file_name = a_from.m_file_name; + m_png_writer = a_from.m_png_writer; + m_jpeg_writer = a_from.m_jpeg_writer; + m_do_transparency = a_from.m_do_transparency; + m_top_to_bottom = a_from.m_top_to_bottom; + m_opts_1 = a_from.m_opts_1; + m_opts_2 = a_from.m_opts_2; + return *this; + } +public: + bool has_window() const {return true;} + + bool show() { + m_session.to_render(this); + return true; + } + + void win_render() { + m_session.to_render(this); + } + + void set_device_interactor(sg::device_interactor*) {} + +public: + void set_file_format(const std::string& a_file_format) {m_file_format = a_file_format;} + void set_file_name(const std::string& a_file_name) {m_file_name = a_file_name;} + const std::string& file_format() const {return m_file_format;} + const std::string& file_name() const {return m_file_name;} + void set_png_writer(sg::png_writer a_png_writer) {m_png_writer = a_png_writer;} + void set_jpeg_writer(sg::jpeg_writer a_jpeg_writer) {m_jpeg_writer = a_jpeg_writer;} + void set_do_transparency(bool a_do_transparency) {m_do_transparency = a_do_transparency;} + void set_top_to_bottom(bool a_top_to_bottom) {m_top_to_bottom = a_top_to_bottom;} + void set_opts_1(const std::string& a_opts) {m_opts_1 = a_opts;} + void set_opts_2(const std::string& a_opts) {m_opts_2 = a_opts;} + + bool write_paper() { + if(!m_ww) return false; + if(!m_wh) return false; + return sg::write_paper(m_out,m_gl2ps_mgr,m_zb_mgr, + m_png_writer,m_jpeg_writer, + m_clear_color.r(), + m_clear_color.g(), + m_clear_color.b(), + m_clear_color.a(), + m_sg,m_ww,m_wh, + m_file_name,m_file_format, + m_do_transparency,m_top_to_bottom, + m_opts_1,m_opts_2); + } +protected: + session& m_session; + sg::zb_manager m_zb_mgr; + sg::gl2ps_manager m_gl2ps_mgr; + std::string m_file_format; + std::string m_file_name; + sg::png_writer m_png_writer; + sg::jpeg_writer m_jpeg_writer; + bool m_do_transparency; + bool m_top_to_bottom; + std::string m_opts_1; + std::string m_opts_2; +}; + +}} + +#endif + diff --git a/source/externals/g4tools/include/tools/rroot/THistogram b/source/externals/g4tools/include/tools/rroot/THistogram index 026c819cfd..22aedb8b57 100644 --- a/source/externals/g4tools/include/tools/rroot/THistogram +++ b/source/externals/g4tools/include/tools/rroot/THistogram @@ -86,7 +86,7 @@ inline unsigned int new_bin_number(const std::vector< axis_t >& aAxes) { template inline void add_outflow(const std::vector< axis_t >& aAxes,std::vector& aVector) { // aAxes[].m_offset contains the offset without outflow. - unsigned int dim = aAxes.size(); + std::size_t dim = aAxes.size(); // new size and offsets : std::vector aoff(dim); @@ -107,13 +107,13 @@ inline void add_outflow(const std::vector< axis_t >& aAxes,std::vector& aVect for(int index=0;index=0;iaxis--) { + {for(int iaxis=(int)dim-1;iaxis>=0;iaxis--) { is[iaxis] = offset/aAxes[iaxis].m_offset; offset -= is[iaxis] * aAxes[iaxis].m_offset; }} // new offset : offset = 0; - {for(unsigned iaxis=0;iaxis #include -#ifdef _MSC_VER +#if defined(_MSC_VER) || defined(__MINGW32__) #include #include #else @@ -60,7 +60,7 @@ public: //ifile #if defined(__linux__) && (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 2) if (::lseek64(m_file, a_offset, whence) < 0) { -#elif defined(_MSC_VER) +#elif defined(_MSC_VER) || defined(__MINGW32__) if (::_lseeki64(m_file, a_offset, whence) < 0) { #else if (::lseek(m_file, a_offset, whence) < 0) { @@ -137,7 +137,7 @@ public: #endif m_file = _open(a_path.c_str(), -#ifdef _MSC_VER +#if defined(_MSC_VER) || defined(__MINGW32__) O_RDONLY | O_BINARY,S_IREAD | S_IWRITE #else O_RDONLY,0644 diff --git a/source/externals/g4tools/include/tools/sg/gl2ps_action b/source/externals/g4tools/include/tools/sg/gl2ps_action index 9884f58396..c5134ff810 100644 --- a/source/externals/g4tools/include/tools/sg/gl2ps_action +++ b/source/externals/g4tools/include/tools/sg/gl2ps_action @@ -10,6 +10,7 @@ #include "render_action" #include "primitive_visitor" #include "../colorfs" +#include "../lina/plane" #include //FILE @@ -100,9 +101,12 @@ public: virtual void enable_light(unsigned int, float a_dx,float a_dy,float a_dz, - float a_r,float a_g,float a_b,float a_a){ + float a_r,float a_g,float a_b,float a_a, + float a_ar,float a_ag,float a_ab,float a_aa){ m_light_color.set_value(a_r,a_g,a_b,a_a); + m_light_ambient.set_value(a_ar,a_ag,a_ab,a_aa); m_light_direction.set_value(a_dx,a_dy,a_dz); + m_light_direction.normalize(); m_light_on = true; } @@ -116,6 +120,8 @@ public: set_normal_matrix(); m_color = _state.m_color; + m_normal = _state.m_normal; + m_ccw = (_state.m_winding==winding_ccw?true:false); m_POLYGON_OFFSET_FILL = _state.m_GL_POLYGON_OFFSET_FILL; m_CULL_FACE = _state.m_GL_CULL_FACE; @@ -167,6 +173,7 @@ public: ,m_FILE(0) ,m_pv(get_me()) ,m_light_color(colorf_white()) + ,m_light_ambient(colorf_black()) ,m_light_direction(vec3f(0,0,-1)) ,m_ccw(true) @@ -207,6 +214,7 @@ protected: ,m_vp_mtx(a_from.m_vp_mtx) ,m_pv(a_from.m_pv) ,m_light_color(a_from.m_light_color) + ,m_light_ambient(a_from.m_light_ambient) ,m_light_direction(a_from.m_light_direction) ,m_normal(a_from.m_normal) @@ -239,6 +247,7 @@ protected: m_vp_mtx = a_from.m_vp_mtx; m_pv = a_from.m_pv; m_light_color = a_from.m_light_color; + m_light_ambient = a_from.m_light_ambient; m_light_direction = a_from.m_light_direction; m_normal = a_from.m_normal; @@ -259,6 +268,9 @@ protected: } public: bool open(const std::string& a_name,int a_format = TOOLS_GL2PS_EPS) { + return open(a_name,a_format,-1,-1); + } + bool open(const std::string& a_name,int a_format,int a_sort,int a_options) { close(); m_gl2ps_context = ::tools_gl2psCreateContext(); @@ -269,7 +281,7 @@ public: return false; } - m_FILE = ::fopen(a_name.c_str(),"w"); + m_FILE = ::fopen(a_name.c_str(),"wb"); if(!m_FILE) { m_out << "tools::sg::gl2ps_action::open :" << " can't open file " << a_name << "." @@ -279,14 +291,23 @@ public: return false; } - int options = TOOLS_GL2PS_OCCLUSION_CULL - | TOOLS_GL2PS_BEST_ROOT - | TOOLS_GL2PS_SILENT - | TOOLS_GL2PS_DRAW_BACKGROUND; - //int sort = TOOLS_GL2PS_NO_SORT; - //int sort = TOOLS_GL2PS_SIMPLE_SORT; - int sort = TOOLS_GL2PS_BSP_SORT; + int sort = 0; + if(a_sort==(-1)) { + sort = TOOLS_GL2PS_BSP_SORT; + } else { + sort = a_sort; + } + int options = 0; + if(a_options==(-1)) { + options = TOOLS_GL2PS_SILENT + | TOOLS_GL2PS_OCCLUSION_CULL + | TOOLS_GL2PS_BEST_ROOT + | TOOLS_GL2PS_DRAW_BACKGROUND; + } else { + options = a_options; + } + tools_GLint vp[4]; vp[0] = 0; vp[1] = 0; @@ -343,7 +364,7 @@ protected: mat4f tmp(m_model); tmp.no_translate(); if(!tmp.invert(m_normal_matrix)) { - m_out << "mem_action::set_normal_matrix : can't invert model matrix." << std::endl; + m_out << "tools::sg::gl2ps_action::set_normal_matrix : can't invert model matrix." << std::endl; } m_normal_matrix.transpose(); } @@ -390,14 +411,14 @@ protected: float a = m_this.m_color[3]; tools_GLint offset = 0; - tools_GLfloat ofactor = 0; // - tools_GLfloat ounits = 0; // + tools_GLfloat ofactor = 0; + tools_GLfloat ounits = 0; tools_GLushort pattern = 0; tools_GLint factor = 0; tools_GLfloat sz = m_this.m_point_size; - tools_GLint linecap = 0; // - tools_GLint linejoin = 0; // - char boundary = 0; // + tools_GLint linecap = 0; + tools_GLint linejoin = 0; + char boundary = 0; tools_GL2PSvertex vertices[1]; @@ -413,14 +434,14 @@ protected: if(!m_this.m_gl2ps_context) return false; tools_GLint offset = 0; - tools_GLfloat ofactor = 0; // - tools_GLfloat ounits = 0; // + tools_GLfloat ofactor = 0; + tools_GLfloat ounits = 0; tools_GLushort pattern = 0; tools_GLint factor = 0; tools_GLfloat sz = m_this.m_point_size; - tools_GLint linecap = 0; // - tools_GLint linejoin = 0; // - char boundary = 0; // + tools_GLint linecap = 0; + tools_GLint linejoin = 0; + char boundary = 0; tools_GL2PSvertex vertices[1]; @@ -428,7 +449,6 @@ protected: m_this.set_vtx(vertices,0, a_x,a_y,a_z, a_r,a_g,a_b,a_a); - //::tools_gl2psAddPolyPrimitive(m_this.m_gl2ps_context,_GL2PS_POINT(),1,vertices,0,pattern,factor,sz,0); ::tools_gl2psAddPolyPrimitive(m_this.m_gl2ps_context,_GL2PS_POINT(),1,vertices,offset,ofactor,ounits,pattern,factor,sz,linecap,linejoin,boundary); return true; } @@ -443,14 +463,14 @@ protected: float a = m_this.m_color[3]; tools_GLint offset = 0; - tools_GLfloat ofactor = 0; // - tools_GLfloat ounits = 0; // + tools_GLfloat ofactor = 0; + tools_GLfloat ounits = 0; tools_GLushort pattern = 0; tools_GLint factor = 0; tools_GLfloat lwidth = m_this.m_line_width; - tools_GLint linecap = 0; // - tools_GLint linejoin = 0; // - char boundary = 0; // + tools_GLint linecap = 0; + tools_GLint linejoin = 0; + char boundary = 0; tools_GL2PSvertex vertices[2]; @@ -460,7 +480,6 @@ protected: m_this.set_vtx(vertices,0, a_bx,a_by,a_bz, r,g,b,a); m_this.set_vtx(vertices,1, a_ex,a_ey,a_ez, r,g,b,a); - //::tools_gl2psAddPolyPrimitive(m_this.m_gl2ps_context,_GL2PS_LINE(),2,vertices,0,pattern,factor,lwidth,0); ::tools_gl2psAddPolyPrimitive(m_this.m_gl2ps_context,_GL2PS_LINE(),2,vertices,offset,ofactor,ounits,pattern,factor,lwidth,linecap,linejoin,boundary); return true; @@ -473,14 +492,14 @@ protected: if(!m_this.m_gl2ps_context) return false; tools_GLint offset = 0; - tools_GLfloat ofactor = 0; // - tools_GLfloat ounits = 0; // + tools_GLfloat ofactor = 0; + tools_GLfloat ounits = 0; tools_GLushort pattern = 0; tools_GLint factor = 0; tools_GLfloat lwidth = m_this.m_line_width; - tools_GLint linecap = 0; // - tools_GLint linejoin = 0; // - char boundary = 0; // + tools_GLint linecap = 0; + tools_GLint linejoin = 0; + char boundary = 0; tools_GL2PSvertex vertices[2]; @@ -496,76 +515,41 @@ protected: return true; } - virtual bool add_triangle(float a_p1x,float a_p1y,float a_p1z,float, - float a_p2x,float a_p2y,float a_p2z,float, - float a_p3x,float a_p3y,float a_p3z,float){ - if(!m_this.m_gl2ps_context) return false; - + virtual bool add_triangle(float a_p1x,float a_p1y,float a_p1z,float a_p1w, + float a_p2x,float a_p2y,float a_p2z,float a_p2w, + float a_p3x,float a_p3y,float a_p3z,float a_p3w){ float r = m_this.m_color[0]; float g = m_this.m_color[1]; float b = m_this.m_color[2]; float a = m_this.m_color[3]; - - tools_GLint offset = 0; - tools_GLfloat ofactor = 0; // - tools_GLfloat ounits = 0; // - tools_GLushort pattern = 0; - tools_GLint factor = 0; - tools_GLfloat lwidth = m_this.m_line_width; - tools_GLint linecap = 0; // - tools_GLint linejoin = 0; // - char boundary = 0; // - - tools_GL2PSvertex vertices[3]; - - m_this.m_vp_mtx.mul_3f(a_p1x,a_p1y,a_p1z); - m_this.m_vp_mtx.mul_3f(a_p2x,a_p2y,a_p2z); - m_this.m_vp_mtx.mul_3f(a_p3x,a_p3y,a_p3z); - - m_this.set_vtx(vertices,0, a_p1x,a_p1y,a_p1z, r,g,b,a); - m_this.set_vtx(vertices,1, a_p2x,a_p2y,a_p2z, r,g,b,a); - m_this.set_vtx(vertices,2, a_p3x,a_p3y,a_p3z, r,g,b,a); - - //tools_gl2psAddPolyPrimitive(m_this.m_gl2ps_context,_GL2PS_TRIANGLE(),3,vertices,0,pattern,factor,lwidth,0); - ::tools_gl2psAddPolyPrimitive(m_this.m_gl2ps_context,_GL2PS_TRIANGLE(),3,vertices,offset,ofactor,ounits,pattern,factor,lwidth,linecap,linejoin,boundary); - - return true; + return _add_triangle(a_p1x,a_p1y,a_p1z,a_p1w, + m_this.m_normal.x(),m_this.m_normal.y(),m_this.m_normal.z(), + r,g,b,a, + a_p2x,a_p2y,a_p2z,a_p2w, + m_this.m_normal.x(),m_this.m_normal.y(),m_this.m_normal.z(), + r,g,b,a, + a_p3x,a_p3y,a_p3z,a_p3w, + m_this.m_normal.x(),m_this.m_normal.y(),m_this.m_normal.z(), + r,g,b,a); } virtual bool add_triangle( - float a_p1x,float a_p1y,float a_p1z,float, + float a_p1x,float a_p1y,float a_p1z,float a_p1w, float a_r1,float a_g1,float a_b1,float a_a1, - float a_p2x,float a_p2y,float a_p2z,float, + float a_p2x,float a_p2y,float a_p2z,float a_p2w, float a_r2,float a_g2,float a_b2,float a_a2, - float a_p3x,float a_p3y,float a_p3z,float, + float a_p3x,float a_p3y,float a_p3z,float a_p3w, float a_r3,float a_g3,float a_b3,float a_a3){ - if(!m_this.m_gl2ps_context) return false; - - tools_GLint offset = 0; - tools_GLfloat ofactor = 0; // - tools_GLfloat ounits = 0; // - tools_GLushort pattern = 0; - tools_GLint factor = 0; - tools_GLfloat lwidth = m_this.m_line_width; - tools_GLint linecap = 0; // - tools_GLint linejoin = 0; // - char boundary = 0; // - - tools_GL2PSvertex vertices[3]; - - m_this.m_vp_mtx.mul_3f(a_p1x,a_p1y,a_p1z); - m_this.m_vp_mtx.mul_3f(a_p2x,a_p2y,a_p2z); - m_this.m_vp_mtx.mul_3f(a_p3x,a_p3y,a_p3z); - - m_this.set_vtx(vertices,0, a_p1x,a_p1y,a_p1z, a_r1,a_g1,a_b1,a_a1); - m_this.set_vtx(vertices,1, a_p2x,a_p2y,a_p2z, a_r2,a_g2,a_b2,a_a2); - m_this.set_vtx(vertices,2, a_p3x,a_p3y,a_p3z, a_r3,a_g3,a_b3,a_a3); - - //tools_gl2psAddPolyPrimitive(m_this.m_gl2ps_context,_GL2PS_TRIANGLE(),3,vertices,0,pattern,factor,lwidth,0); - ::tools_gl2psAddPolyPrimitive(m_this.m_gl2ps_context,_GL2PS_TRIANGLE(),3,vertices,offset,ofactor,ounits,pattern,factor,lwidth,linecap,linejoin,boundary); - - return true; + return _add_triangle(a_p1x,a_p1y,a_p1z,a_p1w, + m_this.m_normal.x(),m_this.m_normal.y(),m_this.m_normal.z(), + a_r1,a_g1,a_b1,a_a1, + a_p2x,a_p2y,a_p2z,a_p2w, + m_this.m_normal.x(),m_this.m_normal.y(),m_this.m_normal.z(), + a_r2,a_g2,a_b2,a_a2, + a_p3x,a_p3y,a_p3z,a_p3w, + m_this.m_normal.x(),m_this.m_normal.y(),m_this.m_normal.z(), + a_r3,a_g3,a_b3,a_a3); } virtual bool project_normal(float& /*a_x*/,float& /*a_y*/,float& /*a_z*/) { @@ -607,39 +591,46 @@ protected: } virtual bool add_triangle_normal( float a_p1x,float a_p1y,float a_p1z,float a_p1w, - float /*a_n1x*/,float /*a_n1y*/,float /*a_n1z*/, + float a_n1x,float a_n1y,float a_n1z, float a_p2x,float a_p2y,float a_p2z,float a_p2w, - float /*a_n2x*/,float /*a_n2y*/,float /*a_n2z*/, + float a_n2x,float a_n2y,float a_n2z, float a_p3x,float a_p3y,float a_p3z,float a_p3w, - float /*a_n3x*/,float /*a_n3y*/,float /*a_n3z*/) { - add_triangle(a_p1x,a_p1y,a_p1z,a_p1w, - a_p2x,a_p2y,a_p2z,a_p2w, - a_p3x,a_p3y,a_p3z,a_p3w); - //m_this.m_triangles.add_normal(a_n1x,a_n1y,a_n1z); - //m_this.m_triangles.add_normal(a_n2x,a_n2y,a_n2z); - //m_this.m_triangles.add_normal(a_n3x,a_n3y,a_n3z); - return true; + float a_n3x,float a_n3y,float a_n3z) { + + float r = m_this.m_color[0]; + float g = m_this.m_color[1]; + float b = m_this.m_color[2]; + float a = m_this.m_color[3]; + + return _add_triangle(a_p1x,a_p1y,a_p1z,a_p1w, + a_n1x,a_n1y,a_n1z, + r,g,b,a, + a_p2x,a_p2y,a_p2z,a_p2w, + a_n2x,a_n2y,a_n2z, + r,g,b,a, + a_p3x,a_p3y,a_p3z,a_p3w, + a_n3x,a_n3y,a_n3z, + r,g,b,a); } virtual bool add_triangle_normal( float a_p1x,float a_p1y,float a_p1z,float a_p1w, - float /*a_n1x*/,float /*a_n1y*/,float /*a_n1z*/, + float a_n1x,float a_n1y,float a_n1z, float a_r1,float a_g1,float a_b1,float a_a1, float a_p2x,float a_p2y,float a_p2z,float a_p2w, - float /*a_n2x*/,float /*a_n2y*/,float /*a_n2z*/, + float a_n2x,float a_n2y,float a_n2z, float a_r2,float a_g2,float a_b2,float a_a2, float a_p3x,float a_p3y,float a_p3z,float a_p3w, - float /*a_n3x*/,float /*a_n3y*/,float /*a_n3z*/, + float a_n3x,float a_n3y,float a_n3z, float a_r3,float a_g3,float a_b3,float a_a3){ - add_triangle(a_p1x,a_p1y,a_p1z,a_p1w, - a_r1,a_g1,a_b1,a_a1, - a_p2x,a_p2y,a_p2z,a_p2w, - a_r2,a_g2,a_b2,a_a2, - a_p3x,a_p3y,a_p3z,a_p3w, - a_r3,a_g3,a_b3,a_a3); - //m_this.m_triangles.add_normal(a_n1x,a_n1y,a_n1z); - //m_this.m_triangles.add_normal(a_n2x,a_n2y,a_n2z); - //m_this.m_triangles.add_normal(a_n3x,a_n3y,a_n3z); - return true; + return _add_triangle(a_p1x,a_p1y,a_p1z,a_p1w, + a_n1x,a_n1y,a_n1z, + a_r1,a_g1,a_b1,a_a1, + a_p2x,a_p2y,a_p2z,a_p2w, + a_n2x,a_n2y,a_n2z, + a_r2,a_g2,a_b2,a_a2, + a_p3x,a_p3y,a_p3z,a_p3w, + a_n3x,a_n3y,a_n3z, + a_r3,a_g3,a_b3,a_a3); } public: primvis(gl2ps_action& a_this):m_this(a_this){} @@ -653,6 +644,109 @@ protected: primitive_visitor::operator=(a_from); return *this; } + protected: + bool _add_triangle(float a_p1x,float a_p1y,float a_p1z,float /*a_p1w*/, + float a_n1x,float a_n1y,float a_n1z, + float a_r1,float a_g1,float a_b1,float a_a1, + float a_p2x,float a_p2y,float a_p2z,float /*a_p2w*/, + float a_n2x,float a_n2y,float a_n2z, + float a_r2,float a_g2,float a_b2,float a_a2, + float a_p3x,float a_p3y,float a_p3z,float /*a_p3w*/, + float a_n3x,float a_n3y,float a_n3z, + float a_r3,float a_g3,float a_b3,float a_a3) { + + if(!m_this.m_gl2ps_context) return false; + + float p1x = a_p1x;float p1y = a_p1y;float p1z = a_p1z;//float p1w = a_p1w; + float p2x = a_p2x;float p2y = a_p2y;float p2z = a_p2z;//float p2w = a_p2w; + float p3x = a_p3x;float p3y = a_p3y;float p3z = a_p3z;//float p3w = a_p3w; + + m_this.m_vp_mtx.mul_3f(p1x,p1y,p1z); + m_this.m_vp_mtx.mul_3f(p2x,p2y,p2z); + m_this.m_vp_mtx.mul_3f(p3x,p3y,p3z); + + {plane pn( + vec3f(p1x,p1y,p1z), + vec3f(p2x,p2y,p2z), + vec3f(p3x,p3y,p3z) + ); + if(!pn.is_valid()) return true; + float C = pn.normal()[2]; + if(m_this.m_CULL_FACE){ + if(m_this.m_ccw) { + if(C<=0) return true; + } else { + if(C>=0) return true; + } + }} + + tools_GL2PSvertex vertices[3]; + + if(m_this.m_light_on) { // same logic as toolx/wasm/webgl.js: + + float nx = (a_n1x+a_n2x+a_n3x)/3.0f; + float ny = (a_n1y+a_n2y+a_n3y)/3.0f; + float nz = (a_n1z+a_n2z+a_n3z)/3.0f; + + m_this.m_normal_matrix.mul_dir_3f(nx,ny,nz); + vec3f _normal(nx,ny,nz);_normal.normalize(); + + float _dot = _normal.dot(m_this.m_light_direction); + + float _r = (a_r1+a_r2+a_r3)/3.0f; + float _g = (a_g1+a_g2+a_g3)/3.0f; + float _b = (a_b1+a_b2+a_b3)/3.0f; + float _a = (a_a1+a_a2+a_a3)/3.0f; + colorf a_color(_r,_g,_b,_a); + + colorf frag_color = a_color; + + if(_dot<0.0) { + _dot *= -1.0; + + colorf _tmp = m_this.m_light_color; + _tmp *= _dot; + _tmp += m_this.m_light_ambient; + + frag_color *= _tmp; + + } else { + frag_color *= m_this.m_light_ambient; + } + + frag_color.clamp(); + frag_color.set_a(a_color.a()); + + float r = frag_color.r(); + float g = frag_color.g(); + float b = frag_color.b(); + float a = frag_color.a(); + + m_this.set_vtx(vertices,0, p1x,p1y,p1z, r,g,b,a); + m_this.set_vtx(vertices,1, p2x,p2y,p2z, r,g,b,a); + m_this.set_vtx(vertices,2, p3x,p3y,p3z, r,g,b,a); + + } else { + m_this.set_vtx(vertices,0, p1x,p1y,p1z, a_r1,a_g1,a_b1,a_a1); + m_this.set_vtx(vertices,1, p2x,p2y,p2z, a_r2,a_g2,a_b2,a_a2); + m_this.set_vtx(vertices,2, p3x,p3y,p3z, a_r3,a_g3,a_b3,a_a3); + + } + + tools_GLint offset = 0; + tools_GLfloat ofactor = 0; + tools_GLfloat ounits = 0; + tools_GLushort pattern = 0; + tools_GLint factor = 0; + tools_GLfloat lwidth = m_this.m_line_width; + tools_GLint linecap = 0; + tools_GLint linejoin = 0; + char boundary = 0; + + ::tools_gl2psAddPolyPrimitive(m_this.m_gl2ps_context,_GL2PS_TRIANGLE(),3,vertices,offset,ofactor,ounits,pattern,factor,lwidth,linecap,linejoin,boundary); + + return true; + } protected: gl2ps_action& m_this; }; @@ -667,6 +761,7 @@ protected: primvis m_pv; colorf m_light_color; + colorf m_light_ambient; vec3f m_light_direction; vec3f m_normal; @@ -686,9 +781,9 @@ protected: bool m_DEPTH_TEST; }; -inline bool s2format(const std::string& a_format,int& a_gl2ps_format) { +inline bool gl2ps_s2format(const std::string& a_format,int& a_gl2ps_format) { if(a_format=="gl2ps_eps") {a_gl2ps_format = TOOLS_GL2PS_EPS;return true;} - if(a_format=="gl2ps_ps") {a_gl2ps_format = TOOLS_GL2PS_PS;return true;} + if(a_format=="gl2ps_ps") {a_gl2ps_format = TOOLS_GL2PS_PS; return true;} if(a_format=="gl2ps_pdf") {a_gl2ps_format = TOOLS_GL2PS_PDF;return true;} if(a_format=="gl2ps_svg") {a_gl2ps_format = TOOLS_GL2PS_SVG;return true;} if(a_format=="gl2ps_tex") {a_gl2ps_format = TOOLS_GL2PS_TEX;return true;} @@ -697,6 +792,54 @@ inline bool s2format(const std::string& a_format,int& a_gl2ps_format) { return false; } +inline bool gl2ps_s2sort(const std::string& a_sort,int& a_gl2ps_sort) { + if(a_sort=="NO_SORT") {a_gl2ps_sort = TOOLS_GL2PS_NO_SORT; return true;} + if(a_sort=="SIMPLE_SORT") {a_gl2ps_sort = TOOLS_GL2PS_SIMPLE_SORT;return true;} + if(a_sort=="BSP_SORT") {a_gl2ps_sort = TOOLS_GL2PS_BSP_SORT; return true;} + a_gl2ps_sort = TOOLS_GL2PS_NO_SORT; + return false; +} + }} +#include "../words" +#include "../forit" +#include "../touplow" +#include "../sout" + +namespace tools { +namespace sg { + +inline bool gl2ps_s2options(const std::string& a_opts,int& a_gl2ps_opts) { + std::vector opts; + words(a_opts,"|",false,opts); + a_gl2ps_opts = 0; + tools_vforit(std::string,opts,it) { + touppercase(*it); + const std::string& item = *it; + if(item=="NONE") a_gl2ps_opts |= TOOLS_GL2PS_NONE; + else if(item=="DRAW_BACKGROUND") a_gl2ps_opts |= TOOLS_GL2PS_DRAW_BACKGROUND; + else if(item=="SIMPLE_LINE_OFFSET") a_gl2ps_opts |= TOOLS_GL2PS_SIMPLE_LINE_OFFSET; + else if(item=="SILENT") a_gl2ps_opts |= TOOLS_GL2PS_SILENT; + else if(item=="BEST_ROOT") a_gl2ps_opts |= TOOLS_GL2PS_BEST_ROOT; + else if(item=="OCCLUSION_CULL") a_gl2ps_opts |= TOOLS_GL2PS_OCCLUSION_CULL; + else if(item=="NO_TEXT") a_gl2ps_opts |= TOOLS_GL2PS_NO_TEXT; + else if(item=="LANDSCAPE") a_gl2ps_opts |= TOOLS_GL2PS_LANDSCAPE; + else if(item=="NO_PS3_SHADING") a_gl2ps_opts |= TOOLS_GL2PS_NO_PS3_SHADING; + else if(item=="NO_PIXMAP") a_gl2ps_opts |= TOOLS_GL2PS_NO_PIXMAP; + else if(item=="USE_CURRENT_VIEWPORT") a_gl2ps_opts |= TOOLS_GL2PS_USE_CURRENT_VIEWPORT; + else if(item=="COMPRESS") a_gl2ps_opts |= TOOLS_GL2PS_COMPRESS; + else if(item=="NO_BLENDING") a_gl2ps_opts |= TOOLS_GL2PS_NO_BLENDING; + else if(item=="TIGHT_BOUNDING_BOX") a_gl2ps_opts |= TOOLS_GL2PS_TIGHT_BOUNDING_BOX; + else if(item=="NO_OPENGL_CONTEXT") a_gl2ps_opts |= TOOLS_GL2PS_NO_OPENGL_CONTEXT; + else if(item=="NO_TEX_FONTSIZE") a_gl2ps_opts |= TOOLS_GL2PS_NO_TEX_FONTSIZE; + else if(item=="PORTABLE_SORT") a_gl2ps_opts |= TOOLS_GL2PS_PORTABLE_SORT; + else {a_gl2ps_opts = 0;return false;} + } + return true; +} + +}} + + #endif diff --git a/source/externals/g4tools/include/tools/sg/head_light b/source/externals/g4tools/include/tools/sg/head_light index 64ce5ae322..add9cffd1a 100644 --- a/source/externals/g4tools/include/tools/sg/head_light +++ b/source/externals/g4tools/include/tools/sg/head_light @@ -30,8 +30,8 @@ public: {mat4f mtx; state.m_camera_orientation.value(mtx); mtx.mul_dir_3f(dx,dy,dz);} - state.m_GL_LIGHTING = true; //for separator - a_action.enable_light(state.m_light,vec3f(dx,dy,dz),color.value()); + state.m_GL_LIGHTING = true; + a_action.enable_light(state.m_light,vec3f(dx,dy,dz),color.value(),ambient.value()); state.m_light++; } public: diff --git a/source/externals/g4tools/include/tools/sg/markers b/source/externals/g4tools/include/tools/sg/markers index 248e623aa4..2f7a33e0ed 100644 --- a/source/externals/g4tools/include/tools/sg/markers +++ b/source/externals/g4tools/include/tools/sg/markers @@ -601,6 +601,13 @@ public: xyzs.add(a_y); xyzs.add(a_z); } + void add_allocated(size_t& a_pos,float a_x,float a_y,float a_z) { + std::vector& v = xyzs.values(); + v[a_pos] = a_x;a_pos++; + v[a_pos] = a_y;a_pos++; + v[a_pos] = a_z;a_pos++; + xyzs.touch(); + } bool add(const std::vector& a_v) { std::vector::size_type _number = a_v.size()/3; if(3*_number!=a_v.size()) return false; diff --git a/source/externals/g4tools/include/tools/sg/plots b/source/externals/g4tools/include/tools/sg/plots index d857d8b8a6..d6f7230186 100644 --- a/source/externals/g4tools/include/tools/sg/plots +++ b/source/externals/g4tools/include/tools/sg/plots @@ -938,7 +938,6 @@ protected: m_sep.clear(); - unsigned int index = 0; for(unsigned int irow=0;irowadd(tsf); //TSF() sep->add(new plotter(m_ttf)); //PLOTTER() - - index++; } } diff --git a/source/externals/g4tools/include/tools/sg/plots_viewer b/source/externals/g4tools/include/tools/sg/plots_viewer index e5865c1b05..943305d19e 100644 --- a/source/externals/g4tools/include/tools/sg/plots_viewer +++ b/source/externals/g4tools/include/tools/sg/plots_viewer @@ -80,14 +80,13 @@ public: bool write_inzb_png(png_writer a_writer,const std::string& a_file,unsigned int a_width,unsigned int a_height) { // for example : - // #include + // #include // ... - // viewer.write_inzb_png(tools::png::write,"out.png"); + // viewer.write_inzb_png(toolx::png::write,"out.png"); // zb_action action(m_zb_mgr,m_out,a_width,a_height); - action.zbuffer().clear_color_buffer(0); - action.add_color(m_clear_color.r(),m_clear_color.g(),m_clear_color.b(),m_clear_color.a()); - action.zbuffer().clear_depth_buffer(); + action.clear_color_buffer(m_clear_color); + action.clear_depth_buffer(); sg().render(action); unsigned int bpp = 3; @@ -97,7 +96,7 @@ public: return false; } unsigned char* pos = buffer; - zb_action::VCol r,g,b; + float r,g,b; for(unsigned int row=0;row + // #include // ... - // viewer.write_inzb_jpeg(tools::jpeg::write,"out.jpeg"); + // viewer.write_inzb_jpeg(toolx::jpeg::write,"out.jpeg"); // zb_action action(m_zb_mgr,m_out,a_width,a_height); - action.zbuffer().clear_color_buffer(0); - action.add_color(m_clear_color.r(),m_clear_color.g(),m_clear_color.b(),m_clear_color.a()); - action.zbuffer().clear_depth_buffer(); + action.clear_color_buffer(m_clear_color); + action.clear_depth_buffer(); sg().render(action); unsigned int bpp = 3; @@ -140,7 +138,7 @@ public: return false; } unsigned char* pos = buffer; - zb_action::VCol r,g,b; + float r,g,b; for(unsigned int row=0;rowmode = gl::points(); separator->add(vtxs); - int ipt = 0; float xdbin = xe - xx; float ydbin = ye - yy; for(int count=0;count=0)&&(yyy<=1) ) { vtxs->add(xxx,yyy,a_zz); empty = false; - ipt++; } } } @@ -6894,7 +6892,7 @@ protected: //rep if(ye>1) ye = 1; char sval[32]; - ::sprintf (sval,"%d",ival); + //::sprintf (sval,"%d",ival); SbString sbval(sval); int charn = sbval.getLength(); if(charn<=0) continue; @@ -6903,7 +6901,7 @@ protected: //rep separator->addChild(sep); {char s[128]; - ::sprintf(s,"%d %d",a_bins[index].fI,a_bins[index].fJ); + //::sprintf(s,"%d %d",a_bins[index].fI,a_bins[index].fJ); sep->setInfos(s);} {std::string sp; if(!p2sx(sep->getInfos(),sp)){} diff --git a/source/externals/g4tools/include/tools/sg/render_action b/source/externals/g4tools/include/tools/sg/render_action index 4ca4c72a67..954744e4e8 100644 --- a/source/externals/g4tools/include/tools/sg/render_action +++ b/source/externals/g4tools/include/tools/sg/render_action @@ -68,8 +68,9 @@ public: virtual void set_depth_test(bool) = 0; virtual unsigned int max_lights() = 0; virtual void enable_light(unsigned int, - float,float,float, //directrion - float,float,float,float) = 0; //RGBA + float,float,float, //directrion + float,float,float,float, //diffuse RGBA + float,float,float,float) = 0; //ambient RGBA virtual void set_lighting(bool) = 0; virtual void set_blend(bool) = 0; virtual void restore_state(unsigned int) = 0; @@ -101,8 +102,8 @@ public: bool have_to_do_transparency() const {return m_have_to_do_transparency;} bool have_to_render() { - bool transparent = state().m_color.a()!=1?true:false; - if(transparent) { + bool transparent = state().m_color.a()!=1.0f?true:false; + if(transparent && state().m_GL_BLEND) { if(m_do_transparency) return true; m_have_to_do_transparency = true; return false; @@ -130,10 +131,11 @@ public: void enable_light(unsigned int a_light, const vec3f& a_dir, - const colorf& a_col) { + const colorf& a_col,const colorf& a_ambient) { enable_light(a_light, a_dir[0],a_dir[1],a_dir[2], - a_col[0],a_col[1],a_col[2],1); + a_col[0],a_col[1],a_col[2],a_col[3], + a_ambient[0],a_ambient[1],a_ambient[2],a_ambient[3]); } void draw_vertex_array(gl::mode_t a_mode,const std::vector& a_xyzs){ diff --git a/source/externals/g4tools/include/tools/sg/torche b/source/externals/g4tools/include/tools/sg/torche index b7410613e4..1838b510f7 100644 --- a/source/externals/g4tools/include/tools/sg/torche +++ b/source/externals/g4tools/include/tools/sg/torche @@ -19,13 +19,15 @@ class torche : public node { TOOLS_NODE(torche,tools::sg::torche,node) public: sf_vec color; + sf_vec ambient; sf_vec3f direction; sf on; public: virtual const desc_fields& node_desc_fields() const { TOOLS_FIELD_DESC_NODE_CLASS(tools::sg::torche) - static const desc_fields s_v(parent::node_desc_fields(),3, //WARNING : take care of count. + static const desc_fields s_v(parent::node_desc_fields(),4, //WARNING : take care of count. TOOLS_ARG_FIELD_DESC(color), + TOOLS_ARG_FIELD_DESC(ambient), TOOLS_ARG_FIELD_DESC(direction), TOOLS_ARG_FIELD_DESC(on) ); @@ -34,6 +36,7 @@ public: private: void add_fields(){ add_field(&color); + add_field(&ambient); add_field(&direction); add_field(&on); } @@ -47,14 +50,15 @@ public: << std::endl; return; } - state.m_GL_LIGHTING = true; //for separator - a_action.enable_light(state.m_light,direction.value(),color.value()); + state.m_GL_LIGHTING = true; + a_action.enable_light(state.m_light,direction.value(),color.value(),ambient.value()); state.m_light++; } public: torche() :parent() ,color(colorf_white()) + ,ambient(colorf_black()) ,direction(vec3f(0,0,-1)) ,on(true) { @@ -65,6 +69,7 @@ public: torche(const torche& a_from) :parent(a_from) ,color(a_from.color) + ,ambient(a_from.ambient) ,direction(a_from.direction) ,on(a_from.on) { @@ -73,6 +78,7 @@ public: torche& operator=(const torche& a_from){ parent::operator=(a_from); color = a_from.color; + ambient = a_from.ambient; direction = a_from.direction; on = a_from.on; return *this; diff --git a/source/externals/g4tools/include/tools/sg/write_paper b/source/externals/g4tools/include/tools/sg/write_paper index 159fa77b53..9eae4a9754 100644 --- a/source/externals/g4tools/include/tools/sg/write_paper +++ b/source/externals/g4tools/include/tools/sg/write_paper @@ -14,9 +14,9 @@ // gl2ps_tex: gl2ps producing tex // gl2ps_pgf: gl2ps producing pgf // By using the zb_action (zb for zbuffer): -// zb_ps: tools::sg offscreen zbuffer put in a PostScript file. -// zb_png: zbuffer put in a png file. It needs to provide a "png_writer" function. -// zb_jpeg: zbuffer put in a jpeg file. It needs to provide a "jpeg_writer" function. +// inzb_ps: tools::sg offscreen zbuffer put in a PostScript file. +// inzb_png: zbuffer put in a png file. It needs to provide a "png_writer" function. +// inzb_jpeg: zbuffer put in a jpeg file. It needs to provide a "jpeg_writer" function. #include "zb_action" #include "node" @@ -40,25 +40,70 @@ inline bool write_paper(std::ostream& a_out, float a_back_r,float a_back_g,float a_back_b,float a_back_a, node& a_scene_graph, unsigned int a_width,unsigned int a_height, - const std::string& a_file,const std::string& a__format) { + const std::string& a_file,const std::string& a__format, + bool a_do_transparency, + bool a_top_to_bottom, + const std::string& a_opts_1,const std::string& a_opts_2) { if(!a_width || !a_height) return false; std::string a_format = a__format; tolowercase(a_format); //handle legacy. int gl2ps_format; - if(s2format(a_format,gl2ps_format)) { + if(gl2ps_s2format(a_format,gl2ps_format)) { + int sort = -1; + if(a_opts_1.size() && !gl2ps_s2sort(a_opts_1,sort)) { + a_out << "tools::sg::write_paper: bad gl2ps sort " << sout(a_opts_1) << "." << std::endl; + return false; + } + int options = -1; + if(a_opts_2.size() && !gl2ps_s2options(a_opts_2,options)) { + a_out << "tools::sg::write_paper: bad gl2ps options " << sout(a_opts_2) << "." << std::endl; + return false; + } gl2ps_action action(a_gl2ps_mgr,a_out,a_width,a_height); action.clear_color(a_back_r,a_back_g,a_back_b,a_back_a); - if(!action.open(a_file,gl2ps_format)) return false; + if(!action.open(a_file,gl2ps_format,sort,options)) return false; + action.set_do_transparency(false); + action.set_have_to_do_transparency(false); a_scene_graph.render(action); + if(!action.end()) { //check that matrices stack are ok. + a_out << "tools::sg::write_paper: bad gl2ps_action end." << std::endl; + action.close(); + return false; + } else if(a_do_transparency) { + if(action.have_to_do_transparency()) { + //a_out << "tools::sg::write_paper: warning: gl2ps does not handle transparency." << std::endl; + action.set_do_transparency(true); + a_scene_graph.render(action); + if(!action.end()) { //check that matrices stack are ok. + a_out << "tools::sg::write_paper: bad gl2ps_action end." << std::endl; + action.close(); + return false; + } + } + } action.close(); return true; } zb_action action(a_zb_mgr,a_out,a_width,a_height); - action.zbuffer().clear_color_buffer(0); - action.add_color(a_back_r,a_back_g,a_back_b,a_back_a); - action.zbuffer().clear_depth_buffer(); + action.clear_color_buffer(a_back_r,a_back_g,a_back_b,a_back_a); + action.clear_depth_buffer(); + action.set_do_transparency(false); + action.set_have_to_do_transparency(false); a_scene_graph.render(action); + if(!action.end()) { //check that matrices stack are ok. + a_out << "tools::sg::write_paper: bad zb_action end." << std::endl; + return false; + } else if(a_do_transparency) { + if(action.have_to_do_transparency()) { + action.set_do_transparency(true); + a_scene_graph.render(action); + if(!action.end()) { //check that matrices stack are ok. + a_out << "tools::sg::write_paper: bad zb_action end." << std::endl; + return false; + } + } + } if((a_format=="zb_ps")||(a_format=="inzb_ps")) { wps wps(a_out); @@ -81,7 +126,7 @@ inline bool write_paper(std::ostream& a_out, } size_t sz; - unsigned char* buffer = action.get_rgbas(sz); + unsigned char* buffer = action.get_rgbas(sz,a_top_to_bottom); if(!buffer) { a_out << "tools::sg::write_paper : can't get rgba image." << std::endl; return false; @@ -104,7 +149,7 @@ inline bool write_paper(std::ostream& a_out, } size_t sz; - unsigned char* buffer = action.get_rgbs(sz); + unsigned char* buffer = action.get_rgbs(sz,a_top_to_bottom); if(!buffer) { a_out << "tools::sg::write_paper : can't get rgb image." << std::endl; return false; @@ -123,6 +168,36 @@ inline bool write_paper(std::ostream& a_out, return false; } +inline bool write_paper(std::ostream& a_out, + gl2ps_manager& a_gl2ps_mgr,zb_manager& a_zb_mgr, + png_writer a_png_writer,jpeg_writer a_jpeg_writer, + const tools::colorf& a_back, + node& a_scene_graph, + unsigned int a_width,unsigned int a_height, + const std::string& a_file,const std::string& a_format, + bool a_do_transparency,bool a_top_to_bottom, + const std::string& a_opts_1,const std::string& a_opts_2) { + return tools::sg::write_paper(a_out,a_gl2ps_mgr,a_zb_mgr, + a_png_writer,a_jpeg_writer, + a_back.r(),a_back.g(),a_back.b(),a_back.a(), + a_scene_graph,a_width,a_height,a_file,a_format, + a_do_transparency,a_top_to_bottom,a_opts_1,a_opts_2); +} + +inline bool write_paper(std::ostream& a_out, + gl2ps_manager& a_gl2ps_mgr,zb_manager& a_zb_mgr, + png_writer a_png_writer,jpeg_writer a_jpeg_writer, + const tools::colorf& a_back, + node& a_scene_graph, + unsigned int a_width,unsigned int a_height, + const std::string& a_file,const std::string& a_format) { + return tools::sg::write_paper(a_out,a_gl2ps_mgr,a_zb_mgr, + a_png_writer,a_jpeg_writer, + a_back.r(),a_back.g(),a_back.b(),a_back.a(), + a_scene_graph,a_width,a_height,a_file,a_format, + true,true,std::string(),std::string()); +} + }} #endif diff --git a/source/externals/g4tools/include/tools/sg/zb_action b/source/externals/g4tools/include/tools/sg/zb_action index 298aa52f36..555fb13036 100644 --- a/source/externals/g4tools/include/tools/sg/zb_action +++ b/source/externals/g4tools/include/tools/sg/zb_action @@ -12,13 +12,10 @@ #include "../zb/buffer" +#include "../colorfs" #include "../lina/plane" #include "../mathf" -#include "../hls" -#include "../colorfs" -#include "../lina/vec2f" #include "../lina/vec3d" //ZZ=double -#include "../lina/geom2" namespace tools { namespace sg { @@ -54,8 +51,9 @@ public: } virtual void clear_color(float a_r,float a_g,float a_b,float a_a){ - zb::buffer::ZPixel px = get_pix(colorf(a_r,a_g,a_b,a_a)); - m_zb.clear_color_buffer(px); + zb::buffer::ZPixel pix; + zb::buffer::rgba2pix(a_r,a_g,a_b,a_a,pix); + m_zb.clear_color_buffer(pix); } virtual void color4f(float a_r,float a_g,float a_b,float a_a){ m_rgba.set_value(a_r,a_g,a_b,a_a); @@ -80,32 +78,38 @@ public: virtual void load_proj_matrix(const mat4f& a_mtx) { m_proj = a_mtx; - if(!m_proj.invert(m_proj_1)){} } - virtual void load_model_matrix(const mat4f& a_mtx) {m_model = a_mtx;} + virtual void load_model_matrix(const mat4f& a_mtx) { + m_model = a_mtx; + set_normal_matrix(); + } virtual unsigned int max_lights() {return 1000;} virtual void enable_light(unsigned int, float a_dx,float a_dy,float a_dz, - float a_r,float a_g,float a_b,float a_a){ + float a_r,float a_g,float a_b,float a_a, + float a_ar,float a_ag,float a_ab,float a_aa){ m_light_color.set_value(a_r,a_g,a_b,a_a); + m_light_ambient.set_value(a_ar,a_ag,a_ab,a_aa); m_light_direction.set_value(a_dx,a_dy,a_dz); + m_light_direction.normalize(); m_light_on = true; } - virtual void set_lighting(bool a_on) {m_light_on = a_on;} - virtual void set_blend(bool) {} + virtual void set_lighting(bool a_value) {m_light_on = a_value;} + virtual void set_blend(bool a_value) {m_blend = a_value;} virtual void restore_state(unsigned int /*a_ret_num_light*/) { const sg::state& _state = state(); m_proj = _state.m_proj; m_model = _state.m_model; - - if(!m_proj.invert(m_proj_1)){} + set_normal_matrix(); m_rgba = _state.m_color; + m_normal = _state.m_normal; + m_ccw = (_state.m_winding==winding_ccw?true:false); m_POLYGON_OFFSET_FILL = _state.m_GL_POLYGON_OFFSET_FILL; m_CULL_FACE = _state.m_GL_CULL_FACE; @@ -115,7 +119,7 @@ public: m_point_size = _state.m_point_size; m_light_on = _state.m_GL_LIGHTING; m_DEPTH_TEST = _state.m_GL_DEPTH_TEST; - + m_blend = _state.m_GL_BLEND; /* if(_state.m_GL_TEXTURE_2D) ::glEnable(GL_TEXTURE_2D); @@ -166,6 +170,7 @@ public: ,m_mgr(a_mgr) ,m_pv(get_me()) ,m_light_color(colorf_white()) + ,m_light_ambient(colorf_black()) ,m_light_direction(vec3f(0,0,-1)) ,m_normal(0,0,1) @@ -178,14 +183,19 @@ public: ,m_point_size(1) ,m_light_on(false) ,m_DEPTH_TEST(true) + ,m_blend(false) { m_vp_mtx.set_identity(); m_vp_mtx.mul_translate(float(m_ww)/2,float(m_wh)/2,0); m_vp_mtx.mul_scale(float(m_ww)/2,float(m_wh)/2,1); m_zb.change_size(a_ww,a_wh); -// m_zb.clear_color_buffer(0); -// m_zb.clear_depth_buffer(); + //m_zb.clear_color_buffer(0); + //m_zb.clear_depth_buffer(); + + m_proj.set_identity(); + m_model.set_identity(); + m_normal_matrix.set_identity(); } virtual ~zb_action(){} protected: @@ -193,15 +203,15 @@ protected: :parent(a_from) ,m_mgr(a_from.m_mgr) ,m_vp_mtx(a_from.m_vp_mtx) - //,m_buffer(a_from.m_buffer) ,m_pv(a_from.m_pv) - ,m_proj_1(a_from.m_proj_1) ,m_light_color(a_from.m_light_color) + ,m_light_ambient(a_from.m_light_ambient) ,m_light_direction(a_from.m_light_direction) ,m_normal(a_from.m_normal) ,m_proj(a_from.m_proj) ,m_model(a_from.m_model) + ,m_normal_matrix(a_from.m_normal_matrix) ,m_rgba(a_from.m_rgba) ,m_ccw(a_from.m_ccw) ,m_POLYGON_OFFSET_FILL(a_from.m_POLYGON_OFFSET_FILL) @@ -212,19 +222,20 @@ protected: ,m_point_size(a_from.m_point_size) ,m_light_on(a_from.m_light_on) ,m_DEPTH_TEST(a_from.m_DEPTH_TEST) + ,m_blend(a_from.m_blend) {} zb_action& operator=(const zb_action& a_from){ parent::operator=(a_from); m_vp_mtx = a_from.m_vp_mtx; - //m_buffer = a_from.m_buffer; m_pv = a_from.m_pv; - m_proj_1 = a_from.m_proj_1; m_light_color = a_from.m_light_color; + m_light_ambient = a_from.m_light_ambient; m_light_direction = a_from.m_light_direction; m_normal = a_from.m_normal; m_proj = a_from.m_proj; m_model = a_from.m_model; + m_normal_matrix = a_from.m_normal_matrix; m_rgba = a_from.m_rgba; m_ccw = a_from.m_ccw; m_POLYGON_OFFSET_FILL = a_from.m_POLYGON_OFFSET_FILL; @@ -235,148 +246,124 @@ protected: m_point_size = a_from.m_point_size; m_light_on = a_from.m_light_on; m_DEPTH_TEST = a_from.m_DEPTH_TEST; + m_blend = a_from.m_blend; return *this; } public: - void reset() { - m_cmap.clear(); - m_rcmap.clear(); - } + void reset() {} - const zb::buffer& zbuffer() const {return m_zb;} - zb::buffer& zbuffer() {return m_zb;} + void clear_color_buffer(float a_r,float a_g,float a_b,float a_a){ + clear_color(a_r,a_g,a_b,a_a); + } + void clear_color_buffer(const colorf& a_color){ + clear_color(a_color.r(),a_color.g(),a_color.b(),a_color.a()); + } + + void clear_depth_buffer() {m_zb.clear_depth_buffer();} protected: - typedef std::map cmap_t; -public: - //const cmap_t& colormap() const {return m_cmap;} - //cmap_t& colormap() {return m_cmap;} - zb::buffer::ZPixel add_color(float a_r,float a_g,float a_b,float a_a){ - return add_color(colorf(a_r,a_g,a_b,a_a)); - } - zb::buffer::ZPixel add_color(float a_r,float a_g,float a_b){ - return add_color(a_r,a_g,a_b,1); - } - zb::buffer::ZPixel add_color(const colorf& a_col){ - //::printf("debug : zb_action::add_color : %g %g %g %g : %d\n", - // a_col.r(),a_col.g(),a_col.b(),a_col.a(),m_cmap.size()); - zb::buffer::ZPixel pix = (zb::buffer::ZPixel)m_cmap.size(); - m_cmap[a_col] = pix; - return pix; - } - - zb::buffer::ZPixel get_pix(const colorf& a_rgba) { - cmap_t::const_iterator it = m_cmap.find(a_rgba); - if(it!=m_cmap.end()) return (*it).second; - return add_color(a_rgba); - } - - bool find_color(zb::buffer::ZPixel a_pix,colorf& a_rgba) const { - cmap_t::const_iterator it; - for(it=m_cmap.begin();it!=m_cmap.end();++it){ - if((*it).second==a_pix) {a_rgba = (*it).first;return true;} - } - return false; - } - - typedef std::map rcmap_t; - const rcmap_t& rcolormap() const {return m_rcmap;} - rcmap_t& rcolormap() {return m_rcmap;} + typedef unsigned char uchar; protected: - void gen_rcmap() { - m_rcmap.clear(); - cmap_t::const_iterator it; - for(it=m_cmap.begin();it!=m_cmap.end();++it){ - m_rcmap[(*it).second] = (*it).first; - } + static void color2pix(const colorf& a_rgba,zb::buffer::ZPixel& a_pix) { + zb::buffer::rgba2pix(a_rgba.r(),a_rgba.g(),a_rgba.b(),a_rgba.a(),a_pix); } public: - //typedef wps::VCol VCol; - typedef float VCol; + zb::buffer::ZPixel* get_color_buffer(unsigned int& a_width,unsigned int& a_height) const {return m_zb.get_color_buffer(a_width,a_height);} - static bool get_rgb(void* a_tag,unsigned int a_col,unsigned int a_row,VCol& a_r,VCol& a_g,VCol& a_b){ - //used with wps. - zb_action* rzb = (zb_action*)a_tag; - - zb::buffer::ZPixel pix; - if(!rzb->zbuffer().get_clipped_pixel(a_col,rzb->wh()-1-a_row,pix)){ - rzb->out() << "get_rgb : can't get zbuffer pixel" << std::endl; - a_r = 1; - a_g = 0; - a_b = 0; - return false; - } - - if(rzb->rcolormap().empty()) rzb->gen_rcmap(); - - {rcmap_t::const_iterator it = rzb->rcolormap().find(pix); - if(it==rzb->rcolormap().end()) { - rzb->out() << "can't find pixel " << pix - << " in cmap (sz " << rzb->rcolormap().size() << ")." - << std::endl; - a_r = 1; - a_g = 0; - a_b = 0; - return false; - } - a_r = (*it).second.r(); - a_g = (*it).second.g(); - a_b = (*it).second.b();} - - return true; - } - - unsigned char* get_rgbas(size_t& a_sz) { + unsigned char* get_rgbas(size_t& a_sz,bool a_top_to_bottom = true) { if(!m_ww || !m_wh) {a_sz = 0;return 0;} a_sz = 4 * m_ww * m_wh; - typedef unsigned char uchar; uchar* rgbas = new uchar[a_sz]; if(!rgbas) {a_sz = 0;return 0;} uchar* pos = rgbas; - VCol r,g,b; - VCol a = 1; + zb::buffer::ZPixel pix; + uchar* _pix = 0; for(unsigned int row=0;rowm_zb.get_clipped_pixel(a_col,rzb->wh()-1-a_row,pix)){ + rzb->out() << "tools::sg;:zb_action::get_rgb: can't get zbuffer pixel" << std::endl; + a_r = 1; + a_g = 0; + a_b = 0; + return false; + } + float a; + zb::buffer::pix2rgba(pix,a_r,a_g,a_b,a); + return true; + } + static bool get_rgba(void* a_tag,unsigned int a_col,unsigned int a_row,float& a_r,float& a_g,float& a_b,float& a_a){ + zb_action* rzb = (zb_action*)a_tag; + zb::buffer::ZPixel pix; + if(!rzb->m_zb.get_clipped_pixel(a_col,rzb->wh()-1-a_row,pix)){ + rzb->out() << "tools::sg;:zb_action::get_rgba : can't get zbuffer pixel" << std::endl; + a_r = 1; + a_g = 0; + a_b = 0; + a_a = 1; + return false; + } + zb::buffer::pix2rgba(pix,a_r,a_g,a_b,a_a); + return true; + } + protected: + void set_normal_matrix() { + mat4f tmp(m_model); + tmp.no_translate(); + if(!tmp.invert(m_normal_matrix)) { + m_out << "tools::sg::zb_action::set_normal_matrix : can't invert model matrix." << std::endl; + } + m_normal_matrix.transpose(); + } + bool project_point(float& a_x,float& a_y,float& a_z,float& a_w) { a_w = 1; m_model.mul_4f(a_x,a_y,a_z,a_w); @@ -396,10 +383,10 @@ protected: class primvis : public primitive_visitor { protected: virtual bool project(float& a_x,float& a_y,float& a_z,float& a_w) { - return m_zb_action.project_point(a_x,a_y,a_z,a_w); + return m_this.project_point(a_x,a_y,a_z,a_w); } virtual bool add_point(float a_x,float a_y,float a_z,float) { - return _add_point(a_x,a_y,a_z,m_zb_action.m_rgba); + return _add_point(a_x,a_y,a_z,m_this.m_rgba); } virtual bool add_point(float a_x,float a_y,float a_z,float, @@ -410,8 +397,8 @@ protected: virtual bool add_line(float a_bx,float a_by,float a_bz,float, float a_ex,float a_ey,float a_ez,float) { - m_zb_action.m_vp_mtx.mul_3f(a_bx,a_by,a_bz); - m_zb_action.m_vp_mtx.mul_3f(a_ex,a_ey,a_ez); + m_this.m_vp_mtx.mul_3f(a_bx,a_by,a_bz); + m_this.m_vp_mtx.mul_3f(a_ex,a_ey,a_ez); a_bz *= -1; a_ez *= -1; @@ -421,8 +408,12 @@ protected: zb::point end; zinit(end,a_ex,a_ey,a_ez); - m_zb_action.m_zb.set_depth_test(m_zb_action.m_DEPTH_TEST); - m_zb_action.m_zb.draw_line(beg,end,m_zb_action.get_pix(m_zb_action.m_rgba),npix(m_zb_action.m_line_width)); + m_this.m_zb.set_depth_test(m_this.m_DEPTH_TEST); + m_this.m_zb.set_blend(m_this.m_blend); + + zb::buffer::ZPixel pix; + color2pix(m_this.m_rgba,pix); + m_this.m_zb.draw_line(beg,end,pix,npix(m_this.m_line_width)); return true; } @@ -431,8 +422,8 @@ protected: float a_br,float a_bg,float a_bb,float a_ba, float a_ex,float a_ey,float a_ez,float, float,float,float,float) { - m_zb_action.m_vp_mtx.mul_3f(a_bx,a_by,a_bz); - m_zb_action.m_vp_mtx.mul_3f(a_ex,a_ey,a_ez); + m_this.m_vp_mtx.mul_3f(a_bx,a_by,a_bz); + m_this.m_vp_mtx.mul_3f(a_ex,a_ey,a_ez); a_bz *= -1; a_ez *= -1; @@ -442,10 +433,13 @@ protected: zb::point end; zinit(end,a_ex,a_ey,a_ez); - m_zb_action.m_zb.set_depth_test(m_zb_action.m_DEPTH_TEST); + m_this.m_zb.set_depth_test(m_this.m_DEPTH_TEST); + m_this.m_zb.set_blend(m_this.m_blend); // interpolate color with beg,end ? - m_zb_action.m_zb.draw_line(beg,end,m_zb_action.get_pix(colorf(a_br,a_bg,a_bb,a_ba)),npix(m_zb_action.m_line_width)); + zb::buffer::ZPixel pix; + zb::buffer::rgba2pix(a_br,a_bg,a_bb,a_ba,pix); + m_this.m_zb.draw_line(beg,end,pix,npix(m_this.m_line_width)); return true; } @@ -454,9 +448,18 @@ protected: float a_p2x,float a_p2y,float a_p2z,float a_p2w, float a_p3x,float a_p3y,float a_p3z,float a_p3w){ return _add_triangle(a_p1x,a_p1y,a_p1z,a_p1w, + m_this.m_normal.x(), + m_this.m_normal.y(), + m_this.m_normal.z(), a_p2x,a_p2y,a_p2z,a_p2w, + m_this.m_normal.x(), + m_this.m_normal.y(), + m_this.m_normal.z(), a_p3x,a_p3y,a_p3z,a_p3w, - m_zb_action.m_rgba); + m_this.m_normal.x(), + m_this.m_normal.y(), + m_this.m_normal.z(), + m_this.m_rgba); } virtual bool add_triangle( @@ -474,26 +477,33 @@ protected: colorf col(r,g,b,a); return _add_triangle(a_p1x,a_p1y,a_p1z,a_p1w, + m_this.m_normal.x(), + m_this.m_normal.y(), + m_this.m_normal.z(), a_p2x,a_p2y,a_p2z,a_p2w, + m_this.m_normal.x(), + m_this.m_normal.y(), + m_this.m_normal.z(), a_p3x,a_p3y,a_p3z,a_p3w, + m_this.m_normal.x(), + m_this.m_normal.y(), + m_this.m_normal.z(), col); } virtual bool project_normal(float&,float&,float&) { - //return m_zb_action.project_normal(a_x,a_y,a_z); + //return m_this.project_normal(a_x,a_y,a_z); return true; } virtual bool add_point_normal(float a_x,float a_y,float a_z,float a_w, float /*a_nx*/,float /*a_ny*/,float /*a_nz*/) { add_point(a_x,a_y,a_z,a_w); - //m_this.m_points.add_normal(a_nx,a_ny,a_nz); return true; } virtual bool add_point_normal(float a_x,float a_y,float a_z,float a_w, float /*a_nx*/,float /*a_ny*/,float /*a_nz*/, float a_r,float a_g,float a_b,float a_a) { add_point(a_x,a_y,a_z,a_w,a_r,a_g,a_b,a_a); - //m_this.m_points.add_normal(a_nx,a_ny,a_nz); return true; } virtual bool add_line_normal(float a_bx,float a_by,float a_bz,float a_bw, @@ -501,8 +511,6 @@ protected: float a_ex,float a_ey,float a_ez,float a_ew, float /*a_enx*/,float /*a_eny*/,float /*a_enz*/) { add_line(a_bx,a_by,a_bz,a_bw, a_ex,a_ey,a_ez,a_ew); - //m_this.m_lines.add_normal(a_bnx,a_bny,a_bnz); - //m_this.m_lines.add_normal(a_enx,a_eny,a_enz); return true; } virtual bool add_line_normal(float a_bx,float a_by,float a_bz,float a_bw, @@ -512,53 +520,58 @@ protected: float /*a_enx*/,float /*a_eny*/,float /*a_enz*/, float a_er,float a_eg,float a_eb,float a_ea){ add_line(a_bx,a_by,a_bz,a_bw, a_br,a_bg,a_bb,a_ba, a_ex,a_ey,a_ez,a_ew, a_er,a_eg,a_eb,a_ea); - //m_this.m_lines.add_normal(a_bnx,a_bny,a_bnz); - //m_this.m_lines.add_normal(a_enx,a_eny,a_enz); return true; } virtual bool add_triangle_normal( float a_p1x,float a_p1y,float a_p1z,float a_p1w, - float /*a_n1x*/,float /*a_n1y*/,float /*a_n1z*/, + float a_n1x,float a_n1y,float a_n1z, float a_p2x,float a_p2y,float a_p2z,float a_p2w, - float /*a_n2x*/,float /*a_n2y*/,float /*a_n2z*/, + float a_n2x,float a_n2y,float a_n2z, float a_p3x,float a_p3y,float a_p3z,float a_p3w, - float /*a_n3x*/,float /*a_n3y*/,float /*a_n3z*/) { - add_triangle(a_p1x,a_p1y,a_p1z,a_p1w, - a_p2x,a_p2y,a_p2z,a_p2w, - a_p3x,a_p3y,a_p3z,a_p3w); - //m_this.m_triangles.add_normal(a_n1x,a_n1y,a_n1z); - //m_this.m_triangles.add_normal(a_n2x,a_n2y,a_n2z); - //m_this.m_triangles.add_normal(a_n3x,a_n3y,a_n3z); + float a_n3x,float a_n3y,float a_n3z) { + + return _add_triangle(a_p1x,a_p1y,a_p1z,a_p1w, + a_n1x,a_n1y,a_n1z, + a_p2x,a_p2y,a_p2z,a_p2w, + a_n2x,a_n2y,a_n2z, + a_p3x,a_p3y,a_p3z,a_p3w, + a_n3x,a_n3y,a_n3z, + m_this.m_rgba); return true; } virtual bool add_triangle_normal( float a_p1x,float a_p1y,float a_p1z,float a_p1w, - float /*a_n1x*/,float /*a_n1y*/,float /*a_n1z*/, + float a_n1x,float a_n1y,float a_n1z, float a_r1,float a_g1,float a_b1,float a_a1, float a_p2x,float a_p2y,float a_p2z,float a_p2w, - float /*a_n2x*/,float /*a_n2y*/,float /*a_n2z*/, + float a_n2x,float a_n2y,float a_n2z, float a_r2,float a_g2,float a_b2,float a_a2, float a_p3x,float a_p3y,float a_p3z,float a_p3w, - float /*a_n3x*/,float /*a_n3y*/,float /*a_n3z*/, + float a_n3x,float a_n3y,float a_n3z, float a_r3,float a_g3,float a_b3,float a_a3){ - add_triangle(a_p1x,a_p1y,a_p1z,a_p1w, - a_r1,a_g1,a_b1,a_a1, - a_p2x,a_p2y,a_p2z,a_p2w, - a_r2,a_g2,a_b2,a_a2, - a_p3x,a_p3y,a_p3z,a_p3w, - a_r3,a_g3,a_b3,a_a3); - //m_this.m_triangles.add_normal(a_n1x,a_n1y,a_n1z); - //m_this.m_triangles.add_normal(a_n2x,a_n2y,a_n2z); - //m_this.m_triangles.add_normal(a_n3x,a_n3y,a_n3z); + + float r = (a_r1+a_r2+a_r3)/3.0f; + float g = (a_g1+a_g2+a_g3)/3.0f; + float b = (a_b1+a_b2+a_b3)/3.0f; + float a = (a_a1+a_a2+a_a3)/3.0f; + colorf col(r,g,b,a); + + return _add_triangle(a_p1x,a_p1y,a_p1z,a_p1w, + a_n1x,a_n1y,a_n1z, + a_p2x,a_p2y,a_p2z,a_p2w, + a_n2x,a_n2y,a_n2z, + a_p3x,a_p3y,a_p3z,a_p3w, + a_n3x,a_n3y,a_n3z, + col); return true; } public: - primvis(zb_action& a_zb):m_zb_action(a_zb){} + primvis(zb_action& a_zb):m_this(a_zb){} virtual ~primvis(){} public: primvis(const primvis& a_from) :primitive_visitor(a_from) - ,m_zb_action(a_from.m_zb_action) + ,m_this(a_from.m_this) {} primvis& operator=(const primvis& a_from){ primitive_visitor::operator=(a_from); @@ -586,55 +599,45 @@ protected: } bool _add_point(float a_x,float a_y,float a_z,const colorf& a_color){ - m_zb_action.m_zb.set_depth_test(m_zb_action.m_DEPTH_TEST); + m_this.m_zb.set_depth_test(m_this.m_DEPTH_TEST); + m_this.m_zb.set_blend(m_this.m_blend); - m_zb_action.m_vp_mtx.mul_3f(a_x,a_y,a_z); + m_this.m_vp_mtx.mul_3f(a_x,a_y,a_z); a_z *= -1; zb::point p; zinit(p,a_x,a_y,a_z); - float alpha = a_color.a(); - zb::buffer::ZPixel px; - if(alpha<1.0f) { - zb::buffer::ZPixel old_px = 0; - if(!m_zb_action.m_zb.get_pixel(p,old_px)) return false; - colorf old_color; - if(!m_zb_action.find_color(old_px,old_color)) return false; - float one_alpha = 1.0f-alpha; - colorf _color; - _color.set_r(a_color.r()*alpha+old_color.r()*one_alpha); - _color.set_g(a_color.g()*alpha+old_color.g()*one_alpha); - _color.set_b(a_color.b()*alpha+old_color.b()*one_alpha); - px = m_zb_action.get_pix(_color); - } else { - px = m_zb_action.get_pix(a_color); - } - m_zb_action.m_zb.draw_point(p,px,npix(m_zb_action.m_point_size)); + zb::buffer::ZPixel pix; + color2pix(a_color,pix); + m_this.m_zb.draw_point(p,pix,npix(m_this.m_point_size)); return true; } - bool _add_triangle(float a_p1x,float a_p1y,float a_p1z,float a_p1w, - float a_p2x,float a_p2y,float a_p2z,float a_p2w, - float a_p3x,float a_p3y,float a_p3z,float a_p3w, + bool _add_triangle(float a_p1x,float a_p1y,float a_p1z,float /*a_p1w*/, + float a_n1x,float a_n1y,float a_n1z, + float a_p2x,float a_p2y,float a_p2z,float /*a_p2w*/, + float a_n2x,float a_n2y,float a_n2z, + float a_p3x,float a_p3y,float a_p3z,float /*a_p3w*/, + float a_n3x,float a_n3y,float a_n3z, const colorf& a_color){ float p1x = a_p1x;float p1y = a_p1y;float p1z = a_p1z;//float p1w = a_p1w; float p2x = a_p2x;float p2y = a_p2y;float p2z = a_p2z;//float p2w = a_p2w; float p3x = a_p3x;float p3y = a_p3y;float p3z = a_p3z;//float p3w = a_p3w; - m_zb_action.m_vp_mtx.mul_3f(p1x,p1y,p1z); - m_zb_action.m_vp_mtx.mul_3f(p2x,p2y,p2z); - m_zb_action.m_vp_mtx.mul_3f(p3x,p3y,p3z); + m_this.m_vp_mtx.mul_3f(p1x,p1y,p1z); + m_this.m_vp_mtx.mul_3f(p2x,p2y,p2z); + m_this.m_vp_mtx.mul_3f(p3x,p3y,p3z); p1z *= -1; p2z *= -1; p3z *= -1; - if(m_zb_action.m_POLYGON_OFFSET_FILL){ + if(m_this.m_POLYGON_OFFSET_FILL){ + //note : gopaw pawex9,14,15,21 with "lego" (drawing cubes) are sensitive to the below epsil. // zs are in [-1,1] - float epsil = 1e-5f; - //float epsil = 1e-4f; + float epsil = 1e-4f; p1z -= epsil; p2z -= epsil; p3z -= epsil; @@ -654,8 +657,8 @@ protected: ZZ C = pn.normal()[2]; - if(m_zb_action.m_CULL_FACE){ // check back facing or by the edge : - if(m_zb_action.m_ccw) { + if(m_this.m_CULL_FACE){ + if(m_this.m_ccw) { if(C<=0) return true; } else { if(C>=0) return true; @@ -674,67 +677,50 @@ protected: zinit(list[1],p2x,p2y,p2z); zinit(list[2],p3x,p3y,p3z); - m_zb_action.m_zb.set_depth_test(m_zb_action.m_DEPTH_TEST); + m_this.m_zb.set_depth_test(m_this.m_DEPTH_TEST); + m_this.m_zb.set_blend(m_this.m_blend); - if(m_zb_action.m_light_on) { + colorf frag_color = a_color; - float _p1x = a_p1x;float _p1y = a_p1y;float _p1z = a_p1z;float _p1w = a_p1w; - float _p2x = a_p2x;float _p2y = a_p2y;float _p2z = a_p2z;float _p2w = a_p2w; - float _p3x = a_p3x;float _p3y = a_p3y;float _p3z = a_p3z;float _p3w = a_p3w; + if(m_this.m_light_on) { // same logic as toolx/wasm/webgl.js: - _p1x *= _p1w;_p1y *= _p1w;_p1z *= _p1w; - _p2x *= _p2w;_p2y *= _p2w;_p2z *= _p2w; - _p3x *= _p3w;_p3y *= _p3w;_p3z *= _p3w; + float nx = (a_n1x+a_n2x+a_n3x)/3.0f; + float ny = (a_n1y+a_n2y+a_n3y)/3.0f; + float nz = (a_n1z+a_n2z+a_n3z)/3.0f; - m_zb_action.m_proj_1.mul_4f(_p1x,_p1y,_p1z,_p1w); - m_zb_action.m_proj_1.mul_4f(_p2x,_p2y,_p2z,_p2w); - m_zb_action.m_proj_1.mul_4f(_p3x,_p3y,_p3z,_p3w); + m_this.m_normal_matrix.mul_dir_3f(nx,ny,nz); - plane _pn( - vec3(_p1x,_p1y,_p1z), - vec3(_p2x,_p2y,_p2z), - vec3(_p3x,_p3y,_p3z) - ); - if(_pn.is_valid()) { - vec3f npn(float(_pn.normal().x()), - float(_pn.normal().y()), - float(_pn.normal().z())); - vec3f d = m_zb_action.m_light_direction; - float dx = m_zb_action.m_light_direction.x(); - float dy = m_zb_action.m_light_direction.y(); - float dz = m_zb_action.m_light_direction.z(); - m_zb_action.m_model.mul_3f(dx,dy,dz); - d.set_value(dx,dy,dz); - if(d.normalize()) { - float dot = npn.dot(d); - if((-1<=dot)&&(dot<=0)) { - dot *= -1; + vec3f _normal(nx,ny,nz);_normal.normalize(); -// colorf c -// (a_color.r()*dot,a_color.g()*dot,a_color.b()*dot,a_color.a()); + float _dot = _normal.dot(m_this.m_light_direction); - float h,l,s; - rgb_to_hls(a_color.r(),a_color.g(),a_color.b(),h,l,s); - l *= dot; - float r,g,b; - hls_to_rgb(h,l,s,r,g,b); + if(_dot<0.0f) { + _dot *= -1.0f; - colorf c(r,g,b,a_color.a()); + colorf _tmp = m_this.m_light_color; + _tmp *= _dot; +// _tmp *= 1.4f; //to have same intensity as GL on desktops. + _tmp += m_this.m_light_ambient; - m_zb_action.m_zb.draw_polygon(3,list,A,B,C,D,m_zb_action.get_pix(c)); - //m_zb_action.m_zb.draw_polygon(3,list,A,B,C,D,m_zb_action.get_pix(a_color)); - } - } - } + frag_color *= _tmp; + + } else { + frag_color *= m_this.m_light_ambient; + } + + frag_color.clamp(); + frag_color.set_a(a_color.a()); - } else { - m_zb_action.m_zb.draw_polygon(3,list,A,B,C,D,m_zb_action.get_pix(a_color)); } + zb::buffer::ZPixel pix; + color2pix(frag_color,pix); + m_this.m_zb.draw_polygon(3,list,A,B,C,D,pix); + return true; } protected: - zb_action& m_zb_action; + zb_action& m_this; }; protected: @@ -742,16 +728,15 @@ protected: mat4f m_vp_mtx; zb::buffer m_zb; primvis m_pv; - mat4f m_proj_1; //OPTIMIZE : used if m_light_on true. - cmap_t m_cmap; - rcmap_t m_rcmap; colorf m_light_color; + colorf m_light_ambient; vec3f m_light_direction; vec3f m_normal; // to be restored in restore_state() : mat4f m_proj; mat4f m_model; + mat4f m_normal_matrix; colorf m_rgba; bool m_ccw; bool m_POLYGON_OFFSET_FILL; @@ -762,6 +747,7 @@ protected: float m_point_size; bool m_light_on; bool m_DEPTH_TEST; + bool m_blend; }; }} diff --git a/source/externals/g4tools/include/tools/spline b/source/externals/g4tools/include/tools/spline index 65dde05c9a..0b83bc02e6 100644 --- a/source/externals/g4tools/include/tools/spline +++ b/source/externals/g4tools/include/tools/spline @@ -203,7 +203,7 @@ protected: static int TMath_FloorNint(double x) { return TMath_Nint(::floor(x)); } size_t find_x(double x) const { - int klow=0, khig=fNp-1; + int klow=0, khig=int(fNp-1); // // If out of boundaries, extrapolate // It may be badly wrong @@ -277,7 +277,7 @@ protected: // f at tau(i), i=1,...,n, is generated and then solved by gauss elim- // ination, with s(i) ending up in c(2,i), all i. // c(3,.) and c(4,.) are used initially for temporary storage. - l = fNp-1; + l = int(fNp-1); // compute first differences of x sequence and store in C also, // compute first divided difference of data and store in D. {for (size_t m=1; m=fXmax) klow=fNp-1; + else if(x>=fXmax) klow=int(fNp-1); else { if(fKstep) { // Equidistant knots, use histogramming : - klow = mn(int((x-fXmin)/fDelta),fNp-1); + klow = mn(int((x-fXmin)/fDelta),int(fNp-1)); } else { - int khig=fNp-1; + int khig=int(fNp-1); int khalf; // Non equidistant knots, binary search while((khig-klow)>1) { diff --git a/source/externals/g4tools/include/tools/toojpeg b/source/externals/g4tools/include/tools/toojpeg new file mode 100644 index 0000000000..28b1a58dd6 --- /dev/null +++ b/source/externals/g4tools/include/tools/toojpeg @@ -0,0 +1,116 @@ +#ifndef tools_toojpeg +#define tools_toojpeg + +// G.Barrand: pure header version of toojpeg found at https://github.com/stbrumme/toojpeg +// The original namespace TooJpeg had been changed to tools::toojpeg to avoid +// clashes with potential other usage of toojpeg within the same software. + +/* +zlib License + +Copyright (c) 2011-2016 Stephan Brumme + +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. +*/ + +// ////////////////////////////////////////////////////////// +// toojpeg.h +// written by Stephan Brumme, 2018-2019 +// see https://create.stephan-brumme.com/toojpeg/ +// + +// This is a compact baseline JPEG/JFIF writer, written in C++ (but looks like C for the most part). +// Its interface has only one function: writeJpeg() - and that's it ! + +namespace tools { +namespace toojpeg +{ + // write one byte (to disk, memory, ...) + typedef void (*WRITE_ONE_BYTE)(unsigned char,void*); + // this callback is called for every byte generated by the encoder and behaves similar to fputc + // if you prefer stylish C++11 syntax then it can be a lambda, too: + // auto myOutput = [](unsigned char oneByte) { fputc(oneByte, output); }; + + // output - callback that stores a single byte (writes to disk, memory, ...) + // pixels - stored in RGB format or grayscale, stored from upper-left to lower-right + // width,height - image size + // isRGB - true if RGB format (3 bytes per pixel); false if grayscale (1 byte per pixel) + // quality - between 1 (worst) and 100 (best) + // downsample - if true then YCbCr 4:2:0 format is used (smaller size, minor quality loss) instead of 4:4:4, not relevant for grayscale + // comment - optional JPEG comment (0/NULL if no comment), must not contain ASCII code 0xFF + bool writeJpeg(WRITE_ONE_BYTE output,void*, const void* pixels, unsigned short width, unsigned short height, + bool isRGB = true, unsigned char quality = 90, bool downsample = false, const char* comment = 0/*nullptr*/); +}} + +// My main inspiration was Jon Olick's Minimalistic JPEG writer +// ( https://www.jonolick.com/code.html => direct link is https://www.jonolick.com/uploads/7/9/2/1/7921194/jo_jpeg.cpp ). +// However, his code documentation is quite sparse - probably because it wasn't written from scratch and is (quote:) "based on a javascript jpeg writer", +// most likely Andreas Ritter's code: https://github.com/eugeneware/jpeg-js/blob/master/lib/encoder.js +// +// Therefore I wrote the whole lib from scratch and tried hard to add tons of comments to my code, especially describing where all those magic numbers come from. +// And I managed to remove the need for any external includes ... +// yes, that's right: my library has no (!) includes at all, not even #include +// Depending on your callback WRITE_ONE_BYTE, the library writes either to disk, or in-memory, or wherever you wish. +// Moreover, no dynamic memory allocations are performed, just a few bytes on the stack. +// +// In contrast to Jon's code, compression can be significantly improved in many use cases: +// a) grayscale JPEG images need just a single Y channel, no need to save the superfluous Cb + Cr channels +// b) YCbCr 4:2:0 downsampling is often about 20% more efficient (=smaller) than the default YCbCr 4:4:4 with only little visual loss +// +// TooJpeg 1.2+ compresses about twice as fast as jo_jpeg (and about half as fast as libjpeg-turbo). +// A few benchmark numbers can be found on my website https://create.stephan-brumme.com/toojpeg/#benchmark +// +// Last but not least you can optionally add a JPEG comment. +// +// Your C++ compiler needs to support a reasonable subset of C++11 (g++ 4.7 or Visual C++ 2013 are sufficient). +// I haven't tested the code on big-endian systems or anything that smells like an apple. +// +// USE AT YOUR OWN RISK. Because you are a brave soul :-) + +#include "toojpeg.icc" + +//G.Barrand specific: + +#include "sout" + +#include +#include + +namespace tools { +namespace toojpeg { + +inline void write_one_byte(unsigned char a_byte,void* a_tag) {::fputc(a_byte,(FILE*)a_tag);} + +inline bool write(std::ostream& a_out, + const std::string& a_file, + unsigned char* a_buffer, + unsigned int a_width, + unsigned int a_height, + unsigned int a_bpp, + int a_quality) { + if(a_bpp!=3) { + a_out << "tools::toojpeg::write : bpp " << a_bpp << " not handled." << std::endl; + return false; + } + FILE* file = ::fopen(a_file.c_str(),"wb"); + if(!file) { + a_out << "tools::toojpeg::write : can't open file " << sout(a_file) << "." << std::endl; + return false; + } + if(!writeJpeg(write_one_byte,file,a_buffer,(unsigned short)a_width,(unsigned short)a_height,true,(unsigned char)a_quality)) { + ::fclose(file); + a_out << "tools::toojpeg::write : writeJpeg failed for file " << sout(a_file) << "." << std::endl; + return false; + } + ::fclose(file); + return true; +} + +}} + +#endif diff --git a/source/externals/g4tools/include/tools/toojpeg.icc b/source/externals/g4tools/include/tools/toojpeg.icc new file mode 100644 index 0000000000..033c97be8d --- /dev/null +++ b/source/externals/g4tools/include/tools/toojpeg.icc @@ -0,0 +1,678 @@ + +// G.Barrand: pure header version of toojpeg found at https://github.com/stbrumme/toojpeg + +// ////////////////////////////////////////////////////////// +// toojpeg.cpp +// written by Stephan Brumme, 2018-2019 +// see https://create.stephan-brumme.com/toojpeg/ +// + +#include //size_t + +// - the "official" specifications: https://www.w3.org/Graphics/JPEG/itu-t81.pdf and https://www.w3.org/Graphics/JPEG/jfif3.pdf +// - Wikipedia has a short description of the JFIF/JPEG file format: https://en.wikipedia.org/wiki/JPEG_File_Interchange_Format +// - the popular STB Image library includes Jon's JPEG encoder as well: https://github.com/nothings/stb/blob/master/stb_image_write.h +// - the most readable JPEG book (from a developer's perspective) is Miano's "Compressed Image File Formats" (1999, ISBN 0-201-60443-4), +// used copies are really cheap nowadays and include a CD with C++ sources as well (plus great format descriptions of GIF & PNG) +// - much more detailled is Mitchell/Pennebaker's "JPEG: Still Image Data Compression Standard" (1993, ISBN 0-442-01272-1) +// which contains the official JPEG standard, too - fun fact: I bought a signed copy in a second-hand store without noticing + +namespace tools { +namespace toojpeg { +// //////////////////////////////////////// +// data types +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef short int16_t; +typedef int int32_t; // at least four bytes + +// //////////////////////////////////////// +// constants + +// quantization tables from JPEG Standard, Annex K +const uint8_t DefaultQuantLuminance[8*8] = + { 16, 11, 10, 16, 24, 40, 51, 61, // there are a few experts proposing slightly more efficient values, + 12, 12, 14, 19, 26, 58, 60, 55, // e.g. https://www.imagemagick.org/discourse-server/viewtopic.php?t=20333 + 14, 13, 16, 24, 40, 57, 69, 56, // btw: Google's Guetzli project optimizes the quantization tables per image + 14, 17, 22, 29, 51, 87, 80, 62, + 18, 22, 37, 56, 68,109,103, 77, + 24, 35, 55, 64, 81,104,113, 92, + 49, 64, 78, 87,103,121,120,101, + 72, 92, 95, 98,112,100,103, 99 }; +const uint8_t DefaultQuantChrominance[8*8] = + { 17, 18, 24, 47, 99, 99, 99, 99, + 18, 21, 26, 66, 99, 99, 99, 99, + 24, 26, 56, 99, 99, 99, 99, 99, + 47, 66, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99 }; + +// 8x8 blocks are processed in zig-zag order +// most encoders use a zig-zag "forward" table, I switched to its inverse for performance reasons +// note: ZigZagInv[ZigZag[i]] = i +const uint8_t ZigZagInv[8*8] = + { 0, 1, 8,16, 9, 2, 3,10, // ZigZag[] = 0, 1, 5, 6,14,15,27,28, + 17,24,32,25,18,11, 4, 5, // 2, 4, 7,13,16,26,29,42, + 12,19,26,33,40,48,41,34, // 3, 8,12,17,25,30,41,43, + 27,20,13, 6, 7,14,21,28, // 9,11,18,24,31,40,44,53, + 35,42,49,56,57,50,43,36, // 10,19,23,32,39,45,52,54, + 29,22,15,23,30,37,44,51, // 20,22,33,38,46,51,55,60, + 58,59,52,45,38,31,39,46, // 21,34,37,47,50,56,59,61, + 53,60,61,54,47,55,62,63 }; // 35,36,48,49,57,58,62,63 + +// static Huffman code tables from JPEG standard Annex K +// - CodesPerBitsize tables define how many Huffman codes will have a certain bitsize (plus 1 because there nothing with zero bits), +// e.g. DcLuminanceCodesPerBitsize[2] = 5 because there are 5 Huffman codes being 2+1=3 bits long +// - Values tables are a list of values ordered by their Huffman code bitsize, +// e.g. AcLuminanceValues => Huffman(0x01,0x02 and 0x03) will have 2 bits, Huffman(0x00) will have 3 bits, Huffman(0x04,0x11 and 0x05) will have 4 bits, ... + +// Huffman definitions for first DC/AC tables (luminance / Y channel) +const uint8_t DcLuminanceCodesPerBitsize[16] = { 0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0 }; // sum = 12 +const uint8_t DcLuminanceValues [12] = { 0,1,2,3,4,5,6,7,8,9,10,11 }; // => 12 codes +const uint8_t AcLuminanceCodesPerBitsize[16] = { 0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125 }; // sum = 162 +const uint8_t AcLuminanceValues [162] = // => 162 codes + { 0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,0x22,0x71,0x14,0x32,0x81,0x91,0xA1,0x08, // 16*10+2 symbols because + 0x23,0x42,0xB1,0xC1,0x15,0x52,0xD1,0xF0,0x24,0x33,0x62,0x72,0x82,0x09,0x0A,0x16,0x17,0x18,0x19,0x1A,0x25,0x26,0x27,0x28, // upper 4 bits can be 0..F + 0x29,0x2A,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x53,0x54,0x55,0x56,0x57,0x58,0x59, // while lower 4 bits can be 1..A + 0x5A,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x83,0x84,0x85,0x86,0x87,0x88,0x89, // plus two special codes 0x00 and 0xF0 + 0x8A,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xB2,0xB3,0xB4,0xB5,0xB6, // order of these symbols was determined empirically by JPEG committee + 0xB7,0xB8,0xB9,0xBA,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xE1,0xE2, + 0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA }; +// Huffman definitions for second DC/AC tables (chrominance / Cb and Cr channels) +const uint8_t DcChrominanceCodesPerBitsize[16] = { 0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0 }; // sum = 12 +const uint8_t DcChrominanceValues [12] = { 0,1,2,3,4,5,6,7,8,9,10,11 }; // => 12 codes (identical to DcLuminanceValues) +const uint8_t AcChrominanceCodesPerBitsize[16] = { 0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119 }; // sum = 162 +const uint8_t AcChrominanceValues [162] = // => 162 codes + { 0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91, // same number of symbol, just different order + 0xA1,0xB1,0xC1,0x09,0x23,0x33,0x52,0xF0,0x15,0x62,0x72,0xD1,0x0A,0x16,0x24,0x34,0xE1,0x25,0xF1,0x17,0x18,0x19,0x1A,0x26, // (which is more efficient for AC coding) + 0x27,0x28,0x29,0x2A,0x35,0x36,0x37,0x38,0x39,0x3A,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x53,0x54,0x55,0x56,0x57,0x58, + 0x59,0x5A,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x82,0x83,0x84,0x85,0x86,0x87, + 0x88,0x89,0x8A,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xB2,0xB3,0xB4, + 0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA, + 0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA }; +const int16_t CodeWordLimit = 2048; // +/-2^11, maximum value after DCT + +// //////////////////////////////////////// +// structs + +// represent a single Huffman code +struct BitCode +{ + //BitCode() = default; // undefined state, must be initialized at a later time + BitCode():code(0),numBits(0) {} + BitCode(const BitCode& a_from):code(a_from.code),numBits(a_from.numBits) {} + BitCode& operator=(const BitCode& a_from) { + code = a_from.code; + numBits = a_from.numBits; + return *this; + } + + BitCode(uint16_t code_, uint8_t numBits_) + : code(code_), numBits(numBits_) {} + uint16_t code; // JPEG's Huffman codes are limited to 16 bits + uint8_t numBits; // number of valid bits +}; + +// wrapper for bit output operations +struct BitWriter +{ + // user-supplied callback that writes/stores one byte + WRITE_ONE_BYTE output; + void* tag; + // initialize writer + explicit BitWriter(WRITE_ONE_BYTE output_,void* tag_) : output(output_),tag(tag_) { + buffer.data = 0; + buffer.numBits = 0; + } + + // store the most recently encoded bits that are not written yet + struct BitBuffer + { + int32_t data /*= 0*/; // actually only at most 24 bits are used + uint8_t numBits /*= 0*/; // number of valid bits (the right-most bits) + } buffer; + + // write Huffman bits stored in BitCode, keep excess bits in BitBuffer + BitWriter& operator<<(const BitCode& data) + { + // append the new bits to those bits leftover from previous call(s) + buffer.numBits += data.numBits; + buffer.data <<= data.numBits; + buffer.data |= data.code; + + // write all "full" bytes + while (buffer.numBits >= 8) + { + // extract highest 8 bits + buffer.numBits -= 8; + uint8_t oneByte = uint8_t(buffer.data >> buffer.numBits); + output(oneByte,tag); + + if (oneByte == 0xFF) // 0xFF has a special meaning for JPEGs (it's a block marker) + output(0,tag); // therefore pad a zero to indicate "nope, this one ain't a marker, it's just a coincidence" + + // note: I don't clear those written bits, therefore buffer.bits may contain garbage in the high bits + // if you really want to "clean up" (e.g. for debugging purposes) then uncomment the following line + //buffer.bits &= (1 << buffer.numBits) - 1; + } + return *this; + } + + // write all non-yet-written bits, fill gaps with 1s (that's a strange JPEG thing) + void flush() + { + // at most seven set bits needed to "fill" the last byte: 0x7F = binary 0111 1111 + *this << BitCode(0x7F, 7); // I should set buffer.numBits = 0 but since there are no single bits written after flush() I can safely ignore it + } + + // NOTE: all the following BitWriter functions IGNORE the BitBuffer and write straight to output ! + // write a single byte + BitWriter& operator<<(uint8_t oneByte) + { + output(oneByte,tag); + return *this; + } + + // write an array of bytes + template + BitWriter& operator<<(T (&manyBytes)[Size]) + { + //for (auto c : manyBytes) + // output(c); + for(size_t i=0;i> 8),tag); // length of the block (big-endian, includes the 2 length bytes as well) + output(uint8_t(length & 0xFF),tag); + } +}; + +// //////////////////////////////////////// +// functions / templates + +// same as std::min() +template +inline Number minimum(Number value, Number maximum) +{ + return value <= maximum ? value : maximum; +} + +// restrict a value to the interval [minimum, maximum] +template +inline Number clamp(Number value, Limit minValue, Limit maxValue) +{ + if (value <= minValue) return minValue; // never smaller than the minimum + if (value >= maxValue) return maxValue; // never bigger than the maximum + return value; // value was inside interval, keep it +} + +// convert from RGB to YCbCr, constants are similar to ITU-R, see https://en.wikipedia.org/wiki/YCbCr#JPEG_conversion +inline float rgb2y (float r, float g, float b) { return +0.299f * r +0.587f * g +0.114f * b; } +inline float rgb2cb(float r, float g, float b) { return -0.16874f * r -0.33126f * g +0.5f * b; } +inline float rgb2cr(float r, float g, float b) { return +0.5f * r -0.41869f * g -0.08131f * b; } + +// forward DCT computation "in one dimension" (fast AAN algorithm by Arai, Agui and Nakajima: "A fast DCT-SQ scheme for images") +inline void DCT(float block[8*8], uint8_t stride) // stride must be 1 (=horizontal) or 8 (=vertical) +{ + const float SqrtHalfSqrt = 1.306562965f; // sqrt((2 + sqrt(2)) / 2) = cos(pi * 1 / 8) * sqrt(2) + const float InvSqrt = 0.707106781f; // 1 / sqrt(2) = cos(pi * 2 / 8) + const float HalfSqrtSqrt = 0.382683432f; // sqrt(2 - sqrt(2)) / 2 = cos(pi * 3 / 8) + const float InvSqrtSqrt = 0.541196100f; // 1 / sqrt(2 - sqrt(2)) = cos(pi * 3 / 8) * sqrt(2) + + // modify in-place + float& block0 = block[0 ]; + float& block1 = block[1 * stride]; + float& block2 = block[2 * stride]; + float& block3 = block[3 * stride]; + float& block4 = block[4 * stride]; + float& block5 = block[5 * stride]; + float& block6 = block[6 * stride]; + float& block7 = block[7 * stride]; + + // based on https://dev.w3.org/Amaya/libjpeg/jfdctflt.c , the original variable names can be found in my comments + float add07 = block0 + block7; float sub07 = block0 - block7; // tmp0, tmp7 + float add16 = block1 + block6; float sub16 = block1 - block6; // tmp1, tmp6 + float add25 = block2 + block5; float sub25 = block2 - block5; // tmp2, tmp5 + float add34 = block3 + block4; float sub34 = block3 - block4; // tmp3, tmp4 + + float add0347 = add07 + add34; float sub07_34 = add07 - add34; // tmp10, tmp13 ("even part" / "phase 2") + float add1256 = add16 + add25; float sub16_25 = add16 - add25; // tmp11, tmp12 + + block0 = add0347 + add1256; block4 = add0347 - add1256; // "phase 3" + + float z1 = (sub16_25 + sub07_34) * InvSqrt; // all temporary z-variables kept their original names + block2 = sub07_34 + z1; block6 = sub07_34 - z1; // "phase 5" + + float sub23_45 = sub25 + sub34; // tmp10 ("odd part" / "phase 2") + float sub12_56 = sub16 + sub25; // tmp11 + float sub01_67 = sub16 + sub07; // tmp12 + + float z5 = (sub23_45 - sub01_67) * HalfSqrtSqrt; + float z2 = sub23_45 * InvSqrtSqrt + z5; + float z3 = sub12_56 * InvSqrt; + float z4 = sub01_67 * SqrtHalfSqrt + z5; + float z6 = sub07 + z3; // z11 ("phase 5") + float z7 = sub07 - z3; // z13 + block1 = z6 + z4; block7 = z6 - z4; // "phase 6" + block5 = z7 + z2; block3 = z7 - z2; +} + +// run DCT, quantize and write Huffman bit codes +inline int16_t encodeBlock(BitWriter& writer, float block[8][8], const float scaled[8*8], int16_t lastDC, + const BitCode huffmanDC[256], const BitCode huffmanAC[256], const BitCode* codewords) +{ + // "linearize" the 8x8 block, treat it as a flat array of 64 floats + float* block64 = (float*) block; + + // DCT: rows + for (size_t offset = 0; offset < 8; offset++) + DCT(block64 + offset*8, 1); + // DCT: columns + for (size_t offset = 0; offset < 8; offset++) + DCT(block64 + offset*1, 8); + + // scale + for (size_t i = 0; i < 8*8; i++) + block64[i] *= scaled[i]; + + // encode DC (the first coefficient is the "average color" of the 8x8 block) + int DC = int(block64[0] + (block64[0] >= 0 ? +0.5f : -0.5f)); // C++11's nearbyint() achieves a similar effect + + // quantize and zigzag the other 63 coefficients + size_t posNonZero = 0; // find last coefficient which is not zero (because trailing zeros are encoded differently) + int16_t quantized[8*8]; + for (size_t i = 1; i < 8*8; i++) // start at 1 because block64[0]=DC was already processed + { + float value = block64[ZigZagInv[i]]; + // round to nearest integer + quantized[i] = int(value + (value >= 0 ? +0.5f : -0.5f)); // C++11's nearbyint() achieves a similar effect + // remember offset of last non-zero coefficient + if (quantized[i] != 0) + posNonZero = i; + } + + // same "average color" as previous block ? + int diff = DC - lastDC; + if (diff == 0) + writer << huffmanDC[0x00]; // yes, write a special short symbol + else + { + const BitCode bits = codewords[diff]; // nope, encode the difference to previous block's average color + writer << huffmanDC[bits.numBits] << bits; + } + + // encode ACs (quantized[1..63]) + size_t offset = 0; // upper 4 bits count the number of consecutive zeros + for (size_t i = 1; i <= posNonZero; i++) // quantized[0] was already written, skip all trailing zeros, too + { + // zeros are encoded in a special way + while (quantized[i] == 0) // found another zero ? + { + offset += 0x10; // add 1 to the upper 4 bits + // split into blocks of at most 16 consecutive zeros + if (offset > 0xF0) // remember, the counter is in the upper 4 bits, 0xF = 15 + { + writer << huffmanAC[0xF0]; // 0xF0 is a special code for "16 zeros" + offset = 0; + } + i++; + } + + const BitCode encoded = codewords[quantized[i]]; + // combine number of zeros with the number of bits of the next non-zero value + writer << huffmanAC[offset + encoded.numBits] << encoded; // and the value itself + offset = 0; + } + + // send end-of-block code (0x00), only needed if there are trailing zeros + if (posNonZero < 8*8 - 1) // = 63 + writer << huffmanAC[0x00]; + + return DC; +} + +// Jon's code includes the pre-generated Huffman codes +// I don't like these "magic constants" and compute them on my own :-) +inline void generateHuffmanTable(const uint8_t numCodes[16], const uint8_t* values, BitCode result[256]) +{ + // process all bitsizes 1 thru 16, no JPEG Huffman code is allowed to exceed 16 bits + uint16_t huffmanCode = 0; + for (uint8_t numBits = 1; numBits <= 16; numBits++) + { + // ... and each code of these bitsizes + for (uint8_t i = 0; i < numCodes[numBits - 1]; i++) // note: numCodes array starts at zero, but smallest bitsize is 1 + result[*values++] = BitCode(huffmanCode++, numBits); + + // next Huffman code needs to be one bit wider + huffmanCode <<= 1; + } +} + +// -------------------- externally visible code -------------------- + +// the only exported function ... +inline bool writeJpeg(WRITE_ONE_BYTE output, void* tag,const void* pixels_, unsigned short width, unsigned short height, + bool isRGB, unsigned char quality_, bool downsample, const char* comment) +{ + // reject invalid pointers + if (output == 0/*nullptr*/ || pixels_ == 0/*nullptr*/) + return false; + // check image format + if (width == 0 || height == 0) + return false; + + // number of components + const uint16_t numComponents = isRGB ? 3 : 1; + // note: if there is just one component (=grayscale), then only luminance needs to be stored in the file + // thus everything related to chrominance need not to be written to the JPEG + // I still compute a few things, like quantization tables to avoid a complete code mess + + // grayscale images can't be downsampled (because there are no Cb + Cr channels) + if (!isRGB) + downsample = false; + + // wrapper for all output operations + BitWriter bitWriter(output,tag); + + // //////////////////////////////////////// + // JFIF headers + const uint8_t HeaderJfif[2+2+16] = + { 0xFF,0xD8, // SOI marker (start of image) + 0xFF,0xE0, // JFIF APP0 tag + 0,16, // length: 16 bytes (14 bytes payload + 2 bytes for this length field) + 'J','F','I','F',0, // JFIF identifier, zero-terminated + 1,1, // JFIF version 1.1 + 0, // no density units specified + 0,1,0,1, // density: 1 pixel "per pixel" horizontally and vertically + 0,0 }; // no thumbnail (size 0 x 0) + bitWriter << HeaderJfif; + + // //////////////////////////////////////// + // comment (optional) + if (comment != 0/*nullptr*/) + { + // look for zero terminator + uint16_t length = 0; // = strlen(comment); + while (comment[length] != 0) + length++; + + // write COM marker + bitWriter.addMarker(0xFE, 2+length); // block size is number of bytes (without zero terminator) + 2 bytes for this length field + // ... and write the comment itself + for (uint16_t i = 0; i < length; i++) + bitWriter << comment[i]; + } + + // //////////////////////////////////////// + // adjust quantization tables to desired quality + + // quality level must be in 1 ... 100 + uint16_t quality = clamp(quality_, 1, 100); + // convert to an internal JPEG quality factor, formula taken from libjpeg + quality = quality < 50 ? 5000 / quality : 200 - quality * 2; + + uint8_t quantLuminance [8*8]; + uint8_t quantChrominance[8*8]; + for (size_t i = 0; i < 8*8; i++) + { + int luminance = (DefaultQuantLuminance [ZigZagInv[i]] * quality + 50) / 100; + int chrominance = (DefaultQuantChrominance[ZigZagInv[i]] * quality + 50) / 100; + + // clamp to 1..255 + quantLuminance [i] = clamp(luminance, 1, 255); + quantChrominance[i] = clamp(chrominance, 1, 255); + } + + // write quantization tables + bitWriter.addMarker(0xDB, 2 + (isRGB ? 2 : 1) * (1 + 8*8)); // length: 65 bytes per table + 2 bytes for this length field + // each table has 64 entries and is preceded by an ID byte + + bitWriter << 0x00 << quantLuminance; // first quantization table + if (isRGB) + bitWriter << 0x01 << quantChrominance; // second quantization table, only relevant for color images + + // //////////////////////////////////////// + // write image infos (SOF0 - start of frame) + bitWriter.addMarker(0xC0, 2+6+3*numComponents); // length: 6 bytes general info + 3 per channel + 2 bytes for this length field + + // 8 bits per channel + bitWriter << 0x08 + // image dimensions (big-endian) + << (height >> 8) << (height & 0xFF) + << (width >> 8) << (width & 0xFF); + + // sampling and quantization tables for each component + bitWriter << numComponents; // 1 component (grayscale, Y only) or 3 components (Y,Cb,Cr) + for (uint16_t id = 1; id <= numComponents; id++) + bitWriter << id // component ID (Y=1, Cb=2, Cr=3) + // bitmasks for sampling: highest 4 bits: horizontal, lowest 4 bits: vertical + << (id == 1 && downsample ? 0x22 : 0x11) // 0x11 is default YCbCr 4:4:4 and 0x22 stands for YCbCr 4:2:0 + << (id == 1 ? 0 : 1); // use quantization table 0 for Y, table 1 for Cb and Cr + + // //////////////////////////////////////// + // Huffman tables + // DHT marker - define Huffman tables + bitWriter.addMarker(0xC4, isRGB ? (2+208+208) : (2+208)); + // 2 bytes for the length field, store chrominance only if needed + // 1+16+12 for the DC luminance + // 1+16+162 for the AC luminance (208 = 1+16+12 + 1+16+162) + // 1+16+12 for the DC chrominance + // 1+16+162 for the AC chrominance (208 = 1+16+12 + 1+16+162, same as above) + + // store luminance's DC+AC Huffman table definitions + bitWriter << 0x00 // highest 4 bits: 0 => DC, lowest 4 bits: 0 => Y (baseline) + << DcLuminanceCodesPerBitsize + << DcLuminanceValues; + bitWriter << 0x10 // highest 4 bits: 1 => AC, lowest 4 bits: 0 => Y (baseline) + << AcLuminanceCodesPerBitsize + << AcLuminanceValues; + + // compute actual Huffman code tables (see Jon's code for precalculated tables) + BitCode huffmanLuminanceDC[256]; + BitCode huffmanLuminanceAC[256]; + generateHuffmanTable(DcLuminanceCodesPerBitsize, DcLuminanceValues, huffmanLuminanceDC); + generateHuffmanTable(AcLuminanceCodesPerBitsize, AcLuminanceValues, huffmanLuminanceAC); + + // chrominance is only relevant for color images + BitCode huffmanChrominanceDC[256]; + BitCode huffmanChrominanceAC[256]; + if (isRGB) + { + // store luminance's DC+AC Huffman table definitions + bitWriter << 0x01 // highest 4 bits: 0 => DC, lowest 4 bits: 1 => Cr,Cb (baseline) + << DcChrominanceCodesPerBitsize + << DcChrominanceValues; + bitWriter << 0x11 // highest 4 bits: 1 => AC, lowest 4 bits: 1 => Cr,Cb (baseline) + << AcChrominanceCodesPerBitsize + << AcChrominanceValues; + + // compute actual Huffman code tables (see Jon's code for precalculated tables) + generateHuffmanTable(DcChrominanceCodesPerBitsize, DcChrominanceValues, huffmanChrominanceDC); + generateHuffmanTable(AcChrominanceCodesPerBitsize, AcChrominanceValues, huffmanChrominanceAC); + } + + // //////////////////////////////////////// + // start of scan (there is only a single scan for baseline JPEGs) + bitWriter.addMarker(0xDA, 2+1+2*numComponents+3); // 2 bytes for the length field, 1 byte for number of components, + // then 2 bytes for each component and 3 bytes for spectral selection + + // assign Huffman tables to each component + bitWriter << numComponents; + for (uint16_t id = 1; id <= numComponents; id++) + // highest 4 bits: DC Huffman table, lowest 4 bits: AC Huffman table + bitWriter << id << (id == 1 ? 0x00 : 0x11); // Y: tables 0 for DC and AC; Cb + Cr: tables 1 for DC and AC + + // constant values for our baseline JPEGs (which have a single sequential scan) + static const uint8_t Spectral[3] = { 0, 63, 0 }; // spectral selection: must be from 0 to 63; successive approximation must be 0 + bitWriter << Spectral; + + // //////////////////////////////////////// + // adjust quantization tables with AAN scaling factors to simplify DCT + float scaledLuminance [8*8]; + float scaledChrominance[8*8]; + for (size_t i = 0; i < 8*8; i++) + { + size_t row = ZigZagInv[i] / 8; // same as ZigZagInv[i] >> 3 + size_t column = ZigZagInv[i] % 8; // same as ZigZagInv[i] & 7 + + // scaling constants for AAN DCT algorithm: AanScaleFactors[0] = 1, AanScaleFactors[k=1..7] = cos(k*PI/16) * sqrt(2) + static const float AanScaleFactors[8] = { 1, 1.387039845f, 1.306562965f, 1.175875602f, 1, 0.785694958f, 0.541196100f, 0.275899379f }; + float factor = 1 / (AanScaleFactors[row] * AanScaleFactors[column] * 8); + scaledLuminance [ZigZagInv[i]] = factor / quantLuminance [i]; + scaledChrominance[ZigZagInv[i]] = factor / quantChrominance[i]; + // if you really want JPEGs that are bitwise identical to Jon Olick's code then you need slightly different formulas (note: sqrt(8) = 2.828427125f) + //static const float aasf[] = { 1.0f * 2.828427125f, 1.387039845f * 2.828427125f, 1.306562965f * 2.828427125f, 1.175875602f * 2.828427125f, 1.0f * 2.828427125f, 0.785694958f * 2.828427125f, 0.541196100f * 2.828427125f, 0.275899379f * 2.828427125f }; // line 240 of jo_jpeg.cpp + //scaledLuminance [ZigZagInv[i]] = 1 / (quantLuminance [i] * aasf[row] * aasf[column]); // lines 266-267 of jo_jpeg.cpp + //scaledChrominance[ZigZagInv[i]] = 1 / (quantChrominance[i] * aasf[row] * aasf[column]); + } + + // //////////////////////////////////////// + // precompute JPEG codewords for quantized DCT + BitCode codewordsArray[2 * CodeWordLimit]; // note: quantized[i] is found at codewordsArray[quantized[i] + CodeWordLimit] + BitCode* codewords = &codewordsArray[CodeWordLimit]; // allow negative indices, so quantized[i] is at codewords[quantized[i]] + uint8_t numBits = 1; // each codeword has at least one bit (value == 0 is undefined) + int32_t mask = 1; // mask is always 2^numBits - 1, initial value 2^1-1 = 2-1 = 1 + for (int16_t value = 1; value < CodeWordLimit; value++) + { + // numBits = position of highest set bit (ignoring the sign) + // mask = (2^numBits) - 1 + if (value > mask) // one more bit ? + { + numBits++; + mask = (mask << 1) | 1; // append a set bit + } + codewords[-value] = BitCode(mask - value, numBits); // note that I use a negative index => codewords[-value] = codewordsArray[CodeWordLimit value] + codewords[+value] = BitCode( value, numBits); + } + + // just convert image data from void* + const uint8_t* pixels = (const uint8_t*)pixels_; + + // the next two variables are frequently used when checking for image borders + const unsigned short maxWidth = width - 1; // "last row" + const unsigned short maxHeight = height - 1; // "bottom line" + + // process MCUs (minimum codes units) => image is subdivided into a grid of 8x8 or 16x16 tiles + const unsigned short sampling = downsample ? 2 : 1; // 1x1 or 2x2 sampling + const unsigned short mcuSize = 8 * sampling; + + // average color of the previous MCU + int16_t lastYDC = 0, lastCbDC = 0, lastCrDC = 0; + // convert from RGB to YCbCr + float Y[8][8], Cb[8][8], Cr[8][8]; + + for (unsigned short mcuY = 0; mcuY < height; mcuY += mcuSize) // each step is either 8 or 16 (=mcuSize) + for (unsigned short mcuX = 0; mcuX < width; mcuX += mcuSize) + { + // YCbCr 4:4:4 format: each MCU is a 8x8 block - the same applies to grayscale images, too + // YCbCr 4:2:0 format: each MCU represents a 16x16 block, stored as 4x 8x8 Y-blocks plus 1x 8x8 Cb and 1x 8x8 Cr block) + for (unsigned short blockY = 0; blockY < mcuSize; blockY += 8) // iterate once (YCbCr444 and grayscale) or twice (YCbCr420) + for (unsigned short blockX = 0; blockX < mcuSize; blockX += 8) + { + // now we finally have an 8x8 block ... + for (unsigned short deltaY = 0; deltaY < 8; deltaY++) + { + size_t column = minimum(uint16_t(mcuX + blockX) , maxWidth); // must not exceed image borders, replicate last row/column if needed + size_t row = minimum(uint16_t(mcuY + blockY + deltaY), maxHeight); + for (size_t deltaX = 0; deltaX < 8; deltaX++) + { + // find actual pixel position within the current image + size_t pixelPos = row * int(width) + column; // the cast ensures that we don't run into multiplication overflows + if (column < maxWidth) + column++; + + // grayscale images have solely a Y channel which can be easily derived from the input pixel by shifting it by 128 + if (!isRGB) + { + Y[deltaY][deltaX] = pixels[pixelPos] - 128.f; + continue; + } + + // RGB: 3 bytes per pixel (whereas grayscale images have only 1 byte per pixel) + uint8_t r = pixels[3 * pixelPos ]; + uint8_t g = pixels[3 * pixelPos + 1]; + uint8_t b = pixels[3 * pixelPos + 2]; + + Y [deltaY][deltaX] = rgb2y (r, g, b) - 128; // again, the JPEG standard requires Y to be shifted by 128 + // YCbCr444 is easy - the more complex YCbCr420 has to be computed about 20 lines below in a second pass + if (!downsample) + { + Cb[deltaY][deltaX] = rgb2cb(r, g, b); // standard RGB-to-YCbCr conversion + Cr[deltaY][deltaX] = rgb2cr(r, g, b); + } + } + } + + // encode Y channel + lastYDC = encodeBlock(bitWriter, Y, scaledLuminance, lastYDC, huffmanLuminanceDC, huffmanLuminanceAC, codewords); + // Cb and Cr are encoded about 50 lines below + } + + // grayscale images don't need any Cb and Cr information + if (!isRGB) + continue; + + // //////////////////////////////////////// + // the following lines are only relevant for YCbCr420: + // average/downsample chrominance of four pixels while respecting the image borders + if (downsample) + for (short deltaY = 7; downsample && deltaY >= 0; deltaY--) // iterating loop in reverse increases cache read efficiency + { + size_t row = minimum(uint16_t(mcuY + 2*deltaY), maxHeight); // each deltaX/Y step covers a 2x2 area + size_t column = mcuX; // column is updated inside next loop + size_t pixelPos = (row * int(width) + column) * 3; // numComponents = 3 + + // deltas (in bytes) to next row / column, must not exceed image borders + size_t rowStep = (row < maxHeight) ? 3 * int(width) : 0; // always numComponents*width except for bottom line + size_t columnStep = (column < maxWidth ) ? 3 : 0; // always numComponents except for rightmost pixel + + for (short deltaX = 0; deltaX < 8; deltaX++) + { + // let's add all four samples (2x2 area) + size_t right = pixelPos + columnStep; + size_t down = pixelPos + rowStep; + size_t downRight = pixelPos + columnStep + rowStep; + + // note: cast from 8 bits to >8 bits to avoid overflows when adding + short r = short(pixels[pixelPos ]) + pixels[right ] + pixels[down ] + pixels[downRight ]; + short g = short(pixels[pixelPos + 1]) + pixels[right + 1] + pixels[down + 1] + pixels[downRight + 1]; + short b = short(pixels[pixelPos + 2]) + pixels[right + 2] + pixels[down + 2] + pixels[downRight + 2]; + + // convert to Cb and Cr + Cb[deltaY][deltaX] = rgb2cb(r, g, b) / 4; // I still have to divide r,g,b by 4 to get their average values + Cr[deltaY][deltaX] = rgb2cr(r, g, b) / 4; // it's a bit faster if done AFTER CbCr conversion + + // step forward to next 2x2 area + pixelPos += 2*3; // 2 pixels => 6 bytes (2*numComponents) + column += 2; + + // reached right border ? + if (column >= maxWidth) + { + columnStep = 0; + pixelPos = ((row + 1) * int(width) - 1) * 3; // same as (row * width + maxWidth) * numComponents => current's row last pixel + } + } + } // end of YCbCr420 code for Cb and Cr + + // encode Cb and Cr + lastCbDC = encodeBlock(bitWriter, Cb, scaledChrominance, lastCbDC, huffmanChrominanceDC, huffmanChrominanceAC, codewords); + lastCrDC = encodeBlock(bitWriter, Cr, scaledChrominance, lastCrDC, huffmanChrominanceDC, huffmanChrominanceAC, codewords); + } + + bitWriter.flush(); // now image is completely encoded, write any bits still left in the buffer + + // /////////////////////////// + // EOI marker + bitWriter << 0xFF << 0xD9; // this marker has no length, therefore I can't use addMarker() + return true; +} // writeJpeg() + +}} diff --git a/source/externals/g4tools/include/tools/typedefs b/source/externals/g4tools/include/tools/typedefs index 925cf23ec0..e42895cf31 100644 --- a/source/externals/g4tools/include/tools/typedefs +++ b/source/externals/g4tools/include/tools/typedefs @@ -25,20 +25,40 @@ typedef unsigned __int64 uint64; inline const char* uint32_format() {static const char s_v[] = "%u";return s_v;} inline const char* uint64_format() {static const char s_v[] = "%lu";return s_v;} -#ifdef _WIN64 -typedef unsigned long long diff_pointer_t; -#else -typedef unsigned long diff_pointer_t; -#endif - #ifdef _WIN64 typedef unsigned long long upointer; inline const char* upointer_format() {static const char s_v[] = "%llu";return s_v;} inline const char* upointer_format_x() {static const char s_v[] = "0x%llx";return s_v;} +typedef unsigned long long diff_pointer_t; #else typedef unsigned long upointer; inline const char* upointer_format() {static const char s_v[] = "%lu";return s_v;} inline const char* upointer_format_x() {static const char s_v[] = "0x%lx";return s_v;} +typedef unsigned long diff_pointer_t; +#endif + +#elif defined(__MINGW32__) + +typedef int int32; +typedef long long int64; +inline const char* int32_format() {static const char s_v[] = "%d";return s_v;} +inline const char* int64_format() {static const char s_v[] = "%ld";return s_v;} + +typedef unsigned int uint32; +typedef unsigned long long uint64; +inline const char* uint32_format() {static const char s_v[] = "%u";return s_v;} +inline const char* uint64_format() {static const char s_v[] = "%lu";return s_v;} + +#ifdef __MINGW64__ +typedef unsigned long long upointer; +inline const char* upointer_format() {static const char s_v[] = "%llu";return s_v;} +inline const char* upointer_format_x() {static const char s_v[] = "0x%llx";return s_v;} +typedef unsigned long long diff_pointer_t; +#else +typedef unsigned long upointer; +inline const char* upointer_format() {static const char s_v[] = "%lu";return s_v;} +inline const char* upointer_format_x() {static const char s_v[] = "0x%lx";return s_v;} +typedef unsigned long diff_pointer_t; #endif #elif defined(_LP64) diff --git a/source/externals/g4tools/include/tools/version b/source/externals/g4tools/include/tools/version index 6f8f027ce1..56386f85f7 100644 --- a/source/externals/g4tools/include/tools/version +++ b/source/externals/g4tools/include/tools/version @@ -5,13 +5,13 @@ #define tools_version #define TOOLS_MAJOR_VERSION 6 -#define TOOLS_MINOR_VERSION 0 -#define TOOLS_PATCH_VERSION 1 -#define TOOLS_VERSION "6.0.1" -#define TOOLS_VERSION_VRP "v6r0p1" +#define TOOLS_MINOR_VERSION 1 +#define TOOLS_PATCH_VERSION 0 +#define TOOLS_VERSION "6.1.0" +#define TOOLS_VERSION_VRP "v6r1p0" namespace tools { -inline unsigned int version() {return 60001;} +inline unsigned int version() {return 60100;} } #endif diff --git a/source/externals/g4tools/include/tools/wroot/date b/source/externals/g4tools/include/tools/wroot/date index 31e6f7877d..482b6cf09c 100644 --- a/source/externals/g4tools/include/tools/wroot/date +++ b/source/externals/g4tools/include/tools/wroot/date @@ -22,7 +22,7 @@ inline date get_date(){ // Date is stored with the origin being the 1st january 1995. // Time has 1 second precision. time_t tloc = ::time(0); -#ifdef _MSC_VER +#if defined(_MSC_VER) || defined(__MINGW32__) struct tm *tp = (tm*)::localtime(&tloc); //not thread safe (but exist on Windows). #else struct tm tpa; diff --git a/source/externals/g4tools/include/tools/wroot/file b/source/externals/g4tools/include/tools/wroot/file index 092676fb39..7d03b261ae 100644 --- a/source/externals/g4tools/include/tools/wroot/file +++ b/source/externals/g4tools/include/tools/wroot/file @@ -21,7 +21,7 @@ #include #include -#ifdef _MSC_VER +#if defined(_MSC_VER) || defined(__MINGW32__) #include #include #else @@ -62,7 +62,7 @@ public: //ifile #if defined(__linux__) && (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 2) if (::lseek64(m_file, a_offset, whence) < 0) { -#elif defined(_MSC_VER) +#elif defined(_MSC_VER) || defined(__MINGW32__) if (::_lseeki64(m_file, a_offset, whence) < 0) { #else if (::lseek(m_file, a_offset, whence) < 0) { @@ -143,7 +143,7 @@ public: //ifile << std::endl; return false; } -#elif defined(__MINGW32__) || defined(__MINGW64__) +#elif defined(__MINGW32__) return true; #else if (::fsync(m_file) < 0) { @@ -253,7 +253,7 @@ public: } m_file = _open(a_path.c_str(), -#ifdef _MSC_VER +#if defined(_MSC_VER) || defined(__MINGW32__) O_RDWR | O_CREAT | O_BINARY,S_IREAD | S_IWRITE #else O_RDWR | O_CREAT,0644 diff --git a/source/externals/g4tools/include/tools/zb/buffer b/source/externals/g4tools/include/tools/zb/buffer index 7a1e78b0c9..e6aab37f01 100644 --- a/source/externals/g4tools/include/tools/zb/buffer +++ b/source/externals/g4tools/include/tools/zb/buffer @@ -73,15 +73,6 @@ protected: m_size = a_from.m_size; return *this; } - public: - bool get_pixel(ZPos a_x,ZPos a_y,ZZ /*a_z*/,ZPixel& a_pixel) const { - if((a_xm_buffer.m_endX)) {a_pixel=0;return false;} - if((a_ym_buffer.m_endY)) {a_pixel=0;return false;} - unsigned long offset = a_y * m_buffer.m_zbw + a_x; - ZPixel* zimage = m_buffer.m_zimage + offset; - a_pixel = *zimage; - return true; - } protected: void _write(ZPos a_x,ZPos a_y,ZZ a_z) { if((a_xm_buffer.m_endX)) return; @@ -95,13 +86,8 @@ protected: ZPixel* zimage = m_buffer.m_zimage + offset; - /* transparency : - ZPixel old_pix = *zimage; - // need the alpha of m_pixel ! - */ - *zbuff = zpoint; - *zimage = m_pixel; + m_buffer.blend(*zimage,m_pixel); } protected: buffer& m_buffer; @@ -156,6 +142,7 @@ protected: public: buffer() :m_depth_test(true) + ,m_blend(false) ,m_zbuffer(0) //,m_zmin(0),m_zmax(0) ,m_zimage(0) @@ -175,14 +162,18 @@ public: protected: buffer(const buffer& a_from) :m_depth_test(a_from.m_depth_test) + ,m_blend(a_from.m_blend) {} buffer& operator=(const buffer& a_from){ m_depth_test = a_from.m_depth_test; + m_blend = a_from.m_blend; return *this; } public: void set_depth_test(bool a_on) {m_depth_test = a_on;} //bool depth_test() const {return m_depth_test;} + + void set_blend(bool a_value) {m_blend = a_value;} bool change_size(unsigned int a_width,unsigned int a_height){ if(!a_width||!a_height) return false; @@ -228,8 +219,7 @@ public: return true; } - ZPixel* get_color_buffer(unsigned int& a_width, - unsigned int& a_height) const { + ZPixel* get_color_buffer(unsigned int& a_width,unsigned int& a_height) const { a_width = m_zbw; a_height = m_zbh; return m_zimage; @@ -257,13 +247,9 @@ public: } } - //ZPixel get_pixel(ZPos a_x,ZPos a_y) const { - // return *(m_zimage + a_y * m_zbw + a_x); - //} - bool get_clipped_pixel(ZPos a_x,ZPos a_y,ZPixel& a_pixel) const { - if((a_xm_endX)) return false; - if((a_ym_endY)) return false; + if((a_xm_endX)) {a_pixel = 0;return false;} + if((a_ym_endY)) {a_pixel = 0;return false;} a_pixel = *(m_zimage + a_y * m_zbw + a_x); return true; } @@ -288,11 +274,6 @@ public: pw.write(a_p.x,a_p.y,a_p.z); } - bool get_pixel(const point& a_p,ZPixel& a_pixel){ - point_writer pw(a_pixel,*this,1); - return pw.get_pixel(a_p.x,a_p.y,a_p.z,a_pixel); - } - void draw_line(const point& a_beg,const point& a_end,ZPixel a_pixel,unsigned int a_size){ point_writer pw(a_pixel,*this,a_size); WriteLine(a_beg,a_end,pw); @@ -379,6 +360,22 @@ public: } } */ + + typedef unsigned char uchar; + static void rgba2pix(float a_r,float a_g,float a_b,float a_a,ZPixel& a_pix) { + uchar* _px = (uchar*)&a_pix; + *_px = (uchar)(255.0F * a_r);_px++; + *_px = (uchar)(255.0F * a_g);_px++; + *_px = (uchar)(255.0F * a_b);_px++; + *_px = (uchar)(255.0F * a_a);_px++; + } + static void pix2rgba(const ZPixel& a_pix,float& a_r,float& a_g,float& a_b,float& a_a) { + uchar* _px = (uchar*)&a_pix; + a_r = (*_px)/255.0f;_px++; + a_g = (*_px)/255.0f;_px++; + a_b = (*_px)/255.0f;_px++; + a_a = (*_px)/255.0f;_px++; + } protected: class scan_writer { public: @@ -459,6 +456,28 @@ protected: writer& m_writer; }; + void blend(ZPixel& a_pix,const ZPixel& a_new) { + if(!m_blend) { + a_pix = a_new; + return; + } + float _or,_og,_ob,_oa; + pix2rgba(a_pix,_or,_og,_ob,_oa); + float nr,ng,nb,na; + pix2rgba(a_new,nr,ng,nb,na); + if((0.0f<=na)&&(na<1.0f)) { + // same as glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA): + float one_minus_na = 1.0f-na; + float pr = nr*na+_or*one_minus_na; + float pg = ng*na+_og*one_minus_na; + float pb = nb*na+_ob*one_minus_na; + float pa = 1; + rgba2pix(pr,pg,pb,pa,a_pix); + } else { + a_pix = a_new; + } + } + static void WriteScanLine(void* a_tag,int a_beg,int a_end,int a_y){ buffer& a_buffer = *((buffer*)a_tag); @@ -489,11 +508,11 @@ protected: // &&(zpoint<=a_buffer.m_zmax) ){ *zbuff = zpoint; - *zimage = a_buffer.m_scan_pixel; + a_buffer.blend(*zimage,a_buffer.m_scan_pixel); } } else { *zbuff = zpoint; - *zimage = a_buffer.m_scan_pixel; + a_buffer.blend(*zimage,a_buffer.m_scan_pixel); } zbuff ++; zimage ++; @@ -595,6 +614,7 @@ protected: protected: bool m_depth_test; + bool m_blend; ZReal* m_zbuffer; //ZReal m_zmin,m_zmax; diff --git a/source/externals/g4tools/include/toolx/Qt/session b/source/externals/g4tools/include/toolx/Qt/session index a9ac5051f7..a0f6832b0e 100644 --- a/source/externals/g4tools/include/toolx/Qt/session +++ b/source/externals/g4tools/include/toolx/Qt/session @@ -70,7 +70,7 @@ public: QApplication* qapp() const {return m_qapp;} QWidget* create_window(const char* a_title,int a_x,int a_y,unsigned int a_width,unsigned int a_height) { if(!m_qapp) return 0; -#ifdef _MSC_VER +#if defined(_MSC_VER) || defined(__MINGW32__) if(a_y<=0) a_y = 60; #endif QWidget* top = new QWidget(); diff --git a/source/externals/g4tools/include/toolx/Windows/glarea b/source/externals/g4tools/include/toolx/Windows/glarea index 09f74fdc70..2bb31d7f72 100644 --- a/source/externals/g4tools/include/toolx/Windows/glarea +++ b/source/externals/g4tools/include/toolx/Windows/glarea @@ -15,6 +15,7 @@ #include #if defined(_MSC_VER) && _MSC_VER < 1900 +#elif defined(__MINGW32__) #else #define TOOLX_WINDOWS_TOUCH #endif @@ -57,12 +58,12 @@ class glarea { } public: virtual void resize(unsigned int,unsigned int){} - virtual void paint(unsigned int a_w,unsigned int a_h) {} + virtual void paint(unsigned int,unsigned int) {} virtual void close(){} - virtual void left_button_up(unsigned int a_x,unsigned int a_y) {} - virtual void left_button_down(unsigned int a_x,unsigned int a_y) {} - virtual void mouse_move(unsigned int a_x,unsigned int a_y,bool) {} + virtual void left_button_up(unsigned int,unsigned int) {} + virtual void left_button_down(unsigned int,unsigned int) {} + virtual void mouse_move(unsigned int,unsigned int,bool) {} public: glarea(HWND a_parent) :m_parent(a_parent) diff --git a/source/externals/g4tools/include/toolx/Xt/OpenGLArea b/source/externals/g4tools/include/toolx/Xt/OpenGLArea index a76e1636e1..201ed4f0b4 100644 --- a/source/externals/g4tools/include/toolx/Xt/OpenGLArea +++ b/source/externals/g4tools/include/toolx/Xt/OpenGLArea @@ -30,13 +30,13 @@ typedef struct { XEvent* event; } XoAnyCallbackStruct; -#define XoNdoubleBufferOn "doubleBufferOn" -#define XoNpaintCallback "paintCallback" -#define XoNeventCallback "eventCallback" - #define XoCR_PAINT 1 #define XoCR_EVENT 2 +#define XoNdoubleBufferOn toolx::Xt::OpenGLArea::XoN_doubleBufferOn() +#define XoNpaintCallback toolx::Xt::OpenGLArea::XoN_paintCallback() +#define XoNeventCallback toolx::Xt::OpenGLArea::XoN_eventCallback() + /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// @@ -71,6 +71,13 @@ typedef struct _OpenGLAreaRec { /////////////////////////////////////////////////////////// class OpenGLArea { +protected: + static const char* class_name() {static const char* s_s = "OpenGLArea";return s_s;} + static const char* XoC_DoubleBufferOn() {static const char* s_s = "DoubleBufferOn";return s_s;} +public: + static const char* XoN_doubleBufferOn() {static const char* s_s = "doubleBufferOn";return s_s;} + static const char* XoN_paintCallback() {static const char* s_s = "paintCallback";return s_s;} + static const char* XoN_eventCallback() {static const char* s_s = "eventCallback";return s_s;} public: static void paint(Widget a_this) { if(!XtIsRealized(a_this)) return; @@ -90,7 +97,7 @@ protected: if(a_request->core.width<=0) a_this->core.width = 100; if(a_request->core.height<=0) a_this->core.height = 100; -#ifdef OPENGLAREA_DEBUG +#ifdef TOOLX_XT_OPENGLAREA_DEBUG ::printf ("debug : OpenGLArea : InitializeWidget : %s\n",::XtName(a_this)); #endif @@ -190,13 +197,13 @@ protected: ::XtAddEventHandler (a_this,ButtonPressMask|ButtonReleaseMask|ButtonMotionMask|KeyPressMask|KeyReleaseMask,0,event_handler,NULL); -#ifdef OPENGLAREA_DEBUG +#ifdef TOOLX_XT_OPENGLAREA_DEBUG printf("debug : OpenGLArea : InitializeWidget : end\n"); #endif } static void realize_widget(Widget a_this,XtValueMask* a_mask,XSetWindowAttributes* a_watbs) { -#ifdef OPENGLAREA_DEBUG +#ifdef TOOLX_XT_OPENGLAREA_DEBUG printf("debug : OpenGLArea : realize_widget : %s\n",XtName(a_this)); #endif @@ -216,13 +223,13 @@ protected: //make_current(a_this); -#ifdef OPENGLAREA_DEBUG +#ifdef TOOLX_XT_OPENGLAREA_DEBUG printf("debug : OpenGLArea : realize_widget : end\n"); #endif } static void destroy_widget(Widget a_this) { -#ifdef OPENGLAREA_DEBUG +#ifdef TOOLX_XT_OPENGLAREA_DEBUG printf("debug : OpenGLArea : destroy_widget : begin\n"); #endif OpenGLAreaPart& athis = _athis(a_this); @@ -236,7 +243,7 @@ protected: ::glXDestroyContext(XtDisplay(a_this),athis.glContext); athis.glContext = NULL; } -#ifdef OPENGLAREA_DEBUG +#ifdef TOOLX_XT_OPENGLAREA_DEBUG printf("debug : OpenGLArea : destroy_widget : end\n"); #endif } @@ -257,7 +264,7 @@ protected: } static void change_widget_size(Widget a_this) { -#ifdef OPENGLAREA_DEBUG +#ifdef TOOLX_XT_OPENGLAREA_DEBUG printf("debug : OpenGLArea : change_widget_size : %s\n",XtName(a_this)); #endif @@ -265,13 +272,13 @@ protected: if(widget_class()->core_class.superclass->core_class.resize!=NULL) (widget_class()->core_class.superclass->core_class.resize)(a_this); -#ifdef OPENGLAREA_DEBUG +#ifdef TOOLX_XT_OPENGLAREA_DEBUG printf("debug : OpenGLArea : change_widget_size : end\n"); #endif } static void draw_widget(Widget a_this,XEvent* a_event,Region a_region) { -#ifdef OPENGLAREA_DEBUG +#ifdef TOOLX_XT_OPENGLAREA_DEBUG printf("debug : OpenGLArea : draw_widget : %s\n",XtName(a_this)); #endif @@ -279,7 +286,7 @@ protected: (widget_class()->core_class.superclass->core_class.expose)(a_this,a_event,a_region); if(make_current(a_this)==1) { -#ifdef OPENGLAREA_DEBUG +#ifdef TOOLX_XT_OPENGLAREA_DEBUG printf("debug : OpenGLArea : draw_widget : %s : make_current ok : call paintCallback...\n",XtName(a_this)); #endif XoAnyCallbackStruct value; @@ -290,7 +297,7 @@ protected: ::glXMakeCurrent(XtDisplay(a_this),None,NULL); } -#ifdef OPENGLAREA_DEBUG +#ifdef TOOLX_XT_OPENGLAREA_DEBUG printf("debug : OpenGLArea : draw_widget : end\n"); #endif } @@ -414,12 +421,12 @@ protected: public: static WidgetClass widget_class() { - static XtResource s_resources [] = { - {(String)XoNdoubleBufferOn,(String)"DoubleBufferOn",XtRBoolean,sizeof(Boolean), + static XtResource s_resources[] = { + {(String)XoN_doubleBufferOn(),(String)XoC_DoubleBufferOn(),XtRBoolean,sizeof(Boolean), XtOffset(OpenGLAreaWidget,openGLArea.doubleBufferOn),XtRImmediate,(XtPointer)True}, - {(String)XoNpaintCallback,XtCCallback,XtRCallback,sizeof(XtCallbackList), + {(String)XoN_paintCallback(),XtCCallback,XtRCallback,sizeof(XtCallbackList), XtOffset(OpenGLAreaWidget,openGLArea.paintCallback),XtRImmediate,(XtPointer)NULL}, - {(String)XoNeventCallback,XtCCallback,XtRCallback,sizeof(XtCallbackList), + {(String)XoN_eventCallback(),XtCCallback,XtRCallback,sizeof(XtCallbackList), XtOffset(OpenGLAreaWidget,openGLArea.eventCallback),XtRImmediate,(XtPointer)NULL} }; @@ -427,7 +434,7 @@ public: // Core Class Part : { (WidgetClass) &compositeClassRec, // pointer to superclass ClassRec - (String)"OpenGLArea", // widget resource class name + (String)class_name(), // widget resource class name sizeof(OpenGLAreaRec), // size in bytes of widget record initialize_class, // class_initialize NULL, // dynamic initialization @@ -478,4 +485,5 @@ public: }} + #endif diff --git a/source/externals/g4tools/include/toolx/Xt/sg_viewer b/source/externals/g4tools/include/toolx/Xt/sg_viewer index b434187abd..b89536cc70 100644 --- a/source/externals/g4tools/include/toolx/Xt/sg_viewer +++ b/source/externals/g4tools/include/toolx/Xt/sg_viewer @@ -168,7 +168,7 @@ protected: tools::key_code convert(KeySym a_key) { if(a_key==XK_Shift_L) return tools::sg::key_shift(); if(a_key==XK_Shift_R) return tools::sg::key_shift(); - return a_key; + return (tools::key_code)a_key; } protected: session& m_session; diff --git a/source/externals/g4tools/include/toolx/mpi/wrmpi b/source/externals/g4tools/include/toolx/mpi/wrmpi index 56671e06ec..18bc217493 100644 --- a/source/externals/g4tools/include/toolx/mpi/wrmpi +++ b/source/externals/g4tools/include/toolx/mpi/wrmpi @@ -16,7 +16,7 @@ #endif // the below must be in sync with tools/typedefs -#ifdef _MSC_VER +#if defined(_MSC_VER) || defined(__MINGW32__) //typedef __int64 int64; //typedef unsigned __int64 uint64; #define TOOLX_MPI_UINT64 MPI_UNSIGNED_LONG_LONG diff --git a/source/externals/g4tools/include/toolx/sg/GL_action b/source/externals/g4tools/include/toolx/sg/GL_action index 0a1c20bcd1..481724f762 100644 --- a/source/externals/g4tools/include/toolx/sg/GL_action +++ b/source/externals/g4tools/include/toolx/sg/GL_action @@ -421,7 +421,7 @@ public: tmp.no_translate(); tools::mat4f normal_matrix; if(!tmp.invert(normal_matrix)) { - m_out << "toolx::WebGL::render::load_model_matrix :" + m_out << "toolx::sg::GL_action::render::load_model_matrix :" << " can't invert model matrix." << std::endl; } @@ -441,7 +441,8 @@ public: virtual void enable_light(unsigned int a_light, float a_dx,float a_dy,float a_dz, - float a_r,float a_g,float a_b,float a_a){ + float a_r,float a_g,float a_b,float a_a, + float a_ar,float a_ag,float a_ab,float a_aa){ ::glEnable(GL_LIGHTING); GLenum light = GL_LIGHT0+a_light; //::printf("debug : GL_MAX_LIGHTS %d\n",GL_MAX_LIGHTS); @@ -465,10 +466,10 @@ public: ::glLightfv(light,GL_DIFFUSE,params); ::glLightfv(light,GL_SPECULAR,params); //coin/SoDirectionalLight does that. - params[0] = 0; - params[1] = 0; - params[2] = 0; - params[3] = 1; + params[0] = a_ar; + params[1] = a_ag; + params[2] = a_ab; + params[3] = a_aa; ::glLightfv(light,GL_AMBIENT,params); //coin/SoDirectionalLight does that. // coin/SoDirectionalLight does the below : @@ -657,4 +658,5 @@ protected: }} + #endif diff --git a/source/externals/g4tools/include/toolx/zlib b/source/externals/g4tools/include/toolx/zlib index ec04b1f777..03bfde9257 100644 --- a/source/externals/g4tools/include/toolx/zlib +++ b/source/externals/g4tools/include/toolx/zlib @@ -55,7 +55,7 @@ inline bool compress_buffer(std::ostream& a_out, //a_out << "toolx::compress_buffer : ok " // << stream.total_out << std::endl; - a_irep = stream.total_out; + a_irep = (unsigned)stream.total_out; return true; } @@ -97,7 +97,7 @@ inline bool decompress_buffer(std::ostream& a_out, //a_out << "toolx::decompress_buffer : zlib : ok " // << stream.total_out << std::endl; - a_irep = stream.total_out; + a_irep = (unsigned)stream.total_out; return true; } @@ -220,7 +220,7 @@ inline bool gunzip_buffer(std::ostream& a_out, inflateEnd(&stream); - a_irep = stream.total_out; + a_irep = (unsigned)stream.total_out; return true; } diff --git a/source/externals/ptl/History b/source/externals/ptl/History index fe1a70affb..11b9910163 100644 --- a/source/externals/ptl/History +++ b/source/externals/ptl/History @@ -1,8 +1,27 @@ # Category ptl History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-18 Gabriele Cosmo (ptl-V11-00-05) +- More compilation warnings fixes for implicit type conversions. + +## 2022-11-17 Gabriele Cosmo (ptl-V11-00-04) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-09-02 Ben Morgan (ptl-V11-00-03) +- Import latest PTL master (3a258fd) from GitHub, patched for Geant4 source code layout. +- Includes following PRs since version 2.3.3 (ptl-V11-00-01) + - 31: Minor fixes for macOS/Clang and use as a subproject + - 33: Make copy explicit in range loop + - 34: General code cleanup/tidy + - 35: Set PTL_SANITIZER_TYPE to existing value, if it exists (ptl-V11-00-02) + - 36: Replace sigignore() with signal(, SIG_IGN) + - 38: Address resource leakage, unneeded dereferences, noxcept issue identified by Geant4 Coverity checks + - Coverity issues 104093, 104627, 104757, 104763 ## 2022-06-14 Ben Morgan (ptl-V11-00-02) - Use any existing value of PTL_SANITIZER_TYPE to set the cache value to prevent diff --git a/source/externals/ptl/cmake/Modules/PTLBuildSettings.cmake b/source/externals/ptl/cmake/Modules/PTLBuildSettings.cmake index 0623f18562..553d939371 100644 --- a/source/externals/ptl/cmake/Modules/PTLBuildSettings.cmake +++ b/source/externals/ptl/cmake/Modules/PTLBuildSettings.cmake @@ -121,9 +121,9 @@ ptl_add_option(PTL_USE_SANITIZER "Enable -fsanitize=" OFF) if(PTL_USE_SANITIZER) set(__ptl_sanitizer_type_default "thread") if(PTL_SANITIZER_TYPE) - set(__ptl_sanitizer_type_default "${PTL_SANITIZER_TYPE}") + set(__ptl_sanitizer_type_default "${PTL_SANITIZER_TYPE}") endif() - + set(PTL_SANITIZER_TYPE "${__ptl_sanitizer_type_default}" CACHE STRING "Sanitizer type (-fsanitize=)") diff --git a/source/externals/ptl/include/PTL/AutoLock.hh b/source/externals/ptl/include/PTL/AutoLock.hh index a2f74c6c30..05e37f33cc 100644 --- a/source/externals/ptl/include/PTL/AutoLock.hh +++ b/source/externals/ptl/include/PTL/AutoLock.hh @@ -244,6 +244,7 @@ int main() #pragma once #include "PTL/Threading.hh" +#include "PTL/Utility.hh" #include #include @@ -262,9 +263,9 @@ public: //------------------------------------------------------------------------// // Some useful typedefs //------------------------------------------------------------------------// - typedef std::unique_lock unique_lock_t; - typedef TemplateAutoLock this_type; - typedef typename unique_lock_t::mutex_type mutex_type; + using unique_lock_t = std::unique_lock; + using this_type = TemplateAutoLock; + using mutex_type = typename unique_lock_t::mutex_type; public: //------------------------------------------------------------------------// @@ -380,11 +381,6 @@ private: #undef _is_recur_mutex #undef _is_other_mutex - // used in _lock_deferred chrono variants to avoid ununsed-variable warning - template - void suppress_unused_variable(const Tp&) - {} - //========================================================================// // NOTE on _lock_deferred(...) variants: // a system_error in lock means that the mutex is unavailable @@ -467,7 +463,7 @@ private: << "being called after the statics were destroyed. \n\t--> " << "Exception: [code: " << e.code() << "] caught: " << e.what() << std::endl; #else - suppress_unused_variable(e); + ConsumeParameters(e); #endif } }; @@ -480,12 +476,7 @@ private: // // -------------------------------------------------------------------------- // -typedef TemplateAutoLock AutoLock; -typedef TemplateAutoLock RecursiveAutoLock; - -// provide abbriviated type if another mutex type is desired to be used -// aside from above -template -using TAutoLock = TemplateAutoLock; +using AutoLock = TemplateAutoLock; +using RecursiveAutoLock = TemplateAutoLock; } // namespace PTL diff --git a/source/externals/ptl/include/PTL/Backtrace.hh b/source/externals/ptl/include/PTL/Backtrace.hh index 0cebddcba3..f387f796cc 100644 --- a/source/externals/ptl/include/PTL/Backtrace.hh +++ b/source/externals/ptl/include/PTL/Backtrace.hh @@ -67,14 +67,20 @@ #endif #include +#include #include +#include #include namespace PTL { -template -using ResultOf_t = typename std::result_of::type; -} +template +#if __cpp_lib_is_invocable >= 201703 +using ResultOf_t = std::invoke_result_t; +#else +using ResultOf_t = typename std::result_of::type; +#endif +} // namespace PTL // compatible OS and compiler #if defined(PTL_UNIX) && \ @@ -287,14 +293,14 @@ public: // to ignore initial frames (such as this function). A callback // can be provided to inspect and/or tweak the frame string template - static std::array, Depth> GetMangled( + static std::array, Depth> GetMangled( FuncT&& func = FrameFunctor()); // gets a demangled backtrace of "Depth" frames. The offset parameter is // used to ignore initial frames (such as this function). A callback // can be provided to inspect and/or tweak the frame string template - static std::array, Depth> GetDemangled( + static std::array, Depth> GetDemangled( FuncT&& func = FrameFunctor()); private: @@ -348,12 +354,12 @@ Backtrace::ExitAction(int sig) //----------------------------------------------------------------------------// template -inline std::array, Depth> +inline std::array, Depth> Backtrace::GetMangled(FuncT&& func) { static_assert((Depth - Offset) >= 1, "Error Depth - Offset should be >= 1"); - using type = ResultOf_t; + using type = ResultOf_t; // destination std::array btrace; btrace.fill((std::is_pointer::value) ? nullptr : type{}); @@ -383,7 +389,7 @@ Backtrace::GetMangled(FuncT&& func) //----------------------------------------------------------------------------// template -inline std::array, Depth> +inline std::array, Depth> Backtrace::GetDemangled(FuncT&& func) { auto demangle_bt = [&](const char* cstr) { @@ -446,7 +452,7 @@ Backtrace::Message(int sig, siginfo_t* sinfo, std::ostream& os) // overflowing the signal stack // ignore future signals of this type - sigignore(sig); + signal(sig, SIG_IGN); os << "\n### CAUGHT SIGNAL: " << sig << " ### "; if(sinfo) @@ -557,9 +563,8 @@ Backtrace::Handler(int sig, siginfo_t* sinfo, void*) } // ignore any termination signals - sigignore(SIGKILL); - sigignore(SIGTERM); - sigignore(SIGABRT); + for(auto itr : { SIGKILL, SIGTERM, SIGABRT }) + signal(itr, SIG_IGN); abort(); } @@ -585,7 +590,7 @@ Backtrace::Enable(const signal_set_t& _signals) } _first = false; int cnt = 0; - for(auto& itr : _signals) + for(const auto& itr : _signals) { if(itr < 0) continue; @@ -641,7 +646,7 @@ Backtrace::Disable(signal_set_t _signals) } int cnt = 0; - for(auto& itr : _signals) + for(const auto& itr : _signals) { if(itr < 0) continue; @@ -715,33 +720,33 @@ public: struct fake_sigaction {}; - using siginfo_t = fake_siginfo; - using sigaction_t = fake_sigaction; + using siginfo_t = fake_siginfo; + using sigaction_t = fake_sigaction; using exit_action_t = std::function; - using frame_func_t = std::function; - using signal_set_t = std::set; + using frame_func_t = std::function; + using signal_set_t = std::set; public: struct actions { using id_entry_t = std::tuple; - using id_list_t = std::vector; + using id_list_t = std::vector; - std::map is_active = {}; - std::map current = {}; - std::map previous = {}; + std::map is_active = {}; + std::map current = {}; + std::map previous = {}; std::vector exit_actions = {}; - const id_list_t identifiers = {}; + const id_list_t identifiers = {}; }; public: - static void Handler(int, siginfo_t*, void*) {} - static void Message(int, siginfo_t*, std::ostream&) {} - static void ExitAction(int) {} - static int Enable(const std::string&) { return 0; } - static int Enable(const signal_set_t& = DefaultSignals()) { return 0; } - static int Disable(signal_set_t = {}) { return 0; } - static int GetSignal(const std::string&) { return -1; } + static void Handler(int, siginfo_t*, void*) {} + static void Message(int, siginfo_t*, std::ostream&) {} + static void ExitAction(int) {} + static int Enable(const std::string&) { return 0; } + static int Enable(const signal_set_t& = DefaultSignals()) { return 0; } + static int Disable(signal_set_t = {}) { return 0; } + static int GetSignal(const std::string&) { return -1; } static std::string Description(int) { return std::string{}; } template @@ -749,21 +754,21 @@ public: {} template - static std::array, Depth> GetMangled( + static std::array, Depth> GetMangled( FuncT&& func = FrameFunctor()) { - using type = ResultOf_t; - auto ret = std::array{}; + using type = ResultOf_t; + auto ret = std::array{}; ret.fill(func("")); return ret; } template - static std::array, Depth> GetDemangled( + static std::array, Depth> GetDemangled( FuncT&& func = FrameFunctor()) { - using type = ResultOf_t; - auto ret = std::array{}; + using type = ResultOf_t; + auto ret = std::array{}; ret.fill(func("")); return ret; } diff --git a/source/externals/ptl/include/PTL/Globals.hh b/source/externals/ptl/include/PTL/Globals.hh index f850712e62..bdf0e346de 100644 --- a/source/externals/ptl/include/PTL/Globals.hh +++ b/source/externals/ptl/include/PTL/Globals.hh @@ -19,14 +19,6 @@ #pragma once -#ifndef FALSE -# define FALSE 0 -#endif - -#ifndef TRUE -# define TRUE 1 -#endif - #include // Retrieve definitions of min/max // Include base types @@ -40,12 +32,6 @@ #include #include -#if !defined(PTL_FOLD_EXPRESSION) -# define PTL_FOLD_EXPRESSION(...) \ - ::PTL::mpl::consume_parameters( \ - ::std::initializer_list{ (__VA_ARGS__, 0)... }) -#endif - #if !defined(PTL_NO_SANITIZE_THREAD) // expect that sanitizer is from compiler which supports __has_attribute # if defined(__has_attribute) @@ -75,13 +61,6 @@ namespace mpl { //--------------------------------------------------------------------------------------// -template -void -consume_parameters(Args&&...) -{} - -//--------------------------------------------------------------------------------------// - namespace impl { //--------------------------------------------------------------------------------------// @@ -111,20 +90,20 @@ struct Build_index_tuple template <> struct Build_index_tuple<1> { - typedef Index_tuple<0> __type; + using __type = Index_tuple<0>; }; template <> struct Build_index_tuple<0> { - typedef Index_tuple<> __type; + using __type = Index_tuple<>; }; /// Class template integer_sequence template struct integer_sequence { - typedef Tp value_type; + using value_type = Tp; static constexpr size_t size() noexcept { return sizeof...(Idx); } }; @@ -136,7 +115,7 @@ struct Make_integer_sequence> { static_assert(NumT >= 0, "Cannot make integer sequence of negative length"); - typedef integer_sequence(Idx)...> __type; + using __type = integer_sequence(Idx)...>; }; /// Alias template make_integer_sequence @@ -167,7 +146,7 @@ apply(FnT&& _func, TupleT _args, impl::index_sequence) #if defined(__GNUC__) && (__GNUC__ < 6) if(sizeof...(Idx) == 0) { - consume_parameters(_args); + ConsumeParameters(_args); } #endif return std::forward(_func)(std::get(std::move(_args))...); @@ -205,18 +184,4 @@ apply(FnT&& _func, TupleT&& _args) } // namespace mpl -namespace thread_pool -{ -namespace state -{ -static const short STARTED = 0; -static const short PARTIAL = 1; -static const short STOPPED = 2; -static const short NONINIT = 3; - -} // namespace state -} // namespace thread_pool - -//--------------------------------------------------------------------------------------// - } // namespace PTL diff --git a/source/externals/ptl/include/PTL/JoinFunction.hh b/source/externals/ptl/include/PTL/JoinFunction.hh index 49f0f43c0b..0f4d1d4e6e 100644 --- a/source/externals/ptl/include/PTL/JoinFunction.hh +++ b/source/externals/ptl/include/PTL/JoinFunction.hh @@ -32,12 +32,8 @@ #include "PTL/Types.hh" -#include -#include #include -#include -#include -#include +#include namespace PTL { diff --git a/source/externals/ptl/include/PTL/Task.hh b/source/externals/ptl/include/PTL/Task.hh index e41c5ccd99..9debfec123 100644 --- a/source/externals/ptl/include/PTL/Task.hh +++ b/source/externals/ptl/include/PTL/Task.hh @@ -30,17 +30,16 @@ #pragma once -#include "Globals.hh" -#include "VTask.hh" +#include "PTL/Globals.hh" +#include "PTL/VTask.hh" #include -#include -#include +#include +#include +#include namespace PTL { -class ThreadPool; - //======================================================================================// /// \brief The task class is supplied to thread_pool. @@ -48,9 +47,9 @@ template class TaskFuture : public VTask { public: - typedef std::promise promise_type; - typedef std::future future_type; - typedef RetT result_type; + using promise_type = std::promise; + using future_type = std::future; + using result_type = RetT; public: // pass a free function pointer @@ -59,13 +58,13 @@ public: : VTask{ std::forward(args)... } {} - virtual ~TaskFuture() = default; + ~TaskFuture() override = default; TaskFuture(const TaskFuture&) = delete; TaskFuture& operator=(const TaskFuture&) = delete; - TaskFuture(TaskFuture&&) = default; - TaskFuture& operator=(TaskFuture&&) = default; + TaskFuture(TaskFuture&&) noexcept = default; + TaskFuture& operator=(TaskFuture&&) noexcept = default; public: // execution operator @@ -81,12 +80,12 @@ template class PackagedTask : public TaskFuture { public: - typedef PackagedTask this_type; - typedef std::promise promise_type; - typedef std::future future_type; - typedef std::packaged_task packaged_task_type; - typedef RetT result_type; - typedef std::tuple tuple_type; + using this_type = PackagedTask; + using promise_type = std::promise; + using future_type = std::future; + using packaged_task_type = std::packaged_task; + using result_type = RetT; + using tuple_type = std::tuple; public: // pass a free function pointer @@ -104,20 +103,20 @@ public: , m_args{ args... } {} - virtual ~PackagedTask() = default; + ~PackagedTask() override = default; PackagedTask(const PackagedTask&) = delete; PackagedTask& operator=(const PackagedTask&) = delete; - PackagedTask(PackagedTask&&) = default; - PackagedTask& operator=(PackagedTask&&) = default; + PackagedTask(PackagedTask&&) noexcept = default; + PackagedTask& operator=(PackagedTask&&) noexcept = default; public: // execution operator - virtual void operator()() final { mpl::apply(std::move(m_ptask), std::move(m_args)); } - virtual future_type get_future() final { return m_ptask.get_future(); } - virtual void wait() final { return m_ptask.get_future().wait(); } - virtual RetT get() final { return m_ptask.get_future().get(); } + void operator()() final { mpl::apply(std::move(m_ptask), std::move(m_args)); } + future_type get_future() final { return m_ptask.get_future(); } + void wait() final { return m_ptask.get_future().wait(); } + RetT get() final { return m_ptask.get_future().get(); } private: packaged_task_type m_ptask; @@ -131,12 +130,12 @@ template class Task : public TaskFuture { public: - typedef Task this_type; - typedef std::promise promise_type; - typedef std::future future_type; - typedef std::packaged_task packaged_task_type; - typedef RetT result_type; - typedef std::tuple tuple_type; + using this_type = Task; + using promise_type = std::promise; + using future_type = std::future; + using packaged_task_type = std::packaged_task; + using result_type = RetT; + using tuple_type = std::tuple; public: template @@ -153,24 +152,24 @@ public: , m_args{ args... } {} - virtual ~Task() = default; + ~Task() override = default; Task(const Task&) = delete; Task& operator=(const Task&) = delete; - Task(Task&&) = default; - Task& operator=(Task&&) = default; + Task(Task&&) noexcept = default; + Task& operator=(Task&&) noexcept = default; public: // execution operator - virtual void operator()() final + void operator()() final { if(m_ptask.valid()) mpl::apply(std::move(m_ptask), std::move(m_args)); } - virtual future_type get_future() final { return m_ptask.get_future(); } - virtual void wait() final { return m_ptask.get_future().wait(); } - virtual RetT get() final { return m_ptask.get_future().get(); } + future_type get_future() final { return m_ptask.get_future(); } + void wait() final { return m_ptask.get_future().wait(); } + RetT get() final { return m_ptask.get_future().get(); } private: packaged_task_type m_ptask{}; @@ -184,11 +183,11 @@ template class Task : public TaskFuture { public: - typedef Task this_type; - typedef std::promise promise_type; - typedef std::future future_type; - typedef std::packaged_task packaged_task_type; - typedef RetT result_type; + using this_type = Task; + using promise_type = std::promise; + using future_type = std::future; + using packaged_task_type = std::packaged_task; + using result_type = RetT; public: template @@ -208,8 +207,8 @@ public: Task(const Task&) = delete; Task& operator=(const Task&) = delete; - Task(Task&&) = default; - Task& operator=(Task&&) = default; + Task(Task&&) noexcept = default; + Task& operator=(Task&&) noexcept = default; public: // execution operator @@ -229,12 +228,12 @@ template <> class Task : public TaskFuture { public: - typedef void RetT; - typedef Task this_type; - typedef std::promise promise_type; - typedef std::future future_type; - typedef std::packaged_task packaged_task_type; - typedef RetT result_type; + using RetT = void; + using this_type = Task; + using promise_type = std::promise; + using future_type = std::future; + using packaged_task_type = std::packaged_task; + using result_type = RetT; public: template @@ -249,7 +248,7 @@ public: , m_ptask{ std::move(func) } {} - virtual ~Task() = default; + ~Task() override = default; Task(const Task&) = delete; Task& operator=(const Task&) = delete; @@ -259,10 +258,10 @@ public: public: // execution operator - virtual void operator()() final { m_ptask(); } - virtual future_type get_future() final { return m_ptask.get_future(); } - virtual void wait() final { return m_ptask.get_future().wait(); } - virtual RetT get() final { return m_ptask.get_future().get(); } + void operator()() final { m_ptask(); } + future_type get_future() final { return m_ptask.get_future(); } + void wait() final { return m_ptask.get_future().wait(); } + RetT get() final { return m_ptask.get_future().get(); } private: packaged_task_type m_ptask{}; diff --git a/source/externals/ptl/include/PTL/TaskGroup.hh b/source/externals/ptl/include/PTL/TaskGroup.hh index 621b6ddcbf..9bb1e00430 100644 --- a/source/externals/ptl/include/PTL/TaskGroup.hh +++ b/source/externals/ptl/include/PTL/TaskGroup.hh @@ -31,23 +31,37 @@ #pragma once +#include "PTL/AutoLock.hh" +#ifndef G4GMAKE +#include "PTL/Config.hh" +#endif +#include "PTL/Globals.hh" #include "PTL/JoinFunction.hh" #include "PTL/Task.hh" #include "PTL/ThreadData.hh" #include "PTL/ThreadPool.hh" +#include "PTL/Threading.hh" #include "PTL/Utility.hh" +#include "PTL/VTask.hh" +#include "PTL/VUserTaskQueue.hh" #include +#include #include -#include -#include +#include +#include #include #include #include +#include +#include +#include +#include +#include #include #if defined(PTL_USE_TBB) -# include +# include #endif namespace PTL @@ -112,10 +126,12 @@ public: // delete copy-construct TaskGroup(const this_type&) = delete; // define move-construct + // NOLINTNEXTLINE(performance-noexcept-move-constructor) TaskGroup(this_type&& rhs) = default; // delete copy-assign TaskGroup& operator=(const this_type& rhs) = delete; // define move-assign + // NOLINTNEXTLINE(performance-noexcept-move-constructor) TaskGroup& operator=(this_type&& rhs) = default; public: @@ -146,7 +162,7 @@ public: ThreadPool*& pool() { return m_pool; } ThreadPool* pool() const { return m_pool; } - bool is_native_task_group() const { return (m_tbb_task_group) ? false : true; } + bool is_native_task_group() const { return (m_tbb_task_group) == nullptr; } bool is_main() const { return this_tid() == m_main_tid; } // check if any tasks are still pending @@ -267,5 +283,456 @@ private: }; } // namespace PTL +namespace PTL +{ +template +template +TaskGroup::TaskGroup(Func&& _join, ThreadPool* _tp) +: m_join{ std::forward(_join) } +, m_pool{ _tp } +{ + internal_update(); +} -#include "PTL/TaskGroup.icc" +template +template +TaskGroup::TaskGroup(ThreadPool* _tp, + enable_if_t::value, int>) +: m_join{ []() {} } +, m_pool{ _tp } +{ + internal_update(); +} + +// Destructor +template +TaskGroup::~TaskGroup() +{ + { + // task will decrement counter and then acquire the lock to notify + // condition variable so acquiring lock here will prevent the + // task group from being destroyed before this is completed + AutoLock _lk{ m_task_lock, std::defer_lock }; + if(!_lk.owns_lock()) + _lk.lock(); + } + + if(m_tbb_task_group) + { + auto* _arena = m_pool->get_task_arena(); + _arena->execute([this]() { this->m_tbb_task_group->wait(); }); + } + delete m_tbb_task_group; + this->clear(); +} + +template +template +std::shared_ptr +TaskGroup::operator+=(std::shared_ptr&& _task) +{ + // thread-safe increment of tasks in task group + operator++(); + // copy the shared pointer to abstract instance + m_task_list.push_back(_task); + // return the derived instance + return std::move(_task); +} + +template +void +TaskGroup::wait() +{ + auto _dtor = ScopeDestructor{ [&]() { + if(m_tbb_task_group) + { + auto* _arena = m_pool->get_task_arena(); + _arena->execute([this]() { this->m_tbb_task_group->wait(); }); + } + } }; + + ThreadData* data = ThreadData::GetInstance(); + if(!data) + return; + + // if no pool was initially present at creation + if(!m_pool) + { + // check for master MT run-manager + m_pool = internal::get_default_threadpool(); + + // if no thread pool created + if(!m_pool) + { + if(f_verbose > 0) + { + fprintf(stderr, "%s @ %i :: Warning! nullptr to thread-pool (%p)\n", + __FUNCTION__, __LINE__, static_cast(m_pool)); + std::cerr << __FUNCTION__ << "@" << __LINE__ << " :: Warning! " + << "nullptr to thread pool!" << std::endl; + } + return; + } + } + + ThreadPool* tpool = (m_pool) ? m_pool : data->thread_pool; + VUserTaskQueue* taskq = (tpool) ? tpool->get_queue() : data->current_queue; + + bool _is_main = data->is_main; + bool _within_task = data->within_task; + + auto is_active_state = [&]() { + return (tpool->state()->load(std::memory_order_relaxed) != + thread_pool::state::STOPPED); + }; + + auto execute_this_threads_tasks = [&]() { + if(!taskq) + return; + + // only want to process if within a task + if((!_is_main || tpool->size() < 2) && _within_task) + { + int bin = static_cast(taskq->GetThreadBin()); + // const auto nitr = (tpool) ? tpool->size() : + // Thread::hardware_concurrency(); + while(this->pending() > 0) + { + if(!taskq->empty()) + { + auto _task = taskq->GetTask(bin); + if(_task) + (*_task)(); + } + } + } + }; + + // checks for validity + if(!is_native_task_group()) + { + // for external threads + if(!_is_main || tpool->size() < 2) + return; + } + else if(f_verbose > 0) + { + if(!tpool || !taskq) + { + // something is wrong, didn't create thread-pool? + fprintf(stderr, + "%s @ %i :: Warning! nullptr to thread data (%p) or task-queue " + "(%p)\n", + __FUNCTION__, __LINE__, static_cast(tpool), + static_cast(taskq)); + } + // return if thread pool isn't built + else if(is_native_task_group() && !tpool->is_alive()) + { + fprintf(stderr, "%s @ %i :: Warning! thread-pool is not alive!\n", + __FUNCTION__, __LINE__); + } + else if(!is_active_state()) + { + fprintf(stderr, "%s @ %i :: Warning! thread-pool is not active!\n", + __FUNCTION__, __LINE__); + } + } + + intmax_t wake_size = 2; + AutoLock _lock(m_task_lock, std::defer_lock); + + while(is_active_state()) + { + execute_this_threads_tasks(); + + // while loop protects against spurious wake-ups + while(_is_main && pending() > 0 && is_active_state()) + { + // auto _wake = [&]() { return (wake_size > pending() || + // !is_active_state()); + // }; + + // lock before sleeping on condition + if(!_lock.owns_lock()) + _lock.lock(); + + // Wait until signaled that a task has been competed + // Unlock mutex while wait, then lock it back when signaled + // when true, this wakes the thread + if(pending() >= wake_size) + { + m_task_cond.wait(_lock); + } + else + { + m_task_cond.wait_for(_lock, std::chrono::microseconds(100)); + } + // unlock + if(_lock.owns_lock()) + _lock.unlock(); + } + + // if pending is not greater than zero, we are joined + if(pending() <= 0) + break; + } + + if(_lock.owns_lock()) + _lock.unlock(); + + intmax_t ntask = this->task_count().load(); + if(ntask > 0) + { + std::stringstream ss; + ss << "\nWarning! Join operation issue! " << ntask << " tasks still " + << "are running!" << std::endl; + std::cerr << ss.str(); + this->wait(); + } +} + +template +ScopeDestructor +TaskGroup::get_scope_destructor() +{ + auto& _counter = m_tot_task_count; + auto& _task_cond = task_cond(); + auto& _task_lock = task_lock(); + return ScopeDestructor{ [&_task_cond, &_task_lock, &_counter]() { + auto _count = --(_counter); + if(_count < 1) + { + AutoLock _lk{ _task_lock }; + _task_cond.notify_all(); + } + } }; +} + +template +void +TaskGroup::notify() +{ + AutoLock _lk{ m_task_lock }; + m_task_cond.notify_one(); +} + +template +void +TaskGroup::notify_all() +{ + AutoLock _lk{ m_task_lock }; + m_task_cond.notify_all(); +} + +template +template +enable_if_t::value, void> +TaskGroup::exec(Func func, Args... args) +{ + if(MaxDepth > 0 && !m_tbb_task_group && ThreadData::GetInstance() && + ThreadData::GetInstance()->task_depth > MaxDepth) + { + local_exec(std::move(func), std::move(args)...); + } + else + { + auto& _counter = m_tot_task_count; + auto& _task_cond = task_cond(); + auto& _task_lock = task_lock(); + auto _task = wrap([&_task_cond, &_task_lock, &_counter, func, args...]() { + auto* _tdata = ThreadData::GetInstance(); + if(_tdata) + ++(_tdata->task_depth); + func(args...); + auto _count = --(_counter); + if(_tdata) + --(_tdata->task_depth); + if(_count < 1) + { + AutoLock _lk{ _task_lock }; + _task_cond.notify_all(); + } + }); + + if(m_tbb_task_group) + { + auto* _arena = m_pool->get_task_arena(); + auto* _tbb_task_group = m_tbb_task_group; + auto* _ptask = _task.get(); + _arena->execute([_tbb_task_group, _ptask]() { + _tbb_task_group->run([_ptask]() { (*_ptask)(); }); + }); + } + else + { + m_pool->add_task(std::move(_task)); + } + } +} +template +template +enable_if_t::value, void> +TaskGroup::exec(Func func, Args... args) +{ + if(MaxDepth > 0 && !m_tbb_task_group && ThreadData::GetInstance() && + ThreadData::GetInstance()->task_depth > MaxDepth) + { + local_exec(std::move(func), std::move(args)...); + } + else + { + auto& _counter = m_tot_task_count; + auto& _task_cond = task_cond(); + auto& _task_lock = task_lock(); + auto _task = wrap([&_task_cond, &_task_lock, &_counter, func, args...]() { + auto* _tdata = ThreadData::GetInstance(); + if(_tdata) + ++(_tdata->task_depth); + auto&& _ret = func(args...); + auto _count = --(_counter); + if(_tdata) + --(_tdata->task_depth); + if(_count < 1) + { + AutoLock _lk{ _task_lock }; + _task_cond.notify_all(); + } + return std::forward(_ret); + }); + + if(m_tbb_task_group) + { + auto* _arena = m_pool->get_task_arena(); + auto* _tbb_task_group = m_tbb_task_group; + auto* _ptask = _task.get(); + _arena->execute([_tbb_task_group, _ptask]() { + _tbb_task_group->run([_ptask]() { (*_ptask)(); }); + }); + } + else + { + m_pool->add_task(std::move(_task)); + } + } +} + +template +template +enable_if_t::value, void> +TaskGroup::local_exec(Func func, Args... args) +{ + auto* _tdata = ThreadData::GetInstance(); + if(_tdata) + ++(_tdata->task_depth); + promise_type _p{}; + m_future_list.emplace_back(_p.get_future()); + func(args...); + _p.set_value(); + if(_tdata) + --(_tdata->task_depth); +} + +template +template +enable_if_t::value, void> +TaskGroup::local_exec(Func func, Args... args) +{ + auto* _tdata = ThreadData::GetInstance(); + if(_tdata) + ++(_tdata->task_depth); + promise_type _p{}; + m_future_list.emplace_back(_p.get_future()); + _p.set_value(func(args...)); + if(_tdata) + --(_tdata->task_depth); +} + +template +template ::value, int>> +inline Up +TaskGroup::join(Up accum) +{ + this->wait(); + for(auto& itr : m_task_list) + { + using RetT = decay_tget())>; + accum = std::move(m_join(std::ref(accum), std::forward(itr->get()))); + } + for(auto& itr : m_future_list) + { + using RetT = decay_t; + accum = std::move(m_join(std::ref(accum), std::forward(itr.get()))); + } + this->clear(); + return accum; +} + +template +template ::value && std::is_void::value, int>> +inline void +TaskGroup::join() +{ + this->wait(); + for(auto& itr : m_task_list) + itr->get(); + for(auto& itr : m_future_list) + itr.get(); + m_join(); + this->clear(); +} + +template +template ::value && !std::is_void::value, int>> +inline void +TaskGroup::join() +{ + this->wait(); + for(auto& itr : m_task_list) + { + using RetT = decay_tget())>; + m_join(std::forward(itr->get())); + } + for(auto& itr : m_future_list) + { + using RetT = decay_t; + m_join(std::forward(itr.get())); + } + this->clear(); +} + +template +void +TaskGroup::clear() +{ + m_future_list.clear(); + m_task_list.clear(); +} + +template +void +TaskGroup::internal_update() +{ + if(!m_pool) + m_pool = internal::get_default_threadpool(); + + if(!m_pool) + { + std::stringstream ss{}; + ss << "[TaskGroup]> " << __FUNCTION__ << "@" << __LINE__ + << " :: nullptr to thread pool"; + throw std::runtime_error(ss.str()); + } + + if(m_pool->is_tbb_threadpool()) + { + m_tbb_task_group = new tbb_task_group_t{}; + } +} + +template +int TaskGroup::f_verbose = GetEnv("PTL_VERBOSE", 0); + +} // namespace PTL diff --git a/source/externals/ptl/include/PTL/TaskGroup.icc b/source/externals/ptl/include/PTL/TaskGroup.icc deleted file mode 100644 index b8af8987c8..0000000000 --- a/source/externals/ptl/include/PTL/TaskGroup.icc +++ /dev/null @@ -1,487 +0,0 @@ -// -// MIT License -// Copyright (c) 2020 Jonathan R. Madsen -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED -// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -// -// --------------------------------------------------------------- -// Tasking class header file -// -// Class Description: -// -// This file creates the a class for handling a group of tasks that -// can be independently joined -// -// --------------------------------------------------------------- -// Author: Jonathan Madsen (Feb 13th 2018) -// --------------------------------------------------------------- - -#include "PTL/Types.hh" -#include "PTL/Utility.hh" - -namespace PTL -{ -template -template -TaskGroup::TaskGroup(Func&& _join, ThreadPool* _tp) -: m_join{ std::forward(_join) } -, m_pool{ _tp } -{ - internal_update(); -} - -template -template -TaskGroup::TaskGroup(ThreadPool* _tp, - enable_if_t::value, int>) -: m_join{ []() {} } -, m_pool{ _tp } -{ - internal_update(); -} - -// Destructor -template -TaskGroup::~TaskGroup() -{ - { - // task will decrement counter and then acquire the lock to notify - // condition variable so acquiring lock here will prevent the - // task group from being destroyed before this is completed - AutoLock _lk{ m_task_lock, std::defer_lock }; - if(!_lk.owns_lock()) - _lk.lock(); - } - - if(m_tbb_task_group) - { - auto* _arena = m_pool->get_task_arena(); - _arena->execute([this]() { this->m_tbb_task_group->wait(); }); - } - delete m_tbb_task_group; - this->clear(); -} - -template -template -std::shared_ptr -TaskGroup::operator+=(std::shared_ptr&& _task) -{ - // thread-safe increment of tasks in task group - operator++(); - // copy the shared pointer to abstract instance - m_task_list.push_back(_task); - // return the derived instance - return std::move(_task); -} - -template -void -TaskGroup::wait() -{ - auto _dtor = ScopeDestructor{ [&]() { - if(m_tbb_task_group) - { - auto* _arena = m_pool->get_task_arena(); - _arena->execute([this]() { this->m_tbb_task_group->wait(); }); - } - } }; - - ThreadData* data = ThreadData::GetInstance(); - if(!data) - return; - - // if no pool was initially present at creation - if(!m_pool) - { - // check for master MT run-manager - m_pool = internal::get_default_threadpool(); - - // if no thread pool created - if(!m_pool) - { - if(f_verbose > 0) - { - fprintf(stderr, "%s @ %i :: Warning! nullptr to thread-pool (%p)\n", - __FUNCTION__, __LINE__, static_cast(m_pool)); - std::cerr << __FUNCTION__ << "@" << __LINE__ << " :: Warning! " - << "nullptr to thread pool!" << std::endl; - } - return; - } - } - - ThreadPool* tpool = (m_pool) ? m_pool : data->thread_pool; - VUserTaskQueue* taskq = (tpool) ? tpool->get_queue() : data->current_queue; - - bool _is_main = data->is_main; - bool _within_task = data->within_task; - - auto is_active_state = [&]() { - return (tpool->state()->load(std::memory_order_relaxed) != - thread_pool::state::STOPPED); - }; - - auto execute_this_threads_tasks = [&]() { - if(!taskq) - return; - - // only want to process if within a task - if((!_is_main || tpool->size() < 2) && _within_task) - { - int bin = static_cast(taskq->GetThreadBin()); - // const auto nitr = (tpool) ? tpool->size() : - // Thread::hardware_concurrency(); - while(this->pending() > 0) - { - if(!taskq->empty()) - { - auto _task = taskq->GetTask(bin); - if(_task) - (*_task)(); - } - } - } - }; - - // checks for validity - if(!is_native_task_group()) - { - // for external threads - if(!_is_main || tpool->size() < 2) - return; - } - else if(f_verbose > 0) - { - if(!tpool || !taskq) - { - // something is wrong, didn't create thread-pool? - fprintf(stderr, - "%s @ %i :: Warning! nullptr to thread data (%p) or task-queue " - "(%p)\n", - __FUNCTION__, __LINE__, static_cast(tpool), - static_cast(taskq)); - } - // return if thread pool isn't built - else if(is_native_task_group() && !tpool->is_alive()) - { - fprintf(stderr, "%s @ %i :: Warning! thread-pool is not alive!\n", - __FUNCTION__, __LINE__); - } - else if(!is_active_state()) - { - fprintf(stderr, "%s @ %i :: Warning! thread-pool is not active!\n", - __FUNCTION__, __LINE__); - } - } - - intmax_t wake_size = 2; - AutoLock _lock(m_task_lock, std::defer_lock); - - while(is_active_state()) - { - execute_this_threads_tasks(); - - // while loop protects against spurious wake-ups - while(_is_main && pending() > 0 && is_active_state()) - { - // auto _wake = [&]() { return (wake_size > pending() || - // !is_active_state()); - // }; - - // lock before sleeping on condition - if(!_lock.owns_lock()) - _lock.lock(); - - // Wait until signaled that a task has been competed - // Unlock mutex while wait, then lock it back when signaled - // when true, this wakes the thread - if(pending() >= wake_size) - { - m_task_cond.wait(_lock); - } - else - { - m_task_cond.wait_for(_lock, std::chrono::microseconds(100)); - } - // unlock - if(_lock.owns_lock()) - _lock.unlock(); - } - - // if pending is not greater than zero, we are joined - if(pending() <= 0) - break; - } - - if(_lock.owns_lock()) - _lock.unlock(); - - intmax_t ntask = this->task_count().load(); - if(ntask > 0) - { - std::stringstream ss; - ss << "\nWarning! Join operation issue! " << ntask << " tasks still " - << "are running!" << std::endl; - std::cerr << ss.str(); - this->wait(); - } -} - -template -ScopeDestructor -TaskGroup::get_scope_destructor() -{ - auto& _counter = m_tot_task_count; - auto& _task_cond = task_cond(); - auto& _task_lock = task_lock(); - return ScopeDestructor{ [&_task_cond, &_task_lock, &_counter]() { - auto _count = --(_counter); - if(_count < 1) - { - AutoLock _lk{ _task_lock }; - _task_cond.notify_all(); - } - } }; -} - -template -void -TaskGroup::notify() -{ - AutoLock _lk{ m_task_lock }; - m_task_cond.notify_one(); -} - -template -void -TaskGroup::notify_all() -{ - AutoLock _lk{ m_task_lock }; - m_task_cond.notify_all(); -} - -template -template -enable_if_t::value, void> -TaskGroup::exec(Func func, Args... args) -{ - if(MaxDepth > 0 && !m_tbb_task_group && ThreadData::GetInstance() && - ThreadData::GetInstance()->task_depth > MaxDepth) - { - local_exec(std::move(func), std::move(args)...); - } - else - { - auto& _counter = m_tot_task_count; - auto& _task_cond = task_cond(); - auto& _task_lock = task_lock(); - auto _task = wrap([&_task_cond, &_task_lock, &_counter, func, args...]() { - auto _tdata = ThreadData::GetInstance(); - if(_tdata) - ++(_tdata->task_depth); - func(args...); - auto _count = --(_counter); - if(_tdata) - --(_tdata->task_depth); - if(_count < 1) - { - AutoLock _lk{ _task_lock }; - _task_cond.notify_all(); - } - }); - - if(m_tbb_task_group) - { - auto* _arena = m_pool->get_task_arena(); - auto* _tbb_task_group = m_tbb_task_group; - auto* _ptask = _task.get(); - _arena->execute([_tbb_task_group, _ptask]() { - _tbb_task_group->run([_ptask]() { (*_ptask)(); }); - }); - } - else - { - m_pool->add_task(std::move(_task)); - } - } -} -template -template -enable_if_t::value, void> -TaskGroup::exec(Func func, Args... args) -{ - if(MaxDepth > 0 && !m_tbb_task_group && ThreadData::GetInstance() && - ThreadData::GetInstance()->task_depth > MaxDepth) - { - local_exec(std::move(func), std::move(args)...); - } - else - { - auto& _counter = m_tot_task_count; - auto& _task_cond = task_cond(); - auto& _task_lock = task_lock(); - auto _task = wrap([&_task_cond, &_task_lock, &_counter, func, args...]() { - auto _tdata = ThreadData::GetInstance(); - if(_tdata) - ++(_tdata->task_depth); - auto&& _ret = func(args...); - auto _count = --(_counter); - if(_tdata) - --(_tdata->task_depth); - if(_count < 1) - { - AutoLock _lk{ _task_lock }; - _task_cond.notify_all(); - } - return std::forward(_ret); - }); - - if(m_tbb_task_group) - { - auto* _arena = m_pool->get_task_arena(); - auto* _tbb_task_group = m_tbb_task_group; - auto* _ptask = _task.get(); - _arena->execute([_tbb_task_group, _ptask]() { - _tbb_task_group->run([_ptask]() { (*_ptask)(); }); - }); - } - else - { - m_pool->add_task(std::move(_task)); - } - } -} - -template -template -enable_if_t::value, void> -TaskGroup::local_exec(Func func, Args... args) -{ - auto _tdata = ThreadData::GetInstance(); - if(_tdata) - ++(_tdata->task_depth); - promise_type _p{}; - m_future_list.emplace_back(_p.get_future()); - func(args...); - _p.set_value(); - if(_tdata) - --(_tdata->task_depth); -} - -template -template -enable_if_t::value, void> -TaskGroup::local_exec(Func func, Args... args) -{ - auto _tdata = ThreadData::GetInstance(); - if(_tdata) - ++(_tdata->task_depth); - promise_type _p{}; - m_future_list.emplace_back(_p.get_future()); - _p.set_value(func(args...)); - if(_tdata) - --(_tdata->task_depth); -} - -template -template ::value, int>> -inline Up -TaskGroup::join(Up accum) -{ - this->wait(); - for(auto& itr : m_task_list) - { - using RetT = decay_tget())>; - accum = std::move(m_join(std::ref(accum), std::forward(itr->get()))); - } - for(auto& itr : m_future_list) - { - using RetT = decay_t; - accum = std::move(m_join(std::ref(accum), std::forward(itr.get()))); - } - this->clear(); - return accum; -} - -template -template ::value && std::is_void::value, int>> -inline void -TaskGroup::join() -{ - this->wait(); - for(auto& itr : m_task_list) - itr->get(); - for(auto& itr : m_future_list) - itr.get(); - m_join(); - this->clear(); -} - -template -template ::value && !std::is_void::value, int>> -inline void -TaskGroup::join() -{ - this->wait(); - for(auto& itr : m_task_list) - { - using RetT = decay_tget())>; - m_join(std::forward(itr->get())); - } - for(auto& itr : m_future_list) - { - using RetT = decay_t; - m_join(std::forward(itr.get())); - } - this->clear(); -} - -template -void -TaskGroup::clear() -{ - m_future_list.clear(); - m_task_list.clear(); -} - -template -void -TaskGroup::internal_update() -{ - if(!m_pool) - m_pool = internal::get_default_threadpool(); - - if(!m_pool) - { - std::stringstream ss{}; - ss << "[TaskGroup]> " << __FUNCTION__ << "@" << __LINE__ - << " :: nullptr to thread pool"; - throw std::runtime_error(ss.str()); - } - - if(m_pool->is_tbb_threadpool()) - { - m_tbb_task_group = new tbb_task_group_t{}; - } -} - -template -int TaskGroup::f_verbose = GetEnv("PTL_VERBOSE", 0); - -} // namespace PTL diff --git a/source/externals/ptl/include/PTL/TaskManager.hh b/source/externals/ptl/include/PTL/TaskManager.hh index 662eb7c54b..5e10311399 100644 --- a/source/externals/ptl/include/PTL/TaskManager.hh +++ b/source/externals/ptl/include/PTL/TaskManager.hh @@ -31,18 +31,15 @@ #pragma once #include "PTL/Globals.hh" -#include "PTL/TBBTaskGroup.hh" #include "PTL/Task.hh" #include "PTL/TaskGroup.hh" #include "PTL/ThreadPool.hh" -#include "PTL/Threading.hh" -#include -#include -#include -#include -#include +#include +#include #include +#include +#include namespace PTL { @@ -51,13 +48,13 @@ namespace PTL class TaskManager { public: - typedef TaskManager this_type; - typedef ThreadPool::size_type size_type; + using this_type = TaskManager; + using size_type = ThreadPool::size_type; public: // Constructor and Destructors explicit TaskManager(ThreadPool*, bool _manage_pool = true); - virtual ~TaskManager(); + virtual ~TaskManager() noexcept(false); TaskManager(const TaskManager&) = delete; TaskManager(TaskManager&&) = default; @@ -109,7 +106,7 @@ public: template std::shared_ptr> async(FuncT&& func, Args&&... args) { - typedef PackagedTask task_type; + using task_type = PackagedTask; if(!m_pool) throw std::runtime_error("Nullptr to thread-pool"); @@ -123,7 +120,7 @@ public: template std::shared_ptr> async(FuncT&& func) { - typedef PackagedTask task_type; + using task_type = PackagedTask; if(!m_pool) throw std::runtime_error("Nullptr to thread-pool"); @@ -137,8 +134,8 @@ public: auto async(FuncT&& func, Args... args) -> std::shared_ptr, Args...>> { - using RetT = decay_t; - typedef PackagedTask task_type; + using RetT = decay_t; + using task_type = PackagedTask; if(!m_pool) throw std::runtime_error("Nullptr to thread-pool"); @@ -268,7 +265,7 @@ inline PTL::TaskManager::TaskManager(ThreadPool* _pool, bool _manage_pool) //--------------------------------------------------------------------------------------// -inline PTL::TaskManager::~TaskManager() +inline PTL::TaskManager::~TaskManager() noexcept(false) { finalize(); if(fgInstance() == this) diff --git a/source/externals/ptl/include/PTL/TaskRunManager.hh b/source/externals/ptl/include/PTL/TaskRunManager.hh index 575c562762..4230303bda 100644 --- a/source/externals/ptl/include/PTL/TaskRunManager.hh +++ b/source/externals/ptl/include/PTL/TaskRunManager.hh @@ -25,18 +25,15 @@ #pragma once -#include "PTL/TBBTaskGroup.hh" -#include "PTL/TaskGroup.hh" #include "PTL/ThreadPool.hh" -#include "PTL/Threading.hh" #include "PTL/VUserTaskQueue.hh" -#include -#include +#include +#include +#include namespace PTL { -class ThreadPool; class TaskManager; //======================================================================================// @@ -44,7 +41,7 @@ class TaskManager; class TaskRunManager { public: - typedef TaskRunManager* pointer; + using pointer = TaskRunManager*; public: // Parameters: @@ -57,7 +54,7 @@ public: public: virtual int GetNumberOfThreads() const { - return (m_thread_pool) ? m_thread_pool->size() : 0; + return (m_thread_pool) ? (int)m_thread_pool->size() : 0; } virtual size_t GetNumberActiveThreads() const { diff --git a/source/externals/ptl/include/PTL/UserTaskQueue.icc b/source/externals/ptl/include/PTL/TaskSubQueue.hh similarity index 84% rename from source/externals/ptl/include/PTL/UserTaskQueue.icc rename to source/externals/ptl/include/PTL/TaskSubQueue.hh index 7fce382022..744f299cc9 100644 --- a/source/externals/ptl/include/PTL/UserTaskQueue.icc +++ b/source/externals/ptl/include/PTL/TaskSubQueue.hh @@ -16,48 +16,38 @@ // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // -// --------------------------------------------------------------- -// Tasking class header -// Class Description: -// --------------------------------------------------------------- -// Author: Jonathan Madsen -// --------------------------------------------------------------- -#include "PTL/AutoLock.hh" +#ifndef G4GMAKE +#include "PTL/Config.hh" // IWYU pragma: keep +#endif #include "PTL/Globals.hh" -#include "PTL/ThreadPool.hh" -#include "PTL/Threading.hh" -#include "PTL/Types.hh" -#include "PTL/VUserTaskQueue.hh" +#include "PTL/VTask.hh" +#if defined(PTL_USE_LOCKS) +# include "PTL/AutoLock.hh" +#endif #include #include -#include #include #include -#include -#include +#include namespace PTL { -class VTask; - -//======================================================================================// - class TaskSubQueue { public: template using container = std::list; - typedef std::shared_ptr task_pointer; - typedef container container_type; - typedef container_type::size_type size_type; + using task_pointer = std::shared_ptr; + using container_type = container; + using size_type = container_type::size_type; public: TaskSubQueue(std::atomic_uintmax_t* _ntasks); TaskSubQueue(const TaskSubQueue&); - ~TaskSubQueue(); + ~TaskSubQueue() = default; TaskSubQueue& operator=(const TaskSubQueue&) = delete; @@ -106,10 +96,6 @@ inline TaskSubQueue::TaskSubQueue(const TaskSubQueue& rhs) //======================================================================================// -inline TaskSubQueue::~TaskSubQueue() {} - -//======================================================================================// - inline bool TaskSubQueue::AcquireClaim() { @@ -193,5 +179,4 @@ TaskSubQueue::PopTask(bool front) } //======================================================================================// - } // namespace PTL diff --git a/source/externals/ptl/include/PTL/ThreadData.hh b/source/externals/ptl/include/PTL/ThreadData.hh index d9e15413bd..816d11b9f9 100644 --- a/source/externals/ptl/include/PTL/ThreadData.hh +++ b/source/externals/ptl/include/PTL/ThreadData.hh @@ -29,10 +29,8 @@ #include "PTL/Config.hh" #endif -#include #include #include -#include #if defined(PTL_USE_TBB) # if !defined(TBB_PREVIEW_GLOBAL_CONTROL) @@ -41,6 +39,8 @@ # include # include # include +#else +# include #endif namespace PTL diff --git a/source/externals/ptl/include/PTL/ThreadPool.hh b/source/externals/ptl/include/PTL/ThreadPool.hh index c59f8d23bb..015f585cca 100644 --- a/source/externals/ptl/include/PTL/ThreadPool.hh +++ b/source/externals/ptl/include/PTL/ThreadPool.hh @@ -31,6 +31,9 @@ #pragma once #include "PTL/AutoLock.hh" +#ifndef G4GMAKE +#include "PTL/Config.hh" +#endif #include "PTL/ThreadData.hh" #include "PTL/Threading.hh" #include "PTL/Types.hh" @@ -45,28 +48,42 @@ # define TBB_PREVIEW_GLOBAL_CONTROL 1 # endif # include -# include +# include +# include #endif -// C +#include +#include +#include #include #include -#include -// C++ -#include #include +#include #include #include #include -#include +#include // IWYU pragma: keep #include -#include #include +#include // IWYU pragma: keep #include +#include #include namespace PTL { +namespace thread_pool +{ +namespace state +{ +static const short STARTED = 0; +static const short PARTIAL = 1; +static const short STOPPED = 2; +static const short NONINIT = 3; + +} // namespace state +} // namespace thread_pool + class ThreadPool { public: @@ -242,10 +259,7 @@ public: void notify_all(); void notify(size_type); bool is_initialized() const; - int get_active_threads_count() const - { - return (m_thread_awake) ? m_thread_awake->load() : 0; - } + int get_active_threads_count() const { return (int)m_thread_awake->load(); } void set_affinity(affinity_func_t f) { m_affinity_func = std::move(f); } void set_affinity(intmax_t i, Thread&) const; @@ -288,8 +302,8 @@ private: ThreadId m_main_tid = ThisThread::get_id(); atomic_bool_type m_alive_flag = std::make_shared(false); pool_state_type m_pool_state = std::make_shared(0); - atomic_int_type m_thread_awake = std::make_shared(); - atomic_int_type m_thread_active = std::make_shared(); + atomic_int_type m_thread_awake = std::make_shared(0); + atomic_int_type m_thread_active = std::make_shared(0); // locks lock_t m_task_lock = std::make_shared(); @@ -328,7 +342,7 @@ inline void ThreadPool::notify() { // wake up one thread that is waiting for a task to be available - if(m_thread_awake && m_thread_awake->load() < m_pool_size) + if(m_thread_awake->load() < m_pool_size) { AutoLock l(*m_task_lock); m_task_cond->notify_one(); @@ -350,7 +364,7 @@ ThreadPool::notify(size_type ntasks) return; // wake up as many threads that tasks just added - if(m_thread_awake && m_thread_awake->load() < m_pool_size) + if(m_thread_awake->load() < m_pool_size) { AutoLock l(*m_task_lock); if(ntasks < this->size()) @@ -429,7 +443,7 @@ ThreadPool::insert(task_pointer&& task, int bin) // pass the task to the queue auto ibin = get_valid_queue(m_task_queue)->InsertTask(std::move(task), _data, bin); notify(); - return ibin; + return (int)ibin; } //--------------------------------------------------------------------------------------// inline ThreadPool::size_type diff --git a/source/externals/ptl/include/PTL/Threading.hh b/source/externals/ptl/include/PTL/Threading.hh index bbf77a2fbd..ddfc31e8f6 100644 --- a/source/externals/ptl/include/PTL/Threading.hh +++ b/source/externals/ptl/include/PTL/Threading.hh @@ -25,22 +25,25 @@ #pragma once -#include "PTL/Globals.hh" -#include "PTL/Types.hh" - #include -#include -#include +#include #include #include #include -#include namespace PTL { -// Macro to put current thread to sleep -// -#define THREADSLEEP(tick) std::this_thread::sleep_for(std::chrono::seconds(tick)) +// global thread types +using Thread = std::thread; +using NativeThread = std::thread::native_handle_type; +// std::thread::id does not cast to integer +using Pid_t = std::thread::id; + +// Condition +using Condition = std::condition_variable; + +// Thread identifier +using ThreadId = Thread::id; // will be used in the future when migrating threading to task-based style template @@ -50,42 +53,9 @@ using SharedFuture = std::shared_future; template using Promise = std::promise; -// -// NOTE ON Tasking SERIAL BUILDS AND MUTEX/UNIQUE_LOCK -// ================================================== -// -// Mutex and RecursiveMutex are always C++11 std::mutex types -// however, in serial mode, using MUTEXLOCK and MUTEXUNLOCK on these -// types has no effect -- i.e. the mutexes are not actually locked or unlocked -// -// Additionally, when a Mutex or RecursiveMutex is used with AutoLock -// and RecursiveAutoLock, respectively, these classes also suppressing -// the locking and unlocking of the mutex. Regardless of the build type, -// AutoLock and RecursiveAutoLock inherit from std::unique_lock -// and std::unique_lock, respectively. This means -// that in situations (such as is needed by the analysis category), the -// AutoLock and RecursiveAutoLock can be passed to functions requesting -// a std::unique_lock. Within these functions, since std::unique_lock -// member functions are not virtual, they will not retain the dummy locking -// and unlocking behavior -// --> An example of this behavior can be found in AutoLock.hh -// -// Jonathan R. Madsen (February 21, 2018) -// - // global mutex types -typedef std::mutex Mutex; -typedef std::recursive_mutex RecursiveMutex; - -// mutex macros -#define MUTEX_INITIALIZER \ - {} -#define MUTEXINIT(mutex) \ - ; \ - ; -#define MUTEXDESTROY(mutex) \ - ; \ - ; +using Mutex = std::mutex; +using RecursiveMutex = std::recursive_mutex; // static functions: get_id(), sleep_for(...), sleep_until(...), yield(), namespace ThisThread @@ -93,21 +63,6 @@ namespace ThisThread using namespace std::this_thread; } -// will be used in the future when migrating threading to task-based style -// and are currently used in unit tests -template -using Promise = std::promise; -template -using Future = std::future; -template -using SharedFuture = std::shared_future; - -// Some useful types -typedef void* ThreadFunReturnType; -typedef void* ThreadFunArgType; -typedef int (*thread_lock)(Mutex*); -typedef int (*thread_unlock)(Mutex*); - // Helper function for getting a unique static mutex for a specific // class or type // Usage example: @@ -124,20 +79,6 @@ TypeMutex(const unsigned int& _n = 0) //======================================================================================// -// global thread types -using Thread = std::thread; -using NativeThread = std::thread::native_handle_type; -// std::thread::id does not cast to integer -using Pid_t = std::thread::id; - -// Condition -using Condition = std::condition_variable; - -// Thread identifier -using ThreadId = Thread::id; - -//======================================================================================// - namespace Threading { enum diff --git a/source/externals/ptl/include/PTL/Timer.hh b/source/externals/ptl/include/PTL/Timer.hh index 379a6de4ab..0e3c7e6fac 100644 --- a/source/externals/ptl/include/PTL/Timer.hh +++ b/source/externals/ptl/include/PTL/Timer.hh @@ -71,12 +71,11 @@ #include #include -#include #include #if !(defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)) # include -# include +# include #else # include # define _SC_CLK_TCK 1 @@ -106,55 +105,90 @@ namespace PTL { class Timer { - typedef std::chrono::high_resolution_clock clock_type; +public: + PTL_DEFAULT_OBJECT(Timer) public: - Timer(); + void Start(); + void Stop(); + bool IsValid() const; + double GetRealElapsed() const; + double GetSystemElapsed() const; + double GetUserElapsed() const; -public: - inline void Start(); - inline void Stop(); - inline bool IsValid() const; - inline const char* GetClockTime() const; - double GetRealElapsed() const; - double GetSystemElapsed() const; - double GetUserElapsed() const; - -public: - friend std::ostream& operator<<(std::ostream& os, const Timer& t) - { - // so fixed doesn't propagate - std::stringstream ss; - ss << std::fixed; - if(t.IsValid()) - { - ss << "Real=" << t.GetRealElapsed() << "s User=" << t.GetUserElapsed() - << "s Sys=" << t.GetSystemElapsed() << "s"; - - // avoid possible FPE error - if(t.GetRealElapsed() > 1.0e-6) - { - double cpu_util = (t.GetUserElapsed() + t.GetSystemElapsed()) / - t.GetRealElapsed() * 100.0; - ss << std::setprecision(1); - ss << " [Cpu=" << std::setprecision(1) << cpu_util << "%]"; - } - } - else - { - ss << "Real=****s User=****s Sys=****s"; - } - os << ss.str(); - - return os; - } + static const char* GetClockTime(); private: - bool fValidTimes; + bool fValidTimes{ false }; + using clock_type = std::chrono::high_resolution_clock; std::chrono::time_point fStartRealTime, fEndRealTime; tms fStartTimes, fEndTimes; }; -} // namespace PTL +// ------------------------------------------------------------ +// class inline implementation +// ------------------------------------------------------------ -#include "PTL/Timer.icc" +inline void +Timer::Start() +{ + fValidTimes = false; + times(&fStartTimes); + fStartRealTime = clock_type::now(); +} + +inline void +Timer::Stop() +{ + times(&fEndTimes); + fEndRealTime = clock_type::now(); + fValidTimes = true; +} + +inline bool +Timer::IsValid() const +{ + return fValidTimes; +} + +inline const char* +Timer::GetClockTime() +{ + time_t rawtime; + struct tm* timeinfo; + + time(&rawtime); + timeinfo = localtime(&rawtime); + return asctime(timeinfo); +} + +inline std::ostream& +operator<<(std::ostream& os, const Timer& t) +{ + // so fixed doesn't propagate + std::stringstream ss; + ss << std::fixed; + if(t.IsValid()) + { + ss << "Real=" << t.GetRealElapsed() << "s User=" << t.GetUserElapsed() + << "s Sys=" << t.GetSystemElapsed() << "s"; + + // avoid possible FPE error + if(t.GetRealElapsed() > 1.0e-6) + { + double cpu_util = + (t.GetUserElapsed() + t.GetSystemElapsed()) / t.GetRealElapsed() * 100.0; + ss << std::setprecision(1); + ss << " [Cpu=" << std::setprecision(1) << cpu_util << "%]"; + } + } + else + { + ss << "Real=****s User=****s Sys=****s"; + } + os << ss.str(); + + return os; +} + +} // namespace PTL \ No newline at end of file diff --git a/source/externals/ptl/include/PTL/Timer.icc b/source/externals/ptl/include/PTL/Timer.icc deleted file mode 100644 index a385bcb401..0000000000 --- a/source/externals/ptl/include/PTL/Timer.icc +++ /dev/null @@ -1,54 +0,0 @@ -// -// MIT License -// Copyright (c) 2019 Jonathan R. Madsen -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED -// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -// ------------------------------------------------------------ -// class inline implementation -// ------------------------------------------------------------ - -inline void -PTL::Timer::Start() -{ - fValidTimes = false; - times(&fStartTimes); - fStartRealTime = clock_type::now(); -} - -inline void -PTL::Timer::Stop() -{ - times(&fEndTimes); - fEndRealTime = clock_type::now(); - fValidTimes = true; -} - -inline bool -PTL::Timer::IsValid() const -{ - return fValidTimes; -} - -inline const char* -PTL::Timer::GetClockTime() const -{ - time_t rawtime; - struct tm* timeinfo; - - time(&rawtime); - timeinfo = localtime(&rawtime); - return asctime(timeinfo); -} diff --git a/source/externals/ptl/include/PTL/Tuple.hh b/source/externals/ptl/include/PTL/Tuple.hh deleted file mode 100644 index e200b4020e..0000000000 --- a/source/externals/ptl/include/PTL/Tuple.hh +++ /dev/null @@ -1,443 +0,0 @@ -// MIT License -// Copyright (c) 2020 Jonathan R. Madsen -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -#pragma once - -#include -#include -#include -#include - -namespace PTL -{ -template -struct SmallerThanT -{ - static constexpr bool value = sizeof(Tp) < sizeof(Up); -}; - -//======================================================================================// - -// CTValue == compile-time value -// -// useful to work with sequences of compile-time values, such as the bounds of a -// multidimensional array or indices into another typelist. - -template -struct CTValue -{ - static constexpr Tp value = Value; -}; - -//======================================================================================// - -template ::value && !std::is_final::value> -class TupleElt; - -//--------------------------------------------------------------------------------------// -// specialization that does not satisfy is_class<> and not is_final<> -// -template -class TupleElt -{ - Tp value; - -public: - TupleElt() = default; - - template - TupleElt(Up&& other) - : value(std::forward(other)) - {} - - Tp& get() { return value; } - Tp const& get() const { return value; } -}; - -//--------------------------------------------------------------------------------------// -// specialization that does satisfy is_class<> and not is_final<> -// -template -class TupleElt : private Tp -{ -public: - TupleElt() = default; - - template - explicit TupleElt(Up&& other) - : Tp(std::forward(other)) - {} - - Tp& get() { return *this; } - const Tp& get() const { return *this; } -}; - -//======================================================================================// - -template -T& -get_height(TupleElt& te) -{ - return te.get(); -} - -//======================================================================================// - -template -class Tuple; - -//--------------------------------------------------------------------------------------// - -// recursive case: -template -class Tuple -: private TupleElt -, private Tuple -{ - template - friend auto get(Tuple& t) - -> decltype(get_height(t)); - -public: - Head& head() { return static_cast(this)->get(); } - const Head& head() const { return static_cast(this)->get(); } - Tuple& tail() { return *this; } - const Tuple& tail() const { return *this; } - -private: - using HeadElt = TupleElt; -}; - -//--------------------------------------------------------------------------------------// -// basis case: -template <> -class Tuple<> -{ - // no storage required -}; - -//--------------------------------------------------------------------------------------// - -template -auto -get(Tuple& t) -> decltype(get_height(t)) -{ - return get_height(t); -} - -template -using TypeList = Tuple; - -//======================================================================================// - -template -class IsEmpty -{ -public: - static constexpr bool value = false; -}; - -template <> -class IsEmpty> -{ -public: - static constexpr bool value = true; -}; - -template -class PushBackT; - -template -class PushBackT, NewElement> -{ -public: - using Type = Tuple; -}; - -template -using PushBack = typename PushBackT::Type; - -template -class PopFrontT; - -template -class PopFrontT> -{ -public: - using Type = std::tuple; -}; - -template -using PopFront = typename PopFrontT::Type; - -template -class PushFrontT; - -template -class PushFrontT, Element> -{ -public: - using Type = std::tuple; -}; - -template -using PushFront = typename PushFrontT::Type; - -template -PushFront, V> -pushFront(std::tuple const& tuple, V const& value) -{ - return PushFront, V>(value, tuple); -} - -template -struct Valuelist -{}; - -template -struct Front; - -template -struct Front -{ - using Type = FrontT; -}; - -template -struct Back; - -template -struct Back -{ // ERROR: pack expansion not at the end of - using Type = BackT; // template argument list -}; - -//======================================================================================// - -template class MetaFun, - bool Empty = IsEmpty::value> -class TransformT; - -// recursive case: -template class MetaFun> -class TransformT -: public PushFrontT, MetaFun>::Type, - typename MetaFun>::Type> -{}; - -// basis case: -template class MetaFun> -class TransformT -{ -public: - using Type = List; -}; - -template class MetaFun> -using Transform = typename TransformT::Type; - -template class MetaFun> -class TransformT, MetaFun, false> -{ -public: - using Type = Tuple::Type...>; -}; - -template -struct ForwardTupleAsArgs -{ - template - static inline auto forward(Func&& func, Head&& head, Tail&&... tail) - -> decltype(ForwardTupleAsArgs::forward( - std::forward(func), std::forward(head), - std::get(std::forward(head)), std::forward(tail)...)) - { - return ForwardTupleAsArgs::forward( - std::forward(func), std::forward(head), - std::get(std::forward(head)), std::forward(tail)...); - } -}; - -//======================================================================================// - -template <> -struct ForwardTupleAsArgs<0> -{ - template - static inline auto forward(Func&& func, Head&&, Tail&&... tail) - -> decltype(std::forward(func)(std::forward(tail)...)) - { - return std::forward(func)(std::forward(tail)...); - } -}; - -//======================================================================================// - -template -struct ForEachTupleArg -{ - template - static inline auto apply(Func&& func, Head&& head) - { - std::forward(func)(std::forward(head)); - } - - template - static inline void apply(Func&& func, Head&& head, Tail&&... tail) - { - std::forward(func)(std::forward(head)); - ForEachTupleArg::apply(std::forward(func), - std::forward(tail)...); - } -}; - -//======================================================================================// - -template -void -for_each_tuple_arg(Func&& func, Tuple&& _tuple) -{ - ForEachTupleArg::value>::apply( - std::forward(func), std::forward(_tuple)); -} - -//======================================================================================// - -template -inline auto -InvokeSequence_impl(const Func& func, const Tuple& data) -{ - func(std::get(data)); -} - -//======================================================================================// - -template -inline auto -InvokeSequence_impl(const Func& func, const Tuple& data) -{ - func(std::get(data)); - InvokeSequence_impl(func, data); -} - -//======================================================================================// - -template ::value, - typename Indices = std::make_index_sequence> -inline auto -InvokeSequence(const Func& func, const Tuple& data) -{ - return InvokeSequence_impl(func, data); -} - -//======================================================================================// - -// Convert array into a tuple -template -inline auto -ContainerToTuple_impl(const Container& tasks, std::index_sequence) -{ - return std::make_tuple(tasks[N]...); -} - -//======================================================================================// - -template > -inline auto -ContainerToTuple(const Container& tasks) -{ - return ContainerToTuple_impl(tasks, Indices{}); -} - -//======================================================================================// - -template -struct tuple_subset -{ - static std::tuple<> get(const std::tuple<>&) { return std::tuple<>{}; } - - template - static std::tuple get(const std::tuple& t) - { - return std::tuple{ std::get(t)... }; - } -}; - -template -inline void -tuple_transform(const std::function& pred, - const std::tuple& data) -{ - pred(std::get<0>(data)); -} - -template -inline void -tuple_transform(const std::function& pred, - const std::tuple& data) -{ - pred(std::get<0>(data)); - auto subset = tuple_subset::template get(data); - tuple_transform(pred, std::forward(subset)); -} - -template -struct transform_tuple -{ - using Function = std::function; - template - static void apply(const Function& func, const TupleType& t) - { - func(std::get<0>(t)); - PopFront nt = std::tuple{ std::get(t)... }; - transform_tuple::apply(func, nt); - } -}; - -template -struct transform_tuple -{ - using Function = std::function; - template - static void apply(const Function& func, const TupleType& t) - { - func(std::get<0>(t)); - } -}; - -//======================================================================================// - -template -auto -applyImpl(Func func, std::tuple const& t, Valuelist) - -> decltype(func(std::get(t)...)) -{ - return func(std::get(t)...); -} - -template -auto -apply(Func func, std::tuple const& t) - -> decltype(applyImpl(func, t, std::make_index_sequence())) -{ - return applyImpl(func, t, std::make_index_sequence()); -} - -} // namespace PTL diff --git a/source/externals/ptl/include/PTL/Types.hh b/source/externals/ptl/include/PTL/Types.hh index cf9a7b3c44..75b197216a 100644 --- a/source/externals/ptl/include/PTL/Types.hh +++ b/source/externals/ptl/include/PTL/Types.hh @@ -21,10 +21,6 @@ #pragma once -#ifndef G4GMAKE -# include "PTL/Config.hh" -#endif - #if defined(__APPLE__) || defined(__MACH__) # if !defined(PTL_MACOS) # define PTL_MACOS 1 @@ -88,76 +84,10 @@ #if !defined(PTL_DEFAULT_OBJECT) # define PTL_DEFAULT_OBJECT(NAME) \ - NAME() = default; \ - ~NAME() = default; \ - NAME(const NAME&) = default; \ - NAME(NAME&&) = default; \ + NAME() = default; \ + ~NAME() = default; \ + NAME(const NAME&) = default; \ + NAME(NAME&&) = default; \ NAME& operator=(const NAME&) = default; \ - NAME& operator=(NAME&&) = default; + NAME& operator=(NAME&&) = default; #endif - -#include -#include -#include -#include -#include -#include - -namespace PTL -{ -//--------------------------------------------------------------------------------------// -// -namespace api -{ -struct native -{}; -struct tbb -{}; -} // namespace api -// -//--------------------------------------------------------------------------------------// -// -template , - typename Pair = std::pair> -Pair& -GetSharedPointerPair() -{ - static auto _master = std::make_shared(); - static std::atomic _count(0); - static thread_local auto _inst = - Pair(_master, Ptr((_count++ == 0) ? nullptr : new Tp())); - return _inst; -} -// -//--------------------------------------------------------------------------------------// -// -template , - typename Pair = std::pair> -Ptr -GetSharedPointerPairInstance() -{ - static thread_local auto& _pinst = GetSharedPointerPair(); - static thread_local auto& _inst = _pinst.second.get() ? _pinst.second : _pinst.first; - return _inst; -} -// -//--------------------------------------------------------------------------------------// -// -template , - typename Pair = std::pair> -Ptr -GetSharedPointerPairMasterInstance() -{ - static auto& _pinst = GetSharedPointerPair(); - static auto _inst = _pinst.first; - return _inst; -} - -//======================================================================================// - -} // namespace PTL - -// Forward declation of void type argument for usage in direct object -// persistency to define fake default constructors -// -class __void__; diff --git a/source/externals/ptl/include/PTL/UserTaskQueue.hh b/source/externals/ptl/include/PTL/UserTaskQueue.hh index b69cd6ff3d..0fdf1dc32d 100644 --- a/source/externals/ptl/include/PTL/UserTaskQueue.hh +++ b/source/externals/ptl/include/PTL/UserTaskQueue.hh @@ -26,70 +26,65 @@ #pragma once #include "PTL/Globals.hh" +#include "PTL/TaskSubQueue.hh" #include "PTL/Threading.hh" -#include "PTL/Types.hh" +#include "PTL/VTask.hh" #include "PTL/VUserTaskQueue.hh" #include -#include -#include +#include #include -#include #include -#include -#include +#include namespace PTL { -class VTask; -class TaskSubQueue; // definition in UserTaskQueue.icc - class UserTaskQueue : public VUserTaskQueue { public: - typedef std::shared_ptr task_pointer; - typedef std::vector TaskSubQueueContainer; - typedef std::default_random_engine random_engine_t; - typedef std::uniform_int_distribution int_dist_t; + using task_pointer = std::shared_ptr; + using TaskSubQueueContainer = std::vector; + using random_engine_t = std::default_random_engine; + using int_dist_t = std::uniform_int_distribution; public: // Constructor and Destructors UserTaskQueue(intmax_t nworkers = -1, UserTaskQueue* = nullptr); // Virtual destructors are required by abstract classes // so add it by default, just in case - virtual ~UserTaskQueue() override; + ~UserTaskQueue() override; public: // Virtual function for getting a task from the queue - virtual task_pointer GetTask(intmax_t subq = -1, intmax_t nitr = -1) override; + task_pointer GetTask(intmax_t subq = -1, intmax_t nitr = -1) override; // Virtual function for inserting a task into the queue - virtual intmax_t InsertTask(task_pointer&&, ThreadData* = nullptr, - intmax_t subq = -1) override PTL_NO_SANITIZE_THREAD; + intmax_t InsertTask(task_pointer&&, ThreadData* = nullptr, + intmax_t subq = -1) override PTL_NO_SANITIZE_THREAD; // if executing only tasks in threads bin task_pointer GetThreadBinTask(); // Overload this function to hold threads - virtual void Wait() override {} - virtual void resize(intmax_t) override; + void Wait() override {} + void resize(intmax_t) override; - virtual bool empty() const override; - virtual size_type size() const override; + bool empty() const override; + size_type size() const override; - virtual size_type bin_size(size_type bin) const override; - virtual bool bin_empty(size_type bin) const override; + size_type bin_size(size_type bin) const override; + bool bin_empty(size_type bin) const override; - inline bool true_empty() const override; - inline size_type true_size() const override; + bool true_empty() const override; + size_type true_size() const override; - virtual void ExecuteOnAllThreads(ThreadPool* tp, function_type f) override; + void ExecuteOnAllThreads(ThreadPool* tp, function_type f) override; - virtual void ExecuteOnSpecificThreads(ThreadIdSet tid_set, ThreadPool* tp, - function_type f) override; + void ExecuteOnSpecificThreads(ThreadIdSet tid_set, ThreadPool* tp, + function_type f) override; - virtual VUserTaskQueue* clone() override; + VUserTaskQueue* clone() override; - virtual intmax_t GetThreadBin() const override; + intmax_t GetThreadBin() const override; protected: intmax_t GetInsertBin() const; @@ -110,32 +105,26 @@ private: std::vector::iterator m_rand_itr = {}; }; -} // namespace PTL - -//======================================================================================// - -#include "PTL/UserTaskQueue.icc" - //======================================================================================// inline bool -PTL::UserTaskQueue::empty() const +UserTaskQueue::empty() const { return (m_ntasks->load(std::memory_order_relaxed) == 0); } //======================================================================================// -inline PTL::UserTaskQueue::size_type -PTL::UserTaskQueue::size() const +inline UserTaskQueue::size_type +UserTaskQueue::size() const { return m_ntasks->load(std::memory_order_relaxed); } //======================================================================================// -inline PTL::UserTaskQueue::size_type -PTL::UserTaskQueue::bin_size(size_type bin) const +inline UserTaskQueue::size_type +UserTaskQueue::bin_size(size_type bin) const { return (*m_subqueues)[bin]->size(); } @@ -143,7 +132,7 @@ PTL::UserTaskQueue::bin_size(size_type bin) const //======================================================================================// inline bool -PTL::UserTaskQueue::bin_empty(size_type bin) const +UserTaskQueue::bin_empty(size_type bin) const { return (*m_subqueues)[bin]->empty(); } @@ -151,7 +140,7 @@ PTL::UserTaskQueue::bin_empty(size_type bin) const //======================================================================================// inline bool -PTL::UserTaskQueue::true_empty() const +UserTaskQueue::true_empty() const { for(const auto& itr : *m_subqueues) if(!itr->empty()) @@ -161,8 +150,8 @@ PTL::UserTaskQueue::true_empty() const //======================================================================================// -inline PTL::UserTaskQueue::size_type -PTL::UserTaskQueue::true_size() const +inline UserTaskQueue::size_type +UserTaskQueue::true_size() const { size_type _n = 0; for(const auto& itr : *m_subqueues) @@ -171,3 +160,4 @@ PTL::UserTaskQueue::true_size() const } //======================================================================================// +} // namespace PTL diff --git a/source/externals/ptl/include/PTL/Utility.hh b/source/externals/ptl/include/PTL/Utility.hh index 8f03b7a4c7..b70c5738f7 100644 --- a/source/externals/ptl/include/PTL/Utility.hh +++ b/source/externals/ptl/include/PTL/Utility.hh @@ -21,9 +21,7 @@ #pragma once -#include "PTL/Types.hh" - -#include +#include #include #include #include @@ -31,9 +29,10 @@ #include #include #include -#include +#include // IWYU pragma: keep #include #include +#include namespace PTL { @@ -42,7 +41,7 @@ namespace PTL // template void -ConsumeParameters(Args...) +ConsumeParameters(Args&&...) {} //--------------------------------------------------------------------------------------// @@ -60,10 +59,10 @@ using EnvChoiceList = std::set>; class EnvSettings { public: - typedef std::mutex mutex_t; - typedef std::string string_t; - typedef std::multimap env_map_t; - typedef std::pair env_pair_t; + using mutex_t = std::mutex; + using string_t = std::string; + using env_map_t = std::multimap; + using env_pair_t = std::pair; public: static EnvSettings* GetInstance() @@ -190,7 +189,7 @@ GetEnv(const std::string& env_id, bool _default) else { for(auto& itr : var) - itr = tolower(itr); + itr = (char)std::tolower(itr); if(var == "off" || var == "false") val = false; } @@ -248,7 +247,7 @@ GetEnv(const std::string& env_id, const EnvChoiceList& _choices, Tp _default { auto asupper = [](std::string var) { for(auto& itr : var) - itr = toupper(itr); + itr = (char)std::toupper(itr); return var; }; @@ -317,7 +316,7 @@ GetChoice(const EnvChoiceList& _choices, const std::string& str_var) { auto asupper = [](std::string var) { for(auto& itr : var) - itr = toupper(itr); + itr = (char)std::toupper(itr); return var; }; diff --git a/source/externals/ptl/include/PTL/VTask.hh b/source/externals/ptl/include/PTL/VTask.hh index fb2116c3d3..72318088dc 100644 --- a/source/externals/ptl/include/PTL/VTask.hh +++ b/source/externals/ptl/include/PTL/VTask.hh @@ -29,36 +29,28 @@ #pragma once -#include "PTL/AutoLock.hh" -#include "PTL/Globals.hh" -#include "PTL/Threading.hh" - -#include #include #include #include -#include -#include #include -#include -#include namespace PTL { -class ThreadPool; - //======================================================================================// /// \brief VTask is the abstract class stored in thread_pool class VTask { public: - typedef std::thread::id tid_type; - typedef size_t size_type; - typedef std::function void_func_t; + using tid_type = std::thread::id; + using size_type = size_t; + using void_func_t = std::function; public: - VTask(bool _is_native, intmax_t _depth); + VTask(bool _is_native, intmax_t _depth) + : m_is_native{ _is_native } + , m_depth{ _depth } + {} VTask() = default; virtual ~VTask() = default; diff --git a/source/externals/ptl/include/PTL/VUserTaskQueue.hh b/source/externals/ptl/include/PTL/VUserTaskQueue.hh index ac0e536639..82bf0a6702 100644 --- a/source/externals/ptl/include/PTL/VUserTaskQueue.hh +++ b/source/externals/ptl/include/PTL/VUserTaskQueue.hh @@ -29,14 +29,12 @@ #include "PTL/Globals.hh" #include "PTL/Threading.hh" -#include "PTL/Types.hh" -#include +#include +#include +#include #include #include -#include -#include -#include namespace PTL { @@ -47,11 +45,11 @@ class ThreadData; class VUserTaskQueue { public: - typedef std::shared_ptr task_pointer; - typedef std::atomic AtomicInt; - typedef uintmax_t size_type; - typedef std::function function_type; - typedef std::set ThreadIdSet; + using task_pointer = std::shared_ptr; + using AtomicInt = std::atomic; + using size_type = uintmax_t; + using function_type = std::function; + using ThreadIdSet = std::set; public: // Constructor - accepting the number of workers diff --git a/source/externals/ptl/src/TaskGroup.cc b/source/externals/ptl/src/TaskGroup.cc index 2a8a4bbb67..d2702c0085 100644 --- a/source/externals/ptl/src/TaskGroup.cc +++ b/source/externals/ptl/src/TaskGroup.cc @@ -29,12 +29,10 @@ // --------------------------------------------------------------- #include "PTL/TaskGroup.hh" -#include "PTL/Globals.hh" -#include "PTL/Task.hh" + #include "PTL/TaskRunManager.hh" #include "PTL/ThreadData.hh" #include "PTL/ThreadPool.hh" -#include "PTL/VTask.hh" //======================================================================================// diff --git a/source/externals/ptl/src/TaskRunManager.cc b/source/externals/ptl/src/TaskRunManager.cc index b1f6c657d4..b4c79e519e 100644 --- a/source/externals/ptl/src/TaskRunManager.cc +++ b/source/externals/ptl/src/TaskRunManager.cc @@ -18,19 +18,17 @@ // // --------------------------------------------------------------- // Tasking class implementation - #include "PTL/TaskRunManager.hh" -#include "PTL/AutoLock.hh" -#include "PTL/Task.hh" -#include "PTL/TaskGroup.hh" + +#ifndef G4GMAKE +#include "PTL/Config.hh" +#endif #include "PTL/TaskManager.hh" #include "PTL/ThreadPool.hh" #include "PTL/Threading.hh" #include "PTL/Utility.hh" -#include -#include -#include +#include using namespace PTL; diff --git a/source/externals/ptl/src/ThreadData.cc b/source/externals/ptl/src/ThreadData.cc index 698d3e3806..b8c71d2414 100644 --- a/source/externals/ptl/src/ThreadData.cc +++ b/source/externals/ptl/src/ThreadData.cc @@ -22,11 +22,8 @@ #include "PTL/ThreadData.hh" #include "PTL/ThreadPool.hh" -#include "PTL/Threading.hh" #include "PTL/VUserTaskQueue.hh" -#include - using namespace PTL; //======================================================================================// diff --git a/source/externals/ptl/src/ThreadPool.cc b/source/externals/ptl/src/ThreadPool.cc index 1bcefad146..15d672f4cf 100644 --- a/source/externals/ptl/src/ThreadPool.cc +++ b/source/externals/ptl/src/ThreadPool.cc @@ -29,14 +29,16 @@ // --------------------------------------------------------------- #include "PTL/ThreadPool.hh" -#include "PTL/Globals.hh" #include "PTL/ThreadData.hh" #include "PTL/Threading.hh" #include "PTL/UserTaskQueue.hh" #include "PTL/Utility.hh" #include "PTL/VUserTaskQueue.hh" -#include +#include +#include +#include +#include #include using namespace PTL; @@ -127,7 +129,7 @@ ThreadPool::start_thread(ThreadPool* tp, thread_data_t* _data, intmax_t _idx) if(_idx < 0) _idx = f_thread_ids().size(); f_thread_ids()[std::this_thread::get_id()] = _idx; - Threading::SetThreadId(_idx); + Threading::SetThreadId((int)_idx); _data->emplace_back(_thr_data); } thread_data() = _thr_data.get(); @@ -159,7 +161,7 @@ ThreadPool::set_use_tbb(bool enable) #if defined(PTL_USE_TBB) f_use_tbb() = enable; #else - ConsumeParameters(enable); + ConsumeParameters(enable); #endif } @@ -171,7 +173,7 @@ ThreadPool::set_default_use_cpu_affinity(bool enable) #if defined(PTL_USE_TBB) f_use_cpu_affinity() = enable; #else - ConsumeParameters(enable); + ConsumeParameters(enable); #endif } @@ -227,7 +229,7 @@ ThreadPool::add_thread_id(ThreadId _tid) { auto _idx = f_thread_ids().size(); f_thread_ids()[_tid] = _idx; - Threading::SetThreadId(_idx); + Threading::SetThreadId((int)_idx); } return f_thread_ids().at(_tid); } @@ -314,6 +316,13 @@ ThreadPool::~ThreadPool() itr.join(); m_threads.clear(); } + + // delete owned resources + if(m_delete_task_queue) + delete m_task_queue; + + delete m_tbb_task_arena; + delete m_tbb_task_group; } //======================================================================================// @@ -329,8 +338,7 @@ ThreadPool::is_initialized() const void ThreadPool::record_entry() { - if(m_thread_active) - ++(*m_thread_active); + ++(*m_thread_active); } //======================================================================================// @@ -338,8 +346,7 @@ ThreadPool::record_entry() void ThreadPool::record_exit() { - if(m_thread_active) - --(*m_thread_active); + --(*m_thread_active); } //======================================================================================// @@ -357,7 +364,7 @@ ThreadPool::set_affinity(intmax_t i, Thread& _thread) const std::cerr << "[PTL::ThreadPool] Setting pin affinity for thread " << get_thread_id(_thread.get_id()) << " to " << _pin << std::endl; } - Threading::SetPinAffinity(_pin, native_thread); + Threading::SetPinAffinity((int)_pin, native_thread); } catch(std::runtime_error& e) { std::cerr << "[PTL::ThreadPool] Error setting pin affinity: " << e.what() @@ -867,7 +874,7 @@ ThreadPool::execute_thread(VUserTaskQueue* _task_queue) if(_task_queue->true_size() == 0) { - if(m_thread_awake && m_thread_awake->load() > 0) + if(m_thread_awake->load() > 0) --(*m_thread_awake); // lock before sleeping on condition @@ -887,7 +894,7 @@ ThreadPool::execute_thread(VUserTaskQueue* _task_queue) _task_lock.unlock(); // notify that is awake - if(m_thread_awake && m_thread_awake->load() < m_pool_size) + if(m_thread_awake->load() < m_pool_size) ++(*m_thread_awake); } else diff --git a/source/externals/ptl/src/Threading.cc b/source/externals/ptl/src/Threading.cc index 9c547cdcf8..324d6c12d7 100644 --- a/source/externals/ptl/src/Threading.cc +++ b/source/externals/ptl/src/Threading.cc @@ -23,16 +23,11 @@ // #include "PTL/Threading.hh" -#include "PTL/AutoLock.hh" -#include "PTL/Globals.hh" #include "PTL/Types.hh" +#include "PTL/Utility.hh" #if defined(PTL_WINDOWS) # include -#elif defined(PTL_UNIX) -# include -# include -# include #endif #if defined(PTL_MACOS) @@ -43,8 +38,6 @@ # include #endif -#include - using namespace PTL; //======================================================================================// diff --git a/source/externals/ptl/src/Timer.cc b/source/externals/ptl/src/Timer.cc index b66475c6f4..e7ca4cdf76 100644 --- a/source/externals/ptl/src/Timer.cc +++ b/source/externals/ptl/src/Timer.cc @@ -24,20 +24,13 @@ #include "PTL/Timer.hh" -#include -#include #include -#include using namespace PTL; -#if defined(IRIX6_2) -# if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED == 1) -# define __vfork vfork -# endif -#endif - -#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) +#if !(defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)) +# include +#else # include # include @@ -88,12 +81,6 @@ times(struct tms* t) //======================================================================================// -Timer::Timer() -: fValidTimes(false) -{} - -//======================================================================================// - double Timer::GetRealElapsed() const { diff --git a/source/externals/ptl/src/UserTaskQueue.cc b/source/externals/ptl/src/UserTaskQueue.cc index 7c6aa5d996..ea30375ea2 100644 --- a/source/externals/ptl/src/UserTaskQueue.cc +++ b/source/externals/ptl/src/UserTaskQueue.cc @@ -24,13 +24,22 @@ // --------------------------------------------------------------- #include "PTL/UserTaskQueue.hh" -#include "PTL/Task.hh" + +#include "PTL/AutoLock.hh" #include "PTL/TaskGroup.hh" +#include "PTL/ThreadData.hh" #include "PTL/ThreadPool.hh" #include "PTL/Utility.hh" #include +#include +#include +#include +#include #include +#include +#include +#include using namespace PTL; @@ -38,7 +47,7 @@ using namespace PTL; UserTaskQueue::UserTaskQueue(intmax_t nworkers, UserTaskQueue* parent) : VUserTaskQueue(nworkers) -, m_is_clone((parent) ? true : false) +, m_is_clone((parent) != nullptr) , m_thread_bin((parent) ? (ThreadPool::get_this_thread_id() % (nworkers + 1)) : 0) , m_insert_bin((parent) ? (ThreadPool::get_this_thread_id() % (nworkers + 1)) : 0) , m_hold((parent) ? parent->m_hold : new std::atomic_bool(false)) diff --git a/source/externals/ptl/src/VTask.cc b/source/externals/ptl/src/VTask.cc deleted file mode 100644 index c30f9a5a97..0000000000 --- a/source/externals/ptl/src/VTask.cc +++ /dev/null @@ -1,46 +0,0 @@ -// -// MIT License -// Copyright (c) 2020 Jonathan R. Madsen -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED -// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -// --------------------------------------------------------------- -// Tasking class implementation -// -// Class Description: -// -// This file creates an abstract base class for the thread-pool tasking -// system -// -// --------------------------------------------------------------- -// Author: Jonathan Madsen (Feb 13th 2018) -// --------------------------------------------------------------- - -#include "PTL/VTask.hh" -#include "PTL/ThreadData.hh" -#include "PTL/ThreadPool.hh" - -#include - -using namespace PTL; - -//======================================================================================// - -VTask::VTask(bool _is_native, intmax_t _depth) -: m_is_native{ _is_native } -, m_depth{ _depth } -{} - -//======================================================================================// diff --git a/source/externals/ptl/src/VUserTaskQueue.cc b/source/externals/ptl/src/VUserTaskQueue.cc index bbcdebfa2e..d6deff0473 100644 --- a/source/externals/ptl/src/VUserTaskQueue.cc +++ b/source/externals/ptl/src/VUserTaskQueue.cc @@ -27,6 +27,9 @@ #include "PTL/VUserTaskQueue.hh" #include "PTL/TaskRunManager.hh" +#include "PTL/Utility.hh" // for PTL +#include // for intmax_t +#include // for thread using namespace PTL; diff --git a/source/externals/zlib/CMakeLists.txt b/source/externals/zlib/CMakeLists.txt index 5af42ff61b..aefd0e9c2f 100644 --- a/source/externals/zlib/CMakeLists.txt +++ b/source/externals/zlib/CMakeLists.txt @@ -73,8 +73,13 @@ configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/zconf.h.cmakein # ----- # - Geant4 specific part to integrate # -# headers listed under Sources are internal zlib headers -# Private headers are in src! +# Intel/Clang may warn about -Wdeprecated-non-prototype, but per https://github.com/madler/zlib/issues/633 +# we suppress this warning if the compiler supports the flag +include(CheckCCompilerFlag) +check_c_compiler_flag("-Wno-deprecated-non-prototype" G4ZLIB_NEEDS_DNP) + +# Headers listed under Sources are internal zlib headers +# Private headers are in src! set(ZLIB_PUBLIC_HDRS ${CMAKE_CURRENT_BINARY_DIR}/zconf.h include/zlib.h ) @@ -107,7 +112,7 @@ set(ZLIB_SRCS geant4_add_external_library(NAME G4zlib SOURCES ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS} ${ZLIB_SRCS}) -# Add header paths for private/generated files in Build +# Add header paths for private/generated files in Build, plus flags if present foreach(__g4zlib_target G4zlib G4zlib-static) if(TARGET ${__g4zlib_target}) target_include_directories(${__g4zlib_target} @@ -116,6 +121,10 @@ foreach(__g4zlib_target G4zlib G4zlib-static) PRIVATE $ ) + + if(G4ZLIB_NEEDS_DNP) + target_compile_options(${__g4zlib_target} PRIVATE "-Wno-deprecated-non-prototype") + endif() endif() endforeach() diff --git a/source/externals/zlib/History b/source/externals/zlib/History index d577a4fd4d..a32f159c02 100644 --- a/source/externals/zlib/History +++ b/source/externals/zlib/History @@ -4,6 +4,16 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-10-08 Ben Morgan (zlib-V11-00-04) +- Suppress deprecated-non-prototype warnings for compilers that check this. + +## 2022-10-07 Ben Morgan (zlib-V11-00-03) +- Import zlib 1.2.12 sources, retaining prior Geant4 patches. + +## 2022-09-22 Ben Morgan (zlib-V11-00-02) +- Apply patch for Zlib from [GitHub PR 43](https://github.com/Geant4/geant4/pull/43) + - Addresses Valgrind warnings that aren't ignored due to name change of library + ## 2022-01-28 Ben Morgan (zlib-V11-00-01) - Replace `geant4_global_library_target` with direct file inclusion and call to `geant4_add_category` to define library build from source modules. diff --git a/source/externals/zlib/include/crc32.h b/source/externals/zlib/include/crc32.h index 9e0c778102..137df68d61 100644 --- a/source/externals/zlib/include/crc32.h +++ b/source/externals/zlib/include/crc32.h @@ -2,440 +2,9445 @@ * Generated automatically by crc32.c */ -local const z_crc_t FAR crc_table[TBLS][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 -#ifdef BYFOUR - }, - { - 0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL, - 0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL, - 0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL, - 0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL, - 0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL, - 0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL, - 0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL, - 0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL, - 0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL, - 0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL, - 0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL, - 0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL, - 0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL, - 0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL, - 0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL, - 0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL, - 0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL, - 0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL, - 0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL, - 0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL, - 0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL, - 0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL, - 0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL, - 0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL, - 0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL, - 0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL, - 0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL, - 0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL, - 0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL, - 0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL, - 0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL, - 0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL, - 0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL, - 0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL, - 0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL, - 0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL, - 0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL, - 0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL, - 0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL, - 0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL, - 0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL, - 0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL, - 0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL, - 0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL, - 0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL, - 0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL, - 0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL, - 0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL, - 0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL, - 0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL, - 0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL, - 0x9324fd72UL - }, - { - 0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL, - 0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL, - 0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL, - 0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL, - 0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL, - 0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL, - 0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL, - 0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL, - 0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL, - 0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL, - 0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL, - 0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL, - 0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL, - 0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL, - 0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL, - 0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL, - 0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL, - 0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL, - 0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL, - 0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL, - 0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL, - 0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL, - 0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL, - 0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL, - 0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL, - 0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL, - 0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL, - 0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL, - 0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL, - 0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL, - 0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL, - 0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL, - 0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL, - 0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL, - 0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL, - 0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL, - 0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL, - 0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL, - 0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL, - 0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL, - 0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL, - 0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL, - 0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL, - 0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL, - 0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL, - 0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL, - 0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL, - 0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL, - 0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL, - 0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL, - 0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL, - 0xbe9834edUL - }, - { - 0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL, - 0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL, - 0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL, - 0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL, - 0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL, - 0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL, - 0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL, - 0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL, - 0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL, - 0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL, - 0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL, - 0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL, - 0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL, - 0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL, - 0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL, - 0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL, - 0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL, - 0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL, - 0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL, - 0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL, - 0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL, - 0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL, - 0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL, - 0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL, - 0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL, - 0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL, - 0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL, - 0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL, - 0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL, - 0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL, - 0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL, - 0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL, - 0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL, - 0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL, - 0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL, - 0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL, - 0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL, - 0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL, - 0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL, - 0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL, - 0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL, - 0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL, - 0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL, - 0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL, - 0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL, - 0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL, - 0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL, - 0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL, - 0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL, - 0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL, - 0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL, - 0xde0506f1UL - }, - { - 0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL, - 0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL, - 0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL, - 0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL, - 0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL, - 0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL, - 0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL, - 0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL, - 0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL, - 0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL, - 0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL, - 0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL, - 0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL, - 0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL, - 0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL, - 0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL, - 0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL, - 0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL, - 0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL, - 0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL, - 0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL, - 0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL, - 0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL, - 0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL, - 0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL, - 0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL, - 0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL, - 0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL, - 0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL, - 0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL, - 0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL, - 0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL, - 0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL, - 0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL, - 0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL, - 0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL, - 0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL, - 0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL, - 0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL, - 0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL, - 0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL, - 0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL, - 0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL, - 0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL, - 0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL, - 0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL, - 0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL, - 0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL, - 0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL, - 0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL, - 0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL, - 0x8def022dUL - }, - { - 0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL, - 0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL, - 0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL, - 0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL, - 0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL, - 0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL, - 0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL, - 0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL, - 0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL, - 0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL, - 0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL, - 0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL, - 0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL, - 0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL, - 0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL, - 0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL, - 0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL, - 0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL, - 0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL, - 0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL, - 0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL, - 0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL, - 0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL, - 0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL, - 0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL, - 0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL, - 0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL, - 0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL, - 0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL, - 0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL, - 0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL, - 0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL, - 0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL, - 0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL, - 0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL, - 0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL, - 0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL, - 0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL, - 0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL, - 0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL, - 0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL, - 0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL, - 0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL, - 0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL, - 0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL, - 0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL, - 0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL, - 0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL, - 0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL, - 0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL, - 0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL, - 0x72fd2493UL - }, - { - 0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL, - 0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL, - 0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL, - 0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL, - 0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL, - 0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL, - 0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL, - 0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL, - 0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL, - 0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL, - 0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL, - 0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL, - 0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL, - 0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL, - 0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL, - 0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL, - 0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL, - 0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL, - 0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL, - 0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL, - 0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL, - 0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL, - 0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL, - 0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL, - 0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL, - 0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL, - 0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL, - 0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL, - 0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL, - 0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL, - 0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL, - 0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL, - 0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL, - 0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL, - 0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL, - 0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL, - 0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL, - 0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL, - 0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL, - 0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL, - 0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL, - 0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL, - 0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL, - 0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL, - 0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL, - 0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL, - 0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL, - 0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL, - 0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL, - 0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL, - 0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL, - 0xed3498beUL - }, - { - 0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL, - 0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL, - 0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL, - 0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL, - 0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL, - 0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL, - 0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL, - 0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL, - 0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL, - 0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL, - 0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL, - 0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL, - 0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL, - 0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL, - 0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL, - 0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL, - 0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL, - 0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL, - 0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL, - 0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL, - 0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL, - 0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL, - 0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL, - 0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL, - 0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL, - 0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL, - 0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL, - 0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL, - 0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL, - 0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL, - 0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL, - 0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL, - 0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL, - 0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL, - 0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL, - 0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL, - 0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL, - 0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL, - 0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL, - 0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL, - 0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL, - 0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL, - 0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL, - 0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL, - 0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL, - 0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL, - 0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL, - 0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL, - 0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL, - 0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL, - 0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL, - 0xf10605deUL +local const z_crc_t FAR crc_table[] = { + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, + 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, + 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, + 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, + 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, + 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, + 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, + 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, + 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, + 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, + 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, + 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, + 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, + 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, + 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, + 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, + 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, + 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, + 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, + 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, + 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, + 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, + 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, + 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, + 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, + 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, + 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, + 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, + 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, + 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, + 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, + 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, + 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, + 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, + 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, + 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, + 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, + 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, + 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, + 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, + 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, + 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, + 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, + 0x2d02ef8d}; + +#ifdef W + +#if W == 8 + +local const z_word_t FAR crc_big_table[] = { + 0x0000000000000000, 0x9630077700000000, 0x2c610eee00000000, + 0xba51099900000000, 0x19c46d0700000000, 0x8ff46a7000000000, + 0x35a563e900000000, 0xa395649e00000000, 0x3288db0e00000000, + 0xa4b8dc7900000000, 0x1ee9d5e000000000, 0x88d9d29700000000, + 0x2b4cb60900000000, 0xbd7cb17e00000000, 0x072db8e700000000, + 0x911dbf9000000000, 0x6410b71d00000000, 0xf220b06a00000000, + 0x4871b9f300000000, 0xde41be8400000000, 0x7dd4da1a00000000, + 0xebe4dd6d00000000, 0x51b5d4f400000000, 0xc785d38300000000, + 0x56986c1300000000, 0xc0a86b6400000000, 0x7af962fd00000000, + 0xecc9658a00000000, 0x4f5c011400000000, 0xd96c066300000000, + 0x633d0ffa00000000, 0xf50d088d00000000, 0xc8206e3b00000000, + 0x5e10694c00000000, 0xe44160d500000000, 0x727167a200000000, + 0xd1e4033c00000000, 0x47d4044b00000000, 0xfd850dd200000000, + 0x6bb50aa500000000, 0xfaa8b53500000000, 0x6c98b24200000000, + 0xd6c9bbdb00000000, 0x40f9bcac00000000, 0xe36cd83200000000, + 0x755cdf4500000000, 0xcf0dd6dc00000000, 0x593dd1ab00000000, + 0xac30d92600000000, 0x3a00de5100000000, 0x8051d7c800000000, + 0x1661d0bf00000000, 0xb5f4b42100000000, 0x23c4b35600000000, + 0x9995bacf00000000, 0x0fa5bdb800000000, 0x9eb8022800000000, + 0x0888055f00000000, 0xb2d90cc600000000, 0x24e90bb100000000, + 0x877c6f2f00000000, 0x114c685800000000, 0xab1d61c100000000, + 0x3d2d66b600000000, 0x9041dc7600000000, 0x0671db0100000000, + 0xbc20d29800000000, 0x2a10d5ef00000000, 0x8985b17100000000, + 0x1fb5b60600000000, 0xa5e4bf9f00000000, 0x33d4b8e800000000, + 0xa2c9077800000000, 0x34f9000f00000000, 0x8ea8099600000000, + 0x18980ee100000000, 0xbb0d6a7f00000000, 0x2d3d6d0800000000, + 0x976c649100000000, 0x015c63e600000000, 0xf4516b6b00000000, + 0x62616c1c00000000, 0xd830658500000000, 0x4e0062f200000000, + 0xed95066c00000000, 0x7ba5011b00000000, 0xc1f4088200000000, + 0x57c40ff500000000, 0xc6d9b06500000000, 0x50e9b71200000000, + 0xeab8be8b00000000, 0x7c88b9fc00000000, 0xdf1ddd6200000000, + 0x492dda1500000000, 0xf37cd38c00000000, 0x654cd4fb00000000, + 0x5861b24d00000000, 0xce51b53a00000000, 0x7400bca300000000, + 0xe230bbd400000000, 0x41a5df4a00000000, 0xd795d83d00000000, + 0x6dc4d1a400000000, 0xfbf4d6d300000000, 0x6ae9694300000000, + 0xfcd96e3400000000, 0x468867ad00000000, 0xd0b860da00000000, + 0x732d044400000000, 0xe51d033300000000, 0x5f4c0aaa00000000, + 0xc97c0ddd00000000, 0x3c71055000000000, 0xaa41022700000000, + 0x10100bbe00000000, 0x86200cc900000000, 0x25b5685700000000, + 0xb3856f2000000000, 0x09d466b900000000, 0x9fe461ce00000000, + 0x0ef9de5e00000000, 0x98c9d92900000000, 0x2298d0b000000000, + 0xb4a8d7c700000000, 0x173db35900000000, 0x810db42e00000000, + 0x3b5cbdb700000000, 0xad6cbac000000000, 0x2083b8ed00000000, + 0xb6b3bf9a00000000, 0x0ce2b60300000000, 0x9ad2b17400000000, + 0x3947d5ea00000000, 0xaf77d29d00000000, 0x1526db0400000000, + 0x8316dc7300000000, 0x120b63e300000000, 0x843b649400000000, + 0x3e6a6d0d00000000, 0xa85a6a7a00000000, 0x0bcf0ee400000000, + 0x9dff099300000000, 0x27ae000a00000000, 0xb19e077d00000000, + 0x44930ff000000000, 0xd2a3088700000000, 0x68f2011e00000000, + 0xfec2066900000000, 0x5d5762f700000000, 0xcb67658000000000, + 0x71366c1900000000, 0xe7066b6e00000000, 0x761bd4fe00000000, + 0xe02bd38900000000, 0x5a7ada1000000000, 0xcc4add6700000000, + 0x6fdfb9f900000000, 0xf9efbe8e00000000, 0x43beb71700000000, + 0xd58eb06000000000, 0xe8a3d6d600000000, 0x7e93d1a100000000, + 0xc4c2d83800000000, 0x52f2df4f00000000, 0xf167bbd100000000, + 0x6757bca600000000, 0xdd06b53f00000000, 0x4b36b24800000000, + 0xda2b0dd800000000, 0x4c1b0aaf00000000, 0xf64a033600000000, + 0x607a044100000000, 0xc3ef60df00000000, 0x55df67a800000000, + 0xef8e6e3100000000, 0x79be694600000000, 0x8cb361cb00000000, + 0x1a8366bc00000000, 0xa0d26f2500000000, 0x36e2685200000000, + 0x95770ccc00000000, 0x03470bbb00000000, 0xb916022200000000, + 0x2f26055500000000, 0xbe3bbac500000000, 0x280bbdb200000000, + 0x925ab42b00000000, 0x046ab35c00000000, 0xa7ffd7c200000000, + 0x31cfd0b500000000, 0x8b9ed92c00000000, 0x1daede5b00000000, + 0xb0c2649b00000000, 0x26f263ec00000000, 0x9ca36a7500000000, + 0x0a936d0200000000, 0xa906099c00000000, 0x3f360eeb00000000, + 0x8567077200000000, 0x1357000500000000, 0x824abf9500000000, + 0x147ab8e200000000, 0xae2bb17b00000000, 0x381bb60c00000000, + 0x9b8ed29200000000, 0x0dbed5e500000000, 0xb7efdc7c00000000, + 0x21dfdb0b00000000, 0xd4d2d38600000000, 0x42e2d4f100000000, + 0xf8b3dd6800000000, 0x6e83da1f00000000, 0xcd16be8100000000, + 0x5b26b9f600000000, 0xe177b06f00000000, 0x7747b71800000000, + 0xe65a088800000000, 0x706a0fff00000000, 0xca3b066600000000, + 0x5c0b011100000000, 0xff9e658f00000000, 0x69ae62f800000000, + 0xd3ff6b6100000000, 0x45cf6c1600000000, 0x78e20aa000000000, + 0xeed20dd700000000, 0x5483044e00000000, 0xc2b3033900000000, + 0x612667a700000000, 0xf71660d000000000, 0x4d47694900000000, + 0xdb776e3e00000000, 0x4a6ad1ae00000000, 0xdc5ad6d900000000, + 0x660bdf4000000000, 0xf03bd83700000000, 0x53aebca900000000, + 0xc59ebbde00000000, 0x7fcfb24700000000, 0xe9ffb53000000000, + 0x1cf2bdbd00000000, 0x8ac2baca00000000, 0x3093b35300000000, + 0xa6a3b42400000000, 0x0536d0ba00000000, 0x9306d7cd00000000, + 0x2957de5400000000, 0xbf67d92300000000, 0x2e7a66b300000000, + 0xb84a61c400000000, 0x021b685d00000000, 0x942b6f2a00000000, + 0x37be0bb400000000, 0xa18e0cc300000000, 0x1bdf055a00000000, + 0x8def022d00000000}; + +#else /* W == 4 */ + +local const z_word_t FAR crc_big_table[] = { + 0x00000000, 0x96300777, 0x2c610eee, 0xba510999, 0x19c46d07, + 0x8ff46a70, 0x35a563e9, 0xa395649e, 0x3288db0e, 0xa4b8dc79, + 0x1ee9d5e0, 0x88d9d297, 0x2b4cb609, 0xbd7cb17e, 0x072db8e7, + 0x911dbf90, 0x6410b71d, 0xf220b06a, 0x4871b9f3, 0xde41be84, + 0x7dd4da1a, 0xebe4dd6d, 0x51b5d4f4, 0xc785d383, 0x56986c13, + 0xc0a86b64, 0x7af962fd, 0xecc9658a, 0x4f5c0114, 0xd96c0663, + 0x633d0ffa, 0xf50d088d, 0xc8206e3b, 0x5e10694c, 0xe44160d5, + 0x727167a2, 0xd1e4033c, 0x47d4044b, 0xfd850dd2, 0x6bb50aa5, + 0xfaa8b535, 0x6c98b242, 0xd6c9bbdb, 0x40f9bcac, 0xe36cd832, + 0x755cdf45, 0xcf0dd6dc, 0x593dd1ab, 0xac30d926, 0x3a00de51, + 0x8051d7c8, 0x1661d0bf, 0xb5f4b421, 0x23c4b356, 0x9995bacf, + 0x0fa5bdb8, 0x9eb80228, 0x0888055f, 0xb2d90cc6, 0x24e90bb1, + 0x877c6f2f, 0x114c6858, 0xab1d61c1, 0x3d2d66b6, 0x9041dc76, + 0x0671db01, 0xbc20d298, 0x2a10d5ef, 0x8985b171, 0x1fb5b606, + 0xa5e4bf9f, 0x33d4b8e8, 0xa2c90778, 0x34f9000f, 0x8ea80996, + 0x18980ee1, 0xbb0d6a7f, 0x2d3d6d08, 0x976c6491, 0x015c63e6, + 0xf4516b6b, 0x62616c1c, 0xd8306585, 0x4e0062f2, 0xed95066c, + 0x7ba5011b, 0xc1f40882, 0x57c40ff5, 0xc6d9b065, 0x50e9b712, + 0xeab8be8b, 0x7c88b9fc, 0xdf1ddd62, 0x492dda15, 0xf37cd38c, + 0x654cd4fb, 0x5861b24d, 0xce51b53a, 0x7400bca3, 0xe230bbd4, + 0x41a5df4a, 0xd795d83d, 0x6dc4d1a4, 0xfbf4d6d3, 0x6ae96943, + 0xfcd96e34, 0x468867ad, 0xd0b860da, 0x732d0444, 0xe51d0333, + 0x5f4c0aaa, 0xc97c0ddd, 0x3c710550, 0xaa410227, 0x10100bbe, + 0x86200cc9, 0x25b56857, 0xb3856f20, 0x09d466b9, 0x9fe461ce, + 0x0ef9de5e, 0x98c9d929, 0x2298d0b0, 0xb4a8d7c7, 0x173db359, + 0x810db42e, 0x3b5cbdb7, 0xad6cbac0, 0x2083b8ed, 0xb6b3bf9a, + 0x0ce2b603, 0x9ad2b174, 0x3947d5ea, 0xaf77d29d, 0x1526db04, + 0x8316dc73, 0x120b63e3, 0x843b6494, 0x3e6a6d0d, 0xa85a6a7a, + 0x0bcf0ee4, 0x9dff0993, 0x27ae000a, 0xb19e077d, 0x44930ff0, + 0xd2a30887, 0x68f2011e, 0xfec20669, 0x5d5762f7, 0xcb676580, + 0x71366c19, 0xe7066b6e, 0x761bd4fe, 0xe02bd389, 0x5a7ada10, + 0xcc4add67, 0x6fdfb9f9, 0xf9efbe8e, 0x43beb717, 0xd58eb060, + 0xe8a3d6d6, 0x7e93d1a1, 0xc4c2d838, 0x52f2df4f, 0xf167bbd1, + 0x6757bca6, 0xdd06b53f, 0x4b36b248, 0xda2b0dd8, 0x4c1b0aaf, + 0xf64a0336, 0x607a0441, 0xc3ef60df, 0x55df67a8, 0xef8e6e31, + 0x79be6946, 0x8cb361cb, 0x1a8366bc, 0xa0d26f25, 0x36e26852, + 0x95770ccc, 0x03470bbb, 0xb9160222, 0x2f260555, 0xbe3bbac5, + 0x280bbdb2, 0x925ab42b, 0x046ab35c, 0xa7ffd7c2, 0x31cfd0b5, + 0x8b9ed92c, 0x1daede5b, 0xb0c2649b, 0x26f263ec, 0x9ca36a75, + 0x0a936d02, 0xa906099c, 0x3f360eeb, 0x85670772, 0x13570005, + 0x824abf95, 0x147ab8e2, 0xae2bb17b, 0x381bb60c, 0x9b8ed292, + 0x0dbed5e5, 0xb7efdc7c, 0x21dfdb0b, 0xd4d2d386, 0x42e2d4f1, + 0xf8b3dd68, 0x6e83da1f, 0xcd16be81, 0x5b26b9f6, 0xe177b06f, + 0x7747b718, 0xe65a0888, 0x706a0fff, 0xca3b0666, 0x5c0b0111, + 0xff9e658f, 0x69ae62f8, 0xd3ff6b61, 0x45cf6c16, 0x78e20aa0, + 0xeed20dd7, 0x5483044e, 0xc2b30339, 0x612667a7, 0xf71660d0, + 0x4d476949, 0xdb776e3e, 0x4a6ad1ae, 0xdc5ad6d9, 0x660bdf40, + 0xf03bd837, 0x53aebca9, 0xc59ebbde, 0x7fcfb247, 0xe9ffb530, + 0x1cf2bdbd, 0x8ac2baca, 0x3093b353, 0xa6a3b424, 0x0536d0ba, + 0x9306d7cd, 0x2957de54, 0xbf67d923, 0x2e7a66b3, 0xb84a61c4, + 0x021b685d, 0x942b6f2a, 0x37be0bb4, 0xa18e0cc3, 0x1bdf055a, + 0x8def022d}; + #endif - } -}; + +#if N == 1 + +#if W == 8 + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0xccaa009e, 0x4225077d, 0x8e8f07e3, 0x844a0efa, + 0x48e00e64, 0xc66f0987, 0x0ac50919, 0xd3e51bb5, 0x1f4f1b2b, + 0x91c01cc8, 0x5d6a1c56, 0x57af154f, 0x9b0515d1, 0x158a1232, + 0xd92012ac, 0x7cbb312b, 0xb01131b5, 0x3e9e3656, 0xf23436c8, + 0xf8f13fd1, 0x345b3f4f, 0xbad438ac, 0x767e3832, 0xaf5e2a9e, + 0x63f42a00, 0xed7b2de3, 0x21d12d7d, 0x2b142464, 0xe7be24fa, + 0x69312319, 0xa59b2387, 0xf9766256, 0x35dc62c8, 0xbb53652b, + 0x77f965b5, 0x7d3c6cac, 0xb1966c32, 0x3f196bd1, 0xf3b36b4f, + 0x2a9379e3, 0xe639797d, 0x68b67e9e, 0xa41c7e00, 0xaed97719, + 0x62737787, 0xecfc7064, 0x205670fa, 0x85cd537d, 0x496753e3, + 0xc7e85400, 0x0b42549e, 0x01875d87, 0xcd2d5d19, 0x43a25afa, + 0x8f085a64, 0x562848c8, 0x9a824856, 0x140d4fb5, 0xd8a74f2b, + 0xd2624632, 0x1ec846ac, 0x9047414f, 0x5ced41d1, 0x299dc2ed, + 0xe537c273, 0x6bb8c590, 0xa712c50e, 0xadd7cc17, 0x617dcc89, + 0xeff2cb6a, 0x2358cbf4, 0xfa78d958, 0x36d2d9c6, 0xb85dde25, + 0x74f7debb, 0x7e32d7a2, 0xb298d73c, 0x3c17d0df, 0xf0bdd041, + 0x5526f3c6, 0x998cf358, 0x1703f4bb, 0xdba9f425, 0xd16cfd3c, + 0x1dc6fda2, 0x9349fa41, 0x5fe3fadf, 0x86c3e873, 0x4a69e8ed, + 0xc4e6ef0e, 0x084cef90, 0x0289e689, 0xce23e617, 0x40ace1f4, + 0x8c06e16a, 0xd0eba0bb, 0x1c41a025, 0x92cea7c6, 0x5e64a758, + 0x54a1ae41, 0x980baedf, 0x1684a93c, 0xda2ea9a2, 0x030ebb0e, + 0xcfa4bb90, 0x412bbc73, 0x8d81bced, 0x8744b5f4, 0x4beeb56a, + 0xc561b289, 0x09cbb217, 0xac509190, 0x60fa910e, 0xee7596ed, + 0x22df9673, 0x281a9f6a, 0xe4b09ff4, 0x6a3f9817, 0xa6959889, + 0x7fb58a25, 0xb31f8abb, 0x3d908d58, 0xf13a8dc6, 0xfbff84df, + 0x37558441, 0xb9da83a2, 0x7570833c, 0x533b85da, 0x9f918544, + 0x111e82a7, 0xddb48239, 0xd7718b20, 0x1bdb8bbe, 0x95548c5d, + 0x59fe8cc3, 0x80de9e6f, 0x4c749ef1, 0xc2fb9912, 0x0e51998c, + 0x04949095, 0xc83e900b, 0x46b197e8, 0x8a1b9776, 0x2f80b4f1, + 0xe32ab46f, 0x6da5b38c, 0xa10fb312, 0xabcaba0b, 0x6760ba95, + 0xe9efbd76, 0x2545bde8, 0xfc65af44, 0x30cfafda, 0xbe40a839, + 0x72eaa8a7, 0x782fa1be, 0xb485a120, 0x3a0aa6c3, 0xf6a0a65d, + 0xaa4de78c, 0x66e7e712, 0xe868e0f1, 0x24c2e06f, 0x2e07e976, + 0xe2ade9e8, 0x6c22ee0b, 0xa088ee95, 0x79a8fc39, 0xb502fca7, + 0x3b8dfb44, 0xf727fbda, 0xfde2f2c3, 0x3148f25d, 0xbfc7f5be, + 0x736df520, 0xd6f6d6a7, 0x1a5cd639, 0x94d3d1da, 0x5879d144, + 0x52bcd85d, 0x9e16d8c3, 0x1099df20, 0xdc33dfbe, 0x0513cd12, + 0xc9b9cd8c, 0x4736ca6f, 0x8b9ccaf1, 0x8159c3e8, 0x4df3c376, + 0xc37cc495, 0x0fd6c40b, 0x7aa64737, 0xb60c47a9, 0x3883404a, + 0xf42940d4, 0xfeec49cd, 0x32464953, 0xbcc94eb0, 0x70634e2e, + 0xa9435c82, 0x65e95c1c, 0xeb665bff, 0x27cc5b61, 0x2d095278, + 0xe1a352e6, 0x6f2c5505, 0xa386559b, 0x061d761c, 0xcab77682, + 0x44387161, 0x889271ff, 0x825778e6, 0x4efd7878, 0xc0727f9b, + 0x0cd87f05, 0xd5f86da9, 0x19526d37, 0x97dd6ad4, 0x5b776a4a, + 0x51b26353, 0x9d1863cd, 0x1397642e, 0xdf3d64b0, 0x83d02561, + 0x4f7a25ff, 0xc1f5221c, 0x0d5f2282, 0x079a2b9b, 0xcb302b05, + 0x45bf2ce6, 0x89152c78, 0x50353ed4, 0x9c9f3e4a, 0x121039a9, + 0xdeba3937, 0xd47f302e, 0x18d530b0, 0x965a3753, 0x5af037cd, + 0xff6b144a, 0x33c114d4, 0xbd4e1337, 0x71e413a9, 0x7b211ab0, + 0xb78b1a2e, 0x39041dcd, 0xf5ae1d53, 0x2c8e0fff, 0xe0240f61, + 0x6eab0882, 0xa201081c, 0xa8c40105, 0x646e019b, 0xeae10678, + 0x264b06e6}, + {0x00000000, 0xa6770bb4, 0x979f1129, 0x31e81a9d, 0xf44f2413, + 0x52382fa7, 0x63d0353a, 0xc5a73e8e, 0x33ef4e67, 0x959845d3, + 0xa4705f4e, 0x020754fa, 0xc7a06a74, 0x61d761c0, 0x503f7b5d, + 0xf64870e9, 0x67de9cce, 0xc1a9977a, 0xf0418de7, 0x56368653, + 0x9391b8dd, 0x35e6b369, 0x040ea9f4, 0xa279a240, 0x5431d2a9, + 0xf246d91d, 0xc3aec380, 0x65d9c834, 0xa07ef6ba, 0x0609fd0e, + 0x37e1e793, 0x9196ec27, 0xcfbd399c, 0x69ca3228, 0x582228b5, + 0xfe552301, 0x3bf21d8f, 0x9d85163b, 0xac6d0ca6, 0x0a1a0712, + 0xfc5277fb, 0x5a257c4f, 0x6bcd66d2, 0xcdba6d66, 0x081d53e8, + 0xae6a585c, 0x9f8242c1, 0x39f54975, 0xa863a552, 0x0e14aee6, + 0x3ffcb47b, 0x998bbfcf, 0x5c2c8141, 0xfa5b8af5, 0xcbb39068, + 0x6dc49bdc, 0x9b8ceb35, 0x3dfbe081, 0x0c13fa1c, 0xaa64f1a8, + 0x6fc3cf26, 0xc9b4c492, 0xf85cde0f, 0x5e2bd5bb, 0x440b7579, + 0xe27c7ecd, 0xd3946450, 0x75e36fe4, 0xb044516a, 0x16335ade, + 0x27db4043, 0x81ac4bf7, 0x77e43b1e, 0xd19330aa, 0xe07b2a37, + 0x460c2183, 0x83ab1f0d, 0x25dc14b9, 0x14340e24, 0xb2430590, + 0x23d5e9b7, 0x85a2e203, 0xb44af89e, 0x123df32a, 0xd79acda4, + 0x71edc610, 0x4005dc8d, 0xe672d739, 0x103aa7d0, 0xb64dac64, + 0x87a5b6f9, 0x21d2bd4d, 0xe47583c3, 0x42028877, 0x73ea92ea, + 0xd59d995e, 0x8bb64ce5, 0x2dc14751, 0x1c295dcc, 0xba5e5678, + 0x7ff968f6, 0xd98e6342, 0xe86679df, 0x4e11726b, 0xb8590282, + 0x1e2e0936, 0x2fc613ab, 0x89b1181f, 0x4c162691, 0xea612d25, + 0xdb8937b8, 0x7dfe3c0c, 0xec68d02b, 0x4a1fdb9f, 0x7bf7c102, + 0xdd80cab6, 0x1827f438, 0xbe50ff8c, 0x8fb8e511, 0x29cfeea5, + 0xdf879e4c, 0x79f095f8, 0x48188f65, 0xee6f84d1, 0x2bc8ba5f, + 0x8dbfb1eb, 0xbc57ab76, 0x1a20a0c2, 0x8816eaf2, 0x2e61e146, + 0x1f89fbdb, 0xb9fef06f, 0x7c59cee1, 0xda2ec555, 0xebc6dfc8, + 0x4db1d47c, 0xbbf9a495, 0x1d8eaf21, 0x2c66b5bc, 0x8a11be08, + 0x4fb68086, 0xe9c18b32, 0xd82991af, 0x7e5e9a1b, 0xefc8763c, + 0x49bf7d88, 0x78576715, 0xde206ca1, 0x1b87522f, 0xbdf0599b, + 0x8c184306, 0x2a6f48b2, 0xdc27385b, 0x7a5033ef, 0x4bb82972, + 0xedcf22c6, 0x28681c48, 0x8e1f17fc, 0xbff70d61, 0x198006d5, + 0x47abd36e, 0xe1dcd8da, 0xd034c247, 0x7643c9f3, 0xb3e4f77d, + 0x1593fcc9, 0x247be654, 0x820cede0, 0x74449d09, 0xd23396bd, + 0xe3db8c20, 0x45ac8794, 0x800bb91a, 0x267cb2ae, 0x1794a833, + 0xb1e3a387, 0x20754fa0, 0x86024414, 0xb7ea5e89, 0x119d553d, + 0xd43a6bb3, 0x724d6007, 0x43a57a9a, 0xe5d2712e, 0x139a01c7, + 0xb5ed0a73, 0x840510ee, 0x22721b5a, 0xe7d525d4, 0x41a22e60, + 0x704a34fd, 0xd63d3f49, 0xcc1d9f8b, 0x6a6a943f, 0x5b828ea2, + 0xfdf58516, 0x3852bb98, 0x9e25b02c, 0xafcdaab1, 0x09baa105, + 0xfff2d1ec, 0x5985da58, 0x686dc0c5, 0xce1acb71, 0x0bbdf5ff, + 0xadcafe4b, 0x9c22e4d6, 0x3a55ef62, 0xabc30345, 0x0db408f1, + 0x3c5c126c, 0x9a2b19d8, 0x5f8c2756, 0xf9fb2ce2, 0xc813367f, + 0x6e643dcb, 0x982c4d22, 0x3e5b4696, 0x0fb35c0b, 0xa9c457bf, + 0x6c636931, 0xca146285, 0xfbfc7818, 0x5d8b73ac, 0x03a0a617, + 0xa5d7ada3, 0x943fb73e, 0x3248bc8a, 0xf7ef8204, 0x519889b0, + 0x6070932d, 0xc6079899, 0x304fe870, 0x9638e3c4, 0xa7d0f959, + 0x01a7f2ed, 0xc400cc63, 0x6277c7d7, 0x539fdd4a, 0xf5e8d6fe, + 0x647e3ad9, 0xc209316d, 0xf3e12bf0, 0x55962044, 0x90311eca, + 0x3646157e, 0x07ae0fe3, 0xa1d90457, 0x579174be, 0xf1e67f0a, + 0xc00e6597, 0x66796e23, 0xa3de50ad, 0x05a95b19, 0x34414184, + 0x92364a30}, + {0x00000000, 0xcb5cd3a5, 0x4dc8a10b, 0x869472ae, 0x9b914216, + 0x50cd91b3, 0xd659e31d, 0x1d0530b8, 0xec53826d, 0x270f51c8, + 0xa19b2366, 0x6ac7f0c3, 0x77c2c07b, 0xbc9e13de, 0x3a0a6170, + 0xf156b2d5, 0x03d6029b, 0xc88ad13e, 0x4e1ea390, 0x85427035, + 0x9847408d, 0x531b9328, 0xd58fe186, 0x1ed33223, 0xef8580f6, + 0x24d95353, 0xa24d21fd, 0x6911f258, 0x7414c2e0, 0xbf481145, + 0x39dc63eb, 0xf280b04e, 0x07ac0536, 0xccf0d693, 0x4a64a43d, + 0x81387798, 0x9c3d4720, 0x57619485, 0xd1f5e62b, 0x1aa9358e, + 0xebff875b, 0x20a354fe, 0xa6372650, 0x6d6bf5f5, 0x706ec54d, + 0xbb3216e8, 0x3da66446, 0xf6fab7e3, 0x047a07ad, 0xcf26d408, + 0x49b2a6a6, 0x82ee7503, 0x9feb45bb, 0x54b7961e, 0xd223e4b0, + 0x197f3715, 0xe82985c0, 0x23755665, 0xa5e124cb, 0x6ebdf76e, + 0x73b8c7d6, 0xb8e41473, 0x3e7066dd, 0xf52cb578, 0x0f580a6c, + 0xc404d9c9, 0x4290ab67, 0x89cc78c2, 0x94c9487a, 0x5f959bdf, + 0xd901e971, 0x125d3ad4, 0xe30b8801, 0x28575ba4, 0xaec3290a, + 0x659ffaaf, 0x789aca17, 0xb3c619b2, 0x35526b1c, 0xfe0eb8b9, + 0x0c8e08f7, 0xc7d2db52, 0x4146a9fc, 0x8a1a7a59, 0x971f4ae1, + 0x5c439944, 0xdad7ebea, 0x118b384f, 0xe0dd8a9a, 0x2b81593f, + 0xad152b91, 0x6649f834, 0x7b4cc88c, 0xb0101b29, 0x36846987, + 0xfdd8ba22, 0x08f40f5a, 0xc3a8dcff, 0x453cae51, 0x8e607df4, + 0x93654d4c, 0x58399ee9, 0xdeadec47, 0x15f13fe2, 0xe4a78d37, + 0x2ffb5e92, 0xa96f2c3c, 0x6233ff99, 0x7f36cf21, 0xb46a1c84, + 0x32fe6e2a, 0xf9a2bd8f, 0x0b220dc1, 0xc07ede64, 0x46eaacca, + 0x8db67f6f, 0x90b34fd7, 0x5bef9c72, 0xdd7beedc, 0x16273d79, + 0xe7718fac, 0x2c2d5c09, 0xaab92ea7, 0x61e5fd02, 0x7ce0cdba, + 0xb7bc1e1f, 0x31286cb1, 0xfa74bf14, 0x1eb014d8, 0xd5ecc77d, + 0x5378b5d3, 0x98246676, 0x852156ce, 0x4e7d856b, 0xc8e9f7c5, + 0x03b52460, 0xf2e396b5, 0x39bf4510, 0xbf2b37be, 0x7477e41b, + 0x6972d4a3, 0xa22e0706, 0x24ba75a8, 0xefe6a60d, 0x1d661643, + 0xd63ac5e6, 0x50aeb748, 0x9bf264ed, 0x86f75455, 0x4dab87f0, + 0xcb3ff55e, 0x006326fb, 0xf135942e, 0x3a69478b, 0xbcfd3525, + 0x77a1e680, 0x6aa4d638, 0xa1f8059d, 0x276c7733, 0xec30a496, + 0x191c11ee, 0xd240c24b, 0x54d4b0e5, 0x9f886340, 0x828d53f8, + 0x49d1805d, 0xcf45f2f3, 0x04192156, 0xf54f9383, 0x3e134026, + 0xb8873288, 0x73dbe12d, 0x6eded195, 0xa5820230, 0x2316709e, + 0xe84aa33b, 0x1aca1375, 0xd196c0d0, 0x5702b27e, 0x9c5e61db, + 0x815b5163, 0x4a0782c6, 0xcc93f068, 0x07cf23cd, 0xf6999118, + 0x3dc542bd, 0xbb513013, 0x700de3b6, 0x6d08d30e, 0xa65400ab, + 0x20c07205, 0xeb9ca1a0, 0x11e81eb4, 0xdab4cd11, 0x5c20bfbf, + 0x977c6c1a, 0x8a795ca2, 0x41258f07, 0xc7b1fda9, 0x0ced2e0c, + 0xfdbb9cd9, 0x36e74f7c, 0xb0733dd2, 0x7b2fee77, 0x662adecf, + 0xad760d6a, 0x2be27fc4, 0xe0beac61, 0x123e1c2f, 0xd962cf8a, + 0x5ff6bd24, 0x94aa6e81, 0x89af5e39, 0x42f38d9c, 0xc467ff32, + 0x0f3b2c97, 0xfe6d9e42, 0x35314de7, 0xb3a53f49, 0x78f9ecec, + 0x65fcdc54, 0xaea00ff1, 0x28347d5f, 0xe368aefa, 0x16441b82, + 0xdd18c827, 0x5b8cba89, 0x90d0692c, 0x8dd55994, 0x46898a31, + 0xc01df89f, 0x0b412b3a, 0xfa1799ef, 0x314b4a4a, 0xb7df38e4, + 0x7c83eb41, 0x6186dbf9, 0xaada085c, 0x2c4e7af2, 0xe712a957, + 0x15921919, 0xdececabc, 0x585ab812, 0x93066bb7, 0x8e035b0f, + 0x455f88aa, 0xc3cbfa04, 0x089729a1, 0xf9c19b74, 0x329d48d1, + 0xb4093a7f, 0x7f55e9da, 0x6250d962, 0xa90c0ac7, 0x2f987869, + 0xe4c4abcc}, + {0x00000000, 0x3d6029b0, 0x7ac05360, 0x47a07ad0, 0xf580a6c0, + 0xc8e08f70, 0x8f40f5a0, 0xb220dc10, 0x30704bc1, 0x0d106271, + 0x4ab018a1, 0x77d03111, 0xc5f0ed01, 0xf890c4b1, 0xbf30be61, + 0x825097d1, 0x60e09782, 0x5d80be32, 0x1a20c4e2, 0x2740ed52, + 0x95603142, 0xa80018f2, 0xefa06222, 0xd2c04b92, 0x5090dc43, + 0x6df0f5f3, 0x2a508f23, 0x1730a693, 0xa5107a83, 0x98705333, + 0xdfd029e3, 0xe2b00053, 0xc1c12f04, 0xfca106b4, 0xbb017c64, + 0x866155d4, 0x344189c4, 0x0921a074, 0x4e81daa4, 0x73e1f314, + 0xf1b164c5, 0xccd14d75, 0x8b7137a5, 0xb6111e15, 0x0431c205, + 0x3951ebb5, 0x7ef19165, 0x4391b8d5, 0xa121b886, 0x9c419136, + 0xdbe1ebe6, 0xe681c256, 0x54a11e46, 0x69c137f6, 0x2e614d26, + 0x13016496, 0x9151f347, 0xac31daf7, 0xeb91a027, 0xd6f18997, + 0x64d15587, 0x59b17c37, 0x1e1106e7, 0x23712f57, 0x58f35849, + 0x659371f9, 0x22330b29, 0x1f532299, 0xad73fe89, 0x9013d739, + 0xd7b3ade9, 0xead38459, 0x68831388, 0x55e33a38, 0x124340e8, + 0x2f236958, 0x9d03b548, 0xa0639cf8, 0xe7c3e628, 0xdaa3cf98, + 0x3813cfcb, 0x0573e67b, 0x42d39cab, 0x7fb3b51b, 0xcd93690b, + 0xf0f340bb, 0xb7533a6b, 0x8a3313db, 0x0863840a, 0x3503adba, + 0x72a3d76a, 0x4fc3feda, 0xfde322ca, 0xc0830b7a, 0x872371aa, + 0xba43581a, 0x9932774d, 0xa4525efd, 0xe3f2242d, 0xde920d9d, + 0x6cb2d18d, 0x51d2f83d, 0x167282ed, 0x2b12ab5d, 0xa9423c8c, + 0x9422153c, 0xd3826fec, 0xeee2465c, 0x5cc29a4c, 0x61a2b3fc, + 0x2602c92c, 0x1b62e09c, 0xf9d2e0cf, 0xc4b2c97f, 0x8312b3af, + 0xbe729a1f, 0x0c52460f, 0x31326fbf, 0x7692156f, 0x4bf23cdf, + 0xc9a2ab0e, 0xf4c282be, 0xb362f86e, 0x8e02d1de, 0x3c220dce, + 0x0142247e, 0x46e25eae, 0x7b82771e, 0xb1e6b092, 0x8c869922, + 0xcb26e3f2, 0xf646ca42, 0x44661652, 0x79063fe2, 0x3ea64532, + 0x03c66c82, 0x8196fb53, 0xbcf6d2e3, 0xfb56a833, 0xc6368183, + 0x74165d93, 0x49767423, 0x0ed60ef3, 0x33b62743, 0xd1062710, + 0xec660ea0, 0xabc67470, 0x96a65dc0, 0x248681d0, 0x19e6a860, + 0x5e46d2b0, 0x6326fb00, 0xe1766cd1, 0xdc164561, 0x9bb63fb1, + 0xa6d61601, 0x14f6ca11, 0x2996e3a1, 0x6e369971, 0x5356b0c1, + 0x70279f96, 0x4d47b626, 0x0ae7ccf6, 0x3787e546, 0x85a73956, + 0xb8c710e6, 0xff676a36, 0xc2074386, 0x4057d457, 0x7d37fde7, + 0x3a978737, 0x07f7ae87, 0xb5d77297, 0x88b75b27, 0xcf1721f7, + 0xf2770847, 0x10c70814, 0x2da721a4, 0x6a075b74, 0x576772c4, + 0xe547aed4, 0xd8278764, 0x9f87fdb4, 0xa2e7d404, 0x20b743d5, + 0x1dd76a65, 0x5a7710b5, 0x67173905, 0xd537e515, 0xe857cca5, + 0xaff7b675, 0x92979fc5, 0xe915e8db, 0xd475c16b, 0x93d5bbbb, + 0xaeb5920b, 0x1c954e1b, 0x21f567ab, 0x66551d7b, 0x5b3534cb, + 0xd965a31a, 0xe4058aaa, 0xa3a5f07a, 0x9ec5d9ca, 0x2ce505da, + 0x11852c6a, 0x562556ba, 0x6b457f0a, 0x89f57f59, 0xb49556e9, + 0xf3352c39, 0xce550589, 0x7c75d999, 0x4115f029, 0x06b58af9, + 0x3bd5a349, 0xb9853498, 0x84e51d28, 0xc34567f8, 0xfe254e48, + 0x4c059258, 0x7165bbe8, 0x36c5c138, 0x0ba5e888, 0x28d4c7df, + 0x15b4ee6f, 0x521494bf, 0x6f74bd0f, 0xdd54611f, 0xe03448af, + 0xa794327f, 0x9af41bcf, 0x18a48c1e, 0x25c4a5ae, 0x6264df7e, + 0x5f04f6ce, 0xed242ade, 0xd044036e, 0x97e479be, 0xaa84500e, + 0x4834505d, 0x755479ed, 0x32f4033d, 0x0f942a8d, 0xbdb4f69d, + 0x80d4df2d, 0xc774a5fd, 0xfa148c4d, 0x78441b9c, 0x4524322c, + 0x028448fc, 0x3fe4614c, 0x8dc4bd5c, 0xb0a494ec, 0xf704ee3c, + 0xca64c78c}, + {0x00000000, 0xb8bc6765, 0xaa09c88b, 0x12b5afee, 0x8f629757, + 0x37def032, 0x256b5fdc, 0x9dd738b9, 0xc5b428ef, 0x7d084f8a, + 0x6fbde064, 0xd7018701, 0x4ad6bfb8, 0xf26ad8dd, 0xe0df7733, + 0x58631056, 0x5019579f, 0xe8a530fa, 0xfa109f14, 0x42acf871, + 0xdf7bc0c8, 0x67c7a7ad, 0x75720843, 0xcdce6f26, 0x95ad7f70, + 0x2d111815, 0x3fa4b7fb, 0x8718d09e, 0x1acfe827, 0xa2738f42, + 0xb0c620ac, 0x087a47c9, 0xa032af3e, 0x188ec85b, 0x0a3b67b5, + 0xb28700d0, 0x2f503869, 0x97ec5f0c, 0x8559f0e2, 0x3de59787, + 0x658687d1, 0xdd3ae0b4, 0xcf8f4f5a, 0x7733283f, 0xeae41086, + 0x525877e3, 0x40edd80d, 0xf851bf68, 0xf02bf8a1, 0x48979fc4, + 0x5a22302a, 0xe29e574f, 0x7f496ff6, 0xc7f50893, 0xd540a77d, + 0x6dfcc018, 0x359fd04e, 0x8d23b72b, 0x9f9618c5, 0x272a7fa0, + 0xbafd4719, 0x0241207c, 0x10f48f92, 0xa848e8f7, 0x9b14583d, + 0x23a83f58, 0x311d90b6, 0x89a1f7d3, 0x1476cf6a, 0xaccaa80f, + 0xbe7f07e1, 0x06c36084, 0x5ea070d2, 0xe61c17b7, 0xf4a9b859, + 0x4c15df3c, 0xd1c2e785, 0x697e80e0, 0x7bcb2f0e, 0xc377486b, + 0xcb0d0fa2, 0x73b168c7, 0x6104c729, 0xd9b8a04c, 0x446f98f5, + 0xfcd3ff90, 0xee66507e, 0x56da371b, 0x0eb9274d, 0xb6054028, + 0xa4b0efc6, 0x1c0c88a3, 0x81dbb01a, 0x3967d77f, 0x2bd27891, + 0x936e1ff4, 0x3b26f703, 0x839a9066, 0x912f3f88, 0x299358ed, + 0xb4446054, 0x0cf80731, 0x1e4da8df, 0xa6f1cfba, 0xfe92dfec, + 0x462eb889, 0x549b1767, 0xec277002, 0x71f048bb, 0xc94c2fde, + 0xdbf98030, 0x6345e755, 0x6b3fa09c, 0xd383c7f9, 0xc1366817, + 0x798a0f72, 0xe45d37cb, 0x5ce150ae, 0x4e54ff40, 0xf6e89825, + 0xae8b8873, 0x1637ef16, 0x048240f8, 0xbc3e279d, 0x21e91f24, + 0x99557841, 0x8be0d7af, 0x335cb0ca, 0xed59b63b, 0x55e5d15e, + 0x47507eb0, 0xffec19d5, 0x623b216c, 0xda874609, 0xc832e9e7, + 0x708e8e82, 0x28ed9ed4, 0x9051f9b1, 0x82e4565f, 0x3a58313a, + 0xa78f0983, 0x1f336ee6, 0x0d86c108, 0xb53aa66d, 0xbd40e1a4, + 0x05fc86c1, 0x1749292f, 0xaff54e4a, 0x322276f3, 0x8a9e1196, + 0x982bbe78, 0x2097d91d, 0x78f4c94b, 0xc048ae2e, 0xd2fd01c0, + 0x6a4166a5, 0xf7965e1c, 0x4f2a3979, 0x5d9f9697, 0xe523f1f2, + 0x4d6b1905, 0xf5d77e60, 0xe762d18e, 0x5fdeb6eb, 0xc2098e52, + 0x7ab5e937, 0x680046d9, 0xd0bc21bc, 0x88df31ea, 0x3063568f, + 0x22d6f961, 0x9a6a9e04, 0x07bda6bd, 0xbf01c1d8, 0xadb46e36, + 0x15080953, 0x1d724e9a, 0xa5ce29ff, 0xb77b8611, 0x0fc7e174, + 0x9210d9cd, 0x2aacbea8, 0x38191146, 0x80a57623, 0xd8c66675, + 0x607a0110, 0x72cfaefe, 0xca73c99b, 0x57a4f122, 0xef189647, + 0xfdad39a9, 0x45115ecc, 0x764dee06, 0xcef18963, 0xdc44268d, + 0x64f841e8, 0xf92f7951, 0x41931e34, 0x5326b1da, 0xeb9ad6bf, + 0xb3f9c6e9, 0x0b45a18c, 0x19f00e62, 0xa14c6907, 0x3c9b51be, + 0x842736db, 0x96929935, 0x2e2efe50, 0x2654b999, 0x9ee8defc, + 0x8c5d7112, 0x34e11677, 0xa9362ece, 0x118a49ab, 0x033fe645, + 0xbb838120, 0xe3e09176, 0x5b5cf613, 0x49e959fd, 0xf1553e98, + 0x6c820621, 0xd43e6144, 0xc68bceaa, 0x7e37a9cf, 0xd67f4138, + 0x6ec3265d, 0x7c7689b3, 0xc4caeed6, 0x591dd66f, 0xe1a1b10a, + 0xf3141ee4, 0x4ba87981, 0x13cb69d7, 0xab770eb2, 0xb9c2a15c, + 0x017ec639, 0x9ca9fe80, 0x241599e5, 0x36a0360b, 0x8e1c516e, + 0x866616a7, 0x3eda71c2, 0x2c6fde2c, 0x94d3b949, 0x090481f0, + 0xb1b8e695, 0xa30d497b, 0x1bb12e1e, 0x43d23e48, 0xfb6e592d, + 0xe9dbf6c3, 0x516791a6, 0xccb0a91f, 0x740cce7a, 0x66b96194, + 0xde0506f1}, + {0x00000000, 0x01c26a37, 0x0384d46e, 0x0246be59, 0x0709a8dc, + 0x06cbc2eb, 0x048d7cb2, 0x054f1685, 0x0e1351b8, 0x0fd13b8f, + 0x0d9785d6, 0x0c55efe1, 0x091af964, 0x08d89353, 0x0a9e2d0a, + 0x0b5c473d, 0x1c26a370, 0x1de4c947, 0x1fa2771e, 0x1e601d29, + 0x1b2f0bac, 0x1aed619b, 0x18abdfc2, 0x1969b5f5, 0x1235f2c8, + 0x13f798ff, 0x11b126a6, 0x10734c91, 0x153c5a14, 0x14fe3023, + 0x16b88e7a, 0x177ae44d, 0x384d46e0, 0x398f2cd7, 0x3bc9928e, + 0x3a0bf8b9, 0x3f44ee3c, 0x3e86840b, 0x3cc03a52, 0x3d025065, + 0x365e1758, 0x379c7d6f, 0x35dac336, 0x3418a901, 0x3157bf84, + 0x3095d5b3, 0x32d36bea, 0x331101dd, 0x246be590, 0x25a98fa7, + 0x27ef31fe, 0x262d5bc9, 0x23624d4c, 0x22a0277b, 0x20e69922, + 0x2124f315, 0x2a78b428, 0x2bbade1f, 0x29fc6046, 0x283e0a71, + 0x2d711cf4, 0x2cb376c3, 0x2ef5c89a, 0x2f37a2ad, 0x709a8dc0, + 0x7158e7f7, 0x731e59ae, 0x72dc3399, 0x7793251c, 0x76514f2b, + 0x7417f172, 0x75d59b45, 0x7e89dc78, 0x7f4bb64f, 0x7d0d0816, + 0x7ccf6221, 0x798074a4, 0x78421e93, 0x7a04a0ca, 0x7bc6cafd, + 0x6cbc2eb0, 0x6d7e4487, 0x6f38fade, 0x6efa90e9, 0x6bb5866c, + 0x6a77ec5b, 0x68315202, 0x69f33835, 0x62af7f08, 0x636d153f, + 0x612bab66, 0x60e9c151, 0x65a6d7d4, 0x6464bde3, 0x662203ba, + 0x67e0698d, 0x48d7cb20, 0x4915a117, 0x4b531f4e, 0x4a917579, + 0x4fde63fc, 0x4e1c09cb, 0x4c5ab792, 0x4d98dda5, 0x46c49a98, + 0x4706f0af, 0x45404ef6, 0x448224c1, 0x41cd3244, 0x400f5873, + 0x4249e62a, 0x438b8c1d, 0x54f16850, 0x55330267, 0x5775bc3e, + 0x56b7d609, 0x53f8c08c, 0x523aaabb, 0x507c14e2, 0x51be7ed5, + 0x5ae239e8, 0x5b2053df, 0x5966ed86, 0x58a487b1, 0x5deb9134, + 0x5c29fb03, 0x5e6f455a, 0x5fad2f6d, 0xe1351b80, 0xe0f771b7, + 0xe2b1cfee, 0xe373a5d9, 0xe63cb35c, 0xe7fed96b, 0xe5b86732, + 0xe47a0d05, 0xef264a38, 0xeee4200f, 0xeca29e56, 0xed60f461, + 0xe82fe2e4, 0xe9ed88d3, 0xebab368a, 0xea695cbd, 0xfd13b8f0, + 0xfcd1d2c7, 0xfe976c9e, 0xff5506a9, 0xfa1a102c, 0xfbd87a1b, + 0xf99ec442, 0xf85cae75, 0xf300e948, 0xf2c2837f, 0xf0843d26, + 0xf1465711, 0xf4094194, 0xf5cb2ba3, 0xf78d95fa, 0xf64fffcd, + 0xd9785d60, 0xd8ba3757, 0xdafc890e, 0xdb3ee339, 0xde71f5bc, + 0xdfb39f8b, 0xddf521d2, 0xdc374be5, 0xd76b0cd8, 0xd6a966ef, + 0xd4efd8b6, 0xd52db281, 0xd062a404, 0xd1a0ce33, 0xd3e6706a, + 0xd2241a5d, 0xc55efe10, 0xc49c9427, 0xc6da2a7e, 0xc7184049, + 0xc25756cc, 0xc3953cfb, 0xc1d382a2, 0xc011e895, 0xcb4dafa8, + 0xca8fc59f, 0xc8c97bc6, 0xc90b11f1, 0xcc440774, 0xcd866d43, + 0xcfc0d31a, 0xce02b92d, 0x91af9640, 0x906dfc77, 0x922b422e, + 0x93e92819, 0x96a63e9c, 0x976454ab, 0x9522eaf2, 0x94e080c5, + 0x9fbcc7f8, 0x9e7eadcf, 0x9c381396, 0x9dfa79a1, 0x98b56f24, + 0x99770513, 0x9b31bb4a, 0x9af3d17d, 0x8d893530, 0x8c4b5f07, + 0x8e0de15e, 0x8fcf8b69, 0x8a809dec, 0x8b42f7db, 0x89044982, + 0x88c623b5, 0x839a6488, 0x82580ebf, 0x801eb0e6, 0x81dcdad1, + 0x8493cc54, 0x8551a663, 0x8717183a, 0x86d5720d, 0xa9e2d0a0, + 0xa820ba97, 0xaa6604ce, 0xaba46ef9, 0xaeeb787c, 0xaf29124b, + 0xad6fac12, 0xacadc625, 0xa7f18118, 0xa633eb2f, 0xa4755576, + 0xa5b73f41, 0xa0f829c4, 0xa13a43f3, 0xa37cfdaa, 0xa2be979d, + 0xb5c473d0, 0xb40619e7, 0xb640a7be, 0xb782cd89, 0xb2cddb0c, + 0xb30fb13b, 0xb1490f62, 0xb08b6555, 0xbbd72268, 0xba15485f, + 0xb853f606, 0xb9919c31, 0xbcde8ab4, 0xbd1ce083, 0xbf5a5eda, + 0xbe9834ed}, + {0x00000000, 0x191b3141, 0x32366282, 0x2b2d53c3, 0x646cc504, + 0x7d77f445, 0x565aa786, 0x4f4196c7, 0xc8d98a08, 0xd1c2bb49, + 0xfaefe88a, 0xe3f4d9cb, 0xacb54f0c, 0xb5ae7e4d, 0x9e832d8e, + 0x87981ccf, 0x4ac21251, 0x53d92310, 0x78f470d3, 0x61ef4192, + 0x2eaed755, 0x37b5e614, 0x1c98b5d7, 0x05838496, 0x821b9859, + 0x9b00a918, 0xb02dfadb, 0xa936cb9a, 0xe6775d5d, 0xff6c6c1c, + 0xd4413fdf, 0xcd5a0e9e, 0x958424a2, 0x8c9f15e3, 0xa7b24620, + 0xbea97761, 0xf1e8e1a6, 0xe8f3d0e7, 0xc3de8324, 0xdac5b265, + 0x5d5daeaa, 0x44469feb, 0x6f6bcc28, 0x7670fd69, 0x39316bae, + 0x202a5aef, 0x0b07092c, 0x121c386d, 0xdf4636f3, 0xc65d07b2, + 0xed705471, 0xf46b6530, 0xbb2af3f7, 0xa231c2b6, 0x891c9175, + 0x9007a034, 0x179fbcfb, 0x0e848dba, 0x25a9de79, 0x3cb2ef38, + 0x73f379ff, 0x6ae848be, 0x41c51b7d, 0x58de2a3c, 0xf0794f05, + 0xe9627e44, 0xc24f2d87, 0xdb541cc6, 0x94158a01, 0x8d0ebb40, + 0xa623e883, 0xbf38d9c2, 0x38a0c50d, 0x21bbf44c, 0x0a96a78f, + 0x138d96ce, 0x5ccc0009, 0x45d73148, 0x6efa628b, 0x77e153ca, + 0xbabb5d54, 0xa3a06c15, 0x888d3fd6, 0x91960e97, 0xded79850, + 0xc7cca911, 0xece1fad2, 0xf5facb93, 0x7262d75c, 0x6b79e61d, + 0x4054b5de, 0x594f849f, 0x160e1258, 0x0f152319, 0x243870da, + 0x3d23419b, 0x65fd6ba7, 0x7ce65ae6, 0x57cb0925, 0x4ed03864, + 0x0191aea3, 0x188a9fe2, 0x33a7cc21, 0x2abcfd60, 0xad24e1af, + 0xb43fd0ee, 0x9f12832d, 0x8609b26c, 0xc94824ab, 0xd05315ea, + 0xfb7e4629, 0xe2657768, 0x2f3f79f6, 0x362448b7, 0x1d091b74, + 0x04122a35, 0x4b53bcf2, 0x52488db3, 0x7965de70, 0x607eef31, + 0xe7e6f3fe, 0xfefdc2bf, 0xd5d0917c, 0xcccba03d, 0x838a36fa, + 0x9a9107bb, 0xb1bc5478, 0xa8a76539, 0x3b83984b, 0x2298a90a, + 0x09b5fac9, 0x10aecb88, 0x5fef5d4f, 0x46f46c0e, 0x6dd93fcd, + 0x74c20e8c, 0xf35a1243, 0xea412302, 0xc16c70c1, 0xd8774180, + 0x9736d747, 0x8e2de606, 0xa500b5c5, 0xbc1b8484, 0x71418a1a, + 0x685abb5b, 0x4377e898, 0x5a6cd9d9, 0x152d4f1e, 0x0c367e5f, + 0x271b2d9c, 0x3e001cdd, 0xb9980012, 0xa0833153, 0x8bae6290, + 0x92b553d1, 0xddf4c516, 0xc4eff457, 0xefc2a794, 0xf6d996d5, + 0xae07bce9, 0xb71c8da8, 0x9c31de6b, 0x852aef2a, 0xca6b79ed, + 0xd37048ac, 0xf85d1b6f, 0xe1462a2e, 0x66de36e1, 0x7fc507a0, + 0x54e85463, 0x4df36522, 0x02b2f3e5, 0x1ba9c2a4, 0x30849167, + 0x299fa026, 0xe4c5aeb8, 0xfdde9ff9, 0xd6f3cc3a, 0xcfe8fd7b, + 0x80a96bbc, 0x99b25afd, 0xb29f093e, 0xab84387f, 0x2c1c24b0, + 0x350715f1, 0x1e2a4632, 0x07317773, 0x4870e1b4, 0x516bd0f5, + 0x7a468336, 0x635db277, 0xcbfad74e, 0xd2e1e60f, 0xf9ccb5cc, + 0xe0d7848d, 0xaf96124a, 0xb68d230b, 0x9da070c8, 0x84bb4189, + 0x03235d46, 0x1a386c07, 0x31153fc4, 0x280e0e85, 0x674f9842, + 0x7e54a903, 0x5579fac0, 0x4c62cb81, 0x8138c51f, 0x9823f45e, + 0xb30ea79d, 0xaa1596dc, 0xe554001b, 0xfc4f315a, 0xd7626299, + 0xce7953d8, 0x49e14f17, 0x50fa7e56, 0x7bd72d95, 0x62cc1cd4, + 0x2d8d8a13, 0x3496bb52, 0x1fbbe891, 0x06a0d9d0, 0x5e7ef3ec, + 0x4765c2ad, 0x6c48916e, 0x7553a02f, 0x3a1236e8, 0x230907a9, + 0x0824546a, 0x113f652b, 0x96a779e4, 0x8fbc48a5, 0xa4911b66, + 0xbd8a2a27, 0xf2cbbce0, 0xebd08da1, 0xc0fdde62, 0xd9e6ef23, + 0x14bce1bd, 0x0da7d0fc, 0x268a833f, 0x3f91b27e, 0x70d024b9, + 0x69cb15f8, 0x42e6463b, 0x5bfd777a, 0xdc656bb5, 0xc57e5af4, + 0xee530937, 0xf7483876, 0xb809aeb1, 0xa1129ff0, 0x8a3fcc33, + 0x9324fd72}, + {0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, + 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, + 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, + 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, + 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, + 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, + 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, + 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, + 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, + 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, + 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, + 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, + 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, + 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, + 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, + 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, + 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, + 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, + 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, + 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, + 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, + 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, + 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, + 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, + 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, + 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, + 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, + 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, + 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, + 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, + 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, + 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, + 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, + 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, + 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, + 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, + 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, + 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, + 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, + 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, + 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, + 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, + 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, + 0x2d02ef8d}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x0000000000000000, 0x9630077700000000, 0x2c610eee00000000, + 0xba51099900000000, 0x19c46d0700000000, 0x8ff46a7000000000, + 0x35a563e900000000, 0xa395649e00000000, 0x3288db0e00000000, + 0xa4b8dc7900000000, 0x1ee9d5e000000000, 0x88d9d29700000000, + 0x2b4cb60900000000, 0xbd7cb17e00000000, 0x072db8e700000000, + 0x911dbf9000000000, 0x6410b71d00000000, 0xf220b06a00000000, + 0x4871b9f300000000, 0xde41be8400000000, 0x7dd4da1a00000000, + 0xebe4dd6d00000000, 0x51b5d4f400000000, 0xc785d38300000000, + 0x56986c1300000000, 0xc0a86b6400000000, 0x7af962fd00000000, + 0xecc9658a00000000, 0x4f5c011400000000, 0xd96c066300000000, + 0x633d0ffa00000000, 0xf50d088d00000000, 0xc8206e3b00000000, + 0x5e10694c00000000, 0xe44160d500000000, 0x727167a200000000, + 0xd1e4033c00000000, 0x47d4044b00000000, 0xfd850dd200000000, + 0x6bb50aa500000000, 0xfaa8b53500000000, 0x6c98b24200000000, + 0xd6c9bbdb00000000, 0x40f9bcac00000000, 0xe36cd83200000000, + 0x755cdf4500000000, 0xcf0dd6dc00000000, 0x593dd1ab00000000, + 0xac30d92600000000, 0x3a00de5100000000, 0x8051d7c800000000, + 0x1661d0bf00000000, 0xb5f4b42100000000, 0x23c4b35600000000, + 0x9995bacf00000000, 0x0fa5bdb800000000, 0x9eb8022800000000, + 0x0888055f00000000, 0xb2d90cc600000000, 0x24e90bb100000000, + 0x877c6f2f00000000, 0x114c685800000000, 0xab1d61c100000000, + 0x3d2d66b600000000, 0x9041dc7600000000, 0x0671db0100000000, + 0xbc20d29800000000, 0x2a10d5ef00000000, 0x8985b17100000000, + 0x1fb5b60600000000, 0xa5e4bf9f00000000, 0x33d4b8e800000000, + 0xa2c9077800000000, 0x34f9000f00000000, 0x8ea8099600000000, + 0x18980ee100000000, 0xbb0d6a7f00000000, 0x2d3d6d0800000000, + 0x976c649100000000, 0x015c63e600000000, 0xf4516b6b00000000, + 0x62616c1c00000000, 0xd830658500000000, 0x4e0062f200000000, + 0xed95066c00000000, 0x7ba5011b00000000, 0xc1f4088200000000, + 0x57c40ff500000000, 0xc6d9b06500000000, 0x50e9b71200000000, + 0xeab8be8b00000000, 0x7c88b9fc00000000, 0xdf1ddd6200000000, + 0x492dda1500000000, 0xf37cd38c00000000, 0x654cd4fb00000000, + 0x5861b24d00000000, 0xce51b53a00000000, 0x7400bca300000000, + 0xe230bbd400000000, 0x41a5df4a00000000, 0xd795d83d00000000, + 0x6dc4d1a400000000, 0xfbf4d6d300000000, 0x6ae9694300000000, + 0xfcd96e3400000000, 0x468867ad00000000, 0xd0b860da00000000, + 0x732d044400000000, 0xe51d033300000000, 0x5f4c0aaa00000000, + 0xc97c0ddd00000000, 0x3c71055000000000, 0xaa41022700000000, + 0x10100bbe00000000, 0x86200cc900000000, 0x25b5685700000000, + 0xb3856f2000000000, 0x09d466b900000000, 0x9fe461ce00000000, + 0x0ef9de5e00000000, 0x98c9d92900000000, 0x2298d0b000000000, + 0xb4a8d7c700000000, 0x173db35900000000, 0x810db42e00000000, + 0x3b5cbdb700000000, 0xad6cbac000000000, 0x2083b8ed00000000, + 0xb6b3bf9a00000000, 0x0ce2b60300000000, 0x9ad2b17400000000, + 0x3947d5ea00000000, 0xaf77d29d00000000, 0x1526db0400000000, + 0x8316dc7300000000, 0x120b63e300000000, 0x843b649400000000, + 0x3e6a6d0d00000000, 0xa85a6a7a00000000, 0x0bcf0ee400000000, + 0x9dff099300000000, 0x27ae000a00000000, 0xb19e077d00000000, + 0x44930ff000000000, 0xd2a3088700000000, 0x68f2011e00000000, + 0xfec2066900000000, 0x5d5762f700000000, 0xcb67658000000000, + 0x71366c1900000000, 0xe7066b6e00000000, 0x761bd4fe00000000, + 0xe02bd38900000000, 0x5a7ada1000000000, 0xcc4add6700000000, + 0x6fdfb9f900000000, 0xf9efbe8e00000000, 0x43beb71700000000, + 0xd58eb06000000000, 0xe8a3d6d600000000, 0x7e93d1a100000000, + 0xc4c2d83800000000, 0x52f2df4f00000000, 0xf167bbd100000000, + 0x6757bca600000000, 0xdd06b53f00000000, 0x4b36b24800000000, + 0xda2b0dd800000000, 0x4c1b0aaf00000000, 0xf64a033600000000, + 0x607a044100000000, 0xc3ef60df00000000, 0x55df67a800000000, + 0xef8e6e3100000000, 0x79be694600000000, 0x8cb361cb00000000, + 0x1a8366bc00000000, 0xa0d26f2500000000, 0x36e2685200000000, + 0x95770ccc00000000, 0x03470bbb00000000, 0xb916022200000000, + 0x2f26055500000000, 0xbe3bbac500000000, 0x280bbdb200000000, + 0x925ab42b00000000, 0x046ab35c00000000, 0xa7ffd7c200000000, + 0x31cfd0b500000000, 0x8b9ed92c00000000, 0x1daede5b00000000, + 0xb0c2649b00000000, 0x26f263ec00000000, 0x9ca36a7500000000, + 0x0a936d0200000000, 0xa906099c00000000, 0x3f360eeb00000000, + 0x8567077200000000, 0x1357000500000000, 0x824abf9500000000, + 0x147ab8e200000000, 0xae2bb17b00000000, 0x381bb60c00000000, + 0x9b8ed29200000000, 0x0dbed5e500000000, 0xb7efdc7c00000000, + 0x21dfdb0b00000000, 0xd4d2d38600000000, 0x42e2d4f100000000, + 0xf8b3dd6800000000, 0x6e83da1f00000000, 0xcd16be8100000000, + 0x5b26b9f600000000, 0xe177b06f00000000, 0x7747b71800000000, + 0xe65a088800000000, 0x706a0fff00000000, 0xca3b066600000000, + 0x5c0b011100000000, 0xff9e658f00000000, 0x69ae62f800000000, + 0xd3ff6b6100000000, 0x45cf6c1600000000, 0x78e20aa000000000, + 0xeed20dd700000000, 0x5483044e00000000, 0xc2b3033900000000, + 0x612667a700000000, 0xf71660d000000000, 0x4d47694900000000, + 0xdb776e3e00000000, 0x4a6ad1ae00000000, 0xdc5ad6d900000000, + 0x660bdf4000000000, 0xf03bd83700000000, 0x53aebca900000000, + 0xc59ebbde00000000, 0x7fcfb24700000000, 0xe9ffb53000000000, + 0x1cf2bdbd00000000, 0x8ac2baca00000000, 0x3093b35300000000, + 0xa6a3b42400000000, 0x0536d0ba00000000, 0x9306d7cd00000000, + 0x2957de5400000000, 0xbf67d92300000000, 0x2e7a66b300000000, + 0xb84a61c400000000, 0x021b685d00000000, 0x942b6f2a00000000, + 0x37be0bb400000000, 0xa18e0cc300000000, 0x1bdf055a00000000, + 0x8def022d00000000}, + {0x0000000000000000, 0x41311b1900000000, 0x8262363200000000, + 0xc3532d2b00000000, 0x04c56c6400000000, 0x45f4777d00000000, + 0x86a75a5600000000, 0xc796414f00000000, 0x088ad9c800000000, + 0x49bbc2d100000000, 0x8ae8effa00000000, 0xcbd9f4e300000000, + 0x0c4fb5ac00000000, 0x4d7eaeb500000000, 0x8e2d839e00000000, + 0xcf1c988700000000, 0x5112c24a00000000, 0x1023d95300000000, + 0xd370f47800000000, 0x9241ef6100000000, 0x55d7ae2e00000000, + 0x14e6b53700000000, 0xd7b5981c00000000, 0x9684830500000000, + 0x59981b8200000000, 0x18a9009b00000000, 0xdbfa2db000000000, + 0x9acb36a900000000, 0x5d5d77e600000000, 0x1c6c6cff00000000, + 0xdf3f41d400000000, 0x9e0e5acd00000000, 0xa224849500000000, + 0xe3159f8c00000000, 0x2046b2a700000000, 0x6177a9be00000000, + 0xa6e1e8f100000000, 0xe7d0f3e800000000, 0x2483dec300000000, + 0x65b2c5da00000000, 0xaaae5d5d00000000, 0xeb9f464400000000, + 0x28cc6b6f00000000, 0x69fd707600000000, 0xae6b313900000000, + 0xef5a2a2000000000, 0x2c09070b00000000, 0x6d381c1200000000, + 0xf33646df00000000, 0xb2075dc600000000, 0x715470ed00000000, + 0x30656bf400000000, 0xf7f32abb00000000, 0xb6c231a200000000, + 0x75911c8900000000, 0x34a0079000000000, 0xfbbc9f1700000000, + 0xba8d840e00000000, 0x79dea92500000000, 0x38efb23c00000000, + 0xff79f37300000000, 0xbe48e86a00000000, 0x7d1bc54100000000, + 0x3c2ade5800000000, 0x054f79f000000000, 0x447e62e900000000, + 0x872d4fc200000000, 0xc61c54db00000000, 0x018a159400000000, + 0x40bb0e8d00000000, 0x83e823a600000000, 0xc2d938bf00000000, + 0x0dc5a03800000000, 0x4cf4bb2100000000, 0x8fa7960a00000000, + 0xce968d1300000000, 0x0900cc5c00000000, 0x4831d74500000000, + 0x8b62fa6e00000000, 0xca53e17700000000, 0x545dbbba00000000, + 0x156ca0a300000000, 0xd63f8d8800000000, 0x970e969100000000, + 0x5098d7de00000000, 0x11a9ccc700000000, 0xd2fae1ec00000000, + 0x93cbfaf500000000, 0x5cd7627200000000, 0x1de6796b00000000, + 0xdeb5544000000000, 0x9f844f5900000000, 0x58120e1600000000, + 0x1923150f00000000, 0xda70382400000000, 0x9b41233d00000000, + 0xa76bfd6500000000, 0xe65ae67c00000000, 0x2509cb5700000000, + 0x6438d04e00000000, 0xa3ae910100000000, 0xe29f8a1800000000, + 0x21cca73300000000, 0x60fdbc2a00000000, 0xafe124ad00000000, + 0xeed03fb400000000, 0x2d83129f00000000, 0x6cb2098600000000, + 0xab2448c900000000, 0xea1553d000000000, 0x29467efb00000000, + 0x687765e200000000, 0xf6793f2f00000000, 0xb748243600000000, + 0x741b091d00000000, 0x352a120400000000, 0xf2bc534b00000000, + 0xb38d485200000000, 0x70de657900000000, 0x31ef7e6000000000, + 0xfef3e6e700000000, 0xbfc2fdfe00000000, 0x7c91d0d500000000, + 0x3da0cbcc00000000, 0xfa368a8300000000, 0xbb07919a00000000, + 0x7854bcb100000000, 0x3965a7a800000000, 0x4b98833b00000000, + 0x0aa9982200000000, 0xc9fab50900000000, 0x88cbae1000000000, + 0x4f5def5f00000000, 0x0e6cf44600000000, 0xcd3fd96d00000000, + 0x8c0ec27400000000, 0x43125af300000000, 0x022341ea00000000, + 0xc1706cc100000000, 0x804177d800000000, 0x47d7369700000000, + 0x06e62d8e00000000, 0xc5b500a500000000, 0x84841bbc00000000, + 0x1a8a417100000000, 0x5bbb5a6800000000, 0x98e8774300000000, + 0xd9d96c5a00000000, 0x1e4f2d1500000000, 0x5f7e360c00000000, + 0x9c2d1b2700000000, 0xdd1c003e00000000, 0x120098b900000000, + 0x533183a000000000, 0x9062ae8b00000000, 0xd153b59200000000, + 0x16c5f4dd00000000, 0x57f4efc400000000, 0x94a7c2ef00000000, + 0xd596d9f600000000, 0xe9bc07ae00000000, 0xa88d1cb700000000, + 0x6bde319c00000000, 0x2aef2a8500000000, 0xed796bca00000000, + 0xac4870d300000000, 0x6f1b5df800000000, 0x2e2a46e100000000, + 0xe136de6600000000, 0xa007c57f00000000, 0x6354e85400000000, + 0x2265f34d00000000, 0xe5f3b20200000000, 0xa4c2a91b00000000, + 0x6791843000000000, 0x26a09f2900000000, 0xb8aec5e400000000, + 0xf99fdefd00000000, 0x3accf3d600000000, 0x7bfde8cf00000000, + 0xbc6ba98000000000, 0xfd5ab29900000000, 0x3e099fb200000000, + 0x7f3884ab00000000, 0xb0241c2c00000000, 0xf115073500000000, + 0x32462a1e00000000, 0x7377310700000000, 0xb4e1704800000000, + 0xf5d06b5100000000, 0x3683467a00000000, 0x77b25d6300000000, + 0x4ed7facb00000000, 0x0fe6e1d200000000, 0xccb5ccf900000000, + 0x8d84d7e000000000, 0x4a1296af00000000, 0x0b238db600000000, + 0xc870a09d00000000, 0x8941bb8400000000, 0x465d230300000000, + 0x076c381a00000000, 0xc43f153100000000, 0x850e0e2800000000, + 0x42984f6700000000, 0x03a9547e00000000, 0xc0fa795500000000, + 0x81cb624c00000000, 0x1fc5388100000000, 0x5ef4239800000000, + 0x9da70eb300000000, 0xdc9615aa00000000, 0x1b0054e500000000, + 0x5a314ffc00000000, 0x996262d700000000, 0xd85379ce00000000, + 0x174fe14900000000, 0x567efa5000000000, 0x952dd77b00000000, + 0xd41ccc6200000000, 0x138a8d2d00000000, 0x52bb963400000000, + 0x91e8bb1f00000000, 0xd0d9a00600000000, 0xecf37e5e00000000, + 0xadc2654700000000, 0x6e91486c00000000, 0x2fa0537500000000, + 0xe836123a00000000, 0xa907092300000000, 0x6a54240800000000, + 0x2b653f1100000000, 0xe479a79600000000, 0xa548bc8f00000000, + 0x661b91a400000000, 0x272a8abd00000000, 0xe0bccbf200000000, + 0xa18dd0eb00000000, 0x62defdc000000000, 0x23efe6d900000000, + 0xbde1bc1400000000, 0xfcd0a70d00000000, 0x3f838a2600000000, + 0x7eb2913f00000000, 0xb924d07000000000, 0xf815cb6900000000, + 0x3b46e64200000000, 0x7a77fd5b00000000, 0xb56b65dc00000000, + 0xf45a7ec500000000, 0x370953ee00000000, 0x763848f700000000, + 0xb1ae09b800000000, 0xf09f12a100000000, 0x33cc3f8a00000000, + 0x72fd249300000000}, + {0x0000000000000000, 0x376ac20100000000, 0x6ed4840300000000, + 0x59be460200000000, 0xdca8090700000000, 0xebc2cb0600000000, + 0xb27c8d0400000000, 0x85164f0500000000, 0xb851130e00000000, + 0x8f3bd10f00000000, 0xd685970d00000000, 0xe1ef550c00000000, + 0x64f91a0900000000, 0x5393d80800000000, 0x0a2d9e0a00000000, + 0x3d475c0b00000000, 0x70a3261c00000000, 0x47c9e41d00000000, + 0x1e77a21f00000000, 0x291d601e00000000, 0xac0b2f1b00000000, + 0x9b61ed1a00000000, 0xc2dfab1800000000, 0xf5b5691900000000, + 0xc8f2351200000000, 0xff98f71300000000, 0xa626b11100000000, + 0x914c731000000000, 0x145a3c1500000000, 0x2330fe1400000000, + 0x7a8eb81600000000, 0x4de47a1700000000, 0xe0464d3800000000, + 0xd72c8f3900000000, 0x8e92c93b00000000, 0xb9f80b3a00000000, + 0x3cee443f00000000, 0x0b84863e00000000, 0x523ac03c00000000, + 0x6550023d00000000, 0x58175e3600000000, 0x6f7d9c3700000000, + 0x36c3da3500000000, 0x01a9183400000000, 0x84bf573100000000, + 0xb3d5953000000000, 0xea6bd33200000000, 0xdd01113300000000, + 0x90e56b2400000000, 0xa78fa92500000000, 0xfe31ef2700000000, + 0xc95b2d2600000000, 0x4c4d622300000000, 0x7b27a02200000000, + 0x2299e62000000000, 0x15f3242100000000, 0x28b4782a00000000, + 0x1fdeba2b00000000, 0x4660fc2900000000, 0x710a3e2800000000, + 0xf41c712d00000000, 0xc376b32c00000000, 0x9ac8f52e00000000, + 0xada2372f00000000, 0xc08d9a7000000000, 0xf7e7587100000000, + 0xae591e7300000000, 0x9933dc7200000000, 0x1c25937700000000, + 0x2b4f517600000000, 0x72f1177400000000, 0x459bd57500000000, + 0x78dc897e00000000, 0x4fb64b7f00000000, 0x16080d7d00000000, + 0x2162cf7c00000000, 0xa474807900000000, 0x931e427800000000, + 0xcaa0047a00000000, 0xfdcac67b00000000, 0xb02ebc6c00000000, + 0x87447e6d00000000, 0xdefa386f00000000, 0xe990fa6e00000000, + 0x6c86b56b00000000, 0x5bec776a00000000, 0x0252316800000000, + 0x3538f36900000000, 0x087faf6200000000, 0x3f156d6300000000, + 0x66ab2b6100000000, 0x51c1e96000000000, 0xd4d7a66500000000, + 0xe3bd646400000000, 0xba03226600000000, 0x8d69e06700000000, + 0x20cbd74800000000, 0x17a1154900000000, 0x4e1f534b00000000, + 0x7975914a00000000, 0xfc63de4f00000000, 0xcb091c4e00000000, + 0x92b75a4c00000000, 0xa5dd984d00000000, 0x989ac44600000000, + 0xaff0064700000000, 0xf64e404500000000, 0xc124824400000000, + 0x4432cd4100000000, 0x73580f4000000000, 0x2ae6494200000000, + 0x1d8c8b4300000000, 0x5068f15400000000, 0x6702335500000000, + 0x3ebc755700000000, 0x09d6b75600000000, 0x8cc0f85300000000, + 0xbbaa3a5200000000, 0xe2147c5000000000, 0xd57ebe5100000000, + 0xe839e25a00000000, 0xdf53205b00000000, 0x86ed665900000000, + 0xb187a45800000000, 0x3491eb5d00000000, 0x03fb295c00000000, + 0x5a456f5e00000000, 0x6d2fad5f00000000, 0x801b35e100000000, + 0xb771f7e000000000, 0xeecfb1e200000000, 0xd9a573e300000000, + 0x5cb33ce600000000, 0x6bd9fee700000000, 0x3267b8e500000000, + 0x050d7ae400000000, 0x384a26ef00000000, 0x0f20e4ee00000000, + 0x569ea2ec00000000, 0x61f460ed00000000, 0xe4e22fe800000000, + 0xd388ede900000000, 0x8a36abeb00000000, 0xbd5c69ea00000000, + 0xf0b813fd00000000, 0xc7d2d1fc00000000, 0x9e6c97fe00000000, + 0xa90655ff00000000, 0x2c101afa00000000, 0x1b7ad8fb00000000, + 0x42c49ef900000000, 0x75ae5cf800000000, 0x48e900f300000000, + 0x7f83c2f200000000, 0x263d84f000000000, 0x115746f100000000, + 0x944109f400000000, 0xa32bcbf500000000, 0xfa958df700000000, + 0xcdff4ff600000000, 0x605d78d900000000, 0x5737bad800000000, + 0x0e89fcda00000000, 0x39e33edb00000000, 0xbcf571de00000000, + 0x8b9fb3df00000000, 0xd221f5dd00000000, 0xe54b37dc00000000, + 0xd80c6bd700000000, 0xef66a9d600000000, 0xb6d8efd400000000, + 0x81b22dd500000000, 0x04a462d000000000, 0x33cea0d100000000, + 0x6a70e6d300000000, 0x5d1a24d200000000, 0x10fe5ec500000000, + 0x27949cc400000000, 0x7e2adac600000000, 0x494018c700000000, + 0xcc5657c200000000, 0xfb3c95c300000000, 0xa282d3c100000000, + 0x95e811c000000000, 0xa8af4dcb00000000, 0x9fc58fca00000000, + 0xc67bc9c800000000, 0xf1110bc900000000, 0x740744cc00000000, + 0x436d86cd00000000, 0x1ad3c0cf00000000, 0x2db902ce00000000, + 0x4096af9100000000, 0x77fc6d9000000000, 0x2e422b9200000000, + 0x1928e99300000000, 0x9c3ea69600000000, 0xab54649700000000, + 0xf2ea229500000000, 0xc580e09400000000, 0xf8c7bc9f00000000, + 0xcfad7e9e00000000, 0x9613389c00000000, 0xa179fa9d00000000, + 0x246fb59800000000, 0x1305779900000000, 0x4abb319b00000000, + 0x7dd1f39a00000000, 0x3035898d00000000, 0x075f4b8c00000000, + 0x5ee10d8e00000000, 0x698bcf8f00000000, 0xec9d808a00000000, + 0xdbf7428b00000000, 0x8249048900000000, 0xb523c68800000000, + 0x88649a8300000000, 0xbf0e588200000000, 0xe6b01e8000000000, + 0xd1dadc8100000000, 0x54cc938400000000, 0x63a6518500000000, + 0x3a18178700000000, 0x0d72d58600000000, 0xa0d0e2a900000000, + 0x97ba20a800000000, 0xce0466aa00000000, 0xf96ea4ab00000000, + 0x7c78ebae00000000, 0x4b1229af00000000, 0x12ac6fad00000000, + 0x25c6adac00000000, 0x1881f1a700000000, 0x2feb33a600000000, + 0x765575a400000000, 0x413fb7a500000000, 0xc429f8a000000000, + 0xf3433aa100000000, 0xaafd7ca300000000, 0x9d97bea200000000, + 0xd073c4b500000000, 0xe71906b400000000, 0xbea740b600000000, + 0x89cd82b700000000, 0x0cdbcdb200000000, 0x3bb10fb300000000, + 0x620f49b100000000, 0x55658bb000000000, 0x6822d7bb00000000, + 0x5f4815ba00000000, 0x06f653b800000000, 0x319c91b900000000, + 0xb48adebc00000000, 0x83e01cbd00000000, 0xda5e5abf00000000, + 0xed3498be00000000}, + {0x0000000000000000, 0x6567bcb800000000, 0x8bc809aa00000000, + 0xeeafb51200000000, 0x5797628f00000000, 0x32f0de3700000000, + 0xdc5f6b2500000000, 0xb938d79d00000000, 0xef28b4c500000000, + 0x8a4f087d00000000, 0x64e0bd6f00000000, 0x018701d700000000, + 0xb8bfd64a00000000, 0xddd86af200000000, 0x3377dfe000000000, + 0x5610635800000000, 0x9f57195000000000, 0xfa30a5e800000000, + 0x149f10fa00000000, 0x71f8ac4200000000, 0xc8c07bdf00000000, + 0xada7c76700000000, 0x4308727500000000, 0x266fcecd00000000, + 0x707fad9500000000, 0x1518112d00000000, 0xfbb7a43f00000000, + 0x9ed0188700000000, 0x27e8cf1a00000000, 0x428f73a200000000, + 0xac20c6b000000000, 0xc9477a0800000000, 0x3eaf32a000000000, + 0x5bc88e1800000000, 0xb5673b0a00000000, 0xd00087b200000000, + 0x6938502f00000000, 0x0c5fec9700000000, 0xe2f0598500000000, + 0x8797e53d00000000, 0xd187866500000000, 0xb4e03add00000000, + 0x5a4f8fcf00000000, 0x3f28337700000000, 0x8610e4ea00000000, + 0xe377585200000000, 0x0dd8ed4000000000, 0x68bf51f800000000, + 0xa1f82bf000000000, 0xc49f974800000000, 0x2a30225a00000000, + 0x4f579ee200000000, 0xf66f497f00000000, 0x9308f5c700000000, + 0x7da740d500000000, 0x18c0fc6d00000000, 0x4ed09f3500000000, + 0x2bb7238d00000000, 0xc518969f00000000, 0xa07f2a2700000000, + 0x1947fdba00000000, 0x7c20410200000000, 0x928ff41000000000, + 0xf7e848a800000000, 0x3d58149b00000000, 0x583fa82300000000, + 0xb6901d3100000000, 0xd3f7a18900000000, 0x6acf761400000000, + 0x0fa8caac00000000, 0xe1077fbe00000000, 0x8460c30600000000, + 0xd270a05e00000000, 0xb7171ce600000000, 0x59b8a9f400000000, + 0x3cdf154c00000000, 0x85e7c2d100000000, 0xe0807e6900000000, + 0x0e2fcb7b00000000, 0x6b4877c300000000, 0xa20f0dcb00000000, + 0xc768b17300000000, 0x29c7046100000000, 0x4ca0b8d900000000, + 0xf5986f4400000000, 0x90ffd3fc00000000, 0x7e5066ee00000000, + 0x1b37da5600000000, 0x4d27b90e00000000, 0x284005b600000000, + 0xc6efb0a400000000, 0xa3880c1c00000000, 0x1ab0db8100000000, + 0x7fd7673900000000, 0x9178d22b00000000, 0xf41f6e9300000000, + 0x03f7263b00000000, 0x66909a8300000000, 0x883f2f9100000000, + 0xed58932900000000, 0x546044b400000000, 0x3107f80c00000000, + 0xdfa84d1e00000000, 0xbacff1a600000000, 0xecdf92fe00000000, + 0x89b82e4600000000, 0x67179b5400000000, 0x027027ec00000000, + 0xbb48f07100000000, 0xde2f4cc900000000, 0x3080f9db00000000, + 0x55e7456300000000, 0x9ca03f6b00000000, 0xf9c783d300000000, + 0x176836c100000000, 0x720f8a7900000000, 0xcb375de400000000, + 0xae50e15c00000000, 0x40ff544e00000000, 0x2598e8f600000000, + 0x73888bae00000000, 0x16ef371600000000, 0xf840820400000000, + 0x9d273ebc00000000, 0x241fe92100000000, 0x4178559900000000, + 0xafd7e08b00000000, 0xcab05c3300000000, 0x3bb659ed00000000, + 0x5ed1e55500000000, 0xb07e504700000000, 0xd519ecff00000000, + 0x6c213b6200000000, 0x094687da00000000, 0xe7e932c800000000, + 0x828e8e7000000000, 0xd49eed2800000000, 0xb1f9519000000000, + 0x5f56e48200000000, 0x3a31583a00000000, 0x83098fa700000000, + 0xe66e331f00000000, 0x08c1860d00000000, 0x6da63ab500000000, + 0xa4e140bd00000000, 0xc186fc0500000000, 0x2f29491700000000, + 0x4a4ef5af00000000, 0xf376223200000000, 0x96119e8a00000000, + 0x78be2b9800000000, 0x1dd9972000000000, 0x4bc9f47800000000, + 0x2eae48c000000000, 0xc001fdd200000000, 0xa566416a00000000, + 0x1c5e96f700000000, 0x79392a4f00000000, 0x97969f5d00000000, + 0xf2f123e500000000, 0x05196b4d00000000, 0x607ed7f500000000, + 0x8ed162e700000000, 0xebb6de5f00000000, 0x528e09c200000000, + 0x37e9b57a00000000, 0xd946006800000000, 0xbc21bcd000000000, + 0xea31df8800000000, 0x8f56633000000000, 0x61f9d62200000000, + 0x049e6a9a00000000, 0xbda6bd0700000000, 0xd8c101bf00000000, + 0x366eb4ad00000000, 0x5309081500000000, 0x9a4e721d00000000, + 0xff29cea500000000, 0x11867bb700000000, 0x74e1c70f00000000, + 0xcdd9109200000000, 0xa8beac2a00000000, 0x4611193800000000, + 0x2376a58000000000, 0x7566c6d800000000, 0x10017a6000000000, + 0xfeaecf7200000000, 0x9bc973ca00000000, 0x22f1a45700000000, + 0x479618ef00000000, 0xa939adfd00000000, 0xcc5e114500000000, + 0x06ee4d7600000000, 0x6389f1ce00000000, 0x8d2644dc00000000, + 0xe841f86400000000, 0x51792ff900000000, 0x341e934100000000, + 0xdab1265300000000, 0xbfd69aeb00000000, 0xe9c6f9b300000000, + 0x8ca1450b00000000, 0x620ef01900000000, 0x07694ca100000000, + 0xbe519b3c00000000, 0xdb36278400000000, 0x3599929600000000, + 0x50fe2e2e00000000, 0x99b9542600000000, 0xfcdee89e00000000, + 0x12715d8c00000000, 0x7716e13400000000, 0xce2e36a900000000, + 0xab498a1100000000, 0x45e63f0300000000, 0x208183bb00000000, + 0x7691e0e300000000, 0x13f65c5b00000000, 0xfd59e94900000000, + 0x983e55f100000000, 0x2106826c00000000, 0x44613ed400000000, + 0xaace8bc600000000, 0xcfa9377e00000000, 0x38417fd600000000, + 0x5d26c36e00000000, 0xb389767c00000000, 0xd6eecac400000000, + 0x6fd61d5900000000, 0x0ab1a1e100000000, 0xe41e14f300000000, + 0x8179a84b00000000, 0xd769cb1300000000, 0xb20e77ab00000000, + 0x5ca1c2b900000000, 0x39c67e0100000000, 0x80fea99c00000000, + 0xe599152400000000, 0x0b36a03600000000, 0x6e511c8e00000000, + 0xa716668600000000, 0xc271da3e00000000, 0x2cde6f2c00000000, + 0x49b9d39400000000, 0xf081040900000000, 0x95e6b8b100000000, + 0x7b490da300000000, 0x1e2eb11b00000000, 0x483ed24300000000, + 0x2d596efb00000000, 0xc3f6dbe900000000, 0xa691675100000000, + 0x1fa9b0cc00000000, 0x7ace0c7400000000, 0x9461b96600000000, + 0xf10605de00000000}, + {0x0000000000000000, 0xb029603d00000000, 0x6053c07a00000000, + 0xd07aa04700000000, 0xc0a680f500000000, 0x708fe0c800000000, + 0xa0f5408f00000000, 0x10dc20b200000000, 0xc14b703000000000, + 0x7162100d00000000, 0xa118b04a00000000, 0x1131d07700000000, + 0x01edf0c500000000, 0xb1c490f800000000, 0x61be30bf00000000, + 0xd197508200000000, 0x8297e06000000000, 0x32be805d00000000, + 0xe2c4201a00000000, 0x52ed402700000000, 0x4231609500000000, + 0xf21800a800000000, 0x2262a0ef00000000, 0x924bc0d200000000, + 0x43dc905000000000, 0xf3f5f06d00000000, 0x238f502a00000000, + 0x93a6301700000000, 0x837a10a500000000, 0x3353709800000000, + 0xe329d0df00000000, 0x5300b0e200000000, 0x042fc1c100000000, + 0xb406a1fc00000000, 0x647c01bb00000000, 0xd455618600000000, + 0xc489413400000000, 0x74a0210900000000, 0xa4da814e00000000, + 0x14f3e17300000000, 0xc564b1f100000000, 0x754dd1cc00000000, + 0xa537718b00000000, 0x151e11b600000000, 0x05c2310400000000, + 0xb5eb513900000000, 0x6591f17e00000000, 0xd5b8914300000000, + 0x86b821a100000000, 0x3691419c00000000, 0xe6ebe1db00000000, + 0x56c281e600000000, 0x461ea15400000000, 0xf637c16900000000, + 0x264d612e00000000, 0x9664011300000000, 0x47f3519100000000, + 0xf7da31ac00000000, 0x27a091eb00000000, 0x9789f1d600000000, + 0x8755d16400000000, 0x377cb15900000000, 0xe706111e00000000, + 0x572f712300000000, 0x4958f35800000000, 0xf971936500000000, + 0x290b332200000000, 0x9922531f00000000, 0x89fe73ad00000000, + 0x39d7139000000000, 0xe9adb3d700000000, 0x5984d3ea00000000, + 0x8813836800000000, 0x383ae35500000000, 0xe840431200000000, + 0x5869232f00000000, 0x48b5039d00000000, 0xf89c63a000000000, + 0x28e6c3e700000000, 0x98cfa3da00000000, 0xcbcf133800000000, + 0x7be6730500000000, 0xab9cd34200000000, 0x1bb5b37f00000000, + 0x0b6993cd00000000, 0xbb40f3f000000000, 0x6b3a53b700000000, + 0xdb13338a00000000, 0x0a84630800000000, 0xbaad033500000000, + 0x6ad7a37200000000, 0xdafec34f00000000, 0xca22e3fd00000000, + 0x7a0b83c000000000, 0xaa71238700000000, 0x1a5843ba00000000, + 0x4d77329900000000, 0xfd5e52a400000000, 0x2d24f2e300000000, + 0x9d0d92de00000000, 0x8dd1b26c00000000, 0x3df8d25100000000, + 0xed82721600000000, 0x5dab122b00000000, 0x8c3c42a900000000, + 0x3c15229400000000, 0xec6f82d300000000, 0x5c46e2ee00000000, + 0x4c9ac25c00000000, 0xfcb3a26100000000, 0x2cc9022600000000, + 0x9ce0621b00000000, 0xcfe0d2f900000000, 0x7fc9b2c400000000, + 0xafb3128300000000, 0x1f9a72be00000000, 0x0f46520c00000000, + 0xbf6f323100000000, 0x6f15927600000000, 0xdf3cf24b00000000, + 0x0eaba2c900000000, 0xbe82c2f400000000, 0x6ef862b300000000, + 0xded1028e00000000, 0xce0d223c00000000, 0x7e24420100000000, + 0xae5ee24600000000, 0x1e77827b00000000, 0x92b0e6b100000000, + 0x2299868c00000000, 0xf2e326cb00000000, 0x42ca46f600000000, + 0x5216664400000000, 0xe23f067900000000, 0x3245a63e00000000, + 0x826cc60300000000, 0x53fb968100000000, 0xe3d2f6bc00000000, + 0x33a856fb00000000, 0x838136c600000000, 0x935d167400000000, + 0x2374764900000000, 0xf30ed60e00000000, 0x4327b63300000000, + 0x102706d100000000, 0xa00e66ec00000000, 0x7074c6ab00000000, + 0xc05da69600000000, 0xd081862400000000, 0x60a8e61900000000, + 0xb0d2465e00000000, 0x00fb266300000000, 0xd16c76e100000000, + 0x614516dc00000000, 0xb13fb69b00000000, 0x0116d6a600000000, + 0x11caf61400000000, 0xa1e3962900000000, 0x7199366e00000000, + 0xc1b0565300000000, 0x969f277000000000, 0x26b6474d00000000, + 0xf6cce70a00000000, 0x46e5873700000000, 0x5639a78500000000, + 0xe610c7b800000000, 0x366a67ff00000000, 0x864307c200000000, + 0x57d4574000000000, 0xe7fd377d00000000, 0x3787973a00000000, + 0x87aef70700000000, 0x9772d7b500000000, 0x275bb78800000000, + 0xf72117cf00000000, 0x470877f200000000, 0x1408c71000000000, + 0xa421a72d00000000, 0x745b076a00000000, 0xc472675700000000, + 0xd4ae47e500000000, 0x648727d800000000, 0xb4fd879f00000000, + 0x04d4e7a200000000, 0xd543b72000000000, 0x656ad71d00000000, + 0xb510775a00000000, 0x0539176700000000, 0x15e537d500000000, + 0xa5cc57e800000000, 0x75b6f7af00000000, 0xc59f979200000000, + 0xdbe815e900000000, 0x6bc175d400000000, 0xbbbbd59300000000, + 0x0b92b5ae00000000, 0x1b4e951c00000000, 0xab67f52100000000, + 0x7b1d556600000000, 0xcb34355b00000000, 0x1aa365d900000000, + 0xaa8a05e400000000, 0x7af0a5a300000000, 0xcad9c59e00000000, + 0xda05e52c00000000, 0x6a2c851100000000, 0xba56255600000000, + 0x0a7f456b00000000, 0x597ff58900000000, 0xe95695b400000000, + 0x392c35f300000000, 0x890555ce00000000, 0x99d9757c00000000, + 0x29f0154100000000, 0xf98ab50600000000, 0x49a3d53b00000000, + 0x983485b900000000, 0x281de58400000000, 0xf86745c300000000, + 0x484e25fe00000000, 0x5892054c00000000, 0xe8bb657100000000, + 0x38c1c53600000000, 0x88e8a50b00000000, 0xdfc7d42800000000, + 0x6feeb41500000000, 0xbf94145200000000, 0x0fbd746f00000000, + 0x1f6154dd00000000, 0xaf4834e000000000, 0x7f3294a700000000, + 0xcf1bf49a00000000, 0x1e8ca41800000000, 0xaea5c42500000000, + 0x7edf646200000000, 0xcef6045f00000000, 0xde2a24ed00000000, + 0x6e0344d000000000, 0xbe79e49700000000, 0x0e5084aa00000000, + 0x5d50344800000000, 0xed79547500000000, 0x3d03f43200000000, + 0x8d2a940f00000000, 0x9df6b4bd00000000, 0x2ddfd48000000000, + 0xfda574c700000000, 0x4d8c14fa00000000, 0x9c1b447800000000, + 0x2c32244500000000, 0xfc48840200000000, 0x4c61e43f00000000, + 0x5cbdc48d00000000, 0xec94a4b000000000, 0x3cee04f700000000, + 0x8cc764ca00000000}, + {0x0000000000000000, 0xa5d35ccb00000000, 0x0ba1c84d00000000, + 0xae72948600000000, 0x1642919b00000000, 0xb391cd5000000000, + 0x1de359d600000000, 0xb830051d00000000, 0x6d8253ec00000000, + 0xc8510f2700000000, 0x66239ba100000000, 0xc3f0c76a00000000, + 0x7bc0c27700000000, 0xde139ebc00000000, 0x70610a3a00000000, + 0xd5b256f100000000, 0x9b02d60300000000, 0x3ed18ac800000000, + 0x90a31e4e00000000, 0x3570428500000000, 0x8d40479800000000, + 0x28931b5300000000, 0x86e18fd500000000, 0x2332d31e00000000, + 0xf68085ef00000000, 0x5353d92400000000, 0xfd214da200000000, + 0x58f2116900000000, 0xe0c2147400000000, 0x451148bf00000000, + 0xeb63dc3900000000, 0x4eb080f200000000, 0x3605ac0700000000, + 0x93d6f0cc00000000, 0x3da4644a00000000, 0x9877388100000000, + 0x20473d9c00000000, 0x8594615700000000, 0x2be6f5d100000000, + 0x8e35a91a00000000, 0x5b87ffeb00000000, 0xfe54a32000000000, + 0x502637a600000000, 0xf5f56b6d00000000, 0x4dc56e7000000000, + 0xe81632bb00000000, 0x4664a63d00000000, 0xe3b7faf600000000, + 0xad077a0400000000, 0x08d426cf00000000, 0xa6a6b24900000000, + 0x0375ee8200000000, 0xbb45eb9f00000000, 0x1e96b75400000000, + 0xb0e423d200000000, 0x15377f1900000000, 0xc08529e800000000, + 0x6556752300000000, 0xcb24e1a500000000, 0x6ef7bd6e00000000, + 0xd6c7b87300000000, 0x7314e4b800000000, 0xdd66703e00000000, + 0x78b52cf500000000, 0x6c0a580f00000000, 0xc9d904c400000000, + 0x67ab904200000000, 0xc278cc8900000000, 0x7a48c99400000000, + 0xdf9b955f00000000, 0x71e901d900000000, 0xd43a5d1200000000, + 0x01880be300000000, 0xa45b572800000000, 0x0a29c3ae00000000, + 0xaffa9f6500000000, 0x17ca9a7800000000, 0xb219c6b300000000, + 0x1c6b523500000000, 0xb9b80efe00000000, 0xf7088e0c00000000, + 0x52dbd2c700000000, 0xfca9464100000000, 0x597a1a8a00000000, + 0xe14a1f9700000000, 0x4499435c00000000, 0xeaebd7da00000000, + 0x4f388b1100000000, 0x9a8adde000000000, 0x3f59812b00000000, + 0x912b15ad00000000, 0x34f8496600000000, 0x8cc84c7b00000000, + 0x291b10b000000000, 0x8769843600000000, 0x22bad8fd00000000, + 0x5a0ff40800000000, 0xffdca8c300000000, 0x51ae3c4500000000, + 0xf47d608e00000000, 0x4c4d659300000000, 0xe99e395800000000, + 0x47ecadde00000000, 0xe23ff11500000000, 0x378da7e400000000, + 0x925efb2f00000000, 0x3c2c6fa900000000, 0x99ff336200000000, + 0x21cf367f00000000, 0x841c6ab400000000, 0x2a6efe3200000000, + 0x8fbda2f900000000, 0xc10d220b00000000, 0x64de7ec000000000, + 0xcaacea4600000000, 0x6f7fb68d00000000, 0xd74fb39000000000, + 0x729cef5b00000000, 0xdcee7bdd00000000, 0x793d271600000000, + 0xac8f71e700000000, 0x095c2d2c00000000, 0xa72eb9aa00000000, + 0x02fde56100000000, 0xbacde07c00000000, 0x1f1ebcb700000000, + 0xb16c283100000000, 0x14bf74fa00000000, 0xd814b01e00000000, + 0x7dc7ecd500000000, 0xd3b5785300000000, 0x7666249800000000, + 0xce56218500000000, 0x6b857d4e00000000, 0xc5f7e9c800000000, + 0x6024b50300000000, 0xb596e3f200000000, 0x1045bf3900000000, + 0xbe372bbf00000000, 0x1be4777400000000, 0xa3d4726900000000, + 0x06072ea200000000, 0xa875ba2400000000, 0x0da6e6ef00000000, + 0x4316661d00000000, 0xe6c53ad600000000, 0x48b7ae5000000000, + 0xed64f29b00000000, 0x5554f78600000000, 0xf087ab4d00000000, + 0x5ef53fcb00000000, 0xfb26630000000000, 0x2e9435f100000000, + 0x8b47693a00000000, 0x2535fdbc00000000, 0x80e6a17700000000, + 0x38d6a46a00000000, 0x9d05f8a100000000, 0x33776c2700000000, + 0x96a430ec00000000, 0xee111c1900000000, 0x4bc240d200000000, + 0xe5b0d45400000000, 0x4063889f00000000, 0xf8538d8200000000, + 0x5d80d14900000000, 0xf3f245cf00000000, 0x5621190400000000, + 0x83934ff500000000, 0x2640133e00000000, 0x883287b800000000, + 0x2de1db7300000000, 0x95d1de6e00000000, 0x300282a500000000, + 0x9e70162300000000, 0x3ba34ae800000000, 0x7513ca1a00000000, + 0xd0c096d100000000, 0x7eb2025700000000, 0xdb615e9c00000000, + 0x63515b8100000000, 0xc682074a00000000, 0x68f093cc00000000, + 0xcd23cf0700000000, 0x189199f600000000, 0xbd42c53d00000000, + 0x133051bb00000000, 0xb6e30d7000000000, 0x0ed3086d00000000, + 0xab0054a600000000, 0x0572c02000000000, 0xa0a19ceb00000000, + 0xb41ee81100000000, 0x11cdb4da00000000, 0xbfbf205c00000000, + 0x1a6c7c9700000000, 0xa25c798a00000000, 0x078f254100000000, + 0xa9fdb1c700000000, 0x0c2eed0c00000000, 0xd99cbbfd00000000, + 0x7c4fe73600000000, 0xd23d73b000000000, 0x77ee2f7b00000000, + 0xcfde2a6600000000, 0x6a0d76ad00000000, 0xc47fe22b00000000, + 0x61acbee000000000, 0x2f1c3e1200000000, 0x8acf62d900000000, + 0x24bdf65f00000000, 0x816eaa9400000000, 0x395eaf8900000000, + 0x9c8df34200000000, 0x32ff67c400000000, 0x972c3b0f00000000, + 0x429e6dfe00000000, 0xe74d313500000000, 0x493fa5b300000000, + 0xececf97800000000, 0x54dcfc6500000000, 0xf10fa0ae00000000, + 0x5f7d342800000000, 0xfaae68e300000000, 0x821b441600000000, + 0x27c818dd00000000, 0x89ba8c5b00000000, 0x2c69d09000000000, + 0x9459d58d00000000, 0x318a894600000000, 0x9ff81dc000000000, + 0x3a2b410b00000000, 0xef9917fa00000000, 0x4a4a4b3100000000, + 0xe438dfb700000000, 0x41eb837c00000000, 0xf9db866100000000, + 0x5c08daaa00000000, 0xf27a4e2c00000000, 0x57a912e700000000, + 0x1919921500000000, 0xbccacede00000000, 0x12b85a5800000000, + 0xb76b069300000000, 0x0f5b038e00000000, 0xaa885f4500000000, + 0x04facbc300000000, 0xa129970800000000, 0x749bc1f900000000, + 0xd1489d3200000000, 0x7f3a09b400000000, 0xdae9557f00000000, + 0x62d9506200000000, 0xc70a0ca900000000, 0x6978982f00000000, + 0xccabc4e400000000}, + {0x0000000000000000, 0xb40b77a600000000, 0x29119f9700000000, + 0x9d1ae83100000000, 0x13244ff400000000, 0xa72f385200000000, + 0x3a35d06300000000, 0x8e3ea7c500000000, 0x674eef3300000000, + 0xd345989500000000, 0x4e5f70a400000000, 0xfa54070200000000, + 0x746aa0c700000000, 0xc061d76100000000, 0x5d7b3f5000000000, + 0xe97048f600000000, 0xce9cde6700000000, 0x7a97a9c100000000, + 0xe78d41f000000000, 0x5386365600000000, 0xddb8919300000000, + 0x69b3e63500000000, 0xf4a90e0400000000, 0x40a279a200000000, + 0xa9d2315400000000, 0x1dd946f200000000, 0x80c3aec300000000, + 0x34c8d96500000000, 0xbaf67ea000000000, 0x0efd090600000000, + 0x93e7e13700000000, 0x27ec969100000000, 0x9c39bdcf00000000, + 0x2832ca6900000000, 0xb528225800000000, 0x012355fe00000000, + 0x8f1df23b00000000, 0x3b16859d00000000, 0xa60c6dac00000000, + 0x12071a0a00000000, 0xfb7752fc00000000, 0x4f7c255a00000000, + 0xd266cd6b00000000, 0x666dbacd00000000, 0xe8531d0800000000, + 0x5c586aae00000000, 0xc142829f00000000, 0x7549f53900000000, + 0x52a563a800000000, 0xe6ae140e00000000, 0x7bb4fc3f00000000, + 0xcfbf8b9900000000, 0x41812c5c00000000, 0xf58a5bfa00000000, + 0x6890b3cb00000000, 0xdc9bc46d00000000, 0x35eb8c9b00000000, + 0x81e0fb3d00000000, 0x1cfa130c00000000, 0xa8f164aa00000000, + 0x26cfc36f00000000, 0x92c4b4c900000000, 0x0fde5cf800000000, + 0xbbd52b5e00000000, 0x79750b4400000000, 0xcd7e7ce200000000, + 0x506494d300000000, 0xe46fe37500000000, 0x6a5144b000000000, + 0xde5a331600000000, 0x4340db2700000000, 0xf74bac8100000000, + 0x1e3be47700000000, 0xaa3093d100000000, 0x372a7be000000000, + 0x83210c4600000000, 0x0d1fab8300000000, 0xb914dc2500000000, + 0x240e341400000000, 0x900543b200000000, 0xb7e9d52300000000, + 0x03e2a28500000000, 0x9ef84ab400000000, 0x2af33d1200000000, + 0xa4cd9ad700000000, 0x10c6ed7100000000, 0x8ddc054000000000, + 0x39d772e600000000, 0xd0a73a1000000000, 0x64ac4db600000000, + 0xf9b6a58700000000, 0x4dbdd22100000000, 0xc38375e400000000, + 0x7788024200000000, 0xea92ea7300000000, 0x5e999dd500000000, + 0xe54cb68b00000000, 0x5147c12d00000000, 0xcc5d291c00000000, + 0x78565eba00000000, 0xf668f97f00000000, 0x42638ed900000000, + 0xdf7966e800000000, 0x6b72114e00000000, 0x820259b800000000, + 0x36092e1e00000000, 0xab13c62f00000000, 0x1f18b18900000000, + 0x9126164c00000000, 0x252d61ea00000000, 0xb83789db00000000, + 0x0c3cfe7d00000000, 0x2bd068ec00000000, 0x9fdb1f4a00000000, + 0x02c1f77b00000000, 0xb6ca80dd00000000, 0x38f4271800000000, + 0x8cff50be00000000, 0x11e5b88f00000000, 0xa5eecf2900000000, + 0x4c9e87df00000000, 0xf895f07900000000, 0x658f184800000000, + 0xd1846fee00000000, 0x5fbac82b00000000, 0xebb1bf8d00000000, + 0x76ab57bc00000000, 0xc2a0201a00000000, 0xf2ea168800000000, + 0x46e1612e00000000, 0xdbfb891f00000000, 0x6ff0feb900000000, + 0xe1ce597c00000000, 0x55c52eda00000000, 0xc8dfc6eb00000000, + 0x7cd4b14d00000000, 0x95a4f9bb00000000, 0x21af8e1d00000000, + 0xbcb5662c00000000, 0x08be118a00000000, 0x8680b64f00000000, + 0x328bc1e900000000, 0xaf9129d800000000, 0x1b9a5e7e00000000, + 0x3c76c8ef00000000, 0x887dbf4900000000, 0x1567577800000000, + 0xa16c20de00000000, 0x2f52871b00000000, 0x9b59f0bd00000000, + 0x0643188c00000000, 0xb2486f2a00000000, 0x5b3827dc00000000, + 0xef33507a00000000, 0x7229b84b00000000, 0xc622cfed00000000, + 0x481c682800000000, 0xfc171f8e00000000, 0x610df7bf00000000, + 0xd506801900000000, 0x6ed3ab4700000000, 0xdad8dce100000000, + 0x47c234d000000000, 0xf3c9437600000000, 0x7df7e4b300000000, + 0xc9fc931500000000, 0x54e67b2400000000, 0xe0ed0c8200000000, + 0x099d447400000000, 0xbd9633d200000000, 0x208cdbe300000000, + 0x9487ac4500000000, 0x1ab90b8000000000, 0xaeb27c2600000000, + 0x33a8941700000000, 0x87a3e3b100000000, 0xa04f752000000000, + 0x1444028600000000, 0x895eeab700000000, 0x3d559d1100000000, + 0xb36b3ad400000000, 0x07604d7200000000, 0x9a7aa54300000000, + 0x2e71d2e500000000, 0xc7019a1300000000, 0x730aedb500000000, + 0xee10058400000000, 0x5a1b722200000000, 0xd425d5e700000000, + 0x602ea24100000000, 0xfd344a7000000000, 0x493f3dd600000000, + 0x8b9f1dcc00000000, 0x3f946a6a00000000, 0xa28e825b00000000, + 0x1685f5fd00000000, 0x98bb523800000000, 0x2cb0259e00000000, + 0xb1aacdaf00000000, 0x05a1ba0900000000, 0xecd1f2ff00000000, + 0x58da855900000000, 0xc5c06d6800000000, 0x71cb1ace00000000, + 0xfff5bd0b00000000, 0x4bfecaad00000000, 0xd6e4229c00000000, + 0x62ef553a00000000, 0x4503c3ab00000000, 0xf108b40d00000000, + 0x6c125c3c00000000, 0xd8192b9a00000000, 0x56278c5f00000000, + 0xe22cfbf900000000, 0x7f3613c800000000, 0xcb3d646e00000000, + 0x224d2c9800000000, 0x96465b3e00000000, 0x0b5cb30f00000000, + 0xbf57c4a900000000, 0x3169636c00000000, 0x856214ca00000000, + 0x1878fcfb00000000, 0xac738b5d00000000, 0x17a6a00300000000, + 0xa3add7a500000000, 0x3eb73f9400000000, 0x8abc483200000000, + 0x0482eff700000000, 0xb089985100000000, 0x2d93706000000000, + 0x999807c600000000, 0x70e84f3000000000, 0xc4e3389600000000, + 0x59f9d0a700000000, 0xedf2a70100000000, 0x63cc00c400000000, + 0xd7c7776200000000, 0x4add9f5300000000, 0xfed6e8f500000000, + 0xd93a7e6400000000, 0x6d3109c200000000, 0xf02be1f300000000, + 0x4420965500000000, 0xca1e319000000000, 0x7e15463600000000, + 0xe30fae0700000000, 0x5704d9a100000000, 0xbe74915700000000, + 0x0a7fe6f100000000, 0x97650ec000000000, 0x236e796600000000, + 0xad50dea300000000, 0x195ba90500000000, 0x8441413400000000, + 0x304a369200000000}, + {0x0000000000000000, 0x9e00aacc00000000, 0x7d07254200000000, + 0xe3078f8e00000000, 0xfa0e4a8400000000, 0x640ee04800000000, + 0x87096fc600000000, 0x1909c50a00000000, 0xb51be5d300000000, + 0x2b1b4f1f00000000, 0xc81cc09100000000, 0x561c6a5d00000000, + 0x4f15af5700000000, 0xd115059b00000000, 0x32128a1500000000, + 0xac1220d900000000, 0x2b31bb7c00000000, 0xb53111b000000000, + 0x56369e3e00000000, 0xc83634f200000000, 0xd13ff1f800000000, + 0x4f3f5b3400000000, 0xac38d4ba00000000, 0x32387e7600000000, + 0x9e2a5eaf00000000, 0x002af46300000000, 0xe32d7bed00000000, + 0x7d2dd12100000000, 0x6424142b00000000, 0xfa24bee700000000, + 0x1923316900000000, 0x87239ba500000000, 0x566276f900000000, + 0xc862dc3500000000, 0x2b6553bb00000000, 0xb565f97700000000, + 0xac6c3c7d00000000, 0x326c96b100000000, 0xd16b193f00000000, + 0x4f6bb3f300000000, 0xe379932a00000000, 0x7d7939e600000000, + 0x9e7eb66800000000, 0x007e1ca400000000, 0x1977d9ae00000000, + 0x8777736200000000, 0x6470fcec00000000, 0xfa70562000000000, + 0x7d53cd8500000000, 0xe353674900000000, 0x0054e8c700000000, + 0x9e54420b00000000, 0x875d870100000000, 0x195d2dcd00000000, + 0xfa5aa24300000000, 0x645a088f00000000, 0xc848285600000000, + 0x5648829a00000000, 0xb54f0d1400000000, 0x2b4fa7d800000000, + 0x324662d200000000, 0xac46c81e00000000, 0x4f41479000000000, + 0xd141ed5c00000000, 0xedc29d2900000000, 0x73c237e500000000, + 0x90c5b86b00000000, 0x0ec512a700000000, 0x17ccd7ad00000000, + 0x89cc7d6100000000, 0x6acbf2ef00000000, 0xf4cb582300000000, + 0x58d978fa00000000, 0xc6d9d23600000000, 0x25de5db800000000, + 0xbbdef77400000000, 0xa2d7327e00000000, 0x3cd798b200000000, + 0xdfd0173c00000000, 0x41d0bdf000000000, 0xc6f3265500000000, + 0x58f38c9900000000, 0xbbf4031700000000, 0x25f4a9db00000000, + 0x3cfd6cd100000000, 0xa2fdc61d00000000, 0x41fa499300000000, + 0xdffae35f00000000, 0x73e8c38600000000, 0xede8694a00000000, + 0x0eefe6c400000000, 0x90ef4c0800000000, 0x89e6890200000000, + 0x17e623ce00000000, 0xf4e1ac4000000000, 0x6ae1068c00000000, + 0xbba0ebd000000000, 0x25a0411c00000000, 0xc6a7ce9200000000, + 0x58a7645e00000000, 0x41aea15400000000, 0xdfae0b9800000000, + 0x3ca9841600000000, 0xa2a92eda00000000, 0x0ebb0e0300000000, + 0x90bba4cf00000000, 0x73bc2b4100000000, 0xedbc818d00000000, + 0xf4b5448700000000, 0x6ab5ee4b00000000, 0x89b261c500000000, + 0x17b2cb0900000000, 0x909150ac00000000, 0x0e91fa6000000000, + 0xed9675ee00000000, 0x7396df2200000000, 0x6a9f1a2800000000, + 0xf49fb0e400000000, 0x17983f6a00000000, 0x899895a600000000, + 0x258ab57f00000000, 0xbb8a1fb300000000, 0x588d903d00000000, + 0xc68d3af100000000, 0xdf84fffb00000000, 0x4184553700000000, + 0xa283dab900000000, 0x3c83707500000000, 0xda853b5300000000, + 0x4485919f00000000, 0xa7821e1100000000, 0x3982b4dd00000000, + 0x208b71d700000000, 0xbe8bdb1b00000000, 0x5d8c549500000000, + 0xc38cfe5900000000, 0x6f9ede8000000000, 0xf19e744c00000000, + 0x1299fbc200000000, 0x8c99510e00000000, 0x9590940400000000, + 0x0b903ec800000000, 0xe897b14600000000, 0x76971b8a00000000, + 0xf1b4802f00000000, 0x6fb42ae300000000, 0x8cb3a56d00000000, + 0x12b30fa100000000, 0x0bbacaab00000000, 0x95ba606700000000, + 0x76bdefe900000000, 0xe8bd452500000000, 0x44af65fc00000000, + 0xdaafcf3000000000, 0x39a840be00000000, 0xa7a8ea7200000000, + 0xbea12f7800000000, 0x20a185b400000000, 0xc3a60a3a00000000, + 0x5da6a0f600000000, 0x8ce74daa00000000, 0x12e7e76600000000, + 0xf1e068e800000000, 0x6fe0c22400000000, 0x76e9072e00000000, + 0xe8e9ade200000000, 0x0bee226c00000000, 0x95ee88a000000000, + 0x39fca87900000000, 0xa7fc02b500000000, 0x44fb8d3b00000000, + 0xdafb27f700000000, 0xc3f2e2fd00000000, 0x5df2483100000000, + 0xbef5c7bf00000000, 0x20f56d7300000000, 0xa7d6f6d600000000, + 0x39d65c1a00000000, 0xdad1d39400000000, 0x44d1795800000000, + 0x5dd8bc5200000000, 0xc3d8169e00000000, 0x20df991000000000, + 0xbedf33dc00000000, 0x12cd130500000000, 0x8ccdb9c900000000, + 0x6fca364700000000, 0xf1ca9c8b00000000, 0xe8c3598100000000, + 0x76c3f34d00000000, 0x95c47cc300000000, 0x0bc4d60f00000000, + 0x3747a67a00000000, 0xa9470cb600000000, 0x4a40833800000000, + 0xd44029f400000000, 0xcd49ecfe00000000, 0x5349463200000000, + 0xb04ec9bc00000000, 0x2e4e637000000000, 0x825c43a900000000, + 0x1c5ce96500000000, 0xff5b66eb00000000, 0x615bcc2700000000, + 0x7852092d00000000, 0xe652a3e100000000, 0x05552c6f00000000, + 0x9b5586a300000000, 0x1c761d0600000000, 0x8276b7ca00000000, + 0x6171384400000000, 0xff71928800000000, 0xe678578200000000, + 0x7878fd4e00000000, 0x9b7f72c000000000, 0x057fd80c00000000, + 0xa96df8d500000000, 0x376d521900000000, 0xd46add9700000000, + 0x4a6a775b00000000, 0x5363b25100000000, 0xcd63189d00000000, + 0x2e64971300000000, 0xb0643ddf00000000, 0x6125d08300000000, + 0xff257a4f00000000, 0x1c22f5c100000000, 0x82225f0d00000000, + 0x9b2b9a0700000000, 0x052b30cb00000000, 0xe62cbf4500000000, + 0x782c158900000000, 0xd43e355000000000, 0x4a3e9f9c00000000, + 0xa939101200000000, 0x3739bade00000000, 0x2e307fd400000000, + 0xb030d51800000000, 0x53375a9600000000, 0xcd37f05a00000000, + 0x4a146bff00000000, 0xd414c13300000000, 0x37134ebd00000000, + 0xa913e47100000000, 0xb01a217b00000000, 0x2e1a8bb700000000, + 0xcd1d043900000000, 0x531daef500000000, 0xff0f8e2c00000000, + 0x610f24e000000000, 0x8208ab6e00000000, 0x1c0801a200000000, + 0x0501c4a800000000, 0x9b016e6400000000, 0x7806e1ea00000000, + 0xe6064b2600000000}}; + +#else /* W == 4 */ + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0xb8bc6765, 0xaa09c88b, 0x12b5afee, 0x8f629757, + 0x37def032, 0x256b5fdc, 0x9dd738b9, 0xc5b428ef, 0x7d084f8a, + 0x6fbde064, 0xd7018701, 0x4ad6bfb8, 0xf26ad8dd, 0xe0df7733, + 0x58631056, 0x5019579f, 0xe8a530fa, 0xfa109f14, 0x42acf871, + 0xdf7bc0c8, 0x67c7a7ad, 0x75720843, 0xcdce6f26, 0x95ad7f70, + 0x2d111815, 0x3fa4b7fb, 0x8718d09e, 0x1acfe827, 0xa2738f42, + 0xb0c620ac, 0x087a47c9, 0xa032af3e, 0x188ec85b, 0x0a3b67b5, + 0xb28700d0, 0x2f503869, 0x97ec5f0c, 0x8559f0e2, 0x3de59787, + 0x658687d1, 0xdd3ae0b4, 0xcf8f4f5a, 0x7733283f, 0xeae41086, + 0x525877e3, 0x40edd80d, 0xf851bf68, 0xf02bf8a1, 0x48979fc4, + 0x5a22302a, 0xe29e574f, 0x7f496ff6, 0xc7f50893, 0xd540a77d, + 0x6dfcc018, 0x359fd04e, 0x8d23b72b, 0x9f9618c5, 0x272a7fa0, + 0xbafd4719, 0x0241207c, 0x10f48f92, 0xa848e8f7, 0x9b14583d, + 0x23a83f58, 0x311d90b6, 0x89a1f7d3, 0x1476cf6a, 0xaccaa80f, + 0xbe7f07e1, 0x06c36084, 0x5ea070d2, 0xe61c17b7, 0xf4a9b859, + 0x4c15df3c, 0xd1c2e785, 0x697e80e0, 0x7bcb2f0e, 0xc377486b, + 0xcb0d0fa2, 0x73b168c7, 0x6104c729, 0xd9b8a04c, 0x446f98f5, + 0xfcd3ff90, 0xee66507e, 0x56da371b, 0x0eb9274d, 0xb6054028, + 0xa4b0efc6, 0x1c0c88a3, 0x81dbb01a, 0x3967d77f, 0x2bd27891, + 0x936e1ff4, 0x3b26f703, 0x839a9066, 0x912f3f88, 0x299358ed, + 0xb4446054, 0x0cf80731, 0x1e4da8df, 0xa6f1cfba, 0xfe92dfec, + 0x462eb889, 0x549b1767, 0xec277002, 0x71f048bb, 0xc94c2fde, + 0xdbf98030, 0x6345e755, 0x6b3fa09c, 0xd383c7f9, 0xc1366817, + 0x798a0f72, 0xe45d37cb, 0x5ce150ae, 0x4e54ff40, 0xf6e89825, + 0xae8b8873, 0x1637ef16, 0x048240f8, 0xbc3e279d, 0x21e91f24, + 0x99557841, 0x8be0d7af, 0x335cb0ca, 0xed59b63b, 0x55e5d15e, + 0x47507eb0, 0xffec19d5, 0x623b216c, 0xda874609, 0xc832e9e7, + 0x708e8e82, 0x28ed9ed4, 0x9051f9b1, 0x82e4565f, 0x3a58313a, + 0xa78f0983, 0x1f336ee6, 0x0d86c108, 0xb53aa66d, 0xbd40e1a4, + 0x05fc86c1, 0x1749292f, 0xaff54e4a, 0x322276f3, 0x8a9e1196, + 0x982bbe78, 0x2097d91d, 0x78f4c94b, 0xc048ae2e, 0xd2fd01c0, + 0x6a4166a5, 0xf7965e1c, 0x4f2a3979, 0x5d9f9697, 0xe523f1f2, + 0x4d6b1905, 0xf5d77e60, 0xe762d18e, 0x5fdeb6eb, 0xc2098e52, + 0x7ab5e937, 0x680046d9, 0xd0bc21bc, 0x88df31ea, 0x3063568f, + 0x22d6f961, 0x9a6a9e04, 0x07bda6bd, 0xbf01c1d8, 0xadb46e36, + 0x15080953, 0x1d724e9a, 0xa5ce29ff, 0xb77b8611, 0x0fc7e174, + 0x9210d9cd, 0x2aacbea8, 0x38191146, 0x80a57623, 0xd8c66675, + 0x607a0110, 0x72cfaefe, 0xca73c99b, 0x57a4f122, 0xef189647, + 0xfdad39a9, 0x45115ecc, 0x764dee06, 0xcef18963, 0xdc44268d, + 0x64f841e8, 0xf92f7951, 0x41931e34, 0x5326b1da, 0xeb9ad6bf, + 0xb3f9c6e9, 0x0b45a18c, 0x19f00e62, 0xa14c6907, 0x3c9b51be, + 0x842736db, 0x96929935, 0x2e2efe50, 0x2654b999, 0x9ee8defc, + 0x8c5d7112, 0x34e11677, 0xa9362ece, 0x118a49ab, 0x033fe645, + 0xbb838120, 0xe3e09176, 0x5b5cf613, 0x49e959fd, 0xf1553e98, + 0x6c820621, 0xd43e6144, 0xc68bceaa, 0x7e37a9cf, 0xd67f4138, + 0x6ec3265d, 0x7c7689b3, 0xc4caeed6, 0x591dd66f, 0xe1a1b10a, + 0xf3141ee4, 0x4ba87981, 0x13cb69d7, 0xab770eb2, 0xb9c2a15c, + 0x017ec639, 0x9ca9fe80, 0x241599e5, 0x36a0360b, 0x8e1c516e, + 0x866616a7, 0x3eda71c2, 0x2c6fde2c, 0x94d3b949, 0x090481f0, + 0xb1b8e695, 0xa30d497b, 0x1bb12e1e, 0x43d23e48, 0xfb6e592d, + 0xe9dbf6c3, 0x516791a6, 0xccb0a91f, 0x740cce7a, 0x66b96194, + 0xde0506f1}, + {0x00000000, 0x01c26a37, 0x0384d46e, 0x0246be59, 0x0709a8dc, + 0x06cbc2eb, 0x048d7cb2, 0x054f1685, 0x0e1351b8, 0x0fd13b8f, + 0x0d9785d6, 0x0c55efe1, 0x091af964, 0x08d89353, 0x0a9e2d0a, + 0x0b5c473d, 0x1c26a370, 0x1de4c947, 0x1fa2771e, 0x1e601d29, + 0x1b2f0bac, 0x1aed619b, 0x18abdfc2, 0x1969b5f5, 0x1235f2c8, + 0x13f798ff, 0x11b126a6, 0x10734c91, 0x153c5a14, 0x14fe3023, + 0x16b88e7a, 0x177ae44d, 0x384d46e0, 0x398f2cd7, 0x3bc9928e, + 0x3a0bf8b9, 0x3f44ee3c, 0x3e86840b, 0x3cc03a52, 0x3d025065, + 0x365e1758, 0x379c7d6f, 0x35dac336, 0x3418a901, 0x3157bf84, + 0x3095d5b3, 0x32d36bea, 0x331101dd, 0x246be590, 0x25a98fa7, + 0x27ef31fe, 0x262d5bc9, 0x23624d4c, 0x22a0277b, 0x20e69922, + 0x2124f315, 0x2a78b428, 0x2bbade1f, 0x29fc6046, 0x283e0a71, + 0x2d711cf4, 0x2cb376c3, 0x2ef5c89a, 0x2f37a2ad, 0x709a8dc0, + 0x7158e7f7, 0x731e59ae, 0x72dc3399, 0x7793251c, 0x76514f2b, + 0x7417f172, 0x75d59b45, 0x7e89dc78, 0x7f4bb64f, 0x7d0d0816, + 0x7ccf6221, 0x798074a4, 0x78421e93, 0x7a04a0ca, 0x7bc6cafd, + 0x6cbc2eb0, 0x6d7e4487, 0x6f38fade, 0x6efa90e9, 0x6bb5866c, + 0x6a77ec5b, 0x68315202, 0x69f33835, 0x62af7f08, 0x636d153f, + 0x612bab66, 0x60e9c151, 0x65a6d7d4, 0x6464bde3, 0x662203ba, + 0x67e0698d, 0x48d7cb20, 0x4915a117, 0x4b531f4e, 0x4a917579, + 0x4fde63fc, 0x4e1c09cb, 0x4c5ab792, 0x4d98dda5, 0x46c49a98, + 0x4706f0af, 0x45404ef6, 0x448224c1, 0x41cd3244, 0x400f5873, + 0x4249e62a, 0x438b8c1d, 0x54f16850, 0x55330267, 0x5775bc3e, + 0x56b7d609, 0x53f8c08c, 0x523aaabb, 0x507c14e2, 0x51be7ed5, + 0x5ae239e8, 0x5b2053df, 0x5966ed86, 0x58a487b1, 0x5deb9134, + 0x5c29fb03, 0x5e6f455a, 0x5fad2f6d, 0xe1351b80, 0xe0f771b7, + 0xe2b1cfee, 0xe373a5d9, 0xe63cb35c, 0xe7fed96b, 0xe5b86732, + 0xe47a0d05, 0xef264a38, 0xeee4200f, 0xeca29e56, 0xed60f461, + 0xe82fe2e4, 0xe9ed88d3, 0xebab368a, 0xea695cbd, 0xfd13b8f0, + 0xfcd1d2c7, 0xfe976c9e, 0xff5506a9, 0xfa1a102c, 0xfbd87a1b, + 0xf99ec442, 0xf85cae75, 0xf300e948, 0xf2c2837f, 0xf0843d26, + 0xf1465711, 0xf4094194, 0xf5cb2ba3, 0xf78d95fa, 0xf64fffcd, + 0xd9785d60, 0xd8ba3757, 0xdafc890e, 0xdb3ee339, 0xde71f5bc, + 0xdfb39f8b, 0xddf521d2, 0xdc374be5, 0xd76b0cd8, 0xd6a966ef, + 0xd4efd8b6, 0xd52db281, 0xd062a404, 0xd1a0ce33, 0xd3e6706a, + 0xd2241a5d, 0xc55efe10, 0xc49c9427, 0xc6da2a7e, 0xc7184049, + 0xc25756cc, 0xc3953cfb, 0xc1d382a2, 0xc011e895, 0xcb4dafa8, + 0xca8fc59f, 0xc8c97bc6, 0xc90b11f1, 0xcc440774, 0xcd866d43, + 0xcfc0d31a, 0xce02b92d, 0x91af9640, 0x906dfc77, 0x922b422e, + 0x93e92819, 0x96a63e9c, 0x976454ab, 0x9522eaf2, 0x94e080c5, + 0x9fbcc7f8, 0x9e7eadcf, 0x9c381396, 0x9dfa79a1, 0x98b56f24, + 0x99770513, 0x9b31bb4a, 0x9af3d17d, 0x8d893530, 0x8c4b5f07, + 0x8e0de15e, 0x8fcf8b69, 0x8a809dec, 0x8b42f7db, 0x89044982, + 0x88c623b5, 0x839a6488, 0x82580ebf, 0x801eb0e6, 0x81dcdad1, + 0x8493cc54, 0x8551a663, 0x8717183a, 0x86d5720d, 0xa9e2d0a0, + 0xa820ba97, 0xaa6604ce, 0xaba46ef9, 0xaeeb787c, 0xaf29124b, + 0xad6fac12, 0xacadc625, 0xa7f18118, 0xa633eb2f, 0xa4755576, + 0xa5b73f41, 0xa0f829c4, 0xa13a43f3, 0xa37cfdaa, 0xa2be979d, + 0xb5c473d0, 0xb40619e7, 0xb640a7be, 0xb782cd89, 0xb2cddb0c, + 0xb30fb13b, 0xb1490f62, 0xb08b6555, 0xbbd72268, 0xba15485f, + 0xb853f606, 0xb9919c31, 0xbcde8ab4, 0xbd1ce083, 0xbf5a5eda, + 0xbe9834ed}, + {0x00000000, 0x191b3141, 0x32366282, 0x2b2d53c3, 0x646cc504, + 0x7d77f445, 0x565aa786, 0x4f4196c7, 0xc8d98a08, 0xd1c2bb49, + 0xfaefe88a, 0xe3f4d9cb, 0xacb54f0c, 0xb5ae7e4d, 0x9e832d8e, + 0x87981ccf, 0x4ac21251, 0x53d92310, 0x78f470d3, 0x61ef4192, + 0x2eaed755, 0x37b5e614, 0x1c98b5d7, 0x05838496, 0x821b9859, + 0x9b00a918, 0xb02dfadb, 0xa936cb9a, 0xe6775d5d, 0xff6c6c1c, + 0xd4413fdf, 0xcd5a0e9e, 0x958424a2, 0x8c9f15e3, 0xa7b24620, + 0xbea97761, 0xf1e8e1a6, 0xe8f3d0e7, 0xc3de8324, 0xdac5b265, + 0x5d5daeaa, 0x44469feb, 0x6f6bcc28, 0x7670fd69, 0x39316bae, + 0x202a5aef, 0x0b07092c, 0x121c386d, 0xdf4636f3, 0xc65d07b2, + 0xed705471, 0xf46b6530, 0xbb2af3f7, 0xa231c2b6, 0x891c9175, + 0x9007a034, 0x179fbcfb, 0x0e848dba, 0x25a9de79, 0x3cb2ef38, + 0x73f379ff, 0x6ae848be, 0x41c51b7d, 0x58de2a3c, 0xf0794f05, + 0xe9627e44, 0xc24f2d87, 0xdb541cc6, 0x94158a01, 0x8d0ebb40, + 0xa623e883, 0xbf38d9c2, 0x38a0c50d, 0x21bbf44c, 0x0a96a78f, + 0x138d96ce, 0x5ccc0009, 0x45d73148, 0x6efa628b, 0x77e153ca, + 0xbabb5d54, 0xa3a06c15, 0x888d3fd6, 0x91960e97, 0xded79850, + 0xc7cca911, 0xece1fad2, 0xf5facb93, 0x7262d75c, 0x6b79e61d, + 0x4054b5de, 0x594f849f, 0x160e1258, 0x0f152319, 0x243870da, + 0x3d23419b, 0x65fd6ba7, 0x7ce65ae6, 0x57cb0925, 0x4ed03864, + 0x0191aea3, 0x188a9fe2, 0x33a7cc21, 0x2abcfd60, 0xad24e1af, + 0xb43fd0ee, 0x9f12832d, 0x8609b26c, 0xc94824ab, 0xd05315ea, + 0xfb7e4629, 0xe2657768, 0x2f3f79f6, 0x362448b7, 0x1d091b74, + 0x04122a35, 0x4b53bcf2, 0x52488db3, 0x7965de70, 0x607eef31, + 0xe7e6f3fe, 0xfefdc2bf, 0xd5d0917c, 0xcccba03d, 0x838a36fa, + 0x9a9107bb, 0xb1bc5478, 0xa8a76539, 0x3b83984b, 0x2298a90a, + 0x09b5fac9, 0x10aecb88, 0x5fef5d4f, 0x46f46c0e, 0x6dd93fcd, + 0x74c20e8c, 0xf35a1243, 0xea412302, 0xc16c70c1, 0xd8774180, + 0x9736d747, 0x8e2de606, 0xa500b5c5, 0xbc1b8484, 0x71418a1a, + 0x685abb5b, 0x4377e898, 0x5a6cd9d9, 0x152d4f1e, 0x0c367e5f, + 0x271b2d9c, 0x3e001cdd, 0xb9980012, 0xa0833153, 0x8bae6290, + 0x92b553d1, 0xddf4c516, 0xc4eff457, 0xefc2a794, 0xf6d996d5, + 0xae07bce9, 0xb71c8da8, 0x9c31de6b, 0x852aef2a, 0xca6b79ed, + 0xd37048ac, 0xf85d1b6f, 0xe1462a2e, 0x66de36e1, 0x7fc507a0, + 0x54e85463, 0x4df36522, 0x02b2f3e5, 0x1ba9c2a4, 0x30849167, + 0x299fa026, 0xe4c5aeb8, 0xfdde9ff9, 0xd6f3cc3a, 0xcfe8fd7b, + 0x80a96bbc, 0x99b25afd, 0xb29f093e, 0xab84387f, 0x2c1c24b0, + 0x350715f1, 0x1e2a4632, 0x07317773, 0x4870e1b4, 0x516bd0f5, + 0x7a468336, 0x635db277, 0xcbfad74e, 0xd2e1e60f, 0xf9ccb5cc, + 0xe0d7848d, 0xaf96124a, 0xb68d230b, 0x9da070c8, 0x84bb4189, + 0x03235d46, 0x1a386c07, 0x31153fc4, 0x280e0e85, 0x674f9842, + 0x7e54a903, 0x5579fac0, 0x4c62cb81, 0x8138c51f, 0x9823f45e, + 0xb30ea79d, 0xaa1596dc, 0xe554001b, 0xfc4f315a, 0xd7626299, + 0xce7953d8, 0x49e14f17, 0x50fa7e56, 0x7bd72d95, 0x62cc1cd4, + 0x2d8d8a13, 0x3496bb52, 0x1fbbe891, 0x06a0d9d0, 0x5e7ef3ec, + 0x4765c2ad, 0x6c48916e, 0x7553a02f, 0x3a1236e8, 0x230907a9, + 0x0824546a, 0x113f652b, 0x96a779e4, 0x8fbc48a5, 0xa4911b66, + 0xbd8a2a27, 0xf2cbbce0, 0xebd08da1, 0xc0fdde62, 0xd9e6ef23, + 0x14bce1bd, 0x0da7d0fc, 0x268a833f, 0x3f91b27e, 0x70d024b9, + 0x69cb15f8, 0x42e6463b, 0x5bfd777a, 0xdc656bb5, 0xc57e5af4, + 0xee530937, 0xf7483876, 0xb809aeb1, 0xa1129ff0, 0x8a3fcc33, + 0x9324fd72}, + {0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, + 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, + 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, + 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, + 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, + 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, + 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, + 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, + 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, + 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, + 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, + 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, + 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, + 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, + 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, + 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, + 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, + 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, + 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, + 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, + 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, + 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, + 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, + 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, + 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, + 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, + 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, + 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, + 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, + 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, + 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, + 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, + 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, + 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, + 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, + 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, + 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, + 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, + 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, + 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, + 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, + 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, + 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, + 0x2d02ef8d}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x00000000, 0x96300777, 0x2c610eee, 0xba510999, 0x19c46d07, + 0x8ff46a70, 0x35a563e9, 0xa395649e, 0x3288db0e, 0xa4b8dc79, + 0x1ee9d5e0, 0x88d9d297, 0x2b4cb609, 0xbd7cb17e, 0x072db8e7, + 0x911dbf90, 0x6410b71d, 0xf220b06a, 0x4871b9f3, 0xde41be84, + 0x7dd4da1a, 0xebe4dd6d, 0x51b5d4f4, 0xc785d383, 0x56986c13, + 0xc0a86b64, 0x7af962fd, 0xecc9658a, 0x4f5c0114, 0xd96c0663, + 0x633d0ffa, 0xf50d088d, 0xc8206e3b, 0x5e10694c, 0xe44160d5, + 0x727167a2, 0xd1e4033c, 0x47d4044b, 0xfd850dd2, 0x6bb50aa5, + 0xfaa8b535, 0x6c98b242, 0xd6c9bbdb, 0x40f9bcac, 0xe36cd832, + 0x755cdf45, 0xcf0dd6dc, 0x593dd1ab, 0xac30d926, 0x3a00de51, + 0x8051d7c8, 0x1661d0bf, 0xb5f4b421, 0x23c4b356, 0x9995bacf, + 0x0fa5bdb8, 0x9eb80228, 0x0888055f, 0xb2d90cc6, 0x24e90bb1, + 0x877c6f2f, 0x114c6858, 0xab1d61c1, 0x3d2d66b6, 0x9041dc76, + 0x0671db01, 0xbc20d298, 0x2a10d5ef, 0x8985b171, 0x1fb5b606, + 0xa5e4bf9f, 0x33d4b8e8, 0xa2c90778, 0x34f9000f, 0x8ea80996, + 0x18980ee1, 0xbb0d6a7f, 0x2d3d6d08, 0x976c6491, 0x015c63e6, + 0xf4516b6b, 0x62616c1c, 0xd8306585, 0x4e0062f2, 0xed95066c, + 0x7ba5011b, 0xc1f40882, 0x57c40ff5, 0xc6d9b065, 0x50e9b712, + 0xeab8be8b, 0x7c88b9fc, 0xdf1ddd62, 0x492dda15, 0xf37cd38c, + 0x654cd4fb, 0x5861b24d, 0xce51b53a, 0x7400bca3, 0xe230bbd4, + 0x41a5df4a, 0xd795d83d, 0x6dc4d1a4, 0xfbf4d6d3, 0x6ae96943, + 0xfcd96e34, 0x468867ad, 0xd0b860da, 0x732d0444, 0xe51d0333, + 0x5f4c0aaa, 0xc97c0ddd, 0x3c710550, 0xaa410227, 0x10100bbe, + 0x86200cc9, 0x25b56857, 0xb3856f20, 0x09d466b9, 0x9fe461ce, + 0x0ef9de5e, 0x98c9d929, 0x2298d0b0, 0xb4a8d7c7, 0x173db359, + 0x810db42e, 0x3b5cbdb7, 0xad6cbac0, 0x2083b8ed, 0xb6b3bf9a, + 0x0ce2b603, 0x9ad2b174, 0x3947d5ea, 0xaf77d29d, 0x1526db04, + 0x8316dc73, 0x120b63e3, 0x843b6494, 0x3e6a6d0d, 0xa85a6a7a, + 0x0bcf0ee4, 0x9dff0993, 0x27ae000a, 0xb19e077d, 0x44930ff0, + 0xd2a30887, 0x68f2011e, 0xfec20669, 0x5d5762f7, 0xcb676580, + 0x71366c19, 0xe7066b6e, 0x761bd4fe, 0xe02bd389, 0x5a7ada10, + 0xcc4add67, 0x6fdfb9f9, 0xf9efbe8e, 0x43beb717, 0xd58eb060, + 0xe8a3d6d6, 0x7e93d1a1, 0xc4c2d838, 0x52f2df4f, 0xf167bbd1, + 0x6757bca6, 0xdd06b53f, 0x4b36b248, 0xda2b0dd8, 0x4c1b0aaf, + 0xf64a0336, 0x607a0441, 0xc3ef60df, 0x55df67a8, 0xef8e6e31, + 0x79be6946, 0x8cb361cb, 0x1a8366bc, 0xa0d26f25, 0x36e26852, + 0x95770ccc, 0x03470bbb, 0xb9160222, 0x2f260555, 0xbe3bbac5, + 0x280bbdb2, 0x925ab42b, 0x046ab35c, 0xa7ffd7c2, 0x31cfd0b5, + 0x8b9ed92c, 0x1daede5b, 0xb0c2649b, 0x26f263ec, 0x9ca36a75, + 0x0a936d02, 0xa906099c, 0x3f360eeb, 0x85670772, 0x13570005, + 0x824abf95, 0x147ab8e2, 0xae2bb17b, 0x381bb60c, 0x9b8ed292, + 0x0dbed5e5, 0xb7efdc7c, 0x21dfdb0b, 0xd4d2d386, 0x42e2d4f1, + 0xf8b3dd68, 0x6e83da1f, 0xcd16be81, 0x5b26b9f6, 0xe177b06f, + 0x7747b718, 0xe65a0888, 0x706a0fff, 0xca3b0666, 0x5c0b0111, + 0xff9e658f, 0x69ae62f8, 0xd3ff6b61, 0x45cf6c16, 0x78e20aa0, + 0xeed20dd7, 0x5483044e, 0xc2b30339, 0x612667a7, 0xf71660d0, + 0x4d476949, 0xdb776e3e, 0x4a6ad1ae, 0xdc5ad6d9, 0x660bdf40, + 0xf03bd837, 0x53aebca9, 0xc59ebbde, 0x7fcfb247, 0xe9ffb530, + 0x1cf2bdbd, 0x8ac2baca, 0x3093b353, 0xa6a3b424, 0x0536d0ba, + 0x9306d7cd, 0x2957de54, 0xbf67d923, 0x2e7a66b3, 0xb84a61c4, + 0x021b685d, 0x942b6f2a, 0x37be0bb4, 0xa18e0cc3, 0x1bdf055a, + 0x8def022d}, + {0x00000000, 0x41311b19, 0x82623632, 0xc3532d2b, 0x04c56c64, + 0x45f4777d, 0x86a75a56, 0xc796414f, 0x088ad9c8, 0x49bbc2d1, + 0x8ae8effa, 0xcbd9f4e3, 0x0c4fb5ac, 0x4d7eaeb5, 0x8e2d839e, + 0xcf1c9887, 0x5112c24a, 0x1023d953, 0xd370f478, 0x9241ef61, + 0x55d7ae2e, 0x14e6b537, 0xd7b5981c, 0x96848305, 0x59981b82, + 0x18a9009b, 0xdbfa2db0, 0x9acb36a9, 0x5d5d77e6, 0x1c6c6cff, + 0xdf3f41d4, 0x9e0e5acd, 0xa2248495, 0xe3159f8c, 0x2046b2a7, + 0x6177a9be, 0xa6e1e8f1, 0xe7d0f3e8, 0x2483dec3, 0x65b2c5da, + 0xaaae5d5d, 0xeb9f4644, 0x28cc6b6f, 0x69fd7076, 0xae6b3139, + 0xef5a2a20, 0x2c09070b, 0x6d381c12, 0xf33646df, 0xb2075dc6, + 0x715470ed, 0x30656bf4, 0xf7f32abb, 0xb6c231a2, 0x75911c89, + 0x34a00790, 0xfbbc9f17, 0xba8d840e, 0x79dea925, 0x38efb23c, + 0xff79f373, 0xbe48e86a, 0x7d1bc541, 0x3c2ade58, 0x054f79f0, + 0x447e62e9, 0x872d4fc2, 0xc61c54db, 0x018a1594, 0x40bb0e8d, + 0x83e823a6, 0xc2d938bf, 0x0dc5a038, 0x4cf4bb21, 0x8fa7960a, + 0xce968d13, 0x0900cc5c, 0x4831d745, 0x8b62fa6e, 0xca53e177, + 0x545dbbba, 0x156ca0a3, 0xd63f8d88, 0x970e9691, 0x5098d7de, + 0x11a9ccc7, 0xd2fae1ec, 0x93cbfaf5, 0x5cd76272, 0x1de6796b, + 0xdeb55440, 0x9f844f59, 0x58120e16, 0x1923150f, 0xda703824, + 0x9b41233d, 0xa76bfd65, 0xe65ae67c, 0x2509cb57, 0x6438d04e, + 0xa3ae9101, 0xe29f8a18, 0x21cca733, 0x60fdbc2a, 0xafe124ad, + 0xeed03fb4, 0x2d83129f, 0x6cb20986, 0xab2448c9, 0xea1553d0, + 0x29467efb, 0x687765e2, 0xf6793f2f, 0xb7482436, 0x741b091d, + 0x352a1204, 0xf2bc534b, 0xb38d4852, 0x70de6579, 0x31ef7e60, + 0xfef3e6e7, 0xbfc2fdfe, 0x7c91d0d5, 0x3da0cbcc, 0xfa368a83, + 0xbb07919a, 0x7854bcb1, 0x3965a7a8, 0x4b98833b, 0x0aa99822, + 0xc9fab509, 0x88cbae10, 0x4f5def5f, 0x0e6cf446, 0xcd3fd96d, + 0x8c0ec274, 0x43125af3, 0x022341ea, 0xc1706cc1, 0x804177d8, + 0x47d73697, 0x06e62d8e, 0xc5b500a5, 0x84841bbc, 0x1a8a4171, + 0x5bbb5a68, 0x98e87743, 0xd9d96c5a, 0x1e4f2d15, 0x5f7e360c, + 0x9c2d1b27, 0xdd1c003e, 0x120098b9, 0x533183a0, 0x9062ae8b, + 0xd153b592, 0x16c5f4dd, 0x57f4efc4, 0x94a7c2ef, 0xd596d9f6, + 0xe9bc07ae, 0xa88d1cb7, 0x6bde319c, 0x2aef2a85, 0xed796bca, + 0xac4870d3, 0x6f1b5df8, 0x2e2a46e1, 0xe136de66, 0xa007c57f, + 0x6354e854, 0x2265f34d, 0xe5f3b202, 0xa4c2a91b, 0x67918430, + 0x26a09f29, 0xb8aec5e4, 0xf99fdefd, 0x3accf3d6, 0x7bfde8cf, + 0xbc6ba980, 0xfd5ab299, 0x3e099fb2, 0x7f3884ab, 0xb0241c2c, + 0xf1150735, 0x32462a1e, 0x73773107, 0xb4e17048, 0xf5d06b51, + 0x3683467a, 0x77b25d63, 0x4ed7facb, 0x0fe6e1d2, 0xccb5ccf9, + 0x8d84d7e0, 0x4a1296af, 0x0b238db6, 0xc870a09d, 0x8941bb84, + 0x465d2303, 0x076c381a, 0xc43f1531, 0x850e0e28, 0x42984f67, + 0x03a9547e, 0xc0fa7955, 0x81cb624c, 0x1fc53881, 0x5ef42398, + 0x9da70eb3, 0xdc9615aa, 0x1b0054e5, 0x5a314ffc, 0x996262d7, + 0xd85379ce, 0x174fe149, 0x567efa50, 0x952dd77b, 0xd41ccc62, + 0x138a8d2d, 0x52bb9634, 0x91e8bb1f, 0xd0d9a006, 0xecf37e5e, + 0xadc26547, 0x6e91486c, 0x2fa05375, 0xe836123a, 0xa9070923, + 0x6a542408, 0x2b653f11, 0xe479a796, 0xa548bc8f, 0x661b91a4, + 0x272a8abd, 0xe0bccbf2, 0xa18dd0eb, 0x62defdc0, 0x23efe6d9, + 0xbde1bc14, 0xfcd0a70d, 0x3f838a26, 0x7eb2913f, 0xb924d070, + 0xf815cb69, 0x3b46e642, 0x7a77fd5b, 0xb56b65dc, 0xf45a7ec5, + 0x370953ee, 0x763848f7, 0xb1ae09b8, 0xf09f12a1, 0x33cc3f8a, + 0x72fd2493}, + {0x00000000, 0x376ac201, 0x6ed48403, 0x59be4602, 0xdca80907, + 0xebc2cb06, 0xb27c8d04, 0x85164f05, 0xb851130e, 0x8f3bd10f, + 0xd685970d, 0xe1ef550c, 0x64f91a09, 0x5393d808, 0x0a2d9e0a, + 0x3d475c0b, 0x70a3261c, 0x47c9e41d, 0x1e77a21f, 0x291d601e, + 0xac0b2f1b, 0x9b61ed1a, 0xc2dfab18, 0xf5b56919, 0xc8f23512, + 0xff98f713, 0xa626b111, 0x914c7310, 0x145a3c15, 0x2330fe14, + 0x7a8eb816, 0x4de47a17, 0xe0464d38, 0xd72c8f39, 0x8e92c93b, + 0xb9f80b3a, 0x3cee443f, 0x0b84863e, 0x523ac03c, 0x6550023d, + 0x58175e36, 0x6f7d9c37, 0x36c3da35, 0x01a91834, 0x84bf5731, + 0xb3d59530, 0xea6bd332, 0xdd011133, 0x90e56b24, 0xa78fa925, + 0xfe31ef27, 0xc95b2d26, 0x4c4d6223, 0x7b27a022, 0x2299e620, + 0x15f32421, 0x28b4782a, 0x1fdeba2b, 0x4660fc29, 0x710a3e28, + 0xf41c712d, 0xc376b32c, 0x9ac8f52e, 0xada2372f, 0xc08d9a70, + 0xf7e75871, 0xae591e73, 0x9933dc72, 0x1c259377, 0x2b4f5176, + 0x72f11774, 0x459bd575, 0x78dc897e, 0x4fb64b7f, 0x16080d7d, + 0x2162cf7c, 0xa4748079, 0x931e4278, 0xcaa0047a, 0xfdcac67b, + 0xb02ebc6c, 0x87447e6d, 0xdefa386f, 0xe990fa6e, 0x6c86b56b, + 0x5bec776a, 0x02523168, 0x3538f369, 0x087faf62, 0x3f156d63, + 0x66ab2b61, 0x51c1e960, 0xd4d7a665, 0xe3bd6464, 0xba032266, + 0x8d69e067, 0x20cbd748, 0x17a11549, 0x4e1f534b, 0x7975914a, + 0xfc63de4f, 0xcb091c4e, 0x92b75a4c, 0xa5dd984d, 0x989ac446, + 0xaff00647, 0xf64e4045, 0xc1248244, 0x4432cd41, 0x73580f40, + 0x2ae64942, 0x1d8c8b43, 0x5068f154, 0x67023355, 0x3ebc7557, + 0x09d6b756, 0x8cc0f853, 0xbbaa3a52, 0xe2147c50, 0xd57ebe51, + 0xe839e25a, 0xdf53205b, 0x86ed6659, 0xb187a458, 0x3491eb5d, + 0x03fb295c, 0x5a456f5e, 0x6d2fad5f, 0x801b35e1, 0xb771f7e0, + 0xeecfb1e2, 0xd9a573e3, 0x5cb33ce6, 0x6bd9fee7, 0x3267b8e5, + 0x050d7ae4, 0x384a26ef, 0x0f20e4ee, 0x569ea2ec, 0x61f460ed, + 0xe4e22fe8, 0xd388ede9, 0x8a36abeb, 0xbd5c69ea, 0xf0b813fd, + 0xc7d2d1fc, 0x9e6c97fe, 0xa90655ff, 0x2c101afa, 0x1b7ad8fb, + 0x42c49ef9, 0x75ae5cf8, 0x48e900f3, 0x7f83c2f2, 0x263d84f0, + 0x115746f1, 0x944109f4, 0xa32bcbf5, 0xfa958df7, 0xcdff4ff6, + 0x605d78d9, 0x5737bad8, 0x0e89fcda, 0x39e33edb, 0xbcf571de, + 0x8b9fb3df, 0xd221f5dd, 0xe54b37dc, 0xd80c6bd7, 0xef66a9d6, + 0xb6d8efd4, 0x81b22dd5, 0x04a462d0, 0x33cea0d1, 0x6a70e6d3, + 0x5d1a24d2, 0x10fe5ec5, 0x27949cc4, 0x7e2adac6, 0x494018c7, + 0xcc5657c2, 0xfb3c95c3, 0xa282d3c1, 0x95e811c0, 0xa8af4dcb, + 0x9fc58fca, 0xc67bc9c8, 0xf1110bc9, 0x740744cc, 0x436d86cd, + 0x1ad3c0cf, 0x2db902ce, 0x4096af91, 0x77fc6d90, 0x2e422b92, + 0x1928e993, 0x9c3ea696, 0xab546497, 0xf2ea2295, 0xc580e094, + 0xf8c7bc9f, 0xcfad7e9e, 0x9613389c, 0xa179fa9d, 0x246fb598, + 0x13057799, 0x4abb319b, 0x7dd1f39a, 0x3035898d, 0x075f4b8c, + 0x5ee10d8e, 0x698bcf8f, 0xec9d808a, 0xdbf7428b, 0x82490489, + 0xb523c688, 0x88649a83, 0xbf0e5882, 0xe6b01e80, 0xd1dadc81, + 0x54cc9384, 0x63a65185, 0x3a181787, 0x0d72d586, 0xa0d0e2a9, + 0x97ba20a8, 0xce0466aa, 0xf96ea4ab, 0x7c78ebae, 0x4b1229af, + 0x12ac6fad, 0x25c6adac, 0x1881f1a7, 0x2feb33a6, 0x765575a4, + 0x413fb7a5, 0xc429f8a0, 0xf3433aa1, 0xaafd7ca3, 0x9d97bea2, + 0xd073c4b5, 0xe71906b4, 0xbea740b6, 0x89cd82b7, 0x0cdbcdb2, + 0x3bb10fb3, 0x620f49b1, 0x55658bb0, 0x6822d7bb, 0x5f4815ba, + 0x06f653b8, 0x319c91b9, 0xb48adebc, 0x83e01cbd, 0xda5e5abf, + 0xed3498be}, + {0x00000000, 0x6567bcb8, 0x8bc809aa, 0xeeafb512, 0x5797628f, + 0x32f0de37, 0xdc5f6b25, 0xb938d79d, 0xef28b4c5, 0x8a4f087d, + 0x64e0bd6f, 0x018701d7, 0xb8bfd64a, 0xddd86af2, 0x3377dfe0, + 0x56106358, 0x9f571950, 0xfa30a5e8, 0x149f10fa, 0x71f8ac42, + 0xc8c07bdf, 0xada7c767, 0x43087275, 0x266fcecd, 0x707fad95, + 0x1518112d, 0xfbb7a43f, 0x9ed01887, 0x27e8cf1a, 0x428f73a2, + 0xac20c6b0, 0xc9477a08, 0x3eaf32a0, 0x5bc88e18, 0xb5673b0a, + 0xd00087b2, 0x6938502f, 0x0c5fec97, 0xe2f05985, 0x8797e53d, + 0xd1878665, 0xb4e03add, 0x5a4f8fcf, 0x3f283377, 0x8610e4ea, + 0xe3775852, 0x0dd8ed40, 0x68bf51f8, 0xa1f82bf0, 0xc49f9748, + 0x2a30225a, 0x4f579ee2, 0xf66f497f, 0x9308f5c7, 0x7da740d5, + 0x18c0fc6d, 0x4ed09f35, 0x2bb7238d, 0xc518969f, 0xa07f2a27, + 0x1947fdba, 0x7c204102, 0x928ff410, 0xf7e848a8, 0x3d58149b, + 0x583fa823, 0xb6901d31, 0xd3f7a189, 0x6acf7614, 0x0fa8caac, + 0xe1077fbe, 0x8460c306, 0xd270a05e, 0xb7171ce6, 0x59b8a9f4, + 0x3cdf154c, 0x85e7c2d1, 0xe0807e69, 0x0e2fcb7b, 0x6b4877c3, + 0xa20f0dcb, 0xc768b173, 0x29c70461, 0x4ca0b8d9, 0xf5986f44, + 0x90ffd3fc, 0x7e5066ee, 0x1b37da56, 0x4d27b90e, 0x284005b6, + 0xc6efb0a4, 0xa3880c1c, 0x1ab0db81, 0x7fd76739, 0x9178d22b, + 0xf41f6e93, 0x03f7263b, 0x66909a83, 0x883f2f91, 0xed589329, + 0x546044b4, 0x3107f80c, 0xdfa84d1e, 0xbacff1a6, 0xecdf92fe, + 0x89b82e46, 0x67179b54, 0x027027ec, 0xbb48f071, 0xde2f4cc9, + 0x3080f9db, 0x55e74563, 0x9ca03f6b, 0xf9c783d3, 0x176836c1, + 0x720f8a79, 0xcb375de4, 0xae50e15c, 0x40ff544e, 0x2598e8f6, + 0x73888bae, 0x16ef3716, 0xf8408204, 0x9d273ebc, 0x241fe921, + 0x41785599, 0xafd7e08b, 0xcab05c33, 0x3bb659ed, 0x5ed1e555, + 0xb07e5047, 0xd519ecff, 0x6c213b62, 0x094687da, 0xe7e932c8, + 0x828e8e70, 0xd49eed28, 0xb1f95190, 0x5f56e482, 0x3a31583a, + 0x83098fa7, 0xe66e331f, 0x08c1860d, 0x6da63ab5, 0xa4e140bd, + 0xc186fc05, 0x2f294917, 0x4a4ef5af, 0xf3762232, 0x96119e8a, + 0x78be2b98, 0x1dd99720, 0x4bc9f478, 0x2eae48c0, 0xc001fdd2, + 0xa566416a, 0x1c5e96f7, 0x79392a4f, 0x97969f5d, 0xf2f123e5, + 0x05196b4d, 0x607ed7f5, 0x8ed162e7, 0xebb6de5f, 0x528e09c2, + 0x37e9b57a, 0xd9460068, 0xbc21bcd0, 0xea31df88, 0x8f566330, + 0x61f9d622, 0x049e6a9a, 0xbda6bd07, 0xd8c101bf, 0x366eb4ad, + 0x53090815, 0x9a4e721d, 0xff29cea5, 0x11867bb7, 0x74e1c70f, + 0xcdd91092, 0xa8beac2a, 0x46111938, 0x2376a580, 0x7566c6d8, + 0x10017a60, 0xfeaecf72, 0x9bc973ca, 0x22f1a457, 0x479618ef, + 0xa939adfd, 0xcc5e1145, 0x06ee4d76, 0x6389f1ce, 0x8d2644dc, + 0xe841f864, 0x51792ff9, 0x341e9341, 0xdab12653, 0xbfd69aeb, + 0xe9c6f9b3, 0x8ca1450b, 0x620ef019, 0x07694ca1, 0xbe519b3c, + 0xdb362784, 0x35999296, 0x50fe2e2e, 0x99b95426, 0xfcdee89e, + 0x12715d8c, 0x7716e134, 0xce2e36a9, 0xab498a11, 0x45e63f03, + 0x208183bb, 0x7691e0e3, 0x13f65c5b, 0xfd59e949, 0x983e55f1, + 0x2106826c, 0x44613ed4, 0xaace8bc6, 0xcfa9377e, 0x38417fd6, + 0x5d26c36e, 0xb389767c, 0xd6eecac4, 0x6fd61d59, 0x0ab1a1e1, + 0xe41e14f3, 0x8179a84b, 0xd769cb13, 0xb20e77ab, 0x5ca1c2b9, + 0x39c67e01, 0x80fea99c, 0xe5991524, 0x0b36a036, 0x6e511c8e, + 0xa7166686, 0xc271da3e, 0x2cde6f2c, 0x49b9d394, 0xf0810409, + 0x95e6b8b1, 0x7b490da3, 0x1e2eb11b, 0x483ed243, 0x2d596efb, + 0xc3f6dbe9, 0xa6916751, 0x1fa9b0cc, 0x7ace0c74, 0x9461b966, + 0xf10605de}}; + +#endif + +#endif + +#if N == 2 + +#if W == 8 + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0xae689191, 0x87a02563, 0x29c8b4f2, 0xd4314c87, + 0x7a59dd16, 0x539169e4, 0xfdf9f875, 0x73139f4f, 0xdd7b0ede, + 0xf4b3ba2c, 0x5adb2bbd, 0xa722d3c8, 0x094a4259, 0x2082f6ab, + 0x8eea673a, 0xe6273e9e, 0x484faf0f, 0x61871bfd, 0xcfef8a6c, + 0x32167219, 0x9c7ee388, 0xb5b6577a, 0x1bdec6eb, 0x9534a1d1, + 0x3b5c3040, 0x129484b2, 0xbcfc1523, 0x4105ed56, 0xef6d7cc7, + 0xc6a5c835, 0x68cd59a4, 0x173f7b7d, 0xb957eaec, 0x909f5e1e, + 0x3ef7cf8f, 0xc30e37fa, 0x6d66a66b, 0x44ae1299, 0xeac68308, + 0x642ce432, 0xca4475a3, 0xe38cc151, 0x4de450c0, 0xb01da8b5, + 0x1e753924, 0x37bd8dd6, 0x99d51c47, 0xf11845e3, 0x5f70d472, + 0x76b86080, 0xd8d0f111, 0x25290964, 0x8b4198f5, 0xa2892c07, + 0x0ce1bd96, 0x820bdaac, 0x2c634b3d, 0x05abffcf, 0xabc36e5e, + 0x563a962b, 0xf85207ba, 0xd19ab348, 0x7ff222d9, 0x2e7ef6fa, + 0x8016676b, 0xa9ded399, 0x07b64208, 0xfa4fba7d, 0x54272bec, + 0x7def9f1e, 0xd3870e8f, 0x5d6d69b5, 0xf305f824, 0xdacd4cd6, + 0x74a5dd47, 0x895c2532, 0x2734b4a3, 0x0efc0051, 0xa09491c0, + 0xc859c864, 0x663159f5, 0x4ff9ed07, 0xe1917c96, 0x1c6884e3, + 0xb2001572, 0x9bc8a180, 0x35a03011, 0xbb4a572b, 0x1522c6ba, + 0x3cea7248, 0x9282e3d9, 0x6f7b1bac, 0xc1138a3d, 0xe8db3ecf, + 0x46b3af5e, 0x39418d87, 0x97291c16, 0xbee1a8e4, 0x10893975, + 0xed70c100, 0x43185091, 0x6ad0e463, 0xc4b875f2, 0x4a5212c8, + 0xe43a8359, 0xcdf237ab, 0x639aa63a, 0x9e635e4f, 0x300bcfde, + 0x19c37b2c, 0xb7abeabd, 0xdf66b319, 0x710e2288, 0x58c6967a, + 0xf6ae07eb, 0x0b57ff9e, 0xa53f6e0f, 0x8cf7dafd, 0x229f4b6c, + 0xac752c56, 0x021dbdc7, 0x2bd50935, 0x85bd98a4, 0x784460d1, + 0xd62cf140, 0xffe445b2, 0x518cd423, 0x5cfdedf4, 0xf2957c65, + 0xdb5dc897, 0x75355906, 0x88cca173, 0x26a430e2, 0x0f6c8410, + 0xa1041581, 0x2fee72bb, 0x8186e32a, 0xa84e57d8, 0x0626c649, + 0xfbdf3e3c, 0x55b7afad, 0x7c7f1b5f, 0xd2178ace, 0xbadad36a, + 0x14b242fb, 0x3d7af609, 0x93126798, 0x6eeb9fed, 0xc0830e7c, + 0xe94bba8e, 0x47232b1f, 0xc9c94c25, 0x67a1ddb4, 0x4e696946, + 0xe001f8d7, 0x1df800a2, 0xb3909133, 0x9a5825c1, 0x3430b450, + 0x4bc29689, 0xe5aa0718, 0xcc62b3ea, 0x620a227b, 0x9ff3da0e, + 0x319b4b9f, 0x1853ff6d, 0xb63b6efc, 0x38d109c6, 0x96b99857, + 0xbf712ca5, 0x1119bd34, 0xece04541, 0x4288d4d0, 0x6b406022, + 0xc528f1b3, 0xade5a817, 0x038d3986, 0x2a458d74, 0x842d1ce5, + 0x79d4e490, 0xd7bc7501, 0xfe74c1f3, 0x501c5062, 0xdef63758, + 0x709ea6c9, 0x5956123b, 0xf73e83aa, 0x0ac77bdf, 0xa4afea4e, + 0x8d675ebc, 0x230fcf2d, 0x72831b0e, 0xdceb8a9f, 0xf5233e6d, + 0x5b4baffc, 0xa6b25789, 0x08dac618, 0x211272ea, 0x8f7ae37b, + 0x01908441, 0xaff815d0, 0x8630a122, 0x285830b3, 0xd5a1c8c6, + 0x7bc95957, 0x5201eda5, 0xfc697c34, 0x94a42590, 0x3accb401, + 0x130400f3, 0xbd6c9162, 0x40956917, 0xeefdf886, 0xc7354c74, + 0x695ddde5, 0xe7b7badf, 0x49df2b4e, 0x60179fbc, 0xce7f0e2d, + 0x3386f658, 0x9dee67c9, 0xb426d33b, 0x1a4e42aa, 0x65bc6073, + 0xcbd4f1e2, 0xe21c4510, 0x4c74d481, 0xb18d2cf4, 0x1fe5bd65, + 0x362d0997, 0x98459806, 0x16afff3c, 0xb8c76ead, 0x910fda5f, + 0x3f674bce, 0xc29eb3bb, 0x6cf6222a, 0x453e96d8, 0xeb560749, + 0x839b5eed, 0x2df3cf7c, 0x043b7b8e, 0xaa53ea1f, 0x57aa126a, + 0xf9c283fb, 0xd00a3709, 0x7e62a698, 0xf088c1a2, 0x5ee05033, + 0x7728e4c1, 0xd9407550, 0x24b98d25, 0x8ad11cb4, 0xa319a846, + 0x0d7139d7}, + {0x00000000, 0xb9fbdbe8, 0xa886b191, 0x117d6a79, 0x8a7c6563, + 0x3387be8b, 0x22fad4f2, 0x9b010f1a, 0xcf89cc87, 0x7672176f, + 0x670f7d16, 0xdef4a6fe, 0x45f5a9e4, 0xfc0e720c, 0xed731875, + 0x5488c39d, 0x44629f4f, 0xfd9944a7, 0xece42ede, 0x551ff536, + 0xce1efa2c, 0x77e521c4, 0x66984bbd, 0xdf639055, 0x8beb53c8, + 0x32108820, 0x236de259, 0x9a9639b1, 0x019736ab, 0xb86ced43, + 0xa911873a, 0x10ea5cd2, 0x88c53e9e, 0x313ee576, 0x20438f0f, + 0x99b854e7, 0x02b95bfd, 0xbb428015, 0xaa3fea6c, 0x13c43184, + 0x474cf219, 0xfeb729f1, 0xefca4388, 0x56319860, 0xcd30977a, + 0x74cb4c92, 0x65b626eb, 0xdc4dfd03, 0xcca7a1d1, 0x755c7a39, + 0x64211040, 0xdddacba8, 0x46dbc4b2, 0xff201f5a, 0xee5d7523, + 0x57a6aecb, 0x032e6d56, 0xbad5b6be, 0xaba8dcc7, 0x1253072f, + 0x89520835, 0x30a9d3dd, 0x21d4b9a4, 0x982f624c, 0xcafb7b7d, + 0x7300a095, 0x627dcaec, 0xdb861104, 0x40871e1e, 0xf97cc5f6, + 0xe801af8f, 0x51fa7467, 0x0572b7fa, 0xbc896c12, 0xadf4066b, + 0x140fdd83, 0x8f0ed299, 0x36f50971, 0x27886308, 0x9e73b8e0, + 0x8e99e432, 0x37623fda, 0x261f55a3, 0x9fe48e4b, 0x04e58151, + 0xbd1e5ab9, 0xac6330c0, 0x1598eb28, 0x411028b5, 0xf8ebf35d, + 0xe9969924, 0x506d42cc, 0xcb6c4dd6, 0x7297963e, 0x63eafc47, + 0xda1127af, 0x423e45e3, 0xfbc59e0b, 0xeab8f472, 0x53432f9a, + 0xc8422080, 0x71b9fb68, 0x60c49111, 0xd93f4af9, 0x8db78964, + 0x344c528c, 0x253138f5, 0x9ccae31d, 0x07cbec07, 0xbe3037ef, + 0xaf4d5d96, 0x16b6867e, 0x065cdaac, 0xbfa70144, 0xaeda6b3d, + 0x1721b0d5, 0x8c20bfcf, 0x35db6427, 0x24a60e5e, 0x9d5dd5b6, + 0xc9d5162b, 0x702ecdc3, 0x6153a7ba, 0xd8a87c52, 0x43a97348, + 0xfa52a8a0, 0xeb2fc2d9, 0x52d41931, 0x4e87f0bb, 0xf77c2b53, + 0xe601412a, 0x5ffa9ac2, 0xc4fb95d8, 0x7d004e30, 0x6c7d2449, + 0xd586ffa1, 0x810e3c3c, 0x38f5e7d4, 0x29888dad, 0x90735645, + 0x0b72595f, 0xb28982b7, 0xa3f4e8ce, 0x1a0f3326, 0x0ae56ff4, + 0xb31eb41c, 0xa263de65, 0x1b98058d, 0x80990a97, 0x3962d17f, + 0x281fbb06, 0x91e460ee, 0xc56ca373, 0x7c97789b, 0x6dea12e2, + 0xd411c90a, 0x4f10c610, 0xf6eb1df8, 0xe7967781, 0x5e6dac69, + 0xc642ce25, 0x7fb915cd, 0x6ec47fb4, 0xd73fa45c, 0x4c3eab46, + 0xf5c570ae, 0xe4b81ad7, 0x5d43c13f, 0x09cb02a2, 0xb030d94a, + 0xa14db333, 0x18b668db, 0x83b767c1, 0x3a4cbc29, 0x2b31d650, + 0x92ca0db8, 0x8220516a, 0x3bdb8a82, 0x2aa6e0fb, 0x935d3b13, + 0x085c3409, 0xb1a7efe1, 0xa0da8598, 0x19215e70, 0x4da99ded, + 0xf4524605, 0xe52f2c7c, 0x5cd4f794, 0xc7d5f88e, 0x7e2e2366, + 0x6f53491f, 0xd6a892f7, 0x847c8bc6, 0x3d87502e, 0x2cfa3a57, + 0x9501e1bf, 0x0e00eea5, 0xb7fb354d, 0xa6865f34, 0x1f7d84dc, + 0x4bf54741, 0xf20e9ca9, 0xe373f6d0, 0x5a882d38, 0xc1892222, + 0x7872f9ca, 0x690f93b3, 0xd0f4485b, 0xc01e1489, 0x79e5cf61, + 0x6898a518, 0xd1637ef0, 0x4a6271ea, 0xf399aa02, 0xe2e4c07b, + 0x5b1f1b93, 0x0f97d80e, 0xb66c03e6, 0xa711699f, 0x1eeab277, + 0x85ebbd6d, 0x3c106685, 0x2d6d0cfc, 0x9496d714, 0x0cb9b558, + 0xb5426eb0, 0xa43f04c9, 0x1dc4df21, 0x86c5d03b, 0x3f3e0bd3, + 0x2e4361aa, 0x97b8ba42, 0xc33079df, 0x7acba237, 0x6bb6c84e, + 0xd24d13a6, 0x494c1cbc, 0xf0b7c754, 0xe1caad2d, 0x583176c5, + 0x48db2a17, 0xf120f1ff, 0xe05d9b86, 0x59a6406e, 0xc2a74f74, + 0x7b5c949c, 0x6a21fee5, 0xd3da250d, 0x8752e690, 0x3ea93d78, + 0x2fd45701, 0x962f8ce9, 0x0d2e83f3, 0xb4d5581b, 0xa5a83262, + 0x1c53e98a}, + {0x00000000, 0x9d0fe176, 0xe16ec4ad, 0x7c6125db, 0x19ac8f1b, + 0x84a36e6d, 0xf8c24bb6, 0x65cdaac0, 0x33591e36, 0xae56ff40, + 0xd237da9b, 0x4f383bed, 0x2af5912d, 0xb7fa705b, 0xcb9b5580, + 0x5694b4f6, 0x66b23c6c, 0xfbbddd1a, 0x87dcf8c1, 0x1ad319b7, + 0x7f1eb377, 0xe2115201, 0x9e7077da, 0x037f96ac, 0x55eb225a, + 0xc8e4c32c, 0xb485e6f7, 0x298a0781, 0x4c47ad41, 0xd1484c37, + 0xad2969ec, 0x3026889a, 0xcd6478d8, 0x506b99ae, 0x2c0abc75, + 0xb1055d03, 0xd4c8f7c3, 0x49c716b5, 0x35a6336e, 0xa8a9d218, + 0xfe3d66ee, 0x63328798, 0x1f53a243, 0x825c4335, 0xe791e9f5, + 0x7a9e0883, 0x06ff2d58, 0x9bf0cc2e, 0xabd644b4, 0x36d9a5c2, + 0x4ab88019, 0xd7b7616f, 0xb27acbaf, 0x2f752ad9, 0x53140f02, + 0xce1bee74, 0x988f5a82, 0x0580bbf4, 0x79e19e2f, 0xe4ee7f59, + 0x8123d599, 0x1c2c34ef, 0x604d1134, 0xfd42f042, 0x41b9f7f1, + 0xdcb61687, 0xa0d7335c, 0x3dd8d22a, 0x581578ea, 0xc51a999c, + 0xb97bbc47, 0x24745d31, 0x72e0e9c7, 0xefef08b1, 0x938e2d6a, + 0x0e81cc1c, 0x6b4c66dc, 0xf64387aa, 0x8a22a271, 0x172d4307, + 0x270bcb9d, 0xba042aeb, 0xc6650f30, 0x5b6aee46, 0x3ea74486, + 0xa3a8a5f0, 0xdfc9802b, 0x42c6615d, 0x1452d5ab, 0x895d34dd, + 0xf53c1106, 0x6833f070, 0x0dfe5ab0, 0x90f1bbc6, 0xec909e1d, + 0x719f7f6b, 0x8cdd8f29, 0x11d26e5f, 0x6db34b84, 0xf0bcaaf2, + 0x95710032, 0x087ee144, 0x741fc49f, 0xe91025e9, 0xbf84911f, + 0x228b7069, 0x5eea55b2, 0xc3e5b4c4, 0xa6281e04, 0x3b27ff72, + 0x4746daa9, 0xda493bdf, 0xea6fb345, 0x77605233, 0x0b0177e8, + 0x960e969e, 0xf3c33c5e, 0x6eccdd28, 0x12adf8f3, 0x8fa21985, + 0xd936ad73, 0x44394c05, 0x385869de, 0xa55788a8, 0xc09a2268, + 0x5d95c31e, 0x21f4e6c5, 0xbcfb07b3, 0x8373efe2, 0x1e7c0e94, + 0x621d2b4f, 0xff12ca39, 0x9adf60f9, 0x07d0818f, 0x7bb1a454, + 0xe6be4522, 0xb02af1d4, 0x2d2510a2, 0x51443579, 0xcc4bd40f, + 0xa9867ecf, 0x34899fb9, 0x48e8ba62, 0xd5e75b14, 0xe5c1d38e, + 0x78ce32f8, 0x04af1723, 0x99a0f655, 0xfc6d5c95, 0x6162bde3, + 0x1d039838, 0x800c794e, 0xd698cdb8, 0x4b972cce, 0x37f60915, + 0xaaf9e863, 0xcf3442a3, 0x523ba3d5, 0x2e5a860e, 0xb3556778, + 0x4e17973a, 0xd318764c, 0xaf795397, 0x3276b2e1, 0x57bb1821, + 0xcab4f957, 0xb6d5dc8c, 0x2bda3dfa, 0x7d4e890c, 0xe041687a, + 0x9c204da1, 0x012facd7, 0x64e20617, 0xf9ede761, 0x858cc2ba, + 0x188323cc, 0x28a5ab56, 0xb5aa4a20, 0xc9cb6ffb, 0x54c48e8d, + 0x3109244d, 0xac06c53b, 0xd067e0e0, 0x4d680196, 0x1bfcb560, + 0x86f35416, 0xfa9271cd, 0x679d90bb, 0x02503a7b, 0x9f5fdb0d, + 0xe33efed6, 0x7e311fa0, 0xc2ca1813, 0x5fc5f965, 0x23a4dcbe, + 0xbeab3dc8, 0xdb669708, 0x4669767e, 0x3a0853a5, 0xa707b2d3, + 0xf1930625, 0x6c9ce753, 0x10fdc288, 0x8df223fe, 0xe83f893e, + 0x75306848, 0x09514d93, 0x945eace5, 0xa478247f, 0x3977c509, + 0x4516e0d2, 0xd81901a4, 0xbdd4ab64, 0x20db4a12, 0x5cba6fc9, + 0xc1b58ebf, 0x97213a49, 0x0a2edb3f, 0x764ffee4, 0xeb401f92, + 0x8e8db552, 0x13825424, 0x6fe371ff, 0xf2ec9089, 0x0fae60cb, + 0x92a181bd, 0xeec0a466, 0x73cf4510, 0x1602efd0, 0x8b0d0ea6, + 0xf76c2b7d, 0x6a63ca0b, 0x3cf77efd, 0xa1f89f8b, 0xdd99ba50, + 0x40965b26, 0x255bf1e6, 0xb8541090, 0xc435354b, 0x593ad43d, + 0x691c5ca7, 0xf413bdd1, 0x8872980a, 0x157d797c, 0x70b0d3bc, + 0xedbf32ca, 0x91de1711, 0x0cd1f667, 0x5a454291, 0xc74aa3e7, + 0xbb2b863c, 0x2624674a, 0x43e9cd8a, 0xdee62cfc, 0xa2870927, + 0x3f88e851}, + {0x00000000, 0xdd96d985, 0x605cb54b, 0xbdca6cce, 0xc0b96a96, + 0x1d2fb313, 0xa0e5dfdd, 0x7d730658, 0x5a03d36d, 0x87950ae8, + 0x3a5f6626, 0xe7c9bfa3, 0x9abab9fb, 0x472c607e, 0xfae60cb0, + 0x2770d535, 0xb407a6da, 0x69917f5f, 0xd45b1391, 0x09cdca14, + 0x74becc4c, 0xa92815c9, 0x14e27907, 0xc974a082, 0xee0475b7, + 0x3392ac32, 0x8e58c0fc, 0x53ce1979, 0x2ebd1f21, 0xf32bc6a4, + 0x4ee1aa6a, 0x937773ef, 0xb37e4bf5, 0x6ee89270, 0xd322febe, + 0x0eb4273b, 0x73c72163, 0xae51f8e6, 0x139b9428, 0xce0d4dad, + 0xe97d9898, 0x34eb411d, 0x89212dd3, 0x54b7f456, 0x29c4f20e, + 0xf4522b8b, 0x49984745, 0x940e9ec0, 0x0779ed2f, 0xdaef34aa, + 0x67255864, 0xbab381e1, 0xc7c087b9, 0x1a565e3c, 0xa79c32f2, + 0x7a0aeb77, 0x5d7a3e42, 0x80ece7c7, 0x3d268b09, 0xe0b0528c, + 0x9dc354d4, 0x40558d51, 0xfd9fe19f, 0x2009381a, 0xbd8d91ab, + 0x601b482e, 0xddd124e0, 0x0047fd65, 0x7d34fb3d, 0xa0a222b8, + 0x1d684e76, 0xc0fe97f3, 0xe78e42c6, 0x3a189b43, 0x87d2f78d, + 0x5a442e08, 0x27372850, 0xfaa1f1d5, 0x476b9d1b, 0x9afd449e, + 0x098a3771, 0xd41ceef4, 0x69d6823a, 0xb4405bbf, 0xc9335de7, + 0x14a58462, 0xa96fe8ac, 0x74f93129, 0x5389e41c, 0x8e1f3d99, + 0x33d55157, 0xee4388d2, 0x93308e8a, 0x4ea6570f, 0xf36c3bc1, + 0x2efae244, 0x0ef3da5e, 0xd36503db, 0x6eaf6f15, 0xb339b690, + 0xce4ab0c8, 0x13dc694d, 0xae160583, 0x7380dc06, 0x54f00933, + 0x8966d0b6, 0x34acbc78, 0xe93a65fd, 0x944963a5, 0x49dfba20, + 0xf415d6ee, 0x29830f6b, 0xbaf47c84, 0x6762a501, 0xdaa8c9cf, + 0x073e104a, 0x7a4d1612, 0xa7dbcf97, 0x1a11a359, 0xc7877adc, + 0xe0f7afe9, 0x3d61766c, 0x80ab1aa2, 0x5d3dc327, 0x204ec57f, + 0xfdd81cfa, 0x40127034, 0x9d84a9b1, 0xa06a2517, 0x7dfcfc92, + 0xc036905c, 0x1da049d9, 0x60d34f81, 0xbd459604, 0x008ffaca, + 0xdd19234f, 0xfa69f67a, 0x27ff2fff, 0x9a354331, 0x47a39ab4, + 0x3ad09cec, 0xe7464569, 0x5a8c29a7, 0x871af022, 0x146d83cd, + 0xc9fb5a48, 0x74313686, 0xa9a7ef03, 0xd4d4e95b, 0x094230de, + 0xb4885c10, 0x691e8595, 0x4e6e50a0, 0x93f88925, 0x2e32e5eb, + 0xf3a43c6e, 0x8ed73a36, 0x5341e3b3, 0xee8b8f7d, 0x331d56f8, + 0x13146ee2, 0xce82b767, 0x7348dba9, 0xaede022c, 0xd3ad0474, + 0x0e3bddf1, 0xb3f1b13f, 0x6e6768ba, 0x4917bd8f, 0x9481640a, + 0x294b08c4, 0xf4ddd141, 0x89aed719, 0x54380e9c, 0xe9f26252, + 0x3464bbd7, 0xa713c838, 0x7a8511bd, 0xc74f7d73, 0x1ad9a4f6, + 0x67aaa2ae, 0xba3c7b2b, 0x07f617e5, 0xda60ce60, 0xfd101b55, + 0x2086c2d0, 0x9d4cae1e, 0x40da779b, 0x3da971c3, 0xe03fa846, + 0x5df5c488, 0x80631d0d, 0x1de7b4bc, 0xc0716d39, 0x7dbb01f7, + 0xa02dd872, 0xdd5ede2a, 0x00c807af, 0xbd026b61, 0x6094b2e4, + 0x47e467d1, 0x9a72be54, 0x27b8d29a, 0xfa2e0b1f, 0x875d0d47, + 0x5acbd4c2, 0xe701b80c, 0x3a976189, 0xa9e01266, 0x7476cbe3, + 0xc9bca72d, 0x142a7ea8, 0x695978f0, 0xb4cfa175, 0x0905cdbb, + 0xd493143e, 0xf3e3c10b, 0x2e75188e, 0x93bf7440, 0x4e29adc5, + 0x335aab9d, 0xeecc7218, 0x53061ed6, 0x8e90c753, 0xae99ff49, + 0x730f26cc, 0xcec54a02, 0x13539387, 0x6e2095df, 0xb3b64c5a, + 0x0e7c2094, 0xd3eaf911, 0xf49a2c24, 0x290cf5a1, 0x94c6996f, + 0x495040ea, 0x342346b2, 0xe9b59f37, 0x547ff3f9, 0x89e92a7c, + 0x1a9e5993, 0xc7088016, 0x7ac2ecd8, 0xa754355d, 0xda273305, + 0x07b1ea80, 0xba7b864e, 0x67ed5fcb, 0x409d8afe, 0x9d0b537b, + 0x20c13fb5, 0xfd57e630, 0x8024e068, 0x5db239ed, 0xe0785523, + 0x3dee8ca6}, + {0x00000000, 0x9ba54c6f, 0xec3b9e9f, 0x779ed2f0, 0x03063b7f, + 0x98a37710, 0xef3da5e0, 0x7498e98f, 0x060c76fe, 0x9da93a91, + 0xea37e861, 0x7192a40e, 0x050a4d81, 0x9eaf01ee, 0xe931d31e, + 0x72949f71, 0x0c18edfc, 0x97bda193, 0xe0237363, 0x7b863f0c, + 0x0f1ed683, 0x94bb9aec, 0xe325481c, 0x78800473, 0x0a149b02, + 0x91b1d76d, 0xe62f059d, 0x7d8a49f2, 0x0912a07d, 0x92b7ec12, + 0xe5293ee2, 0x7e8c728d, 0x1831dbf8, 0x83949797, 0xf40a4567, + 0x6faf0908, 0x1b37e087, 0x8092ace8, 0xf70c7e18, 0x6ca93277, + 0x1e3dad06, 0x8598e169, 0xf2063399, 0x69a37ff6, 0x1d3b9679, + 0x869eda16, 0xf10008e6, 0x6aa54489, 0x14293604, 0x8f8c7a6b, + 0xf812a89b, 0x63b7e4f4, 0x172f0d7b, 0x8c8a4114, 0xfb1493e4, + 0x60b1df8b, 0x122540fa, 0x89800c95, 0xfe1ede65, 0x65bb920a, + 0x11237b85, 0x8a8637ea, 0xfd18e51a, 0x66bda975, 0x3063b7f0, + 0xabc6fb9f, 0xdc58296f, 0x47fd6500, 0x33658c8f, 0xa8c0c0e0, + 0xdf5e1210, 0x44fb5e7f, 0x366fc10e, 0xadca8d61, 0xda545f91, + 0x41f113fe, 0x3569fa71, 0xaeccb61e, 0xd95264ee, 0x42f72881, + 0x3c7b5a0c, 0xa7de1663, 0xd040c493, 0x4be588fc, 0x3f7d6173, + 0xa4d82d1c, 0xd346ffec, 0x48e3b383, 0x3a772cf2, 0xa1d2609d, + 0xd64cb26d, 0x4de9fe02, 0x3971178d, 0xa2d45be2, 0xd54a8912, + 0x4eefc57d, 0x28526c08, 0xb3f72067, 0xc469f297, 0x5fccbef8, + 0x2b545777, 0xb0f11b18, 0xc76fc9e8, 0x5cca8587, 0x2e5e1af6, + 0xb5fb5699, 0xc2658469, 0x59c0c806, 0x2d582189, 0xb6fd6de6, + 0xc163bf16, 0x5ac6f379, 0x244a81f4, 0xbfefcd9b, 0xc8711f6b, + 0x53d45304, 0x274cba8b, 0xbce9f6e4, 0xcb772414, 0x50d2687b, + 0x2246f70a, 0xb9e3bb65, 0xce7d6995, 0x55d825fa, 0x2140cc75, + 0xbae5801a, 0xcd7b52ea, 0x56de1e85, 0x60c76fe0, 0xfb62238f, + 0x8cfcf17f, 0x1759bd10, 0x63c1549f, 0xf86418f0, 0x8ffaca00, + 0x145f866f, 0x66cb191e, 0xfd6e5571, 0x8af08781, 0x1155cbee, + 0x65cd2261, 0xfe686e0e, 0x89f6bcfe, 0x1253f091, 0x6cdf821c, + 0xf77ace73, 0x80e41c83, 0x1b4150ec, 0x6fd9b963, 0xf47cf50c, + 0x83e227fc, 0x18476b93, 0x6ad3f4e2, 0xf176b88d, 0x86e86a7d, + 0x1d4d2612, 0x69d5cf9d, 0xf27083f2, 0x85ee5102, 0x1e4b1d6d, + 0x78f6b418, 0xe353f877, 0x94cd2a87, 0x0f6866e8, 0x7bf08f67, + 0xe055c308, 0x97cb11f8, 0x0c6e5d97, 0x7efac2e6, 0xe55f8e89, + 0x92c15c79, 0x09641016, 0x7dfcf999, 0xe659b5f6, 0x91c76706, + 0x0a622b69, 0x74ee59e4, 0xef4b158b, 0x98d5c77b, 0x03708b14, + 0x77e8629b, 0xec4d2ef4, 0x9bd3fc04, 0x0076b06b, 0x72e22f1a, + 0xe9476375, 0x9ed9b185, 0x057cfdea, 0x71e41465, 0xea41580a, + 0x9ddf8afa, 0x067ac695, 0x50a4d810, 0xcb01947f, 0xbc9f468f, + 0x273a0ae0, 0x53a2e36f, 0xc807af00, 0xbf997df0, 0x243c319f, + 0x56a8aeee, 0xcd0de281, 0xba933071, 0x21367c1e, 0x55ae9591, + 0xce0bd9fe, 0xb9950b0e, 0x22304761, 0x5cbc35ec, 0xc7197983, + 0xb087ab73, 0x2b22e71c, 0x5fba0e93, 0xc41f42fc, 0xb381900c, + 0x2824dc63, 0x5ab04312, 0xc1150f7d, 0xb68bdd8d, 0x2d2e91e2, + 0x59b6786d, 0xc2133402, 0xb58de6f2, 0x2e28aa9d, 0x489503e8, + 0xd3304f87, 0xa4ae9d77, 0x3f0bd118, 0x4b933897, 0xd03674f8, + 0xa7a8a608, 0x3c0dea67, 0x4e997516, 0xd53c3979, 0xa2a2eb89, + 0x3907a7e6, 0x4d9f4e69, 0xd63a0206, 0xa1a4d0f6, 0x3a019c99, + 0x448dee14, 0xdf28a27b, 0xa8b6708b, 0x33133ce4, 0x478bd56b, + 0xdc2e9904, 0xabb04bf4, 0x3015079b, 0x428198ea, 0xd924d485, + 0xaeba0675, 0x351f4a1a, 0x4187a395, 0xda22effa, 0xadbc3d0a, + 0x36197165}, + {0x00000000, 0xc18edfc0, 0x586cb9c1, 0x99e26601, 0xb0d97382, + 0x7157ac42, 0xe8b5ca43, 0x293b1583, 0xbac3e145, 0x7b4d3e85, + 0xe2af5884, 0x23218744, 0x0a1a92c7, 0xcb944d07, 0x52762b06, + 0x93f8f4c6, 0xaef6c4cb, 0x6f781b0b, 0xf69a7d0a, 0x3714a2ca, + 0x1e2fb749, 0xdfa16889, 0x46430e88, 0x87cdd148, 0x1435258e, + 0xd5bbfa4e, 0x4c599c4f, 0x8dd7438f, 0xa4ec560c, 0x656289cc, + 0xfc80efcd, 0x3d0e300d, 0x869c8fd7, 0x47125017, 0xdef03616, + 0x1f7ee9d6, 0x3645fc55, 0xf7cb2395, 0x6e294594, 0xafa79a54, + 0x3c5f6e92, 0xfdd1b152, 0x6433d753, 0xa5bd0893, 0x8c861d10, + 0x4d08c2d0, 0xd4eaa4d1, 0x15647b11, 0x286a4b1c, 0xe9e494dc, + 0x7006f2dd, 0xb1882d1d, 0x98b3389e, 0x593de75e, 0xc0df815f, + 0x01515e9f, 0x92a9aa59, 0x53277599, 0xcac51398, 0x0b4bcc58, + 0x2270d9db, 0xe3fe061b, 0x7a1c601a, 0xbb92bfda, 0xd64819ef, + 0x17c6c62f, 0x8e24a02e, 0x4faa7fee, 0x66916a6d, 0xa71fb5ad, + 0x3efdd3ac, 0xff730c6c, 0x6c8bf8aa, 0xad05276a, 0x34e7416b, + 0xf5699eab, 0xdc528b28, 0x1ddc54e8, 0x843e32e9, 0x45b0ed29, + 0x78bedd24, 0xb93002e4, 0x20d264e5, 0xe15cbb25, 0xc867aea6, + 0x09e97166, 0x900b1767, 0x5185c8a7, 0xc27d3c61, 0x03f3e3a1, + 0x9a1185a0, 0x5b9f5a60, 0x72a44fe3, 0xb32a9023, 0x2ac8f622, + 0xeb4629e2, 0x50d49638, 0x915a49f8, 0x08b82ff9, 0xc936f039, + 0xe00de5ba, 0x21833a7a, 0xb8615c7b, 0x79ef83bb, 0xea17777d, + 0x2b99a8bd, 0xb27bcebc, 0x73f5117c, 0x5ace04ff, 0x9b40db3f, + 0x02a2bd3e, 0xc32c62fe, 0xfe2252f3, 0x3fac8d33, 0xa64eeb32, + 0x67c034f2, 0x4efb2171, 0x8f75feb1, 0x169798b0, 0xd7194770, + 0x44e1b3b6, 0x856f6c76, 0x1c8d0a77, 0xdd03d5b7, 0xf438c034, + 0x35b61ff4, 0xac5479f5, 0x6ddaa635, 0x77e1359f, 0xb66fea5f, + 0x2f8d8c5e, 0xee03539e, 0xc738461d, 0x06b699dd, 0x9f54ffdc, + 0x5eda201c, 0xcd22d4da, 0x0cac0b1a, 0x954e6d1b, 0x54c0b2db, + 0x7dfba758, 0xbc757898, 0x25971e99, 0xe419c159, 0xd917f154, + 0x18992e94, 0x817b4895, 0x40f59755, 0x69ce82d6, 0xa8405d16, + 0x31a23b17, 0xf02ce4d7, 0x63d41011, 0xa25acfd1, 0x3bb8a9d0, + 0xfa367610, 0xd30d6393, 0x1283bc53, 0x8b61da52, 0x4aef0592, + 0xf17dba48, 0x30f36588, 0xa9110389, 0x689fdc49, 0x41a4c9ca, + 0x802a160a, 0x19c8700b, 0xd846afcb, 0x4bbe5b0d, 0x8a3084cd, + 0x13d2e2cc, 0xd25c3d0c, 0xfb67288f, 0x3ae9f74f, 0xa30b914e, + 0x62854e8e, 0x5f8b7e83, 0x9e05a143, 0x07e7c742, 0xc6691882, + 0xef520d01, 0x2edcd2c1, 0xb73eb4c0, 0x76b06b00, 0xe5489fc6, + 0x24c64006, 0xbd242607, 0x7caaf9c7, 0x5591ec44, 0x941f3384, + 0x0dfd5585, 0xcc738a45, 0xa1a92c70, 0x6027f3b0, 0xf9c595b1, + 0x384b4a71, 0x11705ff2, 0xd0fe8032, 0x491ce633, 0x889239f3, + 0x1b6acd35, 0xdae412f5, 0x430674f4, 0x8288ab34, 0xabb3beb7, + 0x6a3d6177, 0xf3df0776, 0x3251d8b6, 0x0f5fe8bb, 0xced1377b, + 0x5733517a, 0x96bd8eba, 0xbf869b39, 0x7e0844f9, 0xe7ea22f8, + 0x2664fd38, 0xb59c09fe, 0x7412d63e, 0xedf0b03f, 0x2c7e6fff, + 0x05457a7c, 0xc4cba5bc, 0x5d29c3bd, 0x9ca71c7d, 0x2735a3a7, + 0xe6bb7c67, 0x7f591a66, 0xbed7c5a6, 0x97ecd025, 0x56620fe5, + 0xcf8069e4, 0x0e0eb624, 0x9df642e2, 0x5c789d22, 0xc59afb23, + 0x041424e3, 0x2d2f3160, 0xeca1eea0, 0x754388a1, 0xb4cd5761, + 0x89c3676c, 0x484db8ac, 0xd1afdead, 0x1021016d, 0x391a14ee, + 0xf894cb2e, 0x6176ad2f, 0xa0f872ef, 0x33008629, 0xf28e59e9, + 0x6b6c3fe8, 0xaae2e028, 0x83d9f5ab, 0x42572a6b, 0xdbb54c6a, + 0x1a3b93aa}, + {0x00000000, 0xefc26b3e, 0x04f5d03d, 0xeb37bb03, 0x09eba07a, + 0xe629cb44, 0x0d1e7047, 0xe2dc1b79, 0x13d740f4, 0xfc152bca, + 0x172290c9, 0xf8e0fbf7, 0x1a3ce08e, 0xf5fe8bb0, 0x1ec930b3, + 0xf10b5b8d, 0x27ae81e8, 0xc86cead6, 0x235b51d5, 0xcc993aeb, + 0x2e452192, 0xc1874aac, 0x2ab0f1af, 0xc5729a91, 0x3479c11c, + 0xdbbbaa22, 0x308c1121, 0xdf4e7a1f, 0x3d926166, 0xd2500a58, + 0x3967b15b, 0xd6a5da65, 0x4f5d03d0, 0xa09f68ee, 0x4ba8d3ed, + 0xa46ab8d3, 0x46b6a3aa, 0xa974c894, 0x42437397, 0xad8118a9, + 0x5c8a4324, 0xb348281a, 0x587f9319, 0xb7bdf827, 0x5561e35e, + 0xbaa38860, 0x51943363, 0xbe56585d, 0x68f38238, 0x8731e906, + 0x6c065205, 0x83c4393b, 0x61182242, 0x8eda497c, 0x65edf27f, + 0x8a2f9941, 0x7b24c2cc, 0x94e6a9f2, 0x7fd112f1, 0x901379cf, + 0x72cf62b6, 0x9d0d0988, 0x763ab28b, 0x99f8d9b5, 0x9eba07a0, + 0x71786c9e, 0x9a4fd79d, 0x758dbca3, 0x9751a7da, 0x7893cce4, + 0x93a477e7, 0x7c661cd9, 0x8d6d4754, 0x62af2c6a, 0x89989769, + 0x665afc57, 0x8486e72e, 0x6b448c10, 0x80733713, 0x6fb15c2d, + 0xb9148648, 0x56d6ed76, 0xbde15675, 0x52233d4b, 0xb0ff2632, + 0x5f3d4d0c, 0xb40af60f, 0x5bc89d31, 0xaac3c6bc, 0x4501ad82, + 0xae361681, 0x41f47dbf, 0xa32866c6, 0x4cea0df8, 0xa7ddb6fb, + 0x481fddc5, 0xd1e70470, 0x3e256f4e, 0xd512d44d, 0x3ad0bf73, + 0xd80ca40a, 0x37cecf34, 0xdcf97437, 0x333b1f09, 0xc2304484, + 0x2df22fba, 0xc6c594b9, 0x2907ff87, 0xcbdbe4fe, 0x24198fc0, + 0xcf2e34c3, 0x20ec5ffd, 0xf6498598, 0x198beea6, 0xf2bc55a5, + 0x1d7e3e9b, 0xffa225e2, 0x10604edc, 0xfb57f5df, 0x14959ee1, + 0xe59ec56c, 0x0a5cae52, 0xe16b1551, 0x0ea97e6f, 0xec756516, + 0x03b70e28, 0xe880b52b, 0x0742de15, 0xe6050901, 0x09c7623f, + 0xe2f0d93c, 0x0d32b202, 0xefeea97b, 0x002cc245, 0xeb1b7946, + 0x04d91278, 0xf5d249f5, 0x1a1022cb, 0xf12799c8, 0x1ee5f2f6, + 0xfc39e98f, 0x13fb82b1, 0xf8cc39b2, 0x170e528c, 0xc1ab88e9, + 0x2e69e3d7, 0xc55e58d4, 0x2a9c33ea, 0xc8402893, 0x278243ad, + 0xccb5f8ae, 0x23779390, 0xd27cc81d, 0x3dbea323, 0xd6891820, + 0x394b731e, 0xdb976867, 0x34550359, 0xdf62b85a, 0x30a0d364, + 0xa9580ad1, 0x469a61ef, 0xadaddaec, 0x426fb1d2, 0xa0b3aaab, + 0x4f71c195, 0xa4467a96, 0x4b8411a8, 0xba8f4a25, 0x554d211b, + 0xbe7a9a18, 0x51b8f126, 0xb364ea5f, 0x5ca68161, 0xb7913a62, + 0x5853515c, 0x8ef68b39, 0x6134e007, 0x8a035b04, 0x65c1303a, + 0x871d2b43, 0x68df407d, 0x83e8fb7e, 0x6c2a9040, 0x9d21cbcd, + 0x72e3a0f3, 0x99d41bf0, 0x761670ce, 0x94ca6bb7, 0x7b080089, + 0x903fbb8a, 0x7ffdd0b4, 0x78bf0ea1, 0x977d659f, 0x7c4ade9c, + 0x9388b5a2, 0x7154aedb, 0x9e96c5e5, 0x75a17ee6, 0x9a6315d8, + 0x6b684e55, 0x84aa256b, 0x6f9d9e68, 0x805ff556, 0x6283ee2f, + 0x8d418511, 0x66763e12, 0x89b4552c, 0x5f118f49, 0xb0d3e477, + 0x5be45f74, 0xb426344a, 0x56fa2f33, 0xb938440d, 0x520fff0e, + 0xbdcd9430, 0x4cc6cfbd, 0xa304a483, 0x48331f80, 0xa7f174be, + 0x452d6fc7, 0xaaef04f9, 0x41d8bffa, 0xae1ad4c4, 0x37e20d71, + 0xd820664f, 0x3317dd4c, 0xdcd5b672, 0x3e09ad0b, 0xd1cbc635, + 0x3afc7d36, 0xd53e1608, 0x24354d85, 0xcbf726bb, 0x20c09db8, + 0xcf02f686, 0x2ddeedff, 0xc21c86c1, 0x292b3dc2, 0xc6e956fc, + 0x104c8c99, 0xff8ee7a7, 0x14b95ca4, 0xfb7b379a, 0x19a72ce3, + 0xf66547dd, 0x1d52fcde, 0xf29097e0, 0x039bcc6d, 0xec59a753, + 0x076e1c50, 0xe8ac776e, 0x0a706c17, 0xe5b20729, 0x0e85bc2a, + 0xe147d714}, + {0x00000000, 0x177b1443, 0x2ef62886, 0x398d3cc5, 0x5dec510c, + 0x4a97454f, 0x731a798a, 0x64616dc9, 0xbbd8a218, 0xaca3b65b, + 0x952e8a9e, 0x82559edd, 0xe634f314, 0xf14fe757, 0xc8c2db92, + 0xdfb9cfd1, 0xacc04271, 0xbbbb5632, 0x82366af7, 0x954d7eb4, + 0xf12c137d, 0xe657073e, 0xdfda3bfb, 0xc8a12fb8, 0x1718e069, + 0x0063f42a, 0x39eec8ef, 0x2e95dcac, 0x4af4b165, 0x5d8fa526, + 0x640299e3, 0x73798da0, 0x82f182a3, 0x958a96e0, 0xac07aa25, + 0xbb7cbe66, 0xdf1dd3af, 0xc866c7ec, 0xf1ebfb29, 0xe690ef6a, + 0x392920bb, 0x2e5234f8, 0x17df083d, 0x00a41c7e, 0x64c571b7, + 0x73be65f4, 0x4a335931, 0x5d484d72, 0x2e31c0d2, 0x394ad491, + 0x00c7e854, 0x17bcfc17, 0x73dd91de, 0x64a6859d, 0x5d2bb958, + 0x4a50ad1b, 0x95e962ca, 0x82927689, 0xbb1f4a4c, 0xac645e0f, + 0xc80533c6, 0xdf7e2785, 0xe6f31b40, 0xf1880f03, 0xde920307, + 0xc9e91744, 0xf0642b81, 0xe71f3fc2, 0x837e520b, 0x94054648, + 0xad887a8d, 0xbaf36ece, 0x654aa11f, 0x7231b55c, 0x4bbc8999, + 0x5cc79dda, 0x38a6f013, 0x2fdde450, 0x1650d895, 0x012bccd6, + 0x72524176, 0x65295535, 0x5ca469f0, 0x4bdf7db3, 0x2fbe107a, + 0x38c50439, 0x014838fc, 0x16332cbf, 0xc98ae36e, 0xdef1f72d, + 0xe77ccbe8, 0xf007dfab, 0x9466b262, 0x831da621, 0xba909ae4, + 0xadeb8ea7, 0x5c6381a4, 0x4b1895e7, 0x7295a922, 0x65eebd61, + 0x018fd0a8, 0x16f4c4eb, 0x2f79f82e, 0x3802ec6d, 0xe7bb23bc, + 0xf0c037ff, 0xc94d0b3a, 0xde361f79, 0xba5772b0, 0xad2c66f3, + 0x94a15a36, 0x83da4e75, 0xf0a3c3d5, 0xe7d8d796, 0xde55eb53, + 0xc92eff10, 0xad4f92d9, 0xba34869a, 0x83b9ba5f, 0x94c2ae1c, + 0x4b7b61cd, 0x5c00758e, 0x658d494b, 0x72f65d08, 0x169730c1, + 0x01ec2482, 0x38611847, 0x2f1a0c04, 0x6655004f, 0x712e140c, + 0x48a328c9, 0x5fd83c8a, 0x3bb95143, 0x2cc24500, 0x154f79c5, + 0x02346d86, 0xdd8da257, 0xcaf6b614, 0xf37b8ad1, 0xe4009e92, + 0x8061f35b, 0x971ae718, 0xae97dbdd, 0xb9eccf9e, 0xca95423e, + 0xddee567d, 0xe4636ab8, 0xf3187efb, 0x97791332, 0x80020771, + 0xb98f3bb4, 0xaef42ff7, 0x714de026, 0x6636f465, 0x5fbbc8a0, + 0x48c0dce3, 0x2ca1b12a, 0x3bdaa569, 0x025799ac, 0x152c8def, + 0xe4a482ec, 0xf3df96af, 0xca52aa6a, 0xdd29be29, 0xb948d3e0, + 0xae33c7a3, 0x97befb66, 0x80c5ef25, 0x5f7c20f4, 0x480734b7, + 0x718a0872, 0x66f11c31, 0x029071f8, 0x15eb65bb, 0x2c66597e, + 0x3b1d4d3d, 0x4864c09d, 0x5f1fd4de, 0x6692e81b, 0x71e9fc58, + 0x15889191, 0x02f385d2, 0x3b7eb917, 0x2c05ad54, 0xf3bc6285, + 0xe4c776c6, 0xdd4a4a03, 0xca315e40, 0xae503389, 0xb92b27ca, + 0x80a61b0f, 0x97dd0f4c, 0xb8c70348, 0xafbc170b, 0x96312bce, + 0x814a3f8d, 0xe52b5244, 0xf2504607, 0xcbdd7ac2, 0xdca66e81, + 0x031fa150, 0x1464b513, 0x2de989d6, 0x3a929d95, 0x5ef3f05c, + 0x4988e41f, 0x7005d8da, 0x677ecc99, 0x14074139, 0x037c557a, + 0x3af169bf, 0x2d8a7dfc, 0x49eb1035, 0x5e900476, 0x671d38b3, + 0x70662cf0, 0xafdfe321, 0xb8a4f762, 0x8129cba7, 0x9652dfe4, + 0xf233b22d, 0xe548a66e, 0xdcc59aab, 0xcbbe8ee8, 0x3a3681eb, + 0x2d4d95a8, 0x14c0a96d, 0x03bbbd2e, 0x67dad0e7, 0x70a1c4a4, + 0x492cf861, 0x5e57ec22, 0x81ee23f3, 0x969537b0, 0xaf180b75, + 0xb8631f36, 0xdc0272ff, 0xcb7966bc, 0xf2f45a79, 0xe58f4e3a, + 0x96f6c39a, 0x818dd7d9, 0xb800eb1c, 0xaf7bff5f, 0xcb1a9296, + 0xdc6186d5, 0xe5ecba10, 0xf297ae53, 0x2d2e6182, 0x3a5575c1, + 0x03d84904, 0x14a35d47, 0x70c2308e, 0x67b924cd, 0x5e341808, + 0x494f0c4b}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x0000000000000000, 0x43147b1700000000, 0x8628f62e00000000, + 0xc53c8d3900000000, 0x0c51ec5d00000000, 0x4f45974a00000000, + 0x8a791a7300000000, 0xc96d616400000000, 0x18a2d8bb00000000, + 0x5bb6a3ac00000000, 0x9e8a2e9500000000, 0xdd9e558200000000, + 0x14f334e600000000, 0x57e74ff100000000, 0x92dbc2c800000000, + 0xd1cfb9df00000000, 0x7142c0ac00000000, 0x3256bbbb00000000, + 0xf76a368200000000, 0xb47e4d9500000000, 0x7d132cf100000000, + 0x3e0757e600000000, 0xfb3bdadf00000000, 0xb82fa1c800000000, + 0x69e0181700000000, 0x2af4630000000000, 0xefc8ee3900000000, + 0xacdc952e00000000, 0x65b1f44a00000000, 0x26a58f5d00000000, + 0xe399026400000000, 0xa08d797300000000, 0xa382f18200000000, + 0xe0968a9500000000, 0x25aa07ac00000000, 0x66be7cbb00000000, + 0xafd31ddf00000000, 0xecc766c800000000, 0x29fbebf100000000, + 0x6aef90e600000000, 0xbb20293900000000, 0xf834522e00000000, + 0x3d08df1700000000, 0x7e1ca40000000000, 0xb771c56400000000, + 0xf465be7300000000, 0x3159334a00000000, 0x724d485d00000000, + 0xd2c0312e00000000, 0x91d44a3900000000, 0x54e8c70000000000, + 0x17fcbc1700000000, 0xde91dd7300000000, 0x9d85a66400000000, + 0x58b92b5d00000000, 0x1bad504a00000000, 0xca62e99500000000, + 0x8976928200000000, 0x4c4a1fbb00000000, 0x0f5e64ac00000000, + 0xc63305c800000000, 0x85277edf00000000, 0x401bf3e600000000, + 0x030f88f100000000, 0x070392de00000000, 0x4417e9c900000000, + 0x812b64f000000000, 0xc23f1fe700000000, 0x0b527e8300000000, + 0x4846059400000000, 0x8d7a88ad00000000, 0xce6ef3ba00000000, + 0x1fa14a6500000000, 0x5cb5317200000000, 0x9989bc4b00000000, + 0xda9dc75c00000000, 0x13f0a63800000000, 0x50e4dd2f00000000, + 0x95d8501600000000, 0xd6cc2b0100000000, 0x7641527200000000, + 0x3555296500000000, 0xf069a45c00000000, 0xb37ddf4b00000000, + 0x7a10be2f00000000, 0x3904c53800000000, 0xfc38480100000000, + 0xbf2c331600000000, 0x6ee38ac900000000, 0x2df7f1de00000000, + 0xe8cb7ce700000000, 0xabdf07f000000000, 0x62b2669400000000, + 0x21a61d8300000000, 0xe49a90ba00000000, 0xa78eebad00000000, + 0xa481635c00000000, 0xe795184b00000000, 0x22a9957200000000, + 0x61bdee6500000000, 0xa8d08f0100000000, 0xebc4f41600000000, + 0x2ef8792f00000000, 0x6dec023800000000, 0xbc23bbe700000000, + 0xff37c0f000000000, 0x3a0b4dc900000000, 0x791f36de00000000, + 0xb07257ba00000000, 0xf3662cad00000000, 0x365aa19400000000, + 0x754eda8300000000, 0xd5c3a3f000000000, 0x96d7d8e700000000, + 0x53eb55de00000000, 0x10ff2ec900000000, 0xd9924fad00000000, + 0x9a8634ba00000000, 0x5fbab98300000000, 0x1caec29400000000, + 0xcd617b4b00000000, 0x8e75005c00000000, 0x4b498d6500000000, + 0x085df67200000000, 0xc130971600000000, 0x8224ec0100000000, + 0x4718613800000000, 0x040c1a2f00000000, 0x4f00556600000000, + 0x0c142e7100000000, 0xc928a34800000000, 0x8a3cd85f00000000, + 0x4351b93b00000000, 0x0045c22c00000000, 0xc5794f1500000000, + 0x866d340200000000, 0x57a28ddd00000000, 0x14b6f6ca00000000, + 0xd18a7bf300000000, 0x929e00e400000000, 0x5bf3618000000000, + 0x18e71a9700000000, 0xdddb97ae00000000, 0x9ecfecb900000000, + 0x3e4295ca00000000, 0x7d56eedd00000000, 0xb86a63e400000000, + 0xfb7e18f300000000, 0x3213799700000000, 0x7107028000000000, + 0xb43b8fb900000000, 0xf72ff4ae00000000, 0x26e04d7100000000, + 0x65f4366600000000, 0xa0c8bb5f00000000, 0xe3dcc04800000000, + 0x2ab1a12c00000000, 0x69a5da3b00000000, 0xac99570200000000, + 0xef8d2c1500000000, 0xec82a4e400000000, 0xaf96dff300000000, + 0x6aaa52ca00000000, 0x29be29dd00000000, 0xe0d348b900000000, + 0xa3c733ae00000000, 0x66fbbe9700000000, 0x25efc58000000000, + 0xf4207c5f00000000, 0xb734074800000000, 0x72088a7100000000, + 0x311cf16600000000, 0xf871900200000000, 0xbb65eb1500000000, + 0x7e59662c00000000, 0x3d4d1d3b00000000, 0x9dc0644800000000, + 0xded41f5f00000000, 0x1be8926600000000, 0x58fce97100000000, + 0x9191881500000000, 0xd285f30200000000, 0x17b97e3b00000000, + 0x54ad052c00000000, 0x8562bcf300000000, 0xc676c7e400000000, + 0x034a4add00000000, 0x405e31ca00000000, 0x893350ae00000000, + 0xca272bb900000000, 0x0f1ba68000000000, 0x4c0fdd9700000000, + 0x4803c7b800000000, 0x0b17bcaf00000000, 0xce2b319600000000, + 0x8d3f4a8100000000, 0x44522be500000000, 0x074650f200000000, + 0xc27addcb00000000, 0x816ea6dc00000000, 0x50a11f0300000000, + 0x13b5641400000000, 0xd689e92d00000000, 0x959d923a00000000, + 0x5cf0f35e00000000, 0x1fe4884900000000, 0xdad8057000000000, + 0x99cc7e6700000000, 0x3941071400000000, 0x7a557c0300000000, + 0xbf69f13a00000000, 0xfc7d8a2d00000000, 0x3510eb4900000000, + 0x7604905e00000000, 0xb3381d6700000000, 0xf02c667000000000, + 0x21e3dfaf00000000, 0x62f7a4b800000000, 0xa7cb298100000000, + 0xe4df529600000000, 0x2db233f200000000, 0x6ea648e500000000, + 0xab9ac5dc00000000, 0xe88ebecb00000000, 0xeb81363a00000000, + 0xa8954d2d00000000, 0x6da9c01400000000, 0x2ebdbb0300000000, + 0xe7d0da6700000000, 0xa4c4a17000000000, 0x61f82c4900000000, + 0x22ec575e00000000, 0xf323ee8100000000, 0xb037959600000000, + 0x750b18af00000000, 0x361f63b800000000, 0xff7202dc00000000, + 0xbc6679cb00000000, 0x795af4f200000000, 0x3a4e8fe500000000, + 0x9ac3f69600000000, 0xd9d78d8100000000, 0x1ceb00b800000000, + 0x5fff7baf00000000, 0x96921acb00000000, 0xd58661dc00000000, + 0x10baece500000000, 0x53ae97f200000000, 0x82612e2d00000000, + 0xc175553a00000000, 0x0449d80300000000, 0x475da31400000000, + 0x8e30c27000000000, 0xcd24b96700000000, 0x0818345e00000000, + 0x4b0c4f4900000000}, + {0x0000000000000000, 0x3e6bc2ef00000000, 0x3dd0f50400000000, + 0x03bb37eb00000000, 0x7aa0eb0900000000, 0x44cb29e600000000, + 0x47701e0d00000000, 0x791bdce200000000, 0xf440d71300000000, + 0xca2b15fc00000000, 0xc990221700000000, 0xf7fbe0f800000000, + 0x8ee03c1a00000000, 0xb08bfef500000000, 0xb330c91e00000000, + 0x8d5b0bf100000000, 0xe881ae2700000000, 0xd6ea6cc800000000, + 0xd5515b2300000000, 0xeb3a99cc00000000, 0x9221452e00000000, + 0xac4a87c100000000, 0xaff1b02a00000000, 0x919a72c500000000, + 0x1cc1793400000000, 0x22aabbdb00000000, 0x21118c3000000000, + 0x1f7a4edf00000000, 0x6661923d00000000, 0x580a50d200000000, + 0x5bb1673900000000, 0x65daa5d600000000, 0xd0035d4f00000000, + 0xee689fa000000000, 0xedd3a84b00000000, 0xd3b86aa400000000, + 0xaaa3b64600000000, 0x94c874a900000000, 0x9773434200000000, + 0xa91881ad00000000, 0x24438a5c00000000, 0x1a2848b300000000, + 0x19937f5800000000, 0x27f8bdb700000000, 0x5ee3615500000000, + 0x6088a3ba00000000, 0x6333945100000000, 0x5d5856be00000000, + 0x3882f36800000000, 0x06e9318700000000, 0x0552066c00000000, + 0x3b39c48300000000, 0x4222186100000000, 0x7c49da8e00000000, + 0x7ff2ed6500000000, 0x41992f8a00000000, 0xccc2247b00000000, + 0xf2a9e69400000000, 0xf112d17f00000000, 0xcf79139000000000, + 0xb662cf7200000000, 0x88090d9d00000000, 0x8bb23a7600000000, + 0xb5d9f89900000000, 0xa007ba9e00000000, 0x9e6c787100000000, + 0x9dd74f9a00000000, 0xa3bc8d7500000000, 0xdaa7519700000000, + 0xe4cc937800000000, 0xe777a49300000000, 0xd91c667c00000000, + 0x54476d8d00000000, 0x6a2caf6200000000, 0x6997988900000000, + 0x57fc5a6600000000, 0x2ee7868400000000, 0x108c446b00000000, + 0x1337738000000000, 0x2d5cb16f00000000, 0x488614b900000000, + 0x76edd65600000000, 0x7556e1bd00000000, 0x4b3d235200000000, + 0x3226ffb000000000, 0x0c4d3d5f00000000, 0x0ff60ab400000000, + 0x319dc85b00000000, 0xbcc6c3aa00000000, 0x82ad014500000000, + 0x811636ae00000000, 0xbf7df44100000000, 0xc66628a300000000, + 0xf80dea4c00000000, 0xfbb6dda700000000, 0xc5dd1f4800000000, + 0x7004e7d100000000, 0x4e6f253e00000000, 0x4dd412d500000000, + 0x73bfd03a00000000, 0x0aa40cd800000000, 0x34cfce3700000000, + 0x3774f9dc00000000, 0x091f3b3300000000, 0x844430c200000000, + 0xba2ff22d00000000, 0xb994c5c600000000, 0x87ff072900000000, + 0xfee4dbcb00000000, 0xc08f192400000000, 0xc3342ecf00000000, + 0xfd5fec2000000000, 0x988549f600000000, 0xa6ee8b1900000000, + 0xa555bcf200000000, 0x9b3e7e1d00000000, 0xe225a2ff00000000, + 0xdc4e601000000000, 0xdff557fb00000000, 0xe19e951400000000, + 0x6cc59ee500000000, 0x52ae5c0a00000000, 0x51156be100000000, + 0x6f7ea90e00000000, 0x166575ec00000000, 0x280eb70300000000, + 0x2bb580e800000000, 0x15de420700000000, 0x010905e600000000, + 0x3f62c70900000000, 0x3cd9f0e200000000, 0x02b2320d00000000, + 0x7ba9eeef00000000, 0x45c22c0000000000, 0x46791beb00000000, + 0x7812d90400000000, 0xf549d2f500000000, 0xcb22101a00000000, + 0xc89927f100000000, 0xf6f2e51e00000000, 0x8fe939fc00000000, + 0xb182fb1300000000, 0xb239ccf800000000, 0x8c520e1700000000, + 0xe988abc100000000, 0xd7e3692e00000000, 0xd4585ec500000000, + 0xea339c2a00000000, 0x932840c800000000, 0xad43822700000000, + 0xaef8b5cc00000000, 0x9093772300000000, 0x1dc87cd200000000, + 0x23a3be3d00000000, 0x201889d600000000, 0x1e734b3900000000, + 0x676897db00000000, 0x5903553400000000, 0x5ab862df00000000, + 0x64d3a03000000000, 0xd10a58a900000000, 0xef619a4600000000, + 0xecdaadad00000000, 0xd2b16f4200000000, 0xabaab3a000000000, + 0x95c1714f00000000, 0x967a46a400000000, 0xa811844b00000000, + 0x254a8fba00000000, 0x1b214d5500000000, 0x189a7abe00000000, + 0x26f1b85100000000, 0x5fea64b300000000, 0x6181a65c00000000, + 0x623a91b700000000, 0x5c51535800000000, 0x398bf68e00000000, + 0x07e0346100000000, 0x045b038a00000000, 0x3a30c16500000000, + 0x432b1d8700000000, 0x7d40df6800000000, 0x7efbe88300000000, + 0x40902a6c00000000, 0xcdcb219d00000000, 0xf3a0e37200000000, + 0xf01bd49900000000, 0xce70167600000000, 0xb76bca9400000000, + 0x8900087b00000000, 0x8abb3f9000000000, 0xb4d0fd7f00000000, + 0xa10ebf7800000000, 0x9f657d9700000000, 0x9cde4a7c00000000, + 0xa2b5889300000000, 0xdbae547100000000, 0xe5c5969e00000000, + 0xe67ea17500000000, 0xd815639a00000000, 0x554e686b00000000, + 0x6b25aa8400000000, 0x689e9d6f00000000, 0x56f55f8000000000, + 0x2fee836200000000, 0x1185418d00000000, 0x123e766600000000, + 0x2c55b48900000000, 0x498f115f00000000, 0x77e4d3b000000000, + 0x745fe45b00000000, 0x4a3426b400000000, 0x332ffa5600000000, + 0x0d4438b900000000, 0x0eff0f5200000000, 0x3094cdbd00000000, + 0xbdcfc64c00000000, 0x83a404a300000000, 0x801f334800000000, + 0xbe74f1a700000000, 0xc76f2d4500000000, 0xf904efaa00000000, + 0xfabfd84100000000, 0xc4d41aae00000000, 0x710de23700000000, + 0x4f6620d800000000, 0x4cdd173300000000, 0x72b6d5dc00000000, + 0x0bad093e00000000, 0x35c6cbd100000000, 0x367dfc3a00000000, + 0x08163ed500000000, 0x854d352400000000, 0xbb26f7cb00000000, + 0xb89dc02000000000, 0x86f602cf00000000, 0xffedde2d00000000, + 0xc1861cc200000000, 0xc23d2b2900000000, 0xfc56e9c600000000, + 0x998c4c1000000000, 0xa7e78eff00000000, 0xa45cb91400000000, + 0x9a377bfb00000000, 0xe32ca71900000000, 0xdd4765f600000000, + 0xdefc521d00000000, 0xe09790f200000000, 0x6dcc9b0300000000, + 0x53a759ec00000000, 0x501c6e0700000000, 0x6e77ace800000000, + 0x176c700a00000000, 0x2907b2e500000000, 0x2abc850e00000000, + 0x14d747e100000000}, + {0x0000000000000000, 0xc0df8ec100000000, 0xc1b96c5800000000, + 0x0166e29900000000, 0x8273d9b000000000, 0x42ac577100000000, + 0x43cab5e800000000, 0x83153b2900000000, 0x45e1c3ba00000000, + 0x853e4d7b00000000, 0x8458afe200000000, 0x4487212300000000, + 0xc7921a0a00000000, 0x074d94cb00000000, 0x062b765200000000, + 0xc6f4f89300000000, 0xcbc4f6ae00000000, 0x0b1b786f00000000, + 0x0a7d9af600000000, 0xcaa2143700000000, 0x49b72f1e00000000, + 0x8968a1df00000000, 0x880e434600000000, 0x48d1cd8700000000, + 0x8e25351400000000, 0x4efabbd500000000, 0x4f9c594c00000000, + 0x8f43d78d00000000, 0x0c56eca400000000, 0xcc89626500000000, + 0xcdef80fc00000000, 0x0d300e3d00000000, 0xd78f9c8600000000, + 0x1750124700000000, 0x1636f0de00000000, 0xd6e97e1f00000000, + 0x55fc453600000000, 0x9523cbf700000000, 0x9445296e00000000, + 0x549aa7af00000000, 0x926e5f3c00000000, 0x52b1d1fd00000000, + 0x53d7336400000000, 0x9308bda500000000, 0x101d868c00000000, + 0xd0c2084d00000000, 0xd1a4ead400000000, 0x117b641500000000, + 0x1c4b6a2800000000, 0xdc94e4e900000000, 0xddf2067000000000, + 0x1d2d88b100000000, 0x9e38b39800000000, 0x5ee73d5900000000, + 0x5f81dfc000000000, 0x9f5e510100000000, 0x59aaa99200000000, + 0x9975275300000000, 0x9813c5ca00000000, 0x58cc4b0b00000000, + 0xdbd9702200000000, 0x1b06fee300000000, 0x1a601c7a00000000, + 0xdabf92bb00000000, 0xef1948d600000000, 0x2fc6c61700000000, + 0x2ea0248e00000000, 0xee7faa4f00000000, 0x6d6a916600000000, + 0xadb51fa700000000, 0xacd3fd3e00000000, 0x6c0c73ff00000000, + 0xaaf88b6c00000000, 0x6a2705ad00000000, 0x6b41e73400000000, + 0xab9e69f500000000, 0x288b52dc00000000, 0xe854dc1d00000000, + 0xe9323e8400000000, 0x29edb04500000000, 0x24ddbe7800000000, + 0xe40230b900000000, 0xe564d22000000000, 0x25bb5ce100000000, + 0xa6ae67c800000000, 0x6671e90900000000, 0x67170b9000000000, + 0xa7c8855100000000, 0x613c7dc200000000, 0xa1e3f30300000000, + 0xa085119a00000000, 0x605a9f5b00000000, 0xe34fa47200000000, + 0x23902ab300000000, 0x22f6c82a00000000, 0xe22946eb00000000, + 0x3896d45000000000, 0xf8495a9100000000, 0xf92fb80800000000, + 0x39f036c900000000, 0xbae50de000000000, 0x7a3a832100000000, + 0x7b5c61b800000000, 0xbb83ef7900000000, 0x7d7717ea00000000, + 0xbda8992b00000000, 0xbcce7bb200000000, 0x7c11f57300000000, + 0xff04ce5a00000000, 0x3fdb409b00000000, 0x3ebda20200000000, + 0xfe622cc300000000, 0xf35222fe00000000, 0x338dac3f00000000, + 0x32eb4ea600000000, 0xf234c06700000000, 0x7121fb4e00000000, + 0xb1fe758f00000000, 0xb098971600000000, 0x704719d700000000, + 0xb6b3e14400000000, 0x766c6f8500000000, 0x770a8d1c00000000, + 0xb7d503dd00000000, 0x34c038f400000000, 0xf41fb63500000000, + 0xf57954ac00000000, 0x35a6da6d00000000, 0x9f35e17700000000, + 0x5fea6fb600000000, 0x5e8c8d2f00000000, 0x9e5303ee00000000, + 0x1d4638c700000000, 0xdd99b60600000000, 0xdcff549f00000000, + 0x1c20da5e00000000, 0xdad422cd00000000, 0x1a0bac0c00000000, + 0x1b6d4e9500000000, 0xdbb2c05400000000, 0x58a7fb7d00000000, + 0x987875bc00000000, 0x991e972500000000, 0x59c119e400000000, + 0x54f117d900000000, 0x942e991800000000, 0x95487b8100000000, + 0x5597f54000000000, 0xd682ce6900000000, 0x165d40a800000000, + 0x173ba23100000000, 0xd7e42cf000000000, 0x1110d46300000000, + 0xd1cf5aa200000000, 0xd0a9b83b00000000, 0x107636fa00000000, + 0x93630dd300000000, 0x53bc831200000000, 0x52da618b00000000, + 0x9205ef4a00000000, 0x48ba7df100000000, 0x8865f33000000000, + 0x890311a900000000, 0x49dc9f6800000000, 0xcac9a44100000000, + 0x0a162a8000000000, 0x0b70c81900000000, 0xcbaf46d800000000, + 0x0d5bbe4b00000000, 0xcd84308a00000000, 0xcce2d21300000000, + 0x0c3d5cd200000000, 0x8f2867fb00000000, 0x4ff7e93a00000000, + 0x4e910ba300000000, 0x8e4e856200000000, 0x837e8b5f00000000, + 0x43a1059e00000000, 0x42c7e70700000000, 0x821869c600000000, + 0x010d52ef00000000, 0xc1d2dc2e00000000, 0xc0b43eb700000000, + 0x006bb07600000000, 0xc69f48e500000000, 0x0640c62400000000, + 0x072624bd00000000, 0xc7f9aa7c00000000, 0x44ec915500000000, + 0x84331f9400000000, 0x8555fd0d00000000, 0x458a73cc00000000, + 0x702ca9a100000000, 0xb0f3276000000000, 0xb195c5f900000000, + 0x714a4b3800000000, 0xf25f701100000000, 0x3280fed000000000, + 0x33e61c4900000000, 0xf339928800000000, 0x35cd6a1b00000000, + 0xf512e4da00000000, 0xf474064300000000, 0x34ab888200000000, + 0xb7beb3ab00000000, 0x77613d6a00000000, 0x7607dff300000000, + 0xb6d8513200000000, 0xbbe85f0f00000000, 0x7b37d1ce00000000, + 0x7a51335700000000, 0xba8ebd9600000000, 0x399b86bf00000000, + 0xf944087e00000000, 0xf822eae700000000, 0x38fd642600000000, + 0xfe099cb500000000, 0x3ed6127400000000, 0x3fb0f0ed00000000, + 0xff6f7e2c00000000, 0x7c7a450500000000, 0xbca5cbc400000000, + 0xbdc3295d00000000, 0x7d1ca79c00000000, 0xa7a3352700000000, + 0x677cbbe600000000, 0x661a597f00000000, 0xa6c5d7be00000000, + 0x25d0ec9700000000, 0xe50f625600000000, 0xe46980cf00000000, + 0x24b60e0e00000000, 0xe242f69d00000000, 0x229d785c00000000, + 0x23fb9ac500000000, 0xe324140400000000, 0x60312f2d00000000, + 0xa0eea1ec00000000, 0xa188437500000000, 0x6157cdb400000000, + 0x6c67c38900000000, 0xacb84d4800000000, 0xaddeafd100000000, + 0x6d01211000000000, 0xee141a3900000000, 0x2ecb94f800000000, + 0x2fad766100000000, 0xef72f8a000000000, 0x2986003300000000, + 0xe9598ef200000000, 0xe83f6c6b00000000, 0x28e0e2aa00000000, + 0xabf5d98300000000, 0x6b2a574200000000, 0x6a4cb5db00000000, + 0xaa933b1a00000000}, + {0x0000000000000000, 0x6f4ca59b00000000, 0x9f9e3bec00000000, + 0xf0d29e7700000000, 0x7f3b060300000000, 0x1077a39800000000, + 0xe0a53def00000000, 0x8fe9987400000000, 0xfe760c0600000000, + 0x913aa99d00000000, 0x61e837ea00000000, 0x0ea4927100000000, + 0x814d0a0500000000, 0xee01af9e00000000, 0x1ed331e900000000, + 0x719f947200000000, 0xfced180c00000000, 0x93a1bd9700000000, + 0x637323e000000000, 0x0c3f867b00000000, 0x83d61e0f00000000, + 0xec9abb9400000000, 0x1c4825e300000000, 0x7304807800000000, + 0x029b140a00000000, 0x6dd7b19100000000, 0x9d052fe600000000, + 0xf2498a7d00000000, 0x7da0120900000000, 0x12ecb79200000000, + 0xe23e29e500000000, 0x8d728c7e00000000, 0xf8db311800000000, + 0x9797948300000000, 0x67450af400000000, 0x0809af6f00000000, + 0x87e0371b00000000, 0xe8ac928000000000, 0x187e0cf700000000, + 0x7732a96c00000000, 0x06ad3d1e00000000, 0x69e1988500000000, + 0x993306f200000000, 0xf67fa36900000000, 0x79963b1d00000000, + 0x16da9e8600000000, 0xe60800f100000000, 0x8944a56a00000000, + 0x0436291400000000, 0x6b7a8c8f00000000, 0x9ba812f800000000, + 0xf4e4b76300000000, 0x7b0d2f1700000000, 0x14418a8c00000000, + 0xe49314fb00000000, 0x8bdfb16000000000, 0xfa40251200000000, + 0x950c808900000000, 0x65de1efe00000000, 0x0a92bb6500000000, + 0x857b231100000000, 0xea37868a00000000, 0x1ae518fd00000000, + 0x75a9bd6600000000, 0xf0b7633000000000, 0x9ffbc6ab00000000, + 0x6f2958dc00000000, 0x0065fd4700000000, 0x8f8c653300000000, + 0xe0c0c0a800000000, 0x10125edf00000000, 0x7f5efb4400000000, + 0x0ec16f3600000000, 0x618dcaad00000000, 0x915f54da00000000, + 0xfe13f14100000000, 0x71fa693500000000, 0x1eb6ccae00000000, + 0xee6452d900000000, 0x8128f74200000000, 0x0c5a7b3c00000000, + 0x6316dea700000000, 0x93c440d000000000, 0xfc88e54b00000000, + 0x73617d3f00000000, 0x1c2dd8a400000000, 0xecff46d300000000, + 0x83b3e34800000000, 0xf22c773a00000000, 0x9d60d2a100000000, + 0x6db24cd600000000, 0x02fee94d00000000, 0x8d17713900000000, + 0xe25bd4a200000000, 0x12894ad500000000, 0x7dc5ef4e00000000, + 0x086c522800000000, 0x6720f7b300000000, 0x97f269c400000000, + 0xf8becc5f00000000, 0x7757542b00000000, 0x181bf1b000000000, + 0xe8c96fc700000000, 0x8785ca5c00000000, 0xf61a5e2e00000000, + 0x9956fbb500000000, 0x698465c200000000, 0x06c8c05900000000, + 0x8921582d00000000, 0xe66dfdb600000000, 0x16bf63c100000000, + 0x79f3c65a00000000, 0xf4814a2400000000, 0x9bcdefbf00000000, + 0x6b1f71c800000000, 0x0453d45300000000, 0x8bba4c2700000000, + 0xe4f6e9bc00000000, 0x142477cb00000000, 0x7b68d25000000000, + 0x0af7462200000000, 0x65bbe3b900000000, 0x95697dce00000000, + 0xfa25d85500000000, 0x75cc402100000000, 0x1a80e5ba00000000, + 0xea527bcd00000000, 0x851ede5600000000, 0xe06fc76000000000, + 0x8f2362fb00000000, 0x7ff1fc8c00000000, 0x10bd591700000000, + 0x9f54c16300000000, 0xf01864f800000000, 0x00cafa8f00000000, + 0x6f865f1400000000, 0x1e19cb6600000000, 0x71556efd00000000, + 0x8187f08a00000000, 0xeecb551100000000, 0x6122cd6500000000, + 0x0e6e68fe00000000, 0xfebcf68900000000, 0x91f0531200000000, + 0x1c82df6c00000000, 0x73ce7af700000000, 0x831ce48000000000, + 0xec50411b00000000, 0x63b9d96f00000000, 0x0cf57cf400000000, + 0xfc27e28300000000, 0x936b471800000000, 0xe2f4d36a00000000, + 0x8db876f100000000, 0x7d6ae88600000000, 0x12264d1d00000000, + 0x9dcfd56900000000, 0xf28370f200000000, 0x0251ee8500000000, + 0x6d1d4b1e00000000, 0x18b4f67800000000, 0x77f853e300000000, + 0x872acd9400000000, 0xe866680f00000000, 0x678ff07b00000000, + 0x08c355e000000000, 0xf811cb9700000000, 0x975d6e0c00000000, + 0xe6c2fa7e00000000, 0x898e5fe500000000, 0x795cc19200000000, + 0x1610640900000000, 0x99f9fc7d00000000, 0xf6b559e600000000, + 0x0667c79100000000, 0x692b620a00000000, 0xe459ee7400000000, + 0x8b154bef00000000, 0x7bc7d59800000000, 0x148b700300000000, + 0x9b62e87700000000, 0xf42e4dec00000000, 0x04fcd39b00000000, + 0x6bb0760000000000, 0x1a2fe27200000000, 0x756347e900000000, + 0x85b1d99e00000000, 0xeafd7c0500000000, 0x6514e47100000000, + 0x0a5841ea00000000, 0xfa8adf9d00000000, 0x95c67a0600000000, + 0x10d8a45000000000, 0x7f9401cb00000000, 0x8f469fbc00000000, + 0xe00a3a2700000000, 0x6fe3a25300000000, 0x00af07c800000000, + 0xf07d99bf00000000, 0x9f313c2400000000, 0xeeaea85600000000, + 0x81e20dcd00000000, 0x713093ba00000000, 0x1e7c362100000000, + 0x9195ae5500000000, 0xfed90bce00000000, 0x0e0b95b900000000, + 0x6147302200000000, 0xec35bc5c00000000, 0x837919c700000000, + 0x73ab87b000000000, 0x1ce7222b00000000, 0x930eba5f00000000, + 0xfc421fc400000000, 0x0c9081b300000000, 0x63dc242800000000, + 0x1243b05a00000000, 0x7d0f15c100000000, 0x8ddd8bb600000000, + 0xe2912e2d00000000, 0x6d78b65900000000, 0x023413c200000000, + 0xf2e68db500000000, 0x9daa282e00000000, 0xe803954800000000, + 0x874f30d300000000, 0x779daea400000000, 0x18d10b3f00000000, + 0x9738934b00000000, 0xf87436d000000000, 0x08a6a8a700000000, + 0x67ea0d3c00000000, 0x1675994e00000000, 0x79393cd500000000, + 0x89eba2a200000000, 0xe6a7073900000000, 0x694e9f4d00000000, + 0x06023ad600000000, 0xf6d0a4a100000000, 0x999c013a00000000, + 0x14ee8d4400000000, 0x7ba228df00000000, 0x8b70b6a800000000, + 0xe43c133300000000, 0x6bd58b4700000000, 0x04992edc00000000, + 0xf44bb0ab00000000, 0x9b07153000000000, 0xea98814200000000, + 0x85d424d900000000, 0x7506baae00000000, 0x1a4a1f3500000000, + 0x95a3874100000000, 0xfaef22da00000000, 0x0a3dbcad00000000, + 0x6571193600000000}, + {0x0000000000000000, 0x85d996dd00000000, 0x4bb55c6000000000, + 0xce6ccabd00000000, 0x966ab9c000000000, 0x13b32f1d00000000, + 0xdddfe5a000000000, 0x5806737d00000000, 0x6dd3035a00000000, + 0xe80a958700000000, 0x26665f3a00000000, 0xa3bfc9e700000000, + 0xfbb9ba9a00000000, 0x7e602c4700000000, 0xb00ce6fa00000000, + 0x35d5702700000000, 0xdaa607b400000000, 0x5f7f916900000000, + 0x91135bd400000000, 0x14cacd0900000000, 0x4cccbe7400000000, + 0xc91528a900000000, 0x0779e21400000000, 0x82a074c900000000, + 0xb77504ee00000000, 0x32ac923300000000, 0xfcc0588e00000000, + 0x7919ce5300000000, 0x211fbd2e00000000, 0xa4c62bf300000000, + 0x6aaae14e00000000, 0xef73779300000000, 0xf54b7eb300000000, + 0x7092e86e00000000, 0xbefe22d300000000, 0x3b27b40e00000000, + 0x6321c77300000000, 0xe6f851ae00000000, 0x28949b1300000000, + 0xad4d0dce00000000, 0x98987de900000000, 0x1d41eb3400000000, + 0xd32d218900000000, 0x56f4b75400000000, 0x0ef2c42900000000, + 0x8b2b52f400000000, 0x4547984900000000, 0xc09e0e9400000000, + 0x2fed790700000000, 0xaa34efda00000000, 0x6458256700000000, + 0xe181b3ba00000000, 0xb987c0c700000000, 0x3c5e561a00000000, + 0xf2329ca700000000, 0x77eb0a7a00000000, 0x423e7a5d00000000, + 0xc7e7ec8000000000, 0x098b263d00000000, 0x8c52b0e000000000, + 0xd454c39d00000000, 0x518d554000000000, 0x9fe19ffd00000000, + 0x1a38092000000000, 0xab918dbd00000000, 0x2e481b6000000000, + 0xe024d1dd00000000, 0x65fd470000000000, 0x3dfb347d00000000, + 0xb822a2a000000000, 0x764e681d00000000, 0xf397fec000000000, + 0xc6428ee700000000, 0x439b183a00000000, 0x8df7d28700000000, + 0x082e445a00000000, 0x5028372700000000, 0xd5f1a1fa00000000, + 0x1b9d6b4700000000, 0x9e44fd9a00000000, 0x71378a0900000000, + 0xf4ee1cd400000000, 0x3a82d66900000000, 0xbf5b40b400000000, + 0xe75d33c900000000, 0x6284a51400000000, 0xace86fa900000000, + 0x2931f97400000000, 0x1ce4895300000000, 0x993d1f8e00000000, + 0x5751d53300000000, 0xd28843ee00000000, 0x8a8e309300000000, + 0x0f57a64e00000000, 0xc13b6cf300000000, 0x44e2fa2e00000000, + 0x5edaf30e00000000, 0xdb0365d300000000, 0x156faf6e00000000, + 0x90b639b300000000, 0xc8b04ace00000000, 0x4d69dc1300000000, + 0x830516ae00000000, 0x06dc807300000000, 0x3309f05400000000, + 0xb6d0668900000000, 0x78bcac3400000000, 0xfd653ae900000000, + 0xa563499400000000, 0x20badf4900000000, 0xeed615f400000000, + 0x6b0f832900000000, 0x847cf4ba00000000, 0x01a5626700000000, + 0xcfc9a8da00000000, 0x4a103e0700000000, 0x12164d7a00000000, + 0x97cfdba700000000, 0x59a3111a00000000, 0xdc7a87c700000000, + 0xe9aff7e000000000, 0x6c76613d00000000, 0xa21aab8000000000, + 0x27c33d5d00000000, 0x7fc54e2000000000, 0xfa1cd8fd00000000, + 0x3470124000000000, 0xb1a9849d00000000, 0x17256aa000000000, + 0x92fcfc7d00000000, 0x5c9036c000000000, 0xd949a01d00000000, + 0x814fd36000000000, 0x049645bd00000000, 0xcafa8f0000000000, + 0x4f2319dd00000000, 0x7af669fa00000000, 0xff2fff2700000000, + 0x3143359a00000000, 0xb49aa34700000000, 0xec9cd03a00000000, + 0x694546e700000000, 0xa7298c5a00000000, 0x22f01a8700000000, + 0xcd836d1400000000, 0x485afbc900000000, 0x8636317400000000, + 0x03efa7a900000000, 0x5be9d4d400000000, 0xde30420900000000, + 0x105c88b400000000, 0x95851e6900000000, 0xa0506e4e00000000, + 0x2589f89300000000, 0xebe5322e00000000, 0x6e3ca4f300000000, + 0x363ad78e00000000, 0xb3e3415300000000, 0x7d8f8bee00000000, + 0xf8561d3300000000, 0xe26e141300000000, 0x67b782ce00000000, + 0xa9db487300000000, 0x2c02deae00000000, 0x7404add300000000, + 0xf1dd3b0e00000000, 0x3fb1f1b300000000, 0xba68676e00000000, + 0x8fbd174900000000, 0x0a64819400000000, 0xc4084b2900000000, + 0x41d1ddf400000000, 0x19d7ae8900000000, 0x9c0e385400000000, + 0x5262f2e900000000, 0xd7bb643400000000, 0x38c813a700000000, + 0xbd11857a00000000, 0x737d4fc700000000, 0xf6a4d91a00000000, + 0xaea2aa6700000000, 0x2b7b3cba00000000, 0xe517f60700000000, + 0x60ce60da00000000, 0x551b10fd00000000, 0xd0c2862000000000, + 0x1eae4c9d00000000, 0x9b77da4000000000, 0xc371a93d00000000, + 0x46a83fe000000000, 0x88c4f55d00000000, 0x0d1d638000000000, + 0xbcb4e71d00000000, 0x396d71c000000000, 0xf701bb7d00000000, + 0x72d82da000000000, 0x2ade5edd00000000, 0xaf07c80000000000, + 0x616b02bd00000000, 0xe4b2946000000000, 0xd167e44700000000, + 0x54be729a00000000, 0x9ad2b82700000000, 0x1f0b2efa00000000, + 0x470d5d8700000000, 0xc2d4cb5a00000000, 0x0cb801e700000000, + 0x8961973a00000000, 0x6612e0a900000000, 0xe3cb767400000000, + 0x2da7bcc900000000, 0xa87e2a1400000000, 0xf078596900000000, + 0x75a1cfb400000000, 0xbbcd050900000000, 0x3e1493d400000000, + 0x0bc1e3f300000000, 0x8e18752e00000000, 0x4074bf9300000000, + 0xc5ad294e00000000, 0x9dab5a3300000000, 0x1872ccee00000000, + 0xd61e065300000000, 0x53c7908e00000000, 0x49ff99ae00000000, + 0xcc260f7300000000, 0x024ac5ce00000000, 0x8793531300000000, + 0xdf95206e00000000, 0x5a4cb6b300000000, 0x94207c0e00000000, + 0x11f9ead300000000, 0x242c9af400000000, 0xa1f50c2900000000, + 0x6f99c69400000000, 0xea40504900000000, 0xb246233400000000, + 0x379fb5e900000000, 0xf9f37f5400000000, 0x7c2ae98900000000, + 0x93599e1a00000000, 0x168008c700000000, 0xd8ecc27a00000000, + 0x5d3554a700000000, 0x053327da00000000, 0x80eab10700000000, + 0x4e867bba00000000, 0xcb5fed6700000000, 0xfe8a9d4000000000, + 0x7b530b9d00000000, 0xb53fc12000000000, 0x30e657fd00000000, + 0x68e0248000000000, 0xed39b25d00000000, 0x235578e000000000, + 0xa68cee3d00000000}, + {0x0000000000000000, 0x76e10f9d00000000, 0xadc46ee100000000, + 0xdb25617c00000000, 0x1b8fac1900000000, 0x6d6ea38400000000, + 0xb64bc2f800000000, 0xc0aacd6500000000, 0x361e593300000000, + 0x40ff56ae00000000, 0x9bda37d200000000, 0xed3b384f00000000, + 0x2d91f52a00000000, 0x5b70fab700000000, 0x80559bcb00000000, + 0xf6b4945600000000, 0x6c3cb26600000000, 0x1addbdfb00000000, + 0xc1f8dc8700000000, 0xb719d31a00000000, 0x77b31e7f00000000, + 0x015211e200000000, 0xda77709e00000000, 0xac967f0300000000, + 0x5a22eb5500000000, 0x2cc3e4c800000000, 0xf7e685b400000000, + 0x81078a2900000000, 0x41ad474c00000000, 0x374c48d100000000, + 0xec6929ad00000000, 0x9a88263000000000, 0xd87864cd00000000, + 0xae996b5000000000, 0x75bc0a2c00000000, 0x035d05b100000000, + 0xc3f7c8d400000000, 0xb516c74900000000, 0x6e33a63500000000, + 0x18d2a9a800000000, 0xee663dfe00000000, 0x9887326300000000, + 0x43a2531f00000000, 0x35435c8200000000, 0xf5e991e700000000, + 0x83089e7a00000000, 0x582dff0600000000, 0x2eccf09b00000000, + 0xb444d6ab00000000, 0xc2a5d93600000000, 0x1980b84a00000000, + 0x6f61b7d700000000, 0xafcb7ab200000000, 0xd92a752f00000000, + 0x020f145300000000, 0x74ee1bce00000000, 0x825a8f9800000000, + 0xf4bb800500000000, 0x2f9ee17900000000, 0x597feee400000000, + 0x99d5238100000000, 0xef342c1c00000000, 0x34114d6000000000, + 0x42f042fd00000000, 0xf1f7b94100000000, 0x8716b6dc00000000, + 0x5c33d7a000000000, 0x2ad2d83d00000000, 0xea78155800000000, + 0x9c991ac500000000, 0x47bc7bb900000000, 0x315d742400000000, + 0xc7e9e07200000000, 0xb108efef00000000, 0x6a2d8e9300000000, + 0x1ccc810e00000000, 0xdc664c6b00000000, 0xaa8743f600000000, + 0x71a2228a00000000, 0x07432d1700000000, 0x9dcb0b2700000000, + 0xeb2a04ba00000000, 0x300f65c600000000, 0x46ee6a5b00000000, + 0x8644a73e00000000, 0xf0a5a8a300000000, 0x2b80c9df00000000, + 0x5d61c64200000000, 0xabd5521400000000, 0xdd345d8900000000, + 0x06113cf500000000, 0x70f0336800000000, 0xb05afe0d00000000, + 0xc6bbf19000000000, 0x1d9e90ec00000000, 0x6b7f9f7100000000, + 0x298fdd8c00000000, 0x5f6ed21100000000, 0x844bb36d00000000, + 0xf2aabcf000000000, 0x3200719500000000, 0x44e17e0800000000, + 0x9fc41f7400000000, 0xe92510e900000000, 0x1f9184bf00000000, + 0x69708b2200000000, 0xb255ea5e00000000, 0xc4b4e5c300000000, + 0x041e28a600000000, 0x72ff273b00000000, 0xa9da464700000000, + 0xdf3b49da00000000, 0x45b36fea00000000, 0x3352607700000000, + 0xe877010b00000000, 0x9e960e9600000000, 0x5e3cc3f300000000, + 0x28ddcc6e00000000, 0xf3f8ad1200000000, 0x8519a28f00000000, + 0x73ad36d900000000, 0x054c394400000000, 0xde69583800000000, + 0xa88857a500000000, 0x68229ac000000000, 0x1ec3955d00000000, + 0xc5e6f42100000000, 0xb307fbbc00000000, 0xe2ef738300000000, + 0x940e7c1e00000000, 0x4f2b1d6200000000, 0x39ca12ff00000000, + 0xf960df9a00000000, 0x8f81d00700000000, 0x54a4b17b00000000, + 0x2245bee600000000, 0xd4f12ab000000000, 0xa210252d00000000, + 0x7935445100000000, 0x0fd44bcc00000000, 0xcf7e86a900000000, + 0xb99f893400000000, 0x62bae84800000000, 0x145be7d500000000, + 0x8ed3c1e500000000, 0xf832ce7800000000, 0x2317af0400000000, + 0x55f6a09900000000, 0x955c6dfc00000000, 0xe3bd626100000000, + 0x3898031d00000000, 0x4e790c8000000000, 0xb8cd98d600000000, + 0xce2c974b00000000, 0x1509f63700000000, 0x63e8f9aa00000000, + 0xa34234cf00000000, 0xd5a33b5200000000, 0x0e865a2e00000000, + 0x786755b300000000, 0x3a97174e00000000, 0x4c7618d300000000, + 0x975379af00000000, 0xe1b2763200000000, 0x2118bb5700000000, + 0x57f9b4ca00000000, 0x8cdcd5b600000000, 0xfa3dda2b00000000, + 0x0c894e7d00000000, 0x7a6841e000000000, 0xa14d209c00000000, + 0xd7ac2f0100000000, 0x1706e26400000000, 0x61e7edf900000000, + 0xbac28c8500000000, 0xcc23831800000000, 0x56aba52800000000, + 0x204aaab500000000, 0xfb6fcbc900000000, 0x8d8ec45400000000, + 0x4d24093100000000, 0x3bc506ac00000000, 0xe0e067d000000000, + 0x9601684d00000000, 0x60b5fc1b00000000, 0x1654f38600000000, + 0xcd7192fa00000000, 0xbb909d6700000000, 0x7b3a500200000000, + 0x0ddb5f9f00000000, 0xd6fe3ee300000000, 0xa01f317e00000000, + 0x1318cac200000000, 0x65f9c55f00000000, 0xbedca42300000000, + 0xc83dabbe00000000, 0x089766db00000000, 0x7e76694600000000, + 0xa553083a00000000, 0xd3b207a700000000, 0x250693f100000000, + 0x53e79c6c00000000, 0x88c2fd1000000000, 0xfe23f28d00000000, + 0x3e893fe800000000, 0x4868307500000000, 0x934d510900000000, + 0xe5ac5e9400000000, 0x7f2478a400000000, 0x09c5773900000000, + 0xd2e0164500000000, 0xa40119d800000000, 0x64abd4bd00000000, + 0x124adb2000000000, 0xc96fba5c00000000, 0xbf8eb5c100000000, + 0x493a219700000000, 0x3fdb2e0a00000000, 0xe4fe4f7600000000, + 0x921f40eb00000000, 0x52b58d8e00000000, 0x2454821300000000, + 0xff71e36f00000000, 0x8990ecf200000000, 0xcb60ae0f00000000, + 0xbd81a19200000000, 0x66a4c0ee00000000, 0x1045cf7300000000, + 0xd0ef021600000000, 0xa60e0d8b00000000, 0x7d2b6cf700000000, + 0x0bca636a00000000, 0xfd7ef73c00000000, 0x8b9ff8a100000000, + 0x50ba99dd00000000, 0x265b964000000000, 0xe6f15b2500000000, + 0x901054b800000000, 0x4b3535c400000000, 0x3dd43a5900000000, + 0xa75c1c6900000000, 0xd1bd13f400000000, 0x0a98728800000000, + 0x7c797d1500000000, 0xbcd3b07000000000, 0xca32bfed00000000, + 0x1117de9100000000, 0x67f6d10c00000000, 0x9142455a00000000, + 0xe7a34ac700000000, 0x3c862bbb00000000, 0x4a67242600000000, + 0x8acde94300000000, 0xfc2ce6de00000000, 0x270987a200000000, + 0x51e8883f00000000}, + {0x0000000000000000, 0xe8dbfbb900000000, 0x91b186a800000000, + 0x796a7d1100000000, 0x63657c8a00000000, 0x8bbe873300000000, + 0xf2d4fa2200000000, 0x1a0f019b00000000, 0x87cc89cf00000000, + 0x6f17727600000000, 0x167d0f6700000000, 0xfea6f4de00000000, + 0xe4a9f54500000000, 0x0c720efc00000000, 0x751873ed00000000, + 0x9dc3885400000000, 0x4f9f624400000000, 0xa74499fd00000000, + 0xde2ee4ec00000000, 0x36f51f5500000000, 0x2cfa1ece00000000, + 0xc421e57700000000, 0xbd4b986600000000, 0x559063df00000000, + 0xc853eb8b00000000, 0x2088103200000000, 0x59e26d2300000000, + 0xb139969a00000000, 0xab36970100000000, 0x43ed6cb800000000, + 0x3a8711a900000000, 0xd25cea1000000000, 0x9e3ec58800000000, + 0x76e53e3100000000, 0x0f8f432000000000, 0xe754b89900000000, + 0xfd5bb90200000000, 0x158042bb00000000, 0x6cea3faa00000000, + 0x8431c41300000000, 0x19f24c4700000000, 0xf129b7fe00000000, + 0x8843caef00000000, 0x6098315600000000, 0x7a9730cd00000000, + 0x924ccb7400000000, 0xeb26b66500000000, 0x03fd4ddc00000000, + 0xd1a1a7cc00000000, 0x397a5c7500000000, 0x4010216400000000, + 0xa8cbdadd00000000, 0xb2c4db4600000000, 0x5a1f20ff00000000, + 0x23755dee00000000, 0xcbaea65700000000, 0x566d2e0300000000, + 0xbeb6d5ba00000000, 0xc7dca8ab00000000, 0x2f07531200000000, + 0x3508528900000000, 0xddd3a93000000000, 0xa4b9d42100000000, + 0x4c622f9800000000, 0x7d7bfbca00000000, 0x95a0007300000000, + 0xecca7d6200000000, 0x041186db00000000, 0x1e1e874000000000, + 0xf6c57cf900000000, 0x8faf01e800000000, 0x6774fa5100000000, + 0xfab7720500000000, 0x126c89bc00000000, 0x6b06f4ad00000000, + 0x83dd0f1400000000, 0x99d20e8f00000000, 0x7109f53600000000, + 0x0863882700000000, 0xe0b8739e00000000, 0x32e4998e00000000, + 0xda3f623700000000, 0xa3551f2600000000, 0x4b8ee49f00000000, + 0x5181e50400000000, 0xb95a1ebd00000000, 0xc03063ac00000000, + 0x28eb981500000000, 0xb528104100000000, 0x5df3ebf800000000, + 0x249996e900000000, 0xcc426d5000000000, 0xd64d6ccb00000000, + 0x3e96977200000000, 0x47fcea6300000000, 0xaf2711da00000000, + 0xe3453e4200000000, 0x0b9ec5fb00000000, 0x72f4b8ea00000000, + 0x9a2f435300000000, 0x802042c800000000, 0x68fbb97100000000, + 0x1191c46000000000, 0xf94a3fd900000000, 0x6489b78d00000000, + 0x8c524c3400000000, 0xf538312500000000, 0x1de3ca9c00000000, + 0x07eccb0700000000, 0xef3730be00000000, 0x965d4daf00000000, + 0x7e86b61600000000, 0xacda5c0600000000, 0x4401a7bf00000000, + 0x3d6bdaae00000000, 0xd5b0211700000000, 0xcfbf208c00000000, + 0x2764db3500000000, 0x5e0ea62400000000, 0xb6d55d9d00000000, + 0x2b16d5c900000000, 0xc3cd2e7000000000, 0xbaa7536100000000, + 0x527ca8d800000000, 0x4873a94300000000, 0xa0a852fa00000000, + 0xd9c22feb00000000, 0x3119d45200000000, 0xbbf0874e00000000, + 0x532b7cf700000000, 0x2a4101e600000000, 0xc29afa5f00000000, + 0xd895fbc400000000, 0x304e007d00000000, 0x49247d6c00000000, + 0xa1ff86d500000000, 0x3c3c0e8100000000, 0xd4e7f53800000000, + 0xad8d882900000000, 0x4556739000000000, 0x5f59720b00000000, + 0xb78289b200000000, 0xcee8f4a300000000, 0x26330f1a00000000, + 0xf46fe50a00000000, 0x1cb41eb300000000, 0x65de63a200000000, + 0x8d05981b00000000, 0x970a998000000000, 0x7fd1623900000000, + 0x06bb1f2800000000, 0xee60e49100000000, 0x73a36cc500000000, + 0x9b78977c00000000, 0xe212ea6d00000000, 0x0ac911d400000000, + 0x10c6104f00000000, 0xf81debf600000000, 0x817796e700000000, + 0x69ac6d5e00000000, 0x25ce42c600000000, 0xcd15b97f00000000, + 0xb47fc46e00000000, 0x5ca43fd700000000, 0x46ab3e4c00000000, + 0xae70c5f500000000, 0xd71ab8e400000000, 0x3fc1435d00000000, + 0xa202cb0900000000, 0x4ad930b000000000, 0x33b34da100000000, + 0xdb68b61800000000, 0xc167b78300000000, 0x29bc4c3a00000000, + 0x50d6312b00000000, 0xb80dca9200000000, 0x6a51208200000000, + 0x828adb3b00000000, 0xfbe0a62a00000000, 0x133b5d9300000000, + 0x09345c0800000000, 0xe1efa7b100000000, 0x9885daa000000000, + 0x705e211900000000, 0xed9da94d00000000, 0x054652f400000000, + 0x7c2c2fe500000000, 0x94f7d45c00000000, 0x8ef8d5c700000000, + 0x66232e7e00000000, 0x1f49536f00000000, 0xf792a8d600000000, + 0xc68b7c8400000000, 0x2e50873d00000000, 0x573afa2c00000000, + 0xbfe1019500000000, 0xa5ee000e00000000, 0x4d35fbb700000000, + 0x345f86a600000000, 0xdc847d1f00000000, 0x4147f54b00000000, + 0xa99c0ef200000000, 0xd0f673e300000000, 0x382d885a00000000, + 0x222289c100000000, 0xcaf9727800000000, 0xb3930f6900000000, + 0x5b48f4d000000000, 0x89141ec000000000, 0x61cfe57900000000, + 0x18a5986800000000, 0xf07e63d100000000, 0xea71624a00000000, + 0x02aa99f300000000, 0x7bc0e4e200000000, 0x931b1f5b00000000, + 0x0ed8970f00000000, 0xe6036cb600000000, 0x9f6911a700000000, + 0x77b2ea1e00000000, 0x6dbdeb8500000000, 0x8566103c00000000, + 0xfc0c6d2d00000000, 0x14d7969400000000, 0x58b5b90c00000000, + 0xb06e42b500000000, 0xc9043fa400000000, 0x21dfc41d00000000, + 0x3bd0c58600000000, 0xd30b3e3f00000000, 0xaa61432e00000000, + 0x42bab89700000000, 0xdf7930c300000000, 0x37a2cb7a00000000, + 0x4ec8b66b00000000, 0xa6134dd200000000, 0xbc1c4c4900000000, + 0x54c7b7f000000000, 0x2dadcae100000000, 0xc576315800000000, + 0x172adb4800000000, 0xfff120f100000000, 0x869b5de000000000, + 0x6e40a65900000000, 0x744fa7c200000000, 0x9c945c7b00000000, + 0xe5fe216a00000000, 0x0d25dad300000000, 0x90e6528700000000, + 0x783da93e00000000, 0x0157d42f00000000, 0xe98c2f9600000000, + 0xf3832e0d00000000, 0x1b58d5b400000000, 0x6232a8a500000000, + 0x8ae9531c00000000}, + {0x0000000000000000, 0x919168ae00000000, 0x6325a08700000000, + 0xf2b4c82900000000, 0x874c31d400000000, 0x16dd597a00000000, + 0xe469915300000000, 0x75f8f9fd00000000, 0x4f9f137300000000, + 0xde0e7bdd00000000, 0x2cbab3f400000000, 0xbd2bdb5a00000000, + 0xc8d322a700000000, 0x59424a0900000000, 0xabf6822000000000, + 0x3a67ea8e00000000, 0x9e3e27e600000000, 0x0faf4f4800000000, + 0xfd1b876100000000, 0x6c8aefcf00000000, 0x1972163200000000, + 0x88e37e9c00000000, 0x7a57b6b500000000, 0xebc6de1b00000000, + 0xd1a1349500000000, 0x40305c3b00000000, 0xb284941200000000, + 0x2315fcbc00000000, 0x56ed054100000000, 0xc77c6def00000000, + 0x35c8a5c600000000, 0xa459cd6800000000, 0x7d7b3f1700000000, + 0xecea57b900000000, 0x1e5e9f9000000000, 0x8fcff73e00000000, + 0xfa370ec300000000, 0x6ba6666d00000000, 0x9912ae4400000000, + 0x0883c6ea00000000, 0x32e42c6400000000, 0xa37544ca00000000, + 0x51c18ce300000000, 0xc050e44d00000000, 0xb5a81db000000000, + 0x2439751e00000000, 0xd68dbd3700000000, 0x471cd59900000000, + 0xe34518f100000000, 0x72d4705f00000000, 0x8060b87600000000, + 0x11f1d0d800000000, 0x6409292500000000, 0xf598418b00000000, + 0x072c89a200000000, 0x96bde10c00000000, 0xacda0b8200000000, + 0x3d4b632c00000000, 0xcfffab0500000000, 0x5e6ec3ab00000000, + 0x2b963a5600000000, 0xba0752f800000000, 0x48b39ad100000000, + 0xd922f27f00000000, 0xfaf67e2e00000000, 0x6b67168000000000, + 0x99d3dea900000000, 0x0842b60700000000, 0x7dba4ffa00000000, + 0xec2b275400000000, 0x1e9fef7d00000000, 0x8f0e87d300000000, + 0xb5696d5d00000000, 0x24f805f300000000, 0xd64ccdda00000000, + 0x47dda57400000000, 0x32255c8900000000, 0xa3b4342700000000, + 0x5100fc0e00000000, 0xc09194a000000000, 0x64c859c800000000, + 0xf559316600000000, 0x07edf94f00000000, 0x967c91e100000000, + 0xe384681c00000000, 0x721500b200000000, 0x80a1c89b00000000, + 0x1130a03500000000, 0x2b574abb00000000, 0xbac6221500000000, + 0x4872ea3c00000000, 0xd9e3829200000000, 0xac1b7b6f00000000, + 0x3d8a13c100000000, 0xcf3edbe800000000, 0x5eafb34600000000, + 0x878d413900000000, 0x161c299700000000, 0xe4a8e1be00000000, + 0x7539891000000000, 0x00c170ed00000000, 0x9150184300000000, + 0x63e4d06a00000000, 0xf275b8c400000000, 0xc812524a00000000, + 0x59833ae400000000, 0xab37f2cd00000000, 0x3aa69a6300000000, + 0x4f5e639e00000000, 0xdecf0b3000000000, 0x2c7bc31900000000, + 0xbdeaabb700000000, 0x19b366df00000000, 0x88220e7100000000, + 0x7a96c65800000000, 0xeb07aef600000000, 0x9eff570b00000000, + 0x0f6e3fa500000000, 0xfddaf78c00000000, 0x6c4b9f2200000000, + 0x562c75ac00000000, 0xc7bd1d0200000000, 0x3509d52b00000000, + 0xa498bd8500000000, 0xd160447800000000, 0x40f12cd600000000, + 0xb245e4ff00000000, 0x23d48c5100000000, 0xf4edfd5c00000000, + 0x657c95f200000000, 0x97c85ddb00000000, 0x0659357500000000, + 0x73a1cc8800000000, 0xe230a42600000000, 0x10846c0f00000000, + 0x811504a100000000, 0xbb72ee2f00000000, 0x2ae3868100000000, + 0xd8574ea800000000, 0x49c6260600000000, 0x3c3edffb00000000, + 0xadafb75500000000, 0x5f1b7f7c00000000, 0xce8a17d200000000, + 0x6ad3daba00000000, 0xfb42b21400000000, 0x09f67a3d00000000, + 0x9867129300000000, 0xed9feb6e00000000, 0x7c0e83c000000000, + 0x8eba4be900000000, 0x1f2b234700000000, 0x254cc9c900000000, + 0xb4dda16700000000, 0x4669694e00000000, 0xd7f801e000000000, + 0xa200f81d00000000, 0x339190b300000000, 0xc125589a00000000, + 0x50b4303400000000, 0x8996c24b00000000, 0x1807aae500000000, + 0xeab362cc00000000, 0x7b220a6200000000, 0x0edaf39f00000000, + 0x9f4b9b3100000000, 0x6dff531800000000, 0xfc6e3bb600000000, + 0xc609d13800000000, 0x5798b99600000000, 0xa52c71bf00000000, + 0x34bd191100000000, 0x4145e0ec00000000, 0xd0d4884200000000, + 0x2260406b00000000, 0xb3f128c500000000, 0x17a8e5ad00000000, + 0x86398d0300000000, 0x748d452a00000000, 0xe51c2d8400000000, + 0x90e4d47900000000, 0x0175bcd700000000, 0xf3c174fe00000000, + 0x62501c5000000000, 0x5837f6de00000000, 0xc9a69e7000000000, + 0x3b12565900000000, 0xaa833ef700000000, 0xdf7bc70a00000000, + 0x4eeaafa400000000, 0xbc5e678d00000000, 0x2dcf0f2300000000, + 0x0e1b837200000000, 0x9f8aebdc00000000, 0x6d3e23f500000000, + 0xfcaf4b5b00000000, 0x8957b2a600000000, 0x18c6da0800000000, + 0xea72122100000000, 0x7be37a8f00000000, 0x4184900100000000, + 0xd015f8af00000000, 0x22a1308600000000, 0xb330582800000000, + 0xc6c8a1d500000000, 0x5759c97b00000000, 0xa5ed015200000000, + 0x347c69fc00000000, 0x9025a49400000000, 0x01b4cc3a00000000, + 0xf300041300000000, 0x62916cbd00000000, 0x1769954000000000, + 0x86f8fdee00000000, 0x744c35c700000000, 0xe5dd5d6900000000, + 0xdfbab7e700000000, 0x4e2bdf4900000000, 0xbc9f176000000000, + 0x2d0e7fce00000000, 0x58f6863300000000, 0xc967ee9d00000000, + 0x3bd326b400000000, 0xaa424e1a00000000, 0x7360bc6500000000, + 0xe2f1d4cb00000000, 0x10451ce200000000, 0x81d4744c00000000, + 0xf42c8db100000000, 0x65bde51f00000000, 0x97092d3600000000, + 0x0698459800000000, 0x3cffaf1600000000, 0xad6ec7b800000000, + 0x5fda0f9100000000, 0xce4b673f00000000, 0xbbb39ec200000000, + 0x2a22f66c00000000, 0xd8963e4500000000, 0x490756eb00000000, + 0xed5e9b8300000000, 0x7ccff32d00000000, 0x8e7b3b0400000000, + 0x1fea53aa00000000, 0x6a12aa5700000000, 0xfb83c2f900000000, + 0x09370ad000000000, 0x98a6627e00000000, 0xa2c188f000000000, + 0x3350e05e00000000, 0xc1e4287700000000, 0x507540d900000000, + 0x258db92400000000, 0xb41cd18a00000000, 0x46a819a300000000, + 0xd739710d00000000}}; + +#else /* W == 4 */ + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0xccaa009e, 0x4225077d, 0x8e8f07e3, 0x844a0efa, + 0x48e00e64, 0xc66f0987, 0x0ac50919, 0xd3e51bb5, 0x1f4f1b2b, + 0x91c01cc8, 0x5d6a1c56, 0x57af154f, 0x9b0515d1, 0x158a1232, + 0xd92012ac, 0x7cbb312b, 0xb01131b5, 0x3e9e3656, 0xf23436c8, + 0xf8f13fd1, 0x345b3f4f, 0xbad438ac, 0x767e3832, 0xaf5e2a9e, + 0x63f42a00, 0xed7b2de3, 0x21d12d7d, 0x2b142464, 0xe7be24fa, + 0x69312319, 0xa59b2387, 0xf9766256, 0x35dc62c8, 0xbb53652b, + 0x77f965b5, 0x7d3c6cac, 0xb1966c32, 0x3f196bd1, 0xf3b36b4f, + 0x2a9379e3, 0xe639797d, 0x68b67e9e, 0xa41c7e00, 0xaed97719, + 0x62737787, 0xecfc7064, 0x205670fa, 0x85cd537d, 0x496753e3, + 0xc7e85400, 0x0b42549e, 0x01875d87, 0xcd2d5d19, 0x43a25afa, + 0x8f085a64, 0x562848c8, 0x9a824856, 0x140d4fb5, 0xd8a74f2b, + 0xd2624632, 0x1ec846ac, 0x9047414f, 0x5ced41d1, 0x299dc2ed, + 0xe537c273, 0x6bb8c590, 0xa712c50e, 0xadd7cc17, 0x617dcc89, + 0xeff2cb6a, 0x2358cbf4, 0xfa78d958, 0x36d2d9c6, 0xb85dde25, + 0x74f7debb, 0x7e32d7a2, 0xb298d73c, 0x3c17d0df, 0xf0bdd041, + 0x5526f3c6, 0x998cf358, 0x1703f4bb, 0xdba9f425, 0xd16cfd3c, + 0x1dc6fda2, 0x9349fa41, 0x5fe3fadf, 0x86c3e873, 0x4a69e8ed, + 0xc4e6ef0e, 0x084cef90, 0x0289e689, 0xce23e617, 0x40ace1f4, + 0x8c06e16a, 0xd0eba0bb, 0x1c41a025, 0x92cea7c6, 0x5e64a758, + 0x54a1ae41, 0x980baedf, 0x1684a93c, 0xda2ea9a2, 0x030ebb0e, + 0xcfa4bb90, 0x412bbc73, 0x8d81bced, 0x8744b5f4, 0x4beeb56a, + 0xc561b289, 0x09cbb217, 0xac509190, 0x60fa910e, 0xee7596ed, + 0x22df9673, 0x281a9f6a, 0xe4b09ff4, 0x6a3f9817, 0xa6959889, + 0x7fb58a25, 0xb31f8abb, 0x3d908d58, 0xf13a8dc6, 0xfbff84df, + 0x37558441, 0xb9da83a2, 0x7570833c, 0x533b85da, 0x9f918544, + 0x111e82a7, 0xddb48239, 0xd7718b20, 0x1bdb8bbe, 0x95548c5d, + 0x59fe8cc3, 0x80de9e6f, 0x4c749ef1, 0xc2fb9912, 0x0e51998c, + 0x04949095, 0xc83e900b, 0x46b197e8, 0x8a1b9776, 0x2f80b4f1, + 0xe32ab46f, 0x6da5b38c, 0xa10fb312, 0xabcaba0b, 0x6760ba95, + 0xe9efbd76, 0x2545bde8, 0xfc65af44, 0x30cfafda, 0xbe40a839, + 0x72eaa8a7, 0x782fa1be, 0xb485a120, 0x3a0aa6c3, 0xf6a0a65d, + 0xaa4de78c, 0x66e7e712, 0xe868e0f1, 0x24c2e06f, 0x2e07e976, + 0xe2ade9e8, 0x6c22ee0b, 0xa088ee95, 0x79a8fc39, 0xb502fca7, + 0x3b8dfb44, 0xf727fbda, 0xfde2f2c3, 0x3148f25d, 0xbfc7f5be, + 0x736df520, 0xd6f6d6a7, 0x1a5cd639, 0x94d3d1da, 0x5879d144, + 0x52bcd85d, 0x9e16d8c3, 0x1099df20, 0xdc33dfbe, 0x0513cd12, + 0xc9b9cd8c, 0x4736ca6f, 0x8b9ccaf1, 0x8159c3e8, 0x4df3c376, + 0xc37cc495, 0x0fd6c40b, 0x7aa64737, 0xb60c47a9, 0x3883404a, + 0xf42940d4, 0xfeec49cd, 0x32464953, 0xbcc94eb0, 0x70634e2e, + 0xa9435c82, 0x65e95c1c, 0xeb665bff, 0x27cc5b61, 0x2d095278, + 0xe1a352e6, 0x6f2c5505, 0xa386559b, 0x061d761c, 0xcab77682, + 0x44387161, 0x889271ff, 0x825778e6, 0x4efd7878, 0xc0727f9b, + 0x0cd87f05, 0xd5f86da9, 0x19526d37, 0x97dd6ad4, 0x5b776a4a, + 0x51b26353, 0x9d1863cd, 0x1397642e, 0xdf3d64b0, 0x83d02561, + 0x4f7a25ff, 0xc1f5221c, 0x0d5f2282, 0x079a2b9b, 0xcb302b05, + 0x45bf2ce6, 0x89152c78, 0x50353ed4, 0x9c9f3e4a, 0x121039a9, + 0xdeba3937, 0xd47f302e, 0x18d530b0, 0x965a3753, 0x5af037cd, + 0xff6b144a, 0x33c114d4, 0xbd4e1337, 0x71e413a9, 0x7b211ab0, + 0xb78b1a2e, 0x39041dcd, 0xf5ae1d53, 0x2c8e0fff, 0xe0240f61, + 0x6eab0882, 0xa201081c, 0xa8c40105, 0x646e019b, 0xeae10678, + 0x264b06e6}, + {0x00000000, 0xa6770bb4, 0x979f1129, 0x31e81a9d, 0xf44f2413, + 0x52382fa7, 0x63d0353a, 0xc5a73e8e, 0x33ef4e67, 0x959845d3, + 0xa4705f4e, 0x020754fa, 0xc7a06a74, 0x61d761c0, 0x503f7b5d, + 0xf64870e9, 0x67de9cce, 0xc1a9977a, 0xf0418de7, 0x56368653, + 0x9391b8dd, 0x35e6b369, 0x040ea9f4, 0xa279a240, 0x5431d2a9, + 0xf246d91d, 0xc3aec380, 0x65d9c834, 0xa07ef6ba, 0x0609fd0e, + 0x37e1e793, 0x9196ec27, 0xcfbd399c, 0x69ca3228, 0x582228b5, + 0xfe552301, 0x3bf21d8f, 0x9d85163b, 0xac6d0ca6, 0x0a1a0712, + 0xfc5277fb, 0x5a257c4f, 0x6bcd66d2, 0xcdba6d66, 0x081d53e8, + 0xae6a585c, 0x9f8242c1, 0x39f54975, 0xa863a552, 0x0e14aee6, + 0x3ffcb47b, 0x998bbfcf, 0x5c2c8141, 0xfa5b8af5, 0xcbb39068, + 0x6dc49bdc, 0x9b8ceb35, 0x3dfbe081, 0x0c13fa1c, 0xaa64f1a8, + 0x6fc3cf26, 0xc9b4c492, 0xf85cde0f, 0x5e2bd5bb, 0x440b7579, + 0xe27c7ecd, 0xd3946450, 0x75e36fe4, 0xb044516a, 0x16335ade, + 0x27db4043, 0x81ac4bf7, 0x77e43b1e, 0xd19330aa, 0xe07b2a37, + 0x460c2183, 0x83ab1f0d, 0x25dc14b9, 0x14340e24, 0xb2430590, + 0x23d5e9b7, 0x85a2e203, 0xb44af89e, 0x123df32a, 0xd79acda4, + 0x71edc610, 0x4005dc8d, 0xe672d739, 0x103aa7d0, 0xb64dac64, + 0x87a5b6f9, 0x21d2bd4d, 0xe47583c3, 0x42028877, 0x73ea92ea, + 0xd59d995e, 0x8bb64ce5, 0x2dc14751, 0x1c295dcc, 0xba5e5678, + 0x7ff968f6, 0xd98e6342, 0xe86679df, 0x4e11726b, 0xb8590282, + 0x1e2e0936, 0x2fc613ab, 0x89b1181f, 0x4c162691, 0xea612d25, + 0xdb8937b8, 0x7dfe3c0c, 0xec68d02b, 0x4a1fdb9f, 0x7bf7c102, + 0xdd80cab6, 0x1827f438, 0xbe50ff8c, 0x8fb8e511, 0x29cfeea5, + 0xdf879e4c, 0x79f095f8, 0x48188f65, 0xee6f84d1, 0x2bc8ba5f, + 0x8dbfb1eb, 0xbc57ab76, 0x1a20a0c2, 0x8816eaf2, 0x2e61e146, + 0x1f89fbdb, 0xb9fef06f, 0x7c59cee1, 0xda2ec555, 0xebc6dfc8, + 0x4db1d47c, 0xbbf9a495, 0x1d8eaf21, 0x2c66b5bc, 0x8a11be08, + 0x4fb68086, 0xe9c18b32, 0xd82991af, 0x7e5e9a1b, 0xefc8763c, + 0x49bf7d88, 0x78576715, 0xde206ca1, 0x1b87522f, 0xbdf0599b, + 0x8c184306, 0x2a6f48b2, 0xdc27385b, 0x7a5033ef, 0x4bb82972, + 0xedcf22c6, 0x28681c48, 0x8e1f17fc, 0xbff70d61, 0x198006d5, + 0x47abd36e, 0xe1dcd8da, 0xd034c247, 0x7643c9f3, 0xb3e4f77d, + 0x1593fcc9, 0x247be654, 0x820cede0, 0x74449d09, 0xd23396bd, + 0xe3db8c20, 0x45ac8794, 0x800bb91a, 0x267cb2ae, 0x1794a833, + 0xb1e3a387, 0x20754fa0, 0x86024414, 0xb7ea5e89, 0x119d553d, + 0xd43a6bb3, 0x724d6007, 0x43a57a9a, 0xe5d2712e, 0x139a01c7, + 0xb5ed0a73, 0x840510ee, 0x22721b5a, 0xe7d525d4, 0x41a22e60, + 0x704a34fd, 0xd63d3f49, 0xcc1d9f8b, 0x6a6a943f, 0x5b828ea2, + 0xfdf58516, 0x3852bb98, 0x9e25b02c, 0xafcdaab1, 0x09baa105, + 0xfff2d1ec, 0x5985da58, 0x686dc0c5, 0xce1acb71, 0x0bbdf5ff, + 0xadcafe4b, 0x9c22e4d6, 0x3a55ef62, 0xabc30345, 0x0db408f1, + 0x3c5c126c, 0x9a2b19d8, 0x5f8c2756, 0xf9fb2ce2, 0xc813367f, + 0x6e643dcb, 0x982c4d22, 0x3e5b4696, 0x0fb35c0b, 0xa9c457bf, + 0x6c636931, 0xca146285, 0xfbfc7818, 0x5d8b73ac, 0x03a0a617, + 0xa5d7ada3, 0x943fb73e, 0x3248bc8a, 0xf7ef8204, 0x519889b0, + 0x6070932d, 0xc6079899, 0x304fe870, 0x9638e3c4, 0xa7d0f959, + 0x01a7f2ed, 0xc400cc63, 0x6277c7d7, 0x539fdd4a, 0xf5e8d6fe, + 0x647e3ad9, 0xc209316d, 0xf3e12bf0, 0x55962044, 0x90311eca, + 0x3646157e, 0x07ae0fe3, 0xa1d90457, 0x579174be, 0xf1e67f0a, + 0xc00e6597, 0x66796e23, 0xa3de50ad, 0x05a95b19, 0x34414184, + 0x92364a30}, + {0x00000000, 0xcb5cd3a5, 0x4dc8a10b, 0x869472ae, 0x9b914216, + 0x50cd91b3, 0xd659e31d, 0x1d0530b8, 0xec53826d, 0x270f51c8, + 0xa19b2366, 0x6ac7f0c3, 0x77c2c07b, 0xbc9e13de, 0x3a0a6170, + 0xf156b2d5, 0x03d6029b, 0xc88ad13e, 0x4e1ea390, 0x85427035, + 0x9847408d, 0x531b9328, 0xd58fe186, 0x1ed33223, 0xef8580f6, + 0x24d95353, 0xa24d21fd, 0x6911f258, 0x7414c2e0, 0xbf481145, + 0x39dc63eb, 0xf280b04e, 0x07ac0536, 0xccf0d693, 0x4a64a43d, + 0x81387798, 0x9c3d4720, 0x57619485, 0xd1f5e62b, 0x1aa9358e, + 0xebff875b, 0x20a354fe, 0xa6372650, 0x6d6bf5f5, 0x706ec54d, + 0xbb3216e8, 0x3da66446, 0xf6fab7e3, 0x047a07ad, 0xcf26d408, + 0x49b2a6a6, 0x82ee7503, 0x9feb45bb, 0x54b7961e, 0xd223e4b0, + 0x197f3715, 0xe82985c0, 0x23755665, 0xa5e124cb, 0x6ebdf76e, + 0x73b8c7d6, 0xb8e41473, 0x3e7066dd, 0xf52cb578, 0x0f580a6c, + 0xc404d9c9, 0x4290ab67, 0x89cc78c2, 0x94c9487a, 0x5f959bdf, + 0xd901e971, 0x125d3ad4, 0xe30b8801, 0x28575ba4, 0xaec3290a, + 0x659ffaaf, 0x789aca17, 0xb3c619b2, 0x35526b1c, 0xfe0eb8b9, + 0x0c8e08f7, 0xc7d2db52, 0x4146a9fc, 0x8a1a7a59, 0x971f4ae1, + 0x5c439944, 0xdad7ebea, 0x118b384f, 0xe0dd8a9a, 0x2b81593f, + 0xad152b91, 0x6649f834, 0x7b4cc88c, 0xb0101b29, 0x36846987, + 0xfdd8ba22, 0x08f40f5a, 0xc3a8dcff, 0x453cae51, 0x8e607df4, + 0x93654d4c, 0x58399ee9, 0xdeadec47, 0x15f13fe2, 0xe4a78d37, + 0x2ffb5e92, 0xa96f2c3c, 0x6233ff99, 0x7f36cf21, 0xb46a1c84, + 0x32fe6e2a, 0xf9a2bd8f, 0x0b220dc1, 0xc07ede64, 0x46eaacca, + 0x8db67f6f, 0x90b34fd7, 0x5bef9c72, 0xdd7beedc, 0x16273d79, + 0xe7718fac, 0x2c2d5c09, 0xaab92ea7, 0x61e5fd02, 0x7ce0cdba, + 0xb7bc1e1f, 0x31286cb1, 0xfa74bf14, 0x1eb014d8, 0xd5ecc77d, + 0x5378b5d3, 0x98246676, 0x852156ce, 0x4e7d856b, 0xc8e9f7c5, + 0x03b52460, 0xf2e396b5, 0x39bf4510, 0xbf2b37be, 0x7477e41b, + 0x6972d4a3, 0xa22e0706, 0x24ba75a8, 0xefe6a60d, 0x1d661643, + 0xd63ac5e6, 0x50aeb748, 0x9bf264ed, 0x86f75455, 0x4dab87f0, + 0xcb3ff55e, 0x006326fb, 0xf135942e, 0x3a69478b, 0xbcfd3525, + 0x77a1e680, 0x6aa4d638, 0xa1f8059d, 0x276c7733, 0xec30a496, + 0x191c11ee, 0xd240c24b, 0x54d4b0e5, 0x9f886340, 0x828d53f8, + 0x49d1805d, 0xcf45f2f3, 0x04192156, 0xf54f9383, 0x3e134026, + 0xb8873288, 0x73dbe12d, 0x6eded195, 0xa5820230, 0x2316709e, + 0xe84aa33b, 0x1aca1375, 0xd196c0d0, 0x5702b27e, 0x9c5e61db, + 0x815b5163, 0x4a0782c6, 0xcc93f068, 0x07cf23cd, 0xf6999118, + 0x3dc542bd, 0xbb513013, 0x700de3b6, 0x6d08d30e, 0xa65400ab, + 0x20c07205, 0xeb9ca1a0, 0x11e81eb4, 0xdab4cd11, 0x5c20bfbf, + 0x977c6c1a, 0x8a795ca2, 0x41258f07, 0xc7b1fda9, 0x0ced2e0c, + 0xfdbb9cd9, 0x36e74f7c, 0xb0733dd2, 0x7b2fee77, 0x662adecf, + 0xad760d6a, 0x2be27fc4, 0xe0beac61, 0x123e1c2f, 0xd962cf8a, + 0x5ff6bd24, 0x94aa6e81, 0x89af5e39, 0x42f38d9c, 0xc467ff32, + 0x0f3b2c97, 0xfe6d9e42, 0x35314de7, 0xb3a53f49, 0x78f9ecec, + 0x65fcdc54, 0xaea00ff1, 0x28347d5f, 0xe368aefa, 0x16441b82, + 0xdd18c827, 0x5b8cba89, 0x90d0692c, 0x8dd55994, 0x46898a31, + 0xc01df89f, 0x0b412b3a, 0xfa1799ef, 0x314b4a4a, 0xb7df38e4, + 0x7c83eb41, 0x6186dbf9, 0xaada085c, 0x2c4e7af2, 0xe712a957, + 0x15921919, 0xdececabc, 0x585ab812, 0x93066bb7, 0x8e035b0f, + 0x455f88aa, 0xc3cbfa04, 0x089729a1, 0xf9c19b74, 0x329d48d1, + 0xb4093a7f, 0x7f55e9da, 0x6250d962, 0xa90c0ac7, 0x2f987869, + 0xe4c4abcc}, + {0x00000000, 0x3d6029b0, 0x7ac05360, 0x47a07ad0, 0xf580a6c0, + 0xc8e08f70, 0x8f40f5a0, 0xb220dc10, 0x30704bc1, 0x0d106271, + 0x4ab018a1, 0x77d03111, 0xc5f0ed01, 0xf890c4b1, 0xbf30be61, + 0x825097d1, 0x60e09782, 0x5d80be32, 0x1a20c4e2, 0x2740ed52, + 0x95603142, 0xa80018f2, 0xefa06222, 0xd2c04b92, 0x5090dc43, + 0x6df0f5f3, 0x2a508f23, 0x1730a693, 0xa5107a83, 0x98705333, + 0xdfd029e3, 0xe2b00053, 0xc1c12f04, 0xfca106b4, 0xbb017c64, + 0x866155d4, 0x344189c4, 0x0921a074, 0x4e81daa4, 0x73e1f314, + 0xf1b164c5, 0xccd14d75, 0x8b7137a5, 0xb6111e15, 0x0431c205, + 0x3951ebb5, 0x7ef19165, 0x4391b8d5, 0xa121b886, 0x9c419136, + 0xdbe1ebe6, 0xe681c256, 0x54a11e46, 0x69c137f6, 0x2e614d26, + 0x13016496, 0x9151f347, 0xac31daf7, 0xeb91a027, 0xd6f18997, + 0x64d15587, 0x59b17c37, 0x1e1106e7, 0x23712f57, 0x58f35849, + 0x659371f9, 0x22330b29, 0x1f532299, 0xad73fe89, 0x9013d739, + 0xd7b3ade9, 0xead38459, 0x68831388, 0x55e33a38, 0x124340e8, + 0x2f236958, 0x9d03b548, 0xa0639cf8, 0xe7c3e628, 0xdaa3cf98, + 0x3813cfcb, 0x0573e67b, 0x42d39cab, 0x7fb3b51b, 0xcd93690b, + 0xf0f340bb, 0xb7533a6b, 0x8a3313db, 0x0863840a, 0x3503adba, + 0x72a3d76a, 0x4fc3feda, 0xfde322ca, 0xc0830b7a, 0x872371aa, + 0xba43581a, 0x9932774d, 0xa4525efd, 0xe3f2242d, 0xde920d9d, + 0x6cb2d18d, 0x51d2f83d, 0x167282ed, 0x2b12ab5d, 0xa9423c8c, + 0x9422153c, 0xd3826fec, 0xeee2465c, 0x5cc29a4c, 0x61a2b3fc, + 0x2602c92c, 0x1b62e09c, 0xf9d2e0cf, 0xc4b2c97f, 0x8312b3af, + 0xbe729a1f, 0x0c52460f, 0x31326fbf, 0x7692156f, 0x4bf23cdf, + 0xc9a2ab0e, 0xf4c282be, 0xb362f86e, 0x8e02d1de, 0x3c220dce, + 0x0142247e, 0x46e25eae, 0x7b82771e, 0xb1e6b092, 0x8c869922, + 0xcb26e3f2, 0xf646ca42, 0x44661652, 0x79063fe2, 0x3ea64532, + 0x03c66c82, 0x8196fb53, 0xbcf6d2e3, 0xfb56a833, 0xc6368183, + 0x74165d93, 0x49767423, 0x0ed60ef3, 0x33b62743, 0xd1062710, + 0xec660ea0, 0xabc67470, 0x96a65dc0, 0x248681d0, 0x19e6a860, + 0x5e46d2b0, 0x6326fb00, 0xe1766cd1, 0xdc164561, 0x9bb63fb1, + 0xa6d61601, 0x14f6ca11, 0x2996e3a1, 0x6e369971, 0x5356b0c1, + 0x70279f96, 0x4d47b626, 0x0ae7ccf6, 0x3787e546, 0x85a73956, + 0xb8c710e6, 0xff676a36, 0xc2074386, 0x4057d457, 0x7d37fde7, + 0x3a978737, 0x07f7ae87, 0xb5d77297, 0x88b75b27, 0xcf1721f7, + 0xf2770847, 0x10c70814, 0x2da721a4, 0x6a075b74, 0x576772c4, + 0xe547aed4, 0xd8278764, 0x9f87fdb4, 0xa2e7d404, 0x20b743d5, + 0x1dd76a65, 0x5a7710b5, 0x67173905, 0xd537e515, 0xe857cca5, + 0xaff7b675, 0x92979fc5, 0xe915e8db, 0xd475c16b, 0x93d5bbbb, + 0xaeb5920b, 0x1c954e1b, 0x21f567ab, 0x66551d7b, 0x5b3534cb, + 0xd965a31a, 0xe4058aaa, 0xa3a5f07a, 0x9ec5d9ca, 0x2ce505da, + 0x11852c6a, 0x562556ba, 0x6b457f0a, 0x89f57f59, 0xb49556e9, + 0xf3352c39, 0xce550589, 0x7c75d999, 0x4115f029, 0x06b58af9, + 0x3bd5a349, 0xb9853498, 0x84e51d28, 0xc34567f8, 0xfe254e48, + 0x4c059258, 0x7165bbe8, 0x36c5c138, 0x0ba5e888, 0x28d4c7df, + 0x15b4ee6f, 0x521494bf, 0x6f74bd0f, 0xdd54611f, 0xe03448af, + 0xa794327f, 0x9af41bcf, 0x18a48c1e, 0x25c4a5ae, 0x6264df7e, + 0x5f04f6ce, 0xed242ade, 0xd044036e, 0x97e479be, 0xaa84500e, + 0x4834505d, 0x755479ed, 0x32f4033d, 0x0f942a8d, 0xbdb4f69d, + 0x80d4df2d, 0xc774a5fd, 0xfa148c4d, 0x78441b9c, 0x4524322c, + 0x028448fc, 0x3fe4614c, 0x8dc4bd5c, 0xb0a494ec, 0xf704ee3c, + 0xca64c78c}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x00000000, 0xb029603d, 0x6053c07a, 0xd07aa047, 0xc0a680f5, + 0x708fe0c8, 0xa0f5408f, 0x10dc20b2, 0xc14b7030, 0x7162100d, + 0xa118b04a, 0x1131d077, 0x01edf0c5, 0xb1c490f8, 0x61be30bf, + 0xd1975082, 0x8297e060, 0x32be805d, 0xe2c4201a, 0x52ed4027, + 0x42316095, 0xf21800a8, 0x2262a0ef, 0x924bc0d2, 0x43dc9050, + 0xf3f5f06d, 0x238f502a, 0x93a63017, 0x837a10a5, 0x33537098, + 0xe329d0df, 0x5300b0e2, 0x042fc1c1, 0xb406a1fc, 0x647c01bb, + 0xd4556186, 0xc4894134, 0x74a02109, 0xa4da814e, 0x14f3e173, + 0xc564b1f1, 0x754dd1cc, 0xa537718b, 0x151e11b6, 0x05c23104, + 0xb5eb5139, 0x6591f17e, 0xd5b89143, 0x86b821a1, 0x3691419c, + 0xe6ebe1db, 0x56c281e6, 0x461ea154, 0xf637c169, 0x264d612e, + 0x96640113, 0x47f35191, 0xf7da31ac, 0x27a091eb, 0x9789f1d6, + 0x8755d164, 0x377cb159, 0xe706111e, 0x572f7123, 0x4958f358, + 0xf9719365, 0x290b3322, 0x9922531f, 0x89fe73ad, 0x39d71390, + 0xe9adb3d7, 0x5984d3ea, 0x88138368, 0x383ae355, 0xe8404312, + 0x5869232f, 0x48b5039d, 0xf89c63a0, 0x28e6c3e7, 0x98cfa3da, + 0xcbcf1338, 0x7be67305, 0xab9cd342, 0x1bb5b37f, 0x0b6993cd, + 0xbb40f3f0, 0x6b3a53b7, 0xdb13338a, 0x0a846308, 0xbaad0335, + 0x6ad7a372, 0xdafec34f, 0xca22e3fd, 0x7a0b83c0, 0xaa712387, + 0x1a5843ba, 0x4d773299, 0xfd5e52a4, 0x2d24f2e3, 0x9d0d92de, + 0x8dd1b26c, 0x3df8d251, 0xed827216, 0x5dab122b, 0x8c3c42a9, + 0x3c152294, 0xec6f82d3, 0x5c46e2ee, 0x4c9ac25c, 0xfcb3a261, + 0x2cc90226, 0x9ce0621b, 0xcfe0d2f9, 0x7fc9b2c4, 0xafb31283, + 0x1f9a72be, 0x0f46520c, 0xbf6f3231, 0x6f159276, 0xdf3cf24b, + 0x0eaba2c9, 0xbe82c2f4, 0x6ef862b3, 0xded1028e, 0xce0d223c, + 0x7e244201, 0xae5ee246, 0x1e77827b, 0x92b0e6b1, 0x2299868c, + 0xf2e326cb, 0x42ca46f6, 0x52166644, 0xe23f0679, 0x3245a63e, + 0x826cc603, 0x53fb9681, 0xe3d2f6bc, 0x33a856fb, 0x838136c6, + 0x935d1674, 0x23747649, 0xf30ed60e, 0x4327b633, 0x102706d1, + 0xa00e66ec, 0x7074c6ab, 0xc05da696, 0xd0818624, 0x60a8e619, + 0xb0d2465e, 0x00fb2663, 0xd16c76e1, 0x614516dc, 0xb13fb69b, + 0x0116d6a6, 0x11caf614, 0xa1e39629, 0x7199366e, 0xc1b05653, + 0x969f2770, 0x26b6474d, 0xf6cce70a, 0x46e58737, 0x5639a785, + 0xe610c7b8, 0x366a67ff, 0x864307c2, 0x57d45740, 0xe7fd377d, + 0x3787973a, 0x87aef707, 0x9772d7b5, 0x275bb788, 0xf72117cf, + 0x470877f2, 0x1408c710, 0xa421a72d, 0x745b076a, 0xc4726757, + 0xd4ae47e5, 0x648727d8, 0xb4fd879f, 0x04d4e7a2, 0xd543b720, + 0x656ad71d, 0xb510775a, 0x05391767, 0x15e537d5, 0xa5cc57e8, + 0x75b6f7af, 0xc59f9792, 0xdbe815e9, 0x6bc175d4, 0xbbbbd593, + 0x0b92b5ae, 0x1b4e951c, 0xab67f521, 0x7b1d5566, 0xcb34355b, + 0x1aa365d9, 0xaa8a05e4, 0x7af0a5a3, 0xcad9c59e, 0xda05e52c, + 0x6a2c8511, 0xba562556, 0x0a7f456b, 0x597ff589, 0xe95695b4, + 0x392c35f3, 0x890555ce, 0x99d9757c, 0x29f01541, 0xf98ab506, + 0x49a3d53b, 0x983485b9, 0x281de584, 0xf86745c3, 0x484e25fe, + 0x5892054c, 0xe8bb6571, 0x38c1c536, 0x88e8a50b, 0xdfc7d428, + 0x6feeb415, 0xbf941452, 0x0fbd746f, 0x1f6154dd, 0xaf4834e0, + 0x7f3294a7, 0xcf1bf49a, 0x1e8ca418, 0xaea5c425, 0x7edf6462, + 0xcef6045f, 0xde2a24ed, 0x6e0344d0, 0xbe79e497, 0x0e5084aa, + 0x5d503448, 0xed795475, 0x3d03f432, 0x8d2a940f, 0x9df6b4bd, + 0x2ddfd480, 0xfda574c7, 0x4d8c14fa, 0x9c1b4478, 0x2c322445, + 0xfc488402, 0x4c61e43f, 0x5cbdc48d, 0xec94a4b0, 0x3cee04f7, + 0x8cc764ca}, + {0x00000000, 0xa5d35ccb, 0x0ba1c84d, 0xae729486, 0x1642919b, + 0xb391cd50, 0x1de359d6, 0xb830051d, 0x6d8253ec, 0xc8510f27, + 0x66239ba1, 0xc3f0c76a, 0x7bc0c277, 0xde139ebc, 0x70610a3a, + 0xd5b256f1, 0x9b02d603, 0x3ed18ac8, 0x90a31e4e, 0x35704285, + 0x8d404798, 0x28931b53, 0x86e18fd5, 0x2332d31e, 0xf68085ef, + 0x5353d924, 0xfd214da2, 0x58f21169, 0xe0c21474, 0x451148bf, + 0xeb63dc39, 0x4eb080f2, 0x3605ac07, 0x93d6f0cc, 0x3da4644a, + 0x98773881, 0x20473d9c, 0x85946157, 0x2be6f5d1, 0x8e35a91a, + 0x5b87ffeb, 0xfe54a320, 0x502637a6, 0xf5f56b6d, 0x4dc56e70, + 0xe81632bb, 0x4664a63d, 0xe3b7faf6, 0xad077a04, 0x08d426cf, + 0xa6a6b249, 0x0375ee82, 0xbb45eb9f, 0x1e96b754, 0xb0e423d2, + 0x15377f19, 0xc08529e8, 0x65567523, 0xcb24e1a5, 0x6ef7bd6e, + 0xd6c7b873, 0x7314e4b8, 0xdd66703e, 0x78b52cf5, 0x6c0a580f, + 0xc9d904c4, 0x67ab9042, 0xc278cc89, 0x7a48c994, 0xdf9b955f, + 0x71e901d9, 0xd43a5d12, 0x01880be3, 0xa45b5728, 0x0a29c3ae, + 0xaffa9f65, 0x17ca9a78, 0xb219c6b3, 0x1c6b5235, 0xb9b80efe, + 0xf7088e0c, 0x52dbd2c7, 0xfca94641, 0x597a1a8a, 0xe14a1f97, + 0x4499435c, 0xeaebd7da, 0x4f388b11, 0x9a8adde0, 0x3f59812b, + 0x912b15ad, 0x34f84966, 0x8cc84c7b, 0x291b10b0, 0x87698436, + 0x22bad8fd, 0x5a0ff408, 0xffdca8c3, 0x51ae3c45, 0xf47d608e, + 0x4c4d6593, 0xe99e3958, 0x47ecadde, 0xe23ff115, 0x378da7e4, + 0x925efb2f, 0x3c2c6fa9, 0x99ff3362, 0x21cf367f, 0x841c6ab4, + 0x2a6efe32, 0x8fbda2f9, 0xc10d220b, 0x64de7ec0, 0xcaacea46, + 0x6f7fb68d, 0xd74fb390, 0x729cef5b, 0xdcee7bdd, 0x793d2716, + 0xac8f71e7, 0x095c2d2c, 0xa72eb9aa, 0x02fde561, 0xbacde07c, + 0x1f1ebcb7, 0xb16c2831, 0x14bf74fa, 0xd814b01e, 0x7dc7ecd5, + 0xd3b57853, 0x76662498, 0xce562185, 0x6b857d4e, 0xc5f7e9c8, + 0x6024b503, 0xb596e3f2, 0x1045bf39, 0xbe372bbf, 0x1be47774, + 0xa3d47269, 0x06072ea2, 0xa875ba24, 0x0da6e6ef, 0x4316661d, + 0xe6c53ad6, 0x48b7ae50, 0xed64f29b, 0x5554f786, 0xf087ab4d, + 0x5ef53fcb, 0xfb266300, 0x2e9435f1, 0x8b47693a, 0x2535fdbc, + 0x80e6a177, 0x38d6a46a, 0x9d05f8a1, 0x33776c27, 0x96a430ec, + 0xee111c19, 0x4bc240d2, 0xe5b0d454, 0x4063889f, 0xf8538d82, + 0x5d80d149, 0xf3f245cf, 0x56211904, 0x83934ff5, 0x2640133e, + 0x883287b8, 0x2de1db73, 0x95d1de6e, 0x300282a5, 0x9e701623, + 0x3ba34ae8, 0x7513ca1a, 0xd0c096d1, 0x7eb20257, 0xdb615e9c, + 0x63515b81, 0xc682074a, 0x68f093cc, 0xcd23cf07, 0x189199f6, + 0xbd42c53d, 0x133051bb, 0xb6e30d70, 0x0ed3086d, 0xab0054a6, + 0x0572c020, 0xa0a19ceb, 0xb41ee811, 0x11cdb4da, 0xbfbf205c, + 0x1a6c7c97, 0xa25c798a, 0x078f2541, 0xa9fdb1c7, 0x0c2eed0c, + 0xd99cbbfd, 0x7c4fe736, 0xd23d73b0, 0x77ee2f7b, 0xcfde2a66, + 0x6a0d76ad, 0xc47fe22b, 0x61acbee0, 0x2f1c3e12, 0x8acf62d9, + 0x24bdf65f, 0x816eaa94, 0x395eaf89, 0x9c8df342, 0x32ff67c4, + 0x972c3b0f, 0x429e6dfe, 0xe74d3135, 0x493fa5b3, 0xececf978, + 0x54dcfc65, 0xf10fa0ae, 0x5f7d3428, 0xfaae68e3, 0x821b4416, + 0x27c818dd, 0x89ba8c5b, 0x2c69d090, 0x9459d58d, 0x318a8946, + 0x9ff81dc0, 0x3a2b410b, 0xef9917fa, 0x4a4a4b31, 0xe438dfb7, + 0x41eb837c, 0xf9db8661, 0x5c08daaa, 0xf27a4e2c, 0x57a912e7, + 0x19199215, 0xbccacede, 0x12b85a58, 0xb76b0693, 0x0f5b038e, + 0xaa885f45, 0x04facbc3, 0xa1299708, 0x749bc1f9, 0xd1489d32, + 0x7f3a09b4, 0xdae9557f, 0x62d95062, 0xc70a0ca9, 0x6978982f, + 0xccabc4e4}, + {0x00000000, 0xb40b77a6, 0x29119f97, 0x9d1ae831, 0x13244ff4, + 0xa72f3852, 0x3a35d063, 0x8e3ea7c5, 0x674eef33, 0xd3459895, + 0x4e5f70a4, 0xfa540702, 0x746aa0c7, 0xc061d761, 0x5d7b3f50, + 0xe97048f6, 0xce9cde67, 0x7a97a9c1, 0xe78d41f0, 0x53863656, + 0xddb89193, 0x69b3e635, 0xf4a90e04, 0x40a279a2, 0xa9d23154, + 0x1dd946f2, 0x80c3aec3, 0x34c8d965, 0xbaf67ea0, 0x0efd0906, + 0x93e7e137, 0x27ec9691, 0x9c39bdcf, 0x2832ca69, 0xb5282258, + 0x012355fe, 0x8f1df23b, 0x3b16859d, 0xa60c6dac, 0x12071a0a, + 0xfb7752fc, 0x4f7c255a, 0xd266cd6b, 0x666dbacd, 0xe8531d08, + 0x5c586aae, 0xc142829f, 0x7549f539, 0x52a563a8, 0xe6ae140e, + 0x7bb4fc3f, 0xcfbf8b99, 0x41812c5c, 0xf58a5bfa, 0x6890b3cb, + 0xdc9bc46d, 0x35eb8c9b, 0x81e0fb3d, 0x1cfa130c, 0xa8f164aa, + 0x26cfc36f, 0x92c4b4c9, 0x0fde5cf8, 0xbbd52b5e, 0x79750b44, + 0xcd7e7ce2, 0x506494d3, 0xe46fe375, 0x6a5144b0, 0xde5a3316, + 0x4340db27, 0xf74bac81, 0x1e3be477, 0xaa3093d1, 0x372a7be0, + 0x83210c46, 0x0d1fab83, 0xb914dc25, 0x240e3414, 0x900543b2, + 0xb7e9d523, 0x03e2a285, 0x9ef84ab4, 0x2af33d12, 0xa4cd9ad7, + 0x10c6ed71, 0x8ddc0540, 0x39d772e6, 0xd0a73a10, 0x64ac4db6, + 0xf9b6a587, 0x4dbdd221, 0xc38375e4, 0x77880242, 0xea92ea73, + 0x5e999dd5, 0xe54cb68b, 0x5147c12d, 0xcc5d291c, 0x78565eba, + 0xf668f97f, 0x42638ed9, 0xdf7966e8, 0x6b72114e, 0x820259b8, + 0x36092e1e, 0xab13c62f, 0x1f18b189, 0x9126164c, 0x252d61ea, + 0xb83789db, 0x0c3cfe7d, 0x2bd068ec, 0x9fdb1f4a, 0x02c1f77b, + 0xb6ca80dd, 0x38f42718, 0x8cff50be, 0x11e5b88f, 0xa5eecf29, + 0x4c9e87df, 0xf895f079, 0x658f1848, 0xd1846fee, 0x5fbac82b, + 0xebb1bf8d, 0x76ab57bc, 0xc2a0201a, 0xf2ea1688, 0x46e1612e, + 0xdbfb891f, 0x6ff0feb9, 0xe1ce597c, 0x55c52eda, 0xc8dfc6eb, + 0x7cd4b14d, 0x95a4f9bb, 0x21af8e1d, 0xbcb5662c, 0x08be118a, + 0x8680b64f, 0x328bc1e9, 0xaf9129d8, 0x1b9a5e7e, 0x3c76c8ef, + 0x887dbf49, 0x15675778, 0xa16c20de, 0x2f52871b, 0x9b59f0bd, + 0x0643188c, 0xb2486f2a, 0x5b3827dc, 0xef33507a, 0x7229b84b, + 0xc622cfed, 0x481c6828, 0xfc171f8e, 0x610df7bf, 0xd5068019, + 0x6ed3ab47, 0xdad8dce1, 0x47c234d0, 0xf3c94376, 0x7df7e4b3, + 0xc9fc9315, 0x54e67b24, 0xe0ed0c82, 0x099d4474, 0xbd9633d2, + 0x208cdbe3, 0x9487ac45, 0x1ab90b80, 0xaeb27c26, 0x33a89417, + 0x87a3e3b1, 0xa04f7520, 0x14440286, 0x895eeab7, 0x3d559d11, + 0xb36b3ad4, 0x07604d72, 0x9a7aa543, 0x2e71d2e5, 0xc7019a13, + 0x730aedb5, 0xee100584, 0x5a1b7222, 0xd425d5e7, 0x602ea241, + 0xfd344a70, 0x493f3dd6, 0x8b9f1dcc, 0x3f946a6a, 0xa28e825b, + 0x1685f5fd, 0x98bb5238, 0x2cb0259e, 0xb1aacdaf, 0x05a1ba09, + 0xecd1f2ff, 0x58da8559, 0xc5c06d68, 0x71cb1ace, 0xfff5bd0b, + 0x4bfecaad, 0xd6e4229c, 0x62ef553a, 0x4503c3ab, 0xf108b40d, + 0x6c125c3c, 0xd8192b9a, 0x56278c5f, 0xe22cfbf9, 0x7f3613c8, + 0xcb3d646e, 0x224d2c98, 0x96465b3e, 0x0b5cb30f, 0xbf57c4a9, + 0x3169636c, 0x856214ca, 0x1878fcfb, 0xac738b5d, 0x17a6a003, + 0xa3add7a5, 0x3eb73f94, 0x8abc4832, 0x0482eff7, 0xb0899851, + 0x2d937060, 0x999807c6, 0x70e84f30, 0xc4e33896, 0x59f9d0a7, + 0xedf2a701, 0x63cc00c4, 0xd7c77762, 0x4add9f53, 0xfed6e8f5, + 0xd93a7e64, 0x6d3109c2, 0xf02be1f3, 0x44209655, 0xca1e3190, + 0x7e154636, 0xe30fae07, 0x5704d9a1, 0xbe749157, 0x0a7fe6f1, + 0x97650ec0, 0x236e7966, 0xad50dea3, 0x195ba905, 0x84414134, + 0x304a3692}, + {0x00000000, 0x9e00aacc, 0x7d072542, 0xe3078f8e, 0xfa0e4a84, + 0x640ee048, 0x87096fc6, 0x1909c50a, 0xb51be5d3, 0x2b1b4f1f, + 0xc81cc091, 0x561c6a5d, 0x4f15af57, 0xd115059b, 0x32128a15, + 0xac1220d9, 0x2b31bb7c, 0xb53111b0, 0x56369e3e, 0xc83634f2, + 0xd13ff1f8, 0x4f3f5b34, 0xac38d4ba, 0x32387e76, 0x9e2a5eaf, + 0x002af463, 0xe32d7bed, 0x7d2dd121, 0x6424142b, 0xfa24bee7, + 0x19233169, 0x87239ba5, 0x566276f9, 0xc862dc35, 0x2b6553bb, + 0xb565f977, 0xac6c3c7d, 0x326c96b1, 0xd16b193f, 0x4f6bb3f3, + 0xe379932a, 0x7d7939e6, 0x9e7eb668, 0x007e1ca4, 0x1977d9ae, + 0x87777362, 0x6470fcec, 0xfa705620, 0x7d53cd85, 0xe3536749, + 0x0054e8c7, 0x9e54420b, 0x875d8701, 0x195d2dcd, 0xfa5aa243, + 0x645a088f, 0xc8482856, 0x5648829a, 0xb54f0d14, 0x2b4fa7d8, + 0x324662d2, 0xac46c81e, 0x4f414790, 0xd141ed5c, 0xedc29d29, + 0x73c237e5, 0x90c5b86b, 0x0ec512a7, 0x17ccd7ad, 0x89cc7d61, + 0x6acbf2ef, 0xf4cb5823, 0x58d978fa, 0xc6d9d236, 0x25de5db8, + 0xbbdef774, 0xa2d7327e, 0x3cd798b2, 0xdfd0173c, 0x41d0bdf0, + 0xc6f32655, 0x58f38c99, 0xbbf40317, 0x25f4a9db, 0x3cfd6cd1, + 0xa2fdc61d, 0x41fa4993, 0xdffae35f, 0x73e8c386, 0xede8694a, + 0x0eefe6c4, 0x90ef4c08, 0x89e68902, 0x17e623ce, 0xf4e1ac40, + 0x6ae1068c, 0xbba0ebd0, 0x25a0411c, 0xc6a7ce92, 0x58a7645e, + 0x41aea154, 0xdfae0b98, 0x3ca98416, 0xa2a92eda, 0x0ebb0e03, + 0x90bba4cf, 0x73bc2b41, 0xedbc818d, 0xf4b54487, 0x6ab5ee4b, + 0x89b261c5, 0x17b2cb09, 0x909150ac, 0x0e91fa60, 0xed9675ee, + 0x7396df22, 0x6a9f1a28, 0xf49fb0e4, 0x17983f6a, 0x899895a6, + 0x258ab57f, 0xbb8a1fb3, 0x588d903d, 0xc68d3af1, 0xdf84fffb, + 0x41845537, 0xa283dab9, 0x3c837075, 0xda853b53, 0x4485919f, + 0xa7821e11, 0x3982b4dd, 0x208b71d7, 0xbe8bdb1b, 0x5d8c5495, + 0xc38cfe59, 0x6f9ede80, 0xf19e744c, 0x1299fbc2, 0x8c99510e, + 0x95909404, 0x0b903ec8, 0xe897b146, 0x76971b8a, 0xf1b4802f, + 0x6fb42ae3, 0x8cb3a56d, 0x12b30fa1, 0x0bbacaab, 0x95ba6067, + 0x76bdefe9, 0xe8bd4525, 0x44af65fc, 0xdaafcf30, 0x39a840be, + 0xa7a8ea72, 0xbea12f78, 0x20a185b4, 0xc3a60a3a, 0x5da6a0f6, + 0x8ce74daa, 0x12e7e766, 0xf1e068e8, 0x6fe0c224, 0x76e9072e, + 0xe8e9ade2, 0x0bee226c, 0x95ee88a0, 0x39fca879, 0xa7fc02b5, + 0x44fb8d3b, 0xdafb27f7, 0xc3f2e2fd, 0x5df24831, 0xbef5c7bf, + 0x20f56d73, 0xa7d6f6d6, 0x39d65c1a, 0xdad1d394, 0x44d17958, + 0x5dd8bc52, 0xc3d8169e, 0x20df9910, 0xbedf33dc, 0x12cd1305, + 0x8ccdb9c9, 0x6fca3647, 0xf1ca9c8b, 0xe8c35981, 0x76c3f34d, + 0x95c47cc3, 0x0bc4d60f, 0x3747a67a, 0xa9470cb6, 0x4a408338, + 0xd44029f4, 0xcd49ecfe, 0x53494632, 0xb04ec9bc, 0x2e4e6370, + 0x825c43a9, 0x1c5ce965, 0xff5b66eb, 0x615bcc27, 0x7852092d, + 0xe652a3e1, 0x05552c6f, 0x9b5586a3, 0x1c761d06, 0x8276b7ca, + 0x61713844, 0xff719288, 0xe6785782, 0x7878fd4e, 0x9b7f72c0, + 0x057fd80c, 0xa96df8d5, 0x376d5219, 0xd46add97, 0x4a6a775b, + 0x5363b251, 0xcd63189d, 0x2e649713, 0xb0643ddf, 0x6125d083, + 0xff257a4f, 0x1c22f5c1, 0x82225f0d, 0x9b2b9a07, 0x052b30cb, + 0xe62cbf45, 0x782c1589, 0xd43e3550, 0x4a3e9f9c, 0xa9391012, + 0x3739bade, 0x2e307fd4, 0xb030d518, 0x53375a96, 0xcd37f05a, + 0x4a146bff, 0xd414c133, 0x37134ebd, 0xa913e471, 0xb01a217b, + 0x2e1a8bb7, 0xcd1d0439, 0x531daef5, 0xff0f8e2c, 0x610f24e0, + 0x8208ab6e, 0x1c0801a2, 0x0501c4a8, 0x9b016e64, 0x7806e1ea, + 0xe6064b26}}; + +#endif + +#endif + +#if N == 3 + +#if W == 8 + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0x81256527, 0xd93bcc0f, 0x581ea928, 0x69069e5f, + 0xe823fb78, 0xb03d5250, 0x31183777, 0xd20d3cbe, 0x53285999, + 0x0b36f0b1, 0x8a139596, 0xbb0ba2e1, 0x3a2ec7c6, 0x62306eee, + 0xe3150bc9, 0x7f6b7f3d, 0xfe4e1a1a, 0xa650b332, 0x2775d615, + 0x166de162, 0x97488445, 0xcf562d6d, 0x4e73484a, 0xad664383, + 0x2c4326a4, 0x745d8f8c, 0xf578eaab, 0xc460dddc, 0x4545b8fb, + 0x1d5b11d3, 0x9c7e74f4, 0xfed6fe7a, 0x7ff39b5d, 0x27ed3275, + 0xa6c85752, 0x97d06025, 0x16f50502, 0x4eebac2a, 0xcfcec90d, + 0x2cdbc2c4, 0xadfea7e3, 0xf5e00ecb, 0x74c56bec, 0x45dd5c9b, + 0xc4f839bc, 0x9ce69094, 0x1dc3f5b3, 0x81bd8147, 0x0098e460, + 0x58864d48, 0xd9a3286f, 0xe8bb1f18, 0x699e7a3f, 0x3180d317, + 0xb0a5b630, 0x53b0bdf9, 0xd295d8de, 0x8a8b71f6, 0x0bae14d1, + 0x3ab623a6, 0xbb934681, 0xe38defa9, 0x62a88a8e, 0x26dcfab5, + 0xa7f99f92, 0xffe736ba, 0x7ec2539d, 0x4fda64ea, 0xceff01cd, + 0x96e1a8e5, 0x17c4cdc2, 0xf4d1c60b, 0x75f4a32c, 0x2dea0a04, + 0xaccf6f23, 0x9dd75854, 0x1cf23d73, 0x44ec945b, 0xc5c9f17c, + 0x59b78588, 0xd892e0af, 0x808c4987, 0x01a92ca0, 0x30b11bd7, + 0xb1947ef0, 0xe98ad7d8, 0x68afb2ff, 0x8bbab936, 0x0a9fdc11, + 0x52817539, 0xd3a4101e, 0xe2bc2769, 0x6399424e, 0x3b87eb66, + 0xbaa28e41, 0xd80a04cf, 0x592f61e8, 0x0131c8c0, 0x8014ade7, + 0xb10c9a90, 0x3029ffb7, 0x6837569f, 0xe91233b8, 0x0a073871, + 0x8b225d56, 0xd33cf47e, 0x52199159, 0x6301a62e, 0xe224c309, + 0xba3a6a21, 0x3b1f0f06, 0xa7617bf2, 0x26441ed5, 0x7e5ab7fd, + 0xff7fd2da, 0xce67e5ad, 0x4f42808a, 0x175c29a2, 0x96794c85, + 0x756c474c, 0xf449226b, 0xac578b43, 0x2d72ee64, 0x1c6ad913, + 0x9d4fbc34, 0xc551151c, 0x4474703b, 0x4db9f56a, 0xcc9c904d, + 0x94823965, 0x15a75c42, 0x24bf6b35, 0xa59a0e12, 0xfd84a73a, + 0x7ca1c21d, 0x9fb4c9d4, 0x1e91acf3, 0x468f05db, 0xc7aa60fc, + 0xf6b2578b, 0x779732ac, 0x2f899b84, 0xaeacfea3, 0x32d28a57, + 0xb3f7ef70, 0xebe94658, 0x6acc237f, 0x5bd41408, 0xdaf1712f, + 0x82efd807, 0x03cabd20, 0xe0dfb6e9, 0x61fad3ce, 0x39e47ae6, + 0xb8c11fc1, 0x89d928b6, 0x08fc4d91, 0x50e2e4b9, 0xd1c7819e, + 0xb36f0b10, 0x324a6e37, 0x6a54c71f, 0xeb71a238, 0xda69954f, + 0x5b4cf068, 0x03525940, 0x82773c67, 0x616237ae, 0xe0475289, + 0xb859fba1, 0x397c9e86, 0x0864a9f1, 0x8941ccd6, 0xd15f65fe, + 0x507a00d9, 0xcc04742d, 0x4d21110a, 0x153fb822, 0x941add05, + 0xa502ea72, 0x24278f55, 0x7c39267d, 0xfd1c435a, 0x1e094893, + 0x9f2c2db4, 0xc732849c, 0x4617e1bb, 0x770fd6cc, 0xf62ab3eb, + 0xae341ac3, 0x2f117fe4, 0x6b650fdf, 0xea406af8, 0xb25ec3d0, + 0x337ba6f7, 0x02639180, 0x8346f4a7, 0xdb585d8f, 0x5a7d38a8, + 0xb9683361, 0x384d5646, 0x6053ff6e, 0xe1769a49, 0xd06ead3e, + 0x514bc819, 0x09556131, 0x88700416, 0x140e70e2, 0x952b15c5, + 0xcd35bced, 0x4c10d9ca, 0x7d08eebd, 0xfc2d8b9a, 0xa43322b2, + 0x25164795, 0xc6034c5c, 0x4726297b, 0x1f388053, 0x9e1de574, + 0xaf05d203, 0x2e20b724, 0x763e1e0c, 0xf71b7b2b, 0x95b3f1a5, + 0x14969482, 0x4c883daa, 0xcdad588d, 0xfcb56ffa, 0x7d900add, + 0x258ea3f5, 0xa4abc6d2, 0x47becd1b, 0xc69ba83c, 0x9e850114, + 0x1fa06433, 0x2eb85344, 0xaf9d3663, 0xf7839f4b, 0x76a6fa6c, + 0xead88e98, 0x6bfdebbf, 0x33e34297, 0xb2c627b0, 0x83de10c7, + 0x02fb75e0, 0x5ae5dcc8, 0xdbc0b9ef, 0x38d5b226, 0xb9f0d701, + 0xe1ee7e29, 0x60cb1b0e, 0x51d32c79, 0xd0f6495e, 0x88e8e076, + 0x09cd8551}, + {0x00000000, 0x9b73ead4, 0xed96d3e9, 0x76e5393d, 0x005ca193, + 0x9b2f4b47, 0xedca727a, 0x76b998ae, 0x00b94326, 0x9bcaa9f2, + 0xed2f90cf, 0x765c7a1b, 0x00e5e2b5, 0x9b960861, 0xed73315c, + 0x7600db88, 0x0172864c, 0x9a016c98, 0xece455a5, 0x7797bf71, + 0x012e27df, 0x9a5dcd0b, 0xecb8f436, 0x77cb1ee2, 0x01cbc56a, + 0x9ab82fbe, 0xec5d1683, 0x772efc57, 0x019764f9, 0x9ae48e2d, + 0xec01b710, 0x77725dc4, 0x02e50c98, 0x9996e64c, 0xef73df71, + 0x740035a5, 0x02b9ad0b, 0x99ca47df, 0xef2f7ee2, 0x745c9436, + 0x025c4fbe, 0x992fa56a, 0xefca9c57, 0x74b97683, 0x0200ee2d, + 0x997304f9, 0xef963dc4, 0x74e5d710, 0x03978ad4, 0x98e46000, + 0xee01593d, 0x7572b3e9, 0x03cb2b47, 0x98b8c193, 0xee5df8ae, + 0x752e127a, 0x032ec9f2, 0x985d2326, 0xeeb81a1b, 0x75cbf0cf, + 0x03726861, 0x980182b5, 0xeee4bb88, 0x7597515c, 0x05ca1930, + 0x9eb9f3e4, 0xe85ccad9, 0x732f200d, 0x0596b8a3, 0x9ee55277, + 0xe8006b4a, 0x7373819e, 0x05735a16, 0x9e00b0c2, 0xe8e589ff, + 0x7396632b, 0x052ffb85, 0x9e5c1151, 0xe8b9286c, 0x73cac2b8, + 0x04b89f7c, 0x9fcb75a8, 0xe92e4c95, 0x725da641, 0x04e43eef, + 0x9f97d43b, 0xe972ed06, 0x720107d2, 0x0401dc5a, 0x9f72368e, + 0xe9970fb3, 0x72e4e567, 0x045d7dc9, 0x9f2e971d, 0xe9cbae20, + 0x72b844f4, 0x072f15a8, 0x9c5cff7c, 0xeab9c641, 0x71ca2c95, + 0x0773b43b, 0x9c005eef, 0xeae567d2, 0x71968d06, 0x0796568e, + 0x9ce5bc5a, 0xea008567, 0x71736fb3, 0x07caf71d, 0x9cb91dc9, + 0xea5c24f4, 0x712fce20, 0x065d93e4, 0x9d2e7930, 0xebcb400d, + 0x70b8aad9, 0x06013277, 0x9d72d8a3, 0xeb97e19e, 0x70e40b4a, + 0x06e4d0c2, 0x9d973a16, 0xeb72032b, 0x7001e9ff, 0x06b87151, + 0x9dcb9b85, 0xeb2ea2b8, 0x705d486c, 0x0b943260, 0x90e7d8b4, + 0xe602e189, 0x7d710b5d, 0x0bc893f3, 0x90bb7927, 0xe65e401a, + 0x7d2daace, 0x0b2d7146, 0x905e9b92, 0xe6bba2af, 0x7dc8487b, + 0x0b71d0d5, 0x90023a01, 0xe6e7033c, 0x7d94e9e8, 0x0ae6b42c, + 0x91955ef8, 0xe77067c5, 0x7c038d11, 0x0aba15bf, 0x91c9ff6b, + 0xe72cc656, 0x7c5f2c82, 0x0a5ff70a, 0x912c1dde, 0xe7c924e3, + 0x7cbace37, 0x0a035699, 0x9170bc4d, 0xe7958570, 0x7ce66fa4, + 0x09713ef8, 0x9202d42c, 0xe4e7ed11, 0x7f9407c5, 0x092d9f6b, + 0x925e75bf, 0xe4bb4c82, 0x7fc8a656, 0x09c87dde, 0x92bb970a, + 0xe45eae37, 0x7f2d44e3, 0x0994dc4d, 0x92e73699, 0xe4020fa4, + 0x7f71e570, 0x0803b8b4, 0x93705260, 0xe5956b5d, 0x7ee68189, + 0x085f1927, 0x932cf3f3, 0xe5c9cace, 0x7eba201a, 0x08bafb92, + 0x93c91146, 0xe52c287b, 0x7e5fc2af, 0x08e65a01, 0x9395b0d5, + 0xe57089e8, 0x7e03633c, 0x0e5e2b50, 0x952dc184, 0xe3c8f8b9, + 0x78bb126d, 0x0e028ac3, 0x95716017, 0xe394592a, 0x78e7b3fe, + 0x0ee76876, 0x959482a2, 0xe371bb9f, 0x7802514b, 0x0ebbc9e5, + 0x95c82331, 0xe32d1a0c, 0x785ef0d8, 0x0f2cad1c, 0x945f47c8, + 0xe2ba7ef5, 0x79c99421, 0x0f700c8f, 0x9403e65b, 0xe2e6df66, + 0x799535b2, 0x0f95ee3a, 0x94e604ee, 0xe2033dd3, 0x7970d707, + 0x0fc94fa9, 0x94baa57d, 0xe25f9c40, 0x792c7694, 0x0cbb27c8, + 0x97c8cd1c, 0xe12df421, 0x7a5e1ef5, 0x0ce7865b, 0x97946c8f, + 0xe17155b2, 0x7a02bf66, 0x0c0264ee, 0x97718e3a, 0xe194b707, + 0x7ae75dd3, 0x0c5ec57d, 0x972d2fa9, 0xe1c81694, 0x7abbfc40, + 0x0dc9a184, 0x96ba4b50, 0xe05f726d, 0x7b2c98b9, 0x0d950017, + 0x96e6eac3, 0xe003d3fe, 0x7b70392a, 0x0d70e2a2, 0x96030876, + 0xe0e6314b, 0x7b95db9f, 0x0d2c4331, 0x965fa9e5, 0xe0ba90d8, + 0x7bc97a0c}, + {0x00000000, 0x172864c0, 0x2e50c980, 0x3978ad40, 0x5ca19300, + 0x4b89f7c0, 0x72f15a80, 0x65d93e40, 0xb9432600, 0xae6b42c0, + 0x9713ef80, 0x803b8b40, 0xe5e2b500, 0xf2cad1c0, 0xcbb27c80, + 0xdc9a1840, 0xa9f74a41, 0xbedf2e81, 0x87a783c1, 0x908fe701, + 0xf556d941, 0xe27ebd81, 0xdb0610c1, 0xcc2e7401, 0x10b46c41, + 0x079c0881, 0x3ee4a5c1, 0x29ccc101, 0x4c15ff41, 0x5b3d9b81, + 0x624536c1, 0x756d5201, 0x889f92c3, 0x9fb7f603, 0xa6cf5b43, + 0xb1e73f83, 0xd43e01c3, 0xc3166503, 0xfa6ec843, 0xed46ac83, + 0x31dcb4c3, 0x26f4d003, 0x1f8c7d43, 0x08a41983, 0x6d7d27c3, + 0x7a554303, 0x432dee43, 0x54058a83, 0x2168d882, 0x3640bc42, + 0x0f381102, 0x181075c2, 0x7dc94b82, 0x6ae12f42, 0x53998202, + 0x44b1e6c2, 0x982bfe82, 0x8f039a42, 0xb67b3702, 0xa15353c2, + 0xc48a6d82, 0xd3a20942, 0xeadaa402, 0xfdf2c0c2, 0xca4e23c7, + 0xdd664707, 0xe41eea47, 0xf3368e87, 0x96efb0c7, 0x81c7d407, + 0xb8bf7947, 0xaf971d87, 0x730d05c7, 0x64256107, 0x5d5dcc47, + 0x4a75a887, 0x2fac96c7, 0x3884f207, 0x01fc5f47, 0x16d43b87, + 0x63b96986, 0x74910d46, 0x4de9a006, 0x5ac1c4c6, 0x3f18fa86, + 0x28309e46, 0x11483306, 0x066057c6, 0xdafa4f86, 0xcdd22b46, + 0xf4aa8606, 0xe382e2c6, 0x865bdc86, 0x9173b846, 0xa80b1506, + 0xbf2371c6, 0x42d1b104, 0x55f9d5c4, 0x6c817884, 0x7ba91c44, + 0x1e702204, 0x095846c4, 0x3020eb84, 0x27088f44, 0xfb929704, + 0xecbaf3c4, 0xd5c25e84, 0xc2ea3a44, 0xa7330404, 0xb01b60c4, + 0x8963cd84, 0x9e4ba944, 0xeb26fb45, 0xfc0e9f85, 0xc57632c5, + 0xd25e5605, 0xb7876845, 0xa0af0c85, 0x99d7a1c5, 0x8effc505, + 0x5265dd45, 0x454db985, 0x7c3514c5, 0x6b1d7005, 0x0ec44e45, + 0x19ec2a85, 0x209487c5, 0x37bce305, 0x4fed41cf, 0x58c5250f, + 0x61bd884f, 0x7695ec8f, 0x134cd2cf, 0x0464b60f, 0x3d1c1b4f, + 0x2a347f8f, 0xf6ae67cf, 0xe186030f, 0xd8feae4f, 0xcfd6ca8f, + 0xaa0ff4cf, 0xbd27900f, 0x845f3d4f, 0x9377598f, 0xe61a0b8e, + 0xf1326f4e, 0xc84ac20e, 0xdf62a6ce, 0xbabb988e, 0xad93fc4e, + 0x94eb510e, 0x83c335ce, 0x5f592d8e, 0x4871494e, 0x7109e40e, + 0x662180ce, 0x03f8be8e, 0x14d0da4e, 0x2da8770e, 0x3a8013ce, + 0xc772d30c, 0xd05ab7cc, 0xe9221a8c, 0xfe0a7e4c, 0x9bd3400c, + 0x8cfb24cc, 0xb583898c, 0xa2abed4c, 0x7e31f50c, 0x691991cc, + 0x50613c8c, 0x4749584c, 0x2290660c, 0x35b802cc, 0x0cc0af8c, + 0x1be8cb4c, 0x6e85994d, 0x79adfd8d, 0x40d550cd, 0x57fd340d, + 0x32240a4d, 0x250c6e8d, 0x1c74c3cd, 0x0b5ca70d, 0xd7c6bf4d, + 0xc0eedb8d, 0xf99676cd, 0xeebe120d, 0x8b672c4d, 0x9c4f488d, + 0xa537e5cd, 0xb21f810d, 0x85a36208, 0x928b06c8, 0xabf3ab88, + 0xbcdbcf48, 0xd902f108, 0xce2a95c8, 0xf7523888, 0xe07a5c48, + 0x3ce04408, 0x2bc820c8, 0x12b08d88, 0x0598e948, 0x6041d708, + 0x7769b3c8, 0x4e111e88, 0x59397a48, 0x2c542849, 0x3b7c4c89, + 0x0204e1c9, 0x152c8509, 0x70f5bb49, 0x67dddf89, 0x5ea572c9, + 0x498d1609, 0x95170e49, 0x823f6a89, 0xbb47c7c9, 0xac6fa309, + 0xc9b69d49, 0xde9ef989, 0xe7e654c9, 0xf0ce3009, 0x0d3cf0cb, + 0x1a14940b, 0x236c394b, 0x34445d8b, 0x519d63cb, 0x46b5070b, + 0x7fcdaa4b, 0x68e5ce8b, 0xb47fd6cb, 0xa357b20b, 0x9a2f1f4b, + 0x8d077b8b, 0xe8de45cb, 0xfff6210b, 0xc68e8c4b, 0xd1a6e88b, + 0xa4cbba8a, 0xb3e3de4a, 0x8a9b730a, 0x9db317ca, 0xf86a298a, + 0xef424d4a, 0xd63ae00a, 0xc11284ca, 0x1d889c8a, 0x0aa0f84a, + 0x33d8550a, 0x24f031ca, 0x41290f8a, 0x56016b4a, 0x6f79c60a, + 0x7851a2ca}, + {0x00000000, 0x9fda839e, 0xe4c4017d, 0x7b1e82e3, 0x12f904bb, + 0x8d238725, 0xf63d05c6, 0x69e78658, 0x25f20976, 0xba288ae8, + 0xc136080b, 0x5eec8b95, 0x370b0dcd, 0xa8d18e53, 0xd3cf0cb0, + 0x4c158f2e, 0x4be412ec, 0xd43e9172, 0xaf201391, 0x30fa900f, + 0x591d1657, 0xc6c795c9, 0xbdd9172a, 0x220394b4, 0x6e161b9a, + 0xf1cc9804, 0x8ad21ae7, 0x15089979, 0x7cef1f21, 0xe3359cbf, + 0x982b1e5c, 0x07f19dc2, 0x97c825d8, 0x0812a646, 0x730c24a5, + 0xecd6a73b, 0x85312163, 0x1aeba2fd, 0x61f5201e, 0xfe2fa380, + 0xb23a2cae, 0x2de0af30, 0x56fe2dd3, 0xc924ae4d, 0xa0c32815, + 0x3f19ab8b, 0x44072968, 0xdbddaaf6, 0xdc2c3734, 0x43f6b4aa, + 0x38e83649, 0xa732b5d7, 0xced5338f, 0x510fb011, 0x2a1132f2, + 0xb5cbb16c, 0xf9de3e42, 0x6604bddc, 0x1d1a3f3f, 0x82c0bca1, + 0xeb273af9, 0x74fdb967, 0x0fe33b84, 0x9039b81a, 0xf4e14df1, + 0x6b3bce6f, 0x10254c8c, 0x8fffcf12, 0xe618494a, 0x79c2cad4, + 0x02dc4837, 0x9d06cba9, 0xd1134487, 0x4ec9c719, 0x35d745fa, + 0xaa0dc664, 0xc3ea403c, 0x5c30c3a2, 0x272e4141, 0xb8f4c2df, + 0xbf055f1d, 0x20dfdc83, 0x5bc15e60, 0xc41bddfe, 0xadfc5ba6, + 0x3226d838, 0x49385adb, 0xd6e2d945, 0x9af7566b, 0x052dd5f5, + 0x7e335716, 0xe1e9d488, 0x880e52d0, 0x17d4d14e, 0x6cca53ad, + 0xf310d033, 0x63296829, 0xfcf3ebb7, 0x87ed6954, 0x1837eaca, + 0x71d06c92, 0xee0aef0c, 0x95146def, 0x0aceee71, 0x46db615f, + 0xd901e2c1, 0xa21f6022, 0x3dc5e3bc, 0x542265e4, 0xcbf8e67a, + 0xb0e66499, 0x2f3ce707, 0x28cd7ac5, 0xb717f95b, 0xcc097bb8, + 0x53d3f826, 0x3a347e7e, 0xa5eefde0, 0xdef07f03, 0x412afc9d, + 0x0d3f73b3, 0x92e5f02d, 0xe9fb72ce, 0x7621f150, 0x1fc67708, + 0x801cf496, 0xfb027675, 0x64d8f5eb, 0x32b39da3, 0xad691e3d, + 0xd6779cde, 0x49ad1f40, 0x204a9918, 0xbf901a86, 0xc48e9865, + 0x5b541bfb, 0x174194d5, 0x889b174b, 0xf38595a8, 0x6c5f1636, + 0x05b8906e, 0x9a6213f0, 0xe17c9113, 0x7ea6128d, 0x79578f4f, + 0xe68d0cd1, 0x9d938e32, 0x02490dac, 0x6bae8bf4, 0xf474086a, + 0x8f6a8a89, 0x10b00917, 0x5ca58639, 0xc37f05a7, 0xb8618744, + 0x27bb04da, 0x4e5c8282, 0xd186011c, 0xaa9883ff, 0x35420061, + 0xa57bb87b, 0x3aa13be5, 0x41bfb906, 0xde653a98, 0xb782bcc0, + 0x28583f5e, 0x5346bdbd, 0xcc9c3e23, 0x8089b10d, 0x1f533293, + 0x644db070, 0xfb9733ee, 0x9270b5b6, 0x0daa3628, 0x76b4b4cb, + 0xe96e3755, 0xee9faa97, 0x71452909, 0x0a5babea, 0x95812874, + 0xfc66ae2c, 0x63bc2db2, 0x18a2af51, 0x87782ccf, 0xcb6da3e1, + 0x54b7207f, 0x2fa9a29c, 0xb0732102, 0xd994a75a, 0x464e24c4, + 0x3d50a627, 0xa28a25b9, 0xc652d052, 0x598853cc, 0x2296d12f, + 0xbd4c52b1, 0xd4abd4e9, 0x4b715777, 0x306fd594, 0xafb5560a, + 0xe3a0d924, 0x7c7a5aba, 0x0764d859, 0x98be5bc7, 0xf159dd9f, + 0x6e835e01, 0x159ddce2, 0x8a475f7c, 0x8db6c2be, 0x126c4120, + 0x6972c3c3, 0xf6a8405d, 0x9f4fc605, 0x0095459b, 0x7b8bc778, + 0xe45144e6, 0xa844cbc8, 0x379e4856, 0x4c80cab5, 0xd35a492b, + 0xbabdcf73, 0x25674ced, 0x5e79ce0e, 0xc1a34d90, 0x519af58a, + 0xce407614, 0xb55ef4f7, 0x2a847769, 0x4363f131, 0xdcb972af, + 0xa7a7f04c, 0x387d73d2, 0x7468fcfc, 0xebb27f62, 0x90acfd81, + 0x0f767e1f, 0x6691f847, 0xf94b7bd9, 0x8255f93a, 0x1d8f7aa4, + 0x1a7ee766, 0x85a464f8, 0xfebae61b, 0x61606585, 0x0887e3dd, + 0x975d6043, 0xec43e2a0, 0x7399613e, 0x3f8cee10, 0xa0566d8e, + 0xdb48ef6d, 0x44926cf3, 0x2d75eaab, 0xb2af6935, 0xc9b1ebd6, + 0x566b6848}, + {0x00000000, 0x65673b46, 0xcace768c, 0xafa94dca, 0x4eedeb59, + 0x2b8ad01f, 0x84239dd5, 0xe144a693, 0x9ddbd6b2, 0xf8bcedf4, + 0x5715a03e, 0x32729b78, 0xd3363deb, 0xb65106ad, 0x19f84b67, + 0x7c9f7021, 0xe0c6ab25, 0x85a19063, 0x2a08dda9, 0x4f6fe6ef, + 0xae2b407c, 0xcb4c7b3a, 0x64e536f0, 0x01820db6, 0x7d1d7d97, + 0x187a46d1, 0xb7d30b1b, 0xd2b4305d, 0x33f096ce, 0x5697ad88, + 0xf93ee042, 0x9c59db04, 0x1afc500b, 0x7f9b6b4d, 0xd0322687, + 0xb5551dc1, 0x5411bb52, 0x31768014, 0x9edfcdde, 0xfbb8f698, + 0x872786b9, 0xe240bdff, 0x4de9f035, 0x288ecb73, 0xc9ca6de0, + 0xacad56a6, 0x03041b6c, 0x6663202a, 0xfa3afb2e, 0x9f5dc068, + 0x30f48da2, 0x5593b6e4, 0xb4d71077, 0xd1b02b31, 0x7e1966fb, + 0x1b7e5dbd, 0x67e12d9c, 0x028616da, 0xad2f5b10, 0xc8486056, + 0x290cc6c5, 0x4c6bfd83, 0xe3c2b049, 0x86a58b0f, 0x35f8a016, + 0x509f9b50, 0xff36d69a, 0x9a51eddc, 0x7b154b4f, 0x1e727009, + 0xb1db3dc3, 0xd4bc0685, 0xa82376a4, 0xcd444de2, 0x62ed0028, + 0x078a3b6e, 0xe6ce9dfd, 0x83a9a6bb, 0x2c00eb71, 0x4967d037, + 0xd53e0b33, 0xb0593075, 0x1ff07dbf, 0x7a9746f9, 0x9bd3e06a, + 0xfeb4db2c, 0x511d96e6, 0x347aada0, 0x48e5dd81, 0x2d82e6c7, + 0x822bab0d, 0xe74c904b, 0x060836d8, 0x636f0d9e, 0xccc64054, + 0xa9a17b12, 0x2f04f01d, 0x4a63cb5b, 0xe5ca8691, 0x80adbdd7, + 0x61e91b44, 0x048e2002, 0xab276dc8, 0xce40568e, 0xb2df26af, + 0xd7b81de9, 0x78115023, 0x1d766b65, 0xfc32cdf6, 0x9955f6b0, + 0x36fcbb7a, 0x539b803c, 0xcfc25b38, 0xaaa5607e, 0x050c2db4, + 0x606b16f2, 0x812fb061, 0xe4488b27, 0x4be1c6ed, 0x2e86fdab, + 0x52198d8a, 0x377eb6cc, 0x98d7fb06, 0xfdb0c040, 0x1cf466d3, + 0x79935d95, 0xd63a105f, 0xb35d2b19, 0x6bf1402c, 0x0e967b6a, + 0xa13f36a0, 0xc4580de6, 0x251cab75, 0x407b9033, 0xefd2ddf9, + 0x8ab5e6bf, 0xf62a969e, 0x934dadd8, 0x3ce4e012, 0x5983db54, + 0xb8c77dc7, 0xdda04681, 0x72090b4b, 0x176e300d, 0x8b37eb09, + 0xee50d04f, 0x41f99d85, 0x249ea6c3, 0xc5da0050, 0xa0bd3b16, + 0x0f1476dc, 0x6a734d9a, 0x16ec3dbb, 0x738b06fd, 0xdc224b37, + 0xb9457071, 0x5801d6e2, 0x3d66eda4, 0x92cfa06e, 0xf7a89b28, + 0x710d1027, 0x146a2b61, 0xbbc366ab, 0xdea45ded, 0x3fe0fb7e, + 0x5a87c038, 0xf52e8df2, 0x9049b6b4, 0xecd6c695, 0x89b1fdd3, + 0x2618b019, 0x437f8b5f, 0xa23b2dcc, 0xc75c168a, 0x68f55b40, + 0x0d926006, 0x91cbbb02, 0xf4ac8044, 0x5b05cd8e, 0x3e62f6c8, + 0xdf26505b, 0xba416b1d, 0x15e826d7, 0x708f1d91, 0x0c106db0, + 0x697756f6, 0xc6de1b3c, 0xa3b9207a, 0x42fd86e9, 0x279abdaf, + 0x8833f065, 0xed54cb23, 0x5e09e03a, 0x3b6edb7c, 0x94c796b6, + 0xf1a0adf0, 0x10e40b63, 0x75833025, 0xda2a7def, 0xbf4d46a9, + 0xc3d23688, 0xa6b50dce, 0x091c4004, 0x6c7b7b42, 0x8d3fddd1, + 0xe858e697, 0x47f1ab5d, 0x2296901b, 0xbecf4b1f, 0xdba87059, + 0x74013d93, 0x116606d5, 0xf022a046, 0x95459b00, 0x3aecd6ca, + 0x5f8bed8c, 0x23149dad, 0x4673a6eb, 0xe9daeb21, 0x8cbdd067, + 0x6df976f4, 0x089e4db2, 0xa7370078, 0xc2503b3e, 0x44f5b031, + 0x21928b77, 0x8e3bc6bd, 0xeb5cfdfb, 0x0a185b68, 0x6f7f602e, + 0xc0d62de4, 0xa5b116a2, 0xd92e6683, 0xbc495dc5, 0x13e0100f, + 0x76872b49, 0x97c38dda, 0xf2a4b69c, 0x5d0dfb56, 0x386ac010, + 0xa4331b14, 0xc1542052, 0x6efd6d98, 0x0b9a56de, 0xeadef04d, + 0x8fb9cb0b, 0x201086c1, 0x4577bd87, 0x39e8cda6, 0x5c8ff6e0, + 0xf326bb2a, 0x9641806c, 0x770526ff, 0x12621db9, 0xbdcb5073, + 0xd8ac6b35}, + {0x00000000, 0xd7e28058, 0x74b406f1, 0xa35686a9, 0xe9680de2, + 0x3e8a8dba, 0x9ddc0b13, 0x4a3e8b4b, 0x09a11d85, 0xde439ddd, + 0x7d151b74, 0xaaf79b2c, 0xe0c91067, 0x372b903f, 0x947d1696, + 0x439f96ce, 0x13423b0a, 0xc4a0bb52, 0x67f63dfb, 0xb014bda3, + 0xfa2a36e8, 0x2dc8b6b0, 0x8e9e3019, 0x597cb041, 0x1ae3268f, + 0xcd01a6d7, 0x6e57207e, 0xb9b5a026, 0xf38b2b6d, 0x2469ab35, + 0x873f2d9c, 0x50ddadc4, 0x26847614, 0xf166f64c, 0x523070e5, + 0x85d2f0bd, 0xcfec7bf6, 0x180efbae, 0xbb587d07, 0x6cbafd5f, + 0x2f256b91, 0xf8c7ebc9, 0x5b916d60, 0x8c73ed38, 0xc64d6673, + 0x11afe62b, 0xb2f96082, 0x651be0da, 0x35c64d1e, 0xe224cd46, + 0x41724bef, 0x9690cbb7, 0xdcae40fc, 0x0b4cc0a4, 0xa81a460d, + 0x7ff8c655, 0x3c67509b, 0xeb85d0c3, 0x48d3566a, 0x9f31d632, + 0xd50f5d79, 0x02eddd21, 0xa1bb5b88, 0x7659dbd0, 0x4d08ec28, + 0x9aea6c70, 0x39bcead9, 0xee5e6a81, 0xa460e1ca, 0x73826192, + 0xd0d4e73b, 0x07366763, 0x44a9f1ad, 0x934b71f5, 0x301df75c, + 0xe7ff7704, 0xadc1fc4f, 0x7a237c17, 0xd975fabe, 0x0e977ae6, + 0x5e4ad722, 0x89a8577a, 0x2afed1d3, 0xfd1c518b, 0xb722dac0, + 0x60c05a98, 0xc396dc31, 0x14745c69, 0x57ebcaa7, 0x80094aff, + 0x235fcc56, 0xf4bd4c0e, 0xbe83c745, 0x6961471d, 0xca37c1b4, + 0x1dd541ec, 0x6b8c9a3c, 0xbc6e1a64, 0x1f389ccd, 0xc8da1c95, + 0x82e497de, 0x55061786, 0xf650912f, 0x21b21177, 0x622d87b9, + 0xb5cf07e1, 0x16998148, 0xc17b0110, 0x8b458a5b, 0x5ca70a03, + 0xfff18caa, 0x28130cf2, 0x78cea136, 0xaf2c216e, 0x0c7aa7c7, + 0xdb98279f, 0x91a6acd4, 0x46442c8c, 0xe512aa25, 0x32f02a7d, + 0x716fbcb3, 0xa68d3ceb, 0x05dbba42, 0xd2393a1a, 0x9807b151, + 0x4fe53109, 0xecb3b7a0, 0x3b5137f8, 0x9a11d850, 0x4df35808, + 0xeea5dea1, 0x39475ef9, 0x7379d5b2, 0xa49b55ea, 0x07cdd343, + 0xd02f531b, 0x93b0c5d5, 0x4452458d, 0xe704c324, 0x30e6437c, + 0x7ad8c837, 0xad3a486f, 0x0e6ccec6, 0xd98e4e9e, 0x8953e35a, + 0x5eb16302, 0xfde7e5ab, 0x2a0565f3, 0x603beeb8, 0xb7d96ee0, + 0x148fe849, 0xc36d6811, 0x80f2fedf, 0x57107e87, 0xf446f82e, + 0x23a47876, 0x699af33d, 0xbe787365, 0x1d2ef5cc, 0xcacc7594, + 0xbc95ae44, 0x6b772e1c, 0xc821a8b5, 0x1fc328ed, 0x55fda3a6, + 0x821f23fe, 0x2149a557, 0xf6ab250f, 0xb534b3c1, 0x62d63399, + 0xc180b530, 0x16623568, 0x5c5cbe23, 0x8bbe3e7b, 0x28e8b8d2, + 0xff0a388a, 0xafd7954e, 0x78351516, 0xdb6393bf, 0x0c8113e7, + 0x46bf98ac, 0x915d18f4, 0x320b9e5d, 0xe5e91e05, 0xa67688cb, + 0x71940893, 0xd2c28e3a, 0x05200e62, 0x4f1e8529, 0x98fc0571, + 0x3baa83d8, 0xec480380, 0xd7193478, 0x00fbb420, 0xa3ad3289, + 0x744fb2d1, 0x3e71399a, 0xe993b9c2, 0x4ac53f6b, 0x9d27bf33, + 0xdeb829fd, 0x095aa9a5, 0xaa0c2f0c, 0x7deeaf54, 0x37d0241f, + 0xe032a447, 0x436422ee, 0x9486a2b6, 0xc45b0f72, 0x13b98f2a, + 0xb0ef0983, 0x670d89db, 0x2d330290, 0xfad182c8, 0x59870461, + 0x8e658439, 0xcdfa12f7, 0x1a1892af, 0xb94e1406, 0x6eac945e, + 0x24921f15, 0xf3709f4d, 0x502619e4, 0x87c499bc, 0xf19d426c, + 0x267fc234, 0x8529449d, 0x52cbc4c5, 0x18f54f8e, 0xcf17cfd6, + 0x6c41497f, 0xbba3c927, 0xf83c5fe9, 0x2fdedfb1, 0x8c885918, + 0x5b6ad940, 0x1154520b, 0xc6b6d253, 0x65e054fa, 0xb202d4a2, + 0xe2df7966, 0x353df93e, 0x966b7f97, 0x4189ffcf, 0x0bb77484, + 0xdc55f4dc, 0x7f037275, 0xa8e1f22d, 0xeb7e64e3, 0x3c9ce4bb, + 0x9fca6212, 0x4828e24a, 0x02166901, 0xd5f4e959, 0x76a26ff0, + 0xa140efa8}, + {0x00000000, 0xef52b6e1, 0x05d46b83, 0xea86dd62, 0x0ba8d706, + 0xe4fa61e7, 0x0e7cbc85, 0xe12e0a64, 0x1751ae0c, 0xf80318ed, + 0x1285c58f, 0xfdd7736e, 0x1cf9790a, 0xf3abcfeb, 0x192d1289, + 0xf67fa468, 0x2ea35c18, 0xc1f1eaf9, 0x2b77379b, 0xc425817a, + 0x250b8b1e, 0xca593dff, 0x20dfe09d, 0xcf8d567c, 0x39f2f214, + 0xd6a044f5, 0x3c269997, 0xd3742f76, 0x325a2512, 0xdd0893f3, + 0x378e4e91, 0xd8dcf870, 0x5d46b830, 0xb2140ed1, 0x5892d3b3, + 0xb7c06552, 0x56ee6f36, 0xb9bcd9d7, 0x533a04b5, 0xbc68b254, + 0x4a17163c, 0xa545a0dd, 0x4fc37dbf, 0xa091cb5e, 0x41bfc13a, + 0xaeed77db, 0x446baab9, 0xab391c58, 0x73e5e428, 0x9cb752c9, + 0x76318fab, 0x9963394a, 0x784d332e, 0x971f85cf, 0x7d9958ad, + 0x92cbee4c, 0x64b44a24, 0x8be6fcc5, 0x616021a7, 0x8e329746, + 0x6f1c9d22, 0x804e2bc3, 0x6ac8f6a1, 0x859a4040, 0xba8d7060, + 0x55dfc681, 0xbf591be3, 0x500bad02, 0xb125a766, 0x5e771187, + 0xb4f1cce5, 0x5ba37a04, 0xaddcde6c, 0x428e688d, 0xa808b5ef, + 0x475a030e, 0xa674096a, 0x4926bf8b, 0xa3a062e9, 0x4cf2d408, + 0x942e2c78, 0x7b7c9a99, 0x91fa47fb, 0x7ea8f11a, 0x9f86fb7e, + 0x70d44d9f, 0x9a5290fd, 0x7500261c, 0x837f8274, 0x6c2d3495, + 0x86abe9f7, 0x69f95f16, 0x88d75572, 0x6785e393, 0x8d033ef1, + 0x62518810, 0xe7cbc850, 0x08997eb1, 0xe21fa3d3, 0x0d4d1532, + 0xec631f56, 0x0331a9b7, 0xe9b774d5, 0x06e5c234, 0xf09a665c, + 0x1fc8d0bd, 0xf54e0ddf, 0x1a1cbb3e, 0xfb32b15a, 0x146007bb, + 0xfee6dad9, 0x11b46c38, 0xc9689448, 0x263a22a9, 0xccbcffcb, + 0x23ee492a, 0xc2c0434e, 0x2d92f5af, 0xc71428cd, 0x28469e2c, + 0xde393a44, 0x316b8ca5, 0xdbed51c7, 0x34bfe726, 0xd591ed42, + 0x3ac35ba3, 0xd04586c1, 0x3f173020, 0xae6be681, 0x41395060, + 0xabbf8d02, 0x44ed3be3, 0xa5c33187, 0x4a918766, 0xa0175a04, + 0x4f45ece5, 0xb93a488d, 0x5668fe6c, 0xbcee230e, 0x53bc95ef, + 0xb2929f8b, 0x5dc0296a, 0xb746f408, 0x581442e9, 0x80c8ba99, + 0x6f9a0c78, 0x851cd11a, 0x6a4e67fb, 0x8b606d9f, 0x6432db7e, + 0x8eb4061c, 0x61e6b0fd, 0x97991495, 0x78cba274, 0x924d7f16, + 0x7d1fc9f7, 0x9c31c393, 0x73637572, 0x99e5a810, 0x76b71ef1, + 0xf32d5eb1, 0x1c7fe850, 0xf6f93532, 0x19ab83d3, 0xf88589b7, + 0x17d73f56, 0xfd51e234, 0x120354d5, 0xe47cf0bd, 0x0b2e465c, + 0xe1a89b3e, 0x0efa2ddf, 0xefd427bb, 0x0086915a, 0xea004c38, + 0x0552fad9, 0xdd8e02a9, 0x32dcb448, 0xd85a692a, 0x3708dfcb, + 0xd626d5af, 0x3974634e, 0xd3f2be2c, 0x3ca008cd, 0xcadfaca5, + 0x258d1a44, 0xcf0bc726, 0x205971c7, 0xc1777ba3, 0x2e25cd42, + 0xc4a31020, 0x2bf1a6c1, 0x14e696e1, 0xfbb42000, 0x1132fd62, + 0xfe604b83, 0x1f4e41e7, 0xf01cf706, 0x1a9a2a64, 0xf5c89c85, + 0x03b738ed, 0xece58e0c, 0x0663536e, 0xe931e58f, 0x081fefeb, + 0xe74d590a, 0x0dcb8468, 0xe2993289, 0x3a45caf9, 0xd5177c18, + 0x3f91a17a, 0xd0c3179b, 0x31ed1dff, 0xdebfab1e, 0x3439767c, + 0xdb6bc09d, 0x2d1464f5, 0xc246d214, 0x28c00f76, 0xc792b997, + 0x26bcb3f3, 0xc9ee0512, 0x2368d870, 0xcc3a6e91, 0x49a02ed1, + 0xa6f29830, 0x4c744552, 0xa326f3b3, 0x4208f9d7, 0xad5a4f36, + 0x47dc9254, 0xa88e24b5, 0x5ef180dd, 0xb1a3363c, 0x5b25eb5e, + 0xb4775dbf, 0x555957db, 0xba0be13a, 0x508d3c58, 0xbfdf8ab9, + 0x670372c9, 0x8851c428, 0x62d7194a, 0x8d85afab, 0x6caba5cf, + 0x83f9132e, 0x697fce4c, 0x862d78ad, 0x7052dcc5, 0x9f006a24, + 0x7586b746, 0x9ad401a7, 0x7bfa0bc3, 0x94a8bd22, 0x7e2e6040, + 0x917cd6a1}, + {0x00000000, 0x87a6cb43, 0xd43c90c7, 0x539a5b84, 0x730827cf, + 0xf4aeec8c, 0xa734b708, 0x20927c4b, 0xe6104f9e, 0x61b684dd, + 0x322cdf59, 0xb58a141a, 0x95186851, 0x12bea312, 0x4124f896, + 0xc68233d5, 0x1751997d, 0x90f7523e, 0xc36d09ba, 0x44cbc2f9, + 0x6459beb2, 0xe3ff75f1, 0xb0652e75, 0x37c3e536, 0xf141d6e3, + 0x76e71da0, 0x257d4624, 0xa2db8d67, 0x8249f12c, 0x05ef3a6f, + 0x567561eb, 0xd1d3aaa8, 0x2ea332fa, 0xa905f9b9, 0xfa9fa23d, + 0x7d39697e, 0x5dab1535, 0xda0dde76, 0x899785f2, 0x0e314eb1, + 0xc8b37d64, 0x4f15b627, 0x1c8feda3, 0x9b2926e0, 0xbbbb5aab, + 0x3c1d91e8, 0x6f87ca6c, 0xe821012f, 0x39f2ab87, 0xbe5460c4, + 0xedce3b40, 0x6a68f003, 0x4afa8c48, 0xcd5c470b, 0x9ec61c8f, + 0x1960d7cc, 0xdfe2e419, 0x58442f5a, 0x0bde74de, 0x8c78bf9d, + 0xaceac3d6, 0x2b4c0895, 0x78d65311, 0xff709852, 0x5d4665f4, + 0xdae0aeb7, 0x897af533, 0x0edc3e70, 0x2e4e423b, 0xa9e88978, + 0xfa72d2fc, 0x7dd419bf, 0xbb562a6a, 0x3cf0e129, 0x6f6abaad, + 0xe8cc71ee, 0xc85e0da5, 0x4ff8c6e6, 0x1c629d62, 0x9bc45621, + 0x4a17fc89, 0xcdb137ca, 0x9e2b6c4e, 0x198da70d, 0x391fdb46, + 0xbeb91005, 0xed234b81, 0x6a8580c2, 0xac07b317, 0x2ba17854, + 0x783b23d0, 0xff9de893, 0xdf0f94d8, 0x58a95f9b, 0x0b33041f, + 0x8c95cf5c, 0x73e5570e, 0xf4439c4d, 0xa7d9c7c9, 0x207f0c8a, + 0x00ed70c1, 0x874bbb82, 0xd4d1e006, 0x53772b45, 0x95f51890, + 0x1253d3d3, 0x41c98857, 0xc66f4314, 0xe6fd3f5f, 0x615bf41c, + 0x32c1af98, 0xb56764db, 0x64b4ce73, 0xe3120530, 0xb0885eb4, + 0x372e95f7, 0x17bce9bc, 0x901a22ff, 0xc380797b, 0x4426b238, + 0x82a481ed, 0x05024aae, 0x5698112a, 0xd13eda69, 0xf1aca622, + 0x760a6d61, 0x259036e5, 0xa236fda6, 0xba8ccbe8, 0x3d2a00ab, + 0x6eb05b2f, 0xe916906c, 0xc984ec27, 0x4e222764, 0x1db87ce0, + 0x9a1eb7a3, 0x5c9c8476, 0xdb3a4f35, 0x88a014b1, 0x0f06dff2, + 0x2f94a3b9, 0xa83268fa, 0xfba8337e, 0x7c0ef83d, 0xaddd5295, + 0x2a7b99d6, 0x79e1c252, 0xfe470911, 0xded5755a, 0x5973be19, + 0x0ae9e59d, 0x8d4f2ede, 0x4bcd1d0b, 0xcc6bd648, 0x9ff18dcc, + 0x1857468f, 0x38c53ac4, 0xbf63f187, 0xecf9aa03, 0x6b5f6140, + 0x942ff912, 0x13893251, 0x401369d5, 0xc7b5a296, 0xe727dedd, + 0x6081159e, 0x331b4e1a, 0xb4bd8559, 0x723fb68c, 0xf5997dcf, + 0xa603264b, 0x21a5ed08, 0x01379143, 0x86915a00, 0xd50b0184, + 0x52adcac7, 0x837e606f, 0x04d8ab2c, 0x5742f0a8, 0xd0e43beb, + 0xf07647a0, 0x77d08ce3, 0x244ad767, 0xa3ec1c24, 0x656e2ff1, + 0xe2c8e4b2, 0xb152bf36, 0x36f47475, 0x1666083e, 0x91c0c37d, + 0xc25a98f9, 0x45fc53ba, 0xe7caae1c, 0x606c655f, 0x33f63edb, + 0xb450f598, 0x94c289d3, 0x13644290, 0x40fe1914, 0xc758d257, + 0x01dae182, 0x867c2ac1, 0xd5e67145, 0x5240ba06, 0x72d2c64d, + 0xf5740d0e, 0xa6ee568a, 0x21489dc9, 0xf09b3761, 0x773dfc22, + 0x24a7a7a6, 0xa3016ce5, 0x839310ae, 0x0435dbed, 0x57af8069, + 0xd0094b2a, 0x168b78ff, 0x912db3bc, 0xc2b7e838, 0x4511237b, + 0x65835f30, 0xe2259473, 0xb1bfcff7, 0x361904b4, 0xc9699ce6, + 0x4ecf57a5, 0x1d550c21, 0x9af3c762, 0xba61bb29, 0x3dc7706a, + 0x6e5d2bee, 0xe9fbe0ad, 0x2f79d378, 0xa8df183b, 0xfb4543bf, + 0x7ce388fc, 0x5c71f4b7, 0xdbd73ff4, 0x884d6470, 0x0febaf33, + 0xde38059b, 0x599eced8, 0x0a04955c, 0x8da25e1f, 0xad302254, + 0x2a96e917, 0x790cb293, 0xfeaa79d0, 0x38284a05, 0xbf8e8146, + 0xec14dac2, 0x6bb21181, 0x4b206dca, 0xcc86a689, 0x9f1cfd0d, + 0x18ba364e}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x0000000000000000, 0x43cba68700000000, 0xc7903cd400000000, + 0x845b9a5300000000, 0xcf27087300000000, 0x8cecaef400000000, + 0x08b734a700000000, 0x4b7c922000000000, 0x9e4f10e600000000, + 0xdd84b66100000000, 0x59df2c3200000000, 0x1a148ab500000000, + 0x5168189500000000, 0x12a3be1200000000, 0x96f8244100000000, + 0xd53382c600000000, 0x7d99511700000000, 0x3e52f79000000000, + 0xba096dc300000000, 0xf9c2cb4400000000, 0xb2be596400000000, + 0xf175ffe300000000, 0x752e65b000000000, 0x36e5c33700000000, + 0xe3d641f100000000, 0xa01de77600000000, 0x24467d2500000000, + 0x678ddba200000000, 0x2cf1498200000000, 0x6f3aef0500000000, + 0xeb61755600000000, 0xa8aad3d100000000, 0xfa32a32e00000000, + 0xb9f905a900000000, 0x3da29ffa00000000, 0x7e69397d00000000, + 0x3515ab5d00000000, 0x76de0dda00000000, 0xf285978900000000, + 0xb14e310e00000000, 0x647db3c800000000, 0x27b6154f00000000, + 0xa3ed8f1c00000000, 0xe026299b00000000, 0xab5abbbb00000000, + 0xe8911d3c00000000, 0x6cca876f00000000, 0x2f0121e800000000, + 0x87abf23900000000, 0xc46054be00000000, 0x403bceed00000000, + 0x03f0686a00000000, 0x488cfa4a00000000, 0x0b475ccd00000000, + 0x8f1cc69e00000000, 0xccd7601900000000, 0x19e4e2df00000000, + 0x5a2f445800000000, 0xde74de0b00000000, 0x9dbf788c00000000, + 0xd6c3eaac00000000, 0x95084c2b00000000, 0x1153d67800000000, + 0x529870ff00000000, 0xf465465d00000000, 0xb7aee0da00000000, + 0x33f57a8900000000, 0x703edc0e00000000, 0x3b424e2e00000000, + 0x7889e8a900000000, 0xfcd272fa00000000, 0xbf19d47d00000000, + 0x6a2a56bb00000000, 0x29e1f03c00000000, 0xadba6a6f00000000, + 0xee71cce800000000, 0xa50d5ec800000000, 0xe6c6f84f00000000, + 0x629d621c00000000, 0x2156c49b00000000, 0x89fc174a00000000, + 0xca37b1cd00000000, 0x4e6c2b9e00000000, 0x0da78d1900000000, + 0x46db1f3900000000, 0x0510b9be00000000, 0x814b23ed00000000, + 0xc280856a00000000, 0x17b307ac00000000, 0x5478a12b00000000, + 0xd0233b7800000000, 0x93e89dff00000000, 0xd8940fdf00000000, + 0x9b5fa95800000000, 0x1f04330b00000000, 0x5ccf958c00000000, + 0x0e57e57300000000, 0x4d9c43f400000000, 0xc9c7d9a700000000, + 0x8a0c7f2000000000, 0xc170ed0000000000, 0x82bb4b8700000000, + 0x06e0d1d400000000, 0x452b775300000000, 0x9018f59500000000, + 0xd3d3531200000000, 0x5788c94100000000, 0x14436fc600000000, + 0x5f3ffde600000000, 0x1cf45b6100000000, 0x98afc13200000000, + 0xdb6467b500000000, 0x73ceb46400000000, 0x300512e300000000, + 0xb45e88b000000000, 0xf7952e3700000000, 0xbce9bc1700000000, + 0xff221a9000000000, 0x7b7980c300000000, 0x38b2264400000000, + 0xed81a48200000000, 0xae4a020500000000, 0x2a11985600000000, + 0x69da3ed100000000, 0x22a6acf100000000, 0x616d0a7600000000, + 0xe536902500000000, 0xa6fd36a200000000, 0xe8cb8cba00000000, + 0xab002a3d00000000, 0x2f5bb06e00000000, 0x6c9016e900000000, + 0x27ec84c900000000, 0x6427224e00000000, 0xe07cb81d00000000, + 0xa3b71e9a00000000, 0x76849c5c00000000, 0x354f3adb00000000, + 0xb114a08800000000, 0xf2df060f00000000, 0xb9a3942f00000000, + 0xfa6832a800000000, 0x7e33a8fb00000000, 0x3df80e7c00000000, + 0x9552ddad00000000, 0xd6997b2a00000000, 0x52c2e17900000000, + 0x110947fe00000000, 0x5a75d5de00000000, 0x19be735900000000, + 0x9de5e90a00000000, 0xde2e4f8d00000000, 0x0b1dcd4b00000000, + 0x48d66bcc00000000, 0xcc8df19f00000000, 0x8f46571800000000, + 0xc43ac53800000000, 0x87f163bf00000000, 0x03aaf9ec00000000, + 0x40615f6b00000000, 0x12f92f9400000000, 0x5132891300000000, + 0xd569134000000000, 0x96a2b5c700000000, 0xddde27e700000000, + 0x9e15816000000000, 0x1a4e1b3300000000, 0x5985bdb400000000, + 0x8cb63f7200000000, 0xcf7d99f500000000, 0x4b2603a600000000, + 0x08eda52100000000, 0x4391370100000000, 0x005a918600000000, + 0x84010bd500000000, 0xc7caad5200000000, 0x6f607e8300000000, + 0x2cabd80400000000, 0xa8f0425700000000, 0xeb3be4d000000000, + 0xa04776f000000000, 0xe38cd07700000000, 0x67d74a2400000000, + 0x241ceca300000000, 0xf12f6e6500000000, 0xb2e4c8e200000000, + 0x36bf52b100000000, 0x7574f43600000000, 0x3e08661600000000, + 0x7dc3c09100000000, 0xf9985ac200000000, 0xba53fc4500000000, + 0x1caecae700000000, 0x5f656c6000000000, 0xdb3ef63300000000, + 0x98f550b400000000, 0xd389c29400000000, 0x9042641300000000, + 0x1419fe4000000000, 0x57d258c700000000, 0x82e1da0100000000, + 0xc12a7c8600000000, 0x4571e6d500000000, 0x06ba405200000000, + 0x4dc6d27200000000, 0x0e0d74f500000000, 0x8a56eea600000000, + 0xc99d482100000000, 0x61379bf000000000, 0x22fc3d7700000000, + 0xa6a7a72400000000, 0xe56c01a300000000, 0xae10938300000000, + 0xeddb350400000000, 0x6980af5700000000, 0x2a4b09d000000000, + 0xff788b1600000000, 0xbcb32d9100000000, 0x38e8b7c200000000, + 0x7b23114500000000, 0x305f836500000000, 0x739425e200000000, + 0xf7cfbfb100000000, 0xb404193600000000, 0xe69c69c900000000, + 0xa557cf4e00000000, 0x210c551d00000000, 0x62c7f39a00000000, + 0x29bb61ba00000000, 0x6a70c73d00000000, 0xee2b5d6e00000000, + 0xade0fbe900000000, 0x78d3792f00000000, 0x3b18dfa800000000, + 0xbf4345fb00000000, 0xfc88e37c00000000, 0xb7f4715c00000000, + 0xf43fd7db00000000, 0x70644d8800000000, 0x33afeb0f00000000, + 0x9b0538de00000000, 0xd8ce9e5900000000, 0x5c95040a00000000, + 0x1f5ea28d00000000, 0x542230ad00000000, 0x17e9962a00000000, + 0x93b20c7900000000, 0xd079aafe00000000, 0x054a283800000000, + 0x46818ebf00000000, 0xc2da14ec00000000, 0x8111b26b00000000, + 0xca6d204b00000000, 0x89a686cc00000000, 0x0dfd1c9f00000000, + 0x4e36ba1800000000}, + {0x0000000000000000, 0xe1b652ef00000000, 0x836bd40500000000, + 0x62dd86ea00000000, 0x06d7a80b00000000, 0xe761fae400000000, + 0x85bc7c0e00000000, 0x640a2ee100000000, 0x0cae511700000000, + 0xed1803f800000000, 0x8fc5851200000000, 0x6e73d7fd00000000, + 0x0a79f91c00000000, 0xebcfabf300000000, 0x89122d1900000000, + 0x68a47ff600000000, 0x185ca32e00000000, 0xf9eaf1c100000000, + 0x9b37772b00000000, 0x7a8125c400000000, 0x1e8b0b2500000000, + 0xff3d59ca00000000, 0x9de0df2000000000, 0x7c568dcf00000000, + 0x14f2f23900000000, 0xf544a0d600000000, 0x9799263c00000000, + 0x762f74d300000000, 0x12255a3200000000, 0xf39308dd00000000, + 0x914e8e3700000000, 0x70f8dcd800000000, 0x30b8465d00000000, + 0xd10e14b200000000, 0xb3d3925800000000, 0x5265c0b700000000, + 0x366fee5600000000, 0xd7d9bcb900000000, 0xb5043a5300000000, + 0x54b268bc00000000, 0x3c16174a00000000, 0xdda045a500000000, + 0xbf7dc34f00000000, 0x5ecb91a000000000, 0x3ac1bf4100000000, + 0xdb77edae00000000, 0xb9aa6b4400000000, 0x581c39ab00000000, + 0x28e4e57300000000, 0xc952b79c00000000, 0xab8f317600000000, + 0x4a39639900000000, 0x2e334d7800000000, 0xcf851f9700000000, + 0xad58997d00000000, 0x4ceecb9200000000, 0x244ab46400000000, + 0xc5fce68b00000000, 0xa721606100000000, 0x4697328e00000000, + 0x229d1c6f00000000, 0xc32b4e8000000000, 0xa1f6c86a00000000, + 0x40409a8500000000, 0x60708dba00000000, 0x81c6df5500000000, + 0xe31b59bf00000000, 0x02ad0b5000000000, 0x66a725b100000000, + 0x8711775e00000000, 0xe5ccf1b400000000, 0x047aa35b00000000, + 0x6cdedcad00000000, 0x8d688e4200000000, 0xefb508a800000000, + 0x0e035a4700000000, 0x6a0974a600000000, 0x8bbf264900000000, + 0xe962a0a300000000, 0x08d4f24c00000000, 0x782c2e9400000000, + 0x999a7c7b00000000, 0xfb47fa9100000000, 0x1af1a87e00000000, + 0x7efb869f00000000, 0x9f4dd47000000000, 0xfd90529a00000000, + 0x1c26007500000000, 0x74827f8300000000, 0x95342d6c00000000, + 0xf7e9ab8600000000, 0x165ff96900000000, 0x7255d78800000000, + 0x93e3856700000000, 0xf13e038d00000000, 0x1088516200000000, + 0x50c8cbe700000000, 0xb17e990800000000, 0xd3a31fe200000000, + 0x32154d0d00000000, 0x561f63ec00000000, 0xb7a9310300000000, + 0xd574b7e900000000, 0x34c2e50600000000, 0x5c669af000000000, + 0xbdd0c81f00000000, 0xdf0d4ef500000000, 0x3ebb1c1a00000000, + 0x5ab132fb00000000, 0xbb07601400000000, 0xd9dae6fe00000000, + 0x386cb41100000000, 0x489468c900000000, 0xa9223a2600000000, + 0xcbffbccc00000000, 0x2a49ee2300000000, 0x4e43c0c200000000, + 0xaff5922d00000000, 0xcd2814c700000000, 0x2c9e462800000000, + 0x443a39de00000000, 0xa58c6b3100000000, 0xc751eddb00000000, + 0x26e7bf3400000000, 0x42ed91d500000000, 0xa35bc33a00000000, + 0xc18645d000000000, 0x2030173f00000000, 0x81e66bae00000000, + 0x6050394100000000, 0x028dbfab00000000, 0xe33bed4400000000, + 0x8731c3a500000000, 0x6687914a00000000, 0x045a17a000000000, + 0xe5ec454f00000000, 0x8d483ab900000000, 0x6cfe685600000000, + 0x0e23eebc00000000, 0xef95bc5300000000, 0x8b9f92b200000000, + 0x6a29c05d00000000, 0x08f446b700000000, 0xe942145800000000, + 0x99bac88000000000, 0x780c9a6f00000000, 0x1ad11c8500000000, + 0xfb674e6a00000000, 0x9f6d608b00000000, 0x7edb326400000000, + 0x1c06b48e00000000, 0xfdb0e66100000000, 0x9514999700000000, + 0x74a2cb7800000000, 0x167f4d9200000000, 0xf7c91f7d00000000, + 0x93c3319c00000000, 0x7275637300000000, 0x10a8e59900000000, + 0xf11eb77600000000, 0xb15e2df300000000, 0x50e87f1c00000000, + 0x3235f9f600000000, 0xd383ab1900000000, 0xb78985f800000000, + 0x563fd71700000000, 0x34e251fd00000000, 0xd554031200000000, + 0xbdf07ce400000000, 0x5c462e0b00000000, 0x3e9ba8e100000000, + 0xdf2dfa0e00000000, 0xbb27d4ef00000000, 0x5a91860000000000, + 0x384c00ea00000000, 0xd9fa520500000000, 0xa9028edd00000000, + 0x48b4dc3200000000, 0x2a695ad800000000, 0xcbdf083700000000, + 0xafd526d600000000, 0x4e63743900000000, 0x2cbef2d300000000, + 0xcd08a03c00000000, 0xa5acdfca00000000, 0x441a8d2500000000, + 0x26c70bcf00000000, 0xc771592000000000, 0xa37b77c100000000, + 0x42cd252e00000000, 0x2010a3c400000000, 0xc1a6f12b00000000, + 0xe196e61400000000, 0x0020b4fb00000000, 0x62fd321100000000, + 0x834b60fe00000000, 0xe7414e1f00000000, 0x06f71cf000000000, + 0x642a9a1a00000000, 0x859cc8f500000000, 0xed38b70300000000, + 0x0c8ee5ec00000000, 0x6e53630600000000, 0x8fe531e900000000, + 0xebef1f0800000000, 0x0a594de700000000, 0x6884cb0d00000000, + 0x893299e200000000, 0xf9ca453a00000000, 0x187c17d500000000, + 0x7aa1913f00000000, 0x9b17c3d000000000, 0xff1ded3100000000, + 0x1eabbfde00000000, 0x7c76393400000000, 0x9dc06bdb00000000, + 0xf564142d00000000, 0x14d246c200000000, 0x760fc02800000000, + 0x97b992c700000000, 0xf3b3bc2600000000, 0x1205eec900000000, + 0x70d8682300000000, 0x916e3acc00000000, 0xd12ea04900000000, + 0x3098f2a600000000, 0x5245744c00000000, 0xb3f326a300000000, + 0xd7f9084200000000, 0x364f5aad00000000, 0x5492dc4700000000, + 0xb5248ea800000000, 0xdd80f15e00000000, 0x3c36a3b100000000, + 0x5eeb255b00000000, 0xbf5d77b400000000, 0xdb57595500000000, + 0x3ae10bba00000000, 0x583c8d5000000000, 0xb98adfbf00000000, + 0xc972036700000000, 0x28c4518800000000, 0x4a19d76200000000, + 0xabaf858d00000000, 0xcfa5ab6c00000000, 0x2e13f98300000000, + 0x4cce7f6900000000, 0xad782d8600000000, 0xc5dc527000000000, + 0x246a009f00000000, 0x46b7867500000000, 0xa701d49a00000000, + 0xc30bfa7b00000000, 0x22bda89400000000, 0x40602e7e00000000, + 0xa1d67c9100000000}, + {0x0000000000000000, 0x5880e2d700000000, 0xf106b47400000000, + 0xa98656a300000000, 0xe20d68e900000000, 0xba8d8a3e00000000, + 0x130bdc9d00000000, 0x4b8b3e4a00000000, 0x851da10900000000, + 0xdd9d43de00000000, 0x741b157d00000000, 0x2c9bf7aa00000000, + 0x6710c9e000000000, 0x3f902b3700000000, 0x96167d9400000000, + 0xce969f4300000000, 0x0a3b421300000000, 0x52bba0c400000000, + 0xfb3df66700000000, 0xa3bd14b000000000, 0xe8362afa00000000, + 0xb0b6c82d00000000, 0x19309e8e00000000, 0x41b07c5900000000, + 0x8f26e31a00000000, 0xd7a601cd00000000, 0x7e20576e00000000, + 0x26a0b5b900000000, 0x6d2b8bf300000000, 0x35ab692400000000, + 0x9c2d3f8700000000, 0xc4addd5000000000, 0x1476842600000000, + 0x4cf666f100000000, 0xe570305200000000, 0xbdf0d28500000000, + 0xf67beccf00000000, 0xaefb0e1800000000, 0x077d58bb00000000, + 0x5ffdba6c00000000, 0x916b252f00000000, 0xc9ebc7f800000000, + 0x606d915b00000000, 0x38ed738c00000000, 0x73664dc600000000, + 0x2be6af1100000000, 0x8260f9b200000000, 0xdae01b6500000000, + 0x1e4dc63500000000, 0x46cd24e200000000, 0xef4b724100000000, + 0xb7cb909600000000, 0xfc40aedc00000000, 0xa4c04c0b00000000, + 0x0d461aa800000000, 0x55c6f87f00000000, 0x9b50673c00000000, + 0xc3d085eb00000000, 0x6a56d34800000000, 0x32d6319f00000000, + 0x795d0fd500000000, 0x21dded0200000000, 0x885bbba100000000, + 0xd0db597600000000, 0x28ec084d00000000, 0x706cea9a00000000, + 0xd9eabc3900000000, 0x816a5eee00000000, 0xcae160a400000000, + 0x9261827300000000, 0x3be7d4d000000000, 0x6367360700000000, + 0xadf1a94400000000, 0xf5714b9300000000, 0x5cf71d3000000000, + 0x0477ffe700000000, 0x4ffcc1ad00000000, 0x177c237a00000000, + 0xbefa75d900000000, 0xe67a970e00000000, 0x22d74a5e00000000, + 0x7a57a88900000000, 0xd3d1fe2a00000000, 0x8b511cfd00000000, + 0xc0da22b700000000, 0x985ac06000000000, 0x31dc96c300000000, + 0x695c741400000000, 0xa7caeb5700000000, 0xff4a098000000000, + 0x56cc5f2300000000, 0x0e4cbdf400000000, 0x45c783be00000000, + 0x1d47616900000000, 0xb4c137ca00000000, 0xec41d51d00000000, + 0x3c9a8c6b00000000, 0x641a6ebc00000000, 0xcd9c381f00000000, + 0x951cdac800000000, 0xde97e48200000000, 0x8617065500000000, + 0x2f9150f600000000, 0x7711b22100000000, 0xb9872d6200000000, + 0xe107cfb500000000, 0x4881991600000000, 0x10017bc100000000, + 0x5b8a458b00000000, 0x030aa75c00000000, 0xaa8cf1ff00000000, + 0xf20c132800000000, 0x36a1ce7800000000, 0x6e212caf00000000, + 0xc7a77a0c00000000, 0x9f2798db00000000, 0xd4aca69100000000, + 0x8c2c444600000000, 0x25aa12e500000000, 0x7d2af03200000000, + 0xb3bc6f7100000000, 0xeb3c8da600000000, 0x42badb0500000000, + 0x1a3a39d200000000, 0x51b1079800000000, 0x0931e54f00000000, + 0xa0b7b3ec00000000, 0xf837513b00000000, 0x50d8119a00000000, + 0x0858f34d00000000, 0xa1dea5ee00000000, 0xf95e473900000000, + 0xb2d5797300000000, 0xea559ba400000000, 0x43d3cd0700000000, + 0x1b532fd000000000, 0xd5c5b09300000000, 0x8d45524400000000, + 0x24c304e700000000, 0x7c43e63000000000, 0x37c8d87a00000000, + 0x6f483aad00000000, 0xc6ce6c0e00000000, 0x9e4e8ed900000000, + 0x5ae3538900000000, 0x0263b15e00000000, 0xabe5e7fd00000000, + 0xf365052a00000000, 0xb8ee3b6000000000, 0xe06ed9b700000000, + 0x49e88f1400000000, 0x11686dc300000000, 0xdffef28000000000, + 0x877e105700000000, 0x2ef846f400000000, 0x7678a42300000000, + 0x3df39a6900000000, 0x657378be00000000, 0xccf52e1d00000000, + 0x9475ccca00000000, 0x44ae95bc00000000, 0x1c2e776b00000000, + 0xb5a821c800000000, 0xed28c31f00000000, 0xa6a3fd5500000000, + 0xfe231f8200000000, 0x57a5492100000000, 0x0f25abf600000000, + 0xc1b334b500000000, 0x9933d66200000000, 0x30b580c100000000, + 0x6835621600000000, 0x23be5c5c00000000, 0x7b3ebe8b00000000, + 0xd2b8e82800000000, 0x8a380aff00000000, 0x4e95d7af00000000, + 0x1615357800000000, 0xbf9363db00000000, 0xe713810c00000000, + 0xac98bf4600000000, 0xf4185d9100000000, 0x5d9e0b3200000000, + 0x051ee9e500000000, 0xcb8876a600000000, 0x9308947100000000, + 0x3a8ec2d200000000, 0x620e200500000000, 0x29851e4f00000000, + 0x7105fc9800000000, 0xd883aa3b00000000, 0x800348ec00000000, + 0x783419d700000000, 0x20b4fb0000000000, 0x8932ada300000000, + 0xd1b24f7400000000, 0x9a39713e00000000, 0xc2b993e900000000, + 0x6b3fc54a00000000, 0x33bf279d00000000, 0xfd29b8de00000000, + 0xa5a95a0900000000, 0x0c2f0caa00000000, 0x54afee7d00000000, + 0x1f24d03700000000, 0x47a432e000000000, 0xee22644300000000, + 0xb6a2869400000000, 0x720f5bc400000000, 0x2a8fb91300000000, + 0x8309efb000000000, 0xdb890d6700000000, 0x9002332d00000000, + 0xc882d1fa00000000, 0x6104875900000000, 0x3984658e00000000, + 0xf712facd00000000, 0xaf92181a00000000, 0x06144eb900000000, + 0x5e94ac6e00000000, 0x151f922400000000, 0x4d9f70f300000000, + 0xe419265000000000, 0xbc99c48700000000, 0x6c429df100000000, + 0x34c27f2600000000, 0x9d44298500000000, 0xc5c4cb5200000000, + 0x8e4ff51800000000, 0xd6cf17cf00000000, 0x7f49416c00000000, + 0x27c9a3bb00000000, 0xe95f3cf800000000, 0xb1dfde2f00000000, + 0x1859888c00000000, 0x40d96a5b00000000, 0x0b52541100000000, + 0x53d2b6c600000000, 0xfa54e06500000000, 0xa2d402b200000000, + 0x6679dfe200000000, 0x3ef93d3500000000, 0x977f6b9600000000, + 0xcfff894100000000, 0x8474b70b00000000, 0xdcf455dc00000000, + 0x7572037f00000000, 0x2df2e1a800000000, 0xe3647eeb00000000, + 0xbbe49c3c00000000, 0x1262ca9f00000000, 0x4ae2284800000000, + 0x0169160200000000, 0x59e9f4d500000000, 0xf06fa27600000000, + 0xa8ef40a100000000}, + {0x0000000000000000, 0x463b676500000000, 0x8c76ceca00000000, + 0xca4da9af00000000, 0x59ebed4e00000000, 0x1fd08a2b00000000, + 0xd59d238400000000, 0x93a644e100000000, 0xb2d6db9d00000000, + 0xf4edbcf800000000, 0x3ea0155700000000, 0x789b723200000000, + 0xeb3d36d300000000, 0xad0651b600000000, 0x674bf81900000000, + 0x21709f7c00000000, 0x25abc6e000000000, 0x6390a18500000000, + 0xa9dd082a00000000, 0xefe66f4f00000000, 0x7c402bae00000000, + 0x3a7b4ccb00000000, 0xf036e56400000000, 0xb60d820100000000, + 0x977d1d7d00000000, 0xd1467a1800000000, 0x1b0bd3b700000000, + 0x5d30b4d200000000, 0xce96f03300000000, 0x88ad975600000000, + 0x42e03ef900000000, 0x04db599c00000000, 0x0b50fc1a00000000, + 0x4d6b9b7f00000000, 0x872632d000000000, 0xc11d55b500000000, + 0x52bb115400000000, 0x1480763100000000, 0xdecddf9e00000000, + 0x98f6b8fb00000000, 0xb986278700000000, 0xffbd40e200000000, + 0x35f0e94d00000000, 0x73cb8e2800000000, 0xe06dcac900000000, + 0xa656adac00000000, 0x6c1b040300000000, 0x2a20636600000000, + 0x2efb3afa00000000, 0x68c05d9f00000000, 0xa28df43000000000, + 0xe4b6935500000000, 0x7710d7b400000000, 0x312bb0d100000000, + 0xfb66197e00000000, 0xbd5d7e1b00000000, 0x9c2de16700000000, + 0xda16860200000000, 0x105b2fad00000000, 0x566048c800000000, + 0xc5c60c2900000000, 0x83fd6b4c00000000, 0x49b0c2e300000000, + 0x0f8ba58600000000, 0x16a0f83500000000, 0x509b9f5000000000, + 0x9ad636ff00000000, 0xdced519a00000000, 0x4f4b157b00000000, + 0x0970721e00000000, 0xc33ddbb100000000, 0x8506bcd400000000, + 0xa47623a800000000, 0xe24d44cd00000000, 0x2800ed6200000000, + 0x6e3b8a0700000000, 0xfd9dcee600000000, 0xbba6a98300000000, + 0x71eb002c00000000, 0x37d0674900000000, 0x330b3ed500000000, + 0x753059b000000000, 0xbf7df01f00000000, 0xf946977a00000000, + 0x6ae0d39b00000000, 0x2cdbb4fe00000000, 0xe6961d5100000000, + 0xa0ad7a3400000000, 0x81dde54800000000, 0xc7e6822d00000000, + 0x0dab2b8200000000, 0x4b904ce700000000, 0xd836080600000000, + 0x9e0d6f6300000000, 0x5440c6cc00000000, 0x127ba1a900000000, + 0x1df0042f00000000, 0x5bcb634a00000000, 0x9186cae500000000, + 0xd7bdad8000000000, 0x441be96100000000, 0x02208e0400000000, + 0xc86d27ab00000000, 0x8e5640ce00000000, 0xaf26dfb200000000, + 0xe91db8d700000000, 0x2350117800000000, 0x656b761d00000000, + 0xf6cd32fc00000000, 0xb0f6559900000000, 0x7abbfc3600000000, + 0x3c809b5300000000, 0x385bc2cf00000000, 0x7e60a5aa00000000, + 0xb42d0c0500000000, 0xf2166b6000000000, 0x61b02f8100000000, + 0x278b48e400000000, 0xedc6e14b00000000, 0xabfd862e00000000, + 0x8a8d195200000000, 0xccb67e3700000000, 0x06fbd79800000000, + 0x40c0b0fd00000000, 0xd366f41c00000000, 0x955d937900000000, + 0x5f103ad600000000, 0x192b5db300000000, 0x2c40f16b00000000, + 0x6a7b960e00000000, 0xa0363fa100000000, 0xe60d58c400000000, + 0x75ab1c2500000000, 0x33907b4000000000, 0xf9ddd2ef00000000, + 0xbfe6b58a00000000, 0x9e962af600000000, 0xd8ad4d9300000000, + 0x12e0e43c00000000, 0x54db835900000000, 0xc77dc7b800000000, + 0x8146a0dd00000000, 0x4b0b097200000000, 0x0d306e1700000000, + 0x09eb378b00000000, 0x4fd050ee00000000, 0x859df94100000000, + 0xc3a69e2400000000, 0x5000dac500000000, 0x163bbda000000000, + 0xdc76140f00000000, 0x9a4d736a00000000, 0xbb3dec1600000000, + 0xfd068b7300000000, 0x374b22dc00000000, 0x717045b900000000, + 0xe2d6015800000000, 0xa4ed663d00000000, 0x6ea0cf9200000000, + 0x289ba8f700000000, 0x27100d7100000000, 0x612b6a1400000000, + 0xab66c3bb00000000, 0xed5da4de00000000, 0x7efbe03f00000000, + 0x38c0875a00000000, 0xf28d2ef500000000, 0xb4b6499000000000, + 0x95c6d6ec00000000, 0xd3fdb18900000000, 0x19b0182600000000, + 0x5f8b7f4300000000, 0xcc2d3ba200000000, 0x8a165cc700000000, + 0x405bf56800000000, 0x0660920d00000000, 0x02bbcb9100000000, + 0x4480acf400000000, 0x8ecd055b00000000, 0xc8f6623e00000000, + 0x5b5026df00000000, 0x1d6b41ba00000000, 0xd726e81500000000, + 0x911d8f7000000000, 0xb06d100c00000000, 0xf656776900000000, + 0x3c1bdec600000000, 0x7a20b9a300000000, 0xe986fd4200000000, + 0xafbd9a2700000000, 0x65f0338800000000, 0x23cb54ed00000000, + 0x3ae0095e00000000, 0x7cdb6e3b00000000, 0xb696c79400000000, + 0xf0ada0f100000000, 0x630be41000000000, 0x2530837500000000, + 0xef7d2ada00000000, 0xa9464dbf00000000, 0x8836d2c300000000, + 0xce0db5a600000000, 0x04401c0900000000, 0x427b7b6c00000000, + 0xd1dd3f8d00000000, 0x97e658e800000000, 0x5dabf14700000000, + 0x1b90962200000000, 0x1f4bcfbe00000000, 0x5970a8db00000000, + 0x933d017400000000, 0xd506661100000000, 0x46a022f000000000, + 0x009b459500000000, 0xcad6ec3a00000000, 0x8ced8b5f00000000, + 0xad9d142300000000, 0xeba6734600000000, 0x21ebdae900000000, + 0x67d0bd8c00000000, 0xf476f96d00000000, 0xb24d9e0800000000, + 0x780037a700000000, 0x3e3b50c200000000, 0x31b0f54400000000, + 0x778b922100000000, 0xbdc63b8e00000000, 0xfbfd5ceb00000000, + 0x685b180a00000000, 0x2e607f6f00000000, 0xe42dd6c000000000, + 0xa216b1a500000000, 0x83662ed900000000, 0xc55d49bc00000000, + 0x0f10e01300000000, 0x492b877600000000, 0xda8dc39700000000, + 0x9cb6a4f200000000, 0x56fb0d5d00000000, 0x10c06a3800000000, + 0x141b33a400000000, 0x522054c100000000, 0x986dfd6e00000000, + 0xde569a0b00000000, 0x4df0deea00000000, 0x0bcbb98f00000000, + 0xc186102000000000, 0x87bd774500000000, 0xa6cde83900000000, + 0xe0f68f5c00000000, 0x2abb26f300000000, 0x6c80419600000000, + 0xff26057700000000, 0xb91d621200000000, 0x7350cbbd00000000, + 0x356bacd800000000}, + {0x0000000000000000, 0x9e83da9f00000000, 0x7d01c4e400000000, + 0xe3821e7b00000000, 0xbb04f91200000000, 0x2587238d00000000, + 0xc6053df600000000, 0x5886e76900000000, 0x7609f22500000000, + 0xe88a28ba00000000, 0x0b0836c100000000, 0x958bec5e00000000, + 0xcd0d0b3700000000, 0x538ed1a800000000, 0xb00ccfd300000000, + 0x2e8f154c00000000, 0xec12e44b00000000, 0x72913ed400000000, + 0x911320af00000000, 0x0f90fa3000000000, 0x57161d5900000000, + 0xc995c7c600000000, 0x2a17d9bd00000000, 0xb494032200000000, + 0x9a1b166e00000000, 0x0498ccf100000000, 0xe71ad28a00000000, + 0x7999081500000000, 0x211fef7c00000000, 0xbf9c35e300000000, + 0x5c1e2b9800000000, 0xc29df10700000000, 0xd825c89700000000, + 0x46a6120800000000, 0xa5240c7300000000, 0x3ba7d6ec00000000, + 0x6321318500000000, 0xfda2eb1a00000000, 0x1e20f56100000000, + 0x80a32ffe00000000, 0xae2c3ab200000000, 0x30afe02d00000000, + 0xd32dfe5600000000, 0x4dae24c900000000, 0x1528c3a000000000, + 0x8bab193f00000000, 0x6829074400000000, 0xf6aadddb00000000, + 0x34372cdc00000000, 0xaab4f64300000000, 0x4936e83800000000, + 0xd7b532a700000000, 0x8f33d5ce00000000, 0x11b00f5100000000, + 0xf232112a00000000, 0x6cb1cbb500000000, 0x423edef900000000, + 0xdcbd046600000000, 0x3f3f1a1d00000000, 0xa1bcc08200000000, + 0xf93a27eb00000000, 0x67b9fd7400000000, 0x843be30f00000000, + 0x1ab8399000000000, 0xf14de1f400000000, 0x6fce3b6b00000000, + 0x8c4c251000000000, 0x12cfff8f00000000, 0x4a4918e600000000, + 0xd4cac27900000000, 0x3748dc0200000000, 0xa9cb069d00000000, + 0x874413d100000000, 0x19c7c94e00000000, 0xfa45d73500000000, + 0x64c60daa00000000, 0x3c40eac300000000, 0xa2c3305c00000000, + 0x41412e2700000000, 0xdfc2f4b800000000, 0x1d5f05bf00000000, + 0x83dcdf2000000000, 0x605ec15b00000000, 0xfedd1bc400000000, + 0xa65bfcad00000000, 0x38d8263200000000, 0xdb5a384900000000, + 0x45d9e2d600000000, 0x6b56f79a00000000, 0xf5d52d0500000000, + 0x1657337e00000000, 0x88d4e9e100000000, 0xd0520e8800000000, + 0x4ed1d41700000000, 0xad53ca6c00000000, 0x33d010f300000000, + 0x2968296300000000, 0xb7ebf3fc00000000, 0x5469ed8700000000, + 0xcaea371800000000, 0x926cd07100000000, 0x0cef0aee00000000, + 0xef6d149500000000, 0x71eece0a00000000, 0x5f61db4600000000, + 0xc1e201d900000000, 0x22601fa200000000, 0xbce3c53d00000000, + 0xe465225400000000, 0x7ae6f8cb00000000, 0x9964e6b000000000, + 0x07e73c2f00000000, 0xc57acd2800000000, 0x5bf917b700000000, + 0xb87b09cc00000000, 0x26f8d35300000000, 0x7e7e343a00000000, + 0xe0fdeea500000000, 0x037ff0de00000000, 0x9dfc2a4100000000, + 0xb3733f0d00000000, 0x2df0e59200000000, 0xce72fbe900000000, + 0x50f1217600000000, 0x0877c61f00000000, 0x96f41c8000000000, + 0x757602fb00000000, 0xebf5d86400000000, 0xa39db33200000000, + 0x3d1e69ad00000000, 0xde9c77d600000000, 0x401fad4900000000, + 0x18994a2000000000, 0x861a90bf00000000, 0x65988ec400000000, + 0xfb1b545b00000000, 0xd594411700000000, 0x4b179b8800000000, + 0xa89585f300000000, 0x36165f6c00000000, 0x6e90b80500000000, + 0xf013629a00000000, 0x13917ce100000000, 0x8d12a67e00000000, + 0x4f8f577900000000, 0xd10c8de600000000, 0x328e939d00000000, + 0xac0d490200000000, 0xf48bae6b00000000, 0x6a0874f400000000, + 0x898a6a8f00000000, 0x1709b01000000000, 0x3986a55c00000000, + 0xa7057fc300000000, 0x448761b800000000, 0xda04bb2700000000, + 0x82825c4e00000000, 0x1c0186d100000000, 0xff8398aa00000000, + 0x6100423500000000, 0x7bb87ba500000000, 0xe53ba13a00000000, + 0x06b9bf4100000000, 0x983a65de00000000, 0xc0bc82b700000000, + 0x5e3f582800000000, 0xbdbd465300000000, 0x233e9ccc00000000, + 0x0db1898000000000, 0x9332531f00000000, 0x70b04d6400000000, + 0xee3397fb00000000, 0xb6b5709200000000, 0x2836aa0d00000000, + 0xcbb4b47600000000, 0x55376ee900000000, 0x97aa9fee00000000, + 0x0929457100000000, 0xeaab5b0a00000000, 0x7428819500000000, + 0x2cae66fc00000000, 0xb22dbc6300000000, 0x51afa21800000000, + 0xcf2c788700000000, 0xe1a36dcb00000000, 0x7f20b75400000000, + 0x9ca2a92f00000000, 0x022173b000000000, 0x5aa794d900000000, + 0xc4244e4600000000, 0x27a6503d00000000, 0xb9258aa200000000, + 0x52d052c600000000, 0xcc53885900000000, 0x2fd1962200000000, + 0xb1524cbd00000000, 0xe9d4abd400000000, 0x7757714b00000000, + 0x94d56f3000000000, 0x0a56b5af00000000, 0x24d9a0e300000000, + 0xba5a7a7c00000000, 0x59d8640700000000, 0xc75bbe9800000000, + 0x9fdd59f100000000, 0x015e836e00000000, 0xe2dc9d1500000000, + 0x7c5f478a00000000, 0xbec2b68d00000000, 0x20416c1200000000, + 0xc3c3726900000000, 0x5d40a8f600000000, 0x05c64f9f00000000, + 0x9b45950000000000, 0x78c78b7b00000000, 0xe64451e400000000, + 0xc8cb44a800000000, 0x56489e3700000000, 0xb5ca804c00000000, + 0x2b495ad300000000, 0x73cfbdba00000000, 0xed4c672500000000, + 0x0ece795e00000000, 0x904da3c100000000, 0x8af59a5100000000, + 0x147640ce00000000, 0xf7f45eb500000000, 0x6977842a00000000, + 0x31f1634300000000, 0xaf72b9dc00000000, 0x4cf0a7a700000000, + 0xd2737d3800000000, 0xfcfc687400000000, 0x627fb2eb00000000, + 0x81fdac9000000000, 0x1f7e760f00000000, 0x47f8916600000000, + 0xd97b4bf900000000, 0x3af9558200000000, 0xa47a8f1d00000000, + 0x66e77e1a00000000, 0xf864a48500000000, 0x1be6bafe00000000, + 0x8565606100000000, 0xdde3870800000000, 0x43605d9700000000, + 0xa0e243ec00000000, 0x3e61997300000000, 0x10ee8c3f00000000, + 0x8e6d56a000000000, 0x6def48db00000000, 0xf36c924400000000, + 0xabea752d00000000, 0x3569afb200000000, 0xd6ebb1c900000000, + 0x48686b5600000000}, + {0x0000000000000000, 0xc064281700000000, 0x80c9502e00000000, + 0x40ad783900000000, 0x0093a15c00000000, 0xc0f7894b00000000, + 0x805af17200000000, 0x403ed96500000000, 0x002643b900000000, + 0xc0426bae00000000, 0x80ef139700000000, 0x408b3b8000000000, + 0x00b5e2e500000000, 0xc0d1caf200000000, 0x807cb2cb00000000, + 0x40189adc00000000, 0x414af7a900000000, 0x812edfbe00000000, + 0xc183a78700000000, 0x01e78f9000000000, 0x41d956f500000000, + 0x81bd7ee200000000, 0xc11006db00000000, 0x01742ecc00000000, + 0x416cb41000000000, 0x81089c0700000000, 0xc1a5e43e00000000, + 0x01c1cc2900000000, 0x41ff154c00000000, 0x819b3d5b00000000, + 0xc136456200000000, 0x01526d7500000000, 0xc3929f8800000000, + 0x03f6b79f00000000, 0x435bcfa600000000, 0x833fe7b100000000, + 0xc3013ed400000000, 0x036516c300000000, 0x43c86efa00000000, + 0x83ac46ed00000000, 0xc3b4dc3100000000, 0x03d0f42600000000, + 0x437d8c1f00000000, 0x8319a40800000000, 0xc3277d6d00000000, + 0x0343557a00000000, 0x43ee2d4300000000, 0x838a055400000000, + 0x82d8682100000000, 0x42bc403600000000, 0x0211380f00000000, + 0xc275101800000000, 0x824bc97d00000000, 0x422fe16a00000000, + 0x0282995300000000, 0xc2e6b14400000000, 0x82fe2b9800000000, + 0x429a038f00000000, 0x02377bb600000000, 0xc25353a100000000, + 0x826d8ac400000000, 0x4209a2d300000000, 0x02a4daea00000000, + 0xc2c0f2fd00000000, 0xc7234eca00000000, 0x074766dd00000000, + 0x47ea1ee400000000, 0x878e36f300000000, 0xc7b0ef9600000000, + 0x07d4c78100000000, 0x4779bfb800000000, 0x871d97af00000000, + 0xc7050d7300000000, 0x0761256400000000, 0x47cc5d5d00000000, + 0x87a8754a00000000, 0xc796ac2f00000000, 0x07f2843800000000, + 0x475ffc0100000000, 0x873bd41600000000, 0x8669b96300000000, + 0x460d917400000000, 0x06a0e94d00000000, 0xc6c4c15a00000000, + 0x86fa183f00000000, 0x469e302800000000, 0x0633481100000000, + 0xc657600600000000, 0x864ffada00000000, 0x462bd2cd00000000, + 0x0686aaf400000000, 0xc6e282e300000000, 0x86dc5b8600000000, + 0x46b8739100000000, 0x06150ba800000000, 0xc67123bf00000000, + 0x04b1d14200000000, 0xc4d5f95500000000, 0x8478816c00000000, + 0x441ca97b00000000, 0x0422701e00000000, 0xc446580900000000, + 0x84eb203000000000, 0x448f082700000000, 0x049792fb00000000, + 0xc4f3baec00000000, 0x845ec2d500000000, 0x443aeac200000000, + 0x040433a700000000, 0xc4601bb000000000, 0x84cd638900000000, + 0x44a94b9e00000000, 0x45fb26eb00000000, 0x859f0efc00000000, + 0xc53276c500000000, 0x05565ed200000000, 0x456887b700000000, + 0x850cafa000000000, 0xc5a1d79900000000, 0x05c5ff8e00000000, + 0x45dd655200000000, 0x85b94d4500000000, 0xc514357c00000000, + 0x05701d6b00000000, 0x454ec40e00000000, 0x852aec1900000000, + 0xc587942000000000, 0x05e3bc3700000000, 0xcf41ed4f00000000, + 0x0f25c55800000000, 0x4f88bd6100000000, 0x8fec957600000000, + 0xcfd24c1300000000, 0x0fb6640400000000, 0x4f1b1c3d00000000, + 0x8f7f342a00000000, 0xcf67aef600000000, 0x0f0386e100000000, + 0x4faefed800000000, 0x8fcad6cf00000000, 0xcff40faa00000000, + 0x0f9027bd00000000, 0x4f3d5f8400000000, 0x8f59779300000000, + 0x8e0b1ae600000000, 0x4e6f32f100000000, 0x0ec24ac800000000, + 0xcea662df00000000, 0x8e98bbba00000000, 0x4efc93ad00000000, + 0x0e51eb9400000000, 0xce35c38300000000, 0x8e2d595f00000000, + 0x4e49714800000000, 0x0ee4097100000000, 0xce80216600000000, + 0x8ebef80300000000, 0x4edad01400000000, 0x0e77a82d00000000, + 0xce13803a00000000, 0x0cd372c700000000, 0xccb75ad000000000, + 0x8c1a22e900000000, 0x4c7e0afe00000000, 0x0c40d39b00000000, + 0xcc24fb8c00000000, 0x8c8983b500000000, 0x4cedaba200000000, + 0x0cf5317e00000000, 0xcc91196900000000, 0x8c3c615000000000, + 0x4c58494700000000, 0x0c66902200000000, 0xcc02b83500000000, + 0x8cafc00c00000000, 0x4ccbe81b00000000, 0x4d99856e00000000, + 0x8dfdad7900000000, 0xcd50d54000000000, 0x0d34fd5700000000, + 0x4d0a243200000000, 0x8d6e0c2500000000, 0xcdc3741c00000000, + 0x0da75c0b00000000, 0x4dbfc6d700000000, 0x8ddbeec000000000, + 0xcd7696f900000000, 0x0d12beee00000000, 0x4d2c678b00000000, + 0x8d484f9c00000000, 0xcde537a500000000, 0x0d811fb200000000, + 0x0862a38500000000, 0xc8068b9200000000, 0x88abf3ab00000000, + 0x48cfdbbc00000000, 0x08f102d900000000, 0xc8952ace00000000, + 0x883852f700000000, 0x485c7ae000000000, 0x0844e03c00000000, + 0xc820c82b00000000, 0x888db01200000000, 0x48e9980500000000, + 0x08d7416000000000, 0xc8b3697700000000, 0x881e114e00000000, + 0x487a395900000000, 0x4928542c00000000, 0x894c7c3b00000000, + 0xc9e1040200000000, 0x09852c1500000000, 0x49bbf57000000000, + 0x89dfdd6700000000, 0xc972a55e00000000, 0x09168d4900000000, + 0x490e179500000000, 0x896a3f8200000000, 0xc9c747bb00000000, + 0x09a36fac00000000, 0x499db6c900000000, 0x89f99ede00000000, + 0xc954e6e700000000, 0x0930cef000000000, 0xcbf03c0d00000000, + 0x0b94141a00000000, 0x4b396c2300000000, 0x8b5d443400000000, + 0xcb639d5100000000, 0x0b07b54600000000, 0x4baacd7f00000000, + 0x8bcee56800000000, 0xcbd67fb400000000, 0x0bb257a300000000, + 0x4b1f2f9a00000000, 0x8b7b078d00000000, 0xcb45dee800000000, + 0x0b21f6ff00000000, 0x4b8c8ec600000000, 0x8be8a6d100000000, + 0x8abacba400000000, 0x4adee3b300000000, 0x0a739b8a00000000, + 0xca17b39d00000000, 0x8a296af800000000, 0x4a4d42ef00000000, + 0x0ae03ad600000000, 0xca8412c100000000, 0x8a9c881d00000000, + 0x4af8a00a00000000, 0x0a55d83300000000, 0xca31f02400000000, + 0x8a0f294100000000, 0x4a6b015600000000, 0x0ac6796f00000000, + 0xcaa2517800000000}, + {0x0000000000000000, 0xd4ea739b00000000, 0xe9d396ed00000000, + 0x3d39e57600000000, 0x93a15c0000000000, 0x474b2f9b00000000, + 0x7a72caed00000000, 0xae98b97600000000, 0x2643b90000000000, + 0xf2a9ca9b00000000, 0xcf902fed00000000, 0x1b7a5c7600000000, + 0xb5e2e50000000000, 0x6108969b00000000, 0x5c3173ed00000000, + 0x88db007600000000, 0x4c86720100000000, 0x986c019a00000000, + 0xa555e4ec00000000, 0x71bf977700000000, 0xdf272e0100000000, + 0x0bcd5d9a00000000, 0x36f4b8ec00000000, 0xe21ecb7700000000, + 0x6ac5cb0100000000, 0xbe2fb89a00000000, 0x83165dec00000000, + 0x57fc2e7700000000, 0xf964970100000000, 0x2d8ee49a00000000, + 0x10b701ec00000000, 0xc45d727700000000, 0x980ce50200000000, + 0x4ce6969900000000, 0x71df73ef00000000, 0xa535007400000000, + 0x0badb90200000000, 0xdf47ca9900000000, 0xe27e2fef00000000, + 0x36945c7400000000, 0xbe4f5c0200000000, 0x6aa52f9900000000, + 0x579ccaef00000000, 0x8376b97400000000, 0x2dee000200000000, + 0xf904739900000000, 0xc43d96ef00000000, 0x10d7e57400000000, + 0xd48a970300000000, 0x0060e49800000000, 0x3d5901ee00000000, + 0xe9b3727500000000, 0x472bcb0300000000, 0x93c1b89800000000, + 0xaef85dee00000000, 0x7a122e7500000000, 0xf2c92e0300000000, + 0x26235d9800000000, 0x1b1ab8ee00000000, 0xcff0cb7500000000, + 0x6168720300000000, 0xb582019800000000, 0x88bbe4ee00000000, + 0x5c51977500000000, 0x3019ca0500000000, 0xe4f3b99e00000000, + 0xd9ca5ce800000000, 0x0d202f7300000000, 0xa3b8960500000000, + 0x7752e59e00000000, 0x4a6b00e800000000, 0x9e81737300000000, + 0x165a730500000000, 0xc2b0009e00000000, 0xff89e5e800000000, + 0x2b63967300000000, 0x85fb2f0500000000, 0x51115c9e00000000, + 0x6c28b9e800000000, 0xb8c2ca7300000000, 0x7c9fb80400000000, + 0xa875cb9f00000000, 0x954c2ee900000000, 0x41a65d7200000000, + 0xef3ee40400000000, 0x3bd4979f00000000, 0x06ed72e900000000, + 0xd207017200000000, 0x5adc010400000000, 0x8e36729f00000000, + 0xb30f97e900000000, 0x67e5e47200000000, 0xc97d5d0400000000, + 0x1d972e9f00000000, 0x20aecbe900000000, 0xf444b87200000000, + 0xa8152f0700000000, 0x7cff5c9c00000000, 0x41c6b9ea00000000, + 0x952cca7100000000, 0x3bb4730700000000, 0xef5e009c00000000, + 0xd267e5ea00000000, 0x068d967100000000, 0x8e56960700000000, + 0x5abce59c00000000, 0x678500ea00000000, 0xb36f737100000000, + 0x1df7ca0700000000, 0xc91db99c00000000, 0xf4245cea00000000, + 0x20ce2f7100000000, 0xe4935d0600000000, 0x30792e9d00000000, + 0x0d40cbeb00000000, 0xd9aab87000000000, 0x7732010600000000, + 0xa3d8729d00000000, 0x9ee197eb00000000, 0x4a0be47000000000, + 0xc2d0e40600000000, 0x163a979d00000000, 0x2b0372eb00000000, + 0xffe9017000000000, 0x5171b80600000000, 0x859bcb9d00000000, + 0xb8a22eeb00000000, 0x6c485d7000000000, 0x6032940b00000000, + 0xb4d8e79000000000, 0x89e102e600000000, 0x5d0b717d00000000, + 0xf393c80b00000000, 0x2779bb9000000000, 0x1a405ee600000000, + 0xceaa2d7d00000000, 0x46712d0b00000000, 0x929b5e9000000000, + 0xafa2bbe600000000, 0x7b48c87d00000000, 0xd5d0710b00000000, + 0x013a029000000000, 0x3c03e7e600000000, 0xe8e9947d00000000, + 0x2cb4e60a00000000, 0xf85e959100000000, 0xc56770e700000000, + 0x118d037c00000000, 0xbf15ba0a00000000, 0x6bffc99100000000, + 0x56c62ce700000000, 0x822c5f7c00000000, 0x0af75f0a00000000, + 0xde1d2c9100000000, 0xe324c9e700000000, 0x37ceba7c00000000, + 0x9956030a00000000, 0x4dbc709100000000, 0x708595e700000000, + 0xa46fe67c00000000, 0xf83e710900000000, 0x2cd4029200000000, + 0x11ede7e400000000, 0xc507947f00000000, 0x6b9f2d0900000000, + 0xbf755e9200000000, 0x824cbbe400000000, 0x56a6c87f00000000, + 0xde7dc80900000000, 0x0a97bb9200000000, 0x37ae5ee400000000, + 0xe3442d7f00000000, 0x4ddc940900000000, 0x9936e79200000000, + 0xa40f02e400000000, 0x70e5717f00000000, 0xb4b8030800000000, + 0x6052709300000000, 0x5d6b95e500000000, 0x8981e67e00000000, + 0x27195f0800000000, 0xf3f32c9300000000, 0xcecac9e500000000, + 0x1a20ba7e00000000, 0x92fbba0800000000, 0x4611c99300000000, + 0x7b282ce500000000, 0xafc25f7e00000000, 0x015ae60800000000, + 0xd5b0959300000000, 0xe88970e500000000, 0x3c63037e00000000, + 0x502b5e0e00000000, 0x84c12d9500000000, 0xb9f8c8e300000000, + 0x6d12bb7800000000, 0xc38a020e00000000, 0x1760719500000000, + 0x2a5994e300000000, 0xfeb3e77800000000, 0x7668e70e00000000, + 0xa282949500000000, 0x9fbb71e300000000, 0x4b51027800000000, + 0xe5c9bb0e00000000, 0x3123c89500000000, 0x0c1a2de300000000, + 0xd8f05e7800000000, 0x1cad2c0f00000000, 0xc8475f9400000000, + 0xf57ebae200000000, 0x2194c97900000000, 0x8f0c700f00000000, + 0x5be6039400000000, 0x66dfe6e200000000, 0xb235957900000000, + 0x3aee950f00000000, 0xee04e69400000000, 0xd33d03e200000000, + 0x07d7707900000000, 0xa94fc90f00000000, 0x7da5ba9400000000, + 0x409c5fe200000000, 0x94762c7900000000, 0xc827bb0c00000000, + 0x1ccdc89700000000, 0x21f42de100000000, 0xf51e5e7a00000000, + 0x5b86e70c00000000, 0x8f6c949700000000, 0xb25571e100000000, + 0x66bf027a00000000, 0xee64020c00000000, 0x3a8e719700000000, + 0x07b794e100000000, 0xd35de77a00000000, 0x7dc55e0c00000000, + 0xa92f2d9700000000, 0x9416c8e100000000, 0x40fcbb7a00000000, + 0x84a1c90d00000000, 0x504bba9600000000, 0x6d725fe000000000, + 0xb9982c7b00000000, 0x1700950d00000000, 0xc3eae69600000000, + 0xfed303e000000000, 0x2a39707b00000000, 0xa2e2700d00000000, + 0x7608039600000000, 0x4b31e6e000000000, 0x9fdb957b00000000, + 0x31432c0d00000000, 0xe5a95f9600000000, 0xd890bae000000000, + 0x0c7ac97b00000000}, + {0x0000000000000000, 0x2765258100000000, 0x0fcc3bd900000000, + 0x28a91e5800000000, 0x5f9e066900000000, 0x78fb23e800000000, + 0x50523db000000000, 0x7737183100000000, 0xbe3c0dd200000000, + 0x9959285300000000, 0xb1f0360b00000000, 0x9695138a00000000, + 0xe1a20bbb00000000, 0xc6c72e3a00000000, 0xee6e306200000000, + 0xc90b15e300000000, 0x3d7f6b7f00000000, 0x1a1a4efe00000000, + 0x32b350a600000000, 0x15d6752700000000, 0x62e16d1600000000, + 0x4584489700000000, 0x6d2d56cf00000000, 0x4a48734e00000000, + 0x834366ad00000000, 0xa426432c00000000, 0x8c8f5d7400000000, + 0xabea78f500000000, 0xdcdd60c400000000, 0xfbb8454500000000, + 0xd3115b1d00000000, 0xf4747e9c00000000, 0x7afed6fe00000000, + 0x5d9bf37f00000000, 0x7532ed2700000000, 0x5257c8a600000000, + 0x2560d09700000000, 0x0205f51600000000, 0x2aaceb4e00000000, + 0x0dc9cecf00000000, 0xc4c2db2c00000000, 0xe3a7fead00000000, + 0xcb0ee0f500000000, 0xec6bc57400000000, 0x9b5cdd4500000000, + 0xbc39f8c400000000, 0x9490e69c00000000, 0xb3f5c31d00000000, + 0x4781bd8100000000, 0x60e4980000000000, 0x484d865800000000, + 0x6f28a3d900000000, 0x181fbbe800000000, 0x3f7a9e6900000000, + 0x17d3803100000000, 0x30b6a5b000000000, 0xf9bdb05300000000, + 0xded895d200000000, 0xf6718b8a00000000, 0xd114ae0b00000000, + 0xa623b63a00000000, 0x814693bb00000000, 0xa9ef8de300000000, + 0x8e8aa86200000000, 0xb5fadc2600000000, 0x929ff9a700000000, + 0xba36e7ff00000000, 0x9d53c27e00000000, 0xea64da4f00000000, + 0xcd01ffce00000000, 0xe5a8e19600000000, 0xc2cdc41700000000, + 0x0bc6d1f400000000, 0x2ca3f47500000000, 0x040aea2d00000000, + 0x236fcfac00000000, 0x5458d79d00000000, 0x733df21c00000000, + 0x5b94ec4400000000, 0x7cf1c9c500000000, 0x8885b75900000000, + 0xafe092d800000000, 0x87498c8000000000, 0xa02ca90100000000, + 0xd71bb13000000000, 0xf07e94b100000000, 0xd8d78ae900000000, + 0xffb2af6800000000, 0x36b9ba8b00000000, 0x11dc9f0a00000000, + 0x3975815200000000, 0x1e10a4d300000000, 0x6927bce200000000, + 0x4e42996300000000, 0x66eb873b00000000, 0x418ea2ba00000000, + 0xcf040ad800000000, 0xe8612f5900000000, 0xc0c8310100000000, + 0xe7ad148000000000, 0x909a0cb100000000, 0xb7ff293000000000, + 0x9f56376800000000, 0xb83312e900000000, 0x7138070a00000000, + 0x565d228b00000000, 0x7ef43cd300000000, 0x5991195200000000, + 0x2ea6016300000000, 0x09c324e200000000, 0x216a3aba00000000, + 0x060f1f3b00000000, 0xf27b61a700000000, 0xd51e442600000000, + 0xfdb75a7e00000000, 0xdad27fff00000000, 0xade567ce00000000, + 0x8a80424f00000000, 0xa2295c1700000000, 0x854c799600000000, + 0x4c476c7500000000, 0x6b2249f400000000, 0x438b57ac00000000, + 0x64ee722d00000000, 0x13d96a1c00000000, 0x34bc4f9d00000000, + 0x1c1551c500000000, 0x3b70744400000000, 0x6af5b94d00000000, + 0x4d909ccc00000000, 0x6539829400000000, 0x425ca71500000000, + 0x356bbf2400000000, 0x120e9aa500000000, 0x3aa784fd00000000, + 0x1dc2a17c00000000, 0xd4c9b49f00000000, 0xf3ac911e00000000, + 0xdb058f4600000000, 0xfc60aac700000000, 0x8b57b2f600000000, + 0xac32977700000000, 0x849b892f00000000, 0xa3feacae00000000, + 0x578ad23200000000, 0x70eff7b300000000, 0x5846e9eb00000000, + 0x7f23cc6a00000000, 0x0814d45b00000000, 0x2f71f1da00000000, + 0x07d8ef8200000000, 0x20bdca0300000000, 0xe9b6dfe000000000, + 0xced3fa6100000000, 0xe67ae43900000000, 0xc11fc1b800000000, + 0xb628d98900000000, 0x914dfc0800000000, 0xb9e4e25000000000, + 0x9e81c7d100000000, 0x100b6fb300000000, 0x376e4a3200000000, + 0x1fc7546a00000000, 0x38a271eb00000000, 0x4f9569da00000000, + 0x68f04c5b00000000, 0x4059520300000000, 0x673c778200000000, + 0xae37626100000000, 0x895247e000000000, 0xa1fb59b800000000, + 0x869e7c3900000000, 0xf1a9640800000000, 0xd6cc418900000000, + 0xfe655fd100000000, 0xd9007a5000000000, 0x2d7404cc00000000, + 0x0a11214d00000000, 0x22b83f1500000000, 0x05dd1a9400000000, + 0x72ea02a500000000, 0x558f272400000000, 0x7d26397c00000000, + 0x5a431cfd00000000, 0x9348091e00000000, 0xb42d2c9f00000000, + 0x9c8432c700000000, 0xbbe1174600000000, 0xccd60f7700000000, + 0xebb32af600000000, 0xc31a34ae00000000, 0xe47f112f00000000, + 0xdf0f656b00000000, 0xf86a40ea00000000, 0xd0c35eb200000000, + 0xf7a67b3300000000, 0x8091630200000000, 0xa7f4468300000000, + 0x8f5d58db00000000, 0xa8387d5a00000000, 0x613368b900000000, + 0x46564d3800000000, 0x6eff536000000000, 0x499a76e100000000, + 0x3ead6ed000000000, 0x19c84b5100000000, 0x3161550900000000, + 0x1604708800000000, 0xe2700e1400000000, 0xc5152b9500000000, + 0xedbc35cd00000000, 0xcad9104c00000000, 0xbdee087d00000000, + 0x9a8b2dfc00000000, 0xb22233a400000000, 0x9547162500000000, + 0x5c4c03c600000000, 0x7b29264700000000, 0x5380381f00000000, + 0x74e51d9e00000000, 0x03d205af00000000, 0x24b7202e00000000, + 0x0c1e3e7600000000, 0x2b7b1bf700000000, 0xa5f1b39500000000, + 0x8294961400000000, 0xaa3d884c00000000, 0x8d58adcd00000000, + 0xfa6fb5fc00000000, 0xdd0a907d00000000, 0xf5a38e2500000000, + 0xd2c6aba400000000, 0x1bcdbe4700000000, 0x3ca89bc600000000, + 0x1401859e00000000, 0x3364a01f00000000, 0x4453b82e00000000, + 0x63369daf00000000, 0x4b9f83f700000000, 0x6cfaa67600000000, + 0x988ed8ea00000000, 0xbfebfd6b00000000, 0x9742e33300000000, + 0xb027c6b200000000, 0xc710de8300000000, 0xe075fb0200000000, + 0xc8dce55a00000000, 0xefb9c0db00000000, 0x26b2d53800000000, + 0x01d7f0b900000000, 0x297eeee100000000, 0x0e1bcb6000000000, + 0x792cd35100000000, 0x5e49f6d000000000, 0x76e0e88800000000, + 0x5185cd0900000000}}; + +#else /* W == 4 */ + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0x9ba54c6f, 0xec3b9e9f, 0x779ed2f0, 0x03063b7f, + 0x98a37710, 0xef3da5e0, 0x7498e98f, 0x060c76fe, 0x9da93a91, + 0xea37e861, 0x7192a40e, 0x050a4d81, 0x9eaf01ee, 0xe931d31e, + 0x72949f71, 0x0c18edfc, 0x97bda193, 0xe0237363, 0x7b863f0c, + 0x0f1ed683, 0x94bb9aec, 0xe325481c, 0x78800473, 0x0a149b02, + 0x91b1d76d, 0xe62f059d, 0x7d8a49f2, 0x0912a07d, 0x92b7ec12, + 0xe5293ee2, 0x7e8c728d, 0x1831dbf8, 0x83949797, 0xf40a4567, + 0x6faf0908, 0x1b37e087, 0x8092ace8, 0xf70c7e18, 0x6ca93277, + 0x1e3dad06, 0x8598e169, 0xf2063399, 0x69a37ff6, 0x1d3b9679, + 0x869eda16, 0xf10008e6, 0x6aa54489, 0x14293604, 0x8f8c7a6b, + 0xf812a89b, 0x63b7e4f4, 0x172f0d7b, 0x8c8a4114, 0xfb1493e4, + 0x60b1df8b, 0x122540fa, 0x89800c95, 0xfe1ede65, 0x65bb920a, + 0x11237b85, 0x8a8637ea, 0xfd18e51a, 0x66bda975, 0x3063b7f0, + 0xabc6fb9f, 0xdc58296f, 0x47fd6500, 0x33658c8f, 0xa8c0c0e0, + 0xdf5e1210, 0x44fb5e7f, 0x366fc10e, 0xadca8d61, 0xda545f91, + 0x41f113fe, 0x3569fa71, 0xaeccb61e, 0xd95264ee, 0x42f72881, + 0x3c7b5a0c, 0xa7de1663, 0xd040c493, 0x4be588fc, 0x3f7d6173, + 0xa4d82d1c, 0xd346ffec, 0x48e3b383, 0x3a772cf2, 0xa1d2609d, + 0xd64cb26d, 0x4de9fe02, 0x3971178d, 0xa2d45be2, 0xd54a8912, + 0x4eefc57d, 0x28526c08, 0xb3f72067, 0xc469f297, 0x5fccbef8, + 0x2b545777, 0xb0f11b18, 0xc76fc9e8, 0x5cca8587, 0x2e5e1af6, + 0xb5fb5699, 0xc2658469, 0x59c0c806, 0x2d582189, 0xb6fd6de6, + 0xc163bf16, 0x5ac6f379, 0x244a81f4, 0xbfefcd9b, 0xc8711f6b, + 0x53d45304, 0x274cba8b, 0xbce9f6e4, 0xcb772414, 0x50d2687b, + 0x2246f70a, 0xb9e3bb65, 0xce7d6995, 0x55d825fa, 0x2140cc75, + 0xbae5801a, 0xcd7b52ea, 0x56de1e85, 0x60c76fe0, 0xfb62238f, + 0x8cfcf17f, 0x1759bd10, 0x63c1549f, 0xf86418f0, 0x8ffaca00, + 0x145f866f, 0x66cb191e, 0xfd6e5571, 0x8af08781, 0x1155cbee, + 0x65cd2261, 0xfe686e0e, 0x89f6bcfe, 0x1253f091, 0x6cdf821c, + 0xf77ace73, 0x80e41c83, 0x1b4150ec, 0x6fd9b963, 0xf47cf50c, + 0x83e227fc, 0x18476b93, 0x6ad3f4e2, 0xf176b88d, 0x86e86a7d, + 0x1d4d2612, 0x69d5cf9d, 0xf27083f2, 0x85ee5102, 0x1e4b1d6d, + 0x78f6b418, 0xe353f877, 0x94cd2a87, 0x0f6866e8, 0x7bf08f67, + 0xe055c308, 0x97cb11f8, 0x0c6e5d97, 0x7efac2e6, 0xe55f8e89, + 0x92c15c79, 0x09641016, 0x7dfcf999, 0xe659b5f6, 0x91c76706, + 0x0a622b69, 0x74ee59e4, 0xef4b158b, 0x98d5c77b, 0x03708b14, + 0x77e8629b, 0xec4d2ef4, 0x9bd3fc04, 0x0076b06b, 0x72e22f1a, + 0xe9476375, 0x9ed9b185, 0x057cfdea, 0x71e41465, 0xea41580a, + 0x9ddf8afa, 0x067ac695, 0x50a4d810, 0xcb01947f, 0xbc9f468f, + 0x273a0ae0, 0x53a2e36f, 0xc807af00, 0xbf997df0, 0x243c319f, + 0x56a8aeee, 0xcd0de281, 0xba933071, 0x21367c1e, 0x55ae9591, + 0xce0bd9fe, 0xb9950b0e, 0x22304761, 0x5cbc35ec, 0xc7197983, + 0xb087ab73, 0x2b22e71c, 0x5fba0e93, 0xc41f42fc, 0xb381900c, + 0x2824dc63, 0x5ab04312, 0xc1150f7d, 0xb68bdd8d, 0x2d2e91e2, + 0x59b6786d, 0xc2133402, 0xb58de6f2, 0x2e28aa9d, 0x489503e8, + 0xd3304f87, 0xa4ae9d77, 0x3f0bd118, 0x4b933897, 0xd03674f8, + 0xa7a8a608, 0x3c0dea67, 0x4e997516, 0xd53c3979, 0xa2a2eb89, + 0x3907a7e6, 0x4d9f4e69, 0xd63a0206, 0xa1a4d0f6, 0x3a019c99, + 0x448dee14, 0xdf28a27b, 0xa8b6708b, 0x33133ce4, 0x478bd56b, + 0xdc2e9904, 0xabb04bf4, 0x3015079b, 0x428198ea, 0xd924d485, + 0xaeba0675, 0x351f4a1a, 0x4187a395, 0xda22effa, 0xadbc3d0a, + 0x36197165}, + {0x00000000, 0xc18edfc0, 0x586cb9c1, 0x99e26601, 0xb0d97382, + 0x7157ac42, 0xe8b5ca43, 0x293b1583, 0xbac3e145, 0x7b4d3e85, + 0xe2af5884, 0x23218744, 0x0a1a92c7, 0xcb944d07, 0x52762b06, + 0x93f8f4c6, 0xaef6c4cb, 0x6f781b0b, 0xf69a7d0a, 0x3714a2ca, + 0x1e2fb749, 0xdfa16889, 0x46430e88, 0x87cdd148, 0x1435258e, + 0xd5bbfa4e, 0x4c599c4f, 0x8dd7438f, 0xa4ec560c, 0x656289cc, + 0xfc80efcd, 0x3d0e300d, 0x869c8fd7, 0x47125017, 0xdef03616, + 0x1f7ee9d6, 0x3645fc55, 0xf7cb2395, 0x6e294594, 0xafa79a54, + 0x3c5f6e92, 0xfdd1b152, 0x6433d753, 0xa5bd0893, 0x8c861d10, + 0x4d08c2d0, 0xd4eaa4d1, 0x15647b11, 0x286a4b1c, 0xe9e494dc, + 0x7006f2dd, 0xb1882d1d, 0x98b3389e, 0x593de75e, 0xc0df815f, + 0x01515e9f, 0x92a9aa59, 0x53277599, 0xcac51398, 0x0b4bcc58, + 0x2270d9db, 0xe3fe061b, 0x7a1c601a, 0xbb92bfda, 0xd64819ef, + 0x17c6c62f, 0x8e24a02e, 0x4faa7fee, 0x66916a6d, 0xa71fb5ad, + 0x3efdd3ac, 0xff730c6c, 0x6c8bf8aa, 0xad05276a, 0x34e7416b, + 0xf5699eab, 0xdc528b28, 0x1ddc54e8, 0x843e32e9, 0x45b0ed29, + 0x78bedd24, 0xb93002e4, 0x20d264e5, 0xe15cbb25, 0xc867aea6, + 0x09e97166, 0x900b1767, 0x5185c8a7, 0xc27d3c61, 0x03f3e3a1, + 0x9a1185a0, 0x5b9f5a60, 0x72a44fe3, 0xb32a9023, 0x2ac8f622, + 0xeb4629e2, 0x50d49638, 0x915a49f8, 0x08b82ff9, 0xc936f039, + 0xe00de5ba, 0x21833a7a, 0xb8615c7b, 0x79ef83bb, 0xea17777d, + 0x2b99a8bd, 0xb27bcebc, 0x73f5117c, 0x5ace04ff, 0x9b40db3f, + 0x02a2bd3e, 0xc32c62fe, 0xfe2252f3, 0x3fac8d33, 0xa64eeb32, + 0x67c034f2, 0x4efb2171, 0x8f75feb1, 0x169798b0, 0xd7194770, + 0x44e1b3b6, 0x856f6c76, 0x1c8d0a77, 0xdd03d5b7, 0xf438c034, + 0x35b61ff4, 0xac5479f5, 0x6ddaa635, 0x77e1359f, 0xb66fea5f, + 0x2f8d8c5e, 0xee03539e, 0xc738461d, 0x06b699dd, 0x9f54ffdc, + 0x5eda201c, 0xcd22d4da, 0x0cac0b1a, 0x954e6d1b, 0x54c0b2db, + 0x7dfba758, 0xbc757898, 0x25971e99, 0xe419c159, 0xd917f154, + 0x18992e94, 0x817b4895, 0x40f59755, 0x69ce82d6, 0xa8405d16, + 0x31a23b17, 0xf02ce4d7, 0x63d41011, 0xa25acfd1, 0x3bb8a9d0, + 0xfa367610, 0xd30d6393, 0x1283bc53, 0x8b61da52, 0x4aef0592, + 0xf17dba48, 0x30f36588, 0xa9110389, 0x689fdc49, 0x41a4c9ca, + 0x802a160a, 0x19c8700b, 0xd846afcb, 0x4bbe5b0d, 0x8a3084cd, + 0x13d2e2cc, 0xd25c3d0c, 0xfb67288f, 0x3ae9f74f, 0xa30b914e, + 0x62854e8e, 0x5f8b7e83, 0x9e05a143, 0x07e7c742, 0xc6691882, + 0xef520d01, 0x2edcd2c1, 0xb73eb4c0, 0x76b06b00, 0xe5489fc6, + 0x24c64006, 0xbd242607, 0x7caaf9c7, 0x5591ec44, 0x941f3384, + 0x0dfd5585, 0xcc738a45, 0xa1a92c70, 0x6027f3b0, 0xf9c595b1, + 0x384b4a71, 0x11705ff2, 0xd0fe8032, 0x491ce633, 0x889239f3, + 0x1b6acd35, 0xdae412f5, 0x430674f4, 0x8288ab34, 0xabb3beb7, + 0x6a3d6177, 0xf3df0776, 0x3251d8b6, 0x0f5fe8bb, 0xced1377b, + 0x5733517a, 0x96bd8eba, 0xbf869b39, 0x7e0844f9, 0xe7ea22f8, + 0x2664fd38, 0xb59c09fe, 0x7412d63e, 0xedf0b03f, 0x2c7e6fff, + 0x05457a7c, 0xc4cba5bc, 0x5d29c3bd, 0x9ca71c7d, 0x2735a3a7, + 0xe6bb7c67, 0x7f591a66, 0xbed7c5a6, 0x97ecd025, 0x56620fe5, + 0xcf8069e4, 0x0e0eb624, 0x9df642e2, 0x5c789d22, 0xc59afb23, + 0x041424e3, 0x2d2f3160, 0xeca1eea0, 0x754388a1, 0xb4cd5761, + 0x89c3676c, 0x484db8ac, 0xd1afdead, 0x1021016d, 0x391a14ee, + 0xf894cb2e, 0x6176ad2f, 0xa0f872ef, 0x33008629, 0xf28e59e9, + 0x6b6c3fe8, 0xaae2e028, 0x83d9f5ab, 0x42572a6b, 0xdbb54c6a, + 0x1a3b93aa}, + {0x00000000, 0xefc26b3e, 0x04f5d03d, 0xeb37bb03, 0x09eba07a, + 0xe629cb44, 0x0d1e7047, 0xe2dc1b79, 0x13d740f4, 0xfc152bca, + 0x172290c9, 0xf8e0fbf7, 0x1a3ce08e, 0xf5fe8bb0, 0x1ec930b3, + 0xf10b5b8d, 0x27ae81e8, 0xc86cead6, 0x235b51d5, 0xcc993aeb, + 0x2e452192, 0xc1874aac, 0x2ab0f1af, 0xc5729a91, 0x3479c11c, + 0xdbbbaa22, 0x308c1121, 0xdf4e7a1f, 0x3d926166, 0xd2500a58, + 0x3967b15b, 0xd6a5da65, 0x4f5d03d0, 0xa09f68ee, 0x4ba8d3ed, + 0xa46ab8d3, 0x46b6a3aa, 0xa974c894, 0x42437397, 0xad8118a9, + 0x5c8a4324, 0xb348281a, 0x587f9319, 0xb7bdf827, 0x5561e35e, + 0xbaa38860, 0x51943363, 0xbe56585d, 0x68f38238, 0x8731e906, + 0x6c065205, 0x83c4393b, 0x61182242, 0x8eda497c, 0x65edf27f, + 0x8a2f9941, 0x7b24c2cc, 0x94e6a9f2, 0x7fd112f1, 0x901379cf, + 0x72cf62b6, 0x9d0d0988, 0x763ab28b, 0x99f8d9b5, 0x9eba07a0, + 0x71786c9e, 0x9a4fd79d, 0x758dbca3, 0x9751a7da, 0x7893cce4, + 0x93a477e7, 0x7c661cd9, 0x8d6d4754, 0x62af2c6a, 0x89989769, + 0x665afc57, 0x8486e72e, 0x6b448c10, 0x80733713, 0x6fb15c2d, + 0xb9148648, 0x56d6ed76, 0xbde15675, 0x52233d4b, 0xb0ff2632, + 0x5f3d4d0c, 0xb40af60f, 0x5bc89d31, 0xaac3c6bc, 0x4501ad82, + 0xae361681, 0x41f47dbf, 0xa32866c6, 0x4cea0df8, 0xa7ddb6fb, + 0x481fddc5, 0xd1e70470, 0x3e256f4e, 0xd512d44d, 0x3ad0bf73, + 0xd80ca40a, 0x37cecf34, 0xdcf97437, 0x333b1f09, 0xc2304484, + 0x2df22fba, 0xc6c594b9, 0x2907ff87, 0xcbdbe4fe, 0x24198fc0, + 0xcf2e34c3, 0x20ec5ffd, 0xf6498598, 0x198beea6, 0xf2bc55a5, + 0x1d7e3e9b, 0xffa225e2, 0x10604edc, 0xfb57f5df, 0x14959ee1, + 0xe59ec56c, 0x0a5cae52, 0xe16b1551, 0x0ea97e6f, 0xec756516, + 0x03b70e28, 0xe880b52b, 0x0742de15, 0xe6050901, 0x09c7623f, + 0xe2f0d93c, 0x0d32b202, 0xefeea97b, 0x002cc245, 0xeb1b7946, + 0x04d91278, 0xf5d249f5, 0x1a1022cb, 0xf12799c8, 0x1ee5f2f6, + 0xfc39e98f, 0x13fb82b1, 0xf8cc39b2, 0x170e528c, 0xc1ab88e9, + 0x2e69e3d7, 0xc55e58d4, 0x2a9c33ea, 0xc8402893, 0x278243ad, + 0xccb5f8ae, 0x23779390, 0xd27cc81d, 0x3dbea323, 0xd6891820, + 0x394b731e, 0xdb976867, 0x34550359, 0xdf62b85a, 0x30a0d364, + 0xa9580ad1, 0x469a61ef, 0xadaddaec, 0x426fb1d2, 0xa0b3aaab, + 0x4f71c195, 0xa4467a96, 0x4b8411a8, 0xba8f4a25, 0x554d211b, + 0xbe7a9a18, 0x51b8f126, 0xb364ea5f, 0x5ca68161, 0xb7913a62, + 0x5853515c, 0x8ef68b39, 0x6134e007, 0x8a035b04, 0x65c1303a, + 0x871d2b43, 0x68df407d, 0x83e8fb7e, 0x6c2a9040, 0x9d21cbcd, + 0x72e3a0f3, 0x99d41bf0, 0x761670ce, 0x94ca6bb7, 0x7b080089, + 0x903fbb8a, 0x7ffdd0b4, 0x78bf0ea1, 0x977d659f, 0x7c4ade9c, + 0x9388b5a2, 0x7154aedb, 0x9e96c5e5, 0x75a17ee6, 0x9a6315d8, + 0x6b684e55, 0x84aa256b, 0x6f9d9e68, 0x805ff556, 0x6283ee2f, + 0x8d418511, 0x66763e12, 0x89b4552c, 0x5f118f49, 0xb0d3e477, + 0x5be45f74, 0xb426344a, 0x56fa2f33, 0xb938440d, 0x520fff0e, + 0xbdcd9430, 0x4cc6cfbd, 0xa304a483, 0x48331f80, 0xa7f174be, + 0x452d6fc7, 0xaaef04f9, 0x41d8bffa, 0xae1ad4c4, 0x37e20d71, + 0xd820664f, 0x3317dd4c, 0xdcd5b672, 0x3e09ad0b, 0xd1cbc635, + 0x3afc7d36, 0xd53e1608, 0x24354d85, 0xcbf726bb, 0x20c09db8, + 0xcf02f686, 0x2ddeedff, 0xc21c86c1, 0x292b3dc2, 0xc6e956fc, + 0x104c8c99, 0xff8ee7a7, 0x14b95ca4, 0xfb7b379a, 0x19a72ce3, + 0xf66547dd, 0x1d52fcde, 0xf29097e0, 0x039bcc6d, 0xec59a753, + 0x076e1c50, 0xe8ac776e, 0x0a706c17, 0xe5b20729, 0x0e85bc2a, + 0xe147d714}, + {0x00000000, 0x177b1443, 0x2ef62886, 0x398d3cc5, 0x5dec510c, + 0x4a97454f, 0x731a798a, 0x64616dc9, 0xbbd8a218, 0xaca3b65b, + 0x952e8a9e, 0x82559edd, 0xe634f314, 0xf14fe757, 0xc8c2db92, + 0xdfb9cfd1, 0xacc04271, 0xbbbb5632, 0x82366af7, 0x954d7eb4, + 0xf12c137d, 0xe657073e, 0xdfda3bfb, 0xc8a12fb8, 0x1718e069, + 0x0063f42a, 0x39eec8ef, 0x2e95dcac, 0x4af4b165, 0x5d8fa526, + 0x640299e3, 0x73798da0, 0x82f182a3, 0x958a96e0, 0xac07aa25, + 0xbb7cbe66, 0xdf1dd3af, 0xc866c7ec, 0xf1ebfb29, 0xe690ef6a, + 0x392920bb, 0x2e5234f8, 0x17df083d, 0x00a41c7e, 0x64c571b7, + 0x73be65f4, 0x4a335931, 0x5d484d72, 0x2e31c0d2, 0x394ad491, + 0x00c7e854, 0x17bcfc17, 0x73dd91de, 0x64a6859d, 0x5d2bb958, + 0x4a50ad1b, 0x95e962ca, 0x82927689, 0xbb1f4a4c, 0xac645e0f, + 0xc80533c6, 0xdf7e2785, 0xe6f31b40, 0xf1880f03, 0xde920307, + 0xc9e91744, 0xf0642b81, 0xe71f3fc2, 0x837e520b, 0x94054648, + 0xad887a8d, 0xbaf36ece, 0x654aa11f, 0x7231b55c, 0x4bbc8999, + 0x5cc79dda, 0x38a6f013, 0x2fdde450, 0x1650d895, 0x012bccd6, + 0x72524176, 0x65295535, 0x5ca469f0, 0x4bdf7db3, 0x2fbe107a, + 0x38c50439, 0x014838fc, 0x16332cbf, 0xc98ae36e, 0xdef1f72d, + 0xe77ccbe8, 0xf007dfab, 0x9466b262, 0x831da621, 0xba909ae4, + 0xadeb8ea7, 0x5c6381a4, 0x4b1895e7, 0x7295a922, 0x65eebd61, + 0x018fd0a8, 0x16f4c4eb, 0x2f79f82e, 0x3802ec6d, 0xe7bb23bc, + 0xf0c037ff, 0xc94d0b3a, 0xde361f79, 0xba5772b0, 0xad2c66f3, + 0x94a15a36, 0x83da4e75, 0xf0a3c3d5, 0xe7d8d796, 0xde55eb53, + 0xc92eff10, 0xad4f92d9, 0xba34869a, 0x83b9ba5f, 0x94c2ae1c, + 0x4b7b61cd, 0x5c00758e, 0x658d494b, 0x72f65d08, 0x169730c1, + 0x01ec2482, 0x38611847, 0x2f1a0c04, 0x6655004f, 0x712e140c, + 0x48a328c9, 0x5fd83c8a, 0x3bb95143, 0x2cc24500, 0x154f79c5, + 0x02346d86, 0xdd8da257, 0xcaf6b614, 0xf37b8ad1, 0xe4009e92, + 0x8061f35b, 0x971ae718, 0xae97dbdd, 0xb9eccf9e, 0xca95423e, + 0xddee567d, 0xe4636ab8, 0xf3187efb, 0x97791332, 0x80020771, + 0xb98f3bb4, 0xaef42ff7, 0x714de026, 0x6636f465, 0x5fbbc8a0, + 0x48c0dce3, 0x2ca1b12a, 0x3bdaa569, 0x025799ac, 0x152c8def, + 0xe4a482ec, 0xf3df96af, 0xca52aa6a, 0xdd29be29, 0xb948d3e0, + 0xae33c7a3, 0x97befb66, 0x80c5ef25, 0x5f7c20f4, 0x480734b7, + 0x718a0872, 0x66f11c31, 0x029071f8, 0x15eb65bb, 0x2c66597e, + 0x3b1d4d3d, 0x4864c09d, 0x5f1fd4de, 0x6692e81b, 0x71e9fc58, + 0x15889191, 0x02f385d2, 0x3b7eb917, 0x2c05ad54, 0xf3bc6285, + 0xe4c776c6, 0xdd4a4a03, 0xca315e40, 0xae503389, 0xb92b27ca, + 0x80a61b0f, 0x97dd0f4c, 0xb8c70348, 0xafbc170b, 0x96312bce, + 0x814a3f8d, 0xe52b5244, 0xf2504607, 0xcbdd7ac2, 0xdca66e81, + 0x031fa150, 0x1464b513, 0x2de989d6, 0x3a929d95, 0x5ef3f05c, + 0x4988e41f, 0x7005d8da, 0x677ecc99, 0x14074139, 0x037c557a, + 0x3af169bf, 0x2d8a7dfc, 0x49eb1035, 0x5e900476, 0x671d38b3, + 0x70662cf0, 0xafdfe321, 0xb8a4f762, 0x8129cba7, 0x9652dfe4, + 0xf233b22d, 0xe548a66e, 0xdcc59aab, 0xcbbe8ee8, 0x3a3681eb, + 0x2d4d95a8, 0x14c0a96d, 0x03bbbd2e, 0x67dad0e7, 0x70a1c4a4, + 0x492cf861, 0x5e57ec22, 0x81ee23f3, 0x969537b0, 0xaf180b75, + 0xb8631f36, 0xdc0272ff, 0xcb7966bc, 0xf2f45a79, 0xe58f4e3a, + 0x96f6c39a, 0x818dd7d9, 0xb800eb1c, 0xaf7bff5f, 0xcb1a9296, + 0xdc6186d5, 0xe5ecba10, 0xf297ae53, 0x2d2e6182, 0x3a5575c1, + 0x03d84904, 0x14a35d47, 0x70c2308e, 0x67b924cd, 0x5e341808, + 0x494f0c4b}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x00000000, 0x43147b17, 0x8628f62e, 0xc53c8d39, 0x0c51ec5d, + 0x4f45974a, 0x8a791a73, 0xc96d6164, 0x18a2d8bb, 0x5bb6a3ac, + 0x9e8a2e95, 0xdd9e5582, 0x14f334e6, 0x57e74ff1, 0x92dbc2c8, + 0xd1cfb9df, 0x7142c0ac, 0x3256bbbb, 0xf76a3682, 0xb47e4d95, + 0x7d132cf1, 0x3e0757e6, 0xfb3bdadf, 0xb82fa1c8, 0x69e01817, + 0x2af46300, 0xefc8ee39, 0xacdc952e, 0x65b1f44a, 0x26a58f5d, + 0xe3990264, 0xa08d7973, 0xa382f182, 0xe0968a95, 0x25aa07ac, + 0x66be7cbb, 0xafd31ddf, 0xecc766c8, 0x29fbebf1, 0x6aef90e6, + 0xbb202939, 0xf834522e, 0x3d08df17, 0x7e1ca400, 0xb771c564, + 0xf465be73, 0x3159334a, 0x724d485d, 0xd2c0312e, 0x91d44a39, + 0x54e8c700, 0x17fcbc17, 0xde91dd73, 0x9d85a664, 0x58b92b5d, + 0x1bad504a, 0xca62e995, 0x89769282, 0x4c4a1fbb, 0x0f5e64ac, + 0xc63305c8, 0x85277edf, 0x401bf3e6, 0x030f88f1, 0x070392de, + 0x4417e9c9, 0x812b64f0, 0xc23f1fe7, 0x0b527e83, 0x48460594, + 0x8d7a88ad, 0xce6ef3ba, 0x1fa14a65, 0x5cb53172, 0x9989bc4b, + 0xda9dc75c, 0x13f0a638, 0x50e4dd2f, 0x95d85016, 0xd6cc2b01, + 0x76415272, 0x35552965, 0xf069a45c, 0xb37ddf4b, 0x7a10be2f, + 0x3904c538, 0xfc384801, 0xbf2c3316, 0x6ee38ac9, 0x2df7f1de, + 0xe8cb7ce7, 0xabdf07f0, 0x62b26694, 0x21a61d83, 0xe49a90ba, + 0xa78eebad, 0xa481635c, 0xe795184b, 0x22a99572, 0x61bdee65, + 0xa8d08f01, 0xebc4f416, 0x2ef8792f, 0x6dec0238, 0xbc23bbe7, + 0xff37c0f0, 0x3a0b4dc9, 0x791f36de, 0xb07257ba, 0xf3662cad, + 0x365aa194, 0x754eda83, 0xd5c3a3f0, 0x96d7d8e7, 0x53eb55de, + 0x10ff2ec9, 0xd9924fad, 0x9a8634ba, 0x5fbab983, 0x1caec294, + 0xcd617b4b, 0x8e75005c, 0x4b498d65, 0x085df672, 0xc1309716, + 0x8224ec01, 0x47186138, 0x040c1a2f, 0x4f005566, 0x0c142e71, + 0xc928a348, 0x8a3cd85f, 0x4351b93b, 0x0045c22c, 0xc5794f15, + 0x866d3402, 0x57a28ddd, 0x14b6f6ca, 0xd18a7bf3, 0x929e00e4, + 0x5bf36180, 0x18e71a97, 0xdddb97ae, 0x9ecfecb9, 0x3e4295ca, + 0x7d56eedd, 0xb86a63e4, 0xfb7e18f3, 0x32137997, 0x71070280, + 0xb43b8fb9, 0xf72ff4ae, 0x26e04d71, 0x65f43666, 0xa0c8bb5f, + 0xe3dcc048, 0x2ab1a12c, 0x69a5da3b, 0xac995702, 0xef8d2c15, + 0xec82a4e4, 0xaf96dff3, 0x6aaa52ca, 0x29be29dd, 0xe0d348b9, + 0xa3c733ae, 0x66fbbe97, 0x25efc580, 0xf4207c5f, 0xb7340748, + 0x72088a71, 0x311cf166, 0xf8719002, 0xbb65eb15, 0x7e59662c, + 0x3d4d1d3b, 0x9dc06448, 0xded41f5f, 0x1be89266, 0x58fce971, + 0x91918815, 0xd285f302, 0x17b97e3b, 0x54ad052c, 0x8562bcf3, + 0xc676c7e4, 0x034a4add, 0x405e31ca, 0x893350ae, 0xca272bb9, + 0x0f1ba680, 0x4c0fdd97, 0x4803c7b8, 0x0b17bcaf, 0xce2b3196, + 0x8d3f4a81, 0x44522be5, 0x074650f2, 0xc27addcb, 0x816ea6dc, + 0x50a11f03, 0x13b56414, 0xd689e92d, 0x959d923a, 0x5cf0f35e, + 0x1fe48849, 0xdad80570, 0x99cc7e67, 0x39410714, 0x7a557c03, + 0xbf69f13a, 0xfc7d8a2d, 0x3510eb49, 0x7604905e, 0xb3381d67, + 0xf02c6670, 0x21e3dfaf, 0x62f7a4b8, 0xa7cb2981, 0xe4df5296, + 0x2db233f2, 0x6ea648e5, 0xab9ac5dc, 0xe88ebecb, 0xeb81363a, + 0xa8954d2d, 0x6da9c014, 0x2ebdbb03, 0xe7d0da67, 0xa4c4a170, + 0x61f82c49, 0x22ec575e, 0xf323ee81, 0xb0379596, 0x750b18af, + 0x361f63b8, 0xff7202dc, 0xbc6679cb, 0x795af4f2, 0x3a4e8fe5, + 0x9ac3f696, 0xd9d78d81, 0x1ceb00b8, 0x5fff7baf, 0x96921acb, + 0xd58661dc, 0x10baece5, 0x53ae97f2, 0x82612e2d, 0xc175553a, + 0x0449d803, 0x475da314, 0x8e30c270, 0xcd24b967, 0x0818345e, + 0x4b0c4f49}, + {0x00000000, 0x3e6bc2ef, 0x3dd0f504, 0x03bb37eb, 0x7aa0eb09, + 0x44cb29e6, 0x47701e0d, 0x791bdce2, 0xf440d713, 0xca2b15fc, + 0xc9902217, 0xf7fbe0f8, 0x8ee03c1a, 0xb08bfef5, 0xb330c91e, + 0x8d5b0bf1, 0xe881ae27, 0xd6ea6cc8, 0xd5515b23, 0xeb3a99cc, + 0x9221452e, 0xac4a87c1, 0xaff1b02a, 0x919a72c5, 0x1cc17934, + 0x22aabbdb, 0x21118c30, 0x1f7a4edf, 0x6661923d, 0x580a50d2, + 0x5bb16739, 0x65daa5d6, 0xd0035d4f, 0xee689fa0, 0xedd3a84b, + 0xd3b86aa4, 0xaaa3b646, 0x94c874a9, 0x97734342, 0xa91881ad, + 0x24438a5c, 0x1a2848b3, 0x19937f58, 0x27f8bdb7, 0x5ee36155, + 0x6088a3ba, 0x63339451, 0x5d5856be, 0x3882f368, 0x06e93187, + 0x0552066c, 0x3b39c483, 0x42221861, 0x7c49da8e, 0x7ff2ed65, + 0x41992f8a, 0xccc2247b, 0xf2a9e694, 0xf112d17f, 0xcf791390, + 0xb662cf72, 0x88090d9d, 0x8bb23a76, 0xb5d9f899, 0xa007ba9e, + 0x9e6c7871, 0x9dd74f9a, 0xa3bc8d75, 0xdaa75197, 0xe4cc9378, + 0xe777a493, 0xd91c667c, 0x54476d8d, 0x6a2caf62, 0x69979889, + 0x57fc5a66, 0x2ee78684, 0x108c446b, 0x13377380, 0x2d5cb16f, + 0x488614b9, 0x76edd656, 0x7556e1bd, 0x4b3d2352, 0x3226ffb0, + 0x0c4d3d5f, 0x0ff60ab4, 0x319dc85b, 0xbcc6c3aa, 0x82ad0145, + 0x811636ae, 0xbf7df441, 0xc66628a3, 0xf80dea4c, 0xfbb6dda7, + 0xc5dd1f48, 0x7004e7d1, 0x4e6f253e, 0x4dd412d5, 0x73bfd03a, + 0x0aa40cd8, 0x34cfce37, 0x3774f9dc, 0x091f3b33, 0x844430c2, + 0xba2ff22d, 0xb994c5c6, 0x87ff0729, 0xfee4dbcb, 0xc08f1924, + 0xc3342ecf, 0xfd5fec20, 0x988549f6, 0xa6ee8b19, 0xa555bcf2, + 0x9b3e7e1d, 0xe225a2ff, 0xdc4e6010, 0xdff557fb, 0xe19e9514, + 0x6cc59ee5, 0x52ae5c0a, 0x51156be1, 0x6f7ea90e, 0x166575ec, + 0x280eb703, 0x2bb580e8, 0x15de4207, 0x010905e6, 0x3f62c709, + 0x3cd9f0e2, 0x02b2320d, 0x7ba9eeef, 0x45c22c00, 0x46791beb, + 0x7812d904, 0xf549d2f5, 0xcb22101a, 0xc89927f1, 0xf6f2e51e, + 0x8fe939fc, 0xb182fb13, 0xb239ccf8, 0x8c520e17, 0xe988abc1, + 0xd7e3692e, 0xd4585ec5, 0xea339c2a, 0x932840c8, 0xad438227, + 0xaef8b5cc, 0x90937723, 0x1dc87cd2, 0x23a3be3d, 0x201889d6, + 0x1e734b39, 0x676897db, 0x59035534, 0x5ab862df, 0x64d3a030, + 0xd10a58a9, 0xef619a46, 0xecdaadad, 0xd2b16f42, 0xabaab3a0, + 0x95c1714f, 0x967a46a4, 0xa811844b, 0x254a8fba, 0x1b214d55, + 0x189a7abe, 0x26f1b851, 0x5fea64b3, 0x6181a65c, 0x623a91b7, + 0x5c515358, 0x398bf68e, 0x07e03461, 0x045b038a, 0x3a30c165, + 0x432b1d87, 0x7d40df68, 0x7efbe883, 0x40902a6c, 0xcdcb219d, + 0xf3a0e372, 0xf01bd499, 0xce701676, 0xb76bca94, 0x8900087b, + 0x8abb3f90, 0xb4d0fd7f, 0xa10ebf78, 0x9f657d97, 0x9cde4a7c, + 0xa2b58893, 0xdbae5471, 0xe5c5969e, 0xe67ea175, 0xd815639a, + 0x554e686b, 0x6b25aa84, 0x689e9d6f, 0x56f55f80, 0x2fee8362, + 0x1185418d, 0x123e7666, 0x2c55b489, 0x498f115f, 0x77e4d3b0, + 0x745fe45b, 0x4a3426b4, 0x332ffa56, 0x0d4438b9, 0x0eff0f52, + 0x3094cdbd, 0xbdcfc64c, 0x83a404a3, 0x801f3348, 0xbe74f1a7, + 0xc76f2d45, 0xf904efaa, 0xfabfd841, 0xc4d41aae, 0x710de237, + 0x4f6620d8, 0x4cdd1733, 0x72b6d5dc, 0x0bad093e, 0x35c6cbd1, + 0x367dfc3a, 0x08163ed5, 0x854d3524, 0xbb26f7cb, 0xb89dc020, + 0x86f602cf, 0xffedde2d, 0xc1861cc2, 0xc23d2b29, 0xfc56e9c6, + 0x998c4c10, 0xa7e78eff, 0xa45cb914, 0x9a377bfb, 0xe32ca719, + 0xdd4765f6, 0xdefc521d, 0xe09790f2, 0x6dcc9b03, 0x53a759ec, + 0x501c6e07, 0x6e77ace8, 0x176c700a, 0x2907b2e5, 0x2abc850e, + 0x14d747e1}, + {0x00000000, 0xc0df8ec1, 0xc1b96c58, 0x0166e299, 0x8273d9b0, + 0x42ac5771, 0x43cab5e8, 0x83153b29, 0x45e1c3ba, 0x853e4d7b, + 0x8458afe2, 0x44872123, 0xc7921a0a, 0x074d94cb, 0x062b7652, + 0xc6f4f893, 0xcbc4f6ae, 0x0b1b786f, 0x0a7d9af6, 0xcaa21437, + 0x49b72f1e, 0x8968a1df, 0x880e4346, 0x48d1cd87, 0x8e253514, + 0x4efabbd5, 0x4f9c594c, 0x8f43d78d, 0x0c56eca4, 0xcc896265, + 0xcdef80fc, 0x0d300e3d, 0xd78f9c86, 0x17501247, 0x1636f0de, + 0xd6e97e1f, 0x55fc4536, 0x9523cbf7, 0x9445296e, 0x549aa7af, + 0x926e5f3c, 0x52b1d1fd, 0x53d73364, 0x9308bda5, 0x101d868c, + 0xd0c2084d, 0xd1a4ead4, 0x117b6415, 0x1c4b6a28, 0xdc94e4e9, + 0xddf20670, 0x1d2d88b1, 0x9e38b398, 0x5ee73d59, 0x5f81dfc0, + 0x9f5e5101, 0x59aaa992, 0x99752753, 0x9813c5ca, 0x58cc4b0b, + 0xdbd97022, 0x1b06fee3, 0x1a601c7a, 0xdabf92bb, 0xef1948d6, + 0x2fc6c617, 0x2ea0248e, 0xee7faa4f, 0x6d6a9166, 0xadb51fa7, + 0xacd3fd3e, 0x6c0c73ff, 0xaaf88b6c, 0x6a2705ad, 0x6b41e734, + 0xab9e69f5, 0x288b52dc, 0xe854dc1d, 0xe9323e84, 0x29edb045, + 0x24ddbe78, 0xe40230b9, 0xe564d220, 0x25bb5ce1, 0xa6ae67c8, + 0x6671e909, 0x67170b90, 0xa7c88551, 0x613c7dc2, 0xa1e3f303, + 0xa085119a, 0x605a9f5b, 0xe34fa472, 0x23902ab3, 0x22f6c82a, + 0xe22946eb, 0x3896d450, 0xf8495a91, 0xf92fb808, 0x39f036c9, + 0xbae50de0, 0x7a3a8321, 0x7b5c61b8, 0xbb83ef79, 0x7d7717ea, + 0xbda8992b, 0xbcce7bb2, 0x7c11f573, 0xff04ce5a, 0x3fdb409b, + 0x3ebda202, 0xfe622cc3, 0xf35222fe, 0x338dac3f, 0x32eb4ea6, + 0xf234c067, 0x7121fb4e, 0xb1fe758f, 0xb0989716, 0x704719d7, + 0xb6b3e144, 0x766c6f85, 0x770a8d1c, 0xb7d503dd, 0x34c038f4, + 0xf41fb635, 0xf57954ac, 0x35a6da6d, 0x9f35e177, 0x5fea6fb6, + 0x5e8c8d2f, 0x9e5303ee, 0x1d4638c7, 0xdd99b606, 0xdcff549f, + 0x1c20da5e, 0xdad422cd, 0x1a0bac0c, 0x1b6d4e95, 0xdbb2c054, + 0x58a7fb7d, 0x987875bc, 0x991e9725, 0x59c119e4, 0x54f117d9, + 0x942e9918, 0x95487b81, 0x5597f540, 0xd682ce69, 0x165d40a8, + 0x173ba231, 0xd7e42cf0, 0x1110d463, 0xd1cf5aa2, 0xd0a9b83b, + 0x107636fa, 0x93630dd3, 0x53bc8312, 0x52da618b, 0x9205ef4a, + 0x48ba7df1, 0x8865f330, 0x890311a9, 0x49dc9f68, 0xcac9a441, + 0x0a162a80, 0x0b70c819, 0xcbaf46d8, 0x0d5bbe4b, 0xcd84308a, + 0xcce2d213, 0x0c3d5cd2, 0x8f2867fb, 0x4ff7e93a, 0x4e910ba3, + 0x8e4e8562, 0x837e8b5f, 0x43a1059e, 0x42c7e707, 0x821869c6, + 0x010d52ef, 0xc1d2dc2e, 0xc0b43eb7, 0x006bb076, 0xc69f48e5, + 0x0640c624, 0x072624bd, 0xc7f9aa7c, 0x44ec9155, 0x84331f94, + 0x8555fd0d, 0x458a73cc, 0x702ca9a1, 0xb0f32760, 0xb195c5f9, + 0x714a4b38, 0xf25f7011, 0x3280fed0, 0x33e61c49, 0xf3399288, + 0x35cd6a1b, 0xf512e4da, 0xf4740643, 0x34ab8882, 0xb7beb3ab, + 0x77613d6a, 0x7607dff3, 0xb6d85132, 0xbbe85f0f, 0x7b37d1ce, + 0x7a513357, 0xba8ebd96, 0x399b86bf, 0xf944087e, 0xf822eae7, + 0x38fd6426, 0xfe099cb5, 0x3ed61274, 0x3fb0f0ed, 0xff6f7e2c, + 0x7c7a4505, 0xbca5cbc4, 0xbdc3295d, 0x7d1ca79c, 0xa7a33527, + 0x677cbbe6, 0x661a597f, 0xa6c5d7be, 0x25d0ec97, 0xe50f6256, + 0xe46980cf, 0x24b60e0e, 0xe242f69d, 0x229d785c, 0x23fb9ac5, + 0xe3241404, 0x60312f2d, 0xa0eea1ec, 0xa1884375, 0x6157cdb4, + 0x6c67c389, 0xacb84d48, 0xaddeafd1, 0x6d012110, 0xee141a39, + 0x2ecb94f8, 0x2fad7661, 0xef72f8a0, 0x29860033, 0xe9598ef2, + 0xe83f6c6b, 0x28e0e2aa, 0xabf5d983, 0x6b2a5742, 0x6a4cb5db, + 0xaa933b1a}, + {0x00000000, 0x6f4ca59b, 0x9f9e3bec, 0xf0d29e77, 0x7f3b0603, + 0x1077a398, 0xe0a53def, 0x8fe99874, 0xfe760c06, 0x913aa99d, + 0x61e837ea, 0x0ea49271, 0x814d0a05, 0xee01af9e, 0x1ed331e9, + 0x719f9472, 0xfced180c, 0x93a1bd97, 0x637323e0, 0x0c3f867b, + 0x83d61e0f, 0xec9abb94, 0x1c4825e3, 0x73048078, 0x029b140a, + 0x6dd7b191, 0x9d052fe6, 0xf2498a7d, 0x7da01209, 0x12ecb792, + 0xe23e29e5, 0x8d728c7e, 0xf8db3118, 0x97979483, 0x67450af4, + 0x0809af6f, 0x87e0371b, 0xe8ac9280, 0x187e0cf7, 0x7732a96c, + 0x06ad3d1e, 0x69e19885, 0x993306f2, 0xf67fa369, 0x79963b1d, + 0x16da9e86, 0xe60800f1, 0x8944a56a, 0x04362914, 0x6b7a8c8f, + 0x9ba812f8, 0xf4e4b763, 0x7b0d2f17, 0x14418a8c, 0xe49314fb, + 0x8bdfb160, 0xfa402512, 0x950c8089, 0x65de1efe, 0x0a92bb65, + 0x857b2311, 0xea37868a, 0x1ae518fd, 0x75a9bd66, 0xf0b76330, + 0x9ffbc6ab, 0x6f2958dc, 0x0065fd47, 0x8f8c6533, 0xe0c0c0a8, + 0x10125edf, 0x7f5efb44, 0x0ec16f36, 0x618dcaad, 0x915f54da, + 0xfe13f141, 0x71fa6935, 0x1eb6ccae, 0xee6452d9, 0x8128f742, + 0x0c5a7b3c, 0x6316dea7, 0x93c440d0, 0xfc88e54b, 0x73617d3f, + 0x1c2dd8a4, 0xecff46d3, 0x83b3e348, 0xf22c773a, 0x9d60d2a1, + 0x6db24cd6, 0x02fee94d, 0x8d177139, 0xe25bd4a2, 0x12894ad5, + 0x7dc5ef4e, 0x086c5228, 0x6720f7b3, 0x97f269c4, 0xf8becc5f, + 0x7757542b, 0x181bf1b0, 0xe8c96fc7, 0x8785ca5c, 0xf61a5e2e, + 0x9956fbb5, 0x698465c2, 0x06c8c059, 0x8921582d, 0xe66dfdb6, + 0x16bf63c1, 0x79f3c65a, 0xf4814a24, 0x9bcdefbf, 0x6b1f71c8, + 0x0453d453, 0x8bba4c27, 0xe4f6e9bc, 0x142477cb, 0x7b68d250, + 0x0af74622, 0x65bbe3b9, 0x95697dce, 0xfa25d855, 0x75cc4021, + 0x1a80e5ba, 0xea527bcd, 0x851ede56, 0xe06fc760, 0x8f2362fb, + 0x7ff1fc8c, 0x10bd5917, 0x9f54c163, 0xf01864f8, 0x00cafa8f, + 0x6f865f14, 0x1e19cb66, 0x71556efd, 0x8187f08a, 0xeecb5511, + 0x6122cd65, 0x0e6e68fe, 0xfebcf689, 0x91f05312, 0x1c82df6c, + 0x73ce7af7, 0x831ce480, 0xec50411b, 0x63b9d96f, 0x0cf57cf4, + 0xfc27e283, 0x936b4718, 0xe2f4d36a, 0x8db876f1, 0x7d6ae886, + 0x12264d1d, 0x9dcfd569, 0xf28370f2, 0x0251ee85, 0x6d1d4b1e, + 0x18b4f678, 0x77f853e3, 0x872acd94, 0xe866680f, 0x678ff07b, + 0x08c355e0, 0xf811cb97, 0x975d6e0c, 0xe6c2fa7e, 0x898e5fe5, + 0x795cc192, 0x16106409, 0x99f9fc7d, 0xf6b559e6, 0x0667c791, + 0x692b620a, 0xe459ee74, 0x8b154bef, 0x7bc7d598, 0x148b7003, + 0x9b62e877, 0xf42e4dec, 0x04fcd39b, 0x6bb07600, 0x1a2fe272, + 0x756347e9, 0x85b1d99e, 0xeafd7c05, 0x6514e471, 0x0a5841ea, + 0xfa8adf9d, 0x95c67a06, 0x10d8a450, 0x7f9401cb, 0x8f469fbc, + 0xe00a3a27, 0x6fe3a253, 0x00af07c8, 0xf07d99bf, 0x9f313c24, + 0xeeaea856, 0x81e20dcd, 0x713093ba, 0x1e7c3621, 0x9195ae55, + 0xfed90bce, 0x0e0b95b9, 0x61473022, 0xec35bc5c, 0x837919c7, + 0x73ab87b0, 0x1ce7222b, 0x930eba5f, 0xfc421fc4, 0x0c9081b3, + 0x63dc2428, 0x1243b05a, 0x7d0f15c1, 0x8ddd8bb6, 0xe2912e2d, + 0x6d78b659, 0x023413c2, 0xf2e68db5, 0x9daa282e, 0xe8039548, + 0x874f30d3, 0x779daea4, 0x18d10b3f, 0x9738934b, 0xf87436d0, + 0x08a6a8a7, 0x67ea0d3c, 0x1675994e, 0x79393cd5, 0x89eba2a2, + 0xe6a70739, 0x694e9f4d, 0x06023ad6, 0xf6d0a4a1, 0x999c013a, + 0x14ee8d44, 0x7ba228df, 0x8b70b6a8, 0xe43c1333, 0x6bd58b47, + 0x04992edc, 0xf44bb0ab, 0x9b071530, 0xea988142, 0x85d424d9, + 0x7506baae, 0x1a4a1f35, 0x95a38741, 0xfaef22da, 0x0a3dbcad, + 0x65711936}}; + +#endif + +#endif + +#if N == 4 + +#if W == 8 + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0xf1da05aa, 0x38c50d15, 0xc91f08bf, 0x718a1a2a, + 0x80501f80, 0x494f173f, 0xb8951295, 0xe3143454, 0x12ce31fe, + 0xdbd13941, 0x2a0b3ceb, 0x929e2e7e, 0x63442bd4, 0xaa5b236b, + 0x5b8126c1, 0x1d596ee9, 0xec836b43, 0x259c63fc, 0xd4466656, + 0x6cd374c3, 0x9d097169, 0x541679d6, 0xa5cc7c7c, 0xfe4d5abd, + 0x0f975f17, 0xc68857a8, 0x37525202, 0x8fc74097, 0x7e1d453d, + 0xb7024d82, 0x46d84828, 0x3ab2ddd2, 0xcb68d878, 0x0277d0c7, + 0xf3add56d, 0x4b38c7f8, 0xbae2c252, 0x73fdcaed, 0x8227cf47, + 0xd9a6e986, 0x287cec2c, 0xe163e493, 0x10b9e139, 0xa82cf3ac, + 0x59f6f606, 0x90e9feb9, 0x6133fb13, 0x27ebb33b, 0xd631b691, + 0x1f2ebe2e, 0xeef4bb84, 0x5661a911, 0xa7bbacbb, 0x6ea4a404, + 0x9f7ea1ae, 0xc4ff876f, 0x352582c5, 0xfc3a8a7a, 0x0de08fd0, + 0xb5759d45, 0x44af98ef, 0x8db09050, 0x7c6a95fa, 0x7565bba4, + 0x84bfbe0e, 0x4da0b6b1, 0xbc7ab31b, 0x04efa18e, 0xf535a424, + 0x3c2aac9b, 0xcdf0a931, 0x96718ff0, 0x67ab8a5a, 0xaeb482e5, + 0x5f6e874f, 0xe7fb95da, 0x16219070, 0xdf3e98cf, 0x2ee49d65, + 0x683cd54d, 0x99e6d0e7, 0x50f9d858, 0xa123ddf2, 0x19b6cf67, + 0xe86ccacd, 0x2173c272, 0xd0a9c7d8, 0x8b28e119, 0x7af2e4b3, + 0xb3edec0c, 0x4237e9a6, 0xfaa2fb33, 0x0b78fe99, 0xc267f626, + 0x33bdf38c, 0x4fd76676, 0xbe0d63dc, 0x77126b63, 0x86c86ec9, + 0x3e5d7c5c, 0xcf8779f6, 0x06987149, 0xf74274e3, 0xacc35222, + 0x5d195788, 0x94065f37, 0x65dc5a9d, 0xdd494808, 0x2c934da2, + 0xe58c451d, 0x145640b7, 0x528e089f, 0xa3540d35, 0x6a4b058a, + 0x9b910020, 0x230412b5, 0xd2de171f, 0x1bc11fa0, 0xea1b1a0a, + 0xb19a3ccb, 0x40403961, 0x895f31de, 0x78853474, 0xc01026e1, + 0x31ca234b, 0xf8d52bf4, 0x090f2e5e, 0xeacb7748, 0x1b1172e2, + 0xd20e7a5d, 0x23d47ff7, 0x9b416d62, 0x6a9b68c8, 0xa3846077, + 0x525e65dd, 0x09df431c, 0xf80546b6, 0x311a4e09, 0xc0c04ba3, + 0x78555936, 0x898f5c9c, 0x40905423, 0xb14a5189, 0xf79219a1, + 0x06481c0b, 0xcf5714b4, 0x3e8d111e, 0x8618038b, 0x77c20621, + 0xbedd0e9e, 0x4f070b34, 0x14862df5, 0xe55c285f, 0x2c4320e0, + 0xdd99254a, 0x650c37df, 0x94d63275, 0x5dc93aca, 0xac133f60, + 0xd079aa9a, 0x21a3af30, 0xe8bca78f, 0x1966a225, 0xa1f3b0b0, + 0x5029b51a, 0x9936bda5, 0x68ecb80f, 0x336d9ece, 0xc2b79b64, + 0x0ba893db, 0xfa729671, 0x42e784e4, 0xb33d814e, 0x7a2289f1, + 0x8bf88c5b, 0xcd20c473, 0x3cfac1d9, 0xf5e5c966, 0x043fcccc, + 0xbcaade59, 0x4d70dbf3, 0x846fd34c, 0x75b5d6e6, 0x2e34f027, + 0xdfeef58d, 0x16f1fd32, 0xe72bf898, 0x5fbeea0d, 0xae64efa7, + 0x677be718, 0x96a1e2b2, 0x9faeccec, 0x6e74c946, 0xa76bc1f9, + 0x56b1c453, 0xee24d6c6, 0x1ffed36c, 0xd6e1dbd3, 0x273bde79, + 0x7cbaf8b8, 0x8d60fd12, 0x447ff5ad, 0xb5a5f007, 0x0d30e292, + 0xfceae738, 0x35f5ef87, 0xc42fea2d, 0x82f7a205, 0x732da7af, + 0xba32af10, 0x4be8aaba, 0xf37db82f, 0x02a7bd85, 0xcbb8b53a, + 0x3a62b090, 0x61e39651, 0x903993fb, 0x59269b44, 0xa8fc9eee, + 0x10698c7b, 0xe1b389d1, 0x28ac816e, 0xd97684c4, 0xa51c113e, + 0x54c61494, 0x9dd91c2b, 0x6c031981, 0xd4960b14, 0x254c0ebe, + 0xec530601, 0x1d8903ab, 0x4608256a, 0xb7d220c0, 0x7ecd287f, + 0x8f172dd5, 0x37823f40, 0xc6583aea, 0x0f473255, 0xfe9d37ff, + 0xb8457fd7, 0x499f7a7d, 0x808072c2, 0x715a7768, 0xc9cf65fd, + 0x38156057, 0xf10a68e8, 0x00d06d42, 0x5b514b83, 0xaa8b4e29, + 0x63944696, 0x924e433c, 0x2adb51a9, 0xdb015403, 0x121e5cbc, + 0xe3c45916}, + {0x00000000, 0x0ee7e8d1, 0x1dcfd1a2, 0x13283973, 0x3b9fa344, + 0x35784b95, 0x265072e6, 0x28b79a37, 0x773f4688, 0x79d8ae59, + 0x6af0972a, 0x64177ffb, 0x4ca0e5cc, 0x42470d1d, 0x516f346e, + 0x5f88dcbf, 0xee7e8d10, 0xe09965c1, 0xf3b15cb2, 0xfd56b463, + 0xd5e12e54, 0xdb06c685, 0xc82efff6, 0xc6c91727, 0x9941cb98, + 0x97a62349, 0x848e1a3a, 0x8a69f2eb, 0xa2de68dc, 0xac39800d, + 0xbf11b97e, 0xb1f651af, 0x078c1c61, 0x096bf4b0, 0x1a43cdc3, + 0x14a42512, 0x3c13bf25, 0x32f457f4, 0x21dc6e87, 0x2f3b8656, + 0x70b35ae9, 0x7e54b238, 0x6d7c8b4b, 0x639b639a, 0x4b2cf9ad, + 0x45cb117c, 0x56e3280f, 0x5804c0de, 0xe9f29171, 0xe71579a0, + 0xf43d40d3, 0xfadaa802, 0xd26d3235, 0xdc8adae4, 0xcfa2e397, + 0xc1450b46, 0x9ecdd7f9, 0x902a3f28, 0x8302065b, 0x8de5ee8a, + 0xa55274bd, 0xabb59c6c, 0xb89da51f, 0xb67a4dce, 0x0f1838c2, + 0x01ffd013, 0x12d7e960, 0x1c3001b1, 0x34879b86, 0x3a607357, + 0x29484a24, 0x27afa2f5, 0x78277e4a, 0x76c0969b, 0x65e8afe8, + 0x6b0f4739, 0x43b8dd0e, 0x4d5f35df, 0x5e770cac, 0x5090e47d, + 0xe166b5d2, 0xef815d03, 0xfca96470, 0xf24e8ca1, 0xdaf91696, + 0xd41efe47, 0xc736c734, 0xc9d12fe5, 0x9659f35a, 0x98be1b8b, + 0x8b9622f8, 0x8571ca29, 0xadc6501e, 0xa321b8cf, 0xb00981bc, + 0xbeee696d, 0x089424a3, 0x0673cc72, 0x155bf501, 0x1bbc1dd0, + 0x330b87e7, 0x3dec6f36, 0x2ec45645, 0x2023be94, 0x7fab622b, + 0x714c8afa, 0x6264b389, 0x6c835b58, 0x4434c16f, 0x4ad329be, + 0x59fb10cd, 0x571cf81c, 0xe6eaa9b3, 0xe80d4162, 0xfb257811, + 0xf5c290c0, 0xdd750af7, 0xd392e226, 0xc0badb55, 0xce5d3384, + 0x91d5ef3b, 0x9f3207ea, 0x8c1a3e99, 0x82fdd648, 0xaa4a4c7f, + 0xa4ada4ae, 0xb7859ddd, 0xb962750c, 0x1e307184, 0x10d79955, + 0x03ffa026, 0x0d1848f7, 0x25afd2c0, 0x2b483a11, 0x38600362, + 0x3687ebb3, 0x690f370c, 0x67e8dfdd, 0x74c0e6ae, 0x7a270e7f, + 0x52909448, 0x5c777c99, 0x4f5f45ea, 0x41b8ad3b, 0xf04efc94, + 0xfea91445, 0xed812d36, 0xe366c5e7, 0xcbd15fd0, 0xc536b701, + 0xd61e8e72, 0xd8f966a3, 0x8771ba1c, 0x899652cd, 0x9abe6bbe, + 0x9459836f, 0xbcee1958, 0xb209f189, 0xa121c8fa, 0xafc6202b, + 0x19bc6de5, 0x175b8534, 0x0473bc47, 0x0a945496, 0x2223cea1, + 0x2cc42670, 0x3fec1f03, 0x310bf7d2, 0x6e832b6d, 0x6064c3bc, + 0x734cfacf, 0x7dab121e, 0x551c8829, 0x5bfb60f8, 0x48d3598b, + 0x4634b15a, 0xf7c2e0f5, 0xf9250824, 0xea0d3157, 0xe4ead986, + 0xcc5d43b1, 0xc2baab60, 0xd1929213, 0xdf757ac2, 0x80fda67d, + 0x8e1a4eac, 0x9d3277df, 0x93d59f0e, 0xbb620539, 0xb585ede8, + 0xa6add49b, 0xa84a3c4a, 0x11284946, 0x1fcfa197, 0x0ce798e4, + 0x02007035, 0x2ab7ea02, 0x245002d3, 0x37783ba0, 0x399fd371, + 0x66170fce, 0x68f0e71f, 0x7bd8de6c, 0x753f36bd, 0x5d88ac8a, + 0x536f445b, 0x40477d28, 0x4ea095f9, 0xff56c456, 0xf1b12c87, + 0xe29915f4, 0xec7efd25, 0xc4c96712, 0xca2e8fc3, 0xd906b6b0, + 0xd7e15e61, 0x886982de, 0x868e6a0f, 0x95a6537c, 0x9b41bbad, + 0xb3f6219a, 0xbd11c94b, 0xae39f038, 0xa0de18e9, 0x16a45527, + 0x1843bdf6, 0x0b6b8485, 0x058c6c54, 0x2d3bf663, 0x23dc1eb2, + 0x30f427c1, 0x3e13cf10, 0x619b13af, 0x6f7cfb7e, 0x7c54c20d, + 0x72b32adc, 0x5a04b0eb, 0x54e3583a, 0x47cb6149, 0x492c8998, + 0xf8dad837, 0xf63d30e6, 0xe5150995, 0xebf2e144, 0xc3457b73, + 0xcda293a2, 0xde8aaad1, 0xd06d4200, 0x8fe59ebf, 0x8102766e, + 0x922a4f1d, 0x9ccda7cc, 0xb47a3dfb, 0xba9dd52a, 0xa9b5ec59, + 0xa7520488}, + {0x00000000, 0x3c60e308, 0x78c1c610, 0x44a12518, 0xf1838c20, + 0xcde36f28, 0x89424a30, 0xb522a938, 0x38761e01, 0x0416fd09, + 0x40b7d811, 0x7cd73b19, 0xc9f59221, 0xf5957129, 0xb1345431, + 0x8d54b739, 0x70ec3c02, 0x4c8cdf0a, 0x082dfa12, 0x344d191a, + 0x816fb022, 0xbd0f532a, 0xf9ae7632, 0xc5ce953a, 0x489a2203, + 0x74fac10b, 0x305be413, 0x0c3b071b, 0xb919ae23, 0x85794d2b, + 0xc1d86833, 0xfdb88b3b, 0xe1d87804, 0xddb89b0c, 0x9919be14, + 0xa5795d1c, 0x105bf424, 0x2c3b172c, 0x689a3234, 0x54fad13c, + 0xd9ae6605, 0xe5ce850d, 0xa16fa015, 0x9d0f431d, 0x282dea25, + 0x144d092d, 0x50ec2c35, 0x6c8ccf3d, 0x91344406, 0xad54a70e, + 0xe9f58216, 0xd595611e, 0x60b7c826, 0x5cd72b2e, 0x18760e36, + 0x2416ed3e, 0xa9425a07, 0x9522b90f, 0xd1839c17, 0xede37f1f, + 0x58c1d627, 0x64a1352f, 0x20001037, 0x1c60f33f, 0x18c1f649, + 0x24a11541, 0x60003059, 0x5c60d351, 0xe9427a69, 0xd5229961, + 0x9183bc79, 0xade35f71, 0x20b7e848, 0x1cd70b40, 0x58762e58, + 0x6416cd50, 0xd1346468, 0xed548760, 0xa9f5a278, 0x95954170, + 0x682dca4b, 0x544d2943, 0x10ec0c5b, 0x2c8cef53, 0x99ae466b, + 0xa5cea563, 0xe16f807b, 0xdd0f6373, 0x505bd44a, 0x6c3b3742, + 0x289a125a, 0x14faf152, 0xa1d8586a, 0x9db8bb62, 0xd9199e7a, + 0xe5797d72, 0xf9198e4d, 0xc5796d45, 0x81d8485d, 0xbdb8ab55, + 0x089a026d, 0x34fae165, 0x705bc47d, 0x4c3b2775, 0xc16f904c, + 0xfd0f7344, 0xb9ae565c, 0x85ceb554, 0x30ec1c6c, 0x0c8cff64, + 0x482dda7c, 0x744d3974, 0x89f5b24f, 0xb5955147, 0xf134745f, + 0xcd549757, 0x78763e6f, 0x4416dd67, 0x00b7f87f, 0x3cd71b77, + 0xb183ac4e, 0x8de34f46, 0xc9426a5e, 0xf5228956, 0x4000206e, + 0x7c60c366, 0x38c1e67e, 0x04a10576, 0x3183ec92, 0x0de30f9a, + 0x49422a82, 0x7522c98a, 0xc00060b2, 0xfc6083ba, 0xb8c1a6a2, + 0x84a145aa, 0x09f5f293, 0x3595119b, 0x71343483, 0x4d54d78b, + 0xf8767eb3, 0xc4169dbb, 0x80b7b8a3, 0xbcd75bab, 0x416fd090, + 0x7d0f3398, 0x39ae1680, 0x05cef588, 0xb0ec5cb0, 0x8c8cbfb8, + 0xc82d9aa0, 0xf44d79a8, 0x7919ce91, 0x45792d99, 0x01d80881, + 0x3db8eb89, 0x889a42b1, 0xb4faa1b9, 0xf05b84a1, 0xcc3b67a9, + 0xd05b9496, 0xec3b779e, 0xa89a5286, 0x94fab18e, 0x21d818b6, + 0x1db8fbbe, 0x5919dea6, 0x65793dae, 0xe82d8a97, 0xd44d699f, + 0x90ec4c87, 0xac8caf8f, 0x19ae06b7, 0x25cee5bf, 0x616fc0a7, + 0x5d0f23af, 0xa0b7a894, 0x9cd74b9c, 0xd8766e84, 0xe4168d8c, + 0x513424b4, 0x6d54c7bc, 0x29f5e2a4, 0x159501ac, 0x98c1b695, + 0xa4a1559d, 0xe0007085, 0xdc60938d, 0x69423ab5, 0x5522d9bd, + 0x1183fca5, 0x2de31fad, 0x29421adb, 0x1522f9d3, 0x5183dccb, + 0x6de33fc3, 0xd8c196fb, 0xe4a175f3, 0xa00050eb, 0x9c60b3e3, + 0x113404da, 0x2d54e7d2, 0x69f5c2ca, 0x559521c2, 0xe0b788fa, + 0xdcd76bf2, 0x98764eea, 0xa416ade2, 0x59ae26d9, 0x65cec5d1, + 0x216fe0c9, 0x1d0f03c1, 0xa82daaf9, 0x944d49f1, 0xd0ec6ce9, + 0xec8c8fe1, 0x61d838d8, 0x5db8dbd0, 0x1919fec8, 0x25791dc0, + 0x905bb4f8, 0xac3b57f0, 0xe89a72e8, 0xd4fa91e0, 0xc89a62df, + 0xf4fa81d7, 0xb05ba4cf, 0x8c3b47c7, 0x3919eeff, 0x05790df7, + 0x41d828ef, 0x7db8cbe7, 0xf0ec7cde, 0xcc8c9fd6, 0x882dbace, + 0xb44d59c6, 0x016ff0fe, 0x3d0f13f6, 0x79ae36ee, 0x45ced5e6, + 0xb8765edd, 0x8416bdd5, 0xc0b798cd, 0xfcd77bc5, 0x49f5d2fd, + 0x759531f5, 0x313414ed, 0x0d54f7e5, 0x800040dc, 0xbc60a3d4, + 0xf8c186cc, 0xc4a165c4, 0x7183ccfc, 0x4de32ff4, 0x09420aec, + 0x3522e9e4}, + {0x00000000, 0x6307d924, 0xc60fb248, 0xa5086b6c, 0x576e62d1, + 0x3469bbf5, 0x9161d099, 0xf26609bd, 0xaedcc5a2, 0xcddb1c86, + 0x68d377ea, 0x0bd4aece, 0xf9b2a773, 0x9ab57e57, 0x3fbd153b, + 0x5cbacc1f, 0x86c88d05, 0xe5cf5421, 0x40c73f4d, 0x23c0e669, + 0xd1a6efd4, 0xb2a136f0, 0x17a95d9c, 0x74ae84b8, 0x281448a7, + 0x4b139183, 0xee1bfaef, 0x8d1c23cb, 0x7f7a2a76, 0x1c7df352, + 0xb975983e, 0xda72411a, 0xd6e01c4b, 0xb5e7c56f, 0x10efae03, + 0x73e87727, 0x818e7e9a, 0xe289a7be, 0x4781ccd2, 0x248615f6, + 0x783cd9e9, 0x1b3b00cd, 0xbe336ba1, 0xdd34b285, 0x2f52bb38, + 0x4c55621c, 0xe95d0970, 0x8a5ad054, 0x5028914e, 0x332f486a, + 0x96272306, 0xf520fa22, 0x0746f39f, 0x64412abb, 0xc14941d7, + 0xa24e98f3, 0xfef454ec, 0x9df38dc8, 0x38fbe6a4, 0x5bfc3f80, + 0xa99a363d, 0xca9def19, 0x6f958475, 0x0c925d51, 0x76b13ed7, + 0x15b6e7f3, 0xb0be8c9f, 0xd3b955bb, 0x21df5c06, 0x42d88522, + 0xe7d0ee4e, 0x84d7376a, 0xd86dfb75, 0xbb6a2251, 0x1e62493d, + 0x7d659019, 0x8f0399a4, 0xec044080, 0x490c2bec, 0x2a0bf2c8, + 0xf079b3d2, 0x937e6af6, 0x3676019a, 0x5571d8be, 0xa717d103, + 0xc4100827, 0x6118634b, 0x021fba6f, 0x5ea57670, 0x3da2af54, + 0x98aac438, 0xfbad1d1c, 0x09cb14a1, 0x6acccd85, 0xcfc4a6e9, + 0xacc37fcd, 0xa051229c, 0xc356fbb8, 0x665e90d4, 0x055949f0, + 0xf73f404d, 0x94389969, 0x3130f205, 0x52372b21, 0x0e8de73e, + 0x6d8a3e1a, 0xc8825576, 0xab858c52, 0x59e385ef, 0x3ae45ccb, + 0x9fec37a7, 0xfcebee83, 0x2699af99, 0x459e76bd, 0xe0961dd1, + 0x8391c4f5, 0x71f7cd48, 0x12f0146c, 0xb7f87f00, 0xd4ffa624, + 0x88456a3b, 0xeb42b31f, 0x4e4ad873, 0x2d4d0157, 0xdf2b08ea, + 0xbc2cd1ce, 0x1924baa2, 0x7a236386, 0xed627dae, 0x8e65a48a, + 0x2b6dcfe6, 0x486a16c2, 0xba0c1f7f, 0xd90bc65b, 0x7c03ad37, + 0x1f047413, 0x43beb80c, 0x20b96128, 0x85b10a44, 0xe6b6d360, + 0x14d0dadd, 0x77d703f9, 0xd2df6895, 0xb1d8b1b1, 0x6baaf0ab, + 0x08ad298f, 0xada542e3, 0xcea29bc7, 0x3cc4927a, 0x5fc34b5e, + 0xfacb2032, 0x99ccf916, 0xc5763509, 0xa671ec2d, 0x03798741, + 0x607e5e65, 0x921857d8, 0xf11f8efc, 0x5417e590, 0x37103cb4, + 0x3b8261e5, 0x5885b8c1, 0xfd8dd3ad, 0x9e8a0a89, 0x6cec0334, + 0x0febda10, 0xaae3b17c, 0xc9e46858, 0x955ea447, 0xf6597d63, + 0x5351160f, 0x3056cf2b, 0xc230c696, 0xa1371fb2, 0x043f74de, + 0x6738adfa, 0xbd4aece0, 0xde4d35c4, 0x7b455ea8, 0x1842878c, + 0xea248e31, 0x89235715, 0x2c2b3c79, 0x4f2ce55d, 0x13962942, + 0x7091f066, 0xd5999b0a, 0xb69e422e, 0x44f84b93, 0x27ff92b7, + 0x82f7f9db, 0xe1f020ff, 0x9bd34379, 0xf8d49a5d, 0x5ddcf131, + 0x3edb2815, 0xccbd21a8, 0xafbaf88c, 0x0ab293e0, 0x69b54ac4, + 0x350f86db, 0x56085fff, 0xf3003493, 0x9007edb7, 0x6261e40a, + 0x01663d2e, 0xa46e5642, 0xc7698f66, 0x1d1bce7c, 0x7e1c1758, + 0xdb147c34, 0xb813a510, 0x4a75acad, 0x29727589, 0x8c7a1ee5, + 0xef7dc7c1, 0xb3c70bde, 0xd0c0d2fa, 0x75c8b996, 0x16cf60b2, + 0xe4a9690f, 0x87aeb02b, 0x22a6db47, 0x41a10263, 0x4d335f32, + 0x2e348616, 0x8b3ced7a, 0xe83b345e, 0x1a5d3de3, 0x795ae4c7, + 0xdc528fab, 0xbf55568f, 0xe3ef9a90, 0x80e843b4, 0x25e028d8, + 0x46e7f1fc, 0xb481f841, 0xd7862165, 0x728e4a09, 0x1189932d, + 0xcbfbd237, 0xa8fc0b13, 0x0df4607f, 0x6ef3b95b, 0x9c95b0e6, + 0xff9269c2, 0x5a9a02ae, 0x399ddb8a, 0x65271795, 0x0620ceb1, + 0xa328a5dd, 0xc02f7cf9, 0x32497544, 0x514eac60, 0xf446c70c, + 0x97411e28}, + {0x00000000, 0x01b5fd1d, 0x036bfa3a, 0x02de0727, 0x06d7f474, + 0x07620969, 0x05bc0e4e, 0x0409f353, 0x0dafe8e8, 0x0c1a15f5, + 0x0ec412d2, 0x0f71efcf, 0x0b781c9c, 0x0acde181, 0x0813e6a6, + 0x09a61bbb, 0x1b5fd1d0, 0x1aea2ccd, 0x18342bea, 0x1981d6f7, + 0x1d8825a4, 0x1c3dd8b9, 0x1ee3df9e, 0x1f562283, 0x16f03938, + 0x1745c425, 0x159bc302, 0x142e3e1f, 0x1027cd4c, 0x11923051, + 0x134c3776, 0x12f9ca6b, 0x36bfa3a0, 0x370a5ebd, 0x35d4599a, + 0x3461a487, 0x306857d4, 0x31ddaac9, 0x3303adee, 0x32b650f3, + 0x3b104b48, 0x3aa5b655, 0x387bb172, 0x39ce4c6f, 0x3dc7bf3c, + 0x3c724221, 0x3eac4506, 0x3f19b81b, 0x2de07270, 0x2c558f6d, + 0x2e8b884a, 0x2f3e7557, 0x2b378604, 0x2a827b19, 0x285c7c3e, + 0x29e98123, 0x204f9a98, 0x21fa6785, 0x232460a2, 0x22919dbf, + 0x26986eec, 0x272d93f1, 0x25f394d6, 0x244669cb, 0x6d7f4740, + 0x6ccaba5d, 0x6e14bd7a, 0x6fa14067, 0x6ba8b334, 0x6a1d4e29, + 0x68c3490e, 0x6976b413, 0x60d0afa8, 0x616552b5, 0x63bb5592, + 0x620ea88f, 0x66075bdc, 0x67b2a6c1, 0x656ca1e6, 0x64d95cfb, + 0x76209690, 0x77956b8d, 0x754b6caa, 0x74fe91b7, 0x70f762e4, + 0x71429ff9, 0x739c98de, 0x722965c3, 0x7b8f7e78, 0x7a3a8365, + 0x78e48442, 0x7951795f, 0x7d588a0c, 0x7ced7711, 0x7e337036, + 0x7f868d2b, 0x5bc0e4e0, 0x5a7519fd, 0x58ab1eda, 0x591ee3c7, + 0x5d171094, 0x5ca2ed89, 0x5e7ceaae, 0x5fc917b3, 0x566f0c08, + 0x57daf115, 0x5504f632, 0x54b10b2f, 0x50b8f87c, 0x510d0561, + 0x53d30246, 0x5266ff5b, 0x409f3530, 0x412ac82d, 0x43f4cf0a, + 0x42413217, 0x4648c144, 0x47fd3c59, 0x45233b7e, 0x4496c663, + 0x4d30ddd8, 0x4c8520c5, 0x4e5b27e2, 0x4feedaff, 0x4be729ac, + 0x4a52d4b1, 0x488cd396, 0x49392e8b, 0xdafe8e80, 0xdb4b739d, + 0xd99574ba, 0xd82089a7, 0xdc297af4, 0xdd9c87e9, 0xdf4280ce, + 0xdef77dd3, 0xd7516668, 0xd6e49b75, 0xd43a9c52, 0xd58f614f, + 0xd186921c, 0xd0336f01, 0xd2ed6826, 0xd358953b, 0xc1a15f50, + 0xc014a24d, 0xc2caa56a, 0xc37f5877, 0xc776ab24, 0xc6c35639, + 0xc41d511e, 0xc5a8ac03, 0xcc0eb7b8, 0xcdbb4aa5, 0xcf654d82, + 0xced0b09f, 0xcad943cc, 0xcb6cbed1, 0xc9b2b9f6, 0xc80744eb, + 0xec412d20, 0xedf4d03d, 0xef2ad71a, 0xee9f2a07, 0xea96d954, + 0xeb232449, 0xe9fd236e, 0xe848de73, 0xe1eec5c8, 0xe05b38d5, + 0xe2853ff2, 0xe330c2ef, 0xe73931bc, 0xe68ccca1, 0xe452cb86, + 0xe5e7369b, 0xf71efcf0, 0xf6ab01ed, 0xf47506ca, 0xf5c0fbd7, + 0xf1c90884, 0xf07cf599, 0xf2a2f2be, 0xf3170fa3, 0xfab11418, + 0xfb04e905, 0xf9daee22, 0xf86f133f, 0xfc66e06c, 0xfdd31d71, + 0xff0d1a56, 0xfeb8e74b, 0xb781c9c0, 0xb63434dd, 0xb4ea33fa, + 0xb55fcee7, 0xb1563db4, 0xb0e3c0a9, 0xb23dc78e, 0xb3883a93, + 0xba2e2128, 0xbb9bdc35, 0xb945db12, 0xb8f0260f, 0xbcf9d55c, + 0xbd4c2841, 0xbf922f66, 0xbe27d27b, 0xacde1810, 0xad6be50d, + 0xafb5e22a, 0xae001f37, 0xaa09ec64, 0xabbc1179, 0xa962165e, + 0xa8d7eb43, 0xa171f0f8, 0xa0c40de5, 0xa21a0ac2, 0xa3aff7df, + 0xa7a6048c, 0xa613f991, 0xa4cdfeb6, 0xa57803ab, 0x813e6a60, + 0x808b977d, 0x8255905a, 0x83e06d47, 0x87e99e14, 0x865c6309, + 0x8482642e, 0x85379933, 0x8c918288, 0x8d247f95, 0x8ffa78b2, + 0x8e4f85af, 0x8a4676fc, 0x8bf38be1, 0x892d8cc6, 0x889871db, + 0x9a61bbb0, 0x9bd446ad, 0x990a418a, 0x98bfbc97, 0x9cb64fc4, + 0x9d03b2d9, 0x9fddb5fe, 0x9e6848e3, 0x97ce5358, 0x967bae45, + 0x94a5a962, 0x9510547f, 0x9119a72c, 0x90ac5a31, 0x92725d16, + 0x93c7a00b}, + {0x00000000, 0x6e8c1b41, 0xdd183682, 0xb3942dc3, 0x61416b45, + 0x0fcd7004, 0xbc595dc7, 0xd2d54686, 0xc282d68a, 0xac0ecdcb, + 0x1f9ae008, 0x7116fb49, 0xa3c3bdcf, 0xcd4fa68e, 0x7edb8b4d, + 0x1057900c, 0x5e74ab55, 0x30f8b014, 0x836c9dd7, 0xede08696, + 0x3f35c010, 0x51b9db51, 0xe22df692, 0x8ca1edd3, 0x9cf67ddf, + 0xf27a669e, 0x41ee4b5d, 0x2f62501c, 0xfdb7169a, 0x933b0ddb, + 0x20af2018, 0x4e233b59, 0xbce956aa, 0xd2654deb, 0x61f16028, + 0x0f7d7b69, 0xdda83def, 0xb32426ae, 0x00b00b6d, 0x6e3c102c, + 0x7e6b8020, 0x10e79b61, 0xa373b6a2, 0xcdffade3, 0x1f2aeb65, + 0x71a6f024, 0xc232dde7, 0xacbec6a6, 0xe29dfdff, 0x8c11e6be, + 0x3f85cb7d, 0x5109d03c, 0x83dc96ba, 0xed508dfb, 0x5ec4a038, + 0x3048bb79, 0x201f2b75, 0x4e933034, 0xfd071df7, 0x938b06b6, + 0x415e4030, 0x2fd25b71, 0x9c4676b2, 0xf2ca6df3, 0xa2a3ab15, + 0xcc2fb054, 0x7fbb9d97, 0x113786d6, 0xc3e2c050, 0xad6edb11, + 0x1efaf6d2, 0x7076ed93, 0x60217d9f, 0x0ead66de, 0xbd394b1d, + 0xd3b5505c, 0x016016da, 0x6fec0d9b, 0xdc782058, 0xb2f43b19, + 0xfcd70040, 0x925b1b01, 0x21cf36c2, 0x4f432d83, 0x9d966b05, + 0xf31a7044, 0x408e5d87, 0x2e0246c6, 0x3e55d6ca, 0x50d9cd8b, + 0xe34de048, 0x8dc1fb09, 0x5f14bd8f, 0x3198a6ce, 0x820c8b0d, + 0xec80904c, 0x1e4afdbf, 0x70c6e6fe, 0xc352cb3d, 0xadded07c, + 0x7f0b96fa, 0x11878dbb, 0xa213a078, 0xcc9fbb39, 0xdcc82b35, + 0xb2443074, 0x01d01db7, 0x6f5c06f6, 0xbd894070, 0xd3055b31, + 0x609176f2, 0x0e1d6db3, 0x403e56ea, 0x2eb24dab, 0x9d266068, + 0xf3aa7b29, 0x217f3daf, 0x4ff326ee, 0xfc670b2d, 0x92eb106c, + 0x82bc8060, 0xec309b21, 0x5fa4b6e2, 0x3128ada3, 0xe3fdeb25, + 0x8d71f064, 0x3ee5dda7, 0x5069c6e6, 0x9e36506b, 0xf0ba4b2a, + 0x432e66e9, 0x2da27da8, 0xff773b2e, 0x91fb206f, 0x226f0dac, + 0x4ce316ed, 0x5cb486e1, 0x32389da0, 0x81acb063, 0xef20ab22, + 0x3df5eda4, 0x5379f6e5, 0xe0eddb26, 0x8e61c067, 0xc042fb3e, + 0xaecee07f, 0x1d5acdbc, 0x73d6d6fd, 0xa103907b, 0xcf8f8b3a, + 0x7c1ba6f9, 0x1297bdb8, 0x02c02db4, 0x6c4c36f5, 0xdfd81b36, + 0xb1540077, 0x638146f1, 0x0d0d5db0, 0xbe997073, 0xd0156b32, + 0x22df06c1, 0x4c531d80, 0xffc73043, 0x914b2b02, 0x439e6d84, + 0x2d1276c5, 0x9e865b06, 0xf00a4047, 0xe05dd04b, 0x8ed1cb0a, + 0x3d45e6c9, 0x53c9fd88, 0x811cbb0e, 0xef90a04f, 0x5c048d8c, + 0x328896cd, 0x7cabad94, 0x1227b6d5, 0xa1b39b16, 0xcf3f8057, + 0x1deac6d1, 0x7366dd90, 0xc0f2f053, 0xae7eeb12, 0xbe297b1e, + 0xd0a5605f, 0x63314d9c, 0x0dbd56dd, 0xdf68105b, 0xb1e40b1a, + 0x027026d9, 0x6cfc3d98, 0x3c95fb7e, 0x5219e03f, 0xe18dcdfc, + 0x8f01d6bd, 0x5dd4903b, 0x33588b7a, 0x80cca6b9, 0xee40bdf8, + 0xfe172df4, 0x909b36b5, 0x230f1b76, 0x4d830037, 0x9f5646b1, + 0xf1da5df0, 0x424e7033, 0x2cc26b72, 0x62e1502b, 0x0c6d4b6a, + 0xbff966a9, 0xd1757de8, 0x03a03b6e, 0x6d2c202f, 0xdeb80dec, + 0xb03416ad, 0xa06386a1, 0xceef9de0, 0x7d7bb023, 0x13f7ab62, + 0xc122ede4, 0xafaef6a5, 0x1c3adb66, 0x72b6c027, 0x807cadd4, + 0xeef0b695, 0x5d649b56, 0x33e88017, 0xe13dc691, 0x8fb1ddd0, + 0x3c25f013, 0x52a9eb52, 0x42fe7b5e, 0x2c72601f, 0x9fe64ddc, + 0xf16a569d, 0x23bf101b, 0x4d330b5a, 0xfea72699, 0x902b3dd8, + 0xde080681, 0xb0841dc0, 0x03103003, 0x6d9c2b42, 0xbf496dc4, + 0xd1c57685, 0x62515b46, 0x0cdd4007, 0x1c8ad00b, 0x7206cb4a, + 0xc192e689, 0xaf1efdc8, 0x7dcbbb4e, 0x1347a00f, 0xa0d38dcc, + 0xce5f968d}, + {0x00000000, 0xe71da697, 0x154a4b6f, 0xf257edf8, 0x2a9496de, + 0xcd893049, 0x3fdeddb1, 0xd8c37b26, 0x55292dbc, 0xb2348b2b, + 0x406366d3, 0xa77ec044, 0x7fbdbb62, 0x98a01df5, 0x6af7f00d, + 0x8dea569a, 0xaa525b78, 0x4d4ffdef, 0xbf181017, 0x5805b680, + 0x80c6cda6, 0x67db6b31, 0x958c86c9, 0x7291205e, 0xff7b76c4, + 0x1866d053, 0xea313dab, 0x0d2c9b3c, 0xd5efe01a, 0x32f2468d, + 0xc0a5ab75, 0x27b80de2, 0x8fd5b0b1, 0x68c81626, 0x9a9ffbde, + 0x7d825d49, 0xa541266f, 0x425c80f8, 0xb00b6d00, 0x5716cb97, + 0xdafc9d0d, 0x3de13b9a, 0xcfb6d662, 0x28ab70f5, 0xf0680bd3, + 0x1775ad44, 0xe52240bc, 0x023fe62b, 0x2587ebc9, 0xc29a4d5e, + 0x30cda0a6, 0xd7d00631, 0x0f137d17, 0xe80edb80, 0x1a593678, + 0xfd4490ef, 0x70aec675, 0x97b360e2, 0x65e48d1a, 0x82f92b8d, + 0x5a3a50ab, 0xbd27f63c, 0x4f701bc4, 0xa86dbd53, 0xc4da6723, + 0x23c7c1b4, 0xd1902c4c, 0x368d8adb, 0xee4ef1fd, 0x0953576a, + 0xfb04ba92, 0x1c191c05, 0x91f34a9f, 0x76eeec08, 0x84b901f0, + 0x63a4a767, 0xbb67dc41, 0x5c7a7ad6, 0xae2d972e, 0x493031b9, + 0x6e883c5b, 0x89959acc, 0x7bc27734, 0x9cdfd1a3, 0x441caa85, + 0xa3010c12, 0x5156e1ea, 0xb64b477d, 0x3ba111e7, 0xdcbcb770, + 0x2eeb5a88, 0xc9f6fc1f, 0x11358739, 0xf62821ae, 0x047fcc56, + 0xe3626ac1, 0x4b0fd792, 0xac127105, 0x5e459cfd, 0xb9583a6a, + 0x619b414c, 0x8686e7db, 0x74d10a23, 0x93ccacb4, 0x1e26fa2e, + 0xf93b5cb9, 0x0b6cb141, 0xec7117d6, 0x34b26cf0, 0xd3afca67, + 0x21f8279f, 0xc6e58108, 0xe15d8cea, 0x06402a7d, 0xf417c785, + 0x130a6112, 0xcbc91a34, 0x2cd4bca3, 0xde83515b, 0x399ef7cc, + 0xb474a156, 0x536907c1, 0xa13eea39, 0x46234cae, 0x9ee03788, + 0x79fd911f, 0x8baa7ce7, 0x6cb7da70, 0x52c5c807, 0xb5d86e90, + 0x478f8368, 0xa09225ff, 0x78515ed9, 0x9f4cf84e, 0x6d1b15b6, + 0x8a06b321, 0x07ece5bb, 0xe0f1432c, 0x12a6aed4, 0xf5bb0843, + 0x2d787365, 0xca65d5f2, 0x3832380a, 0xdf2f9e9d, 0xf897937f, + 0x1f8a35e8, 0xedddd810, 0x0ac07e87, 0xd20305a1, 0x351ea336, + 0xc7494ece, 0x2054e859, 0xadbebec3, 0x4aa31854, 0xb8f4f5ac, + 0x5fe9533b, 0x872a281d, 0x60378e8a, 0x92606372, 0x757dc5e5, + 0xdd1078b6, 0x3a0dde21, 0xc85a33d9, 0x2f47954e, 0xf784ee68, + 0x109948ff, 0xe2cea507, 0x05d30390, 0x8839550a, 0x6f24f39d, + 0x9d731e65, 0x7a6eb8f2, 0xa2adc3d4, 0x45b06543, 0xb7e788bb, + 0x50fa2e2c, 0x774223ce, 0x905f8559, 0x620868a1, 0x8515ce36, + 0x5dd6b510, 0xbacb1387, 0x489cfe7f, 0xaf8158e8, 0x226b0e72, + 0xc576a8e5, 0x3721451d, 0xd03ce38a, 0x08ff98ac, 0xefe23e3b, + 0x1db5d3c3, 0xfaa87554, 0x961faf24, 0x710209b3, 0x8355e44b, + 0x644842dc, 0xbc8b39fa, 0x5b969f6d, 0xa9c17295, 0x4edcd402, + 0xc3368298, 0x242b240f, 0xd67cc9f7, 0x31616f60, 0xe9a21446, + 0x0ebfb2d1, 0xfce85f29, 0x1bf5f9be, 0x3c4df45c, 0xdb5052cb, + 0x2907bf33, 0xce1a19a4, 0x16d96282, 0xf1c4c415, 0x039329ed, + 0xe48e8f7a, 0x6964d9e0, 0x8e797f77, 0x7c2e928f, 0x9b333418, + 0x43f04f3e, 0xa4ede9a9, 0x56ba0451, 0xb1a7a2c6, 0x19ca1f95, + 0xfed7b902, 0x0c8054fa, 0xeb9df26d, 0x335e894b, 0xd4432fdc, + 0x2614c224, 0xc10964b3, 0x4ce33229, 0xabfe94be, 0x59a97946, + 0xbeb4dfd1, 0x6677a4f7, 0x816a0260, 0x733def98, 0x9420490f, + 0xb39844ed, 0x5485e27a, 0xa6d20f82, 0x41cfa915, 0x990cd233, + 0x7e1174a4, 0x8c46995c, 0x6b5b3fcb, 0xe6b16951, 0x01accfc6, + 0xf3fb223e, 0x14e684a9, 0xcc25ff8f, 0x2b385918, 0xd96fb4e0, + 0x3e721277}, + {0x00000000, 0xa58b900e, 0x9066265d, 0x35edb653, 0xfbbd4afb, + 0x5e36daf5, 0x6bdb6ca6, 0xce50fca8, 0x2c0b93b7, 0x898003b9, + 0xbc6db5ea, 0x19e625e4, 0xd7b6d94c, 0x723d4942, 0x47d0ff11, + 0xe25b6f1f, 0x5817276e, 0xfd9cb760, 0xc8710133, 0x6dfa913d, + 0xa3aa6d95, 0x0621fd9b, 0x33cc4bc8, 0x9647dbc6, 0x741cb4d9, + 0xd19724d7, 0xe47a9284, 0x41f1028a, 0x8fa1fe22, 0x2a2a6e2c, + 0x1fc7d87f, 0xba4c4871, 0xb02e4edc, 0x15a5ded2, 0x20486881, + 0x85c3f88f, 0x4b930427, 0xee189429, 0xdbf5227a, 0x7e7eb274, + 0x9c25dd6b, 0x39ae4d65, 0x0c43fb36, 0xa9c86b38, 0x67989790, + 0xc213079e, 0xf7feb1cd, 0x527521c3, 0xe83969b2, 0x4db2f9bc, + 0x785f4fef, 0xddd4dfe1, 0x13842349, 0xb60fb347, 0x83e20514, + 0x2669951a, 0xc432fa05, 0x61b96a0b, 0x5454dc58, 0xf1df4c56, + 0x3f8fb0fe, 0x9a0420f0, 0xafe996a3, 0x0a6206ad, 0xbb2d9bf9, + 0x1ea60bf7, 0x2b4bbda4, 0x8ec02daa, 0x4090d102, 0xe51b410c, + 0xd0f6f75f, 0x757d6751, 0x9726084e, 0x32ad9840, 0x07402e13, + 0xa2cbbe1d, 0x6c9b42b5, 0xc910d2bb, 0xfcfd64e8, 0x5976f4e6, + 0xe33abc97, 0x46b12c99, 0x735c9aca, 0xd6d70ac4, 0x1887f66c, + 0xbd0c6662, 0x88e1d031, 0x2d6a403f, 0xcf312f20, 0x6ababf2e, + 0x5f57097d, 0xfadc9973, 0x348c65db, 0x9107f5d5, 0xa4ea4386, + 0x0161d388, 0x0b03d525, 0xae88452b, 0x9b65f378, 0x3eee6376, + 0xf0be9fde, 0x55350fd0, 0x60d8b983, 0xc553298d, 0x27084692, + 0x8283d69c, 0xb76e60cf, 0x12e5f0c1, 0xdcb50c69, 0x793e9c67, + 0x4cd32a34, 0xe958ba3a, 0x5314f24b, 0xf69f6245, 0xc372d416, + 0x66f94418, 0xa8a9b8b0, 0x0d2228be, 0x38cf9eed, 0x9d440ee3, + 0x7f1f61fc, 0xda94f1f2, 0xef7947a1, 0x4af2d7af, 0x84a22b07, + 0x2129bb09, 0x14c40d5a, 0xb14f9d54, 0xad2a31b3, 0x08a1a1bd, + 0x3d4c17ee, 0x98c787e0, 0x56977b48, 0xf31ceb46, 0xc6f15d15, + 0x637acd1b, 0x8121a204, 0x24aa320a, 0x11478459, 0xb4cc1457, + 0x7a9ce8ff, 0xdf1778f1, 0xeafacea2, 0x4f715eac, 0xf53d16dd, + 0x50b686d3, 0x655b3080, 0xc0d0a08e, 0x0e805c26, 0xab0bcc28, + 0x9ee67a7b, 0x3b6dea75, 0xd936856a, 0x7cbd1564, 0x4950a337, + 0xecdb3339, 0x228bcf91, 0x87005f9f, 0xb2ede9cc, 0x176679c2, + 0x1d047f6f, 0xb88fef61, 0x8d625932, 0x28e9c93c, 0xe6b93594, + 0x4332a59a, 0x76df13c9, 0xd35483c7, 0x310fecd8, 0x94847cd6, + 0xa169ca85, 0x04e25a8b, 0xcab2a623, 0x6f39362d, 0x5ad4807e, + 0xff5f1070, 0x45135801, 0xe098c80f, 0xd5757e5c, 0x70feee52, + 0xbeae12fa, 0x1b2582f4, 0x2ec834a7, 0x8b43a4a9, 0x6918cbb6, + 0xcc935bb8, 0xf97eedeb, 0x5cf57de5, 0x92a5814d, 0x372e1143, + 0x02c3a710, 0xa748371e, 0x1607aa4a, 0xb38c3a44, 0x86618c17, + 0x23ea1c19, 0xedbae0b1, 0x483170bf, 0x7ddcc6ec, 0xd85756e2, + 0x3a0c39fd, 0x9f87a9f3, 0xaa6a1fa0, 0x0fe18fae, 0xc1b17306, + 0x643ae308, 0x51d7555b, 0xf45cc555, 0x4e108d24, 0xeb9b1d2a, + 0xde76ab79, 0x7bfd3b77, 0xb5adc7df, 0x102657d1, 0x25cbe182, + 0x8040718c, 0x621b1e93, 0xc7908e9d, 0xf27d38ce, 0x57f6a8c0, + 0x99a65468, 0x3c2dc466, 0x09c07235, 0xac4be23b, 0xa629e496, + 0x03a27498, 0x364fc2cb, 0x93c452c5, 0x5d94ae6d, 0xf81f3e63, + 0xcdf28830, 0x6879183e, 0x8a227721, 0x2fa9e72f, 0x1a44517c, + 0xbfcfc172, 0x719f3dda, 0xd414add4, 0xe1f91b87, 0x44728b89, + 0xfe3ec3f8, 0x5bb553f6, 0x6e58e5a5, 0xcbd375ab, 0x05838903, + 0xa008190d, 0x95e5af5e, 0x306e3f50, 0xd235504f, 0x77bec041, + 0x42537612, 0xe7d8e61c, 0x29881ab4, 0x8c038aba, 0xb9ee3ce9, + 0x1c65ace7}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x0000000000000000, 0x0e908ba500000000, 0x5d26669000000000, + 0x53b6ed3500000000, 0xfb4abdfb00000000, 0xf5da365e00000000, + 0xa66cdb6b00000000, 0xa8fc50ce00000000, 0xb7930b2c00000000, + 0xb903808900000000, 0xeab56dbc00000000, 0xe425e61900000000, + 0x4cd9b6d700000000, 0x42493d7200000000, 0x11ffd04700000000, + 0x1f6f5be200000000, 0x6e27175800000000, 0x60b79cfd00000000, + 0x330171c800000000, 0x3d91fa6d00000000, 0x956daaa300000000, + 0x9bfd210600000000, 0xc84bcc3300000000, 0xc6db479600000000, + 0xd9b41c7400000000, 0xd72497d100000000, 0x84927ae400000000, + 0x8a02f14100000000, 0x22fea18f00000000, 0x2c6e2a2a00000000, + 0x7fd8c71f00000000, 0x71484cba00000000, 0xdc4e2eb000000000, + 0xd2dea51500000000, 0x8168482000000000, 0x8ff8c38500000000, + 0x2704934b00000000, 0x299418ee00000000, 0x7a22f5db00000000, + 0x74b27e7e00000000, 0x6bdd259c00000000, 0x654dae3900000000, + 0x36fb430c00000000, 0x386bc8a900000000, 0x9097986700000000, + 0x9e0713c200000000, 0xcdb1fef700000000, 0xc321755200000000, + 0xb26939e800000000, 0xbcf9b24d00000000, 0xef4f5f7800000000, + 0xe1dfd4dd00000000, 0x4923841300000000, 0x47b30fb600000000, + 0x1405e28300000000, 0x1a95692600000000, 0x05fa32c400000000, + 0x0b6ab96100000000, 0x58dc545400000000, 0x564cdff100000000, + 0xfeb08f3f00000000, 0xf020049a00000000, 0xa396e9af00000000, + 0xad06620a00000000, 0xf99b2dbb00000000, 0xf70ba61e00000000, + 0xa4bd4b2b00000000, 0xaa2dc08e00000000, 0x02d1904000000000, + 0x0c411be500000000, 0x5ff7f6d000000000, 0x51677d7500000000, + 0x4e08269700000000, 0x4098ad3200000000, 0x132e400700000000, + 0x1dbecba200000000, 0xb5429b6c00000000, 0xbbd210c900000000, + 0xe864fdfc00000000, 0xe6f4765900000000, 0x97bc3ae300000000, + 0x992cb14600000000, 0xca9a5c7300000000, 0xc40ad7d600000000, + 0x6cf6871800000000, 0x62660cbd00000000, 0x31d0e18800000000, + 0x3f406a2d00000000, 0x202f31cf00000000, 0x2ebfba6a00000000, + 0x7d09575f00000000, 0x7399dcfa00000000, 0xdb658c3400000000, + 0xd5f5079100000000, 0x8643eaa400000000, 0x88d3610100000000, + 0x25d5030b00000000, 0x2b4588ae00000000, 0x78f3659b00000000, + 0x7663ee3e00000000, 0xde9fbef000000000, 0xd00f355500000000, + 0x83b9d86000000000, 0x8d2953c500000000, 0x9246082700000000, + 0x9cd6838200000000, 0xcf606eb700000000, 0xc1f0e51200000000, + 0x690cb5dc00000000, 0x679c3e7900000000, 0x342ad34c00000000, + 0x3aba58e900000000, 0x4bf2145300000000, 0x45629ff600000000, + 0x16d472c300000000, 0x1844f96600000000, 0xb0b8a9a800000000, + 0xbe28220d00000000, 0xed9ecf3800000000, 0xe30e449d00000000, + 0xfc611f7f00000000, 0xf2f194da00000000, 0xa14779ef00000000, + 0xafd7f24a00000000, 0x072ba28400000000, 0x09bb292100000000, + 0x5a0dc41400000000, 0x549d4fb100000000, 0xb3312aad00000000, + 0xbda1a10800000000, 0xee174c3d00000000, 0xe087c79800000000, + 0x487b975600000000, 0x46eb1cf300000000, 0x155df1c600000000, + 0x1bcd7a6300000000, 0x04a2218100000000, 0x0a32aa2400000000, + 0x5984471100000000, 0x5714ccb400000000, 0xffe89c7a00000000, + 0xf17817df00000000, 0xa2cefaea00000000, 0xac5e714f00000000, + 0xdd163df500000000, 0xd386b65000000000, 0x80305b6500000000, + 0x8ea0d0c000000000, 0x265c800e00000000, 0x28cc0bab00000000, + 0x7b7ae69e00000000, 0x75ea6d3b00000000, 0x6a8536d900000000, + 0x6415bd7c00000000, 0x37a3504900000000, 0x3933dbec00000000, + 0x91cf8b2200000000, 0x9f5f008700000000, 0xcce9edb200000000, + 0xc279661700000000, 0x6f7f041d00000000, 0x61ef8fb800000000, + 0x3259628d00000000, 0x3cc9e92800000000, 0x9435b9e600000000, + 0x9aa5324300000000, 0xc913df7600000000, 0xc78354d300000000, + 0xd8ec0f3100000000, 0xd67c849400000000, 0x85ca69a100000000, + 0x8b5ae20400000000, 0x23a6b2ca00000000, 0x2d36396f00000000, + 0x7e80d45a00000000, 0x70105fff00000000, 0x0158134500000000, + 0x0fc898e000000000, 0x5c7e75d500000000, 0x52eefe7000000000, + 0xfa12aebe00000000, 0xf482251b00000000, 0xa734c82e00000000, + 0xa9a4438b00000000, 0xb6cb186900000000, 0xb85b93cc00000000, + 0xebed7ef900000000, 0xe57df55c00000000, 0x4d81a59200000000, + 0x43112e3700000000, 0x10a7c30200000000, 0x1e3748a700000000, + 0x4aaa071600000000, 0x443a8cb300000000, 0x178c618600000000, + 0x191cea2300000000, 0xb1e0baed00000000, 0xbf70314800000000, + 0xecc6dc7d00000000, 0xe25657d800000000, 0xfd390c3a00000000, + 0xf3a9879f00000000, 0xa01f6aaa00000000, 0xae8fe10f00000000, + 0x0673b1c100000000, 0x08e33a6400000000, 0x5b55d75100000000, + 0x55c55cf400000000, 0x248d104e00000000, 0x2a1d9beb00000000, + 0x79ab76de00000000, 0x773bfd7b00000000, 0xdfc7adb500000000, + 0xd157261000000000, 0x82e1cb2500000000, 0x8c71408000000000, + 0x931e1b6200000000, 0x9d8e90c700000000, 0xce387df200000000, + 0xc0a8f65700000000, 0x6854a69900000000, 0x66c42d3c00000000, + 0x3572c00900000000, 0x3be24bac00000000, 0x96e429a600000000, + 0x9874a20300000000, 0xcbc24f3600000000, 0xc552c49300000000, + 0x6dae945d00000000, 0x633e1ff800000000, 0x3088f2cd00000000, + 0x3e18796800000000, 0x2177228a00000000, 0x2fe7a92f00000000, + 0x7c51441a00000000, 0x72c1cfbf00000000, 0xda3d9f7100000000, + 0xd4ad14d400000000, 0x871bf9e100000000, 0x898b724400000000, + 0xf8c33efe00000000, 0xf653b55b00000000, 0xa5e5586e00000000, + 0xab75d3cb00000000, 0x0389830500000000, 0x0d1908a000000000, + 0x5eafe59500000000, 0x503f6e3000000000, 0x4f5035d200000000, + 0x41c0be7700000000, 0x1276534200000000, 0x1ce6d8e700000000, + 0xb41a882900000000, 0xba8a038c00000000, 0xe93ceeb900000000, + 0xe7ac651c00000000}, + {0x0000000000000000, 0x97a61de700000000, 0x6f4b4a1500000000, + 0xf8ed57f200000000, 0xde96942a00000000, 0x493089cd00000000, + 0xb1ddde3f00000000, 0x267bc3d800000000, 0xbc2d295500000000, + 0x2b8b34b200000000, 0xd366634000000000, 0x44c07ea700000000, + 0x62bbbd7f00000000, 0xf51da09800000000, 0x0df0f76a00000000, + 0x9a56ea8d00000000, 0x785b52aa00000000, 0xeffd4f4d00000000, + 0x171018bf00000000, 0x80b6055800000000, 0xa6cdc68000000000, + 0x316bdb6700000000, 0xc9868c9500000000, 0x5e20917200000000, + 0xc4767bff00000000, 0x53d0661800000000, 0xab3d31ea00000000, + 0x3c9b2c0d00000000, 0x1ae0efd500000000, 0x8d46f23200000000, + 0x75aba5c000000000, 0xe20db82700000000, 0xb1b0d58f00000000, + 0x2616c86800000000, 0xdefb9f9a00000000, 0x495d827d00000000, + 0x6f2641a500000000, 0xf8805c4200000000, 0x006d0bb000000000, + 0x97cb165700000000, 0x0d9dfcda00000000, 0x9a3be13d00000000, + 0x62d6b6cf00000000, 0xf570ab2800000000, 0xd30b68f000000000, + 0x44ad751700000000, 0xbc4022e500000000, 0x2be63f0200000000, + 0xc9eb872500000000, 0x5e4d9ac200000000, 0xa6a0cd3000000000, + 0x3106d0d700000000, 0x177d130f00000000, 0x80db0ee800000000, + 0x7836591a00000000, 0xef9044fd00000000, 0x75c6ae7000000000, + 0xe260b39700000000, 0x1a8de46500000000, 0x8d2bf98200000000, + 0xab503a5a00000000, 0x3cf627bd00000000, 0xc41b704f00000000, + 0x53bd6da800000000, 0x2367dac400000000, 0xb4c1c72300000000, + 0x4c2c90d100000000, 0xdb8a8d3600000000, 0xfdf14eee00000000, + 0x6a57530900000000, 0x92ba04fb00000000, 0x051c191c00000000, + 0x9f4af39100000000, 0x08ecee7600000000, 0xf001b98400000000, + 0x67a7a46300000000, 0x41dc67bb00000000, 0xd67a7a5c00000000, + 0x2e972dae00000000, 0xb931304900000000, 0x5b3c886e00000000, + 0xcc9a958900000000, 0x3477c27b00000000, 0xa3d1df9c00000000, + 0x85aa1c4400000000, 0x120c01a300000000, 0xeae1565100000000, + 0x7d474bb600000000, 0xe711a13b00000000, 0x70b7bcdc00000000, + 0x885aeb2e00000000, 0x1ffcf6c900000000, 0x3987351100000000, + 0xae2128f600000000, 0x56cc7f0400000000, 0xc16a62e300000000, + 0x92d70f4b00000000, 0x057112ac00000000, 0xfd9c455e00000000, + 0x6a3a58b900000000, 0x4c419b6100000000, 0xdbe7868600000000, + 0x230ad17400000000, 0xb4accc9300000000, 0x2efa261e00000000, + 0xb95c3bf900000000, 0x41b16c0b00000000, 0xd61771ec00000000, + 0xf06cb23400000000, 0x67caafd300000000, 0x9f27f82100000000, + 0x0881e5c600000000, 0xea8c5de100000000, 0x7d2a400600000000, + 0x85c717f400000000, 0x12610a1300000000, 0x341ac9cb00000000, + 0xa3bcd42c00000000, 0x5b5183de00000000, 0xccf79e3900000000, + 0x56a174b400000000, 0xc107695300000000, 0x39ea3ea100000000, + 0xae4c234600000000, 0x8837e09e00000000, 0x1f91fd7900000000, + 0xe77caa8b00000000, 0x70dab76c00000000, 0x07c8c55200000000, + 0x906ed8b500000000, 0x68838f4700000000, 0xff2592a000000000, + 0xd95e517800000000, 0x4ef84c9f00000000, 0xb6151b6d00000000, + 0x21b3068a00000000, 0xbbe5ec0700000000, 0x2c43f1e000000000, + 0xd4aea61200000000, 0x4308bbf500000000, 0x6573782d00000000, + 0xf2d565ca00000000, 0x0a38323800000000, 0x9d9e2fdf00000000, + 0x7f9397f800000000, 0xe8358a1f00000000, 0x10d8dded00000000, + 0x877ec00a00000000, 0xa10503d200000000, 0x36a31e3500000000, + 0xce4e49c700000000, 0x59e8542000000000, 0xc3bebead00000000, + 0x5418a34a00000000, 0xacf5f4b800000000, 0x3b53e95f00000000, + 0x1d282a8700000000, 0x8a8e376000000000, 0x7263609200000000, + 0xe5c57d7500000000, 0xb67810dd00000000, 0x21de0d3a00000000, + 0xd9335ac800000000, 0x4e95472f00000000, 0x68ee84f700000000, + 0xff48991000000000, 0x07a5cee200000000, 0x9003d30500000000, + 0x0a55398800000000, 0x9df3246f00000000, 0x651e739d00000000, + 0xf2b86e7a00000000, 0xd4c3ada200000000, 0x4365b04500000000, + 0xbb88e7b700000000, 0x2c2efa5000000000, 0xce23427700000000, + 0x59855f9000000000, 0xa168086200000000, 0x36ce158500000000, + 0x10b5d65d00000000, 0x8713cbba00000000, 0x7ffe9c4800000000, + 0xe85881af00000000, 0x720e6b2200000000, 0xe5a876c500000000, + 0x1d45213700000000, 0x8ae33cd000000000, 0xac98ff0800000000, + 0x3b3ee2ef00000000, 0xc3d3b51d00000000, 0x5475a8fa00000000, + 0x24af1f9600000000, 0xb309027100000000, 0x4be4558300000000, + 0xdc42486400000000, 0xfa398bbc00000000, 0x6d9f965b00000000, + 0x9572c1a900000000, 0x02d4dc4e00000000, 0x988236c300000000, + 0x0f242b2400000000, 0xf7c97cd600000000, 0x606f613100000000, + 0x4614a2e900000000, 0xd1b2bf0e00000000, 0x295fe8fc00000000, + 0xbef9f51b00000000, 0x5cf44d3c00000000, 0xcb5250db00000000, + 0x33bf072900000000, 0xa4191ace00000000, 0x8262d91600000000, + 0x15c4c4f100000000, 0xed29930300000000, 0x7a8f8ee400000000, + 0xe0d9646900000000, 0x777f798e00000000, 0x8f922e7c00000000, + 0x1834339b00000000, 0x3e4ff04300000000, 0xa9e9eda400000000, + 0x5104ba5600000000, 0xc6a2a7b100000000, 0x951fca1900000000, + 0x02b9d7fe00000000, 0xfa54800c00000000, 0x6df29deb00000000, + 0x4b895e3300000000, 0xdc2f43d400000000, 0x24c2142600000000, + 0xb36409c100000000, 0x2932e34c00000000, 0xbe94feab00000000, + 0x4679a95900000000, 0xd1dfb4be00000000, 0xf7a4776600000000, + 0x60026a8100000000, 0x98ef3d7300000000, 0x0f49209400000000, + 0xed4498b300000000, 0x7ae2855400000000, 0x820fd2a600000000, + 0x15a9cf4100000000, 0x33d20c9900000000, 0xa474117e00000000, + 0x5c99468c00000000, 0xcb3f5b6b00000000, 0x5169b1e600000000, + 0xc6cfac0100000000, 0x3e22fbf300000000, 0xa984e61400000000, + 0x8fff25cc00000000, 0x1859382b00000000, 0xe0b46fd900000000, + 0x7712723e00000000}, + {0x0000000000000000, 0x411b8c6e00000000, 0x823618dd00000000, + 0xc32d94b300000000, 0x456b416100000000, 0x0470cd0f00000000, + 0xc75d59bc00000000, 0x8646d5d200000000, 0x8ad682c200000000, + 0xcbcd0eac00000000, 0x08e09a1f00000000, 0x49fb167100000000, + 0xcfbdc3a300000000, 0x8ea64fcd00000000, 0x4d8bdb7e00000000, + 0x0c90571000000000, 0x55ab745e00000000, 0x14b0f83000000000, + 0xd79d6c8300000000, 0x9686e0ed00000000, 0x10c0353f00000000, + 0x51dbb95100000000, 0x92f62de200000000, 0xd3eda18c00000000, + 0xdf7df69c00000000, 0x9e667af200000000, 0x5d4bee4100000000, + 0x1c50622f00000000, 0x9a16b7fd00000000, 0xdb0d3b9300000000, + 0x1820af2000000000, 0x593b234e00000000, 0xaa56e9bc00000000, + 0xeb4d65d200000000, 0x2860f16100000000, 0x697b7d0f00000000, + 0xef3da8dd00000000, 0xae2624b300000000, 0x6d0bb00000000000, + 0x2c103c6e00000000, 0x20806b7e00000000, 0x619be71000000000, + 0xa2b673a300000000, 0xe3adffcd00000000, 0x65eb2a1f00000000, + 0x24f0a67100000000, 0xe7dd32c200000000, 0xa6c6beac00000000, + 0xfffd9de200000000, 0xbee6118c00000000, 0x7dcb853f00000000, + 0x3cd0095100000000, 0xba96dc8300000000, 0xfb8d50ed00000000, + 0x38a0c45e00000000, 0x79bb483000000000, 0x752b1f2000000000, + 0x3430934e00000000, 0xf71d07fd00000000, 0xb6068b9300000000, + 0x30405e4100000000, 0x715bd22f00000000, 0xb276469c00000000, + 0xf36dcaf200000000, 0x15aba3a200000000, 0x54b02fcc00000000, + 0x979dbb7f00000000, 0xd686371100000000, 0x50c0e2c300000000, + 0x11db6ead00000000, 0xd2f6fa1e00000000, 0x93ed767000000000, + 0x9f7d216000000000, 0xde66ad0e00000000, 0x1d4b39bd00000000, + 0x5c50b5d300000000, 0xda16600100000000, 0x9b0dec6f00000000, + 0x582078dc00000000, 0x193bf4b200000000, 0x4000d7fc00000000, + 0x011b5b9200000000, 0xc236cf2100000000, 0x832d434f00000000, + 0x056b969d00000000, 0x44701af300000000, 0x875d8e4000000000, + 0xc646022e00000000, 0xcad6553e00000000, 0x8bcdd95000000000, + 0x48e04de300000000, 0x09fbc18d00000000, 0x8fbd145f00000000, + 0xcea6983100000000, 0x0d8b0c8200000000, 0x4c9080ec00000000, + 0xbffd4a1e00000000, 0xfee6c67000000000, 0x3dcb52c300000000, + 0x7cd0dead00000000, 0xfa960b7f00000000, 0xbb8d871100000000, + 0x78a013a200000000, 0x39bb9fcc00000000, 0x352bc8dc00000000, + 0x743044b200000000, 0xb71dd00100000000, 0xf6065c6f00000000, + 0x704089bd00000000, 0x315b05d300000000, 0xf276916000000000, + 0xb36d1d0e00000000, 0xea563e4000000000, 0xab4db22e00000000, + 0x6860269d00000000, 0x297baaf300000000, 0xaf3d7f2100000000, + 0xee26f34f00000000, 0x2d0b67fc00000000, 0x6c10eb9200000000, + 0x6080bc8200000000, 0x219b30ec00000000, 0xe2b6a45f00000000, + 0xa3ad283100000000, 0x25ebfde300000000, 0x64f0718d00000000, + 0xa7dde53e00000000, 0xe6c6695000000000, 0x6b50369e00000000, + 0x2a4bbaf000000000, 0xe9662e4300000000, 0xa87da22d00000000, + 0x2e3b77ff00000000, 0x6f20fb9100000000, 0xac0d6f2200000000, + 0xed16e34c00000000, 0xe186b45c00000000, 0xa09d383200000000, + 0x63b0ac8100000000, 0x22ab20ef00000000, 0xa4edf53d00000000, + 0xe5f6795300000000, 0x26dbede000000000, 0x67c0618e00000000, + 0x3efb42c000000000, 0x7fe0ceae00000000, 0xbccd5a1d00000000, + 0xfdd6d67300000000, 0x7b9003a100000000, 0x3a8b8fcf00000000, + 0xf9a61b7c00000000, 0xb8bd971200000000, 0xb42dc00200000000, + 0xf5364c6c00000000, 0x361bd8df00000000, 0x770054b100000000, + 0xf146816300000000, 0xb05d0d0d00000000, 0x737099be00000000, + 0x326b15d000000000, 0xc106df2200000000, 0x801d534c00000000, + 0x4330c7ff00000000, 0x022b4b9100000000, 0x846d9e4300000000, + 0xc576122d00000000, 0x065b869e00000000, 0x47400af000000000, + 0x4bd05de000000000, 0x0acbd18e00000000, 0xc9e6453d00000000, + 0x88fdc95300000000, 0x0ebb1c8100000000, 0x4fa090ef00000000, + 0x8c8d045c00000000, 0xcd96883200000000, 0x94adab7c00000000, + 0xd5b6271200000000, 0x169bb3a100000000, 0x57803fcf00000000, + 0xd1c6ea1d00000000, 0x90dd667300000000, 0x53f0f2c000000000, + 0x12eb7eae00000000, 0x1e7b29be00000000, 0x5f60a5d000000000, + 0x9c4d316300000000, 0xdd56bd0d00000000, 0x5b1068df00000000, + 0x1a0be4b100000000, 0xd926700200000000, 0x983dfc6c00000000, + 0x7efb953c00000000, 0x3fe0195200000000, 0xfccd8de100000000, + 0xbdd6018f00000000, 0x3b90d45d00000000, 0x7a8b583300000000, + 0xb9a6cc8000000000, 0xf8bd40ee00000000, 0xf42d17fe00000000, + 0xb5369b9000000000, 0x761b0f2300000000, 0x3700834d00000000, + 0xb146569f00000000, 0xf05ddaf100000000, 0x33704e4200000000, + 0x726bc22c00000000, 0x2b50e16200000000, 0x6a4b6d0c00000000, + 0xa966f9bf00000000, 0xe87d75d100000000, 0x6e3ba00300000000, + 0x2f202c6d00000000, 0xec0db8de00000000, 0xad1634b000000000, + 0xa18663a000000000, 0xe09defce00000000, 0x23b07b7d00000000, + 0x62abf71300000000, 0xe4ed22c100000000, 0xa5f6aeaf00000000, + 0x66db3a1c00000000, 0x27c0b67200000000, 0xd4ad7c8000000000, + 0x95b6f0ee00000000, 0x569b645d00000000, 0x1780e83300000000, + 0x91c63de100000000, 0xd0ddb18f00000000, 0x13f0253c00000000, + 0x52eba95200000000, 0x5e7bfe4200000000, 0x1f60722c00000000, + 0xdc4de69f00000000, 0x9d566af100000000, 0x1b10bf2300000000, + 0x5a0b334d00000000, 0x9926a7fe00000000, 0xd83d2b9000000000, + 0x810608de00000000, 0xc01d84b000000000, 0x0330100300000000, + 0x422b9c6d00000000, 0xc46d49bf00000000, 0x8576c5d100000000, + 0x465b516200000000, 0x0740dd0c00000000, 0x0bd08a1c00000000, + 0x4acb067200000000, 0x89e692c100000000, 0xc8fd1eaf00000000, + 0x4ebbcb7d00000000, 0x0fa0471300000000, 0xcc8dd3a000000000, + 0x8d965fce00000000}, + {0x0000000000000000, 0x1dfdb50100000000, 0x3afa6b0300000000, + 0x2707de0200000000, 0x74f4d70600000000, 0x6909620700000000, + 0x4e0ebc0500000000, 0x53f3090400000000, 0xe8e8af0d00000000, + 0xf5151a0c00000000, 0xd212c40e00000000, 0xcfef710f00000000, + 0x9c1c780b00000000, 0x81e1cd0a00000000, 0xa6e6130800000000, + 0xbb1ba60900000000, 0xd0d15f1b00000000, 0xcd2cea1a00000000, + 0xea2b341800000000, 0xf7d6811900000000, 0xa425881d00000000, + 0xb9d83d1c00000000, 0x9edfe31e00000000, 0x8322561f00000000, + 0x3839f01600000000, 0x25c4451700000000, 0x02c39b1500000000, + 0x1f3e2e1400000000, 0x4ccd271000000000, 0x5130921100000000, + 0x76374c1300000000, 0x6bcaf91200000000, 0xa0a3bf3600000000, + 0xbd5e0a3700000000, 0x9a59d43500000000, 0x87a4613400000000, + 0xd457683000000000, 0xc9aadd3100000000, 0xeead033300000000, + 0xf350b63200000000, 0x484b103b00000000, 0x55b6a53a00000000, + 0x72b17b3800000000, 0x6f4cce3900000000, 0x3cbfc73d00000000, + 0x2142723c00000000, 0x0645ac3e00000000, 0x1bb8193f00000000, + 0x7072e02d00000000, 0x6d8f552c00000000, 0x4a888b2e00000000, + 0x57753e2f00000000, 0x0486372b00000000, 0x197b822a00000000, + 0x3e7c5c2800000000, 0x2381e92900000000, 0x989a4f2000000000, + 0x8567fa2100000000, 0xa260242300000000, 0xbf9d912200000000, + 0xec6e982600000000, 0xf1932d2700000000, 0xd694f32500000000, + 0xcb69462400000000, 0x40477f6d00000000, 0x5dbaca6c00000000, + 0x7abd146e00000000, 0x6740a16f00000000, 0x34b3a86b00000000, + 0x294e1d6a00000000, 0x0e49c36800000000, 0x13b4766900000000, + 0xa8afd06000000000, 0xb552656100000000, 0x9255bb6300000000, + 0x8fa80e6200000000, 0xdc5b076600000000, 0xc1a6b26700000000, + 0xe6a16c6500000000, 0xfb5cd96400000000, 0x9096207600000000, + 0x8d6b957700000000, 0xaa6c4b7500000000, 0xb791fe7400000000, + 0xe462f77000000000, 0xf99f427100000000, 0xde989c7300000000, + 0xc365297200000000, 0x787e8f7b00000000, 0x65833a7a00000000, + 0x4284e47800000000, 0x5f79517900000000, 0x0c8a587d00000000, + 0x1177ed7c00000000, 0x3670337e00000000, 0x2b8d867f00000000, + 0xe0e4c05b00000000, 0xfd19755a00000000, 0xda1eab5800000000, + 0xc7e31e5900000000, 0x9410175d00000000, 0x89eda25c00000000, + 0xaeea7c5e00000000, 0xb317c95f00000000, 0x080c6f5600000000, + 0x15f1da5700000000, 0x32f6045500000000, 0x2f0bb15400000000, + 0x7cf8b85000000000, 0x61050d5100000000, 0x4602d35300000000, + 0x5bff665200000000, 0x30359f4000000000, 0x2dc82a4100000000, + 0x0acff44300000000, 0x1732414200000000, 0x44c1484600000000, + 0x593cfd4700000000, 0x7e3b234500000000, 0x63c6964400000000, + 0xd8dd304d00000000, 0xc520854c00000000, 0xe2275b4e00000000, + 0xffdaee4f00000000, 0xac29e74b00000000, 0xb1d4524a00000000, + 0x96d38c4800000000, 0x8b2e394900000000, 0x808efeda00000000, + 0x9d734bdb00000000, 0xba7495d900000000, 0xa78920d800000000, + 0xf47a29dc00000000, 0xe9879cdd00000000, 0xce8042df00000000, + 0xd37df7de00000000, 0x686651d700000000, 0x759be4d600000000, + 0x529c3ad400000000, 0x4f618fd500000000, 0x1c9286d100000000, + 0x016f33d000000000, 0x2668edd200000000, 0x3b9558d300000000, + 0x505fa1c100000000, 0x4da214c000000000, 0x6aa5cac200000000, + 0x77587fc300000000, 0x24ab76c700000000, 0x3956c3c600000000, + 0x1e511dc400000000, 0x03aca8c500000000, 0xb8b70ecc00000000, + 0xa54abbcd00000000, 0x824d65cf00000000, 0x9fb0d0ce00000000, + 0xcc43d9ca00000000, 0xd1be6ccb00000000, 0xf6b9b2c900000000, + 0xeb4407c800000000, 0x202d41ec00000000, 0x3dd0f4ed00000000, + 0x1ad72aef00000000, 0x072a9fee00000000, 0x54d996ea00000000, + 0x492423eb00000000, 0x6e23fde900000000, 0x73de48e800000000, + 0xc8c5eee100000000, 0xd5385be000000000, 0xf23f85e200000000, + 0xefc230e300000000, 0xbc3139e700000000, 0xa1cc8ce600000000, + 0x86cb52e400000000, 0x9b36e7e500000000, 0xf0fc1ef700000000, + 0xed01abf600000000, 0xca0675f400000000, 0xd7fbc0f500000000, + 0x8408c9f100000000, 0x99f57cf000000000, 0xbef2a2f200000000, + 0xa30f17f300000000, 0x1814b1fa00000000, 0x05e904fb00000000, + 0x22eedaf900000000, 0x3f136ff800000000, 0x6ce066fc00000000, + 0x711dd3fd00000000, 0x561a0dff00000000, 0x4be7b8fe00000000, + 0xc0c981b700000000, 0xdd3434b600000000, 0xfa33eab400000000, + 0xe7ce5fb500000000, 0xb43d56b100000000, 0xa9c0e3b000000000, + 0x8ec73db200000000, 0x933a88b300000000, 0x28212eba00000000, + 0x35dc9bbb00000000, 0x12db45b900000000, 0x0f26f0b800000000, + 0x5cd5f9bc00000000, 0x41284cbd00000000, 0x662f92bf00000000, + 0x7bd227be00000000, 0x1018deac00000000, 0x0de56bad00000000, + 0x2ae2b5af00000000, 0x371f00ae00000000, 0x64ec09aa00000000, + 0x7911bcab00000000, 0x5e1662a900000000, 0x43ebd7a800000000, + 0xf8f071a100000000, 0xe50dc4a000000000, 0xc20a1aa200000000, + 0xdff7afa300000000, 0x8c04a6a700000000, 0x91f913a600000000, + 0xb6fecda400000000, 0xab0378a500000000, 0x606a3e8100000000, + 0x7d978b8000000000, 0x5a90558200000000, 0x476de08300000000, + 0x149ee98700000000, 0x09635c8600000000, 0x2e64828400000000, + 0x3399378500000000, 0x8882918c00000000, 0x957f248d00000000, + 0xb278fa8f00000000, 0xaf854f8e00000000, 0xfc76468a00000000, + 0xe18bf38b00000000, 0xc68c2d8900000000, 0xdb71988800000000, + 0xb0bb619a00000000, 0xad46d49b00000000, 0x8a410a9900000000, + 0x97bcbf9800000000, 0xc44fb69c00000000, 0xd9b2039d00000000, + 0xfeb5dd9f00000000, 0xe348689e00000000, 0x5853ce9700000000, + 0x45ae7b9600000000, 0x62a9a59400000000, 0x7f54109500000000, + 0x2ca7199100000000, 0x315aac9000000000, 0x165d729200000000, + 0x0ba0c79300000000}, + {0x0000000000000000, 0x24d9076300000000, 0x48b20fc600000000, + 0x6c6b08a500000000, 0xd1626e5700000000, 0xf5bb693400000000, + 0x99d0619100000000, 0xbd0966f200000000, 0xa2c5dcae00000000, + 0x861cdbcd00000000, 0xea77d36800000000, 0xceaed40b00000000, + 0x73a7b2f900000000, 0x577eb59a00000000, 0x3b15bd3f00000000, + 0x1fccba5c00000000, 0x058dc88600000000, 0x2154cfe500000000, + 0x4d3fc74000000000, 0x69e6c02300000000, 0xd4efa6d100000000, + 0xf036a1b200000000, 0x9c5da91700000000, 0xb884ae7400000000, + 0xa748142800000000, 0x8391134b00000000, 0xeffa1bee00000000, + 0xcb231c8d00000000, 0x762a7a7f00000000, 0x52f37d1c00000000, + 0x3e9875b900000000, 0x1a4172da00000000, 0x4b1ce0d600000000, + 0x6fc5e7b500000000, 0x03aeef1000000000, 0x2777e87300000000, + 0x9a7e8e8100000000, 0xbea789e200000000, 0xd2cc814700000000, + 0xf615862400000000, 0xe9d93c7800000000, 0xcd003b1b00000000, + 0xa16b33be00000000, 0x85b234dd00000000, 0x38bb522f00000000, + 0x1c62554c00000000, 0x70095de900000000, 0x54d05a8a00000000, + 0x4e91285000000000, 0x6a482f3300000000, 0x0623279600000000, + 0x22fa20f500000000, 0x9ff3460700000000, 0xbb2a416400000000, + 0xd74149c100000000, 0xf3984ea200000000, 0xec54f4fe00000000, + 0xc88df39d00000000, 0xa4e6fb3800000000, 0x803ffc5b00000000, + 0x3d369aa900000000, 0x19ef9dca00000000, 0x7584956f00000000, + 0x515d920c00000000, 0xd73eb17600000000, 0xf3e7b61500000000, + 0x9f8cbeb000000000, 0xbb55b9d300000000, 0x065cdf2100000000, + 0x2285d84200000000, 0x4eeed0e700000000, 0x6a37d78400000000, + 0x75fb6dd800000000, 0x51226abb00000000, 0x3d49621e00000000, + 0x1990657d00000000, 0xa499038f00000000, 0x804004ec00000000, + 0xec2b0c4900000000, 0xc8f20b2a00000000, 0xd2b379f000000000, + 0xf66a7e9300000000, 0x9a01763600000000, 0xbed8715500000000, + 0x03d117a700000000, 0x270810c400000000, 0x4b63186100000000, + 0x6fba1f0200000000, 0x7076a55e00000000, 0x54afa23d00000000, + 0x38c4aa9800000000, 0x1c1dadfb00000000, 0xa114cb0900000000, + 0x85cdcc6a00000000, 0xe9a6c4cf00000000, 0xcd7fc3ac00000000, + 0x9c2251a000000000, 0xb8fb56c300000000, 0xd4905e6600000000, + 0xf049590500000000, 0x4d403ff700000000, 0x6999389400000000, + 0x05f2303100000000, 0x212b375200000000, 0x3ee78d0e00000000, + 0x1a3e8a6d00000000, 0x765582c800000000, 0x528c85ab00000000, + 0xef85e35900000000, 0xcb5ce43a00000000, 0xa737ec9f00000000, + 0x83eeebfc00000000, 0x99af992600000000, 0xbd769e4500000000, + 0xd11d96e000000000, 0xf5c4918300000000, 0x48cdf77100000000, + 0x6c14f01200000000, 0x007ff8b700000000, 0x24a6ffd400000000, + 0x3b6a458800000000, 0x1fb342eb00000000, 0x73d84a4e00000000, + 0x57014d2d00000000, 0xea082bdf00000000, 0xced12cbc00000000, + 0xa2ba241900000000, 0x8663237a00000000, 0xae7d62ed00000000, + 0x8aa4658e00000000, 0xe6cf6d2b00000000, 0xc2166a4800000000, + 0x7f1f0cba00000000, 0x5bc60bd900000000, 0x37ad037c00000000, + 0x1374041f00000000, 0x0cb8be4300000000, 0x2861b92000000000, + 0x440ab18500000000, 0x60d3b6e600000000, 0xdddad01400000000, + 0xf903d77700000000, 0x9568dfd200000000, 0xb1b1d8b100000000, + 0xabf0aa6b00000000, 0x8f29ad0800000000, 0xe342a5ad00000000, + 0xc79ba2ce00000000, 0x7a92c43c00000000, 0x5e4bc35f00000000, + 0x3220cbfa00000000, 0x16f9cc9900000000, 0x093576c500000000, + 0x2dec71a600000000, 0x4187790300000000, 0x655e7e6000000000, + 0xd857189200000000, 0xfc8e1ff100000000, 0x90e5175400000000, + 0xb43c103700000000, 0xe561823b00000000, 0xc1b8855800000000, + 0xadd38dfd00000000, 0x890a8a9e00000000, 0x3403ec6c00000000, + 0x10daeb0f00000000, 0x7cb1e3aa00000000, 0x5868e4c900000000, + 0x47a45e9500000000, 0x637d59f600000000, 0x0f16515300000000, + 0x2bcf563000000000, 0x96c630c200000000, 0xb21f37a100000000, + 0xde743f0400000000, 0xfaad386700000000, 0xe0ec4abd00000000, + 0xc4354dde00000000, 0xa85e457b00000000, 0x8c87421800000000, + 0x318e24ea00000000, 0x1557238900000000, 0x793c2b2c00000000, + 0x5de52c4f00000000, 0x4229961300000000, 0x66f0917000000000, + 0x0a9b99d500000000, 0x2e429eb600000000, 0x934bf84400000000, + 0xb792ff2700000000, 0xdbf9f78200000000, 0xff20f0e100000000, + 0x7943d39b00000000, 0x5d9ad4f800000000, 0x31f1dc5d00000000, + 0x1528db3e00000000, 0xa821bdcc00000000, 0x8cf8baaf00000000, + 0xe093b20a00000000, 0xc44ab56900000000, 0xdb860f3500000000, + 0xff5f085600000000, 0x933400f300000000, 0xb7ed079000000000, + 0x0ae4616200000000, 0x2e3d660100000000, 0x42566ea400000000, + 0x668f69c700000000, 0x7cce1b1d00000000, 0x58171c7e00000000, + 0x347c14db00000000, 0x10a513b800000000, 0xadac754a00000000, + 0x8975722900000000, 0xe51e7a8c00000000, 0xc1c77def00000000, + 0xde0bc7b300000000, 0xfad2c0d000000000, 0x96b9c87500000000, + 0xb260cf1600000000, 0x0f69a9e400000000, 0x2bb0ae8700000000, + 0x47dba62200000000, 0x6302a14100000000, 0x325f334d00000000, + 0x1686342e00000000, 0x7aed3c8b00000000, 0x5e343be800000000, + 0xe33d5d1a00000000, 0xc7e45a7900000000, 0xab8f52dc00000000, + 0x8f5655bf00000000, 0x909aefe300000000, 0xb443e88000000000, + 0xd828e02500000000, 0xfcf1e74600000000, 0x41f881b400000000, + 0x652186d700000000, 0x094a8e7200000000, 0x2d93891100000000, + 0x37d2fbcb00000000, 0x130bfca800000000, 0x7f60f40d00000000, + 0x5bb9f36e00000000, 0xe6b0959c00000000, 0xc26992ff00000000, + 0xae029a5a00000000, 0x8adb9d3900000000, 0x9517276500000000, + 0xb1ce200600000000, 0xdda528a300000000, 0xf97c2fc000000000, + 0x4475493200000000, 0x60ac4e5100000000, 0x0cc746f400000000, + 0x281e419700000000}, + {0x0000000000000000, 0x08e3603c00000000, 0x10c6c17800000000, + 0x1825a14400000000, 0x208c83f100000000, 0x286fe3cd00000000, + 0x304a428900000000, 0x38a922b500000000, 0x011e763800000000, + 0x09fd160400000000, 0x11d8b74000000000, 0x193bd77c00000000, + 0x2192f5c900000000, 0x297195f500000000, 0x315434b100000000, + 0x39b7548d00000000, 0x023cec7000000000, 0x0adf8c4c00000000, + 0x12fa2d0800000000, 0x1a194d3400000000, 0x22b06f8100000000, + 0x2a530fbd00000000, 0x3276aef900000000, 0x3a95cec500000000, + 0x03229a4800000000, 0x0bc1fa7400000000, 0x13e45b3000000000, + 0x1b073b0c00000000, 0x23ae19b900000000, 0x2b4d798500000000, + 0x3368d8c100000000, 0x3b8bb8fd00000000, 0x0478d8e100000000, + 0x0c9bb8dd00000000, 0x14be199900000000, 0x1c5d79a500000000, + 0x24f45b1000000000, 0x2c173b2c00000000, 0x34329a6800000000, + 0x3cd1fa5400000000, 0x0566aed900000000, 0x0d85cee500000000, + 0x15a06fa100000000, 0x1d430f9d00000000, 0x25ea2d2800000000, + 0x2d094d1400000000, 0x352cec5000000000, 0x3dcf8c6c00000000, + 0x0644349100000000, 0x0ea754ad00000000, 0x1682f5e900000000, + 0x1e6195d500000000, 0x26c8b76000000000, 0x2e2bd75c00000000, + 0x360e761800000000, 0x3eed162400000000, 0x075a42a900000000, + 0x0fb9229500000000, 0x179c83d100000000, 0x1f7fe3ed00000000, + 0x27d6c15800000000, 0x2f35a16400000000, 0x3710002000000000, + 0x3ff3601c00000000, 0x49f6c11800000000, 0x4115a12400000000, + 0x5930006000000000, 0x51d3605c00000000, 0x697a42e900000000, + 0x619922d500000000, 0x79bc839100000000, 0x715fe3ad00000000, + 0x48e8b72000000000, 0x400bd71c00000000, 0x582e765800000000, + 0x50cd166400000000, 0x686434d100000000, 0x608754ed00000000, + 0x78a2f5a900000000, 0x7041959500000000, 0x4bca2d6800000000, + 0x43294d5400000000, 0x5b0cec1000000000, 0x53ef8c2c00000000, + 0x6b46ae9900000000, 0x63a5cea500000000, 0x7b806fe100000000, + 0x73630fdd00000000, 0x4ad45b5000000000, 0x42373b6c00000000, + 0x5a129a2800000000, 0x52f1fa1400000000, 0x6a58d8a100000000, + 0x62bbb89d00000000, 0x7a9e19d900000000, 0x727d79e500000000, + 0x4d8e19f900000000, 0x456d79c500000000, 0x5d48d88100000000, + 0x55abb8bd00000000, 0x6d029a0800000000, 0x65e1fa3400000000, + 0x7dc45b7000000000, 0x75273b4c00000000, 0x4c906fc100000000, + 0x44730ffd00000000, 0x5c56aeb900000000, 0x54b5ce8500000000, + 0x6c1cec3000000000, 0x64ff8c0c00000000, 0x7cda2d4800000000, + 0x74394d7400000000, 0x4fb2f58900000000, 0x475195b500000000, + 0x5f7434f100000000, 0x579754cd00000000, 0x6f3e767800000000, + 0x67dd164400000000, 0x7ff8b70000000000, 0x771bd73c00000000, + 0x4eac83b100000000, 0x464fe38d00000000, 0x5e6a42c900000000, + 0x568922f500000000, 0x6e20004000000000, 0x66c3607c00000000, + 0x7ee6c13800000000, 0x7605a10400000000, 0x92ec833100000000, + 0x9a0fe30d00000000, 0x822a424900000000, 0x8ac9227500000000, + 0xb26000c000000000, 0xba8360fc00000000, 0xa2a6c1b800000000, + 0xaa45a18400000000, 0x93f2f50900000000, 0x9b11953500000000, + 0x8334347100000000, 0x8bd7544d00000000, 0xb37e76f800000000, + 0xbb9d16c400000000, 0xa3b8b78000000000, 0xab5bd7bc00000000, + 0x90d06f4100000000, 0x98330f7d00000000, 0x8016ae3900000000, + 0x88f5ce0500000000, 0xb05cecb000000000, 0xb8bf8c8c00000000, + 0xa09a2dc800000000, 0xa8794df400000000, 0x91ce197900000000, + 0x992d794500000000, 0x8108d80100000000, 0x89ebb83d00000000, + 0xb1429a8800000000, 0xb9a1fab400000000, 0xa1845bf000000000, + 0xa9673bcc00000000, 0x96945bd000000000, 0x9e773bec00000000, + 0x86529aa800000000, 0x8eb1fa9400000000, 0xb618d82100000000, + 0xbefbb81d00000000, 0xa6de195900000000, 0xae3d796500000000, + 0x978a2de800000000, 0x9f694dd400000000, 0x874cec9000000000, + 0x8faf8cac00000000, 0xb706ae1900000000, 0xbfe5ce2500000000, + 0xa7c06f6100000000, 0xaf230f5d00000000, 0x94a8b7a000000000, + 0x9c4bd79c00000000, 0x846e76d800000000, 0x8c8d16e400000000, + 0xb424345100000000, 0xbcc7546d00000000, 0xa4e2f52900000000, + 0xac01951500000000, 0x95b6c19800000000, 0x9d55a1a400000000, + 0x857000e000000000, 0x8d9360dc00000000, 0xb53a426900000000, + 0xbdd9225500000000, 0xa5fc831100000000, 0xad1fe32d00000000, + 0xdb1a422900000000, 0xd3f9221500000000, 0xcbdc835100000000, + 0xc33fe36d00000000, 0xfb96c1d800000000, 0xf375a1e400000000, + 0xeb5000a000000000, 0xe3b3609c00000000, 0xda04341100000000, + 0xd2e7542d00000000, 0xcac2f56900000000, 0xc221955500000000, + 0xfa88b7e000000000, 0xf26bd7dc00000000, 0xea4e769800000000, + 0xe2ad16a400000000, 0xd926ae5900000000, 0xd1c5ce6500000000, + 0xc9e06f2100000000, 0xc1030f1d00000000, 0xf9aa2da800000000, + 0xf1494d9400000000, 0xe96cecd000000000, 0xe18f8cec00000000, + 0xd838d86100000000, 0xd0dbb85d00000000, 0xc8fe191900000000, + 0xc01d792500000000, 0xf8b45b9000000000, 0xf0573bac00000000, + 0xe8729ae800000000, 0xe091fad400000000, 0xdf629ac800000000, + 0xd781faf400000000, 0xcfa45bb000000000, 0xc7473b8c00000000, + 0xffee193900000000, 0xf70d790500000000, 0xef28d84100000000, + 0xe7cbb87d00000000, 0xde7cecf000000000, 0xd69f8ccc00000000, + 0xceba2d8800000000, 0xc6594db400000000, 0xfef06f0100000000, + 0xf6130f3d00000000, 0xee36ae7900000000, 0xe6d5ce4500000000, + 0xdd5e76b800000000, 0xd5bd168400000000, 0xcd98b7c000000000, + 0xc57bd7fc00000000, 0xfdd2f54900000000, 0xf531957500000000, + 0xed14343100000000, 0xe5f7540d00000000, 0xdc40008000000000, + 0xd4a360bc00000000, 0xcc86c1f800000000, 0xc465a1c400000000, + 0xfccc837100000000, 0xf42fe34d00000000, 0xec0a420900000000, + 0xe4e9223500000000}, + {0x0000000000000000, 0xd1e8e70e00000000, 0xa2d1cf1d00000000, + 0x7339281300000000, 0x44a39f3b00000000, 0x954b783500000000, + 0xe672502600000000, 0x379ab72800000000, 0x88463f7700000000, + 0x59aed87900000000, 0x2a97f06a00000000, 0xfb7f176400000000, + 0xcce5a04c00000000, 0x1d0d474200000000, 0x6e346f5100000000, + 0xbfdc885f00000000, 0x108d7eee00000000, 0xc16599e000000000, + 0xb25cb1f300000000, 0x63b456fd00000000, 0x542ee1d500000000, + 0x85c606db00000000, 0xf6ff2ec800000000, 0x2717c9c600000000, + 0x98cb419900000000, 0x4923a69700000000, 0x3a1a8e8400000000, + 0xebf2698a00000000, 0xdc68dea200000000, 0x0d8039ac00000000, + 0x7eb911bf00000000, 0xaf51f6b100000000, 0x611c8c0700000000, + 0xb0f46b0900000000, 0xc3cd431a00000000, 0x1225a41400000000, + 0x25bf133c00000000, 0xf457f43200000000, 0x876edc2100000000, + 0x56863b2f00000000, 0xe95ab37000000000, 0x38b2547e00000000, + 0x4b8b7c6d00000000, 0x9a639b6300000000, 0xadf92c4b00000000, + 0x7c11cb4500000000, 0x0f28e35600000000, 0xdec0045800000000, + 0x7191f2e900000000, 0xa07915e700000000, 0xd3403df400000000, + 0x02a8dafa00000000, 0x35326dd200000000, 0xe4da8adc00000000, + 0x97e3a2cf00000000, 0x460b45c100000000, 0xf9d7cd9e00000000, + 0x283f2a9000000000, 0x5b06028300000000, 0x8aeee58d00000000, + 0xbd7452a500000000, 0x6c9cb5ab00000000, 0x1fa59db800000000, + 0xce4d7ab600000000, 0xc238180f00000000, 0x13d0ff0100000000, + 0x60e9d71200000000, 0xb101301c00000000, 0x869b873400000000, + 0x5773603a00000000, 0x244a482900000000, 0xf5a2af2700000000, + 0x4a7e277800000000, 0x9b96c07600000000, 0xe8afe86500000000, + 0x39470f6b00000000, 0x0eddb84300000000, 0xdf355f4d00000000, + 0xac0c775e00000000, 0x7de4905000000000, 0xd2b566e100000000, + 0x035d81ef00000000, 0x7064a9fc00000000, 0xa18c4ef200000000, + 0x9616f9da00000000, 0x47fe1ed400000000, 0x34c736c700000000, + 0xe52fd1c900000000, 0x5af3599600000000, 0x8b1bbe9800000000, + 0xf822968b00000000, 0x29ca718500000000, 0x1e50c6ad00000000, + 0xcfb821a300000000, 0xbc8109b000000000, 0x6d69eebe00000000, + 0xa324940800000000, 0x72cc730600000000, 0x01f55b1500000000, + 0xd01dbc1b00000000, 0xe7870b3300000000, 0x366fec3d00000000, + 0x4556c42e00000000, 0x94be232000000000, 0x2b62ab7f00000000, + 0xfa8a4c7100000000, 0x89b3646200000000, 0x585b836c00000000, + 0x6fc1344400000000, 0xbe29d34a00000000, 0xcd10fb5900000000, + 0x1cf81c5700000000, 0xb3a9eae600000000, 0x62410de800000000, + 0x117825fb00000000, 0xc090c2f500000000, 0xf70a75dd00000000, + 0x26e292d300000000, 0x55dbbac000000000, 0x84335dce00000000, + 0x3befd59100000000, 0xea07329f00000000, 0x993e1a8c00000000, + 0x48d6fd8200000000, 0x7f4c4aaa00000000, 0xaea4ada400000000, + 0xdd9d85b700000000, 0x0c7562b900000000, 0x8471301e00000000, + 0x5599d71000000000, 0x26a0ff0300000000, 0xf748180d00000000, + 0xc0d2af2500000000, 0x113a482b00000000, 0x6203603800000000, + 0xb3eb873600000000, 0x0c370f6900000000, 0xdddfe86700000000, + 0xaee6c07400000000, 0x7f0e277a00000000, 0x4894905200000000, + 0x997c775c00000000, 0xea455f4f00000000, 0x3badb84100000000, + 0x94fc4ef000000000, 0x4514a9fe00000000, 0x362d81ed00000000, + 0xe7c566e300000000, 0xd05fd1cb00000000, 0x01b736c500000000, + 0x728e1ed600000000, 0xa366f9d800000000, 0x1cba718700000000, + 0xcd52968900000000, 0xbe6bbe9a00000000, 0x6f83599400000000, + 0x5819eebc00000000, 0x89f109b200000000, 0xfac821a100000000, + 0x2b20c6af00000000, 0xe56dbc1900000000, 0x34855b1700000000, + 0x47bc730400000000, 0x9654940a00000000, 0xa1ce232200000000, + 0x7026c42c00000000, 0x031fec3f00000000, 0xd2f70b3100000000, + 0x6d2b836e00000000, 0xbcc3646000000000, 0xcffa4c7300000000, + 0x1e12ab7d00000000, 0x29881c5500000000, 0xf860fb5b00000000, + 0x8b59d34800000000, 0x5ab1344600000000, 0xf5e0c2f700000000, + 0x240825f900000000, 0x57310dea00000000, 0x86d9eae400000000, + 0xb1435dcc00000000, 0x60abbac200000000, 0x139292d100000000, + 0xc27a75df00000000, 0x7da6fd8000000000, 0xac4e1a8e00000000, + 0xdf77329d00000000, 0x0e9fd59300000000, 0x390562bb00000000, + 0xe8ed85b500000000, 0x9bd4ada600000000, 0x4a3c4aa800000000, + 0x4649281100000000, 0x97a1cf1f00000000, 0xe498e70c00000000, + 0x3570000200000000, 0x02eab72a00000000, 0xd302502400000000, + 0xa03b783700000000, 0x71d39f3900000000, 0xce0f176600000000, + 0x1fe7f06800000000, 0x6cded87b00000000, 0xbd363f7500000000, + 0x8aac885d00000000, 0x5b446f5300000000, 0x287d474000000000, + 0xf995a04e00000000, 0x56c456ff00000000, 0x872cb1f100000000, + 0xf41599e200000000, 0x25fd7eec00000000, 0x1267c9c400000000, + 0xc38f2eca00000000, 0xb0b606d900000000, 0x615ee1d700000000, + 0xde82698800000000, 0x0f6a8e8600000000, 0x7c53a69500000000, + 0xadbb419b00000000, 0x9a21f6b300000000, 0x4bc911bd00000000, + 0x38f039ae00000000, 0xe918dea000000000, 0x2755a41600000000, + 0xf6bd431800000000, 0x85846b0b00000000, 0x546c8c0500000000, + 0x63f63b2d00000000, 0xb21edc2300000000, 0xc127f43000000000, + 0x10cf133e00000000, 0xaf139b6100000000, 0x7efb7c6f00000000, + 0x0dc2547c00000000, 0xdc2ab37200000000, 0xebb0045a00000000, + 0x3a58e35400000000, 0x4961cb4700000000, 0x98892c4900000000, + 0x37d8daf800000000, 0xe6303df600000000, 0x950915e500000000, + 0x44e1f2eb00000000, 0x737b45c300000000, 0xa293a2cd00000000, + 0xd1aa8ade00000000, 0x00426dd000000000, 0xbf9ee58f00000000, + 0x6e76028100000000, 0x1d4f2a9200000000, 0xcca7cd9c00000000, + 0xfb3d7ab400000000, 0x2ad59dba00000000, 0x59ecb5a900000000, + 0x880452a700000000}, + {0x0000000000000000, 0xaa05daf100000000, 0x150dc53800000000, + 0xbf081fc900000000, 0x2a1a8a7100000000, 0x801f508000000000, + 0x3f174f4900000000, 0x951295b800000000, 0x543414e300000000, + 0xfe31ce1200000000, 0x4139d1db00000000, 0xeb3c0b2a00000000, + 0x7e2e9e9200000000, 0xd42b446300000000, 0x6b235baa00000000, + 0xc126815b00000000, 0xe96e591d00000000, 0x436b83ec00000000, + 0xfc639c2500000000, 0x566646d400000000, 0xc374d36c00000000, + 0x6971099d00000000, 0xd679165400000000, 0x7c7ccca500000000, + 0xbd5a4dfe00000000, 0x175f970f00000000, 0xa85788c600000000, + 0x0252523700000000, 0x9740c78f00000000, 0x3d451d7e00000000, + 0x824d02b700000000, 0x2848d84600000000, 0xd2ddb23a00000000, + 0x78d868cb00000000, 0xc7d0770200000000, 0x6dd5adf300000000, + 0xf8c7384b00000000, 0x52c2e2ba00000000, 0xedcafd7300000000, + 0x47cf278200000000, 0x86e9a6d900000000, 0x2cec7c2800000000, + 0x93e463e100000000, 0x39e1b91000000000, 0xacf32ca800000000, + 0x06f6f65900000000, 0xb9fee99000000000, 0x13fb336100000000, + 0x3bb3eb2700000000, 0x91b631d600000000, 0x2ebe2e1f00000000, + 0x84bbf4ee00000000, 0x11a9615600000000, 0xbbacbba700000000, + 0x04a4a46e00000000, 0xaea17e9f00000000, 0x6f87ffc400000000, + 0xc582253500000000, 0x7a8a3afc00000000, 0xd08fe00d00000000, + 0x459d75b500000000, 0xef98af4400000000, 0x5090b08d00000000, + 0xfa956a7c00000000, 0xa4bb657500000000, 0x0ebebf8400000000, + 0xb1b6a04d00000000, 0x1bb37abc00000000, 0x8ea1ef0400000000, + 0x24a435f500000000, 0x9bac2a3c00000000, 0x31a9f0cd00000000, + 0xf08f719600000000, 0x5a8aab6700000000, 0xe582b4ae00000000, + 0x4f876e5f00000000, 0xda95fbe700000000, 0x7090211600000000, + 0xcf983edf00000000, 0x659de42e00000000, 0x4dd53c6800000000, + 0xe7d0e69900000000, 0x58d8f95000000000, 0xf2dd23a100000000, + 0x67cfb61900000000, 0xcdca6ce800000000, 0x72c2732100000000, + 0xd8c7a9d000000000, 0x19e1288b00000000, 0xb3e4f27a00000000, + 0x0cecedb300000000, 0xa6e9374200000000, 0x33fba2fa00000000, + 0x99fe780b00000000, 0x26f667c200000000, 0x8cf3bd3300000000, + 0x7666d74f00000000, 0xdc630dbe00000000, 0x636b127700000000, + 0xc96ec88600000000, 0x5c7c5d3e00000000, 0xf67987cf00000000, + 0x4971980600000000, 0xe37442f700000000, 0x2252c3ac00000000, + 0x8857195d00000000, 0x375f069400000000, 0x9d5adc6500000000, + 0x084849dd00000000, 0xa24d932c00000000, 0x1d458ce500000000, + 0xb740561400000000, 0x9f088e5200000000, 0x350d54a300000000, + 0x8a054b6a00000000, 0x2000919b00000000, 0xb512042300000000, + 0x1f17ded200000000, 0xa01fc11b00000000, 0x0a1a1bea00000000, + 0xcb3c9ab100000000, 0x6139404000000000, 0xde315f8900000000, + 0x7434857800000000, 0xe12610c000000000, 0x4b23ca3100000000, + 0xf42bd5f800000000, 0x5e2e0f0900000000, 0x4877cbea00000000, + 0xe272111b00000000, 0x5d7a0ed200000000, 0xf77fd42300000000, + 0x626d419b00000000, 0xc8689b6a00000000, 0x776084a300000000, + 0xdd655e5200000000, 0x1c43df0900000000, 0xb64605f800000000, + 0x094e1a3100000000, 0xa34bc0c000000000, 0x3659557800000000, + 0x9c5c8f8900000000, 0x2354904000000000, 0x89514ab100000000, + 0xa11992f700000000, 0x0b1c480600000000, 0xb41457cf00000000, + 0x1e118d3e00000000, 0x8b03188600000000, 0x2106c27700000000, + 0x9e0eddbe00000000, 0x340b074f00000000, 0xf52d861400000000, + 0x5f285ce500000000, 0xe020432c00000000, 0x4a2599dd00000000, + 0xdf370c6500000000, 0x7532d69400000000, 0xca3ac95d00000000, + 0x603f13ac00000000, 0x9aaa79d000000000, 0x30afa32100000000, + 0x8fa7bce800000000, 0x25a2661900000000, 0xb0b0f3a100000000, + 0x1ab5295000000000, 0xa5bd369900000000, 0x0fb8ec6800000000, + 0xce9e6d3300000000, 0x649bb7c200000000, 0xdb93a80b00000000, + 0x719672fa00000000, 0xe484e74200000000, 0x4e813db300000000, + 0xf189227a00000000, 0x5b8cf88b00000000, 0x73c420cd00000000, + 0xd9c1fa3c00000000, 0x66c9e5f500000000, 0xcccc3f0400000000, + 0x59deaabc00000000, 0xf3db704d00000000, 0x4cd36f8400000000, + 0xe6d6b57500000000, 0x27f0342e00000000, 0x8df5eedf00000000, + 0x32fdf11600000000, 0x98f82be700000000, 0x0deabe5f00000000, + 0xa7ef64ae00000000, 0x18e77b6700000000, 0xb2e2a19600000000, + 0xecccae9f00000000, 0x46c9746e00000000, 0xf9c16ba700000000, + 0x53c4b15600000000, 0xc6d624ee00000000, 0x6cd3fe1f00000000, + 0xd3dbe1d600000000, 0x79de3b2700000000, 0xb8f8ba7c00000000, + 0x12fd608d00000000, 0xadf57f4400000000, 0x07f0a5b500000000, + 0x92e2300d00000000, 0x38e7eafc00000000, 0x87eff53500000000, + 0x2dea2fc400000000, 0x05a2f78200000000, 0xafa72d7300000000, + 0x10af32ba00000000, 0xbaaae84b00000000, 0x2fb87df300000000, + 0x85bda70200000000, 0x3ab5b8cb00000000, 0x90b0623a00000000, + 0x5196e36100000000, 0xfb93399000000000, 0x449b265900000000, + 0xee9efca800000000, 0x7b8c691000000000, 0xd189b3e100000000, + 0x6e81ac2800000000, 0xc48476d900000000, 0x3e111ca500000000, + 0x9414c65400000000, 0x2b1cd99d00000000, 0x8119036c00000000, + 0x140b96d400000000, 0xbe0e4c2500000000, 0x010653ec00000000, + 0xab03891d00000000, 0x6a25084600000000, 0xc020d2b700000000, + 0x7f28cd7e00000000, 0xd52d178f00000000, 0x403f823700000000, + 0xea3a58c600000000, 0x5532470f00000000, 0xff379dfe00000000, + 0xd77f45b800000000, 0x7d7a9f4900000000, 0xc272808000000000, + 0x68775a7100000000, 0xfd65cfc900000000, 0x5760153800000000, + 0xe8680af100000000, 0x426dd00000000000, 0x834b515b00000000, + 0x294e8baa00000000, 0x9646946300000000, 0x3c434e9200000000, + 0xa951db2a00000000, 0x035401db00000000, 0xbc5c1e1200000000, + 0x1659c4e300000000}}; + +#else /* W == 4 */ + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0xae689191, 0x87a02563, 0x29c8b4f2, 0xd4314c87, + 0x7a59dd16, 0x539169e4, 0xfdf9f875, 0x73139f4f, 0xdd7b0ede, + 0xf4b3ba2c, 0x5adb2bbd, 0xa722d3c8, 0x094a4259, 0x2082f6ab, + 0x8eea673a, 0xe6273e9e, 0x484faf0f, 0x61871bfd, 0xcfef8a6c, + 0x32167219, 0x9c7ee388, 0xb5b6577a, 0x1bdec6eb, 0x9534a1d1, + 0x3b5c3040, 0x129484b2, 0xbcfc1523, 0x4105ed56, 0xef6d7cc7, + 0xc6a5c835, 0x68cd59a4, 0x173f7b7d, 0xb957eaec, 0x909f5e1e, + 0x3ef7cf8f, 0xc30e37fa, 0x6d66a66b, 0x44ae1299, 0xeac68308, + 0x642ce432, 0xca4475a3, 0xe38cc151, 0x4de450c0, 0xb01da8b5, + 0x1e753924, 0x37bd8dd6, 0x99d51c47, 0xf11845e3, 0x5f70d472, + 0x76b86080, 0xd8d0f111, 0x25290964, 0x8b4198f5, 0xa2892c07, + 0x0ce1bd96, 0x820bdaac, 0x2c634b3d, 0x05abffcf, 0xabc36e5e, + 0x563a962b, 0xf85207ba, 0xd19ab348, 0x7ff222d9, 0x2e7ef6fa, + 0x8016676b, 0xa9ded399, 0x07b64208, 0xfa4fba7d, 0x54272bec, + 0x7def9f1e, 0xd3870e8f, 0x5d6d69b5, 0xf305f824, 0xdacd4cd6, + 0x74a5dd47, 0x895c2532, 0x2734b4a3, 0x0efc0051, 0xa09491c0, + 0xc859c864, 0x663159f5, 0x4ff9ed07, 0xe1917c96, 0x1c6884e3, + 0xb2001572, 0x9bc8a180, 0x35a03011, 0xbb4a572b, 0x1522c6ba, + 0x3cea7248, 0x9282e3d9, 0x6f7b1bac, 0xc1138a3d, 0xe8db3ecf, + 0x46b3af5e, 0x39418d87, 0x97291c16, 0xbee1a8e4, 0x10893975, + 0xed70c100, 0x43185091, 0x6ad0e463, 0xc4b875f2, 0x4a5212c8, + 0xe43a8359, 0xcdf237ab, 0x639aa63a, 0x9e635e4f, 0x300bcfde, + 0x19c37b2c, 0xb7abeabd, 0xdf66b319, 0x710e2288, 0x58c6967a, + 0xf6ae07eb, 0x0b57ff9e, 0xa53f6e0f, 0x8cf7dafd, 0x229f4b6c, + 0xac752c56, 0x021dbdc7, 0x2bd50935, 0x85bd98a4, 0x784460d1, + 0xd62cf140, 0xffe445b2, 0x518cd423, 0x5cfdedf4, 0xf2957c65, + 0xdb5dc897, 0x75355906, 0x88cca173, 0x26a430e2, 0x0f6c8410, + 0xa1041581, 0x2fee72bb, 0x8186e32a, 0xa84e57d8, 0x0626c649, + 0xfbdf3e3c, 0x55b7afad, 0x7c7f1b5f, 0xd2178ace, 0xbadad36a, + 0x14b242fb, 0x3d7af609, 0x93126798, 0x6eeb9fed, 0xc0830e7c, + 0xe94bba8e, 0x47232b1f, 0xc9c94c25, 0x67a1ddb4, 0x4e696946, + 0xe001f8d7, 0x1df800a2, 0xb3909133, 0x9a5825c1, 0x3430b450, + 0x4bc29689, 0xe5aa0718, 0xcc62b3ea, 0x620a227b, 0x9ff3da0e, + 0x319b4b9f, 0x1853ff6d, 0xb63b6efc, 0x38d109c6, 0x96b99857, + 0xbf712ca5, 0x1119bd34, 0xece04541, 0x4288d4d0, 0x6b406022, + 0xc528f1b3, 0xade5a817, 0x038d3986, 0x2a458d74, 0x842d1ce5, + 0x79d4e490, 0xd7bc7501, 0xfe74c1f3, 0x501c5062, 0xdef63758, + 0x709ea6c9, 0x5956123b, 0xf73e83aa, 0x0ac77bdf, 0xa4afea4e, + 0x8d675ebc, 0x230fcf2d, 0x72831b0e, 0xdceb8a9f, 0xf5233e6d, + 0x5b4baffc, 0xa6b25789, 0x08dac618, 0x211272ea, 0x8f7ae37b, + 0x01908441, 0xaff815d0, 0x8630a122, 0x285830b3, 0xd5a1c8c6, + 0x7bc95957, 0x5201eda5, 0xfc697c34, 0x94a42590, 0x3accb401, + 0x130400f3, 0xbd6c9162, 0x40956917, 0xeefdf886, 0xc7354c74, + 0x695ddde5, 0xe7b7badf, 0x49df2b4e, 0x60179fbc, 0xce7f0e2d, + 0x3386f658, 0x9dee67c9, 0xb426d33b, 0x1a4e42aa, 0x65bc6073, + 0xcbd4f1e2, 0xe21c4510, 0x4c74d481, 0xb18d2cf4, 0x1fe5bd65, + 0x362d0997, 0x98459806, 0x16afff3c, 0xb8c76ead, 0x910fda5f, + 0x3f674bce, 0xc29eb3bb, 0x6cf6222a, 0x453e96d8, 0xeb560749, + 0x839b5eed, 0x2df3cf7c, 0x043b7b8e, 0xaa53ea1f, 0x57aa126a, + 0xf9c283fb, 0xd00a3709, 0x7e62a698, 0xf088c1a2, 0x5ee05033, + 0x7728e4c1, 0xd9407550, 0x24b98d25, 0x8ad11cb4, 0xa319a846, + 0x0d7139d7}, + {0x00000000, 0xb9fbdbe8, 0xa886b191, 0x117d6a79, 0x8a7c6563, + 0x3387be8b, 0x22fad4f2, 0x9b010f1a, 0xcf89cc87, 0x7672176f, + 0x670f7d16, 0xdef4a6fe, 0x45f5a9e4, 0xfc0e720c, 0xed731875, + 0x5488c39d, 0x44629f4f, 0xfd9944a7, 0xece42ede, 0x551ff536, + 0xce1efa2c, 0x77e521c4, 0x66984bbd, 0xdf639055, 0x8beb53c8, + 0x32108820, 0x236de259, 0x9a9639b1, 0x019736ab, 0xb86ced43, + 0xa911873a, 0x10ea5cd2, 0x88c53e9e, 0x313ee576, 0x20438f0f, + 0x99b854e7, 0x02b95bfd, 0xbb428015, 0xaa3fea6c, 0x13c43184, + 0x474cf219, 0xfeb729f1, 0xefca4388, 0x56319860, 0xcd30977a, + 0x74cb4c92, 0x65b626eb, 0xdc4dfd03, 0xcca7a1d1, 0x755c7a39, + 0x64211040, 0xdddacba8, 0x46dbc4b2, 0xff201f5a, 0xee5d7523, + 0x57a6aecb, 0x032e6d56, 0xbad5b6be, 0xaba8dcc7, 0x1253072f, + 0x89520835, 0x30a9d3dd, 0x21d4b9a4, 0x982f624c, 0xcafb7b7d, + 0x7300a095, 0x627dcaec, 0xdb861104, 0x40871e1e, 0xf97cc5f6, + 0xe801af8f, 0x51fa7467, 0x0572b7fa, 0xbc896c12, 0xadf4066b, + 0x140fdd83, 0x8f0ed299, 0x36f50971, 0x27886308, 0x9e73b8e0, + 0x8e99e432, 0x37623fda, 0x261f55a3, 0x9fe48e4b, 0x04e58151, + 0xbd1e5ab9, 0xac6330c0, 0x1598eb28, 0x411028b5, 0xf8ebf35d, + 0xe9969924, 0x506d42cc, 0xcb6c4dd6, 0x7297963e, 0x63eafc47, + 0xda1127af, 0x423e45e3, 0xfbc59e0b, 0xeab8f472, 0x53432f9a, + 0xc8422080, 0x71b9fb68, 0x60c49111, 0xd93f4af9, 0x8db78964, + 0x344c528c, 0x253138f5, 0x9ccae31d, 0x07cbec07, 0xbe3037ef, + 0xaf4d5d96, 0x16b6867e, 0x065cdaac, 0xbfa70144, 0xaeda6b3d, + 0x1721b0d5, 0x8c20bfcf, 0x35db6427, 0x24a60e5e, 0x9d5dd5b6, + 0xc9d5162b, 0x702ecdc3, 0x6153a7ba, 0xd8a87c52, 0x43a97348, + 0xfa52a8a0, 0xeb2fc2d9, 0x52d41931, 0x4e87f0bb, 0xf77c2b53, + 0xe601412a, 0x5ffa9ac2, 0xc4fb95d8, 0x7d004e30, 0x6c7d2449, + 0xd586ffa1, 0x810e3c3c, 0x38f5e7d4, 0x29888dad, 0x90735645, + 0x0b72595f, 0xb28982b7, 0xa3f4e8ce, 0x1a0f3326, 0x0ae56ff4, + 0xb31eb41c, 0xa263de65, 0x1b98058d, 0x80990a97, 0x3962d17f, + 0x281fbb06, 0x91e460ee, 0xc56ca373, 0x7c97789b, 0x6dea12e2, + 0xd411c90a, 0x4f10c610, 0xf6eb1df8, 0xe7967781, 0x5e6dac69, + 0xc642ce25, 0x7fb915cd, 0x6ec47fb4, 0xd73fa45c, 0x4c3eab46, + 0xf5c570ae, 0xe4b81ad7, 0x5d43c13f, 0x09cb02a2, 0xb030d94a, + 0xa14db333, 0x18b668db, 0x83b767c1, 0x3a4cbc29, 0x2b31d650, + 0x92ca0db8, 0x8220516a, 0x3bdb8a82, 0x2aa6e0fb, 0x935d3b13, + 0x085c3409, 0xb1a7efe1, 0xa0da8598, 0x19215e70, 0x4da99ded, + 0xf4524605, 0xe52f2c7c, 0x5cd4f794, 0xc7d5f88e, 0x7e2e2366, + 0x6f53491f, 0xd6a892f7, 0x847c8bc6, 0x3d87502e, 0x2cfa3a57, + 0x9501e1bf, 0x0e00eea5, 0xb7fb354d, 0xa6865f34, 0x1f7d84dc, + 0x4bf54741, 0xf20e9ca9, 0xe373f6d0, 0x5a882d38, 0xc1892222, + 0x7872f9ca, 0x690f93b3, 0xd0f4485b, 0xc01e1489, 0x79e5cf61, + 0x6898a518, 0xd1637ef0, 0x4a6271ea, 0xf399aa02, 0xe2e4c07b, + 0x5b1f1b93, 0x0f97d80e, 0xb66c03e6, 0xa711699f, 0x1eeab277, + 0x85ebbd6d, 0x3c106685, 0x2d6d0cfc, 0x9496d714, 0x0cb9b558, + 0xb5426eb0, 0xa43f04c9, 0x1dc4df21, 0x86c5d03b, 0x3f3e0bd3, + 0x2e4361aa, 0x97b8ba42, 0xc33079df, 0x7acba237, 0x6bb6c84e, + 0xd24d13a6, 0x494c1cbc, 0xf0b7c754, 0xe1caad2d, 0x583176c5, + 0x48db2a17, 0xf120f1ff, 0xe05d9b86, 0x59a6406e, 0xc2a74f74, + 0x7b5c949c, 0x6a21fee5, 0xd3da250d, 0x8752e690, 0x3ea93d78, + 0x2fd45701, 0x962f8ce9, 0x0d2e83f3, 0xb4d5581b, 0xa5a83262, + 0x1c53e98a}, + {0x00000000, 0x9d0fe176, 0xe16ec4ad, 0x7c6125db, 0x19ac8f1b, + 0x84a36e6d, 0xf8c24bb6, 0x65cdaac0, 0x33591e36, 0xae56ff40, + 0xd237da9b, 0x4f383bed, 0x2af5912d, 0xb7fa705b, 0xcb9b5580, + 0x5694b4f6, 0x66b23c6c, 0xfbbddd1a, 0x87dcf8c1, 0x1ad319b7, + 0x7f1eb377, 0xe2115201, 0x9e7077da, 0x037f96ac, 0x55eb225a, + 0xc8e4c32c, 0xb485e6f7, 0x298a0781, 0x4c47ad41, 0xd1484c37, + 0xad2969ec, 0x3026889a, 0xcd6478d8, 0x506b99ae, 0x2c0abc75, + 0xb1055d03, 0xd4c8f7c3, 0x49c716b5, 0x35a6336e, 0xa8a9d218, + 0xfe3d66ee, 0x63328798, 0x1f53a243, 0x825c4335, 0xe791e9f5, + 0x7a9e0883, 0x06ff2d58, 0x9bf0cc2e, 0xabd644b4, 0x36d9a5c2, + 0x4ab88019, 0xd7b7616f, 0xb27acbaf, 0x2f752ad9, 0x53140f02, + 0xce1bee74, 0x988f5a82, 0x0580bbf4, 0x79e19e2f, 0xe4ee7f59, + 0x8123d599, 0x1c2c34ef, 0x604d1134, 0xfd42f042, 0x41b9f7f1, + 0xdcb61687, 0xa0d7335c, 0x3dd8d22a, 0x581578ea, 0xc51a999c, + 0xb97bbc47, 0x24745d31, 0x72e0e9c7, 0xefef08b1, 0x938e2d6a, + 0x0e81cc1c, 0x6b4c66dc, 0xf64387aa, 0x8a22a271, 0x172d4307, + 0x270bcb9d, 0xba042aeb, 0xc6650f30, 0x5b6aee46, 0x3ea74486, + 0xa3a8a5f0, 0xdfc9802b, 0x42c6615d, 0x1452d5ab, 0x895d34dd, + 0xf53c1106, 0x6833f070, 0x0dfe5ab0, 0x90f1bbc6, 0xec909e1d, + 0x719f7f6b, 0x8cdd8f29, 0x11d26e5f, 0x6db34b84, 0xf0bcaaf2, + 0x95710032, 0x087ee144, 0x741fc49f, 0xe91025e9, 0xbf84911f, + 0x228b7069, 0x5eea55b2, 0xc3e5b4c4, 0xa6281e04, 0x3b27ff72, + 0x4746daa9, 0xda493bdf, 0xea6fb345, 0x77605233, 0x0b0177e8, + 0x960e969e, 0xf3c33c5e, 0x6eccdd28, 0x12adf8f3, 0x8fa21985, + 0xd936ad73, 0x44394c05, 0x385869de, 0xa55788a8, 0xc09a2268, + 0x5d95c31e, 0x21f4e6c5, 0xbcfb07b3, 0x8373efe2, 0x1e7c0e94, + 0x621d2b4f, 0xff12ca39, 0x9adf60f9, 0x07d0818f, 0x7bb1a454, + 0xe6be4522, 0xb02af1d4, 0x2d2510a2, 0x51443579, 0xcc4bd40f, + 0xa9867ecf, 0x34899fb9, 0x48e8ba62, 0xd5e75b14, 0xe5c1d38e, + 0x78ce32f8, 0x04af1723, 0x99a0f655, 0xfc6d5c95, 0x6162bde3, + 0x1d039838, 0x800c794e, 0xd698cdb8, 0x4b972cce, 0x37f60915, + 0xaaf9e863, 0xcf3442a3, 0x523ba3d5, 0x2e5a860e, 0xb3556778, + 0x4e17973a, 0xd318764c, 0xaf795397, 0x3276b2e1, 0x57bb1821, + 0xcab4f957, 0xb6d5dc8c, 0x2bda3dfa, 0x7d4e890c, 0xe041687a, + 0x9c204da1, 0x012facd7, 0x64e20617, 0xf9ede761, 0x858cc2ba, + 0x188323cc, 0x28a5ab56, 0xb5aa4a20, 0xc9cb6ffb, 0x54c48e8d, + 0x3109244d, 0xac06c53b, 0xd067e0e0, 0x4d680196, 0x1bfcb560, + 0x86f35416, 0xfa9271cd, 0x679d90bb, 0x02503a7b, 0x9f5fdb0d, + 0xe33efed6, 0x7e311fa0, 0xc2ca1813, 0x5fc5f965, 0x23a4dcbe, + 0xbeab3dc8, 0xdb669708, 0x4669767e, 0x3a0853a5, 0xa707b2d3, + 0xf1930625, 0x6c9ce753, 0x10fdc288, 0x8df223fe, 0xe83f893e, + 0x75306848, 0x09514d93, 0x945eace5, 0xa478247f, 0x3977c509, + 0x4516e0d2, 0xd81901a4, 0xbdd4ab64, 0x20db4a12, 0x5cba6fc9, + 0xc1b58ebf, 0x97213a49, 0x0a2edb3f, 0x764ffee4, 0xeb401f92, + 0x8e8db552, 0x13825424, 0x6fe371ff, 0xf2ec9089, 0x0fae60cb, + 0x92a181bd, 0xeec0a466, 0x73cf4510, 0x1602efd0, 0x8b0d0ea6, + 0xf76c2b7d, 0x6a63ca0b, 0x3cf77efd, 0xa1f89f8b, 0xdd99ba50, + 0x40965b26, 0x255bf1e6, 0xb8541090, 0xc435354b, 0x593ad43d, + 0x691c5ca7, 0xf413bdd1, 0x8872980a, 0x157d797c, 0x70b0d3bc, + 0xedbf32ca, 0x91de1711, 0x0cd1f667, 0x5a454291, 0xc74aa3e7, + 0xbb2b863c, 0x2624674a, 0x43e9cd8a, 0xdee62cfc, 0xa2870927, + 0x3f88e851}, + {0x00000000, 0xdd96d985, 0x605cb54b, 0xbdca6cce, 0xc0b96a96, + 0x1d2fb313, 0xa0e5dfdd, 0x7d730658, 0x5a03d36d, 0x87950ae8, + 0x3a5f6626, 0xe7c9bfa3, 0x9abab9fb, 0x472c607e, 0xfae60cb0, + 0x2770d535, 0xb407a6da, 0x69917f5f, 0xd45b1391, 0x09cdca14, + 0x74becc4c, 0xa92815c9, 0x14e27907, 0xc974a082, 0xee0475b7, + 0x3392ac32, 0x8e58c0fc, 0x53ce1979, 0x2ebd1f21, 0xf32bc6a4, + 0x4ee1aa6a, 0x937773ef, 0xb37e4bf5, 0x6ee89270, 0xd322febe, + 0x0eb4273b, 0x73c72163, 0xae51f8e6, 0x139b9428, 0xce0d4dad, + 0xe97d9898, 0x34eb411d, 0x89212dd3, 0x54b7f456, 0x29c4f20e, + 0xf4522b8b, 0x49984745, 0x940e9ec0, 0x0779ed2f, 0xdaef34aa, + 0x67255864, 0xbab381e1, 0xc7c087b9, 0x1a565e3c, 0xa79c32f2, + 0x7a0aeb77, 0x5d7a3e42, 0x80ece7c7, 0x3d268b09, 0xe0b0528c, + 0x9dc354d4, 0x40558d51, 0xfd9fe19f, 0x2009381a, 0xbd8d91ab, + 0x601b482e, 0xddd124e0, 0x0047fd65, 0x7d34fb3d, 0xa0a222b8, + 0x1d684e76, 0xc0fe97f3, 0xe78e42c6, 0x3a189b43, 0x87d2f78d, + 0x5a442e08, 0x27372850, 0xfaa1f1d5, 0x476b9d1b, 0x9afd449e, + 0x098a3771, 0xd41ceef4, 0x69d6823a, 0xb4405bbf, 0xc9335de7, + 0x14a58462, 0xa96fe8ac, 0x74f93129, 0x5389e41c, 0x8e1f3d99, + 0x33d55157, 0xee4388d2, 0x93308e8a, 0x4ea6570f, 0xf36c3bc1, + 0x2efae244, 0x0ef3da5e, 0xd36503db, 0x6eaf6f15, 0xb339b690, + 0xce4ab0c8, 0x13dc694d, 0xae160583, 0x7380dc06, 0x54f00933, + 0x8966d0b6, 0x34acbc78, 0xe93a65fd, 0x944963a5, 0x49dfba20, + 0xf415d6ee, 0x29830f6b, 0xbaf47c84, 0x6762a501, 0xdaa8c9cf, + 0x073e104a, 0x7a4d1612, 0xa7dbcf97, 0x1a11a359, 0xc7877adc, + 0xe0f7afe9, 0x3d61766c, 0x80ab1aa2, 0x5d3dc327, 0x204ec57f, + 0xfdd81cfa, 0x40127034, 0x9d84a9b1, 0xa06a2517, 0x7dfcfc92, + 0xc036905c, 0x1da049d9, 0x60d34f81, 0xbd459604, 0x008ffaca, + 0xdd19234f, 0xfa69f67a, 0x27ff2fff, 0x9a354331, 0x47a39ab4, + 0x3ad09cec, 0xe7464569, 0x5a8c29a7, 0x871af022, 0x146d83cd, + 0xc9fb5a48, 0x74313686, 0xa9a7ef03, 0xd4d4e95b, 0x094230de, + 0xb4885c10, 0x691e8595, 0x4e6e50a0, 0x93f88925, 0x2e32e5eb, + 0xf3a43c6e, 0x8ed73a36, 0x5341e3b3, 0xee8b8f7d, 0x331d56f8, + 0x13146ee2, 0xce82b767, 0x7348dba9, 0xaede022c, 0xd3ad0474, + 0x0e3bddf1, 0xb3f1b13f, 0x6e6768ba, 0x4917bd8f, 0x9481640a, + 0x294b08c4, 0xf4ddd141, 0x89aed719, 0x54380e9c, 0xe9f26252, + 0x3464bbd7, 0xa713c838, 0x7a8511bd, 0xc74f7d73, 0x1ad9a4f6, + 0x67aaa2ae, 0xba3c7b2b, 0x07f617e5, 0xda60ce60, 0xfd101b55, + 0x2086c2d0, 0x9d4cae1e, 0x40da779b, 0x3da971c3, 0xe03fa846, + 0x5df5c488, 0x80631d0d, 0x1de7b4bc, 0xc0716d39, 0x7dbb01f7, + 0xa02dd872, 0xdd5ede2a, 0x00c807af, 0xbd026b61, 0x6094b2e4, + 0x47e467d1, 0x9a72be54, 0x27b8d29a, 0xfa2e0b1f, 0x875d0d47, + 0x5acbd4c2, 0xe701b80c, 0x3a976189, 0xa9e01266, 0x7476cbe3, + 0xc9bca72d, 0x142a7ea8, 0x695978f0, 0xb4cfa175, 0x0905cdbb, + 0xd493143e, 0xf3e3c10b, 0x2e75188e, 0x93bf7440, 0x4e29adc5, + 0x335aab9d, 0xeecc7218, 0x53061ed6, 0x8e90c753, 0xae99ff49, + 0x730f26cc, 0xcec54a02, 0x13539387, 0x6e2095df, 0xb3b64c5a, + 0x0e7c2094, 0xd3eaf911, 0xf49a2c24, 0x290cf5a1, 0x94c6996f, + 0x495040ea, 0x342346b2, 0xe9b59f37, 0x547ff3f9, 0x89e92a7c, + 0x1a9e5993, 0xc7088016, 0x7ac2ecd8, 0xa754355d, 0xda273305, + 0x07b1ea80, 0xba7b864e, 0x67ed5fcb, 0x409d8afe, 0x9d0b537b, + 0x20c13fb5, 0xfd57e630, 0x8024e068, 0x5db239ed, 0xe0785523, + 0x3dee8ca6}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x00000000, 0x85d996dd, 0x4bb55c60, 0xce6ccabd, 0x966ab9c0, + 0x13b32f1d, 0xdddfe5a0, 0x5806737d, 0x6dd3035a, 0xe80a9587, + 0x26665f3a, 0xa3bfc9e7, 0xfbb9ba9a, 0x7e602c47, 0xb00ce6fa, + 0x35d57027, 0xdaa607b4, 0x5f7f9169, 0x91135bd4, 0x14cacd09, + 0x4cccbe74, 0xc91528a9, 0x0779e214, 0x82a074c9, 0xb77504ee, + 0x32ac9233, 0xfcc0588e, 0x7919ce53, 0x211fbd2e, 0xa4c62bf3, + 0x6aaae14e, 0xef737793, 0xf54b7eb3, 0x7092e86e, 0xbefe22d3, + 0x3b27b40e, 0x6321c773, 0xe6f851ae, 0x28949b13, 0xad4d0dce, + 0x98987de9, 0x1d41eb34, 0xd32d2189, 0x56f4b754, 0x0ef2c429, + 0x8b2b52f4, 0x45479849, 0xc09e0e94, 0x2fed7907, 0xaa34efda, + 0x64582567, 0xe181b3ba, 0xb987c0c7, 0x3c5e561a, 0xf2329ca7, + 0x77eb0a7a, 0x423e7a5d, 0xc7e7ec80, 0x098b263d, 0x8c52b0e0, + 0xd454c39d, 0x518d5540, 0x9fe19ffd, 0x1a380920, 0xab918dbd, + 0x2e481b60, 0xe024d1dd, 0x65fd4700, 0x3dfb347d, 0xb822a2a0, + 0x764e681d, 0xf397fec0, 0xc6428ee7, 0x439b183a, 0x8df7d287, + 0x082e445a, 0x50283727, 0xd5f1a1fa, 0x1b9d6b47, 0x9e44fd9a, + 0x71378a09, 0xf4ee1cd4, 0x3a82d669, 0xbf5b40b4, 0xe75d33c9, + 0x6284a514, 0xace86fa9, 0x2931f974, 0x1ce48953, 0x993d1f8e, + 0x5751d533, 0xd28843ee, 0x8a8e3093, 0x0f57a64e, 0xc13b6cf3, + 0x44e2fa2e, 0x5edaf30e, 0xdb0365d3, 0x156faf6e, 0x90b639b3, + 0xc8b04ace, 0x4d69dc13, 0x830516ae, 0x06dc8073, 0x3309f054, + 0xb6d06689, 0x78bcac34, 0xfd653ae9, 0xa5634994, 0x20badf49, + 0xeed615f4, 0x6b0f8329, 0x847cf4ba, 0x01a56267, 0xcfc9a8da, + 0x4a103e07, 0x12164d7a, 0x97cfdba7, 0x59a3111a, 0xdc7a87c7, + 0xe9aff7e0, 0x6c76613d, 0xa21aab80, 0x27c33d5d, 0x7fc54e20, + 0xfa1cd8fd, 0x34701240, 0xb1a9849d, 0x17256aa0, 0x92fcfc7d, + 0x5c9036c0, 0xd949a01d, 0x814fd360, 0x049645bd, 0xcafa8f00, + 0x4f2319dd, 0x7af669fa, 0xff2fff27, 0x3143359a, 0xb49aa347, + 0xec9cd03a, 0x694546e7, 0xa7298c5a, 0x22f01a87, 0xcd836d14, + 0x485afbc9, 0x86363174, 0x03efa7a9, 0x5be9d4d4, 0xde304209, + 0x105c88b4, 0x95851e69, 0xa0506e4e, 0x2589f893, 0xebe5322e, + 0x6e3ca4f3, 0x363ad78e, 0xb3e34153, 0x7d8f8bee, 0xf8561d33, + 0xe26e1413, 0x67b782ce, 0xa9db4873, 0x2c02deae, 0x7404add3, + 0xf1dd3b0e, 0x3fb1f1b3, 0xba68676e, 0x8fbd1749, 0x0a648194, + 0xc4084b29, 0x41d1ddf4, 0x19d7ae89, 0x9c0e3854, 0x5262f2e9, + 0xd7bb6434, 0x38c813a7, 0xbd11857a, 0x737d4fc7, 0xf6a4d91a, + 0xaea2aa67, 0x2b7b3cba, 0xe517f607, 0x60ce60da, 0x551b10fd, + 0xd0c28620, 0x1eae4c9d, 0x9b77da40, 0xc371a93d, 0x46a83fe0, + 0x88c4f55d, 0x0d1d6380, 0xbcb4e71d, 0x396d71c0, 0xf701bb7d, + 0x72d82da0, 0x2ade5edd, 0xaf07c800, 0x616b02bd, 0xe4b29460, + 0xd167e447, 0x54be729a, 0x9ad2b827, 0x1f0b2efa, 0x470d5d87, + 0xc2d4cb5a, 0x0cb801e7, 0x8961973a, 0x6612e0a9, 0xe3cb7674, + 0x2da7bcc9, 0xa87e2a14, 0xf0785969, 0x75a1cfb4, 0xbbcd0509, + 0x3e1493d4, 0x0bc1e3f3, 0x8e18752e, 0x4074bf93, 0xc5ad294e, + 0x9dab5a33, 0x1872ccee, 0xd61e0653, 0x53c7908e, 0x49ff99ae, + 0xcc260f73, 0x024ac5ce, 0x87935313, 0xdf95206e, 0x5a4cb6b3, + 0x94207c0e, 0x11f9ead3, 0x242c9af4, 0xa1f50c29, 0x6f99c694, + 0xea405049, 0xb2462334, 0x379fb5e9, 0xf9f37f54, 0x7c2ae989, + 0x93599e1a, 0x168008c7, 0xd8ecc27a, 0x5d3554a7, 0x053327da, + 0x80eab107, 0x4e867bba, 0xcb5fed67, 0xfe8a9d40, 0x7b530b9d, + 0xb53fc120, 0x30e657fd, 0x68e02480, 0xed39b25d, 0x235578e0, + 0xa68cee3d}, + {0x00000000, 0x76e10f9d, 0xadc46ee1, 0xdb25617c, 0x1b8fac19, + 0x6d6ea384, 0xb64bc2f8, 0xc0aacd65, 0x361e5933, 0x40ff56ae, + 0x9bda37d2, 0xed3b384f, 0x2d91f52a, 0x5b70fab7, 0x80559bcb, + 0xf6b49456, 0x6c3cb266, 0x1addbdfb, 0xc1f8dc87, 0xb719d31a, + 0x77b31e7f, 0x015211e2, 0xda77709e, 0xac967f03, 0x5a22eb55, + 0x2cc3e4c8, 0xf7e685b4, 0x81078a29, 0x41ad474c, 0x374c48d1, + 0xec6929ad, 0x9a882630, 0xd87864cd, 0xae996b50, 0x75bc0a2c, + 0x035d05b1, 0xc3f7c8d4, 0xb516c749, 0x6e33a635, 0x18d2a9a8, + 0xee663dfe, 0x98873263, 0x43a2531f, 0x35435c82, 0xf5e991e7, + 0x83089e7a, 0x582dff06, 0x2eccf09b, 0xb444d6ab, 0xc2a5d936, + 0x1980b84a, 0x6f61b7d7, 0xafcb7ab2, 0xd92a752f, 0x020f1453, + 0x74ee1bce, 0x825a8f98, 0xf4bb8005, 0x2f9ee179, 0x597feee4, + 0x99d52381, 0xef342c1c, 0x34114d60, 0x42f042fd, 0xf1f7b941, + 0x8716b6dc, 0x5c33d7a0, 0x2ad2d83d, 0xea781558, 0x9c991ac5, + 0x47bc7bb9, 0x315d7424, 0xc7e9e072, 0xb108efef, 0x6a2d8e93, + 0x1ccc810e, 0xdc664c6b, 0xaa8743f6, 0x71a2228a, 0x07432d17, + 0x9dcb0b27, 0xeb2a04ba, 0x300f65c6, 0x46ee6a5b, 0x8644a73e, + 0xf0a5a8a3, 0x2b80c9df, 0x5d61c642, 0xabd55214, 0xdd345d89, + 0x06113cf5, 0x70f03368, 0xb05afe0d, 0xc6bbf190, 0x1d9e90ec, + 0x6b7f9f71, 0x298fdd8c, 0x5f6ed211, 0x844bb36d, 0xf2aabcf0, + 0x32007195, 0x44e17e08, 0x9fc41f74, 0xe92510e9, 0x1f9184bf, + 0x69708b22, 0xb255ea5e, 0xc4b4e5c3, 0x041e28a6, 0x72ff273b, + 0xa9da4647, 0xdf3b49da, 0x45b36fea, 0x33526077, 0xe877010b, + 0x9e960e96, 0x5e3cc3f3, 0x28ddcc6e, 0xf3f8ad12, 0x8519a28f, + 0x73ad36d9, 0x054c3944, 0xde695838, 0xa88857a5, 0x68229ac0, + 0x1ec3955d, 0xc5e6f421, 0xb307fbbc, 0xe2ef7383, 0x940e7c1e, + 0x4f2b1d62, 0x39ca12ff, 0xf960df9a, 0x8f81d007, 0x54a4b17b, + 0x2245bee6, 0xd4f12ab0, 0xa210252d, 0x79354451, 0x0fd44bcc, + 0xcf7e86a9, 0xb99f8934, 0x62bae848, 0x145be7d5, 0x8ed3c1e5, + 0xf832ce78, 0x2317af04, 0x55f6a099, 0x955c6dfc, 0xe3bd6261, + 0x3898031d, 0x4e790c80, 0xb8cd98d6, 0xce2c974b, 0x1509f637, + 0x63e8f9aa, 0xa34234cf, 0xd5a33b52, 0x0e865a2e, 0x786755b3, + 0x3a97174e, 0x4c7618d3, 0x975379af, 0xe1b27632, 0x2118bb57, + 0x57f9b4ca, 0x8cdcd5b6, 0xfa3dda2b, 0x0c894e7d, 0x7a6841e0, + 0xa14d209c, 0xd7ac2f01, 0x1706e264, 0x61e7edf9, 0xbac28c85, + 0xcc238318, 0x56aba528, 0x204aaab5, 0xfb6fcbc9, 0x8d8ec454, + 0x4d240931, 0x3bc506ac, 0xe0e067d0, 0x9601684d, 0x60b5fc1b, + 0x1654f386, 0xcd7192fa, 0xbb909d67, 0x7b3a5002, 0x0ddb5f9f, + 0xd6fe3ee3, 0xa01f317e, 0x1318cac2, 0x65f9c55f, 0xbedca423, + 0xc83dabbe, 0x089766db, 0x7e766946, 0xa553083a, 0xd3b207a7, + 0x250693f1, 0x53e79c6c, 0x88c2fd10, 0xfe23f28d, 0x3e893fe8, + 0x48683075, 0x934d5109, 0xe5ac5e94, 0x7f2478a4, 0x09c57739, + 0xd2e01645, 0xa40119d8, 0x64abd4bd, 0x124adb20, 0xc96fba5c, + 0xbf8eb5c1, 0x493a2197, 0x3fdb2e0a, 0xe4fe4f76, 0x921f40eb, + 0x52b58d8e, 0x24548213, 0xff71e36f, 0x8990ecf2, 0xcb60ae0f, + 0xbd81a192, 0x66a4c0ee, 0x1045cf73, 0xd0ef0216, 0xa60e0d8b, + 0x7d2b6cf7, 0x0bca636a, 0xfd7ef73c, 0x8b9ff8a1, 0x50ba99dd, + 0x265b9640, 0xe6f15b25, 0x901054b8, 0x4b3535c4, 0x3dd43a59, + 0xa75c1c69, 0xd1bd13f4, 0x0a987288, 0x7c797d15, 0xbcd3b070, + 0xca32bfed, 0x1117de91, 0x67f6d10c, 0x9142455a, 0xe7a34ac7, + 0x3c862bbb, 0x4a672426, 0x8acde943, 0xfc2ce6de, 0x270987a2, + 0x51e8883f}, + {0x00000000, 0xe8dbfbb9, 0x91b186a8, 0x796a7d11, 0x63657c8a, + 0x8bbe8733, 0xf2d4fa22, 0x1a0f019b, 0x87cc89cf, 0x6f177276, + 0x167d0f67, 0xfea6f4de, 0xe4a9f545, 0x0c720efc, 0x751873ed, + 0x9dc38854, 0x4f9f6244, 0xa74499fd, 0xde2ee4ec, 0x36f51f55, + 0x2cfa1ece, 0xc421e577, 0xbd4b9866, 0x559063df, 0xc853eb8b, + 0x20881032, 0x59e26d23, 0xb139969a, 0xab369701, 0x43ed6cb8, + 0x3a8711a9, 0xd25cea10, 0x9e3ec588, 0x76e53e31, 0x0f8f4320, + 0xe754b899, 0xfd5bb902, 0x158042bb, 0x6cea3faa, 0x8431c413, + 0x19f24c47, 0xf129b7fe, 0x8843caef, 0x60983156, 0x7a9730cd, + 0x924ccb74, 0xeb26b665, 0x03fd4ddc, 0xd1a1a7cc, 0x397a5c75, + 0x40102164, 0xa8cbdadd, 0xb2c4db46, 0x5a1f20ff, 0x23755dee, + 0xcbaea657, 0x566d2e03, 0xbeb6d5ba, 0xc7dca8ab, 0x2f075312, + 0x35085289, 0xddd3a930, 0xa4b9d421, 0x4c622f98, 0x7d7bfbca, + 0x95a00073, 0xecca7d62, 0x041186db, 0x1e1e8740, 0xf6c57cf9, + 0x8faf01e8, 0x6774fa51, 0xfab77205, 0x126c89bc, 0x6b06f4ad, + 0x83dd0f14, 0x99d20e8f, 0x7109f536, 0x08638827, 0xe0b8739e, + 0x32e4998e, 0xda3f6237, 0xa3551f26, 0x4b8ee49f, 0x5181e504, + 0xb95a1ebd, 0xc03063ac, 0x28eb9815, 0xb5281041, 0x5df3ebf8, + 0x249996e9, 0xcc426d50, 0xd64d6ccb, 0x3e969772, 0x47fcea63, + 0xaf2711da, 0xe3453e42, 0x0b9ec5fb, 0x72f4b8ea, 0x9a2f4353, + 0x802042c8, 0x68fbb971, 0x1191c460, 0xf94a3fd9, 0x6489b78d, + 0x8c524c34, 0xf5383125, 0x1de3ca9c, 0x07eccb07, 0xef3730be, + 0x965d4daf, 0x7e86b616, 0xacda5c06, 0x4401a7bf, 0x3d6bdaae, + 0xd5b02117, 0xcfbf208c, 0x2764db35, 0x5e0ea624, 0xb6d55d9d, + 0x2b16d5c9, 0xc3cd2e70, 0xbaa75361, 0x527ca8d8, 0x4873a943, + 0xa0a852fa, 0xd9c22feb, 0x3119d452, 0xbbf0874e, 0x532b7cf7, + 0x2a4101e6, 0xc29afa5f, 0xd895fbc4, 0x304e007d, 0x49247d6c, + 0xa1ff86d5, 0x3c3c0e81, 0xd4e7f538, 0xad8d8829, 0x45567390, + 0x5f59720b, 0xb78289b2, 0xcee8f4a3, 0x26330f1a, 0xf46fe50a, + 0x1cb41eb3, 0x65de63a2, 0x8d05981b, 0x970a9980, 0x7fd16239, + 0x06bb1f28, 0xee60e491, 0x73a36cc5, 0x9b78977c, 0xe212ea6d, + 0x0ac911d4, 0x10c6104f, 0xf81debf6, 0x817796e7, 0x69ac6d5e, + 0x25ce42c6, 0xcd15b97f, 0xb47fc46e, 0x5ca43fd7, 0x46ab3e4c, + 0xae70c5f5, 0xd71ab8e4, 0x3fc1435d, 0xa202cb09, 0x4ad930b0, + 0x33b34da1, 0xdb68b618, 0xc167b783, 0x29bc4c3a, 0x50d6312b, + 0xb80dca92, 0x6a512082, 0x828adb3b, 0xfbe0a62a, 0x133b5d93, + 0x09345c08, 0xe1efa7b1, 0x9885daa0, 0x705e2119, 0xed9da94d, + 0x054652f4, 0x7c2c2fe5, 0x94f7d45c, 0x8ef8d5c7, 0x66232e7e, + 0x1f49536f, 0xf792a8d6, 0xc68b7c84, 0x2e50873d, 0x573afa2c, + 0xbfe10195, 0xa5ee000e, 0x4d35fbb7, 0x345f86a6, 0xdc847d1f, + 0x4147f54b, 0xa99c0ef2, 0xd0f673e3, 0x382d885a, 0x222289c1, + 0xcaf97278, 0xb3930f69, 0x5b48f4d0, 0x89141ec0, 0x61cfe579, + 0x18a59868, 0xf07e63d1, 0xea71624a, 0x02aa99f3, 0x7bc0e4e2, + 0x931b1f5b, 0x0ed8970f, 0xe6036cb6, 0x9f6911a7, 0x77b2ea1e, + 0x6dbdeb85, 0x8566103c, 0xfc0c6d2d, 0x14d79694, 0x58b5b90c, + 0xb06e42b5, 0xc9043fa4, 0x21dfc41d, 0x3bd0c586, 0xd30b3e3f, + 0xaa61432e, 0x42bab897, 0xdf7930c3, 0x37a2cb7a, 0x4ec8b66b, + 0xa6134dd2, 0xbc1c4c49, 0x54c7b7f0, 0x2dadcae1, 0xc5763158, + 0x172adb48, 0xfff120f1, 0x869b5de0, 0x6e40a659, 0x744fa7c2, + 0x9c945c7b, 0xe5fe216a, 0x0d25dad3, 0x90e65287, 0x783da93e, + 0x0157d42f, 0xe98c2f96, 0xf3832e0d, 0x1b58d5b4, 0x6232a8a5, + 0x8ae9531c}, + {0x00000000, 0x919168ae, 0x6325a087, 0xf2b4c829, 0x874c31d4, + 0x16dd597a, 0xe4699153, 0x75f8f9fd, 0x4f9f1373, 0xde0e7bdd, + 0x2cbab3f4, 0xbd2bdb5a, 0xc8d322a7, 0x59424a09, 0xabf68220, + 0x3a67ea8e, 0x9e3e27e6, 0x0faf4f48, 0xfd1b8761, 0x6c8aefcf, + 0x19721632, 0x88e37e9c, 0x7a57b6b5, 0xebc6de1b, 0xd1a13495, + 0x40305c3b, 0xb2849412, 0x2315fcbc, 0x56ed0541, 0xc77c6def, + 0x35c8a5c6, 0xa459cd68, 0x7d7b3f17, 0xecea57b9, 0x1e5e9f90, + 0x8fcff73e, 0xfa370ec3, 0x6ba6666d, 0x9912ae44, 0x0883c6ea, + 0x32e42c64, 0xa37544ca, 0x51c18ce3, 0xc050e44d, 0xb5a81db0, + 0x2439751e, 0xd68dbd37, 0x471cd599, 0xe34518f1, 0x72d4705f, + 0x8060b876, 0x11f1d0d8, 0x64092925, 0xf598418b, 0x072c89a2, + 0x96bde10c, 0xacda0b82, 0x3d4b632c, 0xcfffab05, 0x5e6ec3ab, + 0x2b963a56, 0xba0752f8, 0x48b39ad1, 0xd922f27f, 0xfaf67e2e, + 0x6b671680, 0x99d3dea9, 0x0842b607, 0x7dba4ffa, 0xec2b2754, + 0x1e9fef7d, 0x8f0e87d3, 0xb5696d5d, 0x24f805f3, 0xd64ccdda, + 0x47dda574, 0x32255c89, 0xa3b43427, 0x5100fc0e, 0xc09194a0, + 0x64c859c8, 0xf5593166, 0x07edf94f, 0x967c91e1, 0xe384681c, + 0x721500b2, 0x80a1c89b, 0x1130a035, 0x2b574abb, 0xbac62215, + 0x4872ea3c, 0xd9e38292, 0xac1b7b6f, 0x3d8a13c1, 0xcf3edbe8, + 0x5eafb346, 0x878d4139, 0x161c2997, 0xe4a8e1be, 0x75398910, + 0x00c170ed, 0x91501843, 0x63e4d06a, 0xf275b8c4, 0xc812524a, + 0x59833ae4, 0xab37f2cd, 0x3aa69a63, 0x4f5e639e, 0xdecf0b30, + 0x2c7bc319, 0xbdeaabb7, 0x19b366df, 0x88220e71, 0x7a96c658, + 0xeb07aef6, 0x9eff570b, 0x0f6e3fa5, 0xfddaf78c, 0x6c4b9f22, + 0x562c75ac, 0xc7bd1d02, 0x3509d52b, 0xa498bd85, 0xd1604478, + 0x40f12cd6, 0xb245e4ff, 0x23d48c51, 0xf4edfd5c, 0x657c95f2, + 0x97c85ddb, 0x06593575, 0x73a1cc88, 0xe230a426, 0x10846c0f, + 0x811504a1, 0xbb72ee2f, 0x2ae38681, 0xd8574ea8, 0x49c62606, + 0x3c3edffb, 0xadafb755, 0x5f1b7f7c, 0xce8a17d2, 0x6ad3daba, + 0xfb42b214, 0x09f67a3d, 0x98671293, 0xed9feb6e, 0x7c0e83c0, + 0x8eba4be9, 0x1f2b2347, 0x254cc9c9, 0xb4dda167, 0x4669694e, + 0xd7f801e0, 0xa200f81d, 0x339190b3, 0xc125589a, 0x50b43034, + 0x8996c24b, 0x1807aae5, 0xeab362cc, 0x7b220a62, 0x0edaf39f, + 0x9f4b9b31, 0x6dff5318, 0xfc6e3bb6, 0xc609d138, 0x5798b996, + 0xa52c71bf, 0x34bd1911, 0x4145e0ec, 0xd0d48842, 0x2260406b, + 0xb3f128c5, 0x17a8e5ad, 0x86398d03, 0x748d452a, 0xe51c2d84, + 0x90e4d479, 0x0175bcd7, 0xf3c174fe, 0x62501c50, 0x5837f6de, + 0xc9a69e70, 0x3b125659, 0xaa833ef7, 0xdf7bc70a, 0x4eeaafa4, + 0xbc5e678d, 0x2dcf0f23, 0x0e1b8372, 0x9f8aebdc, 0x6d3e23f5, + 0xfcaf4b5b, 0x8957b2a6, 0x18c6da08, 0xea721221, 0x7be37a8f, + 0x41849001, 0xd015f8af, 0x22a13086, 0xb3305828, 0xc6c8a1d5, + 0x5759c97b, 0xa5ed0152, 0x347c69fc, 0x9025a494, 0x01b4cc3a, + 0xf3000413, 0x62916cbd, 0x17699540, 0x86f8fdee, 0x744c35c7, + 0xe5dd5d69, 0xdfbab7e7, 0x4e2bdf49, 0xbc9f1760, 0x2d0e7fce, + 0x58f68633, 0xc967ee9d, 0x3bd326b4, 0xaa424e1a, 0x7360bc65, + 0xe2f1d4cb, 0x10451ce2, 0x81d4744c, 0xf42c8db1, 0x65bde51f, + 0x97092d36, 0x06984598, 0x3cffaf16, 0xad6ec7b8, 0x5fda0f91, + 0xce4b673f, 0xbbb39ec2, 0x2a22f66c, 0xd8963e45, 0x490756eb, + 0xed5e9b83, 0x7ccff32d, 0x8e7b3b04, 0x1fea53aa, 0x6a12aa57, + 0xfb83c2f9, 0x09370ad0, 0x98a6627e, 0xa2c188f0, 0x3350e05e, + 0xc1e42877, 0x507540d9, 0x258db924, 0xb41cd18a, 0x46a819a3, + 0xd739710d}}; + +#endif + +#endif + +#if N == 5 + +#if W == 8 + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0xaf449247, 0x85f822cf, 0x2abcb088, 0xd08143df, + 0x7fc5d198, 0x55796110, 0xfa3df357, 0x7a7381ff, 0xd53713b8, + 0xff8ba330, 0x50cf3177, 0xaaf2c220, 0x05b65067, 0x2f0ae0ef, + 0x804e72a8, 0xf4e703fe, 0x5ba391b9, 0x711f2131, 0xde5bb376, + 0x24664021, 0x8b22d266, 0xa19e62ee, 0x0edaf0a9, 0x8e948201, + 0x21d01046, 0x0b6ca0ce, 0xa4283289, 0x5e15c1de, 0xf1515399, + 0xdbede311, 0x74a97156, 0x32bf01bd, 0x9dfb93fa, 0xb7472372, + 0x1803b135, 0xe23e4262, 0x4d7ad025, 0x67c660ad, 0xc882f2ea, + 0x48cc8042, 0xe7881205, 0xcd34a28d, 0x627030ca, 0x984dc39d, + 0x370951da, 0x1db5e152, 0xb2f17315, 0xc6580243, 0x691c9004, + 0x43a0208c, 0xece4b2cb, 0x16d9419c, 0xb99dd3db, 0x93216353, + 0x3c65f114, 0xbc2b83bc, 0x136f11fb, 0x39d3a173, 0x96973334, + 0x6caac063, 0xc3ee5224, 0xe952e2ac, 0x461670eb, 0x657e037a, + 0xca3a913d, 0xe08621b5, 0x4fc2b3f2, 0xb5ff40a5, 0x1abbd2e2, + 0x3007626a, 0x9f43f02d, 0x1f0d8285, 0xb04910c2, 0x9af5a04a, + 0x35b1320d, 0xcf8cc15a, 0x60c8531d, 0x4a74e395, 0xe53071d2, + 0x91990084, 0x3edd92c3, 0x1461224b, 0xbb25b00c, 0x4118435b, + 0xee5cd11c, 0xc4e06194, 0x6ba4f3d3, 0xebea817b, 0x44ae133c, + 0x6e12a3b4, 0xc15631f3, 0x3b6bc2a4, 0x942f50e3, 0xbe93e06b, + 0x11d7722c, 0x57c102c7, 0xf8859080, 0xd2392008, 0x7d7db24f, + 0x87404118, 0x2804d35f, 0x02b863d7, 0xadfcf190, 0x2db28338, + 0x82f6117f, 0xa84aa1f7, 0x070e33b0, 0xfd33c0e7, 0x527752a0, + 0x78cbe228, 0xd78f706f, 0xa3260139, 0x0c62937e, 0x26de23f6, + 0x899ab1b1, 0x73a742e6, 0xdce3d0a1, 0xf65f6029, 0x591bf26e, + 0xd95580c6, 0x76111281, 0x5cada209, 0xf3e9304e, 0x09d4c319, + 0xa690515e, 0x8c2ce1d6, 0x23687391, 0xcafc06f4, 0x65b894b3, + 0x4f04243b, 0xe040b67c, 0x1a7d452b, 0xb539d76c, 0x9f8567e4, + 0x30c1f5a3, 0xb08f870b, 0x1fcb154c, 0x3577a5c4, 0x9a333783, + 0x600ec4d4, 0xcf4a5693, 0xe5f6e61b, 0x4ab2745c, 0x3e1b050a, + 0x915f974d, 0xbbe327c5, 0x14a7b582, 0xee9a46d5, 0x41ded492, + 0x6b62641a, 0xc426f65d, 0x446884f5, 0xeb2c16b2, 0xc190a63a, + 0x6ed4347d, 0x94e9c72a, 0x3bad556d, 0x1111e5e5, 0xbe5577a2, + 0xf8430749, 0x5707950e, 0x7dbb2586, 0xd2ffb7c1, 0x28c24496, + 0x8786d6d1, 0xad3a6659, 0x027ef41e, 0x823086b6, 0x2d7414f1, + 0x07c8a479, 0xa88c363e, 0x52b1c569, 0xfdf5572e, 0xd749e7a6, + 0x780d75e1, 0x0ca404b7, 0xa3e096f0, 0x895c2678, 0x2618b43f, + 0xdc254768, 0x7361d52f, 0x59dd65a7, 0xf699f7e0, 0x76d78548, + 0xd993170f, 0xf32fa787, 0x5c6b35c0, 0xa656c697, 0x091254d0, + 0x23aee458, 0x8cea761f, 0xaf82058e, 0x00c697c9, 0x2a7a2741, + 0x853eb506, 0x7f034651, 0xd047d416, 0xfafb649e, 0x55bff6d9, + 0xd5f18471, 0x7ab51636, 0x5009a6be, 0xff4d34f9, 0x0570c7ae, + 0xaa3455e9, 0x8088e561, 0x2fcc7726, 0x5b650670, 0xf4219437, + 0xde9d24bf, 0x71d9b6f8, 0x8be445af, 0x24a0d7e8, 0x0e1c6760, + 0xa158f527, 0x2116878f, 0x8e5215c8, 0xa4eea540, 0x0baa3707, + 0xf197c450, 0x5ed35617, 0x746fe69f, 0xdb2b74d8, 0x9d3d0433, + 0x32799674, 0x18c526fc, 0xb781b4bb, 0x4dbc47ec, 0xe2f8d5ab, + 0xc8446523, 0x6700f764, 0xe74e85cc, 0x480a178b, 0x62b6a703, + 0xcdf23544, 0x37cfc613, 0x988b5454, 0xb237e4dc, 0x1d73769b, + 0x69da07cd, 0xc69e958a, 0xec222502, 0x4366b745, 0xb95b4412, + 0x161fd655, 0x3ca366dd, 0x93e7f49a, 0x13a98632, 0xbced1475, + 0x9651a4fd, 0x391536ba, 0xc328c5ed, 0x6c6c57aa, 0x46d0e722, + 0xe9947565}, + {0x00000000, 0x4e890ba9, 0x9d121752, 0xd39b1cfb, 0xe15528e5, + 0xafdc234c, 0x7c473fb7, 0x32ce341e, 0x19db578b, 0x57525c22, + 0x84c940d9, 0xca404b70, 0xf88e7f6e, 0xb60774c7, 0x659c683c, + 0x2b156395, 0x33b6af16, 0x7d3fa4bf, 0xaea4b844, 0xe02db3ed, + 0xd2e387f3, 0x9c6a8c5a, 0x4ff190a1, 0x01789b08, 0x2a6df89d, + 0x64e4f334, 0xb77fefcf, 0xf9f6e466, 0xcb38d078, 0x85b1dbd1, + 0x562ac72a, 0x18a3cc83, 0x676d5e2c, 0x29e45585, 0xfa7f497e, + 0xb4f642d7, 0x863876c9, 0xc8b17d60, 0x1b2a619b, 0x55a36a32, + 0x7eb609a7, 0x303f020e, 0xe3a41ef5, 0xad2d155c, 0x9fe32142, + 0xd16a2aeb, 0x02f13610, 0x4c783db9, 0x54dbf13a, 0x1a52fa93, + 0xc9c9e668, 0x8740edc1, 0xb58ed9df, 0xfb07d276, 0x289cce8d, + 0x6615c524, 0x4d00a6b1, 0x0389ad18, 0xd012b1e3, 0x9e9bba4a, + 0xac558e54, 0xe2dc85fd, 0x31479906, 0x7fce92af, 0xcedabc58, + 0x8053b7f1, 0x53c8ab0a, 0x1d41a0a3, 0x2f8f94bd, 0x61069f14, + 0xb29d83ef, 0xfc148846, 0xd701ebd3, 0x9988e07a, 0x4a13fc81, + 0x049af728, 0x3654c336, 0x78ddc89f, 0xab46d464, 0xe5cfdfcd, + 0xfd6c134e, 0xb3e518e7, 0x607e041c, 0x2ef70fb5, 0x1c393bab, + 0x52b03002, 0x812b2cf9, 0xcfa22750, 0xe4b744c5, 0xaa3e4f6c, + 0x79a55397, 0x372c583e, 0x05e26c20, 0x4b6b6789, 0x98f07b72, + 0xd67970db, 0xa9b7e274, 0xe73ee9dd, 0x34a5f526, 0x7a2cfe8f, + 0x48e2ca91, 0x066bc138, 0xd5f0ddc3, 0x9b79d66a, 0xb06cb5ff, + 0xfee5be56, 0x2d7ea2ad, 0x63f7a904, 0x51399d1a, 0x1fb096b3, + 0xcc2b8a48, 0x82a281e1, 0x9a014d62, 0xd48846cb, 0x07135a30, + 0x499a5199, 0x7b546587, 0x35dd6e2e, 0xe64672d5, 0xa8cf797c, + 0x83da1ae9, 0xcd531140, 0x1ec80dbb, 0x50410612, 0x628f320c, + 0x2c0639a5, 0xff9d255e, 0xb1142ef7, 0x46c47ef1, 0x084d7558, + 0xdbd669a3, 0x955f620a, 0xa7915614, 0xe9185dbd, 0x3a834146, + 0x740a4aef, 0x5f1f297a, 0x119622d3, 0xc20d3e28, 0x8c843581, + 0xbe4a019f, 0xf0c30a36, 0x235816cd, 0x6dd11d64, 0x7572d1e7, + 0x3bfbda4e, 0xe860c6b5, 0xa6e9cd1c, 0x9427f902, 0xdaaef2ab, + 0x0935ee50, 0x47bce5f9, 0x6ca9866c, 0x22208dc5, 0xf1bb913e, + 0xbf329a97, 0x8dfcae89, 0xc375a520, 0x10eeb9db, 0x5e67b272, + 0x21a920dd, 0x6f202b74, 0xbcbb378f, 0xf2323c26, 0xc0fc0838, + 0x8e750391, 0x5dee1f6a, 0x136714c3, 0x38727756, 0x76fb7cff, + 0xa5606004, 0xebe96bad, 0xd9275fb3, 0x97ae541a, 0x443548e1, + 0x0abc4348, 0x121f8fcb, 0x5c968462, 0x8f0d9899, 0xc1849330, + 0xf34aa72e, 0xbdc3ac87, 0x6e58b07c, 0x20d1bbd5, 0x0bc4d840, + 0x454dd3e9, 0x96d6cf12, 0xd85fc4bb, 0xea91f0a5, 0xa418fb0c, + 0x7783e7f7, 0x390aec5e, 0x881ec2a9, 0xc697c900, 0x150cd5fb, + 0x5b85de52, 0x694bea4c, 0x27c2e1e5, 0xf459fd1e, 0xbad0f6b7, + 0x91c59522, 0xdf4c9e8b, 0x0cd78270, 0x425e89d9, 0x7090bdc7, + 0x3e19b66e, 0xed82aa95, 0xa30ba13c, 0xbba86dbf, 0xf5216616, + 0x26ba7aed, 0x68337144, 0x5afd455a, 0x14744ef3, 0xc7ef5208, + 0x896659a1, 0xa2733a34, 0xecfa319d, 0x3f612d66, 0x71e826cf, + 0x432612d1, 0x0daf1978, 0xde340583, 0x90bd0e2a, 0xef739c85, + 0xa1fa972c, 0x72618bd7, 0x3ce8807e, 0x0e26b460, 0x40afbfc9, + 0x9334a332, 0xddbda89b, 0xf6a8cb0e, 0xb821c0a7, 0x6bbadc5c, + 0x2533d7f5, 0x17fde3eb, 0x5974e842, 0x8aeff4b9, 0xc466ff10, + 0xdcc53393, 0x924c383a, 0x41d724c1, 0x0f5e2f68, 0x3d901b76, + 0x731910df, 0xa0820c24, 0xee0b078d, 0xc51e6418, 0x8b976fb1, + 0x580c734a, 0x168578e3, 0x244b4cfd, 0x6ac24754, 0xb9595baf, + 0xf7d05006}, + {0x00000000, 0x8d88fde2, 0xc060fd85, 0x4de80067, 0x5bb0fd4b, + 0xd63800a9, 0x9bd000ce, 0x1658fd2c, 0xb761fa96, 0x3ae90774, + 0x77010713, 0xfa89faf1, 0xecd107dd, 0x6159fa3f, 0x2cb1fa58, + 0xa13907ba, 0xb5b2f36d, 0x383a0e8f, 0x75d20ee8, 0xf85af30a, + 0xee020e26, 0x638af3c4, 0x2e62f3a3, 0xa3ea0e41, 0x02d309fb, + 0x8f5bf419, 0xc2b3f47e, 0x4f3b099c, 0x5963f4b0, 0xd4eb0952, + 0x99030935, 0x148bf4d7, 0xb014e09b, 0x3d9c1d79, 0x70741d1e, + 0xfdfce0fc, 0xeba41dd0, 0x662ce032, 0x2bc4e055, 0xa64c1db7, + 0x07751a0d, 0x8afde7ef, 0xc715e788, 0x4a9d1a6a, 0x5cc5e746, + 0xd14d1aa4, 0x9ca51ac3, 0x112de721, 0x05a613f6, 0x882eee14, + 0xc5c6ee73, 0x484e1391, 0x5e16eebd, 0xd39e135f, 0x9e761338, + 0x13feeeda, 0xb2c7e960, 0x3f4f1482, 0x72a714e5, 0xff2fe907, + 0xe977142b, 0x64ffe9c9, 0x2917e9ae, 0xa49f144c, 0xbb58c777, + 0x36d03a95, 0x7b383af2, 0xf6b0c710, 0xe0e83a3c, 0x6d60c7de, + 0x2088c7b9, 0xad003a5b, 0x0c393de1, 0x81b1c003, 0xcc59c064, + 0x41d13d86, 0x5789c0aa, 0xda013d48, 0x97e93d2f, 0x1a61c0cd, + 0x0eea341a, 0x8362c9f8, 0xce8ac99f, 0x4302347d, 0x555ac951, + 0xd8d234b3, 0x953a34d4, 0x18b2c936, 0xb98bce8c, 0x3403336e, + 0x79eb3309, 0xf463ceeb, 0xe23b33c7, 0x6fb3ce25, 0x225bce42, + 0xafd333a0, 0x0b4c27ec, 0x86c4da0e, 0xcb2cda69, 0x46a4278b, + 0x50fcdaa7, 0xdd742745, 0x909c2722, 0x1d14dac0, 0xbc2ddd7a, + 0x31a52098, 0x7c4d20ff, 0xf1c5dd1d, 0xe79d2031, 0x6a15ddd3, + 0x27fdddb4, 0xaa752056, 0xbefed481, 0x33762963, 0x7e9e2904, + 0xf316d4e6, 0xe54e29ca, 0x68c6d428, 0x252ed44f, 0xa8a629ad, + 0x099f2e17, 0x8417d3f5, 0xc9ffd392, 0x44772e70, 0x522fd35c, + 0xdfa72ebe, 0x924f2ed9, 0x1fc7d33b, 0xadc088af, 0x2048754d, + 0x6da0752a, 0xe02888c8, 0xf67075e4, 0x7bf88806, 0x36108861, + 0xbb987583, 0x1aa17239, 0x97298fdb, 0xdac18fbc, 0x5749725e, + 0x41118f72, 0xcc997290, 0x817172f7, 0x0cf98f15, 0x18727bc2, + 0x95fa8620, 0xd8128647, 0x559a7ba5, 0x43c28689, 0xce4a7b6b, + 0x83a27b0c, 0x0e2a86ee, 0xaf138154, 0x229b7cb6, 0x6f737cd1, + 0xe2fb8133, 0xf4a37c1f, 0x792b81fd, 0x34c3819a, 0xb94b7c78, + 0x1dd46834, 0x905c95d6, 0xddb495b1, 0x503c6853, 0x4664957f, + 0xcbec689d, 0x860468fa, 0x0b8c9518, 0xaab592a2, 0x273d6f40, + 0x6ad56f27, 0xe75d92c5, 0xf1056fe9, 0x7c8d920b, 0x3165926c, + 0xbced6f8e, 0xa8669b59, 0x25ee66bb, 0x680666dc, 0xe58e9b3e, + 0xf3d66612, 0x7e5e9bf0, 0x33b69b97, 0xbe3e6675, 0x1f0761cf, + 0x928f9c2d, 0xdf679c4a, 0x52ef61a8, 0x44b79c84, 0xc93f6166, + 0x84d76101, 0x095f9ce3, 0x16984fd8, 0x9b10b23a, 0xd6f8b25d, + 0x5b704fbf, 0x4d28b293, 0xc0a04f71, 0x8d484f16, 0x00c0b2f4, + 0xa1f9b54e, 0x2c7148ac, 0x619948cb, 0xec11b529, 0xfa494805, + 0x77c1b5e7, 0x3a29b580, 0xb7a14862, 0xa32abcb5, 0x2ea24157, + 0x634a4130, 0xeec2bcd2, 0xf89a41fe, 0x7512bc1c, 0x38fabc7b, + 0xb5724199, 0x144b4623, 0x99c3bbc1, 0xd42bbba6, 0x59a34644, + 0x4ffbbb68, 0xc273468a, 0x8f9b46ed, 0x0213bb0f, 0xa68caf43, + 0x2b0452a1, 0x66ec52c6, 0xeb64af24, 0xfd3c5208, 0x70b4afea, + 0x3d5caf8d, 0xb0d4526f, 0x11ed55d5, 0x9c65a837, 0xd18da850, + 0x5c0555b2, 0x4a5da89e, 0xc7d5557c, 0x8a3d551b, 0x07b5a8f9, + 0x133e5c2e, 0x9eb6a1cc, 0xd35ea1ab, 0x5ed65c49, 0x488ea165, + 0xc5065c87, 0x88ee5ce0, 0x0566a102, 0xa45fa6b8, 0x29d75b5a, + 0x643f5b3d, 0xe9b7a6df, 0xffef5bf3, 0x7267a611, 0x3f8fa676, + 0xb2075b94}, + {0x00000000, 0x80f0171f, 0xda91287f, 0x5a613f60, 0x6e5356bf, + 0xeea341a0, 0xb4c27ec0, 0x343269df, 0xdca6ad7e, 0x5c56ba61, + 0x06378501, 0x86c7921e, 0xb2f5fbc1, 0x3205ecde, 0x6864d3be, + 0xe894c4a1, 0x623c5cbd, 0xe2cc4ba2, 0xb8ad74c2, 0x385d63dd, + 0x0c6f0a02, 0x8c9f1d1d, 0xd6fe227d, 0x560e3562, 0xbe9af1c3, + 0x3e6ae6dc, 0x640bd9bc, 0xe4fbcea3, 0xd0c9a77c, 0x5039b063, + 0x0a588f03, 0x8aa8981c, 0xc478b97a, 0x4488ae65, 0x1ee99105, + 0x9e19861a, 0xaa2befc5, 0x2adbf8da, 0x70bac7ba, 0xf04ad0a5, + 0x18de1404, 0x982e031b, 0xc24f3c7b, 0x42bf2b64, 0x768d42bb, + 0xf67d55a4, 0xac1c6ac4, 0x2cec7ddb, 0xa644e5c7, 0x26b4f2d8, + 0x7cd5cdb8, 0xfc25daa7, 0xc817b378, 0x48e7a467, 0x12869b07, + 0x92768c18, 0x7ae248b9, 0xfa125fa6, 0xa07360c6, 0x208377d9, + 0x14b11e06, 0x94410919, 0xce203679, 0x4ed02166, 0x538074b5, + 0xd37063aa, 0x89115cca, 0x09e14bd5, 0x3dd3220a, 0xbd233515, + 0xe7420a75, 0x67b21d6a, 0x8f26d9cb, 0x0fd6ced4, 0x55b7f1b4, + 0xd547e6ab, 0xe1758f74, 0x6185986b, 0x3be4a70b, 0xbb14b014, + 0x31bc2808, 0xb14c3f17, 0xeb2d0077, 0x6bdd1768, 0x5fef7eb7, + 0xdf1f69a8, 0x857e56c8, 0x058e41d7, 0xed1a8576, 0x6dea9269, + 0x378bad09, 0xb77bba16, 0x8349d3c9, 0x03b9c4d6, 0x59d8fbb6, + 0xd928eca9, 0x97f8cdcf, 0x1708dad0, 0x4d69e5b0, 0xcd99f2af, + 0xf9ab9b70, 0x795b8c6f, 0x233ab30f, 0xa3caa410, 0x4b5e60b1, + 0xcbae77ae, 0x91cf48ce, 0x113f5fd1, 0x250d360e, 0xa5fd2111, + 0xff9c1e71, 0x7f6c096e, 0xf5c49172, 0x7534866d, 0x2f55b90d, + 0xafa5ae12, 0x9b97c7cd, 0x1b67d0d2, 0x4106efb2, 0xc1f6f8ad, + 0x29623c0c, 0xa9922b13, 0xf3f31473, 0x7303036c, 0x47316ab3, + 0xc7c17dac, 0x9da042cc, 0x1d5055d3, 0xa700e96a, 0x27f0fe75, + 0x7d91c115, 0xfd61d60a, 0xc953bfd5, 0x49a3a8ca, 0x13c297aa, + 0x933280b5, 0x7ba64414, 0xfb56530b, 0xa1376c6b, 0x21c77b74, + 0x15f512ab, 0x950505b4, 0xcf643ad4, 0x4f942dcb, 0xc53cb5d7, + 0x45cca2c8, 0x1fad9da8, 0x9f5d8ab7, 0xab6fe368, 0x2b9ff477, + 0x71fecb17, 0xf10edc08, 0x199a18a9, 0x996a0fb6, 0xc30b30d6, + 0x43fb27c9, 0x77c94e16, 0xf7395909, 0xad586669, 0x2da87176, + 0x63785010, 0xe388470f, 0xb9e9786f, 0x39196f70, 0x0d2b06af, + 0x8ddb11b0, 0xd7ba2ed0, 0x574a39cf, 0xbfdefd6e, 0x3f2eea71, + 0x654fd511, 0xe5bfc20e, 0xd18dabd1, 0x517dbcce, 0x0b1c83ae, + 0x8bec94b1, 0x01440cad, 0x81b41bb2, 0xdbd524d2, 0x5b2533cd, + 0x6f175a12, 0xefe74d0d, 0xb586726d, 0x35766572, 0xdde2a1d3, + 0x5d12b6cc, 0x077389ac, 0x87839eb3, 0xb3b1f76c, 0x3341e073, + 0x6920df13, 0xe9d0c80c, 0xf4809ddf, 0x74708ac0, 0x2e11b5a0, + 0xaee1a2bf, 0x9ad3cb60, 0x1a23dc7f, 0x4042e31f, 0xc0b2f400, + 0x282630a1, 0xa8d627be, 0xf2b718de, 0x72470fc1, 0x4675661e, + 0xc6857101, 0x9ce44e61, 0x1c14597e, 0x96bcc162, 0x164cd67d, + 0x4c2de91d, 0xccddfe02, 0xf8ef97dd, 0x781f80c2, 0x227ebfa2, + 0xa28ea8bd, 0x4a1a6c1c, 0xcaea7b03, 0x908b4463, 0x107b537c, + 0x24493aa3, 0xa4b92dbc, 0xfed812dc, 0x7e2805c3, 0x30f824a5, + 0xb00833ba, 0xea690cda, 0x6a991bc5, 0x5eab721a, 0xde5b6505, + 0x843a5a65, 0x04ca4d7a, 0xec5e89db, 0x6cae9ec4, 0x36cfa1a4, + 0xb63fb6bb, 0x820ddf64, 0x02fdc87b, 0x589cf71b, 0xd86ce004, + 0x52c47818, 0xd2346f07, 0x88555067, 0x08a54778, 0x3c972ea7, + 0xbc6739b8, 0xe60606d8, 0x66f611c7, 0x8e62d566, 0x0e92c279, + 0x54f3fd19, 0xd403ea06, 0xe03183d9, 0x60c194c6, 0x3aa0aba6, + 0xba50bcb9}, + {0x00000000, 0x9570d495, 0xf190af6b, 0x64e07bfe, 0x38505897, + 0xad208c02, 0xc9c0f7fc, 0x5cb02369, 0x70a0b12e, 0xe5d065bb, + 0x81301e45, 0x1440cad0, 0x48f0e9b9, 0xdd803d2c, 0xb96046d2, + 0x2c109247, 0xe141625c, 0x7431b6c9, 0x10d1cd37, 0x85a119a2, + 0xd9113acb, 0x4c61ee5e, 0x288195a0, 0xbdf14135, 0x91e1d372, + 0x049107e7, 0x60717c19, 0xf501a88c, 0xa9b18be5, 0x3cc15f70, + 0x5821248e, 0xcd51f01b, 0x19f3c2f9, 0x8c83166c, 0xe8636d92, + 0x7d13b907, 0x21a39a6e, 0xb4d34efb, 0xd0333505, 0x4543e190, + 0x695373d7, 0xfc23a742, 0x98c3dcbc, 0x0db30829, 0x51032b40, + 0xc473ffd5, 0xa093842b, 0x35e350be, 0xf8b2a0a5, 0x6dc27430, + 0x09220fce, 0x9c52db5b, 0xc0e2f832, 0x55922ca7, 0x31725759, + 0xa40283cc, 0x8812118b, 0x1d62c51e, 0x7982bee0, 0xecf26a75, + 0xb042491c, 0x25329d89, 0x41d2e677, 0xd4a232e2, 0x33e785f2, + 0xa6975167, 0xc2772a99, 0x5707fe0c, 0x0bb7dd65, 0x9ec709f0, + 0xfa27720e, 0x6f57a69b, 0x434734dc, 0xd637e049, 0xb2d79bb7, + 0x27a74f22, 0x7b176c4b, 0xee67b8de, 0x8a87c320, 0x1ff717b5, + 0xd2a6e7ae, 0x47d6333b, 0x233648c5, 0xb6469c50, 0xeaf6bf39, + 0x7f866bac, 0x1b661052, 0x8e16c4c7, 0xa2065680, 0x37768215, + 0x5396f9eb, 0xc6e62d7e, 0x9a560e17, 0x0f26da82, 0x6bc6a17c, + 0xfeb675e9, 0x2a14470b, 0xbf64939e, 0xdb84e860, 0x4ef43cf5, + 0x12441f9c, 0x8734cb09, 0xe3d4b0f7, 0x76a46462, 0x5ab4f625, + 0xcfc422b0, 0xab24594e, 0x3e548ddb, 0x62e4aeb2, 0xf7947a27, + 0x937401d9, 0x0604d54c, 0xcb552557, 0x5e25f1c2, 0x3ac58a3c, + 0xafb55ea9, 0xf3057dc0, 0x6675a955, 0x0295d2ab, 0x97e5063e, + 0xbbf59479, 0x2e8540ec, 0x4a653b12, 0xdf15ef87, 0x83a5ccee, + 0x16d5187b, 0x72356385, 0xe745b710, 0x67cf0be4, 0xf2bfdf71, + 0x965fa48f, 0x032f701a, 0x5f9f5373, 0xcaef87e6, 0xae0ffc18, + 0x3b7f288d, 0x176fbaca, 0x821f6e5f, 0xe6ff15a1, 0x738fc134, + 0x2f3fe25d, 0xba4f36c8, 0xdeaf4d36, 0x4bdf99a3, 0x868e69b8, + 0x13febd2d, 0x771ec6d3, 0xe26e1246, 0xbede312f, 0x2baee5ba, + 0x4f4e9e44, 0xda3e4ad1, 0xf62ed896, 0x635e0c03, 0x07be77fd, + 0x92cea368, 0xce7e8001, 0x5b0e5494, 0x3fee2f6a, 0xaa9efbff, + 0x7e3cc91d, 0xeb4c1d88, 0x8fac6676, 0x1adcb2e3, 0x466c918a, + 0xd31c451f, 0xb7fc3ee1, 0x228cea74, 0x0e9c7833, 0x9becaca6, + 0xff0cd758, 0x6a7c03cd, 0x36cc20a4, 0xa3bcf431, 0xc75c8fcf, + 0x522c5b5a, 0x9f7dab41, 0x0a0d7fd4, 0x6eed042a, 0xfb9dd0bf, + 0xa72df3d6, 0x325d2743, 0x56bd5cbd, 0xc3cd8828, 0xefdd1a6f, + 0x7aadcefa, 0x1e4db504, 0x8b3d6191, 0xd78d42f8, 0x42fd966d, + 0x261ded93, 0xb36d3906, 0x54288e16, 0xc1585a83, 0xa5b8217d, + 0x30c8f5e8, 0x6c78d681, 0xf9080214, 0x9de879ea, 0x0898ad7f, + 0x24883f38, 0xb1f8ebad, 0xd5189053, 0x406844c6, 0x1cd867af, + 0x89a8b33a, 0xed48c8c4, 0x78381c51, 0xb569ec4a, 0x201938df, + 0x44f94321, 0xd18997b4, 0x8d39b4dd, 0x18496048, 0x7ca91bb6, + 0xe9d9cf23, 0xc5c95d64, 0x50b989f1, 0x3459f20f, 0xa129269a, + 0xfd9905f3, 0x68e9d166, 0x0c09aa98, 0x99797e0d, 0x4ddb4cef, + 0xd8ab987a, 0xbc4be384, 0x293b3711, 0x758b1478, 0xe0fbc0ed, + 0x841bbb13, 0x116b6f86, 0x3d7bfdc1, 0xa80b2954, 0xcceb52aa, + 0x599b863f, 0x052ba556, 0x905b71c3, 0xf4bb0a3d, 0x61cbdea8, + 0xac9a2eb3, 0x39eafa26, 0x5d0a81d8, 0xc87a554d, 0x94ca7624, + 0x01baa2b1, 0x655ad94f, 0xf02a0dda, 0xdc3a9f9d, 0x494a4b08, + 0x2daa30f6, 0xb8dae463, 0xe46ac70a, 0x711a139f, 0x15fa6861, + 0x808abcf4}, + {0x00000000, 0xcf9e17c8, 0x444d29d1, 0x8bd33e19, 0x889a53a2, + 0x4704446a, 0xccd77a73, 0x03496dbb, 0xca45a105, 0x05dbb6cd, + 0x8e0888d4, 0x41969f1c, 0x42dff2a7, 0x8d41e56f, 0x0692db76, + 0xc90cccbe, 0x4ffa444b, 0x80645383, 0x0bb76d9a, 0xc4297a52, + 0xc76017e9, 0x08fe0021, 0x832d3e38, 0x4cb329f0, 0x85bfe54e, + 0x4a21f286, 0xc1f2cc9f, 0x0e6cdb57, 0x0d25b6ec, 0xc2bba124, + 0x49689f3d, 0x86f688f5, 0x9ff48896, 0x506a9f5e, 0xdbb9a147, + 0x1427b68f, 0x176edb34, 0xd8f0ccfc, 0x5323f2e5, 0x9cbde52d, + 0x55b12993, 0x9a2f3e5b, 0x11fc0042, 0xde62178a, 0xdd2b7a31, + 0x12b56df9, 0x996653e0, 0x56f84428, 0xd00eccdd, 0x1f90db15, + 0x9443e50c, 0x5bddf2c4, 0x58949f7f, 0x970a88b7, 0x1cd9b6ae, + 0xd347a166, 0x1a4b6dd8, 0xd5d57a10, 0x5e064409, 0x919853c1, + 0x92d13e7a, 0x5d4f29b2, 0xd69c17ab, 0x19020063, 0xe498176d, + 0x2b0600a5, 0xa0d53ebc, 0x6f4b2974, 0x6c0244cf, 0xa39c5307, + 0x284f6d1e, 0xe7d17ad6, 0x2eddb668, 0xe143a1a0, 0x6a909fb9, + 0xa50e8871, 0xa647e5ca, 0x69d9f202, 0xe20acc1b, 0x2d94dbd3, + 0xab625326, 0x64fc44ee, 0xef2f7af7, 0x20b16d3f, 0x23f80084, + 0xec66174c, 0x67b52955, 0xa82b3e9d, 0x6127f223, 0xaeb9e5eb, + 0x256adbf2, 0xeaf4cc3a, 0xe9bda181, 0x2623b649, 0xadf08850, + 0x626e9f98, 0x7b6c9ffb, 0xb4f28833, 0x3f21b62a, 0xf0bfa1e2, + 0xf3f6cc59, 0x3c68db91, 0xb7bbe588, 0x7825f240, 0xb1293efe, + 0x7eb72936, 0xf564172f, 0x3afa00e7, 0x39b36d5c, 0xf62d7a94, + 0x7dfe448d, 0xb2605345, 0x3496dbb0, 0xfb08cc78, 0x70dbf261, + 0xbf45e5a9, 0xbc0c8812, 0x73929fda, 0xf841a1c3, 0x37dfb60b, + 0xfed37ab5, 0x314d6d7d, 0xba9e5364, 0x750044ac, 0x76492917, + 0xb9d73edf, 0x320400c6, 0xfd9a170e, 0x1241289b, 0xdddf3f53, + 0x560c014a, 0x99921682, 0x9adb7b39, 0x55456cf1, 0xde9652e8, + 0x11084520, 0xd804899e, 0x179a9e56, 0x9c49a04f, 0x53d7b787, + 0x509eda3c, 0x9f00cdf4, 0x14d3f3ed, 0xdb4de425, 0x5dbb6cd0, + 0x92257b18, 0x19f64501, 0xd66852c9, 0xd5213f72, 0x1abf28ba, + 0x916c16a3, 0x5ef2016b, 0x97fecdd5, 0x5860da1d, 0xd3b3e404, + 0x1c2df3cc, 0x1f649e77, 0xd0fa89bf, 0x5b29b7a6, 0x94b7a06e, + 0x8db5a00d, 0x422bb7c5, 0xc9f889dc, 0x06669e14, 0x052ff3af, + 0xcab1e467, 0x4162da7e, 0x8efccdb6, 0x47f00108, 0x886e16c0, + 0x03bd28d9, 0xcc233f11, 0xcf6a52aa, 0x00f44562, 0x8b277b7b, + 0x44b96cb3, 0xc24fe446, 0x0dd1f38e, 0x8602cd97, 0x499cda5f, + 0x4ad5b7e4, 0x854ba02c, 0x0e989e35, 0xc10689fd, 0x080a4543, + 0xc794528b, 0x4c476c92, 0x83d97b5a, 0x809016e1, 0x4f0e0129, + 0xc4dd3f30, 0x0b4328f8, 0xf6d93ff6, 0x3947283e, 0xb2941627, + 0x7d0a01ef, 0x7e436c54, 0xb1dd7b9c, 0x3a0e4585, 0xf590524d, + 0x3c9c9ef3, 0xf302893b, 0x78d1b722, 0xb74fa0ea, 0xb406cd51, + 0x7b98da99, 0xf04be480, 0x3fd5f348, 0xb9237bbd, 0x76bd6c75, + 0xfd6e526c, 0x32f045a4, 0x31b9281f, 0xfe273fd7, 0x75f401ce, + 0xba6a1606, 0x7366dab8, 0xbcf8cd70, 0x372bf369, 0xf8b5e4a1, + 0xfbfc891a, 0x34629ed2, 0xbfb1a0cb, 0x702fb703, 0x692db760, + 0xa6b3a0a8, 0x2d609eb1, 0xe2fe8979, 0xe1b7e4c2, 0x2e29f30a, + 0xa5facd13, 0x6a64dadb, 0xa3681665, 0x6cf601ad, 0xe7253fb4, + 0x28bb287c, 0x2bf245c7, 0xe46c520f, 0x6fbf6c16, 0xa0217bde, + 0x26d7f32b, 0xe949e4e3, 0x629adafa, 0xad04cd32, 0xae4da089, + 0x61d3b741, 0xea008958, 0x259e9e90, 0xec92522e, 0x230c45e6, + 0xa8df7bff, 0x67416c37, 0x6408018c, 0xab961644, 0x2045285d, + 0xefdb3f95}, + {0x00000000, 0x24825136, 0x4904a26c, 0x6d86f35a, 0x920944d8, + 0xb68b15ee, 0xdb0de6b4, 0xff8fb782, 0xff638ff1, 0xdbe1dec7, + 0xb6672d9d, 0x92e57cab, 0x6d6acb29, 0x49e89a1f, 0x246e6945, + 0x00ec3873, 0x25b619a3, 0x01344895, 0x6cb2bbcf, 0x4830eaf9, + 0xb7bf5d7b, 0x933d0c4d, 0xfebbff17, 0xda39ae21, 0xdad59652, + 0xfe57c764, 0x93d1343e, 0xb7536508, 0x48dcd28a, 0x6c5e83bc, + 0x01d870e6, 0x255a21d0, 0x4b6c3346, 0x6fee6270, 0x0268912a, + 0x26eac01c, 0xd965779e, 0xfde726a8, 0x9061d5f2, 0xb4e384c4, + 0xb40fbcb7, 0x908ded81, 0xfd0b1edb, 0xd9894fed, 0x2606f86f, + 0x0284a959, 0x6f025a03, 0x4b800b35, 0x6eda2ae5, 0x4a587bd3, + 0x27de8889, 0x035cd9bf, 0xfcd36e3d, 0xd8513f0b, 0xb5d7cc51, + 0x91559d67, 0x91b9a514, 0xb53bf422, 0xd8bd0778, 0xfc3f564e, + 0x03b0e1cc, 0x2732b0fa, 0x4ab443a0, 0x6e361296, 0x96d8668c, + 0xb25a37ba, 0xdfdcc4e0, 0xfb5e95d6, 0x04d12254, 0x20537362, + 0x4dd58038, 0x6957d10e, 0x69bbe97d, 0x4d39b84b, 0x20bf4b11, + 0x043d1a27, 0xfbb2ada5, 0xdf30fc93, 0xb2b60fc9, 0x96345eff, + 0xb36e7f2f, 0x97ec2e19, 0xfa6add43, 0xdee88c75, 0x21673bf7, + 0x05e56ac1, 0x6863999b, 0x4ce1c8ad, 0x4c0df0de, 0x688fa1e8, + 0x050952b2, 0x218b0384, 0xde04b406, 0xfa86e530, 0x9700166a, + 0xb382475c, 0xddb455ca, 0xf93604fc, 0x94b0f7a6, 0xb032a690, + 0x4fbd1112, 0x6b3f4024, 0x06b9b37e, 0x223be248, 0x22d7da3b, + 0x06558b0d, 0x6bd37857, 0x4f512961, 0xb0de9ee3, 0x945ccfd5, + 0xf9da3c8f, 0xdd586db9, 0xf8024c69, 0xdc801d5f, 0xb106ee05, + 0x9584bf33, 0x6a0b08b1, 0x4e895987, 0x230faadd, 0x078dfbeb, + 0x0761c398, 0x23e392ae, 0x4e6561f4, 0x6ae730c2, 0x95688740, + 0xb1ead676, 0xdc6c252c, 0xf8ee741a, 0xf6c1cb59, 0xd2439a6f, + 0xbfc56935, 0x9b473803, 0x64c88f81, 0x404adeb7, 0x2dcc2ded, + 0x094e7cdb, 0x09a244a8, 0x2d20159e, 0x40a6e6c4, 0x6424b7f2, + 0x9bab0070, 0xbf295146, 0xd2afa21c, 0xf62df32a, 0xd377d2fa, + 0xf7f583cc, 0x9a737096, 0xbef121a0, 0x417e9622, 0x65fcc714, + 0x087a344e, 0x2cf86578, 0x2c145d0b, 0x08960c3d, 0x6510ff67, + 0x4192ae51, 0xbe1d19d3, 0x9a9f48e5, 0xf719bbbf, 0xd39bea89, + 0xbdadf81f, 0x992fa929, 0xf4a95a73, 0xd02b0b45, 0x2fa4bcc7, + 0x0b26edf1, 0x66a01eab, 0x42224f9d, 0x42ce77ee, 0x664c26d8, + 0x0bcad582, 0x2f4884b4, 0xd0c73336, 0xf4456200, 0x99c3915a, + 0xbd41c06c, 0x981be1bc, 0xbc99b08a, 0xd11f43d0, 0xf59d12e6, + 0x0a12a564, 0x2e90f452, 0x43160708, 0x6794563e, 0x67786e4d, + 0x43fa3f7b, 0x2e7ccc21, 0x0afe9d17, 0xf5712a95, 0xd1f37ba3, + 0xbc7588f9, 0x98f7d9cf, 0x6019add5, 0x449bfce3, 0x291d0fb9, + 0x0d9f5e8f, 0xf210e90d, 0xd692b83b, 0xbb144b61, 0x9f961a57, + 0x9f7a2224, 0xbbf87312, 0xd67e8048, 0xf2fcd17e, 0x0d7366fc, + 0x29f137ca, 0x4477c490, 0x60f595a6, 0x45afb476, 0x612de540, + 0x0cab161a, 0x2829472c, 0xd7a6f0ae, 0xf324a198, 0x9ea252c2, + 0xba2003f4, 0xbacc3b87, 0x9e4e6ab1, 0xf3c899eb, 0xd74ac8dd, + 0x28c57f5f, 0x0c472e69, 0x61c1dd33, 0x45438c05, 0x2b759e93, + 0x0ff7cfa5, 0x62713cff, 0x46f36dc9, 0xb97cda4b, 0x9dfe8b7d, + 0xf0787827, 0xd4fa2911, 0xd4161162, 0xf0944054, 0x9d12b30e, + 0xb990e238, 0x461f55ba, 0x629d048c, 0x0f1bf7d6, 0x2b99a6e0, + 0x0ec38730, 0x2a41d606, 0x47c7255c, 0x6345746a, 0x9ccac3e8, + 0xb84892de, 0xd5ce6184, 0xf14c30b2, 0xf1a008c1, 0xd52259f7, + 0xb8a4aaad, 0x9c26fb9b, 0x63a94c19, 0x472b1d2f, 0x2aadee75, + 0x0e2fbf43}, + {0x00000000, 0x36f290f3, 0x6de521e6, 0x5b17b115, 0xdbca43cc, + 0xed38d33f, 0xb62f622a, 0x80ddf2d9, 0x6ce581d9, 0x5a17112a, + 0x0100a03f, 0x37f230cc, 0xb72fc215, 0x81dd52e6, 0xdacae3f3, + 0xec387300, 0xd9cb03b2, 0xef399341, 0xb42e2254, 0x82dcb2a7, + 0x0201407e, 0x34f3d08d, 0x6fe46198, 0x5916f16b, 0xb52e826b, + 0x83dc1298, 0xd8cba38d, 0xee39337e, 0x6ee4c1a7, 0x58165154, + 0x0301e041, 0x35f370b2, 0x68e70125, 0x5e1591d6, 0x050220c3, + 0x33f0b030, 0xb32d42e9, 0x85dfd21a, 0xdec8630f, 0xe83af3fc, + 0x040280fc, 0x32f0100f, 0x69e7a11a, 0x5f1531e9, 0xdfc8c330, + 0xe93a53c3, 0xb22de2d6, 0x84df7225, 0xb12c0297, 0x87de9264, + 0xdcc92371, 0xea3bb382, 0x6ae6415b, 0x5c14d1a8, 0x070360bd, + 0x31f1f04e, 0xddc9834e, 0xeb3b13bd, 0xb02ca2a8, 0x86de325b, + 0x0603c082, 0x30f15071, 0x6be6e164, 0x5d147197, 0xd1ce024a, + 0xe73c92b9, 0xbc2b23ac, 0x8ad9b35f, 0x0a044186, 0x3cf6d175, + 0x67e16060, 0x5113f093, 0xbd2b8393, 0x8bd91360, 0xd0cea275, + 0xe63c3286, 0x66e1c05f, 0x501350ac, 0x0b04e1b9, 0x3df6714a, + 0x080501f8, 0x3ef7910b, 0x65e0201e, 0x5312b0ed, 0xd3cf4234, + 0xe53dd2c7, 0xbe2a63d2, 0x88d8f321, 0x64e08021, 0x521210d2, + 0x0905a1c7, 0x3ff73134, 0xbf2ac3ed, 0x89d8531e, 0xd2cfe20b, + 0xe43d72f8, 0xb929036f, 0x8fdb939c, 0xd4cc2289, 0xe23eb27a, + 0x62e340a3, 0x5411d050, 0x0f066145, 0x39f4f1b6, 0xd5cc82b6, + 0xe33e1245, 0xb829a350, 0x8edb33a3, 0x0e06c17a, 0x38f45189, + 0x63e3e09c, 0x5511706f, 0x60e200dd, 0x5610902e, 0x0d07213b, + 0x3bf5b1c8, 0xbb284311, 0x8ddad3e2, 0xd6cd62f7, 0xe03ff204, + 0x0c078104, 0x3af511f7, 0x61e2a0e2, 0x57103011, 0xd7cdc2c8, + 0xe13f523b, 0xba28e32e, 0x8cda73dd, 0x78ed02d5, 0x4e1f9226, + 0x15082333, 0x23fab3c0, 0xa3274119, 0x95d5d1ea, 0xcec260ff, + 0xf830f00c, 0x1408830c, 0x22fa13ff, 0x79eda2ea, 0x4f1f3219, + 0xcfc2c0c0, 0xf9305033, 0xa227e126, 0x94d571d5, 0xa1260167, + 0x97d49194, 0xccc32081, 0xfa31b072, 0x7aec42ab, 0x4c1ed258, + 0x1709634d, 0x21fbf3be, 0xcdc380be, 0xfb31104d, 0xa026a158, + 0x96d431ab, 0x1609c372, 0x20fb5381, 0x7bece294, 0x4d1e7267, + 0x100a03f0, 0x26f89303, 0x7def2216, 0x4b1db2e5, 0xcbc0403c, + 0xfd32d0cf, 0xa62561da, 0x90d7f129, 0x7cef8229, 0x4a1d12da, + 0x110aa3cf, 0x27f8333c, 0xa725c1e5, 0x91d75116, 0xcac0e003, + 0xfc3270f0, 0xc9c10042, 0xff3390b1, 0xa42421a4, 0x92d6b157, + 0x120b438e, 0x24f9d37d, 0x7fee6268, 0x491cf29b, 0xa524819b, + 0x93d61168, 0xc8c1a07d, 0xfe33308e, 0x7eeec257, 0x481c52a4, + 0x130be3b1, 0x25f97342, 0xa923009f, 0x9fd1906c, 0xc4c62179, + 0xf234b18a, 0x72e94353, 0x441bd3a0, 0x1f0c62b5, 0x29fef246, + 0xc5c68146, 0xf33411b5, 0xa823a0a0, 0x9ed13053, 0x1e0cc28a, + 0x28fe5279, 0x73e9e36c, 0x451b739f, 0x70e8032d, 0x461a93de, + 0x1d0d22cb, 0x2bffb238, 0xab2240e1, 0x9dd0d012, 0xc6c76107, + 0xf035f1f4, 0x1c0d82f4, 0x2aff1207, 0x71e8a312, 0x471a33e1, + 0xc7c7c138, 0xf13551cb, 0xaa22e0de, 0x9cd0702d, 0xc1c401ba, + 0xf7369149, 0xac21205c, 0x9ad3b0af, 0x1a0e4276, 0x2cfcd285, + 0x77eb6390, 0x4119f363, 0xad218063, 0x9bd31090, 0xc0c4a185, + 0xf6363176, 0x76ebc3af, 0x4019535c, 0x1b0ee249, 0x2dfc72ba, + 0x180f0208, 0x2efd92fb, 0x75ea23ee, 0x4318b31d, 0xc3c541c4, + 0xf537d137, 0xae206022, 0x98d2f0d1, 0x74ea83d1, 0x42181322, + 0x190fa237, 0x2ffd32c4, 0xaf20c01d, 0x99d250ee, 0xc2c5e1fb, + 0xf4377108}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x0000000000000000, 0xf390f23600000000, 0xe621e56d00000000, + 0x15b1175b00000000, 0xcc43cadb00000000, 0x3fd338ed00000000, + 0x2a622fb600000000, 0xd9f2dd8000000000, 0xd981e56c00000000, + 0x2a11175a00000000, 0x3fa0000100000000, 0xcc30f23700000000, + 0x15c22fb700000000, 0xe652dd8100000000, 0xf3e3cada00000000, + 0x007338ec00000000, 0xb203cbd900000000, 0x419339ef00000000, + 0x54222eb400000000, 0xa7b2dc8200000000, 0x7e40010200000000, + 0x8dd0f33400000000, 0x9861e46f00000000, 0x6bf1165900000000, + 0x6b822eb500000000, 0x9812dc8300000000, 0x8da3cbd800000000, + 0x7e3339ee00000000, 0xa7c1e46e00000000, 0x5451165800000000, + 0x41e0010300000000, 0xb270f33500000000, 0x2501e76800000000, + 0xd691155e00000000, 0xc320020500000000, 0x30b0f03300000000, + 0xe9422db300000000, 0x1ad2df8500000000, 0x0f63c8de00000000, + 0xfcf33ae800000000, 0xfc80020400000000, 0x0f10f03200000000, + 0x1aa1e76900000000, 0xe931155f00000000, 0x30c3c8df00000000, + 0xc3533ae900000000, 0xd6e22db200000000, 0x2572df8400000000, + 0x97022cb100000000, 0x6492de8700000000, 0x7123c9dc00000000, + 0x82b33bea00000000, 0x5b41e66a00000000, 0xa8d1145c00000000, + 0xbd60030700000000, 0x4ef0f13100000000, 0x4e83c9dd00000000, + 0xbd133beb00000000, 0xa8a22cb000000000, 0x5b32de8600000000, + 0x82c0030600000000, 0x7150f13000000000, 0x64e1e66b00000000, + 0x9771145d00000000, 0x4a02ced100000000, 0xb9923ce700000000, + 0xac232bbc00000000, 0x5fb3d98a00000000, 0x8641040a00000000, + 0x75d1f63c00000000, 0x6060e16700000000, 0x93f0135100000000, + 0x93832bbd00000000, 0x6013d98b00000000, 0x75a2ced000000000, + 0x86323ce600000000, 0x5fc0e16600000000, 0xac50135000000000, + 0xb9e1040b00000000, 0x4a71f63d00000000, 0xf801050800000000, + 0x0b91f73e00000000, 0x1e20e06500000000, 0xedb0125300000000, + 0x3442cfd300000000, 0xc7d23de500000000, 0xd2632abe00000000, + 0x21f3d88800000000, 0x2180e06400000000, 0xd210125200000000, + 0xc7a1050900000000, 0x3431f73f00000000, 0xedc32abf00000000, + 0x1e53d88900000000, 0x0be2cfd200000000, 0xf8723de400000000, + 0x6f0329b900000000, 0x9c93db8f00000000, 0x8922ccd400000000, + 0x7ab23ee200000000, 0xa340e36200000000, 0x50d0115400000000, + 0x4561060f00000000, 0xb6f1f43900000000, 0xb682ccd500000000, + 0x45123ee300000000, 0x50a329b800000000, 0xa333db8e00000000, + 0x7ac1060e00000000, 0x8951f43800000000, 0x9ce0e36300000000, + 0x6f70115500000000, 0xdd00e26000000000, 0x2e90105600000000, + 0x3b21070d00000000, 0xc8b1f53b00000000, 0x114328bb00000000, + 0xe2d3da8d00000000, 0xf762cdd600000000, 0x04f23fe000000000, + 0x0481070c00000000, 0xf711f53a00000000, 0xe2a0e26100000000, + 0x1130105700000000, 0xc8c2cdd700000000, 0x3b523fe100000000, + 0x2ee328ba00000000, 0xdd73da8c00000000, 0xd502ed7800000000, + 0x26921f4e00000000, 0x3323081500000000, 0xc0b3fa2300000000, + 0x194127a300000000, 0xead1d59500000000, 0xff60c2ce00000000, + 0x0cf030f800000000, 0x0c83081400000000, 0xff13fa2200000000, + 0xeaa2ed7900000000, 0x19321f4f00000000, 0xc0c0c2cf00000000, + 0x335030f900000000, 0x26e127a200000000, 0xd571d59400000000, + 0x670126a100000000, 0x9491d49700000000, 0x8120c3cc00000000, + 0x72b031fa00000000, 0xab42ec7a00000000, 0x58d21e4c00000000, + 0x4d63091700000000, 0xbef3fb2100000000, 0xbe80c3cd00000000, + 0x4d1031fb00000000, 0x58a126a000000000, 0xab31d49600000000, + 0x72c3091600000000, 0x8153fb2000000000, 0x94e2ec7b00000000, + 0x67721e4d00000000, 0xf0030a1000000000, 0x0393f82600000000, + 0x1622ef7d00000000, 0xe5b21d4b00000000, 0x3c40c0cb00000000, + 0xcfd032fd00000000, 0xda6125a600000000, 0x29f1d79000000000, + 0x2982ef7c00000000, 0xda121d4a00000000, 0xcfa30a1100000000, + 0x3c33f82700000000, 0xe5c125a700000000, 0x1651d79100000000, + 0x03e0c0ca00000000, 0xf07032fc00000000, 0x4200c1c900000000, + 0xb19033ff00000000, 0xa42124a400000000, 0x57b1d69200000000, + 0x8e430b1200000000, 0x7dd3f92400000000, 0x6862ee7f00000000, + 0x9bf21c4900000000, 0x9b8124a500000000, 0x6811d69300000000, + 0x7da0c1c800000000, 0x8e3033fe00000000, 0x57c2ee7e00000000, + 0xa4521c4800000000, 0xb1e30b1300000000, 0x4273f92500000000, + 0x9f0023a900000000, 0x6c90d19f00000000, 0x7921c6c400000000, + 0x8ab134f200000000, 0x5343e97200000000, 0xa0d31b4400000000, + 0xb5620c1f00000000, 0x46f2fe2900000000, 0x4681c6c500000000, + 0xb51134f300000000, 0xa0a023a800000000, 0x5330d19e00000000, + 0x8ac20c1e00000000, 0x7952fe2800000000, 0x6ce3e97300000000, + 0x9f731b4500000000, 0x2d03e87000000000, 0xde931a4600000000, + 0xcb220d1d00000000, 0x38b2ff2b00000000, 0xe14022ab00000000, + 0x12d0d09d00000000, 0x0761c7c600000000, 0xf4f135f000000000, + 0xf4820d1c00000000, 0x0712ff2a00000000, 0x12a3e87100000000, + 0xe1331a4700000000, 0x38c1c7c700000000, 0xcb5135f100000000, + 0xdee022aa00000000, 0x2d70d09c00000000, 0xba01c4c100000000, + 0x499136f700000000, 0x5c2021ac00000000, 0xafb0d39a00000000, + 0x76420e1a00000000, 0x85d2fc2c00000000, 0x9063eb7700000000, + 0x63f3194100000000, 0x638021ad00000000, 0x9010d39b00000000, + 0x85a1c4c000000000, 0x763136f600000000, 0xafc3eb7600000000, + 0x5c53194000000000, 0x49e20e1b00000000, 0xba72fc2d00000000, + 0x08020f1800000000, 0xfb92fd2e00000000, 0xee23ea7500000000, + 0x1db3184300000000, 0xc441c5c300000000, 0x37d137f500000000, + 0x226020ae00000000, 0xd1f0d29800000000, 0xd183ea7400000000, + 0x2213184200000000, 0x37a20f1900000000, 0xc432fd2f00000000, + 0x1dc020af00000000, 0xee50d29900000000, 0xfbe1c5c200000000, + 0x087137f400000000}, + {0x0000000000000000, 0x3651822400000000, 0x6ca2044900000000, + 0x5af3866d00000000, 0xd844099200000000, 0xee158bb600000000, + 0xb4e60ddb00000000, 0x82b78fff00000000, 0xf18f63ff00000000, + 0xc7dee1db00000000, 0x9d2d67b600000000, 0xab7ce59200000000, + 0x29cb6a6d00000000, 0x1f9ae84900000000, 0x45696e2400000000, + 0x7338ec0000000000, 0xa319b62500000000, 0x9548340100000000, + 0xcfbbb26c00000000, 0xf9ea304800000000, 0x7b5dbfb700000000, + 0x4d0c3d9300000000, 0x17ffbbfe00000000, 0x21ae39da00000000, + 0x5296d5da00000000, 0x64c757fe00000000, 0x3e34d19300000000, + 0x086553b700000000, 0x8ad2dc4800000000, 0xbc835e6c00000000, + 0xe670d80100000000, 0xd0215a2500000000, 0x46336c4b00000000, + 0x7062ee6f00000000, 0x2a91680200000000, 0x1cc0ea2600000000, + 0x9e7765d900000000, 0xa826e7fd00000000, 0xf2d5619000000000, + 0xc484e3b400000000, 0xb7bc0fb400000000, 0x81ed8d9000000000, + 0xdb1e0bfd00000000, 0xed4f89d900000000, 0x6ff8062600000000, + 0x59a9840200000000, 0x035a026f00000000, 0x350b804b00000000, + 0xe52ada6e00000000, 0xd37b584a00000000, 0x8988de2700000000, + 0xbfd95c0300000000, 0x3d6ed3fc00000000, 0x0b3f51d800000000, + 0x51ccd7b500000000, 0x679d559100000000, 0x14a5b99100000000, + 0x22f43bb500000000, 0x7807bdd800000000, 0x4e563ffc00000000, + 0xcce1b00300000000, 0xfab0322700000000, 0xa043b44a00000000, + 0x9612366e00000000, 0x8c66d89600000000, 0xba375ab200000000, + 0xe0c4dcdf00000000, 0xd6955efb00000000, 0x5422d10400000000, + 0x6273532000000000, 0x3880d54d00000000, 0x0ed1576900000000, + 0x7de9bb6900000000, 0x4bb8394d00000000, 0x114bbf2000000000, + 0x271a3d0400000000, 0xa5adb2fb00000000, 0x93fc30df00000000, + 0xc90fb6b200000000, 0xff5e349600000000, 0x2f7f6eb300000000, + 0x192eec9700000000, 0x43dd6afa00000000, 0x758ce8de00000000, + 0xf73b672100000000, 0xc16ae50500000000, 0x9b99636800000000, + 0xadc8e14c00000000, 0xdef00d4c00000000, 0xe8a18f6800000000, + 0xb252090500000000, 0x84038b2100000000, 0x06b404de00000000, + 0x30e586fa00000000, 0x6a16009700000000, 0x5c4782b300000000, + 0xca55b4dd00000000, 0xfc0436f900000000, 0xa6f7b09400000000, + 0x90a632b000000000, 0x1211bd4f00000000, 0x24403f6b00000000, + 0x7eb3b90600000000, 0x48e23b2200000000, 0x3bdad72200000000, + 0x0d8b550600000000, 0x5778d36b00000000, 0x6129514f00000000, + 0xe39edeb000000000, 0xd5cf5c9400000000, 0x8f3cdaf900000000, + 0xb96d58dd00000000, 0x694c02f800000000, 0x5f1d80dc00000000, + 0x05ee06b100000000, 0x33bf849500000000, 0xb1080b6a00000000, + 0x8759894e00000000, 0xddaa0f2300000000, 0xebfb8d0700000000, + 0x98c3610700000000, 0xae92e32300000000, 0xf461654e00000000, + 0xc230e76a00000000, 0x4087689500000000, 0x76d6eab100000000, + 0x2c256cdc00000000, 0x1a74eef800000000, 0x59cbc1f600000000, + 0x6f9a43d200000000, 0x3569c5bf00000000, 0x0338479b00000000, + 0x818fc86400000000, 0xb7de4a4000000000, 0xed2dcc2d00000000, + 0xdb7c4e0900000000, 0xa844a20900000000, 0x9e15202d00000000, + 0xc4e6a64000000000, 0xf2b7246400000000, 0x7000ab9b00000000, + 0x465129bf00000000, 0x1ca2afd200000000, 0x2af32df600000000, + 0xfad277d300000000, 0xcc83f5f700000000, 0x9670739a00000000, + 0xa021f1be00000000, 0x22967e4100000000, 0x14c7fc6500000000, + 0x4e347a0800000000, 0x7865f82c00000000, 0x0b5d142c00000000, + 0x3d0c960800000000, 0x67ff106500000000, 0x51ae924100000000, + 0xd3191dbe00000000, 0xe5489f9a00000000, 0xbfbb19f700000000, + 0x89ea9bd300000000, 0x1ff8adbd00000000, 0x29a92f9900000000, + 0x735aa9f400000000, 0x450b2bd000000000, 0xc7bca42f00000000, + 0xf1ed260b00000000, 0xab1ea06600000000, 0x9d4f224200000000, + 0xee77ce4200000000, 0xd8264c6600000000, 0x82d5ca0b00000000, + 0xb484482f00000000, 0x3633c7d000000000, 0x006245f400000000, + 0x5a91c39900000000, 0x6cc041bd00000000, 0xbce11b9800000000, + 0x8ab099bc00000000, 0xd0431fd100000000, 0xe6129df500000000, + 0x64a5120a00000000, 0x52f4902e00000000, 0x0807164300000000, + 0x3e56946700000000, 0x4d6e786700000000, 0x7b3ffa4300000000, + 0x21cc7c2e00000000, 0x179dfe0a00000000, 0x952a71f500000000, + 0xa37bf3d100000000, 0xf98875bc00000000, 0xcfd9f79800000000, + 0xd5ad196000000000, 0xe3fc9b4400000000, 0xb90f1d2900000000, + 0x8f5e9f0d00000000, 0x0de910f200000000, 0x3bb892d600000000, + 0x614b14bb00000000, 0x571a969f00000000, 0x24227a9f00000000, + 0x1273f8bb00000000, 0x48807ed600000000, 0x7ed1fcf200000000, + 0xfc66730d00000000, 0xca37f12900000000, 0x90c4774400000000, + 0xa695f56000000000, 0x76b4af4500000000, 0x40e52d6100000000, + 0x1a16ab0c00000000, 0x2c47292800000000, 0xaef0a6d700000000, + 0x98a124f300000000, 0xc252a29e00000000, 0xf40320ba00000000, + 0x873bccba00000000, 0xb16a4e9e00000000, 0xeb99c8f300000000, + 0xddc84ad700000000, 0x5f7fc52800000000, 0x692e470c00000000, + 0x33ddc16100000000, 0x058c434500000000, 0x939e752b00000000, + 0xa5cff70f00000000, 0xff3c716200000000, 0xc96df34600000000, + 0x4bda7cb900000000, 0x7d8bfe9d00000000, 0x277878f000000000, + 0x1129fad400000000, 0x621116d400000000, 0x544094f000000000, + 0x0eb3129d00000000, 0x38e290b900000000, 0xba551f4600000000, + 0x8c049d6200000000, 0xd6f71b0f00000000, 0xe0a6992b00000000, + 0x3087c30e00000000, 0x06d6412a00000000, 0x5c25c74700000000, + 0x6a74456300000000, 0xe8c3ca9c00000000, 0xde9248b800000000, + 0x8461ced500000000, 0xb2304cf100000000, 0xc108a0f100000000, + 0xf75922d500000000, 0xadaaa4b800000000, 0x9bfb269c00000000, + 0x194ca96300000000, 0x2f1d2b4700000000, 0x75eead2a00000000, + 0x43bf2f0e00000000}, + {0x0000000000000000, 0xc8179ecf00000000, 0xd1294d4400000000, + 0x193ed38b00000000, 0xa2539a8800000000, 0x6a44044700000000, + 0x737ad7cc00000000, 0xbb6d490300000000, 0x05a145ca00000000, + 0xcdb6db0500000000, 0xd488088e00000000, 0x1c9f964100000000, + 0xa7f2df4200000000, 0x6fe5418d00000000, 0x76db920600000000, + 0xbecc0cc900000000, 0x4b44fa4f00000000, 0x8353648000000000, + 0x9a6db70b00000000, 0x527a29c400000000, 0xe91760c700000000, + 0x2100fe0800000000, 0x383e2d8300000000, 0xf029b34c00000000, + 0x4ee5bf8500000000, 0x86f2214a00000000, 0x9fccf2c100000000, + 0x57db6c0e00000000, 0xecb6250d00000000, 0x24a1bbc200000000, + 0x3d9f684900000000, 0xf588f68600000000, 0x9688f49f00000000, + 0x5e9f6a5000000000, 0x47a1b9db00000000, 0x8fb6271400000000, + 0x34db6e1700000000, 0xfcccf0d800000000, 0xe5f2235300000000, + 0x2de5bd9c00000000, 0x9329b15500000000, 0x5b3e2f9a00000000, + 0x4200fc1100000000, 0x8a1762de00000000, 0x317a2bdd00000000, + 0xf96db51200000000, 0xe053669900000000, 0x2844f85600000000, + 0xddcc0ed000000000, 0x15db901f00000000, 0x0ce5439400000000, + 0xc4f2dd5b00000000, 0x7f9f945800000000, 0xb7880a9700000000, + 0xaeb6d91c00000000, 0x66a147d300000000, 0xd86d4b1a00000000, + 0x107ad5d500000000, 0x0944065e00000000, 0xc153989100000000, + 0x7a3ed19200000000, 0xb2294f5d00000000, 0xab179cd600000000, + 0x6300021900000000, 0x6d1798e400000000, 0xa500062b00000000, + 0xbc3ed5a000000000, 0x74294b6f00000000, 0xcf44026c00000000, + 0x07539ca300000000, 0x1e6d4f2800000000, 0xd67ad1e700000000, + 0x68b6dd2e00000000, 0xa0a143e100000000, 0xb99f906a00000000, + 0x71880ea500000000, 0xcae547a600000000, 0x02f2d96900000000, + 0x1bcc0ae200000000, 0xd3db942d00000000, 0x265362ab00000000, + 0xee44fc6400000000, 0xf77a2fef00000000, 0x3f6db12000000000, + 0x8400f82300000000, 0x4c1766ec00000000, 0x5529b56700000000, + 0x9d3e2ba800000000, 0x23f2276100000000, 0xebe5b9ae00000000, + 0xf2db6a2500000000, 0x3accf4ea00000000, 0x81a1bde900000000, + 0x49b6232600000000, 0x5088f0ad00000000, 0x989f6e6200000000, + 0xfb9f6c7b00000000, 0x3388f2b400000000, 0x2ab6213f00000000, + 0xe2a1bff000000000, 0x59ccf6f300000000, 0x91db683c00000000, + 0x88e5bbb700000000, 0x40f2257800000000, 0xfe3e29b100000000, + 0x3629b77e00000000, 0x2f1764f500000000, 0xe700fa3a00000000, + 0x5c6db33900000000, 0x947a2df600000000, 0x8d44fe7d00000000, + 0x455360b200000000, 0xb0db963400000000, 0x78cc08fb00000000, + 0x61f2db7000000000, 0xa9e545bf00000000, 0x12880cbc00000000, + 0xda9f927300000000, 0xc3a141f800000000, 0x0bb6df3700000000, + 0xb57ad3fe00000000, 0x7d6d4d3100000000, 0x64539eba00000000, + 0xac44007500000000, 0x1729497600000000, 0xdf3ed7b900000000, + 0xc600043200000000, 0x0e179afd00000000, 0x9b28411200000000, + 0x533fdfdd00000000, 0x4a010c5600000000, 0x8216929900000000, + 0x397bdb9a00000000, 0xf16c455500000000, 0xe85296de00000000, + 0x2045081100000000, 0x9e8904d800000000, 0x569e9a1700000000, + 0x4fa0499c00000000, 0x87b7d75300000000, 0x3cda9e5000000000, + 0xf4cd009f00000000, 0xedf3d31400000000, 0x25e44ddb00000000, + 0xd06cbb5d00000000, 0x187b259200000000, 0x0145f61900000000, + 0xc95268d600000000, 0x723f21d500000000, 0xba28bf1a00000000, + 0xa3166c9100000000, 0x6b01f25e00000000, 0xd5cdfe9700000000, + 0x1dda605800000000, 0x04e4b3d300000000, 0xccf32d1c00000000, + 0x779e641f00000000, 0xbf89fad000000000, 0xa6b7295b00000000, + 0x6ea0b79400000000, 0x0da0b58d00000000, 0xc5b72b4200000000, + 0xdc89f8c900000000, 0x149e660600000000, 0xaff32f0500000000, + 0x67e4b1ca00000000, 0x7eda624100000000, 0xb6cdfc8e00000000, + 0x0801f04700000000, 0xc0166e8800000000, 0xd928bd0300000000, + 0x113f23cc00000000, 0xaa526acf00000000, 0x6245f40000000000, + 0x7b7b278b00000000, 0xb36cb94400000000, 0x46e44fc200000000, + 0x8ef3d10d00000000, 0x97cd028600000000, 0x5fda9c4900000000, + 0xe4b7d54a00000000, 0x2ca04b8500000000, 0x359e980e00000000, + 0xfd8906c100000000, 0x43450a0800000000, 0x8b5294c700000000, + 0x926c474c00000000, 0x5a7bd98300000000, 0xe116908000000000, + 0x29010e4f00000000, 0x303fddc400000000, 0xf828430b00000000, + 0xf63fd9f600000000, 0x3e28473900000000, 0x271694b200000000, + 0xef010a7d00000000, 0x546c437e00000000, 0x9c7bddb100000000, + 0x85450e3a00000000, 0x4d5290f500000000, 0xf39e9c3c00000000, + 0x3b8902f300000000, 0x22b7d17800000000, 0xeaa04fb700000000, + 0x51cd06b400000000, 0x99da987b00000000, 0x80e44bf000000000, + 0x48f3d53f00000000, 0xbd7b23b900000000, 0x756cbd7600000000, + 0x6c526efd00000000, 0xa445f03200000000, 0x1f28b93100000000, + 0xd73f27fe00000000, 0xce01f47500000000, 0x06166aba00000000, + 0xb8da667300000000, 0x70cdf8bc00000000, 0x69f32b3700000000, + 0xa1e4b5f800000000, 0x1a89fcfb00000000, 0xd29e623400000000, + 0xcba0b1bf00000000, 0x03b72f7000000000, 0x60b72d6900000000, + 0xa8a0b3a600000000, 0xb19e602d00000000, 0x7989fee200000000, + 0xc2e4b7e100000000, 0x0af3292e00000000, 0x13cdfaa500000000, + 0xdbda646a00000000, 0x651668a300000000, 0xad01f66c00000000, + 0xb43f25e700000000, 0x7c28bb2800000000, 0xc745f22b00000000, + 0x0f526ce400000000, 0x166cbf6f00000000, 0xde7b21a000000000, + 0x2bf3d72600000000, 0xe3e449e900000000, 0xfada9a6200000000, + 0x32cd04ad00000000, 0x89a04dae00000000, 0x41b7d36100000000, + 0x588900ea00000000, 0x909e9e2500000000, 0x2e5292ec00000000, + 0xe6450c2300000000, 0xff7bdfa800000000, 0x376c416700000000, + 0x8c01086400000000, 0x441696ab00000000, 0x5d28452000000000, + 0x953fdbef00000000}, + {0x0000000000000000, 0x95d4709500000000, 0x6baf90f100000000, + 0xfe7be06400000000, 0x9758503800000000, 0x028c20ad00000000, + 0xfcf7c0c900000000, 0x6923b05c00000000, 0x2eb1a07000000000, + 0xbb65d0e500000000, 0x451e308100000000, 0xd0ca401400000000, + 0xb9e9f04800000000, 0x2c3d80dd00000000, 0xd24660b900000000, + 0x4792102c00000000, 0x5c6241e100000000, 0xc9b6317400000000, + 0x37cdd11000000000, 0xa219a18500000000, 0xcb3a11d900000000, + 0x5eee614c00000000, 0xa095812800000000, 0x3541f1bd00000000, + 0x72d3e19100000000, 0xe707910400000000, 0x197c716000000000, + 0x8ca801f500000000, 0xe58bb1a900000000, 0x705fc13c00000000, + 0x8e24215800000000, 0x1bf051cd00000000, 0xf9c2f31900000000, + 0x6c16838c00000000, 0x926d63e800000000, 0x07b9137d00000000, + 0x6e9aa32100000000, 0xfb4ed3b400000000, 0x053533d000000000, + 0x90e1434500000000, 0xd773536900000000, 0x42a723fc00000000, + 0xbcdcc39800000000, 0x2908b30d00000000, 0x402b035100000000, + 0xd5ff73c400000000, 0x2b8493a000000000, 0xbe50e33500000000, + 0xa5a0b2f800000000, 0x3074c26d00000000, 0xce0f220900000000, + 0x5bdb529c00000000, 0x32f8e2c000000000, 0xa72c925500000000, + 0x5957723100000000, 0xcc8302a400000000, 0x8b11128800000000, + 0x1ec5621d00000000, 0xe0be827900000000, 0x756af2ec00000000, + 0x1c4942b000000000, 0x899d322500000000, 0x77e6d24100000000, + 0xe232a2d400000000, 0xf285e73300000000, 0x675197a600000000, + 0x992a77c200000000, 0x0cfe075700000000, 0x65ddb70b00000000, + 0xf009c79e00000000, 0x0e7227fa00000000, 0x9ba6576f00000000, + 0xdc34474300000000, 0x49e037d600000000, 0xb79bd7b200000000, + 0x224fa72700000000, 0x4b6c177b00000000, 0xdeb867ee00000000, + 0x20c3878a00000000, 0xb517f71f00000000, 0xaee7a6d200000000, + 0x3b33d64700000000, 0xc548362300000000, 0x509c46b600000000, + 0x39bff6ea00000000, 0xac6b867f00000000, 0x5210661b00000000, + 0xc7c4168e00000000, 0x805606a200000000, 0x1582763700000000, + 0xebf9965300000000, 0x7e2de6c600000000, 0x170e569a00000000, + 0x82da260f00000000, 0x7ca1c66b00000000, 0xe975b6fe00000000, + 0x0b47142a00000000, 0x9e9364bf00000000, 0x60e884db00000000, + 0xf53cf44e00000000, 0x9c1f441200000000, 0x09cb348700000000, + 0xf7b0d4e300000000, 0x6264a47600000000, 0x25f6b45a00000000, + 0xb022c4cf00000000, 0x4e5924ab00000000, 0xdb8d543e00000000, + 0xb2aee46200000000, 0x277a94f700000000, 0xd901749300000000, + 0x4cd5040600000000, 0x572555cb00000000, 0xc2f1255e00000000, + 0x3c8ac53a00000000, 0xa95eb5af00000000, 0xc07d05f300000000, + 0x55a9756600000000, 0xabd2950200000000, 0x3e06e59700000000, + 0x7994f5bb00000000, 0xec40852e00000000, 0x123b654a00000000, + 0x87ef15df00000000, 0xeecca58300000000, 0x7b18d51600000000, + 0x8563357200000000, 0x10b745e700000000, 0xe40bcf6700000000, + 0x71dfbff200000000, 0x8fa45f9600000000, 0x1a702f0300000000, + 0x73539f5f00000000, 0xe687efca00000000, 0x18fc0fae00000000, + 0x8d287f3b00000000, 0xcaba6f1700000000, 0x5f6e1f8200000000, + 0xa115ffe600000000, 0x34c18f7300000000, 0x5de23f2f00000000, + 0xc8364fba00000000, 0x364dafde00000000, 0xa399df4b00000000, + 0xb8698e8600000000, 0x2dbdfe1300000000, 0xd3c61e7700000000, + 0x46126ee200000000, 0x2f31debe00000000, 0xbae5ae2b00000000, + 0x449e4e4f00000000, 0xd14a3eda00000000, 0x96d82ef600000000, + 0x030c5e6300000000, 0xfd77be0700000000, 0x68a3ce9200000000, + 0x01807ece00000000, 0x94540e5b00000000, 0x6a2fee3f00000000, + 0xfffb9eaa00000000, 0x1dc93c7e00000000, 0x881d4ceb00000000, + 0x7666ac8f00000000, 0xe3b2dc1a00000000, 0x8a916c4600000000, + 0x1f451cd300000000, 0xe13efcb700000000, 0x74ea8c2200000000, + 0x33789c0e00000000, 0xa6acec9b00000000, 0x58d70cff00000000, + 0xcd037c6a00000000, 0xa420cc3600000000, 0x31f4bca300000000, + 0xcf8f5cc700000000, 0x5a5b2c5200000000, 0x41ab7d9f00000000, + 0xd47f0d0a00000000, 0x2a04ed6e00000000, 0xbfd09dfb00000000, + 0xd6f32da700000000, 0x43275d3200000000, 0xbd5cbd5600000000, + 0x2888cdc300000000, 0x6f1addef00000000, 0xfacead7a00000000, + 0x04b54d1e00000000, 0x91613d8b00000000, 0xf8428dd700000000, + 0x6d96fd4200000000, 0x93ed1d2600000000, 0x06396db300000000, + 0x168e285400000000, 0x835a58c100000000, 0x7d21b8a500000000, + 0xe8f5c83000000000, 0x81d6786c00000000, 0x140208f900000000, + 0xea79e89d00000000, 0x7fad980800000000, 0x383f882400000000, + 0xadebf8b100000000, 0x539018d500000000, 0xc644684000000000, + 0xaf67d81c00000000, 0x3ab3a88900000000, 0xc4c848ed00000000, + 0x511c387800000000, 0x4aec69b500000000, 0xdf38192000000000, + 0x2143f94400000000, 0xb49789d100000000, 0xddb4398d00000000, + 0x4860491800000000, 0xb61ba97c00000000, 0x23cfd9e900000000, + 0x645dc9c500000000, 0xf189b95000000000, 0x0ff2593400000000, + 0x9a2629a100000000, 0xf30599fd00000000, 0x66d1e96800000000, + 0x98aa090c00000000, 0x0d7e799900000000, 0xef4cdb4d00000000, + 0x7a98abd800000000, 0x84e34bbc00000000, 0x11373b2900000000, + 0x78148b7500000000, 0xedc0fbe000000000, 0x13bb1b8400000000, + 0x866f6b1100000000, 0xc1fd7b3d00000000, 0x54290ba800000000, + 0xaa52ebcc00000000, 0x3f869b5900000000, 0x56a52b0500000000, + 0xc3715b9000000000, 0x3d0abbf400000000, 0xa8decb6100000000, + 0xb32e9aac00000000, 0x26faea3900000000, 0xd8810a5d00000000, + 0x4d557ac800000000, 0x2476ca9400000000, 0xb1a2ba0100000000, + 0x4fd95a6500000000, 0xda0d2af000000000, 0x9d9f3adc00000000, + 0x084b4a4900000000, 0xf630aa2d00000000, 0x63e4dab800000000, + 0x0ac76ae400000000, 0x9f131a7100000000, 0x6168fa1500000000, + 0xf4bc8a8000000000}, + {0x0000000000000000, 0x1f17f08000000000, 0x7f2891da00000000, + 0x603f615a00000000, 0xbf56536e00000000, 0xa041a3ee00000000, + 0xc07ec2b400000000, 0xdf69323400000000, 0x7eada6dc00000000, + 0x61ba565c00000000, 0x0185370600000000, 0x1e92c78600000000, + 0xc1fbf5b200000000, 0xdeec053200000000, 0xbed3646800000000, + 0xa1c494e800000000, 0xbd5c3c6200000000, 0xa24bcce200000000, + 0xc274adb800000000, 0xdd635d3800000000, 0x020a6f0c00000000, + 0x1d1d9f8c00000000, 0x7d22fed600000000, 0x62350e5600000000, + 0xc3f19abe00000000, 0xdce66a3e00000000, 0xbcd90b6400000000, + 0xa3cefbe400000000, 0x7ca7c9d000000000, 0x63b0395000000000, + 0x038f580a00000000, 0x1c98a88a00000000, 0x7ab978c400000000, + 0x65ae884400000000, 0x0591e91e00000000, 0x1a86199e00000000, + 0xc5ef2baa00000000, 0xdaf8db2a00000000, 0xbac7ba7000000000, + 0xa5d04af000000000, 0x0414de1800000000, 0x1b032e9800000000, + 0x7b3c4fc200000000, 0x642bbf4200000000, 0xbb428d7600000000, + 0xa4557df600000000, 0xc46a1cac00000000, 0xdb7dec2c00000000, + 0xc7e544a600000000, 0xd8f2b42600000000, 0xb8cdd57c00000000, + 0xa7da25fc00000000, 0x78b317c800000000, 0x67a4e74800000000, + 0x079b861200000000, 0x188c769200000000, 0xb948e27a00000000, + 0xa65f12fa00000000, 0xc66073a000000000, 0xd977832000000000, + 0x061eb11400000000, 0x1909419400000000, 0x793620ce00000000, + 0x6621d04e00000000, 0xb574805300000000, 0xaa6370d300000000, + 0xca5c118900000000, 0xd54be10900000000, 0x0a22d33d00000000, + 0x153523bd00000000, 0x750a42e700000000, 0x6a1db26700000000, + 0xcbd9268f00000000, 0xd4ced60f00000000, 0xb4f1b75500000000, + 0xabe647d500000000, 0x748f75e100000000, 0x6b98856100000000, + 0x0ba7e43b00000000, 0x14b014bb00000000, 0x0828bc3100000000, + 0x173f4cb100000000, 0x77002deb00000000, 0x6817dd6b00000000, + 0xb77eef5f00000000, 0xa8691fdf00000000, 0xc8567e8500000000, + 0xd7418e0500000000, 0x76851aed00000000, 0x6992ea6d00000000, + 0x09ad8b3700000000, 0x16ba7bb700000000, 0xc9d3498300000000, + 0xd6c4b90300000000, 0xb6fbd85900000000, 0xa9ec28d900000000, + 0xcfcdf89700000000, 0xd0da081700000000, 0xb0e5694d00000000, + 0xaff299cd00000000, 0x709babf900000000, 0x6f8c5b7900000000, + 0x0fb33a2300000000, 0x10a4caa300000000, 0xb1605e4b00000000, + 0xae77aecb00000000, 0xce48cf9100000000, 0xd15f3f1100000000, + 0x0e360d2500000000, 0x1121fda500000000, 0x711e9cff00000000, + 0x6e096c7f00000000, 0x7291c4f500000000, 0x6d86347500000000, + 0x0db9552f00000000, 0x12aea5af00000000, 0xcdc7979b00000000, + 0xd2d0671b00000000, 0xb2ef064100000000, 0xadf8f6c100000000, + 0x0c3c622900000000, 0x132b92a900000000, 0x7314f3f300000000, + 0x6c03037300000000, 0xb36a314700000000, 0xac7dc1c700000000, + 0xcc42a09d00000000, 0xd355501d00000000, 0x6ae900a700000000, + 0x75fef02700000000, 0x15c1917d00000000, 0x0ad661fd00000000, + 0xd5bf53c900000000, 0xcaa8a34900000000, 0xaa97c21300000000, + 0xb580329300000000, 0x1444a67b00000000, 0x0b5356fb00000000, + 0x6b6c37a100000000, 0x747bc72100000000, 0xab12f51500000000, + 0xb405059500000000, 0xd43a64cf00000000, 0xcb2d944f00000000, + 0xd7b53cc500000000, 0xc8a2cc4500000000, 0xa89dad1f00000000, + 0xb78a5d9f00000000, 0x68e36fab00000000, 0x77f49f2b00000000, + 0x17cbfe7100000000, 0x08dc0ef100000000, 0xa9189a1900000000, + 0xb60f6a9900000000, 0xd6300bc300000000, 0xc927fb4300000000, + 0x164ec97700000000, 0x095939f700000000, 0x696658ad00000000, + 0x7671a82d00000000, 0x1050786300000000, 0x0f4788e300000000, + 0x6f78e9b900000000, 0x706f193900000000, 0xaf062b0d00000000, + 0xb011db8d00000000, 0xd02ebad700000000, 0xcf394a5700000000, + 0x6efddebf00000000, 0x71ea2e3f00000000, 0x11d54f6500000000, + 0x0ec2bfe500000000, 0xd1ab8dd100000000, 0xcebc7d5100000000, + 0xae831c0b00000000, 0xb194ec8b00000000, 0xad0c440100000000, + 0xb21bb48100000000, 0xd224d5db00000000, 0xcd33255b00000000, + 0x125a176f00000000, 0x0d4de7ef00000000, 0x6d7286b500000000, + 0x7265763500000000, 0xd3a1e2dd00000000, 0xccb6125d00000000, + 0xac89730700000000, 0xb39e838700000000, 0x6cf7b1b300000000, + 0x73e0413300000000, 0x13df206900000000, 0x0cc8d0e900000000, + 0xdf9d80f400000000, 0xc08a707400000000, 0xa0b5112e00000000, + 0xbfa2e1ae00000000, 0x60cbd39a00000000, 0x7fdc231a00000000, + 0x1fe3424000000000, 0x00f4b2c000000000, 0xa130262800000000, + 0xbe27d6a800000000, 0xde18b7f200000000, 0xc10f477200000000, + 0x1e66754600000000, 0x017185c600000000, 0x614ee49c00000000, + 0x7e59141c00000000, 0x62c1bc9600000000, 0x7dd64c1600000000, + 0x1de92d4c00000000, 0x02feddcc00000000, 0xdd97eff800000000, + 0xc2801f7800000000, 0xa2bf7e2200000000, 0xbda88ea200000000, + 0x1c6c1a4a00000000, 0x037beaca00000000, 0x63448b9000000000, + 0x7c537b1000000000, 0xa33a492400000000, 0xbc2db9a400000000, + 0xdc12d8fe00000000, 0xc305287e00000000, 0xa524f83000000000, + 0xba3308b000000000, 0xda0c69ea00000000, 0xc51b996a00000000, + 0x1a72ab5e00000000, 0x05655bde00000000, 0x655a3a8400000000, + 0x7a4dca0400000000, 0xdb895eec00000000, 0xc49eae6c00000000, + 0xa4a1cf3600000000, 0xbbb63fb600000000, 0x64df0d8200000000, + 0x7bc8fd0200000000, 0x1bf79c5800000000, 0x04e06cd800000000, + 0x1878c45200000000, 0x076f34d200000000, 0x6750558800000000, + 0x7847a50800000000, 0xa72e973c00000000, 0xb83967bc00000000, + 0xd80606e600000000, 0xc711f66600000000, 0x66d5628e00000000, + 0x79c2920e00000000, 0x19fdf35400000000, 0x06ea03d400000000, + 0xd98331e000000000, 0xc694c16000000000, 0xa6aba03a00000000, + 0xb9bc50ba00000000}, + {0x0000000000000000, 0xe2fd888d00000000, 0x85fd60c000000000, + 0x6700e84d00000000, 0x4bfdb05b00000000, 0xa90038d600000000, + 0xce00d09b00000000, 0x2cfd581600000000, 0x96fa61b700000000, + 0x7407e93a00000000, 0x1307017700000000, 0xf1fa89fa00000000, + 0xdd07d1ec00000000, 0x3ffa596100000000, 0x58fab12c00000000, + 0xba0739a100000000, 0x6df3b2b500000000, 0x8f0e3a3800000000, + 0xe80ed27500000000, 0x0af35af800000000, 0x260e02ee00000000, + 0xc4f38a6300000000, 0xa3f3622e00000000, 0x410eeaa300000000, + 0xfb09d30200000000, 0x19f45b8f00000000, 0x7ef4b3c200000000, + 0x9c093b4f00000000, 0xb0f4635900000000, 0x5209ebd400000000, + 0x3509039900000000, 0xd7f48b1400000000, 0x9be014b000000000, + 0x791d9c3d00000000, 0x1e1d747000000000, 0xfce0fcfd00000000, + 0xd01da4eb00000000, 0x32e02c6600000000, 0x55e0c42b00000000, + 0xb71d4ca600000000, 0x0d1a750700000000, 0xefe7fd8a00000000, + 0x88e715c700000000, 0x6a1a9d4a00000000, 0x46e7c55c00000000, + 0xa41a4dd100000000, 0xc31aa59c00000000, 0x21e72d1100000000, + 0xf613a60500000000, 0x14ee2e8800000000, 0x73eec6c500000000, + 0x91134e4800000000, 0xbdee165e00000000, 0x5f139ed300000000, + 0x3813769e00000000, 0xdaeefe1300000000, 0x60e9c7b200000000, + 0x82144f3f00000000, 0xe514a77200000000, 0x07e92fff00000000, + 0x2b1477e900000000, 0xc9e9ff6400000000, 0xaee9172900000000, + 0x4c149fa400000000, 0x77c758bb00000000, 0x953ad03600000000, + 0xf23a387b00000000, 0x10c7b0f600000000, 0x3c3ae8e000000000, + 0xdec7606d00000000, 0xb9c7882000000000, 0x5b3a00ad00000000, + 0xe13d390c00000000, 0x03c0b18100000000, 0x64c059cc00000000, + 0x863dd14100000000, 0xaac0895700000000, 0x483d01da00000000, + 0x2f3de99700000000, 0xcdc0611a00000000, 0x1a34ea0e00000000, + 0xf8c9628300000000, 0x9fc98ace00000000, 0x7d34024300000000, + 0x51c95a5500000000, 0xb334d2d800000000, 0xd4343a9500000000, + 0x36c9b21800000000, 0x8cce8bb900000000, 0x6e33033400000000, + 0x0933eb7900000000, 0xebce63f400000000, 0xc7333be200000000, + 0x25ceb36f00000000, 0x42ce5b2200000000, 0xa033d3af00000000, + 0xec274c0b00000000, 0x0edac48600000000, 0x69da2ccb00000000, + 0x8b27a44600000000, 0xa7dafc5000000000, 0x452774dd00000000, + 0x22279c9000000000, 0xc0da141d00000000, 0x7add2dbc00000000, + 0x9820a53100000000, 0xff204d7c00000000, 0x1dddc5f100000000, + 0x31209de700000000, 0xd3dd156a00000000, 0xb4ddfd2700000000, + 0x562075aa00000000, 0x81d4febe00000000, 0x6329763300000000, + 0x04299e7e00000000, 0xe6d416f300000000, 0xca294ee500000000, + 0x28d4c66800000000, 0x4fd42e2500000000, 0xad29a6a800000000, + 0x172e9f0900000000, 0xf5d3178400000000, 0x92d3ffc900000000, + 0x702e774400000000, 0x5cd32f5200000000, 0xbe2ea7df00000000, + 0xd92e4f9200000000, 0x3bd3c71f00000000, 0xaf88c0ad00000000, + 0x4d75482000000000, 0x2a75a06d00000000, 0xc88828e000000000, + 0xe47570f600000000, 0x0688f87b00000000, 0x6188103600000000, + 0x837598bb00000000, 0x3972a11a00000000, 0xdb8f299700000000, + 0xbc8fc1da00000000, 0x5e72495700000000, 0x728f114100000000, + 0x907299cc00000000, 0xf772718100000000, 0x158ff90c00000000, + 0xc27b721800000000, 0x2086fa9500000000, 0x478612d800000000, + 0xa57b9a5500000000, 0x8986c24300000000, 0x6b7b4ace00000000, + 0x0c7ba28300000000, 0xee862a0e00000000, 0x548113af00000000, + 0xb67c9b2200000000, 0xd17c736f00000000, 0x3381fbe200000000, + 0x1f7ca3f400000000, 0xfd812b7900000000, 0x9a81c33400000000, + 0x787c4bb900000000, 0x3468d41d00000000, 0xd6955c9000000000, + 0xb195b4dd00000000, 0x53683c5000000000, 0x7f95644600000000, + 0x9d68eccb00000000, 0xfa68048600000000, 0x18958c0b00000000, + 0xa292b5aa00000000, 0x406f3d2700000000, 0x276fd56a00000000, + 0xc5925de700000000, 0xe96f05f100000000, 0x0b928d7c00000000, + 0x6c92653100000000, 0x8e6fedbc00000000, 0x599b66a800000000, + 0xbb66ee2500000000, 0xdc66066800000000, 0x3e9b8ee500000000, + 0x1266d6f300000000, 0xf09b5e7e00000000, 0x979bb63300000000, + 0x75663ebe00000000, 0xcf61071f00000000, 0x2d9c8f9200000000, + 0x4a9c67df00000000, 0xa861ef5200000000, 0x849cb74400000000, + 0x66613fc900000000, 0x0161d78400000000, 0xe39c5f0900000000, + 0xd84f981600000000, 0x3ab2109b00000000, 0x5db2f8d600000000, + 0xbf4f705b00000000, 0x93b2284d00000000, 0x714fa0c000000000, + 0x164f488d00000000, 0xf4b2c00000000000, 0x4eb5f9a100000000, + 0xac48712c00000000, 0xcb48996100000000, 0x29b511ec00000000, + 0x054849fa00000000, 0xe7b5c17700000000, 0x80b5293a00000000, + 0x6248a1b700000000, 0xb5bc2aa300000000, 0x5741a22e00000000, + 0x30414a6300000000, 0xd2bcc2ee00000000, 0xfe419af800000000, + 0x1cbc127500000000, 0x7bbcfa3800000000, 0x994172b500000000, + 0x23464b1400000000, 0xc1bbc39900000000, 0xa6bb2bd400000000, + 0x4446a35900000000, 0x68bbfb4f00000000, 0x8a4673c200000000, + 0xed469b8f00000000, 0x0fbb130200000000, 0x43af8ca600000000, + 0xa152042b00000000, 0xc652ec6600000000, 0x24af64eb00000000, + 0x08523cfd00000000, 0xeaafb47000000000, 0x8daf5c3d00000000, + 0x6f52d4b000000000, 0xd555ed1100000000, 0x37a8659c00000000, + 0x50a88dd100000000, 0xb255055c00000000, 0x9ea85d4a00000000, + 0x7c55d5c700000000, 0x1b553d8a00000000, 0xf9a8b50700000000, + 0x2e5c3e1300000000, 0xcca1b69e00000000, 0xaba15ed300000000, + 0x495cd65e00000000, 0x65a18e4800000000, 0x875c06c500000000, + 0xe05cee8800000000, 0x02a1660500000000, 0xb8a65fa400000000, + 0x5a5bd72900000000, 0x3d5b3f6400000000, 0xdfa6b7e900000000, + 0xf35befff00000000, 0x11a6677200000000, 0x76a68f3f00000000, + 0x945b07b200000000}, + {0x0000000000000000, 0xa90b894e00000000, 0x5217129d00000000, + 0xfb1c9bd300000000, 0xe52855e100000000, 0x4c23dcaf00000000, + 0xb73f477c00000000, 0x1e34ce3200000000, 0x8b57db1900000000, + 0x225c525700000000, 0xd940c98400000000, 0x704b40ca00000000, + 0x6e7f8ef800000000, 0xc77407b600000000, 0x3c689c6500000000, + 0x9563152b00000000, 0x16afb63300000000, 0xbfa43f7d00000000, + 0x44b8a4ae00000000, 0xedb32de000000000, 0xf387e3d200000000, + 0x5a8c6a9c00000000, 0xa190f14f00000000, 0x089b780100000000, + 0x9df86d2a00000000, 0x34f3e46400000000, 0xcfef7fb700000000, + 0x66e4f6f900000000, 0x78d038cb00000000, 0xd1dbb18500000000, + 0x2ac72a5600000000, 0x83cca31800000000, 0x2c5e6d6700000000, + 0x8555e42900000000, 0x7e497ffa00000000, 0xd742f6b400000000, + 0xc976388600000000, 0x607db1c800000000, 0x9b612a1b00000000, + 0x326aa35500000000, 0xa709b67e00000000, 0x0e023f3000000000, + 0xf51ea4e300000000, 0x5c152dad00000000, 0x4221e39f00000000, + 0xeb2a6ad100000000, 0x1036f10200000000, 0xb93d784c00000000, + 0x3af1db5400000000, 0x93fa521a00000000, 0x68e6c9c900000000, + 0xc1ed408700000000, 0xdfd98eb500000000, 0x76d207fb00000000, + 0x8dce9c2800000000, 0x24c5156600000000, 0xb1a6004d00000000, + 0x18ad890300000000, 0xe3b112d000000000, 0x4aba9b9e00000000, + 0x548e55ac00000000, 0xfd85dce200000000, 0x0699473100000000, + 0xaf92ce7f00000000, 0x58bcdace00000000, 0xf1b7538000000000, + 0x0aabc85300000000, 0xa3a0411d00000000, 0xbd948f2f00000000, + 0x149f066100000000, 0xef839db200000000, 0x468814fc00000000, + 0xd3eb01d700000000, 0x7ae0889900000000, 0x81fc134a00000000, + 0x28f79a0400000000, 0x36c3543600000000, 0x9fc8dd7800000000, + 0x64d446ab00000000, 0xcddfcfe500000000, 0x4e136cfd00000000, + 0xe718e5b300000000, 0x1c047e6000000000, 0xb50ff72e00000000, + 0xab3b391c00000000, 0x0230b05200000000, 0xf92c2b8100000000, + 0x5027a2cf00000000, 0xc544b7e400000000, 0x6c4f3eaa00000000, + 0x9753a57900000000, 0x3e582c3700000000, 0x206ce20500000000, + 0x89676b4b00000000, 0x727bf09800000000, 0xdb7079d600000000, + 0x74e2b7a900000000, 0xdde93ee700000000, 0x26f5a53400000000, + 0x8ffe2c7a00000000, 0x91cae24800000000, 0x38c16b0600000000, + 0xc3ddf0d500000000, 0x6ad6799b00000000, 0xffb56cb000000000, + 0x56bee5fe00000000, 0xada27e2d00000000, 0x04a9f76300000000, + 0x1a9d395100000000, 0xb396b01f00000000, 0x488a2bcc00000000, + 0xe181a28200000000, 0x624d019a00000000, 0xcb4688d400000000, + 0x305a130700000000, 0x99519a4900000000, 0x8765547b00000000, + 0x2e6edd3500000000, 0xd57246e600000000, 0x7c79cfa800000000, + 0xe91ada8300000000, 0x401153cd00000000, 0xbb0dc81e00000000, + 0x1206415000000000, 0x0c328f6200000000, 0xa539062c00000000, + 0x5e259dff00000000, 0xf72e14b100000000, 0xf17ec44600000000, + 0x58754d0800000000, 0xa369d6db00000000, 0x0a625f9500000000, + 0x145691a700000000, 0xbd5d18e900000000, 0x4641833a00000000, + 0xef4a0a7400000000, 0x7a291f5f00000000, 0xd322961100000000, + 0x283e0dc200000000, 0x8135848c00000000, 0x9f014abe00000000, + 0x360ac3f000000000, 0xcd16582300000000, 0x641dd16d00000000, + 0xe7d1727500000000, 0x4edafb3b00000000, 0xb5c660e800000000, + 0x1ccde9a600000000, 0x02f9279400000000, 0xabf2aeda00000000, + 0x50ee350900000000, 0xf9e5bc4700000000, 0x6c86a96c00000000, + 0xc58d202200000000, 0x3e91bbf100000000, 0x979a32bf00000000, + 0x89aefc8d00000000, 0x20a575c300000000, 0xdbb9ee1000000000, + 0x72b2675e00000000, 0xdd20a92100000000, 0x742b206f00000000, + 0x8f37bbbc00000000, 0x263c32f200000000, 0x3808fcc000000000, + 0x9103758e00000000, 0x6a1fee5d00000000, 0xc314671300000000, + 0x5677723800000000, 0xff7cfb7600000000, 0x046060a500000000, + 0xad6be9eb00000000, 0xb35f27d900000000, 0x1a54ae9700000000, + 0xe148354400000000, 0x4843bc0a00000000, 0xcb8f1f1200000000, + 0x6284965c00000000, 0x99980d8f00000000, 0x309384c100000000, + 0x2ea74af300000000, 0x87acc3bd00000000, 0x7cb0586e00000000, + 0xd5bbd12000000000, 0x40d8c40b00000000, 0xe9d34d4500000000, + 0x12cfd69600000000, 0xbbc45fd800000000, 0xa5f091ea00000000, + 0x0cfb18a400000000, 0xf7e7837700000000, 0x5eec0a3900000000, + 0xa9c21e8800000000, 0x00c997c600000000, 0xfbd50c1500000000, + 0x52de855b00000000, 0x4cea4b6900000000, 0xe5e1c22700000000, + 0x1efd59f400000000, 0xb7f6d0ba00000000, 0x2295c59100000000, + 0x8b9e4cdf00000000, 0x7082d70c00000000, 0xd9895e4200000000, + 0xc7bd907000000000, 0x6eb6193e00000000, 0x95aa82ed00000000, + 0x3ca10ba300000000, 0xbf6da8bb00000000, 0x166621f500000000, + 0xed7aba2600000000, 0x4471336800000000, 0x5a45fd5a00000000, + 0xf34e741400000000, 0x0852efc700000000, 0xa159668900000000, + 0x343a73a200000000, 0x9d31faec00000000, 0x662d613f00000000, + 0xcf26e87100000000, 0xd112264300000000, 0x7819af0d00000000, + 0x830534de00000000, 0x2a0ebd9000000000, 0x859c73ef00000000, + 0x2c97faa100000000, 0xd78b617200000000, 0x7e80e83c00000000, + 0x60b4260e00000000, 0xc9bfaf4000000000, 0x32a3349300000000, + 0x9ba8bddd00000000, 0x0ecba8f600000000, 0xa7c021b800000000, + 0x5cdcba6b00000000, 0xf5d7332500000000, 0xebe3fd1700000000, + 0x42e8745900000000, 0xb9f4ef8a00000000, 0x10ff66c400000000, + 0x9333c5dc00000000, 0x3a384c9200000000, 0xc124d74100000000, + 0x682f5e0f00000000, 0x761b903d00000000, 0xdf10197300000000, + 0x240c82a000000000, 0x8d070bee00000000, 0x18641ec500000000, + 0xb16f978b00000000, 0x4a730c5800000000, 0xe378851600000000, + 0xfd4c4b2400000000, 0x5447c26a00000000, 0xaf5b59b900000000, + 0x0650d0f700000000}, + {0x0000000000000000, 0x479244af00000000, 0xcf22f88500000000, + 0x88b0bc2a00000000, 0xdf4381d000000000, 0x98d1c57f00000000, + 0x1061795500000000, 0x57f33dfa00000000, 0xff81737a00000000, + 0xb81337d500000000, 0x30a38bff00000000, 0x7731cf5000000000, + 0x20c2f2aa00000000, 0x6750b60500000000, 0xefe00a2f00000000, + 0xa8724e8000000000, 0xfe03e7f400000000, 0xb991a35b00000000, + 0x31211f7100000000, 0x76b35bde00000000, 0x2140662400000000, + 0x66d2228b00000000, 0xee629ea100000000, 0xa9f0da0e00000000, + 0x0182948e00000000, 0x4610d02100000000, 0xcea06c0b00000000, + 0x893228a400000000, 0xdec1155e00000000, 0x995351f100000000, + 0x11e3eddb00000000, 0x5671a97400000000, 0xbd01bf3200000000, + 0xfa93fb9d00000000, 0x722347b700000000, 0x35b1031800000000, + 0x62423ee200000000, 0x25d07a4d00000000, 0xad60c66700000000, + 0xeaf282c800000000, 0x4280cc4800000000, 0x051288e700000000, + 0x8da234cd00000000, 0xca30706200000000, 0x9dc34d9800000000, + 0xda51093700000000, 0x52e1b51d00000000, 0x1573f1b200000000, + 0x430258c600000000, 0x04901c6900000000, 0x8c20a04300000000, + 0xcbb2e4ec00000000, 0x9c41d91600000000, 0xdbd39db900000000, + 0x5363219300000000, 0x14f1653c00000000, 0xbc832bbc00000000, + 0xfb116f1300000000, 0x73a1d33900000000, 0x3433979600000000, + 0x63c0aa6c00000000, 0x2452eec300000000, 0xace252e900000000, + 0xeb70164600000000, 0x7a037e6500000000, 0x3d913aca00000000, + 0xb52186e000000000, 0xf2b3c24f00000000, 0xa540ffb500000000, + 0xe2d2bb1a00000000, 0x6a62073000000000, 0x2df0439f00000000, + 0x85820d1f00000000, 0xc21049b000000000, 0x4aa0f59a00000000, + 0x0d32b13500000000, 0x5ac18ccf00000000, 0x1d53c86000000000, + 0x95e3744a00000000, 0xd27130e500000000, 0x8400999100000000, + 0xc392dd3e00000000, 0x4b22611400000000, 0x0cb025bb00000000, + 0x5b43184100000000, 0x1cd15cee00000000, 0x9461e0c400000000, + 0xd3f3a46b00000000, 0x7b81eaeb00000000, 0x3c13ae4400000000, + 0xb4a3126e00000000, 0xf33156c100000000, 0xa4c26b3b00000000, + 0xe3502f9400000000, 0x6be093be00000000, 0x2c72d71100000000, + 0xc702c15700000000, 0x809085f800000000, 0x082039d200000000, + 0x4fb27d7d00000000, 0x1841408700000000, 0x5fd3042800000000, + 0xd763b80200000000, 0x90f1fcad00000000, 0x3883b22d00000000, + 0x7f11f68200000000, 0xf7a14aa800000000, 0xb0330e0700000000, + 0xe7c033fd00000000, 0xa052775200000000, 0x28e2cb7800000000, + 0x6f708fd700000000, 0x390126a300000000, 0x7e93620c00000000, + 0xf623de2600000000, 0xb1b19a8900000000, 0xe642a77300000000, + 0xa1d0e3dc00000000, 0x29605ff600000000, 0x6ef21b5900000000, + 0xc68055d900000000, 0x8112117600000000, 0x09a2ad5c00000000, + 0x4e30e9f300000000, 0x19c3d40900000000, 0x5e5190a600000000, + 0xd6e12c8c00000000, 0x9173682300000000, 0xf406fcca00000000, + 0xb394b86500000000, 0x3b24044f00000000, 0x7cb640e000000000, + 0x2b457d1a00000000, 0x6cd739b500000000, 0xe467859f00000000, + 0xa3f5c13000000000, 0x0b878fb000000000, 0x4c15cb1f00000000, + 0xc4a5773500000000, 0x8337339a00000000, 0xd4c40e6000000000, + 0x93564acf00000000, 0x1be6f6e500000000, 0x5c74b24a00000000, + 0x0a051b3e00000000, 0x4d975f9100000000, 0xc527e3bb00000000, + 0x82b5a71400000000, 0xd5469aee00000000, 0x92d4de4100000000, + 0x1a64626b00000000, 0x5df626c400000000, 0xf584684400000000, + 0xb2162ceb00000000, 0x3aa690c100000000, 0x7d34d46e00000000, + 0x2ac7e99400000000, 0x6d55ad3b00000000, 0xe5e5111100000000, + 0xa27755be00000000, 0x490743f800000000, 0x0e95075700000000, + 0x8625bb7d00000000, 0xc1b7ffd200000000, 0x9644c22800000000, + 0xd1d6868700000000, 0x59663aad00000000, 0x1ef47e0200000000, + 0xb686308200000000, 0xf114742d00000000, 0x79a4c80700000000, + 0x3e368ca800000000, 0x69c5b15200000000, 0x2e57f5fd00000000, + 0xa6e749d700000000, 0xe1750d7800000000, 0xb704a40c00000000, + 0xf096e0a300000000, 0x78265c8900000000, 0x3fb4182600000000, + 0x684725dc00000000, 0x2fd5617300000000, 0xa765dd5900000000, + 0xe0f799f600000000, 0x4885d77600000000, 0x0f1793d900000000, + 0x87a72ff300000000, 0xc0356b5c00000000, 0x97c656a600000000, + 0xd054120900000000, 0x58e4ae2300000000, 0x1f76ea8c00000000, + 0x8e0582af00000000, 0xc997c60000000000, 0x41277a2a00000000, + 0x06b53e8500000000, 0x5146037f00000000, 0x16d447d000000000, + 0x9e64fbfa00000000, 0xd9f6bf5500000000, 0x7184f1d500000000, + 0x3616b57a00000000, 0xbea6095000000000, 0xf9344dff00000000, + 0xaec7700500000000, 0xe95534aa00000000, 0x61e5888000000000, + 0x2677cc2f00000000, 0x7006655b00000000, 0x379421f400000000, + 0xbf249dde00000000, 0xf8b6d97100000000, 0xaf45e48b00000000, + 0xe8d7a02400000000, 0x60671c0e00000000, 0x27f558a100000000, + 0x8f87162100000000, 0xc815528e00000000, 0x40a5eea400000000, + 0x0737aa0b00000000, 0x50c497f100000000, 0x1756d35e00000000, + 0x9fe66f7400000000, 0xd8742bdb00000000, 0x33043d9d00000000, + 0x7496793200000000, 0xfc26c51800000000, 0xbbb481b700000000, + 0xec47bc4d00000000, 0xabd5f8e200000000, 0x236544c800000000, + 0x64f7006700000000, 0xcc854ee700000000, 0x8b170a4800000000, + 0x03a7b66200000000, 0x4435f2cd00000000, 0x13c6cf3700000000, + 0x54548b9800000000, 0xdce437b200000000, 0x9b76731d00000000, + 0xcd07da6900000000, 0x8a959ec600000000, 0x022522ec00000000, + 0x45b7664300000000, 0x12445bb900000000, 0x55d61f1600000000, + 0xdd66a33c00000000, 0x9af4e79300000000, 0x3286a91300000000, + 0x7514edbc00000000, 0xfda4519600000000, 0xba36153900000000, + 0xedc528c300000000, 0xaa576c6c00000000, 0x22e7d04600000000, + 0x657594e900000000}}; + +#else /* W == 4 */ + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0x65673b46, 0xcace768c, 0xafa94dca, 0x4eedeb59, + 0x2b8ad01f, 0x84239dd5, 0xe144a693, 0x9ddbd6b2, 0xf8bcedf4, + 0x5715a03e, 0x32729b78, 0xd3363deb, 0xb65106ad, 0x19f84b67, + 0x7c9f7021, 0xe0c6ab25, 0x85a19063, 0x2a08dda9, 0x4f6fe6ef, + 0xae2b407c, 0xcb4c7b3a, 0x64e536f0, 0x01820db6, 0x7d1d7d97, + 0x187a46d1, 0xb7d30b1b, 0xd2b4305d, 0x33f096ce, 0x5697ad88, + 0xf93ee042, 0x9c59db04, 0x1afc500b, 0x7f9b6b4d, 0xd0322687, + 0xb5551dc1, 0x5411bb52, 0x31768014, 0x9edfcdde, 0xfbb8f698, + 0x872786b9, 0xe240bdff, 0x4de9f035, 0x288ecb73, 0xc9ca6de0, + 0xacad56a6, 0x03041b6c, 0x6663202a, 0xfa3afb2e, 0x9f5dc068, + 0x30f48da2, 0x5593b6e4, 0xb4d71077, 0xd1b02b31, 0x7e1966fb, + 0x1b7e5dbd, 0x67e12d9c, 0x028616da, 0xad2f5b10, 0xc8486056, + 0x290cc6c5, 0x4c6bfd83, 0xe3c2b049, 0x86a58b0f, 0x35f8a016, + 0x509f9b50, 0xff36d69a, 0x9a51eddc, 0x7b154b4f, 0x1e727009, + 0xb1db3dc3, 0xd4bc0685, 0xa82376a4, 0xcd444de2, 0x62ed0028, + 0x078a3b6e, 0xe6ce9dfd, 0x83a9a6bb, 0x2c00eb71, 0x4967d037, + 0xd53e0b33, 0xb0593075, 0x1ff07dbf, 0x7a9746f9, 0x9bd3e06a, + 0xfeb4db2c, 0x511d96e6, 0x347aada0, 0x48e5dd81, 0x2d82e6c7, + 0x822bab0d, 0xe74c904b, 0x060836d8, 0x636f0d9e, 0xccc64054, + 0xa9a17b12, 0x2f04f01d, 0x4a63cb5b, 0xe5ca8691, 0x80adbdd7, + 0x61e91b44, 0x048e2002, 0xab276dc8, 0xce40568e, 0xb2df26af, + 0xd7b81de9, 0x78115023, 0x1d766b65, 0xfc32cdf6, 0x9955f6b0, + 0x36fcbb7a, 0x539b803c, 0xcfc25b38, 0xaaa5607e, 0x050c2db4, + 0x606b16f2, 0x812fb061, 0xe4488b27, 0x4be1c6ed, 0x2e86fdab, + 0x52198d8a, 0x377eb6cc, 0x98d7fb06, 0xfdb0c040, 0x1cf466d3, + 0x79935d95, 0xd63a105f, 0xb35d2b19, 0x6bf1402c, 0x0e967b6a, + 0xa13f36a0, 0xc4580de6, 0x251cab75, 0x407b9033, 0xefd2ddf9, + 0x8ab5e6bf, 0xf62a969e, 0x934dadd8, 0x3ce4e012, 0x5983db54, + 0xb8c77dc7, 0xdda04681, 0x72090b4b, 0x176e300d, 0x8b37eb09, + 0xee50d04f, 0x41f99d85, 0x249ea6c3, 0xc5da0050, 0xa0bd3b16, + 0x0f1476dc, 0x6a734d9a, 0x16ec3dbb, 0x738b06fd, 0xdc224b37, + 0xb9457071, 0x5801d6e2, 0x3d66eda4, 0x92cfa06e, 0xf7a89b28, + 0x710d1027, 0x146a2b61, 0xbbc366ab, 0xdea45ded, 0x3fe0fb7e, + 0x5a87c038, 0xf52e8df2, 0x9049b6b4, 0xecd6c695, 0x89b1fdd3, + 0x2618b019, 0x437f8b5f, 0xa23b2dcc, 0xc75c168a, 0x68f55b40, + 0x0d926006, 0x91cbbb02, 0xf4ac8044, 0x5b05cd8e, 0x3e62f6c8, + 0xdf26505b, 0xba416b1d, 0x15e826d7, 0x708f1d91, 0x0c106db0, + 0x697756f6, 0xc6de1b3c, 0xa3b9207a, 0x42fd86e9, 0x279abdaf, + 0x8833f065, 0xed54cb23, 0x5e09e03a, 0x3b6edb7c, 0x94c796b6, + 0xf1a0adf0, 0x10e40b63, 0x75833025, 0xda2a7def, 0xbf4d46a9, + 0xc3d23688, 0xa6b50dce, 0x091c4004, 0x6c7b7b42, 0x8d3fddd1, + 0xe858e697, 0x47f1ab5d, 0x2296901b, 0xbecf4b1f, 0xdba87059, + 0x74013d93, 0x116606d5, 0xf022a046, 0x95459b00, 0x3aecd6ca, + 0x5f8bed8c, 0x23149dad, 0x4673a6eb, 0xe9daeb21, 0x8cbdd067, + 0x6df976f4, 0x089e4db2, 0xa7370078, 0xc2503b3e, 0x44f5b031, + 0x21928b77, 0x8e3bc6bd, 0xeb5cfdfb, 0x0a185b68, 0x6f7f602e, + 0xc0d62de4, 0xa5b116a2, 0xd92e6683, 0xbc495dc5, 0x13e0100f, + 0x76872b49, 0x97c38dda, 0xf2a4b69c, 0x5d0dfb56, 0x386ac010, + 0xa4331b14, 0xc1542052, 0x6efd6d98, 0x0b9a56de, 0xeadef04d, + 0x8fb9cb0b, 0x201086c1, 0x4577bd87, 0x39e8cda6, 0x5c8ff6e0, + 0xf326bb2a, 0x9641806c, 0x770526ff, 0x12621db9, 0xbdcb5073, + 0xd8ac6b35}, + {0x00000000, 0xd7e28058, 0x74b406f1, 0xa35686a9, 0xe9680de2, + 0x3e8a8dba, 0x9ddc0b13, 0x4a3e8b4b, 0x09a11d85, 0xde439ddd, + 0x7d151b74, 0xaaf79b2c, 0xe0c91067, 0x372b903f, 0x947d1696, + 0x439f96ce, 0x13423b0a, 0xc4a0bb52, 0x67f63dfb, 0xb014bda3, + 0xfa2a36e8, 0x2dc8b6b0, 0x8e9e3019, 0x597cb041, 0x1ae3268f, + 0xcd01a6d7, 0x6e57207e, 0xb9b5a026, 0xf38b2b6d, 0x2469ab35, + 0x873f2d9c, 0x50ddadc4, 0x26847614, 0xf166f64c, 0x523070e5, + 0x85d2f0bd, 0xcfec7bf6, 0x180efbae, 0xbb587d07, 0x6cbafd5f, + 0x2f256b91, 0xf8c7ebc9, 0x5b916d60, 0x8c73ed38, 0xc64d6673, + 0x11afe62b, 0xb2f96082, 0x651be0da, 0x35c64d1e, 0xe224cd46, + 0x41724bef, 0x9690cbb7, 0xdcae40fc, 0x0b4cc0a4, 0xa81a460d, + 0x7ff8c655, 0x3c67509b, 0xeb85d0c3, 0x48d3566a, 0x9f31d632, + 0xd50f5d79, 0x02eddd21, 0xa1bb5b88, 0x7659dbd0, 0x4d08ec28, + 0x9aea6c70, 0x39bcead9, 0xee5e6a81, 0xa460e1ca, 0x73826192, + 0xd0d4e73b, 0x07366763, 0x44a9f1ad, 0x934b71f5, 0x301df75c, + 0xe7ff7704, 0xadc1fc4f, 0x7a237c17, 0xd975fabe, 0x0e977ae6, + 0x5e4ad722, 0x89a8577a, 0x2afed1d3, 0xfd1c518b, 0xb722dac0, + 0x60c05a98, 0xc396dc31, 0x14745c69, 0x57ebcaa7, 0x80094aff, + 0x235fcc56, 0xf4bd4c0e, 0xbe83c745, 0x6961471d, 0xca37c1b4, + 0x1dd541ec, 0x6b8c9a3c, 0xbc6e1a64, 0x1f389ccd, 0xc8da1c95, + 0x82e497de, 0x55061786, 0xf650912f, 0x21b21177, 0x622d87b9, + 0xb5cf07e1, 0x16998148, 0xc17b0110, 0x8b458a5b, 0x5ca70a03, + 0xfff18caa, 0x28130cf2, 0x78cea136, 0xaf2c216e, 0x0c7aa7c7, + 0xdb98279f, 0x91a6acd4, 0x46442c8c, 0xe512aa25, 0x32f02a7d, + 0x716fbcb3, 0xa68d3ceb, 0x05dbba42, 0xd2393a1a, 0x9807b151, + 0x4fe53109, 0xecb3b7a0, 0x3b5137f8, 0x9a11d850, 0x4df35808, + 0xeea5dea1, 0x39475ef9, 0x7379d5b2, 0xa49b55ea, 0x07cdd343, + 0xd02f531b, 0x93b0c5d5, 0x4452458d, 0xe704c324, 0x30e6437c, + 0x7ad8c837, 0xad3a486f, 0x0e6ccec6, 0xd98e4e9e, 0x8953e35a, + 0x5eb16302, 0xfde7e5ab, 0x2a0565f3, 0x603beeb8, 0xb7d96ee0, + 0x148fe849, 0xc36d6811, 0x80f2fedf, 0x57107e87, 0xf446f82e, + 0x23a47876, 0x699af33d, 0xbe787365, 0x1d2ef5cc, 0xcacc7594, + 0xbc95ae44, 0x6b772e1c, 0xc821a8b5, 0x1fc328ed, 0x55fda3a6, + 0x821f23fe, 0x2149a557, 0xf6ab250f, 0xb534b3c1, 0x62d63399, + 0xc180b530, 0x16623568, 0x5c5cbe23, 0x8bbe3e7b, 0x28e8b8d2, + 0xff0a388a, 0xafd7954e, 0x78351516, 0xdb6393bf, 0x0c8113e7, + 0x46bf98ac, 0x915d18f4, 0x320b9e5d, 0xe5e91e05, 0xa67688cb, + 0x71940893, 0xd2c28e3a, 0x05200e62, 0x4f1e8529, 0x98fc0571, + 0x3baa83d8, 0xec480380, 0xd7193478, 0x00fbb420, 0xa3ad3289, + 0x744fb2d1, 0x3e71399a, 0xe993b9c2, 0x4ac53f6b, 0x9d27bf33, + 0xdeb829fd, 0x095aa9a5, 0xaa0c2f0c, 0x7deeaf54, 0x37d0241f, + 0xe032a447, 0x436422ee, 0x9486a2b6, 0xc45b0f72, 0x13b98f2a, + 0xb0ef0983, 0x670d89db, 0x2d330290, 0xfad182c8, 0x59870461, + 0x8e658439, 0xcdfa12f7, 0x1a1892af, 0xb94e1406, 0x6eac945e, + 0x24921f15, 0xf3709f4d, 0x502619e4, 0x87c499bc, 0xf19d426c, + 0x267fc234, 0x8529449d, 0x52cbc4c5, 0x18f54f8e, 0xcf17cfd6, + 0x6c41497f, 0xbba3c927, 0xf83c5fe9, 0x2fdedfb1, 0x8c885918, + 0x5b6ad940, 0x1154520b, 0xc6b6d253, 0x65e054fa, 0xb202d4a2, + 0xe2df7966, 0x353df93e, 0x966b7f97, 0x4189ffcf, 0x0bb77484, + 0xdc55f4dc, 0x7f037275, 0xa8e1f22d, 0xeb7e64e3, 0x3c9ce4bb, + 0x9fca6212, 0x4828e24a, 0x02166901, 0xd5f4e959, 0x76a26ff0, + 0xa140efa8}, + {0x00000000, 0xef52b6e1, 0x05d46b83, 0xea86dd62, 0x0ba8d706, + 0xe4fa61e7, 0x0e7cbc85, 0xe12e0a64, 0x1751ae0c, 0xf80318ed, + 0x1285c58f, 0xfdd7736e, 0x1cf9790a, 0xf3abcfeb, 0x192d1289, + 0xf67fa468, 0x2ea35c18, 0xc1f1eaf9, 0x2b77379b, 0xc425817a, + 0x250b8b1e, 0xca593dff, 0x20dfe09d, 0xcf8d567c, 0x39f2f214, + 0xd6a044f5, 0x3c269997, 0xd3742f76, 0x325a2512, 0xdd0893f3, + 0x378e4e91, 0xd8dcf870, 0x5d46b830, 0xb2140ed1, 0x5892d3b3, + 0xb7c06552, 0x56ee6f36, 0xb9bcd9d7, 0x533a04b5, 0xbc68b254, + 0x4a17163c, 0xa545a0dd, 0x4fc37dbf, 0xa091cb5e, 0x41bfc13a, + 0xaeed77db, 0x446baab9, 0xab391c58, 0x73e5e428, 0x9cb752c9, + 0x76318fab, 0x9963394a, 0x784d332e, 0x971f85cf, 0x7d9958ad, + 0x92cbee4c, 0x64b44a24, 0x8be6fcc5, 0x616021a7, 0x8e329746, + 0x6f1c9d22, 0x804e2bc3, 0x6ac8f6a1, 0x859a4040, 0xba8d7060, + 0x55dfc681, 0xbf591be3, 0x500bad02, 0xb125a766, 0x5e771187, + 0xb4f1cce5, 0x5ba37a04, 0xaddcde6c, 0x428e688d, 0xa808b5ef, + 0x475a030e, 0xa674096a, 0x4926bf8b, 0xa3a062e9, 0x4cf2d408, + 0x942e2c78, 0x7b7c9a99, 0x91fa47fb, 0x7ea8f11a, 0x9f86fb7e, + 0x70d44d9f, 0x9a5290fd, 0x7500261c, 0x837f8274, 0x6c2d3495, + 0x86abe9f7, 0x69f95f16, 0x88d75572, 0x6785e393, 0x8d033ef1, + 0x62518810, 0xe7cbc850, 0x08997eb1, 0xe21fa3d3, 0x0d4d1532, + 0xec631f56, 0x0331a9b7, 0xe9b774d5, 0x06e5c234, 0xf09a665c, + 0x1fc8d0bd, 0xf54e0ddf, 0x1a1cbb3e, 0xfb32b15a, 0x146007bb, + 0xfee6dad9, 0x11b46c38, 0xc9689448, 0x263a22a9, 0xccbcffcb, + 0x23ee492a, 0xc2c0434e, 0x2d92f5af, 0xc71428cd, 0x28469e2c, + 0xde393a44, 0x316b8ca5, 0xdbed51c7, 0x34bfe726, 0xd591ed42, + 0x3ac35ba3, 0xd04586c1, 0x3f173020, 0xae6be681, 0x41395060, + 0xabbf8d02, 0x44ed3be3, 0xa5c33187, 0x4a918766, 0xa0175a04, + 0x4f45ece5, 0xb93a488d, 0x5668fe6c, 0xbcee230e, 0x53bc95ef, + 0xb2929f8b, 0x5dc0296a, 0xb746f408, 0x581442e9, 0x80c8ba99, + 0x6f9a0c78, 0x851cd11a, 0x6a4e67fb, 0x8b606d9f, 0x6432db7e, + 0x8eb4061c, 0x61e6b0fd, 0x97991495, 0x78cba274, 0x924d7f16, + 0x7d1fc9f7, 0x9c31c393, 0x73637572, 0x99e5a810, 0x76b71ef1, + 0xf32d5eb1, 0x1c7fe850, 0xf6f93532, 0x19ab83d3, 0xf88589b7, + 0x17d73f56, 0xfd51e234, 0x120354d5, 0xe47cf0bd, 0x0b2e465c, + 0xe1a89b3e, 0x0efa2ddf, 0xefd427bb, 0x0086915a, 0xea004c38, + 0x0552fad9, 0xdd8e02a9, 0x32dcb448, 0xd85a692a, 0x3708dfcb, + 0xd626d5af, 0x3974634e, 0xd3f2be2c, 0x3ca008cd, 0xcadfaca5, + 0x258d1a44, 0xcf0bc726, 0x205971c7, 0xc1777ba3, 0x2e25cd42, + 0xc4a31020, 0x2bf1a6c1, 0x14e696e1, 0xfbb42000, 0x1132fd62, + 0xfe604b83, 0x1f4e41e7, 0xf01cf706, 0x1a9a2a64, 0xf5c89c85, + 0x03b738ed, 0xece58e0c, 0x0663536e, 0xe931e58f, 0x081fefeb, + 0xe74d590a, 0x0dcb8468, 0xe2993289, 0x3a45caf9, 0xd5177c18, + 0x3f91a17a, 0xd0c3179b, 0x31ed1dff, 0xdebfab1e, 0x3439767c, + 0xdb6bc09d, 0x2d1464f5, 0xc246d214, 0x28c00f76, 0xc792b997, + 0x26bcb3f3, 0xc9ee0512, 0x2368d870, 0xcc3a6e91, 0x49a02ed1, + 0xa6f29830, 0x4c744552, 0xa326f3b3, 0x4208f9d7, 0xad5a4f36, + 0x47dc9254, 0xa88e24b5, 0x5ef180dd, 0xb1a3363c, 0x5b25eb5e, + 0xb4775dbf, 0x555957db, 0xba0be13a, 0x508d3c58, 0xbfdf8ab9, + 0x670372c9, 0x8851c428, 0x62d7194a, 0x8d85afab, 0x6caba5cf, + 0x83f9132e, 0x697fce4c, 0x862d78ad, 0x7052dcc5, 0x9f006a24, + 0x7586b746, 0x9ad401a7, 0x7bfa0bc3, 0x94a8bd22, 0x7e2e6040, + 0x917cd6a1}, + {0x00000000, 0x87a6cb43, 0xd43c90c7, 0x539a5b84, 0x730827cf, + 0xf4aeec8c, 0xa734b708, 0x20927c4b, 0xe6104f9e, 0x61b684dd, + 0x322cdf59, 0xb58a141a, 0x95186851, 0x12bea312, 0x4124f896, + 0xc68233d5, 0x1751997d, 0x90f7523e, 0xc36d09ba, 0x44cbc2f9, + 0x6459beb2, 0xe3ff75f1, 0xb0652e75, 0x37c3e536, 0xf141d6e3, + 0x76e71da0, 0x257d4624, 0xa2db8d67, 0x8249f12c, 0x05ef3a6f, + 0x567561eb, 0xd1d3aaa8, 0x2ea332fa, 0xa905f9b9, 0xfa9fa23d, + 0x7d39697e, 0x5dab1535, 0xda0dde76, 0x899785f2, 0x0e314eb1, + 0xc8b37d64, 0x4f15b627, 0x1c8feda3, 0x9b2926e0, 0xbbbb5aab, + 0x3c1d91e8, 0x6f87ca6c, 0xe821012f, 0x39f2ab87, 0xbe5460c4, + 0xedce3b40, 0x6a68f003, 0x4afa8c48, 0xcd5c470b, 0x9ec61c8f, + 0x1960d7cc, 0xdfe2e419, 0x58442f5a, 0x0bde74de, 0x8c78bf9d, + 0xaceac3d6, 0x2b4c0895, 0x78d65311, 0xff709852, 0x5d4665f4, + 0xdae0aeb7, 0x897af533, 0x0edc3e70, 0x2e4e423b, 0xa9e88978, + 0xfa72d2fc, 0x7dd419bf, 0xbb562a6a, 0x3cf0e129, 0x6f6abaad, + 0xe8cc71ee, 0xc85e0da5, 0x4ff8c6e6, 0x1c629d62, 0x9bc45621, + 0x4a17fc89, 0xcdb137ca, 0x9e2b6c4e, 0x198da70d, 0x391fdb46, + 0xbeb91005, 0xed234b81, 0x6a8580c2, 0xac07b317, 0x2ba17854, + 0x783b23d0, 0xff9de893, 0xdf0f94d8, 0x58a95f9b, 0x0b33041f, + 0x8c95cf5c, 0x73e5570e, 0xf4439c4d, 0xa7d9c7c9, 0x207f0c8a, + 0x00ed70c1, 0x874bbb82, 0xd4d1e006, 0x53772b45, 0x95f51890, + 0x1253d3d3, 0x41c98857, 0xc66f4314, 0xe6fd3f5f, 0x615bf41c, + 0x32c1af98, 0xb56764db, 0x64b4ce73, 0xe3120530, 0xb0885eb4, + 0x372e95f7, 0x17bce9bc, 0x901a22ff, 0xc380797b, 0x4426b238, + 0x82a481ed, 0x05024aae, 0x5698112a, 0xd13eda69, 0xf1aca622, + 0x760a6d61, 0x259036e5, 0xa236fda6, 0xba8ccbe8, 0x3d2a00ab, + 0x6eb05b2f, 0xe916906c, 0xc984ec27, 0x4e222764, 0x1db87ce0, + 0x9a1eb7a3, 0x5c9c8476, 0xdb3a4f35, 0x88a014b1, 0x0f06dff2, + 0x2f94a3b9, 0xa83268fa, 0xfba8337e, 0x7c0ef83d, 0xaddd5295, + 0x2a7b99d6, 0x79e1c252, 0xfe470911, 0xded5755a, 0x5973be19, + 0x0ae9e59d, 0x8d4f2ede, 0x4bcd1d0b, 0xcc6bd648, 0x9ff18dcc, + 0x1857468f, 0x38c53ac4, 0xbf63f187, 0xecf9aa03, 0x6b5f6140, + 0x942ff912, 0x13893251, 0x401369d5, 0xc7b5a296, 0xe727dedd, + 0x6081159e, 0x331b4e1a, 0xb4bd8559, 0x723fb68c, 0xf5997dcf, + 0xa603264b, 0x21a5ed08, 0x01379143, 0x86915a00, 0xd50b0184, + 0x52adcac7, 0x837e606f, 0x04d8ab2c, 0x5742f0a8, 0xd0e43beb, + 0xf07647a0, 0x77d08ce3, 0x244ad767, 0xa3ec1c24, 0x656e2ff1, + 0xe2c8e4b2, 0xb152bf36, 0x36f47475, 0x1666083e, 0x91c0c37d, + 0xc25a98f9, 0x45fc53ba, 0xe7caae1c, 0x606c655f, 0x33f63edb, + 0xb450f598, 0x94c289d3, 0x13644290, 0x40fe1914, 0xc758d257, + 0x01dae182, 0x867c2ac1, 0xd5e67145, 0x5240ba06, 0x72d2c64d, + 0xf5740d0e, 0xa6ee568a, 0x21489dc9, 0xf09b3761, 0x773dfc22, + 0x24a7a7a6, 0xa3016ce5, 0x839310ae, 0x0435dbed, 0x57af8069, + 0xd0094b2a, 0x168b78ff, 0x912db3bc, 0xc2b7e838, 0x4511237b, + 0x65835f30, 0xe2259473, 0xb1bfcff7, 0x361904b4, 0xc9699ce6, + 0x4ecf57a5, 0x1d550c21, 0x9af3c762, 0xba61bb29, 0x3dc7706a, + 0x6e5d2bee, 0xe9fbe0ad, 0x2f79d378, 0xa8df183b, 0xfb4543bf, + 0x7ce388fc, 0x5c71f4b7, 0xdbd73ff4, 0x884d6470, 0x0febaf33, + 0xde38059b, 0x599eced8, 0x0a04955c, 0x8da25e1f, 0xad302254, + 0x2a96e917, 0x790cb293, 0xfeaa79d0, 0x38284a05, 0xbf8e8146, + 0xec14dac2, 0x6bb21181, 0x4b206dca, 0xcc86a689, 0x9f1cfd0d, + 0x18ba364e}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x00000000, 0x43cba687, 0xc7903cd4, 0x845b9a53, 0xcf270873, + 0x8cecaef4, 0x08b734a7, 0x4b7c9220, 0x9e4f10e6, 0xdd84b661, + 0x59df2c32, 0x1a148ab5, 0x51681895, 0x12a3be12, 0x96f82441, + 0xd53382c6, 0x7d995117, 0x3e52f790, 0xba096dc3, 0xf9c2cb44, + 0xb2be5964, 0xf175ffe3, 0x752e65b0, 0x36e5c337, 0xe3d641f1, + 0xa01de776, 0x24467d25, 0x678ddba2, 0x2cf14982, 0x6f3aef05, + 0xeb617556, 0xa8aad3d1, 0xfa32a32e, 0xb9f905a9, 0x3da29ffa, + 0x7e69397d, 0x3515ab5d, 0x76de0dda, 0xf2859789, 0xb14e310e, + 0x647db3c8, 0x27b6154f, 0xa3ed8f1c, 0xe026299b, 0xab5abbbb, + 0xe8911d3c, 0x6cca876f, 0x2f0121e8, 0x87abf239, 0xc46054be, + 0x403bceed, 0x03f0686a, 0x488cfa4a, 0x0b475ccd, 0x8f1cc69e, + 0xccd76019, 0x19e4e2df, 0x5a2f4458, 0xde74de0b, 0x9dbf788c, + 0xd6c3eaac, 0x95084c2b, 0x1153d678, 0x529870ff, 0xf465465d, + 0xb7aee0da, 0x33f57a89, 0x703edc0e, 0x3b424e2e, 0x7889e8a9, + 0xfcd272fa, 0xbf19d47d, 0x6a2a56bb, 0x29e1f03c, 0xadba6a6f, + 0xee71cce8, 0xa50d5ec8, 0xe6c6f84f, 0x629d621c, 0x2156c49b, + 0x89fc174a, 0xca37b1cd, 0x4e6c2b9e, 0x0da78d19, 0x46db1f39, + 0x0510b9be, 0x814b23ed, 0xc280856a, 0x17b307ac, 0x5478a12b, + 0xd0233b78, 0x93e89dff, 0xd8940fdf, 0x9b5fa958, 0x1f04330b, + 0x5ccf958c, 0x0e57e573, 0x4d9c43f4, 0xc9c7d9a7, 0x8a0c7f20, + 0xc170ed00, 0x82bb4b87, 0x06e0d1d4, 0x452b7753, 0x9018f595, + 0xd3d35312, 0x5788c941, 0x14436fc6, 0x5f3ffde6, 0x1cf45b61, + 0x98afc132, 0xdb6467b5, 0x73ceb464, 0x300512e3, 0xb45e88b0, + 0xf7952e37, 0xbce9bc17, 0xff221a90, 0x7b7980c3, 0x38b22644, + 0xed81a482, 0xae4a0205, 0x2a119856, 0x69da3ed1, 0x22a6acf1, + 0x616d0a76, 0xe5369025, 0xa6fd36a2, 0xe8cb8cba, 0xab002a3d, + 0x2f5bb06e, 0x6c9016e9, 0x27ec84c9, 0x6427224e, 0xe07cb81d, + 0xa3b71e9a, 0x76849c5c, 0x354f3adb, 0xb114a088, 0xf2df060f, + 0xb9a3942f, 0xfa6832a8, 0x7e33a8fb, 0x3df80e7c, 0x9552ddad, + 0xd6997b2a, 0x52c2e179, 0x110947fe, 0x5a75d5de, 0x19be7359, + 0x9de5e90a, 0xde2e4f8d, 0x0b1dcd4b, 0x48d66bcc, 0xcc8df19f, + 0x8f465718, 0xc43ac538, 0x87f163bf, 0x03aaf9ec, 0x40615f6b, + 0x12f92f94, 0x51328913, 0xd5691340, 0x96a2b5c7, 0xddde27e7, + 0x9e158160, 0x1a4e1b33, 0x5985bdb4, 0x8cb63f72, 0xcf7d99f5, + 0x4b2603a6, 0x08eda521, 0x43913701, 0x005a9186, 0x84010bd5, + 0xc7caad52, 0x6f607e83, 0x2cabd804, 0xa8f04257, 0xeb3be4d0, + 0xa04776f0, 0xe38cd077, 0x67d74a24, 0x241ceca3, 0xf12f6e65, + 0xb2e4c8e2, 0x36bf52b1, 0x7574f436, 0x3e086616, 0x7dc3c091, + 0xf9985ac2, 0xba53fc45, 0x1caecae7, 0x5f656c60, 0xdb3ef633, + 0x98f550b4, 0xd389c294, 0x90426413, 0x1419fe40, 0x57d258c7, + 0x82e1da01, 0xc12a7c86, 0x4571e6d5, 0x06ba4052, 0x4dc6d272, + 0x0e0d74f5, 0x8a56eea6, 0xc99d4821, 0x61379bf0, 0x22fc3d77, + 0xa6a7a724, 0xe56c01a3, 0xae109383, 0xeddb3504, 0x6980af57, + 0x2a4b09d0, 0xff788b16, 0xbcb32d91, 0x38e8b7c2, 0x7b231145, + 0x305f8365, 0x739425e2, 0xf7cfbfb1, 0xb4041936, 0xe69c69c9, + 0xa557cf4e, 0x210c551d, 0x62c7f39a, 0x29bb61ba, 0x6a70c73d, + 0xee2b5d6e, 0xade0fbe9, 0x78d3792f, 0x3b18dfa8, 0xbf4345fb, + 0xfc88e37c, 0xb7f4715c, 0xf43fd7db, 0x70644d88, 0x33afeb0f, + 0x9b0538de, 0xd8ce9e59, 0x5c95040a, 0x1f5ea28d, 0x542230ad, + 0x17e9962a, 0x93b20c79, 0xd079aafe, 0x054a2838, 0x46818ebf, + 0xc2da14ec, 0x8111b26b, 0xca6d204b, 0x89a686cc, 0x0dfd1c9f, + 0x4e36ba18}, + {0x00000000, 0xe1b652ef, 0x836bd405, 0x62dd86ea, 0x06d7a80b, + 0xe761fae4, 0x85bc7c0e, 0x640a2ee1, 0x0cae5117, 0xed1803f8, + 0x8fc58512, 0x6e73d7fd, 0x0a79f91c, 0xebcfabf3, 0x89122d19, + 0x68a47ff6, 0x185ca32e, 0xf9eaf1c1, 0x9b37772b, 0x7a8125c4, + 0x1e8b0b25, 0xff3d59ca, 0x9de0df20, 0x7c568dcf, 0x14f2f239, + 0xf544a0d6, 0x9799263c, 0x762f74d3, 0x12255a32, 0xf39308dd, + 0x914e8e37, 0x70f8dcd8, 0x30b8465d, 0xd10e14b2, 0xb3d39258, + 0x5265c0b7, 0x366fee56, 0xd7d9bcb9, 0xb5043a53, 0x54b268bc, + 0x3c16174a, 0xdda045a5, 0xbf7dc34f, 0x5ecb91a0, 0x3ac1bf41, + 0xdb77edae, 0xb9aa6b44, 0x581c39ab, 0x28e4e573, 0xc952b79c, + 0xab8f3176, 0x4a396399, 0x2e334d78, 0xcf851f97, 0xad58997d, + 0x4ceecb92, 0x244ab464, 0xc5fce68b, 0xa7216061, 0x4697328e, + 0x229d1c6f, 0xc32b4e80, 0xa1f6c86a, 0x40409a85, 0x60708dba, + 0x81c6df55, 0xe31b59bf, 0x02ad0b50, 0x66a725b1, 0x8711775e, + 0xe5ccf1b4, 0x047aa35b, 0x6cdedcad, 0x8d688e42, 0xefb508a8, + 0x0e035a47, 0x6a0974a6, 0x8bbf2649, 0xe962a0a3, 0x08d4f24c, + 0x782c2e94, 0x999a7c7b, 0xfb47fa91, 0x1af1a87e, 0x7efb869f, + 0x9f4dd470, 0xfd90529a, 0x1c260075, 0x74827f83, 0x95342d6c, + 0xf7e9ab86, 0x165ff969, 0x7255d788, 0x93e38567, 0xf13e038d, + 0x10885162, 0x50c8cbe7, 0xb17e9908, 0xd3a31fe2, 0x32154d0d, + 0x561f63ec, 0xb7a93103, 0xd574b7e9, 0x34c2e506, 0x5c669af0, + 0xbdd0c81f, 0xdf0d4ef5, 0x3ebb1c1a, 0x5ab132fb, 0xbb076014, + 0xd9dae6fe, 0x386cb411, 0x489468c9, 0xa9223a26, 0xcbffbccc, + 0x2a49ee23, 0x4e43c0c2, 0xaff5922d, 0xcd2814c7, 0x2c9e4628, + 0x443a39de, 0xa58c6b31, 0xc751eddb, 0x26e7bf34, 0x42ed91d5, + 0xa35bc33a, 0xc18645d0, 0x2030173f, 0x81e66bae, 0x60503941, + 0x028dbfab, 0xe33bed44, 0x8731c3a5, 0x6687914a, 0x045a17a0, + 0xe5ec454f, 0x8d483ab9, 0x6cfe6856, 0x0e23eebc, 0xef95bc53, + 0x8b9f92b2, 0x6a29c05d, 0x08f446b7, 0xe9421458, 0x99bac880, + 0x780c9a6f, 0x1ad11c85, 0xfb674e6a, 0x9f6d608b, 0x7edb3264, + 0x1c06b48e, 0xfdb0e661, 0x95149997, 0x74a2cb78, 0x167f4d92, + 0xf7c91f7d, 0x93c3319c, 0x72756373, 0x10a8e599, 0xf11eb776, + 0xb15e2df3, 0x50e87f1c, 0x3235f9f6, 0xd383ab19, 0xb78985f8, + 0x563fd717, 0x34e251fd, 0xd5540312, 0xbdf07ce4, 0x5c462e0b, + 0x3e9ba8e1, 0xdf2dfa0e, 0xbb27d4ef, 0x5a918600, 0x384c00ea, + 0xd9fa5205, 0xa9028edd, 0x48b4dc32, 0x2a695ad8, 0xcbdf0837, + 0xafd526d6, 0x4e637439, 0x2cbef2d3, 0xcd08a03c, 0xa5acdfca, + 0x441a8d25, 0x26c70bcf, 0xc7715920, 0xa37b77c1, 0x42cd252e, + 0x2010a3c4, 0xc1a6f12b, 0xe196e614, 0x0020b4fb, 0x62fd3211, + 0x834b60fe, 0xe7414e1f, 0x06f71cf0, 0x642a9a1a, 0x859cc8f5, + 0xed38b703, 0x0c8ee5ec, 0x6e536306, 0x8fe531e9, 0xebef1f08, + 0x0a594de7, 0x6884cb0d, 0x893299e2, 0xf9ca453a, 0x187c17d5, + 0x7aa1913f, 0x9b17c3d0, 0xff1ded31, 0x1eabbfde, 0x7c763934, + 0x9dc06bdb, 0xf564142d, 0x14d246c2, 0x760fc028, 0x97b992c7, + 0xf3b3bc26, 0x1205eec9, 0x70d86823, 0x916e3acc, 0xd12ea049, + 0x3098f2a6, 0x5245744c, 0xb3f326a3, 0xd7f90842, 0x364f5aad, + 0x5492dc47, 0xb5248ea8, 0xdd80f15e, 0x3c36a3b1, 0x5eeb255b, + 0xbf5d77b4, 0xdb575955, 0x3ae10bba, 0x583c8d50, 0xb98adfbf, + 0xc9720367, 0x28c45188, 0x4a19d762, 0xabaf858d, 0xcfa5ab6c, + 0x2e13f983, 0x4cce7f69, 0xad782d86, 0xc5dc5270, 0x246a009f, + 0x46b78675, 0xa701d49a, 0xc30bfa7b, 0x22bda894, 0x40602e7e, + 0xa1d67c91}, + {0x00000000, 0x5880e2d7, 0xf106b474, 0xa98656a3, 0xe20d68e9, + 0xba8d8a3e, 0x130bdc9d, 0x4b8b3e4a, 0x851da109, 0xdd9d43de, + 0x741b157d, 0x2c9bf7aa, 0x6710c9e0, 0x3f902b37, 0x96167d94, + 0xce969f43, 0x0a3b4213, 0x52bba0c4, 0xfb3df667, 0xa3bd14b0, + 0xe8362afa, 0xb0b6c82d, 0x19309e8e, 0x41b07c59, 0x8f26e31a, + 0xd7a601cd, 0x7e20576e, 0x26a0b5b9, 0x6d2b8bf3, 0x35ab6924, + 0x9c2d3f87, 0xc4addd50, 0x14768426, 0x4cf666f1, 0xe5703052, + 0xbdf0d285, 0xf67beccf, 0xaefb0e18, 0x077d58bb, 0x5ffdba6c, + 0x916b252f, 0xc9ebc7f8, 0x606d915b, 0x38ed738c, 0x73664dc6, + 0x2be6af11, 0x8260f9b2, 0xdae01b65, 0x1e4dc635, 0x46cd24e2, + 0xef4b7241, 0xb7cb9096, 0xfc40aedc, 0xa4c04c0b, 0x0d461aa8, + 0x55c6f87f, 0x9b50673c, 0xc3d085eb, 0x6a56d348, 0x32d6319f, + 0x795d0fd5, 0x21dded02, 0x885bbba1, 0xd0db5976, 0x28ec084d, + 0x706cea9a, 0xd9eabc39, 0x816a5eee, 0xcae160a4, 0x92618273, + 0x3be7d4d0, 0x63673607, 0xadf1a944, 0xf5714b93, 0x5cf71d30, + 0x0477ffe7, 0x4ffcc1ad, 0x177c237a, 0xbefa75d9, 0xe67a970e, + 0x22d74a5e, 0x7a57a889, 0xd3d1fe2a, 0x8b511cfd, 0xc0da22b7, + 0x985ac060, 0x31dc96c3, 0x695c7414, 0xa7caeb57, 0xff4a0980, + 0x56cc5f23, 0x0e4cbdf4, 0x45c783be, 0x1d476169, 0xb4c137ca, + 0xec41d51d, 0x3c9a8c6b, 0x641a6ebc, 0xcd9c381f, 0x951cdac8, + 0xde97e482, 0x86170655, 0x2f9150f6, 0x7711b221, 0xb9872d62, + 0xe107cfb5, 0x48819916, 0x10017bc1, 0x5b8a458b, 0x030aa75c, + 0xaa8cf1ff, 0xf20c1328, 0x36a1ce78, 0x6e212caf, 0xc7a77a0c, + 0x9f2798db, 0xd4aca691, 0x8c2c4446, 0x25aa12e5, 0x7d2af032, + 0xb3bc6f71, 0xeb3c8da6, 0x42badb05, 0x1a3a39d2, 0x51b10798, + 0x0931e54f, 0xa0b7b3ec, 0xf837513b, 0x50d8119a, 0x0858f34d, + 0xa1dea5ee, 0xf95e4739, 0xb2d57973, 0xea559ba4, 0x43d3cd07, + 0x1b532fd0, 0xd5c5b093, 0x8d455244, 0x24c304e7, 0x7c43e630, + 0x37c8d87a, 0x6f483aad, 0xc6ce6c0e, 0x9e4e8ed9, 0x5ae35389, + 0x0263b15e, 0xabe5e7fd, 0xf365052a, 0xb8ee3b60, 0xe06ed9b7, + 0x49e88f14, 0x11686dc3, 0xdffef280, 0x877e1057, 0x2ef846f4, + 0x7678a423, 0x3df39a69, 0x657378be, 0xccf52e1d, 0x9475ccca, + 0x44ae95bc, 0x1c2e776b, 0xb5a821c8, 0xed28c31f, 0xa6a3fd55, + 0xfe231f82, 0x57a54921, 0x0f25abf6, 0xc1b334b5, 0x9933d662, + 0x30b580c1, 0x68356216, 0x23be5c5c, 0x7b3ebe8b, 0xd2b8e828, + 0x8a380aff, 0x4e95d7af, 0x16153578, 0xbf9363db, 0xe713810c, + 0xac98bf46, 0xf4185d91, 0x5d9e0b32, 0x051ee9e5, 0xcb8876a6, + 0x93089471, 0x3a8ec2d2, 0x620e2005, 0x29851e4f, 0x7105fc98, + 0xd883aa3b, 0x800348ec, 0x783419d7, 0x20b4fb00, 0x8932ada3, + 0xd1b24f74, 0x9a39713e, 0xc2b993e9, 0x6b3fc54a, 0x33bf279d, + 0xfd29b8de, 0xa5a95a09, 0x0c2f0caa, 0x54afee7d, 0x1f24d037, + 0x47a432e0, 0xee226443, 0xb6a28694, 0x720f5bc4, 0x2a8fb913, + 0x8309efb0, 0xdb890d67, 0x9002332d, 0xc882d1fa, 0x61048759, + 0x3984658e, 0xf712facd, 0xaf92181a, 0x06144eb9, 0x5e94ac6e, + 0x151f9224, 0x4d9f70f3, 0xe4192650, 0xbc99c487, 0x6c429df1, + 0x34c27f26, 0x9d442985, 0xc5c4cb52, 0x8e4ff518, 0xd6cf17cf, + 0x7f49416c, 0x27c9a3bb, 0xe95f3cf8, 0xb1dfde2f, 0x1859888c, + 0x40d96a5b, 0x0b525411, 0x53d2b6c6, 0xfa54e065, 0xa2d402b2, + 0x6679dfe2, 0x3ef93d35, 0x977f6b96, 0xcfff8941, 0x8474b70b, + 0xdcf455dc, 0x7572037f, 0x2df2e1a8, 0xe3647eeb, 0xbbe49c3c, + 0x1262ca9f, 0x4ae22848, 0x01691602, 0x59e9f4d5, 0xf06fa276, + 0xa8ef40a1}, + {0x00000000, 0x463b6765, 0x8c76ceca, 0xca4da9af, 0x59ebed4e, + 0x1fd08a2b, 0xd59d2384, 0x93a644e1, 0xb2d6db9d, 0xf4edbcf8, + 0x3ea01557, 0x789b7232, 0xeb3d36d3, 0xad0651b6, 0x674bf819, + 0x21709f7c, 0x25abc6e0, 0x6390a185, 0xa9dd082a, 0xefe66f4f, + 0x7c402bae, 0x3a7b4ccb, 0xf036e564, 0xb60d8201, 0x977d1d7d, + 0xd1467a18, 0x1b0bd3b7, 0x5d30b4d2, 0xce96f033, 0x88ad9756, + 0x42e03ef9, 0x04db599c, 0x0b50fc1a, 0x4d6b9b7f, 0x872632d0, + 0xc11d55b5, 0x52bb1154, 0x14807631, 0xdecddf9e, 0x98f6b8fb, + 0xb9862787, 0xffbd40e2, 0x35f0e94d, 0x73cb8e28, 0xe06dcac9, + 0xa656adac, 0x6c1b0403, 0x2a206366, 0x2efb3afa, 0x68c05d9f, + 0xa28df430, 0xe4b69355, 0x7710d7b4, 0x312bb0d1, 0xfb66197e, + 0xbd5d7e1b, 0x9c2de167, 0xda168602, 0x105b2fad, 0x566048c8, + 0xc5c60c29, 0x83fd6b4c, 0x49b0c2e3, 0x0f8ba586, 0x16a0f835, + 0x509b9f50, 0x9ad636ff, 0xdced519a, 0x4f4b157b, 0x0970721e, + 0xc33ddbb1, 0x8506bcd4, 0xa47623a8, 0xe24d44cd, 0x2800ed62, + 0x6e3b8a07, 0xfd9dcee6, 0xbba6a983, 0x71eb002c, 0x37d06749, + 0x330b3ed5, 0x753059b0, 0xbf7df01f, 0xf946977a, 0x6ae0d39b, + 0x2cdbb4fe, 0xe6961d51, 0xa0ad7a34, 0x81dde548, 0xc7e6822d, + 0x0dab2b82, 0x4b904ce7, 0xd8360806, 0x9e0d6f63, 0x5440c6cc, + 0x127ba1a9, 0x1df0042f, 0x5bcb634a, 0x9186cae5, 0xd7bdad80, + 0x441be961, 0x02208e04, 0xc86d27ab, 0x8e5640ce, 0xaf26dfb2, + 0xe91db8d7, 0x23501178, 0x656b761d, 0xf6cd32fc, 0xb0f65599, + 0x7abbfc36, 0x3c809b53, 0x385bc2cf, 0x7e60a5aa, 0xb42d0c05, + 0xf2166b60, 0x61b02f81, 0x278b48e4, 0xedc6e14b, 0xabfd862e, + 0x8a8d1952, 0xccb67e37, 0x06fbd798, 0x40c0b0fd, 0xd366f41c, + 0x955d9379, 0x5f103ad6, 0x192b5db3, 0x2c40f16b, 0x6a7b960e, + 0xa0363fa1, 0xe60d58c4, 0x75ab1c25, 0x33907b40, 0xf9ddd2ef, + 0xbfe6b58a, 0x9e962af6, 0xd8ad4d93, 0x12e0e43c, 0x54db8359, + 0xc77dc7b8, 0x8146a0dd, 0x4b0b0972, 0x0d306e17, 0x09eb378b, + 0x4fd050ee, 0x859df941, 0xc3a69e24, 0x5000dac5, 0x163bbda0, + 0xdc76140f, 0x9a4d736a, 0xbb3dec16, 0xfd068b73, 0x374b22dc, + 0x717045b9, 0xe2d60158, 0xa4ed663d, 0x6ea0cf92, 0x289ba8f7, + 0x27100d71, 0x612b6a14, 0xab66c3bb, 0xed5da4de, 0x7efbe03f, + 0x38c0875a, 0xf28d2ef5, 0xb4b64990, 0x95c6d6ec, 0xd3fdb189, + 0x19b01826, 0x5f8b7f43, 0xcc2d3ba2, 0x8a165cc7, 0x405bf568, + 0x0660920d, 0x02bbcb91, 0x4480acf4, 0x8ecd055b, 0xc8f6623e, + 0x5b5026df, 0x1d6b41ba, 0xd726e815, 0x911d8f70, 0xb06d100c, + 0xf6567769, 0x3c1bdec6, 0x7a20b9a3, 0xe986fd42, 0xafbd9a27, + 0x65f03388, 0x23cb54ed, 0x3ae0095e, 0x7cdb6e3b, 0xb696c794, + 0xf0ada0f1, 0x630be410, 0x25308375, 0xef7d2ada, 0xa9464dbf, + 0x8836d2c3, 0xce0db5a6, 0x04401c09, 0x427b7b6c, 0xd1dd3f8d, + 0x97e658e8, 0x5dabf147, 0x1b909622, 0x1f4bcfbe, 0x5970a8db, + 0x933d0174, 0xd5066611, 0x46a022f0, 0x009b4595, 0xcad6ec3a, + 0x8ced8b5f, 0xad9d1423, 0xeba67346, 0x21ebdae9, 0x67d0bd8c, + 0xf476f96d, 0xb24d9e08, 0x780037a7, 0x3e3b50c2, 0x31b0f544, + 0x778b9221, 0xbdc63b8e, 0xfbfd5ceb, 0x685b180a, 0x2e607f6f, + 0xe42dd6c0, 0xa216b1a5, 0x83662ed9, 0xc55d49bc, 0x0f10e013, + 0x492b8776, 0xda8dc397, 0x9cb6a4f2, 0x56fb0d5d, 0x10c06a38, + 0x141b33a4, 0x522054c1, 0x986dfd6e, 0xde569a0b, 0x4df0deea, + 0x0bcbb98f, 0xc1861020, 0x87bd7745, 0xa6cde839, 0xe0f68f5c, + 0x2abb26f3, 0x6c804196, 0xff260577, 0xb91d6212, 0x7350cbbd, + 0x356bacd8}}; + +#endif + +#endif + +#if N == 6 + +#if W == 8 + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0x3db1ecdc, 0x7b63d9b8, 0x46d23564, 0xf6c7b370, + 0xcb765fac, 0x8da46ac8, 0xb0158614, 0x36fe60a1, 0x0b4f8c7d, + 0x4d9db919, 0x702c55c5, 0xc039d3d1, 0xfd883f0d, 0xbb5a0a69, + 0x86ebe6b5, 0x6dfcc142, 0x504d2d9e, 0x169f18fa, 0x2b2ef426, + 0x9b3b7232, 0xa68a9eee, 0xe058ab8a, 0xdde94756, 0x5b02a1e3, + 0x66b34d3f, 0x2061785b, 0x1dd09487, 0xadc51293, 0x9074fe4f, + 0xd6a6cb2b, 0xeb1727f7, 0xdbf98284, 0xe6486e58, 0xa09a5b3c, + 0x9d2bb7e0, 0x2d3e31f4, 0x108fdd28, 0x565de84c, 0x6bec0490, + 0xed07e225, 0xd0b60ef9, 0x96643b9d, 0xabd5d741, 0x1bc05155, + 0x2671bd89, 0x60a388ed, 0x5d126431, 0xb60543c6, 0x8bb4af1a, + 0xcd669a7e, 0xf0d776a2, 0x40c2f0b6, 0x7d731c6a, 0x3ba1290e, + 0x0610c5d2, 0x80fb2367, 0xbd4acfbb, 0xfb98fadf, 0xc6291603, + 0x763c9017, 0x4b8d7ccb, 0x0d5f49af, 0x30eea573, 0x6c820349, + 0x5133ef95, 0x17e1daf1, 0x2a50362d, 0x9a45b039, 0xa7f45ce5, + 0xe1266981, 0xdc97855d, 0x5a7c63e8, 0x67cd8f34, 0x211fba50, + 0x1cae568c, 0xacbbd098, 0x910a3c44, 0xd7d80920, 0xea69e5fc, + 0x017ec20b, 0x3ccf2ed7, 0x7a1d1bb3, 0x47acf76f, 0xf7b9717b, + 0xca089da7, 0x8cdaa8c3, 0xb16b441f, 0x3780a2aa, 0x0a314e76, + 0x4ce37b12, 0x715297ce, 0xc14711da, 0xfcf6fd06, 0xba24c862, + 0x879524be, 0xb77b81cd, 0x8aca6d11, 0xcc185875, 0xf1a9b4a9, + 0x41bc32bd, 0x7c0dde61, 0x3adfeb05, 0x076e07d9, 0x8185e16c, + 0xbc340db0, 0xfae638d4, 0xc757d408, 0x7742521c, 0x4af3bec0, + 0x0c218ba4, 0x31906778, 0xda87408f, 0xe736ac53, 0xa1e49937, + 0x9c5575eb, 0x2c40f3ff, 0x11f11f23, 0x57232a47, 0x6a92c69b, + 0xec79202e, 0xd1c8ccf2, 0x971af996, 0xaaab154a, 0x1abe935e, + 0x270f7f82, 0x61dd4ae6, 0x5c6ca63a, 0xd9040692, 0xe4b5ea4e, + 0xa267df2a, 0x9fd633f6, 0x2fc3b5e2, 0x1272593e, 0x54a06c5a, + 0x69118086, 0xeffa6633, 0xd24b8aef, 0x9499bf8b, 0xa9285357, + 0x193dd543, 0x248c399f, 0x625e0cfb, 0x5fefe027, 0xb4f8c7d0, + 0x89492b0c, 0xcf9b1e68, 0xf22af2b4, 0x423f74a0, 0x7f8e987c, + 0x395cad18, 0x04ed41c4, 0x8206a771, 0xbfb74bad, 0xf9657ec9, + 0xc4d49215, 0x74c11401, 0x4970f8dd, 0x0fa2cdb9, 0x32132165, + 0x02fd8416, 0x3f4c68ca, 0x799e5dae, 0x442fb172, 0xf43a3766, + 0xc98bdbba, 0x8f59eede, 0xb2e80202, 0x3403e4b7, 0x09b2086b, + 0x4f603d0f, 0x72d1d1d3, 0xc2c457c7, 0xff75bb1b, 0xb9a78e7f, + 0x841662a3, 0x6f014554, 0x52b0a988, 0x14629cec, 0x29d37030, + 0x99c6f624, 0xa4771af8, 0xe2a52f9c, 0xdf14c340, 0x59ff25f5, + 0x644ec929, 0x229cfc4d, 0x1f2d1091, 0xaf389685, 0x92897a59, + 0xd45b4f3d, 0xe9eaa3e1, 0xb58605db, 0x8837e907, 0xcee5dc63, + 0xf35430bf, 0x4341b6ab, 0x7ef05a77, 0x38226f13, 0x059383cf, + 0x8378657a, 0xbec989a6, 0xf81bbcc2, 0xc5aa501e, 0x75bfd60a, + 0x480e3ad6, 0x0edc0fb2, 0x336de36e, 0xd87ac499, 0xe5cb2845, + 0xa3191d21, 0x9ea8f1fd, 0x2ebd77e9, 0x130c9b35, 0x55deae51, + 0x686f428d, 0xee84a438, 0xd33548e4, 0x95e77d80, 0xa856915c, + 0x18431748, 0x25f2fb94, 0x6320cef0, 0x5e91222c, 0x6e7f875f, + 0x53ce6b83, 0x151c5ee7, 0x28adb23b, 0x98b8342f, 0xa509d8f3, + 0xe3dbed97, 0xde6a014b, 0x5881e7fe, 0x65300b22, 0x23e23e46, + 0x1e53d29a, 0xae46548e, 0x93f7b852, 0xd5258d36, 0xe89461ea, + 0x0383461d, 0x3e32aac1, 0x78e09fa5, 0x45517379, 0xf544f56d, + 0xc8f519b1, 0x8e272cd5, 0xb396c009, 0x357d26bc, 0x08ccca60, + 0x4e1eff04, 0x73af13d8, 0xc3ba95cc, 0xfe0b7910, 0xb8d94c74, + 0x8568a0a8}, + {0x00000000, 0x69790b65, 0xd2f216ca, 0xbb8b1daf, 0x7e952bd5, + 0x17ec20b0, 0xac673d1f, 0xc51e367a, 0xfd2a57aa, 0x94535ccf, + 0x2fd84160, 0x46a14a05, 0x83bf7c7f, 0xeac6771a, 0x514d6ab5, + 0x383461d0, 0x2125a915, 0x485ca270, 0xf3d7bfdf, 0x9aaeb4ba, + 0x5fb082c0, 0x36c989a5, 0x8d42940a, 0xe43b9f6f, 0xdc0ffebf, + 0xb576f5da, 0x0efde875, 0x6784e310, 0xa29ad56a, 0xcbe3de0f, + 0x7068c3a0, 0x1911c8c5, 0x424b522a, 0x2b32594f, 0x90b944e0, + 0xf9c04f85, 0x3cde79ff, 0x55a7729a, 0xee2c6f35, 0x87556450, + 0xbf610580, 0xd6180ee5, 0x6d93134a, 0x04ea182f, 0xc1f42e55, + 0xa88d2530, 0x1306389f, 0x7a7f33fa, 0x636efb3f, 0x0a17f05a, + 0xb19cedf5, 0xd8e5e690, 0x1dfbd0ea, 0x7482db8f, 0xcf09c620, + 0xa670cd45, 0x9e44ac95, 0xf73da7f0, 0x4cb6ba5f, 0x25cfb13a, + 0xe0d18740, 0x89a88c25, 0x3223918a, 0x5b5a9aef, 0x8496a454, + 0xedefaf31, 0x5664b29e, 0x3f1db9fb, 0xfa038f81, 0x937a84e4, + 0x28f1994b, 0x4188922e, 0x79bcf3fe, 0x10c5f89b, 0xab4ee534, + 0xc237ee51, 0x0729d82b, 0x6e50d34e, 0xd5dbcee1, 0xbca2c584, + 0xa5b30d41, 0xccca0624, 0x77411b8b, 0x1e3810ee, 0xdb262694, + 0xb25f2df1, 0x09d4305e, 0x60ad3b3b, 0x58995aeb, 0x31e0518e, + 0x8a6b4c21, 0xe3124744, 0x260c713e, 0x4f757a5b, 0xf4fe67f4, + 0x9d876c91, 0xc6ddf67e, 0xafa4fd1b, 0x142fe0b4, 0x7d56ebd1, + 0xb848ddab, 0xd131d6ce, 0x6abacb61, 0x03c3c004, 0x3bf7a1d4, + 0x528eaab1, 0xe905b71e, 0x807cbc7b, 0x45628a01, 0x2c1b8164, + 0x97909ccb, 0xfee997ae, 0xe7f85f6b, 0x8e81540e, 0x350a49a1, + 0x5c7342c4, 0x996d74be, 0xf0147fdb, 0x4b9f6274, 0x22e66911, + 0x1ad208c1, 0x73ab03a4, 0xc8201e0b, 0xa159156e, 0x64472314, + 0x0d3e2871, 0xb6b535de, 0xdfcc3ebb, 0xd25c4ee9, 0xbb25458c, + 0x00ae5823, 0x69d75346, 0xacc9653c, 0xc5b06e59, 0x7e3b73f6, + 0x17427893, 0x2f761943, 0x460f1226, 0xfd840f89, 0x94fd04ec, + 0x51e33296, 0x389a39f3, 0x8311245c, 0xea682f39, 0xf379e7fc, + 0x9a00ec99, 0x218bf136, 0x48f2fa53, 0x8deccc29, 0xe495c74c, + 0x5f1edae3, 0x3667d186, 0x0e53b056, 0x672abb33, 0xdca1a69c, + 0xb5d8adf9, 0x70c69b83, 0x19bf90e6, 0xa2348d49, 0xcb4d862c, + 0x90171cc3, 0xf96e17a6, 0x42e50a09, 0x2b9c016c, 0xee823716, + 0x87fb3c73, 0x3c7021dc, 0x55092ab9, 0x6d3d4b69, 0x0444400c, + 0xbfcf5da3, 0xd6b656c6, 0x13a860bc, 0x7ad16bd9, 0xc15a7676, + 0xa8237d13, 0xb132b5d6, 0xd84bbeb3, 0x63c0a31c, 0x0ab9a879, + 0xcfa79e03, 0xa6de9566, 0x1d5588c9, 0x742c83ac, 0x4c18e27c, + 0x2561e919, 0x9eeaf4b6, 0xf793ffd3, 0x328dc9a9, 0x5bf4c2cc, + 0xe07fdf63, 0x8906d406, 0x56caeabd, 0x3fb3e1d8, 0x8438fc77, + 0xed41f712, 0x285fc168, 0x4126ca0d, 0xfaadd7a2, 0x93d4dcc7, + 0xabe0bd17, 0xc299b672, 0x7912abdd, 0x106ba0b8, 0xd57596c2, + 0xbc0c9da7, 0x07878008, 0x6efe8b6d, 0x77ef43a8, 0x1e9648cd, + 0xa51d5562, 0xcc645e07, 0x097a687d, 0x60036318, 0xdb887eb7, + 0xb2f175d2, 0x8ac51402, 0xe3bc1f67, 0x583702c8, 0x314e09ad, + 0xf4503fd7, 0x9d2934b2, 0x26a2291d, 0x4fdb2278, 0x1481b897, + 0x7df8b3f2, 0xc673ae5d, 0xaf0aa538, 0x6a149342, 0x036d9827, + 0xb8e68588, 0xd19f8eed, 0xe9abef3d, 0x80d2e458, 0x3b59f9f7, + 0x5220f292, 0x973ec4e8, 0xfe47cf8d, 0x45ccd222, 0x2cb5d947, + 0x35a41182, 0x5cdd1ae7, 0xe7560748, 0x8e2f0c2d, 0x4b313a57, + 0x22483132, 0x99c32c9d, 0xf0ba27f8, 0xc88e4628, 0xa1f74d4d, + 0x1a7c50e2, 0x73055b87, 0xb61b6dfd, 0xdf626698, 0x64e97b37, + 0x0d907052}, + {0x00000000, 0x7fc99b93, 0xff933726, 0x805aacb5, 0x2457680d, + 0x5b9ef39e, 0xdbc45f2b, 0xa40dc4b8, 0x48aed01a, 0x37674b89, + 0xb73de73c, 0xc8f47caf, 0x6cf9b817, 0x13302384, 0x936a8f31, + 0xeca314a2, 0x915da034, 0xee943ba7, 0x6ece9712, 0x11070c81, + 0xb50ac839, 0xcac353aa, 0x4a99ff1f, 0x3550648c, 0xd9f3702e, + 0xa63aebbd, 0x26604708, 0x59a9dc9b, 0xfda41823, 0x826d83b0, + 0x02372f05, 0x7dfeb496, 0xf9ca4629, 0x8603ddba, 0x0659710f, + 0x7990ea9c, 0xdd9d2e24, 0xa254b5b7, 0x220e1902, 0x5dc78291, + 0xb1649633, 0xcead0da0, 0x4ef7a115, 0x313e3a86, 0x9533fe3e, + 0xeafa65ad, 0x6aa0c918, 0x1569528b, 0x6897e61d, 0x175e7d8e, + 0x9704d13b, 0xe8cd4aa8, 0x4cc08e10, 0x33091583, 0xb353b936, + 0xcc9a22a5, 0x20393607, 0x5ff0ad94, 0xdfaa0121, 0xa0639ab2, + 0x046e5e0a, 0x7ba7c599, 0xfbfd692c, 0x8434f2bf, 0x28e58a13, + 0x572c1180, 0xd776bd35, 0xa8bf26a6, 0x0cb2e21e, 0x737b798d, + 0xf321d538, 0x8ce84eab, 0x604b5a09, 0x1f82c19a, 0x9fd86d2f, + 0xe011f6bc, 0x441c3204, 0x3bd5a997, 0xbb8f0522, 0xc4469eb1, + 0xb9b82a27, 0xc671b1b4, 0x462b1d01, 0x39e28692, 0x9def422a, + 0xe226d9b9, 0x627c750c, 0x1db5ee9f, 0xf116fa3d, 0x8edf61ae, + 0x0e85cd1b, 0x714c5688, 0xd5419230, 0xaa8809a3, 0x2ad2a516, + 0x551b3e85, 0xd12fcc3a, 0xaee657a9, 0x2ebcfb1c, 0x5175608f, + 0xf578a437, 0x8ab13fa4, 0x0aeb9311, 0x75220882, 0x99811c20, + 0xe64887b3, 0x66122b06, 0x19dbb095, 0xbdd6742d, 0xc21fefbe, + 0x4245430b, 0x3d8cd898, 0x40726c0e, 0x3fbbf79d, 0xbfe15b28, + 0xc028c0bb, 0x64250403, 0x1bec9f90, 0x9bb63325, 0xe47fa8b6, + 0x08dcbc14, 0x77152787, 0xf74f8b32, 0x888610a1, 0x2c8bd419, + 0x53424f8a, 0xd318e33f, 0xacd178ac, 0x51cb1426, 0x2e028fb5, + 0xae582300, 0xd191b893, 0x759c7c2b, 0x0a55e7b8, 0x8a0f4b0d, + 0xf5c6d09e, 0x1965c43c, 0x66ac5faf, 0xe6f6f31a, 0x993f6889, + 0x3d32ac31, 0x42fb37a2, 0xc2a19b17, 0xbd680084, 0xc096b412, + 0xbf5f2f81, 0x3f058334, 0x40cc18a7, 0xe4c1dc1f, 0x9b08478c, + 0x1b52eb39, 0x649b70aa, 0x88386408, 0xf7f1ff9b, 0x77ab532e, + 0x0862c8bd, 0xac6f0c05, 0xd3a69796, 0x53fc3b23, 0x2c35a0b0, + 0xa801520f, 0xd7c8c99c, 0x57926529, 0x285bfeba, 0x8c563a02, + 0xf39fa191, 0x73c50d24, 0x0c0c96b7, 0xe0af8215, 0x9f661986, + 0x1f3cb533, 0x60f52ea0, 0xc4f8ea18, 0xbb31718b, 0x3b6bdd3e, + 0x44a246ad, 0x395cf23b, 0x469569a8, 0xc6cfc51d, 0xb9065e8e, + 0x1d0b9a36, 0x62c201a5, 0xe298ad10, 0x9d513683, 0x71f22221, + 0x0e3bb9b2, 0x8e611507, 0xf1a88e94, 0x55a54a2c, 0x2a6cd1bf, + 0xaa367d0a, 0xd5ffe699, 0x792e9e35, 0x06e705a6, 0x86bda913, + 0xf9743280, 0x5d79f638, 0x22b06dab, 0xa2eac11e, 0xdd235a8d, + 0x31804e2f, 0x4e49d5bc, 0xce137909, 0xb1dae29a, 0x15d72622, + 0x6a1ebdb1, 0xea441104, 0x958d8a97, 0xe8733e01, 0x97baa592, + 0x17e00927, 0x682992b4, 0xcc24560c, 0xb3edcd9f, 0x33b7612a, + 0x4c7efab9, 0xa0ddee1b, 0xdf147588, 0x5f4ed93d, 0x208742ae, + 0x848a8616, 0xfb431d85, 0x7b19b130, 0x04d02aa3, 0x80e4d81c, + 0xff2d438f, 0x7f77ef3a, 0x00be74a9, 0xa4b3b011, 0xdb7a2b82, + 0x5b208737, 0x24e91ca4, 0xc84a0806, 0xb7839395, 0x37d93f20, + 0x4810a4b3, 0xec1d600b, 0x93d4fb98, 0x138e572d, 0x6c47ccbe, + 0x11b97828, 0x6e70e3bb, 0xee2a4f0e, 0x91e3d49d, 0x35ee1025, + 0x4a278bb6, 0xca7d2703, 0xb5b4bc90, 0x5917a832, 0x26de33a1, + 0xa6849f14, 0xd94d0487, 0x7d40c03f, 0x02895bac, 0x82d3f719, + 0xfd1a6c8a}, + {0x00000000, 0xa396284c, 0x9c5d56d9, 0x3fcb7e95, 0xe3cbabf3, + 0x405d83bf, 0x7f96fd2a, 0xdc00d566, 0x1ce651a7, 0xbf7079eb, + 0x80bb077e, 0x232d2f32, 0xff2dfa54, 0x5cbbd218, 0x6370ac8d, + 0xc0e684c1, 0x39cca34e, 0x9a5a8b02, 0xa591f597, 0x0607dddb, + 0xda0708bd, 0x799120f1, 0x465a5e64, 0xe5cc7628, 0x252af2e9, + 0x86bcdaa5, 0xb977a430, 0x1ae18c7c, 0xc6e1591a, 0x65777156, + 0x5abc0fc3, 0xf92a278f, 0x7399469c, 0xd00f6ed0, 0xefc41045, + 0x4c523809, 0x9052ed6f, 0x33c4c523, 0x0c0fbbb6, 0xaf9993fa, + 0x6f7f173b, 0xcce93f77, 0xf32241e2, 0x50b469ae, 0x8cb4bcc8, + 0x2f229484, 0x10e9ea11, 0xb37fc25d, 0x4a55e5d2, 0xe9c3cd9e, + 0xd608b30b, 0x759e9b47, 0xa99e4e21, 0x0a08666d, 0x35c318f8, + 0x965530b4, 0x56b3b475, 0xf5259c39, 0xcaeee2ac, 0x6978cae0, + 0xb5781f86, 0x16ee37ca, 0x2925495f, 0x8ab36113, 0xe7328d38, + 0x44a4a574, 0x7b6fdbe1, 0xd8f9f3ad, 0x04f926cb, 0xa76f0e87, + 0x98a47012, 0x3b32585e, 0xfbd4dc9f, 0x5842f4d3, 0x67898a46, + 0xc41fa20a, 0x181f776c, 0xbb895f20, 0x844221b5, 0x27d409f9, + 0xdefe2e76, 0x7d68063a, 0x42a378af, 0xe13550e3, 0x3d358585, + 0x9ea3adc9, 0xa168d35c, 0x02fefb10, 0xc2187fd1, 0x618e579d, + 0x5e452908, 0xfdd30144, 0x21d3d422, 0x8245fc6e, 0xbd8e82fb, + 0x1e18aab7, 0x94abcba4, 0x373de3e8, 0x08f69d7d, 0xab60b531, + 0x77606057, 0xd4f6481b, 0xeb3d368e, 0x48ab1ec2, 0x884d9a03, + 0x2bdbb24f, 0x1410ccda, 0xb786e496, 0x6b8631f0, 0xc81019bc, + 0xf7db6729, 0x544d4f65, 0xad6768ea, 0x0ef140a6, 0x313a3e33, + 0x92ac167f, 0x4eacc319, 0xed3aeb55, 0xd2f195c0, 0x7167bd8c, + 0xb181394d, 0x12171101, 0x2ddc6f94, 0x8e4a47d8, 0x524a92be, + 0xf1dcbaf2, 0xce17c467, 0x6d81ec2b, 0x15141c31, 0xb682347d, + 0x89494ae8, 0x2adf62a4, 0xf6dfb7c2, 0x55499f8e, 0x6a82e11b, + 0xc914c957, 0x09f24d96, 0xaa6465da, 0x95af1b4f, 0x36393303, + 0xea39e665, 0x49afce29, 0x7664b0bc, 0xd5f298f0, 0x2cd8bf7f, + 0x8f4e9733, 0xb085e9a6, 0x1313c1ea, 0xcf13148c, 0x6c853cc0, + 0x534e4255, 0xf0d86a19, 0x303eeed8, 0x93a8c694, 0xac63b801, + 0x0ff5904d, 0xd3f5452b, 0x70636d67, 0x4fa813f2, 0xec3e3bbe, + 0x668d5aad, 0xc51b72e1, 0xfad00c74, 0x59462438, 0x8546f15e, + 0x26d0d912, 0x191ba787, 0xba8d8fcb, 0x7a6b0b0a, 0xd9fd2346, + 0xe6365dd3, 0x45a0759f, 0x99a0a0f9, 0x3a3688b5, 0x05fdf620, + 0xa66bde6c, 0x5f41f9e3, 0xfcd7d1af, 0xc31caf3a, 0x608a8776, + 0xbc8a5210, 0x1f1c7a5c, 0x20d704c9, 0x83412c85, 0x43a7a844, + 0xe0318008, 0xdffafe9d, 0x7c6cd6d1, 0xa06c03b7, 0x03fa2bfb, + 0x3c31556e, 0x9fa77d22, 0xf2269109, 0x51b0b945, 0x6e7bc7d0, + 0xcdedef9c, 0x11ed3afa, 0xb27b12b6, 0x8db06c23, 0x2e26446f, + 0xeec0c0ae, 0x4d56e8e2, 0x729d9677, 0xd10bbe3b, 0x0d0b6b5d, + 0xae9d4311, 0x91563d84, 0x32c015c8, 0xcbea3247, 0x687c1a0b, + 0x57b7649e, 0xf4214cd2, 0x282199b4, 0x8bb7b1f8, 0xb47ccf6d, + 0x17eae721, 0xd70c63e0, 0x749a4bac, 0x4b513539, 0xe8c71d75, + 0x34c7c813, 0x9751e05f, 0xa89a9eca, 0x0b0cb686, 0x81bfd795, + 0x2229ffd9, 0x1de2814c, 0xbe74a900, 0x62747c66, 0xc1e2542a, + 0xfe292abf, 0x5dbf02f3, 0x9d598632, 0x3ecfae7e, 0x0104d0eb, + 0xa292f8a7, 0x7e922dc1, 0xdd04058d, 0xe2cf7b18, 0x41595354, + 0xb87374db, 0x1be55c97, 0x242e2202, 0x87b80a4e, 0x5bb8df28, + 0xf82ef764, 0xc7e589f1, 0x6473a1bd, 0xa495257c, 0x07030d30, + 0x38c873a5, 0x9b5e5be9, 0x475e8e8f, 0xe4c8a6c3, 0xdb03d856, + 0x7895f01a}, + {0x00000000, 0x2a283862, 0x545070c4, 0x7e7848a6, 0xa8a0e188, + 0x8288d9ea, 0xfcf0914c, 0xd6d8a92e, 0x8a30c551, 0xa018fd33, + 0xde60b595, 0xf4488df7, 0x229024d9, 0x08b81cbb, 0x76c0541d, + 0x5ce86c7f, 0xcf108ce3, 0xe538b481, 0x9b40fc27, 0xb168c445, + 0x67b06d6b, 0x4d985509, 0x33e01daf, 0x19c825cd, 0x452049b2, + 0x6f0871d0, 0x11703976, 0x3b580114, 0xed80a83a, 0xc7a89058, + 0xb9d0d8fe, 0x93f8e09c, 0x45501f87, 0x6f7827e5, 0x11006f43, + 0x3b285721, 0xedf0fe0f, 0xc7d8c66d, 0xb9a08ecb, 0x9388b6a9, + 0xcf60dad6, 0xe548e2b4, 0x9b30aa12, 0xb1189270, 0x67c03b5e, + 0x4de8033c, 0x33904b9a, 0x19b873f8, 0x8a409364, 0xa068ab06, + 0xde10e3a0, 0xf438dbc2, 0x22e072ec, 0x08c84a8e, 0x76b00228, + 0x5c983a4a, 0x00705635, 0x2a586e57, 0x542026f1, 0x7e081e93, + 0xa8d0b7bd, 0x82f88fdf, 0xfc80c779, 0xd6a8ff1b, 0x8aa03f0e, + 0xa088076c, 0xdef04fca, 0xf4d877a8, 0x2200de86, 0x0828e6e4, + 0x7650ae42, 0x5c789620, 0x0090fa5f, 0x2ab8c23d, 0x54c08a9b, + 0x7ee8b2f9, 0xa8301bd7, 0x821823b5, 0xfc606b13, 0xd6485371, + 0x45b0b3ed, 0x6f988b8f, 0x11e0c329, 0x3bc8fb4b, 0xed105265, + 0xc7386a07, 0xb94022a1, 0x93681ac3, 0xcf8076bc, 0xe5a84ede, + 0x9bd00678, 0xb1f83e1a, 0x67209734, 0x4d08af56, 0x3370e7f0, + 0x1958df92, 0xcff02089, 0xe5d818eb, 0x9ba0504d, 0xb188682f, + 0x6750c101, 0x4d78f963, 0x3300b1c5, 0x192889a7, 0x45c0e5d8, + 0x6fe8ddba, 0x1190951c, 0x3bb8ad7e, 0xed600450, 0xc7483c32, + 0xb9307494, 0x93184cf6, 0x00e0ac6a, 0x2ac89408, 0x54b0dcae, + 0x7e98e4cc, 0xa8404de2, 0x82687580, 0xfc103d26, 0xd6380544, + 0x8ad0693b, 0xa0f85159, 0xde8019ff, 0xf4a8219d, 0x227088b3, + 0x0858b0d1, 0x7620f877, 0x5c08c015, 0xce31785d, 0xe419403f, + 0x9a610899, 0xb04930fb, 0x669199d5, 0x4cb9a1b7, 0x32c1e911, + 0x18e9d173, 0x4401bd0c, 0x6e29856e, 0x1051cdc8, 0x3a79f5aa, + 0xeca15c84, 0xc68964e6, 0xb8f12c40, 0x92d91422, 0x0121f4be, + 0x2b09ccdc, 0x5571847a, 0x7f59bc18, 0xa9811536, 0x83a92d54, + 0xfdd165f2, 0xd7f95d90, 0x8b1131ef, 0xa139098d, 0xdf41412b, + 0xf5697949, 0x23b1d067, 0x0999e805, 0x77e1a0a3, 0x5dc998c1, + 0x8b6167da, 0xa1495fb8, 0xdf31171e, 0xf5192f7c, 0x23c18652, + 0x09e9be30, 0x7791f696, 0x5db9cef4, 0x0151a28b, 0x2b799ae9, + 0x5501d24f, 0x7f29ea2d, 0xa9f14303, 0x83d97b61, 0xfda133c7, + 0xd7890ba5, 0x4471eb39, 0x6e59d35b, 0x10219bfd, 0x3a09a39f, + 0xecd10ab1, 0xc6f932d3, 0xb8817a75, 0x92a94217, 0xce412e68, + 0xe469160a, 0x9a115eac, 0xb03966ce, 0x66e1cfe0, 0x4cc9f782, + 0x32b1bf24, 0x18998746, 0x44914753, 0x6eb97f31, 0x10c13797, + 0x3ae90ff5, 0xec31a6db, 0xc6199eb9, 0xb861d61f, 0x9249ee7d, + 0xcea18202, 0xe489ba60, 0x9af1f2c6, 0xb0d9caa4, 0x6601638a, + 0x4c295be8, 0x3251134e, 0x18792b2c, 0x8b81cbb0, 0xa1a9f3d2, + 0xdfd1bb74, 0xf5f98316, 0x23212a38, 0x0909125a, 0x77715afc, + 0x5d59629e, 0x01b10ee1, 0x2b993683, 0x55e17e25, 0x7fc94647, + 0xa911ef69, 0x8339d70b, 0xfd419fad, 0xd769a7cf, 0x01c158d4, + 0x2be960b6, 0x55912810, 0x7fb91072, 0xa961b95c, 0x8349813e, + 0xfd31c998, 0xd719f1fa, 0x8bf19d85, 0xa1d9a5e7, 0xdfa1ed41, + 0xf589d523, 0x23517c0d, 0x0979446f, 0x77010cc9, 0x5d2934ab, + 0xced1d437, 0xe4f9ec55, 0x9a81a4f3, 0xb0a99c91, 0x667135bf, + 0x4c590ddd, 0x3221457b, 0x18097d19, 0x44e11166, 0x6ec92904, + 0x10b161a2, 0x3a9959c0, 0xec41f0ee, 0xc669c88c, 0xb811802a, + 0x9239b848}, + {0x00000000, 0x4713f6fb, 0x8e27edf6, 0xc9341b0d, 0xc73eddad, + 0x802d2b56, 0x4919305b, 0x0e0ac6a0, 0x550cbd1b, 0x121f4be0, + 0xdb2b50ed, 0x9c38a616, 0x923260b6, 0xd521964d, 0x1c158d40, + 0x5b067bbb, 0xaa197a36, 0xed0a8ccd, 0x243e97c0, 0x632d613b, + 0x6d27a79b, 0x2a345160, 0xe3004a6d, 0xa413bc96, 0xff15c72d, + 0xb80631d6, 0x71322adb, 0x3621dc20, 0x382b1a80, 0x7f38ec7b, + 0xb60cf776, 0xf11f018d, 0x8f43f22d, 0xc85004d6, 0x01641fdb, + 0x4677e920, 0x487d2f80, 0x0f6ed97b, 0xc65ac276, 0x8149348d, + 0xda4f4f36, 0x9d5cb9cd, 0x5468a2c0, 0x137b543b, 0x1d71929b, + 0x5a626460, 0x93567f6d, 0xd4458996, 0x255a881b, 0x62497ee0, + 0xab7d65ed, 0xec6e9316, 0xe26455b6, 0xa577a34d, 0x6c43b840, + 0x2b504ebb, 0x70563500, 0x3745c3fb, 0xfe71d8f6, 0xb9622e0d, + 0xb768e8ad, 0xf07b1e56, 0x394f055b, 0x7e5cf3a0, 0xc5f6e21b, + 0x82e514e0, 0x4bd10fed, 0x0cc2f916, 0x02c83fb6, 0x45dbc94d, + 0x8cefd240, 0xcbfc24bb, 0x90fa5f00, 0xd7e9a9fb, 0x1eddb2f6, + 0x59ce440d, 0x57c482ad, 0x10d77456, 0xd9e36f5b, 0x9ef099a0, + 0x6fef982d, 0x28fc6ed6, 0xe1c875db, 0xa6db8320, 0xa8d14580, + 0xefc2b37b, 0x26f6a876, 0x61e55e8d, 0x3ae32536, 0x7df0d3cd, + 0xb4c4c8c0, 0xf3d73e3b, 0xfdddf89b, 0xbace0e60, 0x73fa156d, + 0x34e9e396, 0x4ab51036, 0x0da6e6cd, 0xc492fdc0, 0x83810b3b, + 0x8d8bcd9b, 0xca983b60, 0x03ac206d, 0x44bfd696, 0x1fb9ad2d, + 0x58aa5bd6, 0x919e40db, 0xd68db620, 0xd8877080, 0x9f94867b, + 0x56a09d76, 0x11b36b8d, 0xe0ac6a00, 0xa7bf9cfb, 0x6e8b87f6, + 0x2998710d, 0x2792b7ad, 0x60814156, 0xa9b55a5b, 0xeea6aca0, + 0xb5a0d71b, 0xf2b321e0, 0x3b873aed, 0x7c94cc16, 0x729e0ab6, + 0x358dfc4d, 0xfcb9e740, 0xbbaa11bb, 0x509cc277, 0x178f348c, + 0xdebb2f81, 0x99a8d97a, 0x97a21fda, 0xd0b1e921, 0x1985f22c, + 0x5e9604d7, 0x05907f6c, 0x42838997, 0x8bb7929a, 0xcca46461, + 0xc2aea2c1, 0x85bd543a, 0x4c894f37, 0x0b9ab9cc, 0xfa85b841, + 0xbd964eba, 0x74a255b7, 0x33b1a34c, 0x3dbb65ec, 0x7aa89317, + 0xb39c881a, 0xf48f7ee1, 0xaf89055a, 0xe89af3a1, 0x21aee8ac, + 0x66bd1e57, 0x68b7d8f7, 0x2fa42e0c, 0xe6903501, 0xa183c3fa, + 0xdfdf305a, 0x98ccc6a1, 0x51f8ddac, 0x16eb2b57, 0x18e1edf7, + 0x5ff21b0c, 0x96c60001, 0xd1d5f6fa, 0x8ad38d41, 0xcdc07bba, + 0x04f460b7, 0x43e7964c, 0x4ded50ec, 0x0afea617, 0xc3cabd1a, + 0x84d94be1, 0x75c64a6c, 0x32d5bc97, 0xfbe1a79a, 0xbcf25161, + 0xb2f897c1, 0xf5eb613a, 0x3cdf7a37, 0x7bcc8ccc, 0x20caf777, + 0x67d9018c, 0xaeed1a81, 0xe9feec7a, 0xe7f42ada, 0xa0e7dc21, + 0x69d3c72c, 0x2ec031d7, 0x956a206c, 0xd279d697, 0x1b4dcd9a, + 0x5c5e3b61, 0x5254fdc1, 0x15470b3a, 0xdc731037, 0x9b60e6cc, + 0xc0669d77, 0x87756b8c, 0x4e417081, 0x0952867a, 0x075840da, + 0x404bb621, 0x897fad2c, 0xce6c5bd7, 0x3f735a5a, 0x7860aca1, + 0xb154b7ac, 0xf6474157, 0xf84d87f7, 0xbf5e710c, 0x766a6a01, + 0x31799cfa, 0x6a7fe741, 0x2d6c11ba, 0xe4580ab7, 0xa34bfc4c, + 0xad413aec, 0xea52cc17, 0x2366d71a, 0x647521e1, 0x1a29d241, + 0x5d3a24ba, 0x940e3fb7, 0xd31dc94c, 0xdd170fec, 0x9a04f917, + 0x5330e21a, 0x142314e1, 0x4f256f5a, 0x083699a1, 0xc10282ac, + 0x86117457, 0x881bb2f7, 0xcf08440c, 0x063c5f01, 0x412fa9fa, + 0xb030a877, 0xf7235e8c, 0x3e174581, 0x7904b37a, 0x770e75da, + 0x301d8321, 0xf929982c, 0xbe3a6ed7, 0xe53c156c, 0xa22fe397, + 0x6b1bf89a, 0x2c080e61, 0x2202c8c1, 0x65113e3a, 0xac252537, + 0xeb36d3cc}, + {0x00000000, 0xa13984ee, 0x99020f9d, 0x383b8b73, 0xe975197b, + 0x484c9d95, 0x707716e6, 0xd14e9208, 0x099b34b7, 0xa8a2b059, + 0x90993b2a, 0x31a0bfc4, 0xe0ee2dcc, 0x41d7a922, 0x79ec2251, + 0xd8d5a6bf, 0x1336696e, 0xb20fed80, 0x8a3466f3, 0x2b0de21d, + 0xfa437015, 0x5b7af4fb, 0x63417f88, 0xc278fb66, 0x1aad5dd9, + 0xbb94d937, 0x83af5244, 0x2296d6aa, 0xf3d844a2, 0x52e1c04c, + 0x6ada4b3f, 0xcbe3cfd1, 0x266cd2dc, 0x87555632, 0xbf6edd41, + 0x1e5759af, 0xcf19cba7, 0x6e204f49, 0x561bc43a, 0xf72240d4, + 0x2ff7e66b, 0x8ece6285, 0xb6f5e9f6, 0x17cc6d18, 0xc682ff10, + 0x67bb7bfe, 0x5f80f08d, 0xfeb97463, 0x355abbb2, 0x94633f5c, + 0xac58b42f, 0x0d6130c1, 0xdc2fa2c9, 0x7d162627, 0x452dad54, + 0xe41429ba, 0x3cc18f05, 0x9df80beb, 0xa5c38098, 0x04fa0476, + 0xd5b4967e, 0x748d1290, 0x4cb699e3, 0xed8f1d0d, 0x4cd9a5b8, + 0xede02156, 0xd5dbaa25, 0x74e22ecb, 0xa5acbcc3, 0x0495382d, + 0x3caeb35e, 0x9d9737b0, 0x4542910f, 0xe47b15e1, 0xdc409e92, + 0x7d791a7c, 0xac378874, 0x0d0e0c9a, 0x353587e9, 0x940c0307, + 0x5fefccd6, 0xfed64838, 0xc6edc34b, 0x67d447a5, 0xb69ad5ad, + 0x17a35143, 0x2f98da30, 0x8ea15ede, 0x5674f861, 0xf74d7c8f, + 0xcf76f7fc, 0x6e4f7312, 0xbf01e11a, 0x1e3865f4, 0x2603ee87, + 0x873a6a69, 0x6ab57764, 0xcb8cf38a, 0xf3b778f9, 0x528efc17, + 0x83c06e1f, 0x22f9eaf1, 0x1ac26182, 0xbbfbe56c, 0x632e43d3, + 0xc217c73d, 0xfa2c4c4e, 0x5b15c8a0, 0x8a5b5aa8, 0x2b62de46, + 0x13595535, 0xb260d1db, 0x79831e0a, 0xd8ba9ae4, 0xe0811197, + 0x41b89579, 0x90f60771, 0x31cf839f, 0x09f408ec, 0xa8cd8c02, + 0x70182abd, 0xd121ae53, 0xe91a2520, 0x4823a1ce, 0x996d33c6, + 0x3854b728, 0x006f3c5b, 0xa156b8b5, 0x99b34b70, 0x388acf9e, + 0x00b144ed, 0xa188c003, 0x70c6520b, 0xd1ffd6e5, 0xe9c45d96, + 0x48fdd978, 0x90287fc7, 0x3111fb29, 0x092a705a, 0xa813f4b4, + 0x795d66bc, 0xd864e252, 0xe05f6921, 0x4166edcf, 0x8a85221e, + 0x2bbca6f0, 0x13872d83, 0xb2bea96d, 0x63f03b65, 0xc2c9bf8b, + 0xfaf234f8, 0x5bcbb016, 0x831e16a9, 0x22279247, 0x1a1c1934, + 0xbb259dda, 0x6a6b0fd2, 0xcb528b3c, 0xf369004f, 0x525084a1, + 0xbfdf99ac, 0x1ee61d42, 0x26dd9631, 0x87e412df, 0x56aa80d7, + 0xf7930439, 0xcfa88f4a, 0x6e910ba4, 0xb644ad1b, 0x177d29f5, + 0x2f46a286, 0x8e7f2668, 0x5f31b460, 0xfe08308e, 0xc633bbfd, + 0x670a3f13, 0xace9f0c2, 0x0dd0742c, 0x35ebff5f, 0x94d27bb1, + 0x459ce9b9, 0xe4a56d57, 0xdc9ee624, 0x7da762ca, 0xa572c475, + 0x044b409b, 0x3c70cbe8, 0x9d494f06, 0x4c07dd0e, 0xed3e59e0, + 0xd505d293, 0x743c567d, 0xd56aeec8, 0x74536a26, 0x4c68e155, + 0xed5165bb, 0x3c1ff7b3, 0x9d26735d, 0xa51df82e, 0x04247cc0, + 0xdcf1da7f, 0x7dc85e91, 0x45f3d5e2, 0xe4ca510c, 0x3584c304, + 0x94bd47ea, 0xac86cc99, 0x0dbf4877, 0xc65c87a6, 0x67650348, + 0x5f5e883b, 0xfe670cd5, 0x2f299edd, 0x8e101a33, 0xb62b9140, + 0x171215ae, 0xcfc7b311, 0x6efe37ff, 0x56c5bc8c, 0xf7fc3862, + 0x26b2aa6a, 0x878b2e84, 0xbfb0a5f7, 0x1e892119, 0xf3063c14, + 0x523fb8fa, 0x6a043389, 0xcb3db767, 0x1a73256f, 0xbb4aa181, + 0x83712af2, 0x2248ae1c, 0xfa9d08a3, 0x5ba48c4d, 0x639f073e, + 0xc2a683d0, 0x13e811d8, 0xb2d19536, 0x8aea1e45, 0x2bd39aab, + 0xe030557a, 0x4109d194, 0x79325ae7, 0xd80bde09, 0x09454c01, + 0xa87cc8ef, 0x9047439c, 0x317ec772, 0xe9ab61cd, 0x4892e523, + 0x70a96e50, 0xd190eabe, 0x00de78b6, 0xa1e7fc58, 0x99dc772b, + 0x38e5f3c5}, + {0x00000000, 0xe81790a1, 0x0b5e2703, 0xe349b7a2, 0x16bc4e06, + 0xfeabdea7, 0x1de26905, 0xf5f5f9a4, 0x2d789c0c, 0xc56f0cad, + 0x2626bb0f, 0xce312bae, 0x3bc4d20a, 0xd3d342ab, 0x309af509, + 0xd88d65a8, 0x5af13818, 0xb2e6a8b9, 0x51af1f1b, 0xb9b88fba, + 0x4c4d761e, 0xa45ae6bf, 0x4713511d, 0xaf04c1bc, 0x7789a414, + 0x9f9e34b5, 0x7cd78317, 0x94c013b6, 0x6135ea12, 0x89227ab3, + 0x6a6bcd11, 0x827c5db0, 0xb5e27030, 0x5df5e091, 0xbebc5733, + 0x56abc792, 0xa35e3e36, 0x4b49ae97, 0xa8001935, 0x40178994, + 0x989aec3c, 0x708d7c9d, 0x93c4cb3f, 0x7bd35b9e, 0x8e26a23a, + 0x6631329b, 0x85788539, 0x6d6f1598, 0xef134828, 0x0704d889, + 0xe44d6f2b, 0x0c5aff8a, 0xf9af062e, 0x11b8968f, 0xf2f1212d, + 0x1ae6b18c, 0xc26bd424, 0x2a7c4485, 0xc935f327, 0x21226386, + 0xd4d79a22, 0x3cc00a83, 0xdf89bd21, 0x379e2d80, 0xb0b5e621, + 0x58a27680, 0xbbebc122, 0x53fc5183, 0xa609a827, 0x4e1e3886, + 0xad578f24, 0x45401f85, 0x9dcd7a2d, 0x75daea8c, 0x96935d2e, + 0x7e84cd8f, 0x8b71342b, 0x6366a48a, 0x802f1328, 0x68388389, + 0xea44de39, 0x02534e98, 0xe11af93a, 0x090d699b, 0xfcf8903f, + 0x14ef009e, 0xf7a6b73c, 0x1fb1279d, 0xc73c4235, 0x2f2bd294, + 0xcc626536, 0x2475f597, 0xd1800c33, 0x39979c92, 0xdade2b30, + 0x32c9bb91, 0x05579611, 0xed4006b0, 0x0e09b112, 0xe61e21b3, + 0x13ebd817, 0xfbfc48b6, 0x18b5ff14, 0xf0a26fb5, 0x282f0a1d, + 0xc0389abc, 0x23712d1e, 0xcb66bdbf, 0x3e93441b, 0xd684d4ba, + 0x35cd6318, 0xdddaf3b9, 0x5fa6ae09, 0xb7b13ea8, 0x54f8890a, + 0xbcef19ab, 0x491ae00f, 0xa10d70ae, 0x4244c70c, 0xaa5357ad, + 0x72de3205, 0x9ac9a2a4, 0x79801506, 0x919785a7, 0x64627c03, + 0x8c75eca2, 0x6f3c5b00, 0x872bcba1, 0xba1aca03, 0x520d5aa2, + 0xb144ed00, 0x59537da1, 0xaca68405, 0x44b114a4, 0xa7f8a306, + 0x4fef33a7, 0x9762560f, 0x7f75c6ae, 0x9c3c710c, 0x742be1ad, + 0x81de1809, 0x69c988a8, 0x8a803f0a, 0x6297afab, 0xe0ebf21b, + 0x08fc62ba, 0xebb5d518, 0x03a245b9, 0xf657bc1d, 0x1e402cbc, + 0xfd099b1e, 0x151e0bbf, 0xcd936e17, 0x2584feb6, 0xc6cd4914, + 0x2edad9b5, 0xdb2f2011, 0x3338b0b0, 0xd0710712, 0x386697b3, + 0x0ff8ba33, 0xe7ef2a92, 0x04a69d30, 0xecb10d91, 0x1944f435, + 0xf1536494, 0x121ad336, 0xfa0d4397, 0x2280263f, 0xca97b69e, + 0x29de013c, 0xc1c9919d, 0x343c6839, 0xdc2bf898, 0x3f624f3a, + 0xd775df9b, 0x5509822b, 0xbd1e128a, 0x5e57a528, 0xb6403589, + 0x43b5cc2d, 0xaba25c8c, 0x48ebeb2e, 0xa0fc7b8f, 0x78711e27, + 0x90668e86, 0x732f3924, 0x9b38a985, 0x6ecd5021, 0x86dac080, + 0x65937722, 0x8d84e783, 0x0aaf2c22, 0xe2b8bc83, 0x01f10b21, + 0xe9e69b80, 0x1c136224, 0xf404f285, 0x174d4527, 0xff5ad586, + 0x27d7b02e, 0xcfc0208f, 0x2c89972d, 0xc49e078c, 0x316bfe28, + 0xd97c6e89, 0x3a35d92b, 0xd222498a, 0x505e143a, 0xb849849b, + 0x5b003339, 0xb317a398, 0x46e25a3c, 0xaef5ca9d, 0x4dbc7d3f, + 0xa5abed9e, 0x7d268836, 0x95311897, 0x7678af35, 0x9e6f3f94, + 0x6b9ac630, 0x838d5691, 0x60c4e133, 0x88d37192, 0xbf4d5c12, + 0x575accb3, 0xb4137b11, 0x5c04ebb0, 0xa9f11214, 0x41e682b5, + 0xa2af3517, 0x4ab8a5b6, 0x9235c01e, 0x7a2250bf, 0x996be71d, + 0x717c77bc, 0x84898e18, 0x6c9e1eb9, 0x8fd7a91b, 0x67c039ba, + 0xe5bc640a, 0x0dabf4ab, 0xeee24309, 0x06f5d3a8, 0xf3002a0c, + 0x1b17baad, 0xf85e0d0f, 0x10499dae, 0xc8c4f806, 0x20d368a7, + 0xc39adf05, 0x2b8d4fa4, 0xde78b600, 0x366f26a1, 0xd5269103, + 0x3d3101a2}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x0000000000000000, 0xa19017e800000000, 0x03275e0b00000000, + 0xa2b749e300000000, 0x064ebc1600000000, 0xa7deabfe00000000, + 0x0569e21d00000000, 0xa4f9f5f500000000, 0x0c9c782d00000000, + 0xad0c6fc500000000, 0x0fbb262600000000, 0xae2b31ce00000000, + 0x0ad2c43b00000000, 0xab42d3d300000000, 0x09f59a3000000000, + 0xa8658dd800000000, 0x1838f15a00000000, 0xb9a8e6b200000000, + 0x1b1faf5100000000, 0xba8fb8b900000000, 0x1e764d4c00000000, + 0xbfe65aa400000000, 0x1d51134700000000, 0xbcc104af00000000, + 0x14a4897700000000, 0xb5349e9f00000000, 0x1783d77c00000000, + 0xb613c09400000000, 0x12ea356100000000, 0xb37a228900000000, + 0x11cd6b6a00000000, 0xb05d7c8200000000, 0x3070e2b500000000, + 0x91e0f55d00000000, 0x3357bcbe00000000, 0x92c7ab5600000000, + 0x363e5ea300000000, 0x97ae494b00000000, 0x351900a800000000, + 0x9489174000000000, 0x3cec9a9800000000, 0x9d7c8d7000000000, + 0x3fcbc49300000000, 0x9e5bd37b00000000, 0x3aa2268e00000000, + 0x9b32316600000000, 0x3985788500000000, 0x98156f6d00000000, + 0x284813ef00000000, 0x89d8040700000000, 0x2b6f4de400000000, + 0x8aff5a0c00000000, 0x2e06aff900000000, 0x8f96b81100000000, + 0x2d21f1f200000000, 0x8cb1e61a00000000, 0x24d46bc200000000, + 0x85447c2a00000000, 0x27f335c900000000, 0x8663222100000000, + 0x229ad7d400000000, 0x830ac03c00000000, 0x21bd89df00000000, + 0x802d9e3700000000, 0x21e6b5b000000000, 0x8076a25800000000, + 0x22c1ebbb00000000, 0x8351fc5300000000, 0x27a809a600000000, + 0x86381e4e00000000, 0x248f57ad00000000, 0x851f404500000000, + 0x2d7acd9d00000000, 0x8ceada7500000000, 0x2e5d939600000000, + 0x8fcd847e00000000, 0x2b34718b00000000, 0x8aa4666300000000, + 0x28132f8000000000, 0x8983386800000000, 0x39de44ea00000000, + 0x984e530200000000, 0x3af91ae100000000, 0x9b690d0900000000, + 0x3f90f8fc00000000, 0x9e00ef1400000000, 0x3cb7a6f700000000, + 0x9d27b11f00000000, 0x35423cc700000000, 0x94d22b2f00000000, + 0x366562cc00000000, 0x97f5752400000000, 0x330c80d100000000, + 0x929c973900000000, 0x302bdeda00000000, 0x91bbc93200000000, + 0x1196570500000000, 0xb00640ed00000000, 0x12b1090e00000000, + 0xb3211ee600000000, 0x17d8eb1300000000, 0xb648fcfb00000000, + 0x14ffb51800000000, 0xb56fa2f000000000, 0x1d0a2f2800000000, + 0xbc9a38c000000000, 0x1e2d712300000000, 0xbfbd66cb00000000, + 0x1b44933e00000000, 0xbad484d600000000, 0x1863cd3500000000, + 0xb9f3dadd00000000, 0x09aea65f00000000, 0xa83eb1b700000000, + 0x0a89f85400000000, 0xab19efbc00000000, 0x0fe01a4900000000, + 0xae700da100000000, 0x0cc7444200000000, 0xad5753aa00000000, + 0x0532de7200000000, 0xa4a2c99a00000000, 0x0615807900000000, + 0xa785979100000000, 0x037c626400000000, 0xa2ec758c00000000, + 0x005b3c6f00000000, 0xa1cb2b8700000000, 0x03ca1aba00000000, + 0xa25a0d5200000000, 0x00ed44b100000000, 0xa17d535900000000, + 0x0584a6ac00000000, 0xa414b14400000000, 0x06a3f8a700000000, + 0xa733ef4f00000000, 0x0f56629700000000, 0xaec6757f00000000, + 0x0c713c9c00000000, 0xade12b7400000000, 0x0918de8100000000, + 0xa888c96900000000, 0x0a3f808a00000000, 0xabaf976200000000, + 0x1bf2ebe000000000, 0xba62fc0800000000, 0x18d5b5eb00000000, + 0xb945a20300000000, 0x1dbc57f600000000, 0xbc2c401e00000000, + 0x1e9b09fd00000000, 0xbf0b1e1500000000, 0x176e93cd00000000, + 0xb6fe842500000000, 0x1449cdc600000000, 0xb5d9da2e00000000, + 0x11202fdb00000000, 0xb0b0383300000000, 0x120771d000000000, + 0xb397663800000000, 0x33baf80f00000000, 0x922aefe700000000, + 0x309da60400000000, 0x910db1ec00000000, 0x35f4441900000000, + 0x946453f100000000, 0x36d31a1200000000, 0x97430dfa00000000, + 0x3f26802200000000, 0x9eb697ca00000000, 0x3c01de2900000000, + 0x9d91c9c100000000, 0x39683c3400000000, 0x98f82bdc00000000, + 0x3a4f623f00000000, 0x9bdf75d700000000, 0x2b82095500000000, + 0x8a121ebd00000000, 0x28a5575e00000000, 0x893540b600000000, + 0x2dccb54300000000, 0x8c5ca2ab00000000, 0x2eebeb4800000000, + 0x8f7bfca000000000, 0x271e717800000000, 0x868e669000000000, + 0x24392f7300000000, 0x85a9389b00000000, 0x2150cd6e00000000, + 0x80c0da8600000000, 0x2277936500000000, 0x83e7848d00000000, + 0x222caf0a00000000, 0x83bcb8e200000000, 0x210bf10100000000, + 0x809be6e900000000, 0x2462131c00000000, 0x85f204f400000000, + 0x27454d1700000000, 0x86d55aff00000000, 0x2eb0d72700000000, + 0x8f20c0cf00000000, 0x2d97892c00000000, 0x8c079ec400000000, + 0x28fe6b3100000000, 0x896e7cd900000000, 0x2bd9353a00000000, + 0x8a4922d200000000, 0x3a145e5000000000, 0x9b8449b800000000, + 0x3933005b00000000, 0x98a317b300000000, 0x3c5ae24600000000, + 0x9dcaf5ae00000000, 0x3f7dbc4d00000000, 0x9eedaba500000000, + 0x3688267d00000000, 0x9718319500000000, 0x35af787600000000, + 0x943f6f9e00000000, 0x30c69a6b00000000, 0x91568d8300000000, + 0x33e1c46000000000, 0x9271d38800000000, 0x125c4dbf00000000, + 0xb3cc5a5700000000, 0x117b13b400000000, 0xb0eb045c00000000, + 0x1412f1a900000000, 0xb582e64100000000, 0x1735afa200000000, + 0xb6a5b84a00000000, 0x1ec0359200000000, 0xbf50227a00000000, + 0x1de76b9900000000, 0xbc777c7100000000, 0x188e898400000000, + 0xb91e9e6c00000000, 0x1ba9d78f00000000, 0xba39c06700000000, + 0x0a64bce500000000, 0xabf4ab0d00000000, 0x0943e2ee00000000, + 0xa8d3f50600000000, 0x0c2a00f300000000, 0xadba171b00000000, + 0x0f0d5ef800000000, 0xae9d491000000000, 0x06f8c4c800000000, + 0xa768d32000000000, 0x05df9ac300000000, 0xa44f8d2b00000000, + 0x00b678de00000000, 0xa1266f3600000000, 0x039126d500000000, + 0xa201313d00000000}, + {0x0000000000000000, 0xee8439a100000000, 0x9d0f029900000000, + 0x738b3b3800000000, 0x7b1975e900000000, 0x959d4c4800000000, + 0xe616777000000000, 0x08924ed100000000, 0xb7349b0900000000, + 0x59b0a2a800000000, 0x2a3b999000000000, 0xc4bfa03100000000, + 0xcc2deee000000000, 0x22a9d74100000000, 0x5122ec7900000000, + 0xbfa6d5d800000000, 0x6e69361300000000, 0x80ed0fb200000000, + 0xf366348a00000000, 0x1de20d2b00000000, 0x157043fa00000000, + 0xfbf47a5b00000000, 0x887f416300000000, 0x66fb78c200000000, + 0xd95dad1a00000000, 0x37d994bb00000000, 0x4452af8300000000, + 0xaad6962200000000, 0xa244d8f300000000, 0x4cc0e15200000000, + 0x3f4bda6a00000000, 0xd1cfe3cb00000000, 0xdcd26c2600000000, + 0x3256558700000000, 0x41dd6ebf00000000, 0xaf59571e00000000, + 0xa7cb19cf00000000, 0x494f206e00000000, 0x3ac41b5600000000, + 0xd44022f700000000, 0x6be6f72f00000000, 0x8562ce8e00000000, + 0xf6e9f5b600000000, 0x186dcc1700000000, 0x10ff82c600000000, + 0xfe7bbb6700000000, 0x8df0805f00000000, 0x6374b9fe00000000, + 0xb2bb5a3500000000, 0x5c3f639400000000, 0x2fb458ac00000000, + 0xc130610d00000000, 0xc9a22fdc00000000, 0x2726167d00000000, + 0x54ad2d4500000000, 0xba2914e400000000, 0x058fc13c00000000, + 0xeb0bf89d00000000, 0x9880c3a500000000, 0x7604fa0400000000, + 0x7e96b4d500000000, 0x90128d7400000000, 0xe399b64c00000000, + 0x0d1d8fed00000000, 0xb8a5d94c00000000, 0x5621e0ed00000000, + 0x25aadbd500000000, 0xcb2ee27400000000, 0xc3bcaca500000000, + 0x2d38950400000000, 0x5eb3ae3c00000000, 0xb037979d00000000, + 0x0f91424500000000, 0xe1157be400000000, 0x929e40dc00000000, + 0x7c1a797d00000000, 0x748837ac00000000, 0x9a0c0e0d00000000, + 0xe987353500000000, 0x07030c9400000000, 0xd6ccef5f00000000, + 0x3848d6fe00000000, 0x4bc3edc600000000, 0xa547d46700000000, + 0xadd59ab600000000, 0x4351a31700000000, 0x30da982f00000000, + 0xde5ea18e00000000, 0x61f8745600000000, 0x8f7c4df700000000, + 0xfcf776cf00000000, 0x12734f6e00000000, 0x1ae101bf00000000, + 0xf465381e00000000, 0x87ee032600000000, 0x696a3a8700000000, + 0x6477b56a00000000, 0x8af38ccb00000000, 0xf978b7f300000000, + 0x17fc8e5200000000, 0x1f6ec08300000000, 0xf1eaf92200000000, + 0x8261c21a00000000, 0x6ce5fbbb00000000, 0xd3432e6300000000, + 0x3dc717c200000000, 0x4e4c2cfa00000000, 0xa0c8155b00000000, + 0xa85a5b8a00000000, 0x46de622b00000000, 0x3555591300000000, + 0xdbd160b200000000, 0x0a1e837900000000, 0xe49abad800000000, + 0x971181e000000000, 0x7995b84100000000, 0x7107f69000000000, + 0x9f83cf3100000000, 0xec08f40900000000, 0x028ccda800000000, + 0xbd2a187000000000, 0x53ae21d100000000, 0x20251ae900000000, + 0xcea1234800000000, 0xc6336d9900000000, 0x28b7543800000000, + 0x5b3c6f0000000000, 0xb5b856a100000000, 0x704bb39900000000, + 0x9ecf8a3800000000, 0xed44b10000000000, 0x03c088a100000000, + 0x0b52c67000000000, 0xe5d6ffd100000000, 0x965dc4e900000000, + 0x78d9fd4800000000, 0xc77f289000000000, 0x29fb113100000000, + 0x5a702a0900000000, 0xb4f413a800000000, 0xbc665d7900000000, + 0x52e264d800000000, 0x21695fe000000000, 0xcfed664100000000, + 0x1e22858a00000000, 0xf0a6bc2b00000000, 0x832d871300000000, + 0x6da9beb200000000, 0x653bf06300000000, 0x8bbfc9c200000000, + 0xf834f2fa00000000, 0x16b0cb5b00000000, 0xa9161e8300000000, + 0x4792272200000000, 0x34191c1a00000000, 0xda9d25bb00000000, + 0xd20f6b6a00000000, 0x3c8b52cb00000000, 0x4f0069f300000000, + 0xa184505200000000, 0xac99dfbf00000000, 0x421de61e00000000, + 0x3196dd2600000000, 0xdf12e48700000000, 0xd780aa5600000000, + 0x390493f700000000, 0x4a8fa8cf00000000, 0xa40b916e00000000, + 0x1bad44b600000000, 0xf5297d1700000000, 0x86a2462f00000000, + 0x68267f8e00000000, 0x60b4315f00000000, 0x8e3008fe00000000, + 0xfdbb33c600000000, 0x133f0a6700000000, 0xc2f0e9ac00000000, + 0x2c74d00d00000000, 0x5fffeb3500000000, 0xb17bd29400000000, + 0xb9e99c4500000000, 0x576da5e400000000, 0x24e69edc00000000, + 0xca62a77d00000000, 0x75c472a500000000, 0x9b404b0400000000, + 0xe8cb703c00000000, 0x064f499d00000000, 0x0edd074c00000000, + 0xe0593eed00000000, 0x93d205d500000000, 0x7d563c7400000000, + 0xc8ee6ad500000000, 0x266a537400000000, 0x55e1684c00000000, + 0xbb6551ed00000000, 0xb3f71f3c00000000, 0x5d73269d00000000, + 0x2ef81da500000000, 0xc07c240400000000, 0x7fdaf1dc00000000, + 0x915ec87d00000000, 0xe2d5f34500000000, 0x0c51cae400000000, + 0x04c3843500000000, 0xea47bd9400000000, 0x99cc86ac00000000, + 0x7748bf0d00000000, 0xa6875cc600000000, 0x4803656700000000, + 0x3b885e5f00000000, 0xd50c67fe00000000, 0xdd9e292f00000000, + 0x331a108e00000000, 0x40912bb600000000, 0xae15121700000000, + 0x11b3c7cf00000000, 0xff37fe6e00000000, 0x8cbcc55600000000, + 0x6238fcf700000000, 0x6aaab22600000000, 0x842e8b8700000000, + 0xf7a5b0bf00000000, 0x1921891e00000000, 0x143c06f300000000, + 0xfab83f5200000000, 0x8933046a00000000, 0x67b73dcb00000000, + 0x6f25731a00000000, 0x81a14abb00000000, 0xf22a718300000000, + 0x1cae482200000000, 0xa3089dfa00000000, 0x4d8ca45b00000000, + 0x3e079f6300000000, 0xd083a6c200000000, 0xd811e81300000000, + 0x3695d1b200000000, 0x451eea8a00000000, 0xab9ad32b00000000, + 0x7a5530e000000000, 0x94d1094100000000, 0xe75a327900000000, + 0x09de0bd800000000, 0x014c450900000000, 0xefc87ca800000000, + 0x9c43479000000000, 0x72c77e3100000000, 0xcd61abe900000000, + 0x23e5924800000000, 0x506ea97000000000, 0xbeea90d100000000, + 0xb678de0000000000, 0x58fce7a100000000, 0x2b77dc9900000000, + 0xc5f3e53800000000}, + {0x0000000000000000, 0xfbf6134700000000, 0xf6ed278e00000000, + 0x0d1b34c900000000, 0xaddd3ec700000000, 0x562b2d8000000000, + 0x5b30194900000000, 0xa0c60a0e00000000, 0x1bbd0c5500000000, + 0xe04b1f1200000000, 0xed502bdb00000000, 0x16a6389c00000000, + 0xb660329200000000, 0x4d9621d500000000, 0x408d151c00000000, + 0xbb7b065b00000000, 0x367a19aa00000000, 0xcd8c0aed00000000, + 0xc0973e2400000000, 0x3b612d6300000000, 0x9ba7276d00000000, + 0x6051342a00000000, 0x6d4a00e300000000, 0x96bc13a400000000, + 0x2dc715ff00000000, 0xd63106b800000000, 0xdb2a327100000000, + 0x20dc213600000000, 0x801a2b3800000000, 0x7bec387f00000000, + 0x76f70cb600000000, 0x8d011ff100000000, 0x2df2438f00000000, + 0xd60450c800000000, 0xdb1f640100000000, 0x20e9774600000000, + 0x802f7d4800000000, 0x7bd96e0f00000000, 0x76c25ac600000000, + 0x8d34498100000000, 0x364f4fda00000000, 0xcdb95c9d00000000, + 0xc0a2685400000000, 0x3b547b1300000000, 0x9b92711d00000000, + 0x6064625a00000000, 0x6d7f569300000000, 0x968945d400000000, + 0x1b885a2500000000, 0xe07e496200000000, 0xed657dab00000000, + 0x16936eec00000000, 0xb65564e200000000, 0x4da377a500000000, + 0x40b8436c00000000, 0xbb4e502b00000000, 0x0035567000000000, + 0xfbc3453700000000, 0xf6d871fe00000000, 0x0d2e62b900000000, + 0xade868b700000000, 0x561e7bf000000000, 0x5b054f3900000000, + 0xa0f35c7e00000000, 0x1be2f6c500000000, 0xe014e58200000000, + 0xed0fd14b00000000, 0x16f9c20c00000000, 0xb63fc80200000000, + 0x4dc9db4500000000, 0x40d2ef8c00000000, 0xbb24fccb00000000, + 0x005ffa9000000000, 0xfba9e9d700000000, 0xf6b2dd1e00000000, + 0x0d44ce5900000000, 0xad82c45700000000, 0x5674d71000000000, + 0x5b6fe3d900000000, 0xa099f09e00000000, 0x2d98ef6f00000000, + 0xd66efc2800000000, 0xdb75c8e100000000, 0x2083dba600000000, + 0x8045d1a800000000, 0x7bb3c2ef00000000, 0x76a8f62600000000, + 0x8d5ee56100000000, 0x3625e33a00000000, 0xcdd3f07d00000000, + 0xc0c8c4b400000000, 0x3b3ed7f300000000, 0x9bf8ddfd00000000, + 0x600eceba00000000, 0x6d15fa7300000000, 0x96e3e93400000000, + 0x3610b54a00000000, 0xcde6a60d00000000, 0xc0fd92c400000000, + 0x3b0b818300000000, 0x9bcd8b8d00000000, 0x603b98ca00000000, + 0x6d20ac0300000000, 0x96d6bf4400000000, 0x2dadb91f00000000, + 0xd65baa5800000000, 0xdb409e9100000000, 0x20b68dd600000000, + 0x807087d800000000, 0x7b86949f00000000, 0x769da05600000000, + 0x8d6bb31100000000, 0x006aace000000000, 0xfb9cbfa700000000, + 0xf6878b6e00000000, 0x0d71982900000000, 0xadb7922700000000, + 0x5641816000000000, 0x5b5ab5a900000000, 0xa0aca6ee00000000, + 0x1bd7a0b500000000, 0xe021b3f200000000, 0xed3a873b00000000, + 0x16cc947c00000000, 0xb60a9e7200000000, 0x4dfc8d3500000000, + 0x40e7b9fc00000000, 0xbb11aabb00000000, 0x77c29c5000000000, + 0x8c348f1700000000, 0x812fbbde00000000, 0x7ad9a89900000000, + 0xda1fa29700000000, 0x21e9b1d000000000, 0x2cf2851900000000, + 0xd704965e00000000, 0x6c7f900500000000, 0x9789834200000000, + 0x9a92b78b00000000, 0x6164a4cc00000000, 0xc1a2aec200000000, + 0x3a54bd8500000000, 0x374f894c00000000, 0xccb99a0b00000000, + 0x41b885fa00000000, 0xba4e96bd00000000, 0xb755a27400000000, + 0x4ca3b13300000000, 0xec65bb3d00000000, 0x1793a87a00000000, + 0x1a889cb300000000, 0xe17e8ff400000000, 0x5a0589af00000000, + 0xa1f39ae800000000, 0xace8ae2100000000, 0x571ebd6600000000, + 0xf7d8b76800000000, 0x0c2ea42f00000000, 0x013590e600000000, + 0xfac383a100000000, 0x5a30dfdf00000000, 0xa1c6cc9800000000, + 0xacddf85100000000, 0x572beb1600000000, 0xf7ede11800000000, + 0x0c1bf25f00000000, 0x0100c69600000000, 0xfaf6d5d100000000, + 0x418dd38a00000000, 0xba7bc0cd00000000, 0xb760f40400000000, + 0x4c96e74300000000, 0xec50ed4d00000000, 0x17a6fe0a00000000, + 0x1abdcac300000000, 0xe14bd98400000000, 0x6c4ac67500000000, + 0x97bcd53200000000, 0x9aa7e1fb00000000, 0x6151f2bc00000000, + 0xc197f8b200000000, 0x3a61ebf500000000, 0x377adf3c00000000, + 0xcc8ccc7b00000000, 0x77f7ca2000000000, 0x8c01d96700000000, + 0x811aedae00000000, 0x7aecfee900000000, 0xda2af4e700000000, + 0x21dce7a000000000, 0x2cc7d36900000000, 0xd731c02e00000000, + 0x6c206a9500000000, 0x97d679d200000000, 0x9acd4d1b00000000, + 0x613b5e5c00000000, 0xc1fd545200000000, 0x3a0b471500000000, + 0x371073dc00000000, 0xcce6609b00000000, 0x779d66c000000000, + 0x8c6b758700000000, 0x8170414e00000000, 0x7a86520900000000, + 0xda40580700000000, 0x21b64b4000000000, 0x2cad7f8900000000, + 0xd75b6cce00000000, 0x5a5a733f00000000, 0xa1ac607800000000, + 0xacb754b100000000, 0x574147f600000000, 0xf7874df800000000, + 0x0c715ebf00000000, 0x016a6a7600000000, 0xfa9c793100000000, + 0x41e77f6a00000000, 0xba116c2d00000000, 0xb70a58e400000000, + 0x4cfc4ba300000000, 0xec3a41ad00000000, 0x17cc52ea00000000, + 0x1ad7662300000000, 0xe121756400000000, 0x41d2291a00000000, + 0xba243a5d00000000, 0xb73f0e9400000000, 0x4cc91dd300000000, + 0xec0f17dd00000000, 0x17f9049a00000000, 0x1ae2305300000000, + 0xe114231400000000, 0x5a6f254f00000000, 0xa199360800000000, + 0xac8202c100000000, 0x5774118600000000, 0xf7b21b8800000000, + 0x0c4408cf00000000, 0x015f3c0600000000, 0xfaa92f4100000000, + 0x77a830b000000000, 0x8c5e23f700000000, 0x8145173e00000000, + 0x7ab3047900000000, 0xda750e7700000000, 0x21831d3000000000, + 0x2c9829f900000000, 0xd76e3abe00000000, 0x6c153ce500000000, + 0x97e32fa200000000, 0x9af81b6b00000000, 0x610e082c00000000, + 0xc1c8022200000000, 0x3a3e116500000000, 0x372525ac00000000, + 0xccd336eb00000000}, + {0x0000000000000000, 0x6238282a00000000, 0xc470505400000000, + 0xa648787e00000000, 0x88e1a0a800000000, 0xead9888200000000, + 0x4c91f0fc00000000, 0x2ea9d8d600000000, 0x51c5308a00000000, + 0x33fd18a000000000, 0x95b560de00000000, 0xf78d48f400000000, + 0xd924902200000000, 0xbb1cb80800000000, 0x1d54c07600000000, + 0x7f6ce85c00000000, 0xe38c10cf00000000, 0x81b438e500000000, + 0x27fc409b00000000, 0x45c468b100000000, 0x6b6db06700000000, + 0x0955984d00000000, 0xaf1de03300000000, 0xcd25c81900000000, + 0xb249204500000000, 0xd071086f00000000, 0x7639701100000000, + 0x1401583b00000000, 0x3aa880ed00000000, 0x5890a8c700000000, + 0xfed8d0b900000000, 0x9ce0f89300000000, 0x871f504500000000, + 0xe527786f00000000, 0x436f001100000000, 0x2157283b00000000, + 0x0ffef0ed00000000, 0x6dc6d8c700000000, 0xcb8ea0b900000000, + 0xa9b6889300000000, 0xd6da60cf00000000, 0xb4e248e500000000, + 0x12aa309b00000000, 0x709218b100000000, 0x5e3bc06700000000, + 0x3c03e84d00000000, 0x9a4b903300000000, 0xf873b81900000000, + 0x6493408a00000000, 0x06ab68a000000000, 0xa0e310de00000000, + 0xc2db38f400000000, 0xec72e02200000000, 0x8e4ac80800000000, + 0x2802b07600000000, 0x4a3a985c00000000, 0x3556700000000000, + 0x576e582a00000000, 0xf126205400000000, 0x931e087e00000000, + 0xbdb7d0a800000000, 0xdf8ff88200000000, 0x79c780fc00000000, + 0x1bffa8d600000000, 0x0e3fa08a00000000, 0x6c0788a000000000, + 0xca4ff0de00000000, 0xa877d8f400000000, 0x86de002200000000, + 0xe4e6280800000000, 0x42ae507600000000, 0x2096785c00000000, + 0x5ffa900000000000, 0x3dc2b82a00000000, 0x9b8ac05400000000, + 0xf9b2e87e00000000, 0xd71b30a800000000, 0xb523188200000000, + 0x136b60fc00000000, 0x715348d600000000, 0xedb3b04500000000, + 0x8f8b986f00000000, 0x29c3e01100000000, 0x4bfbc83b00000000, + 0x655210ed00000000, 0x076a38c700000000, 0xa12240b900000000, + 0xc31a689300000000, 0xbc7680cf00000000, 0xde4ea8e500000000, + 0x7806d09b00000000, 0x1a3ef8b100000000, 0x3497206700000000, + 0x56af084d00000000, 0xf0e7703300000000, 0x92df581900000000, + 0x8920f0cf00000000, 0xeb18d8e500000000, 0x4d50a09b00000000, + 0x2f6888b100000000, 0x01c1506700000000, 0x63f9784d00000000, + 0xc5b1003300000000, 0xa789281900000000, 0xd8e5c04500000000, + 0xbadde86f00000000, 0x1c95901100000000, 0x7eadb83b00000000, + 0x500460ed00000000, 0x323c48c700000000, 0x947430b900000000, + 0xf64c189300000000, 0x6aace00000000000, 0x0894c82a00000000, + 0xaedcb05400000000, 0xcce4987e00000000, 0xe24d40a800000000, + 0x8075688200000000, 0x263d10fc00000000, 0x440538d600000000, + 0x3b69d08a00000000, 0x5951f8a000000000, 0xff1980de00000000, + 0x9d21a8f400000000, 0xb388702200000000, 0xd1b0580800000000, + 0x77f8207600000000, 0x15c0085c00000000, 0x5d7831ce00000000, + 0x3f4019e400000000, 0x9908619a00000000, 0xfb3049b000000000, + 0xd599916600000000, 0xb7a1b94c00000000, 0x11e9c13200000000, + 0x73d1e91800000000, 0x0cbd014400000000, 0x6e85296e00000000, + 0xc8cd511000000000, 0xaaf5793a00000000, 0x845ca1ec00000000, + 0xe66489c600000000, 0x402cf1b800000000, 0x2214d99200000000, + 0xbef4210100000000, 0xdccc092b00000000, 0x7a84715500000000, + 0x18bc597f00000000, 0x361581a900000000, 0x542da98300000000, + 0xf265d1fd00000000, 0x905df9d700000000, 0xef31118b00000000, + 0x8d0939a100000000, 0x2b4141df00000000, 0x497969f500000000, + 0x67d0b12300000000, 0x05e8990900000000, 0xa3a0e17700000000, + 0xc198c95d00000000, 0xda67618b00000000, 0xb85f49a100000000, + 0x1e1731df00000000, 0x7c2f19f500000000, 0x5286c12300000000, + 0x30bee90900000000, 0x96f6917700000000, 0xf4ceb95d00000000, + 0x8ba2510100000000, 0xe99a792b00000000, 0x4fd2015500000000, + 0x2dea297f00000000, 0x0343f1a900000000, 0x617bd98300000000, + 0xc733a1fd00000000, 0xa50b89d700000000, 0x39eb714400000000, + 0x5bd3596e00000000, 0xfd9b211000000000, 0x9fa3093a00000000, + 0xb10ad1ec00000000, 0xd332f9c600000000, 0x757a81b800000000, + 0x1742a99200000000, 0x682e41ce00000000, 0x0a1669e400000000, + 0xac5e119a00000000, 0xce6639b000000000, 0xe0cfe16600000000, + 0x82f7c94c00000000, 0x24bfb13200000000, 0x4687991800000000, + 0x5347914400000000, 0x317fb96e00000000, 0x9737c11000000000, + 0xf50fe93a00000000, 0xdba631ec00000000, 0xb99e19c600000000, + 0x1fd661b800000000, 0x7dee499200000000, 0x0282a1ce00000000, + 0x60ba89e400000000, 0xc6f2f19a00000000, 0xa4cad9b000000000, + 0x8a63016600000000, 0xe85b294c00000000, 0x4e13513200000000, + 0x2c2b791800000000, 0xb0cb818b00000000, 0xd2f3a9a100000000, + 0x74bbd1df00000000, 0x1683f9f500000000, 0x382a212300000000, + 0x5a12090900000000, 0xfc5a717700000000, 0x9e62595d00000000, + 0xe10eb10100000000, 0x8336992b00000000, 0x257ee15500000000, + 0x4746c97f00000000, 0x69ef11a900000000, 0x0bd7398300000000, + 0xad9f41fd00000000, 0xcfa769d700000000, 0xd458c10100000000, + 0xb660e92b00000000, 0x1028915500000000, 0x7210b97f00000000, + 0x5cb961a900000000, 0x3e81498300000000, 0x98c931fd00000000, + 0xfaf119d700000000, 0x859df18b00000000, 0xe7a5d9a100000000, + 0x41eda1df00000000, 0x23d589f500000000, 0x0d7c512300000000, + 0x6f44790900000000, 0xc90c017700000000, 0xab34295d00000000, + 0x37d4d1ce00000000, 0x55ecf9e400000000, 0xf3a4819a00000000, + 0x919ca9b000000000, 0xbf35716600000000, 0xdd0d594c00000000, + 0x7b45213200000000, 0x197d091800000000, 0x6611e14400000000, + 0x0429c96e00000000, 0xa261b11000000000, 0xc059993a00000000, + 0xeef041ec00000000, 0x8cc869c600000000, 0x2a8011b800000000, + 0x48b8399200000000}, + {0x0000000000000000, 0x4c2896a300000000, 0xd9565d9c00000000, + 0x957ecb3f00000000, 0xf3abcbe300000000, 0xbf835d4000000000, + 0x2afd967f00000000, 0x66d500dc00000000, 0xa751e61c00000000, + 0xeb7970bf00000000, 0x7e07bb8000000000, 0x322f2d2300000000, + 0x54fa2dff00000000, 0x18d2bb5c00000000, 0x8dac706300000000, + 0xc184e6c000000000, 0x4ea3cc3900000000, 0x028b5a9a00000000, + 0x97f591a500000000, 0xdbdd070600000000, 0xbd0807da00000000, + 0xf120917900000000, 0x645e5a4600000000, 0x2876cce500000000, + 0xe9f22a2500000000, 0xa5dabc8600000000, 0x30a477b900000000, + 0x7c8ce11a00000000, 0x1a59e1c600000000, 0x5671776500000000, + 0xc30fbc5a00000000, 0x8f272af900000000, 0x9c46997300000000, + 0xd06e0fd000000000, 0x4510c4ef00000000, 0x0938524c00000000, + 0x6fed529000000000, 0x23c5c43300000000, 0xb6bb0f0c00000000, + 0xfa9399af00000000, 0x3b177f6f00000000, 0x773fe9cc00000000, + 0xe24122f300000000, 0xae69b45000000000, 0xc8bcb48c00000000, + 0x8494222f00000000, 0x11eae91000000000, 0x5dc27fb300000000, + 0xd2e5554a00000000, 0x9ecdc3e900000000, 0x0bb308d600000000, + 0x479b9e7500000000, 0x214e9ea900000000, 0x6d66080a00000000, + 0xf818c33500000000, 0xb430559600000000, 0x75b4b35600000000, + 0x399c25f500000000, 0xace2eeca00000000, 0xe0ca786900000000, + 0x861f78b500000000, 0xca37ee1600000000, 0x5f49252900000000, + 0x1361b38a00000000, 0x388d32e700000000, 0x74a5a44400000000, + 0xe1db6f7b00000000, 0xadf3f9d800000000, 0xcb26f90400000000, + 0x870e6fa700000000, 0x1270a49800000000, 0x5e58323b00000000, + 0x9fdcd4fb00000000, 0xd3f4425800000000, 0x468a896700000000, + 0x0aa21fc400000000, 0x6c771f1800000000, 0x205f89bb00000000, + 0xb521428400000000, 0xf909d42700000000, 0x762efede00000000, + 0x3a06687d00000000, 0xaf78a34200000000, 0xe35035e100000000, + 0x8585353d00000000, 0xc9ada39e00000000, 0x5cd368a100000000, + 0x10fbfe0200000000, 0xd17f18c200000000, 0x9d578e6100000000, + 0x0829455e00000000, 0x4401d3fd00000000, 0x22d4d32100000000, + 0x6efc458200000000, 0xfb828ebd00000000, 0xb7aa181e00000000, + 0xa4cbab9400000000, 0xe8e33d3700000000, 0x7d9df60800000000, + 0x31b560ab00000000, 0x5760607700000000, 0x1b48f6d400000000, + 0x8e363deb00000000, 0xc21eab4800000000, 0x039a4d8800000000, + 0x4fb2db2b00000000, 0xdacc101400000000, 0x96e486b700000000, + 0xf031866b00000000, 0xbc1910c800000000, 0x2967dbf700000000, + 0x654f4d5400000000, 0xea6867ad00000000, 0xa640f10e00000000, + 0x333e3a3100000000, 0x7f16ac9200000000, 0x19c3ac4e00000000, + 0x55eb3aed00000000, 0xc095f1d200000000, 0x8cbd677100000000, + 0x4d3981b100000000, 0x0111171200000000, 0x946fdc2d00000000, + 0xd8474a8e00000000, 0xbe924a5200000000, 0xf2badcf100000000, + 0x67c417ce00000000, 0x2bec816d00000000, 0x311c141500000000, + 0x7d3482b600000000, 0xe84a498900000000, 0xa462df2a00000000, + 0xc2b7dff600000000, 0x8e9f495500000000, 0x1be1826a00000000, + 0x57c914c900000000, 0x964df20900000000, 0xda6564aa00000000, + 0x4f1baf9500000000, 0x0333393600000000, 0x65e639ea00000000, + 0x29ceaf4900000000, 0xbcb0647600000000, 0xf098f2d500000000, + 0x7fbfd82c00000000, 0x33974e8f00000000, 0xa6e985b000000000, + 0xeac1131300000000, 0x8c1413cf00000000, 0xc03c856c00000000, + 0x55424e5300000000, 0x196ad8f000000000, 0xd8ee3e3000000000, + 0x94c6a89300000000, 0x01b863ac00000000, 0x4d90f50f00000000, + 0x2b45f5d300000000, 0x676d637000000000, 0xf213a84f00000000, + 0xbe3b3eec00000000, 0xad5a8d6600000000, 0xe1721bc500000000, + 0x740cd0fa00000000, 0x3824465900000000, 0x5ef1468500000000, + 0x12d9d02600000000, 0x87a71b1900000000, 0xcb8f8dba00000000, + 0x0a0b6b7a00000000, 0x4623fdd900000000, 0xd35d36e600000000, + 0x9f75a04500000000, 0xf9a0a09900000000, 0xb588363a00000000, + 0x20f6fd0500000000, 0x6cde6ba600000000, 0xe3f9415f00000000, + 0xafd1d7fc00000000, 0x3aaf1cc300000000, 0x76878a6000000000, + 0x10528abc00000000, 0x5c7a1c1f00000000, 0xc904d72000000000, + 0x852c418300000000, 0x44a8a74300000000, 0x088031e000000000, + 0x9dfefadf00000000, 0xd1d66c7c00000000, 0xb7036ca000000000, + 0xfb2bfa0300000000, 0x6e55313c00000000, 0x227da79f00000000, + 0x099126f200000000, 0x45b9b05100000000, 0xd0c77b6e00000000, + 0x9cefedcd00000000, 0xfa3aed1100000000, 0xb6127bb200000000, + 0x236cb08d00000000, 0x6f44262e00000000, 0xaec0c0ee00000000, + 0xe2e8564d00000000, 0x77969d7200000000, 0x3bbe0bd100000000, + 0x5d6b0b0d00000000, 0x11439dae00000000, 0x843d569100000000, + 0xc815c03200000000, 0x4732eacb00000000, 0x0b1a7c6800000000, + 0x9e64b75700000000, 0xd24c21f400000000, 0xb499212800000000, + 0xf8b1b78b00000000, 0x6dcf7cb400000000, 0x21e7ea1700000000, + 0xe0630cd700000000, 0xac4b9a7400000000, 0x3935514b00000000, + 0x751dc7e800000000, 0x13c8c73400000000, 0x5fe0519700000000, + 0xca9e9aa800000000, 0x86b60c0b00000000, 0x95d7bf8100000000, + 0xd9ff292200000000, 0x4c81e21d00000000, 0x00a974be00000000, + 0x667c746200000000, 0x2a54e2c100000000, 0xbf2a29fe00000000, + 0xf302bf5d00000000, 0x3286599d00000000, 0x7eaecf3e00000000, + 0xebd0040100000000, 0xa7f892a200000000, 0xc12d927e00000000, + 0x8d0504dd00000000, 0x187bcfe200000000, 0x5453594100000000, + 0xdb7473b800000000, 0x975ce51b00000000, 0x02222e2400000000, + 0x4e0ab88700000000, 0x28dfb85b00000000, 0x64f72ef800000000, + 0xf189e5c700000000, 0xbda1736400000000, 0x7c2595a400000000, + 0x300d030700000000, 0xa573c83800000000, 0xe95b5e9b00000000, + 0x8f8e5e4700000000, 0xc3a6c8e400000000, 0x56d803db00000000, + 0x1af0957800000000}, + {0x0000000000000000, 0x939bc97f00000000, 0x263793ff00000000, + 0xb5ac5a8000000000, 0x0d68572400000000, 0x9ef39e5b00000000, + 0x2b5fc4db00000000, 0xb8c40da400000000, 0x1ad0ae4800000000, + 0x894b673700000000, 0x3ce73db700000000, 0xaf7cf4c800000000, + 0x17b8f96c00000000, 0x8423301300000000, 0x318f6a9300000000, + 0xa214a3ec00000000, 0x34a05d9100000000, 0xa73b94ee00000000, + 0x1297ce6e00000000, 0x810c071100000000, 0x39c80ab500000000, + 0xaa53c3ca00000000, 0x1fff994a00000000, 0x8c64503500000000, + 0x2e70f3d900000000, 0xbdeb3aa600000000, 0x0847602600000000, + 0x9bdca95900000000, 0x2318a4fd00000000, 0xb0836d8200000000, + 0x052f370200000000, 0x96b4fe7d00000000, 0x2946caf900000000, + 0xbadd038600000000, 0x0f71590600000000, 0x9cea907900000000, + 0x242e9ddd00000000, 0xb7b554a200000000, 0x02190e2200000000, + 0x9182c75d00000000, 0x339664b100000000, 0xa00dadce00000000, + 0x15a1f74e00000000, 0x863a3e3100000000, 0x3efe339500000000, + 0xad65faea00000000, 0x18c9a06a00000000, 0x8b52691500000000, + 0x1de6976800000000, 0x8e7d5e1700000000, 0x3bd1049700000000, + 0xa84acde800000000, 0x108ec04c00000000, 0x8315093300000000, + 0x36b953b300000000, 0xa5229acc00000000, 0x0736392000000000, + 0x94adf05f00000000, 0x2101aadf00000000, 0xb29a63a000000000, + 0x0a5e6e0400000000, 0x99c5a77b00000000, 0x2c69fdfb00000000, + 0xbff2348400000000, 0x138ae52800000000, 0x80112c5700000000, + 0x35bd76d700000000, 0xa626bfa800000000, 0x1ee2b20c00000000, + 0x8d797b7300000000, 0x38d521f300000000, 0xab4ee88c00000000, + 0x095a4b6000000000, 0x9ac1821f00000000, 0x2f6dd89f00000000, + 0xbcf611e000000000, 0x04321c4400000000, 0x97a9d53b00000000, + 0x22058fbb00000000, 0xb19e46c400000000, 0x272ab8b900000000, + 0xb4b171c600000000, 0x011d2b4600000000, 0x9286e23900000000, + 0x2a42ef9d00000000, 0xb9d926e200000000, 0x0c757c6200000000, + 0x9feeb51d00000000, 0x3dfa16f100000000, 0xae61df8e00000000, + 0x1bcd850e00000000, 0x88564c7100000000, 0x309241d500000000, + 0xa30988aa00000000, 0x16a5d22a00000000, 0x853e1b5500000000, + 0x3acc2fd100000000, 0xa957e6ae00000000, 0x1cfbbc2e00000000, + 0x8f60755100000000, 0x37a478f500000000, 0xa43fb18a00000000, + 0x1193eb0a00000000, 0x8208227500000000, 0x201c819900000000, + 0xb38748e600000000, 0x062b126600000000, 0x95b0db1900000000, + 0x2d74d6bd00000000, 0xbeef1fc200000000, 0x0b43454200000000, + 0x98d88c3d00000000, 0x0e6c724000000000, 0x9df7bb3f00000000, + 0x285be1bf00000000, 0xbbc028c000000000, 0x0304256400000000, + 0x909fec1b00000000, 0x2533b69b00000000, 0xb6a87fe400000000, + 0x14bcdc0800000000, 0x8727157700000000, 0x328b4ff700000000, + 0xa110868800000000, 0x19d48b2c00000000, 0x8a4f425300000000, + 0x3fe318d300000000, 0xac78d1ac00000000, 0x2614cb5100000000, + 0xb58f022e00000000, 0x002358ae00000000, 0x93b891d100000000, + 0x2b7c9c7500000000, 0xb8e7550a00000000, 0x0d4b0f8a00000000, + 0x9ed0c6f500000000, 0x3cc4651900000000, 0xaf5fac6600000000, + 0x1af3f6e600000000, 0x89683f9900000000, 0x31ac323d00000000, + 0xa237fb4200000000, 0x179ba1c200000000, 0x840068bd00000000, + 0x12b496c000000000, 0x812f5fbf00000000, 0x3483053f00000000, + 0xa718cc4000000000, 0x1fdcc1e400000000, 0x8c47089b00000000, + 0x39eb521b00000000, 0xaa709b6400000000, 0x0864388800000000, + 0x9bfff1f700000000, 0x2e53ab7700000000, 0xbdc8620800000000, + 0x050c6fac00000000, 0x9697a6d300000000, 0x233bfc5300000000, + 0xb0a0352c00000000, 0x0f5201a800000000, 0x9cc9c8d700000000, + 0x2965925700000000, 0xbafe5b2800000000, 0x023a568c00000000, + 0x91a19ff300000000, 0x240dc57300000000, 0xb7960c0c00000000, + 0x1582afe000000000, 0x8619669f00000000, 0x33b53c1f00000000, + 0xa02ef56000000000, 0x18eaf8c400000000, 0x8b7131bb00000000, + 0x3edd6b3b00000000, 0xad46a24400000000, 0x3bf25c3900000000, + 0xa869954600000000, 0x1dc5cfc600000000, 0x8e5e06b900000000, + 0x369a0b1d00000000, 0xa501c26200000000, 0x10ad98e200000000, + 0x8336519d00000000, 0x2122f27100000000, 0xb2b93b0e00000000, + 0x0715618e00000000, 0x948ea8f100000000, 0x2c4aa55500000000, + 0xbfd16c2a00000000, 0x0a7d36aa00000000, 0x99e6ffd500000000, + 0x359e2e7900000000, 0xa605e70600000000, 0x13a9bd8600000000, + 0x803274f900000000, 0x38f6795d00000000, 0xab6db02200000000, + 0x1ec1eaa200000000, 0x8d5a23dd00000000, 0x2f4e803100000000, + 0xbcd5494e00000000, 0x097913ce00000000, 0x9ae2dab100000000, + 0x2226d71500000000, 0xb1bd1e6a00000000, 0x041144ea00000000, + 0x978a8d9500000000, 0x013e73e800000000, 0x92a5ba9700000000, + 0x2709e01700000000, 0xb492296800000000, 0x0c5624cc00000000, + 0x9fcdedb300000000, 0x2a61b73300000000, 0xb9fa7e4c00000000, + 0x1beedda000000000, 0x887514df00000000, 0x3dd94e5f00000000, + 0xae42872000000000, 0x16868a8400000000, 0x851d43fb00000000, + 0x30b1197b00000000, 0xa32ad00400000000, 0x1cd8e48000000000, + 0x8f432dff00000000, 0x3aef777f00000000, 0xa974be0000000000, + 0x11b0b3a400000000, 0x822b7adb00000000, 0x3787205b00000000, + 0xa41ce92400000000, 0x06084ac800000000, 0x959383b700000000, + 0x203fd93700000000, 0xb3a4104800000000, 0x0b601dec00000000, + 0x98fbd49300000000, 0x2d578e1300000000, 0xbecc476c00000000, + 0x2878b91100000000, 0xbbe3706e00000000, 0x0e4f2aee00000000, + 0x9dd4e39100000000, 0x2510ee3500000000, 0xb68b274a00000000, + 0x03277dca00000000, 0x90bcb4b500000000, 0x32a8175900000000, + 0xa133de2600000000, 0x149f84a600000000, 0x87044dd900000000, + 0x3fc0407d00000000, 0xac5b890200000000, 0x19f7d38200000000, + 0x8a6c1afd00000000}, + {0x0000000000000000, 0x650b796900000000, 0xca16f2d200000000, + 0xaf1d8bbb00000000, 0xd52b957e00000000, 0xb020ec1700000000, + 0x1f3d67ac00000000, 0x7a361ec500000000, 0xaa572afd00000000, + 0xcf5c539400000000, 0x6041d82f00000000, 0x054aa14600000000, + 0x7f7cbf8300000000, 0x1a77c6ea00000000, 0xb56a4d5100000000, + 0xd061343800000000, 0x15a9252100000000, 0x70a25c4800000000, + 0xdfbfd7f300000000, 0xbab4ae9a00000000, 0xc082b05f00000000, + 0xa589c93600000000, 0x0a94428d00000000, 0x6f9f3be400000000, + 0xbffe0fdc00000000, 0xdaf576b500000000, 0x75e8fd0e00000000, + 0x10e3846700000000, 0x6ad59aa200000000, 0x0fdee3cb00000000, + 0xa0c3687000000000, 0xc5c8111900000000, 0x2a524b4200000000, + 0x4f59322b00000000, 0xe044b99000000000, 0x854fc0f900000000, + 0xff79de3c00000000, 0x9a72a75500000000, 0x356f2cee00000000, + 0x5064558700000000, 0x800561bf00000000, 0xe50e18d600000000, + 0x4a13936d00000000, 0x2f18ea0400000000, 0x552ef4c100000000, + 0x30258da800000000, 0x9f38061300000000, 0xfa337f7a00000000, + 0x3ffb6e6300000000, 0x5af0170a00000000, 0xf5ed9cb100000000, + 0x90e6e5d800000000, 0xead0fb1d00000000, 0x8fdb827400000000, + 0x20c609cf00000000, 0x45cd70a600000000, 0x95ac449e00000000, + 0xf0a73df700000000, 0x5fbab64c00000000, 0x3ab1cf2500000000, + 0x4087d1e000000000, 0x258ca88900000000, 0x8a91233200000000, + 0xef9a5a5b00000000, 0x54a4968400000000, 0x31afefed00000000, + 0x9eb2645600000000, 0xfbb91d3f00000000, 0x818f03fa00000000, + 0xe4847a9300000000, 0x4b99f12800000000, 0x2e92884100000000, + 0xfef3bc7900000000, 0x9bf8c51000000000, 0x34e54eab00000000, + 0x51ee37c200000000, 0x2bd8290700000000, 0x4ed3506e00000000, + 0xe1cedbd500000000, 0x84c5a2bc00000000, 0x410db3a500000000, + 0x2406cacc00000000, 0x8b1b417700000000, 0xee10381e00000000, + 0x942626db00000000, 0xf12d5fb200000000, 0x5e30d40900000000, + 0x3b3bad6000000000, 0xeb5a995800000000, 0x8e51e03100000000, + 0x214c6b8a00000000, 0x444712e300000000, 0x3e710c2600000000, + 0x5b7a754f00000000, 0xf467fef400000000, 0x916c879d00000000, + 0x7ef6ddc600000000, 0x1bfda4af00000000, 0xb4e02f1400000000, + 0xd1eb567d00000000, 0xabdd48b800000000, 0xced631d100000000, + 0x61cbba6a00000000, 0x04c0c30300000000, 0xd4a1f73b00000000, + 0xb1aa8e5200000000, 0x1eb705e900000000, 0x7bbc7c8000000000, + 0x018a624500000000, 0x64811b2c00000000, 0xcb9c909700000000, + 0xae97e9fe00000000, 0x6b5ff8e700000000, 0x0e54818e00000000, + 0xa1490a3500000000, 0xc442735c00000000, 0xbe746d9900000000, + 0xdb7f14f000000000, 0x74629f4b00000000, 0x1169e62200000000, + 0xc108d21a00000000, 0xa403ab7300000000, 0x0b1e20c800000000, + 0x6e1559a100000000, 0x1423476400000000, 0x71283e0d00000000, + 0xde35b5b600000000, 0xbb3eccdf00000000, 0xe94e5cd200000000, + 0x8c4525bb00000000, 0x2358ae0000000000, 0x4653d76900000000, + 0x3c65c9ac00000000, 0x596eb0c500000000, 0xf6733b7e00000000, + 0x9378421700000000, 0x4319762f00000000, 0x26120f4600000000, + 0x890f84fd00000000, 0xec04fd9400000000, 0x9632e35100000000, + 0xf3399a3800000000, 0x5c24118300000000, 0x392f68ea00000000, + 0xfce779f300000000, 0x99ec009a00000000, 0x36f18b2100000000, + 0x53faf24800000000, 0x29ccec8d00000000, 0x4cc795e400000000, + 0xe3da1e5f00000000, 0x86d1673600000000, 0x56b0530e00000000, + 0x33bb2a6700000000, 0x9ca6a1dc00000000, 0xf9add8b500000000, + 0x839bc67000000000, 0xe690bf1900000000, 0x498d34a200000000, + 0x2c864dcb00000000, 0xc31c179000000000, 0xa6176ef900000000, + 0x090ae54200000000, 0x6c019c2b00000000, 0x163782ee00000000, + 0x733cfb8700000000, 0xdc21703c00000000, 0xb92a095500000000, + 0x694b3d6d00000000, 0x0c40440400000000, 0xa35dcfbf00000000, + 0xc656b6d600000000, 0xbc60a81300000000, 0xd96bd17a00000000, + 0x76765ac100000000, 0x137d23a800000000, 0xd6b532b100000000, + 0xb3be4bd800000000, 0x1ca3c06300000000, 0x79a8b90a00000000, + 0x039ea7cf00000000, 0x6695dea600000000, 0xc988551d00000000, + 0xac832c7400000000, 0x7ce2184c00000000, 0x19e9612500000000, + 0xb6f4ea9e00000000, 0xd3ff93f700000000, 0xa9c98d3200000000, + 0xccc2f45b00000000, 0x63df7fe000000000, 0x06d4068900000000, + 0xbdeaca5600000000, 0xd8e1b33f00000000, 0x77fc388400000000, + 0x12f741ed00000000, 0x68c15f2800000000, 0x0dca264100000000, + 0xa2d7adfa00000000, 0xc7dcd49300000000, 0x17bde0ab00000000, + 0x72b699c200000000, 0xddab127900000000, 0xb8a06b1000000000, + 0xc29675d500000000, 0xa79d0cbc00000000, 0x0880870700000000, + 0x6d8bfe6e00000000, 0xa843ef7700000000, 0xcd48961e00000000, + 0x62551da500000000, 0x075e64cc00000000, 0x7d687a0900000000, + 0x1863036000000000, 0xb77e88db00000000, 0xd275f1b200000000, + 0x0214c58a00000000, 0x671fbce300000000, 0xc802375800000000, + 0xad094e3100000000, 0xd73f50f400000000, 0xb234299d00000000, + 0x1d29a22600000000, 0x7822db4f00000000, 0x97b8811400000000, + 0xf2b3f87d00000000, 0x5dae73c600000000, 0x38a50aaf00000000, + 0x4293146a00000000, 0x27986d0300000000, 0x8885e6b800000000, + 0xed8e9fd100000000, 0x3defabe900000000, 0x58e4d28000000000, + 0xf7f9593b00000000, 0x92f2205200000000, 0xe8c43e9700000000, + 0x8dcf47fe00000000, 0x22d2cc4500000000, 0x47d9b52c00000000, + 0x8211a43500000000, 0xe71add5c00000000, 0x480756e700000000, + 0x2d0c2f8e00000000, 0x573a314b00000000, 0x3231482200000000, + 0x9d2cc39900000000, 0xf827baf000000000, 0x28468ec800000000, + 0x4d4df7a100000000, 0xe2507c1a00000000, 0x875b057300000000, + 0xfd6d1bb600000000, 0x986662df00000000, 0x377be96400000000, + 0x5270900d00000000}, + {0x0000000000000000, 0xdcecb13d00000000, 0xb8d9637b00000000, + 0x6435d24600000000, 0x70b3c7f600000000, 0xac5f76cb00000000, + 0xc86aa48d00000000, 0x148615b000000000, 0xa160fe3600000000, + 0x7d8c4f0b00000000, 0x19b99d4d00000000, 0xc5552c7000000000, + 0xd1d339c000000000, 0x0d3f88fd00000000, 0x690a5abb00000000, + 0xb5e6eb8600000000, 0x42c1fc6d00000000, 0x9e2d4d5000000000, + 0xfa189f1600000000, 0x26f42e2b00000000, 0x32723b9b00000000, + 0xee9e8aa600000000, 0x8aab58e000000000, 0x5647e9dd00000000, + 0xe3a1025b00000000, 0x3f4db36600000000, 0x5b78612000000000, + 0x8794d01d00000000, 0x9312c5ad00000000, 0x4ffe749000000000, + 0x2bcba6d600000000, 0xf72717eb00000000, 0x8482f9db00000000, + 0x586e48e600000000, 0x3c5b9aa000000000, 0xe0b72b9d00000000, + 0xf4313e2d00000000, 0x28dd8f1000000000, 0x4ce85d5600000000, + 0x9004ec6b00000000, 0x25e207ed00000000, 0xf90eb6d000000000, + 0x9d3b649600000000, 0x41d7d5ab00000000, 0x5551c01b00000000, + 0x89bd712600000000, 0xed88a36000000000, 0x3164125d00000000, + 0xc64305b600000000, 0x1aafb48b00000000, 0x7e9a66cd00000000, + 0xa276d7f000000000, 0xb6f0c24000000000, 0x6a1c737d00000000, + 0x0e29a13b00000000, 0xd2c5100600000000, 0x6723fb8000000000, + 0xbbcf4abd00000000, 0xdffa98fb00000000, 0x031629c600000000, + 0x17903c7600000000, 0xcb7c8d4b00000000, 0xaf495f0d00000000, + 0x73a5ee3000000000, 0x4903826c00000000, 0x95ef335100000000, + 0xf1dae11700000000, 0x2d36502a00000000, 0x39b0459a00000000, + 0xe55cf4a700000000, 0x816926e100000000, 0x5d8597dc00000000, + 0xe8637c5a00000000, 0x348fcd6700000000, 0x50ba1f2100000000, + 0x8c56ae1c00000000, 0x98d0bbac00000000, 0x443c0a9100000000, + 0x2009d8d700000000, 0xfce569ea00000000, 0x0bc27e0100000000, + 0xd72ecf3c00000000, 0xb31b1d7a00000000, 0x6ff7ac4700000000, + 0x7b71b9f700000000, 0xa79d08ca00000000, 0xc3a8da8c00000000, + 0x1f446bb100000000, 0xaaa2803700000000, 0x764e310a00000000, + 0x127be34c00000000, 0xce97527100000000, 0xda1147c100000000, + 0x06fdf6fc00000000, 0x62c824ba00000000, 0xbe24958700000000, + 0xcd817bb700000000, 0x116dca8a00000000, 0x755818cc00000000, + 0xa9b4a9f100000000, 0xbd32bc4100000000, 0x61de0d7c00000000, + 0x05ebdf3a00000000, 0xd9076e0700000000, 0x6ce1858100000000, + 0xb00d34bc00000000, 0xd438e6fa00000000, 0x08d457c700000000, + 0x1c52427700000000, 0xc0bef34a00000000, 0xa48b210c00000000, + 0x7867903100000000, 0x8f4087da00000000, 0x53ac36e700000000, + 0x3799e4a100000000, 0xeb75559c00000000, 0xfff3402c00000000, + 0x231ff11100000000, 0x472a235700000000, 0x9bc6926a00000000, + 0x2e2079ec00000000, 0xf2ccc8d100000000, 0x96f91a9700000000, + 0x4a15abaa00000000, 0x5e93be1a00000000, 0x827f0f2700000000, + 0xe64add6100000000, 0x3aa66c5c00000000, 0x920604d900000000, + 0x4eeab5e400000000, 0x2adf67a200000000, 0xf633d69f00000000, + 0xe2b5c32f00000000, 0x3e59721200000000, 0x5a6ca05400000000, + 0x8680116900000000, 0x3366faef00000000, 0xef8a4bd200000000, + 0x8bbf999400000000, 0x575328a900000000, 0x43d53d1900000000, + 0x9f398c2400000000, 0xfb0c5e6200000000, 0x27e0ef5f00000000, + 0xd0c7f8b400000000, 0x0c2b498900000000, 0x681e9bcf00000000, + 0xb4f22af200000000, 0xa0743f4200000000, 0x7c988e7f00000000, + 0x18ad5c3900000000, 0xc441ed0400000000, 0x71a7068200000000, + 0xad4bb7bf00000000, 0xc97e65f900000000, 0x1592d4c400000000, + 0x0114c17400000000, 0xddf8704900000000, 0xb9cda20f00000000, + 0x6521133200000000, 0x1684fd0200000000, 0xca684c3f00000000, + 0xae5d9e7900000000, 0x72b12f4400000000, 0x66373af400000000, + 0xbadb8bc900000000, 0xdeee598f00000000, 0x0202e8b200000000, + 0xb7e4033400000000, 0x6b08b20900000000, 0x0f3d604f00000000, + 0xd3d1d17200000000, 0xc757c4c200000000, 0x1bbb75ff00000000, + 0x7f8ea7b900000000, 0xa362168400000000, 0x5445016f00000000, + 0x88a9b05200000000, 0xec9c621400000000, 0x3070d32900000000, + 0x24f6c69900000000, 0xf81a77a400000000, 0x9c2fa5e200000000, + 0x40c314df00000000, 0xf525ff5900000000, 0x29c94e6400000000, + 0x4dfc9c2200000000, 0x91102d1f00000000, 0x859638af00000000, + 0x597a899200000000, 0x3d4f5bd400000000, 0xe1a3eae900000000, + 0xdb0586b500000000, 0x07e9378800000000, 0x63dce5ce00000000, + 0xbf3054f300000000, 0xabb6414300000000, 0x775af07e00000000, + 0x136f223800000000, 0xcf83930500000000, 0x7a65788300000000, + 0xa689c9be00000000, 0xc2bc1bf800000000, 0x1e50aac500000000, + 0x0ad6bf7500000000, 0xd63a0e4800000000, 0xb20fdc0e00000000, + 0x6ee36d3300000000, 0x99c47ad800000000, 0x4528cbe500000000, + 0x211d19a300000000, 0xfdf1a89e00000000, 0xe977bd2e00000000, + 0x359b0c1300000000, 0x51aede5500000000, 0x8d426f6800000000, + 0x38a484ee00000000, 0xe44835d300000000, 0x807de79500000000, + 0x5c9156a800000000, 0x4817431800000000, 0x94fbf22500000000, + 0xf0ce206300000000, 0x2c22915e00000000, 0x5f877f6e00000000, + 0x836bce5300000000, 0xe75e1c1500000000, 0x3bb2ad2800000000, + 0x2f34b89800000000, 0xf3d809a500000000, 0x97eddbe300000000, + 0x4b016ade00000000, 0xfee7815800000000, 0x220b306500000000, + 0x463ee22300000000, 0x9ad2531e00000000, 0x8e5446ae00000000, + 0x52b8f79300000000, 0x368d25d500000000, 0xea6194e800000000, + 0x1d46830300000000, 0xc1aa323e00000000, 0xa59fe07800000000, + 0x7973514500000000, 0x6df544f500000000, 0xb119f5c800000000, + 0xd52c278e00000000, 0x09c096b300000000, 0xbc267d3500000000, + 0x60cacc0800000000, 0x04ff1e4e00000000, 0xd813af7300000000, + 0xcc95bac300000000, 0x10790bfe00000000, 0x744cd9b800000000, + 0xa8a0688500000000}}; + +#else /* W == 4 */ + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0x81256527, 0xd93bcc0f, 0x581ea928, 0x69069e5f, + 0xe823fb78, 0xb03d5250, 0x31183777, 0xd20d3cbe, 0x53285999, + 0x0b36f0b1, 0x8a139596, 0xbb0ba2e1, 0x3a2ec7c6, 0x62306eee, + 0xe3150bc9, 0x7f6b7f3d, 0xfe4e1a1a, 0xa650b332, 0x2775d615, + 0x166de162, 0x97488445, 0xcf562d6d, 0x4e73484a, 0xad664383, + 0x2c4326a4, 0x745d8f8c, 0xf578eaab, 0xc460dddc, 0x4545b8fb, + 0x1d5b11d3, 0x9c7e74f4, 0xfed6fe7a, 0x7ff39b5d, 0x27ed3275, + 0xa6c85752, 0x97d06025, 0x16f50502, 0x4eebac2a, 0xcfcec90d, + 0x2cdbc2c4, 0xadfea7e3, 0xf5e00ecb, 0x74c56bec, 0x45dd5c9b, + 0xc4f839bc, 0x9ce69094, 0x1dc3f5b3, 0x81bd8147, 0x0098e460, + 0x58864d48, 0xd9a3286f, 0xe8bb1f18, 0x699e7a3f, 0x3180d317, + 0xb0a5b630, 0x53b0bdf9, 0xd295d8de, 0x8a8b71f6, 0x0bae14d1, + 0x3ab623a6, 0xbb934681, 0xe38defa9, 0x62a88a8e, 0x26dcfab5, + 0xa7f99f92, 0xffe736ba, 0x7ec2539d, 0x4fda64ea, 0xceff01cd, + 0x96e1a8e5, 0x17c4cdc2, 0xf4d1c60b, 0x75f4a32c, 0x2dea0a04, + 0xaccf6f23, 0x9dd75854, 0x1cf23d73, 0x44ec945b, 0xc5c9f17c, + 0x59b78588, 0xd892e0af, 0x808c4987, 0x01a92ca0, 0x30b11bd7, + 0xb1947ef0, 0xe98ad7d8, 0x68afb2ff, 0x8bbab936, 0x0a9fdc11, + 0x52817539, 0xd3a4101e, 0xe2bc2769, 0x6399424e, 0x3b87eb66, + 0xbaa28e41, 0xd80a04cf, 0x592f61e8, 0x0131c8c0, 0x8014ade7, + 0xb10c9a90, 0x3029ffb7, 0x6837569f, 0xe91233b8, 0x0a073871, + 0x8b225d56, 0xd33cf47e, 0x52199159, 0x6301a62e, 0xe224c309, + 0xba3a6a21, 0x3b1f0f06, 0xa7617bf2, 0x26441ed5, 0x7e5ab7fd, + 0xff7fd2da, 0xce67e5ad, 0x4f42808a, 0x175c29a2, 0x96794c85, + 0x756c474c, 0xf449226b, 0xac578b43, 0x2d72ee64, 0x1c6ad913, + 0x9d4fbc34, 0xc551151c, 0x4474703b, 0x4db9f56a, 0xcc9c904d, + 0x94823965, 0x15a75c42, 0x24bf6b35, 0xa59a0e12, 0xfd84a73a, + 0x7ca1c21d, 0x9fb4c9d4, 0x1e91acf3, 0x468f05db, 0xc7aa60fc, + 0xf6b2578b, 0x779732ac, 0x2f899b84, 0xaeacfea3, 0x32d28a57, + 0xb3f7ef70, 0xebe94658, 0x6acc237f, 0x5bd41408, 0xdaf1712f, + 0x82efd807, 0x03cabd20, 0xe0dfb6e9, 0x61fad3ce, 0x39e47ae6, + 0xb8c11fc1, 0x89d928b6, 0x08fc4d91, 0x50e2e4b9, 0xd1c7819e, + 0xb36f0b10, 0x324a6e37, 0x6a54c71f, 0xeb71a238, 0xda69954f, + 0x5b4cf068, 0x03525940, 0x82773c67, 0x616237ae, 0xe0475289, + 0xb859fba1, 0x397c9e86, 0x0864a9f1, 0x8941ccd6, 0xd15f65fe, + 0x507a00d9, 0xcc04742d, 0x4d21110a, 0x153fb822, 0x941add05, + 0xa502ea72, 0x24278f55, 0x7c39267d, 0xfd1c435a, 0x1e094893, + 0x9f2c2db4, 0xc732849c, 0x4617e1bb, 0x770fd6cc, 0xf62ab3eb, + 0xae341ac3, 0x2f117fe4, 0x6b650fdf, 0xea406af8, 0xb25ec3d0, + 0x337ba6f7, 0x02639180, 0x8346f4a7, 0xdb585d8f, 0x5a7d38a8, + 0xb9683361, 0x384d5646, 0x6053ff6e, 0xe1769a49, 0xd06ead3e, + 0x514bc819, 0x09556131, 0x88700416, 0x140e70e2, 0x952b15c5, + 0xcd35bced, 0x4c10d9ca, 0x7d08eebd, 0xfc2d8b9a, 0xa43322b2, + 0x25164795, 0xc6034c5c, 0x4726297b, 0x1f388053, 0x9e1de574, + 0xaf05d203, 0x2e20b724, 0x763e1e0c, 0xf71b7b2b, 0x95b3f1a5, + 0x14969482, 0x4c883daa, 0xcdad588d, 0xfcb56ffa, 0x7d900add, + 0x258ea3f5, 0xa4abc6d2, 0x47becd1b, 0xc69ba83c, 0x9e850114, + 0x1fa06433, 0x2eb85344, 0xaf9d3663, 0xf7839f4b, 0x76a6fa6c, + 0xead88e98, 0x6bfdebbf, 0x33e34297, 0xb2c627b0, 0x83de10c7, + 0x02fb75e0, 0x5ae5dcc8, 0xdbc0b9ef, 0x38d5b226, 0xb9f0d701, + 0xe1ee7e29, 0x60cb1b0e, 0x51d32c79, 0xd0f6495e, 0x88e8e076, + 0x09cd8551}, + {0x00000000, 0x9b73ead4, 0xed96d3e9, 0x76e5393d, 0x005ca193, + 0x9b2f4b47, 0xedca727a, 0x76b998ae, 0x00b94326, 0x9bcaa9f2, + 0xed2f90cf, 0x765c7a1b, 0x00e5e2b5, 0x9b960861, 0xed73315c, + 0x7600db88, 0x0172864c, 0x9a016c98, 0xece455a5, 0x7797bf71, + 0x012e27df, 0x9a5dcd0b, 0xecb8f436, 0x77cb1ee2, 0x01cbc56a, + 0x9ab82fbe, 0xec5d1683, 0x772efc57, 0x019764f9, 0x9ae48e2d, + 0xec01b710, 0x77725dc4, 0x02e50c98, 0x9996e64c, 0xef73df71, + 0x740035a5, 0x02b9ad0b, 0x99ca47df, 0xef2f7ee2, 0x745c9436, + 0x025c4fbe, 0x992fa56a, 0xefca9c57, 0x74b97683, 0x0200ee2d, + 0x997304f9, 0xef963dc4, 0x74e5d710, 0x03978ad4, 0x98e46000, + 0xee01593d, 0x7572b3e9, 0x03cb2b47, 0x98b8c193, 0xee5df8ae, + 0x752e127a, 0x032ec9f2, 0x985d2326, 0xeeb81a1b, 0x75cbf0cf, + 0x03726861, 0x980182b5, 0xeee4bb88, 0x7597515c, 0x05ca1930, + 0x9eb9f3e4, 0xe85ccad9, 0x732f200d, 0x0596b8a3, 0x9ee55277, + 0xe8006b4a, 0x7373819e, 0x05735a16, 0x9e00b0c2, 0xe8e589ff, + 0x7396632b, 0x052ffb85, 0x9e5c1151, 0xe8b9286c, 0x73cac2b8, + 0x04b89f7c, 0x9fcb75a8, 0xe92e4c95, 0x725da641, 0x04e43eef, + 0x9f97d43b, 0xe972ed06, 0x720107d2, 0x0401dc5a, 0x9f72368e, + 0xe9970fb3, 0x72e4e567, 0x045d7dc9, 0x9f2e971d, 0xe9cbae20, + 0x72b844f4, 0x072f15a8, 0x9c5cff7c, 0xeab9c641, 0x71ca2c95, + 0x0773b43b, 0x9c005eef, 0xeae567d2, 0x71968d06, 0x0796568e, + 0x9ce5bc5a, 0xea008567, 0x71736fb3, 0x07caf71d, 0x9cb91dc9, + 0xea5c24f4, 0x712fce20, 0x065d93e4, 0x9d2e7930, 0xebcb400d, + 0x70b8aad9, 0x06013277, 0x9d72d8a3, 0xeb97e19e, 0x70e40b4a, + 0x06e4d0c2, 0x9d973a16, 0xeb72032b, 0x7001e9ff, 0x06b87151, + 0x9dcb9b85, 0xeb2ea2b8, 0x705d486c, 0x0b943260, 0x90e7d8b4, + 0xe602e189, 0x7d710b5d, 0x0bc893f3, 0x90bb7927, 0xe65e401a, + 0x7d2daace, 0x0b2d7146, 0x905e9b92, 0xe6bba2af, 0x7dc8487b, + 0x0b71d0d5, 0x90023a01, 0xe6e7033c, 0x7d94e9e8, 0x0ae6b42c, + 0x91955ef8, 0xe77067c5, 0x7c038d11, 0x0aba15bf, 0x91c9ff6b, + 0xe72cc656, 0x7c5f2c82, 0x0a5ff70a, 0x912c1dde, 0xe7c924e3, + 0x7cbace37, 0x0a035699, 0x9170bc4d, 0xe7958570, 0x7ce66fa4, + 0x09713ef8, 0x9202d42c, 0xe4e7ed11, 0x7f9407c5, 0x092d9f6b, + 0x925e75bf, 0xe4bb4c82, 0x7fc8a656, 0x09c87dde, 0x92bb970a, + 0xe45eae37, 0x7f2d44e3, 0x0994dc4d, 0x92e73699, 0xe4020fa4, + 0x7f71e570, 0x0803b8b4, 0x93705260, 0xe5956b5d, 0x7ee68189, + 0x085f1927, 0x932cf3f3, 0xe5c9cace, 0x7eba201a, 0x08bafb92, + 0x93c91146, 0xe52c287b, 0x7e5fc2af, 0x08e65a01, 0x9395b0d5, + 0xe57089e8, 0x7e03633c, 0x0e5e2b50, 0x952dc184, 0xe3c8f8b9, + 0x78bb126d, 0x0e028ac3, 0x95716017, 0xe394592a, 0x78e7b3fe, + 0x0ee76876, 0x959482a2, 0xe371bb9f, 0x7802514b, 0x0ebbc9e5, + 0x95c82331, 0xe32d1a0c, 0x785ef0d8, 0x0f2cad1c, 0x945f47c8, + 0xe2ba7ef5, 0x79c99421, 0x0f700c8f, 0x9403e65b, 0xe2e6df66, + 0x799535b2, 0x0f95ee3a, 0x94e604ee, 0xe2033dd3, 0x7970d707, + 0x0fc94fa9, 0x94baa57d, 0xe25f9c40, 0x792c7694, 0x0cbb27c8, + 0x97c8cd1c, 0xe12df421, 0x7a5e1ef5, 0x0ce7865b, 0x97946c8f, + 0xe17155b2, 0x7a02bf66, 0x0c0264ee, 0x97718e3a, 0xe194b707, + 0x7ae75dd3, 0x0c5ec57d, 0x972d2fa9, 0xe1c81694, 0x7abbfc40, + 0x0dc9a184, 0x96ba4b50, 0xe05f726d, 0x7b2c98b9, 0x0d950017, + 0x96e6eac3, 0xe003d3fe, 0x7b70392a, 0x0d70e2a2, 0x96030876, + 0xe0e6314b, 0x7b95db9f, 0x0d2c4331, 0x965fa9e5, 0xe0ba90d8, + 0x7bc97a0c}, + {0x00000000, 0x172864c0, 0x2e50c980, 0x3978ad40, 0x5ca19300, + 0x4b89f7c0, 0x72f15a80, 0x65d93e40, 0xb9432600, 0xae6b42c0, + 0x9713ef80, 0x803b8b40, 0xe5e2b500, 0xf2cad1c0, 0xcbb27c80, + 0xdc9a1840, 0xa9f74a41, 0xbedf2e81, 0x87a783c1, 0x908fe701, + 0xf556d941, 0xe27ebd81, 0xdb0610c1, 0xcc2e7401, 0x10b46c41, + 0x079c0881, 0x3ee4a5c1, 0x29ccc101, 0x4c15ff41, 0x5b3d9b81, + 0x624536c1, 0x756d5201, 0x889f92c3, 0x9fb7f603, 0xa6cf5b43, + 0xb1e73f83, 0xd43e01c3, 0xc3166503, 0xfa6ec843, 0xed46ac83, + 0x31dcb4c3, 0x26f4d003, 0x1f8c7d43, 0x08a41983, 0x6d7d27c3, + 0x7a554303, 0x432dee43, 0x54058a83, 0x2168d882, 0x3640bc42, + 0x0f381102, 0x181075c2, 0x7dc94b82, 0x6ae12f42, 0x53998202, + 0x44b1e6c2, 0x982bfe82, 0x8f039a42, 0xb67b3702, 0xa15353c2, + 0xc48a6d82, 0xd3a20942, 0xeadaa402, 0xfdf2c0c2, 0xca4e23c7, + 0xdd664707, 0xe41eea47, 0xf3368e87, 0x96efb0c7, 0x81c7d407, + 0xb8bf7947, 0xaf971d87, 0x730d05c7, 0x64256107, 0x5d5dcc47, + 0x4a75a887, 0x2fac96c7, 0x3884f207, 0x01fc5f47, 0x16d43b87, + 0x63b96986, 0x74910d46, 0x4de9a006, 0x5ac1c4c6, 0x3f18fa86, + 0x28309e46, 0x11483306, 0x066057c6, 0xdafa4f86, 0xcdd22b46, + 0xf4aa8606, 0xe382e2c6, 0x865bdc86, 0x9173b846, 0xa80b1506, + 0xbf2371c6, 0x42d1b104, 0x55f9d5c4, 0x6c817884, 0x7ba91c44, + 0x1e702204, 0x095846c4, 0x3020eb84, 0x27088f44, 0xfb929704, + 0xecbaf3c4, 0xd5c25e84, 0xc2ea3a44, 0xa7330404, 0xb01b60c4, + 0x8963cd84, 0x9e4ba944, 0xeb26fb45, 0xfc0e9f85, 0xc57632c5, + 0xd25e5605, 0xb7876845, 0xa0af0c85, 0x99d7a1c5, 0x8effc505, + 0x5265dd45, 0x454db985, 0x7c3514c5, 0x6b1d7005, 0x0ec44e45, + 0x19ec2a85, 0x209487c5, 0x37bce305, 0x4fed41cf, 0x58c5250f, + 0x61bd884f, 0x7695ec8f, 0x134cd2cf, 0x0464b60f, 0x3d1c1b4f, + 0x2a347f8f, 0xf6ae67cf, 0xe186030f, 0xd8feae4f, 0xcfd6ca8f, + 0xaa0ff4cf, 0xbd27900f, 0x845f3d4f, 0x9377598f, 0xe61a0b8e, + 0xf1326f4e, 0xc84ac20e, 0xdf62a6ce, 0xbabb988e, 0xad93fc4e, + 0x94eb510e, 0x83c335ce, 0x5f592d8e, 0x4871494e, 0x7109e40e, + 0x662180ce, 0x03f8be8e, 0x14d0da4e, 0x2da8770e, 0x3a8013ce, + 0xc772d30c, 0xd05ab7cc, 0xe9221a8c, 0xfe0a7e4c, 0x9bd3400c, + 0x8cfb24cc, 0xb583898c, 0xa2abed4c, 0x7e31f50c, 0x691991cc, + 0x50613c8c, 0x4749584c, 0x2290660c, 0x35b802cc, 0x0cc0af8c, + 0x1be8cb4c, 0x6e85994d, 0x79adfd8d, 0x40d550cd, 0x57fd340d, + 0x32240a4d, 0x250c6e8d, 0x1c74c3cd, 0x0b5ca70d, 0xd7c6bf4d, + 0xc0eedb8d, 0xf99676cd, 0xeebe120d, 0x8b672c4d, 0x9c4f488d, + 0xa537e5cd, 0xb21f810d, 0x85a36208, 0x928b06c8, 0xabf3ab88, + 0xbcdbcf48, 0xd902f108, 0xce2a95c8, 0xf7523888, 0xe07a5c48, + 0x3ce04408, 0x2bc820c8, 0x12b08d88, 0x0598e948, 0x6041d708, + 0x7769b3c8, 0x4e111e88, 0x59397a48, 0x2c542849, 0x3b7c4c89, + 0x0204e1c9, 0x152c8509, 0x70f5bb49, 0x67dddf89, 0x5ea572c9, + 0x498d1609, 0x95170e49, 0x823f6a89, 0xbb47c7c9, 0xac6fa309, + 0xc9b69d49, 0xde9ef989, 0xe7e654c9, 0xf0ce3009, 0x0d3cf0cb, + 0x1a14940b, 0x236c394b, 0x34445d8b, 0x519d63cb, 0x46b5070b, + 0x7fcdaa4b, 0x68e5ce8b, 0xb47fd6cb, 0xa357b20b, 0x9a2f1f4b, + 0x8d077b8b, 0xe8de45cb, 0xfff6210b, 0xc68e8c4b, 0xd1a6e88b, + 0xa4cbba8a, 0xb3e3de4a, 0x8a9b730a, 0x9db317ca, 0xf86a298a, + 0xef424d4a, 0xd63ae00a, 0xc11284ca, 0x1d889c8a, 0x0aa0f84a, + 0x33d8550a, 0x24f031ca, 0x41290f8a, 0x56016b4a, 0x6f79c60a, + 0x7851a2ca}, + {0x00000000, 0x9fda839e, 0xe4c4017d, 0x7b1e82e3, 0x12f904bb, + 0x8d238725, 0xf63d05c6, 0x69e78658, 0x25f20976, 0xba288ae8, + 0xc136080b, 0x5eec8b95, 0x370b0dcd, 0xa8d18e53, 0xd3cf0cb0, + 0x4c158f2e, 0x4be412ec, 0xd43e9172, 0xaf201391, 0x30fa900f, + 0x591d1657, 0xc6c795c9, 0xbdd9172a, 0x220394b4, 0x6e161b9a, + 0xf1cc9804, 0x8ad21ae7, 0x15089979, 0x7cef1f21, 0xe3359cbf, + 0x982b1e5c, 0x07f19dc2, 0x97c825d8, 0x0812a646, 0x730c24a5, + 0xecd6a73b, 0x85312163, 0x1aeba2fd, 0x61f5201e, 0xfe2fa380, + 0xb23a2cae, 0x2de0af30, 0x56fe2dd3, 0xc924ae4d, 0xa0c32815, + 0x3f19ab8b, 0x44072968, 0xdbddaaf6, 0xdc2c3734, 0x43f6b4aa, + 0x38e83649, 0xa732b5d7, 0xced5338f, 0x510fb011, 0x2a1132f2, + 0xb5cbb16c, 0xf9de3e42, 0x6604bddc, 0x1d1a3f3f, 0x82c0bca1, + 0xeb273af9, 0x74fdb967, 0x0fe33b84, 0x9039b81a, 0xf4e14df1, + 0x6b3bce6f, 0x10254c8c, 0x8fffcf12, 0xe618494a, 0x79c2cad4, + 0x02dc4837, 0x9d06cba9, 0xd1134487, 0x4ec9c719, 0x35d745fa, + 0xaa0dc664, 0xc3ea403c, 0x5c30c3a2, 0x272e4141, 0xb8f4c2df, + 0xbf055f1d, 0x20dfdc83, 0x5bc15e60, 0xc41bddfe, 0xadfc5ba6, + 0x3226d838, 0x49385adb, 0xd6e2d945, 0x9af7566b, 0x052dd5f5, + 0x7e335716, 0xe1e9d488, 0x880e52d0, 0x17d4d14e, 0x6cca53ad, + 0xf310d033, 0x63296829, 0xfcf3ebb7, 0x87ed6954, 0x1837eaca, + 0x71d06c92, 0xee0aef0c, 0x95146def, 0x0aceee71, 0x46db615f, + 0xd901e2c1, 0xa21f6022, 0x3dc5e3bc, 0x542265e4, 0xcbf8e67a, + 0xb0e66499, 0x2f3ce707, 0x28cd7ac5, 0xb717f95b, 0xcc097bb8, + 0x53d3f826, 0x3a347e7e, 0xa5eefde0, 0xdef07f03, 0x412afc9d, + 0x0d3f73b3, 0x92e5f02d, 0xe9fb72ce, 0x7621f150, 0x1fc67708, + 0x801cf496, 0xfb027675, 0x64d8f5eb, 0x32b39da3, 0xad691e3d, + 0xd6779cde, 0x49ad1f40, 0x204a9918, 0xbf901a86, 0xc48e9865, + 0x5b541bfb, 0x174194d5, 0x889b174b, 0xf38595a8, 0x6c5f1636, + 0x05b8906e, 0x9a6213f0, 0xe17c9113, 0x7ea6128d, 0x79578f4f, + 0xe68d0cd1, 0x9d938e32, 0x02490dac, 0x6bae8bf4, 0xf474086a, + 0x8f6a8a89, 0x10b00917, 0x5ca58639, 0xc37f05a7, 0xb8618744, + 0x27bb04da, 0x4e5c8282, 0xd186011c, 0xaa9883ff, 0x35420061, + 0xa57bb87b, 0x3aa13be5, 0x41bfb906, 0xde653a98, 0xb782bcc0, + 0x28583f5e, 0x5346bdbd, 0xcc9c3e23, 0x8089b10d, 0x1f533293, + 0x644db070, 0xfb9733ee, 0x9270b5b6, 0x0daa3628, 0x76b4b4cb, + 0xe96e3755, 0xee9faa97, 0x71452909, 0x0a5babea, 0x95812874, + 0xfc66ae2c, 0x63bc2db2, 0x18a2af51, 0x87782ccf, 0xcb6da3e1, + 0x54b7207f, 0x2fa9a29c, 0xb0732102, 0xd994a75a, 0x464e24c4, + 0x3d50a627, 0xa28a25b9, 0xc652d052, 0x598853cc, 0x2296d12f, + 0xbd4c52b1, 0xd4abd4e9, 0x4b715777, 0x306fd594, 0xafb5560a, + 0xe3a0d924, 0x7c7a5aba, 0x0764d859, 0x98be5bc7, 0xf159dd9f, + 0x6e835e01, 0x159ddce2, 0x8a475f7c, 0x8db6c2be, 0x126c4120, + 0x6972c3c3, 0xf6a8405d, 0x9f4fc605, 0x0095459b, 0x7b8bc778, + 0xe45144e6, 0xa844cbc8, 0x379e4856, 0x4c80cab5, 0xd35a492b, + 0xbabdcf73, 0x25674ced, 0x5e79ce0e, 0xc1a34d90, 0x519af58a, + 0xce407614, 0xb55ef4f7, 0x2a847769, 0x4363f131, 0xdcb972af, + 0xa7a7f04c, 0x387d73d2, 0x7468fcfc, 0xebb27f62, 0x90acfd81, + 0x0f767e1f, 0x6691f847, 0xf94b7bd9, 0x8255f93a, 0x1d8f7aa4, + 0x1a7ee766, 0x85a464f8, 0xfebae61b, 0x61606585, 0x0887e3dd, + 0x975d6043, 0xec43e2a0, 0x7399613e, 0x3f8cee10, 0xa0566d8e, + 0xdb48ef6d, 0x44926cf3, 0x2d75eaab, 0xb2af6935, 0xc9b1ebd6, + 0x566b6848}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x00000000, 0x9e83da9f, 0x7d01c4e4, 0xe3821e7b, 0xbb04f912, + 0x2587238d, 0xc6053df6, 0x5886e769, 0x7609f225, 0xe88a28ba, + 0x0b0836c1, 0x958bec5e, 0xcd0d0b37, 0x538ed1a8, 0xb00ccfd3, + 0x2e8f154c, 0xec12e44b, 0x72913ed4, 0x911320af, 0x0f90fa30, + 0x57161d59, 0xc995c7c6, 0x2a17d9bd, 0xb4940322, 0x9a1b166e, + 0x0498ccf1, 0xe71ad28a, 0x79990815, 0x211fef7c, 0xbf9c35e3, + 0x5c1e2b98, 0xc29df107, 0xd825c897, 0x46a61208, 0xa5240c73, + 0x3ba7d6ec, 0x63213185, 0xfda2eb1a, 0x1e20f561, 0x80a32ffe, + 0xae2c3ab2, 0x30afe02d, 0xd32dfe56, 0x4dae24c9, 0x1528c3a0, + 0x8bab193f, 0x68290744, 0xf6aadddb, 0x34372cdc, 0xaab4f643, + 0x4936e838, 0xd7b532a7, 0x8f33d5ce, 0x11b00f51, 0xf232112a, + 0x6cb1cbb5, 0x423edef9, 0xdcbd0466, 0x3f3f1a1d, 0xa1bcc082, + 0xf93a27eb, 0x67b9fd74, 0x843be30f, 0x1ab83990, 0xf14de1f4, + 0x6fce3b6b, 0x8c4c2510, 0x12cfff8f, 0x4a4918e6, 0xd4cac279, + 0x3748dc02, 0xa9cb069d, 0x874413d1, 0x19c7c94e, 0xfa45d735, + 0x64c60daa, 0x3c40eac3, 0xa2c3305c, 0x41412e27, 0xdfc2f4b8, + 0x1d5f05bf, 0x83dcdf20, 0x605ec15b, 0xfedd1bc4, 0xa65bfcad, + 0x38d82632, 0xdb5a3849, 0x45d9e2d6, 0x6b56f79a, 0xf5d52d05, + 0x1657337e, 0x88d4e9e1, 0xd0520e88, 0x4ed1d417, 0xad53ca6c, + 0x33d010f3, 0x29682963, 0xb7ebf3fc, 0x5469ed87, 0xcaea3718, + 0x926cd071, 0x0cef0aee, 0xef6d1495, 0x71eece0a, 0x5f61db46, + 0xc1e201d9, 0x22601fa2, 0xbce3c53d, 0xe4652254, 0x7ae6f8cb, + 0x9964e6b0, 0x07e73c2f, 0xc57acd28, 0x5bf917b7, 0xb87b09cc, + 0x26f8d353, 0x7e7e343a, 0xe0fdeea5, 0x037ff0de, 0x9dfc2a41, + 0xb3733f0d, 0x2df0e592, 0xce72fbe9, 0x50f12176, 0x0877c61f, + 0x96f41c80, 0x757602fb, 0xebf5d864, 0xa39db332, 0x3d1e69ad, + 0xde9c77d6, 0x401fad49, 0x18994a20, 0x861a90bf, 0x65988ec4, + 0xfb1b545b, 0xd5944117, 0x4b179b88, 0xa89585f3, 0x36165f6c, + 0x6e90b805, 0xf013629a, 0x13917ce1, 0x8d12a67e, 0x4f8f5779, + 0xd10c8de6, 0x328e939d, 0xac0d4902, 0xf48bae6b, 0x6a0874f4, + 0x898a6a8f, 0x1709b010, 0x3986a55c, 0xa7057fc3, 0x448761b8, + 0xda04bb27, 0x82825c4e, 0x1c0186d1, 0xff8398aa, 0x61004235, + 0x7bb87ba5, 0xe53ba13a, 0x06b9bf41, 0x983a65de, 0xc0bc82b7, + 0x5e3f5828, 0xbdbd4653, 0x233e9ccc, 0x0db18980, 0x9332531f, + 0x70b04d64, 0xee3397fb, 0xb6b57092, 0x2836aa0d, 0xcbb4b476, + 0x55376ee9, 0x97aa9fee, 0x09294571, 0xeaab5b0a, 0x74288195, + 0x2cae66fc, 0xb22dbc63, 0x51afa218, 0xcf2c7887, 0xe1a36dcb, + 0x7f20b754, 0x9ca2a92f, 0x022173b0, 0x5aa794d9, 0xc4244e46, + 0x27a6503d, 0xb9258aa2, 0x52d052c6, 0xcc538859, 0x2fd19622, + 0xb1524cbd, 0xe9d4abd4, 0x7757714b, 0x94d56f30, 0x0a56b5af, + 0x24d9a0e3, 0xba5a7a7c, 0x59d86407, 0xc75bbe98, 0x9fdd59f1, + 0x015e836e, 0xe2dc9d15, 0x7c5f478a, 0xbec2b68d, 0x20416c12, + 0xc3c37269, 0x5d40a8f6, 0x05c64f9f, 0x9b459500, 0x78c78b7b, + 0xe64451e4, 0xc8cb44a8, 0x56489e37, 0xb5ca804c, 0x2b495ad3, + 0x73cfbdba, 0xed4c6725, 0x0ece795e, 0x904da3c1, 0x8af59a51, + 0x147640ce, 0xf7f45eb5, 0x6977842a, 0x31f16343, 0xaf72b9dc, + 0x4cf0a7a7, 0xd2737d38, 0xfcfc6874, 0x627fb2eb, 0x81fdac90, + 0x1f7e760f, 0x47f89166, 0xd97b4bf9, 0x3af95582, 0xa47a8f1d, + 0x66e77e1a, 0xf864a485, 0x1be6bafe, 0x85656061, 0xdde38708, + 0x43605d97, 0xa0e243ec, 0x3e619973, 0x10ee8c3f, 0x8e6d56a0, + 0x6def48db, 0xf36c9244, 0xabea752d, 0x3569afb2, 0xd6ebb1c9, + 0x48686b56}, + {0x00000000, 0xc0642817, 0x80c9502e, 0x40ad7839, 0x0093a15c, + 0xc0f7894b, 0x805af172, 0x403ed965, 0x002643b9, 0xc0426bae, + 0x80ef1397, 0x408b3b80, 0x00b5e2e5, 0xc0d1caf2, 0x807cb2cb, + 0x40189adc, 0x414af7a9, 0x812edfbe, 0xc183a787, 0x01e78f90, + 0x41d956f5, 0x81bd7ee2, 0xc11006db, 0x01742ecc, 0x416cb410, + 0x81089c07, 0xc1a5e43e, 0x01c1cc29, 0x41ff154c, 0x819b3d5b, + 0xc1364562, 0x01526d75, 0xc3929f88, 0x03f6b79f, 0x435bcfa6, + 0x833fe7b1, 0xc3013ed4, 0x036516c3, 0x43c86efa, 0x83ac46ed, + 0xc3b4dc31, 0x03d0f426, 0x437d8c1f, 0x8319a408, 0xc3277d6d, + 0x0343557a, 0x43ee2d43, 0x838a0554, 0x82d86821, 0x42bc4036, + 0x0211380f, 0xc2751018, 0x824bc97d, 0x422fe16a, 0x02829953, + 0xc2e6b144, 0x82fe2b98, 0x429a038f, 0x02377bb6, 0xc25353a1, + 0x826d8ac4, 0x4209a2d3, 0x02a4daea, 0xc2c0f2fd, 0xc7234eca, + 0x074766dd, 0x47ea1ee4, 0x878e36f3, 0xc7b0ef96, 0x07d4c781, + 0x4779bfb8, 0x871d97af, 0xc7050d73, 0x07612564, 0x47cc5d5d, + 0x87a8754a, 0xc796ac2f, 0x07f28438, 0x475ffc01, 0x873bd416, + 0x8669b963, 0x460d9174, 0x06a0e94d, 0xc6c4c15a, 0x86fa183f, + 0x469e3028, 0x06334811, 0xc6576006, 0x864ffada, 0x462bd2cd, + 0x0686aaf4, 0xc6e282e3, 0x86dc5b86, 0x46b87391, 0x06150ba8, + 0xc67123bf, 0x04b1d142, 0xc4d5f955, 0x8478816c, 0x441ca97b, + 0x0422701e, 0xc4465809, 0x84eb2030, 0x448f0827, 0x049792fb, + 0xc4f3baec, 0x845ec2d5, 0x443aeac2, 0x040433a7, 0xc4601bb0, + 0x84cd6389, 0x44a94b9e, 0x45fb26eb, 0x859f0efc, 0xc53276c5, + 0x05565ed2, 0x456887b7, 0x850cafa0, 0xc5a1d799, 0x05c5ff8e, + 0x45dd6552, 0x85b94d45, 0xc514357c, 0x05701d6b, 0x454ec40e, + 0x852aec19, 0xc5879420, 0x05e3bc37, 0xcf41ed4f, 0x0f25c558, + 0x4f88bd61, 0x8fec9576, 0xcfd24c13, 0x0fb66404, 0x4f1b1c3d, + 0x8f7f342a, 0xcf67aef6, 0x0f0386e1, 0x4faefed8, 0x8fcad6cf, + 0xcff40faa, 0x0f9027bd, 0x4f3d5f84, 0x8f597793, 0x8e0b1ae6, + 0x4e6f32f1, 0x0ec24ac8, 0xcea662df, 0x8e98bbba, 0x4efc93ad, + 0x0e51eb94, 0xce35c383, 0x8e2d595f, 0x4e497148, 0x0ee40971, + 0xce802166, 0x8ebef803, 0x4edad014, 0x0e77a82d, 0xce13803a, + 0x0cd372c7, 0xccb75ad0, 0x8c1a22e9, 0x4c7e0afe, 0x0c40d39b, + 0xcc24fb8c, 0x8c8983b5, 0x4cedaba2, 0x0cf5317e, 0xcc911969, + 0x8c3c6150, 0x4c584947, 0x0c669022, 0xcc02b835, 0x8cafc00c, + 0x4ccbe81b, 0x4d99856e, 0x8dfdad79, 0xcd50d540, 0x0d34fd57, + 0x4d0a2432, 0x8d6e0c25, 0xcdc3741c, 0x0da75c0b, 0x4dbfc6d7, + 0x8ddbeec0, 0xcd7696f9, 0x0d12beee, 0x4d2c678b, 0x8d484f9c, + 0xcde537a5, 0x0d811fb2, 0x0862a385, 0xc8068b92, 0x88abf3ab, + 0x48cfdbbc, 0x08f102d9, 0xc8952ace, 0x883852f7, 0x485c7ae0, + 0x0844e03c, 0xc820c82b, 0x888db012, 0x48e99805, 0x08d74160, + 0xc8b36977, 0x881e114e, 0x487a3959, 0x4928542c, 0x894c7c3b, + 0xc9e10402, 0x09852c15, 0x49bbf570, 0x89dfdd67, 0xc972a55e, + 0x09168d49, 0x490e1795, 0x896a3f82, 0xc9c747bb, 0x09a36fac, + 0x499db6c9, 0x89f99ede, 0xc954e6e7, 0x0930cef0, 0xcbf03c0d, + 0x0b94141a, 0x4b396c23, 0x8b5d4434, 0xcb639d51, 0x0b07b546, + 0x4baacd7f, 0x8bcee568, 0xcbd67fb4, 0x0bb257a3, 0x4b1f2f9a, + 0x8b7b078d, 0xcb45dee8, 0x0b21f6ff, 0x4b8c8ec6, 0x8be8a6d1, + 0x8abacba4, 0x4adee3b3, 0x0a739b8a, 0xca17b39d, 0x8a296af8, + 0x4a4d42ef, 0x0ae03ad6, 0xca8412c1, 0x8a9c881d, 0x4af8a00a, + 0x0a55d833, 0xca31f024, 0x8a0f2941, 0x4a6b0156, 0x0ac6796f, + 0xcaa25178}, + {0x00000000, 0xd4ea739b, 0xe9d396ed, 0x3d39e576, 0x93a15c00, + 0x474b2f9b, 0x7a72caed, 0xae98b976, 0x2643b900, 0xf2a9ca9b, + 0xcf902fed, 0x1b7a5c76, 0xb5e2e500, 0x6108969b, 0x5c3173ed, + 0x88db0076, 0x4c867201, 0x986c019a, 0xa555e4ec, 0x71bf9777, + 0xdf272e01, 0x0bcd5d9a, 0x36f4b8ec, 0xe21ecb77, 0x6ac5cb01, + 0xbe2fb89a, 0x83165dec, 0x57fc2e77, 0xf9649701, 0x2d8ee49a, + 0x10b701ec, 0xc45d7277, 0x980ce502, 0x4ce69699, 0x71df73ef, + 0xa5350074, 0x0badb902, 0xdf47ca99, 0xe27e2fef, 0x36945c74, + 0xbe4f5c02, 0x6aa52f99, 0x579ccaef, 0x8376b974, 0x2dee0002, + 0xf9047399, 0xc43d96ef, 0x10d7e574, 0xd48a9703, 0x0060e498, + 0x3d5901ee, 0xe9b37275, 0x472bcb03, 0x93c1b898, 0xaef85dee, + 0x7a122e75, 0xf2c92e03, 0x26235d98, 0x1b1ab8ee, 0xcff0cb75, + 0x61687203, 0xb5820198, 0x88bbe4ee, 0x5c519775, 0x3019ca05, + 0xe4f3b99e, 0xd9ca5ce8, 0x0d202f73, 0xa3b89605, 0x7752e59e, + 0x4a6b00e8, 0x9e817373, 0x165a7305, 0xc2b0009e, 0xff89e5e8, + 0x2b639673, 0x85fb2f05, 0x51115c9e, 0x6c28b9e8, 0xb8c2ca73, + 0x7c9fb804, 0xa875cb9f, 0x954c2ee9, 0x41a65d72, 0xef3ee404, + 0x3bd4979f, 0x06ed72e9, 0xd2070172, 0x5adc0104, 0x8e36729f, + 0xb30f97e9, 0x67e5e472, 0xc97d5d04, 0x1d972e9f, 0x20aecbe9, + 0xf444b872, 0xa8152f07, 0x7cff5c9c, 0x41c6b9ea, 0x952cca71, + 0x3bb47307, 0xef5e009c, 0xd267e5ea, 0x068d9671, 0x8e569607, + 0x5abce59c, 0x678500ea, 0xb36f7371, 0x1df7ca07, 0xc91db99c, + 0xf4245cea, 0x20ce2f71, 0xe4935d06, 0x30792e9d, 0x0d40cbeb, + 0xd9aab870, 0x77320106, 0xa3d8729d, 0x9ee197eb, 0x4a0be470, + 0xc2d0e406, 0x163a979d, 0x2b0372eb, 0xffe90170, 0x5171b806, + 0x859bcb9d, 0xb8a22eeb, 0x6c485d70, 0x6032940b, 0xb4d8e790, + 0x89e102e6, 0x5d0b717d, 0xf393c80b, 0x2779bb90, 0x1a405ee6, + 0xceaa2d7d, 0x46712d0b, 0x929b5e90, 0xafa2bbe6, 0x7b48c87d, + 0xd5d0710b, 0x013a0290, 0x3c03e7e6, 0xe8e9947d, 0x2cb4e60a, + 0xf85e9591, 0xc56770e7, 0x118d037c, 0xbf15ba0a, 0x6bffc991, + 0x56c62ce7, 0x822c5f7c, 0x0af75f0a, 0xde1d2c91, 0xe324c9e7, + 0x37ceba7c, 0x9956030a, 0x4dbc7091, 0x708595e7, 0xa46fe67c, + 0xf83e7109, 0x2cd40292, 0x11ede7e4, 0xc507947f, 0x6b9f2d09, + 0xbf755e92, 0x824cbbe4, 0x56a6c87f, 0xde7dc809, 0x0a97bb92, + 0x37ae5ee4, 0xe3442d7f, 0x4ddc9409, 0x9936e792, 0xa40f02e4, + 0x70e5717f, 0xb4b80308, 0x60527093, 0x5d6b95e5, 0x8981e67e, + 0x27195f08, 0xf3f32c93, 0xcecac9e5, 0x1a20ba7e, 0x92fbba08, + 0x4611c993, 0x7b282ce5, 0xafc25f7e, 0x015ae608, 0xd5b09593, + 0xe88970e5, 0x3c63037e, 0x502b5e0e, 0x84c12d95, 0xb9f8c8e3, + 0x6d12bb78, 0xc38a020e, 0x17607195, 0x2a5994e3, 0xfeb3e778, + 0x7668e70e, 0xa2829495, 0x9fbb71e3, 0x4b510278, 0xe5c9bb0e, + 0x3123c895, 0x0c1a2de3, 0xd8f05e78, 0x1cad2c0f, 0xc8475f94, + 0xf57ebae2, 0x2194c979, 0x8f0c700f, 0x5be60394, 0x66dfe6e2, + 0xb2359579, 0x3aee950f, 0xee04e694, 0xd33d03e2, 0x07d77079, + 0xa94fc90f, 0x7da5ba94, 0x409c5fe2, 0x94762c79, 0xc827bb0c, + 0x1ccdc897, 0x21f42de1, 0xf51e5e7a, 0x5b86e70c, 0x8f6c9497, + 0xb25571e1, 0x66bf027a, 0xee64020c, 0x3a8e7197, 0x07b794e1, + 0xd35de77a, 0x7dc55e0c, 0xa92f2d97, 0x9416c8e1, 0x40fcbb7a, + 0x84a1c90d, 0x504bba96, 0x6d725fe0, 0xb9982c7b, 0x1700950d, + 0xc3eae696, 0xfed303e0, 0x2a39707b, 0xa2e2700d, 0x76080396, + 0x4b31e6e0, 0x9fdb957b, 0x31432c0d, 0xe5a95f96, 0xd890bae0, + 0x0c7ac97b}, + {0x00000000, 0x27652581, 0x0fcc3bd9, 0x28a91e58, 0x5f9e0669, + 0x78fb23e8, 0x50523db0, 0x77371831, 0xbe3c0dd2, 0x99592853, + 0xb1f0360b, 0x9695138a, 0xe1a20bbb, 0xc6c72e3a, 0xee6e3062, + 0xc90b15e3, 0x3d7f6b7f, 0x1a1a4efe, 0x32b350a6, 0x15d67527, + 0x62e16d16, 0x45844897, 0x6d2d56cf, 0x4a48734e, 0x834366ad, + 0xa426432c, 0x8c8f5d74, 0xabea78f5, 0xdcdd60c4, 0xfbb84545, + 0xd3115b1d, 0xf4747e9c, 0x7afed6fe, 0x5d9bf37f, 0x7532ed27, + 0x5257c8a6, 0x2560d097, 0x0205f516, 0x2aaceb4e, 0x0dc9cecf, + 0xc4c2db2c, 0xe3a7fead, 0xcb0ee0f5, 0xec6bc574, 0x9b5cdd45, + 0xbc39f8c4, 0x9490e69c, 0xb3f5c31d, 0x4781bd81, 0x60e49800, + 0x484d8658, 0x6f28a3d9, 0x181fbbe8, 0x3f7a9e69, 0x17d38031, + 0x30b6a5b0, 0xf9bdb053, 0xded895d2, 0xf6718b8a, 0xd114ae0b, + 0xa623b63a, 0x814693bb, 0xa9ef8de3, 0x8e8aa862, 0xb5fadc26, + 0x929ff9a7, 0xba36e7ff, 0x9d53c27e, 0xea64da4f, 0xcd01ffce, + 0xe5a8e196, 0xc2cdc417, 0x0bc6d1f4, 0x2ca3f475, 0x040aea2d, + 0x236fcfac, 0x5458d79d, 0x733df21c, 0x5b94ec44, 0x7cf1c9c5, + 0x8885b759, 0xafe092d8, 0x87498c80, 0xa02ca901, 0xd71bb130, + 0xf07e94b1, 0xd8d78ae9, 0xffb2af68, 0x36b9ba8b, 0x11dc9f0a, + 0x39758152, 0x1e10a4d3, 0x6927bce2, 0x4e429963, 0x66eb873b, + 0x418ea2ba, 0xcf040ad8, 0xe8612f59, 0xc0c83101, 0xe7ad1480, + 0x909a0cb1, 0xb7ff2930, 0x9f563768, 0xb83312e9, 0x7138070a, + 0x565d228b, 0x7ef43cd3, 0x59911952, 0x2ea60163, 0x09c324e2, + 0x216a3aba, 0x060f1f3b, 0xf27b61a7, 0xd51e4426, 0xfdb75a7e, + 0xdad27fff, 0xade567ce, 0x8a80424f, 0xa2295c17, 0x854c7996, + 0x4c476c75, 0x6b2249f4, 0x438b57ac, 0x64ee722d, 0x13d96a1c, + 0x34bc4f9d, 0x1c1551c5, 0x3b707444, 0x6af5b94d, 0x4d909ccc, + 0x65398294, 0x425ca715, 0x356bbf24, 0x120e9aa5, 0x3aa784fd, + 0x1dc2a17c, 0xd4c9b49f, 0xf3ac911e, 0xdb058f46, 0xfc60aac7, + 0x8b57b2f6, 0xac329777, 0x849b892f, 0xa3feacae, 0x578ad232, + 0x70eff7b3, 0x5846e9eb, 0x7f23cc6a, 0x0814d45b, 0x2f71f1da, + 0x07d8ef82, 0x20bdca03, 0xe9b6dfe0, 0xced3fa61, 0xe67ae439, + 0xc11fc1b8, 0xb628d989, 0x914dfc08, 0xb9e4e250, 0x9e81c7d1, + 0x100b6fb3, 0x376e4a32, 0x1fc7546a, 0x38a271eb, 0x4f9569da, + 0x68f04c5b, 0x40595203, 0x673c7782, 0xae376261, 0x895247e0, + 0xa1fb59b8, 0x869e7c39, 0xf1a96408, 0xd6cc4189, 0xfe655fd1, + 0xd9007a50, 0x2d7404cc, 0x0a11214d, 0x22b83f15, 0x05dd1a94, + 0x72ea02a5, 0x558f2724, 0x7d26397c, 0x5a431cfd, 0x9348091e, + 0xb42d2c9f, 0x9c8432c7, 0xbbe11746, 0xccd60f77, 0xebb32af6, + 0xc31a34ae, 0xe47f112f, 0xdf0f656b, 0xf86a40ea, 0xd0c35eb2, + 0xf7a67b33, 0x80916302, 0xa7f44683, 0x8f5d58db, 0xa8387d5a, + 0x613368b9, 0x46564d38, 0x6eff5360, 0x499a76e1, 0x3ead6ed0, + 0x19c84b51, 0x31615509, 0x16047088, 0xe2700e14, 0xc5152b95, + 0xedbc35cd, 0xcad9104c, 0xbdee087d, 0x9a8b2dfc, 0xb22233a4, + 0x95471625, 0x5c4c03c6, 0x7b292647, 0x5380381f, 0x74e51d9e, + 0x03d205af, 0x24b7202e, 0x0c1e3e76, 0x2b7b1bf7, 0xa5f1b395, + 0x82949614, 0xaa3d884c, 0x8d58adcd, 0xfa6fb5fc, 0xdd0a907d, + 0xf5a38e25, 0xd2c6aba4, 0x1bcdbe47, 0x3ca89bc6, 0x1401859e, + 0x3364a01f, 0x4453b82e, 0x63369daf, 0x4b9f83f7, 0x6cfaa676, + 0x988ed8ea, 0xbfebfd6b, 0x9742e333, 0xb027c6b2, 0xc710de83, + 0xe075fb02, 0xc8dce55a, 0xefb9c0db, 0x26b2d538, 0x01d7f0b9, + 0x297eeee1, 0x0e1bcb60, 0x792cd351, 0x5e49f6d0, 0x76e0e888, + 0x5185cd09}}; + +#endif + +#endif + +#endif + +local const z_crc_t FAR x2n_table[] = { + 0x40000000, 0x20000000, 0x08000000, 0x00800000, 0x00008000, + 0xedb88320, 0xb1e6b092, 0xa06a2517, 0xed627dae, 0x88d14467, + 0xd7bbfe6a, 0xec447f11, 0x8e7ea170, 0x6427800e, 0x4d47bae0, + 0x09fe548f, 0x83852d0f, 0x30362f1a, 0x7b5a9cc3, 0x31fec169, + 0x9fec022a, 0x6c8dedc4, 0x15d6874d, 0x5fde7a4e, 0xbad90e37, + 0x2e4e5eef, 0x4eaba214, 0xa8a472c0, 0x429a969e, 0x148d302a, + 0xc40ba6d0, 0xc4e22c3c}; diff --git a/source/externals/zlib/include/deflate.h b/source/externals/zlib/include/deflate.h index ddfcc001a5..149747ae88 100644 --- a/source/externals/zlib/include/deflate.h +++ b/source/externals/zlib/include/deflate.h @@ -1,5 +1,5 @@ /* deflate.h -- internal compression state - * Copyright (C) 1995-2016 Jean-loup Gailly + * Copyright (C) 1995-2018 Jean-loup Gailly * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -216,7 +216,7 @@ typedef struct internal_state { /* Depth of each subtree used as tie breaker for trees of equal frequency */ - uchf *l_buf; /* buffer for literals or lengths */ + uchf *sym_buf; /* buffer for distances and literals/lengths */ uInt lit_bufsize; /* Size of match buffer for literals/lengths. There are 4 reasons for @@ -238,13 +238,8 @@ typedef struct internal_state { * - 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. - */ + uInt sym_next; /* running index in sym_buf */ + uInt sym_end; /* symbol table full when sym_next reaches this */ ulg opt_len; /* bit length of current block with optimal trees */ ulg static_len; /* bit length of current block with static trees */ @@ -324,20 +319,22 @@ void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf, # 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->sym_buf[s->sym_next++] = 0; \ + s->sym_buf[s->sym_next++] = 0; \ + s->sym_buf[s->sym_next++] = cc; \ s->dyn_ltree[cc].Freq++; \ - flush = (s->last_lit == s->lit_bufsize-1); \ + flush = (s->sym_next == s->sym_end); \ } # define _tr_tally_dist(s, distance, length, flush) \ { uch len = (uch)(length); \ ush dist = (ush)(distance); \ - s->d_buf[s->last_lit] = dist; \ - s->l_buf[s->last_lit++] = len; \ + s->sym_buf[s->sym_next++] = dist; \ + s->sym_buf[s->sym_next++] = dist >> 8; \ + s->sym_buf[s->sym_next++] = 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); \ + flush = (s->sym_next == s->sym_end); \ } #else # define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c) diff --git a/source/externals/zlib/include/gzguts.h b/source/externals/zlib/include/gzguts.h index 990a4d2514..57faf37165 100644 --- a/source/externals/zlib/include/gzguts.h +++ b/source/externals/zlib/include/gzguts.h @@ -1,5 +1,5 @@ /* gzguts.h -- zlib internal header definitions for gz* operations - * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler + * Copyright (C) 2004-2019 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -39,7 +39,7 @@ # include #endif -#if defined(_WIN32) || defined(__CYGWIN__) +#if defined(_WIN32) # define WIDECHAR #endif @@ -190,6 +190,7 @@ typedef struct { /* just for writing */ int level; /* compression level */ int strategy; /* compression strategy */ + int reset; /* true if a reset is pending after a Z_FINISH */ /* seek request */ z_off64_t skip; /* amount to skip (already rewound if backwards) */ int seek; /* true if seek request pending */ diff --git a/source/externals/zlib/include/inflate.h b/source/externals/zlib/include/inflate.h index a46cce6b6d..f127b6b1fa 100644 --- a/source/externals/zlib/include/inflate.h +++ b/source/externals/zlib/include/inflate.h @@ -1,5 +1,5 @@ /* inflate.h -- internal inflate state definition - * Copyright (C) 1995-2016 Mark Adler + * Copyright (C) 1995-2019 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -86,7 +86,8 @@ struct inflate_state { int wrap; /* bit 0 true for zlib, bit 1 true for gzip, bit 2 true to validate check value */ int havedict; /* true if dictionary provided */ - int flags; /* gzip header method and flags (0 if zlib) */ + int flags; /* gzip header method and flags, 0 if zlib, or + -1 if raw or no header yet */ unsigned dmax; /* zlib header max distance (INFLATE_STRICT) */ unsigned long check; /* protected copy of check value */ unsigned long total; /* protected copy of output count */ diff --git a/source/externals/zlib/include/zlib.h b/source/externals/zlib/include/zlib.h index f09cdaf1e0..4a98e38bf3 100644 --- a/source/externals/zlib/include/zlib.h +++ b/source/externals/zlib/include/zlib.h @@ -1,7 +1,7 @@ /* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.11, January 15th, 2017 + version 1.2.12, March 11th, 2022 - Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + Copyright (C) 1995-2022 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 @@ -37,11 +37,11 @@ extern "C" { #endif -#define ZLIB_VERSION "1.2.11" -#define ZLIB_VERNUM 0x12b0 +#define ZLIB_VERSION "1.2.12" +#define ZLIB_VERNUM 0x12c0 #define ZLIB_VER_MAJOR 1 #define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 11 +#define ZLIB_VER_REVISION 12 #define ZLIB_VER_SUBREVISION 0 /* @@ -543,8 +543,7 @@ ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, 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. + fields 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. @@ -712,11 +711,12 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, 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 approach (which is a function of the level) or the - strategy is changed, and if any input has been consumed in a previous - deflate() call, then the input available so far is compressed with the old - level and strategy using deflate(strm, Z_BLOCK). There are three approaches - for the compression levels 0, 1..3, and 4..9 respectively. The new level - and strategy will take effect at the next call of deflate(). + strategy is changed, and if there have been any deflate() calls since the + state was initialized or reset, then the input available so far is + compressed with the old level and strategy using deflate(strm, Z_BLOCK). + There are three approaches for the compression levels 0, 1..3, and 4..9 + respectively. The new level and strategy will take effect at the next call + of deflate(). If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does not have enough output space to complete, then the parameter change will not @@ -865,9 +865,11 @@ ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, detection, or add 16 to decode only the gzip format (the zlib format will return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see - below), inflate() will not automatically decode concatenated gzip streams. - inflate() will return Z_STREAM_END at the end of the gzip stream. The state - would need to be reset to continue decoding a subsequent gzip stream. + below), inflate() will *not* automatically decode concatenated gzip members. + inflate() will return Z_STREAM_END at the end of the gzip member. The state + would need to be reset to continue decoding a subsequent gzip member. This + *must* be done if there is more data after a gzip member, in order for the + decompression to be compliant with the gzip standard (RFC 1952). inflateInit2 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 @@ -1302,14 +1304,14 @@ typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ /* 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", 'R' for run-length encoding as in "wb1R", or 'F' - for fixed code compression as in "wb9F". (See the description of - deflateInit2 for more information about the strategy parameter.) 'T' will - request transparent writing or appending with no compression and not using - the gzip format. + Open the gzip (.gz) file at path for reading and decompressing, or + compressing and 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", + 'R' for run-length encoding as in "wb1R", or 'F' for fixed code compression + as in "wb9F". (See the description of deflateInit2 for more information + about the strategy parameter.) 'T' will request transparent writing or + appending with no compression and not using the gzip format. "a" can be used instead of "w" to request that the gzip stream that will be written be appended to the file. "+" will result in an error, since @@ -1339,9 +1341,9 @@ ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); 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 (if the file - has been previously opened with fopen). The mode parameter is as in gzopen. + Associate a gzFile with the file descriptor fd. File descriptors are + obtained from calls like open, dup, creat, pipe or fileno (if 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 @@ -1362,13 +1364,13 @@ ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); /* - Set the internal buffer size used by this library's functions. The - default buffer size is 8192 bytes. This function must be called after - gzopen() or gzdopen(), and before any other calls that read or write the - file. The buffer memory allocation is always deferred to the first read or - write. Three times that size in buffer space is allocated. A larger buffer - size of, for example, 64K or 128K bytes will noticeably increase the speed - of decompression (reading). + Set the internal buffer size used by this library's functions for file to + size. The default buffer size is 8192 bytes. This function must be called + after gzopen() or gzdopen(), and before any other calls that read or write + the file. The buffer memory allocation is always deferred to the first read + or write. Three times that size in buffer space is allocated. A larger + buffer size of, for example, 64K or 128K bytes will noticeably increase the + speed of decompression (reading). The new buffer size also affects the maximum length for gzprintf(). @@ -1378,9 +1380,9 @@ ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); 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. Previously provided - data is flushed before the parameter change. + Dynamically update the compression level and strategy for file. See the + description of deflateInit2 for the meaning of these parameters. Previously + provided data is flushed before applying the parameter changes. gzsetparams returns Z_OK if success, Z_STREAM_ERROR if the file was not opened for writing, Z_ERRNO if there is an error writing the flushed data, @@ -1389,7 +1391,7 @@ ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); /* - Reads the given number of uncompressed bytes from the compressed file. If + Read and decompress up to len uncompressed bytes from file into buf. If the input file is not in gzip format, gzread copies the given number of bytes into the buffer directly from the file. @@ -1420,11 +1422,11 @@ ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, gzFile file)); /* - Read up to nitems items of size size from file to buf, otherwise operating - as gzread() does. This duplicates the interface of stdio's fread(), with - size_t request and return types. If the library defines size_t, then - z_size_t is identical to size_t. If not, then z_size_t is an unsigned - integer type that can contain a pointer. + Read and decompress up to nitems items of size size from file into buf, + otherwise operating as gzread() does. This duplicates the interface of + stdio's fread(), with size_t request and return types. If the library + defines size_t, then z_size_t is identical to size_t. If not, then z_size_t + is an unsigned integer type that can contain a pointer. gzfread() returns the number of full items read of size size, or zero if the end of the file was reached and a full item could not be read, or if @@ -1443,18 +1445,16 @@ ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, file, reseting and retrying on end-of-file, when size is not 1. */ -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); +ZEXTERN int ZEXPORT gzwrite OF((gzFile file, voidpc buf, unsigned len)); /* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes written or 0 in case of - error. + Compress and write the len uncompressed bytes at buf to file. gzwrite + returns the number of uncompressed bytes written or 0 in case of error. */ ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, z_size_t nitems, gzFile file)); /* - gzfwrite() writes nitems items of size size from buf to file, duplicating + Compress and write nitems items of size size from buf to file, duplicating the interface of stdio's fwrite(), with size_t request and return types. If the library defines size_t, then z_size_t is identical to size_t. If not, then z_size_t is an unsigned integer type that can contain a pointer. @@ -1467,22 +1467,22 @@ ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); /* - Converts, formats, and writes the arguments to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of + Convert, format, compress, and write the arguments (...) to file under + control of the string format, as in fprintf. gzprintf returns the number of uncompressed bytes actually written, or a negative zlib error code in case of error. The number of uncompressed bytes written is limited to 8191, or one less than the buffer size given to gzbuffer(). The caller should assure that this limit is not exceeded. If it is exceeded, then gzprintf() will return an error (0) with nothing written. In this case, there may also be a buffer overflow with unpredictable consequences, which is possible only if - zlib was compiled with the insecure functions sprintf() or vsprintf() + zlib was compiled with the insecure functions sprintf() or vsprintf(), because the secure snprintf() or vsnprintf() functions were not available. This can be determined using zlibCompileFlags(). */ ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); /* - Writes the given null-terminated string to the compressed file, excluding + Compress and write the given null-terminated string s to file, excluding the terminating null character. gzputs returns the number of characters written, or -1 in case of error. @@ -1490,11 +1490,12 @@ ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); 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. If any characters are read or if len == 1, the - string is terminated with a null character. If no characters are read due - to an end-of-file or len < 1, then the buffer is left untouched. + Read and decompress bytes from file into buf, until len-1 characters are + read, or until a newline character is read and transferred to buf, or an + end-of-file condition is encountered. If any characters are read or if len + is one, the string is terminated with a null character. If no characters + are read due to an end-of-file or len is less than one, then the buffer is + left untouched. gzgets returns buf which is a null-terminated string, or it returns NULL for end-of-file or in case of error. If there was an error, the contents at @@ -1503,13 +1504,13 @@ ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); /* - Writes c, converted to an unsigned char, into the compressed file. gzputc + Compress and write c, converted to an unsigned char, into 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 + Read and decompress one byte from file. gzgetc returns this byte or -1 in case of end of file or error. This is implemented as a macro for speed. As such, it does not do all of the checking the other functions do. I.e. it does not check to see if file is NULL, nor whether the structure file @@ -1518,8 +1519,8 @@ ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); /* - Push one character back onto the stream to be read as the first character - on the next read. At least one character of push-back is allowed. + Push c back onto the stream for file to be read as the first character on + the next read. At least one character of push-back is always allowed. gzungetc() returns the character pushed, or -1 on failure. gzungetc() will fail if c is -1, and may fail if a character has been pushed but not read yet. If gzungetc is used immediately after gzopen or gzdopen, at least the @@ -1530,9 +1531,9 @@ ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); 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 is only permitted when writing. + Flush all pending output to file. The parameter flush is as in the + deflate() function. The return value is the zlib error number (see function + gzerror below). gzflush is only permitted when writing. If the flush parameter is Z_FINISH, the remaining data is written and the gzip stream is completed in the output. If gzwrite() is called again, a new @@ -1547,8 +1548,8 @@ ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); 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 + Set the starting position to offset relative to whence for the next gzread + or gzwrite on 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. @@ -1565,18 +1566,18 @@ ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); /* - Rewinds the given file. This function is supported only for reading. + Rewind file. This function is supported only for reading. - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) + 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, and is zero when starting, even if appending or - reading a gzip stream from the middle of a file using gzdopen(). + Return the starting position for the next gzread or gzwrite on file. + This position represents a number of bytes in the uncompressed data stream, + and is zero when starting, even if appending or reading a gzip stream from + the middle of a file using gzdopen(). gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) */ @@ -1584,22 +1585,22 @@ ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); /* ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); - Returns the current offset in the file being read or written. This offset - includes the count of bytes that precede the gzip stream, for example when - appending or when using gzdopen() for reading. When reading, the offset - does not include as yet unused buffered input. This information can be used - for a progress indicator. On error, gzoffset() returns -1. + Return the current compressed (actual) read or write offset of file. This + offset includes the count of bytes that precede the gzip stream, for example + when appending or when using gzdopen() for reading. When reading, the + offset does not include as yet unused buffered input. This information can + be used for a progress indicator. On error, gzoffset() returns -1. */ ZEXTERN int ZEXPORT gzeof OF((gzFile file)); /* - Returns true (1) if the end-of-file indicator has been set while reading, - false (0) otherwise. Note that the end-of-file indicator is set only if the - read tried to go past the end of the input, but came up short. Therefore, - just like feof(), gzeof() may return false even if there is no more data to - read, in the event that the last read request was for the exact number of - bytes remaining in the input file. This will happen if the input file size - is an exact multiple of the buffer size. + Return true (1) if the end-of-file indicator for file has been set while + reading, false (0) otherwise. Note that the end-of-file indicator is set + only if the read tried to go past the end of the input, but came up short. + Therefore, just like feof(), gzeof() may return false even if there is no + more data to read, in the event that the last read request was for the exact + number of bytes remaining in the input file. This will happen if the input + file size is an exact multiple of the buffer size. If gzeof() returns true, then the read functions will return no more data, unless the end-of-file indicator is reset by gzclearerr() and the input file @@ -1608,7 +1609,7 @@ ZEXTERN int ZEXPORT gzeof OF((gzFile file)); ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); /* - Returns true (1) if file is being copied directly while reading, or false + Return true (1) if file is being copied directly while reading, or false (0) if file is a gzip stream being decompressed. If the input file is empty, gzdirect() will return true, since the input @@ -1629,8 +1630,8 @@ ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); ZEXTERN int ZEXPORT gzclose OF((gzFile file)); /* - Flushes all pending output if necessary, closes the compressed file and - deallocates the (de)compression state. Note that once file is closed, you + Flush all pending output for file, if necessary, close file and + deallocate the (de)compression state. Note that once file is closed, you cannot call gzerror with file, since its structures have been deallocated. gzclose must not be called more than once on the same file, just as free must not be called more than once on the same allocation. @@ -1654,10 +1655,10 @@ ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); 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. + Return the error message for the last error which occurred on 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. The application must not modify the returned string. Future calls to this function may invalidate the previously returned string. If file is @@ -1670,7 +1671,7 @@ ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); /* - Clears the error and end-of-file flags for file. This is analogous to the + Clear the error and end-of-file flags for file. This is analogous to the clearerr() function in stdio. This is useful for continuing to read a gzip file that is being written concurrently. */ @@ -1688,8 +1689,9 @@ ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); 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 Z_NULL, this function returns the - required initial value for the checksum. + return the updated checksum. An Adler-32 value is in the range of a 32-bit + unsigned integer. If buf is Z_NULL, this function returns the required + initial value for the checksum. An Adler-32 checksum is almost as reliable as a CRC-32 but can be computed much faster. @@ -1722,12 +1724,13 @@ ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, negative, the result has no meaning or utility. */ -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); /* Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is Z_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. + updated CRC-32. A CRC-32 value is in the range of a 32-bit unsigned integer. + If buf is Z_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: @@ -1739,7 +1742,7 @@ ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); if (crc != original_crc) error(); */ -ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf, +ZEXTERN uLong ZEXPORT crc32_z OF((uLong crc, const Bytef *buf, z_size_t len)); /* Same as crc32(), but with a size_t length. @@ -1755,6 +1758,20 @@ ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); len2. */ +/* +ZEXTERN uLong ZEXPORT crc32_combine_gen OF((z_off_t len2)); + + Return the operator corresponding to length len2, to be used with + crc32_combine_op(). +*/ + +ZEXTERN uLong ZEXPORT crc32_combine_op OF((uLong crc1, uLong crc2, uLong op)); +/* + Give the same result as crc32_combine(), using op in place of len2. op is + is generated from len2 by crc32_combine_gen(). This will be faster than + crc32_combine() if the generated op is used more than once. +*/ + /* various hacks, don't look :) */ @@ -1842,6 +1859,7 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); + ZEXTERN uLong ZEXPORT crc32_combine_gen64 OF((z_off64_t)); #endif #if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) @@ -1852,6 +1870,7 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ # define z_gzoffset z_gzoffset64 # define z_adler32_combine z_adler32_combine64 # define z_crc32_combine z_crc32_combine64 +# define z_crc32_combine_gen z_crc32_combine_gen64 # else # define gzopen gzopen64 # define gzseek gzseek64 @@ -1859,6 +1878,7 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ # define gzoffset gzoffset64 # define adler32_combine adler32_combine64 # define crc32_combine crc32_combine64 +# define crc32_combine_gen crc32_combine_gen64 # endif # ifndef Z_LARGE64 ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); @@ -1867,6 +1887,7 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine_gen64 OF((z_off_t)); # endif #else ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); @@ -1875,12 +1896,14 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine_gen OF((z_off_t)); #endif #else /* Z_SOLO */ ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine_gen OF((z_off_t)); #endif /* !Z_SOLO */ @@ -1893,7 +1916,7 @@ ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int)); ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF ((z_streamp)); ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); -#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(Z_SOLO) +#if defined(_WIN32) && !defined(Z_SOLO) ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, const char *mode)); #endif diff --git a/source/externals/zlib/include/zutil.h b/source/externals/zlib/include/zutil.h index 1e92add1cd..4ddb93ef81 100644 --- a/source/externals/zlib/include/zutil.h +++ b/source/externals/zlib/include/zutil.h @@ -1,5 +1,5 @@ /* zutil.h -- internal interface and configuration of the compression library - * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler + * Copyright (C) 1995-2022 Jean-loup Gailly, Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -28,10 +28,6 @@ # include #endif -#ifdef Z_SOLO - typedef long ptrdiff_t; /* guess -- will be caught if guess is wrong */ -#endif - #ifndef local # define local static #endif @@ -45,6 +41,17 @@ typedef unsigned short ush; typedef ush FAR ushf; typedef unsigned long ulg; +#if !defined(Z_U8) && !defined(Z_SOLO) && defined(STDC) +# include +# if (ULONG_MAX == 0xffffffffffffffff) +# define Z_U8 unsigned long +# elif (ULLONG_MAX == 0xffffffffffffffff) +# define Z_U8 unsigned long long +# elif (UINT_MAX == 0xffffffffffffffff) +# define Z_U8 unsigned +# endif +#endif + extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ /* (size given to avoid silly warnings with Visual C++) */ @@ -169,10 +176,6 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ #if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX # if defined(_WIN32_WCE) # define fdopen(fd,mode) NULL /* No fdopen() */ -# ifndef _PTRDIFF_T_DEFINED - typedef int ptrdiff_t; -# define _PTRDIFF_T_DEFINED -# endif # else # define fdopen(fd,type) _fdopen(fd,type) # endif diff --git a/source/externals/zlib/src/crc32.c b/source/externals/zlib/src/crc32.c index 267b5e59f8..a9becfe69c 100644 --- a/source/externals/zlib/src/crc32.c +++ b/source/externals/zlib/src/crc32.c @@ -1,23 +1,22 @@ /* crc32.c -- compute the CRC-32 of a data stream - * Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler + * Copyright (C) 1995-2022 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h * - * Thanks to Rodney Brown for his contribution of faster - * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing - * tables for updating the shift register in one step with three exclusive-ors - * instead of four steps with four exclusive-ors. This results in about a - * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3. + * This interleaved implementation of a CRC makes use of pipelined multiple + * arithmetic-logic units, commonly found in modern CPU cores. It is due to + * Kadatch and Jenkins (2010). See doc/crc-doc.1.0.pdf in this distribution. */ /* Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore protection on the static variables used to control the first-use generation - of the crc tables. Therefore, if you #define DYNAMIC_CRC_TABLE, you should + of the crc tables. Therefore, if you #define DYNAMIC_CRC_TABLE, you should first call get_crc_table() to initialize the tables before allowing more than one thread to use crc32(). - DYNAMIC_CRC_TABLE and MAKECRCH can be #defined to write out crc32.h. + MAKECRCH can be #defined to write out crc32.h. A main() routine is also + produced, so that this one source file can be compiled to an executable. */ #ifdef MAKECRCH @@ -27,175 +26,713 @@ # endif /* !DYNAMIC_CRC_TABLE */ #endif /* MAKECRCH */ -#include "zutil.h" /* for STDC and FAR definitions */ +#include "zutil.h" /* for Z_U4, Z_U8, z_crc_t, and FAR definitions */ -/* Definitions for doing the crc four data bytes at a time. */ -#if !defined(NOBYFOUR) && defined(Z_U4) -# define BYFOUR -#endif -#ifdef BYFOUR - local unsigned long crc32_little OF((unsigned long, - const unsigned char FAR *, z_size_t)); - local unsigned long crc32_big OF((unsigned long, - const unsigned char FAR *, z_size_t)); -# define TBLS 8 + /* + A CRC of a message is computed on N braids of words in the message, where + each word consists of W bytes (4 or 8). If N is 3, for example, then three + running sparse CRCs are calculated respectively on each braid, at these + indices in the array of words: 0, 3, 6, ..., 1, 4, 7, ..., and 2, 5, 8, ... + This is done starting at a word boundary, and continues until as many blocks + of N * W bytes as are available have been processed. The results are combined + into a single CRC at the end. For this code, N must be in the range 1..6 and + W must be 4 or 8. The upper limit on N can be increased if desired by adding + more #if blocks, extending the patterns apparent in the code. In addition, + crc32.h would need to be regenerated, if the maximum N value is increased. + + N and W are chosen empirically by benchmarking the execution time on a given + processor. The choices for N and W below were based on testing on Intel Kaby + Lake i7, AMD Ryzen 7, ARM Cortex-A57, Sparc64-VII, PowerPC POWER9, and MIPS64 + Octeon II processors. The Intel, AMD, and ARM processors were all fastest + with N=5, W=8. The Sparc, PowerPC, and MIPS64 were all fastest at N=5, W=4. + They were all tested with either gcc or clang, all using the -O3 optimization + level. Your mileage may vary. + */ + +/* Define N */ +#ifdef Z_TESTN +# define N Z_TESTN #else -# define TBLS 1 -#endif /* BYFOUR */ +# define N 5 +#endif +#if N < 1 || N > 6 +# error N must be in 1..6 +#endif -/* Local functions for crc concatenation */ -local unsigned long gf2_matrix_times OF((unsigned long *mat, - unsigned long vec)); -local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat)); -local uLong crc32_combine_ OF((uLong crc1, uLong crc2, z_off64_t len2)); +/* + z_crc_t must be at least 32 bits. z_word_t must be at least as long as + z_crc_t. It is assumed here that z_word_t is either 32 bits or 64 bits, and + that bytes are eight bits. + */ +/* + Define W and the associated z_word_t type. If W is not defined, then a + braided calculation is not used, and the associated tables and code are not + compiled. + */ +#ifdef Z_TESTW +# if Z_TESTW-1 != -1 +# define W Z_TESTW +# endif +#else +# ifdef MAKECRCH +# define W 8 /* required for MAKECRCH */ +# else +# if defined(__x86_64__) || defined(__aarch64__) +# define W 8 +# else +# define W 4 +# endif +# endif +#endif +#ifdef W +# if W == 8 && defined(Z_U8) + typedef Z_U8 z_word_t; +# elif defined(Z_U4) +# undef W +# define W 4 + typedef Z_U4 z_word_t; +# else +# undef W +# endif +#endif + +/* Local functions. */ +local z_crc_t multmodp OF((z_crc_t a, z_crc_t b)); +local z_crc_t x2nmodp OF((z_off64_t n, unsigned k)); + +/* If available, use the ARM processor CRC32 instruction. */ +#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) && W == 8 +# define ARMCRC32 +#endif + +#if defined(W) && (!defined(ARMCRC32) || defined(DYNAMIC_CRC_TABLE)) +/* + Swap the bytes in a z_word_t to convert between little and big endian. Any + self-respecting compiler will optimize this to a single machine byte-swap + instruction, if one is available. This assumes that word_t is either 32 bits + or 64 bits. + */ +local z_word_t byte_swap(word) + z_word_t word; +{ +# if W == 8 + return + (word & 0xff00000000000000) >> 56 | + (word & 0xff000000000000) >> 40 | + (word & 0xff0000000000) >> 24 | + (word & 0xff00000000) >> 8 | + (word & 0xff000000) << 8 | + (word & 0xff0000) << 24 | + (word & 0xff00) << 40 | + (word & 0xff) << 56; +# else /* W == 4 */ + return + (word & 0xff000000) >> 24 | + (word & 0xff0000) >> 8 | + (word & 0xff00) << 8 | + (word & 0xff) << 24; +# endif +} +#endif + +/* CRC polynomial. */ +#define POLY 0xedb88320 /* p(x) reflected, with x^32 implied */ #ifdef DYNAMIC_CRC_TABLE -local volatile int crc_table_empty = 1; -local z_crc_t FAR crc_table[TBLS][256]; +local z_crc_t FAR crc_table[256]; +local z_crc_t FAR x2n_table[32]; local void make_crc_table OF((void)); +#ifdef W + local z_word_t FAR crc_big_table[256]; + local z_crc_t FAR crc_braid_table[W][256]; + local z_word_t FAR crc_braid_big_table[W][256]; + local void braid OF((z_crc_t [][256], z_word_t [][256], int, int)); +#endif #ifdef MAKECRCH - local void write_table OF((FILE *, const z_crc_t FAR *)); + local void write_table OF((FILE *, const z_crc_t FAR *, int)); + local void write_table32hi OF((FILE *, const z_word_t FAR *, int)); + local void write_table64 OF((FILE *, const z_word_t FAR *, int)); #endif /* MAKECRCH */ + +/* + Define a once() function depending on the availability of atomics. If this is + compiled with DYNAMIC_CRC_TABLE defined, and if CRCs will be computed in + multiple threads, and if atomics are not available, then get_crc_table() must + be called to initialize the tables and must return before any threads are + allowed to compute or combine CRCs. + */ + +/* Definition of once functionality. */ +typedef struct once_s once_t; +local void once OF((once_t *, void (*)(void))); + +/* Check for the availability of atomics. */ +#if defined(__STDC__) && __STDC_VERSION__ >= 201112L && \ + !defined(__STDC_NO_ATOMICS__) + +#include + +/* Structure for once(), which must be initialized with ONCE_INIT. */ +struct once_s { + atomic_flag begun; + atomic_int done; +}; +#define ONCE_INIT {ATOMIC_FLAG_INIT, 0} + +/* + Run the provided init() function exactly once, even if multiple threads + invoke once() at the same time. The state must be a once_t initialized with + ONCE_INIT. + */ +local void once(state, init) + once_t *state; + void (*init)(void); +{ + if (!atomic_load(&state->done)) { + if (atomic_flag_test_and_set(&state->begun)) + while (!atomic_load(&state->done)) + ; + else { + init(); + atomic_store(&state->done, 1); + } + } +} + +#else /* no atomics */ + +/* Structure for once(), which must be initialized with ONCE_INIT. */ +struct once_s { + volatile int begun; + volatile int done; +}; +#define ONCE_INIT {0, 0} + +/* Test and set. Alas, not atomic, but tries to minimize the period of + vulnerability. */ +local int test_and_set OF((int volatile *)); +local int test_and_set(flag) + int volatile *flag; +{ + int was; + + was = *flag; + *flag = 1; + return was; +} + +/* Run the provided init() function once. This is not thread-safe. */ +local void once(state, init) + once_t *state; + void (*init)(void); +{ + if (!state->done) { + if (test_and_set(&state->begun)) + while (!state->done) + ; + else { + init(); + state->done = 1; + } + } +} + +#endif + +/* State for once(). */ +local once_t made = ONCE_INIT; + /* Generate tables 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 + 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 + 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, + byte 0xb1 is the polynomial x^7+x^3+x^2+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 + 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. + 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 CRCs on data a byte at a time for all + combinations of CRC register values and incoming bytes. + */ - The first table is simply the CRC of all possible eight bit values. This is - all the information needed to generate CRCs on data a byte at a time for all - combinations of CRC register values and incoming bytes. The remaining tables - allow for word-at-a-time CRC calculation for both big-endian and little- - endian machines, where a word is four bytes. -*/ local void make_crc_table() { - z_crc_t c; - int n, k; - z_crc_t poly; /* polynomial exclusive-or pattern */ - /* terms of polynomial defining this crc (except x^32): */ - static volatile int first = 1; /* flag to limit concurrent making */ - static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; + unsigned i, j, n; + z_crc_t p; - /* See if another task is already doing this (not thread-safe, but better - than nothing -- significantly reduces duration of vulnerability in - case the advice about DYNAMIC_CRC_TABLE is ignored) */ - if (first) { - first = 0; - - /* make exclusive-or pattern from polynomial (0xedb88320UL) */ - poly = 0; - for (n = 0; n < (int)(sizeof(p)/sizeof(unsigned char)); n++) - poly |= (z_crc_t)1 << (31 - p[n]); - - /* generate a crc for every 8-bit value */ - for (n = 0; n < 256; n++) { - c = (z_crc_t)n; - for (k = 0; k < 8; k++) - c = c & 1 ? poly ^ (c >> 1) : c >> 1; - crc_table[0][n] = c; - } - -#ifdef BYFOUR - /* generate crc for each value followed by one, two, and three zeros, - and then the byte reversal of those as well as the first table */ - for (n = 0; n < 256; n++) { - c = crc_table[0][n]; - crc_table[4][n] = ZSWAP32(c); - for (k = 1; k < 4; k++) { - c = crc_table[0][c & 0xff] ^ (c >> 8); - crc_table[k][n] = c; - crc_table[k + 4][n] = ZSWAP32(c); - } - } -#endif /* BYFOUR */ - - crc_table_empty = 0; - } - else { /* not first */ - /* wait for the other guy to finish (not efficient, but rare) */ - while (crc_table_empty) - ; + /* initialize the CRC of bytes tables */ + for (i = 0; i < 256; i++) { + p = i; + for (j = 0; j < 8; j++) + p = p & 1 ? (p >> 1) ^ POLY : p >> 1; + crc_table[i] = p; +#ifdef W + crc_big_table[i] = byte_swap(p); +#endif } + /* initialize the x^2^n mod p(x) table */ + p = (z_crc_t)1 << 30; /* x^1 */ + x2n_table[0] = p; + for (n = 1; n < 32; n++) + x2n_table[n] = p = multmodp(p, p); + +#ifdef W + /* initialize the braiding tables -- needs x2n_table[] */ + braid(crc_braid_table, crc_braid_big_table, N, W); +#endif + #ifdef MAKECRCH - /* write out CRC tables to crc32.h */ { + /* + The crc32.h header file contains tables for both 32-bit and 64-bit + z_word_t's, and so requires a 64-bit type be available. In that case, + z_word_t must be defined to be 64-bits. This code then also generates + and writes out the tables for the case that z_word_t is 32 bits. + */ +#if !defined(W) || W != 8 +# error Need a 64-bit integer type in order to generate crc32.h. +#endif FILE *out; + int k, n; + z_crc_t ltl[8][256]; + z_word_t big[8][256]; out = fopen("crc32.h", "w"); if (out == NULL) return; - fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n"); - fprintf(out, " * Generated automatically by crc32.c\n */\n\n"); - fprintf(out, "local const z_crc_t FAR "); - fprintf(out, "crc_table[TBLS][256] =\n{\n {\n"); - write_table(out, crc_table[0]); -# ifdef BYFOUR - fprintf(out, "#ifdef BYFOUR\n"); - for (k = 1; k < 8; k++) { - fprintf(out, " },\n {\n"); - write_table(out, crc_table[k]); + + /* write out little-endian CRC table to crc32.h */ + fprintf(out, + "/* crc32.h -- tables for rapid CRC calculation\n" + " * Generated automatically by crc32.c\n */\n" + "\n" + "local const z_crc_t FAR crc_table[] = {\n" + " "); + write_table(out, crc_table, 256); + fprintf(out, + "};\n"); + + /* write out big-endian CRC table for 64-bit z_word_t to crc32.h */ + fprintf(out, + "\n" + "#ifdef W\n" + "\n" + "#if W == 8\n" + "\n" + "local const z_word_t FAR crc_big_table[] = {\n" + " "); + write_table64(out, crc_big_table, 256); + fprintf(out, + "};\n"); + + /* write out big-endian CRC table for 32-bit z_word_t to crc32.h */ + fprintf(out, + "\n" + "#else /* W == 4 */\n" + "\n" + "local const z_word_t FAR crc_big_table[] = {\n" + " "); + write_table32hi(out, crc_big_table, 256); + fprintf(out, + "};\n" + "\n" + "#endif\n"); + + /* write out braid tables for each value of N */ + for (n = 1; n <= 6; n++) { + fprintf(out, + "\n" + "#if N == %d\n", n); + + /* compute braid tables for this N and 64-bit word_t */ + braid(ltl, big, n, 8); + + /* write out braid tables for 64-bit z_word_t to crc32.h */ + fprintf(out, + "\n" + "#if W == 8\n" + "\n" + "local const z_crc_t FAR crc_braid_table[][256] = {\n"); + for (k = 0; k < 8; k++) { + fprintf(out, " {"); + write_table(out, ltl[k], 256); + fprintf(out, "}%s", k < 7 ? ",\n" : ""); + } + fprintf(out, + "};\n" + "\n" + "local const z_word_t FAR crc_braid_big_table[][256] = {\n"); + for (k = 0; k < 8; k++) { + fprintf(out, " {"); + write_table64(out, big[k], 256); + fprintf(out, "}%s", k < 7 ? ",\n" : ""); + } + fprintf(out, + "};\n"); + + /* compute braid tables for this N and 32-bit word_t */ + braid(ltl, big, n, 4); + + /* write out braid tables for 32-bit z_word_t to crc32.h */ + fprintf(out, + "\n" + "#else /* W == 4 */\n" + "\n" + "local const z_crc_t FAR crc_braid_table[][256] = {\n"); + for (k = 0; k < 4; k++) { + fprintf(out, " {"); + write_table(out, ltl[k], 256); + fprintf(out, "}%s", k < 3 ? ",\n" : ""); + } + fprintf(out, + "};\n" + "\n" + "local const z_word_t FAR crc_braid_big_table[][256] = {\n"); + for (k = 0; k < 4; k++) { + fprintf(out, " {"); + write_table32hi(out, big[k], 256); + fprintf(out, "}%s", k < 3 ? ",\n" : ""); + } + fprintf(out, + "};\n" + "\n" + "#endif\n" + "\n" + "#endif\n"); } - fprintf(out, "#endif\n"); -# endif /* BYFOUR */ - fprintf(out, " }\n};\n"); + fprintf(out, + "\n" + "#endif\n"); + + /* write out zeros operator table to crc32.h */ + fprintf(out, + "\n" + "local const z_crc_t FAR x2n_table[] = {\n" + " "); + write_table(out, x2n_table, 32); + fprintf(out, + "};\n"); fclose(out); } #endif /* MAKECRCH */ } #ifdef MAKECRCH -local void write_table(out, table) + +/* + Write the 32-bit values in table[0..k-1] to out, five per line in + hexadecimal separated by commas. + */ +local void write_table(out, table, k) FILE *out; const z_crc_t FAR *table; + int k; { int n; - for (n = 0; n < 256; n++) - fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : " ", + for (n = 0; n < k; n++) + fprintf(out, "%s0x%08lx%s", n == 0 || n % 5 ? "" : " ", (unsigned long)(table[n]), - n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", ")); + n == k - 1 ? "" : (n % 5 == 4 ? ",\n" : ", ")); } + +/* + Write the high 32-bits of each value in table[0..k-1] to out, five per line + in hexadecimal separated by commas. + */ +local void write_table32hi(out, table, k) +FILE *out; +const z_word_t FAR *table; +int k; +{ + int n; + + for (n = 0; n < k; n++) + fprintf(out, "%s0x%08lx%s", n == 0 || n % 5 ? "" : " ", + (unsigned long)(table[n] >> 32), + n == k - 1 ? "" : (n % 5 == 4 ? ",\n" : ", ")); +} + +/* + Write the 64-bit values in table[0..k-1] to out, three per line in + hexadecimal separated by commas. This assumes that if there is a 64-bit + type, then there is also a long long integer type, and it is at least 64 + bits. If not, then the type cast and format string can be adjusted + accordingly. + */ +local void write_table64(out, table, k) + FILE *out; + const z_word_t FAR *table; + int k; +{ + int n; + + for (n = 0; n < k; n++) + fprintf(out, "%s0x%016llx%s", n == 0 || n % 3 ? "" : " ", + (unsigned long long)(table[n]), + n == k - 1 ? "" : (n % 3 == 2 ? ",\n" : ", ")); +} + +/* Actually do the deed. */ +int main() +{ + make_crc_table(); + return 0; +} + #endif /* MAKECRCH */ +#ifdef W +/* + Generate the little and big-endian braid tables for the given n and z_word_t + size w. Each array must have room for w blocks of 256 elements. + */ +local void braid(ltl, big, n, w) + z_crc_t ltl[][256]; + z_word_t big[][256]; + int n; + int w; +{ + int k; + z_crc_t i, p, q; + for (k = 0; k < w; k++) { + p = x2nmodp((n * w + 3 - k) << 3, 0); + ltl[k][0] = 0; + big[w - 1 - k][0] = 0; + for (i = 1; i < 256; i++) { + ltl[k][i] = q = multmodp(i << 24, p); + big[w - 1 - k][i] = byte_swap(q); + } + } +} +#endif + #else /* !DYNAMIC_CRC_TABLE */ /* ======================================================================== - * Tables of CRC-32s of all single-byte values, made by make_crc_table(). + * Tables for byte-wise and braided CRC-32 calculations, and a table of powers + * of x for combining CRC-32s, all made by make_crc_table(). */ #include "crc32.h" #endif /* DYNAMIC_CRC_TABLE */ +/* ======================================================================== + * Routines used for CRC calculation. Some are also required for the table + * generation above. + */ + +/* + Return a(x) multiplied by b(x) modulo p(x), where p(x) is the CRC polynomial, + reflected. For speed, this requires that a not be zero. + */ +local z_crc_t multmodp(a, b) + z_crc_t a; + z_crc_t b; +{ + z_crc_t m, p; + + m = (z_crc_t)1 << 31; + p = 0; + for (;;) { + if (a & m) { + p ^= b; + if ((a & (m - 1)) == 0) + break; + } + m >>= 1; + b = b & 1 ? (b >> 1) ^ POLY : b >> 1; + } + return p; +} + +/* + Return x^(n * 2^k) modulo p(x). Requires that x2n_table[] has been + initialized. + */ +local z_crc_t x2nmodp(n, k) + z_off64_t n; + unsigned k; +{ + z_crc_t p; + + p = (z_crc_t)1 << 31; /* x^0 == 1 */ + while (n) { + if (n & 1) + p = multmodp(x2n_table[k & 31], p); + n >>= 1; + k++; + } + return p; +} + /* ========================================================================= - * This function can be used by asm versions of crc32() + * This function can be used by asm versions of crc32(), and to force the + * generation of the CRC tables in a threaded application. */ const z_crc_t FAR * ZEXPORT get_crc_table() { #ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) - make_crc_table(); + once(&made, make_crc_table); #endif /* DYNAMIC_CRC_TABLE */ return (const z_crc_t FAR *)crc_table; } -/* ========================================================================= */ -#define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8) -#define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1 +/* ========================================================================= + * Use ARM machine instructions if available. This will compute the CRC about + * ten times faster than the braided calculation. This code does not check for + * the presence of the CRC instruction at run time. __ARM_FEATURE_CRC32 will + * only be defined if the compilation specifies an ARM processor architecture + * that has the instructions. For example, compiling with -march=armv8.1-a or + * -march=armv8-a+crc, or -march=native if the compile machine has the crc32 + * instructions. + */ +#ifdef ARMCRC32 + +/* + Constants empirically determined to maximize speed. These values are from + measurements on a Cortex-A57. Your mileage may vary. + */ +#define Z_BATCH 3990 /* number of words in a batch */ +#define Z_BATCH_ZEROS 0xa10d3d0c /* computed from Z_BATCH = 3990 */ +#define Z_BATCH_MIN 800 /* fewest words in a final batch */ + +unsigned long ZEXPORT crc32_z(crc, buf, len) + unsigned long crc; + const unsigned char FAR *buf; + z_size_t len; +{ + z_crc_t val; + z_word_t crc1, crc2; + const z_word_t *word; + z_word_t val0, val1, val2; + z_size_t last, last2, i; + z_size_t num; + + /* Return initial CRC, if requested. */ + if (buf == Z_NULL) return 0; + +#ifdef DYNAMIC_CRC_TABLE + once(&made, make_crc_table); +#endif /* DYNAMIC_CRC_TABLE */ + + /* Pre-condition the CRC */ + crc ^= 0xffffffff; + + /* Compute the CRC up to a word boundary. */ + while (len && ((z_size_t)buf & 7) != 0) { + len--; + val = *buf++; + __asm__ volatile("crc32b %w0, %w0, %w1" : "+r"(crc) : "r"(val)); + } + + /* Prepare to compute the CRC on full 64-bit words word[0..num-1]. */ + word = (z_word_t const *)buf; + num = len >> 3; + len &= 7; + + /* Do three interleaved CRCs to realize the throughput of one crc32x + instruction per cycle. Each CRC is calcuated on Z_BATCH words. The three + CRCs are combined into a single CRC after each set of batches. */ + while (num >= 3 * Z_BATCH) { + crc1 = 0; + crc2 = 0; + for (i = 0; i < Z_BATCH; i++) { + val0 = word[i]; + val1 = word[i + Z_BATCH]; + val2 = word[i + 2 * Z_BATCH]; + __asm__ volatile("crc32x %w0, %w0, %x1" : "+r"(crc) : "r"(val0)); + __asm__ volatile("crc32x %w0, %w0, %x1" : "+r"(crc1) : "r"(val1)); + __asm__ volatile("crc32x %w0, %w0, %x1" : "+r"(crc2) : "r"(val2)); + } + word += 3 * Z_BATCH; + num -= 3 * Z_BATCH; + crc = multmodp(Z_BATCH_ZEROS, crc) ^ crc1; + crc = multmodp(Z_BATCH_ZEROS, crc) ^ crc2; + } + + /* Do one last smaller batch with the remaining words, if there are enough + to pay for the combination of CRCs. */ + last = num / 3; + if (last >= Z_BATCH_MIN) { + last2 = last << 1; + crc1 = 0; + crc2 = 0; + for (i = 0; i < last; i++) { + val0 = word[i]; + val1 = word[i + last]; + val2 = word[i + last2]; + __asm__ volatile("crc32x %w0, %w0, %x1" : "+r"(crc) : "r"(val0)); + __asm__ volatile("crc32x %w0, %w0, %x1" : "+r"(crc1) : "r"(val1)); + __asm__ volatile("crc32x %w0, %w0, %x1" : "+r"(crc2) : "r"(val2)); + } + word += 3 * last; + num -= 3 * last; + val = x2nmodp(last, 6); + crc = multmodp(val, crc) ^ crc1; + crc = multmodp(val, crc) ^ crc2; + } + + /* Compute the CRC on any remaining words. */ + for (i = 0; i < num; i++) { + val0 = word[i]; + __asm__ volatile("crc32x %w0, %w0, %x1" : "+r"(crc) : "r"(val0)); + } + word += num; + + /* Complete the CRC on any remaining bytes. */ + buf = (const unsigned char FAR *)word; + while (len) { + len--; + val = *buf++; + __asm__ volatile("crc32b %w0, %w0, %w1" : "+r"(crc) : "r"(val)); + } + + /* Return the CRC, post-conditioned. */ + return crc ^ 0xffffffff; +} + +#else + +#ifdef W + +/* + Return the CRC of the W bytes in the word_t data, taking the + least-significant byte of the word as the first byte of data, without any pre + or post conditioning. This is used to combine the CRCs of each braid. + */ +local z_crc_t crc_word(data) + z_word_t data; +{ + int k; + for (k = 0; k < W; k++) + data = (data >> 8) ^ crc_table[data & 0xff]; + return (z_crc_t)data; +} + +local z_word_t crc_word_big(data) + z_word_t data; +{ + int k; + for (k = 0; k < W; k++) + data = (data << 8) ^ + crc_big_table[(data >> ((W - 1) << 3)) & 0xff]; + return data; +} + +#endif /* ========================================================================= */ unsigned long ZEXPORT crc32_z(crc, buf, len) @@ -203,35 +740,324 @@ unsigned long ZEXPORT crc32_z(crc, buf, len) const unsigned char FAR *buf; z_size_t len; { - if (buf == Z_NULL) return 0UL; + /* Return initial CRC, if requested. */ + if (buf == Z_NULL) return 0; #ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) - make_crc_table(); + once(&made, make_crc_table); #endif /* DYNAMIC_CRC_TABLE */ -#ifdef BYFOUR - if (sizeof(void *) == sizeof(ptrdiff_t)) { - z_crc_t endian; + /* Pre-condition the CRC */ + crc ^= 0xffffffff; +#ifdef W + + /* If provided enough bytes, do a braided CRC calculation. */ + if (len >= N * W + W - 1) { + z_size_t blks; + z_word_t const *words; + unsigned endian; + int k; + + /* Compute the CRC up to a z_word_t boundary. */ + while (len && ((z_size_t)buf & (W - 1)) != 0) { + len--; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + } + + /* Compute the CRC on as many N z_word_t blocks as are available. */ + blks = len / (N * W); + len -= blks * N * W; + words = (z_word_t const *)buf; + + /* Do endian check at execution time instead of compile time, since ARM + processors can change the endianess at execution time. If the + compiler knows what the endianess will be, it can optimize out the + check and the unused branch. */ endian = 1; - if (*((unsigned char *)(&endian))) - return crc32_little(crc, buf, len); - else - return crc32_big(crc, buf, len); + if (*(unsigned char *)&endian) { + /* Little endian. */ + + z_crc_t crc0; + z_word_t word0; +#if N > 1 + z_crc_t crc1; + z_word_t word1; +#if N > 2 + z_crc_t crc2; + z_word_t word2; +#if N > 3 + z_crc_t crc3; + z_word_t word3; +#if N > 4 + z_crc_t crc4; + z_word_t word4; +#if N > 5 + z_crc_t crc5; + z_word_t word5; +#endif +#endif +#endif +#endif +#endif + + /* Initialize the CRC for each braid. */ + crc0 = crc; +#if N > 1 + crc1 = 0; +#if N > 2 + crc2 = 0; +#if N > 3 + crc3 = 0; +#if N > 4 + crc4 = 0; +#if N > 5 + crc5 = 0; +#endif +#endif +#endif +#endif +#endif + + /* + Process the first blks-1 blocks, computing the CRCs on each braid + independently. + */ + while (--blks) { + /* Load the word for each braid into registers. */ + word0 = crc0 ^ words[0]; +#if N > 1 + word1 = crc1 ^ words[1]; +#if N > 2 + word2 = crc2 ^ words[2]; +#if N > 3 + word3 = crc3 ^ words[3]; +#if N > 4 + word4 = crc4 ^ words[4]; +#if N > 5 + word5 = crc5 ^ words[5]; +#endif +#endif +#endif +#endif +#endif + words += N; + + /* Compute and update the CRC for each word. The loop should + get unrolled. */ + crc0 = crc_braid_table[0][word0 & 0xff]; +#if N > 1 + crc1 = crc_braid_table[0][word1 & 0xff]; +#if N > 2 + crc2 = crc_braid_table[0][word2 & 0xff]; +#if N > 3 + crc3 = crc_braid_table[0][word3 & 0xff]; +#if N > 4 + crc4 = crc_braid_table[0][word4 & 0xff]; +#if N > 5 + crc5 = crc_braid_table[0][word5 & 0xff]; +#endif +#endif +#endif +#endif +#endif + for (k = 1; k < W; k++) { + crc0 ^= crc_braid_table[k][(word0 >> (k << 3)) & 0xff]; +#if N > 1 + crc1 ^= crc_braid_table[k][(word1 >> (k << 3)) & 0xff]; +#if N > 2 + crc2 ^= crc_braid_table[k][(word2 >> (k << 3)) & 0xff]; +#if N > 3 + crc3 ^= crc_braid_table[k][(word3 >> (k << 3)) & 0xff]; +#if N > 4 + crc4 ^= crc_braid_table[k][(word4 >> (k << 3)) & 0xff]; +#if N > 5 + crc5 ^= crc_braid_table[k][(word5 >> (k << 3)) & 0xff]; +#endif +#endif +#endif +#endif +#endif + } + } + + /* + Process the last block, combining the CRCs of the N braids at the + same time. + */ + crc = crc_word(crc0 ^ words[0]); +#if N > 1 + crc = crc_word(crc1 ^ words[1] ^ crc); +#if N > 2 + crc = crc_word(crc2 ^ words[2] ^ crc); +#if N > 3 + crc = crc_word(crc3 ^ words[3] ^ crc); +#if N > 4 + crc = crc_word(crc4 ^ words[4] ^ crc); +#if N > 5 + crc = crc_word(crc5 ^ words[5] ^ crc); +#endif +#endif +#endif +#endif +#endif + words += N; + } + else { + /* Big endian. */ + + z_word_t crc0, word0, comb; +#if N > 1 + z_word_t crc1, word1; +#if N > 2 + z_word_t crc2, word2; +#if N > 3 + z_word_t crc3, word3; +#if N > 4 + z_word_t crc4, word4; +#if N > 5 + z_word_t crc5, word5; +#endif +#endif +#endif +#endif +#endif + + /* Initialize the CRC for each braid. */ + crc0 = byte_swap(crc); +#if N > 1 + crc1 = 0; +#if N > 2 + crc2 = 0; +#if N > 3 + crc3 = 0; +#if N > 4 + crc4 = 0; +#if N > 5 + crc5 = 0; +#endif +#endif +#endif +#endif +#endif + + /* + Process the first blks-1 blocks, computing the CRCs on each braid + independently. + */ + while (--blks) { + /* Load the word for each braid into registers. */ + word0 = crc0 ^ words[0]; +#if N > 1 + word1 = crc1 ^ words[1]; +#if N > 2 + word2 = crc2 ^ words[2]; +#if N > 3 + word3 = crc3 ^ words[3]; +#if N > 4 + word4 = crc4 ^ words[4]; +#if N > 5 + word5 = crc5 ^ words[5]; +#endif +#endif +#endif +#endif +#endif + words += N; + + /* Compute and update the CRC for each word. The loop should + get unrolled. */ + crc0 = crc_braid_big_table[0][word0 & 0xff]; +#if N > 1 + crc1 = crc_braid_big_table[0][word1 & 0xff]; +#if N > 2 + crc2 = crc_braid_big_table[0][word2 & 0xff]; +#if N > 3 + crc3 = crc_braid_big_table[0][word3 & 0xff]; +#if N > 4 + crc4 = crc_braid_big_table[0][word4 & 0xff]; +#if N > 5 + crc5 = crc_braid_big_table[0][word5 & 0xff]; +#endif +#endif +#endif +#endif +#endif + for (k = 1; k < W; k++) { + crc0 ^= crc_braid_big_table[k][(word0 >> (k << 3)) & 0xff]; +#if N > 1 + crc1 ^= crc_braid_big_table[k][(word1 >> (k << 3)) & 0xff]; +#if N > 2 + crc2 ^= crc_braid_big_table[k][(word2 >> (k << 3)) & 0xff]; +#if N > 3 + crc3 ^= crc_braid_big_table[k][(word3 >> (k << 3)) & 0xff]; +#if N > 4 + crc4 ^= crc_braid_big_table[k][(word4 >> (k << 3)) & 0xff]; +#if N > 5 + crc5 ^= crc_braid_big_table[k][(word5 >> (k << 3)) & 0xff]; +#endif +#endif +#endif +#endif +#endif + } + } + + /* + Process the last block, combining the CRCs of the N braids at the + same time. + */ + comb = crc_word_big(crc0 ^ words[0]); +#if N > 1 + comb = crc_word_big(crc1 ^ words[1] ^ comb); +#if N > 2 + comb = crc_word_big(crc2 ^ words[2] ^ comb); +#if N > 3 + comb = crc_word_big(crc3 ^ words[3] ^ comb); +#if N > 4 + comb = crc_word_big(crc4 ^ words[4] ^ comb); +#if N > 5 + comb = crc_word_big(crc5 ^ words[5] ^ comb); +#endif +#endif +#endif +#endif +#endif + words += N; + crc = byte_swap(comb); + } + + /* + Update the pointer to the remaining bytes to process. + */ + buf = (unsigned char const *)words; } -#endif /* BYFOUR */ - crc = crc ^ 0xffffffffUL; + +#endif /* W */ + + /* Complete the computation of the CRC on any remaining bytes. */ while (len >= 8) { - DO8; len -= 8; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; } - if (len) do { - DO1; - } while (--len); - return crc ^ 0xffffffffUL; + while (len) { + len--; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + } + + /* Return the CRC, post-conditioned. */ + return crc ^ 0xffffffff; } +#endif + /* ========================================================================= */ unsigned long ZEXPORT crc32(crc, buf, len) unsigned long crc; @@ -241,186 +1067,16 @@ unsigned long ZEXPORT crc32(crc, buf, len) return crc32_z(crc, buf, len); } -#ifdef BYFOUR - -/* - This BYFOUR code accesses the passed unsigned char * buffer with a 32-bit - integer pointer type. This violates the strict aliasing rule, where a - compiler can assume, for optimization purposes, that two pointers to - fundamentally different types won't ever point to the same memory. This can - manifest as a problem only if one of the pointers is written to. This code - only reads from those pointers. So long as this code remains isolated in - this compilation unit, there won't be a problem. For this reason, this code - should not be copied and pasted into a compilation unit in which other code - writes to the buffer that is passed to these routines. - */ - /* ========================================================================= */ -#define DOLIT4 c ^= *buf4++; \ - c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \ - crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24] -#define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4 - -/* ========================================================================= */ -local unsigned long crc32_little(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - z_size_t len; -{ - register z_crc_t c; - register const z_crc_t FAR *buf4; - - c = (z_crc_t)crc; - c = ~c; - while (len && ((ptrdiff_t)buf & 3)) { - c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); - len--; - } - - buf4 = (const z_crc_t FAR *)(const void FAR *)buf; - while (len >= 32) { - DOLIT32; - len -= 32; - } - while (len >= 4) { - DOLIT4; - len -= 4; - } - buf = (const unsigned char FAR *)buf4; - - if (len) do { - c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); - } while (--len); - c = ~c; - return (unsigned long)c; -} - -/* ========================================================================= */ -#define DOBIG4 c ^= *buf4++; \ - c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ - crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] -#define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 - -/* ========================================================================= */ -local unsigned long crc32_big(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - z_size_t len; -{ - register z_crc_t c; - register const z_crc_t FAR *buf4; - - c = ZSWAP32((z_crc_t)crc); - c = ~c; - while (len && ((ptrdiff_t)buf & 3)) { - c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); - len--; - } - - buf4 = (const z_crc_t FAR *)(const void FAR *)buf; - while (len >= 32) { - DOBIG32; - len -= 32; - } - while (len >= 4) { - DOBIG4; - len -= 4; - } - buf = (const unsigned char FAR *)buf4; - - if (len) do { - c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); - } while (--len); - c = ~c; - return (unsigned long)(ZSWAP32(c)); -} - -#endif /* BYFOUR */ - -#define GF2_DIM 32 /* dimension of GF(2) vectors (length of CRC) */ - -/* ========================================================================= */ -local unsigned long gf2_matrix_times(mat, vec) - unsigned long *mat; - unsigned long vec; -{ - unsigned long sum; - - sum = 0; - while (vec) { - if (vec & 1) - sum ^= *mat; - vec >>= 1; - mat++; - } - return sum; -} - -/* ========================================================================= */ -local void gf2_matrix_square(square, mat) - unsigned long *square; - unsigned long *mat; -{ - int n; - - for (n = 0; n < GF2_DIM; n++) - square[n] = gf2_matrix_times(mat, mat[n]); -} - -/* ========================================================================= */ -local uLong crc32_combine_(crc1, crc2, len2) +uLong ZEXPORT crc32_combine64(crc1, crc2, len2) uLong crc1; uLong crc2; z_off64_t len2; { - int n; - unsigned long row; - unsigned long even[GF2_DIM]; /* even-power-of-two zeros operator */ - unsigned long odd[GF2_DIM]; /* odd-power-of-two zeros operator */ - - /* degenerate case (also disallow negative lengths) */ - if (len2 <= 0) - return crc1; - - /* put operator for one zero bit in odd */ - odd[0] = 0xedb88320UL; /* CRC-32 polynomial */ - row = 1; - for (n = 1; n < GF2_DIM; n++) { - odd[n] = row; - row <<= 1; - } - - /* put operator for two zero bits in even */ - gf2_matrix_square(even, odd); - - /* put operator for four zero bits in odd */ - gf2_matrix_square(odd, even); - - /* apply len2 zeros to crc1 (first square will put the operator for one - zero byte, eight zero bits, in even) */ - do { - /* apply zeros operator for this bit of len2 */ - gf2_matrix_square(even, odd); - if (len2 & 1) - crc1 = gf2_matrix_times(even, crc1); - len2 >>= 1; - - /* if no more bits set, then done */ - if (len2 == 0) - break; - - /* another iteration of the loop with odd and even swapped */ - gf2_matrix_square(odd, even); - if (len2 & 1) - crc1 = gf2_matrix_times(odd, crc1); - len2 >>= 1; - - /* if no more bits set, then done */ - } while (len2 != 0); - - /* return combined crc */ - crc1 ^= crc2; - return crc1; +#ifdef DYNAMIC_CRC_TABLE + once(&made, make_crc_table); +#endif /* DYNAMIC_CRC_TABLE */ + return multmodp(x2nmodp(len2, 3), crc1) ^ crc2; } /* ========================================================================= */ @@ -429,13 +1085,31 @@ uLong ZEXPORT crc32_combine(crc1, crc2, len2) uLong crc2; z_off_t len2; { - return crc32_combine_(crc1, crc2, len2); + return crc32_combine64(crc1, crc2, len2); } -uLong ZEXPORT crc32_combine64(crc1, crc2, len2) - uLong crc1; - uLong crc2; +/* ========================================================================= */ +uLong ZEXPORT crc32_combine_gen64(len2) z_off64_t len2; { - return crc32_combine_(crc1, crc2, len2); +#ifdef DYNAMIC_CRC_TABLE + once(&made, make_crc_table); +#endif /* DYNAMIC_CRC_TABLE */ + return x2nmodp(len2, 3); +} + +/* ========================================================================= */ +uLong ZEXPORT crc32_combine_gen(len2) + z_off_t len2; +{ + return crc32_combine_gen64(len2); +} + +/* ========================================================================= */ +uLong crc32_combine_op(crc1, crc2, op) + uLong crc1; + uLong crc2; + uLong op; +{ + return multmodp(op, crc1) ^ crc2; } diff --git a/source/externals/zlib/src/deflate.c b/source/externals/zlib/src/deflate.c index 44e5891130..1fd72ac286 100644 --- a/source/externals/zlib/src/deflate.c +++ b/source/externals/zlib/src/deflate.c @@ -1,5 +1,5 @@ /* deflate.c -- compress data using the deflation algorithm - * Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + * Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -51,7 +51,7 @@ #include "deflate.h" const char deflate_copyright[] = - " deflate 1.2.11 Copyright 1995-2017 Jean-loup Gailly and Mark Adler "; + " deflate 1.2.12 Copyright 1995-2022 Jean-loup Gailly and 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 @@ -189,8 +189,11 @@ local const config configuration_table[10] = { * 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)); + do { \ + s->head[s->hash_size-1] = NIL; \ + zmemzero((Bytef *)s->head, \ + (unsigned)(s->hash_size-1)*sizeof(*s->head)); \ + } while (0) /* =========================================================================== * Slide the hash table when sliding the window down (could be avoided with 32 @@ -251,11 +254,6 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, int wrap = 1; 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; @@ -319,15 +317,57 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte)); s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos)); + /* Avoid use of uninitialized value, see: + * https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11360 + */ + zmemzero(s->prev, s->w_size * sizeof(Pos)); s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos)); s->high_water = 0; /* nothing written to s->window yet */ 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); + /* We overlay pending_buf and sym_buf. This works since the average size + * for length/distance pairs over any compressed block is assured to be 31 + * bits or less. + * + * Analysis: The longest fixed codes are a length code of 8 bits plus 5 + * extra bits, for lengths 131 to 257. The longest fixed distance codes are + * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest + * possible fixed-codes length/distance pair is then 31 bits total. + * + * sym_buf starts one-fourth of the way into pending_buf. So there are + * three bytes in sym_buf for every four bytes in pending_buf. Each symbol + * in sym_buf is three bytes -- two for the distance and one for the + * literal/length. As each symbol is consumed, the pointer to the next + * sym_buf value to read moves forward three bytes. From that symbol, up to + * 31 bits are written to pending_buf. The closest the written pending_buf + * bits gets to the next sym_buf symbol to read is just before the last + * code is written. At that time, 31*(n-2) bits have been written, just + * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at + * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1 + * symbols are written.) The closest the writing gets to what is unread is + * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and + * can range from 128 to 32768. + * + * Therefore, at a minimum, there are 142 bits of space between what is + * written and what is read in the overlain buffers, so the symbols cannot + * be overwritten by the compressed data. That space is actually 139 bits, + * due to the three-bit fixed-code block header. + * + * That covers the case where either Z_FIXED is specified, forcing fixed + * codes, or when the use of fixed codes is chosen, because that choice + * results in a smaller compressed block than dynamic codes. That latter + * condition then assures that the above analysis also covers all dynamic + * blocks. A dynamic-code block will only be chosen to be emitted if it has + * fewer bits than a fixed-code block would for the same set of symbols. + * Therefore its average symbol length is assured to be less than 31. So + * the compressed data for a dynamic block also cannot overwrite the + * symbols from which it is being constructed. + */ + + s->pending_buf = (uchf *) ZALLOC(strm, s->lit_bufsize, 4); + s->pending_buf_size = (ulg)s->lit_bufsize * 4; if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL || s->pending_buf == Z_NULL) { @@ -336,8 +376,12 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, 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->sym_buf = s->pending_buf + s->lit_bufsize; + s->sym_end = (s->lit_bufsize - 1) * 3; + /* We avoid equality with lit_bufsize*3 because of wraparound at 64K + * on 16 bit machines and because stored blocks are restricted to + * 64K-1 bytes. + */ s->level = level; s->strategy = strategy; @@ -487,13 +531,13 @@ int ZEXPORT deflateResetKeep (strm) #ifdef GZIP s->wrap == 2 ? GZIP_STATE : #endif - s->wrap ? INIT_STATE : BUSY_STATE; + INIT_STATE; strm->adler = #ifdef GZIP s->wrap == 2 ? crc32(0L, Z_NULL, 0) : #endif adler32(0L, Z_NULL, 0); - s->last_flush = Z_NO_FLUSH; + s->last_flush = -2; _tr_init(s); @@ -548,7 +592,8 @@ int ZEXPORT deflatePrime (strm, bits, value) if (deflateStateCheck(strm)) return Z_STREAM_ERROR; s = strm->state; - if ((Bytef *)(s->d_buf) < s->pending_out + ((Buf_size + 7) >> 3)) + if (bits < 0 || bits > 16 || + s->sym_buf < s->pending_out + ((Buf_size + 7) >> 3)) return Z_BUF_ERROR; do { put = Buf_size - s->bi_valid; @@ -586,12 +631,12 @@ int ZEXPORT deflateParams(strm, level, strategy) func = configuration_table[s->level].func; if ((strategy != s->strategy || func != configuration_table[level].func) && - s->high_water) { + s->last_flush != -2) { /* Flush the last buffer: */ int err = deflate(strm, Z_BLOCK); if (err == Z_STREAM_ERROR) return err; - if (strm->avail_out == 0) + if (strm->avail_in || (s->strstart - s->block_start) + s->lookahead) return Z_BUF_ERROR; } if (s->level != level) { @@ -810,6 +855,8 @@ int ZEXPORT deflate (strm, flush) } /* Write the header */ + if (s->status == INIT_STATE && s->wrap == 0) + s->status = BUSY_STATE; if (s->status == INIT_STATE) { /* zlib header */ uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8; @@ -1107,7 +1154,6 @@ int ZEXPORT deflateCopy (dest, source) #else deflate_state *ds; deflate_state *ss; - ushf *overlay; if (deflateStateCheck(source) || dest == Z_NULL) { @@ -1127,8 +1173,7 @@ int ZEXPORT deflateCopy (dest, source) 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; + ds->pending_buf = (uchf *) ZALLOC(dest, ds->lit_bufsize, 4); if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL || ds->pending_buf == Z_NULL) { @@ -1142,8 +1187,7 @@ int ZEXPORT deflateCopy (dest, source) 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->sym_buf = ds->pending_buf + ds->lit_bufsize; ds->l_desc.dyn_tree = ds->dyn_ltree; ds->d_desc.dyn_tree = ds->dyn_dtree; @@ -1512,6 +1556,8 @@ local void fill_window(s) s->match_start -= wsize; s->strstart -= wsize; /* we now have strstart >= MAX_DIST */ s->block_start -= (long) wsize; + if (s->insert > s->strstart) + s->insert = s->strstart; slide_hash(s); more += wsize; } @@ -1741,6 +1787,7 @@ local block_state deflate_stored(s, flush) s->matches = 2; /* clear hash */ zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size); s->strstart = s->w_size; + s->insert = s->strstart; } else { if (s->window_size - s->strstart <= used) { @@ -1749,12 +1796,14 @@ local block_state deflate_stored(s, flush) zmemcpy(s->window, s->window + s->w_size, s->strstart); if (s->matches < 2) s->matches++; /* add a pending slide_hash() */ + if (s->insert > s->strstart) + s->insert = s->strstart; } zmemcpy(s->window + s->strstart, s->strm->next_in - used, used); s->strstart += used; + s->insert += MIN(used, s->w_size - s->insert); } s->block_start = s->strstart; - s->insert += MIN(used, s->w_size - s->insert); } if (s->high_water < s->strstart) s->high_water = s->strstart; @@ -1769,7 +1818,7 @@ local block_state deflate_stored(s, flush) return block_done; /* Fill the window with any remaining input. */ - have = s->window_size - s->strstart - 1; + have = s->window_size - s->strstart; if (s->strm->avail_in > have && s->block_start >= (long)s->w_size) { /* Slide the window down. */ s->block_start -= s->w_size; @@ -1778,12 +1827,15 @@ local block_state deflate_stored(s, flush) if (s->matches < 2) s->matches++; /* add a pending slide_hash() */ have += s->w_size; /* more space now */ + if (s->insert > s->strstart) + s->insert = s->strstart; } if (have > s->strm->avail_in) have = s->strm->avail_in; if (have) { read_buf(s->strm, s->window + s->strstart, have); s->strstart += have; + s->insert += MIN(have, s->w_size - s->insert); } if (s->high_water < s->strstart) s->high_water = s->strstart; @@ -1911,7 +1963,7 @@ local block_state deflate_fast(s, flush) FLUSH_BLOCK(s, 1); return finish_done; } - if (s->last_lit) + if (s->sym_next) FLUSH_BLOCK(s, 0); return block_done; } @@ -2042,7 +2094,7 @@ local block_state deflate_slow(s, flush) FLUSH_BLOCK(s, 1); return finish_done; } - if (s->last_lit) + if (s->sym_next) FLUSH_BLOCK(s, 0); return block_done; } @@ -2117,7 +2169,7 @@ local block_state deflate_rle(s, flush) FLUSH_BLOCK(s, 1); return finish_done; } - if (s->last_lit) + if (s->sym_next) FLUSH_BLOCK(s, 0); return block_done; } @@ -2156,7 +2208,7 @@ local block_state deflate_huff(s, flush) FLUSH_BLOCK(s, 1); return finish_done; } - if (s->last_lit) + if (s->sym_next) FLUSH_BLOCK(s, 0); return block_done; } diff --git a/source/externals/zlib/src/gzlib.c b/source/externals/zlib/src/gzlib.c index 4105e6aff9..dddaf26873 100644 --- a/source/externals/zlib/src/gzlib.c +++ b/source/externals/zlib/src/gzlib.c @@ -1,11 +1,11 @@ /* gzlib.c -- zlib functions common to reading and writing gzip files - * Copyright (C) 2004-2017 Mark Adler + * Copyright (C) 2004-2019 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #include "gzguts.h" -#if defined(_WIN32) && !defined(__BORLANDC__) && !defined(__MINGW32__) +#if defined(_WIN32) && !defined(__BORLANDC__) # define LSEEK _lseeki64 #else #if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 @@ -81,6 +81,8 @@ local void gz_reset(state) state->past = 0; /* have not read past end yet */ state->how = LOOK; /* look for gzip header */ } + else /* for writing ... */ + state->reset = 0; /* no deflateReset pending */ state->seek = 0; /* no seek request pending */ gz_error(state, Z_OK, NULL); /* clear error */ state->x.pos = 0; /* no uncompressed data yet */ @@ -397,7 +399,7 @@ z_off64_t ZEXPORT gzseek64(file, offset, whence) /* if within raw area while reading, just go there */ if (state->mode == GZ_READ && state->how == COPY && state->x.pos + offset >= 0) { - ret = LSEEK(state->fd, offset - state->x.have, SEEK_CUR); + ret = LSEEK(state->fd, offset - (z_off64_t)state->x.have, SEEK_CUR); if (ret == -1) return -1; state->x.have = 0; diff --git a/source/externals/zlib/src/gzread.c b/source/externals/zlib/src/gzread.c index 14c3d41f83..884c9bfe4c 100644 --- a/source/externals/zlib/src/gzread.c +++ b/source/externals/zlib/src/gzread.c @@ -1,5 +1,5 @@ /* gzread.c -- zlib functions for reading gzip files - * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler + * Copyright (C) 2004-2017 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -314,7 +314,7 @@ local z_size_t gz_read(state, buf, len) got = 0; do { /* set n to the maximum amount of len that fits in an unsigned int */ - n = -1; + n = (unsigned)-1; if (n > len) n = (unsigned)len; @@ -447,7 +447,6 @@ z_size_t ZEXPORT gzfread(buf, size, nitems, file) int ZEXPORT gzgetc(file) gzFile file; { - int ret; unsigned char buf[1]; gz_statep state; @@ -469,8 +468,7 @@ int ZEXPORT gzgetc(file) } /* nothing there -- try gz_read() */ - ret = (int)gz_read(state, buf, 1); - return ret < 1 ? -1 : buf[0]; + return gz_read(state, buf, 1) < 1 ? -1 : buf[0]; } int ZEXPORT gzgetc_(file) diff --git a/source/externals/zlib/src/gzwrite.c b/source/externals/zlib/src/gzwrite.c index 796f28f374..a8ffc8f53d 100644 --- a/source/externals/zlib/src/gzwrite.c +++ b/source/externals/zlib/src/gzwrite.c @@ -1,5 +1,5 @@ /* gzwrite.c -- zlib functions for writing gzip files - * Copyright (C) 2004-2017 Mark Adler + * Copyright (C) 2004-2019 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -97,6 +97,15 @@ local int gz_comp(state, flush) return 0; } + /* check for a pending reset */ + if (state->reset) { + /* don't start a new gzip member unless there is data to write */ + if (strm->avail_in == 0) + return 0; + deflateReset(strm); + state->reset = 0; + } + /* run deflate() on provided input until it produces no more output */ ret = Z_OK; do { @@ -134,7 +143,7 @@ local int gz_comp(state, flush) /* if that completed a deflate stream, allow another to start */ if (flush == Z_FINISH) - deflateReset(strm); + state->reset = 1; /* all done, no errors */ return 0; @@ -349,12 +358,11 @@ int ZEXPORT gzputc(file, c) } /* -- see zlib.h -- */ -int ZEXPORT gzputs(file, str) +int ZEXPORT gzputs(file, s) gzFile file; - const char *str; + const char *s; { - int ret; - z_size_t len; + z_size_t len, put; gz_statep state; /* get internal structure */ @@ -367,15 +375,13 @@ int ZEXPORT gzputs(file, str) return -1; /* write string */ - len = strlen(str); - if (len > INT_MAX) { - gz_error(state, Z_DATA_ERROR, "requested length does not fit in int"); - return -1; + len = strlen(s); + if ((int)len < 0 || (unsigned)len != len) { + gz_error(state, Z_STREAM_ERROR, "string length does not fit in int"); + return -1; } - - /* write len bytes from buf (the return value will fit in an int) */ - ret = (int)gz_write(state, str, len); - return ret < (int)len ? -1 : ret; + put = gz_write(state, s, len); + return put < len ? -1 : (int)len; } #if defined(STDC) || defined(Z_HAVE_STDARG_H) @@ -447,7 +453,7 @@ int ZEXPORTVA gzvprintf(gzFile file, const char *format, va_list va) strm->avail_in = state->size; if (gz_comp(state, Z_NO_FLUSH) == -1) return state->err; - memcpy(state->in, state->in + state->size, left); + memmove(state->in, state->in + state->size, left); strm->next_in = state->in; strm->avail_in = left; } @@ -546,7 +552,7 @@ int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, strm->avail_in = state->size; if (gz_comp(state, Z_NO_FLUSH) == -1) return state->err; - memcpy(state->in, state->in + state->size, left); + memmove(state->in, state->in + state->size, left); strm->next_in = state->in; strm->avail_in = left; } diff --git a/source/externals/zlib/src/infback.c b/source/externals/zlib/src/infback.c index 59679ecbfc..a390c58e81 100644 --- a/source/externals/zlib/src/infback.c +++ b/source/externals/zlib/src/infback.c @@ -1,5 +1,5 @@ /* infback.c -- inflate using a call-back interface - * Copyright (C) 1995-2016 Mark Adler + * Copyright (C) 1995-2022 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -477,6 +477,7 @@ void FAR *out_desc; } Tracev((stderr, "inflate: codes ok\n")); state->mode = LEN; + /* fallthrough */ case LEN: /* use inflate_fast() if we have enough input and output */ diff --git a/source/externals/zlib/src/inffast.c b/source/externals/zlib/src/inffast.c index 0dbd1dbc09..1fec7f363f 100644 --- a/source/externals/zlib/src/inffast.c +++ b/source/externals/zlib/src/inffast.c @@ -70,7 +70,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ code const FAR *dcode; /* local strm->distcode */ unsigned lmask; /* mask for first level of length codes */ unsigned dmask; /* mask for first level of distance codes */ - code here; /* retrieved table entry */ + code const *here; /* retrieved table entry */ unsigned op; /* code bits, operation, extra bits, or */ /* window position, window bytes to copy */ unsigned len; /* match length, unused bytes */ @@ -107,20 +107,20 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ hold += (unsigned long)(*in++) << bits; bits += 8; } - here = lcode[hold & lmask]; + here = lcode + (hold & lmask); dolen: - op = (unsigned)(here.bits); + op = (unsigned)(here->bits); hold >>= op; bits -= op; - op = (unsigned)(here.op); + op = (unsigned)(here->op); if (op == 0) { /* literal */ - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + Tracevv((stderr, here->val >= 0x20 && here->val < 0x7f ? "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); - *out++ = (unsigned char)(here.val); + "inflate: literal 0x%02x\n", here->val)); + *out++ = (unsigned char)(here->val); } else if (op & 16) { /* length base */ - len = (unsigned)(here.val); + len = (unsigned)(here->val); op &= 15; /* number of extra bits */ if (op) { if (bits < op) { @@ -138,14 +138,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ hold += (unsigned long)(*in++) << bits; bits += 8; } - here = dcode[hold & dmask]; + here = dcode + (hold & dmask); dodist: - op = (unsigned)(here.bits); + op = (unsigned)(here->bits); hold >>= op; bits -= op; - op = (unsigned)(here.op); + op = (unsigned)(here->op); if (op & 16) { /* distance base */ - dist = (unsigned)(here.val); + dist = (unsigned)(here->val); op &= 15; /* number of extra bits */ if (bits < op) { hold += (unsigned long)(*in++) << bits; @@ -264,7 +264,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ } } else if ((op & 64) == 0) { /* 2nd level distance code */ - here = dcode[here.val + (hold & ((1U << op) - 1))]; + here = dcode + here->val + (hold & ((1U << op) - 1)); goto dodist; } else { @@ -274,7 +274,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ } } else if ((op & 64) == 0) { /* 2nd level length code */ - here = lcode[here.val + (hold & ((1U << op) - 1))]; + here = lcode + here->val + (hold & ((1U << op) - 1)); goto dolen; } else if (op & 32) { /* end-of-block */ diff --git a/source/externals/zlib/src/inflate.c b/source/externals/zlib/src/inflate.c index ac333e8c2e..7be8c63662 100644 --- a/source/externals/zlib/src/inflate.c +++ b/source/externals/zlib/src/inflate.c @@ -1,5 +1,5 @@ /* inflate.c -- zlib decompression - * Copyright (C) 1995-2016 Mark Adler + * Copyright (C) 1995-2022 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -130,6 +130,7 @@ z_streamp strm; state->mode = HEAD; state->last = 0; state->havedict = 0; + state->flags = -1; state->dmax = 32768U; state->head = Z_NULL; state->hold = 0; @@ -447,10 +448,10 @@ unsigned copy; /* check function to use adler32() for zlib or crc32() for gzip */ #ifdef GUNZIP -# define UPDATE(check, buf, len) \ +# define UPDATE_CHECK(check, buf, len) \ (state->flags ? crc32(check, buf, len) : adler32(check, buf, len)) #else -# define UPDATE(check, buf, len) adler32(check, buf, len) +# define UPDATE_CHECK(check, buf, len) adler32(check, buf, len) #endif /* check macros for header crc */ @@ -670,7 +671,6 @@ int flush; state->mode = FLAGS; break; } - state->flags = 0; /* expect zlib header */ if (state->head != Z_NULL) state->head->done = -1; if (!(state->wrap & 1) || /* check if zlib header allowed */ @@ -697,6 +697,7 @@ int flush; break; } state->dmax = 1U << len; + state->flags = 0; /* indicate zlib header */ Tracev((stderr, "inflate: zlib header ok\n")); strm->adler = state->check = adler32(0L, Z_NULL, 0); state->mode = hold & 0x200 ? DICTID : TYPE; @@ -722,6 +723,7 @@ int flush; CRC2(state->check, hold); INITBITS(); state->mode = TIME; + /* fallthrough */ case TIME: NEEDBITS(32); if (state->head != Z_NULL) @@ -730,6 +732,7 @@ int flush; CRC4(state->check, hold); INITBITS(); state->mode = OS; + /* fallthrough */ case OS: NEEDBITS(16); if (state->head != Z_NULL) { @@ -740,6 +743,7 @@ int flush; CRC2(state->check, hold); INITBITS(); state->mode = EXLEN; + /* fallthrough */ case EXLEN: if (state->flags & 0x0400) { NEEDBITS(16); @@ -753,6 +757,7 @@ int flush; else if (state->head != Z_NULL) state->head->extra = Z_NULL; state->mode = EXTRA; + /* fallthrough */ case EXTRA: if (state->flags & 0x0400) { copy = state->length; @@ -775,6 +780,7 @@ int flush; } state->length = 0; state->mode = NAME; + /* fallthrough */ case NAME: if (state->flags & 0x0800) { if (have == 0) goto inf_leave; @@ -796,6 +802,7 @@ int flush; state->head->name = Z_NULL; state->length = 0; state->mode = COMMENT; + /* fallthrough */ case COMMENT: if (state->flags & 0x1000) { if (have == 0) goto inf_leave; @@ -816,6 +823,7 @@ int flush; else if (state->head != Z_NULL) state->head->comment = Z_NULL; state->mode = HCRC; + /* fallthrough */ case HCRC: if (state->flags & 0x0200) { NEEDBITS(16); @@ -839,6 +847,7 @@ int flush; strm->adler = state->check = ZSWAP32(hold); INITBITS(); state->mode = DICT; + /* fallthrough */ case DICT: if (state->havedict == 0) { RESTORE(); @@ -846,8 +855,10 @@ int flush; } strm->adler = state->check = adler32(0L, Z_NULL, 0); state->mode = TYPE; + /* fallthrough */ case TYPE: if (flush == Z_BLOCK || flush == Z_TREES) goto inf_leave; + /* fallthrough */ case TYPEDO: if (state->last) { BYTEBITS(); @@ -898,8 +909,10 @@ int flush; INITBITS(); state->mode = COPY_; if (flush == Z_TREES) goto inf_leave; + /* fallthrough */ case COPY_: state->mode = COPY; + /* fallthrough */ case COPY: copy = state->length; if (copy) { @@ -935,6 +948,7 @@ int flush; Tracev((stderr, "inflate: table sizes ok\n")); state->have = 0; state->mode = LENLENS; + /* fallthrough */ case LENLENS: while (state->have < state->ncode) { NEEDBITS(3); @@ -956,6 +970,7 @@ int flush; Tracev((stderr, "inflate: code lengths ok\n")); state->have = 0; state->mode = CODELENS; + /* fallthrough */ case CODELENS: while (state->have < state->nlen + state->ndist) { for (;;) { @@ -1039,8 +1054,10 @@ int flush; Tracev((stderr, "inflate: codes ok\n")); state->mode = LEN_; if (flush == Z_TREES) goto inf_leave; + /* fallthrough */ case LEN_: state->mode = LEN; + /* fallthrough */ case LEN: if (have >= 6 && left >= 258) { RESTORE(); @@ -1090,6 +1107,7 @@ int flush; } state->extra = (unsigned)(here.op) & 15; state->mode = LENEXT; + /* fallthrough */ case LENEXT: if (state->extra) { NEEDBITS(state->extra); @@ -1100,6 +1118,7 @@ int flush; Tracevv((stderr, "inflate: length %u\n", state->length)); state->was = state->length; state->mode = DIST; + /* fallthrough */ case DIST: for (;;) { here = state->distcode[BITS(state->distbits)]; @@ -1127,6 +1146,7 @@ int flush; state->offset = (unsigned)here.val; state->extra = (unsigned)(here.op) & 15; state->mode = DISTEXT; + /* fallthrough */ case DISTEXT: if (state->extra) { NEEDBITS(state->extra); @@ -1143,6 +1163,7 @@ int flush; #endif Tracevv((stderr, "inflate: distance %u\n", state->offset)); state->mode = MATCH; + /* fallthrough */ case MATCH: if (left == 0) goto inf_leave; copy = out - left; @@ -1202,7 +1223,7 @@ int flush; state->total += out; if ((state->wrap & 4) && out) strm->adler = state->check = - UPDATE(state->check, put - out, out); + UPDATE_CHECK(state->check, put - out, out); out = left; if ((state->wrap & 4) && ( #ifdef GUNZIP @@ -1218,10 +1239,11 @@ int flush; } #ifdef GUNZIP state->mode = LENGTH; + /* fallthrough */ case LENGTH: if (state->wrap && state->flags) { NEEDBITS(32); - if (hold != (state->total & 0xffffffffUL)) { + if ((state->wrap & 4) && hold != (state->total & 0xffffffff)) { strm->msg = (char *)"incorrect length check"; state->mode = BAD; break; @@ -1231,6 +1253,7 @@ int flush; } #endif state->mode = DONE; + /* fallthrough */ case DONE: ret = Z_STREAM_END; goto inf_leave; @@ -1240,6 +1263,7 @@ int flush; case MEM: return Z_MEM_ERROR; case SYNC: + /* fallthrough */ default: return Z_STREAM_ERROR; } @@ -1265,7 +1289,7 @@ int flush; state->total += out; if ((state->wrap & 4) && out) strm->adler = state->check = - UPDATE(state->check, strm->next_out - out, out); + UPDATE_CHECK(state->check, strm->next_out - out, out); strm->data_type = (int)state->bits + (state->last ? 64 : 0) + (state->mode == TYPE ? 128 : 0) + (state->mode == LEN_ || state->mode == COPY_ ? 256 : 0); @@ -1401,6 +1425,7 @@ int ZEXPORT inflateSync(strm) z_streamp strm; { unsigned len; /* number of bytes to look at or looked at */ + int flags; /* temporary to save header status */ unsigned long in, out; /* temporary to save total_in and total_out */ unsigned char buf[4]; /* to restore bit buffer to byte string */ struct inflate_state FAR *state; @@ -1433,9 +1458,15 @@ z_streamp strm; /* return no joy or set up to restart inflate() on a new block */ if (state->have != 4) return Z_DATA_ERROR; + if (state->flags == -1) + state->wrap = 0; /* if no header yet, treat as raw */ + else + state->wrap &= ~4; /* no point in computing a check value now */ + flags = state->flags; in = strm->total_in; out = strm->total_out; inflateReset(strm); strm->total_in = in; strm->total_out = out; + state->flags = flags; state->mode = TYPE; return Z_OK; } @@ -1531,7 +1562,7 @@ int check; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; - if (check) + if (check && state->wrap) state->wrap |= 4; else state->wrap &= ~4; diff --git a/source/externals/zlib/src/inftrees.c b/source/externals/zlib/src/inftrees.c index 2ea08fc13e..09462a740b 100644 --- a/source/externals/zlib/src/inftrees.c +++ b/source/externals/zlib/src/inftrees.c @@ -1,5 +1,5 @@ /* inftrees.c -- generate Huffman trees for efficient decoding - * Copyright (C) 1995-2017 Mark Adler + * Copyright (C) 1995-2022 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -9,7 +9,7 @@ #define MAXBITS 15 const char inflate_copyright[] = - " inflate 1.2.11 Copyright 1995-2017 Mark Adler "; + " inflate 1.2.12 Copyright 1995-2022 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 @@ -62,7 +62,7 @@ unsigned short FAR *work; 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; static const unsigned short lext[31] = { /* Length codes 257..285 extra */ 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, - 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 77, 202}; + 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 199, 202}; static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ 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, diff --git a/source/externals/zlib/src/trees.c b/source/externals/zlib/src/trees.c index c541f101dd..3520d5abff 100644 --- a/source/externals/zlib/src/trees.c +++ b/source/externals/zlib/src/trees.c @@ -1,5 +1,5 @@ /* trees.c -- output deflated data using Huffman coding - * Copyright (C) 1995-2017 Jean-loup Gailly + * Copyright (C) 1995-2021 Jean-loup Gailly * detect_data_type() function provided freely by Cosmin Truta, 2006 * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -148,7 +148,7 @@ local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes, local void compress_block OF((deflate_state *s, const ct_data *ltree, const ct_data *dtree)); local int detect_data_type OF((deflate_state *s)); -local unsigned bi_reverse OF((unsigned value, int length)); +local unsigned bi_reverse OF((unsigned code, int len)); local void bi_windup OF((deflate_state *s)); local void bi_flush OF((deflate_state *s)); @@ -415,7 +415,7 @@ local void init_block(s) s->dyn_ltree[END_BLOCK].Freq = 1; s->opt_len = s->static_len = 0L; - s->last_lit = s->matches = 0; + s->sym_next = s->matches = 0; } #define SMALLEST 1 @@ -869,7 +869,8 @@ void ZLIB_INTERNAL _tr_stored_block(s, buf, stored_len, last) bi_windup(s); /* align on byte boundary */ put_short(s, (ush)stored_len); put_short(s, (ush)~stored_len); - zmemcpy(s->pending_buf + s->pending, (Bytef *)buf, stored_len); + if (stored_len) + zmemcpy(s->pending_buf + s->pending, (Bytef *)buf, stored_len); s->pending += stored_len; #ifdef ZLIB_DEBUG s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L; @@ -946,7 +947,7 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last) 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)); + s->sym_next / 3)); if (static_lenb <= opt_lenb) opt_lenb = static_lenb; @@ -1015,8 +1016,9 @@ int ZLIB_INTERNAL _tr_tally (s, dist, lc) 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; + s->sym_buf[s->sym_next++] = dist; + s->sym_buf[s->sym_next++] = dist >> 8; + s->sym_buf[s->sym_next++] = lc; if (dist == 0) { /* lc is the unmatched char */ s->dyn_ltree[lc].Freq++; @@ -1031,30 +1033,7 @@ int ZLIB_INTERNAL _tr_tally (s, dist, lc) 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. - */ + return (s->sym_next == s->sym_end); } /* =========================================================================== @@ -1067,13 +1046,14 @@ local void compress_block(s, ltree, dtree) { 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 sx = 0; /* running index in sym_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 (s->sym_next != 0) do { + dist = s->sym_buf[sx++] & 0xff; + dist += (unsigned)(s->sym_buf[sx++] & 0xff) << 8; + lc = s->sym_buf[sx++]; if (dist == 0) { send_code(s, lc, ltree); /* send a literal byte */ Tracecv(isgraph(lc), (stderr," '%c' ", lc)); @@ -1098,11 +1078,10 @@ local void compress_block(s, ltree, dtree) } } /* literal or match pair ? */ - /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */ - Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx, - "pendingBuf overflow"); + /* Check that the overlay between pending_buf and sym_buf is ok: */ + Assert(s->pending < s->lit_bufsize + sx, "pendingBuf overflow"); - } while (lx < s->last_lit); + } while (sx < s->sym_next); send_code(s, END_BLOCK, ltree); } @@ -1111,9 +1090,9 @@ local void compress_block(s, ltree, dtree) * Check if the data type is TEXT or BINARY, using the following algorithm: * - TEXT if the two conditions below are satisfied: * a) There are no non-portable control characters belonging to the - * "black list" (0..6, 14..25, 28..31). + * "block list" (0..6, 14..25, 28..31). * b) There is at least one printable character belonging to the - * "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). + * "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). * - BINARY otherwise. * - The following partially-portable control characters form a * "gray list" that is ignored in this detection algorithm: @@ -1123,19 +1102,19 @@ local void compress_block(s, ltree, dtree) local int detect_data_type(s) deflate_state *s; { - /* black_mask is the bit mask of black-listed bytes + /* block_mask is the bit mask of block-listed bytes * set bits 0..6, 14..25, and 28..31 * 0xf3ffc07f = binary 11110011111111111100000001111111 */ - unsigned long black_mask = 0xf3ffc07fUL; + unsigned long block_mask = 0xf3ffc07fUL; int n; - /* Check for non-textual ("black-listed") bytes. */ - for (n = 0; n <= 31; n++, black_mask >>= 1) - if ((black_mask & 1) && (s->dyn_ltree[n].Freq != 0)) + /* Check for non-textual ("block-listed") bytes. */ + for (n = 0; n <= 31; n++, block_mask >>= 1) + if ((block_mask & 1) && (s->dyn_ltree[n].Freq != 0)) return Z_BINARY; - /* Check for textual ("white-listed") bytes. */ + /* Check for textual ("allow-listed") bytes. */ if (s->dyn_ltree[9].Freq != 0 || s->dyn_ltree[10].Freq != 0 || s->dyn_ltree[13].Freq != 0) return Z_TEXT; @@ -1143,7 +1122,7 @@ local int detect_data_type(s) if (s->dyn_ltree[n].Freq != 0) return Z_TEXT; - /* There are no "black-listed" or "white-listed" bytes: + /* There are no "block-listed" or "allow-listed" bytes: * this stream either is empty or has tolerated ("gray-listed") bytes only. */ return Z_BINARY; diff --git a/source/externals/zlib/src/zutil.c b/source/externals/zlib/src/zutil.c index cf2250bdac..79baf5885d 100644 --- a/source/externals/zlib/src/zutil.c +++ b/source/externals/zlib/src/zutil.c @@ -135,8 +135,8 @@ const char * ZEXPORT zError(err) return ERR_MSG(err); } -#if defined(_WIN32_WCE) - /* The Microsoft C Run-Time Library for Windows CE doesn't have +#if defined(_WIN32_WCE) && _WIN32_WCE < 0x800 + /* The older Microsoft C Run-Time Library for Windows CE doesn't have * errno. We define it as a global variable to simplify porting. * Its value is always 0 and should not be used. */ diff --git a/source/g3tog4/History b/source/g3tog4/History index 92ae17510b..bdcacff536 100644 --- a/source/g3tog4/History +++ b/source/g3tog4/History @@ -1,8 +1,22 @@ # Category g3tog4 History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-16 Gabriele Cosmo (g3tog4-V11-00-04) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-07 Gabriele Cosmo (g3tog4-V11-00-03) +- Fixed compilation warnings on Intel/icc compiler for deprecated conversion + of string literal to char* in G3EleTable. +- Fixed compilation warning on Intel/icx compiler for variable set + but not used in clparse source code. + +## 2022-10-05 Ben Morgan (g3tog4-V11-00-02) +- Replace sprintf with std::to_string to address macOS 13 deprecation warnings. ## 2022-01-28 Ben Morgan (g3tog4-V11-00-01) - Replace `geant4_global_library_target` with direct file inclusion and diff --git a/source/g3tog4/include/G3EleTable.hh b/source/g3tog4/include/G3EleTable.hh index 0ab9c4fd56..9e47269cbd 100644 --- a/source/g3tog4/include/G3EleTable.hh +++ b/source/g3tog4/include/G3EleTable.hh @@ -60,10 +60,73 @@ private: private: - char** _EleNames; G4Element** _Ele; - G4int _MaxEle; + static const G4int _MaxEle = 109; + G4String _EleNames[_MaxEle] = { "Hydrogen H 1.00794", "Helium He 4.0026", + "Lithium Li 6.941", "Beryllium Be 9.012182", + "Boron B 10.811", "Carbon C 12.011", + "Nitrogen N 14.00674", "Oxygen O 15.9994", + "Fluorine F 18.9984032", "Neon Ne 20.1797", + "Sodium Na 22.989768", "Magnesium Mg 24.3050", + "Aluminum Al 26.981539", "Silicon Si 28.0855", + "Phosphorus P 30.973762", "Sulfur S 32.066", + "Chlorine Cl 35.4527", "Argon Ar 39.948", + "Potassium K 39.0983", "Calcium Ca 40.078", + + "Scandium Sc 44.955910", "Titanium Ti 47.867", + "Vanadium V 50.9415", "Chromium Cr 51.9961", + "Manganese Mn 54.93805", "Iron Fe 55.845", + "Cobalt Co 58.93320", "Nickel Ni 58.6934", + "Copper Cu 63.546", "Zinc Zn 65.39", + + "Gallium Ga 69.723", "Germanium Ge 72.61", + "Arsenic As 74.92159", "Selenium Se 78.96", + "Bromine Br 79.904", "Krypton Kr 83.80", + "Rubidium Rb 85.4678", "Strontium Sr 87.62", + "Yttrium Y 88.90585", "Zirconium Zr 91.224", + + "Niobium Nb 92.90638", "Molybdenum Mo 95.94", + "Technetium Tc 97.907215", "Ruthenium Ru 101.07", + "Rhodium Rh 102.90550", "Palladium Pd 106.42", + "Silver Ag 107.8682", "Cadmium Cd 112.41", + "Indium In 114.818", "Tin Sn 118.710", + + "Antimony Sb 121.760", "Tellurium Te 127.60", + "Iodine I 126.90447", "Xenon Xe 131.29", + "Cesium Cs 132.90543", "Barium Ba 137.27", + "Lanthanum La 138.9055", "Cerium Ce 140.115", + "Praeseodymium Pr 140.90765", "NeoDymium Nd 144.24", + + "Promethium Pm 144.912745", "Samarium Sm 150.36", + "Europium Eu 151.965", "Gadolinium Gd 157.25", + "Terbium Tb 158.92534", "Dysprosium Dy 162.50", + "Holmium Ho 164.93032", "Erbium Er 167.26", + "Thulium Tm 168.93421", "Ytterbium Yb 173.04", + + "Lutetium Lu 174.967", "Hafnium Hf 178.49", + "Tantalum Ta 180.9479", "Tungsten W 183.84", + "Rhenium Re 186.207", "Osmium Os 190.23", + "Iridium Ir 192.217", "Platinum Pt 195.08", + "Gold Au 196.96654", "Mercury Hg 200.59", + + "Thallium Tl 204.3833", "Lead Pb 207.2", + "Bismuth Bi 208.98037", "Polonium Po 208.982415", + "Astatine At 209.987131", "Radon Rn 222.017570", + "Francium Fr 223.019731", "Radium Ra 226.025402", + "Actinium Ac 227.027747", "Thorium Th 232.0381", + + "Protactinium Pa 231.03588", "Uranium U 238.0289", + "Neptunium Np 237.048166", "Plutonium Pu 244.064197", + "Americium Am 243.061372", "Curium Cm 247.070346", + "Berkelium Bk 247.070298", "Californium Cf 251.079579", + "Einsteinium Es 252.08297", "Fermium Fm 257.095096", + + "Mendelevium Md 258.098427", "Nobelium No 259.1011", + "Lawrencium Lr 262.1098", "Rutherfordium Rf 261.1089", + "Hahnium Ha 262.1144", "Seaborgium Sg 263.1186", + "Nielsborium Ns 262.1231", "Hassium Hs 265.1306", + "Meitnerium Mt 266.1378" }; }; extern G3G4DLL_API G3EleTable G3Ele; diff --git a/source/g3tog4/src/G3EleTable.cc b/source/g3tog4/src/G3EleTable.cc index 580c53c09f..48c857477f 100644 --- a/source/g3tog4/src/G3EleTable.cc +++ b/source/g3tog4/src/G3EleTable.cc @@ -35,28 +35,32 @@ #include "G4SystemOfUnits.hh" #include "G4ios.hh" -G3EleTable::G3EleTable() :_MaxEle(109){ - _EleNames = new char*[_MaxEle]; +G3EleTable::G3EleTable() +{ // create an array of pointers to elements _Ele = new G4Element*[_MaxEle]; LoadUp(); } -G3EleTable::~G3EleTable(){ - delete [] _EleNames; +G3EleTable::~G3EleTable() +{ delete [] _Ele; } G4Element* -G3EleTable::GetEle(G4double Z){ +G3EleTable::GetEle(G4double Z) +{ G4double A = 0.; char name[20], sym[3]; G4int index = (G4int) Z-1; - if (!parse(Z, name, sym, A)) { + if (!parse(Z, name, sym, A)) + { G4String na(name); G4String sy(sym); - if (_Ele[index] == 0) { - if ( A == 0. ) { + if (_Ele[index] == nullptr) + { + if ( A == 0. ) + { // Cannot create element with A = 0. G4String text = "Failed to get element Z = " + std::to_string(Z); G4Exception("G3EleTable::GetEle", "G3toG40016", FatalException, text); @@ -69,9 +73,11 @@ G3EleTable::GetEle(G4double Z){ } G4int -G3EleTable::parse(G4double& Z, char* name, char* sym, G4double& A){ - G4int rc = 0; - if (Z>0 && Z <=_MaxEle){ +G3EleTable::parse(G4double& Z, char* name, char* sym, G4double& A) +{ + G4int rc = 0; + if (Z>0 && Z <=_MaxEle) + { G4int z = (G4int) Z-1; G4String str(_EleNames[z]); char* cstr = new char [str.length()+1]; @@ -84,139 +90,20 @@ G3EleTable::parse(G4double& Z, char* name, char* sym, G4double& A){ std::istringstream in(p); in >> A; delete [] cstr; - } else { + } + else + { rc = -1; } return rc; } void -G3EleTable::LoadUp(){ - G4int i=0; - _EleNames[i]=(char *)"Hydrogen H 1.00794"; i++; - _EleNames[i]=(char *)"Helium He 4.0026"; i++; - _EleNames[i]=(char *)"Lithium Li 6.941"; i++; - _EleNames[i]=(char *)"Beryllium Be 9.012182"; i++; - _EleNames[i]=(char *)"Boron B 10.811"; i++; - _EleNames[i]=(char *)"Carbon C 12.011"; i++; - _EleNames[i]=(char *)"Nitrogen N 14.00674"; i++; - _EleNames[i]=(char *)"Oxygen O 15.9994"; i++; - _EleNames[i]=(char *)"Fluorine F 18.9984032"; i++; - _EleNames[i]=(char *)"Neon Ne 20.1797"; i++; - - _EleNames[i]=(char *)"Sodium Na 22.989768"; i++; - _EleNames[i]=(char *)"Magnesium Mg 24.3050"; i++; - _EleNames[i]=(char *)"Aluminum Al 26.981539"; i++; - _EleNames[i]=(char *)"Silicon Si 28.0855"; i++; - _EleNames[i]=(char *)"Phosphorus P 30.973762"; i++; - _EleNames[i]=(char *)"Sulfur S 32.066"; i++; - _EleNames[i]=(char *)"Chlorine Cl 35.4527"; i++; - _EleNames[i]=(char *)"Argon Ar 39.948"; i++; - _EleNames[i]=(char *)"Potassium K 39.0983"; i++; - _EleNames[i]=(char *)"Calcium Ca 40.078"; i++; - - _EleNames[i]=(char *)"Scandium Sc 44.955910"; i++; - _EleNames[i]=(char *)"Titanium Ti 47.867"; i++; - _EleNames[i]=(char *)"Vanadium V 50.9415"; i++; - _EleNames[i]=(char *)"Chromium Cr 51.9961"; i++; - _EleNames[i]=(char *)"Manganese Mn 54.93805"; i++; - _EleNames[i]=(char *)"Iron Fe 55.845"; i++; - _EleNames[i]=(char *)"Cobalt Co 58.93320"; i++; - _EleNames[i]=(char *)"Nickel Ni 58.6934"; i++; - _EleNames[i]=(char *)"Copper Cu 63.546"; i++; - _EleNames[i]=(char *)"Zinc Zn 65.39"; i++; - - _EleNames[i]=(char *)"Gallium Ga 69.723"; i++; - _EleNames[i]=(char *)"Germanium Ge 72.61"; i++; - _EleNames[i]=(char *)"Arsenic As 74.92159"; i++; - _EleNames[i]=(char *)"Selenium Se 78.96"; i++; - _EleNames[i]=(char *)"Bromine Br 79.904"; i++; - _EleNames[i]=(char *)"Krypton Kr 83.80"; i++; - _EleNames[i]=(char *)"Rubidium Rb 85.4678"; i++; - _EleNames[i]=(char *)"Strontium Sr 87.62"; i++; - _EleNames[i]=(char *)"Yttrium Y 88.90585"; i++; - _EleNames[i]=(char *)"Zirconium Zr 91.224"; i++; - - _EleNames[i]=(char *)"Niobium Nb 92.90638"; i++; - _EleNames[i]=(char *)"Molybdenum Mo 95.94"; i++; - _EleNames[i]=(char *)"Technetium Tc 97.907215"; i++; - _EleNames[i]=(char *)"Ruthenium Ru 101.07"; i++; - _EleNames[i]=(char *)"Rhodium Rh 102.90550"; i++; - _EleNames[i]=(char *)"Palladium Pd 106.42"; i++; - _EleNames[i]=(char *)"Silver Ag 107.8682"; i++; - _EleNames[i]=(char *)"Cadmium Cd 112.41"; i++; - _EleNames[i]=(char *)"Indium In 114.818"; i++; - _EleNames[i]=(char *)"Tin Sn 118.710"; i++; - - _EleNames[i]=(char *)"Antimony Sb 121.760"; i++; - _EleNames[i]=(char *)"Tellurium Te 127.60"; i++; - _EleNames[i]=(char *)"Iodine I 126.90447"; i++; - _EleNames[i]=(char *)"Xenon Xe 131.29"; i++; - _EleNames[i]=(char *)"Cesium Cs 132.90543"; i++; - _EleNames[i]=(char *)"Barium Ba 137.27"; i++; - _EleNames[i]=(char *)"Lanthanum La 138.9055"; i++; - _EleNames[i]=(char *)"Cerium Ce 140.115"; i++; - _EleNames[i]=(char *)"Praeseodymium Pr 140.90765"; i++; - _EleNames[i]=(char *)"NeoDymium Nd 144.24"; i++; - - _EleNames[i]=(char *)"Promethium Pm 144.912745"; i++; - _EleNames[i]=(char *)"Samarium Sm 150.36"; i++; - _EleNames[i]=(char *)"Europium Eu 151.965"; i++; - _EleNames[i]=(char *)"Gadolinium Gd 157.25"; i++; - _EleNames[i]=(char *)"Terbium Tb 158.92534"; i++; - _EleNames[i]=(char *)"Dysprosium Dy 162.50"; i++; - _EleNames[i]=(char *)"Holmium Ho 164.93032"; i++; - _EleNames[i]=(char *)"Erbium Er 167.26"; i++; - _EleNames[i]=(char *)"Thulium Tm 168.93421"; i++; - _EleNames[i]=(char *)"Ytterbium Yb 173.04"; i++; - - _EleNames[i]=(char *)"Lutetium Lu 174.967"; i++; - _EleNames[i]=(char *)"Hafnium Hf 178.49"; i++; - _EleNames[i]=(char *)"Tantalum Ta 180.9479"; i++; - _EleNames[i]=(char *)"Tungsten W 183.84"; i++; - _EleNames[i]=(char *)"Rhenium Re 186.207"; i++; - _EleNames[i]=(char *)"Osmium Os 190.23"; i++; - _EleNames[i]=(char *)"Iridium Ir 192.217"; i++; - _EleNames[i]=(char *)"Platinum Pt 195.08"; i++; - _EleNames[i]=(char *)"Gold Au 196.96654"; i++; - _EleNames[i]=(char *)"Mercury Hg 200.59"; i++; - - _EleNames[i]=(char *)"Thallium Tl 204.3833"; i++; - _EleNames[i]=(char *)"Lead Pb 207.2"; i++; - _EleNames[i]=(char *)"Bismuth Bi 208.98037"; i++; - _EleNames[i]=(char *)"Polonium Po 208.982415"; i++; - _EleNames[i]=(char *)"Astatine At 209.987131"; i++; - _EleNames[i]=(char *)"Radon Rn 222.017570"; i++; - _EleNames[i]=(char *)"Francium Fr 223.019731"; i++; - _EleNames[i]=(char *)"Radium Ra 226.025402"; i++; - _EleNames[i]=(char *)"Actinium Ac 227.027747"; i++; - _EleNames[i]=(char *)"Thorium Th 232.0381"; i++; - - _EleNames[i]=(char *)"Protactinium Pa 231.03588"; i++; - _EleNames[i]=(char *)"Uranium U 238.0289"; i++; - _EleNames[i]=(char *)"Neptunium Np 237.048166"; i++; - _EleNames[i]=(char *)"Plutonium Pu 244.064197"; i++; - _EleNames[i]=(char *)"Americium Am 243.061372"; i++; - _EleNames[i]=(char *)"Curium Cm 247.070346"; i++; - _EleNames[i]=(char *)"Berkelium Bk 247.070298"; i++; - _EleNames[i]=(char *)"Californium Cf 251.079579"; i++; - _EleNames[i]=(char *)"Einsteinium Es 252.08297"; i++; - _EleNames[i]=(char *)"Fermium Fm 257.095096"; i++; - - _EleNames[i]=(char *)"Mendelevium Md 258.098427"; i++; - _EleNames[i]=(char *)"Nobelium No 259.1011"; i++; - _EleNames[i]=(char *)"Lawrencium Lr 262.1098"; i++; - _EleNames[i]=(char *)"Rutherfordium Rf 261.1089"; i++; - _EleNames[i]=(char *)"Hahnium Ha 262.1144"; i++; - _EleNames[i]=(char *)"Seaborgium Sg 263.1186"; i++; - _EleNames[i]=(char *)"Nielsborium Ns 262.1231"; i++; - _EleNames[i]=(char *)"Hassium Hs 265.1306"; i++; - _EleNames[i]=(char *)"Meitnerium Mt 266.1378"; i++; - +G3EleTable::LoadUp() +{ // initialize element pointers to 0 - for (G4int j=0; jsize(); + return (G4int)fMedVector->size(); } void G3MedTable::Clear() diff --git a/source/g3tog4/src/G3VolTableEntry.cc b/source/g3tog4/src/G3VolTableEntry.cc index b579062969..eb5aa238f1 100644 --- a/source/g3tog4/src/G3VolTableEntry.cc +++ b/source/g3tog4/src/G3VolTableEntry.cc @@ -251,7 +251,7 @@ G3VolTableEntry::GetRpar() { G4int G3VolTableEntry::NPCopies() { - return fG3Pos.size(); + return (G4int)fG3Pos.size(); } G3Pos* @@ -284,22 +284,22 @@ G3VolTableEntry::GetLV() { G4int G3VolTableEntry::GetNoDaughters() { - return fDaughters.size(); + return (G4int)fDaughters.size(); } G4int G3VolTableEntry::GetNoMothers() { - return fMothers.size(); + return (G4int)fMothers.size(); } G4int G3VolTableEntry::GetNoClones() { - return fClones.size(); + return (G4int)fClones.size(); } G4int G3VolTableEntry::GetNoOverlaps() { - return fOverlaps.size(); + return (G4int)fOverlaps.size(); } G3VolTableEntry* diff --git a/source/g3tog4/src/G4BuildGeom.cc b/source/g3tog4/src/G4BuildGeom.cc index 73d6c079fa..8b1831af44 100644 --- a/source/g3tog4/src/G4BuildGeom.cc +++ b/source/g3tog4/src/G4BuildGeom.cc @@ -118,13 +118,14 @@ void checkVol(G4LogicalVolume* _lvol, G4int level) { G4LogicalVolume* _ldvol; G4VPhysicalVolume* _pdvol; - level++; + ++level; - G4int ndau = _lvol -> GetNoDaughters(); + std::size_t ndau = _lvol -> GetNoDaughters(); G4cout << "G44LogicalVolume " << _lvol->GetName() << " at level " << level << " contains " << ndau << " daughters." << G4endl; - for (G4int idau=0; idau GetDaughter(idau); _ldvol = _pdvol -> GetLogicalVolume(); G4cout << "G4VPhysical volume " << std::setw(5) << _pdvol -> GetName() diff --git a/source/g3tog4/src/G4gsdvn.cc b/source/g3tog4/src/G4gsdvn.cc index 0050f91e4d..b1b0f23ff9 100644 --- a/source/g3tog4/src/G4gsdvn.cc +++ b/source/g3tog4/src/G4gsdvn.cc @@ -63,9 +63,8 @@ void G4CreateCloneVTEWithDivision(G4String vname, G3VolTableEntry* mvte, G4String newName = vname; if (i>0) { - char index[12]; sprintf(index, "%d", i); newName += gSeparator; - newName = newName + index; + newName = newName + std::to_string(i); } // create new VTE with 0 solid diff --git a/source/g3tog4/src/G4gsmate.cc b/source/g3tog4/src/G4gsmate.cc index fb0535879c..eb0fff7a78 100644 --- a/source/g3tog4/src/G4gsmate.cc +++ b/source/g3tog4/src/G4gsmate.cc @@ -55,52 +55,6 @@ void PG4gsmate(G4String *tokens) G4gsmate(imate, name, a, z, dens, radl, nwbf, ubuf); } -/* -// replaced with G3EleTable -// only used G4Elements are created; -// !! no checking of given A of the element; -// - -G4Element* CreateElement(G4double zeff, G4double aeff, G4String matName) -{ - // tolerance in Z, A for element definition - const G4double tolerance = 0.001; - - // define the symbol Z%A% of element - // !! symbol is not unambiguous element identifier - char symbol[20]; - sprintf(symbol,"Z%dA%d",int(zeff),int(aeff/(g/mole))); - G4String elSymbol = symbol; - - // search element table for the element with given (Z,A) - // - G4int index = 0; - const G4ElementTable* table = G4Element::GetElementTable(); - for (G4int i=0; ientries(); i++) { - G4Element* entry = (*table)[i]; - if (elSymbol == entry->GetSymbol()) index++; - if ( std::abs(zeff - entry->GetZ()) < tolerance && - (std::abs(aeff - entry->GetA())/(g/mole)) < tolerance ){ - return entry; - } - } - - // define a unique name En-Z%A% - // (n - index of elements with the same int(Z), int(A)) - char chIndex[4]; - sprintf(chIndex,"%d",index); - G4String elName = "E"; - elName = elName + chIndex + "-"; - elName = elName + elSymbol; - - // create new element if it was not found in element table - G4Element* element = new G4Element(elName, elSymbol, zeff, aeff); - G4cout << "New element: " << element->GetName() - << " for " << matName << " material has been created." << G4endl; - return element; -} -*/ - void G4gsmate(G4int imate, G4String name, G4double ain, G4double zin, G4double densin, G4double, G4int, G4double*) { diff --git a/source/g3tog4/src/G4gsposp.cc b/source/g3tog4/src/G4gsposp.cc index a998f54e23..5e31e898b9 100644 --- a/source/g3tog4/src/G4gsposp.cc +++ b/source/g3tog4/src/G4gsposp.cc @@ -142,10 +142,9 @@ void G4CloneDaughters(G3VolTableEntry* vte, G3VolTableEntry* vteClone) // generate vteClone name G4int cloneNo = dvteMaster->GetNoClones(); - char index[5]; sprintf(index,"%d",cloneNo); G4String newName = dvteMaster->GetName(); newName += gSeparator; - newName = newName + index; + newName = newName + std::to_string(cloneNo); // create dvteClone G4String dvteShape = dvte->GetShape(); @@ -267,10 +266,9 @@ void G4CreateCloneVTE(G3VolTableEntry* vte, G3VolTableEntry* mvte, if ( negpars || !(vteSameClone)) { // generate vteClone name G4int cloneNo = vte->GetNoClones(); - char index[5]; sprintf(index,"%d",cloneNo); G4String newName = vte->GetName(); newName += gSeparator; - newName = newName + index; + newName = newName + std::to_string(cloneNo); // update vteClone vteClone->SetName(newName); diff --git a/source/g3tog4/src/clparse.cc b/source/g3tog4/src/clparse.cc index 78e3fe774a..72d6dc5ddd 100644 --- a/source/g3tog4/src/clparse.cc +++ b/source/g3tog4/src/clparse.cc @@ -111,13 +111,11 @@ void G3CLRead(G4String & fname, char *select = 0) ofile.open(ofname); ofile << "Output file open\n"; - G4int count = 0; G4int ntokens = 0; std::ifstream istr(fname); while (G4StrUtil::readline(istr, line) && ! istr.eof()) { - count++; ntokens = G3CLTokens(&line,tokens); // tokenize the line for (G4int i=0; i < ntokens; i++) { diff --git a/source/geometry/History b/source/geometry/History index 530f5987c2..97be96e7ff 100644 --- a/source/geometry/History +++ b/source/geometry/History @@ -1,8 +1,13 @@ # Category geometry History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-10 Gabriele Cosmo (geometry-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2022-01-28 Ben Morgan (geometry-V11-00-01) - Replace `geant4_global_library_target` with direct file inclusion and diff --git a/source/geometry/magneticfield/History b/source/geometry/magneticfield/History index 66ed79f21f..dd89590f8e 100644 --- a/source/geometry/magneticfield/History +++ b/source/geometry/magneticfield/History @@ -1,9 +1,39 @@ # Category field History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-28 Gabriele Cosmo (field-V11-00-05) +- Fixed restore of stream precision in G4FieldManager::ReportBadEpsilonValue(). + +## 2022-11-14 John Apostolakis (field-V11-00-04) +- Revised G4FieldManager to ensure that epsilon_min / _max parameters + are less than a 'maximum accepted' accuracy (now=0.02) to ensure robust + behaviour of the integration. Improved their Set methods, adding + - warnings if min > max, with corrective behaviour, and + - a fatal exception in case of values outside the accepted range. + + To cope with needs of legacy applications or existing needs for performance, + the value of the 'ceiling' maximum accepted accuracy can be modified using + the new static method + G4FieldManager::SetMaxAcceptedEpsilon( maxAccept, softFail); + but must remain under or equal to a final ceiling currently of + fMaxFinalEpsilon=0.03 + +## 2022-11-10 Gabriele Cosmo (field-V11-00-03) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-05 Divyansh Tiwari, John Apostolakis (field-V11-00-02) + +- Introduced G4BorisScheme and G4BorisDriver, a 2nd order symplectic + integration method, created as part of GSoC 2022. + +## 2022-10-05 Gabriele Cosmo (field-V11-00-01) +- Fixed compilation warnings on Intel/icx compiler for variables set + but not used. ## 2021-12-10 Ben Morgan (field-V11-00-00) - Change to new Markdown History format diff --git a/source/geometry/magneticfield/include/G4BorisDriver.hh b/source/geometry/magneticfield/include/G4BorisDriver.hh new file mode 100644 index 0000000000..856338a130 --- /dev/null +++ b/source/geometry/magneticfield/include/G4BorisDriver.hh @@ -0,0 +1,188 @@ +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// G4BorisDriver +// +// Class description: +// +// G4BorisDriver is a driver class using the second order Boris +// method to integrate the equation of motion. +// +// +// Author: Divyansh Tiwari, Google Summer of Code 2022 +// Supervision: John Apostolakis,Renee Fatemi, Soon Yung Jun +// -------------------------------------------------------------------- +#ifndef G4BORIS_DRIVER_HH +#define G4BORIS_DRIVER_HH + +#include "G4VIntegrationDriver.hh" +#include "G4BorisScheme.hh" +#include "G4ChordFinderDelegate.hh" + + +class G4BorisDriver: + public G4VIntegrationDriver, + public G4ChordFinderDelegate +{ + public: + + G4BorisDriver( G4double hminimum, + G4BorisScheme* Boris, + G4int numberOfComponents = 6, + bool verbosity = false); + + inline ~G4BorisDriver() = default; + + inline G4BorisDriver(const G4BorisDriver&) = delete; + inline G4BorisDriver& operator=(const G4BorisDriver&) = delete; + + // 1. Core methods that advance the integration + virtual G4bool AccurateAdvance( G4FieldTrack& track, + G4double stepLen, + G4double epsilon, + G4double beginStep = 0) override; + // Advance integration accurately - by relative accuracy better than 'epsilon' + + virtual G4bool QuickAdvance( G4FieldTrack& y_val, // In/Out + const G4double dydx[], + G4double hstep, + G4double& missDist, // Out: estimated sagitta + G4double& dyerr ) override; + // Attempt one integration step, and return estimated error 'dyerr' + + void OneGoodStep(G4double yCurrentState[], // In/Out: state ('y') + G4double& curveLength, // In/Out: 'x' + G4double htry, // step to attempt + G4double epsilon_rel, // relative accuracy + G4double restMass, + G4double charge, + G4double& hdid, // Out: step achieved + G4double& hnext); // Out: proposed next step + // Method to implement Accurate Advance + + // 2. Methods needed to co-work with G4ChordFinder + virtual G4double AdvanceChordLimited(G4FieldTrack& track, + G4double hstep, + G4double eps, + G4double chordDistance) override + { + return ChordFinderDelegate:: + AdvanceChordLimitedImpl(track, hstep, eps, chordDistance); + } + + virtual void OnStartTracking() override { + ChordFinderDelegate::ResetStepEstimate(); + } + + virtual void OnComputeStep() override {}; + + + + // 3. Does the method redo integrations when called to obtain values + // for internal, smaller intervals ? + // (when needed to identify an intersection.) + virtual G4bool DoesReIntegrate() const override { return true; } + // It would be no if it just used interpolation to provide a result. + + // 4. Relevant for calculating a new step size to achieve required accuracy + inline virtual G4double ComputeNewStepSize( + G4double errMaxNorm, // normalised error + G4double hstepCurrent) override; // current step size + + G4double ShrinkStepSize2(G4double h, G4double error2) const; + G4double GrowStepSize2(G4double h, G4double error2) const; + // Calculate the next step size given the square of the relative error + + // 5. Auxiliary Methods ... + virtual void GetDerivatives( const G4FieldTrack& track, + G4double dydx[]) const override; + + virtual void GetDerivatives( const G4FieldTrack& track, + G4double dydx[], + G4double field[]) const override; + + inline virtual void SetVerboseLevel(G4int level) override; + inline virtual G4int GetVerboseLevel() const override; + + inline virtual G4EquationOfMotion* GetEquationOfMotion() override; + inline const G4EquationOfMotion* GetEquationOfMotion() const; + virtual void SetEquationOfMotion(G4EquationOfMotion* equation) override; + + virtual void StreamInfo( std::ostream& os ) const override; + // Write out the parameters / state of the driver + + // 6. Not relevant for Boris and other non-RK methods + inline virtual const G4MagIntegratorStepper* GetStepper() const override; + inline virtual G4MagIntegratorStepper* GetStepper() override; + + private: + inline G4int GetNumberOfVariables() const; + + inline void CheckStep(const G4ThreeVector& posIn, + const G4ThreeVector& posOut, + G4double hdid) const; + + private: + // INVARIANTS -- remain unchanged during tracking / integration + // Parameters + G4double fMinimumStep; + bool fVerbosity; + + // State -- The core stepping algorithm + G4BorisScheme* boris; + + // STATE -- intermediate state (to avoid creation / churn ) + G4double yIn[G4FieldTrack::ncompSVEC], + yMid[G4FieldTrack::ncompSVEC], + yOut[G4FieldTrack::ncompSVEC], + yError[G4FieldTrack::ncompSVEC]; + + G4double yCurrent[G4FieldTrack::ncompSVEC]; + + // - Unused 2022.11.03: + // G4double derivs[2][6][G4FieldTrack::ncompSVEC]; + // const G4int interval_sequence[2]; + + // INVARIANTS -- Parameters for ensuring that one call has finite number of integration steps + static constexpr int fMaxNoSteps = 300; + static constexpr G4double fSmallestFraction= 1e-12; // To avoid FP underflow ! ( 1.e-6 for single prec) + + static constexpr G4int fIntegratorOrder= 2; // 2nd order method -- needed for error control + static constexpr G4double fSafetyFactor = 0.9; // + + static constexpr G4double fMaxSteppingIncrease= 10.0; // Increase no more than 10x + static constexpr G4double fMaxSteppingDecrease= 0.1; // Reduce no more than 10x + static constexpr G4double fPowerShrink = -1.0 / fIntegratorOrder; + static constexpr G4double fPowerGrow = -1.0 / (1.0 + fIntegratorOrder); + + static const G4double fErrorConstraintShrink; + static const G4double fErrorConstraintGrow; + + using ChordFinderDelegate = + G4ChordFinderDelegate; +}; + +#include "G4BorisDriver.icc" + +#endif diff --git a/source/geometry/magneticfield/include/G4BorisDriver.icc b/source/geometry/magneticfield/include/G4BorisDriver.icc new file mode 100644 index 0000000000..0f7b44bb50 --- /dev/null +++ b/source/geometry/magneticfield/include/G4BorisDriver.icc @@ -0,0 +1,117 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// G4BorisDriver inline methods implementation + +// Author: Divyansh Tiwari, Google Summer of Code 2022 +// Supervision: John Apostolakis,Renee Fatemi, Soon Yung Jun +// -------------------------------------------------------------------- + +void G4BorisDriver::SetVerboseLevel(G4int level) +{ + fVerbosity = level; +} + +G4int G4BorisDriver::GetVerboseLevel() const +{ + return fVerbosity; +} + +G4double G4BorisDriver::ComputeNewStepSize( G4double /* errMaxNorm*/, G4double hstepCurrent) +{ + return hstepCurrent; +} + +const G4EquationOfMotion* G4BorisDriver::GetEquationOfMotion() const +{ + auto eq = boris->GetEquationOfMotion(); + return eq; +} + +G4EquationOfMotion* G4BorisDriver::GetEquationOfMotion() +{ + auto eq = boris->GetEquationOfMotion(); + return eq; +} + +#if 0 +// #ifdef G4USE_SET_EQUATION_OF_MOTION +void G4BorisDriver:: +SetEquationOfMotion( G4EquationOfMotion* equation ) +{ + boris->SetEquationOfMotion(equation); +} +#endif + +G4int G4BorisDriver::GetNumberOfVariables() const +{ + return boris->GetNumberOfVariables(); +} + +const G4MagIntegratorStepper* +G4BorisDriver::GetStepper() const +{ + return nullptr; +} + +G4MagIntegratorStepper* +G4BorisDriver::GetStepper() +{ + return nullptr; +} + +void G4BorisDriver::CheckStep(const G4ThreeVector& posIn, + const G4ThreeVector& posOut, + G4double hdid) const +{ + const G4double endPointDist = (posOut - posIn).mag(); + if (endPointDist >= hdid * (1. + CLHEP::perMillion)) + { + // ++fNoAccurateAdvanceBadSteps; +// #ifdef G4DEBUG_FIELD + // Issue a warning only for gross differences - + // we understand how small difference occur. + if (endPointDist >= hdid * (1. + CLHEP::perThousand)) + { + G4Exception("G4BorisDriver::CheckStep()", + "GeomField1002", JustWarning, + "endPointDist >= hdid!"); + } + else + { + G4cerr << "G4BorisDriver::CheckStep: moved further than curve distance! " + << " curve hdid= " << hdid << " endpoint dist= " << endPointDist + << " ratio - 1 = " << (endPointDist - hdid) / hdid + << " ( > 1.0e-6 threshold to report ) " + << G4endl; + } +// #endif + } + else + { + // ++fNoAccurateAdvanceGoodSteps; + } +} + diff --git a/source/geometry/magneticfield/include/G4BorisScheme.hh b/source/geometry/magneticfield/include/G4BorisScheme.hh new file mode 100644 index 0000000000..f307cb3220 --- /dev/null +++ b/source/geometry/magneticfield/include/G4BorisScheme.hh @@ -0,0 +1,98 @@ +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// G4BorisScheme +// +// Class description: +// +// Implementation of the Boris algorithm for advancing +// charged particles in an electromagnetic field. + +// Author: Divyansh Tiwari, Google Summer of Code 2022 +// Supervision: John Apostolakis,Renee Fatemi, Soon Yung Jun +// -------------------------------------------------------------------- +#ifndef G4BORIS_SCHEME_HH +#define G4BORIS_SCHEME_HH + +class G4EquationOfMotion; + +#include "G4Types.hh" + + +// class G4EqMagElectricField; + +// #include "G4FieldTrack.hh" + +#include + +class G4BorisScheme +{ + public: + + G4BorisScheme() = default; + G4BorisScheme( // G4EqMagElectricField + G4EquationOfMotion* equation, + G4int nvar = 6); + ~G4BorisScheme() = default; + + void DoStep( G4double restMass, G4double charge, const G4double yIn[], + G4double yOut[], G4double hstep) const; + + protected: + // Used to implement the 'DoStep' method above + void UpdatePosition(const G4double restMass, const G4double charge, const G4double yIn[], + G4double yOut[], G4double hstep) const; + + void UpdateVelocity(const G4double restMass, const G4double charge, const G4double yIn[], + G4double yOut[], G4double hstep) const; + + public: + // - Methods using the Boris Scheme Stepping to estimate integration error + void StepWithErrorEstimate(const G4double yIn[], G4double restMass, G4double charge, G4double hstep, + G4double yOut[], G4double yErr[]) const; + // Use two half-steps (comparing to a full step) to obtain output and error estimate + + void StepWithMidAndErrorEstimate(const G4double yIn[], G4double restMass, G4double charge, G4double hstep, + G4double yMid[], G4double yOut[], G4double yErr[]) const; + // Same, and also return mid-point evaluation + + // Auxiliary method + inline G4EquationOfMotion* GetEquationOfMotion(); + // inline void SetEquationOfMotion(G4EquationOfMotion* equation); // Un-needed, dangerous + + inline G4int GetNumberOfVariables() const; + + private: + + void copy(G4double dst[], const G4double src[]) const; + + private: + + G4EquationOfMotion* fEquation = nullptr; + G4int fnvar = 8; + static constexpr G4double c_l = CLHEP::c_light/CLHEP::m*CLHEP::second; +}; + +#include "G4BorisScheme.icc" +#endif diff --git a/source/particles/management/include/G4DynamicParticleFastVector.hh b/source/geometry/magneticfield/include/G4BorisScheme.icc similarity index 79% rename from source/particles/management/include/G4DynamicParticleFastVector.hh rename to source/geometry/magneticfield/include/G4BorisScheme.icc index 3f5a362a31..bc3c3ef0a2 100644 --- a/source/particles/management/include/G4DynamicParticleFastVector.hh +++ b/source/geometry/magneticfield/include/G4BorisScheme.icc @@ -23,21 +23,25 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// G4DynamicParticleFastVector - -// Author: G.Cosmo, 2 December 1995 +// G4BorisScheme inline methods implementation +// +// Author: Divyansh Tiwari, Google Summer of Code 2022 +// Supervision: John Apostolakis,Renee Fatemi, Soon Yung Jun // -------------------------------------------------------------------- -#ifndef G4DynamicParticleFastVector_hh -#define G4DynamicParticleFastVector_hh 1 - -#include "globals.hh" -#include "G4ios.hh" -#include "G4FastVector.hh" - -class G4DynamicParticle; - -using G4DynamicParticleFastVector = G4FastVector; - // Contains pointers to G4DynamicParticle objects which are - // generated by either primary or secondary interaction. +#if 0 +inline void G4BorisScheme::SetEquationOfMotion(G4EquationOfMotion* eq) +{ + fEquation = eq; +} #endif + +inline G4EquationOfMotion* G4BorisScheme::GetEquationOfMotion() +{ + return fEquation; +} + +inline G4int G4BorisScheme::GetNumberOfVariables() const +{ + return fnvar; +} diff --git a/source/geometry/magneticfield/include/G4BulirschStoer.hh b/source/geometry/magneticfield/include/G4BulirschStoer.hh index 35e69f0599..9ab2a4d805 100644 --- a/source/geometry/magneticfield/include/G4BulirschStoer.hh +++ b/source/geometry/magneticfield/include/G4BulirschStoer.hh @@ -74,10 +74,10 @@ class G4BulirschStoer const static G4int m_k_max = 8; - void extrapolate(size_t k, G4double xest[]); - G4double calc_h_opt(G4double h, G4double error, size_t k) const; + void extrapolate(std::size_t k, G4double xest[]); + G4double calc_h_opt(G4double h, G4double error, std::size_t k) const; - G4bool set_k_opt(size_t k, G4double& dt); + G4bool set_k_opt(std::size_t k, G4double& dt); G4bool in_convergence_window(G4int k) const; G4bool should_reject(G4double error, G4int k) const; diff --git a/source/geometry/magneticfield/include/G4FSALIntegrationDriver.icc b/source/geometry/magneticfield/include/G4FSALIntegrationDriver.icc index 634039dbf7..c82068630b 100644 --- a/source/geometry/magneticfield/include/G4FSALIntegrationDriver.icc +++ b/source/geometry/magneticfield/include/G4FSALIntegrationDriver.icc @@ -173,13 +173,10 @@ OneGoodStep(G4double y[], // Set stepsize to the initial trial value G4double hstep = htry; - static G4ThreadLocal G4int tot_no_trials = 0; const G4int max_trials = 100; for (G4int iter = 0; iter < max_trials; ++iter) { - ++tot_no_trials; - Base::GetStepper()->Stepper(y, dydx, hstep, yOut, yError, dydxOut); error2 = field_utils::relativeError2(y, yError, hstep, eps_rel_max); diff --git a/source/geometry/magneticfield/include/G4FieldManager.hh b/source/geometry/magneticfield/include/G4FieldManager.hh index 7da0b16dfc..92fddb246f 100644 --- a/source/geometry/magneticfield/include/G4FieldManager.hh +++ b/source/geometry/magneticfield/include/G4FieldManager.hh @@ -156,11 +156,11 @@ class G4FieldManager // Set accuracy of intersection of a volume. (only) inline G4double GetMinimumEpsilonStep() const; - inline void SetMinimumEpsilonStep( G4double newEpsMin ); + G4bool SetMinimumEpsilonStep( G4double newEpsMin ); // Minimum for Relative accuracy of a Step inline G4double GetMaximumEpsilonStep() const; - inline void SetMaximumEpsilonStep( G4double newEpsMax ); + G4bool SetMaximumEpsilonStep( G4double newEpsMax ); // Maximum for Relative accuracy of a Step inline G4bool DoesFieldChangeEnergy() const; @@ -171,6 +171,23 @@ class G4FieldManager virtual G4FieldManager* Clone() const; // Needed for multi-threading, create a clone of this object + public: + static G4double GetMaxAcceptedEpsilon(); + static G4bool SetMaxAcceptedEpsilon(G4double maxEps, G4bool softFail= false); + // Set value -- within limits. + // If it fails, with softFail=true it gives Warning, else FatalException + + protected: + static G4double fMaxAcceptedEpsilon; + static constexpr G4double fMinAcceptedEpsilon= 1000.0 * std::numeric_limits::epsilon(); + // Epsilon_min/max values must be smaller than this - for robust integration + + static constexpr G4double fMaxWarningEpsilon= 0.001; // Setting larger value will give warning. + static constexpr G4double fMaxFinalEpsilon= 0.02; // Will not accept larger values + + static G4bool fVerboseConstruction; + // Control verbosity of constructors + private: void InitialiseFieldChangesEnergy(); @@ -178,7 +195,11 @@ class G4FieldManager // and sets the data member accordingly // Note: does not handle special cases - this must be done // separately (e.g. magnetic monopole in B field ) - + + protected: + void ReportBadEpsilonValue(G4ExceptionDescription& erm, G4double value, + G4String& name) const; + private: G4Field* fDetectorField = nullptr; diff --git a/source/geometry/magneticfield/include/G4FieldManager.icc b/source/geometry/magneticfield/include/G4FieldManager.icc index 5f640af807..cfd2a5ec3d 100644 --- a/source/geometry/magneticfield/include/G4FieldManager.icc +++ b/source/geometry/magneticfield/include/G4FieldManager.icc @@ -109,15 +109,6 @@ G4double G4FieldManager::GetMinimumEpsilonStep() const return fEpsilonMin; } -inline -void G4FieldManager::SetMinimumEpsilonStep( G4double newEpsMin ) -{ - if( (newEpsMin > 0.0) && (std::fabs(1.0+newEpsMin) > 1.0) ) - { - fEpsilonMin = newEpsMin; - } -} - // Maximum for Relative accuracy of any Step // inline @@ -126,17 +117,6 @@ G4double G4FieldManager::GetMaximumEpsilonStep() const return fEpsilonMax; } -inline -void G4FieldManager::SetMaximumEpsilonStep( G4double newEpsMax ) -{ - if( (newEpsMax > 0.0) - && (newEpsMax >= fEpsilonMin ) - && (std::fabs(1.0+newEpsMax)>1.0) ) - { - fEpsilonMax = newEpsMax; - } -} - inline void G4FieldManager::ChangeDetectorField(G4Field* detectorField) { diff --git a/source/geometry/magneticfield/include/G4FieldUtils.hh b/source/geometry/magneticfield/include/G4FieldUtils.hh index 39a1b2bb15..edf974ebaf 100644 --- a/source/geometry/magneticfield/include/G4FieldUtils.hh +++ b/source/geometry/magneticfield/include/G4FieldUtils.hh @@ -101,7 +101,7 @@ namespace field_utils TargetArray& trg, TargetArrays&... trgs); void copy(G4double dst[], const G4double src[], - size_t size = G4FieldTrack::ncompSVEC); + std::size_t size = G4FieldTrack::ncompSVEC); G4double inverseCurvatureRadius(G4double particleCharge, G4double momentum, G4double BField); diff --git a/source/geometry/magneticfield/include/G4FieldUtils.icc b/source/geometry/magneticfield/include/G4FieldUtils.icc index 756480f4d0..ba0a8dfa59 100644 --- a/source/geometry/magneticfield/include/G4FieldUtils.icc +++ b/source/geometry/magneticfield/include/G4FieldUtils.icc @@ -33,9 +33,9 @@ namespace field_utils { namespace internal { template - size_t getFirstIndex(const T& value) + std::size_t getFirstIndex(const T& value) { - return static_cast(value); + return static_cast(value); } } diff --git a/source/geometry/magneticfield/include/G4IntegrationDriver.icc b/source/geometry/magneticfield/include/G4IntegrationDriver.icc index 011a6d745a..3e5e78d12a 100644 --- a/source/geometry/magneticfield/include/G4IntegrationDriver.icc +++ b/source/geometry/magneticfield/include/G4IntegrationDriver.icc @@ -124,9 +124,7 @@ AccurateAdvance(G4FieldTrack& track, G4double hstep, G4double hnext, hdid; G4double dydx[G4FieldTrack::ncompSVEC]; - G4bool succeeded = true, lastStepSucceeded; - - G4int noFullIntegr = 0, noSmallIntegr = 0; + G4bool succeeded = true; G4double y[G4FieldTrack::ncompSVEC]; track.DumpToArray(y); @@ -154,7 +152,6 @@ AccurateAdvance(G4FieldTrack& track, G4double hstep, if (h > GetMinimumStep()) { OneGoodStep(y, dydx, curveLength, h, eps, hdid, hnext); - lastStepSucceeded = (hdid == h); } else { @@ -177,12 +174,8 @@ AccurateAdvance(G4FieldTrack& track, G4double hstep, hdid = h; curveLength += hdid; hnext = Base::ComputeNewStepSize(dyerr / eps, h); - lastStepSucceeded = (dyerr <= eps); } - if (lastStepSucceeded) { ++noFullIntegr; } - else { ++noSmallIntegr; } - const G4ThreeVector EndPos = field_utils::makeVector(y, field_utils::Value3D::Position); @@ -240,13 +233,10 @@ void G4IntegrationDriver::OneGoodStep(G4double y[], // InOut G4double h = htry; - static G4ThreadLocal G4int tot_no_trials = 0; const G4int max_trials = 100; for (G4int iter = 0; iter < max_trials; ++iter) { - tot_no_trials++; - Base::GetStepper()->Stepper(y, dydx, h, ytemp, yerr); error2 = field_utils::relativeError2(y, yerr, std::max(h, fMinimumStep), eps_rel_max); diff --git a/source/geometry/magneticfield/sources.cmake b/source/geometry/magneticfield/sources.cmake index a611a79273..8ff059e83b 100644 --- a/source/geometry/magneticfield/sources.cmake +++ b/source/geometry/magneticfield/sources.cmake @@ -6,6 +6,10 @@ geant4_add_module(G4magneticfield G4BFieldIntegrationDriver.hh G4BogackiShampine23.hh G4BogackiShampine45.hh + G4BorisScheme.hh + G4BorisScheme.icc + G4BorisDriver.hh + G4BorisDriver.icc G4BulirschStoer.hh G4BulirschStoer.icc G4BulirschStoerDriver.hh @@ -115,6 +119,8 @@ geant4_add_module(G4magneticfield G4BFieldIntegrationDriver.cc G4BogackiShampine23.cc G4BogackiShampine45.cc + G4BorisDriver.cc + G4BorisScheme.cc G4BulirschStoer.cc G4CachedMagneticField.cc G4CashKarpRKF45.cc diff --git a/source/geometry/magneticfield/src/G4BorisDriver.cc b/source/geometry/magneticfield/src/G4BorisDriver.cc new file mode 100644 index 0000000000..d8548aeaf2 --- /dev/null +++ b/source/geometry/magneticfield/src/G4BorisDriver.cc @@ -0,0 +1,333 @@ +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// G4BorisDriver +// +// Class description: +// +// G4BorisDriver is a driver class using the second order Boris +// method to integrate the equation of motion. +// +// +// Author: Divyansh Tiwari, Google Summer of Code 2022 +// Supervision: John Apostolakis,Renee Fatemi, Soon Yung Jun +// -------------------------------------------------------------------- +#include + +#include "G4BorisDriver.hh" + +#include "G4SystemOfUnits.hh" +#include "G4LineSection.hh" +#include "G4FieldUtils.hh" + +const G4double G4BorisDriver::fErrorConstraintShrink = std::pow( + fMaxSteppingDecrease / fSafetyFactor, 1. / fPowerShrink); + +const G4double G4BorisDriver::fErrorConstraintGrow = std::pow( + fMaxSteppingIncrease / fSafetyFactor, 1. / fPowerGrow); + +// -------------------------------------------------------------------------- + +G4BorisDriver:: +G4BorisDriver( G4double hminimum, G4BorisScheme* Boris, + G4int numberOfComponents, bool verbosity ) + : fMinimumStep(hminimum), + fVerbosity(verbosity), + boris(Boris) + // , interval_sequence{2,4} +{ + assert(boris->GetNumberOfVariables() == numberOfComponents); + + if(boris->GetNumberOfVariables() != numberOfComponents) + { + std::ostringstream msg; + msg << "Disagreement in number of variables = " + << boris->GetNumberOfVariables() + << " vs no of components = " << numberOfComponents; + G4Exception("G4BorisDriver Constructor:", + "GeomField1001", FatalException, msg); + } + +} + +// -------------------------------------------------------------------------- + +G4bool G4BorisDriver::AccurateAdvance( G4FieldTrack& track, + G4double hstep, + G4double epsilon, + G4double hinitial ) +{ + // Specification: Driver with adaptive stepsize control. + // Integrate starting values at y_current over hstep x2 with (relative) accuracy 'eps'. + // On output 'track' is replaced by values at the end of the integration interval. + + // Ensure that hstep > 0 + if(hstep == 0) + { + std::ostringstream message; + message << "Proposed step is zero; hstep = " << hstep << " !"; + G4Exception("G4BorisDriver::AccurateAdvance()", + "GeomField1001", JustWarning, message); + return true; + } + if(hstep < 0) + { + std::ostringstream message; + message << "Invalid run condition." << G4endl + << "Proposed step is negative; hstep = " << hstep << G4endl + << "Requested step cannot be negative! Aborting event."; + G4Exception("G4BorisDriver::AccurateAdvance()", + "GeomField0003", EventMustBeAborted, message); + return false; + } + + if( hinitial == 0.0 ) { hinitial = hstep; } + if( hinitial < 0.0 ) { hinitial = std::fabs( hinitial ); } + // G4double htrial = std::min( hstep, hinitial ); + G4double htrial = hstep; + // Decide first step size + + // G4int noOfSteps = h/hstep; + + // integration variables + // + track.DumpToArray(yCurrent); + + const G4double restMass = track.GetRestMass(); + const G4double charge = track.GetCharge()*e_SI; + const G4int nvar= GetNumberOfVariables(); + + // copy non-integration variables to out array + // + std::memcpy(yOut + nvar, + yCurrent + nvar, + sizeof(G4double)*(G4FieldTrack::ncompSVEC-nvar)); + + G4double curveLength = track.GetCurveLength(); // starting value + const G4double endCurveLength = curveLength + hstep; + + // -- Initial version: Did it in one step -- did not account for errors !!! + // G4FieldTrack yFldTrk(track); + // yFldTrk.LoadFromArray(yCurrent, G4FieldTrack::ncompSVEC); + // yFldTrk.SetCurveLength(curveLength); + // G4double dchord_step, dyerr_len; + // QuickAdvance(yFldTrk, dydxCurrent, htrial, dchord_step, dyerr_len); + + const G4double hThreshold = + std::max(epsilon * hstep, fSmallestFraction * curveLength); + + G4double htry= htrial; + + for (G4int nstp = 0; nstp < fMaxNoSteps; ++nstp) + { + G4double hdid= 0.0, hnext=0.0; + + OneGoodStep(yCurrent, curveLength, htry, epsilon, restMass, charge, hdid, hnext); + //********* + + // Simple check: move (distance of displacement) is smaller than length along curve! + const G4ThreeVector StartPos = field_utils::makeVector(yCurrent, field_utils::Value3D::Position); + const G4ThreeVector EndPos = field_utils::makeVector(yCurrent, field_utils::Value3D::Position); + CheckStep(EndPos, StartPos, hdid); + + // Check 1. for finish and 2. *avoid* numerous small last steps + if (curveLength >= endCurveLength || htry < hThreshold) + { + break; + } + + htry = std::max(hnext, fMinimumStep); + if (curveLength + htry > endCurveLength) + { + htry = endCurveLength - curveLength; + } + } + + // upload new state + track.LoadFromArray(yCurrent, G4FieldTrack::ncompSVEC); + track.SetCurveLength(curveLength); + + return true; +} + +// -------------------------------------------------------------------------- + +void G4BorisDriver::OneGoodStep(G4double y[], // InOut + G4double& curveLength, // InOut + G4double htry, + G4double epsilon_rel, + G4double restMass, + G4double charge, + G4double& hdid, // Out + G4double& hnext) // Out +{ + G4double error2 = DBL_MAX; + G4double yerr[G4FieldTrack::ncompSVEC], ytemp[G4FieldTrack::ncompSVEC]; + + G4double h = htry; + + const G4int max_trials = 100; + + for (G4int iter = 0; iter < max_trials; ++iter) + { + boris->StepWithErrorEstimate(y, restMass, charge, h, ytemp, yerr); + + error2 = field_utils::relativeError2(y, yerr, std::max(h, fMinimumStep), + epsilon_rel); + if (error2 <= 1.0) + { + break; + } + + h = ShrinkStepSize2(h, error2); + + G4double xnew = curveLength + h; + if(xnew == curveLength) + { + std::ostringstream message; + message << "Stepsize underflow in Stepper !" << G4endl + << "- Step's start x=" << curveLength + << " and end x= " << xnew + << " are equal !! " << G4endl + << " Due to step-size= " << h + << ". Note that input step was " << htry; + G4Exception("G4IntegrationDriver::OneGoodStep()", + "GeomField1001", JustWarning, message); + break; + } + } + + hnext = GrowStepSize2(h, error2); + curveLength += (hdid = h); + + field_utils::copy(y, ytemp, GetNumberOfVariables()); +} + +// ===========------------------------------------------------------=========== + +G4bool G4BorisDriver:: +QuickAdvance( G4FieldTrack& track, const G4double /*dydx*/[], + G4double hstep, G4double& missDist, G4double& dyerr) +{ + const auto nvar = boris->GetNumberOfVariables(); + + track.DumpToArray(yIn); + const G4double curveLength = track.GetCurveLength(); + + // call the boris method for step length hstep + G4double restMass = track.GetRestMass(); + G4double charge = track.GetCharge()*e_SI; + + // boris->DoStep(restMass, charge, yIn, yMid, hstep*0.5); + // boris->DoStep(restMass, charge, yMid, yOut, hstep*0.5); // Use mid-point !! + boris->StepWithMidAndErrorEstimate(yIn, restMass, charge, hstep, + yMid, yOut, yError); + // Same, and also return mid-point evaluation + + // How to calculate chord length?? + const auto mid = field_utils::makeVector(yMid, + field_utils::Value3D::Position); + const auto in = field_utils::makeVector(yIn, + field_utils::Value3D::Position); + const auto out = field_utils::makeVector(yOut, + field_utils::Value3D::Position); + + missDist = G4LineSection::Distline(mid, in, out); + + dyerr = field_utils::absoluteError(yOut, yError, hstep); + + // copy non-integrated variables to output array + // + std::memcpy(yOut + nvar, yIn + nvar, + sizeof(G4double) * (G4FieldTrack::ncompSVEC - nvar)); + + // set new state + // + track.LoadFromArray(yOut, G4FieldTrack::ncompSVEC); + track.SetCurveLength(curveLength + hstep); + + return true; +} + +// -------------------------------------------------------------------------------- + +void G4BorisDriver:: +GetDerivatives( const G4FieldTrack& yTrack, G4double dydx[]) const +{ + G4double EBfieldValue[6]; + GetDerivatives(yTrack, dydx, EBfieldValue); +} + +// -------------------------------------------------------------------------------- + +void G4BorisDriver:: +GetDerivatives( const G4FieldTrack& yTrack, G4double dydx[], + G4double EBfieldValue[]) const +{ + // G4Exception("G4BorisDriver::GetDerivatives()", + // "GeomField0003", FatalException, "This method is not implemented."); + G4double ytemp[G4FieldTrack::ncompSVEC]; + yTrack.DumpToArray(ytemp); + GetEquationOfMotion()->EvaluateRhsReturnB(ytemp, dydx, EBfieldValue); +} + +// -------------------------------------------------------------------------------- + +G4double G4BorisDriver::ShrinkStepSize2(G4double h, G4double error2) const +{ + if (error2 > fErrorConstraintShrink * fErrorConstraintShrink) + { + return fMaxSteppingDecrease * h; + } + return fSafetyFactor * h * std::pow(error2, 0.5 * fPowerShrink); +} + +// -------------------------------------------------------------------------------- + +G4double G4BorisDriver::GrowStepSize2(G4double h, G4double error2) const +// Given the square of the relative error, +{ + if (error2 < fErrorConstraintGrow * fErrorConstraintGrow) + { + return fMaxSteppingIncrease * h; + } + return fSafetyFactor * h * std::pow(error2, 0.5 * fPowerGrow); +} + +// -------------------------------------------------------------------------------- + +void G4BorisDriver::SetEquationOfMotion(G4EquationOfMotion* /*equation*/ ) +{ + G4Exception("G4BorisDriver::SetEquationOfMotion()", "GeomField0003", FatalException, + "This method is not implemented. BorisDriver/Stepper should keep its equation"); +} + +// -------------------------------------------------------------------------------- + +void +G4BorisDriver::StreamInfo( std::ostream& os ) const +{ + os << "State of G4BorisDriver: " << std::endl; + os << " Method is implemented, but gives no information. " << std::endl; +} diff --git a/source/geometry/magneticfield/src/G4BorisScheme.cc b/source/geometry/magneticfield/src/G4BorisScheme.cc new file mode 100644 index 0000000000..d2d887b761 --- /dev/null +++ b/source/geometry/magneticfield/src/G4BorisScheme.cc @@ -0,0 +1,189 @@ +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// G4BorisScheme implementation +// +// Author: Divyansh Tiwari, Google Summer of Code 2022 +// Supervision: John Apostolakis,Renee Fatemi, Soon Yung Jun +// -------------------------------------------------------------------- + +#include "G4BorisScheme.hh" +#include "G4FieldUtils.hh" +#include"G4SystemOfUnits.hh" +#include "globals.hh" +#include "G4PhysicalConstants.hh" + +#include "G4EquationOfMotion.hh" +//#include "G4EqMagElectricField.hh" + +using namespace field_utils; + +G4BorisScheme::G4BorisScheme( G4EquationOfMotion* equation, + G4int nvar ) + : fEquation(equation), fnvar(nvar) +{ + if (nvar <= 0) + { + G4Exception("G4BorisScheme::G4BorisScheme()", + "GeomField0002", FatalException, + "Invalid number of variables; must be greater than zero!"); + } +} + +void G4BorisScheme::DoStep(const G4double restMass,const G4double charge, const G4double yIn[], + G4double yOut[], G4double hstep) const +{ + G4double yOut1Temp[G4FieldTrack::ncompSVEC]; + G4double yOut2Temp[G4FieldTrack::ncompSVEC]; + + // Used the scheme described in the following paper:https://www.research-collection.ethz.ch/bitstream/handle/20.500.11850/153167/eth-5175-01.pdf?sequence=1 + UpdatePosition(restMass, charge, yIn, yOut1Temp, hstep/2); + UpdateVelocity(restMass, charge, yOut1Temp, yOut2Temp, hstep); + UpdatePosition(restMass, charge, yOut2Temp, yOut, hstep/2); +} + +void G4BorisScheme::UpdatePosition(const G4double restMass, const G4double /*charge*/, const G4double yIn[], + G4double yOut[], G4double hstep) const +{ + // Particle information + copy(yOut, yIn); + + // Obtaining velocity + G4ThreeVector momentum_vec =G4ThreeVector(yIn[3],yIn[4],yIn[5]); + G4double momentum_mag = momentum_vec.mag(); + G4ThreeVector momentum_dir =(1.0/momentum_mag)*momentum_vec; + + G4double velocity_mag = momentum_mag*(c_l)/(std::sqrt(sqr(momentum_mag) +sqr(restMass))); + G4ThreeVector velocity = momentum_dir*velocity_mag; + + //Obtaining the time step from the length step + + hstep /= velocity_mag*CLHEP::m; + + // Updating the Position + for(G4int i = 0; i <3; i++ ) + { + G4double pos = yIn[i]/CLHEP::m; + pos += hstep*velocity[i]; + yOut[i] = pos*CLHEP::m; + } +} + +void G4BorisScheme::UpdateVelocity(const G4double restMass, const G4double charge, const G4double yIn[], + G4double yOut[], G4double hstep) const +{ + //Particle information + G4ThreeVector momentum_vec =G4ThreeVector(yIn[3],yIn[4],yIn[5]); + G4double momentum_mag = momentum_vec.mag(); + G4ThreeVector momentum_dir =(1.0/momentum_mag)*momentum_vec; + + G4double gamma = std::sqrt(sqr(momentum_mag) + sqr(restMass))/restMass; + + G4double mass = (restMass/c_squared)/CLHEP::kg; + + //Obtaining velocity + + G4double velocity_mag = momentum_mag*(c_l)/(std::sqrt(sqr(momentum_mag) +sqr(restMass))); + G4ThreeVector velocity = momentum_dir*velocity_mag; + + ////Obtaining the time step from the length step + + hstep /= velocity_mag*CLHEP::m; + + // Obtaining the field values + G4double dydx[G4FieldTrack::ncompSVEC]; + G4double fieldValue[6] ={0,0,0,0,0,0}; + fEquation->EvaluateRhsReturnB(yIn, dydx, fieldValue); + + //Initializing Vectors + G4ThreeVector B; + G4ThreeVector E; + copy(yOut, yIn); + for( G4int i = 0; i < 3; i++) + { + E[i] = fieldValue[i+3]/CLHEP::volt*CLHEP::meter;// FIXME - Check Units + B[i] = fieldValue[i]/CLHEP::tesla; + } + + //Boris Algorithm + G4double qd = hstep*(charge/(2*mass*gamma)); + G4ThreeVector h = qd*B; + G4ThreeVector u = velocity + qd*E; + G4double h_l = h[0]*h[0] + h[1]*h[1] + h[2]*h[2]; + G4ThreeVector s_1 = (2*h)/(1 + h_l); + G4ThreeVector ud = u + (u + u.cross(h)).cross(s_1); + G4ThreeVector v_fi = ud +qd*E; + G4double v_mag = std::sqrt(v_fi.mag2()); + G4ThreeVector v_dir = v_fi/v_mag; + G4double momen_mag = (restMass*v_mag)/(std::sqrt(c_l*c_l - v_mag*v_mag)); + G4ThreeVector momen = momen_mag*v_dir; + + // Storing the updated momentum + for(int i = 3; i < 6; i++) + { + yOut[i] = momen[i-3]; + } +} + +// ---------------------------------------------------------------------------------- + +void G4BorisScheme::copy(G4double dst[], const G4double src[]) const +{ + std::memcpy(dst, src, sizeof(G4double) * fnvar); +} + +// ---------------------------------------------------------------------------------- +// - Methods using the Boris Scheme Stepping to estimate integration error +// ---------------------------------------------------------------------------------- +void G4BorisScheme:: +StepWithErrorEstimate(const G4double yIn[], G4double restMass, G4double charge, G4double hstep, + G4double yOut[], G4double yErr[]) const +{ + // Use two half-steps (comparing to a full step) to obtain output and error estimate + G4double yMid[G4FieldTrack::ncompSVEC]; + StepWithMidAndErrorEstimate(yIn, restMass, charge, hstep, yMid, yOut, yErr); +} + +// ---------------------------------------------------------------------------------- + +void G4BorisScheme:: +StepWithMidAndErrorEstimate(const G4double yIn[], G4double restMass, G4double charge, G4double hstep, + G4double yMid[], G4double yOut[], G4double yErr[] + ) const +{ + G4double halfStep= 0.5*hstep; + G4double yOutAlt[G4FieldTrack::ncompSVEC]; + + // In a single step + DoStep(restMass, charge, yIn, yOutAlt, hstep ); + + // Same, and also return mid-point evaluation + DoStep(restMass, charge, yIn, yMid, halfStep ); + DoStep(restMass, charge, yMid, yOut, halfStep ); + + for( G4int i= 0; i0 */ - for(G4int j = k - 1 ; j > 0; --j) + for(std::size_t j = k - 1 ; j > 0; --j) { for (G4int i = 0; i < fnvar; ++i) { @@ -256,7 +256,7 @@ void G4BulirschStoer::extrapolate(size_t k , G4double xest[]) } G4double -G4BulirschStoer::calc_h_opt(G4double h , G4double error , size_t k) const +G4BulirschStoer::calc_h_opt(G4double h , G4double error , std::size_t k) const { /* calculates the optimal step size for a given error and stage number */ @@ -279,7 +279,7 @@ G4BulirschStoer::calc_h_opt(G4double h , G4double error , size_t k) const } //why is not used!!?? -G4bool G4BulirschStoer::set_k_opt(size_t k, G4double& dt) +G4bool G4BulirschStoer::set_k_opt(std::size_t k, G4double& dt) { /* calculates the optimal stage number */ @@ -290,19 +290,19 @@ G4bool G4BulirschStoer::set_k_opt(size_t k, G4double& dt) } if( (work[k-1] < KFAC1 * work[k]) || (k == m_k_max) ) // order decrease { - m_current_k_opt = k - 1; + m_current_k_opt = (G4int)k - 1; dt = h_opt[ m_current_k_opt ]; return true; } else if( (work[k] < KFAC2 * work[k-1]) || m_last_step_rejected || (k == m_k_max-1) ) { // same order - also do this if last step got rejected - m_current_k_opt = k; + m_current_k_opt = (G4int)k; dt = h_opt[m_current_k_opt]; return true; } else { // order increase - only if last step was not rejected - m_current_k_opt = k + 1; + m_current_k_opt = (G4int)k + 1; dt = h_opt[m_current_k_opt - 1] * m_cost[m_current_k_opt] / m_cost[m_current_k_opt - 1]; return true; diff --git a/source/geometry/magneticfield/src/G4DriverReporter.cc b/source/geometry/magneticfield/src/G4DriverReporter.cc index 90ce329d0f..55728fa691 100644 --- a/source/geometry/magneticfield/src/G4DriverReporter.cc +++ b/source/geometry/magneticfield/src/G4DriverReporter.cc @@ -62,9 +62,9 @@ void G4DriverReporter::PrintStatus( const G4double* StartArr, // --------------------------------------------------------------------------- const G4int noPrecision = 8; -const int prec7= noPrecision+2; -const int prec8= noPrecision+3; -const int prec9= noPrecision+4; +const G4int prec7= noPrecision+2; +const G4int prec8= noPrecision+3; +const G4int prec9= noPrecision+4; void G4DriverReporter::PrintStatus(const G4FieldTrack& StartFT, const G4FieldTrack& CurrentFT, @@ -72,7 +72,7 @@ void G4DriverReporter::PrintStatus(const G4FieldTrack& StartFT, unsigned int subStepNo) { G4int verboseLevel= 2; // fVerboseLevel; - G4int oldPrec= G4cout.precision(noPrecision); + G4long oldPrec= G4cout.precision(noPrecision); // G4cout.setf(ios_base::fixed,ios_base::floatfield); const G4ThreeVector StartPosition= StartFT.GetPosition(); @@ -143,7 +143,7 @@ void G4DriverReporter::PrintStat_Aux(const G4FieldTrack& aFieldTrack, const G4ThreeVector Position = aFieldTrack.GetPosition(); const G4ThreeVector UnitVelocity = aFieldTrack.GetMomentumDir(); - G4int oldprec= G4cout.precision(noPrecision); + G4long oldprec= G4cout.precision(noPrecision); if( subStepNo >= 0) { diff --git a/source/geometry/magneticfield/src/G4FieldManager.cc b/source/geometry/magneticfield/src/G4FieldManager.cc index 21bdbf430d..80105221ea 100644 --- a/source/geometry/magneticfield/src/G4FieldManager.cc +++ b/source/geometry/magneticfield/src/G4FieldManager.cc @@ -37,6 +37,14 @@ G4double G4FieldManager::fDefault_Delta_One_Step_Value= 0.01 * millimeter; G4double G4FieldManager::fDefault_Delta_Intersection_Val= 0.001 * millimeter; +G4bool G4FieldManager::fVerboseConstruction= false; + +G4double G4FieldManager::fMaxAcceptedEpsilon= 0.01; // Legacy value. Future value = 0.001 +// Requesting a large epsilon (max) value provides poor accuracy for +// every integration segment. +// Problems occur because some methods (including DormandPrince(7)45 the estimation of local +// error appears to be a substantial underestimate at large epsilon values ( > 0.001 ). +// So the value for fMaxAcceptedEpsilon is recommended to be 0.001 or below. G4FieldManager::G4FieldManager(G4Field* detectorField, G4ChordFinder* pChordFinder, @@ -57,6 +65,9 @@ G4FieldManager::G4FieldManager(G4Field* detectorField, fFieldChangesEnergy = fieldChangesEnergy; } + if( fVerboseConstruction) + G4cout << "G4FieldManager/ctor#1 fEpsilon Min/Max: eps_min = " << fEpsilonMin << " eps_max=" << fEpsilonMax << G4endl; + // Add to store // G4FieldManagerStore::Register(this); @@ -71,6 +82,8 @@ G4FieldManager::G4FieldManager(G4MagneticField* detectorField) { fChordFinder = new G4ChordFinder( detectorField ); + if( fVerboseConstruction ) + G4cout << "G4FieldManager/ctor#2 fEpsilon Min/Max: eps_min = " << fEpsilonMin << " eps_max=" << fEpsilonMax << G4endl; // Add to store // G4FieldManagerStore::Register(this); @@ -128,6 +141,8 @@ G4FieldManager* G4FieldManager::Clone() const delete aCF; throw; } + + G4cout << "G4FieldManager/clone fEpsilon Min/Max: eps_min = " << fEpsilonMin << " eps_max=" << fEpsilonMax << G4endl; return aFM; } @@ -234,3 +249,195 @@ G4bool G4FieldManager::SetDetectorField(G4Field* pDetectorField, } return ableToSet; } + +G4bool G4FieldManager::SetMaximumEpsilonStep( G4double newEpsMax ) +{ + G4bool succeeded= false; + if( (newEpsMax > 0.0) && ( newEpsMax <= fMaxAcceptedEpsilon) + && (fMinAcceptedEpsilon <= newEpsMax ) ) // (std::fabs(1.0+newEpsMax)>1.0) ) + { + if(newEpsMax >= fEpsilonMin){ + fEpsilonMax = newEpsMax; + succeeded = true; + // if(verbose) + G4cout << "G4FieldManager/SetEpsMax : eps_max = " << std::setw(10) << fEpsilonMax + << " ( Note: unchanged eps_min=" << std::setw(10) << fEpsilonMin << " )" << G4endl; + } else { + G4ExceptionDescription erm; + erm << " Call to set eps_max = " << newEpsMax << " . The problem is that" + << " its value must be at larger or equal to eps_min= " << fEpsilonMin << G4endl; + erm << " Modifying both to the same value " << newEpsMax << " to ensure consistency." + << G4endl + << " To avoid this warning, please set eps_min first, and ensure that " + << " 0 < eps_min <= eps_max <= " << fMaxAcceptedEpsilon << G4endl; + + fEpsilonMax = newEpsMax; + fEpsilonMin = newEpsMax; + G4String methodName = G4String("G4FieldManager::")+ G4String(__func__); + G4Exception(methodName.c_str(), "Geometry003", JustWarning, erm); + } + } + else + { + G4ExceptionDescription erm; + G4String paramName("eps_max"); + ReportBadEpsilonValue(erm, newEpsMax, paramName ); + G4String methodName = G4String("G4FieldManager::")+ G4String(__func__); + G4Exception(methodName.c_str(), "Geometry001", FatalException, erm); + } + return succeeded; +} + +// ----------------------------------------------------------------------------- + +G4bool G4FieldManager::SetMinimumEpsilonStep( G4double newEpsMin ) +{ + G4bool succeeded= false; + + if( fMinAcceptedEpsilon <= newEpsMin && newEpsMin <= fMaxAcceptedEpsilon ) + { + fEpsilonMin = newEpsMin; + //********* + succeeded= true; + + G4cout << "G4FieldManager/SetEpsMin : eps_min = " + << std::setw(10) << fEpsilonMin << G4endl; + if( fEpsilonMax < fEpsilonMin ){ + // Ensure consistency + G4ExceptionDescription erm; + erm << "Setting eps_min = " << newEpsMin + << " For consistency set eps_max= " << fEpsilonMin + << " ( Old value = " << fEpsilonMax << " )" << G4endl; + fEpsilonMax = fEpsilonMin; + G4String methodName = G4String("G4FieldManager::")+ G4String(__func__); + G4Exception(methodName.c_str(), "Geometry003", JustWarning, erm); + } + } + else + { + G4ExceptionDescription erm; + G4String paramName("eps_min"); + ReportBadEpsilonValue(erm, newEpsMin, paramName ); + G4String methodName = G4String("G4FieldManager::")+ G4String(__func__); + G4Exception(methodName.c_str(), "Geometry001", FatalException, erm); + } + return succeeded; +} + +// ----------------------------------------------------------------------------- + +G4double G4FieldManager::GetMaxAcceptedEpsilon() +{ + return fMaxAcceptedEpsilon; +} + +// ----------------------------------------------------------------------------- + +G4bool G4FieldManager::SetMaxAcceptedEpsilon(G4double maxAcceptValue, G4bool softFailure) +// Set value -- within limits +{ + G4bool success= false; + // Limit for warning and absolute limit chosen from experience in and + // investigation of integration with G4DormandPrince745 in HEP-type setups. + if( maxAcceptValue <= fMaxWarningEpsilon ) + { + fMaxAcceptedEpsilon= maxAcceptValue; + success= true; + } + else + { + G4ExceptionDescription erm; + G4ExceptionSeverity severity; + + G4cout << "G4FieldManager::" << __func__ + << " Parameters: fMaxAcceptedEpsilon = " << fMaxAcceptedEpsilon + << " fMaxFinalEpsilon = " << fMaxFinalEpsilon << G4endl; + + if( maxAcceptValue <= fMaxFinalEpsilon ) + { + success= true; + fMaxAcceptedEpsilon = maxAcceptValue; + // Integration is poor, and robustness will likely suffer + erm << "Proposed value for maximum-accepted-epsilon = " << maxAcceptValue + << " is larger than the recommended = " << fMaxWarningEpsilon + << G4endl + << "This may impact the robustness of integration of tracks in field." + << G4endl + << "The request was accepted and the value = " << fMaxAcceptedEpsilon + << " , but future releases are expected " << G4endl + << " to tighten the limit of acceptable values to " + << fMaxWarningEpsilon << G4endl << G4endl + << "Suggestion: If you need better performance investigate using " + << "alternative, low-order RK integration methods or " << G4endl + << " helix-based methods (for pure B-fields) for low(er) energy tracks, " + << " especially electrons if you need better performance." << G4endl; + severity= JustWarning; + } + else + { + fMaxAcceptedEpsilon= fMaxFinalEpsilon; + erm << " Proposed value for maximum accepted epsilon " << maxAcceptValue + << " is larger than the top of the range = " << fMaxFinalEpsilon + << G4endl; + if( softFailure ) + erm << " Using the latter value instead." << G4endl; + erm << G4endl; + erm << " Please adjust to request maxAccepted <= " << fMaxFinalEpsilon + << G4endl << G4endl; + if( softFailure == false ) + erm << " NOTE: you can accept the ceiling value and turn this into a " + << " warning by using a 2nd argument " << G4endl + << " in your call to SetMaxAcceptedEpsilon: softFailure = true "; + severity = softFailure ? JustWarning : FatalException; + // if( softFailure ) severity= JustWarning; + // else severity= FatalException; + success = false; + } + G4String methodName = G4String("G4FieldManager::")+ G4String(__func__); + G4Exception(methodName.c_str(), "Geometry003", severity, erm); + } + return success; +} + +// ----------------------------------------------------------------------------- + +void G4FieldManager:: +ReportBadEpsilonValue(G4ExceptionDescription& erm, G4double value, G4String& name) const +{ + erm << "Incorrect proposed value of " << name << " = " << value << G4endl + << " Its value is outside the permitted range from " + << fMinAcceptedEpsilon << " to " << fMaxAcceptedEpsilon << G4endl + << " Clarification: " << G4endl; + G4long oldPrec = erm.precision(); + if(value < fMinAcceptedEpsilon ) + { + erm << " a) The value must be positive and enough larger than the accuracy limit" + << " of the (G4)double type - (" + << (value < fMinAcceptedEpsilon ? "FAILED" : "OK" ) << ")" << G4endl + << " i.e. std::numeric_limits::epsilon()= " + << std::numeric_limits::epsilon() + << " to ensure that integration " << G4endl + << " could potentially achieve this acccuracy." << G4endl + << " Minimum accepted eps_min/max value = " << fMinAcceptedEpsilon << G4endl; + } + else if( value > fMaxAcceptedEpsilon) + { + erm << " b) It must be smaller than (or equal) " << std::setw(8) + << std::setprecision(4) << fMaxAcceptedEpsilon + << " to ensure robustness of integration - (" + << (( value < fMaxAcceptedEpsilon) ? "OK" : "FAILED" ) << ")" << G4endl; + } + else + { + G4bool badRoundoff = (std::fabs(1.0+value) == 1.0); + erm << " Unknown ERROR case -- extra check: " << G4endl; + erm << " c) as a floating point number (of type G4double) the sum (1+" << name + << " ) must be > 1 , (" + << (badRoundoff ? "FAILED" : "OK" ) << ")" << G4endl + << " Now 1+eps_min = " << std::setw(20) + << std::setprecision(17) << (1+value) << G4endl + << " and (1.0+" << name << ") - 1.0 = " << std::setw(20) + << std::setprecision(9) << (1.0+value)-1.0; + } + erm.precision(oldPrec); +} diff --git a/source/geometry/magneticfield/src/G4FieldManagerStore.cc b/source/geometry/magneticfield/src/G4FieldManagerStore.cc index 8cbd1d2773..89f3a25684 100644 --- a/source/geometry/magneticfield/src/G4FieldManagerStore.cc +++ b/source/geometry/magneticfield/src/G4FieldManagerStore.cc @@ -71,26 +71,13 @@ void G4FieldManagerStore::Clean() // locked = true; - size_t i=0; G4FieldManagerStore* store = GetInstance(); for(auto pos=store->cbegin(); pos!=store->cend(); ++pos) { if (*pos) { delete *pos; } - i++; } -#ifdef G4GEOMETRY_DEBUG - if (store->size() < i-1) - { - G4cout << "No field managers deleted. Already deleted by user ?" << G4endl; - } - else - { - G4cout << i-1 << " field managers deleted !" << G4endl; - } -#endif - locked = false; store->clear(); } diff --git a/source/geometry/magneticfield/src/G4FieldTrack.cc b/source/geometry/magneticfield/src/G4FieldTrack.cc index bdfa1c329a..2efafa8a6b 100644 --- a/source/geometry/magneticfield/src/G4FieldTrack.cc +++ b/source/geometry/magneticfield/src/G4FieldTrack.cc @@ -38,7 +38,7 @@ std::ostream& operator<<( std::ostream& os, const G4FieldTrack& SixVec) const G4int precLen= 12; // For Length along track const G4int precSpin= 9; // For polarisation const G4int precTime= 6; // For time of flight - const G4int oldpr= os.precision(precPos); + const G4long oldpr= os.precision(precPos); os << " ( "; os << " X= " << SixV[0] << " " << SixV[1] << " " << SixV[2] << " "; // Position diff --git a/source/geometry/magneticfield/src/G4FieldUtils.cc b/source/geometry/magneticfield/src/G4FieldUtils.cc index 04239c0618..bd89df41bb 100644 --- a/source/geometry/magneticfield/src/G4FieldUtils.cc +++ b/source/geometry/magneticfield/src/G4FieldUtils.cc @@ -95,7 +95,7 @@ G4double relativeError(const G4double y[], return std::sqrt(relativeError2(y, yError, h, errorTolerance)); } -void copy(G4double dst[], const G4double src[], size_t size) +void copy(G4double dst[], const G4double src[], std::size_t size) { std::memcpy(dst, src, sizeof(G4double) * size); } diff --git a/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc b/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc index b486db7dd0..ef477a7201 100644 --- a/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc +++ b/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc @@ -104,10 +104,11 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, // interval. RightHandSide is the right-hand side of ODE system. // The source is similar to odeint routine from NRC p.721-722 . - G4int nstp, i, no_warnings = 0; + G4int nstp, i; G4double x, hnext, hdid, h; #ifdef G4DEBUG_FIELD + G4int no_warnings = 0; static G4int dbg = 1; static G4int nStpPr = 50; // For debug printing of long integrations G4double ySubStepStart[G4FieldTrack::ncompSVEC]; @@ -117,12 +118,10 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, G4double y[G4FieldTrack::ncompSVEC], dydx[G4FieldTrack::ncompSVEC]; G4double ystart[G4FieldTrack::ncompSVEC], yEnd[G4FieldTrack::ncompSVEC]; G4double x1, x2; - G4bool succeeded = true, lastStepSucceeded; + G4bool succeeded = true; G4double startCurveLength; - G4int noFullIntegr = 0, noSmallIntegr = 0; - static G4ThreadLocal G4int noGoodSteps = 0; // Bad = chord > curve-len const G4int nvar = fNoVars; G4FieldTrack yStartFT(y_current); @@ -194,7 +193,6 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, { OneGoodStep(y,dydx,x,h,eps,hdid,hnext) ; //-------------------------------------- - lastStepSucceeded = (hdid == h); #ifdef G4DEBUG_FIELD if (dbg>2) { @@ -247,14 +245,8 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, // Compute suggested new step hnext = ComputeNewStepSize( dyerr/eps, h); - - // .. hnext= ComputeNewStepSize_WithinLimits( dyerr/eps, h); - lastStepSucceeded = (dyerr<= eps); } - if (lastStepSucceeded) { ++noFullIntegr; } - else { ++noSmallIntegr; } - G4ThreeVector EndPos( y[0], y[1], y[2] ); #ifdef G4DEBUG_FIELD @@ -285,19 +277,13 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, { WarnEndPointTooFar ( endPointDist, hdid, eps, dbg ); G4cerr << " Total steps: bad " << fNoBadSteps - << " good " << noGoodSteps << " current h= " << hdid - << G4endl; + << " current h= " << hdid << G4endl; PrintStatus( ystart, x1, y, x, hstep, no_warnings?nstp:-nstp); } -#endif ++no_warnings; +#endif } } - else - { - ++noGoodSteps; - } -// #endif // Avoid numerous small last steps if( (h < eps * hstep) || (h < fSmallestFraction * startCurveLength) ) @@ -372,9 +358,9 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, if(nstp > fMaxNoSteps) { - ++no_warnings; succeeded = false; #ifdef G4DEBUG_FIELD + ++no_warnings; if (dbg) { WarnTooManyStep( x1, x2, x ); // Issue WARNING @@ -517,7 +503,6 @@ G4MagInt_Driver::OneGoodStep( G4double y[], // InOut G4double errvel_sq = 0.0; // square of momentum vector difference G4double errspin_sq = 0.0; // square of spin vector difference - static G4ThreadLocal G4int tot_no_trials=0; const G4int max_trials=100; G4ThreeVector Spin(y[9],y[10],y[11]); @@ -526,7 +511,6 @@ G4MagInt_Driver::OneGoodStep( G4double y[], // InOut for (G4int iter=0; iter Stepper(y,dydx,h,ytemp,yerr); // ******* G4double eps_pos = eps_rel_max * std::max(h, fMinimumStep); @@ -639,9 +623,6 @@ G4bool G4MagInt_Driver::QuickAdvance(G4FieldTrack& y_posvel, // INOUT G4double s_start; G4double dyerr_mom_sq, vel_mag_sq, inv_vel_mag_sq; - static G4ThreadLocal G4int no_call = 0; - ++no_call; - // Move data into array y_posvel.DumpToArray( yarrin ); // yarrin <== y_posvel s_start = y_posvel.GetCurveLength(); @@ -832,7 +813,7 @@ void G4MagInt_Driver::PrintStatus(const G4FieldTrack& StartFT, { G4int verboseLevel= fVerboseLevel; const G4int noPrecision = 5; - G4int oldPrec= G4cout.precision(noPrecision); + G4long oldPrec= G4cout.precision(noPrecision); // G4cout.setf(ios_base::fixed,ios_base::floatfield); const G4ThreeVector StartPosition= StartFT.GetPosition(); @@ -914,7 +895,7 @@ void G4MagInt_Driver::PrintStat_Aux(const G4FieldTrack& aFieldTrack, << std::setw( 8) << UnitVelocity.x() << " " << std::setw( 8) << UnitVelocity.y() << " " << std::setw( 8) << UnitVelocity.z() << " "; - G4int oldprec= G4cout.precision(3); + G4long oldprec= G4cout.precision(3); G4cout << std::setw( 8) << UnitVelocity.mag2()-1.0 << " "; G4cout.precision(6); G4cout << std::setw(10) << dotVeloc_StartCurr << " "; @@ -956,7 +937,7 @@ void G4MagInt_Driver::PrintStat_Aux(const G4FieldTrack& aFieldTrack, void G4MagInt_Driver::PrintStatisticsReport() { G4int noPrecBig = 6; - G4int oldPrec = G4cout.precision(noPrecBig); + G4long oldPrec = G4cout.precision(noPrecBig); G4cout << "G4MagInt_Driver Statistics of steps undertaken. " << G4endl; G4cout << "G4MagInt_Driver: Number of Steps: " diff --git a/source/geometry/magneticfield/src/G4OldMagIntDriver.cc b/source/geometry/magneticfield/src/G4OldMagIntDriver.cc index c1822c1981..0dae41de9d 100644 --- a/source/geometry/magneticfield/src/G4OldMagIntDriver.cc +++ b/source/geometry/magneticfield/src/G4OldMagIntDriver.cc @@ -103,10 +103,11 @@ G4OldMagIntDriver::AccurateAdvance(G4FieldTrack& y_current, // interval. RightHandSide is the right-hand side of ODE system. // The source is similar to odeint routine from NRC p.721-722 . - G4int nstp, i, no_warnings = 0; + G4int nstp, i; G4double x, hnext, hdid, h; #ifdef G4DEBUG_FIELD + G4int no_warnings = 0; static G4int dbg = 1; G4double ySubStepStart[G4FieldTrack::ncompSVEC]; G4FieldTrack yFldTrkStart(y_current); @@ -115,12 +116,10 @@ G4OldMagIntDriver::AccurateAdvance(G4FieldTrack& y_current, G4double y[G4FieldTrack::ncompSVEC], dydx[G4FieldTrack::ncompSVEC]; G4double ystart[G4FieldTrack::ncompSVEC], yEnd[G4FieldTrack::ncompSVEC]; G4double x1, x2; - G4bool succeeded = true, lastStepSucceeded; + G4bool succeeded = true; G4double startCurveLength; - G4int noFullIntegr = 0, noSmallIntegr = 0; - static G4ThreadLocal G4int noGoodSteps = 0; // Bad = chord > curve-len const G4int nvar = fNoVars; G4FieldTrack yStartFT(y_current); @@ -200,7 +199,7 @@ G4OldMagIntDriver::AccurateAdvance(G4FieldTrack& y_current, { OneGoodStep(y,dydx,x,h,eps,hdid,hnext) ; //-------------------------------------- - lastStepSucceeded = (hdid == h); + #ifdef G4DEBUG_FIELD if (dbg) // (dbg>2) { @@ -256,12 +255,8 @@ G4OldMagIntDriver::AccurateAdvance(G4FieldTrack& y_current, hnext = ComputeNewStepSize( dyerr/eps, h); // .. hnext= ComputeNewStepSize_WithinLimits( dyerr/eps, h); - lastStepSucceeded = (dyerr<= eps); } - if (lastStepSucceeded) { ++noFullIntegr; } - else { ++noSmallIntegr; } - G4ThreeVector EndPos( y[0], y[1], y[2] ); #if (G4DEBUG_FIELD>1) @@ -293,19 +288,13 @@ G4OldMagIntDriver::AccurateAdvance(G4FieldTrack& y_current, { WarnEndPointTooFar ( endPointDist, hdid, eps, dbg ); G4cerr << " Total steps: bad " << fNoBadSteps - << " good " << noGoodSteps << " current h= " << hdid - << G4endl; + << " current h= " << hdid << G4endl; PrintStatus( ystart, x1, y, x, hstep, no_warnings?nstp:-nstp); } -#endif ++no_warnings; +#endif } } - else - { - ++noGoodSteps; - } -// #endif // Avoid numerous small last steps if( (h < eps * hstep) || (h < fSmallestFraction * startCurveLength) ) @@ -380,9 +369,9 @@ G4OldMagIntDriver::AccurateAdvance(G4FieldTrack& y_current, if(nstp > fMaxNoSteps) { - ++no_warnings; succeeded = false; #ifdef G4DEBUG_FIELD + ++no_warnings; if (dbg) { WarnTooManyStep( x1, x2, x ); // Issue WARNING @@ -525,7 +514,6 @@ G4OldMagIntDriver::OneGoodStep( G4double y[], // InOut G4double errvel_sq = 0.0; // square of momentum vector difference G4double errspin_sq = 0.0; // square of spin vector difference - static G4ThreadLocal G4int tot_no_trials=0; const G4int max_trials=100; G4ThreeVector Spin(y[9],y[10],y[11]); @@ -534,7 +522,6 @@ G4OldMagIntDriver::OneGoodStep( G4double y[], // InOut for (G4int iter=0; iter Stepper(y,dydx,h,ytemp,yerr); // ******* G4double eps_pos = eps_rel_max * std::max(h, fMinimumStep); @@ -647,9 +634,6 @@ G4bool G4OldMagIntDriver::QuickAdvance(G4FieldTrack& y_posvel, // INOUT G4double s_start; G4double dyerr_mom_sq, vel_mag_sq, inv_vel_mag_sq; - static G4ThreadLocal G4int no_call = 0; - ++no_call; - #ifdef G4DEBUG_FIELD G4FieldTrack startTrack( y_posvel ); // For debugging #endif @@ -713,7 +697,7 @@ G4bool G4OldMagIntDriver::QuickAdvance(G4FieldTrack& y_posvel, // INOUT #ifdef G4DEBUG_FIELD // For debugging G4cout // << "G4MagInt_Driver::" - << "QuickAdvance call # " << no_call << G4endl + << "QuickAdvance" << G4endl << " Input: hstep= " << hstep << G4endl << " track= " << startTrack << G4endl << " Output: track= " << y_posvel << G4endl @@ -844,7 +828,7 @@ void G4OldMagIntDriver::PrintStatus(const G4FieldTrack& StartFT, { G4int verboseLevel= fVerboseLevel; const G4int noPrecision = 5; - G4int oldPrec= G4cout.precision(noPrecision); + G4long oldPrec= G4cout.precision(noPrecision); // G4cout.setf(ios_base::fixed,ios_base::floatfield); const G4ThreeVector StartPosition= StartFT.GetPosition(); @@ -926,7 +910,7 @@ void G4OldMagIntDriver::PrintStat_Aux(const G4FieldTrack& aFieldTrack, << std::setw( 8) << UnitVelocity.x() << " " << std::setw( 8) << UnitVelocity.y() << " " << std::setw( 8) << UnitVelocity.z() << " "; - G4int oldprec= G4cout.precision(3); + G4long oldprec= G4cout.precision(3); G4cout << std::setw( 8) << UnitVelocity.mag2()-1.0 << " "; G4cout.precision(6); G4cout << std::setw(10) << dotVeloc_StartCurr << " "; @@ -968,7 +952,7 @@ void G4OldMagIntDriver::PrintStat_Aux(const G4FieldTrack& aFieldTrack, void G4OldMagIntDriver::PrintStatisticsReport() { G4int noPrecBig = 6; - G4int oldPrec = G4cout.precision(noPrecBig); + G4long oldPrec = G4cout.precision(noPrecBig); G4cout << "G4OldMagIntDriver Statistics of steps undertaken. " << G4endl; G4cout << "G4OldMagIntDriver: Number of Steps: " diff --git a/source/geometry/management/History b/source/geometry/management/History index 7ef93d8346..ca8f6cc6e8 100644 --- a/source/geometry/management/History +++ b/source/geometry/management/History @@ -1,9 +1,29 @@ # Category geommng History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-16 Gabriele Cosmo (geommng-V11-00-09) +- Fixed more compilation warnings for implicit type conversions on + macOS/XCode 14.1 in G4SmartVoxelNode source. + +## 2022-11-10 Gabriele Cosmo (geommng-V11-00-08) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-04 Gabriele Cosmo (geommng-V11-00-07) +- Fixed compilation warnings on Intel/icx compiler for variables set but not + used. + +### 2022-08-16 Gabriele Cosmo (geommng-V11-00-06) +- Added protection in G4GeometryManager for Open/CloseGeometry() to + be executed only by master thread. + Addressing problem report #2502. + +## 2022-07-03 Ben Morgan (geommng-V11-00-05) +- Add headers for directly used classes from global/HEPGeometry ## 2022-04-13 Ben Morgan (geommng-V11-00-04) - Add missing dependency on G4heprandom diff --git a/source/geometry/management/include/G4BlockingList.hh b/source/geometry/management/include/G4BlockingList.hh index a0eed4a954..64e7604d8c 100644 --- a/source/geometry/management/include/G4BlockingList.hh +++ b/source/geometry/management/include/G4BlockingList.hh @@ -73,7 +73,7 @@ class G4BlockingList // Enlarges blocking List if current size < nv, in units of stride. // Clears the new part of the List. - size_t Length() const; + std::size_t Length() const; // Returns the current length of the List. Note a length of 16 // means volumes of indices between 0 & 15 inclusive may be blocked. diff --git a/source/geometry/management/include/G4BlockingList.icc b/source/geometry/management/include/G4BlockingList.icc index eb508920b7..3ab09b66f0 100644 --- a/source/geometry/management/include/G4BlockingList.icc +++ b/source/geometry/management/include/G4BlockingList.icc @@ -30,7 +30,7 @@ // // -------------------------------------------------------------------- -inline size_t G4BlockingList::Length() const +inline std::size_t G4BlockingList::Length() const { return fBlockingList.size(); } @@ -59,10 +59,10 @@ inline void G4BlockingList::Reset() inline void G4BlockingList::Enlarge(const G4int nv) { - size_t len=fBlockingList.size(); + std::size_t len=fBlockingList.size(); if ( G4int(len)GetSurfaceTolerance(); @@ -129,7 +130,7 @@ void G4BoundingEnvelope::CheckBoundingBox() // void G4BoundingEnvelope::CheckBoundingPolygons() { - G4int nbases = fPolygons->size(); + std::size_t nbases = fPolygons->size(); if (nbases < 2) { std::ostringstream message; @@ -140,7 +141,7 @@ void G4BoundingEnvelope::CheckBoundingPolygons() return; } - G4int nsize = std::max((*fPolygons)[0]->size(),(*fPolygons)[1]->size()); + std::size_t nsize = std::max((*fPolygons)[0]->size(),(*fPolygons)[1]->size()); if (nsize < 3) { std::ostringstream message; @@ -154,9 +155,9 @@ void G4BoundingEnvelope::CheckBoundingPolygons() return; } - for (G4int k=0; ksize(); + std::size_t np = (*fPolygons)[k]->size(); if (np == nsize) continue; if (np == 1 && k==0) continue; if (np == 1 && k==nbases-1) continue; @@ -423,7 +424,7 @@ G4BoundingEnvelope::CalculateExtent(const EAxis pAxis, std::vector vertices; std::vector> bases; TransformVertices(pTransform3D, vertices, bases); - G4int nbases = bases.size(); + std::size_t nbases = bases.size(); // Create adjusted G4VoxelLimits box. New limits are extended by // delta, kCarTolerance multiplied by max scale factor of @@ -447,7 +448,7 @@ G4BoundingEnvelope::CalculateExtent(const EAxis pAxis, G4Segment3D extent; extent.first = G4Point3D( kInfinity, kInfinity, kInfinity); extent.second = G4Point3D(-kInfinity,-kInfinity,-kInfinity); - for (G4int k=0; ksize(); + G4int nv = (G4int)(*i)->size(); pBases.push_back(std::make_pair(index, nv)); index += nv; } @@ -680,14 +681,14 @@ G4BoundingEnvelope::CreateListOfEdges(const G4Polygon3D& baseA, const G4Polygon3D& baseB, std::vector& pEdges) const { - G4int na = baseA.size(); - G4int nb = baseB.size(); + std::size_t na = baseA.size(); + std::size_t nb = baseB.size(); pEdges.clear(); if (na == nb) { pEdges.resize(3*na); - G4int k = na - 1; - for (G4int i=0; i kCarTolerance) @@ -766,8 +767,8 @@ G4BoundingEnvelope::CreateListOfPlanes(const G4Polygon3D& baseA, } else if (nb == 1) // baseB has one vertex { - G4int k = na - 1; - for (G4int i=0; i kCarTolerance) @@ -784,8 +785,8 @@ G4BoundingEnvelope::CreateListOfPlanes(const G4Polygon3D& baseA, } else if (na == 1) // baseA has one vertex { - G4int k = nb - 1; - for (G4int i=0; i kCarTolerance) @@ -803,8 +804,8 @@ G4BoundingEnvelope::CreateListOfPlanes(const G4Polygon3D& baseA, // Ensure that normals of the planes point to outside // - G4int nplanes = pPlanes.size(); - for (G4int i=0; i 0) @@ -830,8 +831,8 @@ G4BoundingEnvelope::ClipEdgesByVoxel(const std::vector& pEdges, G4Point3D emin = pExtent.first; G4Point3D emax = pExtent.second; - G4int nedges = pEdges.size(); - for (G4int k=0; k triangles; G4bool reply = TriangulatePolygon(polygon,triangles); - G4int n = triangles.size(); + G4int n = (G4int)triangles.size(); for (G4int i=0; i & stats, // // Get total memory use // - G4int i, nStat = stats.size(); + G4int i, nStat = (G4int)stats.size(); G4long totalMemory = 0; for( i=0; icbegin(); pos!=store->cend(); ++pos) { if (fgNotifier != nullptr) { fgNotifier->NotifyDeRegistration(); } if (*pos != nullptr) { (*pos)->Lock(); delete *pos; } - ++i; } -#ifdef G4GEOMETRY_VOXELDEBUG - if (store->size() < i-1) - { G4cout << "No volumes deleted. Already deleted by user ?" << G4endl; } - else - { G4cout << i-1 << " volumes deleted !" << G4endl; } -#endif - store->bmap.clear(); store->mvalid = false; locked = false; store->clear(); diff --git a/source/geometry/management/src/G4PhysicalVolumeStore.cc b/source/geometry/management/src/G4PhysicalVolumeStore.cc index 28776e985d..f233e00558 100644 --- a/source/geometry/management/src/G4PhysicalVolumeStore.cc +++ b/source/geometry/management/src/G4PhysicalVolumeStore.cc @@ -90,26 +90,14 @@ void G4PhysicalVolumeStore::Clean() // locked = true; - std::size_t i=0; G4PhysicalVolumeStore* store = GetInstance(); -#ifdef G4GEOMETRY_VOXELDEBUG - G4cout << "Deleting Physical Volumes ... "; -#endif - for(auto pos=store->cbegin(); pos!=store->cend(); ++pos) { if (fgNotifier != nullptr) { fgNotifier->NotifyDeRegistration(); } - delete *pos; ++i; + delete *pos; } -#ifdef G4GEOMETRY_VOXELDEBUG - if (store->size() < i-1) - { G4cout << "No volumes deleted. Already deleted by user ?" << G4endl; } - else - { G4cout << i-1 << " volumes deleted !" << G4endl; } -#endif - store->bmap.clear(); store->mvalid = false; locked = false; store->clear(); diff --git a/source/geometry/management/src/G4Region.cc b/source/geometry/management/src/G4Region.cc index 85be9a359f..334cfce64a 100644 --- a/source/geometry/management/src/G4Region.cc +++ b/source/geometry/management/src/G4Region.cc @@ -175,7 +175,7 @@ void G4Region::ScanVolumeTree(G4LogicalVolume* lv, G4bool region) // its material to the list if not already present // G4Region* currentRegion = nullptr; - size_t noDaughters = lv->GetNoDaughters(); + std::size_t noDaughters = lv->GetNoDaughters(); G4Material* volMat = lv->GetMaterial(); if((volMat == nullptr) && fInMassGeometry) { @@ -217,10 +217,10 @@ void G4Region::ScanVolumeTree(G4LogicalVolume* lv, G4bool region) if (pParam->GetMaterialScanner() != nullptr) { - size_t matNo = pParam->GetMaterialScanner()->GetNumberOfMaterials(); - for (size_t mat=0; matGetMaterialScanner()->GetNumberOfMaterials(); + for (std::size_t mat=0; matGetMaterialScanner()->GetMaterial(mat); + volMat = pParam->GetMaterialScanner()->GetMaterial((G4int)mat); if(!volMat && fInMassGeometry) { std::ostringstream message; @@ -242,10 +242,10 @@ void G4Region::ScanVolumeTree(G4LogicalVolume* lv, G4bool region) } else { - size_t repNo = daughterPVol->GetMultiplicity(); - for (size_t rep=0; repGetMultiplicity(); + for (std::size_t rep=0; repComputeMaterial(rep, daughterPVol); + volMat = pParam->ComputeMaterial((G4int)rep, daughterPVol); if((volMat == nullptr) && fInMassGeometry) { std::ostringstream message; @@ -270,7 +270,7 @@ void G4Region::ScanVolumeTree(G4LogicalVolume* lv, G4bool region) } else { - for (size_t i=0; iGetDaughter(i)->GetLogicalVolume(); if (!daughterLVol->IsRootRegion()) @@ -416,7 +416,7 @@ G4bool G4Region::BelongsTo(G4VPhysicalVolume* thePhys) const G4LogicalVolume* currLog = thePhys->GetLogicalVolume(); if (currLog->GetRegion()==this) {return true;} - G4int nDaughters = currLog->GetNoDaughters(); + std::size_t nDaughters = currLog->GetNoDaughters(); while (nDaughters--) // Loop checking, 06.08.2015, G.Cosmo { if (BelongsTo(currLog->GetDaughter(nDaughters))) {return true;} @@ -475,12 +475,12 @@ G4Region* G4Region::GetParentRegion(G4bool& unique) const // for(auto lvItr=lvStore->cbegin(); lvItr!=lvStore->cend(); ++lvItr) { - G4int nD = (*lvItr)->GetNoDaughters(); + std::size_t nD = (*lvItr)->GetNoDaughters(); G4Region* aR = (*lvItr)->GetRegion(); // Loop over all daughters of each logical volume // - for(auto iD=0; iDGetDaughter(iD)->GetLogicalVolume()->GetRegion()==this) { diff --git a/source/geometry/management/src/G4RegionStore.cc b/source/geometry/management/src/G4RegionStore.cc index 9debd60e7c..8c2ae75d57 100644 --- a/source/geometry/management/src/G4RegionStore.cc +++ b/source/geometry/management/src/G4RegionStore.cc @@ -91,26 +91,14 @@ void G4RegionStore::Clean() // locked = true; - std::size_t i=0; G4RegionStore* store = GetInstance(); -#ifdef G4GEOMETRY_VOXELDEBUG - G4cout << "Deleting Regions ... "; -#endif - for(auto pos=store->cbegin(); pos!=store->cend(); ++pos) { if (fgNotifier != nullptr) { fgNotifier->NotifyDeRegistration(); } - delete *pos; ++i; + delete *pos; } -#ifdef G4GEOMETRY_VOXELDEBUG - if (store->size() < i-1) - { G4cout << "No regions deleted. Already deleted by user ?" << G4endl; } - else - { G4cout << i-1 << " regions deleted !" << G4endl; } -#endif - store->bmap.clear(); store->mvalid = false; locked = false; store->clear(); @@ -338,8 +326,8 @@ void G4RegionStore::SetWorldVolume() // G4PhysicalVolumeStore* fPhysicalVolumeStore = G4PhysicalVolumeStore::GetInstance(); - size_t nPhys = fPhysicalVolumeStore->size(); - for(size_t iPhys=0; iPhyssize(); + for(std::size_t iPhys=0; iPhysGetMotherLogical() != nullptr) { continue; } // not a world volume diff --git a/source/geometry/management/src/G4SmartVoxelHeader.cc b/source/geometry/management/src/G4SmartVoxelHeader.cc index 7b166c56b1..1cb236aa4a 100644 --- a/source/geometry/management/src/G4SmartVoxelHeader.cc +++ b/source/geometry/management/src/G4SmartVoxelHeader.cc @@ -62,7 +62,7 @@ G4SmartVoxelHeader::G4SmartVoxelHeader(G4LogicalVolume* pVolume, fmaxEquivalent(pSlice), fparamAxis(kUndefined) { - size_t nDaughters = pVolume->GetNoDaughters(); + std::size_t nDaughters = pVolume->GetNoDaughters(); // Determine whether daughter is replicated // @@ -121,7 +121,7 @@ G4SmartVoxelHeader::~G4SmartVoxelHeader() // Manually destroy underlying nodes/headers // Delete collected headers and nodes once only // - size_t node, proxy, maxNode=fslices.size(); + std::size_t node, proxy, maxNode=fslices.size(); G4SmartVoxelProxy* lastProxy = nullptr; G4SmartVoxelNode *dyingNode, *lastNode=nullptr; G4SmartVoxelHeader *dyingHeader, *lastHeader=nullptr; @@ -179,7 +179,7 @@ G4bool G4SmartVoxelHeader::operator == (const G4SmartVoxelHeader& pHead) const && (GetMinExtent() == pHead.GetMinExtent()) && (GetMaxExtent() == pHead.GetMaxExtent()) ) { - size_t node, maxNode; + std::size_t node, maxNode; G4SmartVoxelProxy *leftProxy, *rightProxy; G4SmartVoxelHeader *leftHeader, *rightHeader; G4SmartVoxelNode *leftNode, *rightNode; @@ -239,13 +239,13 @@ G4bool G4SmartVoxelHeader::operator == (const G4SmartVoxelHeader& pHead) const void G4SmartVoxelHeader::BuildVoxels(G4LogicalVolume* pVolume) { G4VoxelLimits limits; // Create `unlimited' limits object - size_t nDaughters = pVolume->GetNoDaughters(); + std::size_t nDaughters = pVolume->GetNoDaughters(); G4VolumeNosVector targetList; targetList.reserve(nDaughters); - for (size_t i=0; iGetNode(); - sampleNode->SetMinEquivalentSliceNo(minNo); - sampleNode->SetMaxEquivalentSliceNo(maxNo); + sampleNode->SetMinEquivalentSliceNo((G4int)minNo); + sampleNode->SetMaxEquivalentSliceNo((G4int)maxNo); } // Advance outer loop to end of equivalent group // @@ -620,8 +620,8 @@ void G4SmartVoxelHeader::BuildEquivalentSliceNos() // void G4SmartVoxelHeader::CollectEquivalentNodes() { - size_t sliceNo, maxNo, equivNo; - size_t maxNode=fslices.size(); + std::size_t sliceNo, maxNo, equivNo; + std::size_t maxNode=fslices.size(); G4SmartVoxelNode* equivNode; G4SmartVoxelProxy* equivProxy; @@ -667,8 +667,8 @@ void G4SmartVoxelHeader::CollectEquivalentNodes() // void G4SmartVoxelHeader::CollectEquivalentHeaders() { - size_t sliceNo, maxNo, equivNo; - size_t maxNode = fslices.size(); + std::size_t sliceNo, maxNo, equivNo; + std::size_t maxNode = fslices.size(); G4SmartVoxelHeader *equivHeader, *sampleHeader; G4SmartVoxelProxy *equivProxy; @@ -750,10 +750,10 @@ G4ProxyVector* G4SmartVoxelHeader::BuildNodes(G4LogicalVolume* pVolume, G4VSolid *targetSolid; G4AffineTransform targetTransform; G4bool replicated; - size_t nCandidates = pCandidates->size(); - size_t nVol, nNode, targetVolNo; + std::size_t nCandidates = pCandidates->size(); + std::size_t nVol, nNode, targetVolNo; G4VoxelLimits noLimits; - + #ifdef G4GEOMETRY_VOXELDEBUG G4cout << "**** G4SmartVoxelHeader::BuildNodes" << G4endl << " Limits = " << pLimits << G4endl @@ -825,15 +825,15 @@ G4ProxyVector* G4SmartVoxelHeader::BuildNodes(G4LogicalVolume* pVolume, { // Find solid // - targetSolid = pParam->ComputeSolid(targetVolNo,pDaughter); + targetSolid = pParam->ComputeSolid((G4int)targetVolNo,pDaughter); // Setup solid // - targetSolid->ComputeDimensions(pParam,targetVolNo,pDaughter); + targetSolid->ComputeDimensions(pParam,(G4int)targetVolNo,pDaughter); // Setup transform // - pParam->ComputeTransformation(targetVolNo,pDaughter); + pParam->ComputeTransformation((G4int)targetVolNo,pDaughter); targetTransform = G4AffineTransform(pDaughter->GetRotation(), pDaughter->GetTranslation()); } @@ -966,7 +966,7 @@ G4ProxyVector* G4SmartVoxelHeader::BuildNodes(G4LogicalVolume* pVolume, for (nNode=0; G4long(nNode)size(); - size_t noContained, maxContained=0, sumContained=0, sumNonEmptyNodes=0; + std::size_t nNodes = pSlice->size(); + std::size_t noContained, maxContained=0, sumContained=0, sumNonEmptyNodes=0; G4SmartVoxelNode *node; - for (size_t i=0; iIsNode()) { @@ -1130,8 +1130,8 @@ G4double G4SmartVoxelHeader::CalculateQuality(G4ProxyVector *pSlice) void G4SmartVoxelHeader::RefineNodes(G4LogicalVolume* pVolume, G4VoxelLimits pLimits) { - size_t refinedDepth=0, minVolumes; - size_t maxNode = fslices.size(); + std::size_t refinedDepth=0, minVolumes; + std::size_t maxNode = fslices.size(); if (pLimits.IsXLimited()) { @@ -1163,7 +1163,7 @@ void G4SmartVoxelHeader::RefineNodes(G4LogicalVolume* pVolume, if (refinedDepth<2) { - size_t targetNo, noContainedDaughters, minNo, maxNo, replaceNo, i; + std::size_t targetNo, noContainedDaughters, minNo, maxNo, replaceNo, i; G4double sliceWidth = (fmaxExtent-fminExtent)/maxNode; G4VoxelLimits newLimits; G4SmartVoxelNode* targetNode; @@ -1194,7 +1194,7 @@ void G4SmartVoxelHeader::RefineNodes(G4LogicalVolume* pVolume, targetList->reserve(noContainedDaughters); for (i=0; ipush_back(targetNode->GetVolume(i)); + targetList->push_back(targetNode->GetVolume((G4int)i)); } minNo = targetNode->GetMinEquivalentSliceNo(); maxNo = targetNode->GetMaxEquivalentSliceNo(); @@ -1232,15 +1232,15 @@ void G4SmartVoxelHeader::RefineNodes(G4LogicalVolume* pVolume, newLimits.AddLimit(faxis,fminExtent+sliceWidth*minNo, fminExtent+sliceWidth*(maxNo+1)); replaceHeader = new G4SmartVoxelHeader(pVolume,newLimits, - targetList,replaceNo); + targetList,(G4int)replaceNo); if (replaceHeader == nullptr) { G4Exception("G4SmartVoxelHeader::RefineNodes()", "GeomMgt0003", FatalException, "Refined VoxelHeader allocation error."); return; } - replaceHeader->SetMinEquivalentSliceNo(minNo); - replaceHeader->SetMaxEquivalentSliceNo(maxNo); + replaceHeader->SetMinEquivalentSliceNo((G4int)minNo); + replaceHeader->SetMaxEquivalentSliceNo((G4int)maxNo); replaceHeaderProxy = new G4SmartVoxelProxy(replaceHeader); if (replaceHeaderProxy == nullptr) { @@ -1271,13 +1271,13 @@ void G4SmartVoxelHeader::RefineNodes(G4LogicalVolume* pVolume, // G4bool G4SmartVoxelHeader::AllSlicesEqual() const { - size_t noSlices = fslices.size(); + std::size_t noSlices = fslices.size(); G4SmartVoxelProxy* refProxy; if (noSlices>1) { refProxy=fslices[0]; - for (size_t i=1; iGetNode()->GetNoContained(); ++k) + for (std::size_t k=0; kGetNode()->GetNoContained(); ++k) { - os << " " << h.fslices[i]->GetNode()->GetVolume(k); + os << " " << h.fslices[i]->GetNode()->GetVolume((G4int)k); } os << " }" << G4endl; collectNode = h.fslices[i]; diff --git a/source/geometry/management/src/G4SmartVoxelNode.cc b/source/geometry/management/src/G4SmartVoxelNode.cc index 2b7a8837ed..f1c5af10d7 100644 --- a/source/geometry/management/src/G4SmartVoxelNode.cc +++ b/source/geometry/management/src/G4SmartVoxelNode.cc @@ -52,7 +52,7 @@ G4bool G4SmartVoxelNode::operator == (const G4SmartVoxelNode& v) const { for (std::size_t node=0; nodeGetNoSlices(); + std::size_t numSlices = head->GetNoSlices(); pointers += numSlices; const G4SmartVoxelProxy* lastProxy = nullptr; - for(auto i=0; iGetSlice(i); if (proxy == lastProxy) continue; diff --git a/source/geometry/management/src/G4SolidStore.cc b/source/geometry/management/src/G4SolidStore.cc index 31e5c878a9..88ce7a9250 100644 --- a/source/geometry/management/src/G4SolidStore.cc +++ b/source/geometry/management/src/G4SolidStore.cc @@ -87,26 +87,14 @@ void G4SolidStore::Clean() // locked = true; - std::size_t i = 0; G4SolidStore* store = GetInstance(); -#ifdef G4GEOMETRY_VOXELDEBUG - G4cout << "Deleting Solids ... "; -#endif - for(auto pos=store->cbegin(); pos!=store->cend(); ++pos) { if (fgNotifier != nullptr) { fgNotifier->NotifyDeRegistration(); } - delete *pos; ++i; + delete *pos; } -#ifdef G4GEOMETRY_VOXELDEBUG - if (store->size() < i-1) - { G4cout << "No solids deleted. Already deleted by user ?" << G4endl; } - else - { G4cout << i-1 << " solids deleted !" << G4endl; } -#endif - store->bmap.clear(); store->mvalid = false; locked = false; store->clear(); diff --git a/source/geometry/management/src/G4VSolid.cc b/source/geometry/management/src/G4VSolid.cc index 8aef9d3388..493bf37f25 100644 --- a/source/geometry/management/src/G4VSolid.cc +++ b/source/geometry/management/src/G4VSolid.cc @@ -496,7 +496,7 @@ G4VSolid::CalculateClippedPolygonExtent(G4ThreeVectorList& pPolygon, G4double component; ClipPolygon(pPolygon,pVoxelLimit,pAxis); - noLeft = pPolygon.size(); + noLeft = (G4int)pPolygon.size(); if ( noLeft ) { @@ -614,7 +614,7 @@ G4VSolid::ClipPolygonToSimpleLimits( G4ThreeVectorList& pPolygon, const G4VoxelLimits& pVoxelLimit ) const { G4int i; - G4int noVertices=pPolygon.size(); + G4int noVertices = (G4int)pPolygon.size(); G4ThreeVector vEnd,vStart; for (i = 0 ; i < noVertices ; ++i ) diff --git a/source/geometry/navigation/History b/source/geometry/navigation/History index fc3974c335..bbb09194d1 100644 --- a/source/geometry/navigation/History +++ b/source/geometry/navigation/History @@ -5,28 +5,44 @@ which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-23 John Apostolakis (geomnav-V11-00-09) +- G4MultiLevelLocator: refresh candidate intersection point when needed + +## 2022-11-10 John Apostolakis (geomnav-V11-00-08) +- Improved diagnostic message in G4MultiLevelLocator - they missed to print + the stored information on trial integration steps in one error case. +- G4MultiLevelLocator: small print formatting change. + +## 2022-11-10 Gabriele Cosmo (geomnav-V11-00-07) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-05 Gabriele Cosmo (geomnav-V11-00-06) +- Fixed compilation warnings on Intel-icx compiler for variables set + but not used. ## 2022-05-10 Guilherme Amadio (geomnav-V11-00-05) -- G4Navigator: minor improvements to ComputeSafety/ComputeStep/LocateGlobalPointAndSetup +- G4Navigator: minor improvements to ComputeSafety(), ComputeStep() + and LocateGlobalPointAndSetup(). ## 2022-03-11 Pedro Arce (geomnav-V11-00-04) -- `G4RegularNavigation`: reset the zero step counter when a non-zero step was performed, to avoid aborted events. Correct tabulation. -Fixes as proposed in [GitHub PR #38](https://github.com/Geant4/geant4/pull/38) +- G4RegularNavigation: reset the zero step counter when a non-zero step was + performed, to avoid aborted events. Corrected tabulation. + Fixes as proposed in [GitHub PR #38](https://github.com/Geant4/geant4/pull/38) ## 2022-02-14 Sergio Losilla (geomnav-V11-00-03) - /geometry/run/test also checks for overlaps in parallel worlds if /geometry/run/check_parallel is set to true. ## 2022-01-08 Gabriele Cosmo (geomnav-V11-00-02) -- `G4VIntersectionLocator`: Fixed compilation warning on Intel-icx compiler +- G4VIntersectionLocator: Fixed compilation warning on Intel-icx compiler for unused data. ## 2022-01-05 Jonas Hahnfeld (geomnav-V11-00-01) -- `G4TransportationManager`: Add constant `kMassNavigatorId` -- `G4SafetyHelper`: Use it +- G4TransportationManager: Add constant `kMassNavigatorId`. +- G4SafetyHelper: Use it. ## 2021-12-10 Ben Morgan (geomnav-V11-00-00) -- Change to new Markdown History format +- Change to new Markdown History format. --- diff --git a/source/geometry/navigation/include/G4ParameterisedNavigation.hh b/source/geometry/navigation/include/G4ParameterisedNavigation.hh index 967c115c65..913729bfa2 100644 --- a/source/geometry/navigation/include/G4ParameterisedNavigation.hh +++ b/source/geometry/navigation/include/G4ParameterisedNavigation.hh @@ -114,7 +114,7 @@ class G4ParameterisedNavigation : public G4VoxelNavigation EAxis fVoxelAxis = kUndefined; G4int fVoxelNoSlices = 0; G4double fVoxelSliceWidth = 0.0; - size_t fVoxelNodeNo = 0; + std::size_t fVoxelNodeNo = 0; G4SmartVoxelHeader* fVoxelHeader = nullptr; }; diff --git a/source/geometry/navigation/include/G4PartialPhantomParameterisation.hh b/source/geometry/navigation/include/G4PartialPhantomParameterisation.hh index bab498be46..aa51f18db6 100644 --- a/source/geometry/navigation/include/G4PartialPhantomParameterisation.hh +++ b/source/geometry/navigation/include/G4PartialPhantomParameterisation.hh @@ -69,11 +69,11 @@ class G4PartialPhantomParameterisation : public G4PhantomParameterisation G4ThreeVector GetTranslation(const G4int copyNo ) const; - size_t GetMaterialIndex( size_t nx, size_t ny, size_t nz) const; - size_t GetMaterialIndex( size_t copyNo) const; + std::size_t GetMaterialIndex( std::size_t nx, std::size_t ny, std::size_t nz) const; + std::size_t GetMaterialIndex( std::size_t copyNo) const; - G4Material* GetMaterial( size_t nx, size_t ny, size_t nz) const; - G4Material* GetMaterial( size_t copyNo ) const; + G4Material* GetMaterial( std::size_t nx, std::size_t ny, std::size_t nz) const; + G4Material* GetMaterial( std::size_t copyNo ) const; void SetFilledIDs( std::multimap fid ) { @@ -89,11 +89,11 @@ class G4PartialPhantomParameterisation : public G4PhantomParameterisation private: - void ComputeVoxelIndices(const G4int copyNo, size_t& nx, - size_t& ny, size_t& nz ) const; + void ComputeVoxelIndices(const G4int copyNo, std::size_t& nx, + std::size_t& ny, std::size_t& nz ) const; // Convert the copyNo to voxel numbers in x, y and z. - void CheckCopyNo( const G4int copyNo ) const; + void CheckCopyNo( const G4long copyNo ) const; // Check that the copy number is within limits. private: diff --git a/source/geometry/navigation/include/G4PhantomParameterisation.hh b/source/geometry/navigation/include/G4PhantomParameterisation.hh index bf7f8dfc9f..6acac9f904 100644 --- a/source/geometry/navigation/include/G4PhantomParameterisation.hh +++ b/source/geometry/navigation/include/G4PhantomParameterisation.hh @@ -67,7 +67,7 @@ class G4Polyhedra; class G4PhantomParameterisation : public G4VPVParameterisation { - public: // with description + public: G4PhantomParameterisation(); ~G4PhantomParameterisation(); @@ -122,21 +122,21 @@ class G4PhantomParameterisation : public G4VPVParameterisation inline void SetMaterials(std::vector& mates ); - inline void SetMaterialIndices( size_t* matInd ); + inline void SetMaterialIndices( std::size_t* matInd ); void SetVoxelDimensions( G4double halfx, G4double halfy, G4double halfz ); - void SetNoVoxels( size_t nx, size_t ny, size_t nz ); + void SetNoVoxels( std::size_t nx, std::size_t ny, std::size_t nz ); inline G4double GetVoxelHalfX() const; inline G4double GetVoxelHalfY() const; inline G4double GetVoxelHalfZ() const; - inline size_t GetNoVoxelsX() const; - inline size_t GetNoVoxelsY() const; - inline size_t GetNoVoxelsZ() const; - inline size_t GetNoVoxels() const; + inline std::size_t GetNoVoxelsX() const; + inline std::size_t GetNoVoxelsY() const; + inline std::size_t GetNoVoxelsZ() const; + inline std::size_t GetNoVoxels() const; inline std::vector GetMaterials() const; - inline size_t* GetMaterialIndices() const; + inline std::size_t* GetMaterialIndices() const; inline G4VSolid* GetContainerSolid() const; G4ThreeVector GetTranslation(const G4int copyNo ) const; @@ -144,11 +144,11 @@ class G4PhantomParameterisation : public G4VPVParameterisation G4bool SkipEqualMaterials() const; void SetSkipEqualMaterials( G4bool skip ); - size_t GetMaterialIndex( size_t nx, size_t ny, size_t nz) const; - size_t GetMaterialIndex( size_t copyNo) const; + std::size_t GetMaterialIndex( std::size_t nx, std::size_t ny, std::size_t nz) const; + std::size_t GetMaterialIndex( std::size_t copyNo) const; - G4Material* GetMaterial( size_t nx, size_t ny, size_t nz) const; - G4Material* GetMaterial( size_t copyNo ) const; + G4Material* GetMaterial( std::size_t nx, std::size_t ny, std::size_t nz) const; + G4Material* GetMaterial( std::size_t copyNo ) const; void CheckVoxelsFillContainer( G4double contX, G4double contY, G4double contZ ) const; @@ -156,27 +156,27 @@ class G4PhantomParameterisation : public G4VPVParameterisation private: - void ComputeVoxelIndices(const G4int copyNo, size_t& nx, - size_t& ny, size_t& nz ) const; + void ComputeVoxelIndices(const G4int copyNo, std::size_t& nx, + std::size_t& ny, std::size_t& nz ) const; // Convert the copyNo to voxel numbers in x, y and z. - void CheckCopyNo( const G4int copyNo ) const; + void CheckCopyNo( const G4long copyNo ) const; // Check that the copy number is within limits. protected: G4double fVoxelHalfX = 0.0, fVoxelHalfY = 0.0, fVoxelHalfZ = 0.0; // Half dimension of voxels (assume they are boxes). - size_t fNoVoxelsX = 0, fNoVoxelsY = 0, fNoVoxelsZ = 0; + std::size_t fNoVoxelsX = 0, fNoVoxelsY = 0, fNoVoxelsZ = 0; // Number of voxel in x, y and z dimensions. - size_t fNoVoxelsXY = 0; + std::size_t fNoVoxelsXY = 0; // Number of voxels in x times number of voxels in y (for speed-up). - size_t fNoVoxels = 0; + std::size_t fNoVoxels = 0; // Total number of voxels (for speed-up). std::vector fMaterials; // List of materials of the voxels. - size_t* fMaterialIndices = nullptr; + std::size_t* fMaterialIndices = nullptr; // Index in fMaterials that correspond to each voxel. G4VSolid* fContainerSolid = nullptr; diff --git a/source/geometry/navigation/include/G4PhantomParameterisation.icc b/source/geometry/navigation/include/G4PhantomParameterisation.icc index f1dc32ab02..05a697df5d 100644 --- a/source/geometry/navigation/include/G4PhantomParameterisation.icc +++ b/source/geometry/navigation/include/G4PhantomParameterisation.icc @@ -38,7 +38,9 @@ SetVoxelDimensions( G4double halfx, G4double halfy, G4double halfz ) //-------------------------------------------------------------------- inline -void G4PhantomParameterisation::SetNoVoxels( size_t nx, size_t ny, size_t nz ) +void G4PhantomParameterisation::SetNoVoxels( std::size_t nx, + std::size_t ny, + std::size_t nz ) { fNoVoxelsX = nx; fNoVoxelsY = ny; @@ -56,7 +58,7 @@ void G4PhantomParameterisation::SetMaterials( std::vector& mates ) //-------------------------------------------------------------------- inline -void G4PhantomParameterisation::SetMaterialIndices( size_t* matInd ) +void G4PhantomParameterisation::SetMaterialIndices( std::size_t* matInd ) { fMaterialIndices = matInd; } @@ -84,28 +86,28 @@ G4double G4PhantomParameterisation::GetVoxelHalfZ() const //-------------------------------------------------------------------- inline -size_t G4PhantomParameterisation::GetNoVoxelsX() const +std::size_t G4PhantomParameterisation::GetNoVoxelsX() const { return fNoVoxelsX; } //-------------------------------------------------------------------- inline -size_t G4PhantomParameterisation::GetNoVoxelsY() const +std::size_t G4PhantomParameterisation::GetNoVoxelsY() const { return fNoVoxelsY; } //-------------------------------------------------------------------- inline -size_t G4PhantomParameterisation::GetNoVoxelsZ() const +std::size_t G4PhantomParameterisation::GetNoVoxelsZ() const { return fNoVoxelsZ; } //-------------------------------------------------------------------- inline -size_t G4PhantomParameterisation::GetNoVoxels() const +std::size_t G4PhantomParameterisation::GetNoVoxels() const { return fNoVoxels; } @@ -119,7 +121,7 @@ std::vector G4PhantomParameterisation::GetMaterials() const //-------------------------------------------------------------------- inline -size_t* G4PhantomParameterisation::GetMaterialIndices() const +std::size_t* G4PhantomParameterisation::GetMaterialIndices() const { return fMaterialIndices; } diff --git a/source/geometry/navigation/include/G4TransportationManager.hh b/source/geometry/navigation/include/G4TransportationManager.hh index 2d00aefbc0..27b8a272b0 100644 --- a/source/geometry/navigation/include/G4TransportationManager.hh +++ b/source/geometry/navigation/include/G4TransportationManager.hh @@ -73,11 +73,11 @@ class G4TransportationManager // Set the world volume for tracking // This method is to be invoked by G4RunManagerKernel. - inline size_t GetNoActiveNavigators() const; + inline std::size_t GetNoActiveNavigators() const; inline std::vector::iterator GetActiveNavigatorsIterator(); // Return an iterator to the list of active navigators - inline size_t GetNoWorlds() const; + inline std::size_t GetNoWorlds() const; inline std::vector::iterator GetWorldsIterator(); // Return an iterator to the list of registered worlds diff --git a/source/geometry/navigation/src/G4AuxiliaryNavServices.cc b/source/geometry/navigation/src/G4AuxiliaryNavServices.cc index 38af3e00fb..d89deb35b4 100644 --- a/source/geometry/navigation/src/G4AuxiliaryNavServices.cc +++ b/source/geometry/navigation/src/G4AuxiliaryNavServices.cc @@ -38,7 +38,7 @@ void G4AuxiliaryNavServices::ReportTolerances() { - G4int oldPrec = G4cout.precision(16); + G4long oldPrec = G4cout.precision(16); G4cout << " Cartesian Tolerance (kCarTolerance): " << G4GeometryTolerance::GetInstance()->GetSurfaceTolerance() diff --git a/source/geometry/navigation/src/G4BrentLocator.cc b/source/geometry/navigation/src/G4BrentLocator.cc index 8b045b8e69..fc6436fd44 100644 --- a/source/geometry/navigation/src/G4BrentLocator.cc +++ b/source/geometry/navigation/src/G4BrentLocator.cc @@ -121,7 +121,7 @@ G4bool G4BrentLocator::EstimateIntersectionPoint( G4bool restoredFullEndpoint = false; - G4int oldprc; // cout, cerr precision + G4long oldprc; // cout, cerr precision G4int substep_no = 0; // Limits for substep number @@ -753,7 +753,7 @@ G4bool G4BrentLocator::EstimateIntersectionPoint( } else if( substep_no >= warn_substeps ) { - oldprc= G4cout.precision( 10 ); + oldprc = G4cout.precision( 10 ); std::ostringstream message; message << "Many substeps while trying to locate intersection." << G4endl diff --git a/source/geometry/navigation/src/G4DrawVoxels.cc b/source/geometry/navigation/src/G4DrawVoxels.cc index f5226c60f0..52e2c07cfb 100644 --- a/source/geometry/navigation/src/G4DrawVoxels.cc +++ b/source/geometry/navigation/src/G4DrawVoxels.cc @@ -153,7 +153,7 @@ G4DrawVoxels::ComputeVoxelPolyhedra(const G4LogicalVolume* lv, voxel_plane.SetVisAttributes(voxelsVisAttributes); G4SmartVoxelProxy* slice = header->GetSlice(0); - G4int slice_no = 0, no_slices = header->GetNoSlices(); + std::size_t slice_no = 0, no_slices = header->GetNoSlices(); G4double beginning = header->GetMinExtent(), step = (header->GetMaxExtent()-beginning)/no_slices; diff --git a/source/geometry/navigation/src/G4GeomTestVolume.cc b/source/geometry/navigation/src/G4GeomTestVolume.cc index fb6904bd65..0a9d8bf4bb 100644 --- a/source/geometry/navigation/src/G4GeomTestVolume.cc +++ b/source/geometry/navigation/src/G4GeomTestVolume.cc @@ -133,8 +133,8 @@ void G4GeomTestVolume::TestOverlapInTree() const // check overlaps for daughters G4LogicalVolume* logical = current->GetLogicalVolume(); - G4int ndaughters = logical->GetNoDaughters(); - for (G4int i=0; iGetNoDaughters(); + for (std::size_t i=0; iGetDaughter(i); daughter->CheckOverlaps(resolution, tolerance, verbosity, maxErr); @@ -142,7 +142,7 @@ void G4GeomTestVolume::TestOverlapInTree() const // append the queue of volumes G4LogicalVolume* previousLogical = nullptr; - for (G4int i=0; iGetDaughter(i); G4LogicalVolume* daughterLogical = daughter->GetLogicalVolume(); @@ -194,7 +194,7 @@ void G4GeomTestVolume::TestRecursiveOverlap( G4int slevel, G4int depth ) std::set tested; const G4LogicalVolume *logical = target->GetLogicalVolume(); - G4int nDaughter = logical->GetNoDaughters(); + G4int nDaughter = (G4int)logical->GetNoDaughters(); for( auto iDaughter=0; iDaughterGetDaughter(iDaughter); diff --git a/source/geometry/navigation/src/G4LocatorChangeLogger.cc b/source/geometry/navigation/src/G4LocatorChangeLogger.cc index 5fa0adca62..ed8a0bb6be 100644 --- a/source/geometry/navigation/src/G4LocatorChangeLogger.cc +++ b/source/geometry/navigation/src/G4LocatorChangeLogger.cc @@ -49,7 +49,7 @@ std::ostream& operator<< ( std::ostream& os, // std::ostream& G4LocatorChangeLogger::StreamInfo(std::ostream& os) const { - G4int oldprc = os.precision(16); + G4long oldprc = os.precision(16); G4LocatorChangeRecord::ReportVector( os, this->fName, *this ); os.precision(oldprc); return os; @@ -65,7 +65,7 @@ std::ostream& G4LocatorChangeLogger::ReportEndChanges( std::ostream& os, using std::setw; G4int prec= 16; const G4bool confirm = true; - G4int oldprc = os.precision(prec); + G4long oldprc = os.precision(prec); auto itrecA= startA.cbegin(); auto itrecB= endB.cbegin(); @@ -91,8 +91,6 @@ std::ostream& G4LocatorChangeLogger::ReportEndChanges( std::ostream& os, G4bool isLastA= false; G4bool isLastB= false; - G4int jA=0, jB=0; - G4int maxEvent = std::max( startA[ startA.size() - 1 ].GetCount() , endB[ endB.size() - 1 ].GetCount() ); G4int prevA = -1; @@ -173,14 +171,12 @@ std::ostream& G4LocatorChangeLogger::ReportEndChanges( std::ostream& os, if( advanceA ) { ++itrecA; - if( !isLastA ) { ++jA; } eventA = isLastA ? maxEvent : (*itrecA).GetCount(); } if( advanceB ) { ++itrecB; - if( !isLastB ) { ++jB; } eventB = isLastB ? maxEvent : (*itrecB).GetCount(); } diff --git a/source/geometry/navigation/src/G4LocatorChangeRecord.cc b/source/geometry/navigation/src/G4LocatorChangeRecord.cc index 1baef7bcc0..3cd9994057 100644 --- a/source/geometry/navigation/src/G4LocatorChangeRecord.cc +++ b/source/geometry/navigation/src/G4LocatorChangeRecord.cc @@ -57,7 +57,7 @@ std::ostream& G4LocatorChangeRecord::ReportVector ( std::ostream& os, return os; } - G4int oldprc = os.precision(prec); + G4long oldprc = os.precision(prec); // std::vector::const_iterator auto itRec @@ -104,17 +104,18 @@ G4LocatorChangeRecord::ReportEndChanges ( using std::setw; G4int prec= 16; const G4bool confirm = true; - G4int oldprc = os.precision(prec); + G4long oldprc = os.precision(prec); std::vector::const_iterator itrecA, itrecB; itrecA= startA.begin(); itrecB= endB.begin(); - - os << "=====================================================================" - << G4endl; - os << " Size of individual change record: startA : " << startA.size() - << " endB : " << endB.size() << G4endl; - os << "=====================================================================" + os << G4endl; + os << "========================================================================================="; + os << G4endl << " ** Change records: " << G4endl; + os << " * endPoints A (start) and B (end): combined changes of AB intervals" << G4endl; + os << " * Sizes of change records: start(A) : " << startA.size() + << " end(B) : " << endB.size() << G4endl; + os << "=========================================================================================" << G4endl; os << setw( 7 ) << "Change#" << " " @@ -132,8 +133,6 @@ G4LocatorChangeRecord::ReportEndChanges ( G4bool isLastA= false; G4bool isLastB= false; - G4int jA=0, jB=0; - G4int maxEvent = std::max( startA[ startA.size() - 1 ].GetCount() , endB[ endB.size() - 1 ].GetCount() ); G4int prevA = -1; @@ -211,14 +210,14 @@ G4LocatorChangeRecord::ReportEndChanges ( if( advanceA ) { ++itrecA; - if( !isLastA ) { ++jA; eventA = (*itrecA).GetCount(); } + if( !isLastA ) { eventA = (*itrecA).GetCount(); } else { eventA = maxEvent; } } if( advanceB ) { ++itrecB; - if( !isLastB ) { ++jB; eventB = (*itrecB).GetCount(); } + if( !isLastB ) { eventB = (*itrecB).GetCount(); } else { eventB = maxEvent; } } @@ -258,7 +257,7 @@ std::ostream& operator<< ( std::ostream& os, const G4LocatorChangeRecord& e ) // std::ostream& G4LocatorChangeRecord::StreamInfo(std::ostream& os) const { - G4int oldprc = os.precision(16); + G4long oldprc = os.precision(16); os << " count = " << fEventCount << " iter= " << fIteration << " Location code = " << fCodeLocation diff --git a/source/geometry/navigation/src/G4MultiLevelLocator.cc b/source/geometry/navigation/src/G4MultiLevelLocator.cc index f67ce3fea6..bce1107cbb 100644 --- a/source/geometry/navigation/src/G4MultiLevelLocator.cc +++ b/source/geometry/navigation/src/G4MultiLevelLocator.cc @@ -253,21 +253,44 @@ G4bool G4MultiLevelLocator::EstimateIntersectionPoint( do // Loop checking, 07.10.2016, J.Apostolakis { // REPEAT param - -#ifdef G4DEBUG_FIELD - if( CurrentA_PointVelocity.GetCurveLength() >= - CurrentB_PointVelocity.GetCurveLength() ) + G4ThreeVector Point_A = CurrentA_PointVelocity.GetPosition(); + G4ThreeVector Point_B = CurrentB_PointVelocity.GetPosition(); + +#ifdef G4DEBUG_FIELD + const G4double lenA = CurrentA_PointVelocity.GetCurveLength() ; + const G4double lenB = CurrentB_PointVelocity.GetCurveLength() ; + G4double curv_lenAB = lenB - lenA; + G4double distAB = (Point_B - Point_A).mag(); + if( curv_lenAB < distAB * ( 1. - 10.*fiEpsilonStep ) ) { G4cerr << "ERROR> (Start) Point A coincides with or has gone past (end) point B" << "MLL: iters = " << substep_no << G4endl; - // G4LocatorChangeRecord::ReportVector(G4cerr, "endPointB", endChangeB ); - // G4cerr<<"EndPoints A(start) and B(end): combined changes " << G4endl; - G4LocatorChangeLogger::ReportEndChanges(G4cerr, endChangeA, endChangeB); + G4long op=G4cerr.precision(6); + G4cerr << " Difference = " << distAB - curv_lenAB + << " exceeds limit of relative dist (10*epsilon)= " << 10*fiEpsilonStep + << " i.e. limit = " << 10 * fiEpsilonStep * distAB << G4endl; + G4cerr.precision(9); + G4cerr << " Len A, B = " << lenA << " " << lenB << G4endl + << " Position A: " << Point_A << G4endl + << " Position B: " << Point_B << G4endl; + G4cerr.precision(op); + // G4LocatorChangeRecord::ReportVector(G4cerr, "endPointB", endChangeB ); + // G4cerr<<"EndPoints A(start) and B(end): combined changes " << G4endl; + if (fCheckMode) { + G4LocatorChangeLogger::ReportEndChanges(G4cerr, endChangeA, endChangeB); + } } #endif - G4ThreeVector Point_A = CurrentA_PointVelocity.GetPosition(); - G4ThreeVector Point_B = CurrentB_PointVelocity.GetPosition(); - + if( !validIntersectP ){ + G4ExceptionDescription errmsg; + errmsg << "Assertion FAILURE - invalid (stale) Interection point. Substep: " + << substep_no << " call: " << fNumCalls << G4endl; + if (fCheckMode) + G4LocatorChangeRecord::ReportEndChanges(errmsg, endChangeA, endChangeB ); + G4Exception("G4MultiLevelLocator::EstimateIntersectionPoint", "GeomNav0004", + JustWarning, errmsg); + } + // F = a point on true AB path close to point E // (the closest if possible) // @@ -282,26 +305,25 @@ G4bool G4MultiLevelLocator::EstimateIntersectionPoint( recApproxPoint.push_back(G4LocatorChangeRecord(G4LocatorChangeRecord::kInvalidCL, substep_no, eventCount, ApproxIntersecPointV ) ); G4double lenIntsc= ApproxIntersecPointV.GetCurveLength(); - G4double lenB = CurrentB_PointVelocity.GetCurveLength(); G4double checkVsEnd= lenB - lenIntsc; if( lenIntsc > lenB ) { - std::ostringstream errmsg; - errmsg.precision(17); - G4double ratio = checkVsEnd / lenB; - G4double ratioTol = std::fabs(ratio) / tolerance; - errmsg << "Intermediate F point is past end B point" << G4endl - << " l( intersection ) = " << lenIntsc << G4endl - << " l( endpoint ) = " << lenB << G4endl; - errmsg.precision(8); - errmsg << " l_end - l_inters = " << checkVsEnd << G4endl - << " / l_end = " << ratio << G4endl - << " ratio / tolerance = " << ratioTol << G4endl; - if( ratioTol < 1.0 ) - G4Exception(MethodName, "GeomNav0003", JustWarning, errmsg ); - else - G4Exception(MethodName, "GeomNav0003", FatalException, errmsg ); + std::ostringstream errmsg; + errmsg.precision(17); + G4double ratio = checkVsEnd / lenB; + G4double ratioTol = std::fabs(ratio) / tolerance; + errmsg << "Intermediate F point is past end B point" << G4endl + << " l( intersection ) = " << lenIntsc << G4endl + << " l( endpoint ) = " << lenB << G4endl; + errmsg.precision(8); + errmsg << " l_end - l_inters = " << checkVsEnd << G4endl + << " / l_end = " << ratio << G4endl + << " ratio / tolerance = " << ratioTol << G4endl; + if( ratioTol < 1.0 ) + G4Exception(MethodName, "GeomNav0003", JustWarning, errmsg ); + else + G4Exception(MethodName, "GeomNav0003", FatalException, errmsg ); } #endif @@ -476,6 +498,7 @@ G4bool G4MultiLevelLocator::EstimateIntersectionPoint( } else // not Intersects_FB { + validIntersectP = false; // Intersections are now stale if( fin_section_depth[depth] ) { // If B is the original endpoint, this means that whatever @@ -560,11 +583,6 @@ G4bool G4MultiLevelLocator::EstimateIntersectionPoint( // [ Implementation: a counter for # of recomputations // => avoids extra work] } - // else - // Move forward the other points - // - or better flag it, so that they are re-computed when next used - // [ Implementation: a counter for # of recomputations - // => avoids extra work] if (fCheckMode) { ++eventCount; @@ -578,23 +596,29 @@ G4bool G4MultiLevelLocator::EstimateIntersectionPoint( if( CurrentB_PointVelocity.GetCurveLength() < CurrentA_PointVelocity.GetCurveLength() ) errorEndPt = 2; } - + if( errorEndPt > 1 ) // errorEndPt = 1 is milder, just: len(B)=len(A) { - std::ostringstream errmsg; - ReportReversedPoints(errmsg, - CurveStartPointVelocity, CurveEndPointVelocity, - NewSafety, fiEpsilonStep, - CurrentA_PointVelocity, CurrentB_PointVelocity, - SubStart_PointVelocity, CurrentE_Point, - ApproxIntersecPointV, substep_no, substep_no_p, depth); - errmsg << G4endl << " * Location: " << MethodName - << "- After EndIf(Intersects_AF)" << G4endl; - errmsg << " * Bool flags: Recalculated = " << recalculatedB - << " Intersects_AF = " << Intersects_AF - << " Intersects_FB = " << Intersects_FB << G4endl; - errmsg << " * Number of calls to MLL:EIP= " << fNumCalls << G4endl; - G4Exception(MethodName, "GeomNav0003", FatalException, errmsg); + std::ostringstream errmsg; + + ReportReversedPoints(errmsg, + CurveStartPointVelocity, CurveEndPointVelocity, + NewSafety, fiEpsilonStep, + CurrentA_PointVelocity, CurrentB_PointVelocity, + SubStart_PointVelocity, CurrentE_Point, + ApproxIntersecPointV, substep_no, substep_no_p, depth); + + if (fCheckMode) { + G4LocatorChangeRecord::ReportEndChanges(errmsg, endChangeA, endChangeB ); + } + + errmsg << G4endl << " * Location: " << MethodName + << "- After EndIf(Intersects_AF)" << G4endl; + errmsg << " * Bool flags: Recalculated = " << recalculatedB + << " Intersects_AF = " << Intersects_AF + << " Intersects_FB = " << Intersects_FB << G4endl; + errmsg << " * Number of calls to MLL:EIP= " << fNumCalls << G4endl; + G4Exception(MethodName, "GeomNav0003", FatalException, errmsg); } if( restoredFullEndpoint ) { @@ -619,10 +643,12 @@ G4bool G4MultiLevelLocator::EstimateIntersectionPoint( G4cout << " Start: "; printStatus( CurveStartPointVelocity, CurveEndPointVelocity, -1.0, NewSafety, 0 ); - - G4cout << " ** Change records: " << G4endl; - G4cout << "endPoints A (start) and B (end): combined changes of AB intervals" << G4endl; - G4LocatorChangeRecord::ReportEndChanges(G4cout, endChangeA, endChangeB ); + if( fCheckMode ) { + G4LocatorChangeRecord::ReportEndChanges(G4cout, endChangeA, endChangeB ); + } else { + G4cout << " ** For more information enable 'check mode' in G4MultiLevelLocator " + << "-- (it saves and can output change records) " << G4endl; + } } G4cout << " Point A: "; printStatus( CurrentA_PointVelocity, CurrentA_PointVelocity, @@ -637,6 +663,7 @@ G4bool G4MultiLevelLocator::EstimateIntersectionPoint( } while ( ( ! found_approximate_intersection ) && ( ! there_is_no_intersection ) + && validIntersectP // New condition: must refresh intersection !! && ( substep_no_p <= param_substeps) ); // UNTIL found or // failed param substep @@ -761,16 +788,12 @@ G4bool G4MultiLevelLocator::EstimateIntersectionPoint( } } // if did_len - unsigned int levelPops = 0; - G4bool unfinished = Second_half; while ( unfinished && (depth>0) ) // Loop checking, 07.10.2016, JA { // Second part of curve (InterMed[depth],Intermed[depth-1])) // On the depth-1 level normally we are on the 'second_half' - ++levelPops; - // Find new trial intersection point needed at start of the loop // SubStart_PointVelocity = *ptrInterMedFT[depth]; @@ -878,7 +901,6 @@ G4bool G4MultiLevelLocator::EstimateIntersectionPoint( G4cout << "MLL - WARNING Potential FAILURE: Conditions not met!" << G4endl << " Depth = " << depth << G4endl - << " Levels popped = " << levelPops << " Num Substeps= " << substep_no << G4endl; G4cout << " Found intersection= " << found_approximate_intersection << G4endl; diff --git a/source/geometry/navigation/src/G4MultiNavigator.cc b/source/geometry/navigation/src/G4MultiNavigator.cc index 84e870d121..f9e8d2b2d2 100644 --- a/source/geometry/navigation/src/G4MultiNavigator.cc +++ b/source/geometry/navigation/src/G4MultiNavigator.cc @@ -250,8 +250,8 @@ void G4MultiNavigator::PrepareNavigators() // Message the transportation-manager to find active navigators - std::vector::iterator pNavigatorIter; - fNoActiveNavigators= pTransportManager-> GetNoActiveNavigators(); + std::vector::const_iterator pNavigatorIter; + fNoActiveNavigators = (G4int)pTransportManager-> GetNoActiveNavigators(); if( fNoActiveNavigators > fMaxNav ) { @@ -560,7 +560,7 @@ G4MultiNavigator::PrintLimited() { stepLen = fTrueMinStep; // did not limit (went as far as asked) } - G4int oldPrec = G4cout.precision(9); + G4long oldPrec = G4cout.precision(9); G4cout << std::setw(5) << num << " " << std::setw(12) << stepLen << " " diff --git a/source/geometry/navigation/src/G4NavigationLogger.cc b/source/geometry/navigation/src/G4NavigationLogger.cc index 8d7fae3d28..6791b80f7f 100644 --- a/source/geometry/navigation/src/G4NavigationLogger.cc +++ b/source/geometry/navigation/src/G4NavigationLogger.cc @@ -109,7 +109,7 @@ G4NavigationLogger::PreComputeStepLog(const G4VPhysicalVolume* motherPhysical, if ( fVerbose > 1 ) { static const G4int precVerf = 16; // Precision - G4int oldprec = G4cout.precision(precVerf); + G4long oldprec = G4cout.precision(precVerf); G4cout << " - Information on mother / key daughters ..." << G4endl; G4cout << " Type " << std::setw(12) << "Solid-Name" << " " << std::setw(3*(6+precVerf)) << " local point" << " " @@ -236,7 +236,7 @@ G4NavigationLogger::AlongComputeStepLog(const G4VSolid* sampleSolid, if ( fVerbose > 1 ) { static const G4int precVerf= 20; // Precision - G4int oldprec = G4cout.precision(precVerf); + G4long oldprec = G4cout.precision(precVerf); G4cout << "Daughter " << std::setw(12) << sampleSolid->GetName() << " " << std::setw(4+precVerf) << samplePoint << " " @@ -451,8 +451,8 @@ G4NavigationLogger::PostComputeStepLog(const G4VSolid* motherSolid, if( ( motherStep < 0.0 ) || ( motherStep >= kInfinity) ) { G4String fType = fId + "::ComputeStep()"; - G4int oldPrOut = G4cout.precision(16); - G4int oldPrErr = G4cerr.precision(16); + G4long oldPrOut = G4cout.precision(16); + G4long oldPrErr = G4cerr.precision(16); std::ostringstream message; message << "Current point is outside the current solid !" << G4endl << " Problem in Navigation" << G4endl @@ -468,7 +468,7 @@ G4NavigationLogger::PostComputeStepLog(const G4VSolid* motherSolid, if ( fVerbose > 1 ) { static const G4int precVerf = 20; // Precision - G4int oldprec = G4cout.precision(precVerf); + G4long oldprec = G4cout.precision(precVerf); G4cout << " Mother " << std::setw(12) << motherSolid->GetName() << " " << std::setw(4+precVerf) << localPoint << " " << std::setw(4+precVerf) << motherSafety << " " @@ -526,7 +526,7 @@ G4NavigationLogger::PrintDaughterLog (const G4VSolid* sampleSolid, { if ( fVerbose >= 1 ) { - G4int oldPrec = G4cout.precision(8); + G4long oldPrec = G4cout.precision(8); G4cout << "Daughter " << std::setw(15) << sampleSafety << " "; if (withStep) // (sampleStep != -1.0 ) diff --git a/source/geometry/navigation/src/G4Navigator.cc b/source/geometry/navigation/src/G4Navigator.cc index 74316152fc..b533d03d23 100644 --- a/source/geometry/navigation/src/G4Navigator.cc +++ b/source/geometry/navigation/src/G4Navigator.cc @@ -154,7 +154,7 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, #ifdef G4VERBOSE if( fVerbose > 2 ) { - G4int oldcoutPrec = G4cout.precision(8); + G4long oldcoutPrec = G4cout.precision(8); G4cout << "*** G4Navigator::LocateGlobalPointAndSetup: ***" << G4endl; G4cout << " Called with arguments: " << G4endl << " Globalpoint = " << globalPoint << G4endl @@ -169,7 +169,6 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, #endif G4int noLevelsExited = 0; - G4int noLevelsEntered = 0; if ( !relativeSearch ) { @@ -222,10 +221,6 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, else if ( fEntering ) { - // assert( fBlockedPhysicalVolume!=0 ); - - ++noLevelsEntered; // count the first level entered too - switch (VolumeType(fBlockedPhysicalVolume)) { case kNormal: @@ -524,8 +519,6 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, if ( noResult ) { - ++noLevelsEntered; - // Entering a daughter after ascending // // The blocked volume is no longer valid - it was for another level @@ -570,7 +563,7 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, #ifdef G4VERBOSE if( fVerbose >= 4 ) { - G4int oldcoutPrec = G4cout.precision(8); + G4long oldcoutPrec = G4cout.precision(8); G4String curPhysVol_Name("None"); if (targetPhysical) { curPhysVol_Name = targetPhysical->GetName(); } G4cout << " Return value = new volume = " << curPhysVol_Name << G4endl; @@ -1180,7 +1173,7 @@ G4double G4Navigator::ComputeStep( const G4ThreeVector& pGlobalpoint, // if( fValidExitNormal || fCalculatedExitNormal ) { - G4int depth = fHistory.GetDepth(); + G4int depth = (G4int)fHistory.GetDepth(); if( depth > 0 ) { fExitNormalGlobalFrame = fHistory.GetTransform(depth-1) @@ -1311,7 +1304,7 @@ void G4Navigator::ResetState() // void G4Navigator::SetupHierarchy() { - const G4int depth = fHistory.GetDepth(); + const G4int depth = (G4int)fHistory.GetDepth(); for ( auto i = 1; i <= depth; ++i ) { switch ( fHistory.GetVolumeType(i) ) @@ -1943,7 +1936,7 @@ G4TouchableHistoryHandle G4Navigator::CreateTouchableHistoryHandle() const // void G4Navigator::PrintState() const { - G4int oldcoutPrec = G4cout.precision(4); + G4long oldcoutPrec = G4cout.precision(4); if( fVerbose >= 4 ) { G4cout << "The current state of G4Navigator is: " << G4endl; @@ -2031,8 +2024,8 @@ void G4Navigator::ComputeStepLog(const G4ThreeVector& pGlobalpoint, if( diffShiftSaf > fAccuracyForWarning ) { - G4int oldcoutPrec = G4cout.precision(8); - G4int oldcerrPrec = G4cerr.precision(10); + G4long oldcoutPrec = G4cout.precision(8); + G4long oldcerrPrec = G4cerr.precision(10); std::ostringstream message, suggestion; message << "Accuracy error or slightly inaccurate position shift." << G4endl @@ -2142,7 +2135,7 @@ std::ostream& operator << (std::ostream &os,const G4Navigator &n) // Adapted from G4Navigator::PrintState() const - G4int oldcoutPrec = os.precision(4); + G4long oldcoutPrec = os.precision(4); if( n.fVerbose >= 4 ) { os << "The current state of G4Navigator is: " << G4endl; diff --git a/source/geometry/navigation/src/G4NormalNavigation.cc b/source/geometry/navigation/src/G4NormalNavigation.cc index 3b0d4fc0b2..f4585f1662 100644 --- a/source/geometry/navigation/src/G4NormalNavigation.cc +++ b/source/geometry/navigation/src/G4NormalNavigation.cc @@ -80,7 +80,7 @@ G4NormalNavigation::ComputeStep(const G4ThreeVector& localPoint, G4ThreeVector sampleDirection; G4double ourStep = currentProposedStepLength, ourSafety; G4double motherSafety, motherStep = DBL_MAX; - G4int localNoDaughters, sampleNo; + G4long localNoDaughters, sampleNo; G4bool motherValidExitNormal = false; G4ThreeVector motherExitNormal; @@ -337,7 +337,7 @@ G4double G4NormalNavigation::ComputeSafety(const G4ThreeVector& localPoint, G4LogicalVolume *motherLogical; G4VSolid *motherSolid; G4double motherSafety, ourSafety; - G4int localNoDaughters, sampleNo; + G4long localNoDaughters, sampleNo; motherPhysical = history.GetTopVolume(); motherLogical = motherPhysical->GetLogicalVolume(); diff --git a/source/geometry/navigation/src/G4ParameterisedNavigation.cc b/source/geometry/navigation/src/G4ParameterisedNavigation.cc index af09cdf74f..bd4c8a7796 100644 --- a/source/geometry/navigation/src/G4ParameterisedNavigation.cc +++ b/source/geometry/navigation/src/G4ParameterisedNavigation.cc @@ -96,7 +96,7 @@ G4double G4ParameterisedNavigation:: G4bool initialNode, noStep; G4SmartVoxelNode *curVoxelNode; - G4int curNoVolumes, contentNo; + G4long curNoVolumes, contentNo; G4double voxelSafety; // Replication data @@ -227,7 +227,7 @@ G4double G4ParameterisedNavigation:: for ( contentNo=curNoVolumes-1; contentNo>=0; contentNo-- ) { - sampleNo = curVoxelNode->GetVolume(contentNo); + sampleNo = curVoxelNode->GetVolume((G4int)contentNo); if ( !fBList.IsBlocked(sampleNo) ) { fBList.BlockVolume(sampleNo); @@ -270,7 +270,7 @@ G4double G4ParameterisedNavigation:: EInside insideIntPt = sampleSolid->Inside(intersectionPoint); if( insideIntPt != kSurface ) { - G4int oldcoutPrec = G4cout.precision(16); + G4long oldcoutPrec = G4cout.precision(16); std::ostringstream message; message << "Navigator gets conflicting response from Solid." << G4endl @@ -405,7 +405,7 @@ G4ParameterisedNavigation::ComputeSafety(const G4ThreeVector& localPoint, G4int sampleNo, curVoxelNodeNo; G4SmartVoxelNode *curVoxelNode; - G4int curNoVolumes, contentNo; + G4long curNoVolumes, contentNo; G4double voxelSafety; // Replication data @@ -456,7 +456,7 @@ G4ParameterisedNavigation::ComputeSafety(const G4ThreeVector& localPoint, for ( contentNo=curNoVolumes-1; contentNo>=0; contentNo-- ) { - sampleNo = curVoxelNode->GetVolume(contentNo); + sampleNo = curVoxelNode->GetVolume((G4int)contentNo); // Call virtual methods, and copy information if needed // @@ -503,7 +503,7 @@ ComputeVoxelSafety(const G4ThreeVector& localPoint, G4double voxelSafety, plusVoxelSafety, minusVoxelSafety; G4double curNodeOffset, minCurCommonDelta, maxCurCommonDelta; - G4int minCurNodeNoDelta, maxCurNodeNoDelta; + G4long minCurNodeNoDelta, maxCurNodeNoDelta; // Compute linear intersection distance to boundaries of max/min // to collected nodes at current level @@ -624,7 +624,7 @@ G4ParameterisedNavigation::LevelLocate( G4NavigationHistory& history, // motherVoxelNode = ParamVoxelLocate(motherVoxelHeader,localPoint); - voxelNoDaughters = motherVoxelNode->GetNoContained(); + voxelNoDaughters = (G4int)motherVoxelNode->GetNoContained(); if ( voxelNoDaughters==0 ) { return false; } pPhysical = motherLogical->GetDaughter(0); diff --git a/source/geometry/navigation/src/G4PartialPhantomParameterisation.cc b/source/geometry/navigation/src/G4PartialPhantomParameterisation.cc index bfe143ec11..b3ba24819b 100644 --- a/source/geometry/navigation/src/G4PartialPhantomParameterisation.cc +++ b/source/geometry/navigation/src/G4PartialPhantomParameterisation.cc @@ -69,7 +69,7 @@ GetTranslation(const G4int copyNo ) const { CheckCopyNo( copyNo ); - size_t nx, ny, nz; + std::size_t nx, ny, nz; ComputeVoxelIndices( copyNo, nx, ny, nz ); G4ThreeVector trans( (2*nx+1)*fVoxelHalfX - fContainerWallX, @@ -92,7 +92,7 @@ ComputeMaterial( const G4int copyNo, G4VPhysicalVolume*, const G4VTouchable* ) //------------------------------------------------------------------ size_t G4PartialPhantomParameterisation:: -GetMaterialIndex( size_t copyNo ) const +GetMaterialIndex( std::size_t copyNo ) const { CheckCopyNo( copyNo ); @@ -104,16 +104,16 @@ GetMaterialIndex( size_t copyNo ) const //------------------------------------------------------------------ size_t G4PartialPhantomParameterisation:: -GetMaterialIndex( size_t nx, size_t ny, size_t nz ) const +GetMaterialIndex( std::size_t nx, std::size_t ny, std::size_t nz ) const { - size_t copyNo = nx + fNoVoxelsX*ny + fNoVoxelsXY*nz; + std::size_t copyNo = nx + fNoVoxelsX*ny + fNoVoxelsXY*nz; return GetMaterialIndex( copyNo ); } //------------------------------------------------------------------ G4Material* G4PartialPhantomParameterisation:: -GetMaterial( size_t nx, size_t ny, size_t nz) const +GetMaterial( std::size_t nx, std::size_t ny, std::size_t nz) const { return fMaterials[GetMaterialIndex(nx,ny,nz)]; } @@ -121,7 +121,7 @@ GetMaterial( size_t nx, size_t ny, size_t nz) const //------------------------------------------------------------------ G4Material* G4PartialPhantomParameterisation:: -GetMaterial( size_t copyNo ) const +GetMaterial( std::size_t copyNo ) const { return fMaterials[GetMaterialIndex(copyNo)]; } @@ -129,15 +129,15 @@ GetMaterial( size_t copyNo ) const //------------------------------------------------------------------ void G4PartialPhantomParameterisation:: -ComputeVoxelIndices(const G4int copyNo, size_t& nx, - size_t& ny, size_t& nz ) const +ComputeVoxelIndices(const G4int copyNo, std::size_t& nx, + std::size_t& ny, std::size_t& nz ) const { CheckCopyNo( copyNo ); - auto ite = fFilledIDs.lower_bound(size_t(copyNo)); - G4int dist = std::distance( fFilledIDs.cbegin(), ite ); - nz = size_t( dist/fNoVoxelsY ); - ny = size_t( dist%fNoVoxelsY ); + auto ite = fFilledIDs.lower_bound(copyNo); + G4long dist = std::distance( fFilledIDs.cbegin(), ite ); + nz = std::size_t( dist/fNoVoxelsY ); + ny = std::size_t( dist%fNoVoxelsY ); G4int ifmin = (*ite).second; G4int nvoxXprev; @@ -249,7 +249,7 @@ GetReplicaNo( const G4ThreeVector& localPoint, const G4ThreeVector& localDir ) } else if( nx >= G4int(fNoVoxelsX) ) { - nx = fNoVoxelsX-1; + nx = G4int(fNoVoxelsX)-1; isOK = false; } if( ny < 0 ) @@ -259,7 +259,7 @@ GetReplicaNo( const G4ThreeVector& localPoint, const G4ThreeVector& localDir ) } else if( ny >= G4int(fNoVoxelsY) ) { - ny = fNoVoxelsY-1; + ny = G4int(fNoVoxelsY)-1; isOK = false; } if( nz < 0 ) @@ -269,7 +269,7 @@ GetReplicaNo( const G4ThreeVector& localPoint, const G4ThreeVector& localDir ) } else if( nz >= G4int(fNoVoxelsZ) ) { - nz = fNoVoxelsZ-1; + nz = G4int(fNoVoxelsZ)-1; isOK = false; } if( !isOK ) @@ -289,7 +289,7 @@ GetReplicaNo( const G4ThreeVector& localPoint, const G4ThreeVector& localDir ) "GeomNav1002", JustWarning, message); } - G4int nyz = nz*fNoVoxelsY+ny; + G4int nyz = G4int(nz*fNoVoxelsY+ny); auto ite = fFilledIDs.cbegin(); /* for( ite = fFilledIDs.cbegin(); ite != fFilledIDs.cend(); ++ite ) @@ -316,7 +316,7 @@ GetReplicaNo( const G4ThreeVector& localPoint, const G4ThreeVector& localDir ) //------------------------------------------------------------------ -void G4PartialPhantomParameterisation::CheckCopyNo( const G4int copyNo ) const +void G4PartialPhantomParameterisation::CheckCopyNo( const G4long copyNo ) const { if( copyNo < 0 || copyNo >= G4int(fNoVoxels) ) { diff --git a/source/geometry/navigation/src/G4PathFinder.cc b/source/geometry/navigation/src/G4PathFinder.cc index 80ca217e9c..cf0a0f4d22 100644 --- a/source/geometry/navigation/src/G4PathFinder.cc +++ b/source/geometry/navigation/src/G4PathFinder.cc @@ -364,7 +364,7 @@ G4PathFinder::PrepareNewTrack( const G4ThreeVector& position, // std::vector::iterator pNavigatorIter; - fNoActiveNavigators = fpTransportManager-> GetNoActiveNavigators(); + fNoActiveNavigators = (G4int)fpTransportManager-> GetNoActiveNavigators(); if( fNoActiveNavigators > fMaxNav ) { std::ostringstream message; @@ -1110,7 +1110,7 @@ void G4PathFinder::PrintLimited() { stepLen = fTrueMinStep; // did not limit (went as far as asked) } - G4int oldPrec = G4cout.precision(9); + G4long oldPrec = G4cout.precision(9); G4cout << std::setw(5) << fCurrentStepNo << " " << std::setw(5) << num << " " diff --git a/source/geometry/navigation/src/G4PhantomParameterisation.cc b/source/geometry/navigation/src/G4PhantomParameterisation.cc index 8648699754..bc0eed34f3 100644 --- a/source/geometry/navigation/src/G4PhantomParameterisation.cc +++ b/source/geometry/navigation/src/G4PhantomParameterisation.cc @@ -94,9 +94,9 @@ GetTranslation(const G4int copyNo ) const { CheckCopyNo( copyNo ); - size_t nx; - size_t ny; - size_t nz; + std::size_t nx; + std::size_t ny; + std::size_t nz; ComputeVoxelIndices( copyNo, nx, ny, nz ); @@ -120,15 +120,15 @@ G4Material* G4PhantomParameterisation:: ComputeMaterial(const G4int copyNo, G4VPhysicalVolume *, const G4VTouchable *) { CheckCopyNo( copyNo ); - size_t matIndex = GetMaterialIndex(copyNo); + std::size_t matIndex = GetMaterialIndex(copyNo); return fMaterials[ matIndex ]; } //------------------------------------------------------------------ -size_t G4PhantomParameterisation:: -GetMaterialIndex( size_t copyNo ) const +std::size_t G4PhantomParameterisation:: +GetMaterialIndex( std::size_t copyNo ) const { CheckCopyNo( copyNo ); @@ -138,36 +138,38 @@ GetMaterialIndex( size_t copyNo ) const //------------------------------------------------------------------ -size_t G4PhantomParameterisation:: -GetMaterialIndex( size_t nx, size_t ny, size_t nz ) const +std::size_t G4PhantomParameterisation:: +GetMaterialIndex( std::size_t nx, std::size_t ny, std::size_t nz ) const { - size_t copyNo = nx + fNoVoxelsX*ny + fNoVoxelsXY*nz; + std::size_t copyNo = nx + fNoVoxelsX*ny + fNoVoxelsXY*nz; return GetMaterialIndex( copyNo ); } //------------------------------------------------------------------ G4Material* -G4PhantomParameterisation::GetMaterial( size_t nx, size_t ny, size_t nz) const +G4PhantomParameterisation::GetMaterial( std::size_t nx, std::size_t ny, std::size_t nz) const { return fMaterials[GetMaterialIndex(nx,ny,nz)]; } + //------------------------------------------------------------------ -G4Material* G4PhantomParameterisation::GetMaterial( size_t copyNo ) const +G4Material* G4PhantomParameterisation::GetMaterial( std::size_t copyNo ) const { return fMaterials[GetMaterialIndex(copyNo)]; } + //------------------------------------------------------------------ void G4PhantomParameterisation:: -ComputeVoxelIndices(const G4int copyNo, size_t& nx, - size_t& ny, size_t& nz ) const +ComputeVoxelIndices(const G4int copyNo, std::size_t& nx, + std::size_t& ny, std::size_t& nz ) const { CheckCopyNo( copyNo ); - nx = size_t(copyNo%fNoVoxelsX); - ny = size_t( (copyNo/fNoVoxelsX)%fNoVoxelsY ); - nz = size_t(copyNo/fNoVoxelsXY); + nx = std::size_t(copyNo%fNoVoxelsX); + ny = std::size_t( (copyNo/fNoVoxelsX)%fNoVoxelsY ); + nz = std::size_t(copyNo/fNoVoxelsXY); } @@ -325,7 +327,7 @@ GetReplicaNo( const G4ThreeVector& localPoint, const G4ThreeVector& localDir ) } } - G4int copyNo = nx + fNoVoxelsX*ny + fNoVoxelsXY*nz; + G4int copyNo = G4int(nx + fNoVoxelsX*ny + fNoVoxelsXY*nz); // Check if there are still errors // @@ -337,7 +339,7 @@ GetReplicaNo( const G4ThreeVector& localPoint, const G4ThreeVector& localDir ) } else if( nx >= G4int(fNoVoxelsX) ) { - nx = fNoVoxelsX-1; + nx = G4int(fNoVoxelsX)-1; isOK = false; } if( ny < 0 ) @@ -347,7 +349,7 @@ GetReplicaNo( const G4ThreeVector& localPoint, const G4ThreeVector& localDir ) } else if( ny >= G4int(fNoVoxelsY) ) { - ny = fNoVoxelsY-1; + ny = G4int(fNoVoxelsY)-1; isOK = false; } if( nz < 0 ) @@ -357,7 +359,7 @@ GetReplicaNo( const G4ThreeVector& localPoint, const G4ThreeVector& localDir ) } else if( nz >= G4int(fNoVoxelsZ) ) { - nz = fNoVoxelsZ-1; + nz = G4int(fNoVoxelsZ)-1; isOK = false; } if( !isOK ) @@ -379,7 +381,7 @@ GetReplicaNo( const G4ThreeVector& localPoint, const G4ThreeVector& localDir ) "GeomNav1002", JustWarning, message); } - copyNo = nx + fNoVoxelsX*ny + fNoVoxelsXY*nz; + copyNo = G4int(nx + fNoVoxelsX*ny + fNoVoxelsXY*nz); } return copyNo; @@ -387,7 +389,7 @@ GetReplicaNo( const G4ThreeVector& localPoint, const G4ThreeVector& localDir ) //------------------------------------------------------------------ -void G4PhantomParameterisation::CheckCopyNo( const G4int copyNo ) const +void G4PhantomParameterisation::CheckCopyNo( const G4long copyNo ) const { if( copyNo < 0 || copyNo >= G4int(fNoVoxels) ) { diff --git a/source/geometry/navigation/src/G4PropagatorInField.cc b/source/geometry/navigation/src/G4PropagatorInField.cc index 7585fd4c13..19aa1b5dfb 100644 --- a/source/geometry/navigation/src/G4PropagatorInField.cc +++ b/source/geometry/navigation/src/G4PropagatorInField.cc @@ -536,7 +536,7 @@ G4PropagatorInField::printStatus( const G4FieldTrack& StartFT, G4double step_len = CurrentFT.GetCurveLength() - StartFT.GetCurveLength(); - G4int oldprec; // cout/cerr precision settings + G4long oldprec; // cout/cerr precision settings if( ((stepNo == 0) && (verboseLevel <3)) || (verboseLevel >= 3) ) { @@ -617,7 +617,7 @@ G4PropagatorInField::PrintStepLengthDiagnostic( G4double stepTrial, const G4FieldTrack& ) { - G4int iprec= G4cout.precision(8); + G4long iprec= G4cout.precision(8); G4cout << " " << std::setw(12) << " PiF: NoZeroStep " << " " << std::setw(20) << " CurrentProposed len " << " " << std::setw(18) << " Full_curvelen_last" diff --git a/source/geometry/navigation/src/G4RegularNavigation.cc b/source/geometry/navigation/src/G4RegularNavigation.cc index 35c2b2deb2..0aa1961e58 100644 --- a/source/geometry/navigation/src/G4RegularNavigation.cc +++ b/source/geometry/navigation/src/G4RegularNavigation.cc @@ -156,7 +156,7 @@ G4double G4RegularNavigation::ComputeStepSkippingEqualMaterials( // To get replica No: transform local point to the reference system of the // param container volume // - G4int ide = history.GetDepth(); + G4int ide = (G4int)history.GetDepth(); G4ThreeVector containerPoint = history.GetTransform(ide) .InverseTransformPoint(localPoint); diff --git a/source/geometry/navigation/src/G4ReplicaNavigation.cc b/source/geometry/navigation/src/G4ReplicaNavigation.cc index 6495f83c65..ba20125ed8 100644 --- a/source/geometry/navigation/src/G4ReplicaNavigation.cc +++ b/source/geometry/navigation/src/G4ReplicaNavigation.cc @@ -770,7 +770,7 @@ G4ReplicaNavigation::ComputeStep(const G4ThreeVector& globalPoint, G4double ourStep=currentProposedStepLength; G4double ourSafety=kInfinity; G4double sampleStep, sampleSafety, motherStep, motherSafety; - G4int localNoDaughters, sampleNo; + G4long localNoDaughters, sampleNo; G4int depth; G4ExitNormal exitNormalStc; // G4int depthDeterminingStep= -1; // Useful only for debugging - for now @@ -803,7 +803,7 @@ G4ReplicaNavigation::ComputeStep(const G4ThreeVector& globalPoint, history.GetTopReplicaNo(), localPoint); G4ExitNormal normalOutStc; - const G4int topDepth= history.GetDepth(); + const G4int topDepth= (G4int)history.GetDepth(); ourSafety = std::min( ourSafety, sampleSafety); @@ -1034,7 +1034,7 @@ G4ReplicaNavigation::ComputeStep(const G4ThreeVector& globalPoint, localNoDaughters = repLogical->GetNoDaughters(); for ( sampleNo=localNoDaughters-1; sampleNo>=0; sampleNo-- ) { - samplePhysical = repLogical->GetDaughter(sampleNo); + samplePhysical = repLogical->GetDaughter((G4int)sampleNo); if ( samplePhysical!=blockedExitedVol ) { G4ThreeVector localExitNorm; @@ -1066,7 +1066,7 @@ G4ReplicaNavigation::ComputeStep(const G4ThreeVector& globalPoint, entering = true; exiting = false; *pBlockedPhysical = samplePhysical; - blockedReplicaNo = sampleNo; + blockedReplicaNo = (G4int)sampleNo; #ifdef DAUGHTER_NORMAL_ALSO // This norm can be calculated later, if needed daughter is available @@ -1086,7 +1086,7 @@ G4ReplicaNavigation::ComputeStep(const G4ThreeVector& globalPoint, EInside insideIntPt = sampleSolid->Inside(intersectionPoint); if ( insideIntPt != kSurface ) { - G4int oldcoutPrec = G4cout.precision(16); + G4long oldcoutPrec = G4cout.precision(16); std::ostringstream message; message << "Navigator gets conflicting response from Solid." << G4endl @@ -1161,7 +1161,7 @@ G4ReplicaNavigation::ComputeSafety(const G4ThreeVector& globalPoint, G4ThreeVector repPoint; G4double ourSafety = kInfinity; G4double sampleSafety; - G4int localNoDaughters, sampleNo; + G4long localNoDaughters, sampleNo; G4int depth; repPhysical = history.GetTopVolume(); @@ -1179,7 +1179,7 @@ G4ReplicaNavigation::ComputeSafety(const G4ThreeVector& globalPoint, ourSafety = sampleSafety; } - depth = history.GetDepth()-1; + depth = (G4int)history.GetDepth()-1; // Loop checking, 07.10.2016, JA -- need to add: assert(depth>0) while ( history.GetVolumeType(depth)==kReplica ) @@ -1212,7 +1212,7 @@ G4ReplicaNavigation::ComputeSafety(const G4ThreeVector& globalPoint, localNoDaughters = repLogical->GetNoDaughters(); for ( sampleNo=localNoDaughters-1; sampleNo>=0; sampleNo-- ) { - samplePhysical = repLogical->GetDaughter(sampleNo); + samplePhysical = repLogical->GetDaughter((G4int)sampleNo); if ( samplePhysical!=blockedExitedVol ) { G4AffineTransform sampleTf(samplePhysical->GetRotation(), @@ -1250,7 +1250,7 @@ G4ReplicaNavigation::BackLocate(G4NavigationHistory& history, G4int mdepth, depth, cdepth; EInside insideCode; - cdepth = history.GetDepth(); + cdepth = (G4int)history.GetDepth(); // Find non replicated mother // diff --git a/source/geometry/navigation/src/G4VIntersectionLocator.cc b/source/geometry/navigation/src/G4VIntersectionLocator.cc index 269b45a587..2bc66b0306 100644 --- a/source/geometry/navigation/src/G4VIntersectionLocator.cc +++ b/source/geometry/navigation/src/G4VIntersectionLocator.cc @@ -103,7 +103,7 @@ G4VIntersectionLocator::printStatus( const G4FieldTrack& StartFT, const G4ThreeVector CurrentUnitVelocity = CurrentFT.GetMomentumDir(); G4double step_len = CurrentFT.GetCurveLength() - StartFT.GetCurveLength(); - G4int oldprc; // cout/cerr precision settings + G4long oldprc; // cout/cerr precision settings if( ((stepNo == 0) && (verboseLevel <3)) || (verboseLevel >= 3) ) { @@ -789,7 +789,7 @@ ReportReversedPoints( std::ostringstream& msg, << " Point B' (end) is " << B_PtVel << G4endl; msg << " fEpsStep= " << epsStep << G4endl << G4endl; - G4int oldprc = msg.precision(20); + G4long oldprc = msg.precision(20); msg << " In full precision, the position, momentum, E_kin, length, rest mass " << " ... are: " << G4endl; msg << " Point A[0] (Curve start) is " << StartPointVel << G4endl diff --git a/source/geometry/navigation/src/G4VoxelNavigation.cc b/source/geometry/navigation/src/G4VoxelNavigation.cc index 6d8fbedc4f..0ae3112697 100644 --- a/source/geometry/navigation/src/G4VoxelNavigation.cc +++ b/source/geometry/navigation/src/G4VoxelNavigation.cc @@ -107,7 +107,7 @@ G4VoxelNavigation::ComputeStep( const G4ThreeVector& localPoint, G4bool initialNode, noStep; G4SmartVoxelNode *curVoxelNode; - G4int curNoVolumes, contentNo; + G4long curNoVolumes, contentNo; G4double voxelSafety; motherPhysical = history.GetTopVolume(); @@ -164,7 +164,7 @@ G4VoxelNavigation::ComputeStep( const G4ThreeVector& localPoint, } #endif - localNoDaughters = motherLogical->GetNoDaughters(); + localNoDaughters = (G4int)motherLogical->GetNoDaughters(); fBList.Enlarge(localNoDaughters); fBList.Reset(); @@ -178,7 +178,7 @@ G4VoxelNavigation::ComputeStep( const G4ThreeVector& localPoint, curNoVolumes = curVoxelNode->GetNoContained(); for (contentNo=curNoVolumes-1; contentNo>=0; contentNo--) { - sampleNo = curVoxelNode->GetVolume(contentNo); + sampleNo = curVoxelNode->GetVolume((G4int)contentNo); if ( !fBList.IsBlocked(sampleNo) ) { fBList.BlockVolume(sampleNo); @@ -601,7 +601,7 @@ G4VoxelNavigation::LocateNextVoxel(const G4ThreeVector& localPoint, ++fVoxelDepth; newHeader = newProxy->GetHeader(); newHeaderAxis = newHeader->GetAxis(); - newHeaderNoSlices = newHeader->GetNoSlices(); + newHeaderNoSlices = (G4int)newHeader->GetNoSlices(); newHeaderMin = newHeader->GetMinExtent(); newHeaderNodeWidth = (newHeader->GetMaxExtent()-newHeaderMin) / newHeaderNoSlices; @@ -651,7 +651,7 @@ G4VoxelNavigation::ComputeSafety(const G4ThreeVector& localPoint, G4double motherSafety, ourSafety; G4int sampleNo; G4SmartVoxelNode *curVoxelNode; - G4int curNoVolumes, contentNo; + G4long curNoVolumes, contentNo; G4double voxelSafety; motherPhysical = history.GetTopVolume(); @@ -731,7 +731,7 @@ G4VoxelNavigation::ComputeSafety(const G4ThreeVector& localPoint, for ( contentNo=curNoVolumes-1; contentNo>=0; contentNo-- ) { - sampleNo = curVoxelNode->GetVolume(contentNo); + sampleNo = curVoxelNode->GetVolume((G4int)contentNo); samplePhysical = motherLogical->GetDaughter(sampleNo); G4AffineTransform sampleTf(samplePhysical->GetRotation(), diff --git a/source/geometry/navigation/src/G4VoxelSafety.cc b/source/geometry/navigation/src/G4VoxelSafety.cc index 2ff1f193bc..4328ef21aa 100644 --- a/source/geometry/navigation/src/G4VoxelSafety.cc +++ b/source/geometry/navigation/src/G4VoxelSafety.cc @@ -135,7 +135,7 @@ G4VoxelSafety::ComputeSafety(const G4ThreeVector& localPoint, << ", to be considered as 'mother safety'." << G4endl; } #endif - localNoDaughters = motherLogical->GetNoDaughters(); + localNoDaughters = (G4int)motherLogical->GetNoDaughters(); fBlockList.Enlarge(localNoDaughters); fBlockList.Reset(); @@ -160,7 +160,8 @@ G4VoxelSafety::SafetyForVoxelNode( const G4SmartVoxelNode* curVoxelNode, { G4double ourSafety = DBL_MAX; - G4int curNoVolumes, contentNo, sampleNo; + G4long curNoVolumes, contentNo; + G4int sampleNo; G4VPhysicalVolume* samplePhysical; G4double sampleSafety = 0.0; @@ -171,7 +172,7 @@ G4VoxelSafety::SafetyForVoxelNode( const G4SmartVoxelNode* curVoxelNode, for ( contentNo=curNoVolumes-1; contentNo>=0; contentNo-- ) { - sampleNo = curVoxelNode->GetVolume(contentNo); + sampleNo = curVoxelNode->GetVolume((G4int)contentNo); if ( !fBlockList.IsBlocked(sampleNo) ) { fBlockList.BlockVolume(sampleNo); @@ -235,7 +236,7 @@ G4VoxelSafety::SafetyForVoxelHeader( const G4SmartVoxelHeader* pHeader, // fVoxelDepth set by ComputeSafety or previous level call targetHeaderAxis = targetVoxelHeader->GetAxis(); - targetHeaderNoSlices = targetVoxelHeader->GetNoSlices(); + targetHeaderNoSlices = (G4int)targetVoxelHeader->GetNoSlices(); targetHeaderMin = targetVoxelHeader->GetMinExtent(); targetHeaderMax = targetVoxelHeader->GetMaxExtent(); diff --git a/source/geometry/solids/Boolean/History b/source/geometry/solids/Boolean/History index 430346bded..4de7a3e829 100644 --- a/source/geometry/solids/Boolean/History +++ b/source/geometry/solids/Boolean/History @@ -6,6 +6,13 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------ +## 2022-11-10 Gabriele Cosmo (geom-bool-V11-00-07) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-27 Evgueni Tcherniaev (geom-bool-V11-00-06) +- G4SubtractionSolid::GetCubicVolume(): Fix problem of non-zero volume for + null resulting objects. + ## 2022-05-04 Gabriele Cosmo (geom-bool-V11-00-05) - Minor cleanup in headers and G4UnionSolid constructors. diff --git a/source/geometry/solids/Boolean/src/G4BooleanSolid.cc b/source/geometry/solids/Boolean/src/G4BooleanSolid.cc index 313f7985a8..39ce4ae9e5 100644 --- a/source/geometry/solids/Boolean/src/G4BooleanSolid.cc +++ b/source/geometry/solids/Boolean/src/G4BooleanSolid.cc @@ -292,7 +292,7 @@ void G4BooleanSolid::GetListOfPrimitives( G4ThreeVector G4BooleanSolid::GetPointOnSurface() const { - size_t nprims = fPrimitives.size(); + std::size_t nprims = fPrimitives.size(); std::pair prim; // Get list of primitives and find the total area of their surfaces @@ -302,7 +302,7 @@ G4ThreeVector G4BooleanSolid::GetPointOnSurface() const GetListOfPrimitives(fPrimitives, G4Transform3D()); nprims = fPrimitives.size(); fPrimitivesSurfaceArea = 0.; - for (size_t i=0; iGetSurfaceArea(); } @@ -312,11 +312,11 @@ G4ThreeVector G4BooleanSolid::GetPointOnSurface() const // check that the point belongs to the surface of the solid // G4ThreeVector p; - for (size_t k=0; k<100000; ++k) // try 100k times + for (std::size_t k=0; k<100000; ++k) // try 100k times { G4double rand = fPrimitivesSurfaceArea * G4QuickRand(); G4double area = 0.; - for (size_t i=0; iGetSurfaceArea(); diff --git a/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc b/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc index 3097d92b27..38b454c216 100644 --- a/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc @@ -301,8 +301,8 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p, G4double dB = 0., dB1=0., dB2=0.; G4bool doA = true, doB = true; - static const size_t max_trials=10000; - for (size_t trial=0; trial& candidates, G4SurfBits& bits) const { - G4int candidatesCount = candidates.size(); + std::size_t candidatesCount = candidates.size(); G4ThreeVector localPoint, localDirection; G4double minDistance = kInfinity; - for (G4int i = 0 ; i < candidatesCount; ++i) + for (std::size_t i = 0 ; i < candidatesCount; ++i) { G4int candidate = candidates[i]; G4VSolid& solid = *fSolids[candidate]; @@ -261,8 +261,8 @@ G4double G4MultiUnion::DistanceToOutNoVoxels(const G4ThreeVector& aPoint, G4double resultDistToOut = 0; G4ThreeVector currentPoint = aPoint; - G4int numNodes = fSolids.size(); - for (G4int i = 0; i < numNodes; ++i) + G4int numNodes = (G4int)fSolids.size(); + for (auto i = 0; i < numNodes; ++i) { if (i != ignoredSolid) { @@ -325,8 +325,8 @@ G4double G4MultiUnion::DistanceToOutVoxels(const G4ThreeVector& aPoint, G4ThreeVector direction = aDirection.unit(); std::vector candidates; G4double distance = 0; - G4int numNodes = 2*fSolids.size(); - G4int count=0; + std::size_t numNodes = 2*fSolids.size(); + std::size_t count=0; if (fVoxels.GetCandidatesVoxelArray(aPoint, candidates)) { @@ -345,8 +345,8 @@ G4double G4MultiUnion::DistanceToOutVoxels(const G4ThreeVector& aPoint, G4int maxCandidate = 0; G4ThreeVector maxLocalPoint; - G4int limit = candidates.size(); - for (G4int i = 0 ; i < limit ; ++i) + std::size_t limit = candidates.size(); + for (std::size_t i = 0 ; i < limit ; ++i) { G4int candidate = candidates[i]; // ignore the current component (that you just got out of) since @@ -479,11 +479,11 @@ EInside G4MultiUnion::InsideWithExclusion(const G4ThreeVector& aPoint, // surface, the surface points will be considered as kSurface, while points // located around will correspond to kInside (cf. G4UnionSolid) - G4int size = surfaces.size(); - for (G4int i = 0; i < size - 1; ++i) + std::size_t size = surfaces.size(); + for (std::size_t i = 0; i < size - 1; ++i) { G4MultiUnionSurface& left = surfaces[i]; - for (G4int j = i + 1; j < size; ++j) + for (std::size_t j = i + 1; j < size; ++j) { G4MultiUnionSurface& right = surfaces[j]; G4ThreeVector n, n2; @@ -526,8 +526,8 @@ EInside G4MultiUnion::InsideNoVoxels(const G4ThreeVector& aPoint) const EInside location = EInside::kOutside; G4int countSurface = 0; - G4int numNodes = fSolids.size(); - for (G4int i = 0 ; i < numNodes ; ++i) + G4int numNodes = (G4int)fSolids.size(); + for (auto i = 0 ; i < numNodes ; ++i) { G4VSolid& solid = *fSolids[i]; G4Transform3D transform = GetTransformation(i); @@ -553,8 +553,8 @@ void G4MultiUnion::Extent(EAxis aAxis, G4double& aMin, G4double& aMax) const // Determines the bounding box for the considered instance of "UMultipleUnion" G4ThreeVector min, max; - G4int numNodes = fSolids.size(); - for (G4int i = 0 ; i < numNodes ; ++i) + G4int numNodes = (G4int)fSolids.size(); + for (auto i = 0 ; i < numNodes ; ++i) { G4VSolid& solid = *fSolids[i]; G4Transform3D transform = GetTransformation(i); @@ -661,8 +661,8 @@ G4ThreeVector G4MultiUnion::SurfaceNormal(const G4ThreeVector& aPoint) const // determine weather we are in voxel area if (fVoxels.GetCandidatesVoxelArray(aPoint, candidates)) { - G4int limit = candidates.size(); - for (G4int i = 0 ; i < limit ; ++i) + std::size_t limit = candidates.size(); + for (std::size_t i = 0 ; i < limit ; ++i) { G4int candidate = candidates[i]; const G4Transform3D& transform = fTransformObjs[candidate]; @@ -735,8 +735,8 @@ G4double G4MultiUnion::DistanceToOut(const G4ThreeVector& point) const // but only an undervalue (cf. overlaps) fVoxels.GetCandidatesVoxelArray(point, candidates); - G4int limit = candidates.size(); - for (G4int i = 0; i < limit; ++i) + std::size_t limit = candidates.size(); + for (std::size_t i = 0; i < limit; ++i) { G4int candidate = candidates[i]; @@ -769,8 +769,8 @@ G4double G4MultiUnion::DistanceToIn(const G4ThreeVector& point) const G4double safetyMin = kInfinity; G4ThreeVector localPoint; - G4int numNodes = fSolids.size(); - for (G4int j = 0; j < numNodes; ++j) + std::size_t numNodes = fSolids.size(); + for (std::size_t j = 0; j < numNodes; ++j) { G4ThreeVector dxyz; if (j > 0) @@ -833,11 +833,11 @@ G4int G4MultiUnion::SafetyFromOutsideNumberNode(const G4ThreeVector& aPoint, const std::vector& boxes = fVoxels.GetBoxes(); safetyMin = kInfinity; - G4int safetyNode = 0; + std::size_t safetyNode = 0; G4ThreeVector localPoint; - G4int numNodes = fSolids.size(); - for (G4int i = 0; i < numNodes; ++i) + std::size_t numNodes = fSolids.size(); + for (std::size_t i = 0; i < numNodes; ++i) { G4double d2xyz = 0.; G4double dxyz0 = std::abs(aPoint.x() - boxes[i].pos.x()) - boxes[i].hlen.x(); @@ -864,7 +864,7 @@ G4int G4MultiUnion::SafetyFromOutsideNumberNode(const G4ThreeVector& aPoint, safetyNode = i; } } - return safetyNode; + return (G4int)safetyNode; } //______________________________________________________________________________ @@ -914,14 +914,14 @@ void G4MultiUnion::TransformLimits(G4ThreeVector& min, G4ThreeVector& max, //______________________________________________________________________________ std::ostream& G4MultiUnion::StreamInfo(std::ostream& os) const { - G4int oldprc = os.precision(16); + G4long oldprc = os.precision(16); os << "-----------------------------------------------------------\n" << " *** Dump for solid - " << GetName() << " ***\n" << " ===================================================\n" << " Solid type: G4MultiUnion\n" << " Parameters: \n"; - G4int numNodes = fSolids.size(); - for (G4int i = 0 ; i < numNodes ; ++i) + std::size_t numNodes = fSolids.size(); + for (std::size_t i = 0 ; i < numNodes ; ++i) { G4VSolid& solid = *fSolids[i]; solid.StreamInfo(os); diff --git a/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc b/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc index b6252ce7a4..6f76cde583 100644 --- a/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc @@ -591,7 +591,7 @@ G4double G4SubtractionSolid::GetCubicVolume() fPtrSolidA->BoundingLimits(bminA, bmaxA); fPtrSolidB->BoundingLimits(bminB, bmaxB); G4double intersection = 0.; - G4bool canIntersect = + G4bool canIntersect = bminA.x() < bmaxB.x() && bminA.y() < bmaxB.y() && bminA.z() < bmaxB.z() && bminB.x() < bmaxA.x() && bminB.y() < bmaxA.y() && bminB.z() < bmaxA.z(); if ( canIntersect ) @@ -602,6 +602,7 @@ G4double G4SubtractionSolid::GetCubicVolume() } fCubicVolume = cubVolumeA - intersection; + if (fCubicVolume < 0.01*cubVolumeA) fCubicVolume = G4VSolid::GetCubicVolume(); return fCubicVolume; } diff --git a/source/geometry/solids/CSG/History b/source/geometry/solids/CSG/History index 01b38f5c70..5a90599aa1 100644 --- a/source/geometry/solids/CSG/History +++ b/source/geometry/solids/CSG/History @@ -1,9 +1,17 @@ # Category geom-csg History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-10 Gabriele Cosmo (geom-csg-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-09-19 Ben Morgan (geom-csg-V11-00-01) +- G4Cons: define private enums within unnamed namespace, to overcome + C++ ODR (One Definition Rule) violation. ## 2021-12-10 Ben Morgan (geom-csg-V11-00-00) - Change to new Markdown History format diff --git a/source/geometry/solids/CSG/src/G4Box.cc b/source/geometry/solids/CSG/src/G4Box.cc index df41896492..31d3927603 100644 --- a/source/geometry/solids/CSG/src/G4Box.cc +++ b/source/geometry/solids/CSG/src/G4Box.cc @@ -479,7 +479,7 @@ G4GeometryType G4Box::GetEntityType() const std::ostream& G4Box::StreamInfo(std::ostream& os) const { - G4int oldprc = os.precision(16); + G4long oldprc = os.precision(16); os << "-----------------------------------------------------------\n" << " *** Dump for solid - " << GetName() << " ***\n" << " ===================================================\n" diff --git a/source/geometry/solids/CSG/src/G4Cons.cc b/source/geometry/solids/CSG/src/G4Cons.cc index e7ef9e203d..a8b2250c4e 100644 --- a/source/geometry/solids/CSG/src/G4Cons.cc +++ b/source/geometry/solids/CSG/src/G4Cons.cc @@ -56,13 +56,18 @@ using namespace CLHEP; //////////////////////////////////////////////////////////////////////// // -// Private enum: Not for external use - used by distanceToOut +// Private enums: Not for external use -enum ESide {kNull,kRMin,kRMax,kSPhi,kEPhi,kPZ,kMZ}; +namespace +{ + // used by DistanceToOut() + // + enum ESide {kNull,kRMin,kRMax,kSPhi,kEPhi,kPZ,kMZ}; -// used by normal - -enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi,kNZ}; + // used by ApproxSurfaceNormal() + // + enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi,kNZ}; +} ////////////////////////////////////////////////////////////////////////// // @@ -1408,7 +1413,7 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, // Vars for intersection within tolerance - ESide sidetol = kNull ; + ESide sidetol = kNull ; G4double slentol = kInfinity ; // Vars for phi intersection: @@ -1978,7 +1983,7 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, G4cout << G4endl ; DumpInfo(); std::ostringstream message; - G4int oldprc = message.precision(16) ; + G4long oldprc = message.precision(16) ; message << "Undefined side for valid surface normal to solid." << G4endl << "Position:" << G4endl << G4endl @@ -2111,7 +2116,7 @@ G4VSolid* G4Cons::Clone() const std::ostream& G4Cons::StreamInfo(std::ostream& os) const { - G4int oldprc = os.precision(16); + G4long oldprc = os.precision(16); os << "-----------------------------------------------------------\n" << " *** Dump for solid - " << GetName() << " ***\n" << " ===================================================\n" diff --git a/source/geometry/solids/CSG/src/G4CutTubs.cc b/source/geometry/solids/CSG/src/G4CutTubs.cc index a0863e834a..c806f7446e 100644 --- a/source/geometry/solids/CSG/src/G4CutTubs.cc +++ b/source/geometry/solids/CSG/src/G4CutTubs.cc @@ -1823,7 +1823,7 @@ G4double G4CutTubs::DistanceToOut( const G4ThreeVector& p, G4cout << G4endl ; DumpInfo(); std::ostringstream message; - G4int oldprc = message.precision(16); + G4long oldprc = message.precision(16); message << "Undefined side for valid surface normal to solid." << G4endl << "Position:" << G4endl << G4endl @@ -1917,7 +1917,7 @@ G4VSolid* G4CutTubs::Clone() const std::ostream& G4CutTubs::StreamInfo( std::ostream& os ) const { - G4int oldprc = os.precision(16); + G4long oldprc = os.precision(16); os << "-----------------------------------------------------------\n" << " *** Dump for solid - " << GetName() << " ***\n" << " ===================================================\n" diff --git a/source/geometry/solids/CSG/src/G4Orb.cc b/source/geometry/solids/CSG/src/G4Orb.cc index 956a65b06e..0bac57ad47 100644 --- a/source/geometry/solids/CSG/src/G4Orb.cc +++ b/source/geometry/solids/CSG/src/G4Orb.cc @@ -423,7 +423,7 @@ G4VSolid* G4Orb::Clone() const std::ostream& G4Orb::StreamInfo( std::ostream& os ) const { - G4int oldprc = os.precision(16); + G4long oldprc = os.precision(16); os << "-----------------------------------------------------------\n" << " *** Dump for solid - " << GetName() << " ***\n" << " ===================================================\n" diff --git a/source/geometry/solids/CSG/src/G4Para.cc b/source/geometry/solids/CSG/src/G4Para.cc index afaa1cfa04..a0de1083aa 100644 --- a/source/geometry/solids/CSG/src/G4Para.cc +++ b/source/geometry/solids/CSG/src/G4Para.cc @@ -105,7 +105,7 @@ G4Para::G4Para( const G4String& pName, if (discrepancy > 0.1*kCarTolerance) { std::ostringstream message; - G4int oldprc = message.precision(16); + G4long oldprc = message.precision(16); message << "Invalid vertice coordinates for Solid: " << GetName() << "\nVertix #" << i << ", discrepancy = " << discrepancy << "\n original : " << pt[i] @@ -816,7 +816,7 @@ std::ostream& G4Para::StreamInfo( std::ostream& os ) const fTthetaSphi*fTthetaSphi)); G4double phi = std::atan2(fTthetaSphi,fTthetaCphi); - G4int oldprc = os.precision(16); + G4long oldprc = os.precision(16); os << "-----------------------------------------------------------\n" << " *** Dump for solid - " << GetName() << " ***\n" << " ===================================================\n" diff --git a/source/geometry/solids/CSG/src/G4Sphere.cc b/source/geometry/solids/CSG/src/G4Sphere.cc index 916c23fca6..72dac283c9 100644 --- a/source/geometry/solids/CSG/src/G4Sphere.cc +++ b/source/geometry/solids/CSG/src/G4Sphere.cc @@ -2587,7 +2587,7 @@ G4double G4Sphere::DistanceToOut( const G4ThreeVector& p, G4cout << G4endl; DumpInfo(); std::ostringstream message; - G4int oldprc = message.precision(16); + G4long oldprc = message.precision(16); message << "Undefined side for valid surface normal to solid." << G4endl << "Position:" << G4endl << G4endl @@ -2611,7 +2611,7 @@ G4double G4Sphere::DistanceToOut( const G4ThreeVector& p, G4cout << G4endl; DumpInfo(); std::ostringstream message; - G4int oldprc = message.precision(16); + G4long oldprc = message.precision(16); message << "Logic error: snxt = kInfinity ???" << G4endl << "Position:" << G4endl << G4endl << "p.x() = " << p.x()/mm << " mm" << G4endl @@ -2649,7 +2649,7 @@ G4double G4Sphere::DistanceToOut( const G4ThreeVector& p ) const #ifdef G4CSGDEBUG if( Inside(p) == kOutside ) { - G4int old_prc = G4cout.precision(16); + G4long old_prc = G4cout.precision(16); G4cout << G4endl; DumpInfo(); G4cout << "Position:" << G4endl << G4endl ; @@ -2750,7 +2750,7 @@ G4VSolid* G4Sphere::Clone() const std::ostream& G4Sphere::StreamInfo( std::ostream& os ) const { - G4int oldprc = os.precision(16); + G4long oldprc = os.precision(16); os << "-----------------------------------------------------------\n" << " *** Dump for solid - " << GetName() << " ***\n" << " ===================================================\n" diff --git a/source/geometry/solids/CSG/src/G4Torus.cc b/source/geometry/solids/CSG/src/G4Torus.cc index e9fa08bc16..be34651413 100644 --- a/source/geometry/solids/CSG/src/G4Torus.cc +++ b/source/geometry/solids/CSG/src/G4Torus.cc @@ -297,7 +297,7 @@ G4double G4Torus::SolveNumericJT( const G4ThreeVector& p, // determine the smallest non-negative solution // - for ( size_t k = 0 ; k 0.1*kCarTolerance) { std::ostringstream message; - G4int oldprc = message.precision(16); + G4long oldprc = message.precision(16); message << "Invalid vertice coordinates for Solid: " << GetName() << "\nVertix #" << i << ", discrepancy = " << discrepancy << "\n original : " << pt[i] diff --git a/source/geometry/solids/specific/History b/source/geometry/solids/specific/History index 8f62761113..9cf47cf084 100644 --- a/source/geometry/solids/specific/History +++ b/source/geometry/solids/specific/History @@ -1,9 +1,17 @@ # Category geom-specific History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-10 Gabriele Cosmo (geom-specific-V11-00-10) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-05 Gabriele Cosmo (geom-specific-V11-00-09) +- Fixed compilation warnings in Intel/icx compiler for variables set + but never used. ## 2022-04-03 Evgueni Tcherniaev (geom-specific-V11-00-08) - G4GenericTrap.cc, G4UGenericTrap.cc, G4UExtrudedSolid.cc, diff --git a/source/geometry/solids/specific/include/G4ClippablePolygon.hh b/source/geometry/solids/specific/include/G4ClippablePolygon.hh index b49ee205b2..50c3773f4c 100644 --- a/source/geometry/solids/specific/include/G4ClippablePolygon.hh +++ b/source/geometry/solids/specific/include/G4ClippablePolygon.hh @@ -81,7 +81,7 @@ class G4ClippablePolygon // Returns pointer to maximum point along the specified axis. // Take care! Do not use pointer after destroying parent polygon. - inline G4int GetNumVertices() const; + inline std::size_t GetNumVertices() const; inline G4bool Empty() const; virtual G4bool InFrontOf( const G4ClippablePolygon& other, EAxis axis ) const; diff --git a/source/geometry/solids/specific/include/G4ClippablePolygon.icc b/source/geometry/solids/specific/include/G4ClippablePolygon.icc index ffb3ac6e70..d2d36eb7ad 100644 --- a/source/geometry/solids/specific/include/G4ClippablePolygon.icc +++ b/source/geometry/solids/specific/include/G4ClippablePolygon.icc @@ -39,7 +39,7 @@ const G4ThreeVector G4ClippablePolygon::GetNormal() const } inline -G4int G4ClippablePolygon::GetNumVertices() const +std::size_t G4ClippablePolygon::GetNumVertices() const { return vertices.size(); } diff --git a/source/geometry/solids/specific/include/G4ExtrudedSolid.hh b/source/geometry/solids/specific/include/G4ExtrudedSolid.hh index 49c0c4d028..086b20e907 100644 --- a/source/geometry/solids/specific/include/G4ExtrudedSolid.hh +++ b/source/geometry/solids/specific/include/G4ExtrudedSolid.hh @@ -184,8 +184,8 @@ class G4ExtrudedSolid : public G4TessellatedSolid private: - G4int fNv; - G4int fNz; + std::size_t fNv; + std::size_t fNz; std::vector fPolygon; std::vector fZSections; std::vector< std::vector > fTriangles; diff --git a/source/geometry/solids/specific/include/G4ExtrudedSolid.icc b/source/geometry/solids/specific/include/G4ExtrudedSolid.icc index 19ebf05310..82c74c7618 100644 --- a/source/geometry/solids/specific/include/G4ExtrudedSolid.icc +++ b/source/geometry/solids/specific/include/G4ExtrudedSolid.icc @@ -29,12 +29,12 @@ inline G4int G4ExtrudedSolid::GetNofVertices() const { - return fNv; + return (G4int)fNv; } inline G4TwoVector G4ExtrudedSolid::GetVertex(G4int index) const { - if ( index<0 || index >= fNv ) + if ( index<0 || index >= (G4int)fNv ) { G4Exception ("G4ExtrudedSolid::GetVertex()", "GeomSolids0003", FatalException, "Index outside range."); @@ -52,13 +52,13 @@ std::vector G4ExtrudedSolid::GetPolygon() const inline G4int G4ExtrudedSolid::GetNofZSections() const { - return fNz; + return (G4int)fNz; } inline G4ExtrudedSolid::ZSection G4ExtrudedSolid::GetZSection(G4int index) const { - if ( index<0 || index >= fNz ) + if ( index<0 || index >= (G4int)fNz ) { G4Exception ("G4ExtrudedSolid::GetZSection()", "GeomSolids0003", FatalException, "Index outside range."); @@ -78,7 +78,7 @@ G4bool G4ExtrudedSolid::PointInPolygon(const G4ThreeVector& p) const { G4bool in = 0; G4int icur = (fPolygon[fNv-1].y() > p.y()), iprev = 0; - for (G4int i = 0; i < fNv; ++i) + for (std::size_t i = 0; i < fNv; ++i) { iprev = icur; if ((icur = (fPolygon[i].y() > p.y())) != iprev) @@ -93,7 +93,7 @@ inline G4double G4ExtrudedSolid::DistanceToPolygonSqr(const G4ThreeVector& p) const { G4double dd = DBL_MAX; - for (G4int i=0, k=fNv-1; ioperator()(axis); - for( G4int i=1; ioperator()(axis); - for( G4int i=1; i max) @@ -205,7 +209,7 @@ G4bool G4ClippablePolygon::InFrontOf( const G4ClippablePolygon& other, // // If things are empty, do something semi-sensible // - G4int noLeft = vertices.size(); + std::size_t noLeft = vertices.size(); if (noLeft==0) return false; if (other.Empty()) return true; @@ -269,7 +273,7 @@ G4bool G4ClippablePolygon::BehindOf( const G4ClippablePolygon& other, // // If things are empty, do something semi-sensible // - G4int noLeft = vertices.size(); + std::size_t noLeft = vertices.size(); if (noLeft==0) return false; if (other.Empty()) return true; @@ -334,7 +338,7 @@ G4bool G4ClippablePolygon::GetPlanerExtent( const G4ThreeVector& pointOnPlane, // // Okay, how many entries do we have? // - G4int noLeft = vertices.size(); + std::size_t noLeft = vertices.size(); // // Return false if nothing is left @@ -349,7 +353,7 @@ G4bool G4ClippablePolygon::GetPlanerExtent( const G4ThreeVector& pointOnPlane, // // Compare to the rest // - for( G4int i=1; i zsections[i+1].fZ ) { @@ -124,13 +124,13 @@ G4ExtrudedSolid::G4ExtrudedSolid( const G4String& pName, 2*kCarTolerance); if (removedVertices.size() != 0) { - G4int nremoved = removedVertices.size(); + std::size_t nremoved = removedVertices.size(); std::ostringstream message; message << "The following "<< nremoved << " vertices have been removed from polygon in " << pName << "\nas collinear or coincident with other vertices: " << removedVertices[0]; - for (G4int i=1; i fZSections[iz+1].fZ && iz < fNz-2 ) { ++iz; } // Loop checking, 13.08.2015, G.Cosmo @@ -607,9 +607,9 @@ G4ExtrudedSolid::MakeUpFacet(G4int ind1, G4int ind2, G4int ind3) const // forming the upper side ( z>0 ) std::vector vertices; - vertices.push_back(GetVertex(fNz-1, ind1)); - vertices.push_back(GetVertex(fNz-1, ind2)); - vertices.push_back(GetVertex(fNz-1, ind3)); + vertices.push_back(GetVertex((G4int)fNz-1, ind1)); + vertices.push_back(GetVertex((G4int)fNz-1, ind2)); + vertices.push_back(GetVertex((G4int)fNz-1, ind3)); // first vertex most left // @@ -646,7 +646,7 @@ G4bool G4ExtrudedSolid::AddGeneralPolygonFacets() // Fill one more vector // std::vector< Vertex > verticesToBeDone; - for ( G4int i=0; i= (pi-kAngTolerance) ) // Loop checking, 13.08.2015, G.Cosmo { // G4cout << "Skipping concave vertex " << c2->second << G4endl; @@ -692,7 +692,7 @@ G4bool G4ExtrudedSolid::AddGeneralPolygonFacets() ++counter; - if ( counter > fNv) + if ( counter > fNv ) { G4Exception("G4ExtrudedSolid::AddGeneralPolygonFacets", "GeomSolids0003", FatalException, @@ -772,9 +772,9 @@ G4bool G4ExtrudedSolid::MakeFacets() GetVertex(0, 2), ABSOLUTE) ); if ( ! good ) { return false; } - good = AddFacet( new G4TriangularFacet( GetVertex(fNz-1, 2), - GetVertex(fNz-1, 1), - GetVertex(fNz-1, 0), + good = AddFacet( new G4TriangularFacet( GetVertex((G4int)fNz-1, 2), + GetVertex((G4int)fNz-1, 1), + GetVertex((G4int)fNz-1, 0), ABSOLUTE) ); if ( ! good ) { return false; } @@ -792,10 +792,10 @@ G4bool G4ExtrudedSolid::MakeFacets() ABSOLUTE) ); if ( ! good ) { return false; } - good = AddFacet( new G4QuadrangularFacet( GetVertex(fNz-1, 3), - GetVertex(fNz-1, 2), - GetVertex(fNz-1, 1), - GetVertex(fNz-1, 0), + good = AddFacet( new G4QuadrangularFacet( GetVertex((G4int)fNz-1, 3), + GetVertex((G4int)fNz-1, 2), + GetVertex((G4int)fNz-1, 1), + GetVertex((G4int)fNz-1, 0), ABSOLUTE) ); if ( ! good ) { return false; } @@ -819,9 +819,9 @@ G4bool G4ExtrudedSolid::MakeFacets() // The quadrangular sides // - for ( G4int iz = 0; iz < fNz-1; ++iz ) + for ( G4int iz = 0; iz < (G4int)fNz-1; ++iz ) { - for ( G4int i = 0; i < fNv; ++i ) + for ( G4int i = 0; i < (G4int)fNv; ++i ) { G4int j = (i+1) % fNv; good = AddFacet( new G4QuadrangularFacet @@ -863,8 +863,8 @@ EInside G4ExtrudedSolid::Inside(const G4ThreeVector &p) const G4double dist = std::max(fZSections[0].fZ-p.z(),p.z()-fZSections[1].fZ); if (dist > kCarToleranceHalf) { return kOutside; } - G4int np = fPlanes.size(); - for (G4int i=0; i dist) { dist = dd; } @@ -915,7 +915,7 @@ EInside G4ExtrudedSolid::Inside(const G4ThreeVector &p) const // Check if on surface of polygon // - for ( G4int i=0; i kCarToleranceHalf) continue; @@ -1001,7 +1001,7 @@ G4ThreeVector G4ExtrudedSolid::SurfaceNormal(const G4ThreeVector& p) const } G4double sqrCarToleranceHalf = kCarToleranceHalf*kCarToleranceHalf; - for (G4int i=0, k=fNv-1; i dist) dist = dd; @@ -1292,8 +1292,8 @@ G4double G4ExtrudedSolid::DistanceToOut (const G4ThreeVector &p, // Intersection with lateral planes // - G4int np = fPlanes.size(); - for (G4int i=0; i 0) @@ -1305,7 +1305,7 @@ G4double G4ExtrudedSolid::DistanceToOut (const G4ThreeVector &p, return 0; } G4double tmp = -dist/cosa; - if (tmax > tmp) { tmax = tmp; iside = i; } + if (tmax > tmp) { tmax = tmp; iside = (G4int)i; } } } @@ -1344,8 +1344,8 @@ G4double G4ExtrudedSolid::DistanceToOut(const G4ThreeVector& p) const case 1: // convex right prism { G4double dist = std::max(fZSections[0].fZ-p.z(),p.z()-fZSections[1].fZ); - G4int np = fPlanes.size(); - for (G4int i=0; i dist) dist = dd; @@ -1474,7 +1474,7 @@ G4ExtrudedSolid::CalculateExtent(const EAxis pAxis, // main loop along triangles pMin = kInfinity; pMax = -kInfinity; - G4int ntria = triangles.size()/3; + G4int ntria = (G4int)triangles.size()/3; for (G4int i=0; i& vertices) const std::vector oldVertices(vertices); - for ( size_t i=0; iGetCircumcentre(); G4VertexInfo value; - value.id = fFacetList.size(); + value.id = (G4int)fFacetList.size(); value.mag2 = p.x() + p.y() + p.z(); G4bool found = false; @@ -284,7 +284,6 @@ G4int G4TessellatedSolid::SetAllUsingStack(const std::vector& voxel, stack > pos; pos.push(xyz); G4int filled = 0; - G4int cc = 0, nz = 0; vector candidates; @@ -296,7 +295,6 @@ G4int G4TessellatedSolid::SetAllUsingStack(const std::vector& voxel, if (!checked[index]) { checked.SetBitNumber(index, true); - ++cc; if (fVoxels.IsEmpty(index)) { @@ -321,10 +319,6 @@ G4int G4TessellatedSolid::SetAllUsingStack(const std::vector& voxel, } } } - else - { - ++nz; - } } } return filled; @@ -335,7 +329,8 @@ G4int G4TessellatedSolid::SetAllUsingStack(const std::vector& voxel, void G4TessellatedSolid::PrecalculateInsides() { vector voxel(3), maxVoxels(3); - for (auto i = 0; i <= 2; ++i) maxVoxels[i] = fVoxels.GetBoundary(i).size(); + for (auto i = 0; i <= 2; ++i) + maxVoxels[i] = (G4int)fVoxels.GetBoundary(i).size(); G4int size = maxVoxels[0] * maxVoxels[1] * maxVoxels[2]; G4SurfBits checked(size-1); @@ -398,9 +393,9 @@ void G4TessellatedSolid::Voxelize () void G4TessellatedSolid::SetExtremeFacets() { // Copy vertices to local array - G4int vsize = fVertexList.size(); + std::size_t vsize = fVertexList.size(); std::vector vertices(vsize); - for (G4int i = 0; i < vsize; ++i) { vertices[i] = fVertexList[i]; } + for (std::size_t i = 0; i < vsize; ++i) { vertices[i] = fVertexList[i]; } // Shuffle vertices std::mt19937 gen(12345678); @@ -409,7 +404,7 @@ void G4TessellatedSolid::SetExtremeFacets() // Select six extreme vertices in different directions G4ThreeVector points[6]; for (G4int i=0; i < 6; ++i) { points[i] = vertices[0]; } - for (G4int i=1; i < vsize; ++i) + for (std::size_t i=1; i < vsize; ++i) { if (vertices[i].x() < points[0].x()) points[0] = vertices[i]; if (vertices[i].x() > points[1].x()) points[1] = vertices[i]; @@ -420,8 +415,8 @@ void G4TessellatedSolid::SetExtremeFacets() } // Find extreme facets - G4int size = fFacets.size(); - for (G4int j = 0; j < size; ++j) + std::size_t size = fFacets.size(); + for (std::size_t j = 0; j < size; ++j) { G4VFacet &facet = *fFacets[j]; @@ -435,7 +430,7 @@ void G4TessellatedSolid::SetExtremeFacets() // Check vertices G4bool isExtreme = true; - for (G4int i=0; i < vsize; ++i) + for (std::size_t i=0; i < vsize; ++i) { if (!facet.IsInside(vertices[i])) { @@ -468,13 +463,13 @@ void G4TessellatedSolid::CreateVertexList() G4VertexInfo value; fVertexList.clear(); - G4int size = fFacets.size(); + std::size_t size = fFacets.size(); G4double kCarTolerance24 = kCarTolerance * kCarTolerance / 4.0; G4double kCarTolerance3 = 3 * kCarTolerance; vector newIndex(100); - for (G4int k = 0; k < size; ++k) + for (std::size_t k = 0; k < size; ++k) { G4VFacet &facet = *fFacets[k]; G4int max = facet.GetNumberOfVertices(); @@ -482,7 +477,7 @@ void G4TessellatedSolid::CreateVertexList() for (G4int i = 0; i < max; ++i) { p = facet.GetVertex(i); - value.id = fVertexList.size(); + value.id = (G4int)fVertexList.size(); value.mag2 = p.x() + p.y() + p.z(); G4bool found = false; @@ -500,7 +495,7 @@ void G4TessellatedSolid::CreateVertexList() if (found) break; dif = q.x() + q.y() + q.z() - value.mag2; if (dif > kCarTolerance3) break; - it++; + ++it; } if (!found && (fVertexList.size() > 1)) @@ -676,12 +671,12 @@ G4bool G4TessellatedSolid::GetSolidClosed () const G4int G4TessellatedSolid::CheckStructure() const { G4int nedge = 0; - G4int nface = fFacets.size(); + std::size_t nface = fFacets.size(); // Calculate volume // G4double volume = 0.; - for (G4int i = 0; i < nface; ++i) + for (std::size_t i = 0; i < nface; ++i) { G4VFacet& facet = *fFacets[i]; nedge += facet.GetNumberOfVertices(); @@ -693,7 +688,7 @@ G4int G4TessellatedSolid::CheckStructure() const // std::vector iedge(nedge); G4int kk = 0; - for (G4int i = 0; i < nface; ++i) + for (std::size_t i = 0; i < nface; ++i) { G4VFacet& facet = *fFacets[i]; G4int nnode = facet.GetNumberOfVertices(); @@ -759,7 +754,7 @@ G4TessellatedSolid::operator+=(const G4TessellatedSolid& right) // G4int G4TessellatedSolid::GetNumberOfFacets() const { - return fFacets.size(); + return (G4int)fFacets.size(); } /////////////////////////////////////////////////////////////////////////////// @@ -780,7 +775,7 @@ EInside G4TessellatedSolid::InsideVoxels(const G4ThreeVector& p) const const vector &startingCandidates = fVoxels.GetCandidates(startingVoxel); - G4int limit = startingCandidates.size(); + std::size_t limit = startingCandidates.size(); if (limit == 0 && fInsides.GetNbits()) { G4int index = fVoxels.GetPointIndex(p); @@ -790,7 +785,7 @@ EInside G4TessellatedSolid::InsideVoxels(const G4ThreeVector& p) const G4double minDist = kInfinity; - for(G4int i = 0; i < limit; ++i) + for(std::size_t i = 0; i < limit; ++i) { G4int candidate = startingCandidates[i]; G4VFacet &facet = *fFacets[candidate]; @@ -854,7 +849,7 @@ EInside G4TessellatedSolid::InsideVoxels(const G4ThreeVector& p) const const vector &candidates = started ? startingCandidates : fVoxels.GetCandidates(curVoxel); started = false; - if (G4int candidatesCount = candidates.size()) + if (G4int candidatesCount = (G4int)candidates.size()) { for (G4int i = 0 ; i < candidatesCount; ++i) { @@ -918,7 +913,7 @@ EInside G4TessellatedSolid::InsideVoxels(const G4ThreeVector& p) const // something wrong with geometry. // std::ostringstream message; - G4int oldprc = message.precision(16); + G4long oldprc = message.precision(16); message << "Cannot determine whether point is inside or outside volume!" << G4endl << "Solid name = " << GetName() << G4endl @@ -970,8 +965,8 @@ EInside G4TessellatedSolid::InsideNoVoxels (const G4ThreeVector &p) const // // Check if we are close to a surface // - G4int size = fFacets.size(); - for (G4int i = 0; i < size; ++i) + std::size_t size = fFacets.size(); + for (std::size_t i = 0; i < size; ++i) { G4VFacet& facet = *fFacets[i]; G4double dist = facet.Distance(p,minDist); @@ -1025,7 +1020,7 @@ EInside G4TessellatedSolid::InsideNoVoxels (const G4ThreeVector &p) const distOut = distIn = kInfinity; G4ThreeVector v = fRandir[sm]; sm++; - vector::const_iterator f = fFacets.begin(); + vector::const_iterator f = fFacets.cbegin(); do // Loop checking, 13.08.2015, G.Cosmo { @@ -1046,7 +1041,7 @@ EInside G4TessellatedSolid::InsideNoVoxels (const G4ThreeVector &p) const if (crossingI && distI > 0.0 && distI < distIn) distIn = distI; } } - } while (!nearParallel && ++f != fFacets.end()); + } while (!nearParallel && ++f != fFacets.cend()); } while (nearParallel && sm != fMaxTries); #ifdef G4VERBOSE @@ -1058,7 +1053,7 @@ EInside G4TessellatedSolid::InsideNoVoxels (const G4ThreeVector &p) const // that there is something wrong with geometry. // std::ostringstream message; - G4int oldprc = message.precision(16); + G4long oldprc = message.precision(16); message << "Cannot determine whether point is inside or outside volume!" << G4endl << "Solid name = " << GetName() << G4endl @@ -1110,7 +1105,7 @@ G4int G4TessellatedSolid::GetFacetIndex (const G4ThreeVector& p) const vector curVoxel(3); fVoxels.GetVoxel(curVoxel, p); const vector &candidates = fVoxels.GetCandidates(curVoxel); - if (G4int limit = candidates.size()) + if (G4int limit = (G4int)candidates.size()) { G4double minDist = kInfinity; for(G4int i = 0 ; i < limit ; ++i) @@ -1130,15 +1125,15 @@ G4int G4TessellatedSolid::GetFacetIndex (const G4ThreeVector& p) const else { G4double minDist = kInfinity; - G4int size = fFacets.size(); - for (G4int i = 0; i < size; ++i) + std::size_t size = fFacets.size(); + for (std::size_t i = 0; i < size; ++i) { G4VFacet& facet = *fFacets[i]; G4double dist = facet.Distance(p, minDist); if (dist < minDist) { minDist = dist; - index = i; + index = (G4int)i; } } } @@ -1163,7 +1158,7 @@ G4bool G4TessellatedSolid::Normal (const G4ThreeVector& p, const vector &candidates = fVoxels.GetCandidates(curVoxel); // fVoxels.GetCandidatesVoxelArray(p, candidates, 0); - if (G4int limit = candidates.size()) + if (G4int limit = (G4int)candidates.size()) { minDist = kInfinity; for(G4int i = 0 ; i < limit ; ++i) @@ -1184,8 +1179,8 @@ G4bool G4TessellatedSolid::Normal (const G4ThreeVector& p, else { minDist = kInfinity; - G4int size = fFacets.size(); - for (G4int i = 0; i < size; ++i) + std::size_t size = fFacets.size(); + for (std::size_t i = 0; i < size; ++i) { G4VFacet& f = *fFacets[i]; G4double dist = f.Distance(p, minDist); @@ -1255,8 +1250,8 @@ G4TessellatedSolid::DistanceToInNoVoxels (const G4ThreeVector& p, } #endif - G4int size = fFacets.size(); - for (G4int i = 0; i < size; ++i) + std::size_t size = fFacets.size(); + for (std::size_t i = 0; i < size; ++i) { G4VFacet& facet = *fFacets[i]; if (facet.Intersect(p,v,false,dist,distFromSurface,normal)) @@ -1324,8 +1319,8 @@ G4TessellatedSolid::DistanceToOutNoVoxels (const G4ThreeVector& p, #endif G4bool isExtreme = false; - G4int size = fFacets.size(); - for (G4int i = 0; i < size; ++i) + std::size_t size = fFacets.size(); + for (std::size_t i = 0; i < size; ++i) { G4VFacet& facet = *fFacets[i]; if (facet.Intersect(p,v,true,dist,distFromSurface,normal)) @@ -1372,7 +1367,7 @@ DistanceToOutCandidates(const std::vector& candidates, G4double& minDist, G4ThreeVector& minNormal, G4int& minCandidate ) const { - G4int candidatesCount = candidates.size(); + G4int candidatesCount = (G4int)candidates.size(); G4double dist = 0.0; G4double distFromSurface = 0.0; G4ThreeVector normal; @@ -1483,7 +1478,7 @@ DistanceToInCandidates(const std::vector& candidates, const G4ThreeVector& aPoint, const G4ThreeVector& direction) const { - G4int candidatesCount = candidates.size(); + G4int candidatesCount = (G4int)candidates.size(); G4double dist = 0.0; G4double distFromSurface = 0.0; G4ThreeVector normal; @@ -1622,7 +1617,7 @@ G4TessellatedSolid::MinDistanceFacet(const G4ThreeVector& p, if (dist > minDist) break; const vector& candidates = fVoxels.GetVoxelBoxCandidates(inf.first); - G4int csize = candidates.size(); + G4int csize = (G4int)candidates.size(); for (G4int j = 0; j < csize; ++j) { G4int candidate = candidates[j]; @@ -1686,8 +1681,8 @@ G4double G4TessellatedSolid::SafetyFromOutside (const G4ThreeVector& p, else { minDist = kInfinity; - G4int size = fFacets.size(); - for (G4int i = 0; i < size; ++i) + std::size_t size = fFacets.size(); + for (std::size_t i = 0; i < size; ++i) { G4VFacet& facet = *fFacets[i]; G4double dist = facet.Distance(p,minDist); @@ -1732,8 +1727,8 @@ G4TessellatedSolid::SafetyFromInside (const G4ThreeVector& p, G4bool) const { minDist = kInfinity; G4double dist = 0.0; - G4int size = fFacets.size(); - for (G4int i = 0; i < size; ++i) + std::size_t size = fFacets.size(); + for (std::size_t i = 0; i < size; ++i) { G4VFacet& facet = *fFacets[i]; dist = facet.Distance(p,minDist); @@ -1763,8 +1758,8 @@ std::ostream &G4TessellatedSolid::StreamInfo(std::ostream &os) const os << "Geometry Type = " << fGeometryType << G4endl; os << "Number of facets = " << fFacets.size() << G4endl; - G4int size = fFacets.size(); - for (G4int i = 0; i < size; ++i) + std::size_t size = fFacets.size(); + for (std::size_t i = 0; i < size; ++i) { os << "FACET # = " << i + 1 << G4endl; G4VFacet &facet = *fFacets[i]; @@ -1926,21 +1921,21 @@ void G4TessellatedSolid::DescribeYourselfTo (G4VGraphicsScene& scene) const // G4Polyhedron* G4TessellatedSolid::CreatePolyhedron () const { - G4int nVertices = fVertexList.size(); - G4int nFacets = fFacets.size(); + G4int nVertices = (G4int)fVertexList.size(); + G4int nFacets = (G4int)fFacets.size(); G4Polyhedron* polyhedron = new G4Polyhedron(nVertices, nFacets); - for (G4int i = 0; i < nVertices; ++i) + for (auto i = 0; i < nVertices; ++i) { polyhedron->SetVertex(i+1, fVertexList[i]); } - for (G4int i = 0; i < nFacets; ++i) + for (auto i = 0; i < nFacets; ++i) { G4VFacet* facet = fFacets[i]; G4int v[4] = {0}; G4int n = facet->GetNumberOfVertices(); if (n > 4) n = 4; - for (G4int j = 0; j < n; ++j) + for (auto j = 0; j < n; ++j) { v[j] = facet->GetVertexIndex(j) + 1; } @@ -2123,8 +2118,8 @@ G4double G4TessellatedSolid::GetCubicVolume () // https://en.wikipedia.org/wiki/Polyhedron#Volume // http://wwwf.imperial.ac.uk/~rn/centroid.pdf - G4int size = fFacets.size(); - for (G4int i = 0; i < size; ++i) + std::size_t size = fFacets.size(); + for (std::size_t i = 0; i < size; ++i) { G4VFacet &facet = *fFacets[i]; G4double area = facet.GetArea(); @@ -2141,8 +2136,8 @@ G4double G4TessellatedSolid::GetSurfaceArea () { if (fSurfaceArea != 0.) return fSurfaceArea; - G4int size = fFacets.size(); - for (G4int i = 0; i < size; ++i) + std::size_t size = fFacets.size(); + for (std::size_t i = 0; i < size; ++i) { G4VFacet &facet = *fFacets[i]; fSurfaceArea += facet.GetArea(); @@ -2224,8 +2219,8 @@ G4int G4TessellatedSolid::AllocatedMemoryWithoutVoxels() base += fVertexList.capacity() * sizeof(G4ThreeVector); base += fRandir.capacity() * sizeof(G4ThreeVector); - G4int limit = fFacets.size(); - for (G4int i = 0; i < limit; ++i) + std::size_t limit = fFacets.size(); + for (std::size_t i = 0; i < limit; ++i) { G4VFacet& facet = *fFacets[i]; base += facet.AllocatedMemory(); diff --git a/source/geometry/solids/specific/src/G4Tet.cc b/source/geometry/solids/specific/src/G4Tet.cc index 54cedcbf95..19d9a773a9 100644 --- a/source/geometry/solids/specific/src/G4Tet.cc +++ b/source/geometry/solids/specific/src/G4Tet.cc @@ -447,7 +447,7 @@ G4ThreeVector G4Tet::SurfaceNormal( const G4ThreeVector& p) const { #ifdef G4SPECSDEBUG std::ostringstream message; - G4int oldprc = message.precision(16); + G4long oldprc = message.precision(16); message << "Point p is not on surface (!?) of solid: " << GetName() << "\n"; message << "Position:\n"; @@ -602,7 +602,7 @@ G4VSolid* G4Tet::Clone() const // std::ostream& G4Tet::StreamInfo(std::ostream& os) const { - G4int oldprc = os.precision(16); + G4long oldprc = os.precision(16); os << "-----------------------------------------------------------\n" << " *** Dump for solid - " << GetName() << " ***\n" << " ===================================================\n" diff --git a/source/geometry/solids/specific/src/G4TriangularFacet.cc b/source/geometry/solids/specific/src/G4TriangularFacet.cc index 5151a3ed1b..251d4d49a9 100644 --- a/source/geometry/solids/specific/src/G4TriangularFacet.cc +++ b/source/geometry/solids/specific/src/G4TriangularFacet.cc @@ -184,17 +184,17 @@ void G4TriangularFacet::CopyFrom (const G4TriangularFacet& rhs) // void G4TriangularFacet::MoveFrom (G4TriangularFacet& rhs) { - fSurfaceNormal = move(rhs.fSurfaceNormal); - fArea = move(rhs.fArea); - fCircumcentre = move(rhs.fCircumcentre); - fRadius = move(rhs.fRadius); - fIndices = move(rhs.fIndices); - fA = move(rhs.fA); fB = move(rhs.fB); fC = move(rhs.fC); - fDet = move(rhs.fDet); - fSqrDist = move(rhs.fSqrDist); - fE1 = move(rhs.fE1); fE2 = move(rhs.fE2); - fIsDefined = move(rhs.fIsDefined); - fVertices = move(rhs.fVertices); + fSurfaceNormal = std::move(rhs.fSurfaceNormal); + fArea = std::move(rhs.fArea); + fCircumcentre = std::move(rhs.fCircumcentre); + fRadius = std::move(rhs.fRadius); + fIndices = std::move(rhs.fIndices); + fA = std::move(rhs.fA); fB = std::move(rhs.fB); fC = std::move(rhs.fC); + fDet = std::move(rhs.fDet); + fSqrDist = std::move(rhs.fSqrDist); + fE1 = std::move(rhs.fE1); fE2 = std::move(rhs.fE2); + fIsDefined = std::move(rhs.fIsDefined); + fVertices = std::move(rhs.fVertices); rhs.fVertices = nullptr; } diff --git a/source/geometry/solids/specific/src/G4TwistBoxSide.cc b/source/geometry/solids/specific/src/G4TwistBoxSide.cc index e1589d5363..05d2e51f42 100644 --- a/source/geometry/solids/specific/src/G4TwistBoxSide.cc +++ b/source/geometry/solids/specific/src/G4TwistBoxSide.cc @@ -360,7 +360,7 @@ G4int G4TwistBoxSide::DistanceToSurface(const G4ThreeVector& gp, } // end general case - nxx = xbuf.size() ; // save the number of solutions + nxx = (G4int)xbuf.size() ; // save the number of solutions G4ThreeVector xxonsurface ; // point on surface G4ThreeVector surfacenormal ; // normal vector @@ -371,7 +371,7 @@ G4int G4TwistBoxSide::DistanceToSurface(const G4ThreeVector& gp, G4int maxint = 30 ; // number of iterations - for ( size_t k = 0 ; k* afacet = Base_t::GetFacet(i); std::vector v; @@ -255,8 +255,8 @@ G4int G4UTessellatedSolid::AllocatedMemoryWithoutVoxels() G4int base = sizeof(*this); base += fVertexList.capacity() * sizeof(G4ThreeVector); - G4int limit = fFacets.size(); - for (G4int i = 0; i < limit; ++i) + std::size_t limit = fFacets.size(); + for (std::size_t i = 0; i < limit; ++i) { G4VFacet &facet = *fFacets[i]; base += facet.AllocatedMemory(); @@ -379,19 +379,19 @@ G4UTessellatedSolid::CalculateExtent(const EAxis pAxis, // G4Polyhedron* G4UTessellatedSolid::CreatePolyhedron () const { - G4int nVertices = fVertexList.size(); - G4int nFacets = fFacets.size(); + G4int nVertices = (G4int)fVertexList.size(); + G4int nFacets = (G4int)fFacets.size(); G4Polyhedron* polyhedron = new G4Polyhedron(nVertices, nFacets); - for (G4int i = 0; i < nVertices; ++i) + for (auto i = 0; i < nVertices; ++i) { polyhedron->SetVertex(i+1, fVertexList[i]); } - for (G4int i = 0; i < nFacets; ++i) + for (auto i = 0; i < nFacets; ++i) { G4int v[3]; // Only facets with 3 vertices are defined in VecGeom G4VFacet* facet = GetFacet(i); - for (G4int j = 0; j < 3; ++j) // Retrieve indexing directly from VecGeom + for (auto j = 0; j < 3; ++j) // Retrieve indexing directly from VecGeom { v[j] = facet->GetVertexIndex(j) + 1; } diff --git a/source/geometry/solids/specific/src/G4VTwistedFaceted.cc b/source/geometry/solids/specific/src/G4VTwistedFaceted.cc index 75874d520f..d75e93231e 100644 --- a/source/geometry/solids/specific/src/G4VTwistedFaceted.cc +++ b/source/geometry/solids/specific/src/G4VTwistedFaceted.cc @@ -886,7 +886,7 @@ std::ostream& G4VTwistedFaceted::StreamInfo(std::ostream& os) const // // Stream object contents to an output stream // - G4int oldprc = os.precision(16); + G4long oldprc = os.precision(16); os << "-----------------------------------------------------------\n" << " *** Dump for solid - " << GetName() << " ***\n" << " ===================================================\n" diff --git a/source/geometry/solids/specific/src/G4Voxelizer.cc b/source/geometry/solids/specific/src/G4Voxelizer.cc index 7e38a6a81e..c2f241923a 100644 --- a/source/geometry/solids/specific/src/G4Voxelizer.cc +++ b/source/geometry/solids/specific/src/G4Voxelizer.cc @@ -78,7 +78,7 @@ void G4Voxelizer::BuildEmpty() std::vector xyz(3), max(3), candidates(fTotalCandidates); const std::vector empty(0); - for (auto i = 0; i <= 2; ++i) max[i] = fBoundaries[i].size(); + for (auto i = 0; i <= 2; ++i) max[i] = (G4int)fBoundaries[i].size(); unsigned int size = max[0] * max[1] * max[2]; fEmpty.Clear(); @@ -121,17 +121,17 @@ void G4Voxelizer::BuildVoxelLimits(std::vector& solids, // These quantities are stored in the array "fBoxes" (6 different values per // node // - if (G4int numNodes = solids.size()) // Number of nodes in "multiUnion" + if (std::size_t numNodes = solids.size()) // Number of nodes in "multiUnion" { fBoxes.resize(numNodes); // Array which will store the half lengths - fNPerSlice = 1 + (fBoxes.size() - 1) / (8 * sizeof(unsigned int)); + fNPerSlice = G4int(1 + (fBoxes.size() - 1) / (8 * sizeof(unsigned int))); // related to a particular node, but also // the coordinates of its origin G4ThreeVector toleranceVector(fTolerance,fTolerance,fTolerance); - for (G4int i = 0; i < numNodes; ++i) + for (std::size_t i = 0; i < numNodes; ++i) { G4VSolid& solid = *solids[i]; G4Transform3D transform = transforms[i]; @@ -156,7 +156,7 @@ void G4Voxelizer::BuildVoxelLimits(std::vector& solids, fBoxes[i].hlen = (max - min) / 2.; fBoxes[i].pos = (max + min) / 2.; } - fTotalCandidates = fBoxes.size(); + fTotalCandidates = (G4int)fBoxes.size(); } } @@ -168,14 +168,14 @@ void G4Voxelizer::BuildVoxelLimits(std::vector& facets) // These quantities are stored in the array "fBoxes" (6 different values per // node. - if (G4int numNodes = facets.size()) // Number of nodes + if (std::size_t numNodes = facets.size()) // Number of nodes { fBoxes.resize(numNodes); // Array which will store the half lengths - fNPerSlice = 1+(fBoxes.size()-1)/(8*sizeof(unsigned int)); + fNPerSlice = G4int(1+(fBoxes.size()-1)/(8*sizeof(unsigned int))); G4ThreeVector toleranceVector(10*fTolerance, 10*fTolerance, 10*fTolerance); - for (G4int i = 0; i < numNodes; ++i) + for (std::size_t i = 0; i < numNodes; ++i) { G4VFacet &facet = *facets[i]; G4ThreeVector min, max; @@ -189,7 +189,7 @@ void G4Voxelizer::BuildVoxelLimits(std::vector& facets) fBoxes[i].hlen = hlen; fBoxes[i].pos = min + hlen; } - fTotalCandidates = fBoxes.size(); + fTotalCandidates = (G4int)fBoxes.size(); } } @@ -198,9 +198,9 @@ void G4Voxelizer::DisplayVoxelLimits() const { // "DisplayVoxelLimits" displays the dX, dY, dZ, pX, pY and pZ for each node - G4int numNodes = fBoxes.size(); - G4int oldprec = G4cout.precision(16); - for(G4int i = 0; i < numNodes; ++i) + std::size_t numNodes = fBoxes.size(); + G4long oldprec = G4cout.precision(16); + for(std::size_t i = 0; i < numNodes; ++i) { G4cout << setw(10) << setiosflags(ios::fixed) << " -> Node " << i+1 << ":\n" << @@ -218,11 +218,11 @@ void G4Voxelizer::CreateSortedBoundary(std::vector& boundary, // bounding fBoxes, along each axis. The created boundaries are stored // in the array "boundariesRaw" - G4int numNodes = fBoxes.size(); // Number of nodes in structure + std::size_t numNodes = fBoxes.size(); // Number of nodes in structure // Determination of the boundaries along x, y and z axis // - for(G4int i = 0 ; i < numNodes; ++i) + for(std::size_t i = 0 ; i < numNodes; ++i) { // For each node, the boundaries are created by using the array "fBoxes" // built in method "BuildVoxelLimits" @@ -253,33 +253,28 @@ void G4Voxelizer::BuildBoundaries() // are precise thanks to variables: boundariesCountX, boundariesCountY and // boundariesCountZ. - if (G4int numNodes = fBoxes.size()) + if (std::size_t numNodes = fBoxes.size()) { const G4double tolerance = fTolerance / 100.0; // Minimal distance to discriminate two boundaries. std::vector sortedBoundary(2*numNodes); - G4int considered; - for (auto j = 0; j <= 2; ++j) { CreateSortedBoundary(sortedBoundary, j); std::vector &boundary = fBoundaries[j]; boundary.clear(); - considered = 0; - - for(G4int i = 0 ; i < 2*numNodes; ++i) + for(std::size_t i = 0 ; i < 2*numNodes; ++i) { G4double newBoundary = sortedBoundary[i]; #ifdef G4SPECSDEBUG if (j == 0) G4cout << "Examining " << newBoundary << "..." << G4endl; #endif - G4int size = boundary.size(); + G4int size = (G4int)boundary.size(); if(!size || std::abs(boundary[size-1] - newBoundary) > tolerance) { - considered++; { #ifdef G4SPECSDEBUG if (j == 0) G4cout << "Adding boundary " << newBoundary << "..." @@ -293,7 +288,7 @@ void G4Voxelizer::BuildBoundaries() // only the first one is considered } - G4int n = boundary.size(); + G4int n = (G4int)boundary.size(); G4int max = 100000; if (n > max/2) { @@ -303,7 +298,7 @@ void G4Voxelizer::BuildBoundaries() for (G4int i = 0; i < n; ++i) { // 50 ok for 2k, 1000, 2000 - G4int size = boundary.size(); + G4int size = (G4int)boundary.size(); if (i % skip == 0 || i == 0 || i == size - 1) { // this condition of merging boundaries was wrong, @@ -336,9 +331,9 @@ void G4Voxelizer::DisplayBoundaries(std::vector &boundaries) { // Prints the positions of the boundaries of the slices on the three axes - G4int count = boundaries.size(); - G4int oldprec = G4cout.precision(16); - for(G4int i = 0; i < count; ++i) + std::size_t count = boundaries.size(); + G4long oldprec = G4cout.precision(16); + for(std::size_t i = 0; i < count; ++i) { G4cout << setw(10) << setiosflags(ios::fixed) << boundaries[i]; if(i != count-1) G4cout << "-> "; @@ -354,14 +349,13 @@ void G4Voxelizer::BuildBitmasks(std::vector boundaries[], // "BuildListNodes" stores in the bitmasks solids present in each slice // along an axis. - G4int numNodes = fBoxes.size(); + std::size_t numNodes = fBoxes.size(); G4int bitsPerSlice = GetBitsPerSlice(); for (auto k = 0; k < 3; ++k) { - G4int total = 0; std::vector& boundary = boundaries[k]; - G4int voxelsCount = boundary.size() - 1; + G4int voxelsCount = (G4int)boundary.size() - 1; G4SurfBits& bitmask = bitmasks[k]; if (!countsOnly) @@ -381,7 +375,7 @@ void G4Voxelizer::BuildBitmasks(std::vector boundaries[], // Loop on the nodes, number of slices per axis // - for(G4int j = 0 ; j < numNodes; ++j) + for(std::size_t j = 0 ; j < numNodes; ++j) { // Determination of the minimum and maximum position along x // of the bounding boxe of each node @@ -398,10 +392,9 @@ void G4Voxelizer::BuildBitmasks(std::vector boundaries[], { if (!countsOnly) { - bitmask.SetBitNumber(i*bitsPerSlice+j); + bitmask.SetBitNumber(i*bitsPerSlice+(G4int)j); } candidatesCount[i]++; - ++total; ++i; } while (max > boundary[i] && i < voxelsCount); @@ -418,9 +411,9 @@ G4String G4Voxelizer::GetCandidatesAsString(const G4SurfBits& bits) const // Decodes the candidates in mask as G4String. stringstream ss; - G4int numNodes = fBoxes.size(); + G4int numNodes = (G4int)fBoxes.size(); - for(G4int i=0; i boundaries[], for (auto k = 0; k <= 2; ++k) { std::vector &candidatesCount = fCandidatesCounts[k]; - G4int max = candidatesCount.size(); + G4int max = (G4int)candidatesCount.size(); std::vector voxels(max); G4VoxelComparator comp(voxels); std::set voxelSet(comp); @@ -540,7 +533,7 @@ void G4Voxelizer::BuildReduceVoxels(std::vector boundaries[], if (reduction != 0) { G4int count = 0, currentCount; - while ((currentCount = voxelSet.size()) > 2) + while ((currentCount = (G4int)voxelSet.size()) > 2) { G4double currentRatio = 1 - (G4double) count / max; if ((currentRatio <= reduction) && (currentCount <= 1000)) @@ -586,10 +579,10 @@ void G4Voxelizer::BuildReduceVoxels(std::vector boundaries[], std::sort(mergings.begin(), mergings.end()); const std::vector& boundary = boundaries[k]; - int mergingsSize = mergings.size(); + G4int mergingsSize = (G4int)mergings.size(); vector reducedBoundary; G4int skip = mergings[0], i = 0; - max = boundary.size(); + max = (G4int)boundary.size(); for (G4int j = 0; j < max; ++j) { if (j != skip) @@ -673,7 +666,7 @@ void G4Voxelizer::BuildReduceVoxels2(std::vector boundaries[], for (auto k = 0; k <= 2; ++k) { std::vector &candidatesCount = fCandidatesCounts[k]; - G4int max = candidatesCount.size(); + G4int max = (G4int)candidatesCount.size(); G4int total = 0; for (G4int i = 0; i < max; ++i) total += candidatesCount[i]; @@ -732,7 +725,7 @@ void G4Voxelizer::CreateMiniVoxels(std::vector boundaries[], G4SurfBits bitmasks[]) { std::vector voxel(3), maxVoxels(3); - for (auto i = 0; i <= 2; ++i) maxVoxels[i] = boundaries[i].size(); + for (auto i = 0; i <= 2; ++i) maxVoxels[i] = (G4int)boundaries[i].size(); G4ThreeVector point; for (voxel[2] = 0; voxel[2] < maxVoxels[2] - 1; ++voxel[2]) @@ -769,12 +762,12 @@ void G4Voxelizer::Voxelize(std::vector& facets) G4int maxVoxels = fMaxVoxels; G4ThreeVector reductionRatio = fReductionRatio; - G4int size = facets.size(); + std::size_t size = facets.size(); if (size < 10) { - for (G4int i = 0; i < (G4int) facets.size(); ++i) + for (std::size_t i = 0; i < facets.size(); ++i) { - if (facets[i]->GetNumberOfVertices() > 3) size++; + if (facets[i]->GetNumberOfVertices() > 3) ++size; } } @@ -838,7 +831,7 @@ void G4Voxelizer::Voxelize(std::vector& facets) for (auto i = 0; i <= 2; ++i) { miniBoundaries[i] = fBoundaries[i]; } G4int voxelsCountMini = (fCountOfVoxels >= 1000) - ? 100 : fCountOfVoxels / 10; + ? 100 : G4int(fCountOfVoxels / 10); SetReductionRatio(voxelsCountMini, reductionRatioMini); @@ -1086,7 +1079,7 @@ G4int G4Voxelizer::GetCandidatesVoxelArray(const G4ThreeVector &point, } */ } - return list.size(); + return (G4int)list.size(); } //______________________________________________________________________________ @@ -1144,7 +1137,7 @@ G4Voxelizer::GetCandidatesVoxelArray(const std::vector& voxels, } } } - return list.size(); + return (G4int)list.size(); } //______________________________________________________________________________ @@ -1368,7 +1361,7 @@ G4int G4Voxelizer::AllocatedMemory() size += fBitmasks[0].GetNbytes() + fBitmasks[1].GetNbytes() + fBitmasks[2].GetNbytes(); - G4int csize = fCandidates.size(); + G4int csize = (G4int)fCandidates.size(); for (G4int i = 0; i < csize; ++i) { size += sizeof(vector) + fCandidates[i].capacity() * sizeof(G4int); diff --git a/source/geometry/volumes/History b/source/geometry/volumes/History index 0f91e168e2..5c7d7516a4 100644 --- a/source/geometry/volumes/History +++ b/source/geometry/volumes/History @@ -1,9 +1,17 @@ # Category geomvol History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-10 Gabriele Cosmo (geomvol-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-04 Gabriele Cosmo (geomvol-V11-00-01) +- Fixed compilation warning on Intel/icx compiler for variable set but + not used in G4AssemblyStore::Clean(). ## 2021-12-10 Ben Morgan (geomvol-V11-00-00) - Change to new Markdown History format diff --git a/source/geometry/volumes/include/G4EnhancedVecAllocator.hh b/source/geometry/volumes/include/G4EnhancedVecAllocator.hh index 4faeb206f4..f30ebf92fe 100644 --- a/source/geometry/volumes/include/G4EnhancedVecAllocator.hh +++ b/source/geometry/volumes/include/G4EnhancedVecAllocator.hh @@ -47,7 +47,7 @@ typedef struct typedef struct { - size_t size; + std::size_t size; G4int totalspace; G4ChunkType *preAllocated; } G4ChunkIndexType; @@ -88,11 +88,11 @@ class G4EnhancedVecAllocator : public std::allocator<_Tp> // override allocate / deallocate // - void deallocate(_Tp* _Ptr, size_t _Count); + void deallocate(_Tp* _Ptr, std::size_t _Count); #ifdef __IBMCPP__ - _Tp* allocate(size_t _Count, void * const hint = 0); // IBM AIX + _Tp* allocate(std::size_t _Count, void * const hint = 0); // IBM AIX #else - _Tp* allocate(size_t _Count); + _Tp* allocate(std::size_t _Count); #endif }; @@ -105,7 +105,7 @@ class G4EnhancedVecAllocator : public std::allocator<_Tp> // ************************************************************ // template -void G4EnhancedVecAllocator<_Tp>::deallocate(_Tp* _Ptr, size_t _Count) +void G4EnhancedVecAllocator<_Tp>::deallocate(_Tp* _Ptr, std::size_t _Count) { G4int found = -1; if (G4AllocStats::allocStat != 0) @@ -140,13 +140,13 @@ void G4EnhancedVecAllocator<_Tp>::deallocate(_Tp* _Ptr, size_t _Count) // #ifdef __IBMCPP__ template -_Tp* G4EnhancedVecAllocator<_Tp>::allocate(size_t _Count, void * const hint) +_Tp* G4EnhancedVecAllocator<_Tp>::allocate(std::size_t _Count, void * const hint) #else template -_Tp* G4EnhancedVecAllocator<_Tp>::allocate(size_t _Count) +_Tp* G4EnhancedVecAllocator<_Tp>::allocate(std::size_t _Count) #endif { - size_t totalsize = _Count * sizeof(_Tp); + std::size_t totalsize = _Count * sizeof(_Tp); G4int found = -1; if (G4AllocStats::allocStat != 0) diff --git a/source/geometry/volumes/include/G4NavigationHistory.hh b/source/geometry/volumes/include/G4NavigationHistory.hh index 5191d86003..22f4056e0d 100644 --- a/source/geometry/volumes/include/G4NavigationHistory.hh +++ b/source/geometry/volumes/include/G4NavigationHistory.hh @@ -96,10 +96,10 @@ class G4NavigationHistory inline G4VPhysicalVolume* GetTopVolume() const; // Returns topmost physical volume pointer. - inline size_t GetDepth() const; + inline std::size_t GetDepth() const; // Returns current history depth. - inline size_t GetMaxDepth() const; + inline std::size_t GetMaxDepth() const; // Returns current maximum size of history. // Note: MaxDepth of 16 mean history entries [0..15] inclusive. @@ -127,7 +127,7 @@ class G4NavigationHistory inline void BackLevel(G4int n); // Back up specified number of levels in history. - inline void *operator new(size_t); + inline void *operator new(std::size_t); // Override "new" for "G4Allocator". inline void operator delete(void *aHistory); // Override "delete" for "G4Allocator". @@ -144,7 +144,7 @@ class G4NavigationHistory std::vector* fNavHistory; // Pointer to the vector of navigation levels. - size_t fStackDepth; + std::size_t fStackDepth; // Depth of stack: effectively depth in geometrical tree. }; diff --git a/source/geometry/volumes/include/G4NavigationHistory.icc b/source/geometry/volumes/include/G4NavigationHistory.icc index de032eb81f..fd6ad27218 100644 --- a/source/geometry/volumes/include/G4NavigationHistory.icc +++ b/source/geometry/volumes/include/G4NavigationHistory.icc @@ -34,7 +34,7 @@ extern G4GEOM_DLL G4Allocator*& aNavigHistoryAllocator(); // following "new" & "delete" will fail and give errors. // inline -void* G4NavigationHistory::operator new(size_t) +void* G4NavigationHistory::operator new(std::size_t) { if (aNavigHistoryAllocator() == nullptr) { @@ -139,7 +139,7 @@ G4VPhysicalVolume* G4NavigationHistory::GetTopVolume() const } inline -size_t G4NavigationHistory::GetDepth() const +std::size_t G4NavigationHistory::GetDepth() const { return fStackDepth; } @@ -170,7 +170,7 @@ G4VPhysicalVolume* G4NavigationHistory::GetVolume(G4int n) const } inline -size_t G4NavigationHistory::GetMaxDepth() const +std::size_t G4NavigationHistory::GetMaxDepth() const { return fNavHistory->size(); } @@ -196,12 +196,12 @@ void G4NavigationHistory::BackLevel(G4int n) inline void G4NavigationHistory::EnlargeHistory() { - size_t len = fNavHistory->size(); + std::size_t len = fNavHistory->size(); if ( len == fStackDepth ) { // Note: Resize operation clears additional entries // - size_t nlen = len+kHistoryStride; + std::size_t nlen = len+kHistoryStride; fNavHistory->resize(nlen); } } diff --git a/source/geometry/volumes/src/G4AssemblyStore.cc b/source/geometry/volumes/src/G4AssemblyStore.cc index b8e82216d8..c619b23ba9 100644 --- a/source/geometry/volumes/src/G4AssemblyStore.cc +++ b/source/geometry/volumes/src/G4AssemblyStore.cc @@ -85,27 +85,14 @@ void G4AssemblyStore::Clean() // locked = true; - size_t i=0; G4AssemblyStore* store = GetInstance(); -#ifdef G4DEBUG_NAVIGATION - G4cout << "Deleting Assemblies ... "; -#endif - for(auto pos=store->cbegin(); pos!=store->cend(); ++pos) { if (fgNotifier != nullptr) { fgNotifier->NotifyDeRegistration(); } if (*pos) { delete *pos; } - ++i; } -#ifdef G4DEBUG_NAVIGATION - if (store->size() < i-1) - { G4cout << "No assembly deleted. Already deleted by user ?" << G4endl; } - else - { G4cout << i-1 << " assemblies deleted !" << G4endl; } -#endif - locked = false; store->clear(); } diff --git a/source/geometry/volumes/src/G4AssemblyVolume.cc b/source/geometry/volumes/src/G4AssemblyVolume.cc index 0ca4202a9a..3d5dbf58ad 100644 --- a/source/geometry/volumes/src/G4AssemblyVolume.cc +++ b/source/geometry/volumes/src/G4AssemblyVolume.cc @@ -93,10 +93,10 @@ G4AssemblyVolume::G4AssemblyVolume( G4LogicalVolume* volume, // G4AssemblyVolume::~G4AssemblyVolume() { - unsigned int howmany = fTriplets.size(); + std::size_t howmany = fTriplets.size(); if( howmany != 0 ) { - for( unsigned int i = 0; i < howmany; ++i ) + for( std::size_t i = 0; i < howmany; ++i ) { G4RotationMatrix* pRotToClean = fTriplets[i].GetRotation(); if( pRotToClean != 0 ) @@ -242,7 +242,7 @@ void G4AssemblyVolume::MakeImprint( G4AssemblyVolume* pAssembly, G4int copyNumBase, G4bool surfCheck ) { - unsigned int numberOfDaughters; + std::size_t numberOfDaughters; if( copyNumBase == 0 ) { @@ -255,7 +255,7 @@ void G4AssemblyVolume::MakeImprint( G4AssemblyVolume* pAssembly, // We start from the first available index // - numberOfDaughters++; + ++numberOfDaughters; ImprintsCountPlus(); @@ -264,7 +264,7 @@ void G4AssemblyVolume::MakeImprint( G4AssemblyVolume* pAssembly, // store the transformation in a container (for GDML persistency) fImprintsTransf[GetImprintsCount()] = transformation; - for( unsigned int i = 0; i < triplets.size(); ++i ) + for( std::size_t i = 0; i < triplets.size(); ++i ) { G4Transform3D Ta( *(triplets[i].GetRotation()), triplets[i].GetTranslation() ); @@ -305,7 +305,7 @@ void G4AssemblyVolume::MakeImprint( G4AssemblyVolume* pAssembly, triplets[i].GetVolume(), pMotherLV, false, - numberOfDaughters + i, + G4int(numberOfDaughters+i), surfCheck ); // Register the physical volume created by us so we can delete it later @@ -322,7 +322,7 @@ void G4AssemblyVolume::MakeImprint( G4AssemblyVolume* pAssembly, // Place volumes in this assembly with composed transformation // MakeImprint( triplets[i].GetAssembly(), pMotherLV, - Tfinal, i*100+copyNumBase, surfCheck ); + Tfinal, (G4int)i*100+copyNumBase, surfCheck ); } else { diff --git a/source/geometry/volumes/src/G4NavigationHistory.cc b/source/geometry/volumes/src/G4NavigationHistory.cc index 8f83818b75..a046c6626c 100644 --- a/source/geometry/volumes/src/G4NavigationHistory.cc +++ b/source/geometry/volumes/src/G4NavigationHistory.cc @@ -69,7 +69,7 @@ std::ostream& operator << (std::ostream& os, const G4NavigationHistory& nav) { os << "History depth=" << nav.GetDepth() << G4endl; - for ( size_t i=0; i<=nav.GetDepth(); ++i ) + for ( G4int i=0; i<=(G4int)nav.GetDepth(); ++i ) { os << "Level=["<GetNoDaughters(); ++k) + for (std::size_t k = 0; k < motherLog->GetNoDaughters(); ++k) { - G4VPhysicalVolume* daughter = motherLog->GetDaughter(k); + G4VPhysicalVolume* daughter = motherLog->GetDaughter((G4int)k); if (daughter == this) continue; G4bool check_encapsulation = true; diff --git a/source/geometry/volumes/src/G4ReflectionFactory.cc b/source/geometry/volumes/src/G4ReflectionFactory.cc index c619ae158c..2ca7980203 100644 --- a/source/geometry/volumes/src/G4ReflectionFactory.cc +++ b/source/geometry/volumes/src/G4ReflectionFactory.cc @@ -452,9 +452,9 @@ void G4ReflectionFactory::ReflectDaughters(G4LogicalVolume* LV, << LV->GetNoDaughters() << " of " << LV->GetName() << G4endl; } - for (size_t i=0; iGetNoDaughters(); ++i) + for (std::size_t i=0; iGetNoDaughters(); ++i) { - G4VPhysicalVolume* dPV = LV->GetDaughter(i); + G4VPhysicalVolume* dPV = LV->GetDaughter((G4int)i); if (!dPV->IsReplicated()) { diff --git a/source/global/HEPGeometry/include/G4LorentzRotation.hh b/source/global/HEPGeometry/include/G4LorentzRotation.hh index 31cbf02a97..f857d5ab7f 100644 --- a/source/global/HEPGeometry/include/G4LorentzRotation.hh +++ b/source/global/HEPGeometry/include/G4LorentzRotation.hh @@ -28,9 +28,8 @@ #ifndef G4LorentzRotation_hh #define G4LorentzRotation_hh -#include "globals.hh" #include -typedef CLHEP::HepLorentzRotation G4LorentzRotation; +using G4LorentzRotation = CLHEP::HepLorentzRotation; #endif // G4LorentzRotation_hh diff --git a/source/global/HEPGeometry/include/G4LorentzVector.hh b/source/global/HEPGeometry/include/G4LorentzVector.hh index 39578be5e3..55c33db17d 100644 --- a/source/global/HEPGeometry/include/G4LorentzVector.hh +++ b/source/global/HEPGeometry/include/G4LorentzVector.hh @@ -28,9 +28,8 @@ #ifndef G4LorentzVector_hh #define G4LorentzVector_hh -#include "globals.hh" #include -typedef CLHEP::HepLorentzVector G4LorentzVector; +using G4LorentzVector = CLHEP::HepLorentzVector; #endif // G4LorentzVector_hh diff --git a/source/global/HEPGeometry/include/G4Normal3D.hh b/source/global/HEPGeometry/include/G4Normal3D.hh index 5d9ba3bc8b..7be4a5af12 100644 --- a/source/global/HEPGeometry/include/G4Normal3D.hh +++ b/source/global/HEPGeometry/include/G4Normal3D.hh @@ -31,6 +31,6 @@ #include "globals.hh" #include -typedef HepGeom::Normal3D G4Normal3D; +using G4Normal3D = HepGeom::Normal3D; #endif /* G4NORMAL3D_HH */ diff --git a/source/global/HEPGeometry/include/G4Plane3D.hh b/source/global/HEPGeometry/include/G4Plane3D.hh index ad7afa2598..bd7d49f328 100644 --- a/source/global/HEPGeometry/include/G4Plane3D.hh +++ b/source/global/HEPGeometry/include/G4Plane3D.hh @@ -28,11 +28,9 @@ #ifndef G4PLANE3D_HH #define G4PLANE3D_HH -#include "G4Normal3D.hh" -#include "G4Point3D.hh" #include "globals.hh" #include -typedef HepGeom::Plane3D G4Plane3D; +using G4Plane3D = HepGeom::Plane3D; #endif /* G4PLANE3D_HH */ diff --git a/source/global/HEPGeometry/include/G4Point3D.hh b/source/global/HEPGeometry/include/G4Point3D.hh index 9df0e58380..dd48cbaf93 100644 --- a/source/global/HEPGeometry/include/G4Point3D.hh +++ b/source/global/HEPGeometry/include/G4Point3D.hh @@ -31,6 +31,6 @@ #include "globals.hh" #include -typedef HepGeom::Point3D G4Point3D; +using G4Point3D = HepGeom::Point3D; #endif /* G4POINT3D_HH */ diff --git a/source/global/HEPGeometry/include/G4Transform3D.hh b/source/global/HEPGeometry/include/G4Transform3D.hh index 66017108f0..96fc36e3fb 100644 --- a/source/global/HEPGeometry/include/G4Transform3D.hh +++ b/source/global/HEPGeometry/include/G4Transform3D.hh @@ -28,29 +28,28 @@ #ifndef G4TRANSFORM3D_HH #define G4TRANSFORM3D_HH -#include "globals.hh" #include -typedef HepGeom::Transform3D G4Transform3D; +using G4Transform3D = HepGeom::Transform3D; -typedef HepGeom::Rotate3D G4Rotate3D; -typedef HepGeom::RotateX3D G4RotateX3D; -typedef HepGeom::RotateY3D G4RotateY3D; -typedef HepGeom::RotateZ3D G4RotateZ3D; +using G4Rotate3D = HepGeom::Rotate3D; +using G4RotateX3D = HepGeom::RotateX3D; +using G4RotateY3D = HepGeom::RotateY3D; +using G4RotateZ3D = HepGeom::RotateZ3D; -typedef HepGeom::Translate3D G4Translate3D; -typedef HepGeom::TranslateX3D G4TranslateX3D; -typedef HepGeom::TranslateY3D G4TranslateY3D; -typedef HepGeom::TranslateZ3D G4TranslateZ3D; +using G4Translate3D = HepGeom::Translate3D; +using G4TranslateX3D = HepGeom::TranslateX3D; +using G4TranslateY3D = HepGeom::TranslateY3D; +using G4TranslateZ3D = HepGeom::TranslateZ3D; -typedef HepGeom::Reflect3D G4Reflect3D; -typedef HepGeom::ReflectX3D G4ReflectX3D; -typedef HepGeom::ReflectY3D G4ReflectY3D; -typedef HepGeom::ReflectZ3D G4ReflectZ3D; +using G4Reflect3D = HepGeom::Reflect3D; +using G4ReflectX3D = HepGeom::ReflectX3D; +using G4ReflectY3D = HepGeom::ReflectY3D; +using G4ReflectZ3D = HepGeom::ReflectZ3D; -typedef HepGeom::Scale3D G4Scale3D; -typedef HepGeom::ScaleX3D G4ScaleX3D; -typedef HepGeom::ScaleY3D G4ScaleY3D; -typedef HepGeom::ScaleZ3D G4ScaleZ3D; +using G4Scale3D = HepGeom::Scale3D; +using G4ScaleX3D = HepGeom::ScaleX3D; +using G4ScaleY3D = HepGeom::ScaleY3D; +using G4ScaleZ3D = HepGeom::ScaleZ3D; #endif /* G4TRANSFORM3D_HH */ diff --git a/source/global/HEPGeometry/include/G4Vector3D.hh b/source/global/HEPGeometry/include/G4Vector3D.hh index 6f91fda849..5c98421607 100644 --- a/source/global/HEPGeometry/include/G4Vector3D.hh +++ b/source/global/HEPGeometry/include/G4Vector3D.hh @@ -31,6 +31,6 @@ #include "globals.hh" #include -typedef HepGeom::Vector3D G4Vector3D; +using G4Vector3D = HepGeom::Vector3D; #endif /* G4VECTOR3D_HH */ diff --git a/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh b/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh index 9c7e25ca89..96e3290cde 100644 --- a/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh +++ b/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh @@ -42,7 +42,7 @@ #include "globals.hh" -typedef G4double (*function)(G4double); +using function = G4double (*)(G4double); class G4ChebyshevApproximation { diff --git a/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh b/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh index b0c69c1a72..0833adeb9a 100644 --- a/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh +++ b/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh @@ -47,7 +47,7 @@ class G4GaussChebyshevQ : public G4VGaussianQuadrature G4GaussChebyshevQ(function pFunction, G4int nChebyshev); // Constructor for Gauss-Chebyshev quadrature method - ~G4GaussChebyshevQ() = default; + ~G4GaussChebyshevQ() override = default; G4GaussChebyshevQ(const G4GaussChebyshevQ&) = delete; G4GaussChebyshevQ& operator=(const G4GaussChebyshevQ&) = delete; diff --git a/source/global/HEPNumerics/include/G4SimpleIntegration.hh b/source/global/HEPNumerics/include/G4SimpleIntegration.hh index 4abe11c68c..a9613c7eaf 100644 --- a/source/global/HEPNumerics/include/G4SimpleIntegration.hh +++ b/source/global/HEPNumerics/include/G4SimpleIntegration.hh @@ -40,7 +40,7 @@ #include "G4Types.hh" -typedef G4double (*function)(G4double); +using function = G4double (*)(G4double); class G4SimpleIntegration { diff --git a/source/global/HEPNumerics/include/G4SimplexDownhill.icc b/source/global/HEPNumerics/include/G4SimplexDownhill.icc index 27f98e0186..5eb7b4f8df 100644 --- a/source/global/HEPNumerics/include/G4SimplexDownhill.icc +++ b/source/global/HEPNumerics/include/G4SimplexDownhill.icc @@ -69,8 +69,7 @@ G4double G4SimplexDownhill::GetMinimum() doDownhill(); // G4cout << "End First Trials" << G4endl; - std::vector::const_iterator it_minh = - std::min_element(currentHeights.cbegin(), currentHeights.cend()); + auto it_minh = std::min_element(currentHeights.cbegin(), currentHeights.cend()); G4int imin = 0; G4int i = 0; for(auto it = currentHeights.cbegin(); it != currentHeights.cend(); ++it) @@ -137,13 +136,13 @@ std::vector G4SimplexDownhill::calCentroid(G4int ih) std::vector centroid(numberOfVariable, 0.0); G4int i = 0; - for(auto it = currentSimplex.cbegin(); it != currentSimplex.cend(); ++it) + for(const auto & it : currentSimplex) { if(i != ih) { for(G4int j = 0; j < numberOfVariable; ++j) { - centroid[j] += (*it)[j] / numberOfVariable; + centroid[j] += it[j] / numberOfVariable; } } ++i; @@ -235,10 +234,8 @@ void G4SimplexDownhill::doDownhill() break; } - std::vector::const_iterator it_maxh = - std::max_element(currentHeights.cbegin(), currentHeights.cend()); - std::vector::const_iterator it_minh = - std::min_element(currentHeights.cbegin(), currentHeights.cend()); + auto it_maxh = std::max_element(currentHeights.cbegin(), currentHeights.cend()); + auto it_minh = std::min_element(currentHeights.cbegin(), currentHeights.cend()); G4double h_H = *it_maxh; G4double h_L = *it_minh; @@ -342,13 +339,12 @@ void G4SimplexDownhill::doDownhill() template std::vector G4SimplexDownhill::GetMinimumPoint() { - if(minimized != true) + if(!minimized) { GetMinimum(); } - std::vector::const_iterator it_minh = - std::min_element(currentHeights.cbegin(), currentHeights.cend()); + auto it_minh = std::min_element(currentHeights.cbegin(), currentHeights.cend()); G4int imin = 0; G4int i = 0; diff --git a/source/global/HEPNumerics/include/G4StatAnalysis.icc b/source/global/HEPNumerics/include/G4StatAnalysis.icc index 47375b1cf8..d16ac55e21 100644 --- a/source/global/HEPNumerics/include/G4StatAnalysis.icc +++ b/source/global/HEPNumerics/include/G4StatAnalysis.icc @@ -251,7 +251,7 @@ void G4StatAnalysis::PrintInfo(std::ostream& os, const std::string& tab) const std::stringstream ss; ss << tab //<< scientific - << setprecision(os.precision()) << right << _sum << left + << setprecision((G4int)os.precision()) << right << _sum << left << " [sigma: " << right << _sigma << left << " | error: " << right << _error << left << " | coeff: " << right << _coeff << left << " | eff: " << right << _eff << left << " | fom: " << right << _fom diff --git a/source/global/HEPNumerics/include/G4StatDouble.hh b/source/global/HEPNumerics/include/G4StatDouble.hh index 37b28dd533..cfbb9447bb 100644 --- a/source/global/HEPNumerics/include/G4StatDouble.hh +++ b/source/global/HEPNumerics/include/G4StatDouble.hh @@ -52,16 +52,7 @@ class G4StatDouble fill(rhs); return *this; } - G4StatDouble& operator=(const G4StatDouble& rhs) - { - m_sum_wx = rhs.m_sum_wx; - m_sum_wx2 = rhs.m_sum_wx2; - m_n = rhs.m_n; - m_sum_w = rhs.m_sum_w; - m_sum_w2 = rhs.m_sum_w2; - m_scale = rhs.m_scale; - return *this; - } + G4StatDouble& operator=(const G4StatDouble& rhs) = default; G4StatDouble& operator+=(const G4double& rhs) { fill(rhs); diff --git a/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh b/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh index 05e05e2b14..549d317010 100644 --- a/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh +++ b/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh @@ -42,7 +42,7 @@ #include "globals.hh" -typedef G4double (*function)(G4double); +using function = G4double (*)(G4double); class G4VGaussianQuadrature { diff --git a/source/global/HEPNumerics/src/G4AnalyticalPolSolver.cc b/source/global/HEPNumerics/src/G4AnalyticalPolSolver.cc index bc6fa4cbbd..2b59581ec7 100644 --- a/source/global/HEPNumerics/src/G4AnalyticalPolSolver.cc +++ b/source/global/HEPNumerics/src/G4AnalyticalPolSolver.cc @@ -343,7 +343,7 @@ G4int G4AnalyticalPolSolver::QuarticRoots(G4double p[5], G4double r[3][5]) G4double a, b, c, d, ds; G4double reRoot[4]; - G4int k, noReRoots = 0; + G4int k; for(k = 0; k < 4; k++) { @@ -375,7 +375,6 @@ G4int G4AnalyticalPolSolver::QuarticRoots(G4double p[5], G4double r[3][5]) { if(r[2][k] == 0.) // find a real root { - noReRoots++; reRoot[k] = r[1][k]; } else diff --git a/source/global/HEPNumerics/src/G4ConvergenceTester.cc b/source/global/HEPNumerics/src/G4ConvergenceTester.cc index 82c307bd57..ca2c3c3179 100644 --- a/source/global/HEPNumerics/src/G4ConvergenceTester.cc +++ b/source/global/HEPNumerics/src/G4ConvergenceTester.cc @@ -507,8 +507,8 @@ void G4ConvergenceTester::check_stat_history(std::ostream& out) std::vector second_ally; // use 2nd half of hisories - G4int N = mean_history.size() / 2; - G4int i; + std::size_t N = mean_history.size() / 2; + std::size_t i; G4double pearson_r; G4double t; @@ -533,7 +533,7 @@ void G4ConvergenceTester::check_stat_history(std::ostream& out) second_ally[i] = mean_history[N + i]; } - pearson_r = calc_Pearson_r(N, first_ally, second_ally); + pearson_r = calc_Pearson_r((G4int)N, first_ally, second_ally); t = pearson_r * std::sqrt((N - 2) / (1 - pearson_r * pearson_r)); if(t < 0.429318) // Student t of (Degree of freedom = N-2 ) @@ -554,7 +554,7 @@ void G4ConvergenceTester::check_stat_history(std::ostream& out) second_ally[i] = r_history[N + i]; } - pearson_r = calc_Pearson_r(N, first_ally, second_ally); + pearson_r = calc_Pearson_r(G4int(N), first_ally, second_ally); t = pearson_r * std::sqrt((N - 2) / (1 - pearson_r * pearson_r)); if(t > 1.090546) @@ -593,7 +593,7 @@ void G4ConvergenceTester::check_stat_history(std::ostream& out) second_ally[i] = vov_history[N + i]; } - pearson_r = calc_Pearson_r(N, first_ally, second_ally); + pearson_r = calc_Pearson_r(G4int(N), first_ally, second_ally); t = pearson_r * std::sqrt((N - 2) / (1 - pearson_r * pearson_r)); if(t > 1.090546) @@ -623,7 +623,7 @@ void G4ConvergenceTester::check_stat_history(std::ostream& out) second_ally[i] = fom_history[N + i]; } - pearson_r = calc_Pearson_r(N, first_ally, second_ally); + pearson_r = calc_Pearson_r(G4int(N), first_ally, second_ally); t = pearson_r * std::sqrt((N - 2) / (1 - pearson_r * pearson_r)); if(t < 0.429318) diff --git a/source/global/HEPNumerics/src/G4DataInterpolation.cc b/source/global/HEPNumerics/src/G4DataInterpolation.cc index a4b51376ad..54474380c0 100644 --- a/source/global/HEPNumerics/src/G4DataInterpolation.cc +++ b/source/global/HEPNumerics/src/G4DataInterpolation.cc @@ -266,7 +266,7 @@ G4double G4DataInterpolation::RationalPolInterpolation(G4double pX, delete[] d; return y; } - else if(difi < diff) + if(difi < diff) { k = i; diff = difi; @@ -393,14 +393,13 @@ G4int G4DataInterpolation::LocateArgument(G4double pX) const { return 1; } - else if(!(pX != fArgument[fNumber - 1])) + if(!(pX != fArgument[fNumber - 1])) { return fNumber - 2; } - else - { - return kLow; - } + + return kLow; + } ///////////////////////////////////////////////////////////////////////////// @@ -461,10 +460,9 @@ void G4DataInterpolation::CorrelatedSearch(G4double pX, G4int& index) const index = -1; break; } - else - { - index = kHigh - Increment; - } + + index = kHigh - Increment; + } } // Value bracketed } diff --git a/source/global/HEPNumerics/src/G4JTPolynomialSolver.cc b/source/global/HEPNumerics/src/G4JTPolynomialSolver.cc index 591a1e28ea..a8a5d32e4f 100644 --- a/source/global/HEPNumerics/src/G4JTPolynomialSolver.cc +++ b/source/global/HEPNumerics/src/G4JTPolynomialSolver.cc @@ -302,16 +302,15 @@ G4int G4JTPolynomialSolver::FindRoots(G4double* op, G4int degr, G4double* zeror, } break; } - else + + // If the iteration is unsuccessful another quadratic + // is chosen after restoring k. + // + for(i = 0; i < n; ++i) { - // If the iteration is unsuccessful another quadratic - // is chosen after restoring k. - // - for(i = 0; i < n; ++i) - { - k[i] = temp[i]; - } + k[i] = temp[i]; } + } } while(nz != 0); // End of initial DO loop diff --git a/source/global/HEPRandom/include/G4UniformRandPool.hh b/source/global/HEPRandom/include/G4UniformRandPool.hh index 5bc4dd82eb..d5f316a677 100644 --- a/source/global/HEPRandom/include/G4UniformRandPool.hh +++ b/source/global/HEPRandom/include/G4UniformRandPool.hh @@ -39,12 +39,12 @@ #ifndef G4UNIFORMRANDPOOL_HH #define G4UNIFORMRANDPOOL_HH -#include -#include - #include "G4Types.hh" #include "Randomize.hh" +#include +#include + #define G4UNIFORMRANDPOOL_DEFAULT_POOLSIZE 1024 #define G4UNIFORMRANDPOOL_TINY_POOLSIZE 128 #define G4UNIFORMRANDPOOL_SMALL_POOLSIZE 256 @@ -56,13 +56,13 @@ class G4UniformRandPool { public: G4UniformRandPool(); - G4UniformRandPool(/*PoolSize_t&*/ G4int ps); + explicit G4UniformRandPool(G4int ps); ~G4UniformRandPool(); - void Resize(/*PoolSize_t*/ G4int newSize); + void Resize(G4int newSize); void GetMany(G4double* rnds, G4int howMany); inline G4double GetOne(); - inline /*PoolSize_t*/ G4int GetPoolSize() const; + inline G4int GetPoolSize() const; // These two static methods are used to // simulate the calls of CLHEP::HepRandom @@ -74,9 +74,9 @@ class G4UniformRandPool void Fill(G4int howmany); private: - /*PoolSize_t*/ G4int size; - G4double* buffer; - G4int currentIdx; + G4int size{G4UNIFORMRANDPOOL_DEFAULT_POOLSIZE}; + G4double* buffer{nullptr}; + G4int currentIdx{0}; }; inline G4double G4UniformRandPool::GetOne() @@ -91,7 +91,7 @@ inline G4double G4UniformRandPool::GetOne() return buffer[currentIdx++]; } -inline /*PoolSize_t*/ G4int G4UniformRandPool::GetPoolSize() const +inline G4int G4UniformRandPool::GetPoolSize() const { return size; } diff --git a/source/global/HEPRandom/src/G4UniformRandPool.cc b/source/global/HEPRandom/src/G4UniformRandPool.cc index e1b43a8e41..04dd9f03de 100644 --- a/source/global/HEPRandom/src/G4UniformRandPool.cc +++ b/source/global/HEPRandom/src/G4UniformRandPool.cc @@ -31,14 +31,15 @@ // ------------------------------------------------------------ #include "G4UniformRandPool.hh" + #include "G4AutoDelete.hh" #include "G4Threading.hh" #include "globals.hh" #include #include +#include #include -#include // Not aligned memory // @@ -46,7 +47,7 @@ void create_pool(G4double*& buffer, G4int ps) { buffer = new G4double[ps]; } void destroy_pool(G4double*& buffer) { delete[] buffer; } -#if defined(WIN32) +#if defined(WIN32) || defined(__MINGW32__) // No bother with WIN void create_pool_align(G4double*& buffer, G4int ps) { create_pool(buffer, ps); } void destroy_pool_align(G4double*& buffer) { destroy_pool(buffer); } @@ -73,10 +74,7 @@ void create_pool_align(G4double*& buffer, G4int ps) void destroy_pool_align(G4double*& buffer) { free(buffer); } #endif -G4UniformRandPool::G4UniformRandPool() - : size(G4UNIFORMRANDPOOL_DEFAULT_POOLSIZE) - , buffer(nullptr) - , currentIdx(0) +G4UniformRandPool::G4UniformRandPool() { if(sizeof(G4double) * CHAR_BIT == 64) { @@ -91,8 +89,6 @@ G4UniformRandPool::G4UniformRandPool() G4UniformRandPool::G4UniformRandPool(G4int siz) : size(siz) - , buffer(nullptr) - , currentIdx(0) { if(sizeof(G4double) * CHAR_BIT == 64) { diff --git a/source/global/History b/source/global/History index 07af6568fe..0592e63da1 100644 --- a/source/global/History +++ b/source/global/History @@ -6,6 +6,38 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-29 Gabriele Cosmo (global-V11-00-33) +- Updated tag IDs for geant4-11-01-ref-00. + +## 2022-11-18 Gabriele Cosmo (global-V11-00-32) +- More compilation warnings fixes for implicit type conversions. + +## 2022-11-09 Gabriele Cosmo (global-V11-00-31) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-31 Gabriele Cosmo (global-V11-00-30) +- Updated tag IDs for geant4-11-00-ref-09. + +## 2022-10-04 Gabriele Cosmo (global-V11-00-29) +- Fixed compilation warning on Intel-icx compiler for variable set but not + used, in G4AnalyticalPolSolver::QuarticRoots(). + +## 2022-09-30 Gabriele Cosmo (global-V11-00-28) +- Updated tag IDs for geant4-11-00-ref-08. + +## 2022-09-22 Ben Morgan (global-V11-00-27) +- Apply patch for MinGW from [GitHub PR 51](https://github.com/Geant4/geant4/pull/51) + +## 2022-08-29 Gabriele Cosmo (global-V11-00-26) +- Updated tag IDs for geant4-11-00-ref-07. + +## 2022-08-04 Ben Morgan (global-V11-00-25) +- Move implementation details of G4Exception to source file. +- Remove obsolete re-declaration of G4Exception in G4Timer. + +## 2022-07-03 Ben Morgan (global-V11-00-24) +- Additional clang-tidy fixes for header-only code or missed in global-V11-00-06) + ## 2022-06-24 Gabriele Cosmo (global-V11-00-23) - Updated tag IDs for geant4-11-00-ref-06 and geant4-11-01-beta-01. diff --git a/source/global/management/include/G4Allocator.hh b/source/global/management/include/G4Allocator.hh index a5c9e39c16..7f0bc26c98 100644 --- a/source/global/management/include/G4Allocator.hh +++ b/source/global/management/include/G4Allocator.hh @@ -62,7 +62,7 @@ class G4Allocator : public G4AllocatorBase { public: G4Allocator() throw(); - ~G4Allocator() throw(); + ~G4Allocator() throw() override; // Constructor & destructor inline Type* MallocSingle(); @@ -70,20 +70,20 @@ class G4Allocator : public G4AllocatorBase // Malloc and Free methods to be used when overloading // new and delete operators in the client object - inline void ResetStorage(); + inline void ResetStorage() override; // Returns allocated storage to the free store, resets allocator. // Note: contents in memory are lost using this call ! - inline std::size_t GetAllocatedSize() const; + inline std::size_t GetAllocatedSize() const override; // Returns the size of the total memory allocated - inline int GetNoPages() const; + inline int GetNoPages() const override; // Returns the total number of allocated pages - inline std::size_t GetPageSize() const; + inline std::size_t GetPageSize() const override; // Returns the current size of a page - inline void IncreasePageSize(unsigned int sz); + inline void IncreasePageSize(unsigned int sz) override; // Resets allocator and increases default page size of a given factor - inline const char* GetPoolType() const; + inline const char* GetPoolType() const override; // Returns the type_info Id of the allocated type in the pool // This public section includes standard methods and types @@ -112,7 +112,7 @@ class G4Allocator : public G4AllocatorBase const_pointer address(const_reference r) const { return &r; } // Returns the address of values - pointer allocate(size_type n, void* = 0) + pointer allocate(size_type n, void* = nullptr) { // Allocates space for n elements of type Type, but does not initialise // @@ -149,7 +149,7 @@ class G4Allocator : public G4AllocatorBase template struct rebind { - typedef G4Allocator other; + using other = G4Allocator; }; // Rebind allocator to type U @@ -185,8 +185,7 @@ G4Allocator::G4Allocator() throw() // ************************************************************ // template -G4Allocator::~G4Allocator() throw() -{} +G4Allocator::~G4Allocator() throw() = default; // ************************************************************ // MallocSingle diff --git a/source/global/management/include/G4AllocatorList.hh b/source/global/management/include/G4AllocatorList.hh index 7fff6ef8f0..72b5494e95 100644 --- a/source/global/management/include/G4AllocatorList.hh +++ b/source/global/management/include/G4AllocatorList.hh @@ -49,7 +49,7 @@ class G4AllocatorList ~G4AllocatorList(); void Register(G4AllocatorBase*); void Destroy(G4int nStat = 0, G4int verboseLevel = 0); - G4int Size() const; + inline std::size_t Size() const; private: G4AllocatorList() = default; @@ -59,4 +59,10 @@ class G4AllocatorList std::vector fList; }; +// -------------------------------------------------------------------- +inline std::size_t G4AllocatorList::Size() const +{ + return fList.size(); +} + #endif diff --git a/source/global/management/include/G4AllocatorPool.hh b/source/global/management/include/G4AllocatorPool.hh index 0c074d3b83..9893b8992c 100644 --- a/source/global/management/include/G4AllocatorPool.hh +++ b/source/global/management/include/G4AllocatorPool.hh @@ -82,7 +82,7 @@ class G4AllocatorPool explicit G4PoolChunk(unsigned int sz) : size(sz) , mem(new char[size]) - , next(0) + , next(nullptr) { ; } @@ -113,7 +113,7 @@ class G4AllocatorPool // inline void* G4AllocatorPool::Alloc() { - if(head == 0) + if(head == nullptr) { Grow(); } @@ -128,7 +128,7 @@ inline void* G4AllocatorPool::Alloc() // inline void G4AllocatorPool::Free(void* b) { - G4PoolLink* p = static_cast(b); + auto* p = static_cast(b); p->next = head; // put b back as first element head = p; } @@ -157,7 +157,7 @@ inline unsigned int G4AllocatorPool::GetPageSize() const { return csize; } // inline void G4AllocatorPool::GrowPageSize(unsigned int sz) { - csize = (sz) ? sz * csize : csize; + csize = (sz) != 0u ? sz * csize : csize; } #endif diff --git a/source/global/management/include/G4AutoLock.hh b/source/global/management/include/G4AutoLock.hh index fd894a08f0..4f8a03a533 100644 --- a/source/global/management/include/G4AutoLock.hh +++ b/source/global/management/include/G4AutoLock.hh @@ -276,9 +276,9 @@ class G4TemplateAutoLock : public std::unique_lock<_Mutex_t> //------------------------------------------------------------------------// // Some useful typedefs //------------------------------------------------------------------------// - typedef std::unique_lock<_Mutex_t> unique_lock_t; - typedef G4TemplateAutoLock<_Mutex_t> this_type; - typedef typename unique_lock_t::mutex_type mutex_type; + using unique_lock_t = std::unique_lock<_Mutex_t>; + using this_type = G4TemplateAutoLock<_Mutex_t>; + using mutex_type = typename unique_lock_t::mutex_type; public: //------------------------------------------------------------------------// diff --git a/source/global/management/include/G4Backtrace.hh b/source/global/management/include/G4Backtrace.hh index c05399df57..5a904bde32 100644 --- a/source/global/management/include/G4Backtrace.hh +++ b/source/global/management/include/G4Backtrace.hh @@ -127,9 +127,9 @@ inline G4String G4Demangle(const char* _str) { #if defined(G4DEMANGLE_AVAILABLE) // demangling a string when delimiting - int _status = 0; + G4int _status = 0; char* _ret = ::abi::__cxa_demangle(_str, nullptr, nullptr, &_status); - if(_ret && _status == 0) + if((_ret != nullptr) && _status == 0) return G4String(const_cast(_ret)); return _str; #else @@ -220,19 +220,19 @@ class G4Backtrace { public: using sigaction_t = struct sigaction; - using exit_action_t = std::function; + using exit_action_t = std::function; using frame_func_t = std::function; - using signal_set_t = std::set; + using signal_set_t = std::set; public: struct actions { - using id_entry_t = std::tuple; + using id_entry_t = std::tuple; using id_list_t = std::vector; - std::map is_active = {}; - std::map current = {}; - std::map previous = {}; + std::map is_active = {}; + std::map current = {}; + std::map previous = {}; std::vector exit_actions = {}; const id_list_t identifiers = { id_entry_t("SIGHUP", SIGHUP, "terminal line hangup"), @@ -277,22 +277,22 @@ class G4Backtrace // default set of signals static signal_set_t& DefaultSignals(); // the signal handler - static void Handler(int sig, siginfo_t* sinfo, void* context); + static void Handler(G4int sig, siginfo_t* sinfo, void* context); // information message about the signal, performs exit-actions // and prints back-trace - static void Message(int sig, siginfo_t* sinfo, std::ostream&); + static void Message(G4int sig, siginfo_t* sinfo, std::ostream&); // calls user-provided functions after signal is caught but before abort - static void ExitAction(int sig); + static void ExitAction(G4int sig); // enable signals via a string (which is tokenized) - static int Enable(const std::string&); + static G4int Enable(const std::string&); // enable signals via set of integers, anything less than zero is ignored - static int Enable(const signal_set_t& _signals = DefaultSignals()); + static G4int Enable(const signal_set_t& _signals = DefaultSignals()); // disable signals - static int Disable(signal_set_t _signals = {}); + static G4int Disable(signal_set_t _signals = {}); // gets the numeric value for a signal name - static int GetSignal(const std::string&); + static G4int GetSignal(const std::string&); // provides a description of the signal - static std::string Description(int sig); + static std::string Description(G4int sig); // adds an exit action template @@ -301,14 +301,14 @@ class G4Backtrace // gets a backtrace of "Depth" frames. The offset parameter is used // to ignore initial frames (such as this function). A callback // can be provided to inspect and/or tweak the frame string - template + template static std::array, Depth> GetMangled( FuncT&& func = FrameFunctor()); // gets a demangled backtrace of "Depth" frames. The offset parameter is // used to ignore initial frames (such as this function). A callback // can be provided to inspect and/or tweak the frame string - template + template static std::array, Depth> GetDemangled( FuncT&& func = FrameFunctor()); @@ -349,7 +349,7 @@ inline void G4Backtrace::AddExitAction(FuncT&& func) //----------------------------------------------------------------------------// -inline void G4Backtrace::ExitAction(int sig) +inline void G4Backtrace::ExitAction(G4int sig) { for(auto& itr : GetData().exit_actions) itr(sig); @@ -357,7 +357,7 @@ inline void G4Backtrace::ExitAction(int sig) //----------------------------------------------------------------------------// -template +template inline std::array, Depth> G4Backtrace::GetMangled(FuncT&& func) { @@ -376,7 +376,7 @@ G4Backtrace::GetMangled(FuncT&& func) auto n = sz - Offset; // skip ahead (Offset + 1) stack frames - char** bsym = backtrace_symbols(buffer.data() + Offset, n); + char** bsym = backtrace_symbols(buffer.data() + Offset, (G4int)n); // report errors if(bsym == nullptr) @@ -392,13 +392,13 @@ G4Backtrace::GetMangled(FuncT&& func) //----------------------------------------------------------------------------// -template +template inline std::array, Depth> G4Backtrace::GetDemangled(FuncT&& func) { auto demangle_bt = [&](const char* cstr) { - auto _trim = [](std::string& _sub, size_t& _len) { - size_t _pos = 0; + auto _trim = [](std::string& _sub, std::size_t& _len) { + std::size_t _pos = 0; while((_pos = _sub.find_first_of(' ')) == 0) { _sub = _sub.erase(_pos, 1); @@ -413,14 +413,14 @@ G4Backtrace::GetDemangled(FuncT&& func) }; auto str = G4Demangle(std::string(cstr)); - auto beg = str.find("("); + auto beg = str.find('('); if(beg == std::string::npos) { beg = str.find("_Z"); if(beg != std::string::npos) beg -= 1; } - auto end = str.find("+", beg); + auto end = str.find('+', beg); if(beg != std::string::npos && end != std::string::npos) { auto len = end - (beg + 1); @@ -449,7 +449,7 @@ G4Backtrace::GetDemangled(FuncT&& func) //----------------------------------------------------------------------------// -inline void G4Backtrace::Message(int sig, siginfo_t* sinfo, std::ostream& os) +inline void G4Backtrace::Message(G4int sig, siginfo_t* sinfo, std::ostream& os) { // try to avoid as many dynamic allocations as possible here to avoid // overflowing the signal stack @@ -458,13 +458,13 @@ inline void G4Backtrace::Message(int sig, siginfo_t* sinfo, std::ostream& os) signal(sig, SIG_IGN); os << "\n### CAUGHT SIGNAL: " << sig << " ### "; - if(sinfo) + if(sinfo != nullptr) os << "address: " << sinfo->si_addr << ", "; os << Description(sig) << ". "; if(sig == SIGSEGV) { - if(sinfo) + if(sinfo != nullptr) { switch(sinfo->si_code) { @@ -486,7 +486,7 @@ inline void G4Backtrace::Message(int sig, siginfo_t* sinfo, std::ostream& os) } else if(sig == SIGFPE) { - if(sinfo) + if(sinfo != nullptr) { switch(sinfo->si_code) { @@ -514,7 +514,7 @@ inline void G4Backtrace::Message(int sig, siginfo_t* sinfo, std::ostream& os) else { os << "Unknown floating point exception"; - if(sinfo) + if(sinfo != nullptr) os << ": " << sinfo->si_code; os << ". "; } @@ -524,12 +524,12 @@ inline void G4Backtrace::Message(int sig, siginfo_t* sinfo, std::ostream& os) auto bt = GetMangled<256, 3>([](const char* _s) { return _s; }); char prefix[64]; - snprintf(prefix, 64, "[PID=%i, TID=%i]", (int) getpid(), - (int) G4Threading::G4GetThreadId()); - size_t sz = 0; + snprintf(prefix, 64, "[PID=%i, TID=%i]", (G4int) getpid(), + (G4int) G4Threading::G4GetThreadId()); + std::size_t sz = 0; for(auto& itr : bt) { - if(!itr) + if(itr == nullptr) break; if(strlen(itr) == 0) break; @@ -537,7 +537,7 @@ inline void G4Backtrace::Message(int sig, siginfo_t* sinfo, std::ostream& os) } os << "\nBacktrace:\n"; auto _w = std::log10(sz) + 1; - for(size_t i = 0; i < sz; ++i) + for(std::size_t i = 0; i < sz; ++i) { os << prefix << "[" << std::setw(_w) << std::right << i << '/' << std::setw(_w) << std::right << sz << "]> " << std::left << bt.at(i) @@ -559,14 +559,14 @@ inline void G4Backtrace::Message(int sig, siginfo_t* sinfo, std::ostream& os) //----------------------------------------------------------------------------// -inline void G4Backtrace::Handler(int sig, siginfo_t* sinfo, void*) +inline void G4Backtrace::Handler(G4int sig, siginfo_t* sinfo, void*) { Message(sig, sinfo, std::cerr); char msg[1024]; snprintf(msg, 1024, "%s", "\n"); - if(sinfo && G4PSIGINFO_AVAILABLE > 0) + if((sinfo != nullptr) && G4PSIGINFO_AVAILABLE > 0) { # if G4PSIGINFO_AVAILABLE > 0 psiginfo(sinfo, msg); @@ -588,16 +588,16 @@ inline void G4Backtrace::Handler(int sig, siginfo_t* sinfo, void*) //----------------------------------------------------------------------------// -inline int G4Backtrace::Enable(const signal_set_t& _signals) +inline G4int G4Backtrace::Enable(const signal_set_t& _signals) { - static bool _first = true; + static G4bool _first = true; if(_first) { std::string _msg = "!!! G4Backtrace is activated !!!"; std::stringstream _filler; std::stringstream _spacer; _filler.fill('#'); - _filler << std::setw(_msg.length()) << ""; + _filler << std::setw((G4int)_msg.length()) << ""; _spacer << std::setw(10) << ""; std::cout << "\n\n" << _spacer.str() << _filler.str() << "\n" @@ -606,7 +606,7 @@ inline int G4Backtrace::Enable(const signal_set_t& _signals) << std::flush; } _first = false; - int cnt = 0; + G4int cnt = 0; for(auto& itr : _signals) { if(itr < 0) @@ -625,7 +625,7 @@ inline int G4Backtrace::Enable(const signal_set_t& _signals) //----------------------------------------------------------------------------// -inline int G4Backtrace::Enable(const std::string& _signals) +inline G4int G4Backtrace::Enable(const std::string& _signals) { if(_signals.empty()) return 0; @@ -634,7 +634,7 @@ inline int G4Backtrace::Enable(const std::string& _signals) if(!sig.empty()) { for(auto& itr : sig) - itr = toupper(itr); + itr = (char)std::toupper(itr); _targ.insert(G4Backtrace::GetSignal(sig)); } }; @@ -653,7 +653,7 @@ inline int G4Backtrace::Enable(const std::string& _signals) //----------------------------------------------------------------------------// -inline int G4Backtrace::Disable(signal_set_t _signals) +inline G4int G4Backtrace::Disable(signal_set_t _signals) { if(_signals.empty()) { @@ -661,7 +661,7 @@ inline int G4Backtrace::Disable(signal_set_t _signals) _signals.insert(itr.first); } - int cnt = 0; + G4int cnt = 0; for(auto& itr : _signals) { if(itr < 0) @@ -678,7 +678,7 @@ inline int G4Backtrace::Disable(signal_set_t _signals) //----------------------------------------------------------------------------// -inline int G4Backtrace::GetSignal(const std::string& sid) +inline G4int G4Backtrace::GetSignal(const std::string& sid) { for(auto&& itr : GetData().identifiers) { @@ -690,7 +690,7 @@ inline int G4Backtrace::GetSignal(const std::string& sid) //----------------------------------------------------------------------------// -inline std::string G4Backtrace::Description(int sig) +inline std::string G4Backtrace::Description(G4int sig) { for(auto&& itr : GetData().identifiers) { @@ -732,38 +732,38 @@ class G4Backtrace using siginfo_t = fake_siginfo; using sigaction_t = fake_sigaction; - using exit_action_t = std::function; + using exit_action_t = std::function; using frame_func_t = std::function; - using signal_set_t = std::set; + using signal_set_t = std::set; public: struct actions { - using id_entry_t = std::tuple; + using id_entry_t = std::tuple; using id_list_t = std::vector; - std::map is_active = {}; - std::map current = {}; - std::map previous = {}; + std::map is_active = {}; + std::map current = {}; + std::map previous = {}; std::vector exit_actions = {}; const id_list_t identifiers = {}; }; public: - static void Handler(int, siginfo_t*, void*) {} - static void Message(int, siginfo_t*, std::ostream&) {} - static void ExitAction(int) {} - static int Enable(const std::string&) { return 0; } - static int Enable(const signal_set_t& = DefaultSignals()) { return 0; } - static int Disable(signal_set_t = {}) { return 0; } - static int GetSignal(const std::string&) { return -1; } - static std::string Description(int) { return std::string{}; } + static void Handler(G4int, siginfo_t*, void*) {} + static void Message(G4int, siginfo_t*, std::ostream&) {} + static void ExitAction(G4int) {} + static G4int Enable(const std::string&) { return 0; } + static G4int Enable(const signal_set_t& = DefaultSignals()) { return 0; } + static G4int Disable(signal_set_t = {}) { return 0; } + static G4int GetSignal(const std::string&) { return -1; } + static std::string Description(G4int) { return std::string{}; } template static void AddExitAction(FuncT&&) {} - template + template static std::array, Depth> GetMangled( FuncT&& func = FrameFunctor()) { @@ -773,7 +773,7 @@ class G4Backtrace return ret; } - template + template static std::array, Depth> GetDemangled( FuncT&& func = FrameFunctor()) { diff --git a/source/global/management/include/G4BuffercoutDestination.hh b/source/global/management/include/G4BuffercoutDestination.hh index 3c09a90289..d68ea9ca2b 100644 --- a/source/global/management/include/G4BuffercoutDestination.hh +++ b/source/global/management/include/G4BuffercoutDestination.hh @@ -46,10 +46,10 @@ class G4BuffercoutDestination : public G4coutDestination { public: explicit G4BuffercoutDestination(std::size_t maxSize = 0); - virtual ~G4BuffercoutDestination(); + ~G4BuffercoutDestination() override; - virtual G4int ReceiveG4cout(const G4String& msg) override; - virtual G4int ReceiveG4cerr(const G4String& msg) override; + G4int ReceiveG4cout(const G4String& msg) override; + G4int ReceiveG4cerr(const G4String& msg) override; // Flush buffer to std output virtual G4int FlushG4cout(); // Flush buffer to std error diff --git a/source/global/management/include/G4Cache.hh b/source/global/management/include/G4Cache.hh index 6ef86b0a86..30b9a6468d 100644 --- a/source/global/management/include/G4Cache.hh +++ b/source/global/management/include/G4Cache.hh @@ -88,7 +88,7 @@ template class G4Cache { public: - typedef VALTYPE value_type; + using value_type = VALTYPE; // The stored type G4Cache(); @@ -137,11 +137,11 @@ class G4VectorCache : public G4Cache> public: // Some useful definitions // - typedef VALTYPE value_type; - typedef typename std::vector vector_type; - typedef typename vector_type::size_type size_type; - typedef typename vector_type::iterator iterator; - typedef typename vector_type::const_iterator const_iterator; + using value_type = VALTYPE; + using vector_type = typename std::vector; + using size_type = typename vector_type::size_type; + using iterator = typename vector_type::iterator; + using const_iterator = typename vector_type::const_iterator; G4VectorCache(); // Default constructor @@ -177,12 +177,12 @@ class G4MapCache : public G4Cache> public: // Some useful definitions // - typedef KEYTYPE key_type; - typedef VALTYPE value_type; - typedef typename std::map map_type; - typedef typename map_type::size_type size_type; - typedef typename map_type::iterator iterator; - typedef typename map_type::const_iterator const_iterator; + using key_type = KEYTYPE; + using value_type = VALTYPE; + using map_type = typename std::map; + using size_type = typename map_type::size_type; + using iterator = typename map_type::iterator; + using const_iterator = typename map_type::const_iterator; virtual ~G4MapCache(); // Default destructor @@ -339,8 +339,7 @@ std::atomic G4Cache::dstrctr(0); //========== Implementation: G4VectorCache =========================== template -G4VectorCache::G4VectorCache() -{} +G4VectorCache::G4VectorCache() = default; template G4VectorCache::~G4VectorCache() diff --git a/source/global/management/include/G4CacheDetails.hh b/source/global/management/include/G4CacheDetails.hh index a80e9d8bfa..249de19dc8 100644 --- a/source/global/management/include/G4CacheDetails.hh +++ b/source/global/management/include/G4CacheDetails.hh @@ -219,7 +219,7 @@ void G4CacheReference::Initialize(unsigned int id) } if(cache()->size() <= id) { - cache()->resize(id + 1, static_cast(0)); + cache()->resize(id + 1, static_cast(nullptr)); } } diff --git a/source/global/management/include/G4DataVector.icc b/source/global/management/include/G4DataVector.icc index 98e4955b0c..5114ca206f 100644 --- a/source/global/management/include/G4DataVector.icc +++ b/source/global/management/include/G4DataVector.icc @@ -61,9 +61,9 @@ inline std::size_t G4DataVector::index(const G4double& a) inline G4bool G4DataVector::contains(const G4double& a) const { - for(auto i = cbegin(); i != cend(); ++i) + for(double i : *this) { - if(!(*i != a)) + if(!(i != a)) { return true; } diff --git a/source/global/management/include/G4EnvironmentUtils.hh b/source/global/management/include/G4EnvironmentUtils.hh index bd723abb79..5b4d7c5250 100644 --- a/source/global/management/include/G4EnvironmentUtils.hh +++ b/source/global/management/include/G4EnvironmentUtils.hh @@ -66,7 +66,7 @@ class G4EnvSettings static G4EnvSettings* GetInstance() { - static G4EnvSettings* _instance = new G4EnvSettings(); + static auto* _instance = new G4EnvSettings(); return _instance; } @@ -143,7 +143,7 @@ template <> inline G4bool G4GetEnv(const std::string& env_id, bool _default) { char* env_var = std::getenv(env_id.c_str()); - if(env_var) + if(env_var != nullptr) { // record value defined by environment G4EnvSettings::GetInstance()->insert(env_id, true); @@ -202,7 +202,7 @@ inline G4String G4GetDataEnv(const std::string& env_id, const char* description) { char* env_var = std::getenv(env_id.c_str()); - if(env_var) + if(env_var != nullptr) { std::string str_var = std::string(env_var); std::istringstream iss(str_var); diff --git a/source/global/management/include/G4ErrorPropagatorData.hh b/source/global/management/include/G4ErrorPropagatorData.hh index 2430ae1553..d72b57f1d8 100644 --- a/source/global/management/include/G4ErrorPropagatorData.hh +++ b/source/global/management/include/G4ErrorPropagatorData.hh @@ -84,18 +84,18 @@ class G4ErrorPropagatorData static void SetVerbose(G4int ver); private: - G4ErrorPropagatorData(); + G4ErrorPropagatorData() = default; ~G4ErrorPropagatorData(); // constructor and destructor are private private: static G4ThreadLocal G4ErrorPropagatorData* fpInstance; - G4ErrorMode theMode; + G4ErrorMode theMode{G4ErrorMode_PropTest}; - G4ErrorState theState; + G4ErrorState theState{G4ErrorState_PreInit}; - G4ErrorStage theStage; + G4ErrorStage theStage{G4ErrorStage_Inflation}; G4ErrorTarget* theTarget = nullptr; diff --git a/source/global/management/include/G4Exception.hh b/source/global/management/include/G4Exception.hh index de1ec1da10..d91454a868 100644 --- a/source/global/management/include/G4Exception.hh +++ b/source/global/management/include/G4Exception.hh @@ -33,41 +33,23 @@ #ifndef G4EXCEPTION_HH #define G4EXCEPTION_HH -#include "G4String.hh" -#include "G4VExceptionHandler.hh" -#include "G4ios.hh" +#include "G4ExceptionSeverity.hh" + +#include using G4ExceptionDescription = std::ostringstream; -inline const G4String G4ExceptionErrBannerStart() -{ - return "\n-------- EEEE ------- G4Exception-START -------- EEEE -------\n"; -} -inline const G4String G4ExceptionWarnBannerStart() -{ - return "\n-------- WWWW ------- G4Exception-START -------- WWWW -------\n"; -} +void G4Exception(const char* originOfException, + const char* exceptionCode, G4ExceptionSeverity severity, + const char* description); -inline const G4String G4ExceptionErrBannerEnd() -{ - return "\n-------- EEEE ------- G4Exception-END -------- EEEE -------\n"; -} -inline const G4String G4ExceptionWarnBannerEnd() -{ - return "\n-------- WWWW ------- G4Exception-END -------- WWWW -------\n"; -} +void G4Exception(const char* originOfException, + const char* exceptionCode, G4ExceptionSeverity severity, + G4ExceptionDescription& description); -extern void G4Exception(const char* originOfException, - const char* exceptionCode, G4ExceptionSeverity severity, - const char* description); - -extern void G4Exception(const char* originOfException, - const char* exceptionCode, G4ExceptionSeverity severity, - G4ExceptionDescription& description); - -extern void G4Exception(const char* originOfException, - const char* exceptionCode, G4ExceptionSeverity severity, - G4ExceptionDescription& description, - const char* comments); +void G4Exception(const char* originOfException, + const char* exceptionCode, G4ExceptionSeverity severity, + G4ExceptionDescription& description, + const char* comments); #endif diff --git a/source/global/management/include/G4Exp.hh b/source/global/management/include/G4Exp.hh index a763f6cc0d..d5296acd21 100644 --- a/source/global/management/include/G4Exp.hh +++ b/source/global/management/include/G4Exp.hh @@ -64,8 +64,9 @@ #else # include "G4Types.hh" + +# include # include -# include namespace G4ExpConsts { @@ -102,7 +103,7 @@ namespace G4ExpConsts // union ieee754 { - ieee754(){}; + ieee754()= default; ieee754(G4double thed) { d = thed; }; ieee754(uint64_t thell) { ll = thell; }; ieee754(G4float thef) { f[0] = thef; }; diff --git a/source/global/management/include/G4FilecoutDestination.hh b/source/global/management/include/G4FilecoutDestination.hh index 864f844e2f..e21eab5753 100644 --- a/source/global/management/include/G4FilecoutDestination.hh +++ b/source/global/management/include/G4FilecoutDestination.hh @@ -50,7 +50,7 @@ class G4FilecoutDestination : public G4coutDestination , m_mode(mode) , m_output(nullptr) {} - virtual ~G4FilecoutDestination(); + ~G4FilecoutDestination() override; void SetFileName(const G4String& fname) { m_name = fname; } @@ -58,8 +58,8 @@ class G4FilecoutDestination : public G4coutDestination // By default append to existing file void Close(); - virtual G4int ReceiveG4cout(const G4String& msg) override; - virtual G4int ReceiveG4cerr(const G4String& msg) override; + G4int ReceiveG4cout(const G4String& msg) override; + G4int ReceiveG4cerr(const G4String& msg) override; private: G4String m_name; diff --git a/source/global/management/include/G4LockcoutDestination.hh b/source/global/management/include/G4LockcoutDestination.hh index b89a7217b1..ab756b7c9b 100644 --- a/source/global/management/include/G4LockcoutDestination.hh +++ b/source/global/management/include/G4LockcoutDestination.hh @@ -43,9 +43,9 @@ class G4LockcoutDestination : public G4coutDestination { public: G4LockcoutDestination() = default; - virtual ~G4LockcoutDestination() = default; - virtual G4int ReceiveG4cout(const G4String& msg) override; - virtual G4int ReceiveG4cerr(const G4String& msg) override; + ~G4LockcoutDestination() override = default; + G4int ReceiveG4cout(const G4String& msg) override; + G4int ReceiveG4cerr(const G4String& msg) override; }; #endif diff --git a/source/global/management/include/G4Log.hh b/source/global/management/include/G4Log.hh index 31b9c531cb..1401117ea1 100644 --- a/source/global/management/include/G4Log.hh +++ b/source/global/management/include/G4Log.hh @@ -64,8 +64,9 @@ #else # include "G4Types.hh" + +# include # include -# include // local namespace for the constants/functions which are necessary only here // @@ -83,7 +84,7 @@ namespace G4LogConsts // union ieee754 { - ieee754(){}; + ieee754()= default; ieee754(G4double thed) { d = thed; }; ieee754(uint64_t thell) { ll = thell; }; ieee754(G4float thef) { f[0] = thef; }; @@ -191,7 +192,7 @@ namespace G4LogConsts // chop the head of the number: an int contains more than 11 bits (32) int32_t e = - le; // This is important since sums on uint64_t do not vectorise + (int32_t)le; // This is important since sums on uint64_t do not vectorise fe = e - 1023; // This puts to 11 zeroes the exponent diff --git a/source/global/management/include/G4MTcoutDestination.hh b/source/global/management/include/G4MTcoutDestination.hh index f861c8079b..0ed0986ac2 100644 --- a/source/global/management/include/G4MTcoutDestination.hh +++ b/source/global/management/include/G4MTcoutDestination.hh @@ -46,7 +46,7 @@ class G4MTcoutDestination : public G4MulticoutDestination { public: explicit G4MTcoutDestination(const G4int& threadId); - virtual ~G4MTcoutDestination(); + ~G4MTcoutDestination() override; virtual void Reset(); diff --git a/source/global/management/include/G4MasterForwardcoutDestination.hh b/source/global/management/include/G4MasterForwardcoutDestination.hh index 45bfb0664f..58409c744c 100644 --- a/source/global/management/include/G4MasterForwardcoutDestination.hh +++ b/source/global/management/include/G4MasterForwardcoutDestination.hh @@ -46,9 +46,9 @@ class G4MasterForwardcoutDestination : public G4coutDestination public: G4MasterForwardcoutDestination() = default; - virtual ~G4MasterForwardcoutDestination() = default; - virtual G4int ReceiveG4cout(const G4String& msg) override; - virtual G4int ReceiveG4cerr(const G4String& msg) override; + ~G4MasterForwardcoutDestination() override = default; + G4int ReceiveG4cout(const G4String& msg) override; + G4int ReceiveG4cerr(const G4String& msg) override; }; #endif diff --git a/source/global/management/include/G4MulticoutDestination.hh b/source/global/management/include/G4MulticoutDestination.hh index 369470a7e6..2b4ad6706c 100644 --- a/source/global/management/include/G4MulticoutDestination.hh +++ b/source/global/management/include/G4MulticoutDestination.hh @@ -63,11 +63,11 @@ class G4MulticoutDestination { public: G4MulticoutDestination() = default; - virtual ~G4MulticoutDestination() {} + ~G4MulticoutDestination() override = default; // Forward call to contained destination. Note that the message may have // been modified by formatters attached to this - virtual G4int ReceiveG4cout(const G4String& msg) override + G4int ReceiveG4cout(const G4String& msg) override { G4bool result = true; std::for_each(begin(), end(), [&](G4coutDestinationUPtr& e) { @@ -76,7 +76,7 @@ class G4MulticoutDestination return (result ? 0 : -1); } - virtual G4int ReceiveG4cerr(const G4String& msg) override + G4int ReceiveG4cerr(const G4String& msg) override { G4bool result = true; std::for_each(begin(), end(), [&](G4coutDestinationUPtr& e) { diff --git a/source/global/management/include/G4PhysicsFreeVector.hh b/source/global/management/include/G4PhysicsFreeVector.hh index 57e320287d..78b97f397f 100644 --- a/source/global/management/include/G4PhysicsFreeVector.hh +++ b/source/global/management/include/G4PhysicsFreeVector.hh @@ -76,7 +76,7 @@ public: explicit G4PhysicsFreeVector(const G4double* energies, const G4double* values, std::size_t length, G4bool spline = false); - virtual ~G4PhysicsFreeVector() = default; + ~G4PhysicsFreeVector() override = default; // Filling of the vector with the check on index and energy void PutValues(const std::size_t index, diff --git a/source/global/management/include/G4PhysicsLinearVector.hh b/source/global/management/include/G4PhysicsLinearVector.hh index 51bcbb884c..c893637cab 100644 --- a/source/global/management/include/G4PhysicsLinearVector.hh +++ b/source/global/management/include/G4PhysicsLinearVector.hh @@ -56,7 +56,7 @@ public: explicit G4PhysicsLinearVector(G4double Emin, G4double Emax, std::size_t Nbin, G4bool spline = false); - virtual ~G4PhysicsLinearVector() = default; + ~G4PhysicsLinearVector() override = default; protected: diff --git a/source/global/management/include/G4PhysicsLogVector.hh b/source/global/management/include/G4PhysicsLogVector.hh index 0f08c033c7..a81cb05eec 100644 --- a/source/global/management/include/G4PhysicsLogVector.hh +++ b/source/global/management/include/G4PhysicsLogVector.hh @@ -56,7 +56,7 @@ public: explicit G4PhysicsLogVector(G4double Emin, G4double Emax, std::size_t Nbin, G4bool spline = false); - virtual ~G4PhysicsLogVector() = default; + ~G4PhysicsLogVector() override = default; protected: diff --git a/source/global/management/include/G4PhysicsTable.hh b/source/global/management/include/G4PhysicsTable.hh index b71d5ea6a2..389d10f62a 100644 --- a/source/global/management/include/G4PhysicsTable.hh +++ b/source/global/management/include/G4PhysicsTable.hh @@ -58,7 +58,7 @@ class G4PhysicsTable : public std::vector using G4FlagCollection = std::vector; public: - G4PhysicsTable(); + G4PhysicsTable() = default; // Default constructor explicit G4PhysicsTable(size_t cap); @@ -84,7 +84,7 @@ class G4PhysicsTable : public std::vector void insertAt(std::size_t, G4PhysicsVector*); // Insert element at the specified position in the collection - void resize(std::size_t, G4PhysicsVector* vec = (G4PhysicsVector*) (0)); + void resize(std::size_t, G4PhysicsVector* vec = nullptr); // Resize collection std::size_t entries() const; diff --git a/source/global/management/include/G4PhysicsTable.icc b/source/global/management/include/G4PhysicsTable.icc index 3ab568bd71..a243f82df6 100644 --- a/source/global/management/include/G4PhysicsTable.icc +++ b/source/global/management/include/G4PhysicsTable.icc @@ -31,14 +31,11 @@ inline void G4PhysicsTable::clearAndDestroy() { G4PhysicsVector* a = nullptr; - while(size() > 0) + while(!empty()) { a = G4PhysCollection::back(); G4PhysCollection::pop_back(); - if(a != nullptr) - { - delete a; - } + delete a; } G4PhysCollection::clear(); vecFlag.clear(); diff --git a/source/global/management/include/G4PhysicsVector.hh b/source/global/management/include/G4PhysicsVector.hh index 6826736cdb..2bfc36353d 100644 --- a/source/global/management/include/G4PhysicsVector.hh +++ b/source/global/management/include/G4PhysicsVector.hh @@ -205,7 +205,7 @@ protected: G4double logemin = 0.0; // used only for log vector G4int verboseLevel = 0; - G4int idxmax = 0; + std::size_t idxmax = 0; std::size_t numberOfNodes = 0; G4PhysicsVectorType type = T_G4PhysicsFreeVector; diff --git a/source/global/management/include/G4PhysicsVector.icc b/source/global/management/include/G4PhysicsVector.icc index 1be9e821fe..ffc69e1e28 100644 --- a/source/global/management/include/G4PhysicsVector.icc +++ b/source/global/management/include/G4PhysicsVector.icc @@ -153,7 +153,8 @@ inline G4double G4PhysicsVector::Interpolation(const std::size_t idx, inline std::size_t G4PhysicsVector::ComputeLogVectorBin( const G4double loge) const { - return std::min(static_cast((loge - logemin) * invdBin), idxmax); + return std::min( static_cast((loge - logemin) * invdBin), + static_cast(idxmax) ); } // --------------------------------------------------------------- @@ -167,13 +168,14 @@ inline std::size_t G4PhysicsVector::GetBin(const G4double e) const break; case T_G4PhysicsLinearVector: - bin = std::min(static_cast((e - edgeMin) * invdBin), idxmax); + bin = std::min( static_cast((e - edgeMin) * invdBin), + static_cast(idxmax) ); break; default: // Bin location proposed by K.Genser (FNAL) - bin = std::lower_bound(binVector.begin(), binVector.end(), e) - - binVector.begin() - 1; + bin = std::lower_bound(binVector.cbegin(), binVector.cend(), e) - + binVector.cbegin() - 1; } return bin; } diff --git a/source/global/management/include/G4ReferenceCountedHandle.hh b/source/global/management/include/G4ReferenceCountedHandle.hh index 22569fc37a..6779c6d09a 100644 --- a/source/global/management/include/G4ReferenceCountedHandle.hh +++ b/source/global/management/include/G4ReferenceCountedHandle.hh @@ -253,13 +253,13 @@ X* G4ReferenceCountedHandle::operator->() const template G4bool G4ReferenceCountedHandle::operator!() const { - return ((fObj == nullptr) ? true : false); + return fObj == nullptr; } template G4ReferenceCountedHandle::operator bool() const { - return ((fObj != nullptr) ? true : false); + return fObj != nullptr; } template diff --git a/source/global/management/include/G4SliceTimer.hh b/source/global/management/include/G4SliceTimer.hh index ae24ef620f..fca9b3eb36 100644 --- a/source/global/management/include/G4SliceTimer.hh +++ b/source/global/management/include/G4SliceTimer.hh @@ -39,7 +39,7 @@ #ifndef G4SLICE_TIMER_HH #define G4SLICE_TIMER_HH 1 -#ifndef WIN32 +#if !(defined(WIN32) || defined(__MINGW32__)) # include # include #else diff --git a/source/global/management/include/G4String.hh b/source/global/management/include/G4String.hh index e223f7b466..e447e2b1e4 100644 --- a/source/global/management/include/G4String.hh +++ b/source/global/management/include/G4String.hh @@ -49,15 +49,15 @@ #ifndef G4String_hh #define G4String_hh 1 +#include "G4Types.hh" + #include +#include #include #include -#include #include #include -#include "G4Types.hh" - class G4String : public std::string { public: diff --git a/source/global/management/include/G4String.icc b/source/global/management/include/G4String.icc index caedbf7174..c0070fd7e9 100644 --- a/source/global/management/include/G4String.icc +++ b/source/global/management/include/G4String.icc @@ -32,9 +32,7 @@ inline G4String::G4String(const std::string& str) : std::string(str) {} -inline G4String::G4String(const G4String& str) - : std::string(str) -{} +inline G4String::G4String(const G4String& str) = default; inline G4String::G4String(std::string&& str) : std::string(std::move(str)) diff --git a/source/global/management/include/G4ThreadLocalSingleton.hh b/source/global/management/include/G4ThreadLocalSingleton.hh index fd79c205f1..0df03e1feb 100644 --- a/source/global/management/include/G4ThreadLocalSingleton.hh +++ b/source/global/management/include/G4ThreadLocalSingleton.hh @@ -150,7 +150,7 @@ class G4ThreadLocalSingleton : private G4Cache G4ThreadLocalSingleton(); // Creates thread-local singleton manager - ~G4ThreadLocalSingleton(); + ~G4ThreadLocalSingleton() override; G4ThreadLocalSingleton(const G4ThreadLocalSingleton&) = delete; G4ThreadLocalSingleton(G4ThreadLocalSingleton&&) = default; @@ -179,7 +179,7 @@ G4ThreadLocalSingleton::G4ThreadLocalSingleton() : G4Cache() { G4MUTEXINIT(listm); - G4Cache::Put(static_cast(0)); + G4Cache::Put(nullptr); // Uncomment below to find the origin of where instantiation happened /* auto bt = G4Backtrace::GetDemangled<4, 1>( diff --git a/source/global/management/include/G4Threading.hh b/source/global/management/include/G4Threading.hh index 0f30eb7573..b10f1cce59 100644 --- a/source/global/management/include/G4Threading.hh +++ b/source/global/management/include/G4Threading.hh @@ -145,7 +145,7 @@ G4Mutex& G4TypeMutex(const unsigned int& _n = 0) template G4RecursiveMutex& G4TypeRecursiveMutex(const unsigned int& _n = 0) { - static G4RecursiveMutex* _mutex = new G4RecursiveMutex(); + static auto* _mutex = new G4RecursiveMutex(); if(_n == 0) return *(_mutex); diff --git a/source/global/management/include/G4Timer.hh b/source/global/management/include/G4Timer.hh index ea4e7a4f67..022e3557df 100644 --- a/source/global/management/include/G4Timer.hh +++ b/source/global/management/include/G4Timer.hh @@ -72,7 +72,7 @@ #ifndef G4TIMER_HH #define G4TIMER_HH 1 -#ifndef WIN32 +#if !(defined(WIN32) || defined(__MINGW32__)) # include # include #else @@ -107,11 +107,7 @@ extern "C" class G4Timer { - using clock_type = std::chrono::high_resolution_clock; - public: - G4Timer(); - inline void Start(); inline void Stop(); inline G4bool IsValid() const; @@ -121,7 +117,8 @@ class G4Timer G4double GetUserElapsed() const; private: - G4bool fValidTimes; + G4bool fValidTimes{false}; + using clock_type = std::chrono::high_resolution_clock; std::chrono::time_point fStartRealTime, fEndRealTime; tms fStartTimes, fEndTimes; }; diff --git a/source/global/management/include/G4Tokenizer.hh b/source/global/management/include/G4Tokenizer.hh index 2eebf65a70..37fbb7f0bb 100644 --- a/source/global/management/include/G4Tokenizer.hh +++ b/source/global/management/include/G4Tokenizer.hh @@ -58,7 +58,7 @@ class G4Tokenizer { for(i = 0; i < l; ++i) { - if(string2tokenize[actual] == str[i]) + if(string2tokenize[(G4int)actual] == str[i]) hasws = true; } if(hasws) @@ -73,7 +73,7 @@ class G4Tokenizer for(j = actual; j < string2tokenize.size(); ++j) { for(i = 0; i < l; ++i) - if(string2tokenize[j] == str[i]) + if(string2tokenize[(G4int)j] == str[i]) break; if(i < l) break; diff --git a/source/global/management/include/G4Version.hh b/source/global/management/include/G4Version.hh index 4cf6cb88a8..2c1525edf2 100644 --- a/source/global/management/include/G4Version.hh +++ b/source/global/management/include/G4Version.hh @@ -44,7 +44,7 @@ #endif #ifndef G4VERSION_TAG - #define G4VERSION_TAG "$Name: geant4-11-01-beta-01 $" + #define G4VERSION_TAG "$Name: geant4-11-01 $" #endif // as variables @@ -53,10 +53,10 @@ #include "G4Types.hh" #ifdef G4MULTITHREADED -static const G4String G4Version = "$Name: geant4-11-01-beta-01 [MT]$"; +static const G4String G4Version = "$Name: geant4-11-01 [MT]$"; #else -static const G4String G4Version = "$Name: geant4-11-01-beta-01 $"; +static const G4String G4Version = "$Name: geant4-11-01 $"; #endif -static const G4String G4Date = "(30-June-2022)"; +static const G4String G4Date = "(9-December-2022)"; #endif diff --git a/source/global/management/include/G4strstreambuf.hh b/source/global/management/include/G4strstreambuf.hh index b87cd82de3..2dc08588e5 100644 --- a/source/global/management/include/G4strstreambuf.hh +++ b/source/global/management/include/G4strstreambuf.hh @@ -60,10 +60,10 @@ class G4strstreambuf : public std::basic_streambuf { public: G4strstreambuf(); - ~G4strstreambuf(); + ~G4strstreambuf() override; - virtual G4int overflow(G4int c = EOF); - virtual G4int sync(); + G4int overflow(G4int c = EOF) override; + G4int sync() override; #ifdef WIN32 virtual G4int underflow(); diff --git a/source/global/management/include/G4strstreambuf.icc b/source/global/management/include/G4strstreambuf.icc index 0409399119..47142210c1 100644 --- a/source/global/management/include/G4strstreambuf.icc +++ b/source/global/management/include/G4strstreambuf.icc @@ -31,7 +31,6 @@ // -------------------------------------------------------------------- inline G4strstreambuf::G4strstreambuf() - : std::basic_streambuf() { size = 4095; buffer = new char[size + 1]; @@ -53,7 +52,7 @@ inline G4strstreambuf::~G4strstreambuf() // -------------------------------------------------------------------- inline G4strstreambuf::G4strstreambuf(const G4strstreambuf& right) - : std::basic_streambuf() + : std::basic_streambuf() // NOLINT(readability-redundant-member-init) , buffer(right.buffer) , count(right.count) , size(right.size) @@ -81,7 +80,7 @@ inline G4int G4strstreambuf::overflow(G4int c) if(count >= size) result = sync(); - buffer[count] = c; + buffer[count] = (char)c; count++; return result; diff --git a/source/global/management/include/templates.hh b/source/global/management/include/templates.hh index dd14bda87c..77c8a64589 100644 --- a/source/global/management/include/templates.hh +++ b/source/global/management/include/templates.hh @@ -42,9 +42,9 @@ #endif #if HIGH_PRECISION -typedef double Float; +using Float = double; #else -typedef float Float; +using Float = float; #endif // Following values have been taken from limits.h @@ -133,7 +133,7 @@ inline T sqr(const T& x) inline int G4lrint(double ad) { - return std::lrint(ad); + return (int)std::lrint(ad); } //----------------------------- diff --git a/source/global/management/src/G4AllocatorList.cc b/source/global/management/src/G4AllocatorList.cc index 5f7a874cb6..4dcea65524 100644 --- a/source/global/management/src/G4AllocatorList.cc +++ b/source/global/management/src/G4AllocatorList.cc @@ -105,6 +105,3 @@ void G4AllocatorList::Destroy(G4int nStat, G4int verboseLevel) } fList.clear(); } - -// -------------------------------------------------------------------- -G4int G4AllocatorList::Size() const { return fList.size(); } diff --git a/source/global/management/src/G4ErrorPropagatorData.cc b/source/global/management/src/G4ErrorPropagatorData.cc index 6a812ea930..8c43195900 100644 --- a/source/global/management/src/G4ErrorPropagatorData.cc +++ b/source/global/management/src/G4ErrorPropagatorData.cc @@ -36,13 +36,6 @@ G4ThreadLocal G4ErrorPropagatorData* G4ErrorPropagatorData::fpInstance = nullptr; G4ThreadLocal G4int G4ErrorPropagatorData::theVerbosity = 0; -//--------------------------------------------------------------------- -G4ErrorPropagatorData::G4ErrorPropagatorData() - : theMode(G4ErrorMode_PropTest) - , theState(G4ErrorState_PreInit) - , theStage(G4ErrorStage_Inflation) -{} - // -------------------------------------------------------------------- G4ErrorPropagatorData::~G4ErrorPropagatorData() { diff --git a/source/global/management/src/G4Exception.cc b/source/global/management/src/G4Exception.cc index c71f26c8b4..d2815ce747 100644 --- a/source/global/management/src/G4Exception.cc +++ b/source/global/management/src/G4Exception.cc @@ -29,7 +29,31 @@ // -------------------------------------------------------------------- #include "G4Exception.hh" +#include "G4ios.hh" #include "G4StateManager.hh" +#include "G4VExceptionHandler.hh" + +namespace { + +inline const G4String G4ExceptionErrBannerStart() +{ + return "\n-------- EEEE ------- G4Exception-START -------- EEEE -------\n"; +} +inline const G4String G4ExceptionWarnBannerStart() +{ + return "\n-------- WWWW ------- G4Exception-START -------- WWWW -------\n"; +} + +inline const G4String G4ExceptionErrBannerEnd() +{ + return "\n-------- EEEE ------- G4Exception-END -------- EEEE -------\n"; +} +inline const G4String G4ExceptionWarnBannerEnd() +{ + return "\n-------- WWWW ------- G4Exception-END -------- WWWW -------\n"; +} + +} // namespace // -------------------------------------------------------------------- void G4Exception(const char* originOfException, const char* exceptionCode, diff --git a/source/global/management/src/G4MTcoutDestination.cc b/source/global/management/src/G4MTcoutDestination.cc index 2690dac32c..e3da068a4f 100644 --- a/source/global/management/src/G4MTcoutDestination.cc +++ b/source/global/management/src/G4MTcoutDestination.cc @@ -28,17 +28,18 @@ // Authors: M.Asai, A.Dotti (SLAC) - 23 May 2013 // --------------------------------------------------------------- -#include -#include +#include "G4MTcoutDestination.hh" #include "G4AutoLock.hh" #include "G4BuffercoutDestination.hh" #include "G4FilecoutDestination.hh" #include "G4LockcoutDestination.hh" -#include "G4MTcoutDestination.hh" #include "G4MasterForwardcoutDestination.hh" #include "G4strstreambuf.hh" +#include +#include + namespace { G4String empty = ""; diff --git a/source/global/management/src/G4Physics2DVector.cc b/source/global/management/src/G4Physics2DVector.cc index c555913e55..a3bcb318e5 100644 --- a/source/global/management/src/G4Physics2DVector.cc +++ b/source/global/management/src/G4Physics2DVector.cc @@ -161,20 +161,19 @@ G4double G4Physics2DVector::Value(G4double xx, G4double yy, std::size_t& idx, { return BicubicInterpolation(x, y, idx, idy); } - else - { - const G4double x1 = xVector[idx]; - const G4double x2 = xVector[idx + 1]; - const G4double y1 = yVector[idy]; - const G4double y2 = yVector[idy + 1]; - const G4double v11 = GetValue(idx, idy); - const G4double v12 = GetValue(idx + 1, idy); - const G4double v21 = GetValue(idx, idy + 1); - const G4double v22 = GetValue(idx + 1, idy + 1); - return ((y2 - y) * (v11 * (x2 - x) + v12 * (x - x1)) + - ((y - y1) * (v21 * (x2 - x) + v22 * (x - x1)))) / - ((x2 - x1) * (y2 - y1)); - } + + const G4double x1 = xVector[idx]; + const G4double x2 = xVector[idx + 1]; + const G4double y1 = yVector[idy]; + const G4double y2 = yVector[idy + 1]; + const G4double v11 = GetValue(idx, idy); + const G4double v12 = GetValue(idx + 1, idy); + const G4double v21 = GetValue(idx, idy + 1); + const G4double v22 = GetValue(idx + 1, idy + 1); + return ((y2 - y) * (v11 * (x2 - x) + v12 * (x - x1)) + + ((y - y1) * (v21 * (x2 - x) + v22 * (x - x1)))) / + ((x2 - x1) * (y2 - y1)); + } // -------------------------------------------------------------- @@ -287,7 +286,7 @@ void G4Physics2DVector::PutVectors(const std::vector& vecX, void G4Physics2DVector::Store(std::ofstream& out) const { // binning - G4int prec = out.precision(); + G4long prec = out.precision(); out << G4int(type) << " " << numberOfXNodes << " " << numberOfYNodes << G4endl; out << std::setprecision(8); diff --git a/source/global/management/src/G4PhysicsLinearVector.cc b/source/global/management/src/G4PhysicsLinearVector.cc index 9c8523e3e6..2090bae104 100644 --- a/source/global/management/src/G4PhysicsLinearVector.cc +++ b/source/global/management/src/G4PhysicsLinearVector.cc @@ -67,7 +67,7 @@ G4PhysicsLinearVector::G4PhysicsLinearVector(G4double Emin, G4double Emax, binVector[numberOfNodes - 1] = Emax; Initialise(); - for(G4int i = 1; i <= idxmax; ++i) + for(std::size_t i = 1; i <= idxmax; ++i) { binVector[i] = edgeMin + i / invdBin; } diff --git a/source/global/management/src/G4PhysicsLogVector.cc b/source/global/management/src/G4PhysicsLogVector.cc index e9f65d2732..076137d7f0 100644 --- a/source/global/management/src/G4PhysicsLogVector.cc +++ b/source/global/management/src/G4PhysicsLogVector.cc @@ -69,7 +69,7 @@ G4PhysicsLogVector::G4PhysicsLogVector(G4double Emin, G4double Emax, binVector[numberOfNodes - 1] = Emax; Initialise(); - for(G4int i = 1; i <= idxmax; ++i) + for(std::size_t i = 1; i <= idxmax; ++i) { binVector[i] = edgeMin*G4Exp(i / invdBin); } diff --git a/source/global/management/src/G4PhysicsTable.cc b/source/global/management/src/G4PhysicsTable.cc index 09abf0940a..6e940eeca6 100644 --- a/source/global/management/src/G4PhysicsTable.cc +++ b/source/global/management/src/G4PhysicsTable.cc @@ -43,14 +43,8 @@ #include "G4PhysicsVector.hh" #include "G4PhysicsVectorType.hh" -// -------------------------------------------------------------------- -G4PhysicsTable::G4PhysicsTable() - : G4PhysCollection() -{} - // -------------------------------------------------------------------- G4PhysicsTable::G4PhysicsTable(std::size_t cap) - : G4PhysCollection() { reserve(cap); vecFlag.reserve(cap); diff --git a/source/global/management/src/G4PhysicsVector.cc b/source/global/management/src/G4PhysicsVector.cc index 6178a0bfb0..269d7efe20 100644 --- a/source/global/management/src/G4PhysicsVector.cc +++ b/source/global/management/src/G4PhysicsVector.cc @@ -178,11 +178,11 @@ std::size_t G4PhysicsVector::FindBin(const G4double energy, { return idx; } - else if(energy <= binVector[1]) + if(energy <= binVector[1]) { return 0; } - else if(energy >= binVector[idxmax]) + if(energy >= binVector[idxmax]) { return idxmax; } @@ -224,7 +224,7 @@ void G4PhysicsVector::FillSecondDerivatives(const G4SplineType stype, // check energies of free vector if(type == T_G4PhysicsFreeVector) { - for(G4int i=0; i<=idxmax; ++i) + for(std::size_t i=0; i<=idxmax; ++i) { if(binVector[i + 1] <= binVector[i]) { @@ -292,7 +292,7 @@ void G4PhysicsVector::ComputeSecDerivative1() // B.I. Kvasov "Methods of shape-preserving spline approximation" // World Scientific, 2000 { - G4int n = numberOfNodes - 1; + std::size_t n = numberOfNodes - 1; G4double* u = new G4double[n]; G4double p, sig; @@ -307,7 +307,7 @@ void G4PhysicsVector::ComputeSecDerivative1() secDerivative[1] = (2.0 * binVector[1] - binVector[0] - binVector[2]) / (2.0 * binVector[2] - binVector[0] - binVector[1]); - for(G4int i = 2; i < n - 1; ++i) + for(std::size_t i = 2; i < n - 1; ++i) { sig = (binVector[i] - binVector[i - 1]) / (binVector[i + 1] - binVector[i - 1]); @@ -336,7 +336,7 @@ void G4PhysicsVector::ComputeSecDerivative1() // The back-substitution loop for the triagonal algorithm of solving // a linear system of equations. - for(G4int k = n - 2; k > 1; --k) + for(std::size_t k = n - 2; k > 1; --k) { secDerivative[k] *= (secDerivative[k + 1] - u[k] * (binVector[k + 1] - binVector[k - 1]) / @@ -359,7 +359,7 @@ void G4PhysicsVector::ComputeSecDerivative2(G4double firstPointDerivative, // See for example W.H. Press et al. "Numerical recipes in C" // Cambridge University Press, 1997. { - G4int n = numberOfNodes - 1; + std::size_t n = numberOfNodes - 1; G4double* u = new G4double[n]; G4double p, sig, un; @@ -372,7 +372,7 @@ void G4PhysicsVector::ComputeSecDerivative2(G4double firstPointDerivative, // Decomposition loop for tridiagonal algorithm. secDerivative[i] // and u[i] are used for temporary storage of the decomposed factors. - for(G4int i = 1; i < n; ++i) + for(std::size_t i = 1; i < n; ++i) { sig = (binVector[i] - binVector[i - 1]) / (binVector[i + 1] - binVector[i - 1]); @@ -397,7 +397,7 @@ void G4PhysicsVector::ComputeSecDerivative2(G4double firstPointDerivative, // The back-substitution loop for the triagonal algorithm of solving // a linear system of equations. - for(G4int k = n - 1; k > 0; --k) + for(std::size_t k = n - 1; k > 0; --k) { secDerivative[k] *= (secDerivative[k + 1] - u[k] * (binVector[k + 1] - binVector[k - 1]) / @@ -412,7 +412,7 @@ void G4PhysicsVector::ComputeSecDerivative2(G4double firstPointDerivative, std::ostream& operator<<(std::ostream& out, const G4PhysicsVector& pv) { // binning - G4int prec = out.precision(); + G4long prec = out.precision(); out << std::setprecision(12) << pv.edgeMin << " " << pv.edgeMax << " " << pv.numberOfNodes << G4endl; @@ -422,7 +422,7 @@ std::ostream& operator<<(std::ostream& out, const G4PhysicsVector& pv) { out << pv.binVector[i] << " " << pv.dataVector[i] << G4endl; } - out << std::setprecision(prec); + out.precision(prec); return out; } @@ -442,10 +442,9 @@ G4double G4PhysicsVector::GetEnergy(const G4double val) const { return edgeMax; } - std::size_t bin = - std::lower_bound(dataVector.begin(), dataVector.end(), val) - - dataVector.begin() - 1; - if(static_cast(bin) > idxmax) { bin = idxmax; } + std::size_t bin = std::lower_bound(dataVector.cbegin(), dataVector.cend(), val) + - dataVector.cbegin() - 1; + if(bin > idxmax) { bin = idxmax; } G4double res = binVector[bin]; G4double del = dataVector[bin + 1] - dataVector[bin]; if(del > 0.0) diff --git a/source/global/management/src/G4Threading.cc b/source/global/management/src/G4Threading.cc index 8dd8c3b448..3c6bd77b14 100644 --- a/source/global/management/src/G4Threading.cc +++ b/source/global/management/src/G4Threading.cc @@ -34,7 +34,7 @@ #include "G4AutoLock.hh" #include "globals.hh" -#if defined(WIN32) +#if defined(WIN32) || defined(__MINGW32__) # include #else # include diff --git a/source/global/management/src/G4Timer.cc b/source/global/management/src/G4Timer.cc index b7922402ec..461d0141a0 100644 --- a/source/global/management/src/G4Timer.cc +++ b/source/global/management/src/G4Timer.cc @@ -31,14 +31,10 @@ #include "G4Timer.hh" #include "G4ios.hh" +#include "G4Exception.hh" #include -// Global error function -#include "G4ExceptionSeverity.hh" -void G4Exception(const char* originOfException, const char* exceptionCode, - G4ExceptionSeverity severity, const char* comments); - #if defined(IRIX6_2) # if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED == 1) # define __vfork vfork @@ -114,10 +110,6 @@ std::ostream& operator<<(std::ostream& os, const G4Timer& t) return os; } -G4Timer::G4Timer() - : fValidTimes(false) -{} - G4double G4Timer::GetRealElapsed() const { if(!fValidTimes) diff --git a/source/global/management/src/G4UnitsTable.cc b/source/global/management/src/G4UnitsTable.cc index ae43578799..13fd1fcf63 100644 --- a/source/global/management/src/G4UnitsTable.cc +++ b/source/global/management/src/G4UnitsTable.cc @@ -459,7 +459,6 @@ void G4UnitDefinition::ClearUnitsTable() G4UnitsCategory::G4UnitsCategory(const G4String& name) : Name(name) - , UnitsList() {} // -------------------------------------------------------------------- @@ -592,7 +591,7 @@ std::ostream& operator<<(std::ostream& flux, const G4BestUnit& a) G4UnitsContainer& List = theUnitsTable[a.IndexOfCategory]->GetUnitsList(); G4int len = theUnitsTable[a.IndexOfCategory]->GetSymbMxLen(); - G4int ksup(-1), kinf(-1); + G4long ksup(-1), kinf(-1); G4double umax(0.), umin(DBL_MAX); G4double rsup(DBL_MAX), rinf(0.); @@ -649,7 +648,7 @@ std::ostream& operator<<(std::ostream& flux, const G4BestUnit& a) } } - G4int index = ksup; + G4long index = ksup; if(index == -1) { index = kinf; diff --git a/source/global/management/src/G4coutDestination.cc b/source/global/management/src/G4coutDestination.cc index 3162a5bbc5..b517d7ce12 100644 --- a/source/global/management/src/G4coutDestination.cc +++ b/source/global/management/src/G4coutDestination.cc @@ -73,10 +73,8 @@ G4int G4coutDestination::ReceiveG4cout_(const G4String& msg) } return (result ? ReceiveG4cout(m) : 0); } - else - { - return ReceiveG4cout(msg); - } + + return ReceiveG4cout(msg); } // -------------------------------------------------------------------- @@ -91,8 +89,6 @@ G4int G4coutDestination::ReceiveG4cerr_(const G4String& msg) ); return ReceiveG4cerr(m); } - else - { - return ReceiveG4cerr(msg); - } + + return ReceiveG4cerr(msg); } diff --git a/source/graphics_reps/History b/source/graphics_reps/History index e1342b10c5..21be49bc81 100644 --- a/source/graphics_reps/History +++ b/source/graphics_reps/History @@ -1,8 +1,35 @@ # Category greps History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-17 Gabriele Cosmo (greps-V11-00-16) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-28 John Allison (greps-V11-00-15) +- G4VVisManager: Add new virtual function DrawGeometry. + - Draws a geometry tree starting at the specified physical volume. + - This base class implementation is empty, i.e., the derived class + implementation is not forced (as it would be if declared pure virtual). + +## 2022-10-06 Gabriele Cosmo (greps-V11-00-14) +- Fixed compilation warning on Intel/icx compiler for variable set + but not used in HepPolyhedron::FindNodeNormal(). + +## 2022-10-03 Evgueni Tcherniaev (greps-V11-00-13) +- HepPolyhedron: Fix minor coverity defect in operator<< + +## 2022-09-19 John Allison (greps-V11-00-12) +- G4VisAttributes: Fix formatting in operator<< + +## 2022-09-14 Ben Morgan (greps-V11-00-11) +- Apply clang-tidy fixes + +## 2022-09-05 Ben Morgan (greps-V11-00-10) +- Make G4intercoms a private dependency ## 2022-05-01 Evgueni Tcherniaev (greps-V11-00-09) - Faster version of HepPolyhedronTetMesh diff --git a/source/graphics_reps/include/G4AttCheck.hh b/source/graphics_reps/include/G4AttCheck.hh index d7d34f5c82..9838c1d700 100644 --- a/source/graphics_reps/include/G4AttCheck.hh +++ b/source/graphics_reps/include/G4AttCheck.hh @@ -61,7 +61,7 @@ public: // With description (const std::vector* values, const std::map* definitions); - ~G4AttCheck(); + ~G4AttCheck() = default; const std::vector* GetAttValues() const { return fpValues; diff --git a/source/graphics_reps/include/G4AttDef.hh b/source/graphics_reps/include/G4AttDef.hh index eae40051ae..458edcd302 100644 --- a/source/graphics_reps/include/G4AttDef.hh +++ b/source/graphics_reps/include/G4AttDef.hh @@ -77,8 +77,8 @@ m_typeKey(typeKey) {}; - G4AttDef(){}; - virtual ~G4AttDef(){}; + G4AttDef()= default; + virtual ~G4AttDef()= default; const G4String& GetName()const{return m_name;}; const G4String& GetDesc()const{return m_desc;}; diff --git a/source/graphics_reps/include/G4AttHolder.hh b/source/graphics_reps/include/G4AttHolder.hh index 167a5c0a13..eb0a3527c4 100644 --- a/source/graphics_reps/include/G4AttHolder.hh +++ b/source/graphics_reps/include/G4AttHolder.hh @@ -53,8 +53,10 @@ class G4AttHolder { public: - G4AttHolder() {} + G4AttHolder() = default; ~G4AttHolder(); // Note: G4AttValues are deleted here. + G4AttHolder(const G4AttHolder&) = delete; // Copy construction not allowed. + G4AttHolder& operator=(const G4AttHolder&) = delete; // Assignment not allowed. const std::vector*>& GetAttValues() const {return fValues;} @@ -69,8 +71,6 @@ public: // life. private: - G4AttHolder(const G4AttHolder&); // Copy construction not allowed. - G4AttHolder& operator=(const G4AttHolder&); // Assignment not allowed. std::vector*> fValues; std::vector*> fDefs; }; diff --git a/source/graphics_reps/include/G4AttUtils.hh b/source/graphics_reps/include/G4AttUtils.hh index 68b99fbb55..90454edb87 100644 --- a/source/graphics_reps/include/G4AttUtils.hh +++ b/source/graphics_reps/include/G4AttUtils.hh @@ -61,7 +61,8 @@ namespace G4AttUtils { G4bool ExtractAttDef(const T& object, const G4String& name, G4AttDef& def) { const std::map* attDefs = object.GetAttDefs(); - + + // NOLINTNEXTLINE(modernize-use-auto): Explicitly want a const_iterator despite attDefs being const std::map::const_iterator iter = attDefs->find(name); if (iter == attDefs->end()) return false; @@ -76,9 +77,9 @@ namespace G4AttUtils { { std::vector* attValues = object.CreateAttValues(); - std::vector::iterator iter = std::find_if(attValues->begin(), attValues->end(), + auto iter = std::find_if(attValues->cbegin(), attValues->cend(), HasName(name)); - if (iter == attValues->end()) return false; + if (iter == attValues->cend()) return false; attVal = *iter; diff --git a/source/graphics_reps/include/G4AttValue.hh b/source/graphics_reps/include/G4AttValue.hh index 0e544f0623..c85a1cecc7 100644 --- a/source/graphics_reps/include/G4AttValue.hh +++ b/source/graphics_reps/include/G4AttValue.hh @@ -57,7 +57,7 @@ const G4String& showLabel): m_name(name),m_value(value), m_showLabel(showLabel){}; - G4AttValue(){}; + G4AttValue()= default; const G4String& GetName()const{return m_name;}; const G4String& GetValue()const{return m_value;}; diff --git a/source/graphics_reps/include/G4Circle.hh b/source/graphics_reps/include/G4Circle.hh index b6911358f6..b4065de5da 100644 --- a/source/graphics_reps/include/G4Circle.hh +++ b/source/graphics_reps/include/G4Circle.hh @@ -46,7 +46,7 @@ public: // With description G4Circle (); G4Circle (const G4VMarker&); G4Circle (const G4Point3D& position); - virtual ~G4Circle (); + ~G4Circle () override; }; diff --git a/source/graphics_reps/include/G4Color.hh b/source/graphics_reps/include/G4Color.hh index f181ef225d..8fc5945c75 100644 --- a/source/graphics_reps/include/G4Color.hh +++ b/source/graphics_reps/include/G4Color.hh @@ -38,6 +38,6 @@ #include "G4Colour.hh" -typedef G4Colour G4Color; +using G4Color = G4Colour; #endif diff --git a/source/graphics_reps/include/G4DimensionedDouble.hh b/source/graphics_reps/include/G4DimensionedDouble.hh index 03a5b7d7bc..39b7030588 100644 --- a/source/graphics_reps/include/G4DimensionedDouble.hh +++ b/source/graphics_reps/include/G4DimensionedDouble.hh @@ -33,6 +33,6 @@ #include "G4DimensionedType.hh" -typedef G4DimensionedType G4DimensionedDouble; +using G4DimensionedDouble = G4DimensionedType; #endif diff --git a/source/graphics_reps/include/G4DimensionedThreeVector.hh b/source/graphics_reps/include/G4DimensionedThreeVector.hh index 035fbb5cb9..e25942590f 100644 --- a/source/graphics_reps/include/G4DimensionedThreeVector.hh +++ b/source/graphics_reps/include/G4DimensionedThreeVector.hh @@ -33,6 +33,6 @@ #include "G4DimensionedType.hh" -typedef G4DimensionedType G4DimensionedThreeVector; +using G4DimensionedThreeVector = G4DimensionedType; #endif diff --git a/source/graphics_reps/include/G4DimensionedType.hh b/source/graphics_reps/include/G4DimensionedType.hh index 04f95e676f..298c5de5ac 100644 --- a/source/graphics_reps/include/G4DimensionedType.hh +++ b/source/graphics_reps/include/G4DimensionedType.hh @@ -103,7 +103,7 @@ G4DimensionedType::G4DimensionedType(const T& value, c } template -G4DimensionedType::~G4DimensionedType() {} +G4DimensionedType::~G4DimensionedType() = default; template T diff --git a/source/graphics_reps/include/G4PlacedPolyhedron.hh b/source/graphics_reps/include/G4PlacedPolyhedron.hh index aee6e64424..e847c1c05f 100644 --- a/source/graphics_reps/include/G4PlacedPolyhedron.hh +++ b/source/graphics_reps/include/G4PlacedPolyhedron.hh @@ -69,6 +69,6 @@ private: }; -typedef std::vector G4PlacedPolyhedronList; +using G4PlacedPolyhedronList = std::vector; #endif /* G4PLACEDPOLYHEDRON_HH */ diff --git a/source/graphics_reps/include/G4Plotter.hh b/source/graphics_reps/include/G4Plotter.hh index f6de461b76..54de55c068 100644 --- a/source/graphics_reps/include/G4Plotter.hh +++ b/source/graphics_reps/include/G4Plotter.hh @@ -76,8 +76,8 @@ public: const std::vector& GetRegionH2s() const {return fRegion_h2s;} private: - unsigned int fColumns; - unsigned int fRows; + unsigned int fColumns{1}; + unsigned int fRows{1}; std::vector fStyles; std::vector fRegionStyles; std::vector fRegionParameters; diff --git a/source/graphics_reps/include/G4Point3DList.hh b/source/graphics_reps/include/G4Point3DList.hh index 476a757933..312733b57b 100644 --- a/source/graphics_reps/include/G4Point3DList.hh +++ b/source/graphics_reps/include/G4Point3DList.hh @@ -45,7 +45,7 @@ class G4Point3DList: public std::vector { public: - typedef std::vector::iterator iterator; + using iterator = std::vector::iterator; virtual ~G4Point3DList(); diff --git a/source/graphics_reps/include/G4Polyhedron.hh b/source/graphics_reps/include/G4Polyhedron.hh index 7ed65436e3..1d93d88ffa 100644 --- a/source/graphics_reps/include/G4Polyhedron.hh +++ b/source/graphics_reps/include/G4Polyhedron.hh @@ -147,7 +147,7 @@ public: G4Polyhedron & operator=(G4Polyhedron && from) = default; // Destructor - virtual ~G4Polyhedron (); + ~G4Polyhedron () override; G4int GetNumberOfRotationStepsAtTimeOfCreation() const { return fNumberOfRotationStepsAtTimeOfCreation; @@ -159,14 +159,14 @@ private: class G4PolyhedronBox: public G4Polyhedron { public: G4PolyhedronBox (G4double dx, G4double dy, G4double dz); - virtual ~G4PolyhedronBox (); + ~G4PolyhedronBox () override; }; class G4PolyhedronCone: public G4Polyhedron { public: G4PolyhedronCone (G4double Rmn1, G4double Rmx1, G4double Rmn2, G4double Rmx2, G4double Dz); - virtual ~G4PolyhedronCone (); + ~G4PolyhedronCone () override; }; class G4PolyhedronCons: public G4Polyhedron { @@ -174,14 +174,14 @@ public: G4PolyhedronCons (G4double Rmn1, G4double Rmx1, G4double Rmn2, G4double Rmx2, G4double Dz, G4double Phi1, G4double Dphi); - virtual ~G4PolyhedronCons (); + ~G4PolyhedronCons () override; }; class G4PolyhedronPara: public G4Polyhedron { public: G4PolyhedronPara (G4double Dx, G4double Dy, G4double Dz, G4double Alpha, G4double Theta, G4double Phi); - virtual ~G4PolyhedronPara (); + ~G4PolyhedronPara () override; }; class G4PolyhedronPcon: public G4Polyhedron { @@ -192,7 +192,7 @@ public: const G4double *rmax); G4PolyhedronPcon (G4double phi, G4double dphi, const std::vector &rz); - virtual ~G4PolyhedronPcon (); + ~G4PolyhedronPcon () override; }; class G4PolyhedronPgon: public G4Polyhedron { @@ -204,7 +204,7 @@ public: G4PolyhedronPgon (G4double phi, G4double dphi, G4int npdv, const std::vector &rz); - virtual ~G4PolyhedronPgon (); + ~G4PolyhedronPgon () override; }; class G4PolyhedronSphere: public G4Polyhedron { @@ -212,7 +212,7 @@ public: G4PolyhedronSphere (G4double rmin, G4double rmax, G4double phi, G4double dphi, G4double the, G4double dthe); - virtual ~G4PolyhedronSphere (); + ~G4PolyhedronSphere () override; }; class G4PolyhedronTet: public G4Polyhedron { @@ -221,14 +221,14 @@ public: const G4double p1[3], const G4double p2[3], const G4double p3[3]); - virtual ~G4PolyhedronTet (); + ~G4PolyhedronTet () override; }; class G4PolyhedronTorus: public G4Polyhedron { public: G4PolyhedronTorus (G4double rmin, G4double rmax, G4double rtor, G4double phi, G4double dphi); - virtual ~G4PolyhedronTorus (); + ~G4PolyhedronTorus () override; }; class G4PolyhedronTrap: public G4Polyhedron { @@ -238,74 +238,74 @@ public: G4double Dx1, G4double Dx2, G4double Alp1, G4double Dy2, G4double Dx3, G4double Dx4, G4double Alp2); - virtual ~G4PolyhedronTrap (); + ~G4PolyhedronTrap () override; }; class G4PolyhedronTrd1: public G4Polyhedron { public: G4PolyhedronTrd1 (G4double Dx1, G4double Dx2, G4double Dy, G4double Dz); - virtual ~G4PolyhedronTrd1 (); + ~G4PolyhedronTrd1 () override; }; class G4PolyhedronTrd2: public G4Polyhedron { public: G4PolyhedronTrd2 (G4double Dx1, G4double Dx2, G4double Dy1, G4double Dy2, G4double Dz); - virtual ~G4PolyhedronTrd2 (); + ~G4PolyhedronTrd2 () override; }; class G4PolyhedronTube: public G4Polyhedron { public: G4PolyhedronTube (G4double Rmin, G4double Rmax, G4double Dz); - virtual ~G4PolyhedronTube (); + ~G4PolyhedronTube () override; }; class G4PolyhedronTubs: public G4Polyhedron { public: G4PolyhedronTubs (G4double Rmin, G4double Rmax, G4double Dz, G4double Phi1, G4double Dphi); - virtual ~G4PolyhedronTubs (); + ~G4PolyhedronTubs () override; }; class G4PolyhedronParaboloid: public G4Polyhedron { public: G4PolyhedronParaboloid(G4double r1, G4double r2, G4double dz, G4double sPhi, G4double dPhi); - virtual ~G4PolyhedronParaboloid (); + ~G4PolyhedronParaboloid () override; }; class G4PolyhedronHype: public G4Polyhedron { public: G4PolyhedronHype(G4double r1, G4double r2, G4double tan1, G4double tan2, G4double halfZ); - virtual ~G4PolyhedronHype (); + ~G4PolyhedronHype () override; }; class G4PolyhedronEllipsoid : public G4Polyhedron { public: G4PolyhedronEllipsoid(G4double dx, G4double dy, G4double dz, G4double zcut1, G4double zcut2); - virtual ~G4PolyhedronEllipsoid (); + ~G4PolyhedronEllipsoid () override; }; class G4PolyhedronEllipticalCone : public G4Polyhedron { public: G4PolyhedronEllipticalCone(G4double dx, G4double dy, G4double z, G4double zcut1); - virtual ~G4PolyhedronEllipticalCone (); + ~G4PolyhedronEllipticalCone () override; }; class G4PolyhedronHyperbolicMirror : public G4Polyhedron { public: G4PolyhedronHyperbolicMirror(G4double a, G4double h, G4double r); - virtual ~G4PolyhedronHyperbolicMirror (); + ~G4PolyhedronHyperbolicMirror () override; }; class G4PolyhedronTetMesh : public G4Polyhedron { public: G4PolyhedronTetMesh(const std::vector& tetrahedra); - virtual ~G4PolyhedronTetMesh (); + ~G4PolyhedronTetMesh () override; }; class G4PolyhedronBoxMesh : public G4Polyhedron { @@ -313,7 +313,7 @@ class G4PolyhedronBoxMesh : public G4Polyhedron { G4PolyhedronBoxMesh(G4double sizeX, G4double sizeY, G4double sizeZ, const std::vector& positions); - virtual ~G4PolyhedronBoxMesh (); + ~G4PolyhedronBoxMesh () override; }; std::ostream& operator<<(std::ostream& os, const G4Polyhedron&); diff --git a/source/graphics_reps/include/G4PolyhedronArbitrary.hh b/source/graphics_reps/include/G4PolyhedronArbitrary.hh index 28a0310106..920b3dd18e 100644 --- a/source/graphics_reps/include/G4PolyhedronArbitrary.hh +++ b/source/graphics_reps/include/G4PolyhedronArbitrary.hh @@ -76,8 +76,12 @@ class G4PolyhedronArbitrary : public G4Polyhedron { public: G4PolyhedronArbitrary (const G4int nVertices, const G4int nFacets); - virtual ~G4PolyhedronArbitrary (); - + ~G4PolyhedronArbitrary () override; + // Private copy constructor and assignment operator added to satisfy + // Coverity - JA 11/11/11. + G4PolyhedronArbitrary(const G4PolyhedronArbitrary&) = delete; + G4PolyhedronArbitrary& operator= (const G4PolyhedronArbitrary&) = delete; + void AddVertex (const G4ThreeVector& v); void AddFacet (const G4int iv1, const G4int iv2, const G4int iv3, const G4int iv4=0); @@ -92,11 +96,6 @@ class G4PolyhedronArbitrary : public G4Polyhedron G4int nVertexCount; G4int nFacetCount; - private: - // Private copy constructor and assignment operator added to satisfy - // Coverity - JA 11/11/11. - G4PolyhedronArbitrary(const G4PolyhedronArbitrary&); - G4PolyhedronArbitrary& operator= (const G4PolyhedronArbitrary&); }; #endif /////////////////////////////////////////////////////////////////////////////// diff --git a/source/graphics_reps/include/G4Polyline.hh b/source/graphics_reps/include/G4Polyline.hh index 29f88a3cb9..a6d870aea7 100644 --- a/source/graphics_reps/include/G4Polyline.hh +++ b/source/graphics_reps/include/G4Polyline.hh @@ -49,10 +49,10 @@ class G4Polyline: public G4Visible, public G4Point3DList { public: // With description - typedef G4Point3DList::iterator iterator; + using iterator = G4Point3DList::iterator; G4Polyline (); - virtual ~G4Polyline (); + ~G4Polyline () override; G4Polyline& transform (const G4Transform3D&); }; diff --git a/source/graphics_reps/include/G4Polymarker.hh b/source/graphics_reps/include/G4Polymarker.hh index 05727b5bd7..7592a96f82 100644 --- a/source/graphics_reps/include/G4Polymarker.hh +++ b/source/graphics_reps/include/G4Polymarker.hh @@ -47,7 +47,7 @@ public: // With description enum MarkerType {dots, circles, squares}; G4Polymarker (); G4Polymarker (const G4VMarker&); - virtual ~G4Polymarker (); + ~G4Polymarker () override; MarkerType GetMarkerType () const; void SetMarkerType (MarkerType); private: diff --git a/source/graphics_reps/include/G4Square.hh b/source/graphics_reps/include/G4Square.hh index 8fd6d11e6e..41f938ba40 100644 --- a/source/graphics_reps/include/G4Square.hh +++ b/source/graphics_reps/include/G4Square.hh @@ -46,7 +46,7 @@ public: // With description G4Square (); G4Square (const G4VMarker&); G4Square (const G4Point3D& position); - ~G4Square (); + ~G4Square () override; }; diff --git a/source/graphics_reps/include/G4Square.icc b/source/graphics_reps/include/G4Square.icc index 94b5b8febf..59d82bc2ca 100644 --- a/source/graphics_reps/include/G4Square.icc +++ b/source/graphics_reps/include/G4Square.icc @@ -28,7 +28,7 @@ // // John Allison 17/11/96. -inline G4Square::G4Square () {} +inline G4Square::G4Square () = default; inline G4Square::G4Square (const G4Point3D& pos): G4VMarker (pos) {} diff --git a/source/graphics_reps/include/G4Text.hh b/source/graphics_reps/include/G4Text.hh index a8d4646556..e000c76902 100644 --- a/source/graphics_reps/include/G4Text.hh +++ b/source/graphics_reps/include/G4Text.hh @@ -79,7 +79,7 @@ public: // With description G4Text (const G4VMarker&); G4Text (const G4Text&) = default; G4Text (G4Text&&) = default; - virtual ~G4Text (); + ~G4Text () override; G4Text& operator= (const G4Text&) = default; G4Text& operator= (G4Text&&) = default; diff --git a/source/graphics_reps/include/G4TypeKey.hh b/source/graphics_reps/include/G4TypeKey.hh index 8d18d3a3a6..a75a63ea51 100644 --- a/source/graphics_reps/include/G4TypeKey.hh +++ b/source/graphics_reps/include/G4TypeKey.hh @@ -38,16 +38,16 @@ class G4TypeKey { public: - typedef unsigned long Key; + using Key = unsigned long; // Constructor - G4TypeKey():fMyKey(0) {} + G4TypeKey() = default; // Destructor - virtual ~G4TypeKey() {} + virtual ~G4TypeKey() = default; G4bool IsValid() { - return (0 == fMyKey ? false : true); + return (0 != fMyKey); } // Operators @@ -64,13 +64,13 @@ public: protected: Key NextKey() const { - static G4ThreadLocal Key *npKey = 0 ; - if (!npKey) { npKey = new Key; *npKey = 0; } + static G4ThreadLocal Key *npKey = nullptr ; + if (npKey == nullptr) { npKey = new Key; *npKey = 0; } Key &nKey = *npKey; return ++nKey; } - Key fMyKey; + Key fMyKey{0}; }; diff --git a/source/graphics_reps/include/G4TypeKeyT.hh b/source/graphics_reps/include/G4TypeKeyT.hh index 7014d76c78..881ce19136 100644 --- a/source/graphics_reps/include/G4TypeKeyT.hh +++ b/source/graphics_reps/include/G4TypeKeyT.hh @@ -39,13 +39,13 @@ class G4TypeKeyT : public G4TypeKey { public: G4TypeKeyT() { - static G4ThreadLocal Key *pkey = 0 ; - if (!pkey) { pkey = new Key; *pkey = NextKey(); } + static G4ThreadLocal Key *pkey = nullptr ; + if (pkey == nullptr) { pkey = new Key; *pkey = NextKey(); } Key &key = *pkey; fMyKey = key; } - virtual ~G4TypeKeyT() {} + ~G4TypeKeyT() override = default; }; diff --git a/source/graphics_reps/include/G4VMarker.hh b/source/graphics_reps/include/G4VMarker.hh index 6e9eb01239..cec93c9b6a 100644 --- a/source/graphics_reps/include/G4VMarker.hh +++ b/source/graphics_reps/include/G4VMarker.hh @@ -105,7 +105,7 @@ public: // With description ////////////////////////////////////////////////////// // Destructor... - virtual ~G4VMarker (); + ~G4VMarker () override; ////////////////////////////////////////////////////// // Assignment... diff --git a/source/graphics_reps/include/G4VVisManager.hh b/source/graphics_reps/include/G4VVisManager.hh index 8b5e8ee6cf..e13964c498 100644 --- a/source/graphics_reps/include/G4VVisManager.hh +++ b/source/graphics_reps/include/G4VVisManager.hh @@ -169,6 +169,10 @@ public: // With description virtual void Draw (const G4VSolid&, const G4VisAttributes&, const G4Transform3D& objectTransformation = G4Transform3D()) = 0; + virtual void DrawGeometry + (G4VPhysicalVolume*, const G4Transform3D& t = G4Transform3D()); + // Draws a geometry tree starting at the specified physical volume. + ////////////////////////////////////////////////////////////////////// // Optional methods that you may use to bracket a series of Draw // messages that have identical objectTransformation to improve diff --git a/source/graphics_reps/include/G4VisAttributes.hh b/source/graphics_reps/include/G4VisAttributes.hh index 53e7f9951b..ac1eab9af5 100644 --- a/source/graphics_reps/include/G4VisAttributes.hh +++ b/source/graphics_reps/include/G4VisAttributes.hh @@ -79,8 +79,8 @@ public: // With description G4VisAttributes (G4bool visibility); G4VisAttributes (const G4Colour& colour); G4VisAttributes (G4bool visibility, const G4Colour& colour); - G4VisAttributes (const G4VisAttributes&); - ~G4VisAttributes (); + G4VisAttributes (const G4VisAttributes&) = default; + ~G4VisAttributes () = default; G4VisAttributes& operator= (const G4VisAttributes&); static const G4VisAttributes& GetInvisible(); diff --git a/source/graphics_reps/include/HepPolyhedron.h b/source/graphics_reps/include/HepPolyhedron.h index 1d0d88c700..fb7f6adca0 100644 --- a/source/graphics_reps/include/HepPolyhedron.h +++ b/source/graphics_reps/include/HepPolyhedron.h @@ -281,7 +281,7 @@ class HepPolyhedron { public: // Default constructor - HepPolyhedron() : nvert(0), nface(0), pV(0), pF(0) {} + HepPolyhedron() : nvert(0), nface(0), pV(nullptr), pF(nullptr) {} // Constructor with allocation of memory HepPolyhedron(G4int Nvert, G4int Nface); @@ -345,15 +345,15 @@ class HepPolyhedron { // Get face by index void GetFacet(G4int iFace, G4int &n, G4int *iNodes, - G4int *edgeFlags = 0, G4int *iFaces = 0) const; + G4int *edgeFlags = nullptr, G4int *iFaces = nullptr) const; // Get face by index void GetFacet(G4int iFace, G4int &n, G4Point3D *nodes, - G4int *edgeFlags=0, G4Normal3D *normals=0) const; + G4int *edgeFlags=nullptr, G4Normal3D *normals=nullptr) const; // Get next face with normals at the nodes - G4bool GetNextFacet(G4int &n, G4Point3D *nodes, G4int *edgeFlags=0, - G4Normal3D *normals=0) const; + G4bool GetNextFacet(G4int &n, G4Point3D *nodes, G4int *edgeFlags=nullptr, + G4Normal3D *normals=nullptr) const; // Get normal of the face given by index G4Normal3D GetNormal(G4int iFace) const; @@ -442,7 +442,7 @@ class HepPolyhedronTrd2 : public HepPolyhedron public: HepPolyhedronTrd2(G4double Dx1, G4double Dx2, G4double Dy1, G4double Dy2, G4double Dz); - virtual ~HepPolyhedronTrd2(); + ~HepPolyhedronTrd2() override; }; class HepPolyhedronTrd1 : public HepPolyhedronTrd2 @@ -450,14 +450,14 @@ class HepPolyhedronTrd1 : public HepPolyhedronTrd2 public: HepPolyhedronTrd1(G4double Dx1, G4double Dx2, G4double Dy, G4double Dz); - virtual ~HepPolyhedronTrd1(); + ~HepPolyhedronTrd1() override; }; class HepPolyhedronBox : public HepPolyhedronTrd2 { public: HepPolyhedronBox(G4double Dx, G4double Dy, G4double Dz); - virtual ~HepPolyhedronBox(); + ~HepPolyhedronBox() override; }; class HepPolyhedronTrap : public HepPolyhedron @@ -468,7 +468,7 @@ class HepPolyhedronTrap : public HepPolyhedron G4double Dx1, G4double Dx2, G4double Alp1, G4double Dy2, G4double Dx3, G4double Dx4, G4double Alp2); - virtual ~HepPolyhedronTrap(); + ~HepPolyhedronTrap() override; }; class HepPolyhedronPara : public HepPolyhedronTrap @@ -476,7 +476,7 @@ class HepPolyhedronPara : public HepPolyhedronTrap public: HepPolyhedronPara(G4double Dx, G4double Dy, G4double Dz, G4double Alpha, G4double Theta, G4double Phi); - virtual ~HepPolyhedronPara(); + ~HepPolyhedronPara() override; }; class HepPolyhedronParaboloid : public HepPolyhedron @@ -487,7 +487,7 @@ class HepPolyhedronParaboloid : public HepPolyhedron G4double dz, G4double Phi1, G4double Dphi); - virtual ~HepPolyhedronParaboloid(); + ~HepPolyhedronParaboloid() override; }; class HepPolyhedronHype : public HepPolyhedron @@ -498,7 +498,7 @@ class HepPolyhedronHype : public HepPolyhedron G4double tan1, G4double tan2, G4double halfZ); - virtual ~HepPolyhedronHype(); + ~HepPolyhedronHype() override; }; class HepPolyhedronCons : public HepPolyhedron @@ -507,7 +507,7 @@ class HepPolyhedronCons : public HepPolyhedron HepPolyhedronCons(G4double Rmn1, G4double Rmx1, G4double Rmn2, G4double Rmx2, G4double Dz, G4double Phi1, G4double Dphi); - virtual ~HepPolyhedronCons(); + ~HepPolyhedronCons() override; }; class HepPolyhedronCone : public HepPolyhedronCons @@ -515,7 +515,7 @@ class HepPolyhedronCone : public HepPolyhedronCons public: HepPolyhedronCone(G4double Rmn1, G4double Rmx1, G4double Rmn2, G4double Rmx2, G4double Dz); - virtual ~HepPolyhedronCone(); + ~HepPolyhedronCone() override; }; class HepPolyhedronTubs : public HepPolyhedronCons @@ -523,14 +523,14 @@ class HepPolyhedronTubs : public HepPolyhedronCons public: HepPolyhedronTubs(G4double Rmin, G4double Rmax, G4double Dz, G4double Phi1, G4double Dphi); - virtual ~HepPolyhedronTubs(); + ~HepPolyhedronTubs() override; }; class HepPolyhedronTube : public HepPolyhedronCons { public: HepPolyhedronTube (G4double Rmin, G4double Rmax, G4double Dz); - virtual ~HepPolyhedronTube(); + ~HepPolyhedronTube() override; }; class HepPolyhedronPgon : public HepPolyhedron @@ -542,7 +542,7 @@ class HepPolyhedronPgon : public HepPolyhedron const G4double *rmax); HepPolyhedronPgon(G4double phi, G4double dphi, G4int npdv, const std::vector &rz); - virtual ~HepPolyhedronPgon(); + ~HepPolyhedronPgon() override; }; class HepPolyhedronPcon : public HepPolyhedronPgon @@ -554,7 +554,7 @@ class HepPolyhedronPcon : public HepPolyhedronPgon const G4double *rmax); HepPolyhedronPcon(G4double phi, G4double dphi, const std::vector &rz); - virtual ~HepPolyhedronPcon(); + ~HepPolyhedronPcon() override; }; class HepPolyhedronSphere : public HepPolyhedron @@ -563,7 +563,7 @@ class HepPolyhedronSphere : public HepPolyhedron HepPolyhedronSphere(G4double rmin, G4double rmax, G4double phi, G4double dphi, G4double the, G4double dthe); - virtual ~HepPolyhedronSphere(); + ~HepPolyhedronSphere() override; }; class HepPolyhedronTorus : public HepPolyhedron @@ -571,7 +571,7 @@ class HepPolyhedronTorus : public HepPolyhedron public: HepPolyhedronTorus(G4double rmin, G4double rmax, G4double rtor, G4double phi, G4double dphi); - virtual ~HepPolyhedronTorus(); + ~HepPolyhedronTorus() override; }; class HepPolyhedronTet : public HepPolyhedron @@ -581,7 +581,7 @@ class HepPolyhedronTet : public HepPolyhedron const G4double p1[3], const G4double p2[3], const G4double p3[3]); - virtual ~HepPolyhedronTet(); + ~HepPolyhedronTet() override; }; class HepPolyhedronEllipsoid : public HepPolyhedron @@ -589,7 +589,7 @@ class HepPolyhedronEllipsoid : public HepPolyhedron public: HepPolyhedronEllipsoid(G4double dx, G4double dy, G4double dz, G4double zcut1, G4double zcut2); - virtual ~HepPolyhedronEllipsoid(); + ~HepPolyhedronEllipsoid() override; }; class HepPolyhedronEllipticalCone : public HepPolyhedron @@ -597,21 +597,21 @@ class HepPolyhedronEllipticalCone : public HepPolyhedron public: HepPolyhedronEllipticalCone(G4double dx, G4double dy, G4double z, G4double zcut1); - virtual ~HepPolyhedronEllipticalCone(); + ~HepPolyhedronEllipticalCone() override; }; class HepPolyhedronHyperbolicMirror : public HepPolyhedron { public: HepPolyhedronHyperbolicMirror(G4double a, G4double h, G4double r); - virtual ~HepPolyhedronHyperbolicMirror(); + ~HepPolyhedronHyperbolicMirror() override; }; class HepPolyhedronTetMesh : public HepPolyhedron { public: HepPolyhedronTetMesh(const std::vector& tetrahedra); - virtual ~HepPolyhedronTetMesh(); + ~HepPolyhedronTetMesh() override; }; class HepPolyhedronBoxMesh : public HepPolyhedron @@ -619,7 +619,7 @@ class HepPolyhedronBoxMesh : public HepPolyhedron public: HepPolyhedronBoxMesh(G4double sizeX, G4double sizeY, G4double sizeZ, const std::vector& positions); - virtual ~HepPolyhedronBoxMesh(); + ~HepPolyhedronBoxMesh() override; }; #endif /* HEP_POLYHEDRON_HH */ diff --git a/source/graphics_reps/include/HepPolyhedronProcessor.h b/source/graphics_reps/include/HepPolyhedronProcessor.h index 660875a296..33929caf0d 100644 --- a/source/graphics_reps/include/HepPolyhedronProcessor.h +++ b/source/graphics_reps/include/HepPolyhedronProcessor.h @@ -39,7 +39,7 @@ public: ,SUBTRACTION = 2 }; private: - typedef std::pair op_t; + using op_t = std::pair; public: HepPolyhedronProcessor(); virtual ~HepPolyhedronProcessor(); diff --git a/source/graphics_reps/sources.cmake b/source/graphics_reps/sources.cmake index a5e96ba22e..a797841218 100644 --- a/source/graphics_reps/sources.cmake +++ b/source/graphics_reps/sources.cmake @@ -75,4 +75,6 @@ geant4_add_module(G4graphics_reps HepPolyhedronProcessor.src) geant4_module_compile_definitions(G4graphics_reps PRIVATE G4GREPS_ALLOC_EXPORT) -geant4_module_link_libraries(G4graphics_reps PUBLIC G4globman G4hepgeometry G4intercoms) +geant4_module_link_libraries(G4graphics_reps + PUBLIC G4globman G4hepgeometry + PRIVATE G4intercoms) diff --git a/source/graphics_reps/src/BooleanProcessor.src b/source/graphics_reps/src/BooleanProcessor.src index 108df38c09..d15edf2ea0 100644 --- a/source/graphics_reps/src/BooleanProcessor.src +++ b/source/graphics_reps/src/BooleanProcessor.src @@ -16,9 +16,9 @@ #include "G4Plane3D.hh" #include "G4Point3D.hh" #include "G4Normal3D.hh" -typedef G4Plane3D HVPlane3D; -typedef G4Point3D HVPoint3D; -typedef G4Normal3D HVNormal3D; +using HVPlane3D = G4Plane3D; +using HVPoint3D = G4Point3D; +using HVNormal3D = G4Normal3D; #else //BP_HEPVIS @@ -115,9 +115,9 @@ class ExtNode { public: ExtNode(HVPoint3D vertex=HVPoint3D(), int status=0) : v(vertex), s(status) {} - ~ExtNode() {} + ~ExtNode() = default; - ExtNode(const ExtNode & node) : v(node.v), s(node.s) {} + ExtNode(const ExtNode & node) = default; ExtNode & operator=(const ExtNode & node) { if (&node == this) return *this; @@ -134,17 +134,15 @@ class ExtEdge { int iface1; // native face int iface2; // neighbouring face int ivis; // visibility: +1 (visible), -1 (invisible) - int inext; // index of next edge + int inext{0}; // index of next edge public: ExtEdge(int k1=0, int k2=0, int kface1=0, int kface2=0, int kvis=0) : - i1(k1), i2(k2), iface1(kface1), iface2(kface2), ivis(kvis), inext(0) {} + i1(k1), i2(k2), iface1(kface1), iface2(kface2), ivis(kvis) {} - ~ExtEdge() {}; + ~ExtEdge() = default; - ExtEdge(const ExtEdge & edge) : - i1(edge.i1), i2(edge.i2), iface1(edge.iface1), iface2(edge.iface2), - ivis(edge.ivis), inext(edge.inext) {} + ExtEdge(const ExtEdge & edge) = default; ExtEdge & operator=(const ExtEdge & edge) { if (&edge == this) return *this; @@ -172,19 +170,19 @@ class ExtFace { HVPlane3D plane; // face plane double rmin[3], rmax[3]; // bounding box int iold; // head of the list of the original edges - int inew; // head of the list of the new edges - int iprev; // index of previous face - int inext; // index of next face + int inew{0}; // head of the list of the new edges + int iprev{0}; // index of previous face + int inext{0}; // index of next face public: //G.Barrand : ExtFace(int iedge=0) : iold(iedge), inew(0), iprev(iprev), inext(0) {} ExtFace(std::vector& a_edges,int iedge) - : edges(a_edges), iold(iedge), inew(0), iprev(0), inext(0) { + : edges(a_edges), iold(iedge) { //G.Barrand : initialize arrays to quiet valgrind. - {for (int i=0; i<4; i++) { iedges[i] = 0; }} + {for (int & ie : iedges) { ie = 0; }} {for (int i=0; i<3; i++) { rmin[i] = 0; rmax[i] = 0; }} } - ~ExtFace() {} + ~ExtFace() = default; ExtFace(const ExtFace & face) : edges(face.edges), //G.Barrand @@ -226,13 +224,13 @@ class FaceList { private: std::vector& faces; //G.Barrad : end private: - int ihead; - int ilast; + int ihead{0}; + int ilast{0}; public: //G.Barrand : FaceList() : ihead(0), ilast(0) {} - FaceList(std::vector& a_faces) : faces(a_faces),ihead(0),ilast(0) {} - ~FaceList() {} + FaceList(std::vector& a_faces) : faces(a_faces) {} + ~FaceList() = default; void clean() { ihead = 0; ilast = 0; } int front() { return ihead; } @@ -279,13 +277,13 @@ class BooleanProcessor { std::vector edges; // vector of edges //G.Barrand std::vector faces; // vector of faces //G.Barrand private: - int processor_error; // is set in case of error - int operation; // 0 (union), 1 (intersection), 2 (subtraction) - int ifaces1, ifaces2; // lists of faces - int iout1, iout2; // lists of faces with status "out" - int iunk1, iunk2; // lists of faces with status "unknown" + int processor_error{0}; // is set in case of error + int operation{0}; // 0 (union), 1 (intersection), 2 (subtraction) + int ifaces1{0}, ifaces2{0}; // lists of faces + int iout1{0}, iout2{0}; // lists of faces with status "out" + int iunk1{0}, iunk2{0}; // lists of faces with status "unknown" double rmin[3], rmax[3]; // intersection of bounding boxes - double del; // precision (tolerance) + double del{0.}; // precision (tolerance) FaceList result_faces; // list of accepted faces FaceList suitable_faces; // list of suitable faces @@ -329,16 +327,7 @@ class BooleanProcessor { public: //G.Barrand : BooleanProcessor() {} BooleanProcessor() //G.Barrand - :processor_error(0) // The next few fields are work space, initialised - ,operation(0) // here to prevent Coverity warnings. - ,ifaces1(0) // " - ,ifaces2(0) // " - ,iout1(0) // " - ,iout2(0) // " - ,iunk1(0) // " - ,iunk2(0) // " - ,del(0.) // " - ,result_faces(faces) + : result_faces(faces) ,suitable_faces(faces) ,unsuitable_faces(faces) ,unknown_faces(faces) @@ -349,7 +338,7 @@ class BooleanProcessor { } } - ~BooleanProcessor() {} + ~BooleanProcessor() = default; HepPolyhedron execute(int op, const HepPolyhedron &a, @@ -424,8 +413,8 @@ void BooleanProcessor::takePolyhedron(const HepPolyhedron & p, { int i = 0, k = 0, nnode = 0, iNodes[5] = {0,0,0,0,0}, iVis[4] = {0,0,0,0}, iFaces[4] = {0,0,0,0}; - int dnode = nodes.size() - 1; - int dface = faces.size() - 1; + int dnode = (int)nodes.size() - 1; + int dface = (int)faces.size() - 1; // S E T N O D E S @@ -444,13 +433,13 @@ void BooleanProcessor::takePolyhedron(const HepPolyhedron & p, ppp = p.GetVertexFast(i); ppp += HVPoint3D(dx,dy,dz); #endif - nodes.push_back(ExtNode(ppp)); + nodes.emplace_back(ppp); } // S E T F A C E S for (int iface=1; iface <= p.GetNoFacets(); iface++) { - faces.push_back(ExtFace(edges,edges.size())); + faces.emplace_back(edges,static_cast(edges.size())); // S E T F A C E N O D E S @@ -484,10 +473,10 @@ void BooleanProcessor::takePolyhedron(const HepPolyhedron & p, iNodes[nnode] = iNodes[0]; faces.back().iedges[3] = 0; for (i=0; i del) { - if (d2 < -del) { ii[i] = nodes.size(); break; } // +- + if (d2 < -del) { ii[i] = (int)nodes.size(); break; } // +- }else if (d1 < -del) { - if (d2 > del) { ii[i] = nodes.size(); break; } // -+ + if (d2 > del) { ii[i] = (int)nodes.size(); break; } // -+ }else{ ii[i] = i1; break; // 0+ or 0- } @@ -739,7 +728,7 @@ int BooleanProcessor::testFaceVsPlane(ExtEdge & edge) } if (ii[i] == (int)nodes.size()) { d3 = d2-d1; d1 = d1/d3; d2 = d2/d3; - nodes.push_back(ExtNode(d2*nodes[i1].v-d1*nodes[i2].v, iedge)); + nodes.emplace_back(d2*nodes[i1].v-d1*nodes[i2].v, iedge); } } edge.inext = 0; @@ -751,18 +740,19 @@ int BooleanProcessor::testFaceVsPlane(ExtEdge & edge) edge.i2 = ii[1]; } return INTERSECTION; - }else{ - if (npos == nneg) return NON_PLANAR_FACE; - edge.inext = (s1 == ZERO_ZERO) ? ie1+1 : ie2+1; - if (s1 == ZERO_PLUS || s2 == ZERO_MINUS) { - edge.i1 = edges[faces[iface].iedges[ie2]].i1; - edge.i2 = edges[faces[iface].iedges[ie1]].i1; - }else{ - edge.i1 = edges[faces[iface].iedges[ie1]].i1; - edge.i2 = edges[faces[iface].iedges[ie2]].i1; - } - return EDGE; } + + if (npos == nneg) return NON_PLANAR_FACE; + + edge.inext = (s1 == ZERO_ZERO) ? ie1+1 : ie2+1; + if (s1 == ZERO_PLUS || s2 == ZERO_MINUS) { + edge.i1 = edges[faces[iface].iedges[ie2]].i1; + edge.i2 = edges[faces[iface].iedges[ie1]].i1; + }else{ + edge.i1 = edges[faces[iface].iedges[ie1]].i1; + edge.i2 = edges[faces[iface].iedges[ie2]].i1; + } + return EDGE; } void BooleanProcessor::renumberNodes(int & i1, int & i2, int & i3, int & i4) @@ -782,7 +772,7 @@ void BooleanProcessor::renumberNodes(int & i1, int & i2, int & i3, int & i4) if (i1 == i2) return; if (nodes[i1].s == 0 || nodes.back().s == 0) { i1 = i2; return; } - int ilast = nodes.size()-1; + int ilast = (int)nodes.size()-1; if (i1 == ilast) { i1 = i2; nodes.pop_back(); return; } if (i2 == ilast) { i2 = i1; } if (i3 == ilast) { i3 = i1; } @@ -851,11 +841,11 @@ void BooleanProcessor::divideEdge(int & i1, int & i2) int ie1, ie2, inode = i1; nodes[inode].s = 0; - for (int i=0; i<2; i++) { + for (int iedge : iedges) { // F I N D C O R R E S P O N D I N G E D G E - if ((ie1 = iedges[i]) == 0) continue; + if ((ie1 = iedge) == 0) continue; ie2 = faces[edges[ie1].iface2].iedges[0]; while (ie2 > 0) { if (edges[ie2].i1 == edges[ie1].i2 && @@ -866,12 +856,12 @@ void BooleanProcessor::divideEdge(int & i1, int & i2) // D I V I D E E D G E S edges.push_back(edges[ie1]); - edges[ie1].inext = edges.size() - 1; + edges[ie1].inext = (int)edges.size() - 1; edges[ie1].i2 = inode; edges.back().i1 = inode; edges.push_back(edges[ie2]); - edges[ie2].inext = edges.size() - 1; + edges[ie2].inext = (int)edges.size() - 1; edges[ie2].i2 = inode; edges.back().i1 = inode; } @@ -890,7 +880,7 @@ void BooleanProcessor::insertEdge(const ExtEdge & edge) int iface = edge.iface1; edges.push_back(edge); edges.back().inext = faces[iface].inew; - faces[iface].inew = edges.size() - 1; + faces[iface].inew = (int)edges.size() - 1; } void BooleanProcessor::caseII(ExtEdge & edge1, ExtEdge & edge2) @@ -1099,18 +1089,19 @@ void BooleanProcessor::assembleFace(int what, int iface) icur = *i; *i = edges[icur].inext; INSERT_EDGE_TO_THE_LIST(icur); - if (edges[icur].i2 == ifirst) { break; } else { continue; } - }else{ - processor_error = 1; -#ifdef BP_DEBUG - G4cerr - << "BooleanProcessor::assembleFace(" << iface << ") : " - << "could not find next edge of the contour" - << G4endl; -#endif - face.inew = DEFECTIVE_FACE; - return; + if (edges[icur].i2 == ifirst) { break; } + continue; } + + processor_error = 1; +#ifdef BP_DEBUG + G4cerr + << "BooleanProcessor::assembleFace(" << iface << ") : " + << "could not find next edge of the contour" + << G4endl; +#endif + face.inew = DEFECTIVE_FACE; + return; } } @@ -1130,9 +1121,8 @@ void BooleanProcessor::assembleFace(int what, int iface) if (edges[iedge].i2 == edges[face.iold].i1) { edges[iedge].inext = ihead; // set new face return; - }else{ - break; - } + } break; + } } } @@ -1546,17 +1536,16 @@ void BooleanProcessor::mergeContours(int ix, int iy, int kext, int kint) edges[i].inext = internal_contours[kint]; internal_contours[kint] = 0; break; - }else{ - i = edges[i].inext; } + i = edges[i].inext; } i = edges[i1int].iface1; - edges.push_back(ExtEdge(k[1], k[4], i, -(int(edges.size())+1), -1)); + edges.emplace_back(k[1], k[4], i, -(int(edges.size())+1), -1); edges.back().inext = i2int; - edges.push_back(ExtEdge(k[4], k[1], i, -(int(edges.size())-1), -1)); + edges.emplace_back(k[4], k[1], i, -(int(edges.size())-1), -1); edges.back().inext = edges[i1ext].inext; - edges[i1ext].inext = edges.size()-2; - edges[i1int].inext = edges.size()-1; + edges[i1ext].inext = (int)edges.size()-2; + edges[i1int].inext = (int)edges.size()-1; return; } } @@ -1667,11 +1656,11 @@ void BooleanProcessor::triangulateContour(int ix, int iy, int ihead) istart = iedge1; if (nnode <= 3) { iedge3 = edges[iedge2].inext; - edges[iedge1].iface1 = faces.size(); - edges[iedge2].iface1 = faces.size(); - edges[iedge3].iface1 = faces.size(); + edges[iedge1].iface1 = (int)faces.size(); + edges[iedge2].iface1 = (int)faces.size(); + edges[iedge3].iface1 = (int)faces.size(); edges[iedge3].inext = 0; - faces.push_back(ExtFace(edges,0)); //G.Barrand : ok ? + faces.emplace_back(edges,0); //G.Barrand : ok ? faces.back().iold = iedge1; faces.back().inew = ORIGINAL_FACE; @@ -1702,17 +1691,17 @@ void BooleanProcessor::triangulateContour(int ix, int iy, int ihead) int i1 = edges[iedge1].i1; int i3 = edges[iedge2].i2; int iface1 = edges[iedge1].iface1; - int iface2 = faces.size(); + int iface2 = (int)faces.size(); - edges[ipnext].inext = edges.size(); - edges.push_back(ExtEdge(i1, i3, iface1, -(int(edges.size())+1), -1)); + edges[ipnext].inext = (int)edges.size(); + edges.emplace_back(i1, i3, iface1, -(int(edges.size())+1), -1); edges.back().inext = edges[iedge2].inext; // A D D N E W T R I A N G L E T O T H E L I S T - edges[iedge2].inext = edges.size(); - edges.push_back(ExtEdge(i3, i1, iface2, -(int(edges.size())-1), -1)); - faces.push_back(ExtFace(edges,0)); //G.Barrand : ok ? + edges[iedge2].inext = (int)edges.size(); + edges.emplace_back(i3, i1, iface2, -(int(edges.size())-1), -1); + faces.emplace_back(edges,0); //G.Barrand : ok ? faces.back().iold = iedge1; faces.back().inew = ORIGINAL_FACE; edges[iedge1].iface1 = iface2; @@ -1803,33 +1792,31 @@ void BooleanProcessor::triangulateFace(int iface) if (ifirst != i2) { iedge = edges[iedge].inext; continue; - }else{ - if (z > del*del) { - external_contours.push_back(icontour); - }else if (z < -del*del) { - internal_contours.push_back(icontour); - }else{ - processor_error = 1; -#ifdef BP_DEBUG - G4cerr - << "BooleanProcessor::triangulateFace : too small contour" - << G4endl; -#endif - } - icontour = edges[iedge].inext; - edges[iedge].inext = 0; - break; } - }else{ - processor_error = 1; + if (z > del*del) { + external_contours.push_back(icontour); + }else if (z < -del*del) { + internal_contours.push_back(icontour); + }else{ + processor_error = 1; #ifdef BP_DEBUG - G4cerr - << "BooleanProcessor::triangulateFace : broken contour" - << G4endl; + G4cerr + << "BooleanProcessor::triangulateFace : too small contour" + << G4endl; #endif - icontour = 0; + } + icontour = edges[iedge].inext; + edges[iedge].inext = 0; break; } + processor_error = 1; +#ifdef BP_DEBUG + G4cerr + << "BooleanProcessor::triangulateFace : broken contour" + << G4endl; +#endif + icontour = 0; + break; } } @@ -1854,7 +1841,7 @@ void BooleanProcessor::triangulateFace(int iface) // T R I A N G U L A T E C O N T O U R S - int nface = faces.size(); + int nface = (int)faces.size(); for (kext=0; kext < (int)external_contours.size(); kext++) { triangulateContour(ix, iy, external_contours[kext]); #ifdef BP_DEBUG @@ -2013,16 +2000,16 @@ HepPolyhedron BooleanProcessor::execute(int op, processor_error = 0; operation = op; - nodes.clear(); nodes.push_back(CRAZY_POINT); - edges.clear(); edges.push_back(ExtEdge()); - faces.clear(); faces.push_back(ExtFace(edges,0)); //G.Barrand : ok ? + nodes.clear(); nodes.emplace_back(CRAZY_POINT); + edges.clear(); edges.emplace_back(); + faces.clear(); faces.emplace_back(edges,0); //G.Barrand : ok ? // T A K E P O L Y H E D R A - ifaces1 = faces.size(); takePolyhedron(a,0,0,0); - ifaces2 = faces.size(); takePolyhedron(b,0,0,0); + ifaces1 = (int)faces.size(); takePolyhedron(a,0,0,0); + ifaces2 = (int)faces.size(); takePolyhedron(b,0,0,0); - if (processor_error) { // corrupted polyhedron + if (processor_error != 0) { // corrupted polyhedron G4cerr << "BooleanProcessor: corrupted input polyhedron" << G4endl; @@ -2085,14 +2072,14 @@ HepPolyhedron BooleanProcessor::execute(int op, processor_error = 0; //G.Barrand operation = op; - nodes.clear(); nodes.push_back(CRAZY_POINT); - edges.clear(); edges.push_back(ExtEdge()); - faces.clear(); faces.push_back(ExtFace(edges,0)); //G.Barrand : ok ? + nodes.clear(); nodes.emplace_back(CRAZY_POINT); + edges.clear(); edges.emplace_back(); + faces.clear(); faces.emplace_back(edges,0); //G.Barrand : ok ? - ifaces1 = faces.size(); takePolyhedron(a,0,0,0); - ifaces2 = faces.size(); takePolyhedron(b,ddxx,ddyy,ddzz); + ifaces1 = (int)faces.size(); takePolyhedron(a,0,0,0); + ifaces2 = (int)faces.size(); takePolyhedron(b,ddxx,ddyy,ddzz); - if (processor_error) { PROCESSOR_ERROR(1) } //G.Barrand + if (processor_error != 0) { PROCESSOR_ERROR(1) } //G.Barrand del = findMinMax(); @@ -2102,7 +2089,7 @@ HepPolyhedron BooleanProcessor::execute(int op, selectOutsideFaces(ifaces1, iout1); selectOutsideFaces(ifaces2, iout2); - if (processor_error) { PROCESSOR_ERROR(2) } //G.Barrand + if (processor_error != 0) { PROCESSOR_ERROR(2) } //G.Barrand // P R E S E L E C T N O I N T E R S E C T I O N F A C E S @@ -2119,7 +2106,7 @@ HepPolyhedron BooleanProcessor::execute(int op, } } - if (processor_error) { PROCESSOR_ERROR(3) } //G.Barrand + if (processor_error != 0) { PROCESSOR_ERROR(3) } //G.Barrand // F I N D N E W E D G E S @@ -2134,14 +2121,14 @@ HepPolyhedron BooleanProcessor::execute(int op, ifa1 = faces[ifa1].inext; } } - if (processor_error) { PROCESSOR_ERROR(4) } //G.Barrand + if (processor_error != 0) { PROCESSOR_ERROR(4) } //G.Barrand // C O N S T R U C T N E W F A C E S assembleNewFaces((operation == OP_INTERSECTION) ? 1 : 0, ifaces1); - if (processor_error) { PROCESSOR_ERROR(5) } //G.Barrand + if (processor_error != 0) { PROCESSOR_ERROR(5) } //G.Barrand assembleNewFaces((operation == OP_UNION) ? 0 : 1, ifaces2); - if (processor_error) { PROCESSOR_ERROR(6) } //G.Barrand + if (processor_error != 0) { PROCESSOR_ERROR(6) } //G.Barrand // A S S E M B L E S U I T A B L E F A C E S @@ -2155,7 +2142,7 @@ HepPolyhedron BooleanProcessor::execute(int op, << G4endl; #endif } - if (processor_error) { PROCESSOR_ERROR(7) } //G.Barrand + if (processor_error != 0) { PROCESSOR_ERROR(7) } //G.Barrand // T R I A N G U L A T E A C C E P T E D F A C E S @@ -2164,13 +2151,13 @@ HepPolyhedron BooleanProcessor::execute(int op, ifa2 = ifa1; ifa1 = faces[ifa2].inext; if (faces[ifa2].inew == NEW_FACE) triangulateFace(ifa2); - if (processor_error) { + if (processor_error != 0) { PROCESSOR_ERROR(8) //G.Barrand break; //G.Barrand } } - if(!processor_error) { + if(processor_error == 0) { #ifdef BP_DEBUG if(try_count!=1) { G4cerr @@ -2318,7 +2305,8 @@ HepPolyhedron BooleanProcessor::execute(int op, /* //-------------------------------------------------------------------- void -BooleanProcessor::draw_edge(int icol, int iedge) { +BooleanProcessor::draw_edge(int icol, int iedge) +{ int i1, i2; float p1[3], p2[3]; @@ -2337,7 +2325,8 @@ BooleanProcessor::draw_edge(int icol, int iedge) { //-------------------------------------------------------------------- void -BooleanProcessor::draw_contour(int i1col, int i2col, int ihead) { +BooleanProcessor::draw_contour(int i1col, int i2col, int ihead) +{ int iedge, icol; iedge = ihead; while (iedge > 0) { @@ -2355,7 +2344,8 @@ BooleanProcessor::draw_contour(int i1col, int i2col, int ihead) { //-------------------------------------------------------------------- void -BooleanProcessor::print_face(int iface) { +BooleanProcessor::print_face(int iface) +{ G4cout.precision(3); G4cout << "\n====== Face N " << iface << G4endl; G4cout << "iedges[4] = " @@ -2408,7 +2398,8 @@ BooleanProcessor::print_face(int iface) { //-------------------------------------------------------------------- void -BooleanProcessor::print_edge(int iedge) { +BooleanProcessor::print_edge(int iedge) +{ G4cout << "==== Edge N " << iedge << G4endl; int i = std::abs(iedge); int i1 = edges[i].i1; @@ -2431,10 +2422,11 @@ BooleanProcessor::print_edge(int iedge) { } */ -void BooleanProcessor::dump() {//G.Barrand - unsigned int number = nodes.size(); +void BooleanProcessor::dump() +{ + std::size_t number = nodes.size(); G4cout << "nodes : " << number << G4endl; - for(unsigned int index=0;indexbegin(); iValue != fpValues->end(); ++iValue) { const G4String& valueName = iValue->GetName(); const G4String& value = iValue->GetValue(); + // NOLINTNEXTLINE(modernize-use-auto): Explicitly want a const_iterator map::const_iterator iDef = fpDefinitions->find(valueName); if (iDef == fpDefinitions->end()) { @@ -158,7 +155,7 @@ G4bool G4AttCheck::Check(const G4String& leader) const if (print) { G4cerr << "\n*******************************************************"; - if (leader != "") { + if (!leader.empty()) { G4cerr << '\n' << leader; } G4cerr << @@ -177,7 +174,7 @@ G4bool G4AttCheck::Check(const G4String& leader) const if (print) { G4cerr << "\n*******************************************************"; - if (leader != "") { + if (!leader.empty()) { G4cerr << '\n' << leader; } G4cerr << @@ -200,7 +197,7 @@ G4bool G4AttCheck::Check(const G4String& leader) const if (print) { G4cerr << "\n*******************************************************"; - if (leader != "") { + if (!leader.empty()) { G4cerr << '\n' << leader; } G4cerr << @@ -223,7 +220,7 @@ G4bool G4AttCheck::Check(const G4String& leader) const if (print) { G4cerr << "\n*******************************************************"; - if (leader != "") { + if (!leader.empty()) { G4cerr << '\n' << leader; } G4cerr << @@ -248,7 +245,7 @@ G4bool G4AttCheck::Check(const G4String& leader) const std::ostream& operator<< (std::ostream& os, const G4AttCheck& ac) { using namespace std; - if (!ac.fpDefinitions) { + if (ac.fpDefinitions == nullptr) { os << "G4AttCheck: ERROR: zero definitions pointer." << endl; return os; } @@ -256,7 +253,7 @@ std::ostream& operator<< (std::ostream& os, const G4AttCheck& ac) if (G4AttDefStore::GetStoreKey(ac.fpDefinitions, storeKey)) { os << storeKey << ':' << endl; } - if (!ac.fpValues) { + if (ac.fpValues == nullptr) { // A null values vector is a valid situation. os << "G4AttCheck: zero values pointer." << endl; return os; @@ -265,7 +262,8 @@ std::ostream& operator<< (std::ostream& os, const G4AttCheck& ac) for (iValue = ac.fpValues->begin(); iValue != ac.fpValues->end(); ++iValue) { const G4String& valueName = iValue->GetName(); const G4String& value = iValue->GetValue(); - map::const_iterator iDef = + // NOLINTNEXTLINE(modernize-use-auto): Explicitly want a const_iterator + map::const_iterator iDef = ac.fpDefinitions->find(valueName); G4bool error = false; if (iDef == ac.fpDefinitions->end()) { @@ -343,7 +341,7 @@ void G4AttCheck::AddValuesAndDefs // ...and make appropriate changes... (*standardDefinitions)[name].SetName(name); (*standardDefinitions)[name].SetExtra(extra); - if (description != "") (*standardDefinitions)[name].SetDesc(description); + if (!description.empty()) (*standardDefinitions)[name].SetDesc(description); } G4bool G4AttCheck::Standard @@ -358,6 +356,7 @@ G4bool G4AttCheck::Standard for (iValue = fpValues->begin(); iValue != fpValues->end(); ++iValue) { const G4String& valueName = iValue->GetName(); const G4String& value = iValue->GetValue(); + // NOLINTNEXTLINE(modernize-use-auto): Explicitly want a const_iterator map::const_iterator iDef = fpDefinitions->find(valueName); if (iDef == fpDefinitions->end()) { diff --git a/source/graphics_reps/src/G4AttDef.cc b/source/graphics_reps/src/G4AttDef.cc index 3b5eefce69..2f0ef6b67a 100644 --- a/source/graphics_reps/src/G4AttDef.cc +++ b/source/graphics_reps/src/G4AttDef.cc @@ -36,7 +36,7 @@ std::ostream& operator<< (std::ostream& os, const std::map* definitions) { os << "G4AttDef: Deprecated output function. Use const reference instead." << endl; - if (definitions) { + if (definitions != nullptr) { os << *definitions; } else { os << "G4AttCheck: ERROR: zero definitions pointer." << endl; diff --git a/source/graphics_reps/src/G4AttDefStore.cc b/source/graphics_reps/src/G4AttDefStore.cc index 96c7735bd2..393a31a13f 100644 --- a/source/graphics_reps/src/G4AttDefStore.cc +++ b/source/graphics_reps/src/G4AttDefStore.cc @@ -32,7 +32,7 @@ namespace G4AttDefStore { -std::map*> *m_defsmaps = 0; +std::map*> *m_defsmaps = nullptr; G4Mutex mutex = G4MUTEX_INITIALIZER; @@ -41,14 +41,16 @@ GetInstance(const G4String& storeKey, G4bool& isNew) { G4AutoLock al(&mutex); - if (!m_defsmaps) + if (m_defsmaps == nullptr) m_defsmaps = new std::map*>; // Allocate the new map if not existing already // and return it to the caller // std::map* definitions; - std::map*>::iterator iDefinitions = + + // NOLINTNEXTLINE(modernize-use-auto): Explicitly want a const_iterator + std::map*>::const_iterator iDefinitions = m_defsmaps->find(storeKey); if (iDefinitions == m_defsmaps->end()) @@ -70,7 +72,7 @@ G4bool GetStoreKey { G4AutoLock al(&mutex); - if (!m_defsmaps) + if (m_defsmaps == nullptr) m_defsmaps = new std::map*>; std::map*>::const_iterator i; for (i = m_defsmaps->begin(); i != m_defsmaps->end(); ++i) diff --git a/source/graphics_reps/src/G4AttHolder.cc b/source/graphics_reps/src/G4AttHolder.cc index 602e43f38d..4158d207bb 100644 --- a/source/graphics_reps/src/G4AttHolder.cc +++ b/source/graphics_reps/src/G4AttHolder.cc @@ -32,5 +32,5 @@ G4AttHolder::~G4AttHolder() { - for (size_t i = 0; i < fValues.size(); ++i) delete fValues[i]; + for (auto & fValue : fValues) delete fValue; } diff --git a/source/graphics_reps/src/G4Circle.cc b/source/graphics_reps/src/G4Circle.cc index 5f02e247a7..a768436b6d 100644 --- a/source/graphics_reps/src/G4Circle.cc +++ b/source/graphics_reps/src/G4Circle.cc @@ -31,13 +31,13 @@ #include "G4VisAttributes.hh" -G4Circle::G4Circle () {} +G4Circle::G4Circle () = default; G4Circle::G4Circle (const G4VMarker& marker): G4VMarker (marker) {} G4Circle::G4Circle (const G4Point3D& pos): G4VMarker (pos) {} -G4Circle::~G4Circle () {} +G4Circle::~G4Circle () = default; std::ostream& operator<< (std::ostream& os, const G4Circle& circle) { diff --git a/source/graphics_reps/src/G4Colour.cc b/source/graphics_reps/src/G4Colour.cc index 6064924d40..bb908b061d 100644 --- a/source/graphics_reps/src/G4Colour.cc +++ b/source/graphics_reps/src/G4Colour.cc @@ -94,14 +94,10 @@ std::ostream& operator << (std::ostream& os, const G4Colour& c) { } G4bool G4Colour::operator != (const G4Colour& c) const { - if ( - (red != c.red) || + return (red != c.red) || (green != c.green) || (blue != c.blue) || - (alpha != c.alpha) - ) - return true; - return false; + (alpha != c.alpha); } std::map G4Colour::fColourMap; @@ -124,10 +120,8 @@ void G4Colour::AddToMap(const G4String& key, const G4Colour& colour) // Convert to lower case since colour map is case insensitive G4String myKey = G4StrUtil::to_lower_copy(key); - - std::map::iterator iter = fColourMap.find(myKey); - if (iter == fColourMap.end()) fColourMap[myKey] = colour; + if (fColourMap.find(myKey) == fColourMap.end()) fColourMap[myKey] = colour; else { G4ExceptionDescription ed; ed << "G4Colour with key " << myKey << " already exists." << G4endl; @@ -164,11 +158,12 @@ G4bool G4Colour::GetColour(const G4String& key, G4Colour& result) InitialiseColourMap(); // Initialises if not already initialised G4String myKey = G4StrUtil::to_lower_copy(key); - - std::map::iterator iter = fColourMap.find(myKey); + + // NOLINTNEXTLINE(modernize-use-auto): Explicitly want a const_iterator + std::map::const_iterator iter = fColourMap.find(myKey); // Don't modify "result" if colour was not found in map - if (iter == fColourMap.end()) return false; + if (iter == fColourMap.cend()) return false; result = iter->second; @@ -186,12 +181,14 @@ const std::map& G4Colour::GetMap() G4bool G4Colour::operator< (const G4Colour& rhs) const { if (red < rhs.red) return true; - else if (red == rhs.red) { + if (red == rhs.red) { if (green < rhs.green) return true; - else if (green == rhs.green) { + if (green == rhs.green) { if (blue < rhs.blue) return true; - else if (blue == rhs.blue) { - if (alpha < rhs.alpha) return true; - }}} + if (blue == rhs.blue) { + if (alpha < rhs.alpha) return true; + } + } + } return false; } diff --git a/source/graphics_reps/src/G4DimensionedTypeUtils.cc b/source/graphics_reps/src/G4DimensionedTypeUtils.cc index c2b50da1c5..a05e51a908 100644 --- a/source/graphics_reps/src/G4DimensionedTypeUtils.cc +++ b/source/graphics_reps/src/G4DimensionedTypeUtils.cc @@ -49,10 +49,10 @@ namespace G4DimensionedTypeUtils { // Get units table G4UnitsTable& unitTable = G4UnitDefinition::GetUnitsTable(); - if (unitTable.size() == 0) G4UnitDefinition::BuildUnitsTable(); + if (unitTable.empty()) G4UnitDefinition::BuildUnitsTable(); // Iterate over unit lists, searching for unit match - G4UnitsTable::const_iterator iterTable = unitTable.begin(); + auto iterTable = unitTable.begin(); HasName myUnit(unit); G4bool gotUnit(false); @@ -60,7 +60,7 @@ namespace G4DimensionedTypeUtils while (!gotUnit && (iterTable != unitTable.end())) { G4UnitsContainer unitContainer = (*iterTable)->GetUnitsList(); - G4UnitsContainer::const_iterator iterUnits = + auto iterUnits = std::find_if(unitContainer.begin(), unitContainer.end(), myUnit); if (iterUnits != unitContainer.end()) { diff --git a/source/graphics_reps/src/G4PlacedPolyhedron.cc b/source/graphics_reps/src/G4PlacedPolyhedron.cc index ef01af7571..e252f26b19 100644 --- a/source/graphics_reps/src/G4PlacedPolyhedron.cc +++ b/source/graphics_reps/src/G4PlacedPolyhedron.cc @@ -27,7 +27,7 @@ #include "G4PlacedPolyhedron.hh" -G4PlacedPolyhedron::G4PlacedPolyhedron () {} +G4PlacedPolyhedron::G4PlacedPolyhedron () = default; G4PlacedPolyhedron::G4PlacedPolyhedron (const G4Polyhedron& polyhedron, const G4Transform3D& transform): diff --git a/source/graphics_reps/src/G4Plotter.cc b/source/graphics_reps/src/G4Plotter.cc index 9a68f8489f..b41345f9bc 100644 --- a/source/graphics_reps/src/G4Plotter.cc +++ b/source/graphics_reps/src/G4Plotter.cc @@ -27,32 +27,11 @@ #include "G4Plotter.hh" -G4Plotter::G4Plotter():fColumns(1),fRows(1) {} +G4Plotter::G4Plotter() = default; -G4Plotter::G4Plotter (const G4Plotter& a_from) -:fColumns(a_from.fColumns) -,fRows(a_from.fRows) -,fStyles(a_from.fStyles) -,fRegionStyles(a_from.fRegionStyles) -,fRegionParameters(a_from.fRegionParameters) -,fRegion_h1ds(a_from.fRegion_h1ds) -,fRegion_h2ds(a_from.fRegion_h2ds) -,fRegion_h1s(a_from.fRegion_h1s) -,fRegion_h2s(a_from.fRegion_h2s) -{} +G4Plotter::G4Plotter (const G4Plotter& a_from) = default; -G4Plotter& G4Plotter::operator=(const G4Plotter& a_from) { - fColumns = a_from.fColumns; - fRows = a_from.fRows; - fStyles = a_from.fStyles; - fRegionStyles = a_from.fRegionStyles; - fRegionParameters = a_from.fRegionParameters; - fRegion_h1ds = a_from.fRegion_h1ds; - fRegion_h2ds = a_from.fRegion_h2ds; - fRegion_h1s = a_from.fRegion_h1s; - fRegion_h2s = a_from.fRegion_h2s; - return *this; -} +G4Plotter& G4Plotter::operator=(const G4Plotter& a_from) = default; void G4Plotter::SetLayout(unsigned int a_cols,unsigned int a_rows) { fColumns = a_cols; @@ -62,23 +41,23 @@ void G4Plotter::AddStyle(const G4String& a_style) { fStyles.push_back(a_style); } void G4Plotter::AddRegionStyle(unsigned int a_region,const G4String& a_style) { - fRegionStyles.push_back(RegionStyle(a_region,a_style)); + fRegionStyles.emplace_back(a_region,a_style); } void G4Plotter::AddRegionParameter(unsigned int a_region,const G4String& a_parameter,const G4String& a_value) { - fRegionParameters.push_back(RegionParameter(a_region,Parameter(a_parameter,a_value))); + fRegionParameters.emplace_back(a_region,Parameter(a_parameter,a_value)); } void G4Plotter::AddRegionHistogram(unsigned int a_region,tools::histo::h1d* a_h) { - fRegion_h1ds.push_back(Region_h1d(a_region,a_h)); + fRegion_h1ds.emplace_back(a_region,a_h); } void G4Plotter::AddRegionHistogram(unsigned int a_region,tools::histo::h2d* a_h) { - fRegion_h2ds.push_back(Region_h2d(a_region,a_h)); + fRegion_h2ds.emplace_back(a_region,a_h); } void G4Plotter::AddRegionH1(unsigned int a_region,int a_id) { - fRegion_h1s.push_back(Region_h1(a_region,a_id)); + fRegion_h1s.emplace_back(a_region,a_id); } void G4Plotter::AddRegionH2(unsigned int a_region,int a_id) { - fRegion_h2s.push_back(Region_h2(a_region,a_id)); + fRegion_h2s.emplace_back(a_region,a_id); } void G4Plotter::Reset() { diff --git a/source/graphics_reps/src/G4Point3DList.cc b/source/graphics_reps/src/G4Point3DList.cc index ab590f5d0f..a9050d0434 100644 --- a/source/graphics_reps/src/G4Point3DList.cc +++ b/source/graphics_reps/src/G4Point3DList.cc @@ -32,7 +32,7 @@ #include "G4ios.hh" -G4Point3DList::~G4Point3DList () {} +G4Point3DList::~G4Point3DList () = default; std::ostream& operator << (std::ostream& os, const G4Point3DList& points) { diff --git a/source/graphics_reps/src/G4Polyhedron.cc b/source/graphics_reps/src/G4Polyhedron.cc index be0b0d2127..864ab0aa71 100644 --- a/source/graphics_reps/src/G4Polyhedron.cc +++ b/source/graphics_reps/src/G4Polyhedron.cc @@ -28,13 +28,13 @@ #include "G4Polyhedron.hh" G4Polyhedron::G4Polyhedron () -{} += default; G4Polyhedron::G4Polyhedron (G4int Nvert, G4int Nface): HepPolyhedron (Nvert, Nface) {} -G4Polyhedron::~G4Polyhedron () {} +G4Polyhedron::~G4Polyhedron () = default; G4Polyhedron::G4Polyhedron (const HepPolyhedron& from) : HepPolyhedron(from) @@ -46,27 +46,27 @@ G4Polyhedron::G4Polyhedron (const HepPolyhedron& from) G4PolyhedronBox::G4PolyhedronBox (G4double dx, G4double dy, G4double dz): G4Polyhedron (HepPolyhedronBox (dx, dy, dz)) {} -G4PolyhedronBox::~G4PolyhedronBox () {} +G4PolyhedronBox::~G4PolyhedronBox () = default; G4PolyhedronCone::G4PolyhedronCone (G4double Rmn1, G4double Rmx1, G4double Rmn2, G4double Rmx2, G4double Dz): G4Polyhedron (HepPolyhedronCone (Rmn1, Rmx1, Rmn2, Rmx2, Dz)) {} -G4PolyhedronCone::~G4PolyhedronCone () {} +G4PolyhedronCone::~G4PolyhedronCone () = default; G4PolyhedronCons::G4PolyhedronCons (G4double Rmn1, G4double Rmx1, G4double Rmn2, G4double Rmx2, G4double Dz, G4double Phi1, G4double Dphi): G4Polyhedron (HepPolyhedronCons (Rmn1, Rmx1, Rmn2, Rmx2, Dz, Phi1, Dphi)) {} -G4PolyhedronCons::~G4PolyhedronCons () {} +G4PolyhedronCons::~G4PolyhedronCons () = default; G4PolyhedronPara::G4PolyhedronPara (G4double Dx, G4double Dy, G4double Dz, G4double Alpha, G4double Theta, G4double Phi): G4Polyhedron (HepPolyhedronPara (Dx, Dy, Dz, Alpha, Theta, Phi)) {} -G4PolyhedronPara::~G4PolyhedronPara () {} +G4PolyhedronPara::~G4PolyhedronPara () = default; G4PolyhedronPcon::G4PolyhedronPcon (G4double phi, G4double dphi, G4int nz, const G4double *z, @@ -78,7 +78,7 @@ G4PolyhedronPcon::G4PolyhedronPcon (G4double phi, G4double dphi, const std::vector &rz): G4Polyhedron (HepPolyhedronPcon(phi, dphi, rz)) {} -G4PolyhedronPcon::~G4PolyhedronPcon () {} +G4PolyhedronPcon::~G4PolyhedronPcon () = default; G4PolyhedronPgon::G4PolyhedronPgon (G4double phi, G4double dphi, G4int npdv, G4int nz, @@ -91,14 +91,14 @@ G4PolyhedronPgon::G4PolyhedronPgon (G4double phi, G4double dphi, G4int npdv, const std::vector &rz): G4Polyhedron (HepPolyhedronPgon(phi, dphi, npdv, rz)) {} -G4PolyhedronPgon::~G4PolyhedronPgon () {} +G4PolyhedronPgon::~G4PolyhedronPgon () = default; G4PolyhedronSphere::G4PolyhedronSphere (G4double rmin, G4double rmax, G4double phi, G4double dphi, G4double the, G4double dthe): G4Polyhedron (HepPolyhedronSphere (rmin, rmax, phi, dphi, the, dthe)) {} -G4PolyhedronSphere::~G4PolyhedronSphere () {} +G4PolyhedronSphere::~G4PolyhedronSphere () = default; G4PolyhedronTet::G4PolyhedronTet (const G4double p0[3], const G4double p1[3], @@ -106,14 +106,14 @@ G4PolyhedronTet::G4PolyhedronTet (const G4double p0[3], const G4double p3[3]): G4Polyhedron (HepPolyhedronTet (p0, p1, p2, p3)) {} -G4PolyhedronTet::~G4PolyhedronTet () {} +G4PolyhedronTet::~G4PolyhedronTet () = default; G4PolyhedronTorus::G4PolyhedronTorus (G4double rmin, G4double rmax, G4double rtor, G4double phi, G4double dphi): G4Polyhedron (HepPolyhedronTorus (rmin, rmax, rtor, phi, dphi)) {} -G4PolyhedronTorus::~G4PolyhedronTorus () {} +G4PolyhedronTorus::~G4PolyhedronTorus () = default; G4PolyhedronTrap::G4PolyhedronTrap (G4double Dz, G4double Theta, G4double Phi, G4double Dy1, @@ -123,50 +123,50 @@ G4PolyhedronTrap::G4PolyhedronTrap (G4double Dz, G4double Theta, G4double Phi, G4Polyhedron (HepPolyhedronTrap (Dz, Theta, Phi, Dy1, Dx1, Dx2, Alp1, Dy2, Dx3, Dx4, Alp2)) {} -G4PolyhedronTrap::~G4PolyhedronTrap () {} +G4PolyhedronTrap::~G4PolyhedronTrap () = default; G4PolyhedronTrd1::G4PolyhedronTrd1 (G4double Dx1, G4double Dx2, G4double Dy, G4double Dz): G4Polyhedron (HepPolyhedronTrd1 (Dx1, Dx2, Dy, Dz)) {} -G4PolyhedronTrd1::~G4PolyhedronTrd1 () {} +G4PolyhedronTrd1::~G4PolyhedronTrd1 () = default; G4PolyhedronTrd2::G4PolyhedronTrd2 (G4double Dx1, G4double Dx2, G4double Dy1, G4double Dy2, G4double Dz): G4Polyhedron (HepPolyhedronTrd2 (Dx1, Dx2, Dy1, Dy2, Dz)) {} -G4PolyhedronTrd2::~G4PolyhedronTrd2 () {} +G4PolyhedronTrd2::~G4PolyhedronTrd2 () = default; G4PolyhedronTube::G4PolyhedronTube (G4double Rmin, G4double Rmax, G4double Dz): G4Polyhedron (HepPolyhedronTube (Rmin, Rmax, Dz)) {} -G4PolyhedronTube::~G4PolyhedronTube () {} +G4PolyhedronTube::~G4PolyhedronTube () = default; G4PolyhedronTubs::G4PolyhedronTubs (G4double Rmin, G4double Rmax, G4double Dz, G4double Phi1, G4double Dphi): G4Polyhedron (HepPolyhedronTubs (Rmin, Rmax, Dz, Phi1, Dphi)) {} -G4PolyhedronTubs::~G4PolyhedronTubs () {} +G4PolyhedronTubs::~G4PolyhedronTubs () = default; G4PolyhedronParaboloid::G4PolyhedronParaboloid (G4double r1, G4double r2, G4double dz, G4double sPhi, G4double dPhi): G4Polyhedron (HepPolyhedronParaboloid(r1, r2, dz, sPhi, dPhi)) {} -G4PolyhedronParaboloid::~G4PolyhedronParaboloid () {} +G4PolyhedronParaboloid::~G4PolyhedronParaboloid () = default; G4PolyhedronHype::G4PolyhedronHype (G4double r1, G4double r2, G4double tan1, G4double tan2, G4double halfZ): G4Polyhedron (HepPolyhedronHype(r1, r2, tan1, tan2, halfZ)) {} -G4PolyhedronHype::~G4PolyhedronHype () {} +G4PolyhedronHype::~G4PolyhedronHype () = default; G4PolyhedronEllipsoid::G4PolyhedronEllipsoid (G4double ax, G4double by, G4double cz, G4double zCut1, G4double zCut2): G4Polyhedron (HepPolyhedronEllipsoid (ax, by, cz, zCut1, zCut2)) {} -G4PolyhedronEllipsoid::~G4PolyhedronEllipsoid () {} +G4PolyhedronEllipsoid::~G4PolyhedronEllipsoid () = default; G4PolyhedronEllipticalCone::G4PolyhedronEllipticalCone (G4double ax, G4double ay, @@ -174,27 +174,27 @@ G4PolyhedronEllipticalCone::G4PolyhedronEllipticalCone (G4double ax, G4double zCut1): G4Polyhedron (HepPolyhedronEllipticalCone (ax, ay, h, zCut1)) {} -G4PolyhedronEllipticalCone::~G4PolyhedronEllipticalCone () {} +G4PolyhedronEllipticalCone::~G4PolyhedronEllipticalCone () = default; G4PolyhedronHyperbolicMirror::G4PolyhedronHyperbolicMirror (G4double a, G4double h, G4double r): G4Polyhedron (HepPolyhedronHyperbolicMirror(a, h, r)) {} -G4PolyhedronHyperbolicMirror::~G4PolyhedronHyperbolicMirror () {} +G4PolyhedronHyperbolicMirror::~G4PolyhedronHyperbolicMirror () = default; G4PolyhedronTetMesh:: G4PolyhedronTetMesh(const std::vector& tetrahedra): G4Polyhedron (HepPolyhedronTetMesh(tetrahedra)) {} -G4PolyhedronTetMesh::~G4PolyhedronTetMesh () {} +G4PolyhedronTetMesh::~G4PolyhedronTetMesh () = default; G4PolyhedronBoxMesh:: G4PolyhedronBoxMesh(G4double sizeX, G4double sizeY, G4double sizeZ, const std::vector& positions): G4Polyhedron (HepPolyhedronBoxMesh(sizeX, sizeY, sizeZ, positions)) {} -G4PolyhedronBoxMesh::~G4PolyhedronBoxMesh () {} +G4PolyhedronBoxMesh::~G4PolyhedronBoxMesh () = default; std::ostream& operator<<(std::ostream& os, const G4Polyhedron& polyhedron) { diff --git a/source/graphics_reps/src/G4Polyline.cc b/source/graphics_reps/src/G4Polyline.cc index 45a46cfeaf..0793d6d01e 100644 --- a/source/graphics_reps/src/G4Polyline.cc +++ b/source/graphics_reps/src/G4Polyline.cc @@ -30,12 +30,12 @@ #include "G4Polyline.hh" -G4Polyline::G4Polyline () {} +G4Polyline::G4Polyline () = default; -G4Polyline::~G4Polyline () {} +G4Polyline::~G4Polyline () = default; G4Polyline& G4Polyline::transform (const G4Transform3D& transformation) { - for (iterator i = begin(); i != end(); ++i) i->transform(transformation); + for (auto & i : *this) i.transform(transformation); return *this; } diff --git a/source/graphics_reps/src/G4Polymarker.cc b/source/graphics_reps/src/G4Polymarker.cc index 2dde5e7da4..17e85ac162 100644 --- a/source/graphics_reps/src/G4Polymarker.cc +++ b/source/graphics_reps/src/G4Polymarker.cc @@ -39,7 +39,7 @@ G4Polymarker::G4Polymarker (const G4VMarker& marker): fMarkerType (G4Polymarker::dots) {} -G4Polymarker::~G4Polymarker () {} +G4Polymarker::~G4Polymarker () = default; std::ostream& operator << (std::ostream& os, const G4Polymarker& marker) { os << "G4Polymarker: type: "; diff --git a/source/graphics_reps/src/G4Square.cc b/source/graphics_reps/src/G4Square.cc index 2fd302fcdb..cdd6b154c5 100644 --- a/source/graphics_reps/src/G4Square.cc +++ b/source/graphics_reps/src/G4Square.cc @@ -31,7 +31,7 @@ #include "G4VisAttributes.hh" -G4Square::~G4Square () {} +G4Square::~G4Square () = default; std::ostream& operator<< (std::ostream& os, const G4Square& square) { diff --git a/source/graphics_reps/src/G4Text.cc b/source/graphics_reps/src/G4Text.cc index 9440bd7851..f355519a83 100644 --- a/source/graphics_reps/src/G4Text.cc +++ b/source/graphics_reps/src/G4Text.cc @@ -50,7 +50,7 @@ fLayout (left) , fXOffset(0.) , fYOffset(0.) {} -G4Text::~G4Text () {} +G4Text::~G4Text () = default; std::ostream& operator<< (std::ostream& os, const G4Text& text) { diff --git a/source/graphics_reps/src/G4VGraphicsScene.cc b/source/graphics_reps/src/G4VGraphicsScene.cc index 7cf66ae234..7d0fcc0b52 100644 --- a/source/graphics_reps/src/G4VGraphicsScene.cc +++ b/source/graphics_reps/src/G4VGraphicsScene.cc @@ -30,9 +30,9 @@ #include "G4VisExtent.hh" -G4VGraphicsScene::G4VGraphicsScene() {} +G4VGraphicsScene::G4VGraphicsScene() = default; -G4VGraphicsScene::~G4VGraphicsScene() {} +G4VGraphicsScene::~G4VGraphicsScene() = default; const G4VisExtent& G4VGraphicsScene::GetExtent() const { diff --git a/source/graphics_reps/src/G4VMarker.cc b/source/graphics_reps/src/G4VMarker.cc index a90b1d13ec..a3e0fb88d1 100644 --- a/source/graphics_reps/src/G4VMarker.cc +++ b/source/graphics_reps/src/G4VMarker.cc @@ -32,7 +32,6 @@ #include "G4VisAttributes.hh" G4VMarker::G4VMarker (): - fPosition (G4Point3D ()), fWorldSize (0.), fScreenSize (0.), fFillStyle (noFill) @@ -45,7 +44,7 @@ G4VMarker::G4VMarker (const G4Point3D& pos): fFillStyle (noFill) {} -G4VMarker::~G4VMarker () {} +G4VMarker::~G4VMarker () = default; G4bool G4VMarker::operator != (const G4VMarker& mk) const { return ( (G4Visible::operator != (mk)) || @@ -79,8 +78,8 @@ std::ostream& operator << (std::ostream& os, const G4VMarker& marker) { G4VMarker::SizeType G4VMarker::GetSizeType () const { SizeType type = none; - if (fWorldSize) type = world; - else if (fScreenSize) type = screen; + if (fWorldSize != 0.0) type = world; + else if (fScreenSize != 0.0) type = screen; return type; } diff --git a/source/graphics_reps/src/G4VVisManager.cc b/source/graphics_reps/src/G4VVisManager.cc index fefb90d0f3..200c1f3329 100644 --- a/source/graphics_reps/src/G4VVisManager.cc +++ b/source/graphics_reps/src/G4VVisManager.cc @@ -32,11 +32,11 @@ #include "G4VVisManager.hh" G4VVisManager::G4VVisManager () -{} += default; -G4VVisManager::~G4VVisManager () {} +G4VVisManager::~G4VVisManager () = default; -G4VVisManager* G4VVisManager::fpConcreteInstance = 0; +G4VVisManager* G4VVisManager::fpConcreteInstance = nullptr; G4VVisManager* G4VVisManager::GetConcreteInstance () { @@ -48,6 +48,11 @@ void G4VVisManager::SetConcreteInstance (G4VVisManager* man) fpConcreteInstance = man; } +void G4VVisManager::DrawGeometry +(G4VPhysicalVolume*, const G4Transform3D&) +// Draws a geometry tree starting at the specified physical volume. +{} + void G4VVisManager::IgnoreStateChanges (G4bool) {;} diff --git a/source/graphics_reps/src/G4VisAttributes.cc b/source/graphics_reps/src/G4VisAttributes.cc index 670b34cd56..e51a4a7b97 100644 --- a/source/graphics_reps/src/G4VisAttributes.cc +++ b/source/graphics_reps/src/G4VisAttributes.cc @@ -36,7 +36,6 @@ G4VisAttributes::G4VisAttributes (): fVisible (true), fDaughtersInvisible (false), -fColour (G4Colour ()), fLineStyle (unbroken), fLineWidth (1.), fForceDrawingStyle (false), @@ -47,14 +46,14 @@ fForcedAuxEdgeVisible(false), fForcedLineSegmentsPerCircle (0), // <=0 means not forced. fStartTime (-fVeryLongTime), fEndTime (fVeryLongTime), -fAttValues (0), -fAttDefs (0) +fAttValues (nullptr), +fAttDefs (nullptr) {} G4VisAttributes::G4VisAttributes (G4bool visibility): fVisible (visibility), fDaughtersInvisible (false), -fColour (G4Colour ()), + fLineStyle (unbroken), fLineWidth (1.), fForceDrawingStyle (false), @@ -65,8 +64,8 @@ fForcedAuxEdgeVisible(false), fForcedLineSegmentsPerCircle (0), // <=0 means not forced. fStartTime (-fVeryLongTime), fEndTime (fVeryLongTime), -fAttValues (0), -fAttDefs (0) +fAttValues (nullptr), +fAttDefs (nullptr) {} G4VisAttributes::G4VisAttributes (const G4Colour& colour): @@ -83,8 +82,8 @@ fForcedAuxEdgeVisible(false), fForcedLineSegmentsPerCircle (0), // <=0 means not forced. fStartTime (-fVeryLongTime), fEndTime (fVeryLongTime), -fAttValues (0), -fAttDefs (0) +fAttValues (nullptr), +fAttDefs (nullptr) {} G4VisAttributes::G4VisAttributes (G4bool visibility, @@ -102,35 +101,10 @@ fForcedAuxEdgeVisible(false), fForcedLineSegmentsPerCircle (0), // <=0 means not forced. fStartTime (-fVeryLongTime), fEndTime (fVeryLongTime), -fAttValues (0), -fAttDefs (0) +fAttValues (nullptr), +fAttDefs (nullptr) {} -G4VisAttributes::G4VisAttributes (const G4VisAttributes& va): -fVisible (va.fVisible), -fDaughtersInvisible (va.fDaughtersInvisible), -fColour (va.fColour), -fLineStyle (va.fLineStyle), -fLineWidth (va.fLineWidth), -fForceDrawingStyle (va.fForceDrawingStyle), -fForcedStyle (va.fForcedStyle), -fForcedNumberOfCloudPoints (va.fForcedNumberOfCloudPoints), -fForceAuxEdgeVisible (va.fForceAuxEdgeVisible), -fForcedAuxEdgeVisible(va.fForcedAuxEdgeVisible), -fForcedLineSegmentsPerCircle (va.fForcedLineSegmentsPerCircle), -fStartTime (va.fStartTime), -fEndTime (va.fEndTime), -// AttValues are created afresh for each object (using the -// CreateAttValues message), but deletion is the responsibility of -// the creator. So just copy pointer. -fAttValues (va.fAttValues), -// AttDefs, if any, belong to the object from which they were obtained -// (with a GetAttDefs message), so just copy pointer. -fAttDefs (va.fAttDefs) -{} - -G4VisAttributes::~G4VisAttributes() -{} G4VisAttributes& G4VisAttributes::operator= (const G4VisAttributes& rhs) { @@ -210,12 +184,12 @@ void G4VisAttributes::SetForceAuxEdgeVisible (G4bool visibility) { G4VisAttributes::ForcedDrawingStyle G4VisAttributes::GetForcedDrawingStyle () const { if (fForceDrawingStyle) return fForcedStyle; - else return G4VisAttributes::wireframe; + return G4VisAttributes::wireframe; } G4bool G4VisAttributes::IsForcedAuxEdgeVisible () const { if (fForceAuxEdgeVisible) return fForcedAuxEdgeVisible; - else return false; + return false; } const std::vector* G4VisAttributes::CreateAttValues () const { @@ -237,6 +211,7 @@ void G4VisAttributes::SetForceLineSegmentsPerCircle (G4int nSegments) { std::ostream& operator << (std::ostream& os, const G4VisAttributes& a) { + os << std::defaultfloat; os << "G4VisAttributes: "; if (!a.fVisible) os << "in"; os << "visible, daughters "; @@ -285,12 +260,12 @@ std::ostream& operator << (std::ostream& os, const G4VisAttributes& a) } os << "\n time range: (" << a.fStartTime << ',' << a.fEndTime << ')'; os << "\n G4AttValue pointer is "; - if (a.fAttValues) { + if (a.fAttValues != nullptr) { os << "non-"; } os << "zero"; os << ", G4AttDef pointer is "; - if (a.fAttDefs) { + if (a.fAttDefs != nullptr) { os << "non-"; } os << "zero"; diff --git a/source/graphics_reps/src/G4VisExtent.cc b/source/graphics_reps/src/G4VisExtent.cc index 3f0e0a8065..c814c9debf 100644 --- a/source/graphics_reps/src/G4VisExtent.cc +++ b/source/graphics_reps/src/G4VisExtent.cc @@ -55,7 +55,7 @@ G4VisExtent::G4VisExtent (const G4Point3D& centre, G4double radius): fZmax = centre.z () + halfSide; } -G4VisExtent::~G4VisExtent () {} +G4VisExtent::~G4VisExtent () = default; const G4VisExtent& G4VisExtent::GetNullExtent () { static const G4VisExtent nullExtent = G4VisExtent(); diff --git a/source/graphics_reps/src/G4Visible.cc b/source/graphics_reps/src/G4Visible.cc index 50b947b38a..122cd8d5cb 100644 --- a/source/graphics_reps/src/G4Visible.cc +++ b/source/graphics_reps/src/G4Visible.cc @@ -34,7 +34,7 @@ #include "G4ios.hh" G4Visible::G4Visible (): - fpVisAttributes (0), + fpVisAttributes (nullptr), fAllocatedVisAttributes (false) {} @@ -104,16 +104,16 @@ void G4Visible::SetVisAttributes (const G4VisAttributes* pVA) { G4bool G4Visible::operator != (const G4Visible& right) const { if (fInfo != right.fInfo) return false; - if (fpVisAttributes && right.fpVisAttributes) + if ((fpVisAttributes != nullptr) && (right.fpVisAttributes != nullptr)) return *fpVisAttributes != *right.fpVisAttributes; - else if (!fpVisAttributes && !right.fpVisAttributes) return false; - else return true; + if ((fpVisAttributes == nullptr) && (right.fpVisAttributes == nullptr)) return false; + return true; } std::ostream& operator << (std::ostream& os, const G4Visible& v) { os << "G4Visible: "; if (!v.fInfo.empty()) os << "User information: " << v.fInfo; os << '\n'; - if (v.fpVisAttributes) return os << *(v.fpVisAttributes); - else return os << "No Visualization Attributes"; + if (v.fpVisAttributes != nullptr) return os << *(v.fpVisAttributes); + return os << "No Visualization Attributes"; } diff --git a/source/graphics_reps/src/HepPolyhedron.cc b/source/graphics_reps/src/HepPolyhedron.cc index d0fa7a1a91..c1c1e99f9f 100644 --- a/source/graphics_reps/src/HepPolyhedron.cc +++ b/source/graphics_reps/src/HepPolyhedron.cc @@ -96,8 +96,8 @@ const G4double spatialTolerance = 0.01*nm; * * ***********************************************************************/ std::ostream & operator<<(std::ostream & ostr, const G4Facet & facet) { - for (G4int k=0; k<4; k++) { - ostr << " " << facet.edge[k].v << "/" << facet.edge[k].f; + for (const auto& edge : facet.edge) { + ostr << " " << edge.v << "/" << edge.f; } return ostr; } @@ -125,7 +125,7 @@ HepPolyhedron::HepPolyhedron(G4int Nvert, G4int Nface) * Author: E.Tcherniaev (E.Chernyaev) * * * ***********************************************************************/ -: nvert(0), nface(0), pV(0), pF(0) +: nvert(0), nface(0), pV(nullptr), pF(nullptr) { AllocateMemory(Nvert, Nface); } @@ -137,7 +137,7 @@ HepPolyhedron::HepPolyhedron(const HepPolyhedron &from) * Author: E.Chernyaev (IHEP/Protvino) Revised: * * * ***********************************************************************/ -: nvert(0), nface(0), pV(0), pF(0) +: nvert(0), nface(0), pV(nullptr), pF(nullptr) { AllocateMemory(from.nvert, from.nface); for (G4int i=1; i<=nvert; i++) pV[i] = from.pV[i]; @@ -250,13 +250,12 @@ G4Normal3D HepPolyhedron::FindNodeNormal(G4int iFace, G4int iNode) const ***********************************************************************/ { G4Normal3D normal = GetUnitNormal(iFace); - G4int k = iFace, iOrder = 1, n = 1; + G4int k = iFace, iOrder = 1; for(;;) { k = FindNeighbour(k, iNode, iOrder); if (k == iFace) break; if (k > 0) { - n++; normal += GetUnitNormal(k); }else{ if (iOrder < 0) break; @@ -386,15 +385,15 @@ void HepPolyhedron::AllocateMemory(G4int Nvert, G4int Nface) ***********************************************************************/ { if (nvert == Nvert && nface == Nface) return; - if (pV != 0) delete [] pV; - if (pF != 0) delete [] pF; + delete [] pV; + delete [] pF; if (Nvert > 0 && Nface > 0) { nvert = Nvert; nface = Nface; pV = new G4Point3D[nvert+1]; pF = new G4Facet[nface+1]; }else{ - nvert = 0; nface = 0; pV = 0; pF = 0; + nvert = 0; nface = 0; pV = nullptr; pF = nullptr; } } @@ -581,13 +580,13 @@ void HepPolyhedron::RotateAroundZ(G4int nstep, G4double phi, G4double dphi, // S E T R O T A T I O N P A R A M E T E R S - G4bool ifWholeCircle = (std::abs(dphi-wholeCircle) < perMillion) ? true : false; + G4bool ifWholeCircle = std::abs(dphi-wholeCircle) < perMillion; G4double delPhi = ifWholeCircle ? wholeCircle : dphi; G4int nSphi = nstep; if (nSphi <= 0) nSphi = GetNumberOfRotationSteps()*delPhi/wholeCircle + 0.5; if (nSphi == 0) nSphi = 1; G4int nVphi = ifWholeCircle ? nSphi : nSphi + 1; - G4bool ifClosed = np1 > 0 ? false : true; // true if external polyline is closed + G4bool ifClosed = np1 <= 0; // true if external polyline is closed // C O U N T V E R T I C E S @@ -852,7 +851,7 @@ HepPolyhedron::RotateContourAroundZ(G4int nstep, { // S E T R O T A T I O N P A R A M E T E R S - G4bool ifWholeCircle = (std::abs(dphi - twopi) < perMillion) ? true : false; + G4bool ifWholeCircle = std::abs(dphi - twopi) < perMillion; G4double delPhi = (ifWholeCircle) ? twopi : dphi; G4int nSphi = nstep; if (nSphi <= 0) nSphi = GetNumberOfRotationSteps()*delPhi/twopi + 0.5; @@ -861,7 +860,7 @@ HepPolyhedron::RotateContourAroundZ(G4int nstep, // C A L C U L A T E A R E A - G4int Nrz = rz.size(); + G4int Nrz = (G4int)rz.size(); G4double area = 0; for (G4int i = 0; i < Nrz; ++i) { @@ -871,8 +870,8 @@ HepPolyhedron::RotateContourAroundZ(G4int nstep, // P R E P A R E P O L Y L I N E - G4double *r = new G4double[Nrz]; - G4double *z = new G4double[Nrz]; + auto r = new G4double[Nrz]; + auto z = new G4double[Nrz]; for (G4int i = 0; i < Nrz; ++i) { r[i] = rz[i].x(); @@ -889,7 +888,7 @@ HepPolyhedron::RotateContourAroundZ(G4int nstep, for (G4int i = 0; i < Nrz; ++i) { G4int k = (i == 0) ? Nrz - 1 : i - 1; - Nedges -= (r[k] == 0 && r[i] == 0); + Nedges -= static_cast(r[k] == 0 && r[i] == 0); } G4int Nfaces = Nedges*nSphi; // lateral faces @@ -907,7 +906,7 @@ HepPolyhedron::RotateContourAroundZ(G4int nstep, // S E T V E R T I C E S - G4int *kk = new G4int[Nrz]; // start indices along contour + auto kk = new G4int[Nrz]; // start indices along contour G4int kfree = 1; // current free position in array of vertices pV // set start indices, set vertices for nodes with r == 0 @@ -950,7 +949,7 @@ HepPolyhedron::RotateContourAroundZ(G4int nstep, TriangulatePolygon(rz, triangles); G4int ii[4], vv[4]; - G4int ntria = triangles.size()/3; + G4int ntria = G4int(triangles.size()/3); for (G4int i = 0; i < ntria; ++i) { G4int i1 = triangles[0 + i*3]; @@ -1002,7 +1001,7 @@ HepPolyhedron::TriangulatePolygon(const std::vector &polygon, ***********************************************************************/ { result.resize(0); - G4int n = polygon.size(); + G4int n = (G4int)polygon.size(); if (n < 3) return false; // calculate area @@ -1017,7 +1016,7 @@ HepPolyhedron::TriangulatePolygon(const std::vector &polygon, // allocate and initialize list of Vertices // we want a counter-clockwise polygon in V // - G4int* V = new G4int[n]; + auto V = new G4int[n]; if (area > 0.) for (G4int i = 0; i < n; ++i) V[i] = i; else @@ -1140,13 +1139,13 @@ void HepPolyhedron::SetReferences() G4int i; for (i=0; inext; cur = headList[k1]; - cur->next = 0; + cur->next = nullptr; cur->v2 = k2; cur->iface = iface; cur->iedge = iedge; @@ -1206,9 +1205,9 @@ void HepPolyhedron::SetReferences() for (;;) { prev = cur; cur = prev->next; - if (cur == 0) { + if (cur == nullptr) { prev->next = freeList; - if (!freeList) { + if (freeList == nullptr) { std::cerr << "Polyhedron::SetReferences: bad link " << std::endl; @@ -1216,7 +1215,7 @@ void HepPolyhedron::SetReferences() } freeList = freeList->next; cur = prev->next; - cur->next = 0; + cur->next = nullptr; cur->v2 = k2; cur->iface = iface; cur->iedge = iedge; @@ -1249,7 +1248,7 @@ void HepPolyhedron::SetReferences() // C H E C K T H A T A L L L I S T S A R E E M P T Y for (i=0; i nface) iFace = 1; return false; // Last Edge - }else{ - ++iQVertex; - return true; // not Last Edge } + + ++iQVertex; + return true; // not Last Edge } G4Point3D HepPolyhedron::GetVertex(G4int index) const @@ -1493,10 +1492,9 @@ G4bool HepPolyhedron::GetNextVertex(G4Point3D &vertex, G4int &edgeFlag, iNode = 0; if (++iFace > nface) iFace = 1; return false; // last node - }else{ - ++iNode; - return true; // not last node } + ++iNode; + return true; // not last node } G4bool HepPolyhedron::GetNextEdgeIndices(G4int &i1, G4int &i2, G4int &edgeFlag, @@ -1546,9 +1544,9 @@ G4bool HepPolyhedron::GetNextEdgeIndices(G4int &i1, G4int &i2, G4int &edgeFlag, if (iFace > nface) { iFace = 1; iOrder = 1; return false; - }else{ - return true; } + + return true; } G4bool @@ -1630,13 +1628,13 @@ void HepPolyhedron::GetFacet(G4int iFace, G4int &n, G4int *iNodes, for (i=0; i<4; i++) { k = pF[iFace].edge[i].v; if (k == 0) break; - if (iFaces != 0) iFaces[i] = pF[iFace].edge[i].f; + if (iFaces != nullptr) iFaces[i] = pF[iFace].edge[i].f; if (k > 0) { iNodes[i] = k; - if (edgeFlags != 0) edgeFlags[i] = 1; + if (edgeFlags != nullptr) edgeFlags[i] = 1; }else{ iNodes[i] = -k; - if (edgeFlags != 0) edgeFlags[i] = -1; + if (edgeFlags != nullptr) edgeFlags[i] = -1; } } n = i; @@ -1659,7 +1657,7 @@ void HepPolyhedron::GetFacet(G4int index, G4int &n, G4Point3D *nodes, if (n != 0) { for (G4int i=0; i nface) { iFace = 1; return false; - }else{ - return true; } + + return true; } G4Normal3D HepPolyhedron::GetNormal(G4int iFace) const @@ -1761,9 +1759,8 @@ G4bool HepPolyhedron::GetNextNormal(G4Normal3D &normal) const if (++iFace > nface) { iFace = 1; return false; - }else{ - return true; } + return true; } G4bool HepPolyhedron::GetNextUnitNormal(G4Normal3D &normal) const @@ -1964,18 +1961,18 @@ HepPolyhedronTrd2::HepPolyhedronTrd2(G4double Dx1, G4double Dx2, CreatePrism(); } -HepPolyhedronTrd2::~HepPolyhedronTrd2() {} +HepPolyhedronTrd2::~HepPolyhedronTrd2() = default; HepPolyhedronTrd1::HepPolyhedronTrd1(G4double Dx1, G4double Dx2, G4double Dy, G4double Dz) : HepPolyhedronTrd2(Dx1, Dx2, Dy, Dy, Dz) {} -HepPolyhedronTrd1::~HepPolyhedronTrd1() {} +HepPolyhedronTrd1::~HepPolyhedronTrd1() = default; HepPolyhedronBox::HepPolyhedronBox(G4double Dx, G4double Dy, G4double Dz) : HepPolyhedronTrd2(Dx, Dx, Dy, Dy, Dz) {} -HepPolyhedronBox::~HepPolyhedronBox() {} +HepPolyhedronBox::~HepPolyhedronBox() = default; HepPolyhedronTrap::HepPolyhedronTrap(G4double Dz, G4double Theta, @@ -2030,14 +2027,14 @@ HepPolyhedronTrap::HepPolyhedronTrap(G4double Dz, CreatePrism(); } -HepPolyhedronTrap::~HepPolyhedronTrap() {} +HepPolyhedronTrap::~HepPolyhedronTrap() = default; HepPolyhedronPara::HepPolyhedronPara(G4double Dx, G4double Dy, G4double Dz, G4double Alpha, G4double Theta, G4double Phi) : HepPolyhedronTrap(Dz, Theta, Phi, Dy, Dx, Dx, Alpha, Dy, Dx, Dx, Alpha) {} -HepPolyhedronPara::~HepPolyhedronPara() {} +HepPolyhedronPara::~HepPolyhedronPara() = default; HepPolyhedronParaboloid::HepPolyhedronParaboloid(G4double r1, G4double r2, @@ -2107,7 +2104,7 @@ HepPolyhedronParaboloid::HepPolyhedronParaboloid(G4double r1, G4double k1 = (r2*r2 - r1*r1) / 2 / dz; G4double k2 = (r2*r2 + r1*r1) / 2; - G4double *zz = new G4double[n + 2], *rr = new G4double[n + 2]; + auto zz = new G4double[n + 2], rr = new G4double[n + 2]; zz[0] = dz; rr[0] = r2; @@ -2141,7 +2138,7 @@ HepPolyhedronParaboloid::HepPolyhedronParaboloid(G4double r1, delete [] rr; } -HepPolyhedronParaboloid::~HepPolyhedronParaboloid() {} +HepPolyhedronParaboloid::~HepPolyhedronParaboloid() = default; HepPolyhedronHype::HepPolyhedronHype(G4double r1, G4double r2, @@ -2192,8 +2189,8 @@ HepPolyhedronHype::HepPolyhedronHype(G4double r1, G4int ns = std::max(3, GetNumberOfRotationSteps()/4); G4int nz1 = (sqrtan1 == 0.) ? 2 : ns + 1; G4int nz2 = (sqrtan2 == 0.) ? 2 : ns + 1; - G4double* zz = new G4double[nz1 + nz2]; - G4double* rr = new G4double[nz1 + nz2]; + auto zz = new G4double[nz1 + nz2]; + auto rr = new G4double[nz1 + nz2]; // external polyline G4double dz2 = 2.*halfZ/(nz2 - 1); @@ -2221,7 +2218,7 @@ HepPolyhedronHype::HepPolyhedronHype(G4double r1, delete [] rr; } -HepPolyhedronHype::~HepPolyhedronHype() {} +HepPolyhedronHype::~HepPolyhedronHype() = default; HepPolyhedronCons::HepPolyhedronCons(G4double Rmn1, G4double Rmx1, @@ -2299,27 +2296,27 @@ HepPolyhedronCons::HepPolyhedronCons(G4double Rmn1, SetReferences(); } -HepPolyhedronCons::~HepPolyhedronCons() {} +HepPolyhedronCons::~HepPolyhedronCons() = default; HepPolyhedronCone::HepPolyhedronCone(G4double Rmn1, G4double Rmx1, G4double Rmn2, G4double Rmx2, G4double Dz) : HepPolyhedronCons(Rmn1, Rmx1, Rmn2, Rmx2, Dz, 0*deg, 360*deg) {} -HepPolyhedronCone::~HepPolyhedronCone() {} +HepPolyhedronCone::~HepPolyhedronCone() = default; HepPolyhedronTubs::HepPolyhedronTubs(G4double Rmin, G4double Rmax, G4double Dz, G4double Phi1, G4double Dphi) : HepPolyhedronCons(Rmin, Rmax, Rmin, Rmax, Dz, Phi1, Dphi) {} -HepPolyhedronTubs::~HepPolyhedronTubs() {} +HepPolyhedronTubs::~HepPolyhedronTubs() = default; HepPolyhedronTube::HepPolyhedronTube (G4double Rmin, G4double Rmax, G4double Dz) : HepPolyhedronCons(Rmin, Rmax, Rmin, Rmax, Dz, 0*deg, 360*deg) {} -HepPolyhedronTube::~HepPolyhedronTube () {} +HepPolyhedronTube::~HepPolyhedronTube () = default; HepPolyhedronPgon::HepPolyhedronPgon(G4double phi, G4double dphi, @@ -2446,7 +2443,7 @@ HepPolyhedronPgon::HepPolyhedronPgon(G4double phi, return; } - G4int nrz = rz.size(); + G4int nrz = (G4int)rz.size(); if (nrz < 3) { std::cerr << "HepPolyhedronPgon/Pcon: invalid number of nodes in rz-contour = " << nrz @@ -2462,7 +2459,7 @@ HepPolyhedronPgon::HepPolyhedronPgon(G4double phi, SetReferences(); } -HepPolyhedronPgon::~HepPolyhedronPgon() {} +HepPolyhedronPgon::~HepPolyhedronPgon() = default; HepPolyhedronPcon::HepPolyhedronPcon(G4double phi, G4double dphi, G4int nz, const G4double *z, @@ -2474,7 +2471,7 @@ HepPolyhedronPcon::HepPolyhedronPcon(G4double phi, G4double dphi, const std::vector &rz) : HepPolyhedronPgon(phi, dphi, 0, rz) {} -HepPolyhedronPcon::~HepPolyhedronPcon() {} +HepPolyhedronPcon::~HepPolyhedronPcon() = default; HepPolyhedronSphere::HepPolyhedronSphere(G4double rmin, G4double rmax, G4double phi, G4double dphi, @@ -2571,7 +2568,7 @@ HepPolyhedronSphere::HepPolyhedronSphere(G4double rmin, G4double rmax, delete [] rr; } -HepPolyhedronSphere::~HepPolyhedronSphere() {} +HepPolyhedronSphere::~HepPolyhedronSphere() = default; HepPolyhedronTorus::HepPolyhedronTorus(G4double rmin, G4double rmax, @@ -2646,7 +2643,7 @@ HepPolyhedronTorus::HepPolyhedronTorus(G4double rmin, delete [] rr; } -HepPolyhedronTorus::~HepPolyhedronTorus() {} +HepPolyhedronTorus::~HepPolyhedronTorus() = default; HepPolyhedronTet::HepPolyhedronTet(const G4double p0[3], const G4double p1[3], @@ -2686,7 +2683,7 @@ HepPolyhedronTet::HepPolyhedronTet(const G4double p0[3], pF[4] = G4Facet(2,1, 3,2, 4,3); } -HepPolyhedronTet::~HepPolyhedronTet() {} +HepPolyhedronTet::~HepPolyhedronTet() = default; HepPolyhedronEllipsoid::HepPolyhedronEllipsoid(G4double ax, G4double by, G4double cz, G4double zCut1, @@ -2734,7 +2731,7 @@ HepPolyhedronEllipsoid::HepPolyhedronEllipsoid(G4double ax, G4double by, G4double *zz, *rr; zz = new G4double[np1 + np2]; rr = new G4double[np1 + np2]; - if (!zz || !rr) + if ((zz == nullptr) || (rr == nullptr)) { G4Exception("HepPolyhedronEllipsoid::HepPolyhedronEllipsoid", "greps1002", FatalException, "Out of memory"); @@ -2773,7 +2770,7 @@ HepPolyhedronEllipsoid::HepPolyhedronEllipsoid(G4double ax, G4double by, } } -HepPolyhedronEllipsoid::~HepPolyhedronEllipsoid() {} +HepPolyhedronEllipsoid::~HepPolyhedronEllipsoid() = default; HepPolyhedronEllipticalCone::HepPolyhedronEllipticalCone(G4double ax, G4double ay, @@ -2837,7 +2834,7 @@ HepPolyhedronEllipticalCone::HepPolyhedronEllipticalCone(G4double ax, } } -HepPolyhedronEllipticalCone::~HepPolyhedronEllipticalCone() {} +HepPolyhedronEllipticalCone::~HepPolyhedronEllipticalCone() = default; HepPolyhedronHyperbolicMirror::HepPolyhedronHyperbolicMirror(G4double a, G4double h, @@ -2867,8 +2864,8 @@ HepPolyhedronHyperbolicMirror::HepPolyhedronHyperbolicMirror(G4double a, G4double maxAng = (A == 0.) ? 0. : std::acosh(1. + H/A); G4double delAng = maxAng/(np1 - 1); - G4double *zz = new G4double[np1 + np2]; - G4double *rr = new G4double[np1 + np2]; + auto zz = new G4double[np1 + np2]; + auto rr = new G4double[np1 + np2]; // 1st polyline zz[0] = H; @@ -2899,7 +2896,7 @@ HepPolyhedronHyperbolicMirror::HepPolyhedronHyperbolicMirror(G4double a, delete [] rr; } -HepPolyhedronHyperbolicMirror::~HepPolyhedronHyperbolicMirror() {} +HepPolyhedronHyperbolicMirror::~HepPolyhedronHyperbolicMirror() = default; HepPolyhedronTetMesh:: HepPolyhedronTetMesh(const std::vector& tetrahedra) @@ -2916,7 +2913,7 @@ HepPolyhedronTetMesh(const std::vector& tetrahedra) ***********************************************************************/ { // Check size of input vector - G4int nnodes = tetrahedra.size(); + G4int nnodes = (G4int)tetrahedra.size(); if (nnodes == 0) { std::cerr @@ -3081,7 +3078,7 @@ HepPolyhedronTetMesh(const std::vector& tetrahedra) SetReferences(); } -HepPolyhedronTetMesh::~HepPolyhedronTetMesh() {} +HepPolyhedronTetMesh::~HepPolyhedronTetMesh() = default; HepPolyhedronBoxMesh:: HepPolyhedronBoxMesh(G4double sizeX, G4double sizeY, G4double sizeZ, @@ -3098,7 +3095,7 @@ HepPolyhedronBoxMesh(G4double sizeX, G4double sizeY, G4double sizeZ, * * ***********************************************************************/ { - G4int nbox = positions.size(); + G4int nbox = (G4int)positions.size(); if (nbox == 0) { std::cerr << "HepPolyhedronBoxMesh: Empty box mesh" << std::endl; @@ -3327,7 +3324,7 @@ HepPolyhedronBoxMesh(G4double sizeX, G4double sizeY, G4double sizeZ, SetReferences(); } -HepPolyhedronBoxMesh::~HepPolyhedronBoxMesh() {} +HepPolyhedronBoxMesh::~HepPolyhedronBoxMesh() = default; G4ThreadLocal G4int HepPolyhedron::fNumberOfRotationSteps = DEFAULT_NUMBER_OF_STEPS; diff --git a/source/graphics_reps/src/HepPolyhedronProcessor.src b/source/graphics_reps/src/HepPolyhedronProcessor.src index d3d67ec78b..4a447fef9f 100644 --- a/source/graphics_reps/src/HepPolyhedronProcessor.src +++ b/source/graphics_reps/src/HepPolyhedronProcessor.src @@ -31,20 +31,27 @@ #include "globals.hh" -HepPolyhedronProcessor::HepPolyhedronProcessor(){} -HepPolyhedronProcessor::~HepPolyhedronProcessor(){} +#include + +HepPolyhedronProcessor::HepPolyhedronProcessor()= default; +HepPolyhedronProcessor::~HepPolyhedronProcessor()= default; //private for the moment. HepPolyhedronProcessor::HepPolyhedronProcessor(const HepPolyhedronProcessor&){} HepPolyhedronProcessor& HepPolyhedronProcessor::operator=(const HepPolyhedronProcessor&){return *this;} //public void HepPolyhedronProcessor::push_back(Operation a_op,const HepPolyhedron& a_polyhedron) { - m_ops.push_back(op_t(a_op,a_polyhedron)); + m_ops.emplace_back(a_op,a_polyhedron); } -void HepPolyhedronProcessor::clear() { m_ops.clear();} -bool HepPolyhedronProcessor::is_same_op() const { - if(!m_ops.size()) return true; +void HepPolyhedronProcessor::clear() +{ + m_ops.clear(); +} + +bool HepPolyhedronProcessor::is_same_op() const +{ + if(m_ops.empty()) return true; Operation op = m_ops[0].first; std::vector::const_iterator it; for(it=m_ops.begin();it!=m_ops.end();++it) { @@ -53,97 +60,115 @@ bool HepPolyhedronProcessor::is_same_op() const { return true; } -#include - static bool is_in(unsigned int a_index, - const std::list& a_is) { - std::list::const_iterator it; - for(it=a_is.begin();it!=a_is.end();++it) { + const std::list& a_is) +{ + for(auto it=a_is.cbegin(); it!=a_is.cend(); ++it) { if(*it==a_index) return true; } return false; } -static void dump(const std::vector& a_is) { - unsigned int number = a_is.size(); - for(unsigned int index=0;index& a_is) +{ + std::size_t number = a_is.size(); + for(std::size_t index=0; index is_t; - virtual bool visit(const is_t&) = 0; -public: - bijection_visitor(unsigned int a_number):m_number(a_number){} - bool visitx() { - m_is.resize(m_number,0); - std::list is; - return visit(0,is); - } -private: - bool visit(unsigned int a_level,std::list& a_is) { - for(unsigned int index=0;index; + virtual bool visit(const is_t&) = 0; + + bijection_visitor(unsigned int a_number):m_number(a_number){} + bool visitx() + { + m_is.resize(m_number,0); + std::list is; + return visit(0,is); + } + + private: + + bool visit(unsigned int a_level,std::list& a_is) + { + for(unsigned int index=0; index& a_is -) { +bool HepPolyhedronProcessor::execute1(HepPolyhedron& a_poly, + const std::vector& a_is) +{ HepPolyhedron result(a_poly); - unsigned int number = m_ops.size(); + std::size_t number = m_ops.size(); int num_shift = BooleanProcessor::get_num_shift(); - for(int ishift=0;ishift guidance; G4String par_name = command->GetParameter(0)->GetParameterName(); G4bool par_omitable = command->GetParameter(0)->IsOmittable(); - for(std::size_t i = 0; i < command->GetGuidanceEntries(); ++i) + for(G4int i = 0; i < (G4int)command->GetGuidanceEntries(); ++i) { guidance.push_back(command->GetGuidanceLine(i)); } diff --git a/source/intercoms/src/G4UIaliasList.cc b/source/intercoms/src/G4UIaliasList.cc index f214b05f17..cc5dc92a94 100644 --- a/source/intercoms/src/G4UIaliasList.cc +++ b/source/intercoms/src/G4UIaliasList.cc @@ -34,8 +34,8 @@ // -------------------------------------------------------------------- G4UIaliasList::~G4UIaliasList() { - G4int n_treeEntry = alias.size(); - for(G4int i = 0; i < n_treeEntry; ++i) + std::size_t n_treeEntry = alias.size(); + for(std::size_t i = 0; i < n_treeEntry; ++i) { delete alias[i]; delete value[i]; @@ -109,12 +109,12 @@ G4String* G4UIaliasList::FindAlias(const char* aliasName) // -------------------------------------------------------------------- G4int G4UIaliasList::FindAliasID(const char* aliasName) { - G4int i_entry = alias.size(); - for(G4int i = 0; i < i_entry; ++i) + std::size_t i_entry = alias.size(); + for(std::size_t i = 0; i < i_entry; ++i) { if(*(alias[i]) == aliasName) { - return i; + return (G4int)i; } } return -1; @@ -123,10 +123,10 @@ G4int G4UIaliasList::FindAliasID(const char* aliasName) // -------------------------------------------------------------------- void G4UIaliasList::List() { - G4int i_entry = alias.size(); - for(G4int i1 = 0; i1 < i_entry - 1; ++i1) + std::size_t i_entry = alias.size(); + for(std::size_t i1 = 0; i1 < i_entry - 1; ++i1) { - for(G4int i2 = i1 + 1; i2 < i_entry; ++i2) + for(std::size_t i2 = i1 + 1; i2 < i_entry; ++i2) { if(*(alias[i1]) > *(alias[i2])) { @@ -140,7 +140,7 @@ void G4UIaliasList::List() } } - for(G4int i = 0; i < i_entry; ++i) + for(std::size_t i = 0; i < i_entry; ++i) { G4cout << " " << *(alias[i]) << " : " << *(value[i]) << G4endl; } diff --git a/source/intercoms/src/G4UIbatch.cc b/source/intercoms/src/G4UIbatch.cc index b0c9a4b23c..3890678501 100644 --- a/source/intercoms/src/G4UIbatch.cc +++ b/source/intercoms/src/G4UIbatch.cc @@ -43,7 +43,7 @@ static void Tokenize(const G4String& str, std::vector& tokens) while(pos != G4String::npos || pos0 != G4String::npos) { - if(str[pos0] == '\"') + if(str[(G4int)pos0] == '\"') { pos = str.find_first_of("\"", pos0 + 1); if(pos != G4String::npos) @@ -51,7 +51,7 @@ static void Tokenize(const G4String& str, std::vector& tokens) pos++; } } - if(str[pos0] == '\'') + if(str[(G4int)pos0] == '\'') { pos = str.find_first_of("\'", pos0 + 1); if(pos != G4String::npos) diff --git a/source/intercoms/src/G4UIcommand.cc b/source/intercoms/src/G4UIcommand.cc index 1ef44f128c..84993930c9 100644 --- a/source/intercoms/src/G4UIcommand.cc +++ b/source/intercoms/src/G4UIcommand.cc @@ -67,7 +67,7 @@ void G4UIcommand::G4UIcommandCommonConstructorCode(const char* theCommandPath) { commandPath = theCommandPath; commandName = theCommandPath; - G4int commandNameIndex = commandName.rfind('/'); + G4int commandNameIndex = (G4int)commandName.rfind('/'); commandName.erase(0, commandNameIndex + 1); #ifdef G4MULTITHREADED if((messenger != nullptr) && messenger->CommandsShouldBeInMaster() && @@ -121,8 +121,8 @@ G4UIcommand::~G4UIcommand() fUImanager->RemoveCommand(this); } - G4int n_parameterEntry = parameter.size(); - for(G4int i_thParameter = 0; i_thParameter < n_parameterEntry; + std::size_t n_parameterEntry = parameter.size(); + for(std::size_t i_thParameter = 0; i_thParameter < n_parameterEntry; ++i_thParameter) { delete parameter[i_thParameter]; @@ -146,13 +146,13 @@ G4bool G4UIcommand::operator!=(const G4UIcommand& right) const G4int G4UIcommand::DoIt(G4String parameterList) { G4String correctParameters; - G4int n_parameterEntry = parameter.size(); + std::size_t n_parameterEntry = parameter.size(); if(n_parameterEntry != 0) { G4String aToken; G4String correctToken; G4Tokenizer parameterToken(parameterList); - for(G4int i_thParameter = 0; i_thParameter < n_parameterEntry; + for(std::size_t i_thParameter = 0; i_thParameter < n_parameterEntry; ++i_thParameter) { if(i_thParameter > 0) @@ -168,7 +168,7 @@ G4int G4UIcommand::DoIt(G4String parameterList) G4String additionalToken = parameterToken(); if(additionalToken.empty()) { - return fParameterUnreadable + i_thParameter; + return G4int(fParameterUnreadable + i_thParameter); } aToken += " "; aToken += additionalToken; @@ -180,8 +180,8 @@ G4int G4UIcommand::DoIt(G4String parameterList) G4String anotherToken; while(!((anotherToken = parameterToken()).empty())) { - G4int idxs = anotherToken.find("#"); - if(idxs == G4int(std::string::npos)) + std::size_t idxs = anotherToken.find("#"); + if(idxs == std::string::npos) { aToken += " "; aToken += anotherToken; @@ -207,7 +207,7 @@ G4int G4UIcommand::DoIt(G4String parameterList) { G4Tokenizer cvSt(messenger->GetCurrentValue(this)); G4String parVal; - for(G4int ii = 0; ii < i_thParameter; ++ii) + for(std::size_t ii = 0; ii < i_thParameter; ++ii) { parVal = cvSt(); if(parVal[0] == '"') @@ -217,7 +217,7 @@ G4int G4UIcommand::DoIt(G4String parameterList) G4String additionalToken = cvSt(); if(additionalToken.empty()) { - return fParameterUnreadable + i_thParameter; + return G4int(fParameterUnreadable + i_thParameter); } parVal += " "; parVal += additionalToken; @@ -232,7 +232,7 @@ G4int G4UIcommand::DoIt(G4String parameterList) G4String additionalToken = cvSt(); if(additionalToken.empty()) { - return fParameterUnreadable + i_thParameter; + return G4int(fParameterUnreadable + i_thParameter); } aCVToken += " "; aCVToken += additionalToken; @@ -248,7 +248,7 @@ G4int G4UIcommand::DoIt(G4String parameterList) } else { - return fParameterUnreadable + i_thParameter; + return G4int(fParameterUnreadable + i_thParameter); } } else @@ -256,7 +256,7 @@ G4int G4UIcommand::DoIt(G4String parameterList) G4int stat = parameter[i_thParameter]->CheckNewValue(aToken); if(stat != 0) { - return stat + i_thParameter; + return stat + G4int(i_thParameter); } correctParameters.append(aToken); } @@ -345,8 +345,8 @@ G4bool G4UIcommand::IsAvailable() G4ApplicationState currentState = G4StateManager::GetStateManager()->GetCurrentState(); - G4int nState = availabelStateList.size(); - for(G4int i = 0; i < nState; ++i) + std::size_t nState = availabelStateList.size(); + for(std::size_t i = 0; i < nState; ++i) { if(availabelStateList[i] == currentState) { @@ -393,13 +393,13 @@ G4String G4UIcommand::UnitsList(const char* unitCategory) } G4UnitsContainer& UCnt = UTbl[i]->GetUnitsList(); retStr = UCnt[0]->GetSymbol(); - G4int je = UCnt.size(); - for(G4int j = 1; j < je; ++j) + std::size_t je = UCnt.size(); + for(std::size_t j = 1; j < je; ++j) { retStr += " "; retStr += UCnt[j]->GetSymbol(); } - for(G4int k = 0; k < je; ++k) + for(std::size_t k = 0; k < je; ++k) { retStr += " "; retStr += UCnt[k]->GetName(); @@ -421,8 +421,8 @@ void G4UIcommand::List() G4cout << " ---- available only in worker thread" << G4endl; } G4cout << "Guidance :" << G4endl; - G4int n_guidanceEntry = commandGuidance.size(); - for(G4int i_thGuidance = 0; i_thGuidance < n_guidanceEntry; ++i_thGuidance) + std::size_t n_guidanceEntry = commandGuidance.size(); + for(std::size_t i_thGuidance = 0; i_thGuidance < n_guidanceEntry; ++i_thGuidance) { G4cout << commandGuidance[i_thGuidance] << G4endl; } @@ -430,10 +430,10 @@ void G4UIcommand::List() { G4cout << " Range of parameters : " << rangeString << G4endl; } - G4int n_parameterEntry = parameter.size(); + std::size_t n_parameterEntry = parameter.size(); if(n_parameterEntry > 0) { - for(G4int i_thParameter = 0; i_thParameter < n_parameterEntry; + for(std::size_t i_thParameter = 0; i_thParameter < n_parameterEntry; ++i_thParameter) { parameter[i_thParameter]->List(); @@ -649,7 +649,7 @@ G4int G4UIcommand::TypeCheck(const char* t) for(auto& i : parameter) { is >> aNewValue; - type = toupper(i->GetParameterType()); + type = (char)std::toupper(i->GetParameterType()); switch(type) { case 'D': @@ -898,7 +898,7 @@ G4int G4UIcommand::RangeCheck(const char* t) std::istringstream is(t); for(unsigned i = 0; i < parameter.size(); ++i) { - type = toupper(parameter[i]->GetParameterType()); + type = (char)std::toupper(parameter[i]->GetParameterType()); switch(type) { case 'D': @@ -1246,7 +1246,7 @@ G4int G4UIcommand::Eval2(const yystype& arg1, G4int op, const yystype& arg2) if(arg1.type == IDENTIFIER) { unsigned i = IndexOf(arg1.S); - newValtype = toupper(parameter[i]->GetParameterType()); + newValtype = (char)std::toupper(parameter[i]->GetParameterType()); switch(newValtype) { case 'I': @@ -1259,7 +1259,7 @@ G4int G4UIcommand::Eval2(const yystype& arg1, G4int op, const yystype& arg2) else if(arg2.type == IDENTIFIER) { unsigned iii = IndexOf(arg2.S); - char newValtype2 = toupper(parameter[iii]->GetParameterType()); + char newValtype2 = (char)std::toupper(parameter[iii]->GetParameterType()); if(newValtype2 == 'I') { return CompareInt(newVal[i].I, op, newVal[iii].I); @@ -1296,7 +1296,7 @@ G4int G4UIcommand::Eval2(const yystype& arg1, G4int op, const yystype& arg2) else if(arg2.type == IDENTIFIER) { unsigned iii = IndexOf(arg2.S); - char newValtype2 = toupper(parameter[iii]->GetParameterType()); + char newValtype2 = (char)std::toupper(parameter[iii]->GetParameterType()); if(newValtype2 == 'I') { return CompareLong(newVal[i].L, op, newVal[iii].I); @@ -1337,7 +1337,7 @@ G4int G4UIcommand::Eval2(const yystype& arg1, G4int op, const yystype& arg2) else if(arg2.type == IDENTIFIER) { unsigned iii = IndexOf(arg2.S); - char newValtype2 = toupper(parameter[iii]->GetParameterType()); + char newValtype2 = (char)std::toupper(parameter[iii]->GetParameterType()); if(newValtype2 == 'I') { return CompareDouble(newVal[i].D, op, newVal[iii].I); @@ -1359,7 +1359,7 @@ G4int G4UIcommand::Eval2(const yystype& arg1, G4int op, const yystype& arg2) if(arg2.type == IDENTIFIER) { unsigned i = IndexOf(arg2.S); - newValtype = toupper(parameter[i]->GetParameterType()); + newValtype = (char)std::toupper(parameter[i]->GetParameterType()); switch(newValtype) { case 'I': @@ -1655,8 +1655,8 @@ G4int G4UIcommand::Follow(G4int expect, G4int ifyes, G4int ifno) G4int G4UIcommand::G4UIpGetc() { // emulation of getc() - G4int length = rangeString.length(); - if(bp < length) + std::size_t length = rangeString.length(); + if(bp < (G4int)length) { return rangeString[bp++]; } diff --git a/source/intercoms/src/G4UIcommandTree.cc b/source/intercoms/src/G4UIcommandTree.cc index 40cf7f5dd2..6cc0960658 100644 --- a/source/intercoms/src/G4UIcommandTree.cc +++ b/source/intercoms/src/G4UIcommandTree.cc @@ -46,9 +46,7 @@ G4UIcommandTree::G4UIcommandTree(const char* thePathName) // -------------------------------------------------------------------- G4UIcommandTree::~G4UIcommandTree() { - G4int i; - G4int n_treeEntry = tree.size(); - for(i = 0; i < n_treeEntry; ++i) + for(std::size_t i = 0; i < tree.size(); ++i) { delete tree[i]; } @@ -91,12 +89,12 @@ void G4UIcommandTree::AddNewCommand(G4UIcommand* newCommand, auto* dir = static_cast(guidance); ifSort = dir->IfSort(); } - G4int i = remainingPath.find('/'); - if(i == G4int(std::string::npos)) + std::size_t i = remainingPath.find('/'); + if(i == std::string::npos) { // Adding a new command to this directory - G4int n_commandEntry = command.size(); - for(G4int i_thCommand = 0; i_thCommand < n_commandEntry; ++i_thCommand) + std::size_t n_commandEntry = command.size(); + for(std::size_t i_thCommand = 0; i_thCommand < n_commandEntry; ++i_thCommand) { if(remainingPath == command[i_thCommand]->GetCommandName()) { @@ -119,8 +117,8 @@ void G4UIcommandTree::AddNewCommand(G4UIcommand* newCommand, { newCommand->SetWorkerThreadOnly(); } if(ifSort) { - auto j = command.begin(); - for(; j != command.end(); ++j) { + auto j = command.cbegin(); + for(; j != command.cend(); ++j) { if (newCommand->GetCommandPath() < (*j)->GetCommandPath()) { break; } } command.insert(j,newCommand); @@ -134,8 +132,8 @@ void G4UIcommandTree::AddNewCommand(G4UIcommand* newCommand, // Adding a new command to a sub-directory G4String nextPath = pathName; nextPath.append(remainingPath.substr(0, i + 1)); - G4int n_treeEntry = tree.size(); - for(G4int i_thTree = 0; i_thTree < n_treeEntry; ++i_thTree) + std::size_t n_treeEntry = tree.size(); + for(std::size_t i_thTree = 0; i_thTree < n_treeEntry; ++i_thTree) { if(nextPath == tree[i_thTree]->GetPathName()) { @@ -151,8 +149,8 @@ void G4UIcommandTree::AddNewCommand(G4UIcommand* newCommand, auto* newTree = new G4UIcommandTree(nextPath); if(ifSort) { - auto j = tree.begin(); - for(; j != tree.end(); ++j) { + auto j = tree.cbegin(); + for(; j != tree.cend(); ++j) { if (newTree->GetPathName() < (*j)->GetPathName()) { break; } } tree.insert(j,newTree); @@ -186,12 +184,12 @@ void G4UIcommandTree::RemoveCommand(G4UIcommand* aCommand, } else { - G4int i = remainingPath.find('/'); - if(i == G4int(std::string::npos)) + std::size_t i = remainingPath.find('/'); + if(i == std::string::npos) { // Find command - G4int n_commandEntry = command.size(); - for(G4int i_thCommand = 0; i_thCommand < n_commandEntry; ++i_thCommand) + std::size_t n_commandEntry = command.size(); + for(std::size_t i_thCommand = 0; i_thCommand < n_commandEntry; ++i_thCommand) { if(remainingPath == command[i_thCommand]->GetCommandName()) { @@ -205,8 +203,8 @@ void G4UIcommandTree::RemoveCommand(G4UIcommand* aCommand, // Find path G4String nextPath = pathName; nextPath.append(remainingPath.substr(0, i + 1)); - G4int n_treeEntry = tree.size(); - for(G4int i_thTree = 0; i_thTree < n_treeEntry; ++i_thTree) + std::size_t n_treeEntry = tree.size(); + for(std::size_t i_thTree = 0; i_thTree < n_treeEntry; ++i_thTree) { if(nextPath == tree[i_thTree]->GetPathName()) { @@ -237,12 +235,12 @@ G4UIcommand* G4UIcommandTree::FindPath(const char* commandPath) const return nullptr; } remainingPath.erase(0, pathName.length()); - G4int i = remainingPath.find('/'); - if(i == G4int(std::string::npos)) + std::size_t i = remainingPath.find('/'); + if(i == std::string::npos) { // Find command - G4int n_commandEntry = command.size(); - for(G4int i_thCommand = 0; i_thCommand < n_commandEntry; ++i_thCommand) + std::size_t n_commandEntry = command.size(); + for(std::size_t i_thCommand = 0; i_thCommand < n_commandEntry; ++i_thCommand) { if(remainingPath == command[i_thCommand]->GetCommandName()) { @@ -255,8 +253,8 @@ G4UIcommand* G4UIcommandTree::FindPath(const char* commandPath) const // Find path G4String nextPath = pathName; nextPath.append(remainingPath.substr(0, i + 1)); - G4int n_treeEntry = tree.size(); - for(G4int i_thTree = 0; i_thTree < n_treeEntry; ++i_thTree) + std::size_t n_treeEntry = tree.size(); + for(std::size_t i_thTree = 0; i_thTree < n_treeEntry; ++i_thTree) { if(nextPath == tree[i_thTree]->GetPathName()) { @@ -280,14 +278,14 @@ G4UIcommandTree* G4UIcommandTree::FindCommandTree(const char* commandPath) return nullptr; } remainingPath.erase(0, pathName.length()); - G4int i = remainingPath.find('/'); - if(i != G4int(std::string::npos)) + std::size_t i = remainingPath.find('/'); + if(i != std::string::npos) { // Find path G4String nextPath = pathName; nextPath.append(remainingPath.substr(0, i + 1)); - G4int n_treeEntry = tree.size(); - for(G4int i_thTree = 0; i_thTree < n_treeEntry; ++i_thTree) + std::size_t n_treeEntry = tree.size(); + for(std::size_t i_thTree = 0; i_thTree < n_treeEntry; ++i_thTree) { if(tree[i_thTree]->GetPathName() == commandPath) { @@ -410,13 +408,13 @@ G4String G4UIcommandTree::CompleteCommandPath(const G4String& aCommandPath) G4String G4UIcommandTree::GetFirstMatchedString(const G4String& str1, const G4String& str2) const { - G4int nlen1 = str1.length(); - G4int nlen2 = str2.length(); + std::size_t nlen1 = str1.length(); + std::size_t nlen2 = str2.length(); - G4int nmin = nlen1 < nlen2 ? nlen1 : nlen2; + std::size_t nmin = nlen1 < nlen2 ? nlen1 : nlen2; G4String strMatched; - for(size_t i = 0; G4int(i) < nmin; ++i) + for(G4int i = 0; i < (G4int)nmin; ++i) { if(str1[i] == str2[i]) { @@ -440,8 +438,8 @@ void G4UIcommandTree::ListCurrent() const guidance->List(); } G4cout << " Sub-directories : " << G4endl; - G4int n_treeEntry = tree.size(); - for(G4int i_thTree = 0; i_thTree < n_treeEntry; ++i_thTree) + std::size_t n_treeEntry = tree.size(); + for(std::size_t i_thTree = 0; i_thTree < n_treeEntry; ++i_thTree) { G4cout << " " << tree[i_thTree]->GetPathName(); if((tree[i_thTree]->GetGuidance() != nullptr) && @@ -456,8 +454,8 @@ void G4UIcommandTree::ListCurrent() const G4cout << tree[i_thTree]->GetTitle() << G4endl; } G4cout << " Commands : " << G4endl; - G4int n_commandEntry = command.size(); - for(G4int i_thCommand = 0; i_thCommand < n_commandEntry; ++i_thCommand) + std::size_t n_commandEntry = command.size(); + for(std::size_t i_thCommand = 0; i_thCommand < n_commandEntry; ++i_thCommand) { G4cout << " " << command[i_thCommand]->GetCommandName(); if(command[i_thCommand]->IsWorkerThreadOnly()) @@ -482,16 +480,16 @@ void G4UIcommandTree::ListCurrentWithNum() const } G4int i = 0; G4cout << " Sub-directories : " << G4endl; - G4int n_treeEntry = tree.size(); - for(G4int i_thTree = 0; i_thTree < n_treeEntry; ++i_thTree) + std::size_t n_treeEntry = tree.size(); + for(std::size_t i_thTree = 0; i_thTree < n_treeEntry; ++i_thTree) { ++i; G4cout << " " << i << ") " << tree[i_thTree]->GetPathName() << " " << tree[i_thTree]->GetTitle() << G4endl; } G4cout << " Commands : " << G4endl; - G4int n_commandEntry = command.size(); - for(G4int i_thCommand = 0; i_thCommand < n_commandEntry; ++i_thCommand) + std::size_t n_commandEntry = command.size(); + for(std::size_t i_thCommand = 0; i_thCommand < n_commandEntry; ++i_thCommand) { ++i; G4cout << " " << i << ") " << command[i_thCommand]->GetCommandName() @@ -503,13 +501,13 @@ void G4UIcommandTree::ListCurrentWithNum() const void G4UIcommandTree::List() const { ListCurrent(); - G4int n_commandEntry = command.size(); - for(G4int i_thCommand = 0; i_thCommand < n_commandEntry; ++i_thCommand) + std::size_t n_commandEntry = command.size(); + for(std::size_t i_thCommand = 0; i_thCommand < n_commandEntry; ++i_thCommand) { command[i_thCommand]->List(); } - G4int n_treeEntry = tree.size(); - for(G4int i_thTree = 0; i_thTree < n_treeEntry; ++i_thTree) + std::size_t n_treeEntry = tree.size(); + for(std::size_t i_thTree = 0; i_thTree < n_treeEntry; ++i_thTree) { tree[i_thTree]->List(); } @@ -519,10 +517,10 @@ void G4UIcommandTree::List() const G4String G4UIcommandTree::CreateFileName(const char* pName) { G4String fn = pName; - G4int idxs; - while((idxs = fn.find("/")) != G4int(std::string::npos)) + std::size_t idxs; + while((idxs = fn.find("/")) != std::string::npos) { - fn[idxs] = '_'; + fn[(G4int)idxs] = '_'; } fn += ".html"; return fn; @@ -643,7 +641,7 @@ void G4UIcommandTree::CreateHTML(const G4String& sideBar) if(guidance != nullptr) { - for(std::size_t i = 0; i < guidance->GetGuidanceEntries(); ++i) + for(G4int i = 0; i < (G4int)guidance->GetGuidanceEntries(); ++i) { oF << ModStr(guidance->GetGuidanceLine(i)) << "
" << G4endl; } @@ -698,7 +696,7 @@ void G4UIcommandTree::CreateHTML(const G4String& sideBar) oF << "

" << ModStr(cmd->GetCommandName()); if(cmd->GetParameterEntries() > 0) { - for(std::size_t i_thParam = 0; i_thParam < cmd->GetParameterEntries(); + for(G4int i_thParam = 0; i_thParam < (G4int)cmd->GetParameterEntries(); ++i_thParam) { oF << " [" @@ -708,7 +706,7 @@ void G4UIcommandTree::CreateHTML(const G4String& sideBar) } oF << "

" << G4endl; oF << "

" << G4endl; - for(std::size_t i = 0; i < cmd->GetGuidanceEntries(); ++i) + for(G4int i = 0; i < (G4int)cmd->GetGuidanceEntries(); ++i) { oF << ModStr(cmd->GetGuidanceLine(i)) << "
" << G4endl; } @@ -733,7 +731,7 @@ void G4UIcommandTree::CreateHTML(const G4String& sideBar) if(cmd->GetParameterEntries() > 0) { oF << "

Parameters" << G4endl; - for(std::size_t i_thParam = 0; i_thParam < cmd->GetParameterEntries(); + for(G4int i_thParam = 0; i_thParam < (G4int)cmd->GetParameterEntries(); ++i_thParam) { G4UIparameter* prm = cmd->GetParameter(i_thParam); diff --git a/source/intercoms/src/G4UIcontrolMessenger.cc b/source/intercoms/src/G4UIcontrolMessenger.cc index 84d5a8dbe5..bfb80c8950 100644 --- a/source/intercoms/src/G4UIcontrolMessenger.cc +++ b/source/intercoms/src/G4UIcontrolMessenger.cc @@ -588,7 +588,7 @@ void G4UIcontrolMessenger::SetNewValue(G4UIcommand* command, G4String newValue) } if(x) { - UI->ExecuteMacroFile(mac); + UI->ExecuteMacroFile(UI->FindMacroPath(mac)); } } if(command == doifCommand) @@ -727,7 +727,7 @@ void G4UIcontrolMessenger::SetNewValue(G4UIcommand* command, G4String newValue) } if(x) { - UI->ExecuteMacroFile(mac); + UI->ExecuteMacroFile(UI->FindMacroPath(mac)); } } if(command == strdoifCommand) diff --git a/source/intercoms/src/G4UImanager.cc b/source/intercoms/src/G4UImanager.cc index 1cfd4f1709..d7173fd55a 100644 --- a/source/intercoms/src/G4UImanager.cc +++ b/source/intercoms/src/G4UImanager.cc @@ -210,7 +210,7 @@ G4String G4UImanager::GetCurrentStringValue(const char* aCommand, { G4String parameterValues = GetCurrentValues(aCommand); } - for(std::size_t i = 0; i < savedCommand->GetParameterEntries(); ++i) + for(G4int i = 0; i < (G4int)savedCommand->GetParameterEntries(); ++i) { if(aParameterName == savedCommand->GetParameter(i)->GetParameterName()) { @@ -430,19 +430,19 @@ void G4UImanager::Foreach(const char* macroFile, const char* variableName, G4String G4UImanager::SolveAlias(const char* aCmd) { G4String aCommand = aCmd; - G4int ia = aCommand.find("{"); - G4int iz = aCommand.find("#"); - while((ia != G4int(std::string::npos)) && - ((iz == G4int(std::string::npos)) || (ia < iz))) + std::size_t ia = aCommand.find("{"); + std::size_t iz = aCommand.find("#"); + while((ia != std::string::npos) && + ((iz == std::string::npos) || (ia < iz))) { G4int ibx = -1; while(ibx < 0) { - G4int ib = aCommand.find("}"); - if(ib == G4int(std::string::npos)) + std::size_t ib = aCommand.find("}"); + if(ib == std::string::npos) { G4cerr << aCommand << G4endl; - for(G4int i = 0; i < ia; ++i) + for(std::size_t i = 0; i < ia; ++i) { G4cerr << " "; } @@ -452,15 +452,15 @@ G4String G4UImanager::SolveAlias(const char* aCmd) return nullStr; } G4String ps = aCommand.substr(ia + 1, aCommand.length() - (ia + 1)); - G4int ic = ps.find("{"); - G4int id = ps.find("}"); - if(ic != G4int(std::string::npos) && ic < id) + std::size_t ic = ps.find("{"); + std::size_t id = ps.find("}"); + if(ic != std::string::npos && ic < id) { ia += ic + 1; } else { - ibx = ib; + ibx = (G4int)ib; } } //--- Here ia represents the position of innermost "{" @@ -522,8 +522,8 @@ G4int G4UImanager::ApplyCommand(const char* aCmd) } // remove doubled slash - G4int len = commandString.length(); - G4int ll = 0; + std::size_t len = commandString.length(); + std::size_t ll = 0; G4String a1; G4String a2; while(ll < len - 1) @@ -704,10 +704,10 @@ G4UIcommandTree* G4UImanager::FindDirectory(const char* dirName) { return comTree; } - G4int idx = 1; - while(idx < G4int(targetDir.length()) - 1) + std::size_t idx = 1; + while(idx < targetDir.length() - 1) { - G4int i = targetDir.find("/", idx); + std::size_t i = targetDir.find("/", idx); G4String targetDirString = targetDir.substr(0, i + 1); comTree = comTree->GetTree(targetDirString); if(comTree == nullptr) @@ -754,7 +754,7 @@ void G4UImanager::SetCoutDestination(G4UIsession* const value) void G4UImanager::SetAlias(const char* aliasLine) { G4String aLine = aliasLine; - G4int i = aLine.find(" "); + std::size_t i = aLine.find(" "); G4String aliasName = aLine.substr(0, i); G4String aliasValue = aLine.substr(i + 1, aLine.length() - (i + 1)); if(aliasValue[0] == '"') diff --git a/source/intercoms/src/G4UIparameter.cc b/source/intercoms/src/G4UIparameter.cc index 70c2c9138c..6a605e7c1f 100644 --- a/source/intercoms/src/G4UIparameter.cc +++ b/source/intercoms/src/G4UIparameter.cc @@ -131,7 +131,7 @@ void G4UIparameter::SetDefaultValue(G4double theDefaultValue) // -------------------------------------------------------------------- void G4UIparameter::SetDefaultUnit(const char* theDefaultUnit) { - char type = toupper(parameterType); + char type = (char)std::toupper(parameterType); if(type != 'S') { G4ExceptionDescription ed; @@ -225,7 +225,7 @@ G4int G4UIparameter::RangeCheck(const char* newValue) yystype result; bp = 0; // reset buffer pointer for G4UIpGetc() std::istringstream is(newValue); - char type = toupper(parameterType); + char type = (char)std::toupper(parameterType); switch(type) { case 'D': @@ -263,7 +263,7 @@ G4int G4UIparameter::RangeCheck(const char* newValue) G4int G4UIparameter::TypeCheck(const char* newValue) { G4String newValueString(newValue); - char type = toupper(parameterType); + char type = (char)std::toupper(parameterType); switch(type) { case 'D': @@ -805,7 +805,7 @@ G4int G4UIparameter::Eval2(const yystype& arg1, G4int op, const yystype& arg2) << " " << G4int(arg2.type) << G4endl; paramERR = 1; } - char type = toupper(parameterType); + char type = (char)std::toupper(parameterType); if(arg1.type == IDENTIFIER) { switch(type) @@ -1118,7 +1118,7 @@ G4int G4UIparameter::Follow(G4int expect, G4int ifyes, G4int ifno) G4int G4UIparameter::G4UIpGetc() { // emulation of getc() - G4int length = parameterRange.length(); + G4int length = (G4int)parameterRange.length(); if(bp < length) { return parameterRange[bp++]; diff --git a/source/interfaces/History b/source/interfaces/History index 3dd80c0f62..ea5cc44d3f 100644 --- a/source/interfaces/History +++ b/source/interfaces/History @@ -6,6 +6,19 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-24 Gabriele Cosmo (interfaces-V11-00-10) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-08 Gabriele Cosmo (interfaces-V11-00-09) +- Avoid use of temporaries introduced in previous tag. + +## 2022-10-07 Gabriele Cosmo (interfaces-V11-00-08) +- Fixed compilation warnings on Intel/icc for deprecated conversion of string + literal to char* in G4UIXm. + +## 2022-09-22 Ben Morgan (interfaces-V11-00-07) +- Apply patch for MinGW from [GitHub PR 51](https://github.com/Geant4/geant4/pull/51) + ## 2022-05-03 Ben Morgan (interfaces-V11-00-06) - Preliminary build support for Qt5 and Qt6 diff --git a/source/interfaces/basic/include/G4UIQt.hh b/source/interfaces/basic/include/G4UIQt.hh index bc0aaddb1a..e1f503c893 100644 --- a/source/interfaces/basic/include/G4UIQt.hh +++ b/source/interfaces/basic/include/G4UIQt.hh @@ -85,15 +85,15 @@ class QToolButton; class G4QTabWidget : public QTabWidget { public : G4QTabWidget(); - G4QTabWidget(QWidget* aParent, int sizeX, int sizeY); + G4QTabWidget(QWidget* aParent, G4int sizeX, G4int sizeY); void paintEvent ( QPaintEvent * event ); - inline void setTabSelected(bool a) { fTabSelected = a; }; - inline void setLastTabCreated(int a) { fLastCreated = a; }; + inline void setTabSelected(G4bool a) { fTabSelected = a; }; + inline void setLastTabCreated(G4int a) { fLastCreated = a; }; inline bool isTabSelected() { return fTabSelected; }; - bool fTabSelected; - int fLastCreated; - int fPreferedSizeX; - int fPreferedSizeY; + G4bool fTabSelected; + G4int fLastCreated; + G4int fPreferedSizeX; + G4int fPreferedSizeY; inline void setPreferredSize(QSize s) { fPreferedSizeX = s.width() + 6; // tab label height + margin left+right fPreferedSizeY = s.height() + 58; // margin left+right @@ -124,7 +124,7 @@ class G4UIQt : public QObject, public G4VBasicShell, public G4VInteractiveSessio Q_OBJECT public: // With description - G4UIQt(int,char**); + G4UIQt(G4int,char**); // (argv, argc) or (0, NULL) had to be given. G4UIsession* SessionStart(); // To enter interactive X loop ; waiting/executing command,... @@ -152,16 +152,16 @@ public: // With description // Second argument is the style (fixed proportional) // Third argument highlights commands if "highlight" (and if /control/verbose > 0) - void NativeMenu(bool aVal); + void NativeMenu(G4bool aVal); // Enable/Disable the native Menu Bar in Qt void ClearMenu(); // Clear Menu Bar, remove all actions - void DefaultIcons(bool aVal); + void DefaultIcons(G4bool aVal); // Enable/Disable the default icon ToolBar in Qt - bool AddTabWidget(QWidget*,QString); + G4bool AddTabWidget(QWidget*,QString); // To add a tab for vis openGL Qt driver inline QTabWidget* GetViewerTabWidget() { @@ -177,21 +177,21 @@ public: // With description QWidget* GetPickInfosWidget(); // Get the Pick Widget - bool IsSplitterReleased(); + G4bool IsSplitterReleased(); - inline bool IsIconMoveSelected() { + inline G4bool IsIconMoveSelected() { return fMoveSelected; }; - inline bool IsIconRotateSelected() { + inline G4bool IsIconRotateSelected() { return fRotateSelected; }; - inline bool IsIconPickSelected() { + inline G4bool IsIconPickSelected() { return fPickSelected; }; - inline bool IsIconZoomInSelected() { + inline G4bool IsIconZoomInSelected() { return fZoomInSelected; }; - inline bool IsIconZoomOutSelected() { + inline G4bool IsIconZoomOutSelected() { return fZoomOutSelected; }; @@ -252,10 +252,10 @@ public: // With description } // return the help widget - bool AddViewerTab(QWidget* w, std::string title); + G4bool AddViewerTab(QWidget* w, std::string title); // Add a new tab in the viewer, could be used to add your own component - bool AddViewerTabFromFile(std::string fileName, std::string title); + G4bool AddViewerTabFromFile(std::string fileName, std::string title); // Add a new tab in the viewer containing the content of the file in a QLabel public: @@ -286,9 +286,9 @@ private: bool eventFilter(QObject*,QEvent*); void ActivateCommand(G4String); #if QT_VERSION < 0x050F00 - QMap LookForHelpStringInChildTree(G4UIcommandTree *,const QString&); + QMap LookForHelpStringInChildTree(G4UIcommandTree *,const QString&); #else - QMultiMap LookForHelpStringInChildTree(G4UIcommandTree *,const QString&); + QMultiMap LookForHelpStringInChildTree(G4UIcommandTree *,const QString&); #endif QWidget* CreateVisParametersTBWidget(); QWidget* CreateHelpTBWidget(); @@ -301,8 +301,8 @@ private: QString GetShortCommandPath(QString); QString GetLongCommandPath(QTreeWidgetItem*); G4bool IsGUICommand(const G4UIcommand*); - bool CreateVisCommandGroupAndToolBox(G4UIcommand*, QWidget*, int, bool isDialog); - bool CreateCommandWidget(G4UIcommand* command, QWidget* parent, bool isDialog); + G4bool CreateVisCommandGroupAndToolBox(G4UIcommand*, QWidget*, G4int, G4bool isDialog); + G4bool CreateCommandWidget(G4UIcommand* command, QWidget* parent, G4bool isDialog); void CreateViewerPropertiesDialog(); void CreatePickInfosDialog(); #ifdef G4MULTITHREADED @@ -311,7 +311,7 @@ private: void FilterAllOutputTextArea(); QString FilterOutput(const G4UIOutputString&,const QString&,const QString&); G4String GetThreadPrefix(); - bool CheckG4EnvironmentVariable(char* txt, char* version); + G4bool CheckG4EnvironmentVariable(char* txt, char* version); QStandardItemModel* CreateCompleterModel(G4String aCmd); void CreateEmptyViewerPropertiesWidget(); void CreateEmptyPickInfosWidget(); @@ -325,7 +325,7 @@ private: std::vector fG4OutputString; QLineEdit * fCoutFilter; QCompleter* fCompleter; - bool fDefaultIcons; + G4bool fDefaultIcons; QListWidget *fHistoryTBTableList; QTreeWidget *fHelpTreeWidget; @@ -382,11 +382,11 @@ private: QDialog* fViewerPropertiesDialog; QDialog* fPickInfosDialog; QString fLastCompleteCommand; - bool fMoveSelected; - bool fRotateSelected; - bool fPickSelected; - bool fZoomInSelected; - bool fZoomOutSelected; + G4bool fMoveSelected; + G4bool fRotateSelected; + G4bool fPickSelected; + G4bool fZoomInSelected; + G4bool fZoomOutSelected; struct G4UIQtStyle { G4bool fixed, highlight; }; @@ -404,19 +404,19 @@ private Q_SLOTS : void ShowHelpCallback(); void CommandHistoryCallback(); void LookForHelpStringCallback(); - void UpdateTabWidget(int); + void UpdateTabWidget(G4int); void ResizeTabWidget( QResizeEvent* ); void CoutFilterCallback(const QString&); - void ThreadComboBoxCallback(int); - void TabCloseCallback(int); - void ToolBoxActivated(int); + void ThreadComboBoxCallback(G4int); + void TabCloseCallback(G4int); + void ToolBoxActivated(G4int); void VisParameterCallback(QWidget*); void ChangeColorCallback(QWidget*); void ChangeCursorAction(const QString&); void ChangeSurfaceStyle(const QString&); void OpenIconCallback(const QString&); void SaveIconCallback(const QString&); - void ViewerPropertiesIconCallback(int); + void ViewerPropertiesIconCallback(G4int); void ChangePerspectiveOrtho(const QString&); }; diff --git a/source/interfaces/basic/include/G4UIXm.hh b/source/interfaces/basic/include/G4UIXm.hh index 57661580a5..43b3478ae4 100644 --- a/source/interfaces/basic/include/G4UIXm.hh +++ b/source/interfaces/basic/include/G4UIXm.hh @@ -59,7 +59,7 @@ class G4UIsession; class G4UIXm : public G4VBasicShell, public G4VInteractiveSession { public: // With description - G4UIXm(int,char**); + G4UIXm(G4int,char**); // (argv, argc) or (0, NULL) had to be given. G4UIsession* SessionStart(); // To enter interactive X loop ; waiting/executing command,... @@ -86,15 +86,16 @@ private: void SecondaryLoop(G4String); G4bool GetHelpChoice(G4int&); void ExitHelp() const; -private: - Widget form,shell,command,menuBar,text; - std::map > commands; static void CommandEnteredCallback(Widget,XtPointer,XtPointer); static void keyHandler(Widget,XtPointer,XEvent*,Boolean*); + static void ButtonCallback(Widget,XtPointer,XtPointer); + + Widget form,shell,command,menuBar,text; + std::map > commands; G4bool fHelp; G4int fHelpChoice; - static void ButtonCallback(Widget,XtPointer,XtPointer); + G4String menu_str[6] = { "form", "menuBar", "command", + "Clear", "clearButton", "text" }; }; #endif - diff --git a/source/interfaces/basic/include/G4UItcsh.hh b/source/interfaces/basic/include/G4UItcsh.hh index 7c36c03b5a..2d118bf1c8 100644 --- a/source/interfaces/basic/include/G4UItcsh.hh +++ b/source/interfaces/basic/include/G4UItcsh.hh @@ -29,7 +29,7 @@ #ifndef G4UItcsh_h #define G4UItcsh_h 1 -#ifndef WIN32 +#if !(defined(WIN32) || defined(__MINGW32__)) #include #include diff --git a/source/interfaces/basic/src/G4UIArrayString.cc b/source/interfaces/basic/src/G4UIArrayString.cc index 509444c2f9..e1c7e31529 100644 --- a/source/interfaces/basic/src/G4UIArrayString.cc +++ b/source/interfaces/basic/src/G4UIArrayString.cc @@ -41,14 +41,14 @@ G4UIArrayString::G4UIArrayString(const G4String& stream) G4String astream = G4StrUtil::strip_copy(stream); // tokenize... - G4int indx=0; + std::size_t indx=0; while(1) { - G4int jc= astream.find(" ", indx); + std::size_t jc= astream.find(" ", indx); nElement++; - if(jc == G4int(G4String::npos)) break; + if(jc == G4String::npos) break; jc++; // fix a tiny mistake... - for(; jc< G4int(astream.length()); ) { // skip continuing spaces - if(astream[(size_t)(jc)]==' ') jc++; + for(; jc< astream.length(); ) { // skip continuing spaces + if(astream[(G4int)jc]==' ') jc++; else break; } indx= jc; @@ -59,16 +59,16 @@ G4UIArrayString::G4UIArrayString(const G4String& stream) // push... indx=0; - for(G4int i=0; i length(); + std::size_t ilen= GetElement(icol,iy)->length(); // care for color code // if(GetElement(icol,iy)-> index(strESC,0) != G4String::npos) { // if(strESC == (*GetElement(icol,iy))[0] ) { - const char tgt = (*GetElement(icol,iy))[(size_t)0]; + const char tgt = (*GetElement(icol,iy))[(std::size_t)0]; if(strESC == tgt) { ilen-= 5; - if(ilen<0) G4cout << "length(c) cal. error." << G4endl; } if(ilen> maxWidth) maxWidth= ilen; } - return maxWidth; + return (G4int)maxWidth; } ///////////////////////////////////////////////// @@ -172,7 +171,7 @@ void G4UIArrayString::Show(G4int ncol) // care for color code G4String colorWord; - const char tgt = word[(size_t)0]; + const char tgt = word[(std::size_t)0]; if(strESC == tgt) { colorWord= word.substr(0,5); word.erase(0,5); diff --git a/source/interfaces/basic/src/G4UIExecutive.cc b/source/interfaces/basic/src/G4UIExecutive.cc index 549ab74069..a057c25dfe 100644 --- a/source/interfaces/basic/src/G4UIExecutive.cc +++ b/source/interfaces/basic/src/G4UIExecutive.cc @@ -134,7 +134,7 @@ G4UIExecutive::G4UIExecutive(G4int argc, char** argv, const G4String& type) #endif break; case kTcsh: -#ifndef WIN32 +#if !(defined(WIN32) || defined(__MINGW32__)) DISCARD_PARAMETER(argc); DISCARD_PARAMETER(argv); shell = new G4UItcsh; diff --git a/source/interfaces/basic/src/G4UIQt.cc b/source/interfaces/basic/src/G4UIQt.cc index 9f2dcdf091..49500c4bbd 100644 --- a/source/interfaces/basic/src/G4UIQt.cc +++ b/source/interfaces/basic/src/G4UIQt.cc @@ -113,7 +113,7 @@ static G4bool exitPause = true; */ G4UIQt::G4UIQt ( - int argc + G4int argc ,char** argv ) :fMainWindow(NULL) @@ -193,7 +193,7 @@ G4UIQt::G4UIQt ( if(UI!=NULL) UI->SetG4UIWindow(this); // Check if already define in external app QMainWindow - bool found = false; + G4bool found = false; Q_FOREACH (QWidget *widget, QApplication::allWidgets()) { if ((found== false) && (widget->inherits("QMainWindow"))) { found = true; @@ -286,7 +286,7 @@ G4UIQt::~G4UIQt( } -void G4UIQt::DefaultIcons(bool aVal) +void G4UIQt::DefaultIcons(G4bool aVal) { fDefaultIcons = aVal; @@ -335,8 +335,8 @@ void G4UIQt::SetDefaultIconsToolbar( #if QT_VERSION < 0x050600 QSignalMapper *signalMapperViewerProperties = new QSignalMapper(this); QAction *actionViewerProperties = fToolbarApp->addAction(QIcon(*fParamIcon),"Viewer properties", signalMapperViewerProperties, SLOT(map())); - connect(signalMapperViewerProperties, SIGNAL(mapped(int)),this, SLOT(ViewerPropertiesIconCallback(int))); - int intVP = 0; + connect(signalMapperViewerProperties, SIGNAL(mapped(G4int)),this, SLOT(ViewerPropertiesIconCallback(G4int))); + G4int intVP = 0; signalMapperViewerProperties->setMapping(actionViewerProperties, intVP); #else fToolbarApp->addAction(QIcon(*fParamIcon),"Viewer properties", this, [this](){ this->ViewerPropertiesIconCallback(0); }); @@ -1598,7 +1598,7 @@ G4UIDockWidget* G4UIQt::CreateCoutTBWidget( // add all candidates to widget fThreadsFilterComboBox = new QComboBox(); fThreadsFilterComboBox->setInsertPolicy(QComboBox::InsertAlphabetically); - connect(fThreadsFilterComboBox, SIGNAL(activated(int)), this, SLOT(ThreadComboBoxCallback(int))); + connect(fThreadsFilterComboBox, SIGNAL(activated(G4int)), this, SLOT(ThreadComboBoxCallback(G4int))); UpdateCoutThreadFilter(); @@ -1689,7 +1689,7 @@ G4UIDockWidget* G4UIQt::CreateUITabWidget( fUITabWidget->setTabToolTip (0,"Scene component tree. Only available in Stored mode"); fUITabWidget->setTabToolTip (1,"Help widget"); fUITabWidget->setTabToolTip (2,"All commands history"); - connect(fUITabWidget, SIGNAL(currentChanged(int)), SLOT(ToolBoxActivated(int))); + connect(fUITabWidget, SIGNAL(currentChanged(G4int)), SLOT(ToolBoxActivated(G4int))); fUIDockWidget = new G4UIDockWidget ("Scene tree, Help, History"); fUIDockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); @@ -1761,9 +1761,9 @@ void G4UIQt::CreateViewerWidget(){ #if QT_VERSION < 0x040500 #else - connect(fViewerTabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(TabCloseCallback(int))); + connect(fViewerTabWidget, SIGNAL(tabCloseRequested(G4int)), this, SLOT(TabCloseCallback(int))); #endif - connect(fViewerTabWidget, SIGNAL(currentChanged ( int ) ), SLOT(UpdateTabWidget(int))); + connect(fViewerTabWidget, SIGNAL(currentChanged(G4int)), SLOT(UpdateTabWidget(G4int))); } // set the QGLWidget size policy @@ -1808,7 +1808,7 @@ QWidget* G4UIQt::GetPickInfosWidget( /** Add a new tab in the viewer */ -bool G4UIQt::AddViewerTab( +G4bool G4UIQt::AddViewerTab( QWidget* aWidget ,std::string title ) @@ -1824,7 +1824,7 @@ bool G4UIQt::AddViewerTab( /** Add a new tab in the viewer */ -bool G4UIQt::AddViewerTabFromFile( +G4bool G4UIQt::AddViewerTabFromFile( std::string fileName ,std::string title ) @@ -1857,7 +1857,7 @@ bool G4UIQt::AddViewerTabFromFile( /** Add a new tab widget. Create the tab if it was not done */ -bool G4UIQt::AddTabWidget( +G4bool G4UIQt::AddTabWidget( QWidget* aWidget ,QString name ) @@ -1930,7 +1930,7 @@ const std::string& text) } -void G4UIQt::UpdateTabWidget(int tabNumber) { +void G4UIQt::UpdateTabWidget(G4int tabNumber) { if ( fViewerTabWidget == NULL) { fViewerTabWidget = new G4QTabWidget; } @@ -2131,7 +2131,7 @@ G4int G4UIQt::ReceiveG4cout ( // Tabs (\t) are more tricky since the number of equivalent spaces depends // on how many characters precede it. Probably needs an HTML table. For now // we replace \t with four spaces. - for (size_t i = 0; i < aString.length() - 1; ++i) { + for (G4int i = 0; i < (G4int)aString.length() - 1; ++i) { if (aString[i] == '\n') { aStringWithStyle += "
"; } else if (aString[i] == ' ') { @@ -2218,7 +2218,7 @@ G4int G4UIQt::ReceiveG4cerr ( // Tabs (\t) are more tricky since the number of equivalent spaces depends // on how many characters precede it. Probably needs an HTML table. For now // we replace \t with four spaces. - for (size_t i = 0; i < aString.length() - 1; ++i) { + for (G4int i = 0; i < (G4int)aString.length() - 1; ++i) { if (aString[i] == '\n') { aStringWithStyle += "
"; } else if (aString[i] == ' ') { @@ -2379,8 +2379,8 @@ void G4UIQt::AddButton ( G4UIcommandTree * treeTop = UI->GetTree(); G4String cmd = aCommand; - G4int cmdEndPos = cmd.find_first_of(" \t"); - if(cmdEndPos!=G4int(std::string::npos)) { + std::size_t cmdEndPos = cmd.find_first_of(" \t"); + if(cmdEndPos!=std::string::npos) { cmd.erase(cmdEndPos); } @@ -2435,7 +2435,7 @@ void G4UIQt::AddIcon(const char* aLabel, const char* aIconFile, const char* aCom } } QPixmap* pix; - bool userToolBar = false; + G4bool userToolBar = false; if (!fDefaultIcons) { userToolBar = true; @@ -2512,7 +2512,7 @@ void G4UIQt::AddIcon(const char* aLabel, const char* aIconFile, const char* aCom QList list = currentToolbar->actions(); - for (int i = 0; i < list.size(); ++i) { + for (G4int i = 0; i < list.size(); ++i) { if (list.at(i)->text() == QString(aLabel)) { G4UImanager* UI = G4UImanager::GetUIpointer(); if(UI==NULL) return; @@ -2683,7 +2683,7 @@ void G4UIQt::OutputStyle (const char* destination,const char* style,const char* } } -void G4UIQt::NativeMenu(bool aVal) +void G4UIQt::NativeMenu(G4bool aVal) { if ( fMainWindow->menuBar()->isNativeMenuBar() == aVal ) return; // already in this state @@ -2705,7 +2705,7 @@ void G4UIQt::ActivateCommand( return; } // Look for the choosen command "newCommand" - size_t i = newCommand.find(" "); + std::size_t i = newCommand.find(" "); G4String targetCom =""; if( i != std::string::npos ) { @@ -2787,14 +2787,14 @@ void G4UIQt::FillHelpTree() G4int treeSize = treeTop->GetTreeEntry(); QTreeWidgetItem * newItem = NULL; QString commandText = ""; - for (int a=0;aGetTree(a+1)->GetPathName()).data()).trimmed(); // if already exist, don't create it ! - for (int b=0;btopLevelItemCount();b++) { + for (G4int b=0;btopLevelItemCount();++b) { if (!newItem) newItem = FindTreeItem(fHelpTreeWidget->topLevelItem(b),commandText); } @@ -2832,7 +2832,7 @@ void G4UIQt::CreateHelpTree( QString commandText = ""; // Get the Sub directories - for (int a=0;aGetTreeEntry();a++) { + for (G4int a=0;aGetTreeEntry();++a) { commandText = QString((char*)(aCommandTree->GetTree(a+1)->GetPathName()).data()).trimmed(); @@ -2848,7 +2848,7 @@ void G4UIQt::CreateHelpTree( // Get the Commands - for (int a=0;aGetCommandEntry();a++) { + for (G4int a=0;aGetCommandEntry();++a) { QStringList stringList; commandText = QString((char*)(aCommandTree->GetCommand(a+1)->GetCommandPath()).data()).trimmed(); @@ -2877,11 +2877,11 @@ void G4UIQt::CreateHelpTree( If depthLevel is 1 : create ToolBox If depthLevel is 2 or more : create GroupBox */ -bool G4UIQt::CreateVisCommandGroupAndToolBox( +G4bool G4UIQt::CreateVisCommandGroupAndToolBox( G4UIcommand* aCommand ,QWidget* aParent -,int aDepthLevel -,bool isDialog +,G4int aDepthLevel +,G4bool isDialog ) { QString commandText = QString((char*)(aCommand->GetCommandPath().data())).section("/",-aDepthLevel); @@ -2893,7 +2893,7 @@ bool G4UIQt::CreateVisCommandGroupAndToolBox( // Look if groupBox is create // QGroupBox* gBoxCommandWidget; QWidget* newParentWidget = NULL; - bool found = false; + G4bool found = false; QString commandSection = commandText.left(commandText.indexOf("/")); if (aDepthLevel == 1) { @@ -2901,7 +2901,7 @@ bool G4UIQt::CreateVisCommandGroupAndToolBox( if (currentParent != 0){ // already exists ? - for (int a=0; acount(); a++) { + for (G4int a=0; acount(); ++a) { if (currentParent->itemText(a) == commandSection) { found = true; newParentWidget = currentParent->widget(a); @@ -2925,7 +2925,7 @@ bool G4UIQt::CreateVisCommandGroupAndToolBox( // Guidance QString guidance; - G4int n_guidanceEntry = aCommand->GetGuidanceEntries(); + G4int n_guidanceEntry = (G4int)aCommand->GetGuidanceEntries(); for( G4int i_thGuidance=0; i_thGuidance < n_guidanceEntry; i_thGuidance++ ) { guidance += QString((char*)(aCommand->GetGuidanceLine(i_thGuidance)).data()) + "\n"; } @@ -2952,7 +2952,7 @@ bool G4UIQt::CreateVisCommandGroupAndToolBox( // parentToolBox->setItemText(parentToolBox->indexOf(currentParent),"[more parameters inside]"); } } - for (int a=0; alayout()->count(); a++) { + for (G4int a=0; alayout()->count(); ++a) { QGroupBox* gb = dynamic_cast(aParent->layout()->itemAt(a)->widget()); if (gb != 0) { if (gb->title() == commandSection) { @@ -2975,7 +2975,7 @@ bool G4UIQt::CreateVisCommandGroupAndToolBox( // set toolTip // Guidance QString guidance; - G4int n_guidanceEntry = aCommand->GetGuidanceEntries(); + G4int n_guidanceEntry = (G4int)aCommand->GetGuidanceEntries(); for( G4int i_thGuidance=0; i_thGuidance < n_guidanceEntry; i_thGuidance++ ) { guidance += QString((char*)(aCommand->GetGuidanceLine(i_thGuidance)).data()) + "\n"; } @@ -3002,7 +3002,7 @@ bool G4UIQt::CreateVisCommandGroupAndToolBox( @parent : parent widget @isDialog : true if we want apply/cancel button and close at end, false if we want only apply */ -bool G4UIQt::CreateCommandWidget(G4UIcommand* aCommand, QWidget* aParent, bool isDialog) { +G4bool G4UIQt::CreateCommandWidget(G4UIcommand* aCommand, QWidget* aParent, G4bool isDialog) { if (aCommand == NULL) { return false; @@ -3010,7 +3010,7 @@ bool G4UIQt::CreateCommandWidget(G4UIcommand* aCommand, QWidget* aParent, bool i // parameters - G4int n_parameterEntry = aCommand->GetParameterEntries(); + G4int n_parameterEntry = (G4int)aCommand->GetParameterEntries(); if( n_parameterEntry > 0 ) { G4UIparameter *param; @@ -3021,8 +3021,8 @@ bool G4UIQt::CreateCommandWidget(G4UIcommand* aCommand, QWidget* aParent, bool i // Special case for colour, try to display a color chooser if we found red/green/blue parameter unsigned int nbColorParameter = 0; - bool isStillColorParameter = false; - bool isColorDialogAdded = false; + G4bool isStillColorParameter = false; + G4bool isColorDialogAdded = false; QLabel* redLabel = NULL; QLabel* greenLabel = NULL; QString redDefaultStr = ""; @@ -3252,7 +3252,7 @@ bool G4UIQt::CreateCommandWidget(G4UIcommand* aCommand, QWidget* aParent, bool i QWidget * parentCheck = aParent; QDialog* parentDialog = NULL; - bool found = false; + G4bool found = false; while ((parentCheck->parentWidget()) != NULL) { parentCheck = parentCheck->parentWidget(); parentDialog = dynamic_cast(parentCheck); @@ -3299,7 +3299,7 @@ QTreeWidgetItem* G4UIQt::FindTreeItem( return aParent; QTreeWidgetItem * tmp = NULL; - for (int a=0;achildCount();a++) { + for (G4int a=0;achildCount();++a) { if (!tmp) tmp = FindTreeItem(aParent->child(a),myCommand); } @@ -3326,8 +3326,8 @@ QString G4UIQt::GetCommandList ( G4String commandPath = aCommand->GetCommandPath(); G4String rangeString = aCommand->GetRange(); - G4int n_guidanceEntry = aCommand->GetGuidanceEntries(); - G4int n_parameterEntry = aCommand->GetParameterEntries(); + G4int n_guidanceEntry = (G4int)aCommand->GetGuidanceEntries(); + G4int n_parameterEntry = (G4int)aCommand->GetParameterEntries(); if ((commandPath == "") && (rangeString == "") && @@ -3403,8 +3403,8 @@ void G4UIQt::updateHelpArea ( G4String commandPath = aCommand->GetCommandPath(); G4String rangeString = aCommand->GetRange(); - G4int n_guidanceEntry = aCommand->GetGuidanceEntries(); - G4int n_parameterEntry = aCommand->GetParameterEntries(); + G4int n_guidanceEntry = (G4int)aCommand->GetGuidanceEntries(); + G4int n_parameterEntry = (G4int)aCommand->GetParameterEntries(); if ((commandPath == "") && (rangeString == "") && @@ -3474,7 +3474,7 @@ void G4UIQt::updateHelpArea ( QTableWidgetItem* t = fParameterHelpTable->horizontalHeaderItem(1); QFont fnt = t->font(); - int size = fnt.pointSize(); + G4int size = fnt.pointSize(); fnt.setPointSize(size-2); for( G4int a=0; asetItem(a, 7, new QTableWidgetItem(QString((char*)(param->GetParameterCandidates()).data()))); } // tooltips - for (int b=0; b<8; b++) { + for (G4int b=0; b<8; ++b) { QTableWidgetItem* tmp = fParameterHelpTable->item(a,b); if (tmp) { tmp->setToolTip(tmp->text()); @@ -3513,7 +3513,7 @@ void G4UIQt::updateHelpArea ( } fParameterHelpTable->resizeRowToContents(a); } - for (int c=0; c<8; c++) { + for (G4int c=0; c<8; ++c) { if (c !=2) { fParameterHelpTable->resizeColumnToContents(c); } @@ -3537,7 +3537,7 @@ G4bool G4UIQt::IsGUICommand( if (aCommand == NULL) return false; - G4int n_parameterEntry = aCommand->GetParameterEntries(); + G4int n_parameterEntry = (G4int)aCommand->GetParameterEntries(); if( n_parameterEntry > 0 ) { G4UIparameter *param; @@ -3581,13 +3581,13 @@ G4bool G4UIQt::GetHelpChoice( @param obj Emitter of the event @param event Kind of event */ -bool G4UIQt::eventFilter( // Should stay with a minuscule eventFilter because of Qt +G4bool G4UIQt::eventFilter( // Should stay with a minuscule eventFilter because of Qt QObject *aObj ,QEvent *aEvent ) { - bool tabKeyPress = false; - bool moveCommandCursor = false; + G4bool tabKeyPress = false; + G4bool moveCommandCursor = false; if (aObj == NULL) return false; if (aEvent == NULL) return false; @@ -3617,7 +3617,7 @@ bool G4UIQt::eventFilter( // Should stay with a minuscule eventFilter because of (e->key() == (Qt::Key_PageDown)) || (e->key() == (Qt::Key_Up)) || (e->key() == (Qt::Key_PageUp))) { - int selection = fHistoryTBTableList->currentRow(); + G4int selection = fHistoryTBTableList->currentRow(); if (fHistoryTBTableList->count()) { if (selection == -1) { selection = fHistoryTBTableList->count()-1; @@ -3669,7 +3669,7 @@ bool G4UIQt::eventFilter( // Should stay with a minuscule eventFilter because of // specific #ifdef } - bool res= false; + G4bool res= false; // change cursor position if needed if (moveCommandCursor == true) { fCommandArea->setCursorPosition ( fCommandArea->text().length() ); @@ -3731,11 +3731,11 @@ QStandardItemModel* G4UIQt::CreateCompleterModel(G4String aCmd) { G4UIcommandTree * commandTreeTop = UI->GetTree(); G4UIcommandTree* aTree = commandTreeTop->FindCommandTree(pName); if (aTree) { - int Ndir= aTree-> GetTreeEntry(); - int Ncmd= aTree-> GetCommandEntry(); + G4int Ndir= aTree-> GetTreeEntry(); + G4int Ncmd= aTree-> GetCommandEntry(); // directory ... - for(G4int idir=1; idir<=Ndir; idir++) { + for(G4int idir=1; idir<=Ndir; ++idir) { G4String fpdir= aTree-> GetTree(idir)-> GetPathName(); // matching test if( fpdir.find(remainingPath, 0) == 0) { @@ -3755,7 +3755,7 @@ QStandardItemModel* G4UIQt::CreateCompleterModel(G4String aCmd) { // Go recursively QStandardItemModel* subModel = CreateCompleterModel(fpdir.data()); - for (int a=0; a< subModel->rowCount(); a++) { + for (G4int a=0; a< subModel->rowCount(); ++a) { // copy item (an item could only be part of one model QStandardItem* tempItem = new QStandardItem(subModel->item(a)->text()); @@ -3785,15 +3785,15 @@ QStandardItemModel* G4UIQt::CreateCompleterModel(G4String aCmd) { std::string tooltip; G4String params; - for(G4int icmd=1; icmd<=Ncmd; icmd++){ + for(G4int icmd=1; icmd<=Ncmd; ++icmd){ tooltip = ""; params = " "; command = aTree-> GetCommand(icmd); G4String longCommandName= aTree-> GetPathName() + command -> GetCommandName(); rangeString = command->GetRange(); - n_guidanceEntry = command->GetGuidanceEntries(); - n_parameterEntry = command->GetParameterEntries(); + n_guidanceEntry = (G4int)command->GetGuidanceEntries(); + n_parameterEntry = (G4int)command->GetParameterEntries(); // matching test @@ -3840,16 +3840,16 @@ QStandardItemModel* G4UIQt::CreateCompleterModel(G4String aCmd) { model->setColumnCount(1); // concat models - for (int a= 0; a< dirModelList.size(); a++) { + for (G4int a= 0; a< dirModelList.size(); ++a) { model->appendRow(dirModelList.at(a)); } - for (int a= 0; a< subDirModelList.size(); a++) { + for (G4int a= 0; a< subDirModelList.size(); ++a) { model->appendRow(subDirModelList.at(a)); } - for (int a= 0; a< commandModelList.size(); a++) { + for (G4int a= 0; a< commandModelList.size(); ++a) { model->appendRow(commandModelList.at(a)); } - for (int a= 0; a< subCommandModelList.size(); a++) { + for (G4int a= 0; a< subCommandModelList.size(); ++a) { model->appendRow(subCommandModelList.at(a)); } @@ -3911,7 +3911,7 @@ void G4UIQt::CommandEnteredCallback ( #endif // Apply for all commands - for (int a=0; a< list.size(); a++) { + for (G4int a=0; a< list.size(); ++a) { QString txt (list[a].trimmed()); if (txt != "") { fHistoryTBTableList->addItem(txt); @@ -3960,7 +3960,7 @@ void G4UIQt::CommandEditedCallback(const QString &) #endif if (list.size() > 1) { // trigger ActivateCommand - for (int a=0; asetText(list[a]); // trigger callback @@ -3995,7 +3995,7 @@ void G4UIQt::VisParameterCallback(QWidget* widget){ } command += (dynamic_cast(name))->text()+" "; - for (int a=0;arowCount()-1; a++) { + for (G4int a=0;arowCount()-1; ++a) { #if QT_VERSION < 0x040400 QWidget* widgetTmp = grid->itemAt(a*grid->columnCount()+1)->widget(); #else @@ -4169,7 +4169,7 @@ void G4UIQt::CommandHistoryCallback( } -void G4UIQt::ThreadComboBoxCallback(int) { +void G4UIQt::ThreadComboBoxCallback(G4int) { CoutFilterCallback(""); } @@ -4306,9 +4306,9 @@ void G4UIQt::OpenHelpTreeOnCommand( #if QT_VERSION < 0x050F00 // Before Qt5.15 - QMap commandResultMap; - QMap commandChildResultMap; - for (int a=0;a commandResultMap; + QMap commandChildResultMap; + for (G4int a=0;aFindPath(treeTop->GetTree(a+1)->GetPathName().data()); tmp = GetCommandList (command).count(searchText,Qt::CaseInsensitive); if (tmp >0) { @@ -4328,9 +4328,9 @@ void G4UIQt::OpenHelpTreeOnCommand( } #else // Qt5.15 and beyond - QMultiMap commandResultMap; - QMultiMap commandChildResultMap; - for (int a=0;a commandResultMap; + QMultiMap commandChildResultMap; + for (G4int a=0;aFindPath(treeTop->GetTree(a+1)->GetPathName().data()); tmp = GetCommandList (command).count(searchText,Qt::CaseInsensitive); if (tmp >0) { @@ -4340,10 +4340,10 @@ void G4UIQt::OpenHelpTreeOnCommand( commandChildResultMap = LookForHelpStringInChildTree(treeTop->GetTree(a+1),searchText); // insert new childs if (!commandChildResultMap.empty()) { - QMap::const_iterator i = commandChildResultMap.constBegin(); + QMap::const_iterator i = commandChildResultMap.constBegin(); while (i != commandChildResultMap.constEnd()) { commandResultMap.insert(i.key(),i.value()); - i++; + ++i; } commandChildResultMap.clear(); } @@ -4363,20 +4363,20 @@ void G4UIQt::OpenHelpTreeOnCommand( return; } - QMap::const_iterator i = commandResultMap.constEnd(); + QMap::const_iterator i = commandResultMap.constEnd(); i--; // 10 maximum progress values - float multValue = 10.0/(float)(i.key()); + G4float multValue = 10.0/(G4float)(i.key()); QString progressChar = "|"; QString progressStr = "|"; QTreeWidgetItem * newItem; - bool end = false; + G4bool end = false; while (!end) { if (i == commandResultMap.constBegin()) { end = true; } - for(int a=0;a G4UIQt::LookForHelpStringInChildTree( +QMap G4UIQt::LookForHelpStringInChildTree( G4UIcommandTree *aCommandTree ,const QString & text ) { - QMap commandResultMap; + QMap commandResultMap; if (aCommandTree == NULL) return commandResultMap; // Get the Sub directories - int tmp = 0; - QMap commandChildResultMap; - for (int a=0;aGetTreeEntry();a++) { + G4int tmp = 0; + QMap commandChildResultMap; + for (G4int a=0;aGetTreeEntry();++a) { const G4UIcommand* command = aCommandTree->GetGuidance(); tmp = GetCommandList (command).count(text,Qt::CaseInsensitive); if (tmp >0) { @@ -4423,16 +4423,16 @@ QMap G4UIQt::LookForHelpStringInChildTree( commandChildResultMap = LookForHelpStringInChildTree(aCommandTree->GetTree(a+1),text); if (!commandChildResultMap.empty()) { // insert new childs - QMap::const_iterator i = commandChildResultMap.constBegin(); + QMap::const_iterator i = commandChildResultMap.constBegin(); while (i != commandChildResultMap.constEnd()) { commandResultMap.insertMulti(i.key(),i.value()); - i++; + ++i; } commandChildResultMap.clear(); } } // Get the Commands - for (int a=0;aGetCommandEntry();a++) { + for (G4int a=0;aGetCommandEntry();++a) { const G4UIcommand* command = aCommandTree->GetCommand(a+1); tmp = GetCommandList (command).count(text,Qt::CaseInsensitive); if (tmp >0) { @@ -4443,17 +4443,17 @@ QMap G4UIQt::LookForHelpStringInChildTree( } #else // Qt5.15 and beyond -QMultiMap G4UIQt::LookForHelpStringInChildTree( +QMultiMap G4UIQt::LookForHelpStringInChildTree( G4UIcommandTree *aCommandTree ,const QString & text ) { - QMultiMap commandResultMap; + QMultiMap commandResultMap; if (aCommandTree == NULL) return commandResultMap; // Get the Sub directories - int tmp = 0; - QMultiMap commandChildResultMap; - for (int a=0;aGetTreeEntry();a++) { + G4int tmp = 0; + QMultiMap commandChildResultMap; + for (G4int a=0;aGetTreeEntry();++a) { const G4UIcommand* command = aCommandTree->GetGuidance(); tmp = GetCommandList (command).count(text,Qt::CaseInsensitive); if (tmp >0) { @@ -4463,16 +4463,16 @@ QMultiMap G4UIQt::LookForHelpStringInChildTree( commandChildResultMap = LookForHelpStringInChildTree(aCommandTree->GetTree(a+1),text); if (!commandChildResultMap.empty()) { // insert new childs - QMap::const_iterator i = commandChildResultMap.constBegin(); + QMap::const_iterator i = commandChildResultMap.constBegin(); while (i != commandChildResultMap.constEnd()) { commandResultMap.insert(i.key(),i.value()); - i++; + ++i; } commandChildResultMap.clear(); } } // Get the Commands - for (int a=0;aGetCommandEntry();a++) { + for (G4int a=0;aGetCommandEntry();++a) { const G4UIcommand* command = aCommandTree->GetCommand(a+1); tmp = GetCommandList (command).count(text,Qt::CaseInsensitive); if (tmp >0) { @@ -4538,7 +4538,7 @@ void G4UIQt::ChangeColorCallback(QWidget* widget) { value.section(" ",1,2).toDouble(), value.section(" ",2,3).toDouble()); #if QT_VERSION < 0x040500 - bool a; + G4bool a; QColor color = QColor(QColorDialog::getRgba (old.rgba(),&a,fUITabWidget)); #else QColor color = QColorDialog::getColor(old, @@ -4627,7 +4627,7 @@ void G4UIQt::ChangeSurfaceStyle(const QString& action) { if (fToolbarApp == NULL) return; QList list = fToolbarApp->actions (); - for (int i = 0; i < list.size(); ++i) { + for (G4int i = 0; i < list.size(); ++i) { if (list.at(i)->data().toString () == action) { list.at(i)->setChecked(TRUE); } else if (list.at(i)->data().toString () == "hidden_line_removal") { @@ -4776,7 +4776,7 @@ void G4UIQt::CreateEmptyPickInfosWidget() { } -void G4UIQt::ViewerPropertiesIconCallback(int) { +void G4UIQt::ViewerPropertiesIconCallback(G4int) { CreateViewerPropertiesDialog(); @@ -4793,7 +4793,7 @@ void G4UIQt::ChangePerspectiveOrtho(const QString& action) { if (fToolbarApp == NULL) return; QList list = fToolbarApp->actions (); QString checked = ""; - for (int i = 0; i < list.size(); ++i) { + for (G4int i = 0; i < list.size(); ++i) { if (list.at(i)->data().toString () == action) { list.at(i)->setChecked(TRUE); checked = list.at(i)->data().toString (); @@ -4823,7 +4823,7 @@ void G4UIQt::SetIconMoveSelected() { if (fToolbarApp == NULL) return; QList list = fToolbarApp->actions (); - for (int i = 0; i < list.size(); ++i) { + for (G4int i = 0; i < list.size(); ++i) { if (list.at(i)->data().toString () == "move") { list.at(i)->setChecked(TRUE); } else if (list.at(i)->data().toString () == "rotate") { @@ -4849,7 +4849,7 @@ void G4UIQt::SetIconRotateSelected() { if (fToolbarApp == NULL) return; QList list = fToolbarApp->actions (); - for (int i = 0; i < list.size(); ++i) { + for (G4int i = 0; i < list.size(); ++i) { if (list.at(i)->data().toString () == "rotate") { list.at(i)->setChecked(TRUE); } else if (list.at(i)->data().toString () == "move") { @@ -4880,7 +4880,7 @@ void G4UIQt::SetIconPickSelected() { if (!bar) return; QList list = bar->actions (); - for (int i = 0; i < list.size(); ++i) { + for (G4int i = 0; i < list.size(); ++i) { if (list.at(i)->data().toString () == "pick") { list.at(i)->setChecked(TRUE); } else if (list.at(i)->data().toString () == "move") { @@ -4911,7 +4911,7 @@ void G4UIQt::SetIconZoomInSelected() { if (!bar) return; QList list = bar->actions (); - for (int i = 0; i < list.size(); ++i) { + for (G4int i = 0; i < list.size(); ++i) { if (list.at(i)->data().toString () == "zoom_in") { list.at(i)->setChecked(TRUE); } else if (list.at(i)->data().toString () == "move") { @@ -4942,7 +4942,7 @@ void G4UIQt::SetIconZoomOutSelected() { if (!bar) return; QList list = bar->actions (); - for (int i = 0; i < list.size(); ++i) { + for (G4int i = 0; i < list.size(); ++i) { if (list.at(i)->data().toString () == "zoom_out") { list.at(i)->setChecked(TRUE); } else if (list.at(i)->data().toString () == "move") { @@ -4968,7 +4968,7 @@ void G4UIQt::SetIconSolidSelected() { if (!bar) return; QList list = bar->actions (); - for (int i = 0; i < list.size(); ++i) { + for (G4int i = 0; i < list.size(); ++i) { if (list.at(i)->data().toString () == "solid") { list.at(i)->setChecked(TRUE); } else if (list.at(i)->data().toString () == "hidden_line_removal") { @@ -4992,7 +4992,7 @@ void G4UIQt::SetIconWireframeSelected() { if (!bar) return; QList list = bar->actions (); - for (int i = 0; i < list.size(); ++i) { + for (G4int i = 0; i < list.size(); ++i) { if (list.at(i)->data().toString () == "wireframe") { list.at(i)->setChecked(TRUE); } else if (list.at(i)->data().toString () == "hidden_line_removal") { @@ -5017,7 +5017,7 @@ void G4UIQt::SetIconHLRSelected() { QList list = bar->actions (); - for (int i = 0; i < list.size(); ++i) { + for (G4int i = 0; i < list.size(); ++i) { if (list.at(i)->data().toString () == "hidden_line_removal") { list.at(i)->setChecked(TRUE); } else if (list.at(i)->data().toString () == "solid") { @@ -5042,7 +5042,7 @@ void G4UIQt::SetIconHLHSRSelected() { if (!bar) return; QList list = bar->actions (); - for (int i = 0; i < list.size(); ++i) { + for (G4int i = 0; i < list.size(); ++i) { if (list.at(i)->data().toString () == "hidden_line_and_surface_removal") { list.at(i)->setChecked(TRUE); } else if (list.at(i)->data().toString () == "solid") { @@ -5067,7 +5067,7 @@ void G4UIQt::SetIconPerspectiveSelected() { QList list = bar->actions (); - for (int i = 0; i < list.size(); ++i) { + for (G4int i = 0; i < list.size(); ++i) { if (list.at(i)->data().toString () == "perspective") { list.at(i)->setChecked(TRUE); } else if (list.at(i)->data().toString () == "ortho") { @@ -5089,7 +5089,7 @@ void G4UIQt::SetIconOrthoSelected() { if (!bar) return; QList list = bar->actions (); - for (int i = 0; i < list.size(); ++i) { + for (G4int i = 0; i < list.size(); ++i) { if (list.at(i)->data().toString () == "ortho") { list.at(i)->setChecked(TRUE); } else if (list.at(i)->data().toString () == "perspective") { @@ -5102,8 +5102,8 @@ void G4UIQt::SetIconOrthoSelected() { G4QTabWidget::G4QTabWidget( QWidget* aParent, -int sizeX, -int sizeY +G4int sizeX, +G4int sizeY ):QTabWidget(aParent) ,fTabSelected(false) ,fLastCreated(-1) @@ -5142,9 +5142,9 @@ G4String outputStream #if QT_VERSION < 0x040500 -void G4UIQt::TabCloseCallback(int){ +void G4UIQt::TabCloseCallback(G4int){ #else -void G4UIQt::TabCloseCallback(int a){ +void G4UIQt::TabCloseCallback(G4int a){ #endif #if QT_VERSION < 0x040500 #else @@ -5156,8 +5156,8 @@ void G4UIQt::TabCloseCallback(int a){ fViewerTabWidget->removeTab (a); // if last QWidget : Add empty string - bool lastTab = true; - for (int c=0; ccount(); c++) { + G4bool lastTab = true; + for (G4int c=0; ccount(); ++c) { if (fViewerTabWidget->tabText(c).contains("viewer")) { lastTab = false; } @@ -5172,7 +5172,7 @@ void G4UIQt::TabCloseCallback(int a){ } -void G4UIQt::ToolBoxActivated(int a){ +void G4UIQt::ToolBoxActivated(G4int a){ if (fUITabWidget->widget(a) == fHelpTBWidget) { // Rebuild the help tree diff --git a/source/interfaces/basic/src/G4UIXm.cc b/source/interfaces/basic/src/G4UIXm.cc index 734485fd2d..03b8fb055c 100644 --- a/source/interfaces/basic/src/G4UIXm.cc +++ b/source/interfaces/basic/src/G4UIXm.cc @@ -59,8 +59,8 @@ static void XmTextAppendString (Widget,char*); static void clearButtonCallback (Widget,XtPointer,XtPointer); -static char* XmConvertCompoundStringToString (XmString,int); -static G4bool ConvertStringToInt(const char*,int&); +static char* XmConvertCompoundStringToString (XmString,G4int); +static G4bool ConvertStringToInt(const char*,G4int&); static void ExecuteChangeSizeFunction(Widget); static G4bool exitSession = true; @@ -68,7 +68,7 @@ static G4bool exitPause = true; static G4bool exitHelp = true; /***************************************************************************/ G4UIXm::G4UIXm ( - int argc + G4int argc ,char** argv ) :shell(NULL) @@ -106,20 +106,20 @@ G4UIXm::G4UIXm ( XtSetArg(args[0],XmNkeyboardFocusPolicy,XmPOINTER); // For completion. shell = XtAppCreateShell ("G4UIXm","G4UIXm", topLevelShellWidgetClass,XtDisplay(top), - args,1); - form = XmCreateForm (shell,(char*)"form",NULL,0); + args,1); + form = XmCreateForm (shell,(char*)menu_str[0].c_str(),NULL,0); XtManageChild (form); XtSetArg(args[0],XmNtopAttachment ,XmATTACH_FORM); XtSetArg(args[1],XmNleftAttachment ,XmATTACH_FORM); XtSetArg(args[2],XmNrightAttachment ,XmATTACH_FORM); - menuBar = XmCreateMenuBar (form,(char*)"menuBar",args,3); + menuBar = XmCreateMenuBar (form,(char*)menu_str[1].c_str(),args,3); XtSetArg(args[0],XmNtopAttachment ,XmATTACH_NONE); XtSetArg(args[1],XmNleftAttachment ,XmATTACH_FORM); XtSetArg(args[2],XmNrightAttachment ,XmATTACH_FORM); XtSetArg(args[3],XmNbottomAttachment ,XmATTACH_FORM); - command = XmCreateCommand (form,(char*)"command",args,4); + command = XmCreateCommand (form,(char*)menu_str[2].c_str(),args,4); XtManageChild (command); XtSetArg(args[0],XmNtopAttachment ,XmATTACH_NONE); @@ -127,9 +127,9 @@ G4UIXm::G4UIXm ( XtSetArg(args[2],XmNrightAttachment ,XmATTACH_FORM); XtSetArg(args[3],XmNbottomAttachment,XmATTACH_WIDGET); XtSetArg(args[4],XmNbottomWidget ,command); - XmString cps = XmStringLtoRCreate((char*)"Clear",(char*)XmSTRING_DEFAULT_CHARSET); + XmString cps = XmStringLtoRCreate((char*)menu_str[3].c_str(),(char*)XmSTRING_DEFAULT_CHARSET); XtSetArg (args[5],XmNlabelString,cps); - Widget clearButton = XmCreatePushButton(form,(char*)"clearButton",args,6); + Widget clearButton = XmCreatePushButton(form,(char*)menu_str[4].c_str(),args,6); XmStringFree (cps); XtManageChild (clearButton); @@ -142,7 +142,7 @@ G4UIXm::G4UIXm ( XtSetArg(args[6],XmNeditMode ,XmMULTI_LINE_EDIT); XtSetArg(args[7],XmNrows ,12); XtSetArg(args[8],XmNcolumns ,80); - text = XmCreateScrolledText (form,(char*)"text",args,9); + text = XmCreateScrolledText (form,(char*)menu_str[5].c_str(),args,9); XtManageChild (text); XtAddCallback(clearButton,XmNactivateCallback, @@ -405,7 +405,8 @@ void clearButtonCallback ( /***************************************************************************/ /*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ { - XmTextSetString((Widget)a_tag,(char*)""); + static const G4String empty_str = ""; + XmTextSetString((Widget)a_tag,(char*)empty_str.c_str()); } /***************************************************************************/ void G4UIXm::ButtonCallback ( @@ -426,7 +427,7 @@ void G4UIXm::ButtonCallback ( /***************************************************************************/ char* XmConvertCompoundStringToString ( XmString a_cps -,int a_number +,G4int a_number ) /***************************************************************************/ /*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ @@ -435,7 +436,7 @@ char* XmConvertCompoundStringToString ( char* ss = NULL; XmStringContext context; XmStringInitContext(&context,a_cps); - int icount = 0; + G4int icount = 0; Boolean Done = False; while(Done==False) { char* text = NULL; @@ -476,7 +477,7 @@ void XmTextAppendString ( ////////////////////////////////////////////////////////////////////////////// G4bool ConvertStringToInt( const char* aString -,int& aInt +,G4int& aInt ) ////////////////////////////////////////////////////////////////////////////// //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// @@ -484,9 +485,9 @@ G4bool ConvertStringToInt( aInt = 0; if(aString==NULL) return false; char* s; - long value = strtol(aString,&s,10); + G4long value = strtol(aString,&s,10); if(s==aString) return false; - aInt = value; + aInt = (G4int)value; return true; } #include diff --git a/source/interfaces/basic/src/G4UIcsh.cc b/source/interfaces/basic/src/G4UIcsh.cc index 74a8c757c6..8443710239 100644 --- a/source/interfaces/basic/src/G4UIcsh.cc +++ b/source/interfaces/basic/src/G4UIcsh.cc @@ -60,7 +60,7 @@ G4String G4UIcsh::GetCommandLineString(const char* msg) // multi-line while( (newCommand.length() > 0) && - (newCommand[newCommand.length()-1] == '_') ) { + (newCommand[G4int(newCommand.length()-1)] == '_') ) { G4String newLine; newCommand.erase(newCommand.length()-1); G4StrUtil::readline(G4cin, newLine, false); @@ -74,4 +74,3 @@ G4String G4UIcsh::GetCommandLineString(const char* msg) return newCommand; } - diff --git a/source/interfaces/basic/src/G4UItcsh.cc b/source/interfaces/basic/src/G4UItcsh.cc index e6bc8c2ae6..1c1b57b00d 100644 --- a/source/interfaces/basic/src/G4UItcsh.cc +++ b/source/interfaces/basic/src/G4UItcsh.cc @@ -127,8 +127,8 @@ void G4UItcsh::MakePrompt(const char* msg) } promptString=""; - size_t i; - for(i=0; i=2; i--) G4cout << AsciiBS; - for(i=1; i<=G4int(commandLine.length()); i++) G4cout << ' '; - for(i=1; i<=G4int(commandLine.length()); i++) G4cout << AsciiBS; + for(i=1; i<=commandLine.length(); ++i) G4cout << ' '; + for(i=1; i<=commandLine.length(); ++i) G4cout << AsciiBS; G4cout << std::flush; // command line string... @@ -286,9 +286,8 @@ void G4UItcsh::ClearAfterCursor() if(IsCursorLast()) return; // display... - G4int i; - for(i=cursorPosition; i<=G4int(commandLine.length()); i++) G4cout << ' '; - for(i=commandLine.length(); i>=cursorPosition; i--) G4cout << AsciiBS; + for(std::size_t i=cursorPosition; i<=commandLine.length(); ++i) G4cout << ' '; + for(G4int j=(G4int)commandLine.length(); j>=cursorPosition; --j) G4cout << AsciiBS; G4cout << std::flush; // command line string... @@ -305,7 +304,7 @@ void G4UItcsh::ClearScreen() G4cout << promptString << commandLine << std::flush; // reset cursur position - for(G4int i=commandLine.length()+1; i>=cursorPosition+1; i--) + for(G4int i=G4int(commandLine.length()+1); i>=cursorPosition+1; --i) G4cout << AsciiBS << std::flush; } } @@ -316,7 +315,7 @@ void G4UItcsh::ForwardCursor() { if(IsCursorLast()) return; - G4cout << commandLine[(size_t)(cursorPosition-1)] << std::flush; + G4cout << commandLine[cursorPosition-1] << std::flush; cursorPosition++; } @@ -334,7 +333,7 @@ void G4UItcsh::BackwardCursor() void G4UItcsh::MoveCursorTop() ////////////////////////////// { - for(G4int i=cursorPosition; i>1; i--){ + for(G4int i=cursorPosition; i>1; --i){ G4cout << AsciiBS; } G4cout << std::flush; @@ -345,11 +344,11 @@ void G4UItcsh::MoveCursorTop() void G4UItcsh::MoveCursorEnd() ////////////////////////////// { - for(size_t i=cursorPosition-1; i=0; i--) { - if(input[(size_t)i]=='/') { - indx= i; + for(G4int i=len-1; i>=0; --i) { + if(input[i]=='/') { + indx= (G4int)i; break; } } @@ -447,7 +446,7 @@ void G4UItcsh::CompleteCommand() } // tail string - size_t thead = input.find_last_of('/'); + std::size_t thead = input.find_last_of('/'); G4String strtail = input; if (thead != G4String::npos) strtail = input.substr(thead+1, input.size()-thead-1); @@ -455,10 +454,10 @@ void G4UItcsh::CompleteCommand() G4String vpath= currentCommandDir; G4String vcmd; - G4int len= input.length(); + G4int len= (G4int)input.length(); if(!input.empty()) { G4int indx= -1; - for(G4int i=len-1; i>=0; i--) { + for(G4int i=len-1; i>=0; --i) { if(input[i]=='/') { indx= i; break; @@ -477,8 +476,8 @@ void G4UItcsh::CompleteCommand() G4String inputpath= vpath+vcmd; G4int nMatch= 0; - int Ndir= atree-> GetTreeEntry(); - int Ncmd= atree-> GetCommandEntry(); + G4int Ndir= atree-> GetTreeEntry(); + G4int Ncmd= atree-> GetCommandEntry(); // directory ... for(G4int idir=1; idir<=Ndir; idir++) { @@ -518,13 +517,13 @@ void G4UItcsh::CompleteCommand() if(jhead == G4String::npos) jhead=0; else jhead++; - G4int jt = jhead; + std::size_t jt = jhead; G4String dspstr; - G4int i; - for(i=jt; i<=G4int(input.length())-1; i++) dspstr+= AsciiBS; - for(i=jt; i<=G4int(input.length())-1; i++) dspstr+= ' '; - for(i=jt; i<=G4int(input.length())-1; i++) dspstr+= AsciiBS; + std::size_t i; + for(i=jt; i<=input.length()-1; ++i) dspstr+= AsciiBS; + for(i=jt; i<=input.length()-1; ++i) dspstr+= ' '; + for(i=jt; i<=input.length()-1; ++i) dspstr+= AsciiBS; dspstr+= (vpath + stream); if (nMatch == 0) dspstr+= strtail; @@ -536,7 +535,7 @@ void G4UItcsh::CompleteCommand() if (nMatch==0) input+= strtail; commandLine= input; - cursorPosition= commandLine.length()+1; + cursorPosition= G4int(commandLine.length()+1); } // -------------------------------------------------------------------- @@ -656,7 +655,7 @@ G4String G4UItcsh::GetCommandLineString(const char* msg) G4String newCommand= ReadLine(); // read line... // multi-line while( (newCommand.length() > 0) && - ( newCommand[newCommand.length()-1] == '_') ) { + ( newCommand[G4int(newCommand.length()-1)] == '_') ) { newCommand.erase(newCommand.length()-1); G4cout << G4endl; promptString= "? "; @@ -667,7 +666,7 @@ G4String G4UItcsh::GetCommandLineString(const char* msg) // update history... G4bool isMeaningfull= FALSE; // check NULL command - for (size_t i=0; i GetTree(G4String(absPath.substr(0,jslash+1))); } @@ -150,17 +150,17 @@ G4String G4VUIshell::GetAbsCommandDirPath(const G4String& apath) const // if "apath" does not start with "/", // then it is treared as relative path G4String bpath= apath; - if(apath[(size_t)0] != '/') bpath= currentCommandDir + apath; + if(apath[(std::size_t)0] != '/') bpath= currentCommandDir + apath; // parsing... G4String absPath= "/"; - for(G4int indx=1; indx<=G4int(bpath.length())-1; ) { - G4int jslash= bpath.find("/", indx); // search index begin with "/" + for(std::size_t indx=1; indx<=bpath.length()-1; ) { + std::size_t jslash= bpath.find("/", indx); // search index begin with "/" if(indx == jslash) { // skip first '///' - indx++; + ++indx; continue; } - if(jslash != G4int(G4String::npos)) { + if(jslash != G4String::npos) { if(bpath.substr(indx,jslash-indx) == ".."){ // directory up if(absPath == "/") { indx = jslash+1; @@ -173,7 +173,7 @@ G4String G4VUIshell::GetAbsCommandDirPath(const G4String& apath) const } } else if(bpath.substr(indx,jslash-indx) == "."){ // nothing to do } else { // add - if( !(jslash==indx && bpath[indx]=='/') ) // truncate "////" + if( !(jslash==indx && bpath[(G4int)indx]=='/') ) // truncate "////" absPath+= bpath.substr(indx, jslash-indx+1); // better to be check directory existence. (it costs!) } @@ -193,17 +193,17 @@ G4String G4VUIshell::GetCommandPathTail(const G4String& apath) const { // xxx/xxx/zzz -> zzz, trancate /// -> / if(apath.empty()) return apath; - G4int lstr= apath.length(); + G4int lstr= (G4int)apath.length(); // for trancating "/" G4bool Qsla= FALSE; - if(apath[(size_t)(lstr-1)]=='/') Qsla= TRUE; + if(apath[lstr-1]=='/') Qsla= TRUE; // searching last '/' from tail G4int indx= -1; - for(G4int i=lstr-1; i>=0; i--) { - if(Qsla && apath[(size_t)i]!='/') Qsla= FALSE; // break "/" flag!! - if(apath[(size_t)i]=='/' && !Qsla) { + for(G4int i=lstr-1; i>=0; --i) { + if(Qsla && apath[i]!='/') Qsla= FALSE; // break "/" flag!! + if(apath[i]=='/' && !Qsla) { indx= i; break; } @@ -237,11 +237,11 @@ void G4VUIshell::ListCommand(const G4String& dir, G4String vpath= currentCommandDir; G4String vcmd; - G4int len= input.length(); + G4int len= (G4int)input.length(); if(! input.empty()) { G4int indx= -1; - for(G4int i=len-1; i>=0; i--) { // search last '/' - if(input[(size_t)i]=='/') { + for(G4int i=len-1; i>=0; --i) { // search last '/' + if(input[i]=='/') { indx= i; break; } diff --git a/source/interfaces/common/src/G4InteractorMessenger.cc b/source/interfaces/common/src/G4InteractorMessenger.cc index 7e124aa0d4..c0513dd504 100644 --- a/source/interfaces/common/src/G4InteractorMessenger.cc +++ b/source/interfaces/common/src/G4InteractorMessenger.cc @@ -37,7 +37,7 @@ #define STRDUP(str) ((str) != NULL ? (strcpy((char*)malloc((unsigned)strlen(str) + 1), str)) : (char*)NULL) #define STRDEL(str) {if((str)!=NULL) {free(str);str=NULL;}} -static G4bool GetValues (G4String,int,G4String*); +static G4bool GetValues (G4String, G4int, G4String*); G4InteractorMessenger::G4InteractorMessenger ( G4VInteractiveSession* a_session @@ -180,7 +180,7 @@ void G4InteractorMessenger::SetNewValue ( ,G4String newValue ) { - int paramn = command->GetParameterEntries(); + G4int paramn = (G4int)command->GetParameterEntries(); G4String* params = new G4String [paramn]; if(GetValues(newValue,paramn,params)==true) { if(command==addMenu) { @@ -192,7 +192,7 @@ void G4InteractorMessenger::SetNewValue ( } else if(command==defaultIcons) { session->DefaultIcons(command->ConvertToBool(newValue)); } else if(command==sys) { - int rc = system((const char*)params[0]); + G4int rc = system((const char*)params[0]); if ( rc < 0 ){ } } else if(command==outputStyle) { session->OutputStyle((const char*)params[0],(const char*)params[1],(const char*)params[2]); @@ -206,14 +206,14 @@ void G4InteractorMessenger::SetNewValue ( } G4bool GetValues ( G4String newValue -,int paramn +,G4int paramn ,G4String* params ) { char* value = STRDUP(newValue.data()); if(value==NULL) return false; char* tok = strtok(value," "); - for( int i=0; i::iterator it; - for (it = dispatchers.begin(); it != dispatchers.end(); it++) { + for (it = dispatchers.begin(); it != dispatchers.end(); ++it) { if (*it == a_dispatcher) { dispatchers.erase(it); break; @@ -179,9 +179,9 @@ void G4VInteractorManager::DispatchEvent ( /***************************************************************************/ /*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ { - G4int dispatchern = dispatchers.size(); + std::size_t dispatchern = dispatchers.size(); G4DispatchFunction func; - for(G4int count=0;count::iterator it; - for (it = shells.begin(); it != shells.end(); it++) { + for (it = shells.begin(); it != shells.end(); ++it) { if (*it == a_shell) { shells.erase(it); break; diff --git a/source/materials/History b/source/materials/History index ec28388582..a80745174c 100644 --- a/source/materials/History +++ b/source/materials/History @@ -6,6 +6,38 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-16 Gabriele Cosmo (materials-V11-00-19) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-03 Vladimir Ivanchenko (materials-V11-00-18) +- G4NistMaterialBuilder - S. Zein fix bio-medical material + descriptions for G4_ADENINE, G4_GUANINE, G4_CYTOSINE, + G4_THYMINE, G4_DEOXYRIBOSE, and add G4_PHOSPHORIC_ACID + +## 2022-10-26 Daren Sawkey (materials-V11-00-17) +- G4MaterialPropertiesIndex, G4MaterialPropertiesTable, G4SurfaceProperty + Parameters to specify opticalphoton transport through thin film coating. + Contribution of Laurie Cappellugola et al, Aix Marseille U. + +## 2022-10-20 Vladimir Ivanchenko (materials-V11-00-16) +- G4Material - added an extra check (nAtoms>0) inside + method AddElementByNumberOfAtoms(..) to address #2514 + +## 2022-10-13 Vladimir Ivanchenko (materials-V11-00-15) +- G4AtomicShell - extra data is added for Z=101-104 by R. Chakma; +- G4AtomicShell, G4AtomicShell_XDB_EADL - change format of + internal tables allowing to make diff and see differences + in a clear way + +## 2022-08-30 Vladimir Ivanchenko (materials-V11-00-14) +- G4CrystalExtension - fixed Coverity warning. + +## 2022-08-30 Vladimir Ivanchenko (materials-V11-00-13) +- G4CrystalExtension - fixed Coverity warning and minor clean-up. + +## 2022-07-19 Vladimir Ivanchenko (materials-V11-00-12) +- fixed Coverity warning in G4CrystalExtension. + ## 2022-05-23 Gabriele Cosmo (materials-V11-00-11) - Corrected G4UCNMicroRoughnessHelper destructor. diff --git a/source/materials/include/G4AtomicShells.hh b/source/materials/include/G4AtomicShells.hh index 7e521b6424..e40a9b653a 100644 --- a/source/materials/include/G4AtomicShells.hh +++ b/source/materials/include/G4AtomicShells.hh @@ -73,10 +73,10 @@ private : G4AtomicShells(const G4AtomicShells&) = delete; const G4AtomicShells& operator=(const G4AtomicShells&) = delete; - static const G4int fNumberOfShells[101]; - static const G4int fIndexOfShells[101]; - static const G4int fNumberOfElectrons[1540]; - static const G4double fBindingEnergies[1540]; + static const G4int fNumberOfShells[105]; + static const G4int fIndexOfShells[105]; + static const G4int fNumberOfElectrons[1650]; + static const G4double fBindingEnergies[1650]; }; @@ -1737,8 +1737,54 @@ FM 253. 100 00.0 0.00 K 2 143090. 1S a) P3 4 29. 6P3/2 O6 12 15. 5F5/2-5F7/2 Q1 2 7. 7S - +------------------------------------------------------------ + Electron Configurationfrom CRC Handbook of Chemistry and Physics 79th Ed + and atomic Electron binding energy from Table of Isotopes 8th Ed + ---------------------------------------------------------------- + Md 101 00.0 0.00 K 2 146526.0 1S + L1 2 28387.0 2S + L2 2 27438.0 2P1/2 + L3 4 21356.0 2P3/2 + M1 2 7440.0 3S1/2 + M2 2 7001.0 3P1/2 + M3 4 5552.0 3P3/2 + M4 4 4889.0 3D3/2 + M5 6 4615.0 3D5/2 + N1 2 2024.0 4S1/2 + N2 2 1816.0 4P1/2 + N3 4 1424.0 4P3/2 + N4 4 1105.0 4D3/2 + N5 6 1034.0 4D5/2 + N6 6 618.0 4F5/2 + N7 8 597.0 4F7/2 + O1 2 471.0 5S1/2 + O2 2 389.0 5P1/2 + O3 4 272.0 5P3/2 + O4 4 154.0 5D3/2 + O5 6 137.0 5D5/2 + O6 6 12.9 5F5/2 + O7 7 10.5 5F7/2 + P1 2 61.0 6S1/2 + P2 2 37.0 6P1/2 + P3 4 17.0 6P3/2 + P5 2 5.9 6D5/2 +--------------------------------------------------------- + No 102 0.0 0.0 + 149208.0 29221.0 28255.0 21851.0 7678.0 7231.0 5702.0 5028.0 + 4741.0 2097.0 1885.0 1469.0 1145.0 1070.0 645.0 624.0 + 490.0 406.0 280.0 161.0 142.0 13.6 11.1 63.0 + 38.0 18.0 6.0 + --------------------------------------------------------- + Lr 103 0.0 0.0 + 152970.0 30083.0 29103.0 22359.0 7930.0 7474.0 5860.0 5176.0 + 4876.0 2180.0 1963.0 1523.0 1192.0 1112.0 680.0 658.0 + 516.0 429.0 296.0 174.0 154.0 19.9 17.0 71.0 + 44.0 21.0 3.9 6.9 + ------------------------------------------------------------------- + Rf 104 0.0 0.0 + 156288.0 30881.0 29986.0 22907.0 8161.0 7738.0 6009.0 5336.0 + 5014.0 2237.0 2035.0 1554.0 1233.0 1149.0 725.0 701.0 + 535.0 448.0 319.0 190.0 171.0 26.0 22.8 82.0 ********************************************************** */ - #endif // end of G4AtomicShells.hh diff --git a/source/materials/include/G4MaterialPropertiesIndex.hh b/source/materials/include/G4MaterialPropertiesIndex.hh index 831254af72..038d3a88e1 100644 --- a/source/materials/include/G4MaterialPropertiesIndex.hh +++ b/source/materials/include/G4MaterialPropertiesIndex.hh @@ -64,6 +64,7 @@ enum G4MaterialPropertyIndex { kSCINTILLATIONCOMPONENT1, // scintillation light yield vectors for kSCINTILLATIONCOMPONENT2, // 3 channels kSCINTILLATIONCOMPONENT3, // " + kCOATEDRINDEX, // real part of the refractive index of the thin layer in case of coated surface kNumberOfPropertyIndex // the number of G4MaterialPropertyIndex } ; @@ -127,6 +128,10 @@ enum G4MaterialConstPropertyIndex kELECTRONSCINTILLATIONYIELD1, // scintillation light yield by electrons kELECTRONSCINTILLATIONYIELD2, // for 3 channels kELECTRONSCINTILLATIONYIELD3, // " + kCOATEDTHICKNESS, // thickness of the thin layer in case of coated + kCOATEDFRUSTRATEDTRANSMISSION,// for incident angle superior to limit angle, use frustrated transmission (if true) + // or total reflection (if false) + kNumberOfConstPropertyIndex // the number of G4MaterialConstPropertyIndex }; diff --git a/source/materials/include/G4SurfaceProperty.hh b/source/materials/include/G4SurfaceProperty.hh index 5c16d59414..515245a821 100644 --- a/source/materials/include/G4SurfaceProperty.hh +++ b/source/materials/include/G4SurfaceProperty.hh @@ -65,7 +65,8 @@ enum G4SurfaceType dielectric_LUTDAVIS, // dielectric-Look-Up-Table DAVIS interface dielectric_dichroic, // dichroic filter interface firsov, // for Firsov Process - x_ray // for x-ray mirror process + x_ray, // for x-ray mirror process + coated // coated_dielectric-dielectric interface }; class G4SurfaceProperty diff --git a/source/materials/src/G4AtomicShells.cc b/source/materials/src/G4AtomicShells.cc index d2dfc36204..43bc3fac79 100644 --- a/source/materials/src/G4AtomicShells.cc +++ b/source/materials/src/G4AtomicShells.cc @@ -30,7 +30,10 @@ // 19-07-04, add a protection in GetNumberOfShells(), mma // 11-02-05, GetNumberOfElectrons(Z,ShellNb), V.Ivanchenko // 30-04-10, added fIndexOfShells, V.Ivanchenko - +// 12-10-22, data added for 101 >= Z <=104 by R. Chakma +// Electron Binding energy from Table of Isotopes 8th Ed +// Electron Configuration from CRC Handbook of Chemestry +// and Physics 8th Ed //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... #include "G4AtomicShells.hh" @@ -39,503 +42,516 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... const G4int -G4AtomicShells::fNumberOfShells[101] = +G4AtomicShells::fNumberOfShells[105] = { - 0 , // nonexisting zero element - - 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 3 , 4 , // 1 - 10 - - 5 , 5 , 6 , 6 , 6 , 6 , 6 , 7 , 8 , 8 , // 11 - 20 - - 9 , 9 , 9 , 9 , 9 , 9 , 9 , 10 , 10 , 10 , // 21 - 30 - -11 , 11 , 11 , 11 , 11 , 12 , 13 , 13 , 14 , 14 , // 31 - 40 - -14 , 14 , 14 , 14 , 14 , 15 , 15 , 15 , 16 , 16 , // 41 - 50 - -// ---------------------------------------------------------- - -16 , 16 , 16 , 17 , 18 , 18 , 19 , 19 , 19 , 19 , // 51 - 60 - -19 , 19 , 19 , 20 , 19 , 19 , 19 , 19 , 19 , 20 , // 61 - 70 - -21 , 21 , 21 , 21 , 21 , 21 , 21 , 21 , 22 , 22 , // 71 - 80 - -23 , 23 , 23 , 23 , 24 , 24 , 25 , 25 , 26 , 26 , // 81 - 90 - -27 , 27 , 27 , 26 , 26 , 27 , 27 , 26 , 26 , 26 // 91 - 100 - + 1, // nonexistent zero element + 1, 1, 2, 2, 3, 3, 4, 4, 3, 4, // 1 - 10 + 5, 5, 6, 6, 6, 6, 6, 7, 8, 8, // 11 - 20 + 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, // 21 - 30 + 11, 11, 11, 11, 11, 12, 13, 13, 14, 14, // 31 - 40 + 14, 14, 14, 14, 14, 15, 15, 15, 16, 16, // 41 - 50 + 16, 16, 16, 17, 18, 18, 19, 19, 19, 19, // 51 - 60 + 19, 19, 19, 20, 19, 19, 19, 19, 19, 20, // 61 - 70 + 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, // 71 - 80 + 23, 23, 23, 23, 24, 24, 25, 25, 26, 26, // 81 - 90 + 27, 27, 27, 26, 26, 27, 27, 26, 26, 26, // 91 - 100 + 27, 27, 28, 28 // 101 - 104 }; // The total shell number is: -// 1 + G4AtomicShells::TotalNumberOfShells(100) = 1 + 1539 = 1540 +// 1 + G4AtomicShells::TotalNumberOfShells(104) = 1 + 1649 = 1650 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... const G4int -G4AtomicShells::fIndexOfShells[101] = - { 0, - 1, 2, 3, 5, 7, 10, 13, 17, 21, 24, - 28, 33, 38, 44, 50, 56, 62, 68, 75, 83, - 91, 100, 109, 118, 127, 136, 145, 154, 164, 174, - 184, 195, 206, 217, 228, 239, 251, 264, 277, 291, - 305, 319, 333, 347, 361, 375, 390, 405, 420, 436, - 452, 468, 484, 500, 517, 535, 553, 572, 591, 610, - 629, 648, 667, 686, 706, 725, 744, 763, 782, 801, - 821, 842, 863, 884, 905, 926, 947, 968, 989, 1011, - 1033, 1056, 1079, 1102, 1125, 1149, 1173, 1198, 1223, 1249, - 1275, 1302, 1329, 1356, 1382, 1408, 1435, 1462, 1488, 1514 - }; +G4AtomicShells::fIndexOfShells[105] = +{ + 0, // nonexistent zero element + 1, 2, 3, 5, 7, 10, 13, 17, 21, 24, // 1 - 10 + 28, 33, 38, 44, 50, 56, 62, 68, 75, 83, // 11 - 20 + 91, 100, 109, 118, 127, 136, 145, 154, 164, 174, // 21 - 30 + 184, 195, 206, 217, 228, 239, 251, 264, 277, 291, // 31 - 40 + 305, 319, 333, 347, 361, 375, 390, 405, 420, 436, // 41 - 50 + 452, 468, 484, 500, 517, 535, 553, 572, 591, 610, // 51 - 60 + 629, 648, 667, 686, 706, 725, 744, 763, 782, 801, // 61 - 70 + 821, 842, 863, 884, 905, 926, 947, 968, 989, 1011, // 71 - 80 + 1033, 1056, 1079, 1102, 1125, 1149, 1173, 1198, 1223, 1249, // 81 - 90 + 1275, 1302, 1329, 1356, 1382, 1408, 1435, 1462, 1488, 1514, // 91 - 100 + 1540, 1567, 1594, 1622 // 101 - 104 +}; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... const G4double -G4AtomicShells::fBindingEnergies[1540] = +G4AtomicShells::fBindingEnergies[1650] = { - 0.0 , // Nonexisting zero element + 0.0, // Nonexisting zero element - // H --------------------------------------------------------- - 13.60 , + // H ---------------------------------------------------------1 + 13.60, - // He --------------------------------------------------------- - 24.59 , + // He ---------------------------------------------------------2 + 24.59, - // Li -------------------------------------------------------- - 58.0 , 5.39 , + // Li --------------------------------------------------------3 + 58.0, 5.39, - // Be -------------------------------------------------------- - 115.0 , 9.32 , + // Be --------------------------------------------------------5 + 115.0, 9.32, - // B -------------------------------------------------------- - 192.0 , 12.93 , 8.3 , + // B --------------------------------------------------------7 + 192.0, 12.93, 8.3, - // C --------------------------------------------------------- - 288.0 , 16.59 , 11.26 , + // C ---------------------------------------------------------10 + 288.0, 16.59, 11.26, // N --------------------------------------------------------- - 403.0 , 37.3 , 20.33 , 14.53 , + 403.0, 37.3, 20.33, 14.53, // O --------------------------------------------------------- - 543.1 , 41.6 , 28.48 , 13.62 , + 543.1, 41.6, 28.48, 13.62, // F --------------------------------------------------------- - 696.7 , 37.85 , 17.42 , + 696.7, 37.85, 17.42, // Ne --------------------------------------------------------- - 870.1 , 48.47 , 21.66 , 21.56 , + 870.1, 48.47, 21.66, 21.56, // Na --------------------------------------------------------- - 1075.0 , 66.0 , 34.0 , 34.0 , 5.14 , + 1075.0, 66.0, 34.0, 34.0, 5.14, // Mg --------------------------------------------------------- - 1308.0 , 92.0 , 54.0 , 54.0 , 7.65 , + 1308.0, 92.0, 54.0, 54.0, 7.65, // Al --------------------------------------------------------- - 1564.0 , 121. , 77.0 , 77.0 , 10.62 , 5.99 , + 1564.0, 121., 77.0, 77.0, 10.62, 5.99, // Si --------------------------------------------------------- - 1844.0 , 154.0 , 104.0 , 104.0 , 13.46 , 8.15 , + 1844.0, 154.0, 104.0, 104.0, 13.46, 8.15, // P --------------------------------------------------------- - 2148.0 , 191.0 , 135.0 , 134.0 , 16.15 , 10.49 , + 2148.0, 191.0, 135.0, 134.0, 16.15, 10.49, // S --------------------------------------------------------- - 2476.0 , 232.0 , 170.0 , 168.0 , 20.20 , 10.36 , + 2476.0, 232.0, 170.0, 168.0, 20.20, 10.36, // Cl --------------------------------------------------------- - 2829.0 , 277.0 , 208.0 , 206.0 , 24.54 , 12.97 , + 2829.0, 277.0, 208.0, 206.0, 24.54, 12.97, // Ar --------------------------------------------------------- - 3206.3 , 326.5 , 250.6 , 248.5 , 29.24 , 15.94 , 15.76 , + 3206.3, 326.5, 250.6, 248.5, 29.24, 15.94, 15.76, // K --------------------------------------------------------- - 3610.0 , 381.0 , 299.0 , 296.0 , 37.0 , 19.0 , 18.7 , 4.34 , + 3610.0, 381.0, 299.0, 296.0, 37.0, 19.0, 18.7, 4.34, // Ca --------------------------------------------------------- - 4041.0 , 441.0 , 353.0 , 349.0 , 46.0 , 28.0 , 28.0 , 6.11 , + 4041.0, 441.0, 353.0, 349.0, 46.0, 28.0, 28.0, 6.11, // Sc --------------------------------------------------------- - 4494.0 , 503.0 , 408.0 , 403.0 , 55.0 , 33.0 , 33.0 , 8.0 , 6.54 , + 4494.0, 503.0, 408.0, 403.0, 55.0, 33.0, 33.0, 8.0, 6.54, // Ti --------------------------------------------------------- - 4966.0 , 567.0 , 465.0 , 459.0 , 64.0 , 39.0 , 38.0 , 8.0 , 6.82 , + 4966.0, 567.0, 465.0, 459.0, 64.0, 39.0, 38.0, 8.0, 6.82, // V --------------------------------------------------------- - 5465.0 , 633.0 , 525.0 , 518.0 , 72.0 , 44.0 , 43.0 , 8.0 , 6.74 , + 5465.0, 633.0, 525.0, 518.0, 72.0, 44.0, 43.0, 8.0, 6.74, // Cr --------------------------------------------------------- - 5989.0 , 702.0 , 589.0 , 580.0 , 80.0 , 49.0 , 48.0 , 8.25 , 6.77 , + 5989.0, 702.0, 589.0, 580.0, 80.0, 49.0, 48.0, 8.25, 6.77, // Mn --------------------------------------------------------- - 6539.0 , 755.0 , 656.0 , 645.0 , 89.0 , 55.0 , 53.0 , 9.0 , 7.43 , + 6539.0, 755.0, 656.0, 645.0, 89.0, 55.0, 53.0, 9.0, 7.43, // Fe --------------------------------------------------------- - 7112.0 , 851.0 , 726.0 , 713.0 , 98.0 , 61.0 , 59.0 , 9.0 , 7.87 , + 7112.0, 851.0, 726.0, 713.0, 98.0, 61.0, 59.0, 9.0, 7.87, // Co --------------------------------------------------------- - 7709.0 , 931.0 , 800.0 , 785.0 , 107.0 , 68.0 , 66.0 , 9.0 , 7.86 , + 7709.0, 931.0, 800.0, 785.0, 107.0, 68.0, 66.0, 9.0, 7.86, // Ni --------------------------------------------------------- - 8333.0 , 1015.0 , 877.0 , 860.0 , 117.0 , 75.0 , 73.0 , 10.0 , 10.0 , - 7.64 , + 8333.0, 1015.0, 877.0, 860.0, 117.0, 75.0, 73.0, 10.0, 10.0, + 7.64, // Cu --------------------------------------------------------- - 8979.0 , 1103.0 , 958.0 , 938.0 , 127.0 , 82.0 , 80.0 , 11.0 , 10.4 , - 7.73 , + 8979.0, 1103.0, 958.0, 938.0, 127.0, 82.0, 80.0, 11.0, 10.4, + 7.73, // Zn --------------------------------------------------------- - 9659.0 , 1198.0 , 1047.0 , 1024.0 , 141.0 , 94.0 , 91.0 , 12.0 , 11.2 , - 9.39 , + 9659.0, 1198.0, 1047.0, 1024.0, 141.0, 94.0, 91.0, 12.0, 11.2, + 9.39, // Ga --------------------------------------------------------- - 10367.0 , 1302.0 , 1146.0 , 1119.0 , 162.0 , 111.0 , 107.0 , 21.0 , - 20.0 , 11.0 , 6.0 , + 10367.0, 1302.0, 1146.0, 1119.0, 162.0, 111.0, 107.0, 21.0, + 20.0, 11.0, 6.0, // Ge --------------------------------------------------------- - 11103.0 , 1413.0 , 1251.0 , 1220.0 , 184.0 , 130.0 , 125.0 , 33.0 , - 32.0 , 14.3 , 7.9 , + 11103.0, 1413.0, 1251.0, 1220.0, 184.0, 130.0, 125.0, 33.0, + 32.0, 14.3, 7.9, // As --------------------------------------------------------- - 11867.0 , 1531.0 , 1362.0 , 1327.0 , 208.0 , 151.0 , 145.0 , 46.0 , - 45.0 , 17.0 , 9.81 , + 11867.0, 1531.0, 1362.0, 1327.0, 208.0, 151.0, 145.0, 46.0, + 45.0, 17.0, 9.81, // Se --------------------------------------------------------- - 12658.0 , 1656.0 , 1479.0 , 1439.0 , 234.0 , 173.0 , 166.0 , 61.0 , - 60.0 , 20.15 , 9.75 , + 12658.0, 1656.0, 1479.0, 1439.0, 234.0, 173.0, 166.0, 61.0, + 60.0, 20.15, 9.75, // Br --------------------------------------------------------- - 13474.0 , 1787.0 , 1602.0 , 1556.0 , 262.0 , 197.0 , 189.0 , 77.0 , - 76.0 , 23.8 , 11.85 , + 13474.0, 1787.0, 1602.0, 1556.0, 262.0, 197.0, 189.0, 77.0, + 76.0, 23.8, 11.85, // Kr --------------------------------------------------------- - 14326.0 , 1924.6 , 1730.9 , 1678.4 , 292.8 , 222.2 , 214.4 , 95.0 , - 93.8 , 27.51 , 14.65 , 14.0 , + 14326.0, 1924.6, 1730.9, 1678.4, 292.8, 222.2, 214.4, 95.0, + 93.8, 27.51, 14.65, 14.0, // Rb --------------------------------------------------------- - 15200.0 , 2068.0 , 1867.0 , 1807.0 , 325.0 , 251.0 , 242.0 , 116.0 , - 114.0 , 32.0 , 16.0 , 15.3 , 4.18 , + 15200.0, 2068.0, 1867.0, 1807.0, 325.0, 251.0, 242.0, 116.0, + 114.0, 32.0, 16.0, 15.3, 4.18, // Sr --------------------------------------------------------- - 16105.0 , 2219.0 , 2010.0 , 1943.0 , 361.0 , 283.0 , 273.0 , 139.0 , - 137.0 , 40.0 , 23.0 , 22.0 , 5.69 , + 16105.0, 2219.0, 2010.0, 1943.0, 361.0, 283.0, 273.0, 139.0, + 137.0, 40.0, 23.0, 22.0, 5.69, // Y --------------------------------------------------------- - 17038.0 , 2375.0 , 2158.0 , 2083.0 , 397.0 , 315.0 , 304.0 , 163.0 , - 161.0 , 48.0 , 30.0 , 29.0 , 6.48, 6.38 , + 17038.0, 2375.0, 2158.0, 2083.0, 397.0, 315.0, 304.0, 163.0, + 161.0, 48.0, 30.0, 29.0, 6.48, 6.38, // Zr --------------------------------------------------------- - 17998.0 , 2536.0 , 2311.0 , 2227.0 , 434.0 , 348.0 , 335.0 , 187.0 , - 185.0 , 56.0 , 35.0 , 33.0 , 8.61 , 6.84 , + 17998.0, 2536.0, 2311.0, 2227.0, 434.0, 348.0, 335.0, 187.0, + 185.0, 56.0, 35.0, 33.0, 8.61, 6.84, // Nb ---------------------------------------------------------- - 18986.0 , 2702.0 , 2469.0 , 2375.0 , 472.0 , 382.0 , 367.0 , 212.0 , - 209.0 , 62.0 , 40.0 , 38.0 , 7.17 , 6.88 , + 18986.0, 2702.0, 2469.0, 2375.0, 472.0, 382.0, 367.0, 212.0, + 209.0, 62.0, 40.0, 38.0, 7.17, 6.88, // Mo ----------------------------------------------------------- - 20000.0 , 2872.0 , 2632.0 , 2527.0 , 511.0 , 416.0 , 399.0 , 237.0 , - 234.0 , 68.0 , 45.0 , 42.0 , 8.56 , 7.10 , + 20000.0, 2872.0, 2632.0, 2527.0, 511.0, 416.0, 399.0, 237.0, + 234.0, 68.0, 45.0, 42.0, 8.56, 7.10, // Tc ----------------------------------------------------------- - 21044.0 , 3048.0 , 2800.0 , 2683.0 , 551.0 , 451.0 , 432.0 , 263.0 , - 259.0 , 74.0 , 49.0 , 45.0 , 8.6 , 7.28 , + 21044.0, 3048.0, 2800.0, 2683.0, 551.0, 451.0, 432.0, 263.0, + 259.0, 74.0, 49.0, 45.0, 8.6, 7.28, // Ru ----------------------------------------------------------- - 22117.0 , 3230.0 , 2973.0 , 2844.0 , 592.0 , 488.0 , 466.0 , 290.0 , - 286.0 , 81.0 , 53.0 , 49.0 , 8.5 , 7.37 , + 22117.0, 3230.0, 2973.0, 2844.0, 592.0, 488.0, 466.0, 290.0, + 286.0, 81.0, 53.0, 49.0, 8.5, 7.37, // Rh ----------------------------------------------------------- - 23220.0 , 3418.0 , 3152.0 , 3010.0 , 634.0 , 526.0 , 501.0 , 318.0 , - 313.0 , 87.0 , 58.0 , 53.0 , 9.56 , 7.46 , + 23220.0, 3418.0, 3152.0, 3010.0, 634.0, 526.0, 501.0, 318.0, + 313.0, 87.0, 58.0, 53.0, 9.56, 7.46, // Pd ----------------------------------------------------------- - 24350.0 , 3611.0 , 3337.0 , 3180.0 , 677.0 , 565.0 , 537.0 , 347.0 , - 342.0 , 93.0 , 63.0 , 57.0 , 8.78 , 8.34 , 7.52 , + 24350.0, 3611.0, 3337.0, 3180.0, 677.0, 565.0, 537.0, 347.0, + 342.0, 93.0, 63.0, 57.0, 8.78, 8.34, 7.52, // Ag ----------------------------------------------------------- - 25514.0 , 3812.0 , 3530.0 , 3357.0 , 724.0 , 608.0 , 577.0 , 379.0 , - 373.0 , 101.0 , 69.0 , 63.0 , 11.0 , 10.0 , 7.58 , + 25514.0, 3812.0, 3530.0, 3357.0, 724.0, 608.0, 577.0, 379.0, + 373.0, 101.0, 69.0, 63.0, 11.0, 10.0, 7.58, // Cd ------------------------------------------------------------ - 26711.0 , 4022.0 , 3732.0 , 3542.0 , 775.0 , 655.0 , 621.0 , 415.0 , - 408.0 , 112.0 , 78.0 , 71.0 , 14.0 , 13.0 , 8.99 , + 26711.0, 4022.0, 3732.0, 3542.0, 775.0, 655.0, 621.0, 415.0, + 408.0, 112.0, 78.0, 71.0, 14.0, 13.0, 8.99, // In ------------------------------------------------------------ - 27940.0 , 4242.0 , 3943.0 , 3735.0 , 830.0 , 707.0 , 669.0 , 455.0 , - 447.0 , 126.0 , 90.0 , 82.0 , 21.0 , 20.0 , 10.0 , 5.79 , + 27940.0, 4242.0, 3943.0, 3735.0, 830.0, 707.0, 669.0, 455.0, + 447.0, 126.0, 90.0, 82.0, 21.0, 20.0, 10.0, 5.79, // Sn ------------------------------------------------------------ - 29200.0 , 4469.0 , 4160.0 , 3933.0 , 888.0 , 761.0 , 719.0 , 497.0 , - 489.0 , 141.0 , 102.0 , 93.0 , 29.0 , 28.0 , 12.0 , 7.34 , + 29200.0, 4469.0, 4160.0, 3933.0, 888.0, 761.0, 719.0, 497.0, + 489.0, 141.0, 102.0, 93.0, 29.0, 28.0, 12.0, 7.34, // Sb ------------------------------------------------------------ - 30419.0 , 4698.0 , 4385.0 , 4137.0 , 949.0 , 817.0 , 771.0 , 542.0 , - 533.0 , 157.0 , 114.0 , 104.0 , 38.0 , 37.0 , 15.0 , 8.64 , + 30419.0, 4698.0, 4385.0, 4137.0, 949.0, 817.0, 771.0, 542.0, + 533.0, 157.0, 114.0, 104.0, 38.0, 37.0, 15.0, 8.64, // Te ------------------------------------------------------------ - 31814.0 , 4939.0 , 4612.0 , 4347.0 , 1012.0 , 876.0 , 825.0 , 589.0 , - 578.0 , 174.0 , 127.0 , 117.0 , 48.0 , 46.0 , 17.84 , 9.01 , + 31814.0, 4939.0, 4612.0, 4347.0, 1012.0, 876.0, 825.0, 589.0, + 578.0, 174.0, 127.0, 117.0, 48.0, 46.0, 17.84, 9.01, // I ------------------------------------------------------------ - 33169.0 , 5188.0 , 4852.0 , 4557.0 , 1078.0 , 937.0 , 881.0 , 638.0 , - 626.0 , 193.0 , 141.0 , 131.0 , 58.0 , 56.0 , 20.61 , 10.45 , + 33169.0, 5188.0, 4852.0, 4557.0, 1078.0, 937.0, 881.0, 638.0, + 626.0, 193.0, 141.0, 131.0, 58.0, 56.0, 20.61, 10.45, // Xe ------------------------------------------------------------ - 34570.0 , 5460.0 , 5110.0 , 4790.0 , 1148.7 , 1002.1 , 940.6 , 689.0 , - 676.4 , 213.2 , 157.0 , 145.5 , 69.5 , 67.5 , 23.39 , 13.43 , - 12.13 , + 34570.0, 5460.0, 5110.0, 4790.0, 1148.7, 1002.1, 940.6, 689.0, + 676.4, 213.2, 157.0, 145.5, 69.5, 67.5, 23.39, 13.43, + 12.13, // Cs ------------------------------------------------------------ - 35985.0 , 5714.0 , 5359.0 , 5012.0 , 1220.0 , 1068.0 , 1000.0 , 742.0 , - 728.0 , 233.0 , 174.0 , 164.0 , 81.0 , 79.0 , 25.0 , 14.0 , - 12.3 , 3.89 , + 35985.0, 5714.0, 5359.0, 5012.0, 1220.0, 1068.0, 1000.0, 742.0, + 728.0, 233.0, 174.0, 164.0, 81.0, 79.0, 25.0, 14.0, + 12.3, 3.89, // Ba ------------------------------------------------------------- - 37441.0 , 5989.0 , 5624.0 , 5247.0 , 1293.0 , 1138.0 , 1063.0 , 797.0 , - 782.0 , 254.0 , 193.0 , 181.0 , 94.0 , 92.0 , 31.0 , 18.0 , - 16.0 , 5.21 , + 37441.0, 5989.0, 5624.0, 5247.0, 1293.0, 1138.0, 1063.0, 797.0, + 782.0, 254.0, 193.0, 181.0, 94.0, 92.0, 31.0, 18.0, + 16.0, 5.21, // La ------------------------------------------------------------- - 38925.0 , 6266.0 , 5891.0 , 5483.0 , 1365.0 , 1207.0 , 1124.0 , 851.0 , - 834.0 , 273.0 , 210.0 , 196.0 , 105.0 , 103.0 , 36.0 , 22.0 , - 19.0 , 5.75 , 5.58 , + 38925.0, 6266.0, 5891.0, 5483.0, 1365.0, 1207.0, 1124.0, 851.0, + 834.0, 273.0, 210.0, 196.0, 105.0, 103.0, 36.0, 22.0, + 19.0, 5.75, 5.58, // Ce ------------------------------------------------------------- - 40443.0 , 6548.0 , 6164.0 , 5723.0 , 1437.0 , 1275.0 , 1184.0 , 903.0 , - 885.0 , 291.0 , 225.0 , 209.0 , 114.0 , 111.0 , 39.0 , 25.0 , - 22.0 , 6.0 , 5.65 , + 40443.0, 6548.0, 6164.0, 5723.0, 1437.0, 1275.0, 1184.0, 903.0, + 885.0, 291.0, 225.0, 209.0, 114.0, 111.0, 39.0, 25.0, + 22.0, 6.0, 5.65, // Pr ------------------------------------------------------------- - 41991.0 , 6835.0 , 6440.0 , 5964.0 , 1509.0 , 1342.0 , 1244.0 , 954.0 , - 934.0 , 307.0 , 238.0 , 220.0 , 121.0 , 117.0 , 41.0 , - 27.0 , 24.0 , 6.0 , 5.42 , + 41991.0, 6835.0, 6440.0, 5964.0, 1509.0, 1342.0, 1244.0, 954.0, + 934.0, 307.0, 238.0, 220.0, 121.0, 117.0, 41.0, + 27.0, 24.0, 6.0, 5.42 , // Nd ------------------------------------------------------------- - 43569.0 , 7126.0 , 6722.0 , 6208.0 , 1580.0 , 1408.0 , 1303.0 , 1005.0 , - 983.0 , 321.0 , 250.0 , 230.0 , 126.0 , 122.0 , 42.0 , - 28.0 , 25.0 , 6.0 , 5.49 , + 43569.0, 7126.0, 6722.0, 6208.0, 1580.0, 1408.0, 1303.0, 1005.0, + 983.0, 321.0, 250.0, 230.0, 126.0, 122.0, 42.0, + 28.0, 25.0, 6.0, 5.49, // Pm ------------------------------------------------------------- - 45184.0 , 7428.0 , 7013.0 , 6459.0 , 1653.0 , 1476.0 , 1362.0 , 1057.0 , - 1032.0 , 325.0 , 261.0 , 240.0 , 131.0 , 127.0 , 43.0 , - 28.0 , 25.0 , 6.0 , 5.55 , + 45184.0, 7428.0, 7013.0, 6459.0, 1653.0, 1476.0, 1362.0, 1057.0, + 1032.0, 325.0, 261.0, 240.0, 131.0, 127.0, 43.0, + 28.0, 25.0, 6.0, 5.55, // Sm ------------------------------------------------------------- - 46834.0 , 7737.0 , 7312.0 , 6716.0 , 1728.0 , 1546.0 , 1422.0 , 1110.0 , - 1083.0 , 349.0 , 273.0 , 251.0 , 137.0 , 132.0 , 44.0 , - 29.0 , 25.0 , 6.0 , 5.63 , + 46834.0, 7737.0, 7312.0, 6716.0, 1728.0, 1546.0, 1422.0, 1110.0, + 1083.0, 349.0, 273.0, 251.0, 137.0, 132.0, 44.0, + 29.0, 25.0, 6.0, 5.63, // Eu ------------------------------------------------------------- - 48519.0 , 8052.0 , 7617.0 , 6977.0 , 1805.0 , 1618.0 , 1484.0 , 1164.0 , - 1135.0 , 364.0 , 286.0 , 262.0 , 143.0 , 137.0 , 45.0 , - 30.0 , 26.0 , 6.0 , 5.68 , + 48519.0, 8052.0, 7617.0, 6977.0, 1805.0, 1618.0, 1484.0, 1164.0, + 1135.0, 364.0, 286.0, 262.0, 143.0, 137.0, 45.0, + 30.0, 26.0, 6.0, 5.68, // Gd ------------------------------------------------------------- - 50239.0 , 8376.0 , 7930.0 , 7243.0 , 1884.0 , 1692.0 , 1547.0 , 1220.0 , - 1189.0 , 380.0 , 300.0 , 273.0 , 150.0 , 143.0 , 46.0 , - 31.0 , 27.0 , 6.16 , 6.0 , 6.0 , + 50239.0, 8376.0, 7930.0, 7243.0, 1884.0, 1692.0, 1547.0, 1220.0, + 1189.0, 380.0, 300.0, 273.0, 150.0, 143.0, 46.0, + 31.0, 27.0, 6.16, 6.0, 6.0, // Tb ------------------------------------------------------------- - 51996.0 , 8708.0 , 8252.0 , 7514.0 , 1965.0 , 1768.0 , 1612.0 , 1277.0 , - 1243.0 , 398.0 , 315.0 , 285.0 , 157.0 , 150.0 , 48.0 , - 32.0 , 28.0 , 6.0 , 5.85 , + 51996.0, 8708.0, 8252.0, 7514.0, 1965.0, 1768.0, 1612.0, 1277.0, + 1243.0, 398.0, 315.0, 285.0, 157.0, 150.0, 48.0, + 32.0, 28.0, 6.0, 5.85, // Dy ------------------------------------------------------------- - 53789.0 , 9046.0 , 8581.0 , 7790.0 , 2048.0 , 1846.0 , 1678.0 , 1335.0 , - 1298.0 , 416.0 , 331.0 , 297.0 , 164.0 , 157.0 , 50.0 , - 33.0 , 28.0 , 6.0 , 5.93 , + 53789.0, 9046.0, 8581.0, 7790.0, 2048.0, 1846.0, 1678.0, 1335.0, + 1298.0, 416.0, 331.0, 297.0, 164.0, 157.0, 50.0, + 33.0, 28.0, 6.0, 5.93, // Ho ------------------------------------------------------------- - 55618.0 , 9394.0 , 8918.0 , 8071.0 , 2133.0 , 1926.0 , 1746.0 , 1395.0 , - 1354.0 , 434.0 , 348.0 , 310.0 , 172.0 , 164.0 , 52.0 , - 34.0 , 29.0 , 6.02 , 6.0 , + 55618.0, 9394.0, 8918.0, 8071.0, 2133.0, 1926.0, 1746.0, 1395.0, + 1354.0, 434.0, 348.0, 310.0, 172.0, 164.0, 52.0, + 34.0, 29.0, 6.02, 6.0, // Er ------------------------------------------------------------- - 57486.0 , 9751.0 , 9264.0 , 8358.0 , 2220.0 , 2008.0 , 1815.0 , 1456.0 , - 1412.0 , 452.0 , 365.0 , 323.0 , 181.0 , 172.0 , 54.0 , - 35.0 , 30.0 , 6.10 , 6.0 , + 57486.0, 9751.0, 9264.0, 8358.0, 2220.0, 2008.0, 1815.0, 1456.0, + 1412.0, 452.0, 365.0, 323.0, 181.0, 172.0, 54.0, + 35.0, 30.0, 6.10, 6.0, // Tu ------------------------------------------------------------- - 59390.0 , 10116.0 , 9617.0 , 8648.0 , 2309.0 , 2092.0 , 1885.0 , 1518.0 , - 1471.0 , 471.0 , 382.0 , 336.0 , 190.0 , 181.0 , 56.0 , - 36.0 , 30.0 , 7.0 , 6.18 , + 59390.0, 10116.0, 9617.0, 8648.0, 2309.0, 2092.0, 1885.0, 1518.0, + 1471.0, 471.0, 382.0, 336.0, 190.0, 181.0, 56.0, + 36.0, 30.0, 7.0, 6.18, // Yb ------------------------------------------------------------- - 61332.0 , 10486.0 , 9978.0 , 8944.0 , 2401.0 , 2178.0 , 1956.0 , 1580.0 , - 1531.0 , 490.0 , 399.0 , 349.0 , 200.0 , 190.0 , - 58.0 , 37.0 , 31.0 , 8.0 , 7.0 , 6.25 , + 61332.0, 10486.0, 9978.0, 8944.0, 2401.0, 2178.0, 1956.0, 1580.0, + 1531.0, 490.0, 399.0, 349.0, 200.0, 190.0, + 58.0, 37.0, 31.0, 8.0, 7.0, 6.25, // Lu ------------------------------------------------------------- - 63314.0 , 10870.0 , 10349.0 , 9244.0 , 2499.0 , 2270.0 , 2032.0 , 1647.0 , - 1596.0 , 514.0 , 420.0 , 366.0 , 213.0 , 202.0 , - 62.0 , 39.0 , 32.0 , 13.0 , 12.0 , 7.0 , 6.6 , + 63314.0, 10870.0, 10349.0, 9244.0, 2499.0, 2270.0, 2032.0, 1647.0, + 1596.0, 514.0, 420.0, 366.0, 213.0, 202.0, + 62.0, 39.0, 32.0, 13.0, 12.0, 7.0, 6.6, // Hf ------------------------------------------------------------- - 65351.0 , 11271.0 , 10739.0 , 9561.0 , 2604.0 , 2369.0 , 2113.0 , 1720.0 , - 1665.0 , 542.0 , 444.0 , 386.0 , 229.0 , 217.0 , - 68.0 , 43.0 , 35.0 , 21.0 , 20.0 , 7.5 , 7.0 , + 65351.0, 11271.0, 10739.0, 9561.0, 2604.0, 2369.0, 2113.0, 1720.0, + 1665.0, 542.0, 444.0, 386.0, 229.0, 217.0, + 68.0, 43.0, 35.0, 21.0, 20.0, 7.5, 7.0, // Ta ------------------------------------------------------------- - 67416.0 , 11682.0 , 11136.0 , 9881.0 , 2712.0 , 2472.0 , 2197.0 , 1796.0 , - 1737.0 , 570.0 , 469.0 , 407.0 , 245.0 , 232.0 , - 74.0 , 47.0 , 38.0 , 30.0 , 28.0 , 8.3 , 7.9 , + 67416.0, 11682.0, 11136.0, 9881.0, 2712.0, 2472.0, 2197.0, 1796.0, + 1737.0, 570.0, 469.0, 407.0, 245.0, 232.0, + 74.0, 47.0, 38.0, 30.0, 28.0, 8.3, 7.9, // W ------------------------------------------------------------- - 69525.0 , 12100.0 , 11544.0 , 10207.0 , 2823.0 , 2577.0 , 2283.0 , 1874.0 , - 1811.0 , 599.0 , 495.0 , 428.0 , 261.0 , 248.0 , - 80.0 , 51.0 , 41.0 , 38.0 , 36.0 , 9.0 , 8.0 , + 69525.0, 12100.0, 11544.0, 10207.0, 2823.0, 2577.0, 2283.0, 1874.0, + 1811.0, 599.0, 495.0, 428.0, 261.0, 248.0, + 80.0, 51.0, 41.0, 38.0, 36.0, 9.0, 8.0, // Re ------------------------------------------------------------- - 71676.0 , 12527.0 , 11959.0 , 10535.0 , 2937.0 , 2686.0 , 2371.0 , 1953.0 , - 1887.0 , 629.0 , 522.0 , 450.0 , 278.0 , 264.0 , - 86.0 , 56.0 , 47.0 , 45.0 , 45.0 , 9.6 , 7.9 , + 71676.0, 12527.0, 11959.0, 10535.0, 2937.0, 2686.0, 2371.0, 1953.0, + 1887.0, 629.0, 522.0, 450.0, 278.0, 264.0, + 86.0, 56.0, 47.0, 45.0, 45.0, 9.6, 7.9, // Os ------------------------------------------------------------- - 73871.0 , 12968.0 , 12385.0 , 10871.0 , 3054.0 , 2797.0 , 2461.0 , 2035.0 , - 1964.0 , 660.0 , 551.0 , 473.0 , 295.0 , 280.0 , - 92.0 , 61.0 , 56.0 , 54.0 , 49.0 , 9.6 , 8.5 , + 73871.0, 12968.0, 12385.0, 10871.0, 3054.0, 2797.0, 2461.0, 2035.0, + 1964.0, 660.0, 551.0, 473.0, 295.0, 280.0, + 92.0, 61.0, 56.0, 54.0, 49.0, 9.6, 8.5, // Ir ------------------------------------------------------------- - 76111.0 , 13419.0 , 12824.0 , 11215.0 , 3175.0 , 2912.0 , 2554.0 , 2119.0 , - 2044.0 , 693.0 , 581.0 , 497.0 , 314.0 , 298.0 , - 99.0 , 67.0 , 66.0 , 64.0 , 53.0 , 9.6 , 9.1 , + 76111.0, 13419.0, 12824.0, 11215.0, 3175.0, 2912.0, 2554.0, 2119.0, + 2044.0, 693.0, 581.0, 497.0, 314.0, 298.0, + 99.0, 67.0, 66.0, 64.0, 53.0, 9.6, 9.1, // Pt ------------------------------------------------------------- - 78395.0 , 13880.0 , 13273.0 , 11564.0 , 3300.0 , 3030.0 , 2649.0 , 2206.0 , - 2126.0 , 727.0 , 612.0 , 522.0 , 335.0 , 318.0 , - 106.0 , 78.0 , 75.0 , 71.0 , 57.0 , 9.6 , 9.0 , + 78395.0, 13880.0, 13273.0, 11564.0, 3300.0, 3030.0, 2649.0, 2206.0, + 2126.0, 727.0, 612.0, 522.0, 335.0, 318.0, + 106.0, 78.0, 75.0, 71.0, 57.0, 9.6, 9.0, // Au ------------------------------------------------------------- - 80725.0 , 14353.0 , 13734.0 , 11919.0 , 3430.0 , 3153.0 , 2748.0 , 2295.0 , - 2210.0 , 764.0 , 645.0 , 548.0 , 357.0 , 339.0 , - 114.0 , 91.0 , 87.0 , 76.0 , 61.0 , 12.5 , 11.1 , 9.23 , + 80725.0, 14353.0, 13734.0, 11919.0, 3430.0, 3153.0, 2748.0, 2295.0, + 2210.0, 764.0, 645.0, 548.0, 357.0, 339.0, + 114.0, 91.0, 87.0, 76.0, 61.0, 12.5, 11.1, 9.23, // Hg ------------------------------------------------------------- - 83102.0 , 14839.0 , 14209.0 , 12284.0 , 3567.0 , 3283.0 , 2852.0 , 2390.0 , - 2300.0 , 806.0 , 683.0 , 579.0 , 382.0 , 363.0 , - 125.0 , 107.0 , 103.0 , 85.0 , 68.0 , 14.0 , 12.0 , 10.4 , + 83102.0, 14839.0, 14209.0, 12284.0, 3567.0, 3283.0, 2852.0, 2390.0, + 2300.0, 806.0, 683.0, 579.0, 382.0, 363.0, + 125.0, 107.0, 103.0, 85.0, 68.0, 14.0, 12.0, 10.4, // Tl ------------------------------------------------------------- - 85530.0 , 15347.0 , 14698.0 , 12658.0 , 3710.0 , 3420.0 , 2961.0 , 2490.0 , - 2394.0 , 852.0 , 726.0 , 615.0 , 411.0 , 391.0 , - 139.0 , 127.0 , 123.0 , 98.0 , 79.0 , 21.0 , 19.0 , 8.0 , - 6.11 , + 85530.0, 15347.0, 14698.0, 12658.0, 3710.0, 3420.0, 2961.0, 2490.0, + 2394.0, 852.0, 726.0, 615.0, 411.0, 391.0, + 139.0, 127.0, 123.0, 98.0, 79.0, 21.0, 19.0, 8.0, + 6.11, // Pb ------------------------------------------------------------- - 88005.0 , 15861.0 , 15200.0 , 13055.0 , 3857.0 , 3560.0 , 3072.0 , 2592.0 , - 2490.0 , 899.0 , 769.0 , 651.0 , 441.0 , 419.0 , - 153.0 , 148.0 , 144.0 , 111.0 , 90.0 , 27.0 , 25.0 , 10.0 , - 7.42 , + 88005.0, 15861.0, 15200.0, 13055.0, 3857.0, 3560.0, 3072.0, 2592.0, + 2490.0, 899.0, 769.0, 651.0, 441.0, 419.0, + 153.0, 148.0, 144.0, 111.0, 90.0, 27.0, 25.0, 10.0, + 7.42, // Bi ------------------------------------------------------------- - 90526.0 , 16388.0 , 15711.0 , 13419.0 , 4007.0 , 3704.0 , 3185.0 , 2696.0 , - 2588.0 , 946.0 , 813.0 , 687.0 , 472.0 , 448.0 , 170.0 , - 167.0 , 165.0 , 125.0 , 101.0 , 34.0 , 32.0 , 12.0 , 7.29 , + 90526.0, 16388.0, 15711.0, 13419.0, 4007.0, 3704.0, 3185.0, 2696.0, + 2588.0, 946.0, 813.0, 687.0, 472.0, 448.0, 170.0, + 167.0, 165.0, 125.0, 101.0, 34.0, 32.0, 12.0, 7.29, // Po ------------------------------------------------------------- - 93105.0 , 16939.0 , 16244.0 , 13814.0 , 4161.0 , 3852.0 , 3301.0 , 2802.0 , - 2687.0 , 994.0 , 858.0 , 724.0 , 503.0 , 478.0 , 193.0 , 187.0 , - 181.0 , 139.0 , 112.0 , 41.0 , 38.0 , 15.0 , 8.43 , + 93105.0, 16939.0, 16244.0, 13814.0, 4161.0, 3852.0, 3301.0, 2802.0, + 2687.0, 994.0, 858.0, 724.0, 503.0, 478.0, 193.0, 187.0, + 181.0, 139.0, 112.0, 41.0, 38.0, 15.0, 8.43, // At ------------------------------------------------------------- - 95730.0 , 17493.0 , 16785.0 , 14214.0 , 4320.0 , 4005.0 , 3420.0 , 2910.0 , - 2788.0 , 1044.0 , 904.0 , 761.0 , 535.0 , 508.0 , 217.0 , 211.0 , - 196.0 , 153.0 , 123.0 , 48.0 , 44.0 , 19.0 , 11.0 , 9.3 , + 95730.0, 17493.0, 16785.0, 14214.0, 4320.0, 4005.0, 3420.0, 2910.0, + 2788.0, 1044.0, 904.0, 761.0, 535.0, 508.0, 217.0, 211.0, + 196.0, 153.0, 123.0, 48.0, 44.0, 19.0, 11.0, 9.3, // Rn ------------------------------------------------------------- - 98404.0 , 18049.0 , 17337.0 , 14619.0 , 4483.0 , 4162.0 , 3452.0 , 3109.0 , - 2890.0 , 1096.0 , 951.0 , 798.0 , 567.0 , 538.0 , 242.0 , 235.0 , - 212.0 , 167.0 , 134.0 , 55.0 , 51.0 , 24.0 , 14.0 , 10.7 , + 98404.0, 18049.0, 17337.0, 14619.0, 4483.0, 4162.0, 3452.0, 3109.0, + 2890.0, 1096.0, 951.0, 798.0, 567.0, 538.0, 242.0, 235.0, + 212.0, 167.0, 134.0, 55.0, 51.0, 24.0, 14.0, 10.7, // Fr ------------------------------------------------------------- - 101137.0 , 18639.0 , 17907.0 , 15031.0 , 4652.0 , 4324.0 , 3666.0 , 3134.0 , - 2998.0 , 1153.0 , 1003.0 , 839.0 , 603.0 , 572.0 , 268.0 , 260.0 , - 231.0 , 183.0 , 147.0 , 65.0 , 61.0 , 33.0 , 19.0 , 14.0 , - 4.0 , + 101137.0, 18639.0, 17907.0, 15031.0, 4652.0, 4324.0, 3666.0, 3134.0, + 2998.0, 1153.0, 1003.0, 839.0, 603.0, 572.0, 268.0, 260.0, + 231.0, 183.0, 147.0, 65.0, 61.0, 33.0, 19.0, 14.0, + 4.0, // Ra ------------------------------------------------------------- - 103922.0 , 19237.0 , 18484.0 , 15444.0 , 4822.0 , 4491.0 , 3793.0 , 3254.0 , - 3111.0 , 1214.0 , 1060.0 , 884.0 , 642.0 , 609.0 , 296.0 , 287.0 , - 253.0 , 201.0 , 161.0 , 77.0 , 73.0 , 40.0 , 25.0 , 19.0 , - 5.28 , + 103922.0, 19237.0, 18484.0, 15444.0, 4822.0, 4491.0, 3793.0, 3254.0, + 3111.0, 1214.0, 1060.0, 884.0, 642.0, 609.0, 296.0, 287.0, + 253.0, 201.0, 161.0, 77.0, 73.0, 40.0, 25.0, 19.0, + 5.28, // Ac ------------------------------------------------------------- - 106755.0 , 19840.0 , 19083.0 , 15871.0 , 5002.0 , 4656.0 , 3921.0 , 3374.0 , - 3223.0 , 1274.0 , 1116.0 , 928.0 , 680.0 , 645.0 , 322.0 , 313.0 , - 274.0 , 218.0 , 174.0 , 88.0 , 83.0 , 45.0 , 29.0 , 22.0 , - 6.3 , 5.7 , + 106755.0, 19840.0, 19083.0, 15871.0, 5002.0, 4656.0, 3921.0, 3374.0, + 3223.0, 1274.0, 1116.0, 928.0, 680.0, 645.0, 322.0, 313.0, + 274.0, 218.0, 174.0, 88.0, 83.0, 45.0, 29.0, 22.0, + 6.3, 5.7, // Th ------------------------------------------------------------- - 109651.0 , 20472.0 , 19693.0 , 16300.0 , 5182.0 , 4830.0 , 4049.0 , 3494.0 , - 3335.0 , 1333.0 , 1171.0 , 970.0 , 717.0 , 679.0 , 347.0 , 338.0 , - 293.0 , 233.0 , 185.0 , 97.0 , 91.0 , 50.0 , 33.0 , 25.0 , - 6.0 , 6.0 , + 109651.0, 20472.0, 19693.0, 16300.0, 5182.0, 4830.0, 4049.0, 3494.0, + 3335.0, 1333.0, 1171.0, 970.0, 717.0, 679.0, 347.0, 338.0, + 293.0, 233.0, 185.0, 97.0, 91.0, 50.0, 33.0, 25.0, + 6.0, 6.0, // Pa ------------------------------------------------------------- - 112601.0 , 21105.0 , 20314.0 , 16733.0 , 5367.0 , 5001.0 , 4178.0 , 3613.0 , - 3446.0 , 1390.0 , 1225.0 , 1011.0 , 752.0 , 712.0 , 372.0 , 362.0 , - 312.0 , 248.0 , 195.0 , 104.0 , 97.0 , 50.0 , 32.0 , - 24.0 , 6.0 , 6.0 , 6.0 , + 112601.0, 21105.0, 20314.0, 16733.0, 5367.0, 5001.0, 4178.0, 3613.0, + 3446.0, 1390.0, 1225.0, 1011.0, 752.0, 712.0, 372.0, 362.0, + 312.0, 248.0, 195.0, 104.0, 97.0, 50.0, 32.0, + 24.0, 6.0, 6.0, 6.0, // U ------------------------------------------------------------- - 115606.0 , 21757.0 , 20948.0 , 17166.0 , 5548.0 , 5182.0 , 4308.0 , 3733.0 , - 3557.0 , 1446.0 , 1278.0 , 1050.0 , 785.0 , 743.0 , 396.0 , 386.0 , - 329.0 , 261.0 , 203.0 , 110.0 , 101.0 , 52.0 , 34.0 , - 24.0 , 6.1 , 6.0 , 6.0 , + 115606.0, 21757.0, 20948.0, 17166.0, 5548.0, 5182.0, 4308.0, 3733.0, + 3557.0, 1446.0, 1278.0, 1050.0, 785.0, 743.0, 396.0, 386.0, + 329.0, 261.0, 203.0, 110.0, 101.0, 52.0, 34.0, + 24.0, 6.1, 6.0, 6.0, // Np ------------------------------------------------------------- - 118678.0 , 22426.0 , 21600.0 , 17610.0 , 5723.0 , 5366.0 , 4440.0 , 3854.0 , - 3669.0 , 1504.0 , 1331.0 , 1089.0 , 819.0 , 774.0 , 421.0 , 410.0 , - 346.0 , 274.0 , 211.0 , 116.0 , 106.0 , 54.0 , 35.0 , - 25.0 , 6.0 , 6.0 , 6.0 , + 118678.0, 22426.0, 21600.0, 17610.0, 5723.0, 5366.0, 4440.0, 3854.0, + 3669.0, 1504.0, 1331.0, 1089.0, 819.0, 774.0, 421.0, 410.0, + 346.0, 274.0, 211.0, 116.0, 106.0, 54.0, 35.0, + 25.0, 6.0, 6.0, 6.0, // Pu ------------------------------------------------------------- - 121818.0 , 23097.0 , 22266.0 , 18056.0 , 5933.0 , 5541.0 , 4557.0 , 3977.0 , - 3783.0 , 1563.0 , 1384.0 , 1128.0 , 853.0 , 805.0 , 446.0 , 434.0 , - 356.0 , 287.0 , 219.0 , 122.0 , 111.0 , 53.0 , 34.0 , - 23.0 , 6.0 , 6.0 , + 121818.0, 23097.0, 22266.0, 18056.0, 5933.0, 5541.0, 4557.0, 3977.0, + 3783.0, 1563.0, 1384.0, 1128.0, 853.0, 805.0, 446.0, 434.0, + 356.0, 287.0, 219.0, 122.0, 111.0, 53.0, 34.0, + 23.0, 6.0, 6.0, // Am ------------------------------------------------------------- - 125027.0 , 23773.0 , 22944.0 , 18504.0 , 6121.0 , 5710.0 , 4667.0 , 4102.0 , - 3898.0 , 1623.0 , 1439.0 , 1167.0 , 887.0 , 836.0 , 467.0 , 452.0 , - 355.0 , 301.0 , 220.0 , 123.0 , 112.0 , 54.0 , 44.0 , - 36.0 , 6.0 , 6.0 , + 125027.0, 23773.0, 22944.0, 18504.0, 6121.0, 5710.0, 4667.0, 4102.0, + 3898.0, 1623.0, 1439.0, 1167.0, 887.0, 836.0, 467.0, 452.0, + 355.0, 301.0, 220.0, 123.0, 112.0, 54.0, 44.0, + 36.0, 6.0, 6.0, // Cm ------------------------------------------------------------- - 128220.0 , 24460.0 , 23779.0 , 18930.0 , 6288.0 , 5895.0 , 4797.0 , 4236.0 , - 4014.0 , 1664.0 , 1493.0 , 1194.0 , 919.0 , 864.0 , 494.0 , 479.0 , - 384.0 , 314.0 , 239.0 , 126.0 , 119.0 , 60.0 , 39.0 , - 27.0 , 11.0 , 5.0 , 6.0 , + 128220.0, 24460.0, 23779.0, 18930.0, 6288.0, 5895.0, 4797.0, 4236.0, + 4014.0, 1664.0, 1493.0, 1194.0, 919.0, 864.0, 494.0, 479.0, + 384.0, 314.0, 239.0, 126.0, 119.0, 60.0, 39.0, + 27.0, 11.0, 5.0, 6.0, // Bk ------------------------------------------------------------- - 131590.0 , 25275.0 , 24385.0 , 19452.0 , 6556.0 , 6147.0 , 4977.0 , 4366.0 , - 4133.0 , 1729.0 , 1554.0 , 1236.0 , 955.0 , 898.0 , 520.0 , 504.0 , - 401.0 , 329.0 , 248.0 , 142.0 , 124.0 , 63.0 , 41.0 , - 27.0 , 12.0 , 6.0 , 4.0 , + 131590.0, 25275.0, 24385.0, 19452.0, 6556.0, 6147.0, 4977.0, 4366.0, + 4133.0, 1729.0, 1554.0, 1236.0, 955.0, 898.0, 520.0, 504.0, + 401.0, 329.0, 248.0, 142.0, 124.0, 63.0, 41.0, + 27.0, 12.0, 6.0, 4.0, // Cf ------------------------------------------------------------- - 135960.0 , 26110.0 , 25250.0 , 19930.0 , 6754.0 , 6359.0 , 5109.0 , 4492.0 , - 4247.0 , 1789.0 , 1610.0 , 1273.0 , 987.0 , 925.0 , 546.0 , 529.0 , - 412.0 , 338.0 , 251.0 , 142.0 , 129.0 , 61.0 , 39.0 , - 25.0 , 9.0 , 6.0 , + 135960.0, 26110.0, 25250.0, 19930.0, 6754.0, 6359.0, 5109.0, 4492.0, + 4247.0, 1789.0, 1610.0, 1273.0, 987.0, 925.0, 546.0, 529.0, + 412.0, 338.0, 251.0, 142.0, 129.0, 61.0, 39.0, + 25.0, 9.0, 6.0, - // Es ------------------------------------------------------------- - 139490.0 , 26900.0 , 26020.0 , 20410.0 , 6977.0 , 6754.0 , 5252.0 , 4630.0 , - 4369.0 , 1857.0 , 1674.0 , 1316.0 , 1024.0 , 959.0 , 573.0 , 554.0 , - 429.0 , 353.0 , 260.0 , 148.0 , 135.0 , 63.0 , 40.0 , - 25.0 , 9.0 , 6.0 , + // Es -------------------------------------------------------------1488 + 139490.0, 26900.0, 26020.0, 20410.0, 6977.0, 6754.0, 5252.0, 4630.0, + 4369.0, 1857.0, 1674.0, 1316.0, 1024.0, 959.0, 573.0, 554.0, + 429.0, 353.0, 260.0, 148.0, 135.0, 63.0, 40.0, + 25.0, 9.0, 6.0, - // Fm ------------------------------------------------------------- - 143090.0 , 27700.0 , 26810.0 , 20900.0 , 7205.0 , 6793.0 , 5397.0 , 4766.0 , - 4498.0 , 1933.0 , 1746.0 , 1366.0 , 1068.0 , 1000.0 , 606.0 , 587.0 , - 453.0 , 375.0 , 275.0 , 160.0 , 145.0 , 69.0 , 45.0 , - 29.0 , 15.0 , 7.0 , + // Fm -------------------------------------------------------------1514 + 143090.0, 27700.0, 26810.0, 20900.0, 7205.0, 6793.0, 5397.0, 4766.0, + 4498.0, 1933.0, 1746.0, 1366.0, 1068.0, 1000.0, 606.0, 587.0, + 453.0, 375.0, 275.0, 160.0, 145.0, 69.0, 45.0, + 29.0, 15.0, 7.0, + // Md --------------------------------------------------------------1540 + 146526.0, 28387.0, 27438.0, 21356.0, 7440.0, 7001.0, 5552.0, 4889.0, + 4615.0, 2024.0, 1816.0, 1424.0, 1105.0, 1034.0, 618.0, 597.0, + 471.0, 389.0, 272.0, 154.0, 137.0, 12.9, 10.5, 61.0, + 37.0, 17.0, 5.9, + + // No --------------------------------------------------------------1567 + 149208.0, 29221.0, 28255.0, 21851.0, 7678.0, 7231.0, 5702.0, 5028.0, + 4741.0, 2097.0, 1885.0, 1469.0, 1145.0, 1070.0, 645.0, 624.0, + 490.0, 406.0, 280.0, 161.0, 142.0, 13.6, 11.1, 63.0, + 38.0, 18.0, 6.0, + + // Lr --------------------------------------------------------------1594 + 152970.0, 30083.0, 29103.0, 22359.0, 7930.0, 7474.0, 5860.0, 5176.0, + 4876.0, 2180.0, 1963.0, 1523.0, 1192.0, 1112.0, 680.0, 658.0, + 516.0, 429.0, 296.0, 174.0, 154.0, 19.9, 17.0, 71.0, + 44.0, 21.0, 3.9, 6.9, + + // Rf --------------------------------------------------------------1622 + 156288.0, 30881.0, 29986.0, 22907.0, 8161.0, 7738.0, 6009.0, 5336.0, + 5014.0, 2237.0, 2035.0, 1554.0, 1233.0, 1149.0, 725.0, 701.0, + 535.0, 448.0, 319.0, 190.0, 171.0, 26.0, 22.8, 82.0, + 55.0, 33.0, 5.0, 7.5 }; const G4int -G4AtomicShells::fNumberOfElectrons[1540] = +G4AtomicShells::fNumberOfElectrons[1650] = { - 0, // Nonexisting zero element + 0, // nonexistent zero element // H --------------------------------------------------------- 1, // He --------------------------------------------------------- @@ -735,7 +751,15 @@ G4AtomicShells::fNumberOfElectrons[1540] = // Es ------------------------------------------------------------- 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, 4,11, 2, // Fm ------------------------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, 4,12, 2 + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, 4,12, 2, + // Md --------------------------------------------------------------- + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 6, 7, 2, 2, 4, 2, //=101 + // No --------------------------------------------------------------- + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 2, //=102 + // Lr --------------------------------------------------------------- + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 1, 2, //=103 + // Rf --------------------------------------------------------------- + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 2, 2 //=104 }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... @@ -744,7 +768,7 @@ G4int G4AtomicShells::GetNumberOfShells(G4int Z) { #ifdef G4VERBOSE - if(Z<0 || Z>100) { Z = PrintErrorZ(Z, "GetNumberOfShells"); } + if(Z<0 || Z>104) { Z = PrintErrorZ(Z, "GetNumberOfShells"); } #endif return fNumberOfShells[Z]; } @@ -755,7 +779,7 @@ G4double G4AtomicShells::GetBindingEnergy(G4int Z, G4int ShellNb) { #ifdef G4VERBOSE - if(Z<0 || Z>100) { Z = PrintErrorZ(Z, "GetBindingEnergy"); } + if(Z<0 || Z>104) { Z = PrintErrorZ(Z, "GetBindingEnergy"); } if(ShellNb < 0 || ShellNb>=fNumberOfShells[Z]) { ShellNb = PrintErrorShell(Z, ShellNb, "GetBindingEnergy"); } @@ -769,7 +793,7 @@ G4int G4AtomicShells::GetNumberOfElectrons(G4int Z, G4int ShellNb) { #ifdef G4VERBOSE - if(Z<0 || Z>100) { Z = PrintErrorZ(Z, "GetNumberOfElectrons"); } + if(Z<0 || Z>104) { Z = PrintErrorZ(Z, "GetNumberOfElectrons"); } if(ShellNb < 0 || ShellNb>=fNumberOfShells[Z]) { ShellNb = PrintErrorShell(Z, ShellNb, "GetNumberOfElectrons"); } @@ -783,7 +807,7 @@ G4int G4AtomicShells::GetNumberOfFreeElectrons(G4int Z, G4double th) { #ifdef G4VERBOSE - if(Z<0 || Z>100) { Z = PrintErrorZ(Z, "GetNumberOfFreeElectrons"); } + if(Z<0 || Z>104) { Z = PrintErrorZ(Z, "GetNumberOfFreeElectrons"); } #endif G4int idx = fIndexOfShells[Z]; G4int idxmax = idx + fNumberOfShells[Z]; @@ -799,7 +823,7 @@ G4AtomicShells::GetNumberOfFreeElectrons(G4int Z, G4double th) G4double G4AtomicShells::GetTotalBindingEnergy(G4int Z) { #ifdef G4VERBOSE - if(Z<0 || Z>100) { Z = PrintErrorZ(Z, "GetTotalBindingEnergy"); } + if(Z<0 || Z>104) { Z = PrintErrorZ(Z, "GetTotalBindingEnergy"); } #endif G4int idx = fIndexOfShells[Z]; G4int idxmax = idx + fNumberOfShells[Z]; diff --git a/source/materials/src/G4AtomicShells_XDB_EADL.cc b/source/materials/src/G4AtomicShells_XDB_EADL.cc index fbf7b9e8ad..ad02a62891 100644 --- a/source/materials/src/G4AtomicShells_XDB_EADL.cc +++ b/source/materials/src/G4AtomicShells_XDB_EADL.cc @@ -44,1186 +44,1159 @@ const G4int G4AtomicShells_XDB_EADL::fNumberOfShells[121] = { - 1 , // nonexistent zero element - - 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, // 1 - 10 - - 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, // 11 - 20 - - 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, // 21 - 30 - - 11, 11, 12, 12, 12, 12, 13, 13, 14, 14, // 31 - 40 - - 14, 15, 15, 15, 15, 14, 15, 15, 16, 16, // 41 - 50 - - 17, 17, 17, 17, 18, 18, 19, 21, 21, 20, // 51 - 60 - - 19, 20, 20, 21, 21, 20, 20, 20, 20, 20, // 61 - 70 - - 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, // 71 - 80 - - 23, 23, 24, 24, 24, 24, 25, 25, 26, 26, // 81 - 90 - - 27, 27, 27, 26, 27, 28, 28, 27, 27, 27, // 91 - 100 - - 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, // 101 - 110 - - 29, 29, 30, 30, 31, 31, 31, 31, 32, 32 + 1, // nonexistent zero element + 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, // 1 - 10 + 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, // 11 - 20 + 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, // 21 - 30 + 11, 11, 12, 12, 12, 12, 13, 13, 14, 14, // 31 - 40 + 14, 15, 15, 15, 15, 14, 15, 15, 16, 16, // 41 - 50 + 17, 17, 17, 17, 18, 18, 19, 21, 21, 20, // 51 - 60 + 19, 20, 20, 21, 21, 20, 20, 20, 20, 20, // 61 - 70 + 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, // 71 - 80 + 23, 23, 24, 24, 24, 24, 25, 25, 26, 26, // 81 - 90 + 27, 27, 27, 26, 27, 28, 28, 27, 27, 27, // 91 - 100 + 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, // 101 - 110 + 29, 29, 30, 30, 31, 31, 31, 31, 32, 32 // 111 - 120 }; - const G4int G4AtomicShells_XDB_EADL::fIndexOfShells[121] = { - 0, // nonexistent zero element - - 1, 2, 3, 5, 7, 10, 13, 17, 21, 25, // 1 - 10 - - 29, 34, 39, 45, 51, 58, 65, 72, 79, 87, // 11 - 20 - - 95, 104, 113, 122, 132, 142, 152, 162, 172, 182, // 21 - 30 - - 192, 203, 214, 226, 238, 250, 262, 275, 288, 302, // 31 - 40 - - 316, 330, 345, 360, 375, 390, 404, 419, 434, 450, // 41 - 50 - - 466, 483, 500, 517, 534, 552, 570, 589, 610, 631, // 51 - 60 - - 651, 670, 690, 710, 731, 752, 772, 792, 812, 832, // 61 - 70 - - 852, 873, 894, 915, 936, 958, 980, 1002, 1024, 1046, // 71 - 80 - - 1068, 1091, 1114, 1138, 1162, 1186, 1210, 1235, 1260, 1286, // 81 - 90 - - 1312, 1339, 1366, 1393, 1419, 1446, 1474, 1502, 1529, 1556, // 91 - 100 - - 1583, 1610, 1637, 1665, 1693, 1721, 1749, 1778, 1807, 1836, // 101 - 110 - - 1865, 1894, 1923, 1953, 1983, 2014, 2045, 2076, 2107, 2139 + 0, // nonexistent zero element + 1, 2, 3, 5, 7, 10, 13, 17, 21, 25, // 1 - 10 + 29, 34, 39, 45, 51, 58, 65, 72, 79, 87, // 11 - 20 + 95, 104, 113, 122, 132, 142, 152, 162, 172, 182, // 21 - 30 + 192, 203, 214, 226, 238, 250, 262, 275, 288, 302, // 31 - 40 + 316, 330, 345, 360, 375, 390, 404, 419, 434, 450, // 41 - 50 + 466, 483, 500, 517, 534, 552, 570, 589, 610, 631, // 51 - 60 + 651, 670, 690, 710, 731, 752, 772, 792, 812, 832, // 61 - 70 + 852, 873, 894, 915, 936, 958, 980, 1002, 1024, 1046, // 71 - 80 + 1068, 1091, 1114, 1138, 1162, 1186, 1210, 1235, 1260, 1286, // 81 - 90 + 1312, 1339, 1366, 1393, 1419, 1446, 1474, 1502, 1529, 1556, // 91 - 100 + 1583, 1610, 1637, 1665, 1693, 1721, 1749, 1778, 1807, 1836, // 101 - 110 + 1865, 1894, 1923, 1953, 1983, 2014, 2045, 2076, 2107, 2139 // 111 - 120 }; - const G4double G4AtomicShells_XDB_EADL::fBindingEnergies[2171] = { - // 0 --------------------------------------------------------------------- - 0.0000, // nonexistent zero element + 0.0, // nonexistent zero element - // H --------------------------------------------------------------------- - 0.0136, + // H --------------------------------------------------------------------- + 0.0136, - // He --------------------------------------------------------------------- - 0.0246, + // He --------------------------------------------------------------------- + 0.0246, - // Li --------------------------------------------------------------------- - 0.0547, 0.0054, + // Li --------------------------------------------------------------------- + 0.0547, 0.0054, - // Be --------------------------------------------------------------------- - 0.1115, 0.0093, + // Be --------------------------------------------------------------------- + 0.1115, 0.0093, - // B --------------------------------------------------------------------- - 0.1880, 0.0126, 0.0047, + // B --------------------------------------------------------------------- + 0.1880, 0.0126, 0.0047, - // C --------------------------------------------------------------------- - 0.2842, 0.0181, 0.0090, + // C --------------------------------------------------------------------- + 0.2842, 0.0181, 0.0090, - // N --------------------------------------------------------------------- - 0.4099, 0.0373, 0.0089, 0.0097, + // N --------------------------------------------------------------------- + 0.4099, 0.0373, 0.0089, 0.0097, - // O --------------------------------------------------------------------- - 0.5431, 0.0416, 0.0068, 0.0074, + // O --------------------------------------------------------------------- + 0.5431, 0.0416, 0.0068, 0.0074, - // F --------------------------------------------------------------------- - 0.6967, 0.0340, 0.0084, 0.0087, + // F --------------------------------------------------------------------- + 0.6967, 0.0340, 0.0084, 0.0087, - // Ne --------------------------------------------------------------------- - 0.8702, 0.0485, 0.0217, 0.0216, + // Ne --------------------------------------------------------------------- + 0.8702, 0.0485, 0.0217, 0.0216, - // Na --------------------------------------------------------------------- - 1.0708, 0.0635, 0.03065, 0.03081, 0.0007, + // Na --------------------------------------------------------------------- + 1.0708, 0.0635, 0.03065, 0.03081, 0.0007, - // Mg --------------------------------------------------------------------- - 1.3030, 0.0887, 0.04978, 0.0495, 0.0021, + // Mg --------------------------------------------------------------------- + 1.3030, 0.0887, 0.04978, 0.0495, 0.0021, - // Al --------------------------------------------------------------------- - 1.5596, 0.1178, 0.07295, 0.07255, 0.0007, 0.0060, + // Al --------------------------------------------------------------------- + 1.5596, 0.1178, 0.07295, 0.07255, 0.0007, 0.0060, - // Si --------------------------------------------------------------------- - 1.8390, 0.1497, 0.09982, 0.09942, 0.0076, 0.0030, + // Si --------------------------------------------------------------------- + 1.8390, 0.1497, 0.09982, 0.09942, 0.0076, 0.0030, - // P --------------------------------------------------------------------- - 2.1455, 0.1890, 0.1360, 0.1350, 0.0162, 0.0096, 0.0101, + // P --------------------------------------------------------------------- + 2.1455, 0.1890, 0.1360, 0.1350, 0.0162, 0.0096, 0.0101, - // S --------------------------------------------------------------------- - 2.4720, 0.2309, 0.1636, 0.1625, 0.0158, 0.0078, 0.0082, + // S --------------------------------------------------------------------- + 2.4720, 0.2309, 0.1636, 0.1625, 0.0158, 0.0078, 0.0082, - // Cl --------------------------------------------------------------------- - 2.8224, 0.2700, 0.2020, 0.2000, 0.0175, 0.0067, 0.0067, + // Cl --------------------------------------------------------------------- + 2.8224, 0.2700, 0.2020, 0.2000, 0.0175, 0.0067, 0.0067, - // Ar --------------------------------------------------------------------- - 3.2059, 0.3263, 0.2506, 0.2484, 0.0293, 0.0159, 0.0157, + // Ar --------------------------------------------------------------------- + 3.2059, 0.3263, 0.2506, 0.2484, 0.0293, 0.0159, 0.0157, - // K --------------------------------------------------------------------- - 3.6084, 0.3786, 0.2973, 0.2946, 0.0348, 0.0183, 0.0183, - 0.0001, + // K --------------------------------------------------------------------- + 3.6084, 0.3786, 0.2973, 0.2946, 0.0348, 0.0183, 0.0183, + 0.0001, - // Ca --------------------------------------------------------------------- - 4.0385, 0.4384, 0.3497, 0.3462, 0.0443, 0.0254, 0.0254, - 0.0018, + // Ca --------------------------------------------------------------------- + 4.0385, 0.4384, 0.3497, 0.3462, 0.0443, 0.0254, 0.0254, + 0.0018, - // Sc --------------------------------------------------------------------- - 4.4920, 0.4980, 0.4036, 0.3987, 0.0511, 0.0283, 0.0283, - 0.0066, 0.0017, + // Sc --------------------------------------------------------------------- + 4.4920, 0.4980, 0.4036, 0.3987, 0.0511, 0.0283, 0.0283, + 0.0066, 0.0017, - // Ti --------------------------------------------------------------------- - 4.9660, 0.5609, 0.4602, 0.4538, 0.0587, 0.0326, 0.0326, - 0.0037, 0.0016, + // Ti --------------------------------------------------------------------- + 4.9660, 0.5609, 0.4602, 0.4538, 0.0587, 0.0326, 0.0326, + 0.0037, 0.0016, - // V --------------------------------------------------------------------- - 5.4650, 0.6267, 0.5198, 0.5121, 0.0663, 0.0372, 0.0372, - 0.0022, 0.0017, + // V --------------------------------------------------------------------- + 5.4650, 0.6267, 0.5198, 0.5121, 0.0663, 0.0372, 0.0372, + 0.0022, 0.0017, - // Cr --------------------------------------------------------------------- - 5.9890, 0.6960, 0.5838, 0.5741, 0.0741, 0.0422, 0.0422, - 0.0029, 0.0022, 0.0010, + // Cr --------------------------------------------------------------------- + 5.9890, 0.6960, 0.5838, 0.5741, 0.0741, 0.0422, 0.0422, + 0.0029, 0.0022, 0.0010, - // Mn --------------------------------------------------------------------- - 6.5390, 0.7691, 0.6499, 0.6387, 0.0823, 0.0472, 0.0472, - 0.0035, 0.0027, 0.0019, + // Mn --------------------------------------------------------------------- + 6.5390, 0.7691, 0.6499, 0.6387, 0.0823, 0.0472, 0.0472, + 0.0035, 0.0027, 0.0019, - // Fe --------------------------------------------------------------------- - 7.1120, 0.8446, 0.7199, 0.7068, 0.0913, 0.0527, 0.0527, - 0.0039, 0.0031, 0.0021, + // Fe --------------------------------------------------------------------- + 7.1120, 0.8446, 0.7199, 0.7068, 0.0913, 0.0527, 0.0527, + 0.0039, 0.0031, 0.0021, - // Co --------------------------------------------------------------------- - 7.7090, 0.9251, 0.7932, 0.7781, 0.1010, 0.0589, 0.0599, - 0.0033, 0.0027, 0.0019, + // Co --------------------------------------------------------------------- + 7.7090, 0.9251, 0.7932, 0.7781, 0.1010, 0.0589, 0.0599, + 0.0033, 0.0027, 0.0019, - // Ni --------------------------------------------------------------------- - 8.3330, 1.0086, 0.8700, 0.8527, 0.1108, 0.0680, 0.0662, - 0.0039, 0.0033, 0.0022, + // Ni --------------------------------------------------------------------- + 8.3330, 1.0086, 0.8700, 0.8527, 0.1108, 0.0680, 0.0662, + 0.0039, 0.0033, 0.0022, - // Cu --------------------------------------------------------------------- - 8.9790, 1.0967, 0.9523, 0.9327, 0.1225, 0.0773, 0.0751, - 0.0018, 0.0015, 0.0012, + // Cu --------------------------------------------------------------------- + 8.9790, 1.0967, 0.9523, 0.9327, 0.1225, 0.0773, 0.0751, + 0.0018, 0.0015, 0.0012, - // Zn --------------------------------------------------------------------- - 9.6590, 1.1962, 1.0449, 1.0218, 0.1398, 0.0914, 0.0886, - 0.0102, 0.0101, 0.0013, + // Zn --------------------------------------------------------------------- + 9.6590, 1.1962, 1.0449, 1.0218, 0.1398, 0.0914, 0.0886, + 0.0102, 0.0101, 0.0013, - // Ga --------------------------------------------------------------------- - 10.3670, 1.2990, 1.1432, 1.1164, 0.1595, 0.1035, 0.1000, - 0.0187, 0.0187, 0.0056, 0.0008, + // Ga --------------------------------------------------------------------- + 10.3670, 1.2990, 1.1432, 1.1164, 0.1595, 0.1035, 0.1000, + 0.0187, 0.0187, 0.0056, 0.0008, - // Ge --------------------------------------------------------------------- - 11.1030, 1.4146, 1.2481, 1.2170, 0.1801, 0.1249, 0.1208, - 0.0298, 0.0292, 0.0090, 0.0023, + // Ge --------------------------------------------------------------------- + 11.1030, 1.4146, 1.2481, 1.2170, 0.1801, 0.1249, 0.1208, + 0.0298, 0.0292, 0.0090, 0.0023, - // As --------------------------------------------------------------------- - 11.8670, 1.5270, 1.3591, 1.3236, 0.2047, 0.1462, 0.1412, - 0.0417, 0.0417, 0.0125, 0.0025, 0.0025, + // As --------------------------------------------------------------------- + 11.8670, 1.5270, 1.3591, 1.3236, 0.2047, 0.1462, 0.1412, + 0.0417, 0.0417, 0.0125, 0.0025, 0.0025, - // Se --------------------------------------------------------------------- - 12.6580, 1.6520, 1.4743, 1.4339, 0.2296, 0.1665, 0.1607, - 0.0555, 0.0546, 0.0162, 0.0056, 0.0056, + // Se --------------------------------------------------------------------- + 12.6580, 1.6520, 1.4743, 1.4339, 0.2296, 0.1665, 0.1607, + 0.0555, 0.0546, 0.0162, 0.0056, 0.0056, - // Br --------------------------------------------------------------------- - 13.4740, 1.7820, 1.5960, 1.5500, 0.2570, 0.1890, 0.1820, - 0.0700, 0.0690, 0.0273, 0.0052, 0.0046, - - // Kr --------------------------------------------------------------------- - 14.3260, 1.9210, 1.7309, 1.6784, 0.2928, 0.2222, 0.2144, - 0.0950, 0.0938, 0.0275, 0.0141, 0.0141, - - // Rb --------------------------------------------------------------------- - 15.2000, 2.0650, 1.8640, 1.8040, 0.3267, 0.2487, 0.2391, - 0.1130, 0.1120, 0.0305, 0.0163, 0.0153, 0.0040, - - // Sr --------------------------------------------------------------------- - 16.1050, 2.2160, 2.0070, 1.9400, 0.3587, 0.2803, 0.2700, - 0.1360, 0.1342, 0.0389, 0.0213, 0.0201, 0.0050, - - // Y --------------------------------------------------------------------- - 17.0380, 2.3730, 2.1560, 2.0800, 0.3920, 0.3106, 0.2988, - 0.1577, 0.1558, 0.0438, 0.0244, 0.0231, 0.0024, 0.0060, - - // Zr --------------------------------------------------------------------- - 17.9980, 2.5320, 2.3070, 2.2230, 0.4303, 0.3435, 0.3298, - 0.1811, 0.1788, 0.0506, 0.0285, 0.0271, 0.0030, 0.0070, - - // Nb --------------------------------------------------------------------- - 18.9860, 2.6980, 2.4650, 2.3710, 0.4666, 0.3761, 0.3606, - 0.2050, 0.2023, 0.0564, 0.0326, 0.0308, 0.0032, 0.0070, - - // Mo --------------------------------------------------------------------- - 20.0000, 2.8660, 2.6250, 2.5200, 0.5063, 0.4116, 0.3940, - 0.2311, 0.2279, 0.0632, 0.0376, 0.0355, 0.0019, 0.0012, - 0.0070, - - // Tc --------------------------------------------------------------------- - 21.0440, 3.0430, 2.7930, 2.6770, 0.5440, 0.4476, 0.4177, - 0.2576, 0.2539, 0.0695, 0.0423, 0.0399, 0.0020, 0.0012, - 0.0070, - - // Ru --------------------------------------------------------------------- - 22.1170, 3.2240, 2.9670, 2.8380, 0.5861, 0.4835, 0.4614, - 0.2842, 0.2800, 0.0750, 0.0463, 0.0432, 0.0024, 0.0018, - 0.0070, - - // Rh --------------------------------------------------------------------- - 23.2200, 3.4120, 3.1460, 3.0040, 0.6281, 0.5213, 0.4965, - 0.3119, 0.3072, 0.0814, 0.0505, 0.0473, 0.0028, 0.0022, - 0.0070, - - // Pd --------------------------------------------------------------------- - 24.3500, 3.6040, 3.3300, 3.1730, 0.6716, 0.5599, 0.5323, - 0.3405, 0.3352, 0.0871, 0.0557, 0.0509, 0.0017, 0.0013, - - // Ag --------------------------------------------------------------------- - 25.5140, 3.8060, 3.5240, 3.3510, 0.7190, 0.6038, 0.5730, - 0.3740, 0.3683, 0.0970, 0.0637, 0.0583, 0.0036, 0.0031, - 0.0080, - - // Cd --------------------------------------------------------------------- - 26.7110, 4.0180, 3.7270, 3.5380, 0.7720, 0.6526, 0.6184, - 0.4119, 0.4052, 0.1098, 0.0639, 0.0639, 0.0117, 0.0107, - 0.0090, - - // In --------------------------------------------------------------------- - 27.9400, 4.2380, 3.9380, 3.7300, 0.8272, 0.7032, 0.6653, - 0.4514, 0.4439, 0.1229, 0.0735, 0.0735, 0.0177, 0.0169, - 0.0001, 0.0008, - - // Sn --------------------------------------------------------------------- - 29.2000, 4.4650, 4.1560, 3.9290, 0.8847, 0.7565, 0.7146, - 0.4932, 0.4849, 0.1371, 0.0836, 0.0836, 0.0249, 0.0239, - 0.0009, 0.0011, - - // Sb --------------------------------------------------------------------- - 30.4910, 4.6980, 4.3800, 4.1320, 0.9460, 0.8127, 0.7664, - 0.5375, 0.5282, 0.1532, 0.0956, 0.0956, 0.0333, 0.0321, - 0.0067, 0.0022, 0.0020, - - // Te --------------------------------------------------------------------- - 31.8140, 4.9390, 4.6120, 4.3410, 1.0060, 0.8708, 0.8200, - 0.5834, 0.5730, 0.1694, 0.1033, 0.1033, 0.0419, 0.0404, - 0.0116, 0.0026, 0.0020, - - // I --------------------------------------------------------------------- - 33.1690, 5.1880, 4.8520, 4.5570, 1.0720, 0.9310, 0.8750, - 0.6308, 0.6193, 0.1860, 0.1230, 0.1230, 0.0506, 0.0489, - 0.0136, 0.0038, 0.0029, - - // Xe --------------------------------------------------------------------- - 34.5610, 5.4530, 5.1070, 4.7860, 1.1487, 1.0021, 0.9406, - 0.6890, 0.6764, 0.2132, 0.1467, 0.1455, 0.0695, 0.0675, - 0.0233, 0.0134, 0.0121, - - // Cs --------------------------------------------------------------------- - 35.9850, 5.7140, 5.3590, 5.0120, 1.2110, 1.0710, 1.0030, - 0.7405, 0.7266, 0.2323, 0.1724, 0.1613, 0.0798, 0.0775, - 0.0227, 0.0142, 0.0121, 0.004, - - // Ba --------------------------------------------------------------------- - 37.4410, 5.9890, 5.6240, 5.2470, 1.2930, 1.1370, 1.0630, - 0.7957, 0.7805, 0.2535, 0.1920, 0.1786, 0.0926, 0.0899, - 0.0303, 0.0170, 0.0148, 0.0050, - - // La --------------------------------------------------------------------- - 38.9250, 6.2660, 5.8910, 5.4830, 1.3620, 1.2090, 1.1280, - 0.8530, 0.8360, 0.2747, 0.2058, 0.1960, 0.1053, 0.1025, - 0.0343, 0.0193, 0.0168, 0.0060, 0.0050, - - // Ce --------------------------------------------------------------------- - 40.4430, 6.5490, 6.1640, 5.7230, 1.4360, 1.2740, 1.1870, - 0.9024, 0.8838, 0.2910, 0.2232, 0.2065, 0.1090, 0.1076, - 0.0001, 0.0001, 0.0378, 0.0198, 0.0170, 0.0060, 0.0050, - - // Pr --------------------------------------------------------------------- - 41.9910, 6.8350, 6.4400, 5.9640, 1.5110, 1.3370, 1.2429, - 0.9483, 0.9288, 0.3045, 0.2363, 0.2176, 0.1151, 0.1151, - 0.0020, 0.0020, 0.0374, 0.0223, 0.0223, 0.0060, 0.0050, - - // Nd --------------------------------------------------------------------- - 43.5690, 7.1260, 6.7220, 6.2080, 1.5750, 1.4030, 1.2970, - 1.0033, 0.9804, 0.3192, 0.2433, 0.2246, 0.1205, 0.1205, - 0.0015, 0.0015, 0.0375, 0.0211, 0.0211, 0.0050, - - // Pm --------------------------------------------------------------------- - 45.1840, 7.4280, 7.0130, 6.4590, 1.6486, 1.4710, 1.3570, - 1.0520, 1.0270, 0.3314, 0.2420, 0.2420, 0.1200, 0.1200, - 0.0035, 0.0360, 0.0245, 0.0201, 0.0050, - - // Sm --------------------------------------------------------------------- - 46.8340, 7.7370, 7.3120, 6.7160, 1.7230, 1.5410, 1.4200, - 1.1109, 1.0834, 0.3472, 0.2656, 0.2474, 0.1290, 0.1290, - 0.0052, 0.0052, 0.0374, 0.0213, 0.0213, 0.0050, - - // Eu --------------------------------------------------------------------- - 48.5190, 8.0520, 7.6170, 6.9770, 1.8000, 1.6140, 1.4810, - 1.1586, 1.1275, 0.3600, 0.2840, 0.2570, 0.1330, 0.1277, - 0.0000, 0.0000, 0.0320, 0.0220, 0.0220, 0.0060, - - // Gd --------------------------------------------------------------------- - 50.2390, 8.3760, 7.9300, 7.2430, 1.8810, 1.6880, 1.5440, - 1.2219, 1.1896, 0.3786, 0.2860, 0.2710, 0.1495, 0.1426, - 0.0086, 0.0086, 0.0360, 0.0280, 0.0210, 0.0060, 0.0060, - - // Tb --------------------------------------------------------------------- - 51.9960, 8.7080, 8.2520, 7.5140, 1.9680, 1.7680, 1.6110, - 1.2769, 1.2411, 0.3960, 0.3224, 0.2841, 0.1505, 0.1505, - 0.0077, 0.0024, 0.0456, 0.0287, 0.0226, 0.0060, 0.0060, - - // Dy --------------------------------------------------------------------- - 53.7890, 9.0460, 8.5810, 7.7900, 2.0470, 1.8420, 1.6760, - 1.3330, 1.2926, 0.4142, 0.3335, 0.2932, 0.1536, 0.1536, - 0.0080, 0.0043, 0.0499, 0.0263, 0.0263, 0.0060, - - // Ho --------------------------------------------------------------------- - 55.6180, 9.3940, 8.9180, 8.0710, 2.1280, 1.9230, 1.7410, - 1.3920, 1.3510, 0.4324, 0.3435, 0.3082, 0.1600, 0.1600, - 0.0086, 0.0052, 0.0493, 0.0308, 0.0241, 0.0060, - - // Er --------------------------------------------------------------------- - 57.4860, 9.7510, 9.2640, 8.3580, 2.2070, 2.0060, 1.8120, - 1.4530, 1.4090, 0.4498, 0.3662, 0.3202, 0.1676, 0.1676, - 0.0053, 0.0047, 0.0506, 0.0314, 0.0247, 0.0060, - - // Tm --------------------------------------------------------------------- - 59.3900, 10.1160, 9.6170, 8.6480, 2.3070, 2.0900, 1.8850, - 1.5150, 1.4680, 0.4709, 0.3859, 0.3326, 0.1755, 0.1755, - 0.0062, 0.0046, 0.0547, 0.0318, 0.0250, 0.0060, - - // Yb --------------------------------------------------------------------- - 61.3320, 10.4860, 9.9780, 8.9440, 2.3980, 2.1730, 1.9500, - 1.5760, 1.5280, 0.4805, 0.3887, 0.3397, 0.1912, 0.1824, - 0.0025, 0.0013, 0.0520, 0.0303, 0.0241, 0.0060, - - // Lu --------------------------------------------------------------------- - 63.3140, 10.8700, 10.3490, 9.2440, 2.4910, 2.2640, 2.0240, - 1.6390, 1.5890, 0.5068, 0.4124, 0.3592, 0.2061, 0.1963, - 0.0089, 0.0075, 0.0573, 0.0336, 0.0267, 0.0046, 0.0070, - - // Hf --------------------------------------------------------------------- - 65.3510, 11.2710, 10.7390, 9.5610, 2.6010, 2.3650, 2.1080, - 1.7160, 1.6620, 0.5380, 0.4382, 0.3807, 0.2200, 0.2115, - 0.0159, 0.0142, 0.0642, 0.0380, 0.0299, 0.0066, 0.0070, - - // Ta --------------------------------------------------------------------- - 67.4160, 11.6820, 11.1360, 9.8810, 2.7080, 2.4690, 2.1940, - 1.7930, 1.7350, 0.5634, 0.4634, 0.4009, 0.2379, 0.2264, - 0.0235, 0.0216, 0.0697, 0.0422, 0.0327, 0.0057, 0.0080, - - // W --------------------------------------------------------------------- - 69.5250, 12.1000, 11.5440, 10.2070, 2.8200, 2.5750, 2.2810, - 1.8720, 1.8090, 0.5941, 0.4904, 0.4236, 0.2559, 0.2435, - 0.0336, 0.0314, 0.0756, 0.0453, 0.0368, 0.0061, 0.0080, - - // Re --------------------------------------------------------------------- - 71.6760, 12.5270, 11.9590, 10.5350, 2.9320, 2.6820, 2.3670, - 1.9490, 1.8830, 0.6254, 0.5187, 0.4468, 0.2739, 0.2605, - 0.0429, 0.0405, 0.0830, 0.0456, 0.0346, 0.0038, 0.0025, - 0.0080, - - // Os --------------------------------------------------------------------- - 73.8710, 12.9680, 12.3850, 10.8710, 3.0490, 2.7920, 2.4570, - 2.0310, 1.9600, 0.6582, 0.5491, 0.4707, 0.2931, 0.2785, - 0.0534, 0.0507, 0.0840, 0.0580, 0.0445, 0.0009, 0.0004, - 0.0080, - - // Ir --------------------------------------------------------------------- - 76.1110, 13.4190, 12.8240, 11.2150, 3.1740, 2.9090, 2.5510, - 2.1160, 2.0400, 0.6911, 0.5778, 0.4958, 0.3119, 0.2963, - 0.0638, 0.0608, 0.0952, 0.0630, 0.0480, 0.0042, 0.0032, - 0.0090, - - // Pt --------------------------------------------------------------------- - 78.3950, 13.8800, 13.2730, 11.5640, 3.2960, 3.0270, 2.6450, - 2.2020, 2.1220, 0.7254, 0.6091, 0.5194, 0.3316, 0.3146, - 0.0745, 0.0712, 0.1017, 0.0653, 0.0517, 0.0028, 0.0014, - 0.0090, - - // Au --------------------------------------------------------------------- - 80.7250, 14.3530, 13.7340, 11.9190, 3.4250, 3.1480, 2.7430, - 2.2910, 2.2060, 0.7621, 0.6427, 0.5463, 0.3532, 0.3351, - 0.0876, 0.0840, 0.1072, 0.0742, 0.0572, 0.0033, 0.0018, - 0.0090, - - // Hg --------------------------------------------------------------------- - 83.1020, 14.8390, 14.2090, 12.2840, 3.5620, 3.2790, 2.8470, - 2.3850, 2.2950, 0.8022, 0.6802, 0.5766, 0.3782, 0.3588, - 0.1040, 0.0999, 0.1270, 0.0831, 0.0645, 0.0096, 0.0078, - 0.0090, - - // Tl -------------------------------------------------------------------- - 85.5300, 15.3470, 14.6980, 12.6580, 3.7040, 3.4160, 2.9570, - 2.4850, 2.3890, 0.8462, 0.7205, 0.6095, 0.4057, 0.3850, - 0.1222, 0.1178, 0.1360, 0.0946, 0.0735, 0.0147, 0.0125, - 0.0060, 0.0008, - - // Pb -------------------------------------------------------------------- - 88.0050, 15.8610, 15.200, 13.0350, 3.8510, 3.5540, 3.0660, - 2.5860, 2.4840, 0.8918, 0.7619, 0.6435, 0.4343, 0.4122, - 0.1417, 0.1369, 0.1470, 0.1064, 0.0833, 0.0207, 0.0181, - 0.0031, 0.0007, - - // Bi -------------------------------------------------------------------- - 90.5240, 16.3880, 15.7110, 13.4190, 3.9990, 3.6960, 3.1770, - 2.6880, 2.5800, 0.9390, 0.8052, 0.6788, 0.4640, 0.4401, - 0.1623, 0.1570, 0.1593, 0.1190, 0.0926, 0.0269, 0.0238, - 0.0075, 0.0012, 0.0002, - - // Po -------------------------------------------------------------------- - 93.1050, 16.9390, 16.2440, 13.8140, 4.1490, 3.8540, 3.3020, - 2.7980, 2.6830, 0.9950, 0.8510, 0.7050, 0.5000, 0.4730, - 0.1840, 0.1840, 0.1770, 0.1320, 0.1040, 0.0310, 0.0310, - 0.0110, 0.0032, 0.0014, - - // At -------------------------------------------------------------------- - 95.7300, 17.4930, 16.7850, 14.2140, 4.3170, 4.0080, 3.4260, - 2.9090, 2.7870, 1.0420, 0.8860, 0.7400, 0.5330, 0.5070, - 0.2100, 0.2100, 0.1950, 0.1480, 0.1150, 0.0400, 0.0400, - 0.0150, 0.0057, 0.0028, - - // Rn -------------------------------------------------------------------- - 98.4040, 18.0490, 17.3370, 14.6190, 4.4820, 4.1590, 3.5380, - 3.0220, 2.8920, 1.0970, 0.9290, 0.7680, 0.5670, 0.5410, - 0.2380, 0.2380, 0.2140, 0.1640, 0.1270, 0.0480, 0.0480, - 0.0260, 0.0076, 0.0041, - - // Fr -------------------------------------------------------------------- - 101.1370, 18.6390, 17.9070, 15.0310, 4.6520, 4.3270, 3.6630, - 3.1360, 3.0000, 1.1530, 0.9800, 0.8100, 0.6030, 0.5770, - 0.2680, 0.2680, 0.2340, 0.1820, 0.1400, 0.0580, 0.0580, - 0.0340, 0.0150, 0.0150, 0.0040, - - // Ra -------------------------------------------------------------------- - 103.9220, 19.2370, 18.4840, 15.4440, 4.8220, 4.4900, 3.7920, - 3.2480, 3.1050, 1.2080, 1.0580, 0.8790, 0.6360, 0.6030, - 0.2990, 0.2990, 0.2540, 0.2000, 0.1530, 0.0680, 0.0680, - 0.0440, 0.0190, 0.0190, 0.0050, - - // Ac -------------------------------------------------------------------- - 106.7550, 19.8400, 19.0830, 15.8710, 5.0020, 4.6560, 3.9090, - 3.3700, 3.2190, 1.2690, 1.0800, 0.8900, 0.6750, 0.6390, - 0.3190, 0.3190, 0.2720, 0.2150, 0.1670, 0.0800, 0.0800, - 0.0398, 0.0241, 0.0170, 0.0060, 0.0060, - - // Th -------------------------------------------------------------------- - 109.6510, 20.4720, 19.6930, 16.3000, 5.1820, 4.8300, 4.0460, - 3.4910, 3.3320, 1.3300, 1.1680, 0.9664, 0.7121, 0.6752, - 0.3424, 0.3331, 0.2900, 0.2290, 0.1820, 0.0925, 0.0854, - 0.0414, 0.0245, 0.0166, 0.0060, 0.0060, - - // Pa -------------------------------------------------------------------- - 112.6010, 21.1050, 20.3140, 16.7330, 5.3670, 5.0010, 4.1740, - 3.6110, 3.4420, 1.3870, 1.2240, 1.0070, 0.7430, 0.7080, - 0.3710, 0.3600, 0.3100, 0.2320, 0.2320, 0.0940, 0.0940, - 0.0060, 0.0467, 0.0281, 0.0189, 0.0060, 0.0060, - - // U -------------------------------------------------------------------- - 115.6060, 21.7570, 20.9480, 17.1660, 5.5480, 5.1820, 4.3030, - 3.7280, 3.5520, 1.4390, 1.2710, 1.0430, 0.7783, 0.7362, - 0.3882, 0.3774, 0.3210, 0.2570, 0.1920, 0.1028, 0.0942, - 0.0060, 0.0439, 0.0268, 0.0168, 0.0060, 0.0060, - - // Np -------------------------------------------------------------------- - 118.6690, 22.4281, 21.6013, 17.6106, 5.7396, 5.3667, 4.4334, - 3.8498, 3.6652, 1.5001, 1.3277, 1.0860, 0.8161, 0.7708, - 0.4143, 0.4034, 0.3398, 0.2834, 0.2062, 0.1093, 0.1012, - 0.0060, 0.0500, 0.0293, 0.0175, 0.0060, 0.0060, - - // Pu -------------------------------------------------------------------- - 121.7910, 23.0978, 22.2668, 18.0570, 5.9329, 5.5412, 4.5566, - 3.9726, 3.7781, 1.5593, 1.3774, 1.1209, 0.8489, 0.8015, - 0.4374, 0.4252, 0.3519, 0.2825, 0.2153, 0.1160, 0.1052, - 0.0060, 0.0486, 0.0306, 0.0184, 0.0060, - - // Am -------------------------------------------------------------------- - 124.9810, 23.8051, 22.9494, 18.5062, 6.1326, 5.7470, 4.7060, - 4.0921, 3.8869, 1.6192, 1.4351, 1.1680, 0.8804, 0.8300, - 0.4633, 0.4490, 0.3730, 0.3030, 0.2164, 0.1180, 0.1079, - 0.0060, 0.0060, 0.0504, 0.0311, 0.0181, 0.0060, - - // Cm -------------------------------------------------------------------- - 128.2000, 24.5200, 23.6600, 18.9700, 6.3350, 5.9400, 4.8500, - 4.2300, 4.0150, 1.6850, 1.4950, 1.2050, 0.9250, 0.8700, - 0.4950, 0.4850, 0.3970, 0.2350, 0.1350, 0.1200, 0.0920, - 0.0060, 0.0060, 0.0670, 0.0500, 0.0060, 0.0060, 0.0970, - - // Bk -------------------------------------------------------------------- - 131.6000, 25.2600, 24.3800, 19.4400, 6.5450, 6.1450, 4.9900, - 4.3600, 4.1350, 1.7450, 1.5550, 1.2450, 0.9600, 0.9000, - 0.5250, 0.5100, 0.4150, 0.3300, 0.2430, 0.1400, 0.1250, - 0.0060, 0.0060, 0.0960, 0.0700, 0.0500, 0.0044, 0.0060, - - // Cf -------------------------------------------------------------------- - 135.0000, 26.0100, 25.1200, 19.9100, 6.7550, 6.3500, 5.1350, - 4.4950, 4.2600, 1.8100, 1.6150, 1.2850, 0.9950, 0.9300, - 0.5550, 0.5400, 0.4300, 0.3450, 0.2500, 0.1450, 0.1300, - 0.0060, 0.0060, 0.1000, 0.0700, 0.0500, 0.006, - - // Es -------------------------------------------------------------------- - 138.4000, 26.7800, 25.8800, 20.3900, 6.9750, 6.5600, 5.2800, - 4.6300, 4.3850, 1.8750, 1.6750, 1.3250, 1.0300, 0.9650, - 0.5850, 0.5700, 0.4450, 0.3600, 0.2600, 0.1550, 0.1350, - 0.0060, 0.0060, 0.1000, 0.0700, 0.0500, 0.0060, - - // Fm -------------------------------------------------------------------- - 142.0000, 27.5700, 26.6600, 20.8700, 7.2000, 6.7800, 5.4250, - 4.7650, 4.5100, 1.9400, 1.7400, 1.3700, 1.0650, 1.0000, - 0.6150, 0.6000, 0.4600, 0.3750, 0.2700, 0.1650, 0.1400, - 0.0060, 0.0060, 0.1000, 0.0800, 0.0500, 0.0060, - - // Md -------------------------------------------------------------------- - 145.6000, 28.3800, 27.4600, 21.3600, 7.4300, 7.0000, 5.5750, - 4.9050, 4.6330, 2.0050, 1.8050, 1.4150, 1.1050, 1.0350, - 0.6450, 0.6300, 0.4800, 0.3900, 0.2800, 0.1750, 0.1450, - 0.0070, 0.0070, 0.1100, 0.0800, 0.0500, 0.0060, - - // No -------------------------------------------------------------------- - 149.3000, 29.2220, 28.2800, 21.8500, 7.6700, 7.2300, 5.7300, - 5.0500, 4.7650, 2.0750, 1.8750, 1.4600, 1.1450, 1.0700, - 0.6800, 0.6500, 0.5000, 0.4100, 0.2900, 0.1850, 0.1550, - 0.0100, 0.0100, 0.1100, 0.0800, 0.0500, 0.0060, - - // Lr -------------------------------------------------------------------- - 153.0000, 30.0800, 29.1300, 22.3500, 7.9200, 7.4700, 5.8900, - 5.2000, 4.9000, 2.1500, 1.9500, 1.5050, 1.1900, 1.1100, - 0.7200, 0.6900, 0.5200, 0.4300, 0.3000, 0.2000, 0.1600, - 0.0150, 0.0150, 0.1200, 0.0900, 0.0600, 0.0070, 0.0070, - - // Rf -------------------------------------------------------------------- - 156.9000, 30.9600, 30.0000, 22.8600, 8.1700, 7.7200, 6.0550, - 5.3500, 5.0400, 2.2250, 2.0250, 1.5550, 1.2350, 1.1500, - 0.7600, 0.7200, 0.5400, 0.4550, 0.3150, 0.2150, 0.1700, - 0.0200, 0.0200, 0.1200, 0.0900, 0.0600, 0.0080, 0.0080, - - // Db -------------------------------------------------------------------- - 160.8000, 31.8700, 30.9000, 23.3800, 8.4300, 7.9800, 6.6250, - 5.5050, 5.1850, 2.3050, 2.1050, 1.6050, 1.2800, 1.1900, - 0.8000, 0.7500, 0.5600, 0.4800, 0.3300, 0.2300, 0.1800, - 0.0250, 0.0250, 0.1300, 0.1000, 0.0600, 0.0090, 0.0080, - - // Sg -------------------------------------------------------------------- - 164.9000, 32.8000, 31.8200, 23.9100, 8.7000, 8.2400, 6.4000, - 5.6650, 5.3300, 2.3850, 2.1900, 1.6600, 1.3250, 1.2350, - 0.8400, 0.7800, 0.5850, 0.5050, 0.3450, 0.2450, 0.1900, - 0.0300, 0.0300, 0.1400, 0.1100, 0.0600, 0.0090, 0.0080, - - // Bh -------------------------------------------------------------------- - 169.0000, 33.7600, 32.7700, 24.4400, 8.9800, 8.5100, 6.5800, - 5.8300, 5.4750, 2.4700, 2.2750, 1.7150, 1.3700, 1.2800, - 0.8800, 0.8200, 0.6100, 0.5300, 0.3600, 0.2600, 0.2000, - 0.0400, 0.0400, 0.1400, 0.1100, 0.0700, 0.0100, 0.0100, - 0.0090, - - // Hs -------------------------------------------------------------------- - 173.2000, 34.7500, 33.7400, 24.9200, 9.2700, 8.7900, 6.7600, - 5.9950, 5.6200, 2.5550, 2.3650, 1.7700, 1.4200, 1.3250, - 0.9200, 0.8600, 0.6350, 0.5550, 0.3750, 0.2750, 0.2100, - 0.0500, 0.0500, 0.1500, 0.1200, 0.0700, 0.0100, 0.0100, - 0.0090, - - // Mt -------------------------------------------------------------------- - 177.6000, 35.7700, 34.7400, 25.5200, 9.5700, 9.0800, 6.9400, - 6.1600, 5.7700, 2.6450, 2.4600, 1.8250, 1.4700, 1.3700, - 0.9600, 0.9000, 0.6600, 0.5800, 0.3900, 0.2900, 0.2200, - 0.0600, 0.0600, 0.1600, 0.1200, 0.0700, 0.0100, 0.0100, - 0.0100, - - // Ds -------------------------------------------------------------------- - 182.0000, 36.8100, 35.7700, 26.0700, 9.8700, 9.3700, 7.1200, - 6.3300, 5.9200, 2.7350, 2.5600, 1.8800, 1.5200, 1.4150, - 1.0000, 0.9400, 0.6900, 0.6100, 0.4050, 0.3050, 0.2300, - 0.0700, 0.0700, 0.1600, 0.1300, 0.0800, 0.0100, 0.0100, - 0.0100, - - // Rg -------------------------------------------------------------------- - 186.1360, 37.8810, 36.7990, 26.6480, 10.1870, 9.6870, 7.2240, - 6.4470, 6.0250, 2.9260, 2.6730, 1.9780, 1.5970, 1.4830, - 0.9604, 0.9267, 0.7283, 0.6450, 0.2810, 0.2510, 0.2445, - 0.0671, 0.0614, 0.1267, 0.0901, 0.0498, 0.0094, 0.0066, - 0.0094, - - // Cp -------------------------------------------------------------------- - 190.7170, 38.9840, 37.8960, 27.2130, 10.5080, 10.0020, 7.4060, - 6.6180, 6.1780, 3.0330, 2.7760, 2.0390, 1.6520, 1.5320, - 1.0016, 0.9662, 0.7624, 0.6770, 0.2960, 0.2650, 0.2577, - 0.0753, 0.0690, 0.1349, 0.0969, 0.0528, 0.0104, 0.0073, - 0.0098, - - // Uut -------------------------------------------------------------------- - 195.4100, 40.1210, 39.0340, 27.7880, 10.8420, 10.3310, 7.5930, - 6.7930, 6.3350, 3.1460, 2.8860, 2.1070, 1.7120, 1.5870, - 1.0464, 1.0092, 0.8006, 0.7140, 0.3150, 0.2820, 0.2740, - 0.0866, 0.0798, 0.1464, 0.1069, 0.0586, 0.0138, 0.0101, - 0.0116, 0.0049, - - // Fl -------------------------------------------------------------------- - 200.2140, 41.2940, 40.2070, 28.3700, 11.1840, 10.6720, 7.7830, - 6.9720, 6.4950, 3.2640, 2.9990, 2.1740, 1.7740, 1.6420, - 1.0923, 1.0533, 0.8409, 0.7530, 0.3350, 0.3000, 0.2910, - 0.0984, 0.0911, 0.1583, 0.1174, 0.0646, 0.0173, 0.0130, - 0.0135, 0.0057, - - // Uup -------------------------------------------------------------------- - 205.1360, 42.5010, 41.4200, 28.9590, 11.5410, 11.0220, 7.9790, - 7.1550, 6.6580, 3.3860, 3.1180, 2.2450, 1.8380, 1.7010, - 1.1410, 1.1000, 0.8831, 0.7940, 0.3570, 0.3200, 0.3100, - 0.1124, 0.1045, 0.1726, 0.1301, 0.0724, 0.0227, 0.0177, - 0.0169, 0.0078, 0.0038, - - // Lv -------------------------------------------------------------------- - 210.1770, 43.7500, 42.6740, 29.5560, 11.9070, 11.3870, 8.1760, - 7.3410, 6.8240, 3.5130, 3.2410, 2.3160, 1.9030, 1.7590, - 1.1907, 1.1477, 0.9275, 0.8380, 0.3790, 0.3400, 0.3296, - 0.1269, 0.1184, 0.1874, 0.1434, 0.0805, 0.0282, 0.0226, - 0.0203, 0.0101, 0.0044, - - // Uus -------------------------------------------------------------------- - 215.3370, 44.0310, 43.9750, 30.1580, 12.2830, 11.7620, 8.3760, - 7.5300, 6.9910, 3.6430, 3.4690, 2.3900, 1.9700, 1.8190, - 1.2413, 1.1962, 0.9733, 0.8820, 0.4020, 0.3610, 0.3496, - 0.1417, 0.1327, 0.2026, 0.1571, 0.0886, 0.0337, 0.0275, - 0.0237, 0.0124, 0.0052, - - // Uuo -------------------------------------------------------------------- - 220.6300, 46.3540, 45.3540, 30.7670, 12.6700, 12.1510, 8.5790, - 7.7200, 7.1610, 3.7780, 3.5000, 2.4640, 2.0370, 1.8800, - 1.2928, 1.2455, 1.0205, 0.9280, 0.4250, 0.3820, 0.3699, - 0.1570, 0.1472, 0.2183, 0.1714, 0.0968, 0.0394, 0.0324, - 0.0272, 0.0149, 0.0060, - - // Uue -------------------------------------------------------------------- - 226.0630, 47.7240, 46.7140, 31.3860, 13.0740, 12.5560, 8.7890, - 7.9180, 7.3360, 3.9200, 3.6390, 2.5430, 2.1090, 1.9440, - 1.3476, 1.2982, 1.0720, 0.9800, 0.4520, 0.4060, 0.3931, - 0.1751, 0.1646, 0.2371, 0.1887, 0.1075, 0.0476, 0.0399, - 0.0331, 0.0197, 0.0084, 0.0036, - - // Ubn -------------------------------------------------------------------- - 231.6340, 49.1390, 48.1580, 32.0130, 13.4890, 12.9750, 9.0000, - 8.1170, 7.5130, 4.0660, 3.7840, 2.6220, 2.1820, 2.0100, - 1.4040, 1.3523, 1.1256, 1.0330, 0.4790, 0.4310, 0.4173, - 0.1941, 0.1830, 0.2570, 0.2071, 0.1190, 0.0565, 0.0479, - 0.0396, 0.0251, 0.0113, 0.0042 + // Br --------------------------------------------------------------------- + 13.4740, 1.7820, 1.5960, 1.5500, 0.2570, 0.1890, 0.1820, + 0.0700, 0.0690, 0.0273, 0.0052, 0.0046, + + // Kr --------------------------------------------------------------------- + 14.3260, 1.9210, 1.7309, 1.6784, 0.2928, 0.2222, 0.2144, + 0.0950, 0.0938, 0.0275, 0.0141, 0.0141, + + // Rb --------------------------------------------------------------------- + 15.2000, 2.0650, 1.8640, 1.8040, 0.3267, 0.2487, 0.2391, + 0.1130, 0.1120, 0.0305, 0.0163, 0.0153, 0.0040, + + // Sr --------------------------------------------------------------------- + 16.1050, 2.2160, 2.0070, 1.9400, 0.3587, 0.2803, 0.2700, + 0.1360, 0.1342, 0.0389, 0.0213, 0.0201, 0.0050, + + // Y --------------------------------------------------------------------- + 17.0380, 2.3730, 2.1560, 2.0800, 0.3920, 0.3106, 0.2988, + 0.1577, 0.1558, 0.0438, 0.0244, 0.0231, 0.0024, 0.0060, + + // Zr --------------------------------------------------------------------- + 17.9980, 2.5320, 2.3070, 2.2230, 0.4303, 0.3435, 0.3298, + 0.1811, 0.1788, 0.0506, 0.0285, 0.0271, 0.0030, 0.0070, + + // Nb --------------------------------------------------------------------- + 18.9860, 2.6980, 2.4650, 2.3710, 0.4666, 0.3761, 0.3606, + 0.2050, 0.2023, 0.0564, 0.0326, 0.0308, 0.0032, 0.0070, + + // Mo --------------------------------------------------------------------- + 20.0000, 2.8660, 2.6250, 2.5200, 0.5063, 0.4116, 0.3940, + 0.2311, 0.2279, 0.0632, 0.0376, 0.0355, 0.0019, 0.0012, + 0.0070, + + // Tc --------------------------------------------------------------------- + 21.0440, 3.0430, 2.7930, 2.6770, 0.5440, 0.4476, 0.4177, + 0.2576, 0.2539, 0.0695, 0.0423, 0.0399, 0.0020, 0.0012, + 0.0070, + + // Ru --------------------------------------------------------------------- + 22.1170, 3.2240, 2.9670, 2.8380, 0.5861, 0.4835, 0.4614, + 0.2842, 0.2800, 0.0750, 0.0463, 0.0432, 0.0024, 0.0018, + 0.0070, + + // Rh --------------------------------------------------------------------- + 23.2200, 3.4120, 3.1460, 3.0040, 0.6281, 0.5213, 0.4965, + 0.3119, 0.3072, 0.0814, 0.0505, 0.0473, 0.0028, 0.0022, + 0.0070, + + // Pd --------------------------------------------------------------------- + 24.3500, 3.6040, 3.3300, 3.1730, 0.6716, 0.5599, 0.5323, + 0.3405, 0.3352, 0.0871, 0.0557, 0.0509, 0.0017, 0.0013, + + // Ag --------------------------------------------------------------------- + 25.5140, 3.8060, 3.5240, 3.3510, 0.7190, 0.6038, 0.5730, + 0.3740, 0.3683, 0.0970, 0.0637, 0.0583, 0.0036, 0.0031, + 0.0080, + + // Cd --------------------------------------------------------------------- + 26.7110, 4.0180, 3.7270, 3.5380, 0.7720, 0.6526, 0.6184, + 0.4119, 0.4052, 0.1098, 0.0639, 0.0639, 0.0117, 0.0107, + 0.0090, + + // In --------------------------------------------------------------------- + 27.9400, 4.2380, 3.9380, 3.7300, 0.8272, 0.7032, 0.6653, + 0.4514, 0.4439, 0.1229, 0.0735, 0.0735, 0.0177, 0.0169, + 0.0001, 0.0008, + + // Sn --------------------------------------------------------------------- + 29.2000, 4.4650, 4.1560, 3.9290, 0.8847, 0.7565, 0.7146, + 0.4932, 0.4849, 0.1371, 0.0836, 0.0836, 0.0249, 0.0239, + 0.0009, 0.0011, + + // Sb --------------------------------------------------------------------- + 30.4910, 4.6980, 4.3800, 4.1320, 0.9460, 0.8127, 0.7664, + 0.5375, 0.5282, 0.1532, 0.0956, 0.0956, 0.0333, 0.0321, + 0.0067, 0.0022, 0.0020, + + // Te --------------------------------------------------------------------- + 31.8140, 4.9390, 4.6120, 4.3410, 1.0060, 0.8708, 0.8200, + 0.5834, 0.5730, 0.1694, 0.1033, 0.1033, 0.0419, 0.0404, + 0.0116, 0.0026, 0.0020, + + // I --------------------------------------------------------------------- + 33.1690, 5.1880, 4.8520, 4.5570, 1.0720, 0.9310, 0.8750, + 0.6308, 0.6193, 0.1860, 0.1230, 0.1230, 0.0506, 0.0489, + 0.0136, 0.0038, 0.0029, + + // Xe --------------------------------------------------------------------- + 34.5610, 5.4530, 5.1070, 4.7860, 1.1487, 1.0021, 0.9406, + 0.6890, 0.6764, 0.2132, 0.1467, 0.1455, 0.0695, 0.0675, + 0.0233, 0.0134, 0.0121, + + // Cs --------------------------------------------------------------------- + 35.9850, 5.7140, 5.3590, 5.0120, 1.2110, 1.0710, 1.0030, + 0.7405, 0.7266, 0.2323, 0.1724, 0.1613, 0.0798, 0.0775, + 0.0227, 0.0142, 0.0121, 0.004, + + // Ba --------------------------------------------------------------------- + 37.4410, 5.9890, 5.6240, 5.2470, 1.2930, 1.1370, 1.0630, + 0.7957, 0.7805, 0.2535, 0.1920, 0.1786, 0.0926, 0.0899, + 0.0303, 0.0170, 0.0148, 0.0050, + + // La --------------------------------------------------------------------- + 38.9250, 6.2660, 5.8910, 5.4830, 1.3620, 1.2090, 1.1280, + 0.8530, 0.8360, 0.2747, 0.2058, 0.1960, 0.1053, 0.1025, + 0.0343, 0.0193, 0.0168, 0.0060, 0.0050, + + // Ce --------------------------------------------------------------------- + 40.4430, 6.5490, 6.1640, 5.7230, 1.4360, 1.2740, 1.1870, + 0.9024, 0.8838, 0.2910, 0.2232, 0.2065, 0.1090, 0.1076, + 0.0001, 0.0001, 0.0378, 0.0198, 0.0170, 0.0060, 0.0050, + + // Pr --------------------------------------------------------------------- + 41.9910, 6.8350, 6.4400, 5.9640, 1.5110, 1.3370, 1.2429, + 0.9483, 0.9288, 0.3045, 0.2363, 0.2176, 0.1151, 0.1151, + 0.0020, 0.0020, 0.0374, 0.0223, 0.0223, 0.0060, 0.0050, + + // Nd --------------------------------------------------------------------- + 43.5690, 7.1260, 6.7220, 6.2080, 1.5750, 1.4030, 1.2970, + 1.0033, 0.9804, 0.3192, 0.2433, 0.2246, 0.1205, 0.1205, + 0.0015, 0.0015, 0.0375, 0.0211, 0.0211, 0.0050, + + // Pm --------------------------------------------------------------------- + 45.1840, 7.4280, 7.0130, 6.4590, 1.6486, 1.4710, 1.3570, + 1.0520, 1.0270, 0.3314, 0.2420, 0.2420, 0.1200, 0.1200, + 0.0035, 0.0360, 0.0245, 0.0201, 0.0050, + + // Sm --------------------------------------------------------------------- + 46.8340, 7.7370, 7.3120, 6.7160, 1.7230, 1.5410, 1.4200, + 1.1109, 1.0834, 0.3472, 0.2656, 0.2474, 0.1290, 0.1290, + 0.0052, 0.0052, 0.0374, 0.0213, 0.0213, 0.0050, + + // Eu --------------------------------------------------------------------- + 48.5190, 8.0520, 7.6170, 6.9770, 1.8000, 1.6140, 1.4810, + 1.1586, 1.1275, 0.3600, 0.2840, 0.2570, 0.1330, 0.1277, + 0.0000, 0.0000, 0.0320, 0.0220, 0.0220, 0.0060, + + // Gd --------------------------------------------------------------------- + 50.2390, 8.3760, 7.9300, 7.2430, 1.8810, 1.6880, 1.5440, + 1.2219, 1.1896, 0.3786, 0.2860, 0.2710, 0.1495, 0.1426, + 0.0086, 0.0086, 0.0360, 0.0280, 0.0210, 0.0060, 0.0060, + + // Tb --------------------------------------------------------------------- + 51.9960, 8.7080, 8.2520, 7.5140, 1.9680, 1.7680, 1.6110, + 1.2769, 1.2411, 0.3960, 0.3224, 0.2841, 0.1505, 0.1505, + 0.0077, 0.0024, 0.0456, 0.0287, 0.0226, 0.0060, 0.0060, + + // Dy --------------------------------------------------------------------- + 53.7890, 9.0460, 8.5810, 7.7900, 2.0470, 1.8420, 1.6760, + 1.3330, 1.2926, 0.4142, 0.3335, 0.2932, 0.1536, 0.1536, + 0.0080, 0.0043, 0.0499, 0.0263, 0.0263, 0.0060, + + // Ho --------------------------------------------------------------------- + 55.6180, 9.3940, 8.9180, 8.0710, 2.1280, 1.9230, 1.7410, + 1.3920, 1.3510, 0.4324, 0.3435, 0.3082, 0.1600, 0.1600, + 0.0086, 0.0052, 0.0493, 0.0308, 0.0241, 0.0060, + + // Er --------------------------------------------------------------------- + 57.4860, 9.7510, 9.2640, 8.3580, 2.2070, 2.0060, 1.8120, + 1.4530, 1.4090, 0.4498, 0.3662, 0.3202, 0.1676, 0.1676, + 0.0053, 0.0047, 0.0506, 0.0314, 0.0247, 0.0060, + + // Tm --------------------------------------------------------------------- + 59.3900, 10.1160, 9.6170, 8.6480, 2.3070, 2.0900, 1.8850, + 1.5150, 1.4680, 0.4709, 0.3859, 0.3326, 0.1755, 0.1755, + 0.0062, 0.0046, 0.0547, 0.0318, 0.0250, 0.0060, + + // Yb --------------------------------------------------------------------- + 61.3320, 10.4860, 9.9780, 8.9440, 2.3980, 2.1730, 1.9500, + 1.5760, 1.5280, 0.4805, 0.3887, 0.3397, 0.1912, 0.1824, + 0.0025, 0.0013, 0.0520, 0.0303, 0.0241, 0.0060, + + // Lu --------------------------------------------------------------------- + 63.3140, 10.8700, 10.3490, 9.2440, 2.4910, 2.2640, 2.0240, + 1.6390, 1.5890, 0.5068, 0.4124, 0.3592, 0.2061, 0.1963, + 0.0089, 0.0075, 0.0573, 0.0336, 0.0267, 0.0046, 0.0070, + + // Hf --------------------------------------------------------------------- + 65.3510, 11.2710, 10.7390, 9.5610, 2.6010, 2.3650, 2.1080, + 1.7160, 1.6620, 0.5380, 0.4382, 0.3807, 0.2200, 0.2115, + 0.0159, 0.0142, 0.0642, 0.0380, 0.0299, 0.0066, 0.0070, + + // Ta --------------------------------------------------------------------- + 67.4160, 11.6820, 11.1360, 9.8810, 2.7080, 2.4690, 2.1940, + 1.7930, 1.7350, 0.5634, 0.4634, 0.4009, 0.2379, 0.2264, + 0.0235, 0.0216, 0.0697, 0.0422, 0.0327, 0.0057, 0.0080, + + // W --------------------------------------------------------------------- + 69.5250, 12.1000, 11.5440, 10.2070, 2.8200, 2.5750, 2.2810, + 1.8720, 1.8090, 0.5941, 0.4904, 0.4236, 0.2559, 0.2435, + 0.0336, 0.0314, 0.0756, 0.0453, 0.0368, 0.0061, 0.0080, + + // Re --------------------------------------------------------------------- + 71.6760, 12.5270, 11.9590, 10.5350, 2.9320, 2.6820, 2.3670, + 1.9490, 1.8830, 0.6254, 0.5187, 0.4468, 0.2739, 0.2605, + 0.0429, 0.0405, 0.0830, 0.0456, 0.0346, 0.0038, 0.0025, + 0.0080, + + // Os --------------------------------------------------------------------- + 73.8710, 12.9680, 12.3850, 10.8710, 3.0490, 2.7920, 2.4570, + 2.0310, 1.9600, 0.6582, 0.5491, 0.4707, 0.2931, 0.2785, + 0.0534, 0.0507, 0.0840, 0.0580, 0.0445, 0.0009, 0.0004, + 0.0080, + + // Ir --------------------------------------------------------------------- + 76.1110, 13.4190, 12.8240, 11.2150, 3.1740, 2.9090, 2.5510, + 2.1160, 2.0400, 0.6911, 0.5778, 0.4958, 0.3119, 0.2963, + 0.0638, 0.0608, 0.0952, 0.0630, 0.0480, 0.0042, 0.0032, + 0.0090, + + // Pt --------------------------------------------------------------------- + 78.3950, 13.8800, 13.2730, 11.5640, 3.2960, 3.0270, 2.6450, + 2.2020, 2.1220, 0.7254, 0.6091, 0.5194, 0.3316, 0.3146, + 0.0745, 0.0712, 0.1017, 0.0653, 0.0517, 0.0028, 0.0014, + 0.0090, + + // Au --------------------------------------------------------------------- + 80.7250, 14.3530, 13.7340, 11.9190, 3.4250, 3.1480, 2.7430, + 2.2910, 2.2060, 0.7621, 0.6427, 0.5463, 0.3532, 0.3351, + 0.0876, 0.0840, 0.1072, 0.0742, 0.0572, 0.0033, 0.0018, + 0.0090, + + // Hg --------------------------------------------------------------------- + 83.1020, 14.8390, 14.2090, 12.2840, 3.5620, 3.2790, 2.8470, + 2.3850, 2.2950, 0.8022, 0.6802, 0.5766, 0.3782, 0.3588, + 0.1040, 0.0999, 0.1270, 0.0831, 0.0645, 0.0096, 0.0078, + 0.0090, + + // Tl -------------------------------------------------------------------- + 85.5300, 15.3470, 14.6980, 12.6580, 3.7040, 3.4160, 2.9570, + 2.4850, 2.3890, 0.8462, 0.7205, 0.6095, 0.4057, 0.3850, + 0.1222, 0.1178, 0.1360, 0.0946, 0.0735, 0.0147, 0.0125, + 0.0060, 0.0008, + + // Pb -------------------------------------------------------------------- + 88.0050, 15.8610, 15.200, 13.0350, 3.8510, 3.5540, 3.0660, + 2.5860, 2.4840, 0.8918, 0.7619, 0.6435, 0.4343, 0.4122, + 0.1417, 0.1369, 0.1470, 0.1064, 0.0833, 0.0207, 0.0181, + 0.0031, 0.0007, + + // Bi -------------------------------------------------------------------- + 90.5240, 16.3880, 15.7110, 13.4190, 3.9990, 3.6960, 3.1770, + 2.6880, 2.5800, 0.9390, 0.8052, 0.6788, 0.4640, 0.4401, + 0.1623, 0.1570, 0.1593, 0.1190, 0.0926, 0.0269, 0.0238, + 0.0075, 0.0012, 0.0002, + + // Po -------------------------------------------------------------------- + 93.1050, 16.9390, 16.2440, 13.8140, 4.1490, 3.8540, 3.3020, + 2.7980, 2.6830, 0.9950, 0.8510, 0.7050, 0.5000, 0.4730, + 0.1840, 0.1840, 0.1770, 0.1320, 0.1040, 0.0310, 0.0310, + 0.0110, 0.0032, 0.0014, + + // At -------------------------------------------------------------------- + 95.7300, 17.4930, 16.7850, 14.2140, 4.3170, 4.0080, 3.4260, + 2.9090, 2.7870, 1.0420, 0.8860, 0.7400, 0.5330, 0.5070, + 0.2100, 0.2100, 0.1950, 0.1480, 0.1150, 0.0400, 0.0400, + 0.0150, 0.0057, 0.0028, + + // Rn -------------------------------------------------------------------- + 98.4040, 18.0490, 17.3370, 14.6190, 4.4820, 4.1590, 3.5380, + 3.0220, 2.8920, 1.0970, 0.9290, 0.7680, 0.5670, 0.5410, + 0.2380, 0.2380, 0.2140, 0.1640, 0.1270, 0.0480, 0.0480, + 0.0260, 0.0076, 0.0041, + + // Fr -------------------------------------------------------------------- + 101.1370, 18.6390, 17.9070, 15.0310, 4.6520, 4.3270, 3.6630, + 3.1360, 3.0000, 1.1530, 0.9800, 0.8100, 0.6030, 0.5770, + 0.2680, 0.2680, 0.2340, 0.1820, 0.1400, 0.0580, 0.0580, + 0.0340, 0.0150, 0.0150, 0.0040, + + // Ra -------------------------------------------------------------------- + 103.9220, 19.2370, 18.4840, 15.4440, 4.8220, 4.4900, 3.7920, + 3.2480, 3.1050, 1.2080, 1.0580, 0.8790, 0.6360, 0.6030, + 0.2990, 0.2990, 0.2540, 0.2000, 0.1530, 0.0680, 0.0680, + 0.0440, 0.0190, 0.0190, 0.0050, + + // Ac -------------------------------------------------------------------- + 106.7550, 19.8400, 19.0830, 15.8710, 5.0020, 4.6560, 3.9090, + 3.3700, 3.2190, 1.2690, 1.0800, 0.8900, 0.6750, 0.6390, + 0.3190, 0.3190, 0.2720, 0.2150, 0.1670, 0.0800, 0.0800, + 0.0398, 0.0241, 0.0170, 0.0060, 0.0060, + + // Th -------------------------------------------------------------------- + 109.6510, 20.4720, 19.6930, 16.3000, 5.1820, 4.8300, 4.0460, + 3.4910, 3.3320, 1.3300, 1.1680, 0.9664, 0.7121, 0.6752, + 0.3424, 0.3331, 0.2900, 0.2290, 0.1820, 0.0925, 0.0854, + 0.0414, 0.0245, 0.0166, 0.0060, 0.0060, + + // Pa -------------------------------------------------------------------- + 112.6010, 21.1050, 20.3140, 16.7330, 5.3670, 5.0010, 4.1740, + 3.6110, 3.4420, 1.3870, 1.2240, 1.0070, 0.7430, 0.7080, + 0.3710, 0.3600, 0.3100, 0.2320, 0.2320, 0.0940, 0.0940, + 0.0060, 0.0467, 0.0281, 0.0189, 0.0060, 0.0060, + + // U -------------------------------------------------------------------- + 115.6060, 21.7570, 20.9480, 17.1660, 5.5480, 5.1820, 4.3030, + 3.7280, 3.5520, 1.4390, 1.2710, 1.0430, 0.7783, 0.7362, + 0.3882, 0.3774, 0.3210, 0.2570, 0.1920, 0.1028, 0.0942, + 0.0060, 0.0439, 0.0268, 0.0168, 0.0060, 0.0060, + + // Np -------------------------------------------------------------------- + 118.6690, 22.4281, 21.6013, 17.6106, 5.7396, 5.3667, 4.4334, + 3.8498, 3.6652, 1.5001, 1.3277, 1.0860, 0.8161, 0.7708, + 0.4143, 0.4034, 0.3398, 0.2834, 0.2062, 0.1093, 0.1012, + 0.0060, 0.0500, 0.0293, 0.0175, 0.0060, 0.0060, + + // Pu -------------------------------------------------------------------- + 121.7910, 23.0978, 22.2668, 18.0570, 5.9329, 5.5412, 4.5566, + 3.9726, 3.7781, 1.5593, 1.3774, 1.1209, 0.8489, 0.8015, + 0.4374, 0.4252, 0.3519, 0.2825, 0.2153, 0.1160, 0.1052, + 0.0060, 0.0486, 0.0306, 0.0184, 0.0060, + + // Am -------------------------------------------------------------------- + 124.9810, 23.8051, 22.9494, 18.5062, 6.1326, 5.7470, 4.7060, + 4.0921, 3.8869, 1.6192, 1.4351, 1.1680, 0.8804, 0.8300, + 0.4633, 0.4490, 0.3730, 0.3030, 0.2164, 0.1180, 0.1079, + 0.0060, 0.0060, 0.0504, 0.0311, 0.0181, 0.0060, + + // Cm -------------------------------------------------------------------- + 128.2000, 24.5200, 23.6600, 18.9700, 6.3350, 5.9400, 4.8500, + 4.2300, 4.0150, 1.6850, 1.4950, 1.2050, 0.9250, 0.8700, + 0.4950, 0.4850, 0.3970, 0.2350, 0.1350, 0.1200, 0.0920, + 0.0060, 0.0060, 0.0670, 0.0500, 0.0060, 0.0060, 0.0970, + + // Bk -------------------------------------------------------------------- + 131.6000, 25.2600, 24.3800, 19.4400, 6.5450, 6.1450, 4.9900, + 4.3600, 4.1350, 1.7450, 1.5550, 1.2450, 0.9600, 0.9000, + 0.5250, 0.5100, 0.4150, 0.3300, 0.2430, 0.1400, 0.1250, + 0.0060, 0.0060, 0.0960, 0.0700, 0.0500, 0.0044, 0.0060, + + // Cf -------------------------------------------------------------------- + 135.0000, 26.0100, 25.1200, 19.9100, 6.7550, 6.3500, 5.1350, + 4.4950, 4.2600, 1.8100, 1.6150, 1.2850, 0.9950, 0.9300, + 0.5550, 0.5400, 0.4300, 0.3450, 0.2500, 0.1450, 0.1300, + 0.0060, 0.0060, 0.1000, 0.0700, 0.0500, 0.006, + + // Es -------------------------------------------------------------------- + 138.4000, 26.7800, 25.8800, 20.3900, 6.9750, 6.5600, 5.2800, + 4.6300, 4.3850, 1.8750, 1.6750, 1.3250, 1.0300, 0.9650, + 0.5850, 0.5700, 0.4450, 0.3600, 0.2600, 0.1550, 0.1350, + 0.0060, 0.0060, 0.1000, 0.0700, 0.0500, 0.0060, + + // Fm -------------------------------------------------------------------- + 142.0000, 27.5700, 26.6600, 20.8700, 7.2000, 6.7800, 5.4250, + 4.7650, 4.5100, 1.9400, 1.7400, 1.3700, 1.0650, 1.0000, + 0.6150, 0.6000, 0.4600, 0.3750, 0.2700, 0.1650, 0.1400, + 0.0060, 0.0060, 0.1000, 0.0800, 0.0500, 0.0060, + + // Md -------------------------------------------------------------------- + 145.6000, 28.3800, 27.4600, 21.3600, 7.4300, 7.0000, 5.5750, + 4.9050, 4.6330, 2.0050, 1.8050, 1.4150, 1.1050, 1.0350, + 0.6450, 0.6300, 0.4800, 0.3900, 0.2800, 0.1750, 0.1450, + 0.0070, 0.0070, 0.1100, 0.0800, 0.0500, 0.0060, + + // No -------------------------------------------------------------------- + 149.3000, 29.2220, 28.2800, 21.8500, 7.6700, 7.2300, 5.7300, + 5.0500, 4.7650, 2.0750, 1.8750, 1.4600, 1.1450, 1.0700, + 0.6800, 0.6500, 0.5000, 0.4100, 0.2900, 0.1850, 0.1550, + 0.0100, 0.0100, 0.1100, 0.0800, 0.0500, 0.0060, + + // Lr -------------------------------------------------------------------- + 153.0000, 30.0800, 29.1300, 22.3500, 7.9200, 7.4700, 5.8900, + 5.2000, 4.9000, 2.1500, 1.9500, 1.5050, 1.1900, 1.1100, + 0.7200, 0.6900, 0.5200, 0.4300, 0.3000, 0.2000, 0.1600, + 0.0150, 0.0150, 0.1200, 0.0900, 0.0600, 0.0070, 0.0070, + + // Rf -------------------------------------------------------------------- + 156.9000, 30.9600, 30.0000, 22.8600, 8.1700, 7.7200, 6.0550, + 5.3500, 5.0400, 2.2250, 2.0250, 1.5550, 1.2350, 1.1500, + 0.7600, 0.7200, 0.5400, 0.4550, 0.3150, 0.2150, 0.1700, + 0.0200, 0.0200, 0.1200, 0.0900, 0.0600, 0.0080, 0.0080, + + // Db -------------------------------------------------------------------- + 160.8000, 31.8700, 30.9000, 23.3800, 8.4300, 7.9800, 6.6250, + 5.5050, 5.1850, 2.3050, 2.1050, 1.6050, 1.2800, 1.1900, + 0.8000, 0.7500, 0.5600, 0.4800, 0.3300, 0.2300, 0.1800, + 0.0250, 0.0250, 0.1300, 0.1000, 0.0600, 0.0090, 0.0080, + + // Sg -------------------------------------------------------------------- + 164.9000, 32.8000, 31.8200, 23.9100, 8.7000, 8.2400, 6.4000, + 5.6650, 5.3300, 2.3850, 2.1900, 1.6600, 1.3250, 1.2350, + 0.8400, 0.7800, 0.5850, 0.5050, 0.3450, 0.2450, 0.1900, + 0.0300, 0.0300, 0.1400, 0.1100, 0.0600, 0.0090, 0.0080, + + // Bh -------------------------------------------------------------------- + 169.0000, 33.7600, 32.7700, 24.4400, 8.9800, 8.5100, 6.5800, + 5.8300, 5.4750, 2.4700, 2.2750, 1.7150, 1.3700, 1.2800, + 0.8800, 0.8200, 0.6100, 0.5300, 0.3600, 0.2600, 0.2000, + 0.0400, 0.0400, 0.1400, 0.1100, 0.0700, 0.0100, 0.0100, + 0.0090, + + // Hs -------------------------------------------------------------------- + 173.2000, 34.7500, 33.7400, 24.9200, 9.2700, 8.7900, 6.7600, + 5.9950, 5.6200, 2.5550, 2.3650, 1.7700, 1.4200, 1.3250, + 0.9200, 0.8600, 0.6350, 0.5550, 0.3750, 0.2750, 0.2100, + 0.0500, 0.0500, 0.1500, 0.1200, 0.0700, 0.0100, 0.0100, + 0.0090, + + // Mt -------------------------------------------------------------------- + 177.6000, 35.7700, 34.7400, 25.5200, 9.5700, 9.0800, 6.9400, + 6.1600, 5.7700, 2.6450, 2.4600, 1.8250, 1.4700, 1.3700, + 0.9600, 0.9000, 0.6600, 0.5800, 0.3900, 0.2900, 0.2200, + 0.0600, 0.0600, 0.1600, 0.1200, 0.0700, 0.0100, 0.0100, + 0.0100, + + // Ds -------------------------------------------------------------------- + 182.0000, 36.8100, 35.7700, 26.0700, 9.8700, 9.3700, 7.1200, + 6.3300, 5.9200, 2.7350, 2.5600, 1.8800, 1.5200, 1.4150, + 1.0000, 0.9400, 0.6900, 0.6100, 0.4050, 0.3050, 0.2300, + 0.0700, 0.0700, 0.1600, 0.1300, 0.0800, 0.0100, 0.0100, + 0.0100, + + // Rg -------------------------------------------------------------------- + 186.1360, 37.8810, 36.7990, 26.6480, 10.1870, 9.6870, 7.2240, + 6.4470, 6.0250, 2.9260, 2.6730, 1.9780, 1.5970, 1.4830, + 0.9604, 0.9267, 0.7283, 0.6450, 0.2810, 0.2510, 0.2445, + 0.0671, 0.0614, 0.1267, 0.0901, 0.0498, 0.0094, 0.0066, + 0.0094, + + // Cp -------------------------------------------------------------------- + 190.7170, 38.9840, 37.8960, 27.2130, 10.5080, 10.0020, 7.4060, + 6.6180, 6.1780, 3.0330, 2.7760, 2.0390, 1.6520, 1.5320, + 1.0016, 0.9662, 0.7624, 0.6770, 0.2960, 0.2650, 0.2577, + 0.0753, 0.0690, 0.1349, 0.0969, 0.0528, 0.0104, 0.0073, + 0.0098, + + // Uut -------------------------------------------------------------------- + 195.4100, 40.1210, 39.0340, 27.7880, 10.8420, 10.3310, 7.5930, + 6.7930, 6.3350, 3.1460, 2.8860, 2.1070, 1.7120, 1.5870, + 1.0464, 1.0092, 0.8006, 0.7140, 0.3150, 0.2820, 0.2740, + 0.0866, 0.0798, 0.1464, 0.1069, 0.0586, 0.0138, 0.0101, + 0.0116, 0.0049, + + // Fl -------------------------------------------------------------------- + 200.2140, 41.2940, 40.2070, 28.3700, 11.1840, 10.6720, 7.7830, + 6.9720, 6.4950, 3.2640, 2.9990, 2.1740, 1.7740, 1.6420, + 1.0923, 1.0533, 0.8409, 0.7530, 0.3350, 0.3000, 0.2910, + 0.0984, 0.0911, 0.1583, 0.1174, 0.0646, 0.0173, 0.0130, + 0.0135, 0.0057, + + // Uup -------------------------------------------------------------------- + 205.1360, 42.5010, 41.4200, 28.9590, 11.5410, 11.0220, 7.9790, + 7.1550, 6.6580, 3.3860, 3.1180, 2.2450, 1.8380, 1.7010, + 1.1410, 1.1000, 0.8831, 0.7940, 0.3570, 0.3200, 0.3100, + 0.1124, 0.1045, 0.1726, 0.1301, 0.0724, 0.0227, 0.0177, + 0.0169, 0.0078, 0.0038, + + // Lv -------------------------------------------------------------------- + 210.1770, 43.7500, 42.6740, 29.5560, 11.9070, 11.3870, 8.1760, + 7.3410, 6.8240, 3.5130, 3.2410, 2.3160, 1.9030, 1.7590, + 1.1907, 1.1477, 0.9275, 0.8380, 0.3790, 0.3400, 0.3296, + 0.1269, 0.1184, 0.1874, 0.1434, 0.0805, 0.0282, 0.0226, + 0.0203, 0.0101, 0.0044, + + // Uus -------------------------------------------------------------------- + 215.3370, 44.0310, 43.9750, 30.1580, 12.2830, 11.7620, 8.3760, + 7.5300, 6.9910, 3.6430, 3.4690, 2.3900, 1.9700, 1.8190, + 1.2413, 1.1962, 0.9733, 0.8820, 0.4020, 0.3610, 0.3496, + 0.1417, 0.1327, 0.2026, 0.1571, 0.0886, 0.0337, 0.0275, + 0.0237, 0.0124, 0.0052, + + // Uuo -------------------------------------------------------------------- + 220.6300, 46.3540, 45.3540, 30.7670, 12.6700, 12.1510, 8.5790, + 7.7200, 7.1610, 3.7780, 3.5000, 2.4640, 2.0370, 1.8800, + 1.2928, 1.2455, 1.0205, 0.9280, 0.4250, 0.3820, 0.3699, + 0.1570, 0.1472, 0.2183, 0.1714, 0.0968, 0.0394, 0.0324, + 0.0272, 0.0149, 0.0060, + + // Uue -------------------------------------------------------------------- + 226.0630, 47.7240, 46.7140, 31.3860, 13.0740, 12.5560, 8.7890, + 7.9180, 7.3360, 3.9200, 3.6390, 2.5430, 2.1090, 1.9440, + 1.3476, 1.2982, 1.0720, 0.9800, 0.4520, 0.4060, 0.3931, + 0.1751, 0.1646, 0.2371, 0.1887, 0.1075, 0.0476, 0.0399, + 0.0331, 0.0197, 0.0084, 0.0036, + + // Ubn -------------------------------------------------------------------- + 231.6340, 49.1390, 48.1580, 32.0130, 13.4890, 12.9750, 9.0000, + 8.1170, 7.5130, 4.0660, 3.7840, 2.6220, 2.1820, 2.0100, + 1.4040, 1.3523, 1.1256, 1.0330, 0.4790, 0.4310, 0.4173, + 0.1941, 0.1830, 0.2570, 0.2071, 0.1190, 0.0565, 0.0479, + 0.0396, 0.0251, 0.0113, 0.0042 }; const G4int G4AtomicShells_XDB_EADL::fNumberOfElectrons[2171] = { - 0, // nonexistent zero element + 0, // nonexistent zero element // H --------------------------------------------------------- - 1, + 1, // He --------------------------------------------------------- - 2, + 2, // Li -------------------------------------------------------- - 2, 1, + 2, 1, // Be -------------------------------------------------------- - 2, 2, + 2, 2, // B -------------------------------------------------------- - 2, 2, 1, + 2, 2, 1, // C --------------------------------------------------------- - 2, 2, 2, + 2, 2, 2, // N --------------------------------------------------------- - 2, 2, 2, 1, + 2, 2, 2, 1, // O --------------------------------------------------------- - 2, 2, 2, 2, + 2, 2, 2, 2, // F --------------------------------------------------------- - 2, 2, 2, 3, + 2, 2, 2, 3, // Ne --------------------------------------------------------- - 2, 2, 2, 4, + 2, 2, 2, 4, // Na ---------------------------------------------- - 2, 2, 2, 4, 1, + 2, 2, 2, 4, 1, // Mg ---------------------------------------------- - 2, 2, 2, 4, 2, + 2, 2, 2, 4, 2, // Al ---------------------------------------------- - 2, 2, 2, 4, 2, 1, + 2, 2, 2, 4, 2, 1, // Si ---------------------------------------------- - 2, 2, 2, 4, 2, 2, + 2, 2, 2, 4, 2, 2, // P ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 1, + 2, 2, 2, 4, 2, 2, 1, // S ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 2, + 2, 2, 2, 4, 2, 2, 2, // Cl ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 3, + 2, 2, 2, 4, 2, 2, 3, // Ar ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, + 2, 2, 2, 4, 2, 2, 4, // K ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 1, + 2, 2, 2, 4, 2, 2, 4, 1, // Ca ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 2, // Sc ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 1, 2, + 2, 2, 2, 4, 2, 2, 4, 1, 2, // Ti ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 2, 2, + 2, 2, 2, 4, 2, 2, 4, 2, 2, // V ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 3, 2, + 2, 2, 2, 4, 2, 2, 4, 3, 2, // Cr ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 1, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 1, 1, // Mn ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 1, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 1, 2, // Fe ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, // Co ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 3, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 3, 2, // Ni ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 4, 2, // Cu ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 1, // Zn ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, // Ga ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 1, // Ge ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, // As ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 1, // Se ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 2, // Br ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 3, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 3, // Kr ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, // Rb ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 1, // Sr ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 2, // Y ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 1, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 1, 2, // Zr ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 2, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 2, 2, // Nb ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 1, // Mo ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 1, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 1, 1, // Tc ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 1, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 1, 2, // Ru ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 3, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 3, 1, // Rh ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 4, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 4, 1, // Pd ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, // Ag ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 1, // Cd ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 2, // In ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 2, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 2, 1, // Sn ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 2, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 2, 2, // Sb ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 2, 2, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 2, 2, 1, // Te ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 2, 2, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 2, 2, 2, // I ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 2, 2, 3, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 2, 2, 3, // Xe ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 2, 2, 4, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 2, 2, 4, // Cs ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 2, 2, 4, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 2, 2, 4, 1, // Ba ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 2, 2, 4, 2, // La ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 2, 2, 4, 1, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 2, 2, 4, 1, 2, // Ce ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 1, 1, 2, 2, 4, 1, - 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 1, 1, 2, 2, 4, 1, + 1, // Pr ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 2, 1, 2, 2, 4, 1, - 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 2, 1, 2, 2, 4, 1, + 1, // Nd ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 4, 1, 2, 2, 4, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 4, 1, 2, 2, 4, 1, // Pm ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 5, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 5, 2, 2, 4, 2, // Sm ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 1, 2, 2, 4, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 1, 2, 2, 4, 1, // Eu ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 1, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 1, 2, 2, 4, 2, // Gd ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 1, 2, 2, 4, 1, - 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 1, 2, 2, 4, 1, + 2, // Tb ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 2, 2, 2, 4, 1, - 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 2, 2, 2, 4, 1, + 2, // Dy ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 4, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 4, 2, 2, 4, 2, // Ho ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 5, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 5, 2, 2, 4, 2, // Er ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 6, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 6, 2, 2, 4, 2, // Tm ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 7, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 7, 2, 2, 4, 2, // Yb ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 2, // Lu ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 1, - 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 1, + 2, // Hf ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 2, - 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 2, + 2, // Ta ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 3, - 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 3, + 2, // W ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 2, // Re ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 1, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 1, 2, // Os ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 2, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 2, 2, // Ir ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 3, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 3, 2, // Pt ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 5, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 5, 1, // Au ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 1, // Hg ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 2, // Tl ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 2, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 2, 1, // Pb ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 2, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 2, 2, // Bi ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 2, 2, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 2, 2, 1, // Po ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 2, 2, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 2, 2, 2, // At ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 2, 2, 3, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 2, 2, 3, // Rn ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 2, 2, 4, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 2, 2, 4, // Fr ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 2, 2, 4, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 2, 2, 4, 1, // Ra ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 2, 2, 4, 2, // Ac ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 2, 2, 4, 1, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 2, 2, 4, 1, 2, // Th ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 2, 2, 4, 2, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 2, 2, 4, 2, 2, // Pa ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 2, 2, 2, 4, 1, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 2, 2, 2, 4, 1, 2, // U ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 3, 2, 2, 4, 1, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 3, 2, 2, 4, 1, 2, // Np ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 4, 2, 2, 4, 1, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 4, 2, 2, 4, 1, 2, // Pu ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 2, 2, 4, 2, // Am ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 1, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 1, 2, 2, 4, 2, // Cm ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 1, 2, 2, 4, 1, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 1, 2, 2, 4, 1, 2, // Bk ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 2, 2, 2, 4, 1, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 2, 2, 2, 4, 1, 2, // Cf ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 4, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 4, 2, 2, 4, 2, // Es ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 5, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 5, 2, 2, 4, 2, // Fm ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 6, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 6, 2, 2, 4, 2, // Md ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 7, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 7, 2, 2, 4, 2, // No ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 2, // Lr ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 1, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 1, 2, // Rf ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 2, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 2, 2, // Db ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 3, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 3, 2, // Sg ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 2, // Bh ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 1, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 1, 2, // Hs ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 2, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 2, 2, // Mt ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 3, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 3, 2, // Ds ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 5, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 5, 1, // Rg ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 6, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 6, 1, // Cp ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 6, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 6, 2, // Uut --------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 6, 2, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 6, 2, 1, // Fl ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, // Uup --------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, - 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, + 1, // Lv ---------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, - 2, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, + 2, // Uus --------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, - 3, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, + 3, // Uuo --------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, - 4, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, + 4, // Uue --------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, - 4, 1, + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, + 4, 1, // Ubn --------------------------------------------- - 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, - 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, - 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, - 4, 2 + 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, + 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, + 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, + 4, 2 }; @@ -1243,7 +1216,7 @@ G4AtomicShells_XDB_EADL::GetBindingEnergy(G4int Z, G4int ShellNb) #ifdef G4VERBOSE if (Z < 0 || Z > 120) { Z = PrintErrorZ(Z, "GetBindingEnergy"); } if(ShellNb < 0 || ShellNb >= fNumberOfShells[Z]) { - ShellNb = PrintErrorShell(Z, ShellNb, "GetBindingEnergy"); + ShellNb = PrintErrorShell(Z, ShellNb, "GetBindingEnergy"); } #endif return fBindingEnergies[fIndexOfShells[Z] + ShellNb]*CLHEP::keV; @@ -1256,7 +1229,7 @@ G4AtomicShells_XDB_EADL::GetNumberOfElectrons(G4int Z, G4int ShellNb) #ifdef G4VERBOSE if (Z < 0 || Z > 120) { Z = PrintErrorZ(Z, "GetNumberOfElectrons"); } if(ShellNb < 0 || ShellNb >= fNumberOfShells[Z]) { - ShellNb = PrintErrorShell(Z, ShellNb, "GetNumberOfElectrons"); + ShellNb = PrintErrorShell(Z, ShellNb, "GetNumberOfElectrons"); } #endif return fNumberOfElectrons[fIndexOfShells[Z] + ShellNb]; @@ -1264,7 +1237,7 @@ G4AtomicShells_XDB_EADL::GetNumberOfElectrons(G4int Z, G4int ShellNb) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... -G4int +G4int G4AtomicShells_XDB_EADL::GetNumberOfFreeElectrons(G4int Z, G4double th) { #ifdef G4VERBOSE diff --git a/source/materials/src/G4CrystalExtension.cc b/source/materials/src/G4CrystalExtension.cc index 6f7164418b..77df71e2c5 100644 --- a/source/materials/src/G4CrystalExtension.cc +++ b/source/materials/src/G4CrystalExtension.cc @@ -23,8 +23,6 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -39,13 +37,12 @@ G4CrystalExtension::G4CrystalExtension(G4Material* mat, const G4String& name) : G4VMaterialExtension(name) , fMaterial(mat) , theUnitCell(nullptr) -{ - ; -} +{} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4CrystalExtension::~G4CrystalExtension(){;} +G4CrystalExtension::~G4CrystalExtension() +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -59,7 +56,7 @@ ComputeStructureFactor(G4double kScatteringVector, //GFS == Geometrical Structure Factor G4complex SF = G4complex(0.,0.); - for(auto anElement: *(fMaterial->GetElementVector())){ + for(auto & anElement: *(fMaterial->GetElementVector())){ G4double AFF = G4AtomicFormFactor::GetManager()->Get(kScatteringVector,anElement->GetZ()); G4complex GFS = G4complex(0.,0.); @@ -69,8 +66,8 @@ ComputeStructureFactor(G4double kScatteringVector, G4double aDouble = h * anAtomPos.x() + k * anAtomPos.y() + l * anAtomPos.z(); - GFS += G4complex(std::cos(2 * CLHEP::pi * aDouble), - std::sin(2 * CLHEP::pi * aDouble)); + GFS += G4complex(std::cos(CLHEP::twopi * aDouble), + std::sin(CLHEP::twopi * aDouble)); } @@ -88,13 +85,13 @@ ComputeStructureFactorGeometrical(G4int h, //GFS == Geometrical Structure Form Factor G4complex GFS = G4complex(0.,0.); - for(auto anElement: *(fMaterial->GetElementVector())){ + for(auto & anElement: *(fMaterial->GetElementVector())){ for(const auto& anAtomPos : GetAtomBase(anElement)->GetPos()) { G4double aDouble = h * anAtomPos.x() + k * anAtomPos.y() + l * anAtomPos.z(); - GFS += G4complex(std::cos(2 * CLHEP::pi * aDouble), - std::sin(2 * CLHEP::pi * aDouble)); + GFS += G4complex(std::cos(CLHEP::twopi * aDouble), + std::sin(CLHEP::twopi * aDouble)); } } return GFS; @@ -103,11 +100,11 @@ ComputeStructureFactorGeometrical(G4int h, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4CrystalExtension::SetElReduced(const ReducedElasticity& mat) { - for (size_t i=0; i<6; i++) { - for (size_t j=0; j<6; j++) { - fElReduced[i][j] = mat[i][j]; - } + for (size_t i=0; i<6; ++i) { + for (size_t j=0; j<6; ++j) { + fElReduced[i][j] = mat[i][j]; } + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -136,7 +133,7 @@ G4CrystalAtomBase* G4CrystalExtension::GetAtomBase(const G4Element* anElement){ G4bool G4CrystalExtension::GetAtomPos(const G4Element* anEl, std::vector& vecout){ std::vector pos; - for(auto asinglepos: GetAtomBase(anEl)->GetPos()){ + for(auto & asinglepos: GetAtomBase(anEl)->GetPos()){ pos.clear(); theUnitCell->FillAtomicPos(asinglepos,pos); vecout.insert(std::end(vecout), std::begin(pos), std::end(pos)); @@ -149,7 +146,7 @@ G4bool G4CrystalExtension::GetAtomPos(const G4Element* anEl, std::vector& vecout){ std::vector pos; vecout.clear(); - for(auto anElement: *(fMaterial->GetElementVector())){ + for(auto & anElement: *(fMaterial->GetElementVector())){ pos.clear(); GetAtomPos(anElement,pos); vecout.insert(std::end(vecout), std::begin(pos), std::end(pos)); diff --git a/source/materials/src/G4DensityEffectCalculator.cc b/source/materials/src/G4DensityEffectCalculator.cc index a7357f1911..b8ab6641ca 100644 --- a/source/materials/src/G4DensityEffectCalculator.cc +++ b/source/materials/src/G4DensityEffectCalculator.cc @@ -84,7 +84,7 @@ G4DensityEffectCalculator::G4DensityEffectCalculator(const G4Material* mat, G4in // and offers a possible alternative. This is one of the sources of // uncertainty in the model. const G4double frac = fMaterial->GetVecNbOfAtomsPerVolume()[j]/tot; - const G4int Z = fMaterial->GetElement(j)->GetZasInt(); + const G4int Z = fMaterial->GetElement((G4int)j)->GetZasInt(); const G4int nshell = G4AtomicShells::GetNumberOfShells(Z); for(G4int i = 0; i < nshell; ++i) { // For conductors, put *all* top shell electrons into the conduction diff --git a/source/materials/src/G4ICRU90StoppingData.cc b/source/materials/src/G4ICRU90StoppingData.cc index 4577dddfb9..7229362539 100644 --- a/source/materials/src/G4ICRU90StoppingData.cc +++ b/source/materials/src/G4ICRU90StoppingData.cc @@ -79,7 +79,7 @@ void G4ICRU90StoppingData::Initialise() { if(isInitialized) { return; } // this method may be called several times during initialisation - G4int nmat = G4Material::GetNumberOfMaterials(); + G4int nmat = (G4int)G4Material::GetNumberOfMaterials(); if(nmat == (G4int)nvectors) { return; } static const G4String nameNIST_ICRU90[3] = diff --git a/source/materials/src/G4IonisParamMat.cc b/source/materials/src/G4IonisParamMat.cc index f46cb43663..0dbe89915a 100644 --- a/source/materials/src/G4IonisParamMat.cc +++ b/source/materials/src/G4IonisParamMat.cc @@ -215,7 +215,7 @@ void G4IonisParamMat::ComputeDensityEffectParameters() // R.M. Sternheimer, Atomic Data and Nuclear Data Tables, 30: 261 (1984) // or is assign to one of data set in this table G4int idx = fDensityData->GetIndex(fMaterial->GetName()); - G4int nelm= fMaterial->GetNumberOfElements(); + G4int nelm= (G4int)fMaterial->GetNumberOfElements(); G4int Z0 = ((*(fMaterial->GetElementVector()))[0])->GetZasInt(); const G4Material* bmat = fMaterial->GetBaseMaterial(); G4NistManager* nist = G4NistManager::Instance(); @@ -436,7 +436,7 @@ void G4IonisParamMat::ComputeIonParameters() const G4ElementVector* theElementVector = fMaterial->GetElementVector() ; const G4double* theAtomicNumDensityVector = fMaterial->GetAtomicNumDensityVector() ; - const G4int NumberOfElements = fMaterial->GetNumberOfElements() ; + const G4int NumberOfElements = (G4int)fMaterial->GetNumberOfElements() ; // loop for the elements in the material // to find out average values Z, vF, lF @@ -548,7 +548,7 @@ void G4IonisParamMat::ComputeDensityEffectOnFly(G4bool val) if(nullptr == fDensityEffectCalc) { G4int n = 0; for(size_t i=0; iGetNumberOfElements(); ++i) { - const G4int Z = fMaterial->GetElement(i)->GetZasInt(); + const G4int Z = fMaterial->GetElement((G4int)i)->GetZasInt(); n += G4AtomicShells::GetNumberOfShells(Z); } // The last level is the conduction level. If this is *not* a conductor, diff --git a/source/materials/src/G4Material.cc b/source/materials/src/G4Material.cc index 0675ac9ddd..5be9b4f40e 100644 --- a/source/materials/src/G4Material.cc +++ b/source/materials/src/G4Material.cc @@ -207,7 +207,7 @@ G4Material::G4Material(const G4String& name, G4double density, fChemicalFormula = fBaseMaterial->GetChemicalFormula(); fMassOfMolecule = fBaseMaterial->GetMassOfMolecule(); - fNumberOfElements = fBaseMaterial->GetNumberOfElements(); + fNumberOfElements = (G4int)fBaseMaterial->GetNumberOfElements(); fNbComponents = fNumberOfElements; CopyPointersOfBaseMaterial(); @@ -387,6 +387,14 @@ G4Material::AddElementByNumberOfAtoms(const G4Element* elm, G4int nAtoms) G4Exception ("G4Material::AddElementByNumberOfAtoms()", "mat031", FatalException, ed, ""); } + if(0 >= nAtoms) { + G4ExceptionDescription ed; + ed << "For material " << fName << " and added element " + << elm->GetName() << " with Natoms=" << nAtoms + << " problem: number of atoms should be above zero"; + G4Exception ("G4Material::AddElementByNumberOfAtoms()", "mat031", + FatalException, ed, ""); + } // filling G4bool isAdded = false; @@ -530,7 +538,7 @@ void G4Material::AddMaterial(G4Material* material, G4double fraction) } // filling - G4int nelm = material->GetNumberOfElements(); + G4int nelm = (G4int)material->GetNumberOfElements(); for(G4int j=0; jGetElement(j); auto frac = material->GetFractionVector(); diff --git a/source/materials/src/G4MaterialPropertiesTable.cc b/source/materials/src/G4MaterialPropertiesTable.cc index f916d1cc61..14c3d98ffa 100644 --- a/source/materials/src/G4MaterialPropertiesTable.cc +++ b/source/materials/src/G4MaterialPropertiesTable.cc @@ -92,6 +92,7 @@ G4MaterialPropertiesTable::G4MaterialPropertiesTable() fMatPropNames.emplace_back("SCINTILLATIONCOMPONENT1"); fMatPropNames.emplace_back("SCINTILLATIONCOMPONENT2"); fMatPropNames.emplace_back("SCINTILLATIONCOMPONENT3"); + fMatPropNames.emplace_back("COATEDRINDEX"); assert(fMatPropNames.size() == kNumberOfPropertyIndex); @@ -154,6 +155,8 @@ G4MaterialPropertiesTable::G4MaterialPropertiesTable() fMatConstPropNames.emplace_back("ELECTRONSCINTILLATIONYIELD1"); fMatConstPropNames.emplace_back("ELECTRONSCINTILLATIONYIELD2"); fMatConstPropNames.emplace_back("ELECTRONSCINTILLATIONYIELD3"); + fMatConstPropNames.emplace_back("COATEDTHICKNESS"); + fMatConstPropNames.emplace_back("COATEDFRUSTRATEDTRANSMISSION"); assert(fMatConstPropNames.size() == kNumberOfConstPropertyIndex); @@ -173,12 +176,12 @@ G4int G4MaterialPropertiesTable::GetConstPropertyIndex( { // Returns the constant material property index corresponding to a key - size_t index = std::distance( - fMatConstPropNames.begin(), - std::find(fMatConstPropNames.begin(), fMatConstPropNames.end(), key)); + std::size_t index = std::distance( + fMatConstPropNames.cbegin(), + std::find(fMatConstPropNames.cbegin(), fMatConstPropNames.cend(), key)); if(index < fMatConstPropNames.size()) { - return index; + return (G4int)index; } G4ExceptionDescription ed; @@ -191,12 +194,12 @@ G4int G4MaterialPropertiesTable::GetConstPropertyIndex( G4int G4MaterialPropertiesTable::GetPropertyIndex(const G4String& key) const { // Returns the material property index corresponding to a key - size_t index = - std::distance(fMatPropNames.begin(), - std::find(fMatPropNames.begin(), fMatPropNames.end(), key)); + std::size_t index = + std::distance(fMatPropNames.cbegin(), + std::find(fMatPropNames.cbegin(), fMatPropNames.cend(), key)); if(index < fMatPropNames.size()) { - return index; + return (G4int)index; } G4ExceptionDescription ed; ed << "Material Property Index for key " << key << " not found."; @@ -244,24 +247,24 @@ G4bool G4MaterialPropertiesTable::ConstPropertyExists(const G4int index) const G4bool G4MaterialPropertiesTable::ConstPropertyExists(const G4String& key) const { // Returns true if a const property 'key' exists - size_t index = std::distance( - fMatConstPropNames.begin(), - std::find(fMatConstPropNames.begin(), fMatConstPropNames.end(), key)); + std::size_t index = std::distance( + fMatConstPropNames.cbegin(), + std::find(fMatConstPropNames.cbegin(), fMatConstPropNames.cend(), key)); if(index < fMatConstPropNames.size()) - { // index is type size_t so >= 0 - return ConstPropertyExists(index); + { // index is type std::size_t so >= 0 + return ConstPropertyExists((G4int)index); } return false; } G4bool G4MaterialPropertiesTable::ConstPropertyExists(const char* key) const { - size_t index = std::distance( - fMatConstPropNames.begin(), - std::find(fMatConstPropNames.begin(), fMatConstPropNames.end(), key)); + std::size_t index = std::distance( + fMatConstPropNames.cbegin(), + std::find(fMatConstPropNames.cbegin(), fMatConstPropNames.cend(), key)); if(index < fMatConstPropNames.size()) - { // index is type size_t so >= 0 - return ConstPropertyExists(index); + { // index is type std::size_t so >= 0 + return ConstPropertyExists((G4int)index); } return false; } @@ -270,8 +273,8 @@ G4MaterialPropertyVector* G4MaterialPropertiesTable::GetProperty( const G4String& key) const { // Returns a Material Property Vector corresponding to a key - if(std::find(fMatPropNames.begin(), fMatPropNames.end(), key) != - fMatPropNames.end()) + if(std::find(fMatPropNames.cbegin(), fMatPropNames.cend(), key) != + fMatPropNames.cend()) { const G4int index = GetPropertyIndex(G4String(key)); return GetProperty(index); @@ -282,8 +285,8 @@ G4MaterialPropertyVector* G4MaterialPropertiesTable::GetProperty( G4MaterialPropertyVector* G4MaterialPropertiesTable::GetProperty( const char* key) const { - if(std::find(fMatPropNames.begin(), fMatPropNames.end(), key) != - fMatPropNames.end()) + if(std::find(fMatPropNames.cbegin(), fMatPropNames.cend(), key) != + fMatPropNames.cend()) { const G4int index = GetPropertyIndex(G4String(key)); return GetProperty(index); @@ -317,7 +320,7 @@ G4MaterialPropertyVector* G4MaterialPropertiesTable::AddProperty( } // G4PhysicsVector assumes energies are in increasing order - for (size_t i = 0; i < photonEnergies.size() - 1; ++i) + for (std::size_t i = 0; i < photonEnergies.size() - 1; ++i) { if(photonEnergies.at(i+1) < photonEnergies.at(i)) { @@ -330,8 +333,8 @@ G4MaterialPropertyVector* G4MaterialPropertiesTable::AddProperty( } // if the key doesn't exist, add it if requested - if(std::find(fMatPropNames.begin(), fMatPropNames.end(), key) == - fMatPropNames.end()) + if(std::find(fMatPropNames.cbegin(), fMatPropNames.cend(), key) == + fMatPropNames.cend()) { if(createNewKey) { @@ -393,7 +396,7 @@ void G4MaterialPropertiesTable::AddProperty(const G4String& key, // G4PhysicsVector assumes energies are in increasing order // An MPV with size==0 or 1 is also ok if (mpv->GetVectorLength() > 1) { - for (size_t i = 0; i < mpv->GetVectorLength() - 1; ++i) + for (std::size_t i = 0; i < mpv->GetVectorLength() - 1; ++i) { if(mpv->Energy(i+1) < mpv->Energy(i)) { @@ -407,8 +410,8 @@ void G4MaterialPropertiesTable::AddProperty(const G4String& key, } // if the key doesn't exist, add it - if(std::find(fMatPropNames.begin(), fMatPropNames.end(), key) == - fMatPropNames.end()) + if(std::find(fMatPropNames.cbegin(), fMatPropNames.cend(), key) == + fMatPropNames.cend()) { if(createNewKey) { @@ -458,8 +461,8 @@ void G4MaterialPropertiesTable::AddConstProperty(const G4String& key, { // Provides a way of adding a constant property to the Material Properties // Table given a key - if(std::find(fMatConstPropNames.begin(), fMatConstPropNames.end(), key) == - fMatConstPropNames.end()) + if(std::find(fMatConstPropNames.cbegin(), fMatConstPropNames.cend(), key) == + fMatConstPropNames.cend()) { if(createNewKey) { @@ -522,8 +525,8 @@ void G4MaterialPropertiesTable::AddEntry(const G4String& key, { // Allows to add an entry pair directly to the Material Property Vector // given a key. - if(std::find(fMatPropNames.begin(), fMatPropNames.end(), key) == - fMatPropNames.end()) + if(std::find(fMatPropNames.cbegin(), fMatPropNames.cend(), key) == + fMatPropNames.cend()) { G4Exception("G4MaterialPropertiesTable::AddEntry()", "mat214", FatalException, "Material Property Vector not found."); @@ -534,7 +537,7 @@ void G4MaterialPropertiesTable::AddEntry(const G4String& key, if(targetVector != nullptr) { // do not allow duplicate energies - for (size_t i = 0; i < targetVector->GetVectorLength(); ++i) + for (std::size_t i = 0; i < targetVector->GetVectorLength(); ++i) { if(aPhotonEnergy == targetVector->Energy(i)) { @@ -660,7 +663,7 @@ G4MaterialPropertyVector* G4MaterialPropertiesTable::CalculateGROUPVEL() groupvel->InsertValues(E0, vg); // add entries at midpoints between remaining photon energies - for(size_t i = 2; i < rindex->GetVectorLength(); ++i) + for(std::size_t i = 2; i < rindex->GetVectorLength(); ++i) { vg = c_light / (0.5 * (n0 + n1) + (n1 - n0) / G4Log(E1 / E0)); diff --git a/source/materials/src/G4MicroElecMaterialStructure.cc b/source/materials/src/G4MicroElecMaterialStructure.cc index b2586f5b71..fe2e17f4e9 100644 --- a/source/materials/src/G4MicroElecMaterialStructure.cc +++ b/source/materials/src/G4MicroElecMaterialStructure.cc @@ -88,7 +88,7 @@ G4MicroElecMaterialStructure::G4MicroElecMaterialStructure(const G4String& matNa else { ReadMaterialFile(); } - nLevels = energyConstant.size(); + nLevels = (G4int)energyConstant.size(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/materials/src/G4MicroElecSiStructure.cc b/source/materials/src/G4MicroElecSiStructure.cc index d46ce7d309..5aaadf8bd5 100644 --- a/source/materials/src/G4MicroElecSiStructure.cc +++ b/source/materials/src/G4MicroElecSiStructure.cc @@ -52,7 +52,7 @@ G4MicroElecSiStructure::G4MicroElecSiStructure(): nLevels(6) energyConstant.push_back(151.55*eV); energyConstant.push_back(1828.5*eV); - nLevels = energyConstant.size(); + nLevels = (G4int)energyConstant.size(); } G4double G4MicroElecSiStructure::Energy(G4int level) diff --git a/source/materials/src/G4NistElementBuilder.cc b/source/materials/src/G4NistElementBuilder.cc index 3502190a5c..bf6a75199f 100644 --- a/source/materials/src/G4NistElementBuilder.cc +++ b/source/materials/src/G4NistElementBuilder.cc @@ -177,7 +177,7 @@ G4Element* G4NistElementBuilder::BuildElement(G4int Z) iso.push_back(ist); } } - G4int ni = iso.size(); + G4int ni = (G4int)iso.size(); G4double w; theElement = new G4Element(elmSymbol[Z],elmSymbol[Z],ni); for(G4int j=0; jAddIsotope(ist, w); } theElement->SetNaturalAbundanceFlag(true); - elmIndex[Z] = theElement->GetIndex(); + elmIndex[Z] = (G4int)theElement->GetIndex(); } l.unlock(); return theElement; diff --git a/source/materials/src/G4NistMaterialBuilder.cc b/source/materials/src/G4NistMaterialBuilder.cc index 4999a7083e..b3a9568ed7 100644 --- a/source/materials/src/G4NistMaterialBuilder.cc +++ b/source/materials/src/G4NistMaterialBuilder.cc @@ -169,9 +169,9 @@ G4Material* G4NistMaterialBuilder::BuildMaterial(G4int i) G4AutoLock l(&nistMaterialMutex); if(matIndex[i] >= 0) { // Nist material was already built - const G4MaterialTable* theMaterialTable = + const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); - mat = (*theMaterialTable)[matIndex[i]]; + mat = (*theMaterialTable)[matIndex[i]]; } else { if (verbose > 1) { @@ -222,7 +222,7 @@ G4Material* G4NistMaterialBuilder::BuildMaterial(G4int i) } } - // Ionisation potential can be defined via NIST DB or + // Ionisation potential can be defined via NIST DB or // Chemical Formula (ICRU37 Report data) G4IonisParamMat* ion = mat->GetIonisation(); G4double exc0 = ion->GetMeanExcitationEnergy(); @@ -231,12 +231,12 @@ G4Material* G4NistMaterialBuilder::BuildMaterial(G4int i) mat->SetChemicalFormula(chFormulas[i]); exc1 = ion->FindMeanExcitationEnergy(mat); } - // If exists, NIST DB data always overwrites other data + // If exists, NIST DB data always overwrites other data if(ionPotentials[i] > 0.0) { exc1 = ionPotentials[i]; } if(exc0 != exc1) { ion->SetMeanExcitationEnergy(exc1); } // Index in Material Table - matIndex[i] = mat->GetIndex(); + matIndex[i] = (G4int)mat->GetIndex(); } l.unlock(); return mat; @@ -266,7 +266,7 @@ G4Material* G4NistMaterialBuilder::ConstructNewMaterial( } // Material not in DB - G4int els = elm.size(); + G4int els = (G4int)elm.size(); if(els == 0) { G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:" << " WARNING: empty list of elements for " << name @@ -317,7 +317,7 @@ G4Material* G4NistMaterialBuilder::ConstructNewMaterial( } // Material not in DB - G4int els = elm.size(); + G4int els = (G4int)elm.size(); if(els == 0) { G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:" << " WARNING: empty list of elements for " << name @@ -415,7 +415,7 @@ G4Material* G4NistMaterialBuilder::ConstructNewIdealGasMaterial( } // Material not in DB - G4int els = elm.size(); + G4int els = (G4int)elm.size(); if(els == 0) { G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:" << " WARNING: empty list of elements for " << name @@ -862,7 +862,8 @@ void G4NistMaterialBuilder::NistCompoundMaterials() AddElementByAtomCount("C" , 2); AddElementByAtomCount("H" , 2); - AddMaterial("G4_ADENINE", 1.6/*1.35*/, 0, 71.4, 3); + //Tan, Z., et al. NIMB,2006(248) + AddMaterial("G4_ADENINE", 1.35, 0, 71.4, 3); AddElementByAtomCount("C" , 5); AddElementByAtomCount("H" , 5); AddElementByAtomCount("N" , 5); @@ -1276,7 +1277,8 @@ void G4NistMaterialBuilder::NistCompoundMaterials() AddElementByAtomCount("H" , 8); AddElementByAtomCount("O" , 3); - AddMaterial("G4_GUANINE", 2.2/*1.58*/, 0, 75. ,4); + //Tan, Z., et al. NIMB,2006(248) + AddMaterial("G4_GUANINE", 1.58, 0, 75. ,4); AddElementByAtomCount("C" , 5); AddElementByAtomCount("H" , 5); AddElementByAtomCount("N" , 5); @@ -1951,13 +1953,14 @@ void G4NistMaterialBuilder::BioChemicalMaterials() // G4_ADENINE, G4_GUANINE are defined in // G4NistMaterialBuilder::NistCompoundMaterials() - AddMaterial("G4_CYTOSINE", 1.55, 0, 72., 4); + //Tan, Z., et al. NIMB,2006(248) + AddMaterial("G4_CYTOSINE", 1.3, 0, 72., 4); AddElementByAtomCount("H", 5); AddElementByAtomCount("C", 4); AddElementByAtomCount("N", 3); AddElementByAtomCount("O", 1); - AddMaterial("G4_THYMINE", 1.23, 0, 72., 4); + AddMaterial("G4_THYMINE", 1.48, 0, 72., 4); AddElementByAtomCount("H", 6); AddElementByAtomCount("C", 5); AddElementByAtomCount("N", 2); @@ -1969,11 +1972,20 @@ void G4NistMaterialBuilder::BioChemicalMaterials() AddElementByAtomCount("N", 2); AddElementByAtomCount("O", 2); - AddMaterial("G4_DEOXYRIBOSE", 1, 0, 72, 3); + //ACD Labs Percepta Plateform - PhysChem Module + //(https://www.acdlabs.com/products/percepta/index.php) + AddMaterial("G4_DEOXYRIBOSE", 1.5, 0, 72, 3); AddElementByAtomCount("H", 10); AddElementByAtomCount("C", 5); - AddElementByAtomCount("O", 3); + AddElementByAtomCount("O", 4); + //Egan, E.P. and B.B. Luff, + //Industrial & Engineering Chemistry, 1955. 47(6): p. 1280-1281 + AddMaterial("G4_PHOSPHORIC_ACID", 1.87, 0, 72, 3); + AddElementByAtomCount("H", 3); + AddElementByAtomCount("P", 1); + AddElementByAtomCount("O", 4); + // END UNBONDED MATERIALS / BEGIN BONDED MATERIALS // Deoxyribose loses 3 OH groups in bonding to bond with PO4 and a base pair diff --git a/source/materials/src/G4OpticalSurface.cc b/source/materials/src/G4OpticalSurface.cc index 9f5eac63f1..4824652034 100644 --- a/source/materials/src/G4OpticalSurface.cc +++ b/source/materials/src/G4OpticalSurface.cc @@ -438,7 +438,7 @@ void G4OpticalSurface::ReadCompressedFile(const G4String& filename, if(in.good()) { // get current position in the stream (was set to the end) - int fileSize = in.tellg(); + G4int fileSize = (G4int)in.tellg(); // set current position being the beginning of the stream in.seekg(0, std::ios::beg); // create (zlib) byte buffer for the data @@ -522,8 +522,8 @@ void G4OpticalSurface::ReadDichroicFile() G4cout << " *** Dichroic surface data file *** " << G4endl; - G4int numberOfXNodes = DichroicVector->GetLengthX(); - G4int numberOfYNodes = DichroicVector->GetLengthY(); + G4int numberOfXNodes = (G4int)DichroicVector->GetLengthX(); + G4int numberOfYNodes = (G4int)DichroicVector->GetLengthY(); G4cout << "numberOfXNodes: " << numberOfXNodes << G4endl; G4cout << "numberOfYNodes: " << numberOfYNodes << G4endl; diff --git a/source/materials/src/G4SandiaTable.cc b/source/materials/src/G4SandiaTable.cc index 26c7a5042a..1732320dac 100644 --- a/source/materials/src/G4SandiaTable.cc +++ b/source/materials/src/G4SandiaTable.cc @@ -244,7 +244,7 @@ void G4SandiaTable::PrintErrorV(const G4String& ss) void G4SandiaTable::ComputeMatSandiaMatrix() { //get list of elements - const G4int NbElm = fMaterial->GetNumberOfElements(); + const G4int NbElm = (G4int)fMaterial->GetNumberOfElements(); const G4ElementVector* ElementVector = fMaterial->GetElementVector(); G4int* Z = new G4int[NbElm]; //Atomic number @@ -379,12 +379,12 @@ void G4SandiaTable::ComputeMatSandiaMatrixPAI() G4int MaxIntervals = 0; G4int elm, c, i, j, jj, k, k1, k2, c1, n1, z; - const G4int noElm = fMaterial->GetNumberOfElements(); + const G4int noElm = (G4int)fMaterial->GetNumberOfElements(); const G4ElementVector* ElementVector = fMaterial->GetElementVector(); std::vector Z(noElm); //Atomic number - for ( elm = 0; elm < noElm; elm++ ) + for ( elm = 0; elm < noElm; ++elm ) { z = G4lrint((*ElementVector)[elm]->GetZ()); if(z < 1) { z = 1; } @@ -428,7 +428,7 @@ void G4SandiaTable::ComputeMatSandiaMatrixPAI() G4int n2 = n1 + fNbOfIntervals[Z[i]]; - for( k1 = n1; k1 < n2; k1++ ) + for( k1 = n1; k1 < n2; ++k1 ) { if( I1 > fSandiaTable[k1][0] ) { @@ -438,7 +438,7 @@ void G4SandiaTable::ComputeMatSandiaMatrixPAI() } G4int flag = 0; - for( c1 = 1; c1 < c; c1++ ) + for( c1 = 1; c1 < c; ++c1 ) { if( fPhotoAbsorptionCof0[c1] == I1 ) // this value already has existed { @@ -451,11 +451,11 @@ void G4SandiaTable::ComputeMatSandiaMatrixPAI() fPhotoAbsorptionCof0[c] = I1; ++c; } - for( k2 = k1; k2 < n2; k2++ ) + for( k2 = k1; k2 < n2; ++k2 ) { flag = 0; - for( c1 = 1; c1 < c; c1++ ) + for( c1 = 1; c1 < c; ++c1 ) { if( fPhotoAbsorptionCof0[c1] == fSandiaTable[k2][0] ) { @@ -517,7 +517,7 @@ void G4SandiaTable::ComputeMatSandiaMatrixPAI() G4double B1 = fSandiaTable[k][0]; G4double B2 = fSandiaTable[k+1][0]; - for(G4int q = 1; q < fMaxInterval-1; q++) + for(G4int q = 1; q < fMaxInterval-1; ++q) { G4double E1 = fPhotoAbsorptionCof0[q]; G4double E2 = fPhotoAbsorptionCof0[q+1]; @@ -680,7 +680,7 @@ G4SandiaTable::G4SandiaTable(G4int matIndex) fSandiaCofPerAtom.resize(4,0.0); const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); - G4int numberOfMat = G4Material::GetNumberOfMaterials(); + G4int numberOfMat = (G4int)G4Material::GetNumberOfMaterials(); if ( matIndex >= 0 && matIndex < numberOfMat) { @@ -1087,7 +1087,7 @@ void G4SandiaTable::ComputeMatTable() { G4int elm, c, i, j, jj, k, kk, k1, k2, c1, n1; - const G4int noElm = fMaterial->GetNumberOfElements(); + const G4int noElm = (G4int)fMaterial->GetNumberOfElements(); const G4ElementVector* ElementVector = fMaterial->GetElementVector(); G4int* Z = new G4int[noElm]; //Atomic number diff --git a/source/parameterisations/gflash/History b/source/parameterisations/gflash/History index cebb92e2cc..0cbdba61f4 100644 --- a/source/parameterisations/gflash/History +++ b/source/parameterisations/gflash/History @@ -1,9 +1,21 @@ # Category gflash History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-18 Gabriele Cosmo (gflash-V11-00-03) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-07 Gabriele Cosmo (gflash-V11-00-02) +- Fixed compilation warning on Intel/icx compiler for variable set + but not used in GFlashShowerModel::ElectronDoIt(). + +## 2022-09-07 Makoto Asai (gflash-V11-00-01) +- GFlashHitMaker : making compatible to command-based scorer + co-working with track-V11-00-08 ## 2021-12-10 Ben Morgan (gflash-V11-00-00) - Change to new Markdown History format diff --git a/source/parameterisations/gflash/include/GFlashHitMaker.hh b/source/parameterisations/gflash/include/GFlashHitMaker.hh index a122fd09df..31cde788ae 100644 --- a/source/parameterisations/gflash/include/GFlashHitMaker.hh +++ b/source/parameterisations/gflash/include/GFlashHitMaker.hh @@ -48,6 +48,10 @@ #include "G4GFlashSpot.hh" #include "G4FastTrack.hh" +class G4Step; +class G4StepPoint; +class G4VProcess; + class GFlashHitMaker { public: @@ -58,6 +62,8 @@ class GFlashHitMaker void make(GFlashEnergySpot * aSpot, const G4FastTrack * aT ); inline void SetNameOfWorldWithSD(const G4String& aName) {fWorldWithSdName = aName;}; + inline void SetProcess(G4VProcess* proc) { fpProcess = proc; } + private: G4TouchableHandle fTouchableHandle; @@ -66,6 +72,10 @@ class GFlashHitMaker /// Name of the world containing the sensitive detector. If empty, default mass world is used. G4String fWorldWithSdName; + G4Step* fpSpotS; + G4StepPoint* fpSpotP; + G4VProcess* fpProcess = nullptr; + private: GFlashHitMaker(const GFlashHitMaker & ) {} diff --git a/source/parameterisations/gflash/src/GFlashHitMaker.cc b/source/parameterisations/gflash/src/GFlashHitMaker.cc index f63e03dffc..e69a5f0590 100644 --- a/source/parameterisations/gflash/src/GFlashHitMaker.cc +++ b/source/parameterisations/gflash/src/GFlashHitMaker.cc @@ -41,6 +41,8 @@ #include "GFlashHitMaker.hh" #include "G4GFlashSpot.hh" +#include "G4Step.hh" +#include "G4StepPoint.hh" GFlashHitMaker::GFlashHitMaker() { @@ -48,11 +50,20 @@ GFlashHitMaker::GFlashHitMaker() fpNavigator = new G4Navigator(); fNaviSetup = false; fWorldWithSdName = ""; + fpSpotS = new G4Step(); + fpSpotP = new G4StepPoint(); + // N.B. Pre and Post step points are common. + fpSpotS->SetPreStepPoint(fpSpotP); + fpSpotS->SetPostStepPoint(fpSpotP); } GFlashHitMaker::~GFlashHitMaker() { delete fpNavigator; + delete fpSpotP; + fpSpotS->ResetPreStepPoint(); + fpSpotS->ResetPostStepPoint(); + delete fpSpotS; } void GFlashHitMaker::make(GFlashEnergySpot * aSpot, const G4FastTrack * aT) @@ -80,13 +91,6 @@ void GFlashHitMaker::make(GFlashEnergySpot * aSpot, const G4FastTrack * aT) fTouchableHandle()); } - //-------------------------------------- - // Fills attribute of the G4Step needed - // by our sensitive detector: - //------------------------------------- - // set spot information: - G4GFlashSpot theSpot(aSpot, aT, fTouchableHandle); - ///Navigator //-------------------------------------- // Produce Hits // call sensitive part: taken/adapted from the stepping: @@ -102,21 +106,23 @@ void GFlashHitMaker::make(GFlashEnergySpot * aSpot, const G4FastTrack * aT) dynamic_cast (pSensitive); if( gflashSensitive ) { + // set spot information: + G4GFlashSpot theSpot(aSpot, aT, fTouchableHandle); gflashSensitive->Hit(&theSpot); } - else if (( pSensitive ) && - ( pCurrentVolume->GetLogicalVolume()->GetFastSimulationManager() ) - ) // Using gflash without implementing the - // gflashSensitive detector interface -> not allowed! - - { - G4cerr << "ERROR - GFlashHitMaker::make()" << G4endl - << " It is required to implement the "<< G4endl - << " G4VGFlashSensitiveDetector interface in "<< G4endl - << " addition to the usual SensitiveDetector class." - << G4endl; - G4Exception("GFlashHitMaker::make()", "InvalidSetup", FatalException, - "G4VGFlashSensitiveDetector interface not implemented."); + else if( pSensitive ) + { + fpSpotS->SetTotalEnergyDeposit(aSpot->GetEnergy()); + fpSpotS->SetTrack(const_cast(aT->GetPrimaryTrack())); + fpSpotP->SetWeight(aT->GetPrimaryTrack()->GetWeight()); + fpSpotP->SetPosition(aSpot->GetPosition()); + fpSpotP->SetGlobalTime(aT->GetPrimaryTrack()->GetGlobalTime()); + fpSpotP->SetLocalTime(aT->GetPrimaryTrack()->GetLocalTime()); + fpSpotP->SetProperTime(aT->GetPrimaryTrack()->GetProperTime()); + fpSpotP->SetTouchableHandle(fTouchableHandle); + fpSpotP->SetProcessDefinedStep(fpProcess); + fpSpotP->SetStepStatus(fUserDefinedLimit); + pSensitive->Hit(fpSpotS); } } else diff --git a/source/parameterisations/gflash/src/GFlashShowerModel.cc b/source/parameterisations/gflash/src/GFlashShowerModel.cc index 1fddbd8d27..6923bd75dc 100644 --- a/source/parameterisations/gflash/src/GFlashShowerModel.cc +++ b/source/parameterisations/gflash/src/GFlashShowerModel.cc @@ -239,8 +239,6 @@ GFlashShowerModel::ElectronDoIt(const G4FastTrack& fastTrack, G4ThreeVector NewPositionShower = PositionShower; G4double StepLenght = 0.00; - G4int NSpotDeposited =0; - //-------------------------- /// Begin Longitudinal Loop //------------------------- @@ -299,9 +297,8 @@ GFlashShowerModel::ElectronDoIt(const G4FastTrack& fastTrack, StepLenght = Dz/2.00; //generate spots & hits: - for (int i = 0; i < DNsp; i++) + for (G4int i = 0; i < DNsp; ++i) { - NSpotDeposited++; GFlashEnergySpot Spot; //Spot energy: the same for all spots diff --git a/source/parameterisations/gflash/src/GVFlashShowerParameterisation.cc b/source/parameterisations/gflash/src/GVFlashShowerParameterisation.cc index d97ed2ba0a..58f935e461 100644 --- a/source/parameterisations/gflash/src/GVFlashShowerParameterisation.cc +++ b/source/parameterisations/gflash/src/GVFlashShowerParameterisation.cc @@ -62,10 +62,10 @@ G4double GVFlashShowerParameterisation::GetEffZ(const G4Material * mat ) // of given material // G4double z = 0.; - G4int nofElements = mat->GetNumberOfElements(); + G4int nofElements = (G4int)mat->GetNumberOfElements(); if (nofElements > 1) { - for (G4int i=0; iGetElement(i)->GetZ(); G4double massFraction = mat->GetFractionVector()[i]; // cout << mat->GetElement(i)->GetName() @@ -85,9 +85,9 @@ G4double GVFlashShowerParameterisation::GetEffA (const G4Material * mat ) // of given material // G4double a = 0.; - G4int nofElements = mat->GetNumberOfElements(); + G4int nofElements = (G4int)mat->GetNumberOfElements(); if (nofElements > 1) { - for (G4int i=0; iGetElement(i)->GetA()/(g/mole); G4double massFraction = mat->GetFractionVector()[i]; a += aOfElement*massFraction; diff --git a/source/particles/History b/source/particles/History index 3564f7f441..8ee68bb9a2 100644 --- a/source/particles/History +++ b/source/particles/History @@ -6,6 +6,64 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-18 Gabriele Cosmo (particles-V11-00-15) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1 + in G4IonTable. + +## 2022-11-14 I. Hrivnacova (particles-V11-00-14) +- Replaced reinterpret_cast with static_cast where possible + +## 2022-11-11 Alberto Ribon (particles-V11-00-13) +- G4HyperNucleiProperties : optimization improvement and minor clean-up. + +## 2022-11-02 Alberto Ribon (particles-V11-00-12) +- G4Triton, G4AntiTriton : corrected the lifetime value for triton + and anti_triton : the half-life (12.32 years) was incorrectly used + instead of the mean lifetime (17.774 years) for triton, whereas the + anti_triton was incorrectly treated as stable. + Thanks to the user Francisco Ogallar Ruiz for spotting and reporting it! + +## 2022-10-24 Dennis Wright (particles-V11-00-11) +- G4NuclideTableMessenger: add command /particle/manage/nuclide/min_meanlife + corresponding to G4NuclideTable::SetMeanLifeThreshold(). Default minimum + mean life is 1.0 ns. + In /particle/nuclideTable/min_halflife change default minumum halflife + to 0.693 + +## 2022-10-24 Dennis Wright (particles-V11-00-10) +- G4NuclideTable::entries() const : + replace static_cast(0) with std::size_t(0) + +## 2022-10-10 Dennis Wright (particles-V11-00-09) +- Use nuclide mean-life instead of half-life in G4NuclideTable in order to be + consistent with ENSDFSTATE data, which use mean-life. Provide two new + methods, SetMeanLifeThreshold and GetMeanLifeThreshold() so that the lifetimes + can be accessed as either half-life or mean-life. + +## 2022-10-05 Gabriele Cosmo (particles-V11-00-08) +- Fixed compilation warning on Intel/icx compiler for variable set + but never used in G4MuonRadiativeDecayChannelWithSpin. + +## 2022-09-27 Dennis Wright (particles-V11-00-07) +- Changed halflife threshold for nuclide creation to be consistent with + lifetimes in nuclear deexcitation code; in management/src/G4NuclideTable.cc + ctor, change threshold_of_halflife from 1000 ns to 1 ns + +## 2022-08-08 Alberto Ribon (particles-V11-00-06) +Fixed three bugs regarding the transportation of hypernuclei and anti-hypernuclei: +- G4Ion : set (forgotten) isGeneralIon to false for hypernuclei and + anti-hypernuclei (otherwise they would get the same processes as GenericIon). +- G4DoubleHyperDoubleNeutron, G4AntiDoubleHyperDoubleNeutron : added (forgotten) + call to SetDecayTable (otherwise the decay table would not be defined for + these particles). +- G4ParticleDefinition : protect the two methods GetNumberOfLambdasInHypernucleus() + and GetNumberOfAntiLambdasInAntiHypernucleus() against baryonic resonances + with high spins (such as N(2220), N(2250) and their anti-particles) which have + 8-digits PDG codes, but which are not hypernuclei or anti-hypernuclei. + +## 2022-07-02 Ben Morgan (particles-V11-00-05) +- Remove obsolete and unused `G4DynamicParticleFastVector` type alias. + ## 2022-05-16 Guilherme Amadio (particles-V11-00-04) - Replace getenv() calls for data variables with G4FindDataDir() diff --git a/source/particles/adjoint/src/G4AdjointAlpha.cc b/source/particles/adjoint/src/G4AdjointAlpha.cc index 46d80cbea3..6ebe07d917 100644 --- a/source/particles/adjoint/src/G4AdjointAlpha.cc +++ b/source/particles/adjoint/src/G4AdjointAlpha.cc @@ -41,7 +41,7 @@ G4AdjointAlpha* G4AdjointAlpha::Definition() const G4String name = "adj_alpha"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4AdjointIons* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4AdjointIons* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -69,7 +69,7 @@ G4AdjointAlpha* G4AdjointAlpha::Definition() //No Anti particle registered anInstance->SetAntiPDGEncoding(0); - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/adjoint/src/G4AdjointDeuteron.cc b/source/particles/adjoint/src/G4AdjointDeuteron.cc index 2291c71835..38d80c485b 100644 --- a/source/particles/adjoint/src/G4AdjointDeuteron.cc +++ b/source/particles/adjoint/src/G4AdjointDeuteron.cc @@ -42,7 +42,7 @@ G4AdjointDeuteron* G4AdjointDeuteron::Definition() const G4String name = "adj_deuteron"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4AdjointIons* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4AdjointIons* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -73,7 +73,7 @@ G4AdjointDeuteron* G4AdjointDeuteron::Definition() //No Anti particle registered anInstance->SetAntiPDGEncoding(0); - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/adjoint/src/G4AdjointElectron.cc b/source/particles/adjoint/src/G4AdjointElectron.cc index c7f45a15b1..f1327dad78 100644 --- a/source/particles/adjoint/src/G4AdjointElectron.cc +++ b/source/particles/adjoint/src/G4AdjointElectron.cc @@ -87,7 +87,7 @@ G4AdjointElectron* G4AdjointElectron::Definition() anInstance->SetPDGMagneticMoment( muB * 2.* 1.0011596521859 ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/adjoint/src/G4AdjointElectronFI.cc b/source/particles/adjoint/src/G4AdjointElectronFI.cc index cb3141fd70..054e7ce747 100644 --- a/source/particles/adjoint/src/G4AdjointElectronFI.cc +++ b/source/particles/adjoint/src/G4AdjointElectronFI.cc @@ -87,7 +87,7 @@ G4AdjointElectronFI* G4AdjointElectronFI::Definition() anInstance->SetPDGMagneticMoment( muB * 2.* 1.0011596521859 ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/adjoint/src/G4AdjointGamma.cc b/source/particles/adjoint/src/G4AdjointGamma.cc index 605f80522a..611889b3a9 100644 --- a/source/particles/adjoint/src/G4AdjointGamma.cc +++ b/source/particles/adjoint/src/G4AdjointGamma.cc @@ -71,7 +71,7 @@ G4AdjointGamma* G4AdjointGamma::Definition() false, "adj_gamma", 10000022 ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/adjoint/src/G4AdjointGenericIon.cc b/source/particles/adjoint/src/G4AdjointGenericIon.cc index 12275992d1..b84fc14abc 100644 --- a/source/particles/adjoint/src/G4AdjointGenericIon.cc +++ b/source/particles/adjoint/src/G4AdjointGenericIon.cc @@ -39,7 +39,7 @@ G4AdjointGenericIon* G4AdjointGenericIon::Definition() const G4String name = "adj_GenericIon"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4AdjointIons* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4AdjointIons* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -67,7 +67,7 @@ G4AdjointGenericIon* G4AdjointGenericIon::Definition() ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/adjoint/src/G4AdjointHe3.cc b/source/particles/adjoint/src/G4AdjointHe3.cc index ed505d6262..94bc105961 100644 --- a/source/particles/adjoint/src/G4AdjointHe3.cc +++ b/source/particles/adjoint/src/G4AdjointHe3.cc @@ -42,7 +42,7 @@ G4AdjointHe3* G4AdjointHe3::Definition() const G4String name = "adj_He3"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4AdjointIons* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4AdjointIons* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -73,7 +73,7 @@ G4AdjointHe3* G4AdjointHe3::Definition() //No Anti particle registered anInstance->SetAntiPDGEncoding(0); - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/adjoint/src/G4AdjointPositron.cc b/source/particles/adjoint/src/G4AdjointPositron.cc index be324d9b56..902897e4dd 100644 --- a/source/particles/adjoint/src/G4AdjointPositron.cc +++ b/source/particles/adjoint/src/G4AdjointPositron.cc @@ -86,7 +86,7 @@ G4AdjointPositron* G4AdjointPositron::Definition() anInstance->SetPDGMagneticMoment( muB * 2.* 1.0011596521859 ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/adjoint/src/G4AdjointProton.cc b/source/particles/adjoint/src/G4AdjointProton.cc index b6fcf95e77..978cb3853e 100644 --- a/source/particles/adjoint/src/G4AdjointProton.cc +++ b/source/particles/adjoint/src/G4AdjointProton.cc @@ -71,7 +71,7 @@ G4AdjointProton* G4AdjointProton::Definition() G4double mN = eplus*hbar_Planck/2./(proton_mass_c2 /c_squared); anInstance->SetPDGMagneticMoment( 2.792847351 * mN); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/adjoint/src/G4AdjointTriton.cc b/source/particles/adjoint/src/G4AdjointTriton.cc index 97287eda7d..1a3ee71eaf 100644 --- a/source/particles/adjoint/src/G4AdjointTriton.cc +++ b/source/particles/adjoint/src/G4AdjointTriton.cc @@ -41,7 +41,7 @@ G4AdjointTriton* G4AdjointTriton::Definition() const G4String name = "adj_triton"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4AdjointIons* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4AdjointIons* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -72,7 +72,7 @@ G4AdjointTriton* G4AdjointTriton::Definition() //No Anti particle registered anInstance->SetAntiPDGEncoding(0); - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/bosons/src/G4ChargedGeantino.cc b/source/particles/bosons/src/G4ChargedGeantino.cc index fb9f0d95d6..c59cdae26a 100644 --- a/source/particles/bosons/src/G4ChargedGeantino.cc +++ b/source/particles/bosons/src/G4ChargedGeantino.cc @@ -73,7 +73,7 @@ G4ChargedGeantino* G4ChargedGeantino::Definition() false, "geantino", 0 ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/bosons/src/G4Gamma.cc b/source/particles/bosons/src/G4Gamma.cc index 9c5dabc593..aa15c00954 100644 --- a/source/particles/bosons/src/G4Gamma.cc +++ b/source/particles/bosons/src/G4Gamma.cc @@ -73,7 +73,7 @@ G4Gamma* G4Gamma::Definition() false, "photon", 22 ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/bosons/src/G4Geantino.cc b/source/particles/bosons/src/G4Geantino.cc index b243c7d60d..81b8994f04 100644 --- a/source/particles/bosons/src/G4Geantino.cc +++ b/source/particles/bosons/src/G4Geantino.cc @@ -73,7 +73,7 @@ G4Geantino* G4Geantino::Definition() false, "geantino", 0 ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/bosons/src/G4OpticalPhoton.cc b/source/particles/bosons/src/G4OpticalPhoton.cc index 6b4c3ed634..92c3d0540e 100644 --- a/source/particles/bosons/src/G4OpticalPhoton.cc +++ b/source/particles/bosons/src/G4OpticalPhoton.cc @@ -73,7 +73,7 @@ G4OpticalPhoton* G4OpticalPhoton::Definition() false, "photon", 0 ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/bosons/src/G4PhononLong.cc b/source/particles/bosons/src/G4PhononLong.cc index 9c55f266fd..23dcc56e8e 100644 --- a/source/particles/bosons/src/G4PhononLong.cc +++ b/source/particles/bosons/src/G4PhononLong.cc @@ -64,7 +64,7 @@ G4PhononLong* G4PhononLong::Definition() false, "phononL", 0 ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/bosons/src/G4PhononTransFast.cc b/source/particles/bosons/src/G4PhononTransFast.cc index 8a559f7ded..d3cc42e5f7 100644 --- a/source/particles/bosons/src/G4PhononTransFast.cc +++ b/source/particles/bosons/src/G4PhononTransFast.cc @@ -62,7 +62,7 @@ G4PhononTransFast* G4PhononTransFast::Definition() false, "phononTF", 0 ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/bosons/src/G4PhononTransSlow.cc b/source/particles/bosons/src/G4PhononTransSlow.cc index f481585a2e..38557402f9 100644 --- a/source/particles/bosons/src/G4PhononTransSlow.cc +++ b/source/particles/bosons/src/G4PhononTransSlow.cc @@ -62,7 +62,7 @@ G4PhononTransSlow* G4PhononTransSlow::Definition() false, "phononTS", 0 ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/bosons/src/G4UnknownParticle.cc b/source/particles/bosons/src/G4UnknownParticle.cc index a4a5999240..f3a302f158 100644 --- a/source/particles/bosons/src/G4UnknownParticle.cc +++ b/source/particles/bosons/src/G4UnknownParticle.cc @@ -72,7 +72,7 @@ G4UnknownParticle* G4UnknownParticle::Definition() false, "geantino", 0 ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiLambda.cc b/source/particles/hadrons/barions/src/G4AntiLambda.cc index 9574c74428..141f37e1f6 100644 --- a/source/particles/hadrons/barions/src/G4AntiLambda.cc +++ b/source/particles/hadrons/barions/src/G4AntiLambda.cc @@ -95,7 +95,7 @@ G4AntiLambda* G4AntiLambda::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiLambdab.cc b/source/particles/hadrons/barions/src/G4AntiLambdab.cc index 06b4f7bd90..92f9d210e2 100644 --- a/source/particles/hadrons/barions/src/G4AntiLambdab.cc +++ b/source/particles/hadrons/barions/src/G4AntiLambdab.cc @@ -76,7 +76,7 @@ G4AntiLambdab* G4AntiLambdab::Definition() false, 1.470e-3*ns, NULL, false, "lambda_b"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc b/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc index aa63a36313..8750b243de 100644 --- a/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc @@ -77,7 +77,7 @@ G4AntiLambdacPlus* G4AntiLambdacPlus::Definition() // decay mode is not defined here, with expectation of pre-assigned. } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiNeutron.cc b/source/particles/hadrons/barions/src/G4AntiNeutron.cc index e3bd1289c0..9b836691a7 100644 --- a/source/particles/hadrons/barions/src/G4AntiNeutron.cc +++ b/source/particles/hadrons/barions/src/G4AntiNeutron.cc @@ -89,7 +89,7 @@ G4AntiNeutron* G4AntiNeutron::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc b/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc index 212f8eb866..669ed9f3f6 100644 --- a/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc @@ -97,7 +97,7 @@ G4AntiOmegaMinus* G4AntiOmegaMinus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiOmegabMinus.cc b/source/particles/hadrons/barions/src/G4AntiOmegabMinus.cc index fa87171303..527edc3ed9 100644 --- a/source/particles/hadrons/barions/src/G4AntiOmegabMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiOmegabMinus.cc @@ -75,7 +75,7 @@ G4AntiOmegabMinus* G4AntiOmegabMinus::Definition() false, 1.640e-3*ns, NULL, false, "omega_b"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc b/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc index 5f9462eed0..978092d185 100644 --- a/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc @@ -77,7 +77,7 @@ G4AntiOmegacZero* G4AntiOmegacZero::Definition() //Decay Table is not defined here, wth expectation of pre-assigned } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiProton.cc b/source/particles/hadrons/barions/src/G4AntiProton.cc index 1908551310..e925398019 100644 --- a/source/particles/hadrons/barions/src/G4AntiProton.cc +++ b/source/particles/hadrons/barions/src/G4AntiProton.cc @@ -80,7 +80,7 @@ G4AntiProton* G4AntiProton::Definition() G4double mN = eplus*hbar_Planck/2./(proton_mass_c2 /c_squared); anInstance->SetPDGMagneticMoment( -2.792847351 * mN); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc b/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc index 59a0ebcbc6..c64b921dd0 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc @@ -93,7 +93,7 @@ G4AntiSigmaMinus* G4AntiSigmaMinus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc index 8e77da8971..a8f1c55983 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc @@ -95,7 +95,7 @@ G4AntiSigmaPlus* G4AntiSigmaPlus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc b/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc index 9f4b001495..694cfc81a8 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc @@ -90,7 +90,7 @@ G4AntiSigmaZero* G4AntiSigmaZero::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiSigmabMinus.cc b/source/particles/hadrons/barions/src/G4AntiSigmabMinus.cc index 1fc378d83b..763911a9c3 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmabMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmabMinus.cc @@ -89,7 +89,7 @@ G4AntiSigmabMinus* G4AntiSigmabMinus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiSigmabPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmabPlus.cc index e980d114a8..6ca6fbcbc0 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmabPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmabPlus.cc @@ -89,7 +89,7 @@ G4AntiSigmabPlus* G4AntiSigmabPlus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiSigmabZero.cc b/source/particles/hadrons/barions/src/G4AntiSigmabZero.cc index 95a20741d3..c29c646cfe 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmabZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmabZero.cc @@ -89,7 +89,7 @@ G4AntiSigmabZero* G4AntiSigmabZero::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc index eeb7eea1e5..f959b06f36 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc @@ -87,7 +87,7 @@ G4AntiSigmacPlus* G4AntiSigmacPlus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc index 8865783e91..d4bc40c105 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc @@ -87,7 +87,7 @@ G4AntiSigmacPlusPlus* G4AntiSigmacPlusPlus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc b/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc index 8dd0878b3d..20c6f09da4 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc @@ -87,7 +87,7 @@ G4AntiSigmacZero* G4AntiSigmacZero::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiXiMinus.cc b/source/particles/hadrons/barions/src/G4AntiXiMinus.cc index 0709eb5546..09a7213830 100644 --- a/source/particles/hadrons/barions/src/G4AntiXiMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiXiMinus.cc @@ -92,7 +92,7 @@ G4AntiXiMinus* G4AntiXiMinus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiXiZero.cc b/source/particles/hadrons/barions/src/G4AntiXiZero.cc index 91e55ca6d8..2373a90560 100644 --- a/source/particles/hadrons/barions/src/G4AntiXiZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiXiZero.cc @@ -93,7 +93,7 @@ G4AntiXiZero* G4AntiXiZero::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiXibMinus.cc b/source/particles/hadrons/barions/src/G4AntiXibMinus.cc index 16e02b0506..a04e280449 100644 --- a/source/particles/hadrons/barions/src/G4AntiXibMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiXibMinus.cc @@ -76,7 +76,7 @@ G4AntiXibMinus* G4AntiXibMinus::Definition() false, 1.571e-3*ns, NULL, false, "xi_b"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiXibZero.cc b/source/particles/hadrons/barions/src/G4AntiXibZero.cc index 35b89163cb..0d3112b161 100644 --- a/source/particles/hadrons/barions/src/G4AntiXibZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiXibZero.cc @@ -76,7 +76,7 @@ G4AntiXibZero* G4AntiXibZero::Definition() false, 1.479e-3*ns, NULL, false, "xi_b"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiXicPlus.cc b/source/particles/hadrons/barions/src/G4AntiXicPlus.cc index d63ade1f8f..bac338c0d5 100644 --- a/source/particles/hadrons/barions/src/G4AntiXicPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiXicPlus.cc @@ -75,7 +75,7 @@ G4AntiXicPlus* G4AntiXicPlus::Definition() false, 0.442e-3*ns, NULL, false, "xi_c"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4AntiXicZero.cc b/source/particles/hadrons/barions/src/G4AntiXicZero.cc index bceaf80ab3..a7b1f2c155 100644 --- a/source/particles/hadrons/barions/src/G4AntiXicZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiXicZero.cc @@ -75,7 +75,7 @@ G4AntiXicZero* G4AntiXicZero::Definition() false, 0.112e-3*ns, NULL, false, "xi_c"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4Lambda.cc b/source/particles/hadrons/barions/src/G4Lambda.cc index 249826e537..a92f0ff4ac 100644 --- a/source/particles/hadrons/barions/src/G4Lambda.cc +++ b/source/particles/hadrons/barions/src/G4Lambda.cc @@ -95,7 +95,7 @@ G4Lambda* G4Lambda::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4Lambdab.cc b/source/particles/hadrons/barions/src/G4Lambdab.cc index 6be05ddbd3..dc5a300367 100644 --- a/source/particles/hadrons/barions/src/G4Lambdab.cc +++ b/source/particles/hadrons/barions/src/G4Lambdab.cc @@ -76,7 +76,7 @@ G4Lambdab* G4Lambdab::Definition() false, 1.470e-3*ns, NULL, false, "lambda_b"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4LambdacPlus.cc b/source/particles/hadrons/barions/src/G4LambdacPlus.cc index 11ab7efc4c..92a78c0ee3 100644 --- a/source/particles/hadrons/barions/src/G4LambdacPlus.cc +++ b/source/particles/hadrons/barions/src/G4LambdacPlus.cc @@ -75,7 +75,7 @@ G4LambdacPlus* G4LambdacPlus::Definition() false, 0.200e-3*ns, NULL, false, "lambda_c"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4Neutron.cc b/source/particles/hadrons/barions/src/G4Neutron.cc index a03b783611..687cbb350e 100644 --- a/source/particles/hadrons/barions/src/G4Neutron.cc +++ b/source/particles/hadrons/barions/src/G4Neutron.cc @@ -56,7 +56,7 @@ G4Neutron* G4Neutron::Definition() const G4String name = "neutron"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4Ions* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -91,7 +91,7 @@ G4Neutron* G4Neutron::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4OmegaMinus.cc b/source/particles/hadrons/barions/src/G4OmegaMinus.cc index 45628a9cf4..a417f7432a 100644 --- a/source/particles/hadrons/barions/src/G4OmegaMinus.cc +++ b/source/particles/hadrons/barions/src/G4OmegaMinus.cc @@ -97,7 +97,7 @@ G4OmegaMinus* G4OmegaMinus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4OmegabMinus.cc b/source/particles/hadrons/barions/src/G4OmegabMinus.cc index 16e5d99435..9fcc0a05e6 100644 --- a/source/particles/hadrons/barions/src/G4OmegabMinus.cc +++ b/source/particles/hadrons/barions/src/G4OmegabMinus.cc @@ -75,7 +75,7 @@ G4OmegabMinus* G4OmegabMinus::Definition() false, 1.640e-3*ns, NULL, false, "omega_b"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4OmegacZero.cc b/source/particles/hadrons/barions/src/G4OmegacZero.cc index 576ced050e..84d7577a06 100644 --- a/source/particles/hadrons/barions/src/G4OmegacZero.cc +++ b/source/particles/hadrons/barions/src/G4OmegacZero.cc @@ -75,7 +75,7 @@ G4OmegacZero* G4OmegacZero::Definition() false, 0.069e-3*ns, NULL, false, "omega_c"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4Proton.cc b/source/particles/hadrons/barions/src/G4Proton.cc index 6166af4c29..d38c678ff1 100644 --- a/source/particles/hadrons/barions/src/G4Proton.cc +++ b/source/particles/hadrons/barions/src/G4Proton.cc @@ -51,7 +51,7 @@ G4Proton* G4Proton::Definition() const G4String name = "proton"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4Ions* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -80,7 +80,7 @@ G4Proton* G4Proton::Definition() G4double mN = eplus*hbar_Planck/2./(proton_mass_c2 /c_squared); anInstance->SetPDGMagneticMoment( 2.792847351 * mN); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4SigmaMinus.cc b/source/particles/hadrons/barions/src/G4SigmaMinus.cc index be20339835..281d59975d 100644 --- a/source/particles/hadrons/barions/src/G4SigmaMinus.cc +++ b/source/particles/hadrons/barions/src/G4SigmaMinus.cc @@ -93,7 +93,7 @@ G4SigmaMinus* G4SigmaMinus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4SigmaPlus.cc b/source/particles/hadrons/barions/src/G4SigmaPlus.cc index 87f57aa195..23047a727f 100644 --- a/source/particles/hadrons/barions/src/G4SigmaPlus.cc +++ b/source/particles/hadrons/barions/src/G4SigmaPlus.cc @@ -95,7 +95,7 @@ G4SigmaPlus* G4SigmaPlus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4SigmaZero.cc b/source/particles/hadrons/barions/src/G4SigmaZero.cc index e991b767d4..6574e9d5a8 100644 --- a/source/particles/hadrons/barions/src/G4SigmaZero.cc +++ b/source/particles/hadrons/barions/src/G4SigmaZero.cc @@ -89,7 +89,7 @@ G4SigmaZero* G4SigmaZero::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4SigmabMinus.cc b/source/particles/hadrons/barions/src/G4SigmabMinus.cc index 963cc84735..9669abdb78 100644 --- a/source/particles/hadrons/barions/src/G4SigmabMinus.cc +++ b/source/particles/hadrons/barions/src/G4SigmabMinus.cc @@ -89,7 +89,7 @@ G4SigmabMinus* G4SigmabMinus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4SigmabPlus.cc b/source/particles/hadrons/barions/src/G4SigmabPlus.cc index f603c09e80..f3be1e2025 100644 --- a/source/particles/hadrons/barions/src/G4SigmabPlus.cc +++ b/source/particles/hadrons/barions/src/G4SigmabPlus.cc @@ -89,7 +89,7 @@ G4SigmabPlus* G4SigmabPlus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4SigmabZero.cc b/source/particles/hadrons/barions/src/G4SigmabZero.cc index c4a2aae381..ce972dd08f 100644 --- a/source/particles/hadrons/barions/src/G4SigmabZero.cc +++ b/source/particles/hadrons/barions/src/G4SigmabZero.cc @@ -89,7 +89,7 @@ G4SigmabZero* G4SigmabZero::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4SigmacPlus.cc b/source/particles/hadrons/barions/src/G4SigmacPlus.cc index c9886f56dd..39f541794b 100644 --- a/source/particles/hadrons/barions/src/G4SigmacPlus.cc +++ b/source/particles/hadrons/barions/src/G4SigmacPlus.cc @@ -87,7 +87,7 @@ G4SigmacPlus* G4SigmacPlus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc b/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc index 69f29e6161..93c384d339 100644 --- a/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc +++ b/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc @@ -87,7 +87,7 @@ G4SigmacPlusPlus* G4SigmacPlusPlus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4SigmacZero.cc b/source/particles/hadrons/barions/src/G4SigmacZero.cc index 71488181c7..f573fb69b6 100644 --- a/source/particles/hadrons/barions/src/G4SigmacZero.cc +++ b/source/particles/hadrons/barions/src/G4SigmacZero.cc @@ -87,7 +87,7 @@ G4SigmacZero* G4SigmacZero::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4XiMinus.cc b/source/particles/hadrons/barions/src/G4XiMinus.cc index 721674b6b2..4a89829ced 100644 --- a/source/particles/hadrons/barions/src/G4XiMinus.cc +++ b/source/particles/hadrons/barions/src/G4XiMinus.cc @@ -93,7 +93,7 @@ G4XiMinus* G4XiMinus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4XiZero.cc b/source/particles/hadrons/barions/src/G4XiZero.cc index f519f266eb..df3ec001ce 100644 --- a/source/particles/hadrons/barions/src/G4XiZero.cc +++ b/source/particles/hadrons/barions/src/G4XiZero.cc @@ -93,7 +93,7 @@ G4XiZero* G4XiZero::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4XibMinus.cc b/source/particles/hadrons/barions/src/G4XibMinus.cc index 31492434bf..02c0e44603 100644 --- a/source/particles/hadrons/barions/src/G4XibMinus.cc +++ b/source/particles/hadrons/barions/src/G4XibMinus.cc @@ -76,7 +76,7 @@ G4XibMinus* G4XibMinus::Definition() false, 1.571e-3*ns, NULL, false, "xi_b"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4XibZero.cc b/source/particles/hadrons/barions/src/G4XibZero.cc index dbfcf3a295..0d4abd13d1 100644 --- a/source/particles/hadrons/barions/src/G4XibZero.cc +++ b/source/particles/hadrons/barions/src/G4XibZero.cc @@ -76,7 +76,7 @@ G4XibZero* G4XibZero::Definition() false, 1.479e-3*ns, NULL, false, "xi_b"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4XicPlus.cc b/source/particles/hadrons/barions/src/G4XicPlus.cc index 676e515f40..57ace9d40b 100644 --- a/source/particles/hadrons/barions/src/G4XicPlus.cc +++ b/source/particles/hadrons/barions/src/G4XicPlus.cc @@ -75,7 +75,7 @@ G4XicPlus* G4XicPlus::Definition() false, 0.442e-3*ns, NULL, false, "xi_c"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/barions/src/G4XicZero.cc b/source/particles/hadrons/barions/src/G4XicZero.cc index c4c3d835ba..1d62571c1a 100644 --- a/source/particles/hadrons/barions/src/G4XicZero.cc +++ b/source/particles/hadrons/barions/src/G4XicZero.cc @@ -75,7 +75,7 @@ G4XicZero* G4XicZero::Definition() false, 0.112e-3*ns, NULL, false, "xi_c"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4Alpha.cc b/source/particles/hadrons/ions/src/G4Alpha.cc index f4877481a5..8ece8734f9 100644 --- a/source/particles/hadrons/ions/src/G4Alpha.cc +++ b/source/particles/hadrons/ions/src/G4Alpha.cc @@ -51,7 +51,7 @@ G4Alpha* G4Alpha::Definition() const G4String name = "alpha"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4Ions* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -76,7 +76,7 @@ G4Alpha* G4Alpha::Definition() } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4AntiAlpha.cc b/source/particles/hadrons/ions/src/G4AntiAlpha.cc index bf534a1205..5b05daccbf 100644 --- a/source/particles/hadrons/ions/src/G4AntiAlpha.cc +++ b/source/particles/hadrons/ions/src/G4AntiAlpha.cc @@ -51,7 +51,7 @@ G4AntiAlpha* G4AntiAlpha::Definition() const G4String name = "anti_alpha"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4Ions* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -76,7 +76,7 @@ G4AntiAlpha* G4AntiAlpha::Definition() } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4AntiDeuteron.cc b/source/particles/hadrons/ions/src/G4AntiDeuteron.cc index 6cc211a5b4..343b8ac3ad 100644 --- a/source/particles/hadrons/ions/src/G4AntiDeuteron.cc +++ b/source/particles/hadrons/ions/src/G4AntiDeuteron.cc @@ -52,7 +52,7 @@ G4AntiDeuteron* G4AntiDeuteron::Definition() const G4String name = "anti_deuteron"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4Ions* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -81,7 +81,7 @@ G4AntiDeuteron* G4AntiDeuteron::Definition() } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4AntiDoubleHyperDoubleNeutron.cc b/source/particles/hadrons/ions/src/G4AntiDoubleHyperDoubleNeutron.cc index a8820e6e2f..a19516b919 100644 --- a/source/particles/hadrons/ions/src/G4AntiDoubleHyperDoubleNeutron.cc +++ b/source/particles/hadrons/ions/src/G4AntiDoubleHyperDoubleNeutron.cc @@ -47,7 +47,7 @@ G4AntiDoubleHyperDoubleNeutron* G4AntiDoubleHyperDoubleNeutron::Definition() { const G4String name = "anti_doublehyperdoubleneutron"; // search in particle table G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast< G4Ions* >( pTable->FindParticle( name ) ); + G4Ions* anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) ); if ( anInstance == nullptr ) { // create particle // @@ -85,8 +85,10 @@ G4AntiDoubleHyperDoubleNeutron* G4AntiDoubleHyperDoubleNeutron::Definition() { mode[2] = new G4PhaseSpaceDecayChannel( "anti_doublehyperdoubleneutron", br_lambda_to_n_piz, 5, "anti_neutron", "anti_neutron", "anti_lambda", "anti_neutron", "pi0" ); for ( G4int index = 0; index < 3; ++index ) table->Insert( mode[index] ); + delete [] mode; + anInstance->SetDecayTable( table ); } - theInstance = reinterpret_cast< G4AntiDoubleHyperDoubleNeutron* >( anInstance ); + theInstance = static_cast< G4AntiDoubleHyperDoubleNeutron* >( anInstance ); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4AntiDoubleHyperH4.cc b/source/particles/hadrons/ions/src/G4AntiDoubleHyperH4.cc index d8cc087e70..f9e2e9c156 100644 --- a/source/particles/hadrons/ions/src/G4AntiDoubleHyperH4.cc +++ b/source/particles/hadrons/ions/src/G4AntiDoubleHyperH4.cc @@ -47,7 +47,7 @@ G4AntiDoubleHyperH4* G4AntiDoubleHyperH4::Definition() { const G4String name = "anti_doublehyperH4"; // search in particle table G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast< G4Ions* >( pTable->FindParticle( name ) ); + G4Ions* anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) ); if ( anInstance == nullptr ) { // create particle // @@ -90,7 +90,7 @@ G4AntiDoubleHyperH4* G4AntiDoubleHyperH4::Definition() { delete [] mode; anInstance->SetDecayTable( table ); } - theInstance = reinterpret_cast< G4AntiDoubleHyperH4* >( anInstance ); + theInstance = static_cast< G4AntiDoubleHyperH4* >( anInstance ); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4AntiHe3.cc b/source/particles/hadrons/ions/src/G4AntiHe3.cc index d6f8593955..c17ab09d0f 100644 --- a/source/particles/hadrons/ions/src/G4AntiHe3.cc +++ b/source/particles/hadrons/ions/src/G4AntiHe3.cc @@ -52,7 +52,7 @@ G4AntiHe3* G4AntiHe3::Definition() const G4String name = "anti_He3"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4Ions* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -81,7 +81,7 @@ G4AntiHe3* G4AntiHe3::Definition() } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4AntiHyperAlpha.cc b/source/particles/hadrons/ions/src/G4AntiHyperAlpha.cc index a783a1c5d9..33244ec0ec 100644 --- a/source/particles/hadrons/ions/src/G4AntiHyperAlpha.cc +++ b/source/particles/hadrons/ions/src/G4AntiHyperAlpha.cc @@ -47,7 +47,7 @@ G4AntiHyperAlpha* G4AntiHyperAlpha::Definition() { const G4String name = "anti_hyperalpha"; // search in particle table G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast< G4Ions* >( pTable->FindParticle( name ) ); + G4Ions* anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) ); if ( anInstance == nullptr ) { // create particle // @@ -109,7 +109,7 @@ G4AntiHyperAlpha* G4AntiHyperAlpha::Definition() { delete [] mode; anInstance->SetDecayTable( table ); } - theInstance = reinterpret_cast< G4AntiHyperAlpha* >( anInstance ); + theInstance = static_cast< G4AntiHyperAlpha* >( anInstance ); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4AntiHyperH4.cc b/source/particles/hadrons/ions/src/G4AntiHyperH4.cc index e87f57cce0..df6bccbb86 100644 --- a/source/particles/hadrons/ions/src/G4AntiHyperH4.cc +++ b/source/particles/hadrons/ions/src/G4AntiHyperH4.cc @@ -47,7 +47,7 @@ G4AntiHyperH4* G4AntiHyperH4::Definition() { const G4String name = "anti_hyperH4"; // search in particle table G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast< G4Ions* >( pTable->FindParticle( name ) ); + G4Ions* anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) ); if ( anInstance == nullptr ) { // create particle // @@ -109,7 +109,7 @@ G4AntiHyperH4* G4AntiHyperH4::Definition() { delete [] mode; anInstance->SetDecayTable( table ); } - theInstance = reinterpret_cast< G4AntiHyperH4* >( anInstance ); + theInstance = static_cast< G4AntiHyperH4* >( anInstance ); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4AntiHyperHe5.cc b/source/particles/hadrons/ions/src/G4AntiHyperHe5.cc index dfef02da95..8a0a15f0fd 100644 --- a/source/particles/hadrons/ions/src/G4AntiHyperHe5.cc +++ b/source/particles/hadrons/ions/src/G4AntiHyperHe5.cc @@ -47,7 +47,7 @@ G4AntiHyperHe5* G4AntiHyperHe5::Definition() { const G4String name = "anti_hyperHe5"; // search in particle table G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast< G4Ions* >( pTable->FindParticle( name ) ); + G4Ions* anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) ); if ( anInstance == nullptr ) { // create particle // @@ -107,7 +107,7 @@ G4AntiHyperHe5* G4AntiHyperHe5::Definition() { delete [] mode; anInstance->SetDecayTable( table ); } - theInstance = reinterpret_cast< G4AntiHyperHe5* >( anInstance ); + theInstance = static_cast< G4AntiHyperHe5* >( anInstance ); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4AntiHyperTriton.cc b/source/particles/hadrons/ions/src/G4AntiHyperTriton.cc index f6bf033fd1..89aceac730 100644 --- a/source/particles/hadrons/ions/src/G4AntiHyperTriton.cc +++ b/source/particles/hadrons/ions/src/G4AntiHyperTriton.cc @@ -47,7 +47,7 @@ G4AntiHyperTriton* G4AntiHyperTriton::Definition() { const G4String name = "anti_hypertriton"; // search in particle table G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast< G4Ions* >( pTable->FindParticle( name ) ); + G4Ions* anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) ); if ( anInstance == nullptr ) { // create particle // @@ -90,7 +90,7 @@ G4AntiHyperTriton* G4AntiHyperTriton::Definition() { delete [] mode; anInstance->SetDecayTable( table ); } - theInstance = reinterpret_cast< G4AntiHyperTriton* >( anInstance ); + theInstance = static_cast< G4AntiHyperTriton* >( anInstance ); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4AntiTriton.cc b/source/particles/hadrons/ions/src/G4AntiTriton.cc index b976d37f83..3c92411816 100644 --- a/source/particles/hadrons/ions/src/G4AntiTriton.cc +++ b/source/particles/hadrons/ions/src/G4AntiTriton.cc @@ -52,7 +52,7 @@ G4AntiTriton* G4AntiTriton::Definition() const G4String name = "anti_triton"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4Ions* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -70,7 +70,7 @@ G4AntiTriton* G4AntiTriton::Definition() 1, +1, 0, 0, 0, 0, "anti_nucleus", 0, -3, -1000010030, - true, -1.0, NULL, + true, 17.774*year, nullptr, false, "static", 1000010030, 0.0, 0 ); @@ -81,7 +81,7 @@ G4AntiTriton* G4AntiTriton::Definition() } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4Deuteron.cc b/source/particles/hadrons/ions/src/G4Deuteron.cc index c1a49cf616..ca225ece07 100644 --- a/source/particles/hadrons/ions/src/G4Deuteron.cc +++ b/source/particles/hadrons/ions/src/G4Deuteron.cc @@ -52,7 +52,7 @@ G4Deuteron* G4Deuteron::Definition() const G4String name = "deuteron"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4Ions* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -81,7 +81,7 @@ G4Deuteron* G4Deuteron::Definition() } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4DoubleHyperDoubleNeutron.cc b/source/particles/hadrons/ions/src/G4DoubleHyperDoubleNeutron.cc index 5fd2fe7d06..3e5bea2f6e 100644 --- a/source/particles/hadrons/ions/src/G4DoubleHyperDoubleNeutron.cc +++ b/source/particles/hadrons/ions/src/G4DoubleHyperDoubleNeutron.cc @@ -47,7 +47,7 @@ G4DoubleHyperDoubleNeutron* G4DoubleHyperDoubleNeutron::Definition() { const G4String name = "doublehyperdoubleneutron"; // search in particle table G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast< G4Ions* >( pTable->FindParticle( name ) ); + G4Ions* anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) ); if ( anInstance == nullptr ) { // create particle // @@ -85,8 +85,10 @@ G4DoubleHyperDoubleNeutron* G4DoubleHyperDoubleNeutron::Definition() { mode[2] = new G4PhaseSpaceDecayChannel( "doublehyperdoubleneutron", br_lambda_to_n_piz, 5, "neutron", "neutron", "lambda", "neutron", "pi0" ); for ( G4int index = 0; index < 3; ++index ) table->Insert( mode[index] ); + delete [] mode; + anInstance->SetDecayTable( table ); } - theInstance = reinterpret_cast< G4DoubleHyperDoubleNeutron* >( anInstance ); + theInstance = static_cast< G4DoubleHyperDoubleNeutron* >( anInstance ); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4DoubleHyperH4.cc b/source/particles/hadrons/ions/src/G4DoubleHyperH4.cc index 29d5329ada..b2dd13b088 100644 --- a/source/particles/hadrons/ions/src/G4DoubleHyperH4.cc +++ b/source/particles/hadrons/ions/src/G4DoubleHyperH4.cc @@ -47,7 +47,7 @@ G4DoubleHyperH4* G4DoubleHyperH4::Definition() { const G4String name = "doublehyperH4"; // search in particle table G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast< G4Ions* >( pTable->FindParticle( name ) ); + G4Ions* anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) ); if ( anInstance == nullptr ) { // create particle // @@ -90,7 +90,7 @@ G4DoubleHyperH4* G4DoubleHyperH4::Definition() { delete [] mode; anInstance->SetDecayTable( table ); } - theInstance = reinterpret_cast< G4DoubleHyperH4* >( anInstance ); + theInstance = static_cast< G4DoubleHyperH4* >( anInstance ); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4GenericIon.cc b/source/particles/hadrons/ions/src/G4GenericIon.cc index bf1073e8fa..ecd0b77145 100644 --- a/source/particles/hadrons/ions/src/G4GenericIon.cc +++ b/source/particles/hadrons/ions/src/G4GenericIon.cc @@ -51,7 +51,7 @@ G4GenericIon* G4GenericIon::Definition() const G4String name = "GenericIon"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4Ions* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -79,7 +79,7 @@ G4GenericIon* G4GenericIon::Definition() ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); pTable->SetGenericIon(theInstance); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4He3.cc b/source/particles/hadrons/ions/src/G4He3.cc index fcf4166919..815e7d30fe 100644 --- a/source/particles/hadrons/ions/src/G4He3.cc +++ b/source/particles/hadrons/ions/src/G4He3.cc @@ -52,7 +52,7 @@ G4He3* G4He3::Definition() const G4String name = "He3"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4Ions* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -81,7 +81,7 @@ G4He3* G4He3::Definition() } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4HyperAlpha.cc b/source/particles/hadrons/ions/src/G4HyperAlpha.cc index ccca1b6916..0e1f60faa7 100644 --- a/source/particles/hadrons/ions/src/G4HyperAlpha.cc +++ b/source/particles/hadrons/ions/src/G4HyperAlpha.cc @@ -47,7 +47,7 @@ G4HyperAlpha* G4HyperAlpha::Definition() { const G4String name = "hyperalpha"; // search in particle table G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast< G4Ions* >( pTable->FindParticle( name ) ); + G4Ions* anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) ); if ( anInstance == nullptr ) { // create particle // @@ -109,7 +109,7 @@ G4HyperAlpha* G4HyperAlpha::Definition() { delete [] mode; anInstance->SetDecayTable( table ); } - theInstance = reinterpret_cast< G4HyperAlpha* >( anInstance ); + theInstance = static_cast< G4HyperAlpha* >( anInstance ); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4HyperH4.cc b/source/particles/hadrons/ions/src/G4HyperH4.cc index 29b2ceb92a..6079616531 100644 --- a/source/particles/hadrons/ions/src/G4HyperH4.cc +++ b/source/particles/hadrons/ions/src/G4HyperH4.cc @@ -47,7 +47,7 @@ G4HyperH4* G4HyperH4::Definition() { const G4String name = "hyperH4"; // search in particle table G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast< G4Ions* >( pTable->FindParticle( name ) ); + G4Ions* anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) ); if ( anInstance == nullptr ) { // create particle // @@ -109,7 +109,7 @@ G4HyperH4* G4HyperH4::Definition() { delete [] mode; anInstance->SetDecayTable( table ); } - theInstance = reinterpret_cast< G4HyperH4* >( anInstance ); + theInstance = static_cast< G4HyperH4* >( anInstance ); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4HyperHe5.cc b/source/particles/hadrons/ions/src/G4HyperHe5.cc index 45c50f603b..ce2af1d077 100644 --- a/source/particles/hadrons/ions/src/G4HyperHe5.cc +++ b/source/particles/hadrons/ions/src/G4HyperHe5.cc @@ -47,7 +47,7 @@ G4HyperHe5* G4HyperHe5::Definition() { const G4String name = "hyperHe5"; // search in particle table G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast< G4Ions* >( pTable->FindParticle( name ) ); + G4Ions* anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) ); if ( anInstance == nullptr ) { // create particle // @@ -108,7 +108,7 @@ G4HyperHe5* G4HyperHe5::Definition() { delete [] mode; anInstance->SetDecayTable( table ); } - theInstance = reinterpret_cast< G4HyperHe5* >( anInstance ); + theInstance = static_cast< G4HyperHe5* >( anInstance ); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4HyperTriton.cc b/source/particles/hadrons/ions/src/G4HyperTriton.cc index a0eadd68bc..9eadebfc26 100644 --- a/source/particles/hadrons/ions/src/G4HyperTriton.cc +++ b/source/particles/hadrons/ions/src/G4HyperTriton.cc @@ -47,7 +47,7 @@ G4HyperTriton* G4HyperTriton::Definition() { const G4String name = "hypertriton"; // search in particle table G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast< G4Ions* >( pTable->FindParticle( name ) ); + G4Ions* anInstance = static_cast< G4Ions* >( pTable->FindParticle( name ) ); if ( anInstance == nullptr ) { // create particle // @@ -90,7 +90,7 @@ G4HyperTriton* G4HyperTriton::Definition() { delete [] mode; anInstance->SetDecayTable( table ); } - theInstance = reinterpret_cast< G4HyperTriton* >( anInstance ); + theInstance = static_cast< G4HyperTriton* >( anInstance ); return theInstance; } diff --git a/source/particles/hadrons/ions/src/G4Triton.cc b/source/particles/hadrons/ions/src/G4Triton.cc index e88eff4bc1..d323867c2d 100644 --- a/source/particles/hadrons/ions/src/G4Triton.cc +++ b/source/particles/hadrons/ions/src/G4Triton.cc @@ -52,7 +52,7 @@ G4Triton* G4Triton::Definition() const G4String name = "triton"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); - G4Ions* anInstance = reinterpret_cast(pTable->FindParticle(name)); + G4Ions* anInstance = static_cast(pTable->FindParticle(name)); if (anInstance ==0) { // create particle @@ -70,7 +70,7 @@ G4Triton* G4Triton::Definition() 1, +1, 0, 0, 0, 0, "nucleus", 0, +3, 1000010030, - true, 12.32*year, nullptr, + true, 17.774*year, nullptr, false, "static", -1000010030, 0.0, 0 ); @@ -81,7 +81,7 @@ G4Triton* G4Triton::Definition() } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc index 4236ce776c..2fde4ed36a 100644 --- a/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc @@ -71,7 +71,7 @@ G4AntiBMesonZero* G4AntiBMesonZero::Definition() false, 1.520e-3*ns, NULL, false, "B"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc index 4a87369df8..355f340b9c 100644 --- a/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc @@ -71,7 +71,7 @@ G4AntiBsMesonZero* G4AntiBsMesonZero::Definition() false, 1.505e-3*ns, NULL, false, "Bs"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc index 0a2a0b711e..28f4d68bed 100644 --- a/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc @@ -71,7 +71,7 @@ G4AntiDMesonZero* G4AntiDMesonZero::Definition() false, 0.4101e-3*ns, NULL, false, "D"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc b/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc index 2c8d77f113..d64fcd2b52 100644 --- a/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc @@ -90,7 +90,7 @@ G4AntiKaonZero* G4AntiKaonZero::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4BMesonMinus.cc b/source/particles/hadrons/mesons/src/G4BMesonMinus.cc index f87f637e65..cc3a4e6e91 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonMinus.cc @@ -71,7 +71,7 @@ G4BMesonMinus* G4BMesonMinus::Definition() false, 1.638e-3*ns, NULL, false, "B"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4BMesonPlus.cc b/source/particles/hadrons/mesons/src/G4BMesonPlus.cc index 5409ab9f8a..e94ce825f6 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonPlus.cc @@ -71,7 +71,7 @@ G4BMesonPlus* G4BMesonPlus::Definition() false, 1.638e-3*ns, NULL, false, "B"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4BMesonZero.cc b/source/particles/hadrons/mesons/src/G4BMesonZero.cc index c89cbe2456..7fa48409b6 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonZero.cc @@ -71,7 +71,7 @@ G4BMesonZero* G4BMesonZero::Definition() false, 1.520e-3*ns, NULL, false, "B"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4BcMesonMinus.cc b/source/particles/hadrons/mesons/src/G4BcMesonMinus.cc index b0922d69d8..453801dbc1 100644 --- a/source/particles/hadrons/mesons/src/G4BcMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4BcMesonMinus.cc @@ -70,7 +70,7 @@ G4BcMesonMinus* G4BcMesonMinus::Definition() false, 0.507e-3*ns, NULL, false, "Bc"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4BcMesonPlus.cc b/source/particles/hadrons/mesons/src/G4BcMesonPlus.cc index 7b7c83430b..84f9735df6 100644 --- a/source/particles/hadrons/mesons/src/G4BcMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4BcMesonPlus.cc @@ -70,7 +70,7 @@ G4BcMesonPlus* G4BcMesonPlus::Definition() false, 0.507e-3*ns, NULL, false, "Bc"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4BsMesonZero.cc b/source/particles/hadrons/mesons/src/G4BsMesonZero.cc index 40ff36ec0d..42911fd873 100644 --- a/source/particles/hadrons/mesons/src/G4BsMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4BsMesonZero.cc @@ -70,7 +70,7 @@ G4BsMesonZero* G4BsMesonZero::Definition() false, 1.505e-3*ns, NULL, false, "Bs"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4DMesonMinus.cc b/source/particles/hadrons/mesons/src/G4DMesonMinus.cc index 7b1f107662..ad2d1c6ae1 100644 --- a/source/particles/hadrons/mesons/src/G4DMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4DMesonMinus.cc @@ -72,7 +72,7 @@ G4DMesonMinus* G4DMesonMinus::Definition() false, 1.040e-3*ns, NULL, false, "D"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4DMesonPlus.cc b/source/particles/hadrons/mesons/src/G4DMesonPlus.cc index dca98decb9..cd86a5323a 100644 --- a/source/particles/hadrons/mesons/src/G4DMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4DMesonPlus.cc @@ -72,7 +72,7 @@ G4DMesonPlus* G4DMesonPlus::Definition() false, 1.040e-3*ns, NULL, false, "D"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4DMesonZero.cc b/source/particles/hadrons/mesons/src/G4DMesonZero.cc index 633b3052c3..1634d44a2a 100644 --- a/source/particles/hadrons/mesons/src/G4DMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4DMesonZero.cc @@ -71,7 +71,7 @@ G4DMesonZero* G4DMesonZero::Definition() false, "D" ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc b/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc index ab986bed3d..21b9968588 100644 --- a/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc @@ -72,7 +72,7 @@ G4DsMesonMinus* G4DsMesonMinus::Definition() false, "Ds" ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc b/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc index 899397cba3..30b75c4758 100644 --- a/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc @@ -72,7 +72,7 @@ G4DsMesonPlus* G4DsMesonPlus::Definition() false, "Ds" ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4Eta.cc b/source/particles/hadrons/mesons/src/G4Eta.cc index 56a27316bb..1515a86476 100644 --- a/source/particles/hadrons/mesons/src/G4Eta.cc +++ b/source/particles/hadrons/mesons/src/G4Eta.cc @@ -96,7 +96,7 @@ G4Eta* G4Eta::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4EtaPrime.cc b/source/particles/hadrons/mesons/src/G4EtaPrime.cc index 2b73ef9d46..f550d5da36 100644 --- a/source/particles/hadrons/mesons/src/G4EtaPrime.cc +++ b/source/particles/hadrons/mesons/src/G4EtaPrime.cc @@ -98,7 +98,7 @@ G4EtaPrime* G4EtaPrime::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4Etac.cc b/source/particles/hadrons/mesons/src/G4Etac.cc index f34409308e..5704c9c48e 100644 --- a/source/particles/hadrons/mesons/src/G4Etac.cc +++ b/source/particles/hadrons/mesons/src/G4Etac.cc @@ -76,7 +76,7 @@ G4Etac* G4Etac::Definition() false, 0.0*ns, NULL, false, "etac", 441); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4JPsi.cc b/source/particles/hadrons/mesons/src/G4JPsi.cc index cdaf5b7027..7702e45188 100644 --- a/source/particles/hadrons/mesons/src/G4JPsi.cc +++ b/source/particles/hadrons/mesons/src/G4JPsi.cc @@ -71,7 +71,7 @@ G4JPsi* G4JPsi::Definition() false, 0.0*ns, NULL, false, "J/psi", 443); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4KaonMinus.cc b/source/particles/hadrons/mesons/src/G4KaonMinus.cc index 932e23ad97..26228a3323 100644 --- a/source/particles/hadrons/mesons/src/G4KaonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4KaonMinus.cc @@ -100,7 +100,7 @@ G4KaonMinus* G4KaonMinus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4KaonPlus.cc b/source/particles/hadrons/mesons/src/G4KaonPlus.cc index 172e8e25dd..0acf8a70c2 100644 --- a/source/particles/hadrons/mesons/src/G4KaonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4KaonPlus.cc @@ -100,7 +100,7 @@ G4KaonPlus* G4KaonPlus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4KaonZero.cc b/source/particles/hadrons/mesons/src/G4KaonZero.cc index 05780adb22..0f59dd7c7b 100644 --- a/source/particles/hadrons/mesons/src/G4KaonZero.cc +++ b/source/particles/hadrons/mesons/src/G4KaonZero.cc @@ -91,7 +91,7 @@ G4KaonZero* G4KaonZero::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc b/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc index 1225a1ca5d..a06ba485fb 100644 --- a/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc +++ b/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc @@ -102,7 +102,7 @@ G4KaonZeroLong* G4KaonZeroLong::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc b/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc index 99f99c8777..c4a2fb4ba7 100644 --- a/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc +++ b/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc @@ -91,7 +91,7 @@ G4KaonZeroShort* G4KaonZeroShort::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4PionMinus.cc b/source/particles/hadrons/mesons/src/G4PionMinus.cc index b9183897ec..e75b60b7b4 100644 --- a/source/particles/hadrons/mesons/src/G4PionMinus.cc +++ b/source/particles/hadrons/mesons/src/G4PionMinus.cc @@ -85,7 +85,7 @@ G4PionMinus* G4PionMinus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4PionPlus.cc b/source/particles/hadrons/mesons/src/G4PionPlus.cc index 44820b03d3..6a06d830e0 100644 --- a/source/particles/hadrons/mesons/src/G4PionPlus.cc +++ b/source/particles/hadrons/mesons/src/G4PionPlus.cc @@ -85,7 +85,7 @@ G4PionPlus* G4PionPlus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4PionZero.cc b/source/particles/hadrons/mesons/src/G4PionZero.cc index 8d358bf7c6..49bece7230 100644 --- a/source/particles/hadrons/mesons/src/G4PionZero.cc +++ b/source/particles/hadrons/mesons/src/G4PionZero.cc @@ -95,7 +95,7 @@ G4PionZero* G4PionZero::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/hadrons/mesons/src/G4Upsilon.cc b/source/particles/hadrons/mesons/src/G4Upsilon.cc index 5eda2070e3..b5cf619979 100644 --- a/source/particles/hadrons/mesons/src/G4Upsilon.cc +++ b/source/particles/hadrons/mesons/src/G4Upsilon.cc @@ -70,7 +70,7 @@ G4Upsilon* G4Upsilon::Definition() false, 0.0*ns, NULL, false, "Upsilon", 553); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/leptons/src/G4AntiNeutrinoE.cc b/source/particles/leptons/src/G4AntiNeutrinoE.cc index c35b9eb796..c7479058d6 100644 --- a/source/particles/leptons/src/G4AntiNeutrinoE.cc +++ b/source/particles/leptons/src/G4AntiNeutrinoE.cc @@ -72,7 +72,7 @@ G4AntiNeutrinoE* G4AntiNeutrinoE::Definition() false, "e" ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/leptons/src/G4AntiNeutrinoMu.cc b/source/particles/leptons/src/G4AntiNeutrinoMu.cc index 58981fe42e..4d272f4441 100644 --- a/source/particles/leptons/src/G4AntiNeutrinoMu.cc +++ b/source/particles/leptons/src/G4AntiNeutrinoMu.cc @@ -72,7 +72,7 @@ G4AntiNeutrinoMu* G4AntiNeutrinoMu::Definition() false, "mu" ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/leptons/src/G4AntiNeutrinoTau.cc b/source/particles/leptons/src/G4AntiNeutrinoTau.cc index c5833ad411..d109de41a0 100644 --- a/source/particles/leptons/src/G4AntiNeutrinoTau.cc +++ b/source/particles/leptons/src/G4AntiNeutrinoTau.cc @@ -73,7 +73,7 @@ G4AntiNeutrinoTau* G4AntiNeutrinoTau::Definition() false, "tau" ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/leptons/src/G4Electron.cc b/source/particles/leptons/src/G4Electron.cc index 7e418f7e57..12c9a4944d 100644 --- a/source/particles/leptons/src/G4Electron.cc +++ b/source/particles/leptons/src/G4Electron.cc @@ -81,7 +81,7 @@ G4Electron* G4Electron::Definition() anInstance->SetPDGMagneticMoment( muB * 1.00115965218076 ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/leptons/src/G4MuonMinus.cc b/source/particles/leptons/src/G4MuonMinus.cc index f99437def1..83e4549af3 100644 --- a/source/particles/leptons/src/G4MuonMinus.cc +++ b/source/particles/leptons/src/G4MuonMinus.cc @@ -87,7 +87,7 @@ G4MuonMinus* G4MuonMinus::Definition() table->Insert(mode); anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/leptons/src/G4MuonPlus.cc b/source/particles/leptons/src/G4MuonPlus.cc index e9f27e66e9..863e5264ec 100644 --- a/source/particles/leptons/src/G4MuonPlus.cc +++ b/source/particles/leptons/src/G4MuonPlus.cc @@ -86,7 +86,7 @@ G4MuonPlus* G4MuonPlus::Definition() table->Insert(mode); anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/leptons/src/G4NeutrinoE.cc b/source/particles/leptons/src/G4NeutrinoE.cc index 85f559354f..93172f8691 100644 --- a/source/particles/leptons/src/G4NeutrinoE.cc +++ b/source/particles/leptons/src/G4NeutrinoE.cc @@ -72,7 +72,7 @@ G4NeutrinoE* G4NeutrinoE::Definition() false, "e" ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/leptons/src/G4NeutrinoMu.cc b/source/particles/leptons/src/G4NeutrinoMu.cc index aa2fc4d106..c8b01a92e2 100644 --- a/source/particles/leptons/src/G4NeutrinoMu.cc +++ b/source/particles/leptons/src/G4NeutrinoMu.cc @@ -72,7 +72,7 @@ G4NeutrinoMu* G4NeutrinoMu::Definition() false, "mu" ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/leptons/src/G4NeutrinoTau.cc b/source/particles/leptons/src/G4NeutrinoTau.cc index 2f3e006581..0e444149dd 100644 --- a/source/particles/leptons/src/G4NeutrinoTau.cc +++ b/source/particles/leptons/src/G4NeutrinoTau.cc @@ -72,7 +72,7 @@ G4NeutrinoTau* G4NeutrinoTau::Definition() false, "tau" ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/leptons/src/G4Positron.cc b/source/particles/leptons/src/G4Positron.cc index fcf19b899d..62b3c5757f 100644 --- a/source/particles/leptons/src/G4Positron.cc +++ b/source/particles/leptons/src/G4Positron.cc @@ -81,7 +81,7 @@ G4Positron* G4Positron::Definition() anInstance->SetPDGMagneticMoment( muB * 1.00115965218076 ); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/leptons/src/G4TauMinus.cc b/source/particles/leptons/src/G4TauMinus.cc index 5c5b12327f..666630d485 100644 --- a/source/particles/leptons/src/G4TauMinus.cc +++ b/source/particles/leptons/src/G4TauMinus.cc @@ -122,7 +122,7 @@ G4TauMinus* G4TauMinus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/leptons/src/G4TauPlus.cc b/source/particles/leptons/src/G4TauPlus.cc index 8926f5ab36..7dff4da681 100644 --- a/source/particles/leptons/src/G4TauPlus.cc +++ b/source/particles/leptons/src/G4TauPlus.cc @@ -121,7 +121,7 @@ G4TauPlus* G4TauPlus::Definition() anInstance->SetDecayTable(table); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/particles/management/include/G4NuclideTable.hh b/source/particles/management/include/G4NuclideTable.hh index 25a1051c60..ca90c8e6b8 100644 --- a/source/particles/management/include/G4NuclideTable.hh +++ b/source/particles/management/include/G4NuclideTable.hh @@ -57,18 +57,21 @@ class G4NuclideTable : public G4VIsotopeTable virtual ~G4NuclideTable(); - G4NuclideTable ( const G4NuclideTable& ) = delete; - G4NuclideTable& operator=( const G4NuclideTable& ) = delete; + G4NuclideTable (const G4NuclideTable&) = delete; + G4NuclideTable& operator = (const G4NuclideTable&) = delete; static G4NuclideTable* GetInstance(); static G4NuclideTable* GetNuclideTable(); void GenerateNuclide(); - void SetThresholdOfHalfLife( G4double ); + void SetThresholdOfHalfLife(G4double); inline G4double GetThresholdOfHalfLife(); - inline void SetLevelTolerance( G4double x ); + void SetMeanLifeThreshold(G4double); + inline G4double GetMeanLifeThreshold(); + + inline void SetLevelTolerance(G4double x); inline G4double GetLevelTolerance(); void AddState(G4int, G4int, G4double, G4double, @@ -97,9 +100,9 @@ class G4NuclideTable : public G4VIsotopeTable // utility methods - static G4double GetTruncationError( G4double eex ); - static G4double Round( G4double eex ); - static G4long Truncate( G4double eex ); + static G4double GetTruncationError(G4double eex); + static G4double Round(G4double eex); + static G4long Truncate(G4double eex); static G4double Tolerance(); private: @@ -107,23 +110,21 @@ class G4NuclideTable : public G4VIsotopeTable G4NuclideTable(); G4double StripFloatLevelBase(G4double E, G4int& flbIndex); - G4Ions::G4FloatLevelBase StripFloatLevelBase( const G4String& ); + G4Ions::G4FloatLevelBase StripFloatLevelBase(const G4String&); private: - G4double threshold_of_half_life = 0.0; - // threshold values of half-life of current run - G4double minimum_threshold_of_half_life = DBL_MAX; - // The minimum value of threshold values of half-life during entire runs + G4double mean_life_threshold = 0.0; + G4double minimum_mean_life_threshold = DBL_MAX; G4IsotopeList* fUserDefinedList = nullptr; std::map > map_pre_load_list; - // pre_load_list: having state data for current run defined - // by threshold_of_half_life + // pre_load_list: contains state data for current run defined + // by mean_life_threshold std::map > map_full_list; - // full_list: keeping all state data during running application - // defined by minimum_threshold_of_half_life + // full_list: keeps all state data during running application + // defined by minimum_mean_life_threshold enum { idxZ=0, idxA, idxEnergy, idxLife, idxSpin, idxMu }; // Table of Nuclide Property @@ -146,11 +147,17 @@ class G4NuclideTable : public G4VIsotopeTable inline G4double G4NuclideTable::GetThresholdOfHalfLife() { - return threshold_of_half_life; + return mean_life_threshold*0.69314718; } inline -void G4NuclideTable::SetLevelTolerance( G4double x ) +G4double G4NuclideTable::GetMeanLifeThreshold() +{ + return mean_life_threshold; +} + +inline +void G4NuclideTable::SetLevelTolerance(G4double x) { flevelTolerance = x; } @@ -164,19 +171,19 @@ G4double G4NuclideTable::GetLevelTolerance() inline std::size_t G4NuclideTable::GetSizeOfIsotopeList() { - return ( fIsotopeList ? fIsotopeList->size() : static_cast(0) ); + return (fIsotopeList ? fIsotopeList->size() : static_cast(0) ); } inline std::size_t G4NuclideTable::entries() const { - return ( fIsotopeList ? fIsotopeList->size() : static_cast(0) ); + return (fIsotopeList ? fIsotopeList->size() : std::size_t(0) ); } inline G4IsotopeProperty* G4NuclideTable::GetIsotopeByIndex(std::size_t idx) const { - if ( fIsotopeList && idxsize()) return (*fIsotopeList)[idx]; + if (fIsotopeList && idxsize() ) return (*fIsotopeList)[idx]; else return nullptr; } diff --git a/source/particles/management/include/G4NuclideTableMessenger.hh b/source/particles/management/include/G4NuclideTableMessenger.hh index 892f93261e..1bf1125f39 100644 --- a/source/particles/management/include/G4NuclideTableMessenger.hh +++ b/source/particles/management/include/G4NuclideTableMessenger.hh @@ -63,7 +63,8 @@ class G4NuclideTableMessenger : public G4UImessenger G4NuclideTable* theNuclideTable = nullptr; G4UIdirectory* thisDirectory = nullptr; - G4UIcmdWithADoubleAndUnit* lifetimeCmd = nullptr; + G4UIcmdWithADoubleAndUnit* halflifeCmd = nullptr; + G4UIcmdWithADoubleAndUnit* meanlifeCmd = nullptr; G4UIcmdWithADoubleAndUnit* lToleranceCmd = nullptr; }; diff --git a/source/particles/management/include/G4ParticleDefinition.icc b/source/particles/management/include/G4ParticleDefinition.icc index 46b2fbb056..7bb188f48d 100644 --- a/source/particles/management/include/G4ParticleDefinition.icc +++ b/source/particles/management/include/G4ParticleDefinition.icc @@ -223,9 +223,11 @@ G4bool G4ParticleDefinition::IsHypernucleus() const inline G4int G4ParticleDefinition::GetNumberOfLambdasInHypernucleus() const { - // PDG code of hypernuclei: 10LZZZAAAI G4int numberOfLambdas = 0; - if ( thePDGEncoding > 0 ) numberOfLambdas = (thePDGEncoding/10000000)%100; + // PDG code of hypernuclei: 10LZZZAAAI + if ( thePDGEncoding > 0 && thePDGEncoding/1000000000 != 0 ) { + numberOfLambdas = (thePDGEncoding/10000000)%100; + } return numberOfLambdas; } @@ -239,8 +241,10 @@ G4bool G4ParticleDefinition::IsAntiHypernucleus() const inline G4int G4ParticleDefinition::GetNumberOfAntiLambdasInAntiHypernucleus() const { - // PDG code of anti-hypernuclei: -10LZZZAAAI G4int numberOfAntiLambdas = 0; - if ( thePDGEncoding < 0 ) numberOfAntiLambdas = (std::abs(thePDGEncoding)/10000000)%100; + // PDG code of anti-hypernuclei: -10LZZZAAAI + if ( thePDGEncoding < 0 && thePDGEncoding/1000000000 != 0 ) { + numberOfAntiLambdas = (std::abs(thePDGEncoding)/10000000)%100; + } return numberOfAntiLambdas; } diff --git a/source/particles/management/sources.cmake b/source/particles/management/sources.cmake index 9ceb820816..ea1265fef4 100644 --- a/source/particles/management/sources.cmake +++ b/source/particles/management/sources.cmake @@ -9,7 +9,6 @@ geant4_add_module(G4partman G4DecayTableMessenger.hh G4DynamicParticle.hh G4DynamicParticle.icc - G4DynamicParticleFastVector.hh G4ElectronOccupancy.hh G4HyperNucleiProperties.hh G4IonTable.hh diff --git a/source/particles/management/src/G4HyperNucleiProperties.cc b/source/particles/management/src/G4HyperNucleiProperties.cc index 20739d6e0e..b82c0a87fa 100644 --- a/source/particles/management/src/G4HyperNucleiProperties.cc +++ b/source/particles/management/src/G4HyperNucleiProperties.cc @@ -34,17 +34,18 @@ #include "G4HyperNucleiProperties.hh" #include "G4NucleiProperties.hh" #include "G4ParticleTable.hh" +#include "G4Exp.hh" +#include "G4Pow.hh" + G4double G4HyperNucleiProperties::GetNuclearMass(G4int A, G4int Z, G4int LL) -{ - if (LL==0) return G4NucleiProperties::GetNuclearMass(A, Z); - - G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); +{ + if ( LL == 0 ) return G4NucleiProperties::GetNuclearMass(A, Z); - if (A < 2 || Z < 0 || Z > A-LL || LL>A ) + if ( A < 2 || Z < 0 || Z > A-LL || LL > A ) { #ifdef G4VERBOSE - if (pTable->GetVerboseLevel()>0) + if ( G4ParticleTable::GetParticleTable()->GetVerboseLevel() > 0 ) { G4cout << "G4HyperNucleiProperties::GetNuclearMass: " << " Wrong values for A = " << A @@ -55,10 +56,10 @@ G4double G4HyperNucleiProperties::GetNuclearMass(G4int A, G4int Z, G4int LL) #endif return 0.0; } - else if( A==2 ) + else if ( A == 2 ) { #ifdef G4VERBOSE - if (pTable->GetVerboseLevel()>0) + if ( G4ParticleTable::GetParticleTable()->GetVerboseLevel() > 0 ) { G4cout << "G4HyperNucleiProperties::GetNuclearMass: " << " No boud state for A = " << A @@ -69,59 +70,34 @@ G4double G4HyperNucleiProperties::GetNuclearMass(G4int A, G4int Z, G4int LL) #endif return 0.0; } - - G4ParticleDefinition* lambda = pTable->FindParticle("lambda"); - if (lambda ==0) - { -#ifdef G4VERBOSE - if (pTable->GetVerboseLevel()>0) - { - G4cout << "G4HyperNucleiProperties::GetNuclearMass: " - << " Lambda is not defined " << G4endl; - } -#endif - return 0.0; - } - const G4double mLL= lambda->GetPDGMass(); // mLambda + static const G4double b7 = 25.0*MeV; + static const G4double b8 = 10.5; // Slope + static const G4double a2 = 0.13*MeV; // BindingEnergy for d+Lambda(MeV) + static const G4double a3 = 2.2*MeV; // BindingEnergy for (t/He3)+Lamb(MeV) + static const G4double eps = 0.0001*MeV; // security value (MeV) - static const G4double b7=25.*MeV; - static const G4double b8=10.5; // Slope - static const G4double a2=0.13*MeV; // BindingEnergy for d+Lambda(MeV) - static const G4double a3=2.2*MeV; // BindingEnergy for (t/He3)+Lamb(MeV) - static const G4double eps =0.0001*MeV; // security value (MeV) + G4double mass = G4NucleiProperties::GetNuclearMass(A-LL, Z); // A non-"strange" nucleus - G4double mass = G4NucleiProperties::GetNuclearMass(A-LL, Z); - // A non-"strange" nucleus - G4double bs=0.; - if (A-LL ==2) bs=a2; // for nnL,npL,ppL - else if(A-LL ==3) bs=a3; // for 3nL,2npL,n2pL,3pL - else if(A-LL >3) bs=b7*std::exp(-b8/(A-LL+1.)); + // Temporarily, the mass of the Lambda below is copied from G4Lambda.cc, + // but it should be added in CLHEP/Units/PhysicalConstants.h + const G4double mLL = 1.115683*CLHEP::GeV; + + G4double bs = 0.0; + if ( A - LL == 2 ) bs = a2; // for nnL,npL,ppL + else if ( A - LL == 3 ) bs = a3; // for 3nL,2npL,n2pL,3pL + else if ( A - LL > 3 ) bs = b7*G4Exp(-b8/(A-LL+1.0)); mass += LL*(mLL-bs) + eps; return mass; } + G4double G4HyperNucleiProperties::GetAtomicMass(G4int A, G4int Z, G4int LL) { - if (A < 1 || Z < 0 || Z > A-LL || LL > A || LL <0 ) - { -#ifdef G4VERBOSE - if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>0) - { - G4cout << "G4HyperNucleiProperties::GetAtomicMass: " - << " Wrong values for A = " << A - << " Z = " << Z - << " L = " << LL << G4endl; - } -#endif - return 0.0; - - } - else - { - G4double nuclearMass = GetNuclearMass(A, Z, LL); - return nuclearMass + Z*electron_mass_c2 - - 1.433e-5*MeV*std::pow(G4double(Z),2.39); + G4double mass = GetNuclearMass(A, Z, LL); + if ( mass > 0.0 ) { + mass += Z*electron_mass_c2 - 1.433e-5*MeV*G4Pow::GetInstance()->powZ(Z, 2.39); } + return mass; } diff --git a/source/particles/management/src/G4IonTable.cc b/source/particles/management/src/G4IonTable.cc index e696567177..02ce7164a7 100644 --- a/source/particles/management/src/G4IonTable.cc +++ b/source/particles/management/src/G4IonTable.cc @@ -1961,7 +1961,7 @@ G4bool G4IonTable::Contains(const G4ParticleDefinition* particle) const // G4int G4IonTable::Entries() const { - return fIonList->size(); + return (G4int)fIonList->size(); } // -------------------------------------------------------------------- @@ -1969,7 +1969,7 @@ G4int G4IonTable::Entries() const // G4int G4IonTable::size() const { - return fIonList->size(); + return (G4int)fIonList->size(); } // -------------------------------------------------------------------- diff --git a/source/particles/management/src/G4Ions.cc b/source/particles/management/src/G4Ions.cc index 5b0a84b2c6..5c96e17d22 100644 --- a/source/particles/management/src/G4Ions.cc +++ b/source/particles/management/src/G4Ions.cc @@ -75,6 +75,13 @@ G4Ions::G4Ions( || (aName == "carbon") || (aName == "helium") || (aName == "alpha+") || (aName == "hydrogen") || (aName == "Ps-1s") || (aName == "Ps-2s")) { isGeneralIon = false ; + } else if ( aName == "hypertriton" || aName == "anti_hypertriton" || + aName == "hyperalpha" || aName == "anti_hyperalpha" || + aName == "hyperH4" || aName == "anti_hyperH4" || + aName == "doublehyperH4" || aName == "anti_doublehyperH4" || + aName == "doublehyperdoubleneutron" || aName == "anti_doublehyperdoubleneutron" || + aName == "hyperHe5" || aName == "anti_hyperHe5" ) { + isGeneralIon = false; } else { isGeneralIon = true; } diff --git a/source/particles/management/src/G4MuonRadiativeDecayChannelWithSpin.cc b/source/particles/management/src/G4MuonRadiativeDecayChannelWithSpin.cc index 644fefdbb3..53b3dfa7e1 100644 --- a/source/particles/management/src/G4MuonRadiativeDecayChannelWithSpin.cc +++ b/source/particles/management/src/G4MuonRadiativeDecayChannelWithSpin.cc @@ -166,8 +166,6 @@ G4DecayProducts* G4MuonRadiativeDecayChannelWithSpin::DecayIt(G4double) G4DecayProducts *products = new G4DecayProducts(*parentparticle); delete parentparticle; - G4int i = 0; - G4double eps = EMASS/EMMU; G4double som0, x, y, xx, yy, zz; @@ -176,12 +174,6 @@ G4DecayProducts* G4MuonRadiativeDecayChannelWithSpin::DecayIt(G4double) for (std::size_t loop_counter1=0; loop_counter1> ionZ >> ionA >> ionE >> ionFL >> ionLife >> ionJ >> ionMu; - while ( ifs.good() ) // Loop checking, 09.08.2015, K.Kurashige + while (ifs.good() ) // Loop checking, 09.08.2015, K.Kurashige { - if ( ionCode != 1000*ionZ + ionA ) - { + if (ionCode != 1000*ionZ + ionA ) { iLevel = 0; ionCode = 1000*ionZ + ionA; } ionE *= keV; - G4Ions::G4FloatLevelBase flb = StripFloatLevelBase( ionFL ); + G4Ions::G4FloatLevelBase flb = StripFloatLevelBase(ionFL); ionLife *= ns; ionMu *= (joule/tesla); - if ( ( ionE == 0 && flb == G4Ions::G4FloatLevelBase::no_Float ) - || ( threshold_of_half_life <= ionLife*std::log(2.0) - && ionLife*std::log(2.0) < minimum_threshold_of_half_life ) ) - { - if ( ionE > 0 ) ++iLevel; - if ( iLevel > 9 ) iLevel=9; + if ((ionE == 0 && flb == G4Ions::G4FloatLevelBase::no_Float) || + (mean_life_threshold <= ionLife && + ionLife < minimum_mean_life_threshold) ) { + if (ionE > 0) ++iLevel; + if (iLevel > 9) iLevel = 9; G4IsotopeProperty* fProperty = new G4IsotopeProperty(); @@ -256,55 +252,50 @@ void G4NuclideTable::GenerateNuclide() fIsotopeList->push_back(fProperty); - auto itf = map_full_list.find( ionCode ); - if ( itf == map_full_list.cend() ) - { + auto itf = map_full_list.find(ionCode); + if (itf == map_full_list.cend() ) { std::multimap aMultiMap; - itf = ( map_full_list.insert( - std::pair< G4int, std::multimap< G4double, - G4IsotopeProperty* > > ( ionCode, aMultiMap ) ) ).first; + itf = (map_full_list.insert( + std::pair > (ionCode, aMultiMap) ) ).first; } - itf -> second.insert( - std::pair< G4double, G4IsotopeProperty* >(ionE, fProperty) ); + itf->second.insert( + std::pair(ionE, fProperty) ); } + ifs >> ionZ >> ionA >> ionE >> ionFL >> ionLife >> ionJ >> ionMu; - } - - minimum_threshold_of_half_life = threshold_of_half_life; + } // End while + minimum_mean_life_threshold = mean_life_threshold; } // Clear current map - for ( auto it=map_pre_load_list.begin(); it!=map_pre_load_list.end(); ++it ) - { + for (auto it = map_pre_load_list.begin(); it != map_pre_load_list.end(); ++it) { it->second.clear(); } map_pre_load_list.clear(); - // Build map based on current threshold value - for ( auto it = map_full_list.cbegin(); it != map_full_list.cend(); ++it ) - { + // Build map based on current threshold value + for (auto it = map_full_list.cbegin(); it != map_full_list.cend(); ++it) { G4int ionCode = it->first; - auto itf = map_pre_load_list.find( ionCode ); - if ( itf == map_pre_load_list.cend() ) - { + auto itf = map_pre_load_list.find(ionCode); + if (itf == map_pre_load_list.cend() ) { std::multimap aMultiMap; - itf = ( map_pre_load_list.insert( - std::pair< G4int, std::multimap< G4double, - G4IsotopeProperty* > > (ionCode, aMultiMap) ) ).first; + itf = (map_pre_load_list.insert( + std::pair > (ionCode, aMultiMap) ) ).first; } + G4int iLevel = 0; - for ( auto itt = it->second.cbegin(); itt != it->second.cend(); ++itt ) - { + for (auto itt = it->second.cbegin(); itt != it->second.cend(); ++itt) { G4double exEnergy = itt->first; G4double meanLife = itt->second->GetLifeTime(); - if ( exEnergy == 0.0 || meanLife*std::log(2.0) > threshold_of_half_life ) - { - if ( itt->first != 0.0 ) ++iLevel; - if ( iLevel > 9 ) iLevel=9; - itt->second->SetIsomerLevel( iLevel ); + if (exEnergy == 0.0 || meanLife > mean_life_threshold) { + if (itt->first != 0.0) ++iLevel; + if (iLevel > 9) iLevel = 9; + itt->second->SetIsomerLevel(iLevel); itf->second.insert( - std::pair< G4double, G4IsotopeProperty* >(exEnergy, itt->second) ); + std::pair(exEnergy, itt->second) ); } } } @@ -369,7 +360,7 @@ void G4NuclideTable::AddState( G4int ionZ, G4int ionA, G4double ionE, fProperty->SetLifeTime(ionLife); fProperty->SetDecayTable(0); fProperty->SetMagneticMoment(ionMu); - fProperty->SetFloatLevelBase( flb ); + fProperty->SetFloatLevelBase(flb); fUserDefinedList->push_back(fProperty); fIsotopeList->push_back(fProperty); @@ -377,11 +368,21 @@ void G4NuclideTable::AddState( G4int ionZ, G4int ionA, G4double ionE, } // -------------------------------------------------------------------- -void G4NuclideTable::SetThresholdOfHalfLife( G4double t ) +void G4NuclideTable::SetThresholdOfHalfLife(G4double t) { + if (G4Threading::IsMasterThread() ) { + mean_life_threshold = t/0.69314718; + GenerateNuclide(); + } +} + +// Set the mean life threshold for nuclides +// All nuclides with mean lives greater than this value are created +// for this run +void G4NuclideTable::SetMeanLifeThreshold(G4double t) { - if ( G4Threading::IsMasterThread() ) + if (G4Threading::IsMasterThread() ) { - threshold_of_half_life=t; + mean_life_threshold = t; GenerateNuclide(); } } diff --git a/source/particles/management/src/G4NuclideTableMessenger.cc b/source/particles/management/src/G4NuclideTableMessenger.cc index d07698b1a9..08746c86ed 100644 --- a/source/particles/management/src/G4NuclideTableMessenger.cc +++ b/source/particles/management/src/G4NuclideTableMessenger.cc @@ -48,15 +48,26 @@ G4NuclideTableMessenger::G4NuclideTableMessenger(G4NuclideTable* nuclideTable) thisDirectory->SetGuidance("Nuclide table control commands."); // particle/manage/nuclide/min_halflife - lifetimeCmd = new G4UIcmdWithADoubleAndUnit("/particle/nuclideTable/min_halflife",this); - lifetimeCmd->SetGuidance("Set threshold of half-life."); - lifetimeCmd->SetGuidance("Unit of the time can be :"); - lifetimeCmd->SetGuidance(" s, ms, ns (default)"); - lifetimeCmd->SetParameterName("life",false); - lifetimeCmd->SetDefaultValue( 1000.0 ); - lifetimeCmd->SetRange("life >0.0"); - lifetimeCmd->SetDefaultUnit("ns"); - lifetimeCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + halflifeCmd = new G4UIcmdWithADoubleAndUnit("/particle/nuclideTable/min_halflife",this); + halflifeCmd->SetGuidance("Set threshold of half-life."); + halflifeCmd->SetGuidance("Unit of the time can be :"); + halflifeCmd->SetGuidance(" s, ms, ns (default)"); + halflifeCmd->SetParameterName("life",false); + halflifeCmd->SetDefaultValue(0.69314718); + halflifeCmd->SetRange("halflife > 0.0"); + halflifeCmd->SetDefaultUnit("ns"); + halflifeCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + // particle/manage/nuclide/min_meanlife + meanlifeCmd = new G4UIcmdWithADoubleAndUnit("/particle/nuclideTable/min_meanlife",this); + meanlifeCmd->SetGuidance("Set threshold of mean life."); + meanlifeCmd->SetGuidance("Unit of the time can be :"); + meanlifeCmd->SetGuidance(" s, ms, ns (default)"); + meanlifeCmd->SetParameterName("life",false); + meanlifeCmd->SetDefaultValue(1.0); + meanlifeCmd->SetRange("meanlife > 0.0"); + meanlifeCmd->SetDefaultUnit("ns"); + meanlifeCmd->AvailableForStates(G4State_PreInit,G4State_Idle); // particle/manage/nuclide/level_tolerance lToleranceCmd = new G4UIcmdWithADoubleAndUnit("/particle/nuclideTable/level_tolerance",this); @@ -73,21 +84,25 @@ G4NuclideTableMessenger::G4NuclideTableMessenger(G4NuclideTable* nuclideTable) G4NuclideTableMessenger::~G4NuclideTableMessenger() { delete thisDirectory; - delete lifetimeCmd; + delete halflifeCmd; + delete meanlifeCmd; delete lToleranceCmd; } void G4NuclideTableMessenger:: SetNewValue(G4UIcommand* command, G4String newValue) { - if (command == lifetimeCmd ) - { + if (command == halflifeCmd) { // Command /particle/manage/nuclideTable/min_halflife - theNuclideTable->SetThresholdOfHalfLife(lifetimeCmd->GetNewDoubleValue(newValue)); - } - else if (command == lToleranceCmd ) - { + theNuclideTable->SetThresholdOfHalfLife(halflifeCmd->GetNewDoubleValue(newValue)); + + } else if (command == meanlifeCmd) { + // Command /particle/manage/nuclideTable/min_meanlife + theNuclideTable->SetMeanLifeThreshold(meanlifeCmd->GetNewDoubleValue(newValue)); + + } else if (command == lToleranceCmd) { // Command /particle/manage/nuclideTable/level_tolerance theNuclideTable->SetLevelTolerance(lToleranceCmd->GetNewDoubleValue(newValue)); } } + diff --git a/source/persistency/History b/source/persistency/History index 0f6d34ca4b..0de2915503 100644 --- a/source/persistency/History +++ b/source/persistency/History @@ -1,8 +1,13 @@ # Category persistency History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-11 Gabriele Cosmo (persistency-V11-00-03) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2022-03-24 Ben Morgan (persistency-V11-00-02) - Use geant4_category_modules to optionaly add G4gdml module to category diff --git a/source/persistency/ascii/History b/source/persistency/ascii/History index 263172e4a7..73b1918ad4 100644 --- a/source/persistency/ascii/History +++ b/source/persistency/ascii/History @@ -1,8 +1,16 @@ # Category ascii History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-18 Gabriele Cosmo (ascii-V11-00-03) +- More compilation warnings fixes for implicit type conversions. + +## 2022-11-11 Gabriele Cosmo (ascii-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2021-12-22 Pedro Arce (ascii-V11-00-01) - Correct wrong automatic conversion degree-radian for G4Polycone phi angle parameter diff --git a/source/persistency/ascii/include/G4tgrVolumeAssembly.hh b/source/persistency/ascii/include/G4tgrVolumeAssembly.hh index 5b7a251c73..4ce6e27e81 100644 --- a/source/persistency/ascii/include/G4tgrVolumeAssembly.hh +++ b/source/persistency/ascii/include/G4tgrVolumeAssembly.hh @@ -55,7 +55,7 @@ class G4tgrVolumeAssembly : public G4tgrVolume } const G4String& GetComponentRM(G4int ii) const {return theComponentRMs[ii];} G4ThreeVector GetComponentPos(G4int ii) const {return theComponentPos[ii];} - G4int GetNoComponents() const { return theComponentNames.size(); } + G4int GetNoComponents() const { return (G4int)theComponentNames.size(); } friend std::ostream& operator<<(std::ostream& os, const G4tgrVolumeAssembly& obj); diff --git a/source/persistency/ascii/src/G4tgbGeometryDumper.cc b/source/persistency/ascii/src/G4tgbGeometryDumper.cc index a64aa81e4b..f816f16200 100644 --- a/source/persistency/ascii/src/G4tgbGeometryDumper.cc +++ b/source/persistency/ascii/src/G4tgbGeometryDumper.cc @@ -1193,9 +1193,9 @@ G4tgbGeometryDumper::GetPVChildren(G4LogicalVolume* lv) G4String G4tgbGeometryDumper::GetTGSolidType(const G4String& solidType) { G4String newsolidType = solidType.substr(2, solidType.length()); - for(std::size_t ii = 0; ii < newsolidType.length(); ++ii) + for(G4int ii = 0; ii < (G4int)newsolidType.length(); ++ii) { - newsolidType[ii] = toupper(newsolidType[ii]); + newsolidType[ii] = (char)std::toupper(newsolidType[ii]); } return newsolidType; } @@ -1248,8 +1248,8 @@ G4String G4tgbGeometryDumper::AddQuotes(const G4String& str) // -------------------------------------------------------------------- G4String G4tgbGeometryDumper::SupressRefl(G4String name) { - G4int irefl = name.rfind("_refl"); - if(irefl != -1) + std::size_t irefl = name.rfind("_refl"); + if(irefl != G4String::npos) { name = name.substr(0, irefl); } @@ -1259,8 +1259,8 @@ G4String G4tgbGeometryDumper::SupressRefl(G4String name) // -------------------------------------------------------------------- G4String G4tgbGeometryDumper::SubstituteRefl(G4String name) { - G4int irefl = name.rfind("_refl"); - if(irefl != -1) + std::size_t irefl = name.rfind("_refl"); + if(irefl != G4String::npos) { name = name.substr(0, irefl) + "_REFL"; } diff --git a/source/persistency/ascii/src/G4tgbPlaceParameterisation.cc b/source/persistency/ascii/src/G4tgbPlaceParameterisation.cc index 8074673d58..f715b7b683 100644 --- a/source/persistency/ascii/src/G4tgbPlaceParameterisation.cc +++ b/source/persistency/ascii/src/G4tgbPlaceParameterisation.cc @@ -63,7 +63,7 @@ CheckNExtraData(G4tgrPlaceParameterisation* tgrParam, G4int nWcheck, WLSIZEtype st, const G4String& methodName) { std::vector extraData = tgrParam->GetExtraData(); - G4int ndata = extraData.size(); + G4int ndata = (G4int)extraData.size(); G4String outStr = methodName + " " + tgrParam->GetType() + " "; G4bool isOK = G4tgrUtils::CheckListSize(ndata, nWcheck, st, outStr); diff --git a/source/persistency/ascii/src/G4tgbVolume.cc b/source/persistency/ascii/src/G4tgbVolume.cc index b1dd8945c7..39f987a2f5 100644 --- a/source/persistency/ascii/src/G4tgbVolume.cc +++ b/source/persistency/ascii/src/G4tgbVolume.cc @@ -253,18 +253,18 @@ G4VSolid* G4tgbVolume::FindOrConstructG4Solid(const G4tgrSolid* sol) if(stype == "BOX") { - CheckNoSolidParams(stype, 3, solParam.size()); + CheckNoSolidParams(stype, 3, (G4int)solParam.size()); solid = new G4Box(sname, solParam[0], solParam[1], solParam[2]); } else if(stype == "TUBE") { - CheckNoSolidParams(stype, 3, solParam.size()); + CheckNoSolidParams(stype, 3, (G4int)solParam.size()); solid = new G4Tubs(sname, solParam[0], solParam[1], solParam[2], 0. * deg, 360. * deg); } else if(stype == "TUBS") { - CheckNoSolidParams(stype, 5, solParam.size()); + CheckNoSolidParams(stype, 5, (G4int)solParam.size()); G4double phiDelta = solParam[4]; if(std::fabs(phiDelta - twopi) < angularTolerance) { @@ -300,25 +300,25 @@ G4VSolid* G4tgbVolume::FindOrConstructG4Solid(const G4tgrSolid* sol) } else if(stype == "TRD") { - CheckNoSolidParams(stype, 5, solParam.size()); + CheckNoSolidParams(stype, 5, (G4int)solParam.size()); solid = new G4Trd(sname, solParam[0], solParam[1], solParam[2], solParam[3], solParam[4]); } else if(stype == "PARA") { - CheckNoSolidParams(stype, 6, solParam.size()); + CheckNoSolidParams(stype, 6, (G4int)solParam.size()); solid = new G4Para(sname, solParam[0], solParam[1], solParam[2], solParam[3], solParam[4], solParam[5]); } else if(stype == "CONE") { - CheckNoSolidParams(stype, 5, solParam.size()); + CheckNoSolidParams(stype, 5, (G4int)solParam.size()); solid = new G4Cons(sname, solParam[0], solParam[1], solParam[2], solParam[3], solParam[4], 0., 360. * deg); } else if(stype == "CONS") { - CheckNoSolidParams(stype, 7, solParam.size()); + CheckNoSolidParams(stype, 7, (G4int)solParam.size()); G4double phiDelta = solParam[6]; if(std::fabs(phiDelta - twopi) < angularTolerance) { @@ -329,7 +329,7 @@ G4VSolid* G4tgbVolume::FindOrConstructG4Solid(const G4tgrSolid* sol) } else if(stype == "SPHERE") { - CheckNoSolidParams(stype, 6, solParam.size()); + CheckNoSolidParams(stype, 6, (G4int)solParam.size()); G4double phiDelta = solParam[3]; if(std::fabs(phiDelta - twopi) < angularTolerance) { @@ -345,12 +345,12 @@ G4VSolid* G4tgbVolume::FindOrConstructG4Solid(const G4tgrSolid* sol) } else if(stype == "ORB") { - CheckNoSolidParams(stype, 1, solParam.size()); + CheckNoSolidParams(stype, 1, (G4int)solParam.size()); solid = new G4Orb(sname, solParam[0]); } else if(stype == "TORUS") { - CheckNoSolidParams(stype, 5, solParam.size()); + CheckNoSolidParams(stype, 5, (G4int)solParam.size()); G4double phiDelta = solParam[4]; if(std::fabs(phiDelta - twopi) < angularTolerance) { @@ -405,7 +405,7 @@ G4VSolid* G4tgbVolume::FindOrConstructG4Solid(const G4tgrSolid* sol) phiTotal = twopi; } solid = new G4Polycone(sname, solParam[0], phiTotal, // start,delta-phi - nplanes, // sections + (G4int)nplanes, // sections &((*z_p)[0]), &((*rmin_p)[0]), &((*rmax_p)[0])); } else @@ -424,7 +424,7 @@ G4VSolid* G4tgbVolume::FindOrConstructG4Solid(const G4tgrSolid* sol) } solid = new G4GenericPolycone(sname, solParam[0], phiTotal, // start,delta-phi - nplanes, // sections + (G4int)nplanes, // sections &((*R_c)[0]), &((*Z_c)[0])); } } @@ -473,7 +473,7 @@ G4VSolid* G4tgbVolume::FindOrConstructG4Solid(const G4tgrSolid* sol) phiTotal = twopi; } solid = new G4Polyhedra(sname, solParam[0], phiTotal, G4int(solParam[2]), - nplanes, &((*z_p)[0]), &((*rmin_p)[0]), + (G4int)nplanes, &((*z_p)[0]), &((*rmin_p)[0]), &((*rmax_p)[0])); } else @@ -491,35 +491,35 @@ G4VSolid* G4tgbVolume::FindOrConstructG4Solid(const G4tgrSolid* sol) phiTotal = twopi; } solid = new G4Polyhedra(sname, solParam[0], phiTotal, G4int(solParam[2]), - nplanes, &((*R_c)[0]), &((*Z_c)[0])); + (G4int)nplanes, &((*R_c)[0]), &((*Z_c)[0])); } } else if(stype == "ELLIPTICALTUBE") { - CheckNoSolidParams(stype, 3, solParam.size()); + CheckNoSolidParams(stype, 3, (G4int)solParam.size()); solid = new G4EllipticalTube(sname, solParam[0], solParam[1], solParam[2]); } else if(stype == "ELLIPSOID") { - CheckNoSolidParams(stype, 5, solParam.size()); + CheckNoSolidParams(stype, 5, (G4int)solParam.size()); solid = new G4Ellipsoid(sname, solParam[0], solParam[1], solParam[2], solParam[3], solParam[4]); } else if(stype == "ELLIPTICALCONE") { - CheckNoSolidParams(stype, 4, solParam.size()); + CheckNoSolidParams(stype, 4, (G4int)solParam.size()); solid = new G4EllipticalCone(sname, solParam[0], solParam[1], solParam[2], solParam[3]); } else if(stype == "HYPE") { - CheckNoSolidParams(stype, 5, solParam.size()); + CheckNoSolidParams(stype, 5, (G4int)solParam.size()); solid = new G4Hype(sname, solParam[0], solParam[1], solParam[2], solParam[3], solParam[4]); } else if(stype == "TET") { - CheckNoSolidParams(stype, 12, solParam.size()); + CheckNoSolidParams(stype, 12, (G4int)solParam.size()); G4ThreeVector anchor(solParam[0], solParam[1], solParam[2]); G4ThreeVector p2(solParam[3], solParam[4], solParam[5]); G4ThreeVector p3(solParam[6], solParam[7], solParam[8]); @@ -528,13 +528,13 @@ G4VSolid* G4tgbVolume::FindOrConstructG4Solid(const G4tgrSolid* sol) } else if(stype == "TWISTEDBOX") { - CheckNoSolidParams(stype, 4, solParam.size()); + CheckNoSolidParams(stype, 4, (G4int)solParam.size()); solid = new G4TwistedBox(sname, solParam[0], solParam[1], solParam[2], solParam[3]); } else if(stype == "TWISTEDTRAP") { - CheckNoSolidParams(stype, 11, solParam.size()); + CheckNoSolidParams(stype, 11, (G4int)solParam.size()); solid = new G4TwistedTrap(sname, solParam[0], solParam[1], solParam[2], solParam[3], solParam[4], solParam[5], solParam[6], @@ -542,7 +542,7 @@ G4VSolid* G4tgbVolume::FindOrConstructG4Solid(const G4tgrSolid* sol) } else if(stype == "TWISTEDTRD") { - CheckNoSolidParams(stype, 6, solParam.size()); + CheckNoSolidParams(stype, 6, (G4int)solParam.size()); solid = new G4TwistedTrd(sname, solParam[0], solParam[1], solParam[2], solParam[3], solParam[4], solParam[5]); } @@ -561,7 +561,7 @@ G4VSolid* G4tgbVolume::FindOrConstructG4Solid(const G4tgrSolid* sol) } else if(stype == "TWISTEDTUBS") { - CheckNoSolidParams(stype, 5, solParam.size()); + CheckNoSolidParams(stype, 5, (G4int)solParam.size()); G4double phiTotal = solParam[4]; if(std::fabs(phiTotal - twopi) < angularTolerance) { diff --git a/source/persistency/ascii/src/G4tgrFileIn.cc b/source/persistency/ascii/src/G4tgrFileIn.cc index c8f9431f77..1b655583c6 100644 --- a/source/persistency/ascii/src/G4tgrFileIn.cc +++ b/source/persistency/ascii/src/G4tgrFileIn.cc @@ -142,7 +142,7 @@ G4int G4tgrFileIn::GetWordsInLine(std::vector& wordlist) // NOTE: cannot be read with a istream_iterator, // because it uses G4cout, and then doesn't read '\n' //----- Clear wordlist - G4int wsiz = wordlist.size(); + G4int wsiz = (G4int)wordlist.size(); G4int ii; for(ii = 0; ii < wsiz; ++ii) { @@ -237,7 +237,7 @@ G4int G4tgrFileIn::GetWordsInLine(std::vector& wordlist) { break; } - G4int comment = stemp.find(G4String("//")); + G4int comment = (G4int)stemp.find(G4String("//")); #ifdef G4VERBOSE if(G4tgrMessenger::GetVerboseLevel() >= 3) { @@ -290,7 +290,7 @@ G4int G4tgrFileIn::GetWordsInLine(std::vector& wordlist) { imerge = 1; } - if(wordlist[jj][wordlist[jj].size() - 1] == '\"') + if(wordlist[jj][G4int(wordlist[jj].size() - 1)] == '\"') { if(imerge != 1) { diff --git a/source/persistency/ascii/src/G4tgrLineProcessor.cc b/source/persistency/ascii/src/G4tgrLineProcessor.cc index 24ee3308b0..e3d34a7f6e 100644 --- a/source/persistency/ascii/src/G4tgrLineProcessor.cc +++ b/source/persistency/ascii/src/G4tgrLineProcessor.cc @@ -68,9 +68,9 @@ G4bool G4tgrLineProcessor::ProcessLine(const std::vector& wl) #endif G4String wl0 = wl[0]; - for(std::size_t ii = 0; ii < wl0.length(); ++ii) + for(G4int ii = 0; ii < (G4int)wl0.length(); ++ii) { - wl0[ii] = toupper(wl0[ii]); + wl0[ii] = (char)std::toupper(wl0[ii]); } //------------------------------- parameter number diff --git a/source/persistency/ascii/src/G4tgrSolid.cc b/source/persistency/ascii/src/G4tgrSolid.cc index f5a12995e6..23f482920c 100644 --- a/source/persistency/ascii/src/G4tgrSolid.cc +++ b/source/persistency/ascii/src/G4tgrSolid.cc @@ -158,7 +158,7 @@ void G4tgrSolid::FillSolidParams(const std::vector& wl) G4String solidType = wl[2]; //--- Default unit (mm) if length, deg if angle - for(std::size_t ii = 0; ii < noParRead; ++ii) + for(G4int ii = 0; ii < (G4int)noParRead; ++ii) { G4bool isAngle = 0; std::map>::const_iterator ite = diff --git a/source/persistency/ascii/src/G4tgrSolidBoolean.cc b/source/persistency/ascii/src/G4tgrSolidBoolean.cc index 12d45aaca4..eb0e254842 100644 --- a/source/persistency/ascii/src/G4tgrSolidBoolean.cc +++ b/source/persistency/ascii/src/G4tgrSolidBoolean.cc @@ -71,9 +71,9 @@ G4tgrSolidBoolean::G4tgrSolidBoolean(const std::vector& wl) G4tgrUtils::GetDouble(wl[8])); //---------- Set solid type G4String wl2 = wl[2]; - for(std::size_t ii = 0; ii < wl2.length(); ++ii) + for(G4int ii = 0; ii < (G4int)wl2.length(); ++ii) { - wl2[ii] = toupper(wl2[ii]); + wl2[ii] = (char)std::toupper(wl2[ii]); } theType = "Boolean_" + wl2; diff --git a/source/persistency/ascii/src/G4tgrSolidMultiUnion.cc b/source/persistency/ascii/src/G4tgrSolidMultiUnion.cc index f83a94c3b4..07e690c701 100644 --- a/source/persistency/ascii/src/G4tgrSolidMultiUnion.cc +++ b/source/persistency/ascii/src/G4tgrSolidMultiUnion.cc @@ -86,9 +86,9 @@ G4tgrSolidMultiUnion::G4tgrSolidMultiUnion(const std::vector& wl) // ---------- Set solid type G4String wl2 = wl[2]; - for(std::size_t ii = 0; ii < wl2.length(); ++ii) + for(G4int ii = 0; ii < (G4int)wl2.length(); ++ii) { - wl2[ii] = toupper(wl2[ii]); + wl2[ii] = (char)std::toupper(wl2[ii]); } theType = wl2; diff --git a/source/persistency/ascii/src/G4tgrSolidScaled.cc b/source/persistency/ascii/src/G4tgrSolidScaled.cc index 0ae6460b14..7c950e566e 100644 --- a/source/persistency/ascii/src/G4tgrSolidScaled.cc +++ b/source/persistency/ascii/src/G4tgrSolidScaled.cc @@ -61,9 +61,9 @@ G4tgrSolidScaled::G4tgrSolidScaled(const std::vector& wl) //---------- Set solid type G4String wl2 = wl[2]; - for(std::size_t ii = 0; ii < wl2.length(); ++ii) + for(G4int ii = 0; ii < (G4int)wl2.length(); ++ii) { - wl2[ii] = toupper(wl2[ii]); + wl2[ii] = (char)std::toupper(wl2[ii]); } theType = wl2; diff --git a/source/persistency/ascii/src/G4tgrUtils.cc b/source/persistency/ascii/src/G4tgrUtils.cc index d89732a42c..b1cc537595 100644 --- a/source/persistency/ascii/src/G4tgrUtils.cc +++ b/source/persistency/ascii/src/G4tgrUtils.cc @@ -78,7 +78,7 @@ G4bool G4tgrUtils::IsNumber(const G4String& str) { G4int isnum = 1; G4int numE = 0; - for(std::size_t ii = 0; ii < str.length(); ++ii) + for(G4int ii = 0; ii < (G4int)str.length(); ++ii) { if(!isdigit(str[ii]) && (str[ii] != '.') && (str[ii] != '-') && (str[ii] != '+')) @@ -90,7 +90,7 @@ G4bool G4tgrUtils::IsNumber(const G4String& str) { return 0; } - if(numE != 0 || ii == str.length() - 1) + if(numE != 0 || ii == G4int(str.length() - 1)) { isnum = 0; break; @@ -492,7 +492,7 @@ void G4tgrUtils::CheckWLsize(const std::vector& wl, const G4String& methodName) { G4String outStr = methodName + G4String(". Line read with number of words "); - unsigned int wlsize = wl.size(); + unsigned int wlsize = (unsigned int)wl.size(); G4bool isOK = CheckListSize(wlsize, nWcheck, st, outStr); diff --git a/source/persistency/ascii/src/G4tgrVolumeDivision.cc b/source/persistency/ascii/src/G4tgrVolumeDivision.cc index b193be4699..b7cefa9246 100644 --- a/source/persistency/ascii/src/G4tgrVolumeDivision.cc +++ b/source/persistency/ascii/src/G4tgrVolumeDivision.cc @@ -88,9 +88,9 @@ G4tgrVolumeDivision::G4tgrVolumeDivision(const std::vector& wl) //---------- set if division is given by number of divisions of by width G4String wl0 = wl[0]; - for(std::size_t ii = 0; ii < wl0.length(); ++ii) + for(G4int ii = 0; ii < (G4int)wl0.length(); ++ii) { - wl0[ii] = toupper(wl0[ii]); + wl0[ii] = (char)std::toupper(wl0[ii]); } if(wl0 == ":DIV_NDIV") diff --git a/source/persistency/ascii/src/G4tgrVolumeMgr.cc b/source/persistency/ascii/src/G4tgrVolumeMgr.cc index 7da2b01474..930f13c7c0 100644 --- a/source/persistency/ascii/src/G4tgrVolumeMgr.cc +++ b/source/persistency/ascii/src/G4tgrVolumeMgr.cc @@ -81,9 +81,9 @@ G4tgrSolid* G4tgrVolumeMgr::CreateSolid(const std::vector& wl, } G4String wl2 = wlc[2]; - for(std::size_t ii = 0; ii < wl2.length(); ++ii) + for(G4int ii = 0; ii < (G4int)wl2.length(); ++ii) { - wl2[ii] = toupper(wl2[ii]); + wl2[ii] = (char)std::toupper(wl2[ii]); } if((wl2 == "UNION") || (wl2 == "SUBTRACTION") || (wl2 == "INTERSECTION")) { diff --git a/source/persistency/gdml/History b/source/persistency/gdml/History index 3a24c03943..6db52c1c94 100644 --- a/source/persistency/gdml/History +++ b/source/persistency/gdml/History @@ -1,8 +1,13 @@ # Category gdml History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-11 Gabriele Cosmo (gdml-V11-00-05) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2022-04-04 Sergio Losilla (gdml-V11-00-04) - Changed default temperature to 20 °C (followup to commit ba61d0). diff --git a/source/persistency/gdml/src/G4GDMLEvaluator.cc b/source/persistency/gdml/src/G4GDMLEvaluator.cc index f42fb92d95..c53c1a59e1 100644 --- a/source/persistency/gdml/src/G4GDMLEvaluator.cc +++ b/source/persistency/gdml/src/G4GDMLEvaluator.cc @@ -80,7 +80,7 @@ void G4GDMLEvaluator::DefineVariable(const G4String& name, G4double value) void G4GDMLEvaluator::DefineMatrix(const G4String& name, G4int coldim, std::vector valueList) { - const G4int size = valueList.size(); + const G4int size = (G4int)valueList.size(); if(size == 0) { diff --git a/source/persistency/gdml/src/G4GDMLReadMaterials.cc b/source/persistency/gdml/src/G4GDMLReadMaterials.cc index d94b3064cb..a4fc2e23fa 100644 --- a/source/persistency/gdml/src/G4GDMLReadMaterials.cc +++ b/source/persistency/gdml/src/G4GDMLReadMaterials.cc @@ -676,7 +676,7 @@ void G4GDMLReadMaterials::MaterialRead( } else { - material = new G4Material(Strip(name), D, nComponents, state, T, P); + material = new G4Material(Strip(name), D, (G4int)nComponents, state, T, P); MixtureRead(materialElement, material); } if(MEE != -1) // ionisation potential (mean excitation energy) diff --git a/source/persistency/gdml/src/G4GDMLReadParamvol.cc b/source/persistency/gdml/src/G4GDMLReadParamvol.cc index 2eba4385d7..561bfe8b70 100644 --- a/source/persistency/gdml/src/G4GDMLReadParamvol.cc +++ b/source/persistency/gdml/src/G4GDMLReadParamvol.cc @@ -987,8 +987,8 @@ void G4GDMLReadParamvol::Polycone_dimensionsRead( } } - G4int numZPlanes = zplaneList.size(); - for(G4int i = 0; i < numZPlanes; ++i) + std::size_t numZPlanes = zplaneList.size(); + for(std::size_t i = 0; i < numZPlanes; ++i) { parameter.dimension[3 + i * 3] = zplaneList[i].rmin * lunit; parameter.dimension[4 + i * 3] = zplaneList[i].rmax * lunit; @@ -1069,8 +1069,8 @@ void G4GDMLReadParamvol::Polyhedra_dimensionsRead( parameter.dimension[0] *= aunit; parameter.dimension[1] *= aunit; - for(xercesc::DOMNode* iter = element->getFirstChild(); iter != nullptr; - iter = iter->getNextSibling()) + for(auto iter = element->getFirstChild(); iter != nullptr; + iter = iter->getNextSibling()) { if(iter->getNodeType() != xercesc::DOMNode::ELEMENT_NODE) { @@ -1093,8 +1093,8 @@ void G4GDMLReadParamvol::Polyhedra_dimensionsRead( } } - G4int numZPlanes = zplaneList.size(); - for(G4int i = 0; i < numZPlanes; ++i) + std::size_t numZPlanes = zplaneList.size(); + for(std::size_t i = 0; i < numZPlanes; ++i) { parameter.dimension[4 + i * 3] = zplaneList[i].rmin * lunit; parameter.dimension[5 + i * 3] = zplaneList[i].rmax * lunit; diff --git a/source/persistency/gdml/src/G4GDMLReadSolids.cc b/source/persistency/gdml/src/G4GDMLReadSolids.cc index 631f9526ac..de03072747 100644 --- a/source/persistency/gdml/src/G4GDMLReadSolids.cc +++ b/source/persistency/gdml/src/G4GDMLReadSolids.cc @@ -1259,21 +1259,21 @@ void G4GDMLReadSolids::PolyconeRead( } } - G4int numZPlanes = zplaneList.size(); + std::size_t numZPlanes = zplaneList.size(); G4double* rmin_array = new G4double[numZPlanes]; G4double* rmax_array = new G4double[numZPlanes]; G4double* z_array = new G4double[numZPlanes]; - for(G4int i = 0; i < numZPlanes; ++i) + for(std::size_t i = 0; i < numZPlanes; ++i) { rmin_array[i] = zplaneList[i].rmin * lunit; rmax_array[i] = zplaneList[i].rmax * lunit; z_array[i] = zplaneList[i].z * lunit; } - new G4Polycone(name, startphi, deltaphi, numZPlanes, z_array, rmin_array, - rmax_array); + new G4Polycone(name, startphi, deltaphi, (G4int)numZPlanes, z_array, + rmin_array, rmax_array); delete[] rmin_array; delete[] rmax_array; @@ -1376,18 +1376,18 @@ void G4GDMLReadSolids::GenericPolyconeRead( } } - G4int numRZPoints = rzPointList.size(); + std::size_t numRZPoints = rzPointList.size(); G4double* r_array = new G4double[numRZPoints]; G4double* z_array = new G4double[numRZPoints]; - for(G4int i = 0; i < numRZPoints; ++i) + for(std::size_t i = 0; i < numRZPoints; ++i) { r_array[i] = rzPointList[i].r * lunit; z_array[i] = rzPointList[i].z * lunit; } - new G4GenericPolycone(name, startphi, deltaphi, numRZPoints, r_array, - z_array); + new G4GenericPolycone(name, startphi, deltaphi, (G4int)numRZPoints, + r_array, z_array); delete[] r_array; delete[] z_array; } @@ -1493,21 +1493,21 @@ void G4GDMLReadSolids::PolyhedraRead( } } - G4int numZPlanes = zplaneList.size(); + std::size_t numZPlanes = zplaneList.size(); G4double* rmin_array = new G4double[numZPlanes]; G4double* rmax_array = new G4double[numZPlanes]; G4double* z_array = new G4double[numZPlanes]; - for(G4int i = 0; i < numZPlanes; ++i) + for(std::size_t i = 0; i < numZPlanes; ++i) { rmin_array[i] = zplaneList[i].rmin * lunit; rmax_array[i] = zplaneList[i].rmax * lunit; z_array[i] = zplaneList[i].z * lunit; } - new G4Polyhedra(name, startphi, deltaphi, numsides, numZPlanes, z_array, - rmin_array, rmax_array); + new G4Polyhedra(name, startphi, deltaphi, numsides, (G4int)numZPlanes, + z_array, rmin_array, rmax_array); delete[] rmin_array; delete[] rmax_array; @@ -1615,19 +1615,19 @@ void G4GDMLReadSolids::GenericPolyhedraRead( } } - G4int numRZPoints = rzpointList.size(); + std::size_t numRZPoints = rzpointList.size(); G4double* r_array = new G4double[numRZPoints]; G4double* z_array = new G4double[numRZPoints]; - for(G4int i = 0; i < numRZPoints; ++i) + for(std::size_t i = 0; i < numRZPoints; ++i) { r_array[i] = rzpointList[i].r * lunit; z_array[i] = rzpointList[i].z * lunit; } - new G4Polyhedra(name, startphi, deltaphi, numsides, numRZPoints, r_array, - z_array); + new G4Polyhedra(name, startphi, deltaphi, numsides, (G4int)numRZPoints, + r_array, z_array); delete[] r_array; delete[] z_array; diff --git a/source/persistency/gdml/src/G4GDMLWriteMaterials.cc b/source/persistency/gdml/src/G4GDMLWriteMaterials.cc index 4e44c040bb..3f485a11b9 100644 --- a/source/persistency/gdml/src/G4GDMLWriteMaterials.cc +++ b/source/persistency/gdml/src/G4GDMLWriteMaterials.cc @@ -120,13 +120,13 @@ void G4GDMLWriteMaterials::ElementWrite(const G4Element* const elementPtr) xercesc::DOMElement* elementElement = NewElement("element"); elementElement->setAttributeNode(NewAttribute("name", name)); - const std::size_t NumberOfIsotopes = elementPtr->GetNumberOfIsotopes(); + const G4int NumberOfIsotopes = (G4int)elementPtr->GetNumberOfIsotopes(); if(NumberOfIsotopes > 0) { const G4double* RelativeAbundanceVector = elementPtr->GetRelativeAbundanceVector(); - for(std::size_t i = 0; i < NumberOfIsotopes; ++i) + for(G4int i = 0; i < NumberOfIsotopes; ++i) { G4String fractionref = GenerateName(elementPtr->GetIsotope(i)->GetName(), elementPtr->GetIsotope(i)); @@ -195,7 +195,7 @@ void G4GDMLWriteMaterials::MaterialWrite(const G4Material* const materialPtr) DWrite(materialElement, materialPtr->GetDensity()); - const std::size_t NumberOfElements = materialPtr->GetNumberOfElements(); + const G4int NumberOfElements = (G4int)materialPtr->GetNumberOfElements(); if((NumberOfElements > 1) || (materialPtr->GetElement(0) != nullptr && @@ -203,7 +203,7 @@ void G4GDMLWriteMaterials::MaterialWrite(const G4Material* const materialPtr) { const G4double* MassFractionVector = materialPtr->GetFractionVector(); - for(std::size_t i = 0; i < NumberOfElements; ++i) + for(G4int i = 0; i < NumberOfElements; ++i) { const G4String fractionref = GenerateName( materialPtr->GetElement(i)->GetName(), materialPtr->GetElement(i)); diff --git a/source/persistency/gdml/src/G4GDMLWriteSolids.cc b/source/persistency/gdml/src/G4GDMLWriteSolids.cc index dbe45e6629..093a1ef62d 100644 --- a/source/persistency/gdml/src/G4GDMLWriteSolids.cc +++ b/source/persistency/gdml/src/G4GDMLWriteSolids.cc @@ -559,8 +559,8 @@ void G4GDMLWriteSolids::GenericPolyconeWrite( polyconeElement->setAttributeNode(NewAttribute("lunit", "mm")); solElement->appendChild(polyconeElement); - const std::size_t num_rzpoints = polycone->GetNumRZCorner(); - for(std::size_t i = 0; i < num_rzpoints; ++i) + const G4int num_rzpoints = (G4int)polycone->GetNumRZCorner(); + for(G4int i = 0; i < num_rzpoints; ++i) { const G4double r_point = polycone->GetCorner(i).r; const G4double z_point = polycone->GetCorner(i).z; @@ -617,9 +617,9 @@ void G4GDMLWriteSolids::PolyhedraWrite(xercesc::DOMElement* solElement, polyhedraElement->setAttributeNode(NewAttribute("lunit", "mm")); solElement->appendChild(polyhedraElement); - const std::size_t num_rzpoints = polyhedra->GetNumRZCorner(); + const G4int num_rzpoints = (G4int)polyhedra->GetNumRZCorner(); - for(std::size_t i = 0; i < num_rzpoints; ++i) + for(G4int i = 0; i < num_rzpoints; ++i) { const G4double r_point = polyhedra->GetCorner(i).r; const G4double z_point = polyhedra->GetCorner(i).z; @@ -669,11 +669,11 @@ void G4GDMLWriteSolids::TessellatedWrite( std::map vertexMap; const std::size_t NumFacets = tessellated->GetNumberOfFacets(); - std::size_t NumVertex = 0; + std::size_t NumVertex = 0; for(std::size_t i = 0; i < NumFacets; ++i) { - const G4VFacet* facet = tessellated->GetFacet(i); + const G4VFacet* facet = tessellated->GetFacet((G4int)i); const size_t NumVertexPerFacet = facet->GetNumberOfVertices(); G4String FacetTag; @@ -712,7 +712,7 @@ void G4GDMLWriteSolids::TessellatedWrite( // cache it in the local map and add it as position in the // "define" section of the GDML file. - const G4ThreeVector& vertex = facet->GetVertex(j); + const G4ThreeVector& vertex = facet->GetVertex((G4int)j); if(vertexMap.find(vertex) != vertexMap.cend()) // Vertex is cached { diff --git a/source/persistency/gdml/src/G4GDMLWriteStructure.cc b/source/persistency/gdml/src/G4GDMLWriteStructure.cc index 1260d26bc1..bb0d07cbc2 100644 --- a/source/persistency/gdml/src/G4GDMLWriteStructure.cc +++ b/source/persistency/gdml/src/G4GDMLWriteStructure.cc @@ -432,7 +432,7 @@ const G4LogicalSkinSurface* G4GDMLWriteStructure::GetSkinSurface( const G4LogicalVolume* const lvol) { G4LogicalSkinSurface* surf = 0; - G4int nsurf = G4LogicalSkinSurface::GetNumberOfSkinSurfaces(); + std::size_t nsurf = G4LogicalSkinSurface::GetNumberOfSkinSurfaces(); if(nsurf) { const G4LogicalSkinSurfaceTable* stable = @@ -454,7 +454,7 @@ const G4LogicalBorderSurface* G4GDMLWriteStructure::GetBorderSurface( const G4VPhysicalVolume* const pvol) { G4LogicalBorderSurface* surf = nullptr; - G4int nsurf = G4LogicalBorderSurface::GetNumberOfBorderSurfaces(); + std::size_t nsurf = G4LogicalBorderSurface::GetNumberOfBorderSurfaces(); if(nsurf) { const G4LogicalBorderSurfaceTable* btable = @@ -611,7 +611,7 @@ G4Transform3D G4GDMLWriteStructure::TraverseVolumeTree( solidrefElement->setAttributeNode(NewAttribute("ref", solidref)); volumeElement->appendChild(solidrefElement); - G4int daughterCount = volumePtr->GetNoDaughters(); + std::size_t daughterCount = volumePtr->GetNoDaughters(); if(levelNo == maxLevel) // Stop exporting if reached levels limit { @@ -620,7 +620,7 @@ G4Transform3D G4GDMLWriteStructure::TraverseVolumeTree( std::map > assemblyIDToAddedImprints; - for(G4int i = 0; i < daughterCount; ++i) // Traverse all the children! + for(std::size_t i = 0; i < daughterCount; ++i) // Traverse all the children! { const G4VPhysicalVolume* const physvol = volumePtr->GetDaughter(i); const G4String ModuleName = Modularize(physvol, depth); diff --git a/source/persistency/mctruth/History b/source/persistency/mctruth/History index 5608f3a201..de54f571b7 100644 --- a/source/persistency/mctruth/History +++ b/source/persistency/mctruth/History @@ -1,9 +1,20 @@ # Category mctruth History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-16 Gabriele Cosmo (mctruth-V11-00-03) +- Fixed more compilation warnings for implicit type conversions on + macOS/XCode 14.1 in G4MCTGenEvent source. + +## 2022-11-11 Gabriele Cosmo (mctruth-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-07-03 Ben Morgan (mctruth-V11-00-01) +- Add headers for directly used classes from global/HEPGeometry ## 2021-12-10 Ben Morgan (mctruth-V11-00-00) - Change to new Markdown History format diff --git a/source/persistency/mctruth/include/G4MCTEvent.hh b/source/persistency/mctruth/include/G4MCTEvent.hh index 1e33db36a0..72a8fd3c4f 100644 --- a/source/persistency/mctruth/include/G4MCTEvent.hh +++ b/source/persistency/mctruth/include/G4MCTEvent.hh @@ -121,7 +121,7 @@ inline G4int G4MCTEvent::GetEventNumber() const inline G4int G4MCTEvent::GetNofPrimaries() const { - return gen2simParticleMap.size(); + return (G4int)gen2simParticleMap.size(); } inline G4MCTSimEvent* G4MCTEvent::GetSimEvent() const diff --git a/source/persistency/mctruth/include/G4MCTSimEvent.hh b/source/persistency/mctruth/include/G4MCTSimEvent.hh index 3f0a99a1ef..2be6441c1d 100644 --- a/source/persistency/mctruth/include/G4MCTSimEvent.hh +++ b/source/persistency/mctruth/include/G4MCTSimEvent.hh @@ -104,12 +104,12 @@ inline G4MCTSimEvent& G4MCTSimEvent::operator=(const G4MCTSimEvent& right) inline G4int G4MCTSimEvent::GetNofParticles() const { - return particleMap.size(); + return (G4int)particleMap.size(); } inline G4int G4MCTSimEvent::GetNofVertices() const { - return vertexVec.size(); + return (G4int)vertexVec.size(); } // iterators diff --git a/source/persistency/mctruth/include/G4MCTSimParticle.hh b/source/persistency/mctruth/include/G4MCTSimParticle.hh index a4154d382d..ff16bfc1d2 100644 --- a/source/persistency/mctruth/include/G4MCTSimParticle.hh +++ b/source/persistency/mctruth/include/G4MCTSimParticle.hh @@ -34,6 +34,7 @@ #include #include +#include "G4String.hh" #include "G4Types.hh" #include "G4LorentzVector.hh" diff --git a/source/persistency/mctruth/include/G4MCTSimVertex.hh b/source/persistency/mctruth/include/G4MCTSimVertex.hh index 09168e33c9..c55043edfd 100644 --- a/source/persistency/mctruth/include/G4MCTSimVertex.hh +++ b/source/persistency/mctruth/include/G4MCTSimVertex.hh @@ -211,24 +211,24 @@ inline G4int G4MCTSimVertex::GetInParticleTrackID() const inline G4int G4MCTSimVertex::GetNofOutParticles() const { - return outParticleTrackIDList.size(); + return (G4int)outParticleTrackIDList.size(); } inline G4int G4MCTSimVertex::AddOutParticle(const G4MCTSimParticle* out) { outParticleTrackIDList.push_back(out->GetTrackID()); - return outParticleTrackIDList.size(); + return (G4int)outParticleTrackIDList.size(); } inline G4int G4MCTSimVertex::AddOutParticle(G4int out) { outParticleTrackIDList.push_back(out); - return outParticleTrackIDList.size(); + return (G4int)outParticleTrackIDList.size(); } inline G4int G4MCTSimVertex::GetOutParticleTrackID(G4int i) const { - G4int size = outParticleTrackIDList.size(); + G4int size = (G4int)outParticleTrackIDList.size(); if(i >= 0 && i < size) return outParticleTrackIDList[i]; else diff --git a/source/persistency/mctruth/src/G4MCTEvent.cc b/source/persistency/mctruth/src/G4MCTEvent.cc index b4e3bd300a..d494b34262 100644 --- a/source/persistency/mctruth/src/G4MCTEvent.cc +++ b/source/persistency/mctruth/src/G4MCTEvent.cc @@ -87,7 +87,7 @@ G4int G4MCTEvent::AddPrimaryPair(const G4MCTGenParticle& genp, sim2genParticleMap.insert(std::make_pair( const_cast(simp), const_cast(genp))); - return gen2simParticleMap.size(); + return (G4int)gen2simParticleMap.size(); } // -------------------------------------------------------------------- diff --git a/source/persistency/mctruth/src/G4MCTGenEvent.cc b/source/persistency/mctruth/src/G4MCTGenEvent.cc index 8ed3b02954..9ce3d7a6e2 100644 --- a/source/persistency/mctruth/src/G4MCTGenEvent.cc +++ b/source/persistency/mctruth/src/G4MCTGenEvent.cc @@ -45,19 +45,19 @@ G4MCTGenEvent::~G4MCTGenEvent() G4int G4MCTGenEvent::AddGenEvent(const void* genevent) { eventList.push_back(const_cast(genevent)); - return eventList.size(); + return (G4int)eventList.size(); } // -------------------------------------------------------------------- G4int G4MCTGenEvent::GetNofEvents() const { - return eventList.size(); + return (G4int)eventList.size(); } // -------------------------------------------------------------------- const void* G4MCTGenEvent::GetGenEvent(G4int i) { - G4int size = eventList.size(); + G4int size = (G4int)eventList.size(); if(i >= 0 && i < size) return eventList[i]; else diff --git a/source/persistency/mctruth/src/G4MCTSimEvent.cc b/source/persistency/mctruth/src/G4MCTSimEvent.cc index 2e4e369117..d3db576bc3 100644 --- a/source/persistency/mctruth/src/G4MCTSimEvent.cc +++ b/source/persistency/mctruth/src/G4MCTSimEvent.cc @@ -50,7 +50,7 @@ G4bool G4MCTSimEvent::AddParticle(const G4MCTSimParticle* aparticle) { G4MCTSimParticle* qpart = const_cast(aparticle); G4int trackID = aparticle->GetTrackID(); - G4int nc = particleMap.count(trackID); + std::size_t nc = particleMap.count(trackID); if(nc == 0) { particleMap.insert(std::make_pair(trackID, qpart)); @@ -79,7 +79,7 @@ G4MCTSimParticle* G4MCTSimEvent::FindParticle(G4int tid) const // -------------------------------------------------------------------- G4MCTSimVertex* G4MCTSimEvent::GetVertex(G4int vid) const { - G4int nv = vertexVec.size(); + G4int nv = (G4int)vertexVec.size(); if(vid >= 1 && vid <= nv) { return vertexVec[vid - 1]; diff --git a/source/persistency/mctruth/src/G4MCTSimParticle.cc b/source/persistency/mctruth/src/G4MCTSimParticle.cc index 3706484051..afbc4a11f4 100644 --- a/source/persistency/mctruth/src/G4MCTSimParticle.cc +++ b/source/persistency/mctruth/src/G4MCTSimParticle.cc @@ -80,19 +80,19 @@ G4int G4MCTSimParticle::AssociateParticle(G4MCTSimParticle* p) { associatedParticleList.push_back(p); p->SetParentParticle(this); - return associatedParticleList.size(); + return (G4int)associatedParticleList.size(); } // -------------------------------------------------------------------- G4int G4MCTSimParticle::GetNofAssociatedParticles() const { - return associatedParticleList.size(); + return (G4int)associatedParticleList.size(); } // -------------------------------------------------------------------- G4MCTSimParticle* G4MCTSimParticle::GetAssociatedParticle(G4int i) const { - G4int size = associatedParticleList.size(); + G4int size = (G4int)associatedParticleList.size(); if(i >= 0 && i < size) return associatedParticleList[i]; else diff --git a/source/persistency/mctruth/src/G4PersistencyCenterMessenger.cc b/source/persistency/mctruth/src/G4PersistencyCenterMessenger.cc index f09c9ffac6..32b14a1936 100644 --- a/source/persistency/mctruth/src/G4PersistencyCenterMessenger.cc +++ b/source/persistency/mctruth/src/G4PersistencyCenterMessenger.cc @@ -269,8 +269,8 @@ G4String G4PersistencyCenterMessenger::PopWord(const G4String& text, G4int n, { if(text.length() <= 0) return ""; - G4int p = 0, p0 = 0; - G4int p1 = 0; + std::size_t p = 0, p0 = 0; + std::size_t p1 = 0; for(G4int i = 0; i < n; ++i) { p1 = text.find_first_of(delim, p0 + 1); @@ -280,7 +280,7 @@ G4String G4PersistencyCenterMessenger::PopWord(const G4String& text, G4int n, p1 = text.find_first_of(delim, p0 + 1); } p = p0; - if(p1 < 0) + if(p1 == G4String::npos) { if(i + 1 < n) return ""; diff --git a/source/persistency/mctruth/src/G4PersistencyManager.cc b/source/persistency/mctruth/src/G4PersistencyManager.cc index 8c044bfd32..a7221f548c 100644 --- a/source/persistency/mctruth/src/G4PersistencyManager.cc +++ b/source/persistency/mctruth/src/G4PersistencyManager.cc @@ -74,13 +74,13 @@ void G4PersistencyManager::SetVerboseLevel(G4int v) if(TransactionManager() != nullptr) TransactionManager()->SetVerboseLevel(m_verbose); - std::size_t i; + G4int i; G4HCIOcatalog* hcio = G4HCIOcatalog::GetHCIOcatalog(); if(hcio != nullptr) { hcio->SetVerboseLevel(m_verbose); - for(i = 0; i < hcio->NumberOfHCIOmanager(); ++i) + for(i = 0; i < (G4int)hcio->NumberOfHCIOmanager(); ++i) { hcio->GetHCIOmanager(i)->SetVerboseLevel(m_verbose); } @@ -89,7 +89,7 @@ void G4PersistencyManager::SetVerboseLevel(G4int v) if(dcio != nullptr) { dcio->SetVerboseLevel(m_verbose); - for(i = 0; i < dcio->NumberOfDCIOmanager(); ++i) + for(i = 0; i < (G4int)dcio->NumberOfDCIOmanager(); ++i) { dcio->GetDCIOmanager(i)->SetVerboseLevel(m_verbose); } diff --git a/source/persistency/mctruth/src/G4VPDigitIO.cc b/source/persistency/mctruth/src/G4VPDigitIO.cc index 1f57420f8c..ca8d084696 100644 --- a/source/persistency/mctruth/src/G4VPDigitIO.cc +++ b/source/persistency/mctruth/src/G4VPDigitIO.cc @@ -44,7 +44,7 @@ void G4VPDigitIO::SetVerboseLevel(G4int v) m_verbose = v; // Loop through the registered Digit I/O managers - for(std::size_t i = 0; i < f_catalog->NumberOfDCIOmanager(); ++i) + for(G4int i = 0; i < (G4int)f_catalog->NumberOfDCIOmanager(); ++i) { G4VPDigitsCollectionIO* digitIOman = f_catalog->GetDCIOmanager(i); digitIOman->SetVerboseLevel(v); diff --git a/source/persistency/mctruth/src/G4VPHitIO.cc b/source/persistency/mctruth/src/G4VPHitIO.cc index 223995672e..54ade23784 100644 --- a/source/persistency/mctruth/src/G4VPHitIO.cc +++ b/source/persistency/mctruth/src/G4VPHitIO.cc @@ -44,7 +44,7 @@ void G4VPHitIO::SetVerboseLevel(G4int v) m_verbose = v; // Loop through the registered Hit I/O managers - for(std::size_t i = 0; i < f_catalog->NumberOfHCIOmanager(); ++i) + for(G4int i = 0; i < (G4int)f_catalog->NumberOfHCIOmanager(); ++i) { G4VPHitsCollectionIO* hitIOman = f_catalog->GetHCIOmanager(i); hitIOman->SetVerboseLevel(v); diff --git a/source/physics_lists/History b/source/physics_lists/History index 6c9eb29900..27316e4ad1 100644 --- a/source/physics_lists/History +++ b/source/physics_lists/History @@ -1,8 +1,13 @@ # Category physics-lists History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-24 Gabriele Cosmo (physics-lists-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2022-01-28 Ben Morgan (physics-lists-V11-00-01) - Replace `geant4_global_library_target` with direct file inclusion and diff --git a/source/physics_lists/builders/History b/source/physics_lists/builders/History index c3329eeba2..e91a325008 100644 --- a/source/physics_lists/builders/History +++ b/source/physics_lists/builders/History @@ -1,9 +1,18 @@ # Category phys-builder History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-24 Gabriele Cosmo (phys-builders-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-11 Alberto Ribon (phys-builder-V11-00-01) +- G4HadronicBuilder : added new methods to build hadronic physics + for light hypernuclei - with FTFP alone, or FTFP + INCLXX - and + light anti-hypernuclei - with FTFP alone - projectiles. ## 2021-12-10 Ben Morgan (phys-builder-V11-00-00) - Change to new Markdown History format diff --git a/source/physics_lists/builders/include/G4HadronicBuilder.hh b/source/physics_lists/builders/include/G4HadronicBuilder.hh index e6073da806..12cb906a62 100644 --- a/source/physics_lists/builders/include/G4HadronicBuilder.hh +++ b/source/physics_lists/builders/include/G4HadronicBuilder.hh @@ -84,6 +84,17 @@ public: // method to create some decays for heavy hadrons static void BuildDecayTableForBCHadrons(); + + // methods for nuclear interactions of light hypernuclei and anti-hypernuclei projectiles + // (note that: QGS cannot handle nuclei projectiles of any kind; INCLXX is currently + // the only intra-nuclear cascade model capable of handling light hypernuclei - but not + // light anti-hypernuclei - so only the two reference physics lists FTFP_BERT and + // FTFP_INCLXX are able to simulate nuclear interactions of light hypernuclei and + // anti-hypernuclei). + static void BuildHyperNucleiFTFP_BERT(); + static void BuildHyperAntiNucleiFTFP_BERT(); + static void BuildHyperNucleiFTFP_INCLXX(); + static void BuildFTFP_INCLXX( const std::vector< G4int >& partList, const G4String& xsName ); }; #endif diff --git a/source/physics_lists/builders/src/G4HadronicBuilder.cc b/source/physics_lists/builders/src/G4HadronicBuilder.cc index eab6da3f2c..166bdf9470 100644 --- a/source/physics_lists/builders/src/G4HadronicBuilder.cc +++ b/source/physics_lists/builders/src/G4HadronicBuilder.cc @@ -63,6 +63,10 @@ #include "G4VDecayChannel.hh" #include "G4PhaseSpaceDecayChannel.hh" +#include "G4PreCompoundModel.hh" +#include "G4INCLXXInterface.hh" + + void G4HadronicBuilder::BuildFTFP_BERT(const std::vector& partList, G4bool bert, const G4String& xsName) { @@ -490,3 +494,60 @@ void G4HadronicBuilder::BuildDecayTableForBCHadrons() { G4Upsilon::Definition()->SetDecayTable( decayTable ); } } + + +void G4HadronicBuilder::BuildHyperNucleiFTFP_BERT() { + if ( G4HadronicParameters::Instance()->EnableHyperNuclei() ) { + // Bertini intra-nuclear cascade model is currently not applicable for light + // hypernuclei, therefore FTFP is used down to zero kinetic energy (but at + // very low energies, a dummy model is used that simply returns the projectile + // hypernucleus in the final state). + BuildFTFP_BERT( G4HadParticles::GetHyperNuclei(), false, "Glauber-Gribov" ); + } +} + + +void G4HadronicBuilder::BuildHyperAntiNucleiFTFP_BERT() { + if ( G4HadronicParameters::Instance()->EnableHyperNuclei() ) { + // FTFP can be used down to zero kinetic energy. + BuildFTFP_BERT( G4HadParticles::GetHyperAntiNuclei(), false, "AntiAGlauber" ); + } +} + + +void G4HadronicBuilder::BuildHyperNucleiFTFP_INCLXX() { + if ( G4HadronicParameters::Instance()->EnableHyperNuclei() ) { + BuildFTFP_INCLXX( G4HadParticles::GetHyperNuclei(), "Glauber-Gribov" ); + } +} + + +void G4HadronicBuilder::BuildFTFP_INCLXX( const std::vector< G4int >& partList, const G4String& xsName ) { + G4HadronicParameters* param = G4HadronicParameters::Instance(); + G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); + auto theTheoFSModel = new G4TheoFSGenerator( "FTFP" ); + auto theStringModel = new G4FTFModel; + theStringModel->SetFragmentationModel( new G4ExcitedStringDecay ); + theTheoFSModel->SetHighEnergyGenerator( theStringModel ); + theTheoFSModel->SetTransport( new G4GeneratorPrecompoundInterface ); + theTheoFSModel->SetMaxEnergy( param->GetMaxEnergy() ); + theTheoFSModel->SetMinEnergy( 15.0*CLHEP::GeV ); + G4VPreCompoundModel* thePrecoModel = new G4PreCompoundModel; + thePrecoModel->SetMinEnergy( 0.0 ); + thePrecoModel->SetMaxEnergy( 2.0*CLHEP::MeV ); + G4INCLXXInterface* theINCLXXModel = new G4INCLXXInterface( thePrecoModel ); + theINCLXXModel->SetMinEnergy( 1.0*CLHEP::MeV ); + theINCLXXModel->SetMaxEnergy( 20.0*CLHEP::GeV ); + auto xsinel = G4HadProcesses::InelasticXS( xsName ); + G4ParticleTable* table = G4ParticleTable::GetParticleTable(); + for ( auto & pdg : partList ) { + auto part = table->FindParticle( pdg ); + if ( part == nullptr ) continue; + auto hadi = new G4HadronInelasticProcess( part->GetParticleName()+"Inelastic", part ); + hadi->AddDataSet( xsinel ); + hadi->RegisterMe( theTheoFSModel ); + hadi->RegisterMe( theINCLXXModel ); + if ( param->ApplyFactorXS() ) hadi->MultiplyCrossSectionBy( param->XSFactorHadronInelastic() ); + ph->RegisterProcess( hadi, part ); + } +} diff --git a/source/physics_lists/builders/src/G4NeutronCrossSectionXS.cc b/source/physics_lists/builders/src/G4NeutronCrossSectionXS.cc index efb553ff3d..0a1e1f4d26 100644 --- a/source/physics_lists/builders/src/G4NeutronCrossSectionXS.cc +++ b/source/physics_lists/builders/src/G4NeutronCrossSectionXS.cc @@ -81,7 +81,7 @@ void G4NeutronCrossSectionXS::ConstructProcess() } G4ProcessVector* pv = neutron->GetProcessManager()->GetProcessList(); - G4int n = pv->size(); + G4int n = (G4int)pv->size(); G4HadronicProcess* had = 0; for(G4int i=0; iGetProcessSubType()) { @@ -93,4 +93,3 @@ void G4NeutronCrossSectionXS::ConstructProcess() } } } - diff --git a/source/physics_lists/constructors/History b/source/physics_lists/constructors/History index 40b1cdb0ef..8dc194c813 100644 --- a/source/physics_lists/constructors/History +++ b/source/physics_lists/constructors/History @@ -1,9 +1,13 @@ # Category phys-ctor History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-24 Gabriele Cosmo (phys-ctor-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2022-05-16 Guilherme Amadio (phys-ctor-V11-00-01) - Replace getenv() calls for data variables with G4FindDataDir() diff --git a/source/physics_lists/constructors/decay/GNUmakefile b/source/physics_lists/constructors/decay/GNUmakefile index 41fc03c787..ebc4c68c59 100644 --- a/source/physics_lists/constructors/decay/GNUmakefile +++ b/source/physics_lists/constructors/decay/GNUmakefile @@ -31,6 +31,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/particles/hadrons/ions/include \ -I$(G4BASE)/run/include \ -I$(G4BASE)/physics_lists/builders/include \ + -I$(G4BASE)/physics_lists/constructors/electromagnetic/include \ -I$(G4BASE)/physics_lists/util/include \ -I$(G4BASE)/physics_lists/constructors/factory/include \ -I$(G4BASE)/processes/management/include \ diff --git a/source/physics_lists/constructors/decay/History b/source/physics_lists/constructors/decay/History index 79570a0033..6e173e3778 100644 --- a/source/physics_lists/constructors/decay/History +++ b/source/physics_lists/constructors/decay/History @@ -4,6 +4,16 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-16 Vladimir Ivanchenko (phys-ctor-decay-V11-00-03) +- added calls to G4EmBuilder and G4PhysListUtil in order to + prevent from warnings on hyper-nuclei decays in the case of + simplified custom Physics List + +## 2022-08-16 Alberto Ribon (phys-ctor-decay-V11-00-02) +- sources.cmake : added missed dependency on G4physlist_util + +## 2022-08-09 Vladimir Ivanchenko (phys-ctor-decay-V11-00-01) +- G4DecayPhysics - added instantiation of singletones for physics ## 2021-12-10 Ben Morgan (phys-ctor-decay-V11-00-00) - Change to new Markdown History format diff --git a/source/physics_lists/constructors/decay/sources.cmake b/source/physics_lists/constructors/decay/sources.cmake index a5b5473fa8..86f3b87b3b 100644 --- a/source/physics_lists/constructors/decay/sources.cmake +++ b/source/physics_lists/constructors/decay/sources.cmake @@ -33,6 +33,8 @@ geant4_module_link_libraries(G4phys_ctor_decay G4mesons G4partman G4phys_builders + G4phys_ctor_em G4phys_ctor_factory + G4physlist_util G4procman G4shortlived) diff --git a/source/physics_lists/constructors/decay/src/G4DecayPhysics.cc b/source/physics_lists/constructors/decay/src/G4DecayPhysics.cc index 4970c4410f..7024e3ab8a 100644 --- a/source/physics_lists/constructors/decay/src/G4DecayPhysics.cc +++ b/source/physics_lists/constructors/decay/src/G4DecayPhysics.cc @@ -51,27 +51,26 @@ #include "G4IonConstructor.hh" #include "G4ShortLivedConstructor.hh" #include "G4BuilderType.hh" +#include "G4PhysListUtil.hh" // factory #include "G4PhysicsConstructorFactory.hh" // G4_DECLARE_PHYSCONSTR_FACTORY(G4DecayPhysics); -G4DecayPhysics::G4DecayPhysics(G4int ver) - : G4VPhysicsConstructor("Decay"), verbose(ver) -{ - SetPhysicsType(bDecay); -} - G4DecayPhysics::G4DecayPhysics(const G4String& name, G4int ver) : G4VPhysicsConstructor(name), verbose(ver) { SetPhysicsType(bDecay); + G4PhysListUtil::InitialiseParameters(); } +G4DecayPhysics::G4DecayPhysics(G4int ver) + : G4DecayPhysics("Decay", ver) +{} + G4DecayPhysics::~G4DecayPhysics() -{ -} +{} void G4DecayPhysics::ConstructParticle() { diff --git a/source/physics_lists/constructors/decay/src/G4MuonicAtomDecayPhysics.cc b/source/physics_lists/constructors/decay/src/G4MuonicAtomDecayPhysics.cc index e289745e7d..c11361ffb8 100644 --- a/source/physics_lists/constructors/decay/src/G4MuonicAtomDecayPhysics.cc +++ b/source/physics_lists/constructors/decay/src/G4MuonicAtomDecayPhysics.cc @@ -38,6 +38,7 @@ #include "G4MuonicAtomDecay.hh" #include "globals.hh" #include "G4PhysicsListHelper.hh" +#include "G4PhysListUtil.hh" // factory #include "G4PhysicsConstructorFactory.hh" @@ -50,6 +51,7 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4MuonicAtomDecayPhysics); G4MuonicAtomDecayPhysics::G4MuonicAtomDecayPhysics(G4int vL) : G4VPhysicsConstructor("G4MuonicAtomDecay") { + G4PhysListUtil::InitialiseParameters(); SetVerboseLevel(vL); #ifdef G4VERBOSE if (GetVerboseLevel()>0) { @@ -59,15 +61,9 @@ G4MuonicAtomDecayPhysics::G4MuonicAtomDecayPhysics(G4int vL) #endif } -G4MuonicAtomDecayPhysics::G4MuonicAtomDecayPhysics(const G4String& name) -: G4VPhysicsConstructor(name) +G4MuonicAtomDecayPhysics::G4MuonicAtomDecayPhysics(const G4String&) + : G4MuonicAtomDecayPhysics(1) { -#ifdef G4VERBOSE - if (GetVerboseLevel()>0) { - G4cout << "G4MuonicAtomDecayPhysics() with verboseLevel " - << verboseLevel << " and name " << name << G4endl; - } -#endif } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/physics_lists/constructors/decay/src/G4RadioactiveDecayPhysics.cc b/source/physics_lists/constructors/decay/src/G4RadioactiveDecayPhysics.cc index 30caaea9f4..f583cd8604 100644 --- a/source/physics_lists/constructors/decay/src/G4RadioactiveDecayPhysics.cc +++ b/source/physics_lists/constructors/decay/src/G4RadioactiveDecayPhysics.cc @@ -39,6 +39,7 @@ #include "G4NuclearLevelData.hh" #include "G4DeexPrecoParameters.hh" #include "G4NuclideTable.hh" +#include "G4PhysListUtil.hh" // factory #include "G4PhysicsConstructorFactory.hh" @@ -47,9 +48,12 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4RadioactiveDecayPhysics); //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4RadioactiveDecayPhysics::G4RadioactiveDecayPhysics(G4int) +G4RadioactiveDecayPhysics::G4RadioactiveDecayPhysics(G4int ver) : G4VPhysicsConstructor("G4RadioactiveDecay") { + G4PhysListUtil::InitialiseParameters(); + SetVerboseLevel(ver); + // hadronic physics extra configuration G4DeexPrecoParameters* deex = G4NuclearLevelData::GetInstance()->GetParameters(); deex->SetStoreICLevelData(true); diff --git a/source/physics_lists/constructors/decay/src/G4SpinDecayPhysics.cc b/source/physics_lists/constructors/decay/src/G4SpinDecayPhysics.cc index 921805bc4a..f474e752d9 100644 --- a/source/physics_lists/constructors/decay/src/G4SpinDecayPhysics.cc +++ b/source/physics_lists/constructors/decay/src/G4SpinDecayPhysics.cc @@ -48,19 +48,23 @@ #include "G4MuonDecayChannelWithSpin.hh" #include "G4MuonRadiativeDecayChannelWithSpin.hh" +#include "G4EmBuilder.hh" +#include "G4PhysListUtil.hh" + // factory #include "G4PhysicsConstructorFactory.hh" // G4_DECLARE_PHYSCONSTR_FACTORY(G4SpinDecayPhysics); -G4SpinDecayPhysics::G4SpinDecayPhysics(G4int) - : G4VPhysicsConstructor("SpinDecay") +G4SpinDecayPhysics::G4SpinDecayPhysics(G4int verb) + : G4SpinDecayPhysics("SpinDecay", verb) { } G4SpinDecayPhysics::G4SpinDecayPhysics(const G4String& name, G4int) : G4VPhysicsConstructor(name) { + G4PhysListUtil::InitialiseParameters(); } G4SpinDecayPhysics::~G4SpinDecayPhysics() @@ -69,22 +73,11 @@ G4SpinDecayPhysics::~G4SpinDecayPhysics() void G4SpinDecayPhysics::ConstructParticle() { - G4Gamma::GammaDefinition(); - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - - G4NeutrinoE::NeutrinoEDefinition(); - G4NeutrinoMu::NeutrinoMuDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); - G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); + // minimal set of particles for EM physics + G4EmBuilder::ConstructMinimalEmSet(); G4MuonPlus::MuonPlusDefinition(); G4MuonMinus::MuonMinusDefinition(); - - G4PionPlus::PionPlus(); - G4PionMinus::PionMinus(); - - G4GenericIon::GenericIonDefinition(); G4DecayTable* MuonPlusDecayTable = new G4DecayTable(); MuonPlusDecayTable -> Insert(new diff --git a/source/physics_lists/constructors/electromagnetic/History b/source/physics_lists/constructors/electromagnetic/History index 08a3ed37c0..dc4a2ce688 100644 --- a/source/physics_lists/constructors/electromagnetic/History +++ b/source/physics_lists/constructors/electromagnetic/History @@ -1,9 +1,55 @@ # Category phys-ctor-em History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-24 Gabriele Cosmo (phys-ctor-em-V11-00-35) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-15 Vladimir Ivanchenko (phys-ctor-em-V11-00-34) +- G4EmBuilder - added G4AntiLambda and G4PionZero to the minimal + EM particle list to avoid warnings issued due to new hypernuclei + +## 2022-11-08 Vladimir Ivanchenko (phys-ctor-em-V11-00-33) +- G4EmBuilder - added G4Lambda to the minimal EM particle list + needed for hyper-nuclei physics + +## 2022-11-04 Vladimir Ivanchenko (phys-ctor-em-V11-00-32) +- G4EmBuilder - added e- and mu- neutrino and anti-neutrino to + the minimal EM particle list +- G4EmDNABuilder - added minimal list of EM standard particles + to all DNA physics variants, this allowing enable radioactive + decay, provides correct printout of EM processes and models, + and fix problem #2412 + +## 2022-10-14 Vladimir Ivanchenko (phys-ctor-em-V11-00-31) +- G4EmDNABuilder - enable combination of DNA and standard physics + +## 2022-10-08 Vladimir Ivanchenko (phys-ctor-em-V11-00-30) +- Increased upper limit of DNA proton/ion physics from 100 MeV + to 300 MeV in all DNA constructors +- G4EmDNABuilder - introduced const upper limit 1 MeV for DNA + models; introduced const upper limit 2 MeV for standard + low-energy ionisation; use the same upper limit for DNA + excitation and ionisation + +## 2022-09-05 Ben Morgan (phys-ctor-em-V11-00-29) +- Update public/private dependencies for consistency + +## 2022-08-30 Vladimir Ivanchenko (phys-ctor-em-V11-00-28) +- Chemistry builders - added used headers + +## 2022-08-09 Vladimir Ivanchenko (phys-ctor-em-V11-00-27) +- G4EmBuilder, G4EmDNAPhysics - instantiate singletones for physics + +## 2022-07-06 Vladimir Ivanchenko (phys-ctor-em-V11-00-26) +- G4GammaGeneralProcess - fixed problem of Compton scattering selection + in the low energy interval < 150 keV identified in test67; apply + spline interpolation for tables at low energy (<150 keV) and at + high energy (> 100 MeV) ## 2022-06-17 Vladimir Ivanchenko (phys-ctor-em-V11-00-25) - G4EmStandardPhysics_option4 - use Penelope ionisation model for e- diff --git a/source/physics_lists/constructors/electromagnetic/include/G4EmDNABuilder.hh b/source/physics_lists/constructors/electromagnetic/include/G4EmDNABuilder.hh index b517585330..f98ba85665 100644 --- a/source/physics_lists/constructors/electromagnetic/include/G4EmDNABuilder.hh +++ b/source/physics_lists/constructors/electromagnetic/include/G4EmDNABuilder.hh @@ -119,6 +119,15 @@ public: static G4LowECapture* FindOrBuildCapture(const G4double elim, G4ParticleDefinition* part); + +private: + + static void StandardHadronPhysics(G4ParticleDefinition*, + const G4double lowELimitForMSC, + const G4double lowELimitForIoni, + const G4double maxEnergy, + const G4EmDNAMscModelType mscType, + const G4bool isIon); }; #endif diff --git a/source/physics_lists/constructors/electromagnetic/include/G4GammaGeneralProcess.hh b/source/physics_lists/constructors/electromagnetic/include/G4GammaGeneralProcess.hh index 75917e6d19..f551350c6e 100644 --- a/source/physics_lists/constructors/electromagnetic/include/G4GammaGeneralProcess.hh +++ b/source/physics_lists/constructors/electromagnetic/include/G4GammaGeneralProcess.hh @@ -187,7 +187,6 @@ private: size_t nLowE = 40; size_t nHighE = 50; size_t idxEnergy = 0; - G4bool splineFlag = false; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/physics_lists/constructors/electromagnetic/sources.cmake b/source/physics_lists/constructors/electromagnetic/sources.cmake index ed19418f3f..5ce7898c0c 100644 --- a/source/physics_lists/constructors/electromagnetic/sources.cmake +++ b/source/physics_lists/constructors/electromagnetic/sources.cmake @@ -79,13 +79,11 @@ geant4_add_module(G4phys_ctor_em geant4_module_link_libraries(G4phys_ctor_em PUBLIC - G4decay G4emdna-utils + G4emdna-processes + G4emlowenergy G4emutils G4globman - G4materials - G4partman - G4procman G4run PRIVATE G4baryons @@ -95,22 +93,22 @@ geant4_module_link_libraries(G4phys_ctor_em G4emdna-models G4emdna-molman G4emdna-moltypes - G4emdna-processes G4emhighenergy - G4emlowenergy G4emstandard G4geometrymng G4hadronic_mgt - G4hadronic_proc G4hadronic_util - G4hadronic_xsect G4ions G4leptons + G4materials G4mesons G4muons G4optical + G4partman G4phys_builders G4phys_ctor_factory G4physlist_util + G4procman G4track + G4transportation #NB Only for single enum in header G4xrays) diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmBuilder.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmBuilder.cc index 0d6364bf7b..5bd5efe8c1 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmBuilder.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmBuilder.cc @@ -33,6 +33,7 @@ #include "G4SystemOfUnits.hh" #include "G4ParticleDefinition.hh" +#include "G4PhysListUtil.hh" #include "G4EmParameters.hh" #include "G4VEnergyLossProcess.hh" @@ -72,15 +73,22 @@ #include "G4ChargedGeantino.hh" #include "G4Geantino.hh" +#include "G4NeutrinoMu.hh" +#include "G4AntiNeutrinoMu.hh" +#include "G4NeutrinoE.hh" +#include "G4AntiNeutrinoE.hh" #include "G4MuonPlus.hh" #include "G4MuonMinus.hh" #include "G4PionPlus.hh" #include "G4PionMinus.hh" +#include "G4PionZero.hh" #include "G4KaonPlus.hh" #include "G4KaonMinus.hh" #include "G4Proton.hh" #include "G4AntiProton.hh" +#include "G4Lambda.hh" +#include "G4AntiLambda.hh" #include "G4Deuteron.hh" #include "G4Triton.hh" @@ -351,9 +359,15 @@ void G4EmBuilder::ConstructChargedSS(G4hMultipleScattering* hmsc) void G4EmBuilder::ConstructMinimalEmSet() { + // instantiate singletones for physics + G4PhysListUtil::InitialiseParameters(); // pseudo-particles G4Geantino::GeantinoDefinition(); G4ChargedGeantino::ChargedGeantinoDefinition(); + G4NeutrinoMu::NeutrinoMu(); + G4AntiNeutrinoMu::AntiNeutrinoMu(); + G4NeutrinoE::NeutrinoE(); + G4AntiNeutrinoE::AntiNeutrinoE(); // gamma G4Gamma::Gamma(); // leptons @@ -364,24 +378,29 @@ void G4EmBuilder::ConstructMinimalEmSet() // mesons G4PionPlus::PionPlus(); G4PionMinus::PionMinus(); + G4PionZero::PionZero(); G4KaonPlus::KaonPlus(); G4KaonMinus::KaonMinus(); // barions G4Proton::Proton(); G4AntiProton::AntiProton(); + G4Neutron::Neutron(); + G4AntiNeutron::AntiNeutron(); + G4Lambda::Lambda(); + G4AntiLambda::AntiLambda(); // ions G4Deuteron::Deuteron(); G4Triton::Triton(); G4He3::He3(); G4Alpha::Alpha(); - G4GenericIon::GenericIonDefinition(); + G4GenericIon::GenericIon(); } void G4EmBuilder::PrepareEMPhysics() { G4LossTableManager* man = G4LossTableManager::Instance(); G4VAtomDeexcitation* ad = man->AtomDeexcitation(); - if(!ad) { + if(nullptr == ad) { ad = new G4UAtomicDeexcitation(); man->SetAtomDeexcitation(ad); } diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNABuilder.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNABuilder.cc index 6029abf4b7..e368253075 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNABuilder.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNABuilder.cc @@ -63,6 +63,7 @@ #include "G4hIonisation.hh" #include "G4ionIonisation.hh" #include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" // standard models #include "G4LivermorePhotoElectricModel.hh" @@ -77,6 +78,7 @@ #include "G4BraggModel.hh" #include "G4BraggIonModel.hh" #include "G4BetheBlochModel.hh" +#include "G4DummyModel.hh" // DNA models #include "G4DNAOneStepThermalizationModel.hh" @@ -97,25 +99,19 @@ #include "G4DNARuddIonisationExtendedModel.hh" #include "G4DNADingfelderChargeDecreaseModel.hh" #include "G4DNADingfelderChargeIncreaseModel.hh" -#include "G4DummyModel.hh" +#include "G4DNARPWBAExcitationModel.hh" +#include "G4DNARPWBAIonisationModel.hh" + +static const G4double lowEnergyRPWBA = 100*CLHEP::MeV; +static const G4double lowEnergyMSC = 1*CLHEP::MeV; +static const G4double lowEnergyProtonIoni = 2*CLHEP::MeV; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void G4EmDNABuilder::ConstructDNAParticles() { - // bosons - G4Gamma::Gamma(); - - // leptons - G4Electron::Electron(); - G4Positron::Positron(); - - // baryons - G4Proton::Proton(); - - // generic ions - G4GenericIon::GenericIon(); - G4Alpha::Alpha(); + // standard particles + G4EmBuilder::ConstructMinimalEmSet(); // DNA ions G4DNAGenericIonsManager* genericIonsManager @@ -144,12 +140,12 @@ G4EmDNABuilder::ConstructStandardEmPhysics(const G4double emin_elec, G4ParticleDefinition* gamma = G4Gamma::Gamma(); // photoelectric effect - Livermore model - G4PhotoElectricEffect* thePEEffect = new G4PhotoElectricEffect(); + auto thePEEffect = new G4PhotoElectricEffect(); thePEEffect->SetEmModel(new G4LivermorePhotoElectricModel()); ph->RegisterProcess(thePEEffect, gamma); // Compton scattering - Klein-Nishina - G4ComptonScattering* theComptonScattering = new G4ComptonScattering(); + auto theComptonScattering = new G4ComptonScattering(); theComptonScattering->SetEmModel(new G4KleinNishinaModel()); auto cModel = new G4LowEPComptonModel(); cModel->SetHighEnergyLimit(20*CLHEP::MeV); @@ -157,17 +153,17 @@ G4EmDNABuilder::ConstructStandardEmPhysics(const G4double emin_elec, ph->RegisterProcess(theComptonScattering, gamma); // gamma conversion - 5D model - G4GammaConversion* theGammaConversion = new G4GammaConversion(); + auto theGammaConversion = new G4GammaConversion(); ph->RegisterProcess(theGammaConversion, gamma); // Rayleigh scattering - Livermore model - G4RayleighScattering* theRayleigh = new G4RayleighScattering(); + auto theRayleigh = new G4RayleighScattering(); ph->RegisterProcess(theRayleigh, gamma); // electron - if(emin_elec < 0.5*MeV) { + if(emin_elec < emax) { G4ParticleDefinition* elec = G4Electron::Electron(); - G4eMultipleScattering* msc_el = new G4eMultipleScattering(); + auto msc_el = new G4eMultipleScattering(); G4VMscModel* msc_model_el; if(mscType == dnaWVI) { msc_model_el = new G4LowEWentzelVIModel(); @@ -176,20 +172,18 @@ G4EmDNABuilder::ConstructStandardEmPhysics(const G4double emin_elec, } else { msc_model_el = new G4UrbanMscModel(); } - msc_model_el->SetActivationLowEnergyLimit(emin_elec); - msc_model_el->SetHighEnergyLimit(emax); + msc_model_el->SetActivationLowEnergyLimit(lowEnergyMSC); msc_el->SetEmModel(msc_model_el); ph->RegisterProcess(msc_el, elec); - G4eIonisation* ioni = new G4eIonisation(); - G4VEmModel* mb_el = new G4MollerBhabhaModel(); + auto ioni = new G4eIonisation(); + auto mb_el = new G4MollerBhabhaModel(); mb_el->SetActivationLowEnergyLimit(emin_elec); - mb_el->SetHighEnergyLimit(emax); ioni->SetEmModel(mb_el); ph->RegisterProcess(ioni, elec); - G4eBremsstrahlung* brem = new G4eBremsstrahlung(); - G4VEmModel* sb_el = new G4SeltzerBergerModel(); + auto brem = new G4eBremsstrahlung(); + auto sb_el = new G4SeltzerBergerModel(); sb_el->SetActivationLowEnergyLimit(emin_elec); sb_el->SetHighEnergyLimit(emax); sb_el->SetAngularDistribution(new G4Generator2BS()); @@ -199,7 +193,7 @@ G4EmDNABuilder::ConstructStandardEmPhysics(const G4double emin_elec, // positron G4ParticleDefinition* posi = G4Positron::Positron(); - G4eMultipleScattering* msc_pos = new G4eMultipleScattering(); + auto msc_pos = new G4eMultipleScattering(); G4VMscModel* msc_model_pos; if(mscType == dnaWVI) { msc_model_pos = new G4LowEWentzelVIModel(); @@ -211,99 +205,95 @@ G4EmDNABuilder::ConstructStandardEmPhysics(const G4double emin_elec, msc_pos->SetEmModel(msc_model_pos); ph->RegisterProcess(msc_pos, posi); ph->RegisterProcess(new G4eIonisation(), posi); - ph->RegisterProcess(new G4eBremsstrahlung(), posi); + + auto brem = new G4eBremsstrahlung(); + auto sb = new G4SeltzerBergerModel(); + sb->SetHighEnergyLimit(emax); + sb->SetAngularDistribution(new G4Generator2BS()); + brem->SetEmModel(sb); + ph->RegisterProcess(brem, posi); + ph->RegisterProcess(new G4eplusAnnihilation(), posi); // proton - G4ParticleDefinition* part = G4Proton::Proton(); - if(emin_proton < 0.5*CLHEP::MeV) { - G4hMultipleScattering* msc_p = new G4hMultipleScattering(); - G4VMscModel* msc_model_p; - if(mscType == dnaWVI) { - msc_model_p = new G4LowEWentzelVIModel(); - } else { - msc_model_p = new G4UrbanMscModel(); - } - msc_model_p->SetActivationLowEnergyLimit(emin_proton); - msc_p->SetEmModel(msc_model_p); - ph->RegisterProcess(msc_p, part); - - G4hIonisation* ioni = new G4hIonisation(); - G4VEmModel* br = new G4BraggModel(); - br->SetActivationLowEnergyLimit(emin_proton); - ioni->SetEmModel(br); - - G4VEmModel* be = new G4BetheBlochModel(); - be->SetActivationLowEnergyLimit(emin_proton); - be->SetHighEnergyLimit(emax); - ioni->SetEmModel(be); - ph->RegisterProcess(ioni, part); + if(emin_proton < emax) { + G4ParticleDefinition* part = G4Proton::Proton(); + StandardHadronPhysics(part, lowEnergyMSC, emin_proton, emax, + mscType, false); } // GenericIon - if(emin_ion < 0.5*MeV) { + if(emin_ion < emax) { G4ParticleDefinition* ion = G4GenericIon::GenericIon(); - G4hMultipleScattering* msc_ion = new G4hMultipleScattering(); - auto imsc = new G4UrbanMscModel(); - msc_ion->SetEmModel(imsc); - ph->RegisterProcess(msc_ion, ion); - - G4ionIonisation* ioni = new G4ionIonisation(); - G4VEmModel* br = new G4BraggIonModel(); - br->SetActivationLowEnergyLimit(emin_ion); - ioni->SetEmModel(br); - - G4VEmModel* be = new G4BetheBlochModel(); - be->SetActivationLowEnergyLimit(emin_ion); - be->SetHighEnergyLimit(emax); - ioni->SetEmModel(be); - ph->RegisterProcess(ioni, ion); + StandardHadronPhysics(ion, lowEnergyMSC, emin_ion, emax, + dnaUrban, true); } // alpha - part = G4Alpha::Alpha(); if(emin_alpha < emax) { - G4hMultipleScattering* msc_a = new G4hMultipleScattering(); - G4VMscModel* msc_model_a = new G4UrbanMscModel(); - msc_model_a->SetActivationLowEnergyLimit(emin_alpha); - msc_a->SetEmModel(msc_model_a); - ph->RegisterProcess(msc_a, part); - - G4ionIonisation* ioni = new G4ionIonisation(); - G4VEmModel* br = new G4BraggIonModel(); - br->SetActivationLowEnergyLimit(emin_alpha); - ioni->SetEmModel(br); - - G4VEmModel* be = new G4BetheBlochModel(); - be->SetActivationLowEnergyLimit(emin_alpha); - be->SetHighEnergyLimit(emax); - ioni->SetEmModel(be); - - ph->RegisterProcess(ioni, part); + G4ParticleDefinition* part = G4Alpha::Alpha(); + StandardHadronPhysics(part, lowEnergyMSC, emin_alpha, emax, + dnaUrban, true); + + // alpha+ + G4DNAGenericIonsManager* genericIonsManager + = G4DNAGenericIonsManager::Instance(); + part = genericIonsManager->GetIon("alpha+"); + StandardHadronPhysics(part, lowEnergyMSC, emin_alpha, emax, + dnaUrban, false); } + // list of main standard particles + const std::vector chargedParticles = { + 13, -13, 211, -211, 321, -321, -2212, + 1000010020, 1000010030, 1000020030 + }; + auto msc = new G4hMultipleScattering(); + msc->SetEmModel(new G4WentzelVIModel()); + G4EmBuilder::ConstructBasicEmPhysics(msc, chargedParticles); +} - // alpha+ - G4DNAGenericIonsManager* genericIonsManager - = G4DNAGenericIonsManager::Instance(); - part = genericIonsManager->GetIon("alpha+"); - if(emin_alpha < emax) { - G4hMultipleScattering* msc_a = new G4hMultipleScattering(); - G4VMscModel* msc_model_a = new G4UrbanMscModel(); - msc_model_a->SetActivationLowEnergyLimit(emin_alpha); - msc_a->SetEmModel(msc_model_a); - ph->RegisterProcess(msc_a, part); +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4hIonisation* ioni = new G4hIonisation(); - G4VEmModel* br = new G4BraggModel(); - br->SetActivationLowEnergyLimit(emin_alpha); - ioni->SetEmModel(br); - - G4VEmModel* be = new G4BetheBlochModel(); - be->SetActivationLowEnergyLimit(emin_alpha); - be->SetHighEnergyLimit(emax); - ioni->SetEmModel(be); - - ph->RegisterProcess(ioni, part); +void G4EmDNABuilder::StandardHadronPhysics(G4ParticleDefinition* part, + const G4double lowELimitForMSC, + const G4double lowELimitForIoni, + const G4double maxEnergy, + const G4EmDNAMscModelType mscType, + const G4bool isIon) +{ + G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); + G4hMultipleScattering* msc = new G4hMultipleScattering(); + G4VMscModel* msc_model = nullptr; + if(mscType == dnaWVI) { + msc_model = new G4LowEWentzelVIModel(); + } else { + msc_model = new G4UrbanMscModel(); } + msc_model->SetActivationLowEnergyLimit(lowELimitForMSC); + msc_model->SetLowEnergyLimit(lowELimitForMSC); + msc_model->SetHighEnergyLimit(maxEnergy); + msc->SetEmModel(msc_model); + ph->RegisterProcess(msc, part); + + G4VEnergyLossProcess* ioni = nullptr; + G4VEmModel* mod1 = nullptr; + if(isIon) { + ioni = new G4ionIonisation(); + mod1 = new G4BraggIonModel(); + } else { + ioni = new G4hIonisation(); + mod1 = new G4BraggModel(); + } + G4double eth = lowEnergyProtonIoni*part->GetPDGMass()/CLHEP::proton_mass_c2; + mod1->SetActivationLowEnergyLimit(lowELimitForIoni); + mod1->SetHighEnergyLimit(eth); + ioni->SetEmModel(mod1); + + G4VEmModel* mod2 = new G4BetheBlochModel(); + mod2->SetActivationLowEnergyLimit(lowELimitForIoni); + mod2->SetLowEnergyLimit(eth); + ioni->SetEmModel(mod2); + + ph->RegisterProcess(ioni, part); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -350,13 +340,13 @@ G4EmDNABuilder::ConstructDNAElectronPhysics(const G4double emaxDNA, } else { elast = new G4DNAChampionElasticModel(); } - elast->SetHighEnergyLimit(emaxDNA); + elast->SetHighEnergyLimit(lowEnergyMSC); pElasticProcess->AddEmModel(-2, elast, reg); if(nullptr != elast2) { elast->SetHighEnergyLimit(emaxCPA100); elast2->SetLowEnergyLimit(emaxCPA100); - elast2->SetHighEnergyLimit(emaxDNA); + elast2->SetHighEnergyLimit(lowEnergyMSC); pElasticProcess->AddEmModel(-3, elast2, reg); } @@ -446,7 +436,7 @@ G4EmDNABuilder::ConstructDNAElectronPhysics(const G4double emaxDNA, void G4EmDNABuilder::ConstructDNAProtonPhysics(const G4double e1DNA, - const G4double emaxDNA, + const G4double emaxIonDNA, const G4int opt, const G4bool fast, const G4bool stationary, @@ -459,22 +449,32 @@ G4EmDNABuilder::ConstructDNAProtonPhysics(const G4double e1DNA, // *** Elastic scattering *** auto pElasticProcess = FindOrBuildElastic(part, "proton_G4DNAElastic"); auto modE = new G4DNAIonElasticModel(); - modE->SetHighEnergyLimit(emaxDNA); + modE->SetHighEnergyLimit(lowEnergyMSC); modE->SelectStationary(stationary); pElasticProcess->AddEmModel(-1, modE, reg); // *** Excitation *** + G4double e2DNA = std::min(e1DNA, lowEnergyRPWBA); auto theDNAExc = FindOrBuildExcitation(part, "proton_G4DNAExcitation"); auto modMGE = new G4DNAMillerGreenExcitationModel(); - modMGE->SetHighEnergyLimit(e1DNA); + modMGE->SetHighEnergyLimit(e2DNA); modMGE->SelectStationary(stationary); theDNAExc->AddEmModel(-1, modMGE, reg); - auto modB = new G4DNABornExcitationModel(); - modB->SelectStationary(stationary); - modB->SetLowEnergyLimit(e1DNA); - modB->SetHighEnergyLimit(emax); - theDNAExc->AddEmModel(-2, modB, reg); + if(e2DNA < lowEnergyRPWBA) { + auto modB = new G4DNABornExcitationModel(); + modB->SelectStationary(stationary); + modB->SetLowEnergyLimit(e2DNA); + modB->SetHighEnergyLimit(lowEnergyRPWBA); + theDNAExc->AddEmModel(-2, modB, reg); + } + if(lowEnergyRPWBA < emaxIonDNA) { + auto modC = new G4DNARPWBAExcitationModel(); + modC->SelectStationary(stationary); + modC->SetLowEnergyLimit(lowEnergyRPWBA); + modC->SetHighEnergyLimit(emaxIonDNA); + theDNAExc->AddEmModel(-3, modC, reg); + } // *** Ionisation *** auto theDNAIoni = FindOrBuildIonisation(part, "proton_G4DNAIonisation"); @@ -491,13 +491,22 @@ G4EmDNABuilder::ConstructDNAProtonPhysics(const G4double e1DNA, modRI->SetHighEnergyLimit(e1DNA); theDNAIoni->AddEmModel(-1, modRI, reg); - auto modI = new G4DNABornIonisationModel1(); - theDNAIoni->SetEmModel(modI); - modI->SelectFasterComputation(fast); - modI->SelectStationary(stationary); - modI->SetLowEnergyLimit(e1DNA); - modI->SetHighEnergyLimit(emaxDNA); - theDNAIoni->AddEmModel(-2, modI, reg); + if(e2DNA < lowEnergyRPWBA) { + auto modI = new G4DNABornIonisationModel1(); + modI->SelectFasterComputation(fast); + modI->SelectStationary(stationary); + modI->SetLowEnergyLimit(e2DNA); + modI->SetHighEnergyLimit(lowEnergyRPWBA); + theDNAIoni->AddEmModel(-2, modI, reg); + } + if(lowEnergyRPWBA < emaxIonDNA) { + auto modJ = new G4DNARPWBAIonisationModel(); + modJ->SelectFasterComputation(fast); + modJ->SelectStationary(stationary); + modJ->SetLowEnergyLimit(lowEnergyRPWBA); + modJ->SetHighEnergyLimit(emaxIonDNA); + theDNAIoni->AddEmModel(-3, modJ, reg); + } // *** Charge decrease *** auto theDNAChargeDecreaseProcess = @@ -514,7 +523,7 @@ G4EmDNABuilder::ConstructDNAProtonPhysics(const G4double e1DNA, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void -G4EmDNABuilder::ConstructDNAIonPhysics(const G4double emaxDNA, +G4EmDNABuilder::ConstructDNAIonPhysics(const G4double emaxIonDNA, const G4bool stationary, const G4Region* reg) { @@ -524,7 +533,7 @@ G4EmDNABuilder::ConstructDNAIonPhysics(const G4double emaxDNA, auto theDNAIoni = FindOrBuildIonisation(part, "GenericIon_G4DNAIonisation"); auto mod = new G4DNARuddIonisationExtendedModel(); mod->SelectStationary(stationary); - mod->SetHighEnergyLimit(emaxDNA); + mod->SetHighEnergyLimit(emaxIonDNA); theDNAIoni->AddEmModel(-1, mod, reg); FindOrBuildCapture(25.0*CLHEP::keV, part); @@ -536,7 +545,7 @@ void G4EmDNABuilder::ConstructDNALightIonPhysics(G4ParticleDefinition* part, const G4int charge, const G4int opt, - const G4double emaxDNA, + const G4double emaxIonDNA, const G4bool, const G4bool stationary, const G4Region* reg) @@ -549,7 +558,7 @@ G4EmDNABuilder::ConstructDNALightIonPhysics(G4ParticleDefinition* part, auto theDNAElastic = FindOrBuildElastic(part, name + "_G4DNAElastic"); auto modEI = new G4DNAIonElasticModel(); modEI->SelectStationary(stationary); - modEI->SetHighEnergyLimit(emaxDNA); + modEI->SetHighEnergyLimit(lowEnergyMSC); theDNAElastic->AddEmModel(-1, modEI, reg); // *** Excitation *** @@ -557,7 +566,7 @@ G4EmDNABuilder::ConstructDNALightIonPhysics(G4ParticleDefinition* part, auto modMGE = new G4DNAMillerGreenExcitationModel(); modMGE->SelectStationary(stationary); modMGE->SetLowEnergyLimit(0.0); - modMGE->SetHighEnergyLimit(emax); + modMGE->SetHighEnergyLimit(emaxIonDNA); theDNAExc->AddEmModel(-1, modMGE, reg); // *** Ionisation *** @@ -572,7 +581,7 @@ G4EmDNABuilder::ConstructDNALightIonPhysics(G4ParticleDefinition* part, mod->SelectStationary(stationary); modRI = mod; } - modRI->SetHighEnergyLimit(emaxDNA); + modRI->SetHighEnergyLimit(emaxIonDNA); theDNAIoni->AddEmModel(-1, modRI, reg); // *** Charge increase *** diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry.cc index b007a189ef..20d98514a1 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry.cc @@ -41,6 +41,7 @@ #include "G4DNAAttachment.hh" #include "G4DNAVibExcitation.hh" +#include "G4DNASancheExcitationModel.hh" #include "G4DNAElastic.hh" #include "G4DNAChampionElasticModel.hh" diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry_option1.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry_option1.cc index 28dd5ad293..54bd8180e2 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry_option1.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry_option1.cc @@ -41,6 +41,7 @@ #include "G4DNAAttachment.hh" #include "G4DNAVibExcitation.hh" +#include "G4DNASancheExcitationModel.hh" #include "G4DNAElastic.hh" #include "G4DNAChampionElasticModel.hh" diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry_option2.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry_option2.cc index dc715732e2..91b804339f 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry_option2.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry_option2.cc @@ -36,6 +36,7 @@ #include "G4ProcessManager.hh" #include "G4DNAElectronSolvation.hh" #include "G4DNAVibExcitation.hh" +#include "G4DNASancheExcitationModel.hh" #include "G4DNAMolecularDissociation.hh" #include "G4DNABrownianTransportation.hh" #include "G4DNAMolecularReactionTable.hh" diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry_option3.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry_option3.cc index e666dc5157..6355102cd8 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry_option3.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAChemistry_option3.cc @@ -50,6 +50,7 @@ #include "G4DNAAttachment.hh" #include "G4DNAVibExcitation.hh" +#include "G4DNASancheExcitationModel.hh" #include "G4DNAElastic.hh" #include "G4DNAChampionElasticModel.hh" diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics.cc index 90ab7acfdb..343372485b 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics.cc @@ -39,6 +39,7 @@ #include "G4PhysicsListHelper.hh" #include "G4BuilderType.hh" #include "G4EmBuilder.hh" +#include "G4PhysListUtil.hh" // factory #include "G4PhysicsConstructorFactory.hh" @@ -50,12 +51,15 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmDNAPhysics); G4EmDNAPhysics::G4EmDNAPhysics(G4int ver, const G4String& name) : G4VPhysicsConstructor(name) { + // instantiate singletones for physics + G4PhysListUtil::InitialiseParameters(); + // parameters for DNA and for option3 EM physics SetVerboseLevel(ver); G4EmParameters* param = G4EmParameters::Instance(); param->SetDefaults(); param->SetMinEnergy(10*CLHEP::eV); - param->SetMaxEnergy(100*CLHEP::MeV); + param->SetMaxEnergy(300*CLHEP::MeV); param->SetLowestElectronEnergy(0*CLHEP::eV); param->SetNumberOfBinsPerDecade(20); param->ActivateAngularGeneratorForIonisation(true); @@ -92,7 +96,7 @@ void G4EmDNAPhysics::ConstructProcess() // parameters G4EmParameters* param = G4EmParameters::Instance(); const G4double emaxDNA = 1.*CLHEP::MeV; - const G4double emaxIonDNA = 100.*CLHEP::MeV; + const G4double emaxIonDNA = 300.*CLHEP::MeV; const G4double eminBorn = 500.*CLHEP::keV; const G4bool fast = param->DNAFast(); const G4bool st = param->DNAStationary(); @@ -106,26 +110,26 @@ void G4EmDNAPhysics::ConstructProcess() = G4DNAGenericIonsManager::Instance(); // standard physics - G4EmDNABuilder::ConstructStandardEmPhysics(emaxDNA, emaxDNA, + G4EmDNABuilder::ConstructStandardEmPhysics(emaxDNA, emaxIonDNA, emaxIonDNA, emaxIonDNA, dnaGS, fast); // DNA physics G4EmDNABuilder::ConstructDNAElectronPhysics(emaxDNA, 0, fast, st); - G4EmDNABuilder::ConstructDNAProtonPhysics(eminBorn, emaxDNA, 0, fast, st); + G4EmDNABuilder::ConstructDNAProtonPhysics(eminBorn, emaxIonDNA, 0, fast, st); G4EmDNABuilder::ConstructDNAIonPhysics(emaxIonDNA, st); G4ParticleDefinition* part = genericIonsManager->GetIon("hydrogen"); - G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 0, emaxDNA, fast, st); + G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 0, emaxIonDNA, fast, st); part = G4Alpha::Alpha(); - G4EmDNABuilder::ConstructDNALightIonPhysics(part, 2, 0, emaxDNA, fast, st); + G4EmDNABuilder::ConstructDNALightIonPhysics(part, 2, 0, emaxIonDNA, fast, st); part = genericIonsManager->GetIon("alpha+"); - G4EmDNABuilder::ConstructDNALightIonPhysics(part, 1, 0, emaxDNA, fast, st); + G4EmDNABuilder::ConstructDNALightIonPhysics(part, 1, 0, emaxIonDNA, fast, st); part = genericIonsManager->GetIon("helium"); - G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 0, emaxDNA, fast, st); + G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 0, emaxIonDNA, fast, st); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysicsActivator.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysicsActivator.cc index 34fb8d48cf..f684d9bd02 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysicsActivator.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysicsActivator.cc @@ -105,7 +105,7 @@ void G4EmDNAPhysicsActivator::ConstructParticle() void G4EmDNAPhysicsActivator::ConstructProcess() { const std::vector& regnamesDNA = theParameters->RegionsDNA(); - G4int nreg = regnamesDNA.size(); + std::size_t nreg = regnamesDNA.size(); if(0 == nreg) { return; @@ -116,7 +116,7 @@ void G4EmDNAPhysicsActivator::ConstructProcess() G4bool st = theParameters->DNAStationary(); const G4double emaxDNA = 1.*CLHEP::MeV; - const G4double emaxIonDNA = 100.*CLHEP::MeV; + const G4double emaxIonDNA = 300.*CLHEP::MeV; const G4double eminBorn = 500.*CLHEP::keV; const G4double emax = theParameters->MaxKinEnergy(); @@ -137,7 +137,7 @@ void G4EmDNAPhysicsActivator::ConstructProcess() G4ParticleDefinition* h0 = genericIonsManager->GetIon("hydrogen"); // loop over regions - for(G4int i = 0; i < nreg; ++i) + for(std::size_t i = 0; i < nreg; ++i) { if(IsVerbose()) { @@ -167,7 +167,7 @@ void G4EmDNAPhysicsActivator::ConstructProcess() DeactivateElectronProcesses(emaxDNA, emax, reg); G4EmDNABuilder::ConstructDNAElectronPhysics(emaxDNA, opt, fast, st, reg); DeactivateHadronProcesses(prot, emaxDNA, emax, reg); - G4EmDNABuilder::ConstructDNAProtonPhysics(eminBorn, emaxDNA, opt, fast, st, reg); + G4EmDNABuilder::ConstructDNAProtonPhysics(eminBorn, emaxIonDNA, opt, fast, st, reg); DeactivateIonProcesses(gion, emaxIonDNA, emax, reg); G4EmDNABuilder::ConstructDNAIonPhysics(emax, st, reg); DeactivateIonProcesses(alpha2, emaxIonDNA, emax, reg); diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option2.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option2.cc index 76f32cd107..e8b575b337 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option2.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option2.cc @@ -61,7 +61,7 @@ void G4EmDNAPhysics_option2::ConstructProcess() // parameters G4EmParameters* param = G4EmParameters::Instance(); const G4double emaxDNA = 1.*CLHEP::MeV; - const G4double emaxIonDNA = 100.*CLHEP::MeV; + const G4double emaxIonDNA = 300.*CLHEP::MeV; const G4double eminBorn = 500.*CLHEP::keV; const G4bool fast = param->DNAFast(); const G4bool st = param->DNAStationary(); @@ -75,7 +75,7 @@ void G4EmDNAPhysics_option2::ConstructProcess() = G4DNAGenericIonsManager::Instance(); // standard physics - G4EmDNABuilder::ConstructStandardEmPhysics(emaxDNA, emaxDNA, + G4EmDNABuilder::ConstructStandardEmPhysics(emaxDNA, emaxIonDNA, emaxIonDNA, emaxIonDNA, dnaGS, fast); diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option4.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option4.cc index 67f5231270..7e8a9be593 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option4.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option4.cc @@ -58,7 +58,7 @@ void G4EmDNAPhysics_option4::ConstructProcess() // parameters G4EmParameters* param = G4EmParameters::Instance(); const G4double emaxDNA = 1.*CLHEP::MeV; - const G4double emaxIonDNA = 100.*CLHEP::MeV; + const G4double emaxIonDNA = 300.*CLHEP::MeV; const G4double eminBorn = 500.*CLHEP::keV; const G4bool fast = param->DNAFast(); const G4bool st = param->DNAStationary(); @@ -72,7 +72,7 @@ void G4EmDNAPhysics_option4::ConstructProcess() = G4DNAGenericIonsManager::Instance(); // standard physics - G4EmDNABuilder::ConstructStandardEmPhysics(emaxDNA, emaxDNA, + G4EmDNABuilder::ConstructStandardEmPhysics(emaxDNA, emaxIonDNA, emaxIonDNA, emaxIonDNA, dnaGS, fast); diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option6.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option6.cc index 830530fd31..18592ce6fd 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option6.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option6.cc @@ -71,7 +71,7 @@ void G4EmDNAPhysics_option6::ConstructProcess() // parameters G4EmParameters* param = G4EmParameters::Instance(); const G4double emaxDNA = 1.*CLHEP::MeV; - const G4double emaxIonDNA = 100.*CLHEP::MeV; + const G4double emaxIonDNA = 300.*CLHEP::MeV; const G4double eminBorn = 500.*CLHEP::keV; const G4bool fast = param->DNAFast(); const G4bool st = param->DNAStationary(); @@ -85,7 +85,7 @@ void G4EmDNAPhysics_option6::ConstructProcess() = G4DNAGenericIonsManager::Instance(); // standard physics - G4EmDNABuilder::ConstructStandardEmPhysics(emaxDNA, emaxDNA, + G4EmDNABuilder::ConstructStandardEmPhysics(emaxDNA, emaxIonDNA, emaxIonDNA, emaxIonDNA, dnaUrban, fast); diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option8.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option8.cc index 90dfc9de54..3740160704 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option8.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmDNAPhysics_option8.cc @@ -61,7 +61,7 @@ void G4EmDNAPhysics_option8::ConstructProcess() // parameters G4EmParameters* param = G4EmParameters::Instance(); const G4double emaxDNA = 1.*CLHEP::MeV; - const G4double emaxIonDNA = 100.*CLHEP::MeV; + const G4double emaxIonDNA = 300.*CLHEP::MeV; const G4double eminBorn = 500.*CLHEP::keV; const G4bool fast = param->DNAFast(); const G4bool st = param->DNAStationary(); @@ -75,7 +75,7 @@ void G4EmDNAPhysics_option8::ConstructProcess() = G4DNAGenericIonsManager::Instance(); // standard physics - G4EmDNABuilder::ConstructStandardEmPhysics(emaxDNA, emaxDNA, + G4EmDNABuilder::ConstructStandardEmPhysics(emaxDNA, emaxIonDNA, emaxIonDNA, emaxIonDNA, dnaUrban, fast); diff --git a/source/physics_lists/constructors/electromagnetic/src/G4EmModelActivator.cc b/source/physics_lists/constructors/electromagnetic/src/G4EmModelActivator.cc index 30f1f23c3f..fb9fea4744 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4EmModelActivator.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4EmModelActivator.cc @@ -147,7 +147,7 @@ G4EmModelActivator::G4EmModelActivator(const G4String& emphys) void G4EmModelActivator::ActivateEmOptions() { const std::vector& regnamesPhys = theParameters->RegionsPhysics(); - G4int nreg = regnamesPhys.size(); + std::size_t nreg = regnamesPhys.size(); if(0 == nreg) { return; } G4int verbose = theParameters->Verbose() - 1; if(verbose > 0) { @@ -176,7 +176,7 @@ void G4EmModelActivator::ActivateEmOptions() // general high energy limit G4double highEnergy = theParameters->MaxKinEnergy(); - for(G4int i=0; i 0) { G4cout << i << ". region <" << reg << ">; type <" << typesPhys[i] << "> " @@ -397,7 +397,7 @@ void G4EmModelActivator::ActivateEmOptions() void G4EmModelActivator::ActivatePAI() { const std::vector regnamesPAI = theParameters->RegionsPAI(); - G4int nreg = regnamesPAI.size(); + std::size_t nreg = regnamesPAI.size(); if(0 == nreg) { return; } G4int verbose = theParameters->Verbose() - 1; if(verbose > 0) { @@ -418,7 +418,7 @@ void G4EmModelActivator::ActivatePAI() const G4ParticleDefinition* mumi = G4MuonMinus::MuonMinus(); const G4ParticleDefinition* gion = G4GenericIon::GenericIon(); - for(G4int i = 0; i < nreg; ++i) { + for(std::size_t i = 0; i < nreg; ++i) { const G4ParticleDefinition* p = nullptr; if(particlesPAI[i] != "all") { p = G4ParticleTable::GetParticleTable()->FindParticle(particlesPAI[i]); @@ -511,7 +511,7 @@ void G4EmModelActivator::ActivatePAI() void G4EmModelActivator::ActivateMicroElec() { const std::vector regnamesME = theParameters->RegionsMicroElec(); - G4int nreg = regnamesME.size(); + std::size_t nreg = regnamesME.size(); if(0 == nreg) { return; @@ -564,7 +564,7 @@ void G4EmModelActivator::ActivateMicroElec() G4LowECapture* ecap = new G4LowECapture(elowest); eman->AddDiscreteProcess(ecap); - for(G4int i = 0; i < nreg; ++i) + for(std::size_t i = 0; i < nreg; ++i) { G4String reg = regnamesME[i]; diff --git a/source/physics_lists/constructors/electromagnetic/src/G4GammaGeneralProcess.cc b/source/physics_lists/constructors/electromagnetic/src/G4GammaGeneralProcess.cc index 3a4256a956..5bfdb92489 100644 --- a/source/physics_lists/constructors/electromagnetic/src/G4GammaGeneralProcess.cc +++ b/source/physics_lists/constructors/electromagnetic/src/G4GammaGeneralProcess.cc @@ -208,29 +208,29 @@ void G4GammaGeneralProcess::InitialiseProcess(const G4ParticleDefinition*) const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + std::size_t numOfCouples = theCoupleTable->GetTableSize(); G4double mine = param->MinKinEnergy(); G4double maxe = param->MaxKinEnergy(); G4int nd = param->NumberOfBinsPerDecade(); - size_t nbin1 = std::max(5, nd*G4lrint(std::log10(minPEEnergy/mine))); - size_t nbin2 = std::max(5, nd*G4lrint(std::log10(maxe/minMMEnergy))); + std::size_t nbin1 = std::max(5, nd*G4lrint(std::log10(minPEEnergy/mine))); + std::size_t nbin2 = std::max(5, nd*G4lrint(std::log10(maxe/minMMEnergy))); G4PhysicsVector* vec = nullptr; - G4PhysicsLogVector aVector(mine,minPEEnergy,nbin1,splineFlag); - G4PhysicsLogVector bVector(minPEEnergy,minEEEnergy,nLowE,splineFlag); - G4PhysicsLogVector cVector(minEEEnergy,minMMEnergy,nHighE,splineFlag); - G4PhysicsLogVector dVector(minMMEnergy,maxe,nbin2,splineFlag); + G4PhysicsLogVector aVector(mine,minPEEnergy,nbin1,true); + G4PhysicsLogVector bVector(minPEEnergy,minEEEnergy,nLowE,false); + G4PhysicsLogVector cVector(minEEEnergy,minMMEnergy,nHighE,false); + G4PhysicsLogVector dVector(minMMEnergy,maxe,nbin2,true); - for(size_t i=0; iMakeTable(i); //G4cout << " make table " << table << G4endl; - for(size_t j=0; jGetFlag(j) && nullptr == vec) { - //G4cout <<" i= "<GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); G4LossTableBuilder* bld = G4LossTableManager::Instance()->GetTableBuilder(); const std::vector& tables = theHandler->GetTables(); @@ -298,22 +298,21 @@ void G4GammaGeneralProcess::BuildPhysicsTable(const G4ParticleDefinition& part) G4double sigComp(0.), sigPE(0.), sigConv(0.), sigR(0.), sigN(0.), sigM(0.), val(0.); - for(size_t i=0; iGetFlag(i)) { - G4int idx = (!baseMat) ? i : DensityIndex(i); const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(i); const G4Material* material = couple->GetMaterial(); // energy interval 0 - size_t nn = (*(tables[0]))[idx]->GetVectorLength(); + std::size_t nn = (*(tables[0]))[idx]->GetVectorLength(); if(1 < verboseLevel) { G4cout << "======= Zone 0 ======= N= " << nn << " for " << material->GetName() << G4endl; } - for(size_t j=0; jEnergy(j); G4double loge = G4Log(e); sigComp = theCompton->GetLambda(e, couple, loge); @@ -336,7 +335,7 @@ void G4GammaGeneralProcess::BuildPhysicsTable(const G4ParticleDefinition& part) if(1 < verboseLevel) { G4cout << "======= Zone 1 ======= N= " << nn << G4endl; } - for(size_t j=0; jEnergy(j); G4double loge = G4Log(e); sigComp = theCompton->GetLambda(e, couple, loge); @@ -364,7 +363,7 @@ void G4GammaGeneralProcess::BuildPhysicsTable(const G4ParticleDefinition& part) if(1 < verboseLevel) { G4cout << "======= Zone 2 ======= N= " << nn << G4endl; } - for(size_t j=0; jEnergy(j); G4double loge = G4Log(e); sigComp = theCompton->GetLambda(e, couple, loge); @@ -400,7 +399,7 @@ void G4GammaGeneralProcess::BuildPhysicsTable(const G4ParticleDefinition& part) G4cout << "======= Zone 3 ======= N= " << nn << " for " << material->GetName() << G4endl; } - for(size_t j=0; jEnergy(j); G4double loge = G4Log(e); sigComp = theCompton->GetLambda(e, couple, loge); @@ -437,8 +436,9 @@ void G4GammaGeneralProcess::BuildPhysicsTable(const G4ParticleDefinition& part) val = sigN/sum; (*(tables[14]))[idx]->PutValue(j, val); } - for(size_t k=0; k= 10)) { + //G4cout <<"BuildPhysTable spline iTable="<GetLambda(preStepKinEnergy, currentCouple, preStepLogE); cross += peLambda; - //G4cout << "XS2: " << cross << G4endl; + //G4cout << "XS2: " << peLambda << G4endl; } else if(preStepKinEnergy < minEEEnergy) { cross = ComputeGeneralLambda(1, 2); @@ -562,10 +562,10 @@ G4double G4GammaGeneralProcess::TotalCrossSectionPerVolume() cross = ComputeGeneralLambda(3, 10); //G4cout << "XS5: " << cross << G4endl; } - /* + /* G4cout << "xs= " << cross << " idxE= " << idxEnergy << " idxC= " << currentCoupleIndex - << " E= " << energy << G4endl; + << " E= " << preStepKinEnergy << G4endl; */ return cross; } @@ -589,7 +589,7 @@ G4VParticleChange* G4GammaGeneralProcess::PostStepDoIt(const G4Track& track, if(preStepLambda*q <= peLambda) { SelectEmProcess(step, thePhotoElectric); } else { - if(theT[1] && preStepLambda*q < preStepLambda*GetProbability(1) + peLambda) { + if(theT[1] && preStepLambda*q < (preStepLambda - peLambda)*GetProbability(1) + peLambda) { SelectEmProcess(step, theRayleigh); } else { SelectEmProcess(step, theCompton); @@ -670,7 +670,7 @@ G4bool G4GammaGeneralProcess::StorePhysicsTable(const G4ParticleDefinition* part !theRayleigh->StorePhysicsTable(part, directory, ascii)) { yes = false; } - for(size_t i=0; iRetrievePhysicsTable(part, directory, ascii)) { yes = false; } - for(size_t i=0; iRetrievePhysicsTable(i, part, fnam, ascii, splineFlag)) + G4String fnam = GetPhysicsTableFileName(part,directory,nam,ascii); + G4bool spline = (i <= 1 || i >= 10); + if(!theHandler->RetrievePhysicsTable(i, part, fnam, ascii, spline)) { yes = false; } } } diff --git a/source/physics_lists/constructors/gamma_lepto_nuclear/GNUmakefile b/source/physics_lists/constructors/gamma_lepto_nuclear/GNUmakefile index 75271430bf..d901b77459 100644 --- a/source/physics_lists/constructors/gamma_lepto_nuclear/GNUmakefile +++ b/source/physics_lists/constructors/gamma_lepto_nuclear/GNUmakefile @@ -21,6 +21,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/geometry/magneticfield/include \ -I$(G4BASE)/geometry/navigation/include \ -I$(G4BASE)/intercoms/include \ + -I$(G4BASE)/materials/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/particles/shortlived/include \ -I$(G4BASE)/particles/management/include \ @@ -39,6 +40,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/processes/decay/include \ -I$(G4BASE)/processes/cuts/include \ -I$(G4BASE)/processes/electromagnetic/highenergy/include \ + -I$(G4BASE)/processes/electromagnetic/muons/include \ -I$(G4BASE)/processes/electromagnetic/utils/include \ -I$(G4BASE)/processes/electromagnetic/xrays/include \ -I$(G4BASE)/processes/optical/include \ @@ -62,12 +64,10 @@ CPPFLAGS += -I$(G4BASE)/global/management/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/photolepton_hadron/muon_nuclear/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/processes/include \ - -I$(G4BASE)/processes/hadronic/util/include \ - -I$(G4BASE)/materials/include + -I$(G4BASE)/processes/hadronic/util/include include $(G4INSTALL)/config/common.gmk diff --git a/source/physics_lists/constructors/gamma_lepto_nuclear/History b/source/physics_lists/constructors/gamma_lepto_nuclear/History index 8cbc8c2feb..c5f0736a1a 100644 --- a/source/physics_lists/constructors/gamma_lepto_nuclear/History +++ b/source/physics_lists/constructors/gamma_lepto_nuclear/History @@ -1,9 +1,23 @@ # Category phys-ctor-glnuclear History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-03 Vladimir Grichine (phys-ctor-glnuclear-V11-00-07) +- G4EmExtraPhysics - update for tau-neutrino nucleus processes + +## 2022-09-05 Ben Morgan (phys-ctor-glnuclear-V11-00-06) +- Update public/private dependencies for consistency + +## 2022-08-24 Gabriele Cosmo (phys-ctor-glnuclear-V11-00-05) +- Added missing dependency on G4muons in GNUmakefile and CMake script. + +## 2022-08-21 Vladimir Ivanchenko (phys-ctor-glnuclear-V11-00-04) +- G4EmExtraPhysics, G4EmMessenger - added muon to muon pair process, + move initialisation class members to the header ## 2022-06-22 Guilherme Amadio (phys-ctor-glnuclear-V11-00-03) - Replace std::getenv with G4FindDataDir diff --git a/source/physics_lists/constructors/gamma_lepto_nuclear/include/G4EmExtraPhysics.hh b/source/physics_lists/constructors/gamma_lepto_nuclear/include/G4EmExtraPhysics.hh index a5fbc8e9fd..9ba044c3b8 100644 --- a/source/physics_lists/constructors/gamma_lepto_nuclear/include/G4EmExtraPhysics.hh +++ b/source/physics_lists/constructors/gamma_lepto_nuclear/include/G4EmExtraPhysics.hh @@ -71,6 +71,7 @@ public: void ElectroNuclear(G4bool val); void MuonNuclear(G4bool val); void GammaToMuMu(G4bool val); + void MuonToMuMu(G4bool val); void PositronToMuMu(G4bool val); void PositronToHadrons(G4bool val); void GammaToMuMuFactor(G4double val); @@ -93,28 +94,29 @@ private: void ConstructLENDGammaNuclear(G4CascadeInterface* cascade, G4HadronInelasticProcess* gnuc); - G4bool gnActivated; - G4bool eActivated; - G4bool gLENDActivated; - G4bool munActivated; - G4bool synActivated; - G4bool synActivatedForAll; - G4bool gmumuActivated; - G4bool pmumuActivated; - G4bool phadActivated; - G4bool fNuActivated; - G4bool fNuETotXscActivated; - G4bool fUseGammaNuclearXS; + G4bool gnActivated = true; + G4bool eActivated = true; + G4bool gLENDActivated = false; + G4bool munActivated = true; + G4bool synActivated = false; + G4bool synActivatedForAll = false; + G4bool gmumuActivated = false; + G4bool mmumuActivated = false; + G4bool pmumuActivated = false; + G4bool phadActivated = false; + G4bool fNuActivated = false; + G4bool fNuETotXscActivated = false; + G4bool fUseGammaNuclearXS = true; - G4double gmumuFactor; - G4double pmumuFactor; - G4double phadFactor; - G4double fNuEleCcBias; - G4double fNuEleNcBias; - G4double fNuNucleusBias; + G4double gmumuFactor = 1.0; + G4double pmumuFactor = 1.0; + G4double phadFactor = 1.0; + G4double fNuEleCcBias = 1.0; + G4double fNuEleNcBias = 1.0; + G4double fNuNucleusBias = 1.0; G4double fGNLowEnergyLimit; - G4String fNuDetectorName; + G4String fNuDetectorName = "0"; G4EmMessenger* theMessenger; G4int verbose; diff --git a/source/physics_lists/constructors/gamma_lepto_nuclear/include/G4EmMessenger.hh b/source/physics_lists/constructors/gamma_lepto_nuclear/include/G4EmMessenger.hh index 706a8c236b..2437548490 100644 --- a/source/physics_lists/constructors/gamma_lepto_nuclear/include/G4EmMessenger.hh +++ b/source/physics_lists/constructors/gamma_lepto_nuclear/include/G4EmMessenger.hh @@ -70,6 +70,7 @@ private: G4UIcmdWithABool* theEN; G4UIcmdWithABool* theMUN; G4UIcmdWithABool* theGMM; + G4UIcmdWithABool* theMMM; G4UIcmdWithABool* thePMM; G4UIcmdWithABool* thePH; G4UIcmdWithABool* theNu; diff --git a/source/physics_lists/constructors/gamma_lepto_nuclear/sources.cmake b/source/physics_lists/constructors/gamma_lepto_nuclear/sources.cmake index 4fb58bcd25..cdfbc541be 100644 --- a/source/physics_lists/constructors/gamma_lepto_nuclear/sources.cmake +++ b/source/physics_lists/constructors/gamma_lepto_nuclear/sources.cmake @@ -26,6 +26,7 @@ geant4_module_link_libraries(G4phys_ctor_glnuclear G4intercoms G4run PRIVATE + G4baryons G4bosons G4emhighenergy G4emutils @@ -33,11 +34,12 @@ geant4_module_link_libraries(G4phys_ctor_glnuclear G4had_lend G4had_preequ_exciton G4hadronic_coherent_elastic - G4hadronic_deex_photon_evaporation - G4hadronic_mgt G4hadronic_util G4hadronic_xsect + G4ions G4leptons + G4mesons + G4muons G4partman G4phys_builders G4phys_ctor_em diff --git a/source/physics_lists/constructors/gamma_lepto_nuclear/src/G4EmExtraPhysics.cc b/source/physics_lists/constructors/gamma_lepto_nuclear/src/G4EmExtraPhysics.cc index 4e3b590cac..c54f3720cc 100644 --- a/source/physics_lists/constructors/gamma_lepto_nuclear/src/G4EmExtraPhysics.cc +++ b/source/physics_lists/constructors/gamma_lepto_nuclear/src/G4EmExtraPhysics.cc @@ -39,7 +39,7 @@ // 24.04.2014 A.Ribon: switched on muon-nuclear by default // 29.01.2018 V.Grichine, adding neutrinos // 07.05.2019 V.Grichine, adding muon neutrino nucleus interactions -// +// 03.11.2022 V. Grichne update for tau-neutrino nucleus processes // /////////////////////////////////////////////////////////////// @@ -86,6 +86,7 @@ #include "G4GammaConversionToMuons.hh" #include "G4AnnihiToMuPair.hh" #include "G4eeToHadrons.hh" +#include "G4MuonToMuonPairProduction.hh" #include "G4HadronInelasticProcess.hh" #include "G4ElectronNuclearProcess.hh" @@ -97,15 +98,23 @@ #include "G4NeutrinoElectronNcModel.hh" #include "G4MuNeutrinoNucleusProcess.hh" +#include "G4TauNeutrinoNucleusProcess.hh" #include "G4ElNeutrinoNucleusProcess.hh" #include "G4MuNeutrinoNucleusTotXsc.hh" +#include "G4TauNeutrinoNucleusTotXsc.hh" #include "G4ElNeutrinoNucleusTotXsc.hh" #include "G4NuMuNucleusCcModel.hh" #include "G4NuMuNucleusNcModel.hh" #include "G4ANuMuNucleusCcModel.hh" #include "G4ANuMuNucleusNcModel.hh" + +#include "G4NuTauNucleusCcModel.hh" +#include "G4NuTauNucleusNcModel.hh" +#include "G4ANuTauNucleusCcModel.hh" +#include "G4ANuTauNucleusNcModel.hh" + #include "G4NuElNucleusCcModel.hh" #include "G4NuElNucleusNcModel.hh" #include "G4ANuElNucleusCcModel.hh" @@ -130,26 +139,7 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmExtraPhysics); G4EmExtraPhysics::G4EmExtraPhysics(G4int ver): G4VPhysicsConstructor("G4GammaLeptoNuclearPhys"), - gnActivated (true), - eActivated (true), - gLENDActivated(false), - munActivated(true), - synActivated(false), - synActivatedForAll(false), - gmumuActivated(false), - pmumuActivated(false), - phadActivated (false), - fNuActivated (false), - fNuETotXscActivated (false), - fUseGammaNuclearXS(true), - gmumuFactor (1.0), - pmumuFactor (1.0), - phadFactor (1.0), - fNuEleCcBias(1.0), - fNuEleNcBias(1.0), - fNuNucleusBias(1.0), fGNLowEnergyLimit(200*CLHEP::MeV), - fNuDetectorName("0"), verbose(ver) { theMessenger = new G4EmMessenger(this); @@ -205,6 +195,11 @@ void G4EmExtraPhysics::GammaToMuMu(G4bool val) gmumuActivated = val; } +void G4EmExtraPhysics::MuonToMuMu(G4bool val) +{ + mmumuActivated = val; +} + void G4EmExtraPhysics::PositronToMuMu(G4bool val) { pmumuActivated = val; @@ -328,6 +323,11 @@ void G4EmExtraPhysics::ConstructProcess() ph->RegisterProcess(theGammaToMuMu, gamma); } } + if(mmumuActivated) { + auto proc = new G4MuonToMuonPairProduction(); + ph->RegisterProcess(proc, muonplus); + ph->RegisterProcess(proc, muonminus); + } if(pmumuActivated) { G4AnnihiToMuPair* thePosiToMuMu = new G4AnnihiToMuPair(); thePosiToMuMu->SetCrossSecFactor(pmumuFactor); @@ -417,6 +417,30 @@ void G4EmExtraPhysics::ConstructProcess() ph->RegisterProcess(theNuMuNucleusProcess, anumuon); ph->RegisterProcess(theNuMuNucleusProcess, numuon); + // nu_tau nucleus interactions + + G4TauNeutrinoNucleusProcess* theNuTauNucleusProcess = new G4TauNeutrinoNucleusProcess(fNuDetectorName); + G4TauNeutrinoNucleusTotXsc* theNuTauNucleusTotXsc = new G4TauNeutrinoNucleusTotXsc(); + + if(fNuETotXscActivated) + { + theNuTauNucleusProcess->SetBiasingFactor(fNuNucleusBias); + } + theNuTauNucleusProcess->AddDataSet(theNuTauNucleusTotXsc); + + G4NuTauNucleusCcModel* nutaunuclcc = new G4NuTauNucleusCcModel(); + G4NuTauNucleusNcModel* nutaunuclnc = new G4NuTauNucleusNcModel(); + G4ANuTauNucleusCcModel* anutaunuclcc = new G4ANuTauNucleusCcModel(); + G4ANuTauNucleusNcModel* anutaunuclnc = new G4ANuTauNucleusNcModel(); + + theNuTauNucleusProcess->RegisterMe(nutaunuclcc); + theNuTauNucleusProcess->RegisterMe(nutaunuclnc); + theNuTauNucleusProcess->RegisterMe(anutaunuclcc); + theNuTauNucleusProcess->RegisterMe(anutaunuclnc); + + ph->RegisterProcess(theNuTauNucleusProcess, anutau); + ph->RegisterProcess(theNuTauNucleusProcess, nutau); + // nu_e nucleus interactions G4ElNeutrinoNucleusProcess* theNuElNucleusProcess = new G4ElNeutrinoNucleusProcess(fNuDetectorName); diff --git a/source/physics_lists/constructors/gamma_lepto_nuclear/src/G4EmMessenger.cc b/source/physics_lists/constructors/gamma_lepto_nuclear/src/G4EmMessenger.cc index ef68288dc2..4266f0051e 100644 --- a/source/physics_lists/constructors/gamma_lepto_nuclear/src/G4EmMessenger.cc +++ b/source/physics_lists/constructors/gamma_lepto_nuclear/src/G4EmMessenger.cc @@ -103,6 +103,11 @@ G4EmMessenger::G4EmMessenger(G4EmExtraPhysics* ab) theGMM->AvailableForStates(G4State_PreInit); theGMM->SetToBeBroadcasted(false); + theMMM = new G4UIcmdWithABool("/physics_lists/em/MuonToMuons",this); + theMMM->SetGuidance("Switching on muon pair production by muons."); + theMMM->AvailableForStates(G4State_PreInit); + theMMM->SetToBeBroadcasted(false); + thePMM = new G4UIcmdWithABool("/physics_lists/em/PositronToMuons",this); thePMM->SetGuidance("Switching on positron conversion to muon pair."); thePMM->AvailableForStates(G4State_PreInit); @@ -175,6 +180,7 @@ G4EmMessenger::~G4EmMessenger() delete theEN; delete theMUN; delete theGMM; + delete theMMM; delete thePMM; delete thePH; delete theNu; @@ -203,6 +209,7 @@ void G4EmMessenger::SetNewValue(G4UIcommand* aComm, G4String aS) if(aComm==theEN) theB->ElectroNuclear(theEN->GetNewBoolValue(aS)); if(aComm==theMUN) theB->MuonNuclear(theMUN->GetNewBoolValue(aS)); if(aComm==theGMM) theB->GammaToMuMu(theGMM->GetNewBoolValue(aS)); + if(aComm==theMMM) theB->MuonToMuMu(theMMM->GetNewBoolValue(aS)); if(aComm==thePMM) theB->PositronToMuMu(thePMM->GetNewBoolValue(aS)); if(aComm==thePH) theB->PositronToHadrons(thePH->GetNewBoolValue(aS)); if(aComm==theNu) theB->NeutrinoActivated(theNu->GetNewBoolValue(aS)); diff --git a/source/physics_lists/constructors/hadron_elastic/History b/source/physics_lists/constructors/hadron_elastic/History index 05500c6346..f0ce06b985 100644 --- a/source/physics_lists/constructors/hadron_elastic/History +++ b/source/physics_lists/constructors/hadron_elastic/History @@ -1,9 +1,21 @@ # Category phys-ctor-helastic History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-24 Gabriele Cosmo (phys-ctor-helastic-V11-00-03) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-11 Alberto Ribon (phys-ctor-helastic-V11-00-02) +- G4HadronElasticPhysics : extended nuclear elastic for light hypernuclei and + anti-hypernuclei projectiles. + +## 2022-08-21 Vladimir Ivanchenko (phys-ctor-helastic-V11-00-01) +- G4HadronElasticPhysics - use G4HadProcesses utility to build neutron + elastic, which allows to use an option of neutron general process ## 2021-12-10 Ben Morgan (phys-ctor-helastic-V11-00-00) - Change to new Markdown History format diff --git a/source/physics_lists/constructors/hadron_elastic/README b/source/physics_lists/constructors/hadron_elastic/README index 5ef90ee463..c5d0ad2fcb 100644 --- a/source/physics_lists/constructors/hadron_elastic/README +++ b/source/physics_lists/constructors/hadron_elastic/README @@ -24,6 +24,12 @@ - cross-section: Galoyan-Uzhinsky-Glauber-Gribov - final-state: Galoyan-Uzhinsky model above 100 MeV/nucleon, Gheisha below. + - charm and bottom hadrons, light hypernuclei + - cross section: Glauber-Gribov + - final-state: Gheisha + - light anti-hypernuclei + - cross-section: Galoyan-Uzhinsky-Glauber-Gribov + - final-state: Gheisha G4HadronElasticPhysicsHP ------------------------ diff --git a/source/physics_lists/constructors/hadron_elastic/src/G4HadronElasticPhysics.cc b/source/physics_lists/constructors/hadron_elastic/src/G4HadronElasticPhysics.cc index f8ba69a706..67394ba0f8 100644 --- a/source/physics_lists/constructors/hadron_elastic/src/G4HadronElasticPhysics.cc +++ b/source/physics_lists/constructors/hadron_elastic/src/G4HadronElasticPhysics.cc @@ -144,12 +144,9 @@ void G4HadronElasticPhysics::ConstructProcess() ph->RegisterProcess(hel, particle); // n - particle = G4Neutron::Neutron(); hel = new G4HadronElasticProcess(); - hel->AddDataSet(new G4NeutronElasticXS()); hel->RegisterMe(new G4ChipsElasticModel()); - if( useFactorXS ) hel->MultiplyCrossSectionBy( param->XSFactorNucleonElastic() ); - ph->RegisterProcess(hel, particle); + G4HadProcesses::BuildNeutronElastic(hel); // pi+ particle = G4PionPlus::PionPlus(); @@ -206,6 +203,22 @@ void G4HadronElasticPhysics::ConstructProcess() if( G4HadronicParameters::Instance()->EnableBCParticles() ) { G4HadronicBuilder::BuildElastic( G4HadParticles::GetBCHadrons() ); } + + // light hypernuclei and anti-hypernuclei + if ( G4HadronicParameters::Instance()->EnableHyperNuclei() ) { + // for light hypernuclei, we can use directly the following method: + G4HadronicBuilder::BuildElastic( G4HadParticles::GetHyperNuclei() ); + // but not for light anti-hypernuclei, because they need a different cross section: + for ( auto & pdg : G4HadParticles::GetHyperAntiNuclei() ) { + particle = table->FindParticle( pdg ); + if ( particle == nullptr ) continue; + hel = new G4HadronElasticProcess; + hel->AddDataSet( anucxs ); + hel->RegisterMe( lhep0 ); + if ( useFactorXS ) hel->MultiplyCrossSectionBy( param->XSFactorHadronElastic() ); + ph->RegisterProcess( hel, particle ); + } + } } } diff --git a/source/physics_lists/constructors/hadron_elastic/src/G4ThermalNeutrons.cc b/source/physics_lists/constructors/hadron_elastic/src/G4ThermalNeutrons.cc index ce5537fca3..97dd02a8e2 100644 --- a/source/physics_lists/constructors/hadron_elastic/src/G4ThermalNeutrons.cc +++ b/source/physics_lists/constructors/hadron_elastic/src/G4ThermalNeutrons.cc @@ -69,7 +69,7 @@ void G4ThermalNeutrons::ConstructProcess() { return; } - G4int ni = (hpel->GetHadronicInteractionList()).size(); + std::size_t ni = (hpel->GetHadronicInteractionList()).size(); if(ni < 1) { G4cout << "### " << GetPhysicsName() << " WARNING: Fail to add thermal neutron scattering - Nint= " diff --git a/source/physics_lists/constructors/hadron_inelastic/History b/source/physics_lists/constructors/hadron_inelastic/History index c45618aaec..7bd25bef2a 100644 --- a/source/physics_lists/constructors/hadron_inelastic/History +++ b/source/physics_lists/constructors/hadron_inelastic/History @@ -4,6 +4,16 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-11 Alberto Ribon (phys-ctor-hinelastic-V11-00-02) +- G4HadronPhysicsFTFP_BERT, G4HadronPhysicsINCLXX : extension to inelastic + nuclear interactions of light hypernuclei (with either FTFP only or + FTFP+INCLXX) and anti-hypernuclei (with only FTFP for all energies). + Notice that the QGSP string model cannot currently handle nuclear + projectiles of any kind. + +## 2022-08-21 Vladimir Ivanchenko (phys-ctor-hinelastic-V11-00-01) +- G4HadronInelasticQBBC - use G4HadProcesses utility to build neutron + elastic, which allows to use an option of neutron general process ## 2021-12-10 Ben Morgan (phys-ctor-hinelastic-V11-00-00) - Change to new Markdown History format diff --git a/source/physics_lists/constructors/hadron_inelastic/README b/source/physics_lists/constructors/hadron_inelastic/README index f9a4cd495c..e21354573c 100644 --- a/source/physics_lists/constructors/hadron_inelastic/README +++ b/source/physics_lists/constructors/hadron_inelastic/README @@ -65,7 +65,12 @@ - charm and bottom hadrons inelastic: - cross section: Glauber-Gribov - final-state: FTFP for all energies - + - light hypernuclei inelastic: + - cross section: Glauber-Gribov + - final-state: FTFP for all energies + - light anti-hypernuclei inelastic: + - cross-section: Galoyan-Uzhinsky-Glauber-Gribov + - final-state: FTFP for all energies G4HadronPhysicsFTFP_BERT_ATL ---------------------------- @@ -132,6 +137,12 @@ - kaons inelastic: - cross section: Glauber-Gribov - final-state: QGSP > 14 GeV; BERT < 15 GeV + - light hypernuclei inelastic: + - cross section: Glauber-Gribov + - final-state: FTFP > 15 GeV; 1 MeV < INCLXX < 20 GeV; Preco < 2 MeV + - light anti-hypernuclei inelastic: + - cross-section: Galoyan-Uzhinsky-Glauber-Gribov + - final-state: FTFP for all energies Note: it is possible to specify in the constructor the use of FTFP instead of QGSP; moreover, NeutronHP can also be activated in the constructor, diff --git a/source/physics_lists/constructors/hadron_inelastic/include/G4HadronInelasticQBBC.hh b/source/physics_lists/constructors/hadron_inelastic/include/G4HadronInelasticQBBC.hh index aee0244670..b66a03c5f5 100644 --- a/source/physics_lists/constructors/hadron_inelastic/include/G4HadronInelasticQBBC.hh +++ b/source/physics_lists/constructors/hadron_inelastic/include/G4HadronInelasticQBBC.hh @@ -53,7 +53,7 @@ public: G4bool chips = false, G4bool hp = false, G4bool glauber = false); - virtual ~G4HadronInelasticQBBC(); + virtual ~G4HadronInelasticQBBC() = default; // This method will be invoked in the Construct() method. // each physics process will be instantiated and diff --git a/source/physics_lists/constructors/hadron_inelastic/src/G4HadronInelasticQBBC.cc b/source/physics_lists/constructors/hadron_inelastic/src/G4HadronInelasticQBBC.cc index d968a0b6a6..d9b0ff31d5 100644 --- a/source/physics_lists/constructors/hadron_inelastic/src/G4HadronInelasticQBBC.cc +++ b/source/physics_lists/constructors/hadron_inelastic/src/G4HadronInelasticQBBC.cc @@ -39,6 +39,7 @@ #include "G4SystemOfUnits.hh" +#include "G4HadronicProcess.hh" #include "G4HadronInelasticProcess.hh" #include "G4NeutronCaptureProcess.hh" #include "G4HadronicInteraction.hh" @@ -56,6 +57,7 @@ #include "G4ParticleInelasticXS.hh" #include "G4NeutronInelasticXS.hh" #include "G4NeutronCaptureXS.hh" +#include "G4NeutronGeneralProcess.hh" #include "G4CrossSectionInelastic.hh" @@ -81,17 +83,16 @@ G4HadronInelasticQBBC::G4HadronInelasticQBBC(G4int ver) : G4VHadronPhysics("hInelasticQBBC") { SetPhysicsType(bHadronInelastic); - G4HadronicParameters::Instance()->SetEnableBCParticles(true); - G4HadronicParameters::Instance()->SetVerboseLevel(ver); + auto param = G4HadronicParameters::Instance(); + param->SetEnableBCParticles(true); + param->SetEnableNeutronGeneralProcess(true); + param->SetVerboseLevel(ver); } G4HadronInelasticQBBC::G4HadronInelasticQBBC(const G4String&, G4int ver, G4bool, G4bool,G4bool, G4bool, G4bool) : G4HadronInelasticQBBC(ver) {} -G4HadronInelasticQBBC::~G4HadronInelasticQBBC() -{} - void G4HadronInelasticQBBC::ConstructProcess() { G4HadronicParameters* param = G4HadronicParameters::Instance(); @@ -158,17 +159,12 @@ void G4HadronInelasticQBBC::ConstructProcess() // n particle = G4Neutron::Neutron(); - hp = new G4HadronInelasticProcess( particle->GetParticleName()+"Inelastic", particle ); - hp->AddDataSet(new G4NeutronInelasticXS()); - hp->RegisterMe(theFTFP); - hp->RegisterMe(theBERT); - hp->RegisterMe(theBIC); - ph->RegisterProcess(hp, particle); - if( useFactorXS ) hp->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() ); - - hp = new G4NeutronCaptureProcess("nCapture"); - hp->RegisterMe(new G4NeutronRadCapture()); - ph->RegisterProcess(hp, particle); + G4HadronicProcess* ni = + new G4HadronInelasticProcess( "neutronInelastic", particle ); + ni->RegisterMe(theFTFP); + ni->RegisterMe(theBERT); + ni->RegisterMe(theBIC); + G4HadProcesses::BuildNeutronInelasticAndCapture(ni); // pi+ particle = G4PionPlus::PionPlus(); diff --git a/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsFTFP_BERT.cc b/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsFTFP_BERT.cc index 5da0876993..4092f0ff4d 100644 --- a/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsFTFP_BERT.cc +++ b/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsFTFP_BERT.cc @@ -286,6 +286,12 @@ void G4HadronPhysicsFTFP_BERT::Others() if( param->EnableBCParticles() ) { G4HadronicBuilder::BuildBCHadronsFTFP_BERT(); } + + // light hypernuclei and anti-hypernuclei + if ( param->EnableHyperNuclei() ) { + G4HadronicBuilder::BuildHyperNucleiFTFP_BERT(); + G4HadronicBuilder::BuildHyperAntiNucleiFTFP_BERT(); + } } } diff --git a/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsINCLXX.cc b/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsINCLXX.cc index 7b63d8ef0e..390bfe0f2f 100644 --- a/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsINCLXX.cc +++ b/source/physics_lists/constructors/hadron_inelastic/src/G4HadronPhysicsINCLXX.cc @@ -31,6 +31,7 @@ // Author: 2011 P. Kaitaniemi // // Modified: +// 11.11.2022 A.Ribon: Extended to light hypernuclei and anti-hypernuclei projectiles // 07.05.2020 A.Ribon: Use eventually QGSP for hyperons (and anti-hyperons) // at high energies // 05.05.2020 A.Ribon: Use eventually QGSP for antibaryons at high energies @@ -285,6 +286,17 @@ void G4HadronPhysicsINCLXX::Others() // anti light ions G4HadronicBuilder::BuildAntiLightIonsFTFP(); + if ( param->EnableHyperNuclei() ) { + // INCLXX is currently capable of handling light hypernuclei projectiles, + // but not light anti-hypernuclei projectiles, therefore FTFP must be used + // for the latter. + // Note that the QGSP string model cannot currently handle nuclear projectiles + // of any kind, so only the FTFP string model can be used together with INCLXX + // for the simulation of nuclear interactions light hypernuclei. + G4HadronicBuilder::BuildHyperAntiNucleiFTFP_BERT(); + G4HadronicBuilder::BuildHyperNucleiFTFP_INCLXX(); + } + if(withFTFP) { // hyperons G4HadronicBuilder::BuildHyperonsFTFP_BERT(); @@ -300,7 +312,7 @@ void G4HadronPhysicsINCLXX::Others() // b-, c- baryons and mesons if( param->EnableBCParticles() ) { G4HadronicBuilder::BuildBCHadronsQGSP_FTFP_BERT(true); - } + } } } } diff --git a/source/physics_lists/constructors/limiters/History b/source/physics_lists/constructors/limiters/History index 0ab90ece01..21e33e1af3 100644 --- a/source/physics_lists/constructors/limiters/History +++ b/source/physics_lists/constructors/limiters/History @@ -1,9 +1,30 @@ # Category phys-ctor-limiters History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-24 Gabriele Cosmo (phys-ctor-limiters-V11-00-08) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-09-05 Ben Morgan (phys-ctor-limiters-V11-00-07) +- Update public/private dependencies for consistency + +## 2022-08-31, Gabriele Cosmo (phys-ctor-limiters-V11-00-06) +- Fixed defects reported by Coverity in G4GenericBiasingPhysics, to use auto&. + +## 2022-08-24, Vladimir Ivanchenko (phys-ctor-limiters-V11-00-05) +- G4NeutronTrackingCut - use enumerator for neutron general process + instead of hard-coded number + +## 2022-08-22, Gabriele Cosmo (phys-ctor-limiters-V11-00-04) +- Added missing dependency on G4physlist_util in souces.cmake script. + +## 2022-08-18, Vladimir Ivanchenko (phys-ctor-limiters-V11-00-03) +- G4NeutronTrackingCut - added check if G4NeutronGeneralProcess is + defined to avoid double instantiation of the same cut ## 2022-04-25, Vladimir Ivanchenko (phys-ctor-limiters-V11-00-02) - G4UserSpecialCuts class is moved from process/transportation diff --git a/source/physics_lists/constructors/limiters/sources.cmake b/source/physics_lists/constructors/limiters/sources.cmake index cbe1512d63..72a81ce31e 100644 --- a/source/physics_lists/constructors/limiters/sources.cmake +++ b/source/physics_lists/constructors/limiters/sources.cmake @@ -39,11 +39,13 @@ geant4_module_link_libraries(G4phys_ctor_limiters G4biasing_gen G4emutils G4hadronic_mgt + G4hadronic_proc G4navigation G4parameterisation G4partman G4phys_builders G4phys_ctor_factory + G4physlist_util G4scoring G4track G4transportation) diff --git a/source/physics_lists/constructors/limiters/src/G4FastSimulationPhysics.cc b/source/physics_lists/constructors/limiters/src/G4FastSimulationPhysics.cc index c6de8a32ed..459557f9e0 100644 --- a/source/physics_lists/constructors/limiters/src/G4FastSimulationPhysics.cc +++ b/source/physics_lists/constructors/limiters/src/G4FastSimulationPhysics.cc @@ -95,7 +95,7 @@ void G4FastSimulationPhysics::ConstructProcess() if ( itr != fParticlesUnderFastSimulation.end() ) { - size_t ipos = itr - fParticlesUnderFastSimulation.begin(); + std::size_t ipos = itr - fParticlesUnderFastSimulation.begin(); G4String geometry = fGeometries[ipos]; if ( geometry == "" ) G4FastSimulationHelper::ActivateFastSimulation(pmanager); else G4FastSimulationHelper::ActivateFastSimulation(pmanager, geometry); @@ -119,7 +119,7 @@ void G4FastSimulationPhysics::ConstructProcess() G4int icount(0); G4ProcessVector* vprocess = pmanager->GetProcessList(); - for (size_t ip = 0 ; ip < vprocess->size() ; ++ip) + for (G4int ip = 0 ; ip < (G4int)vprocess->size() ; ++ip) { G4VProcess* process = (*vprocess)[ip]; G4FastSimulationManagerProcess* pb = dynamic_cast< G4FastSimulationManagerProcess* >(process); diff --git a/source/physics_lists/constructors/limiters/src/G4GenericBiasingPhysics.cc b/source/physics_lists/constructors/limiters/src/G4GenericBiasingPhysics.cc index 5f732b44f6..7ca16c7dbc 100644 --- a/source/physics_lists/constructors/limiters/src/G4GenericBiasingPhysics.cc +++ b/source/physics_lists/constructors/limiters/src/G4GenericBiasingPhysics.cc @@ -229,14 +229,14 @@ void G4GenericBiasingPhysics::AddParallelGeometry( G4int PDGlow, G4int PDGhigh, fPDGlowParallelGeometries .push_back( PDGlow ); fPDGhighParallelGeometries.push_back( PDGhigh ); - G4int rangeIndex = fPDGlowParallelGeometries.size() - 1; + G4int rangeIndex = G4int(fPDGlowParallelGeometries.size() - 1); fPDGrangeParallelGeometries[rangeIndex].push_back( parallelGeometryName ); if ( includeAntiParticle ) { fPDGlowParallelGeometries .push_back( -PDGhigh ); fPDGhighParallelGeometries.push_back( -PDGlow ); - rangeIndex = fPDGlowParallelGeometries.size() - 1; + rangeIndex = G4int(fPDGlowParallelGeometries.size() - 1); fPDGrangeParallelGeometries[rangeIndex].push_back( parallelGeometryName ); } @@ -342,7 +342,7 @@ void G4GenericBiasingPhysics::ConstructProcess() if ( biasAll ) { G4ProcessVector* vprocess = pmanager->GetProcessList(); - for (std::size_t ip = 0 ; ip < vprocess->size() ; ++ip) + for (G4int ip = 0 ; ip < (G4int)vprocess->size() ; ++ip) { G4VProcess* process = (*vprocess)[ip]; biasedProcesses.push_back( process->GetProcessName() ); @@ -387,13 +387,13 @@ void G4GenericBiasingPhysics::ConstructProcess() auto PDG = particle->GetPDGEncoding(); // -- include particle if in right PDG range: - for ( size_t i = 0 ; i < fPhysBiasByPDGRangeLow.size() ; i++ ) + for ( std::size_t i = 0 ; i < fPhysBiasByPDGRangeLow.size() ; i++ ) if ( ( PDG >= fPhysBiasByPDGRangeLow[i] ) && ( PDG <= fPhysBiasByPDGRangeHigh[i] ) ) { physBias = true; break; } - for ( size_t i = 0 ; i < fNonPhysBiasByPDGRangeLow.size() ; i++ ) + for ( std::size_t i = 0 ; i < fNonPhysBiasByPDGRangeLow.size() ; i++ ) if ( ( PDG >= fNonPhysBiasByPDGRangeLow[i] ) && ( PDG <= fNonPhysBiasByPDGRangeHigh[i] ) ) { nonPhysBias = true; @@ -422,7 +422,7 @@ void G4GenericBiasingPhysics::ConstructProcess() { std::vector < G4String > biasedProcesses; G4ProcessVector* vprocess = pmanager->GetProcessList(); - for (std::size_t ip = 0 ; ip < vprocess->size() ; ++ip) + for (G4int ip = 0 ; ip < (G4int)vprocess->size() ; ++ip) { G4VProcess* process = (*vprocess)[ip]; biasedProcesses.push_back( process->GetProcessName() ); @@ -465,7 +465,7 @@ void G4GenericBiasingPhysics::ConstructProcess() G4int icount(0); G4ProcessVector* vprocess = pmanager->GetProcessList(); - for (std::size_t ip = 0 ; ip < vprocess->size() ; ++ip) + for (G4int ip = 0 ; ip < (G4int)vprocess->size() ; ++ip) { G4VProcess* process = (*vprocess)[ip]; G4BiasingProcessInterface* pb = dynamic_cast< G4BiasingProcessInterface* >(process); @@ -557,7 +557,7 @@ void G4GenericBiasingPhysics::AssociateParallelGeometries() G4ParallelGeometriesLimiterProcess* limiter = G4BiasingHelper::AddLimiterProcess(pmanager); // -- attached the requested worlds to this process: - for ( auto geometry : geometries ) limiter->AddParallelWorld( geometry ); + for ( auto& geometry : geometries ) limiter->AddParallelWorld( geometry ); } } // -- increment index for next PDG range: diff --git a/source/physics_lists/constructors/limiters/src/G4NeutronTrackingCut.cc b/source/physics_lists/constructors/limiters/src/G4NeutronTrackingCut.cc index 7e12542e1e..5b4d78a4c1 100644 --- a/source/physics_lists/constructors/limiters/src/G4NeutronTrackingCut.cc +++ b/source/physics_lists/constructors/limiters/src/G4NeutronTrackingCut.cc @@ -43,6 +43,8 @@ #include "G4Neutron.hh" #include "G4NeutronKiller.hh" #include "G4HadronicProcessStore.hh" +#include "G4PhysListUtil.hh" +#include "G4NeutronGeneralProcess.hh" #include "G4BuilderType.hh" #include "G4Threading.hh" @@ -56,7 +58,7 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4NeutronTrackingCut); G4NeutronTrackingCut::G4NeutronTrackingCut(G4int ver) : G4VPhysicsConstructor("neutronTrackingCut"), verbose(ver) { - timeLimit = 10.*microsecond; + timeLimit = 10*CLHEP::microsecond; kineticEnergyLimit = 0.0; SetPhysicsType(bUnknown); } @@ -75,8 +77,11 @@ void G4NeutronTrackingCut::ConstructParticle() void G4NeutronTrackingCut::ConstructProcess() { + auto particle = G4Neutron::Neutron(); + auto proc = dynamic_cast(G4PhysListUtil::FindProcess(particle, fNeutronGeneral)); + if(nullptr != proc) { return; } + G4NeutronKiller* pNeutronKiller = new G4NeutronKiller(); - G4ParticleDefinition * particle = G4Neutron::Neutron(); G4ProcessManager * pmanager = particle->GetProcessManager(); if(verbose > 0 && G4Threading::IsMasterThread()) { @@ -87,7 +92,7 @@ void G4NeutronTrackingCut::ConstructProcess() << " KinEnergyCut(MeV)= " << kineticEnergyLimit/MeV << G4endl; } - pmanager -> AddDiscreteProcess(pNeutronKiller); + pmanager->AddDiscreteProcess(pNeutronKiller); pNeutronKiller->SetKinEnergyLimit(kineticEnergyLimit); pNeutronKiller->SetTimeLimit(timeLimit); diff --git a/source/physics_lists/util/GNUmakefile b/source/physics_lists/util/GNUmakefile index c496432c7b..9776376202 100644 --- a/source/physics_lists/util/GNUmakefile +++ b/source/physics_lists/util/GNUmakefile @@ -16,6 +16,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPGeometry/include \ -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/materials/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/particles/shortlived/include \ -I$(G4BASE)/particles/management/include \ @@ -28,8 +29,11 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ -I$(G4BASE)/processes/hadronic/management/include \ -I$(G4BASE)/processes/hadronic/models/de_excitation/management/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/photon_evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/diffraction/include \ + -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/management/include \ - -I$(G4BASE)/materials/include + -I$(G4BASE)/run/include include $(G4INSTALL)/config/common.gmk diff --git a/source/physics_lists/util/History b/source/physics_lists/util/History index 6acb2ba077..498a0241ab 100644 --- a/source/physics_lists/util/History +++ b/source/physics_lists/util/History @@ -1,9 +1,39 @@ # Category phys-util History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-24 Gabriele Cosmo (phys-util-V11-00-09) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-09-05 Ben Morgan (phys-util-V11-00-08) +- Update public/private dependencies for consistency + +## 2022-08-24 Vladimir Ivanchenko (phys-util-V11-00-07) +- G4PhysListUtil - use enumerator for neutron general process + instead of hard-coded number + +## 2022-08-24 Gabriele Cosmo (phys-util-V11-00-06) +- Added missing dependencies on G4hadronic_deex_photon_evaporation + and G4run in GNUmakefile and CMake script. + Added missing dependency on G4procman to GNUmakefile. + +## 2022-08-21 Vladimir Ivanchenko (phys-util-V11-00-05) +- G4PhysListUtil, G4HadProcesses - added extra methods needed for + neutron general process initialisation +- GNUmakefile, source.cmake - added dependences on needed hadronic + sub-libraries in order to fix granular build + +## 2022-08-16 Alberto Ribon (phys-util-V11-00-04) +- G4PhysListUtil : in the method InitialiseParameters(), called + the singleton G4FTFTunings::Instance() to allow the setting of + a FTF tune via UI commands at PreInit state. + +## 2022-08-09 Vladimir Ivanchenko (phys-util-V11-00-03) +- G4PhysListUtil - extended InitialiseParameters() method ## 2022-03-26 Vladimir Ivanchenko (phys-util-V11-00-02) - G4PhysListUtil - use dynamic_cast instead of static_cast diff --git a/source/physics_lists/util/include/G4HadProcesses.hh b/source/physics_lists/util/include/G4HadProcesses.hh index 13d7f30d36..dda080952c 100644 --- a/source/physics_lists/util/include/G4HadProcesses.hh +++ b/source/physics_lists/util/include/G4HadProcesses.hh @@ -52,10 +52,10 @@ class G4HadProcesses { public: - // convert name to pointer + // convert particle name to a pointer static const G4ParticleDefinition* FindParticle(const G4String&); - // access to a process + // access to a process created before static G4HadronicProcess* FindInelasticProcess(const G4ParticleDefinition*); static G4HadronicProcess* FindInelasticProcess(const G4String&); @@ -80,6 +80,12 @@ public: static G4bool AddCaptureCrossSection(G4VCrossSectionDataSet*); static G4bool AddFissionCrossSection(G4VCrossSectionDataSet*); + + // build neutron physics, neutron inelastic and elastic processes + // and list of models should be defined before call to this functions + static void BuildNeutronInelasticAndCapture(G4HadronicProcess*); + static void BuildNeutronElastic(G4HadronicProcess*); + }; #endif diff --git a/source/physics_lists/util/include/G4PhysListUtil.hh b/source/physics_lists/util/include/G4PhysListUtil.hh index 9ecd4355af..07fbcfa3bf 100644 --- a/source/physics_lists/util/include/G4PhysListUtil.hh +++ b/source/physics_lists/util/include/G4PhysListUtil.hh @@ -43,6 +43,7 @@ #include "G4ParticleDefinition.hh" #include "G4HadronicProcess.hh" #include "G4VProcess.hh" +#include "G4NeutronGeneralProcess.hh" class G4PhysListUtil { @@ -60,5 +61,7 @@ public: static G4HadronicProcess* FindFissionProcess(const G4ParticleDefinition*); + static G4NeutronGeneralProcess* FindNeutronGeneralProcess(); + }; #endif diff --git a/source/physics_lists/util/sources.cmake b/source/physics_lists/util/sources.cmake index a3b13780b2..3e5c748bd6 100644 --- a/source/physics_lists/util/sources.cmake +++ b/source/physics_lists/util/sources.cmake @@ -19,11 +19,15 @@ geant4_module_link_libraries(G4physlist_util G4globman G4hadronic_mgt G4hadronic_xsect + G4hadronic_proc G4partman + G4procman PRIVATE G4baryons G4emutils G4hadronic_deex_management + G4hadronic_deex_photon_evaporation G4hadronic_util + G4had_string_diff G4materials - G4procman) + G4run) diff --git a/source/physics_lists/util/src/G4HadProcesses.cc b/source/physics_lists/util/src/G4HadProcesses.cc index b53e1d7acb..55ea0232b1 100644 --- a/source/physics_lists/util/src/G4HadProcesses.cc +++ b/source/physics_lists/util/src/G4HadProcesses.cc @@ -44,6 +44,13 @@ #include "G4ComponentGGHadronNucleusXsc.hh" #include "G4ComponentGGNuclNuclXsc.hh" #include "G4ComponentAntiNuclNuclearXS.hh" +#include "G4HadronicParameters.hh" +#include "G4PhysicsListHelper.hh" +#include "G4NeutronCaptureProcess.hh" +#include "G4NeutronRadCapture.hh" +#include "G4NeutronInelasticXS.hh" +#include "G4NeutronElasticXS.hh" +#include "G4NeutronCaptureXS.hh" const G4ParticleDefinition* G4HadProcesses::FindParticle(const G4String& pname) { @@ -170,3 +177,47 @@ G4bool G4HadProcesses::AddFissionCrossSection(G4VCrossSectionDataSet* xs) } return isOK; } + +void G4HadProcesses::BuildNeutronInelasticAndCapture(G4HadronicProcess* nInel) +{ + G4HadronicParameters* param = G4HadronicParameters::Instance(); + G4bool useNeutronGeneral = param->EnableNeutronGeneralProcess(); + + G4HadronicProcess* nCap = new G4NeutronCaptureProcess("nCapture"); + nCap->RegisterMe(new G4NeutronRadCapture()); + + if(useNeutronGeneral) { + auto nGen = G4PhysListUtil::FindNeutronGeneralProcess(); + nGen->SetInelasticProcess(nInel); + nGen->SetCaptureProcess(nCap); + } else { + auto neutron = G4Neutron::Neutron(); + G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); + nInel->AddDataSet(new G4NeutronInelasticXS()); + nCap->AddDataSet(new G4NeutronCaptureXS()); + ph->RegisterProcess(nInel, neutron); + ph->RegisterProcess(nCap, neutron); + if( param->ApplyFactorXS() ) { + nInel->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() ); + } + } +} + +void G4HadProcesses::BuildNeutronElastic(G4HadronicProcess* nEl) +{ + G4HadronicParameters* param = G4HadronicParameters::Instance(); + G4bool useNeutronGeneral = param->EnableNeutronGeneralProcess(); + + if(useNeutronGeneral) { + auto nGen = G4PhysListUtil::FindNeutronGeneralProcess(); + nGen->SetElasticProcess(nEl); + } else { + auto neutron = G4Neutron::Neutron(); + nEl->AddDataSet(new G4NeutronElasticXS()); + G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); + ph->RegisterProcess(nEl, neutron); + if( param->ApplyFactorXS() ) { + nEl->MultiplyCrossSectionBy( param->XSFactorNucleonElastic() ); + } + } +} diff --git a/source/physics_lists/util/src/G4PhysListUtil.cc b/source/physics_lists/util/src/G4PhysListUtil.cc index 7198c1d9c6..eb5af73b8a 100644 --- a/source/physics_lists/util/src/G4PhysListUtil.cc +++ b/source/physics_lists/util/src/G4PhysListUtil.cc @@ -45,12 +45,16 @@ #include "G4EmParameters.hh" #include "G4HadronicParameters.hh" #include "G4NuclearLevelData.hh" +#include "G4Neutron.hh" +#include "G4FTFTunings.hh" void G4PhysListUtil::InitialiseParameters() { G4NistManager::Instance(); + G4EmParameters::Instance(); G4HadronicParameters::Instance(); G4NuclearLevelData::GetInstance(); + G4FTFTunings::Instance(); } G4VProcess* G4PhysListUtil::FindProcess(const G4ParticleDefinition* part, @@ -60,8 +64,8 @@ G4VProcess* G4PhysListUtil::FindProcess(const G4ParticleDefinition* part, if(nullptr == part) { return proc; } G4ProcessVector* pvec = part->GetProcessManager()->GetProcessList(); if(nullptr == pvec) { return proc; } - size_t n = pvec->size(); - for(size_t i=0; isize(); + for(G4int i=0; iGetProcessSubType()) { proc = ptr; @@ -98,3 +102,14 @@ G4PhysListUtil::FindFissionProcess(const G4ParticleDefinition* p) auto proc = FindProcess(p, fFission); return dynamic_cast(proc); } + +G4NeutronGeneralProcess* G4PhysListUtil::FindNeutronGeneralProcess() +{ + auto neutron = G4Neutron::Neutron(); + auto proc = dynamic_cast(FindProcess(neutron, fNeutronGeneral)); + if(nullptr == proc) { + proc = new G4NeutronGeneralProcess(); + neutron->GetProcessManager()->AddDiscreteProcess(proc); + } + return proc; +} diff --git a/source/processes/History b/source/processes/History index 9a7baf8609..50facffa8e 100644 --- a/source/processes/History +++ b/source/processes/History @@ -4,6 +4,9 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-14 I. Hrivnacova (processes-V11-00-02) +- Replaced reinterpret_cast with static_cast where possible + ## 2022-01-28 Ben Morgan (processes-V11-00-01) - Replace `geant4_global_library_target` with direct file inclusion and call to `geant4_add_category` to define library build from source modules. diff --git a/source/processes/biasing/History b/source/processes/biasing/History index da8666ba1b..d3df53f691 100644 --- a/source/processes/biasing/History +++ b/source/processes/biasing/History @@ -1,9 +1,13 @@ # Category procbiasing History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-23 Gabriele Cosmo (procbiasing-V11-00-01) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2021-12-10 Ben Morgan (procbiasing-V11-00-00) - Change to new Markdown History format diff --git a/source/processes/biasing/generic/History b/source/processes/biasing/generic/History index 593db95f5e..ed8e4ef4ab 100644 --- a/source/processes/biasing/generic/History +++ b/source/processes/biasing/generic/History @@ -1,9 +1,16 @@ # Category proc-biasgen History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-23 Gabriele Cosmo (proc-biasgen-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-08-31, Gabriele Cosmo (proc-biasgen-V11-00-01) +- Fixed defects reported by Coverity in G4BOptnLeadingParticle, to use auto&. ## 2021-12-10 Ben Morgan (proc-biasgen-V11-00-00) - Change to new Markdown History format diff --git a/source/processes/biasing/generic/src/G4BOptnLeadingParticle.cc b/source/processes/biasing/generic/src/G4BOptnLeadingParticle.cc index 55f7bee9da..dcc318c144 100644 --- a/source/processes/biasing/generic/src/G4BOptnLeadingParticle.cc +++ b/source/processes/biasing/generic/src/G4BOptnLeadingParticle.cc @@ -134,7 +134,7 @@ G4VParticleChange* G4BOptnLeadingParticle::ApplyFinalStateBiasing( const G4Biasi // ---- randomly select one surviving track per species // ---- for this surviving track, further apply a Russian roulette G4int nSecondaries = 0; // -- the number of secondaries to be returned - for ( auto typeAndTrack : typesAndTracks ) + for ( auto& typeAndTrack : typesAndTracks ) { size_t nTracks = (typeAndTrack.second).size(); G4Track* keptTrack; diff --git a/source/processes/biasing/generic/src/G4BiasingHelper.cc b/source/processes/biasing/generic/src/G4BiasingHelper.cc index a5fe41c10b..df2de535c7 100644 --- a/source/processes/biasing/generic/src/G4BiasingHelper.cc +++ b/source/processes/biasing/generic/src/G4BiasingHelper.cc @@ -36,7 +36,7 @@ G4bool G4BiasingHelper::ActivatePhysicsBiasing(G4ProcessManager* pmanager, G4VProcess* physicsProcess(0); G4ProcessVector* vprocess = pmanager->GetProcessList(); - for (std::size_t ip = 0 ; ip < vprocess->size() ; ++ip) + for (G4int ip = 0 ; ip < (G4int)vprocess->size() ; ++ip) { if ( (*vprocess)[ip]->GetProcessName() == physicsProcessToBias ) { @@ -95,7 +95,7 @@ G4bool G4BiasingHelper::ActivatePhysicsBiasing(G4ProcessManager* pmanager, void G4BiasingHelper::ActivateNonPhysicsBiasing(G4ProcessManager* pmanager, G4String nonPhysicsProcessName ) { - G4BiasingProcessInterface* biasingNonPhys(0); + G4BiasingProcessInterface* biasingNonPhys(nullptr); if ( nonPhysicsProcessName == "" ) biasingNonPhys = new G4BiasingProcessInterface(); else biasingNonPhys = new G4BiasingProcessInterface(nonPhysicsProcessName ); pmanager->AddProcess( biasingNonPhys, @@ -110,7 +110,7 @@ G4ParallelGeometriesLimiterProcess* G4BiasingHelper::AddLimiterProcess(G4Process G4ProcessVector* processList = pmanager->GetProcessList(); G4bool noInstance = true; - for (std::size_t i = 0 ; i < processList->size() ; ++i) + for (G4int i = 0 ; i < (G4int)processList->size() ; ++i) { G4VProcess* process = (*processList)[i]; if ( dynamic_cast< G4ParallelGeometriesLimiterProcess* >( process ) ) @@ -140,5 +140,4 @@ G4ParallelGeometriesLimiterProcess* G4BiasingHelper::AddLimiterProcess(G4Process } return toReturn; - } diff --git a/source/processes/biasing/generic/src/G4BiasingProcessInterface.cc b/source/processes/biasing/generic/src/G4BiasingProcessInterface.cc index 4ca48ab3a9..96585228d1 100644 --- a/source/processes/biasing/generic/src/G4BiasingProcessInterface.cc +++ b/source/processes/biasing/generic/src/G4BiasingProcessInterface.cc @@ -918,14 +918,17 @@ G4bool G4BiasingProcessInterface::IsFirstPostStepGPILInterface(G4bool physOnly) G4bool isFirst = true; const G4ProcessVector* pv = fProcessManager->GetPostStepProcessVector(typeGPIL); G4int thisIdx(-1); - for (std::size_t i = 0; i < pv->size(); ++i ) if ( (*pv)(i) == this ) { thisIdx = i; break; } + for (G4int i = 0; i < (G4int)pv->size(); ++i ) + if ( (*pv)(i) == this ) { thisIdx = i; break; } if ( thisIdx < 0 ) return false; // -- to ignore pure along processes for ( std::size_t i = 0; i < (fSharedData->fBiasingProcessInterfaces).size(); ++i ) { if ( (fSharedData->fBiasingProcessInterfaces)[i]->fIsPhysicsBasedBiasing || !physOnly ) { G4int thatIdx(-1); - for (std::size_t j = 0; j < pv->size(); ++j ) if ( (*pv)(j) == (fSharedData->fBiasingProcessInterfaces)[i] ) { thatIdx = j; break; } + for (G4int j = 0; j < (G4int)pv->size(); ++j ) + if ( (*pv)(j) == (fSharedData->fBiasingProcessInterfaces)[i] ) + { thatIdx = j; break; } if ( thatIdx >= 0 ) // -- to ignore pure along processes { if ( thisIdx > thatIdx ) @@ -945,14 +948,17 @@ G4bool G4BiasingProcessInterface::IsLastPostStepGPILInterface(G4bool physOnly) c G4bool isLast = true; const G4ProcessVector* pv = fProcessManager->GetPostStepProcessVector(typeGPIL); G4int thisIdx(-1); - for (std::size_t i = 0; i < pv->size(); ++i ) if ( (*pv)(i) == this ) { thisIdx = i; break; } + for (G4int i = 0; i < (G4int)pv->size(); ++i ) + if ( (*pv)(i) == this ) { thisIdx = i; break; } if ( thisIdx < 0 ) return false; // -- to ignore pure along processes for ( std::size_t i = 0; i < (fSharedData->fBiasingProcessInterfaces).size(); ++i ) { if ( (fSharedData->fBiasingProcessInterfaces)[i]->fIsPhysicsBasedBiasing || !physOnly ) { G4int thatIdx(-1); - for (std::size_t j = 0; j < pv->size(); ++j ) if ( (*pv)(j) == (fSharedData->fBiasingProcessInterfaces)[i] ) { thatIdx = j; break; } + for (G4int j = 0; j < (G4int)pv->size(); ++j ) + if ( (*pv)(j) == (fSharedData->fBiasingProcessInterfaces)[i] ) + { thatIdx = j; break; } if ( thatIdx >= 0 ) // -- to ignore pure along processes { if ( thisIdx < thatIdx ) @@ -972,14 +978,17 @@ G4bool G4BiasingProcessInterface::IsFirstPostStepDoItInterface(G4bool physOnly) G4bool isFirst = true; const G4ProcessVector* pv = fProcessManager->GetPostStepProcessVector(typeDoIt); G4int thisIdx(-1); - for (std::size_t i = 0; i < pv->size(); ++i ) if ( (*pv)(i) == this ) { thisIdx = i; break; } + for (G4int i = 0; i < (G4int)pv->size(); ++i ) + if ( (*pv)(i) == this ) { thisIdx = i; break; } if ( thisIdx < 0 ) return false; // -- to ignore pure along processes for ( std::size_t i = 0; i < (fSharedData->fBiasingProcessInterfaces).size(); ++i ) { if ( (fSharedData->fBiasingProcessInterfaces)[i]->fIsPhysicsBasedBiasing || !physOnly ) { G4int thatIdx(-1); - for (std::size_t j = 0; j < pv->size(); ++j ) if ( (*pv)(j) == (fSharedData->fBiasingProcessInterfaces)[i] ) { thatIdx = j; break; } + for (G4int j = 0; j < (G4int)pv->size(); ++j ) + if ( (*pv)(j) == (fSharedData->fBiasingProcessInterfaces)[i] ) + { thatIdx = j; break; } if ( thatIdx >= 0 ) // -- to ignore pure along processes { if ( thisIdx > thatIdx ) @@ -999,14 +1008,17 @@ G4bool G4BiasingProcessInterface::IsLastPostStepDoItInterface(G4bool physOnly) c G4bool isLast = true; const G4ProcessVector* pv = fProcessManager->GetPostStepProcessVector(typeDoIt); G4int thisIdx(-1); - for (std::size_t i = 0; i < pv->size(); ++i ) if ( (*pv)(i) == this ) { thisIdx = i; break; } + for (G4int i = 0; i < (G4int)pv->size(); ++i ) + if ( (*pv)(i) == this ) { thisIdx = i; break; } if ( thisIdx < 0 ) return false; // -- to ignore pure along processes for ( std::size_t i = 0; i < (fSharedData->fBiasingProcessInterfaces).size(); ++i ) { if ( (fSharedData->fBiasingProcessInterfaces)[i]->fIsPhysicsBasedBiasing || !physOnly ) { G4int thatIdx(-1); - for (std::size_t j = 0; j < pv->size(); ++j ) if ( (*pv)(j) == (fSharedData->fBiasingProcessInterfaces)[i] ) { thatIdx = j; break; } + for (G4int j = 0; j < (G4int)pv->size(); ++j ) + if ( (*pv)(j) == (fSharedData->fBiasingProcessInterfaces)[i] ) + { thatIdx = j; break; } if ( thatIdx >= 0 ) // -- to ignore pure along processes { if ( thisIdx < thatIdx ) @@ -1084,26 +1096,26 @@ void G4BiasingProcessInterface::ReorderBiasingVectorAsGPIL() ( fSharedData -> fPublicNonPhysicsBiasingProcessInterfaces ) . clear(); const G4ProcessVector* pv = fProcessManager->GetPostStepProcessVector(typeGPIL); - for (std::size_t i = 0; i < pv->size(); ++i ) + for (G4int i = 0; i < (G4int)pv->size(); ++i ) { for ( std::size_t j = 0; j < tmpProcess.size(); ++j ) - { - if ( (*pv)(i) == tmpProcess[j] ) - { - ( fSharedData -> fBiasingProcessInterfaces ) . push_back( tmpProcess[j] ); - ( fSharedData -> fPublicBiasingProcessInterfaces ) . push_back( tmpProcess[j] ); - if ( tmpProcess[j] -> fIsPhysicsBasedBiasing ) - { - ( fSharedData -> fPhysicsBiasingProcessInterfaces ) . push_back( tmpProcess[j] ); - ( fSharedData -> fPublicPhysicsBiasingProcessInterfaces ) . push_back( tmpProcess[j] ); - } - else - { - ( fSharedData -> fNonPhysicsBiasingProcessInterfaces ) . push_back( tmpProcess[j] ); - ( fSharedData -> fPublicNonPhysicsBiasingProcessInterfaces ) . push_back( tmpProcess[j] ); - } - break; - } - } + { + if ( (*pv)(i) == tmpProcess[j] ) + { + ( fSharedData -> fBiasingProcessInterfaces ) . push_back( tmpProcess[j] ); + ( fSharedData -> fPublicBiasingProcessInterfaces ) . push_back( tmpProcess[j] ); + if ( tmpProcess[j] -> fIsPhysicsBasedBiasing ) + { + ( fSharedData -> fPhysicsBiasingProcessInterfaces ) . push_back( tmpProcess[j] ); + ( fSharedData -> fPublicPhysicsBiasingProcessInterfaces ) . push_back( tmpProcess[j] ); + } + else + { + ( fSharedData -> fNonPhysicsBiasingProcessInterfaces ) . push_back( tmpProcess[j] ); + ( fSharedData -> fPublicNonPhysicsBiasingProcessInterfaces ) . push_back( tmpProcess[j] ); + } + break; + } + } } } diff --git a/source/processes/biasing/importance/History b/source/processes/biasing/importance/History index 0a7b6bb0cc..5e733828a6 100644 --- a/source/processes/biasing/importance/History +++ b/source/processes/biasing/importance/History @@ -1,9 +1,14 @@ # Category proc-biasimp History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-10-05 Gabriele Cosmo (proc-biasimp-V11-00-01) +- Fixed compilation warning on Intel/icx compiler for variable set + but not used in G4GeometrySampler. ## 2021-12-10 Ben Morgan (proc-biasimp-V11-00-00) - Change to new Markdown History format diff --git a/source/processes/biasing/importance/src/G4GeometrySampler.cc b/source/processes/biasing/importance/src/G4GeometrySampler.cc index ce0fd72e36..1d3fc1c407 100644 --- a/source/processes/biasing/importance/src/G4GeometrySampler.cc +++ b/source/processes/biasing/importance/src/G4GeometrySampler.cc @@ -286,19 +286,17 @@ void G4GeometrySampler::Configure() void G4GeometrySampler::AddProcess() { - G4VSamplerConfigurator *preConf = 0; - G4int i = 0; - for (G4Configurators::iterator it = fConfigurators.begin(); - it != fConfigurators.end(); it++) + G4VSamplerConfigurator *preConf = nullptr; + for (auto it = fConfigurators.cbegin(); + it != fConfigurators.cend(); ++it) { - i++; G4VSamplerConfigurator *currConf =*it; currConf->Configure(preConf); preConf = *it; } - if (fWeightCutOffConfigurator) + if (fWeightCutOffConfigurator != nullptr) { - fWeightCutOffConfigurator->Configure(0); + fWeightCutOffConfigurator->Configure(nullptr); } return; diff --git a/source/processes/biasing/management/History b/source/processes/biasing/management/History index d0de8b0db7..47cfe447c9 100644 --- a/source/processes/biasing/management/History +++ b/source/processes/biasing/management/History @@ -1,9 +1,13 @@ # Category proc-biasmng History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-23 Gabriele Cosmo (proc-biasmng-V11-00-01) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2021-12-10 Ben Morgan (proc-biasmng-V11-00-00) - Change to new Markdown History format diff --git a/source/processes/biasing/management/src/G4BiasingOperationManager.cc b/source/processes/biasing/management/src/G4BiasingOperationManager.cc index 6745ede6bb..66ec7f0f3e 100644 --- a/source/processes/biasing/management/src/G4BiasingOperationManager.cc +++ b/source/processes/biasing/management/src/G4BiasingOperationManager.cc @@ -56,10 +56,8 @@ std::size_t G4BiasingOperationManager::Register(G4VBiasingOperation* option) G4VBiasingOperation* G4BiasingOperationManager::GetBiasingOperation(std::size_t optionID) { - if (optionID < fBiasingOperationVector.Size()) return fBiasingOperationVector[optionID]; - else return 0; + if (optionID < fBiasingOperationVector.Size()) + return fBiasingOperationVector[(G4int)optionID]; + else + return nullptr; } - - - - diff --git a/source/processes/biasing/management/src/G4ProcessPlacer.cc b/source/processes/biasing/management/src/G4ProcessPlacer.cc index a6c006f6ae..562a90ba96 100644 --- a/source/processes/biasing/management/src/G4ProcessPlacer.cc +++ b/source/processes/biasing/management/src/G4ProcessPlacer.cc @@ -223,13 +223,13 @@ void G4ProcessPlacer::PrintProcVec(G4ProcessVector* processVec) G4Exception("G4ProcessPlacer::G4ProcessPlacer()", "InvalidArgument", FatalException, "NULL pointer to process-vector !"); } - size_t len = processVec->length(); + G4int len = (G4int)processVec->length(); if (len==0) { G4Exception("G4ProcessPlacer::G4ProcessPlacer()", "InvalidSetup", FatalException, "Length of process-vector is zero !"); } - for (size_t i=0; iStartRun(); + for ( G4int i = 0; i < (G4int)G4VBiasingOperator::fOperators.Size(); ++i ) + G4VBiasingOperator::fOperators[i]->StartRun(); } fPreviousState = requestedState; diff --git a/source/processes/cuts/History b/source/processes/cuts/History index 1a3377df04..e95e27eb1d 100644 --- a/source/processes/cuts/History +++ b/source/processes/cuts/History @@ -1,8 +1,19 @@ # Category proccuts History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-16 Gabriele Cosmo (proccuts-V11-00-06) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-06-01 Vladimir Ivantchenko (proccuts-V11-00-05) +- G4VRangeToEnergyConverter - do not set lock inside private static + method; code clean-up +- G4ProductionCuts - removed unnecessary thread local variables; + code clean-up and simplified ## 2022-06-13 Sergio Losilla (proccuts-V11-00-04) - Added warning when trying to set cuts for particles other than diff --git a/source/processes/cuts/include/G4MCCIndexConversionTable.hh b/source/processes/cuts/include/G4MCCIndexConversionTable.hh index f9b6411a60..274ed309d4 100644 --- a/source/processes/cuts/include/G4MCCIndexConversionTable.hh +++ b/source/processes/cuts/include/G4MCCIndexConversionTable.hh @@ -92,7 +92,7 @@ void G4MCCIndexConversionTable::SetNewIndex(std::size_t index, { // set the index in the current production cut table // for the indicated MCC in the file - if (index < vecNewIndex.size()) vecNewIndex[index] = new_value; + if (index < vecNewIndex.size()) vecNewIndex[index] = (G4int)new_value; } inline diff --git a/source/processes/cuts/include/G4ProductionCuts.hh b/source/processes/cuts/include/G4ProductionCuts.hh index fbb8e74c7e..74ca03f3de 100644 --- a/source/processes/cuts/include/G4ProductionCuts.hh +++ b/source/processes/cuts/include/G4ProductionCuts.hh @@ -91,7 +91,7 @@ class G4ProductionCuts void SetProductionCuts(std::vector&); // Set the vector of production cuts in range for all particles - const std::vector& GetProductionCuts() const; + const std::vector& GetProductionCuts() const; // Get the vector of production cuts in range for all particles G4bool IsModified() const; @@ -107,14 +107,7 @@ class G4ProductionCuts protected: std::vector fRangeCuts; - G4bool isModified = true; - - private: - - static G4ThreadLocal G4ParticleDefinition* gammaDef; - static G4ThreadLocal G4ParticleDefinition* electDef; - static G4ThreadLocal G4ParticleDefinition* positDef; - static G4ThreadLocal G4ParticleDefinition* protonDef; // for proton + G4bool isModified = true; }; #endif diff --git a/source/processes/cuts/src/G4PhysicsTableHelper.cc b/source/processes/cuts/src/G4PhysicsTableHelper.cc index 38a7a766a9..e07db56167 100644 --- a/source/processes/cuts/src/G4PhysicsTableHelper.cc +++ b/source/processes/cuts/src/G4PhysicsTableHelper.cc @@ -103,7 +103,7 @@ G4PhysicsTableHelper::PreparePhysicsTable(G4PhysicsTable* physTable) for (std::size_t idx = 0; idx GetMaterialCutsCouple(idx); + const G4MaterialCutsCouple* mcc = cutTable->GetMaterialCutsCouple((G4int)idx); // check if re-calculation of the physics vector is needed // MCC is not used diff --git a/source/processes/cuts/src/G4ProductionCuts.cc b/source/processes/cuts/src/G4ProductionCuts.cc index 16d7da585c..5ca4d564ec 100644 --- a/source/processes/cuts/src/G4ProductionCuts.cc +++ b/source/processes/cuts/src/G4ProductionCuts.cc @@ -33,14 +33,9 @@ #include -G4ThreadLocal G4ParticleDefinition* G4ProductionCuts::gammaDef = nullptr; -G4ThreadLocal G4ParticleDefinition* G4ProductionCuts::electDef = nullptr; -G4ThreadLocal G4ParticleDefinition* G4ProductionCuts::positDef = nullptr; -G4ThreadLocal G4ParticleDefinition* G4ProductionCuts::protonDef = nullptr; - G4ProductionCuts::G4ProductionCuts() { - for (G4int i=0; i< NumberOfG4CutIndex; ++i) + for (G4int i=0; i=0) && (index=0 && indexGetParticleName()=="gamma") - { gammaDef = (G4ParticleDefinition*) ptcl; } - if(electDef==nullptr && ptcl->GetParticleName()=="e-") - { electDef = (G4ParticleDefinition*) ptcl; } - if(positDef==nullptr && ptcl->GetParticleName()=="e+") - { positDef = (G4ParticleDefinition*) ptcl; } - if(protonDef==nullptr && ptcl->GetParticleName()=="proton") - { protonDef = (G4ParticleDefinition*) ptcl; } - - G4int index; - if(ptcl==(const G4ParticleDefinition*) gammaDef) { index = 0; } - else if(ptcl==(const G4ParticleDefinition*) electDef) { index = 1; } - else if(ptcl==(const G4ParticleDefinition*) positDef) { index = 2; } - else if(ptcl==(const G4ParticleDefinition*) protonDef) { index = 3; } - else { index = -1; } +G4int G4ProductionCuts::GetIndex(const G4ParticleDefinition* ptr) +{ + G4int pdg = (nullptr == ptr) ? 0 : ptr->GetPDGEncoding(); + G4int index = -1; + if (pdg == 22) { index = 0; } + else if (pdg == 11) { index = 1; } + else if (pdg == -11) { index = 2; } + else if (pdg == 2212) { index = 3; } return index; } void G4ProductionCuts::SetProductionCuts(std::vector& cut) { - G4int vSize = cut.size(); + G4int vSize = (G4int)cut.size(); if (vSize != NumberOfG4CutIndex) { #ifdef G4VERBOSE - if ( G4ProductionCutsTable::GetProductionCutsTable()->GetVerboseLevel()>1) + if (G4ProductionCutsTable::GetProductionCutsTable()->GetVerboseLevel() > 1) { - G4cerr << "G4ProductionCuts::SetProductionCuts "; - G4cerr << " The size of given cut value vector [=" << vSize << "] " + G4cout << "G4ProductionCuts::SetProductionCuts "; + G4cout << " The size of given cut value vector [=" << vSize << "] " << " is not consistent with number of CutIndex [=" << NumberOfG4CutIndex << G4endl; } @@ -211,7 +187,7 @@ void G4ProductionCuts::SetProductionCuts(std::vector& cut) JustWarning, "Given vector size is inconsistent "); if (NumberOfG4CutIndexSetIndex(coupleTable.size()-1); + aCouple->SetIndex(G4int(coupleTable.size()-1)); } // Register this couple to the region @@ -247,7 +247,7 @@ void G4ProductionCutsTable::UpdateCoupleTable(G4VPhysicalVolume* /*currWorld*/) { for(std::size_t ptcl=0; ptcl< NumberOfG4CutIndex; ++ptcl) { - G4double rCut = aCut->GetProductionCut(ptcl); + G4double rCut = aCut->GetProductionCut((G4int)ptcl); (*(rangeCutTable[ptcl]))[idx] = rCut; // if(converters[ptcl] && (*cItr)->IsUsed()) if(converters[ptcl]) @@ -560,7 +560,7 @@ G4bool G4ProductionCutsTable::StoreMaterialInfo(const G4String& directory, const G4MaterialTable* matTable = G4Material::GetMaterialTable(); // number of materials in the table - G4int numberOfMaterial = matTable->size(); + G4int numberOfMaterial = (G4int)matTable->size(); if (ascii) { @@ -598,7 +598,7 @@ G4bool G4ProductionCutsTable::StoreMaterialInfo(const G4String& directory, } for (i=0; iGetProductionCut(idx); + cutValues[idx] = aCut->GetProductionCut((G4int)idx); } // material/region info G4String materialName = aCouple->GetMaterial()->GetName(); @@ -895,14 +895,14 @@ G4ProductionCutsTable::StoreMaterialCutsCoupleInfo(const G4String& directory, for (i=0; iGetProductionCut(j)) + if (cutValues[j] != aCut->GetProductionCut((G4int)j)) { - G4double ratio = cutValues[j]/aCut->GetProductionCut(j); + G4double ratio = cutValues[j]/aCut->GetProductionCut((G4int)j); fRatio = fRatio && (0.999(idx) * G4VRangeToEnergyConverter::sEnergy = nullptr; @@ -64,7 +64,7 @@ G4VRangeToEnergyConverter::G4VRangeToEnergyConverter() // this method defines lock itself if(isFirstInstance) { - FillEnergyVector(1*CLHEP::keV, 10.0*CLHEP::GeV); + FillEnergyVector(CLHEP::keV, 10.0*CLHEP::GeV); } } @@ -75,8 +75,8 @@ G4VRangeToEnergyConverter::~G4VRangeToEnergyConverter() { delete sEnergy; sEnergy = nullptr; - sEmin = 0.; - sEmax = 10000.; + sEmin = CLHEP::keV; + sEmax = 10.*CLHEP::GeV; } } @@ -161,20 +161,15 @@ void G4VRangeToEnergyConverter::FillEnergyVector(const G4double emin, { if(emin != sEmin || emax != sEmax || nullptr == sEnergy) { - G4AutoLock l(&theREMutex); - if(emin != sEmin || emax != sEmax || nullptr == sEnergy) - { - sEmin = emin; - sEmax = emax; - sNbin = sNbinPerDecade*static_cast(std::log10(emax/emin)); - if(nullptr == sEnergy) { sEnergy = new std::vector; } - sEnergy->resize(sNbin + 1); - (*sEnergy)[0] = emin; - (*sEnergy)[sNbin] = emax; - G4double fact = G4Log(emax/emin)/sNbin; - for(G4int i=1; i; } + sEnergy->resize(sNbin + 1); + (*sEnergy)[0] = emin; + (*sEnergy)[sNbin] = emax; + G4double fact = G4Log(emax/emin)/sNbin; + for(G4int i=1; iGetAtomicNumDensityVector(); // fill absorption length vector - G4int nelm = material->GetNumberOfElements(); + G4int nelm = (G4int)material->GetNumberOfElements(); G4double range1 = 0.0; G4double range2 = 0.0; G4double e1 = 0.0; @@ -224,7 +219,7 @@ G4VRangeToEnergyConverter::ConvertForElectron(const G4double rangeCut, const G4double* dens = material->GetAtomicNumDensityVector(); // fill absorption length vector - G4int nelm = material->GetNumberOfElements(); + G4int nelm = (G4int)material->GetNumberOfElements(); G4double dedx1 = 0.0; G4double dedx2 = 0.0; G4double range1 = 0.0; diff --git a/source/processes/electromagnetic/History b/source/processes/electromagnetic/History index 29e0caf431..484d75e3eb 100644 --- a/source/processes/electromagnetic/History +++ b/source/processes/electromagnetic/History @@ -1,8 +1,16 @@ # Category em History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-23 Gabriele Cosmo (em-V11-00-03) +- Fixed more compilation warnings for implicit type conversions. + +## 2022-11-18 Gabriele Cosmo (em-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2022-05-16 Guilherme Amadio (em-V11-00-01) - Replace getenv() calls for data variables with G4FindDataDir() diff --git a/source/processes/electromagnetic/adjoint/History b/source/processes/electromagnetic/adjoint/History index 872960516e..fb6fc4c89f 100644 --- a/source/processes/electromagnetic/adjoint/History +++ b/source/processes/electromagnetic/adjoint/History @@ -1,9 +1,19 @@ # Category emadjoint History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-23 Gabriele Cosmo (emadjoint-V11-00-05) +- Fixed more compilation warnings for implicit type conversions. + +## 2022-11-18 Gabriele Cosmo (emadjoint-V11-00-04) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-08-31 Gabriele Cosmo (emadjoint-V11-00-03) +- Fixed defects reported by Coverity in G4AdjointCSManager, to use auto&. ## 2022-03-07 Vladimir Ivanchenko (emadjoint-V11-00-02) - G4AdjointComptonModel, G4AdjointCSManager - used updated interface diff --git a/source/processes/electromagnetic/adjoint/include/G4AdjointCSManager.hh b/source/processes/electromagnetic/adjoint/include/G4AdjointCSManager.hh index 219e17adb7..5906d99acf 100644 --- a/source/processes/electromagnetic/adjoint/include/G4AdjointCSManager.hh +++ b/source/processes/electromagnetic/adjoint/include/G4AdjointCSManager.hh @@ -67,7 +67,7 @@ class G4AdjointCSManager // Registration of the different models and processes - size_t RegisterEmAdjointModel(G4VEmAdjointModel*); + std::size_t RegisterEmAdjointModel(G4VEmAdjointModel*); void RegisterEmProcess(G4VEmProcess* aProcess, G4ParticleDefinition* aPartDef); @@ -90,7 +90,7 @@ class G4AdjointCSManager G4double GetTotalForwardCS(G4ParticleDefinition* aPartDef, G4double Ekin, const G4MaterialCutsCouple* aCouple); - G4double GetAdjointSigma(G4double Ekin_nuc, size_t index_model, + G4double GetAdjointSigma(G4double Ekin_nuc, std::size_t index_model, G4bool is_scat_proj_to_proj, const G4MaterialCutsCouple* aCouple); @@ -195,7 +195,7 @@ class G4AdjointCSManager std::vector fAdjointModels; - std::vector fIndexOfAdjointEMModelInAction; + std::vector fIndexOfAdjointEMModelInAction; std::vector fIsScatProjToProj; std::vector> fLastAdjointCSVsModelsAndElements; @@ -224,8 +224,8 @@ class G4AdjointCSManager G4double fMassRatio = 1.; // ion G4double fLastCSCorrectionFactor = 1.; - size_t fCurrentParticleIndex = 0; - size_t fCurrentMatIndex = 0; + std::size_t fCurrentParticleIndex = 0; + std::size_t fCurrentMatIndex = 0; G4bool fCSMatricesBuilt = false; G4bool fSigmaTableBuilt = false; diff --git a/source/processes/electromagnetic/adjoint/include/G4VEmAdjointModel.hh b/source/processes/electromagnetic/adjoint/include/G4VEmAdjointModel.hh index 4df0eda86f..a6c2a28a0f 100644 --- a/source/processes/electromagnetic/adjoint/include/G4VEmAdjointModel.hh +++ b/source/processes/electromagnetic/adjoint/include/G4VEmAdjointModel.hh @@ -227,7 +227,7 @@ class G4VEmAdjointModel G4double DiffCrossSectionFunction2(G4double kinEnergyProj); // General methods to sample secondary energy - G4double SampleAdjSecEnergyFromCSMatrix(size_t MatrixIndex, + G4double SampleAdjSecEnergyFromCSMatrix(std::size_t MatrixIndex, G4double prim_energy, G4bool isScatProjToProj); @@ -295,7 +295,7 @@ class G4VEmAdjointModel G4int fASelectedNucleus = 0; G4int fZSelectedNucleus = 0; - size_t fCSMatrixUsed = 0; // Index of crosssection matrices used + std::size_t fCSMatrixUsed = 0; // Index of crosssection matrices used G4bool fSecondPartSameType = false; G4bool fInModelWeightCorr = diff --git a/source/processes/electromagnetic/adjoint/src/G4AdjointCSManager.cc b/source/processes/electromagnetic/adjoint/src/G4AdjointCSManager.cc index c57000e7cf..ea36055e3e 100644 --- a/source/processes/electromagnetic/adjoint/src/G4AdjointCSManager.cc +++ b/source/processes/electromagnetic/adjoint/src/G4AdjointCSManager.cc @@ -75,7 +75,7 @@ G4AdjointCSManager::G4AdjointCSManager() /////////////////////////////////////////////////////// G4AdjointCSManager::~G4AdjointCSManager() { - for (auto p : fAdjointCSMatricesForProdToProj) { + for (auto& p : fAdjointCSMatricesForProdToProj) { for (auto p1 : p) { if (p1) { delete p1; @@ -86,7 +86,7 @@ G4AdjointCSManager::~G4AdjointCSManager() } fAdjointCSMatricesForProdToProj.clear(); - for (auto p : fAdjointCSMatricesForScatProjToProj) { + for (auto& p : fAdjointCSMatricesForScatProjToProj) { for (auto p1 : p) { if (p1) { delete p1; @@ -147,7 +147,7 @@ G4AdjointCSManager::~G4AdjointCSManager() } /////////////////////////////////////////////////////// -size_t G4AdjointCSManager::RegisterEmAdjointModel(G4VEmAdjointModel* aModel) +std::size_t G4AdjointCSManager::RegisterEmAdjointModel(G4VEmAdjointModel* aModel) { fAdjointModels.push_back(aModel); fSigmaTableForAdjointModelScatProjToProj.push_back(new G4PhysicsTable); @@ -165,7 +165,7 @@ void G4AdjointCSManager::RegisterEmProcess(G4VEmProcess* aProcess, { RegisterAdjointParticle(anAdjPartDef); - for(size_t i = 0; i < fAdjointParticlesInAction.size(); ++i) + for(std::size_t i = 0; i < fAdjointParticlesInAction.size(); ++i) { if(anAdjPartDef->GetParticleName() == fAdjointParticlesInAction[i]->GetParticleName()) @@ -183,7 +183,7 @@ void G4AdjointCSManager::RegisterEnergyLossProcess( if(anAdjPartDef && aProcess) { RegisterAdjointParticle(anAdjPartDef); - for(size_t i = 0; i < fAdjointParticlesInAction.size(); ++i) + for(std::size_t i = 0; i < fAdjointParticlesInAction.size(); ++i) { if(anAdjPartDef->GetParticleName() == fAdjointParticlesInAction[i]->GetParticleName()) @@ -323,11 +323,11 @@ void G4AdjointCSManager::BuildTotalSigmaTables() G4ProductionCutsTable::GetProductionCutsTable(); // Prepare the Sigma table for all AdjointEMModel, will be filled later on - for(size_t i = 0; i < fAdjointModels.size(); ++i) + for(std::size_t i = 0; i < fAdjointModels.size(); ++i) { fSigmaTableForAdjointModelScatProjToProj[i]->clearAndDestroy(); fSigmaTableForAdjointModelProdToProj[i]->clearAndDestroy(); - for(size_t j = 0; j < theCoupleTable->GetTableSize(); ++j) + for(std::size_t j = 0; j < theCoupleTable->GetTableSize(); ++j) { fSigmaTableForAdjointModelScatProjToProj[i]->push_back( new G4PhysicsLogVector(fTmin, fTmax, fNbins)); @@ -336,7 +336,7 @@ void G4AdjointCSManager::BuildTotalSigmaTables() } } - for(size_t i = 0; i < fAdjointParticlesInAction.size(); ++i) + for(std::size_t i = 0; i < fAdjointParticlesInAction.size(); ++i) { G4ParticleDefinition* thePartDef = fAdjointParticlesInAction[i]; DefineCurrentParticle(thePartDef); @@ -347,29 +347,29 @@ void G4AdjointCSManager::BuildTotalSigmaTables() fEkinofFwdSigmaMax[i].clear(); fEkinofAdjSigmaMax[i].clear(); - for(size_t j = 0; j < theCoupleTable->GetTableSize(); ++j) + for(std::size_t j = 0; j < theCoupleTable->GetTableSize(); ++j) { const G4MaterialCutsCouple* couple = - theCoupleTable->GetMaterialCutsCouple(j); + theCoupleTable->GetMaterialCutsCouple((G4int)j); // make first the total fwd CS table for FwdProcess G4PhysicsVector* aVector = new G4PhysicsLogVector(fTmin, fTmax, fNbins); G4bool Emin_found = false; G4double sigma_max = 0.; G4double e_sigma_max = 0.; - for(size_t l = 0; l < fNbins; ++l) + for(std::size_t l = 0; l < fNbins; ++l) { G4double totCS = 0.; G4double e = aVector->Energy(l); - for(size_t k = 0; k < fForwardProcesses[i]->size(); ++k) + for(std::size_t k = 0; k < fForwardProcesses[i]->size(); ++k) { totCS += (*fForwardProcesses[i])[k]->GetCrossSection(e, couple); } - for(size_t k = 0; k < fForwardLossProcesses[i]->size(); ++k) + for(std::size_t k = 0; k < fForwardLossProcesses[i]->size(); ++k) { if(thePartDef == fAdjIon) { // e is considered already as the scaled energy - size_t mat_index = couple->GetIndex(); + std::size_t mat_index = couple->GetIndex(); G4VEmModel* currentModel = (*fForwardLossProcesses[i])[k]->SelectModelForMaterial(e, mat_index); @@ -405,7 +405,7 @@ void G4AdjointCSManager::BuildTotalSigmaTables() sigma_max = 0; e_sigma_max = 0.; G4PhysicsVector* aVector1 = new G4PhysicsLogVector(fTmin, fTmax, fNbins); - for(size_t eindex = 0; eindex < fNbins; ++eindex) + for(std::size_t eindex = 0; eindex < fNbins; ++eindex) { G4double e = aVector1->Energy(eindex); G4double totCS = ComputeTotalAdjointCS( @@ -457,7 +457,7 @@ G4double G4AdjointCSManager::GetTotalForwardCS( /////////////////////////////////////////////////////// G4double G4AdjointCSManager::GetAdjointSigma( - G4double Ekin_nuc, size_t index_model, G4bool is_scat_proj_to_proj, + G4double Ekin_nuc, std::size_t index_model, G4bool is_scat_proj_to_proj, const G4MaterialCutsCouple* aCouple) { DefineCurrentMaterial(aCouple); @@ -618,13 +618,13 @@ G4double G4AdjointCSManager::ComputeAdjointCS( need_to_compute = true; } - size_t ind = 0; + std::size_t ind = 0; if(!need_to_compute) { need_to_compute = true; - for(size_t i = 0; i < fIndexOfAdjointEMModelInAction.size(); ++i) + for(std::size_t i = 0; i < fIndexOfAdjointEMModelInAction.size(); ++i) { - size_t ind1 = fIndexOfAdjointEMModelInAction[i]; + std::size_t ind1 = fIndexOfAdjointEMModelInAction[i]; if(aModel == fAdjointModels[ind1] && isScatProjToProj == fIsScatProjToProj[i]) { @@ -637,8 +637,8 @@ G4double G4AdjointCSManager::ComputeAdjointCS( if(need_to_compute) { - size_t ind_model = 0; - for(size_t i = 0; i < fAdjointModels.size(); ++i) + std::size_t ind_model = 0; + for(std::size_t i = 0; i < fAdjointModels.size(); ++i) { if(aModel == fAdjointModels[i]) { @@ -659,7 +659,7 @@ G4double G4AdjointCSManager::ComputeAdjointCS( } else if(aModel->GetUseMatrixPerElement()) { - size_t n_el = aMaterial->GetNumberOfElements(); + std::size_t n_el = aMaterial->GetNumberOfElements(); if(aModel->GetUseOnlyOneMatrixForAllElements()) { G4AdjointCSMatrix* theCSMatrix; @@ -673,7 +673,7 @@ G4double G4AdjointCSManager::ComputeAdjointCS( if(PrimEnergy > Tlow) CS = ComputeAdjointCS(PrimEnergy, theCSMatrix, Tlow); G4double factor = 0.; - for(size_t i = 0; i < n_el; ++i) + for(G4int i = 0; i < (G4int)n_el; ++i) { // this could be computed only once factor += aMaterial->GetElement(i)->GetZ() * aMaterial->GetVecNbOfAtomsPerVolume()[i]; @@ -683,9 +683,9 @@ G4double G4AdjointCSManager::ComputeAdjointCS( } else { - for(size_t i = 0; i < n_el; ++i) + for(G4int i = 0; i < (G4int)n_el; ++i) { - size_t ind_el = aMaterial->GetElement(i)->GetIndex(); + std::size_t ind_el = aMaterial->GetElement(i)->GetIndex(); G4AdjointCSMatrix* theCSMatrix; if(isScatProjToProj) { @@ -704,7 +704,7 @@ G4double G4AdjointCSManager::ComputeAdjointCS( } else { - size_t ind_mat = aMaterial->GetIndex(); + std::size_t ind_mat = aMaterial->GetIndex(); G4AdjointCSMatrix* theCSMatrix; if(isScatProjToProj) { @@ -739,8 +739,8 @@ G4Element* G4AdjointCSManager::SampleElementFromCSMatrices( G4double CS = ComputeAdjointCS(aMaterial, aModel, PrimEnergy, Tcut, isScatProjToProj, CS_Vs_Element); G4double SumCS = 0.; - size_t ind = 0; - for(size_t i = 0; i < CS_Vs_Element.size(); ++i) + std::size_t ind = 0; + for(std::size_t i = 0; i < CS_Vs_Element.size(); ++i) { SumCS += CS_Vs_Element[i]; if(G4UniformRand() <= SumCS / CS) @@ -750,7 +750,7 @@ G4Element* G4AdjointCSManager::SampleElementFromCSMatrices( } } - return const_cast(aMaterial->GetElement(ind)); + return const_cast(aMaterial->GetElement((G4int)ind)); } /////////////////////////////////////////////////////// @@ -765,7 +765,7 @@ G4double G4AdjointCSManager::ComputeTotalAdjointCS( std::vector CS_Vs_Element; G4double CS; G4VEmAdjointModel* adjModel = nullptr; - for(size_t i = 0; i < fAdjointModels.size(); ++i) + for(std::size_t i = 0; i < fAdjointModels.size(); ++i) { G4double Tlow = 0.; adjModel = fAdjointModels[i]; @@ -775,7 +775,7 @@ G4double G4AdjointCSManager::ComputeTotalAdjointCS( { G4ParticleDefinition* theDirSecondPartDef = GetForwardParticleEquivalent( adjModel->GetAdjointEquivalentOfDirectSecondaryParticleDefinition()); - size_t idx = 56; + std::size_t idx = 56; if(theDirSecondPartDef->GetParticleName() == "gamma") idx = 0; else if(theDirSecondPartDef->GetParticleName() == "e-") @@ -861,7 +861,7 @@ G4AdjointCSManager::BuildCrossSectionsModelAndElement(G4VEmAdjointModel* aModel, std::vector* log_CSVec = aMat[1]; G4double log_adjointCS = log_CSVec->back(); // normalise CSVec such that it becomes a probability vector - for(size_t j = 0; j < log_CSVec->size(); ++j) + for(std::size_t j = 0; j < log_CSVec->size(); ++j) { if(j == 0) (*log_CSVec)[j] = 0.; @@ -896,7 +896,7 @@ G4AdjointCSManager::BuildCrossSectionsModelAndElement(G4VEmAdjointModel* aModel, std::vector* log_CSVec = aMat[1]; G4double log_adjointCS = log_CSVec->back(); // normalise CSVec such that it becomes a probability vector - for(size_t j = 0; j < log_CSVec->size(); ++j) + for(std::size_t j = 0; j < log_CSVec->size(); ++j) { if(j == 0) (*log_CSVec)[j] = 0.; @@ -957,7 +957,7 @@ G4AdjointCSManager::BuildCrossSectionsModelAndMaterial( G4double log_adjointCS = log_CSVec->back(); // normalise CSVec such that it becomes a probability vector - for(size_t j = 0; j < log_CSVec->size(); ++j) + for(std::size_t j = 0; j < log_CSVec->size(); ++j) { if(j == 0) (*log_CSVec)[j] = 0.; @@ -994,7 +994,7 @@ G4AdjointCSManager::BuildCrossSectionsModelAndMaterial( std::vector* log_CSVec = aMat[1]; G4double log_adjointCS = log_CSVec->back(); - for(size_t j = 0; j < log_CSVec->size(); ++j) + for(std::size_t j = 0; j < log_CSVec->size(); ++j) { if(j == 0) (*log_CSVec)[j] = 0.; @@ -1075,7 +1075,7 @@ void G4AdjointCSManager::DefineCurrentParticle( if(aPartDef == fAdjIon) fMassRatio = proton_mass_c2 / aPartDef->GetPDGMass(); fCurrentParticleIndex = 1000000; - for(size_t i = 0; i < fAdjointParticlesInAction.size(); ++i) + for(std::size_t i = 0; i < fAdjointParticlesInAction.size(); ++i) { if(aPartDef == fAdjointParticlesInAction[i]) fCurrentParticleIndex = i; @@ -1102,7 +1102,7 @@ G4double G4AdjointCSManager::ComputeAdjointCS( G4AdjointInterpolator* theInterpolator = G4AdjointInterpolator::GetInstance(); - size_t ind = + std::size_t ind = theInterpolator->FindPositionForLogVector(log_E, *theLogPrimEnergyVector); G4double aLogPrimEnergy1, aLogPrimEnergy2; G4double aLogCS1, aLogCS2; @@ -1111,13 +1111,13 @@ G4double G4AdjointCSManager::ComputeAdjointCS( std::vector* aLogSecondEnergyVector2 = nullptr; std::vector* aLogProbVector1 = nullptr; std::vector* aLogProbVector2 = nullptr; - std::vector* aLogProbVectorIndex1 = nullptr; - std::vector* aLogProbVectorIndex2 = nullptr; + std::vector* aLogProbVectorIndex1 = nullptr; + std::vector* aLogProbVectorIndex2 = nullptr; - anAdjointCSMatrix->GetData(ind, aLogPrimEnergy1, aLogCS1, log01, + anAdjointCSMatrix->GetData((G4int)ind, aLogPrimEnergy1, aLogCS1, log01, aLogSecondEnergyVector1, aLogProbVector1, aLogProbVectorIndex1); - anAdjointCSMatrix->GetData(ind + 1, aLogPrimEnergy2, aLogCS2, log02, + anAdjointCSMatrix->GetData(G4int(ind + 1), aLogPrimEnergy2, aLogCS2, log02, aLogSecondEnergyVector2, aLogProbVector2, aLogProbVectorIndex2); if (! (aLogProbVector1 && aLogProbVector2 && diff --git a/source/processes/electromagnetic/adjoint/src/G4VEmAdjointModel.cc b/source/processes/electromagnetic/adjoint/src/G4VEmAdjointModel.cc index 63ae3878e8..3acdaa33ac 100644 --- a/source/processes/electromagnetic/adjoint/src/G4VEmAdjointModel.cc +++ b/source/processes/electromagnetic/adjoint/src/G4VEmAdjointModel.cc @@ -411,7 +411,7 @@ G4VEmAdjointModel::ComputeAdjointCrossSectionVectorPerVolumeForScatProj( ////////////////////////////////////////////////////////////////////////////// G4double G4VEmAdjointModel::SampleAdjSecEnergyFromCSMatrix( - size_t MatrixIndex, G4double aPrimEnergy, G4bool isScatProjToProj) + std::size_t MatrixIndex, G4double aPrimEnergy, G4bool isScatProjToProj) { G4AdjointCSMatrix* theMatrix = (*fCSMatrixProdToProjBackScat)[MatrixIndex]; if(isScatProjToProj) @@ -428,18 +428,18 @@ G4double G4VEmAdjointModel::SampleAdjSecEnergyFromCSMatrix( G4AdjointInterpolator* theInterpolator = G4AdjointInterpolator::GetInstance(); G4double aLogPrimEnergy = std::log(aPrimEnergy); - size_t ind = theInterpolator->FindPositionForLogVector( + G4int ind = (G4int)theInterpolator->FindPositionForLogVector( aLogPrimEnergy, *theLogPrimEnergyVector); G4double aLogPrimEnergy1, aLogPrimEnergy2; G4double aLogCS1, aLogCS2; G4double log01, log02; - std::vector* aLogSecondEnergyVector1 = nullptr; - std::vector* aLogSecondEnergyVector2 = nullptr; - std::vector* aLogProbVector1 = nullptr; - std::vector* aLogProbVector2 = nullptr; - std::vector* aLogProbVectorIndex1 = nullptr; - std::vector* aLogProbVectorIndex2 = nullptr; + std::vector* aLogSecondEnergyVector1 = nullptr; + std::vector* aLogSecondEnergyVector2 = nullptr; + std::vector* aLogProbVector1 = nullptr; + std::vector* aLogProbVector2 = nullptr; + std::vector* aLogProbVectorIndex1 = nullptr; + std::vector* aLogProbVectorIndex2 = nullptr; theMatrix->GetData(ind, aLogPrimEnergy1, aLogCS1, log01, aLogSecondEnergyVector1, aLogProbVector1, @@ -539,8 +539,8 @@ void G4VEmAdjointModel::SelectCSMatrix(G4bool isScatProjToProj) fLastCS = fLastAdjointCSForProdToProj; } G4double SumCS = 0.; - size_t ind = 0; - for(size_t i = 0; i < CS_Vs_Element->size(); ++i) + std::size_t ind = 0; + for(std::size_t i = 0; i < CS_Vs_Element->size(); ++i) { SumCS += (*CS_Vs_Element)[i]; if(G4UniformRand() <= SumCS / fLastCS) @@ -549,7 +549,7 @@ void G4VEmAdjointModel::SelectCSMatrix(G4bool isScatProjToProj) break; } } - fCSMatrixUsed = fCurrentMaterial->GetElement(ind)->GetIndex(); + fCSMatrixUsed = fCurrentMaterial->GetElement((G4int)ind)->GetIndex(); } } @@ -688,7 +688,7 @@ void G4VEmAdjointModel::DefineCurrentMaterial( { fCurrentCouple = const_cast(couple); fCurrentMaterial = const_cast(couple->GetMaterial()); - size_t idx = 56; + std::size_t idx = 56; fTcutSecond = 1.e-11; if(fAdjEquivDirectSecondPart) { diff --git a/source/processes/electromagnetic/dna/History b/source/processes/electromagnetic/dna/History index 42902be7c0..1c92eda192 100644 --- a/source/processes/electromagnetic/dna/History +++ b/source/processes/electromagnetic/dna/History @@ -6,13 +6,84 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-24 Vladimir Ivanchenko (emdna-V11-00-39) +- G4DNARuddIonisationExtendedModel - fixed common work between DNA physics and + radioactive decay module - before this update test2.in macro crash, because + only 5 ions have data needed for this model; with this modification of the + model scaling relation to the carbon ion is used for any ion, which has + no data; low-energy limit is used now more correctly - all ions are stopped + but not killed, because they may have radioactive decay at rest; all commented + lines are removed from the class + +## 2022-11-23 Gabriele Cosmo (emdna-V11-00-38) +- Fixed more compilation warnings for implicit type conversions. + +## 2022-11-22 Hoang Tran (emdna-V11-00-37) +- delete unused tests in dna (G4DNAProcessTest.cc and G4DNATest.cc) + +## 2022-11-18 Gabriele Cosmo (emdna-V11-00-36) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-08 Vladimir Ivanchenko (emdna-V11-00-35) +- G4DNAUeharaScreenedRutherfordElasticModel - code cleanup; introduced + low and high energy limit for the model; removed missleading G4Exception + +## 2022-11-01 Hoang Tran (emdna-V11-00-34) +- Fix Coverity issues for ref-09 + +## 2022-10-10 Hoang Tran (emdna-V11-00-33) +- minor correction of IRT-syn model (chemistry). Contact reactions should not happen +after 1 ps. + +## 2022-10-21 Yann Perrot, Le Tuan Anh (emdna-V11-00-32) +- Add nitrogen models from PTra code + +## 2022-10-10 Hoang Tran (emdna-V11-00-31) +- Fixed minor mistake of file name in G4DNARPWBAIonisationModel, +- Added protection for HighEnergyLimit/LowEnergyLimit in G4DNARPWBAIonisationModel and +G4DNARPWBAExcitationModel + +## 2022-10-07 Gabriele Cosmo (emdna-V11-00-30) +- Fixed compilation warnings on Intel/icx compiler for variables set + but not used in G4ITNavigator2. + +## 2022-10-05 Hoang Tran (emdna-V11-00-29) +- Fix user's report for IRT model. + If the first IRTSampling won't give any reactions, end the simu. No StepProcessor in this simu + +## 2022-10-03 Hoang Tran (emdna-V11-00-28) +- Fix Coverity static analysis for ref-08 + uninit_member in G4DNAMillerGreenExcitationModel, G4DNARuddIonisationModel, G4DNADingfelderChargeDecreaseModel, + G4DNADingfelderChargeIncreaseModel,G4DNARuddIonisationExtendedModel, G4DNAGillespieDirectMethod + Use auto & instead of auto : G4ITFinder, G4DNAScavengerMaterial, G4MoleculeCounter, G4OCTREE + +## 2022-09-08 Hoang Tran (emdna-V11-00-27) +- Resolve dependency inconsistencies : + dna/management/include/G4ChemicalMoleculeFinder.hh includes G4Molecule.hh from G4emdna-molman + dna/management/include/G4UserMeshAction.hh includes G4DNAMesh.hh from G4emdna-utils + dna/management/include/G4OctreeFinder.hh includes G4IRTUtils.hh from G4emdna-utils + +## 2022-09-05 Ben Morgan (emdna-V11-00-26) +- Partially resolve dependency inconsistencies + - NB: cannot be resolved fully without introducing a cycle between + G4emdna-man, G4emdna-molman, G4emdna-utils. + +## 2022-09-01 Seth R Johnson (emdna-V11-00-25) +- Define G4CT_MAX_COUNT for changing "compile time counter" depth to fix build + errors on NVHPC compiler. + +## 2022-08-30 Vladimir Ivanchenko (emdna-V11-00-24) +- G4DNAExcitation, G4DNAVibExcitation, G4DNARotExcitation - class + cleanup according to the recent G4VEmProcess base class; model + headers are moved to source; C++11 keywards are introduced. + ## 2022-06-21 Igor Semeniouk (emdna-V11-00-23) - G4DNABornIonisationModel1.cc, G4DNACPA100ElasticModel.cc, -G4DNACPA100IonisationModel.cc, G4DNAChampionElasticModel.cc, -G4DNAELSEPAElasticModel.cc, G4DNAEmfietzoglouIonisationModel.cc, -G4DNAIonElasticModel.cc, G4DNAQuinnPlasmonExcitationModel.cc, -G4DNARPWBAIonisationModel.cc, G4DNARelativisticIonisationModel.cc, -G4DNASancheExcitationModel.cc : + G4DNACPA100IonisationModel.cc, G4DNAChampionElasticModel.cc, + G4DNAELSEPAElasticModel.cc, G4DNAEmfietzoglouIonisationModel.cc, + G4DNAIonElasticModel.cc, G4DNAQuinnPlasmonExcitationModel.cc, + G4DNARPWBAIonisationModel.cc, G4DNARelativisticIonisationModel.cc, + G4DNASancheExcitationModel.cc : use G4FindDataDir("G4LEDATA") to find dataset path on place of getenv. ## 2022-06-03 Hoang Tran (emdna-V11-00-22) diff --git a/source/processes/electromagnetic/dna/management/include/G4CTCounter.hh b/source/processes/electromagnetic/dna/management/include/G4CTCounter.hh index 0fd3300ae6..85b9270d4c 100644 --- a/source/processes/electromagnetic/dna/management/include/G4CTCounter.hh +++ b/source/processes/electromagnetic/dna/management/include/G4CTCounter.hh @@ -93,13 +93,25 @@ struct G4Number<0>{ return G4Number(); \ } -#define G4CT_COUNT(flagName) \ - static constexpr const int flagName = \ - decltype(Counter(G4Number<255>{}) )::value; \ - static constexpr G4Number \ - Counter(G4Number){ \ - return G4Number{}; \ - } +// Allow overridable maximum enum depth by setting G4CT_MAX_COUNT +#ifndef G4CT_MAX_COUNT +#ifndef __NVCOMPILER +// Maximum in Geant4 V11.0.0 is hardcoded to 255 +#define G4CT_MAX_COUNT 255 +#else +// NVC++ compiler default template instantiation recursion limit is 64. +// This can be changed by setting, e.g., "-Wc,--pending_instantiations=256" +#define G4CT_MAX_COUNT 63 +#endif +#endif + +#define G4CT_COUNT(flagName) \ + static constexpr const int flagName = decltype(Counter(G4Number{}))::value; \ + static constexpr G4Number Counter(G4Number) \ + { \ + static_assert(flagName + 1 < G4CT_MAX_COUNT, "Maximum enumeration count exeeded"); \ + return G4Number{}; \ + } //------------------------------------------------------------------------------ // On Win platforms, static functions must not be inlined, use the following @@ -118,7 +130,7 @@ struct G4Number<0>{ #define G4CT_COUNT_DEF(flagName) \ static constexpr const int flagName = \ - decltype(Counter(G4Number<255>{}))::value; \ + decltype(Counter(G4Number{}))::value; \ static constexpr G4Number \ Counter(G4Number); diff --git a/source/processes/electromagnetic/dna/management/include/G4ITFinder.icc b/source/processes/electromagnetic/dna/management/include/G4ITFinder.icc index 1d5941e60e..7263547305 100644 --- a/source/processes/electromagnetic/dna/management/include/G4ITFinder.icc +++ b/source/processes/electromagnetic/dna/management/include/G4ITFinder.icc @@ -56,7 +56,7 @@ TEMPLATE G4ITMANAGER::G4ITFinder() TEMPLATE G4ITMANAGER::~G4ITFinder() { - for(auto it : fTree) + for(auto & it : fTree) { delete it.second; } @@ -67,7 +67,7 @@ TEMPLATE G4ITMANAGER::~G4ITFinder() TEMPLATE void G4ITMANAGER::Clear() { - for(auto it : fTree) + for(auto & it : fTree) { delete it.second; } diff --git a/source/processes/electromagnetic/dna/management/include/G4ITStepProcessor.hh b/source/processes/electromagnetic/dna/management/include/G4ITStepProcessor.hh index c5de0bf5ee..15a900b86b 100644 --- a/source/processes/electromagnetic/dna/management/include/G4ITStepProcessor.hh +++ b/source/processes/electromagnetic/dna/management/include/G4ITStepProcessor.hh @@ -100,9 +100,9 @@ struct ProcessGeneralInfo // and SelectedPostStepDoItVector. // // * Max number of processes - size_t MAXofAtRestLoops; - size_t MAXofAlongStepLoops; - size_t MAXofPostStepLoops; + std::size_t MAXofAtRestLoops; + std::size_t MAXofAlongStepLoops; + std::size_t MAXofPostStepLoops; // Maximum number of processes for each type of process // These depend on the G4ParticleDefinition, so on the track @@ -217,7 +217,7 @@ public: inline const G4Track* GetTrack() const; inline void CleanProcessor(); - size_t GetAtRestDoItProcTriggered() const + std::size_t GetAtRestDoItProcTriggered() const { return fAtRestDoItProcTriggered; } @@ -252,12 +252,12 @@ public: return fPhysIntLength; } - size_t GetPostStepAtTimeDoItProcTriggered() const + std::size_t GetPostStepAtTimeDoItProcTriggered() const { return fPostStepAtTimeDoItProcTriggered; } - size_t GetPostStepDoItProcTriggered() const + std::size_t GetPostStepDoItProcTriggered() const { return fPostStepDoItProcTriggered; } @@ -319,7 +319,7 @@ protected: void InvokeAtRestDoItProcs(); void InvokeAlongStepDoItProcs(); void InvokePostStepDoItProcs(); - void InvokePSDIP(size_t); // + void InvokePSDIP(std::size_t); // void InvokeTransportationProc(); void SetNavigator(G4ITNavigator *value); G4double CalculateSafety(); @@ -374,9 +374,9 @@ private: // just executed. // * Process selection - size_t fAtRestDoItProcTriggered; - size_t fPostStepDoItProcTriggered; - size_t fPostStepAtTimeDoItProcTriggered; + std::size_t fAtRestDoItProcTriggered; + std::size_t fPostStepDoItProcTriggered; + std::size_t fPostStepAtTimeDoItProcTriggered; // Record the selected process G4ForceCondition fCondition; diff --git a/source/processes/electromagnetic/dna/management/include/G4KDMap.hh b/source/processes/electromagnetic/dna/management/include/G4KDMap.hh index 984e369f3c..c0d117f341 100644 --- a/source/processes/electromagnetic/dna/management/include/G4KDMap.hh +++ b/source/processes/electromagnetic/dna/management/include/G4KDMap.hh @@ -52,21 +52,23 @@ #include #include +#include "G4Types.hh" + class G4KDNode_Base; class __1DSortOut { public : - __1DSortOut(size_t dimension); + __1DSortOut(std::size_t dimension); __1DSortOut(const __1DSortOut& right); - int GetDimension(); - G4KDNode_Base* GetMidle(size_t& /*G4KDNode_deque*/); + G4int GetDimension(); + G4KDNode_Base* GetMidle(std::size_t& /*G4KDNode_deque*/); std::deque::iterator Insert(G4KDNode_Base*); G4KDNode_Base* PopOutMiddle(); void Sort(); void Erase(std::deque::iterator &); - size_t Size() + std::size_t Size() { return fContainer.size(); } @@ -74,12 +76,12 @@ public : protected : struct sortOutNDim { - sortOutNDim( size_t dimension) + sortOutNDim(std::size_t dimension) { fDimension = dimension; } - bool operator() (G4KDNode_Base* const& lhs, G4KDNode_Base* const& rhs); - size_t fDimension; + G4bool operator() (G4KDNode_Base* const& lhs, G4KDNode_Base* const& rhs); + std::size_t fDimension; }; std::deque fContainer; @@ -89,10 +91,10 @@ protected : class G4KDMap { public: - G4KDMap(size_t dimensions): fSortOut(dimensions, __1DSortOut(dimensions)) + G4KDMap(std::size_t dimensions): fSortOut(dimensions, __1DSortOut(dimensions)) { fIsSorted = false; -// for(size_t i = 0 ; i < dimensions ; i++) +// for(std::size_t i = 0 ; i < dimensions ; ++i) // { // fSortOut[i] = new __1DSortOut(i); // } @@ -101,19 +103,19 @@ public: void Insert(G4KDNode_Base* pos); void Sort(); - G4KDNode_Base* PopOutMiddle(size_t dimension); - size_t GetDimension() + G4KDNode_Base* PopOutMiddle(std::size_t dimension); + std::size_t GetDimension() { return fSortOut.size(); } - size_t GetSize() + std::size_t GetSize() { return fMap.size(); } private: - bool fIsSorted; + G4bool fIsSorted; std::vector<__1DSortOut> fSortOut; std::map::iterator>> fMap; diff --git a/source/processes/electromagnetic/dna/management/include/G4KDNode.hh b/source/processes/electromagnetic/dna/management/include/G4KDNode.hh index a3556ea234..e81f437636 100644 --- a/source/processes/electromagnetic/dna/management/include/G4KDNode.hh +++ b/source/processes/electromagnetic/dna/management/include/G4KDNode.hh @@ -66,7 +66,7 @@ public: // parent = 0, axis = 0, side = 0 G4KDNode_Base(G4KDTree*, G4KDNode_Base* /*parent*/); virtual ~G4KDNode_Base(); - virtual double operator[](size_t) const = 0; + virtual double operator[](std::size_t) const = 0; virtual void InactiveNode(); virtual bool IsValid() const{ return true; } @@ -75,8 +75,8 @@ public: inline void SetTree(G4KDTree* tree) {fTree = tree;} //---------------------------- - int GetDim() const; - inline int GetAxis() const{return fAxis;} + G4int GetDim() const; + inline G4int GetAxis() const{return (G4int)fAxis;} inline G4KDNode_Base* GetParent(){return fParent;} inline G4KDNode_Base* GetLeft(){return fLeft;} inline G4KDNode_Base* GetRight(){return fRight;} @@ -89,12 +89,12 @@ public: G4KDNode_Base* Insert(PointT* point); template G4KDNode_Base* Insert(const PointT& point); - int Insert(G4KDNode_Base* newNode); + G4int Insert(G4KDNode_Base* newNode); void PullSubTree(); void RetrieveNodeList(std::list& node_list); - void Print(std::ostream& out, int level = 0) const; + void Print(std::ostream& out, G4int level = 0) const; // std::vector::iterator>* // GetIteratorsForSortingAlgo(G4KDMap*); @@ -105,8 +105,8 @@ protected: //°°°°°°°°°°° // Members //°°°°°°°°°°° - size_t fAxis; // axis : x, y, z ... - int fSide; // left/right + std::size_t fAxis; // axis : x, y, z ... + G4int fSide; // left/right /* fSide == 0 : Is the root node * fSide == -1 : It is the left of the parent node * fSide == 1 : It is the right of the parent node @@ -138,7 +138,7 @@ template G4KDNode(G4KDTree*, PointT* /*point*/, G4KDNode_Base* /*parent*/); virtual ~G4KDNode(); - void *operator new(size_t); + void *operator new(std::size_t); void operator delete(void *); inline PointT* GetPoint() @@ -146,10 +146,10 @@ template return fPoint; } - virtual double operator[](size_t i) const + virtual G4double operator[](std::size_t i) const { - if(fPoint == 0) abort(); - return (*fPoint)[i]; + if(fPoint == nullptr) abort(); + return (*fPoint)[(G4int)i]; } virtual void InactiveNode() @@ -158,14 +158,14 @@ template G4KDNode_Base::InactiveNode(); } - virtual bool IsValid() const + virtual G4bool IsValid() const { return fValid; } protected: PointT* fPoint; - bool fValid; + G4bool fValid; private: G4KDNode(const G4KDNode& right); @@ -176,10 +176,10 @@ template template G4ThreadLocal G4Allocator>* - G4KDNode::fgAllocator = 0; + G4KDNode::fgAllocator = nullptr; template - void* G4KDNode::operator new(size_t) + void* G4KDNode::operator new(std::size_t) { if(!fgAllocator) fgAllocator = new G4Allocator >; return (void *) fgAllocator->MallocSingle(); @@ -214,7 +214,7 @@ template virtual ~G4KDNodeCopy(){} - void *operator new(size_t) + void *operator new(std::size_t) { if(!fgAllocator) fgAllocator = new G4Allocator>; return (void *) fgAllocator->MallocSingle(); @@ -230,7 +230,7 @@ template return fPoint; } - virtual double operator[](size_t i) const + virtual double operator[](std::size_t i) const { return fPoint[i]; } @@ -276,7 +276,7 @@ template template G4ThreadLocal G4Allocator>* - G4KDNodeCopy::fgAllocator = 0; + G4KDNodeCopy::fgAllocator = nullptr; #include "G4KDNode.icc" diff --git a/source/processes/electromagnetic/dna/management/include/G4KDNode.icc b/source/processes/electromagnetic/dna/management/include/G4KDNode.icc index 616309d85a..10bbb39015 100644 --- a/source/processes/electromagnetic/dna/management/include/G4KDNode.icc +++ b/source/processes/electromagnetic/dna/management/include/G4KDNode.icc @@ -76,10 +76,10 @@ template { G4KDNode_Base* aParent = 0; G4KDNode_Base* next = this; - int split = -1; + G4int split = -1; while(next) { - split = next->fAxis; + split = (G4int)next->fAxis; aParent = next; // works if node called "next" is valid @@ -98,7 +98,7 @@ template G4KDNode_Base* newNode = new G4KDNode(fTree, point, aParent); - if((*point)[aParent->fAxis] > (*aParent)[aParent->fAxis]) + if((*point)[(G4int)aParent->fAxis] > (*aParent)[aParent->fAxis]) { aParent->fRight = newNode; newNode->fSide = 1; diff --git a/source/processes/electromagnetic/dna/management/include/G4KDTree.hh b/source/processes/electromagnetic/dna/management/include/G4KDTree.hh index 891bcabd7f..7d25679e19 100644 --- a/source/processes/electromagnetic/dna/management/include/G4KDTree.hh +++ b/source/processes/electromagnetic/dna/management/include/G4KDTree.hh @@ -47,6 +47,7 @@ #define G4KDTREE_HH 1 #include +#include "G4Types.hh" #include "G4KDNode.hh" #include "G4KDTreeResult.hh" @@ -71,7 +72,7 @@ class G4KDTree friend class G4KDNode_Base; public: - G4KDTree(size_t dim = 3); + G4KDTree(std::size_t dim = 3); ~G4KDTree(); void Clear(); @@ -86,7 +87,7 @@ class G4KDTree } } - size_t GetDim() const { return fDim; } + std::size_t GetDim() const { return fDim; } G4int GetNbNodes() const { return fNbNodes; } G4KDNode_Base* GetRoot() { return fRoot; } @@ -120,7 +121,7 @@ class G4KDTree G4KDTreeResultHandle NearestInRange(const Position& pos, const G4double& range); G4KDTreeResultHandle NearestInRange(G4KDNode_Base* node, const G4double& range); - void* operator new(size_t); + void* operator new(std::size_t); void operator delete(void*); protected: @@ -128,16 +129,16 @@ class G4KDTree class HyperRect { public: - HyperRect(size_t dim) + HyperRect(std::size_t dim) : fDim(dim) - , fMin(new double[fDim]) - , fMax(new double[fDim]) + , fMin(new G4double[fDim]) + , fMax(new G4double[fDim]) {} template void SetMinMax(const Position& min, const Position& max) { - for(size_t i = 0; i < fDim; i++) + for(G4int i = 0; i < (G4int)fDim; ++i) { fMin[i] = min[i]; fMax[i] = max[i]; @@ -156,7 +157,7 @@ class G4KDTree fMin = new G4double[fDim]; fMax = new G4double[fDim]; - for(size_t i = 0; i < fDim; i++) + for(std::size_t i = 0; i < fDim; ++i) { fMin[i] = rect.fMin[i]; fMax[i] = rect.fMax[i]; @@ -166,7 +167,7 @@ class G4KDTree template void Extend(const Position& pos) { - for(size_t i = 0; i < fDim; i++) + for(G4int i = 0; i < (G4int)fDim; ++i) { if(pos[i] < fMin[i]) { @@ -180,11 +181,11 @@ class G4KDTree } template - bool CompareDistSqr(const Position& pos, const G4double* bestmatch) + G4bool CompareDistSqr(const Position& pos, const G4double* bestmatch) { G4double result = 0; - for(size_t i = 0; i < fDim; i++) + for(G4int i = 0; i < (G4int)fDim; ++i) { if(pos[i] < fMin[i]) { @@ -203,12 +204,12 @@ class G4KDTree return true; } - size_t GetDim() { return fDim; } + std::size_t GetDim() { return fDim; } G4double* GetMin() { return fMin; } G4double* GetMax() { return fMax; } protected: - size_t fDim; + std::size_t fDim; G4double *fMin, *fMax; /* minimum/maximum coords */ private: @@ -232,7 +233,7 @@ class G4KDTree template void __NearestToPosition(G4KDNode_Base* node, const Position& pos, - G4KDNode_Base*& result, double* result_dist_sq, + G4KDNode_Base*& result, G4double* result_dist_sq, HyperRect* fRect); template @@ -243,7 +244,7 @@ class G4KDTree protected: HyperRect* fRect = nullptr; G4KDNode_Base* fRoot = nullptr; - size_t fDim; + std::size_t fDim; G4int fNbNodes = 0; G4int fNbActiveNodes = 0; G4KDMap* fKDMap; diff --git a/source/processes/electromagnetic/dna/management/include/G4KDTree.icc b/source/processes/electromagnetic/dna/management/include/G4KDTree.icc index d71502bc55..02b63d0795 100644 --- a/source/processes/electromagnetic/dna/management/include/G4KDTree.icc +++ b/source/processes/electromagnetic/dna/management/include/G4KDTree.icc @@ -143,24 +143,24 @@ template //__________________________________________________________________ template - int G4KDTree::__NearestInRange(G4KDNode_Base* node, - const Position& pos, - const double& range_sq, - const double& range, - G4KDTreeResult& list, - int ordered, - G4KDNode_Base *source_node) + G4int G4KDTree::__NearestInRange(G4KDNode_Base* node, + const Position& pos, + const double& range_sq, + const double& range, + G4KDTreeResult& list, + G4int ordered, + G4KDNode_Base *source_node) { if (!node) return 0; - double dist_sq(DBL_MAX), dx(DBL_MAX); - int ret(-1), added_res(0); + G4double dist_sq(DBL_MAX), dx(DBL_MAX); + G4int ret(-1), added_res(0); if (node->IsValid() && node != source_node) { - bool do_break = false; + G4bool do_break = false; dist_sq = 0; - for (size_t i = 0; i < fDim; i++) + for (G4int i = 0; i < (G4int)fDim; ++i) { dist_sq += sqr((*node)[i] - pos[i]); if (dist_sq > range_sq) @@ -201,13 +201,13 @@ template void G4KDTree::__NearestToPosition(G4KDNode_Base *node, const Position &pos, G4KDNode_Base *&result, - double *result_dist_sq, + G4double *result_dist_sq, HyperRect* rect) { - int dir = node->GetAxis(); - double dummy(0.), dist_sq(-1.); + G4int dir = node->GetAxis(); + G4double dummy(0.), dist_sq(-1.); G4KDNode_Base* nearer_subtree(0), *farther_subtree(0); - double *nearer_hyperrect_coord(0), *farther_hyperrect_coord(0); + G4double *nearer_hyperrect_coord(0), *farther_hyperrect_coord(0); /* Decide whether to go left or right in the tree */ dummy = pos[dir] - (*node)[dir]; @@ -243,8 +243,8 @@ template if (node->IsValid()) // TODO { dist_sq = 0; - bool do_break = false; - for (size_t i = 0; i < fDim; i++) + G4bool do_break = false; + for (G4int i = 0; i < (G4int)fDim; ++i) { dist_sq += sqr((*node)[i] - pos[i]); if (dist_sq > *result_dist_sq) @@ -286,7 +286,7 @@ template if (!fRect) return 0; G4KDNode_Base *result(0); - double dist_sq = DBL_MAX; + G4double dist_sq = DBL_MAX; /* Duplicate the bounding hyperrectangle, we will work on the copy */ HyperRect* newrect = new HyperRect(*fRect); @@ -318,14 +318,14 @@ template G4KDNode_Base* node, const Position& pos, std::vector& result, - double *result_dist_sq, + G4double *result_dist_sq, HyperRect* rect, - int& nbresult) + G4int& nbresult) { - int dir = node->GetAxis(); - double dummy, dist_sq; - G4KDNode_Base *nearer_subtree(0), *farther_subtree(0); - double *nearer_hyperrect_coord(0), *farther_hyperrect_coord(0); + G4int dir = node->GetAxis(); + G4double dummy, dist_sq; + G4KDNode_Base *nearer_subtree(nullptr), *farther_subtree(nullptr); + G4double *nearer_hyperrect_coord(nullptr), *farther_hyperrect_coord(nullptr); /* Decide whether to go left or right in the tree */ dummy = pos[dir] - (*node)[dir]; @@ -361,8 +361,8 @@ template if (node->IsValid() && node != source_node) { dist_sq = 0; - bool do_break = false; - for (size_t i = 0; i < fDim; i++) + G4bool do_break = false; + for (std::size_t i = 0; i < fDim; ++i) { dist_sq += sqr((*node)[i] - pos[i]); if (dist_sq > *result_dist_sq) @@ -410,11 +410,11 @@ template template G4KDTreeResultHandle G4KDTree::NearestInRange(const Position& pos, - const double& range) + const G4double& range) { - int ret(-1); + G4int ret(-1); - const double range_sq = sqr(range); + const G4double range_sq = sqr(range); G4KDTreeResultHandle rset = new G4KDTreeResult(this); if ((ret = __NearestInRange(fRoot, pos, range_sq, range, *(rset()), 0)) == -1) diff --git a/source/processes/electromagnetic/dna/management/include/G4Octree.icc b/source/processes/electromagnetic/dna/management/include/G4Octree.icc index 3f75700b42..0606c7cc86 100644 --- a/source/processes/electromagnetic/dna/management/include/G4Octree.icc +++ b/source/processes/electromagnetic/dna/management/include/G4Octree.icc @@ -277,7 +277,7 @@ G4bool OCTREE::Node::radiusNeighbors(const Point& query, else if (fNodeType == NodeTypes::MAX_DEPTH_LEAF) { NodeVector& children = *static_cast(fpValue); - for (auto child : children) + for (auto & child : children) { const Point& point = std::get<1>(child); //if (this->fBigVolume.contains(query, point, radius)) diff --git a/source/processes/electromagnetic/dna/management/include/G4OctreeFinder.hh b/source/processes/electromagnetic/dna/management/include/G4OctreeFinder.hh index f86d883d80..e9f5cafd06 100644 --- a/source/processes/electromagnetic/dna/management/include/G4OctreeFinder.hh +++ b/source/processes/electromagnetic/dna/management/include/G4OctreeFinder.hh @@ -34,7 +34,6 @@ #include "G4ITType.hh" #include "G4memory.hh" #include "G4TrackList.hh" -#include "G4IRTUtils.hh" #undef DEBUG //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/dna/management/include/G4OctreeFinder.icc b/source/processes/electromagnetic/dna/management/include/G4OctreeFinder.icc index a931a90429..6ff72e0437 100644 --- a/source/processes/electromagnetic/dna/management/include/G4OctreeFinder.icc +++ b/source/processes/electromagnetic/dna/management/include/G4OctreeFinder.icc @@ -27,7 +27,6 @@ // Author: HoangTRAN 16/7/2019 // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4Molecule.hh" template G4ThreadLocal G4OctreeFinder * G4OctreeFinder::fInstance = nullptr; @@ -160,14 +159,16 @@ void G4OctreeFinder::FindNearestInRange(const G4Track& track, G4int nBin = 10; - G4double value(G4IRTUtils::GetRCutOff(0.1 * CLHEP::ns)); + //G4IRTUtils::GetRCutOff(1000 * CLHEP::ns) = 0.00050251 + //G4IRTUtils::GetRCutOff(0.1 * CLHEP::ns) = 6.4606e-06 + G4double value(6.4606e-06); - G4double binOfR(std::pow(G4IRTUtils::GetRCutOff(1000 * CLHEP::ns) / value, + G4double binOfR(std::pow(0.00050251 / value, 1. / static_cast(nBin - 1))); - if( R <= G4IRTUtils::GetRCutOff(1000 * CLHEP::ns) ) + if( R <= 0.00050251 ) { - if(tempResult.size() < 10 && R < G4IRTUtils::GetRCutOff(1000 * CLHEP::ns)) + if(tempResult.size() < 10 && R < 0.00050251) { R *= binOfR; #ifdef DEBUG @@ -245,14 +246,15 @@ void G4OctreeFinder::FindNearestInRange(const G4ThreeVector& positi position, R, tempResult); G4int nBin = 10; - - G4double value(G4IRTUtils::GetRCutOff(0.1 * CLHEP::ns)); - G4double binOfR(std::pow(G4IRTUtils::GetRCutOff(1000 * CLHEP::ns) / value, + //G4IRTUtils::GetRCutOff(1000 * CLHEP::ns) = 0.00050251 + //G4IRTUtils::GetRCutOff(0.1 * CLHEP::ns) = 6.4606e-06 + G4double value(6.4606e-06); + G4double binOfR(std::pow(0.00050251 / value, 1. / static_cast(nBin - 1))); - if( R <= G4IRTUtils::GetRCutOff(1000 * CLHEP::ns) ) + if( R <= 0.00050251 ) { - if(tempResult.size() < 10 && R < G4IRTUtils::GetRCutOff(1000 * CLHEP::ns)) + if(tempResult.size() < 10 && R < 0.00050251) { R *= binOfR; #ifdef DEBUG diff --git a/source/processes/electromagnetic/dna/management/include/G4UserMeshAction.hh b/source/processes/electromagnetic/dna/management/include/G4UserMeshAction.hh index c8c5a1dd6d..0df84df889 100644 --- a/source/processes/electromagnetic/dna/management/include/G4UserMeshAction.hh +++ b/source/processes/electromagnetic/dna/management/include/G4UserMeshAction.hh @@ -27,7 +27,7 @@ #ifndef G4USERMESHACTION_HH #define G4USERMESHACTION_HH -#include "G4DNAMesh.hh" +#include "G4VDNAMesh.hh" class G4UserMeshAction { @@ -36,8 +36,8 @@ class G4UserMeshAction virtual ~G4UserMeshAction() = default; public: - virtual void BeginOfMesh(const G4DNAMesh* /*aMesh*/, G4double /*time*/){}; - virtual void InMesh(const G4DNAMesh* /*pMesh*/, G4double /*time*/){}; - virtual void EndOfMesh(const G4DNAMesh* /*aMesh*/, G4double /*time*/){}; + virtual void BeginOfMesh(const G4VDNAMesh* /*aMesh*/, G4double /*time*/){}; + virtual void InMesh(const G4VDNAMesh* /*pMesh*/, G4double /*time*/){}; + virtual void EndOfMesh(const G4VDNAMesh* /*aMesh*/, G4double /*time*/){}; }; #endif // G4USERMESHACTION_HH diff --git a/source/processes/electromagnetic/dna/management/include/G4UserTimeStepAction.hh b/source/processes/electromagnetic/dna/management/include/G4UserTimeStepAction.hh index 8c7fa08598..10f01e2c37 100644 --- a/source/processes/electromagnetic/dna/management/include/G4UserTimeStepAction.hh +++ b/source/processes/electromagnetic/dna/management/include/G4UserTimeStepAction.hh @@ -44,7 +44,7 @@ // // we ask that you please cite the following reference papers on chemistry: // -// Diffusion-controlled reactions modelling in Geant4-DNA, +// Diffusion-controlled reactions modelling in Geant4-DNA, // M. Karamitros et al., 2014 // Modeling Radiation Chemistry in the Geant4 Toolkit, // M. Karamitros et al., Prog. Nucl. Sci. Tec. 2 (2011) 503-508 diff --git a/environments/g4py/examples/demos/TestEm0/module/PhysicsListMessenger.hh b/source/processes/electromagnetic/dna/management/include/G4VDNAMesh.hh similarity index 58% rename from environments/g4py/examples/demos/TestEm0/module/PhysicsListMessenger.hh rename to source/processes/electromagnetic/dna/management/include/G4VDNAMesh.hh index 8785c84c71..58ae6dd5ad 100644 --- a/environments/g4py/examples/demos/TestEm0/module/PhysicsListMessenger.hh +++ b/source/processes/electromagnetic/dna/management/include/G4VDNAMesh.hh @@ -24,45 +24,66 @@ // ******************************************************************** // // -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#ifndef G4VDNAMesh_hh +#define G4VDNAMesh_hh 1 -#ifndef PhysicsListMessenger_h -#define PhysicsListMessenger_h 1 - -#include "G4UImessenger.hh" #include "globals.hh" -class PhysicsList; -class G4UIdirectory; -class G4UIcmdWithADoubleAndUnit; -class G4UIcmdWithAString; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class PhysicsListMessenger: public G4UImessenger +class G4VDNAMesh { - public: - - PhysicsListMessenger(PhysicsList* ); - ~PhysicsListMessenger(); - - void SetNewValue(G4UIcommand*, G4String); - - private: - - PhysicsList* pPhysicsList; - - G4UIdirectory* physDir; - G4UIcmdWithADoubleAndUnit* gammaCutCmd; - G4UIcmdWithADoubleAndUnit* electCutCmd; - G4UIcmdWithADoubleAndUnit* protoCutCmd; - G4UIcmdWithADoubleAndUnit* allCutCmd; - G4UIcmdWithAString* pListCmd; - + public: + G4VDNAMesh() = default; + virtual ~G4VDNAMesh() = default; + struct Index + { + Index() = default; + Index(G4int _x, G4int _y, G4int _z) + : x(_x) + , y(_y) + , z(_z) + {} + ~Index() = default; + G4bool operator==(const Index& rhs) const + { + return x == rhs.x && y == rhs.y && z == rhs.z; + } + G4bool operator!=(const Index& rhs) const + { + return x != rhs.x || y != rhs.y || z != rhs.z; + } + G4bool operator<(const Index& rhs) const + { + if(x != rhs.x) + { + return x < rhs.x; + } + else if(y != rhs.y) + { + return y < rhs.y; + } + else if(z != rhs.z) + { + return z < rhs.z; + } + else + { + return false; + } + } + friend std::ostream& operator<<(std::ostream& s, const Index& rhs); + G4int x = 0; + G4int y = 0; + G4int z = 0; + }; + struct hashFunc + { + size_t operator()(const Index& k) const + { + size_t h1 = std::hash()(k.x); + size_t h2 = std::hash()(k.y); + size_t h3 = std::hash()(k.z); + return (h1 ^ (h2 << 1)) ^ h3; + } + }; }; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - #endif - diff --git a/source/processes/electromagnetic/dna/management/sources.cmake b/source/processes/electromagnetic/dna/management/sources.cmake index 143cc4274c..3416931a83 100644 --- a/source/processes/electromagnetic/dna/management/sources.cmake +++ b/source/processes/electromagnetic/dna/management/sources.cmake @@ -73,10 +73,10 @@ geant4_add_module(G4emdna-man G4OctreeFinder.hh G4OctreeFinder.icc G4DNABoundingBox.hh - G4ChemicalMoleculeFinder.hh G4UserMeshAction.hh G4VScavengerMaterial.hh G4VUserBrownianAction.hh + G4VDNAMesh.hh SOURCES G4AllITFinder.cc G4ITBox.cc @@ -141,7 +141,6 @@ geant4_module_link_libraries(G4emdna-man G4volumes PRIVATE G4cuts - G4detector G4emutils G4materials G4partman) diff --git a/source/processes/electromagnetic/dna/management/src/G4DNABoundingBox.cc b/source/processes/electromagnetic/dna/management/src/G4DNABoundingBox.cc index a968949f3a..d2eaaf45fe 100644 --- a/source/processes/electromagnetic/dna/management/src/G4DNABoundingBox.cc +++ b/source/processes/electromagnetic/dna/management/src/G4DNABoundingBox.cc @@ -44,6 +44,12 @@ G4DNABoundingBox::G4DNABoundingBox(G4DNABoundingBox&& rhs) noexcept G4DNABoundingBox::G4DNABoundingBox(const initializer_list& l) { + fxhi = 0.; + fxlo = 0.; + fyhi = 0.; + fylo = 0.; + fzhi = 0.; + fzlo = 0.; std::copy(l.begin(), l.end(), &fxhi); } diff --git a/source/processes/electromagnetic/dna/management/src/G4ITMultiNavigator.cc b/source/processes/electromagnetic/dna/management/src/G4ITMultiNavigator.cc index 469a6e5af6..9fc8d1185c 100644 --- a/source/processes/electromagnetic/dna/management/src/G4ITMultiNavigator.cc +++ b/source/processes/electromagnetic/dna/management/src/G4ITMultiNavigator.cc @@ -265,7 +265,7 @@ void G4ITMultiNavigator::PrepareNavigators() // Message the transportation-manager to find active navigators std::vector::iterator pNavigatorIter; - fNoActiveNavigators= pTransportManager-> GetNoActiveNavigators(); + fNoActiveNavigators = (G4int)pTransportManager-> GetNoActiveNavigators(); if( fNoActiveNavigators > fMaxNav ) { @@ -573,7 +573,7 @@ G4ITMultiNavigator::PrintLimited() { stepLen = fTrueMinStep; // did not limit (went as far as asked) } - G4int oldPrec= G4cout.precision(9); + G4long oldPrec= G4cout.precision(9); G4cout << std::setw(5) << num << " " << std::setw(12) << stepLen << " " diff --git a/source/processes/electromagnetic/dna/management/src/G4ITNavigator1.cc b/source/processes/electromagnetic/dna/management/src/G4ITNavigator1.cc index 13c9057d3d..3d6ccab7e1 100644 --- a/source/processes/electromagnetic/dna/management/src/G4ITNavigator1.cc +++ b/source/processes/electromagnetic/dna/management/src/G4ITNavigator1.cc @@ -182,7 +182,7 @@ G4ITNavigator1::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, #ifdef G4VERBOSE if( fVerbose > 2 ) { - G4int oldcoutPrec = G4cout.precision(8); + G4long oldcoutPrec = G4cout.precision(8); G4cout << "*** G4ITNavigator1::LocateGlobalPointAndSetup: ***" << G4endl; G4cout << " Called with arguments: " << G4endl << " Globalpoint = " << globalPoint << G4endl @@ -564,7 +564,7 @@ G4ITNavigator1::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, #ifdef G4VERBOSE if( fVerbose >= 4 ) { - G4int oldcoutPrec = G4cout.precision(8); + G4long oldcoutPrec = G4cout.precision(8); G4String curPhysVol_Name("None"); if (targetPhysical) { curPhysVol_Name = targetPhysical->GetName(); } G4cout << " Return value = new volume = " << curPhysVol_Name << G4endl; @@ -1189,7 +1189,7 @@ G4double G4ITNavigator1::ComputeStep( const G4ThreeVector &pGlobalpoint, // if( fValidExitNormal || fCalculatedExitNormal ) { - G4int depth= fHistory.GetDepth(); + G4int depth = (G4int)fHistory.GetDepth(); if( depth > 0 ) { G4AffineTransform GrandMotherToGlobalTransf = @@ -1316,7 +1316,7 @@ void G4ITNavigator1::ResetState() void G4ITNavigator1::SetupHierarchy() { G4int i; - const G4int cdepth = fHistory.GetDepth(); + const G4int cdepth = (G4int)fHistory.GetDepth(); G4VPhysicalVolume *current; G4VSolid *pSolid; G4VPVParameterisation *pParam; @@ -1725,7 +1725,7 @@ G4double G4ITNavigator1::ComputeSafety( const G4ThreeVector &pGlobalpoint, G4double newSafety = 0.0; #ifdef G4DEBUG_NAVIGATION - G4int oldcoutPrec = G4cout.precision(8); + G4long oldcoutPrec = G4cout.precision(8); if( fVerbose > 0 ) { G4cout << "*** G4ITNavigator1::ComputeSafety: ***" << G4endl @@ -1874,7 +1874,7 @@ G4TouchableHistoryHandle G4ITNavigator1::CreateTouchableHistoryHandle() const // void G4ITNavigator1::PrintState() const { - G4int oldcoutPrec = G4cout.precision(4); + G4long oldcoutPrec = G4cout.precision(4); if( fVerbose == 4 ) { G4cout << "The current state of G4ITNavigator1 is: " << G4endl; @@ -1962,8 +1962,8 @@ void G4ITNavigator1::ComputeStepLog(const G4ThreeVector& pGlobalpoint, if( diffShiftSaf > fAccuracyForWarning ) { - G4int oldcoutPrec= G4cout.precision(8); - G4int oldcerrPrec= G4cerr.precision(10); + G4long oldcoutPrec= G4cout.precision(8); + G4long oldcerrPrec= G4cerr.precision(10); std::ostringstream message, suggestion; message << "Accuracy error or slightly inaccurate position shift." << G4endl @@ -2046,7 +2046,7 @@ std::ostream& operator << (std::ostream &os,const G4ITNavigator1 &n) // Adapted from G4ITNavigator1::PrintState() const - G4int oldcoutPrec = os.precision(4); + G4long oldcoutPrec = os.precision(4); if( n.fVerbose >= 4 ) { os << "The current state of G4ITNavigator1 is: " << G4endl; diff --git a/source/processes/electromagnetic/dna/management/src/G4ITNavigator2.cc b/source/processes/electromagnetic/dna/management/src/G4ITNavigator2.cc index 5c18bb3d13..411b2bfdbb 100644 --- a/source/processes/electromagnetic/dna/management/src/G4ITNavigator2.cc +++ b/source/processes/electromagnetic/dna/management/src/G4ITNavigator2.cc @@ -182,8 +182,7 @@ G4ITNavigator2::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, #ifdef G4VERBOSE if( fVerbose > 2 ) { - static int nCalls = 0; - G4int oldcoutPrec = G4cout.precision(8); + G4long oldcoutPrec = G4cout.precision(8); G4cout << "*** G4ITNavigator2::LocateGlobalPointAndSetup: ***" << G4endl; G4cout << " Called with arguments: " << G4endl << " Globalpoint = " << globalPoint << G4endl @@ -194,13 +193,10 @@ G4ITNavigator2::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, PrintState(); } G4cout.precision(oldcoutPrec); - nCalls++; -// if(nCalls == 2) abort(); } #endif G4int noLevelsExited=0 ; - G4int noLevelsEntered= 0; if ( !relativeSearch ) { @@ -255,8 +251,6 @@ G4ITNavigator2::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, { // assert( fBlockedPhysicalVolume!=0 ); - noLevelsEntered++; // count the first level entered too - switch (VolumeType(fBlockedPhysicalVolume)) { case kNormal: @@ -547,8 +541,6 @@ G4ITNavigator2::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, if ( noResult ) { - noLevelsEntered++; - // Entering a daughter after ascending // // The blocked volume is no longer valid - it was for another level @@ -593,7 +585,7 @@ G4ITNavigator2::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, #ifdef G4VERBOSE if( fVerbose >= 4 ) { - G4int oldcoutPrec = G4cout.precision(8); + G4long oldcoutPrec = G4cout.precision(8); G4String curPhysVol_Name("None"); if (targetPhysical) { curPhysVol_Name = targetPhysical->GetName(); } G4cout << " Return value = new volume = " << curPhysVol_Name << G4endl; @@ -942,9 +934,6 @@ G4double G4ITNavigator2::ComputeStep( const G4ThreeVector &pGlobalpoint, fCalculatedExitNormal = false; // Reset for new step - static G4ThreadLocal G4int sNavCScalls=0; - sNavCScalls++; - fLastTriedStepComputation= true; #ifdef G4VERBOSE @@ -1175,7 +1164,6 @@ G4double G4ITNavigator2::ComputeStep( const G4ThreeVector &pGlobalpoint, << fNumberZeroSteps << " at " << pGlobalpoint << " in volume " << motherPhysical->GetName() - << " nav-comp-step calls # " << sNavCScalls << G4endl; } #endif @@ -1317,7 +1305,7 @@ G4double G4ITNavigator2::ComputeStep( const G4ThreeVector &pGlobalpoint, // if( fValidExitNormal || fCalculatedExitNormal ) { - G4int depth= fHistory.GetDepth(); + G4int depth= (G4int)fHistory.GetDepth(); if( depth > 0 ) { G4AffineTransform GrandMotherToGlobalTransf = @@ -1452,7 +1440,7 @@ void G4ITNavigator2::ResetState() void G4ITNavigator2::SetupHierarchy() { G4int i; - const G4int cdepth = fHistory.GetDepth(); + const G4int cdepth = (G4int)fHistory.GetDepth(); G4VPhysicalVolume *current; G4VSolid *pSolid; G4VPVParameterisation *pParam; @@ -2276,7 +2264,7 @@ G4TouchableHistoryHandle G4ITNavigator2::CreateTouchableHistoryHandle() const void G4ITNavigator2::PrintState() const { CheckNavigatorStateIsValid(); - G4int oldcoutPrec = G4cout.precision(4); + G4long oldcoutPrec = G4cout.precision(4); if( fVerbose >= 4 ) { G4cout << "The current state of G4Navigator is: " << G4endl; @@ -2365,8 +2353,8 @@ void G4ITNavigator2::ComputeStepLog(const G4ThreeVector& pGlobalpoint, if( diffShiftSaf > fAccuracyForWarning ) { - G4int oldcoutPrec= G4cout.precision(8); - G4int oldcerrPrec= G4cerr.precision(10); + G4long oldcoutPrec= G4cout.precision(8); + G4long oldcerrPrec= G4cerr.precision(10); std::ostringstream message, suggestion; message << "Accuracy error or slightly inaccurate position shift." << G4endl @@ -2449,7 +2437,7 @@ std::ostream& operator << (std::ostream &os,const G4ITNavigator2 &n) // Adapted from G4ITNavigator2::PrintState() const - G4int oldcoutPrec = os.precision(4); + G4long oldcoutPrec = os.precision(4); if( n.fVerbose >= 4 ) { os << "The current state of G4ITNavigator2 is: " << G4endl; @@ -2539,7 +2527,7 @@ void G4ITNavigator2::GetRandomInCurrentVolume(G4ThreeVector& _rndmPoint) const G4VoxelLimits voxelLimits; // Defaults to "infinite" limits. G4double vmin, vmax; G4AffineTransform dummy; - std::vector > fExtend; + std::vector > fExtend; solid->CalculateExtent(kXAxis,voxelLimits,dummy,vmin,vmax); fExtend[kXAxis][BoundingBox::kMin] = vmin; @@ -2557,10 +2545,10 @@ void G4ITNavigator2::GetRandomInCurrentVolume(G4ThreeVector& _rndmPoint) const while(1) { - for(size_t i = 0 ; i < 3 ; ++i) + for(G4int i = 0 ; i < 3 ; ++i) { - double min = fExtend[i][BoundingBox::kMin]; - double max = fExtend[i][BoundingBox::kMax]; + G4double min = fExtend[i][BoundingBox::kMin]; + G4double max = fExtend[i][BoundingBox::kMax]; rndmPos[i] = G4UniformRand()*(max-min)+min; } diff --git a/source/processes/electromagnetic/dna/management/src/G4ITPathFinder.cc b/source/processes/electromagnetic/dna/management/src/G4ITPathFinder.cc index 07ee783487..48231e597e 100644 --- a/source/processes/electromagnetic/dna/management/src/G4ITPathFinder.cc +++ b/source/processes/electromagnetic/dna/management/src/G4ITPathFinder.cc @@ -373,7 +373,7 @@ G4ITPathFinder::PrepareNewTrack( const G4ThreeVector& position, // std::vector::iterator pNavigatorIter; - fNoActiveNavigators= fpTransportManager-> GetNoActiveNavigators(); + fNoActiveNavigators = (G4int)fpTransportManager-> GetNoActiveNavigators(); if( fNoActiveNavigators > G4ITNavigator::fMaxNav ) { std::ostringstream message; @@ -443,7 +443,7 @@ void G4ITPathFinder::ReportMove( const G4ThreeVector& OldVector, { G4ThreeVector moveVec = ( NewVector - OldVector ); - G4int prc= G4cerr.precision(12); + G4long prc = G4cerr.precision(12); std::ostringstream message; message << "Endpoint moved between value returned by ComputeStep()" << " and call to Locate(). " << G4endl @@ -1105,7 +1105,7 @@ void G4ITPathFinder::PrintLimited() { stepLen = fTrueMinStep; // did not limit (went as far as asked) } - G4int oldPrec= G4cout.precision(9); + G4long oldPrec = G4cout.precision(9); G4cout << std::setw(5) << fCurrentStepNo << " " << std::setw(5) << num << " " diff --git a/source/processes/electromagnetic/dna/management/src/G4ITStepProcessor.cc b/source/processes/electromagnetic/dna/management/src/G4ITStepProcessor.cc index 8313422707..1d84b0f7fd 100644 --- a/source/processes/electromagnetic/dna/management/src/G4ITStepProcessor.cc +++ b/source/processes/electromagnetic/dna/management/src/G4ITStepProcessor.cc @@ -37,7 +37,6 @@ #include "G4ForceCondition.hh" #include "G4GPILSelection.hh" #include "G4ITTransportationManager.hh" -// #include "G4VSensitiveDetector.hh" // Include from 'hits/digi' #include "G4GeometryTolerance.hh" #include "G4ParticleTable.hh" #include "G4ITTrackingManager.hh" @@ -62,7 +61,7 @@ using namespace std; -static const size_t SizeOfSelectedDoItVector = 100; +static const std::size_t SizeOfSelectedDoItVector = 100; template inline bool IsInf(T value) @@ -326,7 +325,7 @@ void G4ITStepProcessor::ActiveOnlyITProcess(G4ProcessManager* processManager) G4ProcessVector* processVector = processManager->GetProcessList(); G4VITProcess* itProcess = 0; - for(std::size_t i = 0; i < processVector->size(); ++i) + for(G4int i = 0; i < (G4int)processVector->size(); ++i) { G4VProcess* base_process = (*processVector)[i]; itProcess = dynamic_cast(base_process); @@ -434,7 +433,7 @@ void G4ITStepProcessor::SetupGeneralProcessInfo(G4ParticleDefinition* particle, { fpProcessInfo->fpTransportation = dynamic_cast ((*fpProcessInfo->fpAlongStepGetPhysIntVector) - [fpProcessInfo->MAXofAlongStepLoops-1]); + [G4int(fpProcessInfo->MAXofAlongStepLoops-1)]); if(fpProcessInfo->fpTransportation == 0) { @@ -549,7 +548,7 @@ void G4ITStepProcessor::GetAtRestIL() unsigned int NofInactiveProc=0; - for( size_t ri=0; ri < fpProcessInfo->MAXofAtRestLoops; ri++ ) + for( G4int ri=0; ri < (G4int)fpProcessInfo->MAXofAtRestLoops; ++ri ) { fpCurrentProcess = dynamic_cast((*fpProcessInfo->fpAtRestGetPhysIntVector)[ri]); if (fpCurrentProcess== 0) @@ -985,7 +984,7 @@ void G4ITStepProcessor::DoDefinePhysicalStepLength() fpState->fPhysicalStep = DBL_MAX; // Initialize by a huge number fPhysIntLength = DBL_MAX; // Initialize by a huge number - double proposedTimeStep = DBL_MAX; + G4double proposedTimeStep = DBL_MAX; G4VProcess* processWithPostStepGivenByTimeStep(0); // GPIL for PostStep @@ -998,10 +997,10 @@ void G4ITStepProcessor::DoDefinePhysicalStepLength() // << " id : " << fpTrack->GetTrackID() // << G4endl; - for(size_t np = 0; np < fpProcessInfo->MAXofPostStepLoops; np++) + for(std::size_t np = 0; np < fpProcessInfo->MAXofPostStepLoops; ++np) { fpCurrentProcess = dynamic_cast((*fpProcessInfo - ->fpPostStepGetPhysIntVector)[np]); + ->fpPostStepGetPhysIntVector)[(G4int)np]); if(fpCurrentProcess == 0) { (fpState->fSelectedPostStepDoItVector)[np] = InActivated; @@ -1058,8 +1057,8 @@ void G4ITStepProcessor::DoDefinePhysicalStepLength() if(fCondition == ExclusivelyForced) { - for(size_t nrest = np + 1; nrest < fpProcessInfo->MAXofPostStepLoops; - nrest++) + for(std::size_t nrest = np + 1; nrest < fpProcessInfo->MAXofPostStepLoops; + ++nrest) { (fpState->fSelectedPostStepDoItVector)[nrest] = InActivated; } @@ -1097,10 +1096,10 @@ void G4ITStepProcessor::DoDefinePhysicalStepLength() fpState->fProposedSafety = DBL_MAX; G4double safetyProposedToAndByProcess = fpState->fProposedSafety; - for(size_t kp = 0; kp < fpProcessInfo->MAXofAlongStepLoops; kp++) + for(std::size_t kp = 0; kp < fpProcessInfo->MAXofAlongStepLoops; ++kp) { fpCurrentProcess = dynamic_cast((*fpProcessInfo - ->fpAlongStepGetPhysIntVector)[kp]); + ->fpAlongStepGetPhysIntVector)[(G4int)kp]); if(fpCurrentProcess == 0) continue; // NULL means the process is inactivated by a user on fly. diff --git a/source/processes/electromagnetic/dna/management/src/G4ITStepProcessor2.cc b/source/processes/electromagnetic/dna/management/src/G4ITStepProcessor2.cc index 2abd433a26..1315e3e22f 100644 --- a/source/processes/electromagnetic/dna/management/src/G4ITStepProcessor2.cc +++ b/source/processes/electromagnetic/dna/management/src/G4ITStepProcessor2.cc @@ -123,11 +123,11 @@ void G4ITStepProcessor::DoIt(double timeStep) G4TrackManyList* mainList = fpTrackContainer->GetMainList(); G4TrackManyList::iterator it = mainList->end(); it--; - size_t initialSize = mainList->size(); + std::size_t initialSize = mainList->size(); // G4cout << "initialSize = " << initialSize << G4endl; - for(size_t i = 0 ; i < initialSize ; ++i) + for(std::size_t i = 0 ; i < initialSize ; ++i) { // G4cout << "i = " << i << G4endl; @@ -221,7 +221,7 @@ void G4ITStepProcessor::ExtractDoItData() G4ITReactionSet::Instance()->RemoveReactionSet(fpTrack); if (fpSecondary) { - for (size_t i = 0; i < fpSecondary->size(); ++i) + for (std::size_t i = 0; i < fpSecondary->size(); ++i) { delete (*fpSecondary)[i]; } @@ -567,7 +567,7 @@ void G4ITStepProcessor::InvokeAtRestDoItProcs() fpState->fSelectedAtRestDoItVector; // invoke selected process - for(size_t np = 0; np < fpProcessInfo->MAXofAtRestLoops; np++) + for(std::size_t np = 0; np < fpProcessInfo->MAXofAtRestLoops; ++np) { // // Note: DoItVector has inverse order against GetPhysIntVector @@ -576,7 +576,7 @@ void G4ITStepProcessor::InvokeAtRestDoItProcs() if(selectedAtRestDoItVector[fpProcessInfo->MAXofAtRestLoops - np - 1] != InActivated) { fpCurrentProcess = - (G4VITProcess*) (*fpProcessInfo->fpAtRestDoItVector)[np]; + (G4VITProcess*) (*fpProcessInfo->fpAtRestDoItVector)[(G4int)np]; // G4cout << " Invoke : " // << fpCurrentProcess->GetProcessName() @@ -609,7 +609,7 @@ void G4ITStepProcessor::InvokeAtRestDoItProcs() fpParticleChange->Clear(); } //if(fSelectedAtRestDoItVector[np] != InActivated){ - } //for(size_t np=0; np < MAXofAtRestLoops; np++){ + } //for(std::size_t np=0; np < MAXofAtRestLoops; ++np){ fpStep->UpdateTrack(); // Modification par rapport au transport standard : @@ -644,10 +644,10 @@ void G4ITStepProcessor::InvokeAlongStepDoItProcs() } // Invoke the all active continuous processes - for(size_t ci = 0; ci < fpProcessInfo->MAXofAlongStepLoops; ci++) + for(std::size_t ci = 0; ci < fpProcessInfo->MAXofAlongStepLoops; ++ci) { fpCurrentProcess = - (G4VITProcess*) (*fpProcessInfo->fpAlongStepDoItVector)[ci]; + (G4VITProcess*) (*fpProcessInfo->fpAlongStepDoItVector)[(G4int)ci]; if(fpCurrentProcess == 0) continue; // NULL means the process is inactivated by a user on fly. @@ -711,13 +711,13 @@ void G4ITStepProcessor::InvokeAlongStepDoItProcs() void G4ITStepProcessor::InvokePostStepDoItProcs() { - size_t _MAXofPostStepLoops = fpProcessInfo->MAXofPostStepLoops; + std::size_t _MAXofPostStepLoops = fpProcessInfo->MAXofPostStepLoops; G4SelectedPostStepDoItVector& selectedPostStepDoItVector = fpState ->fSelectedPostStepDoItVector; G4StepStatus& stepStatus = fpState->fStepStatus; // Invoke the specified discrete processes - for(size_t np = 0; np < _MAXofPostStepLoops; np++) + for(std::size_t np = 0; np < _MAXofPostStepLoops; ++np) { // // Note: DoItVector has inverse order against GetPhysIntVector @@ -743,7 +743,7 @@ void G4ITStepProcessor::InvokePostStepDoItProcs() // but extra treatment for processes with Strongly Forced flag if(fpTrack->GetTrackStatus() == fStopAndKill) { - for(size_t np1 = np + 1; np1 < _MAXofPostStepLoops; np1++) + for(std::size_t np1 = np + 1; np1 < _MAXofPostStepLoops; ++np1) { G4int Cond2 = selectedPostStepDoItVector[_MAXofPostStepLoops - np1 - 1]; @@ -754,14 +754,14 @@ void G4ITStepProcessor::InvokePostStepDoItProcs() } break; } - } //for(size_t np=0; np < MAXofPostStepLoops; np++){ + } //for(std::size_t np=0; np < MAXofPostStepLoops; ++np){ } //______________________________________________________________________________ -void G4ITStepProcessor::InvokePSDIP(size_t np) +void G4ITStepProcessor::InvokePSDIP(std::size_t np) { - fpCurrentProcess = (G4VITProcess*) (*fpProcessInfo->fpPostStepDoItVector)[np]; + fpCurrentProcess = (G4VITProcess*) (*fpProcessInfo->fpPostStepDoItVector)[(G4int)np]; fpCurrentProcess->SetProcessState(fpTrackingInfo->GetProcessState(fpCurrentProcess ->GetProcessID())); @@ -862,13 +862,13 @@ void G4ITStepProcessor::FindTransportationStep() void G4ITStepProcessor::InvokeTransportationProc() { - size_t _MAXofPostStepLoops = fpProcessInfo->MAXofPostStepLoops; + std::size_t _MAXofPostStepLoops = fpProcessInfo->MAXofPostStepLoops; G4SelectedPostStepDoItVector& selectedPostStepDoItVector = fpState ->fSelectedPostStepDoItVector; G4StepStatus& stepStatus = fpState->fStepStatus; // Invoke the specified discrete processes - for(size_t np = 0; np < _MAXofPostStepLoops; np++) + for(std::size_t np = 0; np < _MAXofPostStepLoops; ++np) { // // Note: DoItVector has inverse order against GetPhysIntVector @@ -891,7 +891,7 @@ void G4ITStepProcessor::InvokeTransportationProc() // but extra treatment for processes with Strongly Forced flag if(fpTrack->GetTrackStatus() == fStopAndKill) { - for(size_t np1 = np + 1; np1 < _MAXofPostStepLoops; np1++) + for(std::size_t np1 = np + 1; np1 < _MAXofPostStepLoops; ++np1) { G4int Cond2 = selectedPostStepDoItVector[_MAXofPostStepLoops - np1 - 1]; if(Cond2 == StronglyForced) diff --git a/source/processes/electromagnetic/dna/management/src/G4ITSteppingVerbose.cc b/source/processes/electromagnetic/dna/management/src/G4ITSteppingVerbose.cc index 0072273310..ab54cc10d5 100644 --- a/source/processes/electromagnetic/dna/management/src/G4ITSteppingVerbose.cc +++ b/source/processes/electromagnetic/dna/management/src/G4ITSteppingVerbose.cc @@ -37,7 +37,6 @@ #include "G4ITSteppingVerbose.hh" #include "G4ITStepProcessor.hh" #include "G4SystemOfUnits.hh" -//#include "G4VSensitiveDetector.hh" // Include from 'hits/digi' #include "G4StepStatus.hh" // Include from 'tracking' #include "G4IT.hh" @@ -90,20 +89,20 @@ void G4ITSteppingVerbose::AtRestDoItInvoked() { G4int npt = 0; G4cout << " **List of AtRestDoIt invoked:" << G4endl; - for(size_t np = 0; np < MAXofAtRestLoops; np++) + for(std::size_t np = 0; np < MAXofAtRestLoops; ++np) { - size_t npGPIL = MAXofAtRestLoops - np - 1; + std::size_t npGPIL = MAXofAtRestLoops - np - 1; if((*fSelectedAtRestDoItVector)[npGPIL] == 2) { - npt++; - ptProcManager = (*fAtRestDoItVector)[np]; + ++npt; + ptProcManager = (*fAtRestDoItVector)[(G4int)np]; G4cout << " # " << npt << " : " << ptProcManager->GetProcessName() << " (Forced)" << G4endl; } else if ( (*fSelectedAtRestDoItVector)[npGPIL] == 1 ) { - npt++; - ptProcManager = (*fAtRestDoItVector)[np]; + ++npt; + ptProcManager = (*fAtRestDoItVector)[(G4int)np]; G4cout << " # " << npt << " : " << ptProcManager->GetProcessName() << G4endl; } @@ -115,8 +114,8 @@ void G4ITSteppingVerbose::AtRestDoItInvoked() { G4cout << " -- List of secondaries generated : " << "(x,y,z,kE,t,PID) --" << G4endl; - for( size_t lp1=(*fSecondary).size()-fN2ndariesAtRestDoIt; - lp1<(*fSecondary).size(); lp1++) + for(std::size_t lp1=(*fSecondary).size()-fN2ndariesAtRestDoIt; + lp1<(*fSecondary).size(); ++lp1) { G4cout << " " << std::setw( 9) @@ -160,9 +159,9 @@ void G4ITSteppingVerbose::AlongStepDoItAllDone() G4cout << " >>AlongStepDoIt (after all invocations):" << G4endl; G4cout << " ++List of invoked processes " << G4endl; - for(size_t ci=0; ci0) { - for(size_t lp1=0; lp1<(*fSecondary).size(); lp1++) + for(std::size_t lp1=0; lp1<(*fSecondary).size(); ++lp1) { G4cout << " " << std::setw( 9) @@ -224,20 +223,20 @@ void G4ITSteppingVerbose::PostStepDoItAllDone() G4cout << " **PostStepDoIt (after all invocations):" << G4endl; G4cout << " ++List of invoked processes " << G4endl; - for(size_t np = 0; np < MAXofPostStepLoops; np++) + for(std::size_t np = 0; np < MAXofPostStepLoops; ++np) { - size_t npGPIL = MAXofPostStepLoops - np - 1; + std::size_t npGPIL = MAXofPostStepLoops - np - 1; if((*fSelectedPostStepDoItVector)[npGPIL] == 2) { npt++; - ptProcManager = (*fPostStepDoItVector)[np]; + ptProcManager = (*fPostStepDoItVector)[(G4int)np]; G4cout << " " << npt << ") " << ptProcManager->GetProcessName() << " (Forced)" << G4endl; } else if ( (*fSelectedPostStepDoItVector)[npGPIL] == 1) { npt++; - ptProcManager = (*fPostStepDoItVector)[np]; + ptProcManager = (*fPostStepDoItVector)[(G4int)np]; G4cout << " " << npt << ") " << ptProcManager->GetProcessName() << G4endl; } @@ -251,7 +250,7 @@ void G4ITSteppingVerbose::PostStepDoItAllDone() if((*fSecondary).size() > 0) { - for(size_t lp1 = 0; lp1 < (*fSecondary).size(); lp1++) + for(std::size_t lp1 = 0; lp1 < (*fSecondary).size(); ++lp1) { G4cout << " " << std::setw(9) << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(), "Length") @@ -284,7 +283,7 @@ void G4ITSteppingVerbose::StepInfoForLeadingTrack() if(fVerboseLevel < 2) { CopyState(); - G4int prec = G4cout.precision(3); + G4long prec = G4cout.precision(3); // G4cout.precision(16); if(fVerboseLevel >= 4) VerboseTrack(); @@ -357,7 +356,8 @@ void G4ITSteppingVerbose::StepInfoForLeadingTrack() << std::setw(3) << (*fSecondary).size() << " ---------------" << G4endl; - for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; lp1<(*fSecondary).size(); lp1++) + for(std::size_t lp1=(*fSecondary).size()-tN2ndariesTot; + lp1<(*fSecondary).size(); ++lp1) { G4cout << " : " << std::setw( 9) @@ -388,7 +388,7 @@ void G4ITSteppingVerbose::StepInfo() } CopyState(); - G4int prec = G4cout.precision(3); + G4long prec = G4cout.precision(3); // G4cout.precision(16); if(fVerboseLevel >= 4) VerboseTrack(); @@ -460,7 +460,8 @@ void G4ITSteppingVerbose::StepInfo() << std::setw(3) << (*fSecondary).size() << " ---------------" << G4endl; - for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; lp1<(*fSecondary).size(); lp1++) + for(std::size_t lp1=(*fSecondary).size()-tN2ndariesTot; + lp1<(*fSecondary).size(); ++lp1) { G4cout << " : " << std::setw( 9) @@ -593,7 +594,7 @@ void G4ITSteppingVerbose::TrackingStarted(G4Track* track) return; } - G4int prec = G4cout.precision(3); + G4long prec = G4cout.precision(3); if(fVerboseLevel > 0) { fTrack = track; @@ -698,8 +699,8 @@ void G4ITSteppingVerbose::AlongStepDoItOneByOne() if(fN2ndariesAlongStepDoIt > 0) { - for(size_t lp1 = (*fSecondary).size() - fN2ndariesAlongStepDoIt; - lp1 < (*fSecondary).size(); lp1++) + for(std::size_t lp1 = (*fSecondary).size() - fN2ndariesAlongStepDoIt; + lp1 < (*fSecondary).size(); ++lp1) { G4cout << " " << std::setw(9) << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(), "Length") @@ -740,8 +741,8 @@ void G4ITSteppingVerbose::PostStepDoItOneByOne() if(fN2ndariesPostStepDoIt > 0) { - for(size_t lp1 = (*fSecondary).size() - fN2ndariesPostStepDoIt; - lp1 < (*fSecondary).size(); lp1++) + for(std::size_t lp1 = (*fSecondary).size() - fN2ndariesPostStepDoIt; + lp1 < (*fSecondary).size(); ++lp1) { G4cout << " " << std::setw(9) << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(), "Length") @@ -772,7 +773,7 @@ void G4ITSteppingVerbose::VerboseTrack() // Show header G4cout << G4endl; G4cout << " ++G4Track Information " << G4endl; - G4int prec = G4cout.precision(3); + G4long prec = G4cout.precision(3); G4cout << " -----------------------------------------------" << G4endl; G4cout << " G4Track Information " << std::setw(20) << G4endl; @@ -931,7 +932,7 @@ void G4ITSteppingVerbose::ShowStep() const } G4String volName; - G4int oldprc; + G4long oldprc; // Show header G4cout << G4endl; @@ -1152,7 +1153,7 @@ void G4ITSteppingVerbose::PreStepVerbose(G4Track* track) if(volume->IsParameterised() || volume->IsReplicated()) { volumeName += " "; - volumeName += nextTouchable->GetReplicaNumber(); + volumeName += (char)nextTouchable->GetReplicaNumber(); } } else @@ -1191,7 +1192,7 @@ void G4ITSteppingVerbose::PostStepVerbose(G4Track* track) if(volume->IsParameterised() || volume->IsReplicated()) { volumeName += " "; - volumeName += nextTouchable->GetReplicaNumber(); + volumeName += (char)nextTouchable->GetReplicaNumber(); } G4cout << setw(25) << volumeName; @@ -1221,7 +1222,7 @@ void G4ITSteppingVerbose::PostStepVerbose(G4Track* track) if(secondaries->empty() == false) { G4cout << "\t\t ---->"; - for(size_t j = 0; j < secondaries->size(); ++j) + for(std::size_t j = 0; j < secondaries->size(); ++j) { G4cout << GetIT((*secondaries)[j])->GetName() << "(" << (*secondaries)[j]->GetTrackID() << ")" << " "; diff --git a/source/processes/electromagnetic/dna/management/src/G4KDMap.cc b/source/processes/electromagnetic/dna/management/src/G4KDMap.cc index a1cf59574a..c5c8adfe1a 100644 --- a/source/processes/electromagnetic/dna/management/src/G4KDMap.cc +++ b/source/processes/electromagnetic/dna/management/src/G4KDMap.cc @@ -32,13 +32,13 @@ using namespace std; typedef std::deque::iterator _deq_iterator; -bool __1DSortOut::sortOutNDim::operator()(G4KDNode_Base* const & lhs, - G4KDNode_Base* const & rhs) //const +G4bool __1DSortOut::sortOutNDim::operator()(G4KDNode_Base* const & lhs, + G4KDNode_Base* const & rhs) //const { return (*lhs)[fDimension] < (*rhs)[fDimension]; } -__1DSortOut::__1DSortOut(size_t dimension) : +__1DSortOut::__1DSortOut(std::size_t dimension) : fSortOutNDim(dimension) { } @@ -48,15 +48,15 @@ __1DSortOut::__1DSortOut(const __1DSortOut& right) : { } -int __1DSortOut::GetDimension() +G4int __1DSortOut::GetDimension() { - return fSortOutNDim.fDimension; + return (G4int)fSortOutNDim.fDimension; } -G4KDNode_Base* __1DSortOut::GetMidle(size_t& main_middle) +G4KDNode_Base* __1DSortOut::GetMidle(std::size_t& main_middle) { - size_t contSize = fContainer.size(); - main_middle = (size_t) ceil(contSize / 2.); // ceil = round up + std::size_t contSize = fContainer.size(); + main_middle = (std::size_t) ceil(contSize / 2.); // ceil = round up return fContainer[main_middle]; } @@ -67,7 +67,7 @@ _deq_iterator __1DSortOut::Insert(G4KDNode_Base* pos) G4KDNode_Base* __1DSortOut::PopOutMiddle() { - size_t middle; + std::size_t middle; G4KDNode_Base* pos = GetMidle(middle); _deq_iterator deq_pos = fContainer.begin() + middle; @@ -91,13 +91,13 @@ void G4KDMap::Insert(G4KDNode_Base* pos) { vector<_deq_iterator>& vit = fMap[pos]; - size_t maxSize = fSortOut.size(); + std::size_t maxSize = fSortOut.size(); G4cout << "G4KDMap::Insert : " << maxSize << G4endl; vit.reserve(maxSize); - for (size_t i = 0; i < fSortOut.size(); ++i) + for (std::size_t i = 0; i < fSortOut.size(); ++i) { vit[i] = fSortOut[i].Insert(pos); @@ -117,7 +117,7 @@ void G4KDMap::Insert(G4KDNode_Base* pos) G4KDNode* tmpNode = fMap_it->first; - for(size_t i = 0 ; i < fSortOut.size() ; i++) + for(std::size_t i = 0 ; i < fSortOut.size() ; i++) { G4cout << "i = " << i << G4endl; G4cout << "vit[i] = " << *(vit[i]) << G4endl; @@ -134,7 +134,7 @@ void G4KDMap::Insert(G4KDNode_Base* pos) fIsSorted = false; } -G4KDNode_Base* G4KDMap::PopOutMiddle(size_t dimension) +G4KDNode_Base* G4KDMap::PopOutMiddle(std::size_t dimension) { G4cout << "_____________" << G4endl; G4cout << "G4KDMap::PopOutMiddle ( "<< dimension << " )" << G4endl; @@ -169,7 +169,7 @@ G4KDNode_Base* G4KDMap::PopOutMiddle(size_t dimension) } */ - for(size_t i = 0; i < fSortOut.size(); i++) + for(std::size_t i = 0; i < fSortOut.size(); ++i) { if(i != dimension) { @@ -195,7 +195,7 @@ G4KDNode_Base* G4KDMap::PopOutMiddle(size_t dimension) void G4KDMap::Sort() { - for (size_t i = 0; i < fSortOut.size(); ++i) + for (std::size_t i = 0; i < fSortOut.size(); ++i) { fSortOut[i].Sort(); } diff --git a/source/processes/electromagnetic/dna/management/src/G4KDNode.cc b/source/processes/electromagnetic/dna/management/src/G4KDNode.cc index 0167de46ca..63c7890ed2 100644 --- a/source/processes/electromagnetic/dna/management/src/G4KDNode.cc +++ b/source/processes/electromagnetic/dna/management/src/G4KDNode.cc @@ -108,15 +108,15 @@ void G4KDNode_Base::InactiveNode() fTree->NoticeNodeDeactivation(); } -int G4KDNode_Base::GetDim() const +G4int G4KDNode_Base::GetDim() const { if(fTree) - return fTree->GetDim(); + return (G4int)fTree->GetDim(); else - return -1; + return -1; } -int G4KDNode_Base::Insert(G4KDNode_Base* newNode) +G4int G4KDNode_Base::Insert(G4KDNode_Base* newNode) { G4KDNode_Base* aParent = FindParent(*newNode); // TODO check p == aParent->pos @@ -178,7 +178,7 @@ void G4KDNode_Base::Print(std::ostream& out, int level) const { // Print node level out << G4endl; - for (int i=0; i*, + void SampleSecondaries(std::vector*, const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double tmin, - G4double maxEnergy); + G4double maxEnergy) override; inline void SelectStationary(G4bool input); protected: - G4ParticleChangeForGamma* fParticleChangeForGamma; + G4ParticleChangeForGamma* fParticleChangeForGamma = nullptr; private: G4bool statCode; // Water density table - const std::vector* fpMolWaterDensity; + const std::vector* fpMolWaterDensity = nullptr; std::map > lowEnergyLimit; std::map > highEnergyLimit; @@ -115,11 +115,11 @@ private: G4DNADingfelderChargeDecreaseModel(const G4DNADingfelderChargeDecreaseModel&); // Reusable particle definitions - G4ParticleDefinition* protonDef; - G4ParticleDefinition* alphaPlusPlusDef; - G4ParticleDefinition* alphaPlusDef; - G4ParticleDefinition* hydrogenDef; - G4ParticleDefinition* heliumDef; + G4ParticleDefinition* protonDef = nullptr; + G4ParticleDefinition* alphaPlusPlusDef = nullptr; + G4ParticleDefinition* alphaPlusDef = nullptr; + G4ParticleDefinition* hydrogenDef = nullptr; + G4ParticleDefinition* heliumDef = nullptr; }; diff --git a/source/processes/electromagnetic/dna/models/include/G4DNADiracRMatrixExcitationModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNADiracRMatrixExcitationModel.hh old mode 100755 new mode 100644 diff --git a/source/processes/electromagnetic/dna/models/include/G4DNAGillespieDirectMethod.hh b/source/processes/electromagnetic/dna/models/include/G4DNAGillespieDirectMethod.hh index 46e6a7938b..dd0d32388e 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNAGillespieDirectMethod.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNAGillespieDirectMethod.hh @@ -64,7 +64,7 @@ class G4DNAGillespieDirectMethod G4double VolumeOfNode(const Voxel& voxel); G4DNAMolecularReactionTable* fMolecularReactions; G4DNAMesh* fpMesh = nullptr; - G4double fTimeStep; + G4double fTimeStep = DBL_MAX; G4DNAEventSet* fpEventSet = nullptr; G4double fVerbose = 0; std::map fReactionDataMap; diff --git a/source/processes/electromagnetic/dna/models/include/G4DNAMillerGreenExcitationModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNAMillerGreenExcitationModel.hh index a4306bd85e..1a151b1292 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNAMillerGreenExcitationModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNAMillerGreenExcitationModel.hh @@ -132,11 +132,11 @@ private: G4DNAMillerGreenExcitationModel(const G4DNAMillerGreenExcitationModel&); // Reusable particle definitions - G4ParticleDefinition* protonDef; - G4ParticleDefinition* hydrogenDef; - G4ParticleDefinition* alphaPlusPlusDef; - G4ParticleDefinition* alphaPlusDef; - G4ParticleDefinition* heliumDef; + G4ParticleDefinition* protonDef = nullptr; + G4ParticleDefinition* hydrogenDef = nullptr; + G4ParticleDefinition* alphaPlusPlusDef = nullptr; + G4ParticleDefinition* alphaPlusDef = nullptr; + G4ParticleDefinition* heliumDef = nullptr; }; diff --git a/source/processes/electromagnetic/dna/models/include/G4DNAPTBExcitationModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNAPTBExcitationModel.hh index bbd42fbe8c..435c5e6014 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNAPTBExcitationModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNAPTBExcitationModel.hh @@ -43,6 +43,9 @@ #include "G4DNAWaterExcitationStructure.hh" +#include "G4DNAPTBExcitationStructure.hh" +#include "G4DNAPTBIonisationStructure.hh" + /*! * \brief The G4DNAPTBExcitationModel class * This class implements the PTB excitation model. @@ -117,6 +120,9 @@ private: G4DNAWaterExcitationStructure waterStructure; + G4DNAPTBExcitationStructure ptbExcitationStructure; + G4DNAPTBIonisationStructure ptbIonisationStructure; + typedef std::map > MapMeanEnergy; MapMeanEnergy tableMeanEnergyPTB; ///< map: [materialName]=energyValue diff --git a/source/processes/electromagnetic/dna/models/include/G4DNAQuinnPlasmonExcitationModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNAQuinnPlasmonExcitationModel.hh old mode 100755 new mode 100644 diff --git a/source/processes/electromagnetic/dna/models/include/G4DNARPWBAExcitationModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNARPWBAExcitationModel.hh index b1366b22c3..1456166dd4 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNARPWBAExcitationModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNARPWBAExcitationModel.hh @@ -23,13 +23,16 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +// Reference: +// A.D. Dominguez-Munoz, M.I. Gallardo, M.C. Bordage, +// Z. Francis, S. Incerti, M.A. Cortes-Giraldo, +// Radiat. Phys. Chem. 199 (2022) 110363. // -// Created on 2022/03/03 +// Class authors: +// A.D. Dominguez-Munoz +// M.A. Cortes-Giraldo (miancortes -at- us.es) // -// Authors: A.D. Dominguez-Munoz, M.I. Gallardo, M.C. Bordage, -// Z. Francis, S. Incerti, M.A. Cortes-Giraldo -// -// Contact: M.A. Cortes-Giraldo (miancortes -at- us.es) +// Class creation: 2022-03-03 // // diff --git a/source/processes/electromagnetic/dna/models/include/G4DNARPWBAIonisationModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNARPWBAIonisationModel.hh index 032a74676a..e6a3bd0302 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNARPWBAIonisationModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNARPWBAIonisationModel.hh @@ -23,14 +23,17 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +// Reference: +// A.D. Dominguez-Munoz, M.I. Gallardo, M.C. Bordage, +// Z. Francis, S. Incerti, M.A. Cortes-Giraldo, +// Radiat. Phys. Chem. 199 (2022) 110363. // -// Created on 2022/03/03 +// Class authors: +// A.D. Dominguez-Munoz +// M.A. Cortes-Giraldo (miancortes -at- us.es) +// +// Class creation: 2022-03-03 // -// Authors: A.D. Dominguez-Munoz, M.I. Gallardo, M.C. Bordage, -// Z. Francis, S. Incerti, M.A. Cortes-Giraldo -// -// Contact: M.A. Cortes-Giraldo (miancortes -at- us.es) -// // #ifndef G4DNARPWBAIonisationModel_h diff --git a/source/processes/electromagnetic/dna/models/include/G4DNARelativisticIonisationModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNARelativisticIonisationModel.hh old mode 100755 new mode 100644 diff --git a/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationExtendedModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationExtendedModel.hh index 4562ee7ae5..cee15dbd3f 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationExtendedModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationExtendedModel.hh @@ -70,14 +70,14 @@ public: protected: - G4ParticleChangeForGamma* fParticleChangeForGamma; + G4ParticleChangeForGamma* fParticleChangeForGamma = nullptr; private: G4bool statCode; // Water density table - const std::vector* fpWaterDensity; + const std::vector* fpWaterDensity = nullptr; //deexcitation manager to produce fluo photns and e- G4VAtomDeexcitation* fAtomDeexcitation; @@ -89,9 +89,13 @@ private: std::map lowEnergyLimitForA, lowEnergyLimitOfModelForA, killBelowEnergyForA; G4bool isInitialised; + G4bool isIon = false; G4int verboseLevel; // Cross section + G4DNACrossSectionDataSet* mainTable = nullptr; + G4DNACrossSectionDataSet* currentTable = nullptr; + const G4ParticleDefinition* currParticle = nullptr; typedef std::map > MapFile; MapFile tableFile; @@ -107,15 +111,6 @@ private: G4double incomingParticleEnergy, G4int shell); - // SI: Not necessary anymore since we now use interface to angle generator - /* - void RandomizeEjectedElectronDirection(G4ParticleDefinition* particleDefinition, - G4double incomingParticleEnergy, - G4double outgoingParticleEnergy, - G4double & cosTheta, - G4double & phi, G4int shell); - */ - G4double RejectionFunction(G4ParticleDefinition* particle, G4double k, G4double proposed_ws, @@ -150,6 +145,9 @@ private: G4double slaterEffectiveCharge[3]; G4double sCoefficient[3]; + G4double localMinEnergy = 0.0; + G4double currentScaledEnergy = 0.0; + G4double massC12 = 0.0; // Partial cross section @@ -157,7 +155,7 @@ private: G4double Sum(G4double energy, const G4String& particle); - G4int RandomSelect(G4double energy,const G4String& particle ); + G4int RandomSelect(G4double energy); G4ParticleDefinition* GetDNAIonParticleDefinition(const G4ParticleDefinition* particleDefinition); @@ -167,20 +165,17 @@ private: G4DNARuddIonisationExtendedModel(const G4DNARuddIonisationExtendedModel&); // Reusable particle definitions - G4ParticleDefinition* protonDef; - G4ParticleDefinition* hydrogenDef; - G4ParticleDefinition* alphaPlusPlusDef; - G4ParticleDefinition* alphaPlusDef; - G4ParticleDefinition* heliumDef; + G4ParticleDefinition* protonDef = nullptr; + G4ParticleDefinition* hydrogenDef = nullptr; + G4ParticleDefinition* alphaPlusPlusDef = nullptr; + G4ParticleDefinition* alphaPlusDef = nullptr; + G4ParticleDefinition* heliumDef = nullptr; - //G4ParticleDefinition* lithiumDef; - //G4ParticleDefinition* berylliumDef; - //G4ParticleDefinition* boronDef; - G4ParticleDefinition* carbonDef; - G4ParticleDefinition* nitrogenDef; - G4ParticleDefinition* oxygenDef; - G4ParticleDefinition* siliconDef; - G4ParticleDefinition* ironDef; + G4ParticleDefinition* carbonDef = nullptr; + G4ParticleDefinition* nitrogenDef = nullptr; + G4ParticleDefinition* oxygenDef = nullptr; + G4ParticleDefinition* siliconDef = nullptr; + G4ParticleDefinition* ironDef = nullptr; }; diff --git a/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationModel.hh index 0bce89ee8e..9aa3d4e0cc 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNARuddIonisationModel.hh @@ -70,17 +70,17 @@ public: protected: - G4ParticleChangeForGamma* fParticleChangeForGamma; + G4ParticleChangeForGamma* fParticleChangeForGamma = nullptr; private: G4bool statCode; // Water density table - const std::vector* fpWaterDensity; + const std::vector* fpWaterDensity = nullptr; //deexcitation manager to produce fluo photns and e- - G4VAtomDeexcitation* fAtomDeexcitation; + G4VAtomDeexcitation* fAtomDeexcitation = nullptr; std::map > lowEnergyLimit; std::map > highEnergyLimit; @@ -156,11 +156,11 @@ private: G4DNARuddIonisationModel(const G4DNARuddIonisationModel&); // Reusable particle definitions - G4ParticleDefinition* protonDef; - G4ParticleDefinition* hydrogenDef; - G4ParticleDefinition* alphaPlusPlusDef; - G4ParticleDefinition* alphaPlusDef; - G4ParticleDefinition* heliumDef; + G4ParticleDefinition* protonDef = nullptr; + G4ParticleDefinition* hydrogenDef = nullptr; + G4ParticleDefinition* alphaPlusPlusDef = nullptr; + G4ParticleDefinition* alphaPlusDef = nullptr; + G4ParticleDefinition* heliumDef = nullptr; }; diff --git a/source/processes/electromagnetic/dna/models/include/G4DNAUeharaScreenedRutherfordElasticModel.hh b/source/processes/electromagnetic/dna/models/include/G4DNAUeharaScreenedRutherfordElasticModel.hh index 9241cb3113..80ffff07e7 100644 --- a/source/processes/electromagnetic/dna/models/include/G4DNAUeharaScreenedRutherfordElasticModel.hh +++ b/source/processes/electromagnetic/dna/models/include/G4DNAUeharaScreenedRutherfordElasticModel.hh @@ -39,21 +39,21 @@ public: G4DNAUeharaScreenedRutherfordElasticModel(const G4ParticleDefinition* p = 0, const G4String& nam = "DNAUeharaScreenedRutherfordElasticModel"); - virtual ~G4DNAUeharaScreenedRutherfordElasticModel(); + ~G4DNAUeharaScreenedRutherfordElasticModel() override = default; - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + void Initialise(const G4ParticleDefinition*, const G4DataVector&) override; - virtual G4double CrossSectionPerVolume(const G4Material* material, - const G4ParticleDefinition* p, - G4double ekin, - G4double emin, - G4double emax); + G4double CrossSectionPerVolume(const G4Material* material, + const G4ParticleDefinition* p, + G4double ekin, + G4double emin, + G4double emax) override; - virtual void SampleSecondaries(std::vector*, - const G4MaterialCutsCouple*, - const G4DynamicParticle*, - G4double tmin, - G4double maxEnergy); + void SampleSecondaries(std::vector*, + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double tmin, + G4double maxEnergy) override; inline void SelectFasterComputation(G4bool input); @@ -64,27 +64,14 @@ public: inline void SelectHighEnergyLimit(G4double threshold); //--- -private: - G4double intermediateEnergyLimit; - - // -- Brenner & Zaider - std::vector betaCoeff; - std::vector deltaCoeff; - std::vector gamma035_10Coeff; - std::vector gamma10_100Coeff; - std::vector gamma100_200Coeff; + // + G4DNAUeharaScreenedRutherfordElasticModel& + operator=(const G4DNAUeharaScreenedRutherfordElasticModel &right) = delete; + G4DNAUeharaScreenedRutherfordElasticModel( + const G4DNAUeharaScreenedRutherfordElasticModel&) = delete; - // -- Water density table - const std::vector* fpWaterDensity; - -protected: - G4ParticleChangeForGamma* fParticleChangeForGamma; - private: - G4int verboseLevel; - G4bool fasterCode; - G4bool isInitialised; - + // -- Cross section G4double RutherfordCrossSection(G4double energy, G4double z); G4double ScreeningFactor(G4double energy, G4double z); @@ -98,11 +85,29 @@ private: G4double ScreenedRutherfordRandomizeCosTheta(G4double k, G4double z); - // - G4DNAUeharaScreenedRutherfordElasticModel& - operator=(const G4DNAUeharaScreenedRutherfordElasticModel &right); - G4DNAUeharaScreenedRutherfordElasticModel( - const G4DNAUeharaScreenedRutherfordElasticModel&); +protected: + G4ParticleChangeForGamma* fParticleChangeForGamma = nullptr; + +private: + G4double iLowEnergyLimit; + G4double intermediateEnergyLimit; + G4double iHighEnergyLimit; + + // -- Brenner & Zaider + std::vector betaCoeff; + std::vector deltaCoeff; + std::vector gamma035_10Coeff; + std::vector gamma10_100Coeff; + std::vector gamma100_200Coeff; + + // -- Water density table + const std::vector* fpWaterDensity = nullptr; + + G4int verboseLevel; + G4bool isInitialised = false; + // Selection of computation method + // We do not recommend "true" usage with the current cumul. proba. settings + G4bool fasterCode = false; }; diff --git a/source/processes/electromagnetic/dna/models/sources.cmake b/source/processes/electromagnetic/dna/models/sources.cmake index 50a59a4d02..a477ffc16b 100644 --- a/source/processes/electromagnetic/dna/models/sources.cmake +++ b/source/processes/electromagnetic/dna/models/sources.cmake @@ -150,6 +150,7 @@ geant4_module_link_libraries(G4emdna-models G4cuts G4emdna-man G4emdna-molman + G4emdna-moltypes G4emdna-utils G4emlowenergy G4emutils @@ -161,5 +162,5 @@ geant4_module_link_libraries(G4emdna-models G4partman G4track PRIVATE - G4emdna-moltypes - G4emstandard) + G4emstandard + G4ions) diff --git a/source/processes/electromagnetic/dna/models/src/G4DNABornExcitationModel1.cc b/source/processes/electromagnetic/dna/models/src/G4DNABornExcitationModel1.cc index a70e150342..8e7987226e 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNABornExcitationModel1.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNABornExcitationModel1.cc @@ -234,8 +234,8 @@ G4int G4DNABornExcitationModel1::RandomSelect(G4double k) G4int level = 0; G4double* valuesBuffer = new G4double[fTableData->NumberOfComponents()]; - const size_t n(fTableData->NumberOfComponents()); - size_t i(n); + const G4int n = (G4int)fTableData->NumberOfComponents(); + G4int i(n); G4double value = 0.; while (i > 0) diff --git a/source/processes/electromagnetic/dna/models/src/G4DNABornExcitationModel2.cc b/source/processes/electromagnetic/dna/models/src/G4DNABornExcitationModel2.cc index 9c98dd46f2..9dcdd9218f 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNABornExcitationModel2.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNABornExcitationModel2.cc @@ -131,24 +131,24 @@ void G4DNABornExcitationModel2::Initialise(const G4ParticleDefinition* particle, fTableData = new G4PhysicsTable(); fTableData->RetrievePhysicsTable(fullFileName.str().c_str(), true); /* - for(size_t level = 0; levelsize(); ++level) + for(std::size_t level = 0; levelsize(); ++level) { //(*fTableData)(level)->ScaleVector(1,scaleFactor); } */ - size_t finalBin_i = 2000; + std::size_t finalBin_i = 2000; G4double E_min = fLowEnergy; G4double E_max = fHighEnergy; fTotalXS = new G4PhysicsLogVector(E_min, E_max, finalBin_i, true); G4double energy; G4double finalXS; - for(size_t energy_i = 0; energy_i < finalBin_i; ++energy_i) + for(std::size_t energy_i = 0; energy_i < finalBin_i; ++energy_i) { energy = fTotalXS->Energy(energy_i); finalXS = 0; - for(size_t level = 0; levelsize(); ++level) + for(std::size_t level = 0; levelsize(); ++level) { finalXS += (*fTableData)(level)->Value(energy); } @@ -207,7 +207,7 @@ G4double G4DNABornExcitationModel2::CrossSectionPerVolume(const G4Material* mate { sigma = fTotalXS->Value(ekin, fLastBinCallForFinalXS); - // for(size_t i = 0; i < 5; ++i) + // for(std::size_t i = 0; i < 5; ++i) // sigma += (*fTableData)[i]->Value(ekin); if(sigma == 0) @@ -288,8 +288,8 @@ G4double G4DNABornExcitationModel2::GetPartialCrossSection(const G4Material*, G4int G4DNABornExcitationModel2::RandomSelect(G4double k) { - const size_t n(fTableData->size()); - size_t i(n); + const std::size_t n(fTableData->size()); + std::size_t i(n); G4double value = fTotalXS->Value(k, fLastBinCallForFinalXS); @@ -305,7 +305,7 @@ G4int G4DNABornExcitationModel2::RandomSelect(G4double k) partialXS = (*fTableData)(i)->Value(k); if (partialXS > value) { - return i; + return (G4int)i; } value -= partialXS; } diff --git a/source/processes/electromagnetic/dna/models/src/G4DNABornIonisationModel1.cc b/source/processes/electromagnetic/dna/models/src/G4DNABornIonisationModel1.cc index 8dad0f8f73..c23d178402 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNABornIonisationModel1.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNABornIonisationModel1.cc @@ -520,8 +520,8 @@ void G4DNABornIonisationModel1::SampleSecondaries(std::vector secNumberInit) { - for (size_t i=secNumberInit; i= ((*fvect)[i])->GetKineticEnergy()) @@ -990,8 +990,8 @@ G4int G4DNABornIonisationModel1::RandomSelect(G4double k, if (table != 0) { G4double* valuesBuffer = new G4double[table->NumberOfComponents()]; - const size_t n(table->NumberOfComponents()); - size_t i(n); + const G4int n = (G4int)table->NumberOfComponents(); + G4int i(n); G4double value = 0.; while (i > 0) diff --git a/source/processes/electromagnetic/dna/models/src/G4DNABornIonisationModel2.cc b/source/processes/electromagnetic/dna/models/src/G4DNABornIonisationModel2.cc index 2c40d15b9e..3983b8424e 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNABornIonisationModel2.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNABornIonisationModel2.cc @@ -397,8 +397,8 @@ void G4DNABornIonisationModel2::SampleSecondaries(std::vector secNumberInit) { - for (size_t i=secNumberInit; i= ((*fvect)[i])->GetKineticEnergy()) @@ -802,8 +802,8 @@ G4int G4DNABornIonisationModel2::RandomSelect(G4double k) G4int level = 0; G4double* valuesBuffer = new G4double[fTableData->NumberOfComponents()]; - const size_t n(fTableData->NumberOfComponents()); - size_t i(n); + const G4int n = (G4int)fTableData->NumberOfComponents(); + G4int i(n); G4double value = 0.; while (i > 0) diff --git a/source/processes/electromagnetic/dna/models/src/G4DNACPA100ExcitationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNACPA100ExcitationModel.cc index 2de6eb1333..0fed9bb5df 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNACPA100ExcitationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNACPA100ExcitationModel.cc @@ -344,8 +344,8 @@ G4int G4DNACPA100ExcitationModel::RandomSelect(G4double k, const G4String& parti if (table != 0) { G4double* valuesBuffer = new G4double[table->NumberOfComponents()]; - const size_t n(table->NumberOfComponents()); - size_t i(n); + const G4int n = (G4int)table->NumberOfComponents(); + G4int i(n); G4double value = 0.; //Verification diff --git a/source/processes/electromagnetic/dna/models/src/G4DNACPA100IonisationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNACPA100IonisationModel.cc index 9c79b95b0a..a3752773e9 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNACPA100IonisationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNACPA100IonisationModel.cc @@ -395,8 +395,8 @@ void G4DNACPA100IonisationModel::SampleSecondaries(std::vector secNumberInit) { - for (size_t i=secNumberInit; i= ((*fvect)[i])->GetKineticEnergy()) @@ -737,8 +737,8 @@ G4int G4DNACPA100IonisationModel::RandomSelect(G4double k, const G4String& parti if (table != 0) { G4double* valuesBuffer = new G4double[table->NumberOfComponents()]; - const size_t n(table->NumberOfComponents()); - size_t i(n); + const G4int n = (G4int)table->NumberOfComponents(); + G4int i(n); G4double value = 0.; //Verification diff --git a/source/processes/electromagnetic/dna/models/src/G4DNADingfelderChargeDecreaseModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNADingfelderChargeDecreaseModel.cc index 61f86a4b3e..b1417cb8f5 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNADingfelderChargeDecreaseModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNADingfelderChargeDecreaseModel.cc @@ -47,7 +47,6 @@ G4DNADingfelderChargeDecreaseModel::G4DNADingfelderChargeDecreaseModel(const G4P const G4String& nam) : G4VEmModel(nam), isInitialised(false) { - fpMolWaterDensity = 0; numberOfPartialCrossSections[0] = 0; numberOfPartialCrossSections[1] = 0; numberOfPartialCrossSections[2] = 0; @@ -64,8 +63,6 @@ G4VEmModel(nam), isInitialised(false) { G4cout << "Dingfelder charge decrease model is constructed " << G4endl; } - fParticleChangeForGamma = 0; - // Selection of stationary mode statCode = false; @@ -73,12 +70,6 @@ G4VEmModel(nam), isInitialised(false) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4DNADingfelderChargeDecreaseModel::~G4DNADingfelderChargeDecreaseModel() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - void G4DNADingfelderChargeDecreaseModel::Initialise(const G4ParticleDefinition* particle, const G4DataVector& /*cuts*/) { diff --git a/source/processes/electromagnetic/dna/models/src/G4DNADiracRMatrixExcitationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNADiracRMatrixExcitationModel.cc index 2f703aff1f..2fcb85999d 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNADiracRMatrixExcitationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNADiracRMatrixExcitationModel.cc @@ -279,16 +279,18 @@ G4int G4DNADiracRMatrixExcitationModel::RandomSelect G4double kineticEnergy) { G4double value = 0.; + + std::size_t NOfComp = fTableData->NumberOfComponents(); - G4double* valuesBuffer = new G4double[fTableData->NumberOfComponents()]; + auto valuesBuffer = new G4double[NOfComp]; - const size_t n(fTableData->NumberOfComponents()); + const G4int n = (G4int)fTableData->NumberOfComponents(); - size_t i(n); + G4int i(n); while (i > 0) { - i--; + --i; if ((fLowEnergyLimit<=kineticEnergy)&&(kineticEnergy 0) { - i--; + --i; if (valuesBuffer[i] > value) { delete[] valuesBuffer; diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAELSEPAElasticModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAELSEPAElasticModel.cc index 32437976bc..027d928a10 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAELSEPAElasticModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAELSEPAElasticModel.cc @@ -53,14 +53,14 @@ G4VEmModel(nam), isInitialised(false) G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); for(G4int i=0; iGetMaterialCutsCouple(i); const G4Material* material = couple->GetMaterial(); - G4int nelm = material->GetNumberOfElements(); + G4int nelm = (G4int)material->GetNumberOfElements(); const G4ElementVector* theElementVector = material->GetElementVector(); if(nelm==1) @@ -163,7 +163,7 @@ const G4DataVector& ) G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); // UNIT OF TCS G4double scaleFactor = 1.*cm*cm; @@ -182,7 +182,7 @@ const G4DataVector& ) const G4Material* material = couple->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - G4int nelm = material->GetNumberOfElements(); + G4int nelm = (G4int)material->GetNumberOfElements(); if (nelm==1){// Protection: only for single element G4int Z = G4lrint((*theElementVector)[0]->GetZ()); if (Z!=79)// Protection: only for GOLD @@ -404,10 +404,11 @@ G4double G4DNAELSEPAElasticModel::CrossSectionPerVolume G4double sigma=0; const G4ElementVector* theElementVector = material->GetElementVector(); - G4int nelm = material->GetNumberOfElements(); - if (nelm==1) {// Protection: only for single element + std::size_t nelm = material->GetNumberOfElements(); + if (nelm==1) // Protection: only for single element + { // Protection: only for GOLD - if (material->GetZ()!=79) return 0; + if (material->GetZ()!=79) return 0.0; G4int Z = G4lrint((*theElementVector)[0]->GetZ()); @@ -458,46 +459,48 @@ G4double G4DNAELSEPAElasticModel::CrossSectionPerVolume << sigma*atomicNDensity/(1./cm) << G4endl; G4cout << "=== G4DNAELSEPAElasticModel - XS INFO END" << G4endl; } - }else{ - fpMolDensity = - G4DNAMolecularMaterial::Instance()-> - GetNumMolPerVolTableFor(G4Material::GetMaterial("G4_WATER")); - atomicNDensity = (*fpMolDensity)[material->GetIndex()]; - if(atomicNDensity!= 0.0) - { - if (ekin < HighEnergyLimit() && ekin >= LowEnergyLimit()) - { - //std::map< G4int,G4DNACrossSectionDataSet*, - //std::less >::iterator pos; - ////pos = tableZData_H2O.find(0); // the data is stored as Z=0 - //pos = tableZData.find(0); // the data is stored as Z=0 - ////SI : XS must not be zero - //// otherwise sampling of secondaries method ignored - ////if (pos != tableZData_H2O.end()) - //if (pos != tableZData.end()) - //{ - // G4DNACrossSectionDataSet* table = pos->second; - // if (table != 0) - // { - // sigma = table->FindValue(ekin); - // } - //} + } + else + { + fpMolDensity = + G4DNAMolecularMaterial::Instance()-> + GetNumMolPerVolTableFor(G4Material::GetMaterial("G4_WATER")); + atomicNDensity = (*fpMolDensity)[material->GetIndex()]; + if(atomicNDensity!= 0.0) + { + if (ekin < HighEnergyLimit() && ekin >= LowEnergyLimit()) + { + //std::map< G4int,G4DNACrossSectionDataSet*, + //std::less >::iterator pos; + ////pos = tableZData_H2O.find(0); // the data is stored as Z=0 + //pos = tableZData.find(0); // the data is stored as Z=0 + ////SI : XS must not be zero + //// otherwise sampling of secondaries method ignored + ////if (pos != tableZData_H2O.end()) + //if (pos != tableZData.end()) + //{ + // G4DNACrossSectionDataSet* table = pos->second; + // if (table != 0) + // { + // sigma = table->FindValue(ekin); + // } + //} - sigma = fpData_H2O->FindValue(ekin); - } - } - if (verboseLevel > 2) - { - G4cout << "__________________________________" << G4endl; - G4cout << "=== G4DNAELSEPAElasticModel - XS INFO START" << G4endl; - G4cout << "=== Kinetic energy(eV)=" << ekin/eV - << " particle : " << particle->GetParticleName() << G4endl; - G4cout << "=== Cross section per water molecule (cm^2)=" - << sigma/cm/cm << G4endl; - G4cout << "=== Cross section per water molecule (cm^-1)=" - << sigma*atomicNDensity/(1./cm) << G4endl; - G4cout << "=== G4DNAELSEPAElasticModel - XS INFO END" << G4endl; - } + sigma = fpData_H2O->FindValue(ekin); + } + } + if (verboseLevel > 2) + { + G4cout << "__________________________________" << G4endl; + G4cout << "=== G4DNAELSEPAElasticModel - XS INFO START" << G4endl; + G4cout << "=== Kinetic energy(eV)=" << ekin/eV + << " particle : " << particle->GetParticleName() << G4endl; + G4cout << "=== Cross section per water molecule (cm^2)=" + << sigma/cm/cm << G4endl; + G4cout << "=== Cross section per water molecule (cm^-1)=" + << sigma*atomicNDensity/(1./cm) << G4endl; + G4cout << "=== G4DNAELSEPAElasticModel - XS INFO END" << G4endl; + } } return sigma*atomicNDensity; @@ -523,8 +526,9 @@ void G4DNAELSEPAElasticModel::SampleSecondaries( const G4Material* material = couple->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - G4int nelm = material->GetNumberOfElements(); - if (nelm==1){// Protection: only for single element + std::size_t nelm = material->GetNumberOfElements(); + if (nelm==1) // Protection: only for single element + { G4int Z = G4lrint((*theElementVector)[0]->GetZ()); if (Z!=79) return; if (electronEnergy0 < fkillBelowEnergy_Au) @@ -539,9 +543,12 @@ void G4DNAELSEPAElasticModel::SampleSecondaries( if(electronEnergy0>= fkillBelowEnergy_Au && electronEnergy0 < fhighEnergyLimit) { G4double cosTheta = 0; - if (electronEnergy0>=10*eV){ - cosTheta = RandomizeCosTheta(Z,electronEnergy0); - }else { + if (electronEnergy0>=10*eV) + { + cosTheta = RandomizeCosTheta(Z,electronEnergy0); + } + else + { cosTheta = RandomizeCosTheta(Z,10*eV); } @@ -561,8 +568,11 @@ void G4DNAELSEPAElasticModel::SampleSecondaries( fParticleChangeForGamma->SetProposedKineticEnergy(electronEnergy0); } - }else{ - if(material->GetName()=="G4_WATER"){ + } + else + { + if(material->GetName()=="G4_WATER") + { //The data for water is stored as Z=0 G4double cosTheta = RandomizeCosTheta(0,electronEnergy0); diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAEmfietzoglouExcitationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAEmfietzoglouExcitationModel.cc index 254fc1b412..9b92350cca 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAEmfietzoglouExcitationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAEmfietzoglouExcitationModel.cc @@ -242,8 +242,8 @@ G4int G4DNAEmfietzoglouExcitationModel::RandomSelect(G4double k, const G4String& if (table != 0) { G4double* valuesBuffer = new G4double[table->NumberOfComponents()]; - const size_t n(table->NumberOfComponents()); - size_t i(n); + const G4int n = (G4int)table->NumberOfComponents(); + G4int i(n); G4double value = 0.; //Check reading of initial xs file @@ -256,7 +256,7 @@ G4int G4DNAEmfietzoglouExcitationModel::RandomSelect(G4double k, const G4String& //G4cout << table->GetComponent(6)->FindValue(k)/ ((1.e-22 / 3.343) * m*m) << G4endl; //abort(); - while (i>0) + while (i>0) { i--; valuesBuffer[i] = table->GetComponent(i)->FindValue(k); diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAEmfietzoglouIonisationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAEmfietzoglouIonisationModel.cc index b5966a876d..c7e4f33fe1 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAEmfietzoglouIonisationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAEmfietzoglouIonisationModel.cc @@ -751,18 +751,17 @@ G4int G4DNAEmfietzoglouIonisationModel::RandomSelect(G4double k, { G4int level = 0; - std::map >::iterator pos; - pos = tableData.find(particle); + auto pos = tableData.find(particle); - if(pos != tableData.end()) + if(pos != tableData.cend()) { G4DNACrossSectionDataSet* table = pos->second; if(table != 0) { G4double* valuesBuffer = new G4double[table->NumberOfComponents()]; - const size_t n(table->NumberOfComponents()); - size_t i(n); + const G4int n = (G4int)table->NumberOfComponents(); + G4int i(n); G4double value = 0.; while(i > 0) diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAIRT.cc b/source/processes/electromagnetic/dna/models/src/G4DNAIRT.cc index 37823df96b..5bcfcec7cd 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAIRT.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAIRT.cc @@ -125,6 +125,14 @@ void G4DNAIRT::Initialize(){ SpaceBinning(); // 1. binning the space IRTSampling(); // 2. Sampling of the IRT + //hoang : if the first IRTSampling won't give any reactions, end the simu. + if(fReactionSet->Empty()) + { + for (auto pTrack : *fTrackHolder->GetMainList()) + { + pTrack->SetGlobalTime(G4Scheduler::Instance()->GetEndTime()); + } + } } void G4DNAIRT::SpaceBinning(){ diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAIRTMoleculeEncounterStepper.cc b/source/processes/electromagnetic/dna/models/src/G4DNAIRTMoleculeEncounterStepper.cc index 615bf07912..043fe04b47 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAIRTMoleculeEncounterStepper.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAIRTMoleculeEncounterStepper.cc @@ -150,7 +150,7 @@ G4DNAIRTMoleculeEncounterStepper::CalculateStep(const G4Track& trackA, return DBL_MAX; } - G4int nbReactives = pReactantList->size(); + G4int nbReactives = (G4int)pReactantList->size(); if (nbReactives == 0) { @@ -178,7 +178,7 @@ G4DNAIRTMoleculeEncounterStepper::CalculateStep(const G4Track& trackA, //__________________________________________________________________ // Start looping on possible reactants - for (G4int i = 0; i < nbReactives; i++) + for (G4int i = 0; i < nbReactives; ++i) { auto pMoleculeB = (*pReactantList)[i]; diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAIndependentReactionTimeStepper.cc b/source/processes/electromagnetic/dna/models/src/G4DNAIndependentReactionTimeStepper.cc index 7f0d57a88f..662c2b993d 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAIndependentReactionTimeStepper.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAIndependentReactionTimeStepper.cc @@ -117,7 +117,7 @@ G4double G4DNAIndependentReactionTimeStepper::CalculateStep( return DBL_MAX; } - G4int nbReactives = pReactantList->size(); + G4int nbReactives = (G4int)pReactantList->size(); if(nbReactives == 0) { @@ -142,7 +142,7 @@ G4double G4DNAIndependentReactionTimeStepper::CalculateStep( } fReactants = std::make_shared>(); fReactionModel->Initialise(pMolConfA, trackA); - for(G4int i = 0; i < nbReactives; i++) + for(G4int i = 0; i < nbReactives; ++i) { auto pMoleculeB = (*pReactantList)[i]; G4int key = pMoleculeB->GetMoleculeID(); @@ -177,48 +177,52 @@ G4double G4DNAIndependentReactionTimeStepper::CalculateStep( "::CalculateStep()", "G4DNAIndependentReactionTimeStepper007", FatalException, exceptionDescription); - } - - if(fCheckedTracks.find(pTrackB->GetTrackID()) != fCheckedTracks.end()) + }else { - continue; - } - - Utils utils(trackA, *pTrackB); - - auto pMolB = GetMolecule(pTrackB); - auto pMolConfB = pMolB->GetMolecularConfiguration(); - G4double distance = (trackA.GetPosition() - pTrackB->GetPosition()).mag(); - if(distance * distance < Reff * Reff) - { - auto reactionData = - fMolecularReactionTable->GetReactionData(pMolConfA, pMolConfB); - if(reactionData->GetProbability() > G4UniformRand()) + if(fCheckedTracks.find(pTrackB->GetTrackID()) != fCheckedTracks.end()) { - if(!fHasAlreadyReachedNullTime) + continue; + } + + Utils utils(trackA, *pTrackB); + + auto pMolB = GetMolecule(pTrackB); + auto pMolConfB = pMolB->GetMolecularConfiguration(); + G4double distance = (trackA.GetPosition() - pTrackB->GetPosition()).mag(); + if(distance * distance < Reff * Reff) + { + auto reactionData = + fMolecularReactionTable->GetReactionData(pMolConfA, pMolConfB); + if(G4Scheduler::Instance()->GetGlobalTime() == G4Scheduler::Instance()->GetStartTime()) { - fReactants->clear(); - fHasAlreadyReachedNullTime = true; + if(reactionData->GetProbability() > G4UniformRand()) + { + if(!fHasAlreadyReachedNullTime) + { + fReactants->clear(); + fHasAlreadyReachedNullTime = true; + } + fSampledMinTimeStep = 0.; + CheckAndRecordResults(utils); + } } - fSampledMinTimeStep = 0.; + } + else + { + G4double tempMinET = GetTimeToEncounter(trackA, *pTrackB); + if(tempMinET < 0 || tempMinET > G4Scheduler::Instance()->GetEndTime()) + { + continue; + } + if(tempMinET >= fSampledMinTimeStep) + { + continue; + } + fSampledMinTimeStep = tempMinET; + fReactants->clear(); CheckAndRecordResults(utils); } } - else - { - G4double tempMinET = GetTimeToEncounter(trackA, *pTrackB); - if(tempMinET < 0 || tempMinET > G4Scheduler::Instance()->GetEndTime()) - { - continue; - } - if(tempMinET >= fSampledMinTimeStep) - { - continue; - } - fSampledMinTimeStep = tempMinET; - fReactants->clear(); - CheckAndRecordResults(utils); - } } } diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAMakeReaction.cc b/source/processes/electromagnetic/dna/models/src/G4DNAMakeReaction.cc index 06dede1ee6..ee673def9d 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAMakeReaction.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAMakeReaction.cc @@ -189,12 +189,14 @@ G4DNAMakeReaction::FindReaction(G4ITReactionSet* pReactionSet, { std::vector> ReactionInfo; ReactionInfo.clear(); - auto pReactionChange = dynamic_cast(fpTimeStepper)-> - FindReaction(pReactionSet,currentStepTime); - - if (pReactionChange != nullptr) - { + auto stepper = dynamic_cast(fpTimeStepper); + if(stepper != nullptr){ + auto pReactionChange = stepper-> + FindReaction(pReactionSet,currentStepTime); + if (pReactionChange != nullptr) + { ReactionInfo.push_back(std::move(pReactionChange)); + } } return ReactionInfo; } diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAModelInterface.cc b/source/processes/electromagnetic/dna/models/src/G4DNAModelInterface.cc index f1576548c0..7b04e44818 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAModelInterface.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAModelInterface.cc @@ -45,16 +45,16 @@ G4DNAModelInterface::G4DNAModelInterface(const G4String &nam) G4DNAModelInterface::~G4DNAModelInterface() { // Loop on all the registered models to properly delete them (free the memory) - for(unsigned int i=0, ie = fRegisteredModels.size(); iInitialise(particle, cuts, fpParticleChangeForGamma); + fRegisteredModels.at(i)->Initialise(particle, cuts, fpParticleChangeForGamma); } @@ -153,11 +153,11 @@ G4double G4DNAModelInterface::CrossSectionPerVolume(const G4Material* material, std::map::const_iterator it = componentsMap.begin(); // Get the size - unsigned int componentNumber = componentsMap.size(); + std::size_t componentNumber = componentsMap.size(); // Loop on all the components //for(it = material->GetMatComponents().begin(); it!=material->GetMatComponents().end();++it) - for(unsigned int i=0; ifirst; @@ -348,7 +348,7 @@ void G4DNAModelInterface::BuildMaterialParticleModelTable(const G4ParticleDefini std::map componentMap = mat->GetMatComponents(); // Get the number of component within the composite - unsigned int compositeSize = componentMap.size(); + std::size_t compositeSize = componentMap.size(); // Check that the material is not a composite material if(componentMap.empty()) @@ -457,7 +457,7 @@ void G4DNAModelInterface::InsertModelInTable(const G4String& matName, const G4St // Loop on all models registered in the simulation to check: // 1- if they can be applied to the current material // 2- if they can be applied to the current particle - for(unsigned int i=0, ie=fRegisteredModels.size(); iIsParticleExistingInModelForMaterial(pName, matName)) @@ -492,7 +492,7 @@ void G4DNAModelInterface::InsertModelInTable(const G4String& matName, const G4St // Loop on all the model for the current couple // and fill a map with [lim] = modelNumber - for(unsigned int ii=0, em=models.size(); iiGetLowELimit(matName, pName); G4double highLim = models[ii]->GetHighELimit(matName, pName); @@ -502,14 +502,14 @@ void G4DNAModelInterface::InsertModelInTable(const G4String& matName, const G4St lowLim += smallDiff; } - sortMap[lowLim] = ii; + sortMap[lowLim] = (G4int)ii; if(sortMap.find(highLim) != sortMap.end() ) { highLim -= smallDiff; } - sortMap[highLim] = ii; + sortMap[highLim] = (G4int)ii; } // The map has been created and ordered at this point. @@ -524,7 +524,7 @@ void G4DNAModelInterface::InsertModelInTable(const G4String& matName, const G4St // Loop on all the models again. // The goal is to check if for each limit pairs we have the same model number // and that the upper and lower limit are consistent. - for(unsigned int ii=0, eii=models.size(); iifirst - smallDiff; G4int count1 = it->second; @@ -551,7 +551,7 @@ void G4DNAModelInterface::InsertModelInTable(const G4String& matName, const G4St oss<<" have several models registered for the "<GetName()<<"\n"; oss<<"low: "<GetLowELimit(matName, pName)/eV<<" eV \n"; @@ -596,7 +596,7 @@ G4VDNAModel *G4DNAModelInterface::GetDNAModel(const G4String &material, const G4 //G4bool isOneModelSelected = false; // Loop on all the models within the models vector and check if ekin is within the energy range. - for(int i=0, ie=models.size(); i= models[i]->GetLowELimit(material, particle) diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAMoleculeEncounterStepper.cc b/source/processes/electromagnetic/dna/models/src/G4DNAMoleculeEncounterStepper.cc index 9cac55448f..3cc9b8879b 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAMoleculeEncounterStepper.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAMoleculeEncounterStepper.cc @@ -163,7 +163,7 @@ G4DNAMoleculeEncounterStepper::CalculateStep(const G4Track& trackA, return DBL_MAX; } - G4int nbReactives = pReactantList->size(); + G4int nbReactives = (G4int)pReactantList->size(); if (nbReactives == 0) { diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAPTBElasticModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAPTBElasticModel.cc index e6fda7f79d..0a7aee4886 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAPTBElasticModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAPTBElasticModel.cc @@ -82,6 +82,16 @@ void G4DNAPTBElasticModel::Initialise(const G4ParticleDefinition* particle, { G4String particleName = particle->GetParticleName(); + // MPietrzak, adding paths for N2 + AddCrossSectionData("N2", + particleName, + "dna/sigma_elastic_e-_PTB_N2", + "dna/sigmadiff_cumulated_elastic_e-_PTB_N2", + scaleFactor); + SetLowELimit("N2", particleName, 10*eV); + SetHighELimit("N2", particleName, 1.02*MeV); + // MPietrzak + AddCrossSectionData("THF", particleName, "dna/sigma_elastic_e-_PTB_THF", diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAPTBExcitationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAPTBExcitationModel.cc index 3cc27ff579..893e72121e 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAPTBExcitationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAPTBExcitationModel.cc @@ -163,6 +163,15 @@ void G4DNAPTBExcitationModel::Initialise(const G4ParticleDefinition* particle, scaleFactor*33./50); SetLowELimit("backbone_TMP", particleName, 9.*eV); SetHighELimit("backbone_TMP", particleName, 1.*keV); + + // MPietrzak, adding paths for N2 + AddCrossSectionData("N2", + particleName, + "dna/sigma_excitation_e-_PTB_N2", + scaleFactor); + SetLowELimit("N2", particleName, 13.*eV); + SetHighELimit("N2", particleName, 1.02*MeV); + // MPietrzak } //******************************************************* @@ -233,7 +242,7 @@ G4double G4DNAPTBExcitationModel::CrossSectionPerVolume(const G4Material* /*mate //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4DNAPTBExcitationModel::SampleSecondaries(std::vector* /*fvect*/, +void G4DNAPTBExcitationModel::SampleSecondaries(std::vector* fvect, const G4MaterialCutsCouple* /*couple*/, const G4String& materialName, const G4DynamicParticle* aDynamicParticle, @@ -246,42 +255,90 @@ void G4DNAPTBExcitationModel::SampleSecondaries(std::vector* // Get the incident particle kinetic energy G4double k = aDynamicParticle->GetKineticEnergy(); + //Get the particle name + const G4String& particleName = aDynamicParticle->GetDefinition()->GetParticleName(); + // Get the energy limits + G4double lowLim = GetLowELimit(materialName, particleName); + G4double highLim = GetHighELimit(materialName, particleName); - if(materialName!="G4_WATER") + // Check if we are in the correct energy range + if (k >= lowLim && k < highLim) { - // Retrieve the excitation energy for the current material - G4double excitationEnergy = tableMeanEnergyPTB[materialName]; - - // Calculate the new energy of the particle - G4double newEnergy = k - excitationEnergy; - - // Check that the new energy is above zero before applying it the particle. - // Otherwise, do nothing. - if (newEnergy > 0) + if(materialName=="N2") { - particleChangeForGamma->ProposeMomentumDirection(aDynamicParticle->GetMomentumDirection()); - particleChangeForGamma->SetProposedKineticEnergy(newEnergy); - particleChangeForGamma->ProposeLocalEnergyDeposit(excitationEnergy); + + // Retrieve the excitation energy for the current material + G4int level = RandomSelectShell(k,particleName,materialName); + G4double excitationEnergy = ptbExcitationStructure.ExcitationEnergy(level, materialName); + + // Calculate the new energy of the particle + G4double newEnergy = k - excitationEnergy; + + // Check that the new energy is above zero before applying it the particle. + // Otherwise, do nothing. + if (newEnergy > 0) + { + particleChangeForGamma->ProposeMomentumDirection(aDynamicParticle->GetMomentumDirection()); + particleChangeForGamma->SetProposedKineticEnergy(newEnergy); + particleChangeForGamma->ProposeLocalEnergyDeposit(excitationEnergy); + G4double ioniThres = ptbIonisationStructure.IonisationEnergy(0,materialName); + // if excitation energy greater than ionisation threshold, then autoionisaiton + if((excitationEnergy>ioniThres)&&(G4UniformRand()<0.5)) + { + particleChangeForGamma->ProposeLocalEnergyDeposit(ioniThres); + // energy of ejected electron + G4double secondaryKinetic = excitationEnergy - ioniThres; + // random direction + G4double cosTheta = 2*G4UniformRand() - 1., phi = CLHEP::twopi*G4UniformRand(); + G4double sinTheta = std::sqrt(1. - cosTheta*cosTheta); + G4double ux = sinTheta*std::cos(phi), + uy = sinTheta*std::sin(phi), + uz = cosTheta; + G4ThreeVector deltaDirection(ux,uy,uz); + // Create the new particle with its characteristics + G4DynamicParticle* dp = new G4DynamicParticle (G4Electron::Electron(),deltaDirection,secondaryKinetic) ; + fvect->push_back(dp); + } + } else { + G4ExceptionDescription description; + description<<"Kinetic energy <= 0 at "< 0){ + particleChangeForGamma->ProposeMomentumDirection(aDynamicParticle->GetMomentumDirection()); + particleChangeForGamma->SetProposedKineticEnergy(newEnergy); + particleChangeForGamma->ProposeLocalEnergyDeposit(excitationEnergy); + } else { + G4ExceptionDescription description; + description<<"Kinetic energy <= 0 at "< 0){ + particleChangeForGamma->ProposeMomentumDirection(aDynamicParticle->GetMomentumDirection()); + particleChangeForGamma->SetProposedKineticEnergy(newEnergy); + particleChangeForGamma->ProposeLocalEnergyDeposit(excitationEnergy); + const G4Track * theIncomingTrack = particleChangeForGamma->GetCurrentTrack(); + G4DNAChemistryManager::Instance()->CreateWaterMolecule(eExcitedMolecule, + level, + theIncomingTrack); + } else { + G4ExceptionDescription description; + description<<"Kinetic energy <= 0 at "<GetDefinition()->GetParticleName(); - - G4int level = RandomSelectShell(k,particleName, materialName); - G4double excitationEnergy = waterStructure.ExcitationEnergy(level); - G4double newEnergy = k - excitationEnergy; - - if (newEnergy > 0) - { - particleChangeForGamma->ProposeMomentumDirection(aDynamicParticle->GetMomentumDirection()); - particleChangeForGamma->SetProposedKineticEnergy(newEnergy); - particleChangeForGamma->ProposeLocalEnergyDeposit(excitationEnergy); - } - - const G4Track * theIncomingTrack = particleChangeForGamma->GetCurrentTrack(); - G4DNAChemistryManager::Instance()->CreateWaterMolecule(eExcitedMolecule, - level, - theIncomingTrack); - } + } diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAPTBIonisationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAPTBIonisationModel.cc index 05e91523ec..61e7bda424 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAPTBIonisationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAPTBIonisationModel.cc @@ -98,6 +98,16 @@ void G4DNAPTBIonisationModel::Initialise(const G4ParticleDefinition* particle, // Raw materials // + // MPietrzak + AddCrossSectionData("N2", + particleName, + "dna/sigma_ionisation_e-_PTB_N2", + "dna/sigmadiff_cumulated_ionisation_e-_PTB_N2", + scaleFactor); + SetLowELimit("N2", particleName, 15.5*eV); + SetHighELimit("N2", particleName, 1.02*MeV); + // MPietrzak + AddCrossSectionData("THF", particleName, "dna/sigma_ionisation_e-_PTB_THF", diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAQuinnPlasmonExcitationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAQuinnPlasmonExcitationModel.cc index 73add95ca9..02da3aafea 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAQuinnPlasmonExcitationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAQuinnPlasmonExcitationModel.cc @@ -98,7 +98,7 @@ void G4DNAQuinnPlasmonExcitationModel::Initialise G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); for(G4int i=0;iGetElementVector(); - G4int nelm = material->GetNumberOfElements(); - if (nelm==1){// Protection: only for single element + std::size_t nelm = material->GetNumberOfElements(); + if (nelm==1) // Protection: only for single element + { G4int z = G4lrint((*theElementVector)[0]->GetZ()); - if(z<=100){nValenceElectron[z] = GetNValenceElectron(z);} + if(z<=100) + { + nValenceElectron[z] = GetNValenceElectron(z); + } + else + { + G4Exception("G4DNAQuinnPlasmonExcitationModel::Initialise","em0002", + FatalException,"The model is not applied for z>100"); + } } //for(G4int j=0;jGetZ()); diff --git a/source/processes/electromagnetic/dna/models/src/G4DNARPWBAExcitationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNARPWBAExcitationModel.cc index 922fe72272..0ccb378973 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNARPWBAExcitationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNARPWBAExcitationModel.cc @@ -23,14 +23,17 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +// Reference: +// A.D. Dominguez-Munoz, M.I. Gallardo, M.C. Bordage, +// Z. Francis, S. Incerti, M.A. Cortes-Giraldo, +// Radiat. Phys. Chem. 199 (2022) 110363. // -// Created on 2022/03/03 +// Class authors: +// A.D. Dominguez-Munoz +// M.A. Cortes-Giraldo (miancortes -at- us.es) +// +// Class creation: 2022-03-03 // -// Authors: A.D. Dominguez-Munoz, M.I. Gallardo, M.C. Bordage, -// Z. Francis, S. Incerti, M.A. Cortes-Giraldo -// -// Contact: M.A. Cortes-Giraldo (miancortes -at- us.es) -// // #include "G4DNARPWBAExcitationModel.hh" @@ -87,8 +90,13 @@ void G4DNARPWBAExcitationModel::Initialise(const G4ParticleDefinition* particle, fLowEnergy = 100. * MeV; fHighEnergy = 300. * MeV; - //SetLowEnergyLimit(fLowEnergy); - //SetHighEnergyLimit(fHighEnergy); + if(LowEnergyLimit() < fLowEnergy || HighEnergyLimit() > fHighEnergy) + { + G4ExceptionDescription ed; + ed << "Model is applicable from "<(new G4LogLogInterpolation, @@ -229,13 +237,13 @@ G4int G4DNARPWBAExcitationModel::RandomSelect(G4double k) G4int level = 0; G4double* valuesBuffer = new G4double[fTableData->NumberOfComponents()]; - const size_t n(fTableData->NumberOfComponents()); - size_t i(n); + const G4int n = (G4int)fTableData->NumberOfComponents(); + G4int i(n); G4double value = 0.; while(i > 0) { - i--; + --i; valuesBuffer[i] = fTableData->GetComponent(i)->FindValue(k); value += valuesBuffer[i]; } @@ -245,7 +253,7 @@ G4int G4DNARPWBAExcitationModel::RandomSelect(G4double k) while(i > 0) { - i--; + --i; if(valuesBuffer[i] > value) { diff --git a/source/processes/electromagnetic/dna/models/src/G4DNARPWBAIonisationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNARPWBAIonisationModel.cc index 140b916610..e5b70b9d08 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNARPWBAIonisationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNARPWBAIonisationModel.cc @@ -23,14 +23,17 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // +// Reference: +// A.D. Dominguez-Munoz, M.I. Gallardo, M.C. Bordage, +// Z. Francis, S. Incerti, M.A. Cortes-Giraldo, +// Radiat. Phys. Chem. 199 (2022) 110363. // -// Created on 2022/03/03 +// Class authors: +// A.D. Dominguez-Munoz +// M.A. Cortes-Giraldo (miancortes -at- us.es) +// +// Class creation: 2022-03-03 // -// Authors: A.D. Dominguez-Munoz, M.I. Gallardo, M.C. Bordage, -// Z. Francis, S. Incerti, M.A. Cortes-Giraldo -// -// Contact: M.A. Cortes-Giraldo (miancortes -at- us.es) -// // #include "G4DNARPWBAIonisationModel.hh" @@ -95,7 +98,7 @@ void G4DNARPWBAIonisationModel::InitialiseForProton( { if(part != fProtonDef) { - G4Exception("G4DNARPWBAIonisationModel::CrossSectionPerVolume", "em0002", + G4Exception("G4DNARPWBAIonisationModel::InitialiseForProton", "em0002", FatalException, "Model not applicable to particle type."); } // Energy limits @@ -104,6 +107,15 @@ void G4DNARPWBAIonisationModel::InitialiseForProton( const char *path = G4FindDataDir("G4LEDATA"); lowEnergyLimit = 100. * MeV; highEnergyLimit = 300. * MeV; + + if(LowEnergyLimit() < lowEnergyLimit || HighEnergyLimit() > highEnergyLimit) + { + G4ExceptionDescription ed; + ed << "Model is applicable from "<( new G4LogLogInterpolation, eV, scaleFactor); fpTotalCrossSection->LoadData(fileProton); @@ -112,14 +124,14 @@ void G4DNARPWBAIonisationModel::InitialiseForProton( std::ostringstream pFullFileName; fasterCode ? pFullFileName - << path << "/dna/sigmadiff_cumulated_ionisation_p_RPWBA.dat.dat" + << path << "/dna/sigmadiff_cumulated_ionisation_p_RPWBA.dat" : pFullFileName << path << "/dna/sigmadiff_ionisation_p_RPWBA.dat"; std::ifstream pDiffCrossSection(pFullFileName.str().c_str()); if(!pDiffCrossSection) { G4ExceptionDescription exceptionDescription; exceptionDescription << "Missing data file: " + pFullFileName.str(); - G4Exception("G4DNARPWBAIonisationModel::Initialise", "em0003", + G4Exception("G4DNARPWBAIonisationModel::InitialiseForProton", "em0003", FatalException, exceptionDescription); } @@ -182,8 +194,8 @@ void G4DNARPWBAIonisationModel::Initialise(const G4ParticleDefinition* particle, if(verboseLevel > 0) { G4cout << "RPWBA ionisation model is initialized " << G4endl - << "Energy range: " << LowEnergyLimit() / eV << " eV - " - << HighEnergyLimit() / keV << " keV for " + << "Energy range: " << LowEnergyLimit() / MeV << " MeV - " + << HighEnergyLimit() / MeV << " MeV for " << particle->GetParticleName() << G4endl; } @@ -287,8 +299,7 @@ void G4DNARPWBAIonisationModel::SampleSecondaries( particle->GetDefinition() == G4Electron::ElectronDefinition()); } - G4double bindingEnergy = 0; - bindingEnergy = waterStructure.IonisationEnergy(ionizationShell); + G4double bindingEnergy = waterStructure.IonisationEnergy(ionizationShell); // SI: additional protection if tcs interpolation method is modified if(k < bindingEnergy) @@ -405,30 +416,30 @@ G4double G4DNARPWBAIonisationModel::RandomizeEjectedElectronEnergy( { G4double maximumKineticEnergyTransfer = 4. * (electron_mass_c2 / proton_mass_c2) * k; + G4double IonisationEnergyInShell = waterStructure.IonisationEnergy(shell); + G4double kIneV = k / eV; G4double crossSectionMaximum = 0.; - for(G4double value = waterStructure.IonisationEnergy(shell); - value <= 4. * waterStructure.IonisationEnergy(shell); value += 0.1 * eV) + for(G4double value = IonisationEnergyInShell; + value <= 4. * IonisationEnergyInShell; value += 0.1 * eV) { G4double differentialCrossSection = - DifferentialCrossSection(k / eV, value / eV, shell); + DifferentialCrossSection(kIneV, value / eV, shell); if(differentialCrossSection >= crossSectionMaximum) { crossSectionMaximum = differentialCrossSection; } } - G4double secondaryElectronKineticEnergy = 0.; + G4double secondaryElectronKineticEnergy; do { secondaryElectronKineticEnergy = G4UniformRand() * maximumKineticEnergyTransfer; } while(G4UniformRand() * crossSectionMaximum >= - DifferentialCrossSection(k / eV, - (secondaryElectronKineticEnergy + - waterStructure.IonisationEnergy(shell)) / - eV, - shell)); + DifferentialCrossSection(kIneV, + (secondaryElectronKineticEnergy + + IonisationEnergyInShell) / eV, shell)); return secondaryElectronKineticEnergy; } @@ -587,12 +598,12 @@ G4int G4DNARPWBAIonisationModel::RandomSelect(G4double k) else { auto valuesBuffer = new G4double[fpTotalCrossSection->NumberOfComponents()]; - const size_t n(fpTotalCrossSection->NumberOfComponents()); - size_t i(n); + const G4int n = (G4int)fpTotalCrossSection->NumberOfComponents(); + G4int i(n); G4double value = 0.; while(i > 0) { - i--; + --i; valuesBuffer[i] = fpTotalCrossSection->GetComponent(i)->FindValue(k); value += valuesBuffer[i]; } @@ -601,7 +612,7 @@ G4int G4DNARPWBAIonisationModel::RandomSelect(G4double k) while(i > 0) { - i--; + --i; if(valuesBuffer[i] > value) { delete[] valuesBuffer; @@ -620,16 +631,15 @@ G4double G4DNARPWBAIonisationModel::RandomizeEjectedElectronEnergyFromCumulatedDcs( const G4double& k, const G4int& shell) { - G4double secondaryElectronKineticEnergy = 0.; G4double random = G4UniformRand(); - secondaryElectronKineticEnergy = + G4double secondaryKineticEnergy = TransferedEnergy(k / eV, shell, random) * eV - waterStructure.IonisationEnergy(shell); - if(secondaryElectronKineticEnergy < 0.) + if(secondaryKineticEnergy < 0.) { return 0.; } - return secondaryElectronKineticEnergy; + return secondaryKineticEnergy; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/dna/models/src/G4DNARelativisticIonisationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNARelativisticIonisationModel.cc index a332e4f38e..fdc371d744 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNARelativisticIonisationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNARelativisticIonisationModel.cc @@ -127,8 +127,8 @@ void G4DNARelativisticIonisationModel::Initialise(const G4ParticleDefinition* pa G4ProductionCutsTable *coupletable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int Ncouple = coupletable ->GetTableSize(); - for(G4int i=0;iGetTableSize(); + for(G4int i=0; iGetMaterialCutsCouple(i); @@ -316,9 +316,9 @@ void G4DNARelativisticIonisationModel::SampleSecondaries( if(fAtomDeexcitation){ G4AtomicShellEnumerator as = G4AtomicShellEnumerator(level); const G4AtomicShell *shell = fAtomDeexcitation->GetAtomicShell(z,as); - NumSecParticlesInit = fvect->size(); + NumSecParticlesInit = (G4int)fvect->size(); fAtomDeexcitation->GenerateParticles(fvect,shell,z,0,0); - NumSecParticlesFinal = fvect->size(); + NumSecParticlesFinal = (G4int)fvect->size(); } ejectedE @@ -469,8 +469,8 @@ G4double G4DNARelativisticIonisationModel::GetTotalCrossSection( G4int z = material->GetZ(); if(z!=79){ return 0.;} else { - size_t N=iState[z].size(); - for(G4int i=0;i<(G4int)N;i++){ + std::size_t N=iState[z].size(); + for(G4int i=0; i<(G4int)N; ++i){ value = value+GetPartialCrossSection(material,i,particle,kineticEnergy); } return value; @@ -571,9 +571,10 @@ G4int G4DNARelativisticIonisationModel::RandomSelect( { G4double value = 0.; G4int z = material->GetZ(); - G4double* valuesBuffer = new G4double[iShell[z].size()]; - const size_t n(iShell[z].size()); - size_t i(n); + std::size_t numberOfShell = iShell[z].size(); + auto valuesBuffer = new G4double[numberOfShell]; + const G4int n = (G4int)iShell[z].size(); + G4int i(n); while (i > 0) { diff --git a/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationExtendedModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationExtendedModel.cc index 9ef4cbe8f0..2f1e661261 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationExtendedModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationExtendedModel.cc @@ -56,9 +56,6 @@ G4DNARuddIonisationExtendedModel::G4DNARuddIonisationExtendedModel(const G4Parti const G4String& nam) :G4VEmModel(nam),isInitialised(false) { - // nistwater = G4NistManager::Instance()->FindOrBuildMaterial("G4_WATER"); - fpWaterDensity = 0; - slaterEffectiveCharge[0]=0.; slaterEffectiveCharge[1]=0.; slaterEffectiveCharge[2]=0.; @@ -94,8 +91,6 @@ G4DNARuddIonisationExtendedModel::G4DNARuddIonisationExtendedModel(const G4Parti // Mark this model as "applicable" for atomic deexcitation SetDeexcitationFlag(true); - fAtomDeexcitation = 0; - fParticleChangeForGamma = 0; // Selection of stationary mode @@ -106,19 +101,16 @@ G4DNARuddIonisationExtendedModel::G4DNARuddIonisationExtendedModel(const G4Parti G4DNARuddIonisationExtendedModel::~G4DNARuddIonisationExtendedModel() { - // Cross section - + if(isIon) { std::map< G4String,G4DNACrossSectionDataSet*,std::less >::iterator pos; for (pos = tableData.begin(); pos != tableData.end(); ++pos) { G4DNACrossSectionDataSet* table = pos->second; delete table; } - - // The following removal is forbidden G4VEnergyLossModel takes care of deletion - // however coverity will signal this as an error - // if (fAtomDeexcitation) {delete fAtomDeexcitation;} - + } else { + delete mainTable; + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -126,25 +118,24 @@ G4DNARuddIonisationExtendedModel::~G4DNARuddIonisationExtendedModel() void G4DNARuddIonisationExtendedModel::Initialise(const G4ParticleDefinition* particle, const G4DataVector& /*cuts*/) { + if (isInitialised) { return; } if (verboseLevel > 3) G4cout << "Calling G4DNARuddIonisationExtendedModel::Initialise()" << G4endl; // Energy limits - G4String fileProton("dna/sigma_ionisation_p_rudd"); G4String fileHydrogen("dna/sigma_ionisation_h_rudd"); G4String fileAlphaPlusPlus("dna/sigma_ionisation_alphaplusplus_rudd"); G4String fileAlphaPlus("dna/sigma_ionisation_alphaplus_rudd"); G4String fileHelium("dna/sigma_ionisation_he_rudd"); - //G4String fileLithium("dna/sigma_ionisation_li_rudd"); - //G4String fileBeryllium("dna/sigma_ionisation_be_rudd"); - //G4String fileBoron("dna/sigma_ionisation_b_rudd"); G4String fileCarbon("dna/sigma_ionisation_c_rudd"); G4String fileNitrogen("dna/sigma_ionisation_n_rudd"); G4String fileOxygen("dna/sigma_ionisation_o_rudd"); G4String fileSilicon("dna/sigma_ionisation_si_rudd"); G4String fileIron("dna/sigma_ionisation_fe_rudd"); + G4String pname = particle->GetParticleName(); + G4DNAGenericIonsManager *instance; instance = G4DNAGenericIonsManager::Instance(); protonDef = G4Proton::ProtonDefinition(); @@ -158,18 +149,7 @@ void G4DNARuddIonisationExtendedModel::Initialise(const G4ParticleDefinition* pa oxygenDef = instance->GetIon("oxygen"); siliconDef = instance->GetIon("silicon"); ironDef = instance->GetIon("iron"); - //lithiumDef = G4IonTable::GetIonTable()->GetIon(3,7); - //berylliumDef = G4IonTable::GetIonTable()->GetIon(4,9); - //boronDef = G4IonTable::GetIonTable()->GetIon(5,11); - G4String proton; - G4String hydrogen; - G4String alphaPlusPlus; - G4String alphaPlus; - G4String helium; - //G4String lithium; - //G4String beryllium; - //G4String boron; G4String carbon; G4String nitrogen; G4String oxygen; @@ -177,355 +157,137 @@ void G4DNARuddIonisationExtendedModel::Initialise(const G4ParticleDefinition* pa G4String iron; G4double scaleFactor = 1 * m*m; + massC12 = carbonDef->GetPDGMass(); // LIMITS AND DATA // ********************************************************************************************** - proton = protonDef->GetParticleName(); - tableFile[proton] = fileProton; - lowEnergyLimit[proton] = lowEnergyLimitForA[1]; - highEnergyLimit[proton] = 500. * keV; + if(pname == "proton") { + localMinEnergy = lowEnergyLimitForA[1]; - // Cross section - - G4DNACrossSectionDataSet* tableProton = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, - eV, - scaleFactor ); - tableProton->LoadData(fileProton); - tableData[proton] = tableProton; + // Cross section + mainTable = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, eV, scaleFactor ); + mainTable->LoadData(fileProton); // ********************************************************************************************** - hydrogen = hydrogenDef->GetParticleName(); - tableFile[hydrogen] = fileHydrogen; + } else if(pname == "hydrogen") { - lowEnergyLimit[hydrogen] = lowEnergyLimitForA[1]; - highEnergyLimit[hydrogen] = 100. * MeV; + localMinEnergy = lowEnergyLimitForA[1]; - // Cross section - - G4DNACrossSectionDataSet* tableHydrogen = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, - eV, - scaleFactor ); - tableHydrogen->LoadData(fileHydrogen); - - tableData[hydrogen] = tableHydrogen; + // Cross section + mainTable = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, eV, scaleFactor ); + mainTable->LoadData(fileHydrogen); // ********************************************************************************************** - alphaPlusPlus = alphaPlusPlusDef->GetParticleName(); - tableFile[alphaPlusPlus] = fileAlphaPlusPlus; + } else if(pname == "alpha") { - lowEnergyLimit[alphaPlusPlus] = lowEnergyLimitForA[4]; - highEnergyLimit[alphaPlusPlus] = 400. * MeV; + localMinEnergy = lowEnergyLimitForA[4]; - // Cross section - - G4DNACrossSectionDataSet* tableAlphaPlusPlus = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, - eV, - scaleFactor ); - tableAlphaPlusPlus->LoadData(fileAlphaPlusPlus); - - tableData[alphaPlusPlus] = tableAlphaPlusPlus; + // Cross section + mainTable = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, eV, scaleFactor ); + mainTable->LoadData(fileAlphaPlusPlus); // ********************************************************************************************** - alphaPlus = alphaPlusDef->GetParticleName(); - tableFile[alphaPlus] = fileAlphaPlus; + } else if(pname == "alpha+") { - lowEnergyLimit[alphaPlus] = lowEnergyLimitForA[4]; - highEnergyLimit[alphaPlus] = 400. * MeV; + localMinEnergy = lowEnergyLimitForA[4]; - // Cross section - - G4DNACrossSectionDataSet* tableAlphaPlus = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, - eV, - scaleFactor ); - tableAlphaPlus->LoadData(fileAlphaPlus); - tableData[alphaPlus] = tableAlphaPlus; - - // ********************************************************************************************** - - helium = heliumDef->GetParticleName(); - tableFile[helium] = fileHelium; - - lowEnergyLimit[helium] = lowEnergyLimitForA[4]; - highEnergyLimit[helium] = 400. * MeV; - - // Cross section - - G4DNACrossSectionDataSet* tableHelium = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, - eV, - scaleFactor ); - tableHelium->LoadData(fileHelium); - tableData[helium] = tableHelium; - - // ********************************************************************************************** - /* - lithium = lithiumDef->GetParticleName(); - tableFile[lithium] = fileLithium; - - //SI - //lowEnergyLimit[carbon] = lowEnergyLimitForA[5] * particle->GetAtomicMass(); - //highEnergyLimit[carbon] = 1e6* particle->GetAtomicMass() * MeV; - lowEnergyLimit[lithium] = 0.5*7*MeV; - highEnergyLimit[lithium] = 1e6*7*MeV; - // - - // Cross section - - G4DNACrossSectionDataSet* tableLithium = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, - eV, - scaleFactor ); - tableLithium->LoadData(fileLithium); - tableData[lithium] = tableLithium; - - // ********************************************************************************************** - - beryllium = berylliumDef->GetParticleName(); - tableFile[beryllium] = fileBeryllium; - - //SI - //lowEnergyLimit[carbon] = lowEnergyLimitForA[5] * particle->GetAtomicMass(); - //highEnergyLimit[carbon] = 1e6* particle->GetAtomicMass() * MeV; - lowEnergyLimit[beryllium] = 0.5*9*MeV; - highEnergyLimit[beryllium] = 1e6*9*MeV; - // - - // Cross section - - G4DNACrossSectionDataSet* tableBeryllium = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, - eV, - scaleFactor ); - tableBeryllium->LoadData(fileBeryllium); - tableData[beryllium] = tableBeryllium; - - // ********************************************************************************************** - - boron = boronDef->GetParticleName(); - tableFile[boron] = fileBoron; - - //SI - //lowEnergyLimit[carbon] = lowEnergyLimitForA[5] * particle->GetAtomicMass(); - //highEnergyLimit[carbon] = 1e6* particle->GetAtomicMass() * MeV; - lowEnergyLimit[boron] = 0.5*11*MeV; - highEnergyLimit[boron] = 1e6*11*MeV; - // - - // Cross section - - G4DNACrossSectionDataSet* tableBoron = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, - eV, - scaleFactor ); - tableBoron->LoadData(fileBoron); - tableData[boron] = tableBoron; - */ - // ********************************************************************************************** - - carbon = carbonDef->GetParticleName(); - tableFile[carbon] = fileCarbon; - - //SI - //lowEnergyLimit[carbon] = lowEnergyLimitForA[5] * particle->GetAtomicMass(); - //highEnergyLimit[carbon] = 1e6* particle->GetAtomicMass() * MeV; - lowEnergyLimit[carbon] = 0.5*12*MeV; - highEnergyLimit[carbon] = 1e6*12*MeV; - // - - // Cross section - - G4DNACrossSectionDataSet* tableCarbon = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, - eV, - scaleFactor ); - tableCarbon->LoadData(fileCarbon); - tableData[carbon] = tableCarbon; - - // ********************************************************************************************** - - oxygen = oxygenDef->GetParticleName(); - tableFile[oxygen] = fileOxygen; - - //SI - //lowEnergyLimit[oxygen] = lowEnergyLimitForA[5]* particle->GetAtomicMass(); - //highEnergyLimit[oxygen] = 1e6* particle->GetAtomicMass()* MeV; - lowEnergyLimit[oxygen] = 0.5*16*MeV; - highEnergyLimit[oxygen] = 1e6*16*MeV; - // - - // Cross section - - G4DNACrossSectionDataSet* tableOxygen = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, - eV, - scaleFactor ); - tableOxygen->LoadData(fileOxygen); - tableData[oxygen] = tableOxygen; - - // ********************************************************************************************** - - nitrogen = nitrogenDef->GetParticleName(); - tableFile[nitrogen] = fileNitrogen; - - //SI - //lowEnergyLimit[nitrogen] = lowEnergyLimitForA[5]* particle->GetAtomicMass(); - //highEnergyLimit[nitrogen] = 1e6* particle->GetAtomicMass()* MeV; - lowEnergyLimit[nitrogen] = 0.5*14*MeV; - highEnergyLimit[nitrogen] = 1e6*14*MeV; - // - - // Cross section - - G4DNACrossSectionDataSet* tableNitrogen = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, - eV, - scaleFactor ); - tableNitrogen->LoadData(fileNitrogen); - tableData[nitrogen] = tableNitrogen; + // Cross section + mainTable = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, eV, scaleFactor ); + mainTable->LoadData(fileAlphaPlus); // ********************************************************************************************** - silicon = siliconDef->GetParticleName(); - tableFile[silicon] = fileSilicon; + } else if(pname == "helium") { + + localMinEnergy = lowEnergyLimitForA[4]; + + // Cross section + mainTable = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, eV, scaleFactor ); + mainTable->LoadData(fileHelium); + + // ********************************************************************************************** + + } else if(pname == "GenericIon") { - //lowEnergyLimit[silicon] = lowEnergyLimitForA[5]* particle->GetAtomicMass(); - //highEnergyLimit[silicon] = 1e6* particle->GetAtomicMass()* MeV; - lowEnergyLimit[silicon] = 0.5*28*MeV; - highEnergyLimit[silicon] = 1e6*28*MeV; - // + isIon = true; + carbon = carbonDef->GetParticleName(); + localMinEnergy = lowEnergyLimitForA[5]*massC12/proton_mass_c2; + + // Cross section + mainTable = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, eV, scaleFactor ); + mainTable->LoadData(fileCarbon); + + tableData[carbon] = mainTable; + + // ********************************************************************************************** - // Cross section + oxygen = oxygenDef->GetParticleName(); + tableFile[oxygen] = fileOxygen; + + // Cross section + G4DNACrossSectionDataSet* tableOxygen = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, + eV, scaleFactor ); + tableOxygen->LoadData(fileOxygen); + tableData[oxygen] = tableOxygen; + + // ********************************************************************************************** - G4DNACrossSectionDataSet* tableSilicon = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, - eV, - scaleFactor ); - tableSilicon->LoadData(fileSilicon); - tableData[silicon] = tableSilicon; + nitrogen = nitrogenDef->GetParticleName(); + tableFile[nitrogen] = fileNitrogen; + + // Cross section + G4DNACrossSectionDataSet* tableNitrogen = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, + eV, scaleFactor ); + tableNitrogen->LoadData(fileNitrogen); + tableData[nitrogen] = tableNitrogen; + + // ********************************************************************************************** + + silicon = siliconDef->GetParticleName(); + tableFile[silicon] = fileSilicon; + + // Cross section + G4DNACrossSectionDataSet* tableSilicon = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, + eV, scaleFactor ); + tableSilicon->LoadData(fileSilicon); + tableData[silicon] = tableSilicon; // ********************************************************************************************** - iron = ironDef->GetParticleName(); - tableFile[iron] = fileIron; + iron = ironDef->GetParticleName(); + tableFile[iron] = fileIron; - //SI - //lowEnergyLimit[iron] = lowEnergyLimitForA[5]* particle->GetAtomicMass(); - //highEnergyLimit[iron] = 1e6* particle->GetAtomicMass()* MeV; - lowEnergyLimit[iron] = 0.5*56*MeV; - highEnergyLimit[iron] = 1e6*56*MeV; - // - - // Cross section - - G4DNACrossSectionDataSet* tableIron = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, - eV, - scaleFactor ); - tableIron->LoadData(fileIron); - tableData[iron] = tableIron; + // Cross section + G4DNACrossSectionDataSet* tableIron = new G4DNACrossSectionDataSet(new G4LogLogInterpolation, + eV, scaleFactor ); + tableIron->LoadData(fileIron); + tableData[iron] = tableIron; + } // ********************************************************************************************** - // SI: not anymore - // ZF Following lines can be replaced by: - // SetLowEnergyLimit(lowEnergyLimit[particle->GetParticleName()]); - // SetHighEnergyLimit(highEnergyLimit[particle->GetParticleName()]); - // at least for HZE - - if (particle==protonDef) - { - SetLowEnergyLimit(lowEnergyLimit[proton]); - SetHighEnergyLimit(highEnergyLimit[proton]); - } - - if (particle==hydrogenDef) - { - SetLowEnergyLimit(lowEnergyLimit[hydrogen]); - SetHighEnergyLimit(highEnergyLimit[hydrogen]); - } - - if (particle==heliumDef) - { - SetLowEnergyLimit(lowEnergyLimit[helium]); - SetHighEnergyLimit(highEnergyLimit[helium]); - } - - if (particle==alphaPlusDef) - { - SetLowEnergyLimit(lowEnergyLimit[alphaPlus]); - SetHighEnergyLimit(highEnergyLimit[alphaPlus]); - } - - if (particle==alphaPlusPlusDef) - { - SetLowEnergyLimit(lowEnergyLimit[alphaPlusPlus]); - SetHighEnergyLimit(highEnergyLimit[alphaPlusPlus]); - } - /* - if (particle==lithiumDef) - { - SetLowEnergyLimit(lowEnergyLimit[lithium]); - SetHighEnergyLimit(highEnergyLimit[lithium]); - } - - if (particle==berylliumDef) - { - SetLowEnergyLimit(lowEnergyLimit[beryllium]); - SetHighEnergyLimit(highEnergyLimit[beryllium]); - } - - if (particle==boronDef) - { - SetLowEnergyLimit(lowEnergyLimit[boron]); - SetHighEnergyLimit(highEnergyLimit[boron]); - } - */ - if (particle==carbonDef) - { - SetLowEnergyLimit(lowEnergyLimit[carbon]); - SetHighEnergyLimit(highEnergyLimit[carbon]); - } - - if (particle==nitrogenDef) - { - SetLowEnergyLimit(lowEnergyLimit[nitrogen]); - SetHighEnergyLimit(highEnergyLimit[nitrogen]); - } - - if (particle==oxygenDef) - { - SetLowEnergyLimit(lowEnergyLimit[oxygen]); - SetHighEnergyLimit(highEnergyLimit[oxygen]); - } - - if (particle==siliconDef) - { - SetLowEnergyLimit(lowEnergyLimit[silicon]); - SetHighEnergyLimit(highEnergyLimit[silicon]); - } - - if (particle==ironDef) - { - SetLowEnergyLimit(lowEnergyLimit[iron]); - SetHighEnergyLimit(highEnergyLimit[iron]); - } - - //---------------------------------------------------------------------- - if( verboseLevel>0 ) { - G4cout << "Rudd ionisation model is initialized " << G4endl - << "Energy range: " - << LowEnergyLimit() / eV << " eV - " - << HighEnergyLimit() / keV << " keV for " - << particle->GetParticleName() - << G4endl; + G4cout << "Rudd ionisation model is initialized " << G4endl + << "Energy range for model: " + << LowEnergyLimit() / keV << " keV - " + << HighEnergyLimit() / keV << " keV for " + << pname + << " internal low energy limit E(keV)=" << localMinEnergy / keV + << G4endl; } // Initialize water density pointer fpWaterDensity = G4DNAMolecularMaterial::Instance()->GetNumMolPerVolTableFor(G4Material::GetMaterial("G4_WATER")); // - fAtomDeexcitation = G4LossTableManager::Instance()->AtomDeexcitation(); - if (isInitialised) { return; } fParticleChangeForGamma = GetParticleChangeForGamma(); isInitialised = true; } @@ -538,134 +300,50 @@ G4double G4DNARuddIonisationExtendedModel::CrossSectionPerVolume(const G4Materia G4double, G4double) { - //SI: particleDefinition->GetParticleName() is for eg. Fe56 - // particleDefinition->GetPDGMass() is correct - // particleDefinition->GetAtomicNumber() is correct - if (verboseLevel > 3) G4cout << "Calling CrossSectionPerVolume() of G4DNARuddIonisationExtendedModel" << G4endl; - auto particleDefinition = GetDNAIonParticleDefinition(partDef); - - // Calculate total cross section for model - - if ( - particleDefinition != protonDef - && - particleDefinition != hydrogenDef - && - particleDefinition != alphaPlusPlusDef - && - particleDefinition != alphaPlusDef - && - particleDefinition != heliumDef - && - // SI - //particleDefinition != instance->GetIon("carbon") - //&& - //particleDefinition != instance->GetIon("nitrogen") - //&& - //particleDefinition != instance->GetIon("oxygen") - //&& - //particleDefinition != instance->GetIon("iron") - /* - particleDefinition != lithiumDef - && - particleDefinition != berylliumDef - && - particleDefinition != boronDef - && - */ - particleDefinition != carbonDef - && - particleDefinition != nitrogenDef - && - particleDefinition != oxygenDef - && - particleDefinition != siliconDef - && - particleDefinition != ironDef - // - ) - - return 0; - - G4double lowLim = 0; - - if ( particleDefinition == protonDef - || particleDefinition == hydrogenDef - ) - - lowLim = lowEnergyLimitOfModelForA[1]; - - else if ( particleDefinition == alphaPlusPlusDef - || particleDefinition == alphaPlusDef - || particleDefinition == heliumDef - ) - - lowLim = lowEnergyLimitOfModelForA[4]; - - else lowLim = lowEnergyLimitOfModelForA[5]; - - G4double highLim = 0; - G4double sigma=0; + currParticle = GetDNAIonParticleDefinition(partDef); + currentScaledEnergy = k; + G4double e = k; + G4double q2 = 1.0; + currentTable = mainTable; + if (isIon){ + if (currParticle == nullptr) {//not DNA particle + currentScaledEnergy *= massC12/partDef->GetPDGMass(); + G4double q = partDef->GetPDGCharge()/(eplus*6); + q2 *= q*q; + e = currentScaledEnergy; + currParticle = carbonDef; + } + G4String pname = currParticle->GetParticleName(); + auto goodTable = tableData.find(pname); + currentTable = goodTable->second; + } + // below low the ion should be stopped + if (currentScaledEnergy < localMinEnergy) { return DBL_MAX; } G4double waterDensity = (*fpWaterDensity)[material->GetIndex()]; - - const G4String& particleName = particleDefinition->GetParticleName(); - - std::map< G4String,G4double,std::less >::iterator pos2; - pos2 = highEnergyLimit.find(particleName); - - if (pos2 != highEnergyLimit.end()) - { - highLim = pos2->second; + G4double sigma = 0.0; + if (nullptr != currentTable) { + sigma = currentTable->FindValue(e)*q2; + } else { + G4cout << "G4DNARuddIonisationExtendedModel - no data table for " + << partDef->GetParticleName() << G4endl; + G4Exception("G4DNARuddIonisationExtendedModel::CrossSectionPerVolume(...)","em0002", + FatalException,"Data table is not available for the model."); } - - if (k <= highLim) - { - - //SI : XS must not be zero otherwise sampling of secondaries method ignored - - if (k < lowLim) k = lowLim; - - // - - std::map< G4String,G4DNACrossSectionDataSet*,std::less >::iterator pos; - pos = tableData.find(particleName); - - if (pos != tableData.end()) - { - G4DNACrossSectionDataSet* table = pos->second; - if (table != 0) - { - sigma = table->FindValue(k); - } - } - else - { - G4Exception("G4DNARuddIonisationExtendedModel::CrossSectionPerVolume","em0002", - FatalException,"Model not applicable to particle type."); - } - - } // if (k >= lowLim && k < highLim) - if (verboseLevel > 2) { - G4cout << "__________________________________" << G4endl; - G4cout << "G4DNARuddIonisationExtendedModel - XS INFO START" << G4endl; - G4cout << "Kinetic energy(eV)=" << k/eV << " particle : " << particleDefinition->GetParticleName() << G4endl; - G4cout << "Cross section per water molecule (cm^2)=" << sigma/cm/cm << G4endl; - G4cout << "Cross section per water molecule (cm^-1)=" << sigma*waterDensity/(1./cm) << G4endl; - //G4cout << " - Cross section per water molecule (cm^-1)=" - //<< sigma*material->GetAtomicNumDensityVector()[1]/(1./cm) << G4endl; - G4cout << "G4DNARuddIonisationExtendedModel - XS INFO END" << G4endl; - + G4cout << "__________________________________" << G4endl; + G4cout << "G4DNARuddIonisationExtendedModel - XS INFO START" << G4endl; + G4cout << "Kinetic energy(eV)=" << k/eV << " particle : " << partDef->GetParticleName() << G4endl; + G4cout << "Cross section per water molecule (cm^2)=" << sigma/cm/cm << G4endl; + G4cout << "Cross section per water molecule (cm^-1)=" << sigma*waterDensity/(1./cm) << G4endl; + G4cout << "G4DNARuddIonisationExtendedModel - XS INFO END" << G4endl; } - return sigma*waterDensity; - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -676,91 +354,39 @@ void G4DNARuddIonisationExtendedModel::SampleSecondaries(std::vectorGetDefinition()->GetParticleName() is for eg. Fe56 - // particle->GetDefinition()->GetPDGMass() is correct - // particle->GetDefinition()->GetAtomicNumber() is correct - // particle->GetDefinition()->GetAtomicMass() is correct - if (verboseLevel > 3) G4cout << "Calling SampleSecondaries() of G4DNARuddIonisationExtendedModel" << G4endl; - auto particleDefinition = GetDNAIonParticleDefinition(particle->GetDefinition()); - G4double lowLim = 0; - G4double highLim = 0; + // stop ion with energy below low energy limit + G4double k = particle->GetKineticEnergy(); + if (currentScaledEnergy < localMinEnergy) { + fParticleChangeForGamma->SetProposedKineticEnergy(0.); + fParticleChangeForGamma->ProposeTrackStatus(fStopButAlive); + fParticleChangeForGamma->ProposeLocalEnergyDeposit(k); + return; + } - // ZF: the following line summarizes the commented part + // sampling of final state + G4ParticleDefinition* definition = particle->GetDefinition(); + const G4ThreeVector& primaryDirection = particle->GetMomentumDirection(); - if(particle->GetDefinition()->GetAtomicMass() <= 4) lowLim = killBelowEnergyForA[particleDefinition->GetAtomicMass()]; - - else lowLim = killBelowEnergyForA[5]*particleDefinition->GetAtomicMass(); + G4int ionizationShell = RandomSelect(currentScaledEnergy); - /* + // sample deexcitation + // here we assume that H_{2}O electronic levels are the same as Oxygen. + // this can be considered true with a rough 10% error in energy on K-shell, - if(particle->GetDefinition()->GetAtomicMass() >= 5) lowLim = killBelowEnergyForA[5]*particle->GetDefinition()->GetAtomicMass(); - - if ( particle->GetDefinition() == protonDef - || particle->GetDefinition() == hydrogenDef - ) + G4double bindingEnergy = waterStructure.IonisationEnergy(ionizationShell); - lowLim = killBelowEnergyForA[1]; - - if ( particle->GetDefinition() == alphaPlusPlusDef - || particle->GetDefinition() == alphaPlusDef - || particle->GetDefinition() == heliumDef - ) - - lowLim = killBelowEnergyForA[4]; - - */ + //SI: additional protection if tcs interpolation method is modified + if (k < bindingEnergy) return; // - G4double k = particle->GetKineticEnergy(); + G4double secondaryKinetic = RandomizeEjectedElectronEnergy(definition,k,ionizationShell); - const G4String& particleName = particleDefinition->GetParticleName(); - - // SI - the following is useless since lowLim is already defined - /* - std::map< G4String,G4double,std::less >::iterator pos1; - pos1 = lowEnergyLimit.find(particleName); - - if (pos1 != lowEnergyLimit.end()) - { - lowLim = pos1->second; - } - */ - - std::map< G4String,G4double,std::less >::iterator pos2; - pos2 = highEnergyLimit.find(particleName); - - if (pos2 != highEnergyLimit.end()) highLim = pos2->second; - - if (k >= lowLim && k <= highLim) - - // SI: no strict limits, like in the non extended version of the model - { - G4ParticleDefinition* definition = particleDefinition; - G4ParticleMomentum primaryDirection = particle->GetMomentumDirection(); - /* - G4double particleMass = definition->GetPDGMass(); - G4double totalEnergy = k + particleMass; - G4double pSquare = k*(totalEnergy+particleMass); - G4double totalMomentum = std::sqrt(pSquare); - */ - - G4int ionizationShell = RandomSelect(k,particleName); - - // sample deexcitation - // here we assume that H_{2}O electronic levels are the same as Oxygen. - // this can be considered true with a rough 10% error in energy on K-shell, - - G4double bindingEnergy = 0; - bindingEnergy = waterStructure.IonisationEnergy(ionizationShell); - - //SI: additional protection if tcs interpolation method is modified - if (kpush_back(dp); fParticleChangeForGamma->ProposeMomentumDirection(primaryDirection); - - // SI: the following lines are not needed anymore - /* - G4double cosTheta = 0.; - G4double phi = 0.; - RandomizeEjectedElectronDirection(definition, k,secondaryKinetic, cosTheta, phi, ionizationShell); - - G4double sinTheta = std::sqrt(1.-cosTheta*cosTheta); - G4double dirX = sinTheta*std::cos(phi); - G4double dirY = sinTheta*std::sin(phi); - G4double dirZ = cosTheta; - G4ThreeVector deltaDirection(dirX,dirY,dirZ); - deltaDirection.rotateUz(primaryDirection); - */ - - // Ignored for ions on electrons - /* - G4double deltaTotalMomentum = std::sqrt(secondaryKinetic*(secondaryKinetic + 2.*electron_mass_c2 )); - - G4double finalPx = totalMomentum*primaryDirection.x() - deltaTotalMomentum*deltaDirection.x(); - G4double finalPy = totalMomentum*primaryDirection.y() - deltaTotalMomentum*deltaDirection.y(); - G4double finalPz = totalMomentum*primaryDirection.z() - deltaTotalMomentum*deltaDirection.z(); - G4double finalMomentum = std::sqrt(finalPx*finalPx+finalPy*finalPy+finalPz*finalPz); - finalPx /= finalMomentum; - finalPy /= finalMomentum; - finalPz /= finalMomentum; - - G4ThreeVector direction; - direction.set(finalPx,finalPy,finalPz); - - fParticleChangeForGamma->ProposeMomentumDirection(direction.unit()) ; - */ - + size_t secNumberInit = 0;// need to know at a certain point the energy of secondaries size_t secNumberFinal = 0;// So I'll make the diference and then sum the energies - G4double scatteredEnergy = k-bindingEnergy-secondaryKinetic; - // SI: only atomic deexcitation from K shell is considered - if(fAtomDeexcitation && ionizationShell == 4) + if(fAtomDeexcitation != nullptr && ionizationShell == 4) { const G4AtomicShell* shell = fAtomDeexcitation->GetAtomicShell(Z, G4AtomicShellEnumerator(0)); @@ -839,14 +431,8 @@ void G4DNARuddIonisationExtendedModel::SampleSecondaries(std::vectorSetProposedKineticEnergy(k); - fParticleChangeForGamma->ProposeLocalEnergyDeposit(k-scatteredEnergy); + fParticleChangeForGamma->SetProposedKineticEnergy(k); + fParticleChangeForGamma->ProposeLocalEnergyDeposit(k-scatteredEnergy); } // TEST ////////////////////////// @@ -871,17 +457,7 @@ void G4DNARuddIonisationExtendedModel::SampleSecondaries(std::vectorCreateWaterMolecule(eIonizedMolecule, ionizationShell, theIncomingTrack); - } - // SI - not useful since low energy of model is 0 eV - - if (k < lowLim) - { - fParticleChangeForGamma->SetProposedKineticEnergy(0.); - fParticleChangeForGamma->ProposeTrackStatus(fStopAndKill); - fParticleChangeForGamma->ProposeLocalEnergyDeposit(k); - } - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -916,49 +492,6 @@ G4double G4DNARuddIonisationExtendedModel::RandomizeEjectedElectronEnergy(G4Part //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -// The following section is not used anymore but is kept for memory -// GetAngularDistribution()->SampleDirectionForShell is used instead - -/* -void G4DNARuddIonisationExtendedModel::RandomizeEjectedElectronDirection(G4ParticleDefinition* particleDefinition, - G4double k, - G4double secKinetic, - G4double & cosTheta, - G4double & phi, - G4int shell ) -{ - G4double maxSecKinetic = 0.; - G4double maximumEnergyTransfer = 0.; - - // ZF. generalized & relativistic version - - if( (k/MeV)/(particleDefinition->GetPDGMass()/MeV) <= 0.1 ) - { - maximumEnergyTransfer= 4.* (electron_mass_c2 / particleDefinition->GetPDGMass()) * k; - maximumEnergyTransfer+=waterStructure.IonisationEnergy(shell); - } - else - { - G4double approx_nuc_number = particleDefinition->GetPDGMass() / proton_mass_c2; - G4double en_per_nucleon = k/approx_nuc_number; - G4double beta2 = 1. - 1./pow( (1.+(en_per_nucleon/electron_mass_c2)*(electron_mass_c2/proton_mass_c2)), 2.); - G4double gamma = 1./sqrt(1.-beta2); - maximumEnergyTransfer = 2.*electron_mass_c2*(gamma*gamma-1.)/(1.+2.*gamma*(electron_mass_c2/particleDefinition->GetPDGMass())+pow(electron_mass_c2/particleDefinition->GetPDGMass(), 2.) ); - maximumEnergyTransfer+=waterStructure.IonisationEnergy(shell); - } - - maxSecKinetic = maximumEnergyTransfer-waterStructure.IonisationEnergy(shell); - - phi = twopi * G4UniformRand(); - - if (secKinetic>100*eV) cosTheta = std::sqrt(secKinetic / maxSecKinetic); - else cosTheta = (2.*G4UniformRand())-1.; - -} -*/ - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4double G4DNARuddIonisationExtendedModel::RejectionFunction(G4ParticleDefinition* particleDefinition, G4double k, G4double proposed_ws, @@ -1029,7 +562,7 @@ G4double G4DNARuddIonisationExtendedModel::RejectionFunction(G4ParticleDefinitio { G4double Z = particleDefinition->GetAtomicNumber(); - G4double x = 100.*std::sqrt(beta2)/gpow->powA(Z,(2./3.)); + G4double x = 100.*std::sqrt(beta2)/gpow->powA(Z, 2./3.); G4double Zeffion = Z*(1.-G4Exp(-1.316*x+0.112*x*x-0.0650*x*x*x)); rejection_term*=Zeffion*Zeffion; } @@ -1069,11 +602,6 @@ G4double G4DNARuddIonisationExtendedModel::RejectionFunction(G4ParticleDefinitio sCoefficient[2]=0.25; } - // if ( particleDefinition == heliumDef - // || particleDefinition == alphaPlusDef - // || particleDefinition == alphaPlusPlusDef - // ) - if (isHelium) { @@ -1296,31 +824,25 @@ G4double G4DNARuddIonisationExtendedModel::CorrectionFactor(G4ParticleDefinition //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4int G4DNARuddIonisationExtendedModel::RandomSelect(G4double k, const G4String& particle ) +G4int G4DNARuddIonisationExtendedModel::RandomSelect(G4double k) { - G4int level = 0; - + // Retrieve data table corresponding to the current particle type - std::map< G4String,G4DNACrossSectionDataSet*,std::less >::iterator pos; - pos = tableData.find(particle); + G4DNACrossSectionDataSet* table = currentTable; - if (pos != tableData.end()) - { - G4DNACrossSectionDataSet* table = pos->second; - - if (table != 0) + if (table != nullptr) { G4double* valuesBuffer = new G4double[table->NumberOfComponents()]; - const size_t n(table->NumberOfComponents()); - size_t i(n); + const G4int n = (G4int)table->NumberOfComponents(); + G4int i(n); G4double value = 0.; while (i>0) { - i--; + --i; valuesBuffer[i] = table->GetComponent(i)->FindValue(k); value += valuesBuffer[i]; @@ -1332,7 +854,7 @@ G4int G4DNARuddIonisationExtendedModel::RandomSelect(G4double k, const G4String& while (i > 0) { - i--; + --i; if (valuesBuffer[i] > value) { @@ -1345,13 +867,6 @@ G4int G4DNARuddIonisationExtendedModel::RandomSelect(G4double k, const G4String& if (valuesBuffer) delete[] valuesBuffer; } - } - else - { - G4Exception("G4DNARuddIonisationExtendedModel::RandomSelect","em0002", - FatalException,"Model not applicable to particle type."); - } - return level; } @@ -1439,10 +954,7 @@ G4ParticleDefinition* G4DNARuddIonisationExtendedModel::GetDNAIonParticleDefinit }else if(PDGEncoding == 1000060120){ return instance->GetIon("carbon"); } - G4ExceptionDescription description; - description << "DNA physics does not support this ion : "<GetParticleName()<< G4endl; - G4Exception("G4DNARuddIonisationExtendedModel::GetDNAIonParticleDefinition()", - "em2051",FatalException,description); + //if there is no DNA particle, get nullptr return nullptr; } -} \ No newline at end of file +} diff --git a/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationModel.cc index 3b98fb4b63..a34546623b 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNARuddIonisationModel.cc @@ -50,8 +50,6 @@ G4DNARuddIonisationModel::G4DNARuddIonisationModel(const G4ParticleDefinition*, const G4String& nam) : G4VEmModel(nam), isInitialised(false) { - fpWaterDensity = 0; - slaterEffectiveCharge[0] = 0.; slaterEffectiveCharge[1] = 0.; slaterEffectiveCharge[2] = 0.; @@ -84,8 +82,6 @@ G4VEmModel(nam), isInitialised(false) // Mark this model as "applicable" for atomic deexcitation SetDeexcitationFlag(true); - fAtomDeexcitation = 0; - fParticleChangeForGamma = 0; // Selection of stationary mode @@ -1027,13 +1023,13 @@ G4int G4DNARuddIonisationModel::RandomSelect(G4double k, { G4double* valuesBuffer = new G4double[table->NumberOfComponents()]; - const size_t n(table->NumberOfComponents()); - size_t i(n); + const G4int n = (G4int)table->NumberOfComponents(); + G4int i(n); G4double value = 0.; while (i > 0) { - i--; + --i; valuesBuffer[i] = table->GetComponent(i)->FindValue(k); value += valuesBuffer[i]; } @@ -1044,7 +1040,7 @@ G4int G4DNARuddIonisationModel::RandomSelect(G4double k, while (i > 0) { - i--; + --i; if (valuesBuffer[i] > value) { diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAUeharaScreenedRutherfordElasticModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAUeharaScreenedRutherfordElasticModel.cc index a5da2f9782..f4a59831ea 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAUeharaScreenedRutherfordElasticModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAUeharaScreenedRutherfordElasticModel.cc @@ -39,17 +39,12 @@ using namespace std; G4DNAUeharaScreenedRutherfordElasticModel:: G4DNAUeharaScreenedRutherfordElasticModel(const G4ParticleDefinition*, - const G4String& nam) : -G4VEmModel(nam), isInitialised(false) + const G4String& nam) : G4VEmModel(nam) { - fpWaterDensity = 0; - - // Switch between two final state models + // Energy limits of the models intermediateEnergyLimit = 200. * eV; - - SetLowEnergyLimit(9.*eV); - - SetHighEnergyLimit(1.*MeV); + iLowEnergyLimit = 9.*eV; + iHighEnergyLimit = 1.*MeV; verboseLevel = 0; // Verbosity scale: @@ -58,46 +53,21 @@ G4VEmModel(nam), isInitialised(false) // 2 = details of energy budget // 3 = calculation of cross sections, file openings, sampling of atoms // 4 = entering in methods - -#ifdef UEHARA_VERBOSE - if (verboseLevel) - { - G4cout << "Screened Rutherford Elastic model is constructed " << G4endl - << "Energy range: " - << LowEnergyLimit() / eV << " eV - " - << HighEnergyLimit() / MeV << " MeV" - << G4endl; - } -#endif - fParticleChangeForGamma = 0; - - // Selection of computation method - // We do not recommend "true" usage with the current cumul. proba. settings fasterCode = false; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4DNAUeharaScreenedRutherfordElasticModel:: -~G4DNAUeharaScreenedRutherfordElasticModel() -{ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - void G4DNAUeharaScreenedRutherfordElasticModel:: Initialise(const G4ParticleDefinition* particle, const G4DataVector& /*cuts*/) { -#ifdef UEHARA_VERBOSE + if(isInitialised) { return; } if (verboseLevel > 3) { - G4cout << "Calling G4DNAUeharaScreenedRutherfordElasticModel::Initialise()" - << G4endl; } -#endif if(particle->GetParticleName() != "e-") { @@ -106,35 +76,16 @@ Initialise(const G4ParticleDefinition* particle, "",FatalException,"") ; } - // Energy limits - - if(LowEnergyLimit() < 9.*CLHEP::eV) - { - G4Exception("*** WARNING : the G4DNAUeharaScreenedRutherfordElasticModel " - "class is not validated below 9 eV", - "",JustWarning,"") ; - } - if (HighEnergyLimit() > 10.*CLHEP::keV) + if( verboseLevel>1 ) { - G4Exception("*** WARNING: the G4DNAUeharaScreenedRutherfordElasticModel " - "class is used above 10 keV", - "",JustWarning,"") ; + G4cout << "G4DNAUeharaScreenedRutherfordElasticModel::Initialise()" + << G4endl; + G4cout << "Energy range: " + << LowEnergyLimit() / eV << " eV - " + << HighEnergyLimit() / MeV << " MeV" + << G4endl; } - -#ifdef UEHARA_VERBOSE - if( verboseLevel>0 ) - { - G4cout << "Screened Rutherford elastic model is initialized " << G4endl - << "Energy range: " - << LowEnergyLimit() / eV << " eV - " - << HighEnergyLimit() / MeV << " MeV" - << G4endl; - } -#endif - - if (isInitialised){ return; } - // Constants for final state by Brenner & Zaider // Note: the instantiation must be placed after if (isInitialised) @@ -208,6 +159,8 @@ CrossSectionPerVolume(const G4Material* material, // Calculate total cross section for model G4double sigma = 0.; + if(ekin < iLowEnergyLimit || ekin > iHighEnergyLimit) { return sigma; } + G4double waterDensity = (*fpWaterDensity)[material->GetIndex()]; G4double z = 7.42; // FROM PMB 37 (1992) 1841-1858 p1842 @@ -309,6 +262,8 @@ SampleSecondaries(std::vector* /*fvect*/, #endif G4double electronEnergy0 = aDynamicElectron->GetKineticEnergy(); + if(electronEnergy0 < iLowEnergyLimit || electronEnergy0 > iHighEnergyLimit) + return; G4double cosTheta = 0.; diff --git a/source/processes/electromagnetic/dna/models/src/G4DNAUpdateSystemModel.cc b/source/processes/electromagnetic/dna/models/src/G4DNAUpdateSystemModel.cc index 92a122b234..0c35c06995 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DNAUpdateSystemModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DNAUpdateSystemModel.cc @@ -169,7 +169,7 @@ void G4DNAUpdateSystemModel::UpdateSystem(const Index& index, const G4int nbProducts = data.GetNbProducts(); if(nbProducts != 0) { - for(size_t j = 0; j < (size_t) nbProducts; ++j) + for(G4int j = 0; j < nbProducts; ++j) { #ifdef G4VERBOSE if((fVerbose != 0) && j != 0) @@ -218,4 +218,4 @@ void G4DNAUpdateSystemModel::UpdateSystem(const Index& index, #endif JumpTo(index, reactant); JumpIn(JunpToIndex, reactant); -} \ No newline at end of file +} diff --git a/source/processes/electromagnetic/dna/models/src/G4DiffusionControlledReactionModel.cc b/source/processes/electromagnetic/dna/models/src/G4DiffusionControlledReactionModel.cc index 167ff57128..5ac9c6f0a6 100644 --- a/source/processes/electromagnetic/dna/models/src/G4DiffusionControlledReactionModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4DiffusionControlledReactionModel.cc @@ -70,8 +70,11 @@ G4double G4DiffusionControlledReactionModel::GetReactionRadius( "::GetReactionRadius()", "G4DiffusionControlledReactionModel00", FatalException, exceptionDescription); + return 0.; + }else + { + return reactionData->GetEffectiveReactionRadius(); } - return reactionData->GetEffectiveReactionRadius(); } G4double G4DiffusionControlledReactionModel::GetReactionRadius(const G4int& i) diff --git a/source/processes/electromagnetic/dna/models/src/G4VDNAModel.cc b/source/processes/electromagnetic/dna/models/src/G4VDNAModel.cc index 5d336a07cf..14da7a4610 100644 --- a/source/processes/electromagnetic/dna/models/src/G4VDNAModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4VDNAModel.cc @@ -195,13 +195,13 @@ G4int G4VDNAModel::RandomSelectShell(G4double k, const G4String& particle, const if (table != 0) { G4double* valuesBuffer = new G4double[table->NumberOfComponents()]; - const size_t n(table->NumberOfComponents()); - size_t i(n); + const G4int n = (G4int)table->NumberOfComponents(); + G4int i(n); G4double value = 0.; while (i>0) { - i--; + --i; valuesBuffer[i] = table->GetComponent(i)->FindValue(k); value += valuesBuffer[i]; } @@ -212,7 +212,7 @@ G4int G4VDNAModel::RandomSelectShell(G4double k, const G4String& particle, const while (i > 0) { - i--; + --i; if (valuesBuffer[i] > value) { diff --git a/source/processes/electromagnetic/dna/models/src/G4VLEPTSModel.cc b/source/processes/electromagnetic/dna/models/src/G4VLEPTSModel.cc index 2ce30a1846..cb14cb7c03 100644 --- a/source/processes/electromagnetic/dna/models/src/G4VLEPTSModel.cc +++ b/source/processes/electromagnetic/dna/models/src/G4VLEPTSModel.cc @@ -30,7 +30,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4VLEPTSModel::G4VLEPTSModel(const G4String& modelName) : G4VEmModel(modelName),isInitialised(false) { - theMeanFreePathTable=NULL; + theMeanFreePathTable=nullptr; theNumbBinTable=100; @@ -129,7 +129,7 @@ void G4VLEPTSModel::BuildPhysicsTable(const G4ParticleDefinition& aParticleType) ptrVector->PutValue(0, DBL_MAX); ptrVector->PutValue(1, DBL_MAX); - unsigned int matIdx = aMaterial->GetIndex(); + std::size_t matIdx = aMaterial->GetIndex(); theMeanFreePathTable->insertAt( matIdx , ptrVector ) ; } else { @@ -177,10 +177,10 @@ void G4VLEPTSModel::BuildMeanFreePathTable( const G4Material* aMaterial, std::ma G4double LowEdgeEnergy, fValue; //BUILD MEAN FREE PATH TABLE FROM INTEGRAL CROSS SECTION - unsigned int matIdx = aMaterial->GetIndex(); + std::size_t matIdx = aMaterial->GetIndex(); G4PhysicsLogVector* ptrVector = new G4PhysicsLogVector(theLowestEnergyLimit, theHighestEnergyLimit, theNumbBinTable); - for (G4int ii=0; ii < theNumbBinTable; ii++) { + for (G4int ii=0; ii < theNumbBinTable; ++ii) { LowEdgeEnergy = ptrVector->Energy(ii); if( verboseLevel >= 2 ) G4cout << GetName() << " " << ii << " Energy " << LowEdgeEnergy << " > " << theLowestEnergyLimit << " < " << theHighestEnergyLimit << G4endl; //- fValue = ComputeMFP(LowEdgeEnergy, material, aParticleName); @@ -190,7 +190,7 @@ void G4VLEPTSModel::BuildMeanFreePathTable( const G4Material* aMaterial, std::ma G4double NbOfMoleculesPerVolume = aMaterial->GetDensity()/theMolecularMass[aMaterial]*CLHEP::Avogadro; G4double SIGMA = 0. ; - //- for ( size_t elm=0 ; elm < aMaterial->GetNumberOfElements() ; elm++ ) { + //- for ( std::size_t elm=0 ; elm < aMaterial->GetNumberOfElements() ; elm++ ) { G4double crossSection = 0.; G4double eVEnergy = LowEdgeEnergy/CLHEP::eV; @@ -337,9 +337,9 @@ G4bool G4VLEPTSModel::ReadParam(G4String fnParam, const G4Material* aMaterial ) theIonisPotInt[aMaterial] = IonisPotInt * CLHEP::eV; G4double MolecularMass = 0; - size_t nelem = aMaterial->GetNumberOfElements(); + G4int nelem = (G4int)aMaterial->GetNumberOfElements(); const G4int* atomsV = aMaterial->GetAtomsVector(); - for( size_t ii = 0; ii < nelem; ii++ ) { + for( G4int ii = 0; ii < nelem; ++ii ) { MolecularMass += aMaterial->GetElement(ii)->GetA()*atomsV[ii]/CLHEP::g; // G4cout << " MMASS1 " << mmass/CLHEP::g << " " << aMaterial->GetElement(ii)->GetName() << " " << aMaterial->GetElement(ii)->GetA()/CLHEP::g << G4endl; } diff --git a/source/processes/electromagnetic/dna/molecules/management/src/G4MolecularConfiguration.cc b/source/processes/electromagnetic/dna/molecules/management/src/G4MolecularConfiguration.cc index b7bdc8af70..d06d827ec0 100644 --- a/source/processes/electromagnetic/dna/molecules/management/src/G4MolecularConfiguration.cc +++ b/source/processes/electromagnetic/dna/molecules/management/src/G4MolecularConfiguration.cc @@ -1547,7 +1547,7 @@ void G4MolecularConfiguration::FinalizeAll() const std::vector& species = GetManager()->GetAllSpecies(); - for(size_t i = 0; i < species.size() ; ++i) + for(std::size_t i = 0; i < species.size() ; ++i) { species[i]->Finalize(); } @@ -1562,10 +1562,10 @@ void G4MolecularConfiguration::PrintAll() //hoang added G4cout<<"Molecular Config"<GetName() - <GetName().length()) + <GetName().length())) <GetDiffusionCoefficient() * 1.0e3<GetVanDerVaalsRadius()/CLHEP::nm<push_back(it.first); } @@ -429,13 +429,13 @@ RecordedTimes G4MoleculeCounter::GetRecordedTimes() void G4MoleculeCounter::Dump() { - for (auto it : fCounterMap) + for (const auto& it : fCounterMap) { auto pReactant = it.first; G4cout << " --- > For " << pReactant->GetName() << G4endl; - for (auto it2 : it.second) + for (const auto& it2 : it.second) { G4cout << " " << G4BestUnit(it2.first, "Time") << " " << it2.second << G4endl; diff --git a/source/processes/electromagnetic/dna/molecules/types/src/G4DNAMolecule.cc b/source/processes/electromagnetic/dna/molecules/types/src/G4DNAMolecule.cc index 3540be5903..b2ca412f92 100644 --- a/source/processes/electromagnetic/dna/molecules/types/src/G4DNAMolecule.cc +++ b/source/processes/electromagnetic/dna/molecules/types/src/G4DNAMolecule.cc @@ -55,7 +55,7 @@ G4DamagedDeoxyribose* G4DamagedDeoxyribose::Definition() ); } - fgInstance = reinterpret_cast(pInstance); + fgInstance = static_cast(pInstance); return fgInstance; } @@ -81,7 +81,7 @@ G4DamagedAdenine* G4DamagedAdenine::Definition() 2 // number of atoms ); } - fgInstance = reinterpret_cast(pInstance); + fgInstance = static_cast(pInstance); return fgInstance; } @@ -108,7 +108,7 @@ G4DamagedGuanine* G4DamagedGuanine::Definition() 2 // number of atoms ); } - fgInstance = reinterpret_cast(pInstance); + fgInstance = static_cast(pInstance); return fgInstance; } @@ -135,7 +135,7 @@ G4DamagedThymine* G4DamagedThymine::Definition() ); } - fgInstance = reinterpret_cast(pInstance); + fgInstance = static_cast(pInstance); return fgInstance; } @@ -161,7 +161,7 @@ G4DamagedCytosine* G4DamagedCytosine::Definition() 2 // number of atoms ); } - fgInstance = reinterpret_cast(pInstance); + fgInstance = static_cast(pInstance); return fgInstance; } @@ -188,7 +188,7 @@ G4Deoxyribose* G4Deoxyribose::Definition() 2 // number of atoms ); } - fgInstance = reinterpret_cast(pInstance); + fgInstance = static_cast(pInstance); return fgInstance; } @@ -214,7 +214,7 @@ G4Phosphate* G4Phosphate::Definition() 2 // number of atoms ); } - fgInstance = reinterpret_cast(pInstance); + fgInstance = static_cast(pInstance); return fgInstance; } @@ -240,7 +240,7 @@ G4Adenine* G4Adenine::Definition() 1 // number of atoms ); } - fgInstance = reinterpret_cast(pInstance); + fgInstance = static_cast(pInstance); return fgInstance; } @@ -268,7 +268,7 @@ G4Guanine* G4Guanine::Definition() } - fgInstance = reinterpret_cast(pInstance); + fgInstance = static_cast(pInstance); return fgInstance; } @@ -294,7 +294,7 @@ G4Thymine* G4Thymine::Definition() 1 // number of atoms ); } - fgInstance = reinterpret_cast(pInstance); + fgInstance = static_cast(pInstance); return fgInstance; } @@ -320,7 +320,7 @@ G4Cytosine* G4Cytosine::Definition() 1 // number of atoms ); } - fgInstance = reinterpret_cast(pInstance); + fgInstance = static_cast(pInstance); return fgInstance; } @@ -346,7 +346,7 @@ G4ModifiedHistone* G4ModifiedHistone::Definition() 1 // number of atoms ); } - fgInstance = reinterpret_cast(pInstance); + fgInstance = static_cast(pInstance); return fgInstance; } @@ -373,6 +373,6 @@ G4Histone* G4Histone::Definition() 1 // number of atoms ); } - fgInstance = reinterpret_cast(pInstance); + fgInstance = static_cast(pInstance); return fgInstance; } diff --git a/source/processes/electromagnetic/dna/molecules/types/src/G4Electron_aq.cc b/source/processes/electromagnetic/dna/molecules/types/src/G4Electron_aq.cc index d3ac9342ce..0196a17bc7 100644 --- a/source/processes/electromagnetic/dna/molecules/types/src/G4Electron_aq.cc +++ b/source/processes/electromagnetic/dna/molecules/types/src/G4Electron_aq.cc @@ -76,6 +76,6 @@ G4Electron_aq* G4Electron_aq::Definition() ((G4MoleculeDefinition*) anInstance)->SetFormatedName(formatedName); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/processes/electromagnetic/dna/molecules/types/src/G4FakeMolecule.cc b/source/processes/electromagnetic/dna/molecules/types/src/G4FakeMolecule.cc index d40e625739..ba85745c6d 100644 --- a/source/processes/electromagnetic/dna/molecules/types/src/G4FakeMolecule.cc +++ b/source/processes/electromagnetic/dna/molecules/types/src/G4FakeMolecule.cc @@ -74,6 +74,6 @@ G4FakeMolecule* G4FakeMolecule::Definition() ((G4MoleculeDefinition*) anInstance)->SetLevelOccupation(0); // Set 2 electrons on 1 single occupancy ((G4MoleculeDefinition*) anInstance)->SetFormatedName(formatedName); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/processes/electromagnetic/dna/molecules/types/src/G4H2.cc b/source/processes/electromagnetic/dna/molecules/types/src/G4H2.cc index 5a1427d741..36227ce78b 100644 --- a/source/processes/electromagnetic/dna/molecules/types/src/G4H2.cc +++ b/source/processes/electromagnetic/dna/molecules/types/src/G4H2.cc @@ -74,6 +74,6 @@ G4H2* G4H2::Definition() ((G4MoleculeDefinition*) anInstance)->SetLevelOccupation(0); // Set 2 electrons on 1 single occupancy ((G4MoleculeDefinition*) anInstance)->SetFormatedName(formatedName); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/processes/electromagnetic/dna/molecules/types/src/G4H2O.cc b/source/processes/electromagnetic/dna/molecules/types/src/G4H2O.cc index 1a5e334972..d7ca3e0446 100644 --- a/source/processes/electromagnetic/dna/molecules/types/src/G4H2O.cc +++ b/source/processes/electromagnetic/dna/molecules/types/src/G4H2O.cc @@ -73,7 +73,7 @@ G4H2O* G4H2O::Definition() ((G4MoleculeDefinition*) pInstance)->SetFormatedName(formatedName); } - fgpInstance = reinterpret_cast(pInstance); + fgpInstance = static_cast(pInstance); return fgpInstance; } diff --git a/source/processes/electromagnetic/dna/molecules/types/src/G4H2O2.cc b/source/processes/electromagnetic/dna/molecules/types/src/G4H2O2.cc index a1d9878954..68300b5de1 100644 --- a/source/processes/electromagnetic/dna/molecules/types/src/G4H2O2.cc +++ b/source/processes/electromagnetic/dna/molecules/types/src/G4H2O2.cc @@ -86,6 +86,6 @@ G4H2O2* G4H2O2::Definition() ((G4MoleculeDefinition*) anInstance)->SetLevelOccupation(7); ((G4MoleculeDefinition*) anInstance)->SetFormatedName(formatedName); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/processes/electromagnetic/dna/molecules/types/src/G4H3O.cc b/source/processes/electromagnetic/dna/molecules/types/src/G4H3O.cc index 041b2c154e..9c2196cbdd 100644 --- a/source/processes/electromagnetic/dna/molecules/types/src/G4H3O.cc +++ b/source/processes/electromagnetic/dna/molecules/types/src/G4H3O.cc @@ -83,6 +83,6 @@ G4H3O* G4H3O::Definition() ((G4MoleculeDefinition*) anInstance)->SetLevelOccupation(4, 1); ((G4MoleculeDefinition*) anInstance)->SetFormatedName(formatedName); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/processes/electromagnetic/dna/molecules/types/src/G4HO2.cc b/source/processes/electromagnetic/dna/molecules/types/src/G4HO2.cc index dedfe37c8f..f0ac18f0ee 100644 --- a/source/processes/electromagnetic/dna/molecules/types/src/G4HO2.cc +++ b/source/processes/electromagnetic/dna/molecules/types/src/G4HO2.cc @@ -74,6 +74,6 @@ G4HO2* G4HO2::Definition() ((G4MoleculeDefinition*) anInstance)->SetLevelOccupation(0); // Set 2 electrons on 1 single occupancy ((G4MoleculeDefinition*) anInstance)->SetFormatedName(formatedName); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/processes/electromagnetic/dna/molecules/types/src/G4Hydrogen.cc b/source/processes/electromagnetic/dna/molecules/types/src/G4Hydrogen.cc index 59bd6231eb..4f2c2f03ac 100644 --- a/source/processes/electromagnetic/dna/molecules/types/src/G4Hydrogen.cc +++ b/source/processes/electromagnetic/dna/molecules/types/src/G4Hydrogen.cc @@ -73,6 +73,6 @@ G4Hydrogen* G4Hydrogen::Definition() ((G4MoleculeDefinition*) anInstance)->SetLevelOccupation(0, 1); ((G4MoleculeDefinition*) anInstance)->SetFormatedName("H"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/processes/electromagnetic/dna/molecules/types/src/G4O2.cc b/source/processes/electromagnetic/dna/molecules/types/src/G4O2.cc index 97a94f901e..72820463ef 100644 --- a/source/processes/electromagnetic/dna/molecules/types/src/G4O2.cc +++ b/source/processes/electromagnetic/dna/molecules/types/src/G4O2.cc @@ -74,6 +74,6 @@ G4O2* G4O2::Definition() ((G4MoleculeDefinition*) anInstance)->SetLevelOccupation(0); // not implemented ((G4MoleculeDefinition*) anInstance)->SetFormatedName(formatedName); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/processes/electromagnetic/dna/molecules/types/src/G4O3.cc b/source/processes/electromagnetic/dna/molecules/types/src/G4O3.cc index d3795e16c5..daa78e46de 100644 --- a/source/processes/electromagnetic/dna/molecules/types/src/G4O3.cc +++ b/source/processes/electromagnetic/dna/molecules/types/src/G4O3.cc @@ -74,6 +74,6 @@ G4O3* G4O3::Definition() ((G4MoleculeDefinition*) anInstance)->SetLevelOccupation(0); // Set 2 electrons on 1 single occupancy ((G4MoleculeDefinition*) anInstance)->SetFormatedName(formatedName); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/processes/electromagnetic/dna/molecules/types/src/G4OH.cc b/source/processes/electromagnetic/dna/molecules/types/src/G4OH.cc index 244a4b2676..9dd8edf5d0 100644 --- a/source/processes/electromagnetic/dna/molecules/types/src/G4OH.cc +++ b/source/processes/electromagnetic/dna/molecules/types/src/G4OH.cc @@ -77,7 +77,7 @@ G4OH* G4OH::Definition() ((G4MoleculeDefinition*) anInstance)->SetLevelOccupation(3, 3); ((G4MoleculeDefinition*) anInstance)->SetFormatedName("OH"); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/processes/electromagnetic/dna/molecules/types/src/G4Oxygen.cc b/source/processes/electromagnetic/dna/molecules/types/src/G4Oxygen.cc index 14fc08cc74..cee08d7fc2 100644 --- a/source/processes/electromagnetic/dna/molecules/types/src/G4Oxygen.cc +++ b/source/processes/electromagnetic/dna/molecules/types/src/G4Oxygen.cc @@ -73,6 +73,6 @@ G4Oxygen* G4Oxygen::Definition() ((G4MoleculeDefinition*) anInstance)->SetLevelOccupation(0); // Set 2 electrons on 1 single occupancy ((G4MoleculeDefinition*) anInstance)->SetFormatedName(formatedName); } - theInstance = reinterpret_cast(anInstance); + theInstance = static_cast(anInstance); return theInstance; } diff --git a/source/processes/electromagnetic/dna/processes/include/G4DNAExcitation.hh b/source/processes/electromagnetic/dna/processes/include/G4DNAExcitation.hh index 313fc670d0..8ae2dc2a3d 100644 --- a/source/processes/electromagnetic/dna/processes/include/G4DNAExcitation.hh +++ b/source/processes/electromagnetic/dna/processes/include/G4DNAExcitation.hh @@ -31,36 +31,28 @@ #include "G4VEmProcess.hh" -#include "G4DNAGenericIonsManager.hh" -#include "G4Electron.hh" -#include "G4Proton.hh" - -// Available models -#include "G4DNAMillerGreenExcitationModel.hh" -#include "G4DNABornExcitationModel.hh" - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class G4DNAExcitation : public G4VEmProcess { -public: +public: G4DNAExcitation(const G4String& processName ="DNAExcitation", G4ProcessType type = fElectromagnetic); - virtual ~G4DNAExcitation(); + ~G4DNAExcitation() override = default; - virtual G4bool IsApplicable(const G4ParticleDefinition&); + G4bool IsApplicable(const G4ParticleDefinition&) override; - virtual void PrintInfo(); + void ProcessDescription(std::ostream& outFile) const override; protected: - virtual void InitialiseProcess(const G4ParticleDefinition*); + void InitialiseProcess(const G4ParticleDefinition*) override; private: - G4bool isInitialised; + G4bool isInitialised; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/dna/processes/include/G4DNAPlasmonExcitation.hh b/source/processes/electromagnetic/dna/processes/include/G4DNAPlasmonExcitation.hh old mode 100755 new mode 100644 diff --git a/source/processes/electromagnetic/dna/processes/include/G4DNAPolyNucleotideReactionProcess.hh b/source/processes/electromagnetic/dna/processes/include/G4DNAPolyNucleotideReactionProcess.hh index 062ef83b35..b09603bc71 100644 --- a/source/processes/electromagnetic/dna/processes/include/G4DNAPolyNucleotideReactionProcess.hh +++ b/source/processes/electromagnetic/dna/processes/include/G4DNAPolyNucleotideReactionProcess.hh @@ -88,7 +88,6 @@ class G4DNAPolyNucleotideReactionProcess : public G4VITDiscreteProcess G4int fVerbose; G4double fRCutOff; G4VDNAHitModel* fpDamageModel; - const G4DNAMolecularReactionTable* fMolecularReactionTable; G4DNAPolyNucleotideReactionProcess(const G4DNAPolyNucleotideReactionProcess&); }; inline void G4DNAPolyNucleotideReactionProcess::SetVerbose(G4int verbose) diff --git a/source/processes/electromagnetic/dna/processes/include/G4DNARotExcitation.hh b/source/processes/electromagnetic/dna/processes/include/G4DNARotExcitation.hh index 508036dd9e..e2c6214f85 100644 --- a/source/processes/electromagnetic/dna/processes/include/G4DNARotExcitation.hh +++ b/source/processes/electromagnetic/dna/processes/include/G4DNARotExcitation.hh @@ -32,15 +32,19 @@ class G4DNARotExcitation : public G4VEmProcess { public: G4DNARotExcitation(const G4String& processName ="G4DNARotExcitation"); - ~G4DNARotExcitation(); + ~G4DNARotExcitation() override = default; - G4bool IsApplicable(const G4ParticleDefinition&); - virtual void InitialiseProcess(const G4ParticleDefinition*); - virtual void PrintInfo(); + G4bool IsApplicable(const G4ParticleDefinition&) override; + + void ProcessDescription(std::ostream& outFile) const override; + +protected: + + void InitialiseProcess(const G4ParticleDefinition*) override; private: - G4bool isInitialised; + G4bool isInitialised; }; diff --git a/source/processes/electromagnetic/dna/processes/include/G4DNAVibExcitation.hh b/source/processes/electromagnetic/dna/processes/include/G4DNAVibExcitation.hh index da34963e4b..a5a77ba446 100644 --- a/source/processes/electromagnetic/dna/processes/include/G4DNAVibExcitation.hh +++ b/source/processes/electromagnetic/dna/processes/include/G4DNAVibExcitation.hh @@ -33,9 +33,6 @@ #include "G4VEmProcess.hh" -// Available models -#include "G4DNASancheExcitationModel.hh" - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class G4DNAVibExcitation : public G4VEmProcess @@ -45,24 +42,19 @@ public: G4DNAVibExcitation(const G4String& processName ="DNAVibrationalExcitation", G4ProcessType type = fElectromagnetic); - virtual ~G4DNAVibExcitation(); + ~G4DNAVibExcitation() override = default; - virtual G4bool IsApplicable(const G4ParticleDefinition&); + G4bool IsApplicable(const G4ParticleDefinition&) override; - virtual void PrintInfo(); - - static int ProcessSubType() - { - return 54; - } + void ProcessDescription(std::ostream& outFile) const override; protected: - virtual void InitialiseProcess(const G4ParticleDefinition*); + void InitialiseProcess(const G4ParticleDefinition*) override; private: - G4bool isInitialised; + G4bool isInitialised; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/dna/processes/src/G4DNAExcitation.cc b/source/processes/electromagnetic/dna/processes/src/G4DNAExcitation.cc index e8281a8a91..5302ed15fb 100644 --- a/source/processes/electromagnetic/dna/processes/src/G4DNAExcitation.cc +++ b/source/processes/electromagnetic/dna/processes/src/G4DNAExcitation.cc @@ -26,6 +26,12 @@ #include "G4DNAExcitation.hh" #include "G4LEPTSExcitationModel.hh" +#include "G4DNAMillerGreenExcitationModel.hh" +#include "G4DNABornExcitationModel.hh" +#include "G4DNAGenericIonsManager.hh" +#include "G4Electron.hh" +#include "G4Proton.hh" + #include "G4SystemOfUnits.hh" #include "G4Positron.hh" #include "G4LowEnergyEmProcessSubType.hh" @@ -41,12 +47,6 @@ G4DNAExcitation::G4DNAExcitation(const G4String& processName, SetProcessSubType(fLowEnergyExcitation); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4DNAExcitation::~G4DNAExcitation() -{ -} - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4bool G4DNAExcitation::IsApplicable(const G4ParticleDefinition& p) @@ -67,6 +67,8 @@ G4bool G4DNAExcitation::IsApplicable(const G4ParticleDefinition& p) void G4DNAExcitation::InitialiseProcess(const G4ParticleDefinition* p) { + // default models are defined in the case of unit tests, + // when G4EmDNABuilder is not used if(!isInitialised) { isInitialised = true; @@ -76,39 +78,30 @@ void G4DNAExcitation::InitialiseProcess(const G4ParticleDefinition* p) if(name == "e-") { - - // Emfietzoglou model - /* - if(!EmModel()) SetEmModel(new G4DNAEmfietzoglouExcitationModel); - EmModel()->SetLowEnergyLimit(8.23*eV); - EmModel()->SetHighEnergyLimit(10*MeV); - */ // Born model - if(!EmModel()) + if(nullptr == EmModel(0)) { G4DNABornExcitationModel* born = new G4DNABornExcitationModel(); SetEmModel(born); born->SetLowEnergyLimit(9 * eV); born->SetHighEnergyLimit(1 * MeV); } - AddEmModel(1, EmModel()); + AddEmModel(1, EmModel(0)); } - else if(name == "e+") { - if(!EmModel()) + if(nullptr == EmModel(0)) { G4LEPTSExcitationModel* lepts = new G4LEPTSExcitationModel(); SetEmModel(lepts); lepts->SetLowEnergyLimit(1 * eV); lepts->SetHighEnergyLimit(1 * MeV); } - AddEmModel(1, EmModel()); + AddEmModel(1, EmModel(0)); } - else if(name == "proton") { - if(!EmModel(0)) // MK: Is this a correct test ? + if(nullptr == EmModel(0)) { G4DNAMillerGreenExcitationModel* miller = new G4DNAMillerGreenExcitationModel(); @@ -122,13 +115,12 @@ void G4DNAExcitation::InitialiseProcess(const G4ParticleDefinition* p) born->SetHighEnergyLimit(100 * MeV); } - AddEmModel(1, EmModel()); - if(EmModel(1)) AddEmModel(2, EmModel(1)); + AddEmModel(1, EmModel(0)); + if(nullptr != EmModel(1)) AddEmModel(2, EmModel(1)); } - else if(name == "hydrogen") { - if(!EmModel()) + if(nullptr == EmModel(0)) { G4DNAMillerGreenExcitationModel* miller = new G4DNAMillerGreenExcitationModel; @@ -136,12 +128,11 @@ void G4DNAExcitation::InitialiseProcess(const G4ParticleDefinition* p) miller->SetLowEnergyLimit(10 * eV); miller->SetHighEnergyLimit(500 * keV); } - AddEmModel(1, EmModel()); + AddEmModel(1, EmModel(0)); } - else if(name == "alpha" || name == "alpha+" || name == "helium") { - if(!EmModel()) + if(nullptr == EmModel(0)) { G4DNAMillerGreenExcitationModel* miller = new G4DNAMillerGreenExcitationModel; @@ -149,26 +140,17 @@ void G4DNAExcitation::InitialiseProcess(const G4ParticleDefinition* p) miller->SetLowEnergyLimit(1 * keV); miller->SetHighEnergyLimit(400 * MeV); } - AddEmModel(1, EmModel()); + AddEmModel(1, EmModel(0)); } } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4DNAExcitation::PrintInfo() +void G4DNAExcitation::ProcessDescription(std::ostream& out) const { - if(EmModel(2)) - { - G4cout << " Total cross sections computed from " << EmModel(1)->GetName() - << " and " << EmModel(2)->GetName() << " models" << G4endl; - } - else - { - G4cout << " Total cross sections computed from " - << EmModel()->GetName() - << G4endl; - } + out << " DNA Excitation"; + G4VEmProcess::ProcessDescription(out); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/dna/processes/src/G4DNARotExcitation.cc b/source/processes/electromagnetic/dna/processes/src/G4DNARotExcitation.cc index 788f2ffeaa..8f975d21d8 100644 --- a/source/processes/electromagnetic/dna/processes/src/G4DNARotExcitation.cc +++ b/source/processes/electromagnetic/dna/processes/src/G4DNARotExcitation.cc @@ -26,46 +26,40 @@ #include "G4DNARotExcitation.hh" #include "G4LEPTSRotExcitationModel.hh" - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4DNARotExcitation::G4DNARotExcitation(const G4String& processName) : G4VEmProcess( processName ),isInitialised(false) { -} // constructor - - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4DNARotExcitation::~G4DNARotExcitation() { + SetBuildTableFlag(false); } - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4bool G4DNARotExcitation::IsApplicable(const G4ParticleDefinition& particleDef) { +G4bool G4DNARotExcitation::IsApplicable(const G4ParticleDefinition& particleDef) +{ return( &particleDef == G4Electron::Electron() || &particleDef == G4Positron::Positron() ); } - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4DNARotExcitation::InitialiseProcess(const G4ParticleDefinition*) { if(!isInitialised) { isInitialised = true; - SetBuildTableFlag(false); - if(!EmModel()) SetEmModel(new G4LEPTSRotExcitationModel); - EmModel()->SetLowEnergyLimit(0.1*CLHEP::eV); - EmModel()->SetHighEnergyLimit(15.*CLHEP::MeV); - AddEmModel(1, EmModel()); - + if(nullptr == EmModel(0)) SetEmModel(new G4LEPTSRotExcitationModel); + EmModel(0)->SetLowEnergyLimit(0.1*CLHEP::eV); + EmModel(0)->SetHighEnergyLimit(15.*CLHEP::MeV); + AddEmModel(1, EmModel(0)); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4DNARotExcitation::PrintInfo() -{ - G4cout - << " Total cross sections computed from " << EmModel()->GetName() << " model" - << G4endl; -} + +void G4DNARotExcitation::ProcessDescription(std::ostream& out) const +{ + out << " DNA Rotation Excitation"; + G4VEmProcess::ProcessDescription(out); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/dna/processes/src/G4DNAVibExcitation.cc b/source/processes/electromagnetic/dna/processes/src/G4DNAVibExcitation.cc index 26d77e3f9a..c19085238f 100644 --- a/source/processes/electromagnetic/dna/processes/src/G4DNAVibExcitation.cc +++ b/source/processes/electromagnetic/dna/processes/src/G4DNAVibExcitation.cc @@ -25,6 +25,7 @@ // #include "G4DNAVibExcitation.hh" +#include "G4DNASancheExcitationModel.hh" #include "G4LEPTSVibExcitationModel.hh" #include "G4SystemOfUnits.hh" #include "G4Positron.hh" @@ -41,11 +42,6 @@ G4DNAVibExcitation::G4DNAVibExcitation(const G4String& processName, SetProcessSubType(fLowEnergyVibrationalExcitation); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4DNAVibExcitation::~G4DNAVibExcitation() -{} - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4bool G4DNAVibExcitation::IsApplicable(const G4ParticleDefinition& p) @@ -57,6 +53,8 @@ G4bool G4DNAVibExcitation::IsApplicable(const G4ParticleDefinition& p) void G4DNAVibExcitation::InitialiseProcess(const G4ParticleDefinition* p) { + // default models are defined in the case of unit tests, + // when G4EmDNABuilder is not used if(!isInitialised) { isInitialised = true; @@ -66,16 +64,17 @@ void G4DNAVibExcitation::InitialiseProcess(const G4ParticleDefinition* p) if(name == "e-" ) { - if(!EmModel()) + if(nullptr == EmModel()) { SetEmModel(new G4DNASancheExcitationModel); EmModel()->SetLowEnergyLimit(2*eV); EmModel()->SetHighEnergyLimit(100*eV); } AddEmModel(1, EmModel()); - } else if(name == "e+") + } + else if(name == "e+") { - if(!EmModel()) + if(nullptr == EmModel()) { SetEmModel(new G4LEPTSVibExcitationModel); EmModel()->SetLowEnergyLimit(2*eV); @@ -88,10 +87,10 @@ void G4DNAVibExcitation::InitialiseProcess(const G4ParticleDefinition* p) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4DNAVibExcitation::PrintInfo() +void G4DNAVibExcitation::ProcessDescription(std::ostream& out) const { - G4cout - << " Total cross sections computed from " - << EmModel()->GetName() - << G4endl; + out << " DNA Vibrational Excitation"; + G4VEmProcess::ProcessDescription(out); } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/dna/management/include/G4ChemicalMoleculeFinder.hh b/source/processes/electromagnetic/dna/utils/include/G4ChemicalMoleculeFinder.hh similarity index 100% rename from source/processes/electromagnetic/dna/management/include/G4ChemicalMoleculeFinder.hh rename to source/processes/electromagnetic/dna/utils/include/G4ChemicalMoleculeFinder.hh diff --git a/source/processes/electromagnetic/dna/utils/include/G4DNADamage.hh b/source/processes/electromagnetic/dna/utils/include/G4DNADamage.hh index 15923c4082..2295d61f36 100644 --- a/source/processes/electromagnetic/dna/utils/include/G4DNADamage.hh +++ b/source/processes/electromagnetic/dna/utils/include/G4DNADamage.hh @@ -88,23 +88,23 @@ public: virtual void AddIndirectDamage(const G4String& baseName, const G4Molecule* molecule, const G4ThreeVector& position, - double time); + G4double time); inline const std::vector* GetIndirectHits(); - inline virtual int GetNIndirectHits() const + inline virtual G4int GetNIndirectHits() const { if(fJustCountDamage) return fNIndirectDamage; - return fIndirectHits.size(); + return (G4int)fIndirectHits.size(); } - inline virtual void SetOnlyCountDamage(bool flag = true) + inline virtual void SetOnlyCountDamage(G4bool flag = true) { fJustCountDamage = flag; } - inline virtual bool OnlyCountDamage() const + inline virtual G4bool OnlyCountDamage() const { return fJustCountDamage; } diff --git a/source/processes/electromagnetic/dna/utils/include/G4DNAEventSet.hh b/source/processes/electromagnetic/dna/utils/include/G4DNAEventSet.hh index d587df386f..98f63fa017 100644 --- a/source/processes/electromagnetic/dna/utils/include/G4DNAEventSet.hh +++ b/source/processes/electromagnetic/dna/utils/include/G4DNAEventSet.hh @@ -29,7 +29,6 @@ #include #include #include -#include "G4Track.hh" #include #include "G4DNAMesh.hh" #include diff --git a/source/processes/electromagnetic/dna/utils/include/G4DNAMesh.hh b/source/processes/electromagnetic/dna/utils/include/G4DNAMesh.hh index 41cca31cb4..d3cd5f53b5 100644 --- a/source/processes/electromagnetic/dna/utils/include/G4DNAMesh.hh +++ b/source/processes/electromagnetic/dna/utils/include/G4DNAMesh.hh @@ -36,65 +36,7 @@ #include #include #include "G4MolecularConfiguration.hh" -#include "G4Track.hh" - -class G4VDNAMesh -{ - public: - G4VDNAMesh() = default; - virtual ~G4VDNAMesh() = default; - struct Index - { - Index() = default; - Index(G4int _x, G4int _y, G4int _z) - : x(_x) - , y(_y) - , z(_z) - {} - ~Index() = default; - G4bool operator==(const Index& rhs) const - { - return x == rhs.x && y == rhs.y && z == rhs.z; - } - G4bool operator!=(const Index& rhs) const - { - return x != rhs.x || y != rhs.y || z != rhs.z; - } - G4bool operator<(const Index& rhs) const - { - if(x != rhs.x) - { - return x < rhs.x; - } - else if(y != rhs.y) - { - return y < rhs.y; - } - else if(z != rhs.z) - { - return z < rhs.z; - } - else - { - return false; - } - } - friend std::ostream& operator<<(std::ostream& s, const Index& rhs); - G4int x = 0; - G4int y = 0; - G4int z = 0; - }; - struct hashFunc - { - size_t operator()(const Index& k) const - { - size_t h1 = std::hash()(k.x); - size_t h2 = std::hash()(k.y); - size_t h3 = std::hash()(k.z); - return (h1 ^ (h2 << 1)) ^ h3; - } - }; -}; +#include "G4VDNAMesh.hh" class G4DNAMesh : public G4VDNAMesh { diff --git a/source/processes/electromagnetic/dna/utils/include/G4DNAMolecularMaterial.hh b/source/processes/electromagnetic/dna/utils/include/G4DNAMolecularMaterial.hh index 9e4da05514..30b16e38df 100644 --- a/source/processes/electromagnetic/dna/utils/include/G4DNAMolecularMaterial.hh +++ b/source/processes/electromagnetic/dna/utils/include/G4DNAMolecularMaterial.hh @@ -65,7 +65,7 @@ struct CompareMaterial bool operator()(const G4Material* mat1, const G4Material* mat2) const; }; -typedef std::map ComponentMap; +using ComponentMap = std::map; /** * \class G4DNAMolecularMaterial @@ -248,13 +248,13 @@ protected: fAskedDensityTable; mutable std::map*, CompareMaterial> fAskedNumPerVolTable; - mutable std::map fWarningPrinted; + mutable std::map fWarningPrinted; - std::map fMaterialToMolecularConf; G4bool fIsInitialized; - size_t fNMaterials; + std::size_t fNMaterials; }; #endif // G4DNAMolecularMaterial_HH diff --git a/environments/g4py/tests/gtest01/module/QPhysicsList.hh b/source/processes/electromagnetic/dna/utils/include/G4DNAPTBExcitationStructure.hh similarity index 73% rename from environments/g4py/tests/gtest01/module/QPhysicsList.hh rename to source/processes/electromagnetic/dna/utils/include/G4DNAPTBExcitationStructure.hh index cb2e344687..0a49cc5f94 100644 --- a/environments/g4py/tests/gtest01/module/QPhysicsList.hh +++ b/source/processes/electromagnetic/dna/utils/include/G4DNAPTBExcitationStructure.hh @@ -23,29 +23,36 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// QPhysicsList.hh -// -// 2005 Q -// ==================================================================== -#ifndef Q_PHYSICS_LIST_H -#define Q_PHYSICS_LIST_H -#include "G4VModularPhysicsList.hh" +#ifndef G4DNAPTBExcitationStructure_h +#define G4DNAPTBExcitationStructure_h 1 + #include "globals.hh" +#include +#include -// ==================================================================== -// -// class definition -// -// ==================================================================== - -class QPhysicsList: public G4VModularPhysicsList { + +class G4DNAPTBExcitationStructure +{ public: - QPhysicsList(); - ~QPhysicsList(); - virtual void SetCuts(); + G4DNAPTBExcitationStructure(); + + virtual ~G4DNAPTBExcitationStructure() = default; + + G4double ExcitationEnergy(G4int ExcLevel, const G4String &materialName); + + G4int NumberOfExcLevels(const G4String& materialName); + + +private: + + // Number of Excitation levels of the water molecule + std::map nExcLevels; + + std::map > energyConstant; + + G4String ReplaceMaterial(const G4String &materialName); }; #endif diff --git a/source/processes/electromagnetic/dna/utils/include/G4IRTUtils.hh b/source/processes/electromagnetic/dna/utils/include/G4IRTUtils.hh old mode 100755 new mode 100644 diff --git a/source/processes/electromagnetic/dna/utils/include/G4MoleculeGun.hh b/source/processes/electromagnetic/dna/utils/include/G4MoleculeGun.hh index 7080db0a26..6161a6164b 100644 --- a/source/processes/electromagnetic/dna/utils/include/G4MoleculeGun.hh +++ b/source/processes/electromagnetic/dna/utils/include/G4MoleculeGun.hh @@ -48,15 +48,17 @@ #include "G4ITGun.hh" #include "globals.hh" #include "G4ThreeVector.hh" +#include "G4memory.hh" + #include #include -#include class G4Track; class G4MoleculeGunMessenger; class G4MoleculeShootMessenger; class G4MoleculeGun; -typedef int G4ContinuousMedium; + +using G4ContinuousMedium = G4int; //------------------------------------------------------------------------------ @@ -139,7 +141,7 @@ public: */ void AddMolecule(const G4String& moleculeName, const G4ThreeVector& position, - double time = 0); + G4double time = 0); /* * Create N molecules at a single point @@ -148,10 +150,10 @@ public: * @param position position where the molecules should pop up * @param time time at which the molecules should pop up */ - void AddNMolecules(size_t n, + void AddNMolecules(std::size_t n, const G4String& moleculeName, const G4ThreeVector& position, - double time = 0); + G4double time = 0); /* * Create N molecules in a box @@ -161,11 +163,11 @@ public: * @param boxExtension size of the box * @param time time at which the molecules should pop up */ - void AddMoleculesRandomPositionInBox(size_t n, + void AddMoleculesRandomPositionInBox(std::size_t n, const G4String& moleculeName, const G4ThreeVector& boxCenter, const G4ThreeVector& boxExtension, - double time = 0); + G4double time = 0); /* * Create N molecules as component of the continuous medium in a box @@ -175,22 +177,22 @@ public: * @param boxExtension size of the box * @param time time at which the molecules should pop up */ -// void AddMoleculeInCMRepresentation(size_t n, +// void AddMoleculeInCMRepresentation(std::size_t n, // const G4String& moleculeName, // const G4ThreeVector& boxCenter, // const G4ThreeVector& boxExtension, -// double time = 0); +// G4double time = 0); - void AddMoleculeInCMRepresentation(size_t n, + void AddMoleculeInCMRepresentation(std::size_t n, const G4String& moleculeName, - double time = 0); + G4double time = 0); const std::vector >& GetMoleculeShoot() { return fShoots; } - typedef std::map NameNumber; + typedef std::map NameNumber; void GetNameAndNumber(NameNumber&); @@ -199,7 +201,7 @@ public: protected: void BuildAndPushTrack(const G4String& name, const G4ThreeVector& position, - double time = 0); + G4double time = 0); G4MoleculeGunMessenger* fpMessenger; std::vector > fShoots; diff --git a/source/processes/electromagnetic/dna/utils/sources.cmake b/source/processes/electromagnetic/dna/utils/sources.cmake index 03aea8b949..281238d06e 100644 --- a/source/processes/electromagnetic/dna/utils/sources.cmake +++ b/source/processes/electromagnetic/dna/utils/sources.cmake @@ -15,6 +15,7 @@ geant4_add_module(G4emdna-utils G4DNAMolecularReactionTable.hh G4DNAEmfietzoglouWaterExcitationStructure.hh G4DNAEmfietzoglouWaterIonisationStructure.hh + G4DNAPTBExcitationStructure.hh G4DNAPTBIonisationStructure.hh G4DNARevertProbability.hh G4DNAWaterExcitationStructure.hh @@ -33,6 +34,7 @@ geant4_add_module(G4emdna-utils G4VChemistryWorld.hh G4DNAMesh.hh G4DNAEventSet.hh + G4ChemicalMoleculeFinder.hh SOURCES G4DNAChemistryManager.cc G4DNACPA100LogLogInterpolation.cc @@ -46,6 +48,7 @@ geant4_add_module(G4emdna-utils G4DNAMolecularReactionTable.cc G4DNAEmfietzoglouWaterExcitationStructure.cc G4DNAEmfietzoglouWaterIonisationStructure.cc + G4DNAPTBExcitationStructure.cc G4DNAPTBIonisationStructure.cc G4DNAWaterExcitationStructure.cc G4DNAWaterIonisationStructure.cc @@ -69,13 +72,13 @@ geant4_module_link_libraries(G4emdna-utils G4emdna-molman G4emlowenergy G4globman + G4intercoms G4partman PRIVATE G4analysismng G4emdna-moltypes G4geometrymng G4heprandom - G4intercoms G4ions G4materials G4procman diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNACPA100LogLogInterpolation.cc b/source/processes/electromagnetic/dna/utils/src/G4DNACPA100LogLogInterpolation.cc index b0e0f86c16..50ca9295e3 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNACPA100LogLogInterpolation.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNACPA100LogLogInterpolation.cc @@ -57,7 +57,7 @@ G4double G4DNACPA100LogLogInterpolation::Calculate(G4double x, G4int bin, const G4DataVector& data) const { //G4cout << "G4DNACPA100LogLogInterpolation is performed (2 arguments) " << G4endl; - G4int nBins = data.size() - 1; + G4int nBins = G4int(data.size() - 1); //G4double oldresult = 0.; G4double value = 0.; if (x < points[0]) @@ -115,7 +115,7 @@ G4double G4DNACPA100LogLogInterpolation::Calculate(G4double x, G4int bin, const G4DataVector& log_points, const G4DataVector& log_data) const { - G4int nBins = data.size() - 1; + G4int nBins = G4int(data.size() - 1); G4double value = 0.; G4double log_x = std::log10(x); if (x < points[0]) diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNACPA100WaterExcitationStructure.cc b/source/processes/electromagnetic/dna/utils/src/G4DNACPA100WaterExcitationStructure.cc index 74ab2d0349..a26b4766df 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNACPA100WaterExcitationStructure.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNACPA100WaterExcitationStructure.cc @@ -54,7 +54,7 @@ G4DNACPA100WaterExcitationStructure::G4DNACPA100WaterExcitationStructure(): nLev energyConstant.push_back(12.91*eV); energyConstant.push_back(14.50*eV); - nLevels = energyConstant.size(); + nLevels = (G4int)energyConstant.size(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNACPA100WaterIonisationStructure.cc b/source/processes/electromagnetic/dna/utils/src/G4DNACPA100WaterIonisationStructure.cc index a397e0cae6..7b5fdc94f4 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNACPA100WaterIonisationStructure.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNACPA100WaterIonisationStructure.cc @@ -53,7 +53,7 @@ G4DNACPA100WaterIonisationStructure::G4DNACPA100WaterIonisationStructure(): nLev UConstant.push_back(70.71*eV); UConstant.push_back(796.2*eV); - nLevels = energyConstant.size(); + nLevels = (G4int)energyConstant.size(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNAChemistryManager.cc b/source/processes/electromagnetic/dna/utils/src/G4DNAChemistryManager.cc index 432831a8c0..ef12f91f73 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNAChemistryManager.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNAChemistryManager.cc @@ -415,21 +415,21 @@ void G4DNAChemistryManager::InitializeMaster() description << "No user chemistry list has been provided."; G4Exception("G4DNAChemistryManager::InitializeMaster", "NO_CHEM_LIST", FatalException, description); + }else + { + fpUserChemistryList->ConstructDissociationChannels(); + if (!fSkipReactions) + { + fpUserChemistryList->ConstructReactionTable(G4DNAMolecularReactionTable::GetReactionTable()); + } + else + { + G4DNAMolecularReactionTable::GetReactionTable(); // init pointer + } } G4Scheduler::Instance(); // creates a concrete object of the scheduler - - - fpUserChemistryList->ConstructDissociationChannels(); - if (!fSkipReactions) - { - fpUserChemistryList->ConstructReactionTable(G4DNAMolecularReactionTable::GetReactionTable()); - } - else - { - G4DNAMolecularReactionTable::GetReactionTable(); // init pointer - } fMasterInitialized = true; } @@ -482,6 +482,10 @@ void G4DNAChemistryManager::InitializeThread() description << "No user chemistry list has been provided."; G4Exception("G4DNAChemistryManager::InitializeThread", "NO_CHEM_LIST", FatalException, description); + }else + { + HandleStandaloneInitialization();// To make coverty happy + fpUserChemistryList->ConstructTimeStepModel(G4DNAMolecularReactionTable::GetReactionTable()); } if (fVerbose) @@ -490,9 +494,6 @@ void G4DNAChemistryManager::InitializeThread() << G4endl; } - HandleStandaloneInitialization(); - - fpUserChemistryList->ConstructTimeStepModel(G4DNAMolecularReactionTable::GetReactionTable()); G4Scheduler::Instance()->Initialize(); fpThreadData->fThreadInitialized = true; diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNACrossSectionDataSet.cc b/source/processes/electromagnetic/dna/utils/src/G4DNACrossSectionDataSet.cc index 06605e090e..b3116276a2 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNACrossSectionDataSet.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNACrossSectionDataSet.cc @@ -187,7 +187,7 @@ G4bool G4DNACrossSectionDataSet::LoadData(const G4String & argFileName) delete stream; - std::vector::size_type maxI(columns.size()); + std::size_t maxI(columns.size()); if (maxI<2) { @@ -199,10 +199,10 @@ G4bool G4DNACrossSectionDataSet::LoadData(const G4String & argFileName) return false; } - std::vector::size_type i(1); + std::size_t i(1); while (isize()); + std::size_t maxJ(columns[i]->size()); if (maxJ!=columns[0]->size()) { @@ -214,7 +214,7 @@ G4bool G4DNACrossSectionDataSet::LoadData(const G4String & argFileName) return false; } - G4DataVector::size_type j(0); + std::size_t j(0); G4DataVector *argEnergies=new G4DataVector; G4DataVector *argData=new G4DataVector; @@ -230,7 +230,7 @@ G4bool G4DNACrossSectionDataSet::LoadData(const G4String & argFileName) j++; } - AddComponent(new G4EMDataSet(i-1, argEnergies, argData, argLogEnergies, argLogData, GetAlgorithm()->Clone(), GetUnitEnergies(), GetUnitData())); + AddComponent(new G4EMDataSet(G4int(i-1), argEnergies, argData, argLogEnergies, argLogData, GetAlgorithm()->Clone(), GetUnitEnergies(), GetUnitData())); i++; } @@ -337,7 +337,7 @@ G4bool G4DNACrossSectionDataSet::LoadNonLogData(const G4String & argFileName) delete stream; - std::vector::size_type maxI(columns.size()); + std::size_t maxI(columns.size()); if (maxI<2) { @@ -349,10 +349,10 @@ G4bool G4DNACrossSectionDataSet::LoadNonLogData(const G4String & argFileName) return false; } - std::vector::size_type i(1); + std::size_t i(1); while (isize()); + std::size_t maxJ(columns[i]->size()); if (maxJ!=columns[0]->size()) { @@ -364,7 +364,7 @@ G4bool G4DNACrossSectionDataSet::LoadNonLogData(const G4String & argFileName) return false; } - G4DataVector::size_type j(0); + std::size_t j(0); G4DataVector *argEnergies=new G4DataVector; G4DataVector *argData=new G4DataVector; @@ -376,7 +376,7 @@ G4bool G4DNACrossSectionDataSet::LoadNonLogData(const G4String & argFileName) j++; } - AddComponent(new G4EMDataSet(i-1, argEnergies, argData, GetAlgorithm()->Clone(), GetUnitEnergies(), GetUnitData())); + AddComponent(new G4EMDataSet(G4int(i-1), argEnergies, argData, GetAlgorithm()->Clone(), GetUnitEnergies(), GetUnitData())); i++; } @@ -394,7 +394,7 @@ G4bool G4DNACrossSectionDataSet::LoadNonLogData(const G4String & argFileName) G4bool G4DNACrossSectionDataSet::SaveData(const G4String & argFileName) const { - const size_t n(NumberOfComponents()); + const std::size_t n(NumberOfComponents()); if (n==0) { @@ -421,12 +421,12 @@ G4bool G4DNACrossSectionDataSet::SaveData(const G4String & argFileName) const G4DataVector::const_iterator iEnergiesEnd(GetComponent(0)->GetEnergies(0).end()); G4DataVector::const_iterator * iData(new G4DataVector::const_iterator[n]); - size_t k(n); + std::size_t k(n); while (k>0) { k--; - iData[k]=GetComponent(k)->GetData(0).begin(); + iData[k]=GetComponent((G4int)k)->GetData(0).cbegin(); } while (iEnergies!=iEnergiesEnd) @@ -500,18 +500,18 @@ G4double G4DNACrossSectionDataSet::FindValue(G4double argEnergy, G4int /* argCom void G4DNACrossSectionDataSet::PrintData(void) const { - const size_t n(NumberOfComponents()); + const G4int n = (G4int)NumberOfComponents(); G4cout << "The data set has " << n << " components" << G4endl; G4cout << G4endl; - size_t i(0); + G4int i(0); while (iPrintData(); - i++; + ++i; } } diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNADamage.cc b/source/processes/electromagnetic/dna/utils/src/G4DNADamage.cc index 149799f3ba..1a4ae3c74c 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNADamage.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNADamage.cc @@ -27,7 +27,7 @@ #include "G4DNADamage.hh" #include "G4UnitsTable.hh" -G4ThreadLocal G4DNADamage* G4DNADamage::fpInstance(0); +G4ThreadLocal G4DNADamage* G4DNADamage::fpInstance(nullptr); G4DNAIndirectHit::G4DNAIndirectHit(const G4String& baseName, const G4Molecule* molecule, @@ -42,8 +42,8 @@ G4DNAIndirectHit::G4DNAIndirectHit(const G4String& baseName, G4DNAIndirectHit::~G4DNAIndirectHit() { - if (fpMolecule) delete fpMolecule; - fpMolecule = 0; + if (fpMolecule != nullptr) delete fpMolecule; + fpMolecule = nullptr; } void G4DNAIndirectHit::Print() @@ -55,7 +55,7 @@ void G4DNAIndirectHit::Print() G4DNADamage* G4DNADamage::Instance() { - if (!fpInstance) new G4DNADamage(); + if (fpInstance == nullptr) new G4DNADamage(); return fpInstance; } @@ -69,7 +69,7 @@ G4DNADamage::G4DNADamage() G4DNADamage::~G4DNADamage() { - for (int i = 0; i < (int) fIndirectHits.size(); i++) + for (G4int i = 0; i < (G4int) fIndirectHits.size(); ++i) { if (fIndirectHits[i]) delete fIndirectHits[i]; } @@ -79,13 +79,13 @@ G4DNADamage::~G4DNADamage() void G4DNADamage::DeleteInstance() { if (fpInstance) delete fpInstance; - fpInstance = 0; + fpInstance = nullptr; } void G4DNADamage::Reset() { fNIndirectDamage = 0; - for (int i = 0; i < (int) fIndirectHits.size(); i++) + for (G4int i = 0; i < (G4int) fIndirectHits.size(); ++i) { if (fIndirectHits[i]) delete fIndirectHits[i]; } @@ -103,13 +103,12 @@ void G4DNADamage::AddIndirectDamage(const G4String& baseName, return; } - G4DNAIndirectHit* indirectHit = 0; - std::map::iterator it = - fMolMap.find(*molecule); + G4DNAIndirectHit* indirectHit = nullptr; + auto it = fMolMap.find(*molecule); - if (it == fMolMap.end()) + if (it == fMolMap.cend()) { - G4Molecule* mol(0); + G4Molecule* mol(nullptr); fMolMap[*molecule] = (mol = new G4Molecule(*molecule)); indirectHit = new G4DNAIndirectHit(baseName, mol, position, time); } diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNAEmfietzoglouWaterExcitationStructure.cc b/source/processes/electromagnetic/dna/utils/src/G4DNAEmfietzoglouWaterExcitationStructure.cc index 30b3edf47d..01edcd664c 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNAEmfietzoglouWaterExcitationStructure.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNAEmfietzoglouWaterExcitationStructure.cc @@ -46,7 +46,7 @@ G4DNAEmfietzoglouWaterExcitationStructure::G4DNAEmfietzoglouWaterExcitationStruc energyConstant.push_back(12.61*eV); energyConstant.push_back(13.77*eV); - nLevels = energyConstant.size(); + nLevels = (G4int)energyConstant.size(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNAEmfietzoglouWaterIonisationStructure.cc b/source/processes/electromagnetic/dna/utils/src/G4DNAEmfietzoglouWaterIonisationStructure.cc index ec3a5c2685..e779d5b9f8 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNAEmfietzoglouWaterIonisationStructure.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNAEmfietzoglouWaterIonisationStructure.cc @@ -46,7 +46,7 @@ G4DNAEmfietzoglouWaterIonisationStructure::G4DNAEmfietzoglouWaterIonisationStruc energyConstant.push_back(32.2*eV); energyConstant.push_back(539.7*eV); - nLevels = energyConstant.size(); + nLevels = (G4int)energyConstant.size(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNAMesh.cc b/source/processes/electromagnetic/dna/utils/src/G4DNAMesh.cc index 32df2ef2f3..1656b47953 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNAMesh.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNAMesh.cc @@ -42,7 +42,7 @@ G4DNAMesh::Voxel& G4DNAMesh::GetVoxel(const Index& key) Data mapList; G4DNAMesh::Voxel& voxel = fVoxelVector.emplace_back(std::make_tuple(key, box, std::move(mapList))); - fIndexMap[key] = fVoxelVector.size() - 1; + fIndexMap[key] = G4int(fVoxelVector.size() - 1); return voxel; } else @@ -233,4 +233,4 @@ G4VDNAMesh::Index G4DNAMesh::ConvertIndex(const Index& index, exceptionDescription); } return Index{ dx, dy, dz }; -} \ No newline at end of file +} diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNAMolecularMaterial.cc b/source/processes/electromagnetic/dna/utils/src/G4DNAMolecularMaterial.cc index 8b96d8fa0b..37d447da26 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNAMolecularMaterial.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNAMolecularMaterial.cc @@ -522,7 +522,7 @@ G4MolecularConfiguration* G4DNAMolecularMaterial:: GetMolecularConfiguration(const G4Material* material) const { - int material_id = material->GetIndex(); + G4int material_id = (G4int)material->GetIndex(); auto it = fMaterialToMolecularConf.find(material_id); if(it == fMaterialToMolecularConf.cend()) return nullptr; return it->second; @@ -536,7 +536,7 @@ SetMolecularConfiguration(const G4Material* material, G4MolecularConfiguration* molConf) { assert(material != nullptr); - int material_id = material->GetIndex(); + G4int material_id = (G4int)material->GetIndex(); fMaterialToMolecularConf[material_id] = molConf; } @@ -547,7 +547,7 @@ G4DNAMolecularMaterial::SetMolecularConfiguration(const G4Material* material, const G4String& molUserID) { assert(material != nullptr); - int material_id = material->GetIndex(); + G4int material_id = (G4int)material->GetIndex(); fMaterialToMolecularConf[material_id] = G4MoleculeTable::Instance()->GetConfiguration(molUserID, true); } diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNAMolecularReactionTable.cc b/source/processes/electromagnetic/dna/utils/src/G4DNAMolecularReactionTable.cc index 0aadf178d1..21b88c5015 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNAMolecularReactionTable.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNAMolecularReactionTable.cc @@ -168,7 +168,7 @@ void G4DNAMolecularReactionData::AddProduct(Reactant* pMolecule) G4int G4DNAMolecularReactionData::GetNbProducts() const { - return fProducts.size(); + return (G4int)fProducts.size(); } G4DNAMolecularReactionData::Reactant* G4DNAMolecularReactionData::GetProduct(G4int i) const @@ -406,7 +406,7 @@ void G4DNAMolecularReactionTable::SetReaction(G4DNAMolecularReactionData* pReact } fVectorOfReactionData.emplace_back(pReactionData); - pReactionData->SetReactionID(fVectorOfReactionData.size()); + pReactionData->SetReactionID((G4int)fVectorOfReactionData.size()); } //_____________________________________________________________________________________ @@ -439,7 +439,7 @@ void G4DNAMolecularReactionTable::PrintTable(G4VDNAReactionModel* pReactionModel G4cout << "Number of chemical species involved in reactions = " << fReactantsMV.size() << G4endl; - G4int nbPrintable = fReactantsMV.size() * fReactantsMV.size(); + std::size_t nbPrintable = fReactantsMV.size() * fReactantsMV.size(); G4String* outputReaction = new G4String[nbPrintable]; G4String* outputReactionRate = new G4String[nbPrintable]; @@ -447,14 +447,14 @@ void G4DNAMolecularReactionTable::PrintTable(G4VDNAReactionModel* pReactionModel G4int n = 0; for (itReactives = fReactantsMV.begin(); itReactives != fReactantsMV.end(); - itReactives++) + ++itReactives) { Reactant* moleculeA = (Reactant*)itReactives->first; const vector* reactivesVector = CanReactWith(moleculeA); if (pReactionModel) pReactionModel->InitialiseToPrint(moleculeA); - G4int nbReactants = fReactantsMV[itReactives->first].size(); + G4int nbReactants = (G4int)fReactantsMV[itReactives->first].size(); for (G4int iReact = 0; iReact < nbReactants; iReact++) { @@ -520,15 +520,15 @@ void G4DNAMolecularReactionTable::PrintTable(G4VDNAReactionModel* pReactionModel G4int maxlengthOutputReaction = -1; G4int maxlengthOutputReactionRate = -1; - for (G4int i = 0; i < n; i++) + for (G4int i = 0; i < n; ++i) { if (maxlengthOutputReaction < (G4int)outputReaction[i].length()) { - maxlengthOutputReaction = outputReaction[i].length(); + maxlengthOutputReaction = (G4int)outputReaction[i].length(); } if (maxlengthOutputReactionRate < (G4int)outputReactionRate[i].length()) { - maxlengthOutputReactionRate = outputReactionRate[i].length(); + maxlengthOutputReactionRate = (G4int)outputReactionRate[i].length(); } } diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNAPTBExcitationStructure.cc b/source/processes/electromagnetic/dna/utils/src/G4DNAPTBExcitationStructure.cc new file mode 100644 index 0000000000..2c3d25bca4 --- /dev/null +++ b/source/processes/electromagnetic/dna/utils/src/G4DNAPTBExcitationStructure.cc @@ -0,0 +1,114 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** + +#include "G4DNAPTBExcitationStructure.hh" +#include "G4SystemOfUnits.hh" + +G4DNAPTBExcitationStructure::G4DNAPTBExcitationStructure() +{ + +// taken directly from PTra code by MPietrzak + energyConstant["N2"].push_back( 1.85*eV); + energyConstant["N2"].push_back( 2.15*eV); + energyConstant["N2"].push_back( 8.00*eV); + energyConstant["N2"].push_back( 8.50*eV); + energyConstant["N2"].push_back( 8.60*eV); + energyConstant["N2"].push_back(11.05*eV); + energyConstant["N2"].push_back(11.79*eV); + energyConstant["N2"].push_back(11.90*eV); + energyConstant["N2"].push_back(12.25*eV); + energyConstant["N2"].push_back(12.50*eV); + energyConstant["N2"].push_back(13.01*eV); + energyConstant["N2"].push_back(13.19*eV); + energyConstant["N2"].push_back(13.30*eV); + energyConstant["N2"].push_back(14.33*eV); + energyConstant["N2"].push_back(14.84*eV); + energyConstant["N2"].push_back(15.18*eV); + energyConstant["N2"].push_back(15.70*eV); + energyConstant["N2"].push_back(15.75*eV); + energyConstant["N2"].push_back(15.86*eV); + energyConstant["N2"].push_back(17.36*eV); + energyConstant["N2"].push_back(17.95*eV); + energyConstant["N2"].push_back(19.77*eV); + energyConstant["N2"].push_back(20.79*eV); + energyConstant["N2"].push_back(20.87*eV); + energyConstant["N2"].push_back(22.27*eV); + energyConstant["N2"].push_back(22.83*eV); + energyConstant["N2"].push_back(37.19*eV); + energyConstant["N2"].push_back(38.67*eV); + energyConstant["N2"].push_back(39.23*eV); + + + for(const auto& [name,levels] : energyConstant) + { + nExcLevels[name] = (G4int)levels.size(); + } +} + + +G4double G4DNAPTBExcitationStructure::ExcitationEnergy(G4int ExcLevel, const G4String& materialName) +{ + G4String matNameModif = ReplaceMaterial(materialName); + + // check if the material exist in the map + if(energyConstant.find(matNameModif)==energyConstant.end()) + { + std::ostringstream oss; + oss << "Material name was not found in energyConstantMap. Problematic material is: "<=0 && ExcLevel < nExcLevels[matNameModif]) excitation = energyConstant[matNameModif][ExcLevel]; + + return excitation; +} + +G4int G4DNAPTBExcitationStructure::NumberOfExcLevels(const G4String& materialName) +{ + G4String matNameModif = ReplaceMaterial(materialName); + + // check if the material exist in the map + if(nExcLevels.find(matNameModif)==nExcLevels.end()) + { + std::ostringstream oss; + oss << "Material name was not found in energyConstantMap. Problematic material is: "< >::iterator it; - for(it=energyConstant.begin();it!=energyConstant.end();it++) + for(auto it=energyConstant.cbegin();it!=energyConstant.cend();++it) { - nLevels[it->first] = (it->second).size(); + nLevels[it->first] = (G4int)(it->second).size(); } } diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNAScavengerMaterial.cc b/source/processes/electromagnetic/dna/utils/src/G4DNAScavengerMaterial.cc index 8918d58dc5..380ba48788 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNAScavengerMaterial.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNAScavengerMaterial.cc @@ -344,7 +344,7 @@ void G4DNAScavengerMaterial::Dump() G4cout << " --- > For " << pReactant->GetName() << G4endl; - for(auto it2 : it.second) + for(const auto& it2 : it.second) { G4cout << " " << G4BestUnit(it2.first, "Time") << " " << it2.second / (Avogadro * V * 1.0e-6 /*mm3 to L*/) << G4endl; diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNAWaterExcitationStructure.cc b/source/processes/electromagnetic/dna/utils/src/G4DNAWaterExcitationStructure.cc index 5e0ef782ba..168eef2bf6 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNAWaterExcitationStructure.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNAWaterExcitationStructure.cc @@ -34,7 +34,7 @@ G4DNAWaterExcitationStructure::G4DNAWaterExcitationStructure(): nLevels(5) energyConstant.push_back(12.61*eV); energyConstant.push_back(13.77*eV); - nLevels = energyConstant.size(); + nLevels = (G4int)energyConstant.size(); } diff --git a/source/processes/electromagnetic/dna/utils/src/G4DNAWaterIonisationStructure.cc b/source/processes/electromagnetic/dna/utils/src/G4DNAWaterIonisationStructure.cc index d18d463bc8..8bbcfc3e0a 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4DNAWaterIonisationStructure.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4DNAWaterIonisationStructure.cc @@ -34,7 +34,7 @@ G4DNAWaterIonisationStructure::G4DNAWaterIonisationStructure(): nLevels(5) energyConstant.push_back(32.30*eV); energyConstant.push_back(539.0*eV); - nLevels = energyConstant.size(); + nLevels = (G4int)energyConstant.size(); } diff --git a/source/processes/electromagnetic/dna/utils/src/G4IRTUtils.cc b/source/processes/electromagnetic/dna/utils/src/G4IRTUtils.cc old mode 100755 new mode 100644 diff --git a/source/processes/electromagnetic/dna/utils/src/G4MoleculeGun.cc b/source/processes/electromagnetic/dna/utils/src/G4MoleculeGun.cc index 51a9040536..4e2e0ac5a6 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4MoleculeGun.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4MoleculeGun.cc @@ -48,7 +48,7 @@ void TG4MoleculeShoot::ShootAtRandomPosition(G4MoleculeGun* gun) { G4ThreeVector positionInLocalCoordinate; - for(int i = 0; i < fNumber; ++i) + for(G4int i = 0; i < fNumber; ++i) { RandomPosInBox(*fBoxSize, positionInLocalCoordinate); gun->BuildAndPushTrack(fMoleculeName, @@ -62,7 +62,7 @@ void TG4MoleculeShoot::ShootAtRandomPosition(G4MoleculeGun* gun) template<> void TG4MoleculeShoot::ShootAtFixedPosition(G4MoleculeGun* gun) { - for(int i = 0; i < fNumber; ++i) + for(G4int i = 0; i < fNumber; ++i) { gun->BuildAndPushTrack(fMoleculeName, fPosition, fTime); } @@ -106,7 +106,7 @@ G4MoleculeGun::~G4MoleculeGun() void G4MoleculeGun::DefineTracks() { - for (size_t i = 0; i < fShoots.size(); i++) + for (std::size_t i = 0; i < fShoots.size(); i++) { fShoots[i]->Shoot(this); } @@ -116,7 +116,7 @@ void G4MoleculeGun::DefineTracks() void G4MoleculeGun::AddMolecule(const G4String& name, const G4ThreeVector& position, - double time) + G4double time) { G4shared_ptr shoot(new TG4MoleculeShoot()); shoot->fMoleculeName = name; @@ -127,13 +127,13 @@ void G4MoleculeGun::AddMolecule(const G4String& name, //------------------------------------------------------------------------------ -void G4MoleculeGun::AddNMolecules(size_t n, +void G4MoleculeGun::AddNMolecules(std::size_t n, const G4String& moleculeName, const G4ThreeVector& position, - double time) + G4double time) { G4shared_ptr shoot(new TG4MoleculeShoot()); - shoot->fNumber = n; + shoot->fNumber = (G4int)n; shoot->fMoleculeName = moleculeName; shoot->fPosition = position; shoot->fTime = time; @@ -143,14 +143,14 @@ void G4MoleculeGun::AddNMolecules(size_t n, //------------------------------------------------------------------------------ void -G4MoleculeGun::AddMoleculesRandomPositionInBox(size_t n, +G4MoleculeGun::AddMoleculesRandomPositionInBox(std::size_t n, const G4String& moleculeName, const G4ThreeVector& boxCenter, const G4ThreeVector& boxSize, - double time) + G4double time) { G4shared_ptr shoot(new TG4MoleculeShoot()); - shoot->fNumber = n; + shoot->fNumber = (G4int)n; shoot->fMoleculeName = moleculeName; shoot->fPosition = boxCenter; shoot->fBoxSize = new G4ThreeVector(boxSize); @@ -161,8 +161,8 @@ G4MoleculeGun::AddMoleculesRandomPositionInBox(size_t n, //------------------------------------------------------------------------------ void G4MoleculeGun::BuildAndPushTrack(const G4String& name, - const G4ThreeVector& position, - double time) + const G4ThreeVector& position, + G4double time) { G4MolecularConfiguration* conf = G4MoleculeTable::Instance()->GetConfiguration(name); @@ -176,7 +176,7 @@ void G4MoleculeGun::BuildAndPushTrack(const G4String& name, void G4MoleculeGun::GetNameAndNumber(G4MoleculeGun::NameNumber& output) { - for(size_t i = 0 ; i < fShoots.size() ; ++i) + for(std::size_t i = 0 ; i < fShoots.size() ; ++i) { output[fShoots[i]->fMoleculeName]+=fShoots[i]->fNumber; } @@ -218,12 +218,12 @@ G4MoleculeGun::AddMoleculeShoot(G4shared_ptr shoot) fShoots.push_back(shoot); } -void G4MoleculeGun::AddMoleculeInCMRepresentation(size_t n, +void G4MoleculeGun::AddMoleculeInCMRepresentation(std::size_t n, const G4String& moleculeName, - double time) + G4double time) { G4shared_ptr shoot(new TG4MoleculeShoot()); - shoot->fNumber = n; + shoot->fNumber = (G4int)n; shoot->fMoleculeName = moleculeName; shoot->fTime = time; fShoots.push_back(shoot); diff --git a/source/processes/electromagnetic/dna/utils/src/G4MoleculeGunMessenger.cc b/source/processes/electromagnetic/dna/utils/src/G4MoleculeGunMessenger.cc index 59e31e2e75..92c0bbed2e 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4MoleculeGunMessenger.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4MoleculeGunMessenger.cc @@ -171,7 +171,7 @@ void G4MoleculeShootMessenger::SetNewValue(G4UIcommand* command, G4String newVal if(newValue == "CM") { // G4cout << "**** Change type" << G4endl; -// TG4MoleculeShoot* casted = reinterpret_cast*>(fpShoot.get()); +// TG4MoleculeShoot* casted = static_cast*>(fpShoot.get()); // fpShoot.reset(casted); fpShoot = fpShoot.get()->ChangeType(); } diff --git a/source/processes/electromagnetic/dna/utils/src/G4VUserChemistryList.cc b/source/processes/electromagnetic/dna/utils/src/G4VUserChemistryList.cc index 9631cdce8f..99dfeeddef 100644 --- a/source/processes/electromagnetic/dna/utils/src/G4VUserChemistryList.cc +++ b/source/processes/electromagnetic/dna/utils/src/G4VUserChemistryList.cc @@ -121,7 +121,7 @@ void G4VUserChemistryList::BuildPhysicsTable(G4MoleculeDefinition* moleculeDef) << moleculeDef->GetParticleName() << G4endl; G4cout << " ProcessManager : " << pManager << " ProcessManagerShadow : " << pManagerShadow << G4endl; - for(std::size_t iv1=0;iv1size();++iv1) + for(G4int iv1=0;iv1<(G4int)pVector->size();++iv1) { G4cout << " " << iv1 << " - " << (*pVector)[iv1]->GetProcessName() << G4endl; @@ -130,14 +130,14 @@ void G4VUserChemistryList::BuildPhysicsTable(G4MoleculeDefinition* moleculeDef) << G4endl; G4ProcessVector* pVectorShadow = pManagerShadow->GetProcessList(); - for(std::size_t iv2=0;iv2size();++iv2) + for(G4int iv2=0;iv2<(G4int)pVectorShadow->size();++iv2) { G4cout << " " << iv2 << " - " << (*pVectorShadow)[iv2]->GetProcessName() << G4endl; } } #endif - for (std::size_t j = 0; j < pVector->size(); ++j) + for (G4int j = 0; j < (G4int)pVector->size(); ++j) { //Andrea July 16th 2013 : migration to new interface... //Infer if we are in a worker thread or master thread diff --git a/source/processes/electromagnetic/highenergy/History b/source/processes/electromagnetic/highenergy/History index e8b38f34b7..6776acf246 100644 --- a/source/processes/electromagnetic/highenergy/History +++ b/source/processes/electromagnetic/highenergy/History @@ -1,9 +1,22 @@ # Category emhighenergy History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-23 Gabriele Cosmo (emhighenergy-V11-00-04) +- Fixed more compilation warnings for implicit type conversions. + +## 2022-11-18 Gabriele Cosmo (emhighenergy-V11-00-03) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-09-05 Ben Morgan (emhighenergy-V11-00-02) +- Resolve duplicated G4partman dependency as public + +## 2022-07-04 Vladimir Ivanchenko (emhighenergy-V11-00-01) +- G4hPairProduction, G4hPairProductionModel - removed not needed methods ## 2021-12-10 Ben Morgan (emhighenergy-V11-00-00) - Change to new Markdown History format diff --git a/source/processes/electromagnetic/highenergy/include/G4hPairProduction.hh b/source/processes/electromagnetic/highenergy/include/G4hPairProduction.hh index c8f57b59f3..ac327bbbed 100644 --- a/source/processes/electromagnetic/highenergy/include/G4hPairProduction.hh +++ b/source/processes/electromagnetic/highenergy/include/G4hPairProduction.hh @@ -61,9 +61,7 @@ public: explicit G4hPairProduction(const G4String& processName = "hPairProd"); - ~G4hPairProduction() override; - - G4bool IsApplicable(const G4ParticleDefinition& p) override; + ~G4hPairProduction() = default; // print description in html void ProcessDescription(std::ostream&) const override; diff --git a/source/processes/electromagnetic/highenergy/include/G4hPairProductionModel.hh b/source/processes/electromagnetic/highenergy/include/G4hPairProductionModel.hh index 509e24571b..3682cdff2f 100644 --- a/source/processes/electromagnetic/highenergy/include/G4hPairProductionModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4hPairProductionModel.hh @@ -60,7 +60,7 @@ public: explicit G4hPairProductionModel(const G4ParticleDefinition* p = nullptr, const G4String& nam = "hPairProd"); - ~G4hPairProductionModel() override; + ~G4hPairProductionModel() = default; // hide assignment operator G4hPairProductionModel & diff --git a/source/processes/electromagnetic/highenergy/sources.cmake b/source/processes/electromagnetic/highenergy/sources.cmake index b8bf9191f5..0d94e319a0 100644 --- a/source/processes/electromagnetic/highenergy/sources.cmake +++ b/source/processes/electromagnetic/highenergy/sources.cmake @@ -65,5 +65,4 @@ geant4_module_link_libraries(G4emhighenergy PRIVATE G4bosons G4cuts - G4mesons - G4partman) + G4mesons) diff --git a/source/processes/electromagnetic/highenergy/src/G4GammaConversionToMuons.cc b/source/processes/electromagnetic/highenergy/src/G4GammaConversionToMuons.cc index 10c882ab2a..f85fddc68a 100644 --- a/source/processes/electromagnetic/highenergy/src/G4GammaConversionToMuons.cc +++ b/source/processes/electromagnetic/highenergy/src/G4GammaConversionToMuons.cc @@ -97,7 +97,7 @@ void G4GammaConversionToMuons::BuildPhysicsTable(const G4ParticleDefinition& p) if(Energy5DLimit > 0.0 && nullptr != f5Dmodel) { f5Dmodel = new G4BetheHeitler5DModel(); f5Dmodel->SetLeptonPair(theMuonPlus, theMuonMinus); - const size_t numElems = G4ProductionCutsTable::GetProductionCutsTable()->GetTableSize(); + const std::size_t numElems = G4ProductionCutsTable::GetProductionCutsTable()->GetTableSize(); const G4DataVector cuts(numElems); f5Dmodel->Initialise(&p, cuts); } @@ -141,7 +141,7 @@ G4GammaConversionToMuons::ComputeMeanFreePath(G4double GammaEnergy, e = LimitEnergy; } - for ( size_t i=0 ; i < aMaterial->GetNumberOfElements(); ++i) + for ( std::size_t i=0 ; i < aMaterial->GetNumberOfElements(); ++i) { SIGMA += NbOfAtomsPerVolume[i] * fact * ComputeCrossSectionPerAtom(e, (*theElementVector)[i]->GetZasInt()); @@ -243,7 +243,7 @@ G4VParticleChange* G4GammaConversionToMuons::PostStepDoIt( std::vector fvect; f5Dmodel->SampleSecondaries(&fvect, aTrack.GetMaterialCutsCouple(), aTrack.GetDynamicParticle(), 0.0, DBL_MAX); - aParticleChange.SetNumberOfSecondaries(fvect.size()); + aParticleChange.SetNumberOfSecondaries((G4int)fvect.size()); for(auto dp : fvect) { aParticleChange.AddSecondary(dp); } return G4VDiscreteProcess::PostStepDoIt(aTrack,aStep); } @@ -427,7 +427,7 @@ const G4Element* G4GammaConversionToMuons::SelectRandomAtom( { // select randomly 1 element within the material, invoked by PostStepDoIt - const G4int NumberOfElements = aMaterial->GetNumberOfElements(); + const std::size_t NumberOfElements = aMaterial->GetNumberOfElements(); const G4ElementVector* theElementVector = aMaterial->GetElementVector(); const G4Element* elm = (*theElementVector)[0]; @@ -437,7 +437,7 @@ const G4Element* G4GammaConversionToMuons::SelectRandomAtom( G4double PartialSumSigma = 0.; G4double rval = G4UniformRand()/MeanFreePath; - for (G4int i=0; iPhysicsVector(); crossPerElectron = model->PhysicsVector(); - nbins = crossPerElectron->GetVectorLength(); + nbins = (G4int)crossPerElectron->GetVectorLength(); for(G4int i=0; iEnergy(i); G4double cs = model->ComputeCrossSection(e); @@ -199,8 +199,8 @@ void G4eeToHadronsModel::SampleSecondaries(std::vector* newp //G4cout << "mass= " << mass << " " << boost << G4endl; const G4ThreeVector dir = gamma->GetMomentumDirection(); model->SampleSecondaries(newp, mass, dir); - G4int np = newp->size(); - for(G4int j=0; jsize(); + for(std::size_t j=0; jGet4Momentum(); v.boost(boost); diff --git a/source/processes/electromagnetic/highenergy/src/G4eeToHadronsMultiModel.cc b/source/processes/electromagnetic/highenergy/src/G4eeToHadronsMultiModel.cc index 9836f03c2c..60b599168d 100644 --- a/source/processes/electromagnetic/highenergy/src/G4eeToHadronsMultiModel.cc +++ b/source/processes/electromagnetic/highenergy/src/G4eeToHadronsMultiModel.cc @@ -112,7 +112,7 @@ void G4eeToHadronsMultiModel::Initialise(const G4ParticleDefinition*, new G4eeToPGammaModel(cross,"eta",maxKineticEnergy,delta); AddEEModel(mpg2,cuts); - nModels = models.size(); + nModels = (G4int)models.size(); fParticleChange = GetParticleChangeForGamma(); } diff --git a/source/processes/electromagnetic/highenergy/src/G4hPairProduction.cc b/source/processes/electromagnetic/highenergy/src/G4hPairProduction.cc index 79b1776f8a..5657c36ef2 100644 --- a/source/processes/electromagnetic/highenergy/src/G4hPairProduction.cc +++ b/source/processes/electromagnetic/highenergy/src/G4hPairProduction.cc @@ -54,18 +54,6 @@ G4hPairProduction::G4hPairProduction(const G4String& name) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4hPairProduction::~G4hPairProduction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4bool G4hPairProduction::IsApplicable(const G4ParticleDefinition& p) -{ - return (p.GetPDGCharge() != 0.0); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - void G4hPairProduction::InitialiseEnergyLossProcess( const G4ParticleDefinition* part, const G4ParticleDefinition* bpart) diff --git a/source/processes/electromagnetic/highenergy/src/G4hPairProductionModel.cc b/source/processes/electromagnetic/highenergy/src/G4hPairProductionModel.cc index 67ebd67e7c..f72d773044 100644 --- a/source/processes/electromagnetic/highenergy/src/G4hPairProductionModel.cc +++ b/source/processes/electromagnetic/highenergy/src/G4hPairProductionModel.cc @@ -55,8 +55,3 @@ G4hPairProductionModel::G4hPairProductionModel(const G4ParticleDefinition* p, {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4hPairProductionModel::~G4hPairProductionModel() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/highenergy/src/G4mplIonisationModel.cc b/source/processes/electromagnetic/highenergy/src/G4mplIonisationModel.cc index 526f8d8a92..f8a114890d 100644 --- a/source/processes/electromagnetic/highenergy/src/G4mplIonisationModel.cc +++ b/source/processes/electromagnetic/highenergy/src/G4mplIonisationModel.cc @@ -115,8 +115,8 @@ void G4mplIonisationModel::Initialise(const G4ParticleDefinition* p, if(nullptr == dedx0) { dedx0 = new std::vector; } G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); - G4int n = dedx0->size(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); + G4int n = (G4int)dedx0->size(); if(n < numOfCouples) { dedx0->resize(numOfCouples); } G4Pow* g4calc = G4Pow::GetInstance(); diff --git a/source/processes/electromagnetic/highenergy/src/G4mplIonisationWithDeltaModel.cc b/source/processes/electromagnetic/highenergy/src/G4mplIonisationWithDeltaModel.cc index fbb14064e4..6094b07a2b 100644 --- a/source/processes/electromagnetic/highenergy/src/G4mplIonisationWithDeltaModel.cc +++ b/source/processes/electromagnetic/highenergy/src/G4mplIonisationWithDeltaModel.cc @@ -127,8 +127,8 @@ G4mplIonisationWithDeltaModel::Initialise(const G4ParticleDefinition* p, if(!dedx0) { dedx0 = new std::vector; } G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); - G4int n = dedx0->size(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); + G4int n = (G4int)dedx0->size(); if(n < numOfCouples) { dedx0->resize(numOfCouples); } G4Pow* g4calc = G4Pow::GetInstance(); diff --git a/source/processes/electromagnetic/lowenergy/History b/source/processes/electromagnetic/lowenergy/History index e654717e73..6d7ddae06c 100644 --- a/source/processes/electromagnetic/lowenergy/History +++ b/source/processes/electromagnetic/lowenergy/History @@ -6,6 +6,44 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-23 Gabriele Cosmo (emlowen-V11-00-16) +- Fixed more compilation warnings for implicit type conversions. + +## 2022-11-18 Gabriele Cosmo (emlowen-V11-00-15) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-13 V. Ivanchenko (emlowen-V11-00-14) +- G4MicroElecElasticModel, G4MicroElecInelasticModel - fixed simple + Coverity report + +## 2022-10-26 Daren Sawkey (emlowen-V11-00-13) +- G4PhotoEffectAngularGeneratorPolarized: include factor of 1/8 for L shell + diff cross section. Addressing bug 2293. + +## 2022-10-19 V. Ivanchenko (emlowen-V11-00-12) +- G4UAtomicDeexcitation, G4AtomicTransitionManager, G4ShellData, G4AugerData + added de-excitation for heavy elements Z=101-104 proposed by R.Chakma; + removed commented lines; improved comments; improved code format; + use ++i instead of i++. +- G4AtomicTransitionManager - read fluorescence data using new interface + G4EmParameters::FluoDirectory() +- G4LivermoreComptonModel - minor clean-up + +## 2022-10-06 Gabriele Cosmo (emlowen-V11-00-11) +- Fixed compilation warnings on Intel/icx compiler for variables set + but not used in G4BoldyshevTripletModel::SampleSecondaries() and in + G4Generator2BN::SampleDirection(). + +## 2022-08-05 V. Ivanchenko (emlowen-V11-00-10) +- Fixed exception printout in Livermore models + +## 2022-07-19 V. Ivanchenko (emlowen-V11-00-09) +- Fixed Coverity warnings in G4VCrossSectionHandler + +## 2022-07-06 V. Ivanchenko (emlowen-V11-00-08) +- G4Rayleigh scattering moved boundary between low and high energy + table from 100 keV to 150 keV to be coherent with G4GammaGeneralProcess + ## 2022-05-23 Gabriele Cosmo (emlowen-V11-00-07) - Fixed use of potential uninitialised pointer in G4AtomicDeexcitation::GenerateParticles(..). diff --git a/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh b/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh index 6f54533382..99fbf0fb24 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh @@ -134,12 +134,12 @@ private: // Minimum and maximum Z in EADL table containing identities and binding // energies of shells G4int zMin = 1; - G4int zMax = 100; + G4int zMax = 104; // Minimum and maximum Z in EADL table containing identities, transition // energies and transition probabilities of shells G4int infTableLimit = 6; - G4int supTableLimit = 100; + G4int supTableLimit = 104; G4int verboseLevel; G4bool isInitialized; }; diff --git a/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh b/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh index 1b1ddc31c8..49b300c53e 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh @@ -52,7 +52,7 @@ class G4AugerData public: explicit G4AugerData(); - ~G4AugerData(); + ~G4AugerData() = default; /// The method returns the number of shells in wich a /// vacancy can be filled by a NON-radiative transition, given the atomic number diff --git a/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh b/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh index f484272308..e969c68eaf 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh @@ -87,7 +87,7 @@ public: virtual void AddComponent(G4VEMDataSet* /* dataSet */) {} - virtual size_t NumberOfComponents(void) const { return 0; } + virtual std::size_t NumberOfComponents(void) const { return 0; } virtual const G4DataVector& GetEnergies(G4int /* componentId */) const { return *energies; } virtual const G4DataVector& GetData(G4int /* componentId */) const { return *data; } @@ -112,8 +112,8 @@ public: private: - size_t FindLowerBound(G4double energy) const; - size_t FindLowerBound(G4double x, G4DataVector* values) const; + std::size_t FindLowerBound(G4double energy) const; + std::size_t FindLowerBound(G4double x, G4DataVector* values) const; G4double IntegrationFunction(G4double x); virtual void BuildPdf(); diff --git a/source/processes/electromagnetic/lowenergy/include/G4FluoData.hh b/source/processes/electromagnetic/lowenergy/include/G4FluoData.hh index 584de81465..0357e85144 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4FluoData.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4FluoData.hh @@ -58,14 +58,14 @@ public: /// The method returns the number of shells in wich a /// vacancy can be filled by a radiative transition - size_t NumberOfVacancies() const; + std::size_t NumberOfVacancies() const; /// Given the index of the vacancy returns its identity G4int VacancyId(G4int vacancyIndex) const; /// Given the index of a vacancy returns the number of /// shells starting from wich an electrons can fill the vacancy - size_t NumberOfTransitions(G4int vacancyIndex) const; + std::size_t NumberOfTransitions(G4int vacancyIndex) const; /// Given the indexes of the starting and final shells for the /// transition, returns the identity of the starting one diff --git a/source/processes/electromagnetic/lowenergy/include/G4JAEAElasticScatteringModel.hh b/source/processes/electromagnetic/lowenergy/include/G4JAEAElasticScatteringModel.hh index b9b37db8a9..ddb03ecfdd 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4JAEAElasticScatteringModel.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4JAEAElasticScatteringModel.hh @@ -82,7 +82,7 @@ public: G4JAEAElasticScatteringModel(const G4JAEAElasticScatteringModel&) = delete; private: - void ReadData(size_t Z, const char* path = 0); + void ReadData(std::size_t Z, const char* path = 0); static const G4int maxZ = 99; static G4PhysicsFreeVector* dataCS[maxZ+1]; diff --git a/source/processes/electromagnetic/lowenergy/include/G4JAEAPolarizedElasticScatteringModel.hh b/source/processes/electromagnetic/lowenergy/include/G4JAEAPolarizedElasticScatteringModel.hh index aed586f4ef..d71caa3247 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4JAEAPolarizedElasticScatteringModel.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4JAEAPolarizedElasticScatteringModel.hh @@ -79,7 +79,7 @@ public: G4JAEAPolarizedElasticScatteringModel(const G4JAEAPolarizedElasticScatteringModel&) = delete; private: - void ReadData(size_t Z, const char* path = 0); + void ReadData(std::size_t Z, const char* path = 0); G4double GeneratePolarizedPhi(G4double Sigma_para,G4double Sigma_perp, G4double initial_Pol_Plane); static const G4int maxZ = 99; diff --git a/source/processes/electromagnetic/lowenergy/include/G4PenelopePhotoElectricModel.hh b/source/processes/electromagnetic/lowenergy/include/G4PenelopePhotoElectricModel.hh index 9b8a79708f..272cb9891d 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4PenelopePhotoElectricModel.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4PenelopePhotoElectricModel.hh @@ -84,8 +84,8 @@ public: G4int GetVerbosityLevel(){return fVerboseLevel;}; //testing purposes - size_t GetNumberOfShellXS(G4int); - G4double GetShellCrossSection(G4int Z,size_t shellID,G4double energy); + std::size_t GetNumberOfShellXS(G4int); + G4double GetShellCrossSection(G4int Z,std::size_t shellID,G4double energy); G4PenelopePhotoElectricModel & operator=(const G4PenelopePhotoElectricModel &right) = delete; G4PenelopePhotoElectricModel(const G4PenelopePhotoElectricModel&) = delete; @@ -98,8 +98,8 @@ private: void SetParticle(const G4ParticleDefinition*); G4double SampleElectronDirection(G4double energy); void ReadDataFile(G4int Z); - size_t SelectRandomShell(G4int Z,G4double energy); - G4String WriteTargetShell(size_t shellID); + std::size_t SelectRandomShell(G4int Z,G4double energy); + G4String WriteTargetShell(std::size_t shellID); //For each Z, the PhysicsTable contains nShell+1 physics vectors //with log(E) vs. log(XS) diff --git a/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh b/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh index 71548f2325..661aa97718 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh @@ -54,7 +54,7 @@ public: explicit G4ShellData(G4int minZ = 1, G4int maxZ = 100, G4bool isOccupancy = false); ~G4ShellData(); - size_t NumberOfShells(G4int Z) const; + std::size_t NumberOfShells(G4int Z) const; G4int ShellId(G4int Z, G4int shellIndex) const; G4double ShellOccupancyProbability(G4int Z, G4int shellIndex) const; const std::vector& ShellIdVector(G4int Z) const; diff --git a/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc b/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc index 0380e3a7a2..5e998ee164 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc @@ -168,7 +168,7 @@ G4int G4AtomicDeexcitation::SelectTypeOfTransition(G4int Z, G4int shellId) G4double partialProb = G4UniformRand(); G4double partSum = 0; const G4FluoTransition* aShell = transitionManager->ReachableShell(Z,shellNum); - G4int trSize = (aShell->TransitionProbabilities()).size(); + G4int trSize = (G4int)(aShell->TransitionProbabilities()).size(); // Loop over the shells wich can provide an electron for a // radiative transition towards shellId: @@ -233,10 +233,10 @@ G4DynamicParticle* G4AtomicDeexcitation::GenerateFluorescence(G4int Z, shellNum++; } // number of shell from wich an electron can reach shellId - size_t transitionSize = transitionManager-> + G4int transitionSize = (G4int)transitionManager-> ReachableShell(Z,shellNum)->OriginatingShellIds().size(); - size_t index = 0; + G4int index = 0; // find the index of the shell named provShellId in the vector // storing the shells from which shellId can be reached @@ -309,7 +309,7 @@ G4DynamicParticle* G4AtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) const G4AugerTransition* anAugerTransition = transitionManager->ReachableAugerShell(Z,shellNum); - G4int transitionSize = + G4int transitionSize = (G4int) (anAugerTransition->TransitionOriginatingShellIds())->size(); while (transitionLoopShellIndex < transitionSize) { @@ -317,7 +317,7 @@ G4DynamicParticle* G4AtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) anAugerTransition->TransitionOriginatingShellIds()->begin(); G4int transitionLoopShellId = *(pos+transitionLoopShellIndex); - G4int numberOfPossibleAuger = + G4int numberOfPossibleAuger = (G4int) (anAugerTransition->AugerTransitionProbabilities(transitionLoopShellId))->size(); G4int augerIndex = 0; @@ -358,7 +358,7 @@ G4DynamicParticle* G4AtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) transitionRandomShellId = *(pos+transitionRandomShellIndex); augerIndex = 0; - numberOfPossibleAuger = (anAugerTransition-> + numberOfPossibleAuger = (G4int)(anAugerTransition-> AugerTransitionProbabilities(transitionRandomShellId))->size(); while (augerIndex < numberOfPossibleAuger) { diff --git a/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc b/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc index ada95a9043..f07cdb179e 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc @@ -67,8 +67,8 @@ G4AtomicTransitionManager::~G4AtomicTransitionManager() for (auto& pos : shellTable){ std::vectorvec = pos.second; - G4int vecSize = vec.size(); - for (G4int i=0; i< vecSize; ++i){ + std::size_t vecSize = vec.size(); + for (std::size_t i=0; i< vecSize; ++i){ G4AtomicShell* shell = vec[i]; delete shell; } @@ -77,9 +77,9 @@ G4AtomicTransitionManager::~G4AtomicTransitionManager() for (auto& ppos : transitionTable) { std::vectorvec = ppos.second; - G4int vecSize=vec.size(); + std::size_t vecSize=vec.size(); - for (G4int i=0; i< vecSize; ++i){ + for (std::size_t i=0; i< vecSize; ++i){ G4FluoTransition* transition = vec[i]; delete transition; } @@ -167,8 +167,8 @@ G4int G4AtomicTransitionManager::NumberOfShells (G4int Z) const { auto pos = shellTable.find(Z); - G4int res = 0; - if (pos != shellTable.end()){ + std::size_t res = 0; + if (pos != shellTable.cend()){ res = ((*pos).second).size(); @@ -178,7 +178,7 @@ G4int G4AtomicTransitionManager::NumberOfShells (G4int Z) const G4Exception("G4AtomicTransitionManager::NumberOfShells()","de0001", FatalException, ed, ""); } - return res; + return (G4int)res; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -188,8 +188,8 @@ G4int G4AtomicTransitionManager::NumberOfShells (G4int Z) const G4int G4AtomicTransitionManager::NumberOfReachableShells(G4int Z) const { auto pos = transitionTable.find(Z); - G4int res = 0; - if (pos!= transitionTable.end()) + std::size_t res = 0; + if (pos!= transitionTable.cend()) { res = ((*pos).second).size(); } @@ -201,7 +201,7 @@ G4int G4AtomicTransitionManager::NumberOfReachableShells(G4int Z) const G4Exception("G4AtomicTransitionManager::NumberOfReachebleShells()", "de0001",FatalException,ed,""); } - return res; + return (G4int)res; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -210,7 +210,7 @@ G4int G4AtomicTransitionManager::NumberOfReachableShells(G4int Z) const // vacancy can be filled with a NON-radiative transition G4int G4AtomicTransitionManager::NumberOfReachableAugerShells(G4int Z)const { - return augerData->NumberOfVacancies(Z); + return (G4int)augerData->NumberOfVacancies(Z); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -277,6 +277,7 @@ G4double G4AtomicTransitionManager::TotalNonRadiativeTransitionProbability( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4AtomicTransitionManager::Initialise() { + if(isInitialized) { return; } G4AutoLock l(&AtomicTransitionManagerMutex); if(isInitialized) { return; } @@ -284,72 +285,71 @@ void G4AtomicTransitionManager::Initialise() // Selection of fluorescence files - G4String fluoDirectory = "/fluor"; - - fluoDirectory = (G4EmParameters::Instance()->BeardenFluoDir()? - "/fluor_Bearden":"/fluor"); + G4String defaultDirectory = "/fluor"; + G4String fluoDirectory = defaultDirectory; + G4String bindingDirectory = defaultDirectory; + G4EmFluoDirectory fdir = G4EmParameters::Instance()->FluoDirectory(); + G4int zLim = zMax + 1; + if(fdir == fluoBearden) { + zMax = 100; + supTableLimit = 100; + bindingDirectory = fluoDirectory = "/fluor_Bearden"; + } else if(fdir == fluoANSTO) { + zLim = 93; + fluoDirectory = "/fluor_ANSTO"; + } else if(fdir == fluoXDB_EADL) { + zMax = 100; + supTableLimit = 100; + bindingDirectory = fluoDirectory = "/fluor_XDB_EADL"; + } // infTableLimit is initialized to 6 because EADL lacks data for Z<=5 - G4ShellData* shellManager = new G4ShellData; - shellManager->LoadData(fluoDirectory+"/binding"); + G4ShellData* shellManager = new G4ShellData(1, zMax, false); + shellManager->LoadData(bindingDirectory + "/binding"); // initialization of the data for auger effect augerData = new G4AugerData; - if (G4EmParameters::Instance()->ANSTOFluoDir()) - { - fluoDirectory = "/fluor_ANSTO"; - G4cout << "The ANSTO fluorescence radiation yields substitute the EADL data libraries" << G4endl; - } // Fills shellTable with the data from EADL, identities and binding // energies of shells - for (G4int Z = zMin; Z<= zMax; ++Z) - { - - if ((Z > 92) && (G4EmParameters::Instance()->ANSTOFluoDir())) fluoDirectory ="/fluor"; - + for (G4int Z = zMin; Z <= zMax; ++Z) + { std::vector vectorOfShells; - size_t shellIndex = 0; + G4int shellIndex = 0; - size_t numberOfShells = shellManager->NumberOfShells(Z); - // G4cout << fluoDirectory <<" For Z= " << Z << " " << numberOfShells << " shells" << G4endl; + G4int numberOfShells = (G4int)shellManager->NumberOfShells(Z); for (shellIndex = 0; shellIndexShellId(Z,shellIndex); G4double bindingEnergy = shellManager->BindingEnergy(Z,shellIndex); - G4AtomicShell * shell = new G4AtomicShell(shellId,bindingEnergy); - vectorOfShells.push_back(shell); } shellTable[Z] = vectorOfShells; } - // Fills transitionTable with the data from EADL, identities, transition + // Fills transitionTable with the data on identities, transition // energies and transition probabilities - if (G4EmParameters::Instance()->ANSTOFluoDir()) fluoDirectory = "/fluor_ANSTO"; - - + G4String dir = fluoDirectory; for (G4int Znum= infTableLimit; Znum<=supTableLimit; ++Znum) { - if ((Znum > 92) && (G4EmParameters::Instance()->ANSTOFluoDir())) fluoDirectory ="/fluor"; - G4FluoData* fluoManager = new G4FluoData(fluoDirectory); + if (Znum == zLim) { dir = defaultDirectory; } + G4FluoData* fluoManager = new G4FluoData(dir); std::vector vectorOfTransitions; fluoManager->LoadData(Znum); - size_t numberOfVacancies = fluoManager-> NumberOfVacancies(); - - for(size_t vacancyIndex = 0; vacancyIndexNumberOfVacancies(); + for(G4int vacancyIndex = 0; vacancyIndex vectorOfIds; + std::vector vectorOfIds; G4DataVector vectorOfEnergies; G4DataVector vectorOfProbabilities; G4int finalShell = fluoManager->VacancyId(vacancyIndex); - size_t numberOfTransitions = - fluoManager->NumberOfTransitions(vacancyIndex); - for (size_t origShellIndex = 0; origShellIndex < numberOfTransitions; + G4int numberOfTransitions = (G4int) + fluoManager->NumberOfTransitions(vacancyIndex); + for (G4int origShellIndex = 0; origShellIndex < numberOfTransitions; ++origShellIndex) { G4int originatingShellId = @@ -372,9 +372,5 @@ void G4AtomicTransitionManager::Initialise() delete fluoManager; } delete shellManager; + l.unlock(); } - - - - - diff --git a/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc b/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc index 98aca014a5..4139d9e3a4 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc @@ -24,15 +24,14 @@ // ******************************************************************** // // -// -// // Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it) // // History: // ----------- // Based on G4FluoData by Elena Guardincerri // -// Modified: 30.07.02 VI Add select active Z + clean up against pedantic compiler +// Modified: +// 30.07.02 VI Add select active Z + clean up against pedantic compiler // // ------------------------------------------------------------------- @@ -50,20 +49,13 @@ G4AugerData::G4AugerData() { - G4int n = 0; - numberOfVacancies.resize(100,n); - + numberOfVacancies.resize(105, 0); BuildAugerTransitionTable(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4AugerData::~G4AugerData() -{;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -size_t G4AugerData::NumberOfVacancies(G4int Z) const +std::size_t G4AugerData::NumberOfVacancies(G4int Z) const { return numberOfVacancies[Z]; } @@ -92,9 +84,9 @@ G4int G4AugerData::VacancyId(G4int Z, G4int vacancyIndex) const //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... // Attention: this method wants the vacancy index, not the Id -size_t G4AugerData::NumberOfTransitions(G4int Z, G4int vacancyIndex) const +std::size_t G4AugerData::NumberOfTransitions(G4int Z, G4int vacancyIndex) const { - G4int n = 0; + std::size_t n = 0; if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies[Z]) { G4Exception("G4AugerData::VacancyId()","de0002", JustWarning, "Energy deposited locally"); @@ -108,16 +100,16 @@ size_t G4AugerData::NumberOfTransitions(G4int Z, G4int vacancyIndex) const return 0; } std::vector dataSet = (*element).second; - n = (G4int)dataSet[vacancyIndex].TransitionOriginatingShellIds()->size(); + n = dataSet[vacancyIndex].TransitionOriginatingShellIds()->size(); } - return n; + return n; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -size_t G4AugerData::NumberOfAuger(G4int Z, G4int initIndex, G4int vacancyId) const +std::size_t G4AugerData::NumberOfAuger(G4int Z, G4int initIndex, G4int vacancyId) const { - size_t n = 0; + std::size_t n = 0; if (initIndex<0 || initIndex>=numberOfVacancies[Z]) { G4Exception("G4AugerData::VacancyId()","de0002", FatalErrorInArgument,""); @@ -130,7 +122,8 @@ size_t G4AugerData::NumberOfAuger(G4int Z, G4int initIndex, G4int vacancyId) con return 0; } std::vector dataSet = (*element).second; - const std::vector* temp = dataSet[initIndex].AugerOriginatingShellIds(vacancyId); + const std::vector* temp = + dataSet[initIndex].AugerOriginatingShellIds(vacancyId); n = temp->size(); } return n; @@ -138,9 +131,9 @@ size_t G4AugerData::NumberOfAuger(G4int Z, G4int initIndex, G4int vacancyId) con //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -size_t G4AugerData::AugerShellId(G4int Z, G4int vacancyIndex, G4int transId, G4int augerIndex) const +std::size_t G4AugerData::AugerShellId(G4int Z, G4int vacancyIndex, G4int transId, G4int augerIndex) const { - size_t n = 0; + std::size_t n = 0; if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies[Z]) { G4Exception("G4AugerData::VacancyId()","de0002", FatalErrorInArgument,""); @@ -164,11 +157,10 @@ G4int G4AugerData::StartShellId(G4int Z, G4int vacancyIndex, G4int transitionShe { G4int n = 0; - if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies[Z]) - { - G4Exception("G4AugerData::VacancyId()","de0002", FatalErrorInArgument,""); - return 0; - } + if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies[Z]) { + G4Exception("G4AugerData::VacancyId()","de0002", FatalErrorInArgument,""); + return 0; + } else { trans_Table::const_iterator element = augerTransitionTable.find(Z); if (element == augerTransitionTable.end()) { @@ -178,7 +170,7 @@ G4int G4AugerData::StartShellId(G4int Z, G4int vacancyIndex, G4int transitionShe std::vector dataSet = (*element).second; n = dataSet[vacancyIndex].TransitionOriginatingShellId(transitionShellIndex); } - return n; + return n; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -243,7 +235,7 @@ std::vector G4AugerData::LoadData(G4int Z) G4String name(ost.str()); const char* path = G4FindDataDir("G4LEDATA"); - if (!path) + if (nullptr == path) { G4String excep = "G4AugerData::LoadData"; G4Exception(excep,"em0006", FatalException,"" ); @@ -309,7 +301,7 @@ std::vector G4AugerData::LoadData(G4int Z) delete newEnergyMap; delete newProbabilityMap; - G4int n = initIds->size(); + G4int n = (G4int)initIds->size(); nInitShells.push_back(n); numberOfVacancies[Z]++; delete initIds; @@ -320,11 +312,13 @@ std::vector G4AugerData::LoadData(G4int Z) newIds = new std::vector; transEnergies = new G4DataVector; transProbabilities = new G4DataVector; - newIdMap = new std::map,std::less >; + newIdMap = + new std::map,std::less >; newEnergyMap = new std::map >; - newProbabilityMap = new std::map >; + newProbabilityMap = + new std::map >; } - sLocal++; + ++sLocal; if (sLocal == nColumns) { sLocal = 0; @@ -336,13 +330,13 @@ std::vector G4AugerData::LoadData(G4int Z) if (k%nColumns == 3){ // 3rd column is the transition probabilities transProbabilities->push_back(a); - k++; + ++k; } else if(k%nColumns == 2){ // 2nd column is new auger vacancy G4int l = (G4int)a; newIds->push_back(l); - k++; + ++k; } else if (k%nColumns == 1) { @@ -407,10 +401,9 @@ std::vector G4AugerData::LoadData(G4int Z) void G4AugerData::BuildAugerTransitionTable() { - for (G4int element = 6; element < 100; ++element) - { - augerTransitionTable.insert(trans_Table::value_type(element,LoadData(element))); - } + for (G4int element = 6; element < 105; ++element) { + augerTransitionTable.insert(trans_Table::value_type(element,LoadData(element))); + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -426,18 +419,18 @@ void G4AugerData::PrintData(G4int Z) <<"----- " <* dataSet = &augerTransitionTable[Z]; - std::vector::iterator vectorIndex = dataSet->begin() + vacancyShellIndex; + std::vector::iterator vectorIndex = + dataSet->begin() + vacancyShellIndex; G4AugerTransition* augerTransition = &(*vectorIndex); return augerTransition; diff --git a/source/processes/electromagnetic/lowenergy/src/G4BoldyshevTripletModel.cc b/source/processes/electromagnetic/lowenergy/src/G4BoldyshevTripletModel.cc index bf5f9a1cb3..efd17ad708 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4BoldyshevTripletModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4BoldyshevTripletModel.cc @@ -117,16 +117,16 @@ void G4BoldyshevTripletModel::Initialise(const G4ParticleDefinition*, G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); for(G4int i=0; iGetMaterialCutsCouple(i)->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - G4int nelm = material->GetNumberOfElements(); + std::size_t nelm = material->GetNumberOfElements(); - for (G4int j=0; jGetZasInt(), maxZ); if(!data[Z]) { ReadData(Z, path); } @@ -278,7 +278,6 @@ void G4BoldyshevTripletModel::SampleSecondaries( } G4double logcostm = G4Log(cosThetaMax); - G4int nn = 0; do { cost = G4Exp(logcostm*rndmEngine->flat()); G4double are = 1./(14.*cost*cost); @@ -286,20 +285,15 @@ void G4BoldyshevTripletModel::SampleSecondaries( loga = G4Log((1.+ cost)/(1.- cost)); f1_re = 1. - bre*loga; greject = (cost < costlim) ? are*f1_re : 1.0; - // G4cout << nn << ". step of the 1st loop greject= " << greject << G4endl; - ++nn; } while(greject < rndmEngine->flat()); // Calculo de phi - elecron de recoil G4double sint2 = (1. - cost)*(1. + cost); G4double fp = 1. - sint2*loga/(2.*cost) ; G4double rt, phi_re; - nn = 0; do { phi_re = twopi*rndmEngine->flat(); rt = (1. - std::cos(2.*phi_re)*fp/f1_re)/twopi; - //G4cout << nn << ". step of the 2nd loop greject= " << rt << G4endl; - ++nn; } while(rt < rndmEngine->flat()); // Calculo de la energia - elecron de recoil - relacion momento maximo <-> angulo diff --git a/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc b/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc index 6e623641e9..17c58291fd 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc @@ -101,18 +101,18 @@ G4double G4CompositeEMDataSet::FindValue(G4double argEnergy, G4int argComponentI void G4CompositeEMDataSet::PrintData(void) const { - const size_t n(NumberOfComponents()); + const G4int n = (G4int)NumberOfComponents(); G4cout << "The data set has " << n << " components" << G4endl; G4cout << G4endl; - size_t i(0); + G4int i(0); while (iPrintData(); - i++; + ++i; } } @@ -164,7 +164,7 @@ G4bool G4CompositeEMDataSet::LoadData(const G4String& argFileName) { CleanUpComponents(); - for (G4int z(minZ); zClone(), unitEnergies, unitData); if (!component->LoadData(argFileName)) @@ -183,7 +183,7 @@ G4bool G4CompositeEMDataSet::LoadNonLogData(const G4String& argFileName) { CleanUpComponents(); - for (G4int z(minZ); zClone(), unitEnergies, unitData); if (!component->LoadNonLogData(argFileName)) @@ -200,7 +200,7 @@ G4bool G4CompositeEMDataSet::LoadNonLogData(const G4String& argFileName) G4bool G4CompositeEMDataSet::SaveData(const G4String& argFileName) const { - for (G4int z=minZ; z::size_type maxI(columns.size()); + G4int maxI = (G4int)columns.size(); if (maxI<2) { @@ -199,10 +199,10 @@ G4bool G4CrossSectionDataSet::LoadData(const G4String & argFileName) return false; } - std::vector::size_type i(1); + G4int i(1); while (isize()); + std::size_t maxJ(columns[i]->size()); if (maxJ!=columns[0]->size()) { @@ -214,7 +214,7 @@ G4bool G4CrossSectionDataSet::LoadData(const G4String & argFileName) return false; } - G4DataVector::size_type j(0); + std::size_t j(0); G4DataVector *argEnergies=new G4DataVector; G4DataVector *argData=new G4DataVector; @@ -338,7 +338,7 @@ G4bool G4CrossSectionDataSet::LoadNonLogData(const G4String & argFileName) delete stream; - std::vector::size_type maxI(columns.size()); + G4int maxI = (G4int)columns.size(); if (maxI<2) { @@ -350,10 +350,10 @@ G4bool G4CrossSectionDataSet::LoadNonLogData(const G4String & argFileName) return false; } - std::vector::size_type i(1); + G4int i(1); while (isize()); + std::size_t maxJ(columns[i]->size()); if (maxJ!=columns[0]->size()) { @@ -365,7 +365,7 @@ G4bool G4CrossSectionDataSet::LoadNonLogData(const G4String & argFileName) return false; } - G4DataVector::size_type j(0); + std::size_t j(0); G4DataVector *argEnergies=new G4DataVector; G4DataVector *argData=new G4DataVector; @@ -396,7 +396,7 @@ G4bool G4CrossSectionDataSet::LoadNonLogData(const G4String & argFileName) G4bool G4CrossSectionDataSet::SaveData(const G4String & argFileName) const { - const size_t n(NumberOfComponents()); + const G4int n = (G4int)NumberOfComponents(); if (n==0) { @@ -422,12 +422,12 @@ G4bool G4CrossSectionDataSet::SaveData(const G4String & argFileName) const G4DataVector::const_iterator iEnergiesEnd(GetComponent(0)->GetEnergies(0).end()); G4DataVector::const_iterator * iData(new G4DataVector::const_iterator[n]); - size_t k(n); + G4int k(n); while (k>0) { k--; - iData[k]=GetComponent(k)->GetData(0).begin(); + iData[k]=GetComponent(k)->GetData(0).cbegin(); } while (iEnergies!=iEnergiesEnd) @@ -503,18 +503,18 @@ G4double G4CrossSectionDataSet::FindValue(G4double argEnergy, G4int /* argCompon void G4CrossSectionDataSet::PrintData(void) const { - const size_t n(NumberOfComponents()); + const G4int n = (G4int)NumberOfComponents(); G4cout << "The data set has " << n << " components" << G4endl; G4cout << G4endl; - size_t i(0); + G4int i(0); while (iPrintData(); - i++; + ++i; } } diff --git a/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc index 143f3d6a73..8917e80837 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc @@ -86,16 +86,16 @@ G4CrossSectionHandler::BuildCrossSectionsForMaterials(const G4DataVector& energy const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); - size_t nOfBins = energyVector.size(); + std::size_t nOfBins = energyVector.size(); const G4VDataSetAlgorithm* interpolationAlgo = CreateInterpolation(); - for (size_t mLocal=0; mLocalGetMaterialCutsCouple(mLocal); const G4Material* material= couple->GetMaterial(); - G4int nElements = material->GetNumberOfElements(); + G4int nElements = (G4int)material->GetNumberOfElements(); const G4ElementVector* elementVector = material->GetElementVector(); const G4double* nAtomsPerVolume = material->GetAtomicNumDensityVector(); @@ -103,7 +103,7 @@ G4CrossSectionHandler::BuildCrossSectionsForMaterials(const G4DataVector& energy G4VEMDataSet* setForMat = new G4CompositeEMDataSet(algo,1.,1.); - for (G4int i=0; iGetZ(); G4double density = nAtomsPerVolume[i]; @@ -114,7 +114,7 @@ G4CrossSectionHandler::BuildCrossSectionsForMaterials(const G4DataVector& energy log_energies = new G4DataVector; log_data = new G4DataVector; - for (size_t bin=0; binpush_back(e); diff --git a/source/processes/electromagnetic/lowenergy/src/G4EMDataSet.cc b/source/processes/electromagnetic/lowenergy/src/G4EMDataSet.cc index de6549a03e..c9a55656e2 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4EMDataSet.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4EMDataSet.cc @@ -169,25 +169,25 @@ G4double G4EMDataSet::FindValue(G4double energy, G4int /* componentId */) const if (energy <= (*energies)[0]) { return (*data)[0]; } - size_t i = energies->size()-1; + std::size_t i = energies->size()-1; if (energy >= (*energies)[i]) { return (*data)[i]; } //Nicolas A. Karakatsanis: Check if the logarithmic data have been loaded to decide // which Interpolation-Calculation method will be applied if (log_energies != nullptr) { - return algorithm->Calculate(energy, FindLowerBound(energy), *energies, *data, *log_energies, *log_data); + return algorithm->Calculate(energy, (G4int)FindLowerBound(energy), *energies, *data, *log_energies, *log_data); } - return algorithm->Calculate(energy, FindLowerBound(energy), *energies, *data); + return algorithm->Calculate(energy, (G4int)FindLowerBound(energy), *energies, *data); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4EMDataSet::PrintData(void) const { - size_t size = energies->size(); - for (size_t i(0); isize(); + for (std::size_t i(0); isize() - 1); + std::size_t lowerBound = 0; + std::size_t upperBound(energies->size() - 1); while (lowerBound <= upperBound) { - size_t midBin((lowerBound + upperBound) / 2); + std::size_t midBin((lowerBound + upperBound) / 2); if (x < (*energies)[midBin]) upperBound = midBin - 1; else lowerBound = midBin + 1; @@ -460,14 +460,14 @@ size_t G4EMDataSet::FindLowerBound(G4double x) const //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -size_t G4EMDataSet::FindLowerBound(G4double x, G4DataVector* values) const +std::size_t G4EMDataSet::FindLowerBound(G4double x, G4DataVector* values) const { - size_t lowerBound = 0;; - size_t upperBound(values->size() - 1); + std::size_t lowerBound = 0;; + std::size_t upperBound(values->size() - 1); while (lowerBound <= upperBound) { - size_t midBin((lowerBound + upperBound) / 2); + std::size_t midBin((lowerBound + upperBound) / 2); if (x < (*values)[midBin]) upperBound = midBin - 1; else lowerBound = midBin + 1; @@ -499,13 +499,13 @@ void G4EMDataSet::BuildPdf() pdf = new G4DataVector; G4Integrator integrator; - G4int nData = data->size(); + std::size_t nData = data->size(); pdf->push_back(0.); // Integrate the data distribution - G4int i; + std::size_t i; G4double totalSum = 0.; - for (i=1; i 0.) tot = 1. / totalSum; - for (i=1; i=numberOfVacancies) @@ -136,12 +136,12 @@ G4int G4FluoData::StartShellId(G4int initIndex, G4int vacancyIndex) const G4DataVector dataSet = *((*pos).second); - G4int nData = dataSet.size(); + G4int nData = (G4int)dataSet.size(); // The first Element of idMap's dataSets is the original shell of // the vacancy, so we must start from the first element of dataSet if (initIndex >= 0 && initIndex < nData) { - n = (G4int) dataSet[initIndex+1]; + n = dataSet[initIndex+1]; } } return n; @@ -163,10 +163,10 @@ G4double G4FluoData::StartShellEnergy(G4int initIndex, G4int vacancyIndex) const G4DataVector dataSet = *((*pos).second); - G4int nData = dataSet.size(); + G4int nData = (G4int)dataSet.size(); if (initIndex >= 0 && initIndex < nData) { - n = dataSet[initIndex]; + n = dataSet[initIndex]; } } return n; @@ -190,10 +190,10 @@ G4double G4FluoData::StartShellProb(G4int initIndex, G4int vacancyIndex) const G4DataVector dataSet = *((*pos).second); - G4int nData = dataSet.size(); + G4int nData = (G4int)dataSet.size(); if (initIndex >= 0 && initIndex < nData) { - n = dataSet[initIndex]; + n = dataSet[initIndex]; } } return n; @@ -257,11 +257,10 @@ void G4FluoData::LoadData(G4int Z) if (sLocal == 0) { // End of a shell data set - idMap[vacIndex] = initIds; + idMap[vacIndex] = initIds; energyMap[vacIndex] = transEnergies; - probabilityMap[vacIndex] = transProbabilities; - // G4double size=transProbabilities->size(); - G4int n = initIds->size(); + probabilityMap[vacIndex] = transProbabilities; + G4int n = (G4int)initIds->size(); nInitShells.push_back(n); numberOfVacancies++; @@ -335,14 +334,14 @@ void G4FluoData::LoadData(G4int Z) void G4FluoData::PrintData() { - for (G4int i = 0; i index_max) { index = index_max; } @@ -210,7 +208,6 @@ G4ThreeVector& G4Generator2BN::SampleDirection(const G4DynamicParticle* dp, do{ // generate k accordimg to std::pow(k,-b) - trials++; // normalization constant // cte1 = (1-b)/(std::pow(kmax,(1-b))-std::pow(kmin2,(1-b))); diff --git a/source/processes/electromagnetic/lowenergy/src/G4IonParametrisedLossModel.cc b/source/processes/electromagnetic/lowenergy/src/G4IonParametrisedLossModel.cc index a6981ba7e2..b2384d8596 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4IonParametrisedLossModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4IonParametrisedLossModel.cc @@ -295,7 +295,7 @@ void G4IonParametrisedLossModel::Initialise( EnergyRangeTable::iterator iterEnergy = E.begin(); EnergyRangeTable::iterator iterEnergy_end = E.end(); - for(;iterEnergy != iterEnergy_end; iterEnergy++) { + for(;iterEnergy != iterEnergy_end; ++iterEnergy) { delete iterEnergy->second; } E.clear(); @@ -306,7 +306,7 @@ void G4IonParametrisedLossModel::Initialise( // All dE/dx vectors are built const G4ProductionCutsTable* coupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t nmbCouples = coupleTable->GetTableSize(); + G4int nmbCouples = (G4int)coupleTable->GetTableSize(); #ifdef PRINT_TABLE_BUILT G4cout << "G4IonParametrisedLossModel::Initialise():" @@ -314,7 +314,7 @@ void G4IonParametrisedLossModel::Initialise( << G4endl; #endif - for (size_t i = 0; i < nmbCouples; ++i) { + for (G4int i = 0; i < nmbCouples; ++i) { const G4MaterialCutsCouple* couple = coupleTable->GetMaterialCutsCouple(i); const G4Material* material = couple->GetMaterial(); @@ -928,7 +928,7 @@ void G4IonParametrisedLossModel::CorrectionsAlongStep( if(kineticEnergy == eloss) { return; } G4double cutEnergy = DBL_MAX; - size_t cutIndex = couple -> GetIndex(); + std::size_t cutIndex = couple -> GetIndex(); cutEnergy = cutEnergies[cutIndex]; UpdateDEDXCache(particle, material, cutEnergy); @@ -1053,7 +1053,7 @@ void G4IonParametrisedLossModel::BuildRangeVector( const G4MaterialCutsCouple* matCutsCouple) { G4double cutEnergy = DBL_MAX; - size_t cutIndex = matCutsCouple -> GetIndex(); + std::size_t cutIndex = matCutsCouple -> GetIndex(); cutEnergy = cutEnergies[cutIndex]; const G4Material* material = matCutsCouple -> GetMaterial(); @@ -1087,11 +1087,11 @@ void G4IonParametrisedLossModel::BuildRangeVector( energyRangeVector -> PutValues(0, lowerEnergy, range); G4double logEnergy = std::log(lowerEnergy); - for(size_t i = 1; i < nmbBins+1; i++) { + for(std::size_t i = 1; i < nmbBins+1; ++i) { G4double logEnergyIntegr = logEnergy; - for(size_t j = 0; j < nmbSubBins; j++) { + for(std::size_t j = 0; j < nmbSubBins; ++j) { G4double binLowerBoundary = G4Exp(logEnergyIntegr); logEnergyIntegr += logDeltaIntegr; @@ -1148,7 +1148,7 @@ void G4IonParametrisedLossModel::BuildRangeVector( upperRangeEdge, /*spline=*/true); - for(size_t i = 0; i < nmbBins+1; i++) { + for(std::size_t i = 0; i < nmbBins+1; ++i) { G4double energy = energyRangeVector -> Energy(i); rangeEnergyVector -> PutValues(i, energyRangeVector -> Value(energy), energy); diff --git a/source/processes/electromagnetic/lowenergy/src/G4JAEAElasticScatteringModel.cc b/source/processes/electromagnetic/lowenergy/src/G4JAEAElasticScatteringModel.cc index 3d90de1bfe..0830595a0e 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4JAEAElasticScatteringModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4JAEAElasticScatteringModel.cc @@ -26,7 +26,7 @@ /* Authors: - Updated 15 Novebmer 2019 + Updated 15 November 2019 Updates: 1. Change reading method for cross section data. @@ -115,7 +115,7 @@ void G4JAEAElasticScatteringModel::Initialise(const G4ParticleDefinition* partic const char* path = G4FindDataDir("G4LEDATA"); G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); for(G4int i=0; iGetMaterialCutsCouple(i); const G4Material* material = couple->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - G4int nelm = material->GetNumberOfElements(); + std::size_t nelm = material->GetNumberOfElements(); - for (G4int j=0; jGetZ()); if(Z < 1) { Z = 1; } @@ -151,7 +151,7 @@ void G4JAEAElasticScatteringModel::InitialiseLocal(const G4ParticleDefinition*, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4JAEAElasticScatteringModel::ReadData(size_t Z, const char* path) +void G4JAEAElasticScatteringModel::ReadData(std::size_t Z, const char* path) { if (verboseLevel > 1) { @@ -256,7 +256,7 @@ G4double G4JAEAElasticScatteringModel::ComputeCrossSectionPerAtom( if(!pv) { return xs; } } - G4int n = pv->GetVectorLength() - 1; + G4int n = G4int(pv->GetVectorLength() - 1); G4double e = GammaEnergy; if(e >= pv->Energy(n)) { diff --git a/source/processes/electromagnetic/lowenergy/src/G4JAEAPolarizedElasticScatteringModel.cc b/source/processes/electromagnetic/lowenergy/src/G4JAEAPolarizedElasticScatteringModel.cc index 2af93534c2..08c806d28e 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4JAEAPolarizedElasticScatteringModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4JAEAPolarizedElasticScatteringModel.cc @@ -109,7 +109,7 @@ void G4JAEAPolarizedElasticScatteringModel::Initialise(const G4ParticleDefinitio const char* path = G4FindDataDir("G4LEDATA"); G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); for(G4int i=0; iGetMaterialCutsCouple(i); const G4Material* material = couple->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - G4int nelm = material->GetNumberOfElements(); + std::size_t nelm = material->GetNumberOfElements(); - for (G4int j=0; jGetZ()); if(Z < 1) { Z = 1; } @@ -145,7 +145,7 @@ void G4JAEAPolarizedElasticScatteringModel::InitialiseLocal(const G4ParticleDefi //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4JAEAPolarizedElasticScatteringModel::ReadData(size_t Z, const char* path) +void G4JAEAPolarizedElasticScatteringModel::ReadData(std::size_t Z, const char* path) { if (verboseLevel > 1) { @@ -243,7 +243,7 @@ G4double G4JAEAPolarizedElasticScatteringModel::ComputeCrossSectionPerAtom( if(!pv) { return xs; } } - G4int n = pv->GetVectorLength() - 1; + std::size_t n = pv->GetVectorLength() - 1; G4double e = GammaEnergy; if(e >= pv->Energy(n)) { diff --git a/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc index e2e5e40f23..c6803f99d4 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc @@ -57,7 +57,7 @@ G4double G4LinInterpolation::Calculate(G4double x, G4int bin, const G4DataVector& data) const { //G4cout << "G4LinInterpolation is performed (2 arguments)" << G4endl; - G4int nBins = data.size() - 1; + G4int nBins = G4int(data.size() - 1); G4double value = 0.; if (x < points[0]) { @@ -91,7 +91,7 @@ G4double G4LinInterpolation::Calculate(G4double x, G4int bin, //Linear Interpolation is performed on loagarithmic data set //Equivalent to log-log interpolation on non-loagarithmic data set //G4cout << "G4LinInterpolation is performed - (4 arguments)" << G4endl; - G4int nBins = data.size() - 1; + G4int nBins = G4int(data.size() - 1); G4double value = 0.; G4double log_x = std::log10(x); if (x < points[0]) diff --git a/source/processes/electromagnetic/lowenergy/src/G4LinLogInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4LinLogInterpolation.cc index 699831ff4e..39fb402f3b 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LinLogInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LinLogInterpolation.cc @@ -52,7 +52,7 @@ G4double G4LinLogInterpolation::Calculate(G4double x, G4int bin, const G4DataVector& data) const { //G4cout << "G4LinLogInterpolation is performed on dataset (2 arguments) " << G4endl; - G4int nBins = data.size() - 1; + G4int nBins = G4int(data.size() - 1); G4double value = 0.; if (x < points[0]) { @@ -82,7 +82,7 @@ G4double G4LinLogInterpolation::Calculate(G4double x, G4int bin, const G4DataVector& log_data) const { //G4cout << "G4LinLogInterpolation is performed on dataset (4 arguments) " << G4endl; - G4int nBins = data.size() - 1; + G4int nBins = G4int(data.size() - 1); G4double value = 0.; //G4double log_x = std::log10(x); if (x < points[0]) diff --git a/source/processes/electromagnetic/lowenergy/src/G4LinLogLogInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4LinLogLogInterpolation.cc index c78b1d4589..3438022aa3 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LinLogLogInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LinLogLogInterpolation.cc @@ -53,7 +53,7 @@ G4double G4LinLogLogInterpolation::Calculate(G4double x, G4int bin, const G4DataVector& data) const { //G4cout << "G4LinLogLogInterpolation is performed (2 arguments) " << G4endl; - G4int nBins = data.size() - 1; + G4int nBins = G4int(data.size() - 1); G4double value = 0.; if (x < points[0]) { @@ -87,7 +87,7 @@ G4double G4LinLogLogInterpolation::Calculate(G4double x, G4int bin, const G4DataVector& log_data) const { //G4cout << "G4LinLogLogInterpolation is performed(4 arguments) " << G4endl; - G4int nBins = data.size() - 1; + G4int nBins = G4int(data.size() - 1); G4double value = 0.; G4double log_x = std::log10(x); if (x < points[0]) diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermoreBremsstrahlungModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermoreBremsstrahlungModel.cc index c057b411e0..e68f4a3fe0 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermoreBremsstrahlungModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermoreBremsstrahlungModel.cc @@ -162,7 +162,7 @@ void G4LivermoreBremsstrahlungModel::ReadData(G4int Z, const char* path) << "> is not opened!"; G4Exception("G4LivermoreBremsstrahlungModel::ReadData()","em0003", FatalException,ed, - "G4LEDATA version should be G4EMLOW6.23 or later."); + "G4LEDATA version should be G4EMLOW8.0 or later."); return; } //G4cout << "G4LivermoreBremsstrahlungModel read from <" << ost.str().c_str() @@ -178,7 +178,7 @@ void G4LivermoreBremsstrahlungModel::ReadData(G4int Z, const char* path) << "> is not retrieved!"; G4Exception("G4LivermoreBremsstrahlungModel::ReadData()","em0005", FatalException,ed, - "G4LEDATA version should be G4EMLOW6.23 or later."); + "G4LEDATA version should be G4EMLOW8.0 or later."); delete v; } } @@ -360,5 +360,3 @@ void G4LivermoreBremsstrahlungModel::InitialiseForElement( } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - - diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermoreComptonModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermoreComptonModel.cc index fd394798bd..a9c3a9b6a1 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermoreComptonModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermoreComptonModel.cc @@ -216,7 +216,7 @@ void G4LivermoreComptonModel::ReadData(size_t Z, const char* path) << "> is not opened!" << G4endl; G4Exception("G4LivermoreComptonModel::ReadData()", "em0003",FatalException, - ed,"G4LEDATA version should be G4EMLOW6.34 or later"); + ed,"G4LEDATA version should be G4EMLOW8.0 or later"); return; } else { if(verboseLevel > 3) { @@ -259,7 +259,7 @@ G4LivermoreComptonModel::ComputeCrossSectionPerAtom(const G4ParticleDefinition*, if(pv == nullptr) { return cs; } } - G4int n = pv->GetVectorLength() - 1; + G4int n = G4int(pv->GetVectorLength() - 1); G4double e1 = pv->Energy(0); G4double e2 = pv->Energy(n); @@ -314,7 +314,7 @@ void G4LivermoreComptonModel::SampleSecondaries( const G4ParticleDefinition* particle = aDynamicGamma->GetDefinition(); const G4Element* elm = SelectRandomAtom(couple,particle,photonEnergy0); - G4int Z = G4lrint(elm->GetZ()); + G4int Z = elm->GetZasInt(); G4double epsilon0Local = 1. / (1. + 2. * e0m); G4double epsilon0Sq = epsilon0Local * epsilon0Local; @@ -487,7 +487,7 @@ void G4LivermoreComptonModel::SampleSecondaries( G4cout << "Started atomic de-excitation " << fAtomDeexcitation << G4endl; } - if(fAtomDeexcitation && iteration < maxDopplerIterations) { + if(nullptr != fAtomDeexcitation && iteration < maxDopplerIterations) { G4int index = couple->GetIndex(); if(fAtomDeexcitation->CheckDeexcitationActiveRegion(index)) { size_t nbefore = fvect->size(); @@ -514,11 +514,7 @@ void G4LivermoreComptonModel::SampleSecondaries( } } } - //This should never happen - if(bindingE < 0.0) - G4Exception("G4LivermoreComptonModel::SampleSecondaries()", "em2050", - FatalException, "Negative local energy deposit"); - + bindingE = std::max(bindingE, 0.0); fParticleChange->ProposeLocalEnergyDeposit(bindingE); } @@ -675,4 +671,4 @@ const G4double G4LivermoreComptonModel::ScatFuncFitParam[101][16] = { {99, 6.000000000e+00, 8.000000000e+00, 1.000000000e+10, -1.291435263e+01, 1.999999988e+00, 1.376201293e+01, -1.919251815e+01, 5.693799461e+00, -6.287500644e-01, 2.416045199e-02, -4.914211254e+01, 1.314247998e+01, -7.739336035e-01, -3.530513333e-02, 3.241293077e-03}, {100, 6.000000000e+00, 8.000000000e+00, 1.000000000e+10, -1.292045700e+01, 2.000000004e+00, 1.277081775e+01, -1.854047224e+01, 5.534680382e+00, -6.118054153e-01, 2.349768815e-02, -5.074293980e+01, 1.383260974e+01, -8.858904786e-01, -2.718885953e-02, 3.019620454e-03} }; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... \ No newline at end of file +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversion5DModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversion5DModel.cc index d82c61cda6..23a160b312 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversion5DModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversion5DModel.cc @@ -110,15 +110,15 @@ G4LivermoreGammaConversion5DModel::Initialise( const G4ParticleDefinition* parti const char* path = G4FindDataDir("G4LEDATA"); G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = G4int(theCoupleTable->GetTableSize()); for(G4int i=0; iGetMaterialCutsCouple(i); SetCurrentCouple(couple); const G4Material* mat = couple->GetMaterial(); const G4ElementVector* theElementVector = mat->GetElementVector(); - G4int nelm = mat->GetNumberOfElements(); - for (G4int j=0; jGetNumberOfElements(); + for (std::size_t j=0; jGetZasInt(), maxZ)); if(!data[Z]) { ReadData(Z, path); } @@ -168,7 +168,7 @@ void G4LivermoreGammaConversion5DModel::ReadData(size_t Z, const char* path) << "> is not opened!" << G4endl; G4Exception("G4LivermoreGammaConversion5DModel::ReadData()", "em0003",FatalException, - ed,"G4LEDATA version should be G4EMLOW6.27 or later."); + ed,"G4LEDATA version should be G4EMLOW8.0 or later."); return; } else diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversionModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversionModel.cc index 37b37042f2..7b37ec62b0 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversionModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermoreGammaConversionModel.cc @@ -171,7 +171,7 @@ void G4LivermoreGammaConversionModel::ReadData(size_t Z, const char* path) << "> is not opened!" << G4endl; G4Exception("G4LivermoreGammaConversionModel::ReadData()", "em0003",FatalException, - ed,"G4LEDATA version should be G4EMLOW6.27 or later."); + ed,"G4LEDATA version should be G4EMLOW8.0 or later."); return; } else diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermoreNuclearGammaConversionModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermoreNuclearGammaConversionModel.cc index 1ae16948a0..0db87c6802 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermoreNuclearGammaConversionModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermoreNuclearGammaConversionModel.cc @@ -107,22 +107,22 @@ void G4LivermoreNuclearGammaConversionModel::Initialise( G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); for(G4int i=0; iGetMaterialCutsCouple(i)->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - G4int nelm = material->GetNumberOfElements(); + std::size_t nelm = material->GetNumberOfElements(); - for (G4int j=0; jGetZ(); - if(Z < 1) { Z = 1; } - else if(Z > maxZ) { Z = maxZ; } - if(!data[Z]) { ReadData(Z, path); } - } + for (std::size_t j=0; jGetZ(); + if(Z < 1) { Z = 1; } + else if(Z > maxZ) { Z = maxZ; } + if(!data[Z]) { ReadData(Z, path); } + } } } if(isInitialised) { return; } @@ -188,7 +188,7 @@ void G4LivermoreNuclearGammaConversionModel::ReadData(size_t Z, const char* path << "> is not opened!" << G4endl; G4Exception("G4LivermoreNuclearGammaConversionModel::ReadData()", "em0003",FatalException, - ed,"G4LEDATA version should be G4EMLOW6.27 or later."); + ed,"G4LEDATA version should be G4EMLOW8.0 or later."); return; } else @@ -240,15 +240,15 @@ G4LivermoreNuclearGammaConversionModel::ComputeCrossSectionPerAtom(const G4Parti xs = pv->Value(GammaEnergy); if(verboseLevel > 0) - { - G4int n = pv->GetVectorLength() - 1; + { + std::size_t n = pv->GetVectorLength() - 1; G4cout << "****** DEBUG: tcs value for Z=" << Z << " at energy (MeV)=" << GammaEnergy/MeV << G4endl; G4cout << " cs (Geant4 internal unit)=" << xs << G4endl; G4cout << " -> first cs value in EADL data file (iu) =" << (*pv)[0] << G4endl; G4cout << " -> last cs value in EADL data file (iu) =" << (*pv)[n] << G4endl; G4cout << "*********************************************************" << G4endl; - } + } return xs; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermorePhotoElectricModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermorePhotoElectricModel.cc index 9fc1dfc769..23c8a30d51 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermorePhotoElectricModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermorePhotoElectricModel.cc @@ -147,8 +147,8 @@ G4LivermorePhotoElectricModel::Initialise(const G4ParticleDefinition*, if(fShellCrossSection == nullptr) { fShellCrossSection = new G4ElementData(); } const G4ElementTable* elemTable = G4Element::GetElementTable(); - size_t numElems = (*elemTable).size(); - for(size_t ie = 0; ie < numElems; ++ie) + std::size_t numElems = (*elemTable).size(); + for(std::size_t ie = 0; ie < numElems; ++ie) { const G4Element* elem = (*elemTable)[ie]; const G4int Z = std::min(maxZ, elem->GetZasInt()); @@ -323,8 +323,8 @@ G4LivermorePhotoElectricModel::SampleSecondaries( } // SAMPLING OF THE SHELL INDEX - size_t shellIdx = 0; - size_t nn = fNShellsUsed[Z]; + std::size_t shellIdx = 0; + std::size_t nn = fNShellsUsed[Z]; if(nn > 1) { if(gammaEnergy >= (*(fParamHigh[Z]))[0]) @@ -334,7 +334,7 @@ G4LivermorePhotoElectricModel::SampleSecondaries( G4double x3 = x2*x1; G4double x4 = x3*x1; G4double x5 = x4*x1; - G4int idx = nn*7 - 5; + std::size_t idx = nn*7 - 5; // when do sampling common factors are not taken into account // so cross section is not real @@ -371,7 +371,7 @@ G4LivermorePhotoElectricModel::SampleSecondaries( G4double x3 = x2*x1; G4double x4 = x3*x1; G4double x5 = x4*x1; - G4int idx = nn*7 - 5; + std::size_t idx = nn*7 - 5; // when do sampling common factors are not taken into account // so cross section is not real G4double cs0 = G4UniformRand()*((*(fParamLow[Z]))[idx] @@ -409,13 +409,13 @@ G4LivermorePhotoElectricModel::SampleSecondaries( cs *= (fCrossSectionLE[Z])->Value(gammaEnergy); } - for(size_t j=0; jGetComponentID(Z, j); + shellIdx = (std::size_t)fShellCrossSection->GetComponentID(Z, j); if(gammaEnergy > (*(fParamLow[Z]))[7*shellIdx+1]) { cs -= fShellCrossSection->GetValueForComponent(Z, j, gammaEnergy); } - if(cs <= 0.0 || j+1 == nn) {break;} + if(cs <= 0.0 || j+1 == (G4int)nn) {break;} } } } @@ -445,7 +445,7 @@ G4LivermorePhotoElectricModel::SampleSecondaries( G4ThreeVector electronDirection = GetAngularDistribution()->SampleDirection(aDynamicGamma, eKineticEnergy, - shellIdx, + (G4int)shellIdx, couple->GetMaterial()); // The electron is created @@ -458,13 +458,13 @@ G4LivermorePhotoElectricModel::SampleSecondaries( if(shell) { G4int index = couple->GetIndex(); if(fAtomDeexcitation->CheckDeexcitationActiveRegion(index)) { - G4int nbefore = fvect->size(); + std::size_t nbefore = fvect->size(); fAtomDeexcitation->GenerateParticles(fvect, shell, Z, index); - G4int nafter = fvect->size(); + std::size_t nafter = fvect->size(); if(nafter > nbefore) { G4double esec = 0.0; - for (G4int j=nbefore; jGetKineticEnergy(); if(esec + e > edep) { @@ -473,7 +473,7 @@ G4LivermorePhotoElectricModel::SampleSecondaries( ((*fvect)[j])->SetKineticEnergy(e); esec += e; // delete the rest of secondaries (should not happens) - for (G4int jj=nafter-1; jj>j; --jj) { + for (std::size_t jj=nafter-1; jj>j; --jj) { delete (*fvect)[jj]; fvect->pop_back(); } @@ -546,7 +546,7 @@ void G4LivermorePhotoElectricModel::ReadData(G4int Z) << "> is not opened!" << G4endl; G4Exception("G4LivermorePhotoElectricModel::ReadData()", "em0003",FatalException, - ed,"G4LEDATA version should be G4EMLOW7.2 or later."); + ed,"G4LEDATA version should be G4EMLOW8.0 or later."); return; } if(verboseLevel > 3) { @@ -617,7 +617,7 @@ void G4LivermorePhotoElectricModel::ReadData(G4int Z) << "> is not opened!" << G4endl; G4Exception("G4LivermorePhotoElectricModel::ReadData()", "em0003",FatalException, - ed,"G4LEDATA version should be G4EMLOW7.2 or later."); + ed,"G4LEDATA version should be G4EMLOW8.0 or later."); return; } if(verboseLevel > 3) { @@ -697,7 +697,7 @@ void G4LivermorePhotoElectricModel::ReadData(G4int Z) << "> is not opened!" << G4endl; G4Exception("G4LivermorePhotoElectricModel::ReadData()", "em0003",FatalException, - ed,"G4LEDATA version should be G4EMLOW7.2 or later."); + ed,"G4LEDATA version should be G4EMLOW8.0 or later."); return; } if(verboseLevel > 3) { diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedComptonModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedComptonModel.cc index 31a43e546e..47f29573f6 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedComptonModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedComptonModel.cc @@ -139,20 +139,20 @@ void G4LivermorePolarizedComptonModel::Initialise(const G4ParticleDefinition* pa G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); for(G4int i=0; iGetMaterialCutsCouple(i)->GetMaterial(); + theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - G4int nelm = material->GetNumberOfElements(); + std::size_t nelm = material->GetNumberOfElements(); - for (G4int j=0; jGetZ()); - if(Z < 1) { Z = 1; } - else if(Z > maxZ){ Z = maxZ; } - - if( (!data[Z]) ) { ReadData(Z, path); } + for (std::size_t j=0; jGetZ()); + if(Z < 1) { Z = 1; } + else if(Z > maxZ){ Z = maxZ; } + + if( (!data[Z]) ) { ReadData(Z, path); } } } @@ -206,7 +206,7 @@ void G4LivermorePolarizedComptonModel::InitialiseLocal(const G4ParticleDefinitio //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4LivermorePolarizedComptonModel::ReadData(size_t Z, const char* path) +void G4LivermorePolarizedComptonModel::ReadData(std::size_t Z, const char* path) { if (verboseLevel > 1) { @@ -240,7 +240,7 @@ void G4LivermorePolarizedComptonModel::ReadData(size_t Z, const char* path) << "> is not opened!" << G4endl; G4Exception("G4LivermoreComptonModel::ReadData()", "em0003",FatalException, - ed,"G4LEDATA version should be G4EMLOW6.34 or later"); + ed,"G4LEDATA version should be G4EMLOW8.0 or later"); return; } else { if(verboseLevel > 3) { @@ -283,7 +283,7 @@ G4double G4LivermorePolarizedComptonModel::ComputeCrossSectionPerAtom( if(!pv) { return cs; } } - G4int n = pv->GetVectorLength() - 1; + G4int n = G4int(pv->GetVectorLength() - 1); G4double e1 = pv->Energy(0); G4double e2 = pv->Energy(n); @@ -738,13 +738,13 @@ void G4LivermorePolarizedComptonModel::SampleSecondaries(std::vectorGetIndex(); if(fAtomDeexcitation->CheckDeexcitationActiveRegion(index)) { - size_t nbefore = fvect->size(); + std::size_t nbefore = fvect->size(); G4AtomicShellEnumerator as = G4AtomicShellEnumerator(shellIdx); const G4AtomicShell* shell = fAtomDeexcitation->GetAtomicShell(Z, as); fAtomDeexcitation->GenerateParticles(fvect, shell, Z, index); - size_t nafter = fvect->size(); + std::size_t nafter = fvect->size(); if(nafter > nbefore) { - for (size_t i=nbefore; i= ((*fvect)[i])->GetKineticEnergy()) { diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedGammaConversionModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedGammaConversionModel.cc index 424b13646a..52e5472150 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedGammaConversionModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedGammaConversionModel.cc @@ -111,16 +111,16 @@ void G4LivermorePolarizedGammaConversionModel::Initialise(const G4ParticleDefini G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); for(G4int i=0; iGetMaterialCutsCouple(i)->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - G4int nelm = material->GetNumberOfElements(); + std::size_t nelm = material->GetNumberOfElements(); - for (G4int j=0; jGetZ(); if(Z < 1) { Z = 1; } @@ -152,7 +152,7 @@ G4double G4LivermorePolarizedGammaConversionModel::MinPrimaryEnergy(const G4Mate //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4LivermorePolarizedGammaConversionModel::ReadData(size_t Z, const char* path) +void G4LivermorePolarizedGammaConversionModel::ReadData(std::size_t Z, const char* path) { if (verboseLevel > 1) { @@ -241,7 +241,7 @@ G4double G4LivermorePolarizedGammaConversionModel::ComputeCrossSectionPerAtom( if(verboseLevel > 0) { - G4int n = pv->GetVectorLength() - 1; + G4int n = G4int(pv->GetVectorLength() - 1); G4cout << "****** DEBUG: tcs value for Z=" << Z << " at energy (MeV)=" << GammaEnergy/MeV << G4endl; G4cout << " cs (Geant4 internal unit)=" << xs << G4endl; diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedRayleighModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedRayleighModel.cc index 886692342a..813e2d1a24 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedRayleighModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermorePolarizedRayleighModel.cc @@ -139,7 +139,7 @@ void G4LivermorePolarizedRayleighModel::InitialiseLocal( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4LivermorePolarizedRayleighModel::ReadData(size_t Z, const char* path) +void G4LivermorePolarizedRayleighModel::ReadData(std::size_t Z, const char* path) { if (verboseLevel > 1) { G4cout << "Calling ReadData() of G4LivermoreRayleighModel" @@ -174,7 +174,7 @@ void G4LivermorePolarizedRayleighModel::ReadData(size_t Z, const char* path) << "> is not opened!" << G4endl; G4Exception("G4LivermorePolarizedRayleighModel::ReadData()","em0003", FatalException, - ed,"G4LEDATA version should be G4EMLOW6.27 or later."); + ed,"G4LEDATA version should be G4EMLOW8.0 or later."); return; } else { if(verboseLevel > 3) { @@ -194,7 +194,7 @@ void G4LivermorePolarizedRayleighModel::ReadData(size_t Z, const char* path) << "> is not opened!" << G4endl; G4Exception("G4LivermorePolarizedRayleighModel::ReadData()","em0003", FatalException, - ed,"G4LEDATA version should be G4EMLOW6.27 or later."); + ed,"G4LEDATA version should be G4EMLOW8.0 or later."); return; } else { if(verboseLevel > 3) { @@ -235,7 +235,7 @@ G4double G4LivermorePolarizedRayleighModel::ComputeCrossSectionPerAtom( if(nullptr == pv) { return xs; } } - G4int n = pv->GetVectorLength() - 1; + G4int n = G4int(pv->GetVectorLength() - 1); G4double e = GammaEnergy/MeV; if(e >= pv->Energy(n)) { xs = (*pv)[n]/(e*e); diff --git a/source/processes/electromagnetic/lowenergy/src/G4LivermoreRayleighModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LivermoreRayleighModel.cc index a0859e929f..ff74ca529a 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LivermoreRayleighModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LivermoreRayleighModel.cc @@ -102,8 +102,8 @@ void G4LivermoreRayleighModel::Initialise(const G4ParticleDefinition* particle, // Access to elements const char* path = G4FindDataDir("G4LEDATA"); const G4ElementTable* elemTable = G4Element::GetElementTable(); - size_t numElems = (*elemTable).size(); - for(size_t ie = 0; ie < numElems; ++ie) + std::size_t numElems = (*elemTable).size(); + for(std::size_t ie = 0; ie < numElems; ++ie) { const G4Element* elem = (*elemTable)[ie]; const G4int Z = std::min(maxZ, elem->GetZasInt()); @@ -128,7 +128,7 @@ void G4LivermoreRayleighModel::InitialiseLocal(const G4ParticleDefinition*, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4LivermoreRayleighModel::ReadData(size_t Z, const char* path) +void G4LivermoreRayleighModel::ReadData(std::size_t Z, const char* path) { if (verboseLevel > 1) { @@ -168,7 +168,7 @@ void G4LivermoreRayleighModel::ReadData(size_t Z, const char* path) ed << "G4LivermoreRayleighModel data file <" << ostCS.str().c_str() << "> is not opened!" << G4endl; G4Exception("G4LivermoreRayleighModel::ReadData()","em0003",FatalException, - ed,"G4LEDATA version should be G4EMLOW6.27 or later."); + ed,"G4LEDATA version should be G4EMLOW8.0 or later."); return; } else @@ -211,7 +211,7 @@ G4double G4LivermoreRayleighModel::ComputeCrossSectionPerAtom( if(nullptr == pv) { return xs; } } - G4int n = pv->GetVectorLength() - 1; + G4int n = G4int(pv->GetVectorLength() - 1); G4double e = GammaEnergy/MeV; if(e >= pv->Energy(n)) { xs = (*pv)[n]/(e*e); diff --git a/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc index fa13989301..be68db2360 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc @@ -60,7 +60,7 @@ G4double G4LogLogInterpolation::Calculate(G4double x, G4int bin, const G4DataVector& points, const G4DataVector& data) const { - G4int nBins = data.size() - 1; + G4int nBins = G4int(data.size() - 1); G4double value = 0.; if (x < points[0]) { @@ -98,7 +98,7 @@ G4double G4LogLogInterpolation::Calculate(G4double x, G4int bin, const G4DataVector& log_points, const G4DataVector& log_data) const { - G4int nBins = data.size() - 1; + G4int nBins = G4int(data.size() - 1); G4double value = 0.; G4double log_x = std::log10(x); if (x < points[0]) diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowECapture.cc b/source/processes/electromagnetic/lowenergy/src/G4LowECapture.cc index f38914be53..b8d257c0db 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowECapture.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowECapture.cc @@ -96,7 +96,7 @@ void G4LowECapture::BuildPhysicsTable(const G4ParticleDefinition& part) } if(r) { region.push_back(r); } } - nRegions = region.size(); + nRegions = (G4int)region.size(); // ions reusing G4GenericIon parameters if(part.GetParticleType() == "nucleus") { diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEPComptonModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEPComptonModel.cc index d7591b9634..c09b016913 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEPComptonModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEPComptonModel.cc @@ -132,7 +132,7 @@ G4LowEPComptonModel::~G4LowEPComptonModel() //**************************************************************************** void G4LowEPComptonModel::Initialise(const G4ParticleDefinition* particle, - const G4DataVector& cuts) + const G4DataVector& cuts) { if (verboseLevel > 1) { G4cout << "Calling G4LowEPComptonModel::Initialise()" << G4endl; @@ -146,15 +146,15 @@ void G4LowEPComptonModel::Initialise(const G4ParticleDefinition* particle, G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); for(G4int i=0; iGetMaterialCutsCouple(i)->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - G4int nelm = material->GetNumberOfElements(); + std::size_t nelm = material->GetNumberOfElements(); - for (G4int j=0; jGetZ()); if(Z < 1) { Z = 1; } else if(Z > maxZ){ Z = maxZ; } @@ -204,7 +204,7 @@ void G4LowEPComptonModel::InitialiseLocal(const G4ParticleDefinition*, //**************************************************************************** -void G4LowEPComptonModel::ReadData(size_t Z, const char* path) +void G4LowEPComptonModel::ReadData(std::size_t Z, const char* path) { if (verboseLevel > 1) { @@ -282,7 +282,7 @@ G4LowEPComptonModel::ComputeCrossSectionPerAtom(const G4ParticleDefinition*, if(!pv) { return cs; } } - G4int n = pv->GetVectorLength() - 1; + G4int n = G4int(pv->GetVectorLength() - 1); G4double e1 = pv->Energy(0); G4double e2 = pv->Energy(n); @@ -609,13 +609,13 @@ void G4LowEPComptonModel::SampleSecondaries(std::vector* fve if(fAtomDeexcitation && iteration < maxDopplerIterations) { G4int index = couple->GetIndex(); if(fAtomDeexcitation->CheckDeexcitationActiveRegion(index)) { - size_t nbefore = fvect->size(); + std::size_t nbefore = fvect->size(); G4AtomicShellEnumerator as = G4AtomicShellEnumerator(shellIdx); const G4AtomicShell* shell = fAtomDeexcitation->GetAtomicShell(Z, as); fAtomDeexcitation->GenerateParticles(fvect, shell, Z, index); - size_t nafter = fvect->size(); + std::size_t nafter = fvect->size(); if(nafter > nbefore) { - for (size_t i=nbefore; i= ((*fvect)[i])->GetKineticEnergy()) { diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEPPolarizedComptonModel.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEPPolarizedComptonModel.cc index 1682964fba..3bf3f8bde0 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEPPolarizedComptonModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEPPolarizedComptonModel.cc @@ -133,15 +133,15 @@ void G4LowEPPolarizedComptonModel::Initialise(const G4ParticleDefinition* partic G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); for(G4int i=0; iGetMaterialCutsCouple(i)->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - G4int nelm = material->GetNumberOfElements(); + std::size_t nelm = material->GetNumberOfElements(); - for (G4int j=0; jGetZ()); if(Z < 1) { Z = 1; } else if(Z > maxZ){ Z = maxZ; } @@ -191,7 +191,7 @@ void G4LowEPPolarizedComptonModel::InitialiseLocal(const G4ParticleDefinition*, //**************************************************************************** -void G4LowEPPolarizedComptonModel::ReadData(size_t Z, const char* path) +void G4LowEPPolarizedComptonModel::ReadData(std::size_t Z, const char* path) { if (verboseLevel > 1) { @@ -268,7 +268,7 @@ G4LowEPPolarizedComptonModel::ComputeCrossSectionPerAtom(const G4ParticleDefinit if(!pv) { return cs; } } - G4int n = pv->GetVectorLength() - 1; + G4int n = G4int(pv->GetVectorLength() - 1); G4double e1 = pv->Energy(0); G4double e2 = pv->Energy(n); @@ -623,13 +623,13 @@ void G4LowEPPolarizedComptonModel::SampleSecondaries(std::vectorGetIndex(); if(fAtomDeexcitation->CheckDeexcitationActiveRegion(index)) { - size_t nbefore = fvect->size(); + std::size_t nbefore = fvect->size(); G4AtomicShellEnumerator as = G4AtomicShellEnumerator(shellIdx); const G4AtomicShell* shell = fAtomDeexcitation->GetAtomicShell(Z, as); fAtomDeexcitation->GenerateParticles(fvect, shell, Z, index); - size_t nafter = fvect->size(); + std::size_t nafter = fvect->size(); if(nafter > nbefore) { - for (size_t i=nbefore; i= ((*fvect)[i])->GetKineticEnergy()) { diff --git a/source/processes/electromagnetic/lowenergy/src/G4MicroElecCrossSectionDataSet.cc b/source/processes/electromagnetic/lowenergy/src/G4MicroElecCrossSectionDataSet.cc index dbac54a4e5..9d37717c58 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4MicroElecCrossSectionDataSet.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4MicroElecCrossSectionDataSet.cc @@ -120,7 +120,7 @@ G4bool G4MicroElecCrossSectionDataSet::LoadData(const G4String & argFileName) if (value <=0.) value = 1e-300; log_columns[i]->push_back(std::log10(value)); - i++; + ++i; } delete stream; stream=new std::stringstream; @@ -154,7 +154,7 @@ G4bool G4MicroElecCrossSectionDataSet::LoadData(const G4String & argFileName) delete stream; - std::vector::size_type maxI(columns.size()); + std::size_t maxI(columns.size()); if (maxI<2) { @@ -166,10 +166,10 @@ G4bool G4MicroElecCrossSectionDataSet::LoadData(const G4String & argFileName) return false; } - std::vector::size_type i(1); + std::size_t i(1); while (isize()); + std::size_t maxJ(columns[i]->size()); if (maxJ!=columns[0]->size()) { @@ -181,7 +181,7 @@ G4bool G4MicroElecCrossSectionDataSet::LoadData(const G4String & argFileName) return false; } - G4DataVector::size_type j(0); + std::size_t j(0); G4DataVector *argEnergies=new G4DataVector; G4DataVector *argData=new G4DataVector; @@ -197,16 +197,16 @@ G4bool G4MicroElecCrossSectionDataSet::LoadData(const G4String & argFileName) j++; } - AddComponent(new G4EMDataSet(i-1, argEnergies, argData, argLogEnergies, argLogData, + AddComponent(new G4EMDataSet(G4int(i-1), argEnergies, argData, argLogEnergies, argLogData, GetAlgorithm()->Clone(), GetUnitEnergies(), GetUnitData())); - i++; + ++i; } i=maxI; while (i>0) { - i--; + --i; delete columns[i]; delete log_columns[i]; } @@ -306,7 +306,7 @@ G4bool G4MicroElecCrossSectionDataSet::LoadNonLogData(const G4String & argFileNa delete stream; - std::vector::size_type maxI(columns.size()); + std::size_t maxI(columns.size()); if (maxI<2) { @@ -318,10 +318,10 @@ G4bool G4MicroElecCrossSectionDataSet::LoadNonLogData(const G4String & argFileNa return false; } - std::vector::size_type i(1); + std::size_t i(1); while (isize()); + std::size_t maxJ(columns[i]->size()); if (maxJ!=columns[0]->size()) { @@ -333,7 +333,7 @@ G4bool G4MicroElecCrossSectionDataSet::LoadNonLogData(const G4String & argFileNa return false; } - G4DataVector::size_type j(0); + std::size_t j(0); G4DataVector *argEnergies=new G4DataVector; G4DataVector *argData=new G4DataVector; @@ -345,7 +345,7 @@ G4bool G4MicroElecCrossSectionDataSet::LoadNonLogData(const G4String & argFileNa j++; } - AddComponent(new G4EMDataSet(i-1, argEnergies, argData, GetAlgorithm()->Clone(), GetUnitEnergies(), GetUnitData())); + AddComponent(new G4EMDataSet(G4int(i-1), argEnergies, argData, GetAlgorithm()->Clone(), GetUnitEnergies(), GetUnitData())); i++; } @@ -364,7 +364,7 @@ G4bool G4MicroElecCrossSectionDataSet::LoadNonLogData(const G4String & argFileNa G4bool G4MicroElecCrossSectionDataSet::SaveData(const G4String & argFileName) const { - const size_t n(NumberOfComponents()); + const std::size_t n(NumberOfComponents()); if (n==0) { G4Exception("G4MicroElecCrossSectionDataSet::SaveData","em0005", @@ -390,12 +390,12 @@ G4bool G4MicroElecCrossSectionDataSet::SaveData(const G4String & argFileName) co G4DataVector::const_iterator iEnergiesEnd(GetComponent(0)->GetEnergies(0).end()); G4DataVector::const_iterator * iData(new G4DataVector::const_iterator[n]); - size_t k(n); + std::size_t k(n); while (k>0) { k--; - iData[k]=GetComponent(k)->GetData(0).begin(); + iData[k]=GetComponent((G4int)k)->GetData(0).begin(); } while (iEnergies!=iEnergiesEnd) @@ -469,14 +469,14 @@ G4double G4MicroElecCrossSectionDataSet::FindValue(G4double argEnergy, G4int /* void G4MicroElecCrossSectionDataSet::PrintData(void) const { - const size_t n(NumberOfComponents()); + const std::size_t n(NumberOfComponents()); G4cout << "The data set has " << n << " components" << G4endl; G4cout << G4endl; - size_t i(0); + G4int i(0); - while (iPrintData(); diff --git a/source/processes/electromagnetic/lowenergy/src/G4MicroElecCrossSectionDataSet_new.cc b/source/processes/electromagnetic/lowenergy/src/G4MicroElecCrossSectionDataSet_new.cc index 6f9ae1fa41..a960be1498 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4MicroElecCrossSectionDataSet_new.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4MicroElecCrossSectionDataSet_new.cc @@ -174,7 +174,7 @@ G4bool G4MicroElecCrossSectionDataSet_new::LoadData(const G4String & argFileName } delete stream; - std::vector::size_type maxI(columns.size()); + std::size_t maxI(columns.size()); if (maxI<2) { @@ -186,10 +186,10 @@ G4bool G4MicroElecCrossSectionDataSet_new::LoadData(const G4String & argFileName return false; } - std::vector::size_type i(1); + std::size_t i(1); while (isize()); + std::size_t maxJ(columns[i]->size()); if (maxJ!=columns[0]->size()) { @@ -201,7 +201,7 @@ G4bool G4MicroElecCrossSectionDataSet_new::LoadData(const G4String & argFileName return false; } - G4DataVector::size_type j(0); + std::size_t j(0); G4DataVector *argEnergies=new G4DataVector; G4DataVector *argData=new G4DataVector; @@ -217,9 +217,9 @@ G4bool G4MicroElecCrossSectionDataSet_new::LoadData(const G4String & argFileName j++; } - AddComponent(new G4EMDataSet(i-1, argEnergies, argData, argLogEnergies, argLogData, GetAlgorithm()->Clone(), GetUnitEnergies(), GetUnitData())); + AddComponent(new G4EMDataSet(G4int(i-1), argEnergies, argData, argLogEnergies, argLogData, GetAlgorithm()->Clone(), GetUnitEnergies(), GetUnitData())); - i++; + ++i; } i=maxI; @@ -333,7 +333,7 @@ G4bool G4MicroElecCrossSectionDataSet_new::LoadNonLogData(const G4String & argFi delete stream; - std::vector::size_type maxI(columns.size()); + std::size_t maxI(columns.size()); if (maxI<2) { @@ -345,10 +345,10 @@ G4bool G4MicroElecCrossSectionDataSet_new::LoadNonLogData(const G4String & argFi return false; } - std::vector::size_type i(1); + std::size_t i(1); while (isize()); + std::size_t maxJ(columns[i]->size()); if (maxJ!=columns[0]->size()) @@ -361,7 +361,7 @@ G4bool G4MicroElecCrossSectionDataSet_new::LoadNonLogData(const G4String & argFi return false; } - G4DataVector::size_type j(0); + std::size_t j(0); G4DataVector *argEnergies=new G4DataVector; G4DataVector *argData=new G4DataVector; @@ -370,18 +370,18 @@ G4bool G4MicroElecCrossSectionDataSet_new::LoadNonLogData(const G4String & argFi { argEnergies->push_back(columns[0]->operator[] (j)*GetUnitEnergies()); argData->push_back(columns[i]->operator[] (j)*GetUnitData()); - j++; + ++j; } - AddComponent(new G4EMDataSet(i-1, argEnergies, argData, GetAlgorithm()->Clone(), GetUnitEnergies(), GetUnitData())); + AddComponent(new G4EMDataSet(G4int(i-1), argEnergies, argData, GetAlgorithm()->Clone(), GetUnitEnergies(), GetUnitData())); - i++; + ++i; } i=maxI; while (i>0) { - i--; + --i; delete columns[i]; } @@ -392,7 +392,7 @@ G4bool G4MicroElecCrossSectionDataSet_new::LoadNonLogData(const G4String & argFi G4bool G4MicroElecCrossSectionDataSet_new::SaveData(const G4String & argFileName) const { - const size_t n(NumberOfComponents()); + const std::size_t n(NumberOfComponents()); if (n==0) { @@ -419,12 +419,12 @@ G4bool G4MicroElecCrossSectionDataSet_new::SaveData(const G4String & argFileName G4DataVector::const_iterator iEnergiesEnd(GetComponent(0)->GetEnergies(0).end()); G4DataVector::const_iterator * iData(new G4DataVector::const_iterator[n]); - size_t k(n); + std::size_t k(n); while (k>0) { - k--; - iData[k]=GetComponent(k)->GetData(0).begin(); + --k; + iData[k]=GetComponent((G4int)k)->GetData(0).begin(); } while (iEnergies!=iEnergiesEnd) @@ -445,12 +445,12 @@ G4bool G4MicroElecCrossSectionDataSet_new::SaveData(const G4String & argFileName out << ((*(iData[k]))/GetUnitData()); iData[k]++; - k++; + ++k; } out << std::endl; - iEnergies++; + ++iEnergies; } delete[] iData; @@ -506,18 +506,18 @@ G4double G4MicroElecCrossSectionDataSet_new::FindShellValue(G4double argEnergy, void G4MicroElecCrossSectionDataSet_new::PrintData(void) const { - const size_t n(NumberOfComponents()); + const std::size_t n(NumberOfComponents()); G4cout << "The data set has " << n << " components" << G4endl; G4cout << G4endl; - size_t i(0); + G4int i(0); - while (iPrintData(); - i++; + ++i; } } diff --git a/source/processes/electromagnetic/lowenergy/src/G4MicroElecElasticModel.cc b/source/processes/electromagnetic/lowenergy/src/G4MicroElecElasticModel.cc index 338ccaa18e..5ab1e4674f 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4MicroElecElasticModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4MicroElecElasticModel.cc @@ -83,7 +83,7 @@ G4MicroElecElasticModel::G4MicroElecElasticModel(const G4ParticleDefinition*, G4MicroElecElasticModel::~G4MicroElecElasticModel() { // For total cross section - for (auto pos : tableData) + for (auto & pos : tableData) { G4MicroElecCrossSectionDataSet* table = pos.second; delete table; diff --git a/source/processes/electromagnetic/lowenergy/src/G4MicroElecElasticModel_new.cc b/source/processes/electromagnetic/lowenergy/src/G4MicroElecElasticModel_new.cc index db2917d213..bdecb98143 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4MicroElecElasticModel_new.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4MicroElecElasticModel_new.cc @@ -178,7 +178,7 @@ void G4MicroElecElasticModel_new::Initialise(const G4ParticleDefinition* /*parti G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); for (G4int i = 0; i < numOfCouples; ++i) { const G4Material* material = diff --git a/source/processes/electromagnetic/lowenergy/src/G4MicroElecInelasticModel.cc b/source/processes/electromagnetic/lowenergy/src/G4MicroElecInelasticModel.cc index 2aff43e764..346f1cd7a6 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4MicroElecInelasticModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4MicroElecInelasticModel.cc @@ -102,7 +102,7 @@ G4MicroElecInelasticModel::G4MicroElecInelasticModel(const G4ParticleDefinition* G4MicroElecInelasticModel::~G4MicroElecInelasticModel() { // Cross section - for (auto pos : tableData) + for (auto & pos : tableData) { G4MicroElecCrossSectionDataSet* table = pos.second; delete table; @@ -464,8 +464,8 @@ void G4MicroElecInelasticModel::SampleSecondaries(std::vectorGetKineticEnergy();} fParticleChangeForGamma->SetProposedKineticEnergy(ekin-bindingEnergy-secondaryKinetic); @@ -804,20 +804,20 @@ G4int G4MicroElecInelasticModel::RandomSelect(G4double k, const G4String& partic G4int level = 0; auto pos = tableData.find(particle); - if (pos != tableData.end()) + if (pos != tableData.cend()) { G4MicroElecCrossSectionDataSet* table = pos->second; if (table != nullptr) { G4double* valuesBuffer = new G4double[table->NumberOfComponents()]; - const size_t n(table->NumberOfComponents()); - size_t i(n); + const G4int n = (G4int)table->NumberOfComponents(); + G4int i(n); G4double value = 0.; while (i>0) { - i--; + --i; valuesBuffer[i] = table->GetComponent(i)->FindValue(k); value += valuesBuffer[i]; } @@ -828,7 +828,7 @@ G4int G4MicroElecInelasticModel::RandomSelect(G4double k, const G4String& partic while (i > 0) { - i--; + --i; if (valuesBuffer[i] > value) { diff --git a/source/processes/electromagnetic/lowenergy/src/G4MicroElecInelasticModel_new.cc b/source/processes/electromagnetic/lowenergy/src/G4MicroElecInelasticModel_new.cc index 54693668ea..35c565d0e4 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4MicroElecInelasticModel_new.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4MicroElecInelasticModel_new.cc @@ -268,7 +268,7 @@ void G4MicroElecInelasticModel_new::Initialise(const G4ParticleDefinition* parti // Cross section G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); for (G4int i = 0; i < numOfCouples; ++i) { const G4Material* material = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); @@ -678,8 +678,8 @@ void G4MicroElecInelasticModel_new::SampleSecondaries(std::vectorGetKineticEnergy(); + for (std::size_t j=secNumberInit; j < secNumberFinal; ++j) { + deexSecEnergy = deexSecEnergy + (*fvect)[j]->GetKineticEnergy(); } if (SEFromFermiLevel) limitEnergy = currentMaterialStructure->GetEnergyGap(); fParticleChangeForGamma->SetProposedKineticEnergy(ekin - secondaryKinetic - limitEnergy); //Ef = Ei-(Q-El)-El = Ei-Q @@ -1334,13 +1334,13 @@ G4int G4MicroElecInelasticModel_new::RandomSelect(G4double k, const G4String& pa if (table != 0) { G4double* valuesBuffer = new G4double[table->NumberOfComponents()]; - const size_t n(table->NumberOfComponents()); - size_t i(n); + const G4int n = (G4int)table->NumberOfComponents(); + G4int i = (G4int)n; G4double value = 0.; while (i>0) { - i--; + --i; valuesBuffer[i] = table->GetComponent(i)->FindValue(k)*Zeff[i]*Zeff[i]; value += valuesBuffer[i]; } @@ -1350,7 +1350,7 @@ G4int G4MicroElecInelasticModel_new::RandomSelect(G4double k, const G4String& pa while (i > 0) { - i--; + --i; if (valuesBuffer[i] > value) { diff --git a/source/processes/electromagnetic/lowenergy/src/G4MicroElecSurface.cc b/source/processes/electromagnetic/lowenergy/src/G4MicroElecSurface.cc index 939d785fde..33a0d8e870 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4MicroElecSurface.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4MicroElecSurface.cc @@ -109,7 +109,7 @@ void G4MicroElecSurface::BuildPhysicsTable(const G4ParticleDefinition&) G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); G4cout << "G4MicroElecSurface::Initialise: Ncouples= " << numOfCouples << G4endl; diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc index 2c91610518..db686fe50a 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc @@ -473,10 +473,10 @@ G4double G4PenelopeBremsstrahlungAngular::CalculateEffectiveZ(const G4Material* //Helper for the calculation std::vector *StechiometricFactors = new std::vector; - G4int nElements = material->GetNumberOfElements(); + G4int nElements = (G4int)material->GetNumberOfElements(); const G4ElementVector* elementVector = material->GetElementVector(); const G4double* fractionVector = material->GetFractionVector(); - for (G4int i=0;iGetA()/(g/mole); @@ -484,18 +484,18 @@ G4double G4PenelopeBremsstrahlungAngular::CalculateEffectiveZ(const G4Material* } //Find max G4double MaxStechiometricFactor = 0.; - for (G4int i=0;i MaxStechiometricFactor) MaxStechiometricFactor = (*StechiometricFactors)[i]; } //Normalize - for (G4int i=0;iGetZ(); sumz2 += (*StechiometricFactors)[i]*Z*Z; diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungFS.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungFS.cc index e4cd59333a..b4f91a4aa7 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungFS.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungFS.cc @@ -60,10 +60,10 @@ G4PenelopeBremsstrahlungFS::G4PenelopeBremsstrahlungFS(G4int verbosity) : 0.75e0,0.8e0,0.85e0,0.9e0,0.925e0,0.95e0,0.97e0,0.99e0, 0.995e0,0.999e0,0.9995e0,0.9999e0,0.99995e0,0.99999e0,1.0e0}; - for (size_t ix=0;ix; @@ -214,10 +214,10 @@ void G4PenelopeBremsstrahlungFS::BuildScaledXSTable(const G4Material* material, //Determine the equivalent atomic number //********************************************************************* std::vector *StechiometricFactors = new std::vector; - G4int nElements = material->GetNumberOfElements(); + std::size_t nElements = material->GetNumberOfElements(); const G4ElementVector* elementVector = material->GetElementVector(); const G4double* fractionVector = material->GetFractionVector(); - for (G4int i=0;iGetA()/(g/mole); @@ -225,18 +225,18 @@ void G4PenelopeBremsstrahlungFS::BuildScaledXSTable(const G4Material* material, } //Find max G4double MaxStechiometricFactor = 0.; - for (G4int i=0;i MaxStechiometricFactor) MaxStechiometricFactor = (*StechiometricFactors)[i]; } //Normalize - for (G4int i=0;iGetZ(); sumz2 += (*StechiometricFactors)[i]*Z*Z; @@ -252,7 +252,7 @@ void G4PenelopeBremsstrahlungFS::BuildScaledXSTable(const G4Material* material, G4DataVector* tempData = new G4DataVector(fNBinsE); G4DataVector* tempMatrix = new G4DataVector(fNBinsE*fNBinsX,0.); - for (G4int iel=0;ielGetZ(); G4int iZ = (G4int) Z; @@ -274,10 +274,10 @@ void G4PenelopeBremsstrahlungFS::BuildScaledXSTable(const G4Material* material, G4DataVector* atomData = fElementData->find(iZ)->second; - for (size_t ie=0;iepush_back(new G4PhysicsFreeVector(fNBinsE+1)); - for (size_t ix=0;ix> myDouble; //energy (eV) if (!theEGrid[ie]) //fill only the first time theEGrid[ie] = myDouble*eV; // - for (size_t ix=0;ix> myDouble; (*theMatrix)[ie*(fNBinsX+1)+ix] = myDouble*millibarn; @@ -441,7 +441,7 @@ G4double G4PenelopeBremsstrahlungFS::GetMomentumIntegral(G4double* y, //from x[0] to xup, obtained by linear interpolation on a table of y. //The independent variable is assumed to take positive values only. // - size_t size = fNBinsX; + std::size_t size = fNBinsX; const G4double eps = 1e-35; //Check that the call is valid @@ -451,7 +451,7 @@ G4double G4PenelopeBremsstrahlungFS::GetMomentumIntegral(G4double* y, "em2011",FatalException,"Invalid call"); } - for (size_t i=1;ipush_back(new G4PhysicsFreeVector(fNBinsX)); //Retrieve the table. Must already exist at this point, because this @@ -551,14 +551,14 @@ void G4PenelopeBremsstrahlungFS::InitializeEnergySampling(const G4Material* mate "em2013",FatalException,"Unable to retrieve the cross section table"); G4PhysicsTable* theTableReduced = fReducedXSTable->find(theKey)->second; - for (size_t ie=0;iePutValues(0,theXGrid[0],value); - for (size_t ix=1;ixfind(theKey)->second; //Find the energy bin using bi-partition - size_t eBin = 0; + std::size_t eBin = 0; G4bool firstOrLastBin = false; if (energy < theEGrid[0]) //below first bin @@ -632,11 +632,11 @@ G4double G4PenelopeBremsstrahlungFS::SampleGammaEnergy(G4double energy,const G4M } else { - size_t i=0; - size_t j=fNBinsE-1; + std::size_t i=0; + std::size_t j=fNBinsE-1; while ((j-i)>1) { - size_t k = (i+j)/2; + std::size_t k = (i+j)/2; if (energy > theEGrid[k]) i = k; else @@ -669,7 +669,7 @@ G4double G4PenelopeBremsstrahlungFS::SampleGammaEnergy(G4double energy,const G4M if (!firstOrLastBin) { const G4PhysicsFreeVector* theVec2 = (G4PhysicsFreeVector*) (*theTableInte)[eBin+1]; - for (size_t iloop=0;iloopPutValues(iloop,theXGrid[iloop],(*theVec1)[iloop]); } @@ -702,7 +702,7 @@ G4double G4PenelopeBremsstrahlungFS::SampleGammaEnergy(G4double energy,const G4M nIterations++; //find where it is - size_t ibin = 0; + std::size_t ibin = 0; if (pt < (*theTempVec)[0]) ibin = 0; else if (pt > (*theTempVec)[fNBinsX-1]) @@ -735,11 +735,11 @@ G4double G4PenelopeBremsstrahlungFS::SampleGammaEnergy(G4double energy,const G4M } else { - size_t i=0; - size_t j=fNBinsX-1; + std::size_t i=0; + std::size_t j=fNBinsX-1; while ((j-i)>1) { - size_t k = (i+j)/2; + std::size_t k = (i+j)/2; if (pt > (*theTempVec)[k]) i = k; else diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungModel.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungModel.cc index 30eb13426b..cae60fa00a 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungModel.cc @@ -131,8 +131,8 @@ void G4PenelopeBremsstrahlungModel::Initialise(const G4ParticleDefinition* part, fPenelopeAngular->Initialize(); //Set the number of bins for the tables. 20 points per decade - nBins = (size_t) (20*std::log10(HighEnergyLimit()/LowEnergyLimit())); - nBins = std::max(nBins,(size_t)100); + nBins = (std::size_t) (20*std::log10(HighEnergyLimit()/LowEnergyLimit())); + nBins = std::max(nBins,(std::size_t)100); fEnergyGrid = new G4PhysicsLogVector(LowEnergyLimit(), HighEnergyLimit(), nBins-1); //one hidden bin is added @@ -146,7 +146,7 @@ void G4PenelopeBremsstrahlungModel::Initialise(const G4ParticleDefinition* part, G4ProductionCutsTable::GetProductionCutsTable(); //Build tables for all materials - for (size_t i=0;iGetTableSize();i++) + for (G4int i=0;i<(G4int)theCoupleTable->GetTableSize();++i) { const G4Material* theMat = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); @@ -204,7 +204,7 @@ void G4PenelopeBremsstrahlungModel::InitialiseLocal(const G4ParticleDefinition* G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); //Build tables for all materials - for (size_t i=0;iGetTableSize();i++) + for (G4int i=0;i<(G4int)theCoupleTable->GetTableSize();++i) { const G4Material* theMat = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); @@ -507,7 +507,7 @@ void G4PenelopeBremsstrahlungModel::BuildXSTable(const G4Material* mat,G4double const G4PhysicsTable* table = fPenelopeFSHelper->GetScaledXSTable(mat,cut); //loop on the energy grid - for (size_t bin=0;binGetLowEdgeEnergy(bin); G4double XH0=0, XH1=0, XH2=0; @@ -522,10 +522,10 @@ void G4PenelopeBremsstrahlungModel::BuildXSTable(const G4Material* mat,G4double //Now I need the dSigma/dX profile - interpolated on energy - for //the 32-point x grid. Interpolation is log-log - size_t nBinsX = fPenelopeFSHelper->GetNBinsX(); + std::size_t nBinsX = fPenelopeFSHelper->GetNBinsX(); G4double* tempData = new G4double[nBinsX]; G4double logene = G4Log(energy); - for (size_t ix=0;ixValue(logene); diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeGammaConversionModel.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeGammaConversionModel.cc index 7f6deb0682..6f566349bc 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeGammaConversionModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeGammaConversionModel.cc @@ -167,13 +167,13 @@ void G4PenelopeGammaConversionModel::Initialise(const G4ParticleDefinition* part G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - for (size_t i=0;iGetTableSize();i++) + for (G4int i=0;i<(G4int)theCoupleTable->GetTableSize();++i) { const G4Material* material = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - for (size_t j=0;jGetNumberOfElements();j++) + for (std::size_t j=0;jGetNumberOfElements();++j) { G4int iZ = theElementVector->at(j)->GetZasInt(); //read data files only in the master @@ -552,7 +552,7 @@ void G4PenelopeGammaConversionModel::ReadDataFile(const G4int Z) //I have to know in advance how many points are in the data list //to initialize the G4PhysicsFreeVector() - size_t ndata=0; + std::size_t ndata=0; G4String line; while( getline(file, line) ) ndata++; @@ -578,7 +578,7 @@ void G4PenelopeGammaConversionModel::ReadDataFile(const G4int Z) fLogAtomicCrossSection[Z] = new G4PhysicsFreeVector(ndata); G4double ene=0,xs=0; - for (size_t i=0;i> ene >> xs; //dimensional quantities @@ -603,7 +603,7 @@ void G4PenelopeGammaConversionModel::InitializeScreeningFunctions(const G4Materi // G4double zeff = 0; G4int intZ = 0; - G4int nElements = material->GetNumberOfElements(); + G4int nElements = (G4int)material->GetNumberOfElements(); const G4ElementVector* elementVector = material->GetElementVector(); //avoid calculations if only one building element! diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisationModel.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisationModel.cc index e11b96d0d3..ce5f4ae393 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisationModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisationModel.cc @@ -159,8 +159,8 @@ void G4PenelopeIonisationModel::Initialise(const G4ParticleDefinition* particle, if (IsMaster() && particle == fParticle) { //Set the number of bins for the tables. 20 points per decade - fNBins = (size_t) (20*std::log10(HighEnergyLimit()/LowEnergyLimit())); - fNBins = std::max(fNBins,(size_t)100); + fNBins = (std::size_t) (20*std::log10(HighEnergyLimit()/LowEnergyLimit())); + fNBins = std::max(fNBins,(std::size_t)100); //Clear and re-build the tables if (fCrossSectionHandler) @@ -174,7 +174,7 @@ void G4PenelopeIonisationModel::Initialise(const G4ParticleDefinition* particle, //Build tables for all materials G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - for (size_t i=0;iGetTableSize();i++) + for (G4int i=0;i<(G4int)theCoupleTable->GetTableSize();++i) { const G4Material* theMat = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); @@ -605,13 +605,13 @@ void G4PenelopeIonisationModel::SampleSecondaries(std::vectorGetIndex(); if (fAtomDeexcitation->CheckDeexcitationActiveRegion(index)) { - size_t nBefore = fvect->size(); + std::size_t nBefore = fvect->size(); fAtomDeexcitation->GenerateParticles(fvect,shell,Z,index); - size_t nAfter = fvect->size(); + std::size_t nAfter = fvect->size(); if (nAfter>nBefore) //actual production of fluorescence { - for (size_t j=nBefore;jGetKineticEnergy(); if (itsEnergy < localEnergyDeposit) // valid secondary, generate it @@ -707,7 +707,7 @@ void G4PenelopeIonisationModel::SampleFinalStateElectron(const G4Material* mat, // G4PenelopeOscillatorTable* theTable = fOscManager->GetOscillatorTableIonisation(mat); - size_t numberOfOscillators = theTable->size(); + std::size_t numberOfOscillators = theTable->size(); const G4PenelopeCrossSection* theXS = fCrossSectionHandler->GetCrossSectionTableForCouple(G4Electron::Electron(),mat, cutEnergy); @@ -715,10 +715,10 @@ void G4PenelopeIonisationModel::SampleFinalStateElectron(const G4Material* mat, // Selection of the active oscillator G4double TST = G4UniformRand(); - fTargetOscillator = numberOfOscillators-1; //initialization, last oscillator + fTargetOscillator = G4int(numberOfOscillators-1); //initialization, last oscillator G4double XSsum = 0.; - for (size_t i=0;iGetNormalizedShellCrossSection(i,kineticEnergy); @@ -820,7 +820,7 @@ void G4PenelopeIonisationModel::SampleFinalStateElectron(const G4Material* mat, fCosThetaPrimary=1.0; fEnergySecondary=0.0; fCosThetaSecondary=1.0; - fTargetOscillator = numberOfOscillators-1; + fTargetOscillator = G4int(numberOfOscillators-1); return; } @@ -914,7 +914,7 @@ void G4PenelopeIonisationModel::SampleFinalStatePositron(const G4Material* mat, // G4PenelopeOscillatorTable* theTable = fOscManager->GetOscillatorTableIonisation(mat); - size_t numberOfOscillators = theTable->size(); + std::size_t numberOfOscillators = theTable->size(); const G4PenelopeCrossSection* theXS = fCrossSectionHandler->GetCrossSectionTableForCouple(G4Positron::Positron(),mat, cutEnergy); @@ -922,9 +922,9 @@ void G4PenelopeIonisationModel::SampleFinalStatePositron(const G4Material* mat, // Selection of the active oscillator G4double TST = G4UniformRand(); - fTargetOscillator = numberOfOscillators-1; //initialization, last oscillator + fTargetOscillator = G4int(numberOfOscillators-1); //initialization, last oscillator G4double XSsum = 0.; - for (size_t i=0;iGetNormalizedShellCrossSection(i,kineticEnergy); if (XSsum > TST) @@ -1031,7 +1031,7 @@ void G4PenelopeIonisationModel::SampleFinalStatePositron(const G4Material* mat, fCosThetaPrimary=1.0; fEnergySecondary=0.0; fCosThetaSecondary=1.0; - fTargetOscillator = numberOfOscillators-1; + fTargetOscillator = G4int(numberOfOscillators-1); return; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeOscillatorManager.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeOscillatorManager.cc index cf81094310..c2b628d881 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeOscillatorManager.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeOscillatorManager.cc @@ -108,7 +108,7 @@ void G4PenelopeOscillatorManager::Clear() G4PenelopeOscillatorTable* table = item.second; if (table) { - for (size_t k=0;ksize();++k) //clean individual oscillators + for (std::size_t k=0;ksize();++k) //clean individual oscillators { if ((*table)[k]) delete ((*table)[k]); @@ -124,7 +124,7 @@ void G4PenelopeOscillatorManager::Clear() G4PenelopeOscillatorTable* table = item.second; if (table) { - for (size_t k=0;ksize();++k) //clean individual oscillators + for (std::size_t k=0;ksize();++k) //clean individual oscillators { if ((*table)[k]) delete ((*table)[k]); @@ -160,7 +160,7 @@ void G4PenelopeOscillatorManager::Dump(const G4Material* material) G4cout << "The table contains " << theTable->size() << " oscillators " << G4endl; G4cout << "*********************************************************************" << G4endl; if (theTable->size() < 10) - for (size_t k=0;ksize();k++) + for (std::size_t k=0;ksize();++k) { G4cout << "Oscillator # " << k << " Z = " << (*theTable)[k]->GetParentZ() << " Shell Flag = " << (*theTable)[k]->GetShellFlag() << @@ -172,7 +172,7 @@ void G4PenelopeOscillatorManager::Dump(const G4Material* material) (*theTable)[k]->GetCutoffRecoilResonantEnergy()/eV << " eV" << G4endl; G4cout << "*********************************************************************" << G4endl; } - for (size_t k=0;ksize();k++) + for (std::size_t k=0;ksize();++k) { G4cout << k << " " << (*theTable)[k]->GetOscillatorStrength() << " " << (*theTable)[k]->GetIonisationEnergy()/eV << " " @@ -197,7 +197,7 @@ void G4PenelopeOscillatorManager::Dump(const G4Material* material) G4cout << "The table contains " << theTable->size() << " oscillators " << G4endl; G4cout << "*********************************************************************" << G4endl; if (theTable->size() < 10) - for (size_t k=0;ksize();k++) + for (std::size_t k=0;ksize();++k) { G4cout << "Oscillator # " << k << " Z = " << (*theTable)[k]->GetParentZ() << " Shell Flag = " << (*theTable)[k]->GetShellFlag() << @@ -207,7 +207,7 @@ void G4PenelopeOscillatorManager::Dump(const G4Material* material) G4cout << "Occupation number = " << (*theTable)[k]->GetOscillatorStrength() << G4endl; G4cout << "*********************************************************************" << G4endl; } - for (size_t k=0;ksize();k++) + for (std::size_t k=0;ksize();++k) { G4cout << k << " " << (*theTable)[k]->GetOscillatorStrength() << " " << (*theTable)[k]->GetIonisationEnergy()/eV << " " << (*theTable)[k]->GetHartreeFactor() << " " << @@ -348,7 +348,7 @@ G4PenelopeOscillator* G4PenelopeOscillatorManager::GetOscillatorIonisation(const G4int index) { G4PenelopeOscillatorTable* theTable = GetOscillatorTableIonisation(material); - if (((size_t)index) < theTable->size()) + if (((std::size_t)index) < theTable->size()) return (*theTable)[index]; else { @@ -395,7 +395,7 @@ G4PenelopeOscillator* G4PenelopeOscillatorManager::GetOscillatorCompton(const G4 G4int index) { G4PenelopeOscillatorTable* theTable = GetOscillatorTableCompton(material); - if (((size_t)index) < theTable->size()) + if (((std::size_t)index) < theTable->size()) return (*theTable)[index]; else { @@ -433,7 +433,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia if (fVerbosityLevel > 0) G4cout << "Going to build Oscillator Table for " << material->GetName() << G4endl; - G4int nElements = material->GetNumberOfElements(); + G4int nElements = (G4int)material->GetNumberOfElements(); const G4ElementVector* elementVector = material->GetElementVector(); //At the moment, there's no way in Geant4 to know if a material @@ -471,7 +471,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia "em2035",FatalException,ed); } //Normalize - for (G4int i=0;i 1) { - for (size_t i=0;isize();i++) + for (std::size_t i=0;isize();++i) { G4cout << "Element " << (*elementVector)[i]->GetSymbol() << " (Z = " << (*elementVector)[i]->GetZasInt() << ") --> " << @@ -491,7 +491,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia } } - for (G4int i=0;iGetZasInt(); totalZ += iZ * (*StechiometricFactors)[i]; @@ -617,7 +617,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia //copy the conduction strength.. The number is going to change. G4double conductionStrengthCopy = conductionStrength; G4bool quit = false; - for (size_t i = 1; isize() && !quit ;i++) + for (std::size_t i = 1; isize() && !quit ;++i) { G4double oscStre = (*helper)[i].GetOscillatorStrength(); //loop is repeated over here @@ -650,7 +650,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia //Check f-sum rule G4double sum = 0; - for (size_t i=0;isize();i++) + for (std::size_t i=0;isize();++i) { sum += (*helper)[i].GetOscillatorStrength(); } @@ -665,7 +665,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia if (std::fabs(sum-totalZ) > (1e-12*totalZ)) { G4double fact = totalZ/sum; - for (size_t i=0;isize();i++) + for (std::size_t i=0;isize();++i) { G4double ff = (*helper)[i].GetOscillatorStrength()*fact; (*helper)[i].SetOscillatorStrength(ff); @@ -676,7 +676,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia for (G4int k=0;ksize() && !exit;i++) + for (std::size_t i=0;isize() && !exit;++i) { if (std::fabs((*helper)[i].GetOscillatorStrength()) < 1e-12) { @@ -697,7 +697,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia { adjustmentFactor = (AALow+AAHigh)*0.5; G4double sumLocal = 0; - for (size_t i=0;isize();i++) + for (std::size_t i=0;isize();++i) { if (i == 0 && isAConductor) { @@ -739,7 +739,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia //Check again for data consistency G4double xcheck = (*helper)[0].GetOscillatorStrength()*G4Log((*helper)[0].GetResonanceEnergy()); G4double TST = (*helper)[0].GetOscillatorStrength(); - for (size_t i=1;isize();i++) + for (std::size_t i=1;isize();++i) { xcheck += (*helper)[i].GetOscillatorStrength()*G4Log((*helper)[i].GetResonanceEnergy()); TST += (*helper)[i].GetOscillatorStrength(); @@ -775,7 +775,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia //Find N1 level of the heaviest element (if any). G4bool found = false; G4double cutEnergy = 50*eV; - for (size_t i=0;isize() && !found;i++) + for (std::size_t i=0;isize() && !found;++i) { G4double Z = (*helper)[i].GetParentZ(); G4int shID = (*helper)[i].GetParentShellID(); //look for the N1 level @@ -802,7 +802,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia std::sort(helper->begin(),helper->end(),comparator); //COPY THE HELPER (vector of object) to theTable (vector of Pointers). - for (size_t i=0;isize();i++) + for (std::size_t i=0;isize();++i) { //copy content --> one may need it later (e.g. to fill another table, with variations) G4PenelopeOscillator* theOsc = new G4PenelopeOscillator((*helper)[i]); @@ -812,9 +812,9 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia //Oscillators of outer shells with resonance energies differing by a factor less than //Rgroup are grouped as a single oscillator G4double Rgroup = 1.05; - size_t Nost = theTable->size(); + std::size_t Nost = theTable->size(); - size_t firstIndex = (isAConductor) ? 1 : 0; //for conductors, skip conduction oscillator + std::size_t firstIndex = (isAConductor) ? 1 : 0; //for conductors, skip conduction oscillator G4bool loopAgain = false; G4int nLoops = 0; G4int removedLevels = 0; @@ -825,7 +825,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia if (Nost>firstIndex+1) { removedLevels = 0; - for (size_t i=firstIndex;isize()-1;i++) + for (std::size_t i=firstIndex;isize()-1;++i) { G4bool skipLoop = false; G4int shellFlag = (*theTable)[i]->GetShellFlag(); @@ -872,7 +872,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia if (isize()-2) { - for (size_t ii=i+1;iisize()-1;ii++) + for (std::size_t ii=i+1;iisize()-1;++ii) (*theTable)[ii] = (*theTable)[ii+1]; } //G4cout << theTable->size() << G4endl; @@ -902,7 +902,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia } //Final Electron/Positron model parameters - for (size_t i=0;isize();i++) + for (std::size_t i=0;isize();++i) { //Set cutoff recoil energy for the resonant mode G4double ionEne = (*theTable)[i]->GetIonisationEnergy(); @@ -930,7 +930,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia //order by ionisation energy std::sort(helper->begin(),helper->end()); //COPY THE HELPER (vector of object) to theTable (vector of Pointers). - for (size_t i=0;isize();i++) + for (std::size_t i=0;isize();++i) { //copy content --> one may need it later (e.g. to fill another table, with variations) G4PenelopeOscillator* theOsc = new G4PenelopeOscillator((*helper)[i]); @@ -951,7 +951,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia if (Nost>firstIndex+1) { removedLevels = 0; - for (size_t i=firstIndex;isize()-1;i++) + for (std::size_t i=firstIndex;isize()-1;++i) { G4bool skipLoop = false; G4double ionEne = (*theTableC)[i]->GetIonisationEnergy(); @@ -985,7 +985,7 @@ void G4PenelopeOscillatorManager::BuildOscillatorTable(const G4Material* materia if (isize()-2) { - for (size_t ii=i+1;iisize()-1;ii++) + for (std::size_t ii=i+1;iisize()-1;++ii) (*theTableC)[ii] = (*theTableC)[ii+1]; } theTableC->erase(theTableC->begin()+theTableC->size()-1); //delete last element diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectricModel.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectricModel.cc index 7212a50c4d..af4fb711ad 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectricModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectricModel.cc @@ -139,13 +139,13 @@ void G4PenelopePhotoElectricModel::Initialise(const G4ParticleDefinition* partic G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - for (size_t i=0;iGetTableSize();i++) + for (G4int i=0;i<(G4int)theCoupleTable->GetTableSize();++i) { const G4Material* material = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - for (size_t j=0;jGetNumberOfElements();j++) + for (std::size_t j=0;jGetNumberOfElements();++j) { G4int iZ = theElementVector->at(j)->GetZasInt(); //read data files only in the master @@ -307,7 +307,7 @@ void G4PenelopePhotoElectricModel::SampleSecondaries(std::vector M shells // 9 --> outer shells cumulatively // - size_t shellIndex = SelectRandomShell(Z,photonEnergy); + std::size_t shellIndex = SelectRandomShell(Z,photonEnergy); if (fVerboseLevel > 2) G4cout << "Selected shell " << shellIndex << " of element " << anElement->GetName() << G4endl; @@ -321,7 +321,7 @@ void G4PenelopePhotoElectricModel::SampleSecondaries(std::vectormaxID, it sets the shellID to the last valid shell. - size_t numberOfShells = (size_t) transitionManager->NumberOfShells(Z); + std::size_t numberOfShells = (std::size_t) transitionManager->NumberOfShells(Z); if (shellIndex >= numberOfShells) shellIndex = numberOfShells-1; @@ -375,13 +375,13 @@ void G4PenelopePhotoElectricModel::SampleSecondaries(std::vectorGetIndex(); if (fAtomDeexcitation->CheckDeexcitationActiveRegion(index)) { - size_t nBefore = fvect->size(); + std::size_t nBefore = fvect->size(); fAtomDeexcitation->GenerateParticles(fvect,shell,Z,index); - size_t nAfter = fvect->size(); + std::size_t nAfter = fvect->size(); if (nAfter > nBefore) //actual production of fluorescence { - for (size_t j=nBefore;jGetKineticEnergy(); if (itsEnergy < bindingEnergy) // valid secondary, generate it @@ -543,7 +543,7 @@ void G4PenelopePhotoElectricModel::ReadDataFile(G4int Z) } //I have to know in advance how many points are in the data list //to initialize the G4PhysicsFreeVector() - size_t ndata=0; + std::size_t ndata=0; G4String line; while( getline(file, line) ) ndata++; @@ -555,7 +555,7 @@ void G4PenelopePhotoElectricModel::ReadDataFile(G4int Z) file.open(ost.str().c_str()); G4int readZ =0; - size_t nShells= 0; + std::size_t nShells= 0; file >> readZ >> nShells; if (fVerboseLevel > 3) @@ -578,11 +578,11 @@ void G4PenelopePhotoElectricModel::ReadDataFile(G4int Z) //reserve space for the vectors //everything is log-log - for (size_t i=0;ipush_back(new G4PhysicsFreeVector(ndata)); - size_t k =0; - for (k=0;k> aValue; aValue *= barn; @@ -615,7 +615,7 @@ void G4PenelopePhotoElectricModel::ReadDataFile(G4int Z) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -size_t G4PenelopePhotoElectricModel::GetNumberOfShellXS(G4int Z) +std::size_t G4PenelopePhotoElectricModel::GetNumberOfShellXS(G4int Z) { if (!IsMaster()) //Should not be here! @@ -634,16 +634,16 @@ size_t G4PenelopePhotoElectricModel::GetNumberOfShellXS(G4int Z) "em2038",FatalException,ed); } //one vector is allocated for the _total_ cross section - size_t nEntries = fLogAtomicShellXS[Z]->entries(); + std::size_t nEntries = fLogAtomicShellXS[Z]->entries(); return (nEntries-1); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4PenelopePhotoElectricModel::GetShellCrossSection(G4int Z,size_t shellID,G4double energy) +G4double G4PenelopePhotoElectricModel::GetShellCrossSection(G4int Z,std::size_t shellID,G4double energy) { //this forces also the loading of the data - size_t entries = GetNumberOfShellXS(Z); + std::size_t entries = GetNumberOfShellXS(Z); if (shellID >= entries) { @@ -672,7 +672,7 @@ G4double G4PenelopePhotoElectricModel::GetShellCrossSection(G4int Z,size_t shell //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4String G4PenelopePhotoElectricModel::WriteTargetShell(size_t shellID) +G4String G4PenelopePhotoElectricModel::WriteTargetShell(std::size_t shellID) { G4String theShell = "outer shell"; if (shellID == 0) @@ -708,7 +708,7 @@ void G4PenelopePhotoElectricModel::SetParticle(const G4ParticleDefinition* p) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo... -size_t G4PenelopePhotoElectricModel::SelectRandomShell(G4int Z,G4double energy) +std::size_t G4PenelopePhotoElectricModel::SelectRandomShell(G4int Z,G4double energy) { G4double logEnergy = G4Log(energy); @@ -736,7 +736,7 @@ size_t G4PenelopePhotoElectricModel::SelectRandomShell(G4int Z,G4double energy) // G4double random = G4UniformRand()*totalXS; - for (size_t k=1;kentries();k++) + for (std::size_t k=1;kentries();++k) { //Add one shell G4PhysicsFreeVector* partialXSLog = (G4PhysicsFreeVector*) (*theTable)[k]; diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleighModel.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleighModel.cc index 453a67d97f..065c2ab476 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleighModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleighModel.cc @@ -177,13 +177,13 @@ void G4PenelopeRayleighModel::Initialise(const G4ParticleDefinition* part, G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - for (size_t i=0;iGetTableSize();i++) + for (G4int i=0;i<(G4int)theCoupleTable->GetTableSize();++i) { const G4Material* material = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - for (size_t j=0;jGetNumberOfElements();j++) + for (std::size_t j=0;jGetNumberOfElements();++j) { G4int iZ = theElementVector->at(j)->GetZasInt(); //read data files only in the master @@ -322,12 +322,12 @@ void G4PenelopeRayleighModel::BuildFormFactorTable(const G4Material* material) /* 1) get composition and equivalent molecular density */ - G4int nElements = material->GetNumberOfElements(); + std::size_t nElements = material->GetNumberOfElements(); const G4ElementVector* elementVector = material->GetElementVector(); const G4double* fractionVector = material->GetFractionVector(); std::vector *StechiometricFactors = new std::vector; - for (G4int i=0;iGetA()/(g/mole); @@ -335,7 +335,7 @@ void G4PenelopeRayleighModel::BuildFormFactorTable(const G4Material* material) } //Find max G4double MaxStechiometricFactor = 0.; - for (G4int i=0;i MaxStechiometricFactor) MaxStechiometricFactor = (*StechiometricFactors)[i]; @@ -349,7 +349,7 @@ void G4PenelopeRayleighModel::BuildFormFactorTable(const G4Material* material) "em2042",FatalException,ed); } //Normalize - for (G4int i=0;iGetZasInt(); G4PhysicsFreeVector* theAtomVec = fAtomicFormFactor[iZ]; @@ -448,7 +448,7 @@ void G4PenelopeRayleighModel::SampleSecondaries(std::vector* const G4ElementVector* theElementVector = theMat->GetElementVector(); //protect file reading via autolock G4AutoLock lock(&PenelopeRayleighModelMutex); - for (size_t j=0;jGetNumberOfElements();j++) + for (std::size_t j=0;jGetNumberOfElements();++j) { G4int iZ = theElementVector->at(j)->GetZasInt(); if (!fLogAtomicCrossSection[iZ]) @@ -496,7 +496,7 @@ void G4PenelopeRayleighModel::SampleSecondaries(std::vector* } else //larger momentum transfer { - size_t nData = theDataTable->GetNumberOfStoredPoints(); + std::size_t nData = theDataTable->GetNumberOfStoredPoints(); G4double LastQ2inTheTable = theDataTable->GetX(nData-1); G4double q2max = std::min(qmax*qmax,LastQ2inTheTable); @@ -575,7 +575,7 @@ void G4PenelopeRayleighModel::ReadDataFile(const G4int Z) "em0003",FatalException,excep); } G4int readZ =0; - size_t nPoints= 0; + std::size_t nPoints= 0; file >> readZ >> nPoints; //check the right file is opened. if (readZ != Z || nPoints <= 0 || nPoints >= 5000) @@ -587,9 +587,9 @@ void G4PenelopeRayleighModel::ReadDataFile(const G4int Z) return; } - fLogAtomicCrossSection[Z] = new G4PhysicsFreeVector((size_t)nPoints); + fLogAtomicCrossSection[Z] = new G4PhysicsFreeVector((std::size_t)nPoints); G4double ene=0,f1=0,f2=0,xs=0; - for (size_t i=0;i> ene >> f1 >> f2 >> xs; //dimensional quantities @@ -632,13 +632,13 @@ void G4PenelopeRayleighModel::ReadDataFile(const G4int Z) "em0005",FatalException,ed); return; } - fAtomicFormFactor[Z] = new G4PhysicsFreeVector((size_t)nPoints); + fAtomicFormFactor[Z] = new G4PhysicsFreeVector((std::size_t)nPoints); G4double q=0,ff=0,incoh=0; G4bool fillQGrid = false; //fill this vector only the first time. if (!fLogQSquareGrid.size()) fillQGrid = true; - for (size_t i=0;i> q >> ff >> incoh; //q and ff are dimensionless (q is in units of (m_e*c) @@ -711,9 +711,9 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) { G4double q2min = 0; G4double q2max = 0; - const size_t np = 150; //hard-coded in Penelope + const std::size_t np = 150; //hard-coded in Penelope //G4cout << "Init N= " << fLogQSquareGrid.size() << G4endl; - for (size_t i=1;i 1e-35) @@ -723,7 +723,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) //G4cout << "Q2= " << Q2 << " q2max= " << q2max << G4endl; } - size_t nReducedPoints = np/4; + std::size_t nReducedPoints = np/4; //check for errors if (np < 16) @@ -749,12 +749,12 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) /******************************************************************************* Start with a grid of NUNIF points uniformly spaced in the interval q2min,q2max ********************************************************************************/ - size_t NUNIF = std::min(std::max(((size_t)8),nReducedPoints),np/2); + std::size_t NUNIF = std::min(std::max(((std::size_t)8),nReducedPoints),np/2); const G4int nip = 51; //hard-coded in Penelope G4double dx = (q2max-q2min)/((G4double) NUNIF-1); x->push_back(q2min); - for (size_t i=1;ipush_back(app); //increase @@ -771,7 +771,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) G4DataVector* c = new G4DataVector(); G4DataVector* err = new G4DataVector(); - for (size_t i=0;ipush_back(lastIntegral); //Normalize cumulative function G4double factor = 1.0/lastIntegral; - for (size_t k=0;ksize();k++) + for (std::size_t k=0;ksize();++k) (*sumi)[k] *= factor; //When the PDF vanishes at one of the interval end points, its value is modified @@ -896,8 +896,8 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) do { G4double maxError = 0.0; - size_t iErrMax = 0; - for (size_t i=0;isize()-2;i++) + std::size_t iErrMax = 0; + for (std::size_t i=0;isize()-2;++i) { //maxError is the lagest of the interval errors err[i] if ((*err)[i] > maxError) @@ -919,7 +919,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) err->insert(err->begin()+iErrMax+1,0.); //Now calculate the other parameters - for (size_t i=iErrMax;i<=iErrMax+1;i++) + for (std::size_t i=iErrMax;i<=iErrMax+1;++i) { //Temporary vectors for this loop G4DataVector* pdfi = new G4DataVector(); @@ -958,7 +958,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) //Normalize cumulative function G4double factor = 1.0/lastIntegral; - for (size_t k=0;ksize();k++) + for (std::size_t k=0;ksize();++k) (*sumi)[k] *= factor; //When the PDF vanishes at one of the interval end points, its value is modified @@ -1032,11 +1032,11 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) Renormalization ********************************************************************************/ G4double ws = 0; - for (size_t i=0;ipush_back(0.); - for (size_t i=0;ipush_back(previous+(*area)[i]); @@ -1056,11 +1056,11 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) /******************************************************************************* Pre-calculated limits for the initial binary search for subsequent sampling ********************************************************************************/ - std::vector *ITTL = new std::vector; - std::vector *ITTU = new std::vector; + std::vector *ITTL = new std::vector; + std::vector *ITTU = new std::vector; //Just create place-holders - for (size_t i=0;ipush_back(0); ITTU->push_back(0); @@ -1068,11 +1068,11 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) G4double bin = 1.0/(np-1); (*ITTL)[0]=0; - for (size_t i=1;i<(np-1);i++) + for (std::size_t i=1;i<(np-1);++i) { G4double ptst = i*bin; G4bool found = false; - for (size_t j=(*ITTL)[i-1];j ptst) { @@ -1097,7 +1097,7 @@ void G4PenelopeRayleighModel::InitializeSamplingAlgorithm(const G4Material* mat) Copy tables ********************************************************************************/ G4PenelopeSamplingData* theTable = new G4PenelopeSamplingData(np); - for (size_t i=0;iAddPoint((*x)[i],(*PAC)[i],(*a)[i],(*b)[i],(*ITTL)[i],(*ITTU)[i]); } @@ -1162,14 +1162,14 @@ void G4PenelopeRayleighModel::GetPMaxTable(const G4Material* mat) } G4PenelopeSamplingData *theTable = fSamplingTable->find(mat)->second; - size_t tablePoints = theTable->GetNumberOfStoredPoints(); + std::size_t tablePoints = theTable->GetNumberOfStoredPoints(); - size_t nOfEnergyPoints = fLogEnergyGridPMax.size(); + std::size_t nOfEnergyPoints = fLogEnergyGridPMax.size(); G4PhysicsFreeVector* theVec = new G4PhysicsFreeVector(nOfEnergyPoints); - const size_t nip = 51; //hard-coded in Penelope + const std::size_t nip = 51; //hard-coded in Penelope - for (size_t ie=0;ieGetX(midBin)) { upperBound = midBin-1; } else @@ -1201,7 +1201,7 @@ void G4PenelopeRayleighModel::GetPMaxTable(const G4Material* mat) G4double theB = theTable->GetB(upperBound); G4double thePAC = theTable->GetPAC(upperBound); G4DataVector* fun = new G4DataVector(); - for (size_t k=0;kpush_back(secondPoint); - for (size_t hh=2;hhfind(mat)->second; - for (size_t i=0;iGetVectorLength();i++) + for (std::size_t i=0;iGetVectorLength();++i) { G4double logQ2 = theVec->GetLowEdgeEnergy(i); G4double Q = G4Exp(0.5*logQ2); diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleighModelMI.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleighModelMI.cc index 3fd32f45c8..90aef32969 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleighModelMI.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleighModelMI.cc @@ -23,19 +23,17 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// $Id: G4PenelopeRayleighModelMI.hh 75573 2013-11-04 11:48:15Z gcosmo $ -// -// Author: Luciano Pandola and Gianfranco Paternò +// Author: Luciano Pandola and Gianfranco Paterno // // ------------------------------------------------------------------- // History: // 03 Dec 2009 L. Pandola 1st implementation // 25 May 2011 L. Pandola Renamed (make v2008 as default Penelope) // 27 Sep 2013 L. Pandola Migration to MT paradigm -// 20 Aug 2017 G. Paternò Molecular Interference implementation -// 24 Mar 2019 G. Paternò Improved Molecular Interference implementation -// 20 Jun 2020 G. Paternò Read qext separately and leave original atomic form factors -// 27 Aug 2020 G. Paternò Further improvement of MI implementation +// 20 Aug 2017 G. Paterno Molecular Interference implementation +// 24 Mar 2019 G. Paterno Improved Molecular Interference implementation +// 20 Jun 2020 G. Paterno Read qext separately and leave original atomic form factors +// 27 Aug 2020 G. Paterno Further improvement of MI implementation // // ------------------------------------------------------------------- // Class description: @@ -233,12 +231,12 @@ void G4PenelopeRayleighModelMI::Initialise(const G4ParticleDefinition* part, //loop on the used materials G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - for (size_t i=0;iGetTableSize();i++) { + for (G4int i=0;i<(G4int)theCoupleTable->GetTableSize();++i) { const G4Material* material = theCoupleTable->GetMaterialCutsCouple(i)->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - for (size_t j=0;jGetNumberOfElements();j++) { + for (std::size_t j=0;jGetNumberOfElements();++j) { G4int iZ = theElementVector->at(j)->GetZasInt(); //read data files only in the master if (!fLogAtomicCrossSection[iZ]) @@ -432,7 +430,7 @@ G4double G4PenelopeRayleighModelMI::CrossSectionPerVolume(const G4Material* mate //No need to lock, as this is always called in a master const G4ElementVector* theElementVector = material->GetElementVector(); //protect file reading via autolock - for (size_t j=0;jGetNumberOfElements();j++) { + for (std::size_t j=0;jGetNumberOfElements();++j) { G4int iZ = theElementVector->at(j)->GetZasInt(); if (!fLogAtomicCrossSection[iZ]) { ReadDataFile(iZ); @@ -478,29 +476,29 @@ G4double G4PenelopeRayleighModelMI::CrossSectionPerVolume(const G4Material* mate //GET MATERIAL INFORMATION G4double atomDensity = material->GetTotNbOfAtomsPerVolume(); - G4int nElements = material->GetNumberOfElements(); + std::size_t nElements = material->GetNumberOfElements(); const G4ElementVector* elementVector = material->GetElementVector(); const G4double* fractionVector = material->GetFractionVector(); //Stoichiometric factors std::vector *StoichiometricFactors = new std::vector; - for (G4int i=0;iGetA()/(g/mole); StoichiometricFactors->push_back(fraction/atomicWeigth); } G4double MaxStoichiometricFactor = 0.; - for (G4int i=0;i MaxStoichiometricFactor) MaxStoichiometricFactor = (*StoichiometricFactors)[i]; } - for (G4int i=0;iGetA()/(g/mole); if (fVerboseLevel > 2) @@ -549,19 +547,19 @@ void G4PenelopeRayleighModelMI::BuildFormFactorTable(const G4Material* material) G4cout << "Calling BuildFormFactorTable() of G4PenelopeRayleighModelMI" << G4endl; //GET MATERIAL INFORMATION - G4int nElements = material->GetNumberOfElements(); + std::size_t nElements = material->GetNumberOfElements(); const G4ElementVector* elementVector = material->GetElementVector(); const G4double* fractionVector = material->GetFractionVector(); //Stoichiometric factors std::vector *StoichiometricFactors = new std::vector; - for (G4int i=0;iGetA()/(g/mole); StoichiometricFactors->push_back(fraction/atomicWeigth); } G4double MaxStoichiometricFactor = 0.; - for (G4int i=0;i MaxStoichiometricFactor) MaxStoichiometricFactor = (*StoichiometricFactors)[i]; } @@ -571,12 +569,12 @@ void G4PenelopeRayleighModelMI::BuildFormFactorTable(const G4Material* material) G4Exception("G4PenelopeRayleighModelMI::BuildFormFactorTable()", "em2042",FatalException,ed); } - for (G4int i=0;iGetA()/(g/mole); //CREATE THE FORM FACTOR TABLE @@ -602,7 +600,7 @@ void G4PenelopeRayleighModelMI::BuildFormFactorTable(const G4Material* material) ReadMolInterferenceData(matname,aFileNameFF); G4PhysicsFreeVector* Fvector = fMolInterferenceData->find(matname)->second; - for (size_t k=0;kValue(q); G4double ff2 = f*f*MolWeight; @@ -621,7 +619,7 @@ void G4PenelopeRayleighModelMI::BuildFormFactorTable(const G4Material* material) G4int ki, kf=6, ktot=19; G4double comp[4]; G4String compstring = matname.substr(kf+1, ktot); - for (size_t j=0; j<4; j++) { + for (std::size_t j=0; j<4; ++j) { ki = kf+1; kf = ki+4; compstring = matname.substr(ki, 4); @@ -654,7 +652,7 @@ void G4PenelopeRayleighModelMI::BuildFormFactorTable(const G4Material* material) G4PhysicsFreeVector* mineralFF = fMolInterferenceData->find("Mineral_MI")->second; //get and combine the molecular form factors with interference effect - for (size_t k=0;kValue(q); @@ -672,7 +670,7 @@ void G4PenelopeRayleighModelMI::BuildFormFactorTable(const G4Material* material) if (fVerboseLevel) G4cout << "Read MIFF from database " << matname << G4endl; G4PhysicsFreeVector* FF = fMolInterferenceData->find(matname)->second; - for (size_t k=0;kValue(q); @@ -684,9 +682,9 @@ void G4PenelopeRayleighModelMI::BuildFormFactorTable(const G4Material* material) else { if (fVerboseLevel) G4cout << "FF of " << matname << " calculated according to the IAM" << G4endl; - for (size_t k=0;kGetZasInt(); G4PhysicsFreeVector* theAtomVec = fAtomicFormFactor[iZ]; G4double q = std::pow(G4Exp(fLogQSquareGrid[k]),0.5); @@ -775,7 +773,7 @@ void G4PenelopeRayleighModelMI::SampleSecondaries(std::vectorGetElementVector(); //protect file reading via autolock G4AutoLock lock(&PenelopeRayleighModelMutex); - for (size_t j=0;jGetNumberOfElements();j++) { + for (std::size_t j=0;jGetNumberOfElements();++j) { G4int iZ = theElementVector->at(j)->GetZasInt(); if (!fLogAtomicCrossSection[iZ]) { lock.lock(); @@ -819,7 +817,7 @@ void G4PenelopeRayleighModelMI::SampleSecondaries(std::vectorGetNumberOfStoredPoints(); + std::size_t nData = theDataTable->GetNumberOfStoredPoints(); G4double LastQ2inTheTable = theDataTable->GetX(nData-1); G4double q2max = std::min(qmax*qmax,LastQ2inTheTable); @@ -895,7 +893,7 @@ void G4PenelopeRayleighModelMI::ReadDataFile(const G4int Z) } G4int readZ = 0; - size_t nPoints = 0; + std::size_t nPoints = 0; file >> readZ >> nPoints; if (readZ != Z || nPoints <= 0 || nPoints >= 5000) { @@ -906,9 +904,9 @@ void G4PenelopeRayleighModelMI::ReadDataFile(const G4int Z) return; } - fLogAtomicCrossSection[Z] = new G4PhysicsFreeVector((size_t)nPoints); + fLogAtomicCrossSection[Z] = new G4PhysicsFreeVector((std::size_t)nPoints); G4double ene=0,f1=0,f2=0,xs=0; - for (size_t i=0;i> ene >> f1 >> f2 >> xs; //dimensional quantities ene *= eV; @@ -941,7 +939,7 @@ void G4PenelopeRayleighModelMI::ReadDataFile(const G4int Z) } G4double qext = 0; if (fillQGrid) { //fLogQSquareGrid filled only one time - for (size_t i=0;i> qext; fLogQSquareGrid.push_back(2.0*G4Log(qext)); } @@ -972,9 +970,9 @@ void G4PenelopeRayleighModelMI::ReadDataFile(const G4int Z) return; } - fAtomicFormFactor[Z] = new G4PhysicsFreeVector((size_t)nPoints); + fAtomicFormFactor[Z] = new G4PhysicsFreeVector((std::size_t)nPoints); G4double q=0,ff=0,incoh=0; - for (size_t i=0;i> q >> ff >> incoh; //q and ff are dimensionless (q is in units of (m_e*c)) fAtomicFormFactor[Z]->PutValue(i,q,ff); if (file.eof() && i != (nPoints-1)) { //file ended too early @@ -1035,7 +1033,7 @@ void G4PenelopeRayleighModelMI::ReadMolInterferenceData(const G4String& matname, } //check the number of points in the file - size_t nPoints = 0; + std::size_t nPoints = 0; G4double x=0,y=0; while (file.good()) { file >> x >> y; @@ -1048,9 +1046,9 @@ void G4PenelopeRayleighModelMI::ReadMolInterferenceData(const G4String& matname, //read the file file.open(ostIMFF.str().c_str()); - G4PhysicsFreeVector* theFFVec = new G4PhysicsFreeVector((size_t)nPoints); + G4PhysicsFreeVector* theFFVec = new G4PhysicsFreeVector((std::size_t)nPoints); G4double q=0,ff=0; - for (size_t i=0; i> q >> ff; //q and ff are dimensionless (q is in units of (m_e*c)) @@ -1127,8 +1125,8 @@ void G4PenelopeRayleighModelMI::InitializeSamplingAlgorithm(const G4Material* ma { G4double q2min = 0; G4double q2max = 0; - const size_t np = 150; //hard-coded in Penelope - for (size_t i=1;i 1e-35) @@ -1136,7 +1134,7 @@ void G4PenelopeRayleighModelMI::InitializeSamplingAlgorithm(const G4Material* ma q2max = G4Exp(fLogQSquareGrid[i-1]); } } - size_t nReducedPoints = np/4; + std::size_t nReducedPoints = np/4; //check for errors if (np < 16) @@ -1162,12 +1160,12 @@ void G4PenelopeRayleighModelMI::InitializeSamplingAlgorithm(const G4Material* ma /******************************************************************************* Start with a grid of NUNIF points uniformly spaced in the interval q2min,q2max ********************************************************************************/ - size_t NUNIF = std::min(std::max(((size_t)8),nReducedPoints),np/2); + std::size_t NUNIF = std::min(std::max(((std::size_t)8),nReducedPoints),np/2); const G4int nip = 51; //hard-coded in Penelope G4double dx = (q2max-q2min)/((G4double) NUNIF-1); x->push_back(q2min); - for (size_t i=1;ipush_back(app); //increase @@ -1184,7 +1182,7 @@ void G4PenelopeRayleighModelMI::InitializeSamplingAlgorithm(const G4Material* ma G4DataVector* c = new G4DataVector(); G4DataVector* err = new G4DataVector(); - for (size_t i=0;ipush_back(lastIntegral); //Normalize cumulative function G4double factor = 1.0/lastIntegral; - for (size_t k=0;ksize();k++) + for (std::size_t k=0;ksize();++k) (*sumi)[k] *= factor; //When the PDF vanishes at one of the interval end points, its value is modified @@ -1310,8 +1308,8 @@ void G4PenelopeRayleighModelMI::InitializeSamplingAlgorithm(const G4Material* ma do { G4double maxError = 0.0; - size_t iErrMax = 0; - for (size_t i=0;isize()-2;i++) + std::size_t iErrMax = 0; + for (std::size_t i=0;isize()-2;++i) { //maxError is the lagest of the interval errors err[i] if ((*err)[i] > maxError) @@ -1333,7 +1331,7 @@ void G4PenelopeRayleighModelMI::InitializeSamplingAlgorithm(const G4Material* ma err->insert(err->begin()+iErrMax+1,0.); //Now calculate the other parameters - for (size_t i=iErrMax;i<=iErrMax+1;i++) + for (std::size_t i=iErrMax;i<=iErrMax+1;++i) { //Temporary vectors for this loop G4DataVector* pdfi = new G4DataVector(); @@ -1372,7 +1370,7 @@ void G4PenelopeRayleighModelMI::InitializeSamplingAlgorithm(const G4Material* ma //Normalize cumulative function G4double factor = 1.0/lastIntegral; - for (size_t k=0;ksize();k++) + for (std::size_t k=0;ksize();++k) (*sumi)[k] *= factor; //When the PDF vanishes at one of the interval end points, its value is modified @@ -1446,11 +1444,11 @@ void G4PenelopeRayleighModelMI::InitializeSamplingAlgorithm(const G4Material* ma Renormalization ********************************************************************************/ G4double ws = 0; - for (size_t i=0;ipush_back(0.); - for (size_t i=0;ipush_back(previous+(*area)[i]); @@ -1470,11 +1468,11 @@ void G4PenelopeRayleighModelMI::InitializeSamplingAlgorithm(const G4Material* ma /******************************************************************************* Pre-calculated limits for the initial binary search for subsequent sampling ********************************************************************************/ - std::vector *ITTL = new std::vector; - std::vector *ITTU = new std::vector; + std::vector *ITTL = new std::vector; + std::vector *ITTU = new std::vector; //Just create place-holders - for (size_t i=0;ipush_back(0); ITTU->push_back(0); @@ -1482,11 +1480,11 @@ void G4PenelopeRayleighModelMI::InitializeSamplingAlgorithm(const G4Material* ma G4double bin = 1.0/(np-1); (*ITTL)[0]=0; - for (size_t i=1;i<(np-1);i++) + for (std::size_t i=1;i<(np-1);++i) { G4double ptst = i*bin; G4bool found = false; - for (size_t j=(*ITTL)[i-1];j ptst) { @@ -1511,7 +1509,7 @@ void G4PenelopeRayleighModelMI::InitializeSamplingAlgorithm(const G4Material* ma Copy tables ********************************************************************************/ G4PenelopeSamplingData* theTable = new G4PenelopeSamplingData(np); - for (size_t i=0;iAddPoint((*x)[i],(*PAC)[i],(*a)[i],(*b)[i],(*ITTL)[i],(*ITTU)[i]); } @@ -1575,13 +1573,13 @@ void G4PenelopeRayleighModelMI::GetPMaxTable(const G4Material* mat) } G4PenelopeSamplingData *theTable = fSamplingTable->find(mat)->second; - size_t tablePoints = theTable->GetNumberOfStoredPoints(); - size_t nOfEnergyPoints = fLogEnergyGridPMax.size(); + std::size_t tablePoints = theTable->GetNumberOfStoredPoints(); + std::size_t nOfEnergyPoints = fLogEnergyGridPMax.size(); G4PhysicsFreeVector* theVec = new G4PhysicsFreeVector(nOfEnergyPoints); - const size_t nip = 51; //hard-coded in Penelope + const std::size_t nip = 51; //hard-coded in Penelope - for (size_t ie=0;ieGetX(midBin)) { upperBound = midBin-1; } else @@ -1613,7 +1611,7 @@ void G4PenelopeRayleighModelMI::GetPMaxTable(const G4Material* mat) G4double theB = theTable->GetB(upperBound); G4double thePAC = theTable->GetPAC(upperBound); G4DataVector* fun = new G4DataVector(); - for (size_t k=0;kpush_back(secondPoint); - for (size_t hh=2;hhfind(mat)->second; - for (size_t i=0;iGetVectorLength();i++) + for (std::size_t i=0;iGetVectorLength();++i) { G4double logQ2 = theVec->GetLowEdgeEnergy(i); G4double Q = G4Exp(0.5*logQ2); diff --git a/source/processes/electromagnetic/lowenergy/src/G4PhotoElectricAngularGeneratorPolarized.cc b/source/processes/electromagnetic/lowenergy/src/G4PhotoElectricAngularGeneratorPolarized.cc index ae8ab730ac..ff29273a00 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PhotoElectricAngularGeneratorPolarized.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PhotoElectricAngularGeneratorPolarized.cc @@ -270,6 +270,7 @@ G4PhotoElectricAngularGeneratorPolarized::DSigmaL1shellGavrila( G4double beta, G4double theta, G4double phi) const { //Double differential L1 shell cross-section (Gavrila 1961) + // 26Oct2022: included factor (1/8) in dsigma from eqn 20 of paper G4double beta2 = beta*beta; G4double oneBeta2 = 1-beta2; G4double sqrtOneBeta2 = std::sqrt(oneBeta2); @@ -294,7 +295,7 @@ G4PhotoElectricAngularGeneratorPolarized::DSigmaL1shellGavrila( + (1-sqrtOneBeta2)/(4*beta2*oneBetaCosTheta*oneBetaCosTheta) * (beta/oneBeta2 - 2/oneBeta2 * cosTheta * cosPhi2 + (1-sqrtOneBeta2)/oneBeta2_to_3_2*cosTheta - beta*(1-sqrtOneBeta2)/oneBeta2_to_3_2); - dsigma = ( firstTerm*(1-pi*fine_structure_const/beta) + secondTerm*(pi*fine_structure_const) )*std::sin(theta); + dsigma = ( firstTerm*(1-pi*fine_structure_const/beta) + secondTerm*(pi*fine_structure_const) )*std::sin(theta) / 8.; return dsigma; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4RayleighScattering.cc b/source/processes/electromagnetic/lowenergy/src/G4RayleighScattering.cc index 5e6e9da840..7e12278124 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4RayleighScattering.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4RayleighScattering.cc @@ -44,7 +44,7 @@ G4RayleighScattering::G4RayleighScattering(const G4String& processName, SetStartFromNullFlag(false); SetBuildTableFlag(true); SetProcessSubType(fRayleigh); - SetMinKinEnergyPrim(100*keV); + SetMinKinEnergyPrim(150*CLHEP::keV); SetSplineFlag(false); } diff --git a/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc index 42b6f568d6..86814068d8 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc @@ -55,7 +55,7 @@ G4double G4SemiLogInterpolation::Calculate(G4double x, G4int bin, const G4DataVector& points, const G4DataVector& data) const { - G4int nBins = data.size() - 1; + G4int nBins = G4int(data.size() - 1); G4double value = 0.; if (x < points[0]) { @@ -86,7 +86,7 @@ G4double G4SemiLogInterpolation::Calculate(G4double x, G4int bin, //A combination of logarithmic interpolation on energy set and //linear Interpolation on data set //G4cout << "G4SemiLogInterpolation is performed (4 arguments)" << G4endl; - G4int nBins = data.size() - 1; + G4int nBins = G4int(data.size() - 1); G4double value = 0.; G4double log_x = std::log10(x); if (x < points[0]) diff --git a/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc b/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc index 009fde0c36..4c4721397f 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc @@ -46,13 +46,13 @@ #include "Randomize.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -// Constructor + G4ShellData::G4ShellData(G4int minZ, G4int maxZ, G4bool isOccupancy) : zMin(minZ), zMax(maxZ), occupancyData(isOccupancy) -{ } +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -// Destructor + G4ShellData::~G4ShellData() { for (auto& pos : idMap) @@ -78,7 +78,7 @@ G4ShellData::~G4ShellData() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -size_t G4ShellData::NumberOfShells(G4int Z) const +std::size_t G4ShellData::NumberOfShells(G4int Z) const { G4int z = Z - 1; G4int n = 0; @@ -125,7 +125,7 @@ G4int G4ShellData::ShellId(G4int Z, G4int shellIndex) const if (pos!= idMap.end()) { std::vector dataSet = *((*pos).second); - G4int nData = dataSet.size(); + G4int nData = (G4int)dataSet.size(); if (shellIndex >= 0 && shellIndex < nData) { n = (G4int) dataSet[shellIndex]; @@ -146,7 +146,7 @@ G4double G4ShellData::ShellOccupancyProbability(G4int Z, G4int shellIndex) const if (pos!= idMap.end()) { std::vector dataSet = *((*pos).second); - G4int nData = dataSet.size(); + G4int nData = (G4int)dataSet.size(); if (shellIndex >= 0 && shellIndex < nData) { prob = dataSet[shellIndex]; @@ -168,7 +168,7 @@ G4double G4ShellData::BindingEnergy(G4int Z, G4int shellIndex) const if (pos!= bindingMap.end()) { G4DataVector dataSet = *((*pos).second); - G4int nData = dataSet.size(); + G4int nData = (G4int)dataSet.size(); if (shellIndex >= 0 && shellIndex < nData) { value = dataSet[shellIndex]; @@ -230,7 +230,6 @@ void G4ShellData::LoadData(const G4String& fileName) // Build the complete string identifying the file with the data set std::ostringstream ost; ost << fileName << ".dat"; - // G4cout << fileName << G4endl; G4String name(ost.str()); const char* path = G4FindDataDir("G4LEDATA"); @@ -273,7 +272,7 @@ void G4ShellData::LoadData(const G4String& fileName) // End of a shell data set idMap[Z] = ids; bindingMap[Z] = energies; - G4int n = ids->size(); + G4int n = (G4int)ids->size(); nShells.push_back(n); // Start of new shell data set @@ -323,7 +322,7 @@ void G4ShellData::LoadData(const G4String& fileName) if (occupancyData) { // Build cumulative from raw shell occupancy - for (G4int ZLocal=zMin; ZLocal <= zMax; ZLocal++) + for (G4int ZLocal=zMin; ZLocal <= zMax; ++ZLocal) { std::vector occupancy = ShellIdVector(ZLocal); @@ -331,7 +330,7 @@ void G4ShellData::LoadData(const G4String& fileName) G4double scale = 1. / G4double(ZLocal); prob->push_back(occupancy[0] * scale); - for (size_t i=1; ipush_back(occupancy[i]*scale + (*prob)[i-1]); } @@ -352,7 +351,7 @@ G4int G4ShellData::SelectRandomShell(G4int Z) const G4double random = G4UniformRand(); // Binary search the shell with probability less or equal random - G4int nShellsLocal = NumberOfShells(Z); + G4int nShellsLocal = (G4int)NumberOfShells(Z); G4int upperBound = nShellsLocal; while (shellIndex <= upperBound) diff --git a/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc b/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc index d167c19e4a..e90a151af3 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc @@ -103,18 +103,18 @@ G4double G4ShellEMDataSet::FindValue(G4double energy, G4int /* componentId */) c void G4ShellEMDataSet::PrintData() const { - const size_t n = NumberOfComponents(); + const G4int n = (G4int)NumberOfComponents(); G4cout << "The data set has " << n << " components" << G4endl; G4cout << G4endl; - size_t i = 0; + G4int i = 0; while (i < n) { G4cout << "--- Component " << i << " ---" << G4endl; GetComponent(i)->PrintData(); - i++; + ++i; } } @@ -336,8 +336,8 @@ G4bool G4ShellEMDataSet::SaveData(const G4String& file) const G4Exception("G4EMDataSet::SaveData()","em0005",FatalException,message); } - const size_t n = NumberOfComponents(); - size_t k = 0; + const G4int n = (G4int)NumberOfComponents(); + G4int k = 0; while (k < n) { @@ -348,9 +348,9 @@ G4bool G4ShellEMDataSet::SaveData(const G4String& file) const const G4DataVector& energies = component->GetEnergies(0); const G4DataVector& data = component->GetData(0); - G4DataVector::const_iterator i = energies.begin(); - G4DataVector::const_iterator endI = energies.end(); - G4DataVector::const_iterator j = data.begin(); + G4DataVector::const_iterator i = energies.cbegin(); + G4DataVector::const_iterator endI = energies.cend(); + G4DataVector::const_iterator j = data.cbegin(); while (i != endI) { diff --git a/source/processes/electromagnetic/lowenergy/src/G4ShellVacancy.cc b/source/processes/electromagnetic/lowenergy/src/G4ShellVacancy.cc index a01c4ab7c2..b45f44db48 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4ShellVacancy.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ShellVacancy.cc @@ -47,8 +47,8 @@ G4ShellVacancy::G4ShellVacancy() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4ShellVacancy::~G4ShellVacancy() { - G4int size = xsis.size(); - for (G4int k =0; k G4ShellVacancy::GenerateNumberOfIonisations(const G4MaterialC { std::vector numberOfIonisations; const G4Material* material = couple->GetMaterial(); - G4int numberOfElements = material->GetNumberOfElements(); + G4int numberOfElements = (G4int)material->GetNumberOfElements(); for (G4int i = 0; iGetIndex(); + std::size_t indexInMaterialTable = couple->GetIndex(); G4VEMDataSet* aSetOfXsi = xsis[indexInMaterialTable]; diff --git a/source/processes/electromagnetic/lowenergy/src/G4UAtomicDeexcitation.cc b/source/processes/electromagnetic/lowenergy/src/G4UAtomicDeexcitation.cc index 53a63aedf3..74277cec96 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4UAtomicDeexcitation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4UAtomicDeexcitation.cc @@ -147,7 +147,7 @@ void G4UAtomicDeexcitation::InitialiseForNewRun() } // Instantiate new e+- cross section - if(!ePIXEshellCS) + if(nullptr == ePIXEshellCS) { if(namePIXExsElectronModel == "Empirical") { @@ -170,7 +170,7 @@ void G4UAtomicDeexcitation::InitialiseForNewRun() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4UAtomicDeexcitation::InitialiseForExtraAtom(G4int /*Z*/) +void G4UAtomicDeexcitation::InitialiseForExtraAtom(G4int) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -178,17 +178,17 @@ void G4UAtomicDeexcitation::InitialiseForExtraAtom(G4int /*Z*/) const G4AtomicShell* G4UAtomicDeexcitation::GetAtomicShell(G4int Z, G4AtomicShellEnumerator shell) { - return transitionManager->Shell(Z, size_t(shell)); + return transitionManager->Shell(Z, (std::size_t)shell); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4UAtomicDeexcitation::GenerateParticles( - std::vector* vectorOfParticles, - const G4AtomicShell* atomicShell, - G4int Z, - G4double gammaCut, - G4double eCut) + std::vector* vectorOfParticles, + const G4AtomicShell* atomicShell, + G4int Z, + G4double gammaCut, + G4double eCut) { // Defined initial conditions G4int givenShellId = atomicShell->ShellId(); @@ -205,9 +205,8 @@ void G4UAtomicDeexcitation::GenerateParticles( //---------------------------- G4int counter = 0; - // let's check that 55 && Z<100) { + // limits of the EPDL data + if (Z>5 && Z<105) { // The aim of this loop is to generate more than one fluorecence photon // from the same ionizing event @@ -219,26 +218,22 @@ void G4UAtomicDeexcitation::GenerateParticles( { provShellId = SelectTypeOfTransition(Z, givenShellId); - if ( provShellId >0) + if (provShellId >0) { - aParticle = GenerateFluorescence(Z,givenShellId,provShellId); + aParticle = + GenerateFluorescence(Z, givenShellId, provShellId); } - else if ( provShellId == -1) + else if (provShellId == -1) { aParticle = GenerateAuger(Z, givenShellId); } - else - { - //G4Exception("G4UAtomicDeexcitation::GenerateParticles()", - // "de0002",JustWarning, "Energy deposited locally"); - } } else // Following calls to GenerateParticles(...): // newShellId is given by GenerateFluorescence(...) { provShellId = SelectTypeOfTransition(Z,newShellId); - if (provShellId >0) + if (provShellId >0) { aParticle = GenerateFluorescence(Z,newShellId,provShellId); } @@ -246,26 +241,16 @@ void G4UAtomicDeexcitation::GenerateParticles( { aParticle = GenerateAuger(Z, newShellId); } - else - { - //G4Exception("G4UAtomicDeexcitation::GenerateParticles()","de0002",JustWarning, "Energy deposited locally"); - } } - counter++; + ++counter; if (aParticle != 0) { vectorOfParticles->push_back(aParticle); - //G4cout << "Deexcitation Occurred!" << G4endl; //debug } else {provShellId = -2;} } while (provShellId > -2); } - else - { - //G4Exception("G4UAtomicDeexcitation::GenerateParticles()","de0001",JustWarning, "Energy deposited locally"); - } - } // Auger cascade is not active //END OF ORIGINAL METHOD BY ALFONSO MANTERO @@ -279,8 +264,7 @@ void G4UAtomicDeexcitation::GenerateParticles( vacancyArray.push_back(givenShellId); // let's check that 599){ - //G4Exception("G4UAtomicDeexcitation::GenerateParticles()","de0001",JustWarning, "Energy deposited locally"); + if (Z<6 || Z>104){ return; } @@ -298,13 +282,10 @@ void G4UAtomicDeexcitation::GenerateParticles( else if(provShellId == -1){ aParticle = GenerateAuger(Z, givenShellId); } - //else - // G4Exception("G4UAtomicDeexcitation::GenerateParticles()","de0002",JustWarning, "Energy deposited locally"); - // if a particle is created, put it in the vector of new particles if(aParticle!=0) vectorOfParticles->push_back(aParticle); - else{;} + // one vacancy has been processed. Erase it. vacancyArray.erase(vacancyArray.begin()); } @@ -318,11 +299,11 @@ void G4UAtomicDeexcitation::GenerateParticles( G4double G4UAtomicDeexcitation::GetShellIonisationCrossSectionPerAtom( - const G4ParticleDefinition* pdef, - G4int Z, - G4AtomicShellEnumerator shellEnum, - G4double kineticEnergy, - const G4Material* mat) + const G4ParticleDefinition* pdef, + G4int Z, + G4AtomicShellEnumerator shellEnum, + G4double kineticEnergy, + const G4Material* mat) { // we must put a control on the shell that are passed: // some shells should not pass (line "0" or "2") @@ -342,8 +323,9 @@ G4UAtomicDeexcitation::GetShellIonisationCrossSectionPerAtom( G4double escaled = kineticEnergy; G4double q2 = 0.0; - // scaling to protons - if ((pdef->GetParticleName() != "proton" && pdef->GetParticleName() != "alpha" ) ) + // scaling to protons for all particles excluding protons and alpha + G4int pdg = pdef->GetPDGEncoding(); + if (pdg != 2212 && pdg != 1000020040) { mass = proton_mass_c2; escaled = kineticEnergy*mass/(pdef->GetPDGMass()); @@ -356,7 +338,9 @@ G4UAtomicDeexcitation::GetShellIonisationCrossSectionPerAtom( } } - if(PIXEshellCS) { xsec = PIXEshellCS->CrossSection(Z,shellEnum,escaled,mass,mat); } + if(PIXEshellCS) { + xsec = PIXEshellCS->CrossSection(Z,shellEnum,escaled,mass,mat); + } if(xsec < 1e-100) { xsec = anaPIXEshellCS->CrossSection(Z,shellEnum,escaled,mass,mat); } @@ -382,13 +366,12 @@ void G4UAtomicDeexcitation::SetCutForAugerElectrons(G4double cut) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double -G4UAtomicDeexcitation::ComputeShellIonisationCrossSectionPerAtom( - const G4ParticleDefinition* p, - G4int Z, - G4AtomicShellEnumerator shell, - G4double kinE, - const G4Material* mat) +G4double G4UAtomicDeexcitation::ComputeShellIonisationCrossSectionPerAtom( + const G4ParticleDefinition* p, + G4int Z, + G4AtomicShellEnumerator shell, + G4double kinE, + const G4Material* mat) { return GetShellIonisationCrossSectionPerAtom(p,Z,shell,kinE,mat); } @@ -398,8 +381,6 @@ G4UAtomicDeexcitation::ComputeShellIonisationCrossSectionPerAtom( G4int G4UAtomicDeexcitation::SelectTypeOfTransition(G4int Z, G4int shellId) { if (shellId <=0 ) { - //G4Exception("G4UAtomicDeexcitation::SelecttypeOfTransition()","de0002", - // JustWarning, "Energy deposited locally"); return 0; } @@ -428,7 +409,7 @@ G4int G4UAtomicDeexcitation::SelectTypeOfTransition(G4int Z, G4int shellId) G4double partialProb = G4UniformRand(); G4double partSum = 0; const G4FluoTransition* aShell = transitionManager->ReachableShell(Z,shellNum); - G4int trSize = (aShell->TransitionProbabilities()).size(); + G4int trSize = (G4int)(aShell->TransitionProbabilities()).size(); // Loop over the shells wich can provide an electron for a // radiative transition towards shellId: @@ -446,7 +427,7 @@ G4int G4UAtomicDeexcitation::SelectTypeOfTransition(G4int Z, G4int shellId) provShellId = aShell->OriginatingShellId(transProb); break; } - transProb++; + ++transProb; } // here provShellId is the right one or is -1. // if -1, the control is passed to the Auger generation part of the package @@ -466,7 +447,6 @@ G4UAtomicDeexcitation::GenerateFluorescence(G4int Z, G4int shellId, { if (shellId <=0 ) { - //G4Exception("G4UAtomicDeexcitation::GenerateFluorescence()","de0002",JustWarning, "Energy deposited locally"); return nullptr; } @@ -492,13 +472,13 @@ G4UAtomicDeexcitation::GenerateFluorescence(G4int Z, G4int shellId, { break; } - shellNum++; + ++shellNum; } // number of shell from wich an electron can reach shellId - size_t transitionSize = transitionManager-> + G4int transitionSize = (G4int)transitionManager-> ReachableShell(Z,shellNum)->OriginatingShellIds().size(); - size_t index = 0; + G4int index = 0; // find the index of the shell named provShellId in the vector // storing the shells from which shellId can be reached @@ -509,7 +489,7 @@ G4UAtomicDeexcitation::GenerateFluorescence(G4int Z, G4int shellId, { break; } - index++; + ++index; } // energy of the gamma leaving provShellId for shellId G4double transitionEnergy = transitionManager-> @@ -563,9 +543,9 @@ G4DynamicParticle* G4UAtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) // being the Id of the shell in which there is a vacancy { G4int pippo = transitionManager->ReachableAugerShell(Z,shellNum)->FinalShellId(); - if (shellId != pippo ) { + if (shellId != pippo ) { do { - shellNum++; + ++shellNum; if(shellNum == maxNumOfShells) { // G4cout << "No Auger transition found" << G4endl; //debug @@ -584,15 +564,15 @@ G4DynamicParticle* G4UAtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) const G4AugerTransition* anAugerTransition = transitionManager->ReachableAugerShell(Z,shellNum); - G4int transitionSize = + G4int transitionSize = (G4int) (anAugerTransition->TransitionOriginatingShellIds())->size(); while (transitionLoopShellIndex < transitionSize) { std::vector::const_iterator pos = - anAugerTransition->TransitionOriginatingShellIds()->begin(); + anAugerTransition->TransitionOriginatingShellIds()->cbegin(); G4int transitionLoopShellId = *(pos+transitionLoopShellIndex); - G4int numberOfPossibleAuger = + G4int numberOfPossibleAuger = (G4int) (anAugerTransition->AugerTransitionProbabilities(transitionLoopShellId))->size(); G4int augerIndex = 0; @@ -605,8 +585,8 @@ G4DynamicParticle* G4UAtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) augerIndex++; } while (augerIndex < numberOfPossibleAuger); - } - transitionLoopShellIndex++; + } + ++transitionLoopShellIndex; } G4double totalVacancyAugerProbability = partSum; @@ -629,7 +609,7 @@ G4DynamicParticle* G4UAtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) transitionRandomShellId = *(pos+transitionRandomShellIndex); augerIndex = 0; - numberOfPossibleAuger = (anAugerTransition-> + numberOfPossibleAuger = (G4int)(anAugerTransition-> AugerTransitionProbabilities(transitionRandomShellId))->size(); while (augerIndex < numberOfPossibleAuger) { @@ -645,7 +625,7 @@ G4DynamicParticle* G4UAtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) augerIndex++; } if (partSum >= (partialProb*totalVacancyAugerProbability) ) {break;} // was / - transitionRandomShellIndex++; + ++transitionRandomShellIndex; } // Now we have the index of the shell from wich comes the auger electron (augerIndex), @@ -657,10 +637,10 @@ G4DynamicParticle* G4UAtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) // Isotropic angular distribution for the outcoming e- G4double newcosTh = 1.-2.*G4UniformRand(); - G4double newsinTh = std::sqrt(1.-newcosTh*newcosTh); + G4double newsinTh = std::sqrt(1.-newcosTh*newcosTh); G4double newPhi = twopi*G4UniformRand(); - G4double xDir = newsinTh*std::sin(newPhi); + G4double xDir = newsinTh*std::sin(newPhi); G4double yDir = newsinTh*std::cos(newPhi); G4double zDir = newcosTh; diff --git a/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc index e56afea6b3..cc9b1bb4f6 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc @@ -118,7 +118,7 @@ G4VCrossSectionHandler::~G4VCrossSectionHandler() delete interpolation; interpolation = nullptr; - for (auto pos : dataMap) + for (auto & pos : dataMap) { G4VEMDataSet* dataSet = pos.second; delete dataSet; @@ -126,8 +126,8 @@ G4VCrossSectionHandler::~G4VCrossSectionHandler() if (crossSections != nullptr) { - size_t n = crossSections->size(); - for (size_t i=0; isize(); + for (std::size_t i=0; i= 0) { - G4int nComponents = dataSet->NumberOfComponents(); + G4int nComponents = (G4int)dataSet->NumberOfComponents(); if(shellIndex < nComponents) value = dataSet->GetComponent(shellIndex)->FindValue(energy); else @@ -423,9 +423,9 @@ G4double G4VCrossSectionHandler::ValueForMaterial(const G4Material* material, G4double value = 0.; const G4ElementVector* elementVector = material->GetElementVector(); const G4double* nAtomsPerVolume = material->GetVecNbOfAtomsPerVolume(); - G4int nElements = material->GetNumberOfElements(); + std::size_t nElements = material->GetNumberOfElements(); - for (G4int i=0 ; iGetZ(); G4double elementValue = FindValue(Z,energy); @@ -488,9 +488,9 @@ G4VEMDataSet* G4VCrossSectionHandler::BuildMeanFreePathForMaterials(const G4Data const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); - for (size_t mLocal=0; mLocalpush_back(std::log10(energy)); G4VEMDataSet* matCrossSet = (*crossSections)[mLocal]; G4double materialCrossSection = 0.0; - G4int nElm = matCrossSet->NumberOfComponents(); - for(G4int j=0; jNumberOfComponents(); + for(G4int j=0; jGetComponent(j)->FindValue(energy); } @@ -534,7 +534,7 @@ G4int G4VCrossSectionHandler::SelectRandomAtom(const G4MaterialCutsCouple* coupl // Select randomly an element within the material, according to the weight // determined by the cross sections in the data set const G4Material* material = couple->GetMaterial(); - G4int nElements = material->GetNumberOfElements(); + G4int nElements = (G4int)material->GetNumberOfElements(); // Special case: the material consists of one element if (nElements == 1) @@ -545,7 +545,7 @@ G4int G4VCrossSectionHandler::SelectRandomAtom(const G4MaterialCutsCouple* coupl // Composite material const G4ElementVector* elementVector = material->GetElementVector(); - size_t materialIndex = couple->GetIndex(); + std::size_t materialIndex = couple->GetIndex(); G4VEMDataSet* materialSet = (*crossSections)[materialIndex]; G4double materialCrossSection0 = 0.0; @@ -576,7 +576,7 @@ const G4Element* G4VCrossSectionHandler::SelectRandomElement(const G4MaterialCut // by the cross sections in the data set const G4Material* material = couple->GetMaterial(); G4Element* nullElement = 0; - G4int nElements = material->GetNumberOfElements(); + G4int nElements = (G4int)material->GetNumberOfElements(); const G4ElementVector* elementVector = material->GetElementVector(); // Special case: the material consists of one element @@ -588,13 +588,13 @@ const G4Element* G4VCrossSectionHandler::SelectRandomElement(const G4MaterialCut { // Composite material - size_t materialIndex = couple->GetIndex(); + std::size_t materialIndex = couple->GetIndex(); G4VEMDataSet* materialSet = (*crossSections)[materialIndex]; G4double materialCrossSection0 = 0.0; G4DataVector cross; cross.clear(); - for (G4int i=0; iGetComponent(i)->FindValue(e); materialCrossSection0 += cr; @@ -603,7 +603,7 @@ const G4Element* G4VCrossSectionHandler::SelectRandomElement(const G4MaterialCut G4double random = G4UniformRand() * materialCrossSection0; - for (G4int k=0 ; k < nElements ; k++ ) + for (G4int k=0 ; k < nElements ; ++k ) { if (random <= cross[k]) return (*elementVector)[k]; } @@ -638,8 +638,8 @@ G4int G4VCrossSectionHandler::SelectRandomShell(G4int Z, G4double e) const return 0; } - size_t nShells = dataSet->NumberOfComponents(); - for (size_t i=0; iNumberOfComponents(); + for (G4int i=0; iGetComponent(i); if (shellDataSet != nullptr) @@ -662,15 +662,15 @@ void G4VCrossSectionHandler::ActiveElements() G4Exception("G4VCrossSectionHandler::ActiveElements", "em1001",FatalException,"no MaterialTable found"); - G4int nMaterials = G4Material::GetNumberOfMaterials(); + std::size_t nMaterials = G4Material::GetNumberOfMaterials(); - for (G4int mLocal2=0; mLocal2GetElementVector(); - const G4int nElements = material->GetNumberOfElements(); + const std::size_t nElements = material->GetNumberOfElements(); - for (G4int iEl=0; iElGetZ(); if (!(activeZ.contains(Z)) && Z >= zMin && Z <= zMax) @@ -699,7 +699,7 @@ G4int G4VCrossSectionHandler::NumberOfComponents(G4int Z) const if (pos!= dataMap.end()) { G4VEMDataSet* dataSet = (*pos).second; - n = dataSet->NumberOfComponents(); + n = (G4int)dataSet->NumberOfComponents(); } else { diff --git a/source/processes/electromagnetic/lowenergy/src/G4VhShellCrossSection.cc b/source/processes/electromagnetic/lowenergy/src/G4VhShellCrossSection.cc index 8c2dcc8116..ffcf387408 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4VhShellCrossSection.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4VhShellCrossSection.cc @@ -71,9 +71,9 @@ G4int G4VhShellCrossSection::SelectRandomShell(G4int Z, std::vector p = Probabilities(Z,incidentEnergy,mass,deltaEnergy,mat); G4int shell = -1; - size_t nShells = p.size(); + G4int nShells = (G4int)p.size(); G4double q = G4UniformRand(); - for (size_t i=0; i= q) { shell = i; @@ -83,5 +83,3 @@ G4int G4VhShellCrossSection::SelectRandomShell(G4int Z, } return shell; } - - diff --git a/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc index c53f9e6383..5d03c41ff4 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc @@ -100,19 +100,19 @@ std::vector* G4eIonisationCrossSectionHandler::BuildCrossSections G4DataVector* log_energies; G4DataVector* log_cs; - G4int nOfBins = energyVector.size(); + std::size_t nOfBins = energyVector.size(); const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); - for (size_t mLocal=0; mLocalGetMaterialCutsCouple(mLocal); const G4Material* material= couple->GetMaterial(); const G4ElementVector* elementVector = material->GetElementVector(); const G4double* nAtomsPerVolume = material->GetAtomicNumDensityVector(); - G4int nElements = material->GetNumberOfElements(); + G4int nElements = (G4int)material->GetNumberOfElements(); if(verbose > 0) { @@ -126,7 +126,7 @@ std::vector* G4eIonisationCrossSectionHandler::BuildCrossSections G4VDataSetAlgorithm* algo = interp->Clone(); G4VEMDataSet* setForMat = new G4CompositeEMDataSet(algo,1.,1.); - for (G4int i=0; iGetZ(); G4int nShells = NumberOfComponents(Z); @@ -139,7 +139,7 @@ std::vector* G4eIonisationCrossSectionHandler::BuildCrossSections G4double density = nAtomsPerVolume[i]; - for (G4int bin=0; binpush_back(e); @@ -193,7 +193,7 @@ G4double G4eIonisationCrossSectionHandler::GetCrossSectionAboveThresholdForEleme G4double value = 0.; if(energy > cutEnergy) { - for (G4int n=0; nProbability(Z, cutEnergy, energy, energy, n); value += cross * p; diff --git a/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc b/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc index e8ea032ef9..f51848ee18 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc @@ -97,7 +97,7 @@ G4double G4eIonisationParameters::Parameter(G4int Z, G4int shellIndex, auto pos = param.find(id); if (pos!= param.end()) { G4VEMDataSet* dataSet = (*pos).second; - G4int nShells = dataSet->NumberOfComponents(); + G4int nShells = (G4int)dataSet->NumberOfComponents(); if(shellIndex < nShells) { const G4VEMDataSet* component = dataSet->GetComponent(shellIndex); @@ -155,15 +155,15 @@ void G4eIonisationParameters::LoadData() G4Exception("G4eIonisationParameters::LoadData", "em1001",FatalException,"Unable to find MaterialTable"); - G4int nMaterials = G4Material::GetNumberOfMaterials(); + std::size_t nMaterials = G4Material::GetNumberOfMaterials(); - for (G4int mLocal=0; mLocalGetElementVector(); - const size_t nElements = material->GetNumberOfElements(); + const std::size_t nElements = material->GetNumberOfElements(); - for (size_t iEl=0; iElGetZ(); if (!(activeZ.contains(Z))) { activeZ.push_back(Z); @@ -185,9 +185,9 @@ void G4eIonisationParameters::LoadData() G4double energy, sum; - size_t nZ = activeZ.size(); + std::size_t nZ = activeZ.size(); - for (size_t i=0; i p; - for (size_t k=0; kpush_back(sum); - for (size_t j=1; j> qRead; a[j]->push_back(qRead); @@ -261,15 +261,15 @@ void G4eIonisationParameters::LoadData() } else { // End of set for a shell, fill the map - for (size_t k=0; kpush_back(e[sLocal]); } G4VEMDataSet* set = new G4EMDataSet(shell,eVector,a[k],interp,1.,1.); @@ -285,10 +285,10 @@ void G4eIonisationParameters::LoadData() file.close(); - for (size_t kk=0; kkpush_back(e[sLocal2]); dVector->push_back(d[sLocal2]); } @@ -385,22 +385,22 @@ void G4eIonisationParameters::PrintData() const G4cout << "===== G4eIonisationParameters =====" << G4endl; G4cout << G4endl; - size_t nZ = activeZ.size(); + std::size_t nZ = activeZ.size(); std::map >::const_iterator pos; - for (size_t i=0; iNumberOfComponents(); + std::size_t nShells = dataSet->NumberOfComponents(); - for (size_t k=0; kGetElementVector() ; const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector() ; - const G4int NumberOfElements = material->GetNumberOfElements() ; + const G4int NumberOfElements = (G4int)material->GetNumberOfElements() ; // loop for the elements in the material // to find out average values Z, vF, lF diff --git a/source/processes/electromagnetic/lowenergy/src/G4hNuclearStoppingModel.cc b/source/processes/electromagnetic/lowenergy/src/G4hNuclearStoppingModel.cc index 8e240e8642..e5811e6a6a 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hNuclearStoppingModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hNuclearStoppingModel.cc @@ -154,7 +154,7 @@ G4double G4hNuclearStoppingModel::StoppingPower( G4double z1, G4double m1) const { // Target nucleus - G4int NumberOfElements = material->GetNumberOfElements() ; + std::size_t NumberOfElements = material->GetNumberOfElements() ; if(0 == NumberOfElements) return 0.0 ; const G4ElementVector* theElementVector = @@ -166,7 +166,7 @@ G4double G4hNuclearStoppingModel::StoppingPower( G4double nloss = 0.0; - for (G4int iel=0; ielGetZ(); G4double m2Local = element->GetA()*mole/g ; @@ -179,11 +179,3 @@ G4double G4hNuclearStoppingModel::StoppingPower( } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - - - diff --git a/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc b/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc index 2817c08ce7..e6813ff96d 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc @@ -217,7 +217,7 @@ G4double G4hParametrisedLossModel::StoppingPower(const G4Material* material, { G4double eloss = 0.0; - const G4int numberOfElements = material->GetNumberOfElements() ; + const std::size_t numberOfElements = material->GetNumberOfElements() ; const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector() ; @@ -232,7 +232,7 @@ G4double G4hParametrisedLossModel::StoppingPower(const G4Material* material, G4int nAtoms = 0; const G4int* theAtomsVector = material->GetAtomsVector(); - for (G4int iel=0; ielGetZ() ; eloss +=(eStopingPowerTable->ElectronicStoppingPower(z,kineticEnergy)) @@ -274,7 +274,7 @@ G4double G4hParametrisedLossModel::StoppingPower(const G4Material* material, material->GetElementVector() ; // loop for the elements in the material - for (G4int i=0; iGetZ() ; @@ -308,7 +308,7 @@ G4bool G4hParametrisedLossModel::MolecIsInZiegler1988( const G4State theState = material->GetState() ; if( theState == kStateGas && myFormula == chFormula) return false ; - const size_t numberOfMolecula = 53 ; + const std::size_t numberOfMolecula = 53 ; // The coffecient from Table.4 of Ziegler & Manoyan static const G4double HeEff = 2.8735 ; @@ -370,7 +370,7 @@ G4bool G4hParametrisedLossModel::MolecIsInZiegler1988( } ; // Search for the compaund in the table - for (size_t i=0; iGetElement2DData(Z); - if(nullptr == pv) { - DataCorrupted(Z, logTkin); - } else { - G4double pmin = pv->Value(yymin, logTkin); - G4double pmax = pv->Value(yymax, logTkin); - G4double p0 = pv->Value(0.0, logTkin); - if(p0 <= 0.0) { DataCorrupted(Z, logTkin); } - else { res = pv->FindLinearX((pmin + rand*(pmax - pmin))/p0, logTkin); } - } - return res; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - #endif diff --git a/source/processes/electromagnetic/muons/include/G4MuonToMuonPairProduction.hh b/source/processes/electromagnetic/muons/include/G4MuonToMuonPairProduction.hh new file mode 100644 index 0000000000..d39aad614b --- /dev/null +++ b/source/processes/electromagnetic/muons/include/G4MuonToMuonPairProduction.hh @@ -0,0 +1,78 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4MuonToMuonPairProduction +// +// Author: Siddharth Yajaman +// +// Creation date: 12.07.2022 +// +// Modifications: + +// +// Class Description: +// +// This class implements the muon pair production process for muons. +// it inherites from G4MuPairProduction. +// + +// ------------------------------------------------------------------- +// + +#ifndef G4MuonToMuonPairProduction_h +#define G4MuonToMuonPairProduction_h 1 + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4MuPairProduction.hh" + +class G4MuonToMuonPairProduction : public G4MuPairProduction +{ +public: + + explicit G4MuonToMuonPairProduction(const G4String& processName = "muToMuonPairProd"); + + ~G4MuonToMuonPairProduction() = default; + + G4MuonToMuonPairProduction & operator= + (const G4MuonToMuonPairProduction &right) = delete; + G4MuonToMuonPairProduction(const G4MuonToMuonPairProduction&) = delete; + + void InitialiseEnergyLossProcess(const G4ParticleDefinition*, + const G4ParticleDefinition*) override; + + // print description in html + void ProcessDescription(std::ostream&) const override; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/source/processes/electromagnetic/muons/include/G4MuonToMuonPairProductionModel.hh b/source/processes/electromagnetic/muons/include/G4MuonToMuonPairProductionModel.hh new file mode 100644 index 0000000000..51aa1f38b6 --- /dev/null +++ b/source/processes/electromagnetic/muons/include/G4MuonToMuonPairProductionModel.hh @@ -0,0 +1,103 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4MuonToMuonPairProductionModel +// +// Author: Siddharth Yajaman on the base of Vladimir Ivantchenko code +// +// Creation date: 12.07.2022 +// +// Modifications: +// + +// +// Class Description: +// +// Implementation of mu+mu- pair production by muons +// R. P. Kokoulin, S. R. Kelner, and A. A. Petrukhin, +// in Proceedings of the International Cosmic Ray Conference, +// Salt Lake City, 1999, edited by D. Kieda et al. +// (American Institute of Physics, Melville, NY, 2000), Vol. 2, p. 20 +// +// It inherits from G4MuPairProductionModel +// +// ------------------------------------------------------------------- +// + +#ifndef G4MuonToMuonPairProductionModel_h +#define G4MuonToMuonPairProductionModel_h 1 + +#include "G4MuPairProductionModel.hh" +#include + +class G4MuonToMuonPairProductionModel : public G4MuPairProductionModel +{ +public: + + explicit G4MuonToMuonPairProductionModel(const G4ParticleDefinition* p = nullptr, + const G4String& nam = "muToMuonPairProd"); + + ~G4MuonToMuonPairProductionModel() = default; + + // hide assignment operator and copy constructor + G4MuonToMuonPairProductionModel & operator= + (const G4MuonToMuonPairProductionModel &right) = delete; + G4MuonToMuonPairProductionModel(const G4MuonToMuonPairProductionModel&) = delete; + + G4double + ComputeDMicroscopicCrossSection(G4double tkin, G4double Z, + G4double pairEnergy) override; + + void SampleSecondaries(std::vector*, + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double tmin, + G4double maxEnergy) override; + + G4double U_func(G4double Z, G4double rho2, G4double xi, + G4double Y, G4double pairEnergy, const G4double B=183); + +protected: + + void DataCorrupted(G4int Z, G4double logTkin) const override; + + G4ParticleDefinition* theMuonMinus = nullptr; + G4ParticleDefinition* theMuonPlus = nullptr; + + G4double factorForCross; + G4double minPairEnergy; + G4double muonMass; + G4double mueRatio; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/source/processes/electromagnetic/muons/sources.cmake b/source/processes/electromagnetic/muons/sources.cmake index 5eaaa4adaf..0fa1446cf6 100644 --- a/source/processes/electromagnetic/muons/sources.cmake +++ b/source/processes/electromagnetic/muons/sources.cmake @@ -13,6 +13,8 @@ geant4_add_module(G4muons G4MuMultipleScattering.hh G4MuPairProduction.hh G4MuPairProductionModel.hh + G4MuonToMuonPairProduction.hh + G4MuonToMuonPairProductionModel.hh G4TablesForExtrapolator.hh G4ePairProduction.hh SOURCES @@ -26,6 +28,8 @@ geant4_add_module(G4muons G4MuMultipleScattering.cc G4MuPairProduction.cc G4MuPairProductionModel.cc + G4MuonToMuonPairProduction.cc + G4MuonToMuonPairProductionModel.cc G4TablesForExtrapolator.cc G4ePairProduction.cc) diff --git a/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc b/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc index e397f0f0d3..ffe7da1657 100644 --- a/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc +++ b/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc @@ -135,11 +135,6 @@ G4MuPairProductionModel::G4MuPairProductionModel(const G4ParticleDefinition* p, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4MuPairProductionModel::~G4MuPairProductionModel() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4double G4MuPairProductionModel::MinPrimaryEnergy(const G4Material*, const G4ParticleDefinition*, G4double cut) @@ -239,10 +234,10 @@ G4double G4MuPairProductionModel::ComputMuPairLoss(G4double Z, G4double aaa = G4Log(minPairEnergy); G4double bbb = G4Log(cut); - G4int kkk = (G4int)((bbb-aaa)/ak1+ak2); + G4int kkk = G4lrint((bbb-aaa)/ak1+ak2); if(kkk > 8) { kkk = 8; } else if (kkk < 1) { kkk = 1; } - G4double hhh = (bbb-aaa)/(G4double)kkk; + G4double hhh = (bbb-aaa)/kkk; G4double x = aaa; for (G4int l=0 ; l 8) { kkk = 8; } else if (kkk < 1) { kkk = 1; } - G4double hhh = (bbb-aaa)/(G4double)(kkk); + G4double hhh = (bbb-aaa)/(kkk); G4double x = aaa; for(G4int l=0; lGetElement2DData(Z); + if(nullptr != pv) { + G4double pmin = pv->Value(yymin, logTkin); + G4double pmax = pv->Value(yymax, logTkin); + G4double p0 = pv->Value(0.0, logTkin); + if(p0 <= 0.0) { DataCorrupted(Z, logTkin); } + else { res = pv->FindLinearX((pmin + rand*(pmax - pmin))/p0, logTkin); } + } else { + DataCorrupted(Z, logTkin); + } + return res; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + void G4MuPairProductionModel::DataCorrupted(G4int Z, G4double logTkin) const { G4ExceptionDescription ed; @@ -664,8 +680,7 @@ void G4MuPairProductionModel::DataCorrupted(G4int Z, G4double logTkin) const << " Ekin(MeV)= " << G4Exp(logTkin) << " IsMasterThread= " << IsMaster() << " Model " << GetName(); - G4Exception("G4MuPairProductionModel::()","em0033",FatalException, - ed,""); + G4Exception("G4MuPairProductionModel::()", "em0033", FatalException, ed, ""); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/muons/src/G4MuonToMuonPairProduction.cc b/source/processes/electromagnetic/muons/src/G4MuonToMuonPairProduction.cc new file mode 100644 index 0000000000..a44a145a55 --- /dev/null +++ b/source/processes/electromagnetic/muons/src/G4MuonToMuonPairProduction.cc @@ -0,0 +1,97 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4MuonToMuonPairProduction +// +// Author: Siddharth Yajaman on the base of Vladamir Ivantchenko/Laszlo Urban code +// +// Creation date: 12.07.2022 +// +// Modifications: +// +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4MuonToMuonPairProduction.hh" +#include "G4SystemOfUnits.hh" +#include "G4MuonPlus.hh" +#include "G4VEmModel.hh" +#include "G4MuonToMuonPairProductionModel.hh" +#include "G4ElementData.hh" +#include "G4EmParameters.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4MuonToMuonPairProduction::G4MuonToMuonPairProduction(const G4String& name) + : G4MuPairProduction(name) +{ + SetProcessSubType(49); + SetSecondaryParticle(G4MuonPlus::MuonPlus()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuonToMuonPairProduction::InitialiseEnergyLossProcess( + const G4ParticleDefinition* part, + const G4ParticleDefinition*) +{ + if (isInitialised) { return; } + isInitialised = true; + + theParticle = part; + lowestKinEnergy = std::max(lowestKinEnergy, part->GetPDGMass()*8.0); + + G4VEmModel* mod = EmModel(0); + if(nullptr == mod) { + mod = new G4MuonToMuonPairProductionModel(part); + SetEmModel(mod); + } + + G4VEmFluctuationModel* fm = nullptr; + G4EmParameters* param = G4EmParameters::Instance(); + mod->SetLowEnergyLimit(param->MinKinEnergy()); + mod->SetHighEnergyLimit(param->MaxKinEnergy()); + mod->SetSecondaryThreshold(param->MuHadBremsstrahlungTh()); + AddEmModel(1, mod, fm); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuonToMuonPairProduction::ProcessDescription(std::ostream& out) const +{ + out << " Muon-anti-muon pair production by muons"; + G4MuPairProduction::ProcessDescription(out); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/muons/src/G4MuonToMuonPairProductionModel.cc b/source/processes/electromagnetic/muons/src/G4MuonToMuonPairProductionModel.cc new file mode 100644 index 0000000000..6b17c54940 --- /dev/null +++ b/source/processes/electromagnetic/muons/src/G4MuonToMuonPairProductionModel.cc @@ -0,0 +1,324 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4MuonToMuonPairProductionModel +// +// Author: Siddharth Yajaman on the base of Vladimir Ivantchenko code +// +// Creation date: 12.07.2022 +// +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4MuonToMuonPairProductionModel.hh" +#include "G4PhysicalConstants.hh" +#include "G4SystemOfUnits.hh" +#include "G4EmParameters.hh" +#include "G4MuonMinus.hh" +#include "G4MuonPlus.hh" +#include "Randomize.hh" +#include "G4Material.hh" +#include "G4Element.hh" +#include "G4ParticleChangeForLoss.hh" +#include "G4Log.hh" +#include "G4Exp.hh" +#include +#include + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// static members +// +static const G4int nzdat = 5; +static const G4int zdat[5] = {1, 4, 13, 29, 92}; + +static const G4double xgi[] = +{ 0.0198550717512320, 0.1016667612931865, 0.2372337950418355, 0.4082826787521750, + 0.5917173212478250, 0.7627662049581645, 0.8983332387068135, 0.9801449282487680 }; + +static const G4double wgi[] = +{ 0.0506142681451880, 0.1111905172266870, 0.1568533229389435, 0.1813418916891810, + 0.1813418916891810, 0.1568533229389435, 0.1111905172266870, 0.0506142681451880 }; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +using namespace std; + +G4MuonToMuonPairProductionModel::G4MuonToMuonPairProductionModel( + const G4ParticleDefinition* p, + const G4String& nam) + : G4MuPairProductionModel(p, nam) +{ + theMuonMinus = G4MuonMinus::MuonMinus(); + theMuonPlus = G4MuonPlus::MuonPlus(); + muonMass = theMuonPlus->GetPDGMass(); + minPairEnergy = 2.*muonMass; + mueRatio = muonMass/CLHEP::electron_mass_c2; + factorForCross = 2./(3*CLHEP::pi)* + pow(CLHEP::fine_structure_const*CLHEP::classic_electr_radius/mueRatio, 2); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuonToMuonPairProductionModel::ComputeDMicroscopicCrossSection( + G4double tkin, + G4double Z, + G4double pairEnergy) +// Calculates the differential (D) microscopic cross section +// using the cross section formula of Kelner, Kokoulin and Petrukhin (1999) +// Code written by Siddharth Yajaman (12/07/2022) +{ + if (pairEnergy <= minPairEnergy) + return 0.0; + + G4double totalEnergy = tkin + particleMass; + G4double residEnergy = totalEnergy - pairEnergy; + + if (residEnergy <= muonMass) { return 0.0; } + + G4double a0 = 1.0 / (totalEnergy * residEnergy); + G4double rhomax = 1.0 - 2*muonMass/pairEnergy; + G4double tmnexp = 1. - rhomax; + + if(tmnexp >= 1.0) { return 0.0; } + + G4double tmn = G4Log(tmnexp); + + G4double z2 = Z*Z; + G4double beta = 0.5*pairEnergy*pairEnergy*a0; + G4double xi0 = 0.5*beta; + + // Gaussian integration in ln(1-ro) ( with 8 points) + G4double rho[8]; + G4double rho2[8]; + G4double xi[8]; + G4double xi1[8]; + G4double xii[8]; + + for (G4int i = 0; i < 8; ++i) + { + rho[i] = G4Exp(tmn*xgi[i]) - 1.0; // rho = -asymmetry + rho2[i] = rho[i] * rho[i]; + xi[i] = xi0*(1.0-rho2[i]); + xi1[i] = 1.0 + xi[i]; + xii[i] = 1.0 / xi[i]; + } + + G4double ximax = xi0*(1. - rhomax*rhomax); + + G4double Y = 10 * sqrt(particleMass/totalEnergy); + G4double U[8]; + + for (G4int i = 0; i < 8; ++i) + { + U[i] = U_func(Z, rho2[i], xi[i], Y, pairEnergy); + } + + G4double UMax = U_func(Z, rhomax*rhomax, ximax, Y, pairEnergy); + + G4double sum = 0.0; + for (G4int i = 0; i < 8; ++i) + { + G4double X = 1 + U[i] - UMax; + G4double lnX = G4Log(X); + G4double phi = ((2 + rho2[i])*(1 + beta) + xi[i]*(3 + rho2[i]))* + G4Log(1 + xii[i]) - 1 - 3*rho2[i] + beta*(1 - 2*rho2[i]) + + ((1 + rho2[i])*(1 + 1.5*beta) - xii[i]*(1 + 2*beta) + *(1 - rho2[i]))*G4Log(xi1[i]); + sum += wgi[i]*(1.0 + rho[i])*phi*lnX; + } + + return -tmn*sum*factorForCross*z2*residEnergy/(totalEnergy*pairEnergy); + +} + +G4double G4MuonToMuonPairProductionModel::U_func(G4double ZZ, G4double rho2, + G4double xi, G4double Y, + G4double pairEnergy, + const G4double B) +{ + G4int Z = G4lrint(ZZ); + G4double A27 = nist->GetA27(Z); + G4double Z13 = nist->GetZ13(Z); + static const G4double sqe = std::sqrt(G4Exp(1.0)); + G4double res = (0.65 * B / (A27*Z13) * mueRatio)/ + (1 + (2*sqe*muonMass*muonMass*(B/Z13)*(1 + xi)*(1 + Y)) + /(CLHEP::electron_mass_c2*pairEnergy*(1 - rho2))); + return res; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuonToMuonPairProductionModel::SampleSecondaries( + std::vector* vdp, + const G4MaterialCutsCouple* couple, + const G4DynamicParticle* aDynamicParticle, + G4double tmin, + G4double tmax) +{ + G4double kinEnergy = aDynamicParticle->GetKineticEnergy(); + //G4cout << "--- G4MuonToMuonPairProductionModel::SampleSecondaries E(MeV)= " + // << kinEnergy << " " + // << aDynamicParticle->GetDefinition()->GetParticleName() << G4endl; + G4double totalMomentum = std::sqrt(kinEnergy*(kinEnergy + 2.0*muonMass)); + + G4ThreeVector partDirection = aDynamicParticle->GetMomentumDirection(); + + // select randomly one element constituing the material + const G4Element* anElement = SelectRandomAtom(couple,particle,kinEnergy); + + // define interval of energy transfer + G4double maxPairEnergy = MaxSecondaryEnergyForElement(kinEnergy, + anElement->GetZ()); + G4double maxEnergy = std::min(tmax, maxPairEnergy); + G4double minEnergy = std::max(tmin, minPairEnergy); + + if(minEnergy >= maxEnergy) { return; } + //G4cout << "emin= " << minEnergy << " emax= " << maxEnergy + // << " minPair= " << minPairEnergy << " maxpair= " << maxPairEnergy + // << " ymin= " << ymin << " dy= " << dy << G4endl; + + G4double coeff = G4Log(minPairEnergy/kinEnergy)/ymin; + + // compute limits + G4double yymin = G4Log(minEnergy/kinEnergy)/coeff; + G4double yymax = G4Log(maxEnergy/kinEnergy)/coeff; + + //G4cout << "yymin= " << yymin << " yymax= " << yymax << G4endl; + + // units should not be used, bacause table was built without + G4double logTkin = G4Log(kinEnergy/CLHEP::MeV); + + // sample mu-mu+ pair energy first + + // select sample table via Z + G4int iz1(0), iz2(0); + for(G4int iz=0; iz 0) { iz1 = zdat[iz-1]; } + else { iz1 = iz2; } + break; + } + } + if(0 == iz1) { iz1 = iz2 = zdat[nzdat-1]; } + + G4double pairEnergy = 0.0; + G4int count = 0; + //G4cout << "start loop Z1= " << iz1 << " Z2= " << iz2 << G4endl; + do { + ++count; + // sampling using only one random number + G4double rand = G4UniformRand(); + + G4double x = FindScaledEnergy(iz1, rand, logTkin, yymin, yymax); + if(iz1 != iz2) { + G4double x2 = FindScaledEnergy(iz2, rand, logTkin, yymin, yymax); + G4double lz1= nist->GetLOGZ(iz1); + G4double lz2= nist->GetLOGZ(iz2); + //G4cout << count << ". x= " << x << " x2= " << x2 + // << " Z1= " << iz1 << " Z2= " << iz2 << G4endl; + x += (x2 - x)*(lnZ - lz1)/(lz2 - lz1); + } + //G4cout << "x= " << x << " coeff= " << coeff << G4endl; + pairEnergy = kinEnergy*G4Exp(x*coeff); + + // Loop checking, 03-Aug-2015, Vladimir Ivanchenko + } while((pairEnergy < minEnergy || pairEnergy > maxEnergy) && 10 > count); + + //G4cout << "## pairEnergy(GeV)= " << pairEnergy/GeV + // << " Etot(GeV)= " << totalEnergy/GeV << G4endl; + + // sample r=(mu+mu-)/pairEnergy ( uniformly .....) + G4double rmax = 1 - 2*muonMass/(pairEnergy); + G4double r = rmax * (-1.+2.*G4UniformRand()) ; + + // compute energies from pairEnergy,r + G4double muMinusEnergy = (1.-r)*pairEnergy*0.5; + G4double muPlusEnergy = pairEnergy - muMinusEnergy; + + // Sample angles + G4ThreeVector muMinusDirection, muPlusDirection; + // + GetAngularDistribution()->SamplePairDirections(aDynamicParticle, + muMinusEnergy, muPlusEnergy, + muMinusDirection, muPlusDirection); + // create G4DynamicParticle object for mu+mu- + muMinusEnergy = std::max(muMinusEnergy - muonMass, 0.0); + muPlusEnergy = std::max(muPlusEnergy - muonMass, 0.0); + G4DynamicParticle* aParticle1 = + new G4DynamicParticle(theMuonMinus,muMinusDirection,muMinusEnergy); + G4DynamicParticle* aParticle2 = + new G4DynamicParticle(theMuonPlus,muPlusDirection,muPlusEnergy); + // Fill output vector + vdp->push_back(aParticle1); + vdp->push_back(aParticle2); + + // primary change + kinEnergy -= pairEnergy; + partDirection *= totalMomentum; + partDirection -= (aParticle1->GetMomentum() + aParticle2->GetMomentum()); + partDirection = partDirection.unit(); + + // if energy transfer is higher than threshold (very high by default) + // then stop tracking the primary particle and create a new secondary + if (pairEnergy > SecondaryThreshold()) { + fParticleChange->ProposeTrackStatus(fStopAndKill); + fParticleChange->SetProposedKineticEnergy(0.0); + G4DynamicParticle* newdp = + new G4DynamicParticle(particle, partDirection, kinEnergy); + vdp->push_back(newdp); + } else { // continue tracking the primary e-/e+ otherwise + fParticleChange->SetProposedMomentumDirection(partDirection); + fParticleChange->SetProposedKineticEnergy(kinEnergy); + } + //G4cout << "--- G4MuonToMuonPairProductionModel::SampleSecondaries done" << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuonToMuonPairProductionModel::DataCorrupted(G4int Z, G4double logTkin) const +{ + G4ExceptionDescription ed; + ed << "G4ElementData is not properly initialized Z= " << Z + << " Ekin(MeV)= " << G4Exp(logTkin) + << " IsMasterThread= " << IsMaster() + << " Model " << GetName(); + G4Exception("G4MuonToMuonPairProductionModel","em0033",FatalException,ed,""); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/muons/src/G4TablesForExtrapolator.cc b/source/processes/electromagnetic/muons/src/G4TablesForExtrapolator.cc index 69d8bff702..bdb7fa17c0 100644 --- a/source/processes/electromagnetic/muons/src/G4TablesForExtrapolator.cc +++ b/source/processes/electromagnetic/muons/src/G4TablesForExtrapolator.cc @@ -199,10 +199,9 @@ void G4TablesForExtrapolator::Initialisation() if(verbose>1) { G4cout << "### G4TablesForExtrapolator::Initialisation" << G4endl; } - G4int num = G4Material::GetNumberOfMaterials(); + G4int num = (G4int)G4Material::GetNumberOfMaterials(); if(nmat == num) { return; } nmat = num; - nmat = G4Material::GetNumberOfMaterials(); cuts.resize(nmat, DBL_MAX); couples.resize(nmat, nullptr); @@ -278,7 +277,7 @@ G4PhysicsTable* G4TablesForExtrapolator::PrepareTable(G4PhysicsTable* ptr) { G4PhysicsTable* table = ptr; if(nullptr == ptr) { table = new G4PhysicsTable(); } - G4int n = table->length(); + G4int n = (G4int)table->length(); for(G4int i=n; ipush_back(v); diff --git a/source/processes/electromagnetic/pii/History b/source/processes/electromagnetic/pii/History index 6baae0bf7c..12c6c342d0 100644 --- a/source/processes/electromagnetic/pii/History +++ b/source/processes/electromagnetic/pii/History @@ -1,9 +1,13 @@ # Category empii History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-18 Gabriele Cosmo (empii-V11-00-01) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2021-12-10 Ben Morgan (empii-V11-00-00) - Change to new Markdown History format diff --git a/source/processes/electromagnetic/pii/src/G4CompositeDataSet.cc b/source/processes/electromagnetic/pii/src/G4CompositeDataSet.cc index 904ba171ec..e3d028c2ca 100644 --- a/source/processes/electromagnetic/pii/src/G4CompositeDataSet.cc +++ b/source/processes/electromagnetic/pii/src/G4CompositeDataSet.cc @@ -88,18 +88,18 @@ G4double G4CompositeDataSet::FindValue(G4double energy, G4int componentId) const void G4CompositeDataSet::PrintData(void) const { - const size_t n(NumberOfComponents()); + const G4int n = (G4int)NumberOfComponents(); G4cout << "The data set has " << n << " components" << G4endl; G4cout << G4endl; - size_t i(0); + G4int i(0); while (iPrintData(); - i++; + ++i; } } @@ -127,7 +127,7 @@ G4bool G4CompositeDataSet::LoadData(const G4String& argFileName) { CleanUpComponents(); - for (G4int z(minZ); zClone(), unitEnergies, unitData); if (!component->LoadData(argFileName)) @@ -144,7 +144,7 @@ G4bool G4CompositeDataSet::LoadData(const G4String& argFileName) G4bool G4CompositeDataSet::SaveData(const G4String& argFileName) const { - for (G4int z=minZ; zempty()) return 0; if (energy <= (*energies)[0]) return (*data)[0]; - size_t i = energies->size()-1; + std::size_t i = energies->size()-1; if (energy >= (*energies)[i]) return (*data)[i]; - G4double interpolated = algorithm->Calculate(energy,FindLowerBound(energy),*energies,*data); + G4double interpolated = algorithm->Calculate(energy,(G4int)FindLowerBound(energy),*energies,*data); return interpolated; } @@ -135,8 +135,8 @@ void G4DataSet::PrintData(void) const } else { - size_t size = energies->size(); - for (size_t i(0); isize(); + for (std::size_t i(0); isize() - 1); + std::size_t lowerBound = 0; + std::size_t upperBound(energies->size() - 1); while (lowerBound <= upperBound) { - size_t midBin((lowerBound + upperBound) / 2); + std::size_t midBin((lowerBound + upperBound) / 2); if (x < (*energies)[midBin]) upperBound = midBin - 1; else lowerBound = midBin + 1; @@ -316,14 +316,14 @@ size_t G4DataSet::FindLowerBound(G4double x) const } -size_t G4DataSet::FindLowerBound(G4double x, G4DataVector* values) const +std::size_t G4DataSet::FindLowerBound(G4double x, G4DataVector* values) const { - size_t lowerBound = 0;; - size_t upperBound(values->size() - 1); + std::size_t lowerBound = 0;; + std::size_t upperBound(values->size() - 1); while (lowerBound <= upperBound) { - size_t midBin((lowerBound + upperBound) / 2); + std::size_t midBin((lowerBound + upperBound) / 2); if (x < (*values)[midBin]) upperBound = midBin - 1; else lowerBound = midBin + 1; @@ -354,11 +354,11 @@ void G4DataSet::BuildPdf() pdf = new G4DataVector; G4Integrator integrator; - G4int nData = data->size(); + std::size_t nData = data->size(); pdf->push_back(0.); // Integrate the data distribution - G4int i; + std::size_t i; G4double totalSum = 0.; for (i=1; isize(); - for (size_t i=0; isize(); + for (std::size_t i=0; iClone(); @@ -271,7 +271,7 @@ G4double G4PixeCrossSectionHandler::FindValue(G4int Z, G4double energy, G4IDataSet* dataSet = (*pos).second; if (shellIndex >= 0) { - G4int nComponents = dataSet->NumberOfComponents(); + G4int nComponents = (G4int)dataSet->NumberOfComponents(); if(shellIndex < nComponents) // The value is the cross section for shell component at given energy value = dataSet->GetComponent(shellIndex)->FindValue(energy); @@ -302,9 +302,9 @@ G4double G4PixeCrossSectionHandler::ValueForMaterial(const G4Material* material, const G4ElementVector* elementVector = material->GetElementVector(); const G4double* nAtomsPerVolume = material->GetVecNbOfAtomsPerVolume(); - G4int nElements = material->GetNumberOfElements(); + std::size_t nElements = material->GetNumberOfElements(); - for (G4int i=0 ; iGetZ(); G4double elementValue = FindValue(Z,energy); @@ -365,10 +365,10 @@ G4double G4PixeCrossSectionHandler::ValueForMaterial(const G4Material* material, const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + std::size_t numOfCouples = theCoupleTable->GetTableSize(); - for (size_t m=0; mGetNumberOfElements(); + G4int nElements = (G4int)material->GetNumberOfElements(); // Special case: the material consists of one element if (nElements == 1) @@ -462,13 +462,13 @@ G4int G4PixeCrossSectionHandler::SelectRandomAtom(const G4Material* material, // Composite material const G4ElementVector* elementVector = material->GetElementVector(); - size_t materialIndex = material->GetIndex(); + std::size_t materialIndex = material->GetIndex(); G4IDataSet* materialSet = (*crossSections)[materialIndex]; G4double materialCrossSection0 = 0.0; G4DataVector cross; cross.clear(); - for ( G4int i=0; i < nElements; i++ ) + for ( G4int i=0; i < nElements; ++i ) { G4double cr = materialSet->GetComponent(i)->FindValue(e); materialCrossSection0 += cr; @@ -477,7 +477,7 @@ G4int G4PixeCrossSectionHandler::SelectRandomAtom(const G4Material* material, G4double random = G4UniformRand() * materialCrossSection0; - for (G4int k=0 ; k < nElements ; k++ ) + for (G4int k=0 ; k < nElements ; ++k ) { if (random <= cross[k]) return (G4int) (*elementVector)[k]->GetZ(); } @@ -507,7 +507,7 @@ G4int G4PixeCrossSectionHandler::SelectRandomAtom(const G4Material* material, { // Composite material - size_t materialIndex = couple->GetIndex(); + std::size_t materialIndex = couple->GetIndex(); G4IDataSet* materialSet = (*crossSections)[materialIndex]; G4double materialCrossSection0 = 0.0; @@ -557,8 +557,8 @@ G4int G4PixeCrossSectionHandler::SelectRandomShell(G4int Z, G4double e) const // if (pos != dataMap.end()) dataSet = pos->second; if (pos != dataMap.end()) dataSet = (*pos).second; - size_t nShells = dataSet->NumberOfComponents(); - for (size_t i=0; iNumberOfComponents(); + for (G4int i=0; iGetComponent(i); if (shellDataSet != 0) @@ -581,15 +581,15 @@ void G4PixeCrossSectionHandler::ActiveElements() FatalException, "no MaterialTable found"); - G4int nMaterials = G4Material::GetNumberOfMaterials(); + std::size_t nMaterials = G4Material::GetNumberOfMaterials(); - for (G4int mat=0; matGetElementVector(); - const G4int nElements = material->GetNumberOfElements(); + const std::size_t nElements = material->GetNumberOfElements(); - for (G4int iEl=0; iElGetZ(); if (!(activeZ.contains(Z)) && Z >= zMin && Z <= zMax) @@ -615,7 +615,7 @@ G4int G4PixeCrossSectionHandler::NumberOfComponents(G4int Z) const if (pos!= dataMap.end()) { G4IDataSet* dataSet = (*pos).second; - n = dataSet->NumberOfComponents(); + n = (G4int)dataSet->NumberOfComponents(); } else { @@ -636,9 +636,9 @@ G4PixeCrossSectionHandler::BuildCrossSectionsForMaterials(const G4DataVector& en std::vector* matCrossSections = new std::vector; //const G4ProductionCutsTable* theCoupleTable=G4ProductionCutsTable::GetProductionCutsTable(); - //size_t numOfCouples = theCoupleTable->GetTableSize(); + //std::size_t numOfCouples = theCoupleTable->GetTableSize(); - size_t nOfBins = energyVector.size(); + std::size_t nOfBins = energyVector.size(); const G4IInterpolator* interpolationAlgo = CreateInterpolation(); const G4MaterialTable* materialTable = G4Material::GetMaterialTable(); @@ -648,12 +648,12 @@ G4PixeCrossSectionHandler::BuildCrossSectionsForMaterials(const G4DataVector& en FatalException, "no MaterialTable found"); - G4int nMaterials = G4Material::GetNumberOfMaterials(); + std::size_t nMaterials = G4Material::GetNumberOfMaterials(); - for (G4int mat=0; matGetNumberOfElements(); + G4int nElements = (G4int)material->GetNumberOfElements(); const G4ElementVector* elementVector = material->GetElementVector(); const G4double* nAtomsPerVolume = material->GetAtomicNumDensityVector(); @@ -661,7 +661,7 @@ G4PixeCrossSectionHandler::BuildCrossSectionsForMaterials(const G4DataVector& en G4IDataSet* setForMat = new G4CompositeDataSet(algo,1.,1.); - for (G4int i=0; iGetZ(); G4double density = nAtomsPerVolume[i]; @@ -670,7 +670,7 @@ G4PixeCrossSectionHandler::BuildCrossSectionsForMaterials(const G4DataVector& en data = new G4DataVector; - for (size_t bin=0; binpush_back(e); diff --git a/source/processes/electromagnetic/pii/src/G4PixeShellDataSet.cc b/source/processes/electromagnetic/pii/src/G4PixeShellDataSet.cc index 0d4bd6326f..33642dd34b 100644 --- a/source/processes/electromagnetic/pii/src/G4PixeShellDataSet.cc +++ b/source/processes/electromagnetic/pii/src/G4PixeShellDataSet.cc @@ -69,9 +69,9 @@ G4PixeShellDataSet::G4PixeShellDataSet(G4int zeta, shellName.push_back("l"); shellName.push_back("m"); - size_t sizeK = modelK.size(); - size_t sizeL = modelL.size(); - size_t sizeM = modelM.size(); + std::size_t sizeK = modelK.size(); + std::size_t sizeL = modelL.size(); + std::size_t sizeM = modelM.size(); if (sizeK > 0) subShellName.push_back("k"); @@ -118,18 +118,18 @@ G4double G4PixeShellDataSet::FindValue(G4double energy, G4int /* componentId */) void G4PixeShellDataSet::PrintData(void) const { - const size_t n = NumberOfComponents(); + const G4int n = (G4int)NumberOfComponents(); G4cout << "The data set has " << n << " components" << G4endl; G4cout << G4endl; - size_t i = 0; + G4int i = 0; while (i < n) { G4cout << "--- Component " << i << " ---" << G4endl; GetComponent(i)->PrintData(); - i++; + ++i; } } @@ -162,9 +162,9 @@ G4bool G4PixeShellDataSet::LoadData(const G4String& file) // Load shell cross sections - G4int nShells = subShellName.size(); + std::size_t nShells = subShellName.size(); - for (G4int subShellIndex=0; subShellIndexGetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); cutForDelta.clear(); cutForGamma.clear(); - for (size_t j=0; jGetMaterialCutsCouple(j); @@ -368,7 +368,7 @@ void G4hImpactIonisation::BuildLossTable(const G4ParticleDefinition& particleDef const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); if ( theLossTable) { @@ -379,7 +379,7 @@ void G4hImpactIonisation::BuildLossTable(const G4ParticleDefinition& particleDef theLossTable = new G4PhysicsTable(numOfCouples); // loop for materials - for (size_t j=0; jGetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); if (theMeanFreePathTable) { @@ -473,7 +473,7 @@ void G4hImpactIonisation::BuildLambdaTable(const G4ParticleDefinition& particleD // loop for materials - for (size_t j=0 ; j < numOfCouples; j++) { + for (G4int j=0 ; j < numOfCouples; ++j) { //create physics vector then fill it .... G4PhysicsLogVector* aVector = new G4PhysicsLogVector(LowestKineticEnergy, @@ -486,7 +486,7 @@ void G4hImpactIonisation::BuildLambdaTable(const G4ParticleDefinition& particleD const G4ElementVector* theElementVector = material->GetElementVector() ; const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector(); - const G4int numberOfElements = material->GetNumberOfElements() ; + const G4int numberOfElements = (G4int)material->GetNumberOfElements() ; // get the electron kinetic energy cut for the actual material, // it will be used in ComputeMicroscopicCrossSection @@ -1040,13 +1040,13 @@ G4VParticleChange* G4hImpactIonisation::PostStepDoIt(const G4Track& track, // fill aParticleChange G4double finalKineticEnergy = kineticEnergy - deltaKineticEnergy; - size_t totalNumber = 1; + std::size_t totalNumber = 1; // Atomic relaxation // ---- MGP ---- Temporary limitation: currently PIXE only for incident protons - size_t nSecondaries = 0; + std::size_t nSecondaries = 0; std::vector* secondaryVector = 0; if (definition == G4Proton::ProtonDefinition()) @@ -1127,7 +1127,7 @@ G4VParticleChange* G4hImpactIonisation::PostStepDoIt(const G4Track& track, if (secondaryVector != 0) { nSecondaries = secondaryVector->size(); - for (size_t i = 0; iGetElementVector(); - G4int numberOfElements = material->GetNumberOfElements(); + G4int numberOfElements = (G4int)material->GetNumberOfElements(); for (G4int i = 0; i 0) { @@ -1599,7 +1599,7 @@ G4double G4hImpactIonisation::ElectronicLossFluctuation( { dp3 = G4float(p3) ; corrfac = dp3/G4float(nmaxCont2) ; - p3 = nmaxCont2 ; + p3 = G4int(nmaxCont2) ; } else corrfac = 1. ; @@ -1619,7 +1619,7 @@ G4double G4hImpactIonisation::ElectronicLossFluctuation( p1 = std::max(0,G4int(G4RandGauss::shoot(a1,siga)+0.5)); } else - p1 = G4Poisson(a1); + p1 = (G4int)G4Poisson(a1); // excitation type 2 if(a2>alim) @@ -1628,7 +1628,7 @@ G4double G4hImpactIonisation::ElectronicLossFluctuation( p2 = std::max(0,G4int(G4RandGauss::shoot(a2,siga)+0.5)); } else - p2 = G4Poisson(a2); + p2 = (G4int)G4Poisson(a2); loss = p1*e1Fluct+p2*e2Fluct; @@ -1647,7 +1647,7 @@ G4double G4hImpactIonisation::ElectronicLossFluctuation( p3 = std::max(0,G4int(G4RandGauss::shoot(a3,siga)+0.5)); } else - p3 = G4Poisson(a3); + p3 = (G4int)G4Poisson(a3); lossc = 0.; if(p3 > 0) @@ -1741,11 +1741,11 @@ void G4hImpactIonisation::PrintInfoDefinition() const const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); // loop for materials - for (size_t j=0 ; j < numOfCouples; j++) { + for (G4int j=0 ; j < numOfCouples; ++j) { const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(j); const G4Material* material= couple->GetMaterial(); diff --git a/source/processes/electromagnetic/pii/src/G4hRDEnergyLoss.cc b/source/processes/electromagnetic/pii/src/G4hRDEnergyLoss.cc index 23a2b0ee6d..c0defde16d 100644 --- a/source/processes/electromagnetic/pii/src/G4hRDEnergyLoss.cc +++ b/source/processes/electromagnetic/pii/src/G4hRDEnergyLoss.cc @@ -257,7 +257,7 @@ void G4hRDEnergyLoss::BuildDEDXTable(const G4ParticleDefinition& aParticleType) const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + std::size_t numOfCouples = theCoupleTable->GetTableSize(); // create/fill proton or antiproton tables depending on the charge Charge = aParticleType.GetPDGCharge()/eplus; @@ -309,7 +309,7 @@ void G4hRDEnergyLoss::BuildDEDXTable(const G4ParticleDefinition& aParticleType) G4bool isOutRange ; G4PhysicsTable* pointer ; - for (size_t J=0; JGetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); if( Charge >0.) { @@ -408,7 +408,7 @@ void G4hRDEnergyLoss::BuildRangeTable(const G4ParticleDefinition& aParticleType) // loop for materials - for (size_t J=0; JGetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); if(&aParticleType == G4Proton::Proton()) { @@ -457,7 +457,7 @@ void G4hRDEnergyLoss::BuildTimeTables(const G4ParticleDefinition& aParticleType) theProperTimeTable = theProperTimepbarTable ; } - for (size_t J=0; JGetTableSize(); + G4int numOfCouples = (G4int)G4ProductionCutsTable::GetProductionCutsTable()->GetTableSize(); if(Charge>0.) { @@ -857,7 +857,7 @@ void G4hRDEnergyLoss::BuildRangeCoeffBTable( const G4ParticleDefinition& ) // create table for coefficients "B" G4int numOfCouples = - G4ProductionCutsTable::GetProductionCutsTable()->GetTableSize(); + (G4int)G4ProductionCutsTable::GetProductionCutsTable()->GetTableSize(); if(Charge>0.) { @@ -933,7 +933,7 @@ void G4hRDEnergyLoss::BuildRangeCoeffCTable( const G4ParticleDefinition& ) // create table for coefficients "C" G4int numOfCouples = - G4ProductionCutsTable::GetProductionCutsTable()->GetTableSize(); + (G4int)G4ProductionCutsTable::GetProductionCutsTable()->GetTableSize(); if(Charge>0.) { @@ -1007,7 +1007,7 @@ BuildInverseRangeTable(const G4ParticleDefinition& aParticleType) const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + std::size_t numOfCouples = theCoupleTable->GetTableSize(); if(&aParticleType == G4Proton::Proton()) { @@ -1038,11 +1038,11 @@ BuildInverseRangeTable(const G4ParticleDefinition& aParticleType) } // loop for materials - for (size_t i=0; iGetVectorLength(); + std::size_t nbins = pv->GetVectorLength(); G4double elow = pv->GetLowEdgeEnergy(0); G4double ehigh = pv->GetLowEdgeEnergy(nbins-1); G4double rlow = pv->GetValue(elow, b); @@ -1069,10 +1069,10 @@ BuildInverseRangeTable(const G4ParticleDefinition& aParticleType) G4double range1 = rlow; G4double energy2 = elow; G4double range2 = rlow; - size_t ilow = 0; - size_t ihigh; + std::size_t ilow = 0; + std::size_t ihigh; - for (size_t j=1; jGetLowEdgeEnergy(j); @@ -1156,9 +1156,9 @@ G4bool G4hRDEnergyLoss::CutsWhereModified() G4bool wasModified = false; const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); - for (size_t j=0; jGetMaterialCutsCouple(j)->IsRecalcNeeded()) { wasModified = true; break; diff --git a/source/processes/electromagnetic/polarisation/History b/source/processes/electromagnetic/polarisation/History index 5cd405a562..29604c2936 100644 --- a/source/processes/electromagnetic/polarisation/History +++ b/source/processes/electromagnetic/polarisation/History @@ -1,9 +1,16 @@ # Category empolar History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-23 Gabriele Cosmo (empolar-V11-00-03) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-07-19 Vladimir Ivanchenko (empolar-V11-00-02) +- Fixed Coverity warning in G4PolarizationManager ## 2022-01-18 Jonas Hahnfeld (empolar-V11-00-01) - Prefer pointer to `const G4Material` if possible diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizationManager.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizationManager.cc index 2c28563162..7463826a93 100644 --- a/source/processes/electromagnetic/polarisation/src/G4PolarizationManager.cc +++ b/source/processes/electromagnetic/polarisation/src/G4PolarizationManager.cc @@ -75,7 +75,7 @@ void G4PolarizationManager::ListVolumes() << " registered volume(s) : " << G4endl; if(!fActivated) G4cout << " but polarization deactivated " << G4endl; - for(auto vp : fVolumePolarizations) + for(auto& vp : fVolumePolarizations) { G4cout << vp.first->GetName() << " : " << vp.second << G4endl; } diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizedAnnihilation.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizedAnnihilation.cc index 327d404506..4b2e4a6735 100644 --- a/source/processes/electromagnetic/polarisation/src/G4PolarizedAnnihilation.cc +++ b/source/processes/electromagnetic/polarisation/src/G4PolarizedAnnihilation.cc @@ -172,7 +172,7 @@ G4double G4PolarizedAnnihilation::ComputeSaturationFactor(const G4Track& track) G4cout << " Material " << aMaterial << G4endl; } - size_t midx = CurrentMaterialCutsCoupleIndex(); + std::size_t midx = CurrentMaterialCutsCoupleIndex(); const G4PhysicsVector* aVector = nullptr; const G4PhysicsVector* bVector = nullptr; if(midx < fAsymmetryTable->size()) @@ -246,8 +246,8 @@ void G4PolarizedAnnihilation::BuildAsymmetryTables( // Access to materials const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - for(size_t i = 0; i < numOfCouples; ++i) + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); + for(G4int i = 0; i < numOfCouples; ++i) { if(fAsymmetryTable->GetFlag(i)) { @@ -258,7 +258,7 @@ void G4PolarizedAnnihilation::BuildAsymmetryTables( // use same parameters as for lambda G4PhysicsVector* aVector = LambdaPhysicsVector(couple); G4PhysicsVector* tVector = LambdaPhysicsVector(couple); - G4int nn = aVector->GetVectorLength(); + G4int nn = (G4int)aVector->GetVectorLength(); for(G4int j = 0; j < nn; ++j) { G4double energy = aVector->Energy(j); diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizedBremsstrahlungModel.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizedBremsstrahlungModel.cc index 6ea5165f40..5aa2f0a325 100644 --- a/source/processes/electromagnetic/polarisation/src/G4PolarizedBremsstrahlungModel.cc +++ b/source/processes/electromagnetic/polarisation/src/G4PolarizedBremsstrahlungModel.cc @@ -66,7 +66,7 @@ void G4PolarizedBremsstrahlungModel::SampleSecondaries( const G4DynamicParticle* dp, G4double tmin, G4double maxEnergy) { G4SeltzerBergerModel::SampleSecondaries(vdp, couple, dp, tmin, maxEnergy); - G4int num = vdp->size(); + std::size_t num = vdp->size(); if(num > 0) { @@ -107,7 +107,7 @@ void G4PolarizedBremsstrahlungModel::SampleSecondaries( G4Exception("G4PolarizedBremsstrahlungModel::SampleSecondaries", "pol001", JustWarning, ed); } - for(G4int i = 0; i < num; ++i) + for(std::size_t i = 0; i < num; ++i) { G4StokesVector photonPol = fCrossSectionCalculator->GetPol3(); photonPol.SetPhoton(); diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizedCompton.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizedCompton.cc index add6afc5d4..89c08423b3 100644 --- a/source/processes/electromagnetic/polarisation/src/G4PolarizedCompton.cc +++ b/source/processes/electromagnetic/polarisation/src/G4PolarizedCompton.cc @@ -226,7 +226,7 @@ G4double G4PolarizedCompton::ComputeSaturationFactor(const G4Track& aTrack) G4cout << " Material " << aMaterial << G4endl; } - size_t midx = CurrentMaterialCutsCoupleIndex(); + std::size_t midx = CurrentMaterialCutsCoupleIndex(); const G4PhysicsVector* aVector = nullptr; if(midx < theAsymmetryTable->size()) { @@ -295,7 +295,7 @@ void G4PolarizedCompton::BuildAsymmetryTable(const G4ParticleDefinition& part) // Access to materials const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); if(!theAsymmetryTable) { return; @@ -306,7 +306,7 @@ void G4PolarizedCompton::BuildAsymmetryTable(const G4ParticleDefinition& part) G4PhysicsLogVector* aVector = nullptr; G4PhysicsLogVector* bVector = nullptr; - for(size_t i = 0; i < numOfCouples; ++i) + for(G4int i = 0; i < numOfCouples; ++i) { if(theAsymmetryTable->GetFlag(i)) { diff --git a/source/processes/electromagnetic/polarisation/src/G4PolarizedIonisation.cc b/source/processes/electromagnetic/polarisation/src/G4PolarizedIonisation.cc index 5a3508f661..9e41c6ce1e 100644 --- a/source/processes/electromagnetic/polarisation/src/G4PolarizedIonisation.cc +++ b/source/processes/electromagnetic/polarisation/src/G4PolarizedIonisation.cc @@ -228,7 +228,7 @@ G4double G4PolarizedIonisation::ComputeSaturationFactor(const G4Track& track) G4cout << " Material " << aMaterial << G4endl; } - size_t midx = CurrentMaterialCutsCoupleIndex(); + std::size_t midx = CurrentMaterialCutsCoupleIndex(); const G4PhysicsVector* aVector = nullptr; const G4PhysicsVector* bVector = nullptr; if(midx < fAsymmetryTable->size()) @@ -304,9 +304,9 @@ void G4PolarizedIonisation::BuildAsymmetryTables( const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); - for(size_t j = 0; j < numOfCouples; ++j) + for(G4int j = 0; j < numOfCouples; ++j) { // get cut value const G4MaterialCutsCouple* couple = @@ -317,9 +317,9 @@ void G4PolarizedIonisation::BuildAsymmetryTables( // create physics vectors then fill it (same parameters as lambda vector) G4PhysicsVector* ptrVectorA = LambdaPhysicsVector(couple, cut); G4PhysicsVector* ptrVectorB = LambdaPhysicsVector(couple, cut); - size_t bins = ptrVectorA->GetVectorLength(); + std::size_t bins = ptrVectorA->GetVectorLength(); - for(size_t i = 0; i < bins; ++i) + for(std::size_t i = 0; i < bins; ++i) { G4double lowEdgeEnergy = ptrVectorA->Energy(i); G4double tasm = 0.; diff --git a/source/processes/electromagnetic/standard/History b/source/processes/electromagnetic/standard/History index 1cf1c5c7e8..0be7a15a7c 100644 --- a/source/processes/electromagnetic/standard/History +++ b/source/processes/electromagnetic/standard/History @@ -1,9 +1,56 @@ # Category emstand History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-23 Gabriele Cosmo (emstand-V11-00-21) +- Fixed more compilation warnings for implicit type conversions. + +## 2022-11-18 Gabriele Cosmo (emstand-V11-00-20) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-10 V.Ivanchenko (emstand-V11-00-19) + Fixed stopping power problem identified by T. Toshita +- G4IonICRU73Data - fixed stopping power parameterisation below lowest + energy point; apply unit factor to material vector and not to + data inside each element vector; include debug printouts protected + by verbosity; implement data tables for materials and not + material-cut-couples; provide non-zero dEdx for ions with Z > 80 +- G4LindhardSorensenIonModel - fixed CorrectionAlongStep() computations + at low energy + +## 2022-10-18 V.Ivanchenko (emstand-V11-00-18) +- G4UrbanMscModel - L.Urban remove computation and use of rangecut for + step limitation; this affect only EM option3 physics making + results more close to option4 and there is some CPU advantage + +## 2022-10-18 V.Ivanchenko (emstand-V11-00-17) +- G4PEEffectFluoModel - implement usage PhotoeffectBelowKShell flag, allowing + enable/disable photo-electron production below K-shell of an atom; + by default this is enabled, so effect on results; if it will be disabled + some CPU improvement may be expected +- G4BetheBlochModel, G4BraggIonModel, G4LindhardSorensenIonModel - + use the same computation of effective charge and energy at a step + inside CorrectionAlongStep(..) method; improved range of ions in the default + EM physics configuration + +## 2022-10-12 V.Ivanchenko (emstand-V11-00-16) +- G4hIonisation, G4ionIonisation - updated initialisation to be coherent with + possible creation of combined DNA/standard Physics List: do not modify + low energy limit for a model; define high energy limit considering + high energy limit set in the Physics List and the mass of the particle + +## 2022-10-07 V.Ivanchenko (emstand-V11-00-15) +- G4AtimaEnergyLossModel, G4BetheBlochModel, G4BraggIonModel, + G4LindhardSorensenIonModel - do not set effective charge to the model + of energy loss fluctuation inside CorrectionAlongStep(...) method, + it is done by G4VEnergyLossProcess, this addresses problem #2495 + +## 2022-08-16 V.Ivanchenko (emstand-V11-00-14) +- G4UrbanMscModel - L.Urban optimized the code keeping algorithms unchaged ## 2022-05-24 V.Ivanchenko (emstand-V11-00-13) - G4EmStandUtil - new utility class diff --git a/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh b/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh index 3f6cb42f2a..04c9ac813b 100644 --- a/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh +++ b/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh @@ -164,7 +164,7 @@ private: G4double mass = 0.0; G4double spin = 0.0; G4double chargeSquare = 1.0; - G4double effChargeSquare = 1.0; + G4double heChargeSquare = 4.0; G4double massRate = 1.0; G4double ratio = 1.0; G4double HeMass; @@ -176,7 +176,6 @@ private: G4int iMolecula = -1; // index in the molecula's table G4int iASTAR = -1; // index in ASTAR G4int iICRU90 = -1; - G4bool isIon = false; G4bool isAlpha = false; }; diff --git a/source/processes/electromagnetic/standard/include/G4IonICRU73Data.hh b/source/processes/electromagnetic/standard/include/G4IonICRU73Data.hh index 0161a85b5f..05c8e1ff7a 100644 --- a/source/processes/electromagnetic/standard/include/G4IonICRU73Data.hh +++ b/source/processes/electromagnetic/standard/include/G4IonICRU73Data.hh @@ -74,7 +74,8 @@ public: private: - void ReadMaterialData(const G4String& name, G4bool type); + void ReadMaterialData(const G4Material* mat, const G4double fact, + const G4bool type); void ReadElementData(const G4Material* mat, G4bool type); @@ -89,8 +90,9 @@ private: G4double fEmax; std::vector fMatIndex; + // projectile Z <= 80, target element Z <= 92 std::vector* fMatData[81] = {nullptr}; - G4PhysicsLogVector* fElmData[81][81] = {{nullptr}}; + G4PhysicsLogVector* fElmData[81][93] = {{nullptr}}; G4PhysicsFreeVector* fVector = nullptr; G4int fNmat = 0; diff --git a/source/processes/electromagnetic/standard/include/G4PAIModel.hh b/source/processes/electromagnetic/standard/include/G4PAIModel.hh index 6bdf85b1e2..23868423ea 100644 --- a/source/processes/electromagnetic/standard/include/G4PAIModel.hh +++ b/source/processes/electromagnetic/standard/include/G4PAIModel.hh @@ -176,8 +176,8 @@ inline void G4PAIModel::SetVerboseLevel(G4int verbose) inline G4int G4PAIModel::FindCoupleIndex(const G4MaterialCutsCouple* couple) { G4int idx = -1; - size_t jMatMax = fMaterialCutsCoupleVector.size(); - for(size_t jMat = 0;jMat < jMatMax; ++jMat) { + G4int jMatMax = (G4int)fMaterialCutsCoupleVector.size(); + for(G4int jMat = 0;jMat < jMatMax; ++jMat) { if(couple == fMaterialCutsCoupleVector[jMat]) { idx = jMat; break; @@ -198,10 +198,3 @@ inline void G4PAIModel::SetParticle(const G4ParticleDefinition* p) } #endif - - - - - - - diff --git a/source/processes/electromagnetic/standard/include/G4PAIPhotModel.hh b/source/processes/electromagnetic/standard/include/G4PAIPhotModel.hh index 1651550a96..658fe2c5a8 100644 --- a/source/processes/electromagnetic/standard/include/G4PAIPhotModel.hh +++ b/source/processes/electromagnetic/standard/include/G4PAIPhotModel.hh @@ -170,8 +170,8 @@ inline void G4PAIPhotModel::SetVerboseLevel(G4int verbose) inline G4int G4PAIPhotModel::FindCoupleIndex(const G4MaterialCutsCouple* couple) { G4int idx = -1; - size_t jMatMax = fMaterialCutsCoupleVector.size(); - for(size_t jMat = 0;jMat < jMatMax; ++jMat) { + G4int jMatMax = (G4int)fMaterialCutsCoupleVector.size(); + for(G4int jMat = 0;jMat < jMatMax; ++jMat) { if(couple == fMaterialCutsCoupleVector[jMat]) { idx = jMat; break; @@ -192,10 +192,3 @@ inline void G4PAIPhotModel::SetParticle(const G4ParticleDefinition* p) } #endif - - - - - - - diff --git a/source/processes/electromagnetic/standard/include/G4PEEffectFluoModel.hh b/source/processes/electromagnetic/standard/include/G4PEEffectFluoModel.hh index 0080d00e7e..5fa44e3adc 100644 --- a/source/processes/electromagnetic/standard/include/G4PEEffectFluoModel.hh +++ b/source/processes/electromagnetic/standard/include/G4PEEffectFluoModel.hh @@ -88,14 +88,16 @@ public: private: - G4ParticleDefinition* theGamma; - G4ParticleDefinition* theElectron; - G4ParticleChangeForGamma* fParticleChange; - G4VAtomDeexcitation* fAtomDeexcitation; + G4ParticleDefinition* theGamma; + G4ParticleDefinition* theElectron; + G4ParticleChangeForGamma* fParticleChange = nullptr; + G4VAtomDeexcitation* fAtomDeexcitation = nullptr; - G4double fminimalEnergy; - std::vector fSandiaCof; - std::vector fMatEnergyTh; + G4bool fPEBelowKShell = true; + + G4double fminimalEnergy; + std::vector fSandiaCof; + std::vector fMatEnergyTh; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/standard/include/G4PSTARStopping.hh b/source/processes/electromagnetic/standard/include/G4PSTARStopping.hh index eacc8b4688..e57ab148ae 100644 --- a/source/processes/electromagnetic/standard/include/G4PSTARStopping.hh +++ b/source/processes/electromagnetic/standard/include/G4PSTARStopping.hh @@ -82,7 +82,7 @@ public: private: - void AddData(const G4float* s, const G4Material*); + void AddData(const G4float* ss, const G4Material*); void FindData(G4int idx, const G4Material*); diff --git a/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh b/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh index 3fe833c4a6..8bff1be263 100644 --- a/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh +++ b/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh @@ -135,7 +135,7 @@ G4UniversalFluctuation::AddExcitation(CLHEP::HepRandomEngine* rndm, eav += ax*ex; esig2 += ax*ex*ex; } else { - const G4int p = G4Poisson(ax); + const G4int p = (G4int)G4Poisson(ax); if(p > 0) { eloss += ((p + 1) - 2.*rndm->flat())*ex; } } } diff --git a/source/processes/electromagnetic/standard/include/G4UrbanMscModel.hh b/source/processes/electromagnetic/standard/include/G4UrbanMscModel.hh index 1b87969991..e45902351f 100644 --- a/source/processes/electromagnetic/standard/include/G4UrbanMscModel.hh +++ b/source/processes/electromagnetic/standard/include/G4UrbanMscModel.hh @@ -166,7 +166,6 @@ private: G4double rangeinit; G4double currentRadLength; - G4double rangecut; G4double drr,finalr; G4double tlow; @@ -176,7 +175,7 @@ private: G4double rndmarray[2]; struct mscData { - G4double ecut, Z23, sqrtZ; + G4double Z23, sqrtZ; G4double coeffth1, coeffth2; G4double coeffc1, coeffc2, coeffc3, coeffc4; G4double stepmina, stepminb; diff --git a/source/processes/electromagnetic/standard/src/G4ASTARStopping.cc b/source/processes/electromagnetic/standard/src/G4ASTARStopping.cc index 24b53c59ce..ade16470e0 100644 --- a/source/processes/electromagnetic/standard/src/G4ASTARStopping.cc +++ b/source/processes/electromagnetic/standard/src/G4ASTARStopping.cc @@ -81,7 +81,7 @@ void G4ASTARStopping::PrintWarning(G4int i) const void G4ASTARStopping::Initialise() { // this method may be called several times during initialisation - G4int nmat = G4Material::GetNumberOfMaterials(); + G4int nmat = (G4int)G4Material::GetNumberOfMaterials(); if(nmat == nvectors) { return; } // loop via material list to add extra data diff --git a/source/processes/electromagnetic/standard/src/G4AtimaEnergyLossModel.cc b/source/processes/electromagnetic/standard/src/G4AtimaEnergyLossModel.cc index 2bf7a361c9..5a4c463683 100644 --- a/source/processes/electromagnetic/standard/src/G4AtimaEnergyLossModel.cc +++ b/source/processes/electromagnetic/standard/src/G4AtimaEnergyLossModel.cc @@ -277,11 +277,9 @@ void G4AtimaEnergyLossModel::CorrectionsAlongStep(const G4MaterialCutsCouple* co const G4ParticleDefinition* p = dp->GetDefinition(); const G4Material* mat = couple->GetMaterial(); G4double cutEnergy = DBL_MAX; - GetModelOfFluctuations()->SetParticleAndCharge(p, p->GetPDGCharge()); G4double kineticEnergy = dp->GetKineticEnergy(); - eloss = ComputeDEDXPerVolume(mat, p, kineticEnergy, cutEnergy)*length/(cm); + eloss = ComputeDEDXPerVolume(mat, p, kineticEnergy, cutEnergy)*length/(cm); } - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/src/G4BetheBlochModel.cc b/source/processes/electromagnetic/standard/src/G4BetheBlochModel.cc index e7548cc54e..70b239410e 100644 --- a/source/processes/electromagnetic/standard/src/G4BetheBlochModel.cc +++ b/source/processes/electromagnetic/standard/src/G4BetheBlochModel.cc @@ -152,7 +152,7 @@ void G4BetheBlochModel::SetupParameters(const G4ParticleDefinition* p) mass = particle->GetPDGMass(); spin = particle->GetPDGSpin(); G4double q = particle->GetPDGCharge()*inveplus; - if(!isIon && q > 1.1) { isIon = true; } + isIon = (!isAlpha && q > 1.1); chargeSquare = q*q; ratio = electron_mass_c2/mass; static const G4double aMag = 1./(0.5*eplus*CLHEP::hbar_Planck*CLHEP::c_squared); @@ -339,34 +339,36 @@ G4double G4BetheBlochModel::ComputeDEDXPerVolume(const G4Material* material, void G4BetheBlochModel::CorrectionsAlongStep(const G4MaterialCutsCouple* couple, const G4DynamicParticle* dp, - const G4double& length, + const G4double& /*length*/, G4double& eloss) { - // no correction at the last step - const G4double preKinEnergy = dp->GetKineticEnergy(); - if(eloss >= preKinEnergy) { return; } + // no correction for alpha + if(isAlpha) { return; } + // no correction at the last step or at small step + const G4double preKinEnergy = dp->GetKineticEnergy(); + if(eloss >= preKinEnergy || eloss < preKinEnergy*0.05) { return; } + + // corrections for all charged particles with Q > 1 const G4ParticleDefinition* p = dp->GetDefinition(); if(p != particle) { SetupParameters(p); } - if(isIon) { - const G4Material* mat = couple->GetMaterial(); - G4double e = std::max(preKinEnergy - eloss*0.5, preKinEnergy*0.75); + if(!isIon) { return; } - const G4double q2 = corr->EffectiveChargeSquareRatio(p,mat,e); - GetModelOfFluctuations()->SetParticleAndCharge(p, q2); - const G4double qfactor = - q2*corr->EffectiveChargeCorrection(p,mat,e)/chargeSquare; - const G4double highOrder = length*corr->IonHighOrderCorrections(p,couple,e); - const G4double elossnew = eloss*qfactor + highOrder; - /* - G4cout << "G4BetheBlochModel::CorrectionsAlongStep: e= " << preKinEnergy - << " eloss=" << eloss << " elossnew=" << elossnew - << " qfactor= " << qfactor << " highOrder= " << highOrder << " (ratio=" - << highOrder/eloss << ")" - " q2= " << q2 << " chargeSquare= " << chargeSquare << G4endl; - */ - eloss = elossnew; - } + // effective energy and charge at a step + const G4double e = std::max(preKinEnergy - eloss*0.5, preKinEnergy*0.5); + const G4Material* mat = couple->GetMaterial(); + const G4double q20 = corr->EffectiveChargeSquareRatio(p, mat, preKinEnergy); + const G4double q2 = corr->EffectiveChargeSquareRatio(p, mat, e); + const G4double qfactor = q2/q20; + + /* + G4cout << "G4BetheBlochModel::CorrectionsAlongStep: Epre(MeV)=" + << preKinEnergy << " Eeff(MeV)=" << e + << " eloss=" << eloss << " elossnew=" << eloss*qfactor + << " qfactor=" << qfactor << " Qpre=" << q20 + << p->GetParticleName() <* fve // should be called only by the master and at initialisation void G4BetheHeitlerModel::InitialiseElementData() { - G4int size = gElementData.size(); + G4int size = (G4int)gElementData.size(); if (size < gMaxZet+1) { gElementData.resize(gMaxZet+1, nullptr); } // create for all elements that are in the detector const G4ElementTable* elemTable = G4Element::GetElementTable(); - size_t numElems = (*elemTable).size(); - for (size_t ie = 0; ie < numElems; ++ie) { + std::size_t numElems = (*elemTable).size(); + for (std::size_t ie = 0; ie < numElems; ++ie) { const G4Element* elem = (*elemTable)[ie]; const G4int iz = std::min(gMaxZet, elem->GetZasInt()); if (!gElementData[iz]) { // create it if doesn't exist yet diff --git a/source/processes/electromagnetic/standard/src/G4BraggIonModel.cc b/source/processes/electromagnetic/standard/src/G4BraggIonModel.cc index 3ba9e6abb9..ebff47bb38 100644 --- a/source/processes/electromagnetic/standard/src/G4BraggIonModel.cc +++ b/source/processes/electromagnetic/standard/src/G4BraggIonModel.cc @@ -124,9 +124,6 @@ void G4BraggIonModel::Initialise(const G4ParticleDefinition* p, } } } - if(particle->GetPDGCharge() > CLHEP::eplus || pname == "GenericIon") { - isIon = true; - } if(pname == "alpha") { isAlpha = true; } if(UseAngularGeneratorFlag() && nullptr == GetAngularDistribution()) { @@ -152,8 +149,7 @@ G4double G4BraggIonModel::GetChargeSquareRatio(const G4ParticleDefinition* p, const G4Material* mat, G4double kineticEnergy) { - return - (!isAlpha) ? corr->EffectiveChargeSquareRatio(p,mat,kineticEnergy) : 1.0; + return corr->EffectiveChargeSquareRatio(p,mat,kineticEnergy); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -247,7 +243,7 @@ G4double G4BraggIonModel::ComputeDEDXPerVolume(const G4Material* material, G4double T = kineticEnergy; const G4double zeff = material->GetTotNbOfElectPerVolume()/ material->GetTotNbOfAtomsPerVolume(); - effChargeSquare = HeEffChargeSquare(zeff, T/CLHEP::MeV); + heChargeSquare = HeEffChargeSquare(zeff, T/CLHEP::MeV); if(!isAlpha) { T *= rateMassHe2p; } if(T < lowestKinEnergy) { @@ -255,7 +251,7 @@ G4double G4BraggIonModel::ComputeDEDXPerVolume(const G4Material* material, } else { dedx = DEDX(material, T); } - if(!isAlpha) { dedx /= effChargeSquare; } + if(!isAlpha) { dedx /= heChargeSquare; } if (tmin < tmax) { const G4double tau = kineticEnergy/mass; const G4double x = tmin/tmax; @@ -263,7 +259,7 @@ G4double G4BraggIonModel::ComputeDEDXPerVolume(const G4Material* material, G4double del = (G4Log(x)*(tau + 1.)*(tau + 1.)/(tau * (tau + 2.0)) + 1.0 - x) * CLHEP::twopi_mc2_rcl2*material->GetElectronDensity(); - if(isAlpha) { del *= effChargeSquare; } + if(isAlpha) { del *= heChargeSquare; } dedx += del; } dedx = std::max(dedx, 0.0); @@ -282,26 +278,31 @@ void G4BraggIonModel::CorrectionsAlongStep(const G4MaterialCutsCouple* couple, const G4double&, G4double& eloss) { - // no correction at the last step - const G4double preKinEnergy = dp->GetKineticEnergy(); - if(eloss >= preKinEnergy) { return; } + // no correction for alpha + if(isAlpha) { return; } + // no correction at a small step at the last step + const G4double preKinEnergy = dp->GetKineticEnergy(); + if(eloss >= preKinEnergy || eloss < preKinEnergy*0.05) { return; } + + // corrections only for ions const G4ParticleDefinition* p = dp->GetDefinition(); if(p != particle) { SetParticle(p); } - if(!isIon) { return; } - // this method is called only for ions + // effective energy and charge at a step const G4Material* mat = couple->GetMaterial(); - G4double e = std::max(preKinEnergy - eloss*0.5, preKinEnergy*0.5); - - G4double q2 = corr->EffectiveChargeSquareRatio(p,mat,e); - GetModelOfFluctuations()->SetParticleAndCharge(p, q2); - if(!isAlpha) { - eloss *= q2*corr->EffectiveChargeCorrection(p,mat,e)/chargeSquare; - } - - //G4cout << "G4BraggIonModel::CorrectionsAlongStep e= " << e - // << " qfactor= " << qfactor << " " << p->GetParticleName() <EffectiveChargeSquareRatio(p, mat, preKinEnergy); + const G4double q2 = corr->EffectiveChargeSquareRatio(p, mat, e); + const G4double qfactor = q2/q20; + /* + G4cout << "G4BraggIonModel::CorrectionsAlongStep: Epre(MeV)=" + << preKinEnergy << " Eeff(MeV)=" << e + << " eloss=" << eloss << " elossnew=" << eloss*qfactor + << " qfactor=" << qfactor << " Qpre=" << q20 + << p->GetParticleName() <GetPDGMass(); spin = particle->GetPDGSpin(); G4double q = particle->GetPDGCharge()/CLHEP::eplus; - if(!isIon && q > 1.1) { isIon = true; } - effChargeSquare = chargeSquare = q*q; + chargeSquare = q*q; massRate = mass/CLHEP::proton_mass_c2; ratio = CLHEP::electron_mass_c2/mass; } @@ -417,7 +417,7 @@ G4int G4BraggIonModel::HasMaterial(const G4Material* mat) const // ICRU Report N49, 1993. Ziegler model for He. - static const size_t numberOfMolecula = 11; + static const G4int numberOfMolecula = 11; static const G4String molName[numberOfMolecula] = { "CaF_2", "Cellulose_Nitrate", "LiF", "Policarbonate", "(C_2H_4)_N-Polyethylene", "(C_2H_4)_N-Polymethly_Methacralate", @@ -425,7 +425,7 @@ G4int G4BraggIonModel::HasMaterial(const G4Material* mat) const "Graphite" }; // Search for the material in the table - for (size_t i=0; iGetNumberOfElements())) { @@ -661,7 +661,7 @@ G4BraggIonModel::ElectronicStoppingPower(const G4double z, ionloss = std::max(ionloss, 0.0); // He effective charge - // ionloss /= effChargeSquare; + // ionloss /= heChargeSquare; // G4cout << ionloss << G4endl; return ionloss; } @@ -708,7 +708,7 @@ G4double G4BraggIonModel::DEDX(const G4Material* material, if(eloss > 0.0) { return eloss*material->GetDensity(); } } - const G4int numberOfElements = material->GetNumberOfElements(); + const std::size_t numberOfElements = material->GetNumberOfElements(); const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector(); @@ -728,7 +728,7 @@ G4double G4BraggIonModel::DEDX(const G4Material* material, const G4ElementVector* theElmVector = material->GetElementVector(); // loop for the elements in the material - for (G4int i=0; iGetZ(), aEnergy) * theAtomicNumDensityVector[i]; diff --git a/source/processes/electromagnetic/standard/src/G4BraggModel.cc b/source/processes/electromagnetic/standard/src/G4BraggModel.cc index 8fb66f1fb1..9720d46e13 100644 --- a/source/processes/electromagnetic/standard/src/G4BraggModel.cc +++ b/source/processes/electromagnetic/standard/src/G4BraggModel.cc @@ -356,7 +356,7 @@ void G4BraggModel::HasMaterial(const G4Material* mat) if(chFormula.empty()) { return; } // ICRU Report N49, 1993. Power's model for H - static const size_t numberOfMolecula = 11; + static const G4int numberOfMolecula = 11; static const G4String molName[numberOfMolecula] = { "Al_2O_3", "CO_2", "CH_4", "(C_2H_4)_N-Polyethylene", "(C_2H_4)_N-Polypropylene", "(C_8H_8)_N", @@ -364,7 +364,7 @@ void G4BraggModel::HasMaterial(const G4Material* mat) "H_2O-Gas", "Graphite" } ; // Search for the material in the table - for (size_t i=0; iGetDensity(); } - const G4int numberOfElements = material->GetNumberOfElements(); + const std::size_t numberOfElements = material->GetNumberOfElements(); const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector(); @@ -651,7 +651,7 @@ G4double G4BraggModel::DEDX(const G4Material* material, G4double kineticEnergy) material->GetElementVector(); // Loop for the elements in the material - for (G4int i=0; iGetZ() ; eloss += ElectronicStoppingPower(z,kineticEnergy) @@ -669,7 +669,7 @@ G4double G4BraggModel::DEDX(const G4Material* material, G4double kineticEnergy) material->GetElementVector() ; // loop for the elements in the material - for (G4int i=0; iGetZ(), kineticEnergy) @@ -705,7 +705,7 @@ G4bool G4BraggModel::MolecIsInZiegler1988(const G4Material* material) // The coffecient from Table.4 of Ziegler & Manoyan static const G4float HeEff = 2.8735f; - static const size_t numberOfMolecula = 53; + static const std::size_t numberOfMolecula = 53; static const G4String nameOfMol[numberOfMolecula] = { "H_2O", "C_2H_4O", "C_3H_6O", "C_2H_2", "C_H_3OH", "C_2H_5OH", "C_3H_7OH", "C_3H_4", "NH_3", "C_14H_10", @@ -734,7 +734,7 @@ G4bool G4BraggModel::MolecIsInZiegler1988(const G4Material* material) 306.8f, 324.4f, 420.0f } ; - static const G4float expCharge[53] = { + static const G4float expCharge[numberOfMolecula] = { HeEff, HeEff, HeEff, 1.0f, HeEff, HeEff, HeEff, HeEff, 1.0f, 1.0f, 1.0f, HeEff, HeEff, HeEff, HeEff, @@ -748,7 +748,7 @@ G4bool G4BraggModel::MolecIsInZiegler1988(const G4Material* material) HeEff, HeEff, HeEff } ; - static const G4int numberOfAtomsPerMolecula[53] = { + static const G4int numberOfAtomsPerMolecula[numberOfMolecula] = { 3, 7, 10, 4, 6, 9, 12, 7, 4, 24, 12,14, 10, 13, 5, @@ -762,7 +762,7 @@ G4bool G4BraggModel::MolecIsInZiegler1988(const G4Material* material) 10, 9, 15}; // Search for the compaund in the table - for (size_t i=0; iGetTotNbOfAtomsPerVolume()) / diff --git a/source/processes/electromagnetic/standard/src/G4GSMottCorrection.cc b/source/processes/electromagnetic/standard/src/G4GSMottCorrection.cc index 7577077c21..51528e58c2 100644 --- a/source/processes/electromagnetic/standard/src/G4GSMottCorrection.cc +++ b/source/processes/electromagnetic/standard/src/G4GSMottCorrection.cc @@ -204,17 +204,17 @@ void G4GSMottCorrection::InitMCDataPerElement() { // loop over all materials, for those that are used check the list of elements and load data from file if the // corresponding data has not been loaded yet G4ProductionCutsTable *thePCTable = G4ProductionCutsTable::GetProductionCutsTable(); - size_t numMatCuts = thePCTable->GetTableSize(); - for (size_t imc=0; imcGetMaterialCutsCouple(imc); + G4int numMatCuts = (G4int)thePCTable->GetTableSize(); + for (G4int imc=0; imcGetMaterialCutsCouple(imc); if (!matCut->IsUsed()) { continue; } const G4Material *mat = matCut->GetMaterial(); const G4ElementVector *elemVect = mat->GetElementVector(); // - size_t numElems = elemVect->size(); - for (size_t ielem=0; ielemsize(); + for (std::size_t ielem=0; ielemGetZ()); if (izet>gMaxZet) { @@ -230,15 +230,15 @@ void G4GSMottCorrection::InitMCDataPerElement() { void G4GSMottCorrection::InitMCDataPerMaterials() { // prepare size of the container - size_t numMaterials = G4Material::GetNumberOfMaterials(); + std::size_t numMaterials = G4Material::GetNumberOfMaterials(); if (fMCDataPerMaterial.size()!=numMaterials) { fMCDataPerMaterial.resize(numMaterials); } // init. Mott-correction data for the Materials that are used in the geometry G4ProductionCutsTable *thePCTable = G4ProductionCutsTable::GetProductionCutsTable(); - size_t numMatCuts = thePCTable->GetTableSize(); - for (size_t imc=0; imcGetMaterialCutsCouple(imc); + G4int numMatCuts = (G4int)thePCTable->GetTableSize(); + for (G4int imc=0; imcGetMaterialCutsCouple(imc); if (!matCut->IsUsed()) { continue; } @@ -309,7 +309,7 @@ void G4GSMottCorrection::ReadCompressedFile(std::string fname, std::istringstrea std::ifstream in(compfilename, std::ios::binary | std::ios::ate); if (in.good()) { // get current position in the stream (was set to the end) - int fileSize = in.tellg(); + std::streamoff fileSize = in.tellg(); // set current position being the beginning of the stream in.seekg(0,std::ios::beg); // create (zlib) byte buffer for the data @@ -359,7 +359,7 @@ void G4GSMottCorrection::InitMCDataMaterial(const G4Material *mat) { fMCDataPerMaterial[mat->GetIndex()] = perMat; // const G4ElementVector* elemVect = mat->GetElementVector(); - const G4int numElems = mat->GetNumberOfElements(); + const G4int numElems = (G4int)mat->GetNumberOfElements(); const G4double* nbAtomsPerVolVect = mat->GetVecNbOfAtomsPerVolume(); G4double totNbAtomsPerVol = mat->GetTotNbOfAtomsPerVolume(); // @@ -533,7 +533,7 @@ void G4GSMottCorrection::DeAllocateDataPerMaterial(DataPerMaterial *data) { void G4GSMottCorrection::ClearMCDataPerElement() { - for (size_t i=0; iGetTableSize(); - for (size_t imc=0; imcGetTableSize(); + for (G4int imc=0; imcGetMaterialCutsCouple(imc); if (!matCut->IsUsed()) { continue; @@ -135,8 +135,8 @@ void G4GSPWACorrections::InitDataPerElement() { const G4Material *mat = matCut->GetMaterial(); const G4ElementVector *elemVect = mat->GetElementVector(); // - size_t numElems = elemVect->size(); - for (size_t ielem=0; ielemsize(); + for (std::size_t ielem=0; ielemGetZ()); if (izet>gMaxZet) { @@ -152,14 +152,14 @@ void G4GSPWACorrections::InitDataPerElement() { void G4GSPWACorrections::InitDataPerMaterials() { // prepare size of the container - size_t numMaterials = G4Material::GetNumberOfMaterials(); + std::size_t numMaterials = G4Material::GetNumberOfMaterials(); if (fDataPerMaterial.size()!=numMaterials) { fDataPerMaterial.resize(numMaterials); } // init. PWA correction data for the Materials that are used in the geometry G4ProductionCutsTable *thePCTable = G4ProductionCutsTable::GetProductionCutsTable(); - size_t numMatCuts = thePCTable->GetTableSize(); - for (size_t imc=0; imcGetTableSize(); + for (G4int imc=0; imcGetMaterialCutsCouple(imc); if (!matCut->IsUsed()) { continue; @@ -232,7 +232,7 @@ void G4GSPWACorrections::InitDataMaterial(const G4Material *mat) { fDataPerMaterial[mat->GetIndex()] = perMat; // const G4ElementVector* elemVect = mat->GetElementVector(); - const G4int numElems = mat->GetNumberOfElements(); + const G4int numElems = (G4int)mat->GetNumberOfElements(); const G4double* nbAtomsPerVolVect = mat->GetVecNbOfAtomsPerVolume(); G4double totNbAtomsPerVol = mat->GetTotNbOfAtomsPerVolume(); // @@ -343,7 +343,7 @@ void G4GSPWACorrections::InitDataMaterial(const G4Material *mat) { void G4GSPWACorrections::ClearDataPerElement() { - for (size_t i=0; ifCorScreening.clear(); fDataPerElement[i]->fCorFirstMoment.clear(); @@ -356,7 +356,7 @@ void G4GSPWACorrections::ClearDataPerElement() { void G4GSPWACorrections::ClearDataPerMaterial() { - for (size_t i=0; ifCorScreening.clear(); fDataPerMaterial[i]->fCorFirstMoment.clear(); diff --git a/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonMscModel.cc b/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonMscModel.cc index 8fc87a0a7c..fc6ee97bae 100644 --- a/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonMscModel.cc +++ b/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonMscModel.cc @@ -324,7 +324,7 @@ G4double G4GoudsmitSaundersonMscModel::CrossSectionPerVolume(const G4Material* m // beta square G4double beta2 = pt2/(pt2+electron_mass_c2*electron_mass_c2); // current material index - G4int matindx = mat->GetIndex(); + G4int matindx = (G4int)mat->GetIndex(); // Moliere's b_c G4double bc = fGSTable->GetMoliereBc(matindx); // get the Mott-correcton factors if Mott-correcton was requested by the user @@ -381,7 +381,7 @@ G4GoudsmitSaundersonMscModel::GetTransportMeanFreePath(const G4ParticleDefinitio // beta square G4double beta2 = pt2/(pt2+electron_mass_c2*electron_mass_c2); // current material index - G4int matindx = mat->GetIndex(); + G4int matindx = (G4int)mat->GetIndex(); // Moliere's b_c G4double bc = fGSTable->GetMoliereBc(matindx); // get the Mott-correcton factors if Mott-correcton was requested by the user @@ -434,7 +434,7 @@ G4GoudsmitSaundersonMscModel::GetTransportMeanFreePathOnly(const G4ParticleDefin // total mometum square in Geant4 internal energy2 units which is MeV2 G4double pt2 = efEnergy*(efEnergy+2.0*electron_mass_c2); G4double beta2 = pt2/(pt2+electron_mass_c2*electron_mass_c2); - G4int matindx = mat->GetIndex(); + G4int matindx = (G4int)mat->GetIndex(); G4double bc = fGSTable->GetMoliereBc(matindx); // get the Mott-correcton factors if Mott-correcton was requested by the user G4double mctoScrA = 1.0; @@ -475,7 +475,7 @@ G4double G4GoudsmitSaundersonMscModel::ComputeTruePathLengthLimit(const G4Track& G4StepStatus stepStatus = sp->GetStepStatus(); currentCouple = track.GetMaterialCutsCouple(); SetCurrentCouple(currentCouple); - currentMaterialIndex = currentCouple->GetMaterial()->GetIndex(); + currentMaterialIndex = (G4int)currentCouple->GetMaterial()->GetIndex(); currentKinEnergy = dp->GetKineticEnergy(); currentRange = GetRange(particle,currentKinEnergy,currentCouple, dp->GetLogKineticEnergy()); diff --git a/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonTable.cc b/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonTable.cc index c6794482c7..cd8b894369 100644 --- a/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonTable.cc +++ b/source/processes/electromagnetic/standard/src/G4GoudsmitSaundersonTable.cc @@ -129,7 +129,7 @@ G4GoudsmitSaundersonTable::G4GoudsmitSaundersonTable(G4bool iselectron) { } G4GoudsmitSaundersonTable::~G4GoudsmitSaundersonTable() { - for (size_t i=0; ifUValues; delete [] gGSMSCAngularDistributions1[i]->fParamA; @@ -138,7 +138,7 @@ G4GoudsmitSaundersonTable::~G4GoudsmitSaundersonTable() { } } gGSMSCAngularDistributions1.clear(); - for (size_t i=0; ifUValues; delete [] gGSMSCAngularDistributions2[i]->fParamA; @@ -152,7 +152,7 @@ G4GoudsmitSaundersonTable::~G4GoudsmitSaundersonTable() { fMottCorrection = nullptr; } // clear scp correction data - for (size_t imc=0; imcfVSCPC.clear(); delete fSCPCPerMatCuts[imc]; @@ -557,7 +557,7 @@ void G4GoudsmitSaundersonTable::InitMoliereMSCParams() { G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); // get number of materials in the table - size_t numMaterials = theMaterialTable->size(); + std::size_t numMaterials = theMaterialTable->size(); // make sure that we have long enough vectors if(gMoliereBc.size()GetElementVector(); - const G4int numelems = theMaterial->GetNumberOfElements(); + const G4int numelems = (G4int)theMaterial->GetNumberOfElements(); // const G4double* theNbAtomsPerVolVect = theMaterial->GetVecNbOfAtomsPerVolume(); G4double theTotNbAtomsPerVol = theMaterial->GetTotNbOfAtomsPerVolume(); @@ -617,9 +617,9 @@ G4double G4GoudsmitSaundersonTable::ComputeScatteringPowerCorrection(const G4Mat // get the scattering power correction factor G4double lekin = G4Log(ekin); G4double remaining = (lekin-fSCPCPerMatCuts[imc]->fLEmin)*fSCPCPerMatCuts[imc]->fILDel; - G4int lindx = (G4int)remaining; + std::size_t lindx = (std::size_t)remaining; remaining -= lindx; - G4int imax = fSCPCPerMatCuts[imc]->fVSCPC.size()-1; + std::size_t imax = fSCPCPerMatCuts[imc]->fVSCPC.size()-1; if (lindx>=imax) { corFactor = fSCPCPerMatCuts[imc]->fVSCPC[imax]; } else { @@ -632,9 +632,9 @@ G4double G4GoudsmitSaundersonTable::ComputeScatteringPowerCorrection(const G4Mat void G4GoudsmitSaundersonTable::InitSCPCorrection() { // get the material-cuts table G4ProductionCutsTable *thePCTable = G4ProductionCutsTable::GetProductionCutsTable(); - size_t numMatCuts = thePCTable->GetTableSize(); + std::size_t numMatCuts = thePCTable->GetTableSize(); // clear container if any - for (size_t imc=0; imcfVSCPC.clear(); delete fSCPCPerMatCuts[imc]; @@ -645,7 +645,7 @@ void G4GoudsmitSaundersonTable::InitSCPCorrection() { // set size of the container and create the corresponding data structures fSCPCPerMatCuts.resize(numMatCuts,nullptr); // loop over the material-cuts and create scattering power correction data structure for each - for (size_t imc=0; imcGetMaterialCutsCouple(imc); // get e- production cut in the current material-cuts in energy G4double limit; @@ -683,7 +683,7 @@ void G4GoudsmitSaundersonTable::InitSCPCorrection() { G4double tau = ekin/CLHEP::electron_mass_c2; G4double tauCut = ecut/CLHEP::electron_mass_c2; // Moliere's screening parameter - G4int matindx = matCut->GetMaterial()->GetIndex(); + G4int matindx = (G4int)matCut->GetMaterial()->GetIndex(); G4double A = GetMoliereXc2(matindx)/(4.0*tau*(tau+2.)*GetMoliereBc(matindx)); G4double gr = (1.+2.*A)*G4Log(1.+1./A)-2.; G4double dum0 = (tau+2.)/(tau+1.); diff --git a/source/processes/electromagnetic/standard/src/G4ICRU49NuclearStoppingModel.cc b/source/processes/electromagnetic/standard/src/G4ICRU49NuclearStoppingModel.cc index 1effde42c4..fdbf9ab1b0 100644 --- a/source/processes/electromagnetic/standard/src/G4ICRU49NuclearStoppingModel.cc +++ b/source/processes/electromagnetic/standard/src/G4ICRU49NuclearStoppingModel.cc @@ -134,11 +134,11 @@ G4ICRU49NuclearStoppingModel::ComputeDEDXPerVolume( mass1 /= amu_c2; // loop for the elements in the material - G4int numberOfElements = mat->GetNumberOfElements(); + std::size_t numberOfElements = mat->GetNumberOfElements(); const G4ElementVector* theElementVector = mat->GetElementVector(); const G4double* atomDensity = mat->GetAtomicNumDensityVector(); - for (G4int iel=0; ielGetZ(); G4double mass2 = element->GetN(); diff --git a/source/processes/electromagnetic/standard/src/G4ICRU73QOModel.cc b/source/processes/electromagnetic/standard/src/G4ICRU73QOModel.cc index 88283381f1..4e244c3ac8 100644 --- a/source/processes/electromagnetic/standard/src/G4ICRU73QOModel.cc +++ b/source/processes/electromagnetic/standard/src/G4ICRU73QOModel.cc @@ -203,7 +203,7 @@ G4double G4ICRU73QOModel::DEDX(const G4Material* material, G4double kineticEnergy) { G4double eloss = 0.0; - const G4int numberOfElements = material->GetNumberOfElements(); + const std::size_t numberOfElements = material->GetNumberOfElements(); const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector(); @@ -212,7 +212,7 @@ G4double G4ICRU73QOModel::DEDX(const G4Material* material, material->GetElementVector() ; // loop for the elements in the material - for (G4int i=0; iGetZasInt(), kineticEnergy) diff --git a/source/processes/electromagnetic/standard/src/G4InitXscPAI.cc b/source/processes/electromagnetic/standard/src/G4InitXscPAI.cc index 840fc81f50..1ec4e8f2df 100644 --- a/source/processes/electromagnetic/standard/src/G4InitXscPAI.cc +++ b/source/processes/electromagnetic/standard/src/G4InitXscPAI.cc @@ -78,22 +78,22 @@ G4InitXscPAI::G4InitXscPAI( const G4MaterialCutsCouple* matCC) fDensity = matCC->GetMaterial()->GetDensity(); fElectronDensity = matCC->GetMaterial()->GetElectronDensity(); - matIndex = matCC->GetMaterial()->GetIndex(); + matIndex = (G4int)matCC->GetMaterial()->GetIndex(); fSandia = new G4SandiaTable(matIndex); fIntervalNumber = fSandia->GetMaxInterval()-1; fMatSandiaMatrix = new G4OrderedTable(); - for (i = 0; i < fIntervalNumber; i++) + for (i = 0; i < fIntervalNumber; ++i) { fMatSandiaMatrix->push_back(new G4DataVector(5,0.)); } - for (i = 0; i < fIntervalNumber; i++) + for (i = 0; i < fIntervalNumber; ++i) { (*(*fMatSandiaMatrix)[i])[0] = fSandia->GetSandiaMatTable(i,0); - for(j = 1; j < 5 ; j++) + for(j = 1; j < 5 ; ++j) { (*(*fMatSandiaMatrix)[i])[j] = fSandia->GetSandiaMatTable(i,j)*fDensity; } diff --git a/source/processes/electromagnetic/standard/src/G4IonICRU73Data.cc b/source/processes/electromagnetic/standard/src/G4IonICRU73Data.cc index d5079eb733..1893086316 100644 --- a/source/processes/electromagnetic/standard/src/G4IonICRU73Data.cc +++ b/source/processes/electromagnetic/standard/src/G4IonICRU73Data.cc @@ -51,6 +51,8 @@ #include "G4Material.hh" #include "G4Element.hh" +namespace { + const G4String namesICRU73[31] = { "G4_A-150_TISSUE" "G4_ADIPOSE_TISSUE_ICRP" @@ -83,7 +85,13 @@ const G4String namesICRU73[31] = { "G4_TISSUE-PROPANE" "G4_WATER" "G4_WATER_VAPOR"}; -const G4String namesICRU90[3] = {"G4_AIR","G4_GRAPHITE","G4_WATER"}; + const G4String namesICRU90[3] = {"G4_AIR","G4_GRAPHITE","G4_WATER"}; + const G4double densityCoef[3] = {0.996, 1.025, 0.998}; + const G4int NZ = 27; + const G4int zdat[NZ] = { 5, 6, 7, 8, 13, 14, 15, 16, 22, 26, + 28, 29, 30, 31, 32, 33, 34, 40, 47, 48, + 49, 51, 52, 72, 73, 74, 79 }; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -91,7 +99,7 @@ G4IonICRU73Data::G4IonICRU73Data() { fEmin = 0.025*CLHEP::MeV; fEmax = 2.5*CLHEP::MeV; - fNbins = fNbinsPerDecade*G4lrint(std::log10(fEmax/fEmin) + 0.000001); + fNbins = fNbinsPerDecade*G4lrint(std::log10(fEmax/fEmin)); fVector = new G4PhysicsFreeVector(fSpline); for(G4int i=0; i<81; ++i) { fMatData[i] = new std::vector; @@ -109,28 +117,29 @@ G4IonICRU73Data::~G4IonICRU73Data() delete (*v)[j]; } delete v; - for(G4int j=0; j<81; ++j) { delete fElmData[i][j]; } + for(G4int j=0; j<93; ++j) { delete fElmData[i][j]; } } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4double G4IonICRU73Data::GetDEDX(const G4Material* mat, const G4int Z, - const G4double e, const G4double loge) const + const G4double e, const G4double loge) const { G4PhysicsLogVector* v = nullptr; + G4int Z2 = std::min(Z, 80); if(1 == mat->GetNumberOfElements()) { - G4int Z1 = (*(mat->GetElementVector()))[0]->GetZasInt(); - if(Z <= 80 && Z1 <= 80) { - v = fElmData[Z][Z1]; - } + G4int Z1 = std::min((*(mat->GetElementVector()))[0]->GetZasInt(), 80); + v = fElmData[Z2][Z1]; } else { G4int idx = fMatIndex[mat->GetIndex()]; - if(idx < fNmat && Z <= 80) { - v = (*(fMatData[Z]))[idx]; + if(idx < fNmat) { + v = (*(fMatData[Z2]))[idx]; } } - G4double res = (nullptr != v) ? v->LogVectorValue(e, loge) : 0.0; + if(nullptr == v) { return 0.0; } + G4double res = (e > fEmin) ? v->LogVectorValue(e, loge) + : (*v)[0]*std::sqrt(e/fEmin); return res; } @@ -152,52 +161,68 @@ void G4IonICRU73Data::Initialise() } } - G4bool useICRU90 = G4EmParameters::Instance()->UseICRU90Data(); - size_t nmat = G4Material::GetNumberOfMaterials(); + std::size_t nmat = G4Material::GetNumberOfMaterials(); + if(nmat == fMatIndex.size()) { return; } + + if(0 < fVerbose) { + G4cout << "### G4IonICRU73Data::Initialise() for " << nmat + << " materials" << G4endl; + } fMatIndex.resize(nmat, -1); + for(G4int j=0; j<81; ++j) { + fMatData[j]->resize(nmat, nullptr); + } + G4bool useICRU90 = G4EmParameters::Instance()->UseICRU90Data(); + auto mtable = G4Material::GetMaterialTable(); - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - for(size_t i=0; iGetMaterialCutsCouple(i); - const G4Material* mat = couple->GetMaterial(); - G4int idx = mat->GetIndex(); + for(G4int i=0; i<(G4int)nmat; ++i) { + fNmat = i; + const G4Material* mat = (*mtable)[i]; + G4int idx = (G4int)mat->GetIndex(); + if(1 < fVerbose) { + G4cout << i << ". material:" << mat->GetName() + << " idx=" << idx << G4endl; + } if(fMatIndex[idx] == -1) { + fMatIndex[idx] = i; G4String matname = mat->GetName(); G4bool isOK = false; if(1 == mat->GetNumberOfElements()) { - ReadElementData(mat, useICRU90); + ReadElementData(mat, useICRU90); isOK = true; + if(1 < fVerbose) { + G4cout << "Material from single element" << G4endl; + } } if(!isOK && useICRU90) { - for(G4int j=0; j<3; ++j) { - if(matname == namesICRU90[j]) { - ReadMaterialData(matname, true); + for(G4int j=0; j<3; ++j) { + if(matname == namesICRU90[j]) { + ReadMaterialData(mat, densityCoef[j], true); isOK = true; - fMatIndex[idx] = fNmat; - ++fNmat; - break; - } - } + if(1 < fVerbose) { + G4cout << "ICRU90 material" << G4endl; + } + break; + } + } } if(!isOK) { - for(G4int j=0; j<31; ++j) { - if(matname == namesICRU73[j]) { - ReadMaterialData(matname, false); + for(G4int j=0; j<31; ++j) { + if(matname == namesICRU73[j]) { + ReadMaterialData(mat, 1.0, false); isOK = true; - fMatIndex[idx] = fNmat; - ++fNmat; - break; - } - } + if(1 < fVerbose) { + G4cout << "ICRU73 material" << G4endl; + } + break; + } + } } if(!isOK) { - ReadElementData(mat, useICRU90); - fMatIndex[idx] = fNmat; - ++fNmat; + ReadElementData(mat, useICRU90); + if(1 < fVerbose) { + G4cout << "Read element data" << G4endl; + } } } } @@ -205,16 +230,60 @@ void G4IonICRU73Data::Initialise() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4IonICRU73Data::ReadMaterialData(const G4String& name, G4bool isICRU90) +void G4IonICRU73Data::ReadMaterialData(const G4Material* mat, + const G4double coeff, + const G4bool useICRU90) { + G4String name = mat->GetName(); for(G4int Z=3; Z<81; ++Z) { std::ostringstream ost; ost << fDataDirectory << "icru"; - if(isICRU90 && Z <= 18) { ost << "90"; } - else { ost << "73"; } - ost << "/z" << Z << "_" << name << ".dat"; - G4PhysicsLogVector* v = RetrieveVector(ost, false); - (fMatData[Z])->push_back(v); + G4int Z1 = Z; + G4double scale = 1.0; + if(useICRU90 && Z <= 18) { + ost << "90"; + } else { + ost << "73"; + for(G4int i=0; i zdat[i] && Z < zdat[i+1]) { + if(Z - zdat[i] <= zdat[i + 1] - Z) { + Z1 = zdat[i]; + } else { + Z1 = zdat[i+1]; + } + scale = (G4double)(Z*Z)/(G4double)(Z1*Z1); + break; + } + } + } + if(nullptr == (*(fMatData[Z1]))[fNmat]) { + ost << "/z" << Z1 << "_" << name << ".dat"; + G4PhysicsLogVector* v = RetrieveVector(ost, false); + if(nullptr != v) { + const G4double fact = coeff * + mat->GetDensity() * CLHEP::MeV * 1000 * CLHEP::cm2 / CLHEP::g; + v->ScaleVector(CLHEP::MeV, fact); + if(2 < fVerbose) { + G4cout << "### Data for " << name + << " and projectile Z=" << Z1 << G4endl; + G4cout << *v << G4endl; + } + (*(fMatData[Z1]))[fNmat] = v; + } + } + if(Z != Z1) { + auto v2 = (*(fMatData[Z1]))[fNmat]; + if(nullptr != v2) { + auto v1 = new G4PhysicsLogVector(*v2); + (*(fMatData[Z]))[fNmat] = v1; + v1->ScaleVector(1.0, scale); + } + } } } @@ -224,33 +293,35 @@ void G4IonICRU73Data::ReadElementData(const G4Material* mat, G4bool useICRU90) { const G4ElementVector* elmv = mat->GetElementVector(); const G4double* dens = mat->GetFractionVector(); - const G4int nelm = mat->GetNumberOfElements(); + const G4int nelm = (G4int)mat->GetNumberOfElements(); for(G4int Z=3; Z<81; ++Z) { + G4PhysicsLogVector* v = nullptr; if(1 == nelm) { - FindOrBuildElementData(Z, (*elmv)[0]->GetZasInt(), useICRU90); + v = FindOrBuildElementData(Z, (*elmv)[0]->GetZasInt(), useICRU90); } else { - G4PhysicsLogVector* v2 = nullptr; - for(G4int j=0; jGetZasInt(), useICRU90); - if(nullptr == v2) { break; } - } - // for one or more elements there is no data - if(nullptr == v2) { - fMatData[Z]->push_back(v2); - continue; - } - auto v = new G4PhysicsLogVector(fEmin, fEmax, fNbins, fSpline); + v = new G4PhysicsLogVector(fEmin, fEmax, fNbins, fSpline); for(G4int i=0; i<=fNbins; ++i) { - G4double dedx = 0; + G4double dedx = 0.0; for(G4int j=0; jGetZasInt(), useICRU90); + G4PhysicsLogVector* v1 = + FindOrBuildElementData(Z, (*elmv)[j]->GetZasInt(), useICRU90); dedx += (*v1)[i]*dens[j]; - } + } v->PutValue(i, dedx); } if(fSpline) { v->FillSecondDerivatives(); } - fMatData[Z]->push_back(v); + } + (*(fMatData[Z]))[fNmat] = v; + // scale data for correct units + if(nullptr != v) { + const G4double fact = + mat->GetDensity() * CLHEP::MeV * 1000 * CLHEP::cm2 / CLHEP::g; + v->ScaleVector(CLHEP::MeV, fact); + if(2 < fVerbose) { + G4cout << "### Data for "<< mat->GetName() + << " for projectile Z=" << Z << G4endl; + G4cout << *v << G4endl; + } } } } @@ -262,18 +333,44 @@ G4IonICRU73Data::FindOrBuildElementData(const G4int Z, const G4int Z1, G4bool useICRU90) { G4PhysicsLogVector* v = nullptr; - if(Z <= 80 && Z1 <= 80) { + if(Z <= 80 && Z1 <= 92) { v = fElmData[Z][Z1]; if(nullptr == v) { + G4int Z2 = Z1; G4bool isICRU90 = (useICRU90 && Z <= 18 && - (Z1 == 1 || Z1 == 6 || Z1 == 7 || Z1 == 8)); + (Z1 == 1 || Z1 == 6 || Z1 == 7 || Z1 == 8)); + + G4double scale = 1.0; + if(!isICRU90) { + for(G4int i=0; i zdat[i] && Z1 < zdat[i+1]) { + if(Z1 - zdat[i] <= zdat[i + 1] - Z1) { + Z2 = zdat[i]; + } else { + Z2 = zdat[i+1]; + } + scale = (G4double)Z1/(G4double)Z2; + break; + } + } + } + std::ostringstream ost; ost << fDataDirectory << "icru"; if(isICRU90) { ost << "90"; } else { ost << "73"; } - ost << "/z" << Z << "_" << Z1 << ".dat"; + ost << "/z" << Z << "_" << Z2 << ".dat"; v = RetrieveVector(ost, false); - fElmData[Z][Z1] = v; + fElmData[Z][Z2] = v; + if(Z1 != Z2 && nullptr != v) { + fElmData[Z][Z1] = new G4PhysicsLogVector(*v); + fElmData[Z][Z1]->ScaleVector(1.0, scale); + } } } return v; @@ -299,6 +396,7 @@ G4IonICRU73Data::RetrieveVector(std::ostringstream& ost, G4bool warn) G4cout << "File " << ost.str() << " is opened by G4IonICRU73Data" << G4endl; } + // retrieve data from DB if(!fVector->Retrieve(filein, true)) { G4ExceptionDescription ed; @@ -310,12 +408,10 @@ G4IonICRU73Data::RetrieveVector(std::ostringstream& ost, G4bool warn) if(fSpline) { fVector->FillSecondDerivatives(); } v = new G4PhysicsLogVector(fEmin, fEmax, fNbins, fSpline); for(G4int i=0; i<=fNbins; ++i) { - G4double e = v->Energy(i); - G4double dedx = fVector->Value(e); - v->PutValue(i, dedx); + G4double e = v->Energy(i); + G4double dedx = fVector->Value(e); + v->PutValue(i, dedx); } - const G4double fact = CLHEP::MeV * CLHEP::cm2 /( 0.001 * CLHEP::g); - v->ScaleVector(CLHEP::MeV, fact); if(fSpline) { v->FillSecondDerivatives(); } if(fVerbose > 1) { G4cout << *v << G4endl; } } diff --git a/source/processes/electromagnetic/standard/src/G4KleinNishinaModel.cc b/source/processes/electromagnetic/standard/src/G4KleinNishinaModel.cc index 6b52085e4d..cea0c778d5 100644 --- a/source/processes/electromagnetic/standard/src/G4KleinNishinaModel.cc +++ b/source/processes/electromagnetic/standard/src/G4KleinNishinaModel.cc @@ -339,9 +339,9 @@ void G4KleinNishinaModel::SampleSecondaries( G4int Z = elm->GetZasInt(); auto as = (G4AtomicShellEnumerator)(i); const G4AtomicShell* shell = fAtomDeexcitation->GetAtomicShell(Z, as); - G4int nbefore = fvect->size(); + G4int nbefore = (G4int)fvect->size(); fAtomDeexcitation->GenerateParticles(fvect, shell, Z, index); - G4int nafter = fvect->size(); + G4int nafter = (G4int)fvect->size(); //G4cout << "N1= " << nbefore << " N2= " << nafter << G4endl; for (G4int j=nbefore; jGetKineticEnergy(); diff --git a/source/processes/electromagnetic/standard/src/G4LindhardSorensenIonModel.cc b/source/processes/electromagnetic/standard/src/G4LindhardSorensenIonModel.cc index df3b3cdf03..dea53e99d3 100644 --- a/source/processes/electromagnetic/standard/src/G4LindhardSorensenIonModel.cc +++ b/source/processes/electromagnetic/standard/src/G4LindhardSorensenIonModel.cc @@ -246,31 +246,42 @@ void G4LindhardSorensenIonModel::CorrectionsAlongStep( if(eloss >= preKinEnergy) { return; } const G4ParticleDefinition* p = dp->GetDefinition(); + SetParticle(p); const G4Material* mat = couple->GetMaterial(); const G4double eDensity = mat->GetElectronDensity(); - const G4double e = std::max(preKinEnergy - eloss*0.5, preKinEnergy*0.75); + const G4double e = std::max(preKinEnergy - eloss*0.5, preKinEnergy*0.5); const G4double tmax = MaxSecondaryEnergy(p, e); const G4double escaled = e*pRatio; const G4double tau = e/mass; - G4double q2 = corr->EffectiveChargeSquareRatio(p, mat, e); - GetModelOfFluctuations()->SetParticleAndCharge(p, q2); - const G4int Z = std::max(80, p->GetAtomicNumber()); + const G4double q20 = corr->EffectiveChargeSquareRatio(p, mat, preKinEnergy); + const G4double q2 = corr->EffectiveChargeSquareRatio(p, mat, e); + const G4int Z = p->GetAtomicNumber(); G4double res; if(escaled <= fElimit) { + // data from ICRU73 or ICRU90 res = fIonData->GetDEDX(mat, Z, escaled, G4Log(escaled)); + /* + G4cout << "GetDEDX for Z=" << Z << " in " << mat->GetName() + << " Escaled=" << escaled << " E=" + << e << " dEdx=" << res << G4endl; + */ if(res > 0.0) { - G4double cut = couple->GetProductionCuts()->GetProductionCut(1); + auto pcuts = couple->GetProductionCuts(); + G4double cut = (nullptr == pcuts) ? tmax : pcuts->GetProductionCut(1); if(cut < tmax) { - const G4double x = cut/tmax; + const G4double x = cut/tmax; res += (G4Log(x)*(tau + 1.)*(tau + 1.)/(tau * (tau + 2.0)) + 1.0 - x) *q2*CLHEP::twopi_mc2_rcl2*eDensity; } + res *= length; } else { - res = eloss*q2*corr->EffectiveChargeCorrection(p,mat,e)/chargeSquare; + // simplified correction + res = eloss*q2/q20; } } else { + // Lindhard-Sorensen model const G4double gam = tau + 1.0; const G4double beta2 = tau * (tau+2.0)/(gam*gam); G4double deltaL0 = 2.0*corr->BarkasCorrection(p, mat, e)*(charge-1.)/charge; @@ -288,9 +299,11 @@ void G4LindhardSorensenIonModel::CorrectionsAlongStep( } if(res > preKinEnergy) { res = preKinEnergy; } else if(res < 0.0) { res = eloss; } - //G4cout << "G4LindhardSorensenIonModel::CorrectionsAlongStep: E(GeV)=" - // << preKinEnergy/GeV << " eloss(MeV)=" << eloss - //<< " res(MeV)=" << res << G4endl; + /* + G4cout << "G4LindhardSorensenIonModel::CorrectionsAlongStep: E(GeV)=" + << preKinEnergy/GeV << " eloss(MeV)=" << eloss + << " res(MeV)=" << res << G4endl; + */ eloss = res; } diff --git a/source/processes/electromagnetic/standard/src/G4PAIModel.cc b/source/processes/electromagnetic/standard/src/G4PAIModel.cc index 3c07a77f62..492d46bbec 100644 --- a/source/processes/electromagnetic/standard/src/G4PAIModel.cc +++ b/source/processes/electromagnetic/standard/src/G4PAIModel.cc @@ -124,8 +124,8 @@ void G4PAIModel::Initialise(const G4ParticleDefinition* p, // Prepare initialization const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); - size_t numOfMat = G4Material::GetNumberOfMaterials(); - size_t numRegions = fPAIRegionVector.size(); + std::size_t numOfMat = G4Material::GetNumberOfMaterials(); + std::size_t numRegions = fPAIRegionVector.size(); // protect for unit tests if(0 == numRegions) { @@ -140,14 +140,14 @@ void G4PAIModel::Initialise(const G4ParticleDefinition* p, G4cout << "G4PAIModel is defined for " << numRegions << " regions " << "; number of materials " << numOfMat << G4endl; } - for(size_t iReg = 0; iReg(curReg); - for(size_t jMat = 0; jMatFindCouple(mat); - size_t n = fMaterialCutsCoupleVector.size(); + std::size_t n = fMaterialCutsCoupleVector.size(); /* G4cout << "Region: " << reg->GetName() << " " << reg << " Couple " << cutCouple @@ -166,7 +166,7 @@ void G4PAIModel::Initialise(const G4ParticleDefinition* p, // check if this couple is not already initialized G4bool isnew = true; if(0 < n) { - for(size_t i=0; iclearAndDestroy(); delete fPAIxscBank[i]; @@ -195,9 +195,9 @@ G4double G4PAIModelData::DEDXPerVolume(G4int coupleIndex, G4double scaledTkin, { // VI: iPlace is the low edge index of the bin // iPlace is in interval from 0 to (N-1) - size_t iPlace(0); + std::size_t iPlace(0); G4double dEdx = fdEdxTable[coupleIndex]->Value(scaledTkin, iPlace); - size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; + std::size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; /* G4cout << "G4PAIModelData::DEDXPerVolume: coupleIdx= " << coupleIndex << " Tscaled= " << scaledTkin << " cut= " << cut @@ -239,8 +239,8 @@ G4PAIModelData::CrossSectionPerVolume(G4int coupleIndex, G4double cross, cross1, cross2; // iPlace is in interval from 0 to (N-1) - size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); - size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; + std::size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); + std::size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; G4bool one = true; if(scaledTkin >= fParticleEnergyVector->Energy(nPlace)) { iPlace = nPlace; } @@ -285,8 +285,8 @@ G4double G4PAIModelData::SampleAlongStepTransfer(G4int coupleIndex, //G4cout << "=== G4PAIModelData::SampleAlongStepTransfer" << G4endl; G4double loss = 0.0; - size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); - size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; + std::size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); + std::size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; G4bool one = true; if(scaledTkin >= fParticleEnergyVector->Energy(nPlace)) { iPlace = nPlace; } @@ -335,7 +335,7 @@ G4double G4PAIModelData::SampleAlongStepTransfer(G4int coupleIndex, } if(meanNumber < 0.0) { return loss; } - G4int numOfCollisions = G4Poisson(meanNumber); + G4int numOfCollisions = (G4int)G4Poisson(meanNumber); //G4cout << "meanNumber= " << meanNumber << " N= " << numOfCollisions << G4endl; @@ -380,8 +380,8 @@ G4double G4PAIModelData::SamplePostStepTransfer(G4int coupleIndex, G4double transfer = 0.0; G4double rand = G4UniformRand(); - size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; - size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); + std::size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; + std::size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); G4bool one = true; if(scaledTkin >= fParticleEnergyVector->Energy(nPlace)) { iPlace = nPlace; } @@ -451,15 +451,15 @@ G4double G4PAIModelData::SamplePostStepTransfer(G4int coupleIndex, // indexes of particle kinetic enegry and random x-section G4double G4PAIModelData::GetEnergyTransfer(G4int coupleIndex, - size_t iPlace, + std::size_t iPlace, G4double position) const { G4PhysicsVector* v = (*(fPAIxscBank[coupleIndex]))(iPlace); if(position*v->Energy(0) >= (*v)[0]) { return v->Energy(0); } - size_t iTransferMax = v->GetVectorLength() - 1; + std::size_t iTransferMax = v->GetVectorLength() - 1; - size_t iTransfer; + std::size_t iTransfer; G4double x1(0.0), x2(0.0), y1(0.0), y2(0.0), energyTransfer; //G4cout << "iPlace= " << iPlace << " iTransferMax= " << iTransferMax << G4endl; diff --git a/source/processes/electromagnetic/standard/src/G4PAIPhotData.cc b/source/processes/electromagnetic/standard/src/G4PAIPhotData.cc index f3513232b9..52ca807cf8 100644 --- a/source/processes/electromagnetic/standard/src/G4PAIPhotData.cc +++ b/source/processes/electromagnetic/standard/src/G4PAIPhotData.cc @@ -93,10 +93,10 @@ G4PAIPhotData::G4PAIPhotData(G4double tmin, G4double tmax, G4int ver) G4PAIPhotData::~G4PAIPhotData() { //G4cout << "G4PAIPhotData::~G4PAIPhotData() " << this << G4endl; - size_t n = fPAIxscBank.size(); + std::size_t n = fPAIxscBank.size(); if(0 < n) { - for(size_t i=0; iGetTableSize(); - size_t jMatCC; + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); + G4int jMatCC; - for (jMatCC = 0; jMatCC < numOfCouples; jMatCC++ ) + for (jMatCC = 0; jMatCC < numOfCouples; ++jMatCC ) { if( couple == theCoupleTable->GetMaterialCutsCouple(jMatCC) ) break; } - if( jMatCC == numOfCouples && jMatCC > 0 ) jMatCC--; + if( jMatCC == numOfCouples && jMatCC > 0 ) --jMatCC; const vector* deltaCutInKineticEnergy = theCoupleTable->GetEnergyCutsVector(idxG4ElectronCut); const vector* photonCutInKineticEnergy = theCoupleTable->GetEnergyCutsVector(idxG4GammaCut); @@ -273,8 +273,8 @@ G4double G4PAIPhotData::DEDXPerVolume(G4int coupleIndex, G4double scaledTkin, { // VI: iPlace is the low edge index of the bin // iPlace is in interval from 0 to (N-1) - size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); - size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; + std::size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); + std::size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; G4bool one = true; if(scaledTkin >= fParticleEnergyVector->Energy(nPlace)) { iPlace = nPlace; } @@ -314,8 +314,8 @@ G4PAIPhotData::CrossSectionPerVolume(G4int coupleIndex, // iPlace is in interval from 0 to (N-1) - size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); - size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; + std::size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); + std::size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; G4bool one = true; @@ -372,8 +372,8 @@ G4PAIPhotData::GetPlasmonRatio(G4int coupleIndex, G4double scaledTkin) const G4double cross, xscEl, xscEl2, xscPh, xscPh2, plRatio; // iPlace is in interval from 0 to (N-1) - size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); - size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; + std::size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); + std::size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; G4bool one = true; @@ -441,8 +441,8 @@ G4double G4PAIPhotData::SampleAlongStepTransfer(G4int coupleIndex, G4double omega; G4double position, E1, E2, W1, W2, W, dNdxCut1, dNdxCut2, meanNumber; - size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); - size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; + std::size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); + std::size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; G4bool one = true; @@ -487,7 +487,7 @@ G4double G4PAIPhotData::SampleAlongStepTransfer(G4int coupleIndex, } if( meanNumber <= 0.0) return 0.0; - G4int numOfCollisions = G4Poisson(meanNumber); + G4int numOfCollisions = (G4int)G4Poisson(meanNumber); //G4cout << "N= " << numOfCollisions << G4endl; @@ -533,8 +533,8 @@ G4double G4PAIPhotData::SampleAlongStepPhotonTransfer(G4int coupleIndex, G4double omega; G4double position, E1, E2, W1, W2, W, dNdxCut1, dNdxCut2, meanNumber; - size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); - size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; + std::size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); + std::size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; G4bool one = true; @@ -579,7 +579,7 @@ G4double G4PAIPhotData::SampleAlongStepPhotonTransfer(G4int coupleIndex, } if( meanNumber <= 0.0) return 0.0; - G4int numOfCollisions = G4Poisson(meanNumber); + G4int numOfCollisions = (G4int)G4Poisson(meanNumber); //G4cout << "N= " << numOfCollisions << G4endl; @@ -625,8 +625,8 @@ G4double G4PAIPhotData::SampleAlongStepPlasmonTransfer(G4int coupleIndex, G4double omega; G4double position, E1, E2, W1, W2, W, dNdxCut1, dNdxCut2, meanNumber; - size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); - size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; + std::size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); + std::size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; G4bool one = true; @@ -671,7 +671,7 @@ G4double G4PAIPhotData::SampleAlongStepPlasmonTransfer(G4int coupleIndex, } if( meanNumber <= 0.0) return 0.0; - G4int numOfCollisions = G4Poisson(meanNumber); + G4int numOfCollisions = (G4int)G4Poisson(meanNumber); //G4cout << "N= " << numOfCollisions << G4endl; @@ -718,9 +718,9 @@ G4double G4PAIPhotData::SamplePostStepTransfer(G4int coupleIndex, G4double transfer = 0.0; G4double rand = G4UniformRand(); - size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; + std::size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; - // size_t iTransfer, iTr1, iTr2; + // std::size_t iTransfer, iTr1, iTr2; G4double position, dNdxCut1, dNdxCut2, E1, E2, W1, W2, W; G4PhysicsVector* cutv = fdNdxCutTable[coupleIndex]; @@ -738,7 +738,7 @@ G4double G4PAIPhotData::SamplePostStepTransfer(G4int coupleIndex, } else { - size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); + std::size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); dNdxCut1 = (*cutv)[iPlace]; dNdxCut2 = (*cutv)[iPlace+1]; @@ -774,9 +774,9 @@ G4double G4PAIPhotData::SamplePostStepPhotonTransfer(G4int coupleIndex, G4double transfer = 0.0; G4double rand = G4UniformRand(); - size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; + std::size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; - // size_t iTransfer, iTr1, iTr2; + // std::size_t iTransfer, iTr1, iTr2; G4double position, dNdxCut1, dNdxCut2, E1, E2, W1, W2, W; G4PhysicsVector* cutv = fdNdxCutPhotonTable[coupleIndex]; @@ -795,7 +795,7 @@ G4double G4PAIPhotData::SamplePostStepPhotonTransfer(G4int coupleIndex, } else { - size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); + std::size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); dNdxCut1 = (*cutv)[iPlace]; dNdxCut2 = (*cutv)[iPlace+1]; @@ -832,9 +832,9 @@ G4double G4PAIPhotData::SamplePostStepPlasmonTransfer(G4int coupleIndex, G4double transfer = 0.0; G4double rand = G4UniformRand(); - size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; + std::size_t nPlace = fParticleEnergyVector->GetVectorLength() - 1; - // size_t iTransfer, iTr1, iTr2; + // std::size_t iTransfer, iTr1, iTr2; G4double position, dNdxCut1, dNdxCut2, E1, E2, W1, W2, W; G4PhysicsVector* cutv = fdNdxCutPlasmonTable[coupleIndex]; @@ -852,7 +852,7 @@ G4double G4PAIPhotData::SamplePostStepPlasmonTransfer(G4int coupleIndex, } else { - size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); + std::size_t iPlace = fParticleEnergyVector->FindBin(scaledTkin, 0); dNdxCut1 = (*cutv)[iPlace]; dNdxCut2 = (*cutv)[iPlace+1]; @@ -887,15 +887,15 @@ G4double G4PAIPhotData::SamplePostStepPlasmonTransfer(G4int coupleIndex, // indexes of particle kinetic enegry and random x-section G4double G4PAIPhotData::GetEnergyTransfer(G4int coupleIndex, - size_t iPlace, - G4double position) const + std::size_t iPlace, + G4double position) const { G4PhysicsVector* v = (*(fPAIxscBank[coupleIndex]))(iPlace); if(position*v->Energy(0) >= (*v)[0]) { return v->Energy(0); } - size_t iTransferMax = v->GetVectorLength() - 1; + std::size_t iTransferMax = v->GetVectorLength() - 1; - size_t iTransfer; + std::size_t iTransfer; G4double x1(0.0), x2(0.0), y1(0.0), y2(0.0), energyTransfer; for(iTransfer=1; iTransfer<=iTransferMax; ++iTransfer) { @@ -938,15 +938,15 @@ G4double G4PAIPhotData::GetEnergyTransfer(G4int coupleIndex, ///////////////////////////////////////////////////////////////// G4double G4PAIPhotData::GetEnergyPhotonTransfer(G4int coupleIndex, - size_t iPlace, - G4double position) const + std::size_t iPlace, + G4double position) const { G4PhysicsVector* v = (*(fPAIphotonBank[coupleIndex]))(iPlace); if(position*v->Energy(0) >= (*v)[0]) return v->Energy(0); - size_t iTransferMax = v->GetVectorLength() - 1; + std::size_t iTransferMax = v->GetVectorLength() - 1; - size_t iTransfer; + std::size_t iTransfer; G4double x1(0.0), x2(0.0), y1(0.0), y2(0.0), energyTransfer; for(iTransfer=1; iTransfer<=iTransferMax; ++iTransfer) @@ -999,16 +999,16 @@ G4double G4PAIPhotData::GetEnergyPhotonTransfer(G4int coupleIndex, ///////////////////////////////////////////////////////////////////////// G4double G4PAIPhotData::GetEnergyPlasmonTransfer(G4int coupleIndex, - size_t iPlace, - G4double position) const + std::size_t iPlace, + G4double position) const { G4PhysicsVector* v = (*(fPAIplasmonBank[coupleIndex]))(iPlace); if( position*v->Energy(0) >= (*v)[0] ) return v->Energy(0); - size_t iTransferMax = v->GetVectorLength() - 1; + std::size_t iTransferMax = v->GetVectorLength() - 1; - size_t iTransfer; + std::size_t iTransfer; G4double x1(0.0), x2(0.0), y1(0.0), y2(0.0), energyTransfer; for(iTransfer = 1; iTransfer <= iTransferMax; ++iTransfer) diff --git a/source/processes/electromagnetic/standard/src/G4PAIxSection.cc b/source/processes/electromagnetic/standard/src/G4PAIxSection.cc index 8e9f14ad3a..9db4ac525f 100644 --- a/source/processes/electromagnetic/standard/src/G4PAIxSection.cc +++ b/source/processes/electromagnetic/standard/src/G4PAIxSection.cc @@ -127,7 +127,7 @@ G4PAIxSection::G4PAIxSection() G4PAIxSection::G4PAIxSection(G4MaterialCutsCouple* matCC) { fDensity = matCC->GetMaterial()->GetDensity(); - G4int matIndex = matCC->GetMaterial()->GetIndex(); + G4int matIndex = (G4int)matCC->GetMaterial()->GetIndex(); fMaterialIndex = matIndex; const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); @@ -138,15 +138,15 @@ G4PAIxSection::G4PAIxSection(G4MaterialCutsCouple* matCC) G4int i, j; fMatSandiaMatrix = new G4OrderedTable(); - for (i = 0; i < fSandia->GetMaxInterval()-1; i++) + for (i = 0; i < fSandia->GetMaxInterval()-1; ++i) { fMatSandiaMatrix->push_back(new G4DataVector(5,0.)); } - for (i = 0; i < fSandia->GetMaxInterval()-1; i++) + for (i = 0; i < fSandia->GetMaxInterval()-1; ++i) { (*(*fMatSandiaMatrix)[i])[0] = fSandia->GetSandiaMatTable(i,0); - for(j = 1; j < 5; j++) + for(j = 1; j < 5; ++j) { (*(*fMatSandiaMatrix)[i])[j] = fSandia->GetSandiaMatTable(i,j)*fDensity; } @@ -444,11 +444,11 @@ G4PAIxSection::G4PAIxSection( G4int materialIndex, fMaterialIndex = materialIndex; fDensity = (*theMaterialTable)[materialIndex]->GetDensity(); fElectronDensity = (*theMaterialTable)[materialIndex]->GetElectronDensity(); - numberOfElements = (*theMaterialTable)[materialIndex]->GetNumberOfElements(); + numberOfElements = (G4int)(*theMaterialTable)[materialIndex]->GetNumberOfElements(); G4int* thisMaterialZ = new G4int[numberOfElements]; - for( i = 0; i < numberOfElements; i++ ) + for( i = 0; i < numberOfElements; ++i ) { thisMaterialZ[i] = (G4int)(*theMaterialTable)[materialIndex]-> GetElement(i)->GetZ(); @@ -745,7 +745,7 @@ void G4PAIxSection::Initialize( const G4Material* material, void G4PAIxSection::ComputeLowEnergyCof(const G4Material* material) { - G4int i, numberOfElements = material->GetNumberOfElements(); + G4int i, numberOfElements = (G4int)material->GetNumberOfElements(); G4double sumZ = 0., sumCof = 0.; static const G4double p0 = 1.20923e+00; @@ -755,13 +755,13 @@ void G4PAIxSection::ComputeLowEnergyCof(const G4Material* material) G4double* thisMaterialZ = new G4double[numberOfElements]; G4double* thisMaterialCof = new G4double[numberOfElements]; - for( i = 0; i < numberOfElements; i++ ) + for( i = 0; i < numberOfElements; ++i ) { thisMaterialZ[i] = material->GetElement(i)->GetZ(); sumZ += thisMaterialZ[i]; thisMaterialCof[i] = p0+p1*thisMaterialZ[i]+p2*thisMaterialZ[i]*thisMaterialZ[i]; } - for( i = 0; i < numberOfElements; i++ ) + for( i = 0; i < numberOfElements; ++i ) { sumCof += thisMaterialCof[i]*thisMaterialZ[i]/sumZ; } @@ -779,7 +779,7 @@ void G4PAIxSection::ComputeLowEnergyCof(const G4Material* material) void G4PAIxSection::ComputeLowEnergyCof() { const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); - G4int i, numberOfElements = (*theMaterialTable)[fMaterialIndex]->GetNumberOfElements(); + G4int i, numberOfElements = (G4int)(*theMaterialTable)[fMaterialIndex]->GetNumberOfElements(); G4double sumZ = 0., sumCof = 0.; const G4double p0 = 1.20923e+00; @@ -789,13 +789,13 @@ void G4PAIxSection::ComputeLowEnergyCof() G4double* thisMaterialZ = new G4double[numberOfElements]; G4double* thisMaterialCof = new G4double[numberOfElements]; - for( i = 0; i < numberOfElements; i++ ) + for( i = 0; i < numberOfElements; ++i ) { thisMaterialZ[i] = (*theMaterialTable)[fMaterialIndex]->GetElement(i)->GetZ(); sumZ += thisMaterialZ[i]; thisMaterialCof[i] = p0+p1*thisMaterialZ[i]+p2*thisMaterialZ[i]*thisMaterialZ[i]; } - for( i = 0; i < numberOfElements; i++ ) + for( i = 0; i < numberOfElements; ++i ) { sumCof += thisMaterialCof[i]*thisMaterialZ[i]/sumZ; } diff --git a/source/processes/electromagnetic/standard/src/G4PAIySection.cc b/source/processes/electromagnetic/standard/src/G4PAIySection.cc index 506946d5eb..b71cc4702d 100644 --- a/source/processes/electromagnetic/standard/src/G4PAIySection.cc +++ b/source/processes/electromagnetic/standard/src/G4PAIySection.cc @@ -244,7 +244,7 @@ void G4PAIySection::Initialize( const G4Material* material, void G4PAIySection::ComputeLowEnergyCof(const G4Material* material) { - G4int i, numberOfElements = material->GetNumberOfElements(); + G4int i, numberOfElements = (G4int)material->GetNumberOfElements(); G4double sumZ = 0., sumCof = 0.; static const G4double p0 = 1.20923e+00; diff --git a/source/processes/electromagnetic/standard/src/G4PEEffectFluoModel.cc b/source/processes/electromagnetic/standard/src/G4PEEffectFluoModel.cc index 02f40de9bd..99e91fd74a 100644 --- a/source/processes/electromagnetic/standard/src/G4PEEffectFluoModel.cc +++ b/source/processes/electromagnetic/standard/src/G4PEEffectFluoModel.cc @@ -69,8 +69,6 @@ G4PEEffectFluoModel::G4PEEffectFluoModel(const G4String& nam) theElectron = G4Electron::Electron(); fminimalEnergy = 1.0*CLHEP::eV; SetDeexcitationFlag(true); - fParticleChange = nullptr; - fAtomDeexcitation = nullptr; fSandiaCof.resize(4,0.0); @@ -88,12 +86,13 @@ void G4PEEffectFluoModel::Initialise(const G4ParticleDefinition*, const G4DataVector&) { fAtomDeexcitation = G4LossTableManager::Instance()->AtomDeexcitation(); + fPEBelowKShell = G4EmParameters::Instance()->PhotoeffectBelowKShell(); if(nullptr == fParticleChange) { fParticleChange = GetParticleChangeForGamma(); } - size_t nmat = G4Material::GetNumberOfMaterials(); + std::size_t nmat = G4Material::GetNumberOfMaterials(); fMatEnergyTh.resize(nmat, 0.0); - for(size_t i=0; iGetSandiaTable()->GetSandiaCofForMaterial(0, 0); //G4cout << "G4PEEffectFluoModel::Initialise Eth(eV)= " @@ -176,16 +175,17 @@ G4PEEffectFluoModel::SampleSecondaries(std::vector* fvect, G4double edep = energy; - // Normally one shell is available - if (i < nShells) { - + // photo-electron is not sampled if shell is not found or + // the flag of photoeffect is "false" and shell is no K + if ( (fPEBelowKShell || 0 == i) && i < nShells ) { + G4double bindingEnergy = anElement->GetAtomicShell(i); edep = bindingEnergy; G4double esec = 0.0; - // sample deexcitation + // sample deexcitation cascade // - if(fAtomDeexcitation) { + if(nullptr != fAtomDeexcitation) { G4int index = couple->GetIndex(); if(fAtomDeexcitation->CheckDeexcitationActiveRegion(index)) { G4int Z = G4lrint(anElement->GetZ()); @@ -196,10 +196,10 @@ G4PEEffectFluoModel::SampleSecondaries(std::vector* fvect, bindingEnergy = eshell; edep = eshell; } - G4int nbefore = fvect->size(); + std::size_t nbefore = fvect->size(); fAtomDeexcitation->GenerateParticles(fvect, shell, Z, index); - G4int nafter = fvect->size(); - for (G4int j=nbefore; jsize(); + for (std::size_t j=nbefore; jGetKineticEnergy(); if(esec + e > edep) { // correct energy in order to have energy balance @@ -217,7 +217,7 @@ G4PEEffectFluoModel::SampleSecondaries(std::vector* fvect, << G4endl; */ // delete the rest of secondaries (should not happens) - for (G4int jj=nafter-1; jj>j; --jj) { + for (std::size_t jj=nafter-1; jj>j; --jj) { delete (*fvect)[jj]; fvect->pop_back(); } diff --git a/source/processes/electromagnetic/standard/src/G4PSTARStopping.cc b/source/processes/electromagnetic/standard/src/G4PSTARStopping.cc index 9054cf2292..131d4e41be 100644 --- a/source/processes/electromagnetic/standard/src/G4PSTARStopping.cc +++ b/source/processes/electromagnetic/standard/src/G4PSTARStopping.cc @@ -82,7 +82,7 @@ void G4PSTARStopping::PrintWarning(G4int i) const void G4PSTARStopping::Initialise() { // this method may be called several times during initialisation - G4int nmat = G4Material::GetNumberOfMaterials(); + G4int nmat = (G4int)G4Material::GetNumberOfMaterials(); if(nmat == nvectors) { return; } // loop via material list to add extra data diff --git a/source/processes/electromagnetic/standard/src/G4PairProductionRelModel.cc b/source/processes/electromagnetic/standard/src/G4PairProductionRelModel.cc index 180005138b..7605f8a4c0 100644 --- a/source/processes/electromagnetic/standard/src/G4PairProductionRelModel.cc +++ b/source/processes/electromagnetic/standard/src/G4PairProductionRelModel.cc @@ -131,7 +131,7 @@ G4PairProductionRelModel::~G4PairProductionRelModel() { if (IsMaster()) { // clear ElementData container - for (size_t iz = 0; iz < gElementData.size(); ++iz) { + for (std::size_t iz = 0; iz < gElementData.size(); ++iz) { if (gElementData[iz]) delete gElementData[iz]; } gElementData.clear(); @@ -497,14 +497,14 @@ G4PairProductionRelModel::SampleSecondaries(std::vector* fve // should be called only by the master and at initialisation void G4PairProductionRelModel::InitialiseElementData() { - G4int size = gElementData.size(); + G4int size = (G4int)gElementData.size(); if (size < gMaxZet+1) { gElementData.resize(gMaxZet+1, nullptr); } // create for all elements that are in the detector const G4ElementTable* elemTable = G4Element::GetElementTable(); - size_t numElems = (*elemTable).size(); - for (size_t ie = 0; ie < numElems; ++ie) { + std::size_t numElems = (*elemTable).size(); + for (std::size_t ie = 0; ie < numElems; ++ie) { const G4Element* elem = (*elemTable)[ie]; const G4int iz = std::min(gMaxZet, elem->GetZasInt()); if (!gElementData[iz]) { // create it if doesn't exist yet diff --git a/source/processes/electromagnetic/standard/src/G4SBBremTable.cc b/source/processes/electromagnetic/standard/src/G4SBBremTable.cc index 8fcac94a30..6c09839313 100644 --- a/source/processes/electromagnetic/standard/src/G4SBBremTable.cc +++ b/source/processes/electromagnetic/standard/src/G4SBBremTable.cc @@ -97,7 +97,7 @@ double G4SBBremTable::SampleEnergyTransfer(const G4double eekin, const G4double lElEnergy = leekin; const SamplingTablePerZ* stZ = fSBSamplingTables[izet]; // get the gamma cut of this Z that corresponds to the current mat-cuts - const size_t gamCutIndx = stZ->fMatCutIndxToGamCutIndx[matCutIndx]; + const std::size_t gamCutIndx = stZ->fMatCutIndxToGamCutIndx[matCutIndx]; // gcut was not found: should never happen (only in verbose mode) if (gamCutIndx >= stZ->fNumGammaCuts || stZ->fGammaECuts[gamCutIndx]!=gcut) { G4String msg = " Gamma cut="+std::to_string(gcut) + " [MeV] was not found "; @@ -215,9 +215,9 @@ void G4SBBremTable::BuildSamplingTables() { const G4ProductionCutsTable *thePCTable = G4ProductionCutsTable::GetProductionCutsTable(); // a temporary vector to store one element - std::vector vtmp(1,0); - size_t numMatCuts = thePCTable->GetTableSize(); - for (size_t imc=0; imc vtmp(1,0); + std::size_t numMatCuts = thePCTable->GetTableSize(); + for (G4int imc=0; imc<(G4int)numMatCuts; ++imc) { const G4MaterialCutsCouple *matCut = thePCTable->GetMaterialCutsCouple(imc); if (!matCut->IsUsed()) { continue; @@ -226,8 +226,8 @@ void G4SBBremTable::BuildSamplingTables() { const G4ElementVector* elemVect = mat->GetElementVector(); const G4int indxMC = matCut->GetIndex(); const G4double gamCut = (*(thePCTable->GetEnergyCutsVector(0)))[indxMC]; - const size_t numElems = elemVect->size(); - for (size_t ielem=0; ielemsize(); + for (std::size_t ielem=0; ielemGetZasInt()),1); if (!fSBSamplingTables[izet]) { @@ -240,7 +240,7 @@ void G4SBBremTable::BuildSamplingTables() { // add current gamma cut to the list of this element data (only if this // cut value is still not tehre) const std::vector &cVect = fSBSamplingTables[izet]->fGammaECuts; - size_t indx = std::find(cVect.begin(), cVect.end(), gamCut)-cVect.begin(); + std::size_t indx = std::find(cVect.cbegin(), cVect.cend(), gamCut)-cVect.cbegin(); if (indx==cVect.size()) { vtmp[0] = imc; fSBSamplingTables[izet]->fGamCutIndxToMatCutIndx.push_back(vtmp); @@ -255,7 +255,7 @@ void G4SBBremTable::BuildSamplingTables() { } void G4SBBremTable::InitSamplingTables() { - const size_t numMatCuts = G4ProductionCutsTable::GetProductionCutsTable() + const std::size_t numMatCuts = G4ProductionCutsTable::GetProductionCutsTable() ->GetTableSize(); for (G4int iz=1; izfTablesPerEnergy[iee]->fCumCutValues.resize(stZ->fNumGammaCuts,1.); // sort gamma cuts and other members accordingly - for (size_t i=0; ifNumGammaCuts-1; ++i) { - for (size_t j=i+1; jfNumGammaCuts; ++j) { + for (std::size_t i=0; ifNumGammaCuts-1; ++i) { + for (std::size_t j=i+1; jfNumGammaCuts; ++j) { if (stZ->fGammaECuts[j]fGammaECuts[i]) { G4double dum0 = stZ->fGammaECuts[i]; G4double dum1 = stZ->fLogGammaECuts[i]; - std::vector dumv = stZ->fGamCutIndxToMatCutIndx[i]; + std::vector dumv = stZ->fGamCutIndxToMatCutIndx[i]; stZ->fGammaECuts[i] = stZ->fGammaECuts[j]; stZ->fLogGammaECuts[i] = stZ->fLogGammaECuts[j]; stZ->fGamCutIndxToMatCutIndx[i] = stZ->fGamCutIndxToMatCutIndx[j]; @@ -287,26 +287,26 @@ void G4SBBremTable::InitSamplingTables() { } // set couple indices to store the corresponding gamma cut index stZ->fMatCutIndxToGamCutIndx.resize(numMatCuts,-1); - for (size_t i=0; ifGamCutIndxToMatCutIndx.size(); ++i) { - for (size_t j=0; jfGamCutIndxToMatCutIndx[i].size(); ++j) { + for (std::size_t i=0; ifGamCutIndxToMatCutIndx.size(); ++i) { + for (std::size_t j=0; jfGamCutIndxToMatCutIndx[i].size(); ++j) { stZ->fMatCutIndxToGamCutIndx[stZ->fGamCutIndxToMatCutIndx[i][j]] = i; } } // clear temporary vector - for (size_t i=0; ifGamCutIndxToMatCutIndx.size(); ++i) { + for (std::size_t i=0; ifGamCutIndxToMatCutIndx.size(); ++i) { stZ->fGamCutIndxToMatCutIndx[i].clear(); } stZ->fGamCutIndxToMatCutIndx.clear(); // init for each gamma cut that are below the e- energy - for (size_t ic=0; icfNumGammaCuts; ++ic) { + for (std::size_t ic=0; icfNumGammaCuts; ++ic) { const G4double gamCut = stZ->fGammaECuts[ic]; if (elEnergy>gamCut) { // find lower kappa index; compute the 'xi' i.e. cummulative value for // gamCut/elEnergy const G4double cutKappa = std::max(1.e-12, gamCut/elEnergy); - const G4int iKLow = (cutKappa>1.e-12) - ? std::lower_bound(fKappaVect.begin(), fKappaVect.end(), cutKappa) - - fKappaVect.begin() -1 + const std::size_t iKLow = (cutKappa>1.e-12) + ? std::lower_bound(fKappaVect.cbegin(), fKappaVect.cend(), cutKappa) + - fKappaVect.cbegin() -1 : 0; const STPoint* stpL = &(stZ->fTablesPerEnergy[iee]->fSTable[iKLow]); const STPoint* stpH = &(stZ->fTablesPerEnergy[iee]->fSTable[iKLow+1]); @@ -408,8 +408,8 @@ void G4SBBremTable::LoadSamplingTables(G4int iz) { // // Determine min/max elektron kinetic energies and indices const G4double minGammaCut = zTable->fGammaECuts[ std::min_element( - std::begin(zTable->fGammaECuts),std::end(zTable->fGammaECuts)) - -std::begin(zTable->fGammaECuts)]; + std::cbegin(zTable->fGammaECuts),std::cend(zTable->fGammaECuts)) + -std::cbegin(zTable->fGammaECuts)]; const G4double elEmin = std::max(fUsedLowEenergy, minGammaCut); const G4double elEmax = fUsedHighEenergy; // find low/high elecrton energy indices where tables will be needed @@ -418,8 +418,9 @@ void G4SBBremTable::LoadSamplingTables(G4int iz) { if (elEmin>=fElEnergyVect[fNumElEnergy-1]) { zTable->fMinElEnergyIndx = fNumElEnergy-1; } else { - zTable->fMinElEnergyIndx = std::lower_bound(fElEnergyVect.begin(), - fElEnergyVect.end(), elEmin) - fElEnergyVect.begin() -1; + zTable->fMinElEnergyIndx = G4int(std::lower_bound(fElEnergyVect.cbegin(), + fElEnergyVect.cend(), elEmin) + - fElEnergyVect.cbegin() -1); } // high: zTable->fMaxElEnergyIndx = 0; @@ -427,8 +428,9 @@ void G4SBBremTable::LoadSamplingTables(G4int iz) { zTable->fMaxElEnergyIndx = fNumElEnergy-1; } else { // lower + 1 - zTable->fMaxElEnergyIndx = std::lower_bound(fElEnergyVect.begin(), - fElEnergyVect.end(), elEmax) - fElEnergyVect.begin(); + zTable->fMaxElEnergyIndx = G4int(std::lower_bound(fElEnergyVect.cbegin(), + fElEnergyVect.cend(), elEmax) + - fElEnergyVect.cbegin()); } // protect if (zTable->fMaxElEnergyIndx<=zTable->fMinElEnergyIndx) { @@ -489,7 +491,7 @@ void G4SBBremTable::ClearSamplingTables() { // if (fSBSamplingTables[iz]) { // G4cerr<< " ----> There are " << fSBSamplingTables[iz]->fNumGammaCuts // << " g-cut for Z = " << iz << G4endl; -// for (size_t ic=0; icfGammaECuts.size(); ++ic) +// for (std::size_t ic=0; icfGammaECuts.size(); ++ic) // G4cerr<< " i = " << ic << " " // << fSBSamplingTables[iz]->fGammaECuts[ic] << G4endl; // } @@ -527,7 +529,7 @@ void G4SBBremTable::ReadCompressedFile(const G4String &fname, std::ifstream in(compfilename, std::ios::binary | std::ios::ate); if (in.good()) { // get current position in the stream (was set to the end) - int fileSize = in.tellg(); + std::streamoff fileSize = in.tellg(); // set current position being the beginning of the stream in.seekg(0,std::ios::beg); // create (zlib) byte buffer for the data diff --git a/source/processes/electromagnetic/standard/src/G4SeltzerBergerModel.cc b/source/processes/electromagnetic/standard/src/G4SeltzerBergerModel.cc index 6e3675e5cf..8cb78233ce 100644 --- a/source/processes/electromagnetic/standard/src/G4SeltzerBergerModel.cc +++ b/source/processes/electromagnetic/standard/src/G4SeltzerBergerModel.cc @@ -102,7 +102,7 @@ G4SeltzerBergerModel::~G4SeltzerBergerModel() { // delete SB-DCS data per Z if (IsMaster()) { - for (size_t iz = 0; iz < gMaxZet; ++iz) { + for (std::size_t iz = 0; iz < gMaxZet; ++iz) { if (gSBDCSData[iz]) { delete gSBDCSData[iz]; gSBDCSData[iz] = nullptr; @@ -126,8 +126,8 @@ void G4SeltzerBergerModel::Initialise(const G4ParticleDefinition* p, if (IsMaster()) { auto theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - for(size_t j=0; jGetTableSize(); + for(G4int j=0; jGetMaterialCutsCouple(j)->GetMaterial(); auto elmVec = mat->GetElementVector(); for (auto & elm : *elmVec) { diff --git a/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc b/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc index 7e7fe4ee45..f0aa9e3f8b 100644 --- a/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc +++ b/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc @@ -221,7 +221,7 @@ G4UniversalFluctuation::SampleGlandz(CLHEP::HepRandomEngine* rndmEngineF, const G4double w3 = alfa*e0; if(tcut > w3) { const G4double w = (tcut-w3)/tcut; - const G4int nnb = G4Poisson(p3); + const G4int nnb = (G4int)G4Poisson(p3); if(nnb > 0) { if(nnb > sizearray) { sizearray = nnb; diff --git a/source/processes/electromagnetic/standard/src/G4UrbanFluctuation.cc b/source/processes/electromagnetic/standard/src/G4UrbanFluctuation.cc index 23bf39ad5a..1ae4ca7643 100644 --- a/source/processes/electromagnetic/standard/src/G4UrbanFluctuation.cc +++ b/source/processes/electromagnetic/standard/src/G4UrbanFluctuation.cc @@ -137,7 +137,7 @@ G4double G4UrbanFluctuation::SampleGlandz(CLHEP::HepRandomEngine* rndmEngineF, const G4double w3 = alfa*e0; if(tcut > w3) { const G4double w = (tcut-w3)/tcut; - const G4int nnb = G4Poisson(p3); + const G4int nnb = (G4int)G4Poisson(p3); if(nnb > 0) { if(nnb > sizearray) { sizearray = nnb; diff --git a/source/processes/electromagnetic/standard/src/G4UrbanMscModel.cc b/source/processes/electromagnetic/standard/src/G4UrbanMscModel.cc index 1764c047dd..d40d5b3764 100644 --- a/source/processes/electromagnetic/standard/src/G4UrbanMscModel.cc +++ b/source/processes/electromagnetic/standard/src/G4UrbanMscModel.cc @@ -23,7 +23,6 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// // ------------------------------------------------------------------- // // GEANT4 Class file @@ -48,7 +47,6 @@ // ------------------------------------------------------------------- // In its present form the model can be used for simulation // of the e-/e+ multiple scattering -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -113,7 +111,6 @@ G4UrbanMscModel::G4UrbanMscModel(const G4String& nam) latDisplasmentbackup = false; dispAlg96 = true; - rangecut = geombig; drr = 0.35; finalr = 10.*CLHEP::um; @@ -431,7 +428,7 @@ void G4UrbanMscModel::StartTracking(G4Track* track) firstStep = true; insideskin = false; fr = facrange; - tlimit = tgeom = rangeinit = rangecut = geombig; + tlimit = tgeom = rangeinit = geombig; smallstep = 1.e10; stepmin = tlimitminfix; tlimitmin = 10.*tlimitminfix; @@ -504,13 +501,6 @@ G4double G4UrbanMscModel::ComputeTruePathLengthLimit( < 0.0) { SetEmModel(new G4BraggModel()); } else { SetEmModel(new G4ICRU73QOModel()); } } + // to compute ranges correctly we have to use low-energy + // model even if activation limit is high EmModel(0)->SetLowEnergyLimit(emin); - EmModel(0)->SetHighEnergyLimit(eth); - - if (nullptr == FluctModel()) { - G4bool ion = (pname == "GenericIon" || pname == "alpha"); - SetFluctModel(G4EmStandUtil::ModelOfFluctuations(ion)); - } + + // high energy limit may be eth or DBL_MAX + G4double emax1 = (EmModel(0)->HighEnergyLimit() < emax) ? eth : emax; + EmModel(0)->SetHighEnergyLimit(emax1); AddEmModel(1, EmModel(0), FluctModel()); + + // second model is used if the first does not cover energy range + if(emax1 < emax) { + if (nullptr == EmModel(1)) { SetEmModel(new G4BetheBlochModel()); } + EmModel(1)->SetLowEnergyLimit(emax1); - if (nullptr == EmModel(1)) { SetEmModel(new G4BetheBlochModel()); } - EmModel(1)->SetLowEnergyLimit(eth); - EmModel(1)->SetHighEnergyLimit(emax); - AddEmModel(1, EmModel(1), FluctModel()); - + // for extremely heavy particles upper limit of the model + // should be increased + emax = std::max(emax, eth*10); + EmModel(1)->SetHighEnergyLimit(emax); + AddEmModel(2, EmModel(1), FluctModel()); + } isInitialised = true; } } diff --git a/source/processes/electromagnetic/standard/src/G4ionIonisation.cc b/source/processes/electromagnetic/standard/src/G4ionIonisation.cc index bdcfd91654..a183653cc6 100644 --- a/source/processes/electromagnetic/standard/src/G4ionIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4ionIonisation.cc @@ -124,7 +124,6 @@ void G4ionIonisation::InitialiseEnergyLossProcess( const G4ParticleDefinition* theBaseParticle = nullptr; const G4int pdg = part->GetPDGEncoding(); - // define base particle if(part == bpart) { theBaseParticle = nullptr; } else if(nullptr != bpart) { @@ -134,31 +133,40 @@ void G4ionIonisation::InitialiseEnergyLossProcess( } else { theBaseParticle = ion; } - SetBaseParticle(theBaseParticle); - if (nullptr == EmModel(0)) { SetEmModel(new G4BraggIonModel()); } + // model limit defined for protons + eth = 2*CLHEP::MeV*part->GetPDGMass()/CLHEP::proton_mass_c2; G4EmParameters* param = G4EmParameters::Instance(); - EmModel(0)->SetLowEnergyLimit(param->MinKinEnergy()); - - // model limit defined for protons - eth = (EmModel(0)->HighEnergyLimit()) - *part->GetPDGMass()/CLHEP::proton_mass_c2; - EmModel(0)->SetHighEnergyLimit(eth); + G4double emin = param->MinKinEnergy(); + G4double emax = param->MaxKinEnergy(); + // define model of energy loss fluctuations if (nullptr == FluctModel()) { SetFluctModel(G4EmStandUtil::ModelOfFluctuations(true)); } + + if (nullptr == EmModel(0)) { SetEmModel(new G4BraggIonModel()); } + // to compute ranges correctly we have to use low-energy + // model even if activation limit is high + EmModel(0)->SetLowEnergyLimit(emin); + + // high energy limit may be eth or DBL_MAX + G4double emax1 = (EmModel(0)->HighEnergyLimit() < emax) ? eth : emax; + EmModel(0)->SetHighEnergyLimit(emax1); AddEmModel(1, EmModel(0), FluctModel()); - // an extra high-energy model is needed or not? - G4double emax = param->MaxKinEnergy(); - if(eth*1.01 < emax) { - if (nullptr == EmModel(1)) { SetEmModel(new G4BetheBlochModel()); } - EmModel(1)->SetLowEnergyLimit(eth); + // second model is used if the first does not cover energy range + if(emax1 < emax) { + if (nullptr == EmModel(1)) { SetEmModel(new G4BetheBlochModel()); } + EmModel(1)->SetLowEnergyLimit(emax1); + + // for extremely heavy particles upper limit of the model + // should be increased + emax = std::max(emax, eth*10); EmModel(1)->SetHighEnergyLimit(emax); - AddEmModel(2, EmModel(1), FluctModel()); + AddEmModel(2, EmModel(1), FluctModel()); // Add ion stoping tables for Generic Ion if the default // model is used (with eth ~= 2 MeV) @@ -166,11 +174,8 @@ void G4ionIonisation::InitialiseEnergyLossProcess( EmModel(1)->GetName() == "BetheBlochGasIon")) { stopDataActive = true; G4WaterStopping ws(corr, true); - corr->SetIonisationModels(EmModel(0),EmModel(1)); + corr->SetIonisationModels(EmModel(0), EmModel(1)); } - } else { - // to avoid numerical problem - EmModel(0)->SetHighEnergyLimit(emax); } isInitialised = true; } diff --git a/source/processes/electromagnetic/utils/History b/source/processes/electromagnetic/utils/History index 11f0ae1d06..ad2445ea07 100644 --- a/source/processes/electromagnetic/utils/History +++ b/source/processes/electromagnetic/utils/History @@ -1,9 +1,56 @@ # Category emutils History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-23 Gabriele Cosmo (emutils-V11-00-38) +- Fixed more compilation warnings for implicit type conversions. + +## 2022-11-18 Gabriele Cosmo (emutils-V11-00-37) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-19 V.Ivanchenko (emutils-V11-00-36) +- G4EmFluoDirectory - added new enumerator +- G4EmParameters, G4EmLowEParameters, G4EmLowEParametersMessenger + introduced directory for the fluorescence data as a parameter, + added new UI command, improved information printout + +## 2022-10-07 V.Ivanchenko (emutils-V11-00-35) +- G4VEnergyLossProcess - for ions compute effective charge + prestep and set this value to the model of energy loss + fluctuations +- G4EmCalculator - update computation of ion dEdx (problem #2495); + added extra flag applySmoothing to enable/disable smoothing + algorithms to connect low-energy and high energy models; + code clean-up +- G4LossTableManager - fix selection of energy loss process used + by G4EmCalculator + +## 2022-09-02 V.Ivanchenko (emutils-V11-00-34) +- G4VMultipleScattering - removed two virtual calls +- G4VMscModel - added Boolean flag "useSpline" and Set method + allowing to choose spline for transport x-section +- G4EmParameterMessenger - restore forgotten UI command to set + number of bins per decade + +## 2022-08-25 V.Ivanchenko (emutils-V11-00-33) +- G4EmExtraParameters - safe definition of StepFuction for the + G4GenericIon, related to problem #2495 + +## 2022-07-08 J.Apostolakis (emutils-V11-00-32) +- Fix in `G4TransportationWithMsc`: StartTracking now calls + corresponding method of G4Transportation (to initialise values + used for propagation in field.) + +## 2022-07-08 V.Ivanchenko (emutils-V11-00-31) +- G4EmParameters, G4EmParametersMessenger - added extra boolean flag + for sampling of photoeffect below K-shell, which was introduced + in ATLAS +- G4EmProcessSubType - added extra types for muon pair production + by muons and dark particles bremsstrahlung ## 2022-06-19 V.Ivanchenko (emutils-V11-00-30) - G4EmExtraParametersMessenger - fixed typo (problem #2492) diff --git a/source/processes/electromagnetic/utils/include/G4EmCalculator.hh b/source/processes/electromagnetic/utils/include/G4EmCalculator.hh index fa2efb706e..63abbb1ca9 100644 --- a/source/processes/electromagnetic/utils/include/G4EmCalculator.hh +++ b/source/processes/electromagnetic/utils/include/G4EmCalculator.hh @@ -264,6 +264,8 @@ public: void SetVerbose(G4int val); + inline void SetApplySmoothing(G4int val); + // hide copy and assign G4EmCalculator & operator=(const G4EmCalculator &right) = delete; G4EmCalculator(const G4EmCalculator&) = delete; @@ -282,8 +284,6 @@ private: const G4String& processName, G4double kinEnergy); - G4VEnergyLossProcess* FindEnergyLossProcess(const G4ParticleDefinition*); - G4VEnergyLossProcess* FindEnLossProcess(const G4ParticleDefinition*, const G4String& processName); @@ -334,6 +334,7 @@ private: G4bool isIon = false; G4bool isApplicable = false; + G4bool applySmoothing = true; std::vector localMaterials; std::vector localCouples; @@ -554,4 +555,11 @@ G4double G4EmCalculator::ComputeMeanFreePath(G4double kinEnergy, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +inline void G4EmCalculator::SetApplySmoothing(G4int val) +{ + applySmoothing = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + #endif diff --git a/examples/advanced/human_phantom/src/G4HumanPhantomSteppingAction.cc b/source/processes/electromagnetic/utils/include/G4EmFluoDirectory.hh similarity index 78% rename from examples/advanced/human_phantom/src/G4HumanPhantomSteppingAction.cc rename to source/processes/electromagnetic/utils/include/G4EmFluoDirectory.hh index 64dcb868b2..d230228730 100644 --- a/examples/advanced/human_phantom/src/G4HumanPhantomSteppingAction.cc +++ b/source/processes/electromagnetic/utils/include/G4EmFluoDirectory.hh @@ -24,19 +24,27 @@ // ******************************************************************** // // -// Previous authors: G. Guerrieri, S. Guatelli and M. G. Pia, INFN Genova, Italy -// Authors (since 2007): S. Guatelli, University of Wollongong, Australia +//--------------------------------------------------------------- // +// G4EmFluoDirectory.hh // -#include "G4HumanPhantomSteppingAction.hh" -#include "G4SteppingManager.hh" -#include "G4UnitsTable.hh" -G4HumanPhantomSteppingAction::G4HumanPhantomSteppingAction() -{ } +// Class Description: +// This is an enumerator to define directory for fluorescence data +// +// Creation date: 19.10.2022 +// Modifications: +// +//--------------------------------------------------------------- -G4HumanPhantomSteppingAction::~G4HumanPhantomSteppingAction() -{} +#ifndef G4EmFluoDirectory_h +#define G4EmFluoDirectory_h 1 -void G4HumanPhantomSteppingAction::UserSteppingAction(const G4Step*) -{ -} +enum G4EmFluoDirectory +{ + fluoDefault = 0, + fluoBearden, + fluoANSTO, + fluoXDB_EADL +}; + +#endif diff --git a/source/processes/electromagnetic/utils/include/G4EmLowEParameters.hh b/source/processes/electromagnetic/utils/include/G4EmLowEParameters.hh index 82daef98a6..3a740a2fc0 100644 --- a/source/processes/electromagnetic/utils/include/G4EmLowEParameters.hh +++ b/source/processes/electromagnetic/utils/include/G4EmLowEParameters.hh @@ -50,6 +50,7 @@ #include "globals.hh" #include "G4DNAModelSubType.hh" +#include "G4EmFluoDirectory.hh" #include class G4EmLowEParametersMessenger; @@ -69,11 +70,12 @@ public: void SetFluo(G4bool val); G4bool Fluo() const; - void SetBeardenFluoDir(G4bool val); - G4bool BeardenFluoDir() const; + G4EmFluoDirectory FluoDirectory() const; + void SetFluoDirectory(G4EmFluoDirectory val); + void SetBeardenFluoDir(G4bool val); void SetANSTOFluoDir(G4bool val); - G4bool ANSTOFluoDir() const; + void SetXDB_EADLFluoDir(G4bool val); void SetAuger(G4bool val); G4bool Auger() const; @@ -134,8 +136,6 @@ private: G4EmLowEParametersMessenger* theMessenger; G4bool fluo; - G4bool beardenFluoDir; - G4bool fANSTOFluoDir; G4bool auger; G4bool pixe; G4bool deexIgnoreCut; @@ -144,7 +144,9 @@ private: G4bool dnaStationary; G4bool dnaMsc; - G4DNAModelSubType dnaElectronSolvation; + G4DNAModelSubType dnaElectronSolvation; + + G4EmFluoDirectory fFluoDirectory; G4String namePIXE; G4String nameElectronPIXE; diff --git a/source/processes/electromagnetic/utils/include/G4EmLowEParametersMessenger.hh b/source/processes/electromagnetic/utils/include/G4EmLowEParametersMessenger.hh index 42b23145d7..90beca653c 100644 --- a/source/processes/electromagnetic/utils/include/G4EmLowEParametersMessenger.hh +++ b/source/processes/electromagnetic/utils/include/G4EmLowEParametersMessenger.hh @@ -93,6 +93,7 @@ private: G4UIcmdWithAString* pixeeXsCmd; G4UIcmdWithAString* livCmd; G4UIcmdWithAString* dnaSolCmd; + G4UIcmdWithAString* direFluoCmd; G4UIcmdWithAString* meCmd; G4UIcommand* dnaCmd; diff --git a/source/processes/electromagnetic/utils/include/G4EmModelManager.hh b/source/processes/electromagnetic/utils/include/G4EmModelManager.hh index 96030fc2f2..429a9416ce 100644 --- a/source/processes/electromagnetic/utils/include/G4EmModelManager.hh +++ b/source/processes/electromagnetic/utils/include/G4EmModelManager.hh @@ -168,17 +168,17 @@ public: // Get model pointer from the model list for a given material cuts couple // no check on material cuts couple index - G4VEmModel* GetRegionModel(G4int idx, size_t index_couple); + G4VEmModel* GetRegionModel(G4int idx, std::size_t index_couple); // total number of models for material cut couples // no check on material cuts couple index - G4int NumberOfRegionModels(size_t index_couple) const; + G4int NumberOfRegionModels(std::size_t index_couple) const; // Automatic documentation void DumpModelList(std::ostream& out, G4int verb); // Select model for given material cuts couple index - inline G4VEmModel* SelectModel(G4double energy, size_t index); + inline G4VEmModel* SelectModel(G4double energy, std::size_t index); // Access to cuts inline const G4DataVector* Cuts() const; @@ -224,7 +224,7 @@ private: //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... inline -G4VEmModel* G4EmModelManager::SelectModel(G4double kinEnergy, size_t index) +G4VEmModel* G4EmModelManager::SelectModel(G4double kinEnergy, std::size_t index) { if(severalModels) { if(nRegions > 1) { diff --git a/source/processes/electromagnetic/utils/include/G4EmParameters.hh b/source/processes/electromagnetic/utils/include/G4EmParameters.hh index 7ef9d7d737..31d4b56fa0 100644 --- a/source/processes/electromagnetic/utils/include/G4EmParameters.hh +++ b/source/processes/electromagnetic/utils/include/G4EmParameters.hh @@ -57,6 +57,7 @@ #include "G4MscStepLimitType.hh" #include "G4NuclearFormfactorType.hh" #include "G4DNAModelSubType.hh" +#include "G4EmFluoDirectory.hh" #include "G4EmSaturation.hh" #include "G4ThreeVector.hh" #include @@ -124,11 +125,15 @@ public: void SetFluo(G4bool val); G4bool Fluo() const; - void SetBeardenFluoDir(G4bool val); - G4bool BeardenFluoDir() const; + G4EmFluoDirectory FluoDirectory() const; + void SetFluoDirectory(G4EmFluoDirectory); + void SetBeardenFluoDir(G4bool val); void SetANSTOFluoDir(G4bool val); - G4bool ANSTOFluoDir() const; + void SetXDB_EADLFluoDir(G4bool val); + + G4bool BeardenFluoDir(); + G4bool ANSTOFluoDir(); void SetAuger(G4bool val); void SetAugerCascade(G4bool val) { SetAuger(val); }; @@ -197,6 +202,9 @@ public: G4bool RetrieveMuDataFromFile() const; void SetRetrieveMuDataFromFile(G4bool v); + G4bool PhotoeffectBelowKShell() const; + void SetPhotoeffectBelowKShell(G4bool v); + // 5d void SetOnIsolated(G4bool val); G4bool OnIsolated() const; @@ -412,6 +420,7 @@ private: G4bool fSamplingTable; G4bool fPolarisation; G4bool fMuDataFromFile; + G4bool fPEKShell; G4bool onIsolated; // 5d model conversion on free ions G4bool fDNA; G4bool fIsPrinted; diff --git a/source/processes/electromagnetic/utils/include/G4EmParametersMessenger.hh b/source/processes/electromagnetic/utils/include/G4EmParametersMessenger.hh index d7531d2fb1..ab948f9487 100644 --- a/source/processes/electromagnetic/utils/include/G4EmParametersMessenger.hh +++ b/source/processes/electromagnetic/utils/include/G4EmParametersMessenger.hh @@ -103,6 +103,7 @@ private: G4UIcmdWithABool* sampleTCmd; G4UIcmdWithABool* icru90Cmd; G4UIcmdWithABool* mudatCmd; + G4UIcmdWithABool* peKCmd; G4UIcmdWithADoubleAndUnit* minEnCmd; G4UIcmdWithADoubleAndUnit* maxEnCmd; diff --git a/source/processes/electromagnetic/utils/include/G4EmProcessSubType.hh b/source/processes/electromagnetic/utils/include/G4EmProcessSubType.hh index 60dbc4f32e..993fefd517 100644 --- a/source/processes/electromagnetic/utils/include/G4EmProcessSubType.hh +++ b/source/processes/electromagnetic/utils/include/G4EmProcessSubType.hh @@ -68,7 +68,9 @@ enum G4EmProcessSubType fSynchrotronRadiation = 23, fTransitionRadiation = 24, - fSurfaceReflection = 25 + fSurfaceReflection = 25, + fDarkBremsstrahlung = 40, + fMuonPairProdByCharged = 49 }; #endif diff --git a/source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh b/source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh index 40e35dd656..4a9a38e7c5 100644 --- a/source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh +++ b/source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh @@ -208,7 +208,7 @@ protected: G4PhysicsVector* LambdaPhysicsVector(const G4MaterialCutsCouple*, G4double cut); - inline size_t CurrentMaterialCutsCoupleIndex() const; + inline std::size_t CurrentMaterialCutsCoupleIndex() const; //------------------------------------------------------------------------ // Specific methods to set, access, modify models @@ -221,7 +221,7 @@ public: // Select model by energy and couple index // Not for run time processing inline G4VEmModel* SelectModelForMaterial(G4double kinEnergy, - size_t& idxCouple) const; + std::size_t& idxCouple) const; // Add EM model coupled with fluctuation model for region, smaller value // of order defines which pair of models will be selected for a given @@ -235,13 +235,13 @@ public: void SetEmModel(G4VEmModel*, G4int index=0); // Access to models - inline size_t NumberOfModels() const; + inline std::size_t NumberOfModels() const; // Return a model from the local list - inline G4VEmModel* EmModel(size_t index=0) const; + inline G4VEmModel* EmModel(std::size_t index=0) const; // Access to models from G4EmModelManager list - inline G4VEmModel* GetModelByIndex(size_t idx = 0, G4bool ver = false) const; + inline G4VEmModel* GetModelByIndex(std::size_t idx = 0, G4bool ver = false) const; // Assign a fluctuation model to a process inline void SetFluctModel(G4VEmFluctuationModel*); @@ -477,7 +477,7 @@ protected: G4double preStepLogScaledEnergy = LOG_EKIN_MIN; G4double mfpKinEnergy = 0.0; - size_t currentCoupleIndex = 0; + std::size_t currentCoupleIndex = 0; private: @@ -490,16 +490,16 @@ private: G4int biasID = _DeltaEBelowCut; G4int mainSecondaries = 1; - size_t basedCoupleIndex = 0; - size_t coupleIdxRange = 0; - size_t idxDEDX = 0; - size_t idxDEDXunRestricted = 0; - size_t idxIonisation = 0; - size_t idxRange = 0; - size_t idxCSDA = 0; - size_t idxSecRange = 0; - size_t idxInverseRange = 0; - size_t idxLambda = 0; + std::size_t basedCoupleIndex = 0; + std::size_t coupleIdxRange = 0; + std::size_t idxDEDX = 0; + std::size_t idxDEDXunRestricted = 0; + std::size_t idxIonisation = 0; + std::size_t idxRange = 0; + std::size_t idxCSDA = 0; + std::size_t idxSecRange = 0; + std::size_t idxInverseRange = 0; + std::size_t idxLambda = 0; G4GPILSelection aGPILSelection; G4CrossSectionType fXSType = fEmOnePeak; @@ -527,7 +527,7 @@ private: // ======== Run time inline methods ================ -inline size_t G4VEnergyLossProcess::CurrentMaterialCutsCoupleIndex() const +inline std::size_t G4VEnergyLossProcess::CurrentMaterialCutsCoupleIndex() const { return currentCoupleIndex; } @@ -543,7 +543,7 @@ inline void G4VEnergyLossProcess::SelectModel(G4double kinEnergy) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... inline G4VEmModel* G4VEnergyLossProcess::SelectModelForMaterial( - G4double kinEnergy, size_t& idx) const + G4double kinEnergy, std::size_t& idx) const { return modelManager->SelectModel(kinEnergy, idx); } @@ -986,14 +986,14 @@ inline std::vector* G4VEnergyLossProcess::TwoPeaksXS() const //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline size_t G4VEnergyLossProcess::NumberOfModels() const +inline std::size_t G4VEnergyLossProcess::NumberOfModels() const { return numberOfModels; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4VEmModel* G4VEnergyLossProcess::EmModel(size_t index) const +inline G4VEmModel* G4VEnergyLossProcess::EmModel(std::size_t index) const { return (index < emModels->size()) ? (*emModels)[index] : nullptr; } @@ -1001,9 +1001,9 @@ inline G4VEmModel* G4VEnergyLossProcess::EmModel(size_t index) const //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... inline G4VEmModel* -G4VEnergyLossProcess::GetModelByIndex(size_t idx, G4bool ver) const +G4VEnergyLossProcess::GetModelByIndex(std::size_t idx, G4bool ver) const { - return modelManager->GetModel(idx, ver); + return modelManager->GetModel((G4int)idx, ver); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/include/G4VMscModel.hh b/source/processes/electromagnetic/utils/include/G4VMscModel.hh index b03f049334..89fc885e27 100644 --- a/source/processes/electromagnetic/utils/include/G4VMscModel.hh +++ b/source/processes/electromagnetic/utils/include/G4VMscModel.hh @@ -135,6 +135,9 @@ protected: // convert true length to geometry length inline G4double ConvertTrueToGeom(G4double& tLength, G4double& gLength); + // should be set before initialisation + inline void SetUseSplineForMSC(G4bool val); + public: // compute safety @@ -202,12 +205,15 @@ protected: G4double geomMin; G4double geomMax; - G4bool samplez = false; - G4bool latDisplasment = true; - - G4ThreeVector fDisplacement; + G4ThreeVector fDisplacement; G4MscStepLimitType steppingAlgorithm; + G4bool samplez = false; + G4bool latDisplasment = true; + +private: + + G4bool useSpline = true; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -345,4 +351,11 @@ G4VMscModel::GetTransportMeanFreePath(const G4ParticleDefinition* part, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +inline void G4VMscModel::SetUseSplineForMSC(G4bool val) +{ + useSpline = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif diff --git a/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh b/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh index 3c7a6d4b2c..ba199d07d3 100644 --- a/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh +++ b/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh @@ -158,9 +158,6 @@ public: // Along step actions G4VParticleChange* AlongStepDoIt(const G4Track&, const G4Step&) override; - // Post step actions - G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&) override; - // This method does not used for tracking, it is intended only for tests G4double ContinuousStepLimit(const G4Track& track, G4double previousStepSize, diff --git a/source/processes/electromagnetic/utils/sources.cmake b/source/processes/electromagnetic/utils/sources.cmake index 22cbd63204..dc1c49e77b 100644 --- a/source/processes/electromagnetic/utils/sources.cmake +++ b/source/processes/electromagnetic/utils/sources.cmake @@ -17,6 +17,7 @@ geant4_add_module(G4emutils G4EmElementSelector.hh G4EmExtraParameters.hh G4EmExtraParametersMessenger.hh + G4EmFluoDirectory.hh G4EmLowEParameters.hh G4EmLowEParametersMessenger.hh G4EmModelManager.hh diff --git a/source/processes/electromagnetic/utils/src/G4ElectronIonPair.cc b/source/processes/electromagnetic/utils/src/G4ElectronIonPair.cc index ac1c268a83..e26d7cbeff 100644 --- a/source/processes/electromagnetic/utils/src/G4ElectronIonPair.cc +++ b/source/processes/electromagnetic/utils/src/G4ElectronIonPair.cc @@ -148,7 +148,7 @@ G4ElectronIonPair::FindG4MeanEnergyPerIonPair(const G4Material* mat) const G4double res = 0.0; // is this material in the vector? - for(G4int j=0; jGetIonisation()->SetMeanEnergyPerIonPair(res); @@ -167,12 +167,12 @@ G4ElectronIonPair::FindG4MeanEnergyPerIonPair(const G4Material* mat) const void G4ElectronIonPair:: DumpMeanEnergyPerIonPair() const { - G4int nmat = G4Material::GetNumberOfMaterials(); + std::size_t nmat = G4Material::GetNumberOfMaterials(); const G4MaterialTable* mtable = G4Material::GetMaterialTable(); if(nmat > 0) { G4cout << "### G4ElectronIonPair: mean energy per ion pair available:" << G4endl; - for(G4int i=0; iGetIonisation()->GetMeanEnergyPerIonPair(); if(x > 0.0) { @@ -241,7 +241,7 @@ void G4ElectronIonPair::Initialise() g4MatNames.push_back("G4_AIR"); g4MatData.push_back(35.1*eV); - nMaterials = g4MatData.size(); + nMaterials = (G4int)g4MatData.size(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/src/G4EmBiasingManager.cc b/source/processes/electromagnetic/utils/src/G4EmBiasingManager.cc index f32bd45912..5b876b8114 100644 --- a/source/processes/electromagnetic/utils/src/G4EmBiasingManager.cc +++ b/source/processes/electromagnetic/utils/src/G4EmBiasingManager.cc @@ -86,13 +86,13 @@ void G4EmBiasingManager::Initialise(const G4ParticleDefinition& part, // << " and " << procName << G4endl; const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); if(0 < nForcedRegions) { idxForcedCouple.resize(numOfCouples, -1); } if(0 < nSecBiasedRegions) { idxSecBiasedCouple.resize(numOfCouples, -1); } // Deexcitation - for (size_t j=0; jGetMaterialCutsCouple(j); const G4ProductionCuts* pcuts = couple->GetProductionCuts(); @@ -298,7 +298,7 @@ G4EmBiasingManager::ApplySecondaryBiasing( G4int index = idxSecBiasedCouple[coupleIdx]; G4double weight = 1.; if(0 <= index) { - size_t n = vd.size(); + std::size_t n = vd.size(); // the check cannot be applied per secondary particle // because weight correction is common, so the first @@ -351,7 +351,7 @@ G4EmBiasingManager::ApplySecondaryBiasing( G4int index = idxSecBiasedCouple[coupleIdx]; G4double weight = 1.; if(0 <= index) { - size_t n = vd.size(); + std::size_t n = vd.size(); // the check cannot be applied per secondary particle // because weight correction is common, so the first @@ -398,7 +398,7 @@ G4EmBiasingManager::ApplySecondaryBiasing(std::vector& track, G4int index = idxSecBiasedCouple[coupleIdx]; G4double weight = 1.; if(0 <= index) { - size_t n = track.size(); + std::size_t n = track.size(); // the check cannot be applied per secondary particle // because weight correction is common, so the first @@ -410,7 +410,7 @@ G4EmBiasingManager::ApplySecondaryBiasing(std::vector& track, // Russian Roulette only if(1 == nsplit) { weight = secBiasedWeight[index]; - for(size_t k=0; k 1.0) { const G4Track* t = track[k]; delete t; @@ -430,13 +430,13 @@ G4EmBiasingManager::ApplyRangeCut(std::vector& vd, const G4Track& track, G4double& eloss, G4double safety) { - size_t n = vd.size(); + std::size_t n = vd.size(); if(!eIonisation) { eIonisation = G4LossTableManager::Instance()->GetEnergyLossProcess(theElectron); } if(eIonisation) { - for(size_t k=0; kGetDefinition() == theElectron) { G4double e = dp->GetKineticEnergy(); @@ -476,7 +476,7 @@ G4EmBiasingManager::ApplySplitting(std::vector& vd, // method is applied only if 1 secondary created PostStep // in the case of many secondaries there is a contradiction G4double weight = 1.; - size_t n = vd.size(); + std::size_t n = vd.size(); G4double w = secBiasedWeight[index]; if(1 != n || 1.0 <= w) { return weight; } @@ -499,7 +499,7 @@ G4EmBiasingManager::ApplySplitting(std::vector& vd, tmpSecondaries.clear(); currentModel->SampleSecondaries(&tmpSecondaries, couple, dynParticle, tcut); - for (size_t kk=0; kkGetParticleDefinition() == theGamma) { if (CheckDirection(pos, tmpSecondaries[kk]->GetMomentumDirection())){ vd.push_back(tmpSecondaries[kk]); @@ -615,7 +615,7 @@ G4EmBiasingManager::ApplyDirectionalSplitting( partChange->SetProposedKineticEnergy(primaryEnergy); partChange->ProposeMomentumDirection(primaryMomdir); } else { - for (size_t i = 0; i < vd.size(); ++i) { + for (std::size_t i = 0; i < vd.size(); ++i) { fDirectionalSplittingWeights.push_back(1.); } } @@ -677,7 +677,7 @@ G4EmBiasingManager::ApplyDirectionalSplitting( track.GetDynamicParticle(), tcut); } //for (auto sec : tmpSecondaries) { - for (size_t kk=0; kk < tmpSecondaries.size(); ++kk) { + for (std::size_t kk=0; kk < tmpSecondaries.size(); ++kk) { if (CheckDirection(pos, tmpSecondaries[kk]->GetMomentumDirection())) { vd.push_back(tmpSecondaries[kk]); fDirectionalSplittingWeights.push_back(1.); @@ -691,7 +691,7 @@ G4EmBiasingManager::ApplyDirectionalSplitting( } } // end of loop over nsplit } else { // no splitting was done; still need weights - for (size_t i = 0; i < vd.size(); ++i) { + for (std::size_t i = 0; i < vd.size(); ++i) { fDirectionalSplittingWeights.push_back(1.0); } } diff --git a/source/processes/electromagnetic/utils/src/G4EmCalculator.cc b/source/processes/electromagnetic/utils/src/G4EmCalculator.cc index 3e26e83fd0..8cd3d812fd 100644 --- a/source/processes/electromagnetic/utils/src/G4EmCalculator.cc +++ b/source/processes/electromagnetic/utils/src/G4EmCalculator.cc @@ -106,7 +106,7 @@ G4double G4EmCalculator::GetDEDX(G4double kinEnergy, { G4double res = 0.0; const G4MaterialCutsCouple* couple = FindCouple(mat, region); - if(couple && UpdateParticle(p, kinEnergy) ) { + if(nullptr != couple && UpdateParticle(p, kinEnergy) ) { res = manager->GetDEDX(p, kinEnergy, couple); if(isIon) { @@ -178,7 +178,7 @@ G4double G4EmCalculator::GetCSDARange(G4double kinEnergy, } const G4MaterialCutsCouple* couple = FindCouple(mat,region); - if(couple && UpdateParticle(p, kinEnergy)) { + if(nullptr != couple && UpdateParticle(p, kinEnergy)) { res = manager->GetCSDARange(p, kinEnergy, couple); if(verbose>1) { G4cout << " G4EmCalculator::GetCSDARange: E(MeV)= " << kinEnergy/MeV @@ -216,7 +216,7 @@ G4double G4EmCalculator::GetKinEnergy(G4double range, { G4double res = 0.0; const G4MaterialCutsCouple* couple = FindCouple(mat,region); - if(couple && UpdateParticle(p, 1.0*GeV)) { + if(nullptr != couple && UpdateParticle(p, 1.0*GeV)) { res = manager->GetEnergy(p, range, couple); if(verbose>0) { G4cout << "G4EmCalculator::GetKinEnergy: Range(mm)= " << range/mm @@ -240,21 +240,22 @@ G4double G4EmCalculator::GetCrossSectionPerVolume(G4double kinEnergy, G4double res = 0.0; const G4MaterialCutsCouple* couple = FindCouple(mat,region); - if(couple && UpdateParticle(p, kinEnergy)) { + if(nullptr != couple && UpdateParticle(p, kinEnergy)) { if(FindEmModel(p, processName, kinEnergy)) { G4int idx = couple->GetIndex(); G4int procType = -1; FindLambdaTable(p, processName, kinEnergy, procType); G4VEmProcess* emproc = FindDiscreteProcess(p, processName); - if(emproc) { + if(nullptr != emproc) { res = emproc->GetCrossSection(kinEnergy, couple); } else if(currentLambda) { - // special tables are built for Msc models (procType is set in FindLambdaTable + // special tables are built for Msc models + // procType is set in FindLambdaTable if(procType==2) { auto mscM = static_cast(currentModel); mscM->SetCurrentCouple(couple); - G4double tr1Mfp = mscM->GetTransportMeanFreePath(p, kinEnergy); + G4double tr1Mfp = mscM->GetTransportMeanFreePath(p, kinEnergy); if (tr1MfpAtomDeexcitation(); - if(p && ad) { + if(nullptr != p && nullptr != ad) { res = ad->GetShellIonisationCrossSectionPerAtom(p, Z, shell, kinEnergy); } return res; @@ -323,28 +324,28 @@ G4double G4EmCalculator::GetMeanFreePath(G4double kinEnergy, void G4EmCalculator::PrintDEDXTable(const G4ParticleDefinition* p) { - const G4VEnergyLossProcess* elp = FindEnergyLossProcess(p); + const G4VEnergyLossProcess* elp = manager->GetEnergyLossProcess(p); G4cout << "##### DEDX Table for " << p->GetParticleName() << G4endl; - if(elp) G4cout << *(elp->DEDXTable()) << G4endl; + if(nullptr != elp) G4cout << *(elp->DEDXTable()) << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4EmCalculator::PrintRangeTable(const G4ParticleDefinition* p) { - const G4VEnergyLossProcess* elp = FindEnergyLossProcess(p); + const G4VEnergyLossProcess* elp = manager->GetEnergyLossProcess(p); G4cout << "##### Range Table for " << p->GetParticleName() << G4endl; - if(elp) G4cout << *(elp->RangeTableForLoss()) << G4endl; + if(nullptr != elp) G4cout << *(elp->RangeTableForLoss()) << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4EmCalculator::PrintInverseRangeTable(const G4ParticleDefinition* p) { - const G4VEnergyLossProcess* elp = FindEnergyLossProcess(p); + const G4VEnergyLossProcess* elp = manager->GetEnergyLossProcess(p); G4cout << "### G4EmCalculator: Inverse Range Table for " << p->GetParticleName() << G4endl; - if(elp) G4cout << *(elp->InverseRangeTable()) << G4endl; + if(nullptr != elp) G4cout << *(elp->InverseRangeTable()) << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -365,101 +366,81 @@ G4double G4EmCalculator::ComputeDEDX(G4double kinEnergy, } if(UpdateParticle(p, kinEnergy)) { if(FindEmModel(p, processName, kinEnergy)) { - - // Special case of ICRU'73 model - const G4String& mname = currentModel->GetName(); - if(mname == "ParamICRU73" || mname == "LinhardSorensen" || - mname == "Atima") { - res = currentModel->ComputeDEDXPerVolume(mat, p, kinEnergy, cut); - if(verbose > 1) { - G4cout << mname << " ion E(MeV)= " << kinEnergy << " "; - G4cout << currentModel->GetName() << ": DEDX(MeV/mm)= " << res*mm/MeV - << " DEDX(MeV*cm^2/g)= " - << res*gram/(MeV*cm2*mat->GetDensity()) - << G4endl; - } + G4double escaled = kinEnergy*massRatio; + if(nullptr != baseParticle) { + res = currentModel->ComputeDEDXPerVolume(mat, baseParticle, + escaled, cut) * chargeSquare; + if(verbose > 1) { + G4cout << "Particle: " << p->GetParticleName() + << " E(MeV)=" << kinEnergy + << " Base particle: " << baseParticle->GetParticleName() + << " Escaled(MeV)= " << escaled + << " q2=" << chargeSquare << G4endl; + } } else { - - G4double escaled = kinEnergy*massRatio; - if(baseParticle) { - res = currentModel->ComputeDEDXPerVolume( - mat, baseParticle, escaled, cut) * chargeSquare; - if(verbose > 1) { - G4cout << baseParticle->GetParticleName() - << " Escaled(MeV)= " << escaled; - } - } else { - res = currentModel->ComputeDEDXPerVolume(mat, p, kinEnergy, cut); - if(verbose > 1) { - G4cout << " no basePart E(MeV)= " << kinEnergy << " "; - } - } - if(verbose > 1) { - G4cout << currentModel->GetName() << ": DEDX(MeV/mm)= " << res*mm/MeV - << " DEDX(MeV*cm^2/g)= " - << res*gram/(MeV*cm2*mat->GetDensity()) - << G4endl; - } - - // emulate smoothing procedure - G4double eth = currentModel->LowEnergyLimit(); - // G4cout << "massRatio= " << massRatio << " eth= " << eth << G4endl; - if(loweModel) { - G4double res0 = 0.0; - G4double res1 = 0.0; - if(baseParticle) { - res1 = chargeSquare* - currentModel->ComputeDEDXPerVolume(mat, baseParticle, eth, cut); - res0 = chargeSquare* - loweModel->ComputeDEDXPerVolume(mat, baseParticle, eth, cut); - } else { - res1 = currentModel->ComputeDEDXPerVolume(mat, p, eth, cut); - res0 = loweModel->ComputeDEDXPerVolume(mat, p, eth, cut); - } - if(verbose > 1) { - G4cout << "At boundary energy(MeV)= " << eth/MeV - << " DEDX(MeV/mm)= " << res1*mm/MeV - << G4endl; - } - - //G4cout << "eth= " << eth << " escaled= " << escaled - // << " res0= " << res0 << " res1= " - // << res1 << " q2= " << chargeSquare << G4endl; - - if(res1 > 0.0 && escaled > 0.0) { - res *= (1.0 + (res0/res1 - 1.0)*eth/escaled); - } - } - - // low energy correction for ions - if(isIon) { - G4double length = CLHEP::nm; - const G4Region* r = nullptr; - const G4MaterialCutsCouple* couple = FindCouple(mat, r); - G4double eloss = res*length; - dynParticle->SetKineticEnergy(kinEnergy); - currentModel->GetChargeSquareRatio(p, mat, kinEnergy); - currentModel->CorrectionsAlongStep(couple,dynParticle,length,eloss); - res = eloss/length; - - if(verbose > 1) { - G4cout << "After Corrections: DEDX(MeV/mm)= " << res*mm/MeV - << " DEDX(MeV*cm^2/g)= " - << res*gram/(MeV*cm2*mat->GetDensity()) << G4endl; - } - } + res = currentModel->ComputeDEDXPerVolume(mat, p, kinEnergy, cut); + if(verbose > 1) { + G4cout << "Particle: " << p->GetParticleName() + << " E(MeV)=" << kinEnergy << G4endl; + } + } + if(verbose > 1) { + G4cout << currentModel->GetName() << ": DEDX(MeV/mm)= " << res*mm/MeV + << " DEDX(MeV*cm^2/g)= " + << res*gram/(MeV*cm2*mat->GetDensity()) + << G4endl; + } + // emulate smoothing procedure + if(applySmoothing && nullptr != loweModel) { + G4double eth = currentModel->LowEnergyLimit(); + G4double res0 = 0.0; + G4double res1 = 0.0; + if(nullptr != baseParticle) { + res1 = chargeSquare* + currentModel->ComputeDEDXPerVolume(mat, baseParticle, eth, cut); + res0 = chargeSquare* + loweModel->ComputeDEDXPerVolume(mat, baseParticle, eth, cut); + } else { + res1 = currentModel->ComputeDEDXPerVolume(mat, p, eth, cut); + res0 = loweModel->ComputeDEDXPerVolume(mat, p, eth, cut); + } + if(res1 > 0.0 && escaled > 0.0) { + res *= (1.0 + (res0/res1 - 1.0)*eth/escaled); + } + if(verbose > 1) { + G4cout << "At boundary energy(MeV)= " << eth/MeV + << " DEDX(MeV/mm)= " << res0*mm/MeV << " " << res1*mm/MeV + << " after correction DEDX(MeV/mm)=" << res*mm/MeV << G4endl; + } + } + // correction for ions + if(isIon) { + const G4double length = CLHEP::nm; + if(UpdateCouple(mat, cut)) { + G4double eloss = res*length; + dynParticle->SetKineticEnergy(kinEnergy); + currentModel->CorrectionsAlongStep(currentCouple,dynParticle, + length,eloss); + res = eloss/length; + + if(verbose > 1) { + G4cout << "After Corrections: DEDX(MeV/mm)= " << res*mm/MeV + << " DEDX(MeV*cm^2/g)= " + << res*gram/(MeV*cm2*mat->GetDensity()) << G4endl; + } + } + } + if(verbose > 0) { + G4cout << "## E(MeV)= " << kinEnergy/MeV + << " DEDX(MeV/mm)= " << res*mm/MeV + << " DEDX(MeV*cm^2/g)= " << res*gram/(MeV*cm2*mat->GetDensity()) + << " cut(MeV)= " << cut/MeV + << " " << p->GetParticleName() + << " in " << currentMaterialName + << " Zi^2= " << chargeSquare + << " isIon=" << isIon + << G4endl; } - } - if(verbose > 0) { - G4cout << "Sum: E(MeV)= " << kinEnergy/MeV - << " DEDX(MeV/mm)= " << res*mm/MeV - << " DEDX(MeV*cm^2/g)= " << res*gram/(MeV*cm2*mat->GetDensity()) - << " cut(MeV)= " << cut/MeV - << " " << p->GetParticleName() - << " in " << currentMaterialName - << " Zi^2= " << chargeSquare - << " isIon=" << isIon - << G4endl; } } return res; @@ -479,14 +460,14 @@ G4double G4EmCalculator::ComputeElectronicDEDX(G4double kinEnergy, G4LossTableManager* lManager = G4LossTableManager::Instance(); const std::vector vel = lManager->GetEnergyLossProcessVector(); - G4int n = vel.size(); + std::size_t n = vel.size(); //G4cout << "ComputeElectronicDEDX for " << part->GetParticleName() // << " n= " << n << G4endl; - for(G4int i=0; i(vel[i]); + auto p = static_cast(vel[i]); if(ActiveForParticle(part, p)) { //G4cout << "idx= " << i << " " << (vel[i])->GetProcessName() // << " " << (vel[i])->Particle()->GetParticleName() << G4endl; @@ -513,7 +494,7 @@ G4EmCalculator::ComputeDEDXForCutInRange(G4double kinEnergy, G4LossTableManager* lManager = G4LossTableManager::Instance(); const std::vector vel = lManager->GetEnergyLossProcessVector(); - G4int n = vel.size(); + std::size_t n = vel.size(); if(mat != cutMaterial) { cutMaterial = mat; @@ -528,14 +509,14 @@ G4EmCalculator::ComputeDEDXForCutInRange(G4double kinEnergy, //G4cout << "ComputeElectronicDEDX for " << part->GetParticleName() // << " n= " << n << G4endl; - for(G4int i=0; i(vel[i]); + auto p = static_cast(vel[i]); if(ActiveForParticle(part, p)) { //G4cout << "idx= " << i << " " << (vel[i])->GetProcessName() // << " " << (vel[i])->Particle()->GetParticleName() << G4endl; const G4ParticleDefinition* sec = (vel[i])->SecondaryParticle(); - G4int idx = 0; + std::size_t idx = 0; if(sec == G4Electron::Electron()) { idx = 1; } else if(sec == G4Positron::Positron()) { idx = 2; } @@ -675,7 +656,7 @@ G4EmCalculator::ComputeCrossSectionPerShell(G4double kinEnergy, if(FindEmModel(p, processName, kinEnergy)) { G4double e = kinEnergy; G4double aCut = std::max(cut, theParameters->LowestElectronEnergy()); - if(baseParticle) { + if(nullptr != baseParticle) { e *= kinEnergy*massRatio; currentModel->InitialiseForElement(baseParticle, Z); res = @@ -782,52 +763,35 @@ G4bool G4EmCalculator::UpdateParticle(const G4ParticleDefinition* p, massRatio = 1.0; mass = p->GetPDGMass(); chargeSquare = 1.0; - currentProcess = FindEnergyLossProcess(p); + currentProcess = manager->GetEnergyLossProcess(p); currentProcessName = ""; isIon = false; // ionisation process exist - if(currentProcess) { + if(nullptr != currentProcess) { currentProcessName = currentProcess->GetProcessName(); baseParticle = currentProcess->BaseParticle(); + if(currentProcessName == "ionIoni" && p->GetParticleName() != "alpha") { + baseParticle = theGenericIon; + isIon = true; + } // base particle is used - if(baseParticle) { + if(nullptr != baseParticle) { massRatio = baseParticle->GetPDGMass()/p->GetPDGMass(); G4double q = p->GetPDGCharge()/baseParticle->GetPDGCharge(); chargeSquare = q*q; } - - if(p->GetParticleType() == "nucleus" - && currentParticleName != "deuteron" - && currentParticleName != "triton" - && currentParticleName != "alpha+" - && currentParticleName != "alpha" - ) { - isIon = true; - massRatio = theGenericIon->GetPDGMass()/p->GetPDGMass(); - baseParticle = theGenericIon; - if(verbose>1) { - G4cout << "\n G4EmCalculator::UpdateParticle: isIon 1 " - << p->GetParticleName() - << " in " << currentMaterial->GetName() - << " e= " << kinEnergy << G4endl; - } - } } } - // Effective charge for ions - if(isIon) { + if(isIon && nullptr != currentProcess) { chargeSquare = - corr->EffectiveChargeSquareRatio(p, currentMaterial, kinEnergy) - * corr->EffectiveChargeCorrection(p,currentMaterial,kinEnergy); - if(currentProcess) { - currentProcess->SetDynamicMassCharge(massRatio,chargeSquare); - if(verbose>1) { - G4cout <<"\n NewIon: massR= "<< massRatio << " q2= " - << chargeSquare << " " << currentProcess << G4endl; - } + corr->EffectiveChargeSquareRatio(p, currentMaterial, kinEnergy); + currentProcess->SetDynamicMassCharge(massRatio,chargeSquare); + if(verbose>1) { + G4cout <<"\n NewIon: massR= "<< massRatio << " q2= " + << chargeSquare << " " << currentProcess << G4endl; } } return true; @@ -840,7 +804,7 @@ const G4ParticleDefinition* G4EmCalculator::FindParticle(const G4String& name) const G4ParticleDefinition* p = nullptr; if(name != currentParticleName) { p = G4ParticleTable::GetParticleTable()->FindParticle(name); - if(!p) { + if(nullptr == p) { G4cout << "### WARNING: G4EmCalculator::FindParticle fails to find " << name << G4endl; } @@ -864,7 +828,7 @@ const G4Material* G4EmCalculator::FindMaterial(const G4String& name) { if(name != currentMaterialName) { SetupMaterial(G4Material::GetMaterial(name, false)); - if(!currentMaterial) { + if(nullptr == currentMaterial) { G4cout << "### WARNING: G4EmCalculator::FindMaterial fails to find " << name << G4endl; } @@ -887,27 +851,27 @@ const G4MaterialCutsCouple* G4EmCalculator::FindCouple( { const G4MaterialCutsCouple* couple = nullptr; SetupMaterial(material); - if(currentMaterial) { + if(nullptr != currentMaterial) { // Access to materials const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); const G4Region* r = region; - if(r) { + if(nullptr != r) { couple = theCoupleTable->GetMaterialCutsCouple(material, r->GetProductionCuts()); } else { G4RegionStore* store = G4RegionStore::GetInstance(); - size_t nr = store->size(); + std::size_t nr = store->size(); if(0 < nr) { - for(size_t i=0; iGetMaterialCutsCouple( material, ((*store)[i])->GetProductionCuts()); - if(couple) { break; } + if(nullptr != couple) { break; } } } } } - if(!couple) { + if(nullptr == couple) { G4ExceptionDescription ed; ed << "G4EmCalculator::FindCouple: fail for material <" << currentMaterialName << ">"; @@ -936,7 +900,7 @@ G4bool G4EmCalculator::UpdateCouple(const G4Material* material, G4double cut) localMaterials.push_back(material); localCouples.push_back(cc); localCuts.push_back(cut); - nLocalMaterials++; + ++nLocalMaterials; currentCouple = cc; currentCoupleIndex = currentCouple->GetIndex(); currentCut = cut; @@ -954,9 +918,9 @@ void G4EmCalculator::FindLambdaTable(const G4ParticleDefinition* p, lambdaName = processName; currentLambda = nullptr; lambdaParticle = p; + isApplicable = false; - const G4ParticleDefinition* part = p; - if(isIon) { part = theGenericIon; } + const G4ParticleDefinition* part = (isIon) ? theGenericIon : p; // Search for energy loss process currentName = processName; @@ -964,10 +928,10 @@ void G4EmCalculator::FindLambdaTable(const G4ParticleDefinition* p, loweModel = nullptr; G4VEnergyLossProcess* elproc = FindEnLossProcess(part, processName); - if(elproc) { + if(nullptr != elproc) { currentLambda = elproc->LambdaTable(); proctype = 0; - if(currentLambda) { + if(nullptr != currentLambda) { isApplicable = true; if(verbose>1) { G4cout << "G4VEnergyLossProcess is found out: " << currentName @@ -980,10 +944,10 @@ void G4EmCalculator::FindLambdaTable(const G4ParticleDefinition* p, // Search for discrete process G4VEmProcess* proc = FindDiscreteProcess(part, processName); - if(proc) { + if(nullptr != proc) { currentLambda = proc->LambdaTable(); proctype = 1; - if(currentLambda) { + if(nullptr != currentLambda) { isApplicable = true; if(verbose>1) { G4cout << "G4VEmProcess is found out: " << currentName << G4endl; @@ -995,12 +959,12 @@ void G4EmCalculator::FindLambdaTable(const G4ParticleDefinition* p, // Search for msc process G4VMultipleScattering* msc = FindMscProcess(part, processName); - if(msc) { + if(nullptr != msc) { currentModel = msc->SelectModel(kinEnergy,0); proctype = 2; - if(currentModel) { + if(nullptr != currentModel) { currentLambda = currentModel->GetCrossSectionTable(); - if(currentLambda) { + if(nullptr != currentLambda) { isApplicable = true; if(verbose>1) { G4cout << "G4VMultipleScattering is found out: " << currentName @@ -1020,15 +984,14 @@ G4bool G4EmCalculator::FindEmModel(const G4ParticleDefinition* p, G4double kinEnergy) { isApplicable = false; - if(!p || !currentMaterial) { + if(nullptr == p || nullptr == currentMaterial) { G4cout << "G4EmCalculator::FindEmModel WARNING: no particle" << " or materail defined; particle: " << p << G4endl; return isApplicable; } G4String partname = p->GetParticleName(); - const G4ParticleDefinition* part = p; G4double scaledEnergy = kinEnergy*massRatio; - if(isIon) { part = theGenericIon; } + const G4ParticleDefinition* part = (isIon) ? theGenericIon : p; if(verbose > 1) { G4cout << "## G4EmCalculator::FindEmModel for " << partname @@ -1042,10 +1005,10 @@ G4bool G4EmCalculator::FindEmModel(const G4ParticleDefinition* p, currentName = processName; currentModel = nullptr; loweModel = nullptr; - size_t idx = 0; + std::size_t idx = 0; G4VEnergyLossProcess* elproc = FindEnLossProcess(part, processName); - if(elproc) { + if(nullptr != elproc) { currentModel = elproc->SelectModelForMaterial(scaledEnergy, idx); currentModel->InitialiseForMaterial(part, currentMaterial); currentModel->SetupForMaterial(part, currentMaterial, scaledEnergy); @@ -1061,9 +1024,9 @@ G4bool G4EmCalculator::FindEmModel(const G4ParticleDefinition* p, } // Search for discrete process - if(!currentModel) { + if(nullptr == currentModel) { G4VEmProcess* proc = FindDiscreteProcess(part, processName); - if(proc) { + if(nullptr != proc) { currentModel = proc->SelectModelForMaterial(kinEnergy, idx); currentModel->InitialiseForMaterial(part, currentMaterial); currentModel->SetupForMaterial(part, currentMaterial, kinEnergy); @@ -1080,14 +1043,14 @@ G4bool G4EmCalculator::FindEmModel(const G4ParticleDefinition* p, } // Search for msc process - if(!currentModel) { + if(nullptr == currentModel) { G4VMultipleScattering* proc = FindMscProcess(part, processName); - if(proc) { + if(nullptr != proc) { currentModel = proc->SelectModel(kinEnergy, idx); loweModel = nullptr; } } - if(currentModel) { + if(nullptr != currentModel) { if(loweModel == currentModel) { loweModel = nullptr; } isApplicable = true; currentModel->InitialiseForMaterial(part, currentMaterial); @@ -1098,11 +1061,11 @@ G4bool G4EmCalculator::FindEmModel(const G4ParticleDefinition* p, G4cout << " Model <" << currentModel->GetName() << "> Emin(MeV)= " << currentModel->LowEnergyLimit()/MeV << " for " << part->GetParticleName(); - if(elproc) { + if(nullptr != elproc) { G4cout << " and " << elproc->GetProcessName() << " " << elproc << G4endl; } - if(loweModel) { + if(nullptr != loweModel) { G4cout << " LowEnergy model <" << loweModel->GetName() << ">"; } G4cout << G4endl; @@ -1113,31 +1076,6 @@ G4bool G4EmCalculator::FindEmModel(const G4ParticleDefinition* p, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4VEnergyLossProcess* G4EmCalculator::FindEnergyLossProcess( - const G4ParticleDefinition* p) -{ - G4VEnergyLossProcess* elp = nullptr; - G4String partname = p->GetParticleName(); - const G4ParticleDefinition* part = p; - - if(p->GetParticleType() == "nucleus" - && currentParticleName != "deuteron" - && currentParticleName != "triton" - && currentParticleName != "alpha" - && currentParticleName != "alpha+" - ) { part = theGenericIon; } - - elp = manager->GetEnergyLossProcess(part); - /* - G4cout << "\n G4EmCalculator::FindEnergyLossProcess: for " << p->GetParticleName() - << " found " << elp->GetProcessName() << " of " - << elp->Particle()->GetParticleName() << " " << elp << G4endl; - */ - return elp; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - G4VEnergyLossProcess* G4EmCalculator::FindEnLossProcess(const G4ParticleDefinition* part, const G4String& processName) @@ -1145,10 +1083,10 @@ G4EmCalculator::FindEnLossProcess(const G4ParticleDefinition* part, G4VEnergyLossProcess* proc = nullptr; const std::vector v = manager->GetEnergyLossProcessVector(); - G4int n = v.size(); - for(G4int i=0; iGetProcessName() == processName) { - auto p = reinterpret_cast(v[i]); + auto p = static_cast(v[i]); if(ActiveForParticle(part, p)) { proc = v[i]; break; @@ -1166,14 +1104,14 @@ G4EmCalculator::FindDiscreteProcess(const G4ParticleDefinition* part, { G4VEmProcess* proc = nullptr; auto v = manager->GetEmProcessVector(); - G4int n = v.size(); - for(G4int i=0; iGetProcessName(); if(pName == "GammaGeneralProc") { proc = v[i]->GetEmProcess(processName); break; } else if(pName == processName) { - auto p = reinterpret_cast(v[i]); + auto p = static_cast(v[i]); if(ActiveForParticle(part, p)) { proc = v[i]; break; @@ -1192,10 +1130,10 @@ G4EmCalculator::FindMscProcess(const G4ParticleDefinition* part, G4VMultipleScattering* proc = nullptr; const std::vector v = manager->GetMultipleScatteringVector(); - G4int n = v.size(); - for(G4int i=0; iGetProcessName() == processName) { - auto p = reinterpret_cast(v[i]); + auto p = static_cast(v[i]); if(ActiveForParticle(part, p)) { proc = v[i]; break; @@ -1213,7 +1151,7 @@ G4VProcess* G4EmCalculator::FindProcess(const G4ParticleDefinition* part, G4VProcess* proc = nullptr; const G4ProcessManager* procman = part->GetProcessManager(); G4ProcessVector* pv = procman->GetProcessList(); - G4int nproc = pv->size(); + G4int nproc = (G4int)pv->size(); for(G4int i=0; iGetProcessName()) { proc = (*pv)[i]; @@ -1230,7 +1168,7 @@ G4bool G4EmCalculator::ActiveForParticle(const G4ParticleDefinition* part, { G4ProcessManager* pm = part->GetProcessManager(); G4ProcessVector* pv = pm->GetProcessList(); - G4int n = pv->size(); + G4int n = (G4int)pv->size(); G4bool res = false; for(G4int i=0; iGetNumberOfElements(); - for(size_t i=0; iGetNumberOfElements(); + for(G4int i=0; iGetElement(i)->GetZasInt()) { isFound = true; break; diff --git a/source/processes/electromagnetic/utils/src/G4EmCorrections.cc b/source/processes/electromagnetic/utils/src/G4EmCorrections.cc index 40615ce1b1..3e16af5746 100644 --- a/source/processes/electromagnetic/utils/src/G4EmCorrections.cc +++ b/source/processes/electromagnetic/utils/src/G4EmCorrections.cc @@ -181,7 +181,7 @@ void G4EmCorrections::SetupKinematics(const G4ParticleDefinition* p, material = mat; theElementVector = material->GetElementVector(); atomDensity = material->GetAtomicNumDensityVector(); - numberOfElements = material->GetNumberOfElements(); + numberOfElements = (G4int)material->GetNumberOfElements(); } } @@ -286,7 +286,7 @@ G4double G4EmCorrections::IonHighOrderCorrections(const G4ParticleDefinition* p, G4int ionPDG = p->GetPDGEncoding(); if(thcorr.find(ionPDG)==thcorr.end()) { // Not found: fill the map std::vector v; - for(size_t i=0; i >(ionPDG,v)); @@ -297,7 +297,7 @@ G4double G4EmCorrections::IonHighOrderCorrections(const G4ParticleDefinition* p, // it = thcorr.begin(); it != thcorr.end(); ++it){ // G4cout << "\t map element: first (key)=" << it->first // << "\t second (vector): vec size=" << (it->second).size() << G4endl; - // for(size_t i=0; i<(it->second).size(); ++i){ + // for(std::size_t i=0; i<(it->second).size(); ++i){ // G4cout << "\t \t vec element: [" << i << "]=" << (it->second)[i] //<< G4endl; } } @@ -907,8 +907,8 @@ void G4EmCorrections::InitialiseForNewRun() (it->second).clear(); } thcorr.clear(); - for(size_t i=0; iGetMaterialCutsCouple(i)->GetMaterial(); + for(std::size_t i=0; iGetMaterialCutsCouple((G4int)i)->GetMaterial(); G4String nam = currmat[i]->GetName(); for(G4int j=0; jGetNumberOfElements(); + G4int n = (G4int)material->GetNumberOfElements(); nElmMinusOne = n - 1; theElementVector = material->GetElementVector(); if(nElmMinusOne > 0) { diff --git a/source/processes/electromagnetic/utils/src/G4EmExtraParameters.cc b/source/processes/electromagnetic/utils/src/G4EmExtraParameters.cc index 11c101f953..4be793a6e5 100644 --- a/source/processes/electromagnetic/utils/src/G4EmExtraParameters.cc +++ b/source/processes/electromagnetic/utils/src/G4EmExtraParameters.cc @@ -206,7 +206,7 @@ void G4EmExtraParameters::FillStepFunction(const G4ParticleDefinition* part, G4V proc->SetStepFunction(dRoverRange, finalRange); // all heavy ions - } else if (part->IsGeneralIon()) { + } else if ("GenericIon" == part->GetParticleName()) { proc->SetStepFunction(dRoverRangeIons, finalRangeIons); // light nucleus and anti-nucleus @@ -224,8 +224,8 @@ void G4EmExtraParameters::AddPAIModel(const G4String& particle, const G4String& type) { G4String r = CheckRegion(region); - G4int nreg = m_regnamesPAI.size(); - for(G4int i=0; i& G4EmExtraParameters::TypesPhysics() const void G4EmExtraParameters::SetSubCutRegion(const G4String& region) { const G4String& r = CheckRegion(region); - G4int nreg = m_regnamesSubCut.size(); - for(G4int i=0; i 0.0) { - G4int n = m_procBiasedXS.size(); - for(G4int i=0; i= 0.0) { - G4int n = m_procForced.size(); - for(G4int i=0; i= 0.0 && energyLim >= 0.0) { - G4int n = m_procBiasedSec.size(); - for(G4int i=0; iGetRegion(m_regnamesSubCut[i], false); if(nullptr != reg) { ptr->ActivateSubCutoff(reg); } } n = m_procBiasedXS.size(); - for(G4int i=0; iGetProcessName() == m_procBiasedXS[i]) { ptr->SetCrossSectionBiasingFactor(m_factBiasedXS[i], m_weightBiasedXS[i]); @@ -392,7 +392,7 @@ void G4EmExtraParameters::DefineRegParamForLoss(G4VEnergyLossProcess* ptr) const } } n = m_procForced.size(); - for(G4int i=0; iGetProcessName() == m_procForced[i]) { ptr->ActivateForcedInteraction(m_lengthForced[i], m_regnamesForced[i], @@ -401,7 +401,7 @@ void G4EmExtraParameters::DefineRegParamForLoss(G4VEnergyLossProcess* ptr) const } } n = m_procBiasedSec.size(); - for(G4int i=0; iGetProcessName() == m_procBiasedSec[i]) { ptr->ActivateSecondaryBiasing(m_regnamesBiasedSec[i], m_factBiasedSec[i], @@ -413,8 +413,8 @@ void G4EmExtraParameters::DefineRegParamForLoss(G4VEnergyLossProcess* ptr) const void G4EmExtraParameters::DefineRegParamForEM(G4VEmProcess* ptr) const { - G4int n = m_procBiasedXS.size(); - for(G4int i=0; iGetProcessName() == m_procBiasedXS[i]) { ptr->SetCrossSectionBiasingFactor(m_factBiasedXS[i], m_weightBiasedXS[i]); @@ -422,7 +422,7 @@ void G4EmExtraParameters::DefineRegParamForEM(G4VEmProcess* ptr) const } } n = m_procForced.size(); - for(G4int i=0; iGetProcessName() == m_procForced[i]) { ptr->ActivateForcedInteraction(m_lengthForced[i], m_regnamesForced[i], @@ -431,7 +431,7 @@ void G4EmExtraParameters::DefineRegParamForEM(G4VEmProcess* ptr) const } } n = m_procBiasedSec.size(); - for(G4int i=0; iGetProcessName() == m_procBiasedSec[i]) { ptr->ActivateSecondaryBiasing(m_regnamesBiasedSec[i], m_factBiasedSec[i], diff --git a/source/processes/electromagnetic/utils/src/G4EmLowEParameters.cc b/source/processes/electromagnetic/utils/src/G4EmLowEParameters.cc index 072f40b1a6..3a1fd5d164 100644 --- a/source/processes/electromagnetic/utils/src/G4EmLowEParameters.cc +++ b/source/processes/electromagnetic/utils/src/G4EmLowEParameters.cc @@ -68,8 +68,6 @@ G4EmLowEParameters::~G4EmLowEParameters() void G4EmLowEParameters::Initialise() { fluo = false; - beardenFluoDir = false; - fANSTOFluoDir = false; auger = false; pixe = false; deexIgnoreCut = false; @@ -79,6 +77,7 @@ void G4EmLowEParameters::Initialise() dnaMsc = false; dnaElectronSolvation = fMeesungnoen2002eSolvation; + fFluoDirectory = fluoDefault; namePIXE = "Empirical"; nameElectronPIXE = "Livermore"; livDataDir = "epics_2017"; @@ -96,24 +95,32 @@ G4bool G4EmLowEParameters::Fluo() const return fluo; } -void G4EmLowEParameters::SetBeardenFluoDir(G4bool val) +G4EmFluoDirectory G4EmLowEParameters::FluoDirectory() const { - beardenFluoDir = val; + return fFluoDirectory; } -G4bool G4EmLowEParameters::BeardenFluoDir() const +void G4EmLowEParameters::SetFluoDirectory(G4EmFluoDirectory val) { - return beardenFluoDir; + fFluoDirectory = fluoDefault; + if(fluoBearden == val) { fFluoDirectory = fluoBearden; } + else if(fluoANSTO == val) { fFluoDirectory = fluoANSTO; } + else if(fluoXDB_EADL == val) { fFluoDirectory = fluoXDB_EADL; } +} + +void G4EmLowEParameters::SetBeardenFluoDir(G4bool val) +{ + fFluoDirectory = val ? fluoBearden : fluoDefault; } void G4EmLowEParameters::SetANSTOFluoDir(G4bool val) { - fANSTOFluoDir = val; + fFluoDirectory = val ? fluoANSTO : fluoDefault; } -G4bool G4EmLowEParameters::ANSTOFluoDir() const +void G4EmLowEParameters::SetXDB_EADLFluoDir(G4bool val) { - return fANSTOFluoDir; + fFluoDirectory = val ? fluoXDB_EADL : fluoDefault; } void G4EmLowEParameters::SetAuger(G4bool val) @@ -235,8 +242,8 @@ G4String G4EmLowEParameters::CheckRegion(const G4String& reg) const void G4EmLowEParameters::AddMicroElec(const G4String& region) { G4String r = CheckRegion(region); - G4int nreg = m_regnamesME.size(); - for(G4int i=0; i& G4EmLowEParameters::RegionsMicroElec() const void G4EmLowEParameters::AddDNA(const G4String& region, const G4String& type) { G4String r = CheckRegion(region); - G4int nreg = m_regnamesDNA.size(); - for(G4int i=0; iSetDeexcitationActiveRegion(m_regnamesDeex[i], m_fluo[i], m_auger[i], m_pixe[i]); } diff --git a/source/processes/electromagnetic/utils/src/G4EmLowEParametersMessenger.cc b/source/processes/electromagnetic/utils/src/G4EmLowEParametersMessenger.cc index 5f905acd27..49917d1295 100644 --- a/source/processes/electromagnetic/utils/src/G4EmLowEParametersMessenger.cc +++ b/source/processes/electromagnetic/utils/src/G4EmLowEParametersMessenger.cc @@ -40,6 +40,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #include "G4EmLowEParametersMessenger.hh" +#include "G4EmFluoDirectory.hh" #include "G4UIcommand.hh" #include "G4UIparameter.hh" #include "G4UIcmdWithABool.hh" @@ -69,14 +70,14 @@ G4EmLowEParametersMessenger::G4EmLowEParametersMessenger(G4EmLowEParameters* ptr dirFluoCmd->SetGuidance("Enable/disable usage of Bearden fluorescence files"); dirFluoCmd->SetParameterName("fluoBeardenFlag",true); dirFluoCmd->SetDefaultValue(false); - dirFluoCmd->AvailableForStates(G4State_PreInit,G4State_Init,G4State_Idle); + dirFluoCmd->AvailableForStates(G4State_PreInit,G4State_Init); dirFluoCmd->SetToBeBroadcasted(false); dirFluoCmd1 = new G4UIcmdWithABool("/process/em/fluoANSTO",this); dirFluoCmd1->SetGuidance("Enable/disable usage of ANSTO fluorescence files"); dirFluoCmd1->SetParameterName("fluoANSTOFlag",true); dirFluoCmd1->SetDefaultValue(false); - dirFluoCmd1->AvailableForStates(G4State_PreInit,G4State_Init,G4State_Idle); + dirFluoCmd1->AvailableForStates(G4State_PreInit,G4State_Init); dirFluoCmd1->SetToBeBroadcasted(false); auCmd = new G4UIcmdWithABool("/process/em/auger",this); @@ -128,6 +129,13 @@ G4EmLowEParametersMessenger::G4EmLowEParametersMessenger(G4EmLowEParameters* ptr dnamscCmd->AvailableForStates(G4State_PreInit); dnamscCmd->SetToBeBroadcasted(false); + direFluoCmd = new G4UIcmdWithAString("/process/em/fluoDirectory",this); + direFluoCmd->SetGuidance("The name of PIXE cross section"); + direFluoCmd->SetParameterName("fluoDirectory",true); + direFluoCmd->SetCandidates("Default Bearden ANSTO XDB_EADL"); + direFluoCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + direFluoCmd->SetToBeBroadcasted(false); + pixeXsCmd = new G4UIcmdWithAString("/process/em/pixeXSmodel",this); pixeXsCmd->SetGuidance("The name of PIXE cross section"); pixeXsCmd->SetParameterName("pixeXS",true); @@ -217,6 +225,7 @@ G4EmLowEParametersMessenger::~G4EmLowEParametersMessenger() delete pixeeXsCmd; delete livCmd; delete dnaSolCmd; + delete direFluoCmd; delete meCmd; delete dnaCmd; delete deexCmd; @@ -269,6 +278,12 @@ void G4EmLowEParametersMessenger::SetNewValue(G4UIcommand* command, ttt = fKreipl2009eSolvation; } theParameters->SetDNAeSolvationSubType(ttt); + } else if (command == direFluoCmd) { + G4EmFluoDirectory ttt = fluoDefault; + if(newValue == "Bearden") { ttt = fluoBearden; } + else if(newValue == "ANSTO") { ttt = fluoANSTO; } + else if(newValue == "XDB_EADL") { ttt = fluoXDB_EADL; } + theParameters->SetFluoDirectory(ttt); } else if (command == pixeXsCmd) { theParameters->SetPIXECrossSectionModel(newValue); physicsModified = true; diff --git a/source/processes/electromagnetic/utils/src/G4EmModelManager.cc b/source/processes/electromagnetic/utils/src/G4EmModelManager.cc index 032353e52f..23f814a8a0 100644 --- a/source/processes/electromagnetic/utils/src/G4EmModelManager.cc +++ b/source/processes/electromagnetic/utils/src/G4EmModelManager.cc @@ -119,8 +119,8 @@ void G4EmModelManager::Clear() if(1 < verboseLevel) { G4cout << "G4EmModelManager::Clear()" << G4endl; } - size_t n = setOfRegionModels.size(); - for(size_t i=0; iNumberOfModels()) ? models[rm->ModelIndex(k)] : nullptr; @@ -173,7 +173,7 @@ G4VEmModel* G4EmModelManager::GetRegionModel(G4int k, size_t idx) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4int G4EmModelManager::NumberOfRegionModels(size_t idx) const +G4int G4EmModelManager::NumberOfRegionModels(std::size_t idx) const { G4RegionModels* rm = setOfRegionModels[idxOfRegionModels[idx]]; return rm->NumberOfModels(); @@ -242,13 +242,13 @@ G4EmModelManager::Initialise(const G4ParticleDefinition* p, G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + std::size_t numOfCouples = theCoupleTable->GetTableSize(); // prepare vectors, shortcut for the case of only 1 model // or only one region if(nRegions > 1 && nEmModels > 1) { idxOfRegionModels.resize(numOfCouples,0); - setOfRegionModels.resize((size_t)nRegions,nullptr); + setOfRegionModels.resize((std::size_t)nRegions,nullptr); } else { idxOfRegionModels.resize(1,0); setOfRegionModels.resize(1,nullptr); @@ -460,7 +460,7 @@ G4EmModelManager::Initialise(const G4ParticleDefinition* p, currModel = models[0]; // Access to materials and build cuts - size_t idx = 1; + std::size_t idx = 1; if(nullptr != secondaryParticle) { if( secondaryParticle == G4Gamma::Gamma() ) { idx = 0; } else if( secondaryParticle == G4Electron::Electron()) { idx = 1; } @@ -476,10 +476,10 @@ G4EmModelManager::Initialise(const G4ParticleDefinition* p, // G4cout << "========Start define cuts" << G4endl; // define cut values - for(size_t i=0; iGetMaterialCutsCouple(i); + theCoupleTable->GetMaterialCutsCouple((G4int)i); const G4Material* material = couple->GetMaterial(); const G4ProductionCuts* pcuts = couple->GetProductionCuts(); @@ -563,7 +563,7 @@ void G4EmModelManager::FillDEDXVector(G4PhysicsVector* aVector, const G4MaterialCutsCouple* couple, G4EmTableType tType) { - size_t i = couple->GetIndex(); + std::size_t i = couple->GetIndex(); G4double cut = (fTotal == tType) ? DBL_MAX : (*theCuts)[i]; if(1 < verboseLevel) { @@ -581,11 +581,11 @@ void G4EmModelManager::FillDEDXVector(G4PhysicsVector* aVector, G4int nmod = regModels->NumberOfModels(); // Calculate energy losses vector - size_t totBinsLoss = aVector->GetVectorLength(); + std::size_t totBinsLoss = aVector->GetVectorLength(); G4double del = 0.0; G4int k0 = 0; - for(size_t j=0; jEnergy(j); // Choose a model of energy losses @@ -630,7 +630,7 @@ void G4EmModelManager::FillLambdaVector(G4PhysicsVector* aVector, G4bool startFromNull, G4EmTableType tType) { - size_t i = couple->GetIndex(); + std::size_t i = couple->GetIndex(); G4double cut = (*theCuts)[i]; G4double tmax = DBL_MAX; @@ -651,12 +651,12 @@ void G4EmModelManager::FillLambdaVector(G4PhysicsVector* aVector, } // Calculate lambda vector - size_t totBinsLambda = aVector->GetVectorLength(); + std::size_t totBinsLambda = aVector->GetVectorLength(); G4double del = 0.0; G4int k0 = 0; G4int k = 0; G4VEmModel* mod = models[regModels->ModelIndex(0)]; - for(size_t j=0; jEnergy(j); @@ -720,11 +720,11 @@ void G4EmModelManager::DumpModelList(std::ostream& out, G4int verb) << std::setw(5) << G4BestUnit(emax,"Energy"); G4PhysicsTable* table = model->GetCrossSectionTable(); if(table) { - size_t kk = table->size(); - for(size_t k=0; ksize(); + for(std::size_t k=0; kGetVectorLength() - 1; + G4int nn = G4int(v->GetVectorLength() - 1); out << " Nbins=" << nn << " " << std::setw(3) << G4BestUnit(v->Energy(0),"Energy") << " - " diff --git a/source/processes/electromagnetic/utils/src/G4EmParameters.cc b/source/processes/electromagnetic/utils/src/G4EmParameters.cc index 3eec097df5..86ab1efac5 100644 --- a/source/processes/electromagnetic/utils/src/G4EmParameters.cc +++ b/source/processes/electromagnetic/utils/src/G4EmParameters.cc @@ -134,6 +134,7 @@ void G4EmParameters::Initialise() fSamplingTable = false; fPolarisation = false; fMuDataFromFile = false; + fPEKShell = true; fDNA = false; fIsPrinted = false; @@ -238,26 +239,33 @@ G4bool G4EmParameters::Fluo() const return fCParameters->Fluo(); } +G4EmFluoDirectory G4EmParameters::FluoDirectory() const +{ + return fCParameters->FluoDirectory(); +} + +void G4EmParameters::SetFluoDirectory(G4EmFluoDirectory val) +{ + if(IsLocked()) { return; } + fCParameters->SetFluoDirectory(val); +} + void G4EmParameters::SetBeardenFluoDir(G4bool val) { if(IsLocked()) { return; } fCParameters->SetBeardenFluoDir(val); } -G4bool G4EmParameters::BeardenFluoDir() const -{ - return fCParameters->BeardenFluoDir(); -} - void G4EmParameters::SetANSTOFluoDir(G4bool val) { if(IsLocked()) { return; } fCParameters->SetANSTOFluoDir(val); } -G4bool G4EmParameters::ANSTOFluoDir() const +void G4EmParameters::SetXDB_EADLFluoDir(G4bool val) { - return fCParameters->ANSTOFluoDir(); + if(IsLocked()) { return; } + fCParameters->SetXDB_EADLFluoDir(val); } void G4EmParameters::SetAuger(G4bool val) @@ -266,6 +274,18 @@ void G4EmParameters::SetAuger(G4bool val) fCParameters->SetAuger(val); } +G4bool G4EmParameters::BeardenFluoDir() +{ + auto dir = fCParameters->FluoDirectory(); + return (dir == fluoBearden); +} + +G4bool G4EmParameters::ANSTOFluoDir() +{ + auto dir = fCParameters->FluoDirectory(); + return (dir == fluoANSTO); +} + G4bool G4EmParameters::Auger() const { return fCParameters->Auger(); @@ -482,6 +502,17 @@ G4bool G4EmParameters::EnableSamplingTable() const return fSamplingTable; } +G4bool G4EmParameters::PhotoeffectBelowKShell() const +{ + return fPEKShell; +} + +void G4EmParameters::SetPhotoeffectBelowKShell(G4bool v) +{ + if(IsLocked()) { return; } + fPEKShell = v; +} + void G4EmParameters::ActivateDNA() { if(IsLocked()) { return; } @@ -1250,7 +1281,7 @@ void G4EmParameters::DefineRegParamForDeex(G4VAtomDeexcitation* ptr) const void G4EmParameters::StreamInfo(std::ostream& os) const { - G4int prec = os.precision(5); + G4long prec = os.precision(5); os << "=======================================================================" << "\n"; os << "====== Electromagnetic Physics Parameters ========" << "\n"; os << "=======================================================================" << "\n"; @@ -1266,6 +1297,7 @@ void G4EmParameters::StreamInfo(std::ostream& os) const os << "Use combined TransportationWithMsc " <QuantumEntanglement() << "\n"; os << "X-section factor for integral approach " <Fluo() << "\n"; - os << "Fluorescence Bearden data files enabled " - <BeardenFluoDir() << "\n"; - os << "Fluorescence ANSTO data files enabled " - <ANSTOFluoDir() << "\n"; + G4String named = "fluor"; + G4EmFluoDirectory fdir = FluoDirectory(); + if(fdir == fluoBearden) { named = "fluor_Bearden"; } + else if(fdir == fluoANSTO) { named = "fluor_ANSTO"; } + else if(fdir == fluoXDB_EADL) { named = "fluor_XDB_EADL"; } + os << "Directory in G4LEDATA for fluorescence data files " << named << "\n"; os << "Auger electron cascade enabled " <Auger() << "\n"; os << "PIXE atomic de-excitation enabled " <Pixe() << "\n"; diff --git a/source/processes/electromagnetic/utils/src/G4EmParametersMessenger.cc b/source/processes/electromagnetic/utils/src/G4EmParametersMessenger.cc index 4da7c45ce0..8e71ca9d66 100644 --- a/source/processes/electromagnetic/utils/src/G4EmParametersMessenger.cc +++ b/source/processes/electromagnetic/utils/src/G4EmParametersMessenger.cc @@ -189,6 +189,13 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr) mudatCmd->AvailableForStates(G4State_PreInit); mudatCmd->SetToBeBroadcasted(false); + peKCmd = new G4UIcmdWithABool("/process/em/PhotoeffectBelowKShell",this); + peKCmd->SetGuidance("Enable sampling of photoeffect below K-shell"); + peKCmd->SetParameterName("peK",true); + peKCmd->SetDefaultValue(true); + peKCmd->AvailableForStates(G4State_PreInit); + peKCmd->SetToBeBroadcasted(false); + minEnCmd = new G4UIcmdWithADoubleAndUnit("/process/eLoss/minKinEnergy",this); minEnCmd->SetGuidance("Set the min kinetic energy for EM tables"); minEnCmd->SetParameterName("emin",true); @@ -342,7 +349,7 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr) llimCmd->AvailableForStates(G4State_PreInit); llimCmd->SetToBeBroadcasted(false); - amCmd = new G4UIcmdWithAnInteger("/process/eLoss/binsPerDecade",this); + amCmd = new G4UIcmdWithAnInteger("/process/em/binsPerDecade",this); amCmd->SetGuidance("Set number of bins per decade for EM tables"); amCmd->SetParameterName("bins",true); amCmd->SetDefaultValue(7); @@ -466,6 +473,7 @@ G4EmParametersMessenger::~G4EmParametersMessenger() delete poCmd; delete icru90Cmd; delete mudatCmd; + delete peKCmd; delete minEnCmd; delete maxEnCmd; @@ -553,6 +561,8 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command, theParameters->SetEnableSamplingTable(sampleTCmd->GetNewBoolValue(newValue)); } else if (command == mudatCmd) { theParameters->SetRetrieveMuDataFromFile(mudatCmd->GetNewBoolValue(newValue)); + } else if (command == peKCmd) { + theParameters->SetPhotoeffectBelowKShell(peKCmd->GetNewBoolValue(newValue)); } else if (command == minEnCmd) { theParameters->SetMinEnergy(minEnCmd->GetNewDoubleValue(newValue)); @@ -610,6 +620,8 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command, theParameters->SetMscLambdaLimit(llimCmd->GetNewDoubleValue(newValue)); } else if (command == screCmd) { theParameters->SetScreeningFactor(screCmd->GetNewDoubleValue(newValue)); + } else if (command == amCmd) { + theParameters->SetNumberOfBinsPerDecade(amCmd->GetNewIntValue(newValue)); } else if (command == verCmd) { theParameters->SetVerbose(verCmd->GetNewIntValue(newValue)); } else if (command == ver1Cmd) { diff --git a/source/processes/electromagnetic/utils/src/G4EmSaturation.cc b/source/processes/electromagnetic/utils/src/G4EmSaturation.cc index 09a66e1191..82faea7cf6 100644 --- a/source/processes/electromagnetic/utils/src/G4EmSaturation.cc +++ b/source/processes/electromagnetic/utils/src/G4EmSaturation.cc @@ -53,7 +53,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -size_t G4EmSaturation::nMaterials = 0; +std::size_t G4EmSaturation::nMaterials = 0; std::vector G4EmSaturation::massFactors; std::vector G4EmSaturation::effCharges; std::vector G4EmSaturation::g4MatData; @@ -119,7 +119,7 @@ G4double G4EmSaturation::VisibleEnergyDeposition( } // non-ionizing energy loss if(nloss > 0.0) { - G4int idx = couple->GetMaterial()->GetIndex(); + std::size_t idx = couple->GetMaterial()->GetIndex(); G4double escaled = nloss*massFactors[idx]; /* G4cout << "%% p edep= " << nloss/keV << " keV Escaled= " @@ -149,7 +149,7 @@ void G4EmSaturation::InitialiseG4Saturation() if(0 == nG4Birks) { InitialiseG4materials(); } - for(size_t i=0; i 0) { DumpBirksCoefficients(); } @@ -214,8 +214,8 @@ void G4EmSaturation::InitialiseBirksCoefficient(const G4Material* mat) G4double norm = 0.0; const G4ElementVector* theElementVector = mat->GetElementVector(); const G4double* theAtomNumDensityVector = mat->GetVecNbOfAtomsPerVolume(); - size_t nelm = mat->GetNumberOfElements(); - for (size_t i=0; iGetNumberOfElements(); + for (std::size_t i=0; iGetZ(); G4double w = Z*Z*theAtomNumDensityVector[i]; @@ -227,7 +227,7 @@ void G4EmSaturation::InitialiseBirksCoefficient(const G4Material* mat) curChargeSq /= norm; // store results - G4int idx = mat->GetIndex(); + std::size_t idx = mat->GetIndex(); massFactors[idx] = curRatio; effCharges[idx] = curChargeSq; } @@ -238,7 +238,7 @@ void G4EmSaturation::DumpBirksCoefficients() { G4cout << "### Birks coefficients used in run time" << G4endl; const G4MaterialTable* mtable = G4Material::GetMaterialTable(); - for(size_t i=0; iGetIonisation()->GetBirksConstant(); if(br > 0.0) { diff --git a/source/processes/electromagnetic/utils/src/G4EmTableUtil.cc b/source/processes/electromagnetic/utils/src/G4EmTableUtil.cc index fc9feb18fe..ea67a5aae8 100644 --- a/source/processes/electromagnetic/utils/src/G4EmTableUtil.cc +++ b/source/processes/electromagnetic/utils/src/G4EmTableUtil.cc @@ -209,7 +209,7 @@ void G4EmTableUtil::BuildLambdaTable(G4VEmProcess* proc, // Access to materials const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + std::size_t numOfCouples = theCoupleTable->GetTableSize(); G4PhysicsLogVector* aVector = nullptr; G4PhysicsLogVector* aVectorPrim = nullptr; @@ -217,12 +217,12 @@ void G4EmTableUtil::BuildLambdaTable(G4VEmProcess* proc, G4double emax1 = std::min(maxKinEnergy, minKinEnergyPrim); - for(size_t i=0; iGetFlag(i)) { // create physics vector and fill it const G4MaterialCutsCouple* couple = - theCoupleTable->GetMaterialCutsCouple(i); + theCoupleTable->GetMaterialCutsCouple((G4int)i); // build main table if(nullptr != theLambdaTable) { @@ -297,14 +297,14 @@ void G4EmTableUtil::BuildLambdaTable(G4VEnergyLossProcess* proc, const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + std::size_t numOfCouples = theCoupleTable->GetTableSize(); G4PhysicsLogVector* aVector = nullptr; - for(size_t i=0; iGetFlag(i)) { // create physics vector and fill it const G4MaterialCutsCouple* couple = - theCoupleTable->GetMaterialCutsCouple(i); + theCoupleTable->GetMaterialCutsCouple((G4int)i); delete (*theLambdaTable)[i]; G4bool startNull = true; @@ -359,8 +359,8 @@ G4EmTableUtil::CheckIon(G4VEnergyLossProcess* proc, if(particle != theGIon) { G4ProcessManager* pm = theGIon->GetProcessManager(); G4ProcessVector* v = pm->GetAlongStepProcessVector(); - size_t n = v->size(); - for(size_t j=0; jsize(); + for(G4int j=0; jGetTableSize(); + std::size_t numOfCouples = theCoupleTable->GetTableSize(); if(1 < verbose) { G4cout << numOfCouples << " couples" << " minKinEnergy(MeV)= " << emin @@ -462,7 +462,7 @@ void G4EmTableUtil::BuildDEDXTable(G4VEnergyLossProcess* proc, G4PhysicsLogVector* aVector = nullptr; G4PhysicsLogVector* bVector = nullptr; - for(size_t i=0; iGetIndex(); + G4int materialIndex = (G4int)aMaterial->GetIndex(); G4double Thighr = t->theHighestKineticEnergy*t->theLowestKineticEnergy/ (*rangeTable)(materialIndex)-> diff --git a/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc b/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc index dee1449200..6c83d0f446 100644 --- a/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc +++ b/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc @@ -129,7 +129,7 @@ const std::vector* G4LossTableBuilder::GetDensityFactors() const //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4bool G4LossTableBuilder::GetFlag(size_t idx) +G4bool G4LossTableBuilder::GetFlag(std::size_t idx) { if(theFlag->empty()) { InitialiseBaseMaterials(); } return (idx < theFlag->size()) ? (*theFlag)[idx] : false; @@ -150,22 +150,22 @@ G4LossTableBuilder::BuildDEDXTable(G4PhysicsTable* dedxTable, const std::vector& list) { InitialiseBaseMaterials(dedxTable); - size_t n_processes = list.size(); + std::size_t n_processes = list.size(); if(1 >= n_processes) { return; } - size_t nCouples = dedxTable->size(); + std::size_t nCouples = dedxTable->size(); //G4cout << "Nproc= " << n_processes << " nCouples=" << nCouples << " Nv= " // << dedxTable->size() << G4endl; if(0 >= nCouples) { return; } - for (size_t i=0; i((*(list[0]))[i]); if(pv0 == nullptr) { continue; } - size_t npoints = pv0->GetVectorLength(); + std::size_t npoints = pv0->GetVectorLength(); auto pv = new G4PhysicsLogVector(*pv0); - for (size_t j=0; jGetMaterialCutsCouple(i)->GetMaterial()->GetBaseMaterial()) { baseMatFlag = true; isInitialized = false; @@ -326,14 +326,14 @@ void G4LossTableBuilder::InitialiseBaseMaterials(const G4PhysicsTable* table) } // define default flag and index of used material cut couple - for(std::size_t i=0; iGetFlag(i); if(baseMatFlag) { (*theDensityIdx)[i] = i; } } isInitialized = true; if(baseMatFlag) { // use base materials - for(std::size_t i=0; iGetMaterialCutsCouple(i); @@ -343,7 +343,7 @@ void G4LossTableBuilder::InitialiseBaseMaterials(const G4PhysicsTable* table) // base material exists - find it and check if it can be reused if(nullptr != bmat) { - for(std::size_t j=0; jGetMaterialCutsCouple(j); @@ -368,7 +368,7 @@ void G4LossTableBuilder::InitialiseBaseMaterials(const G4PhysicsTable* table) /* G4cout << "### G4LossTableBuilder::InitialiseBaseMaterials: flag=" << baseMatFlag << G4endl; - for(size_t i=0; iGetMaterialCutsCouple(i)->GetMaterial()->GetName() << " TableFlag= " << table->GetFlag(i) @@ -406,7 +406,7 @@ G4LossTableBuilder::BuildTableForModel(G4PhysicsTable* aTable, G4PhysicsLogVector* aVector = nullptr; - for(std::size_t i=0; i 1) { @@ -270,8 +270,8 @@ void G4LossTableManager::Register(G4VMultipleScattering* p) void G4LossTableManager::DeRegister(G4VMultipleScattering* p) { if(!p) { return; } - size_t msc = msc_vector.size(); - for (size_t i=0; i 1) { @@ -300,8 +300,8 @@ void G4LossTableManager::Register(G4VEmProcess* p) void G4LossTableManager::DeRegister(G4VEmProcess* p) { if(!p) { return; } - size_t emp = emp_vector.size(); - for (size_t i=0; i 1) { @@ -330,8 +330,8 @@ void G4LossTableManager::Register(G4VProcess* p) void G4LossTableManager::DeRegister(G4VProcess* p) { if(!p) { return; } - size_t emp = p_vector.size(); - for (size_t i=0; i >::const_iterator pos; @@ -425,8 +423,9 @@ G4LossTableManager::GetEnergyLossProcess(const G4ParticleDefinition *aParticle) currentLoss = (*pos).second; } else { currentLoss = nullptr; - if ((pos = loss_map.find(theGenericIon)) != loss_map.end()) { - currentLoss = (*pos).second; + if(0.0 != aParticle->GetPDGCharge() && + (pos = loss_map.find(theGenericIon)) != loss_map.end()) { + currentLoss = (*pos).second; } } } @@ -796,7 +795,7 @@ G4VEnergyLossProcess* G4LossTableManager::BuildTables( G4ProcessVector* pvec = aParticle->GetProcessManager()->GetProcessList(); - G4int nvec = pvec->size(); + G4int nvec = (G4int)pvec->size(); for (i=0; iGetParticleName() << G4endl; diff --git a/source/processes/electromagnetic/utils/src/G4OpticalParameters.cc b/source/processes/electromagnetic/utils/src/G4OpticalParameters.cc index 624236617c..e6a673f5c2 100644 --- a/source/processes/electromagnetic/utils/src/G4OpticalParameters.cc +++ b/source/processes/electromagnetic/utils/src/G4OpticalParameters.cc @@ -477,7 +477,7 @@ void G4OpticalParameters::PrintWarning(G4ExceptionDescription& ed) const void G4OpticalParameters::StreamInfo(std::ostream& os) const { - G4int prec = os.precision(5); + G4long prec = os.precision(5); os << "=======================================================================" << "\n"; diff --git a/source/processes/electromagnetic/utils/src/G4TransportationWithMsc.cc b/source/processes/electromagnetic/utils/src/G4TransportationWithMsc.cc index 73ae93b3cc..9f977f0c68 100644 --- a/source/processes/electromagnetic/utils/src/G4TransportationWithMsc.cc +++ b/source/processes/electromagnetic/utils/src/G4TransportationWithMsc.cc @@ -208,6 +208,9 @@ void G4TransportationWithMsc::StartTracking(G4Track* track) msc->StartTracking(track); msc->SetIonisation(ionisation, currParticle); } + + // Ensure that field propagation state is also cleared / prepared + G4Transportation::StartTracking(track); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/utils/src/G4VAtomDeexcitation.cc b/source/processes/electromagnetic/utils/src/G4VAtomDeexcitation.cc index 3ee3e084de..b7ed1ba4d2 100644 --- a/source/processes/electromagnetic/utils/src/G4VAtomDeexcitation.cc +++ b/source/processes/electromagnetic/utils/src/G4VAtomDeexcitation.cc @@ -90,10 +90,10 @@ void G4VAtomDeexcitation::InitialiseAtomicDeexcitation() // Define list of couples theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - nCouples = theCoupleTable->GetTableSize(); + nCouples = (G4int)theCoupleTable->GetTableSize(); // needed for unit tests - size_t nn = std::max(nCouples, 1); + std::size_t nn = std::max(nCouples, 1); if(activeDeexcitationMedia.size() != nn) { activeDeexcitationMedia.resize(nn, false); activeAugerMedia.resize(nn, false); @@ -109,7 +109,7 @@ void G4VAtomDeexcitation::InitialiseAtomicDeexcitation() ignoreCuts = theParameters->DeexcitationIgnoreCut(); // Define list of regions - size_t nRegions = deRegions.size(); + std::size_t nRegions = deRegions.size(); // check if deexcitation is active for the given run if(!isActive && 0 == nRegions) { return; } @@ -129,7 +129,7 @@ void G4VAtomDeexcitation::InitialiseAtomicDeexcitation() // Identify active media const G4RegionStore* regionStore = G4RegionStore::GetInstance(); - for(size_t j=0; jGetRegion(activeRegions[j], false); if(nullptr != reg && 0 < nCouples) { const G4ProductionCuts* rpcuts = reg->GetProductionCuts(); @@ -149,9 +149,9 @@ void G4VAtomDeexcitation::InitialiseAtomicDeexcitation() } } } - G4int nelm = G4Element::GetNumberOfElements(); + std::size_t nelm = G4Element::GetNumberOfElements(); //G4cout << nelm << G4endl; - for(G4int k=0; kGetZasInt(); if(Z > 5 && Z < 93) { activeZ[Z] = true; @@ -200,8 +200,8 @@ G4VAtomDeexcitation::SetDeexcitationActiveRegion(const G4String& rname, if(ss == "world" || ss == "World" || ss == "WORLD") { ss = "DefaultRegionForTheWorld"; } - size_t n = deRegions.size(); - for(size_t i=0; isize(); - for(G4int i=0; isize(); + for(std::size_t i=0; iGetName()) { continue; } SetDeexcitationActiveRegion((*regions)[i]->GetName(), valDeexcitation, valAuger, valPIXE); @@ -294,10 +294,10 @@ G4VAtomDeexcitation::AlongStepDeexcitation(std::vector& tracks, const G4ElementVector* theElementVector = material->GetElementVector(); const G4double* theAtomNumDensityVector = material->GetVecNbOfAtomsPerVolume(); - const G4int nelm = material->GetNumberOfElements(); + const std::size_t nelm = material->GetNumberOfElements(); // loop over deexcitations - for(G4int i=0; iGetZasInt(); if(activeZ[Z] && Z < 93) { G4int nshells = @@ -327,11 +327,11 @@ G4VAtomDeexcitation::AlongStepDeexcitation(std::vector& tracks, // sample deexcitation vdyn.clear(); GenerateParticles(&vdyn, shell, Z, gCut, eCut); - G4int nsec = vdyn.size(); + std::size_t nsec = vdyn.size(); if(nsec > 0) { G4ThreeVector r = prePos + stot*delta; G4double time = preTime + stot*dt; - for(G4int j=0; jGetKineticEnergy(); diff --git a/source/processes/electromagnetic/utils/src/G4VEmModel.cc b/source/processes/electromagnetic/utils/src/G4VEmModel.cc index b13a29966f..13ac6f9252 100644 --- a/source/processes/electromagnetic/utils/src/G4VEmModel.cc +++ b/source/processes/electromagnetic/utils/src/G4VEmModel.cc @@ -154,8 +154,8 @@ void G4VEmModel::InitialiseForMaterial(const G4ParticleDefinition* part, const G4Material* material) { if(material != nullptr) { - size_t n = material->GetNumberOfElements(); - for(size_t i=0; iGetNumberOfElements(); + for(G4int i=0; iGetElement(i)->GetZasInt(); InitialiseForElement(part, Z); } @@ -186,7 +186,7 @@ G4double G4VEmModel::CrossSectionPerVolume(const G4Material* mat, { SetupForMaterial(p, mat, ekin); const G4double* theAtomNumDensityVector = mat->GetVecNbOfAtomsPerVolume(); - G4int nelm = mat->GetNumberOfElements(); + G4int nelm = (G4int)mat->GetNumberOfElements(); if(nelm > nsec) { xsec.resize(nelm); nsec = nelm; @@ -222,12 +222,12 @@ const G4Element* G4VEmModel::SelectRandomAtom(const G4Material* mat, G4double tcut, G4double tmax) { - size_t n = mat->GetNumberOfElements(); + G4int n = (G4int)mat->GetNumberOfElements(); fCurrentElement = mat->GetElement(0); if (n > 1) { const G4double x = G4UniformRand()* G4VEmModel::CrossSectionPerVolume(mat,pd,kinEnergy,tcut,tmax); - for(size_t i=0; iGetElement(i); break; diff --git a/source/processes/electromagnetic/utils/src/G4VEmProcess.cc b/source/processes/electromagnetic/utils/src/G4VEmProcess.cc index 20c9b08262..864231f62d 100644 --- a/source/processes/electromagnetic/utils/src/G4VEmProcess.cc +++ b/source/processes/electromagnetic/utils/src/G4VEmProcess.cc @@ -282,7 +282,7 @@ void G4VEmProcess::StreamInfo(std::ostream& out, out << " Lambda table from "; G4double emin = v->Energy(0); G4double emax = v->GetMaxEnergy(); - G4int nbin = v->GetVectorLength() - 1; + G4int nbin = G4int(v->GetVectorLength() - 1); if(emin > minKinEnergy) { out << "threshold "; } else { out << G4BestUnit(emin,"Energy"); } out << " to " @@ -377,8 +377,8 @@ G4double G4VEmProcess::PostStepGetPhysicalInteractionLength( if(biasManager) { if(0 == track.GetParentID()) { if(biasFlag && - biasManager->ForcedInteractionRegion(currentCoupleIndex)) { - return biasManager->GetStepLimit(currentCoupleIndex, previousStepSize); + biasManager->ForcedInteractionRegion((G4int)currentCoupleIndex)) { + return biasManager->GetStepLimit((G4int)currentCoupleIndex, previousStepSize); } } } @@ -472,7 +472,7 @@ G4VParticleChange* G4VEmProcess::PostStepDoIt(const G4Track& track, // forced process - should happen only once per track if(biasFlag) { - if(biasManager->ForcedInteractionRegion(currentCoupleIndex)) { + if(biasManager->ForcedInteractionRegion((G4int)currentCoupleIndex)) { biasFlag = false; } } @@ -526,15 +526,15 @@ G4VParticleChange* G4VEmProcess::PostStepDoIt(const G4Track& track, track.GetDynamicParticle(), (*theCuts)[currentCoupleIndex]); - G4int num0 = secParticles.size(); + G4int num0 = (G4int)secParticles.size(); // splitting or Russian roulette if(biasManager) { - if(biasManager->SecondaryBiasingRegion(currentCoupleIndex)) { + if(biasManager->SecondaryBiasingRegion((G4int)currentCoupleIndex)) { G4double eloss = 0.0; weight *= biasManager->ApplySecondaryBiasing( secParticles, track, currentModel, &fParticleChange, eloss, - currentCoupleIndex, (*theCuts)[currentCoupleIndex], + (G4int)currentCoupleIndex, (*theCuts)[currentCoupleIndex], step.GetPostStepPoint()->GetSafety()); if(eloss > 0.0) { eloss += fParticleChange.GetLocalEnergyDeposit(); @@ -544,7 +544,7 @@ G4VParticleChange* G4VEmProcess::PostStepDoIt(const G4Track& track, } // save secondaries - G4int num = secParticles.size(); + G4int num = (G4int)secParticles.size(); if(num > 0) { fParticleChange.SetNumberOfSecondaries(num); diff --git a/source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc b/source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc index ca08c2680e..594cc1f406 100644 --- a/source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc +++ b/source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc @@ -498,7 +498,7 @@ void G4VEnergyLossProcess::StreamInfo(std::ostream& out, << " regions" << G4endl; } if(2 < verboseLevel) { - for(size_t i=0; i<7; ++i) { + for(std::size_t i=0; i<7; ++i) { auto ta = theData->Table(i); out << " " << tnames[i] << " address: " << ta << G4endl; if(nullptr != ta) { out << *ta << G4endl; } @@ -622,13 +622,17 @@ G4double G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength( reduceFactor = 1.0/(fFactor*massRatio); chargeSqRatio = q2; } + if (lossFluctuationFlag) { + auto fluc = currentModel->GetModelOfFluctuations(); + fluc->SetParticleAndCharge(track.GetDefinition(), q2); + } } // forced biasing only for primary particles if(biasManager) { if(0 == track.GetParentID() && biasFlag && - biasManager->ForcedInteractionRegion(currentCoupleIndex)) { - return biasManager->GetStepLimit(currentCoupleIndex, previousStepSize); + biasManager->ForcedInteractionRegion((G4int)currentCoupleIndex)) { + return biasManager->GetStepLimit((G4int)currentCoupleIndex, previousStepSize); } } @@ -809,7 +813,7 @@ G4VParticleChange* G4VEnergyLossProcess::AlongStepDoIt(const G4Track& track, eloss = preStepKinEnergy; if (useDeexcitation) { atomDeexcitation->AlongStepDeexcitation(scTracks, step, - eloss, currentCoupleIndex); + eloss, (G4int)currentCoupleIndex); if(scTracks.size() > 0) { FillSecondariesAlongStep(weight); } eloss = std::max(eloss, 0.0); } @@ -885,7 +889,7 @@ G4VParticleChange* G4VEnergyLossProcess::AlongStepDoIt(const G4Track& track, G4double esecfluo = preStepKinEnergy; G4double de = esecfluo; atomDeexcitation->AlongStepDeexcitation(scTracks, step, - de, currentCoupleIndex); + de, (G4int)currentCoupleIndex); // sum of de-excitation energies esecfluo -= de; @@ -938,21 +942,21 @@ G4VParticleChange* G4VEnergyLossProcess::AlongStepDoIt(const G4Track& track, void G4VEnergyLossProcess::FillSecondariesAlongStep(G4double wt) { - const G4int n0 = scTracks.size(); + const std::size_t n0 = scTracks.size(); G4double weight = wt; // weight may be changed by biasing manager if(biasManager) { - if(biasManager->SecondaryBiasingRegion(currentCoupleIndex)) { + if(biasManager->SecondaryBiasingRegion((G4int)currentCoupleIndex)) { weight *= - biasManager->ApplySecondaryBiasing(scTracks, currentCoupleIndex); + biasManager->ApplySecondaryBiasing(scTracks, (G4int)currentCoupleIndex); } } // fill secondaries - const G4int n = scTracks.size(); - fParticleChange.SetNumberOfSecondaries(n); + const std::size_t n = scTracks.size(); + fParticleChange.SetNumberOfSecondaries((G4int)n); - for(G4int i=0; iSetWeight(weight); @@ -988,7 +992,7 @@ G4VParticleChange* G4VEnergyLossProcess::PostStepDoIt(const G4Track& track, */ // forced process - should happen only once per track if(biasFlag) { - if(biasManager->ForcedInteractionRegion(currentCoupleIndex)) { + if(biasManager->ForcedInteractionRegion((G4int)currentCoupleIndex)) { biasFlag = false; } } @@ -1020,17 +1024,17 @@ G4VParticleChange* G4VEnergyLossProcess::PostStepDoIt(const G4Track& track, secParticles.clear(); currentModel->SampleSecondaries(&secParticles, currentCouple, dp, tcut); - const G4int num0 = secParticles.size(); + const G4int num0 = (G4int)secParticles.size(); // bremsstrahlung splitting or Russian roulette if(biasManager) { - if(biasManager->SecondaryBiasingRegion(currentCoupleIndex)) { + if(biasManager->SecondaryBiasingRegion((G4int)currentCoupleIndex)) { G4double eloss = 0.0; weight *= biasManager->ApplySecondaryBiasing( secParticles, track, currentModel, &fParticleChange, eloss, - currentCoupleIndex, tcut, + (G4int)currentCoupleIndex, tcut, step.GetPostStepPoint()->GetSafety()); if(eloss > 0.0) { eloss += fParticleChange.GetLocalEnergyDeposit(); @@ -1040,7 +1044,7 @@ G4VParticleChange* G4VEnergyLossProcess::PostStepDoIt(const G4Track& track, } // save secondaries - const G4int num = secParticles.size(); + const G4int num = (G4int)secParticles.size(); if(num > 0) { fParticleChange.SetNumberOfSecondaries(num); @@ -1104,7 +1108,7 @@ G4bool G4VEnergyLossProcess::StorePhysicsTable( const G4ParticleDefinition* part, const G4String& dir, G4bool ascii) { if (!isMaster || nullptr != baseParticle || part != particle ) return true; - for(size_t i=0; i<7; ++i) { + for(std::size_t i=0; i<7; ++i) { if(nullptr != theData->Table(i)) { if(1 < verboseLevel) { G4cout << "G4VEnergyLossProcess::StorePhysicsTable i=" << i @@ -1128,7 +1132,7 @@ G4VEnergyLossProcess::RetrievePhysicsTable(const G4ParticleDefinition* part, const G4String& dir, G4bool ascii) { if (!isMaster || nullptr != baseParticle || part != particle ) return true; - for(size_t i=0; i<7; ++i) { + for(std::size_t i=0; i<7; ++i) { if(!G4EmTableUtil::RetrieveTable(this, part, theData->Table(i), dir, tnames[i], verboseLevel, ascii, spline)) { return false; diff --git a/source/processes/electromagnetic/utils/src/G4VMscModel.cc b/source/processes/electromagnetic/utils/src/G4VMscModel.cc index 18a3b5625f..38b9e01438 100644 --- a/source/processes/electromagnetic/utils/src/G4VMscModel.cc +++ b/source/processes/electromagnetic/utils/src/G4VMscModel.cc @@ -103,7 +103,7 @@ G4VMscModel::GetParticleChangeForMSC(const G4ParticleDefinition* p) emax = std::min(emax, param->MaxKinEnergy()); if(emin < emax) { xSectionTable = builder->BuildTableForModel(xSectionTable, this, p, - emin, emax, true); + emin, emax, useSpline); } } } diff --git a/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc b/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc index c70139b159..4c801a5d3d 100644 --- a/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc +++ b/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc @@ -289,10 +289,8 @@ G4VMultipleScattering::PostStepGetPhysicalInteractionLength( G4VParticleChange* G4VMultipleScattering::AlongStepDoIt(const G4Track& track, const G4Step& step) { - fParticleChange.ProposeMomentumDirection( - step.GetPostStepPoint()->GetMomentumDirection()); - fNewPosition = step.GetPostStepPoint()->GetPosition(); - fParticleChange.ProposePosition(fNewPosition); + fParticleChange.InitialiseMSC(track, step); + fNewPosition = fParticleChange.GetProposedPosition(); fPositionChanged = false; G4double geomLength = step.GetStepLength(); @@ -374,15 +372,6 @@ G4VMultipleScattering::AlongStepDoIt(const G4Track& track, const G4Step& step) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4VParticleChange* -G4VMultipleScattering::PostStepDoIt(const G4Track& track, const G4Step&) -{ - fParticleChange.Initialize(track); - return &fParticleChange; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - G4double G4VMultipleScattering::GetContinuousStepLimit( const G4Track& track, G4double previousStepSize, diff --git a/source/processes/electromagnetic/utils/src/G4ionEffectiveCharge.cc b/source/processes/electromagnetic/utils/src/G4ionEffectiveCharge.cc index 51265d1344..8ae6ccfd13 100644 --- a/source/processes/electromagnetic/utils/src/G4ionEffectiveCharge.cc +++ b/source/processes/electromagnetic/utils/src/G4ionEffectiveCharge.cc @@ -88,10 +88,11 @@ G4double G4ionEffectiveCharge::EffectiveCharge(const G4ParticleDefinition* p, lastMat = material; lastKinEnergy = kineticEnergy; - G4double mass = p->GetPDGMass(); + G4double mass = p->GetPDGMass(); effCharge = p->GetPDGCharge(); G4int Zi = G4lrint(effCharge*inveplus); chargeCorrection = 1.0; + if(Zi <= 1) { return effCharge; } // The aproximation of ion effective charge from: // J.F.Ziegler, J.P. Biersack, U. Littmark @@ -103,7 +104,7 @@ G4double G4ionEffectiveCharge::EffectiveCharge(const G4ParticleDefinition* p, //G4cout << "e= " << reducedEnergy << " Zi= " << Zi << " " //<< material->GetName() << G4endl; - if(Zi <= 1 || reducedEnergy > effCharge*energyHighLimit ) { + if(reducedEnergy > effCharge*energyHighLimit ) { return effCharge; } G4double z = material->GetIonisation()->GetZeffective(); diff --git a/source/processes/electromagnetic/xrays/History b/source/processes/electromagnetic/xrays/History index 9fda6d9a7a..a8e03454da 100644 --- a/source/processes/electromagnetic/xrays/History +++ b/source/processes/electromagnetic/xrays/History @@ -1,8 +1,19 @@ # Category xrays History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-23 Gabriele Cosmo (xrays-V11-00-07) +- Fixed more compilation warnings for implicit type conversions. + +## 2022-11-18 Gabriele Cosmo (xrays-V11-00-06) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-011 Vladimir Grichine (xrays-V11-00-05) +- G4VXTRenergyLoss.cc bug fixed in the angle range for fMaxThetaTR ## 2022-04-27 Daren Sawkey (xrays-V11-00-04) - many files: apply clang-tidy recommendations. Default ctors, use of auto keywork, diff --git a/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc b/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc index 5646a90d6e..8f4ea7955f 100644 --- a/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc +++ b/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc @@ -147,12 +147,12 @@ void G4Cerenkov::BuildPhysicsTable(const G4ParticleDefinition&) return; const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); - G4int numOfMaterials = G4Material::GetNumberOfMaterials(); + std::size_t numOfMaterials = G4Material::GetNumberOfMaterials(); thePhysicsTable = new G4PhysicsTable(numOfMaterials); // loop over materials - for(G4int i = 0; i < numOfMaterials; ++i) + for(std::size_t i = 0; i < numOfMaterials; ++i) { G4PhysicsFreeVector* cerenkovIntegral = nullptr; @@ -186,7 +186,7 @@ void G4Cerenkov::BuildPhysicsTable(const G4ParticleDefinition&) // loop over all (photon energy, refraction index) // pairs stored for this material - for(size_t ii = 1; ii < refractiveIndex->GetVectorLength(); ++ii) + for(std::size_t ii = 1; ii < refractiveIndex->GetVectorLength(); ++ii) { currentRI = (*refractiveIndex)[ii]; currentPM = refractiveIndex->Energy(ii); @@ -407,7 +407,7 @@ G4double G4Cerenkov::PostStepGetPhysicalInteractionLength( fNumPhotons = 0; const G4Material* aMaterial = aTrack.GetMaterial(); - G4int materialIndex = aMaterial->GetIndex(); + std::size_t materialIndex = aMaterial->GetIndex(); // If Physics Vector is not defined no Cerenkov photons if(!(*thePhysicsTable)[materialIndex]) @@ -514,12 +514,12 @@ G4double G4Cerenkov::GetAverageNumberOfPhotons( // Vectors used in computation of Cerenkov Angle Integral: // - Refraction Indices for the current material // - new G4PhysicsFreeVector allocated to hold CAI's - G4int materialIndex = aMaterial->GetIndex(); + std::size_t materialIndex = aMaterial->GetIndex(); // Retrieve the Cerenkov Angle Integrals for this material G4PhysicsVector* CerenkovAngleIntegrals = ((*thePhysicsTable)(materialIndex)); - G4int length = CerenkovAngleIntegrals->GetVectorLength(); + std::size_t length = CerenkovAngleIntegrals->GetVectorLength(); if(0 == length) return 0.0; @@ -604,7 +604,7 @@ void G4Cerenkov::SetStackPhotons(const G4bool stackingFlag) void G4Cerenkov::DumpPhysicsTable() const { G4cout << "Dump Physics Table!" << G4endl; - for(size_t i = 0; i < thePhysicsTable->entries(); ++i) + for(std::size_t i = 0; i < thePhysicsTable->entries(); ++i) { (*thePhysicsTable)[i]->DumpValues(); } diff --git a/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc b/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc index 0a4b89cacf..4575a00074 100644 --- a/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc +++ b/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc @@ -74,7 +74,7 @@ G4ForwardXrayTR::G4ForwardXrayTR(const G4String& matName1, G4int iMat; const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); G4bool build = true; @@ -170,7 +170,7 @@ void G4ForwardXrayTR::BuildXrayTRtables() G4int iMat, jMat, iTkin, iTR, iPlace; const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); fGammaCutInKineticEnergy = theCoupleTable->GetEnergyCutsVector(idxG4GammaCut); @@ -493,7 +493,7 @@ G4VParticleChange* G4ForwardXrayTR::PostStepDoIt(const G4Track& aTrack, if(iTkin == fTotBin) // TR plato, try from left { - numOfTR = G4Poisson( + numOfTR = (G4int)G4Poisson( ((*(*fEnergyDistrTable)(iPlace))(0) + (*(*fAngleDistrTable)(iPlace))(0)) * chargeSq * 0.5); if(numOfTR == 0) @@ -557,13 +557,13 @@ G4VParticleChange* G4ForwardXrayTR::PostStepDoIt(const G4Track& aTrack, W1 = (E2 - TkinScaled) * W; W2 = (TkinScaled - E1) * W; - numOfTR = G4Poisson((((*(*fEnergyDistrTable)(iPlace))(0) + - (*(*fAngleDistrTable)(iPlace))(0)) * - W1 + - ((*(*fEnergyDistrTable)(iPlace + 1))(0) + - (*(*fAngleDistrTable)(iPlace + 1))(0)) * - W2) * - chargeSq * 0.5); + numOfTR = (G4int)G4Poisson((((*(*fEnergyDistrTable)(iPlace))(0) + + (*(*fAngleDistrTable)(iPlace))(0)) * + W1 + + ((*(*fEnergyDistrTable)(iPlace + 1))(0) + + (*(*fAngleDistrTable)(iPlace + 1))(0)) * + W2) * + chargeSq * 0.5); if(numOfTR == 0) { return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); @@ -640,7 +640,7 @@ G4double G4ForwardXrayTR::GetEnergyTR(G4int iMat, G4int jMat, G4int iTkin) const const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); - G4int numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); // The case of equal or approximate (in terms of plasma energy) materials // No TR photons ?! @@ -679,7 +679,7 @@ G4double G4ForwardXrayTR::GetEnergyTR(G4int iMat, G4int jMat, G4int iTkin) const if(iTkin == fTotBin) // TR plato, try from left { - numOfTR = G4Poisson((*energyVector1)(0)); + numOfTR = (G4int)G4Poisson((*energyVector1)(0)); if(numOfTR == 0) { return energyTR; @@ -708,7 +708,7 @@ G4double G4ForwardXrayTR::GetEnergyTR(G4int iMat, G4int jMat, G4int iTkin) const { // use trivial mean half/half W1 = 0.5; W2 = 0.5; - numOfTR = G4Poisson((*energyVector1)(0) * W1 + (*energyVector2)(0) * W2); + numOfTR = (G4int)G4Poisson((*energyVector1)(0) * W1 + (*energyVector2)(0) * W2); if(numOfTR == 0) { return energyTR; diff --git a/source/processes/electromagnetic/xrays/src/G4Scintillation.cc b/source/processes/electromagnetic/xrays/src/G4Scintillation.cc index dc317fe1cc..221175297a 100644 --- a/source/processes/electromagnetic/xrays/src/G4Scintillation.cc +++ b/source/processes/electromagnetic/xrays/src/G4Scintillation.cc @@ -197,7 +197,7 @@ void G4Scintillation::BuildPhysicsTable(const G4ParticleDefinition&) } const G4MaterialTable* materialTable = G4Material::GetMaterialTable(); - size_t numOfMaterials = G4Material::GetNumberOfMaterials(); + std::size_t numOfMaterials = G4Material::GetNumberOfMaterials(); // create new physics table if(!fIntegralTable1) @@ -207,7 +207,7 @@ void G4Scintillation::BuildPhysicsTable(const G4ParticleDefinition&) if(!fIntegralTable3) fIntegralTable3 = new G4PhysicsTable(numOfMaterials); - for(size_t i = 0; i < numOfMaterials; ++i) + for(std::size_t i = 0; i < numOfMaterials; ++i) { auto vector1 = new G4PhysicsFreeVector(); auto vector2 = new G4PhysicsFreeVector(); @@ -241,7 +241,7 @@ void G4Scintillation::BuildPhysicsTable(const G4ParticleDefinition&) // loop over all (photon energy, intensity) // pairs stored for this material - for(size_t ii = 1; ii < MPV->GetVectorLength(); ++ii) + for(std::size_t ii = 1; ii < MPV->GetVectorLength(); ++ii) { currentPM = MPV->Energy(ii); currentIN = (*MPV)[ii]; @@ -277,7 +277,7 @@ void G4Scintillation::BuildPhysicsTable(const G4ParticleDefinition&) // loop over all (photon energy, intensity) // pairs stored for this material - for(size_t ii = 1; ii < MPV->GetVectorLength(); ++ii) + for(std::size_t ii = 1; ii < MPV->GetVectorLength(); ++ii) { currentPM = MPV->Energy(ii); currentIN = (*MPV)[ii]; @@ -312,7 +312,7 @@ void G4Scintillation::BuildPhysicsTable(const G4ParticleDefinition&) // loop over all (photon energy, intensity) // pairs stored for this material - for(size_t ii = 1; ii < MPV->GetVectorLength(); ++ii) + for(std::size_t ii = 1; ii < MPV->GetVectorLength(); ++ii) { currentPM = MPV->Energy(ii); currentIN = (*MPV)[ii]; @@ -444,11 +444,11 @@ G4VParticleChange* G4Scintillation::PostStepDoIt(const G4Track& aTrack, aParticleChange.ProposeTrackStatus(fSuspend); } - G4int materialIndex = aMaterial->GetIndex(); + G4int materialIndex = (G4int)aMaterial->GetIndex(); // Retrieve the Scintillation Integral for this material // new G4PhysicsFreeVector allocated to hold CII's - size_t numPhot = fNumPhotons; + std::size_t numPhot = fNumPhotons; G4double scintTime = 0.; G4double riseTime = 0.; G4PhysicsFreeVector* scintIntegral = nullptr; @@ -513,7 +513,7 @@ G4VParticleChange* G4Scintillation::PostStepDoIt(const G4Track& aTrack, continue; G4double CIImax = scintIntegral->GetMaxValue(); - for(size_t i = 0; i < numPhot; ++i) + for(std::size_t i = 0; i < numPhot; ++i) { // Determine photon energy G4double CIIvalue = G4UniformRand() * CIImax; @@ -832,21 +832,21 @@ void G4Scintillation::DumpPhysicsTable() const { if(fIntegralTable1) { - for(size_t i = 0; i < fIntegralTable1->entries(); ++i) + for(std::size_t i = 0; i < fIntegralTable1->entries(); ++i) { ((G4PhysicsFreeVector*) (*fIntegralTable1)[i])->DumpValues(); } } if(fIntegralTable2) { - for(size_t i = 0; i < fIntegralTable2->entries(); ++i) + for(std::size_t i = 0; i < fIntegralTable2->entries(); ++i) { ((G4PhysicsFreeVector*) (*fIntegralTable2)[i])->DumpValues(); } } if(fIntegralTable3) { - for(size_t i = 0; i < fIntegralTable3->entries(); ++i) + for(std::size_t i = 0; i < fIntegralTable3->entries(); ++i) { ((G4PhysicsFreeVector*) (*fIntegralTable3)[i])->DumpValues(); } diff --git a/source/processes/electromagnetic/xrays/src/G4StrawTubeXTRadiator.cc b/source/processes/electromagnetic/xrays/src/G4StrawTubeXTRadiator.cc index 8f2a32f97c..43c4a60c0e 100644 --- a/source/processes/electromagnetic/xrays/src/G4StrawTubeXTRadiator.cc +++ b/source/processes/electromagnetic/xrays/src/G4StrawTubeXTRadiator.cc @@ -63,7 +63,7 @@ G4StrawTubeXTRadiator::G4StrawTubeXTRadiator(G4LogicalVolume* anEnvelope, } // index of medium material - fMatIndex3 = mediumMat->GetIndex(); + fMatIndex3 = (G4int)mediumMat->GetIndex(); if(verboseLevel > 0) G4cout << "medium material = " << mediumMat->GetName() << G4endl; diff --git a/source/processes/electromagnetic/xrays/src/G4SynchrotronRadiation.cc b/source/processes/electromagnetic/xrays/src/G4SynchrotronRadiation.cc index ea37b5c11b..b91b39f425 100644 --- a/source/processes/electromagnetic/xrays/src/G4SynchrotronRadiation.cc +++ b/source/processes/electromagnetic/xrays/src/G4SynchrotronRadiation.cc @@ -401,7 +401,7 @@ G4double G4SynchrotronRadiation::GetRandomEnergySR(G4double gamma, // mean and rms of photon energy G4double Emean = 8. / (15. * std::sqrt(3.)) * Ecr; G4double E_rms = std::sqrt(211. / 675.) * Ecr; - G4int prec = G4cout.precision(); + G4long prec = G4cout.precision(); G4cout << "G4SynchrotronRadiation::GetRandomEnergySR :" << '\n' << std::setprecision(4) << " Ecr = " << G4BestUnit(Ecr, "Energy") << '\n' diff --git a/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc b/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc index 26c3c3e6ed..15bdccd059 100644 --- a/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc +++ b/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc @@ -131,12 +131,12 @@ G4VXTRenergyLoss::G4VXTRenergyLoss(G4LogicalVolume* anEnvelope, << G4endl; // index of plate material - fMatIndex1 = foilMat->GetIndex(); + fMatIndex1 = (G4int)foilMat->GetIndex(); if(verboseLevel > 0) G4cout << "plate material = " << foilMat->GetName() << G4endl; // index of gas material - fMatIndex2 = gasMat->GetIndex(); + fMatIndex2 = (G4int)gasMat->GetIndex(); if(verboseLevel > 0) G4cout << "gas material = " << gasMat->GetName() << G4endl; @@ -342,12 +342,8 @@ void G4VXTRenergyLoss::BuildEnergyTable() fGamma = 1.0 + (fProtonEnergyVector->GetLowEdgeEnergy(iTkin) / proton_mass_c2); - fMaxThetaTR = 25. * 2500.0 / (fGamma * fGamma); // theta^2 - - if(fMaxThetaTR > fTheMaxAngle) - fMaxThetaTR = fTheMaxAngle; - else if(fMaxThetaTR < fTheMinAngle) - fMaxThetaTR = fTheMinAngle; + // if(fMaxThetaTR > fTheMaxAngle) fMaxThetaTR = fTheMaxAngle; + // else if(fMaxThetaTR < fTheMinAngle) fMaxThetaTR = fTheMinAngle; energySum = 0.0; @@ -1192,7 +1188,7 @@ G4double G4VXTRenergyLoss::GetPlateCompton(G4double omega) G4double xSection = 0., nowZ, sumZ = 0.; const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); - numberOfElements = (*theMaterialTable)[fMatIndex1]->GetNumberOfElements(); + numberOfElements = (G4int)(*theMaterialTable)[fMatIndex1]->GetNumberOfElements(); for(i = 0; i < numberOfElements; ++i) { @@ -1213,7 +1209,7 @@ G4double G4VXTRenergyLoss::GetGasCompton(G4double omega) G4double xSection = 0., nowZ, sumZ = 0.; const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); - numberOfElements = (*theMaterialTable)[fMatIndex2]->GetNumberOfElements(); + numberOfElements = (G4int)(*theMaterialTable)[fMatIndex2]->GetNumberOfElements(); for(i = 0; i < numberOfElements; ++i) { diff --git a/source/processes/hadronic/History b/source/processes/hadronic/History index 735c373b42..98393efc91 100644 --- a/source/processes/hadronic/History +++ b/source/processes/hadronic/History @@ -1,8 +1,13 @@ # Category hadr History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-26 Gabriele Cosmo (hadr-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2022-05-16 Guilherme Amadio (hadr-V11-00-01) - Replace getenv() calls for data variables with G4FindDataDir() diff --git a/source/processes/hadronic/cross_sections/History b/source/processes/hadronic/cross_sections/History index 64918dde5d..c91b32f676 100644 --- a/source/processes/hadronic/cross_sections/History +++ b/source/processes/hadronic/cross_sections/History @@ -1,9 +1,67 @@ # Category hadr-cross History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-26 Gabriele Cosmo (hadr-cross-V11-00-15) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-31 Vladimir Grichine (hadr-cross-V11-00-14) +- G4TauNeutrinoNucleusTotXsc - added for tau-neutrinos, based on energy scaled nu_mu XS + +## 2022-10-25 Alberto Ribon (hadr-cross-V11-00-13) +- G4ComponentAntiNuclNuclearXS : Vladimir Uzhinsky's bug-fix and extension + of the GetTotalElementCrossSection and GetInelasticElementCrossSection + methods: + * A bug was causing undefined values for, respectively, the total and + inelastic cross-sections of anti-proton interactions with light target + nuclei (d, H3, He3 and He4). + * Extension for the simulation of a light anti-hypernucleus projectile + scattering on a target nucleus. + Note: most of the considered light anti-hypernuclei projectiles have + baryon number equal to -4 : it is assumed that their properties + are similar to anti-He4, therefore their total and inelastic + cross sections are set-up as for anti-He4 nuclear scattering. + These properties can be improved in the future if theoretical estimations + will be available. + +## 2022-10-27 Vladimir Grichine (hadr-cross-V11-00-12) +- G4MuNeutrinoNucleusTotXsc - extension to tau-neutrinos, based on energy scaled nu_mu XS + +## 2022-10-21 Vladimir Grichine (hadr-cross-V11-00-11) +- G4ComponentGGNuclNuclXsc - bug fixed pR not tR to be corrected + +## 2022-10-12 Vladimir Grichine (hadr-cross-V11-00-10) +- G4ComponentGGNuclNuclXsc, G4ComponentGGHadronNuclXsc - extension to hyper-nuclei on hydrogen + +## 2022-10-10 Vladimir Grichine (hadr-cross-V11-00-09) +- G4ComponentGGNuclNuclXsc - extension to hyper-nuclei + +## 2022-09-29 Vladimir Ivanchenko (hadr-cross-V11-00-08) +- G4ParticleInelasticXS - fixed computation of isotope x-section #2498 + +## 2022-08-18 Vladimir Ivanchenko (hadr-cross-V11-00-07) +- G4CrossSectionDataStore - added extra public method needed + for G4NeutronGeneralProcess +- G4NeutronElasticXS, G4NeutronInelasticXS, G4NeutronCaptureXS - + code cleanup, use G4AutoLock +- G4NeutronInelasticXS - fixed computation of isotope x-section #2498 + +## 2022-08-13 Vladimir Ivanchenko (hadr-cross-V11-00-06) +- G4CrossSectionDataStore, G4NeutronElasticXS, G4NeutronInelasticXS - + added interfaces needed for G4NeutronGeneralProcess + +## 2022-07-23 Vladimir Ivanchenko (hadr-cross-V11-00-05) +- G4VCrossSectionDataSet - added extra interfaces with G4ParticleDefinition* + and kinetic energy +- G4NeutronCaptureXS - implemented new interfaces + +## 2022-07-19 Alberto Ribon (hadr-cross-V11-00-04) +- G4ComponentAntiNuclNuclearXS.cc : fixed Coverity report (added checks + against nullptr pointers). ## 2022-05-08 Vladimir Ivanchenko (hadr-cross-V11-00-03) - G4CrossSectionDataStore, G4VCrossSectionDataSet - preparation diff --git a/source/processes/hadronic/cross_sections/include/G4ComponentGGHadronNucleusXsc.hh b/source/processes/hadronic/cross_sections/include/G4ComponentGGHadronNucleusXsc.hh index 824692015d..5eccf2da7f 100644 --- a/source/processes/hadronic/cross_sections/include/G4ComponentGGHadronNucleusXsc.hh +++ b/source/processes/hadronic/cross_sections/include/G4ComponentGGHadronNucleusXsc.hh @@ -88,7 +88,7 @@ public: // Glauber-Gribov cross section void ComputeCrossSections(const G4ParticleDefinition* aParticle, - G4double kinEnergy, G4int Z, G4int A); + G4double kinEnergy, G4int Z, G4int A, G4int nL = 0); // additional public methods G4double GetProductionElementCrossSection(const G4ParticleDefinition* aParticle, @@ -164,12 +164,13 @@ private: const G4ParticleDefinition* theKMinus; const G4ParticleDefinition* theK0S; const G4ParticleDefinition* theK0L; + const G4ParticleDefinition* theLambda; G4HadronNucleonXsc* hnXsc; // Cache const G4ParticleDefinition* fParticle; - G4int fZ, fA; + G4int fZ, fA, fL; }; diff --git a/source/processes/hadronic/cross_sections/include/G4ComponentGGNuclNuclXsc.hh b/source/processes/hadronic/cross_sections/include/G4ComponentGGNuclNuclXsc.hh index 58a6fbbee1..678f73e13c 100644 --- a/source/processes/hadronic/cross_sections/include/G4ComponentGGNuclNuclXsc.hh +++ b/source/processes/hadronic/cross_sections/include/G4ComponentGGNuclNuclXsc.hh @@ -131,6 +131,7 @@ private: const G4ParticleDefinition* theProton; const G4ParticleDefinition* theNeutron; + const G4ParticleDefinition* theLambda; G4ComponentGGHadronNucleusXsc* fHadrNucl; G4HadronNucleonXsc* fHNXsc; diff --git a/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh b/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh index e4b965024a..fa2457e399 100644 --- a/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh +++ b/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh @@ -94,10 +94,14 @@ public: void PrintCrossSectionHtml(const G4VCrossSectionDataSet *cs) const; void AddDataSet(G4VCrossSectionDataSet*); - void AddDataSet(G4VCrossSectionDataSet*, size_t); + void AddDataSet(G4VCrossSectionDataSet*, std::size_t); + inline const std::vector& GetDataSetList() const; inline void SetVerboseLevel(G4int value); + // may be used by special processes + inline void SetForcedElement(const G4Element*); + G4CrossSectionDataStore & operator= (const G4CrossSectionDataStore &right) = delete; G4CrossSectionDataStore(const G4CrossSectionDataStore&) = delete; @@ -113,6 +117,7 @@ private: G4NistManager* nist; const G4Material* currentMaterial = nullptr; const G4ParticleDefinition* matParticle = nullptr; + const G4Element* forcedElement = nullptr; G4double matKinEnergy = 0.0; G4double matCrossSection = 0.0; @@ -129,6 +134,17 @@ inline void G4CrossSectionDataStore::SetVerboseLevel(G4int value) verboseLevel = value; } +inline void G4CrossSectionDataStore::SetForcedElement(const G4Element* ptr) +{ + forcedElement = ptr; +} + +inline const std::vector& +G4CrossSectionDataStore::GetDataSetList() const +{ + return dataSetList; +} + inline G4double G4CrossSectionDataStore::GetCrossSection(const G4DynamicParticle* dp, const G4Material* mat) diff --git a/source/processes/hadronic/cross_sections/include/G4MuNeutrinoNucleusTotXsc.hh b/source/processes/hadronic/cross_sections/include/G4MuNeutrinoNucleusTotXsc.hh index f997555e22..baa814fb6a 100644 --- a/source/processes/hadronic/cross_sections/include/G4MuNeutrinoNucleusTotXsc.hh +++ b/source/processes/hadronic/cross_sections/include/G4MuNeutrinoNucleusTotXsc.hh @@ -28,7 +28,7 @@ // // 14.08.17 V. Grichine // -// +// 27.10.22 V. Grichine - extension to tau-neutrinos based on mu_nu XS energy scaled #ifndef G4MuNeutrinoNucleusTotXsc_h #define G4MuNeutrinoNucleusTotXsc_h @@ -88,7 +88,7 @@ protected: G4double fCutEnergy; // minimal recoil electron energy detected G4double fBiasingFactor; // biasing xsc up G4double fTotXsc, fCcTotRatio, fCcFactor, fNcFactor, fQEratio; - + G4double fEmc; G4int fIndex; static const G4double fNuMuEnergy[50]; @@ -97,8 +97,8 @@ protected: static const G4double fANuMuInXsc[50]; static const G4double fANuMuQeXsc[50]; - G4ParticleDefinition* theMuonMinus; - G4ParticleDefinition* theMuonPlus; + // G4ParticleDefinition* theMuonMinus; + // G4ParticleDefinition* theMuonPlus; }; #endif diff --git a/source/processes/hadronic/cross_sections/include/G4NeutronCaptureXS.hh b/source/processes/hadronic/cross_sections/include/G4NeutronCaptureXS.hh index 5354c48174..df2b066dfd 100644 --- a/source/processes/hadronic/cross_sections/include/G4NeutronCaptureXS.hh +++ b/source/processes/hadronic/cross_sections/include/G4NeutronCaptureXS.hh @@ -47,7 +47,6 @@ #include "globals.hh" #include "G4ElementData.hh" #include "G4PhysicsVector.hh" -#include "G4Threading.hh" #include #include @@ -73,7 +72,19 @@ public: G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material*) final; + + G4double ComputeCrossSectionPerElement(G4double kinEnergy, G4double loge, + const G4ParticleDefinition*, + const G4Element*, + const G4Material*) final; + G4double ComputeIsoCrossSection(G4double kinEnergy, G4double loge, + const G4ParticleDefinition*, + G4int Z, G4int A, + const G4Isotope* iso, + const G4Element* elm, + const G4Material* mat) final; + G4double GetIsoCrossSection(const G4DynamicParticle*, G4int Z, G4int A, const G4Isotope* iso, const G4Element* elm, @@ -86,6 +97,8 @@ public: void CrossSectionDescription(std::ostream&) const final; + G4double ElementCrossSection(G4double kinEnergy, G4double loge, G4int Z); + G4double IsoCrossSection(G4double ekin, G4double logekin, G4int Z, G4int A); G4NeutronCaptureXS & operator=(const G4NeutronCaptureXS &right) = delete; @@ -114,10 +127,6 @@ private: static const G4int MAXZCAPTURE = 93; static G4ElementData* data; static G4String gDataDirectory; - -#ifdef G4MULTITHREADED - static G4Mutex neutronCaptureXSMutex; -#endif }; inline diff --git a/source/processes/hadronic/cross_sections/include/G4NeutronElasticXS.hh b/source/processes/hadronic/cross_sections/include/G4NeutronElasticXS.hh index af9cb2e9d6..4982631355 100644 --- a/source/processes/hadronic/cross_sections/include/G4NeutronElasticXS.hh +++ b/source/processes/hadronic/cross_sections/include/G4NeutronElasticXS.hh @@ -45,7 +45,6 @@ #include "G4VCrossSectionDataSet.hh" #include "globals.hh" #include "G4PhysicsVector.hh" -#include "G4Threading.hh" #include class G4DynamicParticle; @@ -77,6 +76,18 @@ public: const G4Element* elm, const G4Material* mat) final; + G4double ComputeCrossSectionPerElement(G4double kinEnergy, G4double loge, + const G4ParticleDefinition*, + const G4Element*, + const G4Material*) final; + + G4double ComputeIsoCrossSection(G4double kinEnergy, G4double loge, + const G4ParticleDefinition*, + G4int Z, G4int A, + const G4Isotope* iso, + const G4Element* elm, + const G4Material* mat) final; + const G4Isotope* SelectIsotope(const G4Element*, G4double kinEnergy, G4double logE) final; @@ -84,6 +95,8 @@ public: void CrossSectionDescription(std::ostream&) const final; + G4double ElementCrossSection(G4double kinEnergy, G4double loge, G4int Z); + G4NeutronElasticXS & operator=(const G4NeutronElasticXS &right) = delete; G4NeutronElasticXS(const G4NeutronElasticXS&) = delete; @@ -106,10 +119,6 @@ private: static G4PhysicsVector* data[MAXZEL]; static G4double coeff[MAXZEL]; static G4String gDataDirectory; - -#ifdef G4MULTITHREADED - static G4Mutex neutronElasticXSMutex; -#endif }; inline diff --git a/source/processes/hadronic/cross_sections/include/G4NeutronInelasticXS.hh b/source/processes/hadronic/cross_sections/include/G4NeutronInelasticXS.hh index a843c73534..0b705a1d3e 100644 --- a/source/processes/hadronic/cross_sections/include/G4NeutronInelasticXS.hh +++ b/source/processes/hadronic/cross_sections/include/G4NeutronInelasticXS.hh @@ -45,7 +45,6 @@ #include "globals.hh" #include "G4ElementData.hh" #include "G4PhysicsVector.hh" -#include "G4Threading.hh" #include class G4DynamicParticle; @@ -72,6 +71,18 @@ public: G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material*) final; + G4double ComputeCrossSectionPerElement(G4double kinEnergy, G4double loge, + const G4ParticleDefinition*, + const G4Element*, + const G4Material*) final; + + G4double ComputeIsoCrossSection(G4double kinEnergy, G4double loge, + const G4ParticleDefinition*, + G4int Z, G4int A, + const G4Isotope* iso, + const G4Element* elm, + const G4Material* mat) final; + G4double GetIsoCrossSection(const G4DynamicParticle*, G4int Z, G4int A, const G4Isotope* iso, const G4Element* elm, @@ -84,6 +95,8 @@ public: void CrossSectionDescription(std::ostream&) const final; + G4double ElementCrossSection(G4double kinEnergy, G4double loge, G4int Z); + G4double IsoCrossSection(G4double ekin, G4double logekin, G4int Z, G4int A); G4NeutronInelasticXS & operator=(const G4NeutronInelasticXS &right) = delete; @@ -107,16 +120,14 @@ private: std::vector temp; - G4bool isMaster = false; + G4double elimit; + + G4bool isMaster = false; static const G4int MAXZINEL = 93; static G4ElementData* data; static G4double coeff[MAXZINEL]; static G4String gDataDirectory; - -#ifdef G4MULTITHREADED - static G4Mutex neutronInelasticXSMutex; -#endif }; inline diff --git a/source/processes/hadronic/cross_sections/include/G4ParticleInelasticXS.hh b/source/processes/hadronic/cross_sections/include/G4ParticleInelasticXS.hh index 3d5d363e34..74744f14ed 100644 --- a/source/processes/hadronic/cross_sections/include/G4ParticleInelasticXS.hh +++ b/source/processes/hadronic/cross_sections/include/G4ParticleInelasticXS.hh @@ -46,7 +46,6 @@ #include "globals.hh" #include "G4ElementData.hh" #include "G4PhysicsVector.hh" -#include "G4Threading.hh" #include class G4DynamicParticle; @@ -72,6 +71,18 @@ public: G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material* mat = nullptr) final; + G4double ComputeCrossSectionPerElement(G4double kinEnergy, G4double loge, + const G4ParticleDefinition*, + const G4Element*, + const G4Material*) final; + + G4double ComputeIsoCrossSection(G4double kinEnergy, G4double loge, + const G4ParticleDefinition*, + G4int Z, G4int A, + const G4Isotope* iso, + const G4Element* elm, + const G4Material* mat) final; + G4double GetIsoCrossSection(const G4DynamicParticle*, G4int Z, G4int A, const G4Isotope* iso = nullptr, const G4Element* elm = nullptr, @@ -84,6 +95,8 @@ public: void CrossSectionDescription(std::ostream&) const final; + G4double ElementCrossSection(G4double kinEnergy, G4double loge, G4int Z); + G4double IsoCrossSection(G4double ekin, G4double logE, G4int Z, G4int A); G4ParticleInelasticXS & operator= @@ -106,6 +119,7 @@ private: const G4ParticleDefinition* particle; std::vector temp; + G4double elimit; G4int index = 0; G4bool isMaster = false; @@ -114,10 +128,6 @@ private: static G4ElementData* data[5]; static G4double coeff[MAXZINELP][5]; static G4String gDataDirectory[5]; - -#ifdef G4MULTITHREADED - static G4Mutex particleInelasticXSMutex; -#endif }; inline diff --git a/source/processes/hadronic/cross_sections/include/G4TauNeutrinoNucleusTotXsc.hh b/source/processes/hadronic/cross_sections/include/G4TauNeutrinoNucleusTotXsc.hh new file mode 100644 index 0000000000..28dd7dea03 --- /dev/null +++ b/source/processes/hadronic/cross_sections/include/G4TauNeutrinoNucleusTotXsc.hh @@ -0,0 +1,104 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// The total muon (anti)neutrino-nucleus cross sections in the +// simplified form as A-multiplied nu_mu-nucleon cross-sections +// +// 14.08.17 V. Grichine +// +// 31.10.22 V. Grichine - extension to tau-neutrinos based on mu_nu XS energy scaled + +#ifndef G4TauNeutrinoNucleusTotXsc_h +#define G4TauNeutrinoNucleusTotXsc_h + + +#include "globals.hh" +#include "G4VCrossSectionDataSet.hh" + +class G4ParticleDefinition; + +class G4TauNeutrinoNucleusTotXsc : public G4VCrossSectionDataSet +{ +public: + + G4TauNeutrinoNucleusTotXsc(); + ~G4TauNeutrinoNucleusTotXsc(); + + virtual + G4bool IsIsoApplicable(const G4DynamicParticle*, G4int Z, G4int A, const G4Element*, const G4Material*); + + virtual + G4bool IsElementApplicable(const G4DynamicParticle*, G4int , const G4Material*){ return true; }; + + + // virtual G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material*); + virtual G4double GetElementCrossSection(const G4DynamicParticle* dynPart, + G4int Z, + const G4Material* mat); + virtual + G4double GetIsoCrossSection(const G4DynamicParticle* aPart, G4int Z, G4int A, + const G4Isotope*, + const G4Element*, + const G4Material*); + + G4int GetEnergyIndex(G4double energy); + G4double GetNuMuTotCsXsc(G4int index, G4double energy, G4int Z, G4int A); + G4double GetANuMuTotCsXsc(G4int index, G4double energy, G4int Z, G4int A); + + G4double GetNuMuTotCsArray(G4int index); + G4double GetANuMuTotCsArray(G4int index); + + void SetCutEnergy(G4double ec){fCutEnergy=ec;}; + G4double GetCutEnergy(){return fCutEnergy;}; + + void SetBiasingFactor(G4double bf){fBiasingFactor=bf;}; + G4double GetBiasingFactor(){return fBiasingFactor;}; + + G4double GetTotXsc(){return fTotXsc;}; + G4double GetCcTotRatio(){return fCcTotRatio;}; + G4double GetQEratio(){return fQEratio;}; + +protected: + + G4double fCofXsc; // 2*Gf*Gf*MeC2/pi + G4double fSin2tW; // sin^2theta_Weinberg + G4double fCofS, fCofL; + G4double fCutEnergy; // minimal recoil electron energy detected + G4double fBiasingFactor; // biasing xsc up + G4double fTotXsc, fCcTotRatio, fCcFactor, fNcFactor, fQEratio; + G4double fEmc, fEtc, fDtc; + G4int fIndex; + + static const G4double fNuMuEnergy[50]; + static const G4double fNuMuInXsc[50]; + static const G4double fNuMuQeXsc[50]; + static const G4double fANuMuInXsc[50]; + static const G4double fANuMuQeXsc[50]; + + // G4ParticleDefinition* theMuonMinus; + // G4ParticleDefinition* theMuonPlus; +}; + +#endif diff --git a/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh b/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh index d36018aee1..97a735750b 100644 --- a/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh +++ b/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh @@ -105,20 +105,35 @@ public: //with description const G4Element*, const G4Material* mat = nullptr); - // Implement this method for element-wise cross section + // Implement element cross section, IsApplicable does not checked. + // In the default implementation a sum of isotope cross sections is computed + virtual + G4double ComputeCrossSectionPerElement(G4double kinEnergy, G4double loge, + const G4ParticleDefinition*, + const G4Element*, + const G4Material* mat = nullptr); + + // Implement these methods for element-wise cross section virtual G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material* mat = nullptr); - // Derived classes should implement this method if they provide isotope-wise - // cross sections. Default arguments G4Element and G4Material are needed to - // access low-energy neutron cross sections, but are not required for others. + // Derived classes should implement these methods if they provide isotope-wise + // cross sections. Extra arguments G4Isotope, G4Element, and G4Material are + // needed to access low-energy neutron cross sections, but not in other cases. virtual G4double GetIsoCrossSection(const G4DynamicParticle*, G4int Z, G4int A, const G4Isotope* iso = nullptr, const G4Element* elm = nullptr, const G4Material* mat = nullptr); + virtual + G4double ComputeIsoCrossSection(G4double kinEnergy, G4double loge, + const G4ParticleDefinition*, G4int Z, G4int A, + const G4Isotope* iso = nullptr, + const G4Element* elm = nullptr, + const G4Material* mat = nullptr); + //===================================================================== // Implement this method if needed diff --git a/source/processes/hadronic/cross_sections/sources.cmake b/source/processes/hadronic/cross_sections/sources.cmake index 6bc68d3b56..829cdd88f6 100644 --- a/source/processes/hadronic/cross_sections/sources.cmake +++ b/source/processes/hadronic/cross_sections/sources.cmake @@ -49,6 +49,7 @@ geant4_add_module(G4hadronic_xsect G4IonsShenCrossSection.hh G4IsotopeList.hh G4KokoulinMuonNuclearXS.hh + G4MuNeutrinoNucleusTotXsc.hh G4NeutrinoElectronCcXsc.hh G4NeutrinoElectronNcXsc.hh G4NeutrinoElectronTotXsc.hh @@ -60,13 +61,13 @@ geant4_add_module(G4hadronic_xsect G4ParticleInelasticXS.hh G4PhotoNuclearCrossSection.hh G4PiData.hh + G4TauNeutrinoNucleusTotXsc.hh G4UPiNuclearCrossSection.hh G4VComponentCrossSection.hh G4VCrossSectionDataSet.hh G4VCrossSectionRatio.hh G4ZeroXS.hh G4CrossSectionFactoryRegistry.hh - G4MuNeutrinoNucleusTotXsc.hh SOURCES G4BGGNucleonElasticXS.cc G4BGGNucleonInelasticXS.cc @@ -111,6 +112,7 @@ geant4_add_module(G4hadronic_xsect G4HadronXSDataTable.cc G4IonsShenCrossSection.cc G4KokoulinMuonNuclearXS.cc + G4MuNeutrinoNucleusTotXsc.cc G4NeutrinoElectronCcXsc.cc G4NeutrinoElectronNcXsc.cc G4NeutrinoElectronTotXsc.cc @@ -122,13 +124,13 @@ geant4_add_module(G4hadronic_xsect G4ParticleInelasticXS.cc G4PhotoNuclearCrossSection.cc G4PiData.cc + G4TauNeutrinoNucleusTotXsc.cc G4UPiNuclearCrossSection.cc G4VComponentCrossSection.cc G4VCrossSectionDataSet.cc G4VCrossSectionRatio.cc G4ZeroXS.cc - G4CrossSectionFactoryRegistry.cc - G4MuNeutrinoNucleusTotXsc.cc) + G4CrossSectionFactoryRegistry.cc) geant4_module_link_libraries(G4hadronic_xsect PUBLIC diff --git a/source/processes/hadronic/cross_sections/src/G4ChipsAntiBaryonElasticXS.cc b/source/processes/hadronic/cross_sections/src/G4ChipsAntiBaryonElasticXS.cc index c807fd8cd4..d2bbfde3be 100644 --- a/source/processes/hadronic/cross_sections/src/G4ChipsAntiBaryonElasticXS.cc +++ b/source/processes/hadronic/cross_sections/src/G4ChipsAntiBaryonElasticXS.cc @@ -213,8 +213,8 @@ G4double G4ChipsAntiBaryonElasticXS::GetChipsCrossSection(G4double pMom, G4int t lastP = 0.; // New momentum history (nothing to compare with) lastN = tgN; // The last N of the calculated nucleus lastZ = tgZ; // The last Z of the calculated nucleus - lastI = colN.size(); // Size of the Associative Memory DB in the heap - if(lastI) for(G4int i=0; isize(); - for(G4int i=0; isize(); + for(std::size_t i=0; isize(); - for(G4int i=0; isize(); + for(std::size_t i=0; i RETRIEVE { - G4int sync=LEN->size(); + G4int sync=(G4int)LEN->size(); if(sync<=I) G4cerr<<"*!*G4QPiMinusNuclCS::CalcCrosSect:Sync="<size(); + G4int sync=(G4int)LEN->size(); if(sync!=I) { G4cerr<<"***G4QPiMinusNuclCS::CalcCrossSect: Sinc="< RETRIEVE { - G4int sync=LEN->size(); + G4int sync=(G4int)LEN->size(); if(sync<=I) G4cerr<<"*!*G4QPiMinusNuclCS::CalcCrosSect:Sync="<size(); + G4int sync=(G4int)LEN->size(); if(sync!=I) { G4cerr<<"***G4QHyperNuclCS::CalcCrossSect: Sinc="< RETRIEVE { - G4int sync=LEN->size(); + G4int sync=(G4int)LEN->size(); if(sync<=I) G4cerr<<"*!*G4QPiMinusNuclCS::CalcCrosSect:Sync="<size(); + G4int sync=(G4int)LEN->size(); if(sync!=I) { G4cerr<<"***G4ChipsKaonMinusCS::CalcCrossSect: Sinc="< RETRIEVE { - G4int sync=LEN->size(); + G4int sync=(G4int)LEN->size(); if(sync<=I) G4cerr<<"*!*G4ChipsKPlusNuclCS::CalcCrosSect:Sync="<size(); + G4int sync=(G4int)LEN->size(); if(sync!=I) { G4cerr<<"***G4ChipsKPlusNuclCS::CalcCrossSect: Sinc="< RETRIEVE { - G4int sync=LEN->size(); + G4int sync=(G4int)LEN->size(); if(sync<=I) G4cerr<<"*!*G4ChipsNetronNuclCS::CalcCrossSect:Sync="<size(); + G4int sync=(G4int)LEN->size(); if(sync!=I) { G4cerr<<"***G4ChipsNetronNuclearCS::CalcCrossSect: Sync="< RETRIEVE { - G4int sync=LEN->size(); + G4int sync=(G4int)LEN->size(); if(sync<=I) G4cerr<<"*!*G4ChipsPiMinusNuclCS::CalcCrosSect:Sync="<size(); + G4int sync=(G4int)LEN->size(); if(sync!=I) { G4cerr<<"***G4ChipsPiMinusNuclCS::CalcCrossSect: Sinc="< RETRIEVE { - G4int sync=LEN->size(); + G4int sync=(G4int)LEN->size(); if(sync<=I) G4cerr<<"*!*G4ChipsPiMinusNuclCS::CalcCrosSect:Sync="<size(); + G4int sync=(G4int)LEN->size(); if(sync!=I) { G4cerr<<"***G4ChipsPiMinusNuclCS::CalcCrossSect: Sinc="< RETRIEVE { - G4int sync=LEN->size(); + G4int sync=(G4int)LEN->size(); if(sync<=I) G4cout<<"*!*G4QProtonNuclCS::CalcCrossSect:Sync="<size(); + G4int sync=(G4int)LEN->size(); if(sync!=I) { G4cout<<"***G4ChipsProtonNuclCS::CalcCrossSect: Sinc="<IsAntiHypernucleus() ) ) { G4ExceptionDescription ed; - ed << "Unknown anti-nucleus : " - << ( theParticle != nullptr ? theParticle->GetParticleName() : "nullptr" ) << G4endl + ed << "Unknown anti-nucleus : " << theParticle->GetParticleName() << G4endl << "Target (Z, A)=(" << Z << "," << A << ")" << G4endl; G4Exception( "G4ComponentAntiNuclNuclearXS::GetTotalElementCrossSection", - "antiNuclNuclearXS001", JustWarning, ed ); + "antiNuclNuclearXS002", JustWarning, ed ); } - if ( Z == 1 && A == 1 ) { j=0; } - else if ( Z == 1 && A == 2 ) { j=1; } - else if ( Z == 1 && A == 3 ) { j=2; } - else if ( Z == 2 && A == 3 ) { j=3; } - else if ( Z == 2 && A == 4 ) { j=4; } + G4int intA = static_cast( A ); + + if ( Z == 1 && intA == 1 ) { j=0; } + else if ( Z == 1 && intA == 2 ) { j=1; } + else if ( Z == 1 && intA == 3 ) { j=2; } + else if ( Z == 2 && intA == 3 ) { j=3; } + else if ( Z == 2 && intA == 4 ) { j=4; } else {} + if ( i < 0 && j >= 0 ) { fRadiusEff = ReffTot[4][j]; } // Treat all anti-hypernuclei as anti-alpha if ( i == 0 && j == 0 ) return sigmaTotal * millibarn; // Pbar/Nbar + P - if ( i > 0 && j >= 0 ) { fRadiusEff = ReffTot[i][j]; } // Light anti-nuclei + Light nuclei + if ( i >= 0 && j >= 0 ) { fRadiusEff = ReffTot[i][j]; } // Light anti-nuclei + Light nuclei if ( j < 0 ) { - if ( i == 0 ) { fRadiusEff = 1.34 * theG4Pow->powA(A, 0.23) // Anti-proton/Anti-neutron + Nucleus - + 1.35 / theG4Pow->A13(A); } - else if ( i == 1 ) { fRadiusEff = 1.46 * theG4Pow->powA(A, 0.21) // Anti-deuteron + Nucleus - + 1.45 / theG4Pow->A13(A); } - else if ( i == 2 ) { fRadiusEff = 1.40 * theG4Pow->powA(A, 0.21) // Anti-Tritium + Nucleus - + 1.63 / theG4Pow->A13(A); } - else if ( i == 3 ) { fRadiusEff = 1.40 * theG4Pow->powA(A, 0.21) // Anti-He3 + Nucleus - + 1.63 / theG4Pow->A13(A); } - else if ( i == 4 ) { fRadiusEff = 1.35 * theG4Pow->powA(A, 0.21) // Anti-Tritium + Nucleus - + 1.10 / theG4Pow->A13(A); } + if ( i == 0 ) { fRadiusEff = 1.34 * theG4Pow->powZ(intA, 0.23) // Anti-proton/Anti-neutron + Nucleus + + 1.35 / theG4Pow->Z13(intA); } + else if ( i == 1 ) { fRadiusEff = 1.46 * theG4Pow->powZ(intA, 0.21) // Anti-deuteron + Nucleus + + 1.45 / theG4Pow->Z13(intA); } + else if ( i == 2 ) { fRadiusEff = 1.40 * theG4Pow->powZ(intA, 0.21) // Anti-tritium + Nucleus + + 1.63 / theG4Pow->Z13(intA); } + else if ( i == 3 ) { fRadiusEff = 1.40 * theG4Pow->powZ(intA, 0.21) // Anti-He3 + Nucleus + + 1.63 / theG4Pow->Z13(intA); } + else if ( i == 4 ) { fRadiusEff = 1.35 * theG4Pow->powZ(intA, 0.21) // Anti-alpha + Nucleus + + 1.10 / theG4Pow->Z13(intA); } + else if ( i < 0 ) { fRadiusEff = 1.35 * theG4Pow->powZ(intA, 0.21) // Anti-hypernucleus + Nucleus + + 1.10 / theG4Pow->Z13(intA); } // is treated as Anti-alpha + Nucleus else {} } @@ -155,6 +167,14 @@ G4double G4ComponentAntiNuclNuclearXS::GetTotalIsotopeCrossSection G4double G4ComponentAntiNuclNuclearXS::GetInelasticElementCrossSection (const G4ParticleDefinition* aParticle, G4double kinEnergy, G4int Z, G4double A) { + if ( aParticle == nullptr ) { + G4ExceptionDescription ed; + ed << "anti-nucleus with nullptr particle definition: " << aParticle << G4endl; + G4Exception( "G4ComponentAntiNuclNuclearXS::GetInelasticElementCrossSection", + "antiNuclNuclearXS003", JustWarning, ed ); + return 0.0; + } + const G4ParticleDefinition* theParticle = aParticle; G4double sigmaTotal = GetAntiHadronNucleonTotCrSc(theParticle,kinEnergy); G4double sigmaElastic = GetAntiHadronNucleonElCrSc(theParticle,kinEnergy); @@ -169,36 +189,40 @@ G4double G4ComponentAntiNuclNuclearXS::GetInelasticElementCrossSection else if ( theParticle == theAAlpha ) { i=4; } else {}; - if ( i < 0 ) { + if ( i < 0 && ( ! theParticle->IsAntiHypernucleus() ) ) { G4ExceptionDescription ed; - ed << "Unknown anti-nucleus : " - << ( theParticle != nullptr ? theParticle->GetParticleName() : "nullptr" ) << G4endl + ed << "Unknown anti-nucleus : " << theParticle->GetParticleName() << G4endl << "Target (Z, A)=(" << Z << "," << A << ")" << G4endl; G4Exception( "G4ComponentAntiNuclNuclearXS::GetInelasticElementCrossSection", - "antiNuclNuclearXS002", JustWarning, ed ); + "antiNuclNuclearXS004", JustWarning, ed ); } - if ( Z == 1 && A == 1 ) { j=0; } - else if ( Z == 1 && A == 2 ) { j=1; } - else if ( Z == 1 && A == 3 ) { j=2; } - else if ( Z == 2 && A == 3 ) { j=3; } - else if ( Z == 2 && A == 4 ) { j=4; } + G4int intA = static_cast( A ); + + if ( Z == 1 && intA == 1 ) { j=0; } + else if ( Z == 1 && intA == 2 ) { j=1; } + else if ( Z == 1 && intA == 3 ) { j=2; } + else if ( Z == 2 && intA == 3 ) { j=3; } + else if ( Z == 2 && intA == 4 ) { j=4; } else {} + if ( i < 0 && j >= 0 ) { fRadiusEff = ReffInel[4][j]; } // Treat all anti-hypernuclei as anti-alpha if ( i == 0 && j == 0 ) return (sigmaTotal - sigmaElastic) * millibarn; // Pbar/Nbar + P - if ( i > 0 && j >= 0 ) { fRadiusEff = ReffInel[i][j]; } // Light anti-nuclei + Light nuclei + if ( i >= 0 && j >= 0 ) { fRadiusEff = ReffInel[i][j]; } // Light anti-nuclei + Light nuclei if ( j < 0) { - if ( i == 0 ) { fRadiusEff = 1.31*theG4Pow->powA(A, 0.22) // Anti-proton/Anti-neutron + Nucleus - + 0.90/theG4Pow->A13(A); } - else if ( i == 1 ) { fRadiusEff = 1.38*theG4Pow->powA(A, 0.21) // Anti-deuteron + Nucleus - + 1.55/theG4Pow->A13(A); } - else if ( i == 2 ) { fRadiusEff = 1.34*theG4Pow->powA(A, 0.21) // Anti-Tritium + Nucleus - + 1.51/theG4Pow->A13(A); } - else if ( i == 3 ) { fRadiusEff = 1.34*theG4Pow->powA(A, 0.21) // Anti-He3 + Nucleus - + 1.51/theG4Pow->A13(A); } - else if ( i == 4 ) { fRadiusEff = 1.30*theG4Pow->powA(A, 0.21) // Anti-Tritium + Nucleus - + 1.05/theG4Pow->A13(A); } + if ( i == 0 ) { fRadiusEff = 1.31*theG4Pow->powZ(intA, 0.22) // Anti-proton/Anti-neutron + Nucleus + + 0.90/theG4Pow->Z13(intA); } + else if ( i == 1 ) { fRadiusEff = 1.38*theG4Pow->powZ(intA, 0.21) // Anti-deuteron + Nucleus + + 1.55/theG4Pow->Z13(intA); } + else if ( i == 2 ) { fRadiusEff = 1.34*theG4Pow->powZ(intA, 0.21) // Anti-tritium + Nucleus + + 1.51/theG4Pow->Z13(intA); } + else if ( i == 3 ) { fRadiusEff = 1.34*theG4Pow->powZ(intA, 0.21) // Anti-He3 + Nucleus + + 1.51/theG4Pow->Z13(intA); } + else if ( i == 4 ) { fRadiusEff = 1.30*theG4Pow->powZ(intA, 0.21) // Anti-alpha + Nucleus + + 1.05/theG4Pow->Z13(intA); } + else if ( i < 0 ) { fRadiusEff = 1.30*theG4Pow->powZ(intA,0.21) // Anti-hypernucleus + Nucleus + + 1.05/theG4Pow->Z13(intA); } // is treated as Anti-alpha + Nucleus else {} } diff --git a/source/processes/hadronic/cross_sections/src/G4ComponentGGHadronNucleusXsc.cc b/source/processes/hadronic/cross_sections/src/G4ComponentGGHadronNucleusXsc.cc index e143621361..ab3f5d7e10 100644 --- a/source/processes/hadronic/cross_sections/src/G4ComponentGGHadronNucleusXsc.cc +++ b/source/processes/hadronic/cross_sections/src/G4ComponentGGHadronNucleusXsc.cc @@ -42,6 +42,8 @@ #include "G4DynamicParticle.hh" #include "G4HadronNucleonXsc.hh" #include "G4Log.hh" +#include "G4Lambda.hh" +#include "G4Pow.hh" #include "G4NuclearRadii.hh" ////////////////////////////////////////////////////////////////////////////// @@ -51,7 +53,7 @@ G4ComponentGGHadronNucleusXsc::G4ComponentGGHadronNucleusXsc() : G4VComponentCrossSection(Default_Name()), fTotalXsc(0.0),fElasticXsc(0.0),fInelasticXsc(0.0),fProductionXsc(0.0), fDiffractionXsc(0.0),fAxsc2piR2(0.0),fModelInLog(0.0),fEnergy(0.0), - fParticle(nullptr),fZ(0),fA(0) + fParticle(nullptr),fZ(0),fA(0), fL(0) { theGamma = G4Gamma::Gamma(); theProton = G4Proton::Proton(); @@ -64,7 +66,8 @@ G4ComponentGGHadronNucleusXsc::G4ComponentGGHadronNucleusXsc() theKMinus = G4KaonMinus::KaonMinus(); theK0S = G4KaonZeroShort::KaonZeroShort(); theK0L = G4KaonZeroLong::KaonZeroLong(); - + theLambda = G4Lambda::Lambda(); + hnXsc = new G4HadronNucleonXsc(); } @@ -178,16 +181,17 @@ G4double G4ComponentGGHadronNucleusXsc::GetProductionIsotopeCrossSection( void G4ComponentGGHadronNucleusXsc::ComputeCrossSections( const G4ParticleDefinition* aParticle, - G4double kinEnergy, G4int Z, G4int A) + G4double kinEnergy, G4int Z, G4int A, G4int nL) { // check cache - if(aParticle == fParticle && fZ == Z && fA == A && kinEnergy == fEnergy) + if(aParticle == fParticle && fZ == Z && fA == A && fL == nL && kinEnergy == fEnergy) { return; } fParticle = aParticle; fZ = Z; fA = A; + fL = nL; fEnergy = kinEnergy; - + G4Pow* pG4Pow=G4Pow::GetInstance(); // G4double cofInelastic = 2.4; static const G4double cofTotal = 2.0; @@ -220,6 +224,14 @@ void G4ComponentGGHadronNucleusXsc::ComputeCrossSections( hnInXsc = hnXsc->GetInelasticHadronNucleonXsc(); } R = G4NuclearRadii::RadiusHNGG(A); + if( nL > 0 ) { + G4double mp = theProton->GetPDGMass(); + G4double ml = theLambda->GetPDGMass(); + G4double kinCof = ml/mp; // moving hyperon - rest nucleon + G4double cHN(0.88); + sigma += nL*hnXsc->HadronNucleonXsc(theLambda, theProton, kinEnergy*kinCof); + R *= std::sqrt( pG4Pow->Z23( A - nL ) + cHN*pG4Pow->Z23( nL ) )/pG4Pow->Z13(A); + } } G4double nucleusSquare = cofTotal*pi*R*R; // basically 2piRR diff --git a/source/processes/hadronic/cross_sections/src/G4ComponentGGNuclNuclXsc.cc b/source/processes/hadronic/cross_sections/src/G4ComponentGGNuclNuclXsc.cc index 331bdb2dda..44902999c3 100644 --- a/source/processes/hadronic/cross_sections/src/G4ComponentGGNuclNuclXsc.cc +++ b/source/processes/hadronic/cross_sections/src/G4ComponentGGNuclNuclXsc.cc @@ -37,6 +37,7 @@ #include "G4HadronNucleonXsc.hh" #include "G4ComponentGGHadronNucleusXsc.hh" #include "G4NuclearRadii.hh" +#include "G4Pow.hh" static const G4double inve = 1./CLHEP::eplus; @@ -47,6 +48,7 @@ G4ComponentGGNuclNuclXsc::G4ComponentGGNuclNuclXsc() { theProton = G4Proton::Proton(); theNeutron = G4Neutron::Neutron(); + theLambda = G4Lambda::Lambda(); fHNXsc = new G4HadronNucleonXsc(); fHadrNucl = new G4ComponentGGHadronNucleusXsc(); } @@ -169,14 +171,18 @@ void G4ComponentGGNuclNuclXsc::ComputeCrossSections( fZ = Z; fA = A; fEnergy = kinEnergy; - + G4Pow* pG4Pow=G4Pow::GetInstance(); + G4int pZ = G4lrint(aParticle->GetPDGCharge()*inve); G4int pA = aParticle->GetBaryonNumber(); + G4int pL = aParticle->GetNumberOfLambdasInHypernucleus(); + G4bool pHN = aParticle->IsHypernucleus(); + G4double cHN(0.88); // hydrogen if(1 == Z && 1 == A) { G4double e = kinEnergy*CLHEP::proton_mass_c2/aParticle->GetPDGMass(); - fHadrNucl->ComputeCrossSections(theProton, e, pZ, pA); + fHadrNucl->ComputeCrossSections( theProton, e, pZ, pA, pL ); fTotalXsc = fHadrNucl->GetTotalGlauberGribovXsc(); fElasticXsc = fHadrNucl->GetElasticGlauberGribovXsc(); fInelasticXsc = fHadrNucl->GetInelasticGlauberGribovXsc(); @@ -193,13 +199,16 @@ void G4ComponentGGNuclNuclXsc::ComputeCrossSections( G4int tN = A - Z; G4double tR = G4NuclearRadii::Radius(Z, A); - G4double pR = G4NuclearRadii::Radius(pZ, pA); - + G4double pR = G4NuclearRadii::Radius(pZ, pA); + + if(pHN) pR *= std::sqrt( pG4Pow->Z23( pA - pL ) + cHN*pG4Pow->Z23( pL ) )/pG4Pow->Z13(pA); + G4double cB = ComputeCoulombBarier(aParticle, kinEnergy, Z, A, pR, tR); if ( cB > 0. ) { G4double sigma = (pZ*Z+pN*tN)*fHNXsc->HadronNucleonXscNS(theProton, theProton, pTkin); + if(pHN) sigma += pL*A*fHNXsc->HadronNucleonXsc(theLambda, theProton, pTkin); G4double ppInXsc = fHNXsc->GetInelasticHadronNucleonXsc(); sigma += (pZ*tN+pN*Z)*fHNXsc->HadronNucleonXscNS(theNeutron, theProton, pTkin); diff --git a/source/processes/hadronic/cross_sections/src/G4CrossSectionDataStore.cc b/source/processes/hadronic/cross_sections/src/G4CrossSectionDataStore.cc index 298a5554a2..28bb667647 100644 --- a/source/processes/hadronic/cross_sections/src/G4CrossSectionDataStore.cc +++ b/source/processes/hadronic/cross_sections/src/G4CrossSectionDataStore.cc @@ -73,12 +73,12 @@ G4CrossSectionDataStore::ComputeCrossSection(const G4DynamicParticle* dp, matKinEnergy = dp->GetKineticEnergy(); matCrossSection = 0.0; - size_t nElements = mat->GetNumberOfElements(); + std::size_t nElements = mat->GetNumberOfElements(); const G4double* nAtomsPerVolume = mat->GetVecNbOfAtomsPerVolume(); if(xsecelm.size() < nElements) { xsecelm.resize(nElements); } - for(size_t i=0; iGetElement(i), mat); matCrossSection += std::max(xs, 0.0); @@ -105,7 +105,7 @@ G4double G4CrossSectionDataStore::GetCrossSection(const G4DynamicParticle* dp, } // isotope wise cross section - size_t nIso = elm->GetNumberOfIsotopes(); + G4int nIso = (G4int)elm->GetNumberOfIsotopes(); // user-defined isotope abundances const G4double* abundVector = elm->GetRelativeAbundanceVector(); @@ -113,7 +113,7 @@ G4double G4CrossSectionDataStore::GetCrossSection(const G4DynamicParticle* dp, G4double sigma = 0.0; // isotope and element wise cross sections - for(size_t j = 0; j < nIso; ++j) + for(G4int j = 0; j < nIso; ++j) { const G4Isotope* iso = elm->GetIsotope(j); sigma += abundVector[j] * @@ -193,15 +193,16 @@ G4CrossSectionDataStore::SampleZandA(const G4DynamicParticle* dp, const G4Material* mat, G4Nucleus& target) { - size_t nElements = mat->GetNumberOfElements(); + if(nullptr != forcedElement) { return forcedElement; } + std::size_t nElements = mat->GetNumberOfElements(); const G4Element* anElement = mat->GetElement(0); // select element from a compound if(1 < nElements) { G4double cross = matCrossSection*G4UniformRand(); - for(size_t i=0; iGetElement(i); + anElement = mat->GetElement(i); break; } } @@ -217,7 +218,7 @@ G4CrossSectionDataStore::SampleZandA(const G4DynamicParticle* dp, // element-wise cross section // isotope cross section is not computed //---------------------------------------------------------------- - size_t nIso = anElement->GetNumberOfIsotopes(); + std::size_t nIso = anElement->GetNumberOfIsotopes(); iso = anElement->GetIsotope(0); // more than 1 isotope @@ -232,7 +233,7 @@ G4CrossSectionDataStore::SampleZandA(const G4DynamicParticle* dp, // isotope-wise cross section // isotope cross section is computed //---------------------------------------------------------------- - size_t nIso = anElement->GetNumberOfIsotopes(); + std::size_t nIso = anElement->GetNumberOfIsotopes(); iso = anElement->GetIsotope(0); // more than 1 isotope @@ -241,8 +242,8 @@ G4CrossSectionDataStore::SampleZandA(const G4DynamicParticle* dp, if(xseciso.size() < nIso) { xseciso.resize(nIso); } G4double cross = 0.0; - size_t j; - for (j = 0; j 0.0) { iso = anElement->GetIsotope(j); @@ -253,7 +254,7 @@ G4CrossSectionDataStore::SampleZandA(const G4DynamicParticle* dp, xseciso[j] = cross; } cross *= G4UniformRand(); - for (j = 0; jGetIsotope(j); break; @@ -283,12 +284,12 @@ G4CrossSectionDataStore::BuildPhysicsTable(const G4ParticleDefinition& part) dataSetList[i]->BuildPhysicsTable(part); } const G4MaterialTable* theMatTable = G4Material::GetMaterialTable(); - size_t nelm = 0; - size_t niso = 0; + std::size_t nelm = 0; + std::size_t niso = 0; for(auto mat : *theMatTable) { - size_t nElements = mat->GetNumberOfElements(); + std::size_t nElements = mat->GetNumberOfElements(); nelm = std::max(nelm, nElements); - for(size_t j=0; jGetElement(j)->GetNumberOfIsotopes()); } } @@ -406,7 +407,7 @@ void G4CrossSectionDataStore::AddDataSet(G4VCrossSectionDataSet* p) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... -void G4CrossSectionDataStore::AddDataSet(G4VCrossSectionDataSet* p, size_t i) +void G4CrossSectionDataStore::AddDataSet(G4VCrossSectionDataSet* p, std::size_t i) { if(p->ForAllAtomsAndEnergies()) { dataSetList.clear(); diff --git a/source/processes/hadronic/cross_sections/src/G4GammaNuclearXS.cc b/source/processes/hadronic/cross_sections/src/G4GammaNuclearXS.cc index bc4c1731a4..3f1aa754ab 100644 --- a/source/processes/hadronic/cross_sections/src/G4GammaNuclearXS.cc +++ b/source/processes/hadronic/cross_sections/src/G4GammaNuclearXS.cc @@ -235,7 +235,7 @@ G4double G4GammaNuclearXS::GetIsoCrossSection( const G4Isotope* G4GammaNuclearXS::SelectIsotope( const G4Element* anElement, G4double kinEnergy, G4double) { - size_t nIso = anElement->GetNumberOfIsotopes(); + std::size_t nIso = anElement->GetNumberOfIsotopes(); const G4Isotope* iso = anElement->GetIsotope(0); if(1 == nIso) { return iso; } @@ -243,12 +243,12 @@ const G4Isotope* G4GammaNuclearXS::SelectIsotope( const G4double* abundVector = anElement->GetRelativeAbundanceVector(); G4double q = G4UniformRand(); G4double sum = 0.0; - size_t j; + G4int j; G4int Z = anElement->GetZasInt(); // condition to use only isotope abundance if(amax[Z] == amin[Z] || kinEnergy > rTransitionBound || Z >= MAXZGAMMAXS ) { - for (j=0; jGetIsotope(j); @@ -258,10 +258,10 @@ const G4Isotope* G4GammaNuclearXS::SelectIsotope( return iso; } // use isotope cross sections - size_t nn = temp.size(); + std::size_t nn = temp.size(); if(nn < nIso) { temp.resize(nIso, 0.); } - for (j=0; jGetN() // << " abund= " << abundVector[j] << G4endl; sum += abundVector[j]* @@ -269,7 +269,7 @@ const G4Isotope* G4GammaNuclearXS::SelectIsotope( temp[j] = sum; } sum *= q; - for (j = 0; j= sum) { iso = anElement->GetIsotope(j); break; @@ -321,9 +321,9 @@ G4GammaNuclearXS::BuildPhysicsTable(const G4ParticleDefinition& p) } // prepare isotope selection - size_t nIso = temp.size(); + std::size_t nIso = temp.size(); for ( auto & elm : *table ) { - size_t n = elm->GetNumberOfIsotopes(); + std::size_t n = elm->GetNumberOfIsotopes(); if(n > nIso) { nIso = n; } } temp.resize(nIso, 0.0); @@ -380,7 +380,7 @@ void G4GammaNuclearXS::Initialise(G4int Z) G4DynamicParticle theGamma(gamma, G4ThreeVector(1,0,0), rTransitionBound); xs150[Z] = ggXsection->GetElementCrossSection(&theGamma, Z, 0); if(amax[Z] > amin[Z]) { - size_t nmax = (size_t)(amax[Z]-amin[Z]+1); + G4int nmax = amax[Z]-amin[Z]+1; data->InitialiseForComponent(Z, nmax); for(G4int A=amin[Z]; A<=amax[Z]; ++A) { std::ostringstream ost1; diff --git a/source/processes/hadronic/cross_sections/src/G4HadronXSDataTable.cc b/source/processes/hadronic/cross_sections/src/G4HadronXSDataTable.cc index 32eb237cc3..63a8d580d2 100644 --- a/source/processes/hadronic/cross_sections/src/G4HadronXSDataTable.cc +++ b/source/processes/hadronic/cross_sections/src/G4HadronXSDataTable.cc @@ -54,15 +54,15 @@ G4HadElementSelector::G4HadElementSelector(G4DynamicParticle* dp, G4int bins, G4double emin, G4double emax, G4bool) { - G4int n = mat->GetNumberOfElements(); - nElmMinusOne = n - 1; + std::size_t n = mat->GetNumberOfElements(); + nElmMinusOne = G4int(n - 1); theElementVector = mat->GetElementVector(); if(nElmMinusOne > 0) { G4PhysicsVector* first = nullptr; xSections.resize(n, first); first = new G4PhysicsLogVector(emin,emax,bins,false); xSections[0] = first; - for(G4int i=1; i temp; @@ -71,12 +71,12 @@ G4HadElementSelector::G4HadElementSelector(G4DynamicParticle* dp, G4double cross = 0.0; G4double e = first->Energy(j); dp->SetKineticEnergy(e); - for(G4int i=0; iGetCrossSection(dp, (*theElementVector)[i], mat); temp[i] = cross; } G4double fact = (cross > 0.0) ? 1.0/cross : 0.0; - for(G4int i=0; iPutValue(j, y); } @@ -110,7 +110,7 @@ void G4HadronXSDataTable::Initialise(G4DynamicParticle* dp, G4int bins, G4double emin, G4double emax, G4bool spline) { - size_t nn = G4Material::GetNumberOfMaterials(); + std::size_t nn = G4Material::GetNumberOfMaterials(); if(nn > nMaterials) { if(0 == nMaterials) { xsData.reserve(nn); @@ -119,7 +119,7 @@ void G4HadronXSDataTable::Initialise(G4DynamicParticle* dp, G4PhysicsLogVector* first = nullptr; G4int sbins = std::max(10, bins/5); const G4MaterialTable* mtable = G4Material::GetMaterialTable(); - for(size_t i=nMaterials; iGetZ()); //AR-24Apr2018 Switch to treat transuranic elements as uranium diff --git a/source/processes/hadronic/cross_sections/src/G4MuNeutrinoNucleusTotXsc.cc b/source/processes/hadronic/cross_sections/src/G4MuNeutrinoNucleusTotXsc.cc index 4a9e206232..201c90965e 100644 --- a/source/processes/hadronic/cross_sections/src/G4MuNeutrinoNucleusTotXsc.cc +++ b/source/processes/hadronic/cross_sections/src/G4MuNeutrinoNucleusTotXsc.cc @@ -65,7 +65,7 @@ G4MuNeutrinoNucleusTotXsc::G4MuNeutrinoNucleusTotXsc() fCutEnergy = 0.; // default value fBiasingFactor = 1.; // default as physics - + fEmc = 0.2*GeV; fIndex = 50; fTotXsc = 0.; @@ -73,8 +73,8 @@ G4MuNeutrinoNucleusTotXsc::G4MuNeutrinoNucleusTotXsc() fCcFactor = fNcFactor = 1.; fQEratio = 0.5; // mean in the 1 GeV range - theMuonMinus = G4MuonMinus::MuonMinus(); - theMuonPlus = G4MuonPlus::MuonPlus(); + // theMuonMinus = G4MuonMinus::MuonMinus(); + // theMuonPlus = G4MuonPlus::MuonPlus(); } G4MuNeutrinoNucleusTotXsc::~G4MuNeutrinoNucleusTotXsc() @@ -87,8 +87,9 @@ G4MuNeutrinoNucleusTotXsc::IsIsoApplicable( const G4DynamicParticle* aPart, G4in { G4bool result = false; G4String pName = aPart->GetDefinition()->GetParticleName(); - - if( pName == "nu_mu" || pName == "anti_nu_mu" ) + G4double tKin = aPart->GetKineticEnergy(); + + if( ( pName == "nu_mu" || pName == "anti_nu_mu") && tKin >= fEmc ) { result = true; } @@ -166,14 +167,14 @@ G4double G4MuNeutrinoNucleusTotXsc::GetIsoCrossSection(const G4DynamicParticle* ccanuXsc = GetANuMuTotCsXsc(index, energy, Z, A); ccanuXsc *= fCcFactor; - if( pName == "nu_mu") + if( pName == "nu_mu" ) { ncXsc = fCofL*ccnuXsc + fCofS*ccanuXsc; ncXsc *= fNcFactor/fCcFactor; totXsc = ccnuXsc + ncXsc; if( totXsc > 0.) fCcTotRatio = ccnuXsc/totXsc; } - else if( pName == "anti_nu_mu") + else if( pName == "anti_nu_mu" ) { ncXsc = fCofL*ccanuXsc + fCofS*ccnuXsc; ncXsc *= fNcFactor/fCcFactor; @@ -224,7 +225,8 @@ G4double G4MuNeutrinoNucleusTotXsc::GetNuMuTotCsXsc(G4int index, G4double energy G4int nn = aa - zz; if(nn < 1) nn = 0; - if( index <= 0 || energy < theMuonMinus->GetPDGMass() ) xsc = aa*fNuMuInXsc[0] + nn*fNuMuQeXsc[0]; + // if( index <= 0 || energy < theMuonMinus->GetPDGMass() ) xsc = aa*fNuMuInXsc[0] + nn*fNuMuQeXsc[0]; + if( index <= 0 || energy < fEmc ) xsc = aa*fNuMuInXsc[0] + nn*fNuMuQeXsc[0]; else if (index >= fIndex) xsc = aa*fNuMuInXsc[fIndex-1] + nn*fNuMuQeXsc[fIndex-1]; else { @@ -259,7 +261,8 @@ G4double G4MuNeutrinoNucleusTotXsc::GetANuMuTotCsXsc(G4int index, G4double energ { G4double xsc(0.), qexsc(0.), inxsc(0.); - if( index <= 0 || energy < theMuonPlus->GetPDGMass() ) xsc = aa*fANuMuInXsc[0] + zz*fANuMuQeXsc[0]; + // if( index <= 0 || energy < theMuonPlus->GetPDGMass() ) xsc = aa*fANuMuInXsc[0] + zz*fANuMuQeXsc[0]; + if( index <= 0 || energy < fEmc ) xsc = aa*fANuMuInXsc[0] + zz*fANuMuQeXsc[0]; else if (index >= fIndex) xsc = aa*fANuMuInXsc[fIndex-1] + zz*fANuMuQeXsc[fIndex-1]; else { @@ -293,7 +296,7 @@ G4double G4MuNeutrinoNucleusTotXsc::GetANuMuTotCsXsc(G4int index, G4double energ G4double G4MuNeutrinoNucleusTotXsc::GetNuMuTotCsArray( G4int index) { - if( index >= 0 && index < fIndex) return fNuMuInXsc[index] + fNuMuInXsc[index]; + if( index >= 0 && index < fIndex) return fNuMuInXsc[index] + fNuMuQeXsc[index]; else { G4cout<<"Improper index of fNuMuTotXsc array"<GetKineticEnergy(); - if(ekin > emax) { return xs; } + if(ekin < emax) { xs = ElementCrossSection(ekin, aParticle->GetLogKineticEnergy(), Z); } + return xs; +} +G4double +G4NeutronCaptureXS::ComputeCrossSectionPerElement(G4double ekin, G4double loge, + const G4ParticleDefinition*, + const G4Element* elm, + const G4Material*) +{ + G4double xs = 0.0; + if(ekin < emax) { xs = ElementCrossSection(ekin, loge, elm->GetZasInt()); } + return xs; +} + +G4double +G4NeutronCaptureXS::ElementCrossSection(G4double ekin, G4double loge, G4int ZZ) +{ G4int Z = std::min(ZZ, MAXZCAPTURE-1); - G4double logEkin = aParticle->GetLogKineticEnergy(); + G4double logEkin = loge; if(ekin < elimit) { ekin = elimit; logEkin = logElimit; } auto pv = GetPhysicsVector(Z); - if(pv == nullptr) { return xs; } - const G4double e1 = pv->Energy(1); - xs = (ekin >= e1) ? pv->LogVectorValue(ekin, logEkin) + G4double xs = (ekin >= e1) ? pv->LogVectorValue(ekin, logEkin) : (*pv)[1]*std::sqrt(e1/ekin); #ifdef G4VERBOSE @@ -125,6 +141,16 @@ G4NeutronCaptureXS::GetElementCrossSection(const G4DynamicParticle* aParticle, return xs; } +G4double +G4NeutronCaptureXS::ComputeIsoCrossSection(G4double ekin, G4double loge, + const G4ParticleDefinition*, + G4int Z, G4int A, + const G4Isotope*, const G4Element*, + const G4Material*) +{ + return IsoCrossSection(ekin, loge, Z, A); +} + G4double G4NeutronCaptureXS::GetIsoCrossSection(const G4DynamicParticle* aParticle, G4int Z, G4int A, @@ -187,7 +213,7 @@ const G4Isotope* G4NeutronCaptureXS::SelectIsotope(const G4Element* anElement, G4double kinEnergy, G4double logE) { - size_t nIso = anElement->GetNumberOfIsotopes(); + G4int nIso = (G4int)anElement->GetNumberOfIsotopes(); const G4Isotope* iso = anElement->GetIsotope(0); //G4cout << "SelectIsotope NIso= " << nIso << G4endl; @@ -201,7 +227,7 @@ G4NeutronCaptureXS::SelectIsotope(const G4Element* anElement, G4double sum = 0.0; // is there isotope wise cross section? - size_t j; + G4int j; if(amax[Z] == amin[Z] || Z >= MAXZCAPTURE) { for (j = 0; jSetName("NeutronCapture"); FindDirectoryPath(); -#ifdef G4MULTITHREADED } - G4MUTEXUNLOCK(&neutronCaptureXSMutex); -#endif + l.unlock(); } // it is possible re-initialisation for the second run @@ -272,9 +294,9 @@ G4NeutronCaptureXS::BuildPhysicsTable(const G4ParticleDefinition& p) } } // prepare isotope selection - size_t nIso = temp.size(); + std::size_t nIso = temp.size(); for ( auto & elm : *table ) { - size_t n = elm->GetNumberOfIsotopes(); + std::size_t n = elm->GetNumberOfIsotopes(); if(n > nIso) { nIso = n; } } temp.resize(nIso, 0.0); @@ -301,15 +323,9 @@ const G4String& G4NeutronCaptureXS::FindDirectoryPath() void G4NeutronCaptureXS::InitialiseOnFly(G4int Z) { -#ifdef G4MULTITHREADED - G4MUTEXLOCK(&neutronCaptureXSMutex); - if(nullptr == data->GetElementData(Z)) { -#endif - Initialise(Z); -#ifdef G4MULTITHREADED - } - G4MUTEXUNLOCK(&neutronCaptureXSMutex); -#endif + G4AutoLock l(&neutronCaptureXSMutex); + if(nullptr == data->GetElementData(Z)) { Initialise(Z); } + l.unlock(); } void G4NeutronCaptureXS::Initialise(G4int Z) diff --git a/source/processes/hadronic/cross_sections/src/G4NeutronElasticXS.cc b/source/processes/hadronic/cross_sections/src/G4NeutronElasticXS.cc index ccf3d0533d..10b98d5463 100644 --- a/source/processes/hadronic/cross_sections/src/G4NeutronElasticXS.cc +++ b/source/processes/hadronic/cross_sections/src/G4NeutronElasticXS.cc @@ -47,6 +47,7 @@ #include "Randomize.hh" #include "G4SystemOfUnits.hh" #include "G4IsotopeList.hh" +#include "G4AutoLock.hh" #include #include @@ -55,9 +56,10 @@ G4PhysicsVector* G4NeutronElasticXS::data[] = {nullptr}; G4double G4NeutronElasticXS::coeff[] = {0.0}; G4String G4NeutronElasticXS::gDataDirectory = ""; -#ifdef G4MULTITHREADED - G4Mutex G4NeutronElasticXS::neutronElasticXSMutex = G4MUTEX_INITIALIZER; -#endif +namespace +{ + G4Mutex nElasticXSMutex = G4MUTEX_INITIALIZER; +} G4NeutronElasticXS::G4NeutronElasticXS() : G4VCrossSectionDataSet(Default_Name()), @@ -108,26 +110,28 @@ G4bool G4NeutronElasticXS::IsIsoApplicable(const G4DynamicParticle*, G4double G4NeutronElasticXS::GetElementCrossSection(const G4DynamicParticle* aParticle, - G4int ZZ, const G4Material*) + G4int Z, const G4Material*) { - G4double xs = 0.0; - G4double ekin = aParticle->GetKineticEnergy(); + return ElementCrossSection(aParticle->GetKineticEnergy(), aParticle->GetLogKineticEnergy(), Z); +} - G4int Z = (ZZ >= MAXZEL) ? MAXZEL - 1 : ZZ; +G4double +G4NeutronElasticXS::ComputeCrossSectionPerElement(G4double ekin, G4double loge, + const G4ParticleDefinition*, + const G4Element* elm, + const G4Material*) +{ + return ElementCrossSection(ekin, loge, elm->GetZasInt()); +} +G4double G4NeutronElasticXS::ElementCrossSection(G4double ekin, G4double loge, G4int ZZ) +{ + G4int Z = (ZZ >= MAXZEL) ? MAXZEL - 1 : ZZ; auto pv = GetPhysicsVector(Z); - if(pv == nullptr) { return xs; } - // G4cout << "G4NeutronElasticXS::GetCrossSection e= " << ekin - // << " Z= " << Z << G4endl; - if(ekin <= pv->Energy(1)) { - xs = (*pv)[1]; - } else if(ekin <= pv->GetMaxEnergy()) { - xs = pv->LogVectorValue(ekin, aParticle->GetLogKineticEnergy()); - } else { - xs = coeff[Z]*ggXsection->GetElasticElementCrossSection(neutron, - ekin, Z, aeff[Z]); - } + G4double xs = (ekin <= pv->GetMaxEnergy()) ? pv->LogVectorValue(ekin, loge) + : coeff[Z]*ggXsection->GetElasticElementCrossSection(neutron, ekin, + Z, aeff[Z]); #ifdef G4VERBOSE if(verboseLevel > 1) { @@ -139,19 +143,31 @@ G4NeutronElasticXS::GetElementCrossSection(const G4DynamicParticle* aParticle, return xs; } -G4double G4NeutronElasticXS::GetIsoCrossSection( - const G4DynamicParticle* aParticle, - G4int Z, G4int A, - const G4Isotope*, const G4Element*, - const G4Material* mat) +G4double +G4NeutronElasticXS::ComputeIsoCrossSection(G4double ekin, G4double loge, + const G4ParticleDefinition*, + G4int Z, G4int A, + const G4Isotope*, const G4Element*, + const G4Material*) { - return GetElementCrossSection(aParticle, Z, mat) * A/aeff[Z]; -} + return ElementCrossSection(ekin, loge, Z)*A/aeff[Z]; +} + +G4double +G4NeutronElasticXS::GetIsoCrossSection(const G4DynamicParticle* aParticle, + G4int Z, G4int A, + const G4Isotope*, const G4Element*, + const G4Material*) +{ + return ElementCrossSection(aParticle->GetKineticEnergy(), + aParticle->GetLogKineticEnergy(), Z)*A/aeff[Z]; + +} const G4Isotope* G4NeutronElasticXS::SelectIsotope( const G4Element* anElement, G4double, G4double) { - size_t nIso = anElement->GetNumberOfIsotopes(); + G4int nIso = (G4int)anElement->GetNumberOfIsotopes(); const G4Isotope* iso = anElement->GetIsotope(0); //G4cout << "SelectIsotope NIso= " << nIso << G4endl; @@ -160,10 +176,9 @@ const G4Isotope* G4NeutronElasticXS::SelectIsotope( const G4double* abundVector = anElement->GetRelativeAbundanceVector(); G4double q = G4UniformRand(); G4double sum = 0.0; - size_t j; // isotope wise cross section not used - for (j=0; jGetIsotope(j); @@ -189,17 +204,13 @@ G4NeutronElasticXS::BuildPhysicsTable(const G4ParticleDefinition& p) return; } if(0. == coeff[0]) { -#ifdef G4MULTITHREADED - G4MUTEXLOCK(&neutronElasticXSMutex); + G4AutoLock l(&nElasticXSMutex); if(0. == coeff[0]) { -#endif coeff[0] = 1.0; isMaster = true; FindDirectoryPath(); -#ifdef G4MULTITHREADED } - G4MUTEXUNLOCK(&neutronElasticXSMutex); -#endif + l.unlock(); } // it is possible re-initialisation for the second run @@ -235,15 +246,11 @@ const G4String& G4NeutronElasticXS::FindDirectoryPath() void G4NeutronElasticXS::InitialiseOnFly(G4int Z) { -#ifdef G4MULTITHREADED - G4MUTEXLOCK(&neutronElasticXSMutex); - if(data[Z] == nullptr) { -#endif - Initialise(Z); -#ifdef G4MULTITHREADED - } - G4MUTEXUNLOCK(&neutronElasticXSMutex); -#endif + if(nullptr == data[Z]) { + G4AutoLock l(&nElasticXSMutex); + if(nullptr == data[Z]) { Initialise(Z); } + l.unlock(); + } } void G4NeutronElasticXS::Initialise(G4int Z) diff --git a/source/processes/hadronic/cross_sections/src/G4NeutronInelasticXS.cc b/source/processes/hadronic/cross_sections/src/G4NeutronInelasticXS.cc index a69a203f94..a4c1f77948 100644 --- a/source/processes/hadronic/cross_sections/src/G4NeutronInelasticXS.cc +++ b/source/processes/hadronic/cross_sections/src/G4NeutronInelasticXS.cc @@ -45,6 +45,7 @@ #include "Randomize.hh" #include "G4SystemOfUnits.hh" #include "G4IsotopeList.hh" +#include "G4AutoLock.hh" #include #include @@ -53,13 +54,15 @@ G4double G4NeutronInelasticXS::coeff[] = {1.0}; G4ElementData* G4NeutronInelasticXS::data = nullptr; G4String G4NeutronInelasticXS::gDataDirectory = ""; -#ifdef G4MULTITHREADED - G4Mutex G4NeutronInelasticXS::neutronInelasticXSMutex = G4MUTEX_INITIALIZER; -#endif +namespace +{ + G4Mutex nInelasticXSMutex = G4MUTEX_INITIALIZER; +} G4NeutronInelasticXS::G4NeutronInelasticXS() : G4VCrossSectionDataSet(Default_Name()), - neutron(G4Neutron::Neutron()) + neutron(G4Neutron::Neutron()), + elimit(20*CLHEP::MeV) { verboseLevel = 0; if(verboseLevel > 0){ @@ -100,26 +103,30 @@ G4NeutronInelasticXS::IsIsoApplicable(const G4DynamicParticle*, return true; } -G4double G4NeutronInelasticXS::GetElementCrossSection( - const G4DynamicParticle* aParticle, - G4int ZZ, const G4Material*) +G4double +G4NeutronInelasticXS::GetElementCrossSection(const G4DynamicParticle* aParticle, + G4int Z, const G4Material*) { - G4double xs = 0.0; - G4double ekin = aParticle->GetKineticEnergy(); + return ElementCrossSection(aParticle->GetKineticEnergy(), aParticle->GetLogKineticEnergy(), Z); +} +G4double +G4NeutronInelasticXS::ComputeCrossSectionPerElement(G4double ekin, G4double loge, + const G4ParticleDefinition*, + const G4Element* elm, + const G4Material*) +{ + return ElementCrossSection(ekin, loge, elm->GetZasInt()); +} + +G4double G4NeutronInelasticXS::ElementCrossSection(G4double ekin, G4double loge, G4int ZZ) +{ G4int Z = (ZZ >= MAXZINEL) ? MAXZINEL - 1 : ZZ; - auto pv = GetPhysicsVector(Z); - if(pv == nullptr) { return xs; } - // G4cout << "G4NeutronInelasticXS::GetCrossSection e= " << ekin - // << " Z= " << Z << G4endl; - if(ekin <= pv->GetMaxEnergy()) { - xs = pv->LogVectorValue(ekin, aParticle->GetLogKineticEnergy()); - } else { - xs = coeff[Z]*ggXsection->GetInelasticElementCrossSection(neutron, - ekin, Z, aeff[Z]); - } + G4double xs = (ekin <= pv->GetMaxEnergy()) ? pv->LogVectorValue(ekin, loge) + : coeff[Z]*ggXsection->GetInelasticElementCrossSection(neutron, ekin, + Z, aeff[Z]); #ifdef G4VERBOSE if(verboseLevel > 1) { @@ -131,22 +138,32 @@ G4double G4NeutronInelasticXS::GetElementCrossSection( return xs; } -G4double G4NeutronInelasticXS::GetIsoCrossSection( - const G4DynamicParticle* aParticle, - G4int Z, G4int A, - const G4Isotope*, const G4Element*, - const G4Material*) +G4double +G4NeutronInelasticXS::ComputeIsoCrossSection(G4double ekin, G4double loge, + const G4ParticleDefinition*, + G4int Z, G4int A, + const G4Isotope*, const G4Element*, + const G4Material*) { - return IsoCrossSection(aParticle->GetKineticEnergy(), - aParticle->GetLogKineticEnergy(), Z, A); + return IsoCrossSection(ekin, loge, Z, A); } -G4double +G4double +G4NeutronInelasticXS::GetIsoCrossSection(const G4DynamicParticle* aParticle, + G4int Z, G4int A, + const G4Isotope*, const G4Element*, + const G4Material*) +{ + return IsoCrossSection(aParticle->GetKineticEnergy(), + aParticle->GetLogKineticEnergy(), Z, A); +} + +G4double G4NeutronInelasticXS::IsoCrossSection(G4double ekin, G4double logekin, G4int ZZ, G4int A) { G4double xs = 0.0; - G4int Z = (ZZ >= MAXZINEL) ? MAXZINEL - 1 : ZZ; + G4int Z = (ZZ >= MAXZINEL) ? MAXZINEL - 1 : ZZ; /* G4cout << "IsoCrossSection Z= " << Z << " A= " << A @@ -154,13 +171,11 @@ G4NeutronInelasticXS::IsoCrossSection(G4double ekin, G4double logekin, << " E(MeV)= " << ekin << G4endl; */ auto pv = GetPhysicsVector(Z); - if(pv == nullptr) { return xs; } // compute isotope cross section if applicable - const G4double emax = pv->GetMaxEnergy(); - if(ekin <= emax && amin[Z] < amax[Z] && A >= amin[Z] && A <= amax[Z]) { + if(ekin <= elimit && amin[Z] < amax[Z] && A >= amin[Z] && A <= amax[Z]) { auto pviso = data->GetComponentDataByIndex(Z, A - amin[Z]); - if(pviso) { + if(nullptr != pviso) { xs = pviso->LogVectorValue(ekin, logekin); #ifdef G4VERBOSE if(verboseLevel > 1) { @@ -174,13 +189,10 @@ G4NeutronInelasticXS::IsoCrossSection(G4double ekin, G4double logekin, } } - // use element x-section - if(ekin <= emax) { - xs = pv->LogVectorValue(ekin, logekin); - } else { - xs = coeff[Z]*ggXsection->GetInelasticElementCrossSection(neutron, - ekin, Z, aeff[Z]); - } + // use element x-section + xs = (ekin <= pv->GetMaxEnergy()) ? pv->LogVectorValue(ekin, logekin) + : coeff[Z]*ggXsection->GetInelasticElementCrossSection(neutron, ekin, + Z, aeff[Z]); xs *= A/aeff[Z]; #ifdef G4VERBOSE if(verboseLevel > 1) { @@ -195,7 +207,7 @@ G4NeutronInelasticXS::IsoCrossSection(G4double ekin, G4double logekin, const G4Isotope* G4NeutronInelasticXS::SelectIsotope( const G4Element* anElement, G4double kinEnergy, G4double logE) { - size_t nIso = anElement->GetNumberOfIsotopes(); + G4int nIso = (G4int)anElement->GetNumberOfIsotopes(); const G4Isotope* iso = anElement->GetIsotope(0); //G4cout << "SelectIsotope NIso= " << nIso << G4endl; @@ -208,7 +220,7 @@ const G4Isotope* G4NeutronInelasticXS::SelectIsotope( const G4double* abundVector = anElement->GetRelativeAbundanceVector(); G4double q = G4UniformRand(); G4double sum = 0.0; - size_t j; + G4int j; // isotope wise cross section not available if(amax[Z] == amin[Z] || Z >= MAXZINEL) { @@ -223,7 +235,7 @@ const G4Isotope* G4NeutronInelasticXS::SelectIsotope( } // use isotope cross sections - size_t nn = temp.size(); + G4int nn = (G4int)temp.size(); if(nn < nIso) { temp.resize(nIso, 0.); } for (j=0; jSetName("NeutronInelastic"); FindDirectoryPath(); -#ifdef G4MULTITHREADED } - G4MUTEXUNLOCK(&neutronInelasticXSMutex); -#endif + l.unlock(); } // it is possible re-initialisation for the new run @@ -284,9 +292,9 @@ G4NeutronInelasticXS::BuildPhysicsTable(const G4ParticleDefinition& p) } } // prepare isotope selection - size_t nIso = temp.size(); + std::size_t nIso = temp.size(); for ( auto & elm : *table ) { - size_t n = elm->GetNumberOfIsotopes(); + std::size_t n = elm->GetNumberOfIsotopes(); if(n > nIso) { nIso = n; } } temp.resize(nIso, 0.0); @@ -313,15 +321,11 @@ const G4String& G4NeutronInelasticXS::FindDirectoryPath() void G4NeutronInelasticXS::InitialiseOnFly(G4int Z) { -#ifdef G4MULTITHREADED - G4MUTEXLOCK(&neutronInelasticXSMutex); - if(nullptr == data->GetElementData(Z)) { -#endif - Initialise(Z); -#ifdef G4MULTITHREADED - } - G4MUTEXUNLOCK(&neutronInelasticXSMutex); -#endif + if(nullptr == data->GetElementData(Z)) { + G4AutoLock l(&nInelasticXSMutex); + if(nullptr == data->GetElementData(Z)) { Initialise(Z); } + l.unlock(); + } } void G4NeutronInelasticXS::Initialise(G4int Z) @@ -333,11 +337,11 @@ void G4NeutronInelasticXS::Initialise(G4int Z) ost << FindDirectoryPath() << Z; G4PhysicsVector* v = RetrieveVector(ost, true); data->InitialiseForElement(Z, v); - /* - G4cout << "G4NeutronInelasticXS::Initialise for Z= " << Z - << " A= " << Amean << " Amin= " << amin[Z] - << " Amax= " << amax[Z] << G4endl; - */ + if(verboseLevel > 1) { + G4cout << "G4NeutronInelasticXS::Initialise for Z= " << Z + << " A= " << aeff[Z] << " Amin= " << amin[Z] + << " Amax= " << amax[Z] << G4endl; + } // upload isotope data if(amin[Z] < amax[Z]) { G4int nmax = amax[Z] - amin[Z] + 1; diff --git a/source/processes/hadronic/cross_sections/src/G4ParticleInelasticXS.cc b/source/processes/hadronic/cross_sections/src/G4ParticleInelasticXS.cc index 1c416d9fa5..966908fff3 100644 --- a/source/processes/hadronic/cross_sections/src/G4ParticleInelasticXS.cc +++ b/source/processes/hadronic/cross_sections/src/G4ParticleInelasticXS.cc @@ -50,6 +50,7 @@ #include "G4SystemOfUnits.hh" #include "G4IsotopeList.hh" #include "G4HadronicParameters.hh" +#include "G4AutoLock.hh" #include #include @@ -58,13 +59,15 @@ G4ElementData* G4ParticleInelasticXS::data[] = {nullptr}; G4double G4ParticleInelasticXS::coeff[MAXZINELP][5] = {{1.0}, {1.0}, {1.0}, {1.0}, {1.0}}; G4String G4ParticleInelasticXS::gDataDirectory[] = {""}; -#ifdef G4MULTITHREADED - G4Mutex G4ParticleInelasticXS::particleInelasticXSMutex = G4MUTEX_INITIALIZER; -#endif +namespace +{ + G4Mutex pInelasticXSMutex = G4MUTEX_INITIALIZER; +} G4ParticleInelasticXS::G4ParticleInelasticXS(const G4ParticleDefinition* part) : G4VCrossSectionDataSet("G4ParticleInelasticXS"), - particle(part) + particle(part), + elimit(20*CLHEP::MeV) { if(nullptr == part) { G4Exception("G4ParticleInelasticXS::G4ParticleInelasticXS(..)","had015", @@ -133,26 +136,30 @@ G4ParticleInelasticXS::IsIsoApplicable(const G4DynamicParticle*, return true; } -G4double G4ParticleInelasticXS::GetElementCrossSection( - const G4DynamicParticle* aParticle, - G4int ZZ, const G4Material*) +G4double +G4ParticleInelasticXS::GetElementCrossSection(const G4DynamicParticle* aParticle, + G4int Z, const G4Material*) { - G4double xs = 0.0; - G4double ekin = aParticle->GetKineticEnergy(); + return ElementCrossSection(aParticle->GetKineticEnergy(), aParticle->GetLogKineticEnergy(), Z); +} +G4double +G4ParticleInelasticXS::ComputeCrossSectionPerElement(G4double ekin, G4double loge, + const G4ParticleDefinition*, + const G4Element* elm, + const G4Material*) +{ + return ElementCrossSection(ekin, loge, elm->GetZasInt()); +} + +G4double G4ParticleInelasticXS::ElementCrossSection(G4double ekin, G4double loge, G4int ZZ) +{ G4int Z = (ZZ >= MAXZINELP) ? MAXZINELP - 1 : ZZ; - auto pv = GetPhysicsVector(Z); - if(nullptr == pv) { return xs; } - // G4cout << "G4ParticleInelasticXS::GetCrossSection e= " << ekin - // << " Z= " << Z << G4endl; - if(ekin <= pv->GetMaxEnergy()) { - xs = pv->LogVectorValue(ekin, aParticle->GetLogKineticEnergy()); - } else { - xs = coeff[Z][index]*highEnergyXsection->GetInelasticElementCrossSection(particle, + G4double xs = (ekin <= pv->GetMaxEnergy()) ? pv->LogVectorValue(ekin, loge) + : coeff[Z][index]*highEnergyXsection->GetInelasticElementCrossSection(particle, ekin, Z, aeff[Z]); - } #ifdef G4VERBOSE if(verboseLevel > 1) { @@ -165,13 +172,22 @@ G4double G4ParticleInelasticXS::GetElementCrossSection( return xs; } -G4double G4ParticleInelasticXS::GetIsoCrossSection( - const G4DynamicParticle* aParticle, - G4int Z, G4int A, - const G4Isotope*, const G4Element*, const G4Material*) +G4double +G4ParticleInelasticXS::ComputeIsoCrossSection(G4double ekin, G4double loge, + const G4ParticleDefinition*, + G4int Z, G4int A, const G4Isotope*, + const G4Element*, const G4Material*) +{ + return IsoCrossSection(ekin, loge, Z, A); +} + +G4double +G4ParticleInelasticXS::GetIsoCrossSection(const G4DynamicParticle* aParticle, + G4int Z, G4int A, const G4Isotope*, + const G4Element*, const G4Material*) { return IsoCrossSection(aParticle->GetKineticEnergy(), - aParticle->GetLogKineticEnergy(),Z, A); + aParticle->GetLogKineticEnergy(), Z, A); } G4double @@ -180,18 +196,10 @@ G4ParticleInelasticXS::IsoCrossSection(G4double ekin, G4double logE, { G4double xs = 0.0; G4int Z = (ZZ >= MAXZINELP) ? MAXZINELP - 1 : ZZ; - /* - G4cout << "G4ParticleInelasticXS: IsoCrossSection Z= " - << Z << " A= " << A - << " Amin= " << amin[Z] << " Amax= " << amax[Z] - << " E(MeV)= " << ekin << G4endl; - */ auto pv = GetPhysicsVector(Z); - if(pv == nullptr) { return xs; } // compute isotope cross section if applicable - const G4double emax = pv->GetMaxEnergy(); - if(ekin <= emax && amin[Z] < amax[Z] && A >= amin[Z] && A <= amax[Z]) { + if(ekin <= elimit && amin[Z] < amax[Z] && A >= amin[Z] && A <= amax[Z]) { auto pviso = data[index]->GetComponentDataByIndex(Z, A - amin[Z]); if(pviso != nullptr) { xs = pviso->LogVectorValue(ekin, logE); @@ -208,13 +216,10 @@ G4ParticleInelasticXS::IsoCrossSection(G4double ekin, G4double logE, } } // use element x-section - if(ekin <= emax) { - xs = pv->LogVectorValue(ekin, logE); - } else { - xs = coeff[Z][index] * + xs = (ekin <= pv->GetMaxEnergy()) ? pv->LogVectorValue(ekin, logE) + : coeff[Z][index] * highEnergyXsection->GetInelasticElementCrossSection(particle, ekin, Z, aeff[Z]); - } xs *= A/aeff[Z]; #ifdef G4VERBOSE if(verboseLevel > 1) { @@ -231,20 +236,18 @@ G4ParticleInelasticXS::IsoCrossSection(G4double ekin, G4double logE, const G4Isotope* G4ParticleInelasticXS::SelectIsotope( const G4Element* anElement, G4double kinEnergy, G4double logE) { - size_t nIso = anElement->GetNumberOfIsotopes(); + G4int nIso = (G4int)anElement->GetNumberOfIsotopes(); const G4Isotope* iso = anElement->GetIsotope(0); - //G4cout << "SelectIsotope NIso= " << nIso << G4endl; if(1 == nIso) { return iso; } // more than 1 isotope G4int Z = anElement->GetZasInt(); - //G4cout << "SelectIsotope Z= " << Z << G4endl; const G4double* abundVector = anElement->GetRelativeAbundanceVector(); G4double q = G4UniformRand(); G4double sum = 0.0; - size_t j; + G4int j; // isotope wise cross section not available if(amax[Z] == amin[Z] || Z >= MAXZINELP) { @@ -258,12 +261,10 @@ const G4Isotope* G4ParticleInelasticXS::SelectIsotope( return iso; } - size_t nn = temp.size(); + G4int nn = (G4int)temp.size(); if(nn < nIso) { temp.resize(nIso, 0.); } for (j=0; jGetN() - // << " abund= " << abundVector[j] << G4endl; sum += abundVector[j]*IsoCrossSection(kinEnergy, logE, Z, anElement->GetIsotope(j)->GetN()); temp[j] = sum; @@ -298,18 +299,14 @@ G4ParticleInelasticXS::BuildPhysicsTable(const G4ParticleDefinition& p) SetMaxKinEnergy(G4HadronicParameters::Instance()->GetMaxEnergy() * fact); if(data[index] == nullptr) { -#ifdef G4MULTITHREADED - G4MUTEXLOCK(&particleInelasticXSMutex); + G4AutoLock l(&pInelasticXSMutex); if(data[index] == nullptr) { -#endif isMaster = true; data[index] = new G4ElementData(); data[index]->SetName(particle->GetParticleName() + "Inelastic"); FindDirectoryPath(); -#ifdef G4MULTITHREADED } - G4MUTEXUNLOCK(&particleInelasticXSMutex); -#endif + l.unlock(); } // it is possible re-initialisation for the new run @@ -323,9 +320,9 @@ G4ParticleInelasticXS::BuildPhysicsTable(const G4ParticleDefinition& p) } } // prepare isotope selection - size_t nIso = temp.size(); + std::size_t nIso = temp.size(); for ( auto & elm : *table ) { - size_t n = elm->GetNumberOfIsotopes(); + std::size_t n = elm->GetNumberOfIsotopes(); if(n > nIso) { nIso = n; } } temp.resize(nIso, 0.0); @@ -352,15 +349,13 @@ const G4String& G4ParticleInelasticXS::FindDirectoryPath() void G4ParticleInelasticXS::InitialiseOnFly(G4int Z) { -#ifdef G4MULTITHREADED - G4MUTEXLOCK(&particleInelasticXSMutex); - if(nullptr == data[index]->GetElementData(Z)) { -#endif - Initialise(Z); -#ifdef G4MULTITHREADED - } - G4MUTEXUNLOCK(&particleInelasticXSMutex); -#endif + if(nullptr == data[index]->GetElementData(Z)) { + G4AutoLock l(&pInelasticXSMutex); + if(nullptr == data[index]->GetElementData(Z)) { + Initialise(Z); + } + l.unlock(); + } } void G4ParticleInelasticXS::Initialise(G4int Z) @@ -372,13 +367,7 @@ void G4ParticleInelasticXS::Initialise(G4int Z) ost << FindDirectoryPath() << Z ; G4PhysicsVector* v = RetrieveVector(ost, true); data[index]->InitialiseForElement(Z, v); - /* - G4cout << "G4ParticleInelasticXS::Initialise for Z= " << Z - << " idx= " << index - << " Amin= " << amin[Z] - << " Amax= " << amax[Z] - << " " << FindDirectoryPath() << G4endl; - */ + // upload isotope data if(amin[Z] < amax[Z]) { G4int nmax = amax[Z] - amin[Z] + 1; @@ -389,10 +378,6 @@ void G4ParticleInelasticXS::Initialise(G4int Z) ost1 << FindDirectoryPath() << Z << "_" << A; G4PhysicsVector* v1 = RetrieveVector(ost1, false); data[index]->AddComponent(Z, A, v1); - /* - G4cout << " Isotope x-section Z= " << Z << " A= " << A - << " v1= " << v1 << G4endl; - */ } } // smooth transition @@ -401,10 +386,6 @@ void G4ParticleInelasticXS::Initialise(G4int Z) G4double sig2 = highEnergyXsection->GetInelasticElementCrossSection( particle, ehigh, Z, aeff[Z]); coeff[Z][index] = (sig2 > 0.) ? sig1/sig2 : 1.0; - /* - G4cout << "G4ParticleInelasticXS: index= " << index - << " Z= " << Z << " coeff= " << coeff[Z][index] << G4endl; - */ } G4PhysicsVector* diff --git a/source/processes/hadronic/cross_sections/src/G4TauNeutrinoNucleusTotXsc.cc b/source/processes/hadronic/cross_sections/src/G4TauNeutrinoNucleusTotXsc.cc new file mode 100644 index 0000000000..adfba40853 --- /dev/null +++ b/source/processes/hadronic/cross_sections/src/G4TauNeutrinoNucleusTotXsc.cc @@ -0,0 +1,408 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + + +#include "G4TauNeutrinoNucleusTotXsc.hh" +#include "G4PhysicalConstants.hh" +#include "G4SystemOfUnits.hh" +#include "G4DynamicParticle.hh" +#include "G4ParticleTable.hh" +#include "G4IonTable.hh" +#include "G4HadTmpUtil.hh" +#include "G4NistManager.hh" +#include "G4Material.hh" +#include "G4Element.hh" +#include "G4Isotope.hh" +#include "G4ElementVector.hh" + +#include "G4MuonMinus.hh" +#include "G4MuonPlus.hh" + +using namespace std; +using namespace CLHEP; + +G4TauNeutrinoNucleusTotXsc::G4TauNeutrinoNucleusTotXsc() + : G4VCrossSectionDataSet("NuMuNuclTotXsc") +{ + fCofXsc = 1.e-38*cm2/GeV; + + // G4cout<<"fCofXsc = "< 6, 5/9 or 5/6 ? + + fCofS = 5.*fSin2tW*fSin2tW/9.; + fCofL = 1. - fSin2tW + fCofS; + + // G4cout<<"fCosL = "<= fEtc ) + { + result = true; + } + return result; +} + +////////////////////////////////////// + +G4double G4TauNeutrinoNucleusTotXsc::GetElementCrossSection(const G4DynamicParticle* part, + G4int Z, const G4Material* mat ) +{ + G4int Zi(0); + size_t i(0), j(0); + const G4ElementVector* theElementVector = mat->GetElementVector(); + + for ( i = 0; i < theElementVector->size(); ++i ) + { + Zi = (*theElementVector)[i]->GetZasInt(); + if( Zi == Z ) break; + } + const G4Element* elm = (*theElementVector)[i]; + size_t nIso = elm->GetNumberOfIsotopes(); + G4double fact = 0.0; + G4double xsec = 0.0; + const G4Isotope* iso = nullptr; + const G4IsotopeVector* isoVector = elm->GetIsotopeVector(); + const G4double* abundVector = elm->GetRelativeAbundanceVector(); + + for (j = 0; jGetN(); + + if( abundVector[j] > 0.0 && IsIsoApplicable(part, Z, A, elm, mat) ) + { + fact += abundVector[j]; + xsec += abundVector[j]*GetIsoCrossSection( part, Z, A, iso, elm, mat); + } + } + if( fact > 0.0) { xsec /= fact; } + return xsec; +} + +//////////////////////////////////////////////////// +// +// + +G4double G4TauNeutrinoNucleusTotXsc::GetIsoCrossSection(const G4DynamicParticle* aPart, G4int Z, G4int A, + const G4Isotope*, const G4Element*, const G4Material* ) +{ + fCcFactor = fNcFactor = 1.; + fCcTotRatio = 0.25; + + G4double ccnuXsc, ccanuXsc, ncXsc, totXsc(0.); + + G4double energy = aPart->GetTotalEnergy(); + G4String pName = aPart->GetDefinition()->GetParticleName(); + + if( pName == "nu_tau" || pName == "ant_nu_tau" ) energy -= fDtc; // scaling energy for tau-neutrinos + + G4int index = GetEnergyIndex(energy); + + if( index >= fIndex ) + { + G4double pm = proton_mass_c2; + G4double s2 = 2.*energy*pm+pm*pm; + G4double aa = 1.; + G4double bb = 1.085; + G4double mw = 80.385*GeV; + fCcFactor = bb/(1.+ aa*s2/mw/mw); + + G4double mz = 91.1876*GeV; + fNcFactor = bb/(1.+ aa*s2/mz/mz); + } + ccnuXsc = GetNuMuTotCsXsc(index, energy, Z, A); + ccnuXsc *= fCcFactor; + ccanuXsc = GetANuMuTotCsXsc(index, energy, Z, A); + ccanuXsc *= fCcFactor; + + if( pName == "nu_tau") + { + ncXsc = fCofL*ccnuXsc + fCofS*ccanuXsc; + ncXsc *= fNcFactor/fCcFactor; + totXsc = ccnuXsc + ncXsc; + if( totXsc > 0.) fCcTotRatio = ccnuXsc/totXsc; + } + else if( pName == "anti_nu_tau") + { + ncXsc = fCofL*ccanuXsc + fCofS*ccnuXsc; + ncXsc *= fNcFactor/fCcFactor; + totXsc = ccanuXsc + ncXsc; + if( totXsc > 0.) fCcTotRatio = ccanuXsc/totXsc; + } + else return totXsc; + + totXsc *= fCofXsc; + totXsc *= energy; + // totXsc *= A; // incoherent sum over all isotope nucleons + + totXsc *= fBiasingFactor; // biasing up, if set >1 + + fTotXsc = totXsc; + + return totXsc; +} + +///////////////////////////////////////////////////// +// +// Return index of nu/anu energy array corresponding to the neutrino energy + +G4int G4TauNeutrinoNucleusTotXsc::GetEnergyIndex(G4double energy) +{ + G4int i, eIndex = 0; + + for( i = 0; i < fIndex; i++) + { + if( energy <= fNuMuEnergy[i]*GeV ) + { + eIndex = i; + break; + } + } + if( i >= fIndex ) eIndex = i; + // G4cout<<"eIndex = "<GetPDGMass() ) xsc = aa*fNuMuInXsc[0] + nn*fNuMuQeXsc[0]; + if( index <= 0 || energy < fEmc ) xsc = aa*fNuMuInXsc[0] + nn*fNuMuQeXsc[0]; + else if (index >= fIndex) xsc = aa*fNuMuInXsc[fIndex-1] + nn*fNuMuQeXsc[fIndex-1]; + else + { + G4double x1 = fNuMuEnergy[index-1]*GeV; + G4double x2 = fNuMuEnergy[index]*GeV; + G4double y1 = fNuMuInXsc[index-1]; + G4double y2 = fNuMuInXsc[index]; + G4double z1 = fNuMuQeXsc[index-1]; + G4double z2 = fNuMuQeXsc[index]; + + if(x1 >= x2) return aa*fNuMuInXsc[index] + nn*fNuMuQeXsc[index]; + else + { + G4double angle = (y2-y1)/(x2-x1); + inxsc = y1 + (energy-x1)*angle; + angle = (z2-z1)/(x2-x1); + qexsc = z1 + (energy-x1)*angle; + qexsc *= nn; + xsc = inxsc*aa + qexsc; + + if( xsc > 0.) fQEratio = qexsc/xsc; + } + } + return xsc; +} + +///////////////////////////////////////////////////// +// +// anu_mu xsc for index-1, index linear over energy + +G4double G4TauNeutrinoNucleusTotXsc::GetANuMuTotCsXsc(G4int index, G4double energy, G4int zz, G4int aa) +{ + G4double xsc(0.), qexsc(0.), inxsc(0.); + + // if( index <= 0 || energy < theMuonPlus->GetPDGMass() ) xsc = aa*fANuMuInXsc[0] + zz*fANuMuQeXsc[0]; + if( index <= 0 || energy < fEmc ) xsc = aa*fANuMuInXsc[0] + zz*fANuMuQeXsc[0]; + else if (index >= fIndex) xsc = aa*fANuMuInXsc[fIndex-1] + zz*fANuMuQeXsc[fIndex-1]; + else + { + G4double x1 = fNuMuEnergy[index-1]*GeV; + G4double x2 = fNuMuEnergy[index]*GeV; + G4double y1 = fANuMuInXsc[index-1]; + G4double y2 = fANuMuInXsc[index]; + G4double z1 = fANuMuQeXsc[index-1]; + G4double z2 = fANuMuQeXsc[index]; + + if( x1 >= x2 ) return aa*fANuMuInXsc[index] + zz*fANuMuQeXsc[index]; + else + { + G4double angle = (y2-y1)/(x2-x1); + inxsc = y1 + (energy-x1)*angle; + + angle = (z2-z1)/(x2-x1); + qexsc = z1 + (energy-x1)*angle; + qexsc *= zz; + xsc = inxsc*aa + qexsc; + + if( xsc > 0.) fQEratio = qexsc/xsc; + } + } + return xsc; +} + +//////////////////////////////////////////////////////// +// +// return fNuMuTotXsc[index] if the index is in the array range + +G4double G4TauNeutrinoNucleusTotXsc::GetNuMuTotCsArray( G4int index) +{ + if( index >= 0 && index < fIndex) return fNuMuInXsc[index] + fNuMuQeXsc[index]; + else + { + G4cout<<"Improper index of fNuMuTotXsc array"<= 0 && index < fIndex) return fANuMuInXsc[index] + fANuMuQeXsc[index]; + else + { + G4cout<<"Improper index of fANuMuTotXsc array"<GetNumberOfIsotopes(); + std::size_t nIso = elm->GetNumberOfIsotopes(); G4double fact = 0.0; G4double xsec = 0.0; // user-defined isotope abundances const G4IsotopeVector* isoVector = elm->GetIsotopeVector(); const G4double* abundVector = elm->GetRelativeAbundanceVector(); - for (size_t j=0; jGetN(); if(abundVector[j] > 0.0 && IsIsoApplicable(part, Z, A, elm, mat)) { @@ -109,6 +109,26 @@ G4VCrossSectionDataSet::ComputeCrossSection(const G4DynamicParticle* part, return (fact > 0.0) ? xsec/fact : 0.0; } +G4double +G4VCrossSectionDataSet::ComputeCrossSectionPerElement( + G4double kinEnergy, G4double loge, + const G4ParticleDefinition* pd, + const G4Element* elm, const G4Material* mat) +{ + G4int Z = elm->GetZasInt(); + std::size_t nIso = elm->GetNumberOfIsotopes(); + G4double xsec = 0.0; + const G4IsotopeVector* isoVector = elm->GetIsotopeVector(); + const G4double* abundVector = elm->GetRelativeAbundanceVector(); + for (std::size_t j=0; jGetN(); + xsec += abundVector[j]* + ComputeIsoCrossSection(kinEnergy, loge, pd, Z, A, iso, elm, mat); + } + return xsec; +} + G4double G4VCrossSectionDataSet::GetElementCrossSection(const G4DynamicParticle* dynPart, G4int Z, @@ -118,7 +138,7 @@ G4VCrossSectionDataSet::GetElementCrossSection(const G4DynamicParticle* dynPart, ed << "GetElementCrossSection is not implemented in <" << name << ">\n" << "Particle: " << dynPart->GetDefinition()->GetParticleName() << " Ekin(MeV)= " << dynPart->GetKineticEnergy()/MeV; - if(mat) { ed << " material: " << mat->GetName(); } + if(nullptr != mat) { ed << " material: " << mat->GetName(); } ed << " target Z= " << Z << G4endl; G4Exception("G4VCrossSectionDataSet::GetElementCrossSection", "had001", FatalException, ed); @@ -136,8 +156,28 @@ G4VCrossSectionDataSet::GetIsoCrossSection(const G4DynamicParticle* dynPart, ed << "GetIsoCrossSection is not implemented in <" << name << ">\n" << "Particle: " << dynPart->GetDefinition()->GetParticleName() << " Ekin(MeV)= " << dynPart->GetKineticEnergy()/MeV; - if(mat) { ed << " material: " << mat->GetName(); } - if(elm) { ed << " element: " << elm->GetName(); } + if(nullptr != mat) { ed << " material: " << mat->GetName(); } + if(nullptr != elm) { ed << " element: " << elm->GetName(); } + ed << " target Z= " << Z << " A= " << A << G4endl; + G4Exception("G4VCrossSectionDataSet::GetIsoCrossSection", "had001", + FatalException, ed); + return 0.0; +} + +G4double +G4VCrossSectionDataSet::ComputeIsoCrossSection(G4double kinEnergy, G4double, + const G4ParticleDefinition* pd, + G4int Z, G4int A, + const G4Isotope*, + const G4Element* elm, + const G4Material* mat) +{ + G4ExceptionDescription ed; + ed << "GetIsoCrossSection is not implemented in <" << name << ">\n" + << "Particle: " << pd->GetParticleName() + << " Ekin(MeV)= " << kinEnergy/CLHEP::MeV; + if(nullptr != mat) { ed << " material: " << mat->GetName(); } + if(nullptr != elm) { ed << " element: " << elm->GetName(); } ed << " target Z= " << Z << " A= " << A << G4endl; G4Exception("G4VCrossSectionDataSet::GetIsoCrossSection", "had001", FatalException, ed); @@ -148,7 +188,7 @@ const G4Isotope* G4VCrossSectionDataSet::SelectIsotope(const G4Element* anElement, G4double, G4double) { - size_t nIso = anElement->GetNumberOfIsotopes(); + G4int nIso = (G4int)anElement->GetNumberOfIsotopes(); const G4Isotope* iso = anElement->GetIsotope(0); // more than 1 isotope @@ -156,7 +196,7 @@ G4VCrossSectionDataSet::SelectIsotope(const G4Element* anElement, const G4double* abundVector = anElement->GetRelativeAbundanceVector(); G4double sum = 0.0; G4double q = G4UniformRand(); - for (size_t j=0; jGetIsotope(j); diff --git a/source/processes/hadronic/management/History b/source/processes/hadronic/management/History index 1b1d1511f1..164e39522c 100644 --- a/source/processes/hadronic/management/History +++ b/source/processes/hadronic/management/History @@ -1,8 +1,32 @@ # Category hadr-man History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-26 Gabriele Cosmo (hadr-man-V11-00-08) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-11 Alberto Ribon (hadr-man-V11-00-07) +- G4HadronicProcessStore: extended the Dump method for hypertriton and + anti_hypertriton. + +## 2022-08-24 Vladimir Ivanchenko (hadr-man-V11-00-06) +- G4HadronicProcessType - added fNeutronGeneral + +## 2022-08-22 Vladimir Ivanchenko (hadr-man-V11-00-05) +- G4HadronicProcess - make access to target nucleus public needed for + neutron general process + +## 2022-07-01 Alberto Ribon (hadr-man-V11-00-04) +- G4HadronicProcess: removed the temporary check and protection introduced + in the previous tag (see below). This is not needed any longer after + replacing the threshold used for checking the absolute energy + non-conservation from DLB_MAX (implying no checking at all) to 350 GeV + (this value allows for cases where the residual nucleus is not produced, + even when super-heavy nuclides are involved). ## 2022-06-16 Alberto Ribon (hadr-man-V11-00-03) - G4HadronicProcess: temporary check and protection against the crashes diff --git a/source/processes/hadronic/management/include/G4HadronicProcess.hh b/source/processes/hadronic/management/include/G4HadronicProcess.hh index b3bbe4a48b..981810dfa2 100644 --- a/source/processes/hadronic/management/include/G4HadronicProcess.hh +++ b/source/processes/hadronic/management/include/G4HadronicProcess.hh @@ -134,6 +134,8 @@ public: // access to the target nucleus inline const G4Nucleus* GetTargetNucleus() const; + + inline G4Nucleus* GetTargetNucleusPointer(); inline const G4Isotope* GetTargetIsotope(); @@ -179,9 +181,6 @@ protected: inline G4HadronicInteraction* ChooseHadronicInteraction( const G4HadProjectile & aHadProjectile, G4Nucleus& aTargetNucleus, const G4Material* aMaterial, const G4Element* anElement); - - // access to the target nucleus - inline G4Nucleus* GetTargetNucleusPointer(); // access to the cross section data set inline G4double GetLastCrossSection(); @@ -220,7 +219,7 @@ protected: G4ParticleChange* theTotalResult; G4double fWeight = 1.0; - G4int epReportLevel = 0; + G4long epReportLevel = 0; private: diff --git a/source/processes/hadronic/management/include/G4HadronicProcessType.hh b/source/processes/hadronic/management/include/G4HadronicProcessType.hh index 5d36b215ba..26f083f3fa 100644 --- a/source/processes/hadronic/management/include/G4HadronicProcessType.hh +++ b/source/processes/hadronic/management/include/G4HadronicProcessType.hh @@ -41,6 +41,7 @@ enum G4HadronicProcessType { fHadronElastic = 111, + fNeutronGeneral = 116, fHadronInelastic = 121, fCapture = 131, fMuAtomicCapture = 132, diff --git a/source/processes/hadronic/management/src/G4HadronicProcess.cc b/source/processes/hadronic/management/src/G4HadronicProcess.cc index dd8c1c8b6c..d52a388862 100644 --- a/source/processes/hadronic/management/src/G4HadronicProcess.cc +++ b/source/processes/hadronic/management/src/G4HadronicProcess.cc @@ -276,7 +276,7 @@ G4double G4HadronicProcess::PostStepGetPhysicalInteractionLength( if(mat != currentMat) { currentMat = mat; mfpKinEnergy = DBL_MAX; - matIdx = track.GetMaterial()->GetIndex(); + matIdx = (G4int)track.GetMaterial()->GetIndex(); } /* G4cout << GetProcessName() << " E=" << track.GetKineticEnergy() @@ -392,7 +392,7 @@ G4HadronicProcess::PostStepDoIt(const G4Track& aTrack, const G4Step&) G4HadFinalState* result = nullptr; G4int reentryCount = 0; - /* + /* G4cout << "### " << aParticle->GetDefinition()->GetParticleName() << " Ekin(MeV)= " << aParticle->GetKineticEnergy() << " Z= " << targetNucleus.GetZ_asInt() @@ -448,7 +448,7 @@ G4HadronicProcess::PostStepDoIt(const G4Track& aTrack, const G4Step&) // with equal, 50% probability, keeping their dynamical masses (and // the other kinematical properties). // When this happens - very rarely - a "JustWarning" exception is thrown. - G4int nSec = result->GetNumberOfSecondaries(); + G4int nSec = (G4int)result->GetNumberOfSecondaries(); if ( nSec > 0 ) { for ( G4int i = 0; i < nSec; ++i ) { auto dynamicParticle = result->GetSecondary(i)->GetParticle(); @@ -538,7 +538,7 @@ G4HadronicProcess::FillResult(G4HadFinalState * aR, const G4Track & aT) // check secondaries nICelectrons = 0; - G4int nSec = aR->GetNumberOfSecondaries(); + G4int nSec = (G4int)aR->GetNumberOfSecondaries(); theTotalResult->SetNumberOfSecondaries(nSec); G4double time0 = aT.GetGlobalTime(); @@ -547,30 +547,9 @@ G4HadronicProcess::FillResult(G4HadFinalState * aR, const G4Track & aT) // apply rotation G4ThreeVector newDir = dynParticle->GetMomentumDirection(); - G4double secondaryEkinBeforeRotation = dynParticle->GetKineticEnergy(); newDir.rotateUz(dir); dynParticle->SetMomentumDirection(newDir); - // Check energy after Lorentz rotation and boost, and do not create a track - // in the case of unphysical kinetic energy (either before or after the - // Lorentz rotation and boost). - // Note: this only a temporary fix, until we are able to reproduce, understand - // and solve the source of the problem! - G4double secondaryEkinAfterRotation = dynParticle->GetKineticEnergy(); - if ( std::abs( secondaryEkinAfterRotation - secondaryEkinBeforeRotation ) > - G4HadronicParameters::Instance()->GetMaxEnergy() || - secondaryEkinBeforeRotation > G4HadronicParameters::Instance()->GetMaxEnergy() || - secondaryEkinAfterRotation > G4HadronicParameters::Instance()->GetMaxEnergy() ) { - G4ExceptionDescription ed; - ed << " " << dynParticle->GetDefinition()->GetParticleName() - << " Target Z=" << targetNucleus.GetZ_asInt() << " A=" << targetNucleus.GetA_asInt() - << " Ekin(GeV) : before=" << secondaryEkinBeforeRotation/CLHEP::GeV - << " after Lorentz rotation=" << secondaryEkinAfterRotation/CLHEP::GeV - << " -> Unphysical candidate secondary, skip it! " << G4endl; - G4Exception( "G4HadronicProcess::FillResults", "had012", JustWarning, ed ); - continue; // Give up: do not create a track for this candidate secondary - } - // check if secondary is on the mass shell const G4ParticleDefinition* part = dynParticle->GetDefinition(); G4double mass = part->GetPDGMass(); @@ -654,7 +633,7 @@ G4HadFinalState* G4HadronicProcess::CheckResult(const G4HadProjectile & aPro, // Compute final-state total energy G4double finalE(0.); - G4int nSec = result->GetNumberOfSecondaries(); + G4int nSec = (G4int)result->GetNumberOfSecondaries(); nuclearMass = G4NucleiProperties::GetNuclearMass(aNucleus.GetA_asInt(), aNucleus.GetZ_asInt()); @@ -670,7 +649,7 @@ G4HadFinalState* G4HadronicProcess::CheckResult(const G4HadProjectile & aPro, nuclearMass=0.0; } } - for (G4int i = 0; i < nSec; i++) { + for (G4int i = 0; i < nSec; ++i) { G4DynamicParticle *pdyn=result->GetSecondary(i)->GetParticle(); finalE += pdyn->GetTotalEnergy(); G4double mass_pdg=pdyn->GetDefinition()->GetPDGMass(); diff --git a/source/processes/hadronic/management/src/G4HadronicProcessStore.cc b/source/processes/hadronic/management/src/G4HadronicProcessStore.cc index 94066565a6..ea0aea862e 100644 --- a/source/processes/hadronic/management/src/G4HadronicProcessStore.cc +++ b/source/processes/hadronic/management/src/G4HadronicProcessStore.cc @@ -482,7 +482,7 @@ void G4HadronicProcessStore::RegisterExtraProcess(G4VProcess* proc) for(G4int i=0; i(proc); + G4HadronicProcess* hproc = static_cast(proc); if(hproc) { for(G4int i=0; i 1) yes = true; if (yes) { // main processes diff --git a/source/processes/hadronic/models/abla/History b/source/processes/hadronic/models/abla/History index 381a8413c1..2af744156f 100644 --- a/source/processes/hadronic/models/abla/History +++ b/source/processes/hadronic/models/abla/History @@ -6,6 +6,13 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-26 Gabriele Cosmo (hadr-abla-V11-00-05) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-07 Gabriele Cosmo (hadr-abla-V11-00-04) +- Fixed compilation warnings on Intel/icx compiler for variables set + but not used in G4AblaDataDefs header. + ## 2022-04-25 Ben Morgan (hadr-abla-V11-00-03) - Add needed dependencies diff --git a/source/processes/hadronic/models/abla/include/G4AblaDataDefs.hh b/source/processes/hadronic/models/abla/include/G4AblaDataDefs.hh index ac227e83af..c3f5760fea 100644 --- a/source/processes/hadronic/models/abla/include/G4AblaDataDefs.hh +++ b/source/processes/hadronic/models/abla/include/G4AblaDataDefs.hh @@ -452,7 +452,9 @@ public: /** * Dump debugging output. */ - void dump() { + void dump() + { +/* G4int nProton = 0, nNeutron = 0; G4int nPiPlus = 0, nPiZero = 0, nPiMinus = 0; G4int nH2 = 0, nHe3 = 0, nAlpha = 0; @@ -472,6 +474,7 @@ public: if(avv[i] == 4 && zvv[i] == 2) nAlpha++; if( zvv[i] > 2) nFragments++; } +*/ } /** diff --git a/source/processes/hadronic/models/abla/src/G4Abla.cc b/source/processes/hadronic/models/abla/src/G4Abla.cc index 5cc654dcc0..73e5117bc5 100644 --- a/source/processes/hadronic/models/abla/src/G4Abla.cc +++ b/source/processes/hadronic/models/abla/src/G4Abla.cc @@ -6193,7 +6193,7 @@ G4int G4Abla::secnds(G4int x) return(mylocaltime->tm_hour*60*60 + mylocaltime->tm_min*60 + mylocaltime->tm_sec); } else { - return(mytime - x); + return G4int(mytime - x); } } @@ -10219,7 +10219,7 @@ G4double G4Abla::haz(G4int k) { // const G4int pSize = 110; // static G4ThreadLocal G4double p[pSize]; - static G4ThreadLocal G4long ix = 0; + static G4ThreadLocal G4int ix = 0; static G4ThreadLocal G4double x = 0.0, y = 0.0; // k =< -1 on initialise // k = -1 c'est reproductible @@ -10239,7 +10239,7 @@ G4double G4Abla::haz(G4int k) y = secnds(G4int(x)); ix = G4int(y * 100 + 43543000); if(mod(ix,2) == 0) { - ix = ix + 1; + ix = ix + 1; } }} diff --git a/source/processes/hadronic/models/abla/src/G4AblaInterface.cc b/source/processes/hadronic/models/abla/src/G4AblaInterface.cc index 63e47d89ed..c4fdc8f7fe 100644 --- a/source/processes/hadronic/models/abla/src/G4AblaInterface.cc +++ b/source/processes/hadronic/models/abla/src/G4AblaInterface.cc @@ -106,14 +106,14 @@ G4ReactionProductVector *G4AblaInterface::DeExcite(G4Fragment& aFragment) { const G4double pyRem = pRem.y() / MeV; const G4double pzRem = pRem.z() / MeV; - eventNumber++; + ++eventNumber; theABLAModel->DeexcitationAblaxx(ARem, ZRem, eStarRem, jRem, pxRem, pyRem, - pzRem, eventNumber, SRem); + pzRem, (G4int)eventNumber, SRem); G4ReactionProductVector* result = new G4ReactionProductVector; - for(int j = 0; j < ablaResult->ntrack; ++j) + for(G4int j = 0; j < ablaResult->ntrack; ++j) { // Copy ABLA result to the EventInfo G4ReactionProduct* product = toG4Particle(ablaResult->avv[j], ablaResult->zvv[j], ablaResult->svv[j], diff --git a/source/processes/hadronic/models/abrasion/History b/source/processes/hadronic/models/abrasion/History index ea48681240..4c37fc1ebb 100644 --- a/source/processes/hadronic/models/abrasion/History +++ b/source/processes/hadronic/models/abrasion/History @@ -1,11 +1,15 @@ # Category had-abrasion History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- -## 2021-12-10 Ben Morgan (had-abrasion-V11-00-00) +## 2022-11-26 Gabriele Cosmo (hadr-abrasion-V11-00-01) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2021-12-10 Ben Morgan (hadr-abrasion-V11-00-00) - Change to new Markdown History format --- diff --git a/source/processes/hadronic/models/abrasion/src/G4WilsonAbrasionModel.cc b/source/processes/hadronic/models/abrasion/src/G4WilsonAbrasionModel.cc index 333585c966..ee32ce8c7c 100644 --- a/source/processes/hadronic/models/abrasion/src/G4WilsonAbrasionModel.cc +++ b/source/processes/hadronic/models/abrasion/src/G4WilsonAbrasionModel.cc @@ -423,7 +423,7 @@ G4HadFinalState *G4WilsonAbrasionModel::ApplyYourself ( // G4ThreeVector boost = pP.findBoostToCM(); G4Fragment *fragmentP = GetAbradedNucleons (Dabr, AP, ZP, rP); - G4int nSecP = theParticleChange.GetNumberOfSecondaries(); + G4int nSecP = (G4int)theParticleChange.GetNumberOfSecondaries(); G4int i = 0; for (i=0; i diff --git a/source/processes/hadronic/models/binary_cascade/History b/source/processes/hadronic/models/binary_cascade/History index 8a6edd6f29..c163ae27ad 100644 --- a/source/processes/hadronic/models/binary_cascade/History +++ b/source/processes/hadronic/models/binary_cascade/History @@ -1,14 +1,28 @@ # Category had-binary History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-26 Gabriele Cosmo (had-binary-V11-00-04) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-25 Alberto Ribon (had-binary-V11-00-03) +- G4GeneratorPrecompoundInterface: in the PropagateNuclNucl method, in the + case of anti-nucleus projectile, convert also lambdas into anti-lambdas + after the de-excitation (which assumes a projectile nucleus). + +## 2022-10-07 Gabriele Cosmo (had-binary-V11-00-02) +- Fixed compilation warnings on Intel/icx compiler for variables set + but not used in G4BinaryCascade. ## 2022-05-25 Alberto Ribon (had-binary-V11-00-01) -- `G4GeneratorPrecompoundInterface`, `G4BinaryCascade`: propagate the information - on parent resonance (in the `G4BinaryCascade::ApplyYourself` method, - from `G4ReactionProduct` to `G4HadSecondary`, in other methods - from `G4KineticTrack` to `G4ReactionProduct`) +- G4GeneratorPrecompoundInterface, G4BinaryCascade: propagate the information + on parent resonance (in the G4BinaryCascade::ApplyYourself method, + from G4ReactionProduct to G4HadSecondary, in other methods + from G4KineticTrack to G4ReactionProduct) ## 2021-12-10 Ben Morgan (had-binary-V11-00-00) - Change to new Markdown History format diff --git a/source/processes/hadronic/models/binary_cascade/include/G4GeneratorPrecompoundInterface.hh b/source/processes/hadronic/models/binary_cascade/include/G4GeneratorPrecompoundInterface.hh index ac61435023..00e6143572 100644 --- a/source/processes/hadronic/models/binary_cascade/include/G4GeneratorPrecompoundInterface.hh +++ b/source/processes/hadronic/models/binary_cascade/include/G4GeneratorPrecompoundInterface.hh @@ -95,6 +95,7 @@ private: const G4ParticleDefinition* proton; const G4ParticleDefinition* neutron; + const G4ParticleDefinition* lambda; const G4ParticleDefinition* deuteron; const G4ParticleDefinition* triton; diff --git a/source/processes/hadronic/models/binary_cascade/src/G4BinaryCascade.cc b/source/processes/hadronic/models/binary_cascade/src/G4BinaryCascade.cc index 2de84290b7..b2769105b1 100644 --- a/source/processes/hadronic/models/binary_cascade/src/G4BinaryCascade.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4BinaryCascade.cc @@ -457,8 +457,10 @@ G4ReactionProductVector * G4BinaryCascade::Propagate( G4bool haveProducts = false; +#ifdef debug_BIC_Propagate_Collisions G4int collisionCount=0; - G4int collisionLoopMaxCount=1000000; +#endif + G4int collisionLoopMaxCount=1000000; while(theCollisionMgr->Entries() > 0 && currentZ && --collisionLoopMaxCount>0) /* Loop checking, 31.08.2015, G.Folger */ { if(Absorb()) { // absorb secondaries, pions only @@ -495,9 +497,9 @@ G4ReactionProductVector * G4BinaryCascade::Propagate( { //G4cerr << "ApplyCollision success " << G4endl; haveProducts = true; +#ifdef debug_BIC_Propagate_Collisions collisionCount++; - //_CheckChargeAndBaryonNumber_("ApplyCollision"); - //_DebugEpConservation("ApplyCollision"); +#endif } else { //G4cerr << "ApplyCollision failure " << G4endl; @@ -1691,7 +1693,6 @@ void G4BinaryCascade::StepParticlesOut() while( theSecondaryList.size() > 0 ) /* Loop checking, 31.08.2015, G.Folger */ // if countreset reaches limit, there is a break from while, see below. { - 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; @@ -1700,7 +1701,6 @@ void G4BinaryCascade::StepParticlesOut() G4KineticTrack * kt = *i; if( kt->GetState() == G4KineticTrack::inside ) { - nsec++; G4double tStep(0), tdummy(0); G4bool intersect = ((G4RKPropagation*)thePropagator)->GetSphereIntersectionTimes(kt,tdummy,tStep); @@ -1724,7 +1724,6 @@ void G4BinaryCascade::StepParticlesOut() } } minTimeStep *= 1.2; - // G4cerr << "CaptureCount = "<Entries() > 0) @@ -1920,11 +1919,9 @@ void G4BinaryCascade::CorrectFinalPandE() G4cerr << " -CorrectFinalPandE 3" << G4endl; #endif G4LorentzVector pFinals(0); - G4int nFinals(0); for(i = theFinalState.begin(); i != theFinalState.end(); ++i) { pFinals += (*i)->Get4Momentum(); - ++nFinals; #ifdef debug_BIC_CorrectFinalPandE G4cout <<"CorrectFinalPandE a final " << (*i)->GetDefinition()->GetParticleName() << " 4mom " << (*i)->Get4Momentum()<< G4endl; @@ -1978,7 +1975,6 @@ void G4BinaryCascade::CorrectFinalPandE() { G4ThreeVector p3finals=pInCM*pFinals.vect().unit(); - // G4ThreeVector deltap=(p3finals - pFinals.vect() ) / nFinals; G4double factor=std::max(0.98,pInCM/pFinals.vect().mag()); // small correction G4LorentzVector qFinals(0); for(i = theFinalState.begin(); i != theFinalState.end(); ++i) @@ -2496,7 +2492,7 @@ G4Fragment * G4BinaryCascade::FindFragments() << G4endl; #endif - G4int a = theTargetList.size()+theCapturedList.size(); + G4int a = G4int(theTargetList.size()+theCapturedList.size()); G4int zTarget = 0; G4KineticTrackVector::iterator i; for(i = theTargetList.begin(); i != theTargetList.end(); ++i) @@ -2543,8 +2539,8 @@ G4Fragment * G4BinaryCascade::FindFragments() // if(getenv("BCDEBUG") ) G4cerr << "Fragment A, Z "<< a <<" "<< z<GetMassNumber() - theTargetList.size(); - G4int excitons = theCapturedList.size(); + G4int holes = G4int(the3DNucleus->GetMassNumber() - theTargetList.size()); + G4int excitons = (G4int)theCapturedList.size(); #ifdef debug_BIC_FindFragments G4cout << "Fragment: a= " << a << " z= " << z << " particles= " << excitons << " Charged= " << zCaptured << " holes= " << holes @@ -2891,11 +2887,11 @@ G4ReactionProductVector * G4BinaryCascade::FillVoidNucleusProducts(G4ReactionPro // return product when nucleus is destroyed, i.e. charge=0, or theTargetList.size()=0 G4double Esecondaries(0.); G4LorentzVector psecondaries; - std::vector::iterator iter; - std::vector::iterator rpiter; + std::vector::const_iterator iter; + std::vector::const_iterator rpiter; decayKTV.Decay(&theFinalState); - for(iter = theFinalState.begin(); iter != theFinalState.end(); ++iter) + for(iter = theFinalState.cbegin(); iter != theFinalState.cend(); ++iter) { G4ReactionProduct * aNew = new G4ReactionProduct((*iter)->GetDefinition()); aNew->SetMomentum((*iter)->Get4Momentum().vect()); @@ -2951,7 +2947,7 @@ G4ReactionProductVector * G4BinaryCascade::FillVoidNucleusProducts(G4ReactionPro transferCorrection= theMomentumTransfer /(theSecondaryList.size() + theCapturedList.size()); } - for(iter = theSecondaryList.begin(); iter != theSecondaryList.end(); ++iter) + for(iter = theSecondaryList.cbegin(); iter != theSecondaryList.cend(); ++iter) { G4ReactionProduct * aNew = new G4ReactionProduct((*iter)->GetDefinition()); (*iter)->Update4Momentum((*iter)->Get4Momentum().vect()+transferCorrection); @@ -2966,7 +2962,7 @@ G4ReactionProductVector * G4BinaryCascade::FillVoidNucleusProducts(G4ReactionPro products->push_back(aNew); } - for(iter = theCapturedList.begin(); iter != theCapturedList.end(); ++iter) + for(iter = theCapturedList.cbegin(); iter != theCapturedList.cend(); ++iter) { G4ReactionProduct * aNew = new G4ReactionProduct((*iter)->GetDefinition()); (*iter)->Update4Momentum((*iter)->Get4Momentum().vect()+transferCorrection); @@ -2983,7 +2979,7 @@ G4ReactionProductVector * G4BinaryCascade::FillVoidNucleusProducts(G4ReactionPro G4double SumMassNucleons(0.); G4LorentzVector pNucleons(0.); - for(iter = theTargetList.begin(); iter != theTargetList.end(); ++iter) + for(iter = theTargetList.cbegin(); iter != theTargetList.cend(); ++iter) { SumMassNucleons += (*iter)->GetDefinition()->GetPDGMass(); pNucleons += (*iter)->Get4Momentum(); @@ -3002,7 +2998,7 @@ G4ReactionProductVector * G4BinaryCascade::FillVoidNucleusProducts(G4ReactionPro G4double Ekineticrdm(0); if (theTargetList.size()) Ekineticrdm = ( 0.1 + G4UniformRand()*5.) * MeV; // leave some Energy for Nucleons G4double TotalEkin(Ekineticrdm); - for (rpiter=products->begin(); rpiter!=products->end(); ++rpiter){ + for (rpiter=products->cbegin(); rpiter!=products->cend(); ++rpiter){ TotalEkin+=(*rpiter)->GetKineticEnergy(); } G4double correction(1.); @@ -3015,7 +3011,7 @@ G4ReactionProductVector * G4BinaryCascade::FillVoidNucleusProducts(G4ReactionPro } #endif - for (rpiter=products->begin(); rpiter!=products->end(); ++rpiter){ + for (rpiter=products->cbegin(); rpiter!=products->cend(); ++rpiter){ (*rpiter)->SetKineticEnergy((*rpiter)->GetKineticEnergy()*correction); // this sets kinetic & total energy (*rpiter)->SetMomentum((*rpiter)->GetTotalMomentum() * (*rpiter)->GetMomentum().unit()); @@ -3026,7 +3022,7 @@ G4ReactionProductVector * G4BinaryCascade::FillVoidNucleusProducts(G4ReactionPro } - for(iter = theTargetList.begin(); iter != theTargetList.end(); ++iter) { + for(iter = theTargetList.cbegin(); iter != theTargetList.cend(); ++iter) { // set Nucleon it to be hit - as it is in fact (*iter)->Hit(); G4ReactionProduct * aNew = new G4ReactionProduct((*iter)->GetDefinition()); @@ -3041,7 +3037,7 @@ G4ReactionProductVector * G4BinaryCascade::FillVoidNucleusProducts(G4ReactionPro psecondaries += G4LorentzVector(aNew->GetMomentum(),aNew->GetTotalEnergy() ); } psecondaries=G4LorentzVector(0); - for (rpiter=products->begin(); rpiter!=products->end(); ++rpiter){ + for (rpiter=products->cbegin(); rpiter!=products->cend(); ++rpiter){ psecondaries += G4LorentzVector((*rpiter)->GetMomentum(),(*rpiter)->GetTotalEnergy() ); } @@ -3055,24 +3051,22 @@ G4ReactionProductVector * G4BinaryCascade::FillVoidNucleusProducts(G4ReactionPro SumMom=initial4Mom.vect()-SumMom; G4int loopcount(0); - std::vector::reverse_iterator reverse; // start to correct last added first + // reverse_iterator reverse - start to correct last added first while ( SumMom.mag() > 0.1*MeV && loopcount++ < 10) /* Loop checking, 31.08.2015, G.Folger */ { - G4int index=products->size(); - for (reverse=products->rbegin(); reverse!=products->rend(); ++reverse, --index){ - SumMom=initial4Mom.vect(); - for (rpiter=products->begin(); rpiter!=products->end(); ++rpiter){ - SumMom-=(*rpiter)->GetMomentum(); - } - - G4double p=((*reverse)->GetMomentum()).mag(); - (*reverse)->SetMomentum( p*(((*reverse)->GetMomentum()+SumMom).unit())); - - } + G4int index=(G4int)products->size(); + for (auto reverse=products->crbegin(); reverse!=products->crend(); ++reverse, --index){ + SumMom=initial4Mom.vect(); + for (rpiter=products->cbegin(); rpiter!=products->cend(); ++rpiter){ + SumMom-=(*rpiter)->GetMomentum(); + } + G4double p=((*reverse)->GetMomentum()).mag(); + (*reverse)->SetMomentum( p*(((*reverse)->GetMomentum()+SumMom).unit())); + } } - return products; } + G4ReactionProductVector * G4BinaryCascade::HighEnergyModelFSProducts(G4ReactionProductVector * products, G4KineticTrackVector * secondaries) { diff --git a/source/processes/hadronic/models/binary_cascade/src/G4GeneratorPrecompoundInterface.cc b/source/processes/hadronic/models/binary_cascade/src/G4GeneratorPrecompoundInterface.cc index 863130faa4..83b9a585dc 100644 --- a/source/processes/hadronic/models/binary_cascade/src/G4GeneratorPrecompoundInterface.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4GeneratorPrecompoundInterface.cc @@ -49,6 +49,7 @@ #include "G4KineticTrackVector.hh" #include "G4Proton.hh" #include "G4Neutron.hh" +#include "G4Lambda.hh" #include "G4Deuteron.hh" #include "G4Triton.hh" @@ -60,6 +61,7 @@ #include "G4AntiProton.hh" #include "G4AntiNeutron.hh" +#include "G4AntiLambda.hh" #include "G4AntiDeuteron.hh" #include "G4AntiTriton.hh" #include "G4AntiHe3.hh" @@ -100,6 +102,7 @@ G4GeneratorPrecompoundInterface::G4GeneratorPrecompoundInterface(G4VPreCompoundM { proton = G4Proton::Proton(); neutron = G4Neutron::Neutron(); + lambda = G4Lambda::Lambda(); deuteron=G4Deuteron::Deuteron(); triton =G4Triton::Triton(); @@ -747,6 +750,7 @@ PropagateNuclNucl(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus const G4ParticleDefinition * LastFragment=aFragment; if (aFragment == proton) {LastFragment=G4AntiProton::AntiProtonDefinition();} else if(aFragment == neutron) {LastFragment=G4AntiNeutron::AntiNeutronDefinition();} + else if(aFragment == lambda) {LastFragment=G4AntiLambda::AntiLambdaDefinition();} else if(aFragment == deuteron){LastFragment=G4AntiDeuteron::AntiDeuteronDefinition();} else if(aFragment == triton) {LastFragment=G4AntiTriton::AntiTritonDefinition();} else if(aFragment == He3) {LastFragment=G4AntiHe3::AntiHe3Definition();} @@ -802,7 +806,7 @@ void G4GeneratorPrecompoundInterface::MakeCoalescence(G4KineticTrackVector *trac G4double MassCut = deuteron->GetPDGMass() + DeltaM; // In MeV - for ( size_t i = 0; i < tracks->size(); ++i ) { // search for protons + for ( std::size_t i = 0; i < tracks->size(); ++i ) { // search for protons G4KineticTrack* trackP = (*tracks)[i]; if ( ! trackP ) continue; @@ -811,7 +815,7 @@ void G4GeneratorPrecompoundInterface::MakeCoalescence(G4KineticTrackVector *trac G4LorentzVector Prot4Mom = trackP->Get4Momentum(); G4LorentzVector ProtSPposition = G4LorentzVector(trackP->GetPosition(), trackP->GetFormationTime()); - for ( size_t j = 0; j < tracks->size(); ++j ) { // search for neutron + for ( std::size_t j = 0; j < tracks->size(); ++j ) { // search for neutron G4KineticTrack* trackN = (*tracks)[j]; if (! trackN ) continue; @@ -837,9 +841,7 @@ void G4GeneratorPrecompoundInterface::MakeCoalescence(G4KineticTrackVector *trac } // Find and remove null pointers created by decays above - for ( int jj = tracks->size()-1; jj >= 0; --jj ) { + for ( G4int jj = (G4int)tracks->size()-1; jj >= 0; --jj ) { if ( ! (*tracks)[jj] ) tracks->erase(tracks->begin()+jj); } - } - diff --git a/source/processes/hadronic/models/binary_cascade/src/G4RKFieldIntegrator.cc b/source/processes/hadronic/models/binary_cascade/src/G4RKFieldIntegrator.cc index c937adba0e..83cc37fa8e 100644 --- a/source/processes/hadronic/models/binary_cascade/src/G4RKFieldIntegrator.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4RKFieldIntegrator.cc @@ -60,13 +60,13 @@ G4double G4RKFieldIntegrator::CalculateTotalEnergy(const G4KineticTrackVector& B const G4double GammaY = 1.4*fermi; G4double Etot = 0; - G4int nBarion = Barions.size(); - for(G4int c1 = 0; c1 < nBarion; c1++) + G4int nBarion = (G4int)Barions.size(); + for(G4int c1 = 0; c1 < nBarion; ++c1) { G4KineticTrack* p1 = Barions.operator[](c1); // Ekin Etot += p1->Get4Momentum().e(); - for(G4int c2 = c1 + 1; c2 < nBarion; c2++) + for(G4int c2 = c1 + 1; c2 < nBarion; ++c2) { G4KineticTrack* p2 = Barions.operator[](c2); G4double r12 = (p1->GetPosition() - p2->GetPosition()).mag()*fermi; @@ -186,7 +186,7 @@ G4double G4RKFieldIntegrator::GetExcitationEnergy(G4int nHitNucleons, const G4Ki { const G4double MeanE = 50; G4double Sum = 0; - for(G4int c1 = 0; c1 < nHitNucleons; c1++) + for(G4int c1 = 0; c1 < nHitNucleons; ++c1) { Sum += -MeanE*G4Log(G4UniformRand()); } @@ -198,7 +198,7 @@ G4double G4RKFieldIntegrator::GetExcitationEnergy(G4int nHitNucleons, const G4Ki //This is free propagation of particles for CASCADE mode. Target nucleons should be frozen void G4RKFieldIntegrator::Integrate(G4KineticTrackVector& theParticles) { - for(G4int cParticle = 0; cParticle < theParticles.length(); cParticle++) + for(G4int cParticle = 0; cParticle < theParticles.length(); ++cParticle) { G4KineticTrack* pKineticTrack = theParticles.at(cParticle); pKineticTrack->SetPosition(pKineticTrack->GetPosition() + theTimeStep*pKineticTrack->Get4Momentum().boostVector()); @@ -209,7 +209,7 @@ void G4RKFieldIntegrator::Integrate(G4KineticTrackVector& theParticles) void G4RKFieldIntegrator::Integrate(const G4KineticTrackVector& theBarions, G4double theTimeStep) { - for(size_t cParticle = 0; cParticle < theBarions.size(); cParticle++) + for(std::size_t cParticle = 0; cParticle < theBarions.size(); ++cParticle) { G4KineticTrack* pKineticTrack = theBarions[cParticle]; pKineticTrack->SetPosition(pKineticTrack->GetPosition() + theTimeStep*pKineticTrack->Get4Momentum().boostVector()); diff --git a/source/processes/hadronic/models/cascade/History b/source/processes/hadronic/models/cascade/History index 008c6a8aa4..1a42ee3f73 100644 --- a/source/processes/hadronic/models/cascade/History +++ b/source/processes/hadronic/models/cascade/History @@ -6,6 +6,20 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-26 Gabriele Cosmo (hadr-casc-V11-00-05) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-13 Alberto Ribon (hadr-casc-V11-00-04) +(Two bug-fixes found and suggested by Sven Menke) +- G4NumIntTwoBodyAngDst.hh : corrected the incomplete initialization of the + vector angDist (fixing bug #2515). +- G4TwoBodyAngularDist.cc : corrected the charge exchange reaction of pion+ on + neutron producing in the final state pion0 and proton (fixing bug #2516) + +## 2022-08-26 Gabriele Cosmo (hadr-casc-V11-00-03) +- Attempt to fix compilation warning on gcc-12.1 for + G4CascadeParamMessenger::CreateDirectory(). + ## 2022-05-23 Gabriele Cosmo (hadr-casc-V11-00-02) - Fixed wrong comparison between two arrays in findCrossSection(..) for G4CascadePPChannel, G4CascadeNPChanneland G4CascadeNNChannel. diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4CascadeSampler.hh b/source/processes/hadronic/models/cascade/cascade/include/G4CascadeSampler.hh index 5272e1d2de..3f92027de2 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4CascadeSampler.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4CascadeSampler.hh @@ -39,7 +39,7 @@ #include #include -template +template class G4CascadeSampler { public: enum { energyBins=NBINS, multBins=NMULT }; // For use in function arguments @@ -50,7 +50,7 @@ public: virtual ~G4CascadeSampler() {} virtual G4double - findCrossSection(double ke, const G4double (&xsec)[energyBins]) const; + findCrossSection(G4double ke, const G4double (&xsec)[energyBins]) const; virtual G4int findMultiplicity(G4double ke, const G4double xmult[][energyBins]) const; diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4CascadeSampler.icc b/source/processes/hadronic/models/cascade/cascade/include/G4CascadeSampler.icc index 8be9e30b36..55f46a5ff2 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4CascadeSampler.icc +++ b/source/processes/hadronic/models/cascade/cascade/include/G4CascadeSampler.icc @@ -41,14 +41,14 @@ #include -template inline +template inline G4double G4CascadeSampler:: -findCrossSection(double ke, +findCrossSection(G4double ke, const G4double (&xsec)[energyBins]) const { return interpolator.interpolate(ke, xsec); } -template inline +template inline G4int G4CascadeSampler:: findMultiplicity(G4double ke, const G4double xmult[][energyBins]) const { @@ -56,7 +56,7 @@ findMultiplicity(G4double ke, return sampleFlat() + 2; // Convert array index to actual mult (2 to 7) } -template inline +template inline G4int G4CascadeSampler:: findFinalStateIndex(G4int mult, G4double ke, const G4int index[], const G4double xsec[][energyBins]) const { @@ -69,7 +69,7 @@ findFinalStateIndex(G4int mult, G4double ke, const G4int index[], } // Optional start/stop arguments default to multiplicity arrays -template inline +template inline void G4CascadeSampler:: fillSigmaBuffer(G4double ke, const G4double x[][energyBins], G4int startBin, G4int stopBin) const { @@ -78,14 +78,14 @@ fillSigmaBuffer(G4double ke, const G4double x[][energyBins], // NOTE: push_back() must be used to ensure that size() gets set! sigmaBuf.reserve(stopBin-startBin); - for(G4int i = startBin; i < stopBin; i++) + for(G4int i = startBin; i < stopBin; ++i) sigmaBuf.push_back(interpolator.interpolate(ke, x[i])); } -template inline +template inline G4int G4CascadeSampler::sampleFlat() const { - G4int nbins = sigmaBuf.size(); + G4int nbins = (G4int)sigmaBuf.size(); if (nbins <= 1) return 0; // Avoid unnecessary work #ifdef G4CASCADE_DEBUG_SAMPLER @@ -96,7 +96,7 @@ G4int G4CascadeSampler::sampleFlat() const { G4int i; G4double fsum = 0.; - for (i = 0; i < nbins; i++) fsum += sigmaBuf[i]; + for (i = 0; i < nbins; ++i) fsum += sigmaBuf[i]; #ifdef G4CASCADE_DEBUG_SAMPLER G4cout << " buffer total (fsum) " << fsum; #endif @@ -106,7 +106,7 @@ G4int G4CascadeSampler::sampleFlat() const { #endif G4double partialSum = 0.0; - for (i = 0; i < nbins; i++) { + for (i = 0; i < nbins; ++i) { partialSum += sigmaBuf[i]; if (fsum < partialSum) return i; // Breaks out of loop automatically } @@ -115,7 +115,7 @@ G4int G4CascadeSampler::sampleFlat() const { } -template inline +template inline void G4CascadeSampler::print(std::ostream& os) const { interpolator.printBins(os); } diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4CollisionOutput.hh b/source/processes/hadronic/models/cascade/cascade/include/G4CollisionOutput.hh index e5be90c59a..44dd84745e 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4CollisionOutput.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4CollisionOutput.hh @@ -62,9 +62,10 @@ class G4CascadParticle; class G4LorentzConvertor; +class G4CollisionOutput +{ + public: -class G4CollisionOutput { -public: G4CollisionOutput(); G4CollisionOutput& operator=(const G4CollisionOutput& right); @@ -121,7 +122,7 @@ public: // ===== Access contents of lists ===== - G4int numberOfOutgoingParticles() const { return outgoingParticles.size(); } + G4int numberOfOutgoingParticles() const { return (G4int)outgoingParticles.size(); } const std::vector& getOutgoingParticles() const { return outgoingParticles; @@ -131,7 +132,7 @@ public: return outgoingParticles; }; - G4int numberOfOutgoingNuclei() const { return outgoingNuclei.size(); }; + G4int numberOfOutgoingNuclei() const { return (G4int)outgoingNuclei.size(); }; const std::vector& getOutgoingNuclei() const { return outgoingNuclei; @@ -139,7 +140,7 @@ public: std::vector& getOutgoingNuclei() { return outgoingNuclei; }; - G4int numberOfFragments() const { return recoilFragments.size(); } + G4int numberOfFragments() const { return (G4int)recoilFragments.size(); } const G4Fragment& getRecoilFragment(G4int index=0) const; @@ -169,10 +170,11 @@ public: void setOnShell(G4InuclParticle* bullet, G4InuclParticle* target); void setRemainingExitationEnergy(); - double getRemainingExitationEnergy() const { return eex_rest; }; + G4double getRemainingExitationEnergy() const { return eex_rest; }; G4bool acceptable() const { return on_shell; }; -private: + private: + G4int verboseLevel; std::vector outgoingParticles; diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4NumIntTwoBodyAngDst.hh b/source/processes/hadronic/models/cascade/cascade/include/G4NumIntTwoBodyAngDst.hh index 25a15712e9..1e34f1b1c1 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4NumIntTwoBodyAngDst.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4NumIntTwoBodyAngDst.hh @@ -51,7 +51,7 @@ public: const G4double highKEscale, G4int verbose = 0) : G4VTwoBodyAngDst(name, verbose), tcoeff(highKEscale), labKE(kebins), cosBins(angles), angDists(dists) { - std::fill(angDist, angDist+nDists, 0.); // Initialize working buffer + std::fill(angDist, angDist+nAngles, 0.); // Initialize working buffer } virtual ~G4NumIntTwoBodyAngDst() {;} diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4CascadeCoalescence.cc b/source/processes/hadronic/models/cascade/cascade/src/G4CascadeCoalescence.cc index 8082d49ef7..aec1861501 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4CascadeCoalescence.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4CascadeCoalescence.cc @@ -201,9 +201,8 @@ void G4CascadeCoalescence::removeNucleons() { G4cout << " >>> G4CascadeCoalescence::removeNucleons()" << G4endl; // Remove nucleons from output from last to first (to preserve indexing) - std::set::reverse_iterator usedIter; - for (usedIter = usedNucleons.rbegin(); usedIter != usedNucleons.rend(); ++usedIter) - thisFinalState->removeOutgoingParticle(*usedIter); + for (auto usedIter = usedNucleons.crbegin(); usedIter != usedNucleons.crend(); ++usedIter) + thisFinalState->removeOutgoingParticle((G4int)*usedIter); usedNucleons.clear(); } @@ -323,7 +322,7 @@ bool G4CascadeCoalescence::makeLightIon(const ClusterCandidate& aCluster) { if (aCluster.size()<2) return false; // Sanity check - G4int A = aCluster.size(); + G4int A = (G4int)aCluster.size(); G4int Z = -1; G4int type = clusterType(aCluster); diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4CascadeFinalStateAlgorithm.cc b/source/processes/hadronic/models/cascade/cascade/src/G4CascadeFinalStateAlgorithm.cc index 1c5a889818..79532b170d 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4CascadeFinalStateAlgorithm.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4CascadeFinalStateAlgorithm.cc @@ -96,7 +96,7 @@ Configure(G4InuclElementaryParticle* bullet, G4cout << " >>> " << GetName() << "::Configure" << G4endl; // Identify initial and final state (if two-body) for algorithm selection - multiplicity = particle_kinds.size(); + multiplicity = (G4int)particle_kinds.size(); G4int is = bullet->type() * target->type(); G4int fs = (multiplicity==2) ? particle_kinds[0]*particle_kinds[1] : 0; @@ -469,7 +469,7 @@ FillUsingKopylov(G4double initialMass, finalState.clear(); - size_t N = masses.size(); + std::size_t N = masses.size(); finalState.resize(N); G4double mtot = std::accumulate(masses.begin(), masses.end(), 0.0); @@ -480,9 +480,9 @@ FillUsingKopylov(G4double initialMass, G4ThreeVector momV, boostV; // Buffers to reduce memory churn G4LorentzVector recoil(0.0,0.0,0.0,Mass); - for (size_t k=N-1; k>0; --k) { + for (std::size_t k=N-1; k>0; --k) { mu -= masses[k]; - T *= (k>1) ? BetaKopylov(k) : 0.; + T *= (k>1) ? BetaKopylov((G4int)k) : 0.; recoilMass = mu + T; diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4CascadeParamMessenger.cc b/source/processes/hadronic/models/cascade/cascade/src/G4CascadeParamMessenger.cc index 276c58361a..56358a8ff9 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4CascadeParamMessenger.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4CascadeParamMessenger.cc @@ -136,8 +136,8 @@ void G4CascadeParamMessenger::CreateDirectory(const char* path, // Directory path must be absolute, prepend "/" if ncessary G4String fullPath = path; - if (fullPath[0] != '/') fullPath.insert(0, "/"); - if (fullPath.back() != '/') fullPath.append("/"); + if (fullPath[0] != '/') fullPath.insert(0, '/', 1); + if (fullPath.back() != '/') fullPath.append('/', 1); // See if input path has already been registered G4UIcommand* foundPath = UIman->GetTree()->FindPath(fullPath); diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4ElementaryParticleCollider.cc b/source/processes/hadronic/models/cascade/cascade/src/G4ElementaryParticleCollider.cc index d0835cdccf..15e2d8491b 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4ElementaryParticleCollider.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4ElementaryParticleCollider.cc @@ -423,12 +423,12 @@ G4ElementaryParticleCollider::generateSCMfinalState(G4double ekin, // Use generated list of final states to fill mass buffers void G4ElementaryParticleCollider::fillOutgoingMasses() { - G4int mult = particle_kinds.size(); + std::size_t mult = particle_kinds.size(); masses.resize(mult,0.); masses2.resize(mult,0.); // Allows direct [i] setting - for (G4int i = 0; i < mult; i++) { + for (std::size_t i = 0; i < mult; ++i) { masses[i] = G4InuclElementaryParticle::getParticleMass(particle_kinds[i]); masses2[i] = masses[i] * masses[i]; } @@ -544,7 +544,7 @@ G4ElementaryParticleCollider::generateSCMmuonAbsorption(G4double etot_scm, return; } - for (size_t i=0; i<3; i++) { + for (std::size_t i=0; i<3; ++i) { scm_momentums[i].setVectM(theMomenta[i], masses[i]); particles[i].fill(scm_momentums[i], particle_kinds[i], G4InuclParticle::EPCollider); } diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4Fissioner.cc b/source/processes/hadronic/models/cascade/cascade/src/G4Fissioner.cc index 92dd6372d5..5bdafd1225 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4Fissioner.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4Fissioner.cc @@ -144,7 +144,7 @@ void G4Fissioner::deExcite(const G4Fragment& target, }; }; - G4int store_size = fissionStore.size(); + std::size_t store_size = fissionStore.size(); if (store_size == 0) return; // No fission products G4FissionConfiguration config = diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4NuclWatcher.cc b/source/processes/hadronic/models/cascade/cascade/src/G4NuclWatcher.cc index 34ee9337b4..2577a1e5d6 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4NuclWatcher.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4NuclWatcher.cc @@ -52,8 +52,8 @@ void G4NuclWatcher::watch(G4int a, G4int z) { if (std::abs(z-nuclz) >= small) return; G4bool here = false; // Increment specified nucleus count - G4int simulatedAsSize = simulated_as.size(); - for (G4int i = 0; i G4NuclWatcher::getExpCs() const { G4double cs = 0.0; G4double err = 0.0; - G4int experAsSize = exper_as.size(); - for(G4int iz = 0; iz < experAsSize; iz++) { + std::size_t experAsSize = exper_as.size(); + for(std::size_t iz = 0; iz < experAsSize; ++iz) { cs += exper_cs[iz]; err += exper_err[iz]; } @@ -93,8 +93,8 @@ std::pair G4NuclWatcher::getExpCs() const { std::pair G4NuclWatcher::getInuclCs() const { G4double cs = 0.0; G4double err = 0.0; - G4int simulatedAsSize = simulated_as.size(); - for(G4int iz = 0; iz < simulatedAsSize; iz++) { + std::size_t simulatedAsSize = simulated_as.size(); + for(std::size_t iz = 0; iz < simulatedAsSize; ++iz) { cs += simulated_cs[iz]; err += simulated_errors[iz]; } @@ -116,20 +116,20 @@ void G4NuclWatcher::print() { G4double inucl_cs = 0.0; G4double inucl_cs_err = 0.0; std::vector not_used(simulated_cs.size(), true); - G4int nmatched = exper_as.size(); - G4int nused = simulated_cs.size(); + std::size_t nmatched = exper_as.size(); + std::size_t nused = simulated_cs.size(); G4double lhood = 0.0; - G4int experAsSize = exper_as.size(); + std::size_t experAsSize = exper_as.size(); - for (G4int iz = 0; iz < experAsSize; iz++) { + for (std::size_t iz = 0; iz < experAsSize; ++iz) { G4double a = exper_as[iz]; exp_cs += exper_cs[iz]; exp_cs_err += exper_err[iz]; G4bool found = false; - G4int simulatedAsSize = simulated_as.size(); - for (G4int i = 0; i 0) { aver_lhood = lhood; diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4NucleiModel.cc b/source/processes/hadronic/models/cascade/cascade/src/G4NucleiModel.cc index 02204a3880..bd8201cd21 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4NucleiModel.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4NucleiModel.cc @@ -819,7 +819,7 @@ G4NucleiModel::generateInteractionPartners(G4CascadParticle& cparticle) { // Select quasideuteron interaction from non-zero cross-section choices if (verboseLevel > 2) { - for (size_t i=0; iGetParticleName() << "] " << acsecs[i]; } @@ -833,7 +833,7 @@ G4NucleiModel::generateInteractionPartners(G4CascadParticle& cparticle) { G4double sl = inuclRndm() * tot_invmfp; G4double as = 0.0; - for (size_t i = 0; i < qdeutrons.size(); i++) { + for (std::size_t i = 0; i < qdeutrons.size(); i++) { as += acsecs[i]; if (sl < as) { if (verboseLevel > 2) @@ -886,7 +886,7 @@ generateParticleFate(G4CascadParticle& cparticle, return; } - G4int npart = thePartners.size(); // Last item is a total-path placeholder + std::size_t npart = thePartners.size(); // Last item is a total-path placeholder if (npart == 1) { // cparticle is on the next zone entry if (verboseLevel > 1) @@ -914,7 +914,7 @@ generateParticleFate(G4CascadParticle& cparticle, G4bool no_interaction = true; G4int zone = cparticle.getCurrentZone(); - for (G4int i=0; i 0) cparticle.updatePosition(old_position); G4InuclElementaryParticle& target = thePartners[i].first; @@ -965,7 +965,7 @@ generateParticleFate(G4CascadParticle& cparticle, // NOTE: Embedded temporary is optimized away (no copying gets done) G4int nextGen = cparticle.getGeneration()+1; - for (G4int ip = 0; ip < G4int(outgoing_particles.size()); ip++) { + for (std::size_t ip = 0; ip < outgoing_particles.size(); ++ip) { outgoing_cparticles.push_back(G4CascadParticle(outgoing_particles[ip], new_position, zone, 0.0, nextGen)); @@ -1311,7 +1311,7 @@ void G4NucleiModel::choosePointAlongTraj(G4CascadParticle& cparticle) { // Choose random point along trajectory, weighted by density G4double rand = G4UniformRand(); - G4int ir = std::upper_bound(wtlen.begin(),wtlen.end(),rand) - wtlen.begin(); + G4long ir = std::upper_bound(wtlen.begin(),wtlen.end(),rand) - wtlen.begin(); G4double frac = (rand-wtlen[ir-1]) / (wtlen[ir]-wtlen[ir-1]); G4double drand = (1.-frac)*len[ir-1] + frac*len[ir]; diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4TwoBodyAngularDist.cc b/source/processes/hadronic/models/cascade/cascade/src/G4TwoBodyAngularDist.cc index 0aa371eaea..ff6730b083 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4TwoBodyAngularDist.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4TwoBodyAngularDist.cc @@ -163,7 +163,7 @@ G4TwoBodyAngularDist::ChooseDist(G4int is, G4int fs, G4int kw) const { if ((fs == is) && (is == pi0*pro || is == pi0*neu) ) return pi0pAngDst; // pi- p -> pi0 n, pi+ n -> pi0 p, pi0 p -> pi+ n, pi0 n -> pi- p - if ((is == pim*pro && fs == pi0*neu) || (is == pip*neu && fs == pi0*pip) || + if ((is == pim*pro && fs == pi0*neu) || (is == pip*neu && fs == pi0*pro) || (is == pi0*pro && fs == pip*neu) || (is == pi0*neu && fs == pim*pro) ) return pipCXAngDst; diff --git a/source/processes/hadronic/models/coherent_elastic/History b/source/processes/hadronic/models/coherent_elastic/History index 01f2a4e3fc..132b2fcdda 100644 --- a/source/processes/hadronic/models/coherent_elastic/History +++ b/source/processes/hadronic/models/coherent_elastic/History @@ -1,9 +1,26 @@ # Category hadr-cohe History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-26 Gabriele Cosmo (hadr-cohe-V11-00-05) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-25 Alberto Ribon (hadr-cohe-V11-00-04) +- G4AntiNuclElastic : Vladimir Uzhinsky's extension of the SampleInvariantT method + for the simulation of a light anti-hypernucleus projectile elastic scattering + on a target nucleus. + Note: most of the considered light anti-hypernuclei projectiles have + baryon number equal to -4 : it is assumed that their properties are similar + to anti-He4, therefore their elastic scattering is set-up as for anti-He4 + elastic nuclear scattering. These properties can be improved in the future + if theoretical estimations will be available. + +## 2022-09-05 Ben Morgan (hadr-cohe-V11-00-03) +- Update dependencies to address warnings from consistency check ## 2022-02-04 Vladimir Ivanchenko (hadr-cohe-V11-00-02) - G4ElasticHadrNucleusHE, G4NeutronElectronElModel, G4NeutrinoElectronNcModel diff --git a/source/processes/hadronic/models/coherent_elastic/sources.cmake b/source/processes/hadronic/models/coherent_elastic/sources.cmake index ad11ff2068..352a2cb0bd 100644 --- a/source/processes/hadronic/models/coherent_elastic/sources.cmake +++ b/source/processes/hadronic/models/coherent_elastic/sources.cmake @@ -43,18 +43,18 @@ geant4_add_module(G4hadronic_coherent_elastic geant4_module_link_libraries(G4hadronic_coherent_elastic PUBLIC - G4bosons G4globman G4hadronic_mgt G4hadronic_util G4hadronic_xsect G4hepnumerics - G4heprandom - G4materials G4partman G4track PRIVATE G4baryons G4cuts + G4heprandom G4ions - G4leptons) + G4leptons + G4materials + G4mesons) diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4AntiNuclElastic.cc b/source/processes/hadronic/models/coherent_elastic/src/G4AntiNuclElastic.cc index c61fc31f37..15c68c0620 100644 --- a/source/processes/hadronic/models/coherent_elastic/src/G4AntiNuclElastic.cc +++ b/source/processes/hadronic/models/coherent_elastic/src/G4AntiNuclElastic.cc @@ -210,8 +210,8 @@ G4double G4AntiNuclElastic::SampleInvariantT(const G4ParticleDefinition* particl if((A>=48.) && (A<65) ) fRa=fRa*0.95; G4double Ref2 = XsTotalHadronic/10./2./pi; // in fm^2 - G4double ceff2 =0; - G4double rho = 0; + G4double ceff2 = 0.0; + G4double rho = 0.0; if ((theParticle == theAProton) || (theParticle == theANeutron)) { @@ -308,7 +308,7 @@ G4double G4AntiNuclElastic::SampleInvariantT(const G4ParticleDefinition* particl } } - if (theParticle == theAAlpha) + if ( (theParticle == theAAlpha) || (ceff2 == 0.0) ) { if(theTargetDef == theProton) { diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4DiffuseElastic.cc b/source/processes/hadronic/models/coherent_elastic/src/G4DiffuseElastic.cc index 6fc6096a66..80e4d4f61e 100644 --- a/source/processes/hadronic/models/coherent_elastic/src/G4DiffuseElastic.cc +++ b/source/processes/hadronic/models/coherent_elastic/src/G4DiffuseElastic.cc @@ -143,7 +143,7 @@ void G4DiffuseElastic::Initialise() const G4ElementTable* theElementTable = G4Element::GetElementTable(); - size_t jEl, numOfEl = G4Element::GetNumberOfElements(); + std::size_t jEl, numOfEl = G4Element::GetNumberOfElements(); for( jEl = 0; jEl < numOfEl; ++jEl) // application element loop { @@ -854,7 +854,7 @@ G4double G4DiffuseElastic::SampleTableThetaCMS(const G4ParticleDefinition* particle, G4double momentum, G4double Z, G4double A) { - size_t iElement; + std::size_t iElement; G4int iMomentum, iAngle; G4double randAngle, position, theta1, theta2, E1, E2, W1, W2, W; G4double m1 = particle->GetPDGMass(); @@ -1103,7 +1103,7 @@ G4DiffuseElastic:: GetScatteringAngle( G4int iMomentum, G4int iAngle, G4double p { if ( iAngle >= G4int((*fAngleTable)(iMomentum)->GetVectorLength()) ) { - iAngle = (*fAngleTable)(iMomentum)->GetVectorLength() - 1; + iAngle = G4int((*fAngleTable)(iMomentum)->GetVectorLength() - 1); } y1 = (*(*fAngleTable)(iMomentum))(iAngle-1); y2 = (*(*fAngleTable)(iMomentum))(iAngle); diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4DiffuseElasticV2.cc b/source/processes/hadronic/models/coherent_elastic/src/G4DiffuseElasticV2.cc index 6be297d946..5258347f8c 100644 --- a/source/processes/hadronic/models/coherent_elastic/src/G4DiffuseElasticV2.cc +++ b/source/processes/hadronic/models/coherent_elastic/src/G4DiffuseElasticV2.cc @@ -130,7 +130,7 @@ void G4DiffuseElasticV2::Initialise() const G4ElementTable* theElementTable = G4Element::GetElementTable(); - size_t jEl, numOfEl = G4Element::GetNumberOfElements(); + std::size_t jEl, numOfEl = G4Element::GetNumberOfElements(); for( jEl = 0; jEl < numOfEl; ++jEl) // application element loop { @@ -339,7 +339,7 @@ G4double G4DiffuseElasticV2::SampleTableThetaCMS(const G4ParticleDefinition* particle, G4double momentum, G4double Z, G4double A) { - size_t iElement; + std::size_t iElement; G4int iMomentum; unsigned long iAngle = 0; G4double randAngle, position, theta1, theta2, E1, E2, W1, W2, W; @@ -361,11 +361,11 @@ G4DiffuseElasticV2::SampleTableThetaCMS(const G4ParticleDefinition* particle, G4double kinE = std::sqrt(momentum*momentum + m1*m1) - m1; - iMomentum = fEnergyVector->FindBin(kinE,1000) + 1; + iMomentum = G4int(fEnergyVector->FindBin(kinE,1000) + 1); position = (*(*fEnergySumVector)[iMomentum])[0]*G4UniformRand(); - for(iAngle = 0; iAngle < fAngleBin; iAngle++) + for(iAngle = 0; iAngle < fAngleBin; ++iAngle) { if (position > (*(*fEnergySumVector)[iMomentum])[iAngle]) break; } @@ -434,16 +434,15 @@ void G4DiffuseElasticV2::InitialiseOnFly(G4double Z, G4double A) void G4DiffuseElasticV2::BuildAngleTable() { - G4int i, j; G4double partMom, kinE, a = 0., z = fParticle->GetPDGCharge(), m1 = fParticle->GetPDGMass(); G4double alpha1, alpha2, alphaMax, alphaCoulomb, delta = 0., sum = 0.; G4Integrator integral; - fEnergyAngleVector = new std::vector*>; - fEnergySumVector = new std::vector*>; + fEnergyAngleVector = new std::vector*>; + fEnergySumVector = new std::vector*>; - for( i = 0; i < fEnergyBin; i++) + for( G4int i = 0; i < fEnergyBin; ++i) { kinE = fEnergyVector->Energy(i); partMom = std::sqrt( kinE*(kinE + 2*m1) ); @@ -469,15 +468,15 @@ void G4DiffuseElasticV2::BuildAngleTable() fAddCoulomb = true; } - std::vector* angleVector = new std::vector(fAngleBin); - std::vector* sumVector = new std::vector(fAngleBin); + std::vector* angleVector = new std::vector(fAngleBin); + std::vector* sumVector = new std::vector(fAngleBin); G4double delth = alphaMax/fAngleBin; sum = 0.; - for(j = fAngleBin-1; j >= 0; j--) + for(G4int j = (G4int)fAngleBin-1; j >= 0; --j) { alpha1 = delth*j; alpha2 = alpha1 + delth; diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4ElasticHadrNucleusHE.cc b/source/processes/hadronic/models/coherent_elastic/src/G4ElasticHadrNucleusHE.cc index 891b0f5e54..01b8444368 100644 --- a/source/processes/hadronic/models/coherent_elastic/src/G4ElasticHadrNucleusHE.cc +++ b/source/processes/hadronic/models/coherent_elastic/src/G4ElasticHadrNucleusHE.cc @@ -339,7 +339,7 @@ void G4ElasticHadrNucleusHE::InitialiseModel() if(!isMaster) { return; } G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + G4int numOfCouples = (G4int)theCoupleTable->GetTableSize(); for(G4int i=0; i<2; ++i) { const G4ParticleDefinition* p = G4PionPlus::PionPlus(); @@ -349,19 +349,19 @@ void G4ElasticHadrNucleusHE::InitialiseModel() iHadron1 = fHadronType1[i]; hMass = p->GetPDGMass()*invGeV; hMass2 = hMass*hMass; - for(size_t j=0; jGetMaterialCutsCouple(j)->GetMaterial(); auto elmVec = mat->GetElementVector(); - size_t numOfElem = mat->GetNumberOfElements(); - for(size_t k=0; kGetZasInt(), ZMAX-1); - if(!fElasticData[i][Z]) { + std::size_t numOfElem = mat->GetNumberOfElements(); + for(std::size_t k=0; kGetZasInt(), ZMAX-1); + if(!fElasticData[i][Z]) { if(1 == i && Z > 1) { - fElasticData[1][Z] = fElasticData[0][Z]; - } else { - FillData(p, i, Z); - } - } + fElasticData[1][Z] = fElasticData[0][Z]; + } else { + FillData(p, i, Z); + } + } } } } @@ -570,7 +570,7 @@ G4ElasticHadrNucleusHE::HadronNucleusQ2_2(const G4ElasticData* pElD, R1 = pElD->R1; dQ2 = pElD->dQ2; Q2max = pElD->maxQ2[idx]; - G4int length = (pElD->fCumProb[idx]).size(); + G4int length = (G4int)(pElD->fCumProb[idx]).size(); G4double Rand = G4UniformRand(); @@ -1423,10 +1423,10 @@ G4bool G4ElasticHadrNucleusHE::ReadLine(std::ifstream& infile, void G4ElasticHadrNucleusHE::WriteLine(std::ofstream& outfile, std::vector& v) { - G4int n = v.size(); + std::size_t n = v.size(); outfile << n << G4endl; if(n > 0) { - for(G4int i=0; i= G4int((*fAngleTable)(iTkin)->GetVectorLength()) ) { - iTransfer = (*fAngleTable)(iTkin)->GetVectorLength() - 1; + iTransfer = G4int((*fAngleTable)(iTkin)->GetVectorLength() - 1); } y1 = (*(*fAngleTable)(iTkin))(iTransfer-1); y2 = (*(*fAngleTable)(iTkin))(iTransfer); diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4NuclNuclDiffuseElastic.cc b/source/processes/hadronic/models/coherent_elastic/src/G4NuclNuclDiffuseElastic.cc index 327da4aae6..259e8c853b 100644 --- a/source/processes/hadronic/models/coherent_elastic/src/G4NuclNuclDiffuseElastic.cc +++ b/source/processes/hadronic/models/coherent_elastic/src/G4NuclNuclDiffuseElastic.cc @@ -153,7 +153,7 @@ void G4NuclNuclDiffuseElastic::Initialise() // fEnergyVector = new G4PhysicsLogVector( theMinEnergy, theMaxEnergy, fEnergyBin ); const G4ElementTable* theElementTable = G4Element::GetElementTable(); - size_t jEl, numOfEl = G4Element::GetNumberOfElements(); + std::size_t jEl, numOfEl = G4Element::GetNumberOfElements(); // projectile radius @@ -855,7 +855,7 @@ G4double G4NuclNuclDiffuseElastic::SampleTableThetaCMS(const G4ParticleDefinition* particle, G4double momentum, G4double Z, G4double A) { - size_t iElement; + std::size_t iElement; G4int iMomentum, iAngle; G4double randAngle, position, theta1, theta2, E1, E2, W1, W2, W; G4double m1 = particle->GetPDGMass(); @@ -1096,7 +1096,7 @@ G4NuclNuclDiffuseElastic:: GetScatteringAngle( G4int iMomentum, G4int iAngle, G4 { if ( iAngle >= G4int((*fAngleTable)(iMomentum)->GetVectorLength()) ) { - iAngle = (*fAngleTable)(iMomentum)->GetVectorLength() - 1; + iAngle = G4int((*fAngleTable)(iMomentum)->GetVectorLength() - 1); } y1 = (*(*fAngleTable)(iMomentum))(iAngle-1); y2 = (*(*fAngleTable)(iMomentum))(iAngle); diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4hhElastic.cc b/source/processes/hadronic/models/coherent_elastic/src/G4hhElastic.cc index efcd93c868..84fd1d0d00 100644 --- a/source/processes/hadronic/models/coherent_elastic/src/G4hhElastic.cc +++ b/source/processes/hadronic/models/coherent_elastic/src/G4hhElastic.cc @@ -639,7 +639,7 @@ G4hhElastic:: GetTransfer( G4int iTkin, G4int iTransfer, G4double position ) { if ( iTransfer >= G4int((*fTableT)(iTkin)->GetVectorLength()) ) { - iTransfer = (*fTableT)(iTkin)->GetVectorLength() - 1; + iTransfer = G4int((*fTableT)(iTkin)->GetVectorLength() - 1); } y1 = (*(*fTableT)(iTkin))(iTransfer-1); y2 = (*(*fTableT)(iTkin))(iTransfer); diff --git a/source/processes/hadronic/models/de_excitation/History b/source/processes/hadronic/models/de_excitation/History index b3ef045278..759212c02c 100644 --- a/source/processes/hadronic/models/de_excitation/History +++ b/source/processes/hadronic/models/de_excitation/History @@ -1,9 +1,49 @@ # Category hadr-deex History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-26 Gabriele Cosmo (hadr-deex-V11-00-21) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-24 Alberto Ribon (hadr-deex-V11-00-20) +- G4ExcitationHandler : added protections that prevents crashes and + large energy non-conservations in the case of hypernuclei and, even more, + for anti-hypernuclei projectiles. + Note: there are still cases of off-shell masses and few GeV energy + non-conservations that need further investigations. + +## 2022-11-21 Vladimir Ivanchenko (hadr-deex-V11-00-19) +- G4ExcitationHandler - added extra sanity check for negative value + of lambda inside a fragment + +## 2022-11-11 Vladimir Ivanchenko (hadr-deex-V11-00-18) +- G4FermiCoulombBarrier - added Coulomb barrier accourdint to + prescription +- G4FermiDecayProbability, G4FermiFragment - use this new class +- G4VCoulombBarrier, G4CoulombBarrier, G4GEMCoulombBarrier - cleanup + +## 2022-11-07 Vladimir Ivanchenko (hadr-deex-V11-00-17) +- G4ExcitationHandler - introduced de-excitation of fragments with + lambda inside + +## 2022-11-03 Vladimir Ivanchenko (hadr-deex-V11-00-16) +- G4AtomicTransition - extended upper limit of atomic de-excitation + from Z=100 to Z=104 by R. Chakma + +## 2022-09-05 Ben Morgan (hadr-deex-V11-00-15) +- Update dependencies to address warnings from consistency check + +## 2022-07-24 Vladimir Ivanchenko (hadr-deex-V11-00-14) +- G4PhotonEvaporation - improved use of mutex +- G4StatMFChannel - implement fixes reported by Roman Nepeyvoda +- G4StatMF - clean-up + +## 2022-06-16 Vladimir Ivanchenko (hadr-deex-V11-00-13) +- G4PhotonEvaporation - fixed Coverity warning ## 2022-06-16 Vladimir Ivanchenko (hadr-deex-V11-00-12) - G4PhotonEvaporation - simplified handling of floating levels diff --git a/source/processes/hadronic/models/de_excitation/ablation/src/G4WilsonAblationModel.cc b/source/processes/hadronic/models/de_excitation/ablation/src/G4WilsonAblationModel.cc index 97223f5276..bb74dacafe 100644 --- a/source/processes/hadronic/models/de_excitation/ablation/src/G4WilsonAblationModel.cc +++ b/source/processes/hadronic/models/de_excitation/ablation/src/G4WilsonAblationModel.cc @@ -357,7 +357,7 @@ G4FragmentVector *G4WilsonAblationModel::BreakItUp for (G4int ift=0; ift 0) G4cout <<"Particle type: " <GetParticleName() <<", number of particles emitted = " <0) { if (excess > 0.0) @@ -415,9 +415,9 @@ G4FragmentVector *G4WilsonAblationModel::BreakItUp G4cout <<"Evaporated particles :" <begin(); iter != fragmentVector->end(); iter++) + std::size_t ie = 0; + for (auto iter = fragmentVector->cbegin(); + iter != fragmentVector->cend(); ++iter) { if (ie == nEvap) { @@ -517,13 +517,13 @@ void G4WilsonAblationModel::SelectSecondariesByEvaporation // (*i)->Initialize(theResidualNucleus); iters.push_back(iter); } - G4int nChannels = theChannels1.size(); + std::size_t nChannels = theChannels1.size(); G4double totalProb = 0.0; G4int ich = 0; G4double probEvapType[6] = {0.0}; - std::vector::iterator iterEv; - for (iterEv=theChannels1.begin(); iterEv!=theChannels1.end(); iterEv++) { + for (auto iterEv=theChannels1.cbegin(); + iterEv!=theChannels1.cend(); ++iterEv) { totalProb += (*iterEv)->GetEmissionProbability(intermediateNucleus); probEvapType[ich] = totalProb; ++ich; @@ -536,14 +536,18 @@ void G4WilsonAblationModel::SelectSecondariesByEvaporation // the nucleus. // G4double xi = totalProb*G4UniformRand(); - G4int ii = 0; - for (ii=0; ii= nChannels) { ii = nChannels - 1; } G4FragmentVector *evaporationResult = theChannels1[ii]-> BreakUpFragment(intermediateNucleus); - if ((*evaporationResult)[0] != nullptr) { (*evaporationResult)[0]->SetCreatorModelID(secID); } + if ((*evaporationResult)[0] != nullptr) + { + (*evaporationResult)[0]->SetCreatorModelID(secID); + } fragmentVector->push_back((*evaporationResult)[0]); intermediateNucleus = (*evaporationResult)[1]; delete evaporationResult; @@ -565,7 +569,7 @@ void G4WilsonAblationModel::SelectSecondariesByEvaporation // void G4WilsonAblationModel::SelectSecondariesByDefault (G4ThreeVector boost) { - for (unsigned i=0; iGetPDGMass(); diff --git a/source/processes/hadronic/models/de_excitation/evaporation/sources.cmake b/source/processes/hadronic/models/de_excitation/evaporation/sources.cmake index c88eeb69b1..f701926bd9 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/sources.cmake +++ b/source/processes/hadronic/models/de_excitation/evaporation/sources.cmake @@ -56,6 +56,5 @@ geant4_module_link_libraries(G4hadronic_deex_evaporation G4hadronic_deex_photon_evaporation G4hepgeometry G4heprandom - G4ions G4materials G4partman) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationChannel.cc index a582e7201d..9a6bdf54b2 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationChannel.cc @@ -107,7 +107,7 @@ G4double G4EvaporationChannel::GetEmissionProbability(G4Fragment* fragment) bCoulomb = theCoulombBarrier->GetCoulombBarrier(resA, resZ, 0.0); // for OPTxs >0 penetration under the barrier is taken into account - elim = (0 != OPTxs) ? bCoulomb*0.5 : bCoulomb; + elim = (0 != OPTxs) ? bCoulomb*0.6 : bCoulomb; } /* G4cout << "exEnergy= " << exEnergy << " Ec= " << bCoulomb diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationProbability.cc index e5e1bfef80..d08edd6842 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationProbability.cc @@ -172,7 +172,8 @@ G4EvaporationProbability::CrossSection(G4double K, G4double CB) res = G4ChatterjeeCrossSection::ComputeCrossSection(K, CB, resA13, muu, index, theZ, resA); } else { - G4double elim = 0.5*CB; + // added barrier penetration factor + G4double elim = 0.6*CB; if(K > elim) { res = G4KalbachCrossSection::ComputeCrossSection(K, elim, resA13, muu, index, theZ, theA, resA); diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiCoulombBarrier.hh new file mode 100644 index 0000000000..42c0ef206d --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiCoulombBarrier.hh @@ -0,0 +1,48 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// 11-11-2022 V.Ivanchenko restored + +#ifndef G4FermiCoulombBarrier_h +#define G4FermiCoulombBarrier_h 1 + +#include "globals.hh" +#include "G4VCoulombBarrier.hh" + +class G4FermiCoulombBarrier : public G4VCoulombBarrier +{ +public: + + explicit G4FermiCoulombBarrier(G4int anA, G4int aZ); + ~G4FermiCoulombBarrier() override = default; + + G4double GetCoulombBarrier(G4int ARes, G4int ZRes, G4double U) const override; + + G4FermiCoulombBarrier(const G4FermiCoulombBarrier & right) = delete; + const G4FermiCoulombBarrier & operator= + (const G4FermiCoulombBarrier & right) = delete; + +}; +#endif diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiDecayProbability.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiDecayProbability.hh index 0f10a24ba0..b27d8811c7 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiDecayProbability.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiDecayProbability.hh @@ -40,19 +40,15 @@ class G4FermiDecayProbability public: explicit G4FermiDecayProbability(); - ~G4FermiDecayProbability(); + ~G4FermiDecayProbability() = default; G4double ComputeProbability(G4int Z, G4int A, G4int spin, G4double TotalE, const G4FermiFragment* f1, const G4FermiFragment* f2) const; - -private: G4FermiDecayProbability(const G4FermiDecayProbability &right) = delete; const G4FermiDecayProbability & operator = (const G4FermiDecayProbability &right) = delete; - G4bool operator==(const G4FermiDecayProbability &right) const = delete; - G4bool operator!=(const G4FermiDecayProbability &right) const = delete; }; diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiFragment.hh index d11a41a001..602a88bfaf 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiFragment.hh @@ -33,7 +33,7 @@ #include "globals.hh" #include "G4FragmentVector.hh" -#include "G4CoulombBarrier.hh" +#include "G4VCoulombBarrier.hh" class G4FermiFragment { @@ -43,32 +43,17 @@ public: ~G4FermiFragment(); - inline G4int GetA(void) const - { - return A; - } + inline G4int GetA() const { return A; } - inline G4int GetZ(void) const - { - return Z; - } + inline G4int GetZ() const { return Z; } - inline G4int GetSpin(void) const - { - return spin; - } + inline G4int GetSpin() const { return spin; } - inline G4double GetExcitationEnergy(void) const - { - return excitEnergy; - } + inline G4double GetExcitationEnergy() const { return excitEnergy; } - inline G4double GetFragmentMass(void) const - { - return fragmentMass; - } + inline G4double GetFragmentMass() const { return fragmentMass; } - inline G4double GetTotalEnergy(void) const + inline G4double GetTotalEnergy(void) const { return (fragmentMass + excitEnergy); } @@ -83,21 +68,20 @@ public: return (A == right.A && Z == right.Z && std::abs(excitEnergy - right.excitEnergy) < 0.0001); } + + G4FermiFragment(const G4FermiFragment &right) = delete; + const G4FermiFragment & operator=(const G4FermiFragment &right) = delete; private: G4double excitEnergy; G4double fragmentMass; - G4CoulombBarrier* cBarrier; + G4VCoulombBarrier* cBarrier; G4int A; G4int Z; G4int spin; - - G4FermiFragment(const G4FermiFragment &right); - const G4FermiFragment & operator=(const G4FermiFragment &right); - G4bool operator!=(const G4FermiFragment &right) const; }; diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/sources.cmake b/source/processes/hadronic/models/de_excitation/fermi_breakup/sources.cmake index 91c31392bc..a97330b176 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/sources.cmake +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/sources.cmake @@ -5,6 +5,7 @@ geant4_add_module(G4hadronic_deex_fermi_breakup PUBLIC_HEADERS G4FermiBreakUpVI.hh G4FermiChannels.hh + G4FermiCoulombBarrier.hh G4FermiDecayProbability.hh G4FermiFragment.hh G4FermiFragmentsPoolVI.hh @@ -13,6 +14,7 @@ geant4_add_module(G4hadronic_deex_fermi_breakup G4VFermiBreakUp.hh SOURCES G4FermiBreakUpVI.cc + G4FermiCoulombBarrier.cc G4FermiDecayProbability.cc G4FermiFragment.cc G4FermiFragmentsPoolVI.cc diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiBreakUpVI.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiBreakUpVI.cc index 1a4906a33c..8995ab6ce9 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiBreakUpVI.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiBreakUpVI.cc @@ -159,7 +159,7 @@ void G4FermiBreakUpVI::BreakFragment(G4FragmentVector* theResult, G4bool G4FermiBreakUpVI::SampleDecay() { const G4FermiChannels* chan = thePool->ClosestChannels(Z, A, mass); - if(!chan) { return false; } + if(nullptr == chan) { return false; } size_t nn = chan->GetNumberOfChannels(); if(verbose > 1) { G4cout << "== SampleDecay " << nn << " channels Eex= " diff --git a/environments/g4py/source/global/pyG4ExceptionSeverity.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiCoulombBarrier.cc similarity index 66% rename from environments/g4py/source/global/pyG4ExceptionSeverity.cc rename to source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiCoulombBarrier.cc index 24767acb78..9e5c85ede2 100644 --- a/environments/g4py/source/global/pyG4ExceptionSeverity.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiCoulombBarrier.cc @@ -23,29 +23,34 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// pyG4ExceptionSeverity.cc // -// 2005 Q -// ==================================================================== -#include -#include "G4ExceptionSeverity.hh" +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Dec 1999) +// +// 14-11-2007 modified barrier by JMQ (test30) +// 15-11-2010 V.Ivanchenko use G4Pow and cleanup -using namespace boost::python; +#include "G4FermiCoulombBarrier.hh" +#include "G4PhysicalConstants.hh" +#include "G4SystemOfUnits.hh" +#include "G4Pow.hh" +#include "G4NuclearRadii.hh" -// ==================================================================== -// -// class description -// -// ==================================================================== -void export_G4ExceptionSeverity() +G4FermiCoulombBarrier::G4FermiCoulombBarrier(G4int A, G4int Z) + : G4VCoulombBarrier(A, Z) { - enum_("G4ExceptionSeverity") - .value("FatalException", FatalException) - .value("FatalErrorInArgument", FatalErrorInArgument) - .value("RunMustBeAborted", RunMustBeAborted) - .value("EventMustBeAborted", EventMustBeAborted) - .value("JustWarning", JustWarning) - ; - + SetParameters(G4NuclearRadii::RadiusCB(Z, A), 1.3*CLHEP::fermi); + factor = CLHEP::elm_coupling*0.6*g4calc->Z13(7)/theRho; } + +G4double G4FermiCoulombBarrier::GetCoulombBarrier( + G4int ARes, G4int ZRes, G4double) const +{ + if(0 == theZ) { return 0.0; } + G4int A = theA + ARes; + G4int Z = theZ + ZRes; + G4double cb = factor*((Z*Z)/g4calc->Z13(A) - (theZ*theZ)/g4calc->Z13(theA) + - (ZRes*ZRes)/g4calc->Z13(ARes)); + return cb; +} + diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiDecayProbability.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiDecayProbability.cc index aa0c233cf3..a90ea67716 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiDecayProbability.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiDecayProbability.cc @@ -35,9 +35,6 @@ G4FermiDecayProbability::G4FermiDecayProbability() {} -G4FermiDecayProbability::~G4FermiDecayProbability() -{} - G4double G4FermiDecayProbability::ComputeProbability(G4int, G4int A, G4int spin, G4double etot, @@ -54,8 +51,8 @@ G4FermiDecayProbability::ComputeProbability(G4int, G4int A, G4int spin, G4double ekin = etot - mass1 - mass2; // mass factors - G4double massFactor = mass1*mass2/(mass1 + mass2); - massFactor *= std::sqrt(massFactor); + G4double x = mass1*mass2/(mass1 + mass2); + G4double massFactor = x*std::sqrt(x); // Spin factor S_n G4double S_n = 1.0; diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragment.cc index b3b502d527..f30a0a4a9d 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragment.cc @@ -31,6 +31,7 @@ #include "G4FermiFragment.hh" #include "G4NucleiProperties.hh" #include "G4PhysicalConstants.hh" +#include "G4CoulombBarrier.hh" G4FermiFragment::G4FermiFragment(G4int anA, G4int aZ, G4int sp, G4double exc) : excitEnergy(exc), A(anA), Z(aZ), spin(sp) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragmentsPoolVI.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragmentsPoolVI.cc index 7329849d88..c6fd3d3515 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragmentsPoolVI.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragmentsPoolVI.cc @@ -70,7 +70,7 @@ G4FermiFragmentsPoolVI::ClosestChannels(G4int Z, G4int A, G4double e) const G4double demax = 1.e+9; // stable channels - for(size_t j=0; j<(list_c[A]).size(); ++j) { + for(std::size_t j=0; j<(list_c[A]).size(); ++j) { const G4FermiFragment* frag = (list_f[A])[j]; if(frag->GetZ() != Z) { continue; } G4double de = e - frag->GetTotalEnergy(); @@ -117,7 +117,7 @@ G4bool G4FermiFragmentsPoolVI::HasChannels(G4int Z, G4int A, G4double exc) const { // stable fragment - for(size_t j=0; j<(list_f[A]).size(); ++j) { + for(std::size_t j=0; j<(list_f[A]).size(); ++j) { const G4FermiFragment* frag = (list_f[A])[j]; if(frag->GetZ() == Z) { if(exc > frag->GetExcitationEnergy() && @@ -161,12 +161,12 @@ void G4FermiFragmentsPoolVI::Initialise() for(G4int A=Amin; AGetLevelManager(Z, A); if(man) { - size_t nn = man->NumberOfTransitions(); + std::size_t nn = man->NumberOfTransitions(); // very unstable state if(ndata->MaxLevelEnergy(Z, A) == 0.0f && man->LifeTime(0) == 0.0f) { continue; } - for(size_t i=0; i<=nn; ++i) { + for(std::size_t i=0; i<=nn; ++i) { G4float exc = man->LevelEnergy(i); /* G4cout << "Z= " << Z << " A= " << A << " Eex= " << exc @@ -183,15 +183,15 @@ void G4FermiFragmentsPoolVI::Initialise() } } } - G4int nfrag = fragment_pool.size(); + G4int nfrag = (G4int)fragment_pool.size(); // prepare structures per A for normal fragments - const size_t lfmax[maxA] = { + const std::size_t lfmax[maxA] = { 0, 2, 1, 2, 1, 2, 8, 19, 28, 56, 70, 104, 74, 109, 143, 212, 160}; for(G4int A=1; A= elim) { continue; } G4FermiPair* fpair = nullptr; - G4int kmax = list_f[A].size(); - for(G4int k=0; kGetZ() && f3->GetTotalEnergy() - minE + tolerance >= 0.0) { @@ -257,15 +257,15 @@ void G4FermiFragmentsPoolVI::Initialise() } // compute static probabilities for(G4int A=1; AGetNumberOfChannels(); + std::size_t nch = ch->GetNumberOfChannels(); if(1 < nch) { std::vector& prob = ch->GetProbabilities(); const std::vector& pairs = ch->GetChannels(); G4double ptot = 0.0; - for(size_t i=0; iGetZ(), frag->GetA(), frag->GetSpin(), frag->GetTotalEnergy(), @@ -277,7 +277,7 @@ void G4FermiFragmentsPoolVI::Initialise() prob[0] = 1.0; } else { ptot = 1./ptot; - for(size_t i=0; iGetFragment1()->GetZ() << ", " << fpair->GetFragment1()->GetA() @@ -359,7 +359,7 @@ void G4FermiFragmentsPoolVI::Dump() const G4cout << G4endl; G4cout << " Max number of channels per A:" << G4endl; - for (size_t j=0; jZ13(anA); } -G4GEMCoulombBarrier::~G4GEMCoulombBarrier() -{} - G4double G4GEMCoulombBarrier::GetCoulombBarrier(G4int ARes, G4int ZRes, G4double U) const -// Calculation of Coulomb potential energy (barrier) for outgoing fragment { + // Calculation of Coulomb potential energy (barrier) for outgoing fragment G4double Barrier = 0.0; - if (GetZ() > 0 && ZRes > 0) { + if (theZ > 0 && ZRes > 0) { G4double CompoundRadius = CalcCompoundRadius(ARes); - Barrier = CLHEP::elm_coupling * (GetZ() * ZRes)/CompoundRadius; + Barrier = CLHEP::elm_coupling * (theZ * ZRes)/CompoundRadius; // Barrier penetration coeficient - if(GetA() <= 4) { Barrier *= BarrierPenetrationFactor(ZRes); } + if(theA <= 4) { Barrier *= BarrierPenetrationFactor(ZRes); } //JMQ 200709 effective decrease of barrier with E* (Barashenkov) // (not inclued in original Furihata's formulation) - Barrier /= (1.0 + std::sqrt(U/(static_cast(2*ARes)))); + Barrier /= (1.0 + std::sqrt(U/((2*ARes)*CLHEP::MeV))); } return Barrier; } @@ -65,20 +62,19 @@ G4double G4GEMCoulombBarrier::GetCoulombBarrier(G4int ARes, G4int ZRes, G4double G4GEMCoulombBarrier::CalcCompoundRadius(G4int ARes) const { G4double AresOneThird = g4calc->Z13(ARes); - G4int A = GetA(); G4double Result = 0.0; - if(A == 1){ + if(theA == 1){ Result = 1.7* AresOneThird; - } else if (A <= 4){ + } else if (theA <= 4){ Result = 1.7* AresOneThird + 1.2; } else { Result = 1.12*(AresOneThird + AejectOneThird) - 0.86*(AresOneThird+AejectOneThird)/(AresOneThird*AejectOneThird)+3.75; } - return Result*fermi; + return Result*CLHEP::fermi; } diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMProbability.cc index 401ce58153..f8252b363c 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMProbability.cc @@ -83,10 +83,10 @@ G4double G4GEMProbability::EmissionProbability(const G4Fragment & fragment, // Next there is a loop over excited states for this channel // summing probabilities - size_t nn = ExcitEnergies.size(); + std::size_t nn = ExcitEnergies.size(); if (0 < nn) { G4double SavedSpin = Spin; - for (size_t i = 0; i GetIonTable(); + thePartTable = G4ParticleTable::GetParticleTable(); + theTableOfIons = thePartTable->GetIonTable(); nist = G4NistManager::Instance(); theMultiFragmentation = nullptr; @@ -107,7 +110,10 @@ G4ExcitationHandler::G4ExcitationHandler() theDeuteron = G4Deuteron::DeuteronDefinition(); theTriton = G4Triton::TritonDefinition(); theHe3 = G4He3::He3Definition(); - theAlpha = G4Alpha::AlphaDefinition();; + theAlpha = G4Alpha::AlphaDefinition(); + theLambda = G4Lambda::Lambda(); + + fLambdaMass = theLambda->GetPDGMass(); if(fVerbose > 1) { G4cout << "### New handler " << this << G4endl; } } @@ -296,6 +302,7 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) G4double exEnergy = theInitialState.GetExcitationEnergy(); G4int A = theInitialState.GetA_asInt(); G4int Z = theInitialState.GetZ_asInt(); + G4int nL = theInitialState.GetNumberOfLambdas(); // too much excitation if(exEnergy > A*maxExcitation && A > 0) { @@ -307,18 +314,82 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) G4Exception("G4ExcitationHandler::BreakItUp()","had0034",JustWarning,ed,""); } } - + + // for hyper-nuclei subtract lambdas from the projectile fragment + G4double lambdaF = 0.0; + G4LorentzVector lambdaLV = theInitialStatePtr->GetMomentum(); + if(0 < nL) { + + // is it a stable hyper-nuclei? + if(A >= 3 && A <= 5 && nL <= 2) { + G4int pdg = 0; + if(3 == A && 1 == nL) { + pdg = 1010010030; + } else if(5 == A && 2 == Z && 1 == nL) { + pdg = 1010020050; + } else if(4 == A) { + if(1 == Z && 1 == nL) { + pdg = 1010010040; + } else if(2 == Z && 1 == nL) { + pdg = 1010020040; + } else if(0 == Z && 2 == nL) { + pdg = 1020000040; + } else if(1 == Z && 2 == nL) { + pdg = 1020010040; + } + } + // initial state is one of hyper-nuclei + if(0 < pdg) { + const G4ParticleDefinition* part = thePartTable->FindParticle(pdg); + if(nullptr != part) { + G4ReactionProduct* theNew = new G4ReactionProduct(part); + G4ThreeVector dir = G4ThreeVector( 0.0, 0.0, 0.0 ); + if ( lambdaLV.vect().mag() > CLHEP::eV ) { + dir = lambdaLV.vect().unit(); + } + G4double mass = part->GetPDGMass(); + G4double etot = std::max(lambdaLV.e(), mass); + dir *= std::sqrt((etot - mass)*(etot + mass)); + theNew->SetMomentum(dir); + theNew->SetTotalEnergy(etot); + theNew->SetFormationTime(theInitialState.GetCreationTime()); + theNew->SetCreatorModelID(theInitialState.GetCreatorModelID()); + G4ReactionProductVector* v = new G4ReactionProductVector(); + v->push_back(theNew); + return v; + } + } + } + G4double mass = theInitialStatePtr->GetGroundStateMass(); + lambdaF = nL*(fLambdaMass - CLHEP::neutron_mass_c2)/mass; + + // de-excitation with neutrons instead of lambda inside the fragment + theInitialStatePtr->SetZAandMomentum(lambdaLV*(1. - lambdaF), Z, A, 0); + + // 4-momentum not used in de-excitation + lambdaLV *= lambdaF; + } else if(0 > nL) { + ++fWarnings; + if(fWarnings < 0) { + G4ExceptionDescription ed; + ed << "Fragment with negative L: Z=" << Z << " A=" << A << " L=" << nL + << " Eex/A(MeV)= " << exEnergy/A; + G4Exception("G4ExcitationHandler::BreakItUp()","had0034",JustWarning,ed,""); + } + } + // In case A <= 1 the fragment will not perform any nucleon emission if (A <= 1 || !isActive) { theResults.push_back( theInitialStatePtr ); // check if a fragment is stable - } else if(exEnergy < minExcitation && nist->GetIsotopeAbundance(Z, A) > 0.0) { + } else if(exEnergy < minExcitation && + nist->GetIsotopeAbundance(Z, A) > 0.0) { theResults.push_back( theInitialStatePtr ); // JMQ 150909: first step in de-excitation is treated separately // Fragments after the first step are stored in theEvapList - } else { + } else { if((A 0 ) partOfLambdaLV = lambdaLV/(G4double)nL; for (auto & frag : theResults) { + G4LorentzVector lv0 = frag->GetMomentum(); + G4double etot = lv0.e(); // in the case of dummy de-excitation, excitation energy is transfered // into kinetic energy of output ion if(!isActive) { G4double mass = frag->GetGroundStateMass(); - G4double ptot = (frag->GetMomentum()).vect().mag(); - G4double etot = (frag->GetMomentum()).e(); + G4double ptot = lv0.vect().mag(); G4double fac = (etot <= mass || 0.0 == ptot) ? 0.0 : std::sqrt((etot - mass)*(etot + mass))/ptot; G4LorentzVector lv((frag->GetMomentum()).px()*fac, @@ -460,9 +534,9 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) G4int fragmentA = frag->GetA_asInt(); G4int fragmentZ = frag->GetZ_asInt(); - G4double etot= frag->GetMomentum().e(); G4double eexc = 0.0; const G4ParticleDefinition* theKindOfFragment = nullptr; + G4bool isHyperN = false; if (fragmentA == 0) { // photon or e- theKindOfFragment = frag->GetParticleDefinition(); } else if (fragmentA == 1 && fragmentZ == 0) { // neutron @@ -473,21 +547,37 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) theKindOfFragment = theDeuteron; } else if (fragmentA == 3 && fragmentZ == 1) { // triton theKindOfFragment = theTriton; + if(0 < nL) { + const G4ParticleDefinition* p = thePartTable->FindParticle(1010010030); + if(nullptr != p) { + theKindOfFragment = p; + isHyperN = true; + --nL; + } + } } else if (fragmentA == 3 && fragmentZ == 2) { // helium3 theKindOfFragment = theHe3; } else if (fragmentA == 4 && fragmentZ == 2) { // alpha theKindOfFragment = theAlpha; + if(0 < nL) { + const G4ParticleDefinition* p = thePartTable->FindParticle(1010020040); + if(nullptr != p) { + theKindOfFragment = p; + isHyperN = true; + --nL; + } + } } else { // fragment eexc = frag->GetExcitationEnergy(); G4int idxf = frag->GetFloatingLevelNumber(); - if(eexc < minExcitation) { + if(eexc < minExcitation) { eexc = 0.0; idxf = 0; } - theKindOfFragment = theTableOfIons->GetIon(fragmentZ,fragmentA,eexc, + theKindOfFragment = theTableOfIons->GetIon(fragmentZ, fragmentA, eexc, G4Ions::FloatLevelBase(idxf)); if(fVerbose > 3) { G4cout << "### EXCH: Find ion Z= " << fragmentZ @@ -497,9 +587,21 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) } } // fragment identified - if(theKindOfFragment) { + if(nullptr != theKindOfFragment) { G4ReactionProduct * theNew = new G4ReactionProduct(theKindOfFragment); - theNew->SetMomentum(frag->GetMomentum().vect()); + if(isHyperN) { + G4LorentzVector lv = lv0 + partOfLambdaLV; + G4ThreeVector dir = lv.vect().unit(); + G4double mass = theKindOfFragment->GetPDGMass(); + etot = std::max(lv.e(), mass); + G4double ptot = std::sqrt((etot - mass)*(etot + mass)); + dir *= ptot; + theNew->SetMomentum(dir); + // remaining not compensated 4-momentum + lambdaLV += (lv0 - G4LorentzVector(dir, etot)); + } else { + theNew->SetMomentum(lv0.vect()); + } theNew->SetTotalEnergy(etot); theNew->SetFormationTime(frag->GetCreationTime()); if(theKindOfFragment == theElectron) { @@ -536,7 +638,25 @@ G4ExcitationHandler::BreakItUp(const G4Fragment & theInitialState) } delete frag; } - if(fVerbose > 3) { + // remaining lambdas are free; conserve quantum numbers but + // not 4-momentum + if(0 < nL) { + G4ThreeVector dir = G4ThreeVector( 0.0, 0.0, 0.0 ); + if ( lambdaLV.vect().mag() > CLHEP::eV ) { + dir = lambdaLV.vect().unit(); + } + G4double etot = std::max(lambdaLV.e()/(G4double)nL, fLambdaMass); + dir *= std::sqrt((etot - fLambdaMass)*(etot + fLambdaMass)); + for(G4int i=0; iSetMomentum(dir); + theNew->SetTotalEnergy(etot); + theNew->SetFormationTime(theInitialState.GetCreationTime()); + theNew->SetCreatorModelID(theInitialState.GetCreatorModelID()); + theReactionProductVector->push_back(theNew); + } + } + if(fVerbose > 3) { G4cout << "@@@@@@@@@@ End G4Excitation Handler "<< G4endl; } return theReactionProductVector; diff --git a/source/processes/hadronic/models/de_excitation/management/include/G4LevelManager.hh b/source/processes/hadronic/models/de_excitation/management/include/G4LevelManager.hh index 6ac7030000..a3e0ff57c6 100644 --- a/source/processes/hadronic/models/de_excitation/management/include/G4LevelManager.hh +++ b/source/processes/hadronic/models/de_excitation/management/include/G4LevelManager.hh @@ -59,7 +59,7 @@ public: // energies - list of excitation energies of nuclear levels starting // from the ground state with energy zero // spin - 2J, where J is the full angular momentum of the state - explicit G4LevelManager(G4int Z, G4int A, size_t nlev, + explicit G4LevelManager(G4int Z, G4int A, std::size_t nlev, const std::vector& energies, const std::vector& spin, const std::vector& levels); @@ -71,40 +71,40 @@ public: //=================================================================== // only in this method there is a check on the vector boundary - size_t NearestLevelIndex(const G4double energy, const size_t index=0) const; + std::size_t NearestLevelIndex(const G4double energy, const std::size_t index=0) const; - inline size_t NumberOfTransitions() const; + inline std::size_t NumberOfTransitions() const; - inline const G4NucLevel* GetLevel(const size_t i) const; + inline const G4NucLevel* GetLevel(const std::size_t i) const; - inline G4double LevelEnergy(const size_t i) const; + inline G4double LevelEnergy(const std::size_t i) const; inline G4double MaxLevelEnergy() const; - inline size_t NearestLowEdgeLevelIndex(const G4double energy) const; + inline std::size_t NearestLowEdgeLevelIndex(const G4double energy) const; inline const G4NucLevel* NearestLevel(const G4double energy, - const size_t index=0) const; + const std::size_t index=0) const; inline G4double NearestLevelEnergy(const G4double energy, - const size_t index=0) const; + const std::size_t index=0) const; inline G4double NearestLowEdgeLevelEnergy(const G4double energy) const; // for stable isotopes life time is -1 - inline G4double LifeTime(const size_t i) const; + inline G4double LifeTime(const std::size_t i) const; - inline G4int SpinTwo(const size_t i) const; + inline G4int SpinTwo(const std::size_t i) const; - inline G4int Parity(const size_t i) const; + inline G4int Parity(const std::size_t i) const; - inline G4int FloatingLevel(const size_t i) const; + inline G4int FloatingLevel(const std::size_t i) const; inline G4double ShellCorrection() const; inline G4double LevelDensity(const G4double U) const; - const G4String& FloatingType(const size_t i) const; + const G4String& FloatingType(const std::size_t i) const; void StreamInfo(std::ostream& os) const; @@ -122,24 +122,24 @@ private: G4double fShellCorrection; G4double fLevelDensity; - size_t nTransitions; + std::size_t nTransitions; static const G4int nfloting = 13; static G4String fFloatingLevels[nfloting]; }; -inline size_t G4LevelManager::NumberOfTransitions() const +inline std::size_t G4LevelManager::NumberOfTransitions() const { return nTransitions; } -inline const G4NucLevel* G4LevelManager::GetLevel(const size_t i) const +inline const G4NucLevel* G4LevelManager::GetLevel(const std::size_t i) const { return fLevels[i]; } -inline G4double G4LevelManager::LevelEnergy(const size_t i) const +inline G4double G4LevelManager::LevelEnergy(const std::size_t i) const { return fLevelEnergy[i]; } @@ -149,10 +149,10 @@ inline G4double G4LevelManager::MaxLevelEnergy() const return fLevelEnergy[nTransitions]; } -inline size_t +inline std::size_t G4LevelManager::NearestLowEdgeLevelIndex(const G4double energy) const { - size_t idx = nTransitions; + std::size_t idx = nTransitions; if(energy < fLevelEnergy[nTransitions]) { idx = std::lower_bound(fLevelEnergy.begin(), fLevelEnergy.end(), energy) - fLevelEnergy.begin() - 1; @@ -161,14 +161,14 @@ G4LevelManager::NearestLowEdgeLevelIndex(const G4double energy) const } inline const G4NucLevel* -G4LevelManager::NearestLevel(const G4double energy, const size_t index) const +G4LevelManager::NearestLevel(const G4double energy, const std::size_t index) const { return GetLevel(NearestLevelIndex(energy, index)); } inline G4double G4LevelManager::NearestLevelEnergy(const G4double energy, - const size_t index) const + const std::size_t index) const { return LevelEnergy(NearestLevelIndex(energy, index)); } @@ -179,22 +179,22 @@ G4LevelManager::NearestLowEdgeLevelEnergy(const G4double energy) const return LevelEnergy(NearestLowEdgeLevelIndex(energy)); } -inline G4double G4LevelManager::LifeTime(const size_t i) const +inline G4double G4LevelManager::LifeTime(const std::size_t i) const { return (fLevels[i]) ? fLevels[i]->GetTimeGamma() : 0.0; } -inline G4int G4LevelManager::SpinTwo(const size_t i) const +inline G4int G4LevelManager::SpinTwo(const std::size_t i) const { return std::abs(fSpin[i]%100000 - 100); } -inline G4int G4LevelManager::Parity(const size_t i) const +inline G4int G4LevelManager::Parity(const std::size_t i) const { return (fSpin[i]%100000 - 100 > 0) ? 1 : -1; } -inline G4int G4LevelManager::FloatingLevel(const size_t i) const +inline G4int G4LevelManager::FloatingLevel(const std::size_t i) const { return fSpin[i]/100000; } diff --git a/source/processes/hadronic/models/de_excitation/management/include/G4NucLevel.hh b/source/processes/hadronic/models/de_excitation/management/include/G4NucLevel.hh index 992190c163..7a7b8fafab 100644 --- a/source/processes/hadronic/models/de_excitation/management/include/G4NucLevel.hh +++ b/source/processes/hadronic/models/de_excitation/management/include/G4NucLevel.hh @@ -53,7 +53,7 @@ class G4NucLevel { public: - explicit G4NucLevel(size_t ntrans, G4double tgamma, + explicit G4NucLevel(std::size_t ntrans, G4double tgamma, const std::vector& vTrans, const std::vector& wLevelGamma, const std::vector& wGamma, @@ -62,25 +62,25 @@ public: ~G4NucLevel(); - inline size_t NumberOfTransitions() const; + inline std::size_t NumberOfTransitions() const; - inline size_t FinalExcitationIndex(size_t idx) const; + inline std::size_t FinalExcitationIndex(std::size_t idx) const; - inline G4int TransitionType(size_t idx) const; + inline G4int TransitionType(std::size_t idx) const; inline G4double GetTimeGamma() const; - inline G4float GammaProbability(size_t idx) const; + inline G4float GammaProbability(std::size_t idx) const; - inline G4float GammaCumProbability(size_t idx) const; + inline G4float GammaCumProbability(std::size_t idx) const; - inline G4float MultipolarityRatio(size_t idx) const; + inline G4float MultipolarityRatio(std::size_t idx) const; - inline size_t SampleGammaTransition(G4double rndm) const; + inline std::size_t SampleGammaTransition(G4double rndm) const; - inline G4int SampleShell(size_t idx, G4double rndm) const; + inline G4int SampleShell(std::size_t idx, G4double rndm) const; - inline const std::vector* ShellProbabilty(size_t idx) const; + inline const std::vector* ShellProbabilty(std::size_t idx) const; void StreamInfo(std::ostream& os) const; @@ -92,7 +92,7 @@ public: private: - size_t length; + std::size_t length; G4double fTimeGamma; std::vector fTrans; @@ -102,17 +102,17 @@ private: std::vector*> fShellProbability; }; -inline size_t G4NucLevel::NumberOfTransitions() const +inline std::size_t G4NucLevel::NumberOfTransitions() const { return length; } -inline size_t G4NucLevel::FinalExcitationIndex(const size_t idx) const +inline std::size_t G4NucLevel::FinalExcitationIndex(const std::size_t idx) const { - return (size_t)(fTrans[idx]/10000); + return (std::size_t)(fTrans[idx]/10000); } -inline G4int G4NucLevel::TransitionType(const size_t idx) const +inline G4int G4NucLevel::TransitionType(const std::size_t idx) const { return fTrans[idx]%10000; } @@ -122,25 +122,25 @@ inline G4double G4NucLevel::GetTimeGamma() const return fTimeGamma; } -inline G4float G4NucLevel::GammaProbability(const size_t idx) const +inline G4float G4NucLevel::GammaProbability(const std::size_t idx) const { return fGammaProbability[idx]; } -inline G4float G4NucLevel::GammaCumProbability(const size_t idx) const +inline G4float G4NucLevel::GammaCumProbability(const std::size_t idx) const { return fGammaCumProbability[idx]; } -inline G4float G4NucLevel::MultipolarityRatio(const size_t idx) const +inline G4float G4NucLevel::MultipolarityRatio(const std::size_t idx) const { return fMpRatio[idx]; } -inline size_t G4NucLevel::SampleGammaTransition(const G4double rndm) const +inline std::size_t G4NucLevel::SampleGammaTransition(const G4double rndm) const { G4float x = rndm; - size_t idx = 0; + std::size_t idx = 0; for(; idx* prob = fShellProbability[idx]; G4int i(-1); if(nullptr != prob) { - G4int nn = prob->size(); + G4int nn = (G4int)prob->size(); G4float x = rndm; for(i=0; i* -G4NucLevel::ShellProbabilty(size_t idx) const +G4NucLevel::ShellProbabilty(std::size_t idx) const { return fShellProbability[idx]; } #endif - - - - - diff --git a/source/processes/hadronic/models/de_excitation/management/src/G4DeexPrecoParameters.cc b/source/processes/hadronic/models/de_excitation/management/src/G4DeexPrecoParameters.cc index 6e3eccbd25..6e4c8d05b0 100644 --- a/source/processes/hadronic/models/de_excitation/management/src/G4DeexPrecoParameters.cc +++ b/source/processes/hadronic/models/de_excitation/management/src/G4DeexPrecoParameters.cc @@ -292,9 +292,9 @@ std::ostream& G4DeexPrecoParameters::StreamInfo(std::ostream& os) const { static const G4String namm[5] = {"Evaporation","GEM","Evaporation+GEM","GEMVI","Dummy"}; static const G4int nmm[5] = {8, 68, 68, 31, 0}; - size_t idx = (size_t)fDeexChannelType; + G4int idx = fDeexChannelType; - G4int prec = os.precision(5); + G4long prec = os.precision(5); os << "=======================================================================" << "\n"; os << "====== Pre-compound/De-excitation Physics Parameters ========" << "\n"; os << "=======================================================================" << "\n"; diff --git a/source/processes/hadronic/models/de_excitation/management/src/G4LevelManager.cc b/source/processes/hadronic/models/de_excitation/management/src/G4LevelManager.cc index 0b4d1dc794..73918e9c3f 100644 --- a/source/processes/hadronic/models/de_excitation/management/src/G4LevelManager.cc +++ b/source/processes/hadronic/models/de_excitation/management/src/G4LevelManager.cc @@ -50,7 +50,7 @@ G4String G4LevelManager::fFloatingLevels[] = { "-", "+X", "+Y", "+Z", "+U", "+V", "+W", "+R", "+S", "+T", "+A", "+B", "+C"}; -G4LevelManager::G4LevelManager(G4int Z, G4int A, size_t ntrans, +G4LevelManager::G4LevelManager(G4int Z, G4int A, std::size_t ntrans, const std::vector& energies, const std::vector& spin, const std::vector& levels) @@ -61,7 +61,7 @@ G4LevelManager::G4LevelManager(G4int Z, G4int A, size_t ntrans, fLevelEnergy.reserve(ntrans); fSpin.reserve(ntrans); fLevels.reserve(ntrans); - for(size_t i=0; i* G4LevelReader::NormalizedICCProbability(G4int Z) vec->push_back(x); } if (fVerbose > 3) { - G4int prec = G4cout.precision(3); + G4long prec = G4cout.precision(3); G4cout << "# InternalConv: "; - G4int nn = vec->size(); - for(G4int i=0; isize(); + for(std::size_t i=0; i 2) { - G4int prec = G4cout.precision(4); + G4long prec = G4cout.precision(4); G4cout << "### Transition #" << j << " to level " << i2 << " i2= " << i2 << " Etrans(MeV)= " << tener*CLHEP::keV << " fProb= " << fProb << " MultiP= " << tnum @@ -430,7 +430,7 @@ G4LevelReader::LevelManager(G4int Z, G4int A, G4int nlev, G4cout << " New G4NucLevel: Ntrans= " << ntrans << " Time(ns)= " << fTime << G4endl; } - vLevel[i] = new G4NucLevel((size_t)ntrans, fTime, + vLevel[i] = new G4NucLevel((std::size_t)ntrans, fTime, vTrans, vGammaCumProbability, vGammaProbability, @@ -440,7 +440,7 @@ G4LevelReader::LevelManager(G4int Z, G4int A, G4int nlev, } G4LevelManager* lman = nullptr; if(1 <= i) { - lman = new G4LevelManager(Z, A, (size_t)i,vEnergy,vSpin,vLevel); + lman = new G4LevelManager(Z, A, (std::size_t)i,vEnergy,vSpin,vLevel); if(fVerbose > 1) { G4cout << "=== Reader: new manager for Z= " << Z << " A= " << A << " Nlevels= " << i << " E[0]= " diff --git a/source/processes/hadronic/models/de_excitation/management/src/G4NucLevel.cc b/source/processes/hadronic/models/de_excitation/management/src/G4NucLevel.cc index 9a429e1154..1ea3a5e73f 100644 --- a/source/processes/hadronic/models/de_excitation/management/src/G4NucLevel.cc +++ b/source/processes/hadronic/models/de_excitation/management/src/G4NucLevel.cc @@ -43,7 +43,7 @@ #include "G4HadronicException.hh" #include -G4NucLevel::G4NucLevel(size_t ntrans, G4double tgamma, +G4NucLevel::G4NucLevel(std::size_t ntrans, G4double tgamma, const std::vector& vTrans, const std::vector& wLevelGamma, const std::vector& wGamma, @@ -57,7 +57,7 @@ G4NucLevel::G4NucLevel(size_t ntrans, G4double tgamma, fGammaProbability.reserve(length); fMpRatio.reserve(length); fShellProbability.reserve(length); - for(size_t i=0; i* vec = fShellProbability[i]; if(vec) { - size_t len = vec->size(); + std::size_t len = vec->size(); out << " "; - for(size_t j=0; jpush_back(new G4Fragment(theFragment)); - return 0; + return nullptr; } - // Maximun average multiplicity: M_0 = 2.6 for A ~ 200 // and M_0 = 3.3 for A <= 110 G4double MaxAverageMultiplicity = @@ -140,19 +132,14 @@ G4FragmentVector * G4StatMF::BreakItUp(const G4Fragment &theFragment) // Loop checking, 05-Aug-2015, Vladimir Ivanchenko } while (Iterations++ < IterationsLimit ); - - // If Iterations >= IterationsLimit means that we couldn't solve for temperature if (Iterations >= IterationsLimit) throw G4HadronicException(__FILE__, __LINE__, "G4StatMF::BreakItUp: Was not possible to solve for temperature of breaking channel"); - - + G4FragmentVector * theResult = theChannel-> GetFragments(theFragment.GetA_asInt(),theFragment.GetZ_asInt(),Temperature); - - - + // ~~~~~~ Energy conservation Patch !!!!!!!!!!!!!!!!!!!!!! // Original nucleus 4-momentum in CM system G4LorentzVector InitialMomentum(theFragment.GetMomentum()); @@ -250,17 +237,14 @@ G4bool G4StatMF::FindTemperatureOfBreakingChannel(const G4Fragment & theFragment return true; } - T = Tc; - + T = Tc; TotalEnergy = CalcEnergy(A,Z,aChannel,T); - G4double Dc = (U - TotalEnergy)/U; if (Dc == 0.0) { Temperature = Tc; return true; } - if (Da*Dc < 0.0) { T = Tc; Db = Dc; diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFChannel.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFChannel.cc index eeabc383ac..1aa2f27f07 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFChannel.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFChannel.cc @@ -342,7 +342,7 @@ void G4StatMFChannel::SolveEqOfMotion(G4int anA, G4int anZ, G4double T) // for fragments in the self-consistent time-dependent Coulomb field { G4Pow* g4calc = G4Pow::GetInstance(); - G4double CoulombEnergy = 0.6*elm_coupling*anZ*anZ* + G4double CoulombEnergy = 0.6*CLHEP::elm_coupling*anZ*anZ* g4calc->A13(1.0+G4StatMFParameters::GetKappaCoulomb())/ (G4StatMFParameters::Getr0()*g4calc->Z13(anA)) - GetFragmentsCoulombEnergy(); if (CoulombEnergy <= 0.0) return; @@ -357,7 +357,7 @@ void G4StatMFChannel::SolveEqOfMotion(G4int anA, G4int anZ, G4double T) G4ThreeVector * Accel = new G4ThreeVector[_NumOfChargedFragments]; G4int i; - for (i = 0; i < _NumOfChargedFragments; i++) + for (i = 0; i < _NumOfChargedFragments; ++i) { Vel[i] = (1.0/(_theFragments[i]->GetNuclearMass()))* _theFragments[i]->GetMomentum(); @@ -368,25 +368,24 @@ void G4StatMFChannel::SolveEqOfMotion(G4int anA, G4int anZ, G4double T) G4ThreeVector force(0.,0.,0.); G4ThreeVector SavedVel(0.,0.,0.); do { - for (i = 0; i < _NumOfChargedFragments; i++) + for (i = 0; i < _NumOfChargedFragments; ++i) { force.set(0.,0.,0.); - for (G4int j = 0; j < _NumOfChargedFragments; j++) + for (G4int j = 0; j < _NumOfChargedFragments; ++j) { if (i != j) { distance = Pos[i] - Pos[j]; - force += (elm_coupling*_theFragments[i]->GetZ() - *_theFragments[j]->GetZ()/ + force += (_theFragments[i]->GetZ()*_theFragments[j]->GetZ()/ (distance.mag2()*distance.mag()))*distance; } } - Accel[i] = (1./(_theFragments[i]->GetNuclearMass()))*force; + Accel[i] = CLHEP::elm_coupling*CLHEP::fermi*force/_theFragments[i]->GetNuclearMass(); } TimeN = TimeS + DeltaTime; - for ( i = 0; i < _NumOfChargedFragments; i++) + for ( i = 0; i < _NumOfChargedFragments; ++i) { SavedVel = Vel[i]; Vel[i] += Accel[i]*(TimeN-TimeS); @@ -399,23 +398,19 @@ void G4StatMFChannel::SolveEqOfMotion(G4int anA, G4int anZ, G4double T) // Summed fragment kinetic energy G4double TotalKineticEnergy = 0.0; - for (i = 0; i < _NumOfChargedFragments; i++) + for (i = 0; i < _NumOfChargedFragments; ++i) { TotalKineticEnergy += _theFragments[i]->GetNuclearMass()* 0.5*Vel[i].mag2(); } // Scaling of fragment velocities - G4double KineticEnergy = 1.5*_theFragments.size()*T; - G4double Eta = ( CoulombEnergy + KineticEnergy ) / TotalKineticEnergy; - for (i = 0; i < _NumOfChargedFragments; i++) - { - Vel[i] *= Eta; - } - + G4double KineticEnergy = 1.5*_NumOfChargedFragments*T; + G4double Eta = std::pow(( CoulombEnergy + KineticEnergy ) / TotalKineticEnergy, 2); + // Finally calculate fragments momenta - for (i = 0; i < _NumOfChargedFragments; i++) + for (i = 0; i < _NumOfChargedFragments; ++i) { - _theFragments[i]->SetMomentum(_theFragments[i]->GetNuclearMass()*Vel[i]); + _theFragments[i]->SetMomentum((_theFragments[i]->GetNuclearMass()*Eta)*Vel[i]); } // garbage collection diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroCanonical.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroCanonical.cc index c98efe3ebb..13f4324d2e 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroCanonical.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroCanonical.cc @@ -215,12 +215,12 @@ G4StatMFChannel * G4StatMFMacroCanonical::ChooseZ(G4int & Z, G4int DeltaZ = 0; G4double CP = G4StatMFParameters::GetCoulomb(); - G4int multiplicity = FragmentsA.size(); + G4int multiplicity = (G4int)FragmentsA.size(); do { FragmentsZ.clear(); G4int SumZ = 0; - for (G4int i = 0; i < multiplicity; i++) + for (G4int i = 0; i < multiplicity; ++i) { G4int A = FragmentsA[i]; if (A <= 1) @@ -269,7 +269,7 @@ G4StatMFChannel * G4StatMFMacroCanonical::ChooseZ(G4int & Z, FragmentsZ[idx] += DeltaZ; G4StatMFChannel * theChannel = new G4StatMFChannel; - for (G4int i = multiplicity-1; i >= 0; i--) + for (G4int i = multiplicity-1; i >= 0; --i) { theChannel->CreateFragment(FragmentsA[i],FragmentsZ[i]); } diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroPartition.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroPartition.cc index 374104815e..89f3076c11 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroPartition.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroPartition.cc @@ -281,7 +281,7 @@ G4double G4StatMFMicroPartition::CalcPartitionProbability(G4double U, ThermalWaveLenght3 = ThermalWaveLenght3*ThermalWaveLenght3*ThermalWaveLenght3; // Translational Entropy - G4double kappa = 1. + elm_coupling*(g4calc->Z13(_thePartition.size())-1.0) + G4double kappa = 1. + elm_coupling*(g4calc->Z13((G4int)_thePartition.size())-1.0) /(G4StatMFParameters::Getr0()*g4calc->Z13(theA)); kappa = kappa*kappa*kappa; kappa -= 1.; diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PhotonEvaporation.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PhotonEvaporation.hh index b93b1d9f4b..0c2b609625 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PhotonEvaporation.hh +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PhotonEvaporation.hh @@ -36,13 +36,9 @@ // // Creation date: 22 October 2015 // -//Modifications: -// -// // ------------------------------------------------------------------- // -// This is a new class which has different design and uses different data -// structure than the old one +// This is gamma deexcitation model based on the nuclear levels data // #ifndef G4PHOTONEVAPORATION_HH @@ -53,10 +49,9 @@ #include "G4NuclearLevelData.hh" #include "G4LevelManager.hh" #include "G4Fragment.hh" -#include "G4Threading.hh" const G4int MAXDEPOINT = 10; -const G4int MAXGRDATA = 300; +const G4int MAXGRDATA = 300; class G4GammaTransition; @@ -152,10 +147,6 @@ private: G4bool fSampleTime; G4bool fCorrelatedGamma; G4bool isInitialised; - -#ifdef G4MULTITHREADED - static G4Mutex PhotonEvaporationMutex; -#endif }; inline void G4PhotonEvaporation::SetVerboseLevel(G4int verbose) diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4GammaTransition.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4GammaTransition.cc index 9b50e121b3..b7796ee8ab 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4GammaTransition.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4GammaTransition.cc @@ -69,9 +69,8 @@ G4GammaTransition::SampleTransition(G4Fragment* nucleus, if (!isGamma) { if(0 <= shell) { G4int Z = nucleus->GetZ_asInt(); - if(Z <= 100) { - G4int idx = (G4int)shell; - idx = std::min(idx, G4AtomicShells::GetNumberOfShells(Z)-1); + if(Z <= 104) { + G4int idx = std::min(shell, G4AtomicShells::GetNumberOfShells(Z)-1); bond_energy = G4AtomicShells::GetBindingEnergy(Z, idx); } } @@ -95,7 +94,7 @@ G4GammaTransition::SampleTransition(G4Fragment* nucleus, // select secondary G4ParticleDefinition* part; - if(isGamma) { part = G4Gamma::Gamma(); } + if(isGamma) { part = G4Gamma::Gamma(); } else { part = G4Electron::Electron(); G4int ne = std::max(nucleus->GetNumberOfElectrons() - 1, 0); diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PhotonEvaporation.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PhotonEvaporation.cc index 200c650d0d..c3b7b3d696 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PhotonEvaporation.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PhotonEvaporation.cc @@ -35,9 +35,6 @@ // // Creation date: 20 December 2011 // -//Modifications: -// -// // ------------------------------------------------------------------- // @@ -53,14 +50,16 @@ #include #include #include "G4PhysicsModelCatalog.hh" +#include "G4AutoLock.hh" + +namespace +{ + G4Mutex photEvaporationMutex = G4MUTEX_INITIALIZER; +} G4float G4PhotonEvaporation::GREnergy[] = {0.0f}; G4float G4PhotonEvaporation::GRWidth[] = {0.0f}; -#ifdef G4MULTITHREADED -G4Mutex G4PhotonEvaporation::PhotonEvaporationMutex = G4MUTEX_INITIALIZER; -#endif - G4PhotonEvaporation::G4PhotonEvaporation(G4GammaTransition* p) : fLevelManager(nullptr), fTransition(p), fPolarization(nullptr), fVerbose(1), fPoints(0), vShellNumber(-1), fIndex(0), fSecID(-1), @@ -109,20 +108,18 @@ void G4PhotonEvaporation::Initialise() void G4PhotonEvaporation::InitialiseGRData() { -#ifdef G4MULTITHREADED - G4MUTEXLOCK(&G4PhotonEvaporation::PhotonEvaporationMutex); -#endif - if(0.0f == GREnergy[1]) { - G4Pow* g4calc = G4Pow::GetInstance(); - const G4float GRWfactor = 0.3f; - for (G4int A=1; ApowZ(A,0.2)); - GRWidth[A] = GRWfactor*GREnergy[A]; + if(0.0f == GREnergy[1]) { + G4AutoLock l(&photEvaporationMutex); + if(0.0f == GREnergy[1]) { + G4Pow* g4calc = G4Pow::GetInstance(); + const G4float GRWfactor = 0.3f; + for (G4int A=1; ApowZ(A,0.2)); + GRWidth[A] = GRWfactor*GREnergy[A]; + } } - } -#ifdef G4MULTITHREADED - G4MUTEXUNLOCK(&G4PhotonEvaporation::PhotonEvaporationMutex); -#endif + l.unlock(); + } } G4Fragment* @@ -136,9 +133,9 @@ G4PhotonEvaporation::EmittedFragment(G4Fragment* nucleus) G4NuclearPolarizationStore* fNucPStore = nullptr; if(fCorrelatedGamma && fRDM) { fNucPStore = G4NuclearPolarizationStore::GetInstance(); - if(nucleus->GetNuclearPolarization()) { - fNucPStore->RemoveMe(nucleus->GetNuclearPolarization()); - delete nucleus->GetNuclearPolarization(); + auto nucp = nucleus->GetNuclearPolarization(); + if(nullptr != nucp) { + fNucPStore->RemoveMe(nucp); } fPolarization = fNucPStore->FindOrBuild(nucleus->GetZ_asInt(), nucleus->GetA_asInt(), @@ -226,7 +223,7 @@ G4bool G4PhotonEvaporation::BreakUpChain(G4FragmentVector* products, } while(gamma); // clear nuclear polarization end of chain - if(fPolarization) { + if(nullptr != fPolarization) { delete fPolarization; fPolarization = nullptr; nucleus->SetNuclearPolarization(fPolarization); @@ -372,7 +369,7 @@ G4PhotonEvaporation::GenerateGamma(G4Fragment* nucleus) G4bool isDiscrete = false; const G4NucLevel* level = nullptr; - size_t ntrans = 0; + std::size_t ntrans = 0; if(fVerbose > 2) { G4cout << "GenerateGamma: " << " Eex= " << eexc @@ -413,7 +410,7 @@ G4PhotonEvaporation::GenerateGamma(G4Fragment* nucleus) if(0 == ntrans) { isDiscrete = false; } } if(fVerbose > 2) { - G4int prec = G4cout.precision(4); + G4long prec = G4cout.precision(4); G4cout << "GenerateGamma: Z= " << nucleus->GetZ_asInt() << " A= " << nucleus->GetA_asInt() << " Exc= " << eexc << " Emax= " @@ -502,7 +499,7 @@ G4PhotonEvaporation::GenerateGamma(G4Fragment* nucleus) return result; } - size_t idx = 0; + std::size_t idx = 0; if(1 < ntrans) { idx = level->SampleGammaTransition(G4UniformRand()); } diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PolarizationTransition.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PolarizationTransition.cc index c59f93f22a..bdd8b8fe74 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PolarizationTransition.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PolarizationTransition.cc @@ -103,14 +103,14 @@ G4double G4PolarizationTransition::GammaTransF3Coefficient(G4int K, G4int K2, G4double G4PolarizationTransition::GenerateGammaCosTheta(const POLAR& pol) { - size_t length = pol.size(); + std::size_t length = pol.size(); // Isotropic case if(length <= 1) return G4UniformRand()*2.-1.; // kappa > 0 terms integrate out to zero over phi: 0->2pi, so just need (k,0) // terms to generate cos theta distribution vector polyPDFCoeffs(length, 0.0); - for(size_t k = 0; k < length; k += 2) { + for(G4int k = 0; k < (G4int)length; k += 2) { if ((pol[k]).size() > 0 ) { if(fVerbose > 1 && std::abs(((pol)[k])[0].imag()) > kEps) { G4cout << "G4PolarizationTransition::GenerateGammaCosTheta WARNING: \n" @@ -120,8 +120,8 @@ G4double G4PolarizationTransition::GenerateGammaCosTheta(const POLAR& pol) << ((pol)[k])[0].imag() << "*i" << G4endl; } G4double a_k = std::sqrt((G4double)(2*k+1))*GammaTransFCoefficient(k)*((pol)[k])[0].real(); - size_t nCoeff = fgLegendrePolys.GetNCoefficients(k); - for(size_t iCoeff=0; iCoeff < nCoeff; ++iCoeff) { + std::size_t nCoeff = fgLegendrePolys.GetNCoefficients(k); + for(std::size_t iCoeff=0; iCoeff < nCoeff; ++iCoeff) { polyPDFCoeffs[iCoeff] += a_k*fgLegendrePolys.GetCoefficient(iCoeff, k); } } else { @@ -143,10 +143,10 @@ G4double G4PolarizationTransition::GenerateGammaCosTheta(const POLAR& pol) G4double G4PolarizationTransition::GenerateGammaPhi(G4double& cosTheta, const POLAR& pol) { - size_t length = pol.size(); + G4int length = (G4int)pol.size(); // Isotropic case G4bool phiIsIsotropic = true; - for(size_t i=0; i 1) { phiIsIsotropic = false; break; @@ -154,18 +154,16 @@ G4double G4PolarizationTransition::GenerateGammaPhi(G4double& cosTheta, } if(phiIsIsotropic) { return G4UniformRand()*CLHEP::twopi; } - // map > cache; map >* cachePtr = nullptr; - // if(length > 10) cachePtr = &cache; // Otherwise, P(phi) can be written as a sum of cos(kappa phi + phi_kappa). // Calculate the amplitude and phase for each term std::vector amp(length, 0.0); std::vector phase(length, 0.0); - for(size_t kappa = 0; kappa < length; ++kappa) { + for(G4int kappa = 0; kappa < length; ++kappa) { G4complex cAmpSum(0.,0.); - for(size_t k = kappa + (kappa % 2); k < length; k += 2) { - size_t kmax = (pol[k]).size(); + for(G4int k = kappa + (kappa % 2); k < length; k += 2) { + G4int kmax = (G4int)pol[k].size(); if(kmax > 0) { if(kappa >= kmax || std::abs(((pol)[k])[kappa]) < kEps) { continue; } G4double tmpAmp = GammaTransFCoefficient(k); @@ -195,7 +193,7 @@ G4double G4PolarizationTransition::GenerateGammaPhi(G4double& cosTheta, // Normalize PDF and calc max (note: it's not the true max, but the max // assuming that all of the phases line up at a max) G4double pdfMax = 0.; - for(size_t kappa = 0; kappa < length; ++kappa) { pdfMax += amp[kappa]; } + for(G4int kappa = 0; kappa < length; ++kappa) { pdfMax += amp[kappa]; } if(fVerbose > 1 && pdfMax < kEps) { G4cout << "G4PolarizationTransition::GenerateGammaPhi: WARNING " << "got pdfMax = 0 for \n"; @@ -206,11 +204,11 @@ G4double G4PolarizationTransition::GenerateGammaPhi(G4double& cosTheta, } // Finally, throw phi until it falls in the pdf - for(size_t i=0; i<100; ++i) { + for(std::size_t i=0; i<100; ++i) { G4double phi = G4UniformRand()*CLHEP::twopi; G4double prob = G4UniformRand()*pdfMax; G4double pdfSum = amp[0]; - for(size_t kappa = 1; kappa < length; ++kappa) { + for(G4int kappa = 1; kappa < length; ++kappa) { pdfSum += amp[kappa]*std::cos(phi*kappa + phase[kappa]); } if(fVerbose > 1 && pdfSum > pdfMax) { @@ -278,7 +276,7 @@ void G4PolarizationTransition::SampleGammaTransition( return; } - size_t newlength = fTwoJ2+1; + std::size_t newlength = fTwoJ2+1; //POLAR newPol(newlength); POLAR newPol; @@ -286,19 +284,19 @@ void G4PolarizationTransition::SampleGammaTransition( map >* cachePtr = nullptr; //if(newlength > 10 || pol.size() > 10) cachePtr = &cache; - for(size_t k2=0; k2 npolar; npolar.resize(k2+1, 0); //(newPol[k2]).assign(k2+1, 0); - for(size_t k1=0; k1 0.0) { - lastNonZero = kappa2; + lastNonZero = (G4int)kappa2; (newPol[k2])[kappa2] /= (newPol[0])[0]; } } - while((newPol[k2]).size() != size_t (lastNonZero+1)) (newPol[k2]).pop_back(); + while((newPol[k2]).size() != std::size_t (lastNonZero+1)) (newPol[k2]).pop_back(); if((newPol[k2]).size() > 0) lastNonEmptyK2 = k2; } @@ -393,9 +391,9 @@ void G4PolarizationTransition::DumpTransitionData(const POLAR& pol) const G4cout << ")--> "; (fTwoJ2 % 2) ? G4cout << fTwoJ2 << "/2" : G4cout << fTwoJ2/2; G4cout << ", P = [ { "; - for(size_t k=0; k0) G4cout << " }, { "; - for(size_t kappa=0; kappa<(pol[k]).size(); ++kappa) { + for(std::size_t kappa=0; kappa<(pol[k]).size(); ++kappa) { if(kappa > 0) G4cout << ", "; G4cout << (pol[k])[kappa].real() << " + " << (pol[k])[kappa].imag() << "*i"; } diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh index 817232aa39..bb17df8a9f 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh @@ -35,11 +35,8 @@ #include "globals.hh" #include "G4VCoulombBarrier.hh" -class G4Pow; - class G4CoulombBarrier : public G4VCoulombBarrier { - public: explicit G4CoulombBarrier(G4int anA, G4int aZ); @@ -51,15 +48,6 @@ public: G4CoulombBarrier(const G4CoulombBarrier & right) = delete; const G4CoulombBarrier & operator=(const G4CoulombBarrier & right) = delete; - G4bool operator==(const G4CoulombBarrier & right) const = delete; - G4bool operator!=(const G4CoulombBarrier & right) const = delete; - -protected: - - G4Pow* g4calc; - -private: - - G4double factor; }; + #endif diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh index d438685344..8333239f69 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh @@ -33,6 +33,8 @@ #include "globals.hh" +class G4Pow; + class G4VCoulombBarrier { public: @@ -43,26 +45,23 @@ public: virtual G4double GetCoulombBarrier(G4int ARes, G4int ZRes, G4double U = 0.0) const = 0; - virtual G4double BarrierPenetrationFactor(G4int aZ) const = 0; + virtual G4double BarrierPenetrationFactor(G4int aZ) const; void SetParameters(G4double rho, G4double r0); - - inline G4int GetA(void) const { return theA; } - inline G4int GetZ(void) const { return theZ; } - inline G4double GetRho(void) const { return theRho; } - inline G4double GetR0(void) const { return theR0; } G4VCoulombBarrier(const G4VCoulombBarrier & right) = delete; const G4VCoulombBarrier & operator=(const G4VCoulombBarrier & right) = delete; - G4bool operator==(const G4VCoulombBarrier & right) const = delete; - G4bool operator!=(const G4VCoulombBarrier & right) const = delete; -private: +protected: + G4Pow* g4calc; + G4int theA; G4int theZ; - G4double theRho; + G4double theR0; + G4double theRho = 0.0; + G4double factor = 0.0; }; #endif diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc index 0d80ded774..160cf14392 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc @@ -33,11 +33,10 @@ #include "G4CoulombBarrier.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" -#include "G4Pow.hh" #include "G4NuclearRadii.hh" G4CoulombBarrier::G4CoulombBarrier(G4int A, G4int Z) - : G4VCoulombBarrier(A, Z), g4calc(G4Pow::GetInstance()) + : G4VCoulombBarrier(A, Z) { factor = CLHEP::elm_coupling*Z; SetParameters(0.4*G4NuclearRadii::RadiusCB(Z, A), 1.5*CLHEP::fermi); @@ -46,7 +45,8 @@ G4CoulombBarrier::G4CoulombBarrier(G4int A, G4int Z) G4double G4CoulombBarrier::GetCoulombBarrier( G4int ARes, G4int ZRes, G4double U) const { - G4double cb = factor*ZRes/(G4NuclearRadii::RadiusCB(ZRes,ARes) + GetRho()); + if(0 == theZ) { return 0.0; } + G4double cb = factor*ZRes/(G4NuclearRadii::RadiusCB(ZRes,ARes) + theRho); if(U > 0.0) { cb /= (1.0 + std::sqrt( U/((2*ARes)*CLHEP::MeV) )); } return cb; } @@ -62,15 +62,15 @@ G4double G4CoulombBarrier::BarrierPenetrationFactor(G4int aZ) const // const G4double Kprot[size] = {0.42, 0.58, 0.68, 0.77, 0.80}; // G4double res = 1.0; - if(GetZ() == 1) { + if(theZ == 1) { res = (aZ >= 70) ? 0.80 : (((0.2357e-5*aZ) - 0.42679e-3)*aZ + 0.27035e-1)*aZ + 0.19025; - res += 0.06*(GetA() - 1); + res += 0.06*(theA - 1); - } else if(GetZ() == 2 && GetA() <= 4) { + } else if(theZ == 2 && theA <= 4) { res = (aZ >= 70) ? 0.98 : (((0.23684e-5*aZ) - 0.42143e-3)*aZ + 0.25222e-1)*aZ + 0.46699; - res += 0.12*(4 - GetA()); + res += 0.12*(4 - theA); } return res; } diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc index e9ab13dd9f..bc02a0c120 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc @@ -29,12 +29,13 @@ #include "G4VCoulombBarrier.hh" #include "G4PhysicalConstants.hh" +#include "G4Pow.hh" G4VCoulombBarrier::G4VCoulombBarrier(G4int anA, G4int aZ) + : g4calc(G4Pow::GetInstance()) { theA = anA; theZ = aZ; - theRho = 0.0; theR0 = 1.5*CLHEP::fermi; } @@ -43,3 +44,9 @@ void G4VCoulombBarrier::SetParameters(G4double rho, G4double r0) theRho = rho; theR0 = r0; } + +G4double G4VCoulombBarrier::BarrierPenetrationFactor(G4int) const +{ + return 1.0; +} + diff --git a/source/processes/hadronic/models/fission/History b/source/processes/hadronic/models/fission/History index 6743838b51..66fbce5e24 100644 --- a/source/processes/hadronic/models/fission/History +++ b/source/processes/hadronic/models/fission/History @@ -1,9 +1,21 @@ # Category hadr-fission History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-26 Gabriele Cosmo (hadr-fission-V11-00-03) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-09-05 Ben Morgan (hadr-fission-V11-00-02) +- Update dependencies to address warnings from consistency check + +## 2022-07-01 Alberto Ribon (hadr-fission-V11-00-01) +- G4FissLib.cc, G4LFission.cc : use consistent thresholds for relative + (10% instead of 5%) and absolute (350 GeV instead of 250 GeV) energy + non-conservation check. ## 2021-12-10 Ben Morgan (hadr-fission-V11-00-00) - Change to new Markdown History format diff --git a/source/processes/hadronic/models/fission/sources.cmake b/source/processes/hadronic/models/fission/sources.cmake index f8b12f813f..f860c312f3 100644 --- a/source/processes/hadronic/models/fission/sources.cmake +++ b/source/processes/hadronic/models/fission/sources.cmake @@ -47,5 +47,4 @@ geant4_module_link_libraries(G4had_fission G4hadronic_util G4heprandom G4leptons - G4materials G4track) diff --git a/source/processes/hadronic/models/fission/src/G4FissLib.cc b/source/processes/hadronic/models/fission/src/G4FissLib.cc index b062c9ce15..f8db17c385 100644 --- a/source/processes/hadronic/models/fission/src/G4FissLib.cc +++ b/source/processes/hadronic/models/fission/src/G4FissLib.cc @@ -73,10 +73,10 @@ G4FissLib::G4FissLib() dirName = G4FindDataDir("G4NEUTRONHPDATA"); G4String tString = "/Fission/"; dirName = dirName + tString; - numEle = G4Element::GetNumberOfElements(); + numEle = (G4int)G4Element::GetNumberOfElements(); theFission = new G4ParticleHPChannel[numEle]; - for (G4int i=0; iGetZ()<< G4endl; if((*(G4Element::GetElementTable()))[i]->GetZ()>89) @@ -98,18 +98,18 @@ G4FissLib::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aNucleus) G4ParticleHPManager::GetInstance()->OpenReactionWhiteBoard(); const G4Material* theMaterial = aTrack.GetMaterial(); - G4int n = theMaterial->GetNumberOfElements(); - G4int index = theMaterial->GetElement(0)->GetIndex(); + std::size_t n = theMaterial->GetNumberOfElements(); + std::size_t index = theMaterial->GetElement(0)->GetIndex(); if (n != 1) { xSec = new G4double[n]; G4double sum = 0; G4int i; - G4int imat; + std::size_t imat; const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); G4double rWeight; G4ParticleHPThermalBoost aThermalE; - for (i = 0; i < n; i++) { + for (i = 0; i < (G4int)n; ++i) { imat = theMaterial->GetElement(i)->GetIndex(); rWeight = NumAtomsPerVolume[i]; xSec[i] = theFission[imat].GetXsec(aThermalE.GetThermalEnergy(aTrack, @@ -121,7 +121,7 @@ G4FissLib::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aNucleus) G4double random = G4UniformRand(); G4double running = 0; - for (i = 0; i < n; i++) { + for (i = 0; i < (G4int)n; ++i) { running += xSec[i]; index = theMaterial->GetElement(i)->GetIndex(); if(random<=running/sum) break; @@ -135,8 +135,8 @@ G4FissLib::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aNucleus) aNucleus.SetParameters(G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargA(),G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargZ()); const G4Element* target_element = (*G4Element::GetElementTable())[index]; const G4Isotope* target_isotope=NULL; - G4int iele = target_element->GetNumberOfIsotopes(); - for ( G4int j = 0 ; j != iele ; j++ ) { + G4int iele = (G4int)target_element->GetNumberOfIsotopes(); + for ( G4int j = 0 ; j != iele ; ++j ) { target_isotope=target_element->GetIsotope( j ); if ( target_isotope->GetN() == G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargA() ) break; } @@ -147,6 +147,6 @@ G4FissLib::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aNucleus) const std::pair G4FissLib::GetFatalEnergyCheckLevels() const { - // max energy non-conservation is mass of heavy nucleus (taken from G4LFission) - return std::pair(5*perCent,250*GeV); + // max energy non-conservation is mass of heavy nucleus + return std::pair(10.0*perCent, 350.0*CLHEP::GeV); } diff --git a/source/processes/hadronic/models/fission/src/G4LFission.cc b/source/processes/hadronic/models/fission/src/G4LFission.cc index c7fda77d34..969e5e6cd8 100644 --- a/source/processes/hadronic/models/fission/src/G4LFission.cc +++ b/source/processes/hadronic/models/fission/src/G4LFission.cc @@ -284,5 +284,5 @@ G4double G4LFission::Atomas(const G4double A, const G4double Z) const std::pair G4LFission::GetFatalEnergyCheckLevels() const { // max energy non-conservation is mass of heavy nucleus - return std::pair(5*perCent,250*GeV); + return std::pair(10.0*perCent, 350.0*CLHEP::GeV); } diff --git a/source/processes/hadronic/models/gamma_nuclear/History b/source/processes/hadronic/models/gamma_nuclear/History index 93d4e33fb5..85cf6b400e 100644 --- a/source/processes/hadronic/models/gamma_nuclear/History +++ b/source/processes/hadronic/models/gamma_nuclear/History @@ -5,6 +5,9 @@ which **must** added in reverse chronological order (newest at the top). It must be used as a substitute for writing good git commit messages! +## 2022-09-05 Ben Morgan (hadr-gammanuc-V11-00-01) +- Update dependencies to address warnings from consistency check + ## 2021-12-10 Ben Morgan (hadr-gammanuc-V11-00-00) - Change to new Markdown History format diff --git a/source/processes/hadronic/models/gamma_nuclear/sources.cmake b/source/processes/hadronic/models/gamma_nuclear/sources.cmake index 2d7a56af6c..ca83c785ab 100644 --- a/source/processes/hadronic/models/gamma_nuclear/sources.cmake +++ b/source/processes/hadronic/models/gamma_nuclear/sources.cmake @@ -9,5 +9,6 @@ geant4_module_link_libraries(G4had_gamma_nuclear PUBLIC G4had_lend PRIVATE + G4globman G4hadronic_bert_cascade G4partman) diff --git a/source/processes/hadronic/models/im_r_matrix/History b/source/processes/hadronic/models/im_r_matrix/History index 91848ca6d1..12b24d93ef 100644 --- a/source/processes/hadronic/models/im_r_matrix/History +++ b/source/processes/hadronic/models/im_r_matrix/History @@ -1,9 +1,13 @@ # Category had-im_r History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-26 Gabriele Cosmo (had-im_r-V11-00-01) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2021-12-10 Ben Morgan (had-im_r-V11-00-00) - Change to new Markdown History format diff --git a/source/processes/hadronic/models/im_r_matrix/include/G4CollisionManager.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionManager.hh index f9cd2957e2..53b3c4fcfc 100644 --- a/source/processes/hadronic/models/im_r_matrix/include/G4CollisionManager.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionManager.hh @@ -41,7 +41,7 @@ public: G4int Entries(); void AddCollision(G4double time, G4KineticTrack * proj, - G4KineticTrack * target = NULL); + G4KineticTrack * target = nullptr); void AddCollision(G4CollisionInitialState * collision) { theCollisionList->push_back(collision); @@ -60,26 +60,10 @@ private: G4ListOfCollisions * theCollisionList; //was sorted (by time) vector... }; - - inline G4int G4CollisionManager::Entries() { - return theCollisionList->size(); + return (G4int)theCollisionList->size(); } #endif - - - - - - - - - - - - - - diff --git a/source/processes/hadronic/models/im_r_matrix/include/G4PartialWidthTable.hh b/source/processes/hadronic/models/im_r_matrix/include/G4PartialWidthTable.hh index ee6e3a280a..c61c994fd3 100644 --- a/source/processes/hadronic/models/im_r_matrix/include/G4PartialWidthTable.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4PartialWidthTable.hh @@ -85,21 +85,3 @@ private: }; #endif - - - - - - - - - - - - - - - - - - diff --git a/source/processes/hadronic/models/im_r_matrix/src/G4CrossSectionComposite.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CrossSectionComposite.cc index b5f3542e51..52e0268074 100644 --- a/source/processes/hadronic/models/im_r_matrix/src/G4CrossSectionComposite.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CrossSectionComposite.cc @@ -76,11 +76,8 @@ G4double G4CrossSectionComposite::CrossSection(const G4KineticTrack& trk1, const G4CrossSectionVector* components = GetComponents(); if (components != 0) { - G4int nComponents = this->GetComponents()->size(); -// G4int nValid = 0; - - G4int i; - for (i=0; isize(); + for (std::size_t i=0; isize(); - G4int i; - for (i=0; isize(); + for (std::size_t i=0; iGetComponents()->size(); -// G4int nValid = 0; + std::size_t nComponents = this->GetComponents()->size(); - G4int i; - for (i=0; isize(); - G4int i; - for (i=0; isize(); + for (std::size_t i=0; i 1) throw G4HadronicException(__FILE__, __LINE__, "G4PartialWidthTable::Width - ambiguity"); @@ -124,16 +123,14 @@ void G4PartialWidthTable::AddWidths(const G4double* channelWidth, void G4PartialWidthTable::Dump() const { - G4int entries = widths.size(); + std::size_t entries = widths.size(); - G4int i; - for (i=0; iCrossSection(aTrk1,aTrk2); - } - return sigma; + if (xSource != nullptr) + { + // There is a cross section for this Collision + sigma = xSource->CrossSection(aTrk1,aTrk2); + } + return sigma; } void G4VCollision::Print() const { - G4String name = GetName(); + G4String name = GetName(); - G4cout << "---- " << name << "---- Cross section" << G4endl; + G4cout << "---- " << name << "---- Cross section" << G4endl; - const G4VCrossSectionSource* xSource = GetCrossSectionSource(); - if (xSource) xSource->Print(); - - G4int nComponents = 0; - const G4CollisionVector* components = GetComponents(); - if (components) - { - nComponents = components->size(); - } - G4cout << "---- " << name << "---- has " << nComponents << " components" <begin(); iter != components->end(); ++iter) - { - G4cout << "---- " << name << " ---- Component " << i << G4endl; - ((*iter))->Print(); - i++; - } - } + const G4VCrossSectionSource* xSource = GetCrossSectionSource(); + if (xSource) xSource->Print(); + G4int nComponents = 0; + const G4CollisionVector* components = GetComponents(); + if (components) + { + nComponents = (G4int)components->size(); + } + G4cout << "---- " << name << "---- has " << nComponents << " components" <cbegin(); iter != components->cend(); ++iter) + { + G4cout << "---- " << name << " ---- Component " << i << G4endl; + ((*iter))->Print(); + ++i; + } + } } void G4VCollision::Print(const G4KineticTrack& trk1, - const G4KineticTrack& trk2) const + const G4KineticTrack& trk2) const { - G4String name = GetName(); + G4String name = GetName(); - if (IsInCharge(trk1,trk2)) - { - G4cout << "---- " << name << "is in charge ---- " << G4endl; - } - else - { - G4cout << "---- " << name << "is not in charge ---- " << G4endl; - } + if (IsInCharge(trk1,trk2)) + { + G4cout << "---- " << name << "is in charge ---- " << G4endl; + } + else + { + G4cout << "---- " << name << "is not in charge ---- " << G4endl; + } - G4cout << "---- " << name << "---- Cross section" << G4endl; + G4cout << "---- " << name << "---- Cross section" << G4endl; - const G4VCrossSectionSource* xSource = GetCrossSectionSource(); - if (xSource) xSource->Print(); - G4cout << "Cross section = " << CrossSection(trk1,trk2) << G4endl; + const G4VCrossSectionSource* xSource = GetCrossSectionSource(); + if (xSource) xSource->Print(); + G4cout << "Cross section = " << CrossSection(trk1,trk2) << G4endl; - G4int nComponents = 0; - const G4CollisionVector* components = GetComponents(); - if (components) - { - nComponents = components->size(); - } - G4cout << "---- " << name << "has " << nComponents << " components" <size(); + } + G4cout << "---- " << name << "has " << nComponents << " components" <begin(); iter != components->end(); ++iter) - { - G4cout << "Component " << i << G4endl; - ((*iter))->Print(); - i++; - } - } + G4int i = 0; + if (components) + { + for (auto iter = components->cbegin(); iter != components->cend(); ++iter) + { + G4cout << "Component " << i << G4endl; + ((*iter))->Print(); + ++i; + } + } } -G4VCollision::G4VCollision(void*, void*, void *, void *, void *, void *, void *){} -void G4VCollision::establish_G4MT_TLS_G4VCollision(){ } +G4VCollision::G4VCollision(void*, void*, void *, void *, void *, void *, void *) +{ +} + +void G4VCollision::establish_G4MT_TLS_G4VCollision() +{ +} diff --git a/source/processes/hadronic/models/im_r_matrix/src/G4VCrossSectionSource.cc b/source/processes/hadronic/models/im_r_matrix/src/G4VCrossSectionSource.cc index 037facfeb4..0e32463c3a 100644 --- a/source/processes/hadronic/models/im_r_matrix/src/G4VCrossSectionSource.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4VCrossSectionSource.cc @@ -85,15 +85,14 @@ G4bool G4VCrossSectionSource::operator!=(const G4VCrossSectionSource &right) con void G4VCrossSectionSource::Print() const { - G4int nComponents = 0; + std::size_t nComponents = 0; const G4CrossSectionVector* components = GetComponents(); if (components) { nComponents = components->size(); } G4cout << "---- " << this->Name() << " ---- has " << nComponents << " components" <Name() << " - Component " << i << ": " <size(); } - G4int i; - for (i=0; iGetComponents()->size(); - G4int i; - for (i=0; isize(); + for (std::size_t i=0; iGetComponents()->size(); - G4int i; - for (i=0; isize(); + for (std::size_t i=0; iGetComponents()->size(); - G4int i; - for (i=0; isize(); + for (std::size_t i=0; iGetComponents()->size(); - G4int i; - for (i=0; isize(); + for (std::size_t i=0; igetA(); - theEventInfo.Zt = nucleus->getZ(); - theEventInfo.St = nucleus->getS(); + theEventInfo.At = (G4INCL::Short_t)nucleus->getA(); + theEventInfo.Zt = (G4INCL::Short_t)nucleus->getZ(); + theEventInfo.St = (G4INCL::Short_t)nucleus->getS(); // Do nothing below the Coulomb barrier if(maxImpactParameter<=0.) { @@ -794,7 +794,7 @@ namespace G4INCL { // Add the dynamical spectators to the bunch ParticleList rejected = theProjectileRemnant->addAllDynamicalSpectators(dynSpectators); // Put back the rejected spectators into the outgoing list - nUnmergedSpectators = rejected.size(); + nUnmergedSpectators = (G4int)rejected.size(); nucleus->getStore()->addToOutgoing(rejected); // Deal with the projectile remnant diff --git a/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLCoulombNone.cc b/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLCoulombNone.cc index 90829e9651..b9f2567f63 100644 --- a/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLCoulombNone.cc +++ b/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLCoulombNone.cc @@ -80,7 +80,7 @@ namespace G4INCL { // Keep track of the first entering particle if(intersection.time < theFirstEntryTime) { theFirstEntryTime = intersection.time; - theFirstID = (*p)->getID(); + theFirstID = (G4int)(*p)->getID(); } } } diff --git a/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNNToMissingStrangenessChannel.cc b/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNNToMissingStrangenessChannel.cc index 6975daa05d..edd8e9e250 100644 --- a/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNNToMissingStrangenessChannel.cc +++ b/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNNToMissingStrangenessChannel.cc @@ -70,8 +70,6 @@ namespace G4INCL { G4double rdm = Random::shoot(); - G4int nbr_particle = 3; - if(rdm < 0.35){ // N-K-Lambda chosen particle2->setType(Lambda); @@ -81,7 +79,6 @@ namespace G4INCL { } else if((iso == 0 && rdm < 0.55) || rdm < 0.5){ // N-N-K-Kb chosen - nbr_particle++; available_iso = 4; min_pions = 1; max_pions = G4int((sqrtS-2.*ParticleTable::getINCLMass(Proton)-2.*ParticleTable::getINCLMass(KZero))/ParticleTable::getINCLMass(PiPlus)); @@ -97,7 +94,6 @@ namespace G4INCL { nbr_pions = std::min(max_pions,std::max(min_pions,G4int(intermediaire ))); available_iso += nbr_pions*2; - nbr_particle += nbr_pions; ParticleList list; ParticleType PionType = PiZero; diff --git a/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNpiToMissingStrangenessChannel.cc b/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNpiToMissingStrangenessChannel.cc index b893de09bd..e05b77bffa 100644 --- a/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNpiToMissingStrangenessChannel.cc +++ b/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNpiToMissingStrangenessChannel.cc @@ -82,8 +82,6 @@ namespace G4INCL { G4double rdm = Random::shoot(); - G4int nbr_particle = 2; - if(rdm < 0.35){ // Lambda-K chosen nucleon_initial->setType(Lambda); @@ -93,7 +91,6 @@ namespace G4INCL { } else if((iso == 0 && rdm < 0.55) || rdm < 0.5){ // N-K-Kb chosen - nbr_particle++; available_iso = 3; min_pions = 1; max_pions = G4int((sqrtS-ParticleTable::getINCLMass(Proton)-2.*ParticleTable::getINCLMass(KZero)-10.)/ParticleTable::getINCLMass(PiPlus)); @@ -109,7 +106,6 @@ namespace G4INCL { nbr_pions = std::min(max_pions,std::max(min_pions,G4int(intermediaire ))); available_iso += nbr_pions*2; - nbr_particle += nbr_pions; // Erase the parent resonance information of the initial particles particle1->setParentResonancePDGCode(0); diff --git a/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNucleus.cc b/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNucleus.cc index 990224f6f8..abd1bbede5 100644 --- a/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNucleus.cc +++ b/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNucleus.cc @@ -790,7 +790,7 @@ namespace G4INCL { theStore->addToOutgoing(*i); (*i)->setParticleBias(Particle::getTotalBias()); } - return toEject.size(); + return (G4int)toEject.size(); } G4bool Nucleus::emitInsideKaon() { @@ -1049,9 +1049,9 @@ namespace G4INCL { eventInfo->ParticleBias[eventInfo->nParticles] = (*i)->getParticleBias(); - eventInfo->A[eventInfo->nParticles] = (*i)->getA(); - eventInfo->Z[eventInfo->nParticles] = (*i)->getZ(); - eventInfo->S[eventInfo->nParticles] = (*i)->getS(); + eventInfo->A[eventInfo->nParticles] = (G4INCL::Short_t)(*i)->getA(); + eventInfo->Z[eventInfo->nParticles] = (G4INCL::Short_t)(*i)->getZ(); + eventInfo->S[eventInfo->nParticles] = (G4INCL::Short_t)(*i)->getS(); eventInfo->emissionTime[eventInfo->nParticles] = (*i)->getEmissionTime(); eventInfo->EKin[eventInfo->nParticles] = (*i)->getKineticEnergy(); ThreeVector mom = (*i)->getMomentum(); @@ -1080,9 +1080,9 @@ namespace G4INCL { // Projectile-like remnant characteristics if(theProjectileRemnant && theProjectileRemnant->getA()>0) { - eventInfo->ARem[eventInfo->nRemnants] = theProjectileRemnant->getA(); - eventInfo->ZRem[eventInfo->nRemnants] = theProjectileRemnant->getZ(); - eventInfo->SRem[eventInfo->nRemnants] = theProjectileRemnant->getS(); + eventInfo->ARem[eventInfo->nRemnants] = (G4INCL::Short_t)theProjectileRemnant->getA(); + eventInfo->ZRem[eventInfo->nRemnants] = (G4INCL::Short_t)theProjectileRemnant->getZ(); + eventInfo->SRem[eventInfo->nRemnants] = (G4INCL::Short_t)theProjectileRemnant->getS(); G4double eStar = theProjectileRemnant->getExcitationEnergy(); if(std::abs(eStar)<1E-10) eStar = 0.0; // blame rounding and set the excitation energy to zero @@ -1111,9 +1111,9 @@ namespace G4INCL { // Target-like remnant characteristics if(hasRemnant()) { - eventInfo->ARem[eventInfo->nRemnants] = getA(); - eventInfo->ZRem[eventInfo->nRemnants] = getZ(); - eventInfo->SRem[eventInfo->nRemnants] = getS(); + eventInfo->ARem[eventInfo->nRemnants] = (G4INCL::Short_t)getA(); + eventInfo->ZRem[eventInfo->nRemnants] = (G4INCL::Short_t)getZ(); + eventInfo->SRem[eventInfo->nRemnants] = (G4INCL::Short_t)getS(); eventInfo->EStarRem[eventInfo->nRemnants] = getExcitationEnergy(); if(eventInfo->EStarRem[eventInfo->nRemnants]<0.) { INCL_WARN("Negative excitation energy in target-like remnant! EStarRem = " << eventInfo->EStarRem[eventInfo->nRemnants] << " eventNumber=" << eventInfo->eventNumber << '\n'); diff --git a/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLPhaseSpaceKopylov.cc b/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLPhaseSpaceKopylov.cc index 408c22638e..607b0e9d5a 100644 --- a/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLPhaseSpaceKopylov.cc +++ b/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLPhaseSpaceKopylov.cc @@ -66,7 +66,7 @@ namespace G4INCL { boostV.setY(0.0); boostV.setZ(0.0); - const size_t N = particles.size(); + const std::size_t N = particles.size(); masses.resize(N); sumMasses.resize(N); std::transform(particles.begin(), particles.end(), masses.begin(), std::mem_fn(&Particle::getMass)); @@ -83,8 +83,8 @@ namespace G4INCL { restParticle->setMass(sqrtS); restParticle->adjustEnergyFromMomentum(); - G4int k=N-1; - for (ParticleList::reverse_iterator p=particles.rbegin(); k>0; ++p, --k) { + G4int k=G4int(N-1); + for (auto p=particles.rbegin(); k>0; ++p, --k) { const G4double mu = sumMasses[k-1]; T *= (k>1) ? betaKopylov(k) : 0.; diff --git a/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLProjectileRemnant.cc b/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLProjectileRemnant.cc index 460c1aed4d..cf8a394a51 100644 --- a/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLProjectileRemnant.cc +++ b/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLProjectileRemnant.cc @@ -338,7 +338,7 @@ namespace G4INCL { // energies. // For the last nucleon, return 0 so that the algorithm will just put it on // shell. - const unsigned theNewA = levels.size(); + const std::size_t theNewA = levels.size(); // assert(theNewA>0); if(theNewA==1) return 0.; @@ -347,8 +347,8 @@ namespace G4INCL { // Compute the sum of the presently occupied energy levels const G4double excitedState = std::accumulate( - levels.begin(), - levels.end(), + levels.cbegin(), + levels.cend(), 0.); return excitedState-groundState; diff --git a/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLStore.cc b/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLStore.cc index 0058d2bae4..75a3e31a2a 100644 --- a/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLStore.cc +++ b/source/processes/hadronic/models/inclxx/incl_physics/src/G4INCLStore.cc @@ -250,20 +250,15 @@ namespace G4INCL { loadedZ = Z; loadedStoppingTime = stoppingTime; - G4int readA = 0; - G4int readZ = 0; while(1) { /* Loop checking, 10.07.2015, D.Mancusi */ in >> ID >> type >> isParticipant >> x >> y >> z >> px >> py >> pz >> E >> v; if(!in.good()) break; ParticleType t; if(type == 1) { t = Proton; - readZ++; - readA++; } else if(type == -1) { t = Neutron; - readA++; } else { INCL_FATAL("Unrecognized particle type while loading particles; type=" << type << '\n'); @@ -302,7 +297,7 @@ namespace G4INCL { << "0.0" << '\n'; for(ParticleIter i=inside.begin(), e=inside.end(); i!=e; ++i) { - G4int ID = (*i)->getID(); + G4int ID = (G4int)(*i)->getID(); G4int type = 0; if((*i)->getType() == Proton) { type = 1; diff --git a/source/processes/hadronic/models/inclxx/interface/src/G4INCLXXInterface.cc b/source/processes/hadronic/models/inclxx/interface/src/G4INCLXXInterface.cc index 81374724fb..c7c2bb6df9 100644 --- a/source/processes/hadronic/models/inclxx/interface/src/G4INCLXXInterface.cc +++ b/source/processes/hadronic/models/inclxx/interface/src/G4INCLXXInterface.cc @@ -390,6 +390,17 @@ G4HadFinalState* G4INCLXXInterface::ApplyYourself(const G4HadProjectile& aTrack, const G4int Z = eventInfo.ZRem[i]; const G4int S = eventInfo.SRem[i]; // G4cout <<"INCL particle A = " << A << " Z = " << Z << " S= " << S << G4endl; + // Check that the remnant is a physical bound state: if not, resample the collision. + if(( Z == 0 && S == 0 && A > 1 ) || // No bound states for nn, nnn, nnnn, ... + ( Z == 0 && S != 0 && A < 4 ) || // No bound states for nl, ll, nnl, nll, lll + ( Z != 0 && S != 0 && A == Z + std::abs(S) )) { // No bound states for pl, ppl, pll, ... + std::stringstream ss; + ss << "unphysical residual fragment : Z=" << Z << " S=" << S << " A=" << A + << " skipping it and resampling the collision"; + theInterfaceStore->EmitWarning(ss.str()); + eventIsOK = false; + continue; + } const G4double kinE = eventInfo.EKinRem[i]; const G4double px = eventInfo.pxRem[i]; const G4double py = eventInfo.pyRem[i]; @@ -443,38 +454,45 @@ G4HadFinalState* G4INCLXXInterface::ApplyYourself(const G4HadProjectile& aTrack, remnants.push_back(remnant); } - // Check four-momentum conservation - const G4LorentzVector violation4Momentum = fourMomentumOut - fourMomentumIn; - const G4double energyViolation = std::abs(violation4Momentum.e()); - const G4double momentumViolation = violation4Momentum.rho(); - if(energyViolation > G4INCLXXInterfaceStore::GetInstance()->GetConservationTolerance()) { - std::stringstream ss; - ss << "energy conservation violated by " << energyViolation/MeV << " MeV in " - << aTrack.GetKineticEnergy()/MeV << "-MeV " << trackDefinition->GetParticleName() - << " + " << theIonTable->GetIonName(theNucleus.GetZ_asInt(), theNucleus.GetA_asInt(), 0) - << " inelastic reaction, in " << (inverseKinematics ? "inverse" : "direct") << " kinematics. Will resample."; - theInterfaceStore->EmitWarning(ss.str()); - eventIsOK = false; - const G4int nSecondaries = theResult.GetNumberOfSecondaries(); - for(G4int j=0; jGetParticle(); - theResult.Clear(); - theResult.SetStatusChange(stopAndKill); - remnants.clear(); - } else if(momentumViolation > G4INCLXXInterfaceStore::GetInstance()->GetConservationTolerance()) { - std::stringstream ss; - ss << "momentum conservation violated by " << momentumViolation/MeV << " MeV in " - << aTrack.GetKineticEnergy()/MeV << "-MeV " << trackDefinition->GetParticleName() - << " + " << theIonTable->GetIonName(theNucleus.GetZ_asInt(), theNucleus.GetA_asInt(), 0) - << " inelastic reaction, in " << (inverseKinematics ? "inverse" : "direct") << " kinematics. Will resample."; - theInterfaceStore->EmitWarning(ss.str()); - eventIsOK = false; - const G4int nSecondaries = theResult.GetNumberOfSecondaries(); - for(G4int j=0; jGetParticle(); + // Give up is the event is not ok (e.g. unphysical residual) + if(!eventIsOK) { + const G4int nSecondaries = (G4int)theResult.GetNumberOfSecondaries(); + for(G4int j=0; jGetParticle(); theResult.Clear(); theResult.SetStatusChange(stopAndKill); remnants.clear(); + } else { + // Check four-momentum conservation + const G4LorentzVector violation4Momentum = fourMomentumOut - fourMomentumIn; + const G4double energyViolation = std::abs(violation4Momentum.e()); + const G4double momentumViolation = violation4Momentum.rho(); + if(energyViolation > G4INCLXXInterfaceStore::GetInstance()->GetConservationTolerance()) { + std::stringstream ss; + ss << "energy conservation violated by " << energyViolation/MeV << " MeV in " + << aTrack.GetKineticEnergy()/MeV << "-MeV " << trackDefinition->GetParticleName() + << " + " << theIonTable->GetIonName(theNucleus.GetZ_asInt(), theNucleus.GetA_asInt(), 0) + << " inelastic reaction, in " << (inverseKinematics ? "inverse" : "direct") << " kinematics. Will resample."; + theInterfaceStore->EmitWarning(ss.str()); + eventIsOK = false; + const G4int nSecondaries = (G4int)theResult.GetNumberOfSecondaries(); + for(G4int j=0; jGetParticle(); + theResult.Clear(); + theResult.SetStatusChange(stopAndKill); + remnants.clear(); + } else if(momentumViolation > G4INCLXXInterfaceStore::GetInstance()->GetConservationTolerance()) { + std::stringstream ss; + ss << "momentum conservation violated by " << momentumViolation/MeV << " MeV in " + << aTrack.GetKineticEnergy()/MeV << "-MeV " << trackDefinition->GetParticleName() + << " + " << theIonTable->GetIonName(theNucleus.GetZ_asInt(), theNucleus.GetA_asInt(), 0) + << " inelastic reaction, in " << (inverseKinematics ? "inverse" : "direct") << " kinematics. Will resample."; + theInterfaceStore->EmitWarning(ss.str()); + eventIsOK = false; + const G4int nSecondaries = (G4int)theResult.GetNumberOfSecondaries(); + for(G4int j=0; jGetParticle(); + theResult.Clear(); + theResult.SetStatusChange(stopAndKill); + remnants.clear(); + } } } nTries++; @@ -642,7 +660,7 @@ G4double G4INCLXXInterface::remnant4MomentumScaling(G4double mass, void G4INCLXXInterface::ModelDescription(std::ostream& outFile) const { outFile - << "The Li�ge Intranuclear Cascade (INCL++) is a model for reactions induced\n" + << "The Liège Intranuclear Cascade (INCL++) is a model for reactions induced\n" << "by nucleons, pions and light ion on any nucleus. The reaction is\n" << "described as an avalanche of binary nucleon-nucleon collisions, which can\n" << "lead to the emission of energetic particles and to the formation of an\n" diff --git a/source/processes/hadronic/models/inclxx/utils/include/G4INCLInterpolationTable.hh b/source/processes/hadronic/models/inclxx/utils/include/G4INCLInterpolationTable.hh index 1d84b95c4a..8e8156a007 100644 --- a/source/processes/hadronic/models/inclxx/utils/include/G4INCLInterpolationTable.hh +++ b/source/processes/hadronic/models/inclxx/utils/include/G4INCLInterpolationTable.hh @@ -108,7 +108,7 @@ namespace G4INCL { InterpolationTable(std::vector const &x, std::vector const &y); virtual ~InterpolationTable() {} - unsigned int getNumberOfNodes() const { return nodes.size(); } + std::size_t getNumberOfNodes() const { return nodes.size(); } std::vector getNodeAbscissae() const; diff --git a/source/processes/hadronic/models/inclxx/utils/src/G4INCLInvFInterpolationTable.cc b/source/processes/hadronic/models/inclxx/utils/src/G4INCLInvFInterpolationTable.cc index fc6533a307..eb5628301e 100644 --- a/source/processes/hadronic/models/inclxx/utils/src/G4INCLInvFInterpolationTable.cc +++ b/source/processes/hadronic/models/inclxx/utils/src/G4INCLInvFInterpolationTable.cc @@ -59,14 +59,14 @@ namespace G4INCL { G4double last = f(x0); InterpolationNode firstNode(last, x0, 0.); nodes.push_back(firstNode); - G4int skippedNodes = 0; +// G4int skippedNodes = 0; for(unsigned i = 1; i < nNodes; i++) { const G4double xi = x0 + i*(x1-x0)/((G4double)(nNodes-1)); // Make sure that the x vector is sorted (corresponding to a monotonous // function) const G4double value = f(xi); if(value <= last) { - ++skippedNodes; +// ++skippedNodes; continue; } InterpolationNode node(value, xi, 0.); diff --git a/source/processes/hadronic/models/inclxx/utils/src/G4INCLParticleTable.cc b/source/processes/hadronic/models/inclxx/utils/src/G4INCLParticleTable.cc index ab8cd865a4..3417fa4cc0 100644 --- a/source/processes/hadronic/models/inclxx/utils/src/G4INCLParticleTable.cc +++ b/source/processes/hadronic/models/inclxx/utils/src/G4INCLParticleTable.cc @@ -1161,18 +1161,18 @@ namespace G4INCL { elementStream << Z; std::string elementName = elementStream.str(); std::transform(elementName.begin(), elementName.end(), elementName.begin(), intToIUPAC); - elementName[0] = std::toupper(elementName.at(0)); + elementName[0] = (char)std::toupper(elementName.at(0)); return elementName; } G4int parseElement(std::string pS) { // Normalize the element name std::transform(pS.begin(), pS.end(), pS.begin(), ::tolower); - pS[0] = ::toupper(pS[0]); + pS[0] = (char)std::toupper(pS[0]); const std::string *iter = std::find(elementTable, elementTable+elementTableSize, pS); if(iter != elementTable+elementTableSize) - return iter - elementTable; + return G4int(iter - elementTable); else return ParticleTable::parseIUPACElement(pS); } diff --git a/source/processes/hadronic/models/lend/History b/source/processes/hadronic/models/lend/History index 930d0fb6dd..95ab5744fe 100644 --- a/source/processes/hadronic/models/lend/History +++ b/source/processes/hadronic/models/lend/History @@ -6,6 +6,16 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-26 Gabriele Cosmo (hadr-lend-V11-00-07) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-12 Gabriele Cosmo (hadr-lend-V11-00-06) +- Replaced use of sprintf() with snprintf(), to fix deprecation compilation + warnings on macOS-13 SDK. + +## 2022-09-22 Ben Morgan (hadr-lend-V11-00-05) +- Apply patch for MinGW from [GitHub PR 51](https://github.com/Geant4/geant4/pull/51) + ## 2022-05-23 Gabriele Cosmo (hadr-lend-V11-00-04) - Fixed potential use of pointer after free in nf_utilities/nfu_realloc(..) function. diff --git a/source/processes/hadronic/models/lend/include/G4GIDI.hh b/source/processes/hadronic/models/lend/include/G4GIDI.hh index 34215e1735..a0285d4b0a 100644 --- a/source/processes/hadronic/models/lend/include/G4GIDI.hh +++ b/source/processes/hadronic/models/lend/include/G4GIDI.hh @@ -23,10 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/* -# <> -# <> -*/ + #ifndef G4GIDI_h_included #define G4GIDI_h_included 1 @@ -35,52 +32,53 @@ #include //using namespace std; -#include -#include -#include -#include +#include "G4Types.hh" +#include "G4GIDI_Misc.hh" +#include "G4GIDI_map.hh" +#include "G4GIDI_target.hh" +#include "G4GIDI_mass.hh" class G4GIDI { private: - int projectileID; + G4int projectileID; std::string projectile; std::list dataDirectories; std::vector targets; - int init( int ip ); + G4int init( G4int ip ); public: - G4GIDI( int ip, std::string &dataDirectory ); - G4GIDI( int ip, std::list &dataDirectory ); + G4GIDI( G4int ip, std::string &dataDirectory ); + G4GIDI( G4int ip, std::list &dataDirectory ); ~G4GIDI( ); - int numberOfDataDirectories( void ); - int addDataDirectory( std::string &dataDirectory ); - int removeDataDirectory( std::string &dataDirectory ); - std::string getDataDirectoryAtIndex( int index ); + G4int numberOfDataDirectories( void ); + G4int addDataDirectory( std::string &dataDirectory ); + G4int removeDataDirectory( std::string &dataDirectory ); + std::string getDataDirectoryAtIndex( G4int index ); std::vector *getDataDirectories( void ); - bool isThisDataAvailable( std::string &lib_name, int iZ, int iA, int iM = 0 ); - bool isThisDataAvailable( std::string &lib_name, std::string &targetName ); + G4bool isThisDataAvailable( std::string &lib_name, G4int iZ, G4int iA, G4int iM = 0 ); + G4bool isThisDataAvailable( std::string &lib_name, std::string &targetName ); - char *dataFilename( std::string &lib_name, int iZ, int iA, int iM = 0 ); + char *dataFilename( std::string &lib_name, G4int iZ, G4int iA, G4int iM = 0 ); char *dataFilename( std::string &lib_name, std::string &targetName ); - std::vector *getNamesOfAvailableLibraries( int iZ, int iA, int iM = 0 ); + std::vector *getNamesOfAvailableLibraries( G4int iZ, G4int iA, G4int iM = 0 ); std::vector *getNamesOfAvailableLibraries( std::string &targetName ); std::vector *getNamesOfAvailableTargets( void ); - G4GIDI_target *readTarget( std::string &lib_name, int iZ, int iA, int iM = 0, bool bind = true ); - G4GIDI_target *readTarget( std::string &lib_name, std::string &targetName, bool bind = true ); + G4GIDI_target *readTarget( std::string &lib_name, G4int iZ, G4int iA, G4int iM = 0, G4bool bind = true ); + G4GIDI_target *readTarget( std::string &lib_name, std::string &targetName, G4bool bind = true ); - G4GIDI_target *getAlreadyReadTarget( int iZ, int iA, int iM = 0 ); + G4GIDI_target *getAlreadyReadTarget( G4int iZ, G4int iA, G4int iM = 0 ); G4GIDI_target *getAlreadyReadTarget( std::string &targetName ); - int freeTarget( int iZ, int iA, int iM = 0 ); - int freeTarget( std::string &targetSymbol ); - int freeTarget( G4GIDI_target *target ); + G4int freeTarget( G4int iZ, G4int iA, G4int iM = 0 ); + G4int freeTarget( std::string &targetSymbol ); + G4int freeTarget( G4GIDI_target *target ); std::vector *getListOfReadTargetsNames( void ); }; diff --git a/source/processes/hadronic/models/lend/src/G4GIDI.cc b/source/processes/hadronic/models/lend/src/G4GIDI.cc index 527f525e61..b7b4fe1421 100644 --- a/source/processes/hadronic/models/lend/src/G4GIDI.cc +++ b/source/processes/hadronic/models/lend/src/G4GIDI.cc @@ -23,10 +23,7 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -/* -# <> -# <> -*/ + #include #include "G4GIDI.hh" @@ -37,7 +34,7 @@ using namespace GIDI; /* *************************************************************** */ -G4GIDI::G4GIDI( int ip, string &dataDirectory ) { +G4GIDI::G4GIDI( G4int ip, string &dataDirectory ) { init( ip ); addDataDirectory( dataDirectory ); @@ -45,12 +42,11 @@ G4GIDI::G4GIDI( int ip, string &dataDirectory ) { /* *************************************************************** */ -G4GIDI::G4GIDI( int ip, list &dataDirectoryList ) { - - list::iterator iter; +G4GIDI::G4GIDI( G4int ip, list &dataDirectoryList ) { init( ip ); - for( iter = dataDirectoryList.begin( ); iter != dataDirectoryList.end( ); ++iter ) addDataDirectory( *iter ); + for( auto iter = dataDirectoryList.begin( ); iter != dataDirectoryList.end( ); ++iter ) + addDataDirectory( *iter ); } /* *************************************************************** @@ -58,7 +54,7 @@ G4GIDI::G4GIDI( int ip, list &dataDirectoryList ) { G4GIDI::~G4GIDI( void ) { G4GIDI_target *target; - list::iterator iter; + auto iter = dataDirectories.cbegin(); while( targets.size( ) > 0 ) { target = targets.back( ); @@ -66,7 +62,7 @@ G4GIDI::~G4GIDI( void ) { delete target; } // Loop checking, 11.06.2015, T. Koi - while( ( iter = dataDirectories.begin( ) ) != dataDirectories.end( ) ) { + while( iter != dataDirectories.cend() ) { delete *iter; dataDirectories.pop_front( ); }// Loop checking, 11.06.2015, T. Koi @@ -74,7 +70,7 @@ G4GIDI::~G4GIDI( void ) { /* *************************************************************** */ -int G4GIDI::init( int ip ) { +G4int G4GIDI::init( G4int ip ) { projectileID = ip; if( ip == 0 ) { @@ -100,18 +96,16 @@ int G4GIDI::init( int ip ) { /* *************************************************************** */ -int G4GIDI::numberOfDataDirectories( void ) { +G4int G4GIDI::numberOfDataDirectories( void ) { - return( dataDirectories.size( ) ); + return (G4int)dataDirectories.size( ); } /* *************************************************************** */ -int G4GIDI::addDataDirectory( string &dataDirectory ) { +G4int G4GIDI::addDataDirectory( string &dataDirectory ) { - list::iterator iter; - - for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++ ) { + for( auto iter = dataDirectories.cbegin( ); iter != dataDirectories.cend( ); ++iter ) { if( (*iter)->path( ) == dataDirectory ) return( 0 ); } @@ -123,11 +117,9 @@ int G4GIDI::addDataDirectory( string &dataDirectory ) { /* *************************************************************** */ -int G4GIDI::removeDataDirectory( string &dataDirectory ) { +G4int G4GIDI::removeDataDirectory( string &dataDirectory ) { - list::iterator iter; - - for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++ ) { + for( auto iter = dataDirectories.cbegin( ); iter != dataDirectories.cend( ); ++iter ) { if( dataDirectory == (*iter)->path( ) ) { } @@ -137,16 +129,14 @@ int G4GIDI::removeDataDirectory( string &dataDirectory ) { /* *************************************************************** */ -string G4GIDI::getDataDirectoryAtIndex( int index ) { +string G4GIDI::getDataDirectoryAtIndex( G4int index ) { - list::iterator iter; unsigned i = (unsigned) index; if( index >= 0 ) { if( i >= dataDirectories.size( ) ) return( "" ); - for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++, index-- ) { - if( index == 0 ) return( (*iter)->fileName( ) ); - } + for( auto iter = dataDirectories.cbegin( ); iter != dataDirectories.cend( ); ++iter, --index ) + if( index == 0 ) return( (*iter)->fileName( ) ); } return( "" ); @@ -156,22 +146,22 @@ string G4GIDI::getDataDirectoryAtIndex( int index ) { */ vector *G4GIDI::getDataDirectories( void ) { - int i = 0; - list::iterator iter; + std::size_t i = 0; vector *v = new vector( numberOfDataDirectories( ) ); - for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++, i++ ) (*v)[i] = string( (*iter)->fileName( ) ); + for( auto iter = dataDirectories.cbegin( ); iter != dataDirectories.cend( ); ++iter, ++i ) + (*v)[i] = string( (*iter)->fileName( ) ); return( v ); } /* *************************************************************** */ -bool G4GIDI::isThisDataAvailable( string &lib_name, int iZ, int iA, int iM ) { +G4bool G4GIDI::isThisDataAvailable( string &lib_name, G4int iZ, G4int iA, G4int iM ) { - bool b; + G4bool b; char *targetName = G4GIDI_Misc_Z_A_m_ToName( iZ, iA, iM ); - if( targetName == NULL ) return( false ); + if( targetName == nullptr ) return( false ); string targetSymbol( targetName ); b = isThisDataAvailable( lib_name, targetSymbol ); smr_freeMemory( (void **) &targetName ); @@ -180,11 +170,11 @@ bool G4GIDI::isThisDataAvailable( string &lib_name, int iZ, int iA, int iM ) { /* *************************************************************** */ -bool G4GIDI::isThisDataAvailable( string &lib_name, string &targetName ) { +G4bool G4GIDI::isThisDataAvailable( string &lib_name, string &targetName ) { char *path = dataFilename( lib_name, targetName ); - if( path != NULL ) { + if( path != nullptr ) { smr_freeMemory( (void **) &path ); return( true ); } @@ -193,11 +183,11 @@ bool G4GIDI::isThisDataAvailable( string &lib_name, string &targetName ) { /* *************************************************************** */ -char *G4GIDI::dataFilename( string &lib_name, int iZ, int iA, int iM ) { +char *G4GIDI::dataFilename( string &lib_name, G4int iZ, G4int iA, G4int iM ) { char *targetName = G4GIDI_Misc_Z_A_m_ToName( iZ, iA, iM ), *fileName; - if( targetName == NULL ) return( NULL ); + if( targetName == nullptr ) return( nullptr ); string targetSymbol( targetName ); fileName = dataFilename( lib_name, targetSymbol ); smr_freeMemory( (void **) &targetName ); @@ -208,38 +198,23 @@ char *G4GIDI::dataFilename( string &lib_name, int iZ, int iA, int iM ) { */ char *G4GIDI::dataFilename( string &lib_name, string &targetSymbol ) { -/* - char *path; - list::iterator iter; - - for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++ ) { - if( ( path = MCGIDI_map_findTarget( &((*iter)->smr), (*iter)->map, lib_name.c_str( ), projectile.c_str( ), targetSymbol.c_str( ) ) ) != NULL ) { - return( path ); - } - } - return( NULL ); -*/ -//150121 -// char *path; - list::iterator iter; - for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++ ) { - if( ( path = MCGIDI_map_findTarget( NULL, (*iter)->map, lib_name.c_str(), projectile.c_str( ), targetSymbol.c_str( ) ) ) != NULL ) { + for( auto iter = dataDirectories.cbegin( ); iter != dataDirectories.cend( ); ++iter ) + if( ( path = MCGIDI_map_findTarget( nullptr, (*iter)->map, lib_name.c_str(), projectile.c_str( ), targetSymbol.c_str( ) ) ) != nullptr ) return( path ); - } - } - return( NULL ); + + return( nullptr ); } /* *************************************************************** */ -vector *G4GIDI::getNamesOfAvailableLibraries( int iZ, int iA, int iM ) { +vector *G4GIDI::getNamesOfAvailableLibraries( G4int iZ, G4int iA, G4int iM ) { char *targetName = G4GIDI_Misc_Z_A_m_ToName( iZ, iA, iM ); vector *listOfLibraries; - if( targetName == NULL ) return( new vector( ) ); + if( targetName == nullptr ) return( new vector( ) ); string targetSymbol( targetName ); listOfLibraries = getNamesOfAvailableLibraries( targetSymbol ); smr_freeMemory( (void **) &targetName ); @@ -250,18 +225,17 @@ vector *G4GIDI::getNamesOfAvailableLibraries( int iZ, int iA, int iM ) { */ vector *G4GIDI::getNamesOfAvailableLibraries( string &targetName ) { - list::iterator iter; vector *listOfLibraries = new vector( ); MCGIDI_map *map; MCGIDI_mapEntry *entry; - for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++ ) { + for( auto iter = dataDirectories.cbegin( ); iter != dataDirectories.cend( ); ++iter ) { map = MCGIDI_map_findAllOfTarget( &((*iter)->smr), (*iter)->map, projectile.c_str( ), targetName.c_str( ) ); - for( entry = MCGIDI_map_getFirstEntry( map ); entry != NULL; entry = MCGIDI_map_getNextEntry( entry ) ) { + for( entry = MCGIDI_map_getFirstEntry( map ); entry != nullptr; entry = MCGIDI_map_getNextEntry( entry ) ) { listOfLibraries->push_back( entry->evaluation ); } - MCGIDI_map_free( NULL, map ); + MCGIDI_map_free( nullptr, map ); } return( listOfLibraries ); } @@ -271,14 +245,13 @@ vector *G4GIDI::getNamesOfAvailableLibraries( string &targetName ) { vector *G4GIDI::getNamesOfAvailableTargets( void ) { vector *listOfTargets; - list::iterator iter_map; listOfTargets = new vector( ); - if( listOfTargets == NULL ) return( NULL ); - for( iter_map = dataDirectories.begin( ); iter_map != dataDirectories.end( ); iter_map++ ) { - if( MCGIDI_map_walkTree( NULL, (*iter_map)->map, getNamesOfAvailableTargets_walker, (void *) listOfTargets ) != 0 ) { + if( listOfTargets == nullptr ) return( nullptr ); + for( auto iter_map = dataDirectories.cbegin( ); iter_map != dataDirectories.cend( ); ++iter_map ) { + if( MCGIDI_map_walkTree( nullptr, (*iter_map)->map, getNamesOfAvailableTargets_walker, (void *) listOfTargets ) != 0 ) { delete listOfTargets; - return( NULL ); + return( nullptr ); } } return( listOfTargets ); @@ -286,12 +259,12 @@ vector *G4GIDI::getNamesOfAvailableTargets( void ) { /* *************************************************************** */ -G4GIDI_target *G4GIDI::readTarget( string &lib_name, int iZ, int iA, int iM, bool bind ) { +G4GIDI_target *G4GIDI::readTarget( string &lib_name, G4int iZ, G4int iA, G4int iM, G4bool bind ) { char *targetName = G4GIDI_Misc_Z_A_m_ToName( iZ, iA, iM ); G4GIDI_target *target; - if( targetName == NULL ) return( NULL ); + if( targetName == nullptr ) return( nullptr ); string targetSymbol( targetName ); target = readTarget( lib_name, targetSymbol, bind ); smr_freeMemory( (void **) &targetName ); @@ -300,15 +273,13 @@ G4GIDI_target *G4GIDI::readTarget( string &lib_name, int iZ, int iA, int iM, boo /* *************************************************************** */ -G4GIDI_target *G4GIDI::readTarget( string &lib_name, string &targetName, bool bind ) { +G4GIDI_target *G4GIDI::readTarget( string &lib_name, string &targetName, G4bool bind ) { - vector::iterator iter_targets; - - for( iter_targets = targets.begin( ); iter_targets != targets.end( ); iter_targets++ ) { - if( (*iter_targets)->name == targetName ) return( NULL ); + for( auto iter_targets = targets.cbegin( ); iter_targets != targets.cend( ); ++iter_targets ) { + if( (*iter_targets)->name == targetName ) return( nullptr ); } char *path = dataFilename( lib_name, targetName ); - if( path == NULL ) return( NULL ); + if( path == nullptr ) return( nullptr ); G4GIDI_target *target = new G4GIDI_target( path ); if( bind ) targets.push_back( target ); @@ -318,12 +289,12 @@ G4GIDI_target *G4GIDI::readTarget( string &lib_name, string &targetName, bool bi /* *************************************************************** */ -G4GIDI_target *G4GIDI::getAlreadyReadTarget( int iZ, int iA, int iM ) { +G4GIDI_target *G4GIDI::getAlreadyReadTarget( G4int iZ, G4int iA, G4int iM ) { char *targetName = G4GIDI_Misc_Z_A_m_ToName( iZ, iA, iM ); G4GIDI_target *target; - if( targetName == NULL ) return( NULL ); + if( targetName == nullptr ) return( nullptr ); string targetSymbol( targetName ); target = getAlreadyReadTarget( targetSymbol ); smr_freeMemory( (void **) &targetName ); @@ -334,21 +305,17 @@ G4GIDI_target *G4GIDI::getAlreadyReadTarget( int iZ, int iA, int iM ) { */ G4GIDI_target *G4GIDI::getAlreadyReadTarget( string &targetSymbol ) { - vector::iterator iter_targets; - - for( iter_targets = targets.begin( ); iter_targets != targets.end( ); iter_targets++ ) { + for( auto iter_targets = targets.cbegin( ); iter_targets != targets.cend( ); ++iter_targets ) { if( ( (*iter_targets)->name == targetSymbol ) ) return( *iter_targets ); } - return( NULL ); + return( nullptr ); } /* *************************************************************** */ -int G4GIDI::freeTarget( G4GIDI_target *target ) { +G4int G4GIDI::freeTarget( G4GIDI_target *target ) { - vector::iterator iter_targets; - - for( iter_targets = targets.begin( ); iter_targets != targets.end( ); iter_targets++ ) { + for( auto iter_targets = targets.cbegin( ); iter_targets != targets.cend( ); ++iter_targets ) { if( *iter_targets == target ) { targets.erase( iter_targets ); delete target; @@ -360,12 +327,12 @@ int G4GIDI::freeTarget( G4GIDI_target *target ) { /* *************************************************************** */ -int G4GIDI::freeTarget( int iZ, int iA, int iM ) { +G4int G4GIDI::freeTarget( G4int iZ, G4int iA, G4int iM ) { - int status; + G4int status; char *targetName = G4GIDI_Misc_Z_A_m_ToName( iZ, iA, iM ); - if( targetName == NULL ) return( 1 ); + if( targetName == nullptr ) return( 1 ); string targetSymbol( targetName ); status = freeTarget( targetSymbol ); smr_freeMemory( (void **) &targetName ); @@ -374,11 +341,9 @@ int G4GIDI::freeTarget( int iZ, int iA, int iM ) { /* *************************************************************** */ -int G4GIDI::freeTarget( string &targetSymbol ) { +G4int G4GIDI::freeTarget( string &targetSymbol ) { - vector::iterator iter_targets; - - for( iter_targets = targets.begin( ); iter_targets != targets.end( ); iter_targets++ ) { + for( auto iter_targets = targets.cbegin( ); iter_targets != targets.cend( ); ++iter_targets ) { if( (*iter_targets)->name == targetSymbol ) return( freeTarget( *iter_targets ) ); } return( 1 ); @@ -388,12 +353,11 @@ int G4GIDI::freeTarget( string &targetSymbol ) { */ vector *G4GIDI::getListOfReadTargetsNames( void ) { - vector::iterator iter_targets; vector *listOfTargets; listOfTargets = new vector( ); - if( listOfTargets == NULL ) return( NULL ); - for( iter_targets = targets.begin( ); iter_targets != targets.end( ); iter_targets++ ) { + if( listOfTargets == nullptr ) return( nullptr ); + for( auto iter_targets = targets.cbegin( ); iter_targets != targets.cend( ); ++iter_targets ) { listOfTargets->push_back( *(*iter_targets)->getName( ) ); } return( listOfTargets ); diff --git a/source/processes/hadronic/models/lend/src/G4GIDI_Misc.cc b/source/processes/hadronic/models/lend/src/G4GIDI_Misc.cc index e7ef757d6b..f10faa0816 100644 --- a/source/processes/hadronic/models/lend/src/G4GIDI_Misc.cc +++ b/source/processes/hadronic/models/lend/src/G4GIDI_Misc.cc @@ -49,14 +49,14 @@ char *G4GIDI_Misc_Z_A_m_ToName( int iZ, int iA, int im ) { if( Z == NULL ) return( NULL ); if( iA == 0 ) { if( im != 0 ) return( NULL ); - sprintf( S, "%s_natural", Z ); } + snprintf( S, sizeof S, "%s_natural", Z ); } else { - sprintf( S, "%s%d", Z, iA ); + snprintf( S, sizeof S, "%s%d", Z, iA ); if( im != 0 ) { - //sprintf( mS, "_m%d", im ); + //snprintf( mS, sizeof mS, "_m%d", im ); //TK 170509 //Fix inconsistency of name of excited isomer between data and code - sprintf( mS, "m%d", im ); + snprintf( mS, sizeof mS, "m%d", im ); strcat( S, mS ); } } diff --git a/source/processes/hadronic/models/lend/src/G4LENDCrossSection.cc b/source/processes/hadronic/models/lend/src/G4LENDCrossSection.cc index b0b3d965f5..0575c3249b 100644 --- a/source/processes/hadronic/models/lend/src/G4LENDCrossSection.cc +++ b/source/processes/hadronic/models/lend/src/G4LENDCrossSection.cc @@ -55,10 +55,10 @@ G4bool G4LENDCrossSection::IsIsoApplicable( const G4DynamicParticle* dp, G4int i if ( element != NULL ) { if ( element->GetNumberOfIsotopes() != 0 ) { std::vector< const G4Isotope*> vIsotope; - for ( size_t i = 0 ; i != element->GetNumberOfIsotopes() ; i++ ) { + for ( G4int i = 0 ; i != (G4int)element->GetNumberOfIsotopes() ; ++i ) { if ( element->GetIsotope( i )->GetN() == iA ) vIsotope.push_back( element->GetIsotope( i ) ); } - for ( size_t i = 0 ; i != vIsotope.size() ; i++ ) { + for ( std::size_t i = 0 ; i != vIsotope.size() ; ++i ) { G4int iM = vIsotope[i]->Getm(); if ( get_target_from_map( lend_manager->GetNucleusEncoding( iZ , iA , iM ) ) != NULL ) return true; } @@ -312,14 +312,14 @@ void G4LENDCrossSection::create_used_target_map() lend_manager->RequestChangeOfVerboseLevel( verboseLevel ); - size_t numberOfElements = G4Element::GetNumberOfElements(); + std::size_t numberOfElements = G4Element::GetNumberOfElements(); static const G4ElementTable* theElementTable = G4Element::GetElementTable(); - for ( size_t i = 0 ; i < numberOfElements ; ++i ) + for ( std::size_t i = 0 ; i < numberOfElements ; ++i ) { const G4Element* anElement = (*theElementTable)[i]; - G4int numberOfIsotope = anElement->GetNumberOfIsotopes(); + G4int numberOfIsotope = (G4int)anElement->GetNumberOfIsotopes(); if ( numberOfIsotope > 0 ) { diff --git a/source/processes/hadronic/models/lend/src/G4LENDModel.cc b/source/processes/hadronic/models/lend/src/G4LENDModel.cc index 34c41a1e31..f66397b745 100644 --- a/source/processes/hadronic/models/lend/src/G4LENDModel.cc +++ b/source/processes/hadronic/models/lend/src/G4LENDModel.cc @@ -97,19 +97,19 @@ void G4LENDModel::create_used_target_map() lend_manager->RequestChangeOfVerboseLevel( verboseLevel ); - size_t numberOfElements = G4Element::GetNumberOfElements(); + std::size_t numberOfElements = G4Element::GetNumberOfElements(); static const G4ElementTable* theElementTable = G4Element::GetElementTable(); - for ( size_t i = 0 ; i < numberOfElements ; ++i ) + for ( std::size_t i = 0 ; i < numberOfElements ; ++i ) { const G4Element* anElement = (*theElementTable)[i]; - G4int numberOfIsotope = anElement->GetNumberOfIsotopes(); + G4int numberOfIsotope = (G4int)anElement->GetNumberOfIsotopes(); if ( numberOfIsotope > 0 ) { // User Defined Abundances - for ( G4int i_iso = 0 ; i_iso < numberOfIsotope ; i_iso++ ) + for ( G4int i_iso = 0 ; i_iso < numberOfIsotope ; ++i_iso ) { G4int iZ = anElement->GetIsotope( i_iso )->GetZ(); G4int iA = anElement->GetIsotope( i_iso )->GetN(); diff --git a/source/processes/hadronic/models/lend/src/GIDI_settings_flux.cc b/source/processes/hadronic/models/lend/src/GIDI_settings_flux.cc index bf990419da..638b402d7f 100644 --- a/source/processes/hadronic/models/lend/src/GIDI_settings_flux.cc +++ b/source/processes/hadronic/models/lend/src/GIDI_settings_flux.cc @@ -81,7 +81,7 @@ void GIDI_settings_flux_order::print( int valuesPerLine ) const { for( int iE = 0; iE < nE; ++iE ) { if( printIndent ) std::cout << " "; printIndent = false; - sprintf( buffer, " %15.8e %15.8e", mEnergies[iE], mFluxes[iE] ); + snprintf( buffer, sizeof buffer, " %15.8e %15.8e", mEnergies[iE], mFluxes[iE] ); std::cout << buffer; if( ( ( iE + 1 ) % valuesPerLine ) == 0 ) { std::cout << std::endl; @@ -209,7 +209,7 @@ void GIDI_settings_fluxes_from_bdfls::initialize2( cbdfls_file const *bdfls, dou nf = cbdflsFIDs( (cbdfls_file *) bdfls, &fids ); for( int if1 = 0; if1 < nf; ++if1 ) { - sprintf( label, "LLNL_fid_%.3d", fids[if1] ); + snprintf( label, sizeof label, "LLNL_fid_%.3d", fids[if1] ); GIDI_settings_flux flux = GIDI_settings_flux( label, temperature_MeV ); order = cbdflsGetFluxOrder( (cbdfls_file *) bdfls, fids[if1] ); for( int io = 0; io <= order; ++io ) { @@ -234,7 +234,7 @@ GIDI_settings_flux GIDI_settings_fluxes_from_bdfls::getViaFID( int fid ) { char label[100]; - sprintf( label, "LLNL_fid_%.3d", fid ); + snprintf( label, sizeof label, "LLNL_fid_%.3d", fid ); for( int if1 = 0; if1 < (int) mFluxes.size( ); ++if1 ) { if( mFluxes[if1].isLabel( label ) ) return( mFluxes[if1] ); } diff --git a/source/processes/hadronic/models/lend/src/GIDI_settings_group.cc b/source/processes/hadronic/models/lend/src/GIDI_settings_group.cc index 6260329157..420a24bc82 100644 --- a/source/processes/hadronic/models/lend/src/GIDI_settings_group.cc +++ b/source/processes/hadronic/models/lend/src/GIDI_settings_group.cc @@ -105,7 +105,7 @@ void GIDI_settings_group::print( bool outline, int valuesPerLine ) const { std::cout << "GROUP: label = '" << mLabel << "': length = " << nbs << std::endl; if( outline ) return; for( int ib = 0; ib < nbs; ib++ ) { - sprintf( buffer, "%16.8e", mBoundaries[ib] ); + snprintf( buffer, sizeof buffer, "%16.8e", mBoundaries[ib] ); std::cout << buffer; if( ( ( ib + 1 ) % valuesPerLine ) == 0 ) std::cout << std::endl; } @@ -160,7 +160,7 @@ void GIDI_settings_groups_from_bdfls::initialize2( cbdfls_file const *bdfls ) { ng = cbdflsGIDs( (cbdfls_file *) bdfls, &gids ); for( int ig = 0; ig < ng; ++ig ) { ngbs = cbdflsGetGroup( (cbdfls_file *) bdfls, gids[ig], &boundaries ); - sprintf( cLabel, "LLNL_gid_%.3d", gids[ig] ); + snprintf( cLabel, sizeof xLabel, "LLNL_gid_%.3d", gids[ig] ); label = cLabel; mGroups.push_back( GIDI_settings_group( label, ngbs, boundaries ) ); } @@ -179,7 +179,7 @@ GIDI_settings_group GIDI_settings_groups_from_bdfls::getViaGID( int gid ) const std::string label( "" ); char cLabel[100]; - sprintf( cLabel, "LLNL_gid_%.3d", gid ); + snprintf( cLabel, sizeof cLabel, "LLNL_gid_%.3d", gid ); label = cLabel; for( int ig = 0; ig < (int) mGroups.size( ); ++ig ) { if( mGroups[ig].isLabel( label ) ) return( mGroups[ig] ); diff --git a/source/processes/hadronic/models/lend/src/MCGIDI_map.cc b/source/processes/hadronic/models/lend/src/MCGIDI_map.cc index fec86f1d38..906da8e9af 100644 --- a/source/processes/hadronic/models/lend/src/MCGIDI_map.cc +++ b/source/processes/hadronic/models/lend/src/MCGIDI_map.cc @@ -12,7 +12,7 @@ #define PATH_MAX 4096 #endif -#ifdef WIN32 +#if defined(WIN32) || defined(__MINGW32__) #include #define realpath( a, b ) GetFullPathName( a, PATH_MAX, b, NULL ) #endif @@ -533,10 +533,10 @@ char *MCGIDI_map_toXMLString( statusMessageReporting *smr, MCGIDI_map *map ) { for( entry = map->mapEntries; entry != NULL; entry = entry->next ) { switch( entry->type ) { case MCGIDI_mapEntry_type_target : - sprintf( p, targetFormat, entry->schema, entry->evaluation, entry->projectile, entry->targetName, entry->path ); + snprintf( p, sizeof start, targetFormat, entry->schema, entry->evaluation, entry->projectile, entry->targetName, entry->path ); break; case MCGIDI_mapEntry_type_path : - sprintf( p, pathFormat, entry->projectile, entry->path ); + snprintf( p, sizeof start, pathFormat, entry->projectile, entry->path ); break; } while( *p ) p++; // Loop checking, 11.06.2015, T. Koi diff --git a/source/processes/hadronic/models/lend/src/MCGIDI_version.cc b/source/processes/hadronic/models/lend/src/MCGIDI_version.cc index e07eeb6b82..92570a95a7 100644 --- a/source/processes/hadronic/models/lend/src/MCGIDI_version.cc +++ b/source/processes/hadronic/models/lend/src/MCGIDI_version.cc @@ -12,7 +12,7 @@ static char versionStr[64] = ""; */ const char *MCGIDI_version( void ) { - if( versionStr[0] == 0 ) sprintf( versionStr, "MCGIDI version %d.%d.%d", MCGIDI_VERSION_MAJOR, MCGIDI_VERSION_MINOR, MCGIDI_VERSION_PATCHLEVEL ); + if( versionStr[0] == 0 ) snprintf( versionStr, sizeof versionStr, "MCGIDI version %d.%d.%d", MCGIDI_VERSION_MAJOR, MCGIDI_VERSION_MINOR, MCGIDI_VERSION_PATCHLEVEL ); return( versionStr ); } /* diff --git a/source/processes/hadronic/models/lend/src/PoPs.cc b/source/processes/hadronic/models/lend/src/PoPs.cc index 9475157529..911e885927 100644 --- a/source/processes/hadronic/models/lend/src/PoPs.cc +++ b/source/processes/hadronic/models/lend/src/PoPs.cc @@ -58,7 +58,7 @@ static int unitsDB_release( void ); */ const char *PoPs_version( void ) { - if( versionStr[0] == 0 ) sprintf( versionStr, "PoPs version %d.%d.%d", POPS_VERSION_MAJOR, POPS_VERSION_MINOR, POPS_VERSION_PATCHLEVEL ); + if( versionStr[0] == 0 ) snprintf( versionStr, sizeof versionStr, "PoPs version %d.%d.%d", POPS_VERSION_MAJOR, POPS_VERSION_MINOR, POPS_VERSION_PATCHLEVEL ); return( versionStr ); } /* diff --git a/source/processes/hadronic/models/lend/src/PoPs_data.cc b/source/processes/hadronic/models/lend/src/PoPs_data.cc index 47e12914a5..89530eb566 100644 --- a/source/processes/hadronic/models/lend/src/PoPs_data.cc +++ b/source/processes/hadronic/models/lend/src/PoPs_data.cc @@ -43,7 +43,7 @@ int PoPs_particleReadDatabase( statusMessageReporting *smr, char const * /*name* if( ( pop = PoPs_particleCreateLoadInfo( smr, PoPDatas[i1].name ) ) == NULL ) return( 1 ); if( PoPs_addParticleIfNeeded( smr, pop ) == pop ) { if( ( pop->genre == PoPs_genre_atom ) && ( pop->Z < 110 ) ) { - sprintf( ZAName, "%d%.3d", pop->Z, pop->A ); + snprintf( ZAName, sizeof ZAName, "%d%.3d", pop->Z, pop->A ); if( lPoPs_addParticleIfNeeded( smr, ZAName, "LLNL" ) < 0 ) return( 1 ); } } else { diff --git a/source/processes/hadronic/models/lend/src/lPoPs.cc b/source/processes/hadronic/models/lend/src/lPoPs.cc index 13fb076dd3..f6e15edc3a 100644 --- a/source/processes/hadronic/models/lend/src/lPoPs.cc +++ b/source/processes/hadronic/models/lend/src/lPoPs.cc @@ -96,7 +96,7 @@ int lPoPs_addParticleIfNeeded( statusMessageReporting *smr, char const *name, ch ispecial = 1; } else if( Z == 99 ) { if( ( 120 <= A ) && ( A < 126 ) ) { - sprintf( name_, "FissionProductENDL99%d", A ); + snprintf( name_, sizeof name_, "FissionProductENDL99%d", A ); /* genre = PoPs_genre_atom; */ ispecial = 1; } @@ -108,13 +108,13 @@ int lPoPs_addParticleIfNeeded( statusMessageReporting *smr, char const *name, ch else if( A == 0 ) { strcpy( AStr, "_natural" ); } else { - sprintf( AStr, "%d", A ); + snprintf( AStr, sizeof AStr, "%d", A ); } if( ( ZStr = lPoPs_ZSymbol( Z ) ) == NULL ) { smr_setReportError2( smr, PoPs_smr_ID, PoPs_errorToken_badName, "string '%s' not a value ZA; Z = %d is not supported", name, Z ); return( -1 ); } - sprintf( name_, "%s%s", ZStr, AStr ); + snprintf( name_, sizeof name_, "%s%s", ZStr, AStr ); /* genre = PoPs_genre_atom; */ /* if( ZA == 1 ) genre = PoPs_genre_baryon; */ } } diff --git a/source/processes/hadronic/models/lend/src/nf_stringToDoubles.cc b/source/processes/hadronic/models/lend/src/nf_stringToDoubles.cc index 15bc05d77e..abc4b5db3b 100644 --- a/source/processes/hadronic/models/lend/src/nf_stringToDoubles.cc +++ b/source/processes/hadronic/models/lend/src/nf_stringToDoubles.cc @@ -72,8 +72,8 @@ char *nf_floatToShortestString( double value, int significantDigits, int favorEF if( flags & nf_floatToShortestString_includeSign ) sign = "+"; if( !isfinite( value ) ) { - sprintf( Fmt, "%%%sf", sign ); - sprintf( Str_e, Fmt, value ); + snprintf( Fmt, sizeof Fmt, "%%%sf", sign ); + snprintf( Str_e, sizeof Str_e, Fmt, value ); return( strdup( Str_e ) ); } @@ -81,8 +81,8 @@ char *nf_floatToShortestString( double value, int significantDigits, int favorEF if( significantDigits < 0 ) significantDigits = 0; if( significantDigits > 24 ) significantDigits = 24; - sprintf( Fmt, "%%%s.%de", sign, significantDigits ); - sprintf( Str_e, Fmt, value ); + snprintf( Fmt, sizeof Fmt, "%%%s.%de", sign, significantDigits ); + snprintf( Str_e, sizeof Str_e, Fmt, value ); e1 = strchr( Str_e, 'e' ); if( significantDigits == 0 ) { @@ -107,14 +107,14 @@ char *nf_floatToShortestString( double value, int significantDigits, int favorEF exponent = (int) strtol( e1, &e2, 10 ); if( exponent != 0 ) { /* If 0, the exponent was "e+00". */ for( e1 = Str_e; *e1 != 0; e1++ ) ; - sprintf( e1, "e%d", exponent ); + snprintf( e1, sizeof Str_e, "e%d", exponent ); digitsRightOfPeriod_f = significantDigits - exponent; if( ( digitsRightOfPeriod_f > 25 ) || ( exponent > 50 ) ) return( strdup( Str_r ) ); if( digitsRightOfPeriod_f < 0 ) digitsRightOfPeriod_f = 0; - sprintf( Fmt, "%%%s.%df", sign, digitsRightOfPeriod_f ); - sprintf( Str_f, Fmt, value ); + snprintf( Fmt, sizeof Fmt, "%%%s.%df", sign, digitsRightOfPeriod_f ); + snprintf( Str_f, sizeof Str_f, Fmt, value ); ne = (int) strlen( Str_e ); nf = (int) strlen( Str_f ); diff --git a/source/processes/hadronic/models/lend/src/xDataTOM.cc b/source/processes/hadronic/models/lend/src/xDataTOM.cc index 66df74bcda..f572e2efe7 100644 --- a/source/processes/hadronic/models/lend/src/xDataTOM.cc +++ b/source/processes/hadronic/models/lend/src/xDataTOM.cc @@ -11,7 +11,7 @@ #include #include -#ifdef WIN32 +#if defined(WIN32) || defined(__MINGW32__) #include #define realpath( a, b ) GetFullPathName( a, PATH_MAX, b, NULL ) #define strtoll _strtoi64 diff --git a/source/processes/hadronic/models/lend/src/xDataTOM_importXML.cc b/source/processes/hadronic/models/lend/src/xDataTOM_importXML.cc index d0de9721a0..afa8a06987 100644 --- a/source/processes/hadronic/models/lend/src/xDataTOM_importXML.cc +++ b/source/processes/hadronic/models/lend/src/xDataTOM_importXML.cc @@ -11,7 +11,7 @@ #include #include -#ifdef WIN32 +#if defined(WIN32) || defined(__MINGW32__) #include #include #include diff --git a/source/processes/hadronic/models/lepto_nuclear/History b/source/processes/hadronic/models/lepto_nuclear/History index 9b2af9413e..b0213769fa 100644 --- a/source/processes/hadronic/models/lepto_nuclear/History +++ b/source/processes/hadronic/models/lepto_nuclear/History @@ -6,6 +6,12 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-10-30 Vladimir Grichine(hadr-lepnuc-V11-00-06) +- G4(A)NuTauMucleusNc(Cc)Models added for (anti)_nu_tau final state + +## 2022-10-26 Alberto Ribon (hadr-lepnuc-V11-00-05) +- G4ElectroVDNuclearModel : added protections against null pointers to + gamma cross section and material (causing rare crashes). ## 2022-06-20 Igor Semeniouk (hadr-lepnuc-V11-00-04) - G4ANuElNucleusCcModel.cc, G4ANuElNucleusNcModel.cc, diff --git a/source/processes/hadronic/models/lepto_nuclear/include/G4ANuTauNucleusCcModel.hh b/source/processes/hadronic/models/lepto_nuclear/include/G4ANuTauNucleusCcModel.hh new file mode 100644 index 0000000000..c30637388a --- /dev/null +++ b/source/processes/hadronic/models/lepto_nuclear/include/G4ANuTauNucleusCcModel.hh @@ -0,0 +1,102 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// $Id: G4ANuTauNucleusCcModel.hh 90228 2015-05-21 08:49:57Z gcosmo $ +// +// Geant4 Header : G4ANuTauNucleusCcModel +// +// Author : V.Grichine 30.10.22 +// +// Modified: +// +// Class Description +// Default model for tau neutrino-nucleus charge current scattering; +// Class Description - End + +#ifndef G4ANuTauNucleusCcModel_h +#define G4ANuTauNucleusCcModel_h 1 + +#include "globals.hh" +#include "G4NeutrinoNucleusModel.hh" +#include "G4HadProjectile.hh" +#include "G4Nucleus.hh" +#include "G4NucleiProperties.hh" +#include "G4LorentzVector.hh" +#include "G4Threading.hh" + +class G4ParticleDefinition; +class G4PreCompoundModel; +class G4Nucleus; +class G4Fragment; + +class G4ANuTauNucleusCcModel : public G4NeutrinoNucleusModel // G4HadronicInteraction +{ +public: + + G4ANuTauNucleusCcModel(const G4String& name = "ANuTauNuclCcModel"); + + virtual ~G4ANuTauNucleusCcModel(); + + virtual void InitialiseModel(); + + virtual G4bool IsApplicable(const G4HadProjectile & aTrack, + G4Nucleus & targetNucleus); + + virtual G4HadFinalState * ApplyYourself(const G4HadProjectile & aTrack, + G4Nucleus & targetNucleus); + + + ////////// KR excitation kinematics //////////////////// + + void SampleLVkr(const G4HadProjectile & aTrack, G4Nucleus & targetNucleus); + + G4double GetMinNuMuEnergy(){ return fMtau + 0.5*fMtau*fMtau/fM1 + 4.*CLHEP::MeV; }; // kinematics + accuracy for sqrts + + G4double ThresholdEnergy(G4double mI, G4double mF, G4double mP) // for cluster decay + { + G4double w = std::sqrt(fW2); + return w + 0.5*( (mP+mF)*(mP+mF)-(w+mI)*(w+mI) )/mI; + }; + + virtual void ModelDescription(std::ostream&) const; + +private: + + G4bool fData, fMaster; // for one initialisation only + G4double fMtau; + G4ParticleDefinition* theTauMinus; + G4ParticleDefinition* theTauPlus; + + +#ifdef G4MULTITHREADED + static G4Mutex numuNucleusModel; +#endif + +}; + + + +#endif diff --git a/source/processes/hadronic/models/lepto_nuclear/include/G4ANuTauNucleusNcModel.hh b/source/processes/hadronic/models/lepto_nuclear/include/G4ANuTauNucleusNcModel.hh new file mode 100644 index 0000000000..4d6a501293 --- /dev/null +++ b/source/processes/hadronic/models/lepto_nuclear/include/G4ANuTauNucleusNcModel.hh @@ -0,0 +1,108 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// $Id: G4ANuTauNucleusNcModel.hh 90228 2015-05-21 08:49:57Z gcosmo $ +// +// Geant4 Header : G4ANuTauNucleusNcModel +// +// Author : V.Grichine 30.10.22 +// +// Modified: +// +// Class Description +// Default model for tau neutrino-nucleus neutral current scattering; +// Class Description - End + +#ifndef G4ANuTauNucleusNcModel_h +#define G4ANuTauNucleusNcModel_h 1 + +#include "globals.hh" +#include "G4NeutrinoNucleusModel.hh" +#include "G4HadProjectile.hh" +#include "G4Nucleus.hh" +#include "G4NucleiProperties.hh" +#include "G4LorentzVector.hh" +#include "G4Threading.hh" + +class G4ParticleDefinition; +class G4VPreCompoundModel; +class G4CascadeInterface; +class G4BinaryCascade; +class G4TheoFSGenerator; +class G4LundStringFragmentation; +class G4ExcitedStringDecay; +class G4INCLXXInterface; +class G4Nucleus; + +class G4ANuTauNucleusNcModel : public G4NeutrinoNucleusModel +{ +public: + + G4ANuTauNucleusNcModel(const G4String& name = "ANuTauNuclNcModel"); + + virtual ~G4ANuTauNucleusNcModel(); + + virtual void InitialiseModel(); + + virtual G4bool IsApplicable(const G4HadProjectile & aTrack, + G4Nucleus & targetNucleus); + + virtual G4HadFinalState * ApplyYourself(const G4HadProjectile & aTrack, + G4Nucleus & targetNucleus); + + + ////////// KR excitation kinematics //////////////////// + + void SampleLVkr(const G4HadProjectile & aTrack, G4Nucleus & targetNucleus); + + G4double GetMinNuMuEnergy(){ return fMnumu + 0.5*fMnumu*fMnumu/fM1 + 4.*CLHEP::keV; }; // kinematics + accuracy for sqrts + + G4double ThresholdEnergy(G4double mI, G4double mF, G4double mP) // for cluster decay + { + G4double w = std::sqrt(fW2); + return w + 0.5*( (mP+mF)*(mP+mF)-(w+mI)*(w+mI) )/mI; + }; + + virtual void ModelDescription(std::ostream&) const; + +private: + + G4ParticleDefinition* theNuTau; + G4ParticleDefinition* theANuTau; + + G4double fMnumu; // = 0 for +#include +#include + +#include "G4ANuTauNucleusCcModel.hh" +// #include "G4NuMuNuclCcDistrKR.hh" + +// #include "G4NuMuResQX.hh" + +#include "G4SystemOfUnits.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "G4IonTable.hh" +#include "Randomize.hh" +#include "G4RandomDirection.hh" +// #include "G4Threading.hh" + +// #include "G4Integrator.hh" +#include "G4DataVector.hh" +#include "G4PhysicsTable.hh" +/* +#include "G4CascadeInterface.hh" +// #include "G4BinaryCascade.hh" +#include "G4TheoFSGenerator.hh" +#include "G4LundStringFragmentation.hh" +#include "G4ExcitedStringDecay.hh" +#include "G4FTFModel.hh" +// #include "G4BinaryCascade.hh" +#include "G4HadFinalState.hh" +#include "G4HadSecondary.hh" +#include "G4HadronicInteractionRegistry.hh" +// #include "G4INCLXXInterface.hh" +#include "G4QGSModel.hh" +#include "G4QGSMFragmentation.hh" +#include "G4QGSParticipants.hh" +*/ +#include "G4KineticTrack.hh" +#include "G4DecayKineticTracks.hh" +#include "G4KineticTrackVector.hh" +#include "G4Fragment.hh" +#include "G4NucleiProperties.hh" +#include "G4ReactionProductVector.hh" + +#include "G4GeneratorPrecompoundInterface.hh" +#include "G4PreCompoundModel.hh" +#include "G4ExcitationHandler.hh" + + +#include "G4TauMinus.hh" +#include "G4TauPlus.hh" +#include "G4Nucleus.hh" +#include "G4LorentzVector.hh" + +using namespace std; +using namespace CLHEP; + +#ifdef G4MULTITHREADED + G4Mutex G4ANuTauNucleusCcModel::numuNucleusModel = G4MUTEX_INITIALIZER; +#endif + + +G4ANuTauNucleusCcModel::G4ANuTauNucleusCcModel(const G4String& name) + : G4NeutrinoNucleusModel(name) +{ + fData = fMaster = false; + fMtau = 1.77686*GeV; + theTauMinus = G4TauMinus::TauMinus(); + theTauPlus = G4TauPlus::TauPlus(); + InitialiseModel(); +} + + +G4ANuTauNucleusCcModel::~G4ANuTauNucleusCcModel() +{} + + +void G4ANuTauNucleusCcModel::ModelDescription(std::ostream& outFile) const +{ + + outFile << "G4ANuTauNucleusCcModel is a anti tau neutrino-nucleus (charge current) scattering\n" + << "model which uses the standard model \n" + << "transfer parameterization. The model is fully relativistic\n"; + +} + +///////////////////////////////////////////////////////// +// +// Read data from G4PARTICLEXSDATA (locally PARTICLEXSDATA) + +void G4ANuTauNucleusCcModel::InitialiseModel() +{ + G4String pName = "nu_mu"; + // G4String pName = "anti_nu_mu"; + + G4int nSize(0), i(0), j(0), k(0); + + if(!fData) + { +#ifdef G4MULTITHREADED + G4MUTEXLOCK(&numuNucleusModel); + if(!fData) + { +#endif + fMaster = true; +#ifdef G4MULTITHREADED + } + G4MUTEXUNLOCK(&numuNucleusModel); +#endif + } + + if(fMaster) + { + const char* path = G4FindDataDir("G4PARTICLEXSDATA"); + std::ostringstream ost1, ost2, ost3, ost4; + ost1 << path << "/" << "neutrino" << "/" << pName << "/xarraycckr"; + + std::ifstream filein1( ost1.str().c_str() ); + + // filein.open("$PARTICLEXSDATA/"); + + filein1>>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i <= fNbin; ++i ) + { + filein1 >> fNuMuXarrayKR[k][i]; + // G4cout<< fNuMuXarrayKR[k][i] << " "; + } + } + // G4cout<>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i < fNbin; ++i ) + { + filein2 >> fNuMuXdistrKR[k][i]; + // G4cout<< fNuMuXdistrKR[k][i] << " "; + } + } + // G4cout<>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i <= fNbin; ++i ) + { + for( j = 0; j <= fNbin; ++j ) + { + filein3 >> fNuMuQarrayKR[k][i][j]; + // G4cout<< fNuMuQarrayKR[k][i][j] << " "; + } + } + } + // G4cout<>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i <= fNbin; ++i ) + { + for( j = 0; j < fNbin; ++j ) + { + filein4 >> fNuMuQdistrKR[k][i][j]; + // G4cout<< fNuMuQdistrKR[k][i][j] << " "; + } + } + } + fData = true; + } +} + +///////////////////////////////////////////////////////// + +G4bool G4ANuTauNucleusCcModel::IsApplicable(const G4HadProjectile & aPart, + G4Nucleus & ) +{ + G4bool result = false; + G4String pName = aPart.GetDefinition()->GetParticleName(); + G4double energy = aPart.GetTotalEnergy(); + + if( pName == "anti_nu_tau" // || pName == "anti_nu_tau" ) + && + energy > fMinNuEnergy ) + { + result = true; + } + + return result; +} + +/////////////////////////////////////////// ClusterDecay //////////////////////////////////////////////////////////// +// +// + +G4HadFinalState* G4ANuTauNucleusCcModel::ApplyYourself( + const G4HadProjectile& aTrack, G4Nucleus& targetNucleus) +{ + theParticleChange.Clear(); + fProton = f2p2h = fBreak = false; + fCascade = fString = false; + fLVh = fLVl = fLVt = fLVcpi = G4LorentzVector(0.,0.,0.,0.); + + const G4HadProjectile* aParticle = &aTrack; + G4double energy = aParticle->GetTotalEnergy(); + + G4String pName = aParticle->GetDefinition()->GetParticleName(); + + if( energy < fMinNuEnergy ) + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + + SampleLVkr( aTrack, targetNucleus); + + if( fBreak == true || fEmu < fMtau ) // ~5*10^-6 + { + // G4cout<<"ni, "; + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + + // LVs of initial state + + G4LorentzVector lvp1 = aParticle->Get4Momentum(); + G4LorentzVector lvt1( 0., 0., 0., fM1 ); + G4double mPip = G4ParticleTable::GetParticleTable()->FindParticle(211)->GetPDGMass(); + + // 1-pi by fQtransfer && nu-energy + G4LorentzVector lvpip1( 0., 0., 0., mPip ); + G4LorentzVector lvsum, lv2, lvX; + G4ThreeVector eP; + G4double cost(1.), sint(0.), phi(0.), muMom(0.), massX2(0.), massX(0.), massR(0.), eCut(0.); + G4DynamicParticle* aLept = nullptr; // lepton lv + + G4int Z = targetNucleus.GetZ_asInt(); + G4int A = targetNucleus.GetA_asInt(); + G4double mTarg = targetNucleus.AtomicMass(A,Z); + G4int pdgP(0), qB(0); + // G4double mSum = G4ParticleTable::GetParticleTable()->FindParticle(2212)->GetPDGMass() + mPip; + + G4int iPi = GetOnePionIndex(energy); + G4double p1pi = GetNuMuOnePionProb( iPi, energy); + + if( p1pi > G4UniformRand() && fCosTheta > 0.9 ) // && fQtransfer < 0.95*GeV ) // mu- & coherent pion + nucleus + { + // lvsum = lvp1 + lvpip1; + lvsum = lvp1 + lvt1; + // cost = fCosThetaPi; + cost = fCosTheta; + sint = std::sqrt( (1.0 - cost)*(1.0 + cost) ); + phi = G4UniformRand()*CLHEP::twopi; + eP = G4ThreeVector( sint*std::cos(phi), sint*std::sin(phi), cost ); + + // muMom = sqrt(fEmuPi*fEmuPi-fMtau*fMtau); + muMom = sqrt(fEmu*fEmu-fMtau*fMtau); + + eP *= muMom; + + // lv2 = G4LorentzVector( eP, fEmuPi ); + // lv2 = G4LorentzVector( eP, fEmu ); + lv2 = fLVl; + + // lvX = lvsum - lv2; + lvX = fLVh; + massX2 = lvX.m2(); + massX = lvX.m(); + massR = fLVt.m(); + + if ( massX2 <= 0. ) // vmg: very rarely ~ (1-4)e-6 due to big Q2/x, to be improved + { + fCascade = true; + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + fW2 = massX2; + + if( pName == "anti_nu_tau" ) aLept = new G4DynamicParticle( theTauPlus, lv2 ); + // else if( pName == "anti_nu_tau") aLept = new G4DynamicParticle( theTauPlus, lv2 ); + else + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + if( pName == "anti_nu_tau" ) pdgP = 211; + // else pdgP = -211; + // eCut = fMpi + 0.5*(fMpi*fMpi-massX2)/mTarg; // massX -> fMpi + + if( A > 1 ) + { + eCut = (fMpi + mTarg)*(fMpi + mTarg) - (massX + massR)*(massX + massR); + eCut /= 2.*massR; + eCut += massX; + } + else eCut = fM1 + fMpi; + + if ( lvX.e() > eCut ) // && sqrt( GetW2() ) < 1.4*GeV ) // + { + CoherentPion( lvX, pdgP, targetNucleus); + } + else + { + fCascade = true; + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + theParticleChange.AddSecondary( aLept, fSecID ); + + return &theParticleChange; + } + else // lepton part in lab + { + lvsum = lvp1 + lvt1; + cost = fCosTheta; + sint = std::sqrt( (1.0 - cost)*(1.0 + cost) ); + phi = G4UniformRand()*CLHEP::twopi; + eP = G4ThreeVector( sint*std::cos(phi), sint*std::sin(phi), cost ); + + muMom = sqrt(fEmu*fEmu-fMtau*fMtau); + + eP *= muMom; + + lv2 = G4LorentzVector( eP, fEmu ); + lv2 = fLVl; + lvX = lvsum - lv2; + lvX = fLVh; + massX2 = lvX.m2(); + + if ( massX2 <= 0. ) // vmg: very rarely ~ (1-4)e-6 due to big Q2/x, to be improved + { + fCascade = true; + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + fW2 = massX2; + + if( pName == "anti_nu_tau" ) aLept = new G4DynamicParticle( theTauPlus, lv2 ); + // else if( pName == "anti_nu_tau") aLept = new G4DynamicParticle( theTauPlus, lv2 ); + else + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + theParticleChange.AddSecondary( aLept, fSecID ); + } + + // hadron part + + fRecoil = nullptr; + + if( A == 1 ) + { + if( pName == "anti_nu_tau" ) qB = 2; + // else qB = 0; + + // if( G4UniformRand() > 0.1 ) // > 0.9999 ) // > 0.0001 ) // + { + ClusterDecay( lvX, qB ); + } + return &theParticleChange; + } + /* + // else + { + if( pName == "anti_nu_tau" ) pdgP = 211; + else pdgP = -211; + + + if ( fQtransfer < 0.95*GeV ) // < 0.35*GeV ) // + { + if( lvX.m() > mSum ) CoherentPion( lvX, pdgP, targetNucleus); + } + } + return &theParticleChange; + } + */ + G4Nucleus recoil; + G4double rM(0.), ratio = G4double(Z)/G4double(A); + + if( ratio > G4UniformRand() ) // proton is excited + { + fProton = true; + recoil = G4Nucleus(A-1,Z-1); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z-1); + + if( pName == "anti_nu_tau" ) // (++) state -> p + pi+ + { + fMt = G4ParticleTable::GetParticleTable()->FindParticle(2212)->GetPDGMass() + + G4ParticleTable::GetParticleTable()->FindParticle(211)->GetPDGMass(); + } + else // (0) state -> p + pi-, n + pi0 + { + // fMt = G4ParticleTable::GetParticleTable()->FindParticle(2212)->GetPDGMass() + // + G4ParticleTable::GetParticleTable()->FindParticle(-211)->GetPDGMass(); + } + } + else // excited neutron + { + fProton = false; + recoil = G4Nucleus(A-1,Z); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z); + + if( pName == "anti_nu_tau" ) // (+) state -> n + pi+ + { + fMt = G4ParticleTable::GetParticleTable()->FindParticle(2112)->GetPDGMass() + + G4ParticleTable::GetParticleTable()->FindParticle(211)->GetPDGMass(); + } + else // (-) state -> n + pi-, // n + pi0 + { + // fMt = G4ParticleTable::GetParticleTable()->FindParticle(2112)->GetPDGMass() + // + G4ParticleTable::GetParticleTable()->FindParticle(-211)->GetPDGMass(); + } + } + // G4int index = GetEnergyIndex(energy); + G4int nepdg = aParticle->GetDefinition()->GetPDGEncoding(); + + G4double qeTotRat; // = GetNuMuQeTotRat(index, energy); + qeTotRat = CalculateQEratioA( Z, A, energy, nepdg); + + G4ThreeVector dX = (lvX.vect()).unit(); + G4double eX = lvX.e(); // excited nucleon + G4double mX = sqrt(massX2); + // G4double pX = sqrt( eX*eX - mX*mX ); + // G4double sumE = eX + rM; + + if( qeTotRat > G4UniformRand() || mX <= fMt ) // || eX <= 1232.*MeV) // QE + { + fString = false; + + if( fProton ) + { + fPDGencoding = 2212; + fMr = proton_mass_c2; + recoil = G4Nucleus(A-1,Z-1); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z-1); + } + else // if( pName == "anti_nu_tau" ) + { + fPDGencoding = 2112; + fMr = G4ParticleTable::GetParticleTable()-> + FindParticle(fPDGencoding)->GetPDGMass(); // 939.5654133*MeV; + recoil = G4Nucleus(A-1,Z); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z); + } + // sumE = eX + rM; + G4double eTh = fMr + 0.5*(fMr*fMr - mX*mX)/rM; + + if( eX <= eTh ) // vmg, very rarely out of kinematics + { + fString = true; + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + // FinalBarion( fLVh, 0, fPDGencoding ); // p(n)+deexcited recoil + FinalBarion( lvX, 0, fPDGencoding ); // p(n)+deexcited recoil + } + else // if ( eX < 9500000.*GeV ) // < 25.*GeV) // < 95.*GeV ) // < 2.5*GeV ) //cluster decay + { + if ( fProton && pName == "anti_nu_tau" ) qB = 2; + // else if( fProton && pName == "anti_nu_tau" ) qB = 0; + else if( !fProton && pName == "anti_nu_tau" ) qB = 1; + // else if( !fProton && pName == "anti_nu_tau" ) qB = -1; + + + ClusterDecay( lvX, qB ); + } + return &theParticleChange; +} + + +///////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////// +// +// sample x, then Q2 + +void G4ANuTauNucleusCcModel::SampleLVkr(const G4HadProjectile & aTrack, G4Nucleus& targetNucleus) +{ + fBreak = false; + G4int A = targetNucleus.GetA_asInt(), iTer(0), iTerMax(100); + G4int Z = targetNucleus.GetZ_asInt(); + G4double e3(0.), pMu2(0.), pX2(0.), nMom(0.), rM(0.), hM(0.), tM = targetNucleus.AtomicMass(A,Z); + G4double Ex(0.), ei(0.), nm2(0.); + G4double cost(1.), sint(0.), phi(0.), muMom(0.); + G4ThreeVector eP, bst; + const G4HadProjectile* aParticle = &aTrack; + G4LorentzVector lvp1 = aParticle->Get4Momentum(); + + if( A == 1 ) // hydrogen, no Fermi motion ??? + { + fNuEnergy = aParticle->GetTotalEnergy(); + iTer = 0; + + do + { + fXsample = SampleXkr(fNuEnergy); + fQtransfer = SampleQkr(fNuEnergy, fXsample); + fQ2 = fQtransfer*fQtransfer; + + if( fXsample > 0. ) + { + fW2 = fM1*fM1 - fQ2 + fQ2/fXsample; // sample excited hadron mass + fEmu = fNuEnergy - fQ2/2./fM1/fXsample; + } + else + { + fW2 = fM1*fM1; + fEmu = fNuEnergy; + } + e3 = fNuEnergy + fM1 - fEmu; + + if( e3 < sqrt(fW2) ) G4cout<<"energyX = "< nucleon rest system, where Q2 transfer is ??? + + fNuEnergy = lvp1.e(); + // G4double mN = fLVh.m(); // better mN = fM1 !? vmg + iTer = 0; + + do // no FM!?, 5.4.20 vmg + { + fXsample = SampleXkr(fNuEnergy); + fQtransfer = SampleQkr(fNuEnergy, fXsample); + fQ2 = fQtransfer*fQtransfer; + + // G4double mR = mN + fM1*(A-1.)*std::exp(-2.0*fQtransfer/mN); // recoil mass in+el + + if( fXsample > 0. ) + { + fW2 = fM1*fM1 - fQ2 + fQ2/fXsample; // sample excited hadron mass + + // fW2 = mN*mN - fQ2 + fQ2/fXsample; // sample excited hadron mass + // fEmu = fNuEnergy - fQ2/2./mR/fXsample; // fM1->mN + + fEmu = fNuEnergy - fQ2/2./fM1/fXsample; // fM1->mN + } + else + { + // fW2 = mN*mN; + + fW2 = fM1*fM1; + fEmu = fNuEnergy; + } + // if(fEmu < 0.) G4cout<<"fEmu = "<>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i <= fNbin; ++i ) + { + filein1 >> fNuMuXarrayKR[k][i]; + // G4cout<< fNuMuXarrayKR[k][i] << " "; + } + } + // G4cout<>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i < fNbin; ++i ) + { + filein2 >> fNuMuXdistrKR[k][i]; + // G4cout<< fNuMuXdistrKR[k][i] << " "; + } + } + // G4cout<>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i <= fNbin; ++i ) + { + for( j = 0; j <= fNbin; ++j ) + { + filein3 >> fNuMuQarrayKR[k][i][j]; + // G4cout<< fNuMuQarrayKR[k][i][j] << " "; + } + } + } + // G4cout<>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i <= fNbin; ++i ) + { + for( j = 0; j < fNbin; ++j ) + { + filein4 >> fNuMuQdistrKR[k][i][j]; + // G4cout<< fNuMuQdistrKR[k][i][j] << " "; + } + } + } + fData = true; + } +} + +///////////////////////////////////////////////////////// + +G4bool G4ANuTauNucleusNcModel::IsApplicable(const G4HadProjectile & aPart, + G4Nucleus & ) +{ + G4bool result = false; + G4String pName = aPart.GetDefinition()->GetParticleName(); + G4double energy = aPart.GetTotalEnergy(); + + if( pName == "anti_nu_tau" // || pName == "anti_nu_tau" ) + && + energy > fMinNuEnergy ) + { + result = true; + } + + return result; +} + +/////////////////////////////////////////// ClusterDecay //////////////////////////////////////////////////////////// +// +// + +G4HadFinalState* G4ANuTauNucleusNcModel::ApplyYourself( + const G4HadProjectile& aTrack, G4Nucleus& targetNucleus) +{ + theParticleChange.Clear(); + fProton = f2p2h = fBreak = false; + const G4HadProjectile* aParticle = &aTrack; + G4double energy = aParticle->GetTotalEnergy(); + + G4String pName = aParticle->GetDefinition()->GetParticleName(); + + if( energy < fMinNuEnergy ) + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + SampleLVkr( aTrack, targetNucleus); + + if( fBreak == true || fEmu < fMnumu ) // ~5*10^-6 + { + // G4cout<<"ni, "; + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + + // LVs of initial state + + G4LorentzVector lvp1 = aParticle->Get4Momentum(); + G4LorentzVector lvt1( 0., 0., 0., fM1 ); + G4double mPip = G4ParticleTable::GetParticleTable()->FindParticle(211)->GetPDGMass(); + + // 1-pi by fQtransfer && nu-energy + G4LorentzVector lvpip1( 0., 0., 0., mPip ); + G4LorentzVector lvsum, lv2, lvX; + G4ThreeVector eP; + G4double cost(1.), sint(0.), phi(0.), muMom(0.), massX2(0.); + G4DynamicParticle* aLept = nullptr; // lepton lv + + G4int Z = targetNucleus.GetZ_asInt(); + G4int A = targetNucleus.GetA_asInt(); + G4double mTarg = targetNucleus.AtomicMass(A,Z); + G4int pdgP(0), qB(0); + // G4double mSum = G4ParticleTable::GetParticleTable()->FindParticle(2212)->GetPDGMass() + mPip; + + G4int iPi = GetOnePionIndex(energy); + G4double p1pi = GetNuMuOnePionProb( iPi, energy); + + if( p1pi > G4UniformRand() && fCosTheta > 0.9 ) // && fQtransfer < 0.95*GeV ) // mu- & coherent pion + nucleus + { + // lvsum = lvp1 + lvpip1; + lvsum = lvp1 + lvt1; + // cost = fCosThetaPi; + cost = fCosTheta; + sint = std::sqrt( (1.0 - cost)*(1.0 + cost) ); + phi = G4UniformRand()*CLHEP::twopi; + eP = G4ThreeVector( sint*std::cos(phi), sint*std::sin(phi), cost ); + + // muMom = sqrt(fEmuPi*fEmuPi-fMnumu*fMnumu); + muMom = sqrt(fEmu*fEmu-fMnumu*fMnumu); + + eP *= muMom; + + // lv2 = G4LorentzVector( eP, fEmuPi ); + lv2 = G4LorentzVector( eP, fEmu ); + lv2 = fLVl; + + lvX = lvsum - lv2; + lvX = fLVh; + massX2 = lvX.m2(); + G4double massX = lvX.m(); + G4double massR = fLVt.m(); + + // if ( massX2 <= 0. ) // vmg: very rarely ~ (1-4)e-6 due to big Q2/x, to be improved + if ( massX2 <= fM1*fM1 ) // 9-3-20 vmg: very rarely ~ (1-4)e-6 due to big Q2/x, to be improved + if ( lvX.e() <= fM1 ) // 9-3-20 vmg: very rarely ~ (1-4)e-6 due to big Q2/x, to be improved + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + fW2 = massX2; + + if( pName == "nu_tau" ) aLept = new G4DynamicParticle( theNuTau, lv2 ); + else if( pName == "anti_nu_tau") aLept = new G4DynamicParticle( theANuTau, lv2 ); + else + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + + pdgP = 111; + + G4double eCut; // = fMpi + 0.5*(fMpi*fMpi - massX2)/mTarg; // massX -> fMpi + + if( A > 1 ) + { + eCut = (fMpi + mTarg)*(fMpi + mTarg) - (massX + massR)*(massX + massR); + eCut /= 2.*massR; + eCut += massX; + } + else eCut = fM1 + fMpi; + + if ( lvX.e() > eCut ) // && sqrt( GetW2() ) < 1.4*GeV ) // + { + CoherentPion( lvX, pdgP, targetNucleus); + } + else + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + theParticleChange.AddSecondary( aLept, fSecID ); + + return &theParticleChange; + } + else // lepton part in lab + { + lvsum = lvp1 + lvt1; + cost = fCosTheta; + sint = std::sqrt( (1.0 - cost)*(1.0 + cost) ); + phi = G4UniformRand()*CLHEP::twopi; + eP = G4ThreeVector( sint*std::cos(phi), sint*std::sin(phi), cost ); + + muMom = sqrt(fEmu*fEmu-fMnumu*fMnumu); + + eP *= muMom; + + lv2 = G4LorentzVector( eP, fEmu ); + + lvX = lvsum - lv2; + + massX2 = lvX.m2(); + + if ( massX2 <= 0. ) // vmg: very rarely ~ (1-4)e-6 due to big Q2/x, to be improved + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + fW2 = massX2; + + aLept = new G4DynamicParticle( theANuTau, lv2 ); + + theParticleChange.AddSecondary( aLept, fSecID ); + } + + // hadron part + + fRecoil = nullptr; + fCascade = false; + fString = false; + + if( A == 1 ) + { + qB = 1; + + // if( G4UniformRand() > 0.1 ) // > 0.9999 ) // > 0.0001 ) // + { + ClusterDecay( lvX, qB ); + } + return &theParticleChange; + } + G4Nucleus recoil; + G4double rM(0.), ratio = G4double(Z)/G4double(A); + + if( ratio > G4UniformRand() ) // proton is excited + { + fProton = true; + recoil = G4Nucleus(A-1,Z-1); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z-1); + + fMt = G4ParticleTable::GetParticleTable()->FindParticle(2212)->GetPDGMass() + + G4ParticleTable::GetParticleTable()->FindParticle(111)->GetPDGMass(); + } + else // excited neutron + { + fProton = false; + recoil = G4Nucleus(A-1,Z); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z); + + fMt = G4ParticleTable::GetParticleTable()->FindParticle(2112)->GetPDGMass() + + G4ParticleTable::GetParticleTable()->FindParticle(111)->GetPDGMass(); + } + // G4int index = GetEnergyIndex(energy); + G4int nepdg = aParticle->GetDefinition()->GetPDGEncoding(); + + G4double qeTotRat; // = GetNuMuQeTotRat(index, energy); + qeTotRat = CalculateQEratioA( Z, A, energy, nepdg); + + G4ThreeVector dX = (lvX.vect()).unit(); + G4double eX = lvX.e(); // excited nucleon + G4double mX = sqrt(massX2); + + if( qeTotRat > G4UniformRand() || mX <= fMt ) // || eX <= 1232.*MeV) // QE + { + fString = false; + + if( fProton ) + { + fPDGencoding = 2212; + fMr = proton_mass_c2; + recoil = G4Nucleus(A-1,Z-1); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z-1); + } + else + { + fPDGencoding = 2112; + fMr = G4ParticleTable::GetParticleTable()-> + FindParticle(fPDGencoding)->GetPDGMass(); // 939.5654133*MeV; + recoil = G4Nucleus(A-1,Z); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z); + } + G4double eTh = fMr+0.5*(fMr*fMr-mX*mX)/rM; + + if(eX <= eTh) // vmg, very rarely out of kinematics + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + FinalBarion( lvX, 0, fPDGencoding ); // p(n)+deexcited recoil + } + else // if ( eX < 9500000.*GeV ) // < 25.*GeV) // < 95.*GeV ) // < 2.5*GeV ) //cluster decay + { + if ( fProton && pName == "nu_tau" ) qB = 1; + else if( !fProton && pName == "nu_tau" ) qB = 0; + + ClusterDecay( lvX, qB ); + } + return &theParticleChange; +} + + +///////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////// +// +// sample x, then Q2 + +void G4ANuTauNucleusNcModel::SampleLVkr(const G4HadProjectile & aTrack, G4Nucleus& targetNucleus) +{ + fBreak = false; + G4int A = targetNucleus.GetA_asInt(), iTer(0), iTerMax(100); + G4int Z = targetNucleus.GetZ_asInt(); + G4double e3(0.), pMu2(0.), pX2(0.), nMom(0.), rM(0.), hM(0.), tM = targetNucleus.AtomicMass(A,Z); + G4double cost(1.), sint(0.), phi(0.), muMom(0.); + G4ThreeVector eP, bst; + const G4HadProjectile* aParticle = &aTrack; + G4LorentzVector lvp1 = aParticle->Get4Momentum(); + nMom = NucleonMomentum( targetNucleus ); + + if( A == 1 || nMom == 0. ) // hydrogen, no Fermi motion ??? + { + fNuEnergy = aParticle->GetTotalEnergy(); + iTer = 0; + + do + { + fXsample = SampleXkr(fNuEnergy); + fQtransfer = SampleQkr(fNuEnergy, fXsample); + fQ2 = fQtransfer*fQtransfer; + + if( fXsample > 0. ) + { + fW2 = fM1*fM1 - fQ2 + fQ2/fXsample; // sample excited hadron mass + fEmu = fNuEnergy - fQ2/2./fM1/fXsample; + } + else + { + fW2 = fM1*fM1; + fEmu = fNuEnergy; + } + e3 = fNuEnergy + fM1 - fEmu; + + // if( e3 < sqrt(fW2) ) G4cout<<"energyX = "< nucleon rest system, where Q2 transfer is ??? + + fNuEnergy = lvp1.e(); + iTer = 0; + + do + { + fXsample = SampleXkr(fNuEnergy); + fQtransfer = SampleQkr(fNuEnergy, fXsample); + fQ2 = fQtransfer*fQtransfer; + + if( fXsample > 0. ) + { + fW2 = fM1*fM1 - fQ2 + fQ2/fXsample; // sample excited hadron mass + fEmu = fNuEnergy - fQ2/2./fM1/fXsample; + } + else + { + fW2 = fM1*fM1; + fEmu = fNuEnergy; + } + + // if(fEmu < 0.) G4cout<<"fEmu = "< GetCrossSectionDataSet(G4ElectroNuclearCrossSection::Default_Name()); + if ( electroXS == nullptr ) { + electroXS = new G4ElectroNuclearCrossSection; + } + gammaXS = (G4PhotoNuclearCrossSection*)G4CrossSectionDataSetRegistry::Instance()-> GetCrossSectionDataSet(G4PhotoNuclearCrossSection::Default_Name()); + if ( gammaXS == nullptr ) { + gammaXS = + (G4GammaNuclearXS*)G4CrossSectionDataSetRegistry::Instance()-> + GetCrossSectionDataSet(G4GammaNuclearXS::Default_Name()); + if ( gammaXS == nullptr ) { + gammaXS = new G4PhotoNuclearCrossSection; + } + } // reuse existing pre-compound model G4GeneratorPrecompoundInterface* precoInterface @@ -134,7 +152,7 @@ G4ElectroVDNuclearModel::ApplyYourself(const G4HadProjectile& aTrack, G4DynamicParticle lepton(aTrack.GetDefinition(), aTrack.Get4Momentum() ); // Need to call GetElementCrossSection before calling GetEquivalentPhotonEnergy. - G4Material* mat = 0; + const G4Material* mat = aTrack.GetMaterial(); G4int targZ = targetNucleus.GetZ_asInt(); electroXS->GetElementCrossSection(&lepton, targZ, mat); @@ -164,7 +182,7 @@ G4ElectroVDNuclearModel::CalculateEMVertex(const G4HadProjectile& aTrack, // Get gamma cross section at Q**2 = 0 (real gamma) G4int targZ = targetNucleus.GetZ_asInt(); - G4Material* mat = 0; + const G4Material* mat = aTrack.GetMaterial(); G4double sigNu = gammaXS->GetElementCrossSection(&photon, targZ, mat); diff --git a/source/processes/hadronic/models/lepto_nuclear/src/G4NuTauNucleusCcModel.cc b/source/processes/hadronic/models/lepto_nuclear/src/G4NuTauNucleusCcModel.cc new file mode 100644 index 0000000000..435bd6d689 --- /dev/null +++ b/source/processes/hadronic/models/lepto_nuclear/src/G4NuTauNucleusCcModel.cc @@ -0,0 +1,737 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// $Id: G4NuTauNucleusCcModel.cc 91806 2015-08-06 12:20:45Z gcosmo $ +// +// Geant4 Header : G4NuTauNucleusCcModel +// +// Author : V.Grichine 12.2.19 +// + +#include +#include +#include + +#include "G4NuTauNucleusCcModel.hh" +// #include "G4NuMuNuclCcDistrKR.hh" + +// #include "G4NuMuResQX.hh" + +#include "G4SystemOfUnits.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "G4IonTable.hh" +#include "Randomize.hh" +#include "G4RandomDirection.hh" +// #include "G4Threading.hh" + +// #include "G4Integrator.hh" +#include "G4DataVector.hh" +#include "G4PhysicsTable.hh" +/* +#include "G4CascadeInterface.hh" +// #include "G4BinaryCascade.hh" +#include "G4TheoFSGenerator.hh" +#include "G4LundStringFragmentation.hh" +#include "G4ExcitedStringDecay.hh" +#include "G4FTFModel.hh" +// #include "G4BinaryCascade.hh" +#include "G4HadFinalState.hh" +#include "G4HadSecondary.hh" +#include "G4HadronicInteractionRegistry.hh" +// #include "G4INCLXXInterface.hh" +#include "G4QGSModel.hh" +#include "G4QGSMFragmentation.hh" +#include "G4QGSParticipants.hh" +*/ +#include "G4KineticTrack.hh" +#include "G4DecayKineticTracks.hh" +#include "G4KineticTrackVector.hh" +#include "G4Fragment.hh" +#include "G4NucleiProperties.hh" +#include "G4ReactionProductVector.hh" + +#include "G4GeneratorPrecompoundInterface.hh" +#include "G4PreCompoundModel.hh" +#include "G4ExcitationHandler.hh" + + +#include "G4TauMinus.hh" +#include "G4TauPlus.hh" +#include "G4Nucleus.hh" +#include "G4LorentzVector.hh" + +using namespace std; +using namespace CLHEP; + +#ifdef G4MULTITHREADED + G4Mutex G4NuTauNucleusCcModel::numuNucleusModel = G4MUTEX_INITIALIZER; +#endif + + +G4NuTauNucleusCcModel::G4NuTauNucleusCcModel(const G4String& name) + : G4NeutrinoNucleusModel(name) +{ + fData = fMaster = false; + fMtau = 1.77686*GeV; + theTauMinus = G4TauMinus::TauMinus(); + theTauPlus = G4TauPlus::TauPlus(); + InitialiseModel(); +} + + +G4NuTauNucleusCcModel::~G4NuTauNucleusCcModel() +{} + + +void G4NuTauNucleusCcModel::ModelDescription(std::ostream& outFile) const +{ + + outFile << "G4NuTauNucleusCcModel is a tau neutrino-nucleus (charge current) scattering\n" + << "model which uses the standard model \n" + << "transfer parameterization. The model is fully relativistic\n"; + +} + +///////////////////////////////////////////////////////// +// +// Read data from G4PARTICLEXSDATA (locally PARTICLEXSDATA) + +void G4NuTauNucleusCcModel::InitialiseModel() +{ + G4String pName = "nu_mu"; + // G4String pName = "anti_nu_mu"; + + G4int nSize(0), i(0), j(0), k(0); + + if(!fData) + { +#ifdef G4MULTITHREADED + G4MUTEXLOCK(&numuNucleusModel); + if(!fData) + { +#endif + fMaster = true; +#ifdef G4MULTITHREADED + } + G4MUTEXUNLOCK(&numuNucleusModel); +#endif + } + + if(fMaster) + { + const char* path = G4FindDataDir("G4PARTICLEXSDATA"); + std::ostringstream ost1, ost2, ost3, ost4; + ost1 << path << "/" << "neutrino" << "/" << pName << "/xarraycckr"; + + std::ifstream filein1( ost1.str().c_str() ); + + // filein.open("$PARTICLEXSDATA/"); + + filein1>>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i <= fNbin; ++i ) + { + filein1 >> fNuMuXarrayKR[k][i]; + // G4cout<< fNuMuXarrayKR[k][i] << " "; + } + } + // G4cout<>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i < fNbin; ++i ) + { + filein2 >> fNuMuXdistrKR[k][i]; + // G4cout<< fNuMuXdistrKR[k][i] << " "; + } + } + // G4cout<>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i <= fNbin; ++i ) + { + for( j = 0; j <= fNbin; ++j ) + { + filein3 >> fNuMuQarrayKR[k][i][j]; + // G4cout<< fNuMuQarrayKR[k][i][j] << " "; + } + } + } + // G4cout<>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i <= fNbin; ++i ) + { + for( j = 0; j < fNbin; ++j ) + { + filein4 >> fNuMuQdistrKR[k][i][j]; + // G4cout<< fNuMuQdistrKR[k][i][j] << " "; + } + } + } + fData = true; + } +} + +///////////////////////////////////////////////////////// + +G4bool G4NuTauNucleusCcModel::IsApplicable(const G4HadProjectile & aPart, + G4Nucleus & ) +{ + G4bool result = false; + G4String pName = aPart.GetDefinition()->GetParticleName(); + G4double energy = aPart.GetTotalEnergy(); + + if( pName == "nu_tau" // || pName == "anti_nu_tau" ) + && + energy > fMinNuEnergy ) + { + result = true; + } + + return result; +} + +/////////////////////////////////////////// ClusterDecay //////////////////////////////////////////////////////////// +// +// + +G4HadFinalState* G4NuTauNucleusCcModel::ApplyYourself( + const G4HadProjectile& aTrack, G4Nucleus& targetNucleus) +{ + theParticleChange.Clear(); + fProton = f2p2h = fBreak = false; + fCascade = fString = false; + fLVh = fLVl = fLVt = fLVcpi = G4LorentzVector(0.,0.,0.,0.); + + const G4HadProjectile* aParticle = &aTrack; + G4double energy = aParticle->GetTotalEnergy(); + + G4String pName = aParticle->GetDefinition()->GetParticleName(); + + if( energy < fMinNuEnergy ) + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + + SampleLVkr( aTrack, targetNucleus); + + if( fBreak == true || fEmu < fMtau ) // ~5*10^-6 + { + // G4cout<<"ni, "; + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + + // LVs of initial state + + G4LorentzVector lvp1 = aParticle->Get4Momentum(); + G4LorentzVector lvt1( 0., 0., 0., fM1 ); + G4double mPip = G4ParticleTable::GetParticleTable()->FindParticle(211)->GetPDGMass(); + + // 1-pi by fQtransfer && nu-energy + G4LorentzVector lvpip1( 0., 0., 0., mPip ); + G4LorentzVector lvsum, lv2, lvX; + G4ThreeVector eP; + G4double cost(1.), sint(0.), phi(0.), muMom(0.), massX2(0.), massX(0.), massR(0.), eCut(0.); + G4DynamicParticle* aLept = nullptr; // lepton lv + + G4int Z = targetNucleus.GetZ_asInt(); + G4int A = targetNucleus.GetA_asInt(); + G4double mTarg = targetNucleus.AtomicMass(A,Z); + G4int pdgP(0), qB(0); + // G4double mSum = G4ParticleTable::GetParticleTable()->FindParticle(2212)->GetPDGMass() + mPip; + + G4int iPi = GetOnePionIndex(energy); + G4double p1pi = GetNuMuOnePionProb( iPi, energy); + + if( p1pi > G4UniformRand() && fCosTheta > 0.9 ) // && fQtransfer < 0.95*GeV ) // mu- & coherent pion + nucleus + { + // lvsum = lvp1 + lvpip1; + lvsum = lvp1 + lvt1; + // cost = fCosThetaPi; + cost = fCosTheta; + sint = std::sqrt( (1.0 - cost)*(1.0 + cost) ); + phi = G4UniformRand()*CLHEP::twopi; + eP = G4ThreeVector( sint*std::cos(phi), sint*std::sin(phi), cost ); + + // muMom = sqrt(fEmuPi*fEmuPi-fMtau*fMtau); + muMom = sqrt(fEmu*fEmu-fMtau*fMtau); + + eP *= muMom; + + // lv2 = G4LorentzVector( eP, fEmuPi ); + // lv2 = G4LorentzVector( eP, fEmu ); + lv2 = fLVl; + + // lvX = lvsum - lv2; + lvX = fLVh; + massX2 = lvX.m2(); + massX = lvX.m(); + massR = fLVt.m(); + + if ( massX2 <= 0. ) // vmg: very rarely ~ (1-4)e-6 due to big Q2/x, to be improved + { + fCascade = true; + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + fW2 = massX2; + + if( pName == "nu_tau" ) aLept = new G4DynamicParticle( theTauMinus, lv2 ); + // else if( pName == "anti_nu_tau") aLept = new G4DynamicParticle( theTauPlus, lv2 ); + else + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + if( pName == "nu_tau" ) pdgP = 211; + // else pdgP = -211; + // eCut = fMpi + 0.5*(fMpi*fMpi-massX2)/mTarg; // massX -> fMpi + + if( A > 1 ) + { + eCut = (fMpi + mTarg)*(fMpi + mTarg) - (massX + massR)*(massX + massR); + eCut /= 2.*massR; + eCut += massX; + } + else eCut = fM1 + fMpi; + + if ( lvX.e() > eCut ) // && sqrt( GetW2() ) < 1.4*GeV ) // + { + CoherentPion( lvX, pdgP, targetNucleus); + } + else + { + fCascade = true; + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + theParticleChange.AddSecondary( aLept, fSecID ); + + return &theParticleChange; + } + else // lepton part in lab + { + lvsum = lvp1 + lvt1; + cost = fCosTheta; + sint = std::sqrt( (1.0 - cost)*(1.0 + cost) ); + phi = G4UniformRand()*CLHEP::twopi; + eP = G4ThreeVector( sint*std::cos(phi), sint*std::sin(phi), cost ); + + muMom = sqrt(fEmu*fEmu-fMtau*fMtau); + + eP *= muMom; + + lv2 = G4LorentzVector( eP, fEmu ); + lv2 = fLVl; + lvX = lvsum - lv2; + lvX = fLVh; + massX2 = lvX.m2(); + + if ( massX2 <= 0. ) // vmg: very rarely ~ (1-4)e-6 due to big Q2/x, to be improved + { + fCascade = true; + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + fW2 = massX2; + + if( pName == "nu_tau" ) aLept = new G4DynamicParticle( theTauMinus, lv2 ); + // else if( pName == "anti_nu_tau") aLept = new G4DynamicParticle( theTauPlus, lv2 ); + else + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + theParticleChange.AddSecondary( aLept, fSecID ); + } + + // hadron part + + fRecoil = nullptr; + + if( A == 1 ) + { + if( pName == "nu_tau" ) qB = 2; + // else qB = 0; + + // if( G4UniformRand() > 0.1 ) // > 0.9999 ) // > 0.0001 ) // + { + ClusterDecay( lvX, qB ); + } + return &theParticleChange; + } + /* + // else + { + if( pName == "nu_tau" ) pdgP = 211; + else pdgP = -211; + + + if ( fQtransfer < 0.95*GeV ) // < 0.35*GeV ) // + { + if( lvX.m() > mSum ) CoherentPion( lvX, pdgP, targetNucleus); + } + } + return &theParticleChange; + } + */ + G4Nucleus recoil; + G4double rM(0.), ratio = G4double(Z)/G4double(A); + + if( ratio > G4UniformRand() ) // proton is excited + { + fProton = true; + recoil = G4Nucleus(A-1,Z-1); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z-1); + + if( pName == "nu_tau" ) // (++) state -> p + pi+ + { + fMt = G4ParticleTable::GetParticleTable()->FindParticle(2212)->GetPDGMass() + + G4ParticleTable::GetParticleTable()->FindParticle(211)->GetPDGMass(); + } + else // (0) state -> p + pi-, n + pi0 + { + // fMt = G4ParticleTable::GetParticleTable()->FindParticle(2212)->GetPDGMass() + // + G4ParticleTable::GetParticleTable()->FindParticle(-211)->GetPDGMass(); + } + } + else // excited neutron + { + fProton = false; + recoil = G4Nucleus(A-1,Z); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z); + + if( pName == "nu_tau" ) // (+) state -> n + pi+ + { + fMt = G4ParticleTable::GetParticleTable()->FindParticle(2112)->GetPDGMass() + + G4ParticleTable::GetParticleTable()->FindParticle(211)->GetPDGMass(); + } + else // (-) state -> n + pi-, // n + pi0 + { + // fMt = G4ParticleTable::GetParticleTable()->FindParticle(2112)->GetPDGMass() + // + G4ParticleTable::GetParticleTable()->FindParticle(-211)->GetPDGMass(); + } + } + // G4int index = GetEnergyIndex(energy); + G4int nepdg = aParticle->GetDefinition()->GetPDGEncoding(); + + G4double qeTotRat; // = GetNuMuQeTotRat(index, energy); + qeTotRat = CalculateQEratioA( Z, A, energy, nepdg); + + G4ThreeVector dX = (lvX.vect()).unit(); + G4double eX = lvX.e(); // excited nucleon + G4double mX = sqrt(massX2); + // G4double pX = sqrt( eX*eX - mX*mX ); + // G4double sumE = eX + rM; + + if( qeTotRat > G4UniformRand() || mX <= fMt ) // || eX <= 1232.*MeV) // QE + { + fString = false; + + if( fProton ) + { + fPDGencoding = 2212; + fMr = proton_mass_c2; + recoil = G4Nucleus(A-1,Z-1); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z-1); + } + else // if( pName == "anti_nu_tau" ) + { + fPDGencoding = 2112; + fMr = G4ParticleTable::GetParticleTable()-> + FindParticle(fPDGencoding)->GetPDGMass(); // 939.5654133*MeV; + recoil = G4Nucleus(A-1,Z); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z); + } + // sumE = eX + rM; + G4double eTh = fMr + 0.5*(fMr*fMr - mX*mX)/rM; + + if( eX <= eTh ) // vmg, very rarely out of kinematics + { + fString = true; + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + // FinalBarion( fLVh, 0, fPDGencoding ); // p(n)+deexcited recoil + FinalBarion( lvX, 0, fPDGencoding ); // p(n)+deexcited recoil + } + else // if ( eX < 9500000.*GeV ) // < 25.*GeV) // < 95.*GeV ) // < 2.5*GeV ) //cluster decay + { + if ( fProton && pName == "nu_tau" ) qB = 2; + // else if( fProton && pName == "anti_nu_tau" ) qB = 0; + else if( !fProton && pName == "nu_tau" ) qB = 1; + // else if( !fProton && pName == "anti_nu_tau" ) qB = -1; + + + ClusterDecay( lvX, qB ); + } + return &theParticleChange; +} + + +///////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////// +// +// sample x, then Q2 + +void G4NuTauNucleusCcModel::SampleLVkr(const G4HadProjectile & aTrack, G4Nucleus& targetNucleus) +{ + fBreak = false; + G4int A = targetNucleus.GetA_asInt(), iTer(0), iTerMax(100); + G4int Z = targetNucleus.GetZ_asInt(); + G4double e3(0.), pMu2(0.), pX2(0.), nMom(0.), rM(0.), hM(0.), tM = targetNucleus.AtomicMass(A,Z); + G4double Ex(0.), ei(0.), nm2(0.); + G4double cost(1.), sint(0.), phi(0.), muMom(0.); + G4ThreeVector eP, bst; + const G4HadProjectile* aParticle = &aTrack; + G4LorentzVector lvp1 = aParticle->Get4Momentum(); + + if( A == 1 ) // hydrogen, no Fermi motion ??? + { + fNuEnergy = aParticle->GetTotalEnergy(); + iTer = 0; + + do + { + fXsample = SampleXkr(fNuEnergy); + fQtransfer = SampleQkr(fNuEnergy, fXsample); + fQ2 = fQtransfer*fQtransfer; + + if( fXsample > 0. ) + { + fW2 = fM1*fM1 - fQ2 + fQ2/fXsample; // sample excited hadron mass + fEmu = fNuEnergy - fQ2/2./fM1/fXsample; + } + else + { + fW2 = fM1*fM1; + fEmu = fNuEnergy; + } + e3 = fNuEnergy + fM1 - fEmu; + + if( e3 < sqrt(fW2) ) G4cout<<"energyX = "< nucleon rest system, where Q2 transfer is ??? + + fNuEnergy = lvp1.e(); + // G4double mN = fLVh.m(); // better mN = fM1 !? vmg + iTer = 0; + + do // no FM!?, 5.4.20 vmg + { + fXsample = SampleXkr(fNuEnergy); + fQtransfer = SampleQkr(fNuEnergy, fXsample); + fQ2 = fQtransfer*fQtransfer; + + // G4double mR = mN + fM1*(A-1.)*std::exp(-2.0*fQtransfer/mN); // recoil mass in+el + + if( fXsample > 0. ) + { + fW2 = fM1*fM1 - fQ2 + fQ2/fXsample; // sample excited hadron mass + + // fW2 = mN*mN - fQ2 + fQ2/fXsample; // sample excited hadron mass + // fEmu = fNuEnergy - fQ2/2./mR/fXsample; // fM1->mN + + fEmu = fNuEnergy - fQ2/2./fM1/fXsample; // fM1->mN + } + else + { + // fW2 = mN*mN; + + fW2 = fM1*fM1; + fEmu = fNuEnergy; + } + // if(fEmu < 0.) G4cout<<"fEmu = "<>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i <= fNbin; ++i ) + { + filein1 >> fNuMuXarrayKR[k][i]; + // G4cout<< fNuMuXarrayKR[k][i] << " "; + } + } + // G4cout<>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i < fNbin; ++i ) + { + filein2 >> fNuMuXdistrKR[k][i]; + // G4cout<< fNuMuXdistrKR[k][i] << " "; + } + } + // G4cout<>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i <= fNbin; ++i ) + { + for( j = 0; j <= fNbin; ++j ) + { + filein3 >> fNuMuQarrayKR[k][i][j]; + // G4cout<< fNuMuQarrayKR[k][i][j] << " "; + } + } + } + // G4cout<>nSize; + + for( k = 0; k < fNbin; ++k ) + { + for( i = 0; i <= fNbin; ++i ) + { + for( j = 0; j < fNbin; ++j ) + { + filein4 >> fNuMuQdistrKR[k][i][j]; + // G4cout<< fNuMuQdistrKR[k][i][j] << " "; + } + } + } + fData = true; + } +} + +///////////////////////////////////////////////////////// + +G4bool G4NuTauNucleusNcModel::IsApplicable(const G4HadProjectile & aPart, + G4Nucleus & ) +{ + G4bool result = false; + G4String pName = aPart.GetDefinition()->GetParticleName(); + G4double energy = aPart.GetTotalEnergy(); + + if( pName == "nu_tau" // || pName == "anti_nu_tau" ) + && + energy > fMinNuEnergy ) + { + result = true; + } + + return result; +} + +/////////////////////////////////////////// ClusterDecay //////////////////////////////////////////////////////////// +// +// + +G4HadFinalState* G4NuTauNucleusNcModel::ApplyYourself( + const G4HadProjectile& aTrack, G4Nucleus& targetNucleus) +{ + theParticleChange.Clear(); + fProton = f2p2h = fBreak = false; + const G4HadProjectile* aParticle = &aTrack; + G4double energy = aParticle->GetTotalEnergy(); + + G4String pName = aParticle->GetDefinition()->GetParticleName(); + + if( energy < fMinNuEnergy ) + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + SampleLVkr( aTrack, targetNucleus); + + if( fBreak == true || fEmu < fMnumu ) // ~5*10^-6 + { + // G4cout<<"ni, "; + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + + // LVs of initial state + + G4LorentzVector lvp1 = aParticle->Get4Momentum(); + G4LorentzVector lvt1( 0., 0., 0., fM1 ); + G4double mPip = G4ParticleTable::GetParticleTable()->FindParticle(211)->GetPDGMass(); + + // 1-pi by fQtransfer && nu-energy + G4LorentzVector lvpip1( 0., 0., 0., mPip ); + G4LorentzVector lvsum, lv2, lvX; + G4ThreeVector eP; + G4double cost(1.), sint(0.), phi(0.), muMom(0.), massX2(0.); + G4DynamicParticle* aLept = nullptr; // lepton lv + + G4int Z = targetNucleus.GetZ_asInt(); + G4int A = targetNucleus.GetA_asInt(); + G4double mTarg = targetNucleus.AtomicMass(A,Z); + G4int pdgP(0), qB(0); + // G4double mSum = G4ParticleTable::GetParticleTable()->FindParticle(2212)->GetPDGMass() + mPip; + + G4int iPi = GetOnePionIndex(energy); + G4double p1pi = GetNuMuOnePionProb( iPi, energy); + + if( p1pi > G4UniformRand() && fCosTheta > 0.9 ) // && fQtransfer < 0.95*GeV ) // mu- & coherent pion + nucleus + { + // lvsum = lvp1 + lvpip1; + lvsum = lvp1 + lvt1; + // cost = fCosThetaPi; + cost = fCosTheta; + sint = std::sqrt( (1.0 - cost)*(1.0 + cost) ); + phi = G4UniformRand()*CLHEP::twopi; + eP = G4ThreeVector( sint*std::cos(phi), sint*std::sin(phi), cost ); + + // muMom = sqrt(fEmuPi*fEmuPi-fMnumu*fMnumu); + muMom = sqrt(fEmu*fEmu-fMnumu*fMnumu); + + eP *= muMom; + + // lv2 = G4LorentzVector( eP, fEmuPi ); + lv2 = G4LorentzVector( eP, fEmu ); + lv2 = fLVl; + + lvX = lvsum - lv2; + lvX = fLVh; + massX2 = lvX.m2(); + G4double massX = lvX.m(); + G4double massR = fLVt.m(); + + // if ( massX2 <= 0. ) // vmg: very rarely ~ (1-4)e-6 due to big Q2/x, to be improved + if ( massX2 <= fM1*fM1 ) // 9-3-20 vmg: very rarely ~ (1-4)e-6 due to big Q2/x, to be improved + if ( lvX.e() <= fM1 ) // 9-3-20 vmg: very rarely ~ (1-4)e-6 due to big Q2/x, to be improved + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + fW2 = massX2; + + if( pName == "nu_tau" ) aLept = new G4DynamicParticle( theNuTau, lv2 ); + else if( pName == "anti_nu_tau") aLept = new G4DynamicParticle( theANuTau, lv2 ); + else + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + + pdgP = 111; + + G4double eCut; // = fMpi + 0.5*(fMpi*fMpi - massX2)/mTarg; // massX -> fMpi + + if( A > 1 ) + { + eCut = (fMpi + mTarg)*(fMpi + mTarg) - (massX + massR)*(massX + massR); + eCut /= 2.*massR; + eCut += massX; + } + else eCut = fM1 + fMpi; + + if ( lvX.e() > eCut ) // && sqrt( GetW2() ) < 1.4*GeV ) // + { + CoherentPion( lvX, pdgP, targetNucleus); + } + else + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + theParticleChange.AddSecondary( aLept, fSecID ); + + return &theParticleChange; + } + else // lepton part in lab + { + lvsum = lvp1 + lvt1; + cost = fCosTheta; + sint = std::sqrt( (1.0 - cost)*(1.0 + cost) ); + phi = G4UniformRand()*CLHEP::twopi; + eP = G4ThreeVector( sint*std::cos(phi), sint*std::sin(phi), cost ); + + muMom = sqrt(fEmu*fEmu-fMnumu*fMnumu); + + eP *= muMom; + + lv2 = G4LorentzVector( eP, fEmu ); + + lvX = lvsum - lv2; + + massX2 = lvX.m2(); + + if ( massX2 <= 0. ) // vmg: very rarely ~ (1-4)e-6 due to big Q2/x, to be improved + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + fW2 = massX2; + + aLept = new G4DynamicParticle( theNuTau, lv2 ); + + theParticleChange.AddSecondary( aLept, fSecID ); + } + + // hadron part + + fRecoil = nullptr; + fCascade = false; + fString = false; + + if( A == 1 ) + { + qB = 1; + + // if( G4UniformRand() > 0.1 ) // > 0.9999 ) // > 0.0001 ) // + { + ClusterDecay( lvX, qB ); + } + return &theParticleChange; + } + G4Nucleus recoil; + G4double rM(0.), ratio = G4double(Z)/G4double(A); + + if( ratio > G4UniformRand() ) // proton is excited + { + fProton = true; + recoil = G4Nucleus(A-1,Z-1); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z-1); + + fMt = G4ParticleTable::GetParticleTable()->FindParticle(2212)->GetPDGMass() + + G4ParticleTable::GetParticleTable()->FindParticle(111)->GetPDGMass(); + } + else // excited neutron + { + fProton = false; + recoil = G4Nucleus(A-1,Z); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z); + + fMt = G4ParticleTable::GetParticleTable()->FindParticle(2112)->GetPDGMass() + + G4ParticleTable::GetParticleTable()->FindParticle(111)->GetPDGMass(); + } + // G4int index = GetEnergyIndex(energy); + G4int nepdg = aParticle->GetDefinition()->GetPDGEncoding(); + + G4double qeTotRat; // = GetNuMuQeTotRat(index, energy); + qeTotRat = CalculateQEratioA( Z, A, energy, nepdg); + + G4ThreeVector dX = (lvX.vect()).unit(); + G4double eX = lvX.e(); // excited nucleon + G4double mX = sqrt(massX2); + + if( qeTotRat > G4UniformRand() || mX <= fMt ) // || eX <= 1232.*MeV) // QE + { + fString = false; + + if( fProton ) + { + fPDGencoding = 2212; + fMr = proton_mass_c2; + recoil = G4Nucleus(A-1,Z-1); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z-1); + } + else + { + fPDGencoding = 2112; + fMr = G4ParticleTable::GetParticleTable()-> + FindParticle(fPDGencoding)->GetPDGMass(); // 939.5654133*MeV; + recoil = G4Nucleus(A-1,Z); + fRecoil = &recoil; + rM = recoil.AtomicMass(A-1,Z); + } + G4double eTh = fMr+0.5*(fMr*fMr-mX*mX)/rM; + + if(eX <= eTh) // vmg, very rarely out of kinematics + { + theParticleChange.SetEnergyChange(energy); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } + FinalBarion( lvX, 0, fPDGencoding ); // p(n)+deexcited recoil + } + else // if ( eX < 9500000.*GeV ) // < 25.*GeV) // < 95.*GeV ) // < 2.5*GeV ) //cluster decay + { + if ( fProton && pName == "nu_tau" ) qB = 1; + else if( !fProton && pName == "nu_tau" ) qB = 0; + + ClusterDecay( lvX, qB ); + } + return &theParticleChange; +} + + +///////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////// +// +// sample x, then Q2 + +void G4NuTauNucleusNcModel::SampleLVkr(const G4HadProjectile & aTrack, G4Nucleus& targetNucleus) +{ + fBreak = false; + G4int A = targetNucleus.GetA_asInt(), iTer(0), iTerMax(100); + G4int Z = targetNucleus.GetZ_asInt(); + G4double e3(0.), pMu2(0.), pX2(0.), nMom(0.), rM(0.), hM(0.), tM = targetNucleus.AtomicMass(A,Z); + G4double cost(1.), sint(0.), phi(0.), muMom(0.); + G4ThreeVector eP, bst; + const G4HadProjectile* aParticle = &aTrack; + G4LorentzVector lvp1 = aParticle->Get4Momentum(); + nMom = NucleonMomentum( targetNucleus ); + + if( A == 1 || nMom == 0. ) // hydrogen, no Fermi motion ??? + { + fNuEnergy = aParticle->GetTotalEnergy(); + iTer = 0; + + do + { + fXsample = SampleXkr(fNuEnergy); + fQtransfer = SampleQkr(fNuEnergy, fXsample); + fQ2 = fQtransfer*fQtransfer; + + if( fXsample > 0. ) + { + fW2 = fM1*fM1 - fQ2 + fQ2/fXsample; // sample excited hadron mass + fEmu = fNuEnergy - fQ2/2./fM1/fXsample; + } + else + { + fW2 = fM1*fM1; + fEmu = fNuEnergy; + } + e3 = fNuEnergy + fM1 - fEmu; + + // if( e3 < sqrt(fW2) ) G4cout<<"energyX = "< nucleon rest system, where Q2 transfer is ??? + + fNuEnergy = lvp1.e(); + iTer = 0; + + do + { + fXsample = SampleXkr(fNuEnergy); + fQtransfer = SampleQkr(fNuEnergy, fXsample); + fQ2 = fQtransfer*fQtransfer; + + if( fXsample > 0. ) + { + fW2 = fM1*fM1 - fQ2 + fQ2/fXsample; // sample excited hadron mass + fEmu = fNuEnergy - fQ2/2./fM1/fXsample; + } + else + { + fW2 = fM1*fM1; + fEmu = fNuEnergy; + } + + // if(fEmu < 0.) G4cout<<"fEmu = "<nLevels-1) return 0; return theLevels+i; } diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFinalState.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFinalState.hh index 2e577e0962..c6be85bfd7 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFinalState.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPFinalState.hh @@ -34,7 +34,6 @@ #include "G4ParticleHPManager.hh" #include "G4Material.hh" -#include "G4FastVector.hh" #include "G4HadFinalState.hh" #include "G4ParticleHPNames.hh" #include "G4ParticleHPVector.hh" diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPProduct.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPProduct.hh index 4540aa46a7..199500f710 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPProduct.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPProduct.hh @@ -100,13 +100,6 @@ public: { aDataFile >> theMassCode>>theMass>>theIsomerFlag>>theDistLaw >> theGroundStateQValue>>theActualStateQValue; - if( std::getenv("G4PHPTEST") ) - G4cout << " G4ParticleHPProduct :: Init MassCode " - << theMassCode << " " << theMass << " theActualStateQValue " - << theActualStateQValue << G4endl;// GDEB - if( std::getenv("G4PHPTEST") ) - G4cout << " G4ParticleHPProduct :: Init theActualStateQValue " - << theActualStateQValue << G4endl;// GDEB theGroundStateQValue*= CLHEP::eV; theActualStateQValue*= CLHEP::eV; theYield.Init(aDataFile, CLHEP::eV); diff --git a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPThermalScattering.hh b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPThermalScattering.hh index 83b53c5902..21dc574958 100644 --- a/source/processes/hadronic/models/particle_hp/include/G4ParticleHPThermalScattering.hh +++ b/source/processes/hadronic/models/particle_hp/include/G4ParticleHPThermalScattering.hh @@ -75,6 +75,7 @@ struct E_P_E_isoAng energy=0.0; n=0; sum_of_probXdEs=0.0; + secondary_energy_cdf_size=0; }; }; diff --git a/source/processes/hadronic/models/particle_hp/src/G4ENDFTapeRead.cc b/source/processes/hadronic/models/particle_hp/src/G4ENDFTapeRead.cc index 0dcc53e52b..52a557cc3c 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ENDFTapeRead.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ENDFTapeRead.cc @@ -140,7 +140,7 @@ G4GetNumberOfFissionProducts( void ) { G4FFG_FUNCTIONENTER__ - G4int NumberOfElements = YieldContainerTable_->G4GetNumberOfElements(); + G4int NumberOfElements = (G4int)YieldContainerTable_->G4GetNumberOfElements(); G4FFG_FUNCTIONLEAVE__ return NumberOfElements; @@ -199,7 +199,7 @@ G4FFG_FUNCTIONENTER__ // std::vector< std::vector< G4double > > Yield; // std::vector< std::vector< G4double > > Error; // G4String DataBlock; -// size_t InsertExponent; +// std::size_t InsertExponent; // G4double Parts[6]; // G4double dummy; // G4int MAT; @@ -439,7 +439,7 @@ G4FFG_FUNCTIONENTER__ { // Load in the energy of the projectile projectileEnergies.push_back(incidentEnergy); - currentEnergy = projectileEnergies.size() - 1; + currentEnergy = G4int(projectileEnergies.size() - 1); } else { // !!! Do not break since we need to parse through the !!! @@ -478,7 +478,7 @@ G4FFG_FUNCTIONENTER__ } G4ENDFYieldDataContainer* NewDataContainer; - EnergyGroups_ = projectileEnergies.size(); + EnergyGroups_ = (G4int)projectileEnergies.size(); EnergyGroupValues_ = new G4double[EnergyGroups_]; G4int NewProduct; G4FFGEnumerations::MetaState NewMetaState; diff --git a/source/processes/hadronic/models/particle_hp/src/G4FissionProductYieldDist.cc b/source/processes/hadronic/models/particle_hp/src/G4FissionProductYieldDist.cc index 896c8766a9..9acb22c753 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4FissionProductYieldDist.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4FissionProductYieldDist.cc @@ -147,8 +147,8 @@ G4FFG_FUNCTIONENTER__ SetNubar(); // Set miscellaneous variables - AlphaDefinition_ = reinterpret_cast(G4Alpha::Definition()); - NeutronDefinition_ = reinterpret_cast(G4Neutron::Definition()); + AlphaDefinition_ = static_cast(G4Alpha::Definition()); + NeutronDefinition_ = static_cast(G4Neutron::Definition()); GammaDefinition_ = G4Gamma::Definition(); SmallestZ_ = SmallestA_ = LargestZ_ = LargestA_ = NULL; @@ -972,7 +972,7 @@ G4FFG_DATA_FUNCTIONENTER__ // Check to see if the particle is registered using the PDG code // TODO Add metastable state when supported by G4IonTable::GetIon() - Temp = reinterpret_cast(IonTable_->GetIon(Z, A)); + Temp = static_cast(IonTable_->GetIon(Z, A)); // Removed in favor of the G4IonTable::GetIon() method // // Register the particle if it does not exist diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCapture.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCapture.cc index 63fec4d40f..90a9a1ed86 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCapture.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCapture.cc @@ -83,7 +83,7 @@ //delete [] theCapture; //vector is shared, only master deletes if ( ! G4Threading::IsWorkerThread() ) { - if ( theCapture != NULL ) { + if ( theCapture != nullptr ) { for ( std::vector::iterator ite = theCapture->begin() ; ite != theCapture->end() ; ite++ ) { delete *ite; @@ -100,10 +100,9 @@ //if ( numEle < (G4int)G4Element::GetNumberOfElements() ) addChannelForNewElement(); G4ParticleHPManager::GetInstance()->OpenReactionWhiteBoard(); - if(std::getenv("NeutronHPCapture")) G4cout <<" ####### G4ParticleHPCapture called"<GetNumberOfElements(); - G4int index = theMaterial->GetElement(0)->GetIndex(); + const G4Material* theMaterial = aTrack.GetMaterial(); + G4int n = (G4int)theMaterial->GetNumberOfElements(); + std::size_t index = theMaterial->GetElement(0)->GetIndex(); if(n!=1) { G4double* xSec = new G4double[n]; @@ -112,7 +111,7 @@ const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); G4double rWeight; G4ParticleHPThermalBoost aThermalE; - for (i=0; iGetElement(i)->GetIndex(); rWeight = NumAtomsPerVolume[i]; @@ -125,7 +124,7 @@ } G4double random = G4UniformRand(); G4double running = 0; - for (i=0; iGetElement(i)->GetIndex(); @@ -143,9 +142,9 @@ //Overwrite target parameters aNucleus.SetParameters(G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargA(),G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargZ()); const G4Element* target_element = (*G4Element::GetElementTable())[index]; - const G4Isotope* target_isotope=NULL; - G4int iele = target_element->GetNumberOfIsotopes(); - for ( G4int j = 0 ; j != iele ; j++ ) { + const G4Isotope* target_isotope=nullptr; + G4int iele = (G4int)target_element->GetNumberOfIsotopes(); + for ( G4int j = 0 ; j != iele ; ++j ) { target_isotope=target_element->GetIsotope( j ); if ( target_isotope->GetN() == G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargA() ) break; } @@ -160,8 +159,8 @@ const std::pair G4ParticleHPCapture::GetFatalEnergyCheckLevels() const { - //return std::pair(10*perCent,10*GeV); - return std::pair(10*perCent,DBL_MAX); + // max energy non-conservation is mass of heavy nucleus + return std::pair(10.0*perCent, 350.0*CLHEP::GeV); } /* @@ -198,12 +197,12 @@ void G4ParticleHPCapture::BuildPhysicsTable(const G4ParticleDefinition&) if ( G4Threading::IsMasterThread() ) { - if ( theCapture == NULL ) theCapture = new std::vector; + if ( theCapture == nullptr ) theCapture = new std::vector; if ( numEle == (G4int)G4Element::GetNumberOfElements() ) return; if ( theCapture->size() == G4Element::GetNumberOfElements() ) { - numEle = G4Element::GetNumberOfElements(); + numEle = (G4int)G4Element::GetNumberOfElements(); return; } @@ -214,7 +213,7 @@ void G4ParticleHPCapture::BuildPhysicsTable(const G4ParticleDefinition&) dirName = dirName + tString; G4ParticleHPCaptureFS * theFS = new G4ParticleHPCaptureFS; - for ( G4int i = numEle ; i < (G4int)G4Element::GetNumberOfElements() ; i++ ) + for ( G4int i = numEle ; i < (G4int)G4Element::GetNumberOfElements() ; ++i ) { theCapture->push_back( new G4ParticleHPChannel ); ((*theCapture)[i])->Init((*(G4Element::GetElementTable()))[i], dirName); @@ -223,7 +222,7 @@ void G4ParticleHPCapture::BuildPhysicsTable(const G4ParticleDefinition&) delete theFS; hpmanager->RegisterCaptureFinalStates( theCapture ); } - numEle = G4Element::GetNumberOfElements(); + numEle = (G4int)G4Element::GetNumberOfElements(); } void G4ParticleHPCapture::ModelDescription(std::ostream& outFile) const diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureData.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureData.cc index 179044ecf5..11f3cdc1af 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureData.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureData.cc @@ -46,6 +46,7 @@ #include "G4ParticleHPManager.hh" #include "G4Threading.hh" #include "G4HadronicParameters.hh" +#include "G4NucleiProperties.hh" #include "G4Pow.hh" G4ParticleHPCaptureData::G4ParticleHPCaptureData() @@ -61,8 +62,8 @@ G4ParticleHPCaptureData::G4ParticleHPCaptureData() instanceOfWorker = true; } - element_cache = NULL; - material_cache = NULL; + element_cache = nullptr; + material_cache = nullptr; ke_cache = 0.0; xs_cache = 0.0; @@ -71,10 +72,10 @@ G4ParticleHPCaptureData::G4ParticleHPCaptureData() G4ParticleHPCaptureData::~G4ParticleHPCaptureData() { - if ( theCrossSections != NULL && instanceOfWorker != true ) { + if ( theCrossSections != nullptr && instanceOfWorker != true ) { theCrossSections->clearAndDestroy(); delete theCrossSections; - theCrossSections = NULL; + theCrossSections = nullptr; } } @@ -127,11 +128,11 @@ void G4ParticleHPCaptureData::BuildPhysicsTable(const G4ParticleDefinition& aP) return; } - size_t numberOfElements = G4Element::GetNumberOfElements(); + std::size_t numberOfElements = G4Element::GetNumberOfElements(); // G4cout << "CALLED G4ParticleHPCaptureData::BuildPhysicsTable "<clearAndDestroy(); @@ -139,12 +140,12 @@ void G4ParticleHPCaptureData::BuildPhysicsTable(const G4ParticleDefinition& aP) // make a PhysicsVector for each element static G4ThreadLocal G4ElementTable *theElementTable = 0 ; if (!theElementTable) theElementTable= G4Element::GetElementTable(); - for( size_t i=0; iGetIndex(); + std::size_t index_debug = ((*theElementTable)[i])->GetIndex(); if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) G4cout << "IndexDebug "<< i <<" "<GetName() << G4endl; G4int ie = 0; - for ( ie = 0 ; ie < 130 ; ie++ ) + for ( ie = 0 ; ie < 130 ; ++ie ) { G4double eKinetic = 1.0e-5 * G4Pow::GetInstance()->powA ( 10.0 , ie/10.0 ) *eV; G4bool outOfRange = false; @@ -209,14 +211,12 @@ void G4ParticleHPCaptureData::DumpPhysicsTable(const G4ParticleDefinition& aP) #endif } -#include "G4NucleiProperties.hh" - G4double G4ParticleHPCaptureData:: GetCrossSection(const G4DynamicParticle* aP, const G4Element*anE, G4double aT) { G4double result = 0; G4bool outOfRange; - G4int index = anE->GetIndex(); + G4int index = (G4int)anE->GetIndex(); // prepare neutron G4double eKinetic = aP->GetKineticEnergy(); @@ -262,7 +262,7 @@ GetCrossSection(const G4DynamicParticle* aP, const G4Element*anE, G4double aT) if(counter) buffer = result/counter; while (counterGetVerboseLevel(); } + void G4ParticleHPCaptureData::SetVerboseLevel( G4int newValue ) { G4ParticleHPManager::GetInstance()->SetVerboseLevel(newValue); } + void G4ParticleHPCaptureData::CrossSectionDescription(std::ostream& outFile) const { outFile << "High Precision cross data based on Evaluated Nuclear Data Files (ENDF) for radiative capture reaction of neutrons below 20MeV\n" ; diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureFS.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureFS.cc index eb04d65346..5f1b7ca059 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureFS.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPCaptureFS.cc @@ -61,7 +61,7 @@ G4ParticleHPCaptureFS::G4ParticleHPCaptureFS() G4HadFinalState * G4ParticleHPCaptureFS::ApplyYourself(const G4HadProjectile & theTrack) { - if ( theResult.Get() == NULL ) theResult.Put( new G4HadFinalState ); + if ( theResult.Get() == nullptr ) theResult.Put( new G4HadFinalState ); theResult.Get()->Clear(); G4int i; @@ -115,9 +115,8 @@ G4ParticleHPCaptureFS::G4ParticleHPCaptureFS() // T. K. add photonEvaporation.SetICM( TRUE ); G4FragmentVector* products = photonEvaporation.BreakItUp(nucleus); - G4FragmentVector::iterator it; thePhotons = new G4ReactionProductVector; - for(it=products->begin(); it!=products->end(); it++) + for(auto it=products->cbegin(); it!=products->cend(); ++it) { G4ReactionProduct * theOne = new G4ReactionProduct; // T. K. add @@ -150,7 +149,7 @@ G4ParticleHPCaptureFS::G4ParticleHPCaptureFS() // Add them to the final state G4int nPhotons = 0; - nPhotons=thePhotons->size(); + nPhotons=(G4int)thePhotons->size(); ///* if ( ! G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) { @@ -168,7 +167,7 @@ G4ParticleHPCaptureFS::G4ParticleHPCaptureFS() G4ThreeVector direction(sinth*std::cos(phi), sinth*std::sin(phi), costheta); theOne->SetMomentum(direction); thePhotons->push_back(theOne); - nPhotons++; // 0 -> 1 + ++nPhotons; // 0 -> 1 } //One photon case: energy set to Q-value //101203 TK diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPChannel.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPChannel.cc index eef5916888..13e843fa8c 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPChannel.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPChannel.cc @@ -45,7 +45,7 @@ #include "G4SystemOfUnits.hh" #include "G4ParticleHPFinalState.hh" #include "G4HadTmpUtil.hh" - +#include "G4ParticleHPThermalBoost.hh" #include "G4ParticleHPReactionWhiteBoard.hh" G4double G4ParticleHPChannel::GetXsec(G4double energy) @@ -94,7 +94,7 @@ G4double G4ParticleHPChannel::GetFSCrossSection(G4double energy, G4int isoNumber // Bug fix by TK on behalf of AH //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(registerCount==0) count = (G4int)theElement->GetNumberOfIsotopes(); if(count == 0||registerCount!=0) count += theStableOnes.GetNumberOfIsotopes(Z); niso = count; @@ -107,7 +107,7 @@ G4double G4ParticleHPChannel::GetFSCrossSection(G4double energy, G4int isoNumber theFinalStates = new G4ParticleHPFinalState * [niso]; delete theChannelData; theChannelData = new G4ParticleHPVector; - for(G4int i=0; iNew(); theFinalStates[i]->SetProjectile(theProjectile); @@ -116,7 +116,7 @@ G4double G4ParticleHPChannel::GetFSCrossSection(G4double energy, G4int isoNumber G4int nIsos = niso; if(theElement->GetNumberOfIsotopes()!=0&®isterCount==0) { - for (G4int i1=0; i1GetIsotope(i1)->GetN(); @@ -133,9 +133,7 @@ G4double G4ParticleHPChannel::GetFSCrossSection(G4double energy, G4int isoNumber // <InitializeANucleus(A, Z, M, theDir); - } + if(wendtFissionGenerator) + { + wendtFissionGenerator->InitializeANucleus(A, Z, M, theDir); + } - theFinalStates[index]->Init(A, Z, M, theDir, theFSType, projectile); + theFinalStates[index]->Init(A, Z, M, theDir, theFSType, projectile); if(!theFinalStates[index]->HasAnyData()) return; // nothing there for exactly this isotope. // the above has put the X-sec into the FS @@ -200,7 +197,7 @@ G4double G4ParticleHPChannel::GetFSCrossSection(G4double energy, G4int isoNumber G4double xp = aPassive->GetEnergy(p); if( std::abs(std::abs(xp-xa)/xa)<0.001 ) { - p++; + ++p; } } else { tmp = anActive; t=a; @@ -211,20 +208,18 @@ G4double G4ParticleHPChannel::GetFSCrossSection(G4double energy, G4int isoNumber while (a!=anActive->GetVectorLength()) // Loop checking, 11.05.2015, T. Koi { theMerge->SetData(m_tmp++, anActive->GetEnergy(a), anActive->GetXsec(a)); - a++; + ++a; } while (p!=aPassive->GetVectorLength()) // Loop checking, 11.05.2015, T. Koi { if(std::abs(theMerge->GetEnergy(std::max(0,m_tmp-1))-aPassive->GetEnergy(p))/aPassive->GetEnergy(p)>0.001) theMerge->SetData(m_tmp++, aPassive->GetEnergy(p), aPassive->GetXsec(p)); - p++; + ++p; } delete theStore; theStore = theMerge; } -#include "G4ParticleHPThermalBoost.hh" - G4HadFinalState * G4ParticleHPChannel:: ApplyYourself(const G4HadProjectile & theTrack, G4int anIsotope) { diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPContAngularPar.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPContAngularPar.cc index 3a2f74bf42..c05f004eff 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPContAngularPar.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPContAngularPar.cc @@ -115,9 +115,6 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, if (G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) adjustResult = false; - if (std::getenv("G4PHPTEST") ) G4cout << " G4ParticleHPContAngularPar::Sample " - << anEnergy << " " << massCode << " " - << angularRep << G4endl; //GDEB if (fCache.Get() == 0 ) cacheInit(); G4ReactionProduct * result = new G4ReactionProduct; G4int Z = static_cast(massCode/1000); @@ -158,9 +155,6 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, fCache.Get()->remaining_energy = std::max (theAngular[0].GetLabel(), theAngular[nEnergies-1].GetLabel() ); fCache.Get()->fresh = false; - if (std::getenv("G4PHPTEST") ) - G4cout << " G4ParticleHPContAngularPar::Sample fresh remaining_energy " - << fCache.Get()->remaining_energy << G4endl; } // Cheating for small remaining_energy @@ -168,9 +162,6 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, if (nDiscreteEnergies == nEnergies) { fCache.Get()->remaining_energy = std::max(fCache.Get()->remaining_energy, theAngular[nDiscreteEnergies-1].GetLabel() ); //Minimum Line - if (std::getenv("G4PHPTEST") ) - G4cout << " G4ParticleHPContAngularPar::Sample cheat case for small remaining_energy " - << fCache.Get()->remaining_energy << G4endl; } else { G4double cont_min = 0.0; for (G4int j = nDiscreteEnergies; j < nEnergies; j++) { @@ -180,9 +171,6 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, fCache.Get()->remaining_energy = std::max (fCache.Get()->remaining_energy, std::min(theAngular[nDiscreteEnergies-1].GetLabel(), cont_min) ); //Minimum Line or grid - if (std::getenv("G4PHPTEST") ) - G4cout << " G4ParticleHPContAngularPar::Sample max line or grid remaining_energy " - << fCache.Get()->remaining_energy << G4endl; } G4double random = G4UniformRand(); @@ -197,7 +185,7 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, running[j+1] = running[j] + delta; } - G4double tot_prob_DIS = running[nDiscreteEnergies]; + G4double tot_prob_DIS = std::max( running[nDiscreteEnergies], 0.0 ); G4double delta1; for (G4int j = nDiscreteEnergies; j < nEnergies; j++) { @@ -239,7 +227,10 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, running[j+1] = running[j] + ( ( e_high - e_low ) * delta1); } - G4double tot_prob_CON = running[ nEnergies ] - running[ nDiscreteEnergies ]; + G4double tot_prob_CON = std::max( running[ nEnergies ] - running[ nDiscreteEnergies ], 0.0 ); + + // Give up in the pathological case of null probabilities + if ( tot_prob_DIS == 0.0 && tot_prob_CON == 0.0 ) return result; // Normalize random random *= (tot_prob_DIS + tot_prob_CON); @@ -297,10 +288,6 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, itt = it; if (it == nDiscreteEnergies) itt = it+1; // "This case "it-1" has data for Discrete, so we will use an extrpolated values it and it+1 - if (it == 0) { - // Safty for unexpected it = 0; - itt = it+1; - } theStore.SetCoeff(0, j, theAngular[itt-1].GetValue(j) ); theStore.SetCoeff(1, j, theAngular[itt].GetValue(j) ); } @@ -313,9 +300,6 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, // The remaining energy needs to be lowered by the photon energy in *any* case. // Otherwise additional photons with too high energy will be produced - therefore the // adjustResult condition has been removed - if (std::getenv("G4PHPTEST") ) - G4cout << " G4ParticleHPContAngularPar::Sample remaining_energy - fsEnergy " - << fCache.Get()->remaining_energy << " - " << fsEnergy << G4endl; fCache.Get()->remaining_energy -= fsEnergy; delete[] running; @@ -326,9 +310,6 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, if (fCache.Get()->fresh == true) { fCache.Get()->remaining_energy = theAngular[ nEnergies-1 ].GetLabel(); fCache.Get()->fresh = false; - if (std::getenv("G4PHPTEST") ) - G4cout << " G4ParticleHPContAngularPar::Sample 2nd fresh remaining_energy " - << fCache.Get()->remaining_energy << G4endl; } G4double random = G4UniformRand(); @@ -401,7 +382,6 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, } } else { // continuum contribution - if ( it < 1 ) it = 1; // Protection against evaluation of arrays at index it-1 G4double x1 = running[it-1]/running[nEnergies-1]; G4double x2 = running[it]/running[nEnergies-1]; G4double y1 = theAngular[it-1].GetLabel(); @@ -425,9 +405,6 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, // *any* case. Otherwise additional photons with too much energy will be // produced - therefore the adjustResult condition has been removed - if (std::getenv("G4PHPTEST") ) - G4cout << " G4ParticleHPContAngularPar::Sample 2nd remaining_energy - fsEnergy " - << fCache.Get()->remaining_energy << " - " << fsEnergy << G4endl; fCache.Get()->remaining_energy -= fsEnergy; // end if (nDiscreteEnergies != 0) } @@ -439,8 +416,6 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, G4double* running = new G4double[nEnergies]; running[0] = 0; G4double weighted = 0; - if (std::getenv("G4PHPTEST") ) - G4cout << " G4ParticleHPContAngularPar::Sample nEnergies " << nEnergies << G4endl; for (j = 1; j < nEnergies; j++) { if (j != 0) running[j] = running[j-1]; running[j] += theInt.GetBinIntegral(theManager.GetScheme(j-1), @@ -449,11 +424,6 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, weighted += theInt.GetWeightedBinIntegral(theManager.GetScheme(j-1), theAngular[j-1].GetLabel(), theAngular[j].GetLabel(), theAngular[j-1].GetValue(0), theAngular[j].GetValue(0)); - if (std::getenv("G4PHPTEST") ) - G4cout << " G4ParticleHPContAngularPar::Sample " << j << " running " << running[j] - << " " << theManager.GetScheme(j-1) << " " << theAngular[j-1].GetLabel() - << " " << theAngular[j].GetLabel() << " " << theAngular[j-1].GetValue(0) - << " " << theAngular[j].GetValue(0) << G4endl; //GDEB } // Cache the mean energy in this distribution @@ -481,10 +451,7 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, y2 = theAngular[itt].GetLabel(); fsEnergy = theInt.Interpolate(theManager.GetInverseScheme(itt-1), x, x1, x2, y1, y2); - if (std::getenv("G4PHPTEST") ) - G4cout << itt << " G4particleHPContAngularPar fsEnergy " << fsEnergy << " " - << theManager.GetInverseScheme(itt-1) << " x " << x << " " << x1 << " " - << x2 << " y " << y1 << " " << y2 << G4endl; //GDEB + // For theta, interpolate the compoundFractions G4double cLow = theAngular[itt-1].GetValue(1); G4double cHigh = theAngular[itt].GetValue(1); @@ -493,10 +460,6 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, if (compoundFraction > 1.0) compoundFraction = 1.0; // Protection against unphysical interpolation - if (std::getenv("G4PHPTEST") ) - G4cout << itt << " G4particleHPContAngularPar compoundFraction " << compoundFraction - << " E " << fsEnergy << " " << theManager.GetScheme(itt) << " ener " << fsEnergy - << " y " << y1 << " " << y2 << " cLH " << cLow << " " << cHigh << G4endl; //GDEB delete [] running; // get cosTh @@ -523,8 +486,6 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, targetMass, targetA, targetZ, incidentA,incidentZ,A,Z); cosTh = theKallbach.Sample(anEnergy); - if (std::getenv("G4PHPTEST") ) - G4cout << " G4ParticleHPKallbachMannSyst::Sample resulttest " << cosTh << G4endl; //GDEB // end (angularRep == 2) branch } else if (angularRep > 10 && angularRep < 16) { @@ -590,7 +551,6 @@ G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, } } else { - if ( it < 1 ) it = 1; // Protection against evaluation of arrays at index it-1 G4double x1 = running[it-1]/running[nEnergies-1]; G4double x2 = running[it]/running[nEnergies-1]; G4double y1 = theAngular[it-1].GetLabel(); @@ -696,8 +656,8 @@ void G4ParticleHPContAngularPar::PrepareTableInterpolation() G4double ener = theAngular[ie].GetLabel(); G4double enerT = (ener-theMinEner)/(theMaxEner-theMinEner); theEnergiesTransformed.insert(enerT); - if( std::getenv("G4PHPTEST2") ) G4cout <GetNEnergies(); G4double minEnerPrev = angParPrev->GetMinEner(); G4double maxEnerPrev = angParPrev->GetMaxEner(); @@ -705,7 +665,6 @@ void G4ParticleHPContAngularPar::PrepareTableInterpolation() G4double ener = angParPrev->theAngular[ie].GetLabel(); G4double enerT = (ener-minEnerPrev)/(maxEnerPrev-minEnerPrev); theEnergiesTransformed.insert(enerT); - if( std::getenv("G4PHPTEST2") ) G4cout << this << " G4ParticleHPContAngularPar::PrepareTableInterpolation theEnergiesTransformed2 " << enerT << G4endl; //GDEB } // add the maximum energy //theEnergiesTransformed.insert(1.); @@ -751,7 +710,7 @@ G4ParticleHPContAngularPar::BuildByInterpolation(G4double anEnergy, std::map::const_iterator itedeo2; std::vector vAngular(discEnerOwn1.size() ); G4double discEner1; - for (itedeo1 = discEnerOwn1.begin(); itedeo1 != discEnerOwn1.end(); ++itedeo1) { + for (itedeo1 = discEnerOwn1.cbegin(); itedeo1 != discEnerOwn1.cend(); ++itedeo1) { discEner1 = itedeo1->first; if (discEner1 < theMinEner) { theMinEner = discEner1; @@ -761,7 +720,7 @@ G4ParticleHPContAngularPar::BuildByInterpolation(G4double anEnergy, } ie1 = itedeo1->second; itedeo2 = discEnerOwn2.find(discEner1); - if( itedeo2 == discEnerOwn2.end() ) { + if( itedeo2 == discEnerOwn2.cend() ) { ie2 = -1; } else { ie2 = itedeo2->second; @@ -779,24 +738,19 @@ G4ParticleHPContAngularPar::BuildByInterpolation(G4double anEnergy, G4double value = theInt.Interpolate(aScheme, anEnergy, copyAngpar1.theEnergy, copyAngpar2.theEnergy, val1, val2); - if (std::getenv("G4PHPTEST2") ) - G4cout << ie1 << " " << ip - << " G4ParticleHPContAngularPar::Merge DiscreteEnergies val1 " - << val1 << " val2 " << val2 << " value " << value << G4endl; //GDEB - vAngular[ie1]->SetValue(ip, value); } } // itedeo1 loop // Add the ones in set2 but not in set1 - std::vector::iterator itv; + std::vector::const_iterator itv; G4double discEner2; - for (itedeo2 = discEnerOwn2.begin(); itedeo2 != discEnerOwn2.end(); ++itedeo2) { + for (itedeo2 = discEnerOwn2.cbegin(); itedeo2 != discEnerOwn2.cend(); ++itedeo2) { discEner2 = itedeo2->first; ie2 = itedeo2->second; G4bool notFound = true; itedeo1 = discEnerOwn1.find(discEner2); - if (itedeo1 != discEnerOwn1.end() ) { + if (itedeo1 != discEnerOwn1.cend() ) { notFound = false; } if (notFound) { @@ -810,7 +764,7 @@ G4ParticleHPContAngularPar::BuildByInterpolation(G4double anEnergy, // find position to insert G4bool isInserted = false; ie = 0; - for (itv = vAngular.begin(); itv != vAngular.end(); ++itv,++ie) { + for (itv = vAngular.cbegin(); itv != vAngular.cend(); ++itv,++ie) { if (discEner2 > (*itv)->GetLabel() ) { itv = vAngular.insert(itv, new G4ParticleHPList); (*itv)->SetLabel(copyAngpar2.theAngular[ie2].GetLabel()); @@ -819,7 +773,7 @@ G4ParticleHPContAngularPar::BuildByInterpolation(G4double anEnergy, } } if (!isInserted) { - ie=vAngular.size(); + ie=(G4int)vAngular.size(); vAngular.push_back(new G4ParticleHPList); vAngular[ie]->SetLabel(copyAngpar2.theAngular[ie2].GetLabel()); isInserted = true; @@ -833,17 +787,13 @@ G4ParticleHPContAngularPar::BuildByInterpolation(G4double anEnergy, copyAngpar1.theEnergy, copyAngpar2.theEnergy, val1, val2); - if (std::getenv("G4PHPTEST2") ) - G4cout << ie << " " << ip - << " G4ParticleHPContAngularPar::Merge DiscreteEnergies val1 " - << val1 << " val2 " << val2 << " value " << value << G4endl; //GDEB vAngular[ie]->SetValue(ip, value); } } // end if(notFound) } // end loop on itedeo2 // Store new discrete list - nDiscreteEnergies = vAngular.size(); + nDiscreteEnergies = (G4int)vAngular.size(); if (theAngular != 0) delete [] theAngular; theAngular = 0; if (nDiscreteEnergies > 0) { @@ -875,10 +825,6 @@ G4ParticleHPContAngularPar::BuildByInterpolation(G4double anEnergy, * (copyAngpar2.GetMaxEner()-copyAngpar1.GetMaxEner() ) / (copyAngpar2.GetEnergy()-copyAngpar1.GetEnergy() ); - if (std::getenv("G4PHPTEST2") ) - G4cout << " G4ParticleHPContAngularPar::Merge E " << anEnergy << " minmax " - << interMinEner << " " << interMaxEner << G4endl; //GDEB - // Loop to energies of new set theEnergiesTransformed.clear(); @@ -915,7 +861,7 @@ G4ParticleHPContAngularPar::BuildByInterpolation(G4double anEnergy, } // Now the list of energies is complete - nEnergies = nDiscreteEnergies+theEnergiesTransformed.size(); + nEnergies = nDiscreteEnergies+(G4int)theEnergiesTransformed.size(); // Create final array of angular parameters G4ParticleHPList* theNewAngular = new G4ParticleHPList [nEnergies]; @@ -948,7 +894,7 @@ G4ParticleHPContAngularPar::BuildByInterpolation(G4double anEnergy, if ((copyAngpar1.theAngular[ie1].GetLabel() - e1Interp) > 1.E-10*e1Interp) break; } ie1Prev = ie1 - 1; - if (ie1 == 0) ie1Prev++; + if (ie1 == 0) ++ie1Prev; if (ie1 == nEnergies1) { ie1--; ie1Prev = ie1; @@ -961,7 +907,7 @@ G4ParticleHPContAngularPar::BuildByInterpolation(G4double anEnergy, if ((copyAngpar2.theAngular[ie2].GetLabel() - e2Interp) > 1.E-10*e2Interp) break; } ie2Prev = ie2 - 1; - if (ie2 == 0) ie2Prev++; + if (ie2 == 0) ++ie2Prev; if (ie2 == nEnergies2) { ie2--; ie2Prev = ie2; @@ -969,9 +915,6 @@ G4ParticleHPContAngularPar::BuildByInterpolation(G4double anEnergy, //---- Energy corresponding to energy transformed G4double eN = (interMaxEner-interMinEner) * eT + interMinEner; - if (std::getenv("G4PHPTEST2") ) - G4cout << ie << " " << ie1 << " " << ie2 << " G4ParticleHPContAngularPar::loop eT " - << eT << " -> eN " << eN << " e1Interp " << e1Interp << " e2Interp " << e2Interp << G4endl; //GDEB theAngular[ie].SetLabel(eN); if (eN < theMinEner) { @@ -1007,23 +950,12 @@ G4ParticleHPContAngularPar::BuildByInterpolation(G4double anEnergy, throw G4HadronicException(__FILE__, __LINE__, "G4ParticleHPContAngularPar::PrepareTableInterpolation interMaxEner == interMinEner and value != 0."); } - if (std::getenv("G4PHPTEST2") ) - G4cout << ie << " " << ip << " G4ParticleHPContAngularPar::Merge val1 " << val1 - << " val2 " << val2 << " value " << value << G4endl; //GDEB theAngular[ie].SetValue(ip, value); } } // end loop on nDiscreteEnergies - for (itv = vAngular.begin(); itv != vAngular.end(); ++itv) delete (*itv); + for (itv = vAngular.cbegin(); itv != vAngular.cend(); ++itv) delete (*itv); - if (std::getenv("G4PHPTEST2") ) { - G4cout << " G4ParticleHPContAngularPar::Merge ANGPAR1 " << G4endl; //GDEB - copyAngpar1.Dump(); - G4cout << " G4ParticleHPContAngularPar::Merge ANGPAR2 " << G4endl; - copyAngpar2.Dump(); - G4cout << " G4ParticleHPContAngularPar::Merge ANGPARNEW " << G4endl; - Dump(); - } } diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPContEnergyAngular.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPContEnergyAngular.cc index 02577552ab..fd8acd4a6f 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPContEnergyAngular.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPContEnergyAngular.cc @@ -49,12 +49,6 @@ G4ParticleHPContEnergyAngular::Sample(G4double anEnergy, G4double massCode, #endif } - if (std::getenv("G4PHPTEST") ) - G4cout << i << " G4ParticleHPContEnergyAngular dataE " - << theAngular[i].GetEnergy() - << " > " << anEnergy << " it_theAngular " << it << " interpolation " - << theInterpolation << G4endl; //GDEB - G4double targetMass = GetTarget()->GetMass(); if (it == 0) { theAngular[0].SetTarget(GetTarget()); @@ -83,13 +77,6 @@ G4ParticleHPContEnergyAngular::Sample(G4double anEnergy, G4double massCode, theAngularRep, theInterpolation); currentMeanEnergy.Put(theAngular[it].MeanEnergyOfThisInteraction() ); #else - if (std::getenv("G4PHPTEST") ) - G4cout << i << " G4ParticleHPContEnergyAngular To BUILDBYINTERPOLATION " - << it << " : " << theAngular[it].GetEnergy()<< " , " - << theAngular[it].GetNEnergies() << " " << it-1 << " : " - << theAngular[it-1].GetEnergy()<< " : " - << theAngular[it-1].GetNEnergies() << G4endl; //GDEB - if (fCacheAngular.Get() == NULL) { G4ParticleHPContAngularPar* angpar = new G4ParticleHPContAngularPar(theProjectile); fCacheAngular.Put(angpar); diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPData.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPData.cc index aa2f58a87e..fe9b23d8f0 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPData.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPData.cc @@ -32,42 +32,44 @@ #include "G4ParticleHPData.hh" #include "G4PhysicsFreeVector.hh" -G4ParticleHPData::G4ParticleHPData(G4ParticleDefinition* projectile ) + G4ParticleHPData::G4ParticleHPData(G4ParticleDefinition* projectile ) : theProjectile(projectile) -{ - //const char* theDataDirVariable; - if( projectile == G4Neutron::Neutron() ) { - theDataDirVariable = "G4NEUTRONHPDATA"; - }else if( projectile == G4Proton::Proton() ) { - theDataDirVariable = "G4PROTONHPDATA"; - }else if( projectile == G4Deuteron::Deuteron() ) { - theDataDirVariable = "G4DEUTERONHPDATA"; - }else if( projectile == G4Triton::Triton() ) { - theDataDirVariable = "G4TRITONHPDATA"; - }else if( projectile == G4He3::He3() ) { - theDataDirVariable = "G4HE3HPDATA"; - }else if( projectile == G4Alpha::Alpha() ) { - theDataDirVariable = "G4ALPHAHPDATA"; - } + { + //const char* theDataDirVariable; + if( projectile == G4Neutron::Neutron() ) { + theDataDirVariable = "G4NEUTRONHPDATA"; + }else if( projectile == G4Proton::Proton() ) { + theDataDirVariable = "G4PROTONHPDATA"; + }else if( projectile == G4Deuteron::Deuteron() ) { + theDataDirVariable = "G4DEUTERONHPDATA"; + }else if( projectile == G4Triton::Triton() ) { + theDataDirVariable = "G4TRITONHPDATA"; + }else if( projectile == G4He3::He3() ) { + theDataDirVariable = "G4HE3HPDATA"; + }else if( projectile == G4Alpha::Alpha() ) { + theDataDirVariable = "G4ALPHAHPDATA"; + } - numEle = G4Element::GetNumberOfElements(); - for ( G4int i = 0 ; i < numEle ; i++ ) theData.push_back ( new G4ParticleHPElementData ); -// G4cout << "G4ParticleHPData::G4ParticleHPData(): numEle="<::iterator it = theData.begin() ; it != theData.end() ; it++ ) delete *it; + for (auto it = theData.cbegin() ; it != theData.cend() ; ++it) delete *it; theData.clear(); } G4ParticleHPData * G4ParticleHPData::Instance(G4ParticleDefinition* projectile) { - static G4ThreadLocal G4ParticleHPData *theCrossSectionData_G4MT_TLS_ = 0 ; + static G4ThreadLocal G4ParticleHPData *theCrossSectionData_G4MT_TLS_ = nullptr ; if ( !theCrossSectionData_G4MT_TLS_ ) theCrossSectionData_G4MT_TLS_ = new G4ParticleHPData(projectile); G4ParticleHPData &theCrossSectionData = *theCrossSectionData_G4MT_TLS_; return &theCrossSectionData; @@ -75,17 +77,13 @@ G4ParticleHPData::G4ParticleHPData(G4ParticleDefinition* projectile ) G4PhysicsVector * G4ParticleHPData::DoPhysicsVector(G4ParticleHPVector * theVector) { -// G4cout << "Entered G4ParticleHPData::DoPhysicsVector."<GetVectorLength(); -// G4cout <<"zahl der energie-punkte "<< len<GetX(0); G4double emax = theVector->GetX(len-1); -// G4cout <<"zahl der energie-punkte "<< len<<" "<> dummy; + G4PhysicsFreeVector * theResult = new G4PhysicsFreeVector(len, emin, emax); - for (G4int i=0; iPutValues(i, theVector->GetX(i), theVector->GetY(i)); } @@ -94,10 +92,10 @@ G4ParticleHPData::G4ParticleHPData(G4ParticleDefinition* projectile ) void G4ParticleHPData::addPhysicsVector() { - for ( G4int i = numEle; i < (G4int)G4Element::GetNumberOfElements() ; i++ ) + for ( G4int i = numEle; i < (G4int)G4Element::GetNumberOfElements() ; ++i ) { theData.push_back ( new G4ParticleHPElementData ); (*theData[i]).Init((*(G4Element::GetElementTable()))[i], theProjectile, theDataDirVariable); } - numEle = G4Element::GetNumberOfElements(); + numEle = (G4int)G4Element::GetNumberOfElements(); } diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElastic.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElastic.cc index 390f3e8a11..05d65d4393 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElastic.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElastic.cc @@ -54,8 +54,7 @@ G4ParticleHPElastic::~G4ParticleHPElastic() //the vectror is shared among threads, only master deletes if ( ! G4Threading::IsWorkerThread() ) { if ( theElastic != nullptr ) { - for ( std::vector::iterator - it = theElastic->begin() ; it != theElastic->end() ; it++ ) { + for ( auto it=theElastic->cbegin(); it!=theElastic->cend(); ++it ) { delete *it; } theElastic->clear(); @@ -77,8 +76,8 @@ G4HadFinalState * G4ParticleHPElastic::ApplyYourself(const G4HadProjectile& aTra { G4ParticleHPManager::GetInstance()->OpenReactionWhiteBoard(); const G4Material * theMaterial = aTrack.GetMaterial(); - G4int n = theMaterial->GetNumberOfElements(); - G4int index = theMaterial->GetElement(0)->GetIndex(); + G4int n = (G4int)theMaterial->GetNumberOfElements(); + std::size_t index = theMaterial->GetElement(0)->GetIndex(); if ( ! isFromTSL ) { if ( n != 1 ) { @@ -88,7 +87,7 @@ G4HadFinalState * G4ParticleHPElastic::ApplyYourself(const G4HadProjectile& aTra const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); G4double rWeight; G4ParticleHPThermalBoost aThermalE; - for ( i = 0; i < n; i++ ) { + for ( i = 0; i < n; ++i ) { index = theMaterial->GetElement(i)->GetIndex(); rWeight = NumAtomsPerVolume[i]; xSec[i] = ((*theElastic)[index])->GetXsec(aThermalE.GetThermalEnergy(aTrack, @@ -99,7 +98,7 @@ G4HadFinalState * G4ParticleHPElastic::ApplyYourself(const G4HadProjectile& aTra } G4double random = G4UniformRand(); G4double running = 0; - for ( i = 0; i < n; i++ ) { + for ( i = 0; i < n; ++i ) { running += xSec[i]; index = theMaterial->GetElement(i)->GetIndex(); if ( sum == 0 || random <= running/sum ) break; @@ -109,7 +108,7 @@ G4HadFinalState * G4ParticleHPElastic::ApplyYourself(const G4HadProjectile& aTra } else { G4int i; if ( n != 1 ) { - for ( i = 0; i < n; i++ ) { + for ( i = 0; i < n; ++i ) { if ( aNucleus.GetZ_asInt() == (G4int)(theMaterial->GetElement(i)->GetZ()) ) { index = theMaterial->GetElement(i)->GetIndex(); } @@ -124,8 +123,8 @@ G4HadFinalState * G4ParticleHPElastic::ApplyYourself(const G4HadProjectile& aTra aNucleus.SetParameters(G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargA(),G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargZ()); const G4Element* target_element = (*G4Element::GetElementTable())[index]; const G4Isotope* target_isotope=nullptr; - G4int iele = target_element->GetNumberOfIsotopes(); - for ( G4int j = 0 ; j != iele ; j++ ) { + G4int iele = (G4int)target_element->GetNumberOfIsotopes(); + for ( G4int j = 0 ; j != iele ; ++j ) { target_isotope=target_element->GetIsotope( j ); if ( target_isotope->GetN() == G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargA() ) break; } @@ -138,8 +137,8 @@ G4HadFinalState * G4ParticleHPElastic::ApplyYourself(const G4HadProjectile& aTra const std::pair G4ParticleHPElastic::GetFatalEnergyCheckLevels() const { - //return std::pair(10*perCent,10*GeV); - return std::pair(10*perCent,DBL_MAX); + // max energy non-conservation is mass of heavy nucleus + return std::pair(10.0*perCent, 350.0*CLHEP::GeV); } @@ -169,7 +168,7 @@ void G4ParticleHPElastic::BuildPhysicsTable(const G4ParticleDefinition&) if ( numEle == (G4int)G4Element::GetNumberOfElements() ) return; if ( theElastic->size() == G4Element::GetNumberOfElements() ) { - numEle = G4Element::GetNumberOfElements(); + numEle = (G4int)G4Element::GetNumberOfElements(); return; } @@ -179,7 +178,7 @@ void G4ParticleHPElastic::BuildPhysicsTable(const G4ParticleDefinition&) dirName = G4FindDataDir("G4NEUTRONHPDATA"); G4String tString = "/Elastic"; dirName = dirName + tString; - for ( G4int i = numEle ; i < (G4int)G4Element::GetNumberOfElements() ; i++ ) { + for ( G4int i = numEle; i < (G4int)G4Element::GetNumberOfElements(); ++i ) { theElastic->push_back( new G4ParticleHPChannel ); ((*theElastic)[i])->Init((*(G4Element::GetElementTable()))[i], dirName); //while(!((*theElastic)[i])->Register(theFS)) ; @@ -189,7 +188,7 @@ void G4ParticleHPElastic::BuildPhysicsTable(const G4ParticleDefinition&) hpmanager->RegisterElasticFinalStates( theElastic ); } - numEle = G4Element::GetNumberOfElements(); + numEle = (G4int)G4Element::GetNumberOfElements(); } diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElasticData.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElasticData.cc index 7e0e0ee9b0..60705246c3 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElasticData.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElasticData.cc @@ -45,6 +45,11 @@ #include "G4ParticleHPData.hh" #include "G4ParticleHPManager.hh" #include "G4HadronicParameters.hh" +#include "G4Nucleus.hh" +#include "G4NucleiProperties.hh" +#include "G4Neutron.hh" +#include "G4Electron.hh" + #include "G4Pow.hh" G4ParticleHPElasticData::G4ParticleHPElasticData() @@ -58,8 +63,8 @@ G4ParticleHPElasticData::G4ParticleHPElasticData() if ( G4Threading::IsWorkerThread() ) { instanceOfWorker = true; } - element_cache = NULL; - material_cache = NULL; + element_cache = nullptr; + material_cache = nullptr; ke_cache = 0.0; xs_cache = 0.0; // BuildPhysicsTable( *G4Neutron::Neutron() ); @@ -67,10 +72,10 @@ G4ParticleHPElasticData::G4ParticleHPElasticData() G4ParticleHPElasticData::~G4ParticleHPElasticData() { - if ( theCrossSections != NULL && instanceOfWorker != true ) { + if ( theCrossSections != nullptr && instanceOfWorker != true ) { theCrossSections->clearAndDestroy(); delete theCrossSections; - theCrossSections = NULL; + theCrossSections = nullptr; } } @@ -125,10 +130,10 @@ void G4ParticleHPElasticData::BuildPhysicsTable(const G4ParticleDefinition& aP) return; } - size_t numberOfElements = G4Element::GetNumberOfElements(); + std::size_t numberOfElements = G4Element::GetNumberOfElements(); // TKDB //if ( theCrossSections == 0 ) theCrossSections = new G4PhysicsTable( numberOfElements ); - if ( theCrossSections == NULL ) + if ( theCrossSections == nullptr ) theCrossSections = new G4PhysicsTable( numberOfElements ); else theCrossSections->clearAndDestroy(); @@ -136,7 +141,7 @@ void G4ParticleHPElasticData::BuildPhysicsTable(const G4ParticleDefinition& aP) // make a PhysicsVector for each element static G4ThreadLocal G4ElementTable *theElementTable = 0 ; if (!theElementTable) theElementTable= G4Element::GetElementTable(); - for( size_t i=0; iMakePhysicsVector((*theElementTable)[i], this); @@ -151,7 +156,7 @@ void G4ParticleHPElasticData::DumpPhysicsTable(const G4ParticleDefinition& aP) if(&aP!=G4Neutron::Neutron()) throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); - #ifdef G4VERBOSE +#ifdef G4VERBOSE if ( G4HadronicParameters::Instance()->GetVerboseLevel() == 0 ) return; // @@ -170,17 +175,16 @@ void G4ParticleHPElasticData::DumpPhysicsTable(const G4ParticleDefinition& aP) G4cout << "Energy[eV] XS[barn]" << G4endl; G4cout << G4endl; - size_t numberOfElements = G4Element::GetNumberOfElements(); - static G4ThreadLocal G4ElementTable *theElementTable = 0 ; if (!theElementTable) theElementTable= G4Element::GetElementTable(); + std::size_t numberOfElements = G4Element::GetNumberOfElements(); + static G4ThreadLocal G4ElementTable *theElementTable = 0 ; + if (!theElementTable) theElementTable= G4Element::GetElementTable(); - for ( size_t i = 0 ; i < numberOfElements ; ++i ) + for ( std::size_t i = 0 ; i < numberOfElements ; ++i ) { - G4cout << (*theElementTable)[i]->GetName() << G4endl; - G4int ie = 0; - for ( ie = 0 ; ie < 130 ; ie++ ) + for ( ie = 0 ; ie < 130 ; ++ie ) { G4double eKinetic = 1.0e-5 * G4Pow::GetInstance()->powA ( 10.0 , ie/10.0 ) *eV; G4bool outOfRange = false; @@ -189,27 +193,18 @@ void G4ParticleHPElasticData::DumpPhysicsTable(const G4ParticleDefinition& aP) { G4cout << eKinetic/eV << " " << (*((*theCrossSections)(i))).GetValue(eKinetic, outOfRange)/barn << G4endl; } - } - G4cout << G4endl; } - - //G4cout << "G4ParticleHPElasticData::DumpPhysicsTable still to be implemented"<GetIndex(); + G4int index = (G4int)anE->GetIndex(); // prepare neutron G4double eKinetic = aP->GetKineticEnergy(); @@ -240,7 +235,7 @@ GetCrossSection(const G4DynamicParticle* aP, const G4Element*anE, G4double aT) G4double eleMass; - eleMass = ( G4NucleiProperties::GetNuclearMass( static_cast(theA+eps) , static_cast(theZ+eps) ) + eleMass = ( G4NucleiProperties::GetNuclearMass( G4int(theA+eps) , G4int(theZ+eps) ) ) / G4Neutron::Neutron()->GetPDGMass(); G4ReactionProduct boosted; @@ -291,6 +286,7 @@ SetVerboseLevel( G4int newValue ) { G4ParticleHPManager::GetInstance()->SetVerboseLevel(newValue); } + void G4ParticleHPElasticData::CrossSectionDescription(std::ostream& outFile) const { outFile << "High Precision cross data based on Evaluated Nuclear Data Files (ENDF) for elastic reaction of neutrons below 20MeV\n" ; diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElementData.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElementData.cc index c6d7be6e6c..75cfd70c63 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElementData.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPElementData.cc @@ -41,7 +41,7 @@ theElasticData = new G4ParticleHPVector; theInelasticData = new G4ParticleHPVector; theIsotopeWiseData = 0; - theBuffer = NULL; + theBuffer = nullptr; } G4ParticleHPElementData::~G4ParticleHPElementData() @@ -55,38 +55,34 @@ void G4ParticleHPElementData::Init(G4Element * theElement, G4ParticleDefinition* projectile, const char* dataDirVariable ) { - G4int count = theElement->GetNumberOfIsotopes(); - if(count == 0) count += - theStableOnes.GetNumberOfIsotopes(static_cast(theElement->GetZ())); + G4int count = (G4int)theElement->GetNumberOfIsotopes(); + if(count == 0) + count += theStableOnes.GetNumberOfIsotopes((G4int)theElement->GetZ()); theIsotopeWiseData = new G4ParticleHPIsoData[count]; // filename = ein data-set je isotope. count = 0; - G4int nIso = theElement->GetNumberOfIsotopes(); - G4int Z = static_cast (theElement->GetZ()); - // G4int i1; + G4int nIso = (G4int)theElement->GetNumberOfIsotopes(); + G4int Z = (G4int)theElement->GetZ(); + if(nIso!=0) { - for (G4int i1=0; i1GetIsotope(i1)->GetN(); G4int M = theElement->GetIsotope(i1)->Getm(); G4double frac = theElement->GetRelativeAbundanceVector()[i1]/CLHEP::perCent; //UpdateData(A, Z, count++, frac); UpdateData(A, Z, M, count++, frac, projectile, dataDirVariable); } - }else{ -// G4cout <<" Init: theStableOnes case: Z="<GetZ())<(theElement->GetZ()) ); - i1++) + i1GetZ()); ++i1) { -// G4cout <<" Init: theStableOnes in the loop"<ThinOut(precision); } - //void G4ParticleHPElementData::UpdateData(G4int A, G4int Z, G4int index, G4double abundance) void G4ParticleHPElementData::UpdateData(G4int A, G4int Z, G4int M, G4int index, G4double abundance, G4ParticleDefinition* projectile, const char* dataDirVariable ) { //Reads in the Data, using G4ParticleHPIsoData[], and its Init -// G4cout << "entered: ElementWiseData::UpdateData"<GetVectorLength()<GetVectorLength()<GetVectorLength()<GetVectorLength()<GetVectorLength()<GetVectorLength()<GetVectorLength()<GetVectorLength()<GetVectorLength()); -// G4cout << "Harmonise 1: "<GetEnergy(s_tmp)<<" "<GetEnergy(0)<GetEnergy(s_tmp)GetEnergy(0)&&s_tmpGetVectorLength() ) // Loop checking, 11.05.2015, T. Koi { theMerge->SetData(m_tmp++, theStore->GetEnergy(s_tmp), theStore->GetXsec(s_tmp)); - s_tmp++; + ++s_tmp; } G4ParticleHPVector *active = theStore; G4ParticleHPVector * passive = theNew; G4ParticleHPVector * tmp; G4int a = s_tmp, p = n, t; -// G4cout << "Harmonise 2: "<GetVectorLength()<<" "<GetVectorLength()<GetVectorLength()&&pGetVectorLength()) // Loop checking, 11.05.2015, T. Koi { if(active->GetEnergy(a) <= passive->GetEnergy(p)) @@ -165,35 +138,30 @@ G4double x = theMerge->GetEnergy(m_tmp); G4double y = std::max(0., passive->GetXsec(x)); theMerge->SetData(m_tmp, x, theMerge->GetXsec(m_tmp)+y); - m_tmp++; - a++; - } else { -// G4cout << "swapping in Harmonise"<GetVectorLength()<<" "<GetVectorLength()) // Loop checking, 11.05.2015, T. Koi { theMerge->SetData(m_tmp++, active->GetEnergy(a), active->GetXsec(a)); - a++; + ++a; } -// G4cout << "Harmonise 4: "<< p <<" "<GetVectorLength()<<" "<GetVectorLength()) // Loop checking, 11.05.2015, T. Koi { - // Modified by T. KOI - //theMerge->SetData(m++, passive->GetEnergy(p), passive->GetXsec(p)); G4double x = passive->GetEnergy(p); G4double y = std::max(0., active->GetXsec(x)); theMerge->SetData(m_tmp++, x, passive->GetXsec(p)+y); - p++; + ++p; } -// G4cout <<"Harmonise 5: "<< theMerge->GetVectorLength() << " " << m << G4endl; delete theStore; theStore = theMerge; -// G4cout <<"Harmonise 6: "<< theStore->GetVectorLength() << " " << m << G4endl; } G4ParticleHPVector * G4ParticleHPElementData::MakePhysicsVector(G4Element * theElement, diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPEnAngCorrelation.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPEnAngCorrelation.cc index 5d3bb7eca0..a689edb6ba 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPEnAngCorrelation.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPEnAngCorrelation.cc @@ -120,7 +120,6 @@ G4ReactionProductVector * G4ParticleHPEnAngCorrelation::Sample(G4double anEnergy //- if( nParticles[i] == 0 ) continue; it = theProducts[i].Sample(anEnergy,nPart); G4double aMeanEnergy = theProducts[i].MeanEnergyOfThisInteraction(); - // if( getenv("G4PHPTEST") ) G4cout << " EnAnG energy sampled " << it->operator[](0)->GetKineticEnergy() << " aMeanEnergy " << aMeanEnergy << G4endl; // GDEB //if(aMeanEnergy>0) //151120 TK Modified for solving reproducibility problem //This change may have side effect. @@ -140,10 +139,8 @@ G4ReactionProductVector * G4ParticleHPEnAngCorrelation::Sample(G4double anEnergy G4LorentzVector pTmp1 (it->operator[](ii)->GetMomentum(), it->operator[](ii)->GetTotalEnergy()); pTmp1 = toLab*pTmp1; - if( std::getenv("G4PHPTEST") ) G4cout << " G4particleHPEnAngCorrelation COS THETA " << std::cos(it->operator[](ii)->GetMomentum().theta()) << G4endl; it->operator[](ii)->SetMomentum(pTmp1.vect()); it->operator[](ii)->SetTotalEnergy(pTmp1.e()); - if( std::getenv("G4PHPTEST") ) G4cout << " G4particleHPEnAngCorrelation COS THETA after toLab " << std::cos(it->operator[](ii)->GetMomentum().theta()) << G4endl; if(frameFlag==1) // target rest //TK 100413 should be LAB? { @@ -195,7 +192,6 @@ G4ReactionProductVector * G4ParticleHPEnAngCorrelation::Sample(G4double anEnergy { throw G4HadronicException(__FILE__, __LINE__, "G4ParticleHPEnAngCorrelation::Sample: The frame of the finalstate is not specified"); } - if( std::getenv("G4PHPTEST") ) G4cout << frameFlag << " G4particleHPEnAngCorrelation COS THETA after Lorentz " << std::cos(it->operator[](ii)->GetMomentum().theta()) << G4endl; // }//getenv("G4PHP_NO_LORENTZ_BOOST")) // G4cout << ii << " EnAnG energy after boost " << it->operator[](ii)->GetKineticEnergy() << G4endl; //GDEB diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFFFissionFS.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFFFissionFS.cc index cd9dfbd304..7ccbfe9bf5 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFFFissionFS.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFFFissionFS.cc @@ -171,15 +171,13 @@ void G4ParticleHPFFFissionFS::GetAFissionFragment( G4double energy , G4int& frag G4double key_energy = DBL_MAX; if ( mEnergyFSPData->size() == 1 ) { - key_energy = mEnergyFSPData->begin()->first; + key_energy = mEnergyFSPData->cbegin()->first; } else { //Find closest energy point G4double Dmin=DBL_MAX; - G4int i = 0; - for ( std::map< G4double , std::map< G4int , G4double >* >::iterator it = mEnergyFSPData->begin() ; - it != mEnergyFSPData->end() ; it++ ) + for ( auto it = mEnergyFSPData->cbegin(); it != mEnergyFSPData->cend(); ++it ) { G4double e = (it->first); G4double d = std::fabs ( energy - e ); @@ -188,7 +186,6 @@ void G4ParticleHPFFFissionFS::GetAFissionFragment( G4double energy , G4int& frag Dmin = d; key_energy = e; } - i++; } } @@ -196,7 +193,7 @@ void G4ParticleHPFFFissionFS::GetAFissionFragment( G4double energy , G4int& frag G4int ifrag=0; G4double ceilling = mFSPYieldData->rbegin()->second; // Because of numerical accuracy, this is not always 2 - for ( std::map::iterator it = mFSPYieldData->begin() ; it != mFSPYieldData->end() ; it++ ) + for ( auto it = mFSPYieldData->cbegin(); it != mFSPYieldData->cend(); ++it ) { //if ( ( rand - it->second/ceilling ) < 1.0e-6 ) std::cout << rand - it->second/ceilling << std::endl; if ( rand <= it->second/ceilling ) diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFSFissionFS.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFSFissionFS.cc index 3aa739cc75..dfaa54c813 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFSFissionFS.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFSFissionFS.cc @@ -42,113 +42,110 @@ #include "G4LorentzVector.hh" #include "G4ParticleHPDataUsed.hh" - void G4ParticleHPFSFissionFS::Init (G4double A, G4double Z, G4int M, G4String & dirName, G4String &, G4ParticleDefinition* ) +void G4ParticleHPFSFissionFS::Init (G4double A, G4double Z, G4int M, G4String & dirName, G4String &, G4ParticleDefinition* ) +{ + G4String tString = "/FS/"; + G4bool dbool; + G4ParticleHPDataUsed aFile = theNames.GetName(static_cast(A), static_cast(Z), M, dirName, tString, dbool); + G4String filename = aFile.GetName(); + SetAZMs( A, Z, M, aFile ); + if(!dbool) { - G4String tString = "/FS/"; - G4bool dbool; - G4ParticleHPDataUsed aFile = theNames.GetName(static_cast(A), static_cast(Z), M, dirName, tString, dbool); - G4String filename = aFile.GetName(); - SetAZMs( A, Z, M, aFile ); - if(!dbool) - { - hasAnyData = false; - hasFSData = false; - hasXsec = false; - return; - } - //std::ifstream theData(filename, std::ios::in); - std::istringstream theData(std::ios::in); - G4ParticleHPManager::GetInstance()->GetDataStream(filename,theData); - - // here it comes - G4int infoType, dataType; + hasAnyData = false; hasFSData = false; - while (theData >> infoType) // Loop checking, 11.05.2015, T. Koi - { - hasFSData = true; - theData >> dataType; - switch(infoType) - { - case 1: - if(dataType==4) theNeutronAngularDis.Init(theData); - if(dataType==5) thePromptNeutronEnDis.Init(theData); - if(dataType==12) theFinalStatePhotons.InitMean(theData); - if(dataType==14) theFinalStatePhotons.InitAngular(theData); - if(dataType==15) theFinalStatePhotons.InitEnergies(theData); - break; - case 2: - if(dataType==1) theFinalStateNeutrons.InitMean(theData); - break; - case 3: - if(dataType==1) theFinalStateNeutrons.InitDelayed(theData); - if(dataType==5) theDelayedNeutronEnDis.Init(theData); - break; - case 4: - if(dataType==1) theFinalStateNeutrons.InitPrompt(theData); - break; - case 5: - if(dataType==1) theEnergyRelease.Init(theData); - break; - default: - G4cout << "G4ParticleHPFSFissionFS::Init: unknown data type"<SetDefinition(theNeutrons[i].GetDefinition()); - dp->SetMomentum(theNeutrons[i].GetMomentum()); - aResult->push_back(dp); - } - delete [] theNeutrons; -// return the result - return aResult; + std::istringstream theData(std::ios::in); + G4ParticleHPManager::GetInstance()->GetDataStream(filename,theData); + + G4int infoType, dataType; + hasFSData = false; + while (theData >> infoType) // Loop checking, 11.05.2015, T. Koi + { + hasFSData = true; + theData >> dataType; + switch(infoType) + { + case 1: + if(dataType==4) theNeutronAngularDis.Init(theData); + if(dataType==5) thePromptNeutronEnDis.Init(theData); + if(dataType==12) theFinalStatePhotons.InitMean(theData); + if(dataType==14) theFinalStatePhotons.InitAngular(theData); + if(dataType==15) theFinalStatePhotons.InitEnergies(theData); + break; + case 2: + if(dataType==1) theFinalStateNeutrons.InitMean(theData); + break; + case 3: + if(dataType==1) theFinalStateNeutrons.InitDelayed(theData); + if(dataType==5) theDelayedNeutronEnDis.Init(theData); + break; + case 4: + if(dataType==1) theFinalStateNeutrons.InitPrompt(theData); + break; + case 5: + if(dataType==1) theEnergyRelease.Init(theData); + break; + default: + G4cout << "G4ParticleHPFSFissionFS::Init: unknown data type"<SetDefinition(theNeutrons[i].GetDefinition()); + dp->SetMomentum(theNeutrons[i].GetMomentum()); + aResult->push_back(dp); + } + delete [] theNeutrons; + + return aResult; +} void G4ParticleHPFSFissionFS::SampleNeutronMult(G4int&all, G4int&Prompt, G4int&delayed, G4double eKinetic, G4int off) { @@ -162,33 +159,34 @@ void G4ParticleHPFSFissionFS::SampleNeutronMult(G4int&all, G4int&Prompt, G4int&d Prompt = 0; delayed = 0; G4double totalNeutronMulti = theFinalStateNeutrons.GetMean(eKinetic); - all = G4Poisson(totalNeutronMulti-off); + all = (G4int)G4Poisson(totalNeutronMulti-off); all += off; } else { - Prompt = G4Poisson(promptNeutronMulti-off); + Prompt = (G4int)G4Poisson(promptNeutronMulti-off); Prompt += off; - delayed = G4Poisson(delayedNeutronMulti); + delayed = (G4int)G4Poisson(delayedNeutronMulti); all = Prompt+delayed; } } G4DynamicParticleVector * G4ParticleHPFSFissionFS::GetPhotons() { -// sample photons + // sample photons G4ReactionProductVector * temp; G4ReactionProduct boosted; -// the photon distributions are in the Nucleus rest frame. + + // the photon distributions are in the Nucleus rest frame. boosted.Lorentz( *(fCache.Get().theNeutronRP) , *(fCache.Get().theTarget) ); G4double anEnergy = boosted.GetKineticEnergy(); temp = theFinalStatePhotons.GetPhotons(anEnergy); if(temp == 0) { return 0; } -// lorentz transform, and add photons to final state + // lorentz transform, and add photons to final state unsigned int i; G4DynamicParticleVector * result = new G4DynamicParticleVector; - for(i=0; isize(); i++) + for(i=0; isize(); ++i) { // back to lab temp->operator[](i)->Lorentz(*(temp->operator[](i)), -1.* (*(fCache.Get().theTarget)) ); diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFinalState.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFinalState.cc index 861cf1a766..0d72e88b1a 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFinalState.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFinalState.cc @@ -51,16 +51,15 @@ void G4ParticleHPFinalState::adjust_final_state ( G4LorentzVector init_4p_lab ) if ( G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) return; - G4int nSecondaries = theResult.Get()->GetNumberOfSecondaries(); + G4int nSecondaries = (G4int)theResult.Get()->GetNumberOfSecondaries(); G4int sum_Z = 0; G4int sum_A = 0; G4int max_SecZ = 0; G4int max_SecA = 0; G4int imaxA = -1; - for ( int i = 0 ; i < nSecondaries ; i++ ) + for ( G4int i = 0 ; i < nSecondaries ; ++i ) { - //G4cout << "G4ParticleHPFinalState::adjust_final_state theResult.Get()->GetSecondary( i )->GetParticle()->GetDefinition()->GetParticleName() = " << theResult.Get()->GetSecondary( i )->GetParticle()->GetDefinition()->GetParticleName() << G4endl; sum_Z += theResult.Get()->GetSecondary( i )->GetParticle()->GetDefinition()->GetAtomicNumber(); max_SecZ = std::max ( max_SecZ , theResult.Get()->GetSecondary( i )->GetParticle()->GetDefinition()->GetAtomicNumber() ); sum_A += theResult.Get()->GetSecondary( i )->GetParticle()->GetDefinition()->GetAtomicMass(); @@ -101,14 +100,14 @@ void G4ParticleHPFinalState::adjust_final_state ( G4LorentzVector init_4p_lab ) G4bool needOneMoreSec = false; G4ParticleDefinition* oneMoreSec_pd = 0; - if ( (int)(baseZNew - sum_Z) == 0 && (int)(baseANew - sum_A) == 0 ) + if ( (G4int)(baseZNew - sum_Z) == 0 && (G4int)(baseANew - sum_A) == 0 ) { //All secondaries are already created; resi_pd = theResult.Get()->GetSecondary( imaxA )->GetParticle()->GetDefinition(); } else { - if ( max_SecA >= int(baseANew - sum_A) ) + if ( max_SecA >= G4int(baseANew - sum_A) ) { //Most heavy secondary is interpreted as residual resi_pd = theResult.Get()->GetSecondary( imaxA )->GetParticle()->GetDefinition(); @@ -116,16 +115,19 @@ void G4ParticleHPFinalState::adjust_final_state ( G4LorentzVector init_4p_lab ) } else { - //creation of residual is requierd - resi_pd = G4IonTable::GetIonTable()->GetIon ( int(baseZNew - sum_Z) , (int)(baseANew - sum_A) , 0.0 ); + //creation of residual is required + resi_pd = G4IonTable::GetIonTable()->GetIon ( G4int(baseZNew - sum_Z), + G4int(baseANew - sum_A) , 0.0 ); } if ( needOneMoreSec ) { - if ( int(baseZNew - sum_Z) == 0 && (int)(baseANew - sum_A) > 0 ) + if ( G4int(baseZNew - sum_Z) == 0 && G4int(baseANew - sum_A) > 0 ) { //In this case, one neutron is added to secondaries - if ( int(baseANew - sum_A) > 1 ) G4cout << "More than one neutron is required for the balance of baryon number!" << G4endl; + if ( G4int(baseANew - sum_A) > 1 ) + G4cout << "More than one neutron is required for the balance of baryon number!" + << G4endl; oneMoreSec_pd = G4Neutron::Neutron(); } else @@ -133,7 +135,8 @@ void G4ParticleHPFinalState::adjust_final_state ( G4LorentzVector init_4p_lab ) #ifdef G4PHPDEBUG if( std::getenv("G4ParticleHPDebug")) G4cout << this << "G4ParticleHPFinalState oneMoreSec_pd Z " << baseZNew << " - " << sum_Z << " A " << baseANew << " - " << sum_A << " projectile " << theProjectile->GetParticleName() << G4endl; #endif - oneMoreSec_pd = G4IonTable::GetIonTable()->GetIon ( int(baseZNew - sum_Z) , (int)(baseANew - sum_A) , 0.0 ); + oneMoreSec_pd = G4IonTable::GetIonTable()->GetIon ( G4int(baseZNew - sum_Z), + G4int(baseANew - sum_A) , 0.0 ); if( !oneMoreSec_pd ) { G4cerr << this << "G4ParticleHPFinalState oneMoreSec_pd Z " << baseZNew << " - " << sum_Z << " A " << baseANew << " - " << sum_A << " projectile " << theProjectile->GetParticleName() << G4endl; G4Exception("G4ParticleHPFinalState:adjust_final_state", @@ -169,10 +172,10 @@ void G4ParticleHPFinalState::adjust_final_state ( G4LorentzVector init_4p_lab ) ndlANew += 4; } // theNDLDataZ,A has the Z and A of used NDL file - if ( (int)(ndlZNew - sum_Z) == 0 && (int)(ndlANew - sum_A) == 0 ) + if ( G4int(ndlZNew - sum_Z) == 0 && G4int(ndlANew - sum_A) == 0 ) { - G4int dif_Z = ( int ) ( theNDLDataZ - theBaseZ ); - G4int dif_A = ( int ) ( theNDLDataA - theBaseA ); + G4int dif_Z = G4int( theNDLDataZ - theBaseZ ); + G4int dif_A = G4int( theNDLDataA - theBaseA ); resi_pd = G4IonTable::GetIonTable()->GetIon ( max_SecZ - dif_Z , max_SecA - dif_A , 0.0 ); if( !resi_pd ) { G4cerr << "G4ParticleHPFinalState resi_pd Z " << max_SecZ << " - " << dif_Z << " A " << max_SecA << " - " << dif_A << " projectile " << theProjectile->GetParticleName() << G4endl; @@ -183,7 +186,7 @@ void G4ParticleHPFinalState::adjust_final_state ( G4LorentzVector init_4p_lab ) return; } - for ( int i = 0 ; i < nSecondaries ; i++ ) + for ( G4int i = 0 ; i < nSecondaries ; ++i ) { if ( theResult.Get()->GetSecondary( i )->GetParticle()->GetDefinition()->GetAtomicNumber() == max_SecZ && theResult.Get()->GetSecondary( i )->GetParticle()->GetDefinition()->GetAtomicMass() == max_SecA ) @@ -198,25 +201,17 @@ void G4ParticleHPFinalState::adjust_final_state ( G4LorentzVector init_4p_lab ) } } - G4LorentzVector secs_4p_lab( 0.0 ); - G4int n_sec = theResult.Get()->GetNumberOfSecondaries(); + G4int n_sec = (G4int)theResult.Get()->GetNumberOfSecondaries(); G4double fast = 0; G4double slow = 1; G4int ifast = 0; G4int islow = 0; G4int ires = -1; - for ( G4int i = 0 ; i < n_sec ; i++ ) + for ( G4int i = 0 ; i < n_sec ; ++i ) { - - //G4cout << "HP_DB " << i - // << " " << theResult.GetSecondary( i )->GetParticle()->GetDefinition()->GetParticleName() - // << " 4p " << theResult.GetSecondary( i )->GetParticle()->Get4Momentum() - // << " ke " << theResult.GetSecondary( i )->GetParticle()->Get4Momentum().e() - theResult.GetSecondary( i )->GetParticle()->GetDefinition()->GetPDGMass() - // << G4endl; - secs_4p_lab += theResult.Get()->GetSecondary( i )->GetParticle()->Get4Momentum(); G4double beta = 0; @@ -246,28 +241,23 @@ void G4ParticleHPFinalState::adjust_final_state ( G4LorentzVector init_4p_lab ) } else { -// fast is already photon then check E + // fast is already photon then check E G4double e = theResult.Get()->GetSecondary( i )->GetParticle()->Get4Momentum().e(); if ( e > theResult.Get()->GetSecondary( ifast )->GetParticle()->Get4Momentum().e() ) { -// among photons, the highest E becomes the fastest + // among photons, the highest E becomes the fastest ifast = i; } } } } - G4LorentzVector dif_4p = init_4p_lab - secs_4p_lab; - //G4cout << "HP_DB dif_4p " << init_4p_lab - secs_4p_lab << G4endl; - //G4cout << "HP_DB dif_3p mag " << ( dif_4p.v() ).mag() << G4endl; - //G4cout << "HP_DB dif_e " << dif_4p.e() - ( dif_4p.v() ).mag()<< G4endl; - G4LorentzVector p4(0); if ( ires == -1 ) { -// Create and Add Residual Nucleus + // Create and Add Residual Nucleus ires = nSecondaries; nSecondaries += 1; @@ -303,25 +293,17 @@ void G4ParticleHPFinalState::adjust_final_state ( G4LorentzVector init_4p_lab ) dif_4p = init_4p_lab - ( secs_4p_lab + p4 ); } - //Which is bigger dif_p or dif_e + // Which is bigger dif_p or dif_e if ( dif_4p.v().mag() < std::abs( dif_4p.e() ) ) { - // Adjust p - //if ( dif_4p.v().mag() < 1*MeV ) if ( minimum_energy < dif_4p.v().mag() && dif_4p.v().mag() < 1*MeV ) { nSecondaries += 1; - theResult.Get()->AddSecondary ( new G4DynamicParticle ( G4Gamma::Gamma() , dif_4p.v() ), secID ); - + theResult.Get()->AddSecondary ( new G4DynamicParticle ( G4Gamma::Gamma() , dif_4p.v() ), secID ); } - else - { - //G4cout << "HP_DB Difference in dif_p is too large (>1MeV) or too small(<1keV) to adjust, so that give up tuning" << G4endl; - } - } else { @@ -333,18 +315,14 @@ void G4ParticleHPFinalState::adjust_final_state ( G4LorentzVector init_4p_lab ) p4 = theResult.Get()->GetSecondary( ires )->GetParticle()->Get4Momentum(); theResult.Get()->GetSecondary( ires )->GetParticle()->SetMomentum( p4.v() + dif_4p.v() ); dif_4p = init_4p_lab - ( secs_4p_lab - p4 + theResult.Get()->GetSecondary( ires )->GetParticle()->Get4Momentum() ); - - //G4cout << "HP_DB new residual kinetic energy " << theResult.GetSecondary( ires )->GetParticle()->GetKineticEnergy() << G4endl; - } G4double dif_e = dif_4p.e() - ( dif_4p.v() ).mag(); - //G4cout << "HP_DB dif_e " << dif_e << G4endl; if ( dif_e > 0 ) { -// create 2 gamma + // create 2 gamma nSecondaries += 2; G4double e1 = ( dif_4p.e() -dif_4p.v().mag() ) / 2; @@ -359,22 +337,14 @@ void G4ParticleHPFinalState::adjust_final_state ( G4LorentzVector init_4p_lab ) theResult.Get()->AddSecondary ( new G4DynamicParticle ( G4Gamma::Gamma() , e1*dir ), secID ); theResult.Get()->AddSecondary ( new G4DynamicParticle ( G4Gamma::Gamma() , -e1*dir ), secID ); } - else - { - //G4cout << "HP_DB Difference is too small(<1keV) to adjust, so that neglect it" << G4endl; - } - } - else //dif_e < 0 + else // dif_e < 0 { - -// At first reduce KE of the fastest secondary; + // At first reduce KE of the fastest secondary; G4double ke0 = theResult.Get()->GetSecondary( ifast )->GetParticle()->GetKineticEnergy(); G4ThreeVector p0 = theResult.Get()->GetSecondary( ifast )->GetParticle()->GetMomentum(); G4ThreeVector dir = ( theResult.Get()->GetSecondary( ifast )->GetParticle()->GetMomentum() ).unit(); - //G4cout << "HP_DB ifast " << ifast << " ke0 " << ke0 << G4endl; - if ( ke0 + dif_e > 0 ) { theResult.Get()->GetSecondary( ifast )->GetParticle()->SetKineticEnergy( ke0 + dif_e ); @@ -384,12 +354,5 @@ void G4ParticleHPFinalState::adjust_final_state ( G4LorentzVector init_4p_lab ) //theResult.GetSecondary( islow )->GetParticle()->SetMomentum( p - dif_e*dir ); theResult.Get()->GetSecondary( islow )->GetParticle()->SetMomentum( p + dp ); } - else - { - //G4cout << "HP_DB Difference in dif_e too large ( <0MeV ) to adjust, so that give up tuning" << G4endl; - } - } - } - diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFission.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFission.cc index ea7903ed16..6c43b2730b 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFission.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFission.cc @@ -36,54 +36,23 @@ #include "G4ParticleHPFissionFS.hh" #include "G4SystemOfUnits.hh" #include "G4ParticleHPManager.hh" +#include "G4ParticleHPThermalBoost.hh" #include "G4Threading.hh" G4ParticleHPFission::G4ParticleHPFission() - :G4HadronicInteraction("NeutronHPFission") - ,theFission(NULL) - ,numEle(0) + : G4HadronicInteraction("NeutronHPFission"), theFission(nullptr), numEle(0) { SetMinEnergy( 0.0 ); SetMaxEnergy( 20.*MeV ); -/* - if(!G4FindDataDir("G4NEUTRONHPDATA")) - throw G4HadronicException(__FILE__, __LINE__, "Please setenv G4NEUTRONHPDATA to point to the neutron cross-section files."); - dirName = G4FindDataDir("G4NEUTRONHPDATA"); - G4String tString = "/Fission"; - dirName = dirName + tString; - numEle = G4Element::GetNumberOfElements(); - //theFission = new G4ParticleHPChannel[numEle]; - - //for (G4int i=0; iGetZ()>89) - // if((*(G4Element::GetElementTable()))[i]->GetZ()>87) //TK modified for ENDF-VII - // { - // theFission[i].Init((*(G4Element::GetElementTable()))[i], dirName); - // theFission[i].Register(&theFS); - // } - //} - - for ( G4int i = 0 ; i < numEle ; i++ ) - { - theFission.push_back( new G4ParticleHPChannel ); - if((*(G4Element::GetElementTable()))[i]->GetZ()>87) //TK modified for ENDF-VII - { - (*theFission[i]).Init((*(G4Element::GetElementTable()))[i], dirName); - (*theFission[i]).Register(&theFS); - } - } -*/ } G4ParticleHPFission::~G4ParticleHPFission() { - //Vector is shared, only master deletes it - //delete [] theFission; + // Vector is shared, only master deletes it + // delete [] theFission; if ( ! G4Threading::IsMasterThread() ) { - if ( theFission != NULL ) { - for ( std::vector::iterator - it = theFission->begin() ; it != theFission->end() ; it++ ) { + if ( theFission != nullptr ) { + for ( auto it=theFission->cbegin(); it!=theFission->cend(); ++it ) { delete *it; } theFission->clear(); @@ -91,14 +60,13 @@ } } - #include "G4ParticleHPThermalBoost.hh" G4HadFinalState * G4ParticleHPFission::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aNucleus ) { G4ParticleHPManager::GetInstance()->OpenReactionWhiteBoard(); const G4Material * theMaterial = aTrack.GetMaterial(); - G4int n = theMaterial->GetNumberOfElements(); - G4int index = theMaterial->GetElement(0)->GetIndex(); + G4int n = (G4int)theMaterial->GetNumberOfElements(); + std::size_t index = theMaterial->GetElement(0)->GetIndex(); if(n!=1) { G4double* xSec = new G4double[n]; @@ -107,19 +75,20 @@ const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); G4double rWeight; G4ParticleHPThermalBoost aThermalE; - for (i=0; iGetElement(i)->GetIndex(); rWeight = NumAtomsPerVolume[i]; - xSec[i] = ((*theFission)[index])->GetXsec(aThermalE.GetThermalEnergy(aTrack, - theMaterial->GetElement(i), - theMaterial->GetTemperature())); + xSec[i] = ((*theFission)[index]) + ->GetXsec(aThermalE.GetThermalEnergy(aTrack, + theMaterial->GetElement(i), + theMaterial->GetTemperature())); xSec[i] *= rWeight; sum+=xSec[i]; } G4double random = G4UniformRand(); G4double running = 0; - for (i=0; iGetElement(i)->GetIndex(); @@ -135,14 +104,11 @@ aNucleus.SetParameters(G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargA(),G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargZ()); const G4Element* target_element = (*G4Element::GetElementTable())[index]; const G4Isotope* target_isotope=NULL; - G4int iele = target_element->GetNumberOfIsotopes(); - for ( G4int j = 0 ; j != iele ; j++ ) { + G4int iele = (G4int)target_element->GetNumberOfIsotopes(); + for ( G4int j = 0 ; j != iele ; ++j ) { target_isotope=target_element->GetIsotope( j ); if ( target_isotope->GetN() == G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargA() ) break; } - //G4cout << "Target Material of this reaction is " << theMaterial->GetName() << G4endl; - //G4cout << "Target Element of this reaction is " << target_element->GetName() << G4endl; - //G4cout << "Target Isotope of this reaction is " << target_isotope->GetName() << G4endl; aNucleus.SetIsotope( target_isotope ); G4ParticleHPManager::GetInstance()->CloseReactionWhiteBoard(); @@ -151,35 +117,20 @@ const std::pair G4ParticleHPFission::GetFatalEnergyCheckLevels() const { - // max energy non-conservation is mass of heavy nucleus - //return std::pair(5*perCent,250*GeV); - return std::pair(5*perCent,DBL_MAX); + // max energy non-conservation is mass of heavy nucleus + return std::pair(10.0*perCent, 350.0*CLHEP::GeV); } -/* -void G4ParticleHPFission::addChannelForNewElement() -{ - for ( G4int i = numEle ; i < (G4int)G4Element::GetNumberOfElements() ; i++ ) - { - theFission.push_back( new G4ParticleHPChannel ); - if ( (*(G4Element::GetElementTable()))[i]->GetZ() > 87 ) //TK modified for ENDF-VII - { - G4cout << "G4ParticleHPFission Prepairing Data for the new element of " << (*(G4Element::GetElementTable()))[i]->GetName() << G4endl; - (*theFission[i]).Init((*(G4Element::GetElementTable()))[i], dirName); - (*theFission[i]).Register(&theFS); - } - } - numEle = (G4int)G4Element::GetNumberOfElements(); -} -*/ G4int G4ParticleHPFission::GetVerboseLevel() const { return G4ParticleHPManager::GetInstance()->GetVerboseLevel(); } + void G4ParticleHPFission::SetVerboseLevel( G4int newValue ) { G4ParticleHPManager::GetInstance()->SetVerboseLevel(newValue); } + void G4ParticleHPFission::BuildPhysicsTable(const G4ParticleDefinition&) { @@ -189,12 +140,12 @@ void G4ParticleHPFission::BuildPhysicsTable(const G4ParticleDefinition&) if ( G4Threading::IsMasterThread() ) { - if ( theFission == NULL ) theFission = new std::vector; + if ( theFission == nullptr ) theFission = new std::vector; if ( numEle == (G4int)G4Element::GetNumberOfElements() ) return; if ( theFission->size() == G4Element::GetNumberOfElements() ) { - numEle = G4Element::GetNumberOfElements(); + numEle = (G4int)G4Element::GetNumberOfElements(); return; } @@ -204,22 +155,20 @@ void G4ParticleHPFission::BuildPhysicsTable(const G4ParticleDefinition&) G4String tString = "/Fission"; dirName = dirName + tString; - for ( G4int i = numEle ; i < (G4int)G4Element::GetNumberOfElements() ; i++ ) { + for ( G4int i = numEle ; i < (G4int)G4Element::GetNumberOfElements() ; ++i ) { theFission->push_back( new G4ParticleHPChannel ); if ((*(G4Element::GetElementTable()))[i]->GetZ()>87) { //TK modified for ENDF-VII ((*theFission)[i])->Init((*(G4Element::GetElementTable()))[i], dirName); ((*theFission)[i])->Register( new G4ParticleHPFissionFS ); } } - hpmanager->RegisterFissionFinalStates( theFission ); - } - - numEle = G4Element::GetNumberOfElements(); + numEle = (G4int)G4Element::GetNumberOfElements(); } void G4ParticleHPFission::ModelDescription(std::ostream& outFile) const { - outFile << "High Precision model based on Evaluated Nuclear Data Files (ENDF) for induced fission reaction of neutrons below 20MeV\n"; + outFile << "High Precision model based on Evaluated Nuclear Data Files (ENDF)\n" + << "for induced fission reaction of neutrons below 20MeV\n"; } diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionData.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionData.cc index 10c9dc8fb1..5187341f03 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionData.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionData.cc @@ -43,6 +43,7 @@ #include "G4ParticleHPData.hh" #include "G4ParticleHPManager.hh" #include "G4HadronicParameters.hh" +#include "G4NucleiProperties.hh" #include "G4Pow.hh" G4ParticleHPFissionData::G4ParticleHPFissionData() @@ -56,8 +57,8 @@ G4ParticleHPFissionData::G4ParticleHPFissionData() if ( G4Threading::IsWorkerThread() ) { instanceOfWorker = true; } - element_cache = NULL; - material_cache = NULL; + element_cache = nullptr; + material_cache = nullptr; ke_cache = 0.0; xs_cache = 0.0; //BuildPhysicsTable(*G4Neutron::Neutron()); @@ -65,10 +66,10 @@ G4ParticleHPFissionData::G4ParticleHPFissionData() G4ParticleHPFissionData::~G4ParticleHPFissionData() { - if ( theCrossSections != NULL && instanceOfWorker != true ) { + if ( theCrossSections != nullptr && instanceOfWorker != true ) { theCrossSections->clearAndDestroy(); delete theCrossSections; - theCrossSections = NULL; + theCrossSections = nullptr; } } @@ -101,16 +102,6 @@ G4double G4ParticleHPFissionData::GetIsoCrossSection( const G4DynamicParticle* d return xs; } -/* -G4bool G4ParticleHPFissionData::IsApplicable(const G4DynamicParticle*aP, const G4Element*) -{ - G4bool result = true; - G4double eKin = aP->GetKineticEnergy(); - if(eKin>20*MeV||aP->GetDefinition()!=G4Neutron::Neutron()) result = false; - return result; -} -*/ - void G4ParticleHPFissionData::BuildPhysicsTable(const G4ParticleDefinition& aP) { if(&aP!=G4Neutron::Neutron()) @@ -121,19 +112,17 @@ void G4ParticleHPFissionData::BuildPhysicsTable(const G4ParticleDefinition& aP) return; } - size_t numberOfElements = G4Element::GetNumberOfElements(); - //theCrossSections = new G4PhysicsTable( numberOfElements ); - // TKDB - //if ( theCrossSections == NULL ) theCrossSections = new G4PhysicsTable( numberOfElements ); - if ( theCrossSections == NULL ) - theCrossSections = new G4PhysicsTable( numberOfElements ); - else - theCrossSections->clearAndDestroy(); + std::size_t numberOfElements = G4Element::GetNumberOfElements(); + if ( theCrossSections == nullptr ) + theCrossSections = new G4PhysicsTable( numberOfElements ); + else + theCrossSections->clearAndDestroy(); // make a PhysicsVector for each element - static G4ThreadLocal G4ElementTable *theElementTable = 0 ; if (!theElementTable) theElementTable= G4Element::GetElementTable(); - for( size_t i=0; iMakePhysicsVector((*theElementTable)[i], this); @@ -148,16 +137,15 @@ void G4ParticleHPFissionData::DumpPhysicsTable(const G4ParticleDefinition& aP) if(&aP!=G4Neutron::Neutron()) throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); - #ifdef G4VERBOSE +#ifdef G4VERBOSE if ( G4HadronicParameters::Instance()->GetVerboseLevel() == 0 ) return; -// -// Dump element based cross section -// range 10e-5 eV to 20 MeV -// 10 point per decade -// in barn -// - + // + // Dump element based cross section + // range 10e-5 eV to 20 MeV + // 10 point per decade + // in barn + // G4cout << G4endl; G4cout << G4endl; G4cout << "Fission Cross Section of Neutron HP"<< G4endl; @@ -167,12 +155,12 @@ void G4ParticleHPFissionData::DumpPhysicsTable(const G4ParticleDefinition& aP) G4cout << "Energy[eV] XS[barn]" << G4endl; G4cout << G4endl; - size_t numberOfElements = G4Element::GetNumberOfElements(); - static G4ThreadLocal G4ElementTable *theElementTable = 0 ; if (!theElementTable) theElementTable= G4Element::GetElementTable(); + std::size_t numberOfElements = G4Element::GetNumberOfElements(); + static G4ThreadLocal G4ElementTable *theElementTable = nullptr ; + if (!theElementTable) theElementTable= G4Element::GetElementTable(); - for ( size_t i = 0 ; i < numberOfElements ; ++i ) + for ( std::size_t i = 0 ; i < numberOfElements ; ++i ) { - G4cout << (*theElementTable)[i]->GetName() << G4endl; if ( (*((*theCrossSections)(i))).GetVectorLength() == 0 ) @@ -182,9 +170,7 @@ void G4ParticleHPFissionData::DumpPhysicsTable(const G4ParticleDefinition& aP) continue; } - G4int ie = 0; - - for ( ie = 0 ; ie < 130 ; ie++ ) + for ( G4int ie = 0 ; ie < 130 ; ++ie ) { G4double eKinetic = 1.0e-5 * G4Pow::GetInstance()->powA ( 10.0 , ie/10.0 ) *eV; G4bool outOfRange = false; @@ -193,28 +179,23 @@ void G4ParticleHPFissionData::DumpPhysicsTable(const G4ParticleDefinition& aP) { G4cout << eKinetic/eV << " " << (*((*theCrossSections)(i))).GetValue(eKinetic, outOfRange)/barn << G4endl; } - } G4cout << G4endl; } - - //G4cout << "G4ParticleHPFissionData::DumpPhysicsTable still to be implemented"<GetZ()<88) return result; G4bool outOfRange; - G4int index = anE->GetIndex(); + G4int index = (G4int)anE->GetIndex(); -// 100729 TK add safety -if ( ( ( *theCrossSections )( index ) )->GetVectorLength() == 0 ) return result; + if ( ( ( *theCrossSections )( index ) )->GetVectorLength() == 0 ) + return result; // prepare neutron G4double eKinetic = aP->GetKineticEnergy(); @@ -279,11 +260,14 @@ G4int G4ParticleHPFissionData::GetVerboseLevel() const { return G4ParticleHPManager::GetInstance()->GetVerboseLevel(); } + void G4ParticleHPFissionData::SetVerboseLevel( G4int newValue ) { G4ParticleHPManager::GetInstance()->SetVerboseLevel(newValue); } + void G4ParticleHPFissionData::CrossSectionDescription(std::ostream& outFile) const { - outFile << "High Precision cross data based on Evaluated Nuclear Data Files (ENDF) for induced fission reaction of neutrons below 20MeV\n" ; + outFile << "High Precision cross data based on Evaluated Nuclear Data Files (ENDF)\n" + << "for induced fission reaction of neutrons below 20MeV\n" ; } diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionFS.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionFS.cc index 29140b12c7..e7cdf50f19 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionFS.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPFissionFS.cc @@ -49,10 +49,10 @@ produceFissionFragments = false; } - - void G4ParticleHPFissionFS::Init (G4double A, G4double Z, G4int M, G4String & dirName, G4String & aFSType, G4ParticleDefinition* projectile ) + void G4ParticleHPFissionFS::Init (G4double A, G4double Z, G4int M, + G4String& dirName, G4String& aFSType, + G4ParticleDefinition* projectile ) { - //G4cout << "G4ParticleHPFissionFS::Init " << A << " " << Z << " " << M << G4endl; theFS.Init(A, Z, M, dirName, aFSType, projectile); theFC.Init(A, Z, M, dirName, aFSType, projectile); theSC.Init(A, Z, M, dirName, aFSType, projectile); @@ -60,26 +60,24 @@ theLC.Init(A, Z, M, dirName, aFSType, projectile); theFF.Init(A, Z, M, dirName, aFSType, projectile); - if ( G4ParticleHPManager::GetInstance()->GetProduceFissionFragments() && theFF.HasFSData() ) + if ( G4ParticleHPManager::GetInstance()->GetProduceFissionFragments() + && theFF.HasFSData() ) { G4cout << "Fission fragment production is now activated in HP package for " << "Z = " << (G4int)Z << ", A = " << (G4int)A - //<< "M = " << M << G4endl; G4cout << "As currently modeled this option precludes production of delayed neutrons from fission fragments." << G4endl; produceFissionFragments = true; } } + G4HadFinalState * G4ParticleHPFissionFS::ApplyYourself(const G4HadProjectile & theTrack) { + // Because it may change by UI command + produceFissionFragments=G4ParticleHPManager::GetInstance()->GetProduceFissionFragments(); - //Because it may change by UI command - produceFissionFragments=G4ParticleHPManager::GetInstance()->GetProduceFissionFragments(); - - //G4cout << "G4ParticleHPFissionFS::ApplyYourself " << G4endl; -// prepare neutron - + // prepare neutron if ( theResult.Get() == NULL ) theResult.Put( new G4HadFinalState ); theResult.Get()->Clear(); G4double eKinetic = theTrack.GetKineticEnergy(); @@ -88,44 +86,37 @@ theNeutron.SetMomentum( incidentParticle->Get4Momentum().vect() ); theNeutron.SetKineticEnergy( eKinetic ); -// prepare target + // prepare target G4Nucleus aNucleus; G4ReactionProduct theTarget; G4double targetMass = theFS.GetMass(); G4ThreeVector neuVelo = (1./incidentParticle->GetDefinition()->GetPDGMass())*theNeutron.GetMomentum(); theTarget = aNucleus.GetBiasedThermalNucleus( targetMass, neuVelo, theTrack.GetMaterial()->GetTemperature()); theTarget.SetDefinition( G4IonTable::GetIonTable()->GetIon( G4int(theBaseZ), G4int(theBaseA) , 0.0 ) ); //TESTPHP -// set neutron and target in the FS classes - theFS.SetNeutronRP(theNeutron); - theFS.SetTarget(theTarget); - theFC.SetNeutronRP(theNeutron); - theFC.SetTarget(theTarget); - theSC.SetNeutronRP(theNeutron); - theSC.SetTarget(theTarget); - theTC.SetNeutronRP(theNeutron); - theTC.SetTarget(theTarget); - theLC.SetNeutronRP(theNeutron); - theLC.SetTarget(theTarget); + // set neutron and target in the FS classes + theFS.SetNeutronRP(theNeutron); + theFS.SetTarget(theTarget); + theFC.SetNeutronRP(theNeutron); + theFC.SetTarget(theTarget); + theSC.SetNeutronRP(theNeutron); + theSC.SetTarget(theTarget); + theTC.SetNeutronRP(theNeutron); + theTC.SetTarget(theTarget); + theLC.SetNeutronRP(theNeutron); + theLC.SetTarget(theTarget); + theFF.SetNeutronRP(theNeutron); + theFF.SetTarget(theTarget); - theFF.SetNeutronRP(theNeutron); - theFF.SetTarget(theTarget); - -//TKWORK 120531 -//G4cout << theTarget.GetDefinition() << G4endl; this should be NULL -//G4cout << "Z = " << theBaseZ << ", A = " << theBaseA << ", M = " << theBaseM << G4endl; -// theNDLDataZ,A,M should be filled in each FS (theFS, theFC, theSC, theTC, theLC and theFF) -////G4cout << "Z = " << theNDLDataZ << ", A = " << theNDLDataA << ", M = " << theNDLDataM << G4endl; - -// boost to target rest system and decide on channel. + // boost to target rest system and decide on channel. theNeutron.Lorentz(theNeutron, -1*theTarget); -// dice the photons + // dice the photons G4DynamicParticleVector * thePhotons; thePhotons = theFS.GetPhotons(); -// select the FS in charge + // select the FS in charge eKinetic = theNeutron.GetKineticEnergy(); G4double xSec[4]; @@ -149,9 +140,9 @@ } } -// dice neutron multiplicities, energies and momenta in Lab. @@ -// no energy conservation on an event-to-event basis. we rely on the data to be ok. @@ -// also for mean, we rely on the consistancy of the data. @@ + // dice neutron multiplicities, energies and momenta in Lab. @@ + // no energy conservation on an event-to-event basis. we rely on the data to be ok. @@ + // also for mean, we rely on the consistancy of the data. @@ G4int Prompt=0, delayed=0, all=0; G4DynamicParticleVector * theNeutrons = 0; @@ -182,10 +173,9 @@ break; } -// dice delayed neutrons and photons, and fallback -// for Prompt in case channel had no FS data; add all paricles to FS. + // dice delayed neutrons and photons, and fallback + // for Prompt in case channel had no FS data; add all paricles to FS. - //TKWORK120531 if ( produceFissionFragments ) delayed=0; G4double * theDecayConstants; @@ -193,18 +183,13 @@ if( theNeutrons != 0) { theDecayConstants = new G4double[delayed]; - // - //110527TKDB Unused codes, Detected by gcc4.6 compiler - //G4int nPhotons = 0; - //if(thePhotons!=0) nPhotons = thePhotons->size(); - for(i=0; isize(); i++) + for(i=0; isize(); ++i) { theResult.Get()->AddSecondary(theNeutrons->operator[](i), secID); } delete theNeutrons; G4DynamicParticleVector * theDelayed = 0; -// G4cout << "delayed" << G4endl; theDelayed = theFS.ApplyYourself(0, delayed, theDecayConstants); for(i=0; isize(); i++) { @@ -217,22 +202,17 @@ } else { -// cout << " all = "<size(); G4int i0; - for(i0=0; i0AddSecondary(theNeutrons->operator[](i0), secID); } -//G4cout << "delayed" << G4endl; - for(i0=Prompt; i0size(); - for(i=0; iAddSecondary(thePhotons->operator[](i), secID); } delete thePhotons; } -// finally deal with local energy depositions. -// G4cout <<"Number of secondaries = "<SetStatusChange(stopAndKill); - //G4cout << "Prompt = " << Prompt << ", Delayed = " << delayed << ", All= " << all << G4endl; - //G4cout << "local energy deposit " << eDepByFragments/MeV << "MeV " << G4endl; - //TKWORK120531 if ( produceFissionFragments ) { G4int fragA_Z=0; @@ -290,10 +262,6 @@ theFF.GetAFissionFragment(eKinetic,fragA_Z,fragA_A,fragA_M); G4int fragB_Z=(G4int)theBaseZ-fragA_Z; G4int fragB_A=(G4int)theBaseA-fragA_A-Prompt; - //fragA_M ignored - //G4int fragB_M=theBaseM-fragA_M; - //G4cout << fragA_Z << " " << fragA_A << " " << fragA_M << G4endl; - //G4cout << fragB_Z << " " << fragB_A << G4endl; G4IonTable* pt = G4IonTable::GetIonTable(); //Excitation energy is not taken into account @@ -319,7 +287,6 @@ theResult.Get()->AddSecondary(dpA, secID); theResult.Get()->AddSecondary(dpB, secID); } - //TKWORK 120531 END return theResult.Get(); } diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelastic.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelastic.cc index d3e1d8260a..8f4a798ec1 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelastic.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelastic.cc @@ -42,13 +42,50 @@ #include "G4SystemOfUnits.hh" #include "G4ParticleHPManager.hh" #include "G4HadronicParameters.hh" +#include "G4ParticleHPThermalBoost.hh" #include "G4Threading.hh" -G4ParticleHPInelastic::G4ParticleHPInelastic(G4ParticleDefinition* projectile, const char* name ) - :G4HadronicInteraction(name) - ,theInelastic(NULL) - ,numEle(0) - ,theProjectile(projectile) +#include "G4ParticleHP2AInelasticFS.hh" +#include "G4ParticleHP2N2AInelasticFS.hh" +#include "G4ParticleHP2NAInelasticFS.hh" +#include "G4ParticleHP2NDInelasticFS.hh" +#include "G4ParticleHP2NInelasticFS.hh" +#include "G4ParticleHP2NPInelasticFS.hh" +#include "G4ParticleHP2PInelasticFS.hh" +#include "G4ParticleHP3AInelasticFS.hh" +#include "G4ParticleHP3NAInelasticFS.hh" +#include "G4ParticleHP3NInelasticFS.hh" +#include "G4ParticleHP3NPInelasticFS.hh" +#include "G4ParticleHP4NInelasticFS.hh" +#include "G4ParticleHPAInelasticFS.hh" +#include "G4ParticleHPD2AInelasticFS.hh" +#include "G4ParticleHPDAInelasticFS.hh" +#include "G4ParticleHPDInelasticFS.hh" +#include "G4ParticleHPHe3InelasticFS.hh" +#include "G4ParticleHPN2AInelasticFS.hh" +#include "G4ParticleHPN2PInelasticFS.hh" +#include "G4ParticleHPN3AInelasticFS.hh" +#include "G4ParticleHPNAInelasticFS.hh" +#include "G4ParticleHPND2AInelasticFS.hh" +#include "G4ParticleHPNDInelasticFS.hh" +#include "G4ParticleHPNHe3InelasticFS.hh" +#include "G4ParticleHPNInelasticFS.hh" +#include "G4ParticleHPNPAInelasticFS.hh" +#include "G4ParticleHPNPInelasticFS.hh" +#include "G4ParticleHPNT2AInelasticFS.hh" +#include "G4ParticleHPNTInelasticFS.hh" +#include "G4ParticleHPNXInelasticFS.hh" +#include "G4ParticleHPPAInelasticFS.hh" +#include "G4ParticleHPPDInelasticFS.hh" +#include "G4ParticleHPPInelasticFS.hh" +#include "G4ParticleHPPTInelasticFS.hh" +#include "G4ParticleHPT2AInelasticFS.hh" +#include "G4ParticleHPTInelasticFS.hh" + +G4ParticleHPInelastic::G4ParticleHPInelastic(G4ParticleDefinition* projectile, + const char* name ) + : G4HadronicInteraction(name), theInelastic(nullptr), numEle(0) + , theProjectile(projectile) { G4String baseName; if ( G4FindDataDir("G4PARTICLEHPDATA") ) { @@ -93,159 +130,25 @@ G4ParticleHPInelastic::G4ParticleHPInelastic(G4ParticleDefinition* projectile, c dirName = baseName + "/" + particleName; } - #ifdef G4VERBOSE +#ifdef G4VERBOSE if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) G4cout << dirName << G4endl; - #endif +#endif G4String tString = "/Inelastic"; dirName = dirName + tString; - //numEle = G4Element::GetNumberOfElements(); - #ifdef G4VERBOSE +#ifdef G4VERBOSE if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) G4cout << "@@@ G4ParticleHPInelastic instantiated for particle " << theProjectile->GetParticleName() << " data directory variable is " << dataDirVariable << " pointing to " << dirName << G4endl; - #endif - -/* - theInelastic = new G4ParticleHPChannelList[numEle]; - for (G4int i=0; iGetNumberOfIsotopes() == 1 ) - { - if ( (*(G4Element::GetElementTable()))[i]->GetIsotope( 0 )->GetZ() == 1 && (*(G4Element::GetElementTable()))[i]->GetIsotope( 0 )->GetN() == 1 ) exceptional = true; //1H - } - if ( !exceptional ) throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do with this element"); - } - } -*/ -/* - for (G4int i=0; iGetNumberOfIsotopes() == 1 ) - { - if ( (*(G4Element::GetElementTable()))[i]->GetIsotope( 0 )->GetZ() == 1 && (*(G4Element::GetElementTable()))[i]->GetIsotope( 0 )->GetN() == 1 ) exceptional = true; //1H - } - if ( !exceptional ) { - G4cerr << " ELEMENT Z " << (*(G4Element::GetElementTable()))[i]->GetIsotope( 0 )->GetZ() << " N " << (*(G4Element::GetElementTable()))[i]->GetIsotope( 0 )->GetN() << G4endl; //1H -throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do with this element"); - } - } - - } -*/ - +#endif } G4ParticleHPInelastic::~G4ParticleHPInelastic() { -// delete [] theInelastic; //Vector is shared, only master deletes if ( !G4Threading::IsWorkerThread() ) { - if ( theInelastic != NULL ) { - for ( std::vector::iterator - it = theInelastic->begin() ; it != theInelastic->end() ; it++ ) { + if ( theInelastic != nullptr ) { + for ( auto it=theInelastic->cbegin(); it!=theInelastic->cend(); ++it ) { delete *it; } theInelastic->clear(); @@ -253,14 +156,12 @@ throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do w } } - #include "G4ParticleHPThermalBoost.hh" - G4HadFinalState * G4ParticleHPInelastic::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aNucleus ) { G4ParticleHPManager::GetInstance()->OpenReactionWhiteBoard(); const G4Material * theMaterial = aTrack.GetMaterial(); - G4int n = theMaterial->GetNumberOfElements(); - G4int index = theMaterial->GetElement(0)->GetIndex(); + G4int n = (G4int)theMaterial->GetNumberOfElements(); + std::size_t index = theMaterial->GetElement(0)->GetIndex(); G4int it=0; if(n!=1) { @@ -270,7 +171,7 @@ throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do w const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); G4double rWeight; G4ParticleHPThermalBoost aThermalE; - for (i=0; iGetElement(i)->GetIndex(); rWeight = NumAtomsPerVolume[i]; @@ -293,7 +194,7 @@ throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do w } G4double random = G4UniformRand(); G4double running = 0; - for (i=0; iGetElement(i)->GetIndex(); @@ -315,110 +216,25 @@ throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do w // aNucleus.SetParameters(G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargA(),G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargZ()); const G4Element* target_element = (*G4Element::GetElementTable())[index]; - const G4Isotope* target_isotope=NULL; - G4int iele = target_element->GetNumberOfIsotopes(); - for ( G4int j = 0 ; j != iele ; j++ ) { + const G4Isotope* target_isotope = nullptr; + G4int iele = (G4int)target_element->GetNumberOfIsotopes(); + for ( G4int j = 0 ; j != iele ; ++j ) { target_isotope=target_element->GetIsotope( j ); if ( target_isotope->GetN() == G4ParticleHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargA() ) break; } - //G4cout << "Target Material of this reaction is " << theMaterial->GetName() << G4endl; - //G4cout << "Target Element of this reaction is " << target_element->GetName() << G4endl; - //G4cout << "Target Isotope of this reaction is " << target_isotope->GetName() << G4endl; aNucleus.SetIsotope( target_isotope ); G4ParticleHPManager::GetInstance()->CloseReactionWhiteBoard(); - //GDEB - if( std::getenv("G4PHPTEST") ) { - G4HadSecondary* seco = result->GetSecondary(0); - if(seco) { - G4ThreeVector secoMom = seco->GetParticle()->GetMomentum(); - #ifdef G4VERBOSE - if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) - G4cout << " G4ParticleHPinelastic COS THETA " << std::cos(secoMom.theta()) <<" " << secoMom << G4endl; - #endif - } - } - return result; } const std::pair G4ParticleHPInelastic::GetFatalEnergyCheckLevels() const { - // max energy non-conservation is mass of heavy nucleus - // This should be same to the hadron default value - return std::pair(10*perCent,DBL_MAX); + // max energy non-conservation is mass of heavy nucleus + return std::pair(10.0*perCent, 350.0*CLHEP::GeV); } -/* -void G4ParticleHPInelastic::addChannelForNewElement() -{ - for ( G4int i = numEle ; i < (G4int)G4Element::GetNumberOfElements() ; i++ ) - { - G4cout << "G4ParticleHPInelastic Prepairing Data for the new element of " << (*(G4Element::GetElementTable()))[i]->GetName() << G4endl; - - theInelastic.push_back( new G4ParticleHPChannelList ); - (*theInelastic[i]).Init((*(G4Element::GetElementTable()))[i], dirName, theProjectile); - G4int itry = 0; - do - { - (*theInelastic[i]).Register(&theNFS, "F01"); // has - (*theInelastic[i]).Register(&theNXFS, "F02"); - (*theInelastic[i]).Register(&the2NDFS, "F03"); - (*theInelastic[i]).Register(&the2NFS, "F04"); // has, E Done - (*theInelastic[i]).Register(&the3NFS, "F05"); // has, E Done - (*theInelastic[i]).Register(&theNAFS, "F06"); - (*theInelastic[i]).Register(&theN3AFS, "F07"); - (*theInelastic[i]).Register(&the2NAFS, "F08"); - (*theInelastic[i]).Register(&the3NAFS, "F09"); - (*theInelastic[i]).Register(&theNPFS, "F10"); - (*theInelastic[i]).Register(&theN2AFS, "F11"); - (*theInelastic[i]).Register(&the2N2AFS, "F12"); - (*theInelastic[i]).Register(&theNDFS, "F13"); - (*theInelastic[i]).Register(&theNTFS, "F14"); - (*theInelastic[i]).Register(&theNHe3FS, "F15"); - (*theInelastic[i]).Register(&theND2AFS, "F16"); - (*theInelastic[i]).Register(&theNT2AFS, "F17"); - (*theInelastic[i]).Register(&the4NFS, "F18"); // has, E Done - (*theInelastic[i]).Register(&the2NPFS, "F19"); - (*theInelastic[i]).Register(&the3NPFS, "F20"); - (*theInelastic[i]).Register(&theN2PFS, "F21"); - (*theInelastic[i]).Register(&theNPAFS, "F22"); - (*theInelastic[i]).Register(&thePFS, "F23"); - (*theInelastic[i]).Register(&theDFS, "F24"); - (*theInelastic[i]).Register(&theTFS, "F25"); - (*theInelastic[i]).Register(&theHe3FS, "F26"); - (*theInelastic[i]).Register(&theAFS, "F27"); - (*theInelastic[i]).Register(&the2AFS, "F28"); - (*theInelastic[i]).Register(&the3AFS, "F29"); - (*theInelastic[i]).Register(&the2PFS, "F30"); - (*theInelastic[i]).Register(&thePAFS, "F31"); - (*theInelastic[i]).Register(&theD2AFS, "F32"); - (*theInelastic[i]).Register(&theT2AFS, "F33"); - (*theInelastic[i]).Register(&thePDFS, "F34"); - (*theInelastic[i]).Register(&thePTFS, "F35"); - (*theInelastic[i]).Register(&theDAFS, "F36"); - (*theInelastic[i]).RestartRegistration(); - itry++; - } - while( !(*theInelastic[i]).HasDataInAnyFinalState() && itry < 6 ); - // 6 is corresponding to the value(5) of G4ParticleHPChannel. TK - - if ( itry == 6 ) - { - // No Final State at all. - G4bool exceptional = false; - if ( (*(G4Element::GetElementTable()))[i]->GetNumberOfIsotopes() == 1 ) - { - if ( (*(G4Element::GetElementTable()))[i]->GetIsotope( 0 )->GetZ() == 1 && (*(G4Element::GetElementTable()))[i]->GetIsotope( 0 )->GetN() == 1 ) exceptional = true; //1H - } - if ( !exceptional ) throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do with this element"); - } - } - - numEle = (G4int)G4Element::GetNumberOfElements(); -} -*/ G4int G4ParticleHPInelastic::GetVerboseLevel() const { return G4ParticleHPManager::GetInstance()->GetVerboseLevel(); @@ -428,43 +244,6 @@ void G4ParticleHPInelastic::SetVerboseLevel( G4int newValue ) G4ParticleHPManager::GetInstance()->SetVerboseLevel(newValue); } -#include "G4ParticleHP2AInelasticFS.hh" -#include "G4ParticleHP2N2AInelasticFS.hh" -#include "G4ParticleHP2NAInelasticFS.hh" -#include "G4ParticleHP2NDInelasticFS.hh" -#include "G4ParticleHP2NInelasticFS.hh" -#include "G4ParticleHP2NPInelasticFS.hh" -#include "G4ParticleHP2PInelasticFS.hh" -#include "G4ParticleHP3AInelasticFS.hh" -#include "G4ParticleHP3NAInelasticFS.hh" -#include "G4ParticleHP3NInelasticFS.hh" -#include "G4ParticleHP3NPInelasticFS.hh" -#include "G4ParticleHP4NInelasticFS.hh" -#include "G4ParticleHPAInelasticFS.hh" -#include "G4ParticleHPD2AInelasticFS.hh" -#include "G4ParticleHPDAInelasticFS.hh" -#include "G4ParticleHPDInelasticFS.hh" -#include "G4ParticleHPHe3InelasticFS.hh" -#include "G4ParticleHPN2AInelasticFS.hh" -#include "G4ParticleHPN2PInelasticFS.hh" -#include "G4ParticleHPN3AInelasticFS.hh" -#include "G4ParticleHPNAInelasticFS.hh" -#include "G4ParticleHPND2AInelasticFS.hh" -#include "G4ParticleHPNDInelasticFS.hh" -#include "G4ParticleHPNHe3InelasticFS.hh" -#include "G4ParticleHPNInelasticFS.hh" -#include "G4ParticleHPNPAInelasticFS.hh" -#include "G4ParticleHPNPInelasticFS.hh" -#include "G4ParticleHPNT2AInelasticFS.hh" -#include "G4ParticleHPNTInelasticFS.hh" -#include "G4ParticleHPNXInelasticFS.hh" -#include "G4ParticleHPPAInelasticFS.hh" -#include "G4ParticleHPPDInelasticFS.hh" -#include "G4ParticleHPPInelasticFS.hh" -#include "G4ParticleHPPTInelasticFS.hh" -#include "G4ParticleHPT2AInelasticFS.hh" -#include "G4ParticleHPTInelasticFS.hh" - void G4ParticleHPInelastic::BuildPhysicsTable(const G4ParticleDefinition& projectile) { G4ParticleHPManager* hpmanager = G4ParticleHPManager::GetInstance(); @@ -473,50 +252,21 @@ void G4ParticleHPInelastic::BuildPhysicsTable(const G4ParticleDefinition& projec if ( G4Threading::IsMasterThread() ) { - if ( theInelastic == NULL ) theInelastic = new std::vector; + if ( theInelastic == nullptr ) theInelastic = new std::vector; if ( numEle == (G4int)G4Element::GetNumberOfElements() ) return; if ( theInelastic->size() == G4Element::GetNumberOfElements() ) { - numEle = G4Element::GetNumberOfElements(); + numEle = (G4int)G4Element::GetNumberOfElements(); return; } -/* - const char* dataDirVariable; - if( &projectile == G4Neutron::Neutron() ) { - dataDirVariable = "G4NEUTRONHPDATA"; - }else if( &projectile == G4Proton::Proton() ) { - dataDirVariable = "G4PROTONHPDATA"; - }else if( &projectile == G4Deuteron::Deuteron() ) { - dataDirVariable = "G4DEUTERONHPDATA"; - }else if( &projectile == G4Triton::Triton() ) { - dataDirVariable = "G4TRITONHPDATA"; - }else if( &projectile == G4He3::He3() ) { - dataDirVariable = "G4HE3HPDATA"; - }else if( &projectile == G4Alpha::Alpha() ) { - dataDirVariable = "G4ALPHAHPDATA"; - } else { - G4String message("G4ParticleHPInelastic may only be called for neutron, proton, deuteron, triton, He3 or alpha, while it is called for " + projectile.GetParticleName()); - throw G4HadronicException(__FILE__, __LINE__,message.c_str()); - } - if(!std::getenv(dataDirVariable)){ - G4String message("Please set the environment variable " + G4String(dataDirVariable) + " to point to the " + projectile.GetParticleName() + " cross-section files."); - throw G4HadronicException(__FILE__, __LINE__,message.c_str()); - } - dirName = std::getenv(dataDirVariable); - G4cout << dirName << G4endl; - - G4String tString = "/Inelastic"; - dirName = dirName + tString; - -*/ - #ifdef G4VERBOSE +#ifdef G4VERBOSE if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) { hpmanager->DumpSetting(); G4cout << "@@@ G4ParticleHPInelastic instantiated for particle " << projectile.GetParticleName() << " data directory variable is " << dataDirVariable << " pointing to " << dirName << G4endl; } - #endif - for (G4int i = numEle ; i < (G4int)G4Element::GetNumberOfElements(); i++) +#endif + for (G4int i = numEle ; i < (G4int)G4Element::GetNumberOfElements(); ++i) { theInelastic->push_back( new G4ParticleHPChannelList ); ((*theInelastic)[i])->Init((*(G4Element::GetElementTable()))[i], dirName, const_cast(&projectile)); @@ -563,42 +313,30 @@ void G4ParticleHPInelastic::BuildPhysicsTable(const G4ParticleDefinition& projec itry++; } while( !((*theInelastic)[i])->HasDataInAnyFinalState() && itry < 6 ); // Loop checking, 11.05.2015, T. Koi - // 6 is corresponding to the value(5) of G4ParticleHPChannel. TK + // 6 is corresponding to the value(5) of G4ParticleHPChannel. TK if ( itry == 6 ) { // No Final State at all. - /* - G4bool exceptional = false; - if ( (*(G4Element::GetElementTable()))[i]->GetNumberOfIsotopes() == 1 ) - { - if ( (*(G4Element::GetElementTable()))[i]->GetIsotope( 0 )->GetZ() == 1 && (*(G4Element::GetElementTable()))[i]->GetIsotope( 0 )->GetN() == 1 ) exceptional = true; //1H - } - if ( !exceptional ) { - G4cerr << " ELEMENT Z " << (*(G4Element::GetElementTable()))[i]->GetIsotope( 0 )->GetZ() << " N " << (*(G4Element::GetElementTable()))[i]->GetIsotope( 0 )->GetN() << G4endl; //1H - throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do with this element"); - } - */ - #ifdef G4VERBOSE +#ifdef G4VERBOSE if ( G4ParticleHPManager::GetInstance()->GetVerboseLevel() > 1 && G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) { G4cout << "ParticleHP::Inelastic for " << projectile.GetParticleName() << ". Do not know what to do with element of \"" << (*(G4Element::GetElementTable()))[i]->GetName() << "\"." << G4endl; G4cout << "The components of the element are" << G4endl; - //G4cout << "TKDB dataDirVariable = " << dataDirVariable << G4endl; - for ( G4int ii = 0 ; ii < (G4int)( (*(G4Element::GetElementTable()))[i]->GetNumberOfIsotopes() ) ; ii++ ) { - G4cout << " Z: " << (*(G4Element::GetElementTable()))[i]->GetIsotope( ii )->GetZ() << ", A: " << (*(G4Element::GetElementTable()))[i]->GetIsotope( ii )->GetN() << G4endl; + for ( G4int ii = 0 ; ii < (G4int)( (*(G4Element::GetElementTable()))[i]->GetNumberOfIsotopes() ) ; ++ii ) { + G4cout << " Z: " << (*(G4Element::GetElementTable()))[i]->GetIsotope( ii )->GetZ() << ", A: " << (*(G4Element::GetElementTable()))[i]->GetIsotope( ii )->GetN() << G4endl; } G4cout << "No possible final state data of the element is found in " << dataDirVariable << "." << G4endl; } - #endif +#endif } } hpmanager->RegisterInelasticFinalStates( &projectile , theInelastic ); } - numEle = G4Element::GetNumberOfElements(); + numEle = (G4int)G4Element::GetNumberOfElements(); } void G4ParticleHPInelastic::ModelDescription(std::ostream& outFile) const { - outFile << "Extension of High Precision model for inelastic reaction of proton, deuteron, triton, He3 and alpha below 20MeV\n"; + outFile << "Extension of High Precision model for inelastic reaction of proton,\n" + << "deuteron, triton, He3 and alpha below 20MeV\n"; } - diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticBaseFS.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticBaseFS.cc index a644c5e169..a6f624477d 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticBaseFS.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticBaseFS.cc @@ -45,24 +45,16 @@ #include "G4Alpha.hh" #include "G4Electron.hh" #include "G4ParticleHPDataUsed.hh" - #include "G4IonTable.hh" void G4ParticleHPInelasticBaseFS::InitGammas(G4double AR, G4double ZR) { - // char the[100] = {""}; - // std::ostrstream ost(the, 100, std::ios::out); - // ost <(AR+eps),static_cast(ZR+eps)) - G4NucleiProperties::GetBindingEnergy(static_cast(theBaseA+eps), static_cast(theBaseZ+eps)); theGammas.Init(theGammaData); - // delete aName; - } void G4ParticleHPInelasticBaseFS::Init (G4double A, G4double Z, G4int M, G4String & dirName, G4String & bit, G4ParticleDefinition* ) @@ -88,12 +78,8 @@ void G4ParticleHPInelasticBaseFS::Init (G4double A, G4double Z, G4int M, G4Strin #ifdef G4PHPDEBUG if( std::getenv("G4ParticleHPDebug") ) G4cout << " G4ParticleHPInelasticBaseFS::Init FILE " << filename << G4endl; #endif - SetAZMs( A, Z, M, aFile); - //theBaseA = aFile.GetA(); - //theBaseZ = aFile.GetZ(); - // theNDLDataA = (int)aFile.GetA(); - // theNDLDataZ = aFile.GetZ(); - //if(!dbool || ( Z<2.5 && ( std::abs(theBaseZ - Z)>0.0001 || std::abs(theBaseA - A)>0.0001))) + SetAZMs( A, Z, M, aFile); + if ( !dbool || ( Z<2.5 && ( std::abs(theNDLDataZ - Z)>0.0001 || std::abs(theNDLDataA - A)>0.0001)) ) { #ifdef G4PHPDEBUG @@ -104,13 +90,10 @@ void G4ParticleHPInelasticBaseFS::Init (G4double A, G4double Z, G4int M, G4Strin hasXsec = false; return; } - // theBaseA = A; - // theBaseZ = G4int(Z+.5); - //std::ifstream theData(filename, std::ios::in); - //130205 For compressed data files - std::istringstream theData(std::ios::in); - G4ParticleHPManager::GetInstance()->GetDataStream(filename,theData); - //130205 END + + std::istringstream theData(std::ios::in); + G4ParticleHPManager::GetInstance()->GetDataStream(filename,theData); + if(!theData) //"!" is a operator of ios { hasAnyData = false; @@ -127,7 +110,9 @@ void G4ParticleHPInelasticBaseFS::Init (G4double A, G4double Z, G4int M, G4Strin theData >> dataType; if(dummy==INT_MAX) theData >> Qvalue >> dummy; - Qvalue*=CLHEP::eV; //In G4NDL4.5 this value is the MT number (<1000), in others is que Q-value in eV + Qvalue*=CLHEP::eV; + // In G4NDL4.5 this value is the MT number (<1000), + // in others is que Q-value in eV if(dataType==3) { @@ -150,7 +135,6 @@ void G4ParticleHPInelasticBaseFS::Init (G4double A, G4double Z, G4int M, G4Strin else if(dataType==6) { theEnergyAngData = new G4ParticleHPEnAngCorrelation(theProjectile); - //- G4cout << this << " BaseFS theEnergyAngData " << theEnergyAngData << G4endl; //GDEB theEnergyAngData->Init(theData); hasFSData = true; } @@ -181,15 +165,13 @@ void G4ParticleHPInelasticBaseFS::Init (G4double A, G4double Z, G4int M, G4Strin throw G4HadronicException(__FILE__, __LINE__, "Data-type unknown to G4ParticleHPInelasticBaseFS"); } } - // theData.close(); } void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, - G4ParticleDefinition ** theDefs, - G4int nDef) + G4ParticleDefinition ** theDefs, + G4int nDef) { - -// prepare neutron + // prepare neutron if ( theResult.Get() == NULL ) theResult.Put( new G4HadFinalState ); theResult.Get()->Clear(); G4double eKinetic = theTrack.GetKineticEnergy(); @@ -198,22 +180,20 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, incidReactionProduct.SetMomentum( hadProjectile->Get4Momentum().vect() ); incidReactionProduct.SetKineticEnergy( eKinetic ); -// prepare target + // prepare target G4double targetMass; G4double eps = 0.0001; targetMass = ( G4NucleiProperties::GetNuclearMass(static_cast(theBaseA+eps), static_cast(theBaseZ+eps))) / //theProjectile->GetPDGMass(); G4Neutron::Neutron()->GetPDGMass(); - //give priority to ENDF vales for target mass + // give priority to ENDF vales for target mass if(theEnergyAngData!=0) { targetMass = theEnergyAngData->GetTargetMass(); } if(theAngularDistribution!=0) { targetMass = theAngularDistribution->GetTargetMass(); } -//080731a -//110512 TKDB ENDF-VII.0 21Sc45 has trouble in MF4MT22 (n,np) targetMass is not properly recorded. -//if ( targetMass == 0 ) G4cout << "080731a It looks like something wrong value in G4NDL, please update the latest version. If you use the latest, then please report this problem to Geant4 Hyper news." << G4endl; + // 110512 TKDB ENDF-VII.0 21Sc45 has trouble in MF4MT22 (n,np) targetMass is not properly recorded. if ( targetMass == 0 ) { //G4cout << "TKDB targetMass = 0; ENDF-VII.0 21Sc45 has trouble in MF4MT22 (n,np) targetMass is not properly recorded. This could be a similar situation." << G4endl; @@ -223,37 +203,37 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, G4Nucleus aNucleus; G4ReactionProduct theTarget; - //G4ThreeVector neuVelo = (1./hadProjectile->GetDefinition()->GetPDGMass())*incidReactionProduct.GetMomentum(); - //theTarget = aNucleus.GetBiasedThermalNucleus( targetMass, neuVelo, theTrack.GetMaterial()->GetTemperature()); - //G4Nucleus::GetBiasedThermalNucleus requests normalization of mass and velocity in neutron mass - G4ThreeVector neuVelo = (1./G4Neutron::Neutron()->GetPDGMass())*incidReactionProduct.GetMomentum(); - theTarget = aNucleus.GetBiasedThermalNucleus( targetMass, neuVelo, theTrack.GetMaterial()->GetTemperature()); + + G4ThreeVector neuVelo = (1./G4Neutron::Neutron()->GetPDGMass())*incidReactionProduct.GetMomentum(); + theTarget = aNucleus.GetBiasedThermalNucleus( targetMass, neuVelo, theTrack.GetMaterial()->GetTemperature()); theTarget.SetDefinition( G4IonTable::GetIonTable()->GetIon( G4int(theBaseZ), G4int(theBaseA) , 0.0 ) ); -// prepare energy in target rest frame + // prepare energy in target rest frame G4ReactionProduct boosted; boosted.Lorentz(incidReactionProduct, theTarget); eKinetic = boosted.GetKineticEnergy(); G4double orgMomentum = boosted.GetMomentum().mag(); -// Take N-body phase-space distribution, if no other data present. + // Take N-body phase-space distribution, if no other data present. if(!HasFSData()) // adding the residual is trivial here @@@ { G4ParticleHPNBodyPhaseSpace thePhaseSpaceDistribution; G4double aPhaseMass=0; G4int ii; - for(ii=0; iiGetPDGMass(); } //---------------------------------------------------------------------------- - if(Qvalue<1.*CLHEP::keV && Qvalue>-1.*CLHEP::keV){ //Not in the G4NDL lib or not calculated yet: - //Calculate residual: + if(Qvalue<1.*CLHEP::keV && Qvalue>-1.*CLHEP::keV) { + // Not in the G4NDL lib or not calculated yet: + + // Calculate residual: G4int ResidualA=theBaseA; G4int ResidualZ=theBaseZ; - for (ii = 0; ii < nDef; ii++) { + for (ii = 0; ii < nDef; ++ii) { ResidualZ -= theDefs[ii]->GetAtomicNumber(); ResidualA -= theDefs[ii]->GetBaryonNumber(); } @@ -275,7 +255,7 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, thePhaseSpaceDistribution.SetTarget(&theTarget); thePhaseSpaceDistribution.SetQValue(Qvalue); - for(ii=0; iiGetPDGCharge()); massCode += theDefs[ii]->GetBaryonNumber(); @@ -288,12 +268,16 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, delete aSec; theResult.Get()->AddSecondary(aPart, secID); #ifdef G4PHPDEBUG - if( std::getenv("G4ParticleHPDebug")) G4cout << this << " G4ParticleHPInelasticBaseFS::BaseApply NoFSData add secondary " << aPart->GetParticleDefinition()->GetParticleName() << " E= " << aPart->GetKineticEnergy() << " NSECO " << theResult.Get()->GetNumberOfSecondaries() << G4endl; + if( std::getenv("G4ParticleHPDebug")) + G4cout << this + << " G4ParticleHPInelasticBaseFS::BaseApply NoFSData add secondary " + << aPart->GetParticleDefinition()->GetParticleName() + << " E= " << aPart->GetKineticEnergy() << " NSECO " + << theResult.Get()->GetNumberOfSecondaries() << G4endl; #endif } theResult.Get()->SetStatusChange(stopAndKill); - //TK120607 - //Final momentum check should be done before return + // Final momentum check should be done before return G4ParticleDefinition* targ_pd = G4IonTable::GetIonTable()->GetIon ( (G4int)theBaseZ , (G4int)theBaseA , 0.0 ); G4LorentzVector targ_4p_lab ( theTarget.GetMomentum() , std::sqrt( targ_pd->GetPDGMass()*targ_pd->GetPDGMass() + theTarget.GetMomentum().mag2() ) ); G4LorentzVector proj_4p_lab = theTrack.Get4Momentum(); @@ -303,7 +287,7 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, return; } -// set target and neutron in the relevant exit channel + // set target and neutron in the relevant exit channel if(theAngularDistribution!=0) { theAngularDistribution->SetTarget(theTarget); @@ -321,21 +305,20 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, G4int ii(0); #endif G4int dummy; - unsigned int i; + std::size_t i; if(theEnergyAngData != 0) { tmpHadrons = theEnergyAngData->Sample(eKinetic); if ( ! G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) { - //141017 Fix BEGIN - //Adjust A and Z in the case of miss much between selected data and target nucleus - if ( tmpHadrons != NULL ) { + // Adjust A and Z in the case of miss much between selected data and target nucleus + if ( tmpHadrons != nullptr ) { G4int sumA = 0; G4int sumZ = 0; G4int maxA = 0; G4int jAtMaxA = 0; - for ( G4int j = 0 ; j != (G4int)tmpHadrons->size() ; j++ ) { + for ( G4int j = 0 ; j != (G4int)tmpHadrons->size() ; ++j ) { //G4cout << __FILE__ << " " << __LINE__ << "th line: tmpHadrons->at(j)->GetDefinition()->GetParticleName() = " << tmpHadrons->at(j)->GetDefinition()->GetParticleName() << G4endl; if ( tmpHadrons->at(j)->GetDefinition()->GetBaryonNumber() > maxA ) { maxA = tmpHadrons->at(j)->GetDefinition()->GetBaryonNumber(); @@ -355,36 +338,19 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, } } } - //141017 Fix END } } else if(theAngularDistribution!= 0) { G4bool * Done = new G4bool[nDef]; G4int i0; - for(i0=0; i0size(); i++) -// { -// for(ii=0; iioperator[](i)->GetDefinition() == theDefs[ii]) -// Done[ii] = true; -// } -#ifdef G4PHPDEBUG -// if( getenv("G4ParticleHPDebug")) G4cout << " G4ParticleHPInelasticBaseFS::BaseApply secondary previously added " << tmpHadrons->operator[](i)->GetDefinition()->GetParticleName() << " E= " << tmpHadrons->operator[](i)->GetKineticEnergy() << G4endl; -#endif -// } + tmpHadrons = new G4ReactionProductVector; G4ReactionProduct * aHadron; G4double localMass = ( G4NucleiProperties::GetNuclearMass(static_cast(theBaseA+eps), static_cast(theBaseZ+eps))); G4ThreeVector bufferedDirection(0,0,0); - for(i0=0; i0GetPhotons(anEnergy); if(thePhotons!=0) { - for(i=0; isize(); i++) + for(i=0; isize(); ++i) { // back to lab thePhotons->operator[](i)->Lorentz(*(thePhotons->operator[](i)), -1.*theTarget); @@ -487,12 +453,13 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, else if(theEnergyAngData!=0) { - // PA130927: do not create photons to adjust binding energy + // PA130927: do not create photons to adjust binding energy G4bool bAdjustPhotons = true; #ifdef PHP_AS_HP bAdjustPhotons = true; #else - if ( G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) bAdjustPhotons = false; + if ( G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) + bAdjustPhotons = false; #endif if( bAdjustPhotons ) { @@ -543,8 +510,7 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, if( std::getenv("G4ParticleHPDebug")) G4cout << " G4ParticleHPInelasticBaseFS::BaseApply gamma Energy " << theGammaEnergy << " eBindProducts " << eBindProducts << G4endl; #endif - //101111 - //Special treatment for Be9 + n -> 2n + Be8 -> 2n + a + a + // Special treatment for Be9 + n -> 2n + Be8 -> 2n + a + a if ( (G4int)(theBaseZ+eps) == 4 && (G4int)(theBaseA+eps) == 9 ) { // This only valid for G4NDL3.13,,, @@ -557,11 +523,11 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, } } - G4ReactionProductVector * theOtherPhotons = 0; + G4ReactionProductVector * theOtherPhotons = nullptr; G4int iLevel; while(theGammaEnergy>=theGammas.GetLevelEnergy(0)) // Loop checking, 11.05.2015, T. Koi { - for(iLevel=theGammas.GetNumberOfLevels()-1; iLevel>=0; iLevel--) + for(iLevel=theGammas.GetNumberOfLevels()-1; iLevel>=0; --iLevel) { if(theGammas.GetLevelEnergy(iLevel)operator[](ii)->GetKineticEnergy() << G4endl; + if( std::getenv("G4ParticleHPDebug")) + G4cout << " G4ParticleHPInelasticBaseFS::BaseApply adding gamma from level " + << iLevel << " " + << theOtherPhotons->operator[](ii)->GetKineticEnergy( + ) << G4endl; #endif } else @@ -583,7 +553,7 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, if(thePhotons==0) thePhotons = new G4ReactionProductVector; if(theOtherPhotons != 0) { - for(unsigned int iii=0; iiisize(); iii++) + for(std::size_t iii=0; iiisize(); ++iii) { thePhotons->push_back(theOtherPhotons->operator[](iii)); #ifdef G4PHPDEBUG @@ -600,16 +570,18 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, } // fill the result - unsigned int nSecondaries = tmpHadrons->size(); - unsigned int nPhotons = 0; + std::size_t nSecondaries = tmpHadrons->size(); + std::size_t nPhotons = 0; if(thePhotons!=0) { nPhotons = thePhotons->size(); } nSecondaries += nPhotons; G4DynamicParticle * theSec; #ifdef G4PHPDEBUG - if( std::getenv("G4ParticleHPDebug")) G4cout << " G4ParticleHPInelasticBaseFS::BaseApply N hadrons " << nSecondaries-nPhotons << G4endl; + if( std::getenv("G4ParticleHPDebug")) + G4cout << " G4ParticleHPInelasticBaseFS::BaseApply N hadrons " + << nSecondaries-nPhotons << G4endl; #endif - for(i=0; iSetDefinition(tmpHadrons->operator[](i)->GetDefinition()); @@ -618,7 +590,6 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, #ifdef G4PHPDEBUG if( std::getenv("G4ParticleHPDebug")) G4cout << this << " G4ParticleHPInelasticBaseFS::BaseApply add secondary2 " << theSec->GetParticleDefinition()->GetParticleName() << " E= " << theSec->GetKineticEnergy() << " NSECO " << theResult.Get()->GetNumberOfSecondaries() << G4endl; #endif - if( std::getenv("G4PHPTEST") ) G4cout << " InelasticBaseFS COS THETA " << std::cos(theSec->GetMomentum().theta()) << " " << (theSec->GetMomentum().theta()) << " " << theSec->GetMomentum() << " E "<< theSec->GetKineticEnergy() << " " << theSec->GetDefinition()->GetParticleName() << G4endl; //GDEB delete tmpHadrons->operator[](i); } #ifdef G4PHPDEBUG @@ -626,7 +597,7 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, #endif if(thePhotons != 0) { - for(i=0; iSetDefinition(thePhotons->operator[](i)->GetDefinition()); @@ -639,19 +610,18 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, } } -// some garbage collection + // some garbage collection delete thePhotons; delete tmpHadrons; -//080721 - G4ParticleDefinition* targ_pd = G4IonTable::GetIonTable()->GetIon ( (G4int)theBaseZ , (G4int)theBaseA , 0.0 ); - G4LorentzVector targ_4p_lab ( theTarget.GetMomentum() , std::sqrt( targ_pd->GetPDGMass()*targ_pd->GetPDGMass() + theTarget.GetMomentum().mag2() ) ); - G4LorentzVector proj_4p_lab = theTrack.Get4Momentum(); - G4LorentzVector init_4p_lab = proj_4p_lab + targ_4p_lab; + G4ParticleDefinition* targ_pd = G4IonTable::GetIonTable()->GetIon ( (G4int)theBaseZ , (G4int)theBaseA , 0.0 ); + G4LorentzVector targ_4p_lab ( theTarget.GetMomentum() , std::sqrt( targ_pd->GetPDGMass()*targ_pd->GetPDGMass() + theTarget.GetMomentum().mag2() ) ); + G4LorentzVector proj_4p_lab = theTrack.Get4Momentum(); + G4LorentzVector init_4p_lab = proj_4p_lab + targ_4p_lab; - //if data in MF=6 format (no correlated particle emission), then adjust_final_state can give severe errors: - if(theEnergyAngData==0){adjust_final_state ( init_4p_lab );} + //if data in MF=6 format (no correlated particle emission), then adjust_final_state can give severe errors: + if(theEnergyAngData==0){adjust_final_state ( init_4p_lab );} -// clean up the primary neutron + // clean up the primary neutron theResult.Get()->SetStatusChange(stopAndKill); } diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticCompFS.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticCompFS.cc index 68d28a8df6..51d95f343f 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticCompFS.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticCompFS.cc @@ -63,24 +63,15 @@ void G4ParticleHPInelasticCompFS::InitGammas(G4double AR, G4double ZR) { - // char the[100] = {""}; - // std::ostrstream ost(the, 100, std::ios::out); - // ost <0.0001 || std::abs(theBaseA - A)>0.0001))) + if ( !dbool || ( Z<2.5 && ( std::abs(theNDLDataZ - Z)>0.0001 || std::abs(theNDLDataA - A)>0.0001)) ) { #ifdef G4PHPDEBUG @@ -114,11 +101,8 @@ void G4ParticleHPInelasticCompFS::Init (G4double A, G4double Z, G4int M, G4Strin hasXsec = false; return; } - // theBaseA = A; - // theBaseZ = G4int(Z+.5); -//std::ifstream theData(filename, std::ios::in); - std::istringstream theData(std::ios::in); - G4ParticleHPManager::GetInstance()->GetDataStream(filename,theData); + std::istringstream theData(std::ios::in); + G4ParticleHPManager::GetInstance()->GetDataStream(filename,theData); if(!theData) //"!" is a operator of ios { hasAnyData = false; @@ -199,12 +183,10 @@ void G4ParticleHPInelasticCompFS::Init (G4double A, G4double Z, G4int M, G4Strin G4int G4ParticleHPInelasticCompFS::SelectExitChannel(G4double eKinetic) { - -// it = 0 has without Photon G4double running[50]; running[0] = 0; - unsigned int i; - for(i=0; i<50; i++) + G4int i; + for(i=0; i<50; ++i) { if(i!=0) running[i]=running[i-1]; if(theXsection[i] != 0) @@ -218,26 +200,22 @@ G4int G4ParticleHPInelasticCompFS::SelectExitChannel(G4double eKinetic) if(0!=sum) { G4int i0; - for(i0=0; i0<50; i0++) + for(i0=0; i0<50; ++i0) { it = i0; - // G4cout << " SelectExitChannel " << it << " " << random << " " << running[i0]/sum << " " << running[i0] << G4endl; //GDEB if(random < running[i0]/sum) break; } } -//debug: it = 1; -// G4cout << " SelectExitChannel " << it << " " << sum << G4endl; //GDEB return it; } - // n,p,d,t,he3,a void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack, G4ParticleDefinition* aDefinition) { -// prepare neutron - if ( theResult.Get() == NULL ) theResult.Put( new G4HadFinalState ); + // prepare neutron + if ( theResult.Get() == nullptr ) theResult.Put( new G4HadFinalState ); theResult.Get()->Clear(); G4double eKinetic = theTrack.GetKineticEnergy(); const G4HadProjectile *hadProjectile = &theTrack; @@ -245,23 +223,20 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack incidReactionProduct.SetMomentum( hadProjectile->Get4Momentum().vect() ); incidReactionProduct.SetKineticEnergy( eKinetic ); -// prepare target + // prepare target G4int i; - for(i=0; i<50; i++) + for(i=0; i<50; ++i) { if(theXsection[i] != 0) { break; } } G4double targetMass=0; G4double eps = 0.0001; targetMass = G4NucleiProperties::GetNuclearMass(static_cast(theBaseA+eps), static_cast(theBaseZ+eps)); #ifdef G4PHPDEBUG - if( std::getenv("G4ParticleHPDebug")) G4cout <GetDefinition()->GetParticleName() <GetDefinition()->GetParticleName() <GetTargetMass(); -// else if(theAngularDistribution[i]!=0) -// targetMass = theAngularDistribution[i]->GetTargetMass(); -// else if(theFinalStatePhotons[50]!=0) -// targetMass = theFinalStatePhotons[50]->GetTargetMass(); G4ReactionProduct theTarget; G4Nucleus aNucleus; //G4ThreeVector neuVelo = (1./hadProjectile->GetDefinition()->GetPDGMass())*incidReactionProduct.GetMomentum(); @@ -273,19 +248,18 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack theTarget.SetDefinition( G4IonTable::GetIonTable()->GetIon( G4int(theBaseZ), G4int(theBaseA) , 0.0 ) ); //XX -// prepare the residual mass + // prepare the residual mass G4double residualMass=0; G4double residualZ = theBaseZ + theProjectile->GetPDGCharge() - aDefinition->GetPDGCharge(); G4double residualA = theBaseA + theProjectile->GetBaryonNumber() - aDefinition->GetBaryonNumber(); residualMass = G4NucleiProperties::GetNuclearMass(static_cast(residualA+eps), static_cast(residualZ+eps)); -// prepare energy in target rest frame + // prepare energy in target rest frame G4ReactionProduct boosted; boosted.Lorentz(incidReactionProduct, theTarget); eKinetic = boosted.GetKineticEnergy(); -// G4double momentumInCMS = boosted.GetTotalMomentum(); -// select exit channel for composite FS class. + // select exit channel for composite FS class. G4int it = SelectExitChannel( eKinetic ); //E. Mendoza (2018) -- to use JENDL/AN-2005 @@ -299,7 +273,7 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack InitDistributionInitialState(incidReactionProduct, theTarget, it); //---------------------------------------------------------------------// - //Hook for NRESP71MODEL + // Hook for NRESP71MODEL if ( G4ParticleHPManager::GetInstance()->GetUseNRESP71Model() && eKinetic<20*MeV) { if ( (G4int)(theBaseZ+0.1) == 6 ) // If the reaction is with Carbon... { @@ -316,10 +290,9 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack aHadron.SetDefinition(aDefinition); // what if only cross-sections exist ==> Na 23 11 @@@@ G4double availableEnergy = incidReactionProduct.GetKineticEnergy() + incidReactionProduct.GetMass() - aHadron.GetMass() + (targetMass - residualMass); -//080730c + if ( availableEnergy < 0 ) { - //G4cout << "080730c Adjust availavleEnergy " << G4endl; availableEnergy = 0; } G4int nothingWasKnownOnHadron = 0; @@ -327,11 +300,10 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack G4double eGamm = 0; G4int iLevel=it-1; -// TK without photon has it = 0 + // without photon has it = 0 if( 50 == it ) { - -// TK Excitation level is not determined + // Excitation level is not determined iLevel=-1; aHadron.SetKineticEnergy(availableEnergy*residualMass/ (aHadron.GetMass()+residualMass)); @@ -343,17 +315,15 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack //TK add safty 100909 G4double p2 = ( aHadron.GetTotalEnergy()*aHadron.GetTotalEnergy() - aHadron.GetMass()*aHadron.GetMass() ); G4double p = 0.0; - if ( p2 > 0.0 ) p = std::sqrt( p ); - + if ( p2 > 0.0 ) + p = std::sqrt( p ); aHadron.SetMomentum(incidReactionProduct.GetMomentum()*(1./incidReactionProduct.GetTotalMomentum())*p ); - } else { while ( iLevel!=-1 && theGammas.GetLevel(iLevel) == 0 ) { iLevel--; } // Loop checking, 11.05.2015, T. Koi } - if ( theAngularDistribution[it] != 0 ) // MF4 { if(theEnergyDistribution[it]!=0) // MF5 @@ -373,17 +343,17 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack G4int icounter=0; G4int icounter_max=1024; do { - icounter++; + ++icounter; if ( icounter > icounter_max ) { G4cout << "Loop-counter exceeded the threshold value at " << __LINE__ << "th line of " << __FILE__ << "." << G4endl; break; } eSecN=theEnergyDistribution[it]->Sample(eKinetic, dummy); - }while(eSecN>MaxEne); // Loop checking, 11.05.2015, T. Koi + } while(eSecN>MaxEne); // Loop checking, 11.05.2015, T. Koi aHadron.SetKineticEnergy(eSecN); //************************************************************ eGamm = eKinetic-eSecN; - for(iLevel=theGammas.GetNumberOfLevels()-1; iLevel>=0; iLevel--) + for(iLevel=theGammas.GetNumberOfLevels()-1; iLevel>=0; --iLevel) { if(theGammas.GetLevelEnergy(iLevel)=0) eExcitation = theGammas.GetLevel(iLevel)->GetLevelEnergy(); while (eKinetic-eExcitation < 0 && iLevel>0) // Loop checking, 11.05.2015, T. Koi { - iLevel--; + --iLevel; eExcitation = theGammas.GetLevel(iLevel)->GetLevelEnergy(); } - //110610TK BEGIN - //Use QI value for calculating excitation energy of residual. + + // Use QI value for calculating excitation energy of residual. G4bool useQI=false; G4double dqi = QI[it]; if (dqi < 0 || 849 < dqi) useQI = true; // Former libraries do not have values in this range @@ -415,7 +385,7 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack eExcitation = std::max(0.,QI[0] - QI[it]); // Bug fix 2333 - // Re-evluate iLevel based on this eExcitation + // Re-evaluate iLevel based on this eExcitation iLevel = 0; G4bool find = false; G4int imaxEx = 0; @@ -437,14 +407,14 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack } else if (eExcitation < theGammas.GetLevel(iLevel)->GetLevelEnergy() ) { find = true; - iLevel--; + --iLevel; // very small eExcitation, iLevel becomes -1, this is protected below if (theTrack.GetDefinition() == aDefinition) { // this line added as part of fix #1838 if (iLevel == -1) iLevel = 0; } break; } - iLevel++; + ++iLevel; } // If proper level cannot be found, use the maximum level @@ -463,8 +433,6 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack if( theFinalStatePhotons[it] == 0 ) { - //G4cout << "110610 USE Gamma Level" << G4endl; -// TK comment Most n,n* eneter to this thePhotons = theGammas.GetDecayGammas(iLevel); eGamm -= theGammas.GetLevelEnergy(iLevel); if(eGamm>0) // @ ok for now, but really needs an efficient way of correllated sampling @ @@ -487,14 +455,13 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack theParticles = theEnergyAngData[it]->Sample(eKinetic); - //141017 Fix BEGIN - //Adjust A and Z in the case of miss much between selected data and target nucleus + // Adjust A and Z in the case of miss much between selected data and target nucleus if ( theParticles != NULL ) { G4int sumA = 0; G4int sumZ = 0; G4int maxA = 0; G4int jAtMaxA = 0; - for ( G4int j = 0 ; j != (G4int)theParticles->size() ; j++ ) { + for ( G4int j = 0 ; j != (G4int)theParticles->size() ; ++j ) { if ( theParticles->at(j)->GetDefinition()->GetBaryonNumber() > maxA ) { maxA = theParticles->at(j)->GetDefinition()->GetBaryonNumber(); jAtMaxA = j; @@ -511,8 +478,6 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack theParticles->at( jAtMaxA )->SetDefinition( pd ); } } - //141017 Fix END - } else { @@ -520,12 +485,6 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack nothingWasKnownOnHadron = 1; } - //G4cout << "theFinalStatePhotons it " << it << G4endl; - //G4cout << "theFinalStatePhotons[it] " << theFinalStatePhotons[it] << G4endl; - //G4cout << "theFinalStatePhotons it " << it << G4endl; - //G4cout << "theFinalStatePhotons[it] " << theFinalStatePhotons[it] << G4endl; - //G4cout << "thePhotons " << thePhotons << G4endl; - if ( theFinalStatePhotons[it] != 0 ) { // the photon distributions are in the Nucleus rest frame. @@ -546,7 +505,7 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack G4bool foundMatchingLevel = false; G4int closest = 2; G4double deltaEold = -1; - for(G4int j=1; jGetPhotons(anEnergy); - if ( thePhotons != NULL ) thePhotons->push_back(theNext->operator[](0)); + if ( thePhotons != nullptr ) + thePhotons->push_back(theNext->operator[](0)); aBaseEnergy = testEnergy-theNext->operator[](0)->GetTotalEnergy(); delete theNext; foundMatchingLevel = true; @@ -577,7 +537,8 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack { G4ReactionProductVector * theNext = theFinalStatePhotons[closest]->GetPhotons(anEnergy); - if ( thePhotons != NULL ) thePhotons->push_back(theNext->operator[](0)); + if ( thePhotons != nullptr ) + thePhotons->push_back(theNext->operator[](0)); aBaseEnergy = aBaseEnergy-theNext->operator[](0)->GetTotalEnergy(); delete theNext; } @@ -587,17 +548,16 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack unsigned int i0; if(thePhotons!=0) { - for(i0=0; i0size(); i0++) + for(i0=0; i0size(); ++i0) { // back to lab thePhotons->operator[](i0)->Lorentz(*(thePhotons->operator[](i0)), -1.*theTarget); } } - //G4cout << "nothingWasKnownOnHadron " << nothingWasKnownOnHadron << G4endl; if (nothingWasKnownOnHadron) { -// In this case, hadron should be isotropic in CM -// Next 12 lines are Emilio's replacement + // In this case, hadron should be isotropic in CM + // Next 12 lines are Emilio's replacement // G4double QM=(incidReactionProduct.GetMass()+targetMass)-(aHadron.GetMass()+residualMass); // G4double eExcitation = QM-QI[it]; // G4double eExcitation = QI[0] - QI[it]; // Fix of bug #1838 @@ -607,69 +567,31 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack two_body_reaction(&incidReactionProduct,&theTarget,&aHadron,eExcitation); if(thePhotons==0 && eExcitation>0){ - for(iLevel=theGammas.GetNumberOfLevels()-1; iLevel>=0; iLevel--) + for(iLevel=theGammas.GetNumberOfLevels()-1; iLevel>=0; --iLevel) { if(theGammas.GetLevelEnergy(iLevel)Get4Momentum(); + // fill the result + // Beware - the recoil is not necessarily in the particles... + // Can be calculated from momentum conservation? + // The idea is that the particles ar emitted forst, and the gammas only once the + // recoil is on the residual; assumption is that gammas do not contribute to + // the recoil. + // This needs more design @@@ - G4DynamicParticle* proj = new G4DynamicParticle(theProjectile, proj_in_LAB.boost(boostToTargetRest) ); -// G4DynamicParticle* targ = -// new G4DynamicParticle(G4IonTable::GetIonTable()->GetIon((G4int)theBaseZ, (G4int)theBaseA, totalPhotonEnergy), G4ThreeVector(0) ); -// Fix bug 2166 (A. Zontikov): replace above two lines with next three lines - G4double excitationEnergy = theFinalStatePhotons[it] ? theFinalStatePhotons[it]->GetLevelEnergy() : 0.0; - G4DynamicParticle* targ = - new G4DynamicParticle(G4IonTable::GetIonTable()->GetIon((G4int)theBaseZ, (G4int)theBaseA, excitationEnergy), G4ThreeVector(0) ); - G4DynamicParticle* hadron = - new G4DynamicParticle(aHadron.GetDefinition(), G4ThreeVector(0) ); // Will fill in the momentum - - two_body_reaction ( proj , targ , hadron , mu ); - - G4LorentzVector hadron_in_trag_rest = hadron->Get4Momentum(); - G4LorentzVector hadron_in_LAB = hadron_in_trag_rest.boost ( -boostToTargetRest ); - aHadron.SetMomentum( hadron_in_LAB.v() ); - aHadron.SetKineticEnergy ( hadron_in_LAB.e() - hadron_in_LAB.m() ); - - delete proj; - delete targ; - delete hadron; - - } -*/ - -// fill the result -// Beware - the recoil is not necessarily in the particles... -// Can be calculated from momentum conservation? -// The idea is that the particles ar emitted forst, and the gammas only once the -// recoil is on the residual; assumption is that gammas do not contribute to -// the recoil. -// This needs more design @@@ - - G4int nSecondaries = 2; // the hadron and the recoil G4bool needsSeparateRecoil = false; G4int totalBaryonNumber = 0; G4int totalCharge = 0; G4ThreeVector totalMomentum(0); if(theParticles != 0) { - nSecondaries = theParticles->size(); const G4ParticleDefinition * aDef; - unsigned int ii0; - for(ii0=0; ii0size(); ii0++) + std::size_t ii0; + for(ii0=0; ii0size(); ++ii0) { aDef = theParticles->operator[](ii0)->GetDefinition(); totalBaryonNumber+=aDef->GetBaryonNumber(); @@ -679,7 +601,6 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack if(totalBaryonNumber!=G4int(theBaseA+eps+hadProjectile->GetDefinition()->GetBaryonNumber())) { needsSeparateRecoil = true; - nSecondaries++; residualA = G4int(theBaseA+eps+hadProjectile->GetDefinition()->GetBaryonNumber() -totalBaryonNumber); residualZ = G4int(theBaseZ+eps+hadProjectile->GetDefinition()->GetPDGCharge() @@ -687,9 +608,8 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack } } - G4int nPhotons = 0; + std::size_t nPhotons = 0; if(thePhotons!=0) { nPhotons = thePhotons->size(); } - nSecondaries += nPhotons; G4DynamicParticle * theSec; @@ -700,7 +620,11 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack theSec->SetMomentum(aHadron.GetMomentum()); theResult.Get()->AddSecondary(theSec, secID); #ifdef G4PHPDEBUG - if( std::getenv("G4ParticleHPDebug")) G4cout << this << " G4ParticleHPInelasticCompFS::BaseApply add secondary1 " << theSec->GetParticleDefinition()->GetParticleName() << " E= " << theSec->GetKineticEnergy() << " NSECO " << theResult.Get()->GetNumberOfSecondaries() << G4endl; + if( std::getenv("G4ParticleHPDebug")) + G4cout << this << " G4ParticleHPInelasticCompFS::BaseApply add secondary1 " + << theSec->GetParticleDefinition()->GetParticleName() << " E= " + << theSec->GetKineticEnergy() << " NSECO " + << theResult.Get()->GetNumberOfSecondaries() << G4endl; #endif aHadron.Lorentz(aHadron, theTarget); @@ -717,30 +641,40 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack theResidual.Lorentz(theResidual, -1.*theTarget); G4ThreeVector totalPhotonMomentum(0,0,0); if(thePhotons!=0) - { - for(i=0; ioperator[](i)->GetMomentum(); - } - } + { + for(i=0; i<(G4int)nPhotons; ++i) + { + totalPhotonMomentum += thePhotons->operator[](i)->GetMomentum(); + } + } theSec = new G4DynamicParticle; theSec->SetDefinition(theResidual.GetDefinition()); theSec->SetMomentum(theResidual.GetMomentum()-totalPhotonMomentum); theResult.Get()->AddSecondary(theSec, secID); #ifdef G4PHPDEBUG - if( std::getenv("G4ParticleHPDebug")) G4cout << this << " G4ParticleHPInelasticCompFS::BaseApply add secondary2 " << theSec->GetParticleDefinition()->GetParticleName() << " E= " << theSec->GetKineticEnergy() << " NSECO " << theResult.Get()->GetNumberOfSecondaries() << G4endl; + if( std::getenv("G4ParticleHPDebug")) + G4cout << this + << " G4ParticleHPInelasticCompFS::BaseApply add secondary2 " + << theSec->GetParticleDefinition()->GetParticleName() << " E= " + << theSec->GetKineticEnergy() << " NSECO " + << theResult.Get()->GetNumberOfSecondaries() << G4endl; #endif } else { - for(i0=0; i0size(); i0++) + for(i0=0; i0size(); ++i0) { theSec = new G4DynamicParticle; theSec->SetDefinition(theParticles->operator[](i0)->GetDefinition()); theSec->SetMomentum(theParticles->operator[](i0)->GetMomentum()); theResult.Get()->AddSecondary(theSec, secID); #ifdef G4PHPDEBUG - if( std::getenv("G4ParticleHPDebug")) G4cout << this << " G4ParticleHPInelasticCompFS::BaseApply add secondary3 " << theSec->GetParticleDefinition()->GetParticleName() << " E= " << theSec->GetKineticEnergy() << " NSECO " << theResult.Get()->GetNumberOfSecondaries() << G4endl; + if( std::getenv("G4ParticleHPDebug")) + G4cout << this + << " G4ParticleHPInelasticCompFS::BaseApply add secondary3 " + << theSec->GetParticleDefinition()->GetParticleName() << " E= " + << theSec->GetKineticEnergy() << " NSECO " + << theResult.Get()->GetNumberOfSecondaries() << G4endl; #endif delete theParticles->operator[](i0); } @@ -753,14 +687,13 @@ void G4ParticleHPInelasticCompFS::CompositeApply(const G4HadProjectile& theTrack G4double resiualKineticEnergy = theResidual.GetMass()*theResidual.GetMass(); resiualKineticEnergy += totalMomentum*totalMomentum; resiualKineticEnergy = std::sqrt(resiualKineticEnergy) - theResidual.GetMass(); -// cout << "Kinetic energy of the residual = "<SetMomentum(theResidual.GetMomentum()); theResult.Get()->AddSecondary(theSec, secID); #ifdef G4PHPDEBUG - if( std::getenv("G4ParticleHPDebug")) G4cout << this << " G4ParticleHPInelasticCompFS::BaseApply add secondary4 " << theSec->GetParticleDefinition()->GetParticleName() << " E= " << theSec->GetKineticEnergy() << " NSECO " << theResult.Get()->GetNumberOfSecondaries() << G4endl; + if( std::getenv("G4ParticleHPDebug")) + G4cout << this + << " G4ParticleHPInelasticCompFS::BaseApply add secondary4 " + << theSec->GetParticleDefinition()->GetParticleName() << " E= " + << theSec->GetKineticEnergy() << " NSECO " + << theResult.Get()->GetNumberOfSecondaries() << G4endl; #endif - } } if(thePhotons!=0) { - for(i=0; iSetMomentum(thePhotons->operator[](i)->GetMomentum()); theResult.Get()->AddSecondary(theSec, secID); #ifdef G4PHPDEBUG - if( std::getenv("G4ParticleHPDebug")) G4cout << this << " G4ParticleHPInelasticCompFS::BaseApply add secondary5 " << theSec->GetParticleDefinition()->GetParticleName() << " E= " << theSec->GetKineticEnergy() << " NSECO " << theResult.Get()->GetNumberOfSecondaries() << G4endl; + if( std::getenv("G4ParticleHPDebug")) + G4cout << this + << " G4ParticleHPInelasticCompFS::BaseApply add secondary5 " + << theSec->GetParticleDefinition()->GetParticleName() << " E= " + << theSec->GetKineticEnergy() << " NSECO " + << theResult.Get()->GetNumberOfSecondaries() << G4endl; #endif delete thePhotons->operator[](i); } -// some garbage collection + // some garbage collection delete thePhotons; } -//080721 - G4ParticleDefinition* targ_pd = G4IonTable::GetIonTable()->GetIon ( (G4int)theBaseZ , (G4int)theBaseA , 0.0 ); - G4LorentzVector targ_4p_lab ( theTarget.GetMomentum() , std::sqrt( targ_pd->GetPDGMass()*targ_pd->GetPDGMass() + theTarget.GetMomentum().mag2() ) ); - G4LorentzVector proj_4p_lab = theTrack.Get4Momentum(); - G4LorentzVector init_4p_lab = proj_4p_lab + targ_4p_lab; - adjust_final_state ( init_4p_lab ); + G4ParticleDefinition* targ_pd = G4IonTable::GetIonTable()->GetIon ( (G4int)theBaseZ , (G4int)theBaseA , 0.0 ); + G4LorentzVector targ_4p_lab ( theTarget.GetMomentum() , std::sqrt( targ_pd->GetPDGMass()*targ_pd->GetPDGMass() + theTarget.GetMomentum().mag2() ) ); + G4LorentzVector proj_4p_lab = theTrack.Get4Momentum(); + G4LorentzVector init_4p_lab = proj_4p_lab + targ_4p_lab; + adjust_final_state ( init_4p_lab ); -// clean up the primary neutron + // clean up the primary neutron theResult.Get()->SetStatusChange( stopAndKill ); } - - //Re-implemented by E. Mendoza (2019). Isotropic emission in the CMS: // proj: projectile in target-rest-frame (input) // targ: target in target-rest-frame (input) // product: secondary particle in target-rest-frame (output) // resExcitationEnergy: excitation energy of the residual nucleus - +// void G4ParticleHPInelasticCompFS::two_body_reaction(G4ReactionProduct* proj, G4ReactionProduct* targ, G4ReactionProduct* product, @@ -851,104 +790,93 @@ void G4ParticleHPInelasticCompFS::two_body_reaction(G4ReactionProduct* proj, product->SetTotalEnergy(std::sqrt(prodmass*prodmass+fmom*fmom)); //CMS //Back to the LAB system: product->Lorentz(*product,-1.*theCMS); - } - G4bool G4ParticleHPInelasticCompFS::use_nresp71_model( const G4ParticleDefinition* aDefinition , const G4int it , const G4ReactionProduct& theTarget , G4ReactionProduct& boosted ) { - if ( aDefinition == G4Neutron::Definition() ) // If the outgoing particle is a neutron... - { - // LR: flag LR in ENDF. It indicates whether there is breakup of the residual nucleus or not. - // it: exit channel (index of the carbon excited state) + if ( aDefinition == G4Neutron::Definition() ) // If the outgoing particle is a neutron... + { + // LR: flag LR in ENDF. It indicates whether there is breakup of the residual nucleus or not. + // it: exit channel (index of the carbon excited state) - //if ( (G4int)(theBaseZ+0.1) == 6 ) G4cout << "LR[" << it << "] = " << LR[it] << G4endl; + // Added by A. R. Garcia (CIEMAT) to include the physics of C(N,N'3A) reactions from NRESP71. - // Added by A. R. García (CIEMAT) to include the physics of C(N,N'3A) reactions from NRESP71. + if ( LR[it] > 0 ) // If there is breakup of the residual nucleus LR(flag LR in ENDF)>0 (i.e. Z=6 MT=52-91 (it=MT-50)). + { + // Defining carbon as the target in the reference frame at rest. + G4ReactionProduct theCarbon(theTarget); - if ( LR[it] > 0 ) // If there is breakup of the residual nucleus LR(flag LR in ENDF)>0 (i.e. Z=6 MT=52-91 (it=MT-50)). - { - // Defining carbon as the target in the reference frame at rest. - G4ReactionProduct theCarbon(theTarget); + theCarbon.SetMomentum(G4ThreeVector()); + theCarbon.SetKineticEnergy(0.); - theCarbon.SetMomentum(G4ThreeVector()); - theCarbon.SetKineticEnergy(0.); + // Creating four reaction products. + G4ReactionProduct theProds[4]; - // Creating four reaction products. - G4ReactionProduct theProds[4]; + // Applying C(N,N'3A) reaction mechanisms in the target rest frame. + if ( it == 41 ) + { + // QI=QM=-7.275 MeV for C-0(N,N')C-C(3A) in ENDF/B-VII.1. + // This is not the value of the QI of the first step according + // to the model. So we don't take it. Instead, we set the one + // we have calculated: QI=(mn+m12C)-(ma+m9Be+Ex9Be)=-8.130 MeV. + nresp71_model.ApplyMechanismI_NBeA2A(boosted, theCarbon, theProds, -8.130/*QI[it]*/); + // N+C --> A[0]+9BE* | 9BE* --> N[1]+8BE | 8BE --> 2*A[2,3]. + } + else + { + nresp71_model.ApplyMechanismII_ACN2A(boosted, theCarbon, theProds, QI[it]); + // N+C --> N'[0]+C* | C* --> A[1]+8BE | 8BE --> 2*A[2,3]. + } - // Applying C(N,N'3A) reaction mechanisms in the target rest frame. - if ( it == 41 ) - { - // QI=QM=-7.275 MeV for C-0(N,N')C-C(3A) in ENDF/B-VII.1. This is not the value of the QI of the first step according to the model. So we don't take it. Instead, we set the one we have calculated: QI=(mn+m12C)-(ma+m9Be+Ex9Be)=-8.130 MeV. - nresp71_model.ApplyMechanismI_NBeA2A(boosted, theCarbon, theProds, -8.130/*QI[it]*/); // N+C --> A[0]+9BE* | 9BE* --> N[1]+8BE | 8BE --> 2*A[2,3]. - //printf("- QI=%f\n", QI[it]); - } - else - { - nresp71_model.ApplyMechanismII_ACN2A(boosted, theCarbon, theProds, QI[it]); // N+C --> N'[0]+C* | C* --> A[1]+8BE | 8BE --> 2*A[2,3]. - } + // Returning to the reference frame where the target was in motion. + for ( G4int j=0; j<4; ++j ) + { + theProds[j].Lorentz(theProds[j], -1.*theTarget); + theResult.Get()->AddSecondary(new G4DynamicParticle(theProds[j].GetDefinition(), theProds[j].GetMomentum()), secID); + } - //printf("it=%d qi=%f \n", it, QI[it]); + // Killing the primary neutron. + theResult.Get()->SetStatusChange(stopAndKill); + + return true; + } + } + else if ( aDefinition == G4Alpha::Definition() ) // If the outgoing particle is an alpha, ... + { + // Added by A. R. Garcia (CIEMAT) to include the physics of C(N,A)9BE reactions from NRESP71. - // Returning to the reference frame where the target was in motion. - for ( G4int j=0; j<4; j++ ) - { - theProds[j].Lorentz(theProds[j], -1.*theTarget); - theResult.Get()->AddSecondary(new G4DynamicParticle(theProds[j].GetDefinition(), theProds[j].GetMomentum()), secID); - } + if ( LR[it] == 0 ) // If Z=6, an alpha particle is emitted and there is no breakup of the residual nucleus LR(flag LR in ENDF)==0. + { + // Defining carbon as the target in the reference frame at rest. + G4ReactionProduct theCarbon(theTarget); + theCarbon.SetMomentum(G4ThreeVector()); + theCarbon.SetKineticEnergy(0.); - /*G4double EN0 = theNeutron.GetKineticEnergy(); - G4double EN1 = theProds[0].GetKineticEnergy(); + // Creating four reaction products. + G4ReactionProduct theProds[2]; - G4double EA1 = theProds[1].GetKineticEnergy(); - G4double EA2 = theProds[2].GetKineticEnergy(); - G4double EA3 = theProds[3].GetKineticEnergy(); + // Applying C(N,A)9BE reaction mechanism. + nresp71_model.ApplyMechanismABE(boosted, theCarbon, theProds); + // N+C --> A[0]+9BE[1]. - printf("Q=%f\n", EN1+EA1+EA2+EA3-EN0);*/ + for ( G4int j=0; j<2; ++j ) + { + // Returning to the system of reference where the target was in motion. + theProds[j].Lorentz(theProds[j], -1.*theTarget); + theResult.Get()->AddSecondary(new G4DynamicParticle(theProds[j].GetDefinition(), theProds[j].GetMomentum()), secID); + } - // Killing the primary neutron. - theResult.Get()->SetStatusChange(stopAndKill); + // Killing the primary neutron. + theResult.Get()->SetStatusChange(stopAndKill);; - return true; - } - } - else if ( aDefinition == G4Alpha::Definition() ) // If the outgoing particle is an alpha, ... - { - // Added by A. R. García (CIEMAT) to include the physics of C(N,A)9BE reactions from NRESP71. - - if ( LR[it] == 0 ) // If Z=6, an alpha particle is emitted and there is no breakup of the residual nucleus LR(flag LR in ENDF)==0. - { - // Defining carbon as the target in the reference frame at rest. - G4ReactionProduct theCarbon(theTarget); - - theCarbon.SetMomentum(G4ThreeVector()); - theCarbon.SetKineticEnergy(0.); - - // Creating four reaction products. - G4ReactionProduct theProds[2]; - - // Applying C(N,A)9BE reaction mechanism. - nresp71_model.ApplyMechanismABE(boosted, theCarbon, theProds); // N+C --> A[0]+9BE[1]. - - //G4DynamicParticle *theSec; - for ( G4int j=0; j<2; j++ ) - { - // Returning to the system of reference where the target was in motion. - theProds[j].Lorentz(theProds[j], -1.*theTarget); - theResult.Get()->AddSecondary(new G4DynamicParticle(theProds[j].GetDefinition(), theProds[j].GetMomentum()), secID); - } - - // Killing the primary neutron. - theResult.Get()->SetStatusChange(stopAndKill);; - - return true; - } - else - { - G4Exception("G4ParticleHPInelasticCompFS::CompositeApply()", "G4ParticleInelasticCompFS.cc", FatalException, "Alpha production with LR!=0."); - } - } - - return false; + return true; + } + else + { + G4Exception("G4ParticleHPInelasticCompFS::CompositeApply()", + "G4ParticleInelasticCompFS.cc", FatalException, + "Alpha production with LR!=0."); + } + } + return false; } diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticData.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticData.cc index 7923dd5be9..db051796f3 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticData.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPInelasticData.cc @@ -42,6 +42,7 @@ #include "G4ElementTable.hh" #include "G4ParticleHPData.hh" #include "G4HadronicParameters.hh" +#include "G4NucleiProperties.hh" #include "G4Pow.hh" G4ParticleHPInelasticData::G4ParticleHPInelasticData(G4ParticleDefinition* projectile) @@ -70,9 +71,8 @@ G4ParticleHPInelasticData::G4ParticleHPInelasticData(G4ParticleDefinition* proje G4String message("G4ParticleHPInelasticData may only be called for neutron, proton, deuteron, triton, He3 or alpha, while it is called for " + projectile->GetParticleName()); throw G4HadronicException(__FILE__, __LINE__,message.c_str()); } - // G4cout << this << " G4ParticleHPInelasticData::G4ParticleHPInelasticData " << projectile->GetParticleName() << " DATADIR " << dataDirVariable << G4endl;//GDEB G4String dataName = projectile->GetParticleName()+"HPInelasticXS"; - dataName.at(0) = toupper(dataName.at(0)) ; + dataName.at(0) = (char)std::toupper(dataName.at(0)) ; SetName( dataName ); if ( !G4FindDataDir(dataDirVariable) && !G4FindDataDir( "G4PARTICLEHPDATA" ) ){ @@ -100,29 +100,29 @@ G4ParticleHPInelasticData::G4ParticleHPInelasticData(G4ParticleDefinition* proje theCrossSections = 0; theProjectile=projectile; - theHPData = NULL; + theHPData = nullptr; instanceOfWorker = false; if ( G4Threading::IsMasterThread() ) { theHPData = new G4ParticleHPData( theProjectile ); } else { instanceOfWorker = true; } - element_cache = NULL; - material_cache = NULL; + element_cache = nullptr; + material_cache = nullptr; ke_cache = 0.0; xs_cache = 0.0; } G4ParticleHPInelasticData::~G4ParticleHPInelasticData() { - if ( theCrossSections != NULL && instanceOfWorker != true ) { + if ( theCrossSections != nullptr && instanceOfWorker != true ) { theCrossSections->clearAndDestroy(); delete theCrossSections; - theCrossSections = NULL; + theCrossSections = nullptr; } - if ( theHPData != NULL && instanceOfWorker != true ) { + if ( theHPData != nullptr && instanceOfWorker != true ) { delete theHPData; - theHPData = NULL; + theHPData = nullptr; } } @@ -145,7 +145,8 @@ G4double G4ParticleHPInelasticData::GetIsoCrossSection( const G4DynamicParticle* const G4Element* element , const G4Material* material ) { - if ( dp->GetKineticEnergy() == ke_cache && element == element_cache && material == material_cache ) return xs_cache; + if ( dp->GetKineticEnergy() == ke_cache && element == element_cache + && material == material_cache ) return xs_cache; ke_cache = dp->GetKineticEnergy(); element_cache = element; @@ -155,54 +156,31 @@ G4double G4ParticleHPInelasticData::GetIsoCrossSection( const G4DynamicParticle* return xs; } -/* -G4bool G4ParticleHPInelasticData::IsApplicable(const G4DynamicParticle*aP, const G4Element*) -{ - G4bool result = true; - G4double eKin = aP->GetKineticEnergy(); - if(eKin>20*MeV||aP->GetDefinition()!=G4Neutron::Neutron()) result = false; - return result; -} -*/ - -//void G4ParticleHPInelasticData::BuildPhysicsTableHP(G4ParticleDefinition* projectile,const char* /* dataDirVariable */) void G4ParticleHPInelasticData::BuildPhysicsTable( const G4ParticleDefinition& projectile ) { - // if(&projectile!=G4Neutron::Neutron()) - // throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); - if ( G4Threading::IsWorkerThread() ) { theCrossSections = G4ParticleHPManager::GetInstance()->GetInelasticCrossSections( &projectile ); return; } else { - if ( theHPData == NULL ) theHPData = G4ParticleHPData::Instance( const_cast ( &projectile ) ); + if ( theHPData == nullptr ) theHPData = G4ParticleHPData::Instance( const_cast ( &projectile ) ); } - size_t numberOfElements = G4Element::GetNumberOfElements(); -// theCrossSections = new G4PhysicsTable( numberOfElements ); -// TKDB - //if ( theCrossSections == 0 ) - //{ theCrossSections = new G4PhysicsTable( numberOfElements ); } - if ( theCrossSections == NULL ) + std::size_t numberOfElements = G4Element::GetNumberOfElements(); + if ( theCrossSections == nullptr ) theCrossSections = new G4PhysicsTable( numberOfElements ); else theCrossSections->clearAndDestroy(); // make a PhysicsVector for each element - //G4ParticleHPData* hpData = new G4ParticleHPData(projectile); //NEW - static G4ThreadLocal G4ElementTable *theElementTable = 0 ; + static G4ThreadLocal G4ElementTable *theElementTable = nullptr ; if (!theElementTable) theElementTable= G4Element::GetElementTable(); - for( size_t i=0; iMakePhysicsVector((*theElementTable)[i], this); - //G4PhysicsVector* physVec = hpData->MakePhysicsVector((*theElementTable)[i], this); G4PhysicsVector* physVec = theHPData->MakePhysicsVector((*theElementTable)[i], this); theCrossSections->push_back(physVec); } - - G4ParticleHPManager::GetInstance()->RegisterInelasticCrossSections( &projectile , theCrossSections ); + G4ParticleHPManager::GetInstance()->RegisterInelasticCrossSections( &projectile , theCrossSections ); } void G4ParticleHPInelasticData::DumpPhysicsTable(const G4ParticleDefinition& projectile) @@ -210,67 +188,61 @@ void G4ParticleHPInelasticData::DumpPhysicsTable(const G4ParticleDefinition& pro if(&projectile!=theProjectile) throw G4HadronicException(__FILE__, __LINE__, "Attempt to use ParticleHP data for a wrong projectile!!!"); - #ifdef G4VERBOSE +#ifdef G4VERBOSE if ( G4HadronicParameters::Instance()->GetVerboseLevel() == 0 ) return; -// -// Dump element based cross section -// range 10e-5 eV to 20 MeV -// 10 point per decade -// in barn -// - G4cout << G4endl; - G4cout << G4endl; - G4cout << "Inelastic Cross Section of Neutron HP"<< G4endl; - G4cout << "(Pointwise cross-section at 0 Kelvin.)" << G4endl; - G4cout << G4endl; - G4cout << "Name of Element" << G4endl; - G4cout << "Energy[eV] XS[barn]" << G4endl; - G4cout << G4endl; + // Dump element based cross section + // range 10e-5 eV to 20 MeV + // 10 point per decade + // in barn - size_t numberOfElements = G4Element::GetNumberOfElements(); - static G4ThreadLocal G4ElementTable *theElementTable = 0 ; - if (!theElementTable) theElementTable= G4Element::GetElementTable(); + G4cout << G4endl; + G4cout << G4endl; + G4cout << "Inelastic Cross Section of Neutron HP"<< G4endl; + G4cout << "(Pointwise cross-section at 0 Kelvin.)" << G4endl; + G4cout << G4endl; + G4cout << "Name of Element" << G4endl; + G4cout << "Energy[eV] XS[barn]" << G4endl; + G4cout << G4endl; - for ( size_t i = 0 ; i < numberOfElements ; ++i ) - { + std::size_t numberOfElements = G4Element::GetNumberOfElements(); + static G4ThreadLocal G4ElementTable *theElementTable = nullptr ; + if (!theElementTable) theElementTable= G4Element::GetElementTable(); - G4cout << (*theElementTable)[i]->GetName() << G4endl; + for ( std::size_t i = 0 ; i < numberOfElements ; ++i ) + { + G4cout << (*theElementTable)[i]->GetName() << G4endl; - G4int ie = 0; + G4int ie = 0; - for ( ie = 0 ; ie < 130 ; ie++ ) - { - G4double eKinetic = 1.0e-5 * G4Pow::GetInstance()->powA ( 10.0 , ie/10.0 ) *CLHEP::eV; - G4bool outOfRange = false; + for ( ie = 0 ; ie < 130 ; ie++ ) + { + G4double eKinetic = 1.0e-5 * G4Pow::GetInstance()->powA ( 10.0 , ie/10.0 ) *CLHEP::eV; + G4bool outOfRange = false; - if ( eKinetic < 20*CLHEP::MeV ) - { - G4cout << eKinetic/CLHEP::eV << " " << (*((*theCrossSections)(i))).GetValue(eKinetic, outOfRange)/CLHEP::barn << G4endl; - } - - } - - G4cout << G4endl; - } - - //G4cout << "G4ParticleHPInelasticData::DumpPhysicsTable still to be implemented"<GetIndex(); + std::size_t index = anE->GetIndex(); // prepare neutron G4double eKinetic = projectile->GetKineticEnergy(); - if ( G4ParticleHPManager::GetInstance()->GetNeglectDoppler() ) + if ( G4ParticleHPManager::GetInstance()->GetNeglectDoppler() ) { //NEGLECT_DOPPLER G4double factor = 1.0; @@ -306,29 +278,25 @@ GetCrossSection(const G4DynamicParticle* projectile, const G4Element*anE, G4doub G4ThreeVector neutronVelocity = 1./theProjectile->GetPDGMass()*theNeutron.GetMomentum(); G4double neutronVMag = neutronVelocity.mag(); - // G4cout << " G4ParticleHPInelasticData 2 " << size << G4endl;//GDEB #ifndef G4PHP_DOPPLER_LOOP_ONCE while(counter == 0 || std::abs(buffer-result/std::max(1,counter)) > 0.01*buffer) // Loop checking, 11.05.2015, T. Koi { if(counter) buffer = result/counter; while (counterGetPDGMass(), aT ); - //G4Nucleus::GetThermalNucleus requests normalization of mass in neutron mass G4ReactionProduct aThermalNuc = aNuc.GetThermalNucleus( eleMass/G4Neutron::Neutron()->GetPDGMass(), aT ); boosted.Lorentz(theNeutron, aThermalNuc); G4double theEkin = boosted.GetKineticEnergy(); aXsection = (*((*theCrossSections)(index))).GetValue(theEkin, outOfRange); - // G4cout << " G4ParticleHPInelasticData aXsection " << aXsection << " index " << index << " theEkin " << theEkin << " outOfRange " << outOfRange <GetVerboseLevel(); } + void G4ParticleHPInelasticData::SetVerboseLevel( G4int newValue ) { G4ParticleHPManager::GetInstance()->SetVerboseLevel(newValue); } + void G4ParticleHPInelasticData::CrossSectionDescription(std::ostream& outFile) const { outFile << "Extension of High Precision cross section for inelastic reaction of proton, deuteron, triton, He3 and alpha below 20MeV\n"; diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPJENDLHEData.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPJENDLHEData.cc index be3a9c4a6e..80682859cb 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPJENDLHEData.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPJENDLHEData.cc @@ -40,7 +40,6 @@ G4bool G4ParticleHPJENDLHEData::IsApplicable(const G4DynamicParticle*aP, const G4Element* anE) { - G4bool result = true; G4double eKin = aP->GetKineticEnergy(); //if(eKin>20*MeV||aP->GetDefinition()!=G4Neutron::Neutron()) result = false; @@ -52,11 +51,9 @@ G4bool G4ParticleHPJENDLHEData::IsApplicable(const G4DynamicParticle*aP, const G else if ( !(vElement[ anE->GetIndex() ]) ) result = false; return result; - } - G4ParticleHPJENDLHEData::G4ParticleHPJENDLHEData() { for ( std::map< G4int , std::map< G4int , G4PhysicsVector* >* >::iterator itZ = mIsotope.begin(); @@ -77,31 +74,23 @@ G4ParticleHPJENDLHEData::G4ParticleHPJENDLHEData() } mIsotope.clear(); } - G4ParticleHPJENDLHEData::G4ParticleHPJENDLHEData( G4String reaction , G4ParticleDefinition* pd ) -:G4VCrossSectionDataSet( "JENDLHE"+reaction+"CrossSection" ) + : G4VCrossSectionDataSet( "JENDLHE"+reaction+"CrossSection" ) { reactionName = reaction; BuildPhysicsTable( *pd ); } - G4ParticleHPJENDLHEData::~G4ParticleHPJENDLHEData() { - ; - //delete theCrossSections; } - void G4ParticleHPJENDLHEData::BuildPhysicsTable( const G4ParticleDefinition& aP ) { - -// if ( &aP != G4Neutron::Neutron() ) -// throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); particleName = aP.GetParticleName(); G4String baseName = G4FindDataDir( "G4NEUTRONHPDATA" ); @@ -111,36 +100,33 @@ void G4ParticleHPJENDLHEData::BuildPhysicsTable( const G4ParticleDefinition& aP G4String filename; -// Create JENDL_HE data -// Create map element or isotope + // Create JENDL_HE data + // Create map element or isotope - size_t numberOfElements = G4Element::GetNumberOfElements(); - //theCrossSections = new G4PhysicsTable( numberOfElements ); + std::size_t numberOfElements = G4Element::GetNumberOfElements(); // make a PhysicsVector for each element static G4ThreadLocal G4ElementTable *theElementTable = 0 ; if (!theElementTable) theElementTable= G4Element::GetElementTable(); vElement.clear(); vElement.resize( numberOfElements ); - for ( size_t i = 0; i < numberOfElements; ++i ) + for ( std::size_t i = 0; i < numberOfElements; ++i ) { - G4Element* theElement = (*theElementTable)[i]; vElement[i] = false; // isotope - G4int nIso = (*theElementTable)[i]->GetNumberOfIsotopes(); - G4int Z = static_cast ((*theElementTable)[i]->GetZ()); + G4int nIso = (G4int)(*theElementTable)[i]->GetNumberOfIsotopes(); + G4int Z = (G4int)(*theElementTable)[i]->GetZ(); if ( nIso!=0 ) { G4bool found_at_least_one = false; - for ( G4int i1 = 0; i1 < nIso; i1++ ) + for ( G4int i1 = 0; i1 < nIso; ++i1 ) { G4int A = theElement->GetIsotope(i1)->GetN(); if ( isThisNewIsotope( Z , A ) ) - { - + { std::stringstream ss; ss << dirName << aFSType << Z << "_" << A << "_" << theNames.GetName( Z-1 ); filename = ss.str(); @@ -150,34 +136,24 @@ void G4ParticleHPJENDLHEData::BuildPhysicsTable( const G4ParticleDefinition& aP file >> dummy; if ( file.good() ) { - - //G4cout << "Found file for Z=" << Z << ", A=" << A << ", as " << filename << G4endl; found_at_least_one = true; // read the file G4PhysicsVector* aPhysVec = readAFile ( &file ); - - //Regist - registAPhysicsVector( Z , A , aPhysVec ); - } else { //G4cout << "No file for "<< reactionType << " Z=" << Z << ", A=" << A << G4endl; } - file.close(); - } else { found_at_least_one = TRUE; } } - if ( found_at_least_one ) vElement[i] = true; - } else { @@ -187,7 +163,6 @@ void G4ParticleHPJENDLHEData::BuildPhysicsTable( const G4ParticleDefinition& aP for ( G4int i1 = 0; i1 < theStableOnes.GetNumberOfIsotopes( static_cast(theElement->GetZ() ) ); i1++) { G4int A = theStableOnes.GetIsotopeNucleonCount( first+i1 ); - if ( isThisNewIsotope( Z , A ) ) { @@ -209,13 +184,11 @@ void G4ParticleHPJENDLHEData::BuildPhysicsTable( const G4ParticleDefinition& aP //Regist the PhysicsVector registAPhysicsVector( Z , A , aPhysVec ); - } else { //G4cout << "No file for "<< reactionType << " Z=" << Z << ", A=" << A << G4endl; } - file.close(); } else @@ -225,79 +198,57 @@ void G4ParticleHPJENDLHEData::BuildPhysicsTable( const G4ParticleDefinition& aP } if ( found_at_least_one ) vElement[i] = true; - } - } - } - void G4ParticleHPJENDLHEData::DumpPhysicsTable(const G4ParticleDefinition& aP) { if(&aP!=G4Neutron::Neutron()) throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); -// G4cout << "G4ParticleHPJENDLHEData::DumpPhysicsTable still to be implemented"<20MeV - // Thus - // Not take account of Doppler broadening - // also - // Not take account of Target thermal motions + // Thus not taking into account of Doppler broadening + // also not taking into account of Target thermal motions G4double result = 0; G4double ek = aP->GetKineticEnergy(); - G4int nIso = anE->GetNumberOfIsotopes(); - G4int Z = static_cast ( anE->GetZ() ); + G4int nIso = (G4int)anE->GetNumberOfIsotopes(); + G4int Z = (G4int)anE->GetZ(); if ( nIso!=0 ) { - for ( G4int i1 = 0; i1 < nIso; i1++ ) + for ( G4int i1 = 0; i1 < nIso; ++i1 ) { - G4int A = anE->GetIsotope(i1)->GetN(); - G4double frac = anE->GetRelativeAbundanceVector()[ i1 ]; // This case do NOT request "*perCent". - + G4double frac = anE->GetRelativeAbundanceVector()[ i1 ]; // This case does NOT request "*perCent". result += frac * getXSfromThisIsotope( Z , A , ek ); - //G4cout << reactionType << " XS in barn " << Z << " " << A << " " << frac << " " << getXSfromThisIsotope( Z , A , ek )/barn << G4endl; - } } else { - G4StableIsotopes theStableOnes; G4int first = theStableOnes.GetFirstIsotope( Z ); - for ( G4int i1 = 0; i1 < theStableOnes.GetNumberOfIsotopes( static_cast(anE->GetZ() ) ); i1++) + for ( G4int i1 = 0; i1 < theStableOnes.GetNumberOfIsotopes( (G4int)anE->GetZ() ); ++i1) { - G4int A = theStableOnes.GetIsotopeNucleonCount( first+i1 ); - G4double frac = theStableOnes.GetAbundance( first+i1 )*perCent; // This case request "*perCent". - + G4double frac = theStableOnes.GetAbundance( first+i1 )*perCent; // This case requests "*perCent". result += frac * getXSfromThisIsotope( Z , A , ek ); - //G4cout << reactionType << " XS in barn " << Z << " " << A << " " << frac << " " << getXSfromThisIsotope( Z , A , ek )/barn << G4endl; - } } return result; - } - G4PhysicsVector* G4ParticleHPJENDLHEData::readAFile ( std::fstream* file ) { - G4int dummy; G4int len; *file >> dummy; @@ -306,7 +257,7 @@ G4PhysicsVector* G4ParticleHPJENDLHEData::readAFile ( std::fstream* file ) std::vector< G4double > v_e; std::vector< G4double > v_xs; - for ( G4int i = 0 ; i < len ; i++ ) + for ( G4int i = 0 ; i < len ; ++i ) { G4double e; G4double xs; @@ -318,18 +269,17 @@ G4PhysicsVector* G4ParticleHPJENDLHEData::readAFile ( std::fstream* file ) v_xs.push_back( xs*barn ); } - G4PhysicsFreeVector* aPhysVec = new G4PhysicsFreeVector( static_cast< size_t >( len ) , v_e.front() , v_e.back() ); + G4PhysicsFreeVector* aPhysVec = new G4PhysicsFreeVector( static_cast< std::size_t >( len ) , v_e.front() , v_e.back() ); - for ( G4int i = 0 ; i < len ; i++ ) + for ( G4int i = 0 ; i < len ; ++i ) { - aPhysVec->PutValues( static_cast< size_t >( i ) , v_e[ i ] , v_xs[ i ] ); + aPhysVec->PutValues( static_cast< std::size_t >( i ) , v_e[ i ] , v_xs[ i ] ); } return aPhysVec; } - G4bool G4ParticleHPJENDLHEData::isThisInMap( G4int z , G4int a ) { if ( mIsotope.find ( z ) == mIsotope.end() ) return false; @@ -338,15 +288,11 @@ G4bool G4ParticleHPJENDLHEData::isThisInMap( G4int z , G4int a ) } - void G4ParticleHPJENDLHEData::registAPhysicsVector( G4int Z , G4int A , G4PhysicsVector* aPhysVec ) { - - std::pair< G4int , G4PhysicsVector* > aPair = std::pair < G4int , G4PhysicsVector* > ( A , aPhysVec ); - - std::map < G4int , std::map< G4int , G4PhysicsVector* >* >::iterator itm; - itm = mIsotope.find ( Z ); - if ( itm != mIsotope.end() ) + std::pair< G4int , G4PhysicsVector* > aPair = std::pair < G4int , G4PhysicsVector* > ( A , aPhysVec ); + auto itm = mIsotope.find ( Z ); + if ( itm != mIsotope.cend() ) { itm->second->insert ( aPair ); } @@ -356,32 +302,26 @@ void G4ParticleHPJENDLHEData::registAPhysicsVector( G4int Z , G4int A , G4Physic aMap->insert ( aPair ); mIsotope.insert( std::pair< G4int , std::map< G4int , G4PhysicsVector* >* > ( Z , aMap ) ); } - } - G4double G4ParticleHPJENDLHEData::getXSfromThisIsotope( G4int Z , G4int A , G4double ek ) { - G4double aXSection = 0.0; G4bool outOfRange; G4PhysicsVector* aPhysVec; if ( mIsotope.find ( Z )->second->find ( A ) != mIsotope.find ( Z )->second->end() ) { - aPhysVec = mIsotope.find ( Z )->second->find ( A )->second; aXSection = aPhysVec->GetValue( ek , outOfRange ); - } else - { - - //Select closest one in the same Z - std::map < G4int , G4PhysicsVector* >::iterator it; + { + // Select closest one in the same Z G4int delta0 = 99; // no mean for 99 - for ( it = mIsotope.find ( Z )->second->begin() ; it != mIsotope.find ( Z )->second->end() ; it++ ) + for ( auto it = mIsotope.find ( Z )->second->cbegin(); + it!= mIsotope.find ( Z )->second->cend(); ++it ) { G4int delta = std::abs( A - it->first ); if ( delta < delta0 ) delta0 = delta; @@ -390,7 +330,7 @@ G4double G4ParticleHPJENDLHEData::getXSfromThisIsotope( G4int Z , G4int A , G4do // Randomize of selection larger or smaller than A if ( G4UniformRand() < 0.5 ) delta0 *= -1; G4int A1 = A + delta0; - if ( mIsotope.find ( Z )->second->find ( A1 ) != mIsotope.find ( Z )->second->end() ) + if ( mIsotope.find ( Z )->second->find ( A1 ) != mIsotope.find ( Z )->second->cend() ) { aPhysVec = mIsotope.find ( Z )->second->find ( A1 )->second; } @@ -402,9 +342,7 @@ G4double G4ParticleHPJENDLHEData::getXSfromThisIsotope( G4int Z , G4int A , G4do aXSection = aPhysVec->GetValue( ek , outOfRange ); // X^(2/3) factor - //aXSection *= std::pow ( 1.0*A/ A1 , 2.0 / 3.0 ); aXSection *= G4Pow::GetInstance()->A23( 1.0*A/ A1 ); - } return aXSection; diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPManager.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPManager.cc index 9bbe6873e7..5100b1174b 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPManager.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPManager.cc @@ -38,7 +38,7 @@ #include "G4HadronicException.hh" #include "G4Exception.hh" -G4ParticleHPManager* G4ParticleHPManager::instance = 0; +G4ParticleHPManager* G4ParticleHPManager::instance = nullptr; G4ParticleHPManager::G4ParticleHPManager() : verboseLevel(1) @@ -49,18 +49,18 @@ G4ParticleHPManager::G4ParticleHPManager() ,PRODUCE_FISSION_FRAGMENTS(false) ,USE_WENDT_FISSION_MODEL(false) ,USE_NRESP71_MODEL(false) -,theElasticCrossSections(0) -,theCaptureCrossSections(0) -,theFissionCrossSections(0) -,theElasticFSs(0) -,theCaptureFSs(0) -,theFissionFSs(0) -,theTSCoherentCrossSections(0) -,theTSIncoherentCrossSections(0) -,theTSInelasticCrossSections(0) -,theTSCoherentFinalStates(0) -,theTSIncoherentFinalStates(0) -,theTSInelasticFinalStates(0) +,theElasticCrossSections(nullptr) +,theCaptureCrossSections(nullptr) +,theFissionCrossSections(nullptr) +,theElasticFSs(nullptr) +,theCaptureFSs(nullptr) +,theFissionFSs(nullptr) +,theTSCoherentCrossSections(nullptr) +,theTSIncoherentCrossSections(nullptr) +,theTSInelasticCrossSections(nullptr) +,theTSCoherentFinalStates(nullptr) +,theTSIncoherentFinalStates(nullptr) +,theTSInelasticFinalStates(nullptr) { messenger = new G4ParticleHPMessenger( this ); } @@ -73,7 +73,7 @@ G4ParticleHPManager::~G4ParticleHPManager() G4ParticleHPManager* G4ParticleHPManager::GetInstance() { static G4ParticleHPManager manager; - if (!instance) + if (instance == nullptr) { instance = &manager; } @@ -104,7 +104,7 @@ void G4ParticleHPManager::GetDataStream( G4String filename , std::istringstream& if ( in->good() ) { // Use the compressed file - G4int file_size = in->tellg(); + std::streamoff file_size = in->tellg(); in->seekg( 0 , std::ios::beg ); Bytef* compdata = new Bytef[ file_size ]; @@ -133,7 +133,7 @@ void G4ParticleHPManager::GetDataStream( G4String filename , std::istringstream& std::ifstream thefData( filename , std::ios::in | std::ios::ate ); if ( thefData.good() ) { - G4int file_size = thefData.tellg(); + std::streamoff file_size = thefData.tellg(); thefData.seekg( 0 , std::ios::beg ); char* filedata = new char[ file_size ]; while ( thefData ) @@ -218,8 +218,7 @@ void G4ParticleHPManager::DumpDataSource() { G4cout << "Data source of this Partile HP calculation are " << G4endl; - for ( std::map< G4String , G4String >::iterator - it = mDataEvaluation.begin() ; it != mDataEvaluation.end() ; it++ ) + for (auto it = mDataEvaluation.cbegin(); it != mDataEvaluation.cend(); ++it) { G4cout << it->first << " " << it->second << G4endl; } @@ -231,7 +230,7 @@ G4PhysicsTable* G4ParticleHPManager::GetInelasticCrossSections(const G4ParticleD if ( theInelasticCrossSections.end() != theInelasticCrossSections.find( particle ) ) return theInelasticCrossSections.find( particle )->second; else - return 0; + return nullptr; } void G4ParticleHPManager::RegisterInelasticCrossSections( const G4ParticleDefinition* particle, G4PhysicsTable* val ) @@ -244,7 +243,7 @@ std::vector* G4ParticleHPManager::GetInelasticFinalSta if ( theInelasticFSs.end() != theInelasticFSs.find( particle ) ) return theInelasticFSs.find( particle )->second; else - return 0; + return nullptr; } void G4ParticleHPManager::RegisterInelasticFinalStates( const G4ParticleDefinition* particle , std::vector* val ) @@ -253,7 +252,8 @@ void G4ParticleHPManager::RegisterInelasticFinalStates( const G4ParticleDefiniti } -void G4ParticleHPManager::DumpSetting() { +void G4ParticleHPManager::DumpSetting() +{ G4cout << G4endl << "=======================================================" << G4endl << "====== ParticleHP Physics Parameters ========" << G4endl diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPPhotonDist.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPPhotonDist.cc index d2de88d68a..1b70186202 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPPhotonDist.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPPhotonDist.cc @@ -54,7 +54,6 @@ G4bool G4ParticleHPPhotonDist::InitMean(std::istream & aDataFile) { - G4bool result = true; if(aDataFile >> repFlag) { @@ -62,13 +61,13 @@ G4bool G4ParticleHPPhotonDist::InitMean(std::istream & aDataFile) aDataFile >> targetMass; if(repFlag==1) { - // multiplicities + // multiplicities aDataFile >> nDiscrete; disType = new G4int[nDiscrete]; energy = new G4double[nDiscrete]; //actualMult = new G4int[nDiscrete]; theYield = new G4ParticleHPVector[nDiscrete]; - for (G4int i=0; i> disType[i]>>energy[i]; energy[i]*=eV; @@ -81,12 +80,11 @@ G4bool G4ParticleHPPhotonDist::InitMean(std::istream & aDataFile) aDataFile >> theBaseEnergy; theBaseEnergy*=eV; aDataFile >> theInternalConversionFlag; - // theInternalConversionFlag == 1 No IC, theInternalConversionFlag == 2 with IC aDataFile >> nGammaEnergies; theLevelEnergies = new G4double[nGammaEnergies]; theTransitionProbabilities = new G4double[nGammaEnergies]; if(theInternalConversionFlag == 2) thePhotonTransitionFraction = new G4double[nGammaEnergies]; - for(G4int ii=0; ii> isoFlag; if (isoFlag != 1) { if (repFlag == 2) G4cout << "G4ParticleHPPhotonDist: repFlag == 2 && isoFlag != 1 is unexpected! If you use G4ND3.x, then please report to Geant4 HyperNews. " << G4endl; aDataFile >> tabulationType >> nDiscrete2 >> nIso; -//080731 - if (theGammas != NULL && nDiscrete2 != nDiscrete) - G4cout << "080731c G4ParticleHPPhotonDist nDiscrete2 != nDiscrete, It looks like something wrong in your NDL files. Please update the latest. If you still have this messages after the update, then please report to Geant4 Hyper News." << G4endl; + if (theGammas != NULL && nDiscrete2 != nDiscrete) + G4cout << "080731c G4ParticleHPPhotonDist nDiscrete2 != nDiscrete, It looks like something wrong in your NDL files. Please update the latest. If you still have this messages after the update, then please report to Geant4 Hyper News." << G4endl; - // The order of cross section (InitPartials) and distribution - // (InitAngular here) data are different, we have to re-coordinate - // consistent data order. - std::vector < G4double > vct_gammas_par; - std::vector < G4double > vct_shells_par; - std::vector < G4int > vct_primary_par; - std::vector < G4int > vct_distype_par; - std::vector < G4ParticleHPVector* > vct_pXS_par; - if ( theGammas != NULL && theShells != NULL ) - { - //copy the cross section data - for ( i = 0 ; i < nDiscrete ; i++ ) - { - vct_gammas_par.push_back( theGammas[ i ] ); - vct_shells_par.push_back( theShells[ i ] ); - vct_primary_par.push_back( isPrimary[ i ] ); - vct_distype_par.push_back( disType[ i ] ); - G4ParticleHPVector* hpv = new G4ParticleHPVector; - *hpv = thePartialXsec[ i ]; - vct_pXS_par.push_back( hpv ); - } - } - if ( theGammas == NULL ) theGammas = new G4double[nDiscrete2]; - if ( theShells == NULL ) theShells = new G4double[nDiscrete2]; -//080731 - - for (i=0; i< nIso; i++) // isotropic photons + // The order of cross section (InitPartials) and distribution + // (InitAngular here) data are different, we have to re-coordinate + // consistent data order. + std::vector < G4double > vct_gammas_par; + std::vector < G4double > vct_shells_par; + std::vector < G4int > vct_primary_par; + std::vector < G4int > vct_distype_par; + std::vector < G4ParticleHPVector* > vct_pXS_par; + if ( theGammas != nullptr && theShells != nullptr ) { - aDataFile >> theGammas[i] >> theShells[i]; - theGammas[i]*=eV; - theShells[i]*=eV; + //copy the cross section data + for ( i = 0 ; i < nDiscrete ; ++i ) + { + vct_gammas_par.push_back( theGammas[ i ] ); + vct_shells_par.push_back( theShells[ i ] ); + vct_primary_par.push_back( isPrimary[ i ] ); + vct_distype_par.push_back( disType[ i ] ); + G4ParticleHPVector* hpv = new G4ParticleHPVector; + *hpv = thePartialXsec[ i ]; + vct_pXS_par.push_back( hpv ); + } + } + if ( theGammas == nullptr ) theGammas = new G4double[nDiscrete2]; + if ( theShells == nullptr ) theShells = new G4double[nDiscrete2]; + + for (i=0; i< nIso; ++i) // isotropic photons + { + aDataFile >> theGammas[i] >> theShells[i]; + theGammas[i]*=eV; + theShells[i]*=eV; } nNeu = new G4int [nDiscrete2-nIso]; if(tabulationType==1)theLegendre=new G4ParticleHPLegendreTable *[nDiscrete2-nIso]; if(tabulationType==2)theAngular =new G4ParticleHPAngularP *[nDiscrete2-nIso]; - for(i=nIso; i< nDiscrete2; i++) + for(i=nIso; i< nDiscrete2; ++i) { if(tabulationType==1) { @@ -176,7 +170,7 @@ void G4ParticleHPPhotonDist::InitAngular(std::istream & aDataFile) theShells[i]*=eV; theLegendre[i-nIso]=new G4ParticleHPLegendreTable[nNeu[i-nIso]]; theLegendreManager.Init(aDataFile); - for (ii=0; ii 0 ) - { - //Reordering cross section data to corrsponding distribution data - for ( i = 0 ; i < nDiscrete ; i++ ) + + if ( vct_gammas_par.size() > 0 ) + { + // Reordering cross section data to corrsponding distribution data + for ( i = 0 ; i < nDiscrete ; ++i ) + { + for ( G4int j = 0 ; j < nDiscrete ; ++j ) { - for ( G4int j = 0 ; j < nDiscrete ; j++ ) - { - // Checking gamma and shell to identification - if ( theGammas[ i ] == vct_gammas_par [ j ] && theShells [ i ] == vct_shells_par[ j ] ) - { - isPrimary [ i ] = vct_primary_par [ j ]; - disType [ i ] = vct_distype_par [ j ]; - thePartialXsec[ i ] = ( *( vct_pXS_par[ j ] ) ); - } - } + // Checking gamma and shell to identification + if ( theGammas[ i ] == vct_gammas_par [ j ] && theShells [ i ] == vct_shells_par[ j ] ) + { + isPrimary [ i ] = vct_primary_par [ j ]; + disType [ i ] = vct_distype_par [ j ]; + thePartialXsec[ i ] = ( *( vct_pXS_par[ j ] ) ); + } } - //Garbage collection - for ( std::vector < G4ParticleHPVector* >::iterator - it = vct_pXS_par.begin() ; it != vct_pXS_par.end() ; it++ ) - { - delete *it; - } - } -//080731 + } + // Garbage collection + for ( auto it = vct_pXS_par.cbegin() ; it != vct_pXS_par.cend() ; ++it ) + { + delete *it; + } + } } } - void G4ParticleHPPhotonDist::InitEnergies(std::istream & aDataFile) { G4int i, energyDistributionsNeeded = 0; - for (i=0; i> dummy; probs[i].Init(aDataFile, eV); @@ -268,26 +259,19 @@ void G4ParticleHPPhotonDist::InitPartials(std::istream& aDataFile, isPrimary = new G4int[nDiscrete]; disType = new G4int[nDiscrete]; thePartialXsec = new G4ParticleHPVector[nDiscrete]; - for(i=0; i>theGammas[i]>>theShells[i]>>isPrimary[i]>>disType[i]; theGammas[i]*=eV; theShells[i]*=eV; thePartialXsec[i].Init(aDataFile, eV); } - - //G4cout << "G4ParticleHPPhotonDist::InitPartials Test " << G4endl; - //G4cout << "G4ParticleHPPhotonDist::InitPartials nDiscrete " << nDiscrete << G4endl; - //G4ParticleHPVector* aHP = new G4ParticleHPVector; - //aHP->Check(1); } G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) { - - //G4cout << "G4ParticleHPPhotonDist::GetPhotons repFlag " << repFlag << G4endl; - // the partial cross-section case is not in this yet. @@@@ << 070601 TK add partial - if ( actualMult.Get() == NULL ) { + // the partial cross-section case is not all in this yet. + if ( actualMult.Get() == nullptr ) { actualMult.Get() = new std::vector( nDiscrete ); } G4int i, ii, iii; @@ -296,9 +280,9 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) if (repFlag==1) { G4double current=0; - for (i = 0; i < nDiscrete; i++) { + for (i = 0; i < nDiscrete; ++i) { current = theYield[i].GetY(anEnergy); - actualMult.Get()->at(i) = G4Poisson(current); // max cut-off still missing @@@ + actualMult.Get()->at(i) = (G4int)G4Poisson(current); // max cut-off still missing @@@ if (nDiscrete == 1 && current < 1.0001) { actualMult.Get()->at(i) = static_cast(current); if(current<1) @@ -309,8 +293,7 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) } nSecondaries += actualMult.Get()->at(i); } - //G4cout << "nSecondaries " << nSecondaries << " anEnergy " << anEnergy/eV << G4endl; - for (i = 0; i < nSecondaries; i++) { + for (i = 0; i < nSecondaries; ++i) { G4ReactionProduct * theOne = new G4ReactionProduct; theOne->SetDefinition(G4Gamma::Gamma()); thePhotons->push_back(theOne); @@ -326,62 +309,54 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) temp = partials[ 0 ]->GetY(anEnergy); //@@@ look at, seems fishy G4double maximumE = temp->GetX( temp->GetVectorLength()-1 ); // This is an assumption. - //G4cout << "start " << actualMult[ 0 ] << " maximumE " << maximumE/eV << G4endl; - std::vector< G4double > photons_e_best( actualMult.Get()->at(0) , 0.0 ); G4double best = DBL_MAX; G4int maxTry = 1000; - for (G4int j = 0; j < maxTry; j++) { + for (G4int j = 0; j < maxTry; ++j) { std::vector photons_e(actualMult.Get()->at(0), 0.0); - for (std::vector::iterator it = photons_e.begin(); it < photons_e.end(); it++) { + for (auto it = photons_e.begin(); it < photons_e.end(); ++it) { *it = temp->Sample(); } - if (std::accumulate(photons_e.begin(), photons_e.end(), 0.0) > maximumE) { - if (std::accumulate(photons_e.begin(), photons_e.end(), 0.0) < best) + if (std::accumulate(photons_e.cbegin(), photons_e.cend(), 0.0) > maximumE) { + if (std::accumulate(photons_e.cbegin(), photons_e.cend(), 0.0) < best) photons_e_best = photons_e; continue; } else { G4int iphot = 0; - for (std::vector::iterator it = photons_e.begin(); it < photons_e.end(); it++) { + for (auto it = photons_e.cbegin(); it < photons_e.cend(); ++it) { thePhotons->operator[](iphot)->SetKineticEnergy(*it); // Replace index count, which was not incremented, // with iphot, which is, as per Artem Zontikov, // bug report 2167 - iphot++; - } - // G4cout << "OK " << actualMult[0] << " j " << j << " total photons E " - // << std::accumulate(photons_e.begin(), photons_e.end(), 0.0)/eV << " ratio " - // << std::accumulate(photons_e.begin(), photons_e.end(), 0.0)/maximumE - // << G4endl; - + ++iphot; + } + break; } - //G4cout << "Not Good " << actualMult[0] << " j " << j << " total photons E " - // << best/eV << " ratio " << best / maximumE - // << G4endl; } - // TKDB delete temp; } else { // discrete thePhotons->operator[](count)->SetKineticEnergy(energy[i]); } - count++; - if (count > nSecondaries) throw G4HadronicException(__FILE__, __LINE__, "G4ParticleHPPhotonDist::GetPhotons inconsistency"); + ++count; + if (count > nSecondaries) + throw G4HadronicException(__FILE__, __LINE__, "G4ParticleHPPhotonDist::GetPhotons inconsistency"); } } else { // nDiscrete != 1 or nPartials != 1 - for (i=0; iat(i); ii++) { + for (i=0; iat(i); ++ii) { if (disType[i] == 1) { // continuum G4double sum=0, run=0; - for (iii = 0; iii < nPartials; iii++) sum+=probs[iii].GetY(anEnergy); + for (iii = 0; iii < nPartials; ++iii) + sum+=probs[iii].GetY(anEnergy); G4double random = G4UniformRand(); G4int theP = 0; - for (iii = 0; iii < nPartials; iii++) { + for (iii = 0; iii < nPartials; ++iii) { run+=probs[iii].GetY(anEnergy); theP = iii; if(randomoperator[](count)->SetKineticEnergy(energy[i]); } - count++; - if (count > nSecondaries) throw G4HadronicException(__FILE__, __LINE__, "G4ParticleHPPhotonDist::GetPhotons inconsistency"); + ++count; + if (count > nSecondaries) + throw G4HadronicException(__FILE__, __LINE__, "G4ParticleHPPhotonDist::GetPhotons inconsistency"); } } } // now do the angular distributions... if (isoFlag == 1) { - for (i=0; i< nSecondaries; i++) + for (i=0; i< nSecondaries; ++i) { G4double costheta = 2.*G4UniformRand()-1; G4double theta = std::acos(costheta); @@ -416,19 +392,18 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) G4double en = thePhotons->operator[](i)->GetTotalEnergy(); G4ThreeVector temp(en*sinth*std::cos(phi), en*sinth*std::sin(phi), en*std::cos(theta) ); thePhotons->operator[](i)->SetMomentum( temp ) ; - // G4cout << "Isotropic distribution in PhotonDist"<operator[](i)->GetTotalEnergy(); - for(ii=0; iianEnergy) @@ -456,8 +431,6 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) } G4ParticleHPLegendreStore aStore(2); aStore.SetCoeff(1, &(theLegendre[ii-nIso][it])); - //aStore.SetCoeff(0, &(theLegendre[ii-nIso][it-1])); - //TKDB 110512 if ( it > 0 ) { aStore.SetCoeff(0, &(theLegendre[ii-nIso][it-1])); @@ -478,7 +451,7 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) { // tabulation of probabilities. G4int it(0); - for (iii=0; iiianEnergy) @@ -498,14 +471,13 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) } else if (repFlag == 2) { G4double * running = new G4double[nGammaEnergies]; running[0]=theTransitionProbabilities[0]; - //G4int i; //declaration at 284th - for(i=1; iSetDefinition(G4Electron::Electron()); //Bug reported Chao Zhang (Chao.Zhang@usd.edu), Dongming Mei(Dongming.Mei@usd.edu) Feb. 25, 2009 //But never enter at least with G4NDL3.13 - totalEnergy += G4Electron::Electron()->GetPDGMass(); //proposed correction: add this line for electron + totalEnergy += G4Electron::Electron()->GetPDGMass(); // proposed correction: add this line for electron } theOne->SetTotalEnergy(totalEnergy); if( isoFlag == 1 ) @@ -539,11 +511,11 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) else { G4double currentEnergy = theOne->GetTotalEnergy(); - for(ii=0; iianEnergy) @@ -597,7 +569,7 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) { // tabulation of probabilities. G4int itt(0); - for (iii=0; iiianEnergy) @@ -619,27 +591,22 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) } else if( repFlag==0 ) { + if ( thePartialXsec == 0 ) + { + return thePhotons; + } -// TK add - if ( thePartialXsec == 0 ) - { - //G4cout << "repFlag is 0, but no PartialXsec data" << G4endl; - //G4cout << "This is not support yet." << G4endl; - return thePhotons; - } - -// Partial Case + // Partial Case G4ReactionProduct * theOne = new G4ReactionProduct; theOne->SetDefinition( G4Gamma::Gamma() ); thePhotons->push_back( theOne ); -// Energy + // Energy - //G4cout << "Partial Case nDiscrete " << nDiscrete << G4endl; G4double sum = 0.0; std::vector < G4double > dif( nDiscrete , 0.0 ); - for ( G4int j = 0 ; j < nDiscrete ; j++ ) + for ( G4int j = 0 ; j < nDiscrete ; ++j ) { G4double x = thePartialXsec[ j ].GetXsec( anEnergy ); // x in barn if ( x > 0 ) @@ -647,13 +614,12 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) sum += x; } dif [ j ] = sum; - //G4cout << "j " << j << ", x " << x << ", dif " << dif [ j ] << G4endl; } G4double rand = G4UniformRand(); G4int iphoton = 0; - for ( G4int j = 0 ; j < nDiscrete ; j++ ) + for ( G4int j = 0 ; j < nDiscrete ; ++j ) { G4double y = rand*sum; if ( dif [ j ] > y ) @@ -662,57 +628,42 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) break; } } - //G4cout << "iphoton " << iphoton << G4endl; - //G4cout << "photon energy " << theGammas[ iphoton ] /eV << G4endl; // Statistically suppress the photon according to reaction cross section // Fix proposed by Artem Zontikov, Bug report #1824 if (theReactionXsec) { if (thePartialXsec[iphoton].GetXsec(anEnergy)/theReactionXsec->GetXsec(anEnergy) < G4UniformRand() ) { delete thePhotons; - thePhotons = 0; + thePhotons = nullptr; return thePhotons; } } -// Angle + // Angle G4double cosTheta = 0.0; // mu if ( isoFlag == 1 ) { - -// Isotropic Case + // Isotropic Case cosTheta = 2.*G4UniformRand()-1; - } else { - if ( iphoton < nIso ) { - -// still Isotropic + // still Isotropic cosTheta = 2.*G4UniformRand()-1; - } else { - - //G4cout << "Not Isotropic and isoFlag " << isoFlag << G4endl; - //G4cout << "tabulationType " << tabulationType << G4endl; - //G4cout << "nDiscrete2 " << nDiscrete2 << G4endl; - //G4cout << "nIso " << nIso << G4endl; - //G4cout << "size of nNeu " << nDiscrete2-nIso << G4endl; - //G4cout << "nNeu[iphoton-nIso] " << nNeu[iphoton-nIso] << G4endl; - if ( tabulationType == 1 ) { -// legendre polynomials + // Legendre polynomials G4int iangle = 0; - for ( G4int j = 0 ; j < nNeu [ iphoton - nIso ] ; j++ ) + for ( G4int j = 0 ; j < nNeu [ iphoton - nIso ] ; ++j ) { iangle = j; if ( theLegendre[ iphoton - nIso ][ j ].GetEnergy() > anEnergy ) break; @@ -723,27 +674,24 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) aStore.SetCoeff( 0 , &( theLegendre[ iphoton - nIso ][ iangle - 1 ] ) ); cosTheta = aStore.SampleMax( anEnergy ); - } else if ( tabulationType == 2 ) { - -// tabulation of probabilities. + // tabulation of probabilities. G4int iangle = 0; - for ( G4int j = 0 ; j < nNeu [ iphoton - nIso ] ; j++ ) + for ( G4int j = 0 ; j < nNeu [ iphoton - nIso ] ; ++j ) { iangle = j; if ( theAngular[ iphoton - nIso ][ j ].GetEnergy() > anEnergy ) break; } - - cosTheta = theAngular[iphoton-nIso][ iangle ].GetCosTh(); // no interpolation yet @@ - + cosTheta = theAngular[iphoton-nIso][ iangle ].GetCosTh(); + // no interpolation yet @@ } } } -// Set + // Set G4double phi = twopi*G4UniformRand(); G4double theta = std::acos( cosTheta ); G4double sinTheta = std::sin( theta ); @@ -752,13 +700,11 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy) G4ThreeVector direction ( sinTheta*std::cos( phi ) , sinTheta * std::sin( phi ) , cosTheta ); G4ThreeVector photonP = photonE * direction; thePhotons->operator[]( 0 )->SetMomentum( photonP ) ; - } else { delete thePhotons; - thePhotons = 0; // no gamma data available; some work needed @@@@@@@ + thePhotons = nullptr; // no gamma data available; some work needed @@@@@@@ } return thePhotons; } - diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPProduct.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPProduct.cc index 89257e07f2..67a38eb7a8 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPProduct.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPProduct.cc @@ -44,18 +44,12 @@ G4int G4ParticleHPProduct::GetMultiplicity(G4double anEnergy ) { - //if(theDist == 0) { return 0; } - //151120 TK Modified for solving reproducibility problem if ( theDist == 0 ) { fCache.Get().theCurrentMultiplicity = 0; return 0; } G4double mean = theYield.GetY(anEnergy); - //g G4cout << "G4ParticleHPProduct MEAN NUMBER OF PARTICLES " << mean << " for " << theMass << G4endl; - //if( mean <= 0. ) return 0; - //151120 TK Modified for solving reproducibility problem - //This is also a real fix if ( mean <= 0. ) { fCache.Get().theCurrentMultiplicity = 0; return 0; @@ -63,8 +57,6 @@ G4int G4ParticleHPProduct::GetMultiplicity(G4double anEnergy ) G4int multi; multi = G4int(mean+0.0001); - //if(theMassCode==0) multi = G4Poisson(mean); // @@@@gammas. please X-check this - //080718 #ifdef PHP_AS_HP if ( theMassCode == 0 ) // DELETE THIS: IT MUST BE DONE FOR ALL PARTICLES #endif @@ -78,27 +70,24 @@ G4int G4ParticleHPProduct::GetMultiplicity(G4double anEnergy ) #ifdef PHP_AS_HP multi = G4Poisson ( mean ); #else - if( theMultiplicityMethod == G4HPMultiPoisson ) { - multi = G4Poisson ( mean ); - #ifdef G4VERBOSE - if( std::getenv("G4PHPTEST") && G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) - G4cout << " MULTIPLICITY MULTIPLIED " << multi << " " << theMassCode << G4endl; - #endif - } else { // if( theMultiplicityMethod == G4HPMultiBetweenInts ) { + if( theMultiplicityMethod == G4HPMultiPoisson ) + { + multi = (G4int)G4Poisson ( mean ); + } + else + { G4double radnf = CLHEP::RandFlat::shoot(); G4int imulti = G4int(mean); multi = imulti + G4int(radnf < mean-imulti); - // G4cout << theMass << " multi " << multi << " mean " << mean - // << " radnf " << radnf << " mean-imulti " << mean-imulti << G4endl; } #endif - // multi = int(mean); - // if( CLHEP::RandFlat::shoot() > mean-multi ) multi++; } #ifdef G4PHPDEBUG #ifdef G4VERBOSE if( std::getenv("G4ParticleHPDebug") && G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) - G4cout << "G4ParticleHPProduct::GetMultiplicity " << theMassCode << " " << theMass << " multi " << multi << " mean " << mean << G4endl; + G4cout << "G4ParticleHPProduct::GetMultiplicity " << theMassCode + << " " << theMass << " multi " << multi << " mean " << mean + << G4endl; #endif #endif } @@ -111,49 +100,37 @@ G4int G4ParticleHPProduct::GetMultiplicity(G4double anEnergy ) G4ReactionProductVector * G4ParticleHPProduct::Sample(G4double anEnergy, G4int multi) { - if(theDist == 0) { return 0; } + if(theDist == 0) { return nullptr; } G4ReactionProductVector * result = new G4ReactionProductVector; theDist->SetTarget(fCache.Get().theTarget); theDist->SetProjectileRP(fCache.Get().theProjectileRP); G4int i; -// G4double eMax = GetTarget()->GetMass()+GetNeutron()->GetMass() -// - theActualStateQValue; G4ReactionProduct * tmp; theDist->ClearHistories(); - for(i=0;iGetVerboseLevel() > 0 ) - G4cout << multi << " " << i << " @@@ G4ParticleHPProduct::Sample " << anEnergy << " Mass " << theMassCode << " " << theMass << G4endl; - #endif + #endif tmp = theDist->Sample(anEnergy, theMassCode, theMass); if(tmp != 0) { result->push_back(tmp); } #ifndef G4PHPDEBUG //GDEB #ifdef G4VERBOSE - if( std::getenv("G4ParticleHPDebug") && tmp != 0 && G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) - G4cout << multi << " " << i << " @@@ G4ParticleHPProduct::Sample " << tmp->GetDefinition()->GetParticleName() << " E= " << tmp->GetKineticEnergy() << G4endl; + if( std::getenv("G4ParticleHPDebug") + && tmp != 0 && G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) + G4cout << multi << " " << i << " @@@ G4ParticleHPProduct::Sample " + << tmp->GetDefinition()->GetParticleName() << " E= " + << tmp->GetKineticEnergy() << G4endl; #endif #endif } if(multi == 0) { tmp = theDist->Sample(anEnergy, theMassCode, theMass); - delete tmp; + delete tmp; } - /* - //080901 TK Comment out, too many secondaries are produced in deuteron reactions - if(theTarget->GetMass()<2*GeV) // @@@ take care of residuals in all cases - { - tmp = theDist->Sample(anEnergy, theMassCode, theMass); - tmp->SetDefinition(G4Proton::Proton()); - if(tmp != 0) { result->push_back(tmp); } - } - */ return result; } diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPThermalScattering.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPThermalScattering.cc index c691ee9740..05be94809a 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPThermalScattering.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPThermalScattering.cc @@ -76,61 +76,58 @@ G4ParticleHPThermalScattering::~G4ParticleHPThermalScattering() } -void G4ParticleHPThermalScattering::clearCurrentFSData() { - if ( incoherentFSs != nullptr ) { - for ( std::map < G4int , std::map < G4double , std::vector < E_isoAng* >* >* >::iterator it = incoherentFSs->begin() ; it != incoherentFSs->end() ; it++ ) - { - std::map < G4double , std::vector < E_isoAng* >* >::iterator itt; - for ( itt = it->second->begin() ; itt != it->second->end() ; itt++ ) +void G4ParticleHPThermalScattering::clearCurrentFSData() +{ + if ( incoherentFSs != nullptr ) + { + for (auto it=incoherentFSs->cbegin(); it!=incoherentFSs->cend(); ++it) + { + for (auto itt=it->second->cbegin(); itt!= it->second->cend(); ++itt) + { + for (auto ittt=itt->second->cbegin(); ittt!=itt->second->cend(); ++ittt) { - std::vector< E_isoAng* >::iterator ittt; - for ( ittt = itt->second->begin(); ittt != itt->second->end() ; ittt++ ) - { - delete *ittt; - } - delete itt->second; + delete *ittt; } - delete it->second; - } + delete itt->second; + } + delete it->second; + } } - if ( coherentFSs != nullptr ) { - for ( std::map < G4int , std::map < G4double , std::vector < std::pair< G4double , G4double >* >* >* >::iterator it = coherentFSs->begin() ; it != coherentFSs->end() ; it++ ) - { - std::map < G4double , std::vector < std::pair< G4double , G4double >* >* >::iterator itt; - for ( itt = it->second->begin() ; itt != it->second->end() ; itt++ ) + if ( coherentFSs != nullptr ) + { + for (auto it=coherentFSs->cbegin(); it!=coherentFSs->cend(); ++it) + { + for (auto itt=it->second->cbegin(); itt!=it->second->cend(); ++itt) + { + for (auto ittt=itt->second->cbegin(); ittt!=itt->second->cend(); ++ittt) { - std::vector < std::pair< G4double , G4double >* >::iterator ittt; - for ( ittt = itt->second->begin(); ittt != itt->second->end() ; ittt++ ) - { - delete *ittt; - } - delete itt->second; + delete *ittt; } - delete it->second; - } + delete itt->second; + } + delete it->second; + } } - if ( inelasticFSs != nullptr ) { - for ( std::map < G4int , std::map < G4double , std::vector < E_P_E_isoAng* >* >* >::iterator it = inelasticFSs->begin() ; it != inelasticFSs->end() ; it++ ) - { - std::map < G4double , std::vector < E_P_E_isoAng* >* >::iterator itt; - for ( itt = it->second->begin() ; itt != it->second->end() ; itt++ ) + if ( inelasticFSs != nullptr ) + { + for (auto it=inelasticFSs->cbegin(); it!=inelasticFSs->cend(); ++it) + { + for (auto itt=it->second->cbegin(); itt!=it->second->cend(); ++itt) + { + for (auto ittt=itt->second->cbegin(); ittt!=itt->second->cend(); ++ittt) { - std::vector < E_P_E_isoAng* >::iterator ittt; - for ( ittt = itt->second->begin(); ittt != itt->second->end() ; ittt++ ) - { - std::vector < E_isoAng* >::iterator it4; - for ( it4 = (*ittt)->vE_isoAngle.begin() ; it4 != (*ittt)->vE_isoAngle.end() ; it4++ ) - { - delete *it4; - } - delete *ittt; - } - delete itt->second; + for (auto it4=(*ittt)->vE_isoAngle.cbegin(); it4!=(*ittt)->vE_isoAngle.cend(); ++it4) + { + delete *it4; + } + delete *ittt; } - delete it->second; - } + delete itt->second; + } + delete it->second; + } } incoherentFSs = nullptr; @@ -139,18 +136,18 @@ void G4ParticleHPThermalScattering::clearCurrentFSData() { } -void G4ParticleHPThermalScattering::BuildPhysicsTable(const G4ParticleDefinition& particle) { +void G4ParticleHPThermalScattering::BuildPhysicsTable(const G4ParticleDefinition& particle) +{ buildPhysicsTable(); theHPElastic->BuildPhysicsTable( particle ); } -std::map < G4double , std::vector < std::pair< G4double , G4double >* >* >* G4ParticleHPThermalScattering::readACoherentFSDATA( G4String name ) +std::map < G4double , std::vector < std::pair< G4double , G4double >* >* >* +G4ParticleHPThermalScattering::readACoherentFSDATA( G4String name ) { + auto aCoherentFSDATA = new std::map < G4double , std::vector < std::pair< G4double , G4double >* >* >; - std::map < G4double , std::vector < std::pair< G4double , G4double >* >* >* aCoherentFSDATA = new std::map < G4double , std::vector < std::pair< G4double , G4double >* >* >; - - //std::ifstream theChannel( name.c_str() ); std::istringstream theChannel(std::ios::in); G4ParticleHPManager::GetInstance()->GetDataStream(name,theChannel); @@ -162,11 +159,12 @@ std::map < G4double , std::vector < std::pair< G4double , G4double >* >* >* G4Pa theChannel >> dummy; // MT G4double temp; theChannel >> temp; - std::vector < std::pair< G4double , G4double >* >* anBragE_P = new std::vector < std::pair< G4double , G4double >* >; + std::vector < std::pair< G4double , G4double >* >* + anBragE_P = new std::vector < std::pair< G4double , G4double >* >; G4int n; theChannel >> n; - for ( G4int i = 0 ; i < n ; i++ ) + for ( G4int i = 0 ; i < n ; ++i ) { G4double Ei; G4double Pi; @@ -181,20 +179,18 @@ std::map < G4double , std::vector < std::pair< G4double , G4double >* >* >* G4Pa } theChannel >> Pi; anBragE_P->push_back ( new std::pair < G4double , G4double > ( Ei , Pi ) ); - //G4cout << "Coherent Elastic " << Ei << " " << Pi << G4endl; } aCoherentFSDATA->insert ( std::pair < G4double , std::vector < std::pair< G4double , G4double >* >* > ( temp , anBragE_P ) ); } - return aCoherentFSDATA; } -std::map < G4double , std::vector < E_P_E_isoAng* >* >* G4ParticleHPThermalScattering::readAnInelasticFSDATA ( G4String name ) +std::map < G4double , std::vector < E_P_E_isoAng* >* >* +G4ParticleHPThermalScattering::readAnInelasticFSDATA ( G4String name ) { - std::map < G4double , std::vector < E_P_E_isoAng* >* >* anT_E_P_E_isoAng = new std::map < G4double , std::vector < E_P_E_isoAng* >* >; + auto anT_E_P_E_isoAng = new std::map < G4double , std::vector < E_P_E_isoAng* >* >; - //std::ifstream theChannel( name.c_str() ); std::istringstream theChannel(std::ios::in); G4ParticleHPManager::GetInstance()->GetDataStream(name,theChannel); @@ -207,19 +203,19 @@ std::map < G4double , std::vector < E_P_E_isoAng* >* >* G4ParticleHPThermalScatt std::vector < E_P_E_isoAng* >* vE_P_E_isoAng = new std::vector < E_P_E_isoAng* >; G4int n; theChannel >> n; - for ( G4int i = 0 ; i < n ; i++ ) + for ( G4int i = 0 ; i < n ; ++i ) { vE_P_E_isoAng->push_back ( readAnE_P_E_isoAng ( &theChannel ) ); } anT_E_P_E_isoAng->insert ( std::pair < G4double , std::vector < E_P_E_isoAng* >* > ( temp , vE_P_E_isoAng ) ); } - //theChannel.close(); return anT_E_P_E_isoAng; } -E_P_E_isoAng* G4ParticleHPThermalScattering::readAnE_P_E_isoAng( std::istream* file ) // for inelastic +E_P_E_isoAng* +G4ParticleHPThermalScattering::readAnE_P_E_isoAng( std::istream* file ) // for inelastic { E_P_E_isoAng* aData = new E_P_E_isoAng; @@ -234,7 +230,7 @@ E_P_E_isoAng* G4ParticleHPThermalScattering::readAnE_P_E_isoAng( std::istream* f *file >> nep; *file >> nl; aData->n = nep/nl; - for ( G4int i = 0 ; i < aData->n ; i++ ) + for ( G4int i = 0 ; i < aData->n ; ++i ) { G4double prob; E_isoAng* anE_isoAng = new E_isoAng; @@ -246,19 +242,18 @@ E_P_E_isoAng* G4ParticleHPThermalScattering::readAnE_P_E_isoAng( std::istream* f *file >> prob; aData->prob.push_back( prob ); //G4cout << "G4ParticleHPThermalScattering inelastic " << energy/eV << " " << i << " " << prob << " " << aData->prob[ i ] << G4endl; - for ( G4int j = 0 ; j < anE_isoAng->n ; j++ ) + for ( G4int j = 0 ; j < anE_isoAng->n ; ++j ) { G4double x; *file >> x; anE_isoAng->isoAngle[j] = x ; - //G4cout << "G4ParticleHPThermalScattering inelastic " << x << anE_isoAng->isoAngle[j] << G4endl; } } // Calcuate sum_of_provXdEs G4double total = 0; aData->secondary_energy_cdf.push_back(0.); - for ( G4int i = 0 ; i < aData->n - 1 ; i++ ) + for ( G4int i = 0 ; i < aData->n - 1 ; ++i ) { G4double E_L = aData->vE_isoAngle[i]->energy/eV; G4double E_H = aData->vE_isoAngle[i+1]->energy/eV; @@ -283,9 +278,10 @@ E_P_E_isoAng* G4ParticleHPThermalScattering::readAnE_P_E_isoAng( std::istream* f } -std::map < G4double , std::vector < E_isoAng* >* >* G4ParticleHPThermalScattering::readAnIncoherentFSDATA ( G4String name ) +std::map < G4double , std::vector < E_isoAng* >* >* +G4ParticleHPThermalScattering::readAnIncoherentFSDATA ( G4String name ) { - std::map < G4double , std::vector < E_isoAng* >* >* T_E = new std::map < G4double , std::vector < E_isoAng* >* >; + auto T_E = new std::map < G4double , std::vector < E_isoAng* >* >; //std::ifstream theChannel( name.c_str() ); std::istringstream theChannel(std::ios::in); @@ -343,15 +339,15 @@ G4HadFinalState* G4ParticleHPThermalScattering::ApplyYourself(const G4HadProject const G4Material * theMaterial = aTrack.GetMaterial(); G4double aTemp = theMaterial->GetTemperature(); - G4int n = theMaterial->GetNumberOfElements(); + G4int n = (G4int)theMaterial->GetNumberOfElements(); G4bool findThermalElement = false; G4int ielement; const G4Element* theElement = nullptr; - for ( G4int i = 0; i < n ; i++ ) + for ( G4int i = 0; i < n ; ++i ) { theElement = theMaterial->GetElement(i); - //Select target element + // Select target element if ( aNucleus.GetZ_asInt() == (G4int)(theElement->GetZ() + 0.5 ) ) { //Check Applicability of Thermal Scattering @@ -373,34 +369,31 @@ G4HadFinalState* G4ParticleHPThermalScattering::ApplyYourself(const G4HadProject if ( findThermalElement == true ) { -// Select Reaction (Inelastic, coherent, incoherent) + // Select Reaction (Inelastic, coherent, incoherent) const G4ParticleDefinition* pd = aTrack.GetDefinition(); G4DynamicParticle* dp = new G4DynamicParticle ( pd , aTrack.Get4Momentum() ); G4double total = theXSection->GetCrossSection( dp , theElement , theMaterial ); G4double inelastic = theXSection->GetInelasticCrossSection( dp , theElement , theMaterial ); - G4double random = G4UniformRand(); if ( random <= inelastic/total ) { // Inelastic - // T_L and T_H - std::map < G4double , std::vector< E_P_E_isoAng* >* >::iterator it; std::vector v_temp; v_temp.clear(); - for ( it = inelasticFSs->find( ielement )->second->begin() ; it != inelasticFSs->find( ielement )->second->end() ; it++ ) + for (auto it = inelasticFSs->find( ielement )->second->cbegin(); + it != inelasticFSs->find( ielement )->second->cend() ; ++it ) { v_temp.push_back( it->first ); } -// T_L T_H std::pair < G4double , G4double > tempLH = find_LH ( aTemp , &v_temp ); -// -// For T_L aNEP_EPM_TL and T_H aNEP_EPM_TH -// - std::vector< E_P_E_isoAng* >* vNEP_EPM_TL = 0; - std::vector< E_P_E_isoAng* >* vNEP_EPM_TH = 0; + // + // For T_L aNEP_EPM_TL and T_H aNEP_EPM_TH + // + std::vector< E_P_E_isoAng* >* vNEP_EPM_TL = nullptr; + std::vector< E_P_E_isoAng* >* vNEP_EPM_TH = nullptr; if ( tempLH.first != 0.0 && tempLH.second != 0.0 ) { @@ -409,21 +402,19 @@ G4HadFinalState* G4ParticleHPThermalScattering::ApplyYourself(const G4HadProject } else if ( tempLH.first == 0.0 ) { - std::map < G4double , std::vector< E_P_E_isoAng* >* >::iterator itm; - itm = inelasticFSs->find( ielement )->second->begin(); + auto itm = inelasticFSs->find( ielement )->second->cbegin(); vNEP_EPM_TL = itm->second; - itm++; + ++itm; vNEP_EPM_TH = itm->second; tempLH.first = tempLH.second; tempLH.second = itm->first; } else if ( tempLH.second == 0.0 ) { - std::map < G4double , std::vector< E_P_E_isoAng* >* >::iterator itm; - itm = inelasticFSs->find( ielement )->second->end(); - itm--; + auto itm = inelasticFSs->find( ielement )->second->cend(); + --itm; vNEP_EPM_TH = itm->second; - itm--; + --itm; vNEP_EPM_TL = itm->second; tempLH.second = tempLH.first; tempLH.first = itm->first; @@ -448,7 +439,6 @@ G4HadFinalState* G4ParticleHPThermalScattering::ApplyYourself(const G4HadProject G4double phi = CLHEP::twopi*G4UniformRand(); G4double sint= std::sqrt ( 1 - mu*mu ); theParticleChange.SetMomentumChange( sint*std::cos(phi), sint*std::sin(phi), mu ); - } else if ( random <= ( inelastic + theXSection->GetCoherentCrossSection( dp , theElement , theMaterial ) ) / total ) { @@ -457,20 +447,20 @@ G4HadFinalState* G4ParticleHPThermalScattering::ApplyYourself(const G4HadProject G4double E = aTrack.GetKineticEnergy(); // T_L and T_H - std::map < G4double , std::vector< std::pair< G4double , G4double >* >* >::iterator it; std::vector v_temp; v_temp.clear(); - for ( it = coherentFSs->find( ielement )->second->begin() ; it != coherentFSs->find( ielement )->second->end() ; it++ ) + for (auto it = coherentFSs->find(ielement)->second->cbegin(); + it != coherentFSs->find(ielement)->second->cend(); ++it) { v_temp.push_back( it->first ); } -// T_L T_H + // T_L T_H std::pair < G4double , G4double > tempLH = find_LH ( aTemp , &v_temp ); -// -// -// For T_L anEPM_TL and T_H anEPM_TH -// + // + // + // For T_L anEPM_TL and T_H anEPM_TH + // std::vector< std::pair< G4double , G4double >* >* pvE_p_TL = nullptr; std::vector< std::pair< G4double , G4double >* >* pvE_p_TH = nullptr; @@ -489,24 +479,23 @@ G4HadFinalState* G4ParticleHPThermalScattering::ApplyYourself(const G4HadProject else if ( tempLH.second == 0.0 ) { pvE_p_TH = coherentFSs->find( ielement )->second->find ( v_temp.back() )->second; - std::vector< G4double >::iterator itv; - itv = v_temp.end(); - itv--; - itv--; + auto itv = v_temp.cend(); + --itv; + --itv; pvE_p_TL = coherentFSs->find( ielement )->second->find ( *itv )->second; tempLH.second = tempLH.first; tempLH.first = *itv; } else { - //tempLH.first == 0.0 && tempLH.second + // tempLH.first == 0.0 && tempLH.second throw G4HadronicException(__FILE__, __LINE__, "A problem is found in Thermal Scattering Data! Unexpected temperature values in data"); } std::vector< G4double > vE_T; std::vector< G4double > vp_T; - G4int n1 = pvE_p_TL->size(); + G4int n1 = (G4int)pvE_p_TL->size(); // New Geant4 method - Stochastic interpolation of the final state std::vector< std::pair< G4double , G4double >* >* pvE_p_T_sampled; @@ -517,14 +506,14 @@ G4HadFinalState* G4ParticleHPThermalScattering::ApplyYourself(const G4HadProject pvE_p_T_sampled = pvE_p_TL; //171005 fix bug, contribution from H.N. TRAN@CEA - for ( G4int i=0 ; i < n1 ; i++ ) + for ( G4int i=0 ; i < n1 ; ++i ) { vE_T.push_back ( (*pvE_p_T_sampled)[i]->first ); vp_T.push_back ( (*pvE_p_T_sampled)[i]->second ); } G4int j = 0; - for ( G4int i = 1 ; i < n1 ; i++ ) + for ( G4int i = 1 ; i < n1 ; ++i ) { if ( E/eV < vE_T[ i ] ) { @@ -536,7 +525,7 @@ G4HadFinalState* G4ParticleHPThermalScattering::ApplyYourself(const G4HadProject G4double rand_for_mu = G4UniformRand(); G4int k = 0; - for ( G4int i = 0 ; i <= j ; i++ ) + for ( G4int i = 0 ; i <= j ; ++i ) { G4double Pi = vp_T[ i ] / vp_T[ j ]; if ( rand_for_mu < Pi ) @@ -549,35 +538,33 @@ G4HadFinalState* G4ParticleHPThermalScattering::ApplyYourself(const G4HadProject G4double Ei = vE_T[ k ]; G4double mu = 1 - 2 * Ei / (E/eV) ; - //111102 + if ( mu < -1.0 ) mu = -1.0; - //G4cout << "E= " << E/eV << ", Ei= " << Ei << ", mu= " << mu << G4endl; theParticleChange.SetEnergyChange( E ); G4double phi = CLHEP::twopi*G4UniformRand(); G4double sint= std::sqrt ( 1 - mu*mu ); theParticleChange.SetMomentumChange( sint*std::cos(phi), sint*std::sin(phi), mu ); - } else { // InCoherent Elastic // T_L and T_H - std::map < G4double , std::vector < E_isoAng* >* >::iterator it; std::vector v_temp; v_temp.clear(); - for ( it = incoherentFSs->find( ielement )->second->begin() ; it != incoherentFSs->find( ielement )->second->end() ; it++ ) + for (auto it = incoherentFSs->find(ielement)->second->cbegin(); + it != incoherentFSs->find(ielement)->second->cend(); ++it) { v_temp.push_back( it->first ); } -// T_L T_H + // T_L T_H std::pair < G4double , G4double > tempLH = find_LH ( aTemp , &v_temp ); -// -// For T_L anEPM_TL and T_H anEPM_TH -// + // + // For T_L anEPM_TL and T_H anEPM_TH + // E_isoAng anEPM_TL_E; E_isoAng anEPM_TH_E; @@ -595,10 +582,9 @@ G4HadFinalState* G4ParticleHPThermalScattering::ApplyYourself(const G4HadProject } else if ( tempLH.second == 0.0 ) { //Extrapolate Tmax-1 and Tmax anEPM_TH_E = create_E_isoAng_from_energy ( aTrack.GetKineticEnergy() , incoherentFSs->find( ielement )->second->find ( v_temp.back() )->second ); - std::vector< G4double >::iterator itv; - itv = v_temp.end(); - itv--; - itv--; + auto itv = v_temp.cend(); + --itv; + --itv; anEPM_TL_E = create_E_isoAng_from_energy ( aTrack.GetKineticEnergy() , incoherentFSs->find( ielement )->second->find ( *itv )->second ); tempLH.second = tempLH.first; tempLH.first = *itv; @@ -622,12 +608,10 @@ G4HadFinalState* G4ParticleHPThermalScattering::ApplyYourself(const G4HadProject G4double phi = CLHEP::twopi*G4UniformRand(); G4double sint= std::sqrt ( 1 - mu*mu ); theParticleChange.SetMomentumChange( sint*std::cos(phi), sint*std::sin(phi), mu ); - } delete dp; return &theParticleChange; - } else { @@ -635,7 +619,6 @@ G4HadFinalState* G4ParticleHPThermalScattering::ApplyYourself(const G4HadProject // Neutron HP will handle return theHPElastic -> ApplyYourself( aTrack, aNucleus, 1); // L. Thulliez 2021/05/04 (CEA-Saclay) } - } @@ -707,9 +690,8 @@ sample_inelastic_E_mu( G4double pE , std::vector< E_P_E_isoAng* >* vNEP_EPM ) map_energy.clear(); std::vector< G4double > v_energy; v_energy.clear(); - std::vector< E_P_E_isoAng* >::iterator itv; G4int i = 0; - for ( itv = vNEP_EPM->begin(); itv != vNEP_EPM->end(); ++itv ) + for (auto itv = vNEP_EPM->cbegin(); itv != vNEP_EPM->cend(); ++itv) { v_energy.push_back( (*itv)->energy ); map_energy.insert( std::pair< G4double , G4int >( (*itv)->energy , i ) ); @@ -733,9 +715,9 @@ sample_inelastic_E_mu( G4double pE , std::vector< E_P_E_isoAng* >* vNEP_EPM ) if ( energyLH.second == 0.0 ) { pE_P_E_isoAng_limit[1] = (*vNEP_EPM).back(); - itv = vNEP_EPM->end(); - itv--; - itv--; + auto itv = vNEP_EPM->cend(); + --itv; + --itv; pE_P_E_isoAng_limit[0] = *itv; } @@ -772,7 +754,7 @@ G4double G4ParticleHPThermalScattering::getMu( G4double rndm1, G4double rndm2, E { G4double result = 0.0; - G4int in = int ( rndm1 * ( (*anEPM).n ) ); + G4int in = G4int ( rndm1 * ( (*anEPM).n ) ); if ( in != 0 ) { @@ -812,7 +794,7 @@ G4double G4ParticleHPThermalScattering::getMu( E_isoAng* anEPM ) G4double random = G4UniformRand(); G4double result = 0.0; - G4int in = int ( random * ( (*anEPM).n ) ); + G4int in = G4int ( random * ( (*anEPM).n ) ); if ( in != 0 ) { @@ -856,11 +838,10 @@ std::pair < G4double , G4double > G4ParticleHPThermalScattering::find_LH ( G4do // 1) temp < v(0) -> LL=0.0 H=v(0) // 2) v(i-1) < temp <= v(i) -> LL=v(i-1) H=v(i) // 3) v(imax) < temp -> LL=v(imax) H=0.0 - for ( std::vector< G4double >::iterator - it = aVector->begin() ; it != aVector->end() ; it++ ) { + for ( auto it = aVector->cbegin() ; it != aVector->cend() ; ++it ) { if ( x <= *it ) { H = *it; - if ( it != aVector->begin() ) { + if ( it != aVector->cbegin() ) { // 2) it--; LL = *it; @@ -901,11 +882,10 @@ G4ParticleHPThermalScattering::create_E_isoAng_from_energy(G4double energy, std::vector* vEPM) { E_isoAng anEPM_T_E; - std::vector::iterator iv; std::vector v_e; v_e.clear(); - for (iv = vEPM->begin(); iv != vEPM->end(); iv++) + for (auto iv = vEPM->cbegin(); iv != vEPM->cend(); ++iv) v_e.push_back( (*iv)->energy ); std::pair energyLH = find_LH(energy, &v_e); @@ -915,10 +895,10 @@ G4ParticleHPThermalScattering::create_E_isoAng_from_energy(G4double energy, E_isoAng* panEPM_T_EH = 0; if (energyLH.first != 0.0 && energyLH.second != 0.0) { - for (iv = vEPM->begin(); iv != vEPM->end(); iv++) { + for (auto iv = vEPM->cbegin(); iv != vEPM->cend(); ++iv) { if (energyLH.first == (*iv)->energy) { panEPM_T_EL = *iv; - iv++; + ++iv; panEPM_T_EH = *iv; break; } @@ -930,9 +910,9 @@ G4ParticleHPThermalScattering::create_E_isoAng_from_energy(G4double energy, } else if (energyLH.second == 0.0) { panEPM_T_EH = (*vEPM).back(); - iv = vEPM->end(); - iv--; - iv--; + auto iv = vEPM->cend(); + --iv; + --iv; panEPM_T_EL = *iv; } @@ -946,7 +926,7 @@ G4ParticleHPThermalScattering::create_E_isoAng_from_energy(G4double energy, anEPM_T_E.energy = energy; anEPM_T_E.n = panEPM_T_EL->n; - for (G4int i=0; i < panEPM_T_EL->n; i++) { + for (G4int i=0; i < panEPM_T_EL->n; ++i) { G4double angle; angle = get_linear_interpolated(energy, std::pair(energyLH.first, panEPM_T_EL->isoAngle[i] ), std::pair(energyLH.second, panEPM_T_EH->isoAngle[i] ) ); @@ -969,7 +949,8 @@ G4ParticleHPThermalScattering::create_E_isoAng_from_energy(G4double energy, } -G4double G4ParticleHPThermalScattering::get_secondary_energy_from_E_P_E_isoAng ( G4double random , E_P_E_isoAng* anE_P_E_isoAng ) +G4double G4ParticleHPThermalScattering:: +get_secondary_energy_from_E_P_E_isoAng ( G4double random , E_P_E_isoAng* anE_P_E_isoAng ) { G4double secondary_energy = 0.0; @@ -981,7 +962,7 @@ G4double G4ParticleHPThermalScattering::get_secondary_energy_from_E_P_E_isoAng ( /* delete for speed up - for ( G4int i = 0 ; i < n-1 ; i++ ) + for ( G4int i = 0 ; i < n-1 ; ++i ) { G4double E_L = anE_P_E_isoAng->vE_isoAngle[i]->energy/eV; G4double E_H = anE_P_E_isoAng->vE_isoAngle[i+1]->energy/eV; @@ -993,7 +974,7 @@ G4double G4ParticleHPThermalScattering::get_secondary_energy_from_E_P_E_isoAng ( */ total = anE_P_E_isoAng->sum_of_probXdEs; - for ( G4int i = 0 ; i < n-1 ; i++ ) + for ( G4int i = 0 ; i < n-1 ; ++i ) { G4double E_L = anE_P_E_isoAng->vE_isoAngle[i]->energy/eV; G4double E_H = anE_P_E_isoAng->vE_isoAngle[i+1]->energy/eV; @@ -1013,15 +994,15 @@ G4double G4ParticleHPThermalScattering::get_secondary_energy_from_E_P_E_isoAng ( } -std::pair< G4double , E_isoAng > G4ParticleHPThermalScattering::create_sE_and_EPM_from_pE_and_vE_P_E_isoAng ( G4double rand_for_sE , G4double pE , std::vector < E_P_E_isoAng* >* vNEP_EPM ) +std::pair< G4double , E_isoAng > G4ParticleHPThermalScattering:: +create_sE_and_EPM_from_pE_and_vE_P_E_isoAng ( G4double rand_for_sE , G4double pE , std::vector < E_P_E_isoAng* >* vNEP_EPM ) { std::map< G4double , G4int > map_energy; map_energy.clear(); std::vector< G4double > v_energy; v_energy.clear(); - std::vector< E_P_E_isoAng* >::iterator itv; G4int i = 0; - for ( itv = vNEP_EPM->begin(); itv != vNEP_EPM->end(); itv++ ) + for (auto itv = vNEP_EPM->cbegin(); itv != vNEP_EPM->cend(); ++itv) { v_energy.push_back( (*itv)->energy ); map_energy.insert( std::pair < G4double , G4int > ( (*itv)->energy , i ) ); @@ -1046,9 +1027,9 @@ std::pair< G4double , E_isoAng > G4ParticleHPThermalScattering::create_sE_and_EP if ( energyLH.second == 0.0 ) { pE_P_E_isoAng_EH = (*vNEP_EPM).back(); - itv = vNEP_EPM->end(); - itv--; - itv--; + auto itv = vNEP_EPM->cend(); + --itv; + --itv; pE_P_E_isoAng_EL = *itv; } @@ -1072,7 +1053,7 @@ std::pair< G4double , E_isoAng > G4ParticleHPThermalScattering::create_sE_and_EP if ( E_isoAng_L.n == E_isoAng_H.n ) { anE_isoAng.n = E_isoAng_L.n; - for ( G4int j=0 ; j < anE_isoAng.n ; j++ ) + for ( G4int j=0 ; j < anE_isoAng.n ; ++j ) { G4double angle; angle = get_linear_interpolated ( sE , std::pair< G4double , G4double > ( sE_L , E_isoAng_L.isoAngle[ j ] ) , std::pair< G4double , G4double > ( sE_H , E_isoAng_H.isoAngle[ j ] ) ); @@ -1081,7 +1062,6 @@ std::pair< G4double , E_isoAng > G4ParticleHPThermalScattering::create_sE_and_EP } else { - //G4cout << "Do not Suuport yet." << G4endl; throw G4HadronicException(__FILE__, __LINE__, "Unexpected values!"); } @@ -1103,26 +1083,27 @@ void G4ParticleHPThermalScattering::buildPhysicsTable() std::map < G4String , G4int > co_dic; //Searching Nist Materials - static G4ThreadLocal G4MaterialTable* theMaterialTable = 0 ; if (!theMaterialTable) theMaterialTable= G4Material::GetMaterialTable(); - size_t numberOfMaterials = G4Material::GetNumberOfMaterials(); - for ( size_t i = 0 ; i < numberOfMaterials ; i++ ) + static G4ThreadLocal G4MaterialTable* theMaterialTable = nullptr ; + if (!theMaterialTable) theMaterialTable= G4Material::GetMaterialTable(); + std::size_t numberOfMaterials = G4Material::GetNumberOfMaterials(); + for ( std::size_t i = 0 ; i < numberOfMaterials ; ++i ) { G4Material* material = (*theMaterialTable)[i]; - size_t numberOfElements = material->GetNumberOfElements(); - for ( size_t j = 0 ; j < numberOfElements ; j++ ) + G4int numberOfElements = (G4int)material->GetNumberOfElements(); + for ( G4int j = 0 ; j < numberOfElements ; ++j ) { const G4Element* element = material->GetElement(j); if ( names.IsThisThermalElement ( material->GetName() , element->GetName() ) ) { G4int ts_ID_of_this_geometry; G4String ts_ndl_name = names.GetTS_NDL_Name( material->GetName() , element->GetName() ); - if ( co_dic.find ( ts_ndl_name ) != co_dic.end() ) + if ( co_dic.find ( ts_ndl_name ) != co_dic.cend() ) { ts_ID_of_this_geometry = co_dic.find ( ts_ndl_name ) -> second; } else { - ts_ID_of_this_geometry = co_dic.size(); + ts_ID_of_this_geometry = (G4int)co_dic.size(); co_dic.insert ( std::pair< G4String , G4int >( ts_ndl_name , ts_ID_of_this_geometry ) ); } @@ -1136,10 +1117,10 @@ void G4ParticleHPThermalScattering::buildPhysicsTable() } //Searching TS Elements - static G4ThreadLocal G4ElementTable* theElementTable = 0 ; if (!theElementTable) theElementTable= G4Element::GetElementTable(); - size_t numberOfElements = G4Element::GetNumberOfElements(); - //size_t numberOfThermalElements = 0; - for ( size_t i = 0 ; i < numberOfElements ; i++ ) + static G4ThreadLocal G4ElementTable* theElementTable = nullptr ; + if (!theElementTable) theElementTable= G4Element::GetElementTable(); + std::size_t numberOfElements = G4Element::GetNumberOfElements(); + for ( std::size_t i = 0 ; i < numberOfElements ; ++i ) { const G4Element* element = (*theElementTable)[i]; if ( names.IsThisThermalElement ( element->GetName() ) ) @@ -1148,20 +1129,15 @@ void G4ParticleHPThermalScattering::buildPhysicsTable() { G4int ts_ID_of_this_geometry; G4String ts_ndl_name = names.GetTS_NDL_Name( element->GetName() ); - if ( co_dic.find ( ts_ndl_name ) != co_dic.end() ) + if ( co_dic.find ( ts_ndl_name ) != co_dic.cend() ) { ts_ID_of_this_geometry = co_dic.find ( ts_ndl_name ) -> second; } else { - ts_ID_of_this_geometry = co_dic.size(); + ts_ID_of_this_geometry = (G4int)co_dic.size(); co_dic.insert ( std::pair< G4String , G4int >( ts_ndl_name , ts_ID_of_this_geometry ) ); } - - //G4cout << "Neutron HP Thermal Scattering: Registering an element of " - // << material->GetName() << " " << element->GetName() - // << " as internal thermal scattering id of " << ts_ID_of_this_geometry << "." << G4endl; - dic.insert( std::pair < std::pair < const G4Material* , const G4Element* > , G4int > ( std::pair < const G4Material* , const G4Element* > ( (G4Material*)nullptr , element ) , ts_ID_of_this_geometry ) ); } } @@ -1202,9 +1178,7 @@ void G4ParticleHPThermalScattering::buildPhysicsTable() throw G4HadronicException(__FILE__, __LINE__, "Please setenv G4NEUTRONHPDATA to point to the neutron cross-section files."); dirName = G4FindDataDir( "G4NEUTRONHPDATA" ); - //G4String name; - - for ( std::map < G4String , G4int >::iterator it = co_dic.begin() ; it != co_dic.end() ; it++ ) + for (auto it = co_dic.cbegin() ; it != co_dic.cend() ; ++it) { G4String tsndlName = it->first; G4int ts_ID = it->second; @@ -1245,8 +1219,8 @@ G4int G4ParticleHPThermalScattering::getTS_ID ( const G4Material* material , con const std::pair G4ParticleHPThermalScattering::GetFatalEnergyCheckLevels() const { - //return std::pair(10*perCent,10*GeV); - return std::pair(10*perCent,DBL_MAX); + // max energy non-conservation is mass of heavy nucleus + return std::pair(10.0*perCent, 350.0*CLHEP::GeV); } @@ -1264,7 +1238,7 @@ G4bool G4ParticleHPThermalScattering::check_E_isoAng( E_isoAng* anE_IsoAng ) G4int n = anE_IsoAng->n; G4double sum=0.0; - for ( G4int i = 0 ; i < n ; i++ ) { + for ( G4int i = 0 ; i < n ; ++i ) { sum += anE_IsoAng->isoAngle[ i ]; } if ( sum != 0.0 ) result = true; diff --git a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPThermalScatteringData.cc b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPThermalScatteringData.cc index ac2f12b7c8..9fbcab8571 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ParticleHPThermalScatteringData.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ParticleHPThermalScatteringData.cc @@ -55,19 +55,19 @@ G4ParticleHPThermalScatteringData::G4ParticleHPThermalScatteringData() :G4VCrossSectionDataSet("NeutronHPThermalScatteringData") -,coherent(NULL) -,incoherent(NULL) -,inelastic(NULL) +,coherent(nullptr) +,incoherent(nullptr) +,inelastic(nullptr) { -// Upper limit of neutron energy + // Upper limit of neutron energy emax = 4*eV; SetMinKinEnergy( 0*MeV ); SetMaxKinEnergy( emax ); ke_cache = 0.0; xs_cache = 0.0; - element_cache = NULL; - material_cache = NULL; + element_cache = nullptr; + material_cache = nullptr; indexOfThermalElement.clear(); @@ -76,7 +76,6 @@ G4ParticleHPThermalScatteringData::G4ParticleHPThermalScatteringData() G4ParticleHPThermalScatteringData::~G4ParticleHPThermalScatteringData() { - clearCurrentXSData(); delete names; @@ -96,15 +95,6 @@ G4bool G4ParticleHPThermalScatteringData::IsIsoApplicable( const G4DynamicPartic || dic.find( std::pair < const G4Material* , const G4Element* > ( material , element ) ) != dic.end() ) return true; return false; - -// return IsApplicable( dp , element ); -/* - G4double eKin = dp->GetKineticEnergy(); - if ( eKin > 4.0*eV //GetMaxKinEnergy() - || eKin < 0 //GetMinKinEnergy() - || dp->GetDefinition() != G4Neutron::Neutron() ) return false; - return true; -*/ } G4double G4ParticleHPThermalScatteringData::GetIsoCrossSection( const G4DynamicParticle* dp , @@ -113,72 +103,67 @@ G4double G4ParticleHPThermalScatteringData::GetIsoCrossSection( const G4DynamicP const G4Element* element , const G4Material* material ) { - //if ( dp->GetKineticEnergy() == ke_cache && element == element_cache && material == material_cache ) return xs_cache; - ke_cache = dp->GetKineticEnergy(); element_cache = element; material_cache = material; - //G4double xs = GetCrossSection( dp , element , material->GetTemperature() ); G4double xs = GetCrossSection( dp , element , material ); xs_cache = xs; return xs; - //return GetCrossSection( dp , element , material->GetTemperature() ); } void G4ParticleHPThermalScatteringData::clearCurrentXSData() { - std::map< G4int , std::map< G4double , G4ParticleHPVector* >* >::iterator it; - std::map< G4double , G4ParticleHPVector* >::iterator itt; - - if ( coherent != NULL ) { - for ( it = coherent->begin() ; it != coherent->end() ; it++ ) - { - if ( it->second != NULL ) + if ( coherent != nullptr ) + { + for (auto it=coherent->cbegin() ; it!=coherent->cend(); ++it) + { + if ( it->second != nullptr ) + { + for (auto itt=it->second->cbegin(); itt!=it->second->cend(); ++itt) { - for ( itt = it->second->begin() ; itt != it->second->end() ; itt++ ) - { - delete itt->second; - } + delete itt->second; } - delete it->second; - } - coherent->clear(); + } + delete it->second; + } + coherent->clear(); } - if ( incoherent != NULL ) { - for ( it = incoherent->begin() ; it != incoherent->end() ; it++ ) - { - if ( it->second != NULL ) + if ( incoherent != nullptr ) + { + for (auto it=incoherent->cbegin(); it!=incoherent->cend() ; ++it) + { + if ( it->second != nullptr ) + { + for (auto itt=it->second->cbegin(); itt!=it->second->cend(); ++itt) { - for ( itt = it->second->begin() ; itt != it->second->end() ; itt++ ) - { - delete itt->second; - } + delete itt->second; } - delete it->second; - } - incoherent->clear(); + } + delete it->second; + } + incoherent->clear(); } - if ( inelastic != NULL ) { - for ( it = inelastic->begin() ; it != inelastic->end() ; it++ ) - { - if ( it->second != NULL ) + if ( inelastic != nullptr ) + { + for (auto it=inelastic->cbegin(); it!=inelastic->cend(); ++it) + { + if ( it->second != nullptr ) + { + for (auto itt=it->second->cbegin(); itt!=it->second->cend(); ++itt) { - for ( itt = it->second->begin() ; itt != it->second->end() ; itt++ ) - { - delete itt->second; - } + delete itt->second; } - delete it->second; - } - inelastic->clear(); + } + delete it->second; + } + inelastic->clear(); } } - G4bool G4ParticleHPThermalScatteringData::IsApplicable( const G4DynamicParticle* aP , const G4Element* anEle ) { G4bool result = false; @@ -192,22 +177,14 @@ G4bool G4ParticleHPThermalScatteringData::IsApplicable( const G4DynamicParticle* { // anEle is one of Thermal elements G4int ie = (G4int) anEle->GetIndex(); - std::vector < G4int >::iterator it; - for ( it = indexOfThermalElement.begin() ; it != indexOfThermalElement.end() ; it++ ) + for (auto it = indexOfThermalElement.cbegin(); + it != indexOfThermalElement.cend() ; ++it) { if ( ie == *it ) return true; } } } -/* - if ( names->IsThisThermalElement ( anEle->GetName() ) ) - { - // Check energy and projectile species - G4double eKin = aP->GetKineticEnergy(); - if ( eKin < emax && aP->GetDefinition() == G4Neutron::Neutron() ) result = true; - } -*/ return result; } @@ -226,43 +203,41 @@ void G4ParticleHPThermalScatteringData::BuildPhysicsTable(const G4ParticleDefini std::map < G4String , G4int > co_dic; //Searching Nist Materials - static G4ThreadLocal G4MaterialTable* theMaterialTable = 0 ; if (!theMaterialTable) theMaterialTable= G4Material::GetMaterialTable(); - size_t numberOfMaterials = G4Material::GetNumberOfMaterials(); - for ( size_t i = 0 ; i < numberOfMaterials ; i++ ) + static G4ThreadLocal G4MaterialTable* theMaterialTable = nullptr; + if (!theMaterialTable) theMaterialTable= G4Material::GetMaterialTable(); + std::size_t numberOfMaterials = G4Material::GetNumberOfMaterials(); + for ( std::size_t i = 0 ; i < numberOfMaterials ; ++i ) { G4Material* material = (*theMaterialTable)[i]; - size_t numberOfElements = material->GetNumberOfElements(); - for ( size_t j = 0 ; j < numberOfElements ; j++ ) + G4int numberOfElements = (G4int)material->GetNumberOfElements(); + for ( G4int j = 0 ; j < numberOfElements ; ++j ) { const G4Element* element = material->GetElement(j); if ( names->IsThisThermalElement ( material->GetName() , element->GetName() ) ) { G4int ts_ID_of_this_geometry; G4String ts_ndl_name = names->GetTS_NDL_Name( material->GetName() , element->GetName() ); - if ( co_dic.find ( ts_ndl_name ) != co_dic.end() ) + if ( co_dic.find ( ts_ndl_name ) != co_dic.cend() ) { ts_ID_of_this_geometry = co_dic.find ( ts_ndl_name ) -> second; } else { - ts_ID_of_this_geometry = co_dic.size(); + ts_ID_of_this_geometry = (G4int)co_dic.size(); co_dic.insert ( std::pair< G4String , G4int >( ts_ndl_name , ts_ID_of_this_geometry ) ); } - //G4cout << "Neutron HP Thermal Scattering Data : Registering a material-element pair of " - // << material->GetName() << " " << element->GetName() - // << " as internal thermal scattering id of " << ts_ID_of_this_geometry << "." << G4endl; - dic.insert( std::pair < std::pair < G4Material* , const G4Element* > , G4int > ( std::pair < G4Material* , const G4Element* > ( material , element ) , ts_ID_of_this_geometry ) ); } } } //Searching TS Elements - static G4ThreadLocal G4ElementTable* theElementTable = 0 ; if (!theElementTable) theElementTable= G4Element::GetElementTable(); - size_t numberOfElements = G4Element::GetNumberOfElements(); - //size_t numberOfThermalElements = 0; - for ( size_t i = 0 ; i < numberOfElements ; i++ ) + static G4ThreadLocal G4ElementTable* theElementTable = nullptr; + if (!theElementTable) theElementTable= G4Element::GetElementTable(); + std::size_t numberOfElements = G4Element::GetNumberOfElements(); + + for ( std::size_t i = 0 ; i < numberOfElements ; ++i ) { const G4Element* element = (*theElementTable)[i]; if ( names->IsThisThermalElement ( element->GetName() ) ) @@ -271,20 +246,16 @@ void G4ParticleHPThermalScatteringData::BuildPhysicsTable(const G4ParticleDefini { G4int ts_ID_of_this_geometry; G4String ts_ndl_name = names->GetTS_NDL_Name( element->GetName() ); - if ( co_dic.find ( ts_ndl_name ) != co_dic.end() ) + if ( co_dic.find ( ts_ndl_name ) != co_dic.cend() ) { ts_ID_of_this_geometry = co_dic.find ( ts_ndl_name ) -> second; } else { - ts_ID_of_this_geometry = co_dic.size(); + ts_ID_of_this_geometry = (G4int)co_dic.size(); co_dic.insert ( std::pair< G4String , G4int >( ts_ndl_name , ts_ID_of_this_geometry ) ); } - //G4cout << "Neutron HP Thermal Scattering: Registering an element of " - // << material->GetName() << " " << element->GetName() - // << " as internal thermal scattering id of " << ts_ID_of_this_geometry << "." << G4endl; - dic.insert( std::pair < std::pair < const G4Material* , const G4Element* > , G4int > ( std::pair < const G4Material* , const G4Element* > ( (G4Material*)NULL , element ) , ts_ID_of_this_geometry ) ); } } @@ -292,38 +263,36 @@ void G4ParticleHPThermalScatteringData::BuildPhysicsTable(const G4ParticleDefini G4cout << G4endl; G4cout << "Neutron HP Thermal Scattering Data: Following material-element pairs and/or elements are registered." << G4endl; - for ( std::map < std::pair < const G4Material* , const G4Element* > , G4int >::iterator it = dic.begin() ; it != dic.end() ; it++ ) + for ( auto it = dic.cbegin() ; it != dic.cend() ; ++it ) { - if ( it->first.first != NULL ) + if ( it->first.first != nullptr ) { - G4cout << "Material " << it->first.first->GetName() << " - Element " << it->first.second->GetName() << ", internal thermal scattering id " << it->second << G4endl; + G4cout << "Material " << it->first.first->GetName() << " - Element " + << it->first.second->GetName() + << ", internal thermal scattering id " << it->second << G4endl; } else { - G4cout << "Element " << it->first.second->GetName() << ", internal thermal scattering id " << it->second << G4endl; + G4cout << "Element " << it->first.second->GetName() + << ", internal thermal scattering id " << it->second << G4endl; } } G4cout << G4endl; - - //G4cout << "Neutron HP Thermal Scattering Data: Following NDL thermal scattering files are assigned to the internal thermal scattering id." << G4endl; - //for ( std::map < G4String , G4int >::iterator it = co_dic.begin() ; it != co_dic.end() ; it++ ) - //{ - // G4cout << "NDL file name " << it->first << ", internal thermal scattering id " << it->second << G4endl; - //} - G4ParticleHPManager* hpmanager = G4ParticleHPManager::GetInstance(); coherent = hpmanager->GetThermalScatteringCoherentCrossSections(); incoherent = hpmanager->GetThermalScatteringIncoherentCrossSections(); inelastic = hpmanager->GetThermalScatteringInelasticCrossSections(); - if ( G4Threading::IsMasterThread() ) { - - if ( coherent == NULL ) coherent = new std::map< G4int , std::map< G4double , G4ParticleHPVector* >* >; - if ( incoherent == NULL ) incoherent = new std::map< G4int , std::map< G4double , G4ParticleHPVector* >* >; - if ( inelastic == NULL ) inelastic = new std::map< G4int , std::map< G4double , G4ParticleHPVector* >* >; - + if ( G4Threading::IsMasterThread() ) + { + if ( coherent == nullptr ) + coherent = new std::map< G4int , std::map< G4double , G4ParticleHPVector* >* >; + if ( incoherent == nullptr ) + incoherent = new std::map< G4int , std::map< G4double , G4ParticleHPVector* >* >; + if ( inelastic == nullptr ) + inelastic = new std::map< G4int , std::map< G4double , G4ParticleHPVector* >* >; // Read Cross Section Data files @@ -337,27 +306,25 @@ void G4ParticleHPThermalScatteringData::BuildPhysicsTable(const G4ParticleDefini G4String ndl_filename; G4String full_name; - for ( std::map < G4String , G4int >::iterator it = co_dic.begin() ; it != co_dic.end() ; it++ ) + for ( auto it = co_dic.cbegin() ; it != co_dic.cend() ; ++it ) { - ndl_filename = it->first; G4int ts_ID = it->second; // Coherent full_name = dirName + "/Coherent/CrossSection/" + ndl_filename; - std::map< G4double , G4ParticleHPVector* >* coh_amapTemp_EnergyCross = readData( full_name ); + auto coh_amapTemp_EnergyCross = readData( full_name ); coherent->insert ( std::pair < G4int , std::map< G4double , G4ParticleHPVector* >* > ( ts_ID , coh_amapTemp_EnergyCross ) ); // Incoherent full_name = dirName + "/Incoherent/CrossSection/" + ndl_filename; - std::map< G4double , G4ParticleHPVector* >* incoh_amapTemp_EnergyCross = readData( full_name ); + auto incoh_amapTemp_EnergyCross = readData( full_name ); incoherent->insert ( std::pair < G4int , std::map< G4double , G4ParticleHPVector* >* > ( ts_ID , incoh_amapTemp_EnergyCross ) ); // Inelastic full_name = dirName + "/Inelastic/CrossSection/" + ndl_filename; - std::map< G4double , G4ParticleHPVector* >* inela_amapTemp_EnergyCross = readData( full_name ); + auto inela_amapTemp_EnergyCross = readData( full_name ); inelastic->insert ( std::pair < G4int , std::map< G4double , G4ParticleHPVector* >* > ( ts_ID , inela_amapTemp_EnergyCross ) ); - } hpmanager->RegisterThermalScatteringCoherentCrossSections( coherent ); hpmanager->RegisterThermalScatteringIncoherentCrossSections( incoherent ); @@ -366,18 +333,14 @@ void G4ParticleHPThermalScatteringData::BuildPhysicsTable(const G4ParticleDefini } - -std::map< G4double , G4ParticleHPVector* >* G4ParticleHPThermalScatteringData::readData ( G4String full_name ) +std::map< G4double , G4ParticleHPVector* >* +G4ParticleHPThermalScatteringData::readData ( G4String full_name ) { - - std::map< G4double , G4ParticleHPVector* >* aData = new std::map< G4double , G4ParticleHPVector* >; + auto aData = new std::map< G4double , G4ParticleHPVector* >; - //std::ifstream theChannel( full_name.c_str() ); std::istringstream theChannel; G4ParticleHPManager::GetInstance()->GetDataStream(full_name,theChannel); - //G4cout << "G4ParticleHPThermalScatteringData " << name << G4endl; - G4int dummy; while ( theChannel >> dummy ) // MF // Loop checking, 11.05.2015, T. Koi { @@ -390,62 +353,17 @@ std::map< G4double , G4ParticleHPVector* >* G4ParticleHPThermalScatteringData::r anEnergyCross->Init ( theChannel , nData , eV , barn ); aData->insert ( std::pair < G4double , G4ParticleHPVector* > ( temp , anEnergyCross ) ); } - //theChannel.close(); return aData; - } - void G4ParticleHPThermalScatteringData::DumpPhysicsTable( const G4ParticleDefinition& aP ) { if( &aP != G4Neutron::Neutron() ) throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); -// G4cout << "G4ParticleHPThermalScatteringData::DumpPhysicsTable still to be implemented"<GetIndex(); - - if ( dic.find( std::pair < const G4Material* , const G4Element* > ( (G4Material*)NULL , anE ) ) != dic.end() ) - { - iele = dic.find( std::pair < const G4Material* , const G4Element* > ( (G4Material*)NULL , anE ) )->second; - } - else if ( dic.find( std::pair < const G4Material* , const G4Element* > ( aM , anE ) ) != dic.end() ) - { - iele = dic.find( std::pair < const G4Material* , const G4Element* > ( aM , anE ) )->second; - } - else - { - return result; - } - - G4double Xcoh = GetX ( aP , aT , coherent.find(iele)->second ); - G4double Xincoh = GetX ( aP , aT , incoherent.find(iele)->second ); - G4double Xinela = GetX ( aP , aT , inelastic.find(iele)->second ); - - result = Xcoh + Xincoh + Xinela; - - //G4cout << "G4ParticleHPThermalScatteringData::GetCrossSection Tot= " << result/barn << " Coherent= " << Xcoh/barn << " Incoherent= " << Xincoh/barn << " Inelastic= " << Xinela/barn << G4endl; - - return result; - -} -*/ G4double G4ParticleHPThermalScatteringData::GetCrossSection( const G4DynamicParticle* aP , const G4Element*anE , const G4Material* aM ) { @@ -463,8 +381,6 @@ G4double G4ParticleHPThermalScatteringData::GetCrossSection( const G4DynamicPart result = Xcoh + Xincoh + Xinela; - //G4cout << "G4ParticleHPThermalScatteringData::GetCrossSection Tot= " << result/barn << " Coherent= " << Xcoh/barn << " Incoherent= " << Xincoh/barn << " Inelastic= " << Xinela/barn << G4endl; - return result; } @@ -496,8 +412,6 @@ G4double G4ParticleHPThermalScatteringData::GetIncoherentCrossSection( const G4D return result; } - - G4int G4ParticleHPThermalScatteringData::getTS_ID ( const G4Material* material , const G4Element* element ) { G4int result = -1; @@ -508,20 +422,15 @@ G4int G4ParticleHPThermalScatteringData::getTS_ID ( const G4Material* material , return result; } - - - G4double G4ParticleHPThermalScatteringData::GetX ( const G4DynamicParticle* aP, G4double aT , std::map < G4double , G4ParticleHPVector* >* amapTemp_EnergyCross ) { - G4double result = 0; if ( amapTemp_EnergyCross->size() == 0 ) return result; - G4double eKinetic = aP->GetKineticEnergy(); if ( amapTemp_EnergyCross->size() == 1 ) { - if ( std::fabs ( aT - amapTemp_EnergyCross->begin()->first ) / amapTemp_EnergyCross->begin()->first > 0.1 ) { + if ( std::fabs ( aT - amapTemp_EnergyCross->cbegin()->first ) / amapTemp_EnergyCross->begin()->first > 0.1 ) { G4cout << "G4ParticleHPThermalScatteringData:: The temperature of material (" << aT/kelvin << "K) is different more than 10% from temperature of thermal scattering file expected (" << amapTemp_EnergyCross->begin()->first << "K). Result may not be reliable." @@ -531,29 +440,24 @@ G4double G4ParticleHPThermalScatteringData::GetX ( const G4DynamicParticle* aP, return result; } - std::map< G4double , G4ParticleHPVector* >::iterator it; - for ( it = amapTemp_EnergyCross->begin() ; it != amapTemp_EnergyCross->end() ; it++ ) { - if ( aT < it->first ) break; + auto it = amapTemp_EnergyCross->cbegin(); + for (it=amapTemp_EnergyCross->cbegin(); it!=amapTemp_EnergyCross->cend(); ++it) + { + if ( aT < it->first ) break; } - //if ( it == amapTemp_EnergyCross->begin() && it != amapTemp_EnergyCross->end() ) it++; // lower than the first - //if ( it != amapTemp_EnergyCross->begin() && it == amapTemp_EnergyCross->end() ) it--; // upper than the last - if ( it == amapTemp_EnergyCross->begin() ) { - it++; // lower than the first - } else if ( it == amapTemp_EnergyCross->end() ) { - it--; // upper than the last + if ( it == amapTemp_EnergyCross->cbegin() ) { + ++it; // lower than the first + } else if ( it == amapTemp_EnergyCross->cend() ) { + --it; // upper than the last } G4double TH = it->first; G4double XH = it->second->GetXsec ( eKinetic ); - //G4cout << "G4ParticleHPThermalScatteringData::GetX TH " << TH << " E " << eKinetic << " XH " << XH << G4endl; - - if ( it != amapTemp_EnergyCross->begin() ) it--; + if ( it != amapTemp_EnergyCross->cbegin() ) --it; G4double TL = it->first; G4double XL = it->second->GetXsec ( eKinetic ); - //G4cout << "G4ParticleHPThermalScatteringData::GetX TL " << TL << " E " << eKinetic << " XL " << XL << G4endl; - if ( TH == TL ) throw G4HadronicException(__FILE__, __LINE__, "Thermal Scattering Data Error!"); @@ -569,6 +473,7 @@ void G4ParticleHPThermalScatteringData::AddUserThermalScatteringFile( G4String n { names->AddThermalElement( nameG4Element , filename ); } + void G4ParticleHPThermalScatteringData::CrossSectionDescription(std::ostream& outFile) const { outFile << "High Precision cross data based on thermal scattering data in evaluated nuclear data libraries for neutrons below 5eV on specific materials\n" ; diff --git a/source/processes/hadronic/models/particle_hp/src/G4ShiftedGaussian.cc b/source/processes/hadronic/models/particle_hp/src/G4ShiftedGaussian.cc index 8ed4c0ac79..2e1f180b10 100644 --- a/source/processes/hadronic/models/particle_hp/src/G4ShiftedGaussian.cc +++ b/source/processes/hadronic/models/particle_hp/src/G4ShiftedGaussian.cc @@ -74,9 +74,9 @@ G4FindShiftedMean( G4double RequestedMean, { G4FFG_SAMPLING_FUNCTIONENTER__ - G4int VectorSize = ShiftedMean_.size(); + std::size_t VectorSize = ShiftedMean_.size(); - for(G4int i = 0; i < VectorSize; i++) + for(std::size_t i = 0; i < VectorSize; ++i) { if(ShiftedMean_[i].first.first == RequestedMean) { @@ -89,7 +89,7 @@ G4FFG_SAMPLING_FUNCTIONLEAVE__ } G4FFG_SAMPLING_FUNCTIONLEAVE__ - return 0; + return 0.; } void G4ShiftedGaussian:: diff --git a/source/processes/hadronic/models/parton_string/History b/source/processes/hadronic/models/parton_string/History index a47b57d7d0..ba1cf1bb0b 100644 --- a/source/processes/hadronic/models/parton_string/History +++ b/source/processes/hadronic/models/parton_string/History @@ -1,9 +1,13 @@ # Category hadr-prtn History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-26 Gabriele Cosmo (hadr-prtn-V11-00-01) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2021-12-10 Ben Morgan (hadr-prtn-V11-00-00) - Change to new Markdown History format diff --git a/source/processes/hadronic/models/parton_string/diffraction/GNUmakefile b/source/processes/hadronic/models/parton_string/diffraction/GNUmakefile index 0227aa40c0..ff1cfda60f 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/GNUmakefile +++ b/source/processes/hadronic/models/parton_string/diffraction/GNUmakefile @@ -18,6 +18,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/intercoms/include \ -I$(G4BASE)/processes/management/include \ -I$(G4BASE)/processes/hadronic/management/include/ \ -I$(G4BASE)/processes/hadronic/cross_sections/include/ \ diff --git a/source/processes/hadronic/models/parton_string/diffraction/History b/source/processes/hadronic/models/parton_string/diffraction/History index da6aa0ef7a..862b43272d 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/History +++ b/source/processes/hadronic/models/parton_string/diffraction/History @@ -1,15 +1,87 @@ # Category hadr-string-diff History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-26 Gabriele Cosmo (hadr-string-diff-V11-00-12) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-13 Alberto Ribon (hadr-string-diff-V11-00-11) +- G4DiffractiveSplitableHadron : Vladimir Uzhinsky's fix of rare large energy + violations seen with FTF when dealing with charm and bottom hadron nuclear + interactions. + +## 2022-11-11 Alberto Ribon (hadr-string-diff-V11-00-10) +- G4FTFModel : in the methods AdjustNucleonsAlgorithm_beforeSampling and + ComputeNucleusProperties, before calling either G4HyperNucleiProperties + or G4IonTable to get the mass of the residual, check if the residual + is a single nucleon (or lambda) or a pair of nucleons (or lambdas); + moreover, in the same two methods, the absolute value of the nuclear + residual charge is used, to take into account the case of anti-nuclei + projectiles. + +## 2022-11-04 Alberto Ribon (hadr-string-diff-V11-00-09) +- G4FTFModel : Vladimir Uzhinsky's extension of the FTF model to deal with + the annihilation of light anti-hypernuclei. +- G4FTFAnnihilation : Vladimir Uzhinsky's reorganization of the two methods + Create2QuarkAntiQuarkStrings and Create3QuarkAntiQuarkStrings in order + to better handle unphysical configurations that need to be rejected. + The algorithm has been also speed-up by changing the order of the sampling: + light-cone variables are sampled first, then transverse momenta. + Moreover, the positions of quark and anti-quark in strings have been + corrected: this is expected to improve the kinematical properties of the + produced hadrons. + +## 2022-10-27 Julia Yarba (hadr-string-diff-V11-00-08) +- Minor cleanup in tune naming + +## 2022-10-27 Julia Yarba (hadr-string-diff-V11-00-07) +- G4FTFTunings - rename tune2022-v0 (#1) to baryon-tune2022-v0; + add pion-tune2022-v0 (#2) and combined-tune2022-v0 (#3, combo of #1) + +## 2022-10-19 Alberto Ribon (hadr-string-diff-V11-00-07) +- G4DiffractiveExcitation : Vladimir Uzhinsky's improvements in the method + ExciteParticipants_doChargeExchange. + For a projectile meson in the case of quark exchange, a more correct ratio + between pseudo-scalar and vector mesons is included: the pion after the + exchange can transform into pi0, eta, eta', rho0 and omega mesons. + This allows to improve the description of leading particle spectra in + meson-nucleon interactions. + +## 2022-08-31 Vladimir Ivanchenko (hadr-string-diff-V11-00-06) +- G4FTFTunings - added extra braces at initialisation of std::array to + allow CMSSW compile Geant4 + +## 2022-08-16 Gabriele Cosmo (hadr-string-diff-V11-00-05) +- Added missing dependency on G4intercoms in sources.cmake and GNUmakefile. + +## 2022-08-02 Alberto Ribon (hadr-string-diff-V11-00-04) +- G4FTFTuningsMessenger : created new messenger class for G4FTFTunings. + This allows to avoid the use of G4FTFTunings in G4HadronicParametersMessenger, + which created a circular dependency between G4hadronic_util and G4had_string_diff. +- G4FTFTunings : updated to use G4FTFTuningsMessenger instead of + G4HadronicParameterMessenger. + +## 2022-07-28 Alberto Ribon (hadr-string-diff-V11-00-03) +- G4FTFTunings : created a new (singleton) class to allow the possibility + to specify alternative sets of FTF parameters, called "tunes". + Moved into this class some special, internal classes - useful for tuning + of parameters - that were originally in G4FTFParameters. +- G4FTFParameters : use of the new G4FTFTunings class; instead of having + one, single set of parameters, it has now an array of set of parameters, + with each element corresponding to one specific "tune"; + clean-up of the class by moving to G4FTFTunings some code originally + present in G4FTFParameters. +These changes should not alter any results, nor even the random sequence. ## 2021-06-09 Laurie Nevay (hadr-string-diff-V11-00-02) - Allow control of diffraction for baryon number greater than 10 in G4FPFParameters. The option comes from G4HadronicParameters and the default behaviour remains the same (off). - ## 2022-06-07 Alberto Ribon (hadr-string-diff-V11-00-01) Fixes made by Vladimir Uzhinsky to get isotropic distributions in annihilations at rest: diff --git a/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParameters.hh b/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParameters.hh index 51236adbeb..8981b76e67 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParameters.hh +++ b/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParameters.hh @@ -32,273 +32,13 @@ #include #include "G4Types.hh" #include "G4Exp.hh" +#include "G4FTFTunings.hh" class G4ParticleDefinition; class G4VComponentCrossSection; class G4LundStringFragmentation; - // NOTE: the settings are different for: - // * baryons projectile - // * anti-baryons projectile - // * pions (chg or pi0) projectile - // * kaons projectile (pdg = +/-321, 311, 130, or 310) - // * "undefined" projectile - nucleon assumed - -class G4FTFParamCollection { - public: - - //dtor - virtual ~G4FTFParamCollection() {} - - // parameters of excitation - // - // Proc=0 --> Qexchg w/o excitation - // - double GetProc0A1() const { return fProc0A1; } - double GetProc0B1() const { return fProc0B1; } - double GetProc0A2() const { return fProc0A2; } - double GetProc0B2() const { return fProc0B2; } - double GetProc0A3() const { return fProc0A3; } - double GetProc0Atop() const { return fProc0Atop; } - double GetProc0Ymin() const { return fProc0Ymin; } - // - // Proc=1 --> Qexchg w/excitation - // - double GetProc1A1() const { return fProc1A1; } - double GetProc1B1() const { return fProc1B1; } - double GetProc1A2() const { return fProc1A2; } - double GetProc1B2() const { return fProc1B2; } - double GetProc1A3() const { return fProc1A3; } - double GetProc1Atop() const { return fProc1Atop; } - double GetProc1Ymin() const { return fProc1Ymin; } - // - // Proc=2 & Proc=3 in case ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 ) - // Update: Proc=2 & Proc=3 in case ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) - // (diffraction dissociation) - // - // Other parameters have a complex form for baryon projectile - // although they're just numbers for e.g. pions projectile - // - // Proc=2 --> Projectile diffraction - // - double GetProc2A1() const { return fProc2A1; } - double GetProc2B1() const { return fProc2B1; } - double GetProc2A2() const { return fProc2A2; } - double GetProc2B2() const { return fProc2B2; } - double GetProc2A3() const { return fProc2A3; } - double GetProc2Atop() const { return fProc2Atop; } - double GetProc2Ymin() const { return fProc2Ymin; } - // - // Proc=3 --> Target diffraction - // - double GetProc3A1() const { return fProc3A1; } - double GetProc3B1() const { return fProc3B1; } - double GetProc3A2() const { return fProc3A2; } - double GetProc3B2() const { return fProc3B2; } - double GetProc3A3() const { return fProc3A3; } - double GetProc3Atop() const { return fProc3Atop; } - double GetProc3Ymin() const { return fProc3Ymin; } - // - bool IsProjDiffDissociation() const { return fProjDiffDissociation; } - bool IsTgtDiffDissociation() const { return fTgtDiffDissociation; } - // - // Proc=4 --> Qexchg "w/additional multiplier" in excitation - // - double GetProc4A1() const { return fProc4A1; } - double GetProc4B1() const { return fProc4B1; } - double GetProc4A2() const { return fProc4A2; } - double GetProc4B2() const { return fProc4B2; } - double GetProc4A3() const { return fProc4A3; } - double GetProc4Atop() const { return fProc4Atop; } - double GetProc4Ymin() const { return fProc4Ymin; } - // - // - double GetDeltaProbAtQuarkExchange() const { return fDeltaProbAtQuarkExchange; } - double GetProbOfSameQuarkExchange() const { return fProbOfSameQuarkExchange; } - double GetProjMinDiffMass() const { return fProjMinDiffMass; } - double GetProjMinNonDiffMass() const { return fProjMinNonDiffMass; } - double GetTgtMinDiffMass() const { return fTgtMinDiffMass; } - double GetTgtMinNonDiffMass() const { return fTgtMinNonDiffMass; } - double GetAveragePt2() const { return fAveragePt2; } - double GetProbLogDistrPrD() const { return fProbLogDistrPrD; } - double GetProbLogDistr() const { return fProbLogDistr; } - - // NOTE (JVY): There is also the Pt2Kind parameter but for now it's set to 0., so we'll leave it aside - - // --> FIXME !!! --> void Get/SetBaryonMaxNumberOfCollisions( const double, const double ); // 1st is Plab, 2nd - D=2. - // - double GetNuclearProjDestructP1() const { return fNuclearProjDestructP1; } - bool IsNuclearProjDestructP1_NBRNDEP() const { return fNuclearProjDestructP1_NBRNDEP; } - double GetNuclearTgtDestructP1() const { return fNuclearTgtDestructP1; } - bool IsNuclearTgtDestructP1_ADEP() const { return fNuclearTgtDestructP1_ADEP; } - double GetNuclearProjDestructP2() const { return fNuclearProjDestructP2; } - double GetNuclearProjDestructP3() const { return fNuclearProjDestructP3; } - double GetNuclearTgtDestructP2() const { return fNuclearTgtDestructP2; } - double GetNuclearTgtDestructP3() const { return fNuclearTgtDestructP3; } - double GetPt2NuclearDestructP1() const { return fPt2NuclearDestructP1; } - double GetPt2NuclearDestructP2() const { return fPt2NuclearDestructP2; } - double GetPt2NuclearDestructP3() const { return fPt2NuclearDestructP3; } - double GetPt2NuclearDestructP4() const { return fPt2NuclearDestructP4; } - // - // separately for baryons, mesons, etc. - // - double GetR2ofNuclearDestruct() const { return fR2ofNuclearDestruct; } - double GetExciEnergyPerWoundedNucleon() const { return fExciEnergyPerWoundedNucleon; } - double GetDofNuclearDestruct() const { return fDofNuclearDestruct; } - double GetMaxPt2ofNuclearDestruct() const { return fMaxPt2ofNuclearDestruct; } - - protected: - - // ctor - G4FTFParamCollection(); - - // parameters of excitation - // - // - // these are for Inelastic interactions, i.e. Xinelastic=(Xtotal-Xelastix)>0. - // for elastic, all the A's & B's, Atop & Ymin are zeros - // general formula: Pp = A1*exp(B1*Y) + A2*exp(B2*Y) + A3 - // but if Y Qexchg w/o excitation - double fProc0A1; // D=13.71 - double fProc0B1; // D=1.75 - double fProc0A2; // D=-30.69 (or -214.5 as in Doc ?) - double fProc0B2; // D=3. ( or 4. as in Doc ?) - double fProc0A3; // D=0. - double fProc0Atop; // D=1. ( or 0.5 as in Doc ?) - double fProc0Ymin; // D=0.93 (or 1.1 as in Doc ?) - // Proc=1 --> Qexchg w/excitation - double fProc1A1; // D=25. - double fProc1B1; // D=1. - double fProc1A2; // D=-50.34 - double fProc1B2; // D=1.5 - double fProc1A3; // D=0. - double fProc1Atop; // D=0. - double fProc1Ymin; // D=1.4 - // - // NOTE: Proc #2 & 3 are projectile & target diffraction - // they have more complex definition of A1 & A2 - // for *baryons* although they're just numbers for pions - // (example for baryons below) - // SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);// Projectile diffraction - // SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);// Target diffraction - // - // Also, for ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 ) - // projectile and/or target diffraction (dissociation) may be switched ON/OFF - bool fProjDiffDissociation; - bool fTgtDiffDissociation; - // Proc=2 --> Projectile diffraction - double fProc2A1; - double fProc2B1; - double fProc2A2; - double fProc2B2; - double fProc2A3; - double fProc2Atop; - double fProc2Ymin; - // Proc=3 --> Target diffraction - double fProc3A1; - double fProc3B1; - double fProc3A2; - double fProc3B2; - double fProc3A3; - double fProc3Atop; - double fProc3Ymin; - // Proc=4 --> Qexchg w/additional multiplier in excitation - double fProc4A1; // D=0.6 (or 1. as in Doc ?) - double fProc4B1; // D=0. - double fProc4A2; // D=-1.2 (or -2.01 as in Doc ?) - double fProc4B2; // D=0.5 - double fProc4A3; // D=0. - double fProc4Atop; // D=0. - double fProc4Ymin; // D=1.4 - // - // parameters of participating baryon excitation - // NOTE: baryon ot HADRON ??? - // NOTE: this parameters (as C++ class data members) are used for all types of hadrons - // but the values for a specific group of particles can be are different from - // another group of particles - // the defaults listed under coments are for baryons, - // and they may be different or the same for other hadrons (e.g. mesons) - // - double fDeltaProbAtQuarkExchange; // D=0. - double fProbOfSameQuarkExchange; // D=0. if A<=26, otherwise D=1. - double fProjMinDiffMass; // projectile, D=1.16GeV - double fProjMinNonDiffMass; // projectile, D=1.16GeV - double fTgtMinDiffMass; // target, D=1.16GeV - double fTgtMinNonDiffMass; // target, D=1.16GeV - double fAveragePt2; // D=0.3GeV**2 ( or 0.15 as in the Doc ???) - double fProbLogDistrPrD; // D=0.55 (or 0.6 ??? or 0.3 ???) - double fProbLogDistr; // D=0.55 (or 0.6 ??? or 0.3 ???) - - // parameters of nuclear distruction - // - // NOTE (JVY): there're 3 cases here: - // * baryon projectile - // * anti-baryon projectile - // * meson projectile - // - // double fBaryonMaxNumberOfCollisions; // D=2. - // void SetBaryonProbOfInteraction( const double ); // ??? this is prob. of inelastic interaction - // that is set internally based on certain conditions... - // general (i.e. for used for baryons,anti-baryons, and mesons) - // NOTE: these parameters have stayed THE SAME for quite a while - double fNuclearProjDestructP1; // D=0.00481 in 10.3.ref04 !!! - // BUT !!! In 10.3.ref04 as well as in 10.2-seriesit's multiplied of AbsProjectileBaryonNumber - // which somehow is 0 for the proton projectile (see in 10.3.ref04 around lines 130-140 In G4FTFParameters.cc). - // For the target destr. it's multipled by the number of target nucleons (12 for Carbon). - // In 10.3.p01 it's set to 1. FLAT OUT for both projectile & target, no multiplications, etc. - // Now, make default at 1. - bool fNuclearProjDestructP1_NBRNDEP; - double fNuclearTgtDestructP1; // Make D=1. as in 10.3.p01 - bool fNuclearTgtDestructP1_ADEP; - double fNuclearProjDestructP2; // D=4.0 - double fNuclearProjDestructP3; // D=2.1 - double fNuclearTgtDestructP2; // D=4.0 - double fNuclearTgtDestructP3; // D=2.1 - // - double fPt2NuclearDestructP1; // D=0.035 - double fPt2NuclearDestructP2; // D=0.04 - double fPt2NuclearDestructP3; // D=4.0 - double fPt2NuclearDestructP4; // D=2.5 - // baryons... well, in fact also mesons... - double fR2ofNuclearDestruct; // D=1.5*fermi*fermi - double fExciEnergyPerWoundedNucleon; // D=40MeV - double fDofNuclearDestruct; // D=0.3 - // NOTE: this parameter has changed from 1. to 9. between 10.2 and 10.4.ref04 !!! - // ... but that's for baryons ! - // ... while for mesons it's 1GeV**2 - double fMaxPt2ofNuclearDestruct; // D=9GeV**2 - -}; - - -class G4FTFParamCollBaryonProj : public G4FTFParamCollection { - public: - // ctor - G4FTFParamCollBaryonProj(); -}; - -class G4FTFParamCollMesonProj : public G4FTFParamCollection { - - public: - - // ctor - G4FTFParamCollMesonProj(); - -}; - -class G4FTFParamCollPionProj : public G4FTFParamCollMesonProj { - - public: - - // ctor - G4FTFParamCollPionProj(); - -}; - class G4FTFParameters { public: G4FTFParameters(); @@ -471,13 +211,17 @@ class G4FTFParameters { void Reset(); - // JVY, July 31, 2017: encapsulates (current set of) parameters for the baryon projectile - // - G4FTFParamCollBaryonProj fParCollBaryonProj; - - // JVY, Feb 14, 2019: encapsulates (current set of) parameters for meson/pion (+/-/0) projectile - G4FTFParamCollMesonProj fParCollMesonProj; - G4FTFParamCollPionProj fParCollPionProj; + // Different sets of parameters (called "tunes") of the FTF model are possible. + // These tunes are kept as std::array - instead of std::vector - members of this class, + // because their size is fixed during a run, and expected to be small. + // For the time being, separate parameters are kept for "baryons", "pions", and + // the rest of "mesons"; if in the future we make more distinctions between + // projectile types (e.g. kaons, anti-baryon, hyperons, etc.), then corresponding + // new arrays will be introduced. In all cases, the size of these arrays is the + // same (and kept as a static constant in the singleton G4FTFTunings). + std::array< G4FTFParamCollBaryonProj, G4FTFTunings::sNumberOfTunes > fArrayParCollBaryonProj; + std::array< G4FTFParamCollMesonProj, G4FTFTunings::sNumberOfTunes > fArrayParCollMesonProj; + std::array< G4FTFParamCollPionProj, G4FTFTunings::sNumberOfTunes > fArrayParCollPionProj; // Glauber-Gribov hN x-section G4VComponentCrossSection* csGGinstance; diff --git a/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFTunings.hh b/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFTunings.hh new file mode 100644 index 0000000000..4d0975cae1 --- /dev/null +++ b/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFTunings.hh @@ -0,0 +1,475 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +//--------------------------------------------------------------------------- +// +// ClassName: G4FTFTunings +// +// Author: 2022 Alberto Ribon +// +// Description: Singleton to keep sets of parameters, called "tunes", +// for the FTF model. +// +// Please NOTE that, as of now (Fall 2022) ONLY ONE tune +// can be selected/applied; attempt to select multiple tunes +// will not results in any error messages, however further +// down the workflow only the FIRST of the activated tunes +// will be used. +// +// To use one of the tunes of this class, there is no need to +// change anything in this class, and use instead one of the +// following two UI commands, before initialization: +// /process/had/models/ftf/selectTuneByIndex integerIndex +// or /process/had/models/ftf/selectTuneByName stringName +// for instance: +// /process/had/models/ftf/selectTuneByIndex 1 +// or +// /process/had/models/ftf/selectTuneByIndex 2 +// or +// /process/had/models/ftf/selectTuneByIndex 3 +// or +// /process/had/models/ftf/selectTuneByName baryon-tune2022-v0 +// or +// /process/had/models/ftf/selectTuneByName pion-tune2022-v0 +// or +// /process/had/models/ftf/selectTuneByName combined-tune2022-v0 +// +// If you want to create a new tune, then you need to modify +// this class as follows: look for the first "dummy" tune +// available; if you find it, then specify its name in the +// std::array fNameOfTunes and the values of the parameters +// in the methods: G4FTFParamCollection::SetTuneN() +// G4FTFParamCollBaryonProj::SetTuneN() +// G4FTFParamCollMesonProj::SetTuneN() +// G4FTFParamCollPionProj::SetTuneN +// Note that you need to set explicitly only the parameters +// with non-default values - all the others inherit the +// corresponding default values. +// If you don't find available "dummy" tune, then you need +// to increase by (at least) 1 the number of tunes, and add +// the corresponding "SetTuneN()" methods in the 4 classes +// G4FTFParamCollection, G4FTFParamCollBaryonProj, +// G4FTFParamCollMesonProj, G4FTFParamCollPionProj +// +// In order to explore some variations of FTF parameters +// (for instance to find out a new tune), please select +// (via UI command, as explained above) the existing tune +// from which you want to start with as "baseline", and +// then set the values of the parameters you want to change +// via the following C++ code (to used before initialization): +// G4HadronicDeveloperParameters::GetInstance()->Set(...) +// +// Note: in its current, first version, of this class, +// any FTF tune is applied "globally", i.e. for all +// projectile hadrons and regardless of their kinetic +// energy. +// In future versions, we might try to have tunes that +// are meant for specific projectile type and/or for +// intervals of kinetic energy (e.g. low-energy, +// medium-energy, high-energy). +// +// Note: a few classes (written by Julia Yarba) used only in +// G4FTFParameters, related to the set of parameters of +// the FTF models, have been moved from the header and +// source files of the class G4FTFParameters to this +// (G4FTFTunings) class, with minimal modifications. +// +// Modified: +// +//---------------------------------------------------------------------------- +// +#ifndef G4FTFTunings_h +#define G4FTFTunings_h 1 + +#include "globals.hh" +#include +#include + +class G4ParticleDefinition; +class G4FTFTuningsMessenger; + + +class G4FTFTunings { + public: + + static G4FTFTunings* Instance(); + ~G4FTFTunings(); + + inline G4String GetTuneName( const G4int index ) const; + // Returns the name of the specified tune (via its index). + // Note that the name of the tune cannot be changed + // (i.e. there is no corresponding "Set" method). + + inline G4int GetTuneApplicabilityState( const G4int index ) const; + void SetTuneApplicabilityState( const G4int index, const G4int state ); + // Get/Set methods for the "applicability state" of the specified tune + // (via its index). For the time being, there are only two states: + // 0: switched off; 1: switched on. + + G4int GetIndexTune( const G4ParticleDefinition* particleDef, const G4double ekin ) const; + // Based on the projectile type and its kinetic energy (from the input arguments), + // this method returns the index of the tune which should be used. + // For the time being, it returns the first alternative tune which is switched on, + // else returns 0 which corresponds to the default set of parameters. + // Note: this is the key method that needs to be revised if we decide to have + // different tunes according to projectile type and/or projectile energy range. + + static const G4int sNumberOfTunes = 10; + // Number of tunes: must be >= 1, with the first one (i.e. with index = 0) + // which corresponds to the default set of parameters. + // For the time being, we set it to 10 : the second one (index = 1) is a + // realistic alternative tune, whereas all the remaining 8 are "dummy" tunes, + // i.e. the same as the default set of parameters. These are meant to be + // replaced in the future with other, realistic alternative tunes. + // Note: below, for the names and "applicability" status of tunes we use + // std::array - instead of std::vector - because the number of tunes + // do not change dynamically during a run, and, moreover, we expect + // quite a small number of them (just a few). + + private: + + G4FTFTunings(); + G4bool IsLocked() const; + + static G4FTFTunings* sInstance; + + G4FTFTuningsMessenger* fMessenger; + + const std::array< G4String, sNumberOfTunes > fNameOfTunes = { { + "default", // 0th tuning: default set + "baryon-tune2022-v0", // 1st tuning: Julia Yarba's presentation on 20-Jul-2022 + "pion-tune2022-v0", // 2nd tuning: Julia Yarba's presentations on 26-Sept-2022 and 19-Oct-2022 + "combined-tune2022-v0", // 3rd tuning: combo of the 1st and 2nd tuning + "fourth-dummy", // 4th tuning: dummy + "fifth-dummy", // 5th tuning: dummy + "sixth-dummy", // 6th tuning: dummy + "seventh-dummy", // 7th tuning: dummy + "eighth-dummy", // 8th tuning: dummy + "nineth-dummy" // 9th tuning: dummy + } }; + // The names of tunes can be useful for debugging. + + std::array< G4int, sNumberOfTunes > fApplicabilityOfTunes = { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; + // Each tune has an integer that specifies its applicability. + // For the time being, there only two values: + // 0 : tune is switched off (i.e. not applicable); + // 1 : tune is switched on (i.e. applicable). + // Later on, it can be extended to indicate whether it is applicable to specific + // projectile hadrons (e.g. protons, pions, etc.), and/or for specific energy ranges + // (e.g. low-energy, medium-energy, high-energy - with energy thresholds to be + // defined in this class). + // The initial values can be changed (either via C++ interface or via UI command) + // before initialization. + + //const G4double fLowEnergyThreshold = 5.0*CLHEP::GeV; + //const G4double fHighEnergyThreshold = 20.0*CLHEP::GeV; + // These constants can be used, later on, to have different tunes + // according to the energy of the projectile hadron (e.g. one set for + // low energy, one set for middle energy, and one for high energy). +}; + + +inline G4String G4FTFTunings::GetTuneName( const G4int index ) const { + if ( index < 0 || index >= sNumberOfTunes ) return G4String(); + return fNameOfTunes[index]; +} + + +inline G4int G4FTFTunings::GetTuneApplicabilityState( const G4int index ) const { + if ( index < 0 || index >= sNumberOfTunes ) return 0; // Switched off + return fApplicabilityOfTunes[index]; +} + + +//============================================================================ + +// Classes below have been created by Julia Yarba and were originally placed +// in the G4FTFParameters.{hh,cc} files ; some minimal changes and extensions +// have been included. + + +class G4FTFParamCollection { + // NOTE: the settings are different for: + // * baryons projectile + // * anti-baryons projectile + // * pions (chg or pi0) projectile + // * kaons projectile (pdg = +/-321, 311, 130, or 310) + // * "undefined" projectile - nucleon assumed + public: + + // Set-up the tune specified in the input argument, only if that tune is switched on. + virtual void SetTune( const G4int tuneIndex ); + + virtual void SetTune1(); // Set-up the 1st tune + virtual void SetTune2(); // Set-up the 2nd tune + virtual void SetTune3(); // Set-up the 3rd tune + virtual void SetTune4(); // Set-up the 4th tune + virtual void SetTune5(); // Set-up the 5th tune + virtual void SetTune6(); // Set-up the 6th tune + virtual void SetTune7(); // Set-up the 7th tune + virtual void SetTune8(); // Set-up the 8th tune + virtual void SetTune9(); // Set-up the 9th tune + //... + + virtual ~G4FTFParamCollection() {} + + // parameters of excitation + // Proc=0 --> Qexchg w/o excitation + double GetProc0A1() const { return fProc0A1; } + double GetProc0B1() const { return fProc0B1; } + double GetProc0A2() const { return fProc0A2; } + double GetProc0B2() const { return fProc0B2; } + double GetProc0A3() const { return fProc0A3; } + double GetProc0Atop() const { return fProc0Atop; } + double GetProc0Ymin() const { return fProc0Ymin; } + // Proc=1 --> Qexchg w/excitation + double GetProc1A1() const { return fProc1A1; } + double GetProc1B1() const { return fProc1B1; } + double GetProc1A2() const { return fProc1A2; } + double GetProc1B2() const { return fProc1B2; } + double GetProc1A3() const { return fProc1A3; } + double GetProc1Atop() const { return fProc1Atop; } + double GetProc1Ymin() const { return fProc1Ymin; } + // Proc=2 & Proc=3 in case ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 ) + // Update: Proc=2 & Proc=3 in case ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) + // (diffraction dissociation) + // Other parameters have a complex form for baryon projectile + // although they're just numbers for e.g. pions projectile + // Proc=2 --> Projectile diffraction + double GetProc2A1() const { return fProc2A1; } + double GetProc2B1() const { return fProc2B1; } + double GetProc2A2() const { return fProc2A2; } + double GetProc2B2() const { return fProc2B2; } + double GetProc2A3() const { return fProc2A3; } + double GetProc2Atop() const { return fProc2Atop; } + double GetProc2Ymin() const { return fProc2Ymin; } + // Proc=3 --> Target diffraction + double GetProc3A1() const { return fProc3A1; } + double GetProc3B1() const { return fProc3B1; } + double GetProc3A2() const { return fProc3A2; } + double GetProc3B2() const { return fProc3B2; } + double GetProc3A3() const { return fProc3A3; } + double GetProc3Atop() const { return fProc3Atop; } + double GetProc3Ymin() const { return fProc3Ymin; } + bool IsProjDiffDissociation() const { return fProjDiffDissociation; } + bool IsTgtDiffDissociation() const { return fTgtDiffDissociation; } + // Proc=4 --> Qexchg "w/additional multiplier" in excitation + double GetProc4A1() const { return fProc4A1; } + double GetProc4B1() const { return fProc4B1; } + double GetProc4A2() const { return fProc4A2; } + double GetProc4B2() const { return fProc4B2; } + double GetProc4A3() const { return fProc4A3; } + double GetProc4Atop() const { return fProc4Atop; } + double GetProc4Ymin() const { return fProc4Ymin; } + // + double GetDeltaProbAtQuarkExchange() const { return fDeltaProbAtQuarkExchange; } + double GetProbOfSameQuarkExchange() const { return fProbOfSameQuarkExchange; } + double GetProjMinDiffMass() const { return fProjMinDiffMass; } + double GetProjMinNonDiffMass() const { return fProjMinNonDiffMass; } + double GetTgtMinDiffMass() const { return fTgtMinDiffMass; } + double GetTgtMinNonDiffMass() const { return fTgtMinNonDiffMass; } + double GetAveragePt2() const { return fAveragePt2; } + double GetProbLogDistrPrD() const { return fProbLogDistrPrD; } + double GetProbLogDistr() const { return fProbLogDistr; } + // NOTE (JVY): There is also the Pt2Kind parameter but for now it's set to 0., so we'll leave it aside + // --> FIXME !!! --> void Get/SetBaryonMaxNumberOfCollisions( const double, const double ); // 1st is Plab, 2nd - D=2. + double GetNuclearProjDestructP1() const { return fNuclearProjDestructP1; } + bool IsNuclearProjDestructP1_NBRNDEP() const { return fNuclearProjDestructP1_NBRNDEP; } + double GetNuclearTgtDestructP1() const { return fNuclearTgtDestructP1; } + bool IsNuclearTgtDestructP1_ADEP() const { return fNuclearTgtDestructP1_ADEP; } + double GetNuclearProjDestructP2() const { return fNuclearProjDestructP2; } + double GetNuclearProjDestructP3() const { return fNuclearProjDestructP3; } + double GetNuclearTgtDestructP2() const { return fNuclearTgtDestructP2; } + double GetNuclearTgtDestructP3() const { return fNuclearTgtDestructP3; } + double GetPt2NuclearDestructP1() const { return fPt2NuclearDestructP1; } + double GetPt2NuclearDestructP2() const { return fPt2NuclearDestructP2; } + double GetPt2NuclearDestructP3() const { return fPt2NuclearDestructP3; } + double GetPt2NuclearDestructP4() const { return fPt2NuclearDestructP4; } + // separately for baryons, mesons, etc. + double GetR2ofNuclearDestruct() const { return fR2ofNuclearDestruct; } + double GetExciEnergyPerWoundedNucleon() const { return fExciEnergyPerWoundedNucleon; } + double GetDofNuclearDestruct() const { return fDofNuclearDestruct; } + double GetMaxPt2ofNuclearDestruct() const { return fMaxPt2ofNuclearDestruct; } + + protected: + + G4FTFParamCollection(); + + // parameters of excitation + // these are for Inelastic interactions, i.e. Xinelastic=(Xtotal-Xelastix)>0. + // for elastic, all the A's & B's, Atop & Ymin are zeros + // general formula: Pp = A1*exp(B1*Y) + A2*exp(B2*Y) + A3 + // but if Y Qexchg w/o excitation + double fProc0A1; + double fProc0B1; + double fProc0A2; + double fProc0B2; + double fProc0A3; + double fProc0Atop; + double fProc0Ymin; + // Proc=1 --> Qexchg w/excitation + double fProc1A1; + double fProc1B1; + double fProc1A2; + double fProc1B2; + double fProc1A3; + double fProc1Atop; + double fProc1Ymin; + // NOTE: Proc #2 & 3 are projectile & target diffraction + // they have more complex definition of A1 & A2 + // for *baryons* although they're just numbers for pions + // (example for baryons below) + // SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);// Projectile diffraction + // SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);// Target diffraction + // + // Also, for ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 ) + // projectile and/or target diffraction (dissociation) may be switched ON/OFF + bool fProjDiffDissociation; + bool fTgtDiffDissociation; + // Proc=2 --> Projectile diffraction + double fProc2A1; + double fProc2B1; + double fProc2A2; + double fProc2B2; + double fProc2A3; + double fProc2Atop; + double fProc2Ymin; + // Proc=3 --> Target diffraction + double fProc3A1; + double fProc3B1; + double fProc3A2; + double fProc3B2; + double fProc3A3; + double fProc3Atop; + double fProc3Ymin; + // Proc=4 --> Qexchg w/additional multiplier in excitation + double fProc4A1; + double fProc4B1; + double fProc4A2; + double fProc4B2; + double fProc4A3; + double fProc4Atop; + double fProc4Ymin; + // parameters of participating baryon excitation + // NOTE: baryon or HADRON ??? + // NOTE: this parameters (as C++ class data members) are used for all types of hadrons + // but the values for a specific group of particles can be are different from + // another group of particles + // the defaults listed under coments are for baryons, + // and they may be different or the same for other hadrons (e.g. mesons) + double fDeltaProbAtQuarkExchange; + double fProbOfSameQuarkExchange; + double fProjMinDiffMass; + double fProjMinNonDiffMass; + double fTgtMinDiffMass; + double fTgtMinNonDiffMass; + double fAveragePt2; + double fProbLogDistrPrD; + double fProbLogDistr; + // parameters of nuclear distruction + // NOTE (JVY): there're 3 cases here: + // * baryon projectile + // * anti-baryon projectile + // * meson projectile + // double fBaryonMaxNumberOfCollisions; // D=2. + // void SetBaryonProbOfInteraction( const double ); // ??? this is prob. of inelastic interaction + // that is set internally based on certain conditions... + // general (i.e. for used for baryons,anti-baryons, and mesons) + // NOTE: these parameters have stayed THE SAME for quite a while + double fNuclearProjDestructP1; + bool fNuclearProjDestructP1_NBRNDEP; + double fNuclearTgtDestructP1; + bool fNuclearTgtDestructP1_ADEP; + double fNuclearProjDestructP2; + double fNuclearProjDestructP3; + double fNuclearTgtDestructP2; + double fNuclearTgtDestructP3; + // + double fPt2NuclearDestructP1; + double fPt2NuclearDestructP2; + double fPt2NuclearDestructP3; + double fPt2NuclearDestructP4; + // baryons... well, in fact also mesons... + double fR2ofNuclearDestruct; + double fExciEnergyPerWoundedNucleon; + double fDofNuclearDestruct; + double fMaxPt2ofNuclearDestruct; +}; + + +class G4FTFParamCollBaryonProj : public G4FTFParamCollection { + public: + G4FTFParamCollBaryonProj(); + + virtual void SetTune1() override; // Set-up the baryon part of the 1st tune + virtual void SetTune2() override; // Set-up the baryon part of the 2nd tune + virtual void SetTune3() override; // Set-up the baryon part of the 3rd tune + virtual void SetTune4() override; // Set-up the baryon part of the 4th tune + virtual void SetTune5() override; // Set-up the baryon part of the 5th tune + virtual void SetTune6() override; // Set-up the baryon part of the 6th tune + virtual void SetTune7() override; // Set-up the baryon part of the 7th tune + virtual void SetTune8() override; // Set-up the baryon part of the 8th tune + virtual void SetTune9() override; // Set-up the baryon part of the 9th tune + //... +}; + + +class G4FTFParamCollMesonProj : public G4FTFParamCollection { + public: + G4FTFParamCollMesonProj(); + + virtual void SetTune1() override; // Set-up the meson part of the 1st tune + virtual void SetTune2() override; // Set-up the meson part of the 2nd tune + virtual void SetTune3() override; // Set-up the meson part of the 3rd tune + virtual void SetTune4() override; // Set-up the meson part of the 4th tune + virtual void SetTune5() override; // Set-up the meson part of the 5th tune + virtual void SetTune6() override; // Set-up the meson part of the 6th tune + virtual void SetTune7() override; // Set-up the meson part of the 7th tune + virtual void SetTune8() override; // Set-up the meson part of the 8th tune + virtual void SetTune9() override; // Set-up the meson part of the 9th tune + //... +}; + + +class G4FTFParamCollPionProj : public G4FTFParamCollMesonProj { + public: + G4FTFParamCollPionProj(); + + virtual void SetTune1() override; // Set-up the pion part of the 1st tune + virtual void SetTune2() override; // Set-up the pion part of the 2nd tune + virtual void SetTune3() override; // Set-up the pion part of the 3rd tune + virtual void SetTune4() override; // Set-up the pion part of the 4th tune + virtual void SetTune5() override; // Set-up the pion part of the 5th tune + virtual void SetTune6() override; // Set-up the pion part of the 6th tune + virtual void SetTune7() override; // Set-up the pion part of the 7th tune + virtual void SetTune8() override; // Set-up the pion part of the 8th tune + virtual void SetTune9() override; // Set-up the pion part of the 9th tune + //... +}; + +#endif diff --git a/source/visualization/externals/gl2ps/include/G4OpenGL2PSAction.hh b/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFTuningsMessenger.hh similarity index 68% rename from source/visualization/externals/gl2ps/include/G4OpenGL2PSAction.hh rename to source/processes/hadronic/models/parton_string/diffraction/include/G4FTFTuningsMessenger.hh index 4fbe3b1cf6..7fcf5b8ab4 100644 --- a/source/visualization/externals/gl2ps/include/G4OpenGL2PSAction.hh +++ b/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFTuningsMessenger.hh @@ -23,45 +23,32 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// +//--------------------------------------------------------------------------- +// ClassName: G4FTFTuningsMessenger +// Author: Alberto Ribon +// Date: August 2022 +// Description: messenger class for the class G4FTFTunings +//--------------------------------------------------------------------------- -#ifndef G4OpenGL2PSAction_h -#define G4OpenGL2PSAction_h +#ifndef G4FTFTuningsMessenger_h +#define G4FTFTuningsMessenger_h 1 +#include "G4UImessenger.hh" #include "globals.hh" -#include "Geant4_gl2ps.h" -class G4OpenGL2PSAction { +class G4UIcommand; +class G4UIcmdWithAnInteger; +class G4UIcmdWithAString; -public: - G4OpenGL2PSAction(); - - void setFileName(const char*); - void setExportImageFormat(unsigned int); - bool enableFileWriting(); - // return true if ok, false is an error occured - bool disableFileWriting(); - // return true when OK, false if errror - - bool fileWritingEnabled() const; - void setLineWidth(int); - void setPointSize(int); - void setViewport(int,int,int,int); - bool extendBufferSize(); - void resetBufferSizeParameters(); - void setBufferSize(int); - -protected: - bool G4gl2psBegin(); - G4String fFileName; - FILE* fFile; - GLint fViewport[4]; - GLint fBufferSize; - GLint fBufferSizeLimit; -private: - unsigned int fExportImageFormat; +class G4FTFTuningsMessenger : public G4UImessenger { + public: + explicit G4FTFTuningsMessenger(); + ~G4FTFTuningsMessenger(); + void SetNewValue ( G4UIcommand *command, G4String newValues ) override; + private: + G4UIcmdWithAnInteger* theFTFTuneIndexCmd; + G4UIcmdWithAString* theFTFTuneNameCmd; }; #endif - diff --git a/source/processes/hadronic/models/parton_string/diffraction/sources.cmake b/source/processes/hadronic/models/parton_string/diffraction/sources.cmake index 00565ce130..c0307b99fe 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/sources.cmake +++ b/source/processes/hadronic/models/parton_string/diffraction/sources.cmake @@ -10,6 +10,8 @@ geant4_add_module(G4had_string_diff G4FTFModel.hh G4FTFParameters.hh G4FTFParticipants.hh + G4FTFTunings.hh + G4FTFTuningsMessenger.hh SOURCES G4DiffractiveExcitation.cc G4DiffractiveSplitableHadron.cc @@ -17,7 +19,9 @@ geant4_add_module(G4had_string_diff G4FTFAnnihilation.cc G4FTFModel.cc G4FTFParameters.cc - G4FTFParticipants.cc) + G4FTFParticipants.cc + G4FTFTunings.cc + G4FTFTuningsMessenger.cc) geant4_module_link_libraries(G4had_string_diff PUBLIC @@ -26,6 +30,7 @@ geant4_module_link_libraries(G4had_string_diff G4had_string_man G4hadronic_util G4hepgeometry + G4intercoms PRIVATE G4had_string_frag G4hadronic_xsect diff --git a/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveExcitation.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveExcitation.cc index 8531ef2384..b5c50b4980 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveExcitation.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveExcitation.cc @@ -384,7 +384,7 @@ ExciteParticipants_doChargeExchange( G4VSplitableHadron* projectile, if ( ProjExchangeQ != TargQ1 ) NpossibleStates++; if ( ProjExchangeQ != TargQ2 ) NpossibleStates++; if ( ProjExchangeQ != TargQ3 ) NpossibleStates++; - G4int Nsampled = G4RandFlat::shootInt( G4long( NpossibleStates ) ) + 1; + G4int Nsampled = (G4int)G4RandFlat::shootInt( G4long( NpossibleStates ) )+1; NpossibleStates = 0; if ( ProjExchangeQ != TargQ1 ) { if ( ++NpossibleStates == Nsampled ) { @@ -415,26 +415,42 @@ ExciteParticipants_doChargeExchange( G4VSplitableHadron* projectile, while ( attempts++ < maxNumberOfAttempts ) { /* Loop checking, 10.08.2015, A.Ribon */ // Determination of a new projectile ID which satisfies energy-momentum conservation + G4double ProbSpin0 = 0.5; G4double Ksi = G4UniformRand(); if ( aProjQ1 == aProjQ2 ) { - if ( aProjQ1 < 3 ) { - NewProjCode = 111; // Pi0-meson - if ( Ksi < 0.5 ) { - NewProjCode = 221; // Eta-meson - if ( Ksi < 0.25 ) { - NewProjCode = 331; // Eta'-meson - } - } - } else if ( aProjQ1 == 3 ) { - NewProjCode = 221; // Eta-meson - if ( Ksi < 0.5 ) { - NewProjCode = 331; // Eta'-meson - } - } else if ( aProjQ1 == 4 ) { - NewProjCode = 441; // Eta_c - } else if ( aProjQ1 == 5 ) { - NewProjCode = 553; // Upsilon - } + if ( G4UniformRand() < ProbSpin0 ) { // Meson spin = 0 (pseudo-scalar) + if ( aProjQ1 < 3 ) { + NewProjCode = 111; // pi0 + if ( Ksi < 0.5 ) { + NewProjCode = 221; // eta + if ( Ksi < 0.25 ) { + NewProjCode = 331; // eta' + } + } + } else if ( aProjQ1 == 3 ) { + NewProjCode = 221; // eta + if ( Ksi < 0.5 ) { + NewProjCode = 331; // eta' + } + } else if ( aProjQ1 == 4 ) { + NewProjCode = 441; // eta_c(1S) + } else if ( aProjQ1 == 5 ) { + NewProjCode = 551; // eta_b(1S) + } + } else { // Meson spin = 1 (vector meson) + if ( aProjQ1 < 3 ) { + NewProjCode = 113; // rho0 + if ( Ksi < 0.5 ) { + NewProjCode = 223; // omega + } + } else if ( aProjQ1 == 3 ) { + NewProjCode = 333; // phi + } else if ( aProjQ1 == 4 ) { + NewProjCode = 443; // J/psi(1S) + } else if ( aProjQ1 == 5 ) { + NewProjCode = 553; // Upsilon(1S) + } + } } else { if ( aProjQ1 > aProjQ2 ) { NewProjCode = aProjQ1*100 + aProjQ2*10 + 1; diff --git a/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveSplitableHadron.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveSplitableHadron.cc index a2f72960dd..6444a7dc63 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveSplitableHadron.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveSplitableHadron.cc @@ -202,6 +202,16 @@ void G4DiffractiveSplitableHadron::ChooseStringEnds( G4int PDGcode, G4int* aEnd, G4int j100 = (PDGcode % 1000)/100; G4int j10 = (PDGcode % 100)/10; + if ( absPDGcode > 4000 ) { + *aEnd = j10; + if ( G4UniformRand() > 0.25 ) { + *bEnd = Diquark( j1000, j100, 0 ); + } else { + *bEnd = Diquark( j1000, j100, 1 ); + } + return; + } + G4double SuppresUUDDSS=1.0/2.0; if ((j1000 == j100) && (j1000 == j10)) SuppresUUDDSS=1.; diff --git a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFAnnihilation.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFAnnihilation.cc index de8433ad22..000ed74348 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFAnnihilation.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFAnnihilation.cc @@ -292,8 +292,99 @@ Create3QuarkAntiQuarkStrings( G4VSplitableHadron* projectile, G4cout << "Process a, 3 shirt diagram" << G4endl; #endif + // Sampling kinematical properties of quark. It can be done before string's creation + + const G4int maxNumberOfLoops = 1000; + G4double MassQ2 = 0.0; // Simplest case is considered with Mass_Q = 0.0 + // In principle, this must work with Mass_Q != 0.0 + G4double Quark_Xs[6]; + G4ThreeVector Quark_Mom[6]; + + G4double Alfa_R = 0.5; + G4double AveragePt2 = 200.0*200.0, maxPtSquare = common.S; + G4double ScaleFactor = 1.0; + G4double Alfa = 0.0, Beta = 0.0; + + G4int NumberOfTries = 0, loopCounter = 0; + + do { + // Sampling X's of anti-baryon and baryon + G4double x1 = 0.0, x2 = 0.0, x3 = 0.0; + G4double Product = 1.0; + for ( G4int iCase = 0; iCase < 2; ++iCase ) { // anti-baryon (1st case), baryon (2nd case) + + G4double r1 = G4UniformRand(), r2 = G4UniformRand(); + if ( Alfa_R == 1.0 ) { + x1 = 1.0 - std::sqrt( r1 ); + x2 = (1.0 - x1) * r2; + } else { + x1 = sqr( r1 ); + x2 = (1.0 - x1) * sqr( std::sin( pi/2.0*r2 ) ); + } + x3 = 1.0 - x1 - x2; + + G4int index = iCase*3; // 0 for anti-baryon, 3 for baryon + Quark_Xs[index] = x1; Quark_Xs[index+1] = x2; Quark_Xs[index+2] = x3; + Product *= (x1*x2*x3); + } + + if ( Product == 0.0 ) continue; + + ++NumberOfTries; + if ( NumberOfTries == 100*(NumberOfTries/100) ) { + // After a large number of tries, it is better to reduce the values of + ScaleFactor /= 2.0; + AveragePt2 *= ScaleFactor; + } + + G4ThreeVector PtSum( 0.0, 0.0, 0.0 ); + for ( G4int i = 0; i < 6; ++i ) { + Quark_Mom [i] = GaussianPt( AveragePt2, maxPtSquare ); + PtSum += Quark_Mom[i]; + } + + PtSum /= 6.0; + Alfa = 0.0; Beta = 0.0; + + for ( G4int i = 0; i < 6; ++i ) { // Loop over the quarks and (anti-)quarks + Quark_Mom[i] -= PtSum; + + G4double val = ( Quark_Mom[i].mag2() + MassQ2 ) / Quark_Xs[i]; + if ( i < 3 ) { // anti-baryon + Alfa += val; + } else { // baryon (iCase == 1) + Beta += val; + } + } + + } while ( ( std::sqrt( Alfa ) + std::sqrt( Beta ) > common.SqrtS ) && + ++loopCounter < maxNumberOfLoops ); /* Loop checking, 10.08.2015, A.Ribon */ + + if ( loopCounter >= maxNumberOfLoops ) { + return false; + } + + G4double DecayMomentum2 = sqr(common.S) + sqr(Alfa) + sqr(Beta) + - 2.0*( common.S*(Alfa + Beta) + Alfa*Beta ); + + G4double WminusTarget = 0.0, WplusProjectile = 0.0; + WminusTarget = ( common.S - Alfa + Beta + std::sqrt( DecayMomentum2 ) ) / 2.0 / common.SqrtS; + WplusProjectile = common.SqrtS - Beta/WminusTarget; + + for ( G4int iCase = 0; iCase < 2; ++iCase ) { // anti-baryon (1st case), baryon (2nd case) + G4int index = iCase*3; // 0 for anti-baryon, 3 for baryon + G4double w = WplusProjectile; // for anti-baryon + if ( iCase == 1 ) w = - WminusTarget; // for baryon + for ( G4int i = 0; i < 3; ++i ) { + G4double Pz = w * Quark_Xs[index+i] / 2.0 - + ( Quark_Mom[index+i].mag2() + MassQ2 ) / + ( 2.0 * w * Quark_Xs[index+i] ); + Quark_Mom[index+i].setZ( Pz ); + } + } + // Sampling of anti-quark order in projectile - G4int SampledCase = G4RandFlat::shootInt( G4long( 6 ) ); + G4int SampledCase = (G4int)G4RandFlat::shootInt( 6 ); G4int Tmp1 = 0, Tmp2 = 0; switch ( SampledCase ) { case 1 : Tmp1 = common.AQ[1]; common.AQ[1] = common.AQ[2]; common.AQ[2] = Tmp1; break; @@ -329,7 +420,7 @@ Create3QuarkAntiQuarkStrings( G4VSplitableHadron* projectile, G4int absAntiQuark = std::abs( antiQuark ), absQuark = std::abs( quark ); G4double aKsi = G4UniformRand(); if ( absAntiQuark == absQuark ) { - if ( absAntiQuark != 3 ) { + if ( absAntiQuark != 3 ) { // Not yet considered the case absAntiQuark 4 (charm) and 5 (bottom) NewCode = 111; // Pi0-meson if ( aKsi < 0.5 ) { NewCode = 221; // Eta -meson @@ -343,7 +434,7 @@ Create3QuarkAntiQuarkStrings( G4VSplitableHadron* projectile, NewCode = 331; // Eta'-meson } } - } else { + } else { // Vector mesons - rho, omega, phi (not yet considered the analogous cases for charm and bottom) if ( absAntiQuark > absQuark ) { NewCode = absAntiQuark*100 + absQuark*10 + 1; NewCode *= absAntiQuark/antiQuark; } else { @@ -355,8 +446,8 @@ Create3QuarkAntiQuarkStrings( G4VSplitableHadron* projectile, if ( ! TestParticle ) return false; if ( iString == 0 ) { projectile->SetDefinition( TestParticle ); - theParameters->SetProjMinDiffMass( 0.5 ); - theParameters->SetProjMinNonDiffMass( 0.5 ); + theParameters->SetProjMinDiffMass( 0.5 ); // 0.5 GeV : Min diffractive mass of pi-meson + theParameters->SetProjMinNonDiffMass( 0.5 ); // It must be self-consistent with Parameters } else if ( iString == 1 ) { target->SetDefinition( TestParticle ); theParameters->SetTarMinDiffMass( 0.5 ); @@ -369,106 +460,8 @@ Create3QuarkAntiQuarkStrings( G4VSplitableHadron* projectile, } } // End of the for loop over the 3 string cases - // Sampling kinematical properties: // 1st string AQ[0]-Q[0], 2nd string AQ[1]-Q[1], 3rd string AQ[2]-Q[2] - G4ThreeVector Quark_Mom[6]; - G4double ModMom2[6]; - G4double AveragePt2 = 200.0*200.0, maxPtSquare = common.S, SumMt = 0.0, MassQ2 = 0.0, - ScaleFactor = 1.0; - G4int NumberOfTries = 0, loopCounter = 0; - const G4int maxNumberOfLoops = 1000; - do { - ++NumberOfTries; - if ( NumberOfTries == 100*(NumberOfTries/100) ) { - // At large number of tries it would be better to reduce the values of - ScaleFactor /= 2.0; - AveragePt2 *= ScaleFactor; - } - G4ThreeVector PtSum( 0.0, 0.0, 0.0 ); - for ( G4int i = 0; i < 6; ++i ) { - Quark_Mom [i] = GaussianPt( AveragePt2, maxPtSquare ); - PtSum += Quark_Mom[i]; - } - PtSum /= 6.0; - SumMt = 0.0; - for ( G4int i = 0; i < 6; ++i ) { - Quark_Mom[i] -= PtSum; - ModMom2[i] = Quark_Mom[i].mag2(); - SumMt += std::sqrt( ModMom2[i] + MassQ2 ); - } - } while ( ( SumMt > common.SqrtS ) && - ++loopCounter < maxNumberOfLoops ); /* Loop checking, 10.08.2015, A.Ribon */ - if ( loopCounter >= maxNumberOfLoops ) { - return false; - } - - // Sampling X's of anti-baryon and baryon - G4double WminusTarget = 0.0, WplusProjectile = 0.0; - G4double Alfa_R = 0.5; - G4bool Success = true; - NumberOfTries = 0; loopCounter = 0; - do { - Success = true; - ++NumberOfTries; - G4double Alfa = 0.0, Beta = 0.0; - for ( G4int iCase = 0; iCase < 2; ++iCase ) { // anti-baryon (1st case), baryon (2nd case) - G4double x1 = 0.0, x2 = 0.0; - G4double r1 = G4UniformRand(), r2 = G4UniformRand(); - if ( Alfa_R == 1.0 ) { - x1 = 1.0 - std::sqrt( r1 ); - x2 = (1.0 - x1) * r2; - } else { - x1 = sqr( r1 ); - x2 = (1.0 - x1) * sqr( std::sin( pi/2.0*r2 ) ); - } - G4double x3 = 1.0 - x1 - x2; - G4int index = iCase*3; // 0 for anti-baryon, 3 for baryon - Quark_Mom[index].setZ( x1 ); Quark_Mom[index+1].setZ( x2 ); Quark_Mom[index+2].setZ( x3 ); - for ( G4int i = 0; i < 3; ++i ) { // Loop over the 3 (anti-)quarks - if ( Quark_Mom[index+i].getZ() != 0.0 ) { - G4double val = ( ModMom2[index+i] + MassQ2 ) / Quark_Mom[index+i].getZ(); - if ( iCase == 0 ) { // anti-baryon - Alfa += val; - } else { // baryon (iCase == 1) - Beta += val; - } - } else { - Success = false; - } - } - } - if ( ! Success ) continue; - if ( std::sqrt( Alfa ) + std::sqrt( Beta ) > common.SqrtS ) { - Success = false; - continue; - } - G4double DecayMomentum2 = sqr(common.S) + sqr(Alfa) + sqr(Beta) - - 2.0*( common.S*(Alfa + Beta) + Alfa*Beta ); - WminusTarget = ( common.S - Alfa + Beta + std::sqrt( DecayMomentum2 ) ) / 2.0 / common.SqrtS; - WplusProjectile = common.SqrtS - Beta/WminusTarget; - } while ( ( ! Success ) && - ++loopCounter < maxNumberOfLoops ); /* Loop checking, 10.08.2015, A.Ribon */ - if ( loopCounter >= maxNumberOfLoops ) { - return false; - } - - G4double SqrtScaleF = 1.0; - for ( G4int iCase = 0; iCase < 2; ++iCase ) { // anti-baryon (1st case), baryon (2nd case) - G4int index = iCase*3; // 0 for anti-baryon, 3 for baryon - G4double w = WplusProjectile; // for anti-baryon - if ( iCase == 1 ) w = - WminusTarget; // for baryon - for ( G4int i = 0; i < 3; ++i ) { - G4double Pz = w * Quark_Mom[index+i].getZ() / 2.0 - - ( ScaleFactor * ModMom2[index+i] + MassQ2 ) / - ( 2.0 * w * Quark_Mom[index+i].getZ() ); - Quark_Mom[index+i].setZ( Pz ); - if ( ScaleFactor != 1.0 ) { - Quark_Mom[index+i].setX( SqrtScaleF * Quark_Mom[index+i].getX() ); - Quark_Mom[index+i].setY( SqrtScaleF * Quark_Mom[index+i].getY() ); - } - } - } G4LorentzVector Pstring1, Pstring2, Pstring3; G4int QuarkOrder[3] = { 0 }; G4double YstringMax = 0.0, YstringMin = 0.0; @@ -542,6 +535,16 @@ Create3QuarkAntiQuarkStrings( G4VSplitableHadron* projectile, common.Ptarget = Pstring3; // Lowest rapidity G4LorentzVector LeftString( Pstring2 ); // Middle rapidity + if ( common.RotateStrings ) { + common.Pprojectile *= common.RandomRotation; + common.Ptarget *= common.RandomRotation; + LeftString *= common.RandomRotation; + } + + common.Pprojectile.transform( common.toLab ); + common.Ptarget.transform( common.toLab ); + LeftString.transform( common.toLab ); + // Calculation of the creation time // Creation time and position of target nucleon were determined in ReggeonCascade() of G4FTFModel projectile->SetTimeOfCreation( target->GetTimeOfCreation() ); @@ -579,7 +582,7 @@ Create1DiquarkAntiDiquarkString( G4VSplitableHadron* projectile, G4int CandidatsN = 0, CandAQ[9][2] = {}, CandQ[9][2] = {}; for ( G4int iAQ = 0; iAQ < 3; ++iAQ ) { // index of the 3 constituent anti-quarks of the antibaryon projectile - for ( G4int iQ = 0; iQ < 3; ++iQ ) { // index of the 3 constituent quarks of the nucleon target + for ( G4int iQ = 0; iQ < 3; ++iQ ) { // index of the 3 constituent quarks of the target nucleon if ( -common.AQ[iAQ] == common.Q[iQ] ) { // antiquark - quark that can annihilate // Here "0", "1", "2" means, respectively, "first", "second" and "third" constituent // of the (anti-baryon) projectile or (nucleon) target. @@ -597,7 +600,7 @@ Create1DiquarkAntiDiquarkString( G4VSplitableHadron* projectile, // Remaining two (anti-)quarks that form the (anti-)diquark G4int LeftAQ1 = 0, LeftAQ2 = 0, LeftQ1 = 0, LeftQ2 = 0; if ( CandidatsN != 0 ) { - G4int SampledCase = G4RandFlat::shootInt( G4long( CandidatsN ) ); + G4int SampledCase = (G4int)G4RandFlat::shootInt( CandidatsN ); LeftAQ1 = common.AQ[ CandAQ[SampledCase][0] ]; LeftAQ2 = common.AQ[ CandAQ[SampledCase][1] ]; LeftQ1 = common.Q[ CandQ[SampledCase][0] ]; @@ -622,8 +625,9 @@ Create1DiquarkAntiDiquarkString( G4VSplitableHadron* projectile, projectile->SetFirstParton( DQ ); projectile->SetSecondParton( Anti_DQ ); - G4LorentzVector Pquark = G4LorentzVector( 0.0, 0.0, common.SqrtS/2.0, common.SqrtS/2.0 ); - G4LorentzVector Paquark = G4LorentzVector( 0.0, 0.0, -common.SqrtS/2.0, common.SqrtS/2.0 ); + // It is assumed that quark and di-quark masses are 0. + G4LorentzVector Pquark = G4LorentzVector( 0.0, 0.0, -common.SqrtS/2.0, common.SqrtS/2.0 ); + G4LorentzVector Paquark = G4LorentzVector( 0.0, 0.0, common.SqrtS/2.0, common.SqrtS/2.0 ); if ( common.RotateStrings ) { Pquark *= common.RandomRotation; @@ -658,6 +662,9 @@ Create1DiquarkAntiDiquarkString( G4VSplitableHadron* projectile, return 0; // Completed successfully: nothing else to be done } // End of if ( CandidatsN != 0 ) + // If we allow the string to interact with other nuclear nucleons, we have to + // set up MinDiffrMass in Parameters, and ascribe a PDGEncoding. To be done yet! + return 1; // Successfully ended, but the work is not over } @@ -680,6 +687,91 @@ Create2QuarkAntiQuarkStrings( G4VSplitableHadron* projectile, << G4endl; #endif + // Sampling kinematical properties: 1st string LeftAQ1-LeftQ1, 2nd string LeftAQ2-LeftQ2 + G4ThreeVector Quark_Mom[4]; + G4double Quark_Xs[4]; + G4double AveragePt2 = 200.0*200.0, maxPtSquare = common.S, MassQ2 = 0.0, ScaleFactor = 1.0; + G4int NumberOfTries = 0, loopCounter = 0; + const G4int maxNumberOfLoops = 1000; + G4double Alfa = 0.0, Beta = 0.0; + G4double WminusTarget = 0.0, WplusProjectile = 0.0, Alfa_R = 0.5; + do { + // Sampling X's of the 2 quarks and 2 anti-quarks + + G4double Product = 1.0; + for ( G4int iCase = 0; iCase < 2; ++iCase ) { // Loop over the two strings + G4double x = 0.0, r = G4UniformRand(); + if ( Alfa_R == 1.0 ) { + if ( iCase == 0 ) { // first string + x = std::sqrt( r ); + } else { // second string + x = 1.0 - std::sqrt( r ); + } + } else { + x = sqr( std::sin( pi/2.0*r ) ); + } + G4int index = iCase*2; // 0 for the first string, 2 for the second string + Quark_Xs[index] = x ; Quark_Xs[index+1] = 1.0 - x ; + Product *= x*(1.0-x); + } + + if ( Product == 0.0 ) continue; + + ++NumberOfTries; + if ( NumberOfTries == 100*(NumberOfTries/100) ) { + // After a large number of tries, it is better to reduce the values of + ScaleFactor /= 2.0; + AveragePt2 *= ScaleFactor; + } + + G4ThreeVector PtSum( 0.0, 0.0, 0.0 ); + for( G4int i = 0; i < 4; ++i ) { + Quark_Mom[i] = GaussianPt( AveragePt2, maxPtSquare ); + PtSum += Quark_Mom[i]; + } + + PtSum /= 4.0; + for ( G4int i = 0; i < 4; ++i ) { + Quark_Mom[i] -= PtSum; + } + + Alfa = 0.0; Beta = 0.0; + for ( G4int iCase = 0; iCase < 2; ++iCase ) { + G4int index = iCase * 2; + for ( G4int i = 0; i < 2; ++i ) { + G4double val = ( Quark_Mom[index+i].mag2() + MassQ2 ) / Quark_Xs[index+i]; + if ( iCase == 0 ) { // first string + Alfa += val; + } else { // second string + Beta += val; + } + } + } + + } while ( ( std::sqrt( Alfa ) + std::sqrt( Beta ) > common.SqrtS ) && + ++loopCounter < maxNumberOfLoops ); /* Loop checking, 10.08.2015, A.Ribon */ + + if ( loopCounter >= maxNumberOfLoops ) { + return 99; // unsuccessfully ended, nothing else can be done + } + + G4double DecayMomentum2 = sqr(common.S) + sqr(Alfa) + sqr(Beta) + - 2.0*( common.S*(Alfa + Beta) + Alfa*Beta ); + WminusTarget = ( common.S - Alfa + Beta + std::sqrt( DecayMomentum2 ) ) / 2.0 / common.SqrtS; + WplusProjectile = common.SqrtS - Beta/WminusTarget; + + for ( G4int iCase = 0; iCase < 2; ++iCase ) { // Loop over the two strings + G4int index = iCase*2; // 0 for the first string, 2 for the second string + for ( G4int i = 0; i < 2; ++i ) { + G4double w = WplusProjectile; // For the first string + if ( iCase == 1 ) w = - WminusTarget; // For the second string + G4double Pz = w * Quark_Xs[index+i] / 2.0 + - ( Quark_Mom[index+i].mag2() + MassQ2 ) / + ( 2.0 * w * Quark_Xs[index+i] ); + Quark_Mom[index+i].setZ( Pz ); + } + } + G4int CandidatsN = 0, CandAQ[9][2] = {}, CandQ[9][2] = {}; G4int LeftAQ1 = 0, LeftAQ2 = 0, LeftQ1 = 0, LeftQ2 = 0; for ( G4int iAQ = 0; iAQ < 3; ++iAQ ) { // index of the 3 constituent anti-quarks of the antibaryon projectile @@ -699,7 +791,7 @@ Create2QuarkAntiQuarkStrings( G4VSplitableHadron* projectile, } if ( CandidatsN != 0 ) { - G4int SampledCase = G4RandFlat::shootInt( G4long( CandidatsN ) ); + G4int SampledCase = (G4int)G4RandFlat::shootInt( CandidatsN ); LeftAQ1 = common.AQ[ CandAQ[SampledCase][0] ]; LeftAQ2 = common.AQ[ CandAQ[SampledCase][1] ]; if ( G4UniformRand() < 0.5 ) { @@ -765,104 +857,6 @@ Create2QuarkAntiQuarkStrings( G4VSplitableHadron* projectile, } } // End of loop over the 2 string cases - // Sampling kinematical properties: 1st string LeftAQ1-LeftQ1, 2nd string LeftAQ2-LeftQ2 - G4ThreeVector Quark_Mom[4]; - G4double ModMom2[4]; - G4double AveragePt2 = 200.0*200.0, maxPtSquare = common.S, SumMt = 0.0, MassQ2 = 0.0, - ScaleFactor = 1.0; - G4int NumberOfTries = 0, loopCounter = 0; - const G4int maxNumberOfLoops = 1000; - do { - ++NumberOfTries; - if ( NumberOfTries == 100*(NumberOfTries/100) ) { - // At large number of tries it would be better to reduce the values of - ScaleFactor /= 2.0; - AveragePt2 *= ScaleFactor; - } - G4ThreeVector PtSum( 0.0, 0.0, 0.0 ); - for( G4int i = 0; i < 4; ++i ) { - Quark_Mom[i] = GaussianPt( AveragePt2, maxPtSquare ); - PtSum += Quark_Mom[i]; - } - PtSum /= 4.0; - SumMt = 0.0; - for ( G4int i = 0; i < 4; ++i ) { - Quark_Mom[i] -= PtSum; - ModMom2[i] = Quark_Mom[i].mag2(); - SumMt += std::sqrt( ModMom2[i] + MassQ2 ); - } - } while ( ( SumMt > common.SqrtS ) && - ++loopCounter < maxNumberOfLoops ); /* Loop checking, 10.08.2015, A.Ribon */ - if ( loopCounter >= maxNumberOfLoops ) { - return 99; // unsuccessfully ended, nothing else can be done - } - - // Sampling X's of the two strings - G4double WminusTarget = 0.0, WplusProjectile = 0.0, Alfa_R = 0.5; ScaleFactor = 1.0; - G4bool Success = true; - NumberOfTries = 0, loopCounter = 0; - do { - Success = true; - ++NumberOfTries; - G4double Alfa = 0.0, Beta = 0.0; - for ( G4int iCase = 0; iCase < 2; ++iCase ) { // Loop over the two strings - G4double x = 0.0, r = G4UniformRand(); - if ( Alfa_R == 1.0 ) { - if ( iCase == 0 ) { // first string - x = std::sqrt( r ); - } else { // second string - x = 1.0 - std::sqrt( r); - } - } else { - x = sqr( std::sin( pi/2.0*r ) ); - } - G4int index = iCase*2; // 0 for the first string, 2 for the second string - Quark_Mom[index].setZ( x ); Quark_Mom[index+1].setZ( 1.0 - x ); - for ( G4int i = 0; i < 2; ++i ) { - if ( Quark_Mom[i].getZ() != 0.0 ) { - G4double val = ( ModMom2[index+i] + MassQ2 ) / Quark_Mom[index+i].getZ(); - if ( iCase == 0 ) { // first string - Alfa += val; - } else { // second string - Beta += val; - } - } else { - Success = false; - } - } - } - if ( ! Success ) continue; - if ( std::sqrt( Alfa ) + std::sqrt( Beta ) > common.SqrtS ) { - Success = false; - continue; - } - G4double DecayMomentum2 = sqr(common.S) + sqr(Alfa) + sqr(Beta) - - 2.0*( common.S*(Alfa + Beta) + Alfa*Beta ); - WminusTarget = ( common.S - Alfa + Beta + std::sqrt( DecayMomentum2 ) ) / 2.0 / common.SqrtS; - WplusProjectile = common.SqrtS - Beta/WminusTarget; - } while ( ( ! Success ) && - ++loopCounter < maxNumberOfLoops ); /* Loop checking, 10.08.2015, A.Ribon */ - if ( loopCounter >= maxNumberOfLoops ) { - return 99; // unsuccessfully ended, nothing else can be done - } - - G4double SqrtScaleF = 1.0; - for ( G4int iCase = 0; iCase < 2; ++iCase ) { // Loop over the two strings - G4int index = iCase*2; // 0 for the first string, 2 for the second string - for ( G4int i = 0; i < 2; ++i ) { - G4double w = WplusProjectile; // For the first string - if ( iCase == 1 ) w = - WminusTarget; // For the second string - G4double Pz = w * Quark_Mom[index+i].getZ() / 2.0 - - ( ScaleFactor * ModMom2[index+i] + MassQ2 ) / - ( 2.0 * w * Quark_Mom[index+i].getZ() ); - Quark_Mom[index+i].setZ( Pz ); - if ( ScaleFactor != 1.0 ) { - Quark_Mom[index+i].setX( SqrtScaleF * Quark_Mom[index+i].getX() ); - Quark_Mom[index+i].setY( SqrtScaleF * Quark_Mom[index+i].getY() ); - } - } - } - G4int QuarkOrder[2]; G4LorentzVector Pstring1, Pstring2; G4double Ystring1 = 0.0, Ystring2 = 0.0; @@ -897,6 +891,14 @@ Create2QuarkAntiQuarkStrings( G4VSplitableHadron* projectile, QuarkOrder[0] = 1; QuarkOrder[1] = 0; } + if ( common.RotateStrings ) { + common.Pprojectile *= common.RandomRotation; + common.Ptarget *= common.RandomRotation; + } + + common.Pprojectile.transform( common.toLab ); + common.Ptarget.transform( common.toLab ); + G4LorentzVector Quark_4Mom[4]; for ( G4int i = 0; i < 4; ++i ) { Quark_4Mom[i] = G4LorentzVector( Quark_Mom[i], std::sqrt( Quark_Mom[i].mag2() + MassQ2 ) ); @@ -912,14 +914,6 @@ Create2QuarkAntiQuarkStrings( G4VSplitableHadron* projectile, target->GetNextParton()->Set4Momentum( Quark_4Mom[QuarkOrder[1]] ); target->GetNextAntiParton()->Set4Momentum( Quark_4Mom[QuarkOrder[1]+2] ); - if ( common.RotateStrings ) { - common.Pprojectile *= common.RandomRotation; - common.Ptarget *= common.RandomRotation; - } - - common.Pprojectile.transform( common.toLab ); - common.Ptarget.transform( common.toLab ); - // Calculation of the creation time // Creation time and position of target nucleon were determined in ReggeonCascade() of G4FTFModel projectile->SetTimeOfCreation( target->GetTimeOfCreation() ); @@ -986,7 +980,7 @@ Create1QuarkAntiQuarkString( G4VSplitableHadron* projectile, } if ( CandidatsN != 0 ) { - G4int SampledCase = G4RandFlat::shootInt( G4long( CandidatsN ) ); + G4int SampledCase = (G4int)G4RandFlat::shootInt( CandidatsN ); LeftAQ = common.AQ[ CandAQ[SampledCase] ]; LeftQ = common.Q[ CandQ[SampledCase] ]; @@ -1034,8 +1028,11 @@ Create1QuarkAntiQuarkString( G4VSplitableHadron* projectile, common.Pprojectile.setPz( 0.0 ); common.Pprojectile.setE( common.SqrtS ); - G4LorentzVector Pquark = G4LorentzVector( 0.0, 0.0, common.SqrtS/2.0, common.SqrtS/2.0 ); - G4LorentzVector Paquark = G4LorentzVector( 0.0, 0.0, -common.SqrtS/2.0, common.SqrtS/2.0 ); + common.Pprojectile.transform( common.toLab ); + + G4LorentzVector Pquark = G4LorentzVector( 0.0, 0.0, -common.SqrtS/2.0, common.SqrtS/2.0 ); + G4LorentzVector Paquark = G4LorentzVector( 0.0, 0.0, +common.SqrtS/2.0, common.SqrtS/2.0 ); + if ( common.RotateStrings ) { Pquark *= common.RandomRotation; Paquark *= common.RandomRotation; } diff --git a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFModel.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFModel.cc index 59646efb9a..3027e5ed20 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFModel.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFModel.cc @@ -704,7 +704,7 @@ G4bool G4FTFModel::PutOnMassShell() { G4double M2target = 0.0; G4double WminusTarget = 0.0; G4int NumberOfTries = 0; - G4double ScaleFactor = 1.0; + G4double ScaleFactor = 2.0; G4bool OuterSuccess = true; const G4int maxNumberOfLoops = 1000; @@ -958,29 +958,14 @@ G4bool G4FTFModel::ExciteParticipants() { G4cout << "Annihilation" << G4endl; #endif - NumberOfNNcollisions++; - - // Skipping possible interactions of the annihilated nucleons - while ( theParticipants.Next() ) { /* Loop checking, 10.08.2015, A.Ribon */ - G4InteractionContent& acollision = theParticipants.GetInteraction(); - G4VSplitableHadron* NextProjectileNucleon = acollision.GetProjectile(); - G4VSplitableHadron* NextTargetNucleon = acollision.GetTarget(); - if ( projectile == NextProjectileNucleon || target == NextTargetNucleon ) { - acollision.SetStatus( 0 ); - } - } - - // Return to the annihilation - theParticipants.StartLoop(); - for ( G4int I = 0; I < CurrentInteraction; ++I ) theParticipants.Next(); - // At last, annihilation if ( ! HighEnergyInter ) { G4bool Annihilation = true; G4bool Result = AdjustNucleons( projectile, ProjectileNucleon, target, TargetNucleon, Annihilation ); if ( ! Result ) continue; - } + } + G4VSplitableHadron* AdditionalString = 0; if ( theAnnihilation->Annihilate( projectile, target, AdditionalString, theParameters ) ) { InnerSuccess = true; @@ -993,6 +978,22 @@ G4bool G4FTFModel::ExciteParticipants() { if ( AdditionalString != 0 ) theAdditionalString.push_back( AdditionalString ); + NumberOfNNcollisions++; + + // Skipping possible interactions of the annihilated nucleons + while ( theParticipants.Next() ) { /* Loop checking, 10.08.2015, A.Ribon */ + G4InteractionContent& acollision = theParticipants.GetInteraction(); + G4VSplitableHadron* NextProjectileNucleon = acollision.GetProjectile(); + G4VSplitableHadron* NextTargetNucleon = acollision.GetTarget(); + if ( projectile == NextProjectileNucleon || target == NextTargetNucleon ) { + acollision.SetStatus( 0 ); + } + } + + // Continue the interactions + theParticipants.StartLoop(); + for ( G4int i = 0; i < CurrentInteraction; ++i ) theParticipants.Next(); + /* if ( target->GetStatus() == 4 ) { // Skipping possible interactions of the annihilated nucleons @@ -1046,7 +1047,7 @@ G4bool G4FTFModel::AdjustNucleons( G4VSplitableHadron* SelectedAntiBaryon, << "Tr ResidualMassNumber Tr ResidualCharge Tr ResidualExcitationEnergy " << TargetResidualMassNumber << " " << TargetResidualCharge << " " << TargetResidualExcitationEnergy << G4endl - << "Collis. pr tr " << SelectedAntiBaryon->GetSoftCollisionCount() + << "Collis. pr tr " << SelectedAntiBaryon->GetSoftCollisionCount() << " " << SelectedTargetNucleon->GetSoftCollisionCount() << G4endl; #endif @@ -1245,13 +1246,34 @@ G4int G4FTFModel::AdjustNucleonsAlgorithm_beforeSampling( G4int interactionCase, common.PResidualExcitationEnergy = 0.0; } if ( common.PResidualMassNumber != 0 ) { - if ( common.PResidualLambdaNumber > 0 ) { - common.PResidualMass = G4HyperNucleiProperties::GetNuclearMass( common.PResidualMassNumber, - common.PResidualCharge, - common.PResidualLambdaNumber ); + if ( common.PResidualMassNumber == 1 ) { + if ( std::abs( common.PResidualCharge ) == 1 ) { + common.PResidualMass = G4Proton::Definition()->GetPDGMass(); + } else if ( common.PResidualLambdaNumber == 1 ) { + common.PResidualMass = G4Lambda::Definition()->GetPDGMass(); + } else { + common.PResidualMass = G4Neutron::Definition()->GetPDGMass(); + } } else { - common.PResidualMass = G4ParticleTable::GetParticleTable()->GetIonTable() - ->GetIonMass( common.PResidualCharge, common.PResidualMassNumber ); + if ( common.PResidualLambdaNumber > 0 ) { + if ( common.PResidualMassNumber == 2 ) { + common.PResidualMass = G4Lambda::Definition()->GetPDGMass(); + if ( std::abs( common.PResidualCharge ) == 1 ) { // lambda + proton + common.PResidualMass += G4Proton::Definition()->GetPDGMass(); + } else if ( common.PResidualLambdaNumber == 1 ) { // lambda + neutron + common.PResidualMass += G4Neutron::Definition()->GetPDGMass(); + } else { // lambda + lambda + common.PResidualMass += G4Lambda::Definition()->GetPDGMass(); + } + } else { + common.PResidualMass = G4HyperNucleiProperties::GetNuclearMass( common.PResidualMassNumber, + std::abs( common.PResidualCharge ), + common.PResidualLambdaNumber ); + } + } else { + common.PResidualMass = G4ParticleTable::GetParticleTable()->GetIonTable()-> + GetIonMass( std::abs( common.PResidualCharge ), common.PResidualMassNumber ); + } } } common.PNucleonMass = ProjectileNucleon->GetDefinition()->GetPDGMass(); // On-shell (anti-)nucleon mass @@ -1264,8 +1286,8 @@ G4int G4FTFModel::AdjustNucleonsAlgorithm_beforeSampling( G4int interactionCase, common.TResidualExcitationEnergy = 0.0; } if ( common.TResidualMassNumber != 0 ) { - common.TResidualMass = G4ParticleTable::GetParticleTable()->GetIonTable() - ->GetIonMass( common.TResidualCharge, common.TResidualMassNumber ); + common.TResidualMass = G4ParticleTable::GetParticleTable()->GetIonTable()-> + GetIonMass( common.TResidualCharge, common.TResidualMassNumber ); } common.TNucleonMass = TargetNucleon->GetDefinition()->GetPDGMass(); // On-shell nucleon mass common.SumMasses = common.PNucleonMass + common.PResidualMass + common.TNucleonMass @@ -1930,14 +1952,17 @@ void G4FTFModel::AdjustNucleonsAlgorithm_afterSampling( G4int interactionCase, ProjectileResidualMassNumber = common.TResidualMassNumber; ProjectileResidualCharge = common.TResidualCharge; ProjectileResidualExcitationEnergy = common.TResidualExcitationEnergy; + ProjectileResidualLambdaNumber = common.PResidualLambdaNumber; } else { // interactionCase == 3 ProjectileResidualMassNumber = common.PResidualMassNumber; ProjectileResidualCharge = common.PResidualCharge; ProjectileResidualExcitationEnergy = common.PResidualExcitationEnergy; + ProjectileResidualLambdaNumber = common.PResidualLambdaNumber; } #ifdef debugAdjust - G4cout << "ProjectileResidualMassNumber ProjectileResidualCharge ProjectileResidualExcitationEnergy " + G4cout << "ProjectileResidualMassNumber ProjectileResidualCharge Lambdas ProjectileResidualExcitationEnergy " << ProjectileResidualMassNumber << " " << ProjectileResidualCharge << " " + << ProjectileResidualLambdaNumber << " " << ProjectileResidualExcitationEnergy << G4endl; #endif if ( ProjectileResidualMassNumber != 0 ) { @@ -2311,7 +2336,7 @@ void G4FTFModel::GetResiduals() { #ifdef debugFTFmodel G4VSplitableHadron* targetSplitable = aNucleon->GetSplitableHadron(); - G4cout << i << " Hit? " << aNucleon->AreYouHit() << " " << targetSplitable << G4endl; + G4cout << i << " Hit? " << aNucleon->AreYouHit() << " pointer " << targetSplitable << G4endl; if ( targetSplitable ) G4cout << i << "Status " << targetSplitable->GetStatus() << G4endl; #endif @@ -2413,7 +2438,7 @@ void G4FTFModel::GetResiduals() { #ifdef debugFTFmodel G4VSplitableHadron* projSplitable = aNucleon->GetSplitableHadron(); - G4cout << i << " Hit? " << aNucleon->AreYouHit() << " " << projSplitable << G4endl; + G4cout << i << " Hit? " << aNucleon->AreYouHit() << " pointer " << projSplitable << G4endl; if ( projSplitable ) G4cout << i << "Status " << projSplitable->GetStatus() << G4endl; #endif @@ -2691,7 +2716,7 @@ ComputeNucleusProperties( G4V3DNucleus* nucleus, // input paramete } #ifdef debugPutOnMassShell G4cout << "ExcitationEnergyPerWoundedNucleon " << ExcitationEnergyPerWoundedNucleon << G4endl - << "\t Residual Charge, MassNumber (LambdaNumber" << residualCharge << " " + << "\t Residual Charge, MassNumber (Number of Lambdas)" << residualCharge << " " << residualMassNumber << " (" << residualNumberOfLambdas << ") " << G4endl << "\t Initial Momentum " << nucleusMomentum << G4endl << "\t Residual Momentum " << residualMomentum << G4endl; @@ -2702,15 +2727,34 @@ ComputeNucleusProperties( G4V3DNucleus* nucleus, // input paramete residualMass = 0.0; residualExcitationEnergy = 0.0; } else { - if ( residualNumberOfLambdas > 0 ) { - residualMass = G4HyperNucleiProperties::GetNuclearMass( residualMassNumber, residualCharge, - residualNumberOfLambdas ); - } else { - residualMass = G4ParticleTable::GetParticleTable()->GetIonTable()-> - GetIonMass( residualCharge, residualMassNumber ); - } if ( residualMassNumber == 1 ) { + if ( std::abs( residualCharge ) == 1 ) { + residualMass = G4Proton::Definition()->GetPDGMass(); + } else if ( residualNumberOfLambdas == 1 ) { + residualMass = G4Lambda::Definition()->GetPDGMass(); + } else { + residualMass = G4Neutron::Definition()->GetPDGMass(); + } residualExcitationEnergy = 0.0; + } else { + if ( residualNumberOfLambdas > 0 ) { + if ( residualMassNumber == 2 ) { + residualMass = G4Lambda::Definition()->GetPDGMass(); + if ( std::abs( residualCharge ) == 1 ) { // lambda + proton + residualMass += G4Proton::Definition()->GetPDGMass(); + } else if ( residualNumberOfLambdas == 1 ) { // lambda + neutron + residualMass += G4Neutron::Definition()->GetPDGMass(); + } else { // lambda + lambda + residualMass += G4Lambda::Definition()->GetPDGMass(); + } + } else { + residualMass = G4HyperNucleiProperties::GetNuclearMass( residualMassNumber, std::abs( residualCharge ), + residualNumberOfLambdas ); + } + } else { + residualMass = G4ParticleTable::GetParticleTable()->GetIonTable()-> + GetIonMass( std::abs( residualCharge ), residualMassNumber ); + } } residualMass += residualExcitationEnergy; } @@ -2982,8 +3026,14 @@ CheckKinematics( const G4double sValue, // input parameter G4cout << "decayMomentum2 " << decayMomentum2 << G4endl << "\t targetWminus projectileWplus " << targetWminus << " " << projectileWplus << G4endl << "\t projectileY targetY " << projectileY << " " << targetY << G4endl; + if ( isProjectileNucleus ) { + G4cout << "Order# of Wounded nucleon i, nucleon Y proj Y nuclY - proj Y " << G4endl; + } else { + G4cout << "Order# of Wounded nucleon i, nucleon Y targ Y nuclY - targ Y " << G4endl; + } + G4cout << G4endl; #endif - + for ( G4int i = 0; i < numberOfInvolvedNucleons; ++i ) { G4Nucleon* aNucleon = involvedNucleons[i]; if ( ! aNucleon ) continue; @@ -3000,7 +3050,12 @@ CheckKinematics( const G4double sValue, // input parameter G4double nucleonY = 0.5 * G4Log( (e + pz)/(e - pz) ); #ifdef debugPutOnMassShell - G4cout << "i nY pY nY-AY AY " << i << " " << nucleonY << " " << projectileY < 2 || @@ -3064,7 +3119,11 @@ FinalizeKinematics( const G4double w, // input parame + sqr( residual3Momentum.y() ); #ifdef debugPutOnMassShell - G4cout << "w residual3Momentum.z() " << w << " " << residual3Momentum.z() << G4endl; + if ( isProjectileNucleus ) { + G4cout << "Wminus Proj and residual3Momentum.z() " << w << " " << residual3Momentum.z() << G4endl; + } else { + G4cout << "Wplus Targ and residual3Momentum.z() " << w << " " << residual3Momentum.z() << G4endl; + } #endif G4double residualPz = 0.0; diff --git a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParameters.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParameters.cc index ed8ec5dbea..ed14fae3a5 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParameters.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParameters.cc @@ -62,6 +62,18 @@ G4FTFParameters::G4FTFParameters() { + // Set-up alternative sets of FTF parameters (called "tunes"). + // Note that the very first tune (with indexTune == 0) corresponds to the default + // set of parameters, which does not need to be set-up explicitly: that's why + // the for loop below starts from 1 and not from 0. + // The check whether an alternative tune has been switched on is done at the + // level of the G4FTFParamCollection::SetTune method. + for ( G4int indexTune = 1; indexTune < G4FTFTunings::sNumberOfTunes; ++indexTune ) { + fArrayParCollBaryonProj[indexTune].SetTune(indexTune); + fArrayParCollMesonProj[indexTune].SetTune(indexTune); + fArrayParCollPionProj[indexTune].SetTune(indexTune); + } + StringMass = new G4LundStringFragmentation; // for estimation of min. mass of diffr. states Reset(); csGGinstance = @@ -93,7 +105,7 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle, G4int ProjectileBaryonNumber( 0 ), AbsProjectileBaryonNumber( 0 ), AbsProjectileCharge( 0 ); G4bool ProjectileIsNucleus = false; - + if ( std::abs( particle->GetBaryonNumber() ) > 1 ) { // The projectile is a nucleus ProjectileIsNucleus = true; ProjectileBaryonNumber = particle->GetBaryonNumber(); @@ -122,7 +134,7 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle, << ProjectilePDGcode << " " << Plab << G4endl << "Mass KinE " << ProjectileMass << " " << KineticEnergy << G4endl << " A Z " << theA << " " << theZ << G4endl; #endif - + G4double Ylab, Xtotal( 0.0 ), Xelastic( 0.0 ), Xannihilation( 0.0 ); G4int NumberOfTargetNucleons; @@ -394,7 +406,9 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle, #endif if ( (ProjectilePDGcode == 2212) || (ProjectilePDGcode == 2112) ) { // Projectile is proton or neutron - + + const G4int indexTune = G4FTFTunings::Instance()->GetIndexTune( particle, KineticEnergy ); + // A process probability is parameterized as Prob = A_1*exp(-A_2*y) + A_3*exp(-A_4*y) + A_top // y is a rapidity of a partcle in the target nucleus. Ymin is a minimal rapidity below it X=0 @@ -408,82 +422,93 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle, */ // Proc# - SetParams( 0, fParCollBaryonProj.GetProc0A1(), fParCollBaryonProj.GetProc0B1(), - fParCollBaryonProj.GetProc0A2(), fParCollBaryonProj.GetProc0B2(), - fParCollBaryonProj.GetProc0A3(), fParCollBaryonProj.GetProc0Atop(), - fParCollBaryonProj.GetProc0Ymin() ); // Qexchange without Exc. - SetParams( 1, fParCollBaryonProj.GetProc1A1(), fParCollBaryonProj.GetProc1B1(), - fParCollBaryonProj.GetProc1A2(), fParCollBaryonProj.GetProc1B2(), - fParCollBaryonProj.GetProc1A3(), fParCollBaryonProj.GetProc1Atop(), - fParCollBaryonProj.GetProc1Ymin() ); // Qexchange with Exc. + SetParams( 0, fArrayParCollBaryonProj[indexTune].GetProc0A1(), + fArrayParCollBaryonProj[indexTune].GetProc0B1(), + fArrayParCollBaryonProj[indexTune].GetProc0A2(), + fArrayParCollBaryonProj[indexTune].GetProc0B2(), + fArrayParCollBaryonProj[indexTune].GetProc0A3(), + fArrayParCollBaryonProj[indexTune].GetProc0Atop(), + fArrayParCollBaryonProj[indexTune].GetProc0Ymin() ); // Qexchange without Exc. + SetParams( 1, fArrayParCollBaryonProj[indexTune].GetProc1A1(), + fArrayParCollBaryonProj[indexTune].GetProc1B1(), + fArrayParCollBaryonProj[indexTune].GetProc1A2(), + fArrayParCollBaryonProj[indexTune].GetProc1B2(), + fArrayParCollBaryonProj[indexTune].GetProc1A3(), + fArrayParCollBaryonProj[indexTune].GetProc1Atop(), + fArrayParCollBaryonProj[indexTune].GetProc1Ymin() ); // Qexchange with Exc. if ( Xinel > 0.0 ) { - SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93 ); // Projectile diffraction - SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93 ); // Target diffraction + SetParams( 2, 6.0/Xinel, 0.0, -6.0/Xinel*16.28, 3.0, 0.0, 0.0, 0.93 ); // Projectile diffraction + SetParams( 3, 6.0/Xinel, 0.0, -6.0/Xinel*16.28, 3.0, 0.0, 0.0, 0.93 ); // Target diffraction - SetParams( 4, fParCollBaryonProj.GetProc4A1(), fParCollBaryonProj.GetProc4B1(), - fParCollBaryonProj.GetProc4A2(), fParCollBaryonProj.GetProc4B2(), - fParCollBaryonProj.GetProc4A3(), fParCollBaryonProj.GetProc4Atop(), - fParCollBaryonProj.GetProc4Ymin() ); // Qexchange with Exc. Additional multiplier + SetParams( 4, fArrayParCollBaryonProj[indexTune].GetProc4A1(), + fArrayParCollBaryonProj[indexTune].GetProc4B1(), + fArrayParCollBaryonProj[indexTune].GetProc4A2(), + fArrayParCollBaryonProj[indexTune].GetProc4B2(), + fArrayParCollBaryonProj[indexTune].GetProc4A3(), + fArrayParCollBaryonProj[indexTune].GetProc4Atop(), + fArrayParCollBaryonProj[indexTune].GetProc4Ymin() ); // Qexchange with Exc. Additional multiplier } else { // if Xinel=0., zero everything out (obviously) - SetParams( 2, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0); - SetParams( 3, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0); - SetParams( 4, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0); + SetParams( 2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ); + SetParams( 3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ); + SetParams( 4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ); } if ( (AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10) && !EnableDiffDissociationForBGreater10 ) { - // // It is not decided what to do with diffraction dissociation in Had-Nucl and Nucl-Nucl interactions // For the moment both ProjDiffDisso & TgtDiffDisso for A > 10 are set to false, // so both projectile and target diffraction are turned OFF - // - if ( ! fParCollBaryonProj.IsProjDiffDissociation() ) - SetParams( 2, 0.0, 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Projectile diffraction - if ( ! fParCollBaryonProj.IsTgtDiffDissociation() ) - SetParams( 3, 0.0, 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Target diffraction + if ( ! fArrayParCollBaryonProj[indexTune].IsProjDiffDissociation() ) + SetParams( 2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -100.0 ); // Projectile diffraction + if ( ! fArrayParCollBaryonProj[indexTune].IsTgtDiffDissociation() ) + SetParams( 3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -100.0 ); // Target diffraction } - SetDeltaProbAtQuarkExchange( fParCollBaryonProj.GetDeltaProbAtQuarkExchange() ); + SetDeltaProbAtQuarkExchange( fArrayParCollBaryonProj[indexTune].GetDeltaProbAtQuarkExchange() ); if ( NumberOfTargetNucleons > 26 ) { SetProbOfSameQuarkExchange( 1.0 ); } else { - SetProbOfSameQuarkExchange( fParCollBaryonProj.GetProbOfSameQuarkExchange() ); + SetProbOfSameQuarkExchange( fArrayParCollBaryonProj[indexTune].GetProbOfSameQuarkExchange() ); } - SetProjMinDiffMass( fParCollBaryonProj.GetProjMinDiffMass() ); // GeV - SetProjMinNonDiffMass( fParCollBaryonProj.GetProjMinNonDiffMass() ); // GeV + SetProjMinDiffMass( fArrayParCollBaryonProj[indexTune].GetProjMinDiffMass() ); // GeV + SetProjMinNonDiffMass( fArrayParCollBaryonProj[indexTune].GetProjMinNonDiffMass() ); // GeV - SetTarMinDiffMass( fParCollBaryonProj.GetTgtMinDiffMass() ); // GeV - SetTarMinNonDiffMass( fParCollBaryonProj.GetTgtMinNonDiffMass() ); // GeV + SetTarMinDiffMass( fArrayParCollBaryonProj[indexTune].GetTgtMinDiffMass() ); // GeV + SetTarMinNonDiffMass( fArrayParCollBaryonProj[indexTune].GetTgtMinNonDiffMass() ); // GeV - SetAveragePt2( fParCollBaryonProj.GetAveragePt2() ); // GeV^2 - SetProbLogDistrPrD( fParCollBaryonProj.GetProbLogDistrPrD() ); - SetProbLogDistr( fParCollBaryonProj.GetProbLogDistr() ); + SetAveragePt2( fArrayParCollBaryonProj[indexTune].GetAveragePt2() ); // GeV^2 + SetProbLogDistrPrD( fArrayParCollBaryonProj[indexTune].GetProbLogDistrPrD() ); + SetProbLogDistr( fArrayParCollBaryonProj[indexTune].GetProbLogDistr() ); } else if ( ProjectilePDGcode == -2212 || ProjectilePDGcode == -2112 ) { // Projectile is anti_proton or anti_neutron - + + // Below, in the call to the G4FTFTunings::GetIndexTune method, we pass the proton + // as projectile, instead of the real one, because for switching on/off diffraction + // we assume the same treatment for anti_proton/anti_neutron as for proton/neutron, + // whereas all other parameters for anti_proton/anti_neutron are hardwired. + const G4int indexTune = G4FTFTunings::Instance()->GetIndexTune( G4Proton::Definition(), KineticEnergy ); + // Proc# A1 B1 A2 B2 A3 Atop Ymin SetParams( 0, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , 1000.0 ); // Qexchange without Exc. SetParams( 1, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , 1000.0 ); // Qexchange with Exc. if ( Xinel > 0.) { - SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93 ); // Projectile diffraction - SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93 ); // Target diffraction - SetParams( 4, 1.0, 0.0 , 0.0, 0.0 , 0.0, 0.0 , 0.93 ); // Qexchange with Exc. Additional multiply + SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93 ); // Projectile diffraction + SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93 ); // Target diffraction + SetParams( 4, 1.0, 0.0 , 0.0, 0.0 , 0.0, 0.0 , 0.93 ); // Qexchange with Exc. Additional multiply } else { - SetParams( 2, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0 ); - SetParams( 3, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0 ); - SetParams( 4, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0 ); + SetParams( 2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ); + SetParams( 3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ); + SetParams( 4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ); } if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) { - // // It is not decided what to do with diffraction dissociation in Had-Nucl and Nucl-Nucl interactions // For the moment both ProjDiffDisso & TgtDiffDisso are set to false, // so both projectile and target diffraction are turned OFF - // - if ( ! fParCollBaryonProj.IsProjDiffDissociation() ) + if ( ! fArrayParCollBaryonProj[indexTune].IsProjDiffDissociation() ) SetParams( 2, 0.0, 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Projectile diffraction - if ( ! fParCollBaryonProj.IsTgtDiffDissociation() ) + if ( ! fArrayParCollBaryonProj[indexTune].IsTgtDiffDissociation() ) SetParams( 3, 0.0, 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Target diffraction } @@ -497,8 +522,10 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle, SetProbLogDistrPrD( 0.55 ); SetProbLogDistr( 0.55 ); - } else if ( ProjectileabsPDGcode == 211 || ProjectilePDGcode == 111 ) { // Projectile is Pion - + } else if ( ProjectileabsPDGcode == 211 || ProjectilePDGcode == 111 ) { // Projectile is Pion + + const G4int indexTune = G4FTFTunings::Instance()->GetIndexTune( particle, KineticEnergy ); + // Proc# A1 B1 A2 B2 A3 Atop Ymin /* --> original code SetParams( 0, 150.0, 1.8 , -247.3, 2.3, 0., 1. , 2.3 ); @@ -508,33 +535,48 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle, SetParams( 4, 1.0, 0.0 , -11.02, 1.0, 0.0, 0. , 2.4 ); // Qexchange with Exc. Additional multiply */ // Proc# - SetParams( 0, fParCollPionProj.GetProc0A1(), fParCollPionProj.GetProc0B1(), - fParCollPionProj.GetProc0A2(), fParCollPionProj.GetProc0B2(), - fParCollPionProj.GetProc0A3(), fParCollPionProj.GetProc0Atop(), - fParCollPionProj.GetProc0Ymin() ); // Qexchange without Exc. - SetParams( 1, fParCollPionProj.GetProc1A1(), fParCollPionProj.GetProc1B1(), - fParCollPionProj.GetProc1A2(), fParCollPionProj.GetProc1B2(), - fParCollPionProj.GetProc1A3(), fParCollPionProj.GetProc1Atop(), - fParCollPionProj.GetProc1Ymin() ); // Qexchange with Exc. - SetParams( 2, fParCollPionProj.GetProc2A1(), fParCollPionProj.GetProc2B1(), - fParCollPionProj.GetProc2A2(), fParCollPionProj.GetProc2B2(), - fParCollPionProj.GetProc2A3(), fParCollPionProj.GetProc2Atop(), - fParCollPionProj.GetProc2Ymin() ); // Projectile diffraction - SetParams( 3, fParCollPionProj.GetProc3A1(), fParCollPionProj.GetProc3B1(), - fParCollPionProj.GetProc3A2(), fParCollPionProj.GetProc3B2(), - fParCollPionProj.GetProc3A3(), fParCollPionProj.GetProc3Atop(), - fParCollPionProj.GetProc3Ymin() ); // Target diffraction - SetParams( 4, fParCollPionProj.GetProc4A1(), fParCollPionProj.GetProc4B1(), - fParCollPionProj.GetProc4A2(), fParCollPionProj.GetProc4B2(), - fParCollPionProj.GetProc4A3(), fParCollPionProj.GetProc4Atop(), - fParCollPionProj.GetProc4Ymin() ); // Qexchange with Exc. Additional multiply + SetParams( 0, fArrayParCollPionProj[indexTune].GetProc0A1(), + fArrayParCollPionProj[indexTune].GetProc0B1(), + fArrayParCollPionProj[indexTune].GetProc0A2(), + fArrayParCollPionProj[indexTune].GetProc0B2(), + fArrayParCollPionProj[indexTune].GetProc0A3(), + fArrayParCollPionProj[indexTune].GetProc0Atop(), + fArrayParCollPionProj[indexTune].GetProc0Ymin() ); // Qexchange without Exc. + SetParams( 1, fArrayParCollPionProj[indexTune].GetProc1A1(), + fArrayParCollPionProj[indexTune].GetProc1B1(), + fArrayParCollPionProj[indexTune].GetProc1A2(), + fArrayParCollPionProj[indexTune].GetProc1B2(), + fArrayParCollPionProj[indexTune].GetProc1A3(), + fArrayParCollPionProj[indexTune].GetProc1Atop(), + fArrayParCollPionProj[indexTune].GetProc1Ymin() ); // Qexchange with Exc. + SetParams( 2, fArrayParCollPionProj[indexTune].GetProc2A1(), + fArrayParCollPionProj[indexTune].GetProc2B1(), + fArrayParCollPionProj[indexTune].GetProc2A2(), + fArrayParCollPionProj[indexTune].GetProc2B2(), + fArrayParCollPionProj[indexTune].GetProc2A3(), + fArrayParCollPionProj[indexTune].GetProc2Atop(), + fArrayParCollPionProj[indexTune].GetProc2Ymin() ); // Projectile diffraction + SetParams( 3, fArrayParCollPionProj[indexTune].GetProc3A1(), + fArrayParCollPionProj[indexTune].GetProc3B1(), + fArrayParCollPionProj[indexTune].GetProc3A2(), + fArrayParCollPionProj[indexTune].GetProc3B2(), + fArrayParCollPionProj[indexTune].GetProc3A3(), + fArrayParCollPionProj[indexTune].GetProc3Atop(), + fArrayParCollPionProj[indexTune].GetProc3Ymin() ); // Target diffraction + SetParams( 4, fArrayParCollPionProj[indexTune].GetProc4A1(), + fArrayParCollPionProj[indexTune].GetProc4B1(), + fArrayParCollPionProj[indexTune].GetProc4A2(), + fArrayParCollPionProj[indexTune].GetProc4B2(), + fArrayParCollPionProj[indexTune].GetProc4A3(), + fArrayParCollPionProj[indexTune].GetProc4Atop(), + fArrayParCollPionProj[indexTune].GetProc4Ymin() ); // Qexchange with Exc. Additional multiply // NOTE: how can it be |ProjectileBaryonNumber| > 10 if projectile is a pion ??? // if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) { - if ( ! fParCollPionProj.IsProjDiffDissociation() ) + if ( ! fArrayParCollPionProj[indexTune].IsProjDiffDissociation() ) SetParams( 2, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Projectile diffraction - if ( ! fParCollPionProj.IsTgtDiffDissociation() ) + if ( ! fArrayParCollPionProj[indexTune].IsTgtDiffDissociation() ) SetParams( 3, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Target diffraction } @@ -551,14 +593,14 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle, // JVY update, Aug.8, 2018 --> Feb.14, 2019 // - SetDeltaProbAtQuarkExchange( fParCollPionProj.GetDeltaProbAtQuarkExchange() ); - SetProjMinDiffMass( fParCollPionProj.GetProjMinDiffMass() ); // GeV - SetProjMinNonDiffMass( fParCollPionProj.GetProjMinNonDiffMass() ); // GeV - SetTarMinDiffMass( fParCollPionProj.GetTgtMinDiffMass() ); // GeV - SetTarMinNonDiffMass( fParCollPionProj.GetTgtMinNonDiffMass() ); // GeV - SetAveragePt2( fParCollPionProj.GetAveragePt2() ); // GeV^2 - SetProbLogDistrPrD( fParCollPionProj.GetProbLogDistrPrD() ); - SetProbLogDistr( fParCollPionProj.GetProbLogDistr() ); + SetDeltaProbAtQuarkExchange( fArrayParCollPionProj[indexTune].GetDeltaProbAtQuarkExchange() ); + SetProjMinDiffMass( fArrayParCollPionProj[indexTune].GetProjMinDiffMass() ); // GeV + SetProjMinNonDiffMass( fArrayParCollPionProj[indexTune].GetProjMinNonDiffMass() ); // GeV + SetTarMinDiffMass( fArrayParCollPionProj[indexTune].GetTgtMinDiffMass() ); // GeV + SetTarMinNonDiffMass( fArrayParCollPionProj[indexTune].GetTgtMinNonDiffMass() ); // GeV + SetAveragePt2( fArrayParCollPionProj[indexTune].GetAveragePt2() ); // GeV^2 + SetProbLogDistrPrD( fArrayParCollPionProj[indexTune].GetProbLogDistrPrD() ); + SetProbLogDistr( fArrayParCollPionProj[indexTune].GetProbLogDistr() ); // ---> end update @@ -647,6 +689,8 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle, if ( ProjectileabsPDGcode < 1000 ) { // Meson projectile + const G4int indexTune = G4FTFTunings::Instance()->GetIndexTune( particle, KineticEnergy ); + SetMaxNumberOfCollisions( Plab, 2.0 ); // 3.0 ) // // target destruction @@ -662,32 +706,32 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle, SetMaxPt2ofNuclearDestruction( 1.0*GeV*GeV ); SetExcitationEnergyPerWoundedNucleon( 40.0*MeV ); */ - double coeff = fParCollMesonProj.GetNuclearTgtDestructP1(); + double coeff = fArrayParCollMesonProj[indexTune].GetNuclearTgtDestructP1(); // // NOTE (JVY): Set this switch to false/true on line 138 // - if ( fParCollMesonProj.IsNuclearTgtDestructP1_ADEP() ) + if ( fArrayParCollMesonProj[indexTune].IsNuclearTgtDestructP1_ADEP() ) { coeff *= G4double(NumberOfTargetNucleons); } - double exfactor = G4Exp( fParCollMesonProj.GetNuclearTgtDestructP2() - * (Ylab-fParCollMesonProj.GetNuclearTgtDestructP3()) ); + double exfactor = G4Exp( fArrayParCollMesonProj[indexTune].GetNuclearTgtDestructP2() + * (Ylab-fArrayParCollMesonProj[indexTune].GetNuclearTgtDestructP3()) ); coeff *= exfactor; coeff /= ( 1.+ exfactor ); SetCofNuclearDestruction( coeff ); - SetR2ofNuclearDestruction( fParCollMesonProj.GetR2ofNuclearDestruct() ); - SetDofNuclearDestruction( fParCollMesonProj.GetDofNuclearDestruct() ); - coeff = fParCollMesonProj.GetPt2NuclearDestructP2(); - exfactor = G4Exp( fParCollMesonProj.GetPt2NuclearDestructP3() - * (Ylab-fParCollMesonProj.GetPt2NuclearDestructP4()) ); + SetR2ofNuclearDestruction( fArrayParCollMesonProj[indexTune].GetR2ofNuclearDestruct() ); + SetDofNuclearDestruction( fArrayParCollMesonProj[indexTune].GetDofNuclearDestruct() ); + coeff = fArrayParCollMesonProj[indexTune].GetPt2NuclearDestructP2(); + exfactor = G4Exp( fArrayParCollMesonProj[indexTune].GetPt2NuclearDestructP3() + * (Ylab-fArrayParCollMesonProj[indexTune].GetPt2NuclearDestructP4()) ); coeff *= exfactor; coeff /= ( 1. + exfactor ); - SetPt2ofNuclearDestruction( (fParCollMesonProj.GetPt2NuclearDestructP1()+coeff)*CLHEP::GeV*CLHEP::GeV ); + SetPt2ofNuclearDestruction( (fArrayParCollMesonProj[indexTune].GetPt2NuclearDestructP1()+coeff)*CLHEP::GeV*CLHEP::GeV ); - SetMaxPt2ofNuclearDestruction( fParCollMesonProj.GetMaxPt2ofNuclearDestruct() ); - SetExcitationEnergyPerWoundedNucleon( fParCollMesonProj.GetExciEnergyPerWoundedNucleon() ); + SetMaxPt2ofNuclearDestruction( fArrayParCollMesonProj[indexTune].GetMaxPt2ofNuclearDestruct() ); + SetExcitationEnergyPerWoundedNucleon( fArrayParCollMesonProj[indexTune].GetExciEnergyPerWoundedNucleon() ); } else if ( ProjectilePDGcode == -2212 || ProjectilePDGcode == -2112 ) { // for anti-baryon projectile @@ -713,6 +757,12 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle, } else { // Projectile baryon assumed + // Below, in the call to the G4FTFTunings::GetIndexTune method, we pass the proton + // as projectile, instead of the real one, because for the treatment of nuclear + // destruction, we assume for this category of hadron projectiles the same treatment + // as for "baryon". + const G4int indexTune = G4FTFTunings::Instance()->GetIndexTune( G4Proton::Definition(), KineticEnergy ); + // NOTE (JVY) FIXME !!! Will decide later how/if to make this one configurable... // SetMaxNumberOfCollisions( Plab, 2.0 ); @@ -720,45 +770,48 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle, // projectile destruction - does NOT really matter for particle projectile, only for a nucleus projectile // double coeff = 0.; - coeff = fParCollBaryonProj.GetNuclearProjDestructP1(); + coeff = fArrayParCollBaryonProj[indexTune].GetNuclearProjDestructP1(); // // NOTE (JVY): Set this switch to false/true on line 136 // - if ( fParCollBaryonProj.IsNuclearProjDestructP1_NBRNDEP() ) + if ( fArrayParCollBaryonProj[indexTune].IsNuclearProjDestructP1_NBRNDEP() ) { coeff *= G4double(AbsProjectileBaryonNumber); } - double exfactor = G4Exp( fParCollBaryonProj.GetNuclearProjDestructP2()*(Ylab-fParCollBaryonProj.GetNuclearProjDestructP3()) ); + double exfactor = G4Exp( fArrayParCollBaryonProj[indexTune].GetNuclearProjDestructP2()* + (Ylab-fArrayParCollBaryonProj[indexTune].GetNuclearProjDestructP3()) ); coeff *= exfactor; coeff /= ( 1.+ exfactor ); SetCofNuclearDestructionPr( coeff ); // target desctruction // - coeff = fParCollBaryonProj.GetNuclearTgtDestructP1(); + coeff = fArrayParCollBaryonProj[indexTune].GetNuclearTgtDestructP1(); // // NOTE (JVY): Set this switch to false/true on line 138 // - if ( fParCollBaryonProj.IsNuclearTgtDestructP1_ADEP() ) + if ( fArrayParCollBaryonProj[indexTune].IsNuclearTgtDestructP1_ADEP() ) { coeff *= G4double(NumberOfTargetNucleons); } - exfactor = G4Exp( fParCollBaryonProj.GetNuclearTgtDestructP2()*(Ylab-fParCollBaryonProj.GetNuclearTgtDestructP3()) ); + exfactor = G4Exp( fArrayParCollBaryonProj[indexTune].GetNuclearTgtDestructP2()* + (Ylab-fArrayParCollBaryonProj[indexTune].GetNuclearTgtDestructP3()) ); coeff *= exfactor; coeff /= ( 1.+ exfactor ); SetCofNuclearDestruction( coeff ); - SetR2ofNuclearDestruction( fParCollBaryonProj.GetR2ofNuclearDestruct() ); - SetDofNuclearDestruction( fParCollBaryonProj.GetDofNuclearDestruct() ); + SetR2ofNuclearDestruction( fArrayParCollBaryonProj[indexTune].GetR2ofNuclearDestruct() ); + SetDofNuclearDestruction( fArrayParCollBaryonProj[indexTune].GetDofNuclearDestruct() ); - coeff = fParCollBaryonProj.GetPt2NuclearDestructP2(); - exfactor = G4Exp( fParCollBaryonProj.GetPt2NuclearDestructP3()*(Ylab-fParCollBaryonProj.GetPt2NuclearDestructP4()) ); + coeff = fArrayParCollBaryonProj[indexTune].GetPt2NuclearDestructP2(); + exfactor = G4Exp( fArrayParCollBaryonProj[indexTune].GetPt2NuclearDestructP3()* + (Ylab-fArrayParCollBaryonProj[indexTune].GetPt2NuclearDestructP4()) ); coeff *= exfactor; coeff /= ( 1. + exfactor ); - SetPt2ofNuclearDestruction( (fParCollBaryonProj.GetPt2NuclearDestructP1()+coeff)*CLHEP::GeV*CLHEP::GeV ); + SetPt2ofNuclearDestruction( (fArrayParCollBaryonProj[indexTune].GetPt2NuclearDestructP1()+coeff)*CLHEP::GeV*CLHEP::GeV ); - SetMaxPt2ofNuclearDestruction( fParCollBaryonProj.GetMaxPt2ofNuclearDestruct() ); - SetExcitationEnergyPerWoundedNucleon( fParCollBaryonProj.GetExciEnergyPerWoundedNucleon() ); + SetMaxPt2ofNuclearDestruction( fArrayParCollBaryonProj[indexTune].GetMaxPt2ofNuclearDestruct() ); + SetExcitationEnergyPerWoundedNucleon( fArrayParCollBaryonProj[indexTune].GetExciEnergyPerWoundedNucleon() ); } @@ -820,7 +873,7 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle, G4cout << "Pt2 " << GetPt2ofNuclearDestruction()/GeV/GeV << G4endl; */ -} +} //============================================================================ @@ -862,667 +915,6 @@ G4double G4FTFParameters::GetProcProb( const G4int ProcN, const G4double y ) { return Prob; } -//============================================================================ - -G4HadronicDeveloperParameters& HDP = G4HadronicDeveloperParameters::GetInstance(); - - -class G4FTFSettingDefaultHDP -{ - public: - - // ctor - G4FTFSettingDefaultHDP() { - - //================================================================== - // - // Cross sections for elementary processes - // - // these are for Inelastic interactions, i.e. Xinelastic=(Xtotal-Xelastix)>0. - // for elastic, all the A's & B's, Atop & Ymin are zeros - // general formula: Pp = A1*exp(B1*Y) + A2*exp(B2*Y) + A3 - // but if Y Qexchg w/o excitation - // - HDP.SetDefault( "FTF_BARYON_PROC0_A1", 13.71 ); - HDP.SetDefault( "FTF_BARYON_PROC0_B1", 1.75 ); - HDP.SetDefault( "FTF_BARYON_PROC0_A2", -30.69 ); - HDP.SetDefault( "FTF_BARYON_PROC0_B2", 3.0 ); - HDP.SetDefault( "FTF_BARYON_PROC0_A3", 0.0 ); - HDP.SetDefault( "FTF_BARYON_PROC0_ATOP", 1.0 ); - HDP.SetDefault( "FTF_BARYON_PROC0_YMIN", 0.93 ); - /* */ - // - // Process=1 --> Qexchg w/excitation - // - HDP.SetDefault( "FTF_BARYON_PROC1_A1", 25. ); - HDP.SetDefault( "FTF_BARYON_PROC1_B1", 1. ); - HDP.SetDefault( "FTF_BARYON_PROC1_A2", -50.34 ); - HDP.SetDefault( "FTF_BARYON_PROC1_B2", 1.5 ); - HDP.SetDefault( "FTF_BARYON_PROC1_A3", 0. ); - HDP.SetDefault( "FTF_BARYON_PROC1_ATOP", 0. ); - HDP.SetDefault( "FTF_BARYON_PROC1_YMIN", 1.4 ); - /* */ - // - // NOTE: Process #2 & 3 are projectile & target diffraction - // they have more complex definition of A1 & A2 - // (see example below) - // SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);// Projectile diffraction - // SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);// Target diffraction - // - // Also, for ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) - // projectile and/or target diffraction (dissociation) may be switched ON/OFF - // - HDP.SetDefault( "FTF_BARYON_DIFF_DISSO_PROJ", false ); - HDP.SetDefault( "FTF_BARYON_DIFF_DISSO_TGT", false ); // as in hadr-string-diff-V10-03-07 - // - /* JVY, Oct. 31, 2017: Per Alberto R. & Vladimir U., keep this group of parameters FIXED */ - /* JVY, June 11, 2020: try to open up... */ - // Process=4 --> Qexchg w/additional multiplier in excitation - // - HDP.SetDefault( "FTF_BARYON_PROC4_A1", 0.6 ); - HDP.SetDefault( "FTF_BARYON_PROC4_B1", 0. ); - HDP.SetDefault( "FTF_BARYON_PROC4_A2", -1.2 ); - HDP.SetDefault( "FTF_BARYON_PROC4_B2", 0.5 ); - HDP.SetDefault( "FTF_BARYON_PROC4_A3", 0. ); - HDP.SetDefault( "FTF_BARYON_PROC4_ATOP",0. ); - HDP.SetDefault( "FTF_BARYON_PROC4_YMIN",1.4 ); - /* */ - // - // Parameters of participating hadron (baryon) excitation - // - HDP.SetDefault( "FTF_BARYON_DELTA_PROB_QEXCHG", 0. ); - HDP.SetDefault( "FTF_BARYON_PROB_SAME_QEXCHG", 0. ); - HDP.SetDefault( "FTF_BARYON_DIFF_M_PROJ", 1.16, 1.16, 3. ); // it's supposed to be in GeV but do NOT do (*CLHEP::GeV) - // because it'll be done in the G4FTFParameters::SetProjMinDiffMass - HDP.SetDefault( "FTF_BARYON_NONDIFF_M_PROJ", 1.16, 1.16, 3. ); // do NOT (*CLHEP::GeV) - same as above - HDP.SetDefault( "FTF_BARYON_DIFF_M_TGT", 1.16, 1.16, 3. ); // do NOT (*CLHEP::GeV) - same as above - HDP.SetDefault( "FTF_BARYON_NONDIFF_M_TGT", 1.16, 1.16, 3. ); // do NOT (*CLHEP::GeV) - same as above - HDP.SetDefault( "FTF_BARYON_AVRG_PT2", 0.3, 0.08, 1. ); // do NOT (*CLHEP::GeV*CLHEP::GeV) - // - // JVY, Oct. 6, 2017: Per Alberto R., keep these two settings fixed (for now) - // - // HDP.SetDefault( "FTF_BARYON_PROB_DISTR_PROJ", 0.3 ); - // HDP.SetDefault( "FTF_BARYON_PROB_DISTR_TGT", 0.3 ); - - - // pions - // - // JVY, Aug.8, 2018 --> Feb.14, 2019 --> June 25, 2019: - // Parameters of participating hadron (pions) excitation - // - /* JVY, June 25, 2019: For now, keep this group of parameters FIXED */ - // Process=0 --> Qexchg w/o excitation - // - HDP.SetDefault( "FTF_PION_PROC0_A1", 150.0 ); - HDP.SetDefault( "FTF_PION_PROC0_B1", 1.8 ); - HDP.SetDefault( "FTF_PION_PROC0_A2",-247.3 ); - HDP.SetDefault( "FTF_PION_PROC0_B2", 2.3 ); - HDP.SetDefault( "FTF_PION_PROC0_A3", 0.0 ); - HDP.SetDefault( "FTF_PION_PROC0_ATOP", 1.0 ); - HDP.SetDefault( "FTF_PION_PROC0_YMIN", 2.3 ); - // - // Process=1 --> Qexchg w/excitation - // - HDP.SetDefault( "FTF_PION_PROC1_A1", 5.77 ); - HDP.SetDefault( "FTF_PION_PROC1_B1", 0.6 ); - HDP.SetDefault( "FTF_PION_PROC1_A2", -5.77 ); - HDP.SetDefault( "FTF_PION_PROC1_B2", 0.8 ); - HDP.SetDefault( "FTF_PION_PROC1_A3", 0. ); - HDP.SetDefault( "FTF_PION_PROC1_ATOP", 0. ); - HDP.SetDefault( "FTF_PION_PROC1_YMIN", 0.0 ); - /* - // - // NOTE: Process #2 & 3 are projectile & target diffraction - // - // Process=2 --> Projectile diffraction - // - // Q: Would it even make sense to make these configurable ? - // The following is hadrcoded: - // Projectile Baryon Number > 10 (AbsProjectileBaryonNumber > 10) - // ... which is "strange" because projectile is a pion !!!... so it's always OFF - // (see also lines 1007-1016) - // - HDP.SetDefault( "FTF_PION_PROC2_A1", 2.27 ); - HDP.SetDefault( "FTF_PION_PROC2_B1", 0.5 ); - HDP.SetDefault( "FTF_PION_PROC2_A2", -98052.0); - HDP.SetDefault( "FTF_PION_PROC2_B2", 4.0 ); - HDP.SetDefault( "FTF_PION_PROC2_A3", 0. ); - HDP.SetDefault( "FTF_PION_PROC2_ATOP", 0. ); - HDP.SetDefault( "FTF_PION_PROC2_YMIN", 3.0 ); - */ - // - // Process=3 --> Target diffraction - // - HDP.SetDefault( "FTF_PION_PROC3_A1", 7.0 ); - HDP.SetDefault( "FTF_PION_PROC3_B1", 0.9 ); - HDP.SetDefault( "FTF_PION_PROC3_A2", -85.28); - HDP.SetDefault( "FTF_PION_PROC3_B2", 1.9 ); - HDP.SetDefault( "FTF_PION_PROC3_A3", 0.08); - HDP.SetDefault( "FTF_PION_PROC3_ATOP", 0. ); - HDP.SetDefault( "FTF_PION_PROC3_YMIN", 2.2 ); - // - // projectile and/or target diffraction (dissociation) may be switched ON/OFF - // - // NOTE: Both projectile and target diffraction are turned OFF if - // a) Number of Target Nucleons > 10 (NumberOfTargetNucleons > 10) - // OR - // b) Projectile Baryon Number > 10 (AbsProjectileBaryonNumber > 10) - // ... which is "strange" because projectile is a pion !!!... so it's always OFF - // - HDP.SetDefault( "FTF_PION_DIFF_DISSO_PROJ", false ); - HDP.SetDefault( "FTF_PION_DIFF_DISSO_TGT", false ); - // - /* JVY, June 25, 2019: For now keep this group of parameters FIXED */ - /* JVY, June 11, 2020: try to open up... */ - // Process=4 --> Qexchg w/additional multiplier in excitation - // - HDP.SetDefault( "FTF_PION_PROC4_A1", 1.0 ); - HDP.SetDefault( "FTF_PION_PROC4_B1", 0. ); - HDP.SetDefault( "FTF_PION_PROC4_A2",-11.02); - HDP.SetDefault( "FTF_PION_PROC4_B2", 1.0 ); - HDP.SetDefault( "FTF_PION_PROC4_A3", 0. ); - HDP.SetDefault( "FTF_PION_PROC4_ATOP",0. ); - HDP.SetDefault( "FTF_PION_PROC4_YMIN",2.4 ); - /* */ - // - // NOTE; As of geant4-10-05, all these settings beloe are correct - // (and are the same as they were in 10.4.ref06) - - HDP.SetDefault( "FTF_PION_DELTA_PROB_QEXCHG", 0.56 ); // in the past used to be 0.35 - HDP.SetDefault( "FTF_PION_DIFF_M_PROJ", 1.0, 0.5, 3. ); // in the past used to be 0.5... - HDP.SetDefault( "FTF_PION_NONDIFF_M_PROJ", 1.0, 0.5, 3. ); // so why not set 0.5 as a low limit ?... - // ... or perhaps even lower ? - HDP.SetDefault( "FTF_PION_DIFF_M_TGT", 1.16, 1.16, 3. ); // All (NON)DIFF_M's are supposed to be in GeV but do NOT do (*CLHEP::GeV) - // because it'll be done in the G4FTFParameters::SetProjMinDiffMass - HDP.SetDefault( "FTF_PION_NONDIFF_M_TGT", 1.16, 1.16, 3. ); - HDP.SetDefault( "FTF_PION_AVRG_PT2", 0.3, 0.08, 1. ); // do NOT (*CLHEP::GeV*CLHEP::GeV) - - //================================================================== - // - // nuclear destruction - // - // NOTE: Settings of most of these parameters are the same - // for different types of projectile hadron - // However, we decided to introduce separate variables - // and configuration cards for each type of projectile - // - // baryons - // - // projectile destruction - // - HDP.SetDefault( "FTF_BARYON_NUCDESTR_P1_PROJ", 1., 0., 1. ); // in principle, it should be 1./NBRN - FIXME later ! - HDP.SetDefault( "FTF_BARYON_NUCDESTR_P1_NBRN_PROJ", false ); - // - // for now, keep fixed p2 & p3 for the proj destruction - // they're defined explicitly in G4FTFParamCollection ctor - // - // target destruction - // - HDP.SetDefault( "FTF_BARYON_NUCDESTR_P1_TGT", 1., 0., 1. ); - HDP.SetDefault( "FTF_BARYON_NUCDESTR_P1_ADEP_TGT", false ); - HDP.SetDefault( "FTF_BARYON_NUCDESTR_P2_TGT", 4.0, 2., 16. ); - HDP.SetDefault( "FTF_BARYON_NUCDESTR_P3_TGT", 2.1, 0., 4. ); - // - HDP.SetDefault( "FTF_BARYON_PT2_NUCDESTR_P1", 0.035, 0., 0.25 ); - HDP.SetDefault( "FTF_BARYON_PT2_NUCDESTR_P2", 0.04, 0., 0.25 ); - HDP.SetDefault( "FTF_BARYON_PT2_NUCDESTR_P3", 4.0, 2., 16. ); - HDP.SetDefault( "FTF_BARYON_PT2_NUCDESTR_P4", 2.5, 0., 4. ); - // - HDP.SetDefault( "FTF_BARYON_NUCDESTR_R2", 1.5*CLHEP::fermi*CLHEP::fermi, 0.5*CLHEP::fermi*CLHEP::fermi, 2.*CLHEP::fermi*CLHEP::fermi ); - HDP.SetDefault( "FTF_BARYON_EXCI_E_PER_WNDNUCLN", 40.*CLHEP::MeV, 0., 100.*CLHEP::MeV ); - HDP.SetDefault( "FTF_BARYON_NUCDESTR_DISP", 0.3, 0.1, 0.4 ); - // - // JVY, Oct. 6, 2017: Per Alberto R., this is just a technical parameter, - // and it should NOT be changed - // - // HDP.SetDefault( "FTF_BARYON_NUCDESTR_MAXPT2", 1. * CLHEP::GeV*CLHEP::GeV ); - - - // mesons - these parameters are common for pions, kaons, etc. (per original code) - // - // NOTE: *NO* projectile destruction for mesons !!! - // - // target destruction - // - HDP.SetDefault( "FTF_MESON_NUCDESTR_P1_TGT", 0.00481, 0., 1. ); - HDP.SetDefault( "FTF_MESON_NUCDESTR_P1_ADEP_TGT", true ); - HDP.SetDefault( "FTF_MESON_NUCDESTR_P2_TGT", 4.0, 2., 16. ); - HDP.SetDefault( "FTF_MESON_NUCDESTR_P3_TGT", 2.1, 0., 4. ); - // - HDP.SetDefault( "FTF_MESON_PT2_NUCDESTR_P1", 0.035, 0., 0.25 ); - HDP.SetDefault( "FTF_MESON_PT2_NUCDESTR_P2", 0.04, 0., 0.25 ); - HDP.SetDefault( "FTF_MESON_PT2_NUCDESTR_P3", 4.0, 2., 16. ); - HDP.SetDefault( "FTF_MESON_PT2_NUCDESTR_P4", 2.5, 0., 4. ); - // - HDP.SetDefault( "FTF_MESON_NUCDESTR_R2", 1.5*CLHEP::fermi*CLHEP::fermi, - 0.5*CLHEP::fermi*CLHEP::fermi, - 2.*CLHEP::fermi*CLHEP::fermi ); - HDP.SetDefault( "FTF_MESON_EXCI_E_PER_WNDNUCLN", 40.*CLHEP::MeV, 0., 100.*CLHEP::MeV ); - HDP.SetDefault( "FTF_MESON_NUCDESTR_DISP", 0.3, 0.1, 0.4 ); - - } -}; - - -G4FTFSettingDefaultHDP FTFDefaultsHDP; - - -G4FTFParamCollection::G4FTFParamCollection() -{ - // zero out everything - - // parameters of excitation - - // Proc=0 --> Qexchg w/o excitation - fProc0A1 = 0.; - fProc0B1 = 0.; - fProc0A2 = 0.; - fProc0B2 = 0.; - fProc0A3 = 0.; - fProc0Atop = 0.; - fProc0Ymin = 0.; - - // Proc=1 --> Qexchg w/excitation - fProc1A1 = 0.; - fProc1B1 = 0.; - fProc1A2 = 0.; - fProc1B2 = 0.; - fProc1A3 = 0.; - fProc1Atop = 0.; - fProc1Ymin = 0.; - - fProjDiffDissociation = false; - fTgtDiffDissociation = false; - - // Proc=2 --> Projectile diffraction - fProc2A1 = 0.; - fProc2B1 = 0.; - fProc2A2 = 0.; - fProc2B2 = 0.; - fProc2A3 = 0.; - fProc2Atop = 0.; - fProc2Ymin = 0.; - - // Proc=3 --> Target diffraction - fProc3A1 = 0.; - fProc3B1 = 0.; - fProc3A2 = 0.; - fProc3B2 = 0.; - fProc3A3 = 0.; - fProc3Atop = 0.; - fProc3Ymin = 0.; - - // Proc=4 --> Qexchg w/additional multiplier in excitation - fProc4A1 = 0.; - fProc4B1 = 0.; - fProc4A2 = 0.; - fProc4B2 = 0.; - fProc4A3 = 0.; - fProc4Atop = 0.; - fProc4Ymin = 0.; - - // parameters of participating baryon excitation - - fDeltaProbAtQuarkExchange = 0.; - fProbOfSameQuarkExchange = 0.; - fProjMinDiffMass = 0.; - fProjMinNonDiffMass = 0.; - fTgtMinDiffMass = 0.; - fTgtMinNonDiffMass = 0.; - fAveragePt2 = 0.; - fProbLogDistrPrD = 0.; - fProbLogDistr = 0.; - - // parameters of nuclear distruction - - // COMMONs - fNuclearProjDestructP1 = 0.; - fNuclearProjDestructP1_NBRNDEP = false; - fNuclearTgtDestructP1 = 0.; - fNuclearTgtDestructP1_ADEP = false; - fNuclearProjDestructP2 = 0.; - fNuclearProjDestructP3 = 0.; - fNuclearTgtDestructP2 = 0.; - fNuclearTgtDestructP3 = 0.; - fPt2NuclearDestructP1 = 0.; - fPt2NuclearDestructP2 = 0.; - fPt2NuclearDestructP3 = 0.; - fPt2NuclearDestructP4 = 0.; - - // baryons - fR2ofNuclearDestruct = 0.; - fExciEnergyPerWoundedNucleon = 0.; - fDofNuclearDestruct = 0.; - fMaxPt2ofNuclearDestruct = 0.; - - // - // keep the 2 parameters below fixed for now (i.e. do not take them from HDP) - // - fNuclearProjDestructP2 = 4.0; - fNuclearProjDestructP3 = 2.1; - -} - -//============================================================================ - -G4FTFParamCollBaryonProj::G4FTFParamCollBaryonProj() - : G4FTFParamCollection() -{ - - // parameters of participating hadron (baryon) excitation - // - // baryons projectile - // - // Proc=0 --> Qexchg w/o excitation - // - /* As of Oct. 31, 2017 keep these fixed */ - HDP.DeveloperGet( "FTF_BARYON_PROC0_A1", fProc0A1 ); - HDP.DeveloperGet( "FTF_BARYON_PROC0_B1", fProc0B1 ); - HDP.DeveloperGet( "FTF_BARYON_PROC0_A2", fProc0A2 ); - HDP.DeveloperGet( "FTF_BARYON_PROC0_B2", fProc0B2 ); - HDP.DeveloperGet( "FTF_BARYON_PROC0_A3", fProc0A3 ); - HDP.DeveloperGet( "FTF_BARYON_PROC0_ATOP", fProc0Atop ); - HDP.DeveloperGet( "FTF_BARYON_PROC0_YMIN", fProc0Ymin ); - /* */ - // - /* JVY, June 11, 2020: make configurable - fProc0A1 = 13.71; - fProc0B1 = 1.75; - fProc0A2 = -30.69; // (or -214.5 as in Doc ?) - fProc0B2 = 3.; // ( or 4. as in Doc ?) - fProc0A3 = 0.; - fProc0Atop = 1.; // ( or 0.5 as in Doc ?) - fProc0Ymin = 0.93; // (or 1.1 as in Doc ?) - */ - // - // Proc=1 --> Qexchg w/excitation - // - /* As of Oct. 31, 2017 keep these fixed */ - HDP.DeveloperGet( "FTF_BARYON_PROC1_A1", fProc1A1 ); - HDP.DeveloperGet( "FTF_BARYON_PROC1_B1", fProc1B1 ); - HDP.DeveloperGet( "FTF_BARYON_PROC1_A2", fProc1A2 ); - HDP.DeveloperGet( "FTF_BARYON_PROC1_B2", fProc1B2 ); - HDP.DeveloperGet( "FTF_BARYON_PROC1_A3", fProc1A3 ); - HDP.DeveloperGet( "FTF_BARYON_PROC1_ATOP", fProc1Atop ); - HDP.DeveloperGet( "FTF_BARYON_PROC1_YMIN", fProc1Ymin ); - /* */ - // - /* JVY, June 11, 2020: make configurable - fProc1A1 = 25.; - fProc1B1 = 1.; - fProc1A2 = -50.34; - fProc1B2 = 1.5; - fProc1A3 = 0.; - fProc1Atop = 0.; - fProc1Ymin = 1.4; - */ - // - // Proc=2 & Proc=3 for the case ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) - // (diffraction dissociation) - // NOTE-1: used to be ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 )... - // NOTE-2: As of 10.5, both are set to false (via HDP) - // - HDP.DeveloperGet( "FTF_BARYON_DIFF_DISSO_PROJ", fProjDiffDissociation ); - HDP.DeveloperGet( "FTF_BARYON_DIFF_DISSO_TGT", fTgtDiffDissociation ); - // - // - // Proc=4 --> Qexchg "w/additional multiplier" in excitation - // - /* As of Oct. 31, 2017 keep these fixed */ - /* */ - HDP.DeveloperGet( "FTF_BARYON_PROC4_A1", fProc4A1 ); - HDP.DeveloperGet( "FTF_BARYON_PROC4_B1", fProc4B1 ); - HDP.DeveloperGet( "FTF_BARYON_PROC4_A2", fProc4A2 ); - HDP.DeveloperGet( "FTF_BARYON_PROC4_B2", fProc4B2 ); - HDP.DeveloperGet( "FTF_BARYON_PROC4_A3", fProc4A3 ); - HDP.DeveloperGet( "FTF_BARYON_PROC4_ATOP", fProc4Atop ); - HDP.DeveloperGet( "FTF_BARYON_PROC4_YMIN", fProc4Ymin ); - /* */ - // - /* JVY, June 11, 2020: make configurable - fProc4A1 = 0.6; // (or 1. as in Doc ?) - fProc4B1 = 0.; - fProc4A2 = -1.2; // (or -2.01 as in Doc ?) - fProc4B2 = 0.5; - fProc4A3 = 0.; - fProc4Atop = 0.; - fProc4Ymin = 1.4; - */ - // - // - HDP.DeveloperGet( "FTF_BARYON_DELTA_PROB_QEXCHG", fDeltaProbAtQuarkExchange ); - HDP.DeveloperGet( "FTF_BARYON_PROB_SAME_QEXCHG", fProbOfSameQuarkExchange ); - HDP.DeveloperGet( "FTF_BARYON_DIFF_M_PROJ", fProjMinDiffMass ); - HDP.DeveloperGet( "FTF_BARYON_NONDIFF_M_PROJ", fProjMinNonDiffMass ); - HDP.DeveloperGet( "FTF_BARYON_DIFF_M_TGT", fTgtMinDiffMass ); - HDP.DeveloperGet( "FTF_BARYON_NONDIFF_M_TGT", fTgtMinNonDiffMass ); - HDP.DeveloperGet( "FTF_BARYON_AVRG_PT2", fAveragePt2 ); - // - // JVY - Per Alberto R., we're curretly keeping these two settings fixed, - // thus they're defined here explicitly, rather than via HDP - // - // HDP.DeveloperGet( "FTF_BARYON_PROB_DISTR_PROJ", fProbLogDistrPrD ); - // HDP.DeveloperGet( "FTF_BARYON_PROB_DISTR_TGT", fProbLogDistr ); - fProbLogDistrPrD = 0.55; - fProbLogDistr = 0.55; - - // nuclear destruction - // - // ---> LATER !!! ---> fBaryonMaxNumberOfCollisions = 2.; - // - - HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_P1_PROJ", fNuclearProjDestructP1 ); - HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_P1_NBRN_PROJ",fNuclearProjDestructP1_NBRNDEP ); - // - // keep the 2 parameters below fixed for now (i.e. do not take them from HDP) - // - fNuclearProjDestructP2 = 4.0; - fNuclearProjDestructP3 = 2.1; - - HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_P1_TGT", fNuclearTgtDestructP1 ); - HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_P1_ADEP_TGT", fNuclearTgtDestructP1_ADEP ); - HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_P2_TGT", fNuclearTgtDestructP2 ); - HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_P3_TGT", fNuclearTgtDestructP3 ); - // - HDP.DeveloperGet( "FTF_BARYON_PT2_NUCDESTR_P1", fPt2NuclearDestructP1 ); - HDP.DeveloperGet( "FTF_BARYON_PT2_NUCDESTR_P2", fPt2NuclearDestructP2 ); - HDP.DeveloperGet( "FTF_BARYON_PT2_NUCDESTR_P3", fPt2NuclearDestructP3 ); - HDP.DeveloperGet( "FTF_BARYON_PT2_NUCDESTR_P4", fPt2NuclearDestructP4 ); - // - HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_R2", fR2ofNuclearDestruct ); - HDP.DeveloperGet( "FTF_BARYON_EXCI_E_PER_WNDNUCLN", fExciEnergyPerWoundedNucleon ); - // - HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_DISP", fDofNuclearDestruct ); // NOTE: "Dof" means "Dispersion of..." - // - // NOTE-1: this parameter has changed from 1. to 9. between 10.2 and 10.3.ref07 !!! - // ... then it went back to 1. for the 10.4-candidate... - // NOTE-2: this is a "technical" parameter, it should not be changed; this is why - // it is defined explicitly rather than via HDP - // --> HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_MAXPT2", fMaxPt2ofNuclearDestruct ); - fMaxPt2ofNuclearDestruct = 9. * CLHEP::GeV*CLHEP::GeV; -} - - -G4FTFParamCollMesonProj::G4FTFParamCollMesonProj() - : G4FTFParamCollection() -{ - // nuclear destruction - // - // JVY, Aug.8, 2018 --> Feb.14, 2018 --> June 25, 2019: - // These parameters are common for all mesons - // - - HDP.DeveloperGet( "FTF_MESON_NUCDESTR_P1_TGT", fNuclearTgtDestructP1 ); - HDP.DeveloperGet( "FTF_MESON_NUCDESTR_P1_ADEP_TGT", fNuclearTgtDestructP1_ADEP ); - HDP.DeveloperGet( "FTF_MESON_NUCDESTR_P2_TGT", fNuclearTgtDestructP2 ); - HDP.DeveloperGet( "FTF_MESON_NUCDESTR_P3_TGT", fNuclearTgtDestructP3 ); - // - HDP.DeveloperGet( "FTF_MESON_PT2_NUCDESTR_P1", fPt2NuclearDestructP1 ); - HDP.DeveloperGet( "FTF_MESON_PT2_NUCDESTR_P2", fPt2NuclearDestructP2 ); - HDP.DeveloperGet( "FTF_MESON_PT2_NUCDESTR_P3", fPt2NuclearDestructP3 ); - HDP.DeveloperGet( "FTF_MESON_PT2_NUCDESTR_P4", fPt2NuclearDestructP4 ); - // - HDP.DeveloperGet( "FTF_MESON_NUCDESTR_R2", fR2ofNuclearDestruct ); - HDP.DeveloperGet( "FTF_MESON_EXCI_E_PER_WNDNUCLN", fExciEnergyPerWoundedNucleon ); - HDP.DeveloperGet( "FTF_MESON_NUCDESTR_DISP", fDofNuclearDestruct ); // NOTE: "Dof" means "Dispersion of..." - // - // NOTE: it is a "technical" parameter, it should not be changed; - // this is why it is defined explicitly rather than via HDP - // - fMaxPt2ofNuclearDestruct = 1. * CLHEP::GeV*CLHEP::GeV; -} - - -G4FTFParamCollPionProj::G4FTFParamCollPionProj() - : G4FTFParamCollMesonProj() -{ - // parameters of participating pion excitation (pi+/- or pi0) - // - // Proc=0 --> Qexchg w/o excitation - // - /* As of June 25, 2019 keep these fixed */ - HDP.DeveloperGet( "FTF_PION_PROC0_A1", fProc0A1 ); - HDP.DeveloperGet( "FTF_PION_PROC0_B1", fProc0B1 ); - HDP.DeveloperGet( "FTF_PION_PROC0_A2", fProc0A2 ); - HDP.DeveloperGet( "FTF_PION_PROC0_B2", fProc0B2 ); - HDP.DeveloperGet( "FTF_PION_PROC0_A3", fProc0A3 ); - HDP.DeveloperGet( "FTF_PION_PROC0_ATOP", fProc0Atop ); - HDP.DeveloperGet( "FTF_PION_PROC0_YMIN", fProc0Ymin ); - /* */ - // - /* JVY, June 11, 2020: make configurable - fProc0A1 = 150.0; - fProc0B1 = 1.8; - fProc0A2 =-247.3; - fProc0B2 = 2.3; // ( or 4. as in Doc ?) - fProc0A3 = 0.; - fProc0Atop = 1.; // ( or 0.5 as in Doc ?) - fProc0Ymin = 2.3; // (or 1.1 as in Doc ?) - */ - // - // Proc=1 --> Qexchg w/excitation - // - /* As of Oct. 31, 2017 keep these fixed */ - HDP.DeveloperGet( "FTF_PION_PROC1_A1", fProc1A1 ); - HDP.DeveloperGet( "FTF_PION_PROC1_B1", fProc1B1 ); - HDP.DeveloperGet( "FTF_PION_PROC1_A2", fProc1A2 ); - HDP.DeveloperGet( "FTF_PION_PROC1_B2", fProc1B2 ); - HDP.DeveloperGet( "FTF_PION_PROC1_A3", fProc1A3 ); - HDP.DeveloperGet( "FTF_PION_PROC1_ATOP", fProc1Atop ); - HDP.DeveloperGet( "FTF_PION_PROC1_YMIN", fProc1Ymin ); - /* */ - // - /* JVY, June 11, 2020: make configurable - fProc1A1 = 5.77; - fProc1B1 = 0.6; - fProc1A2 = -5.77; - fProc1B2 = 0.8; - fProc1A3 = 0.; - fProc1Atop = 0.; - fProc1Ymin = 0.0; - */ - // - // Proc=2 --> Projectile diffraction - // - // Q: Would it even make sense to make these configurable ? - // The following is hadrcoded: - // Projectile Baryon Number > 10 (AbsProjectileBaryonNumber > 10) - // ... which is "strange" because projectile is a pion !!!... so it's always OFF - // (see also lines 1007-1016) - // - /* As of Oct. 31, 2017 keep these fixed - HDP.DeveloperGet( "FTF_PION_PROC2_A1", fProc2A1 ); - HDP.DeveloperGet( "FTF_PION_PROC2_B1", fProc2B1 ); - HDP.DeveloperGet( "FTF_PION_PROC2_A2", fProc2A2 ); - HDP.DeveloperGet( "FTF_PION_PROC2_B2", fProc2B2 ); - HDP.DeveloperGet( "FTF_PION_PROC2_A3", fProc2A3 ); - HDP.DeveloperGet( "FTF_PION_PROC2_ATOP", fProc2Atop ); - HDP.DeveloperGet( "FTF_PION_PROC2_YMIN", fProc2Ymin ); - */ - // keep fixed so far; see note above - fProc2A1 = 2.27; - fProc2B1 = 0.5; - fProc2A2 =-98052.0; - fProc2B2 = 4.0; - fProc2A3 = 0.; - fProc2Atop = 0.; - fProc2Ymin = 3.0; - // - // Proc=3 --> Target diffraction - // - /* As of Oct. 31, 2017 keep these fixed */ - HDP.DeveloperGet( "FTF_PION_PROC3_A1", fProc3A1 ); - HDP.DeveloperGet( "FTF_PION_PROC3_B1", fProc3B1 ); - HDP.DeveloperGet( "FTF_PION_PROC3_A2", fProc3A2 ); - HDP.DeveloperGet( "FTF_PION_PROC3_B2", fProc3B2 ); - HDP.DeveloperGet( "FTF_PION_PROC3_A3", fProc3A3 ); - HDP.DeveloperGet( "FTF_PION_PROC3_ATOP", fProc3Atop ); - HDP.DeveloperGet( "FTF_PION_PROC3_YMIN", fProc3Ymin ); - /* */ - // - /* JVY, June 11, 2020: make configurable - fProc3A1 = 7.0; - fProc3B1 = 0.9; - fProc3A2 = -85.28; - fProc3B2 = 1.9; - fProc3A3 = 0.08; - fProc3Atop = 0.; - fProc3Ymin = 2.2; - */ - // - // for Proc2 & Proc3, pprojectile or target diffraction can be turned ON/OFF - // if num.baryons >10 (which is strange for projectile which is pion !!!) - // - HDP.DeveloperGet( "FTF_PION_DIFF_DISSO_PROJ", fProjDiffDissociation ); - HDP.DeveloperGet( "FTF_PION_DIFF_DISSO_TGT", fTgtDiffDissociation ); - // - // Proc=4 --> Qexchg "w/additional multiplier" in excitation - // - /* As of Oct. 31, 2017 keep these fixed */ - HDP.DeveloperGet( "FTF_PION_PROC4_A1", fProc4A1 ); - HDP.DeveloperGet( "FTF_PION_PROC4_B1", fProc4B1 ); - HDP.DeveloperGet( "FTF_PION_PROC4_A2", fProc4A2 ); - HDP.DeveloperGet( "FTF_PION_PROC4_B2", fProc4B2 ); - HDP.DeveloperGet( "FTF_PION_PROC4_A3", fProc4A3 ); - HDP.DeveloperGet( "FTF_PION_PROC4_ATOP", fProc4Atop ); - HDP.DeveloperGet( "FTF_PION_PROC4_YMIN", fProc4Ymin ); - /* */ - // - /* JVY, June 11, 2020: make configurable - fProc4A1 = 1.0; - fProc4B1 = 0.; - fProc4A2 = -11.02; - fProc4B2 = 1.0; - fProc4A3 = 0.; - fProc4Atop = 0.; - fProc4Ymin = 2.4; - */ - // - // - HDP.DeveloperGet( "FTF_PION_DELTA_PROB_QEXCHG", fDeltaProbAtQuarkExchange ); - HDP.DeveloperGet( "FTF_PION_DIFF_M_PROJ", fProjMinDiffMass ); - HDP.DeveloperGet( "FTF_PION_NONDIFF_M_PROJ", fProjMinNonDiffMass ); - HDP.DeveloperGet( "FTF_PION_DIFF_M_TGT", fTgtMinDiffMass ); - HDP.DeveloperGet( "FTF_PION_NONDIFF_M_TGT", fTgtMinNonDiffMass ); - HDP.DeveloperGet( "FTF_PION_AVRG_PT2", fAveragePt2 ); - // - fProbOfSameQuarkExchange = 0.; // This does NOT seem to apply to the pion case - // - // currently keep these two parameters fixed - // thus they're defined here explicitly, rather than via HDP - // - fProbLogDistrPrD = 0.55; - fProbLogDistr = 0.55; -} - - //============================================================================ G4FTFParameters::~G4FTFParameters() { diff --git a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFTunings.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFTunings.cc new file mode 100644 index 0000000000..692f1081c9 --- /dev/null +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFTunings.cc @@ -0,0 +1,1157 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +//--------------------------------------------------------------------------- +// +// ClassName: G4FTFTunings +// +// Author: 2022 Alberto Ribon +// +// Description: Singleton to keep sets of parameters, called "tunes", +// for the FTF model. +// +// Please NOTE that, as of now (Fall 2022) ONLY ONE tune +// can be selected/applied; attempt to select multiple tunes +// will not results in any error messages, however further +// down the workflow only the FIRST of the activated tunes +// will be used. +// +// To use one of the tunes of this class, there is no need to +// change anything in this class, and use instead one of the +// following two UI commands, before initialization: +// /process/had/models/ftf/selectTuneByIndex integerIndex +// or /process/had/models/ftf/selectTuneByName stringName +// for instance: +// /process/had/models/ftf/selectTuneByIndex 1 +// or +// /process/had/models/ftf/selectTuneByIndex 2 +// or +// /process/had/models/ftf/selectTuneByIndex 3 +// or +// /process/had/models/ftf/selectTuneByName baryon-tune2022-v0 +// or +// /process/had/models/ftf/selectTuneByName pion-tune2022-v0 +// or +// /process/had/models/ftf/selectTuneByName combined-tune2022-v0 +// +// If you want to create a new tune, then you need to modify +// this class as follows: look for the first "dummy" tune +// available; if you find it, then specify its name in the +// std::array fNameOfTunes and the values of the parameters +// in the methods: G4FTFParamCollection::SetTuneN() +// G4FTFParamCollBaryonProj::SetTuneN() +// G4FTFParamCollMesonProj::SetTuneN() +// G4FTFParamCollPionProj::SetTuneN +// Note that you need to set explicitly only the parameters +// with non-default values - all the others inherit the +// corresponding default values. +// If you don't find available "dummy" tune, then you need +// to increase by (at least) 1 the number of tunes, and add +// the corresponding "SetTuneN()" methods in the 4 classes +// G4FTFParamCollection, G4FTFParamCollBaryonProj, +// G4FTFParamCollMesonProj, G4FTFParamCollPionProj +// +// In order to explore some variations of FTF parameters +// (for instance to find out a new tune), please select +// (via UI command, as explained above) the existing tune +// from which you want to start with as "baseline", and +// then set the values of the parameters you want to change +// via the following C++ code (to used before initialization): +// G4HadronicDeveloperParameters::GetInstance()->Set(...) +// +// Note: in its current, first version, of this class, +// any FTF tune is applied "globally", i.e. for all +// projectile hadrons and regardless of their kinetic +// energy. +// In future versions, we might try to have tunes that +// are meant for specific projectile type and/or for +// intervals of kinetic energy (e.g. low-energy, +// medium-energy, high-energy). +// +// Note: a few classes (written by Julia Yarba) used only in +// G4FTFParameters, related to the set of parameters of +// the FTF models, have been moved from the header and +// source files of the class G4FTFParameters to this +// (G4FTFTunings) class, with minimal modifications. +// +// Modified: +// +//---------------------------------------------------------------------------- + +#include "G4FTFTunings.hh" +#include +#include "G4ApplicationState.hh" +#include "G4StateManager.hh" +#include "G4HadronicDeveloperParameters.hh" +#include "G4ParticleDefinition.hh" +#include "G4FTFTuningsMessenger.hh" +#include "G4Threading.hh" +#include "G4AutoLock.hh" + + + +G4FTFTunings* G4FTFTunings::sInstance = nullptr; + +namespace { G4Mutex paramMutex = G4MUTEX_INITIALIZER; } + + +G4FTFTunings* G4FTFTunings::Instance() { + if ( sInstance == nullptr ) { + G4AutoLock l( ¶mMutex ); + if ( sInstance == nullptr ) { + static G4FTFTunings theFTFTuningsObject; + sInstance = &theFTFTuningsObject; + } + l.unlock(); + } + return sInstance; +} + + +G4FTFTunings::~G4FTFTunings() { + delete fMessenger; +} + + +G4FTFTunings::G4FTFTunings() { + fMessenger = new G4FTFTuningsMessenger; +} + + +G4bool G4FTFTunings::IsLocked() const { + return ( ! G4Threading::IsMasterThread() || + G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit ); +} + + +void G4FTFTunings::SetTuneApplicabilityState( const G4int index, const G4int state ) { + if ( IsLocked() || index < 0 || index >= sNumberOfTunes ) return; + fApplicabilityOfTunes[index] = state; +} + + +G4int G4FTFTunings::GetIndexTune( const G4ParticleDefinition* /* particleDef */, const G4double /* ekin */ ) const { + // For the time being, select the first alternative (i.e. with index > 0) tune which is switched on. + // If nothing is found, then returns 0 (which corresponds to the default set of parameters). + G4int indexTune = 0; + for ( G4int i = 1; i < sNumberOfTunes; ++i ) { + if ( GetTuneApplicabilityState(i) != 0 ) { // tune i-th is switched on + indexTune = i; + break; + } + } + + /* For the future + G4int pdgCode = std::abs( particleDef->GetPDGEncoding() ); + if ( particleDef != nullptr && ekin >= 0.0 && pdgCode != 0 ) { + G4bool isLowEnergy = ( ekin < fLowEnergyThreshold ); + G4bool isHighEnergy = ( ekin > fHighEnergyThreshold ); + G4bool isMediumEnergy = ( ( ! isLowEnergy ) && ( ! isHighEnergy ) ); + G4bool isMeson = ( pdgCode < 1000 ); + G4bool isPion = ( pdgCode == 211 || pdgCode == 111 ); + G4bool isKaon = ( pdgCode == 321 || pdgCode == 311 || pdgCode == 130 || pdgCode == 310 ); + G4bool isBaryon = ( pdgCode > 1000 ); + G4bool isNucleon = ( pdgCode == 2212 || pdgCode == 2112 ); + G4bool isAntiBaryon = particleDef->GetBaryonNumber() < 0; + // Based on the projectile type, its kinetic energy, and the "applicability" flag + // of each tune, find the right tune to be applicable in this case. + // ... + } + */ + + //G4cout << "G4FTFTunings::GetIndexTune : projectile=" << particleDef->GetParticleName() + // << " ekin[MeV]=" << ekin << " -> indexTune=" << indexTune + // << " " << fNameOfTunes[indexTune] << G4endl; + + return indexTune; +} + + +//============================================================================ + +G4HadronicDeveloperParameters& HDP = G4HadronicDeveloperParameters::GetInstance(); + + +class G4FTFSettingDefaultHDP { + public: + G4FTFSettingDefaultHDP() { + // Cross sections for elementary processes + // + // these are for Inelastic interactions, i.e. Xinelastic=(Xtotal-Xelastix)>0. + // for elastic, all the A's & B's, Atop & Ymin are zeros + // general formula: Pp = A1*exp(B1*Y) + A2*exp(B2*Y) + A3 + // but if Y Qexchg w/o excitation + HDP.SetDefault( "FTF_BARYON_PROC0_A1", 13.71 ); + HDP.SetDefault( "FTF_BARYON_PROC0_B1", 1.75 ); + HDP.SetDefault( "FTF_BARYON_PROC0_A2", -30.69 ); + HDP.SetDefault( "FTF_BARYON_PROC0_B2", 3.0 ); + HDP.SetDefault( "FTF_BARYON_PROC0_A3", 0.0 ); + HDP.SetDefault( "FTF_BARYON_PROC0_ATOP", 1.0 ); + HDP.SetDefault( "FTF_BARYON_PROC0_YMIN", 0.93 ); + // Process=1 --> Qexchg w/excitation + HDP.SetDefault( "FTF_BARYON_PROC1_A1", 25.0 ); + HDP.SetDefault( "FTF_BARYON_PROC1_B1", 1.0 ); + HDP.SetDefault( "FTF_BARYON_PROC1_A2", -50.34 ); + HDP.SetDefault( "FTF_BARYON_PROC1_B2", 1.5 ); + HDP.SetDefault( "FTF_BARYON_PROC1_A3", 0.0 ); + HDP.SetDefault( "FTF_BARYON_PROC1_ATOP", 0.0 ); + HDP.SetDefault( "FTF_BARYON_PROC1_YMIN", 1.4 ); + // NOTE: Process #2 & 3 are projectile & target diffraction + // they have more complex definition of A1 & A2 + // (see example below) + // SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0, 0.93 ); // Projectile diffraction + // SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0, 0.93 ); // Target diffraction + // Also, for ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) + // projectile and/or target diffraction (dissociation) may be switched ON/OFF + HDP.SetDefault( "FTF_BARYON_DIFF_DISSO_PROJ", false ); + HDP.SetDefault( "FTF_BARYON_DIFF_DISSO_TGT", false ); + /* JVY, Oct. 31, 2017: Per Alberto R. & Vladimir U., keep this group of parameters FIXED */ + /* JVY, June 11, 2020: try to open up... */ + // Process=4 --> Qexchg w/additional multiplier in excitation + HDP.SetDefault( "FTF_BARYON_PROC4_A1", 0.6 ); + HDP.SetDefault( "FTF_BARYON_PROC4_B1", 0.0 ); + HDP.SetDefault( "FTF_BARYON_PROC4_A2", -1.2 ); + HDP.SetDefault( "FTF_BARYON_PROC4_B2", 0.5 ); + HDP.SetDefault( "FTF_BARYON_PROC4_A3", 0.0 ); + HDP.SetDefault( "FTF_BARYON_PROC4_ATOP", 0.0 ); + HDP.SetDefault( "FTF_BARYON_PROC4_YMIN", 1.4 ); + // Parameters of participating hadron (baryon) excitation + HDP.SetDefault( "FTF_BARYON_DELTA_PROB_QEXCHG", 0.0 ); + HDP.SetDefault( "FTF_BARYON_PROB_SAME_QEXCHG", 0.0 ); + HDP.SetDefault( "FTF_BARYON_DIFF_M_PROJ", 1.16, 1.16, 3.0 ); // it's supposed to be in GeV but do NOT do (*CLHEP::GeV) + // because it'll be done in the G4FTFParameters::SetProjMinDiffMass + HDP.SetDefault( "FTF_BARYON_NONDIFF_M_PROJ", 1.16, 1.16, 3.0 ); // do NOT (*CLHEP::GeV) - same as above + HDP.SetDefault( "FTF_BARYON_DIFF_M_TGT", 1.16, 1.16, 3.0 ); // do NOT (*CLHEP::GeV) - same as above + HDP.SetDefault( "FTF_BARYON_NONDIFF_M_TGT", 1.16, 1.16, 3.0 ); // do NOT (*CLHEP::GeV) - same as above + HDP.SetDefault( "FTF_BARYON_AVRG_PT2", 0.3, 0.08, 1.0 ); // do NOT (*CLHEP::GeV*CLHEP::GeV) + // JVY, Oct. 6, 2017: Per Alberto R., keep these two settings fixed (for now) + // HDP.SetDefault( "FTF_BARYON_PROB_DISTR_PROJ", 0.3 ); + // HDP.SetDefault( "FTF_BARYON_PROB_DISTR_TGT", 0.3 ); + // pions + // JVY, Aug.8, 2018 --> Feb.14, 2019 --> June 25, 2019: + // Parameters of participating hadron (pions) excitation + /* JVY, June 25, 2019: For now, keep this group of parameters FIXED */ + // Process=0 --> Qexchg w/o excitation + HDP.SetDefault( "FTF_PION_PROC0_A1", 150.0 ); + HDP.SetDefault( "FTF_PION_PROC0_B1", 1.8 ); + HDP.SetDefault( "FTF_PION_PROC0_A2", -247.3 ); + HDP.SetDefault( "FTF_PION_PROC0_B2", 2.3 ); + HDP.SetDefault( "FTF_PION_PROC0_A3", 0.0 ); + HDP.SetDefault( "FTF_PION_PROC0_ATOP", 1.0 ); + HDP.SetDefault( "FTF_PION_PROC0_YMIN", 2.3 ); + // Process=1 --> Qexchg w/excitation + HDP.SetDefault( "FTF_PION_PROC1_A1", 5.77 ); + HDP.SetDefault( "FTF_PION_PROC1_B1", 0.6 ); + HDP.SetDefault( "FTF_PION_PROC1_A2", -5.77 ); + HDP.SetDefault( "FTF_PION_PROC1_B2", 0.8 ); + HDP.SetDefault( "FTF_PION_PROC1_A3", 0.0 ); + HDP.SetDefault( "FTF_PION_PROC1_ATOP", 0.0 ); + HDP.SetDefault( "FTF_PION_PROC1_YMIN", 0.0 ); + /* + // NOTE: Process #2 & 3 are projectile & target diffraction + // Process=2 --> Projectile diffraction + // Q: Would it even make sense to make these configurable ? + // The following is hadrcoded: + // Projectile Baryon Number > 10 (AbsProjectileBaryonNumber > 10) + // ... which is "strange" because projectile is a pion !!!... so it's always OFF + // (see also lines 1007-1016) + HDP.SetDefault( "FTF_PION_PROC2_A1", 2.27 ); + HDP.SetDefault( "FTF_PION_PROC2_B1", 0.5 ); + HDP.SetDefault( "FTF_PION_PROC2_A2", -98052.0 ); + HDP.SetDefault( "FTF_PION_PROC2_B2", 4.0 ); + HDP.SetDefault( "FTF_PION_PROC2_A3", 0.0 ); + HDP.SetDefault( "FTF_PION_PROC2_ATOP", 0.0 ); + HDP.SetDefault( "FTF_PION_PROC2_YMIN", 3.0 ); + */ + // Process=3 --> Target diffraction + HDP.SetDefault( "FTF_PION_PROC3_A1", 7.0 ); + HDP.SetDefault( "FTF_PION_PROC3_B1", 0.9 ); + HDP.SetDefault( "FTF_PION_PROC3_A2", -85.28 ); + HDP.SetDefault( "FTF_PION_PROC3_B2", 1.9 ); + HDP.SetDefault( "FTF_PION_PROC3_A3", 0.08 ); + HDP.SetDefault( "FTF_PION_PROC3_ATOP", 0.0 ); + HDP.SetDefault( "FTF_PION_PROC3_YMIN", 2.2 ); + // projectile and/or target diffraction (dissociation) may be switched ON/OFF + // NOTE: Both projectile and target diffraction are turned OFF if + // a) Number of Target Nucleons > 10 (NumberOfTargetNucleons > 10) + // OR + // b) Projectile Baryon Number > 10 (AbsProjectileBaryonNumber > 10) + // ... which is "strange" because projectile is a pion !!!... so it's always OFF + HDP.SetDefault( "FTF_PION_DIFF_DISSO_PROJ", false ); + HDP.SetDefault( "FTF_PION_DIFF_DISSO_TGT", false ); + /* JVY, June 25, 2019: For now keep this group of parameters FIXED */ + /* JVY, June 11, 2020: try to open up... */ + // Process=4 --> Qexchg w/additional multiplier in excitation + HDP.SetDefault( "FTF_PION_PROC4_A1", 1.0 ); + HDP.SetDefault( "FTF_PION_PROC4_B1", 0.0 ); + HDP.SetDefault( "FTF_PION_PROC4_A2", -11.02 ); + HDP.SetDefault( "FTF_PION_PROC4_B2", 1.0 ); + HDP.SetDefault( "FTF_PION_PROC4_A3", 0.0 ); + HDP.SetDefault( "FTF_PION_PROC4_ATOP", 0.0 ); + HDP.SetDefault( "FTF_PION_PROC4_YMIN", 2.4 ); + // + HDP.SetDefault( "FTF_PION_DELTA_PROB_QEXCHG", 0.56 ); + HDP.SetDefault( "FTF_PION_DIFF_M_PROJ", 1.0, 0.5, 3.0 ); + HDP.SetDefault( "FTF_PION_NONDIFF_M_PROJ", 1.0, 0.5, 3.0 ); + HDP.SetDefault( "FTF_PION_DIFF_M_TGT", 1.16, 1.16, 3.0 ); // All (NON)DIFF_M's are supposed to be in GeV but do NOT do (*CLHEP::GeV) + // because it'll be done in the G4FTFParameters::SetProjMinDiffMass + HDP.SetDefault( "FTF_PION_NONDIFF_M_TGT", 1.16, 1.16, 3.0 ); + HDP.SetDefault( "FTF_PION_AVRG_PT2", 0.3, 0.08, 1.0 ); // do NOT (*CLHEP::GeV*CLHEP::GeV) + // nuclear destruction + // NOTE: Settings of most of these parameters are the same + // for different types of projectile hadron + // However, we decided to introduce separate variables + // and configuration cards for each type of projectile + // baryons + // projectile destruction + HDP.SetDefault( "FTF_BARYON_NUCDESTR_P1_PROJ", 1.0, 0.0, 1.0 ); // in principle, it should be 1./NBRN - FIXME later ! + HDP.SetDefault( "FTF_BARYON_NUCDESTR_P1_NBRN_PROJ", false ); + // for now, keep fixed p2 & p3 for the proj destruction + // they're defined explicitly in G4FTFParamCollection ctor + // target destruction + HDP.SetDefault( "FTF_BARYON_NUCDESTR_P1_TGT", 1.0, 0.0, 1.0 ); + HDP.SetDefault( "FTF_BARYON_NUCDESTR_P1_ADEP_TGT", false ); + HDP.SetDefault( "FTF_BARYON_NUCDESTR_P2_TGT", 4.0, 2.0, 16.0 ); + HDP.SetDefault( "FTF_BARYON_NUCDESTR_P3_TGT", 2.1, 0.0, 4.0 ); + // + HDP.SetDefault( "FTF_BARYON_PT2_NUCDESTR_P1", 0.035, 0.0, 0.25 ); + HDP.SetDefault( "FTF_BARYON_PT2_NUCDESTR_P2", 0.04, 0.0, 0.25 ); + HDP.SetDefault( "FTF_BARYON_PT2_NUCDESTR_P3", 4.0, 2.0, 16.0 ); + HDP.SetDefault( "FTF_BARYON_PT2_NUCDESTR_P4", 2.5, 0.0, 4.0 ); + // + HDP.SetDefault( "FTF_BARYON_NUCDESTR_R2", 1.5*CLHEP::fermi*CLHEP::fermi, 0.5*CLHEP::fermi*CLHEP::fermi, 2.0*CLHEP::fermi*CLHEP::fermi ); + HDP.SetDefault( "FTF_BARYON_EXCI_E_PER_WNDNUCLN", 40.0*CLHEP::MeV, 0.0, 100.0*CLHEP::MeV ); + HDP.SetDefault( "FTF_BARYON_NUCDESTR_DISP", 0.3, 0.1, 0.4 ); + // JVY, Oct. 6, 2017: Per Alberto R., this is just a technical parameter, + // and it should NOT be changed + // HDP.SetDefault( "FTF_BARYON_NUCDESTR_MAXPT2", 1. * CLHEP::GeV*CLHEP::GeV ); + // mesons - these parameters are common for pions, kaons, etc. (per original code) + // NOTE: *NO* projectile destruction for mesons !!! + // target destruction + HDP.SetDefault( "FTF_MESON_NUCDESTR_P1_TGT", 0.00481, 0.0, 1.0 ); + HDP.SetDefault( "FTF_MESON_NUCDESTR_P1_ADEP_TGT", true ); + HDP.SetDefault( "FTF_MESON_NUCDESTR_P2_TGT", 4.0, 2.0, 16.0 ); + HDP.SetDefault( "FTF_MESON_NUCDESTR_P3_TGT", 2.1, 0.0, 4.0 ); + // + HDP.SetDefault( "FTF_MESON_PT2_NUCDESTR_P1", 0.035, 0.0, 0.25 ); + HDP.SetDefault( "FTF_MESON_PT2_NUCDESTR_P2", 0.04, 0.0, 0.25 ); + HDP.SetDefault( "FTF_MESON_PT2_NUCDESTR_P3", 4.0, 2.0, 16.0 ); + HDP.SetDefault( "FTF_MESON_PT2_NUCDESTR_P4", 2.5, 0.0, 4.0 ); + // + HDP.SetDefault( "FTF_MESON_NUCDESTR_R2", 1.5*CLHEP::fermi*CLHEP::fermi, + 0.5*CLHEP::fermi*CLHEP::fermi, + 2.0*CLHEP::fermi*CLHEP::fermi ); + HDP.SetDefault( "FTF_MESON_EXCI_E_PER_WNDNUCLN", 40.0*CLHEP::MeV, 0.0, 100.0*CLHEP::MeV ); + HDP.SetDefault( "FTF_MESON_NUCDESTR_DISP", 0.3, 0.1, 0.4 ); + } +}; + + +G4FTFSettingDefaultHDP FTFDefaultsHDP; + + +G4FTFParamCollection::G4FTFParamCollection() { + // zero out everything + // parameters of excitation + // Proc=0 --> Qexchg w/o excitation + fProc0A1 = 0.0; + fProc0B1 = 0.0; + fProc0A2 = 0.0; + fProc0B2 = 0.0; + fProc0A3 = 0.0; + fProc0Atop = 0.0; + fProc0Ymin = 0.0; + // Proc=1 --> Qexchg w/excitation + fProc1A1 = 0.0; + fProc1B1 = 0.0; + fProc1A2 = 0.0; + fProc1B2 = 0.0; + fProc1A3 = 0.0; + fProc1Atop = 0.0; + fProc1Ymin = 0.0; + // + fProjDiffDissociation = false; + fTgtDiffDissociation = false; + // Proc=2 --> Projectile diffraction + fProc2A1 = 0.0; + fProc2B1 = 0.0; + fProc2A2 = 0.0; + fProc2B2 = 0.0; + fProc2A3 = 0.0; + fProc2Atop = 0.0; + fProc2Ymin = 0.0; + // Proc=3 --> Target diffraction + fProc3A1 = 0.0; + fProc3B1 = 0.0; + fProc3A2 = 0.0; + fProc3B2 = 0.0; + fProc3A3 = 0.0; + fProc3Atop = 0.0; + fProc3Ymin = 0.0; + // Proc=4 --> Qexchg w/additional multiplier in excitation + fProc4A1 = 0.0; + fProc4B1 = 0.0; + fProc4A2 = 0.0; + fProc4B2 = 0.0; + fProc4A3 = 0.0; + fProc4Atop = 0.0; + fProc4Ymin = 0.0; + // parameters of participating baryon excitation + fDeltaProbAtQuarkExchange = 0.0; + fProbOfSameQuarkExchange = 0.0; + fProjMinDiffMass = 0.0; + fProjMinNonDiffMass = 0.0; + fTgtMinDiffMass = 0.0; + fTgtMinNonDiffMass = 0.0; + fAveragePt2 = 0.0; + fProbLogDistrPrD = 0.0; + fProbLogDistr = 0.0; + // parameters of nuclear distruction + // COMMONs + fNuclearProjDestructP1 = 0.0; + fNuclearProjDestructP1_NBRNDEP = false; + fNuclearTgtDestructP1 = 0.0; + fNuclearTgtDestructP1_ADEP = false; + fNuclearProjDestructP2 = 0.0; + fNuclearProjDestructP3 = 0.0; + fNuclearTgtDestructP2 = 0.0; + fNuclearTgtDestructP3 = 0.0; + fPt2NuclearDestructP1 = 0.0; + fPt2NuclearDestructP2 = 0.0; + fPt2NuclearDestructP3 = 0.0; + fPt2NuclearDestructP4 = 0.0; + // baryons + fR2ofNuclearDestruct = 0.0; + fExciEnergyPerWoundedNucleon = 0.0; + fDofNuclearDestruct = 0.0; + fMaxPt2ofNuclearDestruct = 0.0; + // keep the 2 parameters below fixed for now (i.e. do not take them from HDP) + fNuclearProjDestructP2 = 4.0; + fNuclearProjDestructP3 = 2.1; +} + + +G4FTFParamCollBaryonProj::G4FTFParamCollBaryonProj() : G4FTFParamCollection() { + // parameters of participating hadron (baryon) excitation + // baryons projectile + // Proc=0 --> Qexchg w/o excitation + HDP.DeveloperGet( "FTF_BARYON_PROC0_A1", fProc0A1 ); + HDP.DeveloperGet( "FTF_BARYON_PROC0_B1", fProc0B1 ); + HDP.DeveloperGet( "FTF_BARYON_PROC0_A2", fProc0A2 ); + HDP.DeveloperGet( "FTF_BARYON_PROC0_B2", fProc0B2 ); + HDP.DeveloperGet( "FTF_BARYON_PROC0_A3", fProc0A3 ); + HDP.DeveloperGet( "FTF_BARYON_PROC0_ATOP", fProc0Atop ); + HDP.DeveloperGet( "FTF_BARYON_PROC0_YMIN", fProc0Ymin ); + // Proc=1 --> Qexchg w/excitation + HDP.DeveloperGet( "FTF_BARYON_PROC1_A1", fProc1A1 ); + HDP.DeveloperGet( "FTF_BARYON_PROC1_B1", fProc1B1 ); + HDP.DeveloperGet( "FTF_BARYON_PROC1_A2", fProc1A2 ); + HDP.DeveloperGet( "FTF_BARYON_PROC1_B2", fProc1B2 ); + HDP.DeveloperGet( "FTF_BARYON_PROC1_A3", fProc1A3 ); + HDP.DeveloperGet( "FTF_BARYON_PROC1_ATOP", fProc1Atop ); + HDP.DeveloperGet( "FTF_BARYON_PROC1_YMIN", fProc1Ymin ); + // Proc=2 & Proc=3 for the case ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) + // (diffraction dissociation) + // NOTE-1: used to be ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 )... + // NOTE-2: As of 10.5, both are set to false (via HDP) + HDP.DeveloperGet( "FTF_BARYON_DIFF_DISSO_PROJ", fProjDiffDissociation ); + HDP.DeveloperGet( "FTF_BARYON_DIFF_DISSO_TGT", fTgtDiffDissociation ); + // Proc=4 --> Qexchg "w/additional multiplier" in excitation + HDP.DeveloperGet( "FTF_BARYON_PROC4_A1", fProc4A1 ); + HDP.DeveloperGet( "FTF_BARYON_PROC4_B1", fProc4B1 ); + HDP.DeveloperGet( "FTF_BARYON_PROC4_A2", fProc4A2 ); + HDP.DeveloperGet( "FTF_BARYON_PROC4_B2", fProc4B2 ); + HDP.DeveloperGet( "FTF_BARYON_PROC4_A3", fProc4A3 ); + HDP.DeveloperGet( "FTF_BARYON_PROC4_ATOP", fProc4Atop ); + HDP.DeveloperGet( "FTF_BARYON_PROC4_YMIN", fProc4Ymin ); + // + HDP.DeveloperGet( "FTF_BARYON_DELTA_PROB_QEXCHG", fDeltaProbAtQuarkExchange ); + HDP.DeveloperGet( "FTF_BARYON_PROB_SAME_QEXCHG", fProbOfSameQuarkExchange ); + HDP.DeveloperGet( "FTF_BARYON_DIFF_M_PROJ", fProjMinDiffMass ); + HDP.DeveloperGet( "FTF_BARYON_NONDIFF_M_PROJ", fProjMinNonDiffMass ); + HDP.DeveloperGet( "FTF_BARYON_DIFF_M_TGT", fTgtMinDiffMass ); + HDP.DeveloperGet( "FTF_BARYON_NONDIFF_M_TGT", fTgtMinNonDiffMass ); + HDP.DeveloperGet( "FTF_BARYON_AVRG_PT2", fAveragePt2 ); + // JVY - Per Alberto R., we're curretly keeping these two settings fixed, + // thus they're defined here explicitly, rather than via HDP + // HDP.DeveloperGet( "FTF_BARYON_PROB_DISTR_PROJ", fProbLogDistrPrD ); + // HDP.DeveloperGet( "FTF_BARYON_PROB_DISTR_TGT", fProbLogDistr ); + fProbLogDistrPrD = 0.55; + fProbLogDistr = 0.55; + // nuclear destruction + // ---> LATER !!! ---> fBaryonMaxNumberOfCollisions = 2.; + HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_P1_PROJ", fNuclearProjDestructP1 ); + HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_P1_NBRN_PROJ",fNuclearProjDestructP1_NBRNDEP ); + // keep the 2 parameters below fixed for now (i.e. do not take them from HDP) + fNuclearProjDestructP2 = 4.0; + fNuclearProjDestructP3 = 2.1; + // + HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_P1_TGT", fNuclearTgtDestructP1 ); + HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_P1_ADEP_TGT", fNuclearTgtDestructP1_ADEP ); + HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_P2_TGT", fNuclearTgtDestructP2 ); + HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_P3_TGT", fNuclearTgtDestructP3 ); + // + HDP.DeveloperGet( "FTF_BARYON_PT2_NUCDESTR_P1", fPt2NuclearDestructP1 ); + HDP.DeveloperGet( "FTF_BARYON_PT2_NUCDESTR_P2", fPt2NuclearDestructP2 ); + HDP.DeveloperGet( "FTF_BARYON_PT2_NUCDESTR_P3", fPt2NuclearDestructP3 ); + HDP.DeveloperGet( "FTF_BARYON_PT2_NUCDESTR_P4", fPt2NuclearDestructP4 ); + // + HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_R2", fR2ofNuclearDestruct ); + HDP.DeveloperGet( "FTF_BARYON_EXCI_E_PER_WNDNUCLN", fExciEnergyPerWoundedNucleon ); + // + HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_DISP", fDofNuclearDestruct ); // NOTE: "Dof" means "Dispersion of..." + // + // NOTE-1: this parameter has changed from 1. to 9. between 10.2 and 10.3.ref07 !!! + // ... then it went back to 1. for the 10.4-candidate... + // NOTE-2: this is a "technical" parameter, it should not be changed; this is why + // it is defined explicitly rather than via HDP + // --> HDP.DeveloperGet( "FTF_BARYON_NUCDESTR_MAXPT2", fMaxPt2ofNuclearDestruct ); + fMaxPt2ofNuclearDestruct = 9.0 * CLHEP::GeV*CLHEP::GeV; +} + + +G4FTFParamCollMesonProj::G4FTFParamCollMesonProj() : G4FTFParamCollection() { + // nuclear destruction + // These parameters are common for all mesons + HDP.DeveloperGet( "FTF_MESON_NUCDESTR_P1_TGT", fNuclearTgtDestructP1 ); + HDP.DeveloperGet( "FTF_MESON_NUCDESTR_P1_ADEP_TGT", fNuclearTgtDestructP1_ADEP ); + HDP.DeveloperGet( "FTF_MESON_NUCDESTR_P2_TGT", fNuclearTgtDestructP2 ); + HDP.DeveloperGet( "FTF_MESON_NUCDESTR_P3_TGT", fNuclearTgtDestructP3 ); + // + HDP.DeveloperGet( "FTF_MESON_PT2_NUCDESTR_P1", fPt2NuclearDestructP1 ); + HDP.DeveloperGet( "FTF_MESON_PT2_NUCDESTR_P2", fPt2NuclearDestructP2 ); + HDP.DeveloperGet( "FTF_MESON_PT2_NUCDESTR_P3", fPt2NuclearDestructP3 ); + HDP.DeveloperGet( "FTF_MESON_PT2_NUCDESTR_P4", fPt2NuclearDestructP4 ); + // + HDP.DeveloperGet( "FTF_MESON_NUCDESTR_R2", fR2ofNuclearDestruct ); + HDP.DeveloperGet( "FTF_MESON_EXCI_E_PER_WNDNUCLN", fExciEnergyPerWoundedNucleon ); + HDP.DeveloperGet( "FTF_MESON_NUCDESTR_DISP", fDofNuclearDestruct ); // NOTE: "Dof" means "Dispersion of..." + // NOTE: it is a "technical" parameter, it should not be changed; + // this is why it is defined explicitly rather than via HDP + fMaxPt2ofNuclearDestruct = 1.0 * CLHEP::GeV*CLHEP::GeV; +} + + +G4FTFParamCollPionProj::G4FTFParamCollPionProj() : G4FTFParamCollMesonProj() { + // parameters of participating pion excitation (pi+/- or pi0) + // Proc=0 --> Qexchg w/o excitation + HDP.DeveloperGet( "FTF_PION_PROC0_A1", fProc0A1 ); + HDP.DeveloperGet( "FTF_PION_PROC0_B1", fProc0B1 ); + HDP.DeveloperGet( "FTF_PION_PROC0_A2", fProc0A2 ); + HDP.DeveloperGet( "FTF_PION_PROC0_B2", fProc0B2 ); + HDP.DeveloperGet( "FTF_PION_PROC0_A3", fProc0A3 ); + HDP.DeveloperGet( "FTF_PION_PROC0_ATOP", fProc0Atop ); + HDP.DeveloperGet( "FTF_PION_PROC0_YMIN", fProc0Ymin ); + // Proc=1 --> Qexchg w/excitation + HDP.DeveloperGet( "FTF_PION_PROC1_A1", fProc1A1 ); + HDP.DeveloperGet( "FTF_PION_PROC1_B1", fProc1B1 ); + HDP.DeveloperGet( "FTF_PION_PROC1_A2", fProc1A2 ); + HDP.DeveloperGet( "FTF_PION_PROC1_B2", fProc1B2 ); + HDP.DeveloperGet( "FTF_PION_PROC1_A3", fProc1A3 ); + HDP.DeveloperGet( "FTF_PION_PROC1_ATOP", fProc1Atop ); + HDP.DeveloperGet( "FTF_PION_PROC1_YMIN", fProc1Ymin ); + // Proc=2 --> Projectile diffraction + // Q: Would it even make sense to make these configurable ? + // The following is hadrcoded: + // Projectile Baryon Number > 10 (AbsProjectileBaryonNumber > 10) + // ... which is "strange" because projectile is a pion !!!... so it's always OFF + // (see also lines 1007-1016) + /* As of Oct. 31, 2017 keep these fixed + HDP.DeveloperGet( "FTF_PION_PROC2_A1", fProc2A1 ); + HDP.DeveloperGet( "FTF_PION_PROC2_B1", fProc2B1 ); + HDP.DeveloperGet( "FTF_PION_PROC2_A2", fProc2A2 ); + HDP.DeveloperGet( "FTF_PION_PROC2_B2", fProc2B2 ); + HDP.DeveloperGet( "FTF_PION_PROC2_A3", fProc2A3 ); + HDP.DeveloperGet( "FTF_PION_PROC2_ATOP", fProc2Atop ); + HDP.DeveloperGet( "FTF_PION_PROC2_YMIN", fProc2Ymin ); + */ + // keep fixed so far; see note above + fProc2A1 = 2.27; + fProc2B1 = 0.5; + fProc2A2 = -98052.0; + fProc2B2 = 4.0; + fProc2A3 = 0.0; + fProc2Atop = 0.0; + fProc2Ymin = 3.0; + // + // Proc=3 --> Target diffraction + HDP.DeveloperGet( "FTF_PION_PROC3_A1", fProc3A1 ); + HDP.DeveloperGet( "FTF_PION_PROC3_B1", fProc3B1 ); + HDP.DeveloperGet( "FTF_PION_PROC3_A2", fProc3A2 ); + HDP.DeveloperGet( "FTF_PION_PROC3_B2", fProc3B2 ); + HDP.DeveloperGet( "FTF_PION_PROC3_A3", fProc3A3 ); + HDP.DeveloperGet( "FTF_PION_PROC3_ATOP", fProc3Atop ); + HDP.DeveloperGet( "FTF_PION_PROC3_YMIN", fProc3Ymin ); + // for Proc2 & Proc3, pprojectile or target diffraction can be turned ON/OFF + // if num.baryons >10 (which is strange for projectile which is pion !!!) + HDP.DeveloperGet( "FTF_PION_DIFF_DISSO_PROJ", fProjDiffDissociation ); + HDP.DeveloperGet( "FTF_PION_DIFF_DISSO_TGT", fTgtDiffDissociation ); + // Proc=4 --> Qexchg "w/additional multiplier" in excitation + HDP.DeveloperGet( "FTF_PION_PROC4_A1", fProc4A1 ); + HDP.DeveloperGet( "FTF_PION_PROC4_B1", fProc4B1 ); + HDP.DeveloperGet( "FTF_PION_PROC4_A2", fProc4A2 ); + HDP.DeveloperGet( "FTF_PION_PROC4_B2", fProc4B2 ); + HDP.DeveloperGet( "FTF_PION_PROC4_A3", fProc4A3 ); + HDP.DeveloperGet( "FTF_PION_PROC4_ATOP", fProc4Atop ); + HDP.DeveloperGet( "FTF_PION_PROC4_YMIN", fProc4Ymin ); + // + HDP.DeveloperGet( "FTF_PION_DELTA_PROB_QEXCHG", fDeltaProbAtQuarkExchange ); + HDP.DeveloperGet( "FTF_PION_DIFF_M_PROJ", fProjMinDiffMass ); + HDP.DeveloperGet( "FTF_PION_NONDIFF_M_PROJ", fProjMinNonDiffMass ); + HDP.DeveloperGet( "FTF_PION_DIFF_M_TGT", fTgtMinDiffMass ); + HDP.DeveloperGet( "FTF_PION_NONDIFF_M_TGT", fTgtMinNonDiffMass ); + HDP.DeveloperGet( "FTF_PION_AVRG_PT2", fAveragePt2 ); + // + fProbOfSameQuarkExchange = 0.0; // This does NOT seem to apply to the pion case + // currently keep these two parameters fixed + // thus they're defined here explicitly, rather than via HDP + fProbLogDistrPrD = 0.55; + fProbLogDistr = 0.55; +} + + +void G4FTFParamCollection::SetTune( const G4int tuneIndex ) { + if ( tuneIndex <= 0 || tuneIndex >= G4FTFTunings::sNumberOfTunes ) return; + switch ( tuneIndex ) { + case 1 : + if ( G4FTFTunings::Instance()->GetTuneApplicabilityState(1) != 0 ) SetTune1(); + break; + case 2 : + if ( G4FTFTunings::Instance()->GetTuneApplicabilityState(2) != 0 ) SetTune2(); + break; + case 3 : + if ( G4FTFTunings::Instance()->GetTuneApplicabilityState(3) != 0 ) SetTune3(); + break; + case 4 : + if ( G4FTFTunings::Instance()->GetTuneApplicabilityState(4) != 0 ) SetTune4(); + break; + case 5 : + if ( G4FTFTunings::Instance()->GetTuneApplicabilityState(5) != 0 ) SetTune5(); + break; + case 6 : + if ( G4FTFTunings::Instance()->GetTuneApplicabilityState(6) != 0 ) SetTune6(); + break; + case 7 : + if ( G4FTFTunings::Instance()->GetTuneApplicabilityState(7) != 0 ) SetTune7(); + break; + case 8 : + if ( G4FTFTunings::Instance()->GetTuneApplicabilityState(8) != 0 ) SetTune8(); + break; + case 9 : + if ( G4FTFTunings::Instance()->GetTuneApplicabilityState(9) != 0 ) SetTune9(); + break; + // Add here other cases + default: + G4ExceptionDescription ed; + ed << " tuneIndex= " << tuneIndex << G4endl; + G4Exception( "G4FTFParamCollection::SetTune", "FTF_PARAM_COLLECTION_001", FatalException, + "Not present corresponding SetTuneN() method !" ); + } + //G4cout << "Called G4FTFParamCollection::SetTune with tuneIndex=" << tuneIndex + // << " " << G4FTFTunings::Instance()->fNameOfTunes[tuneIndex] << G4endl; +} + + +//==================================================================== +// 1st (alternative) TUNE (i.e. indexTune == 1 ) +// +// This realistic, alternative tune has been determined by Julia Yarba +// and presented at the hadronic group meeting on 20-Jul-2022 +// +// Note: the 0th tune, i.e. indexTune == 0, corresponds to the default +// set of FTF parameters. +// +//==================================================================== + +void G4FTFParamCollection::SetTune1() { + // An empty method implies the take the default values, + // i.e. as set in G4FTFParamCollection::G4FTFParamCollection() +} + + +void G4FTFParamCollBaryonProj::SetTune1() { + G4FTFParamCollection::SetTune1(); + /* + // parameters of participating hadron (baryon) excitation + // baryons projectile + // Proc=0 --> Qexchg w/o excitation + fProc0A1 = ???; // FTF_BARYON_PROC0_A1 + fProc0B1 = ???; // FTF_BARYON_PROC0_B1 + fProc0A2 = ???; // FTF_BARYON_PROC0_A2 + fProc0B2 = ???; // FTF_BARYON_PROC0_B2 + fProc0A3 = ???; // FTF_BARYON_PROC0_A3 + fProc0Atop = ???; // FTF_BARYON_PROC0_ATOP + fProc0Ymin = ???; // FTF_BARYON_PROC0_YMIN + // Proc=1 --> Qexchg w/excitation + fProc1A1 = ???; // FTF_BARYON_PROC1_A1 + fProc1B1 = ???; // FTF_BARYON_PROC1_B1 + fProc1A2 = ???; // FTF_BARYON_PROC1_A2 + fProc1B2 = ???; // FTF_BARYON_PROC1_B2 + fProc1A3 = ???; // FTF_BARYON_PROC1_A3 + fProc1Atop = ???; // FTF_BARYON_PROC1_ATOP + fProc1Ymin = ???; // FTF_BARYON_PROC1_YMIN + // Proc=2 & Proc=3 for the case (diffraction dissociation) + fProjDiffDissociation = ???; // FTF_BARYON_DIFF_DISSO_PROJ + fTgtDiffDissociation = ???; // FTF_BARYON_DIFF_DISSO_TGT + // Proc=4 --> Qexchg "w/additional multiplier" in excitation + fProc4A1 = ???; // FTF_BARYON_PROC4_A1 + fProc4B1 = ???; // FTF_BARYON_PROC4_B1 + fProc4A2 = ???; // FTF_BARYON_PROC4_A2 + fProc4B2 = ???; // FTF_BARYON_PROC4_B2 + fProc4A3 = ???; // FTF_BARYON_PROC4_A3 + fProc4Atop = ???; // FTF_BARYON_PROC4_ATOP + fProc4Ymin = ???; // FTF_BARYON_PROC4_YMIN + // + fDeltaProbAtQuarkExchange = ???; // FTF_BARYON_DELTA_PROB_QEXCHG + fProbOfSameQuarkExchange = ???; // FTF_BARYON_PROB_SAME_QEXCHG + fProjMinDiffMass = ???; // FTF_BARYON_DIFF_M_PROJ + fProjMinNonDiffMass = ???; // FTF_BARYON_NONDIFF_M_PROJ + fTgtMinDiffMass = ???; // FTF_BARYON_DIFF_M_TGT + fTgtMinNonDiffMass = ???; // FTF_BARYON_NONDIFF_M_TGT + fAveragePt2 = ???; // FTF_BARYON_AVRG_PT2 + // nuclear destruction + fNuclearProjDestructP1 = ???; // FTF_BARYON_NUCDESTR_P1_PROJ + fNuclearProjDestructP1_NBRNDEP = ???; // FTF_BARYON_NUCDESTR_P1_NBRN_PROJ + // + fNuclearTgtDestructP1 = ???; // FTF_BARYON_NUCDESTR_P1_TGT + fNuclearTgtDestructP1_ADEP = ???; // FTF_BARYON_NUCDESTR_P1_ADEP_TGT + fNuclearTgtDestructP2 = ???; // FTF_BARYON_NUCDESTR_P2_TGT + fNuclearTgtDestructP3 = ???; // FTF_BARYON_NUCDESTR_P3_TGT + // + fPt2NuclearDestructP1 = ???; // FTF_BARYON_PT2_NUCDESTR_P1 + fPt2NuclearDestructP2 = ???; // FTF_BARYON_PT2_NUCDESTR_P2 + fPt2NuclearDestructP3 = ???; // FTF_BARYON_PT2_NUCDESTR_P3 + fPt2NuclearDestructP4 = ???; // FTF_BARYON_PT2_NUCDESTR_P4 + // + fR2ofNuclearDestruct = ???; // FTF_BARYON_NUCDESTR_R2 + fExciEnergyPerWoundedNucleon = ???; // FTF_BARYON_EXCI_E_PER_WNDNUCLN + // + fDofNuclearDestruct = ???; // FTF_BARYON_NUCDESTR_DISP + */ + // Values below from Julia Yarba's slides at the hadronic group meeting on 20-Jul-2022 + fExciEnergyPerWoundedNucleon = 26.1; // +/- 0.4 // FTF_BARYON_EXCI_E_PER_WNDNUCLN + fNuclearTgtDestructP1 = 0.00173; // +/- 0.00004 // FTF_BARYON_NUCDESTR_P1_TGT + fNuclearTgtDestructP1_ADEP = true; // FTF_BARYON_NUCDESTR_P1_ADEP_TGT + fProc1A1 = 23.6; // +/- 0.8 // FTF_BARYON_PROC1_A1 + fProc1A2 = -99.3; // +/- 0.4 // FTF_BARYON_PROC1_A2 + fProc1B1 = 0.815; // +/- 0.007 // FTF_BARYON_PROC1_B1 + fProc1B2 = 1.98; // +/- 0.03 // FTF_BARYON_PROC1_B2 +} + + +void G4FTFParamCollMesonProj::SetTune1() { + G4FTFParamCollection::SetTune1(); + /* + // nuclear destruction + fNuclearTgtDestructP1 = ???; // FTF_MESON_NUCDESTR_P1_TGT + fNuclearTgtDestructP1_ADEP = ???; // FTF_MESON_NUCDESTR_P1_ADEP_TGT + fNuclearTgtDestructP2 = ???; // FTF_MESON_NUCDESTR_P2_TGT + fNuclearTgtDestructP3 = ???; // FTF_MESON_NUCDESTR_P3_TGT + // + fPt2NuclearDestructP1 = ???; // FTF_MESON_PT2_NUCDESTR_P1 + fPt2NuclearDestructP2 = ???; // FTF_MESON_PT2_NUCDESTR_P2 + fPt2NuclearDestructP3 = ???; // FTF_MESON_PT2_NUCDESTR_P3 + fPt2NuclearDestructP4 = ???; // FTF_MESON_PT2_NUCDESTR_P4 + // + fR2ofNuclearDestruct = ???; // FTF_MESON_NUCDESTR_R2 + fExciEnergyPerWoundedNucleon = ???; // FTF_MESON_EXCI_E_PER_WNDNUCLN + fDofNuclearDestruct = ???; // FTF_MESON_NUCDESTR_DISP + */ +} + + +void G4FTFParamCollPionProj::SetTune1( ) { + G4FTFParamCollMesonProj::SetTune1(); + /* + // parameters of participating pion excitation (pi+/- or pi0) + // Proc=0 --> Qexchg w/o excitation + fProc0A1 = ???; // FTF_PION_PROC0_A1 + fProc0B1 = ???; // FTF_PION_PROC0_B1 + fProc0A2 = ???; // FTF_PION_PROC0_A2 + fProc0B2 = ???; // FTF_PION_PROC0_B2 + fProc0A3 = ???; // FTF_PION_PROC0_A3 + fProc0Atop = ???; // FTF_PION_PROC0_ATOP + fProc0Ymin = ???; // FTF_PION_PROC0_YMIN + // Proc=1 --> Qexchg w/excitation + fProc1A1 = ???; // FTF_PION_PROC1_A1 + fProc1B1 = ???; // FTF_PION_PROC1_B1 + fProc1A2 = ???; // FTF_PION_PROC1_A2 + fProc1B2 = ???; // FTF_PION_PROC1_B2 + fProc1A3 = ???; // FTF_PION_PROC1_A3 + fProc1Atop = ???; // FTF_PION_PROC1_ATOP + fProc1Ymin = ???; // FTF_PION_PROC1_YMIN + // Proc=2 --> Projectile diffraction : keep these fixed + //Fixed fProc2A1 = ???; // FTF_PION_PROC2_A1 + //Fixed fProc2B1 = ???; // FTF_PION_PROC2_B1 + //Fixed fProc2A2 = ???; // FTF_PION_PROC2_A2 + //Fixed fProc2B2 = ???; // FTF_PION_PROC2_B2 + //Fixed fProc2A3 = ???; // FTF_PION_PROC2_A3 + //Fixed fProc2Atop = ???; // FTF_PION_PROC2_ATOP + //Fixed fProc2Ymin = ???; // FTF_PION_PROC2_YMIN + // Proc=3 --> Target diffraction + fProc3A1 = ???; // FTF_PION_PROC3_A1 + fProc3B1 = ???; // FTF_PION_PROC3_B1 + fProc3A2 = ???; // FTF_PION_PROC3_A2 + fProc3B2 = ???; // FTF_PION_PROC3_B2 + fProc3A3 = ???; // FTF_PION_PROC3_A3 + fProc3Atop = ???; // FTF_PION_PROC3_ATOP + fProc3Ymin = ???; // FTF_PION_PROC3_YMIN + // + fProjDiffDissociation = ???; // FTF_PION_DIFF_DISSO_PROJ + fTgtDiffDissociation = ???; // FTF_PION_DIFF_DISSO_TGT + // + // Proc=4 --> Qexchg "w/additional multiplier" in excitation + fProc4A1 = ???; // FTF_PION_PROC4_A1 + fProc4B1 = ???; // FTF_PION_PROC4_B1 + fProc4A2 = ???; // FTF_PION_PROC4_A2 + fProc4B2 = ???; // FTF_PION_PROC4_B2 + fProc4A3 = ???; // FTF_PION_PROC4_A3 + fProc4Atop = ???; // FTF_PION_PROC4_ATOP + fProc4Ymin = ???; // FTF_PION_PROC4_YMIN + // + fDeltaProbAtQuarkExchange = ???; // FTF_PION_DELTA_PROB_QEXCHG + fProjMinDiffMass = ???; // FTF_PION_DIFF_M_PROJ + fProjMinNonDiffMass = ???; // FTF_PION_NONDIFF_M_PROJ + fTgtMinDiffMass = ???; // FTF_PION_DIFF_M_TGT + fTgtMinNonDiffMass = ???; // FTF_PION_NONDIFF_M_TGT + fAveragePt2 = ???; // FTF_PION_AVRG_PT2 + */ +} + +//==================================================================== +// 2nd (alternative) TUNE (i.e. indexTune == 2 ) +// +// This is work-in-progress, very preliminary alternative tune that +// has been outlined by Julia Yarba presented at the 27th CM on 26-JSept-2022 +// The nuclear destruction parameters that are common for *all mesons* +// (see G4FTFParamCollMesonProj::SetTune2) +// while the Qexchg with excitationn of participants parameters are +// for *pion" projectile only (see G4FTFParamCollPionProj::SetTune2) +// +//==================================================================== + +void G4FTFParamCollection::SetTune2() { + // An empty method implies the take the default values, + // i.e. as set in G4FTFParamCollection::G4FTFParamCollection() +} + + +void G4FTFParamCollBaryonProj::SetTune2() { + G4FTFParamCollection::SetTune2(); + //... +} + + +void G4FTFParamCollMesonProj::SetTune2() { + + G4FTFParamCollection::SetTune2(); + + // nuclear detsruction + // + // NOTE: These values are the same for all mesons + // (although bear in mind that they've been obtained for the pion projectile + // via fits against experimaental data for the pion beam) + // + fExciEnergyPerWoundedNucleon = 58.1; // +/- 0.7 // FTF_MESON_EXCI_E_PER_WNDNUCLN + fNuclearTgtDestructP1 = 0.001026; // +/- 0.00003 // FTF_MESON_NUCDESTR_P1_TGT + fNuclearTgtDestructP1_ADEP = true; // FTF_MESON_NUCDESTR_P1_ADEP_TGT + + return; + +} + + +void G4FTFParamCollPionProj::SetTune2( ) { + + G4FTFParamCollMesonProj::SetTune2(); + + // Proc=1 --> Qexchg w/excitation + fProc1A1 = 5.84; // +/- 0.12 // FTF_PION_PROC1_A1 + fProc1B1 = 0.337; // +/- 0.006 // FTF_PION_PROC1_B1 + fProc1A2 = -7.57; // +/- 0.08 // FTF_PION_PROC1_A2 + fProc1B2 = 0.44; // +/- 0.008 // FTF_PION_PROC1_B2 + + return; +} + +//==================================================================== +// 3rd (alternative) TUNE (i.e. indexTune == 3 ) +// +// Combination of the 1st (baryon) and 2nd (pion) tunes +// +//==================================================================== + +void G4FTFParamCollection::SetTune3() { + // An empty method implies the take the default values, + // i.e. as set in G4FTFParamCollection::G4FTFParamCollection() +} + + +void G4FTFParamCollBaryonProj::SetTune3() { + + G4FTFParamCollection::SetTune3(); + + // Values below from Julia Yarba's slides at the hadronic group meeting on 20-Jul-2022 + // + fExciEnergyPerWoundedNucleon = 26.1; // +/- 0.4 // FTF_BARYON_EXCI_E_PER_WNDNUCLN + fNuclearTgtDestructP1 = 0.00173; // +/- 0.00004 // FTF_BARYON_NUCDESTR_P1_TGT + fNuclearTgtDestructP1_ADEP = true; // FTF_BARYON_NUCDESTR_P1_ADEP_TGT + fProc1A1 = 23.6; // +/- 0.8 // FTF_BARYON_PROC1_A1 + fProc1A2 = -99.3; // +/- 0.4 // FTF_BARYON_PROC1_A2 + fProc1B1 = 0.815; // +/- 0.007 // FTF_BARYON_PROC1_B1 + fProc1B2 = 1.98; // +/- 0.03 // FTF_BARYON_PROC1_B2 + + return; + +} + + +void G4FTFParamCollMesonProj::SetTune3() { + + G4FTFParamCollection::SetTune3(); + + // nuclear detsruction + // + // NOTE: These values are the same for all mesons + // (although bear in mind that they've been obtained for the pion projectile + // via fits against experimaental data for the pion beam) + // + fExciEnergyPerWoundedNucleon = 58.1; // +/- 0.7 // FTF_MESON_EXCI_E_PER_WNDNUCLN + fNuclearTgtDestructP1 = 0.001026; // +/- 0.00003 // FTF_MESON_NUCDESTR_P1_TGT + fNuclearTgtDestructP1_ADEP = true; // FTF_MESON_NUCDESTR_P1_ADEP_TGT + + return; + +} + + +void G4FTFParamCollPionProj::SetTune3( ) { + + G4FTFParamCollMesonProj::SetTune3(); + + // Proc=1 --> Qexchg w/excitation + fProc1A1 = 5.84; // +/- 0.12 // FTF_PION_PROC1_A1 + fProc1B1 = 0.337; // +/- 0.006 // FTF_PION_PROC1_B1 + fProc1A2 = -7.57; // +/- 0.08 // FTF_PION_PROC1_A2 + fProc1B2 = 0.44; // +/- 0.008 // FTF_PION_PROC1_B2 + + return; + +} + +//==================================================================== +// 4th (alternative) TUNE (i.e. indexTune == 4 ) +// +// DUMMY tune: identical to the default set of parameters. +// You can replace it with a "real" tune by specifying +// only the non-default parameters. +//==================================================================== + +void G4FTFParamCollection::SetTune4() { + // An empty method implies the take the default values, + // i.e. as set in G4FTFParamCollection::G4FTFParamCollection() +} + + +void G4FTFParamCollBaryonProj::SetTune4() { + G4FTFParamCollection::SetTune4(); + //... +} + + +void G4FTFParamCollMesonProj::SetTune4() { + G4FTFParamCollection::SetTune4(); + //... +} + + +void G4FTFParamCollPionProj::SetTune4( ) { + G4FTFParamCollMesonProj::SetTune4(); + //... +} + +//==================================================================== +// 5th (alternative) TUNE (i.e. indexTune == 5 ) +// +// DUMMY tune: identical to the default set of parameters. +// You can replace it with a "real" tune by specifying +// only the non-default parameters. +//==================================================================== + +void G4FTFParamCollection::SetTune5() { + // An empty method implies the take the default values, + // i.e. as set in G4FTFParamCollection::G4FTFParamCollection() +} + + +void G4FTFParamCollBaryonProj::SetTune5() { + G4FTFParamCollection::SetTune5(); + //... +} + + +void G4FTFParamCollMesonProj::SetTune5() { + G4FTFParamCollection::SetTune5(); + //... +} + + +void G4FTFParamCollPionProj::SetTune5( ) { + G4FTFParamCollMesonProj::SetTune5(); + //... +} + +//==================================================================== +// 6th (alternative) TUNE (i.e. indexTune == 6 ) +// +// DUMMY tune: identical to the default set of parameters. +// You can replace it with a "real" tune by specifying +// only the non-default parameters. +//==================================================================== + +void G4FTFParamCollection::SetTune6() { + // An empty method implies the take the default values, + // i.e. as set in G4FTFParamCollection::G4FTFParamCollection() +} + + +void G4FTFParamCollBaryonProj::SetTune6() { + G4FTFParamCollection::SetTune6(); + //... +} + + +void G4FTFParamCollMesonProj::SetTune6() { + G4FTFParamCollection::SetTune6(); + //... +} + + +void G4FTFParamCollPionProj::SetTune6( ) { + G4FTFParamCollMesonProj::SetTune6(); + //... +} + +//==================================================================== +// 7th (alternative) TUNE (i.e. indexTune == 7 ) +// +// DUMMY tune: identical to the default set of parameters. +// You can replace it with a "real" tune by specifying +// only the non-default parameters. +//==================================================================== + +void G4FTFParamCollection::SetTune7() { + // An empty method implies the take the default values, + // i.e. as set in G4FTFParamCollection::G4FTFParamCollection() +} + + +void G4FTFParamCollBaryonProj::SetTune7() { + G4FTFParamCollection::SetTune7(); + //... +} + + +void G4FTFParamCollMesonProj::SetTune7() { + G4FTFParamCollection::SetTune7(); + //... +} + + +void G4FTFParamCollPionProj::SetTune7( ) { + G4FTFParamCollMesonProj::SetTune7(); + //... +} + +//==================================================================== +// 8th (alternative) TUNE (i.e. indexTune == 8 ) +// +// DUMMY tune: identical to the default set of parameters. +// You can replace it with a "real" tune by specifying +// only the non-default parameters. +//==================================================================== + +void G4FTFParamCollection::SetTune8() { + // An empty method implies the take the default values, + // i.e. as set in G4FTFParamCollection::G4FTFParamCollection() +} + + +void G4FTFParamCollBaryonProj::SetTune8() { + G4FTFParamCollection::SetTune8(); + //... +} + + +void G4FTFParamCollMesonProj::SetTune8() { + G4FTFParamCollection::SetTune8(); + //... +} + + +void G4FTFParamCollPionProj::SetTune8( ) { + G4FTFParamCollMesonProj::SetTune8(); + //... +} + +//==================================================================== +// 9th (alternative) TUNE (i.e. indexTune == 9 ) +// +// DUMMY tune: identical to the default set of parameters. +// You can replace it with a "real" tune by specifying +// only the non-default parameters. +//==================================================================== + +void G4FTFParamCollection::SetTune9() { + // An empty method implies the take the default values, + // i.e. as set in G4FTFParamCollection::G4FTFParamCollection() +} + + +void G4FTFParamCollBaryonProj::SetTune9() { + G4FTFParamCollection::SetTune9(); + //... +} + + +void G4FTFParamCollMesonProj::SetTune9() { + G4FTFParamCollection::SetTune9(); + //... +} + + +void G4FTFParamCollPionProj::SetTune9( ) { + G4FTFParamCollMesonProj::SetTune9(); + //... +} + +//... diff --git a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFTuningsMessenger.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFTuningsMessenger.cc new file mode 100644 index 0000000000..40b678331b --- /dev/null +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFTuningsMessenger.cc @@ -0,0 +1,94 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +//--------------------------------------------------------------------------- +// ClassName: G4FTFTuningsMessenger +// Author: Alberto Ribon +// Date: August 2022 +//--------------------------------------------------------------------------- + +#include "G4FTFTuningsMessenger.hh" +#include "G4UIcommand.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithAString.hh" +#include "G4FTFTunings.hh" + + +G4FTFTuningsMessenger::G4FTFTuningsMessenger() { + // These two commands select an alternative set of FTF parameters (called "tune"): + // either via its integer index + theFTFTuneIndexCmd = new G4UIcmdWithAnInteger( "/process/had/models/ftf/selectTuneByIndex", this ); + theFTFTuneIndexCmd->SetGuidance( "Select one FTF set of parameters (tune) via its index: 0 (default), 1, 2, ..." ); + theFTFTuneIndexCmd->SetParameterName( "indexFTFTune", true ); + theFTFTuneIndexCmd->SetDefaultValue( 0 ); + theFTFTuneIndexCmd->SetRange( "indexFTFTune>=0" ); + theFTFTuneIndexCmd->AvailableForStates( G4State_PreInit ); + // or via its string name + theFTFTuneNameCmd = new G4UIcmdWithAString( "/process/had/models/ftf/selectTuneByName", this ); + theFTFTuneNameCmd->SetGuidance( "Select one FTF set of parametes (tune) via its name (string)." ); + theFTFTuneNameCmd->SetGuidance( " (default) is the default." ); + theFTFTuneNameCmd->SetParameterName( "nameFTFTune", true ); + theFTFTuneNameCmd->SetDefaultValue( "default" ); + theFTFTuneNameCmd->AvailableForStates( G4State_PreInit ); +} + + +G4FTFTuningsMessenger::~G4FTFTuningsMessenger() { + delete theFTFTuneIndexCmd; + delete theFTFTuneNameCmd; +} + + +void G4FTFTuningsMessenger::SetNewValue( G4UIcommand *command, G4String newValues ) { + if ( command == theFTFTuneIndexCmd || command == theFTFTuneNameCmd ) { + G4int index = -999; + if ( command == theFTFTuneIndexCmd ) { + G4int value = theFTFTuneIndexCmd->GetNewIntValue( newValues ); + if ( value >= 0 && value < G4FTFTunings::sNumberOfTunes ) { + index = value; + } else { + G4ExceptionDescription ed; + ed << "The FTF tune index=" << value << " value is wrong!"; + command->CommandFailed( ed ); + } + } else { + for ( G4int i = 0; i < G4FTFTunings::sNumberOfTunes; ++i ) { + if ( newValues == G4FTFTunings::Instance()->GetTuneName(i) ) { + index = i; + break; + } + } + if ( index < 0 ) { + G4ExceptionDescription ed; + ed << "The FTF tune name=" << newValues << " is not found!"; + command->CommandFailed( ed ); + } + } + if ( index >= 0 ) { + // Tune applicability state: 0 means switched off; 1 means switched on. + G4FTFTunings::Instance()->SetTuneApplicabilityState(index, 1); + } + } +} diff --git a/source/processes/hadronic/models/parton_string/hadronization/History b/source/processes/hadronic/models/parton_string/hadronization/History index a4cad89a52..2899adc7a9 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/History +++ b/source/processes/hadronic/models/parton_string/hadronization/History @@ -4,6 +4,36 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! + +## 2022-10-19 Alberto Ribon (had-hadronization-V11-00-03) + Change suggested by Vladimir Uzhinsky: +- G4HadronBuilder, G4VLongitudinalStringDecay, G4LundStringFragmentation, + G4QGSMFragmentation, G4ExcitedStringDecay : in order to describe the + NA61/SHINE data on K*0 and phi mesons production in proton-proton + interactions, different probabilities were introduced for the ratios + between pseudo-scalar and vector meson production. These ratios are + the following: for ordinary mesons from u- and d- quarks, the ratio is + 0.5/0.5; for strange mesons the ratio is 0.4/0.6; for mesons with + hidden strangeness (as for phi), the ratio is 0.3/0.7. + This approach is similar to the one adopted in Pythia8. + It is also assumed that the probabilities for hidden strangeness (0.3/0.7) + apply for mesons with hidden charm and beauty. +- G4LundStringFragmentation : few changes were introduced for a special + treatment of last string decay to improve the yield of anti-Xi hyperons + in proton-proton interactions, according to the NA61/SHINE data. + Moreover, some parameters have been tuned to better describe the + NA61/SHINE data on various particles produced in proton-proton + interactions. + +## 2022-07-04 Alberto Ribon (had-hadronization-V11-00-02) + Change suggested by Vladimir Uzhinsky: +- G4VLongitudinalStringDecay.cc : brought back the value (0.5) of the + mixing between (rho0 and omega) vector mesons as it was originally + until G4 10.0. + This should describe better NA61/SHINE experimental data. + The change might affect hadronic showers, giving that the various + vector mesons have different decay rates into neutral pions. + ## 2022-06-07 Alberto Ribon (had-hadronization-V11-00-01) Changes made by Vladimir Uzhinsky: - G4HadronBuilder : a new argument is added in the constructor, and diff --git a/source/processes/hadronic/models/parton_string/hadronization/include/G4HadronBuilder.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4HadronBuilder.hh index 46ce213c1b..855289bea3 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/include/G4HadronBuilder.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4HadronBuilder.hh @@ -50,9 +50,10 @@ class G4HadronBuilder G4ParticleDefinition * BuildHighSpin(G4ParticleDefinition * black, G4ParticleDefinition * white); // ctor - G4HadronBuilder(G4double mesonMix, G4double barionMix, - std::vector scalarMesonMix, std::vector vectorMesonMix, - G4double Eta_cProb, G4double Eta_bProb, G4double mesonMixSSbar); + G4HadronBuilder(const std::vector & mesonMix, const G4double barionMix, + const std::vector & scalarMesonMix, + const std::vector & vectorMesonMix, + const G4double Eta_cProb, const G4double Eta_bProb); private: G4HadronBuilder(); // no default ctor @@ -63,14 +64,12 @@ class G4HadronBuilder G4ParticleDefinition * Barion(G4ParticleDefinition * black, G4ParticleDefinition * white, Spin spin); - G4double mesonSpinMix; - G4double mesonSpinMixSSbar; + std::vector mesonSpinMix; G4double barionSpinMix; - std::vector scalarMesonMixings; - std::vector vectorMesonMixings; + std::vector scalarMesonMixings; + std::vector vectorMesonMixings; G4double ProbEta_c, ProbEta_b; }; #endif - diff --git a/source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh index 0d1b4d3110..7a16d4c897 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh @@ -156,7 +156,6 @@ class G4VLongitudinalStringDecay : public G4HadronicInteraction void SetDiquarkSuppression(G4double aValue); void SetDiquarkBreakProbability(G4double aValue); - void SetVectorMesonProbability(G4double aValue); void SetSpinThreeHalfBarionProbability(G4double aValue); void SetScalarMesonMixings( std::vector aVector); @@ -193,8 +192,7 @@ class G4VLongitudinalStringDecay : public G4HadronicInteraction G4HadronBuilder *hadronizer; - G4double pspin_meson; - G4double pspin_mesonSSbar; + std::vector pspin_meson; G4double pspin_barion; std::vector vectorMesonMix; std::vector scalarMesonMix; diff --git a/source/processes/hadronic/models/parton_string/hadronization/src/G4ExcitedStringDecay.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4ExcitedStringDecay.cc index 3bda5586e9..7641e0ad65 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/src/G4ExcitedStringDecay.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4ExcitedStringDecay.cc @@ -170,8 +170,7 @@ G4KineticTrackVector *G4ExcitedStringDecay::FragmentStrings(const G4ExcitedStrin if (generatedKineticTracks == nullptr || generatedKineticTracks->size() == 0) { // G4cerr << "G4VPartonStringModel:No KineticTracks produced" << G4endl; - // continue; - success=false; NeedEnergyCorrector=false; break; + continue; } G4LorentzVector KTsum1(0.,0.,0.,0.); diff --git a/source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc index 58a95d4ec8..04702aa11b 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc @@ -42,21 +42,21 @@ //#define debug_Hbuilder //#define debug_heavyHadrons -G4HadronBuilder::G4HadronBuilder(G4double mesonMix, G4double barionMix, - std::vector scalarMesonMix, - std::vector vectorMesonMix, - G4double Eta_cProb, G4double Eta_bProb, G4double mesonMixSSbar) +G4HadronBuilder::G4HadronBuilder(const std::vector & mesonMix, const G4double barionMix, + const std::vector & scalarMesonMix, + const std::vector & vectorMesonMix, + const G4double Eta_cProb, const G4double Eta_bProb) { mesonSpinMix = mesonMix; - mesonSpinMixSSbar = mesonMixSSbar; barionSpinMix = barionMix; scalarMesonMixings = scalarMesonMix; vectorMesonMixings = vectorMesonMix; - ProbEta_c = Eta_cProb; ProbEta_b = Eta_bProb; } +//------------------------------------------------------------------------- + G4ParticleDefinition * G4HadronBuilder::Build(G4ParticleDefinition * black, G4ParticleDefinition * white) { if (black->GetParticleSubType()== "di_quark" || white->GetParticleSubType()== "di_quark" ) { @@ -65,12 +65,10 @@ G4ParticleDefinition * G4HadronBuilder::Build(G4ParticleDefinition * black, G4Pa return Barion(black,white,spin); } else { // Meson - Spin spin = SpinZero; - if ( std::abs(black->GetPDGEncoding()) == 3 && std::abs(white->GetPDGEncoding()) == 3 ) { - spin = (G4UniformRand() < mesonSpinMixSSbar) ? SpinZero : SpinOne; - } else { - spin = (G4UniformRand() < mesonSpinMix) ? SpinZero : SpinOne; - } + G4int StrangeQ = 0; + if( std::abs(black->GetPDGEncoding()) >= 3 ) StrangeQ++; + if( std::abs(white->GetPDGEncoding()) >= 3 ) StrangeQ++; + Spin spin = (G4UniformRand() < mesonSpinMix[StrangeQ]) ? SpinZero : SpinOne; return Meson(black,white,spin); } } @@ -309,7 +307,6 @@ G4ParticleDefinition * G4HadronBuilder::Meson(G4ParticleDefinition * black, if (MesonDef == 0 ) { G4cerr << " G4HadronBuilder - Warning: No particle for PDGcode= " << PDGEncoding << G4endl; - } else if ( ( black->GetPDGCharge() + white->GetPDGCharge() - MesonDef->GetPDGCharge() ) > perCent ) { G4cerr << " G4HadronBuilder - Warning: Incorrect Charge : " @@ -324,6 +321,7 @@ G4ParticleDefinition * G4HadronBuilder::Meson(G4ParticleDefinition * black, return MesonDef; } +//------------------------------------------------------------------------- G4ParticleDefinition * G4HadronBuilder::Barion(G4ParticleDefinition * black, G4ParticleDefinition * white,Spin theSpin) @@ -628,4 +626,3 @@ G4ParticleDefinition * G4HadronBuilder::Barion(G4ParticleDefinition * black, return BarionDef; } - diff --git a/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc index 305512f15c..0c68ed2332 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc @@ -53,11 +53,13 @@ G4LundStringFragmentation::G4LundStringFragmentation() // For ProduceOneHadron it is required // that no one pi-meson can be produced. SigmaQT = 0.435 * GeV; - Tmt = 190.0 * MeV; + Tmt = 190.0 * MeV; + SetStringTensionParameter(1.*GeV/fermi); - SetDiquarkBreakProbability(0.5); + SetDiquarkBreakProbability(0.3); + SetStrangenessSuppression((1.0 - 0.12)/2.0); - SetDiquarkSuppression(0.15); + SetDiquarkSuppression(0.07); // Check if charmed and bottom hadrons are enabled: if this is the case, then // set the non-zero probabilities for c-cbar and b-bbar creation from the vacuum, @@ -65,7 +67,7 @@ G4LundStringFragmentation::G4LundStringFragmentation() // hadrons can't/can be created during the string fragmentation of ordinary // (i.e. not heavy) projectile hadron nuclear reactions. if ( G4HadronicParameters::Instance()->EnableBCParticles() ) { - SetProbCCbar(0.005); // According to O.I. Piskunova Yad. Fiz. 56 (1993) 1094 + SetProbCCbar(0.0002); // According to O.I. Piskunova Yad. Fiz. 56 (1993) 1094; tuned by Uzhi Oct. 2022 SetProbBBbar(5.0e-5); // According to O.I. Piskunova Yad. Fiz. 56 (1993) 1094 } else { SetProbCCbar(0.0); @@ -376,7 +378,8 @@ G4KineticTrack * G4LundStringFragmentation::Splitup(G4FragmentingString *string, if (string->GetRightParton()->GetParticleSubType() != "quark") NumberOfpossibleBaryons++; G4double ActualProb = ProbDqADq ; - ActualProb *= (1.0-sqr(NumberOfpossibleBaryons*1400.0/StringMass)); + ActualProb *= (1.0-G4Pow::GetInstance()->powA(NumberOfpossibleBaryons*1400.0/StringMass, 8.0)); + if(ActualProb <0.0) ActualProb = 0.; SetDiquarkSuppression(ActualProb); @@ -385,7 +388,8 @@ G4KineticTrack * G4LundStringFragmentation::Splitup(G4FragmentingString *string, else if ( NumberOfpossibleBaryons == 4 ){Mth = 2380.0;} // 2 Mlambda/Msigma + Mk + Mpi else {} - ActualProb = ProbSaS * (1.0 - G4Pow::GetInstance()->powA( Mth/StringMass , 4.0 )); + ActualProb = ProbSaS; + ActualProb *= (1.0 - G4Pow::GetInstance()->powA( Mth/StringMass, 2.5 )); if ( ActualProb < 0.0 ) ActualProb = 0.0; SetStrangenessSuppression((1.0-ActualProb)/2.0); @@ -459,7 +463,7 @@ G4ParticleDefinition * G4LundStringFragmentation::DiQuarkSplitup(G4ParticleDefin G4ParticleDefinition *&created) { G4double StrSup=GetStrangeSuppress(); - G4double ProbQQbar = (1.0 - 2.0*StrSup); + G4double ProbQQbar = (1.0 - 2.0*StrSup)*1.25; //... can Diquark break or not? if (G4UniformRand() < DiquarkBreakProb ){ @@ -476,7 +480,9 @@ G4ParticleDefinition * G4LundStringFragmentation::DiQuarkSplitup(G4ParticleDefin G4int IsParticle=(decayQuarkEncoding>0) ? -1 : +1; // if we have a quark, we need antiquark + SetStrangenessSuppression((1.0-ProbQQbar)/2.0); pDefPair QuarkPair = CreatePartonPair(IsParticle,false); // no diquarks wanted + SetStrangenessSuppression((1.0-StrSup)/2.0); //... Build new Diquark G4int QuarkEncoding=QuarkPair.second->GetPDGEncoding(); @@ -496,7 +502,7 @@ G4ParticleDefinition * G4LundStringFragmentation::DiQuarkSplitup(G4ParticleDefin G4int IsParticle=(decay->GetPDGEncoding()>0) ? +1 : -1; // if we have a diquark, we need quark - StrangeSuppress=(1.0 - ProbQQbar * 0.9)/2.0; + StrangeSuppress=(1.0 - ProbQQbar)/2.0; pDefPair QuarkPair = CreatePartonPair(IsParticle,false); // no diquarks wanted created = QuarkPair.second; @@ -550,6 +556,7 @@ G4LorentzVector * G4LundStringFragmentation::SplitEandP(G4ParticleDefinition * p G4double HadronMt, Pt, Pt2, phi; G4double TmtCur = Tmt; + if ( (string->GetDecayParton()->GetParticleSubType()== "quark") && (pHadron->GetBaryonNumber() != 0) ) { TmtCur = Tmt*0.37; // q->B @@ -674,6 +681,7 @@ G4double G4LundStringFragmentation::GetLightConeZ(G4double zmin, G4double zmax, G4double an = 2.5; an +=(sqr(Px)+sqr(Py))/sqr(GeV)-0.5; z=zmin + (zmax-zmin)*G4Pow::GetInstance()->powA(G4UniformRand(),1./an); + if( PDGEncodingOfDecayParton > 3000 ) z=zmin+zmax-z; } return z; @@ -723,43 +731,41 @@ G4bool G4LundStringFragmentation::SplitLast(G4FragmentingString * string, if (string->IsAFourQuarkString() ) { - G4int IDleft = std::abs( string->GetLeftParton()->GetPDGEncoding() ); - G4int IDright = std::abs( string->GetRightParton()->GetPDGEncoding() ); - if ( IDleft > 3100 || IDright > 3100 ) - { - if (! Diquark_AntiDiquark_belowThreshold_lastSplitting(string, LeftHadron, RightHadron) ) + G4int IDleft =std::abs(string->GetLeftParton()->GetPDGEncoding()); + G4int IDright=std::abs(string->GetRightParton()->GetPDGEncoding()); + + if ( (IDleft > 3000) || (IDright > 3000) ) { + if ( ! Diquark_AntiDiquark_belowThreshold_lastSplitting(string, LeftHadron, RightHadron) ) + { + return false; + } + } else { + // The string is qq-qqbar type. Diquarks are on the string ends + if (StringMass-MinimalStringMass < 0.) + { + if (! Diquark_AntiDiquark_belowThreshold_lastSplitting(string, LeftHadron, RightHadron) ) { - return false; + return false; } - } else - { - // The string is qq-qqbar type. Diquarks are on the string ends - if (StringMass-MinimalStringMass < 0.) - { - if (! Diquark_AntiDiquark_belowThreshold_lastSplitting(string, LeftHadron, RightHadron) ) - { - return false; - } - } else - { - Diquark_AntiDiquark_aboveThreshold_lastSplitting(string, LeftHadron, RightHadron); + } else + { + Diquark_AntiDiquark_aboveThreshold_lastSplitting(string, LeftHadron, RightHadron); - if (NumberOf_FS == 0) return false; + if (NumberOf_FS == 0) return false; - sampledState = SampleState(); - if (string->GetLeftParton()->GetPDGEncoding() < 0) - { - LeftHadron =FS_LeftHadron[sampledState]; - RightHadron=FS_RightHadron[sampledState]; - } else - { - LeftHadron =FS_RightHadron[sampledState]; - RightHadron=FS_LeftHadron[sampledState]; - } - } + sampledState = SampleState(); + if (string->GetLeftParton()->GetPDGEncoding() < 0) + { + LeftHadron =FS_LeftHadron[sampledState]; + RightHadron=FS_RightHadron[sampledState]; + } else + { + LeftHadron =FS_RightHadron[sampledState]; + RightHadron=FS_LeftHadron[sampledState]; + } } - } else - { + } // ID > 3300 + } else { if (string->DecayIsQuark() && string->StableIsQuark() ) { //... there are quarks on cluster ends #ifdef debug_LUNDfragmentation @@ -878,12 +884,13 @@ Diquark_AntiDiquark_belowThreshold_lastSplitting(G4FragmentingString * & string, } isOK = (LeftHadron != nullptr) && (RightHadron != nullptr); + if(isOK) { isOK = (StringMass > LeftHadron->GetPDGMass() + RightHadron->GetPDGMass()); } ++cClusterInterrupt; //... repeat procedure, if mass of cluster is too low to produce hadrons //... ClusterMassCut = 0.15*GeV model parameter } - while (isOK == false || cClusterInterrupt < ClusterLoopInterrupt); + while (isOK == false && cClusterInterrupt < ClusterLoopInterrupt); /* Loop checking, 07.08.2015, A.Ribon */ return isOK; } @@ -1145,7 +1152,7 @@ G4bool G4LundStringFragmentation::Quark_AntiQuark_lastSplitting(G4FragmentingStr NumberOf_FS=0; for (G4int ProdQ=1; ProdQ < 4; ProdQ++) // Loop over quark-antiquark cases: u-ubar, d-dbar, s-sbar { // (as last splitting, do not consider c-cbar and b-bbar cases) - //G4cout << "NumberOf_FS ProdQ " << NumberOf_FS << " " << ProdQ << G4endl; + //G4cout<<"NumberOf_FS ProdQ "<FindParticle(SignQ* Meson[AbsIDquark-1][ProdQ-1][StateQ]); - //G4cout<<"LeftHadron "<GetParticleName()<GetPDGMass(); @@ -1211,7 +1218,6 @@ G4bool G4LundStringFragmentation::Quark_AntiQuark_lastSplitting(G4FragmentingStr MesonWeight[AbsIDquark-1][ProdQ-1][StateQ]* MesonWeight[AbsIDanti_quark-1][ProdQ-1][StateAQ]* Prob_QQbar[ProdQ-1]; - if (string->GetLeftParton()->GetPDGEncoding()>0) { FS_LeftHadron[NumberOf_FS] = RightHadron; @@ -1261,7 +1267,6 @@ G4int G4LundStringFragmentation::SampleState(void) } G4double SumWeights=0.; - for (G4int i=0; i 0.12 + SetStrangenessSuppression((1.0 - 0.16)/2.); // Check if charmed and bottom hadrons are enabled: if this is the case, then // set the non-zero probabilities for c-cbar and b-bbar creation from the vacuum, @@ -60,15 +60,15 @@ G4QGSMFragmentation::G4QGSMFragmentation() // hadrons can't/can be created during the string fragmentation of ordinary // (i.e. not heavy) projectile hadron nuclear reactions. if ( G4HadronicParameters::Instance()->EnableBCParticles() ) { - SetProbCCbar(0.005); // According to O.I. Piskunova Yad. Fiz. 56 (1993) 1094 + SetProbCCbar(0.0002); // According to O.I. Piskunova Yad. Fiz. 56 (1993) 1094; tuned by Uzhi Oct. 2022 SetProbBBbar(5.0e-5); // According to O.I. Piskunova Yad. Fiz. 56 (1993) 1094 } else { SetProbCCbar(0.0); SetProbBBbar(0.0); } - SetDiquarkSuppression(0.195); // Uzhi June 2020 0.32 -> 0.195 - SetDiquarkBreakProbability(0.0); // Uzhi June 2020 0.7 -> 0.0 + SetDiquarkSuppression(0.32); + SetDiquarkBreakProbability(0.7); SetMinMasses(); @@ -220,11 +220,11 @@ G4KineticTrackVector* G4QGSMFragmentation::FragmentString(const G4ExcitedString& // Split current string into 2 final Hadrons #ifdef debug_QGSMfragmentation - if( inner_sucess ) { // Uzhi June 2020 + if( inner_sucess ) { G4cout<<"Split remaining string into 2 final hadrons."<Mass2(); - return sqr( MinimalStringMass + MassCut ) < string->Mass2(); // Uzhi June 2020 + return sqr( MinimalStringMass + MassCut ) < string->Mass2(); } //---------------------------------------------------------------------------------------------------------- @@ -428,8 +427,8 @@ G4ParticleDefinition *G4QGSMFragmentation::DiQuarkSplitup( G4ParticleDefinition* G4ParticleDefinition * decayQuark=FindParticle(decayQuarkEncoding); G4ParticleDefinition * had=hadronizer->Build(QuarkPair.first, decayQuark); - DecayQuark = decay->GetPDGEncoding(); //Uzhi June 2020 decayQuarkEncoding; - NewQuark = NewDecayEncoding; //Uzhi June 2020 QuarkPair.first->GetPDGEncoding(); + DecayQuark = decay->GetPDGEncoding(); + NewQuark = NewDecayEncoding; return had; @@ -489,8 +488,8 @@ G4LorentzVector * G4QGSMFragmentation::SplitEandP(G4ParticleDefinition * pHadron G4ThreeVector HadronPt , RemSysPt; G4double HadronMassT2, ResidualMassT2; - //Uzhi June 2020 Mt distribution is implemented - G4double HadronMt, Pt, Pt2, phi; // Uzhi June 2020 + // Mt distribution is implemented + G4double HadronMt, Pt, Pt2, phi; //... sample Pt of the hadron G4int attempt=0; @@ -498,12 +497,11 @@ G4LorentzVector * G4QGSMFragmentation::SplitEandP(G4ParticleDefinition * pHadron { attempt++; if (attempt > StringLoopInterrupt) return 0; - HadronMt = HadronMass - 200.0*G4Log(G4UniformRand()); // Uzhi June 2020, 200.0 must be tuned - Pt2 = sqr(HadronMt)-sqr(HadronMass); Pt=std::sqrt(Pt2); // Uzhi June 2020 + HadronMt = HadronMass - 200.0*G4Log(G4UniformRand()); // 200.0 must be tuned + Pt2 = sqr(HadronMt)-sqr(HadronMass); Pt=std::sqrt(Pt2); phi = 2.*pi*G4UniformRand(); G4ThreeVector SampleQuarkPtw= G4ThreeVector(Pt*std::cos(phi), Pt*std::sin(phi), 0); - HadronPt =SampleQuarkPtw + string->DecayPt(); // Uzhi June 2020 - //Uzhi June 2020 HadronPt =SampleQuarkPt() + string->DecayPt(); // Save this for possible return + HadronPt =SampleQuarkPtw + string->DecayPt(); HadronPt.setZ(0); RemSysPt = StringPt - HadronPt; @@ -558,7 +556,7 @@ G4LorentzVector * G4QGSMFragmentation::SplitEandP(G4ParticleDefinition * pHadron G4double G4QGSMFragmentation::GetLightConeZ(G4double zmin, G4double zmax, G4int /* PartonEncoding */ , G4ParticleDefinition* /* pHadron */, G4double ptx , G4double pty) { - G4double lambda = 2.0*(sqr(ptx)+sqr(pty))/sqr(GeV); // Uzhi June 2020 + G4double lambda = 2.0*(sqr(ptx)+sqr(pty))/sqr(GeV); #ifdef debug_QGSMfragmentation G4cout<<"GetLightConeZ zmin zmax Parton pHadron "<= ClusterLoopInterrupt) return false; // Uzhi June 2020 + if (cClusterInterrupt++ >= ClusterLoopInterrupt) return false; LeftHadronMass = -MaxMass; RightHadronMass = -MaxMass; G4ParticleDefinition * quark = nullptr; @@ -664,12 +663,12 @@ G4bool G4QGSMFragmentation::SplitLast(G4FragmentingString * string, pDefPair QuarkPair = CreatePartonPair(IsParticle); quark = QuarkPair.second; - LeftHadron= hadronizer->BuildLowSpin(QuarkPair.first, string->GetLeftParton()); - if ( LeftHadron == NULL ) continue; // Uzhi June 2020 - RightHadron = hadronizer->BuildLowSpin(string->GetRightParton(), quark); // Uzhi June 2020 - if ( RightHadron == NULL ) continue; // Uzhi June 2020 - } else if( (!string->DecayIsQuark() && string->StableIsQuark() ) || // Uzhi June 2020 - ( string->DecayIsQuark() && !string->StableIsQuark() ) ) { // Uzhi June 2020 + LeftHadron= hadronizer->Build(QuarkPair.first, string->GetLeftParton()); + if ( LeftHadron == NULL ) continue; + RightHadron = hadronizer->Build(string->GetRightParton(), quark); + if ( RightHadron == NULL ) continue; + } else if( (!string->DecayIsQuark() && string->StableIsQuark() ) || + ( string->DecayIsQuark() && !string->StableIsQuark() ) ) { //... there is a Diquark on one of cluster ends G4int IsParticle; if ( string->StableIsQuark() ) { @@ -685,13 +684,11 @@ G4bool G4QGSMFragmentation::SplitLast(G4FragmentingString * string, pDefPair QuarkPair = CreatePartonPair(IsParticle,false); // no diquarks wanted //SetStrangenessSuppression((1.0-ProbSaS)/2.0); quark = QuarkPair.second; - LeftHadron=hadronizer->BuildLowSpin(QuarkPair.first, string->GetLeftParton()); - if ( LeftHadron == NULL ) continue; // Uzhi June 2020 - RightHadron = hadronizer->BuildLowSpin(string->GetRightParton(), quark); // Uzhi June 2020 - if ( RightHadron == NULL ) continue; // Uzhi June 2020 - } else { // Diquark and anti-diquark are on the string ends // Uzhi June 2020 - //+++++++++++++++++++++++++++++++ Inserted from FTF // Uzhi June 2020 - // Uzhi G4double StringMass = string->Mass(); + LeftHadron=hadronizer->Build(QuarkPair.first, string->GetLeftParton()); + if ( LeftHadron == NULL ) continue; + RightHadron = hadronizer->Build(string->GetRightParton(), quark); + if ( RightHadron == NULL ) continue; + } else { // Diquark and anti-diquark are on the string ends if (cClusterInterrupt++ >= ClusterLoopInterrupt) return false; G4int LeftQuark1= string->GetLeftParton()->GetPDGEncoding()/1000; G4int LeftQuark2=(string->GetLeftParton()->GetPDGEncoding()/100)%10; @@ -705,7 +702,6 @@ G4bool G4QGSMFragmentation::SplitLast(G4FragmentingString * string, RightHadron =hadronizer->Build(FindParticle( LeftQuark2), FindParticle(RightQuark1)); } if ( (LeftHadron == NULL) || (RightHadron == NULL) ) continue; - // End of inserting from FTF Uzhi June 2020 } LeftHadronMass = LeftHadron->GetPDGMass(); RightHadronMass = RightHadron->GetPDGMass(); @@ -742,7 +738,7 @@ G4bool G4QGSMFragmentation::SplitLast(G4FragmentingString * string, void G4QGSMFragmentation::Sample4Momentum(G4LorentzVector* Mom , G4double Mass , G4LorentzVector* AntiMom, G4double AntiMass, G4double InitialMass) { - #ifdef debug_QGSMfragmentation // Uzhi June 2020 + #ifdef debug_QGSMfragmentation G4cout<<"Sample4Momentum Last-----------------------------------------"<h+(qq)' //... pspin_meson is probability to create pseudo-scalar meson - pspin_meson = 0.4; - pspin_mesonSSbar = 0.3; - + pspin_meson.resize(3); + pspin_meson[0] = 0.5; // u or d + anti-u or anti-d + pspin_meson[1] = 0.4; // one of the quark is strange, or charm, or bottom + pspin_meson[2] = 0.3; // both of the quark are strange, or charm, or bottom + //... pspin_barion is probability to create 1/2 barion pspin_barion = 0.5; //... vectorMesonMix[] is quark mixing parameters for vector mesons (Variable spin = 3) vectorMesonMix.resize(6); vectorMesonMix[0] = 0.0; - vectorMesonMix[1] = 0.375; + vectorMesonMix[1] = 0.5; vectorMesonMix[2] = 0.0; - vectorMesonMix[3] = 0.375; + vectorMesonMix[3] = 0.5; vectorMesonMix[4] = 1.0; vectorMesonMix[5] = 1.0; @@ -112,7 +114,7 @@ G4VLongitudinalStringDecay::G4VLongitudinalStringDecay(const G4String& name) // Parameters may be changed until the first fragmentation starts PastInitPhase=false; hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix, - ProbEta_c, ProbEta_b, pspin_mesonSSbar ); + ProbEta_c, ProbEta_b ); MaxMass=-350.0*GeV; // If there will be a particle with mass larger than Higgs the value must be changed. @@ -497,21 +499,6 @@ void G4VLongitudinalStringDecay::SetDiquarkBreakProbability(G4double aValue) //---------------------------------------------------------------------------------------------------------- -void G4VLongitudinalStringDecay::SetVectorMesonProbability(G4double aValue) -{ - if ( PastInitPhase ) { - throw G4HadronicException(__FILE__, __LINE__, - "G4VLongitudinalStringDecay::SetVectorMesonProbability after FragmentString() not allowed"); - } else { - pspin_meson = aValue; - delete hadronizer; - hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix, - ProbEta_c, ProbEta_b , pspin_mesonSSbar ); - } -} - -//---------------------------------------------------------------------------------------------------------- - void G4VLongitudinalStringDecay::SetSpinThreeHalfBarionProbability(G4double aValue) { if ( PastInitPhase ) { @@ -520,8 +507,8 @@ void G4VLongitudinalStringDecay::SetSpinThreeHalfBarionProbability(G4double aVal } else { pspin_barion = aValue; delete hadronizer; - hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix, - ProbEta_c, ProbEta_b, pspin_mesonSSbar ); + hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix, + ProbEta_c, ProbEta_b ); } } @@ -543,8 +530,8 @@ void G4VLongitudinalStringDecay::SetScalarMesonMixings(std::vector aVe scalarMesonMix[4] = aVector[4]; scalarMesonMix[5] = aVector[5]; delete hadronizer; - hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix, - ProbEta_c, ProbEta_b, pspin_mesonSSbar ); + hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix, + ProbEta_c, ProbEta_b ); } } @@ -566,8 +553,8 @@ void G4VLongitudinalStringDecay::SetVectorMesonMixings(std::vector aVe vectorMesonMix[4] = aVector[4]; vectorMesonMix[5] = aVector[5]; delete hadronizer; - hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix, - ProbEta_c, ProbEta_b, pspin_mesonSSbar ); + hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix, + ProbEta_c, ProbEta_b ); } } @@ -690,13 +677,19 @@ void G4VLongitudinalStringDecay::SetMinMasses() } } //-------------------------- + G4int StrangeQ = 0; + G4int StrangeAQ = 0; for (G4int i=0; i<5; i++) - { for (G4int j=0; j<5; j++) - { + { + if( i >= 2 ) StrangeQ=1; + for (G4int j=0; j<5; j++) + { + StrangeAQ = 0; + if( j >= 2 ) StrangeAQ=1; Meson[i][j][0] = 100 * (std::max(i,j)+1) + 10 * (std::min(i,j)+1) + 1; // Scalar meson - MesonWeight[i][j][0] = ( pspin_meson); + MesonWeight[i][j][0] = ( pspin_meson[StrangeQ + StrangeAQ]); Meson[i][j][1] = 100 * (std::max(i,j)+1) + 10 * (std::min(i,j)+1) + 3; // Vector meson - MesonWeight[i][j][1] = (1.-pspin_meson); + MesonWeight[i][j][1] = (1.-pspin_meson[StrangeQ + StrangeAQ]); } } @@ -704,65 +697,39 @@ void G4VLongitudinalStringDecay::SetMinMasses() //dd1 -> scalarMesonMix[0] * 111 + (1-scalarMesonMix[0]-scalarMesonMix[1]) * 221 + scalarMesonMix[1] * 331 (000) //dd1 -> Pi0 Eta Eta' - Meson[0][0][0] = 111; MesonWeight[0][0][0] = ( pspin_meson) * ( scalarMesonMix[0] ); // Pi0 - Meson[0][0][2] = 221; MesonWeight[0][0][3] = ( pspin_meson) * (1-scalarMesonMix[0]-scalarMesonMix[1]); // Eta - Meson[0][0][3] = 331; MesonWeight[0][0][4] = ( pspin_meson) * ( scalarMesonMix[1]); // Eta' - - /* - //dd3 -> vectorMesonMix[0] * 113 + (1-vectorMesonMix[0]-vectorMesonMix[1]) * 223 + vectorMesonMix[1] * 333 (001) - //dd3 -> rho_0 omega phi - - Meson[0][0][1] = 113; MesonWeight[0][0][1] = (1.-pspin_meson) * ( vectorMesonMix[0] ); // Rho - Meson[0][0][4] = 223; MesonWeight[0][0][4] = (1.-pspin_meson) * (1-vectorMesonMix[0]-vectorMesonMix[1]); // omega - Meson[0][0][5] = 333; MesonWeight[0][0][5] = (1.-pspin_meson) * ( vectorMesonMix[1]); // phi - */ + Meson[0][0][0] = 111; MesonWeight[0][0][0] = ( pspin_meson[0]) * ( scalarMesonMix[0] ); // Pi0 + Meson[0][0][2] = 221; MesonWeight[0][0][3] = ( pspin_meson[0]) * (1-scalarMesonMix[0]-scalarMesonMix[1]); // Eta + Meson[0][0][3] = 331; MesonWeight[0][0][4] = ( pspin_meson[0]) * ( scalarMesonMix[1]); // Eta' //dd3 -> (1-vectorMesonMix[1] * 113 + vectorMesonMix[1] * 223 (001) //dd3 -> rho_0 omega - Meson[0][0][1] = 113; MesonWeight[0][0][1] = (1.-pspin_meson) * (1-vectorMesonMix[1]); // Rho - Meson[0][0][4] = 223; MesonWeight[0][0][4] = (1.-pspin_meson) * ( vectorMesonMix[1]); // omega + Meson[0][0][1] = 113; MesonWeight[0][0][1] = (1.-pspin_meson[0]) * (1-vectorMesonMix[1]); // Rho + Meson[0][0][4] = 223; MesonWeight[0][0][4] = (1.-pspin_meson[0]) * ( vectorMesonMix[1]); // omega //uu1 -> scalarMesonMix[0] * 111 + (1-scalarMesonMix[0]-scalarMesonMix[1]) * 221 + scalarMesonMix[1] * 331 (110) //uu1 -> Pi0 Eta Eta' - Meson[1][1][0] = 111; MesonWeight[1][1][0] = ( pspin_meson) * ( scalarMesonMix[0] ); // Pi0 - Meson[1][1][2] = 221; MesonWeight[1][1][2] = ( pspin_meson) * (1-scalarMesonMix[0]-scalarMesonMix[1]); // Eta - Meson[1][1][3] = 331; MesonWeight[1][1][3] = ( pspin_meson) * ( scalarMesonMix[1]); // Eta' - - /* - //uu3 -> vectorMesonMix[0] * 113 + (1-vectorMesonMix[0]-vectorMesonMix[1]) * 223 + vectorMesonMix[1] * 333 (111) - //uu3 -> rho_0 omega phi - - Meson[1][1][1] = 113; MesonWeight[1][1][1] = (1.-pspin_meson) * ( vectorMesonMix[0] ); // Rho - Meson[1][1][4] = 223; MesonWeight[1][1][4] = (1.-pspin_meson) * (1-vectorMesonMix[0]-vectorMesonMix[1]); // omega - Meson[1][1][5] = 333; MesonWeight[1][1][5] = (1.-pspin_meson) * ( vectorMesonMix[1]); // phi - */ + Meson[1][1][0] = 111; MesonWeight[1][1][0] = ( pspin_meson[0]) * ( scalarMesonMix[0] ); // Pi0 + Meson[1][1][2] = 221; MesonWeight[1][1][2] = ( pspin_meson[0]) * (1-scalarMesonMix[0]-scalarMesonMix[1]); // Eta + Meson[1][1][3] = 331; MesonWeight[1][1][3] = ( pspin_meson[0]) * ( scalarMesonMix[1]); // Eta' //uu3 -> (1-vectorMesonMix[1]) * 113 + vectorMesonMix[1] * 223 (111) //uu3 -> rho_0 omega - Meson[1][1][1] = 113; MesonWeight[1][1][1] = (1.-pspin_meson) * (1-vectorMesonMix[1]); // Rho - Meson[1][1][4] = 223; MesonWeight[1][1][4] = (1.-pspin_meson) * ( vectorMesonMix[1]); // omega + Meson[1][1][1] = 113; MesonWeight[1][1][1] = (1.-pspin_meson[0]) * (1-vectorMesonMix[1]); // Rho + Meson[1][1][4] = 223; MesonWeight[1][1][4] = (1.-pspin_meson[0]) * ( vectorMesonMix[1]); // omega //ss1 -> (1-scalarMesonMix[5]) * 221 + scalarMesonMix[5] * 331 (220) //ss1 -> Eta Eta' - Meson[2][2][0] = 221; MesonWeight[2][2][0] = ( pspin_meson) * (1-scalarMesonMix[5] ); // Eta - Meson[2][2][2] = 331; MesonWeight[2][2][2] = ( pspin_meson) * ( scalarMesonMix[5]); // Eta' - - /* - //ss3 -> (1-vectorMesonMix[5]) * 223 + vectorMesonMix[5] * 333 (221) - //ss3 -> omega phi - - Meson[2][2][1] = 223; MesonWeight[2][2][1] = (1.-pspin_meson) * (1-vectorMesonMix[5] ); // omega - Meson[2][2][3] = 333; MesonWeight[2][2][3] = (1.-pspin_meson) * ( vectorMesonMix[5]); // phi - */ + Meson[2][2][0] = 221; MesonWeight[2][2][0] = ( pspin_meson[2]) * (1-scalarMesonMix[5] ); // Eta + Meson[2][2][2] = 331; MesonWeight[2][2][2] = ( pspin_meson[2]) * ( scalarMesonMix[5]); // Eta' //ss3 -> vectorMesonMix[5] * 333 (221) //ss3 -> phi - Meson[2][2][1] = 333; MesonWeight[2][2][3] = (1.-pspin_mesonSSbar) * ( vectorMesonMix[5]); // phi + Meson[2][2][1] = 333; MesonWeight[2][2][1] = (1.-pspin_meson[2]) * ( vectorMesonMix[5]); // phi //cc1 -> ProbEta_c /(1-pspin_meson) 441 (330) Probability of Eta_c //cc3 -> (1-ProbEta_c)/( pspin_meson) 443 (331) Probability of J/Psi @@ -770,12 +737,12 @@ void G4VLongitudinalStringDecay::SetMinMasses() //bb1 -> ProbEta_b /pspin_meson 551 (440) Probability of Eta_b //bb3 -> (1-ProbEta_b)/pspin_meson 553 (441) Probability of Upsilon - if ( pspin_meson != 0. ) { - Meson[3][3][0] *= ( ProbEta_c)/( pspin_meson); // Eta_c - Meson[3][3][1] *= (1.0-ProbEta_c)/(1.-pspin_meson); // J/Psi + if ( pspin_meson[2] != 0. ) { + Meson[3][3][0] *= ( ProbEta_c)/( pspin_meson[2]); // Eta_c + Meson[3][3][1] *= (1.0-ProbEta_c)/(1.-pspin_meson[2]); // J/Psi - Meson[4][4][0] *= ( ProbEta_b)/( pspin_meson); // Eta_b - Meson[4][4][1] *= (1.0-ProbEta_b)/(1.-pspin_meson); // Upsilon + Meson[4][4][0] *= ( ProbEta_b)/( pspin_meson[2]); // Eta_b + Meson[4][4][1] *= (1.0-ProbEta_b)/(1.-pspin_meson[2]); // Upsilon } //-------------------------- diff --git a/source/processes/hadronic/models/parton_string/management/History b/source/processes/hadronic/models/parton_string/management/History index 9ba62b6a20..bc3f344eb8 100644 --- a/source/processes/hadronic/models/parton_string/management/History +++ b/source/processes/hadronic/models/parton_string/management/History @@ -6,6 +6,10 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-11 Alberto Ribon (hadr-partonstring-mgt-V11-00-03) +- G4VPartonStringModel : added debugging information on the number of lambdas + for residual projectile hypernuclei. + ## 2022-06-07 Alberto Ribon (hadr-partonstring-mgt-V11-00-02) - G4VSplitableHadron : changed the method Splitting() from "protected" to "public" (this is needed to change the status of SplitableHadron in diff --git a/source/processes/hadronic/models/parton_string/management/src/G4VPartonStringModel.cc b/source/processes/hadronic/models/parton_string/management/src/G4VPartonStringModel.cc index e39e1e811f..d8ff58e22b 100644 --- a/source/processes/hadronic/models/parton_string/management/src/G4VPartonStringModel.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4VPartonStringModel.cc @@ -372,7 +372,8 @@ G4KineticTrackVector * G4VPartonStringModel::Scatter(const G4Nucleus &theNucleus ) { unphysicalResidual = true; //G4cout << "***UNPHYSICAL PROJECTILE RESIDUAL*** Z=" << numberProtonProjectileResidual - // << " ; N=" << numberNeutronProjectileResidual; + // << " ; N=" << numberNeutronProjectileResidual + // << " ; L=" << numberLambdaProjectileResidual; } if ( unphysicalResidual ) { //G4cout << " -> REJECTING COLLISION because of unphysical residual !" << G4endl; diff --git a/source/processes/hadronic/models/parton_string/qgsm/History b/source/processes/hadronic/models/parton_string/qgsm/History index 964ca53996..26b66b5357 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/History +++ b/source/processes/hadronic/models/parton_string/qgsm/History @@ -6,6 +6,9 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-10-07 Gabriele Cosmo (hadr-qgsm-V11-00-03) +- Fixed compilation warning on Intel/icx compiler for variables set + but not used in G4QGSMSplitableHadron and G4QGSParticipants. ## 2022-05-06 Vladimir Ivanchenko (hadr-qgsm-V11-00-02) - G4QGSParticipants - do not print warning in the case of precision loss; diff --git a/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSMSplitableHadron.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSMSplitableHadron.hh index 1dafd751cd..52703d3f8a 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSMSplitableHadron.hh +++ b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSMSplitableHadron.hh @@ -113,9 +113,9 @@ inline G4Parton* G4QGSMSplitableHadron::GetNextAntiParton() return result; } -inline void G4QGSMSplitableHadron::SetFirstParton(G4int PDGcode) -{PDGcode++;} -inline void G4QGSMSplitableHadron::SetSecondParton(G4int PDGcode) -{PDGcode++;} +inline void G4QGSMSplitableHadron::SetFirstParton(G4int) +{} +inline void G4QGSMSplitableHadron::SetSecondParton(G4int) +{} #endif diff --git a/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSParticipants.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSParticipants.cc index a8bbac8329..acfee4668e 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSParticipants.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSParticipants.cc @@ -398,11 +398,11 @@ void G4QGSParticipants::GetList( const G4ReactionProduct& thePrimary ) { #ifdef debugQGSParticipants G4cout<<"InteractionMode "<StartLoop(); - G4int nucleonCount = -1; G4QGSParticipants_NPart = 0; G4double Power=MaxPower; @@ -410,7 +410,6 @@ void G4QGSParticipants::GetList( const G4ReactionProduct& thePrimary ) { while( (tNucleon = theNucleus->GetNextNucleon()) ) { if(Power <= 0.) break; - nucleonCount++; G4LorentzVector nucleonMomentum=tNucleon->Get4Momentum(); @@ -425,6 +424,7 @@ void G4QGSParticipants::GetList( const G4ReactionProduct& thePrimary ) { Regge->GetProbabilities(std::sqrt(Distance2), InteractionMode, Pint, Pprd, Ptrd, Pdd, Pnd, Pnvr); #ifdef debugQGSParticipants + nucleonCount++; G4cout<<"Nucleon & its impact parameter: "<StartLoop(); - G4int TrgNuc=0; + #ifdef debugQGSParticipants + G4int TrgNuc=0; + #endif G4Nucleon* Neighbour(0); while ( ( Neighbour = theTargetNucleus->GetNextNucleon() ) ) { - TrgNuc++; + #ifdef debugQGSParticipants + TrgNuc++; + #endif if ( ! Neighbour->AreYouHit() ) { G4double impact2 = sqr( XofWoundedNucleon - Neighbour->GetPosition().x() ) + sqr( YofWoundedNucleon - Neighbour->GetPosition().y() ); @@ -1552,18 +1556,18 @@ G4bool G4QGSParticipants::DeterminePartonMomenta() #ifdef debugQGSParticipants G4cout<<"Projectile 4 momentum "<::iterator i; - G4int NuclNo=0; for (i = theTargets.begin(); i != theTargets.end(); i++ ) { Psum += (*i)->Get4Momentum(); #ifdef debugQGSParticipants G4cout<<"Nusleus nucleon # and its 4Mom. "<Get4Momentum()<Set4Momentum( tmp ); #ifdef debugQGSParticipants G4cout<<"Target nucleon # and 4Mom "<<" "<Get4Momentum()<Set4Momentum(tmp); #ifdef debugQGSParticipants G4cout<<"Target nucleons # and mom: "<Get4Momentum()<Set4Momentum(tmp); #ifdef debugQGSParticipants G4cout<<" "<GetSoftCollisionCount()-1; @@ -1958,19 +1962,19 @@ G4bool G4QGSParticipants::DeterminePartonMomenta() #ifdef debugQGSParticipants G4cout<<" "<GetSoftCollisionCount()-1; #ifdef debugQGSParticipants G4cout<<"nSeaPair of target and N# "<GetNextParton(); // for quarks @@ -2027,8 +2031,8 @@ G4bool G4QGSParticipants::DeterminePartonMomenta() aParton->Set4Momentum(Tmp); #ifdef debugQGSParticipants G4cout<<" "<::iterator i; - G4int IntNo=0; i = theInteractions.begin(); while ( i != theInteractions.end() ) /* Loop checking, 07.08.2015, A.Ribon */ { @@ -2150,8 +2154,8 @@ void G4QGSParticipants::CreateStrings() #ifdef debugQGSParticipants G4cout<<"An interaction # and soft coll. # "<GetNumberOfSoftCollisions()<GetNumberOfSoftCollisions()) { G4VSplitableHadron* pProjectile = anIniteraction->GetProjectile(); diff --git a/source/processes/hadronic/models/pre_equilibrium/History b/source/processes/hadronic/models/pre_equilibrium/History index 33e4d71a51..1e541ded19 100644 --- a/source/processes/hadronic/models/pre_equilibrium/History +++ b/source/processes/hadronic/models/pre_equilibrium/History @@ -1,9 +1,17 @@ # Category hadr-pre History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-26 Gabriele Cosmo (hadr-pre-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-21 V. Ivanchenko (hadr-pre-V11-00-01) +- G4PreCompoundModel - for case of a hyper-nucleus do not preform + pre-compound emission but only equivilibrium emission ## 2021-12-10 Ben Morgan (hadr-pre-V11-00-00) - Change to new Markdown History format diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4LowEGammaNuclearModel.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4LowEGammaNuclearModel.cc index c8ba0a78bd..619b4d072f 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4LowEGammaNuclearModel.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4LowEGammaNuclearModel.cc @@ -91,11 +91,11 @@ G4HadFinalState* G4LowEGammaNuclearModel::ApplyYourself( if(res) { theParticleChange.SetStatusChange(stopAndKill); - G4int nsec = res->size(); + std::size_t nsec = res->size(); if (verboseLevel > 1) { G4cout << "G4LowEGammaNuclearModel: " << nsec << " secondaries" << G4endl; } - for(G4int i=0; iGetKineticEnergy(); G4ThreeVector dir(0.,0.,1.); diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4LowEIonFragmentation.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4LowEIonFragmentation.cc index d58c368479..cd95605b9c 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4LowEIonFragmentation.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4LowEIonFragmentation.cc @@ -208,12 +208,12 @@ ApplyYourself(const G4HadProjectile & thePrimary, G4Nucleus & theNucleus) } // Fill the particle change and clear intermediate vectors - G4int nexc = (nullptr != theExcitationResult) ? + std::size_t nexc = (nullptr != theExcitationResult) ? theExcitationResult->size() : 0; - G4int npre = (nullptr != thePreCompoundResult) ? + std::size_t npre = (nullptr != thePreCompoundResult) ? thePreCompoundResult->size() : 0; - for(G4int k=0; kGetDefinition(), p->GetMomentum())); secondary.SetTime(p->GetTOF()); @@ -221,7 +221,7 @@ ApplyYourself(const G4HadProjectile & thePrimary, G4Nucleus & theNucleus) theResult.AddSecondary(secondary); delete p; } - for(G4int k=0; kGetDefinition(), p->GetMomentum())); secondary.SetTime(p->GetTOF()); diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc index 66e626a0a5..8351fb720c 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc @@ -47,7 +47,7 @@ void G4PreCompoundFragmentVector::SetVector(pcfvector * avector) theChannels = avector; } if(theChannels) { - nChannels = theChannels->size(); + nChannels = (G4int)theChannels->size(); probabilities.resize(nChannels, 0.0); } else { nChannels = 0; diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundModel.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundModel.cc index d4f1397c77..9401b5dbf0 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundModel.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundModel.cc @@ -201,14 +201,14 @@ G4ReactionProductVector* G4PreCompoundModel::DeExcite(G4Fragment& aFragment) G4ReactionProductVector * Result = new G4ReactionProductVector; G4double U = aFragment.GetExcitationEnergy(); G4int Z = aFragment.GetZ_asInt(); - G4int A = aFragment.GetA_asInt(); + G4int A = aFragment.GetA_asInt(); //G4cout << "### G4PreCompoundModel::DeExcite" << G4endl; //G4cout << aFragment << G4endl; - // Perform Equilibrium Emission + // Conditions to skip pre-compound and perform equilibrium emission if (!isActive || (Z < minZ && A < minA) || - U < fLowLimitExc*A || U > A*fHighLimitExc) { + U < fLowLimitExc*A || U > A*fHighLimitExc || 0 < aFragment.GetNumberOfLambdas()) { PerformEquilibriumEmission(aFragment, Result); return Result; } diff --git a/source/processes/hadronic/models/qmd/History b/source/processes/hadronic/models/qmd/History index 474bd1869c..d55159714e 100644 --- a/source/processes/hadronic/models/qmd/History +++ b/source/processes/hadronic/models/qmd/History @@ -1,9 +1,14 @@ # Category hadr-qmd History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-10-07 Gabriele Cosmo (hadr-qmd-V11-00-01) +- Fixed compilation warning on Intel/icx compiler for variable set + but not used in G4QMDMeanField. ## 2021-12-10 Ben Morgan (hadr-qmd-V11-00-00) - Change to new Markdown History format diff --git a/source/processes/hadronic/models/qmd/include/G4QMDSystem.hh b/source/processes/hadronic/models/qmd/include/G4QMDSystem.hh index b155140e3c..2baa475904 100644 --- a/source/processes/hadronic/models/qmd/include/G4QMDSystem.hh +++ b/source/processes/hadronic/models/qmd/include/G4QMDSystem.hh @@ -45,24 +45,55 @@ class G4QMDSystem { public: + G4QMDSystem(); virtual ~G4QMDSystem(); - void SetParticipant( G4QMDParticipant* particle ) { participants.push_back ( particle ); }; + void SetParticipant( G4QMDParticipant* particle ) + { + participants.push_back ( particle ); + } + void SetSystem ( G4QMDSystem* , G4ThreeVector , G4ThreeVector ); void SubtractSystem ( G4QMDSystem* ); - G4QMDParticipant* EraseParticipant( G4int i ) { G4QMDParticipant* particle = participants[ i ]; participants.erase( std::find ( participants.begin() , participants.end() , participants[ i ] ) ) ; return particle; }; - void DeleteParticipant( G4int i ) { delete participants[ i ] ; participants.erase( std::find ( participants.begin() , participants.end() , participants[ i ] ) ); }; + G4QMDParticipant* EraseParticipant( G4int i ) + { + G4QMDParticipant* particle = participants[ i ]; + participants.erase(std::find( participants.cbegin(), + participants.cend(), participants[ i ])); + return particle; + } + + void DeleteParticipant( G4int i ) + { + delete participants[ i ]; + participants.erase(std::find ( participants.cbegin(), + participants.cend(), participants[ i ])); + } + void InsertParticipant( G4QMDParticipant* particle , G4int j ); - G4int GetTotalNumberOfParticipant() { return participants.size(); }; + G4int GetTotalNumberOfParticipant() + { + return (G4int)participants.size(); + } - G4QMDParticipant* GetParticipant( G4int i ) { return participants[i]; }; + G4QMDParticipant* GetParticipant( G4int i ) + { + return participants[i]; + } - void IncrementCollisionCounter() { numberOfCollision++; }; - G4int GetNOCollision() { return numberOfCollision; }; + void IncrementCollisionCounter() + { + ++numberOfCollision; + } + + G4int GetNOCollision() + { + return numberOfCollision; + } void ShowParticipants(); diff --git a/source/processes/hadronic/models/qmd/src/G4QMDMeanField.cc b/source/processes/hadronic/models/qmd/src/G4QMDMeanField.cc index 8d267de062..0c8957895c 100644 --- a/source/processes/hadronic/models/qmd/src/G4QMDMeanField.cc +++ b/source/processes/hadronic/models/qmd/src/G4QMDMeanField.cc @@ -755,7 +755,6 @@ std::vector< G4QMDNucleus* > G4QMDMeanField::DoClusterJudgment() } - G4int nclst = 1; G4int ichek = 1; @@ -891,7 +890,6 @@ std::vector< G4QMDNucleus* > G4QMDMeanField::DoClusterJudgment() if ( ichek == i ) { - nclst++; ichek++; } } diff --git a/source/processes/hadronic/models/quasi_elastic/History b/source/processes/hadronic/models/quasi_elastic/History index 948923745e..c7ba6a98f3 100644 --- a/source/processes/hadronic/models/quasi_elastic/History +++ b/source/processes/hadronic/models/quasi_elastic/History @@ -1,9 +1,13 @@ # Category hadr-qelastic History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-26 Gabriele Cosmo (hadr-qelastic-V11-00-01) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2021-12-10 Ben Morgan (hadr-qelastic-V11-00-00) - Change to new Markdown History format diff --git a/source/processes/hadronic/models/quasi_elastic/src/G4QuasiElRatios.cc b/source/processes/hadronic/models/quasi_elastic/src/G4QuasiElRatios.cc index d4ad3a72ba..c20194551d 100644 --- a/source/processes/hadronic/models/quasi_elastic/src/G4QuasiElRatios.cc +++ b/source/processes/hadronic/models/quasi_elastic/src/G4QuasiElRatios.cc @@ -163,7 +163,7 @@ G4double G4QuasiElRatios::GetQF2IN_Ratio(G4double m_s, G4int A) // G4cout<<"-Warning-G4QuasiElRatio::GetQF2IN_Ratio:A="<238, return zero"< G4QuasiElRatios::GetElTotXS(G4double p, G4int PDG, std::pair G4QuasiElRatios::FetchElTot(G4double p, G4int PDG, G4bool F) { // LogTable is created only if necessary. The ratio R(s>8100 mb) = 0 for any nuclei - G4int nDB=vItot.size(); // A number of hadrons already initialized in AMDB + G4int nDB=(G4int)vItot.size(); // A number of hadrons already initialized in AMDB if(nDB && lastHtot==PDG && lastFtot==F && p>0. && p==lastPtot) return lastRtot;// VI don't use toler. // if(nDB && lastH==PDG && lastF==F && p>0. && std::fabs(p-lastP)/p armProducts; if (applyARM) { - if (atomDeex) { + if (nullptr != atomDeex) { G4int aZ = G4MT_daughters[0]->GetAtomicNumber(); G4int nShells = G4AtomicShells::GetNumberOfShells(aZ); if (shellIndex >= nShells) shellIndex = nShells; G4AtomicShellEnumerator as = G4AtomicShellEnumerator(shellIndex); const G4AtomicShell* shell = atomDeex->GetAtomicShell(aZ, as); eBind = shell->BindingEnergy(); - if (atomDeex->IsFluoActive() && aZ > 5 && aZ < 100) { + if (atomDeex->IsFluoActive() && aZ > 5 && aZ < 105) { // Do atomic relaxation - // VI, SI - // Allows fixing of Bugzilla 1727 - //const G4double deexLimit = 0.1*keV; - G4double deexLimit = 0.1*keV; - if (G4EmParameters::Instance()->DeexcitationIgnoreCut()) deexLimit =0.; - // + // VI, SI + // Allows fixing of Bugzilla 1727 + //const G4double deexLimit = 0.1*keV; + G4double deexLimit = 0.1*keV; + if (G4EmParameters::Instance()->DeexcitationIgnoreCut()) deexLimit = 0.; + atomDeex->GenerateParticles(&armProducts, shell, aZ, deexLimit, deexLimit); } G4double productEnergy = 0.; - for (G4int i = 0; i < G4int(armProducts.size()); i++) + for (std::size_t i = 0; i < armProducts.size(); ++i) { productEnergy += armProducts[i]->GetKineticEnergy(); - + } G4double deficit = shell->BindingEnergy() - productEnergy; if (deficit > 0.0) { // Add a dummy electron to make up extra energy @@ -163,7 +163,12 @@ G4DecayProducts* G4ECDecay::DecayIt(G4double) G4double daughterMass = G4MT_daughters[0]->GetPDGMass(); // CM momentum using Q value corrected for binding energy of captured electron - G4double Q = transitionQ - eBind; + G4double Q = transitionQ - eBind; + + // Negative transitionQ values for some rare nuclides require this + // Absolute values in these cases are small + if (Q < 0.0) Q = 0.0; + G4double cmMomentum = Q*(Q + 2.*daughterMass)/(Q + daughterMass)/2.; G4double costheta = 2.*G4UniformRand() - 1.0; @@ -181,10 +186,10 @@ G4DecayProducts* G4ECDecay::DecayIt(G4double) new G4DynamicParticle(G4MT_daughters[0], -1.0*direction, KE, daughterMass); products->PushProducts(daughterParticle); - G4int nArm = armProducts.size(); + std::size_t nArm = armProducts.size(); if (nArm > 0) { G4ThreeVector bst = daughterParticle->Get4Momentum().boostVector(); - for (G4int i = 0; i < nArm; ++i) { + for (std::size_t i = 0; i < nArm; ++i) { G4DynamicParticle* dp = armProducts[i]; G4LorentzVector lv = dp->Get4Momentum().boost(bst); dp->Set4Momentum(lv); diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4ITDecay.cc b/source/processes/hadronic/models/radioactive_decay/src/G4ITDecay.cc index a48cebf8ab..cea5c0ae34 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4ITDecay.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4ITDecay.cc @@ -111,7 +111,7 @@ G4DecayProducts* G4ITDecay::DecayIt(G4double) if (shellIndex > -1) { G4VAtomDeexcitation* atomDeex = G4LossTableManager::Instance()->AtomDeexcitation(); - if (atomDeex->IsFluoActive() && parentZ > 5 && parentZ < 100) { + if (atomDeex->IsFluoActive() && parentZ > 5 && parentZ < 105) { G4int nShells = G4AtomicShells::GetNumberOfShells(parentZ); if (shellIndex >= nShells) shellIndex = nShells; G4AtomicShellEnumerator as = G4AtomicShellEnumerator(shellIndex); @@ -145,10 +145,10 @@ G4DecayProducts* G4ITDecay::DecayIt(G4double) armProducts.push_back(extra); } - G4int nArm = armProducts.size(); + std::size_t nArm = armProducts.size(); if (nArm > 0) { G4ThreeVector bst = dynDaughter->Get4Momentum().boostVector(); - for (G4int i = 0; i < nArm; ++i) { + for (std::size_t i = 0; i < nArm; ++i) { G4DynamicParticle* dp = armProducts[i]; G4LorentzVector lv = dp->Get4Momentum().boost(bst); dp->Set4Momentum(lv); diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4Radioactivation.cc b/source/processes/hadronic/models/radioactive_decay/src/G4Radioactivation.cc index 2954b52705..f653425720 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4Radioactivation.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4Radioactivation.cc @@ -162,7 +162,7 @@ G4Radioactivation::IsRateTableReady(const G4ParticleDefinition& aParticle) // Check whether the radioactive decay rates table for the ion has already // been calculated. G4String aParticleName = aParticle.GetParticleName(); - for (size_t i = 0; i < theParentChainTable.size(); i++) { + for (std::size_t i = 0; i < theParentChainTable.size(); ++i) { if (theParentChainTable[i].GetIonName() == aParticleName) return true; } return false; @@ -175,7 +175,7 @@ G4Radioactivation::GetChainsFromParent(const G4ParticleDefinition& aParticle) // Retrieve the decay rate table for the specified aParticle G4String aParticleName = aParticle.GetParticleName(); - for (size_t i = 0; i < theParentChainTable.size(); i++) { + for (std::size_t i = 0; i < theParentChainTable.size(); ++i) { if (theParentChainTable[i].GetIonName() == aParticleName) { theDecayRateVector = theParentChainTable[i].GetItsRates(); } @@ -479,7 +479,7 @@ CalculateChainsFromParent(const G4ParticleDefinition& theParentNucleus) if (std::abs(daughterExcitation - nearestEnergy) < levelTolerance) { // Level half-life is in ns and the threshold is set to 1 micros // by default, user can set it via the UI command - nearestLevelIndex = levelManager->NearestLevelIndex(daughterExcitation); + nearestLevelIndex = (G4int)levelManager->NearestLevelIndex(daughterExcitation); if (levelManager->LifeTime(nearestLevelIndex)*ns >= halflifethreshold){ // save the metastable decay channel summedDecayTable->Insert(theChannel); @@ -620,7 +620,7 @@ CalculateChainsFromParent(const G4ParticleDefinition& theParentNucleus) // first set the taos, one simply need to add to the parent ones taos.clear(); taos = TP; // load lifetimes of all previous generations - size_t k; + std::size_t k; //check that TaoPlus differs from other taos from at least 1.e5 relative difference //for (k = 0; k < TP.size(); k++){ //if (std::abs((TaoPlus-TP[k])/TP[k])<1.e-5 ) TaoPlus=1.00001*TP[k]; @@ -826,7 +826,7 @@ G4Radioactivation::DecayIt(const G4Track& theTrack, const G4Step&) << " is not selected for the RDM"<< G4endl; G4cout << " There are " << ValidVolumes.size() << " volumes" << G4endl; G4cout << " The Valid volumes are " << G4endl; - for (size_t i = 0; i< ValidVolumes.size(); i++) + for (std::size_t i = 0; i< ValidVolumes.size(); ++i) G4cout << ValidVolumes[i] << G4endl; } #endif @@ -914,7 +914,7 @@ G4Radioactivation::DecayIt(const G4Track& theTrack, const G4Step&) G4double taotime; long double decayRate; - size_t i; + std::size_t i; G4int numberOfSecondaries; G4int totalNumberOfSecondaries = 0; G4double currentTime = 0.; @@ -1072,7 +1072,7 @@ G4Radioactivation::DecayIt(const G4Track& theTrack, const G4Step&) // save the secondaries for buffers numberOfSecondaries = tempprods->entries(); currentTime = finalGlobalTime + theDecayTime; - for (index = 0; index < numberOfSecondaries; index++) { + for (index = 0; index < numberOfSecondaries; ++index) { asecondaryparticle = tempprods->PopProducts(); if (asecondaryparticle->GetDefinition()->GetPDGStable() ) { pw.push_back(weight); @@ -1094,9 +1094,9 @@ G4Radioactivation::DecayIt(const G4Track& theTrack, const G4Step&) // now deal with the secondaries in the two stl containers // and submmit them back to the tracking manager - totalNumberOfSecondaries = pw.size(); + totalNumberOfSecondaries = (G4int)pw.size(); fParticleChangeForRadDecay.SetNumberOfSecondaries(totalNumberOfSecondaries); - for (index=0; index < totalNumberOfSecondaries; index++) { + for (index=0; index < totalNumberOfSecondaries; ++index) { G4Track* secondary = new G4Track(secondaryparticles[index], ptime[index], currentPosition); secondary->SetGoodForTrackingFlag(); diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecay.cc b/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecay.cc index 11232ff31a..afefd1f645 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecay.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecay.cc @@ -165,7 +165,6 @@ G4RadioactiveDecay::G4RadioactiveDecay(const G4String& processName) // Apply default values applyARM = true; - applyICM = true; // Always on; keep only for backward compatibility // RDM applies to all logical volumes by default isAllVolumesMode = true; @@ -472,10 +471,9 @@ G4RadioactiveDecay::StreamInfo(std::ostream& os, const G4String& endline) G4DeexPrecoParameters* deex = G4NuclearLevelData::GetInstance()->GetParameters(); G4EmParameters* emparam = G4EmParameters::Instance(); - G4double minMeanLife - = G4NuclideTable::GetInstance()->GetThresholdOfHalfLife()/std::log(2.); + G4double minMeanLife = G4NuclideTable::GetInstance()->GetMeanLifeThreshold(); - G4int prec = os.precision(5); + G4long prec = os.precision(5); os << "======================================================================" << endline; os << "====== Radioactive Decay Physics Parameters =======" @@ -490,6 +488,8 @@ G4RadioactiveDecay::StreamInfo(std::ostream& os, const G4String& endline) << deex->GetInternalConversionFlag() << endline; os << "Stored internal conversion coefficients " << deex->StoreICLevelData() << endline; + os << "Enabled atomic relaxation mode " + << applyARM << endline; os << "Enable correlated gamma emission " << deex->CorrelatedGamma() << endline; os << "Max 2J for sampling of angular correlations " @@ -956,7 +956,7 @@ G4RadioactiveDecay::DecayIt(const G4Track& theTrack, const G4Step&) << " is not selected for the RDM"<< G4endl; G4cout << " There are " << ValidVolumes.size() << " volumes" << G4endl; G4cout << " The Valid volumes are " << G4endl; - for (size_t i = 0; i< ValidVolumes.size(); i++) + for (std::size_t i = 0; i< ValidVolumes.size(); ++i) G4cout << ValidVolumes[i] << G4endl; } #endif diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecayMessenger.cc b/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecayMessenger.cc index 2e212293d4..2704f158e3 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecayMessenger.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecayMessenger.cc @@ -73,13 +73,6 @@ G4RadioactiveDecayMessenger::G4RadioactiveDecayMessenger deallvolumesCmd->SetGuidance(" RDM is not applied to any logical volumes"); // deallvolumesCmd->SetParameterName("RemoveAVolume",true); - // Command to invoke internal conversion or not - icmCmd = new G4UIcmdWithABool("/process/had/rdm/applyICM",this); - icmCmd->SetGuidance("Command not active; kept for backward compatibility."); - icmCmd->SetGuidance("Internal conversion is always turned on."); - icmCmd->SetParameterName("ApplyICM",true); - icmCmd->SetDefaultValue(true); - // Command to invoke atomic relaxation or not armCmd = new G4UIcmdWithABool("/process/had/rdm/applyARM",this); armCmd->SetGuidance("True: ARM is applied; false: no"); @@ -153,7 +146,6 @@ G4RadioactiveDecayMessenger::~G4RadioactiveDecayMessenger () delete deavolumeCmd; delete allvolumesCmd; delete deallvolumesCmd; - delete icmCmd; delete armCmd; delete userDecayDataCmd; delete userEvaporationDataCmd; @@ -177,12 +169,10 @@ G4RadioactiveDecayMessenger::SetNewValue(G4UIcommand *command, G4String newValue theRadioactiveDecayContainer->SelectAllVolumes(); } else if ( command == deallvolumesCmd ) { theRadioactiveDecayContainer->DeselectAllVolumes(); - } else if ( command == verboseCmd ) { - theRadioactiveDecayContainer->SetVerboseLevel( verboseCmd->GetNewIntValue( newValues ) ); - } else if ( command == icmCmd ) { - theRadioactiveDecayContainer->SetICM( icmCmd->GetNewBoolValue( newValues ) ); - } else if ( command == armCmd ) { - theRadioactiveDecayContainer->SetARM( armCmd->GetNewBoolValue( newValues ) ); + } else if (command == verboseCmd) { + theRadioactiveDecayContainer->SetVerboseLevel(verboseCmd->GetNewIntValue(newValues) ); + } else if (command == armCmd) { + theRadioactiveDecayContainer->SetARM(armCmd->GetNewBoolValue(newValues) ); } else if ( command == userDecayDataCmd ) { G4int Z,A; G4String file_name; @@ -201,8 +191,8 @@ G4RadioactiveDecayMessenger::SetNewValue(G4UIcommand *command, G4String newValue theRadioactiveDecayContainer->SetDecayDirection( colldirCmd->GetNew3VectorValue( newValues ) ); } else if ( command == collangleCmd ) { theRadioactiveDecayContainer->SetDecayHalfAngle( collangleCmd->GetNewDoubleValue( newValues ) ); - } else if ( command == thresholdForVeryLongDecayTimeCmd ) { - theRadioactiveDecayContainer->SetThresholdForVeryLongDecayTime( thresholdForVeryLongDecayTimeCmd->GetNewDoubleValue( newValues ) ); + } else if (command == thresholdForVeryLongDecayTimeCmd) { + theRadioactiveDecayContainer->SetThresholdForVeryLongDecayTime(thresholdForVeryLongDecayTimeCmd->GetNewDoubleValue(newValues) ); } } diff --git a/source/processes/hadronic/models/theo_high_energy/History b/source/processes/hadronic/models/theo_high_energy/History index 6421071db4..fe5545a984 100644 --- a/source/processes/hadronic/models/theo_high_energy/History +++ b/source/processes/hadronic/models/theo_high_energy/History @@ -4,6 +4,13 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-11-11 Alberto Ribon (had-theo-HE-V11-00-02) +- G4TheoFSGenerator: simplified treatment for low-energy inelastic nuclear + reactions of light hypernuclei (because Bertini and Binary intra-nuclear + cascade models are not applicable for these projectiles). + Note that for light anti-hypernuclei, FTF works fine down to zero + kinetic energy. + ## 2022-05-25 Alberto Ribon (had-theo-HE-V11-00-01) - `G4TheoFSGenerator`: propagate the information on parent resonance (in the `ApplyYourself` method, from `G4ReactionProduct` to `G4HadSecondary`) diff --git a/source/processes/hadronic/models/theo_high_energy/src/G4TheoFSGenerator.cc b/source/processes/hadronic/models/theo_high_energy/src/G4TheoFSGenerator.cc index d966c32a58..175ae6e644 100644 --- a/source/processes/hadronic/models/theo_high_energy/src/G4TheoFSGenerator.cc +++ b/source/processes/hadronic/models/theo_high_energy/src/G4TheoFSGenerator.cc @@ -83,7 +83,7 @@ G4HadFinalState * G4TheoFSGenerator::ApplyYourself(const G4HadProjectile & thePr // For most applications, this is a safe simplification, giving that the nearly all // slowly moving charm and bottom hadrons decay before any hadronic interaction can occur. // Note that we prefer not to use G4HadronicParameters::GetMinEnergyTransitionFTF_Cascade() - // (typicall ~3 GeV) because FTFP works reasonably well below such a value. + // (typically ~3 GeV) because FTFP works reasonably well below such a value. const G4double energyThresholdForCharmAndBottomHadrons = 100.0*CLHEP::MeV; if ( thePrimary.GetKineticEnergy() < energyThresholdForCharmAndBottomHadrons && ( thePrimary.GetDefinition()->GetQuarkContent( 4 ) != 0 || // Has charm constituent quark @@ -95,7 +95,27 @@ G4HadFinalState * G4TheoFSGenerator::ApplyYourself(const G4HadProjectile & thePr theParticleChange->SetMomentumChange( thePrimary.Get4Momentum().vect().unit() ); return theParticleChange; } - + + // Temporarily dummy treatment of light hypernuclei projectiles at low energies. + // Bertini and Binary intra-nuclear cascade models are currently not applicable + // for hypernuclei and string models cannot handle them properly at low energies - + // let's say safely below ~100 MeV. + // In these cases, we return as final state the initial state unchanged. + // For most applications, this is a safe simplification, giving that the nearly all + // slowly moving hypernuclei decay before any hadronic interaction can occur. + // Note that we prefer not to use G4HadronicParameters::GetMinEnergyTransitionFTF_Cascade() + // (typically ~3 GeV) because FTFP works reasonably well below such a value. + // Note that for anti-hypernuclei, FTF model works fine down to zero kinetic energy, + // so there is no need of any extra, dummy treatment. + const G4double energyThresholdForHyperNuclei = 100.0*CLHEP::MeV; + if ( thePrimary.GetKineticEnergy() < energyThresholdForHyperNuclei && + thePrimary.GetDefinition()->IsHypernucleus() ) { + theParticleChange->SetStatusChange( isAlive ); + theParticleChange->SetEnergyChange( thePrimary.GetKineticEnergy() ); + theParticleChange->SetMomentumChange( thePrimary.Get4Momentum().vect().unit() ); + return theParticleChange; + } + // check if models have been registered, and use default, in case this is not true @@ const G4DynamicParticle aPart(thePrimary.GetDefinition(),thePrimary.Get4Momentum().vect()); @@ -182,7 +202,6 @@ G4HadFinalState * G4TheoFSGenerator::ApplyYourself(const G4HadProjectile & thePr G4ReactionProductVector * theTransportResult = nullptr; - // Uzhi Nov. 2012 for nucleus-nucleus collision G4V3DNucleus* theProjectileNucleus = theHighEnergyGenerator->GetProjectileNucleus(); if(theProjectileNucleus == nullptr) { @@ -194,7 +213,7 @@ G4HadFinalState * G4TheoFSGenerator::ApplyYourself(const G4HadProjectile & thePr } if(hitCount != theHighEnergyGenerator->GetWoundedNucleus()->GetMassNumber() ) { - theTransport->SetPrimaryProjectile(thePrimary); // For Bertini Cascade + theTransport->SetPrimaryProjectile(thePrimary); theTransportResult = theTransport->Propagate(theInitialResult, theHighEnergyGenerator->GetWoundedNucleus()); diff --git a/source/processes/hadronic/processes/History b/source/processes/hadronic/processes/History index 39f9ea71bb..a1d135b506 100644 --- a/source/processes/hadronic/processes/History +++ b/source/processes/hadronic/processes/History @@ -6,6 +6,40 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-26 Gabriele Cosmo (hadr-proc-V11-00-11) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-02 Vladimir Grichine (hadr-proc-V11-00-10) +- G4TauNeutrinoNucleusProcess - added for tau-neutrino hadronic inelastic processes + +## 2022-09-25 Vladimir Ivanchenko (hadr-proc-V11-00-09) +- G4NeutronGeneralProcess - added SetTimeLimit(..) method + +## 2022-09-05 Ben Morgan (hadr-proc-V11-00-08) +- Update dependencies to address warnings from consistency check + +## 2022-08-30 Vladimir Ivanchenko (hadr-proc-V11-00-07) +- G4NeutronGeneralProcess - added fatal G4Exception at initialisation + in the case of incomplete configuration of the process + +## 2022-08-22 Vladimir Ivanchenko (hadr-proc-V11-00-06) +- G4NeutronGeneralProcess - use enumerator for neutron general process + instead of hard-coded number; do not apply energy cut + +## 2022-08-22 Vladimir Ivanchenko (hadr-proc-V11-00-05) +- G4NeutronGeneralProcess - make it work with QBBC physics list +- G4HadronElasticProcess - extended debug printout + +## 2022-08-18 Vladimir Ivanchenko (hadr-proc-V11-00-04) +- G4NeutronGeneralProcess - improved the code, added possible cut on + neutron kinetic energy, always elastic initialisation/printout + before the inelastic +- G4NeutronCaptureProcess - avoid double instantiation of the cross + section + +## 2022-08-13 Vladimir Ivanchenko (hadr-proc-V11-00-03) +- G4NeutronGeneralProcess - new combined process + ## 2022-02-09 Gabriele Cosmo (hadr-proc-V11-00-02) - Fixed compilation warning on Intel compilers for unused variables. diff --git a/source/processes/hadronic/processes/include/G4NeutronCaptureProcess.hh b/source/processes/hadronic/processes/include/G4NeutronCaptureProcess.hh index eb74c480e3..07169d4eb1 100644 --- a/source/processes/hadronic/processes/include/G4NeutronCaptureProcess.hh +++ b/source/processes/hadronic/processes/include/G4NeutronCaptureProcess.hh @@ -49,16 +49,16 @@ #include "globals.hh" #include "G4HadronicProcess.hh" -class G4NeutronCaptureProcess : public G4HadronicProcess +class G4NeutronCaptureProcess final : public G4HadronicProcess { - public: +public: - explicit G4NeutronCaptureProcess(const G4String& processName ="nCapture"); + explicit G4NeutronCaptureProcess(const G4String& processName ="nCapture"); - virtual ~G4NeutronCaptureProcess(); + ~G4NeutronCaptureProcess() final = default; - G4bool IsApplicable(const G4ParticleDefinition& aParticleType) final; + G4bool IsApplicable(const G4ParticleDefinition&) final; - void ProcessDescription(std::ostream& outFile) const final; + void ProcessDescription(std::ostream& outFile) const final; }; #endif diff --git a/source/processes/hadronic/processes/include/G4NeutronGeneralProcess.hh b/source/processes/hadronic/processes/include/G4NeutronGeneralProcess.hh new file mode 100644 index 0000000000..a3eb8b94fa --- /dev/null +++ b/source/processes/hadronic/processes/include/G4NeutronGeneralProcess.hh @@ -0,0 +1,275 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4NeutronGeneralProcess +// +// Author: Vladimir Ivanchenko +// +// Creation date: 08.08.2022 +// +// Modifications: +// +// Class Description: +// +// It is the neutron super process + +// ------------------------------------------------------------------- +// + +#ifndef G4NeutronGeneralProcess_h +#define G4NeutronGeneralProcess_h 1 + +#include "G4HadronicProcess.hh" +#include "globals.hh" +#include "G4HadDataHandler.hh" +#include + +class G4Step; +class G4Track; +class G4ParticleDefinition; +class G4VParticleChange; +class G4VCrossSectionDataSet; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class G4NeutronGeneralProcess : public G4HadronicProcess +{ +public: + + explicit G4NeutronGeneralProcess(const G4String& pname="NeutronGeneralProc"); + + ~G4NeutronGeneralProcess() override; + + G4bool IsApplicable(const G4ParticleDefinition&) override; + + void ProcessDescription(std::ostream& outFile) const override; + + // Initialise for build of tables + void PreparePhysicsTable(const G4ParticleDefinition&) override; + + // Build physics table during initialisation + void BuildPhysicsTable(const G4ParticleDefinition&) override; + + // Store internal tables after initialisation + G4bool StorePhysicsTable(const G4ParticleDefinition* part, + const G4String& directory, G4bool ascii) override; + + // Called before tracking of each new G4Track + void StartTracking(G4Track*) override; + + // implementation of virtual method, specific for G4NeutronGeneralProcess + G4double PostStepGetPhysicalInteractionLength( + const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition) override; + + // implementation of virtual method, specific for G4NeutronGeneralProcess + G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&) override; + + const G4VProcess* GetCreatorProcess() const override; + + // Temporary method + const G4String& GetSubProcessName() const; + + // Temporary method + G4int GetSubProcessSubType() const; + + inline const G4VProcess* GetSelectedProcess() const; + + inline void SetInelasticProcess(G4HadronicProcess*); + inline void SetElasticProcess(G4HadronicProcess*); + inline void SetCaptureProcess(G4HadronicProcess*); + + inline void SetTimeLimit(G4double val); + + // hide copy constructor and assignment operator + G4NeutronGeneralProcess(G4NeutronGeneralProcess &) = delete; + G4NeutronGeneralProcess & operator= + (const G4NeutronGeneralProcess &right) = delete; + +protected: + + G4double GetMeanFreePath(const G4Track& track, G4double previousStepSize, + G4ForceCondition* condition) override; + + inline G4double ComputeGeneralLambda(size_t idxe, size_t idxt); + + inline G4double GetProbability(size_t idxt); + + inline void SelectedProcess(const G4Step& step, G4HadronicProcess* ptr, + G4VCrossSectionDataSet* xs); + + void SelectHadProcess(const G4Track&, const G4Step&, G4HadronicProcess*); + +private: + + // partial cross section + G4double ComputeCrossSection(G4VCrossSectionDataSet*, const G4Material*, + G4double kinEnergy, G4double loge); + + // total cross section + inline void CurrentCrossSection(const G4Track&); + + static G4HadDataHandler* theHandler; + static const size_t nTables = 5; + static G4String nameT[nTables]; + + G4HadronicProcess* fInelastic = nullptr; + G4HadronicProcess* fElastic = nullptr; + G4HadronicProcess* fCapture = nullptr; + G4HadronicProcess* fSelectedProc = nullptr; + + G4VCrossSectionDataSet* fInelasticXS; + G4VCrossSectionDataSet* fElasticXS; + G4VCrossSectionDataSet* fCaptureXS; + G4VCrossSectionDataSet* fXS = nullptr; + + const G4ParticleDefinition* fNeutron; + const G4Material* fCurrMat = nullptr; + + G4double fMinEnergy; + G4double fMiddleEnergy; + G4double fMaxEnergy; + G4double fTimeLimit; + G4double fXSFactorInel = 1.0; + G4double fXSFactorEl = 1.0; + G4double fCurrE = 0.0; + G4double fCurrLogE = 0.0; + G4double fLambda = 0.0; + + // number of bins per decade + std::size_t nLowE = 100; + std::size_t nHighE = 10; + + std::size_t idxEnergy = 0; + std::size_t matIndex = 0; + + G4bool isMaster = true; + std::vector fXsec; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void +G4NeutronGeneralProcess::SetInelasticProcess(G4HadronicProcess* ptr) +{ + fInelastic = ptr; + ptr->AddDataSet(fInelasticXS); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4NeutronGeneralProcess::SetElasticProcess(G4HadronicProcess* ptr) +{ + fElastic = ptr; + ptr->AddDataSet(fElasticXS); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4NeutronGeneralProcess::SetCaptureProcess(G4HadronicProcess* ptr) +{ + fCapture = ptr; + ptr->AddDataSet(fCaptureXS); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double +G4NeutronGeneralProcess::ComputeGeneralLambda(std::size_t idxe, std::size_t idxt) +{ + idxEnergy = idxe; + return theHandler->GetVector(idxt, matIndex) + ->LogVectorValue(fCurrE, fCurrLogE); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4NeutronGeneralProcess::GetProbability(std::size_t idxt) +{ + return theHandler->GetVector(idxt, matIndex) + ->LogVectorValue(fCurrE, fCurrLogE); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void +G4NeutronGeneralProcess::SelectedProcess(const G4Step& step, + G4HadronicProcess* ptr, + G4VCrossSectionDataSet* xs) + +{ + fSelectedProc = ptr; + fXS = xs; + step.GetPostStepPoint()->SetProcessDefinedStep(ptr); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline const G4VProcess* G4NeutronGeneralProcess::GetSelectedProcess() const +{ + return fSelectedProc; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4NeutronGeneralProcess::CurrentCrossSection(const G4Track& track) +{ + G4double energy = track.GetKineticEnergy(); + const G4Material* mat = track.GetMaterial(); + G4bool recompute = false; + if(mat != fCurrMat) { + fCurrMat = mat; + matIndex = mat->GetIndex(); + recompute = true; + } + if(energy != fCurrE) { + fCurrE = energy; + fCurrLogE = track.GetDynamicParticle()->GetLogKineticEnergy(); + recompute = true; + } + if(recompute) { + fLambda = (energy <= fMiddleEnergy) ? ComputeGeneralLambda(0, 0) + : ComputeGeneralLambda(1, 3); + currentInteractionLength = 1.0/fLambda; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4NeutronGeneralProcess::SetTimeLimit(G4double val) +{ + fTimeLimit = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif diff --git a/environments/g4py/tests/g4pytest/ExN01geom/ExN01DetectorConstruction.hh b/source/processes/hadronic/processes/include/G4TauNeutrinoNucleusProcess.hh similarity index 51% rename from environments/g4py/tests/g4pytest/ExN01geom/ExN01DetectorConstruction.hh rename to source/processes/hadronic/processes/include/G4TauNeutrinoNucleusProcess.hh index 2437df674a..6209fa4476 100644 --- a/environments/g4py/tests/g4pytest/ExN01geom/ExN01DetectorConstruction.hh +++ b/source/processes/hadronic/processes/include/G4TauNeutrinoNucleusProcess.hh @@ -23,51 +23,65 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// ExN01DetectorConstruction.hh // -// 2005 Q -// ==================================================================== -#ifndef EXN01_DETECTOR_CONSTRUCTION_H -#define EXN01_DETECTOR_CONSTRUCTION_H +// +// Geant4 muon neutrino nucleus scattering Process -- header file +// +// Created from G4MuNeutrinoNucleusProcess 1.11.22 V. Grichine +// -#include "G4VUserDetectorConstruction.hh" +// Class Description +// Hadronic inelastic process for tau neutrino nucleus 2->X scattering +// Class Description - End + +#ifndef G4TauNeutrinoNucleusProcess_h +#define G4TauNeutrinoNucleusProcess_h 1 + #include "globals.hh" +#include "G4HadronicProcess.hh" -// ==================================================================== -// -// class definition -// -// ==================================================================== +class G4ParticleDefinition; +class G4CrossSectionDataStore; class G4LogicalVolume; -class G4VPhysicalVolume; +class G4TauNeutrinoNucleusTotXsc; +class G4SafetyHelper; -#include "G4VUserDetectorConstruction.hh" - -class ExN01DetectorConstruction : public G4VUserDetectorConstruction { +class G4TauNeutrinoNucleusProcess : public G4HadronicProcess +{ public: - - ExN01DetectorConstruction(); - ~ExN01DetectorConstruction(); - - G4VPhysicalVolume* Construct(); + + G4TauNeutrinoNucleusProcess(G4String anEnvelopeName , const G4String& procName = "tau-neutrino-nucleus"); + + virtual ~G4TauNeutrinoNucleusProcess(); + + G4VParticleChange* PostStepDoIt(const G4Track& aTrack, + const G4Step& aStep) override; + + // initialise thresholds + void PreparePhysicsTable(const G4ParticleDefinition&) override; + + // set internal limit + virtual void SetLowestEnergy(G4double); + + void ProcessDescription(std::ostream& outFile) const override; + + void SetBiasingFactors(G4double bfCc, G4double bfNc); + void SetBiasingFactor(G4double bf); + G4double GetMeanFreePath(const G4Track &aTrack, G4double, G4ForceCondition *) override; private: - // Logical volumes - // - G4LogicalVolume* experimentalHall_log; - G4LogicalVolume* tracker_log; - G4LogicalVolume* calorimeterBlock_log; - G4LogicalVolume* calorimeterLayer_log; - - // Physical volumes - // - G4VPhysicalVolume* experimentalHall_phys; - G4VPhysicalVolume* calorimeterLayer_phys; - G4VPhysicalVolume* calorimeterBlock_phys; - G4VPhysicalVolume* tracker_phys; + // hide assignment operator as private + G4TauNeutrinoNucleusProcess& operator=(const G4TauNeutrinoNucleusProcess &right); + G4TauNeutrinoNucleusProcess(const G4TauNeutrinoNucleusProcess& ); + + G4double lowestEnergy; + G4bool isInitialised, fBiased; + G4LogicalVolume* fEnvelope; + G4String fEnvelopeName; + G4TauNeutrinoNucleusTotXsc* fTotXsc; + G4double fNuNuclCcBias, fNuNuclNcBias, fNuNuclTotXscBias; + G4SafetyHelper* safetyHelper; }; #endif - diff --git a/source/processes/hadronic/processes/sources.cmake b/source/processes/hadronic/processes/sources.cmake index f7009fea4e..165e7fd6cb 100644 --- a/source/processes/hadronic/processes/sources.cmake +++ b/source/processes/hadronic/processes/sources.cmake @@ -12,7 +12,9 @@ geant4_add_module(G4hadronic_proc G4NeutrinoElectronProcess.hh G4NeutronCaptureProcess.hh G4NeutronFissionProcess.hh + G4NeutronGeneralProcess.hh G4PositronNuclearProcess.hh + G4TauNeutrinoNucleusProcess.hh G4UCNProcessSubType.hh G4UCNBoundaryProcess.hh G4UCNBoundaryProcessMessenger.hh @@ -29,7 +31,9 @@ geant4_add_module(G4hadronic_proc G4NeutrinoElectronProcess.cc G4NeutronCaptureProcess.cc G4NeutronFissionProcess.cc + G4NeutronGeneralProcess.cc G4PositronNuclearProcess.cc + G4TauNeutrinoNucleusProcess.cc G4UCNBoundaryProcess.cc G4UCNBoundaryProcessMessenger.cc G4UCNLoss.cc @@ -41,6 +45,7 @@ geant4_module_link_libraries(G4hadronic_proc G4baryons G4globman G4hadronic_mgt + G4hadronic_util G4intercoms G4materials G4procman @@ -48,7 +53,6 @@ geant4_module_link_libraries(G4hadronic_proc G4cuts G4detector G4geometrymng - G4hadronic_util G4hadronic_xsect G4ions G4leptons diff --git a/source/processes/hadronic/processes/src/G4HadronElasticProcess.cc b/source/processes/hadronic/processes/src/G4HadronElasticProcess.cc index 41d7bb2761..2dee3d420b 100644 --- a/source/processes/hadronic/processes/src/G4HadronElasticProcess.cc +++ b/source/processes/hadronic/processes/src/G4HadronElasticProcess.cc @@ -216,8 +216,10 @@ G4HadronElasticProcess::PostStepDoIt(const G4Track& track, else { status = fStopAndKill; } theTotalResult->ProposeTrackStatus(status); } - - //G4cout << "Efinal= " << efinal << " TrackStatus= " << status << G4endl; + /* + G4cout << "Efinal= " << efinal << " TrackStatus= " << status + << " time(ns)=" << track.GetGlobalTime()/ns << G4endl; + */ theTotalResult->SetNumberOfSecondaries(0); // recoil diff --git a/source/processes/hadronic/processes/src/G4NeutronCaptureProcess.cc b/source/processes/hadronic/processes/src/G4NeutronCaptureProcess.cc index deecea3444..6955c82767 100644 --- a/source/processes/hadronic/processes/src/G4NeutronCaptureProcess.cc +++ b/source/processes/hadronic/processes/src/G4NeutronCaptureProcess.cc @@ -51,9 +51,6 @@ G4NeutronCaptureProcess::G4NeutronCaptureProcess(const G4String& processName) : AddDataSet(new G4NeutronCaptureXS()); } -G4NeutronCaptureProcess::~G4NeutronCaptureProcess() -{} - G4bool G4NeutronCaptureProcess::IsApplicable(const G4ParticleDefinition& aParticleType) { diff --git a/source/processes/hadronic/processes/src/G4NeutronGeneralProcess.cc b/source/processes/hadronic/processes/src/G4NeutronGeneralProcess.cc new file mode 100644 index 0000000000..fb78ec7238 --- /dev/null +++ b/source/processes/hadronic/processes/src/G4NeutronGeneralProcess.cc @@ -0,0 +1,478 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4NeutronGeneralProcess +// +// Author: Vladimir Ivanchenko +// +// Creation date: 08.08.2022 +// +// Modifications: +// +// Class Description: +// + +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4NeutronGeneralProcess.hh" +#include "G4PhysicalConstants.hh" +#include "G4SystemOfUnits.hh" +#include "G4ProcessManager.hh" +#include "G4HadronicProcess.hh" +#include "G4Step.hh" +#include "G4Track.hh" +#include "G4ParticleDefinition.hh" +#include "G4PhysicsTable.hh" +#include "G4PhysicsLogVector.hh" +#include "G4VParticleChange.hh" +#include "G4PhysicsTableHelper.hh" +#include "G4HadronicParameters.hh" +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4Element.hh" +#include "G4Neutron.hh" +#include "G4Nucleus.hh" +#include "G4NeutronInelasticXS.hh" +#include "G4NeutronElasticXS.hh" +#include "G4NeutronCaptureXS.hh" +#include "G4Threading.hh" + +#include "G4Log.hh" +#include + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4HadDataHandler* G4NeutronGeneralProcess::theHandler = nullptr; + +G4String G4NeutronGeneralProcess::nameT[nTables] = {"0","1","2","3","4"}; + +G4NeutronGeneralProcess::G4NeutronGeneralProcess(const G4String& pname) +: G4HadronicProcess(pname), + fMinEnergy(1*CLHEP::keV), + fMiddleEnergy(20*CLHEP::MeV), + fMaxEnergy(100*CLHEP::TeV), + fTimeLimit(10*CLHEP::microsecond) +{ + SetVerboseLevel(1); + SetProcessSubType(fNeutronGeneral); + + fElasticXS = new G4NeutronElasticXS(); + fInelasticXS = new G4NeutronInelasticXS(); + fCaptureXS = new G4NeutronCaptureXS(); + + AddDataSet(fElasticXS); + AddDataSet(fInelasticXS); + AddDataSet(fCaptureXS); + + fNeutron = G4Neutron::Neutron(); + + if(G4Threading::IsWorkerThread()) { + isMaster = false; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4NeutronGeneralProcess::~G4NeutronGeneralProcess() +{ + if(isMaster) { + delete theHandler; + theHandler = nullptr; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool G4NeutronGeneralProcess::IsApplicable(const G4ParticleDefinition&) +{ + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4NeutronGeneralProcess::PreparePhysicsTable(const G4ParticleDefinition& part) +{ + if(1 < verboseLevel) { + G4cout << "G4NeutronGeneralProcess::PreparePhysicsTable() for " + << GetProcessName() + << " and particle " << part.GetParticleName() + << " isMaster: " << isMaster << G4endl; + } + G4bool noEl = (nullptr == fElastic); + G4bool noInel = (nullptr == fInelastic); + G4bool noCap = (nullptr == fCapture); + if(noEl || noInel || noCap) { + G4ExceptionDescription ed; + ed << "Incomplete configuration of the neutron general process." << G4endl; + if(noEl) { ed << "Neutron elastic process is not defined" << G4endl; } + if(noInel) { ed << "Neutron inelastic process is not defined" << G4endl; } + if(noCap) { ed << "Neutron capture process is not defined" << G4endl; } + G4Exception ("G4NeutronGeneralProcess::PreparePhysicsTable(..)", "had001", + FatalException, ed, ""); + return; + } + + G4HadronicParameters* param = G4HadronicParameters::Instance(); + + SetVerboseLevel(param->GetVerboseLevel()); + fMaxEnergy = std::max(100*MeV, param->GetMaxEnergy()); + if(param->ApplyFactorXS()) { + fXSFactorEl = param->XSFactorNucleonElastic(); + fXSFactorInel = param->XSFactorNucleonInelastic(); + } + + fElastic->PreparePhysicsTable(part); + fInelastic->PreparePhysicsTable(part); + fCapture->PreparePhysicsTable(part); + + std::size_t nmat = G4Material::GetNumberOfMaterials(); + G4MaterialTable* matTable = G4Material::GetMaterialTable(); + + std::size_t nmax = 0; + for(std::size_t i=0; iGetNumberOfElements(); + nmax = std::max(nmax, nelm); + } + fXsec.resize(nmax); + + if(isMaster) { + if(nullptr == theHandler) { + theHandler = new G4HadDataHandler(nTables); + } + + fMaxEnergy = std::max(fMaxEnergy, param->GetMaxEnergy()); + nLowE *= G4lrint(std::log10(fMiddleEnergy/fMinEnergy)); + nHighE *= G4lrint(std::log10(fMaxEnergy/fMiddleEnergy)); + + G4PhysicsVector* vec = nullptr; + G4PhysicsLogVector aVector(fMinEnergy, fMiddleEnergy, nLowE, false); + G4PhysicsLogVector bVector(fMiddleEnergy, fMaxEnergy, nHighE, false); + + for(std::size_t i=0; iUpdateTable(table, i); + table->resize(nmat); + for(std::size_t j=0; jBuildPhysicsTable(part); + fInelastic->BuildPhysicsTable(part); + fCapture->BuildPhysicsTable(part); + fCaptureXS->BuildPhysicsTable(part); + + if(isMaster) { + std::size_t nmat = G4Material::GetNumberOfMaterials(); + G4MaterialTable* matTable = G4Material::GetMaterialTable(); + + auto tables = theHandler->GetTables(); + + G4double sigEl(0.), sigInel(0.), sigCap(0.), val(0.), sum(0.); + + for(std::size_t i=0; iGetVectorLength(); + if(1 < verboseLevel) { + G4cout << "======= Zone 0 ======= N= " << nn + << " for " << mat->GetName() << G4endl; + } + for(std::size_t j=0; jEnergy(j); + G4double loge = G4Log(e); + sigEl = fXSFactorEl*ComputeCrossSection(fElasticXS, mat, e, loge); + sigInel = fXSFactorInel*ComputeCrossSection(fInelasticXS, mat, e, loge); + sigCap = ComputeCrossSection(fCaptureXS, mat, e, loge); + sum = sigEl + sigInel + sigCap; + if(1 < verboseLevel) { + G4cout << j << ". E= " << e << " xs=" << sum << " sigEl=" << sigEl + << " sigInel=" << sigInel << " sigCap=" << sigCap << G4endl; + } + (*(tables[0]))[i]->PutValue(j, sum); + val = sigEl/sum; + (*(tables[1]))[i]->PutValue(j, val); + val = (sigEl + sigInel)/sum; + (*(tables[2]))[i]->PutValue(j, val); + } + + // energy interval 1 + nn = (*(tables[3]))[0]->GetVectorLength(); + if(1 < verboseLevel) { + G4cout << "======= Zone 1 ======= N= " << nn << G4endl; + } + for(std::size_t j=0; jEnergy(j); + G4double loge = G4Log(e); + sigEl = fXSFactorEl*ComputeCrossSection(fElasticXS, mat, e, loge); + sigInel = fXSFactorInel*ComputeCrossSection(fInelasticXS, mat, e, loge); + sum = sigEl + sigInel; + if(1 < verboseLevel) { + G4cout << j << ". E= " << e << " xs=" << sum << " sigEl=" << sigEl + << " sigInel=" << sigInel << " factInel=" << fXSFactorInel + << G4endl; + } + (*(tables[3]))[i]->PutValue(j, sum); + val = sigInel/sum; + (*(tables[4]))[i]->PutValue(j, val); + } + } + } + if(1 < verboseLevel) { + G4cout << "### G4VEmProcess::BuildPhysicsTable() done for " + << GetProcessName() + << " and particle " << part.GetParticleName() + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double +G4NeutronGeneralProcess::ComputeCrossSection(G4VCrossSectionDataSet* xs, + const G4Material* mat, + G4double e, G4double loge) +{ + const G4double* natom = mat->GetVecNbOfAtomsPerVolume(); + G4int nelm = (G4int)mat->GetNumberOfElements(); + G4double sig = 0.0; + for(G4int i=0; iComputeCrossSectionPerElement(e, loge, fNeutron, + mat->GetElement(i), mat); + } + return sig; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4NeutronGeneralProcess::StartTracking(G4Track*) +{ + theNumberOfInteractionLengthLeft = -1.0; + fCurrMat = nullptr; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4NeutronGeneralProcess::PostStepGetPhysicalInteractionLength( + const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition) +{ + *condition = NotForced; + + // time limit + if(track.GetGlobalTime() >= fTimeLimit) { + fLambda = 0.0; + return 0.0; + } + + // recompute total cross section if needed + CurrentCrossSection(track); + + if (theNumberOfInteractionLengthLeft < 0.0) { + + // beggining of tracking (or just after DoIt of this process) + theNumberOfInteractionLengthLeft = -G4Log( G4UniformRand() ); + theInitialNumberOfInteractionLength = theNumberOfInteractionLengthLeft; + + } else { + + theNumberOfInteractionLengthLeft -= + previousStepSize/currentInteractionLength; + theNumberOfInteractionLengthLeft = + std::max(theNumberOfInteractionLengthLeft, 0.0); + } + + G4double x = theNumberOfInteractionLengthLeft * currentInteractionLength; + /* + G4cout << "PostStepGetPhysicalInteractionLength: e= " << energy + << " idxe= " << idxEnergy << " xs= " << fLambda + << " x= " << x << G4endl; + */ + return x; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4VParticleChange* G4NeutronGeneralProcess::PostStepDoIt(const G4Track& track, + const G4Step& step) +{ + fSelectedProc = nullptr; + // time limit + if(0.0 == fLambda) { + theTotalResult->Initialize(track); + theTotalResult->ProposeTrackStatus(fStopAndKill); + return theTotalResult; + } + // In all cases clear number of interaction lengths + theNumberOfInteractionLengthLeft = -1.0; + G4double q = G4UniformRand(); + /* + G4cout << "PostStep: preStepLambda= " << fLambda << " idxE= " << idxEnergy + << " matIndex=" << matIndex << G4endl; + */ + if (0 == idxEnergy) { + if(q <= GetProbability(1)) { + SelectedProcess(step, fElastic, fElasticXS); + } else if(q <= GetProbability(2)) { + SelectedProcess(step, fInelastic, fInelasticXS); + } else { + SelectedProcess(step, fCapture, fCaptureXS); + } + } else { + if(q <= GetProbability(4)) { + SelectedProcess(step, fInelastic, fInelasticXS); + } else { + SelectedProcess(step, fElastic, fElasticXS); + } + } + const G4Element* elm = fCurrMat->GetElement(0); + G4int nelm = (G4int)fCurrMat->GetNumberOfElements(); + if(1 < nelm) { + auto natom = fCurrMat->GetVecNbOfAtomsPerVolume(); + G4double sig = 0.0; + for(G4int i=0; iComputeCrossSectionPerElement(fCurrE, fCurrLogE, fNeutron, + fCurrMat->GetElement(i), + fCurrMat); + fXsec[i] = sig; + } + sig *= G4UniformRand(); + for(G4int i=0; i= sig) { + elm = fCurrMat->GetElement(i); + break; + } + } + } + fSelectedProc->GetCrossSectionDataStore()->SetForcedElement(elm); + const G4Isotope* iso = fXS->SelectIsotope(elm, fCurrE, fCurrLogE); + fSelectedProc->GetTargetNucleusPointer()->SetIsotope(iso); + /* + G4cout << "## neutron E(MeV)=" << fCurrE << " " + << fSelectedProc->GetProcessName() + << " on Z=" << iso->GetZ() << " A=" << iso->GetN() + << " time(ns)=" << track.GetGlobalTime()/ns << G4endl; + */ + // sample secondaries + return fSelectedProc->PostStepDoIt(track, step); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool +G4NeutronGeneralProcess::StorePhysicsTable(const G4ParticleDefinition* part, + const G4String& directory, + G4bool ascii) +{ + G4bool yes = true; + if(!isMaster) { return yes; } + for(std::size_t i=0; iTable(i); + if(nullptr == table || !table->StorePhysicsTable(fnam, ascii)) { + yes = false; + } + } + return yes; +} + +//....Ooooo0ooooo ........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4NeutronGeneralProcess::GetMeanFreePath(const G4Track& track, + G4double, + G4ForceCondition* condition) +{ + *condition = NotForced; + // recompute total cross section if needed + CurrentCrossSection(track); + return currentInteractionLength; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4NeutronGeneralProcess::ProcessDescription(std::ostream& out) const +{ + fElastic->ProcessDescription(out); + fInelastic->ProcessDescription(out); + fCapture->ProcessDescription(out); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +const G4String& G4NeutronGeneralProcess::GetSubProcessName() const +{ + return (fSelectedProc) ? fSelectedProc->GetProcessName() + : G4VProcess::GetProcessName(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4int G4NeutronGeneralProcess::GetSubProcessSubType() const +{ + return (fSelectedProc) ? fSelectedProc->GetProcessSubType() : 16; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +const G4VProcess* G4NeutronGeneralProcess::GetCreatorProcess() const +{ + return fSelectedProc; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/hadronic/processes/src/G4TauNeutrinoNucleusProcess.cc b/source/processes/hadronic/processes/src/G4TauNeutrinoNucleusProcess.cc new file mode 100644 index 0000000000..9afe0612b0 --- /dev/null +++ b/source/processes/hadronic/processes/src/G4TauNeutrinoNucleusProcess.cc @@ -0,0 +1,414 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// Geant4 Hadron Inelastic Scattering Process +// +// Created from G4MuNeutrinoNucleusProcess +// + + +#include +#include + +#include "G4TauNeutrinoNucleusProcess.hh" +#include "G4SystemOfUnits.hh" +#include "G4Nucleus.hh" +#include "G4ProcessManager.hh" +#include "G4CrossSectionDataStore.hh" +#include "G4ProductionCutsTable.hh" +#include "G4HadronicException.hh" +#include "G4HadronicInteraction.hh" +#include "G4VCrossSectionRatio.hh" +#include "G4VDiscreteProcess.hh" + +#include "G4TauNeutrinoNucleusTotXsc.hh" +//#include "G4NuMuNucleusCcModel.hh" +//#include "G4NuMuNucleusNcModel.hh" + +#include "G4RotationMatrix.hh" +#include "G4ThreeVector.hh" +#include "G4AffineTransform.hh" +#include "G4DynamicParticle.hh" +#include "G4StepPoint.hh" +#include "G4VSolid.hh" +#include "G4LogicalVolume.hh" +#include "G4SafetyHelper.hh" +#include "G4TransportationManager.hh" + +/////////////////////////////////////////////////////////////////////////////// + + +G4TauNeutrinoNucleusProcess::G4TauNeutrinoNucleusProcess( G4String anEnvelopeName, const G4String& pName) + : G4HadronicProcess( pName, fHadronInelastic ), isInitialised(false), fBiased(true) // fHadronElastic??? +{ + lowestEnergy = 1.*keV; + fEnvelope = nullptr; + fEnvelopeName = anEnvelopeName; + fTotXsc = nullptr; // new G4TauNeutrinoNucleusTotXsc(); + fNuNuclCcBias=1.; + fNuNuclNcBias=1.; + fNuNuclTotXscBias=1.; + safetyHelper = G4TransportationManager::GetTransportationManager()->GetSafetyHelper(); + safetyHelper->InitialiseHelper(); +} + +G4TauNeutrinoNucleusProcess::~G4TauNeutrinoNucleusProcess() +{ + if( fTotXsc ) delete fTotXsc; +} + +/////////////////////////////////////////////////////// + +void G4TauNeutrinoNucleusProcess::SetBiasingFactor(G4double bf) +{ + fNuNuclTotXscBias = bf; + + fTotXsc = new G4TauNeutrinoNucleusTotXsc(); + fTotXsc->SetBiasingFactor(bf); +} + +/////////////////////////////////////////////////////// + +void G4TauNeutrinoNucleusProcess::SetBiasingFactors(G4double bfCc, G4double bfNc) +{ + fNuNuclCcBias = bfCc; + fNuNuclNcBias = bfNc; + + fTotXsc = new G4TauNeutrinoNucleusTotXsc(); + // fTotXsc->SetBiasingFactors(bfCc, bfNc); +} + +////////////////////////////////////////////////// + +G4double G4TauNeutrinoNucleusProcess:: +GetMeanFreePath(const G4Track &aTrack, G4double, G4ForceCondition *) +{ + //G4cout << "GetMeanFreePath " << aTrack.GetDefinition()->GetParticleName() + // << " Ekin= " << aTrack.GetKineticEnergy() << G4endl; + G4String rName = aTrack.GetStep()->GetPreStepPoint()->GetPhysicalVolume()->GetLogicalVolume()->GetRegion()->GetName(); + G4double totxsc(0.); + + if( rName == fEnvelopeName && fNuNuclTotXscBias > 1.) + { + totxsc = fNuNuclTotXscBias* + GetCrossSectionDataStore()->ComputeCrossSection(aTrack.GetDynamicParticle(), + aTrack.GetMaterial()); + } + else + { + totxsc = GetCrossSectionDataStore()->ComputeCrossSection(aTrack.GetDynamicParticle(), + aTrack.GetMaterial()); + } + G4double res = (totxsc>0.0) ? 1.0/totxsc : DBL_MAX; + //G4cout << " xsection= " << totxsc << G4endl; + return res; +} + +/////////////////////////////////////////////////// + +void G4TauNeutrinoNucleusProcess::ProcessDescription(std::ostream& outFile) const +{ + + outFile << "G4TauNeutrinoNucleusProcess handles the inelastic scattering of \n" + << "tau-neutrino on nucleus by invoking the following model(s) and \n" + << "cross section(s).\n"; + +} + +/////////////////////////////////////////////////////////////////////// + +G4VParticleChange* +G4TauNeutrinoNucleusProcess::PostStepDoIt(const G4Track& track, const G4Step& step) +{ + // track.GetVolume()->GetLogicalVolume()->GetName() + // if( track.GetVolume()->GetLogicalVolume() != fEnvelope ) + + G4String rName = track.GetStep()->GetPreStepPoint()->GetPhysicalVolume()->GetLogicalVolume()->GetRegion()->GetName(); + + if( rName != fEnvelopeName ) + { + if( verboseLevel > 0 ) + { + G4cout<<"Go out from G4TauNeutrinoNucleusProcess::PostStepDoIt: wrong volume "<Clear(); + theTotalResult->Initialize(track); + G4double weight = track.GetWeight(); + theTotalResult->ProposeWeight(weight); + + if( track.GetTrackStatus() != fAlive ) + { + return theTotalResult; + } + // Next check for illegal track status + // + if (track.GetTrackStatus() != fAlive && + track.GetTrackStatus() != fSuspend) + { + if (track.GetTrackStatus() == fStopAndKill || + track.GetTrackStatus() == fKillTrackAndSecondaries || + track.GetTrackStatus() == fPostponeToNextEvent) + { + G4ExceptionDescription ed; + ed << "G4TauNeutrinoNucleusProcess: track in unusable state - " + << track.GetTrackStatus() << G4endl; + ed << "G4TauNeutrinoNucleusProcess: returning unchanged track " << G4endl; + DumpState(track,"PostStepDoIt",ed); + G4Exception("G4TauNeutrinoNucleusProcess::PostStepDoIt", "had004", JustWarning, ed); + } + // No warning for fStopButAlive which is a legal status here + return theTotalResult; + } + + // For elastic scattering, _any_ result is considered an interaction + ClearNumberOfInteractionLengthLeft(); + + G4double kineticEnergy = track.GetKineticEnergy(); + const G4DynamicParticle* dynParticle = track.GetDynamicParticle(); + const G4ParticleDefinition* part = dynParticle->GetDefinition(); + const G4String pName = part->GetParticleName(); + + // NOTE: Very low energy scatters were causing numerical (FPE) errors + // in earlier releases; these limits have not been changed since. + + if ( kineticEnergy <= lowestEnergy ) return theTotalResult; + + const G4Material* material = track.GetMaterial(); + G4Nucleus* targNucleus = GetTargetNucleusPointer(); + + //////////////// uniform random spread of the neutrino interaction point //////////// + + const G4StepPoint* pPostStepPoint = step.GetPostStepPoint(); + const G4DynamicParticle* aParticle = track.GetDynamicParticle(); + G4ThreeVector position = pPostStepPoint->GetPosition(), newPosition=position; + G4ParticleMomentum direction = aParticle->GetMomentumDirection(); + + if( fNuNuclCcBias > 1.0 || fNuNuclNcBias > 1.0) // = true, if fBiasingfactor != 1., i.e. xsc is biased + { + const G4RotationMatrix* rotM = pPostStepPoint->GetTouchable()->GetRotation(); + G4ThreeVector transl = pPostStepPoint->GetTouchable()->GetTranslation(); + G4AffineTransform transform = G4AffineTransform(rotM,transl); + transform.Invert(); + + G4ThreeVector localP = transform.TransformPoint(position); + G4ThreeVector localV = transform.TransformAxis(direction); + + G4double forward = track.GetVolume()->GetLogicalVolume()->GetSolid()->DistanceToOut(localP, localV); + G4double backward = track.GetVolume()->GetLogicalVolume()->GetSolid()->DistanceToOut(localP, -localV); + + G4double distance = forward+backward; + + // G4cout<ReLocateWithinVolume(newPosition); + + theTotalResult->ProposePosition(newPosition); // G4Exception : GeomNav1002 + } + G4HadProjectile theProj( track ); + G4HadronicInteraction* hadi = nullptr; + G4HadFinalState* result = nullptr; + + G4double ccTotRatio = fTotXsc->GetCcTotRatio(); + + if( G4UniformRand() < ccTotRatio ) // Cc-model + { + // Initialize the hadronic projectile from the track + thePro.Initialise(track); + + if (pName == "nu_tau" ) hadi = (GetHadronicInteractionList())[0]; + else hadi = (GetHadronicInteractionList())[2]; + + result = hadi->ApplyYourself( thePro, *targNucleus); + + result->SetTrafoToLab(thePro.GetTrafoToLab()); + + ClearNumberOfInteractionLengthLeft(); + + FillResult(result, track); + } + else // Nc-model + { + + if (pName == "nu_tau" ) hadi = (GetHadronicInteractionList())[1]; + else hadi = (GetHadronicInteractionList())[3]; + + size_t idx = track.GetMaterialCutsCouple()->GetIndex(); + + G4double tcut = (*(G4ProductionCutsTable::GetProductionCutsTable()->GetEnergyCutsVector(3)))[idx]; + + hadi->SetRecoilEnergyThreshold(tcut); + + if( verboseLevel > 1 ) + { + G4cout << "G4TauNeutrinoNucleusProcess::PostStepDoIt for " + << part->GetParticleName() + << " in " << material->GetName() + << " Target Z= " << targNucleus->GetZ_asInt() + << " A= " << targNucleus->GetA_asInt() << G4endl; + } + try + { + result = hadi->ApplyYourself( theProj, *targNucleus); + } + catch(G4HadronicException & aR) + { + G4ExceptionDescription ed; + aR.Report(ed); + ed << "Call for " << hadi->GetModelName() << G4endl; + ed << " Z= " + << targNucleus->GetZ_asInt() + << " A= " << targNucleus->GetA_asInt() << G4endl; + DumpState(track,"ApplyYourself",ed); + ed << " ApplyYourself failed" << G4endl; + G4Exception("G4TauNeutrinoNucleusProcess::PostStepDoIt", "had006", + FatalException, ed); + } + // directions + + G4ThreeVector indir = track.GetMomentumDirection(); + G4double phi = CLHEP::twopi*G4UniformRand(); + G4ThreeVector it(0., 0., 1.); + G4ThreeVector outdir = result->GetMomentumChange(); + + if(verboseLevel>1) + { + G4cout << "Efin= " << result->GetEnergyChange() + << " de= " << result->GetLocalEnergyDeposit() + << " nsec= " << result->GetNumberOfSecondaries() + << " dir= " << outdir + << G4endl; + } + // energies + + G4double edep = result->GetLocalEnergyDeposit(); + G4double efinal = result->GetEnergyChange(); + + if(efinal < 0.0) { efinal = 0.0; } + if(edep < 0.0) { edep = 0.0; } + + // NOTE: Very low energy scatters were causing numerical (FPE) errors + // in earlier releases; these limits have not been changed since. + + if(efinal <= lowestEnergy) + { + edep += efinal; + efinal = 0.0; + } + // primary change + + theTotalResult->ProposeEnergy(efinal); + + G4TrackStatus status = track.GetTrackStatus(); + + if(efinal > 0.0) + { + outdir.rotate(phi, it); + outdir.rotateUz(indir); + theTotalResult->ProposeMomentumDirection(outdir); + } + else + { + if( part->GetProcessManager()->GetAtRestProcessVector()->size() > 0) + { + status = fStopButAlive; + } + else + { + status = fStopAndKill; + } + theTotalResult->ProposeTrackStatus(status); + } + //G4cout << "Efinal= " << efinal << " TrackStatus= " << status << G4endl; + + theTotalResult->SetNumberOfSecondaries(0); + + // recoil + + if( result->GetNumberOfSecondaries() > 0 ) + { + G4DynamicParticle* p = result->GetSecondary(0)->GetParticle(); + + if(p->GetKineticEnergy() > tcut) + { + theTotalResult->SetNumberOfSecondaries(1); + G4ThreeVector pdir = p->GetMomentumDirection(); + + // G4cout << "recoil " << pdir << G4endl; + //!! is not needed for models inheriting G4TauNeutrinoNucleus + + pdir.rotate(phi, it); + pdir.rotateUz(indir); + + // G4cout << "recoil rotated " << pdir << G4endl; + + p->SetMomentumDirection(pdir); + + // in elastic scattering time and weight are not changed + + G4Track* t = new G4Track(p, track.GetGlobalTime(), + track.GetPosition()); + t->SetWeight(weight); + t->SetTouchableHandle(track.GetTouchableHandle()); + theTotalResult->AddSecondary(t); + } + else + { + edep += p->GetKineticEnergy(); + delete p; + } + } + theTotalResult->ProposeLocalEnergyDeposit(edep); + theTotalResult->ProposeNonIonizingEnergyDeposit(edep); + result->Clear(); + } + return theTotalResult; +} + +void +G4TauNeutrinoNucleusProcess::PreparePhysicsTable(const G4ParticleDefinition& part) +{ + if(!isInitialised) { + isInitialised = true; + // if(G4Neutron::Neutron() == &part) { lowestEnergy = 1.e-6*eV; } + } + G4HadronicProcess::PreparePhysicsTable(part); +} + +void +G4TauNeutrinoNucleusProcess::SetLowestEnergy(G4double val) +{ + lowestEnergy = val; +} + diff --git a/source/processes/hadronic/stopping/History b/source/processes/hadronic/stopping/History index 3617116d2e..036c0b1209 100644 --- a/source/processes/hadronic/stopping/History +++ b/source/processes/hadronic/stopping/History @@ -1,9 +1,13 @@ # Category hadr-stopping History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-26 Gabriele Cosmo (hadr-stopping-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2022-04-13 Ben Morgan (hadr-stopping-V11-00-01) - Add needed dependencies diff --git a/source/processes/hadronic/stopping/src/G4ElementSelector.cc b/source/processes/hadronic/stopping/src/G4ElementSelector.cc index e1d5f5cdc7..17ef05f857 100644 --- a/source/processes/hadronic/stopping/src/G4ElementSelector.cc +++ b/source/processes/hadronic/stopping/src/G4ElementSelector.cc @@ -62,9 +62,9 @@ G4ElementSelector::SelectZandA(const G4Track& track, G4Nucleus* target) // for halogens and oxigen. // N.C.Mukhopadhyay Phys. Rep. 30 (1977) 1. - size_t i = 0; + std::size_t i = 0; const G4Material* mat = track.GetMaterial(); - size_t numberOfElements = mat->GetNumberOfElements(); + std::size_t numberOfElements = mat->GetNumberOfElements(); const G4ElementVector* theElementVector = mat->GetElementVector(); if(1 < numberOfElements) { @@ -103,7 +103,7 @@ G4ElementSelector::SelectZandA(const G4Track& track, G4Nucleus* target) // select isotope const G4IsotopeVector* isv = elm->GetIsotopeVector(); - size_t ni = isv->size(); + std::size_t ni = isv->size(); i = 0; if(1 < ni) { @@ -116,9 +116,8 @@ G4ElementSelector::SelectZandA(const G4Track& track, G4Nucleus* target) } } - G4int A = elm->GetIsotope(i)->GetN(); + G4int A = elm->GetIsotope((G4int)i)->GetN(); target->SetParameters(A, Z); return elm; } - diff --git a/source/processes/hadronic/stopping/src/G4HadronStoppingProcess.cc b/source/processes/hadronic/stopping/src/G4HadronStoppingProcess.cc index 643a5fda44..5a0c581663 100644 --- a/source/processes/hadronic/stopping/src/G4HadronStoppingProcess.cc +++ b/source/processes/hadronic/stopping/src/G4HadronStoppingProcess.cc @@ -155,7 +155,7 @@ G4VParticleChange* G4HadronStoppingProcess::AtRestDoIt(const G4Track& track, result = fEmCascade->ApplyYourself(thePro, *nucleus); G4double ebound = result->GetLocalEnergyDeposit(); G4double edep = 0.0; - G4int nSecondaries = result->GetNumberOfSecondaries(); + G4int nSecondaries = (G4int)result->GetNumberOfSecondaries(); G4int nEmCascadeSec = nSecondaries; // Try decay from bound level @@ -167,7 +167,7 @@ G4VParticleChange* G4HadronStoppingProcess::AtRestDoIt(const G4Track& track, if(fBoundDecay) { G4HadFinalState* resultDecay = fBoundDecay->ApplyYourself(thePro, *nucleus); - G4int n = resultDecay->GetNumberOfSecondaries(); + G4int n = (G4int)resultDecay->GetNumberOfSecondaries(); if(0 < n) { nSecondaries += n; result->AddSecondaries(resultDecay); @@ -241,10 +241,10 @@ G4VParticleChange* G4HadronStoppingProcess::AtRestDoIt(const G4Track& track, } while(!resultNuc); edep = resultNuc->GetLocalEnergyDeposit(); - size_t nnuc = resultNuc->GetNumberOfSecondaries(); + std::size_t nnuc = resultNuc->GetNumberOfSecondaries(); // add delay time of capture - for(size_t i=0; iGetSecondary(i); sec->SetTime(capTime + sec->GetTime()); } diff --git a/source/processes/hadronic/stopping/src/G4MuonMinusAtomicCapture.cc b/source/processes/hadronic/stopping/src/G4MuonMinusAtomicCapture.cc index ed39d80b8c..cb09fcd7c8 100644 --- a/source/processes/hadronic/stopping/src/G4MuonMinusAtomicCapture.cc +++ b/source/processes/hadronic/stopping/src/G4MuonMinusAtomicCapture.cc @@ -136,7 +136,7 @@ G4VParticleChange* G4MuonMinusAtomicCapture::AtRestDoIt(const G4Track& track, result = fEmCascade->ApplyYourself(thePro, *nucleus); G4double ebound = result->GetLocalEnergyDeposit(); // may need to carry this over; review G4double edep = 0.0; - G4int nSecondaries = result->GetNumberOfSecondaries(); + G4int nSecondaries = (G4int)result->GetNumberOfSecondaries(); thePro.SetBoundEnergy(ebound); // creating the muonic atom diff --git a/source/processes/hadronic/stopping/src/G4MuonicAtomDecay.cc b/source/processes/hadronic/stopping/src/G4MuonicAtomDecay.cc index 75f99dbd5f..21f2fb116c 100644 --- a/source/processes/hadronic/stopping/src/G4MuonicAtomDecay.cc +++ b/source/processes/hadronic/stopping/src/G4MuonicAtomDecay.cc @@ -418,7 +418,7 @@ G4VParticleChange* G4MuonicAtomDecay::DecayIt(const G4Track& aTrack, } while(result == nullptr); // add delay time of capture (inter + intra) - G4int nsec = result->GetNumberOfSecondaries(); + G4int nsec = (G4int)result->GetNumberOfSecondaries(); for(G4int i=0; iGetSecondary(i); G4double ctime = sec->GetTime(); @@ -499,7 +499,7 @@ void G4MuonicAtomDecay::FillResult(G4HadFinalState * aR, const G4Track & aT) // << " fKill= " << fStopAndKill << G4endl; // check secondaries: apply rotation and Lorentz transformation - G4int nSec = aR->GetNumberOfSecondaries(); + G4int nSec = (G4int)aR->GetNumberOfSecondaries(); theTotalResult.SetNumberOfSecondaries(nSec); G4double weight = aT.GetWeight(); diff --git a/source/processes/hadronic/util/History b/source/processes/hadronic/util/History index b0ea9435ed..4b90eab6e7 100644 --- a/source/processes/hadronic/util/History +++ b/source/processes/hadronic/util/History @@ -7,6 +7,28 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-26 Gabriele Cosmo (hadr-util-V11-00-13) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-07 Alberto Ribon (hadr-util-V11-00-12) +- G4Nucleus : corrected the method GetN_asInt for the case of hypernuclei. + +## 2022-08-02 Alberto Ribon (hadr-util-V11-00-11) +- G4HadronicParametersMessenger : rolled back as it was in hadr-until-V11-00-09, + to avoid circular dependency between G4hadronic_util and G4had_string_diff. + A new messenger class is created in G4had_string_diff. + +## 2022-07-28 Alberto Ribon (hadr-util-V11-00-10) +- G4HadronicParametersMessenger : added two new UI commands to select one + tuning of the FTF model's parameters. + +## 2022-07-05 Vladimir Ivanchenko (hadr-util-V11-00-09) +- G4NuclearPolarization - fixed Coverity warning + +## 2022-07-05 Vladimir Ivanchenko (hadr-util-V11-00-08) +- G4HadronicParameters - added flag to enable general neutron process +- G4HadDataHandler - new data class + ## 2022-06-09 Laurie Nevay (hadr-util-V11-00-07) - Add option to G4HadronicParameters to control diffraction for baryon number greater than 10. diff --git a/source/processes/hadronic/util/include/G4HadDataHandler.hh b/source/processes/hadronic/util/include/G4HadDataHandler.hh new file mode 100644 index 0000000000..f224d1cab1 --- /dev/null +++ b/source/processes/hadronic/util/include/G4HadDataHandler.hh @@ -0,0 +1,112 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// File name: G4HadDataHandler +// +// Author: V. Ivanchenko +// +// Creation date: 05 July 2022 +// +// Modifications: +// +// Class Description: +// +// A storage of G4PhysicsTable +// +// Class Description: End + +// ------------------------------------------------------------------- +// + +#ifndef G4HadDataHandler_h +#define G4HadDataHandler_h 1 + +#include "globals.hh" +#include "G4PhysicsTable.hh" +#include "G4PhysicsVector.hh" +#include + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4VProcess; + +class G4HadDataHandler +{ +public: + + explicit G4HadDataHandler(std::size_t nTable); + + ~G4HadDataHandler(); + + // add table + void AddTable(G4PhysicsTable*); + + // update table with existing index + void UpdateTable(G4PhysicsTable*, std::size_t idx); + + // clean existing table + void CleanTable(std::size_t idx); + + // keep pointer of master thread process + void SetMasterProcess(const G4VProcess*); + + // return pointer of master thread process + const G4VProcess* GetMasterProcess(std::size_t idx) const; + + // access to the table via index + inline const G4PhysicsTable* GetTable(std::size_t idx) const { + return (idx < tLength) ? data[idx] : nullptr; + } + inline G4PhysicsTable* Table(std::size_t idx) const { + return (idx < tLength) ? data[idx] : nullptr; + } + + // access to vector, no check on input index + inline + const G4PhysicsVector* GetVector(std::size_t itable, std::size_t ivec) const + { return (*(data[itable]))[ivec]; } + + inline const std::vector& GetTables() const { return data; } + + // hide assignment operator + G4HadDataHandler & operator=(const G4HadDataHandler &right) = delete; + G4HadDataHandler(const G4HadDataHandler&) = delete; + +private: + + std::vector data; + std::size_t tLength; + std::vector masterProcess; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/source/processes/hadronic/util/include/G4HadronicParameters.hh b/source/processes/hadronic/util/include/G4HadronicParameters.hh index 04fa958cf2..e4d13ff118 100644 --- a/source/processes/hadronic/util/include/G4HadronicParameters.hh +++ b/source/processes/hadronic/util/include/G4HadronicParameters.hh @@ -136,6 +136,10 @@ class G4HadronicParameters { /// be turned back on. Applies to Baryon Number > 10 or # target nucleons > 10. void SetEnableDiffDissociationForBGreater10(G4bool val); + inline G4bool EnableNeutronGeneralProcess() const; + void SetEnableNeutronGeneralProcess( G4bool val ); + // Neutron general process may be enabled/disabled + private: G4HadronicParameters(); @@ -160,14 +164,15 @@ class G4HadronicParameters { G4double fXSFactorEM = 1.0; G4double fXSFactorLimit = 0.2; - G4int fVerboseLevel = 1; - G4bool fEnableBC = false; - G4bool fEnableHyperNuclei = false; - G4bool fApplyFactorXS = false; - G4bool fEnableCRCoalescence = false; - G4bool fEnableIntegralInelasticXS = true; - G4bool fEnableIntegralElasticXS = true; + G4int fVerboseLevel = 1; + G4bool fEnableBC = false; + G4bool fEnableHyperNuclei = false; + G4bool fApplyFactorXS = false; + G4bool fEnableCRCoalescence = false; + G4bool fEnableIntegralInelasticXS = true; + G4bool fEnableIntegralElasticXS = true; G4bool fEnableDiffDissociationForBGreater10 = false; + G4bool fNeutronGeneral = false; }; inline G4double G4HadronicParameters::GetMaxEnergy() const { @@ -253,4 +258,8 @@ inline G4bool G4HadronicParameters::EnableDiffDissociationForBGreater10() const return fEnableDiffDissociationForBGreater10; } +inline G4bool G4HadronicParameters::EnableNeutronGeneralProcess() const { + return fNeutronGeneral; +} + #endif diff --git a/source/processes/hadronic/util/include/G4Nucleus.hh b/source/processes/hadronic/util/include/G4Nucleus.hh index 166363271e..5c23485835 100644 --- a/source/processes/hadronic/util/include/G4Nucleus.hh +++ b/source/processes/hadronic/util/include/G4Nucleus.hh @@ -100,7 +100,7 @@ class G4Nucleus { return theA; } inline G4int GetN_asInt() const - { return theA-theZ; } + { return theA-theZ-theL; } inline G4int GetZ_asInt() const { return theZ; } diff --git a/source/processes/hadronic/util/sources.cmake b/source/processes/hadronic/util/sources.cmake index 571be20d10..4f05d9b120 100644 --- a/source/processes/hadronic/util/sources.cmake +++ b/source/processes/hadronic/util/sources.cmake @@ -17,6 +17,7 @@ geant4_add_module(G4hadronic_util G4Fragment.hh G4FragmentVector.hh G4GeneralPhaseSpaceDecay.hh + G4HadDataHandler.hh G4HadDecayGenerator.hh G4HadFinalState.hh G4HadParticleCodes.hh @@ -65,6 +66,7 @@ geant4_add_module(G4hadronic_util G4FermiMomentum.cc G4Fragment.cc G4GeneralPhaseSpaceDecay.cc + G4HadDataHandler.cc G4HadDecayGenerator.cc G4HadFinalState.cc G4HadPhaseSpaceGenbod.cc diff --git a/source/processes/hadronic/util/src/G4DecayKineticTracks.cc b/source/processes/hadronic/util/src/G4DecayKineticTracks.cc index 32bd1542c5..7a81f1d89c 100644 --- a/source/processes/hadronic/util/src/G4DecayKineticTracks.cc +++ b/source/processes/hadronic/util/src/G4DecayKineticTracks.cc @@ -70,12 +70,12 @@ void G4DecayKineticTracks::Decay(G4KineticTrackVector *tracks) const { tracks->insert(tracks->end(), daughters->begin(), daughters->end()); delete track; // Remove parent track delete daughters; - (*tracks)[i] = NULL; // Flag parent's slot for removal + (*tracks)[i] = nullptr; // Flag parent's slot for removal } } // Find and remove null pointers created by decays above - for (int j=tracks->size()-1; j>=0; --j) { - if (NULL == (*tracks)[j]) tracks->erase(tracks->begin()+j); + for (G4int j=(G4int)tracks->size()-1; j>=0; --j) { + if (nullptr == (*tracks)[j]) tracks->erase(tracks->begin()+j); } } diff --git a/source/processes/hadronic/util/src/G4Fancy3DNucleus.cc b/source/processes/hadronic/util/src/G4Fancy3DNucleus.cc index 28751cc55a..689ca0786b 100644 --- a/source/processes/hadronic/util/src/G4Fancy3DNucleus.cc +++ b/source/processes/hadronic/util/src/G4Fancy3DNucleus.cc @@ -542,7 +542,7 @@ G4bool G4Fancy3DNucleus::ReduceSum() testSums.resize(myA-1); // Allocate block for filling below G4ThreeVector delta; - for (G4int aNucleon=0; aNucleon < myA-1; aNucleon++) { + for (G4int aNucleon=0; aNucleon < myA-1; ++aNucleon) { delta = 2.*((momentum[aNucleon]*testDir)*testDir); testSums[aNucleon].Fill(delta, delta.mag(), aNucleon); @@ -551,7 +551,7 @@ G4bool G4Fancy3DNucleus::ReduceSum() std::sort(testSums.begin(), testSums.end()); // reduce Momentum Sum until the next would be allowed. - G4int index=testSums.size(); + G4int index=(G4int)testSums.size(); while ( (sum-testSums[--index].Vector).mag()>PFermi && index>0) /* Loop checking, 30-Oct-2015, G.Folger */ { // Only take one which improve, ie. don't change sign and overshoot... diff --git a/source/processes/hadronic/util/src/G4HadDataHandler.cc b/source/processes/hadronic/util/src/G4HadDataHandler.cc new file mode 100644 index 0000000000..0786d96783 --- /dev/null +++ b/source/processes/hadronic/util/src/G4HadDataHandler.cc @@ -0,0 +1,110 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// File name: G4HadDataHandler +// +// Author: V. Ivanchenko +// +// Creation date: 05 July 2022 +// +// Modifications: +// +// ------------------------------------------------------------------- +// +// + +#include "G4HadDataHandler.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4HadDataHandler::G4HadDataHandler(std::size_t n) : tLength(n) +{ + data.resize(n, nullptr); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4HadDataHandler::~G4HadDataHandler() +{ + for(std::size_t i=0; ientries() ; ++j) + for (G4int j=0; j< (G4int)src->entries() ; ++j) { // copy j-th process in i-th ProcessVector theProcVector[i]->insert((*src)[j]); @@ -383,7 +383,7 @@ G4int G4ProcessManager::RemoveAt(G4int ip, G4VProcess*, G4int ivec) G4int G4ProcessManager::FindInsertPosition(G4int ord, G4int ivec) { G4ProcessVector* pVector = theProcVector[ivec]; - G4int ip = pVector->entries(); + G4int ip = (G4int)pVector->entries(); G4int tmp = INT_MAX; if (ord == ordLast) return ip; @@ -435,7 +435,7 @@ G4int G4ProcessManager::AddProcess( // add aProcess to process List theProcessList->insert(aProcess); - G4int idx = (theProcessList->entries()) - 1; + G4int idx = G4int(theProcessList->entries() - 1); // check size of the ProcessVector[0] if (numberOfProcesses != idx) @@ -836,7 +836,7 @@ void G4ProcessManager::SetProcessOrderingToSecond( // find insert position G4ProcessVector* pVector = theProcVector[ivec]; - G4int ip = pVector->entries(); + G4int ip = (G4int)pVector->entries(); G4int tmp = INT_MAX; // find insert position @@ -1081,7 +1081,7 @@ void G4ProcessManager::DumpInfo() << G4endl; // loop over all processes - for (std::size_t idx=0; idx < theProcessList->entries(); ++idx) + for (G4int idx=0; idx < (G4int)theProcessList->entries(); ++idx) { // process name/type G4cout << "[" << idx << "]"; @@ -1137,7 +1137,7 @@ void G4ProcessManager::CreateGPILvectors() // Create GetPhysicalInteractionLength process vectors just as the inverse // order of DoIt() process vector - for(std::size_t k=0; kentries(); ++k) + for(G4int k=0; k<(G4int)theProcessList->entries(); ++k) { GetAttribute((*theProcessList)[k])->idxProcVector[0]=-1; GetAttribute((*theProcessList)[k])->idxProcVector[2]=-1; @@ -1148,13 +1148,13 @@ void G4ProcessManager::CreateGPILvectors() { G4ProcessVector* procGPIL = theProcVector[i]; G4ProcessVector* procDoIt = theProcVector[i+1]; - G4int nproc = procDoIt->entries(); + G4int nproc = (G4int)procDoIt->entries(); procGPIL->clear(); for(G4int j=nproc-1;j>=0;--j) { G4VProcess* aProc = (*procDoIt)[j]; procGPIL->insert(aProc); - GetAttribute(aProc)->idxProcVector[i] = procGPIL->entries()-1; + GetAttribute(aProc)->idxProcVector[i] = G4int(procGPIL->entries()-1); } } } @@ -1162,7 +1162,7 @@ void G4ProcessManager::CreateGPILvectors() // -------------------------------------------------------------------- void G4ProcessManager::StartTracking(G4Track* aTrack) { - for (std::size_t idx = 0; idxentries(); ++idx) + for (G4int idx = 0; idx<(G4int)theProcessList->entries(); ++idx) { if (GetAttribute(idx)->isActive) ((*theProcessList)[idx])->StartTracking(aTrack); @@ -1173,7 +1173,7 @@ void G4ProcessManager::StartTracking(G4Track* aTrack) // -------------------------------------------------------------------- void G4ProcessManager::EndTracking() { - for (std::size_t idx = 0; idxentries(); ++idx) + for (G4int idx = 0; idx<(G4int)theProcessList->entries(); ++idx) { if (GetAttribute(idx)->isActive) ((*theProcessList)[idx])->EndTracking(); diff --git a/source/processes/management/src/G4ProcessTable.cc b/source/processes/management/src/G4ProcessTable.cc index 4e509eb75c..794a2245f9 100644 --- a/source/processes/management/src/G4ProcessTable.cc +++ b/source/processes/management/src/G4ProcessTable.cc @@ -143,7 +143,7 @@ G4int G4ProcessTable::Insert(G4VProcess* aProcess, #endif G4int idxTbl = 0; - G4int nidx = fProcTblVector->size(); + G4int nidx = (G4int)fProcTblVector->size(); G4ProcTblElement* anElement = nullptr; // loop over all elements for (; idxTbl < nidx; ++idxTbl) @@ -208,7 +208,7 @@ G4int G4ProcessTable::Remove( G4VProcess* aProcess, #endif G4int idxTbl = 0; - G4int nidx = fProcTblVector->size(); + G4int nidx = (G4int)fProcTblVector->size(); G4ProcTblElement* anElement =nullptr; // loop over all elements for (; idxTbl < nidx; ++idxTbl) @@ -269,8 +269,8 @@ void G4ProcessTable::RegisterProcess(G4VProcess* ptr) // void G4ProcessTable::DeRegisterProcess(G4VProcess* ptr) { - G4int nn = fListProcesses.size(); - for(G4int i=0; iGetProcessList(); - for (std::size_t idx = 0; idx < procList->length(); ++idx) + for (G4int idx = 0; idx < (G4int)procList->length(); ++idx) { G4VProcess* process = (*procList)(idx); if ( process->GetProcessType() == processType) diff --git a/source/processes/management/src/G4ProcessTableMessenger.cc b/source/processes/management/src/G4ProcessTableMessenger.cc index 2901dea6fa..90beff7ee5 100644 --- a/source/processes/management/src/G4ProcessTableMessenger.cc +++ b/source/processes/management/src/G4ProcessTableMessenger.cc @@ -156,7 +156,6 @@ G4ProcessTableMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { G4ProcessTable::G4ProcNameVector* procNameVector = theProcessTable->GetNameList(); - G4int idx; G4int type = -1; G4ExceptionDescription ed; @@ -181,10 +180,8 @@ G4ProcessTableMessenger::SetNewValue(G4UIcommand* command, G4String newValue) } } G4int counter = 0; - idx = 0; for (auto itr=procNameVector->cbegin(); itr!=procNameVector->cend(); ++itr) { - ++idx; G4ProcessVector* tmpVector = theProcessTable->FindProcesses(*itr); if ( (type <0) || ( ((*tmpVector)(0)->GetProcessType()) == type) ) { @@ -233,10 +230,8 @@ G4ProcessTableMessenger::SetNewValue(G4UIcommand* command, G4String newValue) currentProcessTypeName = ""; } } - idx = 0; for (auto itr=procNameVector->cbegin(); itr!=procNameVector->cend(); ++itr) { - ++idx; G4ProcessVector* tmpVector = theProcessTable->FindProcesses(*itr); G4VProcess* p = (*tmpVector)(0); if ( isAll || @@ -322,7 +317,7 @@ G4ProcessTableMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { tmpVector = theProcessTable->FindProcesses(G4ProcessType(type)); } - for (std::size_t i=0; ilength(); ++i) + for (G4int i=0; i<(G4int)tmpVector->length(); ++i) { theProcessTable->DumpInfo( (*tmpVector)(i), currentParticle ); } diff --git a/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc b/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc index c030d1c19b..97c65e2e12 100644 --- a/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc +++ b/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc @@ -80,19 +80,24 @@ AtRestGetPhysicalInteractionLength( const G4Track& track, // get mean life time currentInteractionLength = GetMeanLifeTime(track, condition); + G4double time = (currentInteractionLength < DBL_MAX) ? + theNumberOfInteractionLengthLeft * currentInteractionLength : DBL_MAX; + #ifdef G4VERBOSE if ((currentInteractionLength <0.0) || (verboseLevel>2)) { + G4double t = (currentInteractionLength < DBL_MAX) ? + currentInteractionLength/ns : DBL_MAX; G4cout << "G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength() - "; G4cout << "[ " << GetProcessName() << "]" << G4endl; track.GetDynamicParticle()->DumpInfo(); G4cout << " in Material " << track.GetMaterial()->GetName() << G4endl; - G4cout << "MeanLifeTime = " << currentInteractionLength/ns << "[ns]" + G4cout << "MeanLifeTime = " << t << " [ns]" << G4endl; } #endif - return theNumberOfInteractionLengthLeft * currentInteractionLength; + return time; } // -------------------------------------------------------------------- diff --git a/source/processes/management/src/G4VRestDiscreteProcess.cc b/source/processes/management/src/G4VRestDiscreteProcess.cc index cd30c5ba0c..77764cdc09 100644 --- a/source/processes/management/src/G4VRestDiscreteProcess.cc +++ b/source/processes/management/src/G4VRestDiscreteProcess.cc @@ -107,11 +107,12 @@ PostStepGetPhysicalInteractionLength( const G4Track& track, #ifdef G4VERBOSE if (verboseLevel>1) { + G4double length = (value < DBL_MAX) ? value/cm : value; G4cout << "G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength() - "; G4cout << "[ " << GetProcessName() << "]" << G4endl; track.GetDynamicParticle()->DumpInfo(); G4cout << " in Material " << track.GetMaterial()->GetName() << G4endl; - G4cout << "InteractionLength= " << value/cm <<"[cm] " << G4endl; + G4cout << "InteractionLength= " << length <<"[cm] " << G4endl; } #endif return value; @@ -141,19 +142,24 @@ AtRestGetPhysicalInteractionLength( const G4Track& track, // get mean life time currentInteractionLength = GetMeanLifeTime(track, condition); + G4double time = (currentInteractionLength < DBL_MAX) ? + theNumberOfInteractionLengthLeft * currentInteractionLength : DBL_MAX; + #ifdef G4VERBOSE if ((currentInteractionLength <0.0) || (verboseLevel>2)) { + G4double t = (currentInteractionLength < DBL_MAX) ? + currentInteractionLength/ns : DBL_MAX; G4cout << "G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength() - "; G4cout << "[ " << GetProcessName() << "]" << G4endl; track.GetDynamicParticle()->DumpInfo(); G4cout << " in Material " << track.GetMaterial()->GetName() << G4endl; - G4cout << "MeanLifeTime = " << currentInteractionLength/ns << "[ns]" + G4cout << "MeanLifeTime = " << t << " [ns]" << G4endl; } #endif - return theNumberOfInteractionLengthLeft * currentInteractionLength; + return time; } // -------------------------------------------------------------------- diff --git a/source/processes/management/src/G4VRestProcess.cc b/source/processes/management/src/G4VRestProcess.cc index 0f484f6423..cee1cb0727 100644 --- a/source/processes/management/src/G4VRestProcess.cc +++ b/source/processes/management/src/G4VRestProcess.cc @@ -79,19 +79,24 @@ AtRestGetPhysicalInteractionLength( const G4Track& track, // get mean life time currentInteractionLength = GetMeanLifeTime(track, condition); + G4double time = (currentInteractionLength < DBL_MAX) ? + theNumberOfInteractionLengthLeft * currentInteractionLength : DBL_MAX; + #ifdef G4VERBOSE if ((currentInteractionLength <0.0) || (verboseLevel>2)) { + G4double t = (currentInteractionLength < DBL_MAX) ? + currentInteractionLength/ns : DBL_MAX; G4cout << "G4VRestProcess::AtRestGetPhysicalInteractionLength() - "; G4cout << "[ " << GetProcessName() << "]" << G4endl; track.GetDynamicParticle()->DumpInfo(); G4cout << " in Material " << track.GetMaterial()->GetName() << G4endl; - G4cout << "MeanLifeTime = " << currentInteractionLength/ns << "[ns]" + G4cout << "MeanLifeTime = " << t << " [ns]" << G4endl; } #endif - return theNumberOfInteractionLengthLeft * currentInteractionLength; + return time; } // -------------------------------------------------------------------- diff --git a/source/processes/optical/History b/source/processes/optical/History index 3112b0e019..0b622ebaa6 100644 --- a/source/processes/optical/History +++ b/source/processes/optical/History @@ -1,8 +1,22 @@ # Category op History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-23 Gabriele Cosmo (op-V11-00-08) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-26 Daren Sawkey (op-V11-00-07) +- G4OpBoundaryProcess. Contribution of Laurie Cappellugola et al, Aix Marseille U. + Calculate reflection/refraction from thin film coating. + +## 2022-10-18 Daren Sawkey (op-V11-00-06) +- G4OpBoundaryProcess: issue warning when step size slightly larger than + geometry tolerance, in which case boundary scattering may be incorrect. + Addresses bug 2510. ## 2022-04-27 Daren Sawkey (op-V11-00-05) - many files: apply clang-tidy recommendations. Use default ctor, auto keyword, diff --git a/source/processes/optical/include/G4OpBoundaryProcess.hh b/source/processes/optical/include/G4OpBoundaryProcess.hh index b14f475e4a..c1d76cfaf2 100644 --- a/source/processes/optical/include/G4OpBoundaryProcess.hh +++ b/source/processes/optical/include/G4OpBoundaryProcess.hh @@ -110,7 +110,10 @@ enum G4OpBoundaryProcessStatus GroundTyvekAirReflection, GroundVM2000AirReflection, GroundVM2000GlueReflection, - Dichroic + Dichroic, + CoatedDielectricReflection, + CoatedDielectricRefraction, + CoatedDielectricFrustratedTransmission }; class G4OpBoundaryProcess : public G4VDiscreteProcess @@ -162,6 +165,7 @@ class G4OpBoundaryProcess : public G4VDiscreteProcess void DielectricLUTDAVIS(); void DielectricDichroic(); + void CoatedDielectricDielectric(); void ChooseReflection(); void DoAbsorption(); @@ -173,7 +177,12 @@ class G4OpBoundaryProcess : public G4VDiscreteProcess G4double GetReflectivity(G4double E1_perp, G4double E1_parl, G4double incidentangle, G4double RealRindex, G4double ImaginaryRindex); - // Returns the Reflectivity on a metalic surface + // Returns the Reflectivity on a metallic surface + + G4double GetReflectivityThroughThinLayer(G4double sinTL, G4double E1_perp, + G4double E1_parl, G4double wavelength, + G4double cost1, G4double cost2); + // Returns the Reflectivity on a coated surface void CalculateReflectivity(); @@ -214,12 +223,17 @@ class G4OpBoundaryProcess : public G4VDiscreteProcess G4double fProb_sl, fProb_ss, fProb_bs; G4double fCarTolerance; + // Used by CoatedDielectricDielectric() + G4double fCoatedRindex, fCoatedThickness; + G4OpBoundaryProcessStatus fStatus; G4OpticalSurfaceModel fModel; G4OpticalSurfaceFinish fFinish; G4int f_iTE, f_iTM; + G4int fNumWarnings; // number of times small step warning printed + size_t idx_dichroicX = 0; size_t idx_dichroicY = 0; size_t idx_rindex1 = 0; @@ -234,6 +248,10 @@ class G4OpBoundaryProcess : public G4VDiscreteProcess size_t idx_groupvel = 0; size_t idx_rrindex = 0; size_t idx_irindex = 0; + size_t idx_coatedrindex = 0; + + // Used by CoatedDielectricDielectric() + G4bool fCoatedFrustratedTransmission = true; G4bool fInvokeSD; }; diff --git a/source/processes/optical/include/G4OpWLS.hh b/source/processes/optical/include/G4OpWLS.hh index 2fe0d6956c..5c0076a6b8 100644 --- a/source/processes/optical/include/G4OpWLS.hh +++ b/source/processes/optical/include/G4OpWLS.hh @@ -94,7 +94,7 @@ class G4OpWLS : public G4VDiscreteProcess G4OpWLS(const G4OpWLS& right) = delete; G4OpWLS& operator=(const G4OpWLS& right) = delete; - size_t idx_wls = 0; + std::size_t idx_wls = 0; }; //////////////////// @@ -113,10 +113,10 @@ inline G4PhysicsTable* G4OpWLS::GetIntegralTable() const inline void G4OpWLS::DumpPhysicsTable() const { - G4int PhysicsTableSize = theIntegralTable->entries(); + std::size_t PhysicsTableSize = theIntegralTable->entries(); G4PhysicsFreeVector* v; - for(G4int i = 0; i < PhysicsTableSize; ++i) + for(std::size_t i = 0; i < PhysicsTableSize; ++i) { v = (G4PhysicsFreeVector*) (*theIntegralTable)[i]; v->DumpValues(); diff --git a/source/processes/optical/include/G4OpWLS2.hh b/source/processes/optical/include/G4OpWLS2.hh index fbf1f5dd00..d25390aa24 100644 --- a/source/processes/optical/include/G4OpWLS2.hh +++ b/source/processes/optical/include/G4OpWLS2.hh @@ -94,7 +94,7 @@ class G4OpWLS2 : public G4VDiscreteProcess G4OpWLS2(const G4OpWLS2& right) = delete; G4OpWLS2& operator=(const G4OpWLS2& right) = delete; - size_t idx_wls2 = 0; + std::size_t idx_wls2 = 0; }; //////////////////// @@ -113,10 +113,10 @@ inline G4PhysicsTable* G4OpWLS2::GetIntegralTable() const inline void G4OpWLS2::DumpPhysicsTable() const { - G4int PhysicsTableSize = theIntegralTable->entries(); + std::size_t PhysicsTableSize = theIntegralTable->entries(); G4PhysicsFreeVector* v; - for(G4int i = 0; i < PhysicsTableSize; ++i) + for(std::size_t i = 0; i < PhysicsTableSize; ++i) { v = (G4PhysicsFreeVector*) (*theIntegralTable)[i]; v->DumpValues(); diff --git a/source/processes/optical/src/G4OpBoundaryProcess.cc b/source/processes/optical/src/G4OpBoundaryProcess.cc index 8701ee0468..1b83825cb6 100644 --- a/source/processes/optical/src/G4OpBoundaryProcess.cc +++ b/source/processes/optical/src/G4OpBoundaryProcess.cc @@ -123,6 +123,8 @@ G4OpBoundaryProcess::G4OpBoundaryProcess(const G4String& processName, fRindex1 = fRindex2 = 1.; fSint1 = 0.; fDichroicVector = nullptr; + + fNumWarnings = 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -183,7 +185,8 @@ G4VParticleChange* G4OpBoundaryProcess::PostStepDoIt(const G4Track& aTrack, G4cout << " thePostPV: " << thePostPV->GetName() << G4endl; } - if(aTrack.GetStepLength() <= fCarTolerance) + G4double stepLength = aTrack.GetStepLength(); + if(stepLength <= fCarTolerance) { fStatus = StepTooSmall; if(verboseLevel > 1) @@ -203,6 +206,23 @@ G4VParticleChange* G4OpBoundaryProcess::PostStepDoIt(const G4Track& aTrack, } return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); } + else if (stepLength <= 10.*fCarTolerance && fNumWarnings < 10) + { // see bug 2510 + ++fNumWarnings; + { + G4ExceptionDescription ed; + ed << "G4OpBoundaryProcess: " + << "Opticalphoton step length: " << stepLength/mm << " mm." << G4endl + << "This is larger than the threshold " << fCarTolerance/mm << " mm " + "to set status StepTooSmall." << G4endl + << "Boundary scattering may be incorrect. "; + if(fNumWarnings == 10) + { + ed << G4endl << "*** Step size warnings stopped."; + } + G4Exception("G4OpBoundaryProcess", "OpBoun06", JustWarning, ed, ""); + } + } const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); @@ -485,6 +505,10 @@ G4VParticleChange* G4OpBoundaryProcess::PostStepDoIt(const G4Track& aTrack, { DielectricDichroic(); } + else if(type == coated) + { + CoatedDielectricDielectric(); + } else { G4ExceptionDescription ed; @@ -611,6 +635,13 @@ void G4OpBoundaryProcess::BoundaryProcessVerbose() const G4cout << "NoRINDEX"; else if(fStatus == Dichroic) G4cout << "Dichroic Transmission"; + else if(fStatus == CoatedDielectricReflection) + G4cout << "Coated Dielectric Reflection"; + else if(fStatus == CoatedDielectricRefraction) + G4cout << "Coated Dielectric Refraction"; + else if(fStatus == CoatedDielectricFrustratedTransmission) + G4cout << "Coated Dielectric Frustrated Transmission"; + G4cout << " ***" << G4endl; } @@ -812,14 +843,14 @@ void G4OpBoundaryProcess::DielectricLUT() // Calculate Angle between Normal and Photon Momentum G4double anglePhotonToNormal = fOldMomentum.angle(-fGlobalNormal); // Round to closest integer: LBNL model array has 91 values - G4int angleIncident = std::lrint(anglePhotonToNormal / CLHEP::deg); + G4int angleIncident = (G4int)std::lrint(anglePhotonToNormal / CLHEP::deg); // Take random angles THETA and PHI, // and see if below Probability - if not - Redo do { - thetaIndex = G4RandFlat::shootInt(thetaIndexMax - 1); - phiIndex = G4RandFlat::shootInt(phiIndexMax - 1); + thetaIndex = (G4int)G4RandFlat::shootInt(thetaIndexMax - 1); + phiIndex = (G4int)G4RandFlat::shootInt(phiIndexMax - 1); // Find probability with the new indeces from LUT angularDistVal = fOpticalSurface->GetAngularDistributionValue( angleIncident, thetaIndex, phiIndex); @@ -892,7 +923,7 @@ void G4OpBoundaryProcess::DielectricLUTDAVIS() do { - random = G4RandFlat::shootInt(1, lutbin + 1); + random = (G4int)G4RandFlat::shootInt(1, lutbin + 1); angindex = (((random * 2) - 1)) + angleIncident * lutbin * 2 + 3640000; @@ -927,7 +958,7 @@ void G4OpBoundaryProcess::DielectricLUTDAVIS() do { - random = G4RandFlat::shootInt(1, lutbin + 1); + random = (G4int)G4RandFlat::shootInt(1, lutbin + 1); angindex = (((random * 2) - 1)) + (angleIncident - 1) * lutbin * 2; azimuth = fOpticalSurface->GetAngularDistributionValueLUT(angindex - 1); @@ -1393,7 +1424,6 @@ G4double G4OpBoundaryProcess::GetReflectivity(G4double E1_perp, } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void G4OpBoundaryProcess::CalculateReflectivity() { G4double realRindex = fRealRIndexMPV->Value(fPhotonMomentum, idx_rrindex); @@ -1474,3 +1504,312 @@ void G4OpBoundaryProcess::SetVerboseLevel(G4int verbose) verboseLevel = verbose; G4OpticalParameters::Instance()->SetBoundaryVerboseLevel(verboseLevel); } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +void G4OpBoundaryProcess::CoatedDielectricDielectric() +{ + G4MaterialPropertyVector* pp = nullptr; + + G4MaterialPropertiesTable* MPT = fMaterial2->GetMaterialPropertiesTable(); + if((pp = MPT->GetProperty(kRINDEX))) + { + fRindex2 = pp->Value(fPhotonMomentum, idx_rindex2); + } + + MPT = fOpticalSurface->GetMaterialPropertiesTable(); + if((pp = MPT->GetProperty(kCOATEDRINDEX))) + { + fCoatedRindex = pp->Value(fPhotonMomentum, idx_coatedrindex); + } + if(MPT->ConstPropertyExists(kCOATEDTHICKNESS)) + { + fCoatedThickness = MPT->GetConstProperty(kCOATEDTHICKNESS); + } + if(MPT->ConstPropertyExists(kCOATEDFRUSTRATEDTRANSMISSION)) + { + fCoatedFrustratedTransmission = + (G4bool)MPT->GetConstProperty(kCOATEDFRUSTRATEDTRANSMISSION); + } + + G4double sintTL; + G4double wavelength = h_Planck * c_light / fPhotonMomentum; + G4double PdotN; + G4double E1_perp, E1_parl; + G4double s1, E2_perp, E2_parl, E2_total, transCoeff; + G4double E2_abs, C_parl, C_perp; + G4double alpha; + G4ThreeVector A_trans, A_paral, E1pp, E1pl; + //G4bool Inside = false; + //G4bool Swap = false; + G4bool through = false; + G4bool done = false; + + do { + if (through) + { + //Swap = !Swap; + through = false; + fGlobalNormal = -fGlobalNormal; + G4SwapPtr(fMaterial1, fMaterial2); + G4SwapObj(&fRindex1, &fRindex2); + } + + if(fFinish == polished) + { + fFacetNormal = fGlobalNormal; + } + else + { + fFacetNormal = GetFacetNormal(fOldMomentum, fGlobalNormal); + } + + PdotN = fOldMomentum * fFacetNormal; + G4double cost1 = -PdotN; + G4double sint2, cost2 = 0.; + + if (std::abs(cost1) < 1.0 - fCarTolerance) + { + fSint1 = std::sqrt(1. - cost1 * cost1); + sint2 = fSint1 * fRindex1 / fRindex2; + sintTL = fSint1 * fRindex1 / fCoatedRindex; + } else + { + fSint1 = 0.0; + sint2 = 0.0; + sintTL = 0.0; + } + + if (fSint1 > 0.0) + { + A_trans = fOldMomentum.cross(fFacetNormal); + A_trans = A_trans.unit(); + E1_perp = fOldPolarization * A_trans; + E1pp = E1_perp * A_trans; + E1pl = fOldPolarization - E1pp; + E1_parl = E1pl.mag(); + } + else + { + A_trans = fOldPolarization; + E1_perp = 0.0; + E1_parl = 1.0; + } + + s1 = fRindex1 * cost1; + + if (cost1 > 0.0) + { + cost2 = std::sqrt(1. - sint2 * sint2); + } + else + { + cost2 = -std::sqrt(1. - sint2 * sint2); + } + + transCoeff = 0.0; + + if (sintTL >= 1.0) + { // --> Angle > Angle Limit + //Swap = false; + } + E2_perp = 2. * s1 * E1_perp / (fRindex1 * cost1 + fRindex2 * cost2); + E2_parl = 2. * s1 * E1_parl / (fRindex2 * cost1 + fRindex1 * cost2); + E2_total = E2_perp * E2_perp + E2_parl * E2_parl; + + transCoeff = 1. - GetReflectivityThroughThinLayer( + sintTL, E1_perp, E1_parl, wavelength, cost1, cost2); + if (!G4BooleanRand(transCoeff)) + { + if(verboseLevel > 2) + G4cout << "Reflection from " << fMaterial1->GetName() << " to " + << fMaterial2->GetName() << G4endl; + + //Swap = false; + + if (sintTL >= 1.0) + { + fStatus = TotalInternalReflection; + } + else + { + fStatus = CoatedDielectricReflection; + } + + PdotN = fOldMomentum * fFacetNormal; + fNewMomentum = fOldMomentum - (2. * PdotN) * fFacetNormal; + + if (fSint1 > 0.0) { // incident ray oblique + + E2_parl = fRindex2 * E2_parl / fRindex1 - E1_parl; + E2_perp = E2_perp - E1_perp; + E2_total = E2_perp * E2_perp + E2_parl * E2_parl; + A_paral = fNewMomentum.cross(A_trans); + A_paral = A_paral.unit(); + E2_abs = std::sqrt(E2_total); + C_parl = E2_parl / E2_abs; + C_perp = E2_perp / E2_abs; + + fNewPolarization = C_parl * A_paral + C_perp * A_trans; + + } + else + { // incident ray perpendicular + if (fRindex2 > fRindex1) + { + fNewPolarization = -fOldPolarization; + } + else + { + fNewPolarization = fOldPolarization; + } + } + + } else { // photon gets transmitted + if (verboseLevel > 2) + G4cout << "Transmission from " << fMaterial1->GetName() << " to " + << fMaterial2->GetName() << G4endl; + + //Inside = !Inside; + through = true; + + if (fEfficiency > 0.) + { + DoAbsorption(); + return; + } + else + { + if (sintTL >= 1.0) + { + fStatus = CoatedDielectricFrustratedTransmission; + } + else + { + fStatus = CoatedDielectricRefraction; + } + + if (fSint1 > 0.0) { // incident ray oblique + + alpha = cost1 - cost2 * (fRindex2 / fRindex1); + fNewMomentum = fOldMomentum + alpha * fFacetNormal; + fNewMomentum = fNewMomentum.unit(); + A_paral = fNewMomentum.cross(A_trans); + A_paral = A_paral.unit(); + E2_abs = std::sqrt(E2_total); + C_parl = E2_parl / E2_abs; + C_perp = E2_perp / E2_abs; + + fNewPolarization = C_parl * A_paral + C_perp * A_trans; + + } + else + { // incident ray perpendicular + fNewMomentum = fOldMomentum; + fNewPolarization = fOldPolarization; + } + } + } + + fOldMomentum = fNewMomentum.unit(); + fOldPolarization = fNewPolarization.unit(); + if ((fStatus == CoatedDielectricFrustratedTransmission) || + (fStatus == CoatedDielectricRefraction)) + { + done = (fNewMomentum * fGlobalNormal <= 0.0); + } + else + { + done = (fNewMomentum * fGlobalNormal >= -fCarTolerance); + } + + } while (!done); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +G4double G4OpBoundaryProcess::GetReflectivityThroughThinLayer(G4double sinTL, + G4double E1_perp, + G4double E1_parl, + G4double wavelength, G4double cost1, G4double cost2) { + G4complex Reflectivity, Reflectivity_TE, Reflectivity_TM; + G4double gammaTL, costTL; + + G4complex i(0, 1); + G4complex rTM, rTE; + G4complex r1toTL, rTLto2; + G4double k0 = 2 * pi / wavelength; + + // Angle > Angle limit + if (sinTL >= 1.0) { + if (fCoatedFrustratedTransmission) { //Frustrated transmission + + if (cost1 > 0.0) + { + gammaTL = std::sqrt(fRindex1 * fRindex1 * fSint1 * fSint1 - + fCoatedRindex * fCoatedRindex); + } + else + { + gammaTL = -std::sqrt(fRindex1 * fRindex1 * fSint1 * fSint1 - + fCoatedRindex * fCoatedRindex); + } + + // TE + r1toTL = (fRindex1 * cost1 - i * gammaTL) / (fRindex1 * cost1 + i * gammaTL); + rTLto2 = (i * gammaTL - fRindex2 * cost2) / (i * gammaTL + fRindex2 * cost2); + if (cost1 != 0.0) + { + rTE = (r1toTL + rTLto2 * std::exp(-2 * k0 * fCoatedThickness * gammaTL)) / + (1.0 + r1toTL * rTLto2 * std::exp(-2 * k0 * fCoatedThickness * gammaTL)); + } + // TM + r1toTL = (fRindex1 * i * gammaTL - fCoatedRindex * fCoatedRindex * cost1) / + (fRindex1 * i * gammaTL + fCoatedRindex * fCoatedRindex * cost1); + rTLto2 = (fCoatedRindex * fCoatedRindex * cost2 - fRindex2 * i * gammaTL) / + (fCoatedRindex * fCoatedRindex * cost2 + fRindex2 * i * gammaTL); + if (cost1 != 0.0) + { + rTM = (r1toTL + rTLto2 * std::exp(-2 * k0 * fCoatedThickness * gammaTL)) / + (1.0 + r1toTL * rTLto2 * std::exp(-2 * k0 * fCoatedThickness * gammaTL)); + } + } + else + { //Total reflection + return(1.); + } + } + + // Angle <= Angle limit + else //if (sinTL < 1.0) + { + if (cost1 > 0.0) + { + costTL = std::sqrt(1. - sinTL * sinTL); + } + else + { + costTL = -std::sqrt(1. - sinTL * sinTL); + } + // TE + r1toTL = (fRindex1 * cost1 - fCoatedRindex * costTL) / (fRindex1 * cost1 + fCoatedRindex * costTL); + rTLto2 = (fCoatedRindex * costTL - fRindex2 * cost2) / (fCoatedRindex * costTL + fRindex2 * cost2); + if (cost1 != 0.0) + { + rTE = (r1toTL + rTLto2 * std::exp(2.0 * i * k0 * fCoatedRindex * fCoatedThickness * costTL)) / + (1.0 + r1toTL * rTLto2 * std::exp(2.0 * i * k0 * fCoatedRindex * fCoatedThickness * costTL)); + } + // TM + r1toTL = (fRindex1 * costTL - fCoatedRindex * cost1) / (fRindex1 * costTL + fCoatedRindex * cost1); + rTLto2 = (fCoatedRindex * cost2 - fRindex2 * costTL) / (fCoatedRindex * cost2 + fRindex2 * costTL); + if (cost1 != 0.0) + { + rTM = (r1toTL + rTLto2 * std::exp(2.0 * i * k0 * fCoatedRindex * fCoatedThickness * costTL)) / + (1.0 + r1toTL * rTLto2 * std::exp(2.0 * i * k0 * fCoatedRindex * fCoatedThickness * costTL)); + } + } + + Reflectivity_TE = (rTE * conj(rTE)) * (E1_perp * E1_perp) / (E1_perp * E1_perp + E1_parl * E1_parl); + Reflectivity_TM = (rTM * conj(rTM)) * (E1_parl * E1_parl) / (E1_perp * E1_perp + E1_parl * E1_parl); + Reflectivity = Reflectivity_TE + Reflectivity_TM; + + return real(Reflectivity); +} diff --git a/source/processes/optical/src/G4OpWLS.cc b/source/processes/optical/src/G4OpWLS.cc index 606802ccde..f8b6dd15cf 100644 --- a/source/processes/optical/src/G4OpWLS.cc +++ b/source/processes/optical/src/G4OpWLS.cc @@ -211,7 +211,7 @@ G4VParticleChange* G4OpWLS::PostStepDoIt(const G4Track& aTrack, proposedSecondaries.push_back(secTrack); } - aParticleChange.SetNumberOfSecondaries(proposedSecondaries.size()); + aParticleChange.SetNumberOfSecondaries((G4int)proposedSecondaries.size()); for(auto sec : proposedSecondaries) { aParticleChange.AddSecondary(sec); @@ -236,11 +236,11 @@ void G4OpWLS::BuildPhysicsTable(const G4ParticleDefinition&) } const G4MaterialTable* materialTable = G4Material::GetMaterialTable(); - G4int numOfMaterials = G4Material::GetNumberOfMaterials(); + std::size_t numOfMaterials = G4Material::GetNumberOfMaterials(); theIntegralTable = new G4PhysicsTable(numOfMaterials); // loop for materials - for(G4int i = 0; i < numOfMaterials; ++i) + for(std::size_t i = 0; i < numOfMaterials; ++i) { auto physVector = new G4PhysicsFreeVector(); @@ -270,7 +270,7 @@ void G4OpWLS::BuildPhysicsTable(const G4ParticleDefinition&) // loop over all (photon energy, intensity) // pairs stored for this material - for(size_t j = 1; j < wlsVector->GetVectorLength(); ++j) + for(std::size_t j = 1; j < wlsVector->GetVectorLength(); ++j) { currentPM = wlsVector->Energy(j); currentIN = (*wlsVector)[j]; diff --git a/source/processes/optical/src/G4OpWLS2.cc b/source/processes/optical/src/G4OpWLS2.cc index 0b96d02fcd..b9f7f05497 100644 --- a/source/processes/optical/src/G4OpWLS2.cc +++ b/source/processes/optical/src/G4OpWLS2.cc @@ -215,7 +215,7 @@ G4VParticleChange* G4OpWLS2::PostStepDoIt(const G4Track& aTrack, proposedSecondaries.push_back(secTrack); } - aParticleChange.SetNumberOfSecondaries(proposedSecondaries.size()); + aParticleChange.SetNumberOfSecondaries((G4int)proposedSecondaries.size()); for(auto sec : proposedSecondaries) { aParticleChange.AddSecondary(sec); @@ -240,11 +240,11 @@ void G4OpWLS2::BuildPhysicsTable(const G4ParticleDefinition&) } const G4MaterialTable* materialTable = G4Material::GetMaterialTable(); - G4int numOfMaterials = G4Material::GetNumberOfMaterials(); + std::size_t numOfMaterials = G4Material::GetNumberOfMaterials(); theIntegralTable = new G4PhysicsTable(numOfMaterials); // loop for materials - for(G4int i = 0; i < numOfMaterials; ++i) + for(std::size_t i = 0; i < numOfMaterials; ++i) { auto physVector = new G4PhysicsFreeVector(); @@ -274,7 +274,7 @@ void G4OpWLS2::BuildPhysicsTable(const G4ParticleDefinition&) // loop over all (photon energy, intensity) // pairs stored for this material - for(size_t j = 1; j < wlsVector->GetVectorLength(); ++j) + for(std::size_t j = 1; j < wlsVector->GetVectorLength(); ++j) { currentPM = wlsVector->Energy(j); currentIN = (*wlsVector)[j]; diff --git a/source/processes/parameterisation/History b/source/processes/parameterisation/History index d84b1c72f0..d9b7101e12 100644 --- a/source/processes/parameterisation/History +++ b/source/processes/parameterisation/History @@ -1,8 +1,19 @@ # Category param History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-23 Gabriele Cosmo (param-V11-00-04) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-27 Makoto Asai (param-V11-00-03) +- G4FastSimHitMaker - making compatible to command-based scorer + +## 2022-08-24 Vladimir Ivanchenko (param-V11-00-02) +- G4FastStep - delete copy constructor and operators ## 2022-01-19 Witek Pokorski (param-V11-00-01) - Adding the 'flush' method to the fast simulation models. diff --git a/source/processes/parameterisation/include/G4FastSimHitMaker.hh b/source/processes/parameterisation/include/G4FastSimHitMaker.hh index dd1cf69158..764ddc55fa 100644 --- a/source/processes/parameterisation/include/G4FastSimHitMaker.hh +++ b/source/processes/parameterisation/include/G4FastSimHitMaker.hh @@ -31,6 +31,9 @@ #include "G4Navigator.hh" #include "G4FastHit.hh" #include "G4FastTrack.hh" +class G4Step; +class G4StepPoint; +class G4VProcess; /** * @brief Helper class for hit creation @@ -63,6 +66,7 @@ class G4FastSimHitMaker { fWorldWithSdName = aName; }; + inline void SetProcess(G4VProcess* proc) { fpProcess = proc; } private: /// Touchable @@ -74,5 +78,9 @@ class G4FastSimHitMaker /// Name of the world containing the sensitive detector. If empty, default /// mass world is used. G4String fWorldWithSdName; + + G4Step* fpSpotS; + G4StepPoint* fpSpotP; + G4VProcess* fpProcess = nullptr; }; -#endif \ No newline at end of file +#endif diff --git a/source/processes/parameterisation/include/G4FastStep.hh b/source/processes/parameterisation/include/G4FastStep.hh index 4ae9ace3ee..f7dec02645 100644 --- a/source/processes/parameterisation/include/G4FastStep.hh +++ b/source/processes/parameterisation/include/G4FastStep.hh @@ -283,14 +283,8 @@ public: // Without description G4FastStep(); virtual ~G4FastStep(); - // equal/unequal operator - G4bool operator==(const G4FastStep &right) const; - G4bool operator!=(const G4FastStep &right) const; - -protected: - // hide copy constructor and assignment operator as protected - G4FastStep (const G4FastStep &right); - G4FastStep & operator= (const G4FastStep &right); + G4FastStep (const G4FastStep &right) = delete; + G4FastStep & operator= (const G4FastStep &right) = delete; public: // =============================================== diff --git a/source/processes/parameterisation/src/G4FastSimHitMaker.cc b/source/processes/parameterisation/src/G4FastSimHitMaker.cc index 242ebac3a4..0fbe9c1016 100644 --- a/source/processes/parameterisation/src/G4FastSimHitMaker.cc +++ b/source/processes/parameterisation/src/G4FastSimHitMaker.cc @@ -29,6 +29,8 @@ #include "G4TransportationManager.hh" #include "G4VSensitiveDetector.hh" #include "G4TouchableHandle.hh" +#include "G4Step.hh" +#include "G4StepPoint.hh" #include "G4VFastSimSensitiveDetector.hh" @@ -38,11 +40,23 @@ G4FastSimHitMaker::G4FastSimHitMaker() fpNavigator = new G4Navigator(); fNaviSetup = false; fWorldWithSdName = ""; + fpSpotS = new G4Step(); + fpSpotP = new G4StepPoint(); + // N.B. Pre and Post step points are common. + fpSpotS->SetPreStepPoint(fpSpotP); + fpSpotS->SetPostStepPoint(fpSpotP); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4FastSimHitMaker::~G4FastSimHitMaker() { delete fpNavigator; } +G4FastSimHitMaker::~G4FastSimHitMaker() +{ + delete fpNavigator; + delete fpSpotP; + fpSpotS->ResetPreStepPoint(); + fpSpotS->ResetPostStepPoint(); + delete fpSpotS; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -86,10 +100,9 @@ void G4FastSimHitMaker::make(const G4FastHit& aHit, const G4FastTrack& aTrack) } G4VPhysicalVolume* currentVolume = fTouchableHandle()->GetVolume(); - G4VSensitiveDetector* sensitive; if(currentVolume != 0) { - sensitive = currentVolume->GetLogicalVolume()->GetSensitiveDetector(); + G4VSensitiveDetector* sensitive = currentVolume->GetLogicalVolume()->GetSensitiveDetector(); G4VFastSimSensitiveDetector* fastSimSensitive = dynamic_cast(sensitive); if(fastSimSensitive) @@ -99,13 +112,17 @@ void G4FastSimHitMaker::make(const G4FastHit& aHit, const G4FastTrack& aTrack) else if(sensitive && currentVolume->GetLogicalVolume()->GetFastSimulationManager()) { - G4cerr << "ERROR - G4FastSimHitMaker::make()" << G4endl - << " It is required to derive from the " << G4endl - << " G4VFastSimSensitiveDetector in " << G4endl - << " addition to the usual G4VSensitiveDetector class." - << G4endl; - G4Exception("G4FastSimHitMaker::make()", "InvalidSetup", FatalException, - "G4VFastSimSensitiveDetector interface not implemented."); + fpSpotS->SetTotalEnergyDeposit(aHit.GetEnergy()); + fpSpotS->SetTrack(const_cast(aTrack.GetPrimaryTrack())); + fpSpotP->SetWeight(aTrack.GetPrimaryTrack()->GetWeight()); + fpSpotP->SetPosition(aHit.GetPosition()); + fpSpotP->SetGlobalTime(aTrack.GetPrimaryTrack()->GetGlobalTime()); + fpSpotP->SetLocalTime(aTrack.GetPrimaryTrack()->GetLocalTime()); + fpSpotP->SetProperTime(aTrack.GetPrimaryTrack()->GetProperTime()); + fpSpotP->SetTouchableHandle(fTouchableHandle); + fpSpotP->SetProcessDefinedStep(fpProcess); + fpSpotP->SetStepStatus(fUserDefinedLimit); + sensitive->Hit(fpSpotS); } } } diff --git a/source/processes/parameterisation/src/G4FastSimulationManager.cc b/source/processes/parameterisation/src/G4FastSimulationManager.cc index 5b96d8da16..c091eb2ce1 100644 --- a/source/processes/parameterisation/src/G4FastSimulationManager.cc +++ b/source/processes/parameterisation/src/G4FastSimulationManager.cc @@ -86,16 +86,16 @@ G4FastSimulationManager::~G4FastSimulationManager() G4bool G4FastSimulationManager::ActivateFastSimulationModel(const G4String& aName) { - size_t iModel; + G4int iModel; // If the model is already active, do nothing. - for (iModel=0; iModelGetName() == aName) return true; // Look for in the fInactivatedModels list, if found push_back it back to // the ModelList - for (iModel=0; iModelGetName() == aName) { ModelList. push_back (fInactivatedModels.removeAt(iModel)); @@ -111,10 +111,9 @@ G4FastSimulationManager::InActivateFastSimulationModel(const G4String& aName) { // Look for in the ModelList, if found remove from it and keep the pointer // on the fInactivatedModels list. - for (size_t iModel=0; iModelGetName() == aName) { - fInactivatedModels. - push_back (ModelList.removeAt(iModel)); + fInactivatedModels.push_back (ModelList.removeAt(iModel)); // forces the fApplicableModelList to be rebuild fLastCrossedParticle=0; return true; @@ -128,7 +127,7 @@ G4FastSimulationManager::GetFastSimulationModel(const G4String& modelName, bool &foundPrevious) const { G4VFastSimulationModel* model = 0; - for (size_t iModel=0; iModelGetName() == modelName) { @@ -157,7 +156,7 @@ G4FastSimulationManager::GetFastSimulationModel(const G4String& modelName, void G4FastSimulationManager::FlushModels() { - for (size_t iModel=0; iModelFlush(); } @@ -192,7 +191,7 @@ G4FastSimulationManager:: PostStepGetFastSimulationManagerTrigger(const G4Track& track, const G4Navigator* theNavigator) { - size_t iModel; + std::size_t iModel; // If particle type changed re-build the fApplicableModelList. if(fLastCrossedParticle!=track.GetDefinition()) { @@ -200,7 +199,7 @@ PostStepGetFastSimulationManagerTrigger(const G4Track& track, fApplicableModelList.clear(); // If Model List is empty, do nothing ! if(ModelList.size()==0) return false; - for (iModel=0; iModelIsApplicable(*(track.GetDefinition()))) fApplicableModelList.push_back (ModelList[iModel]); } @@ -216,7 +215,7 @@ PostStepGetFastSimulationManagerTrigger(const G4Track& track, if(fFastTrack.OnTheBoundaryButExiting()) return false; // Loops on the ModelTrigger() methods - for (iModel=0; iModelIsApplicable(*(track.GetDefinition()))) fApplicableModelList.push_back (ModelList[iModel]); } @@ -281,7 +280,7 @@ G4FastSimulationManager::AtRestGetFastSimulationManagerTrigger(const G4Track& tr // -- is irrelevant here) // Loops on the models to see if one of them wants to trigger: - for (iModel=0; iModel < fApplicableModelList.size(); iModel++) + for (iModel=0; iModel < fApplicableModelList.size(); ++iModel) if(fApplicableModelList[iModel]->AtRestModelTrigger(fFastTrack)) { fFastStep.Initialize(fFastTrack); @@ -314,28 +313,28 @@ G4FastSimulationManager::ListTitle() const void G4FastSimulationManager::ListModels() const { - size_t iModel; + std::size_t iModel; G4cout << "Current Models for the "; ListTitle(); G4cout << " envelope:\n"; - for (iModel=0; iModelGetName() << "\n"; - for (iModel=0; iModelGetName() << "(inactivated)\n"; } void G4FastSimulationManager::ListModels(const G4String& modelName) const { - size_t iModel; + std::size_t iModel; G4int titled = 0; G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); // Active Models - for ( iModel=0; iModelGetName() == modelName || modelName == "all" ) { if( !(titled++) ) @@ -359,7 +358,7 @@ void G4FastSimulationManager::ListModels(const G4String& modelName) const } // Inactive Models - for (iModel=0; iModelGetName() == modelName || modelName == "all" ) { if( !(titled++) ) @@ -385,11 +384,11 @@ void G4FastSimulationManager::ListModels(const G4String& modelName) const void G4FastSimulationManager::ListModels(const G4ParticleDefinition* particleDefinition) const { - size_t iModel; + std::size_t iModel; G4bool unique = true; // Active Models - for ( iModel=0; iModelIsApplicable(*particleDefinition) ) { G4cout << "Envelope "; @@ -403,7 +402,7 @@ void G4FastSimulationManager::ListModels(const G4ParticleDefinition* particleDef } // Inactive Models - for ( iModel=0; iModelIsApplicable(*particleDefinition) ) { G4cout << "Envelope "; diff --git a/source/processes/parameterisation/src/G4FastStep.cc b/source/processes/parameterisation/src/G4FastStep.cc index a49aecbbf6..df1239c11b 100644 --- a/source/processes/parameterisation/src/G4FastStep.cc +++ b/source/processes/parameterisation/src/G4FastStep.cc @@ -311,52 +311,6 @@ G4FastStep::~G4FastStep() } } -// copy and assignment operators are implemented as "shallow copy" -G4FastStep::G4FastStep(const G4FastStep &right) - : G4VParticleChange() -{ - *this = right; -} - - -G4FastStep & G4FastStep::operator=(const G4FastStep &right) -{ - if (this != &right) - { - G4VParticleChange::operator=(right); - theListOfSecondaries = right.theListOfSecondaries; - theSizeOftheListOfSecondaries = right.theSizeOftheListOfSecondaries; - theNumberOfSecondaries = right.theNumberOfSecondaries; - theStatusChange = right.theStatusChange; - theMomentumChange = right.theMomentumChange; - thePolarizationChange = right.thePolarizationChange; - thePositionChange = right.thePositionChange; - theProperTimeChange = right.theProperTimeChange; - theTimeChange = right.theTimeChange; - theEnergyChange = right.theEnergyChange; - theTrueStepLength = right.theTrueStepLength; - theLocalEnergyDeposit = right.theLocalEnergyDeposit; - theSteppingControlFlag = right.theSteppingControlFlag; - theWeightChange = right.theWeightChange; - fFastTrack = right.fFastTrack; - } - return *this; -} - - - - - -G4bool G4FastStep::operator==(const G4FastStep &right) const -{ - return ((G4VParticleChange *)this == (G4VParticleChange *) &right); -} - -G4bool G4FastStep::operator!=(const G4FastStep &right) const -{ - return ((G4VParticleChange *)this != (G4VParticleChange *) &right); -} - //---------------------------------------------------------------- // methods for updating G4Step // @@ -444,7 +398,7 @@ void G4FastStep::DumpInfo() const G4cout << " Position - z (mm) : " << G4BestUnit( thePositionChange.z(), "Length" ) << G4endl; G4cout << " Time (ns) : " << G4BestUnit( theTimeChange, "Time" ) << G4endl; G4cout << " Proper Time (ns) : " << G4BestUnit( theProperTimeChange, "Time" ) << G4endl; - G4int olprc = G4cout.precision(3); + G4long olprc = G4cout.precision(3); G4cout << " Momentum Direct - x : " << std::setw(20) << theMomentumChange.x() << G4endl; G4cout << " Momentum Direct - y : " << std::setw(20) << theMomentumChange.y() << G4endl; G4cout << " Momentum Direct - z : " << std::setw(20) << theMomentumChange.z() << G4endl; diff --git a/source/processes/parameterisation/src/G4FastTrack.cc b/source/processes/parameterisation/src/G4FastTrack.cc index 24d1913abf..0075b85ae5 100644 --- a/source/processes/parameterisation/src/G4FastTrack.cc +++ b/source/processes/parameterisation/src/G4FastTrack.cc @@ -118,8 +118,8 @@ G4FastTrack::FRecordsAffineTransformation(const G4Navigator* theNavigator) // must be deleted by G4FastTrack. //-------------------------------------------------------- const G4Navigator* NavigatorToUse; - if(theNavigator != 0 ) NavigatorToUse = theNavigator; - else NavigatorToUse = G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking(); + if(theNavigator != nullptr ) NavigatorToUse = theNavigator; + else NavigatorToUse = G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking(); G4TouchableHistoryHandle history = NavigatorToUse->CreateTouchableHistoryHandle(); @@ -127,9 +127,10 @@ G4FastTrack::FRecordsAffineTransformation(const G4Navigator* theNavigator) // Run accross the hierarchy to find the physical volume // associated with the envelope //----------------------------------------------------- - G4int depth = history->GetHistory()->GetDepth(); - G4int idepth, Done = 0; - for (idepth = 0; idepth <= depth; idepth++) + G4int depth = (G4int)history->GetHistory()->GetDepth(); + G4int idepth; + G4bool Done = false; + for (idepth = 0; idepth <= depth; ++idepth) { G4VPhysicalVolume* currPV = history->GetHistory()->GetVolume(idepth); G4LogicalVolume* currLV = currPV->GetLogicalVolume(); @@ -138,14 +139,14 @@ G4FastTrack::FRecordsAffineTransformation(const G4Navigator* theNavigator) fEnvelopePhysicalVolume = currPV; fEnvelopeLogicalVolume = currLV; fEnvelopeSolid = currLV->GetSolid(); - Done = 1; + Done = true; break; } } //--------------------------------------------- //-- Verification: should be removed in future: //--------------------------------------------- - if ( !Done ) + if ( Done == false ) { G4ExceptionDescription ed; ed << "Can't find transformation for `" << fEnvelopePhysicalVolume->GetName() << "'" << G4endl; diff --git a/source/processes/scoring/History b/source/processes/scoring/History index 7b92156976..83de865eca 100644 --- a/source/processes/scoring/History +++ b/source/processes/scoring/History @@ -1,9 +1,13 @@ # Category procscore History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-23 Gabriele Cosmo (procscore-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2022-04-13 Ben Morgan (procscore-V11-00-01) - Add needed dependencies diff --git a/source/processes/scoring/src/G4EnergySplitter.cc b/source/processes/scoring/src/G4EnergySplitter.cc index 04d0a9933d..5ec5098348 100644 --- a/source/processes/scoring/src/G4EnergySplitter.cc +++ b/source/processes/scoring/src/G4EnergySplitter.cc @@ -65,11 +65,11 @@ G4int G4EnergySplitter::SplitEnergyInVolumes(const G4Step* aStep ) #endif if( G4RegularNavigationHelper::Instance()->GetStepLengths().size() == 0 || aStep->GetTrack()->GetDefinition()->GetPDGCharge() == 0) { // we are only counting dose deposit - return theEnergies.size(); + return (G4int)theEnergies.size(); } if( G4RegularNavigationHelper::Instance()->GetStepLengths().size() == 1 ) { theEnergies.push_back(edep); - return theEnergies.size(); + return (G4int)theEnergies.size(); } if( !thePhantomParam ) GetPhantomParam(TRUE); @@ -86,7 +86,7 @@ G4int G4EnergySplitter::SplitEnergyInVolumes(const G4Step* aStep ) G4double stepLength = aStep->GetStepLength(); G4double slSum = 0.; unsigned int ii; - for( ii = 0; ii < rnsl.size(); ii++ ){ + for( ii = 0; ii < rnsl.size(); ++ii ){ G4double sl = rnsl[ii].second; slSum += sl; #ifdef VERBOSE_ENERSPLIT @@ -105,7 +105,7 @@ G4int G4EnergySplitter::SplitEnergyInVolumes(const G4Step* aStep ) #endif //----- No iterations to correct elost and msc => distribute energy deposited according to geometrical step length in each voxel if( theNIterations == 0 ) { - for( ii = 0; ii < rnsl.size(); ii++ ){ + for( ii = 0; ii < rnsl.size(); ++ii ){ G4double sl = rnsl[ii].second; G4double edepStep = edep * sl/slSum; //divide edep along steps, proportional to step length #ifdef VERBOSE_ENERSPLIT @@ -122,7 +122,7 @@ G4int G4EnergySplitter::SplitEnergyInVolumes(const G4Step* aStep ) // print corrected energy at iteration 0 if(verbose) { G4double slSum = 0.; - for( ii = 0; ii < rnsl.size(); ii++ ){ + for( ii = 0; ii < rnsl.size(); ++ii ){ G4double sl = rnsl[ii].second; slSum += sl; } @@ -143,10 +143,10 @@ G4int G4EnergySplitter::SplitEnergyInVolumes(const G4Step* aStep ) G4EmCalculator emcalc; G4double totalELost = 0.; std::vector stepLengths; - for( int iiter = 1; iiter <= theNIterations; iiter++ ) { + for( G4int iiter = 1; iiter <= theNIterations; ++iiter ) { //--- iter1: distribute true step length in each voxel: geom SL in each voxel is multiplied by a constant so that the sum gives the total true step length if( iiter == 1 ) { - for( ii = 0; ii < rnsl.size(); ii++ ){ + for( ii = 0; ii < rnsl.size(); ++ii ){ G4double sl = rnsl[ii].second; stepLengths.push_back( sl * slRatio ); #ifdef VERBOSE_ENERSPLIT @@ -154,7 +154,7 @@ G4int G4EnergySplitter::SplitEnergyInVolumes(const G4Step* aStep ) #endif } - for( ii = 0; ii < rnsl.size(); ii++ ){ + for( ii = 0; ii < rnsl.size(); ++ii ){ const G4Material* mate = thePhantomParam->GetMaterial( rnsl[ii].first ); G4double dEdx = 0.; if( kinEnergyPre > 0. ) { //t check this @@ -179,7 +179,7 @@ G4int G4EnergySplitter::SplitEnergyInVolumes(const G4Step* aStep ) //-- Get ratios for each energy slSum = 0.; kinEnergyPre = kinEnergyPreOrig; - for( ii = 0; ii < rnsl.size(); ii++ ){ + for( ii = 0; ii < rnsl.size(); ++ii ){ const G4Material* mate = thePhantomParam->GetMaterial( rnsl[ii].first ); stepLengths[ii] = theElossExt->TrueStepLength( kinEnergyPre, rnsl[ii].second , mate, part ); kinEnergyPre -= theEnergies[ii]; @@ -198,7 +198,7 @@ G4int G4EnergySplitter::SplitEnergyInVolumes(const G4Step* aStep ) #ifdef VERBOSE_ENERSPLIT if(verbose) G4cout << "G4EnergySplitter::SplitEnergyInVolumes" << ii << " RN: iter" << iiter << " step ratio " << slRatio << G4endl; #endif - for( ii = 0; ii < rnsl.size(); ii++ ){ + for( ii = 0; ii < rnsl.size(); ++ii ){ stepLengths[ii] *= slratio; #ifdef VERBOSE_ENERSPLIT if(verbose) G4cout << "G4EnergySplitter::SplitEnergyInVolumes"<< ii << " RN: iter" << iiter << " corrected step length " << stepLengths[ii] << G4endl; @@ -208,7 +208,7 @@ G4int G4EnergySplitter::SplitEnergyInVolumes(const G4Step* aStep ) //---- Recalculate energy lost with this new step lengths kinEnergyPre = aStep->GetPreStepPoint()->GetKineticEnergy(); totalELost = 0.; - for( ii = 0; ii < rnsl.size(); ii++ ){ + for( ii = 0; ii < rnsl.size(); ++ii ){ const G4Material* mate = thePhantomParam->GetMaterial( rnsl[ii].first ); G4double dEdx = 0.; if( kinEnergyPre > 0. ) { @@ -238,7 +238,7 @@ G4int G4EnergySplitter::SplitEnergyInVolumes(const G4Step* aStep ) #ifdef VERBOSE_ENERSPLIT G4double elostTot = 0.; #endif - for( ii = 0; ii < theEnergies.size(); ii++ ){ + for( ii = 0; ii < theEnergies.size(); ++ii ){ theEnergies[ii] *= enerRatio; #ifdef VERBOSE_ENERSPLIT elostTot += theEnergies[ii]; @@ -253,7 +253,7 @@ G4int G4EnergySplitter::SplitEnergyInVolumes(const G4Step* aStep ) } - return theEnergies.size(); + return (G4int)theEnergies.size(); } @@ -261,8 +261,7 @@ G4int G4EnergySplitter::SplitEnergyInVolumes(const G4Step* aStep ) void G4EnergySplitter::GetPhantomParam(G4bool mustExist) { G4PhysicalVolumeStore* pvs = G4PhysicalVolumeStore::GetInstance(); - std::vector::iterator cite; - for( cite = pvs->begin(); cite != pvs->end(); cite++ ) { + for( auto cite = pvs->cbegin(); cite != pvs->cend(); ++cite ) { // G4cout << " PV " << (*cite)->GetName() << " " << (*cite)->GetTranslation() << G4endl; if( IsPhantomVolume( *cite ) ) { const G4PVParameterised* pvparam = static_cast(*cite); @@ -301,13 +300,13 @@ G4bool G4EnergySplitter::IsPhantomVolume( G4VPhysicalVolume* pv ) //----------------------------------------------------------------------- void G4EnergySplitter::GetLastVoxelID( G4int& voxelID) { - voxelID = (*(G4RegularNavigationHelper::Instance()->GetStepLengths().begin())).first; + voxelID = (*(G4RegularNavigationHelper::Instance()->GetStepLengths().cbegin())).first; } //----------------------------------------------------------------------- void G4EnergySplitter::GetFirstVoxelID( G4int& voxelID) { - voxelID = (*(G4RegularNavigationHelper::Instance()->GetStepLengths().rbegin())).first; + voxelID = (*(G4RegularNavigationHelper::Instance()->GetStepLengths().crbegin())).first; } //----------------------------------------------------------------------- @@ -319,7 +318,7 @@ void G4EnergySplitter::GetVoxelID( G4int stepNo, G4int& voxelID ) FatalErrorInArgument, G4String("stepNo = " + G4UIcommand::ConvertToString(stepNo) + ", number of voxels = " + G4UIcommand::ConvertToString(G4int(G4RegularNavigationHelper::Instance()->GetStepLengths().size())) ).c_str()); } - std::vector< std::pair >::const_iterator ite = G4RegularNavigationHelper::Instance()->GetStepLengths().begin(); + std::vector< std::pair >::const_iterator ite = G4RegularNavigationHelper::Instance()->GetStepLengths().cbegin(); advance( ite, stepNo ); voxelID = (*ite).first; @@ -329,7 +328,7 @@ void G4EnergySplitter::GetVoxelID( G4int stepNo, G4int& voxelID ) //----------------------------------------------------------------------- void G4EnergySplitter::GetStepLength( G4int stepNo, G4double& stepLength ) { - std::vector< std::pair >::const_iterator ite = G4RegularNavigationHelper::Instance()->GetStepLengths().begin(); + std::vector< std::pair >::const_iterator ite = G4RegularNavigationHelper::Instance()->GetStepLengths().cbegin(); advance( ite, stepNo ); stepLength = (*ite).second; } diff --git a/source/processes/transportation/History b/source/processes/transportation/History index 389788d803..219004af7d 100644 --- a/source/processes/transportation/History +++ b/source/processes/transportation/History @@ -6,6 +6,32 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-25 Gabriele Cosmo (transport-V11-00-10) +- Removed debug printouts in G4Transportation. + +## 2022-11-23 Gabriele Cosmo (transport-V11-00-09) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-10 John Apostolakis (transport-V11-00-08) +- New class G4TransporationParameters to hold looper parameters & others. + This is a class to be created in master and hold the values of all looper + parameters for G4Transportation and derived classes. + * G4Transporation's constructor checks for the existence of a default + instance. If found, its values will be assigned to the corresponding + data members of G4Transporation. + This behaviour is inherited by subclasses (using this constructor). + * The (default) 'instance' of G4TransportationParameters should be + shared by all threads, and used for all particle types. + These values could be subsequently changed - e.g. in User Actions. + * The G4TransporationParameters object (instance) is current unique. + ( Future extensions are envisioned that allow an object of this + to be associated with a separate instance of G4Transportation assigned + to one or more particle types, e.g. electrons, or muons and positrons. ) + +## 2022-10-05 Gabriele Cosmo (transport-V11-00-07) +- Fixed compilation warnings on Intel/icx compiler for variables set + but not used. + ## 2022-05-18 Gabriele Cosmo (transport-V11-00-06) - `G4Transportation`, `G4CoupledTransportation`: fixed misuse of bitwise '|' operator instead of logical. diff --git a/source/processes/transportation/include/G4TransportationParameters.hh b/source/processes/transportation/include/G4TransportationParameters.hh new file mode 100644 index 0000000000..3269cd4151 --- /dev/null +++ b/source/processes/transportation/include/G4TransportationParameters.hh @@ -0,0 +1,110 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** + +// +// Class Description: +// +// A utility static class, responsable for keeping common parameters +// for all transportation processes. These parameters can be relevant only +// to some types of particles, e.g. only charged particles. +// +// It must initialized only by the master thread. +// It can be updated before the transportation processes have been instantiated or +// after their instantiation. +// Note: It can be updated only if the state of the simulation is PreInit, Init or Idle. +// Parameters may be used in run time or at initialisation +// +// Author: J. Apostolakis Nov 2022 +// ------------------------------------------------------------------- +// + +#ifndef G4TransportationParameters_hh +#define G4TransportationParameters_hh + +#include "globals.hh" + +class G4TransportationParameters +{ +public: + static G4TransportationParameters* Instance(); + + ~G4TransportationParameters() = default; + + G4bool SetNumberOfTrials( G4int val ); + G4bool SetWarningEnergy( G4double val ); + G4bool SetImportantEnergy( G4double val ); + + G4int GetNumberOfTrials() const { return fNumberOfTrials; } + G4double GetWarningEnergy() const { return fWarningEnergy; } + G4double GetImportantEnergy() const { return fImportantEnergy; } + G4bool IsMagneticMomentEnabled() const { return fUseMagneticMoment; } + + G4bool EnableUseOfMagneticMoment(G4bool useMoment=true); + // Whether to deflect particles with force due to magnetic moment + + G4bool SetHighLooperThresholds(); // Shortcut method - old values (meant for HEP) + G4bool SetIntermediateLooperThresholds(); // Intermediate values - also used as default + G4bool SetLowLooperThresholds(); // Set low thresholds - for low-E applications + G4bool SetSilenceAllLooperWarnings(G4bool val=true); + // return value = success or failure of setting the parameter + + G4bool GetSilenceAllLooperWarnings(){ return fSilenceLooperWarnings; } + + // Probe whether the 'default' instance exists, without creating it + static G4bool Exists() { return theInstance != nullptr; } + + // printing + void StreamInfo(std::ostream& os) const; + void Dump() const; + friend std::ostream& operator<< (std::ostream& os, const G4TransportationParameters&); + +private: + G4TransportationParameters(); + // Currently private - but potentially will open it up, to allow per-particle specialisation + + // void Initialise(); + + G4bool IsLocked() const; + + void PrintWarning(G4ExceptionDescription& ed) const; + +private: + static G4TransportationParameters* theInstance; + + // STATE + // Values for initialising 'loopers' parameters of Transport process + G4double fWarningEnergy = -1.0; // Warn above this energy + G4double fImportantEnergy = -1.0; // Give a few trials above this E + G4int fNumberOfTrials = 10; // Number of trials an important looper survives + + // Flags for use of gravity field(s) or fields which interact with the magnetic moment + G4bool fUseMagneticMoment = false; + G4bool fUseGravity = false; + + // Flag to *Supress* all 'looper' warnings + G4bool fSilenceLooperWarnings= false; +}; + +#endif diff --git a/source/processes/transportation/sources.cmake b/source/processes/transportation/sources.cmake index 06526cc869..61a88e09b8 100644 --- a/source/processes/transportation/sources.cmake +++ b/source/processes/transportation/sources.cmake @@ -12,6 +12,7 @@ geant4_add_module(G4transportation G4Transportation.icc G4VTrackTerminator.hh G4TransportationLogger.hh + G4TransportationParameters.hh G4TransportationProcessType.hh SOURCES G4CoupledTransportation.cc @@ -19,6 +20,7 @@ geant4_add_module(G4transportation G4NeutronKillerMessenger.cc G4StepLimiter.cc G4Transportation.cc + G4TransportationParameters.cc G4TransportationLogger.cc G4VTrackTerminator.cc) diff --git a/source/processes/transportation/src/G4CoupledTransportation.cc b/source/processes/transportation/src/G4CoupledTransportation.cc index 9ba7633cbd..fbe6ec7630 100644 --- a/source/processes/transportation/src/G4CoupledTransportation.cc +++ b/source/processes/transportation/src/G4CoupledTransportation.cc @@ -385,13 +385,7 @@ AlongStepGetPhysicalInteractionLength( const G4Track& track, G4double startEnergy= track.GetKineticEnergy(); G4double endEnergy= fTransportEndKineticEnergy; - static G4ThreadLocal G4int no_inexact_steps=0; // , no_large_ediff; G4double absEdiff = std::fabs(startEnergy- endEnergy); - if( absEdiff > perMillion * endEnergy ) - { - no_inexact_steps++; - // Possible statistics keeping here ... - } #ifdef G4VERBOSE if( (verboseLevel > 1) && ( absEdiff > perThousand * endEnergy) ) { diff --git a/source/processes/transportation/src/G4Transportation.cc b/source/processes/transportation/src/G4Transportation.cc index bab1e3ad7e..7b97186e4d 100644 --- a/source/processes/transportation/src/G4Transportation.cc +++ b/source/processes/transportation/src/G4Transportation.cc @@ -59,6 +59,8 @@ #include "G4PropagatorInField.hh" #include "G4TransportationManager.hh" +#include "G4TransportationParameters.hh" + class G4VSensitiveDetector; G4bool G4Transportation::fUseMagneticMoment=false; @@ -93,9 +95,20 @@ G4Transportation::G4Transportation( G4int verbosity, const G4String& aName ) fpLogger = new G4TransportationLogger("G4Transportation", verbosity); - SetHighLooperThresholds(); - // Use the old defaults: Warning = 100 MeV, Important = 250 MeV, No Trials = 10; - + auto trParams= G4TransportationParameters::Instance(); + if( G4TransportationParameters::Exists() ) + { + SetThresholdWarningEnergy( trParams->GetWarningEnergy() ); + SetThresholdWarningEnergy( trParams->GetWarningEnergy() ); + SetThresholdImportantEnergy( trParams->GetImportantEnergy() ); + SetThresholdTrials( trParams->GetNumberOfTrials() ); + G4Transportation::fSilenceLooperWarnings= trParams->GetSilenceAllLooperWarnings(); + } + else { + SetHighLooperThresholds(); + // Use the old defaults: Warning = 100 MeV, Important = 250 MeV, No Trials = 10; + } + PushThresholdsToLogger(); // Should be done by Set methods in SetHighLooperThresholds -- making sure @@ -255,8 +268,8 @@ G4double G4Transportation::AlongStepGetPhysicalInteractionLength( if(currentMinimumStep == 0.0) { fEndPointDistance = 0.0; - fGeometryLimitedStep = false; - + fGeometryLimitedStep = false; // Old code: = (currentSafety == 0.0); + // Changed to avoid problems when setting the step status (now done in AlongStepDoIt) fMomentumChanged = false; fParticleIsLooping = false; fEndGlobalTimeComputed = false; @@ -348,6 +361,8 @@ G4double G4Transportation::AlongStepGetPhysicalInteractionLength( fTransportEndPosition = aFieldTrack.GetPosition(); fTransportEndMomentumDir = aFieldTrack.GetMomentumDir(); + // G4cout << " G4Transport: End of step pMag = " << aFieldTrack.GetMomentum().mag() << G4endl; + fEndPointDistance = (fTransportEndPosition - startPosition).mag(); // Ignore change in energy for fields that conserve energy @@ -377,13 +392,7 @@ G4double G4Transportation::AlongStepGetPhysicalInteractionLength( G4double startEnergy = kineticEnergy; G4double endEnergy = fTransportEndKineticEnergy; - static G4ThreadLocal G4int no_inexact_steps = 0, no_large_ediff; - G4double absEdiff = std::fabs(startEnergy - endEnergy); - if(absEdiff > perMillion * endEnergy) - { - no_inexact_steps++; - // Possible statistics keeping here ... - } + static G4ThreadLocal G4int no_large_ediff; if(verboseLevel > 1) { if(std::fabs(startEnergy - endEnergy) > perThousand * endEnergy) @@ -916,7 +925,7 @@ void G4Transportation::ProcessDescription(std::ostream& outStr) const { G4String indent = " "; // : ""); - G4int oldPrec= outStr.precision(6); + G4long oldPrec= outStr.precision(6); // outStr << std::setprecision(6); outStr << G4endl << indent << GetProcessName() << ": "; diff --git a/source/processes/transportation/src/G4TransportationParameters.cc b/source/processes/transportation/src/G4TransportationParameters.cc new file mode 100644 index 0000000000..962925c889 --- /dev/null +++ b/source/processes/transportation/src/G4TransportationParameters.cc @@ -0,0 +1,204 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// Author: J. Apostolakis Nov 2022 + +#include "G4TransportationParameters.hh" + +#include "G4ApplicationState.hh" +#include "G4StateManager.hh" +#include "G4Threading.hh" +#include "G4AutoLock.hh" + +#include "G4SystemOfUnits.hh" + +G4TransportationParameters* G4TransportationParameters::theInstance = nullptr; + +#ifdef G4MULTITHREADED +namespace +{ + G4Mutex transportParamsMutex = G4MUTEX_INITIALIZER; +} +#endif + +//------------------------------------------------------------------------------ + +G4TransportationParameters::G4TransportationParameters() +{ + SetIntermediateLooperThresholds(); +} + +//------------------------------------------------------------------------------ + +G4TransportationParameters* G4TransportationParameters::Instance() +{ + if(theInstance == nullptr) { + G4MUTEXLOCK(&transportParamsMutex); + if(theInstance == nullptr) { + static G4TransportationParameters manager; + theInstance = &manager; + } + G4MUTEXUNLOCK(&transportParamsMutex); + } + return theInstance; +} + +//------------------------------------------------------------------------------ + +G4bool G4TransportationParameters::IsLocked() const +{ + auto fStateManager = G4StateManager::GetStateManager(); + + auto state = fStateManager->GetCurrentState(); + bool goodState = state == G4State_PreInit + || state == G4State_Init + || state == G4State_Idle ; + return ( !G4Threading::IsMasterThread() || !goodState ); +} + +//------------------------------------------------------------------------------ + +G4bool G4TransportationParameters::SetNumberOfTrials( G4int val ) +{ + if(IsLocked()) { return false; } + fNumberOfTrials = val; + return true; +} + +//------------------------------------------------------------------------------ + +G4bool G4TransportationParameters::SetWarningEnergy( double val ) +{ + if(IsLocked()) { return false; } + fWarningEnergy = val; + + // Consistency check -- and trial fix + if( fWarningEnergy > fImportantEnergy ) + fImportantEnergy = fWarningEnergy; + + return true; +} + +//------------------------------------------------------------------------------ + +G4bool G4TransportationParameters::SetImportantEnergy( double val ) +{ + if(IsLocked()) { return false; } + fImportantEnergy = val; + + // Consistency check -- and trial fix + if( fImportantEnergy < fWarningEnergy ) + fWarningEnergy = fImportantEnergy; + + return true; +} + +//------------------------------------------------------------------------------ + +void G4TransportationParameters::StreamInfo(std::ostream& os) const +{ + auto prec = os.precision(5); + + os << "Transport Parameters: " << G4endl; + os << " Warning energy = " << GetWarningEnergy() / CLHEP::MeV << " MeV " << G4endl; + os << " Important energy = " << GetImportantEnergy() / CLHEP::MeV << " MeV " << G4endl; + os << " Number of trials = " << GetNumberOfTrials() << G4endl; + os.precision(prec); +} + +//------------------------------------------------------------------------------ + +void G4TransportationParameters::Dump() const +{ + G4MUTEXLOCK(&transportParamsMutex); + StreamInfo(G4cout); + G4MUTEXUNLOCK(&transportParamsMutex); +} + +//------------------------------------------------------------------------------ + +G4bool G4TransportationParameters::SetHighLooperThresholds() +{ + if(IsLocked()) { return false; } + + // Restores the old high values -- potentially appropriate for energy-frontier + // HEP experiments. + // Caution: All tracks with E < 100 MeV that are found to loop are + SetWarningEnergy( 100.0 * CLHEP::MeV ); // Warn above this energy + SetImportantEnergy( 250.0 * CLHEP::MeV ); // Extra trial above this En + + G4int maxTrials = 10; + SetNumberOfTrials( maxTrials ); + + return true; +} + +//------------------------------------------------------------------------------ + +G4bool G4TransportationParameters::SetIntermediateLooperThresholds() +{ + if(IsLocked()) { return false; } // Currently must not change during loop - may relax + + // Medium values -- reasonable default for an unknown application + fWarningEnergy= 1.0 * CLHEP::MeV; // Warn above this energy + fImportantEnergy= 10.0 * CLHEP::MeV; // Extra trial above this En + fNumberOfTrials= 10; + return true; +} + +//------------------------------------------------------------------------------ + +G4bool G4TransportationParameters::SetLowLooperThresholds() // Values for low-E applications +{ + if(IsLocked()) { return false; } + + // These values were the default in Geant4 10.5 - beta + SetWarningEnergy( 1.0 * CLHEP::keV ); // Warn above this En + SetImportantEnergy( 1.0 * CLHEP::MeV ); // Extra trials above it + + G4int maxTrials = 30; + SetNumberOfTrials( maxTrials ); + + return true; +} + +//------------------------------------------------------------------------------ + +G4bool G4TransportationParameters::EnableUseOfMagneticMoment(G4bool useMoment) +{ + if(IsLocked()) { return false; } + fUseMagneticMoment= useMoment; + return true; +} + +//------------------------------------------------------------------------------ + + +G4bool G4TransportationParameters::SetSilenceAllLooperWarnings(G4bool val) +{ + if(IsLocked()) { return false; } + fSilenceLooperWarnings= val; + return true; +} diff --git a/source/readout/History b/source/readout/History index 2147250d83..444070c0d6 100644 --- a/source/readout/History +++ b/source/readout/History @@ -1,8 +1,13 @@ # Category readout History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-17 Gabriele Cosmo (readout-V11-00-02) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2022-01-28 Ben Morgan (readout-V11-00-01) - Replace `geant4_global_library_target` with direct file inclusion and diff --git a/source/readout/src/G4DCtable.cc b/source/readout/src/G4DCtable.cc index 845de52ed7..ff86e5a5e7 100644 --- a/source/readout/src/G4DCtable.cc +++ b/source/readout/src/G4DCtable.cc @@ -33,13 +33,15 @@ G4DCtable::G4DCtable() {;} G4DCtable::~G4DCtable() {;} -G4int G4DCtable::Registor(G4String DMname,G4String DCname) +G4int G4DCtable::Registor(G4String DMname, G4String DCname) { - for(int i=0;i=0) return -2; - i = j; + i = (G4int)j; } } } else { - for(int j=0;j=0) return -2; - i = j; + i = (G4int)j; } } } @@ -88,13 +90,14 @@ G4int G4DCtable::GetCollectionID(G4VDigitizerModule* aDM) const << "> has more than one registered digits collections." << G4endl; G4cerr << "Candidates are : "; - for(G4int j=0;jGetNumberOfCollections();j++) + for(G4int j=0; jGetNumberOfCollections(); ++j) { G4cerr << aDM->GetCollectionName(j) << " "; } G4cerr << G4endl; return -1; } - for(size_t k=0;kGetName()) return k; } + for(std::size_t k=0; kGetName()) return (G4int)k; + } return -1; } - diff --git a/source/run/History b/source/run/History index 199d5bef43..928ae628e9 100644 --- a/source/run/History +++ b/source/run/History @@ -1,8 +1,20 @@ # Category run History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-18 Gabriele Cosmo (run-V11-00-11) +- More compilation warnings fixes for implicit type conversions. + +## 2022-11-17 Gabriele Cosmo (run-V11-00-10) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-09-02 Ben Morgan (run-V11-00-09) +- Explicitly check for nullptr before derefencing possible null pointers + - Fixes Coverity 104621, 104660, 104662. ## 2022-05-17 Ben Morgan (run-V11-00-08) - Apply patches from Seth Johnson: diff --git a/source/run/src/G4AdjointSimManager.cc b/source/run/src/G4AdjointSimManager.cc index 6d89524e2e..d12d8b308b 100644 --- a/source/run/src/G4AdjointSimManager.cc +++ b/source/run/src/G4AdjointSimManager.cc @@ -140,8 +140,9 @@ void G4AdjointSimManager::RunAdjointSimulation(G4int nb_evt) // Make the run //------------ nb_evt_of_last_run = nb_evt; - G4RunManager::GetRunManager()->BeamOn( - nb_evt * theAdjointPrimaryGeneratorAction->GetNbOfAdjointPrimaryTypes()); + G4RunManager::GetRunManager() + ->BeamOn( G4int(nb_evt*theAdjointPrimaryGeneratorAction + ->GetNbOfAdjointPrimaryTypes()) ); // Back to Fwd Simulation Mode //-------------------------------- @@ -489,8 +490,8 @@ void G4AdjointSimManager::RegisterAtEndOfAdjointTrack() std::vector* aList = theAdjointPrimaryGeneratorAction->GetListOfPrimaryFwdParticles(); last_fwd_part_index = -1; - std::size_t i = 0; - while(i < aList->size() && last_fwd_part_index < 0) + G4int i = 0; + while(i < (G4int)aList->size() && last_fwd_part_index < 0) { if((*aList)[i]->GetParticleName() == last_fwd_part_name) last_fwd_part_index = i; diff --git a/source/run/src/G4MTRunManager.cc b/source/run/src/G4MTRunManager.cc index fa2d4e08db..c9b5562ec5 100644 --- a/source/run/src/G4MTRunManager.cc +++ b/source/run/src/G4MTRunManager.cc @@ -344,7 +344,7 @@ void G4MTRunManager::CreateAndStartWorkers() std::stringstream ss; ss.fill('='); - ss << std::setw(msg.str().length()) << ""; + ss << std::setw(G4int(msg.str().length())) << ""; G4cout << "\n" << ss.str() << "\n" << msg.str() << "\n" @@ -522,11 +522,11 @@ void G4MTRunManager::ConstructScoringWorlds() G4RunManager::ConstructScoringWorlds(); masterWorlds.clear(); - std::size_t nWorlds = + G4int nWorlds = (G4int) G4TransportationManager::GetTransportationManager()->GetNoWorlds(); auto itrW = G4TransportationManager::GetTransportationManager()->GetWorldsIterator(); - for(std::size_t iWorld = 0; iWorld < nWorlds; ++iWorld) + for(G4int iWorld = 0; iWorld < nWorlds; ++iWorld) { addWorld(iWorld, *itrW); ++itrW; @@ -744,7 +744,7 @@ void G4MTRunManager::AbortEvent() // -------------------------------------------------------------------- void G4MTRunManager::WaitForReadyWorkers() { - beginOfEventLoopBarrier.Wait(GetNumberActiveThreads()); + beginOfEventLoopBarrier.Wait((G4int)GetNumberActiveThreads()); endOfEventLoopBarrier.ResetCounter(); beginOfEventLoopBarrier.ReleaseBarrier(); } @@ -758,7 +758,7 @@ void G4MTRunManager::ThisWorkerReady() // -------------------------------------------------------------------- void G4MTRunManager::WaitForEndEventLoopWorkers() { - endOfEventLoopBarrier.Wait(GetNumberActiveThreads()); + endOfEventLoopBarrier.Wait((G4int)GetNumberActiveThreads()); beginOfEventLoopBarrier.ResetCounter(); endOfEventLoopBarrier.ReleaseBarrier(); } @@ -773,7 +773,7 @@ void G4MTRunManager::ThisWorkerEndEventLoop() void G4MTRunManager::NewActionRequest( G4MTRunManager::WorkerActionRequest newRequest) { - nextActionRequestBarrier.Wait(GetNumberActiveThreads()); + nextActionRequestBarrier.Wait((G4int)GetNumberActiveThreads()); // nextActionRequest is a shared resource, but there is no // data-race thanks to the barrier: all threads are waiting nextActionRequest = newRequest; @@ -793,7 +793,7 @@ void G4MTRunManager::RequestWorkersProcessCommandsStack() { PrepareCommandsStack(); NewActionRequest(WorkerActionRequest::PROCESSUI); - processUIBarrier.SetActiveThreads(GetNumberActiveThreads()); + processUIBarrier.SetActiveThreads((G4int)GetNumberActiveThreads()); processUIBarrier.WaitForReadyWorkers(); } diff --git a/source/run/src/G4PhysicsListHelper.cc b/source/run/src/G4PhysicsListHelper.cc index 6ccbb5fcea..0c5eb94651 100644 --- a/source/run/src/G4PhysicsListHelper.cc +++ b/source/run/src/G4PhysicsListHelper.cc @@ -118,7 +118,7 @@ void G4PhysicsListHelper::CheckParticleList() const if(!isEmProc) { G4ProcessVector* list = particle->GetProcessManager()->GetProcessList(); - for(std::size_t idx = 0; idx < list->size(); ++idx) + for(G4int idx = 0; idx < (G4int)list->size(); ++idx) { isEmProc = ((*list)[idx])->GetProcessType() == fElectromagnetic; if(isEmProc) @@ -561,7 +561,7 @@ G4bool G4PhysicsListHelper::RegisterProcess(G4VProcess* process, { G4bool duplicated = false; G4ProcessVector* pList = pManager->GetProcessList(); - for(std::size_t idx = 0; idx < pList->size(); ++idx) + for(G4int idx = 0; idx < (G4int)pList->size(); ++idx) { const G4VProcess* p = (*pList)[idx]; if((p->GetProcessType() == pType) && (p->GetProcessSubType() == pSubType)) diff --git a/source/run/src/G4RunManager.cc b/source/run/src/G4RunManager.cc index 567ee88988..d0a3581e02 100644 --- a/source/run/src/G4RunManager.cc +++ b/source/run/src/G4RunManager.cc @@ -364,7 +364,7 @@ void G4RunManager::RunInitialization() if(G4VScoreNtupleWriter::Instance() != nullptr) { - auto hce = fSDM->PrepareNewEvent(); + auto hce = (fSDM != nullptr) ? fSDM->PrepareNewEvent() : nullptr; isScoreNtupleWriter = G4VScoreNtupleWriter::Instance()->Book(hce); delete hce; } @@ -907,7 +907,7 @@ void G4RunManager::ConstructScoringWorlds() if(ScM == nullptr) return; - G4int nPar = ScM->GetNumberOfMesh(); + G4int nPar = (G4int)ScM->GetNumberOfMesh(); if(nPar < 1) return; @@ -981,14 +981,14 @@ void G4RunManager::UpdateScoring() G4ScoringManager* ScM = G4ScoringManager::GetScoringManagerIfExist(); if(ScM == nullptr) return; - G4int nPar = ScM->GetNumberOfMesh(); + G4int nPar = (G4int)ScM->GetNumberOfMesh(); if(nPar < 1) return; G4HCofThisEvent* HCE = currentEvent->GetHCofThisEvent(); if(HCE == nullptr) return; - G4int nColl = HCE->GetCapacity(); + G4int nColl = (G4int)HCE->GetCapacity(); for(G4int i = 0; i < nColl; ++i) { G4VHitsCollection* HC = HCE->GetHC(i); diff --git a/source/run/src/G4RunManagerKernel.cc b/source/run/src/G4RunManagerKernel.cc index 36181a85ae..8f4369e736 100644 --- a/source/run/src/G4RunManagerKernel.cc +++ b/source/run/src/G4RunManagerKernel.cc @@ -121,7 +121,7 @@ G4RunManagerKernel::G4RunManagerKernel() G4AllocatorList* allocList = G4AllocatorList::GetAllocatorListIfExist(); if(allocList != nullptr) - numberOfStaticAllocators = allocList->Size(); + numberOfStaticAllocators = (G4int)allocList->Size(); if(G4StateManager::GetStateManager()->GetExceptionHandler() == nullptr) { @@ -1171,7 +1171,7 @@ void G4RunManagerKernel::SetupShadowProcess() const if(pm != nullptr) { G4ProcessVector& procs = *(pm->GetProcessList()); - for(std::size_t idx = 0; idx < procs.size(); ++idx) + for(G4int idx = 0; idx < (G4int)procs.size(); ++idx) { const G4VProcess* masterP = procs[idx]->GetMasterProcess(); if(masterP == nullptr) diff --git a/source/run/src/G4TaskRunManager.cc b/source/run/src/G4TaskRunManager.cc index a52679d77e..49f54fdb00 100644 --- a/source/run/src/G4TaskRunManager.cc +++ b/source/run/src/G4TaskRunManager.cc @@ -118,7 +118,7 @@ G4TaskRunManager::G4TaskRunManager(G4VUserTaskQueue* task_queue, G4bool useTBB, //------------------------------------------------------------------------// G4String _nthread_env = G4GetEnv("G4FORCENUMBEROFTHREADS", ""); for(auto& itr : _nthread_env) - itr = tolower(itr); + itr = (char)std::tolower(itr); if(_nthread_env == "max") forcedNwokers = G4Threading::G4GetNumberOfCores(); @@ -310,7 +310,8 @@ void G4TaskRunManager::TerminateOneEvent() void G4TaskRunManager::ComputeNumberOfTasks() { - G4int grainSize = (eventGrainsize == 0) ? threadPool->size() : eventGrainsize; + G4int grainSize = (eventGrainsize == 0) + ? (G4int)threadPool->size() : eventGrainsize; grainSize = G4GetEnv("G4FORCE_GRAINSIZE", grainSize, "Forcing grainsize..."); if(grainSize == 0) @@ -366,7 +367,7 @@ void G4TaskRunManager::ComputeNumberOfTasks() std::stringstream ss; ss.fill('='); - ss << std::setw(msg.str().length()) << ""; + ss << std::setw((G4int)msg.str().length()) << ""; G4cout << "\n" << ss.str() << "\n" << msg.str() << "\n" @@ -410,7 +411,7 @@ void G4TaskRunManager::CreateAndStartWorkers() std::stringstream ss; ss.fill('='); - ss << std::setw(msg.str().length()) << ""; + ss << std::setw((G4int)msg.str().length()) << ""; G4cout << "\n" << ss.str() << "\n" << msg.str() << "\n" @@ -447,7 +448,7 @@ void G4TaskRunManager::CreateAndStartWorkers() std::stringstream ss; ss.fill('='); - ss << std::setw(msg.str().length()) << ""; + ss << std::setw((G4int)msg.str().length()) << ""; G4cout << "\n" << ss.str() << "\n" << msg.str() << "\n" @@ -617,11 +618,11 @@ void G4TaskRunManager::ConstructScoringWorlds() G4RunManager::ConstructScoringWorlds(); masterWorlds.clear(); - size_t nWorlds = + G4int nWorlds = (G4int) G4TransportationManager::GetTransportationManager()->GetNoWorlds(); std::vector::iterator itrW = G4TransportationManager::GetTransportationManager()->GetWorldsIterator(); - for(size_t iWorld = 0; iWorld < nWorlds; ++iWorld) + for(G4int iWorld = 0; iWorld < nWorlds; ++iWorld) { addWorld(iWorld, *itrW); ++itrW; diff --git a/source/run/src/G4TaskRunManagerKernel.cc b/source/run/src/G4TaskRunManagerKernel.cc index 503e211820..3856593737 100644 --- a/source/run/src/G4TaskRunManagerKernel.cc +++ b/source/run/src/G4TaskRunManagerKernel.cc @@ -162,8 +162,8 @@ void G4TaskRunManagerKernel::InitializeWorker() // Initliazie per-thread stream-output // The following line is needed before we actually do IO initialization // becasue the constructor of UI manager resets the IO destination. - context()->SetNumberThreads(mrm->GetThreadPool()->size()); - context()->SetThreadId(G4ThreadPool::get_this_thread_id() - 1); + context()->SetNumberThreads((G4int)mrm->GetThreadPool()->size()); + context()->SetThreadId(G4int(G4ThreadPool::get_this_thread_id() - 1)); G4int thisID = context()->GetThreadId(); G4Threading::G4SetThreadId(thisID); G4UImanager::GetUIpointer()->SetUpForAThread(thisID); diff --git a/source/run/src/G4VUserDetectorConstruction.cc b/source/run/src/G4VUserDetectorConstruction.cc index 3761e6c44d..9c28aeeb8d 100644 --- a/source/run/src/G4VUserDetectorConstruction.cc +++ b/source/run/src/G4VUserDetectorConstruction.cc @@ -95,7 +95,7 @@ void G4VUserDetectorConstruction::ConstructParallelSD() // -------------------------------------------------------------------- G4int G4VUserDetectorConstruction::GetNumberOfParallelWorld() const { - return parallelWorld.size(); + return (G4int)parallelWorld.size(); } // -------------------------------------------------------------------- diff --git a/source/run/src/G4VUserPhysicsList.cc b/source/run/src/G4VUserPhysicsList.cc index 6d7903eea8..cb5d46f9e4 100644 --- a/source/run/src/G4VUserPhysicsList.cc +++ b/source/run/src/G4VUserPhysicsList.cc @@ -754,7 +754,7 @@ void G4VUserPhysicsList::BuildPhysicsTable(G4ParticleDefinition* particle) << particle->GetParticleName() << G4endl; G4cout << " ProcessManager : " << pManager << " ProcessManagerShadow : " << pManagerShadow << G4endl; - for(std::size_t iv1 = 0; iv1 < pVector->size(); ++iv1) + for(G4int iv1 = 0; iv1 < (G4int)pVector->size(); ++iv1) { G4cout << " " << iv1 << " - " << (*pVector)[iv1]->GetProcessName() << G4endl; @@ -763,14 +763,14 @@ void G4VUserPhysicsList::BuildPhysicsTable(G4ParticleDefinition* particle) << G4endl; G4ProcessVector* pVectorShadow = pManagerShadow->GetProcessList(); - for(std::size_t iv2 = 0; iv2 < pVectorShadow->size(); ++iv2) + for(G4int iv2 = 0; iv2 < (G4int)pVectorShadow->size(); ++iv2) { G4cout << " " << iv2 << " - " << (*pVectorShadow)[iv2]->GetProcessName() << G4endl; } } #endif - for(std::size_t j = 0; j < pVector->size(); ++j) + for(G4int j = 0; j < (G4int)pVector->size(); ++j) { // Andrea July 16th 2013 : migration to new interface... // Infer if we are in a worker thread or master thread @@ -842,7 +842,7 @@ void G4VUserPhysicsList::PreparePhysicsTable(G4ParticleDefinition* particle) FatalException, "No process Vector"); return; } - for(std::size_t j = 0; j < pVector->size(); ++j) + for(G4int j = 0; j < (G4int)pVector->size(); ++j) { // Andrea July 16th 2013 : migration to new interface... // Infer if we are in a worker thread or master thread @@ -962,7 +962,7 @@ G4bool G4VUserPhysicsList::StorePhysicsTable(const G4String& directory) // Store physics tables for every process for this particle type G4ProcessVector* pVector = (particle->GetProcessManager())->GetProcessList(); - for(std::size_t j = 0; j < pVector->size(); ++j) + for(G4int j = 0; j < (G4int)pVector->size(); ++j) { if(!(*pVector)[j]->StorePhysicsTable(particle, dir, ascii)) { @@ -1000,7 +1000,7 @@ void G4VUserPhysicsList::RetrievePhysicsTable(G4ParticleDefinition* particle, G4bool success[100]; // Retrieve physics tables for every process for this particle type G4ProcessVector* pVector = (particle->GetProcessManager())->GetProcessList(); - for(std::size_t j = 0; j < pVector->size(); ++j) + for(G4int j = 0; j < (G4int)pVector->size(); ++j) { success[j] = (*pVector)[j]->RetrievePhysicsTable(particle, directory, ascii); @@ -1020,7 +1020,7 @@ void G4VUserPhysicsList::RetrievePhysicsTable(G4ParticleDefinition* particle, (*pVector)[j]->BuildPhysicsTable(*particle); } } - for(std::size_t j = 0; j < pVector->size(); ++j) + for(G4int j = 0; j < (G4int)pVector->size(); ++j) { // temporary addition to make the integral schema if(!success[j]) diff --git a/source/run/src/G4WorkerRunManager.cc b/source/run/src/G4WorkerRunManager.cc index f2bde15d1e..841fb529eb 100644 --- a/source/run/src/G4WorkerRunManager.cc +++ b/source/run/src/G4WorkerRunManager.cc @@ -221,7 +221,7 @@ void G4WorkerRunManager::RunInitialization() if(G4VScoreNtupleWriter::Instance()) { - auto hce = fSDM->PrepareNewEvent(); + auto hce = (fSDM != nullptr) ? fSDM->PrepareNewEvent() : nullptr; isScoreNtupleWriter = G4VScoreNtupleWriter::Instance()->Book(hce); delete hce; } @@ -544,7 +544,7 @@ void G4WorkerRunManager::ConstructScoringWorlds() G4ScoringManager* ScM = G4ScoringManager::GetScoringManagerIfExist(); if(ScM == nullptr) return; - G4int nPar = ScM->GetNumberOfMesh(); + G4int nPar = (G4int)ScM->GetNumberOfMesh(); if(nPar < 1) return; diff --git a/source/run/src/G4WorkerRunManagerKernel.cc b/source/run/src/G4WorkerRunManagerKernel.cc index 7935efdfef..fa4a0cd9b7 100644 --- a/source/run/src/G4WorkerRunManagerKernel.cc +++ b/source/run/src/G4WorkerRunManagerKernel.cc @@ -89,14 +89,14 @@ void G4WorkerRunManagerKernel::SetupShadowProcess() const << pd->GetParticleName() << ">" << G4endl; G4cout << " ProcessManager : " << pm << " ProcessManagerShadow : " << pmM << G4endl; - for(std::size_t iv1 = 0; iv1 < procs.size(); ++iv1) + for(G4int iv1 = 0; iv1 < (G4int)procs.size(); ++iv1) { G4cout << " " << iv1 << " - " << procs[iv1]->GetProcessName() << G4endl; } G4cout << "--------------------------------------------------------------" << G4endl; - for(std::size_t iv2 = 0; iv2 < procsM.size(); ++iv2) + for(G4int iv2 = 0; iv2 < (G4int)procsM.size(); ++iv2) { G4cout << " " << iv2 << " - " << procsM[iv2]->GetProcessName() << G4endl; @@ -117,7 +117,7 @@ void G4WorkerRunManagerKernel::SetupShadowProcess() const // process from master. Note that we rely on // processes being in the correct order! // We could use some checking using process name or type - for(std::size_t idx = 0; idx < procs.size(); ++idx) + for(G4int idx = 0; idx < (G4int)procs.size(); ++idx) { procs[idx]->SetMasterProcess(procsM[idx]); } diff --git a/source/run/src/G4WorkerTaskRunManager.cc b/source/run/src/G4WorkerTaskRunManager.cc index 5c6ae4e00b..51308e0576 100644 --- a/source/run/src/G4WorkerTaskRunManager.cc +++ b/source/run/src/G4WorkerTaskRunManager.cc @@ -136,12 +136,14 @@ void G4WorkerTaskRunManager::RunInitialization() currentRun->SetDCtable(DCtable); G4SDManager* fSDM = G4SDManager::GetSDMpointerIfExist(); - if(fSDM) + if(fSDM != nullptr) + { currentRun->SetHCtable(fSDM->GetHCtable()); + } if(G4VScoreNtupleWriter::Instance()) { - auto hce = fSDM->PrepareNewEvent(); + auto hce = (fSDM != nullptr) ? fSDM->PrepareNewEvent() : nullptr; isScoreNtupleWriter = G4VScoreNtupleWriter::Instance()->Book(hce); delete hce; } diff --git a/source/run/src/G4WorkerTaskRunManagerKernel.cc b/source/run/src/G4WorkerTaskRunManagerKernel.cc index 3eb4702001..6e2b63f14f 100644 --- a/source/run/src/G4WorkerTaskRunManagerKernel.cc +++ b/source/run/src/G4WorkerTaskRunManagerKernel.cc @@ -89,14 +89,14 @@ void G4WorkerTaskRunManagerKernel::SetupShadowProcess() const G4cout << " ProcessManager : " << pm << " ProcessManagerShadow : " << pmM << G4endl; - for(size_t iv1 = 0; iv1 < procs.size(); iv1++) + for(G4int iv1 = 0; iv1 < (G4int)procs.size(); ++iv1) G4cout << " " << iv1 << " - " << procs[iv1]->GetProcessName() << G4endl; G4cout << "--------------------------------------------------------------" << G4endl; - for(size_t iv2 = 0; iv2 < procsM.size(); iv2++) + for(G4int iv2 = 0; iv2 < (G4int)procsM.size(); ++iv2) G4cout << " " << iv2 << " - " << procsM[iv2]->GetProcessName() << G4endl; @@ -117,7 +117,7 @@ void G4WorkerTaskRunManagerKernel::SetupShadowProcess() const // process from master. Note that we rely on // processes being in the correct order! // We could use some checking using process name or type - for(size_t idx = 0; idx < procs.size(); ++idx) + for(G4int idx = 0; idx < (G4int)procs.size(); ++idx) { procs[idx]->SetMasterProcess(procsM[idx]); } diff --git a/source/track/History b/source/track/History index b5ef071b18..78352c6a05 100644 --- a/source/track/History +++ b/source/track/History @@ -1,8 +1,44 @@ # Category track History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-16 Gabriele Cosmo (track-V11-00-11) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-31 Vladimir Ivanchenko (track-V11-00-10) +- G4ParticleChangeForMSC - fixed crash in "/tracking/verbose 6" + +## 2022-09-13 Vladimir Ivanchenko (track-V11-00-09) +- 2nd round of particle change classes cleanup: improved diagnostic for + problems with primary track parameters or with secondary tracks; ensure + kinetic energy to be positive after a step; improved comments + +## 2022-09-08 Makoto Asai (track-V11-00-08) +- G4Step.hh, G4Step.icc - Adding ResetPre/PostStepPoint methods to replace + StepPoint object without deleting the previous object. + +## 2022-09-02 Vladimir Ivanchenko (track-V11-00-07) +- G4ParticleChangeForMSC - substitute virtual initialisation by inline + method + +## 2022-08-24 Vladimir Ivanchenko (track-V11-00-06) +- General clean-up of all ParticleChange classes: + 1) delete copy constructors and operators + 2) removed unused methods + 3) removed tracking cut 1 eV implemented inside G4ParticleChangeForLoss + 4) make more effective handling of secondary tracks + 5) substitute G4ParticleChangeForRadDecay by G4ParticleChangeForDecay + 6) make all derived classes/methods final + 7) removed commented code and useless or incorrect comments, added + improved comments + 8) removed duplicated code + +## 2022-06-24 Ben Morgan (track-V11-00-05) +- Initial `clang-tidy` fixes and minor simplifications ## 2022-05-25 Alberto Ribon (track-V11-00-04) - `G4Track`: add methods to get/set information on (short-lived) parent resonance diff --git a/source/track/include/G4FieldTrackUpdator.hh b/source/track/include/G4FieldTrackUpdator.hh index 7e6040f509..8e7432ba60 100644 --- a/source/track/include/G4FieldTrackUpdator.hh +++ b/source/track/include/G4FieldTrackUpdator.hh @@ -46,8 +46,8 @@ class G4FieldTrackUpdator private: - G4FieldTrackUpdator() {} - ~G4FieldTrackUpdator() {} + G4FieldTrackUpdator() = default; + ~G4FieldTrackUpdator() = default; }; #endif diff --git a/source/track/include/G4ParticleChange.hh b/source/track/include/G4ParticleChange.hh index 0f2d960671..e10fdb32e7 100644 --- a/source/track/include/G4ParticleChange.hh +++ b/source/track/include/G4ParticleChange.hh @@ -48,7 +48,6 @@ #include "globals.hh" #include "G4ios.hh" #include "G4ThreeVector.hh" -#include "G4ThreeVector.hh" #include "G4VParticleChange.hh" class G4DynamicParticle; @@ -60,18 +59,17 @@ class G4ParticleChange : public G4VParticleChange G4ParticleChange(); // Default constructor - virtual ~G4ParticleChange(); + ~G4ParticleChange() override = default; // Destructor - G4bool operator==(const G4ParticleChange& right) const; - G4bool operator!=(const G4ParticleChange& right) const; - // Equality operators + G4ParticleChange(const G4ParticleChange& right) = delete; + G4ParticleChange& operator=(const G4ParticleChange& right) = delete; // --- the following methods are for updating G4Step ----- // Return the pointer to G4Step after updating the Step information // by using final state of the track given by a physics process - virtual G4Step* UpdateStepForAlongStep(G4Step* Step); + G4Step* UpdateStepForAlongStep(G4Step* Step) override; // A physics process gives the final state of the particle // relative to the initial state at the beginning of the Step, // i.e., based on information of G4Track (or equivalently @@ -82,12 +80,12 @@ class G4ParticleChange : public G4VParticleChange // pointer to G4ParticleMomentum. Also it is a normalized // momentum vector - virtual G4Step* UpdateStepForAtRest(G4Step* Step); - virtual G4Step* UpdateStepForPostStep(G4Step* Step); + G4Step* UpdateStepForAtRest(G4Step* Step) override; + G4Step* UpdateStepForPostStep(G4Step* Step) override; // A physics process gives the final state of the particle // based on information of G4Track (or equivalently the PreStepPoint) - virtual void Initialize(const G4Track&); + void Initialize(const G4Track&) override; // Initialize all propoerties by using G4Track information // --- methods to keep information of the final state --- @@ -95,62 +93,63 @@ class G4ParticleChange : public G4VParticleChange // The ProposeXXX methods store (and return in GetXXX methods) // the "FINAL" values of the Position, Momentum, etc. - const G4ThreeVector* GetMomentumDirection() const; - void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz); - void ProposeMomentumDirection(const G4ThreeVector& Pfinal); + inline const G4ThreeVector* GetMomentumDirection() const; + inline void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz); + inline void ProposeMomentumDirection(const G4ThreeVector& Pfinal); // Get/Propose the MomentumDirection vector: it is the final momentum // direction - const G4ThreeVector* GetPolarization() const; - void ProposePolarization(G4double Px, G4double Py, G4double Pz); - void ProposePolarization(const G4ThreeVector& finalPoralization); + inline const G4ThreeVector* GetPolarization() const; + inline void ProposePolarization(G4double Px, G4double Py, G4double Pz); + inline void ProposePolarization(const G4ThreeVector& finalPoralization); // Get/Propose the final Polarization vector - G4double GetEnergy() const; - void ProposeEnergy(G4double finalEnergy); + inline G4double GetEnergy() const; + inline void ProposeEnergy(G4double finalEnergy); // Get/Propose the final kinetic energy of the current particle - G4double GetVelocity() const; - void ProposeVelocity(G4double finalVelocity); + inline G4double GetVelocity() const; + inline void ProposeVelocity(G4double finalVelocity); // Get/Propose the final velocity of the current particle - G4double GetProperTime() const; - void ProposeProperTime(G4double finalProperTime); + inline G4double GetProperTime() const; + inline void ProposeProperTime(G4double finalProperTime); // Get/Propose the final ProperTime - const G4ThreeVector* GetPosition() const; - void ProposePosition(G4double x, G4double y, G4double z); - void ProposePosition(const G4ThreeVector& finalPosition); + inline const G4ThreeVector* GetPosition() const; + inline void ProposePosition(G4double x, G4double y, G4double z); + inline void ProposePosition(const G4ThreeVector& finalPosition); // Get/Propose the final position of the current particle - void ProposeGlobalTime(G4double t); - void ProposeLocalTime(G4double t); + inline void ProposeGlobalTime(G4double t); + inline void ProposeLocalTime(G4double t); // Get/Propose the final global/local Time. // NOTE: DO NOT INVOKE both methods in a step // Each method affects both local and global time - G4double GetGlobalTime(G4double timeDelay = 0.0) const; - G4double GetLocalTime(G4double timeDelay = 0.0) const; + inline G4double GetGlobalTime(G4double timeDelay = 0.0) const; + inline G4double GetLocalTime(G4double timeDelay = 0.0) const; // Convert the time delay to the glocbal/local time. // Can get the final global/local time without argument - G4double GetMass() const; - void ProposeMass(G4double finalMass); + inline G4double GetMass() const; + inline void ProposeMass(G4double finalMass); // Get/Propose the final dynamical mass in G4DynamicParticle - G4double GetCharge() const; - void ProposeCharge(G4double finalCharge); + inline G4double GetCharge() const; + inline void ProposeCharge(G4double finalCharge); // Get/Propose the final dynamical charge in G4DynamicParticle - G4double GetMagneticMoment() const; - void ProposeMagneticMoment(G4double finalMagneticMoment); + inline G4double GetMagneticMoment() const; + inline void ProposeMagneticMoment(G4double finalMagneticMoment); // Get/Propose the final MagneticMoment in G4DynamicParticle - G4ThreeVector GetGlobalPosition(const G4ThreeVector& displacement) const; + inline G4ThreeVector + GetGlobalPosition(const G4ThreeVector& displacement) const; // Convert the position displacement to the global position - G4ThreeVector CalcMomentum(G4double energy, G4ThreeVector direction, - G4double mass) const; + inline G4ThreeVector CalcMomentum(G4double energy, G4ThreeVector direction, + G4double mass) const; // Calculate momentum by using Energy, Momentum Direction, and Mass // --- methods for adding secondaries --- @@ -175,16 +174,10 @@ class G4ParticleChange : public G4VParticleChange // --- Dump and debug methods --- - virtual void DumpInfo() const; - - virtual G4bool CheckIt(const G4Track&); + void DumpInfo() const override; protected: - G4ParticleChange(const G4ParticleChange& right); - G4ParticleChange& operator=(const G4ParticleChange& right); - // Hidden copy constructor and assignment operator - G4Step* UpdateStepInfo(G4Step* Step); // Update the G4Step specific attributes // (i.e. SteppingControl, LocalEnergyDeposit, and TrueStepLength) @@ -228,8 +221,6 @@ class G4ParticleChange : public G4VParticleChange G4double theMagneticMomentChange = 0.0; // The Changed (final) MagneticMoment of a given track - - const G4Track* theCurrentTrack = nullptr; }; #include "G4ParticleChange.icc" diff --git a/source/track/include/G4ParticleChangeForDecay.hh b/source/track/include/G4ParticleChangeForDecay.hh index 365780d29a..6d3baf9876 100644 --- a/source/track/include/G4ParticleChangeForDecay.hh +++ b/source/track/include/G4ParticleChangeForDecay.hh @@ -44,29 +44,26 @@ class G4DynamicParticle; -class G4ParticleChangeForDecay : public G4VParticleChange +class G4ParticleChangeForDecay final : public G4VParticleChange { public: G4ParticleChangeForDecay(); - // Default constructor - virtual ~G4ParticleChangeForDecay(); - // Destructor + ~G4ParticleChangeForDecay() override = default; - G4bool operator==(const G4ParticleChangeForDecay& right) const; - G4bool operator!=(const G4ParticleChangeForDecay& right) const; - // Equality operators + G4ParticleChangeForDecay(const G4ParticleChangeForDecay& right) = delete; + G4ParticleChangeForDecay& operator=(const G4ParticleChangeForDecay& right) = delete; // --- the following methods are for updating G4Step ----- // Return the pointer to the G4Step after updating the step information // by using final state information of the track given by a physics process // !!! No effect for AlongSteyp - virtual G4Step* UpdateStepForAtRest(G4Step* Step); - virtual G4Step* UpdateStepForPostStep(G4Step* Step); + G4Step* UpdateStepForAtRest(G4Step* Step) final; + G4Step* UpdateStepForPostStep(G4Step* Step) final; - virtual void Initialize(const G4Track&); + void Initialize(const G4Track&) final; // Initialize all properties by using G4Track information void ProposeGlobalTime(G4double t); @@ -87,15 +84,11 @@ class G4ParticleChangeForDecay : public G4VParticleChange // --- Dump and debug methods --- - virtual void DumpInfo() const; + void DumpInfo() const final; - virtual G4bool CheckIt(const G4Track&); + G4bool CheckIt(const G4Track&) final; - protected: - - G4ParticleChangeForDecay(const G4ParticleChangeForDecay& right); - G4ParticleChangeForDecay& operator=(const G4ParticleChangeForDecay& right); - // Hidden copy constructor and assignment operator + private: G4double theGlobalTime0 = 0.0; // The global time at Initial diff --git a/source/track/include/G4ParticleChangeForGamma.hh b/source/track/include/G4ParticleChangeForGamma.hh index 66cad17506..088eb97a07 100644 --- a/source/track/include/G4ParticleChangeForGamma.hh +++ b/source/track/include/G4ParticleChangeForGamma.hh @@ -31,6 +31,7 @@ // Author: Hisaya Kurashige, 23 March 1998 // Revision: Vladimir Ivantchenko, 15 April 2005 +// 24 August 2022 // -------------------------------------------------------------------- #ifndef G4ParticleChangeForGamma_hh #define G4ParticleChangeForGamma_hh 1 @@ -41,67 +42,53 @@ class G4DynamicParticle; -class G4ParticleChangeForGamma : public G4VParticleChange +class G4ParticleChangeForGamma final : public G4VParticleChange { - public: +public: - G4ParticleChangeForGamma(); - // Default constructor + G4ParticleChangeForGamma(); - virtual ~G4ParticleChangeForGamma(); - // Destructor + ~G4ParticleChangeForGamma() override = default; + + G4ParticleChangeForGamma(const G4ParticleChangeForGamma& right) = delete; + G4ParticleChangeForGamma& operator=(const G4ParticleChangeForGamma& right) = delete; // --- the following methods are for updating G4Step ----- - G4Step* UpdateStepForAtRest(G4Step* pStep); - G4Step* UpdateStepForPostStep(G4Step* Step); + G4Step* UpdateStepForAtRest(G4Step* pStep) final; + G4Step* UpdateStepForPostStep(G4Step* Step) final; // A physics process gives the final state of the particle // based on information of G4Track - inline void InitializeForPostStep(const G4Track&); + inline void InitializeForPostStep(const G4Track&); // Initialize all properties by using G4Track information - void AddSecondary(G4DynamicParticle* aParticle); + void AddSecondary(G4DynamicParticle* aParticle); // Add next secondary - inline G4double GetProposedKineticEnergy() const; - inline void SetProposedKineticEnergy(G4double proposedKinEnergy); + inline G4double GetProposedKineticEnergy() const; + inline void SetProposedKineticEnergy(G4double proposedKinEnergy); // Get/Set the final kinetic energy of the current particle - inline const G4ThreeVector& GetProposedMomentumDirection() const; - inline void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz); - inline void ProposeMomentumDirection(const G4ThreeVector& Pfinal); - // Get/Propose the MomentumDirection vector: it is the final momentum - // direction + inline const G4ThreeVector& GetProposedMomentumDirection() const; + inline void ProposeMomentumDirection(const G4ThreeVector& Pfinal); + // Get/Set the final momentum direction - inline const G4ThreeVector& GetProposedPolarization() const; - inline void ProposePolarization(const G4ThreeVector& dir); - inline void ProposePolarization(G4double Px, G4double Py, G4double Pz); + inline const G4ThreeVector& GetProposedPolarization() const; + inline void ProposePolarization(const G4ThreeVector& dir); + inline void ProposePolarization(G4double Px, G4double Py, G4double Pz); - inline const G4Track* GetCurrentTrack() const; + void DumpInfo() const override; - virtual void DumpInfo() const; +private: - virtual G4bool CheckIt(const G4Track&); - - protected: - - G4ParticleChangeForGamma(const G4ParticleChangeForGamma& right); - G4ParticleChangeForGamma& operator=(const G4ParticleChangeForGamma& right); - // Hidden copy constructor and assignment operator - - private: - - const G4Track* currentTrack = nullptr; - // The pointer to G4Track - - G4double proposedKinEnergy = 0.0; + G4double proposedKinEnergy = 0.0; // The final kinetic energy of the current particle - G4ThreeVector proposedMomentumDirection; + G4ThreeVector proposedMomentumDirection; // The final momentum direction of the current particle - G4ThreeVector proposedPolarization; + G4ThreeVector proposedPolarization; // The final polarization of the current particle }; @@ -135,22 +122,6 @@ ProposeMomentumDirection(const G4ThreeVector& dir) proposedMomentumDirection = dir; } -inline -void G4ParticleChangeForGamma::ProposeMomentumDirection(G4double Px, - G4double Py, - G4double Pz) -{ - proposedMomentumDirection.setX(Px); - proposedMomentumDirection.setY(Py); - proposedMomentumDirection.setZ(Pz); -} - -inline -const G4Track* G4ParticleChangeForGamma::GetCurrentTrack() const -{ - return currentTrack; -} - inline const G4ThreeVector& G4ParticleChangeForGamma::GetProposedPolarization() const { @@ -176,16 +147,13 @@ void G4ParticleChangeForGamma::ProposePolarization(G4double Px, inline void G4ParticleChangeForGamma::InitializeForPostStep(const G4Track& track) { - theStatusChange = track.GetTrackStatus(); - theLocalEnergyDeposit = 0.0; - theNonIonizingEnergyDeposit = 0.0; - InitializeSecondaries(track); - theParentWeight = track.GetWeight(); - isParentWeightProposed = false; + InitializeSecondaries(); + InitializeLocalEnergyDeposit(); + InitializeParentWeight(track); + InitializeStatusChange(track); proposedKinEnergy = track.GetKineticEnergy(); proposedMomentumDirection = track.GetMomentumDirection(); proposedPolarization = track.GetPolarization(); - currentTrack = &track; } #endif diff --git a/source/track/include/G4ParticleChangeForLoss.hh b/source/track/include/G4ParticleChangeForLoss.hh index 2a0c24a076..359abebc66 100644 --- a/source/track/include/G4ParticleChangeForLoss.hh +++ b/source/track/include/G4ParticleChangeForLoss.hh @@ -31,94 +31,67 @@ // Author: Hisaya Kurashige, 23 March 1998 // Revision: Vladimir Ivantchenko, 16 January 2004 +// 24 August 2022 // -------------------------------------------------------------------- #ifndef G4ParticleChangeForLoss_hh #define G4ParticleChangeForLoss_hh 1 -#include "globals.hh" -#include "G4ios.hh" #include "G4VParticleChange.hh" +#include "G4DynamicParticle.hh" -class G4DynamicParticle; - -class G4ParticleChangeForLoss : public G4VParticleChange +class G4ParticleChangeForLoss final : public G4VParticleChange { - public: +public: - G4ParticleChangeForLoss(); - // Default constructor + G4ParticleChangeForLoss(); - virtual ~G4ParticleChangeForLoss(); - // Destructor + ~G4ParticleChangeForLoss() override = default; + + G4ParticleChangeForLoss(const G4ParticleChangeForLoss& right) = delete; + G4ParticleChangeForLoss& operator=(const G4ParticleChangeForLoss& right) = delete; // --- the following methods are for updating G4Step ----- - G4Step* UpdateStepForAlongStep(G4Step* Step); - G4Step* UpdateStepForPostStep(G4Step* Step); - // A physics process gives the final state of the particle - // based on information of G4Track + G4Step* UpdateStepForAlongStep(G4Step* step) final; + G4Step* UpdateStepForPostStep(G4Step* step) final; - void InitializeForAlongStep(const G4Track&); - void InitializeForPostStep(const G4Track&); - // Initialize all properties by using G4Track information + // Initialize all used properties + inline void InitializeForAlongStep(const G4Track&); + inline void InitializeForPostStep(const G4Track&); - inline G4double GetProposedCharge() const; - inline void SetProposedCharge(G4double theCharge); - // Get/Set theCharge + // Get/Set dynamic charge + inline G4double GetProposedCharge() const; + inline void SetProposedCharge(G4double theCharge); - inline G4double GetCharge() const; - inline void ProposeCharge(G4double finalCharge); - // Get/Propose the final dynamical charge in G4DynamicParticle + // Get/Set the final kinetic energy of the current particle + inline G4double GetProposedKineticEnergy() const; + inline void SetProposedKineticEnergy(G4double proposedKinEnergy); - inline G4double GetProposedKineticEnergy() const; - inline void SetProposedKineticEnergy(G4double proposedKinEnergy); - // Get/Set the final kinetic energy of the current particle + // Get/Propose the MomentumDirection vector: it is the final momentum + // direction + inline const G4ThreeVector& GetProposedMomentumDirection() const; + inline void SetProposedMomentumDirection(const G4ThreeVector& dir); + inline void ProposeMomentumDirection(const G4ThreeVector& Pfinal); - inline const G4ThreeVector& GetProposedMomentumDirection() const; - inline void SetProposedMomentumDirection(const G4ThreeVector& dir); - inline const G4ThreeVector& GetMomentumDirection() const; - inline void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz); - inline void ProposeMomentumDirection(const G4ThreeVector& Pfinal); - // Get/Propose the MomentumDirection vector: it is the final momentum - // direction + inline const G4ThreeVector& GetProposedPolarization() const; + inline void ProposePolarization(const G4ThreeVector& dir); + inline void ProposePolarization(G4double Px, G4double Py, G4double Pz); - inline const G4ThreeVector& GetProposedPolarization() const; - inline void ProposePolarization(const G4ThreeVector& dir); - inline void ProposePolarization(G4double Px, G4double Py, G4double Pz); + void DumpInfo() const final; - inline const G4Track* GetCurrentTrack() const; +private: - inline void SetLowEnergyLimit(G4double elimit); + G4double proposedKinEnergy = 0.0; + // The final kinetic energy of the current particle - virtual void DumpInfo() const; - - virtual G4bool CheckIt(const G4Track&); - - protected: - - G4ParticleChangeForLoss(const G4ParticleChangeForLoss& right); - G4ParticleChangeForLoss& operator=(const G4ParticleChangeForLoss& right); - // Hidden copy constructor and assignment operator - - private: - - const G4Track* currentTrack = nullptr; - // The pointer to G4Track - - G4double proposedKinEnergy = 0.0; - // The final kinetic energy of the current particle - - G4double lowEnergyLimit = 0.0; - // The limit kinetic energy below which particle is stopped - - G4double currentCharge = 0.0; + G4double currentCharge = 0.0; // The final charge of the current particle - G4ThreeVector proposedMomentumDirection; - // The final momentum direction of the current particle + G4ThreeVector proposedMomentumDirection; + // The final momentum direction of the current particle - G4ThreeVector proposedPolarization; - // The final polarization of the current particle + G4ThreeVector proposedPolarization; + // The final polarization of the current particle }; // ---------------------- @@ -137,14 +110,7 @@ void G4ParticleChangeForLoss::SetProposedKineticEnergy(G4double energy) proposedKinEnergy = energy; } -inline -G4double G4ParticleChangeForLoss::GetProposedCharge() const -{ - return currentCharge; -} - -inline -G4double G4ParticleChangeForLoss::GetCharge() const +inline G4double G4ParticleChangeForLoss::GetProposedCharge() const { return currentCharge; } @@ -155,12 +121,6 @@ void G4ParticleChangeForLoss::SetProposedCharge(G4double theCharge) currentCharge = theCharge; } -inline -void G4ParticleChangeForLoss::ProposeCharge(G4double theCharge) -{ - currentCharge = theCharge; -} - inline const G4ThreeVector& G4ParticleChangeForLoss::GetProposedMomentumDirection() const @@ -168,12 +128,6 @@ G4ParticleChangeForLoss::GetProposedMomentumDirection() const return proposedMomentumDirection; } -inline -const G4ThreeVector& G4ParticleChangeForLoss::GetMomentumDirection() const -{ - return proposedMomentumDirection; -} - inline void G4ParticleChangeForLoss::ProposeMomentumDirection(const G4ThreeVector& dir) { @@ -187,22 +141,6 @@ G4ParticleChangeForLoss::SetProposedMomentumDirection(const G4ThreeVector& dir) proposedMomentumDirection = dir; } -inline -void G4ParticleChangeForLoss::ProposeMomentumDirection(G4double Px, - G4double Py, - G4double Pz) -{ - proposedMomentumDirection.setX(Px); - proposedMomentumDirection.setY(Py); - proposedMomentumDirection.setZ(Pz); -} - -inline -const G4Track* G4ParticleChangeForLoss::GetCurrentTrack() const -{ - return currentTrack; -} - inline const G4ThreeVector& G4ParticleChangeForLoss::GetProposedPolarization() const { @@ -215,49 +153,30 @@ void G4ParticleChangeForLoss::ProposePolarization(const G4ThreeVector& dir) proposedPolarization = dir; } -inline -void G4ParticleChangeForLoss::ProposePolarization(G4double Px, - G4double Py, - G4double Pz) +inline void G4ParticleChangeForLoss::ProposePolarization(G4double Px, + G4double Py, + G4double Pz) { - proposedPolarization.setX(Px); - proposedPolarization.setY(Py); - proposedPolarization.setZ(Pz); + proposedPolarization.set(Px, Py, Pz); } inline void G4ParticleChangeForLoss::InitializeForAlongStep(const G4Track& track) { - theStatusChange = track.GetTrackStatus(); - theLocalEnergyDeposit = 0.0; - theNonIonizingEnergyDeposit = 0.0; - InitializeSecondaries(track); - theParentWeight = track.GetWeight(); - // isParentWeightProposed = false; + InitializeSecondaries(); + InitializeLocalEnergyDeposit(); + InitializeParentWeight(track); + InitializeStatusChange(track); proposedKinEnergy = track.GetKineticEnergy(); - currentCharge = track.GetDynamicParticle()->GetCharge(); + currentCharge = track.GetDynamicParticle()->GetCharge(); } inline void G4ParticleChangeForLoss::InitializeForPostStep(const G4Track& track) { - theStatusChange = track.GetTrackStatus(); - theLocalEnergyDeposit = 0.0; - theNonIonizingEnergyDeposit = 0.0; - InitializeSecondaries(track); - theParentWeight = track.GetWeight(); - // isParentWeightProposed = false; - proposedKinEnergy = track.GetKineticEnergy(); - currentCharge = track.GetDynamicParticle()->GetCharge(); + InitializeForAlongStep(track); proposedMomentumDirection = track.GetMomentumDirection(); - proposedPolarization = track.GetPolarization(); - currentTrack = &track; -} - -inline -void G4ParticleChangeForLoss::SetLowEnergyLimit(G4double elimit) -{ - lowEnergyLimit = elimit; + proposedPolarization = track.GetPolarization(); } #endif diff --git a/source/track/include/G4ParticleChangeForMSC.hh b/source/track/include/G4ParticleChangeForMSC.hh index bd74ff6cb4..cb6668159b 100644 --- a/source/track/include/G4ParticleChangeForMSC.hh +++ b/source/track/include/G4ParticleChangeForMSC.hh @@ -31,6 +31,7 @@ // Author: Hisaya Kurashige, 23 March 1998 // Revision: Vladimir Ivantchenko, 16 January 2004 +// 23 August 2022 // -------------------------------------------------------------------- #ifndef G4ParticleChangeForMSC_hh #define G4ParticleChangeForMSC_hh 1 @@ -38,78 +39,72 @@ #include "globals.hh" #include "G4ios.hh" #include "G4ThreeVector.hh" -#include "G4ThreeVector.hh" #include "G4VParticleChange.hh" -class G4DynamicParticle; - -class G4ParticleChangeForMSC : public G4VParticleChange +class G4ParticleChangeForMSC final : public G4VParticleChange { - public: +public: - G4ParticleChangeForMSC(); - // Default constructor + G4ParticleChangeForMSC(); - virtual ~G4ParticleChangeForMSC(); - // Destructor + ~G4ParticleChangeForMSC() override = default; - // --- the following methods are for updating G4Step ----- - // Return the pointer to the G4Step after updating the Step information - // by using final state information of the track given by a physics - // process + G4ParticleChangeForMSC(const G4ParticleChangeForMSC& right) = delete; + G4ParticleChangeForMSC& operator= + (const G4ParticleChangeForMSC& right) = delete; - virtual G4Step* UpdateStepForAlongStep(G4Step* Step); - virtual G4Step* UpdateStepForPostStep(G4Step* Step); - // A physics process gives the final state of the particle - // based on information of G4Track (or equivalently the PreStepPoint) + // A multiple scattering process gives the final state of the particle + G4Step* UpdateStepForAlongStep(G4Step* step) final; - virtual void Initialize(const G4Track&); - // Initialize all properties by using G4Track information + // Initialise only properties changed by multiple scattering + inline void InitialiseMSC(const G4Track&, const G4Step& step); - // --- methods to keep information of the final state --- - // IMPORTANT NOTE: despite the name, what the class stores through its - // methods are the "FINAL" values of the Position, - // Momentum, etc. + inline void ProposeMomentumDirection(const G4ThreeVector& Pfinal); + inline const G4ThreeVector* GetProposedMomentumDirection() const; - void ProposeMomentumDirection(const G4ThreeVector& Pfinal); - void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz); - const G4ThreeVector* GetMomentumDirection() const; - const G4ThreeVector* GetProposedMomentumDirection() const; - void SetProposedMomentumDirection(const G4ThreeVector& Pfinal); - // Get/Set theMomentumDirectionChange vector: it is the final momentum - // direction + inline void ProposePosition(const G4ThreeVector& finalPosition); + inline const G4ThreeVector& GetProposedPosition() const; - const G4ThreeVector* GetPosition() const; - void ProposePosition(const G4ThreeVector& finalPosition); - const G4ThreeVector* GetProposedPosition() const; - void SetProposedPosition(const G4ThreeVector& finalPosition); - // Get/Set the final position of the current particle +private: - // --- Dump and debug methods --- + G4ThreeVector theMomentumDirection; + // It is the vector containing the final momentum direction + // after multiple scattering is applied along step - virtual void DumpInfo() const; - - virtual G4bool CheckIt(const G4Track&); - - protected: - - G4ParticleChangeForMSC(const G4ParticleChangeForMSC& right); - G4ParticleChangeForMSC& operator=(const G4ParticleChangeForMSC& right); - // Hidden copy constructor and assignment operator - - private: - - G4ThreeVector theMomentumDirection; - // It is the vector containing the final momentum direction - // after the invoked process. The application of the change - // of the momentum direction of the particle is not done here. - // The responsibility to apply the change is up the entity - // which invoked the process - - G4ThreeVector thePosition; - // The changed (final) position of a given particle + G4ThreeVector thePosition; + // The changed of post step position after multiple scattering }; -#include "G4ParticleChangeForMSC.icc" +inline void G4ParticleChangeForMSC::ProposeMomentumDirection( + const G4ThreeVector& P) +{ + theMomentumDirection = P; +} + +inline const G4ThreeVector* +G4ParticleChangeForMSC::GetProposedMomentumDirection() const +{ + return &theMomentumDirection; +} + +inline void G4ParticleChangeForMSC::ProposePosition(const G4ThreeVector& P) +{ + thePosition = P; +} + +inline const G4ThreeVector& G4ParticleChangeForMSC::GetProposedPosition() const +{ + return thePosition; +} + +inline void +G4ParticleChangeForMSC::InitialiseMSC(const G4Track& track, const G4Step& step) +{ + theStatusChange = track.GetTrackStatus(); + auto poststep = step.GetPostStepPoint(); + thePosition = poststep->GetPosition(); + theMomentumDirection = poststep->GetMomentumDirection(); + theCurrentTrack = &track; +} #endif diff --git a/source/track/include/G4ParticleChangeForMSC.icc b/source/track/include/G4ParticleChangeForMSC.icc deleted file mode 100644 index 84176e756e..0000000000 --- a/source/track/include/G4ParticleChangeForMSC.icc +++ /dev/null @@ -1,89 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// G4ParticleChangeForMSC inline methods implementation -// -// Author: Hisaya Kurashige, 23 March 1998 -// Revision: Vladimir Ivantchenko, 16 January 2004 -// -------------------------------------------------------------------- - -inline void G4ParticleChangeForMSC::ProposeMomentumDirection( - const G4ThreeVector& P) -{ - theMomentumDirection = P; -} - -inline void G4ParticleChangeForMSC::SetProposedMomentumDirection( - const G4ThreeVector& P) -{ - theMomentumDirection = P; -} - -inline void G4ParticleChangeForMSC::ProposeMomentumDirection(G4double Px, - G4double Py, - G4double Pz) -{ - theMomentumDirection.setX(Px); - theMomentumDirection.setY(Py); - theMomentumDirection.setZ(Pz); -} - -inline const G4ThreeVector* G4ParticleChangeForMSC::GetMomentumDirection() const -{ - return &theMomentumDirection; -} - -inline const G4ThreeVector* -G4ParticleChangeForMSC::GetProposedMomentumDirection() const -{ - return &theMomentumDirection; -} - -inline void G4ParticleChangeForMSC::SetProposedPosition(const G4ThreeVector& P) -{ - thePosition = P; -} - -inline const G4ThreeVector* G4ParticleChangeForMSC::GetPosition() const -{ - return &thePosition; -} - -inline const G4ThreeVector* G4ParticleChangeForMSC::GetProposedPosition() const -{ - return &thePosition; -} - -inline void G4ParticleChangeForMSC::ProposePosition(const G4ThreeVector& P) -{ - thePosition = P; -} - -inline void G4ParticleChangeForMSC::Initialize(const G4Track& track) -{ - theStatusChange = track.GetTrackStatus(); - theMomentumDirection = track.GetMomentumDirection(); - thePosition = track.GetPosition(); -} diff --git a/source/track/include/G4ParticleChangeForRadDecay.hh b/source/track/include/G4ParticleChangeForRadDecay.hh index 31656f6752..c623267d01 100644 --- a/source/track/include/G4ParticleChangeForRadDecay.hh +++ b/source/track/include/G4ParticleChangeForRadDecay.hh @@ -34,61 +34,8 @@ #ifndef G4ParticleChangeForRadDecay_hh #define G4ParticleChangeForRadDecay_hh 1 -#include "globals.hh" -#include "G4ios.hh" #include "G4ParticleChangeForDecay.hh" -class G4VTouchable; - -class G4ParticleChangeForRadDecay : public G4ParticleChangeForDecay -{ - public: - - G4ParticleChangeForRadDecay() {} - // Default constructor - - virtual ~G4ParticleChangeForRadDecay() {} - // Destructor - - inline void AddSecondary(G4Track* aSecondary); - // Add a secondary particle to theListOfSecondaries - - protected: - - inline G4ParticleChangeForRadDecay(const G4ParticleChangeForRadDecay&); - inline G4ParticleChangeForRadDecay& operator=(const G4ParticleChangeForRadDecay&); - // Hidden copy constructor and assignment operator -}; - -// ---------------------- -// Inline methods -// ---------------------- - -inline G4ParticleChangeForRadDecay:: -G4ParticleChangeForRadDecay(const G4ParticleChangeForRadDecay&) - : G4ParticleChangeForDecay() {} - -inline -G4ParticleChangeForRadDecay& -G4ParticleChangeForRadDecay::operator=(const G4ParticleChangeForRadDecay&) -{ - return *this; -} - -inline -void G4ParticleChangeForRadDecay::AddSecondary(G4Track* aTrack) -{ - // add a secondary after size check - if(theSizeOftheListOfSecondaries > theNumberOfSecondaries) - { - theListOfSecondaries->SetElement(theNumberOfSecondaries, aTrack); - ++theNumberOfSecondaries; - } - else - { - G4Exception("G4ParticleChangeForRadDecay::AddSecondary()", "TRACK101", - JustWarning, "Secondaries buffer is full. Track is deleted!"); - } -} +using G4ParticleChangeForRadDecay = G4ParticleChangeForDecay; #endif diff --git a/source/track/include/G4ParticleChangeForTransport.hh b/source/track/include/G4ParticleChangeForTransport.hh index ee86b672d5..f596d3ae6a 100644 --- a/source/track/include/G4ParticleChangeForTransport.hh +++ b/source/track/include/G4ParticleChangeForTransport.hh @@ -42,74 +42,71 @@ class G4MaterialCutsCouple; class G4VSensitiveDetector; -class G4ParticleChangeForTransport : public G4ParticleChange +class G4ParticleChangeForTransport final : public G4ParticleChange { public: G4ParticleChangeForTransport(); - // Default constructor - virtual ~G4ParticleChangeForTransport(); - // Destructor + ~G4ParticleChangeForTransport() override = default; + + G4ParticleChangeForTransport(const G4ParticleChangeForTransport& right) = delete; + G4ParticleChangeForTransport& operator=(const G4ParticleChangeForTransport& right) = delete; // --- the following methods are for updating G4Step --- // Return the pointer to the G4Step after updating the Step information // by using final state information of the track given by a physics process - virtual G4Step* UpdateStepForAlongStep(G4Step* Step); - virtual G4Step* UpdateStepForAtRest(G4Step* Step); - virtual G4Step* UpdateStepForPostStep(G4Step* Step); + G4Step* UpdateStepForAlongStep(G4Step* Step) final; + G4Step* UpdateStepForAtRest(G4Step* Step) final; + G4Step* UpdateStepForPostStep(G4Step* Step) final; // A physics process gives the final state of the particle // based on information of G4Track (or equivalently the PreStepPoint) - virtual void Initialize(const G4Track&); + void Initialize(const G4Track&) final; // Initialize all properties by using G4Track information // --- methods to keep information of the final state --- // IMPORTANT NOTE: despite the name, what this class stores/returns // through its methods, are the "FINAL" values of the Position, Momentum, etc. - const G4TouchableHandle& GetTouchableHandle() const; - void SetTouchableHandle(const G4TouchableHandle& fTouchable); + inline const G4TouchableHandle& GetTouchableHandle() const; + inline void SetTouchableHandle(const G4TouchableHandle& fTouchable); // Get/Set the touchable of the current particle. // Note: Touchable in PostStepPoint will be updated only after // PostStepDoIt - G4Material* GetMaterialInTouchable() const; - void SetMaterialInTouchable(G4Material* fMaterial); + inline G4Material* GetMaterialInTouchable() const; + inline void SetMaterialInTouchable(G4Material* fMaterial); // Get/Propose the material in the touchable of the current particle - const G4MaterialCutsCouple* GetMaterialCutsCoupleInTouchable() const; - void SetMaterialCutsCoupleInTouchable( + inline const G4MaterialCutsCouple* GetMaterialCutsCoupleInTouchable() const; + inline void SetMaterialCutsCoupleInTouchable( const G4MaterialCutsCouple* fMaterialCutsCouple); // Get/Set the materialCutsCouple in the touchable of the current // particle - G4VSensitiveDetector* GetSensitiveDetectorInTouchable() const; - void SetSensitiveDetectorInTouchable( + inline G4VSensitiveDetector* GetSensitiveDetectorInTouchable() const; + inline void SetSensitiveDetectorInTouchable( G4VSensitiveDetector* fSensitiveDetector); // Get/Set the sensitive detector in the touchable of the current particle - G4bool GetMomentumChanged() const; - void SetMomentumChanged(G4bool b); + inline G4bool GetMomentumChanged() const; + inline void SetMomentumChanged(G4bool b); - inline void SetPointerToVectorOfAuxiliaryPoints(std::vector* vec); - inline std::vector* GetPointerToVectorOfAuxiliaryPoints() const; + inline void + SetPointerToVectorOfAuxiliaryPoints(std::vector* vec); + inline std::vector* + GetPointerToVectorOfAuxiliaryPoints() const; // Smooth representation of curved trajectories - virtual void DumpInfo() const; + void DumpInfo() const final; - protected: - - G4ParticleChangeForTransport(const G4ParticleChangeForTransport& right); - G4ParticleChangeForTransport& operator=(const G4ParticleChangeForTransport& right); - // Hidden copy constructor and assignment operator + private: G4TouchableHandle theTouchableHandle; // The changed touchable of a given particle - private: - G4bool isMomentumChanged = false; // The flag which is set if momentum is changed in current step diff --git a/source/track/include/G4ParticleChangeForTransport.icc b/source/track/include/G4ParticleChangeForTransport.icc index 6def15aa37..ca883cac32 100644 --- a/source/track/include/G4ParticleChangeForTransport.icc +++ b/source/track/include/G4ParticleChangeForTransport.icc @@ -93,38 +93,18 @@ inline void G4ParticleChangeForTransport::Initialize(const G4Track& track) { // use base class's method at first InitializeStatusChange(track); - // InitializeLocalEnergyDeposit(track); - InitializeSteppingControl(track); - // InitializeTrueStepLength(track); - // InitializeSecondaries(track); + InitializeSteppingControl(); // set Energy/Momentum etc. equal to those of the parent particle const G4DynamicParticle* pParticle = track.GetDynamicParticle(); - // theEnergyChange = pParticle->GetKineticEnergy(); - // theMomentumChange = pParticle->GetMomentumDirection(); theVelocityChange = track.GetVelocity(); isVelocityChanged = false; thePolarizationChange = pParticle->GetPolarization(); - // theProperTimeChange = pParticle->GetProperTime(); - // set Position/Time etc. equal to those of the parent track - // thePositionChange = track.GetPosition(); // set TimeChange equal to local time of the parent track - theTimeChange = track.GetLocalTime(); - // set initial Local/Global time of the parent track - theLocalTime0 = track.GetLocalTime(); + theLocalTime0 = theTimeChange = track.GetLocalTime(); + // set initial Global time of the parent track theGlobalTime0 = track.GetGlobalTime(); - - // set touchable equal to the next touchable of the parent track - // not set as for now - // theTouchableChange = track.GetNextTouchable(); - - // NOTE: almost nothing is initialized here. - // theMomentumChange, theProperTimeChange, thePositionChange - // and theTimeChange are set by G4Transportation::AlongStepDoIt(); - // the others are not needed. - // Take care when implementing the PostStep related things! - // (P. Urban) } inline void G4ParticleChangeForTransport::SetPointerToVectorOfAuxiliaryPoints( diff --git a/source/track/include/G4Step.hh b/source/track/include/G4Step.hh index 1fb54e13fa..86ace3b888 100644 --- a/source/track/include/G4Step.hh +++ b/source/track/include/G4Step.hh @@ -43,7 +43,7 @@ #ifndef G4Step_hh #define G4Step_hh 1 -#include // Include from 'system' +#include // Include from 'system' #include // Include from 'system' #include "G4ios.hh" // Include from 'system' #include // Include from 'system' @@ -78,11 +78,21 @@ class G4Step G4StepPoint* GetPreStepPoint() const; void SetPreStepPoint(G4StepPoint* value); + G4StepPoint* ResetPreStepPoint(G4StepPoint* value=nullptr); // Pre-Step points + // If Set method is invoked, the previous StepPoint object is deleted. + // If Reset method is invoked, the previous StepPoint object is not deleted + // but its pointer is returned. Thus it's the caller's responsibility to + // properly delete it. G4StepPoint* GetPostStepPoint() const; void SetPostStepPoint(G4StepPoint* value); + G4StepPoint* ResetPostStepPoint(G4StepPoint* value=nullptr); // Post-Step points + // If Set method is invoked, the previous StepPoint object is deleted. + // If Reset method is invoked, the previous StepPoint object is not deleted + // but its pointer is returned. Thus it's the caller's responsibility to + // properly delete it. G4double GetStepLength() const; void SetStepLength(G4double value); diff --git a/source/track/include/G4Step.icc b/source/track/include/G4Step.icc index 52daa71d60..afe431fdac 100644 --- a/source/track/include/G4Step.icc +++ b/source/track/include/G4Step.icc @@ -43,6 +43,13 @@ inline void G4Step::SetPreStepPoint(G4StepPoint* value) fpPreStepPoint = value; } +inline G4StepPoint* G4Step::ResetPreStepPoint(G4StepPoint* value) +{ + G4StepPoint* previousSP = fpPreStepPoint; + fpPreStepPoint = value; + return previousSP; +} + inline G4StepPoint* G4Step::GetPostStepPoint() const { return fpPostStepPoint; @@ -54,6 +61,13 @@ inline void G4Step::SetPostStepPoint(G4StepPoint* value) fpPostStepPoint = value; } +inline G4StepPoint* G4Step::ResetPostStepPoint(G4StepPoint* value) +{ + G4StepPoint* previousSP = fpPostStepPoint; + fpPostStepPoint = value; + return previousSP; +} + inline G4double G4Step::GetStepLength() const { return fStepLength; @@ -169,7 +183,7 @@ inline void G4Step::InitializeStep(G4Track* aValue) // and G4StepPoint, G4Step has to manage the copy actions. // fpPreStepPoint->SetSafety(0.0); - fpPreStepPoint->SetProcessDefinedStep(0); + fpPreStepPoint->SetProcessDefinedStep(nullptr); fpPreStepPoint->SetStepStatus(fUndefined); // G4Track properties @@ -215,7 +229,7 @@ inline void G4Step::UpdateTrack() fpTrack->SetGlobalTime(fpPostStepPoint->GetGlobalTime()); fpTrack->SetLocalTime(fpPostStepPoint->GetLocalTime()); // mass, charge, proper time - G4DynamicParticle* pParticle = + auto* pParticle = (G4DynamicParticle*) (fpTrack->GetDynamicParticle()); pParticle->SetMass(fpPostStepPoint->GetMass()); pParticle->SetCharge(fpPostStepPoint->GetCharge()); diff --git a/source/track/include/G4StepPoint.hh b/source/track/include/G4StepPoint.hh index ebe60d35d0..ca814a4a58 100644 --- a/source/track/include/G4StepPoint.hh +++ b/source/track/include/G4StepPoint.hh @@ -56,11 +56,11 @@ class G4StepPoint { public: - G4StepPoint(); - ~G4StepPoint(){} + G4StepPoint() = default; + ~G4StepPoint()= default; // Constructor/Destructor - G4StepPoint(const G4StepPoint&); + G4StepPoint(const G4StepPoint&) = default; G4StepPoint& operator=(const G4StepPoint&); // Copy Constructor and assignment operator diff --git a/source/track/include/G4Track.icc b/source/track/include/G4Track.icc index f2d79da4a6..ebd2ab3cae 100644 --- a/source/track/include/G4Track.icc +++ b/source/track/include/G4Track.icc @@ -439,7 +439,7 @@ inline void G4Track::SetParentResonanceID(const G4int parentID) } inline G4bool G4Track::HasParentResonance() const { - return ( fParentResonanceDef == nullptr ? false : true ); + return ( fParentResonanceDef != nullptr ); } inline G4int G4Track::GetParentResonancePDGEncoding() const { diff --git a/source/track/include/G4VParticleChange.hh b/source/track/include/G4VParticleChange.hh index 47d37ca8af..21c60ddcc7 100644 --- a/source/track/include/G4VParticleChange.hh +++ b/source/track/include/G4VParticleChange.hh @@ -57,11 +57,9 @@ #ifndef G4VParticleChange_hh #define G4VParticleChange_hh 1 +#include #include "globals.hh" #include "G4ios.hh" -#include - -#include "G4TrackFastVector.hh" #include "G4TrackStatus.hh" #include "G4SteppingControl.hh" #include "G4Step.hh" @@ -72,14 +70,11 @@ class G4VParticleChange public: G4VParticleChange(); - // Default constructor - virtual ~G4VParticleChange(); - // Destructor + virtual ~G4VParticleChange() = default; - G4bool operator==(const G4VParticleChange& right) const; - G4bool operator!=(const G4VParticleChange& right) const; - // Equality operators; pointer comparison + G4VParticleChange(const G4VParticleChange& right) = delete; + G4VParticleChange& operator=(const G4VParticleChange& right) = delete; // --- the following methods are for updating G4Step --- @@ -96,80 +91,83 @@ class G4VParticleChange // --- the following methods are for TruePathLength --- - G4double GetTrueStepLength() const; - void ProposeTrueStepLength(G4double truePathLength); + inline G4double GetTrueStepLength() const; + inline void ProposeTrueStepLength(G4double truePathLength); // Get/Propose theTrueStepLength // --- the following methods are for LocalEnergyDeposit --- - G4double GetLocalEnergyDeposit() const; - void ProposeLocalEnergyDeposit(G4double anEnergyPart); + inline G4double GetLocalEnergyDeposit() const; + inline void ProposeLocalEnergyDeposit(G4double anEnergyPart); // Get/Propose the locally deposited energy // --- the following methods are for nonIonizingEnergyDeposit --- - G4double GetNonIonizingEnergyDeposit() const; - void ProposeNonIonizingEnergyDeposit(G4double anEnergyPart); + inline G4double GetNonIonizingEnergyDeposit() const; + inline void ProposeNonIonizingEnergyDeposit(G4double anEnergyPart); // Get/Propose the non-ionizing deposited energy // --- the following methods are for TrackStatus --- - G4TrackStatus GetTrackStatus() const; - void ProposeTrackStatus(G4TrackStatus status); + inline G4TrackStatus GetTrackStatus() const; + inline void ProposeTrackStatus(G4TrackStatus status); // Get/Propose the final TrackStatus of the current particle + inline const G4Track* GetCurrentTrack() const; + // Get primary track pointer + // --- the following methods are for management of SteppingControl --- - G4SteppingControl GetSteppingControl() const; - void ProposeSteppingControl(G4SteppingControl StepControlFlag); + inline G4SteppingControl GetSteppingControl() const; + inline void ProposeSteppingControl(G4SteppingControl StepControlFlag); // Set/Propose a flag to control stepping manager behaviour // --- the following methods are for management of initial/last step - G4bool GetFirstStepInVolume() const; - G4bool GetLastStepInVolume() const; - void ProposeFirstStepInVolume(G4bool flag); - void ProposeLastStepInVolume(G4bool flag); + inline G4bool GetFirstStepInVolume() const; + inline G4bool GetLastStepInVolume() const; + inline void ProposeFirstStepInVolume(G4bool flag); + inline void ProposeLastStepInVolume(G4bool flag); // --- the following methods are for management of secondaries --- - void Clear(); + inline void Clear(); // Clear the contents of this objects // This method should be called after the Tracking(Stepping) // manager removes all secondaries in theListOfSecondaries - void SetNumberOfSecondaries(G4int totSecondaries); + inline void SetNumberOfSecondaries(G4int totSecondaries); // SetNumberOfSecondaries must be called just before AddSecondary() // in order to secure memory space for theListOfSecondaries // This method resets theNumberOfSecondaries to zero // (that will be incremented at every AddSecondary() call) - G4int GetNumberOfSecondaries() const; + inline G4int GetNumberOfSecondaries() const; // Returns the number of secondaries current stored in G4TrackFastVector - G4Track* GetSecondary(G4int anIndex) const; - // Returns the pointer to the generated secondary particle - // which is specified by an Index + inline G4Track* GetSecondary(G4int anIndex) const; + // Returns the pointer to the generated secondary particle, + // which is specified by an Index, no check on boundary is performed void AddSecondary(G4Track* aSecondary); // Adds a secondary particle to theListOfSecondaries // --- the following methods are for management of weights --- - G4double GetWeight() const; - G4double GetParentWeight() const; + inline G4double GetWeight() const; + inline G4double GetParentWeight() const; // Get weight of the parent (i.e. current) track - void ProposeWeight(G4double finalWeight); - void ProposeParentWeight(G4double finalWeight); + inline void ProposeWeight(G4double finalWeight); + inline void ProposeParentWeight(G4double finalWeight); // Propose new weight of the parent (i.e. current) track // As for AlongStepDoIt, the parent weight will be set // in accumulated manner, i.e. - If two processes propose // weight of W1 and W2 respectively for the track with initial // weight of W0 the final weight is set to: (W1/W0) * (W2/W0) * W0 - void SetSecondaryWeightByProcess(G4bool); - G4bool IsSecondaryWeightSetByProcess() const; + inline void SetSecondaryWeightByProcess(G4bool); + inline G4bool IsSecondaryWeightSetByProcess() const; // In default (fSecondaryWeightByProcess flag is false), // the weight of secondary tracks will be set to the parent weight // If fSecondaryWeightByProcess flag is true, the weight of secondary @@ -190,39 +188,36 @@ class G4VParticleChange virtual void DumpInfo() const; // Print out information - void SetVerboseLevel(G4int vLevel); - G4int GetVerboseLevel() const; + inline void SetVerboseLevel(G4int vLevel); + inline G4int GetVerboseLevel() const; virtual G4bool CheckIt(const G4Track&); - // CheckIt method is provided for debug + // CheckIt method for general control in debug regime - void ClearDebugFlag(); - void SetDebugFlag(); - G4bool GetDebugFlag() const; + inline void ClearDebugFlag(); + inline void SetDebugFlag(); + inline G4bool GetDebugFlag() const; // CheckIt method is activated if debug flag is set // and 'G4VERBOSE' is defined protected: - G4VParticleChange(const G4VParticleChange& right); - G4VParticleChange& operator=(const G4VParticleChange& right); - // Hidden copy constructor and assignment operator - G4Step* UpdateStepInfo(G4Step* Step); // Update the G4Step specific attributes // (i.e. SteppingControl, LocalEnergyDeposit, and TrueStepLength) - void InitializeTrueStepLength(const G4Track&); - void InitializeLocalEnergyDeposit(const G4Track&); - void InitializeSteppingControl(const G4Track&); - void InitializeParentWeight(const G4Track&); - void InitializeParentGlobalTime(const G4Track&); - void InitializeStatusChange(const G4Track&); - void InitializeSecondaries(const G4Track&); - void InitializeStepInVolumeFlags(const G4Track&); + inline void InitializeLocalEnergyDeposit(); + inline void InitializeSteppingControl(); + inline void InitializeParentWeight(const G4Track&); + inline void InitializeStatusChange(const G4Track&); + inline void InitializeSecondaries(); + inline void InitializeFromStep(const G4Step*); + + inline G4double ComputeBeta(G4double kinEnergy); G4bool CheckSecondary(G4Track&); - // CheckSecondary method is provided for debug + // CheckSecondary method is provided to control secondary track + // in debug regime G4double GetAccuracyForWarning() const; G4double GetAccuracyForException() const; @@ -231,9 +226,12 @@ class G4VParticleChange static const G4double accuracyForWarning; static const G4double accuracyForException; + static const G4int maxError; // accuracy levels - G4TrackFastVector* theListOfSecondaries = nullptr; + const G4Track* theCurrentTrack = nullptr; + + std::vector theListOfSecondaries; // The vector of secondaries G4TrackStatus theStatusChange = fAlive; @@ -274,6 +272,8 @@ class G4VParticleChange G4int verboseLevel = 1; // The Verbose level + G4int nError = 0; + G4bool theFirstStepInVolume = false; G4bool theLastStepInVolume = false; // Flag for initial/last step diff --git a/source/track/include/G4VParticleChange.icc b/source/track/include/G4VParticleChange.icc index bbba17e386..fb357f28e0 100644 --- a/source/track/include/G4VParticleChange.icc +++ b/source/track/include/G4VParticleChange.icc @@ -30,7 +30,7 @@ inline G4Track* G4VParticleChange::GetSecondary(G4int anIndex) const { - return (*theListOfSecondaries)[anIndex]; + return theListOfSecondaries[anIndex]; } inline G4int G4VParticleChange::GetNumberOfSecondaries() const @@ -43,6 +43,11 @@ inline void G4VParticleChange::ProposeTrackStatus(G4TrackStatus aStatus) theStatusChange = aStatus; } +inline const G4Track* G4VParticleChange::GetCurrentTrack() const +{ + return theCurrentTrack; +} + inline G4TrackStatus G4VParticleChange::GetTrackStatus() const { return theStatusChange; @@ -133,14 +138,14 @@ inline G4double G4VParticleChange::GetWeight() const // ---------------------------------------------------------------- // inline functions for Initialization // -inline void G4VParticleChange::InitializeLocalEnergyDeposit(const G4Track&) +inline void G4VParticleChange::InitializeLocalEnergyDeposit() { // clear theLocalEnergyDeposited theLocalEnergyDeposit = 0.0; theNonIonizingEnergyDeposit = 0.0; } -inline void G4VParticleChange::InitializeSteppingControl(const G4Track&) +inline void G4VParticleChange::InitializeSteppingControl() { // SteppingControlFlag theSteppingControlFlag = NormalCondition; @@ -157,6 +162,7 @@ inline void G4VParticleChange::InitializeStatusChange(const G4Track& track) { // set TrackStatus equal to the parent track's one theStatusChange = track.GetTrackStatus(); + theCurrentTrack = &track; } inline void G4VParticleChange::InitializeParentWeight(const G4Track& track) @@ -166,92 +172,45 @@ inline void G4VParticleChange::InitializeParentWeight(const G4Track& track) isParentWeightProposed = false; } -inline void G4VParticleChange::InitializeParentGlobalTime(const G4Track& track) +inline void G4VParticleChange::InitializeFromStep(const G4Step* step) { // set the parent track's global time at the pre-step point - theParentGlobalTime = track.GetStep()->GetPreStepPoint()->GetGlobalTime(); -} + theParentGlobalTime = step->GetPreStepPoint()->GetGlobalTime(); -inline void G4VParticleChange::InitializeTrueStepLength(const G4Track& track) -{ - // Reset theTrueStepLength - // !! Caution !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - theTrueStepLength = track.GetStep()->GetStepLength(); - // !! TrueStepLength should be copied from G4Step not G4Track - // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -} - -inline void G4VParticleChange::InitializeStepInVolumeFlags(const G4Track& track) -{ - const G4Step* aStep = track.GetStep(); - theFirstStepInVolume = aStep->IsFirstStepInVolume(); - theLastStepInVolume = aStep->IsLastStepInVolume(); -} - -inline void G4VParticleChange::InitializeSecondaries(const G4Track&) -{ - // clear secondaries - if(theNumberOfSecondaries > 0) - { -#ifdef G4VERBOSE - if(verboseLevel > 0) - { - G4cerr << "G4VParticleChange::Initialize() Warning "; - G4cerr << "theListOfSecondaries is not empty " << G4endl; - G4cerr << "All objects in theListOfSecondaries are destroyed!" << G4endl; - } -#endif - for(G4int index = 0; index < theNumberOfSecondaries; index++) - { - if((*theListOfSecondaries)[index]) - { - delete(*theListOfSecondaries)[index]; - } - } - } - theNumberOfSecondaries = 0; + theTrueStepLength = step->GetStepLength(); + theFirstStepInVolume = step->IsFirstStepInVolume(); + theLastStepInVolume = step->IsLastStepInVolume(); } // ---------------------------------------------------------------- // methods for handling secondaries // -inline void G4VParticleChange::SetNumberOfSecondaries(G4int totSecondaries) +inline void G4VParticleChange::InitializeSecondaries() { - // check if tracks still exist in theListOfSecondaries - if(theNumberOfSecondaries > 0) - { -#ifdef G4VERBOSE - if(verboseLevel > 0) - { - G4cerr << "G4VParticleChange::SetNumberOfSecondaries() Warning "; - G4cerr << "theListOfSecondaries is not empty "; - } -#endif - for(G4int index = 0; index < theNumberOfSecondaries; index++) - { - if((*theListOfSecondaries)[index]) - { - delete(*theListOfSecondaries)[index]; - } - } - } - theNumberOfSecondaries = 0; - theSizeOftheListOfSecondaries = totSecondaries; - - // Initialize ListOfSecondaries - theListOfSecondaries->Initialize(totSecondaries); + theNumberOfSecondaries = 0; } +inline void G4VParticleChange::SetNumberOfSecondaries(G4int totSecondaries) +{ + if(totSecondaries > theSizeOftheListOfSecondaries) + { + theListOfSecondaries.resize(totSecondaries, nullptr); + theSizeOftheListOfSecondaries = totSecondaries; + } + theNumberOfSecondaries = 0; +} + +// ---------------------------------------------------------------- +// total +// inline void G4VParticleChange::Initialize(const G4Track& track) { InitializeStatusChange(track); - InitializeLocalEnergyDeposit(track); - InitializeSteppingControl(track); - InitializeTrueStepLength(track); - InitializeSecondaries(track); + InitializeLocalEnergyDeposit(); + InitializeSteppingControl(); + InitializeSecondaries(); InitializeParentWeight(track); - InitializeParentGlobalTime(track); - InitializeStepInVolumeFlags(track); + InitializeFromStep(track.GetStep()); } inline void G4VParticleChange::ClearDebugFlag() @@ -289,3 +248,9 @@ inline void G4VParticleChange::ProposeParentWeight(G4double w) { ProposeWeight(w); } + +inline G4double G4VParticleChange::ComputeBeta(G4double ekin) +{ + G4double mass = theCurrentTrack->GetDefinition()->GetPDGMass(); + return std::sqrt(ekin*(ekin + 2*mass))/(ekin + mass); +} diff --git a/source/track/include/G4VUserTrackInformation.hh b/source/track/include/G4VUserTrackInformation.hh index c184f58bb4..cd70a8224d 100644 --- a/source/track/include/G4VUserTrackInformation.hh +++ b/source/track/include/G4VUserTrackInformation.hh @@ -55,7 +55,7 @@ class G4VUserTrackInformation { public: - G4VUserTrackInformation(); + G4VUserTrackInformation() = default; G4VUserTrackInformation(const G4String& infoType); // String is provided to indicate the Type of UserTrackInfo class // User is recommended to set the type of his/her class diff --git a/source/track/sources.cmake b/source/track/sources.cmake index c65429452d..32b415cc22 100644 --- a/source/track/sources.cmake +++ b/source/track/sources.cmake @@ -12,7 +12,6 @@ geant4_add_module(G4track G4ParticleChangeForGamma.hh G4ParticleChangeForLoss.hh G4ParticleChangeForMSC.hh - G4ParticleChangeForMSC.icc G4ParticleChangeForRadDecay.hh G4ParticleChangeForTransport.hh G4ParticleChangeForTransport.icc diff --git a/source/track/src/G4FieldTrackUpdator.cc b/source/track/src/G4FieldTrackUpdator.cc index c7ee826eb9..0fdc793bcc 100644 --- a/source/track/src/G4FieldTrackUpdator.cc +++ b/source/track/src/G4FieldTrackUpdator.cc @@ -39,14 +39,13 @@ //--------------------------------------------------------------------- G4FieldTrack* G4FieldTrackUpdator::CreateFieldTrack(const G4Track* trk) { - G4FieldTrack* ftrk = new G4FieldTrack( + return new G4FieldTrack( trk->GetPosition(), trk->GetGlobalTime(), trk->GetMomentumDirection(), trk->GetKineticEnergy(), trk->GetDynamicParticle()->GetMass(), trk->GetDynamicParticle()->GetCharge(), trk->GetDynamicParticle()->GetPolarization(), 0.0 // magnetic dipole moment to be implemented ); - return ftrk; } //--------------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChange.cc b/source/track/src/G4ParticleChange.cc index 894bb27dee..1cc26934f6 100644 --- a/source/track/src/G4ParticleChange.cc +++ b/source/track/src/G4ParticleChange.cc @@ -33,100 +33,12 @@ #include "G4SystemOfUnits.hh" #include "G4Track.hh" #include "G4Step.hh" -#include "G4TrackFastVector.hh" #include "G4DynamicParticle.hh" #include "G4ExceptionSeverity.hh" // -------------------------------------------------------------------- G4ParticleChange::G4ParticleChange() - : G4VParticleChange() -{ -} - -// -------------------------------------------------------------------- -G4ParticleChange::~G4ParticleChange() -{ -} - -// -------------------------------------------------------------------- -G4ParticleChange::G4ParticleChange(const G4ParticleChange& right) - : G4VParticleChange(right) -{ - theCurrentTrack = right.theCurrentTrack; - - theMomentumDirectionChange = right.theMomentumDirectionChange; - thePolarizationChange = right.thePolarizationChange; - thePositionChange = right.thePositionChange; - theGlobalTime0 = right.theGlobalTime0; - theLocalTime0 = right.theLocalTime0; - theTimeChange = right.theTimeChange; - theProperTimeChange = right.theProperTimeChange; - theEnergyChange = right.theEnergyChange; - theVelocityChange = right.theVelocityChange; - isVelocityChanged = true; - theMassChange = right.theMassChange; - theChargeChange = right.theChargeChange; - theMagneticMomentChange = right.theMagneticMomentChange; -} - -// -------------------------------------------------------------------- -G4ParticleChange& G4ParticleChange::operator=(const G4ParticleChange& right) -{ - if(this != &right) - { - if(theNumberOfSecondaries > 0) - { - for(G4int index = 0; index < theNumberOfSecondaries; ++index) - { - if((*theListOfSecondaries)[index]) - delete(*theListOfSecondaries)[index]; - } - } - delete theListOfSecondaries; - - theListOfSecondaries = new G4TrackFastVector(); - theNumberOfSecondaries = right.theNumberOfSecondaries; - for(G4int index = 0; index < theNumberOfSecondaries; ++index) - { - G4Track* newTrack = new G4Track(*((*right.theListOfSecondaries)[index])); - theListOfSecondaries->SetElement(index, newTrack); - } - - theStatusChange = right.theStatusChange; - theCurrentTrack = right.theCurrentTrack; - - theMomentumDirectionChange = right.theMomentumDirectionChange; - thePolarizationChange = right.thePolarizationChange; - thePositionChange = right.thePositionChange; - theGlobalTime0 = right.theGlobalTime0; - theLocalTime0 = right.theLocalTime0; - theTimeChange = right.theTimeChange; - theProperTimeChange = right.theProperTimeChange; - theEnergyChange = right.theEnergyChange; - theVelocityChange = right.theVelocityChange; - isVelocityChanged = true; - theMassChange = right.theMassChange; - theChargeChange = right.theChargeChange; - theMagneticMomentChange = right.theMagneticMomentChange; - - theTrueStepLength = right.theTrueStepLength; - theLocalEnergyDeposit = right.theLocalEnergyDeposit; - theSteppingControlFlag = right.theSteppingControlFlag; - } - return *this; -} - -// -------------------------------------------------------------------- -G4bool G4ParticleChange::operator==(const G4ParticleChange& right) const -{ - return ((G4VParticleChange*) this == (G4VParticleChange*) &right); -} - -// -------------------------------------------------------------------- -G4bool G4ParticleChange::operator!=(const G4ParticleChange& right) const -{ - return ((G4VParticleChange*) this != (G4VParticleChange*) &right); -} +{} // -------------------------------------------------------------------- void G4ParticleChange::AddSecondary(G4DynamicParticle* aParticle, @@ -184,6 +96,7 @@ void G4ParticleChange::AddSecondary(G4DynamicParticle* aParticle, } // -------------------------------------------------------------------- + void G4ParticleChange::AddSecondary(G4Track* aTrack) { // add a secondary @@ -195,7 +108,6 @@ void G4ParticleChange::Initialize(const G4Track& track) { // use base class's method at first G4VParticleChange::Initialize(track); - theCurrentTrack = &track; // set Energy/Momentum etc. equal to those of the parent particle const G4DynamicParticle* pParticle = track.GetDynamicParticle(); @@ -215,10 +127,9 @@ void G4ParticleChange::Initialize(const G4Track& track) thePositionChange = track.GetPosition(); // set TimeChange equal to local time of the parent track - theTimeChange = track.GetLocalTime(); + theTimeChange = theLocalTime0 = track.GetLocalTime(); - // set initial Local/Global time of the parent track - theLocalTime0 = track.GetLocalTime(); + // set initial global time of the parent track theGlobalTime0 = track.GetGlobalTime(); } @@ -236,10 +147,8 @@ G4Step* G4ParticleChange::UpdateStepForAlongStep(G4Step* pStep) // pointer to G4ParticleMometum. Also it is a normalized // momentum vector - G4StepPoint* pPreStepPoint = pStep->GetPreStepPoint(); + const G4StepPoint* pPreStepPoint = pStep->GetPreStepPoint(); G4StepPoint* pPostStepPoint = pStep->GetPostStepPoint(); - G4Track* pTrack = pStep->GetTrack(); - G4double mass = theMassChange; // set Mass/Charge/MagneticMoment pPostStepPoint->SetMass(theMassChange); @@ -256,39 +165,49 @@ G4Step* G4ParticleChange::UpdateStepForAlongStep(G4Step* pStep) { // calculate new momentum G4ThreeVector pMomentum = pPostStepPoint->GetMomentum() - + (CalcMomentum(theEnergyChange, theMomentumDirectionChange, mass) - - pPreStepPoint->GetMomentum()); - G4double tMomentum = pMomentum.mag(); + + (CalcMomentum(theEnergyChange, theMomentumDirectionChange, + theMassChange) - pPreStepPoint->GetMomentum()); + G4double tMomentum2 = pMomentum.mag2(); G4ThreeVector direction(1.0, 0.0, 0.0); - if(tMomentum > 0.) + if(tMomentum2 > 0.) { - G4double inv_Momentum = 1.0 / tMomentum; - direction = pMomentum * inv_Momentum; + direction = pMomentum / std::sqrt(tMomentum2); } pPostStepPoint->SetMomentumDirection(direction); pPostStepPoint->SetKineticEnergy(energy); + + // if velocity is not set it should be recomputed + // + if(!isVelocityChanged) + { + if (theMassChange > 0.0) + { + theVelocityChange = CLHEP::c_light * + std::sqrt(energy*(energy + 2*theMassChange))/(energy + theMassChange); + } + else + { + // zero mass particle + theVelocityChange = CLHEP::c_light; + // optical photon case + if(theCurrentTrack->GetParticleDefinition()->GetPDGEncoding() == -22) + { + G4Track* pTrack = pStep->GetTrack(); + G4double e = pTrack->GetKineticEnergy(); + pTrack->SetKineticEnergy(energy); + theVelocityChange = pTrack->CalculateVelocityForOpticalPhoton(); + pTrack->SetKineticEnergy(e); + } + } + } + pPostStepPoint->SetVelocity(theVelocityChange); } else { // stop case - // pPostStepPoint->SetMomentumDirection(G4ThreeVector(1., 0., 0.)); pPostStepPoint->SetKineticEnergy(0.0); + pPostStepPoint->SetVelocity(0.0); } - // calculate velocity - if(!isVelocityChanged) - { - if(energy > 0.0) - { - pTrack->SetKineticEnergy(energy); - theVelocityChange = pTrack->CalculateVelocity(); - pTrack->SetKineticEnergy(preEnergy); - } - else if(theMassChange > 0.0) - { - theVelocityChange = 0.0; - } - } - pPostStepPoint->SetVelocity(theVelocityChange); // update polarization pPostStepPoint->AddPolarization(thePolarizationChange - @@ -307,8 +226,7 @@ G4Step* G4ParticleChange::UpdateStepForAlongStep(G4Step* pStep) } #ifdef G4VERBOSE - G4Track* aTrack = pStep->GetTrack(); - if(debugFlag) { CheckIt(*aTrack); } + if(debugFlag) { CheckIt( *theCurrentTrack ); } #endif // update the G4Step specific attributes @@ -334,22 +252,23 @@ G4Step* G4ParticleChange::UpdateStepForPostStep(G4Step* pStep) // update kinetic energy and momentum direction pPostStepPoint->SetMomentumDirection(theMomentumDirectionChange); - pPostStepPoint->SetKineticEnergy(theEnergyChange); // calculate velocity - pTrack->SetKineticEnergy(theEnergyChange); - if(!isVelocityChanged) + if(theEnergyChange > 0.0) { - if(theEnergyChange > 0.0) + pPostStepPoint->SetKineticEnergy(theEnergyChange); + pTrack->SetKineticEnergy(theEnergyChange); + if(!isVelocityChanged) { theVelocityChange = pTrack->CalculateVelocity(); } - else if(theMassChange > 0.0) - { - theVelocityChange = 0.0; - } + pPostStepPoint->SetVelocity(theVelocityChange); + } + else + { + pPostStepPoint->SetKineticEnergy(0.0); + pPostStepPoint->SetVelocity(0.0); } - pPostStepPoint->SetVelocity(theVelocityChange); // update polarization pPostStepPoint->SetPolarization(thePolarizationChange); @@ -366,8 +285,7 @@ G4Step* G4ParticleChange::UpdateStepForPostStep(G4Step* pStep) } #ifdef G4VERBOSE - G4Track* aTrack = pStep->GetTrack(); - if(debugFlag) { CheckIt(*aTrack); } + if(debugFlag) { CheckIt( *theCurrentTrack ); } #endif // update the G4Step specific attributes @@ -390,7 +308,7 @@ G4Step* G4ParticleChange::UpdateStepForAtRest(G4Step* pStep) pPostStepPoint->SetMomentumDirection(theMomentumDirectionChange); pPostStepPoint->SetKineticEnergy(theEnergyChange); if(!isVelocityChanged) - theVelocityChange = pStep->GetTrack()->CalculateVelocity(); + theVelocityChange = theCurrentTrack->CalculateVelocity(); pPostStepPoint->SetVelocity(theVelocityChange); // update polarization @@ -408,8 +326,7 @@ G4Step* G4ParticleChange::UpdateStepForAtRest(G4Step* pStep) } #ifdef G4VERBOSE - G4Track* aTrack = pStep->GetTrack(); - if(debugFlag) { CheckIt(*aTrack); } + if(debugFlag) { CheckIt( *theCurrentTrack ); } #endif // update the G4Step specific attributes @@ -422,7 +339,7 @@ void G4ParticleChange::DumpInfo() const // use base-class DumpInfo G4VParticleChange::DumpInfo(); - G4int oldprc = G4cout.precision(3); + G4long oldprc = G4cout.precision(8); G4cout << " Mass (GeV) : " << std::setw(20) << theMassChange / GeV << G4endl; @@ -462,203 +379,3 @@ void G4ParticleChange::DumpInfo() const << thePolarizationChange.z() << G4endl; G4cout.precision(oldprc); } - -// -------------------------------------------------------------------- -G4bool G4ParticleChange::CheckIt(const G4Track& aTrack) -{ - G4bool exitWithError = false; - G4double accuracy; - static G4ThreadLocal G4int nError = 0; -#ifdef G4VERBOSE - const G4int maxError = 30; -#endif - - // no check in case of "fStopAndKill" - if(GetTrackStatus() == fStopAndKill) - return G4VParticleChange::CheckIt(aTrack); - - // MomentumDirection should be unit vector - G4bool itsOKforMomentum = true; - if(theEnergyChange > 0.) - { - accuracy = std::fabs(theMomentumDirectionChange.mag2() - 1.0); - if(accuracy > accuracyForWarning) - { - itsOKforMomentum = false; - nError += 1; - exitWithError = exitWithError || (accuracy > accuracyForException); -#ifdef G4VERBOSE - if(nError < maxError) - { - G4cout << " G4ParticleChange::CheckIt : "; - G4cout << "the Momentum Change is not unit vector !!" - << " Difference: " << accuracy << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m << G4endl; - } -#endif - } - } - - // both global and proper time should not go back - G4bool itsOKforGlobalTime = true; - accuracy = (aTrack.GetLocalTime() - theTimeChange) / ns; - if(accuracy > accuracyForWarning) - { - itsOKforGlobalTime = false; - nError += 1; - exitWithError = exitWithError || (accuracy > accuracyForException); -#ifdef G4VERBOSE - if(nError < maxError) - { - G4cout << " G4ParticleChange::CheckIt : "; - G4cout << "the local time goes back !!" - << " Difference: " << accuracy << "[ns] " << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m - << " global time=" << aTrack.GetGlobalTime() / ns - << " local time=" << aTrack.GetLocalTime() / ns - << " proper time=" << aTrack.GetProperTime() / ns << G4endl; - } -#endif - } - - G4bool itsOKforProperTime = true; - accuracy = (aTrack.GetProperTime() - theProperTimeChange) / ns; - if(accuracy > accuracyForWarning) - { - itsOKforProperTime = false; - nError += 1; - exitWithError = exitWithError || (accuracy > accuracyForException); -#ifdef G4VERBOSE - if(nError < maxError) - { - G4cout << " G4ParticleChange::CheckIt : "; - G4cout << "the proper time goes back !!" - << " Difference: " << accuracy << "[ns] " << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m - << " global time=" << aTrack.GetGlobalTime() / ns - << " local time=" << aTrack.GetLocalTime() / ns - << " proper time=" << aTrack.GetProperTime() / ns << G4endl; - } -#endif - } - - // kinetic Energy should not be negative - G4bool itsOKforEnergy = true; - accuracy = -1.0 * theEnergyChange / MeV; - if(accuracy > accuracyForWarning) - { - itsOKforEnergy = false; - nError += 1; - exitWithError = exitWithError || (accuracy > accuracyForException); -#ifdef G4VERBOSE - if(nError < maxError) - { - G4cout << " G4ParticleChange::CheckIt : "; - G4cout << "the kinetic energy is negative !!" - << " Difference: " << accuracy << "[MeV] " << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m << G4endl; - } -#endif - } - - // velocity should not be less than c_light - G4bool itsOKforVelocity = true; - if(theVelocityChange < 0.) - { - itsOKforVelocity = false; - nError += 1; - exitWithError = true; -#ifdef G4VERBOSE - if(nError < maxError) - { - G4cout << " G4ParticleChange::CheckIt : "; - G4cout << "the velocity is negative !!" - << " Velocity: " << theVelocityChange / c_light << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m << G4endl; - } -#endif - } - - accuracy = theVelocityChange / c_light - 1.0; - if(accuracy > accuracyForWarning) - { - itsOKforVelocity = false; - nError += 1; - exitWithError = exitWithError || (accuracy > accuracyForException); -#ifdef G4VERBOSE - if(nError < maxError) - { - G4cout << " G4ParticleChange::CheckIt : "; - G4cout << "the velocity is greater than c_light !!" << G4endl; - G4cout << " Velocity: " << theVelocityChange / c_light << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m << G4endl; - } -#endif - } - - G4bool itsOK = itsOKforMomentum && itsOKforEnergy && itsOKforVelocity && - itsOKforProperTime && itsOKforGlobalTime; - // dump out information of this particle change -#ifdef G4VERBOSE - if(!itsOK) - { - DumpInfo(); - } -#endif - - // Exit with error - if(exitWithError) - { - G4Exception("G4ParticleChange::CheckIt()", "TRACK003", EventMustBeAborted, - "momentum, energy, and/or time was illegal"); - } - // correction - if(!itsOKforMomentum) - { - G4double vmag = theMomentumDirectionChange.mag(); - theMomentumDirectionChange = (1. / vmag) * theMomentumDirectionChange; - } - if(!itsOKforGlobalTime) - { - theTimeChange = aTrack.GetLocalTime(); - } - if(!itsOKforProperTime) - { - theProperTimeChange = aTrack.GetProperTime(); - } - if(!itsOKforEnergy) - { - theEnergyChange = 0.0; - } - if(!itsOKforVelocity) - { - theVelocityChange = c_light; - } - - itsOK = (itsOK) && G4VParticleChange::CheckIt(aTrack); - return itsOK; -} diff --git a/source/track/src/G4ParticleChangeForDecay.cc b/source/track/src/G4ParticleChangeForDecay.cc index 70578d5207..d3608a7a01 100644 --- a/source/track/src/G4ParticleChangeForDecay.cc +++ b/source/track/src/G4ParticleChangeForDecay.cc @@ -32,81 +32,12 @@ #include "G4SystemOfUnits.hh" #include "G4Track.hh" #include "G4Step.hh" -#include "G4TrackFastVector.hh" #include "G4DynamicParticle.hh" #include "G4ExceptionSeverity.hh" // -------------------------------------------------------------------- G4ParticleChangeForDecay::G4ParticleChangeForDecay() - : G4VParticleChange() -{ -} - -// -------------------------------------------------------------------- -G4ParticleChangeForDecay::~G4ParticleChangeForDecay() -{ -} - -// -------------------------------------------------------------------- -G4ParticleChangeForDecay:: -G4ParticleChangeForDecay(const G4ParticleChangeForDecay& right) - : G4VParticleChange(right) -{ - theGlobalTime0 = right.theGlobalTime0; - theLocalTime0 = right.theLocalTime0; - theTimeChange = right.theTimeChange; - thePolarizationChange = right.thePolarizationChange; -} - -// -------------------------------------------------------------------- -G4ParticleChangeForDecay& -G4ParticleChangeForDecay::operator=(const G4ParticleChangeForDecay& right) -{ - if(this != &right) - { - if(theNumberOfSecondaries > 0) - { - for(G4int index = 0; index < theNumberOfSecondaries; ++index) - { - if((*theListOfSecondaries)[index]) - delete(*theListOfSecondaries)[index]; - } - } - delete theListOfSecondaries; - theListOfSecondaries = new G4TrackFastVector(); - theNumberOfSecondaries = right.theNumberOfSecondaries; - for(G4int index = 0; index < theNumberOfSecondaries; ++index) - { - G4Track* newTrack = new G4Track(*((*right.theListOfSecondaries)[index])); - theListOfSecondaries->SetElement(index, newTrack); - } - - theStatusChange = right.theStatusChange; - theTrueStepLength = right.theTrueStepLength; - theLocalEnergyDeposit = right.theLocalEnergyDeposit; - theSteppingControlFlag = right.theSteppingControlFlag; - - theGlobalTime0 = right.theGlobalTime0; - theLocalTime0 = right.theLocalTime0; - theTimeChange = right.theTimeChange; - thePolarizationChange = right.thePolarizationChange; - } - return *this; -} - -// -------------------------------------------------------------------- -G4bool G4ParticleChangeForDecay::operator==( - const G4ParticleChangeForDecay& right) const -{ - return ((G4VParticleChange*) this == (G4VParticleChange*) &right); -} - -// -------------------------------------------------------------------- -G4bool G4ParticleChangeForDecay::operator!=( - const G4ParticleChangeForDecay& right) const -{ - return ((G4VParticleChange*) this != (G4VParticleChange*) &right); -} +{} // -------------------------------------------------------------------- void G4ParticleChangeForDecay::Initialize(const G4Track& track) @@ -114,17 +45,14 @@ void G4ParticleChangeForDecay::Initialize(const G4Track& track) // use base class's method at first G4VParticleChange::Initialize(track); - const G4DynamicParticle* pParticle = track.GetDynamicParticle(); - // set TimeChange equal to local time of the parent track - theTimeChange = track.GetLocalTime(); + theLocalTime0 = theTimeChange = track.GetLocalTime(); // set initial Local/Global time of the parent track - theLocalTime0 = track.GetLocalTime(); theGlobalTime0 = track.GetGlobalTime(); // set the Polarization equal to those of the parent track - thePolarizationChange = pParticle->GetPolarization(); + thePolarizationChange = track.GetDynamicParticle()->GetPolarization(); } // -------------------------------------------------------------------- @@ -159,8 +87,7 @@ G4Step* G4ParticleChangeForDecay::UpdateStepForAtRest(G4Step* pStep) pPostStepPoint->AddProperTime(theTimeChange - theLocalTime0); #ifdef G4VERBOSE - G4Track* aTrack = pStep->GetTrack(); - if(debugFlag) { CheckIt(*aTrack); } + if(debugFlag) { CheckIt(*theCurrentTrack); } #endif if(isParentWeightProposed) @@ -176,63 +103,56 @@ void G4ParticleChangeForDecay::DumpInfo() const // Show header G4VParticleChange::DumpInfo(); - G4int oldprc = G4cout.precision(3); - G4cout << " proposed local Time (ns) : " << std::setw(20) + G4long oldprc = G4cout.precision(8); + G4cout << " -----------------------------------------------" << G4endl; + G4cout << " G4ParticleChangeForDecay proposes: " << G4endl; + G4cout << " Proposed local Time (ns): " << std::setw(20) << theTimeChange / ns << G4endl; - G4cout << " initial local Time (ns) : " << std::setw(20) + G4cout << " Initial local Time (ns) : " << std::setw(20) << theLocalTime0 / ns << G4endl; - G4cout << " initial global Time (ns) : " << std::setw(20) + G4cout << " Initial global Time (ns): " << std::setw(20) << theGlobalTime0 / ns << G4endl; + G4cout << " Current global Time (ns): " << std::setw(20) + << theCurrentTrack->GetGlobalTime() / ns << G4endl; G4cout.precision(oldprc); } // -------------------------------------------------------------------- G4bool G4ParticleChangeForDecay::CheckIt(const G4Track& aTrack) { - G4bool exitWithError = false; - - G4double accuracy; - // local time should not go back G4bool itsOK = true; - accuracy = -1.0 * (theTimeChange - theLocalTime0) / ns; - if(accuracy > accuracyForWarning) + if(theTimeChange < theLocalTime0) { itsOK = false; - exitWithError = (accuracy > accuracyForException); + ++nError; #ifdef G4VERBOSE - G4cout << " G4ParticleChangeForDecay::CheckIt : "; - G4cout << "the local time goes back !!" - << " Difference: " << accuracy << "[ns] " << G4endl; - G4cout << "initial local time " << theLocalTime0 / ns << "[ns] " - << "initial global time " << theGlobalTime0 / ns << "[ns] " - << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m << G4endl; + if(nError < maxError) + { + G4cout << " G4ParticleChangeForDecay::CheckIt : "; + G4cout << "the local time goes back !!" + << " Difference: " << (theTimeChange - theLocalTime0) / ns + << "[ns] " << G4endl; + G4cout << "initial local time " << theLocalTime0 / ns << "[ns] " + << "initial global time " << theGlobalTime0 / ns << "[ns] " + << G4endl; + } #endif + theTimeChange = theLocalTime0; } - // dump out information of this particle change -#ifdef G4VERBOSE - if(!itsOK) { DumpInfo(); } -#endif - - // exit with error - if(exitWithError) - { - G4Exception("G4ParticleChangeForDecay::CheckIt()", "TRACK005", - EventMustBeAborted, "time was illegal"); - } - - // correction if(!itsOK) { - theTimeChange = aTrack.GetLocalTime(); + if(nError < maxError) + { +#ifdef G4VERBOSE + // dump out information of this particle change + DumpInfo(); +#endif + G4Exception("G4ParticleChangeForDecay::CheckIt()", "TRACK005", + JustWarning, "time is illegal"); + } } - itsOK = (itsOK) && G4VParticleChange::CheckIt(aTrack); - return itsOK; + return (itsOK) && G4VParticleChange::CheckIt(aTrack); } diff --git a/source/track/src/G4ParticleChangeForGamma.cc b/source/track/src/G4ParticleChangeForGamma.cc index ae25286cab..4fd376c2b3 100644 --- a/source/track/src/G4ParticleChangeForGamma.cc +++ b/source/track/src/G4ParticleChangeForGamma.cc @@ -37,75 +37,21 @@ #include "G4ExceptionSeverity.hh" // -------------------------------------------------------------------- -G4ParticleChangeForGamma::G4ParticleChangeForGamma() - : G4VParticleChange() +G4ParticleChangeForGamma::G4ParticleChangeForGamma() { - theSteppingControlFlag = NormalCondition; - // Disable flag that is enabled in G4VParticleChange if G4VERBOSE. - debugFlag = false; -} - -// -------------------------------------------------------------------- -G4ParticleChangeForGamma::~G4ParticleChangeForGamma() -{ -} - -// -------------------------------------------------------------------- -G4ParticleChangeForGamma:: -G4ParticleChangeForGamma(const G4ParticleChangeForGamma& right) - : G4VParticleChange(right) -{ - currentTrack = right.currentTrack; - proposedKinEnergy = right.proposedKinEnergy; - proposedMomentumDirection = right.proposedMomentumDirection; - proposedPolarization = right.proposedPolarization; -} - -// -------------------------------------------------------------------- -G4ParticleChangeForGamma& -G4ParticleChangeForGamma::operator=(const G4ParticleChangeForGamma& right) -{ - if(this != &right) - { - if(theNumberOfSecondaries > 0) - { - for(G4int index = 0; index < theNumberOfSecondaries; ++index) - { - if((*theListOfSecondaries)[index]) - delete(*theListOfSecondaries)[index]; - } - } - delete theListOfSecondaries; - theListOfSecondaries = new G4TrackFastVector(); - theNumberOfSecondaries = right.theNumberOfSecondaries; - for(G4int index = 0; index < theNumberOfSecondaries; ++index) - { - G4Track* newTrack = new G4Track(*((*right.theListOfSecondaries)[index])); - theListOfSecondaries->SetElement(index, newTrack); - } - - theStatusChange = right.theStatusChange; - theLocalEnergyDeposit = right.theLocalEnergyDeposit; - theSteppingControlFlag = right.theSteppingControlFlag; - theParentWeight = right.theParentWeight; - - currentTrack = right.currentTrack; - proposedKinEnergy = right.proposedKinEnergy; - proposedMomentumDirection = right.proposedMomentumDirection; - proposedPolarization = right.proposedPolarization; - } - return *this; + // Disable flag to avoid check of each secondary at each step + debugFlag = false; } // -------------------------------------------------------------------- void G4ParticleChangeForGamma::AddSecondary(G4DynamicParticle* aParticle) { // create track - G4Track* aTrack = new G4Track(aParticle, currentTrack->GetGlobalTime(), - currentTrack->GetPosition()); + G4Track* aTrack = new G4Track(aParticle, theCurrentTrack->GetGlobalTime(), + theCurrentTrack->GetPosition()); // touchable handle is copied to keep the pointer - aTrack->SetTouchableHandle(currentTrack->GetTouchableHandle()); + aTrack->SetTouchableHandle(theCurrentTrack->GetTouchableHandle()); // add a secondary G4VParticleChange::AddSecondary(aTrack); @@ -129,19 +75,26 @@ G4Step* G4ParticleChangeForGamma::UpdateStepForAtRest(G4Step* pStep) G4Step* G4ParticleChangeForGamma::UpdateStepForPostStep(G4Step* pStep) { G4StepPoint* pPostStepPoint = pStep->GetPostStepPoint(); - G4Track* pTrack = pStep->GetTrack(); - pPostStepPoint->SetKineticEnergy(proposedKinEnergy); pPostStepPoint->SetMomentumDirection(proposedMomentumDirection); pPostStepPoint->SetPolarization(proposedPolarization); // update velocity for scattering process and particles with mass - if(proposedKinEnergy > 0.0) + if(proposedKinEnergy > 0.0) { - if(pTrack->GetParticleDefinition()->GetPDGMass() > 0.0) - { - pPostStepPoint->SetVelocity(pTrack->CalculateVelocity()); + pPostStepPoint->SetKineticEnergy(proposedKinEnergy); + G4double mass = theCurrentTrack->GetDefinition()->GetPDGMass(); + G4double v = CLHEP::c_light; + if(mass > 0.0) { + v *= std::sqrt(proposedKinEnergy*(proposedKinEnergy + 2*mass))/ + (proposedKinEnergy + mass); } + pPostStepPoint->SetVelocity(v); + } + else + { + pPostStepPoint->SetKineticEnergy(0.0); + pPostStepPoint->SetVelocity(0.0); } if(isParentWeightProposed) @@ -160,7 +113,9 @@ void G4ParticleChangeForGamma::DumpInfo() const // use base-class DumpInfo G4VParticleChange::DumpInfo(); - G4int oldprc = G4cout.precision(3); + G4long oldprc = G4cout.precision(8); + G4cout << " -----------------------------------------------" << G4endl; + G4cout << " G4ParticleChangeForGamma proposes: " << G4endl; G4cout << " Kinetic Energy (MeV): " << std::setw(20) << proposedKinEnergy / MeV << G4endl; G4cout << " Momentum Direction: " << std::setw(20) @@ -170,50 +125,3 @@ void G4ParticleChangeForGamma::DumpInfo() const G4cout.precision(oldprc); } -// -------------------------------------------------------------------- -G4bool G4ParticleChangeForGamma::CheckIt(const G4Track& aTrack) -{ - G4bool itsOK = true; - G4bool exitWithError = false; - - G4double accuracy; - - // Energy should not be lager than initial value - accuracy = (proposedKinEnergy - aTrack.GetKineticEnergy()) / MeV; - if(accuracy > accuracyForWarning) - { - itsOK = false; - exitWithError = (accuracy > accuracyForException); -#ifdef G4VERBOSE - G4cout << "G4ParticleChangeForGamma::CheckIt: "; - G4cout << "KinEnergy become larger than the initial value!" - << " Difference: " << accuracy << "[MeV] " << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m << G4endl; -#endif - } - - // dump out information of this particle change -#ifdef G4VERBOSE - if(!itsOK) { DumpInfo(); } -#endif - - // Exit with error - if(exitWithError) - { - G4Exception("G4ParticleChangeForGamma::CheckIt()", "TRACK004", - EventMustBeAborted, "energy was illegal"); - } - - // correction - if(!itsOK) - { - proposedKinEnergy = aTrack.GetKineticEnergy(); - } - - itsOK = (itsOK) && G4VParticleChange::CheckIt(aTrack); - return itsOK; -} diff --git a/source/track/src/G4ParticleChangeForLoss.cc b/source/track/src/G4ParticleChangeForLoss.cc index fb727f0d3f..dd3d1ff332 100644 --- a/source/track/src/G4ParticleChangeForLoss.cc +++ b/source/track/src/G4ParticleChangeForLoss.cc @@ -31,74 +31,13 @@ #include "G4ParticleChangeForLoss.hh" #include "G4SystemOfUnits.hh" -#include "G4Track.hh" -#include "G4Step.hh" -#include "G4DynamicParticle.hh" #include "G4ExceptionSeverity.hh" // -------------------------------------------------------------------- G4ParticleChangeForLoss::G4ParticleChangeForLoss() - : G4VParticleChange() - , lowEnergyLimit(1.0 * eV) { - theSteppingControlFlag = NormalCondition; // Disable flag that is enabled in G4VParticleChange if G4VERBOSE. - debugFlag = false; -} - -// -------------------------------------------------------------------- -G4ParticleChangeForLoss::~G4ParticleChangeForLoss() -{ -} - -// -------------------------------------------------------------------- -G4ParticleChangeForLoss::G4ParticleChangeForLoss( - const G4ParticleChangeForLoss& right) - : G4VParticleChange(right) -{ - currentTrack = right.currentTrack; - proposedKinEnergy = right.proposedKinEnergy; - lowEnergyLimit = right.lowEnergyLimit; - currentCharge = right.currentCharge; - proposedMomentumDirection = right.proposedMomentumDirection; -} - -// -------------------------------------------------------------------- -G4ParticleChangeForLoss& G4ParticleChangeForLoss::operator=( - const G4ParticleChangeForLoss& right) -{ - if(this != &right) - { - if(theNumberOfSecondaries > 0) - { - for(G4int index = 0; index < theNumberOfSecondaries; ++index) - { - if((*theListOfSecondaries)[index]) - delete(*theListOfSecondaries)[index]; - } - } - delete theListOfSecondaries; - theListOfSecondaries = new G4TrackFastVector(); - theNumberOfSecondaries = right.theNumberOfSecondaries; - for(G4int index = 0; index < theNumberOfSecondaries; ++index) - { - G4Track* newTrack = new G4Track(*((*right.theListOfSecondaries)[index])); - theListOfSecondaries->SetElement(index, newTrack); - } - - theStatusChange = right.theStatusChange; - theLocalEnergyDeposit = right.theLocalEnergyDeposit; - theSteppingControlFlag = right.theSteppingControlFlag; - theParentWeight = right.theParentWeight; - isParentWeightProposed = right.isParentWeightProposed; - fSetSecondaryWeightByProcess = right.fSetSecondaryWeightByProcess; - - currentTrack = right.currentTrack; - proposedKinEnergy = right.proposedKinEnergy; - currentCharge = right.currentCharge; - proposedMomentumDirection = right.proposedMomentumDirection; - } - return *this; + debugFlag = false; } // -------------------------------------------------------------------- @@ -107,7 +46,9 @@ void G4ParticleChangeForLoss::DumpInfo() const // use base-class DumpInfo G4VParticleChange::DumpInfo(); - G4int oldprc = G4cout.precision(3); + G4long oldprc = G4cout.precision(8); + G4cout << " -----------------------------------------------" << G4endl; + G4cout << " G4ParticleChangeForLoss proposes: " << G4endl; G4cout << " Charge (eplus) : " << std::setw(20) << currentCharge / eplus << G4endl; G4cout << " Kinetic Energy (MeV): " << std::setw(20) @@ -121,82 +62,32 @@ void G4ParticleChangeForLoss::DumpInfo() const G4cout.precision(oldprc); } -// -------------------------------------------------------------------- -G4bool G4ParticleChangeForLoss::CheckIt(const G4Track& aTrack) -{ - G4bool itsOK = true; - G4bool exitWithError = false; - - G4double accuracy; - - // Energy should not be lager than initial value - accuracy = (proposedKinEnergy - aTrack.GetKineticEnergy()) / MeV; - if(accuracy > accuracyForWarning) - { - itsOK = false; - exitWithError = (accuracy > accuracyForException); -#ifdef G4VERBOSE - G4cout << "G4ParticleChangeForLoss::CheckIt: "; - G4cout << "KinEnergy become larger than the initial value!" - << " Difference: " << accuracy << "[MeV] " << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m << G4endl; -#endif - } - - // dump out information of this particle change -#ifdef G4VERBOSE - if(!itsOK) { DumpInfo(); } -#endif - - // exit with error - if(exitWithError) - { - G4Exception("G4ParticleChangeForLoss::CheckIt()", "TRACK004", - EventMustBeAborted, "energy was illegal"); - } - - // correction - if(!itsOK) - { - proposedKinEnergy = aTrack.GetKineticEnergy(); - } - - itsOK = (itsOK) && G4VParticleChange::CheckIt(aTrack); - return itsOK; -} - // -------------------------------------------------------------------- G4Step* G4ParticleChangeForLoss::UpdateStepForAlongStep(G4Step* pStep) { + const G4StepPoint* pPreStepPoint = pStep->GetPreStepPoint(); G4StepPoint* pPostStepPoint = pStep->GetPostStepPoint(); - G4StepPoint* pPreStepPoint = pStep->GetPreStepPoint(); - G4Track* pTrack = pStep->GetTrack(); // accumulate change of the kinetic energy G4double preKinEnergy = pPreStepPoint->GetKineticEnergy(); G4double kinEnergy = pPostStepPoint->GetKineticEnergy() + (proposedKinEnergy - preKinEnergy); - // update kinetic energy and charge - if(kinEnergy < lowEnergyLimit) + pPostStepPoint->SetCharge(currentCharge); + + // calculate velocity + if(kinEnergy > 0.0) { - theLocalEnergyDeposit += kinEnergy; - kinEnergy = 0.0; + pPostStepPoint->SetKineticEnergy(kinEnergy); + + // assuming that mass>0, zero mass particles do not have energy loss + pPostStepPoint->SetVelocity(CLHEP::c_light*ComputeBeta(kinEnergy)); + } + else + { + pPostStepPoint->SetKineticEnergy(0.0); pPostStepPoint->SetVelocity(0.0); } - else - { - pPostStepPoint->SetCharge(currentCharge); - // calculate velocity - pTrack->SetKineticEnergy(kinEnergy); - pPostStepPoint->SetVelocity(pTrack->CalculateVelocity()); - pTrack->SetKineticEnergy(preKinEnergy); - } - pPostStepPoint->SetKineticEnergy(kinEnergy); if(isParentWeightProposed) { @@ -212,18 +103,19 @@ G4Step* G4ParticleChangeForLoss::UpdateStepForAlongStep(G4Step* pStep) G4Step* G4ParticleChangeForLoss::UpdateStepForPostStep(G4Step* pStep) { G4StepPoint* pPostStepPoint = pStep->GetPostStepPoint(); - G4Track* pTrack = pStep->GetTrack(); pPostStepPoint->SetCharge(currentCharge); pPostStepPoint->SetMomentumDirection(proposedMomentumDirection); - pPostStepPoint->SetKineticEnergy(proposedKinEnergy); - pTrack->SetKineticEnergy(proposedKinEnergy); if(proposedKinEnergy > 0.0) { - pPostStepPoint->SetVelocity(pTrack->CalculateVelocity()); + pPostStepPoint->SetKineticEnergy(proposedKinEnergy); + + // assuming that mass>0, zero mass particles do not have energy loss + pPostStepPoint->SetVelocity(CLHEP::c_light*ComputeBeta(proposedKinEnergy)); } else { + pPostStepPoint->SetKineticEnergy(0.0); pPostStepPoint->SetVelocity(0.0); } pPostStepPoint->SetPolarization(proposedPolarization); diff --git a/source/track/src/G4ParticleChangeForMSC.cc b/source/track/src/G4ParticleChangeForMSC.cc index dc0ee4ba3c..d7725c3f13 100644 --- a/source/track/src/G4ParticleChangeForMSC.cc +++ b/source/track/src/G4ParticleChangeForMSC.cc @@ -27,63 +27,27 @@ // // Author: Hisaya Kurashige, 23 March 1998 // Revision: Vladimir Ivantchenko, 16 January 2004 +// 23 August 2022 // -------------------------------------------------------------------- #include "G4ParticleChangeForMSC.hh" #include "G4SystemOfUnits.hh" #include "G4Track.hh" #include "G4Step.hh" -#include "G4DynamicParticle.hh" #include "G4ExceptionSeverity.hh" // -------------------------------------------------------------------- -G4ParticleChangeForMSC::G4ParticleChangeForMSC() - : G4VParticleChange() +G4ParticleChangeForMSC::G4ParticleChangeForMSC() { // Disable flag that is enabled in G4VParticleChange if G4VERBOSE. debugFlag = false; } -// -------------------------------------------------------------------- -G4ParticleChangeForMSC::~G4ParticleChangeForMSC() -{ -} - -// -------------------------------------------------------------------- -G4ParticleChangeForMSC:: -G4ParticleChangeForMSC(const G4ParticleChangeForMSC& right) - : G4VParticleChange(right) -{ - theMomentumDirection = right.theMomentumDirection; - thePosition = right.thePosition; -} - -// -------------------------------------------------------------------- -G4ParticleChangeForMSC& -G4ParticleChangeForMSC::operator=(const G4ParticleChangeForMSC& right) -{ - if(this != &right) - { - theListOfSecondaries = right.theListOfSecondaries; - theSizeOftheListOfSecondaries = right.theSizeOftheListOfSecondaries; - theNumberOfSecondaries = right.theNumberOfSecondaries; - theStatusChange = right.theStatusChange; - theLocalEnergyDeposit = right.theLocalEnergyDeposit; - theSteppingControlFlag = right.theSteppingControlFlag; - theTrueStepLength = right.theTrueStepLength; - - theMomentumDirection = right.theMomentumDirection; - thePosition = right.thePosition; - } - return *this; -} - // -------------------------------------------------------------------- G4Step* G4ParticleChangeForMSC::UpdateStepForAlongStep(G4Step* pStep) { // update the G4Step specific attributes pStep->SetStepLength(theTrueStepLength); - theStatusChange = pStep->GetTrack()->GetTrackStatus(); // multiple scattering calculates the final state of the particle G4StepPoint* pPostStepPoint = pStep->GetPostStepPoint(); @@ -96,90 +60,3 @@ G4Step* G4ParticleChangeForMSC::UpdateStepForAlongStep(G4Step* pStep) return pStep; } -// -------------------------------------------------------------------- -G4Step* G4ParticleChangeForMSC::UpdateStepForPostStep(G4Step* pStep) -{ - // multiple scattering calculates the final state of the particle - G4StepPoint* pPostStepPoint = pStep->GetPostStepPoint(); - - // update momentum direction - pPostStepPoint->SetMomentumDirection(theMomentumDirection); - - // update position - pPostStepPoint->SetPosition(thePosition); - - // update the G4Step specific attributes - return pStep; -} - -// -------------------------------------------------------------------- -void G4ParticleChangeForMSC::DumpInfo() const -{ - // use base-class DumpInfo - G4VParticleChange::DumpInfo(); - - G4int oldprc = G4cout.precision(3); - G4cout << " Position - x (mm) : " << std::setw(20) - << thePosition.x() / mm << G4endl; - G4cout << " Position - y (mm) : " << std::setw(20) - << thePosition.y() / mm << G4endl; - G4cout << " Position - z (mm) : " << std::setw(20) - << thePosition.z() / mm << G4endl; - G4cout << " Momentum Direct - x : " << std::setw(20) - << theMomentumDirection.x() << G4endl; - G4cout << " Momentum Direct - y : " << std::setw(20) - << theMomentumDirection.y() << G4endl; - G4cout << " Momentum Direct - z : " << std::setw(20) - << theMomentumDirection.z() << G4endl; - G4cout.precision(oldprc); -} - -// -------------------------------------------------------------------- -G4bool G4ParticleChangeForMSC::CheckIt(const G4Track& aTrack) -{ - G4bool itsOK = true; - G4bool exitWithError = false; - - G4double accuracy; - - // check - - // MomentumDirection should be unit vector - accuracy = std::fabs(theMomentumDirection.mag2() - 1.0); - if(accuracy > accuracyForWarning) - { - itsOK = false; - exitWithError = (accuracy > accuracyForException); -#ifdef G4VERBOSE - G4cout << " G4ParticleChangeForMSC::CheckIt : "; - G4cout << "the Momentum Change is not unit vector !!" - << " Difference: " << accuracy << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m << G4endl; -#endif - } - - // dump out information of this particle change -#ifdef G4VERBOSE - if(!itsOK) { DumpInfo(); } -#endif - - // exit with error - if(exitWithError) - { - G4Exception("G4ParticleChangeForMSC::CheckIt()", "300", EventMustBeAborted, - "momentum direction was illegal"); - } - // correction - if(!itsOK) - { - G4double vmag = theMomentumDirection.mag(); - theMomentumDirection = (1. / vmag) * theMomentumDirection; - } - - itsOK = (itsOK) && G4VParticleChange::CheckIt(aTrack); - return itsOK; -} diff --git a/source/track/src/G4ParticleChangeForTransport.cc b/source/track/src/G4ParticleChangeForTransport.cc index 5c02da6e8d..47c93990e3 100644 --- a/source/track/src/G4ParticleChangeForTransport.cc +++ b/source/track/src/G4ParticleChangeForTransport.cc @@ -36,57 +36,12 @@ #include "G4DynamicParticle.hh" // -------------------------------------------------------------------- -G4ParticleChangeForTransport::G4ParticleChangeForTransport() - : G4ParticleChange() +G4ParticleChangeForTransport::G4ParticleChangeForTransport() { // Disable flag that is enabled in G4VParticleChange if G4VERBOSE. debugFlag = false; } -// -------------------------------------------------------------------- -G4ParticleChangeForTransport::~G4ParticleChangeForTransport() -{ -} - -// -------------------------------------------------------------------- -G4ParticleChangeForTransport:: -G4ParticleChangeForTransport(const G4ParticleChangeForTransport& r) - : G4ParticleChange(r) -{ - theTouchableHandle = r.theTouchableHandle; - isMomentumChanged = r.isMomentumChanged; - theMaterialChange = r.theMaterialChange; - theMaterialCutsCoupleChange = r.theMaterialCutsCoupleChange; - theSensitiveDetectorChange = r.theSensitiveDetectorChange; -} - -// -------------------------------------------------------------------- -G4ParticleChangeForTransport& -G4ParticleChangeForTransport::operator=(const G4ParticleChangeForTransport& r) -{ - if(this != &r) - { - theListOfSecondaries = r.theListOfSecondaries; - theSizeOftheListOfSecondaries = r.theSizeOftheListOfSecondaries; - theNumberOfSecondaries = r.theNumberOfSecondaries; - theStatusChange = r.theStatusChange; - theTouchableHandle = r.theTouchableHandle; - theMaterialChange = r.theMaterialChange; - theMaterialCutsCoupleChange = r.theMaterialCutsCoupleChange; - theSensitiveDetectorChange = r.theSensitiveDetectorChange; - theMomentumDirectionChange = r.theMomentumDirectionChange; - thePolarizationChange = r.thePolarizationChange; - thePositionChange = r.thePositionChange; - theTimeChange = r.theTimeChange; - theEnergyChange = r.theEnergyChange; - theVelocityChange = r.theVelocityChange; - theTrueStepLength = r.theTrueStepLength; - theLocalEnergyDeposit = r.theLocalEnergyDeposit; - theSteppingControlFlag = r.theSteppingControlFlag; - } - return *this; -} - // -------------------------------------------------------------------- G4Step* G4ParticleChangeForTransport::UpdateStepForAtRest(G4Step* pStep) { @@ -125,13 +80,11 @@ G4Step* G4ParticleChangeForTransport::UpdateStepForAlongStep(G4Step* pStep) pPostStepPoint->SetProperTime(theProperTimeChange); #ifdef G4VERBOSE - G4Track* aTrack = pStep->GetTrack(); - if(debugFlag) { CheckIt(*aTrack); } + if(debugFlag) { CheckIt(*theCurrentTrack); } #endif // Update the G4Step specific attributes pStep->SetStepLength( theTrueStepLength ); - // pStep->AddTotalEnergyDeposit( theLocalEnergyDeposit ); pStep->SetControlFlag(theSteppingControlFlag); return pStep; @@ -186,9 +139,6 @@ void G4ParticleChangeForTransport::DumpInfo() const { // use base-class DumpInfo G4ParticleChange::DumpInfo(); - - G4int oldprc = G4cout.precision(3); G4cout << " Touchable (pointer) : " << std::setw(20) << theTouchableHandle() << G4endl; - G4cout.precision(oldprc); } diff --git a/source/track/src/G4Step.cc b/source/track/src/G4Step.cc index 9574b1f2f4..025e5dcc88 100644 --- a/source/track/src/G4Step.cc +++ b/source/track/src/G4Step.cc @@ -47,20 +47,16 @@ G4Step::G4Step() G4Step::~G4Step() { delete fpPreStepPoint; - fpPreStepPoint = nullptr; delete fpPostStepPoint; - fpPostStepPoint = nullptr; secondaryInCurrentStep->clear(); delete secondaryInCurrentStep; - secondaryInCurrentStep = nullptr; if(fSecondary != nullptr) { fSecondary->clear(); delete fSecondary; } - fSecondary = nullptr; } // -------------------------------------------------------------------- @@ -122,10 +118,8 @@ G4Step& G4Step::operator=(const G4Step& right) secondaryInCurrentStep = right.secondaryInCurrentStep; fpVectorOfAuxiliaryPointsPointer = right.fpVectorOfAuxiliaryPointsPointer; - if(fpPreStepPoint != nullptr) - { - delete fpPreStepPoint; - } + delete fpPreStepPoint; + if(right.fpPreStepPoint != nullptr) { fpPreStepPoint = new G4StepPoint(*(right.fpPreStepPoint)); @@ -134,10 +128,9 @@ G4Step& G4Step::operator=(const G4Step& right) { fpPreStepPoint = new G4StepPoint(); } - if(fpPostStepPoint != nullptr) - { - delete fpPostStepPoint; - } + + delete fpPostStepPoint; + if(right.fpPostStepPoint != nullptr) { fpPostStepPoint = new G4StepPoint(*(right.fpPostStepPoint)); @@ -209,8 +202,8 @@ G4double G4Step::GetDeltaEnergy() const const std::vector* G4Step::GetSecondaryInCurrentStep() const { secondaryInCurrentStep->clear(); - G4int nSecondary = fSecondary->size(); - for(G4int i = nSecondaryByLastStep; i < nSecondary; ++i) + std::size_t nSecondary = fSecondary->size(); + for(std::size_t i = nSecondaryByLastStep; i < nSecondary; ++i) { secondaryInCurrentStep->push_back((*fSecondary)[i]); } diff --git a/source/track/src/G4StepPoint.cc b/source/track/src/G4StepPoint.cc index 046d22a1eb..990ab4ee54 100644 --- a/source/track/src/G4StepPoint.cc +++ b/source/track/src/G4StepPoint.cc @@ -30,36 +30,11 @@ #include "G4StepPoint.hh" -// -------------------------------------------------------------------- -G4StepPoint::G4StepPoint() -{} - -// -------------------------------------------------------------------- -G4StepPoint::G4StepPoint(const G4StepPoint& right) - : fPosition(right.fPosition) - , fGlobalTime(right.fGlobalTime) - , fLocalTime(right.fLocalTime) - , fProperTime(right.fProperTime) - , fMomentumDirection(right.fMomentumDirection) - , fKineticEnergy(right.fKineticEnergy) - , fVelocity(right.fVelocity) - , fpTouchable(right.fpTouchable) - , fpMaterial(right.fpMaterial) - , fpMaterialCutsCouple(right.fpMaterialCutsCouple) - , fpSensitiveDetector(right.fpSensitiveDetector) - , fSafety(right.fSafety) - , fPolarization(right.fPolarization) - , fStepStatus(right.fStepStatus) - , fpProcessDefinedStep(right.fpProcessDefinedStep) - , fMass(right.fMass) - , fCharge(right.fCharge) - , fMagneticMoment(right.fMagneticMoment) - , fWeight(right.fWeight) -{} - // -------------------------------------------------------------------- G4StepPoint& G4StepPoint::operator=(const G4StepPoint& right) { + // NOTE: this can be removed and operator= made =default if we only expect + // rare self-assignment if(this != &right) { fPosition = right.fPosition; diff --git a/source/track/src/G4Track.cc b/source/track/src/G4Track.cc index f4b9e3b4aa..2bf32dccc5 100644 --- a/source/track/src/G4Track.cc +++ b/source/track/src/G4Track.cc @@ -51,7 +51,7 @@ G4Track::G4Track(G4DynamicParticle* apValueDynamicParticle, , fGlobalTime(aValueTime) , fVelocity(c_light) { - fpDynamicParticle = (apValueDynamicParticle) + fpDynamicParticle = (apValueDynamicParticle) != nullptr ? apValueDynamicParticle : new G4DynamicParticle(); // check if the particle type is Optical Photon is_OpticalPhoton = @@ -169,7 +169,7 @@ G4double G4Track::CalculateVelocityForOpticalPhoton() const } else { - if(fpTouchable != 0) + if(fpTouchable) { mat = fpTouchable->GetVolume()->GetLogicalVolume()->GetMaterial(); } @@ -230,11 +230,11 @@ G4Track::GetAuxiliaryTrackInformation(G4int id) const { if(fpAuxiliaryTrackInformationMap == nullptr) return nullptr; + auto itr = fpAuxiliaryTrackInformationMap->find(id); if(itr == fpAuxiliaryTrackInformationMap->cend()) return nullptr; - else - return (*itr).second; + return (*itr).second; } // -------------------------------------------------------------------- @@ -262,10 +262,9 @@ void G4Track::ClearAuxiliaryTrackInformation() { if(fpAuxiliaryTrackInformationMap == nullptr) return; - for(auto itr = fpAuxiliaryTrackInformationMap->cbegin(); - itr != fpAuxiliaryTrackInformationMap->cend(); ++itr) + for(const auto& itr : *fpAuxiliaryTrackInformationMap) { - delete(*itr).second; + delete itr.second; } delete fpAuxiliaryTrackInformationMap; fpAuxiliaryTrackInformationMap = nullptr; diff --git a/source/track/src/G4VParticleChange.cc b/source/track/src/G4VParticleChange.cc index d545a08782..ad5a57b35c 100644 --- a/source/track/src/G4VParticleChange.cc +++ b/source/track/src/G4VParticleChange.cc @@ -30,116 +30,19 @@ #include "G4VParticleChange.hh" #include "G4SystemOfUnits.hh" -#include "G4Track.hh" -#include "G4Step.hh" -#include "G4TrackFastVector.hh" #include "G4ExceptionSeverity.hh" const G4double G4VParticleChange::accuracyForWarning = 1.0e-9; const G4double G4VParticleChange::accuracyForException = 0.001; +const G4int G4VParticleChange::maxError = 10; // -------------------------------------------------------------------- G4VParticleChange::G4VParticleChange() - : theSizeOftheListOfSecondaries(G4TrackFastVectorSize) { #ifdef G4VERBOSE // activate CheckIt if in VERBOSE mode debugFlag = true; #endif - theListOfSecondaries = new G4TrackFastVector(); -} - -// -------------------------------------------------------------------- -G4VParticleChange::~G4VParticleChange() -{ - // check if tracks still exist in theListOfSecondaries - if(theNumberOfSecondaries > 0) - { - for(G4int index = 0; index < theNumberOfSecondaries; ++index) - { - delete(*theListOfSecondaries)[index]; - } - } - delete theListOfSecondaries; -} - -// -------------------------------------------------------------------- -G4VParticleChange::G4VParticleChange(const G4VParticleChange& right) - : theStatusChange(right.theStatusChange) - , theSteppingControlFlag(right.theSteppingControlFlag) - , theLocalEnergyDeposit(right.theLocalEnergyDeposit) - , theNonIonizingEnergyDeposit(right.theNonIonizingEnergyDeposit) - , theTrueStepLength(right.theTrueStepLength) - , theParentWeight(right.theParentWeight) - , theSizeOftheListOfSecondaries(G4TrackFastVectorSize) - , verboseLevel(right.verboseLevel) - , theFirstStepInVolume(right.theFirstStepInVolume) - , theLastStepInVolume(right.theLastStepInVolume) - , fSetSecondaryWeightByProcess(right.fSetSecondaryWeightByProcess) - , debugFlag(right.debugFlag) -{ - theListOfSecondaries = new G4TrackFastVector(); - theNumberOfSecondaries = right.theNumberOfSecondaries; - for(G4int index = 0; index < theNumberOfSecondaries; ++index) - { - G4Track* newTrack = new G4Track(*((*right.theListOfSecondaries)[index])); - theListOfSecondaries->SetElement(index, newTrack); - } -} - -// -------------------------------------------------------------------- -G4VParticleChange& G4VParticleChange::operator=(const G4VParticleChange& right) -{ - if(this != &right) - { - if(theNumberOfSecondaries > 0) - { - for(G4int index = 0; index < theNumberOfSecondaries; ++index) - { - if((*theListOfSecondaries)[index]) - delete((*theListOfSecondaries)[index]); - } - } - delete theListOfSecondaries; - - theListOfSecondaries = new G4TrackFastVector(); - theNumberOfSecondaries = right.theNumberOfSecondaries; - for(G4int index = 0; index < theNumberOfSecondaries; ++index) - { - G4Track* newTrack = new G4Track(*((*right.theListOfSecondaries)[index])); - theListOfSecondaries->SetElement(index, newTrack); - } - theStatusChange = right.theStatusChange; - theSteppingControlFlag = right.theSteppingControlFlag; - theLocalEnergyDeposit = right.theLocalEnergyDeposit; - theNonIonizingEnergyDeposit = right.theNonIonizingEnergyDeposit; - theTrueStepLength = right.theTrueStepLength; - - theFirstStepInVolume = right.theFirstStepInVolume; - theLastStepInVolume = right.theLastStepInVolume; - - theParentWeight = right.theParentWeight; - isParentWeightProposed = right.isParentWeightProposed; - fSetSecondaryWeightByProcess = right.fSetSecondaryWeightByProcess; - - theParentGlobalTime = right.theParentGlobalTime; - - verboseLevel = right.verboseLevel; - debugFlag = right.debugFlag; - } - return *this; -} - -// -------------------------------------------------------------------- -G4bool G4VParticleChange::operator==(const G4VParticleChange& right) const -{ - return (this == (G4VParticleChange*) &right); -} - -// -------------------------------------------------------------------- -G4bool G4VParticleChange::operator!=(const G4VParticleChange& right) const -{ - return (this != (G4VParticleChange*) &right); } // -------------------------------------------------------------------- @@ -148,22 +51,20 @@ void G4VParticleChange::AddSecondary(G4Track* aTrack) if(debugFlag) CheckSecondary(*aTrack); + if(!fSetSecondaryWeightByProcess) + aTrack->SetWeight(theParentWeight); + // add a secondary after size check if(theSizeOftheListOfSecondaries > theNumberOfSecondaries) { - // set weight of secondary tracks - if(!fSetSecondaryWeightByProcess) - aTrack->SetWeight(theParentWeight); - theListOfSecondaries->SetElement(theNumberOfSecondaries, aTrack); - ++theNumberOfSecondaries; + theListOfSecondaries[theNumberOfSecondaries] = aTrack; } else { - delete aTrack; - - G4Exception("G4VParticleChange::AddSecondary()", "TRACK101", JustWarning, - "Secondary buffer is full. The track is deleted!"); + theListOfSecondaries.push_back(aTrack); + ++theSizeOftheListOfSecondaries; } + ++theNumberOfSecondaries; } // -------------------------------------------------------------------- @@ -231,27 +132,38 @@ G4Step* G4VParticleChange::UpdateStepForPostStep(G4Step* Step) // -------------------------------------------------------------------- void G4VParticleChange::DumpInfo() const { - // Show header - G4int olprc = G4cout.precision(3); + auto vol = theCurrentTrack->GetVolume(); + G4String vname = (nullptr == vol) ? "" : vol->GetName(); + G4long olprc = G4cout.precision(8); G4cout << " -----------------------------------------------" << G4endl; - G4cout << " G4ParticleChange Information " << std::setw(20) << G4endl; + G4cout << " G4VParticleChange Information " << G4endl; + G4cout << " TrackID : " << theCurrentTrack->GetTrackID() + << G4endl; + G4cout << " ParentID : " << theCurrentTrack->GetParentID() + << G4endl; + G4cout << " Particle : " + << theCurrentTrack->GetParticleDefinition()->GetParticleName() + << G4endl; + G4cout << " Kinetic energy (MeV): " + << theCurrentTrack->GetKineticEnergy() << G4endl; + G4cout << " Position (mm) : " + << theCurrentTrack->GetPosition() << G4endl; + G4cout << " Direction : " + << theCurrentTrack->GetMomentumDirection() << G4endl; + G4cout << " PhysicsVolume : " << vname << G4endl; + G4cout << " Material : " + << theCurrentTrack->GetMaterial()->GetName() << G4endl; G4cout << " -----------------------------------------------" << G4endl; G4cout << " # of secondaries : " << std::setw(20) << theNumberOfSecondaries << G4endl; - if (theNumberOfSecondaries > 0) - { - G4cout << " Pointer to 2ndaries : " << std::setw(20) - << GetSecondary(0) << G4endl; - G4cout << " (Showed only 1st one)" << G4endl; - } G4cout << " -----------------------------------------------" << G4endl; G4cout << " Energy Deposit (MeV): " << std::setw(20) << theLocalEnergyDeposit / MeV << G4endl; - G4cout << " Non-ionizing Energy Deposit (MeV): " << std::setw(11) + G4cout << " NIEL Energy Deposit (MeV): " << std::setw(20) << theNonIonizingEnergyDeposit / MeV << G4endl; G4cout << " Track Status : " << std::setw(20); @@ -280,221 +192,169 @@ void G4VParticleChange::DumpInfo() const G4cout << " PostponeToNextEvent"; } G4cout << G4endl; - G4cout << " True Path Length (mm) : " << std::setw(18) + G4cout << " TruePathLength (mm) : " << std::setw(20) << theTrueStepLength / mm << G4endl; G4cout << " Stepping Control : " << std::setw(20) << theSteppingControlFlag << G4endl; if(theFirstStepInVolume) { - G4cout << " First step in volume" << G4endl; + G4cout << " First step in volume" << G4endl; } if(theLastStepInVolume) { - G4cout << " Last step in volume" << G4endl; + G4cout << " Last step in volume" << G4endl; } + +#ifdef G4VERBOSE + if(nError == maxError) + { + G4cout << " -----------------------------------------------" << G4endl; + G4cout << " G4VParticleChange warnings closed " << G4endl; + G4cout << " -----------------------------------------------" << G4endl; + } +#endif + G4cout.precision(olprc); } // -------------------------------------------------------------------- -G4bool G4VParticleChange::CheckIt(const G4Track& -#ifdef G4VERBOSE - aTrack -#endif -) +G4bool G4VParticleChange::CheckIt([[maybe_unused]] const G4Track& aTrack) { - G4bool exitWithError = false; - G4double accuracy; - static G4ThreadLocal G4int nError = 0; -#ifdef G4VERBOSE - const G4int maxError = 30; -#endif + G4bool isOK = true; // Energy deposit should not be negative - G4bool itsOKforEnergy = true; - accuracy = -1.0 * theLocalEnergyDeposit / MeV; - if(accuracy > accuracyForWarning) + if(theLocalEnergyDeposit < 0.0) { - itsOKforEnergy = false; - nError += 1; - exitWithError = (accuracy > accuracyForException); + isOK = false; + ++nError; #ifdef G4VERBOSE if(nError < maxError) { - G4cout << " G4VParticleChange::CheckIt : "; - G4cout << "the energy deposit is negative !!" - << " Difference: " << accuracy << "[MeV] " << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m << G4endl; + G4cout << " G4VParticleChange::CheckIt : "; + G4cout << "the energy deposit " << theLocalEnergyDeposit/MeV + << " MeV is negative !!" << G4endl; } #endif + theLocalEnergyDeposit = 0.0; } // true path length should not be negative - G4bool itsOKforStepLength = true; - accuracy = -1.0 * theTrueStepLength / mm; - if(accuracy > accuracyForWarning) + if(theTrueStepLength < 0.0) { - itsOKforStepLength = false; - nError += 1; - exitWithError = (accuracy > accuracyForException); + isOK = false; + ++nError; #ifdef G4VERBOSE if(nError < maxError) { - G4cout << " G4VParticleChange::CheckIt : "; - G4cout << "the true step length is negative !!" - << " Difference: " << accuracy << "[MeV] " << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m << G4endl; + G4cout << " G4VParticleChange::CheckIt : "; + G4cout << "true path length " << theTrueStepLength/mm + << " mm is negative !!" << G4endl; } #endif - } -#ifdef G4VERBOSE - if(!itsOKforStepLength || !itsOKforEnergy) - { - // dump out information of this particle change - DumpInfo(); - } -#endif - - // Exit with error - if(exitWithError) - { - G4Exception("G4VParticleChange::CheckIt()", "TRACK001", EventMustBeAborted, - "Step length and/or energy deposit was illegal"); - } - - // correction - if(!itsOKforStepLength) - { theTrueStepLength = (1.e-12) * mm; } - if(!itsOKforEnergy) + + if(!isOK) { - theLocalEnergyDeposit = 0.0; + if(nError < maxError) + { +#ifdef G4VERBOSE + // dump out information of this particle change + DumpInfo(); +#endif + G4Exception("G4VParticleChange::CheckIt()", "TRACK001", JustWarning, + "Step length and/or energy deposit are illegal"); + } } - return (itsOKforStepLength && itsOKforEnergy); + return isOK; } // -------------------------------------------------------------------- G4bool G4VParticleChange::CheckSecondary(G4Track& aTrack) { - G4bool exitWithError = false; - G4double accuracy; - static G4ThreadLocal G4int nError = 0; -#ifdef G4VERBOSE - const G4int maxError = 30; -#endif + G4bool isOK = true; // MomentumDirection should be unit vector - G4bool itsOKforMomentum = true; - if(aTrack.GetKineticEnergy() > 0.) + G4double ekin = aTrack.GetKineticEnergy(); + auto dir = aTrack.GetMomentumDirection(); + G4double accuracy = std::abs(dir.mag2() - 1.0); + if(accuracy > accuracyForWarning) { - accuracy = std::fabs((aTrack.GetMomentumDirection()).mag2() - 1.0); - if(accuracy > accuracyForWarning) - { - itsOKforMomentum = false; - nError += 1; - exitWithError = exitWithError || (accuracy > accuracyForException); + isOK = false; + ++nError; #ifdef G4VERBOSE - if(nError < maxError) - { - G4cout << " G4VParticleChange::CheckSecondary : "; - G4cout << "the Momentum direction is not unit vector !! " - << " Difference: " << accuracy << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m << G4endl; - } -#endif + if(nError < maxError) + { + G4String mname = aTrack.GetCreatorModelName(); + G4cout << " G4VParticleChange::CheckSecondary : " << G4endl; + G4cout << " the momentum direction " << dir + << " is not unit vector !!" << G4endl; + G4cout << " Difference=" << accuracy + << " Ekin(MeV)=" << ekin/MeV + << " " << aTrack.GetParticleDefinition()->GetParticleName() + << " created by " << mname + << G4endl; } +#endif + aTrack.SetMomentumDirection(dir.unit()); } // Kinetic Energy should not be negative - G4bool itsOKforEnergy = true; - accuracy = -1.0 * (aTrack.GetKineticEnergy()) / MeV; - if(accuracy > accuracyForWarning) + if(ekin < 0.0) { - itsOKforEnergy = false; - nError += 1; - exitWithError = exitWithError || (accuracy > accuracyForException); + isOK = false; + ++nError; #ifdef G4VERBOSE if(nError < maxError) { - G4cout << " G4VParticleChange::CheckSecondary : "; - G4cout << "the kinetic energy is negative !!" - << " Difference: " << accuracy << "[MeV] " << G4endl; - G4cout << " G4VParticleChange::CheckSecondary : "; - G4cout << "the global time of secondary is earlier than the parent !!" - << " Difference: " << accuracy << "[ns] " << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m << G4endl; + G4String mname = aTrack.GetCreatorModelName(); + G4cout << " G4VParticleChange::CheckSecondary : " << G4endl; + G4cout << " Ekin(MeV)=" << ekin << " is negative !! " + << aTrack.GetParticleDefinition()->GetParticleName() + << " created by " << mname + << G4endl; } #endif - } - // Check timing of secondaries - G4bool itsOKforTiming = true; - - accuracy = (theParentGlobalTime - aTrack.GetGlobalTime()) / ns; - if(accuracy > accuracyForWarning) - { - itsOKforTiming = false; - nError += 1; - exitWithError = (accuracy > accuracyForException); -#ifdef G4VERBOSE - if(nError < maxError) - { - G4cout << " G4VParticleChange::CheckSecondary : "; - G4cout - << "the global time of secondary goes back comapared to the parent !!" - << " Difference: " << accuracy << "[ns] " << G4endl; - G4cout << aTrack.GetDefinition()->GetParticleName() - << " E=" << aTrack.GetKineticEnergy() / MeV - << " pos=" << aTrack.GetPosition().x() / m << ", " - << aTrack.GetPosition().y() / m << ", " - << aTrack.GetPosition().z() / m - << " time=" << aTrack.GetGlobalTime() / ns - << " parent time=" << theParentGlobalTime / ns << G4endl; - } -#endif - } - - // Exit with error - if(exitWithError) - { - G4Exception("G4VParticleChange::CheckSecondary()", "TRACK001", - EventMustBeAborted, "Secondary with illegal energy/momentum "); - } - - G4bool itsOK = itsOKforMomentum && itsOKforEnergy && itsOKforTiming; - - // correction - if(!itsOKforMomentum) - { - G4double vmag = (aTrack.GetMomentumDirection()).mag(); - aTrack.SetMomentumDirection((1. / vmag) * aTrack.GetMomentumDirection()); - } - if(!itsOKforEnergy) - { aTrack.SetKineticEnergy(0.0); } - if(!itsOK) + // Check timing of secondaries + G4double time = aTrack.GetGlobalTime(); + if(time < theParentGlobalTime) { - this->DumpInfo(); + isOK = false; + ++nError; +#ifdef G4VERBOSE + if(nError < maxError) + { + G4String mname = aTrack.GetCreatorModelName(); + G4cout << " G4VParticleChange::CheckSecondary : " << G4endl; + G4cout << " The global time of secondary goes back compared to the parent !!" << G4endl; + G4cout << " ParentTime(ns)=" << theParentGlobalTime/ns + << " SecondaryTime(ns)= " << time/ns + << " Difference(ns)=" << (theParentGlobalTime - time)/ns + << G4endl; + G4cout << " Ekin(MeV)=" << ekin + << aTrack.GetParticleDefinition()->GetParticleName() + << " created by " << mname << G4endl; + } +#endif + aTrack.SetGlobalTime(theParentGlobalTime); } - return itsOK; + // Exit with error + if(!isOK) + { + if(nError < maxError) + { +#ifdef G4VERBOSE + DumpInfo(); +#endif + G4Exception("G4VParticleChange::CheckSecondary()", "TRACK001", + JustWarning, "Secondary with illegal time and/or energy and/or momentum"); + } + } + return isOK; } // -------------------------------------------------------------------- diff --git a/source/track/src/G4VUserTrackInformation.cc b/source/track/src/G4VUserTrackInformation.cc index 03c94e6318..eca5c6e07a 100644 --- a/source/track/src/G4VUserTrackInformation.cc +++ b/source/track/src/G4VUserTrackInformation.cc @@ -30,10 +30,6 @@ #include "G4VUserTrackInformation.hh" -// -------------------------------------------------------------------- -G4VUserTrackInformation::G4VUserTrackInformation() -{} - // -------------------------------------------------------------------- G4VUserTrackInformation::G4VUserTrackInformation(const G4String& infoType) { @@ -43,8 +39,7 @@ G4VUserTrackInformation::G4VUserTrackInformation(const G4String& infoType) // -------------------------------------------------------------------- G4VUserTrackInformation::~G4VUserTrackInformation() { - if(pType != nullptr) - delete pType; + delete pType; } // -------------------------------------------------------------------- @@ -61,9 +56,9 @@ G4VUserTrackInformation::operator=(const G4VUserTrackInformation& right) { if(this != &right) { - if(pType != nullptr) - delete pType; - if(right.pType) + delete pType; + + if(right.pType != nullptr) pType = new G4String(*(right.pType)); else pType = nullptr; @@ -77,6 +72,5 @@ const G4String& G4VUserTrackInformation::GetType() const static const G4String NOTYPE = "NONE"; if(pType != nullptr) return *pType; - else - return NOTYPE; + return NOTYPE; } diff --git a/source/tracking/History b/source/tracking/History index 4407ada085..f299982c0e 100644 --- a/source/tracking/History +++ b/source/tracking/History @@ -1,8 +1,20 @@ # Category tracking History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-16 Gabriele Cosmo (tracking-V11-00-09) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-04 Vladimir Ivanchenko (tracking-V11-00-08) +- G4SteppingManager - fixed compilation warning + +## 2022-11-02 Vladimir Ivanchenko (tracking-V11-00-07) +- G4SteppingManager - removed G4Exception with JustWarning severity + for the case if no active at rest processes exist - fix problem #2493 ## 2022-06-21 Ben Morgan (tracking-V11-00-06) - Merge `G4SteppingManager` implementation files diff --git a/source/tracking/include/G4SmoothTrajectory.hh b/source/tracking/include/G4SmoothTrajectory.hh index f5bbf2662f..c9f8595cc1 100644 --- a/source/tracking/include/G4SmoothTrajectory.hh +++ b/source/tracking/include/G4SmoothTrajectory.hh @@ -103,7 +103,7 @@ class G4SmoothTrajectory : public G4VTrajectory virtual void DrawTrajectory() const; virtual void AppendStep(const G4Step* aStep); virtual G4int GetPointEntries() const - { return positionRecord->size(); } + { return (G4int)positionRecord->size(); } virtual G4VTrajectoryPoint* GetPoint(G4int i) const { return (*positionRecord)[i]; } virtual void MergeTrajectory(G4VTrajectory* secondTrajectory); diff --git a/source/tracking/src/G4AdjointTrackingAction.cc b/source/tracking/src/G4AdjointTrackingAction.cc index 0e95775f49..871fa67179 100644 --- a/source/tracking/src/G4AdjointTrackingAction.cc +++ b/source/tracking/src/G4AdjointTrackingAction.cc @@ -112,7 +112,7 @@ void G4AdjointTrackingAction::PostUserTrackingAction(const G4Track* aTrack) if ((*pListOfPrimaryFwdParticles)[i]->GetParticleName() == last_fwd_part_name) { - last_fwd_part_index=i; + last_fwd_part_index=(G4int)i; } ++i; } diff --git a/source/tracking/src/G4SteppingManager.cc b/source/tracking/src/G4SteppingManager.cc index 645f2f8e7a..848fda7b71 100644 --- a/source/tracking/src/G4SteppingManager.cc +++ b/source/tracking/src/G4SteppingManager.cc @@ -500,7 +500,7 @@ void G4SteppingManager::DefinePhysicalStepLength() for(std::size_t np=0; npAtRestGPIL( *fTrack, &fCondition ); @@ -748,18 +746,9 @@ void G4SteppingManager::InvokeAtRestDoItProcs() (*fSelectedAtRestDoItVector)[fAtRestDoItProcTriggered] = NotForced; - // at least one process is necessary to destroy the particle exit with warning - // - if(NofInactiveProc==MAXofAtRestLoops) - { - G4Exception("G4SteppingManager::InvokeAtRestDoItProcs()", "Tracking0013", - JustWarning, "No AtRestDoIt process is active!" ); - } - fStep->SetStepLength( 0. ); // the particle has stopped fTrack->SetStepLength( 0. ); - // Condition to avoid that stable ions are handled by Radioactive Decay. // We use a very large time threshold (many orders of magnitude bigger than // the universe's age) but not DBL_MAX because shortestLifeTime can be @@ -776,7 +765,7 @@ void G4SteppingManager::InvokeAtRestDoItProcs() // if( (*fSelectedAtRestDoItVector)[MAXofAtRestLoops-np-1] != InActivated) { - fCurrentProcess = (*fAtRestDoItVector)[np]; + fCurrentProcess = (*fAtRestDoItVector)[(G4int)np]; fParticleChange = fCurrentProcess->AtRestDoIt(*fTrack, *fStep); // Update Step @@ -818,7 +807,7 @@ void G4SteppingManager::InvokeAlongStepDoItProcs() // for( std::size_t ci=0; ciPostStepDoIt( *fTrack, *fStep); // Update PostStepPoint of Step according to ParticleChange diff --git a/source/tracking/src/G4SteppingVerbose.cc b/source/tracking/src/G4SteppingVerbose.cc index 7bec79d99c..2fa16d4358 100644 --- a/source/tracking/src/G4SteppingVerbose.cc +++ b/source/tracking/src/G4SteppingVerbose.cc @@ -87,7 +87,7 @@ void G4SteppingVerbose::AtRestDoItInvoked() if( (*fSelectedAtRestDoItVector)[npGPIL] == G4ForceCondition::Forced ) { ++npt; - ptProcManager = (*fAtRestDoItVector)[np]; + ptProcManager = (*fAtRestDoItVector)[(G4int)np]; G4cout << " # " << npt << " : " << ptProcManager->GetProcessName() << " (Forced)" << G4endl; @@ -95,7 +95,7 @@ void G4SteppingVerbose::AtRestDoItInvoked() else if ( (*fSelectedAtRestDoItVector)[npGPIL] == G4ForceCondition::NotForced ) { ++npt; - ptProcManager = (*fAtRestDoItVector)[np]; + ptProcManager = (*fAtRestDoItVector)[(G4int)np]; G4cout << " # " << npt << " : " << ptProcManager->GetProcessName() << G4endl; } @@ -153,7 +153,7 @@ void G4SteppingVerbose::AlongStepDoItAllDone() for(std::size_t ci=0; ciGetProcessName() << " (Forced)" << G4endl; @@ -228,7 +228,7 @@ void G4SteppingVerbose::PostStepDoItAllDone() else if ( (*fSelectedPostStepDoItVector)[npGPIL] == G4ForceCondition::NotForced ) { ++npt; - ptProcManager = (*fPostStepDoItVector)[np]; + ptProcManager = (*fPostStepDoItVector)[(G4int)np]; G4cout << " " << npt << ") " << ptProcManager->GetProcessName() << G4endl; } @@ -276,7 +276,7 @@ void G4SteppingVerbose::StepInfo() CopyState(); G4cout.precision(16); - G4int prec = G4cout.precision(3); + G4long prec = G4cout.precision(3); if( verboseLevel >= 1 ) { @@ -487,7 +487,7 @@ void G4SteppingVerbose::TrackingStarted() CopyState(); - G4int prec = G4cout.precision(3); + G4long prec = G4cout.precision(3); if( verboseLevel > 0 ) { #ifdef G4_USE_G4BESTUNIT_FOR_VERBOSE @@ -655,7 +655,7 @@ void G4SteppingVerbose::VerboseTrack() G4cout << G4endl; G4cout << " ++G4Track Information " << G4endl; - G4int prec = G4cout.precision(3); + G4long prec = G4cout.precision(3); G4cout << " -----------------------------------------------" @@ -847,7 +847,7 @@ void G4SteppingVerbose::ShowStep() const { if(Silent==1){ return; } G4String volName; - G4int oldprc; + G4long oldprc; // Show header G4cout << G4endl; diff --git a/source/tracking/src/G4SteppingVerboseWithUnits.cc b/source/tracking/src/G4SteppingVerboseWithUnits.cc index e42532550a..c939247193 100644 --- a/source/tracking/src/G4SteppingVerboseWithUnits.cc +++ b/source/tracking/src/G4SteppingVerboseWithUnits.cc @@ -72,7 +72,7 @@ void G4SteppingVerboseWithUnits::SetManager(G4SteppingManager* const fMan) void G4SteppingVerboseWithUnits::TrackingStarted() { CopyState(); - G4int oldprec = G4cout.precision(fprec); + G4long oldprec = G4cout.precision(fprec); // Step zero // @@ -108,7 +108,7 @@ void G4SteppingVerboseWithUnits::TrackingStarted() void G4SteppingVerboseWithUnits::StepInfo() { CopyState(); - G4int oldprec = G4cout.precision(fprec); + G4long oldprec = G4cout.precision(fprec); if( verboseLevel >= 1 ) { @@ -193,7 +193,7 @@ void G4SteppingVerboseWithUnits::AtRestDoItInvoked() if( (*fSelectedAtRestDoItVector)[npGPIL] == G4ForceCondition::Forced ) { ++npt; - ptProcManager = (*fAtRestDoItVector)[np]; + ptProcManager = (*fAtRestDoItVector)[(G4int)np]; G4cout << " # " << npt << " : " << ptProcManager->GetProcessName() << " (Forced)" << G4endl; @@ -201,7 +201,7 @@ void G4SteppingVerboseWithUnits::AtRestDoItInvoked() else if ( (*fSelectedAtRestDoItVector)[npGPIL] == G4ForceCondition::NotForced ) { ++npt; - ptProcManager = (*fAtRestDoItVector)[np]; + ptProcManager = (*fAtRestDoItVector)[(G4int)np]; G4cout << " # " << npt << " : " << ptProcManager->GetProcessName() << G4endl; } @@ -257,7 +257,7 @@ void G4SteppingVerboseWithUnits::AlongStepDoItAllDone() for(std::size_t ci=0; ciGetProcessName() << " (Forced)" << G4endl; @@ -330,7 +330,7 @@ void G4SteppingVerboseWithUnits::PostStepDoItAllDone() else if ( (*fSelectedPostStepDoItVector)[npGPIL] == G4ForceCondition::NotForced ) { ++npt; - ptProcManager = (*fPostStepDoItVector)[np]; + ptProcManager = (*fPostStepDoItVector)[(G4int)np]; G4cout << " " << npt << ") " << ptProcManager->GetProcessName() << G4endl; } @@ -567,7 +567,7 @@ void G4SteppingVerboseWithUnits::VerboseTrack() G4cout << G4endl; G4cout << " ++G4Track Information " << G4endl; - G4int oldprec = G4cout.precision(fprec); + G4long oldprec = G4cout.precision(fprec); G4cout << " -----------------------------------------------" << G4endl; @@ -695,7 +695,7 @@ void G4SteppingVerboseWithUnits::ShowStep() const // Show header G4cout << G4endl; G4cout << " ++G4Step Information " << G4endl; - G4int oldprc = G4cout.precision(fprec); + G4long oldprc = G4cout.precision(fprec); // Show G4Step specific information G4cout << " Address of G4Track : " diff --git a/source/visualization/CMakeLists.txt b/source/visualization/CMakeLists.txt index 91db38d4de..82a620a830 100644 --- a/source/visualization/CMakeLists.txt +++ b/source/visualization/CMakeLists.txt @@ -4,10 +4,10 @@ add_subdirectory(HepRep) add_subdirectory(RayTracer) add_subdirectory(Tree) add_subdirectory(VRML) -add_subdirectory(externals) add_subdirectory(gMocren) add_subdirectory(management) add_subdirectory(modeling) +add_subdirectory(ToolsSG) # OpenGL is optional depending on user selection if(GEANT4_USE_OPENGL) @@ -24,11 +24,6 @@ if(GEANT4_USE_QT3D) add_subdirectory(Qt3D) endif() -# ToolsSG is optional depending on user selection -if(GEANT4_USE_TOOLSSG) - add_subdirectory(ToolsSG) -endif() - # VTK is optional depending on user selection if(GEANT4_USE_VTK) add_subdirectory(Vtk) diff --git a/source/visualization/FukuiRenderer/History b/source/visualization/FukuiRenderer/History index 743809f57b..dc5fe670b3 100644 --- a/source/visualization/FukuiRenderer/History +++ b/source/visualization/FukuiRenderer/History @@ -1,8 +1,17 @@ # Category DAWN History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-25 Gabriele Cosmo (DAWN-V11-00-03) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-13 Gabriele Cosmo (DAWN-V11-00-02) +- Replaced use of sprintf() with snprintf(), to fix deprecation compilation + warnings on macOS-13 SDK. ## 2022-01-28 Ben Morgan (DAWN-V11-00-01) - Replace `geant4_global_library_target` with direct file inclusion and diff --git a/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc b/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc index 2496c4475b..914e4da769 100644 --- a/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc +++ b/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc @@ -57,7 +57,7 @@ void G4FRSCENEHANDLER::AddPrimitive(const G4Polyline& polyline) FRBeginModeling(); //----- local working variables - G4int nPoints = polyline.size(); + G4int nPoints = (G4int)polyline.size(); G4int i; const G4VisAttributes* pVA = fpViewer->GetApplicableVisAttributes(polyline.GetVisAttributes()); @@ -127,10 +127,10 @@ void G4FRSCENEHANDLER::AddPrimitive(const G4Text& text) //----- get string to be visualized and Calc its length const char* vis_text = text.GetText(); - const int STR_LENGTH = strlen(vis_text); + const G4int STR_LENGTH = (G4int)strlen(vis_text); //----- create buffer and copy the string there - int MAX_STR_LENGTH = COMMAND_BUF_SIZE - 100; + G4int MAX_STR_LENGTH = COMMAND_BUF_SIZE - 100; if(MAX_STR_LENGTH <= 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1140,7 +1140,7 @@ void G4FRSCENEHANDLER::SendStrInt(const char* char_string, G4int ival) G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = sprintf(command, "%s %d", char_string, ival); + num_char = snprintf(command, COMMAND_BUF_SIZE, "%s %d", char_string, ival); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1158,8 +1158,8 @@ void G4FRSCENEHANDLER::SendStrInt3(const char* char_string, G4int ival1, G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = - sprintf(command, "%s %d %d %d", char_string, ival1, ival2, ival3); + num_char = snprintf(command, COMMAND_BUF_SIZE, "%s %d %d %d", + char_string, ival1, ival2, ival3); if(num_char < 0) { @@ -1179,8 +1179,8 @@ void G4FRSCENEHANDLER::SendStrInt4(const char* char_string, G4int ival1, G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = sprintf(command, "%s %d %d %d %d", char_string, ival1, ival2, - ival3, ival4); + num_char = snprintf(command, COMMAND_BUF_SIZE, "%s %d %d %d %d", + char_string, ival1, ival2, ival3, ival4); if(num_char < 0) { @@ -1199,7 +1199,8 @@ void G4FRSCENEHANDLER::SendStrDouble(const char* char_string, G4double dval) G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = sprintf(command, "%s %*.*g", char_string, fPrec2, fPrec, dval); + num_char = snprintf(command, COMMAND_BUF_SIZE, "%s %*.*g", + char_string, fPrec2, fPrec, dval); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1218,8 +1219,8 @@ void G4FRSCENEHANDLER::SendStrDouble2(const char* char_string, G4double dval1, G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = sprintf(command, "%s %*.*g %*.*g", char_string, fPrec2, fPrec, - dval1, fPrec2, fPrec, dval2); + num_char = snprintf(command, COMMAND_BUF_SIZE, "%s %*.*g %*.*g", + char_string, fPrec2, fPrec, dval1, fPrec2, fPrec, dval2); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1238,8 +1239,9 @@ void G4FRSCENEHANDLER::SendStrDouble3(const char* char_string, G4double dval1, G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = sprintf(command, "%s %*.*g %*.*g %*.*g", char_string, fPrec2, - fPrec, dval1, fPrec2, fPrec, dval2, fPrec2, fPrec, dval3); + num_char = snprintf(command, COMMAND_BUF_SIZE, "%s %*.*g %*.*g %*.*g", + char_string, fPrec2, fPrec, dval1, fPrec2, + fPrec, dval2, fPrec2, fPrec, dval3); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1259,9 +1261,10 @@ void G4FRSCENEHANDLER::SendStrDouble4(const char* char_string, G4double dval1, G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = sprintf(command, "%s %*.*g %*.*g %*.*g %*.*g", char_string, - fPrec2, fPrec, dval1, fPrec2, fPrec, dval2, fPrec2, fPrec, - dval3, fPrec2, fPrec, dval4); + num_char = snprintf(command, COMMAND_BUF_SIZE, + "%s %*.*g %*.*g %*.*g %*.*g", char_string, + fPrec2, fPrec, dval1, fPrec2, fPrec, dval2, + fPrec2, fPrec, dval3, fPrec2, fPrec, dval4); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1281,10 +1284,10 @@ void G4FRSCENEHANDLER::SendStrDouble5(const char* char_string, G4double dval1, G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = - sprintf(command, "%s %*.*g %*.*g %*.*g %*.*g %*.*g", char_string, - fPrec2, fPrec, dval1, fPrec2, fPrec, dval2, fPrec2, fPrec, dval3, - fPrec2, fPrec, dval4, fPrec2, fPrec, dval5); + num_char = snprintf(command, COMMAND_BUF_SIZE, + "%s %*.*g %*.*g %*.*g %*.*g %*.*g", char_string, + fPrec2, fPrec, dval1, fPrec2, fPrec, dval2, fPrec2, + fPrec, dval3, fPrec2, fPrec, dval4, fPrec2, fPrec, dval5); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1305,10 +1308,11 @@ void G4FRSCENEHANDLER::SendStrDouble6(const char* char_string, G4double dval1, G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = sprintf(command, "%s %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g", - char_string, fPrec2, fPrec, dval1, fPrec2, fPrec, dval2, - fPrec2, fPrec, dval3, fPrec2, fPrec, dval4, fPrec2, fPrec, - dval5, fPrec2, fPrec, dval6); + num_char = snprintf(command, COMMAND_BUF_SIZE, + "%s %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g", + char_string, fPrec2, fPrec, dval1, fPrec2, fPrec, dval2, + fPrec2, fPrec, dval3, fPrec2, fPrec, dval4, fPrec2, fPrec, + dval5, fPrec2, fPrec, dval6); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1329,10 +1333,11 @@ void G4FRSCENEHANDLER::SendStrDouble7(const char* char_string, G4double dval1, G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = sprintf(command, "%s %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g", - char_string, fPrec2, fPrec, dval1, fPrec2, fPrec, dval2, - fPrec2, fPrec, dval3, fPrec2, fPrec, dval4, fPrec2, fPrec, - dval5, fPrec2, fPrec, dval6, fPrec2, fPrec, dval7); + num_char = snprintf(command, COMMAND_BUF_SIZE, + "%s %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g", + char_string, fPrec2, fPrec, dval1, fPrec2, fPrec, dval2, + fPrec2, fPrec, dval3, fPrec2, fPrec, dval4, fPrec2, fPrec, + dval5, fPrec2, fPrec, dval6, fPrec2, fPrec, dval7); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1355,8 +1360,7 @@ void G4FRSCENEHANDLER::SendStrDouble11(const char* char_string, G4double dval1, G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = sprintf( - command, + num_char = snprintf(command, COMMAND_BUF_SIZE, "%s %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g", char_string, fPrec2, fPrec, dval1, fPrec2, fPrec, dval2, fPrec2, fPrec, dval3, fPrec2, fPrec, dval4, fPrec2, fPrec, dval5, fPrec2, fPrec, dval6, @@ -1380,8 +1384,9 @@ void G4FRSCENEHANDLER::SendIntDouble3(G4int ival, G4double dval1, G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = sprintf(command, "%d %*.*g %*.*g %*.*g", ival, fPrec2, fPrec, - dval1, fPrec2, fPrec, dval2, fPrec2, fPrec, dval3); + num_char = snprintf(command, COMMAND_BUF_SIZE, "%d %*.*g %*.*g %*.*g", + ival, fPrec2, fPrec, dval1, fPrec2, fPrec, dval2, + fPrec2, fPrec, dval3); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1399,7 +1404,8 @@ void G4FRSCENEHANDLER::SendInt3Str(G4int ival1, G4int ival2, G4int ival3, G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = sprintf(command, "%d %d %d %s", ival1, ival2, ival3, char_string); + num_char = snprintf(command, COMMAND_BUF_SIZE, "%d %d %d %s", + ival1, ival2, ival3, char_string); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1417,8 +1423,8 @@ void G4FRSCENEHANDLER::SendInt4Str(G4int ival1, G4int ival2, G4int ival3, G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = - sprintf(command, "%d %d %d %d %s", ival1, ival2, ival3, ival4, char_string); + num_char = snprintf(command, COMMAND_BUF_SIZE, "%d %d %d %d %s", + ival1, ival2, ival3, ival4, char_string); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1438,9 +1444,9 @@ void G4FRSCENEHANDLER::SendStrDouble3Str(const char* char_string1, G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = - sprintf(command, "%s %*.*g %*.*g %*.*g %s", char_string1, fPrec2, fPrec, - dval1, fPrec2, fPrec, dval2, fPrec2, fPrec, dval3, char_string2); + num_char = snprintf(command, COMMAND_BUF_SIZE, "%s %*.*g %*.*g %*.*g %s", + char_string1, fPrec2, fPrec, dval1, fPrec2, fPrec, dval2, + fPrec2, fPrec, dval3, char_string2); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1461,10 +1467,11 @@ void G4FRSCENEHANDLER::SendStrDouble6Str(const char* char_string1, G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = sprintf(command, "%s %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %s", - char_string1, fPrec2, fPrec, dval1, fPrec2, fPrec, dval2, - fPrec2, fPrec, dval3, fPrec2, fPrec, dval4, fPrec2, fPrec, - dval5, fPrec2, fPrec, dval6, char_string2); + num_char = snprintf(command, COMMAND_BUF_SIZE, + "%s %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %s", + char_string1, fPrec2, fPrec, dval1, fPrec2, fPrec, dval2, + fPrec2, fPrec, dval3, fPrec2, fPrec, dval4, fPrec2, fPrec, + dval5, fPrec2, fPrec, dval6, char_string2); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1481,7 +1488,7 @@ void G4FRSCENEHANDLER::SendInt(G4int val) G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = sprintf(command, "%d", val); + num_char = snprintf(command, COMMAND_BUF_SIZE, "%d", val); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) @@ -1498,7 +1505,7 @@ void G4FRSCENEHANDLER::SendDouble(G4double val) G4int num_char; char* command = new char[COMMAND_BUF_SIZE]; - num_char = sprintf(command, "%*.*g", fPrec2, fPrec, val); + num_char = snprintf(command, COMMAND_BUF_SIZE, "%*.*g", fPrec2, fPrec, val); if(num_char < 0) { if(G4VisManager::GetVerbosity() >= G4VisManager::errors) diff --git a/source/visualization/GNUmakefile b/source/visualization/GNUmakefile index 0d107689ed..b7dd272b56 100644 --- a/source/visualization/GNUmakefile +++ b/source/visualization/GNUmakefile @@ -39,27 +39,21 @@ ifdef G4VIS_BUILD SUBLIBS += G4Tree SUBDIRS += gMocren SUBLIBS += G4GMocren + SUBDIRS += ToolsSG + SUBLIBS += G4ToolsSG # Drivers needing external libraries... ifdef G4VIS_BUILD_OPENGL_DRIVER - SUBDIRS += externals/gl2ps SUBDIRS += OpenGL SUBLIBS += G4OpenGL - SUBLIBS += G4gl2ps endif ifdef G4VIS_BUILD_OI_DRIVER - SUBDIRS += externals/gl2ps SUBDIRS += OpenInventor SUBLIBS += G4OpenInventor - SUBLIBS += G4gl2ps endif ifdef G4VIS_BUILD_QT3D_DRIVER SUBDIRS += Qt3D SUBLIBS += G4visQt3D endif -ifdef G4VIS_BUILD_TOOLSSG_DRIVER - SUBDIRS += ToolsSG - SUBLIBS += G4ToolsSG -endif endif #G4VIS_BUILD .PHONY: granular obj glob global clean diff --git a/source/visualization/HepRep/History b/source/visualization/HepRep/History index d9cbc56847..958c9e56f9 100644 --- a/source/visualization/HepRep/History +++ b/source/visualization/HepRep/History @@ -4,6 +4,9 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +## 2022-09-03 Ben Morgan (vis-HepRep-V11-00-02) +- Make dependencies consistent. + ## 2022-01-28 Ben Morgan (vis-HepRep-V11-00-01) - Replace `geant4_global_library_target` with direct file inclusion and call to `geant4_add_category` to define library build from source modules. diff --git a/source/visualization/HepRep/sources.cmake b/source/visualization/HepRep/sources.cmake index 87a7eba7ef..9269ddf980 100644 --- a/source/visualization/HepRep/sources.cmake +++ b/source/visualization/HepRep/sources.cmake @@ -18,16 +18,16 @@ geant4_add_module(G4visHepRep geant4_module_link_libraries(G4visHepRep PUBLIC G4csg - G4geometrymng - G4materials - G4modeling G4specsolids G4globman G4intercoms G4vis_management - G4graphics_reps PRIVATE - G4hepgeometry + G4geometrymng + G4graphics_reps + G4hits + G4materials + G4modeling G4tracking) # List any source specific properties here diff --git a/source/visualization/History b/source/visualization/History index 221926eee8..6f3134aadd 100644 --- a/source/visualization/History +++ b/source/visualization/History @@ -1,9 +1,19 @@ # Category vis History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! +------------------------------------------------------------------------------- + +## 2022-11-28 John Allison (vis-V11-00-04) + - Numerous tags for 11.1 in vis sub-categories - see History files therein. + +## 2022-11-25 Gabriele Cosmo (vis-V11-00-03) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-07-14 Ben Morgan (vis-V11-00-02) +- Remove obsolete externals gl2ps subcategory ## 2022-03-25 Ben Morgan (vis-V11-00-01) - Remove retired G4tasking library as link dependency of vis libraries diff --git a/source/visualization/OpenGL/History b/source/visualization/OpenGL/History index a5e97e3442..35d85cc591 100644 --- a/source/visualization/OpenGL/History +++ b/source/visualization/OpenGL/History @@ -6,6 +6,42 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-25 Gabriele Cosmo (opengl-V11-00-21) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-21 Ben Morgan (opengl-V11-00-20) +- Revert link support for Qt6 until code is ready. + +## 2022-10-28 John Allison (opengl-V11-00-19) +- Update a comment about requesting a kernel visit when cutaway mode + changes - noted but not relevant because OGL does its own cutaways: + - G4OpenGLStoredQtViewer.cc + - G4OpenGLStoredViewer.cc +- Minor tidy - speed cutaway check: + - G4OpenGLViewer::SetView + +## 2022-10-17 Gabriele Cosmo (opengl-V11-00-18) +- Replaced use of sprintf() with snprintf(), to fix deprecation compilation + warnings on macOS-13 SDK. + +## 2022-10-11 Ben Morgan (opengl-V11-00-17) +- Link to Qt OpenGLWidgets target for Qt6 only. + +## 2022-10-07 Gabriele Cosmo (opengl-V11-00-16) +- Fixed compilation warnings on Intel/icc compiler for deprecated conversion + of string literal to char* in G4OpenGLXmConvenienceRoutines and + G4OpenGLXmViewer. + +## 2022-09-14 John Allison (opengl-V11-00-15) +- G4OpenGLStoredViewer.cc, G4OpenGLStoredQtViewer.cc: + - Add check on special mesh rendering option in CompareForKernelVisit. + +## 2022-09-06 Ben Morgan (opengl-V11-00-14) +- Address dependency inconsistencies reported by geant4_module_check + +## 2022-07-13 Ben Morgan (opengl-V11-00-13) +- Fix compiler warnings in the use of G4OpenGLQtViewer::toggleProjection. + ## 2022-05-03 Ben Morgan (opengl-V11-00-12) - Preliminary build support for Qt5 and Qt6 diff --git a/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh b/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh index e139de8e60..208f1cd386 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh @@ -60,130 +60,149 @@ protected: void GetXmConnection (); virtual void CreateMainWindow (); - XtAppContext app; - XtWorkProcId workId; - Widget toplevel, - shell, - main_win, - menubar, - style_cascade, - actions_cascade, - misc_cascade, - spec_cascade, - drawing_style_pullright, - background_color_pullright, - transparency_pullright, - antialias_pullright, - haloing_pullright, - aux_edge_pullright, - frame, - glxarea; + XtAppContext app; + XtWorkProcId workId; + Widget toplevel, + shell, + main_win, + menubar, + style_cascade, + actions_cascade, + misc_cascade, + spec_cascade, + drawing_style_pullright, + background_color_pullright, + transparency_pullright, + antialias_pullright, + haloing_pullright, + aux_edge_pullright, + frame, + glxarea; - XmString style_str, - actions_str, - misc_str, - spec_str, - draw_str, - polyhedron_str, - wireframe_str, - hlr_str, - hsr_str, - hlhsr_str, - set_str, - rot_str, - pan_str, - exit_str, - quit_str, - print_str, - white_str, - black_str, - anti_str, - trans_str, - halo_str, - aux_edge_str, - bgnd_str, - off_str, - on_str; + XmString style_str, + actions_str, + misc_str, + spec_str, + draw_str, + polyhedron_str, + wireframe_str, + hlr_str, + hsr_str, + hlhsr_str, + set_str, + rot_str, + pan_str, + exit_str, + quit_str, + print_str, + white_str, + black_str, + anti_str, + trans_str, + halo_str, + aux_edge_str, + bgnd_str, + off_str, + on_str; - G4double zoom_high, - zoom_low, - pan_low, - pan_high, - dolly_low, - dolly_high, - fov, - rot_sens_limit, - pan_sens_limit, - wob_high, - wob_low, - wob_sens; + G4double zoom_high, + zoom_low, + pan_low, + pan_high, + dolly_low, + dolly_high, + fov, + rot_sens_limit, + pan_sens_limit, + wob_high, + wob_low, + wob_sens; - Pixel bgnd, - borcol; + Pixel bgnd, + borcol; - G4bool pan_right, - rotate_right, - pan_up, - rotate_up; + G4bool pan_right, + rotate_right, + pan_up, + rotate_up; - XtIntervalId rotation_timer, - pan_timer, - wobble_timer; + XtIntervalId rotation_timer, + pan_timer, + wobble_timer; - G4Vector3D original_vp; + G4Vector3D original_vp; - G4int frameNo; + G4int frameNo; + static const G4String e_str; + G4String menu_str[37] = { "Style", "style", + "Actions", "actions", + "Miscellany", "miscellany", + "Special", "special", + "menubar", "Drawing", + "Background color", "Wireframe", + "Hidden line removal", "Hidden surface removal", + "Hidden line and surface removal", "drawing_style", + "White", "Black", + "background_color", "Rotation control panel", + "Panning control panel", "Set control panel limits", + "Miscellany control panel", + "Exit to G4Vis>", "Create .eps file", + "Transparency", "transparency", + "Antialiasing", "antialias", + "Haloing", "haloing", + "Auxiliary edges", "aux_edge", + "Off", "On", "frame", "glxarea" }; - G4OpenGLXmTopLevelShell* fprotation_top; - G4OpenGLXmBox* fprotation_button_box; - G4OpenGLXmRadioButton* fprotation_button1; - G4OpenGLXmRadioButton* fprotation_button2; - G4OpenGLXmBox* fprotation_slider_box; - G4OpenGLXmSliderBar* fprotation_slider; - G4OpenGLXmBox* fprotation_arrow_box; - G4OpenGLXmFourArrowButtons* fprotation_arrow; + G4OpenGLXmTopLevelShell* fprotation_top; + G4OpenGLXmBox* fprotation_button_box; + G4OpenGLXmRadioButton* fprotation_button1; + G4OpenGLXmRadioButton* fprotation_button2; + G4OpenGLXmBox* fprotation_slider_box; + G4OpenGLXmSliderBar* fprotation_slider; + G4OpenGLXmBox* fprotation_arrow_box; + G4OpenGLXmFourArrowButtons* fprotation_arrow; - G4OpenGLXmTopLevelShell* fppanning_top; - G4OpenGLXmFramedBox* fppanning_box; - G4OpenGLXmFourArrowButtons* fppanning_arrows; - G4OpenGLXmSliderBar* fppanning_slider; - G4OpenGLXmFramedBox* fpzoom_box; - G4OpenGLXmSliderBar* fpzoom_slider; - G4OpenGLXmFramedBox* fpdolly_box; - G4OpenGLXmSliderBar* fpdolly_slider; + G4OpenGLXmTopLevelShell* fppanning_top; + G4OpenGLXmFramedBox* fppanning_box; + G4OpenGLXmFourArrowButtons* fppanning_arrows; + G4OpenGLXmSliderBar* fppanning_slider; + G4OpenGLXmFramedBox* fpzoom_box; + G4OpenGLXmSliderBar* fpzoom_slider; + G4OpenGLXmFramedBox* fpdolly_box; + G4OpenGLXmSliderBar* fpdolly_slider; - G4OpenGLXmTopLevelShell* fpsetting_top; - G4OpenGLXmFramedBox* fpsetting_box; - G4OpenGLXmTextField* fppan_set; - G4OpenGLXmTextField* fprot_set; - G4OpenGLXmTextField* fpzoom_upper; - G4OpenGLXmTextField* fpzoom_lower; - G4OpenGLXmTextField* fpdolly_upper; - G4OpenGLXmTextField* fpdolly_lower; - G4OpenGLXmPushButton* fpok_button; + G4OpenGLXmTopLevelShell* fpsetting_top; + G4OpenGLXmFramedBox* fpsetting_box; + G4OpenGLXmTextField* fppan_set; + G4OpenGLXmTextField* fprot_set; + G4OpenGLXmTextField* fpzoom_upper; + G4OpenGLXmTextField* fpzoom_lower; + G4OpenGLXmTextField* fpdolly_upper; + G4OpenGLXmTextField* fpdolly_lower; + G4OpenGLXmPushButton* fpok_button; - G4OpenGLXmTopLevelShell* fpmiscellany_top; - G4OpenGLXmFramedBox* fpwobble_box; - G4OpenGLXmPushButton* fpwobble_button; - G4OpenGLXmSliderBar* fpwobble_slider; - G4OpenGLXmFramedBox* fpreset_box; - G4OpenGLXmPushButton* fpreset_button; - G4OpenGLXmFramedBox* fpproj_style_box; - G4OpenGLXmRadioButton* fporthogonal_button; - G4OpenGLXmRadioButton* fpperspective_button; - G4OpenGLXmTextField* fpfov_text; + G4OpenGLXmTopLevelShell* fpmiscellany_top; + G4OpenGLXmFramedBox* fpwobble_box; + G4OpenGLXmPushButton* fpwobble_button; + G4OpenGLXmSliderBar* fpwobble_slider; + G4OpenGLXmFramedBox* fpreset_box; + G4OpenGLXmPushButton* fpreset_button; + G4OpenGLXmFramedBox* fpproj_style_box; + G4OpenGLXmRadioButton* fporthogonal_button; + G4OpenGLXmRadioButton* fpperspective_button; + G4OpenGLXmTextField* fpfov_text; - G4OpenGLXmTopLevelShell* fpprint_top; - G4OpenGLXmFramedBox* fpprint_box; - G4OpenGLXmFramedBox* fpprint_col_box; - G4OpenGLXmFramedBox* fpprint_style_box; - G4OpenGLXmTextField* fpprint_text; - G4OpenGLXmPushButton* fpprint_button; - G4OpenGLXmSeparator* fpprint_line; - G4OpenGLXmRadioButton* fpprint_col_radio1; - G4OpenGLXmRadioButton* fpprint_col_radio2; - G4OpenGLXmRadioButton* fpprint_style_radio1; - G4OpenGLXmRadioButton* fpprint_style_radio2; + G4OpenGLXmTopLevelShell* fpprint_top; + G4OpenGLXmFramedBox* fpprint_box; + G4OpenGLXmFramedBox* fpprint_col_box; + G4OpenGLXmFramedBox* fpprint_style_box; + G4OpenGLXmTextField* fpprint_text; + G4OpenGLXmPushButton* fpprint_button; + G4OpenGLXmSeparator* fpprint_line; + G4OpenGLXmRadioButton* fpprint_col_radio1; + G4OpenGLXmRadioButton* fpprint_col_radio2; + G4OpenGLXmRadioButton* fpprint_style_radio1; + G4OpenGLXmRadioButton* fpprint_style_radio2; public: diff --git a/source/visualization/OpenGL/sources.cmake b/source/visualization/OpenGL/sources.cmake index 44cafd3bea..28779886db 100644 --- a/source/visualization/OpenGL/sources.cmake +++ b/source/visualization/OpenGL/sources.cmake @@ -39,10 +39,7 @@ geant4_module_link_libraries(G4OpenGL G4vis_management PRIVATE G4geometrymng - G4UIcommon - G4UIbasic - G4run - G4gl2ps) + G4run) #---------------------------------------------------------------------------- # Add X11 OpenGL Support if requested @@ -128,8 +125,8 @@ if(GEANT4_USE_XM) # Add the compile definitions needed for the Xm component (G4OpenGL.hh, G4OpenGLViewer.cc) geant4_module_compile_definitions(G4OpenGL PRIVATE G4VIS_BUILD_OPENGLXM_DRIVER) - # Add in Xm - geant4_module_link_libraries(G4OpenGL PUBLIC Motif::Xm) + # Add in Xm and needed modules + geant4_module_link_libraries(G4OpenGL PUBLIC Motif::Xm PRIVATE G4UIcommon) endif() # Common X11/Xm link libraries @@ -172,8 +169,10 @@ if(GEANT4_USE_QT) # Add the definitions (G4OpenGL.hh, G4OpenGLViewer.cc) geant4_module_compile_definitions(G4OpenGL PRIVATE G4VIS_BUILD_OPENGLQT_DRIVER) - # Add in Qt libraries - geant4_module_link_libraries(G4OpenGL PUBLIC Qt${QT_VERSION_MAJOR}::OpenGL Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::PrintSupport Qt${QT_VERSION_MAJOR}::Widgets OpenGL::GL) + # Add in Qt libraries and geant4 modules + geant4_module_link_libraries(G4OpenGL + PUBLIC Qt${QT_VERSION_MAJOR}::OpenGL Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::PrintSupport Qt${QT_VERSION_MAJOR}::Widgets OpenGL::GL + PRIVATE G4UIbasic G4UIcommon) endif() #---------------------------------------------------------------------------- diff --git a/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc b/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc index 227c49cc7f..80ced82502 100644 --- a/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc @@ -600,8 +600,8 @@ void G4OpenGLQtViewer::createPopupMenu() { } #else // no more radioAction, not realy useful and could be confusing to use context menu and icon at the same time - fProjectionOrtho = mProjection->addAction("Orthographic", this, [this](){ this->toggleProjection(1); }); - fProjectionPerspective = mProjection->addAction("Perspective", this, [this](){ this->toggleProjection(2); }); + fProjectionOrtho = mProjection->addAction("Orthographic", this, [this](){ this->toggleProjection(true); }); + fProjectionPerspective = mProjection->addAction("Perspective", this, [this](){ this->toggleProjection(false); }); #endif // === Drawing Menu === QMenu *mDrawing = mStyle->addMenu("&Drawing"); @@ -935,7 +935,7 @@ void G4OpenGLQtViewer::toggleSurfaceAction(int aAction) { */ void G4OpenGLQtViewer::toggleProjection(bool check) { - if (check == 1) { + if (check) { fVP.SetOrthogonalProjection (); } else { fVP.SetPerspectiveProjection(); @@ -1343,7 +1343,7 @@ void G4OpenGLQtViewer::G4MouseReleaseEvent(QMouseEvent *evnt) // factorX == factorY double factorX = ((double)viewport[2]/fGLWidget->width()); double factorY = ((double)viewport[3]/fGLWidget->height()); - fSpinningDelay = fLastEventTime->elapsed(); + fSpinningDelay = (int)fLastEventTime->elapsed(); QPoint delta = (fLastPos3-fLastPos1)*factorX; // reset cursor state @@ -2934,7 +2934,7 @@ QTreeWidgetItem* G4OpenGLQtViewer::createTreeWidgetItem( // Set depth if (fullPath.size() > fSceneTreeDepth) { - fSceneTreeDepth = fullPath.size(); + fSceneTreeDepth = (unsigned int)fullPath.size(); // Change slider value if (fSceneTreeDepthSlider) { fSceneTreeDepthSlider->setTickInterval(1000/(fSceneTreeDepth+1)); @@ -3195,24 +3195,24 @@ void G4OpenGLQtViewer::changeOpenCloseVisibleHiddenSelectedColorSceneTreeElement // POindex > 0 std::map ::const_iterator i; - i = fOldPositivePoIndexSceneTreeWidgetQuickMap.begin(); - while (i != fOldPositivePoIndexSceneTreeWidgetQuickMap.end()) { + i = fOldPositivePoIndexSceneTreeWidgetQuickMap.cbegin(); + while (i != fOldPositivePoIndexSceneTreeWidgetQuickMap.cend()) { if (isSameSceneTreeElement(i->second,subItem)) { oldItem = i->second; - i = fOldPositivePoIndexSceneTreeWidgetQuickMap.end(); + i = fOldPositivePoIndexSceneTreeWidgetQuickMap.cend(); } else { - i++; + ++i; } } // POindex == 0 ? if (oldItem == NULL) { - unsigned int a = 0; + std::size_t a = 0; while (a < fOldNullPoIndexSceneTreeWidgetQuickVector.size()) { if (isSameSceneTreeElement(fOldNullPoIndexSceneTreeWidgetQuickVector[a],subItem)) { oldItem = fOldNullPoIndexSceneTreeWidgetQuickVector[a]; a = fOldNullPoIndexSceneTreeWidgetQuickVector.size(); } else { - a++; + ++a; } } } @@ -4470,7 +4470,7 @@ void G4OpenGLQtViewer::updateViewerPropertiesTableWidget() { // Set Guidance QString guidance; - G4int n_guidanceEntry = commandTmp->GetGuidanceEntries(); + G4int n_guidanceEntry = (G4int)commandTmp->GetGuidanceEntries(); for( G4int i_thGuidance=0; i_thGuidance < n_guidanceEntry; i_thGuidance++ ) { guidance += QString((char*)(commandTmp->GetGuidanceLine(i_thGuidance)).data()) + "\n"; } @@ -4756,7 +4756,7 @@ QString G4OpenGLQtViewer::GetCommandParameterList ( const G4UIcommand *aCommand ) { - G4int n_parameterEntry = aCommand->GetParameterEntries(); + G4int n_parameterEntry = (G4int)aCommand->GetParameterEntries(); QString txt; if( n_parameterEntry > 0 ) { diff --git a/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc index e6c5164a9a..567d4b8d4a 100644 --- a/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc @@ -344,7 +344,7 @@ G4DisplacedSolid* G4OpenGLSceneHandler::CreateCutawaySolid () void G4OpenGLSceneHandler::AddPrimitive (const G4Polyline& line) { - G4int nPoints = line.size (); + std::size_t nPoints = line.size (); if (nPoints <= 0) return; // Note: colour and depth test treated in sub-class. @@ -368,7 +368,7 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4Polyline& line) // Boundary and nonboundary edge flags on vertices are significant only if GL_POLYGON_MODE is set to GL_POINT or GL_LINE. See glPolygonMode. // glEdgeFlag (GL_TRUE); - for (G4int iPoint = 0; iPoint < nPoints; iPoint++) { + for (std::size_t iPoint = 0; iPoint < nPoints; ++iPoint) { G4double x, y, z; x = line[iPoint].x(); y = line[iPoint].y(); @@ -379,7 +379,7 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4Polyline& line) #else glBeginVBO(GL_LINE_STRIP); - for (G4int iPoint = 0; iPoint < nPoints; iPoint++) { + for (std::size_t iPoint = 0; iPoint < nPoints; ++iPoint) { fOglVertex.push_back(line[iPoint].x()); fOglVertex.push_back(line[iPoint].y()); fOglVertex.push_back(line[iPoint].z()); diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredQtSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLStoredQtSceneHandler.cc index acfae08620..a56ad04a34 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredQtSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredQtSceneHandler.cc @@ -93,7 +93,7 @@ G4bool G4OpenGLStoredQtSceneHandler::ExtraPOProcessing // build a path for tree viewer G4OpenGLQtViewer* pGLViewer = dynamic_cast(fpViewer); if ( pGLViewer ) { - pGLViewer->addPVSceneTreeElement(fpModel->GetCurrentDescription(),pPVModel,currentPOListIndex); + pGLViewer->addPVSceneTreeElement(fpModel->GetCurrentDescription(),pPVModel,(G4int)currentPOListIndex); } } else { // Not from a G4PhysicalVolumeModel. @@ -104,7 +104,7 @@ G4bool G4OpenGLStoredQtSceneHandler::ExtraPOProcessing // build a path for tree viewer G4OpenGLQtViewer* pGLViewer = dynamic_cast(fpViewer); if ( pGLViewer ) { - pGLViewer->addNonPVSceneTreeElement(fpModel->GetType(),currentPOListIndex,fpModel->GetCurrentDescription().data(),visible); + pGLViewer->addNonPVSceneTreeElement(fpModel->GetType(),(G4int)currentPOListIndex,fpModel->GetCurrentDescription().data(),visible); } } } diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc index 4695558903..10a7e1da83 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc @@ -141,7 +141,8 @@ G4bool G4OpenGLStoredQtViewer::CompareForKernelVisit(G4ViewParameters& lastVP) fVP.GetDefaultTextVisAttributes()->GetColour()) || (lastVP.GetBackgroundColour ()!= fVP.GetBackgroundColour ())|| (lastVP.IsPicking () != fVP.IsPicking ()) || - (lastVP.IsSpecialMeshRendering() != fVP.IsSpecialMeshRendering())) + (lastVP.IsSpecialMeshRendering() != fVP.IsSpecialMeshRendering()) || + (lastVP.GetSpecialMeshRenderingOption() != fVP.GetSpecialMeshRenderingOption())) return true; // Don't check VisAttributesModifiers if this comparison has been @@ -170,6 +171,7 @@ G4bool G4OpenGLStoredQtViewer::CompareForKernelVisit(G4ViewParameters& lastVP) /************************************************************** If cutaways are implemented locally, comment this out. if (lastVP.IsCutaway ()) { + if (vp.GetCutawayMode() != fVP.GetCutawayMode()) return true; if (lastVP.GetCutawayPlanes ().size () != fVP.GetCutawayPlanes ().size ()) return true; for (size_t i = 0; i < lastVP.GetCutawayPlanes().size(); ++i) @@ -196,7 +198,7 @@ G4bool G4OpenGLStoredQtViewer::CompareForKernelVisit(G4ViewParameters& lastVP) G4bool G4OpenGLStoredQtViewer::POSelected(size_t POListIndex) { - return isTouchableVisible(POListIndex); + return isTouchableVisible((int)POListIndex); } G4bool G4OpenGLStoredQtViewer::TOSelected(size_t) @@ -451,5 +453,5 @@ void G4OpenGLStoredQtViewer::ShowView ( void G4OpenGLStoredQtViewer::DisplayTimePOColourModification ( G4Colour& c, size_t poIndex) { - c = getColorForPoIndex(poIndex); + c = getColorForPoIndex((int)poIndex); } diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc index e75266c785..1c598ef499 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc @@ -99,7 +99,9 @@ G4bool G4OpenGLStoredViewer::CompareForKernelVisit(G4ViewParameters& lastVP) { (lastVP.GetVisAttributesModifiers() != fVP.GetVisAttributesModifiers()) || (lastVP.IsSpecialMeshRendering() != - fVP.IsSpecialMeshRendering()) + fVP.IsSpecialMeshRendering()) || + (lastVP.GetSpecialMeshRenderingOption() != + fVP.GetSpecialMeshRenderingOption()) ) return true; @@ -117,6 +119,7 @@ G4bool G4OpenGLStoredViewer::CompareForKernelVisit(G4ViewParameters& lastVP) { /************************************************************** If cutaways are implemented locally, comment this out. if (lastVP.IsCutaway ()) { + if (vp.GetCutawayMode() != fVP.GetCutawayMode()) return true; if (lastVP.GetCutawayPlanes ().size () != fVP.GetCutawayPlanes ().size ()) return true; for (size_t i = 0; i < lastVP.GetCutawayPlanes().size(); ++i) diff --git a/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc b/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc index 750f559855..83d8b842af 100644 --- a/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc +++ b/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc @@ -31,13 +31,14 @@ // from G4Transform3D. #include "G4OpenGLTransform3D.hh" +#include "G4Types.hh" G4OpenGLTransform3D::G4OpenGLTransform3D (const G4Transform3D &t) { GLdouble *p = m; - for (size_t i=0; i<4; i++) + for (G4int i=0; i<4; ++i) { - for (size_t k=0; k<3; k++) + for (G4int k=0; k<3; ++k) { *p++ = t(k,i); } diff --git a/source/visualization/OpenGL/src/G4OpenGLViewer.cc b/source/visualization/OpenGL/src/G4OpenGLViewer.cc index 48ea89baa8..eeedaf5d6a 100644 --- a/source/visualization/OpenGL/src/G4OpenGLViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLViewer.cc @@ -409,8 +409,7 @@ void G4OpenGLViewer::SetView () { const G4Planes& cutaways = fVP.GetCutawayPlanes(); size_t nPlanes = cutaways.size(); if (fVP.IsCutaway() && - fVP.GetCutawayMode() == G4ViewParameters::cutawayIntersection && - nPlanes > 0) { + fVP.GetCutawayMode() == G4ViewParameters::cutawayIntersection) { double a[4]; a[0] = cutaways[0].a(); a[1] = cutaways[0].b(); @@ -1229,7 +1228,7 @@ void G4OpenGLViewer::rotateSceneThetaPhi(G4double dx, G4double dy) new_vp = std::cos(delta_alpha) * vp + std::sin(delta_alpha) * zprime; // to avoid z rotation flipping - // to allow more than 360∞ rotation + // to allow more than 360° rotation if (fVP.GetLightsMoveWithCamera()) { new_up = (new_vp.cross(yprime)).unit(); diff --git a/source/visualization/OpenGL/src/G4OpenGLXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLXViewer.cc index 72a2167c9b..947f504ab0 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXViewer.cc @@ -452,7 +452,7 @@ void G4OpenGLXViewer::DrawText(const G4Text& g4text) // Write characters glListBase(fontInfo.fFontBase); - glCallLists(strlen(textCString),GL_UNSIGNED_BYTE,(GLubyte*)textCString); + glCallLists((G4int)strlen(textCString),GL_UNSIGNED_BYTE,(GLubyte*)textCString); glPopAttrib(); } } @@ -550,4 +550,4 @@ G4OpenGLXViewer::~G4OpenGLXViewer () { XFlush (dpy); } } - \ No newline at end of file + diff --git a/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc b/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc index 41a7b0e5ba..96dd1e436c 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc @@ -31,8 +31,6 @@ // Collection of routines to facilitate // the addition of simple push button boxes, // and slider bars to the control panel. -// -// See G4OpenGLXmConvenienceRoutines.hh for more information. #include "G4OpenGLXmViewer.hh" @@ -46,6 +44,8 @@ #include +const G4String G4OpenGLXmViewer::e_str = ""; + void G4OpenGLXmViewer::Add_four_arrow_buttons (G4OpenGLXmViewer* pView, XtCallbackRec** arrow_callbacks, Widget* parent_widget) { @@ -199,7 +199,7 @@ void G4OpenGLXmViewer::Add_radio_box (char* label_string, char** button_names, G4OpenGLXmViewer* pView) { - XmString button_str = XmStringCreateLocalized((char*) ""); // ...to + XmString button_str = XmStringCreateLocalized((char*) e_str.c_str()); // initialise to something to avoid pedantic warning. Arg** args; args = new Arg* [num_buttons]; @@ -320,7 +320,7 @@ void G4OpenGLXmViewer::Add_set_field (char* w_name, XmStringFree (local_text); char initial[50]; - sprintf (initial, "%6.2f", *val); + snprintf (initial, sizeof initial, "%6.2f", *val); *wid = XtVaCreateManagedWidget (text_field_name, xmTextFieldWidgetClass, @@ -392,7 +392,7 @@ void G4OpenGLXmViewer::Add_slider_box (char* label_string, XtCallbackRec** slider_box_callbacks, Widget* parent_widget) { - XmString slider_name_str = XmStringCreateLocalized((char*) ""); // ...to + XmString slider_name_str = XmStringCreateLocalized((char*) e_str.c_str()); // initialise to something to avoid pedantic warning. Arg** slider_args; slider_args = new Arg*[num_sliders]; diff --git a/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc b/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc index ec4cacf2a7..9cc5ec421a 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc @@ -46,7 +46,7 @@ G4OpenGLXmTextField::G4OpenGLXmTextField (const char* n, { name = n; initial = new char[50]; - sprintf (initial, "%6.2f", *val); + snprintf (initial, 50, "%6.2f", *val); value = (void*)val; text=false; } @@ -59,7 +59,7 @@ G4OpenGLXmTextField::G4OpenGLXmTextField (const char* n, { name = n; initial = new char[50]; - sprintf (initial, "%s", val); + snprintf (initial, 50, "%s", val); value = (void*)val; text=true; // strcpy (initial, val); @@ -87,7 +87,7 @@ const char* G4OpenGLXmTextField::GetName () void G4OpenGLXmTextField::SetValue (G4double val) { - sprintf (initial, "%6.2f", val); + snprintf (initial, 50, "%6.2f", val); XtVaSetValues (text_field, XmNvalue, (String)initial, @@ -97,7 +97,7 @@ void G4OpenGLXmTextField::SetValue (G4double val) void G4OpenGLXmTextField::SetValue (const char* val) { - sprintf (initial, "%s", val); + snprintf (initial, 50, "%s", val); // strcpy (initial, val); XtVaSetValues (text_field, diff --git a/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc index 6f3d003553..01c955fe3c 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc @@ -241,13 +241,13 @@ void G4OpenGLXmViewer::CreateMainWindow () { NULL); //*********Create a menu bar for the window******** - style_str = XmStringCreateLocalized ((char*)"Style"); - actions_str = XmStringCreateLocalized ((char*)"Actions"); - misc_str = XmStringCreateLocalized ((char*)"Miscellany"); - spec_str = XmStringCreateLocalized ((char*)"Special"); + style_str = XmStringCreateLocalized ((char*)menu_str[0].c_str()); + actions_str = XmStringCreateLocalized ((char*)menu_str[2].c_str()); + misc_str = XmStringCreateLocalized ((char*)menu_str[4].c_str()); + spec_str = XmStringCreateLocalized ((char*)menu_str[6].c_str()); menubar = XmVaCreateSimpleMenuBar (main_win, - (char*)"menubar", + (char*)menu_str[8].c_str(), XmVaCASCADEBUTTON, style_str, (KeySym)XK_S, /*G.Barrand : cast to KeySym and use XK_*/ XmVaCASCADEBUTTON, actions_str, (KeySym)XK_A, XmVaCASCADEBUTTON, misc_str, (KeySym)XK_M, @@ -268,12 +268,12 @@ void G4OpenGLXmViewer::CreateMainWindow () { //*********Create style pulldown menu on menubar********* - draw_str = XmStringCreateLocalized ((char*)"Drawing"); - bgnd_str = XmStringCreateLocalized ((char*)"Background color"); + draw_str = XmStringCreateLocalized ((char*)menu_str[9].c_str()); + bgnd_str = XmStringCreateLocalized ((char*)menu_str[10].c_str()); style_cascade = XmVaCreateSimplePulldownMenu (menubar, - (char*)"style", + (char*)menu_str[1].c_str(), 0, NULL, XmVaCASCADEBUTTON, draw_str, (KeySym)XK_D, @@ -291,14 +291,14 @@ void G4OpenGLXmViewer::CreateMainWindow () { // G4cout << "Created Style pulldown menu" << G4endl; //Add Drawing pullright menu to style cascade... - wireframe_str = XmStringCreateLocalized ((char*)"Wireframe"); - hlr_str = XmStringCreateLocalized ((char*)"Hidden line removal"); - hsr_str = XmStringCreateLocalized ((char*)"Hidden surface removal"); - hlhsr_str = XmStringCreateLocalized ((char*)"Hidden line and surface removal"); + wireframe_str = XmStringCreateLocalized ((char*)menu_str[11].c_str()); + hlr_str = XmStringCreateLocalized ((char*)menu_str[12].c_str()); + hsr_str = XmStringCreateLocalized ((char*)menu_str[13].c_str()); + hlhsr_str = XmStringCreateLocalized ((char*)menu_str[14].c_str()); drawing_style_pullright = XmVaCreateSimplePulldownMenu (style_cascade, - (char*)"drawing_style", + (char*)menu_str[15].c_str(), 1, drawing_style_callback, XmVaRADIOBUTTON, wireframe_str, (KeySym)XK_W, NULL, NULL, @@ -355,12 +355,12 @@ void G4OpenGLXmViewer::CreateMainWindow () { // G4cout << "Created Drawing pullright menu" << G4endl; //Add Drawing pullright menu to style cascade... - white_str = XmStringCreateLocalized ((char*)"White"); - black_str = XmStringCreateLocalized ((char*)"Black"); + white_str = XmStringCreateLocalized ((char*)menu_str[16].c_str()); + black_str = XmStringCreateLocalized ((char*)menu_str[17].c_str()); background_color_pullright = XmVaCreateSimplePulldownMenu (style_cascade, - (char*)"background_color", + (char*)menu_str[18].c_str(), 2, background_color_callback, XmVaRADIOBUTTON, white_str, (KeySym)XK_W, NULL, NULL, @@ -395,13 +395,13 @@ void G4OpenGLXmViewer::CreateMainWindow () { // G4cout << "Created Background color pullright menu" << G4endl; //*********Create actions pulldown menu on menubar********* - rot_str = XmStringCreateLocalized ((char*)"Rotation control panel"); - pan_str = XmStringCreateLocalized ((char*)"Panning control panel"); - set_str = XmStringCreateLocalized ((char*)"Set control panel limits"); + rot_str = XmStringCreateLocalized ((char*)menu_str[19].c_str()); + pan_str = XmStringCreateLocalized ((char*)menu_str[20].c_str()); + set_str = XmStringCreateLocalized ((char*)menu_str[21].c_str()); actions_cascade = XmVaCreateSimplePulldownMenu (menubar, - (char*)"actions", + (char*)menu_str[3].c_str(), 1, actions_callback, XmVaPUSHBUTTON, rot_str, (KeySym)XK_R, NULL, NULL, @@ -420,14 +420,14 @@ void G4OpenGLXmViewer::CreateMainWindow () { XmStringFree (set_str); G4cout << "Created Actions pulldown menu" << G4endl; - misc_str = XmStringCreateLocalized ((char*)"Miscellany control panel"); - exit_str = XmStringCreateLocalized ((char*)"Exit to G4Vis>"); - print_str = XmStringCreateLocalized ((char*)"Create .eps file"); + misc_str = XmStringCreateLocalized ((char*)menu_str[22].c_str()); + exit_str = XmStringCreateLocalized ((char*)menu_str[23].c_str()); + print_str = XmStringCreateLocalized ((char*)menu_str[24].c_str()); //*********Create miscellany pulldown menu on menubar********* misc_cascade = XmVaCreateSimplePulldownMenu (menubar, - (char*)"miscellany", + (char*)menu_str[5].c_str(), 2, misc_callback, XmVaPUSHBUTTON, misc_str, (KeySym)XK_M, NULL, NULL, @@ -446,15 +446,15 @@ void G4OpenGLXmViewer::CreateMainWindow () { XmStringFree (print_str); G4cout << "Created Miscellany pulldown menu" << G4endl; - trans_str = XmStringCreateLocalized ((char*)"Transparency"); - anti_str = XmStringCreateLocalized ((char*)"Antialiasing"); - halo_str = XmStringCreateLocalized ((char*)"Haloing"); - aux_edge_str = XmStringCreateLocalized ((char*)"Auxiliary edges"); + trans_str = XmStringCreateLocalized ((char*)menu_str[25].c_str()); + anti_str = XmStringCreateLocalized ((char*)menu_str[27].c_str()); + halo_str = XmStringCreateLocalized ((char*)menu_str[29].c_str()); + aux_edge_str = XmStringCreateLocalized ((char*)menu_str[31].c_str()); //*********Create special pulldown menu on menubar********* spec_cascade = XmVaCreateSimplePulldownMenu (menubar, - (char*)"special", + (char*)menu_str[7].c_str(), 3, NULL, XmVaCASCADEBUTTON, trans_str, (KeySym)XK_T, @@ -476,12 +476,12 @@ void G4OpenGLXmViewer::CreateMainWindow () { // G4cout << "Created Special pulldown menu" << G4endl; //Add Transparency pullright menu to special cascade... - off_str = XmStringCreateLocalized ((char*)"Off"); - on_str = XmStringCreateLocalized ((char*)"On"); + off_str = XmStringCreateLocalized ((char*)menu_str[33].c_str()); + on_str = XmStringCreateLocalized ((char*)menu_str[34].c_str()); transparency_pullright = XmVaCreateSimplePulldownMenu (spec_cascade, - (char*)"transparency", + (char*)menu_str[26].c_str(), 0, transparency_callback, XmVaRADIOBUTTON, off_str, (KeySym)XK_f, NULL, NULL, @@ -516,7 +516,7 @@ void G4OpenGLXmViewer::CreateMainWindow () { //Add antialias pullright menu to special cascade... antialias_pullright = XmVaCreateSimplePulldownMenu (spec_cascade, - (char*)"antialias", + (char*)menu_str[28].c_str(), 1, antialias_callback, XmVaRADIOBUTTON, off_str, (KeySym)XK_f, NULL, NULL, @@ -551,7 +551,7 @@ void G4OpenGLXmViewer::CreateMainWindow () { //Add Haloing pullright menu to special cascade... haloing_pullright = XmVaCreateSimplePulldownMenu (spec_cascade, - (char*)"haloing", + (char*)menu_str[30].c_str(), 2, haloing_callback, XmVaRADIOBUTTON, off_str, (KeySym)XK_f, NULL, NULL, @@ -586,7 +586,7 @@ void G4OpenGLXmViewer::CreateMainWindow () { //Add Aux_Edge pullright menu to special cascade... aux_edge_pullright = XmVaCreateSimplePulldownMenu (spec_cascade, - (char*)"aux_edge", + (char*)menu_str[32].c_str(), 3, aux_edge_callback, XmVaRADIOBUTTON, off_str, (KeySym)XK_f, NULL, NULL, @@ -614,7 +614,7 @@ void G4OpenGLXmViewer::CreateMainWindow () { } XtManageChild (menubar); - frame = XtVaCreateManagedWidget ((char*)"frame", + frame = XtVaCreateManagedWidget ((char*)menu_str[35].c_str(), xmFrameWidgetClass, main_win, XtNvisual, vi -> visual, XtNdepth, vi -> depth, @@ -623,7 +623,7 @@ void G4OpenGLXmViewer::CreateMainWindow () { XtNbackground, bgnd, NULL); - glxarea = XtVaCreateManagedWidget ((char*)"glxarea", + glxarea = XtVaCreateManagedWidget ((char*)menu_str[36].c_str(), xmDrawingAreaWidgetClass, frame, XtNvisual, vi -> visual, diff --git a/source/visualization/OpenInventor/History b/source/visualization/OpenInventor/History index 5509745e69..9e19190825 100644 --- a/source/visualization/OpenInventor/History +++ b/source/visualization/OpenInventor/History @@ -1,11 +1,60 @@ # Category openinventor History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-25 Gabriele Cosmo (openinventor-V11-00-18) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-06 John Allison (openinventor-V11-00-17) +- Eliminate G4cerr and introduce G4warn. + - `#define G4warn G4cout` + - The above is temporary until a genuine G4warn output stream is + implemented. + - Change G4cerr to G4warn in all cases. + - In all except the Xt files, which, I understand are scheduled for + removal, change G4cout to G4warn in those cases where it is clearly + an error report or a warning. + +## 2022-10-28 John Allison (openinventor-V11-00-16) +- Request kernel visit when cutaway mode changes: + - G4OpenInventorViewer.cc + +## 2022-10-24 Frederick Jones (openinventor-V11-00-15) +- G4OpenInventorQtExaminerViewer.cc: For MacOS only, disabled the mouse + wheel event handler to fix the trackpad zoom direction issue. +- G4OpenInventorXtExtendedViewer.cc: replaced sprintf by snprintf. + +## 2022-10-18 Gabriele Cosmo (openinventor-V11-00-14) +- Fixed compilation warning on gcc-12. + +## 2022-10-14 Gabriele Cosmo (openinventor-V11-00-13) +- Replaced use of sprintf() and vsprintf() with snprintf() and vsnprintf() + respectively, to fix deprecation compilation warnings on macOS-13 SDK. + +## 2022-10-07 Gabriele Cosmo (openinventor-V11-00-12) +- Fixed compilation warnings on Intel/icc compiler for deprecated conversion + of string literal to char* in G4OpenInventorQtExaminerViewer. + +## 2022-09-14 John Allison (openinventor-V11-00-11) +- G4OpenInventorViewer.cc: + - Add check on special mesh rendering option in CompareForKernelVisit. + +## 2022-09-03 John Allison (openinventor-V11-00-10) +- Implement special mesh rendering: + - Use base class `StandardSpecialMeshRendering`. + +## 2022-08-31 Gabriele Cosmo (openinventor-V11-00-09) +- Fixed reported Coverity defects for potentially uninitialised variables. + +## 2022-07-05 Gabriele Cosmo (openinventor-V11-00-08) +- Fixed compilation error for missing inclusion of G4Types.hh + in G4OpenInventorTransform3D.hh, induced by recent changes in "global" + category. + ## 2022-05-03 Ben Morgan (openinventor-V11-00-07) - Preliminary build support for Qt5 and Qt6 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorQtExaminerViewer.hh b/source/visualization/OpenInventor/include/G4OpenInventorQtExaminerViewer.hh index 14613c271d..423f3dc28c 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorQtExaminerViewer.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorQtExaminerViewer.hh @@ -47,7 +47,7 @@ private: }; -#include "G4Types.hh" +#include "G4String.hh" //#include "G4OpenInventorViewer.hh" @@ -182,6 +182,7 @@ private: int uiQtTabIndex; int processSoEventCount; + G4String empty = ""; public: diff --git a/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh b/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh index d73e190d88..b3b652291d 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh @@ -63,6 +63,9 @@ public: void AddPrimitive (const G4Polyhedron& p); void AddPrimitive (const G4Polymarker&); + using G4VSceneHandler::AddCompound; + void AddCompound (const G4Mesh&); + /////////////////////////////////////////////////////////////// // Other inherited functions. void ClearStore (); diff --git a/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh b/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh index e95559a0bc..45d8c8a8f9 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh @@ -33,16 +33,21 @@ #ifndef G4OPENINVENTORTRANSFORM3D_HH #define G4OPENINVENTORTRANSFORM3D_HH +#include "G4Types.hh" #include "G4Transform3D.hh" class SbMatrix; -class G4OpenInventorTransform3D : public G4Transform3D { -public: - G4OpenInventorTransform3D (const G4Transform3D &t); - SbMatrix* GetSbMatrix () const; -private: - G4float m[16]; +class G4OpenInventorTransform3D : public G4Transform3D +{ + public: + + G4OpenInventorTransform3D (const G4Transform3D &t); + SbMatrix* GetSbMatrix () const; + + private: + + G4float m[16]; }; #endif diff --git a/source/visualization/OpenInventor/src/G4OpenInventorQt.cc b/source/visualization/OpenInventor/src/G4OpenInventorQt.cc index 8e54812206..eb761cff1c 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorQt.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorQt.cc @@ -37,6 +37,8 @@ #include "moc_G4OpenInventorQt.cpp" #endif +#define G4warn G4cout + G4OpenInventorQt::G4OpenInventorQt() : G4OpenInventor("OpenInventorQt", "OIQt", G4VGraphicsSystem::threeD), fInited(false) @@ -78,7 +80,7 @@ G4VViewer* G4OpenInventorQt::CreateViewer(G4VSceneHandler& scene, if (pView) { if (pView->GetViewId() < 0) { - G4cerr << + G4warn << "G4OpenInventorQt::CreateViewer: ERROR flagged by negative" " view id in G4OpenInventorQtViewer creation." "\n Destroying view and returning null pointer." @@ -88,7 +90,7 @@ G4VViewer* G4OpenInventorQt::CreateViewer(G4VSceneHandler& scene, } } if (!pView) { - G4cerr << + G4warn << "G4OpenInventorQt::CreateViewer: ERROR: null pointer on new G4OpenInventorQtViewer." << G4endl; } diff --git a/source/visualization/OpenInventor/src/G4OpenInventorQtExaminerViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorQtExaminerViewer.cc index 034b51441f..eb4ddffd0a 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorQtExaminerViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorQtExaminerViewer.cc @@ -102,6 +102,8 @@ #include "moc_G4OpenInventorQtExaminerViewer.cpp" #endif +#define G4warn G4cout + G4OpenInventorQtExaminerViewer* G4OpenInventorQtExaminerViewer::viewer = 0; #define MIN_SPEED 2.1 // Lower number means faster @@ -896,8 +898,7 @@ void G4OpenInventorQtExaminerViewer::superimpositionEvent(SoAction * action) curInfoFont->name.setValue("defaultFont:Bold"); char zPos[20]; // FWJ need a better format here - sprintf(zPos, "%-7.2f [m]", refZPositions[refParticleIdx] / 1000); - // sprintf(zPos, "%7.2f [m]", refZPositions[refParticleIdx] / 1000); + snprintf(zPos, sizeof zPos, "%-7.2f [m]", refZPositions[refParticleIdx] / 1000); curInfoText->string.setValue(SbString(zPos)); } } @@ -922,7 +923,7 @@ bool G4OpenInventorQtExaminerViewer::loadViewPts() // Converts data from string type into necessary types while (getline(fileIn, token)) { - int end = token.find_last_not_of(' '); // Remove padded spaces + std::size_t end = token.find_last_not_of(' '); // Remove padded spaces token = token.substr(0, end + 1); char *vpName = new char[token.size() + 1]; @@ -1043,7 +1044,7 @@ void G4OpenInventorQtExaminerViewer::moveCamera(float dist, bool lookdown) if (refParticleIdx < 0) { prevPt = refParticleTrajectory[refParticleIdx + step]; dist = (prevPt - cam->position.getValue()).length(); - refParticleIdx = refParticleTrajectory.size() - 2; + refParticleIdx = (int) refParticleTrajectory.size() - 2; } // Set start and end points @@ -1178,9 +1179,9 @@ void G4OpenInventorQtExaminerViewer::pickingCB(void *aThis, } if(coords == NULL) { - G4cout << "Could not find the coordinates node" + G4warn << "Could not find the coordinates node" " for the picked trajectory." << G4endl; - G4cout << " Reference trajectory not set" << G4endl; + G4warn << " Reference trajectory not set" << G4endl; return; } // FWJ DEBUG @@ -1202,7 +1203,7 @@ void G4OpenInventorQtExaminerViewer::pickingCB(void *aThis, std::string strTrajPoint = "G4TrajectoryPoint:"; std::ostringstream oss; - for (size_t i = 0; i < attHolder->GetAttDefs().size(); ++i) { + for (std::size_t i = 0; i < attHolder->GetAttDefs().size(); ++i) { G4cout << G4AttCheck(attHolder->GetAttValues()[i], attHolder->GetAttDefs()[i]); oss << G4AttCheck(attHolder->GetAttValues()[i], @@ -1223,11 +1224,11 @@ void G4OpenInventorQtExaminerViewer::pickingCB(void *aThis, } else { G4String name((char*)node->getName().getString()); G4String cls((char*)node->getTypeId().getName().getString()); - G4cout << "SoNode : " << node + G4warn << "SoNode : " << node << " SoType : " << cls << " name : " << name << G4endl; - G4cout << "No attributes attached." << G4endl; + G4warn << "No attributes attached." << G4endl; } return; @@ -1243,18 +1244,18 @@ void G4OpenInventorQtExaminerViewer::pickingCB(void *aThis, // Default behavior in G4OpenInventorViewer::SelectionCB G4AttHolder* attHolder = dynamic_cast(node); if(attHolder && attHolder->GetAttDefs().size()) { - for (size_t i = 0; i < attHolder->GetAttDefs().size(); ++i) { + for (std::size_t i = 0; i < attHolder->GetAttDefs().size(); ++i) { G4cout << G4AttCheck(attHolder->GetAttValues()[i], attHolder->GetAttDefs()[i]); } } else { G4String name((char*)node->getName().getString()); G4String cls((char*)node->getTypeId().getName().getString()); - G4cout << "SoNode : " << node + G4warn << "SoNode : " << node << " SoType : " << cls << " name : " << name << G4endl; - G4cout << "No attributes attached." << G4endl; + G4warn << "No attributes attached." << G4endl; } //Suppress other event handlers @@ -1303,7 +1304,7 @@ void G4OpenInventorQtExaminerViewer::mouseoverCB(void *aThis, SoEventCallback *e attHolder->GetAttDefs(); std::vector*> vecVals = attHolder->GetAttValues(); - for (size_t i = 0; i < vecDefs.size(); ++i) { + for (std::size_t i = 0; i < vecDefs.size(); ++i) { const std::vector * vals = vecVals[i]; std::vector::const_iterator iValue; @@ -1337,7 +1338,7 @@ void G4OpenInventorQtExaminerViewer::mouseoverCB(void *aThis, SoEventCallback *e std::string strTrajPoint = "G4TrajectoryPoint:"; std::ostringstream oss; G4String t1, t1Ch, t2, t3, t4; - for (size_t i = 0; i < attHolder->GetAttDefs().size(); ++i) { + for (std::size_t i = 0; i < attHolder->GetAttDefs().size(); ++i) { // G4cout << "Getting index " << i << " from attHolder" << G4endl; // No, returns a vector! // G4AttValue* attValue = attHolder->GetAttValues()[i]; @@ -1375,7 +1376,7 @@ void G4OpenInventorQtExaminerViewer::mouseoverCB(void *aThis, SoEventCallback *e if (valueName == "IKE") t3 = "KE " + value; if (valueName == "IMom") { // Remove units - unsigned ipos = value.rfind(" "); + std::size_t ipos = value.rfind(" "); G4String value1 = value; value1.erase(ipos); t3 += " P (" + value1 + ")"; @@ -1476,7 +1477,7 @@ void G4OpenInventorQtExaminerViewer::incSpeed() { animateBtwPtsPeriod = 0.0; if (currentState != PAUSED_ANIMATION) { - int lastIdx = refParticleTrajectory.size() - 1; + int lastIdx = (int) refParticleTrajectory.size() - 1; if (refParticleIdx < lastIdx && !animateSensor->isScheduled()) animateRefParticle(); } @@ -1604,14 +1605,14 @@ void G4OpenInventorQtExaminerViewer::findAndSetRefPath() SoFullPath *path = (SoFullPath *)pathList[i]; G4AttHolder* attHolder = dynamic_cast(path->getTail()); - for (size_t j = 0; j < attHolder->GetAttDefs().size(); ++j) { + for (std::size_t j = 0; j < attHolder->GetAttDefs().size(); ++j) { std::ostringstream oss; oss << G4AttCheck(attHolder->GetAttValues()[j], attHolder->GetAttDefs()[j]); std::string findStr = "Type of trajectory (Type): "; std::string compareValue = "REFERENCE"; - size_t idx = oss.str().find(findStr); + std::size_t idx = oss.str().find(findStr); if(idx != std::string::npos) { if(oss.str().substr(idx + findStr.size(), @@ -1847,7 +1848,7 @@ void G4OpenInventorQtExaminerViewer::distanceToTrajectory(const SbVec3f &q, // // --PLG - const size_t count = refParticleTrajectory.size(); + const std::size_t count = refParticleTrajectory.size(); assert(count>0); SbVec3f b = refParticleTrajectory[0]; @@ -1855,7 +1856,7 @@ void G4OpenInventorQtExaminerViewer::distanceToTrajectory(const SbVec3f &q, float sqrDist = sqrlen(dbq); closestPoint = b; index = 0; - for (size_t i = 1; i < count; ++i) { + for (std::size_t i = 1; i < count; ++i) { const SbVec3f a = b; const SbVec3f daq = dbq; b = refParticleTrajectory[i]; @@ -1894,7 +1895,7 @@ void G4OpenInventorQtExaminerViewer::distanceToTrajectory(const SbVec3f &q, if (current_dist < sqrDist) { sqrDist = current_dist; closestPoint = a + t*(b-a); - index = i; + index = (int) i; } } @@ -2030,8 +2031,8 @@ G4OpenInventorQtExaminerViewer::LookAtSceneElementCB(QListWidgetItem* item) elementField = value; - int idx = elementField.find_last_of("["); - if(idx == -1) + std::size_t idx = elementField.find_last_of("["); + if(idx == std::string::npos) idx = elementField.size(); //if "[" not found for whatever reason (list not sorted) else idx--; // To get rid of the space that is between the name and '[' @@ -2040,7 +2041,8 @@ G4OpenInventorQtExaminerViewer::LookAtSceneElementCB(QListWidgetItem* item) SoFullPath *path; SoSearchAction search; SoNode *root = getSceneManager()->getSceneGraph(); - int counter, idxUnderscore = elementField.find_last_of("_"); + int counter; + std::size_t idxUnderscore = elementField.find_last_of("_"); parseString(counter, elementField.substr(idxUnderscore + 1, idx), error); @@ -2085,7 +2087,7 @@ G4OpenInventorQtExaminerViewer::LookAtSceneElementCB(QListWidgetItem* item) SbVec3f p; float absLengthNow, absLengthMin; - int maxIdx = refParticleTrajectory.size() - 2; + int maxIdx = (int) refParticleTrajectory.size() - 2; int targetIdx = 0; SbVec3f dir; @@ -2255,9 +2257,9 @@ void G4OpenInventorQtExaminerViewer::evenOutRefParticlePts() float totalDistBtwPts = 0; std::vector newRefParticleTrajectory; SbVec3f refPoint; - int size = refParticleTrajectory.size() - 1; + std::size_t size = refParticleTrajectory.size() - 1; int numOfPts = 0; - for (int i = 0; i < size; i++) { + for (std::size_t i = 0; i < size; ++i) { p1 = refParticleTrajectory[i]; p2 = refParticleTrajectory[i + 1]; if (p1 == p2) @@ -2273,7 +2275,7 @@ void G4OpenInventorQtExaminerViewer::evenOutRefParticlePts() // float maxDistAllowed = 1.25 * avgDistBtwPts; // Pts tend to be close not far float x, y, z; - int i = 0, j = 0; + std::size_t i = 0, j = 0; while (i < size) { p1 = refParticleTrajectory[i]; p2 = refParticleTrajectory[i + 1]; @@ -2615,10 +2617,10 @@ void G4OpenInventorQtExaminerViewer::sceneChangeCB(void* userData, SoSensor*) void G4OpenInventorQtExaminerViewer::addViewPoints() { - int size = viewPtList.size(); + std::size_t size = viewPtList.size(); if (!size) return; - for (int i = 0; i < size; i++) { + for (std::size_t i = 0; i < size; ++i) { new QListWidgetItem(viewPtList[i].viewPtName, AuxWindowDialog->listWidget); } @@ -2752,7 +2754,7 @@ G4OpenInventorQtExaminerViewer::ToolsAnimateRefParticleCB() // G4cout << "Tools: Animate Ref Particle CALLBACK" << G4endl; if (!refParticleTrajectory.size()) { returnToAnim = true; - G4cout << "No Reference Trajectory" << G4endl; + G4warn << "No Reference Trajectory" << G4endl; return; } @@ -3005,7 +3007,7 @@ void G4OpenInventorQtExaminerViewer::setViewPt() SoCamera * camera = getCamera(); if (camera == NULL) { - G4cout << "setViewPt: Camera is null. Unable to set the viewpoint." << + G4warn << "setViewPt: Camera is null. Unable to set the viewpoint." << G4endl; // String dialogName = (char *) "Missing Camera Node"; // std::string msg = "Camera is null. Unable to set the viewpoint."; @@ -3014,7 +3016,7 @@ void G4OpenInventorQtExaminerViewer::setViewPt() } if (!viewPtList.size()) { - G4cout << "setViewPt: There are no viewpoints to load." << G4endl; + G4warn << "setViewPt: There are no viewpoints to load." << G4endl; // String dialogName = (char *) "Missing Viewpoints"; // std::string msg = "There are no viewpoints to load."; // warningMsgDialog(msg, dialogName, NULL); @@ -3095,7 +3097,7 @@ void G4OpenInventorQtExaminerViewer::PrevViewPtCB() if (!viewPtList.size()) return; if (viewPtIdx == 0) - viewPtIdx = viewPtList.size() - 1; + viewPtIdx = (int) viewPtList.size() - 1; else viewPtIdx--; @@ -3197,7 +3199,7 @@ void G4OpenInventorQtExaminerViewer::DeleteBookmarkCB() void G4OpenInventorQtExaminerViewer::deleteViewPt(char *vpName) { std::string line; - int end; + std::size_t end; fileIn.open(fileName.c_str()); std::ofstream out("temporaryFile.txt"); @@ -3226,8 +3228,8 @@ void G4OpenInventorQtExaminerViewer::deleteViewPt(char *vpName) } } - int idx = 0; // Remove viewpoint from the vector - int size = viewPtList.size(); + std::size_t idx = 0; // Remove viewpoint from the vector + std::size_t size = viewPtList.size(); while (idx < size) { if (!strcmp(viewPtList[idx].viewPtName, vpName)) { viewPtList.erase(viewPtList.begin() + idx); @@ -3266,7 +3268,7 @@ void G4OpenInventorQtExaminerViewer::deleteViewPt(char *vpName) fileOut.seekp(0, std::ios::end); if (!viewPtList.size()) { // viewPtList is empty - curViewPtName = (char *) ""; + curViewPtName = (char *) empty.c_str(); scheduleRedraw(); } else { if (viewPtIdx >= (int) viewPtList.size()) @@ -3308,8 +3310,8 @@ void G4OpenInventorQtExaminerViewer::RenameBookmarkCB() char* newname = new char[nVPName]; newname = strdup(qPrintable(newnamein)); - int size = viewPtList.size(); - for (int i = 0; i < size; i++) { + std::size_t size = viewPtList.size(); + for (std::size_t i = 0; i < size; ++i) { if (!strcmp(newname, viewPtList[i].viewPtName)) { QMessageBox msgbox; msgbox.setFont(*font); @@ -3332,8 +3334,8 @@ void G4OpenInventorQtExaminerViewer::RenameBookmarkCB() void G4OpenInventorQtExaminerViewer::renameViewPt(char *vpName) { - int idx = 0, end, pos; - int size = viewPtList.size(); + std::size_t idx = 0, end, pos; + std::size_t size = viewPtList.size(); std::string line, newName; fileIn.open(fileName.c_str()); @@ -3416,7 +3418,7 @@ void G4OpenInventorQtExaminerViewer::sortViewPts(std::vector sorted { SbVec3f axis; float x, y, z, angle; - int sortIdx = 0, unsortIdx = 0; + std::size_t sortIdx = 0, unsortIdx = 0; if (fileOut.is_open()) fileOut.close(); @@ -3425,7 +3427,7 @@ void G4OpenInventorQtExaminerViewer::sortViewPts(std::vector sorted writeViewPtIdx(); - int size = sortedViewPts.size(); + std::size_t size = sortedViewPts.size(); while (sortIdx < size) { while (strcmp(sortedViewPts[sortIdx].c_str(), viewPtList[unsortIdx].viewPtName)) @@ -3461,8 +3463,10 @@ void G4OpenInventorQtExaminerViewer::sortViewPts(std::vector sorted } } - +// Needed to implement mouse wheel zoom direction change. +// Does not work with MacOS trackpad: use Coin3d default handler. // Emulating private method SoGuiFullViewerP::zoom() +#ifndef __APPLE__ void G4OpenInventorQtExaminerViewer::zoom(const float diffvalue) { @@ -3485,7 +3489,7 @@ G4OpenInventorQtExaminerViewer::zoom(const float diffvalue) oc->height = oc->height.getValue() * multiplicator; } } - +#endif // Handling mouse and keyboard events @@ -3499,6 +3503,9 @@ G4OpenInventorQtExaminerViewer::processSoEvent(const SoEvent* const ev) SoCamera *cam = getCamera(); const SoType type(ev->getTypeId()); +// Needed to implement mouse wheel zoom direction change. +// Does not work with MacOS trackpad: use Coin3d default handler. +#ifndef __APPLE__ if (type.isDerivedFrom(SoMouseButtonEvent::getClassTypeId())) { SoMouseButtonEvent * me = (SoMouseButtonEvent *) ev; @@ -3522,15 +3529,16 @@ G4OpenInventorQtExaminerViewer::processSoEvent(const SoEvent* const ev) return TRUE; } break; + default: break; - } + } // } if (currentState == GENERAL) { } } - +#endif if (type.isDerivedFrom(SoKeyboardEvent::getClassTypeId())) { SoKeyboardEvent* ke = (SoKeyboardEvent*)ev; diff --git a/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc b/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc index f5639c0c9c..77d966822a 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc @@ -63,7 +63,9 @@ #include "HEPVis/nodes/SoTrap.h" #endif #include "HEPVis/nodes/SoMarkerSet.h" -typedef HEPVis_SoMarkerSet SoMarkerSet; + +using SoMarkerSet = HEPVis_SoMarkerSet; + #include "HEPVis/nodekits/SoDetectorTreeKit.h" #include "HEPVis/misc/SoStyleCache.h" @@ -95,6 +97,8 @@ typedef HEPVis_SoMarkerSet SoMarkerSet; #include "G4Material.hh" #include "G4VisAttributes.hh" +#define G4warn G4cout + G4int G4OpenInventorSceneHandler::fSceneIdCount = 0; G4OpenInventorSceneHandler::G4OpenInventorSceneHandler (G4OpenInventor& system, @@ -198,13 +202,13 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Polyline& line) AddProperties(pVA); // Colour, etc. AddTransform(); // Transformation - G4int nPoints = line.size(); + G4int nPoints = (G4int)line.size(); SbVec3f* pCoords = new SbVec3f[nPoints]; - for (G4int iPoint = 0; iPoint < nPoints ; iPoint++) { - pCoords[iPoint].setValue((float)line[iPoint].x(), - (float)line[iPoint].y(), - (float)line[iPoint].z()); + for (G4int iPoint = 0; iPoint < nPoints ; ++iPoint) { + pCoords[iPoint].setValue((G4float)line[iPoint].x(), + (G4float)line[iPoint].y(), + (G4float)line[iPoint].z()); } // @@ -226,7 +230,7 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Polyline& line) if (fpViewer->GetViewParameters().IsPicking()) LoadAtts(line, pLine); #ifdef INVENTOR2_0 - pLine->numVertices.setValues(0,1,(const long *)&nPoints); + pLine->numVertices.setValues(0,1,(const G4long *)&nPoints); #else pLine->numVertices.setValues(0,1,&nPoints); #endif @@ -257,14 +261,14 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Polymarker& polymarker) AddProperties(pVA); // Colour, etc. AddTransform(); // Transformation - G4int pointn = polymarker.size(); + G4int pointn = (G4int)polymarker.size(); if(pointn<=0) return; SbVec3f* points = new SbVec3f[pointn]; - for (G4int iPoint = 0; iPoint < pointn ; iPoint++) { - points[iPoint].setValue((float)polymarker[iPoint].x(), - (float)polymarker[iPoint].y(), - (float)polymarker[iPoint].z()); + for (G4int iPoint = 0; iPoint < pointn ; ++iPoint) { + points[iPoint].setValue((G4float)polymarker[iPoint].x(), + (G4float)polymarker[iPoint].y(), + (G4float)polymarker[iPoint].z()); } SoCoordinate3* coordinate3 = new SoCoordinate3; @@ -376,10 +380,10 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Text& text) // const G4Colour& c = GetTextColour (text); SoMaterial* material = - fStyleCache->getMaterial((float)c.GetRed(), - (float)c.GetGreen(), - (float)c.GetBlue(), - (float)(1-c.GetAlpha())); + fStyleCache->getMaterial((G4float)c.GetRed(), + (G4float)c.GetGreen(), + (G4float)c.GetBlue(), + (G4float)(1-c.GetAlpha())); fCurrentSeparator->addChild(material); MarkerSizeType sizeType; @@ -473,9 +477,9 @@ void G4OpenInventorSceneHandler::AddCircleSquare // Borrowed from AddPrimitive(G4Polymarker) - inefficient? JA SbVec3f* points = new SbVec3f[1]; - points[0].setValue((float)centre.x(), - (float)centre.y(), - (float)centre.z()); + points[0].setValue((G4float)centre.x(), + (G4float)centre.y(), + (G4float)centre.z()); SoCoordinate3* coordinate3 = new SoCoordinate3; coordinate3->point.setValues(0,1,points); fCurrentSeparator->addChild(coordinate3); @@ -581,6 +585,10 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) fCurrentSeparator->addChild(soPolyhedron); } +void G4OpenInventorSceneHandler::AddCompound(const G4Mesh& mesh) { + StandardSpecialMeshRendering(mesh); +} + void G4OpenInventorSceneHandler::GeneratePrerequisites() { // Utility for PreAddSolid and BeginPrimitives. @@ -611,8 +619,8 @@ void G4OpenInventorSceneHandler::GeneratePrerequisites() // PVNodeID object, which is a physical volume and copy number. It // is a vector of PVNodeIDs corresponding to the geometry hierarchy // actually selected, i.e., not culled. - typedef G4PhysicalVolumeModel::G4PhysicalVolumeNodeID PVNodeID; - typedef std::vector PVPath; + using PVNodeID = G4PhysicalVolumeModel::G4PhysicalVolumeNodeID; + using PVPath = std::vector; const PVPath& drawnPVPath = pPVModel->GetDrawnPVPath(); //G4int currentDepth = pPVModel->GetCurrentDepth(); G4VPhysicalVolume* pCurrentPV = pPVModel->GetCurrentPV(); @@ -664,10 +672,10 @@ void G4OpenInventorSceneHandler::GeneratePrerequisites() // First find the color attributes... const G4Colour& g4Col = pApplicableVisAttribs->GetColour (); - const double red = g4Col.GetRed (); - const double green = g4Col.GetGreen (); - const double blue = g4Col.GetBlue (); - double transparency = 1 - g4Col.GetAlpha(); + const G4double red = g4Col.GetRed (); + const G4double green = g4Col.GetGreen (); + const G4double blue = g4Col.GetBlue (); + G4double transparency = 1 - g4Col.GetAlpha(); // Drawing style... G4ViewParameters::DrawingStyle drawing_style = @@ -687,10 +695,10 @@ void G4OpenInventorSceneHandler::GeneratePrerequisites() } SoMaterial* material = - fStyleCache->getMaterial((float)red, - (float)green, - (float)blue, - (float)transparency); + fStyleCache->getMaterial((G4float)red, + (G4float)green, + (G4float)blue, + (G4float)transparency); detectorTreeKit->setPart("appearance.material",material); SoLightModel* lightModel = @@ -714,7 +722,7 @@ void G4OpenInventorSceneHandler::GeneratePrerequisites() // G4PhysicalVolumeModel sends volumes as it encounters them, // i.e., mothers before daughters, in its descent of the // geometry tree. Error! - G4cout << + G4warn << "ERROR: G4OpenInventorSceneHandler::GeneratePrerequisites: Mother " << ri->GetPhysicalVolume()->GetName() << ':' << ri->GetCopyNo() @@ -744,7 +752,7 @@ void G4OpenInventorSceneHandler::GeneratePrerequisites() // G4PhysicalVolumeModel sends volumes as it encounters them, // i.e., mothers before daughters, in its descent of the // geometry tree. Error! - G4cout << "ERROR: G4OpenInventorSceneHandler::PreAddSolid: Mother " + G4warn << "ERROR: G4OpenInventorSceneHandler::PreAddSolid: Mother " << ri->GetPhysicalVolume()->GetName() << ':' << ri->GetCopyNo() << " not previously encountered." @@ -777,10 +785,10 @@ void G4OpenInventorSceneHandler::AddProperties(const G4VisAttributes* visAtts) // First find the color attributes... const G4Colour& g4Col = pApplicableVisAttribs->GetColour (); - const double red = g4Col.GetRed (); - const double green = g4Col.GetGreen (); - const double blue = g4Col.GetBlue (); - double transparency = 1 - g4Col.GetAlpha(); + const G4double red = g4Col.GetRed (); + const G4double green = g4Col.GetGreen (); + const G4double blue = g4Col.GetBlue (); + G4double transparency = 1 - g4Col.GetAlpha(); // Drawing style... G4ViewParameters::DrawingStyle drawing_style = @@ -804,10 +812,10 @@ void G4OpenInventorSceneHandler::AddProperties(const G4VisAttributes* visAtts) fReducedWireFrame = !isAuxEdgeVisible; SoMaterial* material = - fStyleCache->getMaterial((float)red, - (float)green, - (float)blue, - (float)transparency); + fStyleCache->getMaterial((G4float)red, + (G4float)green, + (G4float)blue, + (G4float)transparency); fCurrentSeparator->addChild(material); SoLightModel* lightModel = @@ -830,7 +838,7 @@ void G4OpenInventorSceneHandler::AddTransform(const G4Point3D& translation) const G4Vector3D scale = fpViewer->GetViewParameters().GetScaleFactor(); SbMatrix sbScale; sbScale.setScale - (SbVec3f((float)scale.x(),(float)scale.y(),(float)scale.z())); + (SbVec3f((G4float)scale.x(),(G4float)scale.y(),(G4float)scale.z())); sbMatrix->multRight(sbScale); matrixTransform->matrix.setValue(*sbMatrix); diff --git a/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc index 7ff90b0f06..e99b9ac950 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc @@ -192,7 +192,9 @@ G4bool G4OpenInventorViewer::CompareForKernelVisit(G4ViewParameters& vp) { (vp.GetVisAttributesModifiers() != fVP.GetVisAttributesModifiers()) || (vp.IsSpecialMeshRendering() != - fVP.IsSpecialMeshRendering()) + fVP.IsSpecialMeshRendering()) || + (vp.GetSpecialMeshRenderingOption() != + fVP.GetSpecialMeshRenderingOption()) ) return true; @@ -210,6 +212,7 @@ G4bool G4OpenInventorViewer::CompareForKernelVisit(G4ViewParameters& vp) { return true; if (vp.IsCutaway ()) { + if (vp.GetCutawayMode() != fVP.GetCutawayMode()) return true; if (vp.GetCutawayPlanes ().size () != fVP.GetCutawayPlanes ().size ()) return true; for (size_t i = 0; i < vp.GetCutawayPlanes().size(); ++i) diff --git a/source/visualization/OpenInventor/src/G4OpenInventorXtExaminerViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorXtExaminerViewer.cc index 0b706b1f73..e01462f7c6 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorXtExaminerViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorXtExaminerViewer.cc @@ -576,7 +576,7 @@ void G4OpenInventorXtExaminerViewer::superimpositionEvent(SoAction * action) this->curInfoFont->size.setValue(16); this->curInfoFont->name.setValue("defaultFont:Bold"); char zPos[20]; - sprintf(zPos, "%7.2f [m]", refZPositions[refParticleIdx] / 1000); + snprintf(zPos, sizeof zPos, "%7.2f [m]", refZPositions[refParticleIdx] / 1000); this->curInfoText->string.setValue(SbString(zPos)); } } @@ -925,9 +925,9 @@ void G4OpenInventorXtExaminerViewer::moveCamera(float dist, bool lookdown) { SoCamera *cam = getCamera(); - SbVec3f p1, p2; // The particle moves from p1 to p2 - SbVec3f particleDir; // Direction vector from p1 to p2 - SbVec3f camPosNew; // New position of the camera + SbVec3f p1(0), p2(0); // The particle moves from p1 to p2 + SbVec3f particleDir; // Direction vector from p1 to p2 + SbVec3f camPosNew(0); // New position of the camera if(refParticleTrajectory.size() == 0) { //refParticleTrajectory hasn't been set yet @@ -1006,7 +1006,7 @@ void G4OpenInventorXtExaminerViewer::moveCamera(float dist, bool lookdown) // } - float x,y,z; + float x(0.),y(0.),z(0.); prevPt.getValue(x,y,z); @@ -2769,7 +2769,7 @@ void G4OpenInventorXtExaminerViewer::lookAtSceneElementCB(Widget, SoFullPath *path; SoSearchAction search; SoNode *root = This->getSceneManager()->getSceneGraph(); - int counter, idxUnderscore = elementField.find_last_of("_"); + int counter(1), idxUnderscore = elementField.find_last_of("_"); This->parseString(counter, elementField.substr(idxUnderscore + 1, idx), error); @@ -3495,7 +3495,7 @@ bool G4OpenInventorXtExaminerViewer::loadViewPts() std::string token; SbVec3f axis; SbRotation orient; - float x, y, z, angle; + float x(0.), y(0.), z(0.), angle(0.); // Gets the last view point accessed, stored in the first line of the data file. fileIn >> token; @@ -3531,7 +3531,7 @@ bool G4OpenInventorXtExaminerViewer::loadViewPts() orient.setValue(axis.setValue(x, y, z), angle); tmp.orientation = orient.getValue(); - int camType; + int camType(0); parseString(camType, token, error); fileIn >> token; tmp.camType = (CameraType) camType; @@ -4683,8 +4683,8 @@ void G4OpenInventorXtExaminerViewer::setStartingPtForAnimation() stopAnimating(); SbRotation rot; - SbVec3f p1, p2, p2_tmp, camUpV, camD, camD_tmp, leftRightAxis; - float x1, y1, z1, x2, y2, z2; + SbVec3f p1(0), p2(0), p2_tmp(0), camUpV(0), camD, camD_tmp, leftRightAxis; + float x1(0.), y1(0.), z1(0.), x2(0.), y2(0.), z2(0.); if (currentState == ANIMATION) { p1 = refParticleTrajectory[refParticleIdx]; diff --git a/source/visualization/OpenInventor/src/G4OpenInventorXtExtendedViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorXtExtendedViewer.cc index 0bca674b6e..4ccdee48e3 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorXtExtendedViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorXtExtendedViewer.cc @@ -103,7 +103,7 @@ void G4OpenInventorXtExtendedViewer::Initialise() { << G4endl; width = 600; height = 600; - sprintf(s,"%dx%d",width,height); + snprintf(s,32,"%dx%d",width,height); sgeometry = s; } else { width = fVP.GetWindowSizeHintX(); diff --git a/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc index 4c40c52b65..68d87c9736 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc @@ -96,7 +96,7 @@ void G4OpenInventorXtViewer::Initialise() { << G4endl; width = 600; height = 600; - sprintf(str,"%dx%d",width,height); + snprintf(str,sizeof str,"%dx%d",width,height); sgeometry = str; } else { width = fVP.GetWindowSizeHintX(); diff --git a/source/visualization/OpenInventor/src/G4SoQt.cc b/source/visualization/OpenInventor/src/G4SoQt.cc index e34aa43c8f..5e948918da 100644 --- a/source/visualization/OpenInventor/src/G4SoQt.cc +++ b/source/visualization/OpenInventor/src/G4SoQt.cc @@ -45,6 +45,8 @@ #include "moc_G4SoQt.cpp" #endif +#define G4warn G4cout + G4SoQt* G4SoQt::instance = NULL; static G4bool QtInited = FALSE; @@ -142,7 +144,7 @@ void G4SoQt::SecondaryLoop() // "ENTERING OIQT VIEWER SECONDARY LOOP" << G4endl; // else - G4cout << + G4warn << "ENTERING OIQT VIEWER SECONDARY LOOP... PRESS E KEY TO EXIT" << G4endl; SoQt::mainLoop(); diff --git a/source/visualization/OpenInventor/src/SbPainterPS.cc b/source/visualization/OpenInventor/src/SbPainterPS.cc index 92b14d1537..d1a1c27e76 100644 --- a/source/visualization/OpenInventor/src/SbPainterPS.cc +++ b/source/visualization/OpenInventor/src/SbPainterPS.cc @@ -465,7 +465,7 @@ void SbPainterPS::putInStreamF( va_start(args,aFormat); printV(aFormat,args); va_end(args); - int length = ::strlen(fBufferString); + int length = (int)strlen(fBufferString); if(length>METAFILE_RECORD_LENGTH) { ::printf("SoPostScript::putInStreamF overflow\n"); return; @@ -523,7 +523,7 @@ void SbPainterPS::printV( if(fBufferString==NULL) return; } fBufferString[MAX_STR-1] = '\0'; - ::vsprintf(fBufferString,This,aArgs); + ::vsnprintf(fBufferString,MAX_STR-1, This,aArgs); if(fBufferString[MAX_STR-1]!='\0') { ::printf("SbPainterPS::printV overflow\n"); fBufferString[0] = '\0'; diff --git a/source/visualization/Qt3D/History b/source/visualization/Qt3D/History index f7dee92b4d..52f9177709 100644 --- a/source/visualization/Qt3D/History +++ b/source/visualization/Qt3D/History @@ -1,8 +1,33 @@ # Category visQt3D History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-25 Gabriele Cosmo (visQt3D-V11-00-12) +- Fixed compilation warning for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-06 John Allison (visQt3D-V11-00-11) +- Eliminate G4cerr and introduce G4warn. + - `#define G4warn G4cout` + - The above is temporary until a genuine G4warn output stream is + implemented. + - Change G4cerr to G4warn in all cases. + - Change G4cout to G4warn in those cases where it is clearly + an error report or a warning. + +## 2022-10-28 John Allison (visQt3D-V11-00-10) +- Request kernel visit when cutaway mode changes: + - G4Qt3DViewer.cc + +## 2022-09-14 John Allison (visQt3D-V11-00-09) +- G4Qt3DViewer.cc: + - Add check on special mesh rendering option in CompareForKernelVisit. + +## 2022-09-03 Ben Morgan (visQt3D-V11-00-08) +- Remove unused header from G4heprandom to resolve consistency test ## 2022-04-06 John Allison (visQt3D-V11-00-07) - Fix compiler warnings: diff --git a/source/visualization/Qt3D/src/G4Qt3D.cc b/source/visualization/Qt3D/src/G4Qt3D.cc index 0ca600ad88..0d823983f3 100644 --- a/source/visualization/Qt3D/src/G4Qt3D.cc +++ b/source/visualization/Qt3D/src/G4Qt3D.cc @@ -33,6 +33,8 @@ #include "G4UImanager.hh" #include "G4UIbatch.hh" +#define G4warn G4cout + G4Qt3D::G4Qt3D(): G4VGraphicsSystem ("Qt3D", @@ -53,7 +55,7 @@ G4VViewer* G4Qt3D::CreateViewer(G4VSceneHandler& scene, new G4Qt3DViewer((G4Qt3DSceneHandler&) scene, name); if (pView) { if (pView->GetViewId() < 0) { - G4cerr << + G4warn << "G4Qt3D::CreateViewer: ERROR flagged by negative" " view id in G4Qt3DViewer creation." "\n Destroying view and returning null pointer." @@ -63,7 +65,7 @@ G4VViewer* G4Qt3D::CreateViewer(G4VSceneHandler& scene, } } if (!pView) { - G4cerr << + G4warn << "G4Qt3D::CreateViewer: ERROR: null pointer on new G4Qt3DViewer." << G4endl; } diff --git a/source/visualization/Qt3D/src/G4Qt3DSceneHandler.cc b/source/visualization/Qt3D/src/G4Qt3DSceneHandler.cc index 424273de3d..26cd25bcbc 100644 --- a/source/visualization/Qt3D/src/G4Qt3DSceneHandler.cc +++ b/source/visualization/Qt3D/src/G4Qt3DSceneHandler.cc @@ -44,7 +44,6 @@ #include "G4Mesh.hh" #include "G4PseudoScene.hh" #include "G4VisManager.hh" -#include "Randomize.hh" #include "G4Qt3DViewer.hh" #include "G4Qt3DUtils.hh" @@ -56,6 +55,8 @@ #include +#define G4warn G4cout + // Qt3D seems to offer a choice of type - float or double. It would be nice // to use double since it offers the prospect of higher precision, hopefully // avoiding some issues that we see at high zoom. But it currently gives the @@ -105,11 +106,11 @@ void G4Qt3DSceneHandler::EstablishG4Qt3DQEntities() // Physical volume objects for each world hang from POs G4TransportationManager* transportationManager = G4TransportationManager::GetTransportationManager (); - size_t nWorlds = transportationManager->GetNoWorlds(); + std::size_t nWorlds = transportationManager->GetNoWorlds(); std::vector::iterator iterWorld = transportationManager->GetWorldsIterator(); fpPhysicalVolumeObjects.resize(nWorlds); - for (size_t i = 0; i < nWorlds; ++i, ++iterWorld) { + for (std::size_t i = 0; i < nWorlds; ++i, ++iterWorld) { G4VPhysicalVolume* wrld = (*iterWorld); auto entity = new G4Qt3DQEntity(fpPersistentObjects); entity->setObjectName("G4Qt3DPORoot_"+QString(wrld->GetName())); @@ -157,8 +158,8 @@ G4Qt3DQEntity* G4Qt3DSceneHandler::CreateNewNode() #endif // Find appropriate root - const size_t nWorlds = fpPhysicalVolumeObjects.size(); - size_t iWorld = 0; + const std::size_t nWorlds = fpPhysicalVolumeObjects.size(); + std::size_t iWorld = 0; for (; iWorld < nWorlds; ++iWorld) { if (fullPVPath[0].GetPhysicalVolume() == fpPhysicalVolumeObjects[iWorld]->GetPVNodeID().GetPhysicalVolume()) break; @@ -175,8 +176,8 @@ G4Qt3DQEntity* G4Qt3DSceneHandler::CreateNewNode() // Create nodes as required G4Qt3DQEntity* node = wrld; newNode = node; - const size_t depth = fullPVPath.size(); - size_t iDepth = 1; + const std::size_t depth = fullPVPath.size(); + std::size_t iDepth = 1; while (iDepth < depth) { const auto& children = node->children(); const G4int nChildren = children.size(); // int size() (Qt covention?) @@ -287,13 +288,13 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyline& polyline) const auto vertexByteSize = 3*sizeof(PRECISION); - const size_t nLines = polyline.size() - 1; + const std::size_t nLines = polyline.size() - 1; QByteArray polylineByteArray; const auto polylineBufferByteSize = 2*nLines*vertexByteSize; - polylineByteArray.resize(polylineBufferByteSize); + polylineByteArray.resize((G4int)polylineBufferByteSize); auto polylineBufferArray = reinterpret_cast(polylineByteArray.data()); G4int iLine = 0; - for (size_t i = 0; i < nLines; ++i) { + for (std::size_t i = 0; i < nLines; ++i) { polylineBufferArray[iLine++] = polyline[i].x(); polylineBufferArray[iLine++] = polyline[i].y(); polylineBufferArray[iLine++] = polyline[i].z(); @@ -314,7 +315,7 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyline& polyline) polylineAtt->setAttributeType(Qt3DRender::QAttribute::VertexAttribute); polylineAtt->setVertexBaseType(BASETYPE); polylineAtt->setVertexSize(3); - polylineAtt->setCount(nLines); + polylineAtt->setCount((G4int)nLines); polylineAtt->setByteOffset(0); polylineAtt->setByteStride(vertexByteSize); @@ -332,7 +333,7 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyline& polyline) auto renderer = new Qt3DRender::QGeometryRenderer; renderer->setObjectName("polylineWireframeRenderer"); renderer->setGeometry(polylineGeometry); - renderer->setVertexCount(2*nLines); + renderer->setVertexCount(2*(G4int)nLines); renderer->setPrimitiveType(Qt3DRender::QGeometryRenderer::Lines); polylineEntity->addComponent(renderer); } @@ -362,7 +363,7 @@ void G4Qt3DSceneHandler::AddPrimitive (const G4Polymarker& polymarker) default: case G4Polymarker::dots: { - const size_t nDots = polymarker.size(); + const std::size_t nDots = polymarker.size(); auto transform = G4Qt3DUtils::CreateQTransformFrom(fObjectTransformation); transform->setObjectName("transform"); @@ -374,10 +375,10 @@ void G4Qt3DSceneHandler::AddPrimitive (const G4Polymarker& polymarker) QByteArray polymarkerByteArray; const auto polymarkerBufferByteSize = nDots*vertexByteSize; - polymarkerByteArray.resize(polymarkerBufferByteSize); + polymarkerByteArray.resize((G4int)polymarkerBufferByteSize); auto polymarkerBufferArray = reinterpret_cast(polymarkerByteArray.data()); G4int iMarker = 0; - for (size_t i = 0; i < polymarker.size(); ++i) { + for (std::size_t i = 0; i < polymarker.size(); ++i) { polymarkerBufferArray[iMarker++] = polymarker[i].x(); polymarkerBufferArray[iMarker++] = polymarker[i].y(); polymarkerBufferArray[iMarker++] = polymarker[i].z(); @@ -395,7 +396,7 @@ void G4Qt3DSceneHandler::AddPrimitive (const G4Polymarker& polymarker) polymarkerAtt->setAttributeType(Qt3DRender::QAttribute::VertexAttribute); polymarkerAtt->setVertexBaseType(BASETYPE); polymarkerAtt->setVertexSize(3); - polymarkerAtt->setCount(nDots); + polymarkerAtt->setCount((G4int)nDots); polymarkerAtt->setByteOffset(0); polymarkerAtt->setByteStride(vertexByteSize); @@ -413,7 +414,7 @@ void G4Qt3DSceneHandler::AddPrimitive (const G4Polymarker& polymarker) auto renderer = new Qt3DRender::QGeometryRenderer; renderer->setObjectName("polymarkerWireframeRenderer"); renderer->setGeometry(polymarkerGeometry); - renderer->setVertexCount(nDots); + renderer->setVertexCount((G4int)nDots); renderer->setPrimitiveType(Qt3DRender::QGeometryRenderer::Points); polymarkerEntity->addComponent(renderer); } @@ -440,7 +441,7 @@ void G4Qt3DSceneHandler::AddPrimitive (const G4Polymarker& polymarker) // sphereMesh->setInstanceCount(polymarker.size()); // Not undertood instancing yet // auto currentEntity = new Qt3DCore::QEntity(currentNode); // Not undertood instancing yet - for (size_t iPoint = 0; iPoint < polymarker.size(); iPoint++) { + for (std::size_t iPoint = 0; iPoint < polymarker.size(); ++iPoint) { auto position = fObjectTransformation*G4Translate3D(polymarker[iPoint]); auto transform = G4Qt3DUtils::CreateQTransformFrom(position); auto currentEntity = new Qt3DCore::QEntity(currentNode); // Not undertood instancing yet @@ -472,7 +473,7 @@ void G4Qt3DSceneHandler::AddPrimitive (const G4Polymarker& polymarker) boxMesh->setYExtent(side); boxMesh->setZExtent(side); - for (size_t iPoint = 0; iPoint < polymarker.size(); iPoint++) { + for (std::size_t iPoint = 0; iPoint < polymarker.size(); ++iPoint) { auto position = fObjectTransformation*G4Translate3D(polymarker[iPoint]); auto transform = G4Qt3DUtils::CreateQTransformFrom(position); auto currentEntity = new Qt3DCore::QEntity(currentNode); @@ -768,7 +769,7 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) if(isAuxilaryEdgeVisible||edgeFlag[2]>0)insertIfNew(Line(vertex[2],vertex[3])); if(isAuxilaryEdgeVisible||edgeFlag[3]>0)insertIfNew(Line(vertex[3],vertex[0])); } else { - G4cerr + G4warn << "ERROR: polyhedron face with unexpected number of edges (" << nEdges << ')' << "\n Tag: " << fpModel->GetCurrentTag() << G4endl; @@ -812,7 +813,7 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) // Shouldn't happen in this function (it's a polyhedron!) if (errorCount == 0) { ++errorCount; - G4cerr << "WARNING: Qt3D: cloud drawing not implemented" << G4endl; + G4warn << "WARNING: Qt3D: cloud drawing not implemented" << G4endl; } return; break; @@ -836,10 +837,10 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) // Accomodates both vertices and normals - hence 2* QByteArray vertexByteArray; const auto vertexBufferByteSize = 2*nVerts*vertexByteSize; - vertexByteArray.resize(vertexBufferByteSize); + vertexByteArray.resize((G4int)vertexBufferByteSize); auto vertexBufferArray = reinterpret_cast(vertexByteArray.data()); G4int i1 = 0; - for (size_t i = 0; i < nVerts; i++) { + for (std::size_t i = 0; i < nVerts; ++i) { vertexBufferArray[i1++] = vertices[i].x(); vertexBufferArray[i1++] = vertices[i].y(); vertexBufferArray[i1++] = vertices[i].z(); @@ -862,7 +863,7 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) positionAtt->setAttributeType(Qt3DRender::QAttribute::VertexAttribute); positionAtt->setVertexBaseType(BASETYPE); positionAtt->setVertexSize(3); - positionAtt->setCount(nVerts); + positionAtt->setCount((G4int)nVerts); positionAtt->setByteOffset(0); positionAtt->setByteStride(2*vertexByteSize); @@ -874,7 +875,7 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) normalAtt->setAttributeType(Qt3DRender::QAttribute::VertexAttribute); normalAtt->setVertexBaseType(BASETYPE); normalAtt->setVertexSize(3); - normalAtt->setCount(nVerts); + normalAtt->setCount((G4int)nVerts); normalAtt->setByteOffset(vertexByteSize); normalAtt->setByteStride(2*vertexByteSize); } @@ -887,7 +888,7 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) // Put lines into a QByteArray QByteArray lineByteArray; const auto lineBufferByteSize = 2*nLines*vertexByteSize; - lineByteArray.resize(lineBufferByteSize); + lineByteArray.resize((G4int)lineBufferByteSize); auto lineBufferArray = reinterpret_cast(lineByteArray.data()); G4int i2 = 0; for (const auto& line: lines) { @@ -913,7 +914,7 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) lineAtt->setAttributeType(Qt3DRender::QAttribute::VertexAttribute); lineAtt->setVertexBaseType(BASETYPE); lineAtt->setVertexSize(3); - lineAtt->setCount(nLines); + lineAtt->setCount((G4int)nLines); lineAtt->setByteOffset(0); lineAtt->setByteStride(vertexByteSize); } @@ -939,7 +940,7 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) renderer = new Qt3DRender::QGeometryRenderer; renderer->setObjectName("polyhedronWireframeRenderer"); renderer->setGeometry(lineGeometry); - renderer->setVertexCount(2*nLines); + renderer->setVertexCount(2*(G4int)nLines); renderer->setPrimitiveType(Qt3DRender::QGeometryRenderer::Lines); wireframeEntity->addComponent(renderer); @@ -962,7 +963,7 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) renderer = new Qt3DRender::QGeometryRenderer; renderer->setObjectName("polyhedronSurfaceRenderer"); renderer->setGeometry(vertexGeometry); - renderer->setVertexCount(nVerts); + renderer->setVertexCount((G4int)nVerts); renderer->setPrimitiveType(Qt3DRender::QGeometryRenderer::Triangles); surfaceEntity->addComponent(renderer); @@ -980,7 +981,7 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) renderer = new Qt3DRender::QGeometryRenderer; renderer->setObjectName("polyhedronWireframeRenderer"); renderer->setGeometry(lineGeometry); - renderer->setVertexCount(2*nLines); + renderer->setVertexCount(2*(G4int)nLines); renderer->setPrimitiveType(Qt3DRender::QGeometryRenderer::Lines); wireframeEntity->addComponent(renderer); @@ -1000,7 +1001,7 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) renderer = new Qt3DRender::QGeometryRenderer; renderer->setObjectName("polyhedronSurfaceRenderer"); renderer->setGeometry(vertexGeometry); - renderer->setVertexCount(nVerts); + renderer->setVertexCount((G4int)nVerts); renderer->setPrimitiveType(Qt3DRender::QGeometryRenderer::Triangles); surfaceEntity->addComponent(renderer); @@ -1022,7 +1023,7 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) renderer = new Qt3DRender::QGeometryRenderer; renderer->setObjectName("polyhedronSurfaceRenderer"); renderer->setGeometry(vertexGeometry); - renderer->setVertexCount(nVerts); + renderer->setVertexCount((G4int)nVerts); renderer->setPrimitiveType(Qt3DRender::QGeometryRenderer::Triangles); surfaceEntity->addComponent(renderer); @@ -1040,7 +1041,7 @@ void G4Qt3DSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) renderer = new Qt3DRender::QGeometryRenderer; renderer->setObjectName("polyhedronSurfaceRenderer"); renderer->setGeometry(lineGeometry); - renderer->setVertexCount(2*nLines); + renderer->setVertexCount(2*(G4int)nLines); renderer->setPrimitiveType(Qt3DRender::QGeometryRenderer::Lines); wireframeEntity->addComponent(renderer); diff --git a/source/visualization/Qt3D/src/G4Qt3DViewer.cc b/source/visualization/Qt3D/src/G4Qt3DViewer.cc index 4eaae860f1..e0c1d12049 100644 --- a/source/visualization/Qt3D/src/G4Qt3DViewer.cc +++ b/source/visualization/Qt3D/src/G4Qt3DViewer.cc @@ -35,6 +35,8 @@ #include "G4UIQt.hh" #include "G4SystemOfUnits.hh" +#define G4warn G4cout + G4Qt3DViewer::G4Qt3DViewer (G4Qt3DSceneHandler& sceneHandler, const G4String& name) : G4VViewer(sceneHandler, sceneHandler.IncrementViewCount(), name) @@ -56,7 +58,7 @@ void G4Qt3DViewer::Initialise() auto uiQt = dynamic_cast(UI->GetG4UIWindow()); if (!uiQt) { fViewId = -1; // This flags an error. - G4cerr << "G4Qt3DViewer::G4Qt3DViewer requires G4UIQt" + G4warn << "G4Qt3DViewer::G4Qt3DViewer requires G4UIQt" << G4endl; return; } @@ -237,55 +239,78 @@ void G4Qt3DViewer::KernelVisitDecision () { } } -G4bool G4Qt3DViewer::CompareForKernelVisit(G4ViewParameters& lastVP) +G4bool G4Qt3DViewer::CompareForKernelVisit(G4ViewParameters& vp) { - // Typical comparison. Taken from OpenGL. + // Typical comparison. Taken from OpenInventor. if ( - (lastVP.GetDrawingStyle () != fVP.GetDrawingStyle ()) || - (lastVP.GetNumberOfCloudPoints() != fVP.GetNumberOfCloudPoints()) || - (lastVP.IsAuxEdgeVisible () != fVP.IsAuxEdgeVisible ()) || - (lastVP.IsCulling () != fVP.IsCulling ()) || - (lastVP.IsCullingInvisible () != fVP.IsCullingInvisible ()) || - (lastVP.IsDensityCulling () != fVP.IsDensityCulling ()) || - (lastVP.IsCullingCovered () != fVP.IsCullingCovered ()) || - (lastVP.GetCBDAlgorithmNumber() != - fVP.GetCBDAlgorithmNumber()) || - (lastVP.IsSection () != fVP.IsSection ()) || - (lastVP.IsCutaway () != fVP.IsCutaway ()) || - (lastVP.IsExplode () != fVP.IsExplode ()) || - (lastVP.GetNoOfSides () != fVP.GetNoOfSides ()) || - (lastVP.GetGlobalMarkerScale() != fVP.GetGlobalMarkerScale()) || - (lastVP.GetGlobalLineWidthScale() != fVP.GetGlobalLineWidthScale()) || - (lastVP.IsMarkerNotHidden () != fVP.IsMarkerNotHidden ()) || - (lastVP.GetDefaultVisAttributes()->GetColour() != - fVP.GetDefaultVisAttributes()->GetColour()) || - (lastVP.GetDefaultTextVisAttributes()->GetColour() != - fVP.GetDefaultTextVisAttributes()->GetColour()) || - (lastVP.GetBackgroundColour ()!= fVP.GetBackgroundColour ())|| - (lastVP.IsPicking () != fVP.IsPicking ()) || - (lastVP.GetVisAttributesModifiers() != - fVP.GetVisAttributesModifiers()) || - (lastVP.IsSpecialMeshRendering() != - fVP.IsSpecialMeshRendering()) - ) { + (vp.GetDrawingStyle () != fVP.GetDrawingStyle ()) || + (vp.GetNumberOfCloudPoints() != fVP.GetNumberOfCloudPoints()) || + (vp.IsAuxEdgeVisible () != fVP.IsAuxEdgeVisible ()) || + (vp.IsCulling () != fVP.IsCulling ()) || + (vp.IsCullingInvisible () != fVP.IsCullingInvisible ()) || + (vp.IsDensityCulling () != fVP.IsDensityCulling ()) || + (vp.IsCullingCovered () != fVP.IsCullingCovered ()) || + (vp.GetCBDAlgorithmNumber() != + fVP.GetCBDAlgorithmNumber()) || + (vp.IsSection () != fVP.IsSection ()) || + (vp.IsCutaway () != fVP.IsCutaway ()) || + // This assumes use of generic clipping (sectioning, slicing, + // DCUT, cutaway). If a decision is made to implement locally, + // this will need changing. See G4OpenGLViewer::SetView, + // G4OpenGLStoredViewer.cc::CompareForKernelVisit and + // G4OpenGLStoredSceneHander::CreateSection/CutawayPolyhedron. + (vp.IsExplode () != fVP.IsExplode ()) || + (vp.GetNoOfSides () != fVP.GetNoOfSides ()) || + (vp.GetGlobalMarkerScale() != fVP.GetGlobalMarkerScale()) || + (vp.GetGlobalLineWidthScale() != fVP.GetGlobalLineWidthScale()) || + (vp.IsMarkerNotHidden () != fVP.IsMarkerNotHidden ()) || + (vp.GetDefaultVisAttributes()->GetColour() != + fVP.GetDefaultVisAttributes()->GetColour()) || + (vp.GetDefaultTextVisAttributes()->GetColour() != + fVP.GetDefaultTextVisAttributes()->GetColour()) || + (vp.GetBackgroundColour ()!= fVP.GetBackgroundColour ())|| + (vp.IsPicking () != fVP.IsPicking ()) || + // Scaling for Open Inventor is done by the scene handler so it + // needs a kernel visit. (In this respect, it differs from the + // OpenGL drivers, where it's done in SetView.) + (vp.GetScaleFactor () != fVP.GetScaleFactor ()) || + (vp.GetVisAttributesModifiers() != + fVP.GetVisAttributesModifiers()) || + (vp.IsSpecialMeshRendering() != + fVP.IsSpecialMeshRendering()) || + (vp.GetSpecialMeshRenderingOption() != + fVP.GetSpecialMeshRenderingOption()) + ) + return true; + + if (vp.IsDensityCulling () && + (vp.GetVisibleDensity () != fVP.GetVisibleDensity ())) return true; + + if (vp.GetCBDAlgorithmNumber() > 0) { + if (vp.GetCBDParameters().size() != fVP.GetCBDParameters().size()) return true; + else if (vp.GetCBDParameters() != fVP.GetCBDParameters()) return true; } - if (lastVP.IsDensityCulling () && - (lastVP.GetVisibleDensity () != fVP.GetVisibleDensity ())) + if (vp.IsSection () && + (vp.GetSectionPlane () != fVP.GetSectionPlane ())) return true; - if (lastVP.GetCBDAlgorithmNumber() > 0) { - if (lastVP.GetCBDParameters().size() != fVP.GetCBDParameters().size()) return true; - else if (lastVP.GetCBDParameters() != fVP.GetCBDParameters()) return true; + if (vp.IsCutaway ()) { + if (vp.GetCutawayMode() != fVP.GetCutawayMode()) return true; + if (vp.GetCutawayPlanes ().size () != + fVP.GetCutawayPlanes ().size ()) return true; + for (size_t i = 0; i < vp.GetCutawayPlanes().size(); ++i) + if (vp.GetCutawayPlanes()[i] != fVP.GetCutawayPlanes()[i]) + return true; } - if (lastVP.IsExplode () && - (lastVP.GetExplodeFactor () != fVP.GetExplodeFactor ())) + if (vp.IsExplode () && + (vp.GetExplodeFactor () != fVP.GetExplodeFactor ())) return true; - if (lastVP.IsSpecialMeshRendering() && - (lastVP.GetSpecialMeshVolumes() != fVP.GetSpecialMeshVolumes())) + if (vp.IsSpecialMeshRendering() && + (vp.GetSpecialMeshVolumes() != fVP.GetSpecialMeshVolumes())) return true; return false; diff --git a/source/visualization/RayTracer/History b/source/visualization/RayTracer/History index ba1cc032fc..bc3d4dce28 100644 --- a/source/visualization/RayTracer/History +++ b/source/visualization/RayTracer/History @@ -6,6 +6,24 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-25 Gabriele Cosmo (raytracer-V11-00-06) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-06 John Allison (raytracer-V11-00-05) +- Eliminate G4cerr and introduce G4warn. + - `#define G4warn G4cout` + - The above is temporary until a genuine G4warn output stream is + implemented. + - Change G4cerr to G4warn in all cases. + - Change G4cout to G4warn in those cases where it is clearly + an error report or a warning. + +## 2022-09-03 Ben Morgan (raytracer-V11-00-04) +- Resolve inconsistencies in dependencies + - Remove inclusion of headers for unused interfaces + - Remove unused dependencies + - Add needed G4geometrymg dependency + ## 2022-04-07 Gabriele Cosmo (raytracer-V11-00-03) - Fixed GNUmakefile and source.cmake to add required granular dependencies on "geometry/solids/CSG" and "geometry/solids/specific" modules, introduced diff --git a/source/visualization/RayTracer/include/G4RTOutBitStream.hh b/source/visualization/RayTracer/include/G4RTOutBitStream.hh index b711cd7385..5e9ca98277 100644 --- a/source/visualization/RayTracer/include/G4RTOutBitStream.hh +++ b/source/visualization/RayTracer/include/G4RTOutBitStream.hh @@ -51,7 +51,7 @@ class G4OutBitStream void CopyByte(const char* src, int n); u_char* GetStreamAddress(void){return mHeadOfBuf;}; - int GetStreamSize(void){return mBuf - mHeadOfBuf;}; + int GetStreamSize(void){return int(mBuf - mHeadOfBuf);}; protected: diff --git a/source/visualization/RayTracer/include/G4RayTrajectory.hh b/source/visualization/RayTracer/include/G4RayTrajectory.hh index 09611e3e20..c37574f2bd 100644 --- a/source/visualization/RayTracer/include/G4RayTrajectory.hh +++ b/source/visualization/RayTracer/include/G4RayTrajectory.hh @@ -67,14 +67,14 @@ class G4RayTrajectory : public G4VTrajectory public: - inline void* operator new(size_t); + inline void* operator new(std::size_t); inline void operator delete(void*); // inline int operator == (const G4RayTrajectory& right){return (this==&right);} virtual void AppendStep(const G4Step*); virtual void ShowTrajectory(std::ostream&) const; virtual void DrawTrajectory() const {;} - virtual int GetPointEntries() const {return positionRecord->size();} + virtual G4int GetPointEntries() const {return (G4int)positionRecord->size();} virtual G4VTrajectoryPoint* GetPoint(G4int i) const { return (*positionRecord)[i]; } G4RayTrajectoryPoint* GetPointC(G4int i) const @@ -100,7 +100,7 @@ class G4RayTrajectory : public G4VTrajectory extern G4DLLIMPORT G4Allocator*& rayTrajectoryAllocator(); #endif -inline void* G4RayTrajectory::operator new(size_t) +inline void* G4RayTrajectory::operator new(std::size_t) { if(!rayTrajectoryAllocator()) { rayTrajectoryAllocator() = new G4Allocator; } diff --git a/source/visualization/RayTracer/sources.cmake b/source/visualization/RayTracer/sources.cmake index 59480e3d0b..def0a8dcb1 100644 --- a/source/visualization/RayTracer/sources.cmake +++ b/source/visualization/RayTracer/sources.cmake @@ -64,13 +64,12 @@ geant4_module_link_libraries(G4RayTracer PRIVATE G4event G4bosons + G4geometrymng G4scoring G4partman G4procman G4cuts G4detector - G4csg - G4specsolids G4navigation) # X11 RayTracer only if selected diff --git a/source/visualization/RayTracer/src/G4RTJpegCoder.cc b/source/visualization/RayTracer/src/G4RTJpegCoder.cc index 07a608eccd..68f9917e48 100644 --- a/source/visualization/RayTracer/src/G4RTJpegCoder.cc +++ b/source/visualization/RayTracer/src/G4RTJpegCoder.cc @@ -294,7 +294,7 @@ G4JpegCoder::WriteHeader( void ) if( mProperty.Comment != 0 ){ mOBSP->SetByte( M_Marker ); //FF mOBSP->SetByte( M_COM ); //comment - int length = strlen( mProperty.Comment ) + 1; + int length = (int)strlen( mProperty.Comment ) + 1; mOBSP->SetWord( length + 2 ); mOBSP->CopyByte( mProperty.Comment, length ); } diff --git a/source/visualization/RayTracer/src/G4RTMessenger.cc b/source/visualization/RayTracer/src/G4RTMessenger.cc index dbb9da6efc..c640015909 100644 --- a/source/visualization/RayTracer/src/G4RTMessenger.cc +++ b/source/visualization/RayTracer/src/G4RTMessenger.cc @@ -44,6 +44,8 @@ #include "G4RayTracerViewer.hh" #include "G4TheRayTracer.hh" +#define G4warn G4cout + G4RTMessenger* G4RTMessenger::fpInstance = 0; G4RTMessenger* G4RTMessenger::GetInstance @@ -193,7 +195,7 @@ void G4RTMessenger::SetNewValue(G4UIcommand * command,G4String newValue) if (pViewer) { theTracer = pViewer->GetTracer(); } else { - G4cout << + G4warn << "G4RTMessenger::SetNewValue: Current viewer is not of type RayTracer." "\n Use \"/vis/viewer/select\" or \"/vis/open\"." << G4endl; @@ -201,7 +203,7 @@ void G4RTMessenger::SetNewValue(G4UIcommand * command,G4String newValue) } if (theTracer == theDefaultTracer) { - G4cout << + G4warn << "G4RTMessenger::SetNewValue: No valid current viewer. Using default RayTracer." << G4endl; } @@ -226,7 +228,7 @@ void G4RTMessenger::SetNewValue(G4UIcommand * command,G4String newValue) { theTracer->SetDistortion(distCmd->GetNewBoolValue(newValue)); } else if(command==bkgColCmd) { - G4cout << "WARNING: /vis/rayTracer/backgroundColour has been deprecated." + G4warn << "WARNING: /vis/rayTracer/backgroundColour has been deprecated." "\n Use \"/vis/viewer/set/background\" instead." << G4endl; } diff --git a/source/visualization/RayTracer/src/G4RTPrimaryGeneratorAction.cc b/source/visualization/RayTracer/src/G4RTPrimaryGeneratorAction.cc index e2a1019239..b66fc36546 100644 --- a/source/visualization/RayTracer/src/G4RTPrimaryGeneratorAction.cc +++ b/source/visualization/RayTracer/src/G4RTPrimaryGeneratorAction.cc @@ -29,9 +29,7 @@ #include "G4RTPrimaryGeneratorAction.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" -#include "G4GeometryManager.hh" #include "G4TransportationManager.hh" -#include "G4VPhysicalVolume.hh" #include "G4Event.hh" #include "G4PrimaryVertex.hh" #include "G4PrimaryParticle.hh" diff --git a/source/visualization/RayTracer/src/G4RTXScanner.cc b/source/visualization/RayTracer/src/G4RTXScanner.cc index b4b93ccdcf..9eec2376d2 100644 --- a/source/visualization/RayTracer/src/G4RTXScanner.cc +++ b/source/visualization/RayTracer/src/G4RTXScanner.cc @@ -36,6 +36,8 @@ #include #include +#define G4warn G4cout + extern "C" { Bool G4RayTracerXScannerWaitForNotify (Display*, XEvent* e, char* arg) { return (e->type == MapNotify) && (e->xmap.window == (Window) arg); @@ -110,7 +112,7 @@ G4bool G4RTXScanner::GetXWindow(const G4String& name, G4ViewParameters& vp) { display = XOpenDisplay(0); // Use display defined by DISPLAY environment. if (!display) { - G4cerr << "G4RTXScanner::Initialize(): cannot get display." + G4warn << "G4RTXScanner::Initialize(): cannot get display." << G4endl; return false; } @@ -142,7 +144,7 @@ G4bool G4RTXScanner::GetXWindow(const G4String& name, G4ViewParameters& vp) size_hints->y = yOffset; } } else { - G4cout << "ERROR: Geometry string \"" + G4warn << "ERROR: Geometry string \"" << XGeometryString << "\" invalid. Using \"600x600\"." << G4endl; @@ -150,7 +152,7 @@ G4bool G4RTXScanner::GetXWindow(const G4String& name, G4ViewParameters& vp) height = 600; } } else { - G4cout << "ERROR: Geometry string \"" + G4warn << "ERROR: Geometry string \"" << XGeometryString << "\" is empty. Using \"600x600\"." << G4endl; @@ -181,7 +183,7 @@ G4bool G4RTXScanner::GetXWindow(const G4String& name, G4ViewParameters& vp) (display, RootWindow(display, screen_num), &scmap, &nMaps, XA_RGB_BEST_MAP); if (!status) { - G4cerr << + G4warn << "G4RTXScanner::Initialize(): cannot get color map." "\n Perhaps your system does not support XA_RGB_BEST_MAP." << G4endl; @@ -189,7 +191,7 @@ G4bool G4RTXScanner::GetXWindow(const G4String& name, G4ViewParameters& vp) } } if (!scmap->colormap) { - G4cerr << "G4RTXScanner::Initialize(): color map empty." + G4warn << "G4RTXScanner::Initialize(): color map empty." << G4endl; return false; } diff --git a/source/visualization/RayTracer/src/G4RayTracer.cc b/source/visualization/RayTracer/src/G4RayTracer.cc index aafdd31ab9..6ce2877af8 100644 --- a/source/visualization/RayTracer/src/G4RayTracer.cc +++ b/source/visualization/RayTracer/src/G4RayTracer.cc @@ -30,6 +30,8 @@ #include "G4RayTracerSceneHandler.hh" #include "G4RayTracerViewer.hh" +#define G4warn G4cout + G4RayTracer::G4RayTracer(): G4VGraphicsSystem("RayTracer", "RayTracer", @@ -53,7 +55,7 @@ G4VViewer* G4RayTracer::CreateViewer (G4VSceneHandler& sceneHandler, (sceneHandler, name, theRayTracer); if (pViewer) { if (pViewer->GetViewId() < 0) { - G4cout << + G4warn << "G4RayTracer::CreateViewer: ERROR flagged by negative" " view id in G4RayTracerViewer creation." "\n Destroying view and returning null pointer." @@ -63,7 +65,7 @@ G4VViewer* G4RayTracer::CreateViewer (G4VSceneHandler& sceneHandler, } } else { - G4cout << + G4warn << "G4RayTracer::CreateViewer: ERROR: null pointer on new G4RayTracerViewer." << G4endl; } diff --git a/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc b/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc index 24aafbe38d..8fc0c7a15f 100644 --- a/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc +++ b/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc @@ -28,7 +28,8 @@ #include "G4RayTracerSceneHandler.hh" #include "G4VisManager.hh" -#include "G4LogicalVolume.hh" + +#define G4warn G4cout G4int G4RayTracerSceneHandler::fSceneIdCount = 0; @@ -99,7 +100,7 @@ void G4RayTracerSceneHandler::BuildVisAttsMap (const G4VSolid&) if (!pVisAtts) { // Shouldn't happen. if (G4VisManager::GetInstance()->GetVerbosity() >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: G4RayTracerSceneHandler::BuildVisAttsMap: null vis atts pointer." "\n Using a default vis atts." << G4endl; diff --git a/source/visualization/RayTracer/src/G4RayTracerViewer.cc b/source/visualization/RayTracer/src/G4RayTracerViewer.cc index da7fdb27fb..70b61b46b1 100644 --- a/source/visualization/RayTracer/src/G4RayTracerViewer.cc +++ b/source/visualization/RayTracer/src/G4RayTracerViewer.cc @@ -44,6 +44,8 @@ #include "G4RTSimpleScanner.hh" #include "G4UImanager.hh" +#define G4warn G4cout + G4RayTracerViewer::G4RayTracerViewer (G4VSceneHandler& sceneHandler, const G4String& name, @@ -58,7 +60,7 @@ G4RayTracerViewer::G4RayTracerViewer #endif { if (!theTracer) { - G4cerr << "G4RayTracerViewer::Initialise: No tracer" << G4endl; + G4warn << "G4RayTracerViewer::Initialise: No tracer" << G4endl; fViewId = -1; // This flags an error. return; } @@ -114,7 +116,7 @@ void G4RayTracerViewer::DrawView() if (fVP.GetFieldHalfAngle() == 0.) { // Orthogonal (parallel) projection. G4double fieldHalfAngle = perMillion; fVP.SetFieldHalfAngle(fieldHalfAngle); - G4cout << + G4warn << "WARNING: G4RayTracerViewer::DrawView: true orthogonal projection" "\n not yet implemented. Doing a \"long shot\", i.e., a perspective" "\n projection with a half field angle of " diff --git a/source/visualization/RayTracer/src/G4RayTracerX.cc b/source/visualization/RayTracer/src/G4RayTracerX.cc index 693b1eed56..a925fa085a 100644 --- a/source/visualization/RayTracer/src/G4RayTracerX.cc +++ b/source/visualization/RayTracer/src/G4RayTracerX.cc @@ -33,6 +33,8 @@ #include "G4RayTracerSceneHandler.hh" #include "G4RayTracerXViewer.hh" +#define G4warn G4cerr + G4RayTracerX::G4RayTracerX(): G4VGraphicsSystem("RayTracerX", "RayTracerX", @@ -53,7 +55,7 @@ G4VViewer* G4RayTracerX::CreateViewer (G4VSceneHandler& sceneHandler, G4VViewer* pViewer = new G4RayTracerXViewer (sceneHandler, name); if (pViewer) { if (pViewer->GetViewId() < 0) { - G4cout << + G4warn << "G4RayTracerX::CreateViewer: ERROR flagged by negative" " view id in G4RayTracerXViewer creation." "\n Destroying view and returning null pointer." @@ -63,7 +65,7 @@ G4VViewer* G4RayTracerX::CreateViewer (G4VSceneHandler& sceneHandler, } } else { - G4cout << + G4warn << "G4RayTracerX::CreateViewer: ERROR: null pointer on new G4RayTracerXViewer." << G4endl; } diff --git a/source/visualization/RayTracer/src/G4RayTrajectory.cc b/source/visualization/RayTracer/src/G4RayTrajectory.cc index 22a3aa2bc5..7f4174b1cd 100644 --- a/source/visualization/RayTracer/src/G4RayTrajectory.cc +++ b/source/visualization/RayTracer/src/G4RayTrajectory.cc @@ -36,7 +36,6 @@ #include "G4RayTrajectoryPoint.hh" #include "G4RayTracerSceneHandler.hh" #include "G4Step.hh" -#include "G4VPhysicalVolume.hh" #include "G4VisManager.hh" #include "G4VisAttributes.hh" #include "G4Colour.hh" diff --git a/source/visualization/RayTracer/src/G4TheMTRayTracer.cc b/source/visualization/RayTracer/src/G4TheMTRayTracer.cc index cbbd5467dd..26f53d6a72 100644 --- a/source/visualization/RayTracer/src/G4TheMTRayTracer.cc +++ b/source/visualization/RayTracer/src/G4TheMTRayTracer.cc @@ -46,6 +46,8 @@ #include "G4VVisManager.hh" #include "G4RunManagerFactory.hh" +#define G4warn G4cout + G4TheMTRayTracer* G4TheMTRayTracer::theInstance = nullptr; G4TheMTRayTracer::G4TheMTRayTracer(G4VFigureFileMaker* figMaker, @@ -100,14 +102,14 @@ void G4TheMTRayTracer::Trace(const G4String& fileName) G4ApplicationState currentState = theStateMan->GetCurrentState(); if(currentState!=G4State_Idle) { - G4cerr << "Illegal application state <" << theStateMan->GetStateString(currentState) + G4warn << "Illegal application state <" << theStateMan->GetStateString(currentState) << "> - Trace() ignored. " << G4endl; return; } if(!theFigMaker) { - G4cerr << "Figure file maker class is not specified - Trace() ignored." << G4endl; + G4warn << "Figure file maker class is not specified - Trace() ignored." << G4endl; return; } @@ -135,8 +137,8 @@ void G4TheMTRayTracer::Trace(const G4String& fileName) if(succeeded) { CreateFigureFile(fileName); } else - { G4cerr << "Could not create figure file" << G4endl; - G4cerr << "You might set the eye position outside of the world volume" << G4endl; } + { G4warn << "Could not create figure file" << G4endl; + G4warn << "You might set the eye position outside of the world volume" << G4endl; } G4String str = "/tracking/storeTrajectory " + G4UIcommand::ConvertToString(storeTrajectory); UI->ApplyCommand(str); diff --git a/source/visualization/RayTracer/src/G4TheRayTracer.cc b/source/visualization/RayTracer/src/G4TheRayTracer.cc index 389a4bbc28..447c82ab3f 100644 --- a/source/visualization/RayTracer/src/G4TheRayTracer.cc +++ b/source/visualization/RayTracer/src/G4TheRayTracer.cc @@ -54,6 +54,8 @@ #include "G4ProductionCutsTable.hh" #include "G4VVisManager.hh" +#define G4warn G4cout + G4VFigureFileMaker * G4TheRayTracer::theFigMaker = 0; G4VRTScanner * G4TheRayTracer::theScanner = 0; @@ -113,13 +115,13 @@ void G4TheRayTracer::Trace(const G4String& fileName) G4ApplicationState currentState = theStateMan->GetCurrentState(); if(currentState!=G4State_Idle) { - G4cerr << "Illegal application state - Trace() ignored." << G4endl; + G4warn << "Illegal application state - Trace() ignored." << G4endl; return; } if(!theFigMaker) { - G4cerr << "Figure file maker class is not specified - Trace() ignored." << G4endl; + G4warn << "Figure file maker class is not specified - Trace() ignored." << G4endl; return; } @@ -139,8 +141,8 @@ void G4TheRayTracer::Trace(const G4String& fileName) if(succeeded) { CreateFigureFile(fileName); } else - { G4cerr << "Could not create figure file" << G4endl; - G4cerr << "You might set the eye position outside of the world volume" << G4endl; } + { G4warn << "Could not create figure file" << G4endl; + G4warn << "You might set the eye position outside of the world volume" << G4endl; } RestoreUserActions(); if(storeTrajectory==0) UI->ApplyCommand("/tracking/storeTrajectory 0"); @@ -209,7 +211,7 @@ G4bool G4TheRayTracer::CreateBitMap() G4ProductionCutsTable::GetProductionCutsTable()->UpdateCoupleTable(pWorld); G4ProcessVector* pVector = G4Geantino::GeantinoDefinition()->GetProcessManager()->GetProcessList(); - for (std::size_t j=0; j < pVector->size(); ++j) { + for (G4int j=0; j < (G4int)pVector->size(); ++j) { (*pVector)[j]->BuildPhysicsTable(*(G4Geantino::GeantinoDefinition())); } diff --git a/source/visualization/ToolsSG/GNUmakefile b/source/visualization/ToolsSG/GNUmakefile index fae3dff39a..63b266d532 100644 --- a/source/visualization/ToolsSG/GNUmakefile +++ b/source/visualization/ToolsSG/GNUmakefile @@ -13,7 +13,6 @@ GLOBLIBS += libG4materials.lib libG4graphics_reps.lib GLOBLIBS += libG4intercoms.lib libG4global.lib include $(G4INSTALL)/config/architecture.gmk -# include $(G4INSTALL)/config/G4VIS_BUILD.gmk include $(G4INSTALL)/config/interactivity.gmk CPPFLAGS += -I$(G4BASE)/visualization/management/include @@ -23,14 +22,19 @@ CPPFLAGS += -I$(G4BASE)/global/HEPGeometry/include CPPFLAGS += -I$(G4BASE)/graphics_reps/include CPPFLAGS += -I$(G4BASE)/intercoms/include CPPFLAGS += -I$(G4BASE)/geometry/management/include +CPPFLAGS += -I$(G4BASE)/geometry/navigation/include CPPFLAGS += -I$(G4BASE)/geometry/solids/CSG/include CPPFLAGS += -I$(G4BASE)/geometry/solids/specific/include +CPPFLAGS += -I$(G4BASE)/geometry/volumes/include CPPFLAGS += -I$(G4BASE)/tracking/include CPPFLAGS += -I$(G4BASE)/digits_hits/hits/include # Locally adjust source list before including common.gmk sources := src/G4ToolsSGSceneHandler.cc +CPPFLAGS += -I$(G4BASE)/externals/g4tools/include +sources += src/G4ToolsSGOffscreen.cc + ifdef G4VIS_BUILD_TOOLSSG_X11_GLES_DRIVER sources += src/G4ToolsSGX11GLES.cc endif diff --git a/source/visualization/ToolsSG/History b/source/visualization/ToolsSG/History index 51985cf070..feb80e1e0d 100644 --- a/source/visualization/ToolsSG/History +++ b/source/visualization/ToolsSG/History @@ -1,8 +1,28 @@ # Category vis_toolssg History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-25 Gabriele Cosmo (vis_toolssg-V11-00-15) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-10-28 John Allison (vis_toolssg-V11-00-14) +- Request kernel visit when cutaway mode changes: + - G4ToolsSGViewer.hh + +## 2022-10-13 Guy Barrand (vis_toolssg-V11-00-13) +- new offscreen sub-driver. +- new files: include/G4ToolsSGOffscreen.hh, include/G4ToolsSGOffscreenViewer.hh and src/G4ToolsSGOffscreen.cc. +- sources.cmake, GNUmakefile: G4ToolsSGOffscreen .hh and .cc files. +- G4ToolsSGViewer.hh: handle ambient lightening. +- G4ToolsSGViewer.hh: for "write paper", handle zb_png, zb_jpeg formats. +- G4ToolsSGViewer.hh: correct fSGViewer->set_clear_color(). The passed "green" was... blue. + +## 2022-09-06 Ben Morgan (vis_toolssg-V11-00-12) +- Address dependency inconsistencies reported by geant4_module_check ## 2022-05-18 Guy Barrand (vis_toolssg-V11-00-11) - have "toolx" namespace for g4tools code related to "externals", then: diff --git a/environments/g4py/source/visualization/pyG4VGraphicsSystem.cc b/source/visualization/ToolsSG/include/G4ToolsSGOffscreen.hh similarity index 69% rename from environments/g4py/source/visualization/pyG4VGraphicsSystem.cc rename to source/visualization/ToolsSG/include/G4ToolsSGOffscreen.hh index c63cfcfebe..9b22edb40c 100644 --- a/environments/g4py/source/visualization/pyG4VGraphicsSystem.cc +++ b/source/visualization/ToolsSG/include/G4ToolsSGOffscreen.hh @@ -23,23 +23,31 @@ // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // -// ==================================================================== -// pyG4VGraphicsSystem.cc -// -// 2005 Q -// ==================================================================== -#include +// Guy Barrand 09th June 2022 + +#ifndef G4TOOLSSOFFSCREEN_HH +#define G4TOOLSSOFFSCREEN_HH + #include "G4VGraphicsSystem.hh" -using namespace boost::python; +namespace tools {namespace offscreen {class session;}} -// ==================================================================== -// module definition -// ==================================================================== -void export_G4VGraphicsSystem() -{ - class_ - ("G4VGraphicsSystem", "base class of graphics system", no_init) - ; -} +class G4ToolsSGOffscreen: public G4VGraphicsSystem { + typedef G4VGraphicsSystem parent; +public: + G4ToolsSGOffscreen(); + virtual ~G4ToolsSGOffscreen(); +protected: + G4ToolsSGOffscreen(const G4ToolsSGOffscreen& a_from):parent(a_from){} + G4ToolsSGOffscreen& operator=(const G4ToolsSGOffscreen&) {return *this;} +public: + G4VSceneHandler* CreateSceneHandler(const G4String& name = ""); + G4VViewer* CreateViewer (G4VSceneHandler&, const G4String& name = ""); + G4bool IsUISessionCompatible () const; +protected: + void Initialise(); +protected: + tools::offscreen::session* fSGSession; +}; +#endif diff --git a/source/visualization/ToolsSG/include/G4ToolsSGOffscreenViewer.hh b/source/visualization/ToolsSG/include/G4ToolsSGOffscreenViewer.hh new file mode 100644 index 0000000000..c8925a8f07 --- /dev/null +++ b/source/visualization/ToolsSG/include/G4ToolsSGOffscreenViewer.hh @@ -0,0 +1,404 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// Guy Barrand 09th June 2022 + +#ifndef G4TOOLSSGOFFSCREENVIEWER_HH +#define G4TOOLSSGOFFSCREENVIEWER_HH + +#include "G4ToolsSGViewer.hh" + +#include "G4UIcmdWithABool.hh" + +#include +#include + +#include +#include +#include + +class G4ToolsSGOffscreenViewer : public G4ToolsSGViewer { + typedef G4ToolsSGViewer parent; +public: + G4ToolsSGOffscreenViewer(tools::offscreen::session& a_session,G4ToolsSGSceneHandler& a_scene_handler, const G4String& a_name) + :parent(a_session,a_scene_handler,a_name) + ,fFileName("auto") + ,fFilePrefix("auto") + ,fFileIndex(0) + ,fResetFileIndex(false) + { + Messenger::Create(); + } + virtual ~G4ToolsSGOffscreenViewer() = default; +protected: + G4ToolsSGOffscreenViewer(const G4ToolsSGOffscreenViewer& a_from):parent(a_from){} + G4ToolsSGOffscreenViewer& operator=(const G4ToolsSGOffscreenViewer&) {return *this;} +public: + virtual void Initialise() { + if(fSGViewer) return; //done. + //::printf("debug : G4ToolsSGOffscreenViewer::Initialize\n"); + // auto refresh true produces too much files. + fVP.SetAutoRefresh(false); + fDefaultVP.SetAutoRefresh(false); + fSGViewer = new tools::offscreen::sg_viewer(fSGSession + ,fVP.GetWindowAbsoluteLocationHintX(1440) + ,fVP.GetWindowAbsoluteLocationHintY(900) + ,fVP.GetWindowSizeHintX() + ,fVP.GetWindowSizeHintY() + ,fName); + fSGViewer->set_file_format("zb_png"); + fSGViewer->set_file_name("out.png"); + fSGViewer->set_png_writer(tools::fpng::write); + fSGViewer->set_jpeg_writer(tools::toojpeg::write); + fSGViewer->set_do_transparency(true); + fSGViewer->set_top_to_bottom(false); //if using tools::fpng, tools::toojpeg. + } + virtual void SetView() { + //::printf("debug : G4ToolsSGOffscreenViewer::SetView\n"); + fVP.SetGlobalMarkerScale(1); //WARNING: for __APPLE__, the G4ToolsSGQtViewer set it to 2. + parent::SetView(); + } + + virtual void DrawView() { + if (!fNeedKernelVisit) KernelVisitDecision(); + fLastVP = fVP; + ProcessView(); // Clears store and processes scene only if necessary. + //::printf("debug : G4ToolsSGOffscreenViewer::DrawView %s\n",fName.c_str()); + if(fSGViewer) { + fSGSceneHandler.TouchPlotters(fSGViewer->sg()); + if(fFileName=="auto") { + std::string prefix; + if(fFilePrefix=="auto") { + prefix = "g4tsg_offscreen_"+fSGViewer->file_format()+"_"; + } else { + prefix = fFilePrefix; + } + std::string suffix; + if(G4ToolsSGOffscreenViewer::GetFormatExtension(fSGViewer->file_format(),suffix)) { + std::string file_name = prefix+tools::tos(GetFileIndex())+"."+suffix; + fSGViewer->set_file_name(file_name); + } + } else { + fSGViewer->set_file_name(fFileName); + } + if(fSGViewer->write_paper()) { + if (G4VisManager::GetVerbosity() >= G4VisManager::confirmations) { + G4cout << "File " << fSGViewer->file_name() << " produced." << G4endl; + } + } + } + } + + virtual void ClearView() { + //::printf("debug : G4ToolsSGOffscreenViewer::ClearView %s\n",fName.c_str()); + } + virtual void ShowView() { + //::printf("debug : G4ToolsSGOffscreenViewer::ShowView %s\n",fName.c_str()); + } + virtual void FinishView() { + //::printf("debug : G4ToolsSGOffscreenViewer::FinishView %s\n",fName.c_str()); + if(fSGViewer) { + fSGSceneHandler.TouchPlotters(fSGViewer->sg()); + } + } + +protected: + void SetSize(unsigned int a_w,unsigned int a_h) { + if(!fSGViewer) return; + if(!a_w || !a_h) { + fSGViewer->set_size(fVP.GetWindowSizeHintX(),fVP.GetWindowSizeHintY()); + } else { + fSGViewer->set_size(a_w,a_h); + } + } + + void SetFileFormat(const G4String& a_format) { + if(!fSGViewer) return; + fSGViewer->set_file_format(a_format); + } + + void SetDoTransparency(bool a_value) { + if(!fSGViewer) return; + fSGViewer->set_do_transparency(a_value); + } + + void SetFileName(const G4String& a_file,const G4String& a_prefix,bool a_reset_index) { + fFileName = a_file; + fFilePrefix = a_prefix; + fResetFileIndex = a_reset_index; + } + + void SetGL2PSSort(const G4String& a_sort) { + if(!fSGViewer) return; + fSGViewer->set_opts_1(a_sort); + } + + void SetGL2PSOptions(const G4String& a_opts) { + if(!fSGViewer) return; + fSGViewer->set_opts_2(a_opts); + } + + class Messenger: public G4VVisCommand { + public: + static void Create() {static Messenger s_messenger;} + private: + Messenger() { + G4UIparameter* parameter; + ////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////// + cmd_format = new G4UIcommand("/vis/tsg/offscreen/set/format", this); + cmd_format->SetGuidance("Set file format."); + cmd_format->SetGuidance("Available formats are:"); + cmd_format->SetGuidance("- zb_png: tools::sg offscreen zbuffer put in a png file."); + cmd_format->SetGuidance("- zb_jpeg: tools::sg offscreen zbuffer put in a jpeg file."); + cmd_format->SetGuidance("- zb_ps: tools::sg offscreen zbuffer put in a PostScript file."); + cmd_format->SetGuidance("- gl2ps_eps: gl2ps producing eps"); + cmd_format->SetGuidance("- gl2ps_ps: gl2ps producing ps"); + cmd_format->SetGuidance("- gl2ps_pdf: gl2ps producing pdf"); + cmd_format->SetGuidance("- gl2ps_svg: gl2ps producing svg"); + cmd_format->SetGuidance("- gl2ps_tex: gl2ps producing tex"); + cmd_format->SetGuidance("- gl2ps_pgf: gl2ps producing pgf"); + + parameter = new G4UIparameter("format",'s',true); + parameter->SetDefaultValue("gl2ps_eps"); + cmd_format->SetParameter (parameter); + + ////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////// + cmd_file = new G4UIcommand("/vis/tsg/offscreen/set/file", this); + cmd_file->SetGuidance("Set file name."); + cmd_file->SetGuidance("Default file name is \"auto\" and default format is zb_png."); + cmd_file->SetGuidance("If file name is \"auto\", the output file name is built from"); + cmd_file->SetGuidance("a viewer index counter with the form:"); + cmd_file->SetGuidance(" g4tsg_offscreen__."); + cmd_file->SetGuidance("For example:"); + cmd_file->SetGuidance(" g4tsg_offscreen_zb_png_1.png"); + cmd_file->SetGuidance(" g4tsg_offscreen_zb_png_2.png"); + cmd_file->SetGuidance(" ..."); + cmd_file->SetGuidance("or if format is changed to \"gl2ps_pdf\":"); + cmd_file->SetGuidance(" g4tsg_offscreen_gl2ps_pdf_3.pdf"); + cmd_file->SetGuidance("If a prefix parameter is given, the output file name is built from"); + cmd_file->SetGuidance("a global index counter with the form:"); + cmd_file->SetGuidance(" ."); + cmd_file->SetGuidance("For example:"); + cmd_file->SetGuidance(" /vis/tsg/offscreen/set/file auto my_prefix_"); + cmd_file->SetGuidance("will produce:"); + cmd_file->SetGuidance(" my_prefix_1.png"); + cmd_file->SetGuidance(" my_prefix_2.png"); + cmd_file->SetGuidance(" ..."); + cmd_file->SetGuidance("You can reset the index by specifying true as last argument:"); + cmd_file->SetGuidance(" /vis/tsg/offscreen/set/file auto other_prefix_ true"); + cmd_file->SetGuidance("will produce:"); + cmd_file->SetGuidance(" other_prefix_1.png"); + cmd_file->SetGuidance(" other_prefix_2.png"); + cmd_file->SetGuidance(" ..."); + + parameter = new G4UIparameter("file",'s',true); + parameter->SetDefaultValue("auto"); + cmd_file->SetParameter (parameter); + + parameter = new G4UIparameter("prefix",'s',true); + parameter->SetDefaultValue("auto"); + cmd_file->SetParameter (parameter); + + parameter = new G4UIparameter("reset_index",'b',true); + parameter->SetDefaultValue("false"); + cmd_file->SetParameter (parameter); + + ////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////// + cmd_size = new G4UIcommand("/vis/tsg/offscreen/set/size", this); + cmd_size->SetGuidance("Set viewer size in pixels."); + cmd_size->SetGuidance + ("If width and/or height is set to zero, the viewer size specified with /vis/viewer/create (/vis/open) is taken."); + cmd_size->SetGuidance(" About the picture size, note that the gl2ps files will grow with the number of primitives"); + cmd_size->SetGuidance("(gl2ps does not have a zbuffer logic). The \"zb\" files will not grow with the number of"); + cmd_size->SetGuidance("primitives, but with the size of the viewer. It should be preferred for scenes with"); + cmd_size->SetGuidance("a lot of objects to render. With zb, to have a better rendering, do not hesitate to"); + cmd_size->SetGuidance("have a large viewer size."); + + parameter = new G4UIparameter("width",'i',false); + parameter->SetDefaultValue("0"); + cmd_size->SetParameter (parameter); + + parameter = new G4UIparameter("height",'i',false); + parameter->SetDefaultValue("0"); + cmd_size->SetParameter (parameter); + + ////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////// + cmd_do_transparency = new G4UIcmdWithABool("/vis/tsg/offscreen/set/transparency", this); + cmd_do_transparency->SetGuidance("True/false to enable/disable rendering of transparent objects."); + cmd_do_transparency->SetGuidance("This may be usefull if using file formats, as the gl2ps ones, unable to handle transparency."); + cmd_do_transparency->SetParameterName("transparency-enabled",true); + cmd_do_transparency->SetDefaultValue(true); + + ////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////// + cmd_gl2ps_sort = new G4UIcommand("/vis/tsg/offscreen/gl2ps/set/sort", this); + cmd_gl2ps_sort->SetGuidance("Set gl2ps sort algorithm when creating the file."); + + cmd_gl2ps_sort->SetGuidance("The sort argument could be:"); + cmd_gl2ps_sort->SetGuidance(" NO_SORT"); + cmd_gl2ps_sort->SetGuidance(" SIMPLE_SORT"); + cmd_gl2ps_sort->SetGuidance(" BSP_SORT"); + cmd_gl2ps_sort->SetGuidance("The default being BSP_SORT"); + + parameter = new G4UIparameter("sort",'s',true); + parameter->SetDefaultValue("BSP_SORT"); + cmd_gl2ps_sort->SetParameter (parameter); + + ////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////// + cmd_gl2ps_opts = new G4UIcommand("/vis/tsg/offscreen/gl2ps/set/options", this); + cmd_gl2ps_opts->SetGuidance("Set gl2ps options passed when creating the file."); + + cmd_gl2ps_opts->SetGuidance("Options is a list of items separated by |. An item can be:"); + cmd_gl2ps_opts->SetGuidance(" NONE"); + cmd_gl2ps_opts->SetGuidance(" DRAW_BACKGROUND"); + cmd_gl2ps_opts->SetGuidance(" SIMPLE_LINE_OFFSET"); + cmd_gl2ps_opts->SetGuidance(" SILENT"); + cmd_gl2ps_opts->SetGuidance(" BEST_ROOT"); + cmd_gl2ps_opts->SetGuidance(" OCCLUSION_CULL"); + cmd_gl2ps_opts->SetGuidance(" NO_TEXT"); + cmd_gl2ps_opts->SetGuidance(" LANDSCAPE"); + cmd_gl2ps_opts->SetGuidance(" NO_PS3_SHADING"); + cmd_gl2ps_opts->SetGuidance(" NO_PIXMAP"); + cmd_gl2ps_opts->SetGuidance(" USE_CURRENT_VIEWPORT"); + cmd_gl2ps_opts->SetGuidance(" COMPRESS"); + cmd_gl2ps_opts->SetGuidance(" NO_BLENDING"); + cmd_gl2ps_opts->SetGuidance(" TIGHT_BOUNDING_BOX"); + cmd_gl2ps_opts->SetGuidance(" NO_OPENGL_CONTEXT"); + cmd_gl2ps_opts->SetGuidance(" NO_TEX_FONTSIZE"); + cmd_gl2ps_opts->SetGuidance(" PORTABLE_SORT"); + cmd_gl2ps_opts->SetGuidance("The default (typical) list of options is:"); + cmd_gl2ps_opts->SetGuidance(" SILENT|OCCLUSION_CULL|BEST_ROOT|DRAW_BACKGROUND"); + + parameter = new G4UIparameter("options",'s',true); + parameter->SetDefaultValue("SILENT|OCCLUSION_CULL|BEST_ROOT|DRAW_BACKGROUND"); + cmd_gl2ps_opts->SetParameter (parameter); + + + } + virtual ~Messenger() { + delete cmd_format; + delete cmd_file; + delete cmd_size; + delete cmd_do_transparency; + delete cmd_gl2ps_sort; + delete cmd_gl2ps_opts; + } + public: + virtual void SetNewValue(G4UIcommand* a_cmd,G4String a_value) { + G4VisManager::Verbosity verbosity = GetVisManager()->GetVerbosity(); + G4VViewer* viewer = GetVisManager()->GetCurrentViewer(); + if (!viewer) { + if (verbosity >= G4VisManager::errors) G4cerr << "ERROR: No current viewer." << G4endl; + return; + } + G4ToolsSGOffscreenViewer* tsg_viewer = dynamic_cast(viewer); + if(!tsg_viewer) { + G4cout << "G4ToolsSGOffscreenViewer::Messenger::SetNewValue:" + << " current viewer is not a G4ToolsSGOffscreenViewer." << G4endl; + return; + } + std::vector args; + tools::double_quotes_tokenize(a_value,args); + if(args.size()!=a_cmd->GetParameterEntries()) return; + if(a_cmd==cmd_format) { + if(!IsKnownFormat(args[0])) { + G4cout << "G4ToolsSGOffscreenViewer::Messenger::SetNewValue:" + << " unknown file format " << args[0] << "." << G4endl; + return; + } + tsg_viewer->SetFileFormat(args[0]); + } else if(a_cmd==cmd_file) { + G4bool reset_index = G4UIcommand::ConvertToBool(args[2].c_str()); + tsg_viewer->SetFileName(args[0],args[1],reset_index); + } else if(a_cmd==cmd_size) { + unsigned int w,h; + if(!tools::to(args[0],w)) w = 0; + if(!tools::to(args[1],h)) h = 0; + tsg_viewer->SetSize(w,h); + } else if(a_cmd==cmd_do_transparency) { + G4bool _do = a_cmd->ConvertToBool(args[0].c_str()); + tsg_viewer->SetDoTransparency(_do); + } else if(a_cmd==cmd_gl2ps_sort) { + tsg_viewer->SetGL2PSSort(args[0]); + } else if(a_cmd==cmd_gl2ps_opts) { + tsg_viewer->SetGL2PSOptions(args[0]); + } + } + private: + G4UIcommand* cmd_format; + G4UIcommand* cmd_file; + G4UIcommand* cmd_size; + G4UIcmdWithABool* cmd_do_transparency; + G4UIcommand* cmd_gl2ps_sort; + G4UIcommand* cmd_gl2ps_opts; + }; + +protected: + unsigned int GetFileIndex() { + if(fResetFileIndex) {fFileIndex = 0;fResetFileIndex = false;} + fFileIndex++; + return fFileIndex; + } + + static bool IsKnownFormat(const std::string& a_format) { + if(a_format=="gl2ps_eps") return true; + if(a_format=="gl2ps_ps") return true; + if(a_format=="gl2ps_pdf") return true; + if(a_format=="gl2ps_svg") return true; + if(a_format=="gl2ps_tex") return true; + if(a_format=="gl2ps_pgf") return true; + if(a_format=="zb_ps") return true; + if(a_format=="zb_png") return true; + if(a_format=="zb_jpeg") return true; + return false; + } + + static bool GetFormatExtension(const std::string& a_format,std::string& a_ext) { + if(a_format=="gl2ps_eps") {a_ext = "eps";return true;} + if(a_format=="gl2ps_ps") {a_ext = "ps";return true;} + if(a_format=="gl2ps_pdf") {a_ext = "pdf";return true;} + if(a_format=="gl2ps_svg") {a_ext = "svg";return true;} + if(a_format=="gl2ps_tex") {a_ext = "tex";return true;} + if(a_format=="gl2ps_pgf") {a_ext = "pgf";return true;} + if(a_format=="zb_ps") {a_ext = "ps";return true;} + if(a_format=="zb_png") {a_ext = "png";return true;} + if(a_format=="zb_jpeg") {a_ext = "jpeg";return true;} + a_ext.clear(); + return false; + } + +protected: + std::string fFileName; + std::string fFilePrefix; + unsigned int fFileIndex; + bool fResetFileIndex; +}; + +#endif diff --git a/source/visualization/ToolsSG/include/G4ToolsSGViewer.hh b/source/visualization/ToolsSG/include/G4ToolsSGViewer.hh index 3e7c3c18de..903baf7a34 100644 --- a/source/visualization/ToolsSG/include/G4ToolsSGViewer.hh +++ b/source/visualization/ToolsSG/include/G4ToolsSGViewer.hh @@ -34,6 +34,9 @@ #include "G4Scene.hh" #include "G4VVisCommand.hh" +#include +#include + #include #include #include @@ -265,7 +268,7 @@ public: CreateSG(_camera,fVP.GetActualLightpointDirection()); {G4Color background = fVP.GetBackgroundColour (); - fSGViewer->set_clear_color(float(background.GetRed()),float(background.GetBlue()),float(background.GetBlue()),1);} + fSGViewer->set_clear_color(float(background.GetRed()),float(background.GetGreen()),float(background.GetBlue()),1);} } virtual void ClearView() {} @@ -328,58 +331,81 @@ protected: } } - G4bool CompareForKernelVisit(G4ViewParameters& lastVP) { - // Typical comparison. Taken from OpenGL. + G4bool CompareForKernelVisit(G4ViewParameters& vp) { + // Typical comparison. Taken from OpenInventor. if ( - (lastVP.GetDrawingStyle () != fVP.GetDrawingStyle ()) || - (lastVP.GetNumberOfCloudPoints() != fVP.GetNumberOfCloudPoints()) || - (lastVP.IsAuxEdgeVisible () != fVP.IsAuxEdgeVisible ()) || - (lastVP.IsCulling () != fVP.IsCulling ()) || - (lastVP.IsCullingInvisible () != fVP.IsCullingInvisible ()) || - (lastVP.IsDensityCulling () != fVP.IsDensityCulling ()) || - (lastVP.IsCullingCovered () != fVP.IsCullingCovered ()) || - (lastVP.GetCBDAlgorithmNumber() != - fVP.GetCBDAlgorithmNumber()) || - (lastVP.IsSection () != fVP.IsSection ()) || - (lastVP.IsCutaway () != fVP.IsCutaway ()) || - (lastVP.IsExplode () != fVP.IsExplode ()) || - (lastVP.GetNoOfSides () != fVP.GetNoOfSides ()) || - (lastVP.GetGlobalMarkerScale() != fVP.GetGlobalMarkerScale()) || - (lastVP.GetGlobalLineWidthScale() != fVP.GetGlobalLineWidthScale()) || - (lastVP.IsMarkerNotHidden () != fVP.IsMarkerNotHidden ()) || - (lastVP.GetDefaultVisAttributes()->GetColour() != - fVP.GetDefaultVisAttributes()->GetColour()) || - (lastVP.GetDefaultTextVisAttributes()->GetColour() != - fVP.GetDefaultTextVisAttributes()->GetColour()) || - (lastVP.GetBackgroundColour ()!= fVP.GetBackgroundColour ())|| - (lastVP.IsPicking () != fVP.IsPicking ()) || - (lastVP.GetVisAttributesModifiers() != - fVP.GetVisAttributesModifiers()) || - (lastVP.IsSpecialMeshRendering() != - fVP.IsSpecialMeshRendering()) - ) { - return true; - } + (vp.GetDrawingStyle () != fVP.GetDrawingStyle ()) || + (vp.GetNumberOfCloudPoints() != fVP.GetNumberOfCloudPoints()) || + (vp.IsAuxEdgeVisible () != fVP.IsAuxEdgeVisible ()) || + (vp.IsCulling () != fVP.IsCulling ()) || + (vp.IsCullingInvisible () != fVP.IsCullingInvisible ()) || + (vp.IsDensityCulling () != fVP.IsDensityCulling ()) || + (vp.IsCullingCovered () != fVP.IsCullingCovered ()) || + (vp.GetCBDAlgorithmNumber() != + fVP.GetCBDAlgorithmNumber()) || + (vp.IsSection () != fVP.IsSection ()) || + (vp.IsCutaway () != fVP.IsCutaway ()) || + // This assumes use of generic clipping (sectioning, slicing, + // DCUT, cutaway). If a decision is made to implement locally, + // this will need changing. See G4OpenGLViewer::SetView, + // G4OpenGLStoredViewer.cc::CompareForKernelVisit and + // G4OpenGLStoredSceneHander::CreateSection/CutawayPolyhedron. + (vp.IsExplode () != fVP.IsExplode ()) || + (vp.GetNoOfSides () != fVP.GetNoOfSides ()) || + (vp.GetGlobalMarkerScale() != fVP.GetGlobalMarkerScale()) || + (vp.GetGlobalLineWidthScale() != fVP.GetGlobalLineWidthScale()) || + (vp.IsMarkerNotHidden () != fVP.IsMarkerNotHidden ()) || + (vp.GetDefaultVisAttributes()->GetColour() != + fVP.GetDefaultVisAttributes()->GetColour()) || + (vp.GetDefaultTextVisAttributes()->GetColour() != + fVP.GetDefaultTextVisAttributes()->GetColour()) || + (vp.GetBackgroundColour ()!= fVP.GetBackgroundColour ())|| + (vp.IsPicking () != fVP.IsPicking ()) || + // Scaling for Open Inventor is done by the scene handler so it + // needs a kernel visit. (In this respect, it differs from the + // OpenGL drivers, where it's done in SetView.) + (vp.GetScaleFactor () != fVP.GetScaleFactor ()) || + (vp.GetVisAttributesModifiers() != + fVP.GetVisAttributesModifiers()) || + (vp.IsSpecialMeshRendering() != + fVP.IsSpecialMeshRendering()) || + (vp.GetSpecialMeshRenderingOption() != + fVP.GetSpecialMeshRenderingOption()) + ) + return true; - if (lastVP.IsDensityCulling () && - (lastVP.GetVisibleDensity () != fVP.GetVisibleDensity ())) return true; - - if (lastVP.GetCBDAlgorithmNumber() > 0) { - if (lastVP.GetCBDParameters().size() != fVP.GetCBDParameters().size()) return true; - else if (lastVP.GetCBDParameters() != fVP.GetCBDParameters()) return true; - } - - if (lastVP.IsExplode () && - (lastVP.GetExplodeFactor () != fVP.GetExplodeFactor ())) + if (vp.IsDensityCulling () && + (vp.GetVisibleDensity () != fVP.GetVisibleDensity ())) return true; - if (lastVP.IsSpecialMeshRendering() && - (lastVP.GetSpecialMeshVolumes() != fVP.GetSpecialMeshVolumes())) + if (vp.GetCBDAlgorithmNumber() > 0) { + if (vp.GetCBDParameters().size() != fVP.GetCBDParameters().size()) return true; + else if (vp.GetCBDParameters() != fVP.GetCBDParameters()) return true; + } + + if (vp.IsSection () && + (vp.GetSectionPlane () != fVP.GetSectionPlane ())) + return true; + + if (vp.IsCutaway ()) { + if (vp.GetCutawayMode() != fVP.GetCutawayMode()) return true; + if (vp.GetCutawayPlanes ().size () != + fVP.GetCutawayPlanes ().size ()) return true; + for (size_t i = 0; i < vp.GetCutawayPlanes().size(); ++i) + if (vp.GetCutawayPlanes()[i] != fVP.GetCutawayPlanes()[i]) + return true; + } + + if (vp.IsExplode () && + (vp.GetExplodeFactor () != fVP.GetExplodeFactor ())) + return true; + + if (vp.IsSpecialMeshRendering() && + (vp.GetSpecialMeshVolumes() != fVP.GetSpecialMeshVolumes())) return true; return false; } - // void keyPressEvent (KeyEvent*); // void keyReleaseEvent (KeyEvent*); // void mouseDoubleClickEvent(MouseEvent*); @@ -412,6 +438,8 @@ protected: {tools::sg::torche* light = new tools::sg::torche; light->on = true; light->direction = tools::vec3f(-a_light_dir.x(),-a_light_dir.y(),-a_light_dir.z()); + light->ambient = tools::colorf(0.2f,0.2f,0.2f,1.0f); //same as in G4OpenGLViewer.cc glLight(GL_LIGHT0,GL_AMBIENT and GL_DIFFUSE). + light->color = tools::colorf(0.8f,0.8f,0.8f,1.0f); //idem. scene_3D->add(light);} {tools::sg::blend* blend = new tools::sg::blend; @@ -422,13 +450,15 @@ protected: scene_3D->add(new tools::sg::noderef(fSGSceneHandler.GetPersistent3DObjects())); } - void Export(const G4String& a_format,const G4String& a_file) { + void Export(const G4String& a_format,const G4String& a_file,G4bool a_do_transparency) { if(!fSGViewer) return; const G4Colour& back_color = fVP.GetBackgroundColour(); - if(!write_paper(G4cout,f_gl2ps_mgr,f_zb_mgr,0,0, + bool top_to_bottom = false; //if using tools::fpng, tools::toojpeg. + if(!tools::sg::write_paper(G4cout,f_gl2ps_mgr,f_zb_mgr, + tools::fpng::write,tools::toojpeg::write, float(back_color.GetRed()),float(back_color.GetGreen()),float(back_color.GetBlue()),float(back_color.GetAlpha()), - fSGViewer->sg(), - fSGViewer->width(),fSGViewer->height(),a_file,a_format)) { + fSGViewer->sg(),fSGViewer->width(),fSGViewer->height(), + a_file,a_format,a_do_transparency,top_to_bottom,std::string(),std::string())) { G4cout << "G4ToolsSGViewer::Export: write_paper() failed." << G4endl; return; } @@ -454,6 +484,8 @@ protected: write_scene->SetGuidance("- gl2ps_tex: gl2ps producing tex"); write_scene->SetGuidance("- gl2ps_pgf: gl2ps producing pgf"); write_scene->SetGuidance("- zb_ps: tools::sg offscreen zbuffer put in a PostScript file."); + write_scene->SetGuidance("- zb_png: tools::sg offscreen zbuffer put in a png file."); + write_scene->SetGuidance("- zb_jpeg: tools::sg offscreen zbuffer put in a jpeg file."); parameter = new G4UIparameter("format",'s',true); parameter->SetDefaultValue("gl2ps_eps"); @@ -462,6 +494,11 @@ protected: parameter = new G4UIparameter("file",'s',true); parameter->SetDefaultValue("out.eps"); write_scene->SetParameter (parameter); + + parameter = new G4UIparameter ("do_transparency", 'b', true); + parameter->SetDefaultValue ("true"); + write_scene->SetParameter (parameter); + } virtual ~Messenger() { delete write_scene; @@ -484,7 +521,8 @@ protected: tools::double_quotes_tokenize(a_value,args); if(args.size()!=a_cmd->GetParameterEntries()) return; if(a_cmd==write_scene) { - tsg_viewer->Export(args[0],args[1]); + G4bool do_transparency = G4UIcommand::ConvertToBool(args[2].c_str()); + tsg_viewer->Export(args[0],args[1],do_transparency); } } private: diff --git a/source/visualization/ToolsSG/sources.cmake b/source/visualization/ToolsSG/sources.cmake index 6db54db861..a7da05e0eb 100644 --- a/source/visualization/ToolsSG/sources.cmake +++ b/source/visualization/ToolsSG/sources.cmake @@ -5,13 +5,14 @@ geant4_add_module(G4ToolsSG G4ToolsSGNode.hh G4ToolsSGSceneHandler.hh G4ToolsSGViewer.hh + G4ToolsSGOffscreen.hh + G4ToolsSGOffscreenViewer.hh SOURCES - G4ToolsSGSceneHandler.cc) + G4ToolsSGSceneHandler.cc + G4ToolsSGOffscreen.cc) geant4_module_link_libraries(G4ToolsSG PUBLIC - G4UIbasic - G4UIcommon G4intercoms G4modeling G4vis_management @@ -35,6 +36,18 @@ endif() if(GEANT4_USE_TOOLSSG_XT_GLES) geant4_module_sources(G4ToolsSG PUBLIC_HEADERS G4ToolsSGXtGLES.hh SOURCES G4ToolsSGXtGLES.cc) geant4_module_compile_definitions(G4ToolsSG PRIVATE TOOLS_USE_GL_GL_H) + + # A minor hack around a likely issue in geant4_module_link_libraries + # When Qt is activated, G4UIcommon is a public dependency. CMake will deduplicate + # this (in favour of PUBLIC at final library link time, but geant4_module_link_libraries + # does not do this internally yet (To be checked). We then get validation + # warnings on duplicated deps. NB: Also demonstrates awkward vis system of more than + # one driver per library... + if(GEANT4_USE_TOOLSSG_QT_GLES) + geant4_module_link_libraries(G4ToolsSG PUBLIC G4UIcommon) + else() + geant4_module_link_libraries(G4ToolsSG PRIVATE G4UIcommon) + endif() endif() # X11/Xt links if selected @@ -57,7 +70,15 @@ if(GEANT4_USE_TOOLSSG_QT_GLES) G4ToolsSGQtGLES.cc G4ToolsSGQtViewer.cc) - geant4_module_link_libraries(G4ToolsSG PUBLIC Qt${QT_VERSION_MAJOR}::OpenGL Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::PrintSupport Qt${QT_VERSION_MAJOR}::Widgets OpenGL::GL) + geant4_module_link_libraries(G4ToolsSG + PUBLIC + Qt${QT_VERSION_MAJOR}::OpenGL + Qt${QT_VERSION_MAJOR}::Gui + Qt${QT_VERSION_MAJOR}::PrintSupport + Qt${QT_VERSION_MAJOR}::Widgets + OpenGL::GL + G4UIbasic + G4UIcommon) endif() # Windows sources if selected diff --git a/source/visualization/ToolsSG/src/G4ToolsSGOffscreen.cc b/source/visualization/ToolsSG/src/G4ToolsSGOffscreen.cc new file mode 100644 index 0000000000..fd6867d90f --- /dev/null +++ b/source/visualization/ToolsSG/src/G4ToolsSGOffscreen.cc @@ -0,0 +1,92 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// Guy Barrand 09th June 2022 + +#include "G4ToolsSGOffscreen.hh" + +#include "G4ToolsSGOffscreenViewer.hh" + +#include + +G4ToolsSGOffscreen::G4ToolsSGOffscreen(): +parent +("TOOLSSG_OFFSCREEN", + "TSG_OFFSCREEN", + "TOOLSSG_OFFSCREEN is a graphics driver based on the g4tools tools/sg scene graph logic where\n\ + the rendering is done by using various offscreen library as tools/sg/zb, gl2ps, png, jpeg.", + parent::threeDInteractive) +,fSGSession(nullptr) +{} + +G4ToolsSGOffscreen::~G4ToolsSGOffscreen() { + delete fSGSession; +} + +void G4ToolsSGOffscreen::Initialise() { + if(fSGSession) return; //done. + fSGSession = new tools::offscreen::session(G4cout); + if(!fSGSession->is_valid()) { + G4cerr << "G4ToolsSGOffscreen::Initialise : session::is_valid() failed." << G4endl; + delete fSGSession; + fSGSession = nullptr; + return; + } +} + +G4VSceneHandler* G4ToolsSGOffscreen::CreateSceneHandler(const G4String& a_name) { + G4VSceneHandler* pScene = new G4ToolsSGSceneHandler(*this,a_name); + return pScene; +} + +G4VViewer* G4ToolsSGOffscreen::CreateViewer(G4VSceneHandler& a_scene,const G4String& a_name) { + if(!fSGSession) Initialise(); + if(!fSGSession) return nullptr; + G4VViewer* pView = new G4ToolsSGOffscreenViewer(*fSGSession,(G4ToolsSGSceneHandler&)a_scene,a_name); + if (pView) { + if (pView->GetViewId() < 0) { + G4cerr << + "G4ToolsSGOffscreen::CreateViewer: ERROR flagged by negative" + " view id in G4ToolsSGViewer creation." + "\n Destroying view and returning null pointer." + << G4endl; + delete pView; + pView = nullptr; + } + } + if (!pView) { + G4cerr << + "G4ToolsSGOffscreen::CreateViewer: ERROR: null pointer on new G4ToolsSGViewer." + << G4endl; + } + return pView; +} + +G4bool G4ToolsSGOffscreen::IsUISessionCompatible () const +{ + //G4bool isCompatible = true; + //return isCompatible; + return true; +} diff --git a/source/visualization/ToolsSG/src/G4ToolsSGSceneHandler.cc b/source/visualization/ToolsSG/src/G4ToolsSGSceneHandler.cc index ef1291eac2..1ec8367739 100644 --- a/source/visualization/ToolsSG/src/G4ToolsSGSceneHandler.cc +++ b/source/visualization/ToolsSG/src/G4ToolsSGSceneHandler.cc @@ -174,7 +174,7 @@ tools::sg::separator* G4ToolsSGSceneHandler::GetOrCreateNode() size_t iDepth = 1; while (iDepth < depth) { const auto& children = node->children(); - const G4int nChildren = children.size(); + const G4int nChildren = (G4int)children.size(); G4int iChild = 0; G4ToolsSGNode* child = nullptr; for (; iChild < nChildren; ++iChild) { diff --git a/source/visualization/Tree/History b/source/visualization/Tree/History index ff963347ab..e9b8d819d6 100644 --- a/source/visualization/Tree/History +++ b/source/visualization/Tree/History @@ -4,6 +4,17 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! +-------------------------------------------------------------------- + +## 2022-11-06 John Allison (vistree-V11-00-02) +- Eliminate G4cerr and introduce G4warn. + - `#define G4warn G4cout` + - The above is temporary until a genuine G4warn output stream is + implemented. + - Change G4cerr to G4warn in all cases. + - Change G4cout to G4warn in those cases where it is clearly + an error report or a warning. + ## 2022-01-28 Ben Morgan (vistree-V11-00-01) - Replace `geant4_global_library_target` with direct file inclusion and call to `geant4_add_category` to define library build from source modules. diff --git a/source/visualization/Tree/src/G4ASCIITree.cc b/source/visualization/Tree/src/G4ASCIITree.cc index 8b50845f7c..a4981f7e5a 100644 --- a/source/visualization/Tree/src/G4ASCIITree.cc +++ b/source/visualization/Tree/src/G4ASCIITree.cc @@ -34,6 +34,8 @@ #include "G4ASCIITreeViewer.hh" #include "G4ASCIITreeMessenger.hh" +#define G4warn G4cout + G4ASCIITree::G4ASCIITree (): G4VTree ("ASCIITree", "ATree", @@ -61,7 +63,7 @@ G4VViewer* G4ASCIITree::CreateViewer (G4VSceneHandler& scene, new G4ASCIITreeViewer ((G4ASCIITreeSceneHandler&) scene, name); if (pView) { if (pView -> GetViewId () < 0) { - G4cout << "G4ASCIITree::CreateViewer: ERROR flagged by negative" + G4warn << "G4ASCIITree::CreateViewer: ERROR flagged by negative" " view id in G4ASCIITreeViewer creation." "\n Destroying view and returning null pointer." << G4endl; @@ -70,7 +72,7 @@ G4VViewer* G4ASCIITree::CreateViewer (G4VSceneHandler& scene, } } else { - G4cout << "G4ASCIITree::CreateViewer: ERROR: null pointer on" + G4warn << "G4ASCIITree::CreateViewer: ERROR: null pointer on" " new G4ASCIITreeViewer." << G4endl; } return pView; diff --git a/source/visualization/Tree/src/G4VTreeSceneHandler.cc b/source/visualization/Tree/src/G4VTreeSceneHandler.cc index 0a60866c2e..e820e0c7c6 100644 --- a/source/visualization/Tree/src/G4VTreeSceneHandler.cc +++ b/source/visualization/Tree/src/G4VTreeSceneHandler.cc @@ -37,6 +37,8 @@ #include "G4VPhysicalVolume.hh" #include "G4LogicalVolume.hh" +#define G4warn G4cout + G4int G4VTreeSceneHandler::fSceneIdCount = 0; // Counter for Tree scene handlers. @@ -100,7 +102,7 @@ void G4VTreeSceneHandler::PreAddSolid // G4PhysicalVolumeModel sends volumes as it encounters them, // i.e., mothers before daughters, in its descent of the // geometry tree. Error! - G4cerr << "ERROR: G4VTreeSceneHandler::PreAddSolid: Mother " + G4warn << "ERROR: G4VTreeSceneHandler::PreAddSolid: Mother " << ri->GetPhysicalVolume()->GetName() << ':' << ri->GetCopyNo() << " not previously encountered." diff --git a/source/visualization/VRML/History b/source/visualization/VRML/History index 0ae00a910b..8f3f17e362 100644 --- a/source/visualization/VRML/History +++ b/source/visualization/VRML/History @@ -1,8 +1,16 @@ # Category VRML History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-25 Gabriele Cosmo (VRML-V11-00-03) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. + +## 2022-09-03 Ben Morgan (VRML-V11-00-02) +- Remove unused header from G4hepgeometry to make module consistent. ## 2022-01-28 Ben Morgan (VRML-V11-00-01) - Replace `geant4_global_library_target` with direct file inclusion and diff --git a/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc b/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc index 8a045e45a1..67d307b525 100644 --- a/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc @@ -42,7 +42,6 @@ #include "G4VPhysicalVolume.hh" #include "G4LogicalVolume.hh" #include "G4VisManager.hh" -#include "G4Point3D.hh" #include "G4VisAttributes.hh" #include "G4VModel.hh" #include "G4Scene.hh" diff --git a/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc b/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc index 7e99cc191d..c44250c4b8 100644 --- a/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc +++ b/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc @@ -175,7 +175,7 @@ void G4VRML2SCENEHANDLER::AddPrimitive(const G4Polyline& polyline) fDest << "\t\t\t" << "point [" << "\n"; - G4int e, i; + std::size_t e, i; for(i = 0, e = polyline.size(); e; i++, e--) { G4Point3D point = polyline[i]; diff --git a/source/visualization/Vtk/History b/source/visualization/Vtk/History index c59bd2691a..6c868ef2b5 100644 --- a/source/visualization/Vtk/History +++ b/source/visualization/Vtk/History @@ -6,6 +6,18 @@ It must **not** be used as a substitute for writing good git commit messages! ------------------------------------------------------------------------------- +## 2022-11-25 Gabriele Cosmo (visVtk-V11-00-07) +- Fixed compilation warning for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-14 I. Hrivnacova (visVtk-V11-00-06) +- Replaced reinterpret_cast with static_cast where possible + +## 2022-10-10 Igor Semeniouk (visVtk-V11-00-05) +- G4VtkViewer.hh : replaced sprintf by snprintf. + +## 2022-09-06 Ben Morgan (visVtk-V11-00-04) +- Resolve inconsistencies in module dependencies + ## 2022-03-22 Ben Morgan (visVtk-V11-00-03) - Use geant4_module_sources to add optional sources - Move setting of G4VIS_USE_VTK_QT flag on G4UIcommon module to that module's diff --git a/source/visualization/Vtk/include/G4VtkViewer.hh b/source/visualization/Vtk/include/G4VtkViewer.hh index ba770c1a89..b8290fa532 100644 --- a/source/visualization/Vtk/include/G4VtkViewer.hh +++ b/source/visualization/Vtk/include/G4VtkViewer.hh @@ -69,7 +69,7 @@ public: } virtual void Execute(vtkObject *caller, unsigned long, void*) { - vtkRenderer *ren = reinterpret_cast(caller); + vtkRenderer *ren = static_cast(caller); vtkCamera *cam = ren->GetActiveCamera(); //G4cout << cam->GetFocalPoint()[0] << " " << cam->GetFocalPoint()[1] << " " << cam->GetFocalPoint()[2] << G4endl; // @@ -114,7 +114,7 @@ public: virtual void Execute(vtkObject *caller, unsigned long, void*) { - vtkRenderer *ren = reinterpret_cast(caller); + vtkRenderer *ren = static_cast(caller); int nActors = ren->GetActors()->GetNumberOfItems(); vtkCamera *cam = ren->GetActiveCamera(); if(!cam) return; @@ -136,7 +136,8 @@ public: float fps = 1.0/tdiff.count(); // String for display - sprintf(this->TextBuff,"camera position : %.1f %.1f %.1f \n" + snprintf(this->TextBuff,sizeof this->TextBuff, + "camera position : %.1f %.1f %.1f \n" "camera focal point : %.1f %.1f %.1f \n" "view angle : %.1f\n" "distance : %.1f\n" diff --git a/source/visualization/Vtk/sources.cmake b/source/visualization/Vtk/sources.cmake index 3bcaf4df4f..8bab9c9b27 100644 --- a/source/visualization/Vtk/sources.cmake +++ b/source/visualization/Vtk/sources.cmake @@ -16,15 +16,16 @@ geant4_add_module(G4visVtk geant4_module_link_libraries(G4visVtk PUBLIC - G4modeling - G4globman - G4hepgeometry + G4intercoms G4vis_management ${VTK_LIBRARIES} PRIVATE + G4csg + G4geometrymng + G4globman G4graphics_reps - G4UIbasic - G4UIcommon) + G4materials + G4modeling) # - VTK-Qt if Qt enabled if(GEANT4_USE_QT) @@ -37,5 +38,7 @@ if(GEANT4_USE_QT) G4VtkQt.cc G4VtkQtSceneHandler.cc G4VtkQtViewer.cc) + + geant4_module_link_libraries(G4visVtk PRIVATE G4UIbasic G4UIcommon) endif() diff --git a/source/visualization/Vtk/src/vtkTensorGlyphColor.cxx b/source/visualization/Vtk/src/vtkTensorGlyphColor.cxx index 7a5e71d3a8..b0a0a0f7db 100644 --- a/source/visualization/Vtk/src/vtkTensorGlyphColor.cxx +++ b/source/visualization/Vtk/src/vtkTensorGlyphColor.cxx @@ -244,7 +244,7 @@ int vtkTensorGlyphColor::RequestData( { cell = this->GetSource()->GetCell(cellId); cellPts = cell->GetPointIds(); - npts = cellPts->GetNumberOfIds(); + npts = (int)cellPts->GetNumberOfIds(); for (dir=0; dir < numDirs; dir++) { // This variable may be removed, but that diff --git a/source/visualization/externals/CMakeLists.txt b/source/visualization/externals/CMakeLists.txt deleted file mode 100644 index 8f9a968f35..0000000000 --- a/source/visualization/externals/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -# - gl2ps only needed if OGL drivers enabled -if(GEANT4_USE_OPENGL OR GEANT4_USE_INVENTOR) - add_subdirectory(gl2ps) -endif() diff --git a/source/visualization/externals/GNUmakefile b/source/visualization/externals/GNUmakefile deleted file mode 100644 index 4adf68fe88..0000000000 --- a/source/visualization/externals/GNUmakefile +++ /dev/null @@ -1,5 +0,0 @@ -# -------------------------------------------------------------- -# GNUmakefile for externals library. -# -------------------------------------------------------------- - -include $(G4INSTALL)/config/globlib.gmk diff --git a/source/visualization/externals/History b/source/visualization/externals/History deleted file mode 100644 index ff20521219..0000000000 --- a/source/visualization/externals/History +++ /dev/null @@ -1,51 +0,0 @@ -# Category visexternals History - -See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! - - -## 2022-02-01 John Allison (visexternals-V11-00-01) -- gl2ps.cc: Fix Coverity warnings. - -## 2021-12-10 Ben Morgan (visexternals-V11-00-00) -- Change to new Markdown History format - ---- - -# History entries prior to 11.0 - -18 August 2021 Laurent Garnier (visexternals-V10-07-04) -- Fix issues with GL lib when building X11 AND Qt. GL libs should be include only once - -18 August 2021 Laurent Garnier (visexternals-V10-07-03) -- Fix issues in PDF generation due to remplacement by DBL_MAX introduced in visexternals-V10-07-02 - -06 August 2021 Laurent Garnier (visexternals-V10-07-02) -- Migrate gl2ps to 1.4.2 -- Patch lines: - 4452-4495-4520: Replace ~1UL by DBL_MAX - 4133: Add break statement - -14 April 2021 Ben Morgan (visexternals-V10-07-01) -- Migrate gl2ps build to modular CMake system - -05 March 20201 John Allison (visexternals-V10-07-00) -- gl2ps.h: Allow use of non-APPLE OpenGL on APPLE. - o To use this, build with cpp macro GL2PS_USE_GL_GL_H. - -01 July 2020 John Allison (visexternals-V10-06-01) -- gl2ps.cc: Fix Coverity warning. - -12th December 2019 Ben Morgan (visexternals-V10-06-00) -- visexternalgl2ps-V10-06-00: Remove no longer required dependence on OpenGLU - -20 February 2019 Ben Morgan (visexternals-V10-05-00) -- visexternalgl2ps-V10-05-00: Add include path for generated G4GlobalConfig.hh - -28 May 2018 Gabriele Cosmo (visexternals-V10-04-01) -- visexternalgl2ps-V10-04-01: Corrected GNUmakefile, now requiring dependency - on global module. - -26 May 2018 John Allison (visexternals-V10-04-00) -- visexternalgl2ps-V10-04-00: Fix gcc-8 warnings. diff --git a/source/visualization/externals/gl2ps/CMakeLists.txt b/source/visualization/externals/gl2ps/CMakeLists.txt deleted file mode 100644 index 38d94ae963..0000000000 --- a/source/visualization/externals/gl2ps/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -# - G4gl2ps category build -include(sources.cmake) -geant4_add_category(G4gl2ps MODULES G4gl2ps) diff --git a/source/visualization/externals/gl2ps/GNUmakefile b/source/visualization/externals/gl2ps/GNUmakefile deleted file mode 100644 index 2ca3032fbf..0000000000 --- a/source/visualization/externals/gl2ps/GNUmakefile +++ /dev/null @@ -1,31 +0,0 @@ -# ------------------------------------------------------------- -# GNUmakefile for gl2ps. Laurent Garnier, 6/2/09. - -name := G4gl2ps - -# For debug mode -# CPPFLAGS += -DG4DEBUG_VIS_GL2PS - -ifndef G4INSTALL - G4INSTALL = ../../../.. -endif - -ifdef G4LIB_BUILD_ZLIB - GLOBLIBS = libG4zlib.lib -endif - -include $(G4INSTALL)/config/architecture.gmk -include $(G4INSTALL)/config/G4VIS_BUILD.gmk -include $(G4INSTALL)/config/interactivity.gmk - -# NO need QT, then reset QTGLAGS -QTFLAGS = -QTLIBS = -GLQTLIBS = - -CPPFLAGS += -I$(G4BASE)/global/management/include -ifdef G4LIB_BUILD_ZLIB - CPPFLAGS += -I$(G4BASE)/externals/zlib/include -endif - -include $(G4INSTALL)/config/common.gmk diff --git a/source/visualization/externals/gl2ps/History b/source/visualization/externals/gl2ps/History deleted file mode 100644 index 19d6badd68..0000000000 --- a/source/visualization/externals/gl2ps/History +++ /dev/null @@ -1,212 +0,0 @@ -# Category visexternalsgl2ps History - -See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! - -## 2022-01-28 Ben Morgan (visexternalsgl2ps-V11-00-01)) -- Replace `geant4_global_library_target` with direct file inclusion and - call to `geant4_add_category` to define library build from source modules. - -## 2021-12-10 Ben Morgan (visexternalsgl2ps-V11-00-00) -- Change to new Markdown History format - ---- - -# History entries prior to 11.0 - -12 November 2021 Ben Morgan (visexternalsgl2ps-V10-07-01) -- Retire G4VIS_... preprocessor symbols in toolkit build, only required - by obsolete GNUmake system - -15 July 2021 Laurent Garnier (visexternalsgl2ps-V10-07-00) -- Migrate gl2ps to 1.4.2 - -23 September 2020 Ben Morgan (visexternalsgl2ps-V10-06-03) -- Remove remianing include_directories - -28 August 2020 Ben Morgan (visexternalsgl2ps-V10-06-02) -- Link to XQuartz GL when we are on macOS and building X11 drivers - -29 April 2020 Gunter Folger (visexternalgl2ps-V10-06-01) -- (trivial) fix for clang10. Affects src/gl2ps.cc - -12th December 2019 Ben Morgan (visexternalgl2ps-V10-06-00) -- Remove no longer required dependence on OpenGLU - -23rd October 2019 Ben Morgan (visexternalgl2ps-V10-05-03) -- Only link to imported targets for OpenGL -- Explicitly link to G4globman/G4global to use/propagate usage requirements. - -17 September 2019 Laurent Garnier (visexternalgl2ps-V10-05-02) -- gl2ps.cc: fix Continous warnings - -17 September 2019 Laurent Garnier (visexternalgl2ps-V10-05-01) -- gl2ps.cc gl2ps.h: Update library to 1.4.0 applying Geant4 patches - -20 February 2019 Ben Morgan (visexternalgl2ps-V10-05-00) -- Add include path for generated G4GlobalConfig.hh - -28 May 2018 Gabriele Cosmo (visexternalgl2ps-V10-04-01) -- Corrected GNUmakefile, now requiring dependency on global module. - -26 May 2018 John Allison (visexternalgl2ps-V10-04-00) -- Fix gcc-8 warnings. - -23rd May 2017 John Allison (visexternal-V10-03-00) -- Fix gcc-7.1 warning. - -6th November 2016 Laurent Garnier (visexternal-V10-02-03) -- Fix a CDash warning in gl2ps - -3 February 2015 John Allison (visexternal-V10-01-02) -- Corrected cast to GLint in G4OpenGLAction for compilation on Windows. - -19 December 2014 John Allison (visexternal-V10-01-01) -- Tagged. - -18 December 2014 Frederick Jones -- G4OpenGL2PSAction: added method setBufferSize() - -30th October 2014 Laurent Garnier (visexternal-V10-00-03) -- Tagged - -1st October 2014 Laurent Garnier -- Geant4_gl2ps : Minor change for OpenGL2 - -2nd July 2014 Laurent Garnier (visexternal-V10-00-02) -- Retagged - -2nd July 2014 Laurent Garnier (visexternal-V10-00-01) -- add setExportImageFormat(format) method -- change default options for generation gl2ps files - o allow transparency on volumes (for pdf) - -8th April 2014 Laurent Garnier (visexternal-V10-00-00) -- Fix a bad text in G4OpenGL2PSAction - -20th Sept 2013 Laurent Garnier -- add #ifdef statement in in gl2ps.h to prevent having gl2ps AND Wt driver - -3rd June 2013 John Allison (visexternal-V09-06-04) -- G4OpenGL2PSAction.cc: One more try at compiling on Windows
 - o Added brackets to prevent possible macro expansion of "max": - fBufferSizeLimit = (std::numeric_limits::max)(); - -2nd June 2013 John Allison (visexternal-V09-06-03) -- G4OpenGL2PSAction.cc: Added #include and . - -30th May 2013 John Allison (visexternal-V09-06-02) -- G4OpenGL2PSAction.cc: Added #include . - -22nd May 2013 Laurent Garnier -- sources.cmake: Add missing include for "global/management" -- G4OpenGL2PSAction.cc : - o Fix another memory leak for aFileName, perhaps the same as - bugzilla #1469 ? It happens on big scenes when extendBufferSize was called. - o replace the use of INT_MAX by std::numeric_limits::max() - -21st May 2013 Laurent Garnier -- G4OpenGL2PSAction.cc : Replace "limits.h" by "global.hh" - -17th May 2013 Laurent Garnier -- G4OpenGL2PSAction.cc : Try to fix bugzilla #1469 - replace the flushing output by a immediate I/O File : - setvbuf ( fFile , NULL , _IONBF , 2048 ); - -26th March 2013 Ben Morgan (visexternal-V09-06-01) -- source.cmake : Update include paths/library links to use new ZLIB - variables for transparent use of internal/external zlib. - -21st October 2013 Gabriele Cosmo (visexternal-V09-06-00) -- Moved G4zlib package to source/externals; updated configuration - accordingly. - -26th October 2012 Laurent Garnier (visexternal-V09-04-04 and visexternal-V09-04-05) -- gl2ps.cc : Remove create date in eps files (very useful to be able to compare them) - -10th November 2011 Laurent Garnier (visexternal-V09-04-03) -- G4OpenGL2PSAction : Back to old buffer size (cause sometime problems - on Qt viewer) - -9th November 2011 Laurent Garnier -- G4OpenGL2PSAction : Best control on G4gl2psBeginPage - -21st October 2011 John Allison (visexternal-V09-04-02) -- Tagged. - -21th October 2011 Laurent Garnier -- G4OpenGL2PSAction : Reset fFile after use, force wb writing - -20th October 2011 L.Garnier -- Add methods to extend buffer size up to a limit if needed - -27th January 2011 L.Garnier -- Restored GNUmakefile and fix the bug introduce the 23th december - -26th January 2011 Gabriele Cosmo (visexternal-V09-04-01) -- Restored GNUmakefile as it was in tag "visexternal-V09-03-03", as it - breaks compilation ! - -27th December 2010 John Allison (visexternal-V09-04-00) -- Tagged. - -23, December L. Garnier -- GNUmakefile : Remove Qt stuff from Makefile - -13th November 2010, John Allison (visexternal-V09-03-03) -- Geant4_gl2ps.h: Added #ifdef _WIN32, #define _USE_MATH_DEFINE. - -5th November 2010, John Allison (visexternal-V09-03-02) -- Fixed Linux warnings. - -5th November 2010, John Allison (visexternal-V09-03-01) -- Tagged. - -3rd November 2010, Laurent Garnier -- Update gl2ps to 1.3.5 (before it was 1.3.3) - -6th October 2010, John Allison (visexternal-V09-03-00) -- Tagged. - -26th April 2010, Laurent Garnier - - G4OpenGL2PSAction : add new method to set viewport - -18 Nov 2009, Gabriele Cosmo (visexternal-V09-02-06) - - Added GLOBLIBS dependencies to GNUmakefile to allow for building - DLLs on Windows. Removed redundant CPPFLAGS addition. - - Re-instated fix to gl2ps.cc. - -17 Nov 2009, John Allison, Gabriele Cosmo (visexternal-V09-02-05) - - Added dependency on zlib if G4LIB_BUILD_ZLIB is set and corrected - inclusion of zlib.h in gl2ps.cc - -2 Nov 2009, Laurent Garnier - - Add debug flag in GNUMakefile - -29 April 2009, Laurent Garnier (visexternal-V09-02-04) - - G4OpenGL2PSAction : Fix a circular dependency to G4OpenGL on Linux - -27 April 2009, Laurent Garnier (visexternal-V09-02-03) - - gl2ps/src/gl2ps.cc : Fix some warnings on Linux - -8 April 2009, Laurent Garnier - - gl2ps/include/G4OpenGL2PSAction.hh : Add missing header methods(forgot - in visexternal-V09-02-02 tag - - gl2ps/include/G4OpenGL2PSAction.hh : Add cvsID at head of file - -6 April 2009, Laurent Garnier (visexternal-V09-02-02) - - Adjustments to point and line size - -19 March 2009, Laurent Garnier (visexternal-V09-02-01) - - Add methods to change GL_Point and GL_Line size - -4 March 2009, Laurent Garnier - - Update gl2ps to 1.3.3 version (before it was 0.8) - -16 February 2009, Laurent Garnier - - Creation of this library in order to have a gl2ps for all viewers. - - Copying gl2ps.cc and gl2ps.h files form OpenInventor/src - - Add a new file G4OpenGL2PSAction.cc to be on the top of gl2ps - external package. This file will be heritate/used by viewers - in order to have gl2ps render. diff --git a/source/visualization/externals/gl2ps/include/Geant4_gl2ps.h b/source/visualization/externals/gl2ps/include/Geant4_gl2ps.h deleted file mode 100644 index b9a8fdfa2a..0000000000 --- a/source/visualization/externals/gl2ps/include/Geant4_gl2ps.h +++ /dev/null @@ -1,240 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -#ifndef Geant4_gl2ps_h -#define Geant4_gl2ps_h - -// gl2ps-1.3.5 -// The gl2ps code is prefixed by Geant4_ in order -// to avoid clashes with other gl2ps code that may come at link -// time from other channels. - -#define gl2psBeginPage Geant4_gl2psBeginPage -#define gl2psEndPage Geant4_gl2psEndPage -#define gl2psText Geant4_gl2psText -#define gl2psEnable Geant4_gl2psEnable -#define gl2psDisable Geant4_gl2psDisable -#define gl2psPointSize Geant4_gl2psPointSize -#define gl2psLineWidth Geant4_gl2psLineWidth -#define gl2psDrawPixels Geant4_gl2psDrawPixels -#define gl2psBeginViewport Geant4_gl2psBeginViewport -#define gl2psEndViewport Geant4_gl2psEndViewport -#define gl2psTextOpt Geant4_gl2psTextOpt -#define gl2psSetOptions Geant4_gl2psSetOptions -#define gl2psGetOptions Geant4_gl2psGetOptions -#define gl2psSpecial Geant4_gl2psSpecial -#define gl2psBlendFunc Geant4_gl2psBlendFunc -#define gl2psDrawImageMap Geant4_gl2psDrawImageMap -#define gl2psGetFileExtension Geant4_gl2psGetFileExtension -#define gl2psGetFormatDescription Geant4_gl2psGetFormatDescription - -#define gl2psMsg Geant4_gl2psMsg -#define gl2psMalloc Geant4_gl2psMalloc -#define gl2psRealloc Geant4_gl2psRealloc -#define gl2psFree Geant4_gl2psFree -#define gl2psWriteBigEndian Geant4_gl2psWriteBigEndian -#define gl2psSetupCompress Geant4_gl2psSetupCompress -#define gl2psFreeCompress Geant4_gl2psFreeCompress -#define gl2psAllocCompress Geant4_gl2psAllocCompress -#define gl2psReallocCompress Geant4_gl2psReallocCompress -#define gl2psWriteBigEndianCompress Geant4_gl2psWriteBigEndianCompress -#define gl2psDeflate Geant4_gl2psDeflate -#define gl2psPrintf Geant4_gl2psPrintf -#define gl2psPrintGzipHeader Geant4_gl2psPrintGzipHeader -#define gl2psPrintGzipFooter Geant4_gl2psPrintGzipFooter -#define gl2psListReset Geant4_gl2psListReset -#define gl2psListRealloc Geant4_gl2psListRealloc -#define gl2psListCreate Geant4_gl2psListCreate -#define gl2psListDelete Geant4_gl2psListDelete -#define gl2psListAdd Geant4_gl2psListAdd -#define gl2psListNbr Geant4_gl2psListNbr -#define gl2psListPointer Geant4_gl2psListPointer -#define gl2psListSort Geant4_gl2psListSort -#define gl2psListAction Geant4_gl2psListAction -#define gl2psListActionInverse Geant4_gl2psListActionInverse -#define gl2psListRead Geant4_gl2psListRead -#define gl2psEncodeBase64Block Geant4_gl2psEncodeBase64Block -#define gl2psListEncodeBase64 Geant4_gl2psListEncodeBase64 -#define gl2psSameColor Geant4_gl2psSameColor -#define gl2psVertsSameColor Geant4_gl2psVertsSameColor -#define gl2psSameColorThreshold Geant4_gl2psSameColorThreshold -#define gl2psSetLastColor Geant4_gl2psSetLastColor -#define gl2psGetRGB Geant4_gl2psGetRGB -#define gl2psCopyPixmap Geant4_gl2psCopyPixmap -#define gl2psFreePixmap Geant4_gl2psFreePixmap -#define gl2psUserWritePNG Geant4_gl2psUserWritePNG -#define gl2psUserFlushPNG Geant4_gl2psUserFlushPNG -#define gl2psConvertPixmapToPNG Geant4_gl2psConvertPixmapToPNG -#define gl2psAddText Geant4_gl2psAddText -#define gl2psCopyText Geant4_gl2psCopyText -#define gl2psFreeText Geant4_gl2psFreeText -#define gl2psSupportedBlendMode Geant4_gl2psSupportedBlendMode -#define gl2psAdaptVertexForBlending Geant4_gl2psAdaptVertexForBlending -#define gl2psAssignTriangleProperties Geant4_gl2psAssignTriangleProperties -#define gl2psFillTriangleFromPrimitive Geant4_gl2psFillTriangleFromPrimitive -#define gl2psInitTriangle Geant4_gl2psInitTriangle -#define gl2psCopyPrimitive Geant4_gl2psCopyPrimitive -#define gl2psSamePosition Geant4_gl2psSamePosition -#define gl2psComparePointPlane Geant4_gl2psComparePointPlane -#define gl2psPsca Geant4_gl2psPsca -#define gl2psPvec Geant4_gl2psPvec -#define gl2psNorm Geant4_gl2psNorm -#define gl2psGetNormal Geant4_gl2psGetNormal -#define gl2psGetPlane Geant4_gl2psGetPlane -#define gl2psCutEdge Geant4_gl2psCutEdge -#define gl2psCreateSplitPrimitive Geant4_gl2psCreateSplitPrimitive -#define gl2psAddIndex Geant4_gl2psAddIndex -#define gl2psGetIndex Geant4_gl2psGetIndex -#define gl2psTestSplitPrimitive Geant4_gl2psTestSplitPrimitive -#define gl2psSplitPrimitive Geant4_gl2psSplitPrimitive -#define gl2psDivideQuad Geant4_gl2psDivideQuad -#define gl2psCompareDepth Geant4_gl2psCompareDepth -#define gl2psTrianglesFirst Geant4_gl2psTrianglesFirst -#define gl2psFindRoot Geant4_gl2psFindRoot -#define gl2psFreeImagemap Geant4_gl2psFreeImagemap -#define gl2psFreePrimitive Geant4_gl2psFreePrimitive -#define gl2psAddPrimitiveInList Geant4_gl2psAddPrimitiveInList -#define gl2psFreeBspTree Geant4_gl2psFreeBspTree -#define gl2psGreater Geant4_gl2psGreater -#define gl2psLess Geant4_gl2psLess -#define gl2psBuildBspTree Geant4_gl2psBuildBspTree -#define gl2psTraverseBspTree Geant4_gl2psTraverseBspTree -#define gl2psRescaleAndOffset Geant4_gl2psRescaleAndOffset -#define gl2psGetPlaneFromPoints Geant4_gl2psGetPlaneFromPoints -#define gl2psFreeBspImageTree Geant4_gl2psFreeBspImageTree -#define gl2psCheckPoint Geant4_gl2psCheckPoint -#define gl2psAddPlanesInBspTreeImage Geant4_gl2psAddPlanesInBspTreeImage -#define gl2psCheckPrimitive Geant4_gl2psCheckPrimitive -#define gl2psCreateSplitPrimitive2D Geant4_gl2psCreateSplitPrimitive2D -#define gl2psSplitPrimitive2D Geant4_gl2psSplitPrimitive2D -#define gl2psAddInImageTree Geant4_gl2psAddInImageTree -#define gl2psAddInBspImageTree Geant4_gl2psAddInBspImageTree -#define gl2psAddBoundaryInList Geant4_gl2psAddBoundaryInList -#define gl2psBuildPolygonBoundary Geant4_gl2psBuildPolygonBoundary -#define gl2psAddPolyPrimitive Geant4_gl2psAddPolyPrimitive -#define gl2psGetVertex Geant4_gl2psGetVertex -#define gl2psParseFeedbackBuffer Geant4_gl2psParseFeedbackBuffer -#define gl2psWriteByte Geant4_gl2psWriteByte -#define gl2psPrintPostScriptPixmap Geant4_gl2psPrintPostScriptPixmap -#define gl2psPrintPostScriptImagemap Geant4_gl2psPrintPostScriptImagemap -#define gl2psPrintPostScriptHeader Geant4_gl2psPrintPostScriptHeader -#define gl2psPrintPostScriptColor Geant4_gl2psPrintPostScriptColor -#define gl2psResetPostScriptColor Geant4_gl2psResetPostScriptColor -#define gl2psEndPostScriptLine Geant4_gl2psEndPostScriptLine -#define gl2psParseStipplePattern Geant4_gl2psParseStipplePattern -#define gl2psPrintPostScriptDash Geant4_gl2psPrintPostScriptDash -#define gl2psPrintPostScriptPrimitive Geant4_gl2psPrintPostScriptPrimitive -#define gl2psPrintPostScriptFooter Geant4_gl2psPrintPostScriptFooter -#define gl2psPrintTeXHeader Geant4_gl2psPrintTeXHeader -#define gl2psPrintTeXPrimitive Geant4_gl2psPrintTeXPrimitive -#define gl2psPrintTeXFooter Geant4_gl2psPrintTeXFooter - -#define gl2psPrintPostScriptBeginViewport Geant4_gl2psPrintPostScriptBeginViewport -#define gl2psPrintPostScriptEndViewport Geant4_gl2psPrintPostScriptEndViewport - -#define gl2psPrintPostScriptFinalPrimitive Geant4_gl2psPrintPostScriptFinalPrimitive -#define gl2psPrintPrimitives Geant4_gl2psPrintPrimitives -#define gl2psPrintTeXBeginViewport Geant4_gl2psPrintTeXBeginViewport -#define gl2psPrintTeXEndViewport Geant4_gl2psPrintTeXEndViewport -#define gl2psPrintTeXFinalPrimitive Geant4_gl2psPrintTeXFinalPrimitive -#define gl2psPrintPDFCompressorType Geant4_gl2psPrintPDFCompressorType -#define gl2psPrintPDFStrokeColor Geant4_gl2psPrintPDFStrokeColor -#define gl2psPrintPDFFillColor Geant4_gl2psPrintPDFFillColor -#define gl2psPrintPDFLineWidth Geant4_gl2psPrintPDFLineWidth -#define gl2psPutPDFText Geant4_gl2psPutPDFText -#define gl2psPutPDFImage Geant4_gl2psPutPDFImage -#define gl2psPDFstacksInit Geant4_gl2psPDFstacksInit -#define gl2psPDFgroupObjectInit Geant4_gl2psPDFgroupObjectInit -#define gl2psPDFgroupListInit Geant4_gl2psPDFgroupListInit -#define gl2psSortOutTrianglePDFgroup Geant4_gl2psSortOutTrianglePDFgroup -#define gl2psPDFgroupListWriteMainStream Geant4_gl2psPDFgroupListWriteMainStream -#define gl2psPDFgroupListWriteGStateResources Geant4_gl2psPDFgroupListWriteGStateResources -#define gl2psPDFgroupListWriteShaderResources Geant4_gl2psPDFgroupListWriteShaderResources -#define gl2psPDFgroupListWriteXObjectResources Geant4_gl2psPDFgroupListWriteXObjectResources -#define gl2psPDFgroupListWriteFontResources Geant4_gl2psPDFgroupListWriteFontResources -#define gl2psPDFgroupListDelete Geant4_gl2psPDFgroupListDelete -#define gl2psPrintPDFInfo Geant4_gl2psPrintPDFInfo -#define gl2psPrintPDFCatalog Geant4_gl2psPrintPDFCatalog -#define gl2psPrintPDFPages Geant4_gl2psPrintPDFPages -#define gl2psOpenPDFDataStream Geant4_gl2psOpenPDFDataStream -#define gl2psOpenPDFDataStreamWritePreface Geant4_gl2psOpenPDFDataStreamWritePreface -#define gl2psPrintPDFHeader Geant4_gl2psPrintPDFHeader -#define gl2psPrintPDFPrimitive Geant4_gl2psPrintPDFPrimitive -#define gl2psClosePDFDataStream Geant4_gl2psClosePDFDataStream -#define gl2psPrintPDFDataStreamLength Geant4_gl2psPrintPDFDataStreamLength -#define gl2psPrintPDFOpenPage Geant4_gl2psPrintPDFOpenPage -#define gl2psPDFgroupListWriteVariableResources Geant4_gl2psPDFgroupListWriteVariableResources -#define gl2psPrintPDFGSObject Geant4_gl2psPrintPDFGSObject -#define gl2psPrintPDFShaderStreamDataCoord Geant4_gl2psPrintPDFShaderStreamDataCoord -#define gl2psPrintPDFShaderStreamDataRGB Geant4_gl2psPrintPDFShaderStreamDataRGB -#define gl2psPrintPDFShaderStreamDataAlpha Geant4_gl2psPrintPDFShaderStreamDataAlpha -#define gl2psPrintPDFShaderStreamData Geant4_gl2psPrintPDFShaderStreamData -#define gl2psPDFRectHull Geant4_gl2psPDFRectHull -#define gl2psPrintPDFShader Geant4_gl2psPrintPDFShader -#define gl2psPrintPDFShaderMask Geant4_gl2psPrintPDFShaderMask -#define gl2psPrintPDFShaderExtGS Geant4_gl2psPrintPDFShaderExtGS -#define gl2psPrintPDFShaderSimpleExtGS Geant4_gl2psPrintPDFShaderSimpleExtGS -#define gl2psPrintPDFPixmapStreamData Geant4_gl2psPrintPDFPixmapStreamData -#define gl2psPrintPDFPixmap Geant4_gl2psPrintPDFPixmap -#define gl2psPrintPDFText Geant4_gl2psPrintPDFText -#define gl2psPDFgroupListWriteObjects Geant4_gl2psPDFgroupListWriteObjects -#define gl2psPrintPDFFooter Geant4_gl2psPrintPDFFooter -#define gl2psPrintPDFBeginViewport Geant4_gl2psPrintPDFBeginViewport -#define gl2psPrintPDFEndViewport Geant4_gl2psPrintPDFEndViewport -#define gl2psPrintPDFFinalPrimitive Geant4_gl2psPrintPDFFinalPrimitive -#define gl2psSVGGetCoordsAndColors Geant4_gl2psSVGGetCoordsAndColors -#define gl2psSVGGetColorString Geant4_gl2psSVGGetColorString -#define gl2psPrintSVGHeader Geant4_gl2psPrintSVGHeader -#define gl2psPrintSVGSmoothTriangle Geant4_gl2psPrintSVGSmoothTriangle -#define gl2psPrintSVGDash Geant4_gl2psPrintSVGDash -#define gl2psEndSVGLine Geant4_gl2psEndSVGLine -#define gl2psPrintSVGPixmap Geant4_gl2psPrintSVGPixmap -#define gl2psPrintSVGPrimitive Geant4_gl2psPrintSVGPrimitive -#define gl2psPrintSVGFooter Geant4_gl2psPrintSVGFooter -#define gl2psPrintSVGBeginViewport Geant4_gl2psPrintSVGBeginViewport -#define gl2psPrintSVGEndViewport Geant4_gl2psPrintSVGEndViewport -#define gl2psPrintSVGFinalPrimitive Geant4_gl2psPrintSVGFinalPrimitive -#define gl2psPrintPGFColor Geant4_gl2psPrintPGFColor -#define gl2psPrintPGFHeader Geant4_gl2psPrintPGFHeader -#define gl2psPrintPGFDash Geant4_gl2psPrintPGFDash -#define gl2psPGFTextAlignment Geant4_gl2psPGFTextAlignment -#define gl2psPrintPGFPrimitive Geant4_gl2psPrintPGFPrimitive -#define gl2psPrintPGFFooter Geant4_gl2psPrintPGFFooter -#define gl2psPrintPGFBeginViewport Geant4_gl2psPrintPGFBeginViewport -#define gl2psPrintPGFEndViewport Geant4_gl2psPrintPGFEndViewport -#define gl2psPrintPGFFinalPrimitive Geant4_gl2psPrintPGFFinalPrimitive -#define gl2psComputeTightBoundingBox Geant4_gl2psComputeTightBoundingBox - -#define gl2ps Geant4_gl2ps - -#ifndef G4OPENGL_VERSION_2 -#include "gl2ps.h" -#endif - -#ifdef _WIN32 -#define _USE_MATH_DEFINES -#endif - -#endif diff --git a/source/visualization/externals/gl2ps/include/gl2ps.h b/source/visualization/externals/gl2ps/include/gl2ps.h deleted file mode 100644 index 87677f6584..0000000000 --- a/source/visualization/externals/gl2ps/include/gl2ps.h +++ /dev/null @@ -1,287 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -/* - * GL2PS, an OpenGL to PostScript Printing Library - * Copyright (C) 1999-2020 C. Geuzaine - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of either: - * - * a) the GNU Library General Public License as published by the Free - * Software Foundation, either version 2 of the License, or (at your - * option) any later version; or - * - * b) the GL2PS License as published by Christophe Geuzaine, either - * version 2 of the License, or (at your option) any later version. - * - * This program 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 either - * the GNU Library General Public License or the GL2PS License for - * more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library in the file named "COPYING.LGPL"; - * if not, write to the Free Software Foundation, Inc., 51 Franklin - * Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * You should have received a copy of the GL2PS License with this - * library in the file named "COPYING.GL2PS"; if not, I will be glad - * to provide one. - * - * For the latest info about gl2ps and a full list of contributors, - * see http://www.geuz.org/gl2ps/. - * - * Please report all bugs and problems to . - */ - -#ifndef GL2PS_H -#define GL2PS_H - -#include -#include - -/* Define GL2PSDLL at compile time to build a Windows DLL */ - -#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) -# if defined(_MSC_VER) -# pragma warning(disable:4115) -# pragma warning(disable:4127) -# pragma warning(disable:4996) -# endif -# if !defined(NOMINMAX) -# define NOMINMAX -# endif -# include -# undef NOMINMAX -# if defined(GL2PSDLL) -# if defined(GL2PSDLL_EXPORTS) -# define GL2PSDLL_API __declspec(dllexport) -# else -# define GL2PSDLL_API __declspec(dllimport) -# endif -# else -# define GL2PSDLL_API -# endif -#else -# define GL2PSDLL_API -#endif - -#if defined(__APPLE__) || defined(HAVE_OPENGL_GL_H) -# include -#else -# include -#endif - -/* Support for compressed PostScript/PDF/SVG and for embedded PNG - images in SVG */ - -#if defined(HAVE_ZLIB) || defined(HAVE_LIBZ) -# define GL2PS_HAVE_ZLIB -# if defined(HAVE_LIBPNG) || defined(HAVE_PNG) -# define GL2PS_HAVE_LIBPNG -# endif -#endif - -#if defined(HAVE_NO_VSNPRINTF) -# define GL2PS_HAVE_NO_VSNPRINTF -#endif - -/* Version number */ - -#define GL2PS_MAJOR_VERSION 1 -#define GL2PS_MINOR_VERSION 4 -#define GL2PS_PATCH_VERSION 2 -#define GL2PS_EXTRA_VERSION "" - -#define GL2PS_VERSION (GL2PS_MAJOR_VERSION + \ - 0.01 * GL2PS_MINOR_VERSION + \ - 0.0001 * GL2PS_PATCH_VERSION) - -#define GL2PS_COPYRIGHT "(C) 1999-2020 C. Geuzaine" - -/* Output file formats (the values and the ordering are important!) */ - -#define GL2PS_PS 0 -#define GL2PS_EPS 1 -#define GL2PS_TEX 2 -#define GL2PS_PDF 3 -#define GL2PS_SVG 4 -#define GL2PS_PGF 5 - -/* Sorting algorithms */ - -#define GL2PS_NO_SORT 1 -#define GL2PS_SIMPLE_SORT 2 -#define GL2PS_BSP_SORT 3 - -/* Message levels and error codes */ - -#define GL2PS_SUCCESS 0 -#define GL2PS_INFO 1 -#define GL2PS_WARNING 2 -#define GL2PS_ERROR 3 -#define GL2PS_NO_FEEDBACK 4 -#define GL2PS_OVERFLOW 5 -#define GL2PS_UNINITIALIZED 6 - -/* Options for gl2psBeginPage */ - -#define GL2PS_NONE 0 -#define GL2PS_DRAW_BACKGROUND (1<<0) -#define GL2PS_SIMPLE_LINE_OFFSET (1<<1) -#define GL2PS_SILENT (1<<2) -#define GL2PS_BEST_ROOT (1<<3) -#define GL2PS_OCCLUSION_CULL (1<<4) -#define GL2PS_NO_TEXT (1<<5) -#define GL2PS_LANDSCAPE (1<<6) -#define GL2PS_NO_PS3_SHADING (1<<7) -#define GL2PS_NO_PIXMAP (1<<8) -#define GL2PS_USE_CURRENT_VIEWPORT (1<<9) -#define GL2PS_COMPRESS (1<<10) -#define GL2PS_NO_BLENDING (1<<11) -#define GL2PS_TIGHT_BOUNDING_BOX (1<<12) -#define GL2PS_NO_OPENGL_CONTEXT (1<<13) -#define GL2PS_NO_TEX_FONTSIZE (1<<14) - -/* Arguments for gl2psEnable/gl2psDisable */ - -#define GL2PS_POLYGON_OFFSET_FILL 1 -#define GL2PS_POLYGON_BOUNDARY 2 -#define GL2PS_LINE_STIPPLE 3 -#define GL2PS_BLEND 4 - -/* Arguments for gl2psLineCap/Join */ - -#define GL2PS_LINE_CAP_BUTT 0 -#define GL2PS_LINE_CAP_ROUND 1 -#define GL2PS_LINE_CAP_SQUARE 2 - -#define GL2PS_LINE_JOIN_MITER 0 -#define GL2PS_LINE_JOIN_ROUND 1 -#define GL2PS_LINE_JOIN_BEVEL 2 - -/* Text alignment (o=raster position; default mode is BL): - +---+ +---+ +---+ +---+ +---+ +---+ +-o-+ o---+ +---o - | o | o | | o | | | | | | | | | | | | - +---+ +---+ +---+ +-o-+ o---+ +---o +---+ +---+ +---+ - C CL CR B BL BR T TL TR */ - -#define GL2PS_TEXT_C 1 -#define GL2PS_TEXT_CL 2 -#define GL2PS_TEXT_CR 3 -#define GL2PS_TEXT_B 4 -#define GL2PS_TEXT_BL 5 -#define GL2PS_TEXT_BR 6 -#define GL2PS_TEXT_T 7 -#define GL2PS_TEXT_TL 8 -#define GL2PS_TEXT_TR 9 - -typedef GLfloat GL2PSrgba[4]; -typedef GLfloat GL2PSxyz[3]; - -typedef struct { - GL2PSxyz xyz; - GL2PSrgba rgba; -} GL2PSvertex; - -/* Primitive types */ -#define GL2PS_NO_TYPE -1 -#define GL2PS_TEXT 1 -#define GL2PS_POINT 2 -#define GL2PS_LINE 3 -#define GL2PS_QUADRANGLE 4 -#define GL2PS_TRIANGLE 5 -#define GL2PS_PIXMAP 6 -#define GL2PS_IMAGEMAP 7 -#define GL2PS_IMAGEMAP_WRITTEN 8 -#define GL2PS_IMAGEMAP_VISIBLE 9 -#define GL2PS_SPECIAL 10 - -#if defined(__cplusplus) -extern "C" { -#endif - -GL2PSDLL_API GLint gl2psBeginPage(const char *title, const char *producer, - GLint viewport[4], GLint format, GLint sort, - GLint options, GLint colormode, - GLint colorsize, GL2PSrgba *colormap, - GLint nr, GLint ng, GLint nb, GLint buffersize, - FILE *stream, const char *filename); -GL2PSDLL_API GLint gl2psEndPage(void); -GL2PSDLL_API GLint gl2psSetOptions(GLint options); -GL2PSDLL_API GLint gl2psGetOptions(GLint *options); -GL2PSDLL_API GLint gl2psBeginViewport(GLint viewport[4]); -GL2PSDLL_API GLint gl2psEndViewport(void); -GL2PSDLL_API GLint gl2psText(const char *str, const char *fontname, - GLshort fontsize); -GL2PSDLL_API GLint gl2psTextOpt(const char *str, const char *fontname, - GLshort fontsize, GLint align, GLfloat angle); -GL2PSDLL_API GLint gl2psTextOptColor(const char *str, const char *fontname, - GLshort fontsize, GLint align, GLfloat angle, - GL2PSrgba color); -GL2PSDLL_API GLint gl2psTextOptColorBL(const char *str, const char *fontname, - GLshort fontsize, GLint align, GLfloat angle, - GL2PSrgba color, GLfloat blx, GLfloat bly); -GL2PSDLL_API GLint gl2psSpecial(GLint format, const char *str); -GL2PSDLL_API GLint gl2psSpecialColor(GLint format, const char *str, GL2PSrgba rgba); -GL2PSDLL_API GLint gl2psDrawPixels(GLsizei width, GLsizei height, - GLint xorig, GLint yorig, - GLenum format, GLenum type, const void *pixels); -GL2PSDLL_API GLint gl2psEnable(GLint mode); -GL2PSDLL_API GLint gl2psDisable(GLint mode); -GL2PSDLL_API GLint gl2psPointSize(GLfloat value); -GL2PSDLL_API GLint gl2psLineCap(GLint value); -GL2PSDLL_API GLint gl2psLineJoin(GLint value); -GL2PSDLL_API GLint gl2psLineWidth(GLfloat value); -GL2PSDLL_API GLint gl2psBlendFunc(GLenum sfactor, GLenum dfactor); -GL2PSDLL_API GLint gl2psSorting(GLint mode); - -/* referenced in the documentation, but not fully documented */ -GL2PSDLL_API GLint gl2psForceRasterPos(GL2PSvertex *vert); -GL2PSDLL_API void gl2psAddPolyPrimitive(GLshort type, GLshort numverts, - GL2PSvertex *verts, GLint offset, - GLfloat ofactor, GLfloat ounits, - GLushort pattern, GLint factor, - GLfloat width, GLint linecap, - GLint linejoin, char boundary); - -/* undocumented */ -GL2PSDLL_API GLint gl2psDrawImageMap(GLsizei width, GLsizei height, - const GLfloat position[3], - const unsigned char *imagemap); -GL2PSDLL_API const char *gl2psGetFileExtension(GLint format); -GL2PSDLL_API const char *gl2psGetFormatDescription(GLint format); -GL2PSDLL_API GLint gl2psGetFileFormat(); -GL2PSDLL_API GLint gl2psSetTexScaling(GLfloat scaling); - -#if defined(__cplusplus) -} -#endif - -#endif - diff --git a/source/visualization/externals/gl2ps/sources.cmake b/source/visualization/externals/gl2ps/sources.cmake deleted file mode 100644 index 725befbedc..0000000000 --- a/source/visualization/externals/gl2ps/sources.cmake +++ /dev/null @@ -1,26 +0,0 @@ -# - G4gl2ps module build definition - -# Link to appropriate GL library for the platform/drivers being built -set(G4GL2PS_GL_LIBRARIES OpenGL::GL) -if(APPLE AND (GEANT4_USE_OPENGL_X11 OR GEANT4_USE_INVENTOR_XT OR GEANT4_USE_XM)) - if(NOT GEANT4_USE_QT) - set(G4GL2PS_GL_LIBRARIES XQuartzGL::GL) - endif() -endif() - -# Define the Geant module -geant4_add_module(G4gl2ps - PUBLIC_HEADERS - G4OpenGL2PSAction.hh - Geant4_gl2ps.h - gl2ps.h - SOURCES - G4OpenGL2PSAction.cc - gl2ps.cc) - -geant4_module_link_libraries(G4gl2ps - PUBLIC - G4globman - ${ZLIB_LIBRARIES} - ${G4GL2PS_GL_LIBRARIES}) - diff --git a/source/visualization/externals/gl2ps/src/G4OpenGL2PSAction.cc b/source/visualization/externals/gl2ps/src/G4OpenGL2PSAction.cc deleted file mode 100644 index 8636fcbbaa..0000000000 --- a/source/visualization/externals/gl2ps/src/G4OpenGL2PSAction.cc +++ /dev/null @@ -1,200 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// -// -// - -#include "G4OpenGL2PSAction.hh" - -#include -#include -#include - -G4OpenGL2PSAction::G4OpenGL2PSAction( -) -////////////////////////////////////////////////////////////////////////////// -//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// -{ - fFile = 0; - fViewport[0] = 0; - fViewport[1] = 0; - fViewport[2] = 0; - fViewport[3] = 0; - fBufferSize = 2048; - fBufferSizeLimit = (std::numeric_limits::max)(); - fExportImageFormat = GL2PS_PDF; - resetBufferSizeParameters(); -} - -////////////////////////////////////////////////////////////////////////////// -void G4OpenGL2PSAction::resetBufferSizeParameters( -) -////////////////////////////////////////////////////////////////////////////// -//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// -{ - fBufferSize = 2048; -} - -////////////////////////////////////////////////////////////////////////////// -void G4OpenGL2PSAction::setLineWidth( - int width -) -////////////////////////////////////////////////////////////////////////////// -//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// -{ - gl2psLineWidth( width ); -} - -////////////////////////////////////////////////////////////////////////////// -void G4OpenGL2PSAction::setPointSize( - int size -) -////////////////////////////////////////////////////////////////////////////// -//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// -{ - gl2psPointSize( size ); -} - -////////////////////////////////////////////////////////////////////////////// -void G4OpenGL2PSAction::setViewport( -int a -,int b -,int winSizeX -,int winSizeY -) -////////////////////////////////////////////////////////////////////////////// -//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// -{ - fViewport[0] = a; - fViewport[1] = b; - fViewport[2] = winSizeX; - fViewport[3] = winSizeY; -} - -////////////////////////////////////////////////////////////////////////////// -void G4OpenGL2PSAction::setFileName( - const char* aFileName -) -////////////////////////////////////////////////////////////////////////////// -//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// -{ - fFileName = aFileName; -} -////////////////////////////////////////////////////////////////////////////// -bool G4OpenGL2PSAction::enableFileWriting( -) -////////////////////////////////////////////////////////////////////////////// -//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// -{ - fFile = ::fopen(fFileName,"wb"); - if(!fFile) { - return false; - } - - // No buffering for output file - setvbuf ( fFile , NULL , _IONBF , 2048 ); - return G4gl2psBegin(); -} -////////////////////////////////////////////////////////////////////////////// -bool G4OpenGL2PSAction::disableFileWriting( -) -////////////////////////////////////////////////////////////////////////////// -//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// -{ - int state = gl2psEndPage(); - ::fclose(fFile); - if (state == GL2PS_OVERFLOW) { - return false; - } - fFile = 0; - return true; -} -////////////////////////////////////////////////////////////////////////////// -bool G4OpenGL2PSAction::extendBufferSize( -) -////////////////////////////////////////////////////////////////////////////// -//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// -{ - // extend buffer size *2 - if (fBufferSize < (fBufferSizeLimit/2)) { - fBufferSize = fBufferSize*2; - return true; - } - return false; -} - - -// FWJ -void G4OpenGL2PSAction::setBufferSize(int newSize) -{ - fBufferSize = (newSize < int(fBufferSizeLimit)) - ? GLint(newSize) : fBufferSizeLimit; -} - - -bool G4OpenGL2PSAction::fileWritingEnabled( -) const -////////////////////////////////////////////////////////////////////////////// -//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// -{ - return (fFile?true:false); -} -////////////////////////////////////////////////////////////////////////////// -bool G4OpenGL2PSAction::G4gl2psBegin( -) -////////////////////////////////////////////////////////////////////////////// -//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// -{ - if(!fFile) return false; - int options = - GL2PS_BEST_ROOT | GL2PS_DRAW_BACKGROUND |GL2PS_USE_CURRENT_VIEWPORT; - int sort = GL2PS_BSP_SORT; - - glGetIntegerv(GL_VIEWPORT,fViewport); - GLint res = gl2psBeginPage("Geant4 output","Geant4", - fViewport, - fExportImageFormat, - sort, - options, - GL_RGBA,0, NULL,0,0,0, - fBufferSize, - fFile,fFileName.c_str()); - if (res == GL2PS_ERROR) { - return false; - } - // enable blending for all - gl2psEnable(GL2PS_BLEND); - - return true; -} - -void G4OpenGL2PSAction::setExportImageFormat(unsigned int type){ - if(!fFile) { - fExportImageFormat = type; - } else { - // Could not change the file type at this step. Please change it before enableFileWriting() - } -} diff --git a/source/visualization/externals/gl2ps/src/gl2ps.cc b/source/visualization/externals/gl2ps/src/gl2ps.cc deleted file mode 100644 index 6144bd6213..0000000000 --- a/source/visualization/externals/gl2ps/src/gl2ps.cc +++ /dev/null @@ -1,6645 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// - -/* - * GL2PS, an OpenGL to PostScript Printing Library - * Copyright (C) 1999-2020 C. Geuzaine - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of either: - * - * a) the GNU Library General Public License as published by the Free - * Software Foundation, either version 2 of the License, or (at your - * option) any later version; or - * - * b) the GL2PS License as published by Christophe Geuzaine, either - * version 2 of the License, or (at your option) any later version. - * - * This program 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 either - * the GNU Library General Public License or the GL2PS License for - * more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library in the file named "COPYING.LGPL"; - * if not, write to the Free Software Foundation, Inc., 51 Franklin - * Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * You should have received a copy of the GL2PS License with this - * library in the file named "COPYING.GL2PS"; if not, I will be glad - * to provide one. - * - * For the latest info about gl2ps and a full list of contributors, - * see http://www.geuz.org/gl2ps/. - * - * Please report all bugs and problems to . - */ - -#include "Geant4_gl2ps.h" - -#include -#include -#include -#include -#include -#include -#include - -#if defined(GL2PS_HAVE_ZLIB) -#include -#endif - -#if defined(GL2PS_HAVE_LIBPNG) -#include -#endif - -/********************************************************************* - * - * Private definitions, data structures and prototypes - * - *********************************************************************/ - -/* Magic numbers (assuming that the order of magnitude of window - coordinates is 10^3) */ - -#define GL2PS_EPSILON 5.0e-3F -#define GL2PS_ZSCALE 1000.0F -#define GL2PS_ZOFFSET 5.0e-2F -#define GL2PS_ZOFFSET_LARGE 20.0F -#define GL2PS_ZERO(arg) (std::fabs(arg) < 1.e-20) - -/* BSP tree primitive comparison */ - -#define GL2PS_COINCIDENT 1 -#define GL2PS_IN_FRONT_OF 2 -#define GL2PS_IN_BACK_OF 3 -#define GL2PS_SPANNING 4 - -/* 2D BSP tree primitive comparison */ - -#define GL2PS_POINT_COINCIDENT 0 -#define GL2PS_POINT_INFRONT 1 -#define GL2PS_POINT_BACK 2 - -/* Internal feedback buffer pass-through tokens */ - -#define GL2PS_BEGIN_OFFSET_TOKEN 1 -#define GL2PS_END_OFFSET_TOKEN 2 -#define GL2PS_BEGIN_BOUNDARY_TOKEN 3 -#define GL2PS_END_BOUNDARY_TOKEN 4 -#define GL2PS_BEGIN_STIPPLE_TOKEN 5 -#define GL2PS_END_STIPPLE_TOKEN 6 -#define GL2PS_POINT_SIZE_TOKEN 7 -#define GL2PS_LINE_CAP_TOKEN 8 -#define GL2PS_LINE_JOIN_TOKEN 9 -#define GL2PS_LINE_WIDTH_TOKEN 10 -#define GL2PS_BEGIN_BLEND_TOKEN 11 -#define GL2PS_END_BLEND_TOKEN 12 -#define GL2PS_SRC_BLEND_TOKEN 13 -#define GL2PS_DST_BLEND_TOKEN 14 -#define GL2PS_IMAGEMAP_TOKEN 15 -#define GL2PS_DRAW_PIXELS_TOKEN 16 -#define GL2PS_TEXT_TOKEN 17 - -typedef enum { - T_UNDEFINED = -1, - T_CONST_COLOR = 1, - T_VAR_COLOR = 1<<1, - T_ALPHA_1 = 1<<2, - T_ALPHA_LESS_1 = 1<<3, - T_VAR_ALPHA = 1<<4 -} GL2PS_TRIANGLE_PROPERTY; - -typedef GLfloat GL2PSplane[4]; - -typedef struct GL2PSbsptree2d_ GL2PSbsptree2d; - -struct GL2PSbsptree2d_ { - GL2PSplane plane; - GL2PSbsptree2d *front, *back; -}; - -typedef struct { - GLint nmax, size, incr, n; - char *array; -} GL2PSlist; - -typedef struct GL2PSbsptree_ GL2PSbsptree; - -struct GL2PSbsptree_ { - GL2PSplane plane; - GL2PSlist *primitives; - GL2PSbsptree *front, *back; -}; - -typedef struct { - GL2PSvertex vertex[3]; - int prop; -} GL2PStriangle; - -typedef struct { - GLshort fontsize; - char *str, *fontname; - /* Note: for a 'special' string, 'alignment' holds the format - (PostScript, PDF, etc.) of the special string */ - GLint alignment; - GLfloat angle; -} GL2PSstring; - -typedef struct { - GLsizei width, height; - /* Note: for an imagemap, 'type' indicates if it has already been - written to the file or not, and 'format' indicates if it is - visible or not */ - GLenum format, type; - GLfloat zoom_x, zoom_y; - GLfloat *pixels; -} GL2PSimage; - -typedef struct GL2PSimagemap_ GL2PSimagemap; - -struct GL2PSimagemap_ { - GL2PSimage *image; - GL2PSimagemap *next; -}; - -typedef struct { - GLshort type, numverts; - GLushort pattern; - char boundary, offset, culled; - GLint factor, linecap, linejoin, sortid; - GLfloat width, ofactor, ounits; - GL2PSvertex *verts; - union { - GL2PSstring *text; - GL2PSimage *image; - } data; -} GL2PSprimitive; - -typedef struct { -#if defined(GL2PS_HAVE_ZLIB) - Bytef *dest, *src, *start; - uLongf destLen, srcLen; -#else - int dummy; -#endif -} GL2PScompress; - -typedef struct{ - GL2PSlist* ptrlist; - int gsno, fontno, imno, shno, maskshno, trgroupno; - int gsobjno, fontobjno, imobjno, shobjno, maskshobjno, trgroupobjno; -} GL2PSpdfgroup; - -typedef struct { - /* General */ - GLint format, sort, options, colorsize, colormode, buffersize; - GLint lastlinecap, lastlinejoin; - char *title, *producer, *filename; - GLboolean boundary, blending; - GLfloat *feedback, lastlinewidth; - GLint viewport[4], blendfunc[2], lastfactor; - GL2PSrgba *colormap, lastrgba, threshold, bgcolor; - GLushort lastpattern; - GL2PSvertex lastvertex; - GL2PSlist *primitives, *auxprimitives; - FILE *stream; - GL2PScompress *compress; - GLboolean header; - GL2PSvertex rasterpos; - GLboolean forcerasterpos; - - /* BSP-specific */ - GLint maxbestroot; - - /* Occlusion culling-specific */ - GLboolean zerosurfacearea; - GL2PSbsptree2d *imagetree; - GL2PSprimitive *primitivetoadd; - - /* PDF-specific */ - int streamlength; - GL2PSlist *pdfprimlist, *pdfgrouplist; - int *xreflist; - int objects_stack; /* available objects */ - int extgs_stack; /* graphics state object number */ - int font_stack; /* font object number */ - int im_stack; /* image object number */ - int trgroupobjects_stack; /* xobject numbers */ - int shader_stack; /* shader object numbers */ - int mshader_stack; /* mask shader object numbers */ - - /* for image map list */ - GL2PSimagemap *imagemap_head; - GL2PSimagemap *imagemap_tail; - - /* for TEX scaling */ - GLfloat tex_scaling; -} GL2PScontext; - -typedef struct { - void (*printHeader)(void); - void (*printFooter)(void); - void (*beginViewport)(GLint viewport[4]); - GLint (*endViewport)(void); - void (*printPrimitive)(void *data); - void (*printFinalPrimitive)(void); - const char *file_extension; - const char *description; -} GL2PSbackend; - -/* The gl2ps context. gl2ps is not thread safe (we should create a - local GL2PScontext during gl2psBeginPage) */ - -static GL2PScontext *gl2ps = NULL; - -/* Need to forward-declare this one */ - -static GLint gl2psPrintPrimitives(void); - -/********************************************************************* - * - * Utility routines - * - *********************************************************************/ - -static void gl2psMsg(GLint level, const char *fmt, ...) -{ - va_list args; - - if(!(gl2ps->options & GL2PS_SILENT)){ - switch(level){ - case GL2PS_INFO : fprintf(stderr, "GL2PS info: "); break; - case GL2PS_WARNING : fprintf(stderr, "GL2PS warning: "); break; - case GL2PS_ERROR : fprintf(stderr, "GL2PS error: "); break; - } - va_start(args, fmt); - vfprintf(stderr, fmt, args); - va_end(args); - fprintf(stderr, "\n"); - } - /* if(level == GL2PS_ERROR) exit(1); */ -} - -static void *gl2psMalloc(size_t size) -{ - void *ptr; - - if(!size) return NULL; - ptr = malloc(size); - if(!ptr){ - gl2psMsg(GL2PS_ERROR, "Couldn't allocate requested memory"); - return NULL; - } - return ptr; -} - -static void *gl2psRealloc(void *ptr, size_t size) -{ - void *orig = ptr; - if(!size) return NULL; - ptr = realloc(orig, size); - if(!ptr){ - gl2psMsg(GL2PS_ERROR, "Couldn't reallocate requested memory"); - free(orig); - return NULL; - } - return ptr; -} - -static void gl2psFree(void *ptr) -{ - if(!ptr) return; - free(ptr); -} - -static int gl2psWriteBigEndian(unsigned long data, int bytes) -{ - int i; - int size = sizeof(unsigned long); - for(i = 1; i <= bytes; ++i){ - fputc(0xff & (data >> (size - i) * 8), gl2ps->stream); - } - return bytes; -} - -/* zlib compression helper routines */ - -#if defined(GL2PS_HAVE_ZLIB) - -static void gl2psSetupCompress(void) -{ - gl2ps->compress = (GL2PScompress*)gl2psMalloc(sizeof(GL2PScompress)); - gl2ps->compress->src = NULL; - gl2ps->compress->start = NULL; - gl2ps->compress->dest = NULL; - gl2ps->compress->srcLen = 0; - gl2ps->compress->destLen = 0; -} - -static void gl2psFreeCompress(void) -{ - if(!gl2ps->compress) - return; - gl2psFree(gl2ps->compress->start); - gl2psFree(gl2ps->compress->dest); - gl2ps->compress->src = NULL; - gl2ps->compress->start = NULL; - gl2ps->compress->dest = NULL; - gl2ps->compress->srcLen = 0; - gl2ps->compress->destLen = 0; -} - -static int gl2psAllocCompress(unsigned int srcsize) -{ - gl2psFreeCompress(); - - if(!gl2ps->compress || !srcsize) - return GL2PS_ERROR; - - gl2ps->compress->srcLen = srcsize; - gl2ps->compress->destLen = (int)ceil(1.001 * gl2ps->compress->srcLen + 12); - gl2ps->compress->src = (Bytef*)gl2psMalloc(gl2ps->compress->srcLen); - gl2ps->compress->start = gl2ps->compress->src; - gl2ps->compress->dest = (Bytef*)gl2psMalloc(gl2ps->compress->destLen); - - return GL2PS_SUCCESS; -} - -static void *gl2psReallocCompress(unsigned int srcsize) -{ - if(!gl2ps->compress || !srcsize) - return NULL; - - if(srcsize < gl2ps->compress->srcLen) - return gl2ps->compress->start; - - gl2ps->compress->srcLen = srcsize; - gl2ps->compress->destLen = (int)ceil(1.001 * gl2ps->compress->srcLen + 12); - gl2ps->compress->src = (Bytef*)gl2psRealloc(gl2ps->compress->src, - gl2ps->compress->srcLen); - gl2ps->compress->start = gl2ps->compress->src; - gl2ps->compress->dest = (Bytef*)gl2psRealloc(gl2ps->compress->dest, - gl2ps->compress->destLen); - - return gl2ps->compress->start; -} - -static int gl2psWriteBigEndianCompress(unsigned long data, int bytes) -{ - int i; - int size = sizeof(unsigned long); - for(i = 1; i <= bytes; ++i){ - *gl2ps->compress->src = (Bytef)(0xff & (data >> (size-i) * 8)); - ++gl2ps->compress->src; - } - return bytes; -} - -static int gl2psDeflate(void) -{ - /* For compatibility with older zlib versions, we use compress(...) - instead of compress2(..., Z_BEST_COMPRESSION) */ - return compress(gl2ps->compress->dest, &gl2ps->compress->destLen, - gl2ps->compress->start, gl2ps->compress->srcLen); -} - -#endif - -static int gl2psPrintf(const char* fmt, ...) -{ - int ret; - va_list args; - -#if defined(GL2PS_HAVE_ZLIB) - static char buf[1024]; - char *bufptr = buf; - GLboolean freebuf = GL_FALSE; - unsigned int oldsize = 0; -#if !defined(GL2PS_HAVE_NO_VSNPRINTF) - /* Try writing the string to a 1024 byte buffer. If it is too small to fit, - keep trying larger sizes until it does. */ - int bufsize = sizeof(buf); -#endif - if(gl2ps->options & GL2PS_COMPRESS){ - va_start(args, fmt); -#if defined(GL2PS_HAVE_NO_VSNPRINTF) - ret = vsprintf(buf, fmt, args); -#else - ret = vsnprintf(bufptr, bufsize, fmt, args); -#endif - va_end(args); -#if !defined(GL2PS_HAVE_NO_VSNPRINTF) - while(ret >= (bufsize - 1) || ret < 0){ - /* Too big. Allocate a new buffer. */ - bufsize *= 2; - if(freebuf == GL_TRUE) gl2psFree(bufptr); - bufptr = (char *)gl2psMalloc(bufsize); - freebuf = GL_TRUE; - va_start(args, fmt); - ret = vsnprintf(bufptr, bufsize, fmt, args); - va_end(args); - } -#endif - oldsize = gl2ps->compress->srcLen; - gl2ps->compress->start = (Bytef*)gl2psReallocCompress(oldsize + ret); - memcpy(gl2ps->compress->start + oldsize, bufptr, ret); - if(freebuf == GL_TRUE) gl2psFree(bufptr); - ret = 0; - } - else{ -#endif - va_start(args, fmt); - ret = vfprintf(gl2ps->stream, fmt, args); - va_end(args); -#if defined(GL2PS_HAVE_ZLIB) - } -#endif - return ret; -} - -static void gl2psPrintGzipHeader(void) -{ -#if defined(GL2PS_HAVE_ZLIB) - char tmp[10] = {'\x1f', '\x8b', /* magic numbers: 0x1f, 0x8b */ - 8, /* compression method: Z_DEFLATED */ - 0, /* flags */ - 0, 0, 0, 0, /* time */ - 2, /* extra flags: max compression */ - '\x03'}; /* OS code: 0x03 (Unix) */ - - if(gl2ps->options & GL2PS_COMPRESS){ - gl2psSetupCompress(); - /* add the gzip file header */ - fwrite(tmp, 10, 1, gl2ps->stream); - } -#endif -} - -static void gl2psPrintGzipFooter(void) -{ -#if defined(GL2PS_HAVE_ZLIB) - int n; - uLong crc, len; - char tmp[8]; - - if(gl2ps->options & GL2PS_COMPRESS){ - if(Z_OK != gl2psDeflate()){ - gl2psMsg(GL2PS_ERROR, "Zlib deflate error"); - } - else{ - /* determine the length of the header in the zlib stream */ - n = 2; /* CMF+FLG */ - if(gl2ps->compress->dest[1] & (1<<5)){ - n += 4; /* DICTID */ - } - /* write the data, without the zlib header and footer */ - fwrite(gl2ps->compress->dest+n, gl2ps->compress->destLen-(n+4), - 1, gl2ps->stream); - /* add the gzip file footer */ - crc = crc32(0L, gl2ps->compress->start, gl2ps->compress->srcLen); - for(n = 0; n < 4; ++n){ - tmp[n] = (char)(crc & 0xff); - crc >>= 8; - } - len = gl2ps->compress->srcLen; - for(n = 4; n < 8; ++n){ - tmp[n] = (char)(len & 0xff); - len >>= 8; - } - fwrite(tmp, 8, 1, gl2ps->stream); - } - gl2psFreeCompress(); - gl2psFree(gl2ps->compress); - gl2ps->compress = NULL; - } -#endif -} - -/* The list handling routines */ - -static void gl2psListRealloc(GL2PSlist *list, GLint n) -{ - if(!list){ - gl2psMsg(GL2PS_ERROR, "Cannot reallocate NULL list"); - return; - } - if(n <= 0) return; - if(!list->array){ - list->nmax = n; - list->array = (char*)gl2psMalloc(list->nmax * list->size); - } - else{ - if(n > list->nmax){ - list->nmax = ((n - 1) / list->incr + 1) * list->incr; - list->array = (char*)gl2psRealloc(list->array, - list->nmax * list->size); - } - } -} - -static GL2PSlist *gl2psListCreate(GLint n, GLint incr, GLint size) -{ - GL2PSlist *list; - - if(n < 0) n = 0; - if(incr <= 0) incr = 1; - list = (GL2PSlist*)gl2psMalloc(sizeof(GL2PSlist)); - list->nmax = 0; - list->incr = incr; - list->size = size; - list->n = 0; - list->array = NULL; - gl2psListRealloc(list, n); - return list; -} - -static void gl2psListReset(GL2PSlist *list) -{ - if(!list) return; - list->n = 0; -} - -static void gl2psListDelete(GL2PSlist *list) -{ - if(!list) return; - gl2psFree(list->array); - gl2psFree(list); -} - -static void gl2psListAdd(GL2PSlist *list, void *data) -{ - if(!list){ - gl2psMsg(GL2PS_ERROR, "Cannot add into unallocated list"); - return; - } - list->n++; - gl2psListRealloc(list, list->n); - memcpy(&list->array[(list->n - 1) * list->size], data, list->size); -} - -static int gl2psListNbr(GL2PSlist *list) -{ - if(!list) - return 0; - return list->n; -} - -static void *gl2psListPointer(GL2PSlist *list, GLint idx) -{ - if(!list){ - gl2psMsg(GL2PS_ERROR, "Cannot point into unallocated list"); - return NULL; - } - if((idx < 0) || (idx >= list->n)){ - gl2psMsg(GL2PS_ERROR, "Wrong list index in gl2psListPointer"); - return NULL; - } - return &list->array[idx * list->size]; -} - -static void gl2psListSort(GL2PSlist *list, - int (*fcmp)(const void *a, const void *b)) -{ - if(!list) - return; - qsort(list->array, list->n, list->size, fcmp); -} - -/* Must be a list of GL2PSprimitives. */ -static void gl2psListAssignSortIds(GL2PSlist *list) -{ - GLint i; - for(i = 0; i < gl2psListNbr(list); i++){ - (*(GL2PSprimitive**)gl2psListPointer(list, i))->sortid = i; - } -} - -static void gl2psListAction(GL2PSlist *list, void (*action)(void *data)) -{ - GLint i; - - for(i = 0; i < gl2psListNbr(list); i++){ - (*action)(gl2psListPointer(list, i)); - } -} - -static void gl2psListActionInverse(GL2PSlist *list, void (*action)(void *data)) -{ - GLint i; - - for(i = gl2psListNbr(list); i > 0; i--){ - (*action)(gl2psListPointer(list, i-1)); - } -} - -#if defined(GL2PS_HAVE_LIBPNG) - -static void gl2psListRead(GL2PSlist *list, int index, void *data) -{ - if((index < 0) || (index >= list->n)) - gl2psMsg(GL2PS_ERROR, "Wrong list index in gl2psListRead"); - memcpy(data, &list->array[index * list->size], list->size); -} - -static void gl2psEncodeBase64Block(unsigned char in[3], unsigned char out[4], int len) -{ - static const char cb64[] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - - out[0] = cb64[ in[0] >> 2 ]; - out[1] = cb64[ ((in[0] & 0x03) << 4) | ((in[1] & 0xf0) >> 4) ]; - out[2] = (len > 1) ? cb64[ ((in[1] & 0x0f) << 2) | ((in[2] & 0xc0) >> 6) ] : '='; - out[3] = (len > 2) ? cb64[ in[2] & 0x3f ] : '='; -} - -static void gl2psListEncodeBase64(GL2PSlist *list) -{ - unsigned char *buffer, in[3], out[4]; - int i, n, index, len; - - n = list->n * list->size; - buffer = (unsigned char*)gl2psMalloc(n * sizeof(unsigned char)); - memcpy(buffer, list->array, n * sizeof(unsigned char)); - gl2psListReset(list); - - index = 0; - while(index < n) { - len = 0; - for(i = 0; i < 3; i++) { - if(index < n){ - in[i] = buffer[index]; - len++; - } - else{ - in[i] = 0; - } - index++; - } - if(len) { - gl2psEncodeBase64Block(in, out, len); - for(i = 0; i < 4; i++) - gl2psListAdd(list, &out[i]); - } - } - gl2psFree(buffer); -} - -#endif - -/* Helpers for rgba colors */ - -static GLboolean gl2psSameColor(GL2PSrgba rgba1, GL2PSrgba rgba2) -{ - if(!GL2PS_ZERO(rgba1[0] - rgba2[0]) || - !GL2PS_ZERO(rgba1[1] - rgba2[1]) || - !GL2PS_ZERO(rgba1[2] - rgba2[2])) - return GL_FALSE; - return GL_TRUE; -} - -static GLboolean gl2psVertsSameColor(const GL2PSprimitive *prim) -{ - int i; - - for(i = 1; i < prim->numverts; i++){ - if(!gl2psSameColor(prim->verts[0].rgba, prim->verts[i].rgba)){ - return GL_FALSE; - } - } - return GL_TRUE; -} - -static GLboolean gl2psSameColorThreshold(int n, GL2PSrgba rgba[], - GL2PSrgba threshold) -{ - int i; - - if(n < 2) return GL_TRUE; - - for(i = 1; i < n; i++){ - if(std::fabs(rgba[0][0] - rgba[i][0]) > threshold[0] || - std::fabs(rgba[0][1] - rgba[i][1]) > threshold[1] || - std::fabs(rgba[0][2] - rgba[i][2]) > threshold[2]) - return GL_FALSE; - } - - return GL_TRUE; -} - -static void gl2psSetLastColor(GL2PSrgba rgba) -{ - int i; - for(i = 0; i < 3; ++i){ - gl2ps->lastrgba[i] = rgba[i]; - } -} - -static GLfloat gl2psGetRGB(GL2PSimage *im, GLuint x, GLuint y, - GLfloat *red, GLfloat *green, GLfloat *blue) -{ - - GLsizei width = im->width; - GLsizei height = im->height; - GLfloat *pixels = im->pixels; - GLfloat *pimag; - - /* OpenGL image is from down to up, PS image is up to down */ - switch(im->format){ - case GL_RGBA: - pimag = pixels + 4 * (width * (height - 1 - y) + x); - break; - case GL_RGB: - default: - pimag = pixels + 3 * (width * (height - 1 - y) + x); - break; - } - *red = *pimag; pimag++; - *green = *pimag; pimag++; - *blue = *pimag; pimag++; - - return (im->format == GL_RGBA) ? *pimag : 1.0F; -} - -/* Helper routines for pixmaps */ - -static GL2PSimage *gl2psCopyPixmap(GL2PSimage *im) -{ - int size; - GL2PSimage *image = (GL2PSimage*)gl2psMalloc(sizeof(GL2PSimage)); - - image->width = im->width; - image->height = im->height; - image->format = im->format; - image->type = im->type; - image->zoom_x = im->zoom_x; - image->zoom_y = im->zoom_y; - - switch(image->format){ - case GL_RGBA: - size = image->height * image->width * 4 * sizeof(GLfloat); - break; - case GL_RGB: - default: - size = image->height * image->width * 3 * sizeof(GLfloat); - break; - } - - image->pixels = (GLfloat*)gl2psMalloc(size); - memcpy(image->pixels, im->pixels, size); - - return image; -} - -static void gl2psFreePixmap(GL2PSimage *im) -{ - if(!im) - return; - gl2psFree(im->pixels); - gl2psFree(im); -} - -#if defined(GL2PS_HAVE_LIBPNG) - -#if !defined(png_jmpbuf) -# define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf) -#endif - -static void gl2psUserWritePNG(png_structp png_ptr, png_bytep data, png_size_t length) -{ - unsigned int i; - GL2PSlist *png = (GL2PSlist*)png_get_io_ptr(png_ptr); - for(i = 0; i < length; i++) - gl2psListAdd(png, &data[i]); -} - -static void gl2psUserFlushPNG(png_structp png_ptr) -{ - (void) png_ptr; /* not used */ -} - -static void gl2psConvertPixmapToPNG(GL2PSimage *pixmap, GL2PSlist *png) -{ - png_structp png_ptr; - png_infop info_ptr; - unsigned char *row_data; - GLfloat dr, dg, db; - int row, col; - - if(!(png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL))) - return; - - if(!(info_ptr = png_create_info_struct(png_ptr))){ - png_destroy_write_struct(&png_ptr, NULL); - return; - } - - if(setjmp(png_jmpbuf(png_ptr))) { - png_destroy_write_struct(&png_ptr, &info_ptr); - return; - } - - png_set_write_fn(png_ptr, (void *)png, gl2psUserWritePNG, gl2psUserFlushPNG); - png_set_compression_level(png_ptr, Z_DEFAULT_COMPRESSION); - png_set_IHDR(png_ptr, info_ptr, pixmap->width, pixmap->height, 8, - PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, - PNG_FILTER_TYPE_BASE); - png_write_info(png_ptr, info_ptr); - - row_data = (unsigned char*)gl2psMalloc(3 * pixmap->width * sizeof(unsigned char)); - for(row = 0; row < pixmap->height; row++){ - for(col = 0; col < pixmap->width; col++){ - gl2psGetRGB(pixmap, col, row, &dr, &dg, &db); - row_data[3*col] = (unsigned char)(255. * dr); - row_data[3*col+1] = (unsigned char)(255. * dg); - row_data[3*col+2] = (unsigned char)(255. * db); - } - png_write_row(png_ptr, (png_bytep)row_data); - } - gl2psFree(row_data); - - png_write_end(png_ptr, info_ptr); - png_destroy_write_struct(&png_ptr, &info_ptr); -} - -#endif - -/* Helper routines for text strings */ - -static GLint gl2psAddText(GLint type, const char *str, const char *fontname, - GLshort fontsize, GLint alignment, GLfloat angle, - GL2PSrgba color, GLboolean setblpos, - GLfloat blx, GLfloat bly) -{ - GLfloat pos[4]; - GL2PSprimitive *prim; - GLboolean valid; - - if(!gl2ps || !str || !fontname) return GL2PS_UNINITIALIZED; - - if(gl2ps->options & GL2PS_NO_TEXT) return GL2PS_SUCCESS; - - if (gl2ps->forcerasterpos) { - pos[0] = gl2ps->rasterpos.xyz[0]; - pos[1] = gl2ps->rasterpos.xyz[1]; - pos[2] = gl2ps->rasterpos.xyz[2]; - pos[3] = 1.f; - } - else { - glGetBooleanv(GL_CURRENT_RASTER_POSITION_VALID, &valid); - if(GL_FALSE == valid) return GL2PS_SUCCESS; /* the primitive is culled */ - glGetFloatv(GL_CURRENT_RASTER_POSITION, pos); - } - - prim = (GL2PSprimitive*)gl2psMalloc(sizeof(GL2PSprimitive)); - prim->type = (GLshort)type; - prim->boundary = 0; - prim->numverts = setblpos ? 2 : 1; - prim->verts = (GL2PSvertex*)gl2psMalloc(sizeof(GL2PSvertex) * prim->numverts); - prim->verts[0].xyz[0] = pos[0]; - prim->verts[0].xyz[1] = pos[1]; - prim->verts[0].xyz[2] = pos[2]; - if (setblpos) { - prim->verts[1].xyz[0] = blx; - prim->verts[1].xyz[1] = bly; - prim->verts[1].xyz[2] = 0; - } - prim->culled = 0; - prim->offset = 0; - prim->ofactor = 0.0; - prim->ounits = 0.0; - prim->pattern = 0; - prim->factor = 0; - prim->width = 1; - prim->linecap = 0; - prim->linejoin = 0; - - if (color) { - memcpy(prim->verts[0].rgba, color, 4 * sizeof(float)); - } - else { - if (gl2ps->forcerasterpos) { - prim->verts[0].rgba[0] = gl2ps->rasterpos.rgba[0]; - prim->verts[0].rgba[1] = gl2ps->rasterpos.rgba[1]; - prim->verts[0].rgba[2] = gl2ps->rasterpos.rgba[2]; - prim->verts[0].rgba[3] = gl2ps->rasterpos.rgba[3]; - } - else { - glGetFloatv(GL_CURRENT_RASTER_COLOR, prim->verts[0].rgba); - } - } - prim->data.text = (GL2PSstring*)gl2psMalloc(sizeof(GL2PSstring)); - prim->data.text->str = (char*)gl2psMalloc((strlen(str)+1)*sizeof(char)); - strcpy(prim->data.text->str, str); - prim->data.text->fontname = (char*)gl2psMalloc((strlen(fontname)+1)*sizeof(char)); - strcpy(prim->data.text->fontname, fontname); - prim->data.text->fontsize = fontsize; - prim->data.text->alignment = alignment; - prim->data.text->angle = angle; - - gl2ps->forcerasterpos = GL_FALSE; - - /* If no OpenGL context, just add directly to primitives */ - if (gl2ps->options & GL2PS_NO_OPENGL_CONTEXT) { - gl2psListAdd(gl2ps->primitives, &prim); - } - else { - gl2psListAdd(gl2ps->auxprimitives, &prim); - glPassThrough(GL2PS_TEXT_TOKEN); - } - - return GL2PS_SUCCESS; -} - -static GL2PSstring *gl2psCopyText(GL2PSstring *t) -{ - GL2PSstring *text = (GL2PSstring*)gl2psMalloc(sizeof(GL2PSstring)); - text->str = (char*)gl2psMalloc((strlen(t->str)+1)*sizeof(char)); - strcpy(text->str, t->str); - text->fontname = (char*)gl2psMalloc((strlen(t->fontname)+1)*sizeof(char)); - strcpy(text->fontname, t->fontname); - text->fontsize = t->fontsize; - text->alignment = t->alignment; - text->angle = t->angle; - - return text; -} - -static void gl2psFreeText(GL2PSstring *text) -{ - if(!text) - return; - gl2psFree(text->str); - gl2psFree(text->fontname); - gl2psFree(text); -} - -/* Helpers for blending modes */ - -static GLboolean gl2psSupportedBlendMode(GLenum sfactor, GLenum dfactor) -{ - /* returns TRUE if gl2ps supports the argument combination: only two - blending modes have been implemented so far */ - - if( (sfactor == GL_SRC_ALPHA && dfactor == GL_ONE_MINUS_SRC_ALPHA) || - (sfactor == GL_ONE && dfactor == GL_ZERO) ) - return GL_TRUE; - return GL_FALSE; -} - -static void gl2psAdaptVertexForBlending(GL2PSvertex *v) -{ - /* Transforms vertex depending on the actual blending function - - currently the vertex v is considered as source vertex and his - alpha value is changed to 1.0 if source blending GL_ONE is - active. This might be extended in the future */ - - if(!v || !gl2ps) - return; - - if(gl2ps->options & GL2PS_NO_BLENDING || !gl2ps->blending){ - v->rgba[3] = 1.0F; - return; - } - - switch(gl2ps->blendfunc[0]){ - case GL_ONE: - v->rgba[3] = 1.0F; - break; - default: - break; - } -} - -static void gl2psAssignTriangleProperties(GL2PStriangle *t) -{ - /* int i; */ - - t->prop = T_VAR_COLOR; - - /* Uncommenting the following lines activates an even more fine - grained distinction between triangle types - please don't delete, - a remarkable amount of PDF handling code inside this file depends - on it if activated */ - /* - t->prop = T_CONST_COLOR; - for(i = 0; i < 3; ++i){ - if(!GL2PS_ZERO(t->vertex[0].rgba[i] - t->vertex[1].rgba[i]) || - !GL2PS_ZERO(t->vertex[1].rgba[i] - t->vertex[2].rgba[i])){ - t->prop = T_VAR_COLOR; - break; - } - } - */ - - if(!GL2PS_ZERO(t->vertex[0].rgba[3] - t->vertex[1].rgba[3]) || - !GL2PS_ZERO(t->vertex[1].rgba[3] - t->vertex[2].rgba[3])){ - t->prop |= T_VAR_ALPHA; - } - else{ - if(t->vertex[0].rgba[3] < 1) - t->prop |= T_ALPHA_LESS_1; - else - t->prop |= T_ALPHA_1; - } -} - -static void gl2psFillTriangleFromPrimitive(GL2PStriangle *t, GL2PSprimitive *p, - GLboolean assignprops) -{ - t->vertex[0] = p->verts[0]; - t->vertex[1] = p->verts[1]; - t->vertex[2] = p->verts[2]; - if(GL_TRUE == assignprops) - gl2psAssignTriangleProperties(t); -} - -static void gl2psInitTriangle(GL2PStriangle *t) -{ - int i; - GL2PSvertex vertex = { {-1.0F, -1.0F, -1.0F}, {-1.0F, -1.0F, -1.0F, -1.0F} }; - for(i = 0; i < 3; i++) - t->vertex[i] = vertex; - t->prop = T_UNDEFINED; -} - -/* Miscellaneous helper routines */ - -static void gl2psResetLineProperties(void) -{ - gl2ps->lastlinewidth = 0.; - gl2ps->lastlinecap = gl2ps->lastlinejoin = 0; -} - -static GL2PSprimitive *gl2psCopyPrimitive(GL2PSprimitive *p) -{ - GL2PSprimitive *prim; - - if(!p){ - gl2psMsg(GL2PS_ERROR, "Trying to copy an empty primitive"); - return NULL; - } - - prim = (GL2PSprimitive*)gl2psMalloc(sizeof(GL2PSprimitive)); - - prim->type = p->type; - prim->numverts = p->numverts; - prim->boundary = p->boundary; - prim->offset = p->offset; - prim->ofactor = p->ofactor; - prim->ounits = p->ounits; - prim->pattern = p->pattern; - prim->factor = p->factor; - prim->culled = p->culled; - prim->width = p->width; - prim->linecap = p->linecap; - prim->linejoin = p->linejoin; - prim->verts = (GL2PSvertex*)gl2psMalloc(p->numverts*sizeof(GL2PSvertex)); - memcpy(prim->verts, p->verts, p->numverts * sizeof(GL2PSvertex)); - - switch(prim->type){ - case GL2PS_PIXMAP : - prim->data.image = gl2psCopyPixmap(p->data.image); - break; - case GL2PS_TEXT : - case GL2PS_SPECIAL : - prim->data.text = gl2psCopyText(p->data.text); - break; - default: - break; - } - - return prim; -} - -static GLboolean gl2psSamePosition(GL2PSxyz p1, GL2PSxyz p2) -{ - if(!GL2PS_ZERO(p1[0] - p2[0]) || - !GL2PS_ZERO(p1[1] - p2[1]) || - !GL2PS_ZERO(p1[2] - p2[2])) - return GL_FALSE; - return GL_TRUE; -} - -/********************************************************************* - * - * 3D sorting routines - * - *********************************************************************/ - -static GLfloat gl2psComparePointPlane(GL2PSxyz point, GL2PSplane plane) -{ - return (plane[0] * point[0] + - plane[1] * point[1] + - plane[2] * point[2] + - plane[3]); -} - -static GLfloat gl2psPsca(GLfloat *a, GLfloat *b) -{ - return (a[0]*b[0] + a[1]*b[1] + a[2]*b[2]); -} - -static void gl2psPvec(GLfloat *a, GLfloat *b, GLfloat *c) -{ - c[0] = a[1]*b[2] - a[2]*b[1]; - c[1] = a[2]*b[0] - a[0]*b[2]; - c[2] = a[0]*b[1] - a[1]*b[0]; -} - -static GLfloat gl2psNorm(GLfloat *a) -{ - return (GLfloat)sqrt(a[0]*a[0] + a[1]*a[1] + a[2]*a[2]); -} - -static void gl2psGetNormal(GLfloat *a, GLfloat *b, GLfloat *c) -{ - GLfloat norm; - - gl2psPvec(a, b, c); - if(!GL2PS_ZERO(norm = gl2psNorm(c))){ - c[0] = c[0] / norm; - c[1] = c[1] / norm; - c[2] = c[2] / norm; - } - else{ - /* The plane is still wrong despite our tests in gl2psGetPlane. - Let's return a dummy value for now (this is a hack: we should - do more intelligent tests in GetPlane) */ - c[0] = c[1] = 0.0F; - c[2] = 1.0F; - } -} - -static void gl2psGetPlane(GL2PSprimitive *prim, GL2PSplane plane) -{ - GL2PSxyz v = {0.0F, 0.0F, 0.0F}, w = {0.0F, 0.0F, 0.0F}; - - switch(prim->type){ - case GL2PS_TRIANGLE : - case GL2PS_QUADRANGLE : - v[0] = prim->verts[1].xyz[0] - prim->verts[0].xyz[0]; - v[1] = prim->verts[1].xyz[1] - prim->verts[0].xyz[1]; - v[2] = prim->verts[1].xyz[2] - prim->verts[0].xyz[2]; - w[0] = prim->verts[2].xyz[0] - prim->verts[0].xyz[0]; - w[1] = prim->verts[2].xyz[1] - prim->verts[0].xyz[1]; - w[2] = prim->verts[2].xyz[2] - prim->verts[0].xyz[2]; - if((GL2PS_ZERO(v[0]) && GL2PS_ZERO(v[1]) && GL2PS_ZERO(v[2])) || - (GL2PS_ZERO(w[0]) && GL2PS_ZERO(w[1]) && GL2PS_ZERO(w[2]))){ - plane[0] = plane[1] = 0.0F; - plane[2] = 1.0F; - plane[3] = -prim->verts[0].xyz[2]; - } - else{ - gl2psGetNormal(v, w, plane); - plane[3] = - - plane[0] * prim->verts[0].xyz[0] - - plane[1] * prim->verts[0].xyz[1] - - plane[2] * prim->verts[0].xyz[2]; - } - break; - case GL2PS_LINE : - v[0] = prim->verts[1].xyz[0] - prim->verts[0].xyz[0]; - v[1] = prim->verts[1].xyz[1] - prim->verts[0].xyz[1]; - v[2] = prim->verts[1].xyz[2] - prim->verts[0].xyz[2]; - if(GL2PS_ZERO(v[0]) && GL2PS_ZERO(v[1]) && GL2PS_ZERO(v[2])){ - plane[0] = plane[1] = 0.0F; - plane[2] = 1.0F; - plane[3] = -prim->verts[0].xyz[2]; - } - else{ - if(GL2PS_ZERO(v[0])) w[0] = 1.0F; - else if(GL2PS_ZERO(v[1])) w[1] = 1.0F; - else w[2] = 1.0F; - gl2psGetNormal(v, w, plane); - plane[3] = - - plane[0] * prim->verts[0].xyz[0] - - plane[1] * prim->verts[0].xyz[1] - - plane[2] * prim->verts[0].xyz[2]; - } - break; - case GL2PS_POINT : - case GL2PS_PIXMAP : - case GL2PS_TEXT : - case GL2PS_SPECIAL : - case GL2PS_IMAGEMAP: - plane[0] = plane[1] = 0.0F; - plane[2] = 1.0F; - plane[3] = -prim->verts[0].xyz[2]; - break; - default : - gl2psMsg(GL2PS_ERROR, "Unknown primitive type in BSP tree"); - plane[0] = plane[1] = plane[3] = 0.0F; - plane[2] = 1.0F; - break; - } -} - -static void gl2psCutEdge(GL2PSvertex *a, GL2PSvertex *b, GL2PSplane plane, - GL2PSvertex *c) -{ - GL2PSxyz v; - GLfloat sect, psca; - - v[0] = b->xyz[0] - a->xyz[0]; - v[1] = b->xyz[1] - a->xyz[1]; - v[2] = b->xyz[2] - a->xyz[2]; - - if(!GL2PS_ZERO(psca = gl2psPsca(plane, v))) - sect = -gl2psComparePointPlane(a->xyz, plane) / psca; - else - sect = 0.0F; - - c->xyz[0] = a->xyz[0] + v[0] * sect; - c->xyz[1] = a->xyz[1] + v[1] * sect; - c->xyz[2] = a->xyz[2] + v[2] * sect; - - c->rgba[0] = (1 - sect) * a->rgba[0] + sect * b->rgba[0]; - c->rgba[1] = (1 - sect) * a->rgba[1] + sect * b->rgba[1]; - c->rgba[2] = (1 - sect) * a->rgba[2] + sect * b->rgba[2]; - c->rgba[3] = (1 - sect) * a->rgba[3] + sect * b->rgba[3]; -} - -static void gl2psCreateSplitPrimitive(GL2PSprimitive *parent, GL2PSplane plane, - GL2PSprimitive *child, GLshort numverts, - GLshort *index0, GLshort *index1) -{ - GLshort i; - - if(parent->type == GL2PS_IMAGEMAP){ - child->type = GL2PS_IMAGEMAP; - child->data.image = parent->data.image; - } - else{ - if(numverts > 4){ - gl2psMsg(GL2PS_WARNING, "%d vertices in polygon", numverts); - numverts = 4; - } - switch(numverts){ - case 1 : child->type = GL2PS_POINT; break; - case 2 : child->type = GL2PS_LINE; break; - case 3 : child->type = GL2PS_TRIANGLE; break; - case 4 : child->type = GL2PS_QUADRANGLE; break; - default: child->type = GL2PS_NO_TYPE; break; - } - } - - child->boundary = 0; /* FIXME: not done! */ - child->culled = parent->culled; - child->offset = parent->offset; - child->ofactor = parent->ofactor; - child->ounits = parent->ounits; - child->pattern = parent->pattern; - child->factor = parent->factor; - child->width = parent->width; - child->linecap = parent->linecap; - child->linejoin = parent->linejoin; - child->numverts = numverts; - child->verts = (GL2PSvertex*)gl2psMalloc(numverts * sizeof(GL2PSvertex)); - - for(i = 0; i < numverts; i++){ - if(index1[i] < 0){ - child->verts[i] = parent->verts[index0[i]]; - } - else{ - gl2psCutEdge(&parent->verts[index0[i]], &parent->verts[index1[i]], - plane, &child->verts[i]); - } - } -} - -static void gl2psAddIndex(GLshort *index0, GLshort *index1, GLshort *nb, - GLshort i, GLshort j) -{ - GLint k; - - for(k = 0; k < *nb; k++){ - if((index0[k] == i && index1[k] == j) || - (index1[k] == i && index0[k] == j)) return; - } - index0[*nb] = i; - index1[*nb] = j; - (*nb)++; -} - -static GLshort gl2psGetIndex(GLshort i, GLshort num) -{ - return (i < num - 1) ? i + 1 : 0; -} - -static GLint gl2psTestSplitPrimitive(GL2PSprimitive *prim, GL2PSplane plane) -{ - GLint type = GL2PS_COINCIDENT; - GLshort i, j; - GLfloat d[5]; - - for(i = 0; i < prim->numverts; i++){ - d[i] = gl2psComparePointPlane(prim->verts[i].xyz, plane); - } - - if(prim->numverts < 2){ - return 0; - } - else{ - for(i = 0; i < prim->numverts; i++){ - j = gl2psGetIndex(i, prim->numverts); - if(d[j] > GL2PS_EPSILON){ - if(type == GL2PS_COINCIDENT) type = GL2PS_IN_BACK_OF; - else if(type != GL2PS_IN_BACK_OF) return 1; - if(d[i] < -GL2PS_EPSILON) return 1; - } - else if(d[j] < -GL2PS_EPSILON){ - if(type == GL2PS_COINCIDENT) type = GL2PS_IN_FRONT_OF; - else if(type != GL2PS_IN_FRONT_OF) return 1; - if(d[i] > GL2PS_EPSILON) return 1; - } - } - } - return 0; -} - -static GLint gl2psSplitPrimitive(GL2PSprimitive *prim, GL2PSplane plane, - GL2PSprimitive **front, GL2PSprimitive **back) -{ - GLshort i, j, in = 0, out = 0, in0[5], in1[5], out0[5], out1[5]; - GLint type; - GLfloat d[5]; - - type = GL2PS_COINCIDENT; - - for(i = 0; i < prim->numverts; i++){ - d[i] = gl2psComparePointPlane(prim->verts[i].xyz, plane); - } - - switch(prim->type){ - case GL2PS_POINT : - if(d[0] > GL2PS_EPSILON) type = GL2PS_IN_BACK_OF; - else if(d[0] < -GL2PS_EPSILON) type = GL2PS_IN_FRONT_OF; - else type = GL2PS_COINCIDENT; - break; - default : - for(i = 0; i < prim->numverts; i++){ - j = gl2psGetIndex(i, prim->numverts); - if(d[j] > GL2PS_EPSILON){ - if(type == GL2PS_COINCIDENT) type = GL2PS_IN_BACK_OF; - else if(type != GL2PS_IN_BACK_OF) type = GL2PS_SPANNING; - if(d[i] < -GL2PS_EPSILON){ - gl2psAddIndex(in0, in1, &in, i, j); - gl2psAddIndex(out0, out1, &out, i, j); - type = GL2PS_SPANNING; - } - gl2psAddIndex(out0, out1, &out, j, -1); - } - else if(d[j] < -GL2PS_EPSILON){ - if(type == GL2PS_COINCIDENT) type = GL2PS_IN_FRONT_OF; - else if(type != GL2PS_IN_FRONT_OF) type = GL2PS_SPANNING; - if(d[i] > GL2PS_EPSILON){ - gl2psAddIndex(in0, in1, &in, i, j); - gl2psAddIndex(out0, out1, &out, i, j); - type = GL2PS_SPANNING; - } - gl2psAddIndex(in0, in1, &in, j, -1); - } - else{ - gl2psAddIndex(in0, in1, &in, j, -1); - gl2psAddIndex(out0, out1, &out, j, -1); - } - } - break; - } - - if(type == GL2PS_SPANNING){ - *back = (GL2PSprimitive*)gl2psMalloc(sizeof(GL2PSprimitive)); - *front = (GL2PSprimitive*)gl2psMalloc(sizeof(GL2PSprimitive)); - gl2psCreateSplitPrimitive(prim, plane, *back, out, out0, out1); - gl2psCreateSplitPrimitive(prim, plane, *front, in, in0, in1); - } - - return type; -} - -static void gl2psDivideQuad(GL2PSprimitive *quad, - GL2PSprimitive **t1, GL2PSprimitive **t2) -{ - *t1 = (GL2PSprimitive*)gl2psMalloc(sizeof(GL2PSprimitive)); - *t2 = (GL2PSprimitive*)gl2psMalloc(sizeof(GL2PSprimitive)); - (*t1)->type = (*t2)->type = GL2PS_TRIANGLE; - (*t1)->numverts = (*t2)->numverts = 3; - (*t1)->culled = (*t2)->culled = quad->culled; - (*t1)->offset = (*t2)->offset = quad->offset; - (*t1)->ofactor = (*t2)->ofactor = quad->ofactor; - (*t1)->ounits = (*t2)->ounits = quad->ounits; - (*t1)->pattern = (*t2)->pattern = quad->pattern; - (*t1)->factor = (*t2)->factor = quad->factor; - (*t1)->width = (*t2)->width = quad->width; - (*t1)->linecap = (*t2)->linecap = quad->linecap; - (*t1)->linejoin = (*t2)->linejoin = quad->linejoin; - (*t1)->verts = (GL2PSvertex*)gl2psMalloc(3 * sizeof(GL2PSvertex)); - (*t2)->verts = (GL2PSvertex*)gl2psMalloc(3 * sizeof(GL2PSvertex)); - (*t1)->verts[0] = quad->verts[0]; - (*t1)->verts[1] = quad->verts[1]; - (*t1)->verts[2] = quad->verts[2]; - (*t1)->boundary = ((quad->boundary & 1) ? 1 : 0) | ((quad->boundary & 2) ? 2 : 0); - (*t2)->verts[0] = quad->verts[0]; - (*t2)->verts[1] = quad->verts[2]; - (*t2)->verts[2] = quad->verts[3]; - (*t2)->boundary = ((quad->boundary & 4) ? 2 : 0) | ((quad->boundary & 8) ? 4 : 0); -} - -static int gl2psCompareDepth(const void *a, const void *b) -{ - const GL2PSprimitive *q, *w; - GLfloat dq = 0.0F, dw = 0.0F, diff; - int i; - - q = *(const GL2PSprimitive* const*)a; - w = *(const GL2PSprimitive* const*)b; - - for(i = 0; i < q->numverts; i++){ - dq += q->verts[i].xyz[2]; - } - dq /= (GLfloat)q->numverts; - - for(i = 0; i < w->numverts; i++){ - dw += w->verts[i].xyz[2]; - } - dw /= (GLfloat)w->numverts; - - diff = dq - dw; - if(diff > 0.){ - return -1; - } - else if(diff < 0.){ - return 1; - } - else{ - /* Ensure that initial ordering is preserved when depths match. */ - return q->sortid < w->sortid ? -1 : 1; - } -} - -static int gl2psTrianglesFirst(const void *a, const void *b) -{ - const GL2PSprimitive *q, *w; - - q = *(const GL2PSprimitive* const*)a; - w = *(const GL2PSprimitive* const*)b; - return (q->type < w->type ? 1 : -1); -} - -static GLint gl2psFindRoot(GL2PSlist *primitives, GL2PSprimitive **root) -{ - GLint i, j, count, best = 1000000, idx = 0; - GL2PSprimitive *prim1, *prim2; - GL2PSplane plane; - GLint maxp; - - if(!gl2psListNbr(primitives)){ - gl2psMsg(GL2PS_ERROR, "Cannot fint root in empty primitive list"); - return 0; - } - - *root = *(GL2PSprimitive**)gl2psListPointer(primitives, 0); - - if(gl2ps->options & GL2PS_BEST_ROOT){ - maxp = gl2psListNbr(primitives); - if(maxp > gl2ps->maxbestroot){ - maxp = gl2ps->maxbestroot; - } - for(i = 0; i < maxp; i++){ - prim1 = *(GL2PSprimitive**)gl2psListPointer(primitives, i); - gl2psGetPlane(prim1, plane); - count = 0; - for(j = 0; j < gl2psListNbr(primitives); j++){ - if(j != i){ - prim2 = *(GL2PSprimitive**)gl2psListPointer(primitives, j); - count += gl2psTestSplitPrimitive(prim2, plane); - } - if(count > best) break; - } - if(count < best){ - best = count; - idx = i; - *root = prim1; - if(!count) return idx; - } - } - /* if(index) gl2psMsg(GL2PS_INFO, "GL2PS_BEST_ROOT was worth it: %d", index); */ - return idx; - } - else{ - return 0; - } -} - -static void gl2psFreeImagemap(GL2PSimagemap *list) -{ - GL2PSimagemap *next; - while(list != NULL){ - next = list->next; - gl2psFree(list->image->pixels); - gl2psFree(list->image); - gl2psFree(list); - list = next; - } -} - -static void gl2psFreePrimitive(void *data) -{ - GL2PSprimitive *q; - - q = *(GL2PSprimitive**)data; - gl2psFree(q->verts); - if(q->type == GL2PS_TEXT || q->type == GL2PS_SPECIAL){ - gl2psFreeText(q->data.text); - } - else if(q->type == GL2PS_PIXMAP){ - gl2psFreePixmap(q->data.image); - } - gl2psFree(q); -} - -static void gl2psAddPrimitiveInList(GL2PSprimitive *prim, GL2PSlist *list) -{ - GL2PSprimitive *t1, *t2; - - if(prim->type != GL2PS_QUADRANGLE){ - gl2psListAdd(list, &prim); - } - else{ - gl2psDivideQuad(prim, &t1, &t2); - gl2psListAdd(list, &t1); - gl2psListAdd(list, &t2); - gl2psFreePrimitive(&prim); - } - -} - -static void gl2psFreeBspTree(GL2PSbsptree **tree) -{ - if(*tree){ - if((*tree)->back) gl2psFreeBspTree(&(*tree)->back); - if((*tree)->primitives){ - gl2psListAction((*tree)->primitives, gl2psFreePrimitive); - gl2psListDelete((*tree)->primitives); - } - if((*tree)->front) gl2psFreeBspTree(&(*tree)->front); - gl2psFree(*tree); - *tree = NULL; - } -} - -static GLboolean gl2psGreater(GLfloat f1, GLfloat f2) -{ - if(f1 > f2) return GL_TRUE; - else return GL_FALSE; -} - -static GLboolean gl2psLess(GLfloat f1, GLfloat f2) -{ - if(f1 < f2) return GL_TRUE; - else return GL_FALSE; -} - -static void gl2psBuildBspTree(GL2PSbsptree *tree, GL2PSlist *primitives) -{ - GL2PSprimitive *prim = NULL, *frontprim = NULL, *backprim = NULL; - GL2PSlist *frontlist, *backlist; - GLint i, idx; - - tree->front = NULL; - tree->back = NULL; - tree->primitives = gl2psListCreate(1, 2, sizeof(GL2PSprimitive*)); - idx = gl2psFindRoot(primitives, &prim); - gl2psGetPlane(prim, tree->plane); - gl2psAddPrimitiveInList(prim, tree->primitives); - - frontlist = gl2psListCreate(1, 2, sizeof(GL2PSprimitive*)); - backlist = gl2psListCreate(1, 2, sizeof(GL2PSprimitive*)); - - for(i = 0; i < gl2psListNbr(primitives); i++){ - if(i != idx){ - prim = *(GL2PSprimitive**)gl2psListPointer(primitives,i); - switch(gl2psSplitPrimitive(prim, tree->plane, &frontprim, &backprim)){ - case GL2PS_COINCIDENT: - gl2psAddPrimitiveInList(prim, tree->primitives); - break; - case GL2PS_IN_BACK_OF: - gl2psAddPrimitiveInList(prim, backlist); - break; - case GL2PS_IN_FRONT_OF: - gl2psAddPrimitiveInList(prim, frontlist); - break; - case GL2PS_SPANNING: - gl2psAddPrimitiveInList(backprim, backlist); - gl2psAddPrimitiveInList(frontprim, frontlist); - gl2psFreePrimitive(&prim); - break; - } - } - } - - if(gl2psListNbr(tree->primitives)){ - gl2psListSort(tree->primitives, gl2psTrianglesFirst); - } - - if(gl2psListNbr(frontlist)){ - gl2psListSort(frontlist, gl2psTrianglesFirst); - tree->front = (GL2PSbsptree*)gl2psMalloc(sizeof(GL2PSbsptree)); - gl2psBuildBspTree(tree->front, frontlist); - } - else{ - gl2psListDelete(frontlist); - } - - if(gl2psListNbr(backlist)){ - gl2psListSort(backlist, gl2psTrianglesFirst); - tree->back = (GL2PSbsptree*)gl2psMalloc(sizeof(GL2PSbsptree)); - gl2psBuildBspTree(tree->back, backlist); - } - else{ - gl2psListDelete(backlist); - } - - gl2psListDelete(primitives); -} - -static void gl2psTraverseBspTree(GL2PSbsptree *tree, GL2PSxyz eye, GLfloat epsilon, - GLboolean (*compare)(GLfloat f1, GLfloat f2), - void (*action)(void *data), int inverse) -{ - GLfloat result; - - if(!tree) return; - - result = gl2psComparePointPlane(eye, tree->plane); - - if(GL_TRUE == compare(result, epsilon)){ - gl2psTraverseBspTree(tree->back, eye, epsilon, compare, action, inverse); - if(inverse){ - gl2psListActionInverse(tree->primitives, action); - } - else{ - gl2psListAction(tree->primitives, action); - } - gl2psTraverseBspTree(tree->front, eye, epsilon, compare, action, inverse); - } - else if(GL_TRUE == compare(-epsilon, result)){ - gl2psTraverseBspTree(tree->front, eye, epsilon, compare, action, inverse); - if(inverse){ - gl2psListActionInverse(tree->primitives, action); - } - else{ - gl2psListAction(tree->primitives, action); - } - gl2psTraverseBspTree(tree->back, eye, epsilon, compare, action, inverse); - } - else{ - gl2psTraverseBspTree(tree->front, eye, epsilon, compare, action, inverse); - gl2psTraverseBspTree(tree->back, eye, epsilon, compare, action, inverse); - } -} - -static void gl2psRescaleAndOffset(void) -{ - GL2PSprimitive *prim; - GLfloat minZ, maxZ, rangeZ, scaleZ; - GLfloat factor, units, area, dZ, dZdX, dZdY, maxdZ; - int i, j; - - if(!gl2psListNbr(gl2ps->primitives)) - return; - - /* get z-buffer range */ - prim = *(GL2PSprimitive**)gl2psListPointer(gl2ps->primitives, 0); - minZ = maxZ = prim->verts[0].xyz[2]; - for(i = 1; i < prim->numverts; i++){ - if(prim->verts[i].xyz[2] < minZ) minZ = prim->verts[i].xyz[2]; - if(prim->verts[i].xyz[2] > maxZ) maxZ = prim->verts[i].xyz[2]; - } - for(i = 1; i < gl2psListNbr(gl2ps->primitives); i++){ - prim = *(GL2PSprimitive**)gl2psListPointer(gl2ps->primitives, i); - for(j = 0; j < prim->numverts; j++){ - if(prim->verts[j].xyz[2] < minZ) minZ = prim->verts[j].xyz[2]; - if(prim->verts[j].xyz[2] > maxZ) maxZ = prim->verts[j].xyz[2]; - } - } - rangeZ = (maxZ - minZ); - - /* rescale z-buffer coordinate in [0,GL2PS_ZSCALE], to make it of - the same order of magnitude as the x and y coordinates */ - scaleZ = GL2PS_ZERO(rangeZ) ? GL2PS_ZSCALE : (GL2PS_ZSCALE / rangeZ); - /* avoid precision loss (we use floats!) */ - if(scaleZ > 100000.F) scaleZ = 100000.F; - - /* apply offsets */ - for(i = 0; i < gl2psListNbr(gl2ps->primitives); i++){ - prim = *(GL2PSprimitive**)gl2psListPointer(gl2ps->primitives, i); - for(j = 0; j < prim->numverts; j++){ - prim->verts[j].xyz[2] = (prim->verts[j].xyz[2] - minZ) * scaleZ; - } - if((gl2ps->options & GL2PS_SIMPLE_LINE_OFFSET) && - (prim->type == GL2PS_LINE)){ - if(gl2ps->sort == GL2PS_SIMPLE_SORT){ - prim->verts[0].xyz[2] -= GL2PS_ZOFFSET_LARGE; - prim->verts[1].xyz[2] -= GL2PS_ZOFFSET_LARGE; - } - else{ - prim->verts[0].xyz[2] -= GL2PS_ZOFFSET; - prim->verts[1].xyz[2] -= GL2PS_ZOFFSET; - } - } - else if(prim->offset && (prim->type == GL2PS_TRIANGLE)){ - factor = prim->ofactor; - units = prim->ounits; - area = - (prim->verts[1].xyz[0] - prim->verts[0].xyz[0]) * - (prim->verts[2].xyz[1] - prim->verts[1].xyz[1]) - - (prim->verts[2].xyz[0] - prim->verts[1].xyz[0]) * - (prim->verts[1].xyz[1] - prim->verts[0].xyz[1]); - if(!GL2PS_ZERO(area)){ - dZdX = - ((prim->verts[2].xyz[1] - prim->verts[1].xyz[1]) * - (prim->verts[1].xyz[2] - prim->verts[0].xyz[2]) - - (prim->verts[1].xyz[1] - prim->verts[0].xyz[1]) * - (prim->verts[2].xyz[2] - prim->verts[1].xyz[2])) / area; - dZdY = - ((prim->verts[1].xyz[0] - prim->verts[0].xyz[0]) * - (prim->verts[2].xyz[2] - prim->verts[1].xyz[2]) - - (prim->verts[2].xyz[0] - prim->verts[1].xyz[0]) * - (prim->verts[1].xyz[2] - prim->verts[0].xyz[2])) / area; - maxdZ = (GLfloat)sqrt(dZdX * dZdX + dZdY * dZdY); - } - else{ - maxdZ = 0.0F; - } - dZ = factor * maxdZ + units; - prim->verts[0].xyz[2] += dZ; - prim->verts[1].xyz[2] += dZ; - prim->verts[2].xyz[2] += dZ; - } - } -} - -/********************************************************************* - * - * 2D sorting routines (for occlusion culling) - * - *********************************************************************/ - -static GLint gl2psGetPlaneFromPoints(GL2PSxyz a, GL2PSxyz b, GL2PSplane plane) -{ - GLfloat n; - - plane[0] = b[1] - a[1]; - plane[1] = a[0] - b[0]; - n = (GLfloat)sqrt(plane[0]*plane[0] + plane[1]*plane[1]); - plane[2] = 0.0F; - if(!GL2PS_ZERO(n)){ - plane[0] /= n; - plane[1] /= n; - plane[3] = -plane[0]*a[0]-plane[1]*a[1]; - return 1; - } - else{ - plane[0] = -1.0F; - plane[1] = 0.0F; - plane[3] = a[0]; - return 0; - } -} - -static void gl2psFreeBspImageTree(GL2PSbsptree2d **tree) -{ - if(*tree){ - if((*tree)->back) gl2psFreeBspImageTree(&(*tree)->back); - if((*tree)->front) gl2psFreeBspImageTree(&(*tree)->front); - gl2psFree(*tree); - *tree = NULL; - } -} - -static GLint gl2psCheckPoint(GL2PSxyz point, GL2PSplane plane) -{ - GLfloat pt_dis; - - pt_dis = gl2psComparePointPlane(point, plane); - if(pt_dis > GL2PS_EPSILON) return GL2PS_POINT_INFRONT; - else if(pt_dis < -GL2PS_EPSILON) return GL2PS_POINT_BACK; - else return GL2PS_POINT_COINCIDENT; -} - -static void gl2psAddPlanesInBspTreeImage(GL2PSprimitive *prim, - GL2PSbsptree2d **tree) -{ - GLint ret = 0; - GLint i; - GLint offset = 0; - GL2PSbsptree2d *head = NULL, *cur = NULL; - - if((*tree == NULL) && (prim->numverts > 2)){ - /* don't cull if transparent - for(i = 0; i < prim->numverts - 1; i++) - if(prim->verts[i].rgba[3] < 1.0F) return; - */ - head = (GL2PSbsptree2d*)gl2psMalloc(sizeof(GL2PSbsptree2d)); - for(i = 0; i < prim->numverts-1; i++){ - if(!gl2psGetPlaneFromPoints(prim->verts[i].xyz, - prim->verts[i+1].xyz, - head->plane)){ - if(prim->numverts-i > 3){ - offset++; - } - else{ - gl2psFree(head); - return; - } - } - else{ - break; - } - } - head->back = NULL; - head->front = NULL; - for(i = 2+offset; i < prim->numverts; i++){ - ret = gl2psCheckPoint(prim->verts[i].xyz, head->plane); - if(ret != GL2PS_POINT_COINCIDENT) break; - } - switch(ret){ - case GL2PS_POINT_INFRONT : - cur = head; - for(i = 1+offset; i < prim->numverts-1; i++){ - if(cur->front == NULL){ - cur->front = (GL2PSbsptree2d*)gl2psMalloc(sizeof(GL2PSbsptree2d)); - } - if(gl2psGetPlaneFromPoints(prim->verts[i].xyz, - prim->verts[i+1].xyz, - cur->front->plane)){ - cur = cur->front; - cur->front = NULL; - cur->back = NULL; - } - } - if(cur->front == NULL){ - cur->front = (GL2PSbsptree2d*)gl2psMalloc(sizeof(GL2PSbsptree2d)); - } - if(gl2psGetPlaneFromPoints(prim->verts[i].xyz, - prim->verts[offset].xyz, - cur->front->plane)){ - cur->front->front = NULL; - cur->front->back = NULL; - } - else{ - gl2psFree(cur->front); - cur->front = NULL; - } - break; - case GL2PS_POINT_BACK : - for(i = 0; i < 4; i++){ - head->plane[i] = -head->plane[i]; - } - cur = head; - for(i = 1+offset; i < prim->numverts-1; i++){ - if(cur->front == NULL){ - cur->front = (GL2PSbsptree2d*)gl2psMalloc(sizeof(GL2PSbsptree2d)); - } - if(gl2psGetPlaneFromPoints(prim->verts[i+1].xyz, - prim->verts[i].xyz, - cur->front->plane)){ - cur = cur->front; - cur->front = NULL; - cur->back = NULL; - } - } - if(cur->front == NULL){ - cur->front = (GL2PSbsptree2d*)gl2psMalloc(sizeof(GL2PSbsptree2d)); - } - if(gl2psGetPlaneFromPoints(prim->verts[offset].xyz, - prim->verts[i].xyz, - cur->front->plane)){ - cur->front->front = NULL; - cur->front->back = NULL; - } - else{ - gl2psFree(cur->front); - cur->front = NULL; - } - break; - default: - gl2psFree(head); - return; - } - (*tree) = head; - } -} - -static GLint gl2psCheckPrimitive(GL2PSprimitive *prim, GL2PSplane plane) -{ - GLint i; - GLint pos; - - pos = gl2psCheckPoint(prim->verts[0].xyz, plane); - for(i = 1; i < prim->numverts; i++){ - pos |= gl2psCheckPoint(prim->verts[i].xyz, plane); - if(pos == (GL2PS_POINT_INFRONT | GL2PS_POINT_BACK)) return GL2PS_SPANNING; - } - if(pos & GL2PS_POINT_INFRONT) return GL2PS_IN_FRONT_OF; - else if(pos & GL2PS_POINT_BACK) return GL2PS_IN_BACK_OF; - else return GL2PS_COINCIDENT; -} - -static GL2PSprimitive *gl2psCreateSplitPrimitive2D(GL2PSprimitive *parent, - GLshort numverts, - GL2PSvertex *vertx) -{ - GLint i; - GL2PSprimitive *child = (GL2PSprimitive*)gl2psMalloc(sizeof(GL2PSprimitive)); - - if(parent->type == GL2PS_IMAGEMAP){ - child->type = GL2PS_IMAGEMAP; - child->data.image = parent->data.image; - } - else { - switch(numverts){ - case 1 : child->type = GL2PS_POINT; break; - case 2 : child->type = GL2PS_LINE; break; - case 3 : child->type = GL2PS_TRIANGLE; break; - case 4 : child->type = GL2PS_QUADRANGLE; break; - default: child->type = GL2PS_NO_TYPE; break; /* FIXME */ - } - } - child->boundary = 0; /* FIXME: not done! */ - child->culled = parent->culled; - child->offset = parent->offset; - child->ofactor = parent->ofactor; - child->ounits = parent->ounits; - child->pattern = parent->pattern; - child->factor = parent->factor; - child->width = parent->width; - child->linecap = parent->linecap; - child->linejoin = parent->linejoin; - child->numverts = numverts; - child->verts = (GL2PSvertex*)gl2psMalloc(numverts * sizeof(GL2PSvertex)); - for(i = 0; i < numverts; i++){ - child->verts[i] = vertx[i]; - } - return child; -} - -static void gl2psSplitPrimitive2D(GL2PSprimitive *prim, - GL2PSplane plane, - GL2PSprimitive **front, - GL2PSprimitive **back) -{ - /* cur will hold the position of the current vertex - prev will hold the position of the previous vertex - prev0 will hold the position of the vertex number 0 - v1 and v2 represent the current and previous vertices, respectively - flag is set if the current vertex should be checked against the plane */ - GLint cur = -1, prev = -1, i, v1 = 0, v2 = 0, flag = 1, prev0 = -1; - - /* list of vertices that will go in front and back primitive */ - GL2PSvertex *front_list = NULL, *back_list = NULL; - - /* number of vertices in front and back list */ - GLshort front_count = 0, back_count = 0; - - for(i = 0; i <= prim->numverts; i++){ - v1 = i; - if(v1 == prim->numverts){ - if(prim->numverts < 3) break; - v1 = 0; - v2 = prim->numverts - 1; - cur = prev0; - } - else if(flag){ - cur = gl2psCheckPoint(prim->verts[v1].xyz, plane); - if(i == 0){ - prev0 = cur; - } - } - if(((prev == -1) || (prev == cur) || (prev == 0) || (cur == 0)) && - (i < prim->numverts)){ - if(cur == GL2PS_POINT_INFRONT){ - front_count++; - front_list = (GL2PSvertex*)gl2psRealloc(front_list, - sizeof(GL2PSvertex)*front_count); - front_list[front_count-1] = prim->verts[v1]; - } - else if(cur == GL2PS_POINT_BACK){ - back_count++; - back_list = (GL2PSvertex*)gl2psRealloc(back_list, - sizeof(GL2PSvertex)*back_count); - back_list[back_count-1] = prim->verts[v1]; - } - else{ - front_count++; - front_list = (GL2PSvertex*)gl2psRealloc(front_list, - sizeof(GL2PSvertex)*front_count); - front_list[front_count-1] = prim->verts[v1]; - back_count++; - back_list = (GL2PSvertex*)gl2psRealloc(back_list, - sizeof(GL2PSvertex)*back_count); - back_list[back_count-1] = prim->verts[v1]; - } - flag = 1; - } - else if((prev != cur) && (cur != 0) && (prev != 0)){ - if(v1 != 0){ - v2 = v1-1; - i--; - } - front_count++; - front_list = (GL2PSvertex*)gl2psRealloc(front_list, - sizeof(GL2PSvertex)*front_count); - gl2psCutEdge(&prim->verts[v2], &prim->verts[v1], - plane, &front_list[front_count-1]); - back_count++; - back_list = (GL2PSvertex*)gl2psRealloc(back_list, - sizeof(GL2PSvertex)*back_count); - back_list[back_count-1] = front_list[front_count-1]; - flag = 0; - } - prev = cur; - } - *front = gl2psCreateSplitPrimitive2D(prim, front_count, front_list); - *back = gl2psCreateSplitPrimitive2D(prim, back_count, back_list); - gl2psFree(front_list); - gl2psFree(back_list); -} - -static GLint gl2psAddInBspImageTree(GL2PSprimitive *prim, GL2PSbsptree2d **tree) -{ - GLint ret = 0; - GL2PSprimitive *frontprim = NULL, *backprim = NULL; - - /* FIXME: until we consider the actual extent of text strings and - pixmaps, never cull them. Otherwise the whole string/pixmap gets - culled as soon as the reference point is hidden */ - if(prim->type == GL2PS_PIXMAP || - prim->type == GL2PS_TEXT || - prim->type == GL2PS_SPECIAL){ - return 1; - } - - if(*tree == NULL){ - if((prim->type != GL2PS_IMAGEMAP) && (GL_FALSE == gl2ps->zerosurfacearea)){ - gl2psAddPlanesInBspTreeImage(gl2ps->primitivetoadd, tree); - } - return 1; - } - else{ - switch(gl2psCheckPrimitive(prim, (*tree)->plane)){ - case GL2PS_IN_BACK_OF: return gl2psAddInBspImageTree(prim, &(*tree)->back); - case GL2PS_IN_FRONT_OF: - if((*tree)->front != NULL) return gl2psAddInBspImageTree(prim, &(*tree)->front); - else return 0; - case GL2PS_SPANNING: - gl2psSplitPrimitive2D(prim, (*tree)->plane, &frontprim, &backprim); - ret = gl2psAddInBspImageTree(backprim, &(*tree)->back); - if((*tree)->front != NULL){ - if(gl2psAddInBspImageTree(frontprim, &(*tree)->front)){ - ret = 1; - } - } - gl2psFree(frontprim->verts); - gl2psFree(frontprim); - gl2psFree(backprim->verts); - gl2psFree(backprim); - return ret; - case GL2PS_COINCIDENT: - if((*tree)->back != NULL){ - gl2ps->zerosurfacearea = GL_TRUE; - ret = gl2psAddInBspImageTree(prim, &(*tree)->back); - gl2ps->zerosurfacearea = GL_FALSE; - if(ret) return ret; - } - if((*tree)->front != NULL){ - gl2ps->zerosurfacearea = GL_TRUE; - ret = gl2psAddInBspImageTree(prim, &(*tree)->front); - gl2ps->zerosurfacearea = GL_FALSE; - if(ret) return ret; - } - if(prim->type == GL2PS_LINE) return 1; - else return 0; - } - } - return 0; -} - -static void gl2psAddInImageTree(void *data) -{ - GL2PSprimitive *prim = *(GL2PSprimitive **)data; - gl2ps->primitivetoadd = prim; - if(prim->type == GL2PS_IMAGEMAP && prim->data.image->format == GL2PS_IMAGEMAP_VISIBLE){ - prim->culled = 1; - } - else if(!gl2psAddInBspImageTree(prim, &gl2ps->imagetree)){ - prim->culled = 1; - } - else if(prim->type == GL2PS_IMAGEMAP){ - prim->data.image->format = GL2PS_IMAGEMAP_VISIBLE; - } -} - -/* Boundary construction */ - -static void gl2psAddBoundaryInList(GL2PSprimitive *prim, GL2PSlist *list) -{ - GL2PSprimitive *b; - GLshort i; - GL2PSxyz c; - - c[0] = c[1] = c[2] = 0.0F; - for(i = 0; i < prim->numverts; i++){ - c[0] += prim->verts[i].xyz[0]; - c[1] += prim->verts[i].xyz[1]; - } - c[0] /= prim->numverts; - c[1] /= prim->numverts; - - for(i = 0; i < prim->numverts; i++){ - if(prim->boundary & (GLint)pow(2., i)){ - b = (GL2PSprimitive*)gl2psMalloc(sizeof(GL2PSprimitive)); - b->type = GL2PS_LINE; - b->offset = prim->offset; - b->ofactor = prim->ofactor; - b->ounits = prim->ounits; - b->pattern = prim->pattern; - b->factor = prim->factor; - b->culled = prim->culled; - b->width = prim->width; - b->linecap = prim->linecap; - b->linejoin = prim->linejoin; - b->boundary = 0; - b->numverts = 2; - b->verts = (GL2PSvertex*)gl2psMalloc(2 * sizeof(GL2PSvertex)); - -#if 0 /* FIXME: need to work on boundary offset... */ - v[0] = c[0] - prim->verts[i].xyz[0]; - v[1] = c[1] - prim->verts[i].xyz[1]; - v[2] = 0.0F; - norm = gl2psNorm(v); - v[0] /= norm; - v[1] /= norm; - b->verts[0].xyz[0] = prim->verts[i].xyz[0] +0.1*v[0]; - b->verts[0].xyz[1] = prim->verts[i].xyz[1] +0.1*v[1]; - b->verts[0].xyz[2] = prim->verts[i].xyz[2]; - v[0] = c[0] - prim->verts[gl2psGetIndex(i, prim->numverts)].xyz[0]; - v[1] = c[1] - prim->verts[gl2psGetIndex(i, prim->numverts)].xyz[1]; - norm = gl2psNorm(v); - v[0] /= norm; - v[1] /= norm; - b->verts[1].xyz[0] = prim->verts[gl2psGetIndex(i, prim->numverts)].xyz[0] +0.1*v[0]; - b->verts[1].xyz[1] = prim->verts[gl2psGetIndex(i, prim->numverts)].xyz[1] +0.1*v[1]; - b->verts[1].xyz[2] = prim->verts[gl2psGetIndex(i, prim->numverts)].xyz[2]; -#else - b->verts[0].xyz[0] = prim->verts[i].xyz[0]; - b->verts[0].xyz[1] = prim->verts[i].xyz[1]; - b->verts[0].xyz[2] = prim->verts[i].xyz[2]; - b->verts[1].xyz[0] = prim->verts[gl2psGetIndex(i, prim->numverts)].xyz[0]; - b->verts[1].xyz[1] = prim->verts[gl2psGetIndex(i, prim->numverts)].xyz[1]; - b->verts[1].xyz[2] = prim->verts[gl2psGetIndex(i, prim->numverts)].xyz[2]; -#endif - - b->verts[0].rgba[0] = 0.0F; - b->verts[0].rgba[1] = 0.0F; - b->verts[0].rgba[2] = 0.0F; - b->verts[0].rgba[3] = 0.0F; - b->verts[1].rgba[0] = 0.0F; - b->verts[1].rgba[1] = 0.0F; - b->verts[1].rgba[2] = 0.0F; - b->verts[1].rgba[3] = 0.0F; - gl2psListAdd(list, &b); - } - } - -} - -static void gl2psBuildPolygonBoundary(GL2PSbsptree *tree) -{ - GLint i; - GL2PSprimitive *prim; - - if(!tree) return; - gl2psBuildPolygonBoundary(tree->back); - for(i = 0; i < gl2psListNbr(tree->primitives); i++){ - prim = *(GL2PSprimitive**)gl2psListPointer(tree->primitives, i); - if(prim->boundary) gl2psAddBoundaryInList(prim, tree->primitives); - } - gl2psBuildPolygonBoundary(tree->front); -} - -/********************************************************************* - * - * Feedback buffer parser - * - *********************************************************************/ - -GL2PSDLL_API void gl2psAddPolyPrimitive(GLshort type, GLshort numverts, - GL2PSvertex *verts, GLint offset, - GLfloat ofactor, GLfloat ounits, - GLushort pattern, GLint factor, - GLfloat width, GLint linecap, - GLint linejoin,char boundary) -{ - GL2PSprimitive *prim; - - prim = (GL2PSprimitive*)gl2psMalloc(sizeof(GL2PSprimitive)); - prim->type = type; - prim->numverts = numverts; - prim->verts = (GL2PSvertex*)gl2psMalloc(numverts * sizeof(GL2PSvertex)); - memcpy(prim->verts, verts, numverts * sizeof(GL2PSvertex)); - prim->boundary = boundary; - prim->offset = (char)offset; - prim->ofactor = ofactor; - prim->ounits = ounits; - prim->pattern = pattern; - prim->factor = factor; - prim->width = width; - prim->linecap = linecap; - prim->linejoin = linejoin; - prim->culled = 0; - - /* FIXME: here we should have an option to split stretched - tris/quads to enhance SIMPLE_SORT */ - - gl2psListAdd(gl2ps->primitives, &prim); -} - -static GLint gl2psGetVertex(GL2PSvertex *v, GLfloat *p) -{ - GLint i; - - v->xyz[0] = p[0]; - v->xyz[1] = p[1]; - v->xyz[2] = p[2]; - - if(gl2ps->colormode == GL_COLOR_INDEX && gl2ps->colorsize > 0){ - i = (GLint)(p[3] + 0.5); - v->rgba[0] = gl2ps->colormap[i][0]; - v->rgba[1] = gl2ps->colormap[i][1]; - v->rgba[2] = gl2ps->colormap[i][2]; - v->rgba[3] = gl2ps->colormap[i][3]; - return 4; - } - else{ - v->rgba[0] = p[3]; - v->rgba[1] = p[4]; - v->rgba[2] = p[5]; - v->rgba[3] = p[6]; - return 7; - } -} - -static void gl2psParseFeedbackBuffer(GLint used) -{ - char flag; - GLushort pattern = 0; - GLboolean boundary; - GLint i, sizeoffloat, count, v, vtot, offset = 0, factor = 0, auxindex = 0; - GLint lcap = 0, ljoin = 0; - GLfloat lwidth = 1.0F, psize = 1.0F, ofactor = 0.0F, ounits = 0.0F; - GLfloat *current; - GL2PSvertex vertices[3]; - GL2PSprimitive *prim; - GL2PSimagemap *node; - - current = gl2ps->feedback; - boundary = gl2ps->boundary = GL_FALSE; - - while(used > 0){ - - if(GL_TRUE == boundary) gl2ps->boundary = GL_TRUE; - - switch((GLint)*current){ - case GL_POINT_TOKEN : - current ++; - used --; - i = gl2psGetVertex(&vertices[0], current); - current += i; - used -= i; - gl2psAddPolyPrimitive(GL2PS_POINT, 1, vertices, 0, 0.0, 0.0, - pattern, factor, psize, lcap, ljoin, 0); - break; - case GL_LINE_TOKEN : - case GL_LINE_RESET_TOKEN : - current ++; - used --; - i = gl2psGetVertex(&vertices[0], current); - current += i; - used -= i; - i = gl2psGetVertex(&vertices[1], current); - current += i; - used -= i; - gl2psAddPolyPrimitive(GL2PS_LINE, 2, vertices, 0, 0.0, 0.0, - pattern, factor, lwidth, lcap, ljoin, 0); - break; - case GL_POLYGON_TOKEN : - count = (GLint)current[1]; - current += 2; - used -= 2; - v = vtot = 0; - while(count > 0 && used > 0){ - i = gl2psGetVertex(&vertices[v], current); - gl2psAdaptVertexForBlending(&vertices[v]); - current += i; - used -= i; - count --; - vtot++; - if(v == 2){ - if(GL_TRUE == boundary){ - if(!count && vtot == 2) flag = 1|2|4; - else if(!count) flag = 2|4; - else if(vtot == 2) flag = 1|2; - else flag = 2; - } - else - flag = 0; - gl2psAddPolyPrimitive(GL2PS_TRIANGLE, 3, vertices, offset, ofactor, - ounits, pattern, factor, 1, lcap, ljoin, - flag); - vertices[1] = vertices[2]; - } - else - v ++; - } - break; - case GL_BITMAP_TOKEN : - case GL_DRAW_PIXEL_TOKEN : - case GL_COPY_PIXEL_TOKEN : - current ++; - used --; - i = gl2psGetVertex(&vertices[0], current); - current += i; - used -= i; - break; - case GL_PASS_THROUGH_TOKEN : - switch((GLint)current[1]){ - case GL2PS_BEGIN_OFFSET_TOKEN : - offset = 1; - current += 2; - used -= 2; - ofactor = current[1]; - current += 2; - used -= 2; - ounits = current[1]; - break; - case GL2PS_END_OFFSET_TOKEN : - offset = 0; - ofactor = 0.0; - ounits = 0.0; - break; - case GL2PS_BEGIN_BOUNDARY_TOKEN : boundary = GL_TRUE; break; - case GL2PS_END_BOUNDARY_TOKEN : boundary = GL_FALSE; break; - case GL2PS_END_STIPPLE_TOKEN : pattern = 0; factor = 0; break; - case GL2PS_BEGIN_BLEND_TOKEN : gl2ps->blending = GL_TRUE; break; - case GL2PS_END_BLEND_TOKEN : gl2ps->blending = GL_FALSE; break; - case GL2PS_BEGIN_STIPPLE_TOKEN : - current += 2; - used -= 2; - pattern = (GLushort)current[1]; - current += 2; - used -= 2; - factor = (GLint)current[1]; - break; - case GL2PS_SRC_BLEND_TOKEN : - current += 2; - used -= 2; - gl2ps->blendfunc[0] = (GLint)current[1]; - break; - case GL2PS_DST_BLEND_TOKEN : - current += 2; - used -= 2; - gl2ps->blendfunc[1] = (GLint)current[1]; - break; - case GL2PS_POINT_SIZE_TOKEN : - current += 2; - used -= 2; - psize = current[1]; - break; - case GL2PS_LINE_CAP_TOKEN : - current += 2; - used -= 2; - lcap = (GLint)current[1]; - break; - case GL2PS_LINE_JOIN_TOKEN : - current += 2; - used -= 2; - ljoin = (GLint)current[1]; - break; - case GL2PS_LINE_WIDTH_TOKEN : - current += 2; - used -= 2; - lwidth = current[1]; - break; - case GL2PS_IMAGEMAP_TOKEN : - prim = (GL2PSprimitive *)gl2psMalloc(sizeof(GL2PSprimitive)); - prim->type = GL2PS_IMAGEMAP; - prim->boundary = 0; - prim->numverts = 4; - prim->verts = (GL2PSvertex *)gl2psMalloc(4 * sizeof(GL2PSvertex)); - prim->culled = 0; - prim->offset = 0; - prim->ofactor = 0.0; - prim->ounits = 0.0; - prim->pattern = 0; - prim->factor = 0; - prim->width = 1; - - node = (GL2PSimagemap*)gl2psMalloc(sizeof(GL2PSimagemap)); - node->image = (GL2PSimage*)gl2psMalloc(sizeof(GL2PSimage)); - node->image->type = 0; - node->image->format = 0; - node->image->zoom_x = 1.0F; - node->image->zoom_y = 1.0F; - node->next = NULL; - - if(gl2ps->imagemap_head == NULL) - gl2ps->imagemap_head = node; - else - gl2ps->imagemap_tail->next = node; - gl2ps->imagemap_tail = node; - prim->data.image = node->image; - - current += 2; used -= 2; - i = gl2psGetVertex(&prim->verts[0], ¤t[1]); - current += i; used -= i; - - node->image->width = (GLint)current[2]; - current += 2; used -= 2; - node->image->height = (GLint)current[2]; - prim->verts[0].xyz[0] = prim->verts[0].xyz[0] - (int)(node->image->width / 2) + 0.5F; - prim->verts[0].xyz[1] = prim->verts[0].xyz[1] - (int)(node->image->height / 2) + 0.5F; - for(i = 1; i < 4; i++){ - for(v = 0; v < 3; v++){ - prim->verts[i].xyz[v] = prim->verts[0].xyz[v]; - prim->verts[i].rgba[v] = prim->verts[0].rgba[v]; - } - prim->verts[i].rgba[v] = prim->verts[0].rgba[v]; - } - prim->verts[1].xyz[0] = prim->verts[1].xyz[0] + node->image->width; - prim->verts[2].xyz[0] = prim->verts[1].xyz[0]; - prim->verts[2].xyz[1] = prim->verts[2].xyz[1] + node->image->height; - prim->verts[3].xyz[1] = prim->verts[2].xyz[1]; - - sizeoffloat = sizeof(GLfloat); - v = 2 * sizeoffloat; - vtot = node->image->height + node->image->height * - ((node->image->width - 1) / 8); - node->image->pixels = (GLfloat*)gl2psMalloc(v + vtot); - node->image->pixels[0] = prim->verts[0].xyz[0]; - node->image->pixels[1] = prim->verts[0].xyz[1]; - - for(i = 0; i < vtot; i += sizeoffloat){ - current += 2; used -= 2; - if((vtot - i) >= 4) - memcpy(&(((char*)(node->image->pixels))[i + v]), &(current[2]), sizeoffloat); - else - memcpy(&(((char*)(node->image->pixels))[i + v]), &(current[2]), vtot - i); - } - current++; used--; - gl2psListAdd(gl2ps->primitives, &prim); - break; - case GL2PS_DRAW_PIXELS_TOKEN : - case GL2PS_TEXT_TOKEN : - if(auxindex < gl2psListNbr(gl2ps->auxprimitives)) - gl2psListAdd(gl2ps->primitives, - gl2psListPointer(gl2ps->auxprimitives, auxindex++)); - else - gl2psMsg(GL2PS_ERROR, "Wrong number of auxiliary tokens in buffer"); - break; - } - current += 2; - used -= 2; - break; - default : - gl2psMsg(GL2PS_WARNING, "Unknown token in buffer"); - current ++; - used --; - break; - } - } - - gl2psListReset(gl2ps->auxprimitives); -} - -/********************************************************************* - * - * PostScript routines - * - *********************************************************************/ - -static void gl2psWriteByte(unsigned char byte) -{ - unsigned char h = byte / 16; - unsigned char l = byte % 16; - gl2psPrintf("%x%x", h, l); -} - -static void gl2psPrintPostScriptPixmap(GLfloat x, GLfloat y, GL2PSimage *im) -{ - GLuint nbhex, nbyte, nrgb, nbits; - GLuint row, col, ibyte, icase; - GLfloat dr = 0., dg = 0., db = 0., fgrey; - unsigned char red = 0, green = 0, blue = 0, b, grey; - GLuint width = (GLuint)im->width; - GLuint height = (GLuint)im->height; - - /* FIXME: should we define an option for these? Or just keep the - 8-bit per component case? */ - int greyscale = 0; /* set to 1 to output greyscale image */ - int nbit = 8; /* number of bits per color compoment (2, 4 or 8) */ - - if((width <= 0) || (height <= 0)) return; - - gl2psPrintf("gsave\n"); - gl2psPrintf("%.2f %.2f translate\n", x, y); - gl2psPrintf("%.2f %.2f scale\n", width * im->zoom_x, height * im->zoom_y); - - if(greyscale){ /* greyscale */ - gl2psPrintf("/picstr %d string def\n", width); - gl2psPrintf("%d %d %d\n", width, height, 8); - gl2psPrintf("[ %d 0 0 -%d 0 %d ]\n", width, height, height); - gl2psPrintf("{ currentfile picstr readhexstring pop }\n"); - gl2psPrintf("image\n"); - for(row = 0; row < height; row++){ - for(col = 0; col < width; col++){ - gl2psGetRGB(im, col, row, &dr, &dg, &db); - fgrey = (0.30F * dr + 0.59F * dg + 0.11F * db); - grey = (unsigned char)(255. * fgrey); - gl2psWriteByte(grey); - } - gl2psPrintf("\n"); - } - nbhex = width * height * 2; - gl2psPrintf("%%%% nbhex digit :%d\n", nbhex); - } - else if(nbit == 2){ /* color, 2 bits for r and g and b; rgbs following each other */ - nrgb = width * 3; - nbits = nrgb * nbit; - nbyte = nbits / 8; - if((nbyte * 8) != nbits) nbyte++; - gl2psPrintf("/rgbstr %d string def\n", nbyte); - gl2psPrintf("%d %d %d\n", width, height, nbit); - gl2psPrintf("[ %d 0 0 -%d 0 %d ]\n", width, height, height); - gl2psPrintf("{ currentfile rgbstr readhexstring pop }\n"); - gl2psPrintf("false 3\n"); - gl2psPrintf("colorimage\n"); - for(row = 0; row < height; row++){ - icase = 1; - col = 0; - b = 0; - for(ibyte = 0; ibyte < nbyte; ibyte++){ - if(icase == 1) { - if(col < width) { - gl2psGetRGB(im, col, row, &dr, &dg, &db); - } - else { - dr = dg = db = 0; - } - col++; - red = (unsigned char)(3. * dr); - green = (unsigned char)(3. * dg); - blue = (unsigned char)(3. * db); - b = red; - b = (b<<2) + green; - b = (b<<2) + blue; - if(col < width) { - gl2psGetRGB(im, col, row, &dr, &dg, &db); - } - else { - dr = dg = db = 0; - } - col++; - red = (unsigned char)(3. * dr); - green = (unsigned char)(3. * dg); - blue = (unsigned char)(3. * db); - b = (b<<2) + red; - gl2psWriteByte(b); - b = 0; - icase++; - } - else if(icase == 2) { - b = green; - b = (b<<2) + blue; - if(col < width) { - gl2psGetRGB(im, col, row, &dr, &dg, &db); - } - else { - dr = dg = db = 0; - } - col++; - red = (unsigned char)(3. * dr); - green = (unsigned char)(3. * dg); - blue = (unsigned char)(3. * db); - b = (b<<2) + red; - b = (b<<2) + green; - gl2psWriteByte(b); - b = 0; - icase++; - } - else if(icase == 3) { - b = blue; - if(col < width) { - gl2psGetRGB(im, col, row, &dr, &dg, &db); - } - else { - dr = dg = db = 0; - } - col++; - red = (unsigned char)(3. * dr); - green = (unsigned char)(3. * dg); - blue = (unsigned char)(3. * db); - b = (b<<2) + red; - b = (b<<2) + green; - b = (b<<2) + blue; - gl2psWriteByte(b); - b = 0; - icase = 1; - } - } - gl2psPrintf("\n"); - } - } - else if(nbit == 4){ /* color, 4 bits for r and g and b; rgbs following each other */ - nrgb = width * 3; - nbits = nrgb * nbit; - nbyte = nbits / 8; - if((nbyte * 8) != nbits) nbyte++; - gl2psPrintf("/rgbstr %d string def\n", nbyte); - gl2psPrintf("%d %d %d\n", width, height, nbit); - gl2psPrintf("[ %d 0 0 -%d 0 %d ]\n", width, height, height); - gl2psPrintf("{ currentfile rgbstr readhexstring pop }\n"); - gl2psPrintf("false 3\n"); - gl2psPrintf("colorimage\n"); - for(row = 0; row < height; row++){ - col = 0; - icase = 1; - for(ibyte = 0; ibyte < nbyte; ibyte++){ - if(icase == 1) { - if(col < width) { - gl2psGetRGB(im, col, row, &dr, &dg, &db); - } - else { - dr = dg = db = 0; - } - col++; - red = (unsigned char)(15. * dr); - green = (unsigned char)(15. * dg); - gl2psPrintf("%x%x", red, green); - icase++; - } - else if(icase == 2) { - blue = (unsigned char)(15. * db); - if(col < width) { - gl2psGetRGB(im, col, row, &dr, &dg, &db); - } - else { - dr = dg = db = 0; - } - col++; - red = (unsigned char)(15. * dr); - gl2psPrintf("%x%x", blue, red); - icase++; - } - else if(icase == 3) { - green = (unsigned char)(15. * dg); - blue = (unsigned char)(15. * db); - gl2psPrintf("%x%x", green, blue); - icase = 1; - } - } - gl2psPrintf("\n"); - } - } - else{ /* 8 bit for r and g and b */ - nbyte = width * 3; - gl2psPrintf("/rgbstr %d string def\n", nbyte); - gl2psPrintf("%d %d %d\n", width, height, 8); - gl2psPrintf("[ %d 0 0 -%d 0 %d ]\n", width, height, height); - gl2psPrintf("{ currentfile rgbstr readhexstring pop }\n"); - gl2psPrintf("false 3\n"); - gl2psPrintf("colorimage\n"); - for(row = 0; row < height; row++){ - for(col = 0; col < width; col++){ - gl2psGetRGB(im, col, row, &dr, &dg, &db); - red = (unsigned char)(255. * dr); - gl2psWriteByte(red); - green = (unsigned char)(255. * dg); - gl2psWriteByte(green); - blue = (unsigned char)(255. * db); - gl2psWriteByte(blue); - } - gl2psPrintf("\n"); - } - } - - gl2psPrintf("grestore\n"); -} - -static void gl2psPrintPostScriptImagemap(GLfloat x, GLfloat y, - GLsizei width, GLsizei height, - const unsigned char *imagemap){ - int i, size; - - if((width <= 0) || (height <= 0)) return; - - size = height + height * (width - 1) / 8; - - gl2psPrintf("gsave\n"); - gl2psPrintf("%.2f %.2f translate\n", x, y); - gl2psPrintf("%d %d scale\n%d %d\ntrue\n", width, height,width, height); - gl2psPrintf("[ %d 0 0 -%d 0 %d ] {<", width, height); - for(i = 0; i < size; i++){ - gl2psWriteByte(*imagemap); - imagemap++; - } - gl2psPrintf(">} imagemask\ngrestore\n"); -} - -static void gl2psPrintPostScriptHeader(void) -{ - time_t now; - - /* Since compression is not part of the PostScript standard, - compressed PostScript files are just gzipped PostScript files - ("ps.gz" or "eps.gz") */ - gl2psPrintGzipHeader(); - - time(&now); - - if(gl2ps->format == GL2PS_PS){ - gl2psPrintf("%%!PS-Adobe-3.0\n"); - } - else{ - gl2psPrintf("%%!PS-Adobe-3.0 EPSF-3.0\n"); - } - - gl2psPrintf("%%%%Title: %s\n" - "%%%%Creator: GL2PS %d.%d.%d%s, %s\n" - "%%%%For: %s\n" - "%%%%CreationDate: %s" - "%%%%LanguageLevel: 3\n" - "%%%%DocumentData: Clean7Bit\n" - "%%%%Pages: 1\n", - gl2ps->title, GL2PS_MAJOR_VERSION, GL2PS_MINOR_VERSION, - GL2PS_PATCH_VERSION, GL2PS_EXTRA_VERSION, GL2PS_COPYRIGHT, - gl2ps->producer, ctime(&now)); - - if(gl2ps->format == GL2PS_PS){ - gl2psPrintf("%%%%Orientation: %s\n" - "%%%%DocumentMedia: Default %d %d 0 () ()\n", - (gl2ps->options & GL2PS_LANDSCAPE) ? "Landscape" : "Portrait", - (gl2ps->options & GL2PS_LANDSCAPE) ? (int)gl2ps->viewport[3] : - (int)gl2ps->viewport[2], - (gl2ps->options & GL2PS_LANDSCAPE) ? (int)gl2ps->viewport[2] : - (int)gl2ps->viewport[3]); - } - - gl2psPrintf("%%%%BoundingBox: %d %d %d %d\n" - "%%%%EndComments\n", - (gl2ps->options & GL2PS_LANDSCAPE) ? (int)gl2ps->viewport[1] : - (int)gl2ps->viewport[0], - (gl2ps->options & GL2PS_LANDSCAPE) ? (int)gl2ps->viewport[0] : - (int)gl2ps->viewport[1], - (gl2ps->options & GL2PS_LANDSCAPE) ? (int)gl2ps->viewport[3] : - (int)gl2ps->viewport[2], - (gl2ps->options & GL2PS_LANDSCAPE) ? (int)gl2ps->viewport[2] : - (int)gl2ps->viewport[3]); - - /* RGB color: r g b C (replace C by G in output to change from rgb to gray) - Grayscale: r g b G - Font choose: size fontname FC - Text string: (string) x y size fontname S?? - Rotated text string: (string) angle x y size fontname S??R - Point primitive: x y size P - Line width: width W - Line start: x y LS - Line joining last point: x y L - Line end: x y LE - Flat-shaded triangle: x3 y3 x2 y2 x1 y1 T - Smooth-shaded triangle: x3 y3 r3 g3 b3 x2 y2 r2 g2 b2 x1 y1 r1 g1 b1 ST */ - - gl2psPrintf("%%%%BeginProlog\n" - "/gl2psdict 64 dict def gl2psdict begin\n" - "/tryPS3shading %s def %% set to false to force subdivision\n" - "/rThreshold %g def %% red component subdivision threshold\n" - "/gThreshold %g def %% green component subdivision threshold\n" - "/bThreshold %g def %% blue component subdivision threshold\n", - (gl2ps->options & GL2PS_NO_PS3_SHADING) ? "false" : "true", - gl2ps->threshold[0], gl2ps->threshold[1], gl2ps->threshold[2]); - - gl2psPrintf("/BD { bind def } bind def\n" - "/C { setrgbcolor } BD\n" - "/G { 0.082 mul exch 0.6094 mul add exch 0.3086 mul add neg 1.0 add setgray } BD\n" - "/W { setlinewidth } BD\n" - "/LC { setlinecap } BD\n" - "/LJ { setlinejoin } BD\n"); - - gl2psPrintf("/FC { findfont exch /SH exch def SH scalefont setfont } BD\n" - "/SW { dup stringwidth pop } BD\n" - "/S { FC moveto show } BD\n" - "/SBC{ FC moveto SW -2 div 0 rmoveto show } BD\n" - "/SBR{ FC moveto SW neg 0 rmoveto show } BD\n" - "/SCL{ FC moveto 0 SH -2 div rmoveto show } BD\n" - "/SCC{ FC moveto SW -2 div SH -2 div rmoveto show } BD\n" - "/SCR{ FC moveto SW neg SH -2 div rmoveto show } BD\n" - "/STL{ FC moveto 0 SH neg rmoveto show } BD\n" - "/STC{ FC moveto SW -2 div SH neg rmoveto show } BD\n" - "/STR{ FC moveto SW neg SH neg rmoveto show } BD\n"); - - /* rotated text routines: same nameanem with R appended */ - - gl2psPrintf("/FCT { FC translate 0 0 } BD\n" - "/SR { gsave FCT moveto rotate show grestore } BD\n" - "/SBCR{ gsave FCT moveto rotate SW -2 div 0 rmoveto show grestore } BD\n" - "/SBRR{ gsave FCT moveto rotate SW neg 0 rmoveto show grestore } BD\n" - "/SCLR{ gsave FCT moveto rotate 0 SH -2 div rmoveto show grestore} BD\n"); - gl2psPrintf("/SCCR{ gsave FCT moveto rotate SW -2 div SH -2 div rmoveto show grestore} BD\n" - "/SCRR{ gsave FCT moveto rotate SW neg SH -2 div rmoveto show grestore} BD\n" - "/STLR{ gsave FCT moveto rotate 0 SH neg rmoveto show grestore } BD\n" - "/STCR{ gsave FCT moveto rotate SW -2 div SH neg rmoveto show grestore } BD\n" - "/STRR{ gsave FCT moveto rotate SW neg SH neg rmoveto show grestore } BD\n"); - - gl2psPrintf("/P { newpath 0.0 360.0 arc closepath fill } BD\n" - "/LS { newpath moveto } BD\n" - "/L { lineto } BD\n" - "/LE { lineto stroke } BD\n" - "/T { newpath moveto lineto lineto closepath fill } BD\n"); - - /* Smooth-shaded triangle with PostScript level 3 shfill operator: - x3 y3 r3 g3 b3 x2 y2 r2 g2 b2 x1 y1 r1 g1 b1 STshfill */ - - gl2psPrintf("/STshfill {\n" - " /b1 exch def /g1 exch def /r1 exch def /y1 exch def /x1 exch def\n" - " /b2 exch def /g2 exch def /r2 exch def /y2 exch def /x2 exch def\n" - " /b3 exch def /g3 exch def /r3 exch def /y3 exch def /x3 exch def\n" - " gsave << /ShadingType 4 /ColorSpace [/DeviceRGB]\n" - " /DataSource [ 0 x1 y1 r1 g1 b1 0 x2 y2 r2 g2 b2 0 x3 y3 r3 g3 b3 ] >>\n" - " shfill grestore } BD\n"); - - /* Flat-shaded triangle with middle color: - x3 y3 r3 g3 b3 x2 y2 r2 g2 b2 x1 y1 r1 g1 b1 Tm */ - - gl2psPrintf(/* stack : x3 y3 r3 g3 b3 x2 y2 r2 g2 b2 x1 y1 r1 g1 b1 */ - "/Tm { 3 -1 roll 8 -1 roll 13 -1 roll add add 3 div\n" /* r = (r1+r2+r3)/3 */ - /* stack : x3 y3 g3 b3 x2 y2 g2 b2 x1 y1 g1 b1 r */ - " 3 -1 roll 7 -1 roll 11 -1 roll add add 3 div\n" /* g = (g1+g2+g3)/3 */ - /* stack : x3 y3 b3 x2 y2 b2 x1 y1 b1 r g b */ - " 3 -1 roll 6 -1 roll 9 -1 roll add add 3 div" /* b = (b1+b2+b3)/3 */ - /* stack : x3 y3 x2 y2 x1 y1 r g b */ - " C T } BD\n"); - - /* Split triangle in four sub-triangles (at sides middle points) and call the - STnoshfill procedure on each, interpolating the colors in RGB space: - x3 y3 r3 g3 b3 x2 y2 r2 g2 b2 x1 y1 r1 g1 b1 STsplit - (in procedure comments key: (Vi) = xi yi ri gi bi) */ - - gl2psPrintf("/STsplit {\n" - " 4 index 15 index add 0.5 mul\n" /* x13 = (x1+x3)/2 */ - " 4 index 15 index add 0.5 mul\n" /* y13 = (y1+y3)/2 */ - " 4 index 15 index add 0.5 mul\n" /* r13 = (r1+r3)/2 */ - " 4 index 15 index add 0.5 mul\n" /* g13 = (g1+g3)/2 */ - " 4 index 15 index add 0.5 mul\n" /* b13 = (b1+b3)/2 */ - " 5 copy 5 copy 25 15 roll\n"); - - /* at his point, stack = (V3) (V13) (V13) (V13) (V2) (V1) */ - - gl2psPrintf(" 9 index 30 index add 0.5 mul\n" /* x23 = (x2+x3)/2 */ - " 9 index 30 index add 0.5 mul\n" /* y23 = (y2+y3)/2 */ - " 9 index 30 index add 0.5 mul\n" /* r23 = (r2+r3)/2 */ - " 9 index 30 index add 0.5 mul\n" /* g23 = (g2+g3)/2 */ - " 9 index 30 index add 0.5 mul\n" /* b23 = (b2+b3)/2 */ - " 5 copy 5 copy 35 5 roll 25 5 roll 15 5 roll\n"); - - /* stack = (V3) (V13) (V23) (V13) (V23) (V13) (V23) (V2) (V1) */ - - gl2psPrintf(" 4 index 10 index add 0.5 mul\n" /* x12 = (x1+x2)/2 */ - " 4 index 10 index add 0.5 mul\n" /* y12 = (y1+y2)/2 */ - " 4 index 10 index add 0.5 mul\n" /* r12 = (r1+r2)/2 */ - " 4 index 10 index add 0.5 mul\n" /* g12 = (g1+g2)/2 */ - " 4 index 10 index add 0.5 mul\n" /* b12 = (b1+b2)/2 */ - " 5 copy 5 copy 40 5 roll 25 5 roll 15 5 roll 25 5 roll\n"); - - /* stack = (V3) (V13) (V23) (V13) (V12) (V23) (V13) (V1) (V12) (V23) (V12) (V2) */ - - gl2psPrintf(" STnoshfill STnoshfill STnoshfill STnoshfill } BD\n"); - - /* Gouraud shaded triangle using recursive subdivision until the difference - between corner colors does not exceed the thresholds: - x3 y3 r3 g3 b3 x2 y2 r2 g2 b2 x1 y1 r1 g1 b1 STnoshfill */ - - gl2psPrintf("/STnoshfill {\n" - " 2 index 8 index sub abs rThreshold gt\n" /* |r1-r2|>rth */ - " { STsplit }\n" - " { 1 index 7 index sub abs gThreshold gt\n" /* |g1-g2|>gth */ - " { STsplit }\n" - " { dup 6 index sub abs bThreshold gt\n" /* |b1-b2|>bth */ - " { STsplit }\n" - " { 2 index 13 index sub abs rThreshold gt\n" /* |r1-r3|>rht */ - " { STsplit }\n" - " { 1 index 12 index sub abs gThreshold gt\n" /* |g1-g3|>gth */ - " { STsplit }\n" - " { dup 11 index sub abs bThreshold gt\n" /* |b1-b3|>bth */ - " { STsplit }\n" - " { 7 index 13 index sub abs rThreshold gt\n"); /* |r2-r3|>rht */ - gl2psPrintf(" { STsplit }\n" - " { 6 index 12 index sub abs gThreshold gt\n" /* |g2-g3|>gth */ - " { STsplit }\n" - " { 5 index 11 index sub abs bThreshold gt\n" /* |b2-b3|>bth */ - " { STsplit }\n" - " { Tm }\n" /* all colors sufficiently similar */ - " ifelse }\n" - " ifelse }\n" - " ifelse }\n" - " ifelse }\n" - " ifelse }\n" - " ifelse }\n" - " ifelse }\n" - " ifelse }\n" - " ifelse } BD\n"); - - gl2psPrintf("tryPS3shading\n" - "{ /shfill where\n" - " { /ST { STshfill } BD }\n" - " { /ST { STnoshfill } BD }\n" - " ifelse }\n" - "{ /ST { STnoshfill } BD }\n" - "ifelse\n"); - - gl2psPrintf("end\n" - "%%%%EndProlog\n" - "%%%%BeginSetup\n" - "/DeviceRGB setcolorspace\n" - "gl2psdict begin\n" - "%%%%EndSetup\n" - "%%%%Page: 1 1\n" - "%%%%BeginPageSetup\n"); - - if(gl2ps->options & GL2PS_LANDSCAPE){ - gl2psPrintf("%d 0 translate 90 rotate\n", - (int)gl2ps->viewport[3]); - } - - gl2psPrintf("%%%%EndPageSetup\n" - "mark\n" - "gsave\n" - "1.0 1.0 scale\n"); - - if(gl2ps->options & GL2PS_DRAW_BACKGROUND){ - gl2psPrintf("%g %g %g C\n" - "newpath %d %d moveto %d %d lineto %d %d lineto %d %d lineto\n" - "closepath fill\n", - gl2ps->bgcolor[0], gl2ps->bgcolor[1], gl2ps->bgcolor[2], - (int)gl2ps->viewport[0], (int)gl2ps->viewport[1], (int)gl2ps->viewport[2], - (int)gl2ps->viewport[1], (int)gl2ps->viewport[2], (int)gl2ps->viewport[3], - (int)gl2ps->viewport[0], (int)gl2ps->viewport[3]); - } -} - -static void gl2psPrintPostScriptColor(GL2PSrgba rgba) -{ - if(!gl2psSameColor(gl2ps->lastrgba, rgba)){ - gl2psSetLastColor(rgba); - gl2psPrintf("%g %g %g C\n", rgba[0], rgba[1], rgba[2]); - } -} - -static void gl2psResetPostScriptColor(void) -{ - gl2ps->lastrgba[0] = gl2ps->lastrgba[1] = gl2ps->lastrgba[2] = -1.; -} - -static void gl2psEndPostScriptLine(void) -{ - int i; - if(gl2ps->lastvertex.rgba[0] >= 0.){ - gl2psPrintf("%g %g LE\n", gl2ps->lastvertex.xyz[0], gl2ps->lastvertex.xyz[1]); - for(i = 0; i < 3; i++) - gl2ps->lastvertex.xyz[i] = -1.; - for(i = 0; i < 4; i++) - gl2ps->lastvertex.rgba[i] = -1.; - } -} - -static void gl2psParseStipplePattern(GLushort pattern, GLint factor, - int *nb, int array[10]) -{ - int i, n; - int on[8] = {0, 0, 0, 0, 0, 0, 0, 0}; - int off[8] = {0, 0, 0, 0, 0, 0, 0, 0}; - char tmp[16]; - - /* extract the 16 bits from the OpenGL stipple pattern */ - for(n = 15; n >= 0; n--){ - tmp[n] = (char)(pattern & 0x01); - pattern >>= 1; - } - /* compute the on/off pixel sequence */ - n = 0; - for(i = 0; i < 8; i++){ - while(n < 16 && !tmp[n]){ off[i]++; n++; } - while(n < 16 && tmp[n]){ on[i]++; n++; } - if(n >= 15){ i++; break; } - } - - /* store the on/off array from right to left, starting with off - pixels. The PostScript specification allows for at most 11 - elements in the on/off array, so we limit ourselves to 5 on/off - couples (our longest possible array is thus [on4 off4 on3 off3 - on2 off2 on1 off1 on0 off0]) */ - *nb = 0; - for(n = i - 1; n >= 0; n--){ - array[(*nb)++] = factor * on[n]; - array[(*nb)++] = factor * off[n]; - if(*nb == 10) break; - } -} - -static int gl2psPrintPostScriptDash(GLushort pattern, GLint factor, const char *str) -{ - int len = 0, i, n, array[10]; - - if(pattern == gl2ps->lastpattern && factor == gl2ps->lastfactor) - return 0; - - gl2ps->lastpattern = pattern; - gl2ps->lastfactor = factor; - - if(!pattern || !factor){ - /* solid line */ - len += gl2psPrintf("[] 0 %s\n", str); - } - else{ - gl2psParseStipplePattern(pattern, factor, &n, array); - len += gl2psPrintf("["); - for(i = 0; i < n; i++){ - if(i) len += gl2psPrintf(" "); - len += gl2psPrintf("%d", array[i]); - } - len += gl2psPrintf("] 0 %s\n", str); - } - - return len; -} - -static void gl2psPrintPostScriptPrimitive(void *data) -{ - int newline; - GL2PSprimitive *prim; - - prim = *(GL2PSprimitive**)data; - - if((gl2ps->options & GL2PS_OCCLUSION_CULL) && prim->culled) return; - - /* Every effort is made to draw lines as connected segments (i.e., - using a single PostScript path): this is the only way to get nice - line joins and to not restart the stippling for every line - segment. So if the primitive to print is not a line we must first - finish the current line (if any): */ - if(prim->type != GL2PS_LINE) gl2psEndPostScriptLine(); - - switch(prim->type){ - case GL2PS_POINT : - gl2psPrintPostScriptColor(prim->verts[0].rgba); - gl2psPrintf("%g %g %g P\n", - prim->verts[0].xyz[0], prim->verts[0].xyz[1], 0.5 * prim->width); - break; - case GL2PS_LINE : - if(!gl2psSamePosition(gl2ps->lastvertex.xyz, prim->verts[0].xyz) || - !gl2psSameColor(gl2ps->lastrgba, prim->verts[0].rgba) || - gl2ps->lastlinewidth != prim->width || - gl2ps->lastlinecap != prim->linecap || - gl2ps->lastlinejoin != prim->linejoin || - gl2ps->lastpattern != prim->pattern || - gl2ps->lastfactor != prim->factor){ - /* End the current line if the new segment does not start where - the last one ended, or if the color, the width or the - stippling have changed (multi-stroking lines with changing - colors is necessary until we use /shfill for lines; - unfortunately this means that at the moment we can screw up - line stippling for smooth-shaded lines) */ - gl2psEndPostScriptLine(); - newline = 1; - } - else{ - newline = 0; - } - if(gl2ps->lastlinewidth != prim->width){ - gl2ps->lastlinewidth = prim->width; - gl2psPrintf("%g W\n", gl2ps->lastlinewidth); - } - if(gl2ps->lastlinecap != prim->linecap){ - gl2ps->lastlinecap = prim->linecap; - gl2psPrintf("%d LC\n", gl2ps->lastlinecap); - } - if(gl2ps->lastlinejoin != prim->linejoin){ - gl2ps->lastlinejoin = prim->linejoin; - gl2psPrintf("%d LJ\n", gl2ps->lastlinejoin); - } - gl2psPrintPostScriptDash(prim->pattern, prim->factor, "setdash"); - gl2psPrintPostScriptColor(prim->verts[0].rgba); - gl2psPrintf("%g %g %s\n", prim->verts[0].xyz[0], prim->verts[0].xyz[1], - newline ? "LS" : "L"); - gl2ps->lastvertex = prim->verts[1]; - break; - case GL2PS_TRIANGLE : - if(!gl2psVertsSameColor(prim)){ - gl2psResetPostScriptColor(); - gl2psPrintf("%g %g %g %g %g %g %g %g %g %g %g %g %g %g %g ST\n", - prim->verts[2].xyz[0], prim->verts[2].xyz[1], - prim->verts[2].rgba[0], prim->verts[2].rgba[1], - prim->verts[2].rgba[2], prim->verts[1].xyz[0], - prim->verts[1].xyz[1], prim->verts[1].rgba[0], - prim->verts[1].rgba[1], prim->verts[1].rgba[2], - prim->verts[0].xyz[0], prim->verts[0].xyz[1], - prim->verts[0].rgba[0], prim->verts[0].rgba[1], - prim->verts[0].rgba[2]); - } - else{ - gl2psPrintPostScriptColor(prim->verts[0].rgba); - gl2psPrintf("%g %g %g %g %g %g T\n", - prim->verts[2].xyz[0], prim->verts[2].xyz[1], - prim->verts[1].xyz[0], prim->verts[1].xyz[1], - prim->verts[0].xyz[0], prim->verts[0].xyz[1]); - } - break; - case GL2PS_QUADRANGLE : - gl2psMsg(GL2PS_WARNING, "There should not be any quad left to print"); - break; - case GL2PS_PIXMAP : - gl2psPrintPostScriptPixmap(prim->verts[0].xyz[0], prim->verts[0].xyz[1], - prim->data.image); - break; - case GL2PS_IMAGEMAP : - if(prim->data.image->type != GL2PS_IMAGEMAP_WRITTEN){ - gl2psPrintPostScriptColor(prim->verts[0].rgba); - gl2psPrintPostScriptImagemap(prim->data.image->pixels[0], - prim->data.image->pixels[1], - prim->data.image->width, prim->data.image->height, - (const unsigned char*)(&(prim->data.image->pixels[2]))); - prim->data.image->type = GL2PS_IMAGEMAP_WRITTEN; - } - break; - case GL2PS_TEXT : - gl2psPrintPostScriptColor(prim->verts[0].rgba); - gl2psPrintf("(%s) ", prim->data.text->str); - if(prim->data.text->angle) - gl2psPrintf("%g ", prim->data.text->angle); - gl2psPrintf("%g %g %d /%s ", - prim->verts[0].xyz[0], prim->verts[0].xyz[1], - prim->data.text->fontsize, prim->data.text->fontname); - switch(prim->data.text->alignment){ - case GL2PS_TEXT_C: - gl2psPrintf(prim->data.text->angle ? "SCCR\n" : "SCC\n"); - break; - case GL2PS_TEXT_CL: - gl2psPrintf(prim->data.text->angle ? "SCLR\n" : "SCL\n"); - break; - case GL2PS_TEXT_CR: - gl2psPrintf(prim->data.text->angle ? "SCRR\n" : "SCR\n"); - break; - case GL2PS_TEXT_B: - gl2psPrintf(prim->data.text->angle ? "SBCR\n" : "SBC\n"); - break; - case GL2PS_TEXT_BR: - gl2psPrintf(prim->data.text->angle ? "SBRR\n" : "SBR\n"); - break; - case GL2PS_TEXT_T: - gl2psPrintf(prim->data.text->angle ? "STCR\n" : "STC\n"); - break; - case GL2PS_TEXT_TL: - gl2psPrintf(prim->data.text->angle ? "STLR\n" : "STL\n"); - break; - case GL2PS_TEXT_TR: - gl2psPrintf(prim->data.text->angle ? "STRR\n" : "STR\n"); - break; - case GL2PS_TEXT_BL: - default: - gl2psPrintf(prim->data.text->angle ? "SR\n" : "S\n"); - break; - } - break; - case GL2PS_SPECIAL : - /* alignment contains the format for which the special output text - is intended */ - if(prim->data.text->alignment == GL2PS_PS || - prim->data.text->alignment == GL2PS_EPS) - gl2psPrintf("%s\n", prim->data.text->str); - break; - default : - break; - } -} - -static void gl2psPrintPostScriptFooter(void) -{ - gl2psPrintf("grestore\n" - "showpage\n" - "cleartomark\n" - "%%%%PageTrailer\n" - "%%%%Trailer\n" - "end\n" - "%%%%EOF\n"); - - gl2psPrintGzipFooter(); -} - -static void gl2psPrintPostScriptBeginViewport(GLint viewport[4]) -{ - GLint idx; - GLfloat rgba[4]; - int x = viewport[0], y = viewport[1], w = viewport[2], h = viewport[3]; - - glRenderMode(GL_FEEDBACK); - - if(gl2ps->header){ - gl2psPrintPostScriptHeader(); - gl2ps->header = GL_FALSE; - } - - gl2psResetPostScriptColor(); - gl2psResetLineProperties(); - - gl2psPrintf("gsave\n" - "1.0 1.0 scale\n"); - - if(gl2ps->options & GL2PS_DRAW_BACKGROUND){ - if(gl2ps->colormode == GL_RGBA || gl2ps->colorsize == 0){ - glGetFloatv(GL_COLOR_CLEAR_VALUE, rgba); - } - else{ - glGetIntegerv(GL_INDEX_CLEAR_VALUE, &idx); - rgba[0] = gl2ps->colormap[idx][0]; - rgba[1] = gl2ps->colormap[idx][1]; - rgba[2] = gl2ps->colormap[idx][2]; - rgba[3] = 1.0F; - } - gl2psPrintf("%g %g %g C\n" - "newpath %d %d moveto %d %d lineto %d %d lineto %d %d lineto\n" - "closepath fill\n", - rgba[0], rgba[1], rgba[2], - x, y, x+w, y, x+w, y+h, x, y+h); - } - - gl2psPrintf("newpath %d %d moveto %d %d lineto %d %d lineto %d %d lineto\n" - "closepath clip\n", - x, y, x+w, y, x+w, y+h, x, y+h); - -} - -static GLint gl2psPrintPostScriptEndViewport(void) -{ - GLint res; - - res = gl2psPrintPrimitives(); - gl2psPrintf("grestore\n"); - return res; -} - -static void gl2psPrintPostScriptFinalPrimitive(void) -{ - /* End any remaining line, if any */ - gl2psEndPostScriptLine(); -} - -/* definition of the PostScript and Encapsulated PostScript backends */ - -static GL2PSbackend gl2psPS = { - gl2psPrintPostScriptHeader, - gl2psPrintPostScriptFooter, - gl2psPrintPostScriptBeginViewport, - gl2psPrintPostScriptEndViewport, - gl2psPrintPostScriptPrimitive, - gl2psPrintPostScriptFinalPrimitive, - "ps", - "Postscript" -}; - -static GL2PSbackend gl2psEPS = { - gl2psPrintPostScriptHeader, - gl2psPrintPostScriptFooter, - gl2psPrintPostScriptBeginViewport, - gl2psPrintPostScriptEndViewport, - gl2psPrintPostScriptPrimitive, - gl2psPrintPostScriptFinalPrimitive, - "eps", - "Encapsulated Postscript" -}; - -/********************************************************************* - * - * LaTeX routines - * - *********************************************************************/ - -static void gl2psPrintTeXHeader(void) -{ - char name[256]; - time_t now; - int i; - GLfloat s; - - if(gl2ps->filename && strlen(gl2ps->filename) < 256){ - for(i = (int)strlen(gl2ps->filename) - 1; i >= 0; i--){ - if(gl2ps->filename[i] == '.'){ - strncpy(name, gl2ps->filename, i); - name[i] = '\0'; - break; - } - } - if(i <= 0) strcpy(name, gl2ps->filename); - } - else{ - strcpy(name, "untitled"); - } - - time(&now); - - fprintf(gl2ps->stream, - "%% Title: %s\n" - "%% Creator: GL2PS %d.%d.%d%s, %s\n" - "%% For: %s\n" - "%% CreationDate: %s", - gl2ps->title, GL2PS_MAJOR_VERSION, GL2PS_MINOR_VERSION, - GL2PS_PATCH_VERSION, GL2PS_EXTRA_VERSION, GL2PS_COPYRIGHT, - gl2ps->producer, ctime(&now)); - - s = gl2ps->tex_scaling; - if(s <= 0.) s = 1.; - fprintf(gl2ps->stream, - "\\setlength{\\unitlength}{%gpt}\n" - "\\begin{picture}(0,0)\n" - "\\includegraphics[scale=%g]{%s}\n" - "\\end{picture}%%\n" - "%s\\begin{picture}(%d,%d)(0,0)\n", - s, s, name, - (gl2ps->options & GL2PS_LANDSCAPE) ? "\\rotatebox{90}{" : "", - (int)(gl2ps->viewport[2]), (int)(gl2ps->viewport[3])); -} - -static void gl2psPrintTeXPrimitive(void *data) -{ - GL2PSprimitive *prim; - - prim = *(GL2PSprimitive**)data; - - switch(prim->type){ - case GL2PS_TEXT : - if(!(gl2ps->options & GL2PS_NO_TEX_FONTSIZE)) - fprintf(gl2ps->stream, "\\fontsize{%d}{0}\\selectfont", - prim->data.text->fontsize); - fprintf(gl2ps->stream, "\\put(%g,%g)", - prim->verts[0].xyz[0], - prim->verts[0].xyz[1]); - if(prim->data.text->angle) - fprintf(gl2ps->stream, "{\\rotatebox{%g}", prim->data.text->angle); - fprintf(gl2ps->stream, "{\\makebox(0,0)"); - switch(prim->data.text->alignment){ - case GL2PS_TEXT_C: - fprintf(gl2ps->stream, "{"); - break; - case GL2PS_TEXT_CL: - fprintf(gl2ps->stream, "[l]{"); - break; - case GL2PS_TEXT_CR: - fprintf(gl2ps->stream, "[r]{"); - break; - case GL2PS_TEXT_B: - fprintf(gl2ps->stream, "[b]{"); - break; - case GL2PS_TEXT_BR: - fprintf(gl2ps->stream, "[br]{"); - break; - case GL2PS_TEXT_T: - fprintf(gl2ps->stream, "[t]{"); - break; - case GL2PS_TEXT_TL: - fprintf(gl2ps->stream, "[tl]{"); - break; - case GL2PS_TEXT_TR: - fprintf(gl2ps->stream, "[tr]{"); - break; - case GL2PS_TEXT_BL: - default: - fprintf(gl2ps->stream, "[bl]{"); - break; - } - fprintf(gl2ps->stream, "\\textcolor[rgb]{%g,%g,%g}{{%s}}", - prim->verts[0].rgba[0], prim->verts[0].rgba[1], prim->verts[0].rgba[2], - prim->data.text->str); - if(prim->data.text->angle) - fprintf(gl2ps->stream, "}"); - fprintf(gl2ps->stream, "}}\n"); - break; - case GL2PS_SPECIAL : - /* alignment contains the format for which the special output text - is intended */ - if (prim->data.text->alignment == GL2PS_TEX) - fprintf(gl2ps->stream, "%s\n", prim->data.text->str); - break; - default : - break; - } -} - -static void gl2psPrintTeXFooter(void) -{ - fprintf(gl2ps->stream, "\\end{picture}%s\n", - (gl2ps->options & GL2PS_LANDSCAPE) ? "}" : ""); -} - -static void gl2psPrintTeXBeginViewport(GLint viewport[4]) -{ - (void) viewport; /* not used */ - glRenderMode(GL_FEEDBACK); - - gl2psResetLineProperties(); - - if(gl2ps->header){ - gl2psPrintTeXHeader(); - gl2ps->header = GL_FALSE; - } -} - -static GLint gl2psPrintTeXEndViewport(void) -{ - return gl2psPrintPrimitives(); -} - -static void gl2psPrintTeXFinalPrimitive(void) -{ -} - -/* definition of the LaTeX backend */ - -static GL2PSbackend gl2psTEX = { - gl2psPrintTeXHeader, - gl2psPrintTeXFooter, - gl2psPrintTeXBeginViewport, - gl2psPrintTeXEndViewport, - gl2psPrintTeXPrimitive, - gl2psPrintTeXFinalPrimitive, - "tex", - "LaTeX text" -}; - -/********************************************************************* - * - * PDF routines - * - *********************************************************************/ - -static int gl2psPrintPDFCompressorType(void) -{ -#if defined(GL2PS_HAVE_ZLIB) - if(gl2ps->options & GL2PS_COMPRESS){ - return fprintf(gl2ps->stream, "/Filter [/FlateDecode]\n"); - } -#endif - return 0; -} - -static int gl2psPrintPDFStrokeColor(GL2PSrgba rgba) -{ - int i, offs = 0; - - gl2psSetLastColor(rgba); - for(i = 0; i < 3; ++i){ - if(GL2PS_ZERO(rgba[i])) - offs += gl2psPrintf("%.0f ", 0.); - else if(rgba[i] < 1e-4 || rgba[i] > 1e6) /* avoid %e formatting */ - offs += gl2psPrintf("%f ", rgba[i]); - else - offs += gl2psPrintf("%g ", rgba[i]); - } - offs += gl2psPrintf("RG\n"); - return offs; -} - -static int gl2psPrintPDFFillColor(GL2PSrgba rgba) -{ - int i, offs = 0; - - for(i = 0; i < 3; ++i){ - if(GL2PS_ZERO(rgba[i])) - offs += gl2psPrintf("%.0f ", 0.); - else if(rgba[i] < 1e-4 || rgba[i] > 1e6) /* avoid %e formatting */ - offs += gl2psPrintf("%f ", rgba[i]); - else - offs += gl2psPrintf("%g ", rgba[i]); - } - offs += gl2psPrintf("rg\n"); - return offs; -} - -static int gl2psPrintPDFLineWidth(GLfloat lw) -{ - if(GL2PS_ZERO(lw)) - return gl2psPrintf("%.0f w\n", 0.); - else if(lw < 1e-4 || lw > 1e6) /* avoid %e formatting */ - return gl2psPrintf("%f w\n", lw); - else - return gl2psPrintf("%g w\n", lw); -} - -static int gl2psPrintPDFLineCap(GLint lc) -{ - if(gl2ps->lastlinecap == lc) - return 0; - else - return gl2psPrintf("%d J\n", lc); -} - -static int gl2psPrintPDFLineJoin(GLint lj) -{ - if(gl2ps->lastlinejoin == lj) - return 0; - else - return gl2psPrintf("%d j\n", lj); -} - -static void gl2psPutPDFText(GL2PSstring *text, int cnt, GLfloat x, GLfloat y) -{ - GLfloat rad, crad, srad; - - if(text->angle == 0.0F){ - gl2ps->streamlength += gl2psPrintf - ("BT\n" - "/F%d %d Tf\n" - "%f %f Td\n" - "(%s) Tj\n" - "ET\n", - cnt, text->fontsize, x, y, text->str); - } - else{ - rad = (GLfloat)(3.141593F * text->angle / 180.0F); - srad = (GLfloat)sin(rad); - crad = (GLfloat)cos(rad); - gl2ps->streamlength += gl2psPrintf - ("BT\n" - "/F%d %d Tf\n" - "%f %f %f %f %f %f Tm\n" - "(%s) Tj\n" - "ET\n", - cnt, text->fontsize, crad, srad, -srad, crad, x, y, text->str); - } -} - -/* - This is used for producing aligned text in PDF. (x, y) is the anchor for the - aligned text, (xbl, ybl) is the bottom left corner. Rotation happens - around (x, y).*/ -static void gl2psPutPDFTextBL(GL2PSstring *text, int cnt, GLfloat x, GLfloat y, - GLfloat xbl, GLfloat ybl) -{ - if(text->angle == 0.0F){ - gl2ps->streamlength += gl2psPrintf - ("BT\n" - "/F%d %d Tf\n" - "%f %f Td\n" - "(%s) Tj\n" - "ET\n", - cnt, text->fontsize, xbl, ybl, text->str); - } - else{ - GLfloat a, ca, sa; - GLfloat pi = 3.141593F; - GLfloat i = std::atan2(y - ybl, x - xbl); - GLfloat r = std::sqrt((y - ybl) * (y - ybl) + (x - xbl) * (x - xbl)); - - a = (GLfloat)(pi * text->angle / 180.0F); - sa = (GLfloat)sin(a); - ca = (GLfloat)cos(a); - gl2ps->streamlength += gl2psPrintf - ("BT\n" - "/F%d %d Tf\n" - "%f %f %f %f %f %f Tm\n" - "(%s) Tj\n" - "ET\n", - cnt, text->fontsize, - ca, sa, -sa, ca, - xbl + r * (std::cos(i) - std::cos(i + a)), ybl + r * (std::sin(i) - std::sin(i+a)), text->str); - } -} - -static void gl2psPutPDFSpecial(int prim, int sec, GL2PSstring *text) -{ - gl2ps->streamlength += gl2psPrintf("/GS%d%d gs\n", prim, sec); - gl2ps->streamlength += gl2psPrintf("%s\n", text->str); -} - -static void gl2psPutPDFImage(GL2PSimage *image, int cnt, GLfloat x, GLfloat y) -{ - gl2ps->streamlength += gl2psPrintf - ("q\n" - "%d 0 0 %d %f %f cm\n" - "/Im%d Do\n" - "Q\n", - (int)(image->zoom_x * image->width), (int)(image->zoom_y * image->height), - x, y, cnt); -} - -static void gl2psPDFstacksInit(void) -{ - gl2ps->objects_stack = 7 /* FIXED_XREF_ENTRIES */ + 1; - gl2ps->extgs_stack = 0; - gl2ps->font_stack = 0; - gl2ps->im_stack = 0; - gl2ps->trgroupobjects_stack = 0; - gl2ps->shader_stack = 0; - gl2ps->mshader_stack = 0; -} - -static void gl2psPDFgroupObjectInit(GL2PSpdfgroup *gro) -{ - if(!gro) - return; - - gro->ptrlist = NULL; - gro->fontno = gro->gsno = gro->imno = gro->maskshno = gro->shno - = gro->trgroupno = gro->fontobjno = gro->imobjno = gro->shobjno - = gro->maskshobjno = gro->gsobjno = gro->trgroupobjno = -1; -} - -/* Build up group objects and assign name and object numbers */ - -static void gl2psPDFgroupListInit(void) -{ - int i; - GL2PSprimitive *p = NULL; - GL2PSpdfgroup gro; - int lasttype = GL2PS_NO_TYPE; - GL2PSrgba lastrgba = {-1.0F, -1.0F, -1.0F, -1.0F}; - GLushort lastpattern = 0; - GLint lastfactor = 0; - GLfloat lastwidth = 1; - GLint lastlinecap = 0; - GLint lastlinejoin = 0; - GL2PStriangle lastt, tmpt; - int lastTriangleWasNotSimpleWithSameColor = 0; - - if(!gl2ps->pdfprimlist) - return; - - gl2ps->pdfgrouplist = gl2psListCreate(500, 500, sizeof(GL2PSpdfgroup)); - gl2psInitTriangle(&lastt); - - for(i = 0; i < gl2psListNbr(gl2ps->pdfprimlist); ++i){ - p = *(GL2PSprimitive**)gl2psListPointer(gl2ps->pdfprimlist, i); - switch(p->type){ - case GL2PS_PIXMAP: - gl2psPDFgroupObjectInit(&gro); - gro.ptrlist = gl2psListCreate(1, 2, sizeof(GL2PSprimitive*)); - gro.imno = gl2ps->im_stack++; - gl2psListAdd(gro.ptrlist, &p); - gl2psListAdd(gl2ps->pdfgrouplist, &gro); - break; - case GL2PS_TEXT: - gl2psPDFgroupObjectInit(&gro); - gro.ptrlist = gl2psListCreate(1, 2, sizeof(GL2PSprimitive*)); - gro.fontno = gl2ps->font_stack++; - gl2psListAdd(gro.ptrlist, &p); - gl2psListAdd(gl2ps->pdfgrouplist, &gro); - break; - case GL2PS_LINE: - if(lasttype != p->type || lastwidth != p->width || - lastlinecap != p->linecap || lastlinejoin != p->linejoin || - lastpattern != p->pattern || lastfactor != p->factor || - !gl2psSameColor(p->verts[0].rgba, lastrgba)){ - gl2psPDFgroupObjectInit(&gro); - gro.ptrlist = gl2psListCreate(1, 2, sizeof(GL2PSprimitive*)); - gl2psListAdd(gro.ptrlist, &p); - gl2psListAdd(gl2ps->pdfgrouplist, &gro); - } - else{ - gl2psListAdd(gro.ptrlist, &p); - } - lastpattern = p->pattern; - lastfactor = p->factor; - lastwidth = p->width; - lastlinecap = p->linecap; - lastlinejoin = p->linejoin; - lastrgba[0] = p->verts[0].rgba[0]; - lastrgba[1] = p->verts[0].rgba[1]; - lastrgba[2] = p->verts[0].rgba[2]; - break; - case GL2PS_POINT: - if(lasttype != p->type || lastwidth != p->width || - !gl2psSameColor(p->verts[0].rgba, lastrgba)){ - gl2psPDFgroupObjectInit(&gro); - gro.ptrlist = gl2psListCreate(1,2,sizeof(GL2PSprimitive*)); - gl2psListAdd(gro.ptrlist, &p); - gl2psListAdd(gl2ps->pdfgrouplist, &gro); - } - else{ - gl2psListAdd(gro.ptrlist, &p); - } - lastwidth = p->width; - lastrgba[0] = p->verts[0].rgba[0]; - lastrgba[1] = p->verts[0].rgba[1]; - lastrgba[2] = p->verts[0].rgba[2]; - break; - case GL2PS_TRIANGLE: - gl2psFillTriangleFromPrimitive(&tmpt, p, GL_TRUE); - lastTriangleWasNotSimpleWithSameColor = - !(tmpt.prop & T_CONST_COLOR && tmpt.prop & T_ALPHA_1) || - !gl2psSameColor(tmpt.vertex[0].rgba, lastt.vertex[0].rgba); - if(lasttype == p->type && tmpt.prop == lastt.prop && - lastTriangleWasNotSimpleWithSameColor){ - /* TODO Check here for last alpha */ - gl2psListAdd(gro.ptrlist, &p); - } - else{ - gl2psPDFgroupObjectInit(&gro); - gro.ptrlist = gl2psListCreate(1, 2, sizeof(GL2PSprimitive*)); - gl2psListAdd(gro.ptrlist, &p); - gl2psListAdd(gl2ps->pdfgrouplist, &gro); - } - lastt = tmpt; - break; - case GL2PS_SPECIAL: - gl2psPDFgroupObjectInit(&gro); - gro.ptrlist = gl2psListCreate(1, 2, sizeof(GL2PSprimitive*)); - gl2psListAdd(gro.ptrlist, &p); - gl2psListAdd(gl2ps->pdfgrouplist, &gro); - break; - default: - break; - } - lasttype = p->type; - } -} - -static void gl2psSortOutTrianglePDFgroup(GL2PSpdfgroup *gro) -{ - GL2PStriangle t; - GL2PSprimitive *prim = NULL; - - if(!gro) - return; - - if(!gl2psListNbr(gro->ptrlist)) - return; - - prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, 0); - - if(prim->type != GL2PS_TRIANGLE) - return; - - gl2psFillTriangleFromPrimitive(&t, prim, GL_TRUE); - - if(t.prop & T_CONST_COLOR && t.prop & T_ALPHA_LESS_1){ - gro->gsno = gl2ps->extgs_stack++; - gro->gsobjno = gl2ps->objects_stack ++; - } - else if(t.prop & T_CONST_COLOR && t.prop & T_VAR_ALPHA){ - gro->gsno = gl2ps->extgs_stack++; - gro->gsobjno = gl2ps->objects_stack++; - gro->trgroupno = gl2ps->trgroupobjects_stack++; - gro->trgroupobjno = gl2ps->objects_stack++; - gro->maskshno = gl2ps->mshader_stack++; - gro->maskshobjno = gl2ps->objects_stack++; - } - else if(t.prop & T_VAR_COLOR && t.prop & T_ALPHA_1){ - gro->shno = gl2ps->shader_stack++; - gro->shobjno = gl2ps->objects_stack++; - } - else if(t.prop & T_VAR_COLOR && t.prop & T_ALPHA_LESS_1){ - gro->gsno = gl2ps->extgs_stack++; - gro->gsobjno = gl2ps->objects_stack++; - gro->shno = gl2ps->shader_stack++; - gro->shobjno = gl2ps->objects_stack++; - } - else if(t.prop & T_VAR_COLOR && t.prop & T_VAR_ALPHA){ - gro->gsno = gl2ps->extgs_stack++; - gro->gsobjno = gl2ps->objects_stack++; - gro->shno = gl2ps->shader_stack++; - gro->shobjno = gl2ps->objects_stack++; - gro->trgroupno = gl2ps->trgroupobjects_stack++; - gro->trgroupobjno = gl2ps->objects_stack++; - gro->maskshno = gl2ps->mshader_stack++; - gro->maskshobjno = gl2ps->objects_stack++; - } -} - -/* Main stream data */ - -static void gl2psPDFgroupListWriteMainStream(void) -{ - int i, j, lastel, count; - GL2PSprimitive *prim = NULL, *prev = NULL; - GL2PSpdfgroup *gro; - GL2PStriangle t; - - if(!gl2ps->pdfgrouplist) - return; - - count = gl2psListNbr(gl2ps->pdfgrouplist); - - for(i = 0; i < count; ++i){ - gro = (GL2PSpdfgroup*)gl2psListPointer(gl2ps->pdfgrouplist, i); - - lastel = gl2psListNbr(gro->ptrlist) - 1; - if(lastel < 0) - continue; - - prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, 0); - - switch(prim->type){ - case GL2PS_POINT: - gl2ps->streamlength += gl2psPrintf("1 J\n"); - gl2ps->streamlength += gl2psPrintPDFLineWidth(prim->width); - gl2ps->streamlength += gl2psPrintPDFStrokeColor(prim->verts[0].rgba); - for(j = 0; j <= lastel; ++j){ - prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, j); - gl2ps->streamlength += - gl2psPrintf("%f %f m %f %f l\n", - prim->verts[0].xyz[0], prim->verts[0].xyz[1], - prim->verts[0].xyz[0], prim->verts[0].xyz[1]); - } - gl2ps->streamlength += gl2psPrintf("S\n"); - gl2ps->streamlength += gl2psPrintf("0 J\n"); - break; - case GL2PS_LINE: - /* We try to use as few paths as possible to draw lines, in - order to get nice stippling even when the individual segments - are smaller than the stipple */ - gl2ps->streamlength += gl2psPrintPDFLineWidth(prim->width); - gl2ps->streamlength += gl2psPrintPDFLineCap(prim->linecap); - gl2ps->streamlength += gl2psPrintPDFLineJoin(prim->linejoin); - gl2ps->streamlength += gl2psPrintPDFStrokeColor(prim->verts[0].rgba); - gl2ps->streamlength += gl2psPrintPostScriptDash(prim->pattern, prim->factor, "d"); - /* start new path */ - gl2ps->streamlength += - gl2psPrintf("%f %f m\n", - prim->verts[0].xyz[0], prim->verts[0].xyz[1]); - - for(j = 1; j <= lastel; ++j){ - prev = prim; - prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, j); - if(!gl2psSamePosition(prim->verts[0].xyz, prev->verts[1].xyz)){ - /* the starting point of the new segment does not match the - end point of the previous line, so we end the current - path and start a new one */ - gl2ps->streamlength += - gl2psPrintf("%f %f l\n", - prev->verts[1].xyz[0], prev->verts[1].xyz[1]); - gl2ps->streamlength += - gl2psPrintf("%f %f m\n", - prim->verts[0].xyz[0], prim->verts[0].xyz[1]); - } - else{ - /* the two segements are connected, so we just append to the - current path */ - gl2ps->streamlength += - gl2psPrintf("%f %f l\n", - prim->verts[0].xyz[0], prim->verts[0].xyz[1]); - } - } - /* end last path */ - gl2ps->streamlength += - gl2psPrintf("%f %f l\n", - prim->verts[1].xyz[0], prim->verts[1].xyz[1]); - gl2ps->streamlength += gl2psPrintf("S\n"); - break; - case GL2PS_TRIANGLE: - gl2psFillTriangleFromPrimitive(&t, prim, GL_TRUE); - gl2psSortOutTrianglePDFgroup(gro); - - /* No alpha and const color: Simple PDF draw orders */ - if(t.prop & T_CONST_COLOR && t.prop & T_ALPHA_1){ - gl2ps->streamlength += gl2psPrintPDFFillColor(t.vertex[0].rgba); - for(j = 0; j <= lastel; ++j){ - prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, j); - gl2psFillTriangleFromPrimitive(&t, prim, GL_FALSE); - gl2ps->streamlength - += gl2psPrintf("%f %f m\n" - "%f %f l\n" - "%f %f l\n" - "h f\n", - t.vertex[0].xyz[0], t.vertex[0].xyz[1], - t.vertex[1].xyz[0], t.vertex[1].xyz[1], - t.vertex[2].xyz[0], t.vertex[2].xyz[1]); - } - } - /* Const alpha < 1 and const color: Simple PDF draw orders - and an extra extended Graphics State for the alpha const */ - else if(t.prop & T_CONST_COLOR && t.prop & T_ALPHA_LESS_1){ - gl2ps->streamlength += gl2psPrintf("q\n" - "/GS%d gs\n", - gro->gsno); - gl2ps->streamlength += gl2psPrintPDFFillColor(prim->verts[0].rgba); - for(j = 0; j <= lastel; ++j){ - prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, j); - gl2psFillTriangleFromPrimitive(&t, prim, GL_FALSE); - gl2ps->streamlength - += gl2psPrintf("%f %f m\n" - "%f %f l\n" - "%f %f l\n" - "h f\n", - t.vertex[0].xyz[0], t.vertex[0].xyz[1], - t.vertex[1].xyz[0], t.vertex[1].xyz[1], - t.vertex[2].xyz[0], t.vertex[2].xyz[1]); - } - gl2ps->streamlength += gl2psPrintf("Q\n"); - } - /* Variable alpha and const color: Simple PDF draw orders - and an extra extended Graphics State + Xobject + Shader - object for the alpha mask */ - else if(t.prop & T_CONST_COLOR && t.prop & T_VAR_ALPHA){ - gl2ps->streamlength += gl2psPrintf("q\n" - "/GS%d gs\n" - "/TrG%d Do\n", - gro->gsno, gro->trgroupno); - gl2ps->streamlength += gl2psPrintPDFFillColor(prim->verts[0].rgba); - for(j = 0; j <= lastel; ++j){ - prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, j); - gl2psFillTriangleFromPrimitive(&t, prim, GL_FALSE); - gl2ps->streamlength - += gl2psPrintf("%f %f m\n" - "%f %f l\n" - "%f %f l\n" - "h f\n", - t.vertex[0].xyz[0], t.vertex[0].xyz[1], - t.vertex[1].xyz[0], t.vertex[1].xyz[1], - t.vertex[2].xyz[0], t.vertex[2].xyz[1]); - } - gl2ps->streamlength += gl2psPrintf("Q\n"); - } - /* Variable color and no alpha: Shader Object for the colored - triangle(s) */ - else if(t.prop & T_VAR_COLOR && t.prop & T_ALPHA_1){ - gl2ps->streamlength += gl2psPrintf("/Sh%d sh\n", gro->shno); - } - /* Variable color and const alpha < 1: Shader Object for the - colored triangle(s) and an extra extended Graphics State - for the alpha const */ - else if(t.prop & T_VAR_COLOR && t.prop & T_ALPHA_LESS_1){ - gl2ps->streamlength += gl2psPrintf("q\n" - "/GS%d gs\n" - "/Sh%d sh\n" - "Q\n", - gro->gsno, gro->shno); - } - /* Variable alpha and color: Shader Object for the colored - triangle(s) and an extra extended Graphics State - + Xobject + Shader object for the alpha mask */ - else if(t.prop & T_VAR_COLOR && t.prop & T_VAR_ALPHA){ - gl2ps->streamlength += gl2psPrintf("q\n" - "/GS%d gs\n" - "/TrG%d Do\n" - "/Sh%d sh\n" - "Q\n", - gro->gsno, gro->trgroupno, gro->shno); - } - break; - case GL2PS_PIXMAP: - for(j = 0; j <= lastel; ++j){ - prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, j); - gl2psPutPDFImage(prim->data.image, gro->imno, prim->verts[0].xyz[0], - prim->verts[0].xyz[1]); - } - break; - case GL2PS_TEXT: - for(j = 0; j <= lastel; ++j){ - prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, j); - gl2ps->streamlength += gl2psPrintPDFFillColor(prim->verts[0].rgba); - if (prim->numverts == 2) { - gl2psPutPDFTextBL(prim->data.text, gro->fontno, prim->verts[0].xyz[0], - prim->verts[0].xyz[1], - prim->verts[1].xyz[0], - prim->verts[1].xyz[1]); - } - else { - gl2psPutPDFText(prim->data.text, gro->fontno, prim->verts[0].xyz[0], - prim->verts[0].xyz[1]); - } - } - break; - case GL2PS_SPECIAL: - lastel = gl2psListNbr(gro->ptrlist) - 1; - if(lastel < 0) - continue; - - for(j = 0; j <= lastel; ++j){ - prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, j); - gl2psPutPDFSpecial(i, j, prim->data.text); - } - default: - break; - } - } -} - -/* Graphics State names */ - -static int gl2psPDFgroupListWriteGStateResources(void) -{ - GL2PSpdfgroup *gro; - int offs = 0; - int i; - - offs += fprintf(gl2ps->stream, - "/ExtGState\n" - "<<\n" - "/GSa 7 0 R\n"); - for(i = 0; i < gl2psListNbr(gl2ps->pdfgrouplist); ++i){ - gro = (GL2PSpdfgroup*)gl2psListPointer(gl2ps->pdfgrouplist, i); - if(gro->gsno >= 0) - offs += fprintf(gl2ps->stream, "/GS%d %d 0 R\n", gro->gsno, gro->gsobjno); - } - offs += fprintf(gl2ps->stream, ">>\n"); - return offs; -} - -/* Main Shader names */ - -static int gl2psPDFgroupListWriteShaderResources(void) -{ - GL2PSpdfgroup *gro; - int offs = 0; - int i; - - offs += fprintf(gl2ps->stream, - "/Shading\n" - "<<\n"); - for(i = 0; i < gl2psListNbr(gl2ps->pdfgrouplist); ++i){ - gro = (GL2PSpdfgroup*)gl2psListPointer(gl2ps->pdfgrouplist, i); - if(gro->shno >= 0) - offs += fprintf(gl2ps->stream, "/Sh%d %d 0 R\n", gro->shno, gro->shobjno); - if(gro->maskshno >= 0) - offs += fprintf(gl2ps->stream, "/TrSh%d %d 0 R\n", gro->maskshno, gro->maskshobjno); - } - offs += fprintf(gl2ps->stream,">>\n"); - return offs; -} - -/* Images & Mask Shader XObject names */ -static int gl2psPDFgroupListWriteXObjectResources(void) -{ - int i; - GL2PSprimitive *p = NULL; - GL2PSpdfgroup *gro; - int offs = 0; - - offs += fprintf(gl2ps->stream, - "/XObject\n" - "<<\n"); - - for(i = 0; i < gl2psListNbr(gl2ps->pdfgrouplist); ++i){ - gro = (GL2PSpdfgroup*)gl2psListPointer(gl2ps->pdfgrouplist, i); - if(!gl2psListNbr(gro->ptrlist)) - continue; - p = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, 0); - switch(p->type){ - case GL2PS_PIXMAP: - gro->imobjno = gl2ps->objects_stack++; - if(GL_RGBA == p->data.image->format) /* reserve one object for image mask */ - gl2ps->objects_stack++; - offs += fprintf(gl2ps->stream, "/Im%d %d 0 R\n", gro->imno, gro->imobjno); - break; - case GL2PS_TRIANGLE: - if(gro->trgroupno >=0) - offs += fprintf(gl2ps->stream, "/TrG%d %d 0 R\n", gro->trgroupno, gro->trgroupobjno); - break; - default: - break; - } - } - offs += fprintf(gl2ps->stream,">>\n"); - return offs; -} - -/* Font names */ - -static int gl2psPDFgroupListWriteFontResources(void) -{ - int i; - GL2PSpdfgroup *gro; - int offs = 0; - - offs += fprintf(gl2ps->stream, "/Font\n<<\n"); - - for(i = 0; i < gl2psListNbr(gl2ps->pdfgrouplist); ++i){ - gro = (GL2PSpdfgroup*)gl2psListPointer(gl2ps->pdfgrouplist, i); - if(gro->fontno < 0) - continue; - gro->fontobjno = gl2ps->objects_stack++; - offs += fprintf(gl2ps->stream, "/F%d %d 0 R\n", gro->fontno, gro->fontobjno); - } - offs += fprintf(gl2ps->stream, ">>\n"); - - return offs; -} - -static void gl2psPDFgroupListDelete(void) -{ - int i; - GL2PSpdfgroup *gro = NULL; - - if(!gl2ps->pdfgrouplist) - return; - - for(i = 0; i < gl2psListNbr(gl2ps->pdfgrouplist); ++i){ - gro = (GL2PSpdfgroup*)gl2psListPointer(gl2ps->pdfgrouplist,i); - gl2psListDelete(gro->ptrlist); - } - - gl2psListDelete(gl2ps->pdfgrouplist); - gl2ps->pdfgrouplist = NULL; -} - -/* Print 1st PDF object - file info */ - -static int gl2psPrintPDFInfo(void) -{ - int offs; - time_t now; - struct tm *newtime; - - time(&now); - newtime = gmtime(&now); - - offs = fprintf(gl2ps->stream, - "1 0 obj\n" - "<<\n" - "/Title (%s)\n" - "/Creator (GL2PS %d.%d.%d%s, %s)\n" - "/Producer (%s)\n", - gl2ps->title, GL2PS_MAJOR_VERSION, GL2PS_MINOR_VERSION, - GL2PS_PATCH_VERSION, GL2PS_EXTRA_VERSION, GL2PS_COPYRIGHT, - gl2ps->producer); - - if(!newtime){ - offs += fprintf(gl2ps->stream, - ">>\n" - "endobj\n"); - return offs; - } - - offs += fprintf(gl2ps->stream, - "/CreationDate (D:%d%02d%02d%02d%02d%02d)\n" - ">>\n" - "endobj\n", - newtime->tm_year+1900, - newtime->tm_mon+1, - newtime->tm_mday, - newtime->tm_hour, - newtime->tm_min, - newtime->tm_sec); - return offs; -} - -/* Create catalog and page structure - 2nd and 3th PDF object */ - -static int gl2psPrintPDFCatalog(void) -{ - return fprintf(gl2ps->stream, - "2 0 obj\n" - "<<\n" - "/Type /Catalog\n" - "/Pages 3 0 R\n" - ">>\n" - "endobj\n"); -} - -static int gl2psPrintPDFPages(void) -{ - return fprintf(gl2ps->stream, - "3 0 obj\n" - "<<\n" - "/Type /Pages\n" - "/Kids [6 0 R]\n" - "/Count 1\n" - ">>\n" - "endobj\n"); -} - -/* Open stream for data - graphical objects, fonts etc. PDF object 4 */ - -static int gl2psOpenPDFDataStream(void) -{ - int offs = 0; - - offs += fprintf(gl2ps->stream, - "4 0 obj\n" - "<<\n" - "/Length 5 0 R\n" ); - offs += gl2psPrintPDFCompressorType(); - offs += fprintf(gl2ps->stream, - ">>\n" - "stream\n"); - return offs; -} - -/* Stream setup - Graphics state, fill background if allowed */ - -static int gl2psOpenPDFDataStreamWritePreface(void) -{ - int offs; - - offs = gl2psPrintf("/GSa gs\n"); - - if(gl2ps->options & GL2PS_DRAW_BACKGROUND){ - offs += gl2psPrintPDFFillColor(gl2ps->bgcolor); - offs += gl2psPrintf("%d %d %d %d re\n", - (int)gl2ps->viewport[0], (int)gl2ps->viewport[1], - (int)gl2ps->viewport[2], (int)gl2ps->viewport[3]); - offs += gl2psPrintf("f\n"); - } - return offs; -} - -/* Use the functions above to create the first part of the PDF*/ - -static void gl2psPrintPDFHeader(void) -{ - int offs = 0; - gl2ps->pdfprimlist = gl2psListCreate(500, 500, sizeof(GL2PSprimitive*)); - gl2psPDFstacksInit(); - - gl2ps->xreflist = (int*)gl2psMalloc(sizeof(int) * gl2ps->objects_stack); - -#if defined(GL2PS_HAVE_ZLIB) - if(gl2ps->options & GL2PS_COMPRESS){ - gl2psSetupCompress(); - } -#endif - gl2ps->xreflist[0] = 0; - offs += fprintf(gl2ps->stream, "%%PDF-1.4\n"); - gl2ps->xreflist[1] = offs; - - offs += gl2psPrintPDFInfo(); - gl2ps->xreflist[2] = offs; - - offs += gl2psPrintPDFCatalog(); - gl2ps->xreflist[3] = offs; - - offs += gl2psPrintPDFPages(); - gl2ps->xreflist[4] = offs; - - offs += gl2psOpenPDFDataStream(); - gl2ps->xreflist[5] = offs; /* finished in gl2psPrintPDFFooter */ - gl2ps->streamlength = gl2psOpenPDFDataStreamWritePreface(); -} - -/* The central primitive drawing */ - -static void gl2psPrintPDFPrimitive(void *data) -{ - GL2PSprimitive *prim = *(GL2PSprimitive**)data; - - if((gl2ps->options & GL2PS_OCCLUSION_CULL) && prim->culled) - return; - - prim = gl2psCopyPrimitive(prim); /* deep copy */ - gl2psListAdd(gl2ps->pdfprimlist, &prim); -} - -/* close stream and ... */ - -static int gl2psClosePDFDataStream(void) -{ - int offs = 0; - -#if defined(GL2PS_HAVE_ZLIB) - if(gl2ps->options & GL2PS_COMPRESS){ - if(Z_OK != gl2psDeflate()) - gl2psMsg(GL2PS_ERROR, "Zlib deflate error"); - else - fwrite(gl2ps->compress->dest, gl2ps->compress->destLen, 1, gl2ps->stream); - gl2ps->streamlength += gl2ps->compress->destLen; - - offs += gl2ps->streamlength; - gl2psFreeCompress(); - } -#endif - - offs += fprintf(gl2ps->stream, - "endstream\n" - "endobj\n"); - return offs; -} - -/* ... write the now known length object */ - -static int gl2psPrintPDFDataStreamLength(int val) -{ - return fprintf(gl2ps->stream, - "5 0 obj\n" - "%d\n" - "endobj\n", val); -} - -/* Put the info created before in PDF objects */ - -static int gl2psPrintPDFOpenPage(void) -{ - int offs; - - /* Write fixed part */ - - offs = fprintf(gl2ps->stream, - "6 0 obj\n" - "<<\n" - "/Type /Page\n" - "/Parent 3 0 R\n" - "/MediaBox [%d %d %d %d]\n", - (int)gl2ps->viewport[0], (int)gl2ps->viewport[1], - (int)gl2ps->viewport[2], (int)gl2ps->viewport[3]); - - if(gl2ps->options & GL2PS_LANDSCAPE) - offs += fprintf(gl2ps->stream, "/Rotate -90\n"); - - offs += fprintf(gl2ps->stream, - "/Contents 4 0 R\n" - "/Resources\n" - "<<\n" - "/ProcSet [/PDF /Text /ImageB /ImageC] %%/ImageI\n"); - - return offs; - - /* End fixed part, proceeds in gl2psPDFgroupListWriteVariableResources() */ -} - -static int gl2psPDFgroupListWriteVariableResources(void) -{ - int offs = 0; - - /* a) Graphics States for shader alpha masks*/ - offs += gl2psPDFgroupListWriteGStateResources(); - - /* b) Shader and shader masks */ - offs += gl2psPDFgroupListWriteShaderResources(); - - /* c) XObjects (Images & Shader Masks) */ - offs += gl2psPDFgroupListWriteXObjectResources(); - - /* d) Fonts */ - offs += gl2psPDFgroupListWriteFontResources(); - - /* End resources and page */ - offs += fprintf(gl2ps->stream, - ">>\n" - ">>\n" - "endobj\n"); - return offs; -} - -/* Standard Graphics State */ - -static int gl2psPrintPDFGSObject(void) -{ - return fprintf(gl2ps->stream, - "7 0 obj\n" - "<<\n" - "/Type /ExtGState\n" - "/SA false\n" - "/SM 0.02\n" - "/OP false\n" - "/op false\n" - "/OPM 0\n" - "/BG2 /Default\n" - "/UCR2 /Default\n" - "/TR2 /Default\n" - ">>\n" - "endobj\n"); -} - -/* Put vertex' edge flag (8bit) and coordinates (32bit) in shader stream */ - -static int gl2psPrintPDFShaderStreamDataCoord(GL2PSvertex *vertex, - int (*action)(unsigned long data, int size), - GLfloat dx, GLfloat dy, - GLfloat xmin, GLfloat ymin) -{ - int offs = 0; - unsigned long imap; - GLfloat diff; - double dmax = (double) ULONG_MAX; - char edgeflag = 0; - - /* FIXME: temp bux fix for 64 bit archs: */ - if(sizeof(unsigned long) == 8) dmax = dmax - 2048.; - - offs += (*action)(edgeflag, 1); - - /* The Shader stream in PDF requires to be in a 'big-endian' - order */ - - if(GL2PS_ZERO(dx * dy)){ - offs += (*action)(0, 4); - offs += (*action)(0, 4); - } - else{ - diff = (vertex->xyz[0] - xmin) / dx; - if(diff > 1) - diff = 1.0F; - else if(diff < 0) - diff = 0.0F; - imap = (unsigned long)(diff * dmax); - offs += (*action)(imap, 4); - - diff = (vertex->xyz[1] - ymin) / dy; - if(diff > 1) - diff = 1.0F; - else if(diff < 0) - diff = 0.0F; - imap = (unsigned long)(diff * dmax); - offs += (*action)(imap, 4); - } - - return offs; -} - -/* Put vertex' rgb value (8bit for every component) in shader stream */ - -static int gl2psPrintPDFShaderStreamDataRGB(GL2PSvertex *vertex, - int (*action)(unsigned long data, int size)) -{ - int offs = 0; - unsigned long imap; - double dmax = (double) ULONG_MAX; - - /* FIXME: temp bux fix for 64 bit archs: */ - if(sizeof(unsigned long) == 8) dmax = dmax - 2048.; - - imap = (unsigned long)((vertex->rgba[0]) * dmax); - offs += (*action)(imap, 1); - - imap = (unsigned long)((vertex->rgba[1]) * dmax); - offs += (*action)(imap, 1); - - imap = (unsigned long)((vertex->rgba[2]) * dmax); - offs += (*action)(imap, 1); - - return offs; -} - -/* Put vertex' alpha (8/16bit) in shader stream */ - -static int gl2psPrintPDFShaderStreamDataAlpha(GL2PSvertex *vertex, - int (*action)(unsigned long data, int size), - int sigbyte) -{ - int offs = 0; - unsigned long imap; - double dmax = (double) ULONG_MAX; - - /* FIXME: temp bux fix for 64 bit archs: */ - if(sizeof(unsigned long) == 8) dmax = dmax - 2048.; - - if(sigbyte != 8 && sigbyte != 16) - sigbyte = 8; - - sigbyte /= 8; - - imap = (unsigned long)((vertex->rgba[3]) * dmax); - - offs += (*action)(imap, sigbyte); - - return offs; -} - -/* Put a triangles raw data in shader stream */ - -static int gl2psPrintPDFShaderStreamData(GL2PStriangle *triangle, - GLfloat dx, GLfloat dy, - GLfloat xmin, GLfloat ymin, - int (*action)(unsigned long data, int size), - int gray) -{ - int i, offs = 0; - GL2PSvertex v; - - if(gray && gray != 8 && gray != 16) - gray = 8; - - for(i = 0; i < 3; ++i){ - offs += gl2psPrintPDFShaderStreamDataCoord(&triangle->vertex[i], action, - dx, dy, xmin, ymin); - if(gray){ - v = triangle->vertex[i]; - offs += gl2psPrintPDFShaderStreamDataAlpha(&v, action, gray); - } - else{ - offs += gl2psPrintPDFShaderStreamDataRGB(&triangle->vertex[i], action); - } - } - - return offs; -} - -static void gl2psPDFRectHull(GLfloat *xmin, GLfloat *xmax, - GLfloat *ymin, GLfloat *ymax, - GL2PStriangle *triangles, int cnt) -{ - int i, j; - - *xmin = triangles[0].vertex[0].xyz[0]; - *xmax = triangles[0].vertex[0].xyz[0]; - *ymin = triangles[0].vertex[0].xyz[1]; - *ymax = triangles[0].vertex[0].xyz[1]; - - for(i = 0; i < cnt; ++i){ - for(j = 0; j < 3; ++j){ - if(*xmin > triangles[i].vertex[j].xyz[0]) - *xmin = triangles[i].vertex[j].xyz[0]; - if(*xmax < triangles[i].vertex[j].xyz[0]) - *xmax = triangles[i].vertex[j].xyz[0]; - if(*ymin > triangles[i].vertex[j].xyz[1]) - *ymin = triangles[i].vertex[j].xyz[1]; - if(*ymax < triangles[i].vertex[j].xyz[1]) - *ymax = triangles[i].vertex[j].xyz[1]; - } - } -} - -/* Writes shaded triangle - gray == 0 means write RGB triangles - gray == 8 8bit-grayscale (for alpha masks) - gray == 16 16bit-grayscale (for alpha masks) */ - -static int gl2psPrintPDFShader(int obj, GL2PStriangle *triangles, - int size, int gray) -{ - int i, offs = 0, vertexbytes, done = 0; - GLfloat xmin, xmax, ymin, ymax; - - switch(gray){ - case 0: - vertexbytes = 1+4+4+1+1+1; - break; - case 8: - vertexbytes = 1+4+4+1; - break; - case 16: - vertexbytes = 1+4+4+2; - break; - default: - gray = 8; - vertexbytes = 1+4+4+1; - break; - } - - gl2psPDFRectHull(&xmin, &xmax, &ymin, &ymax, triangles, size); - - offs += fprintf(gl2ps->stream, - "%d 0 obj\n" - "<< " - "/ShadingType 4 " - "/ColorSpace %s " - "/BitsPerCoordinate 32 " - "/BitsPerComponent %d " - "/BitsPerFlag 8 " - "/Decode [%f %f %f %f 0 1 %s] ", - obj, - (gray) ? "/DeviceGray" : "/DeviceRGB", - (gray) ? gray : 8, - xmin, xmax, ymin, ymax, - (gray) ? "" : "0 1 0 1"); - -#if defined(GL2PS_HAVE_ZLIB) - if(gl2ps->options & GL2PS_COMPRESS){ - gl2psAllocCompress(vertexbytes * size * 3); - - for(i = 0; i < size; ++i) - gl2psPrintPDFShaderStreamData(&triangles[i], - xmax-xmin, ymax-ymin, xmin, ymin, - gl2psWriteBigEndianCompress, gray); - - if(Z_OK == gl2psDeflate() && 23 + gl2ps->compress->destLen < gl2ps->compress->srcLen){ - offs += gl2psPrintPDFCompressorType(); - offs += fprintf(gl2ps->stream, - "/Length %d " - ">>\n" - "stream\n", - (int)gl2ps->compress->destLen); - offs += gl2ps->compress->destLen * fwrite(gl2ps->compress->dest, - gl2ps->compress->destLen, - 1, gl2ps->stream); - done = 1; - } - gl2psFreeCompress(); - } -#endif - - if(!done){ - /* no compression, or too long after compression, or compress error - -> write non-compressed entry */ - offs += fprintf(gl2ps->stream, - "/Length %d " - ">>\n" - "stream\n", - vertexbytes * 3 * size); - for(i = 0; i < size; ++i) - offs += gl2psPrintPDFShaderStreamData(&triangles[i], - xmax-xmin, ymax-ymin, xmin, ymin, - gl2psWriteBigEndian, gray); - } - - offs += fprintf(gl2ps->stream, - "\nendstream\n" - "endobj\n"); - - return offs; -} - -/* Writes a XObject for a shaded triangle mask */ - -static int gl2psPrintPDFShaderMask(int obj, int childobj) -{ - int offs = 0, len; - - offs += fprintf(gl2ps->stream, - "%d 0 obj\n" - "<<\n" - "/Type /XObject\n" - "/Subtype /Form\n" - "/BBox [ %d %d %d %d ]\n" - "/Group \n<<\n/S /Transparency /CS /DeviceRGB\n" - ">>\n", - obj, - (int)gl2ps->viewport[0], (int)gl2ps->viewport[1], - (int)gl2ps->viewport[2], (int)gl2ps->viewport[3]); - - len = (childobj>0) - ? (int)strlen("/TrSh sh\n") + (int)log10((double)childobj)+1 - : (int)strlen("/TrSh0 sh\n"); - - offs += fprintf(gl2ps->stream, - "/Length %d\n" - ">>\n" - "stream\n", - len); - offs += fprintf(gl2ps->stream, - "/TrSh%d sh\n", - childobj); - offs += fprintf(gl2ps->stream, - "endstream\n" - "endobj\n"); - - return offs; -} - -/* Writes a Extended graphics state for a shaded triangle mask if - simplealpha ist true the childobj argument is ignored and a /ca - statement will be written instead */ - -static int gl2psPrintPDFShaderExtGS(int obj, int childobj) -{ - int offs = 0; - - offs += fprintf(gl2ps->stream, - "%d 0 obj\n" - "<<\n", - obj); - - offs += fprintf(gl2ps->stream, - "/SMask << /S /Alpha /G %d 0 R >> ", - childobj); - - offs += fprintf(gl2ps->stream, - ">>\n" - "endobj\n"); - return offs; -} - -/* a simple graphics state */ - -static int gl2psPrintPDFShaderSimpleExtGS(int obj, GLfloat alpha) -{ - int offs = 0; - - offs += fprintf(gl2ps->stream, - "%d 0 obj\n" - "<<\n" - "/ca %g" - ">>\n" - "endobj\n", - obj, alpha); - return offs; -} - -/* Similar groups of functions for pixmaps and text */ - -static int gl2psPrintPDFPixmapStreamData(GL2PSimage *im, - int (*action)(unsigned long data, int size), - int gray) -{ - int x, y, shift; - GLfloat r, g, b, a; - - if(im->format != GL_RGBA && gray) - return 0; - - if(gray && gray != 8 && gray != 16) - gray = 8; - - gray /= 8; - - shift = (sizeof(unsigned long) - 1) * 8; - - for(y = 0; y < im->height; ++y){ - for(x = 0; x < im->width; ++x){ - a = gl2psGetRGB(im, x, y, &r, &g, &b); - if(im->format == GL_RGBA && gray){ - (*action)((unsigned long)(a * 255) << shift, gray); - } - else{ - (*action)((unsigned long)(r * 255) << shift, 1); - (*action)((unsigned long)(g * 255) << shift, 1); - (*action)((unsigned long)(b * 255) << shift, 1); - } - } - } - - switch(gray){ - case 0: return 3 * im->width * im->height; - case 1: return im->width * im->height; - case 2: return 2 * im->width * im->height; - default: return 3 * im->width * im->height; - } -} - -static int gl2psPrintPDFPixmap(int obj, int childobj, GL2PSimage *im, int gray) -{ - int offs = 0, done = 0, sigbytes = 3; - - if(gray && gray !=8 && gray != 16) - gray = 8; - - if(gray) - sigbytes = gray / 8; - - offs += fprintf(gl2ps->stream, - "%d 0 obj\n" - "<<\n" - "/Type /XObject\n" - "/Subtype /Image\n" - "/Width %d\n" - "/Height %d\n" - "/ColorSpace %s \n" - "/BitsPerComponent 8\n", - obj, - (int)im->width, (int)im->height, - (gray) ? "/DeviceGray" : "/DeviceRGB" ); - if(GL_RGBA == im->format && gray == 0){ - offs += fprintf(gl2ps->stream, - "/SMask %d 0 R\n", - childobj); - } - -#if defined(GL2PS_HAVE_ZLIB) - if(gl2ps->options & GL2PS_COMPRESS){ - gl2psAllocCompress((int)(im->width * im->height * sigbytes)); - - gl2psPrintPDFPixmapStreamData(im, gl2psWriteBigEndianCompress, gray); - - if(Z_OK == gl2psDeflate() && 23 + gl2ps->compress->destLen < gl2ps->compress->srcLen){ - offs += gl2psPrintPDFCompressorType(); - offs += fprintf(gl2ps->stream, - "/Length %d " - ">>\n" - "stream\n", - (int)gl2ps->compress->destLen); - offs += gl2ps->compress->destLen * fwrite(gl2ps->compress->dest, gl2ps->compress->destLen, - 1, gl2ps->stream); - done = 1; - } - gl2psFreeCompress(); - } -#endif - - if(!done){ - /* no compression, or too long after compression, or compress error - -> write non-compressed entry */ - offs += fprintf(gl2ps->stream, - "/Length %d " - ">>\n" - "stream\n", - (int)(im->width * im->height * sigbytes)); - offs += gl2psPrintPDFPixmapStreamData(im, gl2psWriteBigEndian, gray); - } - - offs += fprintf(gl2ps->stream, - "\nendstream\n" - "endobj\n"); - - return offs; -} - -static int gl2psPrintPDFText(int obj, GL2PSstring *s, int fontnumber) -{ - int offs = 0; - - offs += fprintf(gl2ps->stream, - "%d 0 obj\n" - "<<\n" - "/Type /Font\n" - "/Subtype /Type1\n" - "/Name /F%d\n" - "/BaseFont /%s\n" - "/Encoding /MacRomanEncoding\n" - ">>\n" - "endobj\n", - obj, fontnumber, s->fontname); - return offs; -} - -/* Write the physical objects */ - -static int gl2psPDFgroupListWriteObjects(int entryoffs) -{ - int i,j; - GL2PSprimitive *p = NULL; - GL2PSpdfgroup *gro; - int offs = entryoffs; - GL2PStriangle *triangles; - int size = 0; - - if(!gl2ps->pdfgrouplist) - return offs; - - for(i = 0; i < gl2psListNbr(gl2ps->pdfgrouplist); ++i){ - gro = (GL2PSpdfgroup*)gl2psListPointer(gl2ps->pdfgrouplist, i); - if(!gl2psListNbr(gro->ptrlist)) - continue; - p = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, 0); - switch(p->type){ - case GL2PS_POINT: - break; - case GL2PS_LINE: - break; - case GL2PS_TRIANGLE: - size = gl2psListNbr(gro->ptrlist); - triangles = (GL2PStriangle*)gl2psMalloc(sizeof(GL2PStriangle) * size); - for(j = 0; j < size; ++j){ - p = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, j); - gl2psFillTriangleFromPrimitive(&triangles[j], p, GL_TRUE); - } - if(triangles[0].prop & T_VAR_COLOR){ - gl2ps->xreflist[gro->shobjno] = offs; - offs += gl2psPrintPDFShader(gro->shobjno, triangles, size, 0); - } - if(triangles[0].prop & T_ALPHA_LESS_1){ - gl2ps->xreflist[gro->gsobjno] = offs; - offs += gl2psPrintPDFShaderSimpleExtGS(gro->gsobjno, triangles[0].vertex[0].rgba[3]); - } - if(triangles[0].prop & T_VAR_ALPHA){ - gl2ps->xreflist[gro->gsobjno] = offs; - offs += gl2psPrintPDFShaderExtGS(gro->gsobjno, gro->trgroupobjno); - gl2ps->xreflist[gro->trgroupobjno] = offs; - offs += gl2psPrintPDFShaderMask(gro->trgroupobjno, gro->maskshno); - gl2ps->xreflist[gro->maskshobjno] = offs; - offs += gl2psPrintPDFShader(gro->maskshobjno, triangles, size, 8); - } - gl2psFree(triangles); - break; - case GL2PS_PIXMAP: - gl2ps->xreflist[gro->imobjno] = offs; - offs += gl2psPrintPDFPixmap(gro->imobjno, gro->imobjno+1, p->data.image, 0); - if(p->data.image->format == GL_RGBA){ - gl2ps->xreflist[gro->imobjno+1] = offs; - offs += gl2psPrintPDFPixmap(gro->imobjno+1, -1, p->data.image, 8); - } - break; - case GL2PS_TEXT: - gl2ps->xreflist[gro->fontobjno] = offs; - offs += gl2psPrintPDFText(gro->fontobjno,p->data.text,gro->fontno); - break; - case GL2PS_SPECIAL : - /* alignment contains the format for which the special output text - is intended */ - if(p->data.text->alignment == GL2PS_PDF) - offs += fprintf(gl2ps->stream, "%s\n", p->data.text->str); - break; - default: - break; - } - } - return offs; -} - -/* All variable data has been written at this point and all required - functioninality has been gathered, so we can write now file footer - with cross reference table and trailer */ - -static void gl2psPrintPDFFooter(void) -{ - int i, offs; - - gl2psPDFgroupListInit(); - gl2psPDFgroupListWriteMainStream(); - - offs = gl2ps->xreflist[5] + gl2ps->streamlength; - offs += gl2psClosePDFDataStream(); - gl2ps->xreflist[5] = offs; - - offs += gl2psPrintPDFDataStreamLength(gl2ps->streamlength); - gl2ps->xreflist[6] = offs; - gl2ps->streamlength = 0; - - offs += gl2psPrintPDFOpenPage(); - offs += gl2psPDFgroupListWriteVariableResources(); - gl2ps->xreflist = (int*)gl2psRealloc(gl2ps->xreflist, - sizeof(int) * (gl2ps->objects_stack + 1)); - gl2ps->xreflist[7] = offs; - - offs += gl2psPrintPDFGSObject(); - gl2ps->xreflist[8] = offs; - - gl2ps->xreflist[gl2ps->objects_stack] = - gl2psPDFgroupListWriteObjects(gl2ps->xreflist[8]); - - /* Start cross reference table. The file has to been opened in - binary mode to preserve the 20 digit string length! */ - fprintf(gl2ps->stream, - "xref\n" - "0 %d\n" - "%010d 65535 f \n", gl2ps->objects_stack, 0); - - for(i = 1; i < gl2ps->objects_stack; ++i) - fprintf(gl2ps->stream, "%010d 00000 n \n", gl2ps->xreflist[i]); - - fprintf(gl2ps->stream, - "trailer\n" - "<<\n" - "/Size %d\n" - "/Info 1 0 R\n" - "/Root 2 0 R\n" - ">>\n" - "startxref\n%d\n" - "%%%%EOF\n", - gl2ps->objects_stack, gl2ps->xreflist[gl2ps->objects_stack]); - - /* Free auxiliary lists and arrays */ - gl2psFree(gl2ps->xreflist); - gl2psListAction(gl2ps->pdfprimlist, gl2psFreePrimitive); - gl2psListDelete(gl2ps->pdfprimlist); - gl2psPDFgroupListDelete(); - -#if defined(GL2PS_HAVE_ZLIB) - if(gl2ps->options & GL2PS_COMPRESS){ - gl2psFreeCompress(); - gl2psFree(gl2ps->compress); - gl2ps->compress = NULL; - } -#endif -} - -/* PDF begin viewport */ - -static void gl2psPrintPDFBeginViewport(GLint viewport[4]) -{ - int offs = 0; - GLint idx; - GLfloat rgba[4]; - int x = viewport[0], y = viewport[1], w = viewport[2], h = viewport[3]; - - glRenderMode(GL_FEEDBACK); - - gl2psResetLineProperties(); - - if(gl2ps->header){ - gl2psPrintPDFHeader(); - gl2ps->header = GL_FALSE; - } - - offs += gl2psPrintf("q\n"); - - if(gl2ps->options & GL2PS_DRAW_BACKGROUND){ - if(gl2ps->colormode == GL_RGBA || gl2ps->colorsize == 0){ - glGetFloatv(GL_COLOR_CLEAR_VALUE, rgba); - } - else{ - glGetIntegerv(GL_INDEX_CLEAR_VALUE, &idx); - rgba[0] = gl2ps->colormap[idx][0]; - rgba[1] = gl2ps->colormap[idx][1]; - rgba[2] = gl2ps->colormap[idx][2]; - rgba[3] = 1.0F; - } - offs += gl2psPrintPDFFillColor(rgba); - offs += gl2psPrintf("%d %d %d %d re\n" - "W\n" - "f\n", - x, y, w, h); - } - else{ - offs += gl2psPrintf("%d %d %d %d re\n" - "W\n" - "n\n", - x, y, w, h); - } - - gl2ps->streamlength += offs; -} - -static GLint gl2psPrintPDFEndViewport(void) -{ - GLint res; - - res = gl2psPrintPrimitives(); - gl2ps->streamlength += gl2psPrintf("Q\n"); - return res; -} - -static void gl2psPrintPDFFinalPrimitive(void) -{ -} - -/* definition of the PDF backend */ - -static GL2PSbackend gl2psPDF = { - gl2psPrintPDFHeader, - gl2psPrintPDFFooter, - gl2psPrintPDFBeginViewport, - gl2psPrintPDFEndViewport, - gl2psPrintPDFPrimitive, - gl2psPrintPDFFinalPrimitive, - "pdf", - "Portable Document Format" -}; - -/********************************************************************* - * - * SVG routines - * - *********************************************************************/ - -static void gl2psSVGGetCoordsAndColors(int n, GL2PSvertex *verts, - GL2PSxyz *xyz, GL2PSrgba *rgba) -{ - int i, j; - - for(i = 0; i < n; i++){ - xyz[i][0] = verts[i].xyz[0]; - xyz[i][1] = gl2ps->viewport[3] - verts[i].xyz[1]; - xyz[i][2] = 0.0F; - for(j = 0; j < 4; j++) - rgba[i][j] = verts[i].rgba[j]; - } -} - -static void gl2psSVGGetColorString(GL2PSrgba rgba, char str[32]) -{ - int r = (int)(255. * rgba[0]); - int g = (int)(255. * rgba[1]); - int b = (int)(255. * rgba[2]); - int rc = (r < 0) ? 0 : (r > 255) ? 255 : r; - int gc = (g < 0) ? 0 : (g > 255) ? 255 : g; - int bc = (b < 0) ? 0 : (b > 255) ? 255 : b; - sprintf(str, "#%2.2x%2.2x%2.2x", rc, gc, bc); -} - -static void gl2psPrintSVGHeader(void) -{ - int x, y, width, height; - char col[32]; - time_t now; - - time(&now); - - if (gl2ps->options & GL2PS_LANDSCAPE){ - x = (int)gl2ps->viewport[1]; - y = (int)gl2ps->viewport[0]; - width = (int)gl2ps->viewport[3]; - height = (int)gl2ps->viewport[2]; - } - else{ - x = (int)gl2ps->viewport[0]; - y = (int)gl2ps->viewport[1]; - width = (int)gl2ps->viewport[2]; - height = (int)gl2ps->viewport[3]; - } - - /* Compressed SVG files (.svgz) are simply gzipped SVG files */ - gl2psPrintGzipHeader(); - - gl2psPrintf("\n"); - gl2psPrintf("\n", - width, height, x, y, width, height); - gl2psPrintf("%s\n", gl2ps->title); - gl2psPrintf("\n"); - gl2psPrintf("Creator: GL2PS %d.%d.%d%s, %s\n" - "For: %s\n" - "CreationDate: %s", - GL2PS_MAJOR_VERSION, GL2PS_MINOR_VERSION, GL2PS_PATCH_VERSION, - GL2PS_EXTRA_VERSION, GL2PS_COPYRIGHT, gl2ps->producer, ctime(&now)); - gl2psPrintf("\n"); - gl2psPrintf("\n"); - gl2psPrintf("\n"); - - if(gl2ps->options & GL2PS_DRAW_BACKGROUND){ - gl2psSVGGetColorString(gl2ps->bgcolor, col); - gl2psPrintf("\n", col, - (int)gl2ps->viewport[0], (int)gl2ps->viewport[1], - (int)gl2ps->viewport[2], (int)gl2ps->viewport[1], - (int)gl2ps->viewport[2], (int)gl2ps->viewport[3], - (int)gl2ps->viewport[0], (int)gl2ps->viewport[3]); - } - - /* group all the primitives and disable antialiasing */ - gl2psPrintf("\n"); -} - -static void gl2psPrintSVGSmoothTriangle(GL2PSxyz xyz[3], GL2PSrgba rgba[3]) -{ - int i; - GL2PSxyz xyz2[3]; - GL2PSrgba rgba2[3]; - char col[32]; - - /* Apparently there is no easy way to do Gouraud shading in SVG - without explicitly pre-defining gradients, so for now we just do - recursive subdivision */ - - if(gl2psSameColorThreshold(3, rgba, gl2ps->threshold)){ - gl2psSVGGetColorString(rgba[0], col); - gl2psPrintf("\n", xyz[0][0], xyz[0][1], - xyz[1][0], xyz[1][1], xyz[2][0], xyz[2][1]); - } - else{ - /* subdivide into 4 subtriangles */ - for(i = 0; i < 3; i++){ - xyz2[0][i] = xyz[0][i]; - xyz2[1][i] = 0.5F * (xyz[0][i] + xyz[1][i]); - xyz2[2][i] = 0.5F * (xyz[0][i] + xyz[2][i]); - } - for(i = 0; i < 4; i++){ - rgba2[0][i] = rgba[0][i]; - rgba2[1][i] = 0.5F * (rgba[0][i] + rgba[1][i]); - rgba2[2][i] = 0.5F * (rgba[0][i] + rgba[2][i]); - } - gl2psPrintSVGSmoothTriangle(xyz2, rgba2); - for(i = 0; i < 3; i++){ - xyz2[0][i] = 0.5F * (xyz[0][i] + xyz[1][i]); - xyz2[1][i] = xyz[1][i]; - xyz2[2][i] = 0.5F * (xyz[1][i] + xyz[2][i]); - } - for(i = 0; i < 4; i++){ - rgba2[0][i] = 0.5F * (rgba[0][i] + rgba[1][i]); - rgba2[1][i] = rgba[1][i]; - rgba2[2][i] = 0.5F * (rgba[1][i] + rgba[2][i]); - } - gl2psPrintSVGSmoothTriangle(xyz2, rgba2); - for(i = 0; i < 3; i++){ - xyz2[0][i] = 0.5F * (xyz[0][i] + xyz[2][i]); - xyz2[1][i] = xyz[2][i]; - xyz2[2][i] = 0.5F * (xyz[1][i] + xyz[2][i]); - } - for(i = 0; i < 4; i++){ - rgba2[0][i] = 0.5F * (rgba[0][i] + rgba[2][i]); - rgba2[1][i] = rgba[2][i]; - rgba2[2][i] = 0.5F * (rgba[1][i] + rgba[2][i]); - } - gl2psPrintSVGSmoothTriangle(xyz2, rgba2); - for(i = 0; i < 3; i++){ - xyz2[0][i] = 0.5F * (xyz[0][i] + xyz[1][i]); - xyz2[1][i] = 0.5F * (xyz[1][i] + xyz[2][i]); - xyz2[2][i] = 0.5F * (xyz[0][i] + xyz[2][i]); - } - for(i = 0; i < 4; i++){ - rgba2[0][i] = 0.5F * (rgba[0][i] + rgba[1][i]); - rgba2[1][i] = 0.5F * (rgba[1][i] + rgba[2][i]); - rgba2[2][i] = 0.5F * (rgba[0][i] + rgba[2][i]); - } - gl2psPrintSVGSmoothTriangle(xyz2, rgba2); - } -} - -static void gl2psPrintSVGDash(GLushort pattern, GLint factor) -{ - int i, n, array[10]; - - if(!pattern || !factor) return; /* solid line */ - - gl2psParseStipplePattern(pattern, factor, &n, array); - gl2psPrintf("stroke-dasharray=\""); - for(i = 0; i < n; i++){ - if(i) gl2psPrintf(","); - gl2psPrintf("%d", array[i]); - } - gl2psPrintf("\" "); -} - -static void gl2psEndSVGLine(void) -{ - int i; - if(gl2ps->lastvertex.rgba[0] >= 0.){ - gl2psPrintf("%g,%g\"/>\n", gl2ps->lastvertex.xyz[0], - gl2ps->viewport[3] - gl2ps->lastvertex.xyz[1]); - for(i = 0; i < 3; i++) - gl2ps->lastvertex.xyz[i] = -1.; - for(i = 0; i < 4; i++) - gl2ps->lastvertex.rgba[i] = -1.; - } -} - -static void gl2psPrintSVGPixmap(GLfloat x, GLfloat y, GL2PSimage *pixmap) -{ -#if defined(GL2PS_HAVE_LIBPNG) - GL2PSlist *png; - unsigned char c; - int i; - - /* The only image types supported by the SVG standard are JPEG, PNG - and SVG. Here we choose PNG, and since we want to embed the image - directly in the SVG stream (and not link to an external image - file), we need to encode the pixmap into PNG in memory, then - encode it into base64. */ - - png = gl2psListCreate(pixmap->width * pixmap->height * 3, 1000, - sizeof(unsigned char)); - gl2psConvertPixmapToPNG(pixmap, png); - gl2psListEncodeBase64(png); - - /* Use "transform" attribute to scale and translate the image from - the coordinates origin (0,0) */ - y -= pixmap->zoom_y * (GLfloat)pixmap->height; - gl2psPrintf("width, pixmap->height); - gl2psPrintf("transform=\"matrix(%g,0,0,%g,%g,%g)\"\n", - pixmap->zoom_x, pixmap->zoom_y, x, y); - gl2psPrintf("xlink:href=\"data:image/png;base64,"); - for(i = 0; i < gl2psListNbr(png); i++){ - gl2psListRead(png, i, &c); - gl2psPrintf("%c", c); - } - gl2psPrintf("\"/>\n"); - gl2psListDelete(png); -#else - (void) x; (void) y; (void) pixmap; /* not used */ - gl2psMsg(GL2PS_WARNING, "GL2PS must be compiled with PNG support in " - "order to embed images in SVG streams"); -#endif -} - -static void gl2psPrintSVGPrimitive(void *data) -{ - GL2PSprimitive *prim; - GL2PSxyz xyz[4]; - GL2PSrgba rgba[4]; - char col[32]; - char lcap[7]="", ljoin[7]=""; - int newline; - - prim = *(GL2PSprimitive**)data; - - if((gl2ps->options & GL2PS_OCCLUSION_CULL) && prim->culled) return; - - /* We try to draw connected lines as a single path to get nice line - joins and correct stippling. So if the primitive to print is not - a line we must first finish the current line (if any): */ - if(prim->type != GL2PS_LINE) gl2psEndSVGLine(); - - gl2psSVGGetCoordsAndColors(prim->numverts, prim->verts, xyz, rgba); - - switch(prim->type){ - case GL2PS_POINT : - gl2psSVGGetColorString(rgba[0], col); - gl2psPrintf("\n", - xyz[0][0], xyz[0][1], 0.5 * prim->width); - break; - case GL2PS_LINE : - if(!gl2psSamePosition(gl2ps->lastvertex.xyz, prim->verts[0].xyz) || - !gl2psSameColor(gl2ps->lastrgba, prim->verts[0].rgba) || - gl2ps->lastlinewidth != prim->width || - gl2ps->lastlinecap != prim->linecap || - gl2ps->lastlinejoin != prim->linejoin || - gl2ps->lastpattern != prim->pattern || - gl2ps->lastfactor != prim->factor){ - /* End the current line if the new segment does not start where - the last one ended, or if the color, the width or the - stippling have changed (we will need to use multi-point - gradients for smooth-shaded lines) */ - gl2psEndSVGLine(); - newline = 1; - } - else{ - newline = 0; - } - gl2ps->lastvertex = prim->verts[1]; - gl2psSetLastColor(prim->verts[0].rgba); - gl2ps->lastlinewidth = prim->width; - gl2ps->lastlinecap = prim->linecap; - gl2ps->lastlinejoin = prim->linejoin; - gl2ps->lastpattern = prim->pattern; - gl2ps->lastfactor = prim->factor; - if(newline){ - gl2psSVGGetColorString(rgba[0], col); - gl2psPrintf("width); - switch (prim->linecap){ - case GL2PS_LINE_CAP_BUTT: - sprintf (lcap, "%s", "butt"); - break; - case GL2PS_LINE_CAP_ROUND: - sprintf (lcap, "%s", "round"); - break; - case GL2PS_LINE_CAP_SQUARE: - sprintf (lcap, "%s", "square"); - break; - } - switch (prim->linejoin){ - case GL2PS_LINE_JOIN_MITER: - sprintf (ljoin, "%s", "miter"); - break; - case GL2PS_LINE_JOIN_ROUND: - sprintf (ljoin, "%s", "round"); - break; - case GL2PS_LINE_JOIN_BEVEL: - sprintf (ljoin, "%s", "bevel"); - break; - } - gl2psPrintf("stroke-linecap=\"%s\" stroke-linejoin=\"%s\" ", - lcap, ljoin); - if(rgba[0][3] < 1.0F) gl2psPrintf("stroke-opacity=\"%g\" ", rgba[0][3]); - gl2psPrintSVGDash(prim->pattern, prim->factor); - gl2psPrintf("points=\"%g,%g ", xyz[0][0], xyz[0][1]); - } - else{ - gl2psPrintf("%g,%g ", xyz[0][0], xyz[0][1]); - } - break; - case GL2PS_TRIANGLE : - gl2psPrintSVGSmoothTriangle(xyz, rgba); - break; - case GL2PS_QUADRANGLE : - gl2psMsg(GL2PS_WARNING, "There should not be any quad left to print"); - break; - case GL2PS_PIXMAP : - gl2psPrintSVGPixmap(xyz[0][0], xyz[0][1], prim->data.image); - break; - case GL2PS_TEXT : - gl2psSVGGetColorString(prim->verts[0].rgba, col); - gl2psPrintf("data.text->fontsize); - if(prim->data.text->angle) - gl2psPrintf("transform=\"rotate(%g, %g, %g)\" ", - -prim->data.text->angle, xyz[0][0], xyz[0][1]); - switch(prim->data.text->alignment){ - case GL2PS_TEXT_C: - gl2psPrintf("text-anchor=\"middle\" dy=\"%d\" ", - prim->data.text->fontsize / 2); - break; - case GL2PS_TEXT_CL: - gl2psPrintf("text-anchor=\"start\" dy=\"%d\" ", - prim->data.text->fontsize / 2); - break; - case GL2PS_TEXT_CR: - gl2psPrintf("text-anchor=\"end\" dy=\"%d\" ", - prim->data.text->fontsize / 2); - break; - case GL2PS_TEXT_B: - gl2psPrintf("text-anchor=\"middle\" dy=\"0\" "); - break; - case GL2PS_TEXT_BR: - gl2psPrintf("text-anchor=\"end\" dy=\"0\" "); - break; - case GL2PS_TEXT_T: - gl2psPrintf("text-anchor=\"middle\" dy=\"%d\" ", - prim->data.text->fontsize); - break; - case GL2PS_TEXT_TL: - gl2psPrintf("text-anchor=\"start\" dy=\"%d\" ", - prim->data.text->fontsize); - break; - case GL2PS_TEXT_TR: - gl2psPrintf("text-anchor=\"end\" dy=\"%d\" ", - prim->data.text->fontsize); - break; - case GL2PS_TEXT_BL: - default: /* same as GL2PS_TEXT_BL */ - gl2psPrintf("text-anchor=\"start\" dy=\"0\" "); - break; - } - if(!strcmp(prim->data.text->fontname, "Times-Roman")) - gl2psPrintf("font-family=\"Times\">"); - else if(!strcmp(prim->data.text->fontname, "Times-Bold")) - gl2psPrintf("font-family=\"Times\" font-weight=\"bold\">"); - else if(!strcmp(prim->data.text->fontname, "Times-Italic")) - gl2psPrintf("font-family=\"Times\" font-style=\"italic\">"); - else if(!strcmp(prim->data.text->fontname, "Times-BoldItalic")) - gl2psPrintf("font-family=\"Times\" font-style=\"italic\" font-weight=\"bold\">"); - else if(!strcmp(prim->data.text->fontname, "Helvetica-Bold")) - gl2psPrintf("font-family=\"Helvetica\" font-weight=\"bold\">"); - else if(!strcmp(prim->data.text->fontname, "Helvetica-Oblique")) - gl2psPrintf("font-family=\"Helvetica\" font-style=\"oblique\">"); - else if(!strcmp(prim->data.text->fontname, "Helvetica-BoldOblique")) - gl2psPrintf("font-family=\"Helvetica\" font-style=\"oblique\" font-weight=\"bold\">"); - else if(!strcmp(prim->data.text->fontname, "Courier-Bold")) - gl2psPrintf("font-family=\"Courier\" font-weight=\"bold\">"); - else if(!strcmp(prim->data.text->fontname, "Courier-Oblique")) - gl2psPrintf("font-family=\"Courier\" font-style=\"oblique\">"); - else if(!strcmp(prim->data.text->fontname, "Courier-BoldOblique")) - gl2psPrintf("font-family=\"Courier\" font-style=\"oblique\" font-weight=\"bold\">"); - else - gl2psPrintf("font-family=\"%s\">", prim->data.text->fontname); - gl2psPrintf("%s\n", prim->data.text->str); - break; - case GL2PS_SPECIAL : - /* alignment contains the format for which the special output text - is intended */ - if(prim->data.text->alignment == GL2PS_SVG) - gl2psPrintf("%s\n", prim->data.text->str); - break; - default : - break; - } -} - -static void gl2psPrintSVGFooter(void) -{ - gl2psPrintf("\n"); - gl2psPrintf("\n"); - - gl2psPrintGzipFooter(); -} - -static void gl2psPrintSVGBeginViewport(GLint viewport[4]) -{ - GLint idx; - char col[32]; - GLfloat rgba[4]; - int x = viewport[0], y = viewport[1], w = viewport[2], h = viewport[3]; - - glRenderMode(GL_FEEDBACK); - - gl2psResetLineProperties(); - - if(gl2ps->header){ - gl2psPrintSVGHeader(); - gl2ps->header = GL_FALSE; - } - - if(gl2ps->options & GL2PS_DRAW_BACKGROUND){ - if(gl2ps->colormode == GL_RGBA || gl2ps->colorsize == 0){ - glGetFloatv(GL_COLOR_CLEAR_VALUE, rgba); - } - else{ - glGetIntegerv(GL_INDEX_CLEAR_VALUE, &idx); - rgba[0] = gl2ps->colormap[idx][0]; - rgba[1] = gl2ps->colormap[idx][1]; - rgba[2] = gl2ps->colormap[idx][2]; - rgba[3] = 1.0F; - } - gl2psSVGGetColorString(rgba, col); - gl2psPrintf("viewport[3] - y, - x + w, gl2ps->viewport[3] - y, - x + w, gl2ps->viewport[3] - (y + h), - x, gl2ps->viewport[3] - (y + h)); - gl2psPrintf("shape-rendering=\"crispEdges\"/>\n"); - } - - gl2psPrintf("\n", x, y, w, h); - gl2psPrintf(" \n", - x, gl2ps->viewport[3] - y, - x + w, gl2ps->viewport[3] - y, - x + w, gl2ps->viewport[3] - (y + h), - x, gl2ps->viewport[3] - (y + h)); - gl2psPrintf("\n"); - gl2psPrintf("\n", x, y, w, h); -} - -static GLint gl2psPrintSVGEndViewport(void) -{ - GLint res; - - res = gl2psPrintPrimitives(); - gl2psPrintf("\n"); - return res; -} - -static void gl2psPrintSVGFinalPrimitive(void) -{ - /* End any remaining line, if any */ - gl2psEndSVGLine(); -} - -/* definition of the SVG backend */ - -static GL2PSbackend gl2psSVG = { - gl2psPrintSVGHeader, - gl2psPrintSVGFooter, - gl2psPrintSVGBeginViewport, - gl2psPrintSVGEndViewport, - gl2psPrintSVGPrimitive, - gl2psPrintSVGFinalPrimitive, - "svg", - "Scalable Vector Graphics" -}; - -/********************************************************************* - * - * PGF routines - * - *********************************************************************/ - -static void gl2psPrintPGFColor(GL2PSrgba rgba) -{ - if(!gl2psSameColor(gl2ps->lastrgba, rgba)){ - gl2psSetLastColor(rgba); - fprintf(gl2ps->stream, "\\color[rgb]{%f,%f,%f}\n", rgba[0], rgba[1], rgba[2]); - } -} - -static void gl2psPrintPGFHeader(void) -{ - time_t now; - - time(&now); - - fprintf(gl2ps->stream, - "%% Title: %s\n" - "%% Creator: GL2PS %d.%d.%d%s, %s\n" - "%% For: %s\n" - "%% CreationDate: %s", - gl2ps->title, GL2PS_MAJOR_VERSION, GL2PS_MINOR_VERSION, - GL2PS_PATCH_VERSION, GL2PS_EXTRA_VERSION, GL2PS_COPYRIGHT, - gl2ps->producer, ctime(&now)); - - fprintf(gl2ps->stream, "\\begin{pgfpicture}\n"); - if(gl2ps->options & GL2PS_DRAW_BACKGROUND){ - gl2psPrintPGFColor(gl2ps->bgcolor); - fprintf(gl2ps->stream, - "\\pgfpathrectanglecorners{" - "\\pgfpoint{%dpt}{%dpt}}{\\pgfpoint{%dpt}{%dpt}}\n" - "\\pgfusepath{fill}\n", - (int)gl2ps->viewport[0], (int)gl2ps->viewport[1], - (int)gl2ps->viewport[2], (int)gl2ps->viewport[3]); - } -} - -static void gl2psPrintPGFDash(GLushort pattern, GLint factor) -{ - int i, n, array[10]; - - if(pattern == gl2ps->lastpattern && factor == gl2ps->lastfactor) - return; - - gl2ps->lastpattern = pattern; - gl2ps->lastfactor = factor; - - if(!pattern || !factor){ - /* solid line */ - fprintf(gl2ps->stream, "\\pgfsetdash{}{0pt}\n"); - } - else{ - gl2psParseStipplePattern(pattern, factor, &n, array); - fprintf(gl2ps->stream, "\\pgfsetdash{"); - for(i = 0; i < n; i++) fprintf(gl2ps->stream, "{%dpt}", array[i]); - fprintf(gl2ps->stream, "}{0pt}\n"); - } -} - -static const char *gl2psPGFTextAlignment(int align) -{ - switch(align){ - case GL2PS_TEXT_C : return "center"; - case GL2PS_TEXT_CL : return "west"; - case GL2PS_TEXT_CR : return "east"; - case GL2PS_TEXT_B : return "south"; - case GL2PS_TEXT_BR : return "south east"; - case GL2PS_TEXT_T : return "north"; - case GL2PS_TEXT_TL : return "north west"; - case GL2PS_TEXT_TR : return "north east"; - case GL2PS_TEXT_BL : - default : return "south west"; - } -} - -static void gl2psPrintPGFPrimitive(void *data) -{ - GL2PSprimitive *prim; - - prim = *(GL2PSprimitive**)data; - - switch(prim->type){ - case GL2PS_POINT : - /* Points in openGL are rectangular */ - gl2psPrintPGFColor(prim->verts[0].rgba); - fprintf(gl2ps->stream, - "\\pgfpathrectangle{\\pgfpoint{%fpt}{%fpt}}" - "{\\pgfpoint{%fpt}{%fpt}}\n\\pgfusepath{fill}\n", - prim->verts[0].xyz[0]-0.5*prim->width, - prim->verts[0].xyz[1]-0.5*prim->width, - prim->width,prim->width); - break; - case GL2PS_LINE : - gl2psPrintPGFColor(prim->verts[0].rgba); - if(gl2ps->lastlinewidth != prim->width){ - gl2ps->lastlinewidth = prim->width; - fprintf(gl2ps->stream, "\\pgfsetlinewidth{%fpt}\n", gl2ps->lastlinewidth); - } - if(gl2ps->lastlinecap != prim->linecap){ - gl2ps->lastlinecap = prim->linecap; - switch (prim->linecap){ - case GL2PS_LINE_CAP_BUTT: - fprintf(gl2ps->stream, "\\pgfset%s\n", "buttcap"); - break; - case GL2PS_LINE_CAP_ROUND: - fprintf(gl2ps->stream, "\\pgfset%s\n", "roundcap"); - break; - case GL2PS_LINE_CAP_SQUARE: - fprintf(gl2ps->stream, "\\pgfset%s\n", "rectcap"); - break; - } - } - if(gl2ps->lastlinejoin != prim->linejoin){ - gl2ps->lastlinejoin = prim->linejoin; - switch (prim->linejoin){ - case GL2PS_LINE_JOIN_MITER: - fprintf(gl2ps->stream, "\\pgfset%s\n", "miterjoin"); - break; - case GL2PS_LINE_JOIN_ROUND: - fprintf(gl2ps->stream, "\\pgfset%s\n", "roundjoin"); - break; - case GL2PS_LINE_JOIN_BEVEL: - fprintf(gl2ps->stream, "\\pgfset%s\n", "beveljoin"); - break; - } - } - gl2psPrintPGFDash(prim->pattern, prim->factor); - fprintf(gl2ps->stream, - "\\pgfpathmoveto{\\pgfpoint{%fpt}{%fpt}}\n" - "\\pgflineto{\\pgfpoint{%fpt}{%fpt}}\n" - "\\pgfusepath{stroke}\n", - prim->verts[1].xyz[0], prim->verts[1].xyz[1], - prim->verts[0].xyz[0], prim->verts[0].xyz[1]); - break; - case GL2PS_TRIANGLE : - if(gl2ps->lastlinewidth != 0){ - gl2ps->lastlinewidth = 0; - fprintf(gl2ps->stream, "\\pgfsetlinewidth{0.01pt}\n"); - } - if(gl2ps->lastlinecap != prim->linecap){ - gl2ps->lastlinecap = prim->linecap; - switch (prim->linecap){ - case GL2PS_LINE_CAP_BUTT: - fprintf(gl2ps->stream, "\\pgfset%s\n", "buttcap"); - break; - case GL2PS_LINE_CAP_ROUND: - fprintf(gl2ps->stream, "\\pgfset%s\n", "roundcap"); - break; - case GL2PS_LINE_CAP_SQUARE: - fprintf(gl2ps->stream, "\\pgfset%s\n", "rectcap"); - break; - } - } - if(gl2ps->lastlinejoin != prim->linejoin){ - gl2ps->lastlinejoin = prim->linejoin; - switch (prim->linejoin){ - case GL2PS_LINE_JOIN_MITER: - fprintf(gl2ps->stream, "\\pgfset%s\n", "miterjoin"); - break; - case GL2PS_LINE_JOIN_ROUND: - fprintf(gl2ps->stream, "\\pgfset%s\n", "roundjoin"); - break; - case GL2PS_LINE_JOIN_BEVEL: - fprintf(gl2ps->stream, "\\pgfset%s\n", "beveljoin"); - break; - } - } - gl2psPrintPGFColor(prim->verts[0].rgba); - fprintf(gl2ps->stream, - "\\pgfpathmoveto{\\pgfpoint{%fpt}{%fpt}}\n" - "\\pgflineto{\\pgfpoint{%fpt}{%fpt}}\n" - "\\pgflineto{\\pgfpoint{%fpt}{%fpt}}\n" - "\\pgfpathclose\n" - "\\pgfusepath{fill,stroke}\n", - prim->verts[2].xyz[0], prim->verts[2].xyz[1], - prim->verts[1].xyz[0], prim->verts[1].xyz[1], - prim->verts[0].xyz[0], prim->verts[0].xyz[1]); - break; - case GL2PS_TEXT : - fprintf(gl2ps->stream, "{\n\\pgftransformshift{\\pgfpoint{%fpt}{%fpt}}\n", - prim->verts[0].xyz[0], prim->verts[0].xyz[1]); - - if(prim->data.text->angle) - fprintf(gl2ps->stream, "\\pgftransformrotate{%f}{", prim->data.text->angle); - - fprintf(gl2ps->stream, "\\pgfnode{rectangle}{%s}{\\fontsize{%d}{0}\\selectfont", - gl2psPGFTextAlignment(prim->data.text->alignment), - prim->data.text->fontsize); - - fprintf(gl2ps->stream, "\\textcolor[rgb]{%g,%g,%g}{{%s}}", - prim->verts[0].rgba[0], prim->verts[0].rgba[1], - prim->verts[0].rgba[2], prim->data.text->str); - - fprintf(gl2ps->stream, "}{}{\\pgfusepath{discard}}"); - - if(prim->data.text->angle) - fprintf(gl2ps->stream, "}"); - - fprintf(gl2ps->stream, "\n}\n"); - break; - case GL2PS_SPECIAL : - /* alignment contains the format for which the special output text - is intended */ - if (prim->data.text->alignment == GL2PS_PGF) - fprintf(gl2ps->stream, "%s\n", prim->data.text->str); - break; - default : - break; - } -} - -static void gl2psPrintPGFFooter(void) -{ - fprintf(gl2ps->stream, "\\end{pgfpicture}\n"); -} - -static void gl2psPrintPGFBeginViewport(GLint viewport[4]) -{ - GLint idx; - GLfloat rgba[4]; - int x = viewport[0], y = viewport[1], w = viewport[2], h = viewport[3]; - - glRenderMode(GL_FEEDBACK); - - gl2psResetLineProperties(); - - if(gl2ps->header){ - gl2psPrintPGFHeader(); - gl2ps->header = GL_FALSE; - } - - fprintf(gl2ps->stream, "\\begin{pgfscope}\n"); - if(gl2ps->options & GL2PS_DRAW_BACKGROUND){ - if(gl2ps->colormode == GL_RGBA || gl2ps->colorsize == 0){ - glGetFloatv(GL_COLOR_CLEAR_VALUE, rgba); - } - else{ - glGetIntegerv(GL_INDEX_CLEAR_VALUE, &idx); - rgba[0] = gl2ps->colormap[idx][0]; - rgba[1] = gl2ps->colormap[idx][1]; - rgba[2] = gl2ps->colormap[idx][2]; - rgba[3] = 1.0F; - } - gl2psPrintPGFColor(rgba); - fprintf(gl2ps->stream, - "\\pgfpathrectangle{\\pgfpoint{%dpt}{%dpt}}" - "{\\pgfpoint{%dpt}{%dpt}}\n" - "\\pgfusepath{fill}\n", - x, y, w, h); - } - - fprintf(gl2ps->stream, - "\\pgfpathrectangle{\\pgfpoint{%dpt}{%dpt}}" - "{\\pgfpoint{%dpt}{%dpt}}\n" - "\\pgfusepath{clip}\n", - x, y, w, h); -} - -static GLint gl2psPrintPGFEndViewport(void) -{ - GLint res; - res = gl2psPrintPrimitives(); - fprintf(gl2ps->stream, "\\end{pgfscope}\n"); - return res; -} - -static void gl2psPrintPGFFinalPrimitive(void) -{ -} - -/* definition of the PGF backend */ - -static GL2PSbackend gl2psPGF = { - gl2psPrintPGFHeader, - gl2psPrintPGFFooter, - gl2psPrintPGFBeginViewport, - gl2psPrintPGFEndViewport, - gl2psPrintPGFPrimitive, - gl2psPrintPGFFinalPrimitive, - "tex", - "PGF Latex Graphics" -}; - -/********************************************************************* - * - * General primitive printing routine - * - *********************************************************************/ - -/* Warning: the ordering of the backends must match the format - #defines in gl2ps.h */ - -static GL2PSbackend *gl2psbackends[] = { - &gl2psPS, /* 0 */ - &gl2psEPS, /* 1 */ - &gl2psTEX, /* 2 */ - &gl2psPDF, /* 3 */ - &gl2psSVG, /* 4 */ - &gl2psPGF /* 5 */ -}; - -static void gl2psComputeTightBoundingBox(void *data) -{ - GL2PSprimitive *prim; - int i; - - prim = *(GL2PSprimitive**)data; - - for(i = 0; i < prim->numverts; i++){ - if(prim->verts[i].xyz[0] < gl2ps->viewport[0]) - gl2ps->viewport[0] = (GLint)prim->verts[i].xyz[0]; - if(prim->verts[i].xyz[0] > gl2ps->viewport[2]) - gl2ps->viewport[2] = (GLint)(prim->verts[i].xyz[0] + 0.5F); - if(prim->verts[i].xyz[1] < gl2ps->viewport[1]) - gl2ps->viewport[1] = (GLint)prim->verts[i].xyz[1]; - if(prim->verts[i].xyz[1] > gl2ps->viewport[3]) - gl2ps->viewport[3] = (GLint)(prim->verts[i].xyz[1] + 0.5F); - } -} - -static GLint gl2psPrintPrimitives(void) -{ - GL2PSbsptree *root; - GL2PSxyz eye = {0.0F, 0.0F, 100.0F * GL2PS_ZSCALE}; - GLint used = 0; - - if ((gl2ps->options & GL2PS_NO_OPENGL_CONTEXT) == GL2PS_NONE) { - used = glRenderMode(GL_RENDER); - } - - if(used < 0){ - gl2psMsg(GL2PS_INFO, "OpenGL feedback buffer overflow"); - return GL2PS_OVERFLOW; - } - - if(used > 0) - gl2psParseFeedbackBuffer(used); - - gl2psRescaleAndOffset(); - - if(gl2ps->header){ - if(gl2psListNbr(gl2ps->primitives) && - (gl2ps->options & GL2PS_TIGHT_BOUNDING_BOX)){ - gl2ps->viewport[0] = gl2ps->viewport[1] = 100000; - gl2ps->viewport[2] = gl2ps->viewport[3] = -100000; - gl2psListAction(gl2ps->primitives, gl2psComputeTightBoundingBox); - } - (gl2psbackends[gl2ps->format]->printHeader)(); - gl2ps->header = GL_FALSE; - } - - if(!gl2psListNbr(gl2ps->primitives)){ - /* empty feedback buffer and/or nothing else to print */ - return GL2PS_NO_FEEDBACK; - } - - switch(gl2ps->sort){ - case GL2PS_NO_SORT : - gl2psListAction(gl2ps->primitives, gl2psbackends[gl2ps->format]->printPrimitive); - gl2psListAction(gl2ps->primitives, gl2psFreePrimitive); - /* reset the primitive list, waiting for the next viewport */ - gl2psListReset(gl2ps->primitives); - break; - case GL2PS_SIMPLE_SORT : - gl2psListAssignSortIds(gl2ps->primitives); - gl2psListSort(gl2ps->primitives, gl2psCompareDepth); - if(gl2ps->options & GL2PS_OCCLUSION_CULL){ - gl2psListActionInverse(gl2ps->primitives, gl2psAddInImageTree); - gl2psFreeBspImageTree(&gl2ps->imagetree); - } - gl2psListAction(gl2ps->primitives, gl2psbackends[gl2ps->format]->printPrimitive); - gl2psListAction(gl2ps->primitives, gl2psFreePrimitive); - /* reset the primitive list, waiting for the next viewport */ - gl2psListReset(gl2ps->primitives); - break; - case GL2PS_BSP_SORT : - root = (GL2PSbsptree*)gl2psMalloc(sizeof(GL2PSbsptree)); - gl2psBuildBspTree(root, gl2ps->primitives); - if(GL_TRUE == gl2ps->boundary) gl2psBuildPolygonBoundary(root); - if(gl2ps->options & GL2PS_OCCLUSION_CULL){ - gl2psTraverseBspTree(root, eye, -GL2PS_EPSILON, gl2psLess, - gl2psAddInImageTree, 1); - gl2psFreeBspImageTree(&gl2ps->imagetree); - } - gl2psTraverseBspTree(root, eye, GL2PS_EPSILON, gl2psGreater, - gl2psbackends[gl2ps->format]->printPrimitive, 0); - gl2psFreeBspTree(&root); - /* reallocate the primitive list (it's been deleted by - gl2psBuildBspTree) in case there is another viewport */ - gl2ps->primitives = gl2psListCreate(500, 500, sizeof(GL2PSprimitive*)); - break; - } - gl2psbackends[gl2ps->format]->printFinalPrimitive(); - - return GL2PS_SUCCESS; -} - -static GLboolean gl2psCheckOptions(GLint options, GLint colormode) -{ - if (options & GL2PS_NO_OPENGL_CONTEXT) { - if (options & GL2PS_DRAW_BACKGROUND) { - gl2psMsg(GL2PS_ERROR, "Options GL2PS_NO_OPENGL_CONTEXT and " - "GL2PS_DRAW_BACKGROUND are incompatible."); - return GL_FALSE; - } - if (options & GL2PS_USE_CURRENT_VIEWPORT) { - gl2psMsg(GL2PS_ERROR, "Options GL2PS_NO_OPENGL_CONTEXT and " - "GL2PS_USE_CURRENT_VIEWPORT are incompatible."); - return GL_FALSE; - } - if ((options & GL2PS_NO_BLENDING) == GL2PS_NONE) { - gl2psMsg(GL2PS_ERROR, "Option GL2PS_NO_OPENGL_CONTEXT requires " - "option GL2PS_NO_BLENDING."); - return GL_FALSE; - } - if (colormode != GL_RGBA) { - gl2psMsg(GL2PS_ERROR, "Option GL2PS_NO_OPENGL_CONTEXT requires colormode " - "to be GL_RGBA."); - return GL_FALSE; - } - } - - return GL_TRUE; -} - -/********************************************************************* - * - * Public routines - * - *********************************************************************/ - -GL2PSDLL_API GLint gl2psBeginPage(const char *title, const char *producer, - GLint viewport[4], GLint format, GLint sort, - GLint options, GLint colormode, - GLint colorsize, GL2PSrgba *colormap, - GLint nr, GLint ng, GLint nb, GLint buffersize, - FILE *stream, const char *filename) -{ - GLint idx; - int i; - - if(gl2ps){ - gl2psMsg(GL2PS_ERROR, "gl2psBeginPage called in wrong program state"); - return GL2PS_ERROR; - } - - gl2ps = (GL2PScontext*)gl2psMalloc(sizeof(GL2PScontext)); - - /* Validate options */ - if (gl2psCheckOptions(options, colormode) == GL_FALSE) { - gl2psFree(gl2ps); - gl2ps = NULL; - return GL2PS_ERROR; - } - - if(format >= 0 && format < (GLint)(sizeof(gl2psbackends) / sizeof(gl2psbackends[0]))){ - gl2ps->format = format; - } - else { - gl2psMsg(GL2PS_ERROR, "Unknown output format: %d", format); - gl2psFree(gl2ps); - gl2ps = NULL; - return GL2PS_ERROR; - } - - switch(sort){ - case GL2PS_NO_SORT : - case GL2PS_SIMPLE_SORT : - case GL2PS_BSP_SORT : - gl2ps->sort = sort; - break; - default : - gl2psMsg(GL2PS_ERROR, "Unknown sorting algorithm: %d", sort); - gl2psFree(gl2ps); - gl2ps = NULL; - return GL2PS_ERROR; - } - - if(stream){ - gl2ps->stream = stream; - } - else{ - gl2psMsg(GL2PS_ERROR, "Bad file pointer"); - gl2psFree(gl2ps); - gl2ps = NULL; - return GL2PS_ERROR; - } - - gl2ps->header = GL_TRUE; - gl2ps->forcerasterpos = GL_FALSE; - gl2ps->maxbestroot = 10; - gl2ps->options = options; - gl2ps->compress = NULL; - gl2ps->imagemap_head = NULL; - gl2ps->imagemap_tail = NULL; - - if(gl2ps->options & GL2PS_USE_CURRENT_VIEWPORT){ - glGetIntegerv(GL_VIEWPORT, gl2ps->viewport); - } - else{ - for(i = 0; i < 4; i++){ - gl2ps->viewport[i] = viewport[i]; - } - } - - if(!gl2ps->viewport[2] || !gl2ps->viewport[3]){ - gl2psMsg(GL2PS_ERROR, "Incorrect viewport (x=%d, y=%d, width=%d, height=%d)", - gl2ps->viewport[0], gl2ps->viewport[1], - gl2ps->viewport[2], gl2ps->viewport[3]); - gl2psFree(gl2ps); - gl2ps = NULL; - return GL2PS_ERROR; - } - - gl2ps->threshold[0] = nr ? 1.0F / (GLfloat)nr : 0.064F; - gl2ps->threshold[1] = ng ? 1.0F / (GLfloat)ng : 0.034F; - gl2ps->threshold[2] = nb ? 1.0F / (GLfloat)nb : 0.100F; - gl2ps->colormode = colormode; - gl2ps->buffersize = buffersize > 0 ? buffersize : 2048 * 2048; - for(i = 0; i < 3; i++){ - gl2ps->lastvertex.xyz[i] = -1.0F; - } - for(i = 0; i < 4; i++){ - gl2ps->lastvertex.rgba[i] = -1.0F; - gl2ps->lastrgba[i] = -1.0F; - } - gl2ps->lastlinewidth = -1.0F; - gl2ps->lastlinecap = 0; - gl2ps->lastlinejoin = 0; - gl2ps->lastpattern = 0; - gl2ps->lastfactor = 0; - gl2ps->imagetree = NULL; - gl2ps->primitivetoadd = NULL; - gl2ps->zerosurfacearea = GL_FALSE; - gl2ps->pdfprimlist = NULL; - gl2ps->pdfgrouplist = NULL; - gl2ps->xreflist = NULL; - - /* get default blending mode from current OpenGL state (enabled by - default for SVG) */ - if ((gl2ps->options & GL2PS_NO_BLENDING) == GL2PS_NONE) { - gl2ps->blending = (gl2ps->format == GL2PS_SVG) ? GL_TRUE - : glIsEnabled(GL_BLEND); - glGetIntegerv(GL_BLEND_SRC, &gl2ps->blendfunc[0]); - glGetIntegerv(GL_BLEND_DST, &gl2ps->blendfunc[1]); - } - else { - gl2ps->blending = GL_FALSE; - } - - if(gl2ps->colormode == GL_RGBA){ - gl2ps->colorsize = 0; - gl2ps->colormap = NULL; - if ((gl2ps->options & GL2PS_NO_OPENGL_CONTEXT) == GL2PS_NONE) { - glGetFloatv(GL_COLOR_CLEAR_VALUE, gl2ps->bgcolor); - } - } - else if(gl2ps->colormode == GL_COLOR_INDEX){ - if(!colorsize || !colormap){ - gl2psMsg(GL2PS_ERROR, "Missing colormap for GL_COLOR_INDEX rendering"); - gl2psFree(gl2ps); - gl2ps = NULL; - return GL2PS_ERROR; - } - gl2ps->colorsize = colorsize; - gl2ps->colormap = (GL2PSrgba*)gl2psMalloc(gl2ps->colorsize * sizeof(GL2PSrgba)); - memcpy(gl2ps->colormap, colormap, gl2ps->colorsize * sizeof(GL2PSrgba)); - glGetIntegerv(GL_INDEX_CLEAR_VALUE, &idx); - gl2ps->bgcolor[0] = gl2ps->colormap[idx][0]; - gl2ps->bgcolor[1] = gl2ps->colormap[idx][1]; - gl2ps->bgcolor[2] = gl2ps->colormap[idx][2]; - gl2ps->bgcolor[3] = 1.0F; - } - else{ - gl2psMsg(GL2PS_ERROR, "Unknown color mode in gl2psBeginPage"); - gl2psFree(gl2ps); - gl2ps = NULL; - return GL2PS_ERROR; - } - - if(!title){ - gl2ps->title = (char*)gl2psMalloc(sizeof(char)); - gl2ps->title[0] = '\0'; - } - else{ - gl2ps->title = (char*)gl2psMalloc((strlen(title)+1)*sizeof(char)); - strcpy(gl2ps->title, title); - } - - if(!producer){ - gl2ps->producer = (char*)gl2psMalloc(sizeof(char)); - gl2ps->producer[0] = '\0'; - } - else{ - gl2ps->producer = (char*)gl2psMalloc((strlen(producer)+1)*sizeof(char)); - strcpy(gl2ps->producer, producer); - } - - if(!filename){ - gl2ps->filename = (char*)gl2psMalloc(sizeof(char)); - gl2ps->filename[0] = '\0'; - } - else{ - gl2ps->filename = (char*)gl2psMalloc((strlen(filename)+1)*sizeof(char)); - strcpy(gl2ps->filename, filename); - } - - gl2ps->primitives = gl2psListCreate(500, 500, sizeof(GL2PSprimitive*)); - gl2ps->auxprimitives = gl2psListCreate(100, 100, sizeof(GL2PSprimitive*)); - - if ((gl2ps->options & GL2PS_NO_OPENGL_CONTEXT) == GL2PS_NONE) { - gl2ps->feedback = (GLfloat*)gl2psMalloc(gl2ps->buffersize * sizeof(GLfloat)); - glFeedbackBuffer(gl2ps->buffersize, GL_3D_COLOR, gl2ps->feedback); - glRenderMode(GL_FEEDBACK); - } - else { - gl2ps->feedback = NULL; - gl2ps->buffersize = 0; - } - - gl2ps->tex_scaling = 1.; - - return GL2PS_SUCCESS; -} - -GL2PSDLL_API GLint gl2psEndPage(void) -{ - GLint res; - - if(!gl2ps) return GL2PS_UNINITIALIZED; - - res = gl2psPrintPrimitives(); - - if(res != GL2PS_OVERFLOW) - (gl2psbackends[gl2ps->format]->printFooter)(); - - fflush(gl2ps->stream); - - gl2psListDelete(gl2ps->primitives); - gl2psListDelete(gl2ps->auxprimitives); - gl2psFreeImagemap(gl2ps->imagemap_head); - gl2psFree(gl2ps->colormap); - gl2psFree(gl2ps->title); - gl2psFree(gl2ps->producer); - gl2psFree(gl2ps->filename); - gl2psFree(gl2ps->feedback); - gl2psFree(gl2ps); - gl2ps = NULL; - - return res; -} - -GL2PSDLL_API GLint gl2psBeginViewport(GLint viewport[4]) -{ - if(!gl2ps) return GL2PS_UNINITIALIZED; - - (gl2psbackends[gl2ps->format]->beginViewport)(viewport); - - return GL2PS_SUCCESS; -} - -GL2PSDLL_API GLint gl2psEndViewport(void) -{ - GLint res; - - if(!gl2ps) return GL2PS_UNINITIALIZED; - - res = (gl2psbackends[gl2ps->format]->endViewport)(); - - /* reset last used colors, line widths */ - gl2psResetLineProperties(); - - return res; -} - -GL2PSDLL_API GLint gl2psSorting(GLint mode) -{ - GLint res; - - if(!gl2ps) return GL2PS_UNINITIALIZED; - - switch(mode){ - case GL2PS_NO_SORT : - case GL2PS_SIMPLE_SORT : - case GL2PS_BSP_SORT : - gl2ps->sort = mode; - res = GL2PS_SUCCESS; - break; - default : - gl2psMsg(GL2PS_ERROR, "Unknown sorting algorithm: %d", mode); - gl2psFree(gl2ps); - gl2ps = NULL; - res = GL2PS_ERROR; - } - - return res; -} - -GL2PSDLL_API GLint gl2psTextOptColor(const char *str, const char *fontname, - GLshort fontsize, GLint alignment, GLfloat angle, - GL2PSrgba color) -{ - return gl2psAddText(GL2PS_TEXT, str, fontname, fontsize, alignment, angle, - color, GL_FALSE, 0, 0); -} - -/** - * This version of gl2psTextOptColor is used to go around the - * fact that PDF does not support text alignment. The extra parameters - * (blx, bly) represent the bottom left corner of the text bounding box. - */ -GL2PSDLL_API GLint gl2psTextOptColorBL(const char *str, const char *fontname, - GLshort fontsize, GLint alignment, GLfloat angle, - GL2PSrgba color, GLfloat blx, GLfloat bly) -{ - return gl2psAddText(GL2PS_TEXT, str, fontname, fontsize, alignment, angle, - color, GL_TRUE, blx, bly); -} - -GL2PSDLL_API GLint gl2psTextOpt(const char *str, const char *fontname, - GLshort fontsize, GLint alignment, GLfloat angle) -{ - return gl2psAddText(GL2PS_TEXT, str, fontname, fontsize, alignment, angle, NULL, GL_FALSE, 0, 0); -} - -GL2PSDLL_API GLint gl2psText(const char *str, const char *fontname, GLshort fontsize) -{ - return gl2psAddText(GL2PS_TEXT, str, fontname, fontsize, GL2PS_TEXT_BL, 0.0F, - NULL, GL_FALSE, 0, 0); -} - -GL2PSDLL_API GLint gl2psSpecial(GLint format, const char *str) -{ - return gl2psAddText(GL2PS_SPECIAL, str, "", 0, format, 0.0F, NULL, GL_FALSE, 0, 0); -} - -GL2PSDLL_API GLint gl2psSpecialColor(GLint format, const char *str, GL2PSrgba rgba) -{ - return gl2psAddText(GL2PS_SPECIAL, str, "", 0, format, 0.0F, rgba, GL_FALSE, 0, 0); -} - -GL2PSDLL_API GLint gl2psDrawPixels(GLsizei width, GLsizei height, - GLint xorig, GLint yorig, - GLenum format, GLenum type, - const void *pixels) -{ - int size, i; - const GLfloat *piv; - GLfloat pos[4], zoom_x, zoom_y; - GL2PSprimitive *prim; - GLboolean valid; - - if(!gl2ps || !pixels) return GL2PS_UNINITIALIZED; - - if((width <= 0) || (height <= 0)) return GL2PS_ERROR; - - if(gl2ps->options & GL2PS_NO_PIXMAP) return GL2PS_SUCCESS; - - if((format != GL_RGB && format != GL_RGBA) || type != GL_FLOAT){ - gl2psMsg(GL2PS_ERROR, "gl2psDrawPixels only implemented for " - "GL_RGB/GL_RGBA, GL_FLOAT pixels"); - return GL2PS_ERROR; - } - - if (gl2ps->forcerasterpos) { - pos[0] = gl2ps->rasterpos.xyz[0]; - pos[1] = gl2ps->rasterpos.xyz[1]; - pos[2] = gl2ps->rasterpos.xyz[2]; - pos[3] = 1.f; - /* Hardcode zoom factors (for now?) */ - zoom_x = 1.f; - zoom_y = 1.f; - } - else { - glGetBooleanv(GL_CURRENT_RASTER_POSITION_VALID, &valid); - if(GL_FALSE == valid) return GL2PS_SUCCESS; /* the primitive is culled */ - glGetFloatv(GL_CURRENT_RASTER_POSITION, pos); - glGetFloatv(GL_ZOOM_X, &zoom_x); - glGetFloatv(GL_ZOOM_Y, &zoom_y); - } - - prim = (GL2PSprimitive*)gl2psMalloc(sizeof(GL2PSprimitive)); - prim->type = GL2PS_PIXMAP; - prim->boundary = 0; - prim->numverts = 1; - prim->verts = (GL2PSvertex*)gl2psMalloc(sizeof(GL2PSvertex)); - prim->verts[0].xyz[0] = pos[0] + xorig; - prim->verts[0].xyz[1] = pos[1] + yorig; - prim->verts[0].xyz[2] = pos[2]; - prim->culled = 0; - prim->offset = 0; - prim->ofactor = 0.0; - prim->ounits = 0.0; - prim->pattern = 0; - prim->factor = 0; - prim->width = 1; - if (gl2ps->forcerasterpos) { - prim->verts[0].rgba[0] = gl2ps->rasterpos.rgba[0]; - prim->verts[0].rgba[1] = gl2ps->rasterpos.rgba[1]; - prim->verts[0].rgba[2] = gl2ps->rasterpos.rgba[2]; - prim->verts[0].rgba[3] = gl2ps->rasterpos.rgba[3]; - } - else { - glGetFloatv(GL_CURRENT_RASTER_COLOR, prim->verts[0].rgba); - } - prim->data.image = (GL2PSimage*)gl2psMalloc(sizeof(GL2PSimage)); - prim->data.image->width = width; - prim->data.image->height = height; - prim->data.image->zoom_x = zoom_x; - prim->data.image->zoom_y = zoom_y; - prim->data.image->format = format; - prim->data.image->type = type; - - gl2ps->forcerasterpos = GL_FALSE; - - switch(format){ - case GL_RGBA: - if(gl2ps->options & GL2PS_NO_BLENDING || !gl2ps->blending){ - /* special case: blending turned off */ - prim->data.image->format = GL_RGB; - size = height * width * 3; - prim->data.image->pixels = (GLfloat*)gl2psMalloc(size * sizeof(GLfloat)); - piv = (const GLfloat*)pixels; - for(i = 0; i < size; ++i, ++piv){ - prim->data.image->pixels[i] = *piv; - if(!((i + 1) % 3)) - ++piv; - } - } - else{ - size = height * width * 4; - prim->data.image->pixels = (GLfloat*)gl2psMalloc(size * sizeof(GLfloat)); - memcpy(prim->data.image->pixels, pixels, size * sizeof(GLfloat)); - } - break; - case GL_RGB: - default: - size = height * width * 3; - prim->data.image->pixels = (GLfloat*)gl2psMalloc(size * sizeof(GLfloat)); - memcpy(prim->data.image->pixels, pixels, size * sizeof(GLfloat)); - break; - } - - /* If no OpenGL context, just add directly to primitives */ - if ((gl2ps->options & GL2PS_NO_OPENGL_CONTEXT) == GL2PS_NONE) { - gl2psListAdd(gl2ps->auxprimitives, &prim); - glPassThrough(GL2PS_DRAW_PIXELS_TOKEN); - } - else { - gl2psListAdd(gl2ps->primitives, &prim); - } - - return GL2PS_SUCCESS; -} - -GL2PSDLL_API GLint gl2psDrawImageMap(GLsizei width, GLsizei height, - const GLfloat position[3], - const unsigned char *imagemap){ - int size, i; - int sizeoffloat = sizeof(GLfloat); - - if(!gl2ps || !imagemap) return GL2PS_UNINITIALIZED; - - if((width <= 0) || (height <= 0)) return GL2PS_ERROR; - - size = height + height * ((width - 1) / 8); - glPassThrough(GL2PS_IMAGEMAP_TOKEN); - glBegin(GL_POINTS); - glVertex3f(position[0], position[1],position[2]); - glEnd(); - glPassThrough((GLfloat)width); - glPassThrough((GLfloat)height); - for(i = 0; i < size; i += sizeoffloat){ - const float *value = (const float*)imagemap; - glPassThrough(*value); - imagemap += sizeoffloat; - } - return GL2PS_SUCCESS; -} - -GL2PSDLL_API GLint gl2psEnable(GLint mode) -{ - GLint tmp; - GLfloat tmp2; - - if(!gl2ps) return GL2PS_UNINITIALIZED; - - switch(mode){ - case GL2PS_POLYGON_OFFSET_FILL : - glPassThrough(GL2PS_BEGIN_OFFSET_TOKEN); - glGetFloatv(GL_POLYGON_OFFSET_FACTOR, &tmp2); - glPassThrough(tmp2); - glGetFloatv(GL_POLYGON_OFFSET_UNITS, &tmp2); - glPassThrough(tmp2); - break; - case GL2PS_POLYGON_BOUNDARY : - glPassThrough(GL2PS_BEGIN_BOUNDARY_TOKEN); - break; - case GL2PS_LINE_STIPPLE : - glPassThrough(GL2PS_BEGIN_STIPPLE_TOKEN); - glGetIntegerv(GL_LINE_STIPPLE_PATTERN, &tmp); - glPassThrough((GLfloat)tmp); - glGetIntegerv(GL_LINE_STIPPLE_REPEAT, &tmp); - glPassThrough((GLfloat)tmp); - break; - case GL2PS_BLEND : - glPassThrough(GL2PS_BEGIN_BLEND_TOKEN); - break; - default : - gl2psMsg(GL2PS_WARNING, "Unknown mode in gl2psEnable: %d", mode); - return GL2PS_WARNING; - } - - return GL2PS_SUCCESS; -} - -GL2PSDLL_API GLint gl2psDisable(GLint mode) -{ - if(!gl2ps) return GL2PS_UNINITIALIZED; - - switch(mode){ - case GL2PS_POLYGON_OFFSET_FILL : - glPassThrough(GL2PS_END_OFFSET_TOKEN); - break; - case GL2PS_POLYGON_BOUNDARY : - glPassThrough(GL2PS_END_BOUNDARY_TOKEN); - break; - case GL2PS_LINE_STIPPLE : - glPassThrough(GL2PS_END_STIPPLE_TOKEN); - break; - case GL2PS_BLEND : - glPassThrough(GL2PS_END_BLEND_TOKEN); - break; - default : - gl2psMsg(GL2PS_WARNING, "Unknown mode in gl2psDisable: %d", mode); - return GL2PS_WARNING; - } - - return GL2PS_SUCCESS; -} - -GL2PSDLL_API GLint gl2psPointSize(GLfloat value) -{ - if(!gl2ps) return GL2PS_UNINITIALIZED; - - glPassThrough(GL2PS_POINT_SIZE_TOKEN); - glPassThrough(value); - - return GL2PS_SUCCESS; -} - -GL2PSDLL_API GLint gl2psLineCap(GLint value) -{ - if(!gl2ps) return GL2PS_UNINITIALIZED; - - glPassThrough(GL2PS_LINE_CAP_TOKEN); - glPassThrough(value); - - return GL2PS_SUCCESS; -} - -GL2PSDLL_API GLint gl2psLineJoin(GLint value) -{ - if(!gl2ps) return GL2PS_UNINITIALIZED; - - glPassThrough(GL2PS_LINE_JOIN_TOKEN); - glPassThrough(value); - - return GL2PS_SUCCESS; -} - -GL2PSDLL_API GLint gl2psLineWidth(GLfloat value) -{ - if(!gl2ps) return GL2PS_UNINITIALIZED; - - glPassThrough(GL2PS_LINE_WIDTH_TOKEN); - glPassThrough(value); - - return GL2PS_SUCCESS; -} - -GL2PSDLL_API GLint gl2psBlendFunc(GLenum sfactor, GLenum dfactor) -{ - if(!gl2ps) return GL2PS_UNINITIALIZED; - - if(GL_FALSE == gl2psSupportedBlendMode(sfactor, dfactor)) - return GL2PS_WARNING; - - glPassThrough(GL2PS_SRC_BLEND_TOKEN); - glPassThrough((GLfloat)sfactor); - glPassThrough(GL2PS_DST_BLEND_TOKEN); - glPassThrough((GLfloat)dfactor); - - return GL2PS_SUCCESS; -} - -GL2PSDLL_API GLint gl2psSetOptions(GLint options) -{ - if(!gl2ps) return GL2PS_UNINITIALIZED; - - if(gl2psCheckOptions(options, gl2ps->colormode) == GL_FALSE) { - return GL2PS_ERROR; - } - - gl2ps->options = options; - - return GL2PS_SUCCESS; -} - -GL2PSDLL_API GLint gl2psGetOptions(GLint *options) -{ - if(!gl2ps) { - *options = 0; - return GL2PS_UNINITIALIZED; - } - - *options = gl2ps->options; - - return GL2PS_SUCCESS; -} - -GL2PSDLL_API const char *gl2psGetFileExtension(GLint format) -{ - if(format >= 0 && format < (GLint)(sizeof(gl2psbackends) / sizeof(gl2psbackends[0]))) - return gl2psbackends[format]->file_extension; - else - return "Unknown format"; -} - -GL2PSDLL_API const char *gl2psGetFormatDescription(GLint format) -{ - if(format >= 0 && format < (GLint)(sizeof(gl2psbackends) / sizeof(gl2psbackends[0]))) - return gl2psbackends[format]->description; - else - return "Unknown format"; -} - -GL2PSDLL_API GLint gl2psGetFileFormat() -{ - if(!gl2ps) { - return GL2PS_UNINITIALIZED; - } - - return gl2ps->format; -} - -GL2PSDLL_API GLint gl2psForceRasterPos(GL2PSvertex *vert) -{ - - if(!gl2ps) { - return GL2PS_UNINITIALIZED; - } - - gl2ps->forcerasterpos = GL_TRUE; - gl2ps->rasterpos.xyz[0] = vert->xyz[0]; - gl2ps->rasterpos.xyz[1] = vert->xyz[1]; - gl2ps->rasterpos.xyz[2] = vert->xyz[2]; - gl2ps->rasterpos.rgba[0] = vert->rgba[0]; - gl2ps->rasterpos.rgba[1] = vert->rgba[1]; - gl2ps->rasterpos.rgba[2] = vert->rgba[2]; - gl2ps->rasterpos.rgba[3] = vert->rgba[3]; - - return GL2PS_SUCCESS; -} - -GL2PSDLL_API GLint gl2psSetTexScaling(GLfloat scaling) -{ - - if(!gl2ps) { - return GL2PS_UNINITIALIZED; - } - gl2ps->tex_scaling = scaling; - - return GL2PS_SUCCESS; -} diff --git a/source/visualization/gMocren/History b/source/visualization/gMocren/History index 072588545b..999322cbf9 100644 --- a/source/visualization/gMocren/History +++ b/source/visualization/gMocren/History @@ -1,8 +1,13 @@ # Category gMocren History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-25 Gabriele Cosmo (gMocren-V11-00-03) +- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2022-04-16 John Allison (gMocren-V11-00-02) - G4GMocrenFileSceneHandler.cc: diff --git a/source/visualization/gMocren/src/G4GMocrenFileSceneHandler.cc b/source/visualization/gMocren/src/G4GMocrenFileSceneHandler.cc index ee8444af49..01bcd24fb7 100644 --- a/source/visualization/gMocren/src/G4GMocrenFileSceneHandler.cc +++ b/source/visualization/gMocren/src/G4GMocrenFileSceneHandler.cc @@ -141,7 +141,7 @@ G4GMocrenFileSceneHandler::G4GMocrenFileSceneHandler(G4GMocrenFile& system, std::strlen(DEFAULT_GDD_FILE_NAME)+1); // filename } else { const char * env = std::getenv("G4GMocrenFile_DEST_DIR"); - int len = std::strlen(env); + G4int len = (G4int)std::strlen(env); if(len > 256) { G4Exception("G4GMocrenFileSceneHandler::G4GMocrenFileSceneHandler(*)", "gMocren1000", FatalException, @@ -1193,9 +1193,9 @@ void G4GMocrenFileSceneHandler::AddSolid( const G4Box& box ) ; } - kNestedVolumeDimension[0] = phantomPara->GetNoVoxelsX(); - kNestedVolumeDimension[1] = phantomPara->GetNoVoxelsY(); - kNestedVolumeDimension[2] = phantomPara->GetNoVoxelsZ(); + kNestedVolumeDimension[0] = (G4int)phantomPara->GetNoVoxelsX(); + kNestedVolumeDimension[1] = (G4int)phantomPara->GetNoVoxelsY(); + kNestedVolumeDimension[2] = (G4int)phantomPara->GetNoVoxelsZ(); kNestedVolumeDirAxis[0] = 0; kNestedVolumeDirAxis[1] = 1; kNestedVolumeDirAxis[2] = 2; diff --git a/source/visualization/gMocren/src/G4GMocrenFileViewer.cc b/source/visualization/gMocren/src/G4GMocrenFileViewer.cc index f6c8078abb..16e06edebd 100644 --- a/source/visualization/gMocren/src/G4GMocrenFileViewer.cc +++ b/source/visualization/gMocren/src/G4GMocrenFileViewer.cc @@ -67,7 +67,7 @@ G4GMocrenFileViewer::G4GMocrenFileViewer (G4GMocrenFileSceneHandler& sceneHandle std::strncpy( kG4GddViewer, "gMocren", 8); if( std::getenv( "G4GMocrenFile_VIEWER" ) != NULL ) { char * env = std::getenv( "G4GMocrenFile_VIEWER" ); - G4int len = std::strlen(env); + G4int len = (G4int)std::strlen(env); if(len >= 32) { G4Exception("G4GMocrenFileViewer::G4GMocrenFileViewer(*)", "gMocren1000", FatalException, @@ -89,17 +89,17 @@ G4GMocrenFileViewer::G4GMocrenFileViewer (G4GMocrenFileSceneHandler& sceneHandle sizeof(kG4GddViewerInvocation) - 1); kG4GddViewerInvocation[sizeof(kG4GddViewerInvocation) - 1] = '\0'; G4int n = sizeof(kG4GddViewerInvocation) - - std::strlen(kG4GddViewerInvocation) - 1; + - (G4int)std::strlen(kG4GddViewerInvocation) - 1; std::strncat( kG4GddViewerInvocation, " ", n); const char * gddfname = kSceneHandler.GetGddFileName(); - G4int len = std::strlen(gddfname); + G4int len = (G4int)std::strlen(gddfname); if(len >= 64) { G4Exception("G4GMocrenFileViewer::G4GMocrenFileViewer(*)", "gMocren1001", FatalException, "Invalid length of the GDD file name"); } n = sizeof(kG4GddViewerInvocation) - - std::strlen(kG4GddViewerInvocation) - 1; + - (G4int)std::strlen(kG4GddViewerInvocation) - 1; std::strncat( kG4GddViewerInvocation, gddfname, n); } @@ -188,17 +188,17 @@ void G4GMocrenFileViewer::ShowView( void ) sizeof(kG4GddViewerInvocation) - 1); kG4GddViewerInvocation[sizeof(kG4GddViewerInvocation) - 1] = '\0'; G4int n = sizeof(kG4GddViewerInvocation) - - std::strlen(kG4GddViewerInvocation) - 1; + - (G4int)std::strlen(kG4GddViewerInvocation) - 1; std::strncat( kG4GddViewerInvocation, " ", n); const char * gddfname = kSceneHandler.GetGddFileName(); - G4int len = std::strlen(gddfname); + G4int len = (G4int)std::strlen(gddfname); if(len >= 64) { G4Exception("G4GMocrenFileViewer::ShowView()", "gMocren1002", FatalException, "Invalid length of the GDD file name"); } n = sizeof(kG4GddViewerInvocation) - - std::strlen(kG4GddViewerInvocation) - 1; + - (G4int)std::strlen(kG4GddViewerInvocation) - 1; std::strncat( kG4GddViewerInvocation, gddfname, n); } diff --git a/source/visualization/gMocren/src/G4GMocrenIO.cc b/source/visualization/gMocren/src/G4GMocrenIO.cc index f1b8d75ba9..5c1fcfdbe0 100644 --- a/source/visualization/gMocren/src/G4GMocrenIO.cc +++ b/source/visualization/gMocren/src/G4GMocrenIO.cc @@ -894,7 +894,7 @@ bool G4GMocrenIO::storeData4() { // number of track if(kPointerToTrackData > 0) { - int ntrk = kTracks.size(); + int ntrk = (int)kTracks.size(); if(kLittleEndianOutput) { ofile.write((char *)&ntrk, sizeof(int)); } else { @@ -946,7 +946,7 @@ bool G4GMocrenIO::storeData4() { //----- detector information -----// // number of detectors if(kPointerToDetectorData > 0) { - int ndet = kDetectors.size(); + int ndet = (int)kDetectors.size(); if(kLittleEndianOutput) { ofile.write((char *)&ndet, sizeof(int)); } else { @@ -1287,7 +1287,7 @@ bool G4GMocrenIO::storeData3() { //----- track information -----// // number of track - int ntrk = kSteps.size(); + int ntrk = (int)kSteps.size(); ofile.write((char *)&ntrk, sizeof(int)); if(DEBUG || kVerbose > 0) { G4cout << "# of tracks : " @@ -1566,7 +1566,7 @@ bool G4GMocrenIO::storeData2() { //----- track information -----// // track - int ntrk = kSteps.size(); + int ntrk = (int)kSteps.size(); ofile.write((char *)&ntrk, sizeof(int)); if(DEBUG || kVerbose > 0) { G4cout << "# of tracks : " @@ -2088,7 +2088,7 @@ bool G4GMocrenIO::retrieveData4() { if(i < 5) { G4cout << i << ": " ; for(int j = 0; j < 3; j++) G4cout << steps[0][j] << " "; - int nstp = steps.size(); + int nstp = (int)steps.size(); G4cout << "<-> "; for(int j = 3; j < 6; j++) G4cout << steps[nstp-1][j] << " "; G4cout << " rgb( "; @@ -3223,7 +3223,7 @@ void G4GMocrenIO::calcPointers4() { } // pointer to track data - int ntrk = kTracks.size(); + int ntrk = (int)kTracks.size(); if(ntrk != 0) { setPointerToTrackData(pointer); @@ -3240,7 +3240,7 @@ void G4GMocrenIO::calcPointers4() { << kPointerToTrackData << G4endl; // pointer to detector data - int ndet = kDetectors.size(); + int ndet = (int)kDetectors.size(); if(ndet != 0) { kPointerToDetectorData = pointer; } else { @@ -3689,7 +3689,7 @@ bool G4GMocrenIO::mergeDoseDist(std::vector > return false; } - int num = kDose.size(); + int num = (int)kDose.size(); std::vector >::iterator itr1 = kDose.begin(); std::vector >::iterator itr2 = _dose.begin(); for(int i = 0; i < num; i++, itr1++, itr2++) { diff --git a/source/visualization/management/History b/source/visualization/management/History index a4ff49ce8c..93d8cd4830 100644 --- a/source/visualization/management/History +++ b/source/visualization/management/History @@ -1,8 +1,96 @@ # Category visman History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, -which **must** added in reverse chronological order (newest at the top). It must **not** -be used as a substitute for writing good git commit messages! +which **must** added in reverse chronological order (newest at the top). +It must **not** be used as a substitute for writing good git commit messages! + +------------------------------------------------------------------------------- + +## 2022-11-25 Gabriele Cosmo (visman-V11-00-31) +- Fixed compilation warning for implicit type conversions on macOS/XCode 14.1. + +## 2022-11-05 John Allison (visman-V11-00-30) +- Eliminate G4cerr and introduce G4warn in remaining visman files. + - `#define G4warn G4cout` + - The above is temporary until a genuine G4warn output stream is + implemented. + - Change G4cerr to G4warn in all cases. + - Change G4cout to G4warn in those cases where `verbosity >= warnings`. + +## 2022-11-04 John Allison (visman-V11-00-29) +- G4VisManager.cc: Eliminate G4cerr and introduce G4warn. + - Only for G4VisManager.cc for now to test the principle. + - Other vis files will be migrated if this MR is successful. + - `#define G4warn G4cout` + - The above is temporary until a genuine G4warn output stream is + implemented. + - Change G4cerr to G4warn in all cases. + - Change G4cout to G4warn in those cases where `verbosity >= warnings`. + +## 2022-10-30 John Allison (visman-V11-00-28) +- Implement void G4VisManager::DrawGeometry + (G4VPhysicalVolume* v, const G4Transform3D& t) + - Draws a geometry tree starting at the specified physical volume. + +## 2022-10-28 John Allison (visman-V11-00-27) +- Implement generic cutaway. + - Prior to this tag, cutaways were implemented only in OpenGL by using + OpenGL's clipping plane feature. This still pertains for OpenGL because + it is very fast, but this tag implements cutaways using Boolean operations. + Evgueni Tcherniaev and I have found a way to make this reasonably + robust and reliable. The initial motivation and implementation on the + management side (G4VSceneHandler) came from a Geant4 user, + Pooria Heidary, via a GitHub pull request. + - G4VSceneHandler::CreateCutawaySolid: + - The initial implementation is by Pooria Heidary. + - G4VSceneHandler::RequestPrimitives: + - Check validity of Boolean solids. This is particularly pertinent + for cutaways, because the cutting volume (the subtractor) is + large and general and often the target volume is entirely within + or entirely outside. But it is a check that now applies to all + geometries, with or without cutaways, so it is a bug fix. + - Sometimes solids that have no substance get requested. They may + be part of the geometry tree but have been "spirited away", for + example by a Boolean subtraction in which the original volume + is entirely inside the subtractor. + - The problem is that the Boolean Processor still returns a + polyhedron in these cases (IMHO it should not), so the + workaround is to return before the damage is done. + - The check involves seeking a point inside the resulting + Boolean solid. If it cannot be found within a large number + of attempts, it is assumed to be invalid. + - G4VisCommandsViewer.cc: + - Make sure the normal to the cutaway plane is normalised (unit vector). + - G4VisCommandsViewerSet.cc: + - Make sure the normal to the sectioning plane is normalised (unit vector). + +## 2022-10-13 Guy Barrand (visman-V11-00-26) +- G4VisExecutive.icc: add TOOLSSG_OFFSCREEN. + +## 2022-09-19 John Allison (visman-V11-00-25) +- G4VSceneHandler.cc::StandardSpecialMeshRendering(): + - Draw container if not marked invisible. + +## 2022-09-13 Evgueni Tcherniaev (visman-V11-00-24) +- G4VSceneHandler: implemented GetPointInBox() and GetPointInTet() + to sample a random point inside a box and a tetrahedron. + +## 2022-09-10 Ben Morgan (visman-V11-00-23) +- Mark compile time only and buildmode-specific headers as "no_geant4_module_check" + +## 2022-09-03 Ben Morgan (visman-V11-00-22) +- Add PRIVATE dependency on G4volumes for multithreaded builds only. + +## 2022-08-17 John Allison (visman-V11-00-21) +- Back out code that forces /vis/verbose and /control/verbose +- G4VisCommandsCompound.cc, G4VisCommandsSceneAdd.cc, + G4VisCommandsTouchable.cc, G4VisCommandsViewer.cc: + - Sometimes the vis system forced extra vis messages or the echoing of + commands. Not sure why this was done - perhaps with a thought to + providing useful information - but it causes surprises, for example, + when the control verbosity is zero (no command echoing) a command is + still echoed. With this patch, there will be no such surprises - what + the user sets as vis and/or control verbosity will apply at all times. ## 2022-06-13 Laurie Nevay (visman-V11-00-20) - G4VisCommandsSceneAdd - changed the default width of axes added to the scene with diff --git a/source/visualization/management/include/G4VSceneHandler.hh b/source/visualization/management/include/G4VSceneHandler.hh index 7ee5dad06a..5094713136 100644 --- a/source/visualization/management/include/G4VSceneHandler.hh +++ b/source/visualization/management/include/G4VSceneHandler.hh @@ -419,6 +419,15 @@ protected: // For a tetrahedron mesh, draw as surfaces by colour and material // with inner shared faces removed. + G4ThreeVector GetPointInBox(const G4ThreeVector& pos, + G4double halfX, + G4double halfY, + G4double halfZ) const; + // Sample a random point inside the box + + G4ThreeVector GetPointInTet(const std::vector& vertices) const; + // Sample a random point inside the tetrahedron + ////////////////////////////////////////////////////////////// // Data members diff --git a/source/visualization/management/include/G4VViewer.hh b/source/visualization/management/include/G4VViewer.hh index 059f153979..e6dc21ce83 100644 --- a/source/visualization/management/include/G4VViewer.hh +++ b/source/visualization/management/include/G4VViewer.hh @@ -198,17 +198,17 @@ protected: // Operations void AddSplinePoint(const G4Vector3D& v); - G4Vector3D GetInterpolatedSplinePoint(float t); // t = 0...1; 0=vp[0] ... 1=vp[max] - int GetNumPoints(); + G4Vector3D GetInterpolatedSplinePoint(G4float t); // t = 0...1; 0=vp[0] ... 1=vp[max] + G4int GetNumPoints(); G4Vector3D GetPoint(int); // method for computing the Catmull-Rom parametric equation // given a time (t) and a vector quadruple (p1,p2,p3,p4). - G4Vector3D CatmullRom_Eq(float t, const G4Vector3D& p1, const G4Vector3D& p2, + G4Vector3D CatmullRom_Eq(G4float t, const G4Vector3D& p1, const G4Vector3D& p2, const G4Vector3D& p3, const G4Vector3D& p4); private: std::vector vp; - float delta_t; + G4float delta_t; }; ////////////////////////////////////////////////////////////// diff --git a/source/visualization/management/include/G4VisExecutive.icc b/source/visualization/management/include/G4VisExecutive.icc index 4c395532c9..237d0718c5 100644 --- a/source/visualization/management/include/G4VisExecutive.icc +++ b/source/visualization/management/include/G4VisExecutive.icc @@ -31,84 +31,86 @@ #ifndef G4VISEXECUTIVE_ICC #define G4VISEXECUTIVE_ICC -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4HepRepFile.hh" -#include "G4RayTracer.hh" +// Filter/Model Factories #include "G4HitFilterFactories.hh" #include "G4DigiFilterFactories.hh" #include "G4TrajectoryFilterFactories.hh" #include "G4TrajectoryModelFactories.hh" -#include "G4VRML2File.hh" -#include "G4GMocrenFile.hh" + +// Supported drivers... +// Not needing external packages or libraries... +#include "G4ASCIITree.hh" // no_geant4_module_check +#include "G4DAWNFILE.hh" // no_geant4_module_check +#include "G4HepRepFile.hh" // no_geant4_module_check +#include "G4RayTracer.hh" // no_geant4_module_check +#include "G4VRML2File.hh" // no_geant4_module_check +#include "G4GMocrenFile.hh" // no_geant4_module_check +#include "G4ToolsSGOffscreen.hh" // no_geant4_module_check // Needing external packages or libraries... #ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" +#include "G4OpenGLImmediateX.hh" // no_geant4_module_check +#include "G4OpenGLStoredX.hh" // no_geant4_module_check #endif #ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" +#include "G4OpenGLImmediateWin32.hh" // no_geant4_module_check +#include "G4OpenGLStoredWin32.hh" // no_geant4_module_check #endif #ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" +#include "G4OpenGLImmediateXm.hh" // no_geant4_module_check +#include "G4OpenGLStoredXm.hh" // no_geant4_module_check #endif #ifdef G4VIS_USE_OPENGLQT -#include "G4OpenGLImmediateQt.hh" -#include "G4OpenGLStoredQt.hh" +#include "G4OpenGLImmediateQt.hh" // no_geant4_module_check +#include "G4OpenGLStoredQt.hh" // no_geant4_module_check #endif #ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#include "G4OpenInventorXtExtended.hh" +#include "G4OpenInventorX.hh" // no_geant4_module_check +#include "G4OpenInventorXtExtended.hh" // no_geant4_module_check #endif #ifdef G4VIS_USE_OIQT -#include "G4OpenInventorQt.hh" +#include "G4OpenInventorQt.hh" // no_geant4_module_check #endif #ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" +#include "G4OpenInventorWin32.hh" // no_geant4_module_check #endif #ifdef G4VIS_USE_RAYTRACERX -#include "G4RayTracerX.hh" +#include "G4RayTracerX.hh" // no_geant4_module_check #endif #ifdef G4VIS_USE_QT3D -#include "G4Qt3D.hh" +#include "G4Qt3D.hh" // no_geant4_module_check #endif #ifdef G4VIS_USE_TOOLSSG_X11_GLES -#include "G4ToolsSGX11GLES.hh" +#include "G4ToolsSGX11GLES.hh" // no_geant4_module_check #endif #ifdef G4VIS_USE_TOOLSSG_WINDOWS_GLES -#include "G4ToolsSGWindowsGLES.hh" +#include "G4ToolsSGWindowsGLES.hh" // no_geant4_module_check #endif #ifdef G4VIS_USE_TOOLSSG_XT_GLES -#include "G4ToolsSGXtGLES.hh" +#include "G4ToolsSGXtGLES.hh" // no_geant4_module_check #endif #ifdef G4VIS_USE_TOOLSSG_QT_GLES -#include "G4ToolsSGQtGLES.hh" +#include "G4ToolsSGQtGLES.hh" // no_geant4_module_check #endif #ifdef G4VIS_USE_VTK -#include "G4Vtk.hh" +#include "G4Vtk.hh" // no_geant4_module_check #endif #ifdef G4VIS_USE_VTK_QT -#include "G4VtkQt.hh" +#include "G4VtkQt.hh" // no_geant4_module_check #endif // The inline keyword prevents the compiler making an external @@ -135,6 +137,11 @@ G4VisExecutive::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML2File); RegisterGraphicsSystem (new G4GMocrenFile); + RegisterGraphicsSystem (new G4ToolsSGOffscreen); + + G4VGraphicsSystem* tsg_offscreen = new G4ToolsSGOffscreen; + RegisterGraphicsSystem(tsg_offscreen); + tsg_offscreen->AddNickname("TSG_FILE"); // Graphics systems needing external packages or libraries... // Register OGL family of drivers with their normal names, diff --git a/source/visualization/management/include/G4VisManager.hh b/source/visualization/management/include/G4VisManager.hh index 9d79f111cf..11318b8b16 100644 --- a/source/visualization/management/include/G4VisManager.hh +++ b/source/visualization/management/include/G4VisManager.hh @@ -286,6 +286,10 @@ public: // With description void Draw (const G4VSolid&, const G4VisAttributes&, const G4Transform3D& objectTransformation = G4Transform3D()); + void DrawGeometry + (G4VPhysicalVolume*, const G4Transform3D& t = G4Transform3D()); + // Draws a geometry tree starting at the specified physical volume. + ////////////////////////////////////////////////////////////////////// // Optional methods that you may use to bracket a series of Draw // messages that have identical objectTransformation to improve diff --git a/source/visualization/management/sources.cmake b/source/visualization/management/sources.cmake index b0327bd08f..72d2ea1834 100644 --- a/source/visualization/management/sources.cmake +++ b/source/visualization/management/sources.cmake @@ -97,3 +97,7 @@ geant4_module_link_libraries(G4vis_management G4navigation G4digits G4heprandom) + +if(GEANT4_BUILD_MULTITHREADED) + geant4_module_link_libraries(G4vis_management PRIVATE G4volumes) +endif() diff --git a/source/visualization/management/src/G4Scene.cc b/source/visualization/management/src/G4Scene.cc index faba0e6ccf..af785b47c1 100644 --- a/source/visualization/management/src/G4Scene.cc +++ b/source/visualization/management/src/G4Scene.cc @@ -38,6 +38,8 @@ #include +#define G4warn G4cout + G4Scene::G4Scene (const G4String& name): fName (name), fRefreshAtEndOfEvent(true), @@ -131,7 +133,7 @@ G4bool G4Scene::AddWorldIfEmpty (G4bool warn) { pWorld -> GetLogicalVolume () -> GetVisAttributes (); if (!pVisAttribs || pVisAttribs -> IsVisible ()) { if (warn) { - G4cout << + G4warn << "Your \"world\" has no vis attributes or is marked as visible." "\n For a better view of the contents, mark the world as" " invisible, e.g.," @@ -144,10 +146,10 @@ G4bool G4Scene::AddWorldIfEmpty (G4bool warn) { // Note: default depth and no modeling parameters. if (successful) { if (warn) { - G4cout << + G4warn << "G4Scene::AddWorldIfEmpty: The scene had no extent." "\n \"world\" has been added."; - G4cout << G4endl; + G4warn << G4endl; } } } @@ -165,7 +167,7 @@ G4bool G4Scene::AddRunDurationModel (G4VModel* pModel, G4bool warn) } if (i != fRunDurationModelList.end ()) { if (warn) { - G4cout << "G4Scene::AddRunDurationModel: model \"" + G4warn << "G4Scene::AddRunDurationModel: model \"" << pModel -> GetGlobalDescription () << "\"\n is already in the run-duration list of scene \"" << fName @@ -180,14 +182,14 @@ G4bool G4Scene::AddRunDurationModel (G4VModel* pModel, G4bool warn) } G4bool G4Scene::AddEndOfEventModel (G4VModel* pModel, G4bool warn) { - G4int i, nModels = fEndOfEventModelList.size (); - for (i = 0; i < nModels; i++) { + std::size_t i, nModels = fEndOfEventModelList.size (); + for (i = 0; i < nModels; ++i) { if (pModel -> GetGlobalDescription () == fEndOfEventModelList[i].fpModel -> GetGlobalDescription ()) break; } if (i < nModels) { if (warn) { - G4cout << "G4Scene::AddEndOfEventModel: a model \"" + G4warn << "G4Scene::AddEndOfEventModel: a model \"" << pModel -> GetGlobalDescription () << "\"\n is already in the end-of-event list of scene \"" << fName << "\"." @@ -201,14 +203,14 @@ G4bool G4Scene::AddEndOfEventModel (G4VModel* pModel, G4bool warn) { } G4bool G4Scene::AddEndOfRunModel (G4VModel* pModel, G4bool warn) { - G4int i, nModels = fEndOfRunModelList.size (); - for (i = 0; i < nModels; i++) { + std::size_t i, nModels = fEndOfRunModelList.size (); + for (i = 0; i < nModels; ++i) { if (pModel -> GetGlobalDescription () == fEndOfRunModelList[i].fpModel -> GetGlobalDescription ()) break; } if (i < nModels) { if (warn) { - G4cout << "G4Scene::AddEndOfRunModel: a model \"" + G4warn << "G4Scene::AddEndOfRunModel: a model \"" << pModel -> GetGlobalDescription () << "\"\n is already in the end-of-run list of scene \"" << fName << "\"." diff --git a/source/visualization/management/src/G4VSceneHandler.cc b/source/visualization/management/src/G4VSceneHandler.cc index 659f4d4413..d133673a6e 100644 --- a/source/visualization/management/src/G4VSceneHandler.cc +++ b/source/visualization/management/src/G4VSceneHandler.cc @@ -66,6 +66,8 @@ #include "G4Polyhedra.hh" #include "G4Tet.hh" #include "G4DisplacedSolid.hh" +#include "G4UnionSolid.hh" +#include "G4IntersectionSolid.hh" #include "G4LogicalVolume.hh" #include "G4PhysicalVolumeModel.hh" #include "G4ModelingParameters.hh" @@ -78,7 +80,7 @@ #include "G4VScoringMesh.hh" #include "G4Mesh.hh" #include "G4DefaultLinearColorMap.hh" -#include "Randomize.hh" +#include "G4QuickRand.hh" #include "G4StateManager.hh" #include "G4RunManager.hh" #include "G4RunManagerFactory.hh" @@ -92,6 +94,8 @@ #include +#define G4warn G4cout + G4VSceneHandler::G4VSceneHandler (G4VGraphicsSystem& system, G4int id, const G4String& name): fSystem (system), fSceneHandlerId (id), @@ -344,14 +348,14 @@ void G4VSceneHandler::AddCompound (const G4THitsMap& hits) { G4bool scoreMapHits = false; G4ScoringManager* scoringManager = G4ScoringManager::GetScoringManagerIfExist(); if (scoringManager) { - size_t nMeshes = scoringManager->GetNumberOfMesh(); - for (size_t iMesh = 0; iMesh < nMeshes; ++iMesh) { - G4VScoringMesh* mesh = scoringManager->GetMesh(iMesh); + std::size_t nMeshes = scoringManager->GetNumberOfMesh(); + for (std::size_t iMesh = 0; iMesh < nMeshes; ++iMesh) { + G4VScoringMesh* mesh = scoringManager->GetMesh((G4int)iMesh); if (mesh && mesh->IsActive()) { MeshScoreMap scoreMap = mesh->GetScoreMap(); const G4String& mapNam = const_cast&>(hits).GetName(); - for(MeshScoreMap::const_iterator i = scoreMap.begin(); - i != scoreMap.end(); ++i) { + for(MeshScoreMap::const_iterator i = scoreMap.cbegin(); + i != scoreMap.cend(); ++i) { const G4String& scoreMapName = i->first; if (scoreMapName == mapNam) { G4DefaultLinearColorMap colorMap("G4VSceneHandlerColorMap"); @@ -387,13 +391,13 @@ void G4VSceneHandler::AddCompound (const G4THitsMap& hits) { G4bool scoreMapHits = false; G4ScoringManager* scoringManager = G4ScoringManager::GetScoringManagerIfExist(); if (scoringManager) { - size_t nMeshes = scoringManager->GetNumberOfMesh(); - for (size_t iMesh = 0; iMesh < nMeshes; ++iMesh) { - G4VScoringMesh* mesh = scoringManager->GetMesh(iMesh); + std::size_t nMeshes = scoringManager->GetNumberOfMesh(); + for (std::size_t iMesh = 0; iMesh < nMeshes; ++iMesh) { + G4VScoringMesh* mesh = scoringManager->GetMesh((G4int)iMesh); if (mesh && mesh->IsActive()) { MeshScoreMap scoreMap = mesh->GetScoreMap(); - for(MeshScoreMap::const_iterator i = scoreMap.begin(); - i != scoreMap.end(); ++i) { + for(MeshScoreMap::const_iterator i = scoreMap.cbegin(); + i != scoreMap.cend(); ++i) { const G4String& scoreMapName = i->first; const G4THitsMap* foundHits = i->second; if (foundHits == &hits) { @@ -426,7 +430,7 @@ void G4VSceneHandler::AddCompound (const G4THitsMap& hits) { void G4VSceneHandler::AddCompound(const G4Mesh& mesh) { - G4cerr << + G4warn << "There has been an attempt to draw a mesh with option \"" << fpViewer->GetViewParameters().GetSpecialMeshRenderingOption() << "\":\n" << mesh @@ -468,7 +472,7 @@ void G4VSceneHandler::AddPrimitive (const G4Polymarker& polymarker) { G4Circle dot (polymarker); dot.SetWorldSize (0.); dot.SetScreenSize (0.1); // Very small circle. - for (size_t iPoint = 0; iPoint < polymarker.size (); iPoint++) { + for (std::size_t iPoint = 0; iPoint < polymarker.size (); ++iPoint) { dot.SetPosition (polymarker[iPoint]); AddPrimitive (dot); } @@ -477,7 +481,7 @@ void G4VSceneHandler::AddPrimitive (const G4Polymarker& polymarker) { case G4Polymarker::circles: { G4Circle circle (polymarker); // Default circle - for (size_t iPoint = 0; iPoint < polymarker.size (); iPoint++) { + for (std::size_t iPoint = 0; iPoint < polymarker.size (); ++iPoint) { circle.SetPosition (polymarker[iPoint]); AddPrimitive (circle); } @@ -486,7 +490,7 @@ void G4VSceneHandler::AddPrimitive (const G4Polymarker& polymarker) { case G4Polymarker::squares: { G4Square square (polymarker); // Default square - for (size_t iPoint = 0; iPoint < polymarker.size (); iPoint++) { + for (std::size_t iPoint = 0; iPoint < polymarker.size (); ++iPoint) { square.SetPosition (polymarker[iPoint]); AddPrimitive (square); } @@ -504,9 +508,9 @@ void G4VSceneHandler::RemoveViewerFromList (G4VViewer* pViewer) { void G4VSceneHandler::AddPrimitive (const G4Plotter&) { - G4cerr << "WARNING: Plotter not implemented for " << fSystem.GetName() << G4endl; - G4cerr << " Open a plotter-aware graphics system or remove plotter with" << G4endl; - G4cerr << " /vis/scene/removeModel Plotter" << G4endl; + G4warn << "WARNING: Plotter not implemented for " << fSystem.GetName() << G4endl; + G4warn << " Open a plotter-aware graphics system or remove plotter with" << G4endl; + G4warn << " /vis/scene/removeModel Plotter" << G4endl; } void G4VSceneHandler::SetScene (G4Scene* pScene) { @@ -520,6 +524,31 @@ void G4VSceneHandler::SetScene (G4Scene* pScene) { void G4VSceneHandler::RequestPrimitives (const G4VSolid& solid) { + // Sometimes solids that have no substance get requested. They may + // be part of the geometry tree but have been "spirited away", for + // example by a Boolean subtraction in wich the original volume + // is entirely inside the subtractor. + // The problem is that the Boolean Processor still returns a + // polyhedron in these cases (IMHO it should not), so the + // workaround is to return before the damage is done. + auto pSolid = &solid; + auto pBooleanSolid = dynamic_cast(pSolid); + if (pBooleanSolid) { + G4ThreeVector bmin, bmax; + pBooleanSolid->BoundingLimits(bmin, bmax); + G4bool isGood = false; + for (G4int i=0; i<100000; ++i) { + G4double x = bmin.x() + (bmax.x() - bmin.x())*G4QuickRand(); + G4double y = bmin.y() + (bmax.y() - bmin.y())*G4QuickRand(); + G4double z = bmin.z() + (bmax.z() - bmin.z())*G4QuickRand(); + if (pBooleanSolid->Inside(G4ThreeVector(x,y,z)) == kInside) { + isGood = true; + break; + } + } + if (!isGood) return; + } + const G4ViewParameters::DrawingStyle style = GetDrawingStyle(fpVisAttribs); const G4ViewParameters& vp = fpViewer->GetViewParameters(); @@ -546,25 +575,25 @@ void G4VSceneHandler::RequestPrimitives (const G4VSolid& solid) if (verbosity >= G4VisManager::errors && problematicSolids.find(&solid) == problematicSolids.end()) { problematicSolids.insert(&solid); - G4cerr << + G4warn << "ERROR: G4VSceneHandler::RequestPrimitives" "\n Polyhedron not available for " << solid.GetName (); G4PhysicalVolumeModel* pPVModel = dynamic_cast(fpModel); if (pPVModel) { - G4cerr << "\n Touchable path: " << pPVModel->GetFullPVPath(); + G4warn << "\n Touchable path: " << pPVModel->GetFullPVPath(); } static G4bool explanation = false; if (!explanation) { explanation = true; - G4cerr << + G4warn << "\n This means it cannot be visualized in the usual way on most systems." "\n 1) The solid may not have implemented the CreatePolyhedron method." "\n 2) For Boolean solids, the BooleanProcessor, which attempts to create" "\n the resultant polyhedron, may have failed." "\n Try RayTracer. It uses Geant4's tracking algorithms instead."; } - G4cerr << "\n Drawing solid with cloud of points."; - G4cerr << G4endl; + G4warn << "\n Drawing solid with cloud of points."; + G4warn << G4endl; } } } @@ -660,7 +689,7 @@ void G4VSceneHandler::ProcessScene() // Create modeling parameters from view parameters... G4ModelingParameters* pMP = CreateModelingParameters(); - for(size_t i = 0; i < runDurationModelList.size(); i++) + for(std::size_t i = 0; i < runDurationModelList.size(); ++i) { if(runDurationModelList[i].fActive) { @@ -702,7 +731,7 @@ void G4VSceneHandler::ProcessScene() const G4Run* run = runManager->GetCurrentRun(); const std::vector* events = run ? run->GetEventVector() : 0; - size_t nKeptEvents = 0; + std::size_t nKeptEvents = 0; if(events) nKeptEvents = events->size(); if(nKeptEvents) @@ -736,7 +765,7 @@ void G4VSceneHandler::ProcessScene() { if(verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: Cannot refresh events accumulated over more" + G4warn << "WARNING: Cannot refresh events accumulated over more" "\n than one runs. Refreshed just the last run." << G4endl; } @@ -762,11 +791,11 @@ void G4VSceneHandler::DrawEvent(const G4Event* event) { const std::vector& EOEModelList = fpScene -> GetEndOfEventModelList (); - size_t nModels = EOEModelList.size(); + std::size_t nModels = EOEModelList.size(); if (nModels) { G4ModelingParameters* pMP = CreateModelingParameters(); pMP->SetEvent(event); - for (size_t i = 0; i < nModels; i++) { + for (std::size_t i = 0; i < nModels; ++i) { if (EOEModelList[i].fActive) { fpModel = EOEModelList[i].fpModel; fpModel -> SetModelingParameters(pMP); @@ -783,11 +812,11 @@ void G4VSceneHandler::DrawEndOfRunModels() { const std::vector& EORModelList = fpScene -> GetEndOfRunModelList (); - size_t nModels = EORModelList.size(); + std::size_t nModels = EORModelList.size(); if (nModels) { G4ModelingParameters* pMP = CreateModelingParameters(); pMP->SetEvent(0); - for (size_t i = 0; i < nModels; i++) { + for (std::size_t i = 0; i < nModels; ++i) { if (EORModelList[i].fActive) { fpModel = EORModelList[i].fpModel; fpModel -> SetModelingParameters(pMP); @@ -908,32 +937,69 @@ G4DisplacedSolid* G4VSceneHandler::CreateSectionSolid() G4DisplacedSolid* G4VSceneHandler::CreateCutawaySolid() { - // To be reviewed. + const G4ViewParameters& vp = fpViewer->GetViewParameters(); + if (vp.IsCutaway()) { + + std::vector cutaway_solids; + + G4double radius = fpScene->GetExtent().GetExtentRadius(); + G4double safe = radius + fpScene->GetExtent().GetExtentCentre().mag(); + G4VSolid* cutawayBox = + new G4Box("_cutaway_box", safe, safe, safe); // world box... + + for (int plane_no = 0; plane_no < int(vp.GetCutawayPlanes().size()); plane_no++){ + + const G4Normal3D originalNormal(0,0,1); // ...so this is original normal. + + const G4Plane3D& sp = vp.GetCutawayPlanes()[plane_no]; //]; + const G4double& a = sp.a(); + const G4double& b = sp.b(); + const G4double& c = sp.c(); + const G4double& d = sp.d(); + const G4Normal3D newNormal(-a,-b,-c); // Convention: keep a*x+b*y+c*z+d>=0 + // Not easy to see why the above gives the right convention, but it has been + // arrived at by trial and error to agree with the OpenGL implementation + // of clipping planes. + + G4Transform3D requiredTransform; // Null transform + // Calculate the rotation + // If newNormal is (0,0,1), no need to do anything + // Treat (0,0,-1) as a special case, since cannot define axis in this case + if (newNormal == G4Normal3D(0,0,-1)) { + requiredTransform = G4Rotate3D(pi,G4Vector3D(1,0,0)); + } else if (newNormal != originalNormal) { + const G4double& angle = std::acos(newNormal.dot(originalNormal)); + const G4Vector3D& axis = originalNormal.cross(newNormal); + requiredTransform = G4Rotate3D(angle, axis); + } + // Translation + requiredTransform = requiredTransform * G4TranslateZ3D(d + safe); + cutaway_solids.push_back + (new G4DisplacedSolid("_displaced_cutaway_box", cutawayBox, requiredTransform)); + } + + if (cutaway_solids.size() == 1){ + return (G4DisplacedSolid*) cutaway_solids[0]; + } else if (vp.GetCutawayMode() == G4ViewParameters::cutawayUnion) { + G4UnionSolid* union2 = + new G4UnionSolid("_union_2", cutaway_solids[0], cutaway_solids[1]); + if (cutaway_solids.size() == 2) + return (G4DisplacedSolid*)union2; + else + return (G4DisplacedSolid*) + new G4UnionSolid("_union_3", union2, cutaway_solids[2]); + } else if (vp.GetCutawayMode() == G4ViewParameters::cutawayIntersection){ + G4IntersectionSolid* intersection2 = + new G4IntersectionSolid("_intersection_2", cutaway_solids[0], cutaway_solids[1]); + if (cutaway_solids.size() == 2) + return (G4DisplacedSolid*)intersection2; + else + return (G4DisplacedSolid*) + new G4IntersectionSolid("_intersection_3", intersection2, cutaway_solids[2]); + } + } + return 0; - /*** An alternative way of getting a cutaway is to use - Command /vis/scene/add/volume - Guidance : - Adds a physical volume to current scene, with optional clipping volume. - If physical-volume-name is "world" (the default), the top of the - main geometry tree (material world) is added. If "worlds", the - top of all worlds - material world and parallel worlds, if any - are - added. Otherwise a search of all worlds is made, taking the first - matching occurrence only. To see a representation of the geometry - hierarchy of the worlds, try "/vis/drawTree [worlds]" or one of the - driver/browser combinations that have the required functionality, e.g., HepRep. - If clip-volume-type is specified, the subsequent parameters are used to - to define a clipping volume. For example, - "/vis/scene/add/volume ! ! ! -box km 0 1 0 1 0 1" will draw the world - with the positive octant cut away. (If the Boolean Processor issues - warnings try replacing 0 by 0.000000001 or something.) - If clip-volume-type is prepended with '-', the clip-volume is subtracted - (cutaway). (This is the default if there is no prepended character.) - If '*' is prepended, the intersection of the physical-volume and the - clip-volume is made. (You can make a section/DCUT with a thin box, for - example). - For "box", the parameters are xmin,xmax,ymin,ymax,zmin,zmax. - Only "box" is programmed at present. - ***/ } void G4VSceneHandler::LoadAtts(const G4Visible& visible, G4AttHolder* holder) @@ -1126,7 +1192,7 @@ G4int G4VSceneHandler::GetNoOfSides(const G4VisAttributes* pVisAttribs) lineSegmentsPerCircle = pVisAttribs->GetForcedLineSegmentsPerCircle(); if (lineSegmentsPerCircle < pVisAttribs->GetMinLineSegmentsPerCircle()) { lineSegmentsPerCircle = pVisAttribs->GetMinLineSegmentsPerCircle(); - G4cout << + G4warn << "G4VSceneHandler::GetNoOfSides: attempt to set the" "\nnumber of line segments per circle < " << lineSegmentsPerCircle << "; forced to " << pVisAttribs->GetMinLineSegmentsPerCircle() << G4endl; @@ -1139,7 +1205,7 @@ std::ostream& operator << (std::ostream& os, const G4VSceneHandler& sh) { os << "Scene handler " << sh.fName << " has " << sh.fViewerList.size () << " viewer(s):"; - for (size_t i = 0; i < sh.fViewerList.size (); i++) { + for (std::size_t i = 0; i < sh.fViewerList.size (); ++i) { os << "\n " << *(sh.fViewerList [i]); } @@ -1238,8 +1304,26 @@ void G4VSceneHandler::StandardSpecialMeshRendering(const G4Mesh& mesh) case G4Mesh::sphere: [[fallthrough]]; case G4Mesh::invalid: break; } - if (!implemented) { - G4VSceneHandler::AddCompound(mesh); // Base class function - just print warning + if (implemented) { + // Draw container if not marked invisible... + auto container = mesh.GetContainerVolume(); + auto containerLogical = container->GetLogicalVolume(); + auto containerVisAtts = containerLogical->GetVisAttributes(); + if (containerVisAtts == nullptr || containerVisAtts->IsVisible()) { + auto solid = containerLogical->GetSolid(); + auto polyhedron = solid->GetPolyhedron(); + // Always draw as wireframe + G4VisAttributes tmpVisAtts; + if (containerVisAtts != nullptr) tmpVisAtts = *containerVisAtts; + tmpVisAtts.SetForceWireframe(); + polyhedron->SetVisAttributes(tmpVisAtts); + BeginPrimitives(mesh.GetTransform()); + AddPrimitive(*polyhedron); + EndPrimitives(); + } + } else { + // Invoke base class function + G4VSceneHandler::AddCompound(mesh); } return; } @@ -1324,10 +1408,7 @@ void G4VSceneHandler::Draw3DRectMeshAsDots(const G4Mesh& mesh) auto& dotsInMap = dotsByMaterial[material]; const auto& range = positionByMaterial.equal_range(material); for (auto posByMat = range.first; posByMat != range.second; ++posByMat) { - const G4double x = posByMat->second.getX() + (2.*G4UniformRand()-1.)*halfX; - const G4double y = posByMat->second.getY() + (2.*G4UniformRand()-1.)*halfY; - const G4double z = posByMat->second.getZ() + (2.*G4UniformRand()-1.)*halfZ; - dotsInMap.push_back(G4ThreeVector(x,y,z)); + dotsInMap.push_back(GetPointInBox(posByMat->second, halfX, halfY, halfZ)); ++nDots; } @@ -1610,28 +1691,7 @@ void G4VSceneHandler::DrawTetMeshAsDots(const G4Mesh& mesh) auto& dotsInMap = dotsByMaterial[material]; const auto& range = verticesByMaterial.equal_range(material); for (auto vByMat = range.first; vByMat != range.second; ++vByMat) { - const std::vector& vertices = vByMat->second; - // Calculate extent/bounding box - G4double xmin, xmax, ymin, ymax, zmin, zmax; - xmin = ymin = zmin = DBL_MAX; - xmax = ymax = zmax = -DBL_MAX; - for (const auto& vertex: vertices) { - if (xmin > vertex.x()) xmin = vertex.x(); - if (ymin > vertex.y()) ymin = vertex.y(); - if (zmin > vertex.z()) zmin = vertex.z(); - if (xmax < vertex.x()) xmax = vertex.x(); - if (ymax < vertex.y()) ymax = vertex.y(); - if (zmax < vertex.z()) zmax = vertex.z(); - } - // Place dot at random in the extent/bounding box. Yes, I know this will - // be bigger than the tetrahedron, so sometimes the position will be outside - // the tetrahedron, but it will still give a reasonable visual representation. - // If you have a smart algorithm for generating a random point in a - // tetrahedron, please let us know. - const G4double x = xmin + G4UniformRand()*(xmax - xmin); - const G4double y = ymin + G4UniformRand()*(ymax - ymin); - const G4double z = zmin + G4UniformRand()*(zmax - zmin); - dotsInMap.push_back(G4ThreeVector(x,y,z)); + dotsInMap.push_back(GetPointInTet(vByMat->second)); ++nDots; } @@ -1719,8 +1779,6 @@ void G4VSceneHandler::DrawTetMeshAsSurfaces(const G4Mesh& mesh) << G4endl; } - const auto& container = mesh.GetContainerVolume(); - // This map is static so that once filled it stays filled. static std::map> surfacesByMaterialAndMesh; auto& surfacesByMaterial = surfacesByMaterialAndMesh[mesh.GetContainerVolume()->GetName()]; @@ -1736,7 +1794,7 @@ void G4VSceneHandler::DrawTetMeshAsSurfaces(const G4Mesh& mesh) tmpMP.SetCullingInvisible(true); // ... or invisble volumes. const G4bool useFullExtent = true; // To avoid calculating the extent G4PhysicalVolumeModel tmpPVModel - (container, + (mesh.GetContainerVolume(), G4PhysicalVolumeModel::UNLIMITED, G4Transform3D(), // so that positions are in local coordinates &tmpMP, @@ -1836,3 +1894,42 @@ void G4VSceneHandler::DrawTetMeshAsSurfaces(const G4Mesh& mesh) firstPrint = false; return; } + +G4ThreeVector +G4VSceneHandler::GetPointInBox(const G4ThreeVector& pos, + G4double halfX, + G4double halfY, + G4double halfZ) const +{ + G4double x = pos.getX() + (2.*G4QuickRand() - 1.)*halfX; + G4double y = pos.getY() + (2.*G4QuickRand() - 1.)*halfY; + G4double z = pos.getZ() + (2.*G4QuickRand() - 1.)*halfZ; + return G4ThreeVector(x, y, z); +} + +G4ThreeVector +G4VSceneHandler::GetPointInTet(const std::vector& vertices) const +{ + G4double p = G4QuickRand(); + G4double q = G4QuickRand(); + G4double r = G4QuickRand(); + if (p + q > 1.) + { + p = 1. - p; + q = 1. - q; + } + if (q + r > 1.) + { + G4double tmp = r; + r = 1. - p - q; + q = 1. - tmp; + } + else if (p + q + r > 1.) + { + G4double tmp = r; + r = p + q + r - 1.; + p = 1. - q - tmp; + } + G4double a = 1. - p - q - r; + return vertices[0]*a + vertices[1]*p + vertices[2]*q + vertices[3]*r; +} diff --git a/source/visualization/management/src/G4VViewer.cc b/source/visualization/management/src/G4VViewer.cc index 1aa9e494b5..8ab2fc2264 100644 --- a/source/visualization/management/src/G4VViewer.cc +++ b/source/visualization/management/src/G4VViewer.cc @@ -135,8 +135,8 @@ void G4VViewer::SetTouchable const auto& pvStore = G4PhysicalVolumeStore::GetInstance(); for (const auto& pvNodeId: fullPath) { const auto& pv = pvNodeId.GetPhysicalVolume(); - auto iterator = find(pvStore->begin(),pvStore->end(),pv); - if (iterator == pvStore->end()) { + auto iterator = find(pvStore->cbegin(),pvStore->cend(),pv); + if (iterator == pvStore->cend()) { G4ExceptionDescription ed; ed << "Volume no longer in physical volume store."; G4Exception("G4VViewer::SetTouchable", "visman0501", JustWarning, ed); @@ -155,12 +155,8 @@ void G4VViewer::TouchableSetVisibility { // Changes the Vis Attribute Modifiers WITHOUT triggering a rebuild. - std::ostringstream oss; - oss << "/vis/touchable/set/visibility "; - if (visibiity) oss << "true"; else oss << "false"; - // The following is equivalent to - // G4UImanager::GetUIpointer()->ApplyCommand(oss.str()); + // G4UImanager::GetUIpointer()->ApplyCommand("/vis/touchable/set/visibility ..."); // (assuming the touchable has already been set), but avoids view rebuild. // Instantiate a working copy of a G4VisAttributes object... @@ -176,11 +172,6 @@ void G4VViewer::TouchableSetVisibility // G4ModelingParameters::VASVisibility (VAS = Vis Attribute Signifier) // signifies that it is the visibility that should be picked out // and merged with the touchable's normal vis attributes. - - // Record on G4cout (with #) for information. - if (G4UImanager::GetUIpointer()->GetVerboseLevel() >= 2) { - G4cout << "# " << oss.str() << G4endl; - } } void G4VViewer::TouchableSetColour @@ -189,13 +180,8 @@ void G4VViewer::TouchableSetColour { // Changes the Vis Attribute Modifiers WITHOUT triggering a rebuild. - std::ostringstream oss; - oss << "/vis/touchable/set/colour " - << colour.GetRed() << ' ' << colour.GetGreen() - << ' ' << colour.GetBlue() << ' ' << colour.GetAlpha(); - // The following is equivalent to - // G4UImanager::GetUIpointer()->ApplyCommand(oss.str()); + // G4UImanager::GetUIpointer()->ApplyCommand("/vis/touchable/set/colour ..."); // (assuming the touchable has already been set), but avoids view rebuild. // Instantiate a working copy of a G4VisAttributes object... @@ -211,11 +197,6 @@ void G4VViewer::TouchableSetColour // G4ModelingParameters::VASColour (VAS = Vis Attribute Signifier) // signifies that it is the colour that should be picked out // and merged with the touchable's normal vis attributes. - - // Record on G4cout (with #) for information. - if (G4UImanager::GetUIpointer()->GetVerboseLevel() >= 2) { - G4cout << "# " << oss.str() << G4endl; - } } std::vector G4VViewer::ComputeFlyThrough(G4Vector3D* /*aVect*/) @@ -228,7 +209,7 @@ std::vector G4VViewer::ComputeFlyThrough(G4Vector3D* /*aVect*/) // int myCurveType = Bezier; // number if step points - int stepPoints = 500; + G4int stepPoints = 500; G4Spline spline; @@ -248,8 +229,8 @@ std::vector G4VViewer::ComputeFlyThrough(G4Vector3D* /*aVect*/) // Draw the spline - for (int i = 0; i < stepPoints; i++) { - float t = (float)i / (float)stepPoints; + for (G4int i = 0; i < stepPoints; ++i) { + G4float t = (G4float)i / (G4float)stepPoints; G4Vector3D cameraPosition = spline.GetInterpolatedSplinePoint(t); // G4Vector3D targetPoint = spline.GetInterpolatedSplinePoint(t); @@ -415,15 +396,15 @@ G4VViewer::G4Spline::~G4Spline() {} // Solve the Catmull-Rom parametric equation for a given time(t) and vector quadruple (p1,p2,p3,p4) -G4Vector3D G4VViewer::G4Spline::CatmullRom_Eq(float t, const G4Vector3D& p1, const G4Vector3D& p2, const G4Vector3D& p3, const G4Vector3D& p4) +G4Vector3D G4VViewer::G4Spline::CatmullRom_Eq(G4float t, const G4Vector3D& p1, const G4Vector3D& p2, const G4Vector3D& p3, const G4Vector3D& p4) { - float t2 = t * t; - float t3 = t2 * t; + G4float t2 = t * t; + G4float t3 = t2 * t; - float b1 = .5 * ( -t3 + 2*t2 - t); - float b2 = .5 * ( 3*t3 - 5*t2 + 2); - float b3 = .5 * (-3*t3 + 4*t2 + t); - float b4 = .5 * ( t3 - t2 ); + G4float b1 = .5 * ( -t3 + 2*t2 - t); + G4float b2 = .5 * ( 3*t3 - 5*t2 + 2); + G4float b3 = .5 * (-3*t3 + 4*t2 + t); + G4float b4 = .5 * ( t3 - t2 ); return (p1*b1 + p2*b2 + p3*b3 + p4*b4); } @@ -431,32 +412,32 @@ G4Vector3D G4VViewer::G4Spline::CatmullRom_Eq(float t, const G4Vector3D& p1, con void G4VViewer::G4Spline::AddSplinePoint(const G4Vector3D& v) { vp.push_back(v); - delta_t = (float)1 / (float)vp.size(); + delta_t = (G4float)1 / (G4float)vp.size(); } -G4Vector3D G4VViewer::G4Spline::GetPoint(int a) +G4Vector3D G4VViewer::G4Spline::GetPoint(G4int a) { return vp[a]; } -int G4VViewer::G4Spline::GetNumPoints() +G4int G4VViewer::G4Spline::GetNumPoints() { - return vp.size(); + return (G4int)vp.size(); } -G4Vector3D G4VViewer::G4Spline::GetInterpolatedSplinePoint(float t) +G4Vector3D G4VViewer::G4Spline::GetInterpolatedSplinePoint(G4float t) { // Find out in which interval we are on the spline - int p = (int)(t / delta_t); + G4int p = (G4int)(t / delta_t); // Compute local control point indices -#define BOUNDS(pp) { if (pp < 0) pp = 0; else if (pp >= (int)vp.size()-1) pp = vp.size() - 1; } - int p0 = p - 1; BOUNDS(p0); - int p1 = p; BOUNDS(p1); - int p2 = p + 1; BOUNDS(p2); - int p3 = p + 2; BOUNDS(p3); +#define BOUNDS(pp) { if (pp < 0) pp = 0; else if (pp >= (G4int)vp.size()-1) pp = (G4int)vp.size() - 1; } + G4int p0 = p - 1; BOUNDS(p0); + G4int p1 = p; BOUNDS(p1); + G4int p2 = p + 1; BOUNDS(p2); + G4int p3 = p + 2; BOUNDS(p3); // Relative (local) time - float lt = (t - delta_t*(float)p) / delta_t; + G4float lt = (t - delta_t*p) / delta_t; // Interpolate return CatmullRom_Eq(lt, vp[p0], vp[p1], vp[p2], vp[p3]); } diff --git a/source/visualization/management/src/G4VVisCommand.cc b/source/visualization/management/src/G4VVisCommand.cc index 70a881dee7..7bc02c91ff 100644 --- a/source/visualization/management/src/G4VVisCommand.cc +++ b/source/visualization/management/src/G4VVisCommand.cc @@ -39,6 +39,8 @@ #include "G4PhysicalVolumeModel.hh" #include "G4LogicalVolume.hh" +#define G4warn G4cout + G4int G4VVisCommand::fCurrentArrow3DLineSegmentsPerCircle = 6; G4Colour G4VVisCommand::fCurrentColour = G4Colour::White(); G4Colour G4VVisCommand::fCurrentTextColour = G4Colour::Blue(); @@ -101,7 +103,7 @@ G4bool G4VVisCommand::ConvertToDoublePair(const G4String& paramString, } else { G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); if (verbosity >= G4VisManager::errors) { - G4cout << "ERROR: Unrecognised unit" << G4endl; + G4warn << "ERROR: Unrecognised unit" << G4endl; } return false; } @@ -136,14 +138,14 @@ void G4VVisCommand::ConvertToColour G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); - const size_t iPos0 = 0; + const std::size_t iPos0 = 0; if (std::isalpha(redOrString[iPos0])) { // redOrString is probably alphabetic characters defining the colour if (!G4Colour::GetColour(redOrString, colour)) { // Not a recognised string if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: Colour \"" << redOrString + G4warn << "WARNING: Colour \"" << redOrString << "\" not found. Defaulting to " << colour << G4endl; } @@ -162,7 +164,7 @@ void G4VVisCommand::ConvertToColour iss >> red; if (iss.fail()) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: String \"" << redOrString + G4warn << "WARNING: String \"" << redOrString << "\" cannot be parsed. Defaulting to " << colour << G4endl; } @@ -188,17 +190,17 @@ G4bool G4VVisCommand::ProvideValueOfUnit G4bool success = true; if (!G4UnitDefinition::IsUnitDefined(unit)) { if (verbosity >= G4VisManager::warnings) { - G4cerr << where + G4warn << where << "\n Unit \"" << unit << "\" not defined" << G4endl; } success = false; } else if (G4UnitDefinition::GetCategory(unit) != category) { if (verbosity >= G4VisManager::warnings) { - G4cerr << where + G4warn << where << "\n Unit \"" << unit << "\" not a unit of " << category; - if (category == "Volumic Mass") G4cerr << " (density)"; - G4cerr << G4endl; + if (category == "Volumic Mass") G4warn << " (density)"; + G4warn << G4endl; } success = false; } else { @@ -213,7 +215,7 @@ void G4VVisCommand::CheckSceneAndNotifyHandlers(G4Scene* pScene) if (!pScene) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: Scene pointer is null." + G4warn << "WARNING: Scene pointer is null." << G4endl; } return; @@ -222,7 +224,7 @@ void G4VVisCommand::CheckSceneAndNotifyHandlers(G4Scene* pScene) G4VSceneHandler* pSceneHandler = fpVisManager -> GetCurrentSceneHandler(); if (!pSceneHandler) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: Scene handler not found." << G4endl; + G4warn << "WARNING: Scene handler not found." << G4endl; } return; } @@ -244,7 +246,7 @@ G4bool G4VVisCommand::CheckView () if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: No current viewer - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -258,7 +260,7 @@ void G4VVisCommand::G4VisCommandsSceneAddUnsuccessful (G4VisManager::Verbosity verbosity) { // Some frequently used error printing... if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: For some reason, possibly mentioned above, it has not been" "\n possible to add to the scene." << G4endl; @@ -281,7 +283,7 @@ void G4VVisCommand::RefreshIfRequired(G4VViewer* viewer) { } else { if (verbosity >= G4VisManager::warnings) { - G4cout << "Issue /vis/viewer/refresh or flush to see effect." + G4warn << "Issue /vis/viewer/refresh or flush to see effect." << G4endl; } } @@ -295,7 +297,7 @@ void G4VVisCommand::InterpolateViews const G4int waitTimePerPointmilliseconds, const G4String exportString) { - const G4int safety = viewVector.size()*nInterpolationPoints; + const G4int safety = (G4int)viewVector.size()*nInterpolationPoints; G4int safetyCount = 0; do { G4ViewParameters* vp = @@ -395,7 +397,7 @@ void G4VVisCommand::CopyGuidanceFrom (const G4UIcommand* fromCmd, G4UIcommand* toCmd, G4int startLine) { if (fromCmd && toCmd) { - const G4int nGuideEntries = fromCmd->GetGuidanceEntries(); + const G4int nGuideEntries = (G4int)fromCmd->GetGuidanceEntries(); for (G4int i = startLine; i < nGuideEntries; ++i) { const G4String& guidance = fromCmd->GetGuidanceLine(i); toCmd->SetGuidance(guidance); @@ -407,7 +409,7 @@ void G4VVisCommand::CopyParametersFrom (const G4UIcommand* fromCmd, G4UIcommand* toCmd) { if (fromCmd && toCmd) { - const G4int nParEntries = fromCmd->GetParameterEntries(); + const G4int nParEntries = (G4int)fromCmd->GetParameterEntries(); for (G4int i = 0; i < nParEntries; ++i) { G4UIparameter* parameter = new G4UIparameter(*(fromCmd->GetParameter(i))); toCmd->SetParameter(parameter); diff --git a/source/visualization/management/src/G4ViewParameters.cc b/source/visualization/management/src/G4ViewParameters.cc index 2bed59800d..fc81424383 100644 --- a/source/visualization/management/src/G4ViewParameters.cc +++ b/source/visualization/management/src/G4ViewParameters.cc @@ -40,6 +40,8 @@ #include #include +#define G4warn G4cout + G4ViewParameters::G4ViewParameters (): fDrawingStyle (wireframe), fNumberOfCloudPoints(10000), @@ -184,7 +186,7 @@ void G4ViewParameters::AddCutawayPlane (const G4Plane3D& cutawayPlane) { fCutawayPlanes.push_back (cutawayPlane); } else { - G4cerr << + G4warn << "ERROR: G4ViewParameters::AddCutawayPlane:" "\n A maximum of 3 cutaway planes supported." << G4endl; } @@ -193,7 +195,7 @@ void G4ViewParameters::AddCutawayPlane (const G4Plane3D& cutawayPlane) { void G4ViewParameters::ChangeCutawayPlane (size_t index, const G4Plane3D& cutawayPlane) { if (index >= fCutawayPlanes.size()) { - G4cerr << + G4warn << "ERROR: G4ViewParameters::ChangeCutawayPlane:" "\n Plane " << index << " does not exist." << G4endl; } else { @@ -204,12 +206,12 @@ void G4ViewParameters::ChangeCutawayPlane void G4ViewParameters::SetVisibleDensity (G4double visibleDensity) { const G4double reasonableMaximum = 10.0 * g / cm3; if (visibleDensity < 0) { - G4cout << "G4ViewParameters::SetVisibleDensity: attempt to set negative " + G4warn << "G4ViewParameters::SetVisibleDensity: attempt to set negative " "density - ignored." << G4endl; } else { if (visibleDensity > reasonableMaximum) { - G4cout << "G4ViewParameters::SetVisibleDensity: density > " + G4warn << "G4ViewParameters::SetVisibleDensity: density > " << G4BestUnit (reasonableMaximum, "Volumic Mass") << " - did you mean this?" << G4endl; @@ -222,7 +224,7 @@ G4int G4ViewParameters::SetNoOfSides (G4int nSides) { const G4int nSidesMin = fDefaultVisAttributes.GetMinLineSegmentsPerCircle(); if (nSides < nSidesMin) { nSides = nSidesMin; - G4cout << "G4ViewParameters::SetNoOfSides: attempt to set the" + G4warn << "G4ViewParameters::SetNoOfSides: attempt to set the" "\nnumber of sides per circle < " << nSidesMin << "; forced to " << nSides << G4endl; } @@ -234,7 +236,7 @@ G4int G4ViewParameters::SetNumberOfCloudPoints(G4int nPoints) { const G4int nPointsMin = 100; if (nPoints < nPointsMin) { nPoints = nPointsMin; - G4cout << "G4ViewParameters::SetNumberOfCloudPoints:" + G4warn << "G4ViewParameters::SetNumberOfCloudPoints:" "\nnumber of points per cloud set to minimum " << nPoints << G4endl; } @@ -253,7 +255,7 @@ void G4ViewParameters::SetViewAndLights static G4bool firstTime = true; if (firstTime) { firstTime = false; - G4cout << + G4warn << "WARNING: Viewpoint direction is very close to the up vector direction." "\n Change the up vector or \"/vis/viewer/set/rotationStyle freeRotation\"." << G4endl; @@ -1259,7 +1261,7 @@ void G4ViewParameters::SetXGeometryString (const G4String& geomString) // if there is only Width. Special case to be backward compatible // We set Width and Height the same to obtain a square windows. - G4cout << "Unrecognised geometry string \"" + G4warn << "Unrecognised geometry string \"" << geomString << "\". No Height found. Using Width value instead" << G4endl; diff --git a/source/visualization/management/src/G4VisCommands.cc b/source/visualization/management/src/G4VisCommands.cc index b69be83895..d62756d404 100644 --- a/source/visualization/management/src/G4VisCommands.cc +++ b/source/visualization/management/src/G4VisCommands.cc @@ -47,6 +47,8 @@ #include "G4PhysicalVolumeModel.hh" #include "G4AttDef.hh" +#define G4warn G4cout + ////////////// /vis/abortReviewKeptEvents ///////////////////////////// G4VisCommandAbortReviewKeptEvents::G4VisCommandAbortReviewKeptEvents () { @@ -69,7 +71,7 @@ G4String G4VisCommandAbortReviewKeptEvents::GetCurrentValue (G4UIcommand*) { void G4VisCommandAbortReviewKeptEvents::SetNewValue (G4UIcommand*, G4String newValue) { fpVisManager->SetAbortReviewKeptEvents(G4UIcommand::ConvertToBool(newValue)); - G4cout << "Type \"continue\" to complete the abort." << G4endl; + G4warn << "Type \"continue\" to complete the abort." << G4endl; } ////////////// /vis/abortReviewPlots ///////////////////////////// @@ -94,7 +96,7 @@ G4String G4VisCommandAbortReviewPlots::GetCurrentValue (G4UIcommand*) { void G4VisCommandAbortReviewPlots::SetNewValue (G4UIcommand*, G4String newValue) { fpVisManager->SetAbortReviewPlots(G4UIcommand::ConvertToBool(newValue)); - G4cout << "Type \"continue\" to complete the abort." << G4endl; + G4warn << "Type \"continue\" to complete the abort." << G4endl; } ////////////// /vis/drawOnlyToBeKeptEvents ///////////////////////////// @@ -131,9 +133,9 @@ void G4VisCommandDrawOnlyToBeKeptEvents::SetNewValue (G4UIcommand*, G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); if (verbosity < G4VisManager::warnings) { if (fpVisManager->GetDrawEventOnlyIfToBeKept()) { - G4cout << "Only events that have been kept will be drawn." << G4endl; + G4warn << "Only events that have been kept will be drawn." << G4endl; } else { - G4cout << "All events will be drawn." << G4endl; + G4warn << "All events will be drawn." << G4endl; } } } @@ -299,7 +301,7 @@ G4String G4VisCommandReviewKeptEvents::GetCurrentValue (G4UIcommand*) void G4VisCommandReviewKeptEvents::SetNewValue (G4UIcommand*, G4String newValue) { if (fpVisManager->GetReviewingKeptEvents()) { - G4cout << + G4warn << "\"/vis/reviewKeptEvents\" not allowed within an already started review." "\n No action taken." << G4endl; @@ -317,7 +319,7 @@ void G4VisCommandReviewKeptEvents::SetNewValue (G4UIcommand*, G4String newValue) if (!nKeptEvents) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandReviewKeptEvents::SetNewValue: No kept events," "\n or kept events not accessible." << G4endl; @@ -328,7 +330,7 @@ void G4VisCommandReviewKeptEvents::SetNewValue (G4UIcommand*, G4String newValue) G4VViewer* viewer = fpVisManager->GetCurrentViewer(); if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: No current viewer - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -338,7 +340,7 @@ void G4VisCommandReviewKeptEvents::SetNewValue (G4UIcommand*, G4String newValue) G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -367,13 +369,13 @@ void G4VisCommandReviewKeptEvents::SetNewValue (G4UIcommand*, G4String newValue) for (size_t i = 0; i < nKeptEvents; ++i) { const G4Event* event = (*events)[i]; if (verbosity >= G4VisManager::warnings) { - G4cout << "Drawing event : " << event->GetEventID() << + G4warn << "Drawing event : " << event->GetEventID() << ". At EndOfEvent, enter any command, then \"cont[inue]\"..." << G4endl; static G4bool first = true; if (first) { first = false; - G4cout << + G4warn << " Useful commands might be:" "\n \"/vis/scene/add/trajectories\" if not already added." "\n \"/vis/viewer/...\" to change the view (zoom, set/viewpoint,...)." @@ -413,7 +415,7 @@ void G4VisCommandReviewKeptEvents::SetNewValue (G4UIcommand*, G4String newValue) for (size_t i = 0; i < nKeptEvents; ++i) { const G4Event* event = (*events)[i]; if (verbosity >= G4VisManager::warnings) { - G4cout << "Drawing event : " << event->GetEventID() + G4warn << "Drawing event : " << event->GetEventID() << " with macro file \"" << macroFileName << G4endl; } fpVisManager->SetRequestedEvent(event); @@ -496,7 +498,7 @@ namespace { void G4VisCommandReviewPlots::SetNewValue (G4UIcommand*, G4String) { if (fpVisManager->GetReviewingPlots()) { - G4cout << + G4warn << "\"/vis/reviewPlots\" not allowed within an already started review." "\n No action taken." << G4endl; @@ -508,7 +510,7 @@ void G4VisCommandReviewPlots::SetNewValue (G4UIcommand*, G4String) auto currentViewer = fpVisManager->GetCurrentViewer(); if (!currentViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: No current viewer - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -516,7 +518,7 @@ void G4VisCommandReviewPlots::SetNewValue (G4UIcommand*, G4String) } if (currentViewer->GetName().find("TOOLSSG") == std::string::npos) { - G4cerr << + G4warn << "WARNING: Current viewer not able to draw plots." "\n Try \"/vis/open TSG\", then \"/vis/reviewPlots\" again." << G4endl; @@ -526,7 +528,7 @@ void G4VisCommandReviewPlots::SetNewValue (G4UIcommand*, G4String) G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } diff --git a/source/visualization/management/src/G4VisCommandsCompound.cc b/source/visualization/management/src/G4VisCommandsCompound.cc index 9fcccea76c..45bffce20c 100644 --- a/source/visualization/management/src/G4VisCommandsCompound.cc +++ b/source/visualization/management/src/G4VisCommandsCompound.cc @@ -37,6 +37,8 @@ #include #include +#define G4warn G4cout + ////////////// /vis/drawTree /////////////////////////////////////// G4VisCommandDrawTree::G4VisCommandDrawTree() { @@ -112,7 +114,7 @@ void G4VisCommandDrawTree::SetNewValue(G4UIcommand*, G4String newValue) { } if (keepViewer) { if (fpVisManager->GetVerbosity() >= G4VisManager::warnings) { - G4cout << "Reverting to " << keepViewer->GetName() << G4endl; + G4warn << "Reverting to " << keepViewer->GetName() << G4endl; } fpVisManager->SetCurrentGraphicsSystem(keepSystem); fpVisManager->SetCurrentScene(keepScene); @@ -168,7 +170,7 @@ void G4VisCommandDrawView::SetNewValue(G4UIcommand*, G4String newValue) { G4VViewer* currentViewer = fpVisManager->GetCurrentViewer(); if (!currentViewer) { if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: G4VisCommandsDrawView::SetNewValue: no current viewer." << G4endl; } @@ -188,12 +190,6 @@ void G4VisCommandDrawView::SetNewValue(G4UIcommand*, G4String newValue) { >> zoomFactor >> dolly >> dollyUnit; G4UImanager* UImanager = G4UImanager::GetUIpointer(); - G4int keepVerbose = UImanager->GetVerboseLevel(); - G4int newVerbose(0); - if (keepVerbose >= 2 || - fpVisManager->GetVerbosity() >= G4VisManager::confirmations) - newVerbose = 2; - UImanager->SetVerboseLevel(newVerbose); G4ViewParameters vp = currentViewer->GetViewParameters(); G4bool keepAutoRefresh = vp.IsAutoRefresh(); vp.SetAutoRefresh(false); @@ -209,7 +205,6 @@ void G4VisCommandDrawView::SetNewValue(G4UIcommand*, G4String newValue) { currentViewer->SetViewParameters(vp); UImanager->ApplyCommand( G4String("/vis/viewer/dollyTo " + dolly + " " + dollyUnit)); - UImanager->SetVerboseLevel(keepVerbose); } ////////////// /vis/drawLogicalVolume /////////////////////////////////////// @@ -238,11 +233,6 @@ G4VisCommandDrawLogicalVolume::~G4VisCommandDrawLogicalVolume() { void G4VisCommandDrawLogicalVolume::SetNewValue(G4UIcommand*, G4String newValue) { G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); G4UImanager* UImanager = G4UImanager::GetUIpointer(); - G4int keepVerbose = UImanager->GetVerboseLevel(); - G4int newVerbose(0); - if (keepVerbose >= 2 || verbosity >= G4VisManager::confirmations) - newVerbose = 2; - UImanager->SetVerboseLevel(newVerbose); G4VViewer* currentViewer = fpVisManager->GetCurrentViewer(); const G4ViewParameters& currentViewParams = currentViewer->GetViewParameters(); G4bool keepAutoRefresh = currentViewParams.IsAutoRefresh(); @@ -256,10 +246,9 @@ void G4VisCommandDrawLogicalVolume::SetNewValue(G4UIcommand*, G4String newValue) G4bool keepMarkerNotHidden = currentViewParams.IsMarkerNotHidden(); if (!keepMarkerNotHidden) UImanager->ApplyCommand("/vis/viewer/set/hiddenMarker false"); if (keepAutoRefresh) UImanager->ApplyCommand("/vis/viewer/set/autoRefresh true"); - UImanager->SetVerboseLevel(keepVerbose); if (verbosity >= G4VisManager::warnings) { if (keepDrawingStyle != currentViewParams.GetDrawingStyle()) { - G4cout + G4warn << "Drawing style changed to wireframe. To restore previous style:"; G4String style, edge; switch (keepDrawingStyle) { @@ -274,12 +263,12 @@ void G4VisCommandDrawLogicalVolume::SetNewValue(G4UIcommand*, G4String newValue) case G4ViewParameters::cloud: style = "cloud"; edge = ""; break; } - G4cout << "\n /vis/viewer/set/style " + style; - if (!edge.empty()) G4cout << "\n /vis/viewer/set/hiddenEdge " + edge; - G4cout << G4endl; + G4warn << "\n /vis/viewer/set/style " + style; + if (!edge.empty()) G4warn << "\n /vis/viewer/set/hiddenEdge " + edge; + G4warn << G4endl; } if (keepMarkerNotHidden != currentViewParams.IsMarkerNotHidden()) { - G4cout + G4warn << "Markers changed to \"not hidden\". To restore previous condition:" << "\n /vis/viewer/set/hiddenmarker true" << G4endl; @@ -317,15 +306,9 @@ G4VisCommandDrawVolume::~G4VisCommandDrawVolume() { void G4VisCommandDrawVolume::SetNewValue(G4UIcommand*, G4String newValue) { G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); G4UImanager* UImanager = G4UImanager::GetUIpointer(); - G4int keepVerbose = UImanager->GetVerboseLevel(); - G4int newVerbose(0); - if (keepVerbose >= 2 || verbosity >= G4VisManager::confirmations) - newVerbose = 2; - UImanager->SetVerboseLevel(newVerbose); UImanager->ApplyCommand("/vis/scene/create"); UImanager->ApplyCommand(G4String("/vis/scene/add/volume " + newValue)); UImanager->ApplyCommand("/vis/sceneHandler/attach"); - UImanager->SetVerboseLevel(keepVerbose); static G4bool warned = false; if (verbosity >= G4VisManager::confirmations && !warned) { G4cout << @@ -384,12 +367,6 @@ void G4VisCommandOpen::SetNewValue (G4UIcommand* command, G4String newValue) std::istringstream is(newValue); is >> systemName >> windowSizeHint; G4UImanager* UImanager = G4UImanager::GetUIpointer(); - G4int keepVerbose = UImanager->GetVerboseLevel(); - G4int newVerbose(0); - if (keepVerbose >= 2 || - fpVisManager->GetVerbosity() >= G4VisManager::confirmations) - newVerbose = 2; - UImanager->SetVerboseLevel(newVerbose); auto errorCode = UImanager->ApplyCommand(G4String("/vis/sceneHandler/create " + systemName)); if (errorCode) { @@ -413,8 +390,6 @@ finish: fpVisManager->PrintAvailableGraphicsSystems(G4VisManager::warnings,ed); command->CommandFailed(errorCode,ed); } - - UImanager->SetVerboseLevel(keepVerbose); } ////////////// /vis/plot /////////////////////////////////////// @@ -447,7 +422,7 @@ void G4VisCommandPlot::SetNewValue (G4UIcommand*, G4String newValue) { auto currentViewer = fpVisManager->GetCurrentViewer(); if (currentViewer->GetName().find("TOOLSSG") == std::string::npos) { - G4cerr << + G4warn << "WARNING: Current viewer not able to draw plots." "\n Try \"/vis/open TSG\", then \"/vis/plot " << newValue << "\" again." << G4endl; @@ -476,7 +451,7 @@ void G4VisCommandPlot::SetNewValue (G4UIcommand*, G4String newValue) if (!keepEnable) { fpVisManager->Disable(); - G4cerr << + G4warn << "WARNING: drawing was enabled for plotting but is now restored to disabled mode." << G4endl; } @@ -533,16 +508,10 @@ G4VisCommandSpecify::~G4VisCommandSpecify() { void G4VisCommandSpecify::SetNewValue(G4UIcommand*, G4String newValue) { G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); G4UImanager* UImanager = G4UImanager::GetUIpointer(); - G4int keepVerbose = UImanager->GetVerboseLevel(); - G4int newVerbose(0); - if (keepVerbose >= 2 || verbosity >= G4VisManager::confirmations) - newVerbose = 2; - UImanager->SetVerboseLevel(newVerbose); // UImanager->ApplyCommand(G4String("/geometry/print " + newValue)); UImanager->ApplyCommand("/vis/scene/create"); UImanager->ApplyCommand(G4String("/vis/scene/add/logicalVolume " + newValue)); UImanager->ApplyCommand("/vis/sceneHandler/attach"); - UImanager->SetVerboseLevel(keepVerbose); static G4bool warned = false; if (verbosity >= G4VisManager::confirmations && !warned) { G4cout << diff --git a/source/visualization/management/src/G4VisCommandsGeometry.cc b/source/visualization/management/src/G4VisCommandsGeometry.cc index 3bec10e735..8998fd3ebd 100644 --- a/source/visualization/management/src/G4VisCommandsGeometry.cc +++ b/source/visualization/management/src/G4VisCommandsGeometry.cc @@ -34,6 +34,8 @@ #include "G4LogicalVolumeStore.hh" #include "G4UImanager.hh" +#define G4warn G4cout + std::map G4VVisCommandGeometry::fVisAttsMap; @@ -86,7 +88,7 @@ void G4VisCommandGeometryList::SetNewValue(G4UIcommand*, G4String newValue) } if (newValue != "all" && !found) { if (fpVisManager->GetVerbosity() >= G4VisManager::errors) { - G4cerr << "ERROR: Logical volume \"" << newValue + G4warn << "ERROR: Logical volume \"" << newValue << "\" not found in logical volume store." << G4endl; } return; @@ -143,7 +145,7 @@ void G4VisCommandGeometryRestore::SetNewValue(G4UIcommand*, G4String newValue) } if (newValue != "all" && !found) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Logical volume \"" << newValue + G4warn << "ERROR: Logical volume \"" << newValue << "\" not found in logical volume store." << G4endl; } return; diff --git a/source/visualization/management/src/G4VisCommandsGeometrySet.cc b/source/visualization/management/src/G4VisCommandsGeometrySet.cc index 556174ea1a..2c13f2e542 100644 --- a/source/visualization/management/src/G4VisCommandsGeometrySet.cc +++ b/source/visualization/management/src/G4VisCommandsGeometrySet.cc @@ -36,6 +36,8 @@ #include +#define G4warn G4cout + void G4VVisCommandGeometrySet::Set (G4String requestedName, const G4VVisCommandGeometrySetFunction& setFunction, @@ -44,7 +46,7 @@ void G4VVisCommandGeometrySet::Set G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); G4LogicalVolumeStore* pLVStore = G4LogicalVolumeStore::GetInstance(); G4bool found = false; - for (size_t iLV = 0; iLV < pLVStore->size(); iLV++ ) { + for (std::size_t iLV = 0; iLV < pLVStore->size(); ++iLV ) { G4LogicalVolume* pLV = (*pLVStore)[iLV]; const G4String& logVolName = pLV->GetName(); if (logVolName == requestedName) found = true; @@ -54,7 +56,7 @@ void G4VVisCommandGeometrySet::Set } if (requestedName != "all" && !found) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Logical volume \"" << requestedName + G4warn << "ERROR: Logical volume \"" << requestedName << "\" not found in logical volume store." << G4endl; } return; @@ -102,7 +104,7 @@ void G4VVisCommandGeometrySet::SetLVVisAtts << G4endl; } if (requestedDepth < 0 || depth < requestedDepth) { - G4int nDaughters = pLV->GetNoDaughters(); + G4int nDaughters = (G4int)pLV->GetNoDaughters(); for (G4int i = 0; i < nDaughters; ++i) { SetLVVisAtts(pLV->GetDaughter(i)->GetLogicalVolume(), setFunction, ++depth, requestedDepth); @@ -218,7 +220,7 @@ void G4VisCommandGeometrySetDaughtersInvisible::SetNewValue if (requestedDepth !=0) { requestedDepth = 0; if (fpVisManager->GetVerbosity() >= G4VisManager::warnings) { - G4cout << "Recursive application suppressed for this attribute." + G4warn << "Recursive application suppressed for this attribute." << G4endl; } } @@ -232,7 +234,7 @@ void G4VisCommandGeometrySetDaughtersInvisible::SetNewValue const G4ViewParameters& viewParams = pViewer->GetViewParameters(); if (fpVisManager->GetVerbosity() >= G4VisManager::warnings) { if (!viewParams.IsCulling()) { - G4cout << + G4warn << "Culling must be on - \"/vis/viewer/set/culling global true\" - to see effect." << G4endl; } @@ -658,7 +660,7 @@ void G4VisCommandGeometrySetVisibility::SetNewValue if (fpVisManager->GetVerbosity() >= G4VisManager::warnings) { if (!viewParams.IsCulling() || !viewParams.IsCullingInvisible()) { - G4cout << + G4warn << "Culling must be on - \"/vis/viewer/set/culling global true\" and" "\n \"/vis/viewer/set/culling invisible true\" - to see effect." << G4endl; @@ -681,7 +683,7 @@ void G4VisCommandGeometrySetVisibility::SetNewValueOnLV if (fpVisManager->GetVerbosity() >= G4VisManager::warnings) { if (!viewParams.IsCulling() || !viewParams.IsCullingInvisible()) { - G4cout << + G4warn << "Culling must be on - \"/vis/viewer/set/culling global true\" and" "\n \"/vis/viewer/set/culling invisible true\" - to see effect." << G4endl; diff --git a/source/visualization/management/src/G4VisCommandsPlotter.cc b/source/visualization/management/src/G4VisCommandsPlotter.cc index 8be4819a22..85ebb413eb 100644 --- a/source/visualization/management/src/G4VisCommandsPlotter.cc +++ b/source/visualization/management/src/G4VisCommandsPlotter.cc @@ -34,6 +34,8 @@ #include +#define G4warn G4cout + ///////////////////////////////////////////////////////////////////////////// ////////////// /vis/plotter/create ////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// @@ -162,7 +164,7 @@ void G4VisCommandPlotterAddRegionStyle::SetNewValue (G4UIcommand*, G4String newV is >> plotter >> region >> style; if(region<0) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: bad region index " << region << "." << G4endl; + G4warn << "ERROR: bad region index " << region << "." << G4endl; } return; } @@ -205,7 +207,7 @@ void G4VisCommandPlotterAddRegionParameter::SetNewValue (G4UIcommand* command, G tools::double_quotes_tokenize(newValue, args); if ( args.size() != command->GetParameterEntries() ) { // check consistency. if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: tokenize value problem." << G4endl; + G4warn << "ERROR: tokenize value problem." << G4endl; } return; } @@ -216,7 +218,7 @@ void G4VisCommandPlotterAddRegionParameter::SetNewValue (G4UIcommand* command, G std::string value = args[3]; if(region<0) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: bad region index " << region << "." << G4endl; + G4warn << "ERROR: bad region index " << region << "." << G4endl; } return; } @@ -279,7 +281,7 @@ void G4VisCommandPlotterClearRegion::SetNewValue (G4UIcommand*, G4String newValu is >> plotter >> region; if(region<0) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: bad region index " << region << "." << G4endl; + G4warn << "ERROR: bad region index " << region << "." << G4endl; } return; } @@ -339,7 +341,7 @@ void G4VisCommandPlotterAddRegionH1::SetNewValue (G4UIcommand*, G4String newValu if(region<0) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: bad region index " << region << "." << G4endl; + G4warn << "ERROR: bad region index " << region << "." << G4endl; } return; } @@ -384,7 +386,7 @@ void G4VisCommandPlotterAddRegionH2::SetNewValue (G4UIcommand*, G4String newValu if(region<0) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: bad region index " << region << "." << G4endl; + G4warn << "ERROR: bad region index " << region << "." << G4endl; } return; } diff --git a/source/visualization/management/src/G4VisCommandsScene.cc b/source/visualization/management/src/G4VisCommandsScene.cc index 105c9339b6..a49749c93f 100644 --- a/source/visualization/management/src/G4VisCommandsScene.cc +++ b/source/visualization/management/src/G4VisCommandsScene.cc @@ -43,6 +43,8 @@ #include "G4ios.hh" #include +#define G4warn G4cout + G4VVisCommandScene::G4VVisCommandScene () {} G4VVisCommandScene::~G4VVisCommandScene () {} @@ -97,7 +99,7 @@ void G4VisCommandSceneActivateModel::SetNewValue (G4UIcommand*, G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -105,14 +107,14 @@ void G4VisCommandSceneActivateModel::SetNewValue (G4UIcommand*, G4VSceneHandler* pSceneHandler = fpVisManager->GetCurrentSceneHandler(); if (!pSceneHandler) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current sceneHandler. Please create one." << G4endl; + G4warn << "ERROR: No current sceneHandler. Please create one." << G4endl; } return; } if (searchString == "all" && !activate) { if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: You are not allowed to de-activate all models." "\n Command ignored." << G4endl; @@ -132,10 +134,10 @@ void G4VisCommandSceneActivateModel::SetNewValue (G4UIcommand*, any = true; runDurationModelList[i].fActive = activate; if (verbosity >= G4VisManager::warnings) { - G4cout << "Model \"" << modelName; - if (activate) G4cout << "\" activated."; - else G4cout << "\" de-activated."; - G4cout << G4endl; + G4warn << "Model \"" << modelName; + if (activate) G4warn << "\" activated."; + else G4warn << "\" de-activated."; + G4warn << G4endl; } } } @@ -150,10 +152,10 @@ void G4VisCommandSceneActivateModel::SetNewValue (G4UIcommand*, any = true; endOfEventModelList[i].fActive = activate; if (verbosity >= G4VisManager::warnings) { - G4cout << "Model \"" << modelName; - if (activate) G4cout << "\" activated."; - else G4cout << "\" de-activated."; - G4cout << G4endl; + G4warn << "Model \"" << modelName; + if (activate) G4warn << "\" activated."; + else G4warn << "\" de-activated."; + G4warn << G4endl; } } } @@ -168,17 +170,17 @@ void G4VisCommandSceneActivateModel::SetNewValue (G4UIcommand*, any = true; endOfRunModelList[i].fActive = activate; if (verbosity >= G4VisManager::warnings) { - G4cout << "Model \"" << modelName; - if (activate) G4cout << "\" activated."; - else G4cout << "\" de-activated."; - G4cout << G4endl; + G4warn << "Model \"" << modelName; + if (activate) G4warn << "\" activated."; + else G4warn << "\" de-activated."; + G4warn << G4endl; } } } if (!any) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: No match found." << G4endl; + G4warn << "WARNING: No match found." << G4endl; } return; } @@ -225,13 +227,13 @@ void G4VisCommandSceneCreate::SetNewValue (G4UIcommand*, G4String newValue) { if (newName == nextName) fId++; G4SceneList& sceneList = fpVisManager -> SetSceneList (); - G4int iScene, nScenes = sceneList.size (); - for (iScene = 0; iScene < nScenes; iScene++) { + std::size_t iScene, nScenes = sceneList.size (); + for (iScene = 0; iScene < nScenes; ++iScene) { if (sceneList [iScene] -> GetName () == newName) break; } if (iScene < nScenes) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: Scene \"" << newName << "\" already exists." + G4warn << "WARNING: Scene \"" << newName << "\" already exists." << "\n New scene not created." << G4endl; } @@ -293,7 +295,7 @@ void G4VisCommandSceneEndOfEventAction::SetNewValue (G4UIcommand*, G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -301,7 +303,7 @@ void G4VisCommandSceneEndOfEventAction::SetNewValue (G4UIcommand*, G4VSceneHandler* pSceneHandler = fpVisManager->GetCurrentSceneHandler(); if (!pSceneHandler) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current sceneHandler. Please create one." << G4endl; + G4warn << "ERROR: No current sceneHandler. Please create one." << G4endl; } return; } @@ -313,7 +315,7 @@ void G4VisCommandSceneEndOfEventAction::SetNewValue (G4UIcommand*, else if (action == "refresh") { if (!pScene->GetRefreshAtEndOfRun()) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: Cannot refresh events unless runs refresh too." "\n Use \"/vis/scene/endOfRun refresh\"." << G4endl; @@ -326,7 +328,7 @@ void G4VisCommandSceneEndOfEventAction::SetNewValue (G4UIcommand*, } else { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: unrecognised parameter \"" << action << "\"." << G4endl; } @@ -367,23 +369,23 @@ void G4VisCommandSceneEndOfEventAction::SetNewValue (G4UIcommand*, if (!pScene->GetRefreshAtEndOfEvent() && maxNumberOfKeptEvents != 0 && verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: "; + G4warn << "WARNING: "; if (nCurrentlyKept) { - G4cout << + G4warn << "\n There are currently " << nCurrentlyKept << " events kept for refreshing and/or reviewing."; } else { - G4cout << "The vis manager will keep "; - if (maxNumberOfKeptEvents < 0) G4cout << "an unlimited number of"; - else G4cout << "up to " << maxNumberOfKeptEvents; - G4cout << " events."; + G4warn << "The vis manager will keep "; + if (maxNumberOfKeptEvents < 0) G4warn << "an unlimited number of"; + else G4warn << "up to " << maxNumberOfKeptEvents; + G4warn << " events."; if (maxNumberOfKeptEvents > 1 || maxNumberOfKeptEvents < 0) - G4cout << + G4warn << "\n This may use a lot of memory." "\n It may be changed with, e.g., " "\"/vis/scene/endOfEventAction accumulate 10\"."; } - G4cout << G4endl; + G4warn << G4endl; } } @@ -426,7 +428,7 @@ void G4VisCommandSceneEndOfRunAction::SetNewValue (G4UIcommand*, G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -434,7 +436,7 @@ void G4VisCommandSceneEndOfRunAction::SetNewValue (G4UIcommand*, G4VSceneHandler* pSceneHandler = fpVisManager->GetCurrentSceneHandler(); if (!pSceneHandler) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current sceneHandler. Please create one." << G4endl; + G4warn << "ERROR: No current sceneHandler. Please create one." << G4endl; } return; } @@ -442,7 +444,7 @@ void G4VisCommandSceneEndOfRunAction::SetNewValue (G4UIcommand*, if (action == "accumulate") { if (pScene->GetRefreshAtEndOfEvent()) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: Cannot accumulate runs unless events accumulate too." "\n Use \"/vis/scene/endOfEventAction accumulate\"." << G4endl; @@ -458,7 +460,7 @@ void G4VisCommandSceneEndOfRunAction::SetNewValue (G4UIcommand*, } else { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: unrecognised parameter \"" << action << "\"." << G4endl; } @@ -512,9 +514,9 @@ void G4VisCommandSceneList::SetNewValue (G4UIcommand*, G4String newValue) { if (currentScene) currentName = currentScene->GetName(); G4SceneList& sceneList = fpVisManager -> SetSceneList (); - G4int iScene, nScenes = sceneList.size (); + std::size_t iScene, nScenes = sceneList.size (); G4bool found = false; - for (iScene = 0; iScene < nScenes; iScene++) { + for (iScene = 0; iScene < nScenes; ++iScene) { G4Scene* pScene = sceneList [iScene]; const G4String& iName = pScene -> GetName (); if (name != "all") { @@ -529,13 +531,13 @@ void G4VisCommandSceneList::SetNewValue (G4UIcommand*, G4String newValue) { } G4cout << " scene \"" << iName << "\""; if (verbosity >= G4VisManager::warnings) { - G4int i; + std::size_t i; G4cout << "\n Run-duration models:"; - G4int nRunModels = pScene -> GetRunDurationModelList ().size (); + std::size_t nRunModels = pScene -> GetRunDurationModelList ().size (); if (nRunModels == 0) { G4cout << " none."; } - for (i = 0; i < nRunModels; i++) { + for (i = 0; i < nRunModels; ++i) { if (pScene -> GetRunDurationModelList()[i].fActive) G4cout << "\n Active: "; else G4cout << "\n Inactive: "; @@ -543,11 +545,11 @@ void G4VisCommandSceneList::SetNewValue (G4UIcommand*, G4String newValue) { G4cout << pModel -> GetGlobalDescription (); } G4cout << "\n End-of-event models:"; - G4int nEOEModels = pScene -> GetEndOfEventModelList ().size (); + std::size_t nEOEModels = pScene -> GetEndOfEventModelList ().size (); if (nEOEModels == 0) { G4cout << " none."; } - for (i = 0; i < nEOEModels; i++) { + for (i = 0; i < nEOEModels; ++i) { if (pScene -> GetEndOfEventModelList()[i].fActive) G4cout << "\n Active: "; else G4cout << "\n Inactive: "; @@ -555,11 +557,11 @@ void G4VisCommandSceneList::SetNewValue (G4UIcommand*, G4String newValue) { G4cout << pModel -> GetGlobalDescription (); } G4cout << "\n End-of-run models:"; - G4int nEORModels = pScene -> GetEndOfRunModelList ().size (); + std::size_t nEORModels = pScene -> GetEndOfRunModelList ().size (); if (nEORModels == 0) { G4cout << " none."; } - for (i = 0; i < nEORModels; i++) { + for (i = 0; i < nEORModels; ++i) { if (pScene -> GetEndOfRunModelList()[i].fActive) G4cout << "\n Active: "; else G4cout << "\n Inactive: "; @@ -573,11 +575,11 @@ void G4VisCommandSceneList::SetNewValue (G4UIcommand*, G4String newValue) { G4cout << G4endl; } if (!found) { - G4cerr << "No scenes found"; + G4warn << "No scenes found"; if (name != "all") { - G4cerr << " of name \"" << name << "\""; + G4warn << " of name \"" << name << "\""; } - G4cerr << "." << G4endl; + G4warn << "." << G4endl; } } @@ -637,15 +639,15 @@ void G4VisCommandSceneNotifyHandlers::SetNewValue (G4UIcommand*, fpVisManager -> SetAvailableSceneHandlers (); // Check scene name. - const G4int nScenes = sceneList.size (); - G4int iScene; - for (iScene = 0; iScene < nScenes; iScene++) { + const std::size_t nScenes = sceneList.size (); + std::size_t iScene; + for (iScene = 0; iScene < nScenes; ++iScene) { G4Scene* scene = sceneList [iScene]; if (sceneName == scene -> GetName ()) break; } if (iScene >= nScenes ) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: Scene \"" << sceneName << "\" not found." + G4warn << "WARNING: Scene \"" << sceneName << "\" not found." "\n /vis/scene/list to see scenes." << G4endl; } @@ -657,7 +659,7 @@ void G4VisCommandSceneNotifyHandlers::SetNewValue (G4UIcommand*, fpVisManager -> GetCurrentSceneHandler(); if (!pCurrentSceneHandler) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: No current scene handler." + G4warn << "WARNING: No current scene handler." << G4endl; } return; @@ -665,7 +667,7 @@ void G4VisCommandSceneNotifyHandlers::SetNewValue (G4UIcommand*, G4VViewer* pCurrentViewer = fpVisManager -> GetCurrentViewer(); if (!pCurrentViewer) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: No current viewer." + G4warn << "WARNING: No current viewer." << G4endl; } return; @@ -673,7 +675,7 @@ void G4VisCommandSceneNotifyHandlers::SetNewValue (G4UIcommand*, G4Scene* pCurrentScene = fpVisManager -> GetCurrentScene(); if (!pCurrentScene) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: No current scene." + G4warn << "WARNING: No current scene." << G4endl; } return; @@ -687,8 +689,8 @@ void G4VisCommandSceneNotifyHandlers::SetNewValue (G4UIcommand*, // For each scene handler, if it contains the scene, clear and // rebuild the graphical database, then for each viewer set (make // current), clear, (re)draw, and show. - const G4int nSceneHandlers = sceneHandlerList.size (); - for (G4int iSH = 0; iSH < nSceneHandlers; iSH++) { + const std::size_t nSceneHandlers = sceneHandlerList.size (); + for (std::size_t iSH = 0; iSH < nSceneHandlers; ++iSH) { G4VSceneHandler* aSceneHandler = sceneHandlerList [iSH]; G4Scene* aScene = aSceneHandler -> GetScene (); if (aScene) { @@ -696,8 +698,8 @@ void G4VisCommandSceneNotifyHandlers::SetNewValue (G4UIcommand*, if (sceneName == aSceneName) { aScene->CalculateExtent(); // Check and recalculate extent G4ViewerList& viewerList = aSceneHandler -> SetViewerList (); - const G4int nViewers = viewerList.size (); - for (G4int iV = 0; iV < nViewers; iV++) { + const std::size_t nViewers = viewerList.size (); + for (std::size_t iV = 0; iV < nViewers; ++iV) { G4VViewer* aViewer = viewerList [iV]; // Force rebuild of graphical database, if any. aViewer -> NeedKernelVisit(); @@ -740,7 +742,7 @@ void G4VisCommandSceneNotifyHandlers::SetNewValue (G4UIcommand*, } else { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: G4VisCommandSceneNotifyHandlers: scene handler \"" + G4warn << "WARNING: G4VisCommandSceneNotifyHandlers: scene handler \"" << aSceneHandler->GetName() << "\" has a null scene." << G4endl; @@ -761,7 +763,7 @@ void G4VisCommandSceneNotifyHandlers::SetNewValue (G4UIcommand*, // Take care of special case of scene handler with no viewer yet. if (pCurrentSceneHandler) { G4ViewerList& viewerList = pCurrentSceneHandler -> SetViewerList (); - const G4int nViewers = viewerList.size (); + const std::size_t nViewers = viewerList.size (); if (nViewers) { pCurrentSceneHandler -> SetCurrentViewer (pCurrentViewer); // JA: I don't think we need this. SetView will be called when needed. @@ -807,7 +809,7 @@ void G4VisCommandSceneRemoveModel::SetNewValue (G4UIcommand*, G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -815,7 +817,7 @@ void G4VisCommandSceneRemoveModel::SetNewValue (G4UIcommand*, G4VSceneHandler* pSceneHandler = fpVisManager->GetCurrentSceneHandler(); if (!pSceneHandler) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current sceneHandler. Please create one." << G4endl; + G4warn << "ERROR: No current sceneHandler. Please create one." << G4endl; } return; } @@ -831,7 +833,7 @@ void G4VisCommandSceneRemoveModel::SetNewValue (G4UIcommand*, runDurationModelList.erase(runDurationModelList.begin()+i); any = true; if (verbosity >= G4VisManager::warnings) { - G4cout << "Model \"" << modelName << "\" removed." << G4endl; + G4warn << "Model \"" << modelName << "\" removed." << G4endl; } break; // Allow only one model at a time to be removed. } @@ -846,7 +848,7 @@ void G4VisCommandSceneRemoveModel::SetNewValue (G4UIcommand*, endOfEventModelList.erase(endOfEventModelList.begin()+i); any = true; if (verbosity >= G4VisManager::warnings) { - G4cout << "Model \"" << modelName << "\" removed." << G4endl; + G4warn << "Model \"" << modelName << "\" removed." << G4endl; } break; // Allow only one model at a time to be removed. } @@ -861,7 +863,7 @@ void G4VisCommandSceneRemoveModel::SetNewValue (G4UIcommand*, endOfRunModelList.erase(endOfRunModelList.begin()+i); any = true; if (verbosity >= G4VisManager::warnings) { - G4cout << "Model \"" << modelName << "\" removed." << G4endl; + G4warn << "Model \"" << modelName << "\" removed." << G4endl; } break; // Allow only one model at a time to be removed. } @@ -869,7 +871,7 @@ void G4VisCommandSceneRemoveModel::SetNewValue (G4UIcommand*, if (!any) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: No match found." << G4endl; + G4warn << "WARNING: No match found." << G4endl; } return; } @@ -903,13 +905,13 @@ void G4VisCommandSceneSelect::SetNewValue (G4UIcommand*, G4String newValue) { G4String& selectName = newValue; G4SceneList& sceneList = fpVisManager -> SetSceneList (); - G4int iScene, nScenes = sceneList.size (); - for (iScene = 0; iScene < nScenes; iScene++) { + std::size_t iScene, nScenes = sceneList.size (); + for (iScene = 0; iScene < nScenes; ++iScene) { if (sceneList [iScene] -> GetName () == selectName) break; } if (iScene >= nScenes) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: Scene \"" << selectName + G4warn << "WARNING: Scene \"" << selectName << "\" not found - \"/vis/scene/list\" to see possibilities." << G4endl; } @@ -947,7 +949,7 @@ void G4VisCommandSceneShowExtents::SetNewValue (G4UIcommand*, G4String) { fpVisManager -> GetCurrentSceneHandler(); if (!pCurrentSceneHandler) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: No current scene handler." + G4warn << "WARNING: No current scene handler." << G4endl; } return; @@ -955,7 +957,7 @@ void G4VisCommandSceneShowExtents::SetNewValue (G4UIcommand*, G4String) { G4VViewer* pCurrentViewer = fpVisManager -> GetCurrentViewer(); if (!pCurrentViewer) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: No current viewer." + G4warn << "WARNING: No current viewer." << G4endl; } return; @@ -963,18 +965,18 @@ void G4VisCommandSceneShowExtents::SetNewValue (G4UIcommand*, G4String) { G4Scene* pCurrentScene = fpVisManager -> GetCurrentScene(); if (!pCurrentScene) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: No current scene." + G4warn << "WARNING: No current scene." << G4endl; } return; } G4cout << "\n Run-duration models:"; - G4int nRunModels = pCurrentScene -> GetRunDurationModelList ().size (); + std::size_t nRunModels = pCurrentScene -> GetRunDurationModelList ().size (); if (nRunModels == 0) { G4cout << " none."; } - for (G4int i = 0; i < nRunModels; i++) { + for (std::size_t i = 0; i < nRunModels; ++i) { if (pCurrentScene -> GetRunDurationModelList()[i].fActive) G4cout << "\n Active: "; else G4cout << "\n Inactive: "; @@ -985,11 +987,11 @@ void G4VisCommandSceneShowExtents::SetNewValue (G4UIcommand*, G4String) { DrawExtent(transformedExtent); } G4cout << "\n End-of-event models:"; - G4int nEOEModels = pCurrentScene -> GetEndOfEventModelList ().size (); + std::size_t nEOEModels = pCurrentScene -> GetEndOfEventModelList ().size (); if (nEOEModels == 0) { G4cout << " none."; } - for (G4int i = 0; i < nEOEModels; i++) { + for (std::size_t i = 0; i < nEOEModels; ++i) { if (pCurrentScene -> GetEndOfEventModelList()[i].fActive) G4cout << "\n Active: "; else G4cout << "\n Inactive: "; @@ -1000,11 +1002,11 @@ void G4VisCommandSceneShowExtents::SetNewValue (G4UIcommand*, G4String) { DrawExtent(transformedExtent); } G4cout << "\n End-of-run models:"; - G4int nEORModels = pCurrentScene -> GetEndOfRunModelList ().size (); + std::size_t nEORModels = pCurrentScene -> GetEndOfRunModelList ().size (); if (nEORModels == 0) { G4cout << " none."; } - for (G4int i = 0; i < nEORModels; i++) { + for (std::size_t i = 0; i < nEORModels; ++i) { if (pCurrentScene -> GetEndOfRunModelList()[i].fActive) G4cout << "\n Active: "; else G4cout << "\n Inactive: "; diff --git a/source/visualization/management/src/G4VisCommandsSceneAdd.cc b/source/visualization/management/src/G4VisCommandsSceneAdd.cc index 1a0310d565..5efb4d619d 100644 --- a/source/visualization/management/src/G4VisCommandsSceneAdd.cc +++ b/source/visualization/management/src/G4VisCommandsSceneAdd.cc @@ -82,6 +82,8 @@ #include +#define G4warn G4cout + ////////////// /vis/scene/add/arrow /////////////////////////////////////// G4VisCommandSceneAddArrow::G4VisCommandSceneAddArrow () { @@ -122,7 +124,7 @@ void G4VisCommandSceneAddArrow::SetNewValue (G4UIcommand*, G4String newValue) G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -192,7 +194,7 @@ void G4VisCommandSceneAddArrow2D::SetNewValue (G4UIcommand*, G4String newValue) G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -311,13 +313,13 @@ void G4VisCommandSceneAddAxes::SetNewValue (G4UIcommand*, G4String newValue) { G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } else { if (pScene->GetExtent().GetExtentRadius() <= 0.) { if (verbosity >= G4VisManager::errors) { - G4cerr + G4warn << "ERROR: Scene has no extent. Add volumes or use \"/vis/scene/add/extent\"." << G4endl; } @@ -417,7 +419,7 @@ void G4VisCommandSceneAddDate::SetNewValue (G4UIcommand*, G4String newValue) G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -506,7 +508,7 @@ void G4VisCommandSceneAddDigis::SetNewValue (G4UIcommand*, G4String) { G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -580,7 +582,7 @@ void G4VisCommandSceneAddElectricField::SetNewValue G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -664,7 +666,7 @@ void G4VisCommandSceneAddEventID::SetNewValue (G4UIcommand*, G4String newValue) G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -818,7 +820,7 @@ void G4VisCommandSceneAddExtent::SetNewValue (G4UIcommand*, G4String newValue) G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -897,7 +899,7 @@ void G4VisCommandSceneAddFrame::SetNewValue (G4UIcommand*, G4String newValue) G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -985,7 +987,7 @@ void G4VisCommandSceneAddGPS::SetNewValue (G4UIcommand*, G4String newValue) { G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -1040,7 +1042,7 @@ void G4VisCommandSceneAddHits::SetNewValue (G4UIcommand*, G4String) { G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -1100,7 +1102,7 @@ void G4VisCommandSceneAddLine::SetNewValue (G4UIcommand*, G4String newValue) G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -1189,7 +1191,7 @@ void G4VisCommandSceneAddLine2D::SetNewValue (G4UIcommand*, G4String newValue) G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -1274,7 +1276,7 @@ void G4VisCommandSceneAddLocalAxes::SetNewValue (G4UIcommand*, G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -1353,11 +1355,11 @@ void G4VisCommandSceneAddLocalAxes::SetNewValue (G4UIcommand*, if (findingsVector.empty()) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Volume \"" << name << "\""; + G4warn << "ERROR: Volume \"" << name << "\""; if (copyNo >= 0) { - G4cerr << ", copy no. " << copyNo << ","; + G4warn << ", copy no. " << copyNo << ","; } - G4cerr << " not found." << G4endl; + G4warn << " not found." << G4endl; } G4VisCommandsSceneAddUnsuccessful(verbosity); return; @@ -1421,7 +1423,7 @@ void G4VisCommandSceneAddLogicalVolume::SetNewValue (G4UIcommand*, G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -1453,7 +1455,7 @@ void G4VisCommandSceneAddLogicalVolume::SetNewValue (G4UIcommand*, } if (i != rdModelList.end()) { if (verbosity >= G4VisManager::errors) { - G4cout << "There is already a volume, \"" + G4warn << "There is already a volume, \"" << i->fpModel->GetGlobalDescription() << "\",\n in the run-duration model list of scene \"" << pScene -> GetName() @@ -1493,7 +1495,7 @@ void G4VisCommandSceneAddLogicalVolume::SetNewValue (G4UIcommand*, // if (verbosity >= G4VisManager::warnings) { // const std::map* attDefs = model->GetAttDefs(); // std::vector* attValues = model->CreateCurrentAttValues(); -// G4cout << G4AttCheck(attValues, attDefs); +// G4warn << G4AttCheck(attValues, attDefs); // delete attValues; // } @@ -1600,13 +1602,13 @@ void G4VisCommandSceneAddLogo::SetNewValue (G4UIcommand*, G4String newValue) { G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } else { if (pScene->GetExtent().GetExtentRadius() <= 0.) { if (verbosity >= G4VisManager::errors) { - G4cerr + G4warn << "ERROR: Scene has no extent. Add volumes or use \"/vis/scene/add/extent\"." << G4endl; } @@ -1617,7 +1619,7 @@ void G4VisCommandSceneAddLogo::SetNewValue (G4UIcommand*, G4String newValue) { G4VViewer* pViewer = fpVisManager->GetCurrentViewer(); if (!pViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandSceneAddLogo::SetNewValue: no viewer." "\n Auto direction needs a viewer." << G4endl; @@ -1665,7 +1667,7 @@ void G4VisCommandSceneAddLogo::SetNewValue (G4UIcommand*, G4String newValue) { else if (direction[1] == 'z') logoDirection = minusZ; } else { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Unrecogniseed direction: \"" + G4warn << "ERROR: Unrecogniseed direction: \"" << direction << "\"." << G4endl; return; } @@ -1687,7 +1689,7 @@ void G4VisCommandSceneAddLogo::SetNewValue (G4UIcommand*, G4String newValue) { if (sceneExtent.GetExtentRadius() == 0) { worried = true; if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: Existing scene does not yet have any extent." "\n Maybe you have not yet added any geometrical object." << G4endl; @@ -1718,14 +1720,14 @@ void G4VisCommandSceneAddLogo::SetNewValue (G4UIcommand*, G4String newValue) { if (!room) { worried = true; if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: Not enough room in existing scene. Maybe logo is too large." << G4endl; } } if (worried) { if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: The logo you have asked for is bigger than the existing" "\n scene. Maybe you have added it too soon. It is recommended that" "\n you add the logo last so that it can be correctly auto-positioned" @@ -1964,7 +1966,7 @@ void G4VisCommandSceneAddLogo2D::SetNewValue (G4UIcommand*, G4String newValue) G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -2043,7 +2045,7 @@ void G4VisCommandSceneAddMagneticField::SetNewValue G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -2117,7 +2119,7 @@ void G4VisCommandSceneAddPSHits::SetNewValue G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -2226,13 +2228,13 @@ void G4VisCommandSceneAddScale::SetNewValue (G4UIcommand*, G4String newValue) { G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } else { if (pScene->GetExtent().GetExtentRadius() <= 0.) { if (verbosity >= G4VisManager::errors) { - G4cerr + G4warn << "ERROR: Scene has no extent. Add volumes or use \"/vis/scene/add/extent\"." << G4endl; } @@ -2271,7 +2273,7 @@ void G4VisCommandSceneAddScale::SetNewValue (G4UIcommand*, G4String newValue) { G4VViewer* pViewer = fpVisManager->GetCurrentViewer(); if (!pViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandSceneAddScale::SetNewValue: no viewer." "\n Auto direction needs a viewer." << G4endl; @@ -2322,7 +2324,7 @@ void G4VisCommandSceneAddScale::SetNewValue (G4UIcommand*, G4String newValue) { if (sceneExtent.GetExtentRadius() == 0) { worried = true; if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: Existing scene does not yet have any extent." "\n Maybe you have not yet added any geometrical object." << G4endl; @@ -2345,14 +2347,14 @@ void G4VisCommandSceneAddScale::SetNewValue (G4UIcommand*, G4String newValue) { if (!room) { worried = true; if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: Not enough room in existing scene. Maybe scale is too long." << G4endl; } } if (worried) { if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: The scale you have asked for is bigger than the existing" "\n scene. Maybe you have added it too soon. It is recommended that" "\n you add the scale last so that it can be correctly auto-positioned" @@ -2610,7 +2612,7 @@ void G4VisCommandSceneAddText::SetNewValue (G4UIcommand*, G4String newValue) { G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -2701,7 +2703,7 @@ void G4VisCommandSceneAddText2D::SetNewValue (G4UIcommand*, G4String newValue) { G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -2802,7 +2804,7 @@ void G4VisCommandSceneAddTrajectories::SetNewValue (G4UIcommand*, G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -2814,7 +2816,7 @@ void G4VisCommandSceneAddTrajectories::SetNewValue (G4UIcommand*, if (newValue.find("rich") != std::string::npos) rich = true; if (newValue.size() && !(rich || smooth)) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Unrecognised parameter \"" << newValue << "\"" + G4warn << "ERROR: Unrecognised parameter \"" << newValue << "\"" "\n No action taken." << G4endl; } @@ -2822,9 +2824,6 @@ void G4VisCommandSceneAddTrajectories::SetNewValue (G4UIcommand*, } G4UImanager* UImanager = G4UImanager::GetUIpointer(); - G4int keepVerbose = UImanager->GetVerboseLevel(); - G4int newVerbose = 2; - UImanager->SetVerboseLevel(newVerbose); G4String defaultTrajectoryType; if (smooth && rich) { UImanager->ApplyCommand("/tracking/storeTrajectory 4"); @@ -2839,23 +2838,22 @@ void G4VisCommandSceneAddTrajectories::SetNewValue (G4UIcommand*, UImanager->ApplyCommand("/tracking/storeTrajectory 1"); defaultTrajectoryType = "G4Trajectory"; } - UImanager->SetVerboseLevel(keepVerbose); if (verbosity >= G4VisManager::errors) { - G4cout << + G4warn << "Attributes available for modeling and filtering with" "\n \"/vis/modeling/trajectories/create/drawByAttribute\" and" "\n \"/vis/filtering/trajectories/create/attributeFilter\" commands:" << G4endl; - G4cout << *G4TrajectoriesModel().GetAttDefs(); + G4warn << *G4TrajectoriesModel().GetAttDefs(); if (rich) { - G4cout << *G4RichTrajectory().GetAttDefs() + G4warn << *G4RichTrajectory().GetAttDefs() << *G4RichTrajectoryPoint().GetAttDefs(); } else if (smooth) { - G4cout << *G4SmoothTrajectory().GetAttDefs() + G4warn << *G4SmoothTrajectory().GetAttDefs() << *G4SmoothTrajectoryPoint().GetAttDefs(); } else { - G4cout << *G4Trajectory().GetAttDefs() + G4warn << *G4Trajectory().GetAttDefs() << *G4TrajectoryPoint().GetAttDefs(); } } @@ -2882,7 +2880,7 @@ void G4VisCommandSceneAddTrajectories::SetNewValue (G4UIcommand*, } if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: Trajectory storing has been requested. This action may be" "\n reversed with \"/tracking/storeTrajectory 0\"." << G4endl; @@ -2924,7 +2922,7 @@ void G4VisCommandSceneAddUserAction::SetNewValue G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -2966,7 +2964,7 @@ void G4VisCommandSceneAddUserAction::SetNewValue if (!any) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: No User Vis Action registered." << G4endl; + G4warn << "WARNING: No User Vis Action registered." << G4endl; } return; } @@ -2991,7 +2989,7 @@ void G4VisCommandSceneAddUserAction::AddVisAction if (i != visExtentMap.end()) extent = i->second; if (warn) { if (extent.GetExtentRadius() <= 0.) { - G4cout + G4warn << "WARNING: User Vis Action \"" << name << "\" extent is null." << G4endl; } @@ -3124,7 +3122,7 @@ void G4VisCommandSceneAddVolume::SetNewValue (G4UIcommand*, G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } @@ -3170,7 +3168,7 @@ void G4VisCommandSceneAddVolume::SetNewValue (G4UIcommand*, if (verbosity >= G4VisManager::warnings) { static G4bool warned = false; if (!warned && name != "worlds") { - G4cout << + G4warn << "WARNING: Parallel worlds in operation. To visualise, specify" "\n \"worlds\" or the parallel world volume or sub-volume name" "\n and control visibility with /vis/geometry." @@ -3178,7 +3176,7 @@ void G4VisCommandSceneAddVolume::SetNewValue (G4UIcommand*, std::vector::iterator iterWorld = transportationManager->GetWorldsIterator(); for (size_t i = 0; i < nWorlds; ++i, ++iterWorld) { - G4cout << " World " << i << ": " << (*iterWorld)->GetName() + G4warn << " World " << i << ": " << (*iterWorld)->GetName() << G4endl; warned = true; } @@ -3191,7 +3189,7 @@ void G4VisCommandSceneAddVolume::SetNewValue (G4UIcommand*, if (!world) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandSceneAddVolume::SetNewValue:" "\n No world. Maybe the geometry has not yet been defined." "\n Try \"/run/initialize\"" @@ -3229,7 +3227,7 @@ void G4VisCommandSceneAddVolume::SetNewValue (G4UIcommand*, if (nWorlds <= 1) { if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: G4VisCommandSceneAddVolume::SetNewValue:" "\n Parallel worlds requested but none exist." "\n Just adding material world." @@ -3313,11 +3311,11 @@ void G4VisCommandSceneAddVolume::SetNewValue (G4UIcommand*, if (findingsVector.empty()) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Volume \"" << name << "\""; + G4warn << "ERROR: Volume \"" << name << "\""; if (copyNo >= 0) { - G4cerr << ", copy no. " << copyNo << ","; + G4warn << ", copy no. " << copyNo << ","; } - G4cerr << " not found." << G4endl; + G4warn << " not found." << G4endl; } G4VisCommandsSceneAddUnsuccessful(verbosity); return; @@ -3350,7 +3348,7 @@ void G4VisCommandSceneAddPlotter::SetNewValue (G4UIcommand*, G4String newValue) G4Scene* pScene = fpVisManager->GetCurrentScene(); if (!pScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: No current scene. Please create one." << G4endl; + G4warn << "ERROR: No current scene. Please create one." << G4endl; } return; } diff --git a/source/visualization/management/src/G4VisCommandsSceneHandler.cc b/source/visualization/management/src/G4VisCommandsSceneHandler.cc index 50b2eba794..77f96d87ba 100644 --- a/source/visualization/management/src/G4VisCommandsSceneHandler.cc +++ b/source/visualization/management/src/G4VisCommandsSceneHandler.cc @@ -38,6 +38,8 @@ #include "G4ios.hh" #include +#define G4warn G4cout + ////////////// /vis/sceneHandler/attach /////////////////////////////////////// G4VisCommandSceneHandlerAttach::G4VisCommandSceneHandlerAttach () { @@ -80,7 +82,7 @@ void G4VisCommandSceneHandlerAttach::SetNewValue (G4UIcommand*, G4VSceneHandler* pSceneHandler = fpVisManager -> GetCurrentSceneHandler (); if (!pSceneHandler) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: Current scene handler not defined. Please select or create one." << G4endl; } @@ -91,15 +93,15 @@ void G4VisCommandSceneHandlerAttach::SetNewValue (G4UIcommand*, if (sceneList.empty ()) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: No valid scenes available yet. Please create one." << G4endl; } return; } - G4int iScene, nScenes = sceneList.size (); - for (iScene = 0; iScene < nScenes; iScene++) { + std::size_t iScene, nScenes = sceneList.size (); + for (iScene = 0; iScene < nScenes; ++iScene) { if (sceneList [iScene] -> GetName () == sceneName) break; } if (iScene < nScenes) { @@ -125,7 +127,7 @@ void G4VisCommandSceneHandlerAttach::SetNewValue (G4UIcommand*, } else { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Scene \"" << sceneName + G4warn << "ERROR: Scene \"" << sceneName << "\" not found. Use \"/vis/scene/list\" to see possibilities." << G4endl; } @@ -209,7 +211,7 @@ void G4VisCommandSceneHandlerCreate::SetNewValue (G4UIcommand* command, const G4GraphicsSystemList& gsl = fpVisManager -> GetAvailableGraphicsSystems (); - G4int nSystems = gsl.size (); + std::size_t nSystems = gsl.size (); if (nSystems <= 0) { G4ExceptionDescription ed; ed << @@ -220,16 +222,16 @@ void G4VisCommandSceneHandlerCreate::SetNewValue (G4UIcommand* command, command->CommandFailed(ed); return; } - G4int iGS; // Selector index. + std::size_t iGS; // Selector index. G4bool found = false; - for (iGS = 0; iGS < nSystems; iGS++) { + for (iGS = 0; iGS < nSystems; ++iGS) { const auto& gs = gsl[iGS]; if (G4StrUtil::icompare(graphicsSystem, gs->GetName()) == 0) { found = true; break; // Match found } else { const auto& nicknames = gs->GetNicknames(); - for (size_t i = 0; i < nicknames.size(); ++i) { + for (std::size_t i = 0; i < nicknames.size(); ++i) { const auto& nickname = nicknames[i]; if (G4StrUtil::icompare(graphicsSystem, nickname) == 0) { found = true; @@ -259,13 +261,13 @@ void G4VisCommandSceneHandlerCreate::SetNewValue (G4UIcommand* command, G4bool fallback = false; G4int loopCounter = 0; while (!gsl[iGS]->IsUISessionCompatible()) { - G4int iGSBeingTested = iGS; + std::size_t iGSBeingTested = iGS; // Not compatible, search for a fallback fallback = false; G4String fallbackNickname = gsl[iGS]->GetNickname() + "_FALLBACK"; for (iGS = 0; iGS < nSystems; iGS++) { const auto& nicknames = gsl[iGS]->GetNicknames(); - for (size_t i = 0; i < nicknames.size(); ++i) { + for (std::size_t i = 0; i < nicknames.size(); ++i) { const auto& nickname = nicknames[i]; if (G4StrUtil::icompare(fallbackNickname, nickname) == 0) { fallback = true; @@ -276,7 +278,7 @@ void G4VisCommandSceneHandlerCreate::SetNewValue (G4UIcommand* command, break; // Match found } } - if (iGS < 0 || iGS >= nSystems || loopCounter >=3) { + if (iGS >= nSystems || loopCounter >=3) { G4ExceptionDescription ed; ed << "\"" << gsl[iGSBeingTested]->GetNickname() << "\" is not compatible with your chosen session," @@ -292,7 +294,7 @@ void G4VisCommandSceneHandlerCreate::SetNewValue (G4UIcommand* command, G4VGraphicsSystem* pSystem = gsl [iGS]; if (fallback && verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: G4VisCommandSceneHandlerCreate::SetNewValue:" + G4warn << "WARNING: G4VisCommandSceneHandlerCreate::SetNewValue:" "\n Using fallback graphics system: " << pSystem -> GetName () << " (" @@ -309,8 +311,8 @@ void G4VisCommandSceneHandlerCreate::SetNewValue (G4UIcommand* command, if (newName == nextName) fId++; const G4SceneHandlerList& list = fpVisManager -> GetAvailableSceneHandlers (); - size_t iScene; - for (iScene = 0; iScene < list.size (); iScene++) { + std::size_t iScene; + for (iScene = 0; iScene < list.size (); ++iScene) { G4VSceneHandler* sceneHandler = list [iScene]; if (sceneHandler -> GetName () == newName) { G4ExceptionDescription ed; @@ -409,7 +411,7 @@ void G4VisCommandSceneHandlerList::SetNewValue (G4UIcommand*, const G4SceneHandlerList& list = fpVisManager -> GetAvailableSceneHandlers (); G4bool found = false; - for (size_t iSH = 0; iSH < list.size (); iSH++) { + for (std::size_t iSH = 0; iSH < list.size (); ++iSH) { const G4String& iName = list [iSH] -> GetName (); if (name != "all") { if (name != iName) continue; @@ -466,7 +468,7 @@ void G4VisCommandSceneHandlerSelect::SetNewValue (G4UIcommand*, G4String& selectName = newValue; const G4SceneHandlerList& list = fpVisManager -> GetAvailableSceneHandlers (); - size_t iSH; + std::size_t iSH; for (iSH = 0; iSH < list.size (); iSH++) { if (list [iSH] -> GetName () == selectName) break; } @@ -488,7 +490,7 @@ void G4VisCommandSceneHandlerSelect::SetNewValue (G4UIcommand*, } else { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Scene handler \"" << selectName << "\"" + G4warn << "ERROR: Scene handler \"" << selectName << "\"" << " not found - \"/vis/sceneHandler/list\" to see possibilities." << G4endl; } diff --git a/source/visualization/management/src/G4VisCommandsSet.cc b/source/visualization/management/src/G4VisCommandsSet.cc index 2fcbdca879..41725ac68c 100644 --- a/source/visualization/management/src/G4VisCommandsSet.cc +++ b/source/visualization/management/src/G4VisCommandsSet.cc @@ -40,6 +40,8 @@ #include "G4BoundingExtentScene.hh" #include +#define G4warn G4cout + ////////////// /vis/set/arrow3DLineSegmentsPerCircle //////////////////////////////////// G4VisCommandSetArrow3DLineSegmentsPerCircle::G4VisCommandSetArrow3DLineSegmentsPerCircle () @@ -233,7 +235,7 @@ void G4VisCommandSetLineWidth::SetNewValue (G4UIcommand*, G4String newValue) fCurrentLineWidth = fpCommand->GetNewDoubleValue(newValue); if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "Line width for *future* \"/vis/scene/add/\" commands has been set to " << fCurrentLineWidth << "\nSee \"/vis/viewer/set/lineWidth\" for more information." @@ -442,7 +444,7 @@ void G4VisCommandSetTouchable::SetNewValue (G4UIcommand*, G4String newValue) iBegin = newValue.find_first_not_of(' ',iEnd); if (iBegin == G4String::npos) { if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: G4VisCommandSetTouchable::SetNewValue" "\n A pair not found. (There should be an even number of parameters.)" "\n Command ignored." @@ -458,7 +460,7 @@ void G4VisCommandSetTouchable::SetNewValue (G4UIcommand*, G4String newValue) std::istringstream iss(newValue.substr(iBegin,iEnd-iBegin)); if (!(iss >> copyNo)) { if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: G4VisCommandSetTouchable::SetNewValue" "\n Error reading copy number - it was not numeric?" "\n Command ignored." @@ -500,7 +502,7 @@ void G4VisCommandSetTouchable::SetNewValue (G4UIcommand*, G4String newValue) } } else { if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: G4VisCommandSetTouchable::SetNewValue" "\n Touchable not found." << G4endl; @@ -577,11 +579,11 @@ void G4VisCommandSetVolumeForField::SetNewValue (G4UIcommand*, G4String newValue if (fCurrrentPVFindingsForField.empty()) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Volume \"" << name << "\""; + G4warn << "ERROR: Volume \"" << name << "\""; if (copyNo >= 0) { - G4cerr << ", copy no. " << copyNo << ","; + G4warn << ", copy no. " << copyNo << ","; } - G4cerr << " not found." << G4endl; + G4warn << " not found." << G4endl; } return; } diff --git a/source/visualization/management/src/G4VisCommandsTouchable.cc b/source/visualization/management/src/G4VisCommandsTouchable.cc index 475b988667..1436c4dc57 100644 --- a/source/visualization/management/src/G4VisCommandsTouchable.cc +++ b/source/visualization/management/src/G4VisCommandsTouchable.cc @@ -41,6 +41,8 @@ #include "G4AttCheck.hh" #include "G4AxesModel.hh" +#define G4warn G4cout + G4VisCommandsTouchable::G4VisCommandsTouchable() { G4bool omitable; @@ -159,7 +161,7 @@ void G4VisCommandsTouchable::SetNewValue G4VPhysicalVolume* world = *(transportationManager->GetWorldsIterator()); if (!world) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsTouchable::SetNewValue:" "\n No world. Maybe the geometry has not yet been defined." "\n Try \"/run/initialize\"" @@ -171,7 +173,7 @@ void G4VisCommandsTouchable::SetNewValue G4VViewer* currentViewer = fpVisManager -> GetCurrentViewer (); if (!currentViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: No current viewer - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -181,7 +183,7 @@ void G4VisCommandsTouchable::SetNewValue G4Scene* currentScene = fpVisManager->GetCurrentScene(); if (!currentScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: No current scene - \"/vis/scene/list\" to see possibilities." << G4endl; } @@ -232,12 +234,12 @@ void G4VisCommandsTouchable::SetNewValue newVP.SetCurrentTargetPoint(newTargetPoint - standardTargetPoint); // Interpolate - auto keepVerbose = fpVisManager->GetVerbosity(); + auto keepVisVerbose = fpVisManager->GetVerbosity(); fpVisManager->SetVerboseLevel(G4VisManager::errors); if (newVP != saveVP) InterpolateToNewView(currentViewer, saveVP, newVP); // ...and twinkle Twinkle(currentViewer,newVP,touchables); - fpVisManager->SetVerboseLevel(keepVerbose); + fpVisManager->SetVerboseLevel(keepVisVerbose); if (verbosity >= G4VisManager::confirmations) { G4cout @@ -251,7 +253,7 @@ void G4VisCommandsTouchable::SetNewValue } SetViewParameters(currentViewer, newVP); } else { - G4cout << "Touchable not found." << G4endl; + G4warn << "Touchable not found." << G4endl; } return; @@ -271,16 +273,10 @@ void G4VisCommandsTouchable::SetNewValue true, // use full extent (prevents calculating own extent, which crashes) properties.fTouchableBaseFullPVPath); - G4int keepVerbose = UImanager->GetVerboseLevel(); - G4int newVerbose(0); - if (keepVerbose >= 2 || verbosity >= G4VisManager::confirmations) - newVerbose = 2; - UImanager->SetVerboseLevel(newVerbose); UImanager->ApplyCommand("/vis/scene/create"); currentScene = fpVisManager->GetCurrentScene(); // New current scene G4bool successful = currentScene->AddRunDurationModel(pvModel,warn); UImanager->ApplyCommand("/vis/sceneHandler/attach"); - UImanager->SetVerboseLevel(keepVerbose); if (successful) { if (fpCommandDraw->GetNewBoolValue(newValue)) { @@ -305,7 +301,7 @@ void G4VisCommandsTouchable::SetNewValue G4VisCommandsSceneAddUnsuccessful(verbosity); } } else { - G4cout << "Touchable not found." << G4endl; + G4warn << "Touchable not found." << G4endl; } return; @@ -335,7 +331,7 @@ void G4VisCommandsTouchable::SetNewValue polyhedron->Transform(transform); G4cout << "\nGlobal polyhedron coordinates:\n" << *polyhedron; } else { - G4cout << "Touchable not found." << G4endl; + G4warn << "Touchable not found." << G4endl; } return; @@ -358,7 +354,7 @@ void G4VisCommandsTouchable::SetNewValue DrawExtent(extent); } } else { - G4cout << "Touchable not found." << G4endl; + G4warn << "Touchable not found." << G4endl; } return; @@ -398,9 +394,9 @@ void G4VisCommandsTouchable::SetNewValue << "\nor to see overlaps: \"/vis/drawLogicalVolume \"" << G4endl; } else { - G4cout << pvName; - if (copyNo >= 0) G4cout << ':' << copyNo; - G4cout << " not found" << G4endl; + G4warn << pvName; + if (copyNo >= 0) G4warn << ':' << copyNo; + G4warn << " not found" << G4endl; } } else if (command == fpCommandLocalAxes) { @@ -427,7 +423,7 @@ void G4VisCommandsTouchable::SetNewValue G4cout << extent << G4endl; if (fpCommandShowExtent->GetNewBoolValue(newValue)) DrawExtent(extent); } else { - G4cout << "Touchable not found." << G4endl; + G4warn << "Touchable not found." << G4endl; } return; @@ -454,14 +450,14 @@ void G4VisCommandsTouchable::SetNewValue DrawExtent(extent); } } else { - G4cout << "Touchable not found." << G4endl; + G4warn << "Touchable not found." << G4endl; } return; } else { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsTouchable::SetNewValue: unrecognised command." << G4endl; } diff --git a/source/visualization/management/src/G4VisCommandsTouchableSet.cc b/source/visualization/management/src/G4VisCommandsTouchableSet.cc index 680983edac..254c3f3a4e 100644 --- a/source/visualization/management/src/G4VisCommandsTouchableSet.cc +++ b/source/visualization/management/src/G4VisCommandsTouchableSet.cc @@ -38,6 +38,8 @@ #include +#define G4warn G4cout + ////////////// /vis/touchable/set/colour /////////////////////////////////////// G4VisCommandsTouchableSet::G4VisCommandsTouchableSet() @@ -184,7 +186,7 @@ void G4VisCommandsTouchableSet::SetNewValue G4VViewer* currentViewer = fpVisManager->GetCurrentViewer(); if (!currentViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsTouchableSet::SetNewValue: no current viewer." << G4endl; } @@ -311,7 +313,7 @@ void G4VisCommandsTouchableSet::SetNewValue else { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsTouchableSet::SetNewValue: unrecognised command." << G4endl; } diff --git a/source/visualization/management/src/G4VisCommandsViewer.cc b/source/visualization/management/src/G4VisCommandsViewer.cc index 0d3c8f08a1..c81690ea8d 100644 --- a/source/visualization/management/src/G4VisCommandsViewer.cc +++ b/source/visualization/management/src/G4VisCommandsViewer.cc @@ -54,6 +54,8 @@ #include #include +#define G4warn G4cout + ////////////// /vis/viewer/addCutawayPlane /////////////////////////////////////// G4VisCommandViewerAddCutawayPlane::G4VisCommandViewerAddCutawayPlane () { @@ -107,7 +109,7 @@ void G4VisCommandViewerAddCutawayPlane::SetNewValue (G4UIcommand*, G4String newV G4VViewer* viewer = fpVisManager -> GetCurrentViewer (); if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: No current viewer - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -122,11 +124,12 @@ void G4VisCommandViewerAddCutawayPlane::SetNewValue (G4UIcommand*, G4String newV x *= F; y *= F; z *= F; G4ViewParameters vp = viewer->GetViewParameters(); - vp.AddCutawayPlane(G4Plane3D(G4Normal3D(nx,ny,nz), G4Point3D(x,y,z))); + // Make sure normal is normalised. + vp.AddCutawayPlane(G4Plane3D(G4Normal3D(nx,ny,nz).unit(), G4Point3D(x,y,z))); if (verbosity >= G4VisManager::confirmations) { G4cout << "Cutaway planes for viewer \"" << viewer->GetName() << "\" now:"; const G4Planes& cutaways = vp.GetCutawayPlanes(); - for (size_t i = 0; i < cutaways.size(); ++i) + for (std::size_t i = 0; i < cutaways.size(); ++i) G4cout << "\n " << i << ": " << cutaways[i]; G4cout << G4endl; } @@ -191,7 +194,7 @@ void G4VisCommandViewerCentreOn::SetNewValue (G4UIcommand* command, G4String new G4VViewer* currentViewer = fpVisManager -> GetCurrentViewer (); if (!currentViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: No current viewer - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -206,11 +209,11 @@ void G4VisCommandViewerCentreOn::SetNewValue (G4UIcommand* command, G4String new // Find physical volumes G4TransportationManager* transportationManager = G4TransportationManager::GetTransportationManager (); - size_t nWorlds = transportationManager->GetNoWorlds(); + std::size_t nWorlds = transportationManager->GetNoWorlds(); std::vector findingsVector; std::vector::iterator iterWorld = transportationManager->GetWorldsIterator(); - for (size_t i = 0; i < nWorlds; ++i, ++iterWorld) { + for (std::size_t i = 0; i < nWorlds; ++i, ++iterWorld) { G4PhysicalVolumeModel searchModel (*iterWorld); // Unlimited depth. G4ModelingParameters mp; // Default - no culling. searchModel.SetModelingParameters (&mp); @@ -224,12 +227,12 @@ void G4VisCommandViewerCentreOn::SetNewValue (G4UIcommand* command, G4String new if (findingsVector.empty()) { if (verbosity >= G4VisManager::warnings) { - G4cerr + G4warn << "WARNING: Volume \"" << pvName << "\" "; if (copyNo > 0) { - G4cerr << "copy number " << copyNo; + G4warn << "copy number " << copyNo; } - G4cerr << " not found." << G4endl; + G4warn << " not found." << G4endl; } return; } @@ -297,12 +300,12 @@ void G4VisCommandViewerCentreOn::SetNewValue (G4UIcommand* command, G4String new // If this particular view is simple enough if (currentViewer->GetKernelVisitElapsedTimeSeconds() < 0.1) { // Interpolate - auto keepVerbose = fpVisManager->GetVerbosity(); + auto keepVisVerbosity = fpVisManager->GetVerbosity(); fpVisManager->SetVerboseLevel(G4VisManager::errors); if (newVP != saveVP) InterpolateToNewView(currentViewer, saveVP, newVP); // ...and twinkle Twinkle(currentViewer,newVP,foundPaths); - fpVisManager->SetVerboseLevel(keepVerbose); + fpVisManager->SetVerboseLevel(keepVisVerbosity); } if (verbosity >= G4VisManager::confirmations) { @@ -374,14 +377,14 @@ void G4VisCommandViewerChangeCutawayPlane::SetNewValue (G4UIcommand*, G4String n G4VViewer* viewer = fpVisManager -> GetCurrentViewer (); if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: No current viewer - \"/vis/viewer/list\" to see possibilities." << G4endl; } return; } - size_t index; + std::size_t index; G4double x, y, z, nx, ny, nz; G4String unit; std::istringstream is (newValue); @@ -390,12 +393,13 @@ void G4VisCommandViewerChangeCutawayPlane::SetNewValue (G4UIcommand*, G4String n x *= F; y *= F; z *= F; G4ViewParameters vp = viewer->GetViewParameters(); + // Make sure normal is normalised. vp.ChangeCutawayPlane(index, - G4Plane3D(G4Normal3D(nx,ny,nz), G4Point3D(x,y,z))); + G4Plane3D(G4Normal3D(nx,ny,nz).unit(), G4Point3D(x,y,z))); if (verbosity >= G4VisManager::confirmations) { G4cout << "Cutaway planes for viewer \"" << viewer->GetName() << "\" now:"; const G4Planes& cutaways = vp.GetCutawayPlanes(); - for (size_t i = 0; i < cutaways.size(); ++i) + for (std::size_t i = 0; i < cutaways.size(); ++i) G4cout << "\n " << i << ": " << cutaways[i]; G4cout << G4endl; } @@ -434,7 +438,7 @@ void G4VisCommandViewerClear::SetNewValue (G4UIcommand*, G4String newValue) { G4VViewer* viewer = fpVisManager -> GetViewer (clearName); if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Viewer \"" << clearName + G4warn << "ERROR: Viewer \"" << clearName << "\" not found - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -473,7 +477,7 @@ void G4VisCommandViewerClearCutawayPlanes::SetNewValue (G4UIcommand*, G4String) G4VViewer* viewer = fpVisManager -> GetCurrentViewer (); if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: No current viewer - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -521,7 +525,7 @@ void G4VisCommandViewerClearTransients::SetNewValue (G4UIcommand*, G4String newV G4VViewer* viewer = fpVisManager -> GetViewer (clearName); if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Viewer \"" << clearName + G4warn << "ERROR: Viewer \"" << clearName << "\" not found - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -563,7 +567,7 @@ void G4VisCommandViewerClearVisAttributesModifiers::SetNewValue (G4UIcommand*, G G4VViewer* viewer = fpVisManager -> GetCurrentViewer (); if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: No current viewer - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -633,7 +637,7 @@ void G4VisCommandViewerClone::SetNewValue (G4UIcommand*, G4String newValue) { G4VViewer* originalViewer = fpVisManager -> GetViewer (originalName); if (!originalViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Viewer \"" << originalName + G4warn << "ERROR: Viewer \"" << originalName << "\" not found - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -676,7 +680,7 @@ void G4VisCommandViewerClone::SetNewValue (G4UIcommand*, G4String newValue) { if (errorWhileNaming) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: While naming clone viewer \"" << cloneName + G4warn << "ERROR: While naming clone viewer \"" << cloneName << "\"." << G4endl; } @@ -685,7 +689,7 @@ void G4VisCommandViewerClone::SetNewValue (G4UIcommand*, G4String newValue) { if (fpVisManager -> GetViewer (cloneName)) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Putative clone viewer \"" << cloneName + G4warn << "ERROR: Putative clone viewer \"" << cloneName << "\" already exists." << G4endl; } @@ -696,17 +700,10 @@ void G4VisCommandViewerClone::SetNewValue (G4UIcommand*, G4String newValue) { originalViewer->GetViewParameters().GetXGeometryString(); G4UImanager* UImanager = G4UImanager::GetUIpointer(); - G4int keepVerbose = UImanager->GetVerboseLevel(); - G4int newVerbose(0); - if (keepVerbose >= 2 || - fpVisManager->GetVerbosity() >= G4VisManager::confirmations) - newVerbose = 2; - UImanager->SetVerboseLevel(newVerbose); UImanager->ApplyCommand(G4String("/vis/viewer/select " + originalName)); UImanager->ApplyCommand (G4String("/vis/viewer/create ! \"" + cloneName + "\" " + windowSizeHint)); UImanager->ApplyCommand(G4String("/vis/viewer/set/all " + originalName)); - UImanager->SetVerboseLevel(keepVerbose); if (verbosity >= G4VisManager::confirmations) { G4cout << "Viewer \"" << originalName << "\" cloned." << G4endl; @@ -769,7 +766,7 @@ void G4VisCommandViewerColourByDensity::SetNewValue (G4UIcommand*, G4String newV G4VViewer* viewer = fpVisManager -> GetCurrentViewer (); if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: No current viewer - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -785,7 +782,7 @@ void G4VisCommandViewerColourByDensity::SetNewValue (G4UIcommand*, G4String newV if (algorithmNumber < 0 || algorithmNumber > 1) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: Unrecognised algorithm number: " << algorithmNumber << G4endl; } @@ -802,7 +799,7 @@ void G4VisCommandViewerColourByDensity::SetNewValue (G4UIcommand*, G4String newV d0 *= valueOfUnit; d1 *= valueOfUnit; d2 *= valueOfUnit; } else { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: Unrecognised or inappropriate unit: " << unit << G4endl; } @@ -860,7 +857,7 @@ void G4VisCommandViewerCopyViewFrom::SetNewValue (G4UIcommand*, G4String newValu G4VViewer* currentViewer = fpVisManager->GetCurrentViewer(); if (!currentViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsViewerCopyViewFrom::SetNewValue: no current viewer." << G4endl; } @@ -871,7 +868,7 @@ void G4VisCommandViewerCopyViewFrom::SetNewValue (G4UIcommand*, G4String newValu G4VViewer* fromViewer = fpVisManager -> GetViewer (fromViewerName); if (!fromViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Viewer \"" << fromViewerName + G4warn << "ERROR: Viewer \"" << fromViewerName << "\" not found - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -880,7 +877,7 @@ void G4VisCommandViewerCopyViewFrom::SetNewValue (G4UIcommand*, G4String newValu if (fromViewer == currentViewer) { if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: G4VisCommandsViewerSet::SetNewValue:" "\n from-viewer and current viewer are identical." << G4endl; @@ -1010,8 +1007,8 @@ void G4VisCommandViewerCreate::SetNewValue (G4UIcommand* command, G4String newVa const G4SceneHandlerList& sceneHandlerList = fpVisManager -> GetAvailableSceneHandlers (); - G4int nHandlers = sceneHandlerList.size (); - if (nHandlers <= 0) { + std::size_t nHandlers = sceneHandlerList.size (); + if (nHandlers == 0) { G4ExceptionDescription ed; ed << "ERROR: G4VisCommandViewerCreate::SetNewValue: no scene handlers." @@ -1020,12 +1017,12 @@ void G4VisCommandViewerCreate::SetNewValue (G4UIcommand* command, G4String newVa return; } - G4int iHandler; - for (iHandler = 0; iHandler < nHandlers; iHandler++) { + std::size_t iHandler; + for (iHandler = 0; iHandler < nHandlers; ++iHandler) { if (sceneHandlerList [iHandler] -> GetName () == sceneHandlerName) break; } - if (iHandler < 0 || iHandler >= nHandlers) { + if (iHandler >= nHandlers) { // Invalid command line argument or none. // This shouldn't happen!!!!!! G4ExceptionDescription ed; @@ -1050,10 +1047,10 @@ void G4VisCommandViewerCreate::SetNewValue (G4UIcommand* command, G4String newVa if (newName == nextName) fId++; G4String newShortName = fpVisManager -> ViewerShortName (newName); - for (G4int ih = 0; ih < nHandlers; ih++) { + for (std::size_t ih = 0; ih < nHandlers; ++ih) { G4VSceneHandler* sh = sceneHandlerList [ih]; const G4ViewerList& viewerList = sh -> GetViewerList (); - for (size_t iViewer = 0; iViewer < viewerList.size (); iViewer++) { + for (std::size_t iViewer = 0; iViewer < viewerList.size (); iViewer++) { if (viewerList [iViewer] -> GetShortName () == newShortName ) { G4ExceptionDescription ed; ed << @@ -1117,7 +1114,7 @@ void G4VisCommandViewerCreate::SetNewValue (G4UIcommand* command, G4String newVa } else { if (verbosity >= G4VisManager::warnings) { - G4cout << "Issue /vis/viewer/refresh or flush to see effect." + G4warn << "Issue /vis/viewer/refresh or flush to see effect." << G4endl; } } @@ -1180,7 +1177,7 @@ void G4VisCommandViewerDolly::SetNewValue (G4UIcommand* command, G4VViewer* currentViewer = fpVisManager->GetCurrentViewer(); if (!currentViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsViewerDolly::SetNewValue: no current viewer." << G4endl; } @@ -1240,7 +1237,7 @@ void G4VisCommandViewerFlush::SetNewValue (G4UIcommand*, G4String newValue) { G4VViewer* viewer = fpVisManager -> GetViewer (flushName); if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Viewer \"" << flushName << "\"" << + G4warn << "ERROR: Viewer \"" << flushName << "\"" << " not found - \"/vis/viewer/list\"\n to see possibilities." << G4endl; } @@ -1248,14 +1245,8 @@ void G4VisCommandViewerFlush::SetNewValue (G4UIcommand*, G4String newValue) { } G4UImanager* ui = G4UImanager::GetUIpointer(); - G4int keepVerbose = ui->GetVerboseLevel(); - G4int newVerbose(0); - if (keepVerbose >= 2 || verbosity >= G4VisManager::confirmations) - newVerbose = 2; - ui->SetVerboseLevel(newVerbose); ui->ApplyCommand(G4String("/vis/viewer/refresh " + flushName)); ui->ApplyCommand(G4String("/vis/viewer/update " + flushName)); - ui->SetVerboseLevel(keepVerbose); if (verbosity >= G4VisManager::confirmations) { G4cout << "Viewer \"" << viewer -> GetName () << "\"" << " flushed." << G4endl; @@ -1319,7 +1310,7 @@ void G4VisCommandViewerInterpolate::SetNewValue (G4UIcommand*, G4String newValue G4VViewer* currentViewer = fpVisManager->GetCurrentViewer(); if (!currentViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandViewerInterpolate::SetNewValue: no current viewer." << G4endl; } @@ -1392,7 +1383,7 @@ void G4VisCommandViewerInterpolate::SetNewValue (G4UIcommand*, G4String newValue // Default pattern is *.g4view, which translates to ^.*\\.g4view // Convert pattern into a regexp G4String regexp_pattern("^"); - for (size_t i = 0; i < pattern.length(); ++i) { + for (G4int i = 0; i < (G4int)pattern.length(); ++i) { if (pattern[i] == '.') { regexp_pattern += "\\."; } else if (pattern[i] == '*') { @@ -1416,7 +1407,7 @@ void G4VisCommandViewerInterpolate::SetNewValue (G4UIcommand*, G4String newValue if (safetyCount > safety) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "/vis/viewer/interpolate:" "\n the number of way points has been limited to the maximum currently allowed: " << safety << G4endl; @@ -1496,10 +1487,10 @@ void G4VisCommandViewerList::SetNewValue (G4UIcommand*, G4String newValue) { const G4SceneHandlerList& sceneHandlerList = fpVisManager -> GetAvailableSceneHandlers (); - G4int nHandlers = sceneHandlerList.size (); + std::size_t nHandlers = sceneHandlerList.size (); G4bool found = false; G4bool foundCurrent = false; - for (int iHandler = 0; iHandler < nHandlers; iHandler++) { + for (std::size_t iHandler = 0; iHandler < nHandlers; ++iHandler) { G4VSceneHandler* sceneHandler = sceneHandlerList [iHandler]; const G4ViewerList& viewerList = sceneHandler -> GetViewerList (); G4cout @@ -1510,12 +1501,12 @@ void G4VisCommandViewerList::SetNewValue (G4UIcommand*, G4String newValue) { G4cout << ", scene \"" << pScene -> GetName () << "\""; } G4cout << ':'; - G4int nViewers = viewerList.size (); + std::size_t nViewers = viewerList.size (); if (nViewers == 0) { G4cout << "\n No viewers for this scene handler." << G4endl; } else { - for (int iViewer = 0; iViewer < nViewers; iViewer++) { + for (std::size_t iViewer = 0; iViewer < nViewers; ++iViewer) { const G4VViewer* thisViewer = viewerList [iViewer]; G4String thisName = thisViewer -> GetName (); G4String thisShortName = thisViewer -> GetShortName (); @@ -1625,7 +1616,7 @@ void G4VisCommandViewerPan::SetNewValue (G4UIcommand* command, G4VViewer* currentViewer = fpVisManager->GetCurrentViewer(); if (!currentViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsViewerPan::SetNewValue: no current viewer." << G4endl; } @@ -1688,7 +1679,7 @@ void G4VisCommandViewerRebuild::SetNewValue (G4UIcommand*, G4String newValue) { G4VViewer* viewer = fpVisManager -> GetViewer (rebuildName); if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Viewer \"" << rebuildName + G4warn << "ERROR: Viewer \"" << rebuildName << "\" not found - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -1698,7 +1689,7 @@ void G4VisCommandViewerRebuild::SetNewValue (G4UIcommand*, G4String newValue) { G4VSceneHandler* sceneHandler = viewer->GetSceneHandler(); if (!sceneHandler) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Viewer \"" << viewer->GetName() << "\"" << + G4warn << "ERROR: Viewer \"" << viewer->GetName() << "\"" << " has no scene handler - report serious bug." << G4endl; } @@ -1748,7 +1739,7 @@ void G4VisCommandViewerRefresh::SetNewValue (G4UIcommand*, G4String newValue) { G4VViewer* viewer = fpVisManager -> GetViewer (refreshName); if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Viewer \"" << refreshName << "\"" << + G4warn << "ERROR: Viewer \"" << refreshName << "\"" << " not found - \"/vis/viewer/list\"\n to see possibilities." << G4endl; } @@ -1758,7 +1749,7 @@ void G4VisCommandViewerRefresh::SetNewValue (G4UIcommand*, G4String newValue) { G4VSceneHandler* sceneHandler = viewer->GetSceneHandler(); if (!sceneHandler) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Viewer \"" << refreshName << "\"" << + G4warn << "ERROR: Viewer \"" << refreshName << "\"" << " has no scene handler - report serious bug." << G4endl; } @@ -1781,7 +1772,7 @@ void G4VisCommandViewerRefresh::SetNewValue (G4UIcommand*, G4String newValue) { G4bool successful = scene -> AddWorldIfEmpty (warn); if (!successful) { if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: Scene is empty. Perhaps no geometry exists." "\n Try /run/initialize." << G4endl; @@ -1843,7 +1834,7 @@ void G4VisCommandViewerReset::SetNewValue (G4UIcommand*, G4String newValue) { G4VViewer* viewer = fpVisManager -> GetViewer (resetName); if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Viewer \"" << resetName + G4warn << "ERROR: Viewer \"" << resetName << "\" not found - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -1890,7 +1881,7 @@ void G4VisCommandViewerResetCameraParameters::SetNewValue (G4UIcommand*, G4Strin G4VViewer* viewer = fpVisManager -> GetViewer (resetName); if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Viewer \"" << resetName + G4warn << "ERROR: Viewer \"" << resetName << "\" not found - \"/vis/viewer/list\" to see possibilities." << G4endl; } @@ -1958,7 +1949,7 @@ void G4VisCommandViewerSave::SetNewValue (G4UIcommand*, G4String newValue) { const G4VViewer* currentViewer = fpVisManager->GetCurrentViewer(); if (!currentViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsViewerSave::SetNewValue: no current viewer." << G4endl; } @@ -1968,7 +1959,7 @@ void G4VisCommandViewerSave::SetNewValue (G4UIcommand*, G4String newValue) { const G4Scene* currentScene = currentViewer->GetSceneHandler()->GetScene(); if (!currentScene) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsViewerSave::SetNewValue: no current scene." << G4endl; } @@ -1996,7 +1987,7 @@ void G4VisCommandViewerSave::SetNewValue (G4UIcommand*, G4String newValue) { static G4int sequenceNumber = 0; if (sequenceNumber >= maxNoOfFiles) { if (verbosity >= G4VisManager::errors) { - G4cerr + G4warn << "ERROR: G4VisCommandsViewerSave::SetNewValue: Maximum number, " << maxNoOfFiles << ", of files exceeded." @@ -2021,7 +2012,7 @@ void G4VisCommandViewerSave::SetNewValue (G4UIcommand*, G4String newValue) { std::ofstream ofs(filename); if (!ofs) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsViewerSave::SetNewValue: Trouble opening file \"" << filename << "\"." << G4endl; @@ -2034,18 +2025,18 @@ void G4VisCommandViewerSave::SetNewValue (G4UIcommand*, G4String newValue) { } if (verbosity >= G4VisManager::warnings) { - G4cout << "Viewer \"" << currentViewer -> GetName () + G4warn << "Viewer \"" << currentViewer -> GetName () << "\"" << " saved to "; if (filename == "-") { - G4cout << "G4cout."; + G4warn << "G4cout."; } else { - G4cout << "file \'" << filename << "\"." << + G4warn << "file \'" << filename << "\"." << "\n Read the view back into this or any viewer with" "\n \"/control/execute " << filename << "\" or use" "\n \"/vis/viewer/interpolate\" if you have several saved files -" "\n see \"help /vis/viewer/interpolate\" for guidance."; } - G4cout << G4endl; + G4warn << G4endl; } } @@ -2104,7 +2095,7 @@ void G4VisCommandViewerScale::SetNewValue (G4UIcommand* command, G4VViewer* currentViewer = fpVisManager->GetCurrentViewer(); if (!currentViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsViewerScale::SetNewValue: no current viewer." << G4endl; } @@ -2157,8 +2148,8 @@ void G4VisCommandViewerSelect::SetNewValue (G4UIcommand*, G4String newValue) { if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Viewer \"" << selectName << "\""; - G4cerr << " not found - \"/vis/viewer/list\"" + G4warn << "ERROR: Viewer \"" << selectName << "\""; + G4warn << " not found - \"/vis/viewer/list\"" "\n to see possibilities." << G4endl; } @@ -2167,7 +2158,7 @@ void G4VisCommandViewerSelect::SetNewValue (G4UIcommand*, G4String newValue) { if (viewer == fpVisManager -> GetCurrentViewer ()) { if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: Viewer \"" << viewer -> GetName () << "\"" + G4warn << "WARNING: Viewer \"" << viewer -> GetName () << "\"" << " already selected." << G4endl; } return; @@ -2219,7 +2210,7 @@ void G4VisCommandViewerUpdate::SetNewValue (G4UIcommand*, G4String newValue) { G4VViewer* viewer = fpVisManager -> GetViewer (updateName); if (!viewer) { if (verbosity >= G4VisManager::errors) { - G4cout << + G4warn << "WARNING: command \"/vis/viewer/update\" could not be applied: no current viewer." << G4endl; } @@ -2229,7 +2220,7 @@ void G4VisCommandViewerUpdate::SetNewValue (G4UIcommand*, G4String newValue) { G4VSceneHandler* sceneHandler = viewer->GetSceneHandler(); if (!sceneHandler) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Viewer \"" << updateName << "\"" << + G4warn << "ERROR: Viewer \"" << updateName << "\"" << " has no scene handler - report serious bug." << G4endl; } @@ -2310,7 +2301,7 @@ void G4VisCommandViewerZoom::SetNewValue (G4UIcommand* command, G4VViewer* currentViewer = fpVisManager->GetCurrentViewer(); if (!currentViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsViewerZoom::SetNewValue: no current viewer." << G4endl; } diff --git a/source/visualization/management/src/G4VisCommandsViewerDefault.cc b/source/visualization/management/src/G4VisCommandsViewerDefault.cc index 15318261a3..74082843f8 100644 --- a/source/visualization/management/src/G4VisCommandsViewerDefault.cc +++ b/source/visualization/management/src/G4VisCommandsViewerDefault.cc @@ -33,6 +33,8 @@ #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithABool.hh" +#define G4warn G4cout + ////////////// /vis/viewer/default/hiddenEdge /////////////////////////////////////// G4VisCommandViewerDefaultHiddenEdge::G4VisCommandViewerDefaultHiddenEdge() @@ -193,7 +195,7 @@ void G4VisCommandViewerDefaultStyle::SetNewValue(G4UIcommand*, G4String newValue } else { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: \"" << newValue << "\" not recognised." + G4warn << "ERROR: \"" << newValue << "\" not recognised." " Looking for 'w' or 's' or 'c' first character." << G4endl; } return; diff --git a/source/visualization/management/src/G4VisCommandsViewerSet.cc b/source/visualization/management/src/G4VisCommandsViewerSet.cc index 8d84c967b0..0edfe333d9 100644 --- a/source/visualization/management/src/G4VisCommandsViewerSet.cc +++ b/source/visualization/management/src/G4VisCommandsViewerSet.cc @@ -44,6 +44,8 @@ #include #include +#define G4warn G4cout + G4VisCommandsViewerSet::G4VisCommandsViewerSet (): fLightsVector (G4ThreeVector(1.,1.,1.)), fUpVector (G4ThreeVector(0.,1.,0.)), @@ -686,7 +688,7 @@ void G4VisCommandsViewerSet::SetNewValue G4VViewer* currentViewer = fpVisManager->GetCurrentViewer(); if (!currentViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsViewerSet::SetNewValue: no current viewer." << G4endl; } @@ -699,7 +701,7 @@ void G4VisCommandsViewerSet::SetNewValue G4VViewer* fromViewer = fpVisManager->GetViewer(newValue); if (!fromViewer) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsViewerSet::SetNewValue: all:" "\n unrecognised from-viewer." << G4endl; @@ -708,7 +710,7 @@ void G4VisCommandsViewerSet::SetNewValue } if (fromViewer == currentViewer) { if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: G4VisCommandsViewerSet::SetNewValue: all:" "\n from-viewer and current viewer are identical." << G4endl; @@ -737,7 +739,7 @@ void G4VisCommandsViewerSet::SetNewValue << G4endl; } if (verbosity >= G4VisManager::warnings) { - G4cout << "You may need \"/vis/viewer/rebuild\"." + G4warn << "You may need \"/vis/viewer/rebuild\"." << G4endl; } } @@ -748,7 +750,7 @@ void G4VisCommandsViewerSet::SetNewValue currentViewer->GetDefaultViewParameters(); if (autoRefresh && !defaultVP.IsAutoRefresh()) { if (verbosity >= G4VisManager::warnings) { - G4cout + G4warn << "WARNING: " << currentViewer->GetName() << " is NOT auto-refesh by default" << "\n so cannot be set to auto-refresh." @@ -868,7 +870,7 @@ void G4VisCommandsViewerSet::SetNewValue } else { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsViewerSet::SetNewValue: culling:" "\n option not recognised." << G4endl; @@ -1061,7 +1063,7 @@ void G4VisCommandsViewerSet::SetNewValue vp.SetLightsMoveWithCamera(false); else { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: \"" << newValue << "\" not recognised." + G4warn << "ERROR: \"" << newValue << "\" not recognised." " Looking for \"cam\" or \"obj\" in string." << G4endl; } } @@ -1101,7 +1103,7 @@ void G4VisCommandsViewerSet::SetNewValue else if (command == fpCommandLineWidth) { if (verbosity >= G4VisManager::errors) { // A do-nothing command - G4cerr << command->GetGuidanceLine(0) << G4endl; + G4warn << command->GetGuidanceLine(0) << G4endl; } } @@ -1134,7 +1136,7 @@ void G4VisCommandsViewerSet::SetNewValue G4cout << G4endl; } if (verbosity >= G4VisManager::warnings) { - G4cout << "You may need to issue \"/vis/viewer/update\"." + G4warn << "You may need to issue \"/vis/viewer/update\"." << G4endl; } } @@ -1153,16 +1155,16 @@ void G4VisCommandsViewerSet::SetNewValue fieldHalfAngle *= G4UIcommand::ValueOf(unit); if (fieldHalfAngle > 89.5 * deg || fieldHalfAngle <= 0.0) { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: Field half angle should be 0 < angle <= 89.5 degrees."; - G4cout << G4endl; + G4warn << G4endl; } return; } } else { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: \"" << newValue << "\" not recognised." + G4warn << "ERROR: \"" << newValue << "\" not recognised." " Looking for 'o' or 'p' first character." << G4endl; } return; @@ -1190,7 +1192,7 @@ void G4VisCommandsViewerSet::SetNewValue style = G4ViewParameters::freeRotation; else { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: \"" << newValue << "\" not recognised." << G4endl; + G4warn << "ERROR: \"" << newValue << "\" not recognised." << G4endl; } return; } @@ -1214,7 +1216,7 @@ void G4VisCommandsViewerSet::SetNewValue G4UIcommand::ConvertToBool(choice)) iSelector = 1; if (iSelector < 0) { if (verbosity >= G4VisManager::errors) { - G4cout << "Choice not recognised (on/true or off/false)." << G4endl; + G4warn << "Choice not recognised (on/true or off/false)." << G4endl; } goto write_result; } @@ -1228,10 +1230,11 @@ void G4VisCommandsViewerSet::SetNewValue x *= F; y *= F; z *= F; if (nx == 0. && ny == 0. && nz == 0.) { if (verbosity >= G4VisManager::errors) { - G4cout << "Null normal." << G4endl; + G4warn << "Null normal." << G4endl; } break;; } + // Make sure normal is normalised const G4Normal3D& normal = G4Normal3D(nx,ny,nz).unit(); vp.SetSectionPlane(G4Plane3D(normal, G4Point3D(x,y,z))); vp.SetViewpointDirection(normal); @@ -1300,7 +1303,7 @@ void G4VisCommandsViewerSet::SetNewValue iBegin = newValue.find_first_not_of(' ',iEnd); if (iBegin == G4String::npos) { if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: G4VisCommandsViewerSet::SetNewValue: /vis/viewer/set/specialMeshVolumes" "\n A pair not found. (There should be an even number of parameters.)" "\n Command ignored." @@ -1316,7 +1319,7 @@ void G4VisCommandsViewerSet::SetNewValue std::istringstream iss(newValue.substr(iBegin,iEnd-iBegin)); if (!(iss >> copyNo)) { if (verbosity >= G4VisManager::warnings) { - G4cout << + G4warn << "WARNING: G4VisCommandsViewerSet::SetNewValue: /vis/viewer/set/specialMeshVolumes" "\n Error reading copy number - it was not numeric?" "\n Command ignored." @@ -1402,7 +1405,7 @@ void G4VisCommandsViewerSet::SetNewValue } else { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: \"" << newValue << "\" not recognised." + G4warn << "ERROR: \"" << newValue << "\" not recognised." " Looking for 'w' or 's' or 'c' first character." << G4endl; } return; @@ -1479,7 +1482,7 @@ void G4VisCommandsViewerSet::SetNewValue G4ThreeVector viewpointVector = G4UIcommand::ConvertTo3Vector(newValue); if (viewpointVector.mag2() <= 0.) { if (verbosity >= G4VisManager::errors) { - G4cerr << "ERROR: Null viewpoint vector. No action taken." << G4endl; + G4warn << "ERROR: Null viewpoint vector. No action taken." << G4endl; } } else { fViewpointVector = viewpointVector.unit(); @@ -1608,7 +1611,7 @@ void G4VisCommandsViewerSet::SetNewValue else { if (verbosity >= G4VisManager::errors) { - G4cerr << + G4warn << "ERROR: G4VisCommandsViewerSet::SetNewValue: unrecognised command." << G4endl; } diff --git a/source/visualization/management/src/G4VisManager.cc b/source/visualization/management/src/G4VisManager.cc index 391d48c9e2..acc931305a 100644 --- a/source/visualization/management/src/G4VisManager.cc +++ b/source/visualization/management/src/G4VisManager.cc @@ -83,7 +83,7 @@ #ifdef G4MULTITHREADED # include "G4Threading.hh" # include "G4AutoLock.hh" -# include "G4GeometryWorkspace.hh" +# include "G4GeometryWorkspace.hh" // no_geant4_module_check(!G4MULTITHREADED) # include "G4SolidsWorkspace.hh" # include # include @@ -91,6 +91,8 @@ # include #endif +#define G4warn G4cout + G4VisManager* G4VisManager::fpInstance = 0; G4VisManager::Verbosity G4VisManager::fVerbosity = G4VisManager::warnings; @@ -212,7 +214,7 @@ G4VisManager::~G4VisManager() { G4UImanager* UImanager = G4UImanager::GetUIpointer(); UImanager->SetCoutDestination(nullptr); - size_t i; + std::size_t i; for (i = 0; i < fSceneList.size (); ++i) { delete fSceneList[i]; } @@ -256,7 +258,7 @@ G4VisManager* G4VisManager::GetInstance () { void G4VisManager::Initialise () { if (fInitialised && fVerbosity >= warnings) { - G4cout << "WARNING: G4VisManager::Initialise: already initialised." + G4warn << "WARNING: G4VisManager::Initialise: already initialised." << G4endl; return; } @@ -694,7 +696,7 @@ namespace { "There " << isare << ' ' << _n << ' ' << plotType << " histogram" << plural << G4endl; if (_n <= 5) { - for (size_t i = 0; i < _n; ++i) { + for (std::size_t i = 0; i < _n; ++i) { const auto& _h = (*_v)[i]; G4cout << std::setw(3) << i @@ -727,7 +729,7 @@ void G4VisManager::Enable() { G4cout << "G4VisManager::Enable: visualization enabled." << G4endl; } if (fVerbosity >= warnings) { - G4int nKeptEvents = 0; + std::size_t nKeptEvents = 0; const G4Run* run = G4RunManager::GetRunManager()->GetCurrentRun(); if (run) nKeptEvents = run->GetEventVector()->size(); G4String isare("are"),plural("s"); @@ -746,7 +748,7 @@ void G4VisManager::Enable() { } else { if (fVerbosity >= warnings) { - G4cout << + G4warn << "G4VisManager::Enable: WARNING: visualization remains disabled for" "\n above reasons. Rectifying with valid vis commands will" "\n automatically enable." @@ -768,7 +770,7 @@ void G4VisManager::Disable() { G4int currentTrajectoryType = G4RunManagerKernel::GetRunManagerKernel()->GetTrackingManager()->GetStoreTrajectory(); if (currentTrajectoryType > 0) { - G4cout << + G4warn << "You may wish to disable trajectory production too:" "\n \"/tracking/storeTrajectory 0\"" "\nbut don't forget to re-enable with" @@ -781,10 +783,10 @@ void G4VisManager::Disable() { } const G4GraphicsSystemList& G4VisManager::GetAvailableGraphicsSystems () { - G4int nSystems = fAvailableGraphicsSystems.size (); + std::size_t nSystems = fAvailableGraphicsSystems.size (); if (nSystems == 0) { if (fVerbosity >= warnings) { - G4cout << "G4VisManager::GetAvailableGraphicsSystems: WARNING: no" + G4warn << "G4VisManager::GetAvailableGraphicsSystems: WARNING: no" "\n graphics system available!" "\n 1) Did you have environment variables G4VIS_BUILD_xxxx_DRIVER set" "\n when you compiled/built the visualization code?" @@ -815,7 +817,7 @@ G4bool G4VisManager::RegisterGraphicsSystem (G4VGraphicsSystem* pSystem) { } else { if (fVerbosity >= errors) { - G4cout << "G4VisManager::RegisterGraphicsSystem: null pointer!" + G4warn << "G4VisManager::RegisterGraphicsSystem: null pointer!" << G4endl; } happy=false; @@ -835,8 +837,8 @@ G4VisManager::CurrentTrajDrawModel() const // Use G4TrajectoryDrawByCharge as a fallback. fpTrajDrawModelMgr->Register(new G4TrajectoryDrawByCharge("DefaultModel")); if (fVerbosity >= warnings) { - G4cout<<"G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model."<CreateModelingParameters(); + auto depth = G4PhysicalVolumeModel::UNLIMITED; + const G4bool useFullExtent = true; + G4PhysicalVolumeModel aPVModel(v,depth,t,modelingParameters,useFullExtent); + aPVModel.DescribeYourselfTo(*fpSceneHandler); + delete modelingParameters; +} + void G4VisManager::CreateSceneHandler (const G4String& name) { if (!fInitialised) Initialise (); if (fpGraphicsSystem) { @@ -1211,7 +1225,7 @@ void G4VisManager::CreateSceneHandler (const G4String& name) { } else { if (fVerbosity >= errors) { - G4cout << "ERROR in G4VisManager::CreateSceneHandler during " + G4warn << "ERROR in G4VisManager::CreateSceneHandler during " << fpGraphicsSystem -> GetName () << " scene handler creation.\n No action taken." << G4endl; @@ -1236,7 +1250,7 @@ void G4VisManager::CreateViewer if (!p) { if (fVerbosity >= errors) { - G4cerr << "ERROR in G4VisManager::CreateViewer: null pointer during " + G4warn << "ERROR in G4VisManager::CreateViewer: null pointer during " << fpGraphicsSystem -> GetName () << " viewer creation.\n No action taken." << G4endl; @@ -1246,7 +1260,7 @@ void G4VisManager::CreateViewer if (p -> GetViewId() < 0) { if (fVerbosity >= errors) { - G4cerr << "ERROR in G4VisManager::CreateViewer during " + G4warn << "ERROR in G4VisManager::CreateViewer during " << fpGraphicsSystem -> GetName () << " viewer instantiation.\n No action taken." << G4endl; @@ -1263,7 +1277,7 @@ void G4VisManager::CreateViewer p -> Initialise (); // (Viewer itself may change view parameters further.) if (p -> GetViewId() < 0) { if (fVerbosity >= errors) { - G4cerr << "ERROR in G4VisManager::CreateViewer during " + G4warn << "ERROR in G4VisManager::CreateViewer during " << fpGraphicsSystem -> GetName () << " viewer initialisation.\n No action taken." << G4endl; @@ -1302,7 +1316,7 @@ void G4VisManager::CreateViewer static G4bool warned = false; if (fVerbosity >= warnings) { if (!warned) { - G4cout << + G4warn << "WARNING: covered objects in solid mode will not be rendered!" "\n \"/vis/viewer/set/culling coveredDaughters false\" to reverse this." "\n Also see other \"/vis/viewer/set\" commands." @@ -1324,14 +1338,14 @@ void G4VisManager::GeometryHasChanged () { -> GetNavigatorForTracking () -> GetWorldVolume (); if (!pWorld) { if (fVerbosity >= warnings) { - G4cout << "WARNING: There is no world volume!" << G4endl; + G4warn << "WARNING: There is no world volume!" << G4endl; } } // Check scenes. G4SceneList& sceneList = fSceneList; - G4int iScene, nScenes = sceneList.size (); - for (iScene = 0; iScene < nScenes; iScene++) { + std::size_t iScene, nScenes = sceneList.size (); + for (iScene = 0; iScene < nScenes; ++iScene) { G4Scene* pScene = sceneList [iScene]; std::vector& modelList = pScene -> SetRunDurationModelList (); if (modelList.size ()) { @@ -1346,7 +1360,7 @@ void G4VisManager::GeometryHasChanged () { if (modelInvalid) { // Model invalid - remove and break. if (fVerbosity >= warnings) { - G4cout << "WARNING: Model \"" + G4warn << "WARNING: Model \"" << iterModel->fpModel->GetGlobalDescription () << "\" is no longer valid - being removed\n from scene \"" @@ -1361,14 +1375,14 @@ void G4VisManager::GeometryHasChanged () { if (modelList.size () == 0) { if (fVerbosity >= warnings) { - G4cout << "WARNING: No run-duration models left in this scene \"" + G4warn << "WARNING: No run-duration models left in this scene \"" << pScene -> GetName () << "\"." << G4endl; } if (pWorld) { if (fVerbosity >= warnings) { - G4cout << " Adding current world to \"" + G4warn << " Adding current world to \"" << pScene -> GetName () << "\"." << G4endl; @@ -1390,7 +1404,7 @@ void G4VisManager::GeometryHasChanged () { // Check the manager's current scene... if (fpScene && fpScene -> GetRunDurationModelList ().size () == 0) { if (fVerbosity >= warnings) { - G4cout << "WARNING: The current scene \"" + G4warn << "WARNING: The current scene \"" << fpScene -> GetName () << "\" has no run duration models." << "\n Use \"/vis/scene/add/volume\" or create a new scene." @@ -1420,8 +1434,8 @@ void G4VisManager::NotifyHandlers () { // Check scenes. G4SceneList& sceneList = fSceneList; - G4int iScene, nScenes = sceneList.size (); - for (iScene = 0; iScene < nScenes; iScene++) { + std::size_t iScene, nScenes = sceneList.size (); + for (iScene = 0; iScene < nScenes; ++iScene) { G4Scene* pScene = sceneList [iScene]; std::vector& modelList = pScene -> SetRunDurationModelList (); @@ -1435,7 +1449,7 @@ void G4VisManager::NotifyHandlers () { // Check the manager's current scene... if (fpScene && fpScene -> GetRunDurationModelList ().size () == 0) { if (fVerbosity >= warnings) { - G4cout << "WARNING: The current scene \"" + G4warn << "WARNING: The current scene \"" << fpScene -> GetName () << "\" has no run duration models." << "\n Use \"/vis/scene/add/volume\" or create a new scene." @@ -1501,7 +1515,7 @@ void G4VisManager::RegisterRunDurationUserVisAction fUserVisActionExtents[pVisAction] = extent; } else { if (fVerbosity >= warnings) { - G4cout << + G4warn << "WARNING: No extent set for user vis action \"" << name << "\"." << G4endl; } @@ -1522,7 +1536,7 @@ void G4VisManager::RegisterEndOfEventUserVisAction fUserVisActionExtents[pVisAction] = extent; } else { if (fVerbosity >= warnings) { - G4cout << + G4warn << "WARNING: No extent set for user vis action \"" << name << "\"." << G4endl; } @@ -1543,7 +1557,7 @@ void G4VisManager::RegisterEndOfRunUserVisAction fUserVisActionExtents[pVisAction] = extent; } else { if (fVerbosity >= warnings) { - G4cout << + G4warn << "WARNING: No extent set for user vis action \"" << name << "\"." << G4endl; } @@ -1575,7 +1589,7 @@ void G4VisManager::SetCurrentGraphicsSystem (G4VGraphicsSystem* pSystem) { // Or clear pointers. if (!(fpSceneHandler && fpSceneHandler -> GetGraphicsSystem () == pSystem)) { const G4SceneHandlerList& sceneHandlerList = fAvailableSceneHandlers; - G4int nSH = sceneHandlerList.size (); // No. of scene handlers. + G4int nSH = (G4int)sceneHandlerList.size (); // No. of scene handlers. G4int iSH; for (iSH = nSH - 1; iSH >= 0; iSH--) { if (sceneHandlerList [iSH] -> GetGraphicsSystem () == pSystem) break; @@ -1632,10 +1646,10 @@ void G4VisManager::SetCurrentSceneHandler (G4VSceneHandler* pSceneHandler) { } } const G4ViewerList& viewerList = fpSceneHandler -> GetViewerList (); - G4int nViewers = viewerList.size (); + std::size_t nViewers = viewerList.size (); if (nViewers) { - G4int iViewer; - for (iViewer = 0; iViewer < nViewers; iViewer++) { + std::size_t iViewer; + for (iViewer = 0; iViewer < nViewers; ++iViewer) { if (fpViewer == viewerList [iViewer]) break; } if (iViewer >= nViewers) { @@ -1647,7 +1661,7 @@ void G4VisManager::SetCurrentSceneHandler (G4VSceneHandler* pSceneHandler) { } if (!IsValidView ()) { if (fVerbosity >= warnings) { - G4cout << + G4warn << "WARNING: Problem setting scene handler - please report circumstances." << G4endl; } @@ -1656,7 +1670,7 @@ void G4VisManager::SetCurrentSceneHandler (G4VSceneHandler* pSceneHandler) { else { fpViewer = 0; if (fVerbosity >= warnings) { - G4cout << + G4warn << "WARNING: No viewers for this scene handler - please create one." << G4endl; } @@ -1680,7 +1694,7 @@ void G4VisManager::SetCurrentViewer (G4VViewer* pViewer) { fpSceneHandler = fpViewer -> GetSceneHandler (); if (!fpSceneHandler) { if (fVerbosity >= warnings) { - G4cout << + G4warn << "WARNING: No scene handler for this viewer - please create one." << G4endl; } @@ -1693,7 +1707,7 @@ void G4VisManager::SetCurrentViewer (G4VViewer* pViewer) { fpGraphicsSystem = fpSceneHandler -> GetGraphicsSystem (); if (!IsValidView ()) { if (fVerbosity >= warnings) { - G4cout << + G4warn << "WARNING: Problem setting viewer - please report circumstances." << G4endl; } @@ -1711,7 +1725,7 @@ void G4VisManager::PrintAvailableGraphicsSystems if (verbosity <= warnings) { // Brief output out << " " << name << " ("; - for (size_t i = 0; i < nicknames.size(); ++i) { + for (std::size_t i = 0; i < nicknames.size(); ++i) { if (i != 0) { out << ", "; } @@ -1798,7 +1812,7 @@ void G4VisManager::PrintAvailableUserVisActions (Verbosity) const if (fRunDurationUserVisActions.empty()) G4cout << " none" << G4endl; else { G4cout << G4endl; - for (size_t i = 0; i < fRunDurationUserVisActions.size(); i++) { + for (std::size_t i = 0; i < fRunDurationUserVisActions.size(); ++i) { const G4String& name = fRunDurationUserVisActions[i].fName; G4cout << " " << name << G4endl; } @@ -1808,7 +1822,7 @@ void G4VisManager::PrintAvailableUserVisActions (Verbosity) const if (fEndOfEventUserVisActions.empty()) G4cout << " none" << G4endl; else { G4cout << G4endl; - for (size_t i = 0; i < fEndOfEventUserVisActions.size(); i++) { + for (std::size_t i = 0; i < fEndOfEventUserVisActions.size(); ++i) { const G4String& name = fEndOfEventUserVisActions[i].fName; G4cout << " " << name << G4endl; } @@ -1818,7 +1832,7 @@ void G4VisManager::PrintAvailableUserVisActions (Verbosity) const if (fEndOfRunUserVisActions.empty()) G4cout << " none" << G4endl; else { G4cout << G4endl; - for (size_t i = 0; i < fEndOfRunUserVisActions.size(); i++) { + for (std::size_t i = 0; i < fEndOfRunUserVisActions.size(); ++i) { const G4String& name = fEndOfRunUserVisActions[i].fName; G4cout << " " << name << G4endl; } @@ -1840,26 +1854,26 @@ void G4VisManager::PrintAvailableColours (Verbosity) const { void G4VisManager::PrintInvalidPointers () const { if (fVerbosity >= errors) { - G4cerr << "ERROR: G4VisManager::PrintInvalidPointers:"; + G4warn << "ERROR: G4VisManager::PrintInvalidPointers:"; if (!fpGraphicsSystem) { - G4cerr << "\n null graphics system pointer."; + G4warn << "\n null graphics system pointer."; } else { - G4cerr << "\n Graphics system is " << fpGraphicsSystem -> GetName () + G4warn << "\n Graphics system is " << fpGraphicsSystem -> GetName () << " but:"; if (!fpScene) - G4cerr << + G4warn << "\n Null scene pointer. Use \"/vis/drawVolume\" or" " \"/vis/scene/create\"."; if (!fpSceneHandler) - G4cerr << + G4warn << "\n Null scene handler pointer. Use \"/vis/open\" or" " \"/vis/sceneHandler/create\"."; if (!fpViewer ) - G4cerr << + G4warn << "\n Null viewer pointer. Use \"/vis/viewer/create\"."; } - G4cerr << G4endl; + G4warn << G4endl; } } @@ -1900,7 +1914,7 @@ G4ThreadFunReturnType G4VisManager::G4VisSubThread(G4ThreadFunArgType p) while (true) { G4MUTEXLOCK(&mtVisSubThreadMutex); - G4int eventQueueSize = mtVisEventQueue.size(); + std::size_t eventQueueSize = mtVisEventQueue.size(); G4MUTEXUNLOCK(&mtVisSubThreadMutex); // G4cout << "Event queue size (A): " << eventQueueSize << G4endl; @@ -2102,18 +2116,18 @@ void G4VisManager::EndOfEvent () // Wait if too many events in the queue. G4MUTEXLOCK(&mtVisSubThreadMutex); - G4int eventQueueSize = mtVisEventQueue.size(); + std::size_t eventQueueSize = mtVisEventQueue.size(); G4MUTEXUNLOCK(&mtVisSubThreadMutex); // G4cout << "Event queue size (1): " << eventQueueSize << G4endl; G4bool eventQueueFull = false; - while (fMaxEventQueueSize > 0 && eventQueueSize >= fMaxEventQueueSize) { + while (fMaxEventQueueSize > 0 && (G4int)eventQueueSize >= fMaxEventQueueSize) { // G4cout << "Event queue size (2): " << eventQueueSize << G4endl; if (fWaitOnEventQueueFull) { static G4bool warned = false; if (!warned) { - G4cout << + G4warn << "WARNING: The number of events in the visualisation queue has exceeded" "\n the maximum, " << fMaxEventQueueSize << @@ -2137,7 +2151,7 @@ void G4VisManager::EndOfEvent () } else { static G4bool warned = false; if (!warned) { - G4cout << + G4warn << "WARNING: The number of events in the visualisation queue has exceeded" "\n the maximum, " << fMaxEventQueueSize << @@ -2190,7 +2204,7 @@ void G4VisManager::EndOfEvent () nEventsToBeProcessed = runManager->GetNumberOfEventsToBeProcessed(); eventID = currentEvent->GetEventID(); const std::vector* events = currentRun->GetEventVector(); - if (events) nKeptEvents = events->size(); + if (events) nKeptEvents = (G4int)events->size(); } // We are about to draw the event (trajectories, etc.), but first we @@ -2242,11 +2256,11 @@ void G4VisManager::EndOfEvent () static G4bool warned = false; if (!warned) { if (fVerbosity >= warnings) { - G4cout << + G4warn << "WARNING: G4VisManager::EndOfEvent: Automatic event keeping suspended." << G4endl; if (maxNumberOfKeptEvents > 0) { - G4cout << + G4warn << "\n The number of events exceeds the maximum, " << maxNumberOfKeptEvents << ", that may be kept by\n the vis manager." @@ -2313,7 +2327,7 @@ void G4VisManager::EndOfRun () G4int noOfEventsRequested = runManager->GetNumberOfEventsToBeProcessed(); if (fNoOfEventsDrawnThisRun != noOfEventsRequested) { if (!fWaitOnEventQueueFull && fVerbosity >= warnings) { - G4cout + G4warn << "WARNING: Number of events drawn this run, " << fNoOfEventsDrawnThisRun << ", is different to number requested, " << noOfEventsRequested << @@ -2326,32 +2340,32 @@ void G4VisManager::EndOfRun () G4int nKeptEvents = 0; const std::vector* events = currentRun->GetEventVector(); - if (events) nKeptEvents = events->size(); + if (events) nKeptEvents = (G4int)events->size(); if (fVerbosity >= warnings && nKeptEvents > 0) { - G4cout << nKeptEvents; - if (nKeptEvents == 1) G4cout << " event has"; - else G4cout << " events have"; - G4cout << " been kept for refreshing and/or reviewing." << G4endl; + G4warn << nKeptEvents; + if (nKeptEvents == 1) G4warn << " event has"; + else G4warn << " events have"; + G4warn << " been kept for refreshing and/or reviewing." << G4endl; if (nKeptEvents != fNKeepRequests) { - G4cout << " (Note: "; + G4warn << " (Note: "; if (fNKeepRequests == 0) { - G4cout << "No keep requests were"; + G4warn << "No keep requests were"; } else if (fNKeepRequests == 1) { - G4cout << "1 keep request was"; + G4warn << "1 keep request was"; } else { - G4cout << fNKeepRequests << " keep requests were"; + G4warn << fNKeepRequests << " keep requests were"; } - G4cout << " made by the vis manager."; + G4warn << " made by the vis manager."; if (fNKeepRequests == 0) { - G4cout << + G4warn << "\n The kept events are those you have asked to be kept in your user action(s).)"; } else { - G4cout << + G4warn << "\n The same or further events may have been kept by you in your user action(s).)"; } - G4cout << G4endl; + G4warn << G4endl; } - G4cout << + G4warn << " \"/vis/reviewKeptEvents\" to review one by one." "\n To see accumulated, \"/vis/enable\", then \"/vis/viewer/flush\" or \"/vis/viewer/rebuild\"." << G4endl; @@ -2360,11 +2374,11 @@ void G4VisManager::EndOfRun () if (fVerbosity >= warnings) PrintListOfPlots(); if (fEventKeepingSuspended && fVerbosity >= warnings) { - G4cout << + G4warn << "WARNING: G4VisManager::EndOfRun: Automatic event keeping was suspended." << G4endl; if (fpScene->GetMaxNumberOfKeptEvents() > 0) { - G4cout << + G4warn << "\n The number of events in the run exceeded the maximum, " << fpScene->GetMaxNumberOfKeptEvents() << ", that may be\n kept by the vis manager." << @@ -2402,7 +2416,7 @@ void G4VisManager::EndOfRun () if (fpGraphicsSystem->GetFunctionality() == G4VGraphicsSystem::fileWriter) { if (fVerbosity >= warnings) { - G4cout << "\"/vis/viewer/update\" to close file." << G4endl; + G4warn << "\"/vis/viewer/update\" to close file." << G4endl; } } } @@ -2444,8 +2458,8 @@ G4String G4VisManager::ViewerShortName (const G4String& viewerName) const { G4VViewer* G4VisManager::GetViewer (const G4String& viewerName) const { G4String viewerShortName = ViewerShortName (viewerName); - size_t nHandlers = fAvailableSceneHandlers.size (); - size_t iHandler, iViewer; + std::size_t nHandlers = fAvailableSceneHandlers.size (); + std::size_t iHandler, iViewer; G4VViewer* viewer = 0; G4bool found = false; for (iHandler = 0; iHandler < nHandlers; iHandler++) { @@ -2496,13 +2510,13 @@ G4VisManager::GetVerbosityValue(const G4String& verbosityString) { std::istringstream is(ss); is >> intVerbosity; if (!is) { - G4cerr << "ERROR: G4VisManager::GetVerbosityValue: invalid verbosity \"" + G4warn << "ERROR: G4VisManager::GetVerbosityValue: invalid verbosity \"" << verbosityString << "\""; - for (size_t i = 0; i < VerbosityGuidanceStrings.size(); ++i) { - G4cerr << '\n' << VerbosityGuidanceStrings[i]; + for (std::size_t i = 0; i < VerbosityGuidanceStrings.size(); ++i) { + G4warn << '\n' << VerbosityGuidanceStrings[i]; } verbosity = warnings; - G4cerr << "\n Returning " << VerbosityString(verbosity) + G4warn << "\n Returning " << VerbosityString(verbosity) << G4endl; } else { @@ -2543,7 +2557,7 @@ G4bool G4VisManager::IsValidView () { if (noGSPrinting) { noGSPrinting = false; if (fVerbosity >= warnings) { - G4cout << + G4warn << "WARNING: G4VisManager::IsValidView(): Attempt to draw when no graphics system" "\n has been instantiated. Use \"/vis/open\" or \"/vis/sceneHandler/create\"." "\n Alternatively, to avoid this message, suppress instantiation of vis" @@ -2557,7 +2571,7 @@ G4bool G4VisManager::IsValidView () { if ((!fpScene) || (!fpSceneHandler) || (!fpViewer)) { if (fVerbosity >= errors) { - G4cerr << + G4warn << "ERROR: G4VisManager::IsValidView(): Current view is not valid." << G4endl; PrintInvalidPointers (); @@ -2567,9 +2581,9 @@ G4bool G4VisManager::IsValidView () { if (fpScene != fpSceneHandler -> GetScene ()) { if (fVerbosity >= errors) { - G4cerr << "ERROR: G4VisManager::IsValidView ():"; + G4warn << "ERROR: G4VisManager::IsValidView ():"; if (fpSceneHandler -> GetScene ()) { - G4cout << + G4warn << "\n The current scene \"" << fpScene -> GetName () << "\" is not handled by" @@ -2590,7 +2604,7 @@ G4bool G4VisManager::IsValidView () { << G4endl; } else { - G4cout << "\n Scene handler \"" + G4warn << "\n Scene handler \"" << fpSceneHandler -> GetName () << "\" has null scene pointer." "\n Attach a scene with /vis/sceneHandler/attach []" @@ -2603,7 +2617,7 @@ G4bool G4VisManager::IsValidView () { const G4ViewerList& viewerList = fpSceneHandler -> GetViewerList (); if (viewerList.size () == 0) { if (fVerbosity >= errors) { - G4cerr << + G4warn << "ERROR: G4VisManager::IsValidView (): the current scene handler\n \"" << fpSceneHandler -> GetName () << "\" has no viewers. Do /vis/viewer/create." @@ -2618,8 +2632,8 @@ G4bool G4VisManager::IsValidView () { G4bool successful = fpScene -> AddWorldIfEmpty (warn); if (!successful || fpScene -> IsEmpty ()) { // If still empty... if (fVerbosity >= errors) { - G4cerr << "ERROR: G4VisManager::IsValidView ():"; - G4cerr << + G4warn << "ERROR: G4VisManager::IsValidView ():"; + G4warn << "\n Attempt at some drawing operation when scene is empty." "\n Maybe the geometry has not yet been defined." " Try /run/initialize." @@ -2631,10 +2645,10 @@ G4bool G4VisManager::IsValidView () { else { G4UImanager::GetUIpointer()->ApplyCommand ("/vis/scene/notifyHandlers"); if (fVerbosity >= warnings) { - G4cout << + G4warn << "WARNING: G4VisManager: the scene was empty, \"world\" has been" "\n added and the scene handlers notified."; - G4cout << G4endl; + G4warn << G4endl; } } } @@ -2645,9 +2659,9 @@ void G4VisManager::RegisterModelFactories() { if (fVerbosity >= warnings) { - G4cout<<"G4VisManager: No model factories registered with G4VisManager."<= warnings`. + +## 2022-10-28 John Allison (modeling-V11-00-12) +- Implement generic cutaway. + - G4PhysicalVolumeModel::DescribeSolid: + - Simplify clipping, sectioning and cutaway code. + +## 2022-09-19 John Allison (modeling-V11-00-11) +- G4Mesh: + - A simple parameterisation may only be one level. + - Nested parameterisations may be 2- or 3-level. ## 2022-06-09 Laurie Nevay (modeling-V11-00-10) - - Allow arrow proportions to be greater than 1/100. Produces more visible arrows for field visualisation and also obeys the input parameters more closely. diff --git a/source/visualization/modeling/include/G4AttributeFilterT.hh b/source/visualization/modeling/include/G4AttributeFilterT.hh index 607216a894..bf5744c2ec 100644 --- a/source/visualization/modeling/include/G4AttributeFilterT.hh +++ b/source/visualization/modeling/include/G4AttributeFilterT.hh @@ -117,11 +117,11 @@ G4AttributeFilterT::Evaluate(const T& object) const static G4bool warnedUnableToExtract = false; if (!warnedUnableToExtract) { G4ExceptionDescription ed; - ed <<"Unable to extract attribute definition named "<::Evaluate(const T& object) const static G4bool warnedUnableToExtract = false; if (!warnedUnableToExtract) { G4ExceptionDescription ed; - ed <<"Unable to extract attribute value named "<GetEvent(); if (event) { - G4DCofThisEvent* DCE = event -> GetDCofThisEvent (); + G4DCofThisEvent* DCE = event->GetDCofThisEvent(); if (DCE) { - G4int nDC = DCE -> GetCapacity (); - for (int iDC = 0; iDC < nDC; iDC++) { - G4VDigiCollection* DC = DCE -> GetDC (iDC); - if (DC) { - for(size_t iDigi = 0; iDigi < DC->GetSize(); ++iDigi) { - fpCurrentDigi = DC -> GetDigi (iDigi); - if (fpCurrentDigi) sceneHandler.AddCompound (*fpCurrentDigi); - } - } + G4int nDC = (G4int)DCE->GetCapacity(); + for (G4int iDC = 0; iDC < nDC; ++iDC) { + G4VDigiCollection* DC = DCE->GetDC(iDC); + if (DC) { + for(std::size_t iDigi = 0; iDigi < DC->GetSize(); ++iDigi) { + fpCurrentDigi = DC->GetDigi(iDigi); + if (fpCurrentDigi) sceneHandler.AddCompound(*fpCurrentDigi); + } + } } } } diff --git a/source/visualization/modeling/src/G4HitsModel.cc b/source/visualization/modeling/src/G4HitsModel.cc index 27b7a794a6..6792cb6a6a 100644 --- a/source/visualization/modeling/src/G4HitsModel.cc +++ b/source/visualization/modeling/src/G4HitsModel.cc @@ -38,7 +38,7 @@ G4HitsModel::~G4HitsModel () {} G4HitsModel::G4HitsModel (): - fpCurrentHit(0) + fpCurrentHit(nullptr) { fType = "G4HitsModel"; fGlobalTag = "G4HitsModel for all hits."; @@ -49,17 +49,17 @@ void G4HitsModel::DescribeYourselfTo (G4VGraphicsScene& sceneHandler) { const G4Event* event = fpMP->GetEvent(); if (event) { - G4HCofThisEvent* HCE = event -> GetHCofThisEvent (); + G4HCofThisEvent* HCE = event->GetHCofThisEvent(); if (HCE) { - G4int nHC = HCE -> GetCapacity (); - for (int iHC = 0; iHC < nHC; iHC++) { - G4VHitsCollection* HC = HCE -> GetHC (iHC); - if (HC) { - for(size_t iHit = 0; iHit < HC->GetSize(); ++iHit) { - fpCurrentHit = HC -> GetHit (iHit); - if (fpCurrentHit) sceneHandler.AddCompound (*fpCurrentHit); - } - } + G4int nHC = (G4int)HCE->GetCapacity(); + for (G4int iHC = 0; iHC < nHC; ++iHC) { + G4VHitsCollection* HC = HCE -> GetHC (iHC); + if (HC) { + for(std::size_t iHit = 0; iHit < HC->GetSize(); ++iHit) { + fpCurrentHit = HC->GetHit(iHit); + if (fpCurrentHit) sceneHandler.AddCompound(*fpCurrentHit); + } + } } } } diff --git a/source/visualization/modeling/src/G4LogicalVolumeModel.cc b/source/visualization/modeling/src/G4LogicalVolumeModel.cc index 20a3210889..31a2bc0fde 100644 --- a/source/visualization/modeling/src/G4LogicalVolumeModel.cc +++ b/source/visualization/modeling/src/G4LogicalVolumeModel.cc @@ -165,10 +165,10 @@ void G4LogicalVolumeModel::DescribeYourselfTo G4VReadOutGeometry* roGeom = sd->GetROgeometry(); if (roGeom) { G4VPhysicalVolume* roWorld = roGeom->GetROWorld(); - G4cout << "Readout geometry \"" << roGeom->GetName() - << "\" with top physical volume \"" - << roWorld->GetName() - << "\"" << G4endl; +// G4cout << "Readout geometry \"" << roGeom->GetName() +// << "\" with top physical volume \"" +// << roWorld->GetName() +// << "\"" << G4endl; G4PhysicalVolumeModel pvModel(roWorld); pvModel.SetModelingParameters(fpMP); pvModel.DescribeYourselfTo(sceneHandler); @@ -179,7 +179,7 @@ void G4LogicalVolumeModel::DescribeYourselfTo if (fCheckOverlaps) { G4LogicalVolume* motherLog = fpTopPV->GetLogicalVolume(); G4VSolid* motherSolid = motherLog->GetSolid(); - G4int nDaughters = motherLog->GetNoDaughters(); + G4int nDaughters = (G4int)motherLog->GetNoDaughters(); // Models are called repeatedly by the scene handler so be careful... // Print overlaps - but only the first time for a given instantiation of G4LogicalVolume diff --git a/source/visualization/modeling/src/G4Mesh.cc b/source/visualization/modeling/src/G4Mesh.cc index b8326ac2c6..3ba578338f 100644 --- a/source/visualization/modeling/src/G4Mesh.cc +++ b/source/visualization/modeling/src/G4Mesh.cc @@ -93,7 +93,9 @@ G4Mesh::G4Mesh (G4VPhysicalVolume* containerVolume,const G4Transform3D& transfor G4LogicalVolume* lv1 = nullptr; G4LogicalVolume* lv2 = nullptr; - // Check if this is a container for a parameterisation + // Check if this is a container for a parameterisation. + // A simple parameterisation may only be one level. + // Nested parameterisations may be 2- or 3-level. G4bool isContainer = false; if (lv0->GetNoDaughters()) { fMeshDepth++; @@ -106,13 +108,15 @@ G4Mesh::G4Mesh (G4VPhysicalVolume* containerVolume,const G4Transform3D& transfor fMeshDepth++; pv2 = lv1->GetDaughter(0); lv2 = pv2->GetLogicalVolume(); - if (dynamic_cast(pv2)) { + if (dynamic_cast(pv2) && + dynamic_cast(pv2->GetParameterisation())) { isContainer = true; fpParameterisedVolume = pv2; } else if (lv2->GetNoDaughters()) { fMeshDepth++; pv3 = lv2->GetDaughter(0); - if (dynamic_cast(pv3)) { + if (dynamic_cast(pv3) && + dynamic_cast(pv3->GetParameterisation())) { isContainer = true; fpParameterisedVolume = pv3; } diff --git a/source/visualization/modeling/src/G4ModelingParameters.cc b/source/visualization/modeling/src/G4ModelingParameters.cc index 65729b5f2c..04c96197af 100644 --- a/source/visualization/modeling/src/G4ModelingParameters.cc +++ b/source/visualization/modeling/src/G4ModelingParameters.cc @@ -41,6 +41,8 @@ #include "G4PhysicalVolumeModel.hh" #include "G4UnitsTable.hh" +#define G4warn G4cout + G4ModelingParameters::G4ModelingParameters (): fWarning (true), fpDefaultVisAttributes (0), @@ -117,12 +119,12 @@ G4ModelingParameters::~G4ModelingParameters () void G4ModelingParameters::SetVisibleDensity (G4double visibleDensity) { const G4double reasonableMaximum = 10.0 * g / cm3; if (visibleDensity < 0 && fWarning) { - G4cout << "G4ModelingParameters::SetVisibleDensity: attempt to set negative " + G4warn << "G4ModelingParameters::SetVisibleDensity: attempt to set negative " "density - ignored." << G4endl; } else { if (fVisibleDensity > reasonableMaximum && fWarning) { - G4cout << "G4ModelingParameters::SetVisibleDensity: density > " + G4warn << "G4ModelingParameters::SetVisibleDensity: density > " << reasonableMaximum << " g / cm3 - did you mean this?" << G4endl; @@ -136,7 +138,7 @@ G4int G4ModelingParameters::SetNoOfSides (G4int nSides) { if (nSides < nSidesMin) { nSides = nSidesMin; if (fWarning) - G4cout << "G4ModelingParameters::SetNoOfSides: attempt to set the" + G4warn << "G4ModelingParameters::SetNoOfSides: attempt to set the" "\nnumber of sides per circle < " << nSidesMin << "; forced to" << nSides << G4endl; } diff --git a/source/visualization/modeling/src/G4PSHitsModel.cc b/source/visualization/modeling/src/G4PSHitsModel.cc index 17e703939f..424e860397 100644 --- a/source/visualization/modeling/src/G4PSHitsModel.cc +++ b/source/visualization/modeling/src/G4PSHitsModel.cc @@ -52,23 +52,21 @@ void G4PSHitsModel::DescribeYourselfTo (G4VGraphicsScene& sceneHandler) { using MeshScoreMap = G4VScoringMesh::MeshScoreMap; using RunScore = G4VScoringMesh::RunScore; - G4ScoringManager* scoringManager = - G4ScoringManager::GetScoringManagerIfExist(); + G4ScoringManager* scoringManager= G4ScoringManager::GetScoringManagerIfExist(); if (scoringManager) { - size_t nMeshes = scoringManager->GetNumberOfMesh(); - for (size_t iMesh = 0; iMesh < nMeshes; ++iMesh) { + G4int nMeshes = (G4int)scoringManager->GetNumberOfMesh(); + for (G4int iMesh = 0; iMesh < nMeshes; ++iMesh) { G4VScoringMesh* mesh = scoringManager->GetMesh(iMesh); if (mesh && mesh->IsActive()) { - MeshScoreMap scoreMap = mesh->GetScoreMap(); - for(MeshScoreMap::const_iterator i = scoreMap.begin(); - i != scoreMap.end(); ++i) { - const G4String& name = i->first; - if (fRequestedMapName == "all" || name == fRequestedMapName) { - RunScore* fpCurrentHits = i->second; - //G4cout << name << ": " << fpCurrentHits << G4endl; - if (fpCurrentHits) sceneHandler.AddCompound(*fpCurrentHits); - } - } + MeshScoreMap scoreMap = mesh->GetScoreMap(); + for(MeshScoreMap::const_iterator i = scoreMap.cbegin(); + i != scoreMap.cend(); ++i) { + const G4String& name = i->first; + if (fRequestedMapName == "all" || name == fRequestedMapName) { + RunScore* fpCurrentHits = i->second; + if (fpCurrentHits) sceneHandler.AddCompound(*fpCurrentHits); + } + } } } } diff --git a/source/visualization/modeling/src/G4PhysicalVolumeMassScene.cc b/source/visualization/modeling/src/G4PhysicalVolumeMassScene.cc index d188ca8d5e..58485d1878 100644 --- a/source/visualization/modeling/src/G4PhysicalVolumeMassScene.cc +++ b/source/visualization/modeling/src/G4PhysicalVolumeMassScene.cc @@ -40,6 +40,8 @@ #include "G4VPVParameterisation.hh" #include "G4UnitsTable.hh" +#define G4warn G4cout + G4PhysicalVolumeMassScene::G4PhysicalVolumeMassScene (G4PhysicalVolumeModel* pPVModel): fpPVModel (pPVModel), @@ -123,7 +125,7 @@ void G4PhysicalVolumeMassScene::ProcessVolume (const G4VSolid& solid) << G4endl; */ if (fMass < 0.) { - G4cout << + G4warn << "G4PhysicalVolumeMassScene::AccrueMass: WARNING:" "\n Mass going negative for \"" << pCurrentPV->GetName() << diff --git a/source/visualization/modeling/src/G4PhysicalVolumeModel.cc b/source/visualization/modeling/src/G4PhysicalVolumeModel.cc index 1b6824a0b3..e6def4c115 100644 --- a/source/visualization/modeling/src/G4PhysicalVolumeModel.cc +++ b/source/visualization/modeling/src/G4PhysicalVolumeModel.cc @@ -55,6 +55,8 @@ #include #include +#define G4warn G4cout + namespace { G4int volumeCount = 0; } @@ -340,7 +342,7 @@ void G4PhysicalVolumeModel::VisitGeometryAndGetVisReps ((G4Tubs*)pSol)->SetOuterRadius(width*(n+1)+offset); } else { if (fpMP->IsWarning()) - G4cout << + G4warn << "G4PhysicalVolumeModel::VisitGeometryAndGetVisReps: WARNING:" "\n built-in replicated volumes replicated in radius for " << pSol->GetEntityType() << @@ -659,7 +661,7 @@ void G4PhysicalVolumeModel::DescribeAndDescend // reasons why daughters might not be drawn... // First, reasons that do not depend on culling policy... - G4int nDaughters = pLV->GetNoDaughters(); + G4int nDaughters = (G4int)pLV->GetNoDaughters(); G4bool daughtersToBeDrawn = true; // 1) There are no daughters... if (!nDaughters) daughtersToBeDrawn = false; @@ -751,89 +753,37 @@ void G4PhysicalVolumeModel::DescribeSolid } else { - // Clipping, etc., performed by Boolean operations. + G4VSolid* pResultantSolid = nullptr; - // First, get polyhedron for current solid... - if (pVisAttribs->IsForceLineSegmentsPerCircle()) - G4Polyhedron::SetNumberOfRotationSteps - (pVisAttribs->GetForcedLineSegmentsPerCircle()); - else - G4Polyhedron::SetNumberOfRotationSteps(fpMP->GetNoOfSides()); - const G4Polyhedron* pOriginalPolyhedron = pSol->GetPolyhedron(); - G4Polyhedron::ResetNumberOfRotationSteps(); - - if (!pOriginalPolyhedron) { - - if (fpMP->IsWarning()) - G4cout << - "WARNING: G4PhysicalVolumeModel::DescribeSolid: solid\n \"" - << pSol->GetName() << - "\" has no polyhedron. Cannot by clipped." - << G4endl; - pSol -> DescribeYourselfTo (sceneHandler); // Standard treatment. - - } else { - - G4VSolid* pResultantSolid = 0; - - if (fpClippingSolid) { - switch (fClippingMode) { - default: - case subtraction: - pResultantSolid = new G4SubtractionSolid - ("subtracted_clipped_solid", pSol, fpClippingSolid, theAT.inverse()); - break; - case intersection: - pResultantSolid = new G4IntersectionSolid - ("intersected_clipped_solid", pSol, fpClippingSolid, theAT.inverse()); - break; - } + if (fpClippingSolid) { + switch (fClippingMode) { + default: + case subtraction: + pResultantSolid = new G4SubtractionSolid + ("subtracted_clipped_solid", pSol, fpClippingSolid, theAT.inverse()); + break; + case intersection: + pResultantSolid = new G4IntersectionSolid + ("intersected_clipped_solid", pSol, fpClippingSolid, theAT.inverse()); + break; } - - if (pSectionSolid) { - pResultantSolid = new G4IntersectionSolid - ("sectioned_solid", pSol, pSectionSolid, theAT.inverse()); - } - - if (pCutawaySolid) { - // Follow above... - pResultantSolid = new G4SubtractionSolid - ("cutaway_solid", pSol, pCutawaySolid, theAT.inverse()); - } - - G4Polyhedron* pResultantPolyhedron = pResultantSolid->GetPolyhedron(); - if (!pResultantPolyhedron) { - if (fpMP->IsWarning()) - G4cout << - "WARNING: G4PhysicalVolumeModel::DescribeSolid: resultant polyhedron for" - "\n solid \"" << pSol->GetName() << - "\" not defined due to error during Boolean processing." - << G4endl; - } else { - // It seems that if the sectioning solid does not intersect the - // original solid the Boolean Processor returns the original - // polyhedron, or a copy thereof. We do not want it. - // Check the number of facets, etc. If same, ignore. - // What we need from the Boolean Processor is a null pointer or a - // null polyhedron. It seems to return the original or a copy of it. - if (pResultantPolyhedron->GetNoFacets() == pOriginalPolyhedron->GetNoFacets()) - // This works in most cases but I still get a box in test202 with - // /vis/viewer/set/sectionPlane on 0 0 0 m 0.1 0.1 1 - { - pResultantPolyhedron = nullptr; - } - } - - if (pResultantPolyhedron) { - // Finally, draw polyhedron... - sceneHandler.BeginPrimitives(theAT); - pResultantPolyhedron->SetVisAttributes(pVisAttribs); - sceneHandler.AddPrimitive(*pResultantPolyhedron); - sceneHandler.EndPrimitives(); - } - - delete pResultantSolid; } + + if (pSectionSolid) { + pResultantSolid = new G4IntersectionSolid + ("sectioned_solid", pSol, pSectionSolid, theAT.inverse()); + } + + if (pCutawaySolid) { + pResultantSolid = new G4SubtractionSolid + ("cutaway_solid", pSol, pCutawaySolid, theAT.inverse()); + } + + sceneHandler.PreAddSolid (theAT, *pVisAttribs); + pResultantSolid -> DescribeYourselfTo (sceneHandler); + sceneHandler.PostAddSolid (); + + delete pResultantSolid; } } diff --git a/source/visualization/modeling/src/G4PhysicalVolumesSearchScene.cc b/source/visualization/modeling/src/G4PhysicalVolumesSearchScene.cc index d9b30617d2..463c534eb5 100644 --- a/source/visualization/modeling/src/G4PhysicalVolumesSearchScene.cc +++ b/source/visualization/modeling/src/G4PhysicalVolumesSearchScene.cc @@ -77,10 +77,10 @@ G4PhysicalVolumesSearchScene::Matcher::Matcher(const G4String& requiredMatch) : fRegexFlag(false) { if (requiredMatch.size()) { - size_t last = requiredMatch.size() - 1; + std::size_t last = requiredMatch.size() - 1; // If required name begins and ends with '/', treat as a regular expression. // 0 causes a conversion ambiguity that upsets the Windows compiler, so use 0U. - if (requiredMatch[0U] == '/' && requiredMatch[last] == '/') { + if (requiredMatch[0U] == '/' && requiredMatch[(G4int)last] == '/') { if (last > 1) { // Non-null regexp // regex match required fRegexFlag = true; diff --git a/source/visualization/modeling/src/G4TrajectoryDrawByAttribute.cc b/source/visualization/modeling/src/G4TrajectoryDrawByAttribute.cc index 4e099659f8..bddc5264c1 100644 --- a/source/visualization/modeling/src/G4TrajectoryDrawByAttribute.cc +++ b/source/visualization/modeling/src/G4TrajectoryDrawByAttribute.cc @@ -89,12 +89,12 @@ G4TrajectoryDrawByAttribute::Draw(const G4VTrajectory& object, static G4bool warnedUnableToExtract = false; if (!warnedUnableToExtract) { G4ExceptionDescription ed; - ed <<"Unable to extract attribute definition named "< #include +#define G4warn G4cout // Constructor and destructor @@ -124,7 +125,7 @@ void G4VFieldModel::DescribeYourselfTo(G4VGraphicsScene& sceneHandler) { if (!globalField) { static G4bool warned = false; if (!warned) { - G4cout << intro << "Null global field pointer." << G4endl; + G4warn << intro << "Null global field pointer." << G4endl; warned = true; } } @@ -132,7 +133,7 @@ void G4VFieldModel::DescribeYourselfTo(G4VGraphicsScene& sceneHandler) { } else { static G4bool warned = false; if (!warned) { - G4cout << intro << "No global field manager." << G4endl; + G4warn << intro << "No global field manager." << G4endl; warned = true; } } @@ -158,7 +159,7 @@ void G4VFieldModel::DescribeYourselfTo(G4VGraphicsScene& sceneHandler) { const G4double maxHalfScene = std::max(xHalfScene,std::max(yHalfScene,zHalfScene)); if (maxHalfScene <= 0.) { - G4cout << "Scene extent non-positive." << G4endl; + G4warn << "Scene extent non-positive." << G4endl; return; } @@ -259,7 +260,7 @@ void G4VFieldModel::DescribeYourselfTo(G4VGraphicsScene& sceneHandler) { } // for (i, x if (FieldMagnitudeMax <= 0.) { - G4cout << "No " << fTypeOfField << " field in this extent." << G4endl; + G4warn << "No " << fTypeOfField << " field in this extent." << G4endl; return; }